diff --git a/.obsidian/app.json b/.obsidian/app.json index 0281356..7406ce3 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -1,3 +1,4 @@ { - "vimMode": true + "vimMode": true, + "showLineNumber": true } \ No newline at end of file diff --git a/.obsidian/plugins/datacore/main.js b/.obsidian/plugins/datacore/main.js index 37069c5..0bd53ac 100644 --- a/.obsidian/plugins/datacore/main.js +++ b/.obsidian/plugins/datacore/main.js @@ -5,9 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; -var __esm = (fn2, res) => function __init() { - return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; -}; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; @@ -33,13940 +30,588 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -// node_modules/parsimmon/src/parsimmon.js -var require_parsimmon = __commonJS({ - "node_modules/parsimmon/src/parsimmon.js"(exports2, module2) { - "use strict"; - function Parsimmon2(action) { - if (!(this instanceof Parsimmon2)) { - return new Parsimmon2(action); - } - this._ = action; - } - var _3 = Parsimmon2.prototype; - function times(n3, f4) { - var i4 = 0; - for (i4; i4 < n3; i4++) { - f4(i4); - } - } - function forEach(f4, arr) { - times(arr.length, function(i4) { - f4(arr[i4], i4, arr); - }); - } - function reduce2(f4, seed, arr) { - forEach(function(elem, i4, arr2) { - seed = f4(seed, elem, i4, arr2); - }, arr); - return seed; - } - function map(f4, arr) { - return reduce2( - function(acc, elem, i4, a4) { - return acc.concat([f4(elem, i4, a4)]); - }, - [], - arr - ); - } - function lshiftBuffer(input) { - var asTwoBytes = reduce2( - function(a4, v3, i4, b3) { - return a4.concat( - i4 === b3.length - 1 ? Buffer.from([v3, 0]).readUInt16BE(0) : b3.readUInt16BE(i4) - ); - }, - [], - input - ); - return Buffer.from( - map(function(x4) { - return (x4 << 1 & 65535) >> 8; - }, asTwoBytes) - ); - } - function consumeBitsFromBuffer(n3, input) { - var state = { v: 0, buf: input }; - times(n3, function() { - state = { - v: state.v << 1 | bitPeekBuffer(state.buf), - buf: lshiftBuffer(state.buf) - }; - }); - return state; - } - function bitPeekBuffer(input) { - return input[0] >> 7; - } - function sum(numArr) { - return reduce2( - function(x4, y4) { - return x4 + y4; - }, - 0, - numArr - ); - } - function find(pred, arr) { - return reduce2( - function(found, elem) { - return found || (pred(elem) ? elem : found); - }, - null, - arr - ); - } - function bufferExists() { - return typeof Buffer !== "undefined"; - } - function setExists() { - if (Parsimmon2._supportsSet !== void 0) { - return Parsimmon2._supportsSet; - } - var exists = typeof Set !== "undefined"; - Parsimmon2._supportsSet = exists; - return exists; - } - function ensureBuffer() { - if (!bufferExists()) { - throw new Error( - "Buffer global does not exist; please use webpack if you need to parse Buffers in the browser." - ); - } - } - function bitSeq(alignments) { - ensureBuffer(); - var totalBits = sum(alignments); - if (totalBits % 8 !== 0) { - throw new Error( - "The bits [" + alignments.join(", ") + "] add up to " + totalBits + " which is not an even number of bytes; the total should be divisible by 8" - ); - } - var bytes = totalBits / 8; - var tooBigRange = find(function(x4) { - return x4 > 48; - }, alignments); - if (tooBigRange) { - throw new Error( - tooBigRange + " bit range requested exceeds 48 bit (6 byte) Number max." - ); - } - return new Parsimmon2(function(input, i4) { - var newPos = bytes + i4; - if (newPos > input.length) { - return makeFailure(i4, bytes.toString() + " bytes"); - } - return makeSuccess( - newPos, - reduce2( - function(acc, bits) { - var state = consumeBitsFromBuffer(bits, acc.buf); - return { - coll: acc.coll.concat(state.v), - buf: state.buf - }; - }, - { coll: [], buf: input.slice(i4, newPos) }, - alignments - ).coll - ); - }); - } - function bitSeqObj(namedAlignments) { - ensureBuffer(); - var seenKeys = {}; - var totalKeys = 0; - var fullAlignments = map(function(item) { - if (isArray2(item)) { - var pair = item; - if (pair.length !== 2) { - throw new Error( - "[" + pair.join(", ") + "] should be length 2, got length " + pair.length - ); - } - assertString(pair[0]); - assertNumber(pair[1]); - if (Object.prototype.hasOwnProperty.call(seenKeys, pair[0])) { - throw new Error("duplicate key in bitSeqObj: " + pair[0]); - } - seenKeys[pair[0]] = true; - totalKeys++; - return pair; - } else { - assertNumber(item); - return [null, item]; - } - }, namedAlignments); - if (totalKeys < 1) { - throw new Error( - "bitSeqObj expects at least one named pair, got [" + namedAlignments.join(", ") + "]" - ); - } - var namesOnly = map(function(pair) { - return pair[0]; - }, fullAlignments); - var alignmentsOnly = map(function(pair) { - return pair[1]; - }, fullAlignments); - return bitSeq(alignmentsOnly).map(function(parsed) { - var namedParsed = map(function(name, i4) { - return [name, parsed[i4]]; - }, namesOnly); - return reduce2( - function(obj, kv) { - if (kv[0] !== null) { - obj[kv[0]] = kv[1]; - } - return obj; - }, - {}, - namedParsed - ); - }); - } - function parseBufferFor(other, length2) { - return new Parsimmon2(function(input, i4) { - ensureBuffer(); - if (i4 + length2 > input.length) { - return makeFailure(i4, length2 + " bytes for " + other); - } - return makeSuccess(i4 + length2, input.slice(i4, i4 + length2)); - }); - } - function parseBuffer(length2) { - return parseBufferFor("buffer", length2).map(function(unsafe) { - return Buffer.from(unsafe); - }); - } - function encodedString(encoding, length2) { - return parseBufferFor("string", length2).map(function(buff) { - return buff.toString(encoding); - }); - } - function isInteger2(value) { - return typeof value === "number" && Math.floor(value) === value; - } - function assertValidIntegerByteLengthFor(who, length2) { - if (!isInteger2(length2) || length2 < 0 || length2 > 6) { - throw new Error(who + " requires integer length in range [0, 6]."); - } - } - function uintBE(length2) { - assertValidIntegerByteLengthFor("uintBE", length2); - return parseBufferFor("uintBE(" + length2 + ")", length2).map(function(buff) { - return buff.readUIntBE(0, length2); - }); - } - function uintLE(length2) { - assertValidIntegerByteLengthFor("uintLE", length2); - return parseBufferFor("uintLE(" + length2 + ")", length2).map(function(buff) { - return buff.readUIntLE(0, length2); - }); - } - function intBE(length2) { - assertValidIntegerByteLengthFor("intBE", length2); - return parseBufferFor("intBE(" + length2 + ")", length2).map(function(buff) { - return buff.readIntBE(0, length2); - }); - } - function intLE(length2) { - assertValidIntegerByteLengthFor("intLE", length2); - return parseBufferFor("intLE(" + length2 + ")", length2).map(function(buff) { - return buff.readIntLE(0, length2); - }); - } - function floatBE() { - return parseBufferFor("floatBE", 4).map(function(buff) { - return buff.readFloatBE(0); - }); - } - function floatLE() { - return parseBufferFor("floatLE", 4).map(function(buff) { - return buff.readFloatLE(0); - }); - } - function doubleBE() { - return parseBufferFor("doubleBE", 8).map(function(buff) { - return buff.readDoubleBE(0); - }); - } - function doubleLE() { - return parseBufferFor("doubleLE", 8).map(function(buff) { - return buff.readDoubleLE(0); - }); - } - function toArray2(arrLike) { - return Array.prototype.slice.call(arrLike); - } - function isParser(obj) { - return obj instanceof Parsimmon2; - } - function isArray2(x4) { - return {}.toString.call(x4) === "[object Array]"; - } - function isBuffer(x4) { - return bufferExists() && Buffer.isBuffer(x4); - } - function makeSuccess(index2, value) { - return { - status: true, - index: index2, - value, - furthest: -1, - expected: [] - }; - } - function makeFailure(index2, expected) { - if (!isArray2(expected)) { - expected = [expected]; - } - return { - status: false, - index: -1, - value: null, - furthest: index2, - expected - }; - } - function mergeReplies(result, last) { - if (!last) { - return result; - } - if (result.furthest > last.furthest) { - return result; - } - var expected = result.furthest === last.furthest ? union(result.expected, last.expected) : last.expected; - return { - status: result.status, - index: result.index, - value: result.value, - furthest: last.furthest, - expected - }; - } - var lineColumnIndex = {}; - function makeLineColumnIndex(input, i4) { - if (isBuffer(input)) { - return { - offset: i4, - line: -1, - column: -1 - }; - } - if (!(input in lineColumnIndex)) { - lineColumnIndex[input] = {}; - } - var inputIndex = lineColumnIndex[input]; - var prevLine = 0; - var newLines = 0; - var lineStart = 0; - var j4 = i4; - while (j4 >= 0) { - if (j4 in inputIndex) { - prevLine = inputIndex[j4].line; - if (lineStart === 0) { - lineStart = inputIndex[j4].lineStart; - } - break; - } - if ( - // Unix LF (\n) or Windows CRLF (\r\n) line ending - input.charAt(j4) === "\n" || // Old Mac CR (\r) line ending - input.charAt(j4) === "\r" && input.charAt(j4 + 1) !== "\n" - ) { - newLines++; - if (lineStart === 0) { - lineStart = j4 + 1; - } - } - j4--; - } - var lineWeAreUpTo = prevLine + newLines; - var columnWeAreUpTo = i4 - lineStart; - inputIndex[i4] = { line: lineWeAreUpTo, lineStart }; - return { - offset: i4, - line: lineWeAreUpTo + 1, - column: columnWeAreUpTo + 1 - }; - } - function union(xs, ys) { - if (setExists() && Array.from) { - var set = new Set(xs); - for (var y4 = 0; y4 < ys.length; y4++) { - set.add(ys[y4]); - } - var arr = Array.from(set); - arr.sort(); - return arr; - } - var obj = {}; - for (var i4 = 0; i4 < xs.length; i4++) { - obj[xs[i4]] = true; - } - for (var j4 = 0; j4 < ys.length; j4++) { - obj[ys[j4]] = true; - } - var keys = []; - for (var k4 in obj) { - if ({}.hasOwnProperty.call(obj, k4)) { - keys.push(k4); - } - } - keys.sort(); - return keys; - } - function assertParser(p3) { - if (!isParser(p3)) { - throw new Error("not a parser: " + p3); - } - } - function get(input, i4) { - if (typeof input === "string") { - return input.charAt(i4); - } - return input[i4]; - } - function assertArray(x4) { - if (!isArray2(x4)) { - throw new Error("not an array: " + x4); - } - } - function assertNumber(x4) { - if (typeof x4 !== "number") { - throw new Error("not a number: " + x4); - } - } - function assertRegexp(x4) { - if (!(x4 instanceof RegExp)) { - throw new Error("not a regexp: " + x4); - } - var f4 = flags(x4); - for (var i4 = 0; i4 < f4.length; i4++) { - var c4 = f4.charAt(i4); - if (c4 !== "i" && c4 !== "m" && c4 !== "u" && c4 !== "s") { - throw new Error('unsupported regexp flag "' + c4 + '": ' + x4); - } - } - } - function assertFunction(x4) { - if (typeof x4 !== "function") { - throw new Error("not a function: " + x4); - } - } - function assertString(x4) { - if (typeof x4 !== "string") { - throw new Error("not a string: " + x4); - } - } - var linesBeforeStringError = 2; - var linesAfterStringError = 3; - var bytesPerLine = 8; - var bytesBefore = bytesPerLine * 5; - var bytesAfter = bytesPerLine * 4; - var defaultLinePrefix = " "; - function repeat(string3, amount) { - return new Array(amount + 1).join(string3); - } - function formatExpected(expected) { - if (expected.length === 1) { - return "Expected:\n\n" + expected[0]; - } - return "Expected one of the following: \n\n" + expected.join(", "); - } - function leftPad(str, pad, char2) { - var add = pad - str.length; - if (add <= 0) { - return str; - } - return repeat(char2, add) + str; - } - function toChunks(arr, chunkSize) { - var length2 = arr.length; - var chunks = []; - var chunkIndex = 0; - if (length2 <= chunkSize) { - return [arr.slice()]; - } - for (var i4 = 0; i4 < length2; i4++) { - if (!chunks[chunkIndex]) { - chunks.push([]); - } - chunks[chunkIndex].push(arr[i4]); - if ((i4 + 1) % chunkSize === 0) { - chunkIndex++; - } - } - return chunks; - } - function rangeFromIndexAndOffsets(i4, before, after, length2) { - return { - // Guard against the negative upper bound for lines included in the output. - from: i4 - before > 0 ? i4 - before : 0, - to: i4 + after > length2 ? length2 : i4 + after - }; - } - function byteRangeToRange(byteRange) { - if (byteRange.from === 0 && byteRange.to === 1) { - return { - from: byteRange.from, - to: byteRange.to - }; - } - return { - from: byteRange.from / bytesPerLine, - // Round `to`, so we don't get float if the amount of bytes is not divisible by `bytesPerLine` - to: Math.floor(byteRange.to / bytesPerLine) - }; - } - function formatGot(input, error) { - var index2 = error.index; - var i4 = index2.offset; - var verticalMarkerLength = 1; - var column2; - var lineWithErrorIndex; - var lines; - var lineRange2; - var lastLineNumberLabelLength; - if (i4 === input.length) { - return "Got the end of the input"; - } - if (isBuffer(input)) { - var byteLineWithErrorIndex = i4 - i4 % bytesPerLine; - var columnByteIndex = i4 - byteLineWithErrorIndex; - var byteRange = rangeFromIndexAndOffsets( - byteLineWithErrorIndex, - bytesBefore, - bytesAfter + bytesPerLine, - input.length - ); - var bytes = input.slice(byteRange.from, byteRange.to); - var bytesInChunks = toChunks(bytes.toJSON().data, bytesPerLine); - var byteLines = map(function(byteRow) { - return map(function(byteValue) { - return leftPad(byteValue.toString(16), 2, "0"); - }, byteRow); - }, bytesInChunks); - lineRange2 = byteRangeToRange(byteRange); - lineWithErrorIndex = byteLineWithErrorIndex / bytesPerLine; - column2 = columnByteIndex * 3; - if (columnByteIndex >= 4) { - column2 += 1; - } - verticalMarkerLength = 2; - lines = map(function(byteLine) { - return byteLine.length <= 4 ? byteLine.join(" ") : byteLine.slice(0, 4).join(" ") + " " + byteLine.slice(4).join(" "); - }, byteLines); - lastLineNumberLabelLength = ((lineRange2.to > 0 ? lineRange2.to - 1 : lineRange2.to) * 8).toString(16).length; - if (lastLineNumberLabelLength < 2) { - lastLineNumberLabelLength = 2; - } - } else { - var inputLines = input.split(/\r\n|[\n\r\u2028\u2029]/); - column2 = index2.column - 1; - lineWithErrorIndex = index2.line - 1; - lineRange2 = rangeFromIndexAndOffsets( - lineWithErrorIndex, - linesBeforeStringError, - linesAfterStringError, - inputLines.length - ); - lines = inputLines.slice(lineRange2.from, lineRange2.to); - lastLineNumberLabelLength = lineRange2.to.toString().length; - } - var lineWithErrorCurrentIndex = lineWithErrorIndex - lineRange2.from; - if (isBuffer(input)) { - lastLineNumberLabelLength = ((lineRange2.to > 0 ? lineRange2.to - 1 : lineRange2.to) * 8).toString(16).length; - if (lastLineNumberLabelLength < 2) { - lastLineNumberLabelLength = 2; - } - } - var linesWithLineNumbers = reduce2( - function(acc, lineSource, index3) { - var isLineWithError = index3 === lineWithErrorCurrentIndex; - var prefix2 = isLineWithError ? "> " : defaultLinePrefix; - var lineNumberLabel; - if (isBuffer(input)) { - lineNumberLabel = leftPad( - ((lineRange2.from + index3) * 8).toString(16), - lastLineNumberLabelLength, - "0" - ); - } else { - lineNumberLabel = leftPad( - (lineRange2.from + index3 + 1).toString(), - lastLineNumberLabelLength, - " " - ); - } - return [].concat( - acc, - [prefix2 + lineNumberLabel + " | " + lineSource], - isLineWithError ? [ - defaultLinePrefix + repeat(" ", lastLineNumberLabelLength) + " | " + leftPad("", column2, " ") + repeat("^", verticalMarkerLength) - ] : [] - ); - }, - [], - lines - ); - return linesWithLineNumbers.join("\n"); - } - function formatError(input, error) { - return [ - "\n", - "-- PARSING FAILED " + repeat("-", 50), - "\n\n", - formatGot(input, error), - "\n\n", - formatExpected(error.expected), - "\n" - ].join(""); - } - function flags(re) { - if (re.flags !== void 0) { - return re.flags; - } - return [ - re.global ? "g" : "", - re.ignoreCase ? "i" : "", - re.multiline ? "m" : "", - re.unicode ? "u" : "", - re.sticky ? "y" : "" - ].join(""); - } - function anchoredRegexp(re) { - return RegExp("^(?:" + re.source + ")", flags(re)); - } - function seq2() { - var parsers = [].slice.call(arguments); - var numParsers = parsers.length; - for (var j4 = 0; j4 < numParsers; j4 += 1) { - assertParser(parsers[j4]); - } - return Parsimmon2(function(input, i4) { - var result; - var accum = new Array(numParsers); - for (var j5 = 0; j5 < numParsers; j5 += 1) { - result = mergeReplies(parsers[j5]._(input, i4), result); - if (!result.status) { - return result; - } - accum[j5] = result.value; - i4 = result.index; - } - return mergeReplies(makeSuccess(i4, accum), result); - }); - } - function seqObj() { - var seenKeys = {}; - var totalKeys = 0; - var parsers = toArray2(arguments); - var numParsers = parsers.length; - for (var j4 = 0; j4 < numParsers; j4 += 1) { - var p3 = parsers[j4]; - if (isParser(p3)) { - continue; - } - if (isArray2(p3)) { - var isWellFormed = p3.length === 2 && typeof p3[0] === "string" && isParser(p3[1]); - if (isWellFormed) { - var key = p3[0]; - if (Object.prototype.hasOwnProperty.call(seenKeys, key)) { - throw new Error("seqObj: duplicate key " + key); - } - seenKeys[key] = true; - totalKeys++; - continue; - } - } - throw new Error( - "seqObj arguments must be parsers or [string, parser] array pairs." - ); - } - if (totalKeys === 0) { - throw new Error("seqObj expects at least one named parser, found zero"); - } - return Parsimmon2(function(input, i4) { - var result; - var accum = {}; - for (var j5 = 0; j5 < numParsers; j5 += 1) { - var name; - var parser; - if (isArray2(parsers[j5])) { - name = parsers[j5][0]; - parser = parsers[j5][1]; - } else { - name = null; - parser = parsers[j5]; - } - result = mergeReplies(parser._(input, i4), result); - if (!result.status) { - return result; - } - if (name) { - accum[name] = result.value; - } - i4 = result.index; - } - return mergeReplies(makeSuccess(i4, accum), result); - }); - } - function seqMap2() { - var args = [].slice.call(arguments); - if (args.length === 0) { - throw new Error("seqMap needs at least one argument"); - } - var mapper = args.pop(); - assertFunction(mapper); - return seq2.apply(null, args).map(function(results) { - return mapper.apply(null, results); - }); - } - function createLanguage2(parsers) { - var language = {}; - for (var key in parsers) { - if ({}.hasOwnProperty.call(parsers, key)) { - (function(key2) { - var func = function() { - return parsers[key2](language); - }; - language[key2] = lazy(func); - })(key); - } - } - return language; - } - function alt4() { - var parsers = [].slice.call(arguments); - var numParsers = parsers.length; - if (numParsers === 0) { - return fail("zero alternates"); - } - for (var j4 = 0; j4 < numParsers; j4 += 1) { - assertParser(parsers[j4]); - } - return Parsimmon2(function(input, i4) { - var result; - for (var j5 = 0; j5 < parsers.length; j5 += 1) { - result = mergeReplies(parsers[j5]._(input, i4), result); - if (result.status) { - return result; - } - } - return result; - }); - } - function sepBy(parser, separator) { - return sepBy1(parser, separator).or(succeed2([])); - } - function sepBy1(parser, separator) { - assertParser(parser); - assertParser(separator); - var pairs = separator.then(parser).many(); - return seqMap2(parser, pairs, function(r4, rs) { - return [r4].concat(rs); - }); - } - _3.parse = function(input) { - if (typeof input !== "string" && !isBuffer(input)) { - throw new Error( - ".parse must be called with a string or Buffer as its argument" - ); - } - var parseResult = this.skip(eof)._(input, 0); - var result; - if (parseResult.status) { - result = { - status: true, - value: parseResult.value - }; - } else { - result = { - status: false, - index: makeLineColumnIndex(input, parseResult.furthest), - expected: parseResult.expected - }; - } - delete lineColumnIndex[input]; - return result; - }; - _3.tryParse = function(str) { - var result = this.parse(str); - if (result.status) { - return result.value; - } else { - var msg = formatError(str, result); - var err = new Error(msg); - err.type = "ParsimmonError"; - err.result = result; - throw err; - } - }; - _3.assert = function(condition, errorMessage) { - return this.chain(function(value) { - return condition(value) ? succeed2(value) : fail(errorMessage); - }); - }; - _3.or = function(alternative) { - return alt4(this, alternative); - }; - _3.trim = function(parser) { - return this.wrap(parser, parser); - }; - _3.wrap = function(leftParser, rightParser) { - return seqMap2(leftParser, this, rightParser, function(left, middle) { - return middle; - }); - }; - _3.thru = function(wrapper) { - return wrapper(this); - }; - _3.then = function(next2) { - assertParser(next2); - return seq2(this, next2).map(function(results) { - return results[1]; - }); - }; - _3.many = function() { - var self2 = this; - return Parsimmon2(function(input, i4) { - var accum = []; - var result = void 0; - for (; ; ) { - result = mergeReplies(self2._(input, i4), result); - if (result.status) { - if (i4 === result.index) { - throw new Error( - "infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause" - ); - } - i4 = result.index; - accum.push(result.value); - } else { - return mergeReplies(makeSuccess(i4, accum), result); - } - } - }); - }; - _3.tieWith = function(separator) { - assertString(separator); - return this.map(function(args) { - assertArray(args); - if (args.length) { - assertString(args[0]); - var s4 = args[0]; - for (var i4 = 1; i4 < args.length; i4++) { - assertString(args[i4]); - s4 += separator + args[i4]; - } - return s4; - } else { - return ""; - } - }); - }; - _3.tie = function() { - return this.tieWith(""); - }; - _3.times = function(min2, max2) { - var self2 = this; - if (arguments.length < 2) { - max2 = min2; - } - assertNumber(min2); - assertNumber(max2); - return Parsimmon2(function(input, i4) { - var accum = []; - var result = void 0; - var prevResult = void 0; - for (var times2 = 0; times2 < min2; times2 += 1) { - result = self2._(input, i4); - prevResult = mergeReplies(result, prevResult); - if (result.status) { - i4 = result.index; - accum.push(result.value); - } else { - return prevResult; - } - } - for (; times2 < max2; times2 += 1) { - result = self2._(input, i4); - prevResult = mergeReplies(result, prevResult); - if (result.status) { - i4 = result.index; - accum.push(result.value); - } else { - break; - } - } - return mergeReplies(makeSuccess(i4, accum), prevResult); - }); - }; - _3.result = function(res) { - return this.map(function() { - return res; - }); - }; - _3.atMost = function(n3) { - return this.times(0, n3); - }; - _3.atLeast = function(n3) { - return seqMap2(this.times(n3), this.many(), function(init, rest) { - return init.concat(rest); - }); - }; - _3.map = function(fn2) { - assertFunction(fn2); - var self2 = this; - return Parsimmon2(function(input, i4) { - var result = self2._(input, i4); - if (!result.status) { - return result; - } - return mergeReplies(makeSuccess(result.index, fn2(result.value)), result); - }); - }; - _3.contramap = function(fn2) { - assertFunction(fn2); - var self2 = this; - return Parsimmon2(function(input, i4) { - var result = self2.parse(fn2(input.slice(i4))); - if (!result.status) { - return result; - } - return makeSuccess(i4 + input.length, result.value); - }); - }; - _3.promap = function(f4, g4) { - assertFunction(f4); - assertFunction(g4); - return this.contramap(f4).map(g4); - }; - _3.skip = function(next2) { - return seq2(this, next2).map(function(results) { - return results[0]; - }); - }; - _3.mark = function() { - return seqMap2(index, this, index, function(start, value, end3) { - return { - start, - value, - end: end3 - }; - }); - }; - _3.node = function(name) { - return seqMap2(index, this, index, function(start, value, end3) { - return { - name, - value, - start, - end: end3 - }; - }); - }; - _3.sepBy = function(separator) { - return sepBy(this, separator); - }; - _3.sepBy1 = function(separator) { - return sepBy1(this, separator); - }; - _3.lookahead = function(x4) { - return this.skip(lookahead(x4)); - }; - _3.notFollowedBy = function(x4) { - return this.skip(notFollowedBy(x4)); - }; - _3.desc = function(expected) { - if (!isArray2(expected)) { - expected = [expected]; - } - var self2 = this; - return Parsimmon2(function(input, i4) { - var reply = self2._(input, i4); - if (!reply.status) { - reply.expected = expected; - } - return reply; - }); - }; - _3.fallback = function(result) { - return this.or(succeed2(result)); - }; - _3.ap = function(other) { - return seqMap2(other, this, function(f4, x4) { - return f4(x4); - }); - }; - _3.chain = function(f4) { - var self2 = this; - return Parsimmon2(function(input, i4) { - var result = self2._(input, i4); - if (!result.status) { - return result; - } - var nextParser = f4(result.value); - return mergeReplies(nextParser._(input, result.index), result); - }); - }; - function string2(str) { - assertString(str); - var expected = "'" + str + "'"; - return Parsimmon2(function(input, i4) { - var j4 = i4 + str.length; - var head = input.slice(i4, j4); - if (head === str) { - return makeSuccess(j4, head); - } else { - return makeFailure(i4, expected); - } - }); - } - function byte(b3) { - ensureBuffer(); - assertNumber(b3); - if (b3 > 255) { - throw new Error( - "Value specified to byte constructor (" + b3 + "=0x" + b3.toString(16) + ") is larger in value than a single byte." - ); - } - var expected = (b3 > 15 ? "0x" : "0x0") + b3.toString(16); - return Parsimmon2(function(input, i4) { - var head = get(input, i4); - if (head === b3) { - return makeSuccess(i4 + 1, head); - } else { - return makeFailure(i4, expected); - } - }); - } - function regexp3(re, group) { - assertRegexp(re); - if (arguments.length >= 2) { - assertNumber(group); - } else { - group = 0; - } - var anchored = anchoredRegexp(re); - var expected = "" + re; - return Parsimmon2(function(input, i4) { - var match3 = anchored.exec(input.slice(i4)); - if (match3) { - if (0 <= group && group <= match3.length) { - var fullMatch = match3[0]; - var groupMatch = match3[group]; - return makeSuccess(i4 + fullMatch.length, groupMatch); - } - var message = "valid match group (0 to " + match3.length + ") in " + expected; - return makeFailure(i4, message); - } - return makeFailure(i4, expected); - }); - } - function succeed2(value) { - return Parsimmon2(function(input, i4) { - return makeSuccess(i4, value); - }); - } - function fail(expected) { - return Parsimmon2(function(input, i4) { - return makeFailure(i4, expected); - }); - } - function lookahead(x4) { - if (isParser(x4)) { - return Parsimmon2(function(input, i4) { - var result = x4._(input, i4); - result.index = i4; - result.value = ""; - return result; - }); - } else if (typeof x4 === "string") { - return lookahead(string2(x4)); - } else if (x4 instanceof RegExp) { - return lookahead(regexp3(x4)); - } - throw new Error("not a string, regexp, or parser: " + x4); - } - function notFollowedBy(parser) { - assertParser(parser); - return Parsimmon2(function(input, i4) { - var result = parser._(input, i4); - var text2 = input.slice(i4, result.index); - return result.status ? makeFailure(i4, 'not "' + text2 + '"') : makeSuccess(i4, null); - }); - } - function test(predicate) { - assertFunction(predicate); - return Parsimmon2(function(input, i4) { - var char2 = get(input, i4); - if (i4 < input.length && predicate(char2)) { - return makeSuccess(i4 + 1, char2); - } else { - return makeFailure(i4, "a character/byte matching " + predicate); - } - }); - } - function oneOf2(str) { - var expected = str.split(""); - for (var idx = 0; idx < expected.length; idx++) { - expected[idx] = "'" + expected[idx] + "'"; - } - return test(function(ch) { - return str.indexOf(ch) >= 0; - }).desc(expected); - } - function noneOf2(str) { - return test(function(ch) { - return str.indexOf(ch) < 0; - }).desc("none of '" + str + "'"); - } - function custom2(parsingFunction) { - return Parsimmon2(parsingFunction(makeSuccess, makeFailure)); - } - function range(begin2, end3) { - return test(function(ch) { - return begin2 <= ch && ch <= end3; - }).desc(begin2 + "-" + end3); - } - function takeWhile(predicate) { - assertFunction(predicate); - return Parsimmon2(function(input, i4) { - var j4 = i4; - while (j4 < input.length && predicate(get(input, j4))) { - j4++; - } - return makeSuccess(j4, input.slice(i4, j4)); - }); - } - function lazy(desc, f4) { - if (arguments.length < 2) { - f4 = desc; - desc = void 0; - } - var parser = Parsimmon2(function(input, i4) { - parser._ = f4()._; - return parser._(input, i4); - }); - if (desc) { - return parser.desc(desc); - } else { - return parser; - } - } - function empty() { - return fail("fantasy-land/empty"); - } - _3.concat = _3.or; - _3.empty = empty; - _3.of = succeed2; - _3["fantasy-land/ap"] = _3.ap; - _3["fantasy-land/chain"] = _3.chain; - _3["fantasy-land/concat"] = _3.concat; - _3["fantasy-land/empty"] = _3.empty; - _3["fantasy-land/of"] = _3.of; - _3["fantasy-land/map"] = _3.map; - var index = Parsimmon2(function(input, i4) { - return makeSuccess(i4, makeLineColumnIndex(input, i4)); - }); - var any3 = Parsimmon2(function(input, i4) { - if (i4 >= input.length) { - return makeFailure(i4, "any character/byte"); - } - return makeSuccess(i4 + 1, get(input, i4)); - }); - var all = Parsimmon2(function(input, i4) { - return makeSuccess(input.length, input.slice(i4)); - }); - var eof = Parsimmon2(function(input, i4) { - if (i4 < input.length) { - return makeFailure(i4, "EOF"); - } - return makeSuccess(i4, null); - }); - var digit = regexp3(/[0-9]/).desc("a digit"); - var digits = regexp3(/[0-9]*/).desc("optional digits"); - var letter = regexp3(/[a-z]/i).desc("a letter"); - var letters = regexp3(/[a-z]*/i).desc("optional letters"); - var optWhitespace2 = regexp3(/\s*/).desc("optional whitespace"); - var whitespace3 = regexp3(/\s+/).desc("whitespace"); - var cr = string2("\r"); - var lf = string2("\n"); - var crlf = string2("\r\n"); - var newline = alt4(crlf, lf, cr).desc("newline"); - var end2 = alt4(newline, eof); - Parsimmon2.all = all; - Parsimmon2.alt = alt4; - Parsimmon2.any = any3; - Parsimmon2.cr = cr; - Parsimmon2.createLanguage = createLanguage2; - Parsimmon2.crlf = crlf; - Parsimmon2.custom = custom2; - Parsimmon2.digit = digit; - Parsimmon2.digits = digits; - Parsimmon2.empty = empty; - Parsimmon2.end = end2; - Parsimmon2.eof = eof; - Parsimmon2.fail = fail; - Parsimmon2.formatError = formatError; - Parsimmon2.index = index; - Parsimmon2.isParser = isParser; - Parsimmon2.lazy = lazy; - Parsimmon2.letter = letter; - Parsimmon2.letters = letters; - Parsimmon2.lf = lf; - Parsimmon2.lookahead = lookahead; - Parsimmon2.makeFailure = makeFailure; - Parsimmon2.makeSuccess = makeSuccess; - Parsimmon2.newline = newline; - Parsimmon2.noneOf = noneOf2; - Parsimmon2.notFollowedBy = notFollowedBy; - Parsimmon2.of = succeed2; - Parsimmon2.oneOf = oneOf2; - Parsimmon2.optWhitespace = optWhitespace2; - Parsimmon2.Parser = Parsimmon2; - Parsimmon2.range = range; - Parsimmon2.regex = regexp3; - Parsimmon2.regexp = regexp3; - Parsimmon2.sepBy = sepBy; - Parsimmon2.sepBy1 = sepBy1; - Parsimmon2.seq = seq2; - Parsimmon2.seqMap = seqMap2; - Parsimmon2.seqObj = seqObj; - Parsimmon2.string = string2; - Parsimmon2.succeed = succeed2; - Parsimmon2.takeWhile = takeWhile; - Parsimmon2.test = test; - Parsimmon2.whitespace = whitespace3; - Parsimmon2["fantasy-land/empty"] = empty; - Parsimmon2["fantasy-land/of"] = succeed2; - Parsimmon2.Binary = { - bitSeq, - bitSeqObj, - byte, - buffer: parseBuffer, - encodedString, - uintBE, - uint8BE: uintBE(1), - uint16BE: uintBE(2), - uint32BE: uintBE(4), - uintLE, - uint8LE: uintLE(1), - uint16LE: uintLE(2), - uint32LE: uintLE(4), - intBE, - int8BE: intBE(1), - int16BE: intBE(2), - int32BE: intBE(4), - intLE, - int8LE: intLE(1), - int16LE: intLE(2), - int32LE: intLE(4), - floatBE: floatBE(), - floatLE: floatLE(), - doubleBE: doubleBE(), - doubleLE: doubleLE() - }; - module2.exports = Parsimmon2; - } -}); - -// node_modules/emoji-regex/index.js -var require_emoji_regex = __commonJS({ - "node_modules/emoji-regex/index.js"(exports2, module2) { - module2.exports = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; - }; - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/keywords.js -var require_keywords = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/keywords.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var ContextualKeyword; - (function(ContextualKeyword2) { - const NONE = 0; - ContextualKeyword2[ContextualKeyword2["NONE"] = NONE] = "NONE"; - const _abstract = NONE + 1; - ContextualKeyword2[ContextualKeyword2["_abstract"] = _abstract] = "_abstract"; - const _accessor = _abstract + 1; - ContextualKeyword2[ContextualKeyword2["_accessor"] = _accessor] = "_accessor"; - const _as = _accessor + 1; - ContextualKeyword2[ContextualKeyword2["_as"] = _as] = "_as"; - const _assert = _as + 1; - ContextualKeyword2[ContextualKeyword2["_assert"] = _assert] = "_assert"; - const _asserts = _assert + 1; - ContextualKeyword2[ContextualKeyword2["_asserts"] = _asserts] = "_asserts"; - const _async = _asserts + 1; - ContextualKeyword2[ContextualKeyword2["_async"] = _async] = "_async"; - const _await = _async + 1; - ContextualKeyword2[ContextualKeyword2["_await"] = _await] = "_await"; - const _checks = _await + 1; - ContextualKeyword2[ContextualKeyword2["_checks"] = _checks] = "_checks"; - const _constructor = _checks + 1; - ContextualKeyword2[ContextualKeyword2["_constructor"] = _constructor] = "_constructor"; - const _declare = _constructor + 1; - ContextualKeyword2[ContextualKeyword2["_declare"] = _declare] = "_declare"; - const _enum = _declare + 1; - ContextualKeyword2[ContextualKeyword2["_enum"] = _enum] = "_enum"; - const _exports = _enum + 1; - ContextualKeyword2[ContextualKeyword2["_exports"] = _exports] = "_exports"; - const _from = _exports + 1; - ContextualKeyword2[ContextualKeyword2["_from"] = _from] = "_from"; - const _get = _from + 1; - ContextualKeyword2[ContextualKeyword2["_get"] = _get] = "_get"; - const _global = _get + 1; - ContextualKeyword2[ContextualKeyword2["_global"] = _global] = "_global"; - const _implements = _global + 1; - ContextualKeyword2[ContextualKeyword2["_implements"] = _implements] = "_implements"; - const _infer = _implements + 1; - ContextualKeyword2[ContextualKeyword2["_infer"] = _infer] = "_infer"; - const _interface = _infer + 1; - ContextualKeyword2[ContextualKeyword2["_interface"] = _interface] = "_interface"; - const _is = _interface + 1; - ContextualKeyword2[ContextualKeyword2["_is"] = _is] = "_is"; - const _keyof = _is + 1; - ContextualKeyword2[ContextualKeyword2["_keyof"] = _keyof] = "_keyof"; - const _mixins = _keyof + 1; - ContextualKeyword2[ContextualKeyword2["_mixins"] = _mixins] = "_mixins"; - const _module = _mixins + 1; - ContextualKeyword2[ContextualKeyword2["_module"] = _module] = "_module"; - const _namespace = _module + 1; - ContextualKeyword2[ContextualKeyword2["_namespace"] = _namespace] = "_namespace"; - const _of = _namespace + 1; - ContextualKeyword2[ContextualKeyword2["_of"] = _of] = "_of"; - const _opaque = _of + 1; - ContextualKeyword2[ContextualKeyword2["_opaque"] = _opaque] = "_opaque"; - const _out = _opaque + 1; - ContextualKeyword2[ContextualKeyword2["_out"] = _out] = "_out"; - const _override = _out + 1; - ContextualKeyword2[ContextualKeyword2["_override"] = _override] = "_override"; - const _private = _override + 1; - ContextualKeyword2[ContextualKeyword2["_private"] = _private] = "_private"; - const _protected = _private + 1; - ContextualKeyword2[ContextualKeyword2["_protected"] = _protected] = "_protected"; - const _proto = _protected + 1; - ContextualKeyword2[ContextualKeyword2["_proto"] = _proto] = "_proto"; - const _public = _proto + 1; - ContextualKeyword2[ContextualKeyword2["_public"] = _public] = "_public"; - const _readonly = _public + 1; - ContextualKeyword2[ContextualKeyword2["_readonly"] = _readonly] = "_readonly"; - const _require = _readonly + 1; - ContextualKeyword2[ContextualKeyword2["_require"] = _require] = "_require"; - const _satisfies = _require + 1; - ContextualKeyword2[ContextualKeyword2["_satisfies"] = _satisfies] = "_satisfies"; - const _set = _satisfies + 1; - ContextualKeyword2[ContextualKeyword2["_set"] = _set] = "_set"; - const _static = _set + 1; - ContextualKeyword2[ContextualKeyword2["_static"] = _static] = "_static"; - const _symbol = _static + 1; - ContextualKeyword2[ContextualKeyword2["_symbol"] = _symbol] = "_symbol"; - const _type = _symbol + 1; - ContextualKeyword2[ContextualKeyword2["_type"] = _type] = "_type"; - const _unique = _type + 1; - ContextualKeyword2[ContextualKeyword2["_unique"] = _unique] = "_unique"; - const _using = _unique + 1; - ContextualKeyword2[ContextualKeyword2["_using"] = _using] = "_using"; - })(ContextualKeyword || (exports2.ContextualKeyword = ContextualKeyword = {})); - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/types.js -var require_types = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/types.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var TokenType; - (function(TokenType2) { - const PRECEDENCE_MASK = 15; - TokenType2[TokenType2["PRECEDENCE_MASK"] = PRECEDENCE_MASK] = "PRECEDENCE_MASK"; - const IS_KEYWORD = 1 << 4; - TokenType2[TokenType2["IS_KEYWORD"] = IS_KEYWORD] = "IS_KEYWORD"; - const IS_ASSIGN = 1 << 5; - TokenType2[TokenType2["IS_ASSIGN"] = IS_ASSIGN] = "IS_ASSIGN"; - const IS_RIGHT_ASSOCIATIVE = 1 << 6; - TokenType2[TokenType2["IS_RIGHT_ASSOCIATIVE"] = IS_RIGHT_ASSOCIATIVE] = "IS_RIGHT_ASSOCIATIVE"; - const IS_PREFIX = 1 << 7; - TokenType2[TokenType2["IS_PREFIX"] = IS_PREFIX] = "IS_PREFIX"; - const IS_POSTFIX = 1 << 8; - TokenType2[TokenType2["IS_POSTFIX"] = IS_POSTFIX] = "IS_POSTFIX"; - const IS_EXPRESSION_START = 1 << 9; - TokenType2[TokenType2["IS_EXPRESSION_START"] = IS_EXPRESSION_START] = "IS_EXPRESSION_START"; - const num = 512; - TokenType2[TokenType2["num"] = num] = "num"; - const bigint = 1536; - TokenType2[TokenType2["bigint"] = bigint] = "bigint"; - const decimal = 2560; - TokenType2[TokenType2["decimal"] = decimal] = "decimal"; - const regexp3 = 3584; - TokenType2[TokenType2["regexp"] = regexp3] = "regexp"; - const string2 = 4608; - TokenType2[TokenType2["string"] = string2] = "string"; - const name = 5632; - TokenType2[TokenType2["name"] = name] = "name"; - const eof = 6144; - TokenType2[TokenType2["eof"] = eof] = "eof"; - const bracketL = 7680; - TokenType2[TokenType2["bracketL"] = bracketL] = "bracketL"; - const bracketR = 8192; - TokenType2[TokenType2["bracketR"] = bracketR] = "bracketR"; - const braceL = 9728; - TokenType2[TokenType2["braceL"] = braceL] = "braceL"; - const braceBarL = 10752; - TokenType2[TokenType2["braceBarL"] = braceBarL] = "braceBarL"; - const braceR = 11264; - TokenType2[TokenType2["braceR"] = braceR] = "braceR"; - const braceBarR = 12288; - TokenType2[TokenType2["braceBarR"] = braceBarR] = "braceBarR"; - const parenL = 13824; - TokenType2[TokenType2["parenL"] = parenL] = "parenL"; - const parenR = 14336; - TokenType2[TokenType2["parenR"] = parenR] = "parenR"; - const comma = 15360; - TokenType2[TokenType2["comma"] = comma] = "comma"; - const semi = 16384; - TokenType2[TokenType2["semi"] = semi] = "semi"; - const colon = 17408; - TokenType2[TokenType2["colon"] = colon] = "colon"; - const doubleColon = 18432; - TokenType2[TokenType2["doubleColon"] = doubleColon] = "doubleColon"; - const dot = 19456; - TokenType2[TokenType2["dot"] = dot] = "dot"; - const question = 20480; - TokenType2[TokenType2["question"] = question] = "question"; - const questionDot = 21504; - TokenType2[TokenType2["questionDot"] = questionDot] = "questionDot"; - const arrow2 = 22528; - TokenType2[TokenType2["arrow"] = arrow2] = "arrow"; - const template = 23552; - TokenType2[TokenType2["template"] = template] = "template"; - const ellipsis = 24576; - TokenType2[TokenType2["ellipsis"] = ellipsis] = "ellipsis"; - const backQuote = 25600; - TokenType2[TokenType2["backQuote"] = backQuote] = "backQuote"; - const dollarBraceL = 27136; - TokenType2[TokenType2["dollarBraceL"] = dollarBraceL] = "dollarBraceL"; - const at = 27648; - TokenType2[TokenType2["at"] = at] = "at"; - const hash2 = 29184; - TokenType2[TokenType2["hash"] = hash2] = "hash"; - const eq = 29728; - TokenType2[TokenType2["eq"] = eq] = "eq"; - const assign2 = 30752; - TokenType2[TokenType2["assign"] = assign2] = "assign"; - const preIncDec = 32640; - TokenType2[TokenType2["preIncDec"] = preIncDec] = "preIncDec"; - const postIncDec = 33664; - TokenType2[TokenType2["postIncDec"] = postIncDec] = "postIncDec"; - const bang = 34432; - TokenType2[TokenType2["bang"] = bang] = "bang"; - const tilde = 35456; - TokenType2[TokenType2["tilde"] = tilde] = "tilde"; - const pipeline = 35841; - TokenType2[TokenType2["pipeline"] = pipeline] = "pipeline"; - const nullishCoalescing = 36866; - TokenType2[TokenType2["nullishCoalescing"] = nullishCoalescing] = "nullishCoalescing"; - const logicalOR = 37890; - TokenType2[TokenType2["logicalOR"] = logicalOR] = "logicalOR"; - const logicalAND = 38915; - TokenType2[TokenType2["logicalAND"] = logicalAND] = "logicalAND"; - const bitwiseOR = 39940; - TokenType2[TokenType2["bitwiseOR"] = bitwiseOR] = "bitwiseOR"; - const bitwiseXOR = 40965; - TokenType2[TokenType2["bitwiseXOR"] = bitwiseXOR] = "bitwiseXOR"; - const bitwiseAND = 41990; - TokenType2[TokenType2["bitwiseAND"] = bitwiseAND] = "bitwiseAND"; - const equality = 43015; - TokenType2[TokenType2["equality"] = equality] = "equality"; - const lessThan = 44040; - TokenType2[TokenType2["lessThan"] = lessThan] = "lessThan"; - const greaterThan = 45064; - TokenType2[TokenType2["greaterThan"] = greaterThan] = "greaterThan"; - const relationalOrEqual = 46088; - TokenType2[TokenType2["relationalOrEqual"] = relationalOrEqual] = "relationalOrEqual"; - const bitShiftL = 47113; - TokenType2[TokenType2["bitShiftL"] = bitShiftL] = "bitShiftL"; - const bitShiftR = 48137; - TokenType2[TokenType2["bitShiftR"] = bitShiftR] = "bitShiftR"; - const plus = 49802; - TokenType2[TokenType2["plus"] = plus] = "plus"; - const minus = 50826; - TokenType2[TokenType2["minus"] = minus] = "minus"; - const modulo = 51723; - TokenType2[TokenType2["modulo"] = modulo] = "modulo"; - const star = 52235; - TokenType2[TokenType2["star"] = star] = "star"; - const slash = 53259; - TokenType2[TokenType2["slash"] = slash] = "slash"; - const exponent = 54348; - TokenType2[TokenType2["exponent"] = exponent] = "exponent"; - const jsxName = 55296; - TokenType2[TokenType2["jsxName"] = jsxName] = "jsxName"; - const jsxText = 56320; - TokenType2[TokenType2["jsxText"] = jsxText] = "jsxText"; - const jsxEmptyText = 57344; - TokenType2[TokenType2["jsxEmptyText"] = jsxEmptyText] = "jsxEmptyText"; - const jsxTagStart = 58880; - TokenType2[TokenType2["jsxTagStart"] = jsxTagStart] = "jsxTagStart"; - const jsxTagEnd = 59392; - TokenType2[TokenType2["jsxTagEnd"] = jsxTagEnd] = "jsxTagEnd"; - const typeParameterStart = 60928; - TokenType2[TokenType2["typeParameterStart"] = typeParameterStart] = "typeParameterStart"; - const nonNullAssertion = 61440; - TokenType2[TokenType2["nonNullAssertion"] = nonNullAssertion] = "nonNullAssertion"; - const _break = 62480; - TokenType2[TokenType2["_break"] = _break] = "_break"; - const _case = 63504; - TokenType2[TokenType2["_case"] = _case] = "_case"; - const _catch = 64528; - TokenType2[TokenType2["_catch"] = _catch] = "_catch"; - const _continue = 65552; - TokenType2[TokenType2["_continue"] = _continue] = "_continue"; - const _debugger = 66576; - TokenType2[TokenType2["_debugger"] = _debugger] = "_debugger"; - const _default2 = 67600; - TokenType2[TokenType2["_default"] = _default2] = "_default"; - const _do = 68624; - TokenType2[TokenType2["_do"] = _do] = "_do"; - const _else = 69648; - TokenType2[TokenType2["_else"] = _else] = "_else"; - const _finally = 70672; - TokenType2[TokenType2["_finally"] = _finally] = "_finally"; - const _for = 71696; - TokenType2[TokenType2["_for"] = _for] = "_for"; - const _function = 73232; - TokenType2[TokenType2["_function"] = _function] = "_function"; - const _if = 73744; - TokenType2[TokenType2["_if"] = _if] = "_if"; - const _return = 74768; - TokenType2[TokenType2["_return"] = _return] = "_return"; - const _switch = 75792; - TokenType2[TokenType2["_switch"] = _switch] = "_switch"; - const _throw = 77456; - TokenType2[TokenType2["_throw"] = _throw] = "_throw"; - const _try = 77840; - TokenType2[TokenType2["_try"] = _try] = "_try"; - const _var = 78864; - TokenType2[TokenType2["_var"] = _var] = "_var"; - const _let = 79888; - TokenType2[TokenType2["_let"] = _let] = "_let"; - const _const = 80912; - TokenType2[TokenType2["_const"] = _const] = "_const"; - const _while = 81936; - TokenType2[TokenType2["_while"] = _while] = "_while"; - const _with = 82960; - TokenType2[TokenType2["_with"] = _with] = "_with"; - const _new = 84496; - TokenType2[TokenType2["_new"] = _new] = "_new"; - const _this = 85520; - TokenType2[TokenType2["_this"] = _this] = "_this"; - const _super = 86544; - TokenType2[TokenType2["_super"] = _super] = "_super"; - const _class = 87568; - TokenType2[TokenType2["_class"] = _class] = "_class"; - const _extends2 = 88080; - TokenType2[TokenType2["_extends"] = _extends2] = "_extends"; - const _export = 89104; - TokenType2[TokenType2["_export"] = _export] = "_export"; - const _import = 90640; - TokenType2[TokenType2["_import"] = _import] = "_import"; - const _yield = 91664; - TokenType2[TokenType2["_yield"] = _yield] = "_yield"; - const _null = 92688; - TokenType2[TokenType2["_null"] = _null] = "_null"; - const _true = 93712; - TokenType2[TokenType2["_true"] = _true] = "_true"; - const _false = 94736; - TokenType2[TokenType2["_false"] = _false] = "_false"; - const _in = 95256; - TokenType2[TokenType2["_in"] = _in] = "_in"; - const _instanceof = 96280; - TokenType2[TokenType2["_instanceof"] = _instanceof] = "_instanceof"; - const _typeof2 = 97936; - TokenType2[TokenType2["_typeof"] = _typeof2] = "_typeof"; - const _void = 98960; - TokenType2[TokenType2["_void"] = _void] = "_void"; - const _delete = 99984; - TokenType2[TokenType2["_delete"] = _delete] = "_delete"; - const _async = 100880; - TokenType2[TokenType2["_async"] = _async] = "_async"; - const _get = 101904; - TokenType2[TokenType2["_get"] = _get] = "_get"; - const _set = 102928; - TokenType2[TokenType2["_set"] = _set] = "_set"; - const _declare = 103952; - TokenType2[TokenType2["_declare"] = _declare] = "_declare"; - const _readonly = 104976; - TokenType2[TokenType2["_readonly"] = _readonly] = "_readonly"; - const _abstract = 106e3; - TokenType2[TokenType2["_abstract"] = _abstract] = "_abstract"; - const _static = 107024; - TokenType2[TokenType2["_static"] = _static] = "_static"; - const _public = 107536; - TokenType2[TokenType2["_public"] = _public] = "_public"; - const _private = 108560; - TokenType2[TokenType2["_private"] = _private] = "_private"; - const _protected = 109584; - TokenType2[TokenType2["_protected"] = _protected] = "_protected"; - const _override = 110608; - TokenType2[TokenType2["_override"] = _override] = "_override"; - const _as = 112144; - TokenType2[TokenType2["_as"] = _as] = "_as"; - const _enum = 113168; - TokenType2[TokenType2["_enum"] = _enum] = "_enum"; - const _type = 114192; - TokenType2[TokenType2["_type"] = _type] = "_type"; - const _implements = 115216; - TokenType2[TokenType2["_implements"] = _implements] = "_implements"; - })(TokenType || (exports2.TokenType = TokenType = {})); - function formatTokenType(tokenType) { - switch (tokenType) { - case TokenType.num: - return "num"; - case TokenType.bigint: - return "bigint"; - case TokenType.decimal: - return "decimal"; - case TokenType.regexp: - return "regexp"; - case TokenType.string: - return "string"; - case TokenType.name: - return "name"; - case TokenType.eof: - return "eof"; - case TokenType.bracketL: - return "["; - case TokenType.bracketR: - return "]"; - case TokenType.braceL: - return "{"; - case TokenType.braceBarL: - return "{|"; - case TokenType.braceR: - return "}"; - case TokenType.braceBarR: - return "|}"; - case TokenType.parenL: - return "("; - case TokenType.parenR: - return ")"; - case TokenType.comma: - return ","; - case TokenType.semi: - return ";"; - case TokenType.colon: - return ":"; - case TokenType.doubleColon: - return "::"; - case TokenType.dot: - return "."; - case TokenType.question: - return "?"; - case TokenType.questionDot: - return "?."; - case TokenType.arrow: - return "=>"; - case TokenType.template: - return "template"; - case TokenType.ellipsis: - return "..."; - case TokenType.backQuote: - return "`"; - case TokenType.dollarBraceL: - return "${"; - case TokenType.at: - return "@"; - case TokenType.hash: - return "#"; - case TokenType.eq: - return "="; - case TokenType.assign: - return "_="; - case TokenType.preIncDec: - return "++/--"; - case TokenType.postIncDec: - return "++/--"; - case TokenType.bang: - return "!"; - case TokenType.tilde: - return "~"; - case TokenType.pipeline: - return "|>"; - case TokenType.nullishCoalescing: - return "??"; - case TokenType.logicalOR: - return "||"; - case TokenType.logicalAND: - return "&&"; - case TokenType.bitwiseOR: - return "|"; - case TokenType.bitwiseXOR: - return "^"; - case TokenType.bitwiseAND: - return "&"; - case TokenType.equality: - return "==/!="; - case TokenType.lessThan: - return "<"; - case TokenType.greaterThan: - return ">"; - case TokenType.relationalOrEqual: - return "<=/>="; - case TokenType.bitShiftL: - return "<<"; - case TokenType.bitShiftR: - return ">>/>>>"; - case TokenType.plus: - return "+"; - case TokenType.minus: - return "-"; - case TokenType.modulo: - return "%"; - case TokenType.star: - return "*"; - case TokenType.slash: - return "/"; - case TokenType.exponent: - return "**"; - case TokenType.jsxName: - return "jsxName"; - case TokenType.jsxText: - return "jsxText"; - case TokenType.jsxEmptyText: - return "jsxEmptyText"; - case TokenType.jsxTagStart: - return "jsxTagStart"; - case TokenType.jsxTagEnd: - return "jsxTagEnd"; - case TokenType.typeParameterStart: - return "typeParameterStart"; - case TokenType.nonNullAssertion: - return "nonNullAssertion"; - case TokenType._break: - return "break"; - case TokenType._case: - return "case"; - case TokenType._catch: - return "catch"; - case TokenType._continue: - return "continue"; - case TokenType._debugger: - return "debugger"; - case TokenType._default: - return "default"; - case TokenType._do: - return "do"; - case TokenType._else: - return "else"; - case TokenType._finally: - return "finally"; - case TokenType._for: - return "for"; - case TokenType._function: - return "function"; - case TokenType._if: - return "if"; - case TokenType._return: - return "return"; - case TokenType._switch: - return "switch"; - case TokenType._throw: - return "throw"; - case TokenType._try: - return "try"; - case TokenType._var: - return "var"; - case TokenType._let: - return "let"; - case TokenType._const: - return "const"; - case TokenType._while: - return "while"; - case TokenType._with: - return "with"; - case TokenType._new: - return "new"; - case TokenType._this: - return "this"; - case TokenType._super: - return "super"; - case TokenType._class: - return "class"; - case TokenType._extends: - return "extends"; - case TokenType._export: - return "export"; - case TokenType._import: - return "import"; - case TokenType._yield: - return "yield"; - case TokenType._null: - return "null"; - case TokenType._true: - return "true"; - case TokenType._false: - return "false"; - case TokenType._in: - return "in"; - case TokenType._instanceof: - return "instanceof"; - case TokenType._typeof: - return "typeof"; - case TokenType._void: - return "void"; - case TokenType._delete: - return "delete"; - case TokenType._async: - return "async"; - case TokenType._get: - return "get"; - case TokenType._set: - return "set"; - case TokenType._declare: - return "declare"; - case TokenType._readonly: - return "readonly"; - case TokenType._abstract: - return "abstract"; - case TokenType._static: - return "static"; - case TokenType._public: - return "public"; - case TokenType._private: - return "private"; - case TokenType._protected: - return "protected"; - case TokenType._override: - return "override"; - case TokenType._as: - return "as"; - case TokenType._enum: - return "enum"; - case TokenType._type: - return "type"; - case TokenType._implements: - return "implements"; - default: - return ""; - } - } - exports2.formatTokenType = formatTokenType; - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/state.js -var require_state = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/state.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - var _types = require_types(); - var Scope = class { - constructor(startTokenIndex, endTokenIndex, isFunctionScope) { - this.startTokenIndex = startTokenIndex; - this.endTokenIndex = endTokenIndex; - this.isFunctionScope = isFunctionScope; - } - }; - exports2.Scope = Scope; - var StateSnapshot = class { - constructor(potentialArrowAt, noAnonFunctionType, inDisallowConditionalTypesContext, tokensLength, scopesLength, pos, type, contextualKeyword, start, end2, isType, scopeDepth, error) { - ; - this.potentialArrowAt = potentialArrowAt; - this.noAnonFunctionType = noAnonFunctionType; - this.inDisallowConditionalTypesContext = inDisallowConditionalTypesContext; - this.tokensLength = tokensLength; - this.scopesLength = scopesLength; - this.pos = pos; - this.type = type; - this.contextualKeyword = contextualKeyword; - this.start = start; - this.end = end2; - this.isType = isType; - this.scopeDepth = scopeDepth; - this.error = error; - } - }; - exports2.StateSnapshot = StateSnapshot; - var State = class _State { - constructor() { - _State.prototype.__init.call(this); - _State.prototype.__init2.call(this); - _State.prototype.__init3.call(this); - _State.prototype.__init4.call(this); - _State.prototype.__init5.call(this); - _State.prototype.__init6.call(this); - _State.prototype.__init7.call(this); - _State.prototype.__init8.call(this); - _State.prototype.__init9.call(this); - _State.prototype.__init10.call(this); - _State.prototype.__init11.call(this); - _State.prototype.__init12.call(this); - _State.prototype.__init13.call(this); - } - // Used to signify the start of a potential arrow function - __init() { - this.potentialArrowAt = -1; - } - // Used by Flow to handle an edge case involving function type parsing. - __init2() { - this.noAnonFunctionType = false; - } - // Used by TypeScript to handle ambiguities when parsing conditional types. - __init3() { - this.inDisallowConditionalTypesContext = false; - } - // Token store. - __init4() { - this.tokens = []; - } - // Array of all observed scopes, ordered by their ending position. - __init5() { - this.scopes = []; - } - // The current position of the tokenizer in the input. - __init6() { - this.pos = 0; - } - // Information about the current token. - __init7() { - this.type = _types.TokenType.eof; - } - __init8() { - this.contextualKeyword = _keywords.ContextualKeyword.NONE; - } - __init9() { - this.start = 0; - } - __init10() { - this.end = 0; - } - __init11() { - this.isType = false; - } - __init12() { - this.scopeDepth = 0; - } - /** - * If the parser is in an error state, then the token is always tt.eof and all functions can - * keep executing but should be written so they don't get into an infinite loop in this situation. - * - * This approach, combined with the ability to snapshot and restore state, allows us to implement - * backtracking without exceptions and without needing to explicitly propagate error states - * everywhere. - */ - __init13() { - this.error = null; - } - snapshot() { - return new StateSnapshot( - this.potentialArrowAt, - this.noAnonFunctionType, - this.inDisallowConditionalTypesContext, - this.tokens.length, - this.scopes.length, - this.pos, - this.type, - this.contextualKeyword, - this.start, - this.end, - this.isType, - this.scopeDepth, - this.error - ); - } - restoreFromSnapshot(snapshot) { - this.potentialArrowAt = snapshot.potentialArrowAt; - this.noAnonFunctionType = snapshot.noAnonFunctionType; - this.inDisallowConditionalTypesContext = snapshot.inDisallowConditionalTypesContext; - this.tokens.length = snapshot.tokensLength; - this.scopes.length = snapshot.scopesLength; - this.pos = snapshot.pos; - this.type = snapshot.type; - this.contextualKeyword = snapshot.contextualKeyword; - this.start = snapshot.start; - this.end = snapshot.end; - this.isType = snapshot.isType; - this.scopeDepth = snapshot.scopeDepth; - this.error = snapshot.error; - } - }; - exports2.default = State; - } -}); - -// node_modules/sucrase/dist/parser/util/charcodes.js -var require_charcodes = __commonJS({ - "node_modules/sucrase/dist/parser/util/charcodes.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var charCodes; - (function(charCodes2) { - const backSpace = 8; - charCodes2[charCodes2["backSpace"] = backSpace] = "backSpace"; - const lineFeed = 10; - charCodes2[charCodes2["lineFeed"] = lineFeed] = "lineFeed"; - const tab = 9; - charCodes2[charCodes2["tab"] = tab] = "tab"; - const carriageReturn = 13; - charCodes2[charCodes2["carriageReturn"] = carriageReturn] = "carriageReturn"; - const shiftOut = 14; - charCodes2[charCodes2["shiftOut"] = shiftOut] = "shiftOut"; - const space = 32; - charCodes2[charCodes2["space"] = space] = "space"; - const exclamationMark = 33; - charCodes2[charCodes2["exclamationMark"] = exclamationMark] = "exclamationMark"; - const quotationMark = 34; - charCodes2[charCodes2["quotationMark"] = quotationMark] = "quotationMark"; - const numberSign = 35; - charCodes2[charCodes2["numberSign"] = numberSign] = "numberSign"; - const dollarSign = 36; - charCodes2[charCodes2["dollarSign"] = dollarSign] = "dollarSign"; - const percentSign = 37; - charCodes2[charCodes2["percentSign"] = percentSign] = "percentSign"; - const ampersand = 38; - charCodes2[charCodes2["ampersand"] = ampersand] = "ampersand"; - const apostrophe = 39; - charCodes2[charCodes2["apostrophe"] = apostrophe] = "apostrophe"; - const leftParenthesis = 40; - charCodes2[charCodes2["leftParenthesis"] = leftParenthesis] = "leftParenthesis"; - const rightParenthesis = 41; - charCodes2[charCodes2["rightParenthesis"] = rightParenthesis] = "rightParenthesis"; - const asterisk = 42; - charCodes2[charCodes2["asterisk"] = asterisk] = "asterisk"; - const plusSign = 43; - charCodes2[charCodes2["plusSign"] = plusSign] = "plusSign"; - const comma = 44; - charCodes2[charCodes2["comma"] = comma] = "comma"; - const dash = 45; - charCodes2[charCodes2["dash"] = dash] = "dash"; - const dot = 46; - charCodes2[charCodes2["dot"] = dot] = "dot"; - const slash = 47; - charCodes2[charCodes2["slash"] = slash] = "slash"; - const digit0 = 48; - charCodes2[charCodes2["digit0"] = digit0] = "digit0"; - const digit1 = 49; - charCodes2[charCodes2["digit1"] = digit1] = "digit1"; - const digit2 = 50; - charCodes2[charCodes2["digit2"] = digit2] = "digit2"; - const digit3 = 51; - charCodes2[charCodes2["digit3"] = digit3] = "digit3"; - const digit4 = 52; - charCodes2[charCodes2["digit4"] = digit4] = "digit4"; - const digit5 = 53; - charCodes2[charCodes2["digit5"] = digit5] = "digit5"; - const digit6 = 54; - charCodes2[charCodes2["digit6"] = digit6] = "digit6"; - const digit7 = 55; - charCodes2[charCodes2["digit7"] = digit7] = "digit7"; - const digit8 = 56; - charCodes2[charCodes2["digit8"] = digit8] = "digit8"; - const digit9 = 57; - charCodes2[charCodes2["digit9"] = digit9] = "digit9"; - const colon = 58; - charCodes2[charCodes2["colon"] = colon] = "colon"; - const semicolon = 59; - charCodes2[charCodes2["semicolon"] = semicolon] = "semicolon"; - const lessThan = 60; - charCodes2[charCodes2["lessThan"] = lessThan] = "lessThan"; - const equalsTo = 61; - charCodes2[charCodes2["equalsTo"] = equalsTo] = "equalsTo"; - const greaterThan = 62; - charCodes2[charCodes2["greaterThan"] = greaterThan] = "greaterThan"; - const questionMark = 63; - charCodes2[charCodes2["questionMark"] = questionMark] = "questionMark"; - const atSign = 64; - charCodes2[charCodes2["atSign"] = atSign] = "atSign"; - const uppercaseA = 65; - charCodes2[charCodes2["uppercaseA"] = uppercaseA] = "uppercaseA"; - const uppercaseB = 66; - charCodes2[charCodes2["uppercaseB"] = uppercaseB] = "uppercaseB"; - const uppercaseC = 67; - charCodes2[charCodes2["uppercaseC"] = uppercaseC] = "uppercaseC"; - const uppercaseD = 68; - charCodes2[charCodes2["uppercaseD"] = uppercaseD] = "uppercaseD"; - const uppercaseE = 69; - charCodes2[charCodes2["uppercaseE"] = uppercaseE] = "uppercaseE"; - const uppercaseF = 70; - charCodes2[charCodes2["uppercaseF"] = uppercaseF] = "uppercaseF"; - const uppercaseG = 71; - charCodes2[charCodes2["uppercaseG"] = uppercaseG] = "uppercaseG"; - const uppercaseH = 72; - charCodes2[charCodes2["uppercaseH"] = uppercaseH] = "uppercaseH"; - const uppercaseI = 73; - charCodes2[charCodes2["uppercaseI"] = uppercaseI] = "uppercaseI"; - const uppercaseJ = 74; - charCodes2[charCodes2["uppercaseJ"] = uppercaseJ] = "uppercaseJ"; - const uppercaseK = 75; - charCodes2[charCodes2["uppercaseK"] = uppercaseK] = "uppercaseK"; - const uppercaseL = 76; - charCodes2[charCodes2["uppercaseL"] = uppercaseL] = "uppercaseL"; - const uppercaseM = 77; - charCodes2[charCodes2["uppercaseM"] = uppercaseM] = "uppercaseM"; - const uppercaseN = 78; - charCodes2[charCodes2["uppercaseN"] = uppercaseN] = "uppercaseN"; - const uppercaseO = 79; - charCodes2[charCodes2["uppercaseO"] = uppercaseO] = "uppercaseO"; - const uppercaseP = 80; - charCodes2[charCodes2["uppercaseP"] = uppercaseP] = "uppercaseP"; - const uppercaseQ = 81; - charCodes2[charCodes2["uppercaseQ"] = uppercaseQ] = "uppercaseQ"; - const uppercaseR = 82; - charCodes2[charCodes2["uppercaseR"] = uppercaseR] = "uppercaseR"; - const uppercaseS = 83; - charCodes2[charCodes2["uppercaseS"] = uppercaseS] = "uppercaseS"; - const uppercaseT = 84; - charCodes2[charCodes2["uppercaseT"] = uppercaseT] = "uppercaseT"; - const uppercaseU = 85; - charCodes2[charCodes2["uppercaseU"] = uppercaseU] = "uppercaseU"; - const uppercaseV = 86; - charCodes2[charCodes2["uppercaseV"] = uppercaseV] = "uppercaseV"; - const uppercaseW = 87; - charCodes2[charCodes2["uppercaseW"] = uppercaseW] = "uppercaseW"; - const uppercaseX = 88; - charCodes2[charCodes2["uppercaseX"] = uppercaseX] = "uppercaseX"; - const uppercaseY = 89; - charCodes2[charCodes2["uppercaseY"] = uppercaseY] = "uppercaseY"; - const uppercaseZ = 90; - charCodes2[charCodes2["uppercaseZ"] = uppercaseZ] = "uppercaseZ"; - const leftSquareBracket = 91; - charCodes2[charCodes2["leftSquareBracket"] = leftSquareBracket] = "leftSquareBracket"; - const backslash = 92; - charCodes2[charCodes2["backslash"] = backslash] = "backslash"; - const rightSquareBracket = 93; - charCodes2[charCodes2["rightSquareBracket"] = rightSquareBracket] = "rightSquareBracket"; - const caret2 = 94; - charCodes2[charCodes2["caret"] = caret2] = "caret"; - const underscore = 95; - charCodes2[charCodes2["underscore"] = underscore] = "underscore"; - const graveAccent = 96; - charCodes2[charCodes2["graveAccent"] = graveAccent] = "graveAccent"; - const lowercaseA = 97; - charCodes2[charCodes2["lowercaseA"] = lowercaseA] = "lowercaseA"; - const lowercaseB = 98; - charCodes2[charCodes2["lowercaseB"] = lowercaseB] = "lowercaseB"; - const lowercaseC = 99; - charCodes2[charCodes2["lowercaseC"] = lowercaseC] = "lowercaseC"; - const lowercaseD = 100; - charCodes2[charCodes2["lowercaseD"] = lowercaseD] = "lowercaseD"; - const lowercaseE = 101; - charCodes2[charCodes2["lowercaseE"] = lowercaseE] = "lowercaseE"; - const lowercaseF = 102; - charCodes2[charCodes2["lowercaseF"] = lowercaseF] = "lowercaseF"; - const lowercaseG = 103; - charCodes2[charCodes2["lowercaseG"] = lowercaseG] = "lowercaseG"; - const lowercaseH = 104; - charCodes2[charCodes2["lowercaseH"] = lowercaseH] = "lowercaseH"; - const lowercaseI = 105; - charCodes2[charCodes2["lowercaseI"] = lowercaseI] = "lowercaseI"; - const lowercaseJ = 106; - charCodes2[charCodes2["lowercaseJ"] = lowercaseJ] = "lowercaseJ"; - const lowercaseK = 107; - charCodes2[charCodes2["lowercaseK"] = lowercaseK] = "lowercaseK"; - const lowercaseL = 108; - charCodes2[charCodes2["lowercaseL"] = lowercaseL] = "lowercaseL"; - const lowercaseM = 109; - charCodes2[charCodes2["lowercaseM"] = lowercaseM] = "lowercaseM"; - const lowercaseN = 110; - charCodes2[charCodes2["lowercaseN"] = lowercaseN] = "lowercaseN"; - const lowercaseO = 111; - charCodes2[charCodes2["lowercaseO"] = lowercaseO] = "lowercaseO"; - const lowercaseP = 112; - charCodes2[charCodes2["lowercaseP"] = lowercaseP] = "lowercaseP"; - const lowercaseQ = 113; - charCodes2[charCodes2["lowercaseQ"] = lowercaseQ] = "lowercaseQ"; - const lowercaseR = 114; - charCodes2[charCodes2["lowercaseR"] = lowercaseR] = "lowercaseR"; - const lowercaseS = 115; - charCodes2[charCodes2["lowercaseS"] = lowercaseS] = "lowercaseS"; - const lowercaseT = 116; - charCodes2[charCodes2["lowercaseT"] = lowercaseT] = "lowercaseT"; - const lowercaseU = 117; - charCodes2[charCodes2["lowercaseU"] = lowercaseU] = "lowercaseU"; - const lowercaseV = 118; - charCodes2[charCodes2["lowercaseV"] = lowercaseV] = "lowercaseV"; - const lowercaseW = 119; - charCodes2[charCodes2["lowercaseW"] = lowercaseW] = "lowercaseW"; - const lowercaseX = 120; - charCodes2[charCodes2["lowercaseX"] = lowercaseX] = "lowercaseX"; - const lowercaseY = 121; - charCodes2[charCodes2["lowercaseY"] = lowercaseY] = "lowercaseY"; - const lowercaseZ = 122; - charCodes2[charCodes2["lowercaseZ"] = lowercaseZ] = "lowercaseZ"; - const leftCurlyBrace = 123; - charCodes2[charCodes2["leftCurlyBrace"] = leftCurlyBrace] = "leftCurlyBrace"; - const verticalBar = 124; - charCodes2[charCodes2["verticalBar"] = verticalBar] = "verticalBar"; - const rightCurlyBrace = 125; - charCodes2[charCodes2["rightCurlyBrace"] = rightCurlyBrace] = "rightCurlyBrace"; - const tilde = 126; - charCodes2[charCodes2["tilde"] = tilde] = "tilde"; - const nonBreakingSpace = 160; - charCodes2[charCodes2["nonBreakingSpace"] = nonBreakingSpace] = "nonBreakingSpace"; - const oghamSpaceMark = 5760; - charCodes2[charCodes2["oghamSpaceMark"] = oghamSpaceMark] = "oghamSpaceMark"; - const lineSeparator = 8232; - charCodes2[charCodes2["lineSeparator"] = lineSeparator] = "lineSeparator"; - const paragraphSeparator = 8233; - charCodes2[charCodes2["paragraphSeparator"] = paragraphSeparator] = "paragraphSeparator"; - })(charCodes || (exports2.charCodes = charCodes = {})); - function isDigit(code) { - return code >= charCodes.digit0 && code <= charCodes.digit9 || code >= charCodes.lowercaseA && code <= charCodes.lowercaseF || code >= charCodes.uppercaseA && code <= charCodes.uppercaseF; - } - exports2.isDigit = isDigit; - } -}); - -// node_modules/sucrase/dist/parser/traverser/base.js -var require_base = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/base.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _state = require_state(); - var _state2 = _interopRequireDefault(_state); - var _charcodes = require_charcodes(); - exports2.isJSXEnabled; - exports2.isTypeScriptEnabled; - exports2.isFlowEnabled; - exports2.state; - exports2.input; - exports2.nextContextId; - function getNextContextId() { - return exports2.nextContextId++; - } - exports2.getNextContextId = getNextContextId; - function augmentError(error) { - if ("pos" in error) { - const loc = locationForIndex(error.pos); - error.message += ` (${loc.line}:${loc.column})`; - error.loc = loc; - } - return error; - } - exports2.augmentError = augmentError; - var Loc = class { - constructor(line2, column2) { - this.line = line2; - this.column = column2; - } - }; - exports2.Loc = Loc; - function locationForIndex(pos) { - let line2 = 1; - let column2 = 1; - for (let i4 = 0; i4 < pos; i4++) { - if (exports2.input.charCodeAt(i4) === _charcodes.charCodes.lineFeed) { - line2++; - column2 = 1; - } else { - column2++; - } - } - return new Loc(line2, column2); - } - exports2.locationForIndex = locationForIndex; - function initParser(inputCode, isJSXEnabledArg, isTypeScriptEnabledArg, isFlowEnabledArg) { - exports2.input = inputCode; - exports2.state = new (0, _state2.default)(); - exports2.nextContextId = 1; - exports2.isJSXEnabled = isJSXEnabledArg; - exports2.isTypeScriptEnabled = isTypeScriptEnabledArg; - exports2.isFlowEnabled = isFlowEnabledArg; - } - exports2.initParser = initParser; - } -}); - -// node_modules/sucrase/dist/parser/traverser/util.js -var require_util = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/util.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _types = require_types(); - var _charcodes = require_charcodes(); - var _base = require_base(); - function isContextual(contextualKeyword) { - return _base.state.contextualKeyword === contextualKeyword; - } - exports2.isContextual = isContextual; - function isLookaheadContextual(contextualKeyword) { - const l4 = _index.lookaheadTypeAndKeyword.call(void 0); - return l4.type === _types.TokenType.name && l4.contextualKeyword === contextualKeyword; - } - exports2.isLookaheadContextual = isLookaheadContextual; - function eatContextual(contextualKeyword) { - return _base.state.contextualKeyword === contextualKeyword && _index.eat.call(void 0, _types.TokenType.name); - } - exports2.eatContextual = eatContextual; - function expectContextual(contextualKeyword) { - if (!eatContextual(contextualKeyword)) { - unexpected(); - } - } - exports2.expectContextual = expectContextual; - function canInsertSemicolon() { - return _index.match.call(void 0, _types.TokenType.eof) || _index.match.call(void 0, _types.TokenType.braceR) || hasPrecedingLineBreak(); - } - exports2.canInsertSemicolon = canInsertSemicolon; - function hasPrecedingLineBreak() { - const prevToken = _base.state.tokens[_base.state.tokens.length - 1]; - const lastTokEnd = prevToken ? prevToken.end : 0; - for (let i4 = lastTokEnd; i4 < _base.state.start; i4++) { - const code = _base.input.charCodeAt(i4); - if (code === _charcodes.charCodes.lineFeed || code === _charcodes.charCodes.carriageReturn || code === 8232 || code === 8233) { - return true; - } - } - return false; - } - exports2.hasPrecedingLineBreak = hasPrecedingLineBreak; - function hasFollowingLineBreak() { - const nextStart = _index.nextTokenStart.call(void 0); - for (let i4 = _base.state.end; i4 < nextStart; i4++) { - const code = _base.input.charCodeAt(i4); - if (code === _charcodes.charCodes.lineFeed || code === _charcodes.charCodes.carriageReturn || code === 8232 || code === 8233) { - return true; - } - } - return false; - } - exports2.hasFollowingLineBreak = hasFollowingLineBreak; - function isLineTerminator() { - return _index.eat.call(void 0, _types.TokenType.semi) || canInsertSemicolon(); - } - exports2.isLineTerminator = isLineTerminator; - function semicolon() { - if (!isLineTerminator()) { - unexpected('Unexpected token, expected ";"'); - } - } - exports2.semicolon = semicolon; - function expect(type) { - const matched = _index.eat.call(void 0, type); - if (!matched) { - unexpected(`Unexpected token, expected "${_types.formatTokenType.call(void 0, type)}"`); - } - } - exports2.expect = expect; - function unexpected(message = "Unexpected token", pos = _base.state.start) { - if (_base.state.error) { - return; - } - const err = new SyntaxError(message); - err.pos = pos; - _base.state.error = err; - _base.state.pos = _base.input.length; - _index.finishToken.call(void 0, _types.TokenType.eof); - } - exports2.unexpected = unexpected; - } -}); - -// node_modules/sucrase/dist/parser/util/whitespace.js -var require_whitespace = __commonJS({ - "node_modules/sucrase/dist/parser/util/whitespace.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _charcodes = require_charcodes(); - var WHITESPACE_CHARS = [ - 9, - 11, - 12, - _charcodes.charCodes.space, - _charcodes.charCodes.nonBreakingSpace, - _charcodes.charCodes.oghamSpaceMark, - 8192, - // EN QUAD - 8193, - // EM QUAD - 8194, - // EN SPACE - 8195, - // EM SPACE - 8196, - // THREE-PER-EM SPACE - 8197, - // FOUR-PER-EM SPACE - 8198, - // SIX-PER-EM SPACE - 8199, - // FIGURE SPACE - 8200, - // PUNCTUATION SPACE - 8201, - // THIN SPACE - 8202, - // HAIR SPACE - 8239, - // NARROW NO-BREAK SPACE - 8287, - // MEDIUM MATHEMATICAL SPACE - 12288, - // IDEOGRAPHIC SPACE - 65279 - // ZERO WIDTH NO-BREAK SPACE - ]; - exports2.WHITESPACE_CHARS = WHITESPACE_CHARS; - var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; - exports2.skipWhiteSpace = skipWhiteSpace; - var IS_WHITESPACE = new Uint8Array(65536); - exports2.IS_WHITESPACE = IS_WHITESPACE; - for (const char2 of exports2.WHITESPACE_CHARS) { - exports2.IS_WHITESPACE[char2] = 1; - } - } -}); - -// node_modules/sucrase/dist/parser/util/identifier.js -var require_identifier = __commonJS({ - "node_modules/sucrase/dist/parser/util/identifier.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _charcodes = require_charcodes(); - var _whitespace = require_whitespace(); - function computeIsIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code < 91) return true; - if (code < 97) return code === 95; - if (code < 123) return true; - if (code < 128) return false; - throw new Error("Should not be called with non-ASCII char code."); - } - var IS_IDENTIFIER_CHAR = new Uint8Array(65536); - exports2.IS_IDENTIFIER_CHAR = IS_IDENTIFIER_CHAR; - for (let i4 = 0; i4 < 128; i4++) { - exports2.IS_IDENTIFIER_CHAR[i4] = computeIsIdentifierChar(i4) ? 1 : 0; - } - for (let i4 = 128; i4 < 65536; i4++) { - exports2.IS_IDENTIFIER_CHAR[i4] = 1; - } - for (const whitespaceChar of _whitespace.WHITESPACE_CHARS) { - exports2.IS_IDENTIFIER_CHAR[whitespaceChar] = 0; - } - exports2.IS_IDENTIFIER_CHAR[8232] = 0; - exports2.IS_IDENTIFIER_CHAR[8233] = 0; - var IS_IDENTIFIER_START = exports2.IS_IDENTIFIER_CHAR.slice(); - exports2.IS_IDENTIFIER_START = IS_IDENTIFIER_START; - for (let numChar = _charcodes.charCodes.digit0; numChar <= _charcodes.charCodes.digit9; numChar++) { - exports2.IS_IDENTIFIER_START[numChar] = 0; - } - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/readWordTree.js -var require_readWordTree = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/readWordTree.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - var _types = require_types(); - var READ_WORD_TREE = new Int32Array([ - // "" - -1, - 27, - 783, - 918, - 1755, - 2376, - 2862, - 3483, - -1, - 3699, - -1, - 4617, - 4752, - 4833, - 5130, - 5508, - 5940, - -1, - 6480, - 6939, - 7749, - 8181, - 8451, - 8613, - -1, - 8829, - -1, - // "a" - -1, - -1, - 54, - 243, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 432, - -1, - -1, - -1, - 675, - -1, - -1, - -1, - // "ab" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 81, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "abs" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 108, - -1, - -1, - -1, - -1, - -1, - -1, - // "abst" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 135, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "abstr" - -1, - 162, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "abstra" - -1, - -1, - -1, - 189, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "abstrac" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 216, - -1, - -1, - -1, - -1, - -1, - -1, - // "abstract" - _keywords.ContextualKeyword._abstract << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ac" - -1, - -1, - -1, - 270, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "acc" - -1, - -1, - -1, - -1, - -1, - 297, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "acce" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 324, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "acces" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 351, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "access" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 378, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "accesso" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 405, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "accessor" - _keywords.ContextualKeyword._accessor << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "as" - _keywords.ContextualKeyword._as << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 459, - -1, - -1, - -1, - -1, - -1, - 594, - -1, - // "ass" - -1, - -1, - -1, - -1, - -1, - 486, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "asse" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 513, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "asser" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 540, - -1, - -1, - -1, - -1, - -1, - -1, - // "assert" - _keywords.ContextualKeyword._assert << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 567, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "asserts" - _keywords.ContextualKeyword._asserts << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "asy" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 621, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "asyn" - -1, - -1, - -1, - 648, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "async" - _keywords.ContextualKeyword._async << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "aw" - -1, - 702, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "awa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 729, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "awai" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 756, - -1, - -1, - -1, - -1, - -1, - -1, - // "await" - _keywords.ContextualKeyword._await << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "b" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 810, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "br" - -1, - -1, - -1, - -1, - -1, - 837, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "bre" - -1, - 864, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "brea" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 891, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "break" - (_types.TokenType._break << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "c" - -1, - 945, - -1, - -1, - -1, - -1, - -1, - -1, - 1107, - -1, - -1, - -1, - 1242, - -1, - -1, - 1350, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ca" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 972, - 1026, - -1, - -1, - -1, - -1, - -1, - -1, - // "cas" - -1, - -1, - -1, - -1, - -1, - 999, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "case" - (_types.TokenType._case << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "cat" - -1, - -1, - -1, - 1053, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "catc" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1080, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "catch" - (_types.TokenType._catch << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ch" - -1, - -1, - -1, - -1, - -1, - 1134, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "che" - -1, - -1, - -1, - 1161, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "chec" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1188, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "check" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1215, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "checks" - _keywords.ContextualKeyword._checks << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "cl" - -1, - 1269, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "cla" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1296, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "clas" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1323, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "class" - (_types.TokenType._class << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "co" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1377, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "con" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1404, - 1620, - -1, - -1, - -1, - -1, - -1, - -1, - // "cons" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1431, - -1, - -1, - -1, - -1, - -1, - -1, - // "const" - (_types.TokenType._const << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1458, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "constr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1485, - -1, - -1, - -1, - -1, - -1, - // "constru" - -1, - -1, - -1, - 1512, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "construc" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1539, - -1, - -1, - -1, - -1, - -1, - -1, - // "construct" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1566, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "constructo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1593, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "constructor" - _keywords.ContextualKeyword._constructor << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "cont" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1647, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "conti" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1674, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "contin" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1701, - -1, - -1, - -1, - -1, - -1, - // "continu" - -1, - -1, - -1, - -1, - -1, - 1728, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "continue" - (_types.TokenType._continue << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "d" - -1, - -1, - -1, - -1, - -1, - 1782, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2349, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "de" - -1, - -1, - 1809, - 1971, - -1, - -1, - 2106, - -1, - -1, - -1, - -1, - -1, - 2241, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "deb" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1836, - -1, - -1, - -1, - -1, - -1, - // "debu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1863, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "debug" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1890, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "debugg" - -1, - -1, - -1, - -1, - -1, - 1917, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "debugge" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1944, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "debugger" - (_types.TokenType._debugger << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "dec" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 1998, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "decl" - -1, - 2025, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "decla" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2052, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "declar" - -1, - -1, - -1, - -1, - -1, - 2079, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "declare" - _keywords.ContextualKeyword._declare << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "def" - -1, - 2133, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "defa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2160, - -1, - -1, - -1, - -1, - -1, - // "defau" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2187, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "defaul" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2214, - -1, - -1, - -1, - -1, - -1, - -1, - // "default" - (_types.TokenType._default << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "del" - -1, - -1, - -1, - -1, - -1, - 2268, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "dele" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2295, - -1, - -1, - -1, - -1, - -1, - -1, - // "delet" - -1, - -1, - -1, - -1, - -1, - 2322, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "delete" - (_types.TokenType._delete << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "do" - (_types.TokenType._do << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "e" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2403, - -1, - 2484, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2565, - -1, - -1, - // "el" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2430, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "els" - -1, - -1, - -1, - -1, - -1, - 2457, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "else" - (_types.TokenType._else << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "en" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2511, - -1, - -1, - -1, - -1, - -1, - // "enu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2538, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "enum" - _keywords.ContextualKeyword._enum << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ex" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2592, - -1, - -1, - -1, - 2727, - -1, - -1, - -1, - -1, - -1, - -1, - // "exp" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2619, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "expo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2646, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "expor" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2673, - -1, - -1, - -1, - -1, - -1, - -1, - // "export" - (_types.TokenType._export << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2700, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "exports" - _keywords.ContextualKeyword._exports << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ext" - -1, - -1, - -1, - -1, - -1, - 2754, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "exte" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2781, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "exten" - -1, - -1, - -1, - -1, - 2808, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "extend" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2835, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "extends" - (_types.TokenType._extends << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "f" - -1, - 2889, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2997, - -1, - -1, - -1, - -1, - -1, - 3159, - -1, - -1, - 3213, - -1, - -1, - 3294, - -1, - -1, - -1, - -1, - -1, - // "fa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2916, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fal" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 2943, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fals" - -1, - -1, - -1, - -1, - -1, - 2970, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "false" - (_types.TokenType._false << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3024, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fin" - -1, - 3051, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fina" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3078, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "final" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3105, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "finall" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3132, - -1, - // "finally" - (_types.TokenType._finally << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3186, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "for" - (_types.TokenType._for << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3240, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fro" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3267, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "from" - _keywords.ContextualKeyword._from << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3321, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "fun" - -1, - -1, - -1, - 3348, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "func" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3375, - -1, - -1, - -1, - -1, - -1, - -1, - // "funct" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3402, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "functi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3429, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "functio" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3456, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "function" - (_types.TokenType._function << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "g" - -1, - -1, - -1, - -1, - -1, - 3510, - -1, - -1, - -1, - -1, - -1, - -1, - 3564, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ge" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3537, - -1, - -1, - -1, - -1, - -1, - -1, - // "get" - _keywords.ContextualKeyword._get << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "gl" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3591, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "glo" - -1, - -1, - 3618, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "glob" - -1, - 3645, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "globa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3672, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "global" - _keywords.ContextualKeyword._global << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "i" - -1, - -1, - -1, - -1, - -1, - -1, - 3726, - -1, - -1, - -1, - -1, - -1, - -1, - 3753, - 4077, - -1, - -1, - -1, - -1, - 4590, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "if" - (_types.TokenType._if << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "im" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3780, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "imp" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3807, - -1, - -1, - 3996, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "impl" - -1, - -1, - -1, - -1, - -1, - 3834, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "imple" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3861, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "implem" - -1, - -1, - -1, - -1, - -1, - 3888, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "impleme" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3915, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "implemen" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3942, - -1, - -1, - -1, - -1, - -1, - -1, - // "implement" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 3969, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "implements" - _keywords.ContextualKeyword._implements << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "impo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4023, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "impor" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4050, - -1, - -1, - -1, - -1, - -1, - -1, - // "import" - (_types.TokenType._import << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "in" - (_types.TokenType._in << 1) + 1, - -1, - -1, - -1, - -1, - -1, - 4104, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4185, - 4401, - -1, - -1, - -1, - -1, - -1, - -1, - // "inf" - -1, - -1, - -1, - -1, - -1, - 4131, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "infe" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4158, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "infer" - _keywords.ContextualKeyword._infer << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ins" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4212, - -1, - -1, - -1, - -1, - -1, - -1, - // "inst" - -1, - 4239, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "insta" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4266, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "instan" - -1, - -1, - -1, - 4293, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "instanc" - -1, - -1, - -1, - -1, - -1, - 4320, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "instance" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4347, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "instanceo" - -1, - -1, - -1, - -1, - -1, - -1, - 4374, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "instanceof" - (_types.TokenType._instanceof << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "int" - -1, - -1, - -1, - -1, - -1, - 4428, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "inte" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4455, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "inter" - -1, - -1, - -1, - -1, - -1, - -1, - 4482, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "interf" - -1, - 4509, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "interfa" - -1, - -1, - -1, - 4536, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "interfac" - -1, - -1, - -1, - -1, - -1, - 4563, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "interface" - _keywords.ContextualKeyword._interface << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "is" - _keywords.ContextualKeyword._is << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "k" - -1, - -1, - -1, - -1, - -1, - 4644, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ke" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4671, - -1, - // "key" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4698, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "keyo" - -1, - -1, - -1, - -1, - -1, - -1, - 4725, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "keyof" - _keywords.ContextualKeyword._keyof << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "l" - -1, - -1, - -1, - -1, - -1, - 4779, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "le" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4806, - -1, - -1, - -1, - -1, - -1, - -1, - // "let" - (_types.TokenType._let << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "m" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4860, - -1, - -1, - -1, - -1, - -1, - 4995, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4887, - -1, - -1, - // "mix" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4914, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mixi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4941, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mixin" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 4968, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mixins" - _keywords.ContextualKeyword._mixins << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mo" - -1, - -1, - -1, - -1, - 5022, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "mod" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5049, - -1, - -1, - -1, - -1, - -1, - // "modu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5076, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "modul" - -1, - -1, - -1, - -1, - -1, - 5103, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "module" - _keywords.ContextualKeyword._module << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "n" - -1, - 5157, - -1, - -1, - -1, - 5373, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5427, - -1, - -1, - -1, - -1, - -1, - // "na" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5184, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "nam" - -1, - -1, - -1, - -1, - -1, - 5211, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "name" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5238, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "names" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5265, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "namesp" - -1, - 5292, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "namespa" - -1, - -1, - -1, - 5319, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "namespac" - -1, - -1, - -1, - -1, - -1, - 5346, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "namespace" - _keywords.ContextualKeyword._namespace << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ne" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5400, - -1, - -1, - -1, - // "new" - (_types.TokenType._new << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "nu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5454, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "nul" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5481, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "null" - (_types.TokenType._null << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "o" - -1, - -1, - -1, - -1, - -1, - -1, - 5535, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5562, - -1, - -1, - -1, - -1, - 5697, - 5751, - -1, - -1, - -1, - -1, - // "of" - _keywords.ContextualKeyword._of << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "op" - -1, - 5589, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "opa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5616, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "opaq" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5643, - -1, - -1, - -1, - -1, - -1, - // "opaqu" - -1, - -1, - -1, - -1, - -1, - 5670, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "opaque" - _keywords.ContextualKeyword._opaque << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ou" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5724, - -1, - -1, - -1, - -1, - -1, - -1, - // "out" - _keywords.ContextualKeyword._out << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ov" - -1, - -1, - -1, - -1, - -1, - 5778, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ove" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5805, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "over" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5832, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "overr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5859, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "overri" - -1, - -1, - -1, - -1, - 5886, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "overrid" - -1, - -1, - -1, - -1, - -1, - 5913, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "override" - _keywords.ContextualKeyword._override << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "p" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5967, - -1, - -1, - 6345, - -1, - -1, - -1, - -1, - -1, - // "pr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5994, - -1, - -1, - -1, - -1, - -1, - 6129, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "pri" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6021, - -1, - -1, - -1, - -1, - // "priv" - -1, - 6048, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "priva" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6075, - -1, - -1, - -1, - -1, - -1, - -1, - // "privat" - -1, - -1, - -1, - -1, - -1, - 6102, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "private" - _keywords.ContextualKeyword._private << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "pro" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6156, - -1, - -1, - -1, - -1, - -1, - -1, - // "prot" - -1, - -1, - -1, - -1, - -1, - 6183, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6318, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "prote" - -1, - -1, - -1, - 6210, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "protec" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6237, - -1, - -1, - -1, - -1, - -1, - -1, - // "protect" - -1, - -1, - -1, - -1, - -1, - 6264, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "protecte" - -1, - -1, - -1, - -1, - 6291, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "protected" - _keywords.ContextualKeyword._protected << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "proto" - _keywords.ContextualKeyword._proto << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "pu" - -1, - -1, - 6372, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "pub" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6399, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "publ" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6426, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "publi" - -1, - -1, - -1, - 6453, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "public" - _keywords.ContextualKeyword._public << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "r" - -1, - -1, - -1, - -1, - -1, - 6507, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "re" - -1, - 6534, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6696, - -1, - -1, - 6831, - -1, - -1, - -1, - -1, - -1, - -1, - // "rea" - -1, - -1, - -1, - -1, - 6561, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "read" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6588, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "reado" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6615, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "readon" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6642, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "readonl" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6669, - -1, - // "readonly" - _keywords.ContextualKeyword._readonly << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "req" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6723, - -1, - -1, - -1, - -1, - -1, - // "requ" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6750, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "requi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6777, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "requir" - -1, - -1, - -1, - -1, - -1, - 6804, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "require" - _keywords.ContextualKeyword._require << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ret" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6858, - -1, - -1, - -1, - -1, - -1, - // "retu" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6885, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "retur" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6912, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "return" - (_types.TokenType._return << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "s" - -1, - 6966, - -1, - -1, - -1, - 7182, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7236, - 7371, - -1, - 7479, - -1, - 7614, - -1, - // "sa" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 6993, - -1, - -1, - -1, - -1, - -1, - -1, - // "sat" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7020, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sati" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7047, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "satis" - -1, - -1, - -1, - -1, - -1, - -1, - 7074, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "satisf" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7101, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "satisfi" - -1, - -1, - -1, - -1, - -1, - 7128, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "satisfie" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7155, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "satisfies" - _keywords.ContextualKeyword._satisfies << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "se" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7209, - -1, - -1, - -1, - -1, - -1, - -1, - // "set" - _keywords.ContextualKeyword._set << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "st" - -1, - 7263, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sta" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7290, - -1, - -1, - -1, - -1, - -1, - -1, - // "stat" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7317, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "stati" - -1, - -1, - -1, - 7344, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "static" - _keywords.ContextualKeyword._static << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "su" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7398, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sup" - -1, - -1, - -1, - -1, - -1, - 7425, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "supe" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7452, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "super" - (_types.TokenType._super << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sw" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7506, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "swi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7533, - -1, - -1, - -1, - -1, - -1, - -1, - // "swit" - -1, - -1, - -1, - 7560, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "switc" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7587, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "switch" - (_types.TokenType._switch << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sy" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7641, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "sym" - -1, - -1, - 7668, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "symb" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7695, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "symbo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7722, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "symbol" - _keywords.ContextualKeyword._symbol << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "t" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7776, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7938, - -1, - -1, - -1, - -1, - -1, - -1, - 8046, - -1, - // "th" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7803, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7857, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "thi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7830, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "this" - (_types.TokenType._this << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "thr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7884, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "thro" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7911, - -1, - -1, - -1, - // "throw" - (_types.TokenType._throw << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "tr" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 7965, - -1, - -1, - -1, - 8019, - -1, - // "tru" - -1, - -1, - -1, - -1, - -1, - 7992, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "true" - (_types.TokenType._true << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "try" - (_types.TokenType._try << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "ty" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8073, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "typ" - -1, - -1, - -1, - -1, - -1, - 8100, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "type" - _keywords.ContextualKeyword._type << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8127, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "typeo" - -1, - -1, - -1, - -1, - -1, - -1, - 8154, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "typeof" - (_types.TokenType._typeof << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "u" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8208, - -1, - -1, - -1, - -1, - 8343, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "un" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8235, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "uni" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8262, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "uniq" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8289, - -1, - -1, - -1, - -1, - -1, - // "uniqu" - -1, - -1, - -1, - -1, - -1, - 8316, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "unique" - _keywords.ContextualKeyword._unique << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "us" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8370, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "usi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8397, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "usin" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8424, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "using" - _keywords.ContextualKeyword._using << 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "v" - -1, - 8478, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8532, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "va" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8505, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "var" - (_types.TokenType._var << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "vo" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8559, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "voi" - -1, - -1, - -1, - -1, - 8586, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "void" - (_types.TokenType._void << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "w" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8640, - 8748, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "wh" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8667, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "whi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8694, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "whil" - -1, - -1, - -1, - -1, - -1, - 8721, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "while" - (_types.TokenType._while << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "wi" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8775, - -1, - -1, - -1, - -1, - -1, - -1, - // "wit" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8802, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "with" - (_types.TokenType._with << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "y" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8856, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "yi" - -1, - -1, - -1, - -1, - -1, - 8883, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "yie" - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 8910, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "yiel" - -1, - -1, - -1, - -1, - 8937, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - // "yield" - (_types.TokenType._yield << 1) + 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1 - ]); - exports2.READ_WORD_TREE = READ_WORD_TREE; - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/readWord.js -var require_readWord = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/readWord.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _base = require_base(); - var _charcodes = require_charcodes(); - var _identifier = require_identifier(); - var _index = require_tokenizer(); - var _readWordTree = require_readWordTree(); - var _types = require_types(); - function readWord() { - let treePos = 0; - let code = 0; - let pos = _base.state.pos; - while (pos < _base.input.length) { - code = _base.input.charCodeAt(pos); - if (code < _charcodes.charCodes.lowercaseA || code > _charcodes.charCodes.lowercaseZ) { - break; - } - const next2 = _readWordTree.READ_WORD_TREE[treePos + (code - _charcodes.charCodes.lowercaseA) + 1]; - if (next2 === -1) { - break; - } else { - treePos = next2; - pos++; - } - } - const keywordValue = _readWordTree.READ_WORD_TREE[treePos]; - if (keywordValue > -1 && !_identifier.IS_IDENTIFIER_CHAR[code]) { - _base.state.pos = pos; - if (keywordValue & 1) { - _index.finishToken.call(void 0, keywordValue >>> 1); - } else { - _index.finishToken.call(void 0, _types.TokenType.name, keywordValue >>> 1); - } - return; - } - while (pos < _base.input.length) { - const ch = _base.input.charCodeAt(pos); - if (_identifier.IS_IDENTIFIER_CHAR[ch]) { - pos++; - } else if (ch === _charcodes.charCodes.backslash) { - pos += 2; - if (_base.input.charCodeAt(pos) === _charcodes.charCodes.leftCurlyBrace) { - while (pos < _base.input.length && _base.input.charCodeAt(pos) !== _charcodes.charCodes.rightCurlyBrace) { - pos++; - } - pos++; - } - } else if (ch === _charcodes.charCodes.atSign && _base.input.charCodeAt(pos + 1) === _charcodes.charCodes.atSign) { - pos += 2; - } else { - break; - } - } - _base.state.pos = pos; - _index.finishToken.call(void 0, _types.TokenType.name); - } - exports2.default = readWord; - } -}); - -// node_modules/sucrase/dist/parser/tokenizer/index.js -var require_tokenizer = __commonJS({ - "node_modules/sucrase/dist/parser/tokenizer/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _base = require_base(); - var _util = require_util(); - var _charcodes = require_charcodes(); - var _identifier = require_identifier(); - var _whitespace = require_whitespace(); - var _keywords = require_keywords(); - var _readWord = require_readWord(); - var _readWord2 = _interopRequireDefault(_readWord); - var _types = require_types(); - var IdentifierRole; - (function(IdentifierRole2) { - const Access = 0; - IdentifierRole2[IdentifierRole2["Access"] = Access] = "Access"; - const ExportAccess = Access + 1; - IdentifierRole2[IdentifierRole2["ExportAccess"] = ExportAccess] = "ExportAccess"; - const TopLevelDeclaration = ExportAccess + 1; - IdentifierRole2[IdentifierRole2["TopLevelDeclaration"] = TopLevelDeclaration] = "TopLevelDeclaration"; - const FunctionScopedDeclaration = TopLevelDeclaration + 1; - IdentifierRole2[IdentifierRole2["FunctionScopedDeclaration"] = FunctionScopedDeclaration] = "FunctionScopedDeclaration"; - const BlockScopedDeclaration = FunctionScopedDeclaration + 1; - IdentifierRole2[IdentifierRole2["BlockScopedDeclaration"] = BlockScopedDeclaration] = "BlockScopedDeclaration"; - const ObjectShorthandTopLevelDeclaration = BlockScopedDeclaration + 1; - IdentifierRole2[IdentifierRole2["ObjectShorthandTopLevelDeclaration"] = ObjectShorthandTopLevelDeclaration] = "ObjectShorthandTopLevelDeclaration"; - const ObjectShorthandFunctionScopedDeclaration = ObjectShorthandTopLevelDeclaration + 1; - IdentifierRole2[IdentifierRole2["ObjectShorthandFunctionScopedDeclaration"] = ObjectShorthandFunctionScopedDeclaration] = "ObjectShorthandFunctionScopedDeclaration"; - const ObjectShorthandBlockScopedDeclaration = ObjectShorthandFunctionScopedDeclaration + 1; - IdentifierRole2[IdentifierRole2["ObjectShorthandBlockScopedDeclaration"] = ObjectShorthandBlockScopedDeclaration] = "ObjectShorthandBlockScopedDeclaration"; - const ObjectShorthand = ObjectShorthandBlockScopedDeclaration + 1; - IdentifierRole2[IdentifierRole2["ObjectShorthand"] = ObjectShorthand] = "ObjectShorthand"; - const ImportDeclaration = ObjectShorthand + 1; - IdentifierRole2[IdentifierRole2["ImportDeclaration"] = ImportDeclaration] = "ImportDeclaration"; - const ObjectKey = ImportDeclaration + 1; - IdentifierRole2[IdentifierRole2["ObjectKey"] = ObjectKey] = "ObjectKey"; - const ImportAccess = ObjectKey + 1; - IdentifierRole2[IdentifierRole2["ImportAccess"] = ImportAccess] = "ImportAccess"; - })(IdentifierRole || (exports2.IdentifierRole = IdentifierRole = {})); - var JSXRole; - (function(JSXRole2) { - const NoChildren = 0; - JSXRole2[JSXRole2["NoChildren"] = NoChildren] = "NoChildren"; - const OneChild = NoChildren + 1; - JSXRole2[JSXRole2["OneChild"] = OneChild] = "OneChild"; - const StaticChildren = OneChild + 1; - JSXRole2[JSXRole2["StaticChildren"] = StaticChildren] = "StaticChildren"; - const KeyAfterPropSpread = StaticChildren + 1; - JSXRole2[JSXRole2["KeyAfterPropSpread"] = KeyAfterPropSpread] = "KeyAfterPropSpread"; - })(JSXRole || (exports2.JSXRole = JSXRole = {})); - function isDeclaration(token2) { - const role = token2.identifierRole; - return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; - } - exports2.isDeclaration = isDeclaration; - function isNonTopLevelDeclaration(token2) { - const role = token2.identifierRole; - return role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; - } - exports2.isNonTopLevelDeclaration = isNonTopLevelDeclaration; - function isTopLevelDeclaration(token2) { - const role = token2.identifierRole; - return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ImportDeclaration; - } - exports2.isTopLevelDeclaration = isTopLevelDeclaration; - function isBlockScopedDeclaration(token2) { - const role = token2.identifierRole; - return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; - } - exports2.isBlockScopedDeclaration = isBlockScopedDeclaration; - function isFunctionScopedDeclaration(token2) { - const role = token2.identifierRole; - return role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration; - } - exports2.isFunctionScopedDeclaration = isFunctionScopedDeclaration; - function isObjectShorthandDeclaration(token2) { - return token2.identifierRole === IdentifierRole.ObjectShorthandTopLevelDeclaration || token2.identifierRole === IdentifierRole.ObjectShorthandBlockScopedDeclaration || token2.identifierRole === IdentifierRole.ObjectShorthandFunctionScopedDeclaration; - } - exports2.isObjectShorthandDeclaration = isObjectShorthandDeclaration; - var Token = class { - constructor() { - this.type = _base.state.type; - this.contextualKeyword = _base.state.contextualKeyword; - this.start = _base.state.start; - this.end = _base.state.end; - this.scopeDepth = _base.state.scopeDepth; - this.isType = _base.state.isType; - this.identifierRole = null; - this.jsxRole = null; - this.shadowsGlobal = false; - this.isAsyncOperation = false; - this.contextId = null; - this.rhsEndIndex = null; - this.isExpression = false; - this.numNullishCoalesceStarts = 0; - this.numNullishCoalesceEnds = 0; - this.isOptionalChainStart = false; - this.isOptionalChainEnd = false; - this.subscriptStartIndex = null; - this.nullishStartIndex = null; - } - // Initially false for all tokens, then may be computed in a follow-up step that does scope - // analysis. - // Initially false for all tokens, but may be set during transform to mark it as containing an - // await operation. - // For assignments, the index of the RHS. For export tokens, the end of the export. - // For class tokens, records if the class is a class expression or a class statement. - // Number of times to insert a `nullishCoalesce(` snippet before this token. - // Number of times to insert a `)` snippet after this token. - // If true, insert an `optionalChain([` snippet before this token. - // If true, insert a `])` snippet after this token. - // Tag for `.`, `?.`, `[`, `?.[`, `(`, and `?.(` to denote the "root" token for this - // subscript chain. This can be used to determine if this chain is an optional chain. - // Tag for `??` operators to denote the root token for this nullish coalescing call. - }; - exports2.Token = Token; - function next2() { - _base.state.tokens.push(new Token()); - nextToken(); - } - exports2.next = next2; - function nextTemplateToken() { - _base.state.tokens.push(new Token()); - _base.state.start = _base.state.pos; - readTmplToken(); - } - exports2.nextTemplateToken = nextTemplateToken; - function retokenizeSlashAsRegex() { - if (_base.state.type === _types.TokenType.assign) { - --_base.state.pos; - } - readRegexp(); - } - exports2.retokenizeSlashAsRegex = retokenizeSlashAsRegex; - function pushTypeContext(existingTokensInType) { - for (let i4 = _base.state.tokens.length - existingTokensInType; i4 < _base.state.tokens.length; i4++) { - _base.state.tokens[i4].isType = true; - } - const oldIsType = _base.state.isType; - _base.state.isType = true; - return oldIsType; - } - exports2.pushTypeContext = pushTypeContext; - function popTypeContext(oldIsType) { - _base.state.isType = oldIsType; - } - exports2.popTypeContext = popTypeContext; - function eat(type) { - if (match3(type)) { - next2(); - return true; - } else { - return false; - } - } - exports2.eat = eat; - function eatTypeToken(tokenType) { - const oldIsType = _base.state.isType; - _base.state.isType = true; - eat(tokenType); - _base.state.isType = oldIsType; - } - exports2.eatTypeToken = eatTypeToken; - function match3(type) { - return _base.state.type === type; - } - exports2.match = match3; - function lookaheadType() { - const snapshot = _base.state.snapshot(); - next2(); - const type = _base.state.type; - _base.state.restoreFromSnapshot(snapshot); - return type; - } - exports2.lookaheadType = lookaheadType; - var TypeAndKeyword = class { - constructor(type, contextualKeyword) { - this.type = type; - this.contextualKeyword = contextualKeyword; - } - }; - exports2.TypeAndKeyword = TypeAndKeyword; - function lookaheadTypeAndKeyword() { - const snapshot = _base.state.snapshot(); - next2(); - const type = _base.state.type; - const contextualKeyword = _base.state.contextualKeyword; - _base.state.restoreFromSnapshot(snapshot); - return new TypeAndKeyword(type, contextualKeyword); - } - exports2.lookaheadTypeAndKeyword = lookaheadTypeAndKeyword; - function nextTokenStart() { - return nextTokenStartSince(_base.state.pos); - } - exports2.nextTokenStart = nextTokenStart; - function nextTokenStartSince(pos) { - _whitespace.skipWhiteSpace.lastIndex = pos; - const skip = _whitespace.skipWhiteSpace.exec(_base.input); - return pos + skip[0].length; - } - exports2.nextTokenStartSince = nextTokenStartSince; - function lookaheadCharCode() { - return _base.input.charCodeAt(nextTokenStart()); - } - exports2.lookaheadCharCode = lookaheadCharCode; - function nextToken() { - skipSpace(); - _base.state.start = _base.state.pos; - if (_base.state.pos >= _base.input.length) { - const tokens = _base.state.tokens; - if (tokens.length >= 2 && tokens[tokens.length - 1].start >= _base.input.length && tokens[tokens.length - 2].start >= _base.input.length) { - _util.unexpected.call(void 0, "Unexpectedly reached the end of input."); - } - finishToken(_types.TokenType.eof); - return; - } - readToken(_base.input.charCodeAt(_base.state.pos)); - } - exports2.nextToken = nextToken; - function readToken(code) { - if (_identifier.IS_IDENTIFIER_START[code] || code === _charcodes.charCodes.backslash || code === _charcodes.charCodes.atSign && _base.input.charCodeAt(_base.state.pos + 1) === _charcodes.charCodes.atSign) { - _readWord2.default.call(void 0); - } else { - getTokenFromCode(code); - } - } - function skipBlockComment() { - while (_base.input.charCodeAt(_base.state.pos) !== _charcodes.charCodes.asterisk || _base.input.charCodeAt(_base.state.pos + 1) !== _charcodes.charCodes.slash) { - _base.state.pos++; - if (_base.state.pos > _base.input.length) { - _util.unexpected.call(void 0, "Unterminated comment", _base.state.pos - 2); - return; - } - } - _base.state.pos += 2; - } - function skipLineComment(startSkip) { - let ch = _base.input.charCodeAt(_base.state.pos += startSkip); - if (_base.state.pos < _base.input.length) { - while (ch !== _charcodes.charCodes.lineFeed && ch !== _charcodes.charCodes.carriageReturn && ch !== _charcodes.charCodes.lineSeparator && ch !== _charcodes.charCodes.paragraphSeparator && ++_base.state.pos < _base.input.length) { - ch = _base.input.charCodeAt(_base.state.pos); - } - } - } - exports2.skipLineComment = skipLineComment; - function skipSpace() { - while (_base.state.pos < _base.input.length) { - const ch = _base.input.charCodeAt(_base.state.pos); - switch (ch) { - case _charcodes.charCodes.carriageReturn: - if (_base.input.charCodeAt(_base.state.pos + 1) === _charcodes.charCodes.lineFeed) { - ++_base.state.pos; - } - case _charcodes.charCodes.lineFeed: - case _charcodes.charCodes.lineSeparator: - case _charcodes.charCodes.paragraphSeparator: - ++_base.state.pos; - break; - case _charcodes.charCodes.slash: - switch (_base.input.charCodeAt(_base.state.pos + 1)) { - case _charcodes.charCodes.asterisk: - _base.state.pos += 2; - skipBlockComment(); - break; - case _charcodes.charCodes.slash: - skipLineComment(2); - break; - default: - return; - } - break; - default: - if (_whitespace.IS_WHITESPACE[ch]) { - ++_base.state.pos; - } else { - return; - } - } - } - } - exports2.skipSpace = skipSpace; - function finishToken(type, contextualKeyword = _keywords.ContextualKeyword.NONE) { - _base.state.end = _base.state.pos; - _base.state.type = type; - _base.state.contextualKeyword = contextualKeyword; - } - exports2.finishToken = finishToken; - function readToken_dot() { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar >= _charcodes.charCodes.digit0 && nextChar <= _charcodes.charCodes.digit9) { - readNumber(true); - return; - } - if (nextChar === _charcodes.charCodes.dot && _base.input.charCodeAt(_base.state.pos + 2) === _charcodes.charCodes.dot) { - _base.state.pos += 3; - finishToken(_types.TokenType.ellipsis); - } else { - ++_base.state.pos; - finishToken(_types.TokenType.dot); - } - } - function readToken_slash() { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 2); - } else { - finishOp(_types.TokenType.slash, 1); - } - } - function readToken_mult_modulo(code) { - let tokenType = code === _charcodes.charCodes.asterisk ? _types.TokenType.star : _types.TokenType.modulo; - let width = 1; - let nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (code === _charcodes.charCodes.asterisk && nextChar === _charcodes.charCodes.asterisk) { - width++; - nextChar = _base.input.charCodeAt(_base.state.pos + 2); - tokenType = _types.TokenType.exponent; - } - if (nextChar === _charcodes.charCodes.equalsTo && _base.input.charCodeAt(_base.state.pos + 2) !== _charcodes.charCodes.greaterThan) { - width++; - tokenType = _types.TokenType.assign; - } - finishOp(tokenType, width); - } - function readToken_pipe_amp(code) { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === code) { - if (_base.input.charCodeAt(_base.state.pos + 2) === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 3); - } else { - finishOp(code === _charcodes.charCodes.verticalBar ? _types.TokenType.logicalOR : _types.TokenType.logicalAND, 2); - } - return; - } - if (code === _charcodes.charCodes.verticalBar) { - if (nextChar === _charcodes.charCodes.greaterThan) { - finishOp(_types.TokenType.pipeline, 2); - return; - } else if (nextChar === _charcodes.charCodes.rightCurlyBrace && _base.isFlowEnabled) { - finishOp(_types.TokenType.braceBarR, 2); - return; - } - } - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 2); - return; - } - finishOp(code === _charcodes.charCodes.verticalBar ? _types.TokenType.bitwiseOR : _types.TokenType.bitwiseAND, 1); - } - function readToken_caret() { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 2); - } else { - finishOp(_types.TokenType.bitwiseXOR, 1); - } - } - function readToken_plus_min(code) { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === code) { - finishOp(_types.TokenType.preIncDec, 2); - return; - } - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 2); - } else if (code === _charcodes.charCodes.plusSign) { - finishOp(_types.TokenType.plus, 1); - } else { - finishOp(_types.TokenType.minus, 1); - } - } - function readToken_lt() { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.lessThan) { - if (_base.input.charCodeAt(_base.state.pos + 2) === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 3); - return; - } - if (_base.state.isType) { - finishOp(_types.TokenType.lessThan, 1); - } else { - finishOp(_types.TokenType.bitShiftL, 2); - } - return; - } - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.relationalOrEqual, 2); - } else { - finishOp(_types.TokenType.lessThan, 1); - } - } - function readToken_gt() { - if (_base.state.isType) { - finishOp(_types.TokenType.greaterThan, 1); - return; - } - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.greaterThan) { - const size2 = _base.input.charCodeAt(_base.state.pos + 2) === _charcodes.charCodes.greaterThan ? 3 : 2; - if (_base.input.charCodeAt(_base.state.pos + size2) === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, size2 + 1); - return; - } - finishOp(_types.TokenType.bitShiftR, size2); - return; - } - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.relationalOrEqual, 2); - } else { - finishOp(_types.TokenType.greaterThan, 1); - } - } - function rescan_gt() { - if (_base.state.type === _types.TokenType.greaterThan) { - _base.state.pos -= 1; - readToken_gt(); - } - } - exports2.rescan_gt = rescan_gt; - function readToken_eq_excl(code) { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.equality, _base.input.charCodeAt(_base.state.pos + 2) === _charcodes.charCodes.equalsTo ? 3 : 2); - return; - } - if (code === _charcodes.charCodes.equalsTo && nextChar === _charcodes.charCodes.greaterThan) { - _base.state.pos += 2; - finishToken(_types.TokenType.arrow); - return; - } - finishOp(code === _charcodes.charCodes.equalsTo ? _types.TokenType.eq : _types.TokenType.bang, 1); - } - function readToken_question() { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - const nextChar2 = _base.input.charCodeAt(_base.state.pos + 2); - if (nextChar === _charcodes.charCodes.questionMark && // In Flow (but not TypeScript), ??string is a valid type that should be - // tokenized as two individual ? tokens. - !(_base.isFlowEnabled && _base.state.isType)) { - if (nextChar2 === _charcodes.charCodes.equalsTo) { - finishOp(_types.TokenType.assign, 3); - } else { - finishOp(_types.TokenType.nullishCoalescing, 2); - } - } else if (nextChar === _charcodes.charCodes.dot && !(nextChar2 >= _charcodes.charCodes.digit0 && nextChar2 <= _charcodes.charCodes.digit9)) { - _base.state.pos += 2; - finishToken(_types.TokenType.questionDot); - } else { - ++_base.state.pos; - finishToken(_types.TokenType.question); - } - } - function getTokenFromCode(code) { - switch (code) { - case _charcodes.charCodes.numberSign: - ++_base.state.pos; - finishToken(_types.TokenType.hash); - return; - // The interpretation of a dot depends on whether it is followed - // by a digit or another two dots. - case _charcodes.charCodes.dot: - readToken_dot(); - return; - // Punctuation tokens. - case _charcodes.charCodes.leftParenthesis: - ++_base.state.pos; - finishToken(_types.TokenType.parenL); - return; - case _charcodes.charCodes.rightParenthesis: - ++_base.state.pos; - finishToken(_types.TokenType.parenR); - return; - case _charcodes.charCodes.semicolon: - ++_base.state.pos; - finishToken(_types.TokenType.semi); - return; - case _charcodes.charCodes.comma: - ++_base.state.pos; - finishToken(_types.TokenType.comma); - return; - case _charcodes.charCodes.leftSquareBracket: - ++_base.state.pos; - finishToken(_types.TokenType.bracketL); - return; - case _charcodes.charCodes.rightSquareBracket: - ++_base.state.pos; - finishToken(_types.TokenType.bracketR); - return; - case _charcodes.charCodes.leftCurlyBrace: - if (_base.isFlowEnabled && _base.input.charCodeAt(_base.state.pos + 1) === _charcodes.charCodes.verticalBar) { - finishOp(_types.TokenType.braceBarL, 2); - } else { - ++_base.state.pos; - finishToken(_types.TokenType.braceL); - } - return; - case _charcodes.charCodes.rightCurlyBrace: - ++_base.state.pos; - finishToken(_types.TokenType.braceR); - return; - case _charcodes.charCodes.colon: - if (_base.input.charCodeAt(_base.state.pos + 1) === _charcodes.charCodes.colon) { - finishOp(_types.TokenType.doubleColon, 2); - } else { - ++_base.state.pos; - finishToken(_types.TokenType.colon); - } - return; - case _charcodes.charCodes.questionMark: - readToken_question(); - return; - case _charcodes.charCodes.atSign: - ++_base.state.pos; - finishToken(_types.TokenType.at); - return; - case _charcodes.charCodes.graveAccent: - ++_base.state.pos; - finishToken(_types.TokenType.backQuote); - return; - case _charcodes.charCodes.digit0: { - const nextChar = _base.input.charCodeAt(_base.state.pos + 1); - if (nextChar === _charcodes.charCodes.lowercaseX || nextChar === _charcodes.charCodes.uppercaseX || nextChar === _charcodes.charCodes.lowercaseO || nextChar === _charcodes.charCodes.uppercaseO || nextChar === _charcodes.charCodes.lowercaseB || nextChar === _charcodes.charCodes.uppercaseB) { - readRadixNumber(); - return; - } - } - // Anything else beginning with a digit is an integer, octal - // number, or float. - case _charcodes.charCodes.digit1: - case _charcodes.charCodes.digit2: - case _charcodes.charCodes.digit3: - case _charcodes.charCodes.digit4: - case _charcodes.charCodes.digit5: - case _charcodes.charCodes.digit6: - case _charcodes.charCodes.digit7: - case _charcodes.charCodes.digit8: - case _charcodes.charCodes.digit9: - readNumber(false); - return; - // Quotes produce strings. - case _charcodes.charCodes.quotationMark: - case _charcodes.charCodes.apostrophe: - readString(code); - return; - // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is - // often referred to. `finishOp` simply skips the amount of - // characters it is given as second argument, and returns a token - // of the type given by its first argument. - case _charcodes.charCodes.slash: - readToken_slash(); - return; - case _charcodes.charCodes.percentSign: - case _charcodes.charCodes.asterisk: - readToken_mult_modulo(code); - return; - case _charcodes.charCodes.verticalBar: - case _charcodes.charCodes.ampersand: - readToken_pipe_amp(code); - return; - case _charcodes.charCodes.caret: - readToken_caret(); - return; - case _charcodes.charCodes.plusSign: - case _charcodes.charCodes.dash: - readToken_plus_min(code); - return; - case _charcodes.charCodes.lessThan: - readToken_lt(); - return; - case _charcodes.charCodes.greaterThan: - readToken_gt(); - return; - case _charcodes.charCodes.equalsTo: - case _charcodes.charCodes.exclamationMark: - readToken_eq_excl(code); - return; - case _charcodes.charCodes.tilde: - finishOp(_types.TokenType.tilde, 1); - return; - default: - break; - } - _util.unexpected.call(void 0, `Unexpected character '${String.fromCharCode(code)}'`, _base.state.pos); - } - exports2.getTokenFromCode = getTokenFromCode; - function finishOp(type, size2) { - _base.state.pos += size2; - finishToken(type); - } - function readRegexp() { - const start = _base.state.pos; - let escaped = false; - let inClass = false; - for (; ; ) { - if (_base.state.pos >= _base.input.length) { - _util.unexpected.call(void 0, "Unterminated regular expression", start); - return; - } - const code = _base.input.charCodeAt(_base.state.pos); - if (escaped) { - escaped = false; - } else { - if (code === _charcodes.charCodes.leftSquareBracket) { - inClass = true; - } else if (code === _charcodes.charCodes.rightSquareBracket && inClass) { - inClass = false; - } else if (code === _charcodes.charCodes.slash && !inClass) { - break; - } - escaped = code === _charcodes.charCodes.backslash; - } - ++_base.state.pos; - } - ++_base.state.pos; - skipWord(); - finishToken(_types.TokenType.regexp); - } - function readInt() { - while (true) { - const code = _base.input.charCodeAt(_base.state.pos); - if (code >= _charcodes.charCodes.digit0 && code <= _charcodes.charCodes.digit9 || code === _charcodes.charCodes.underscore) { - _base.state.pos++; - } else { - break; - } - } - } - function readRadixNumber() { - _base.state.pos += 2; - while (true) { - const code = _base.input.charCodeAt(_base.state.pos); - if (code >= _charcodes.charCodes.digit0 && code <= _charcodes.charCodes.digit9 || code >= _charcodes.charCodes.lowercaseA && code <= _charcodes.charCodes.lowercaseF || code >= _charcodes.charCodes.uppercaseA && code <= _charcodes.charCodes.uppercaseF || code === _charcodes.charCodes.underscore) { - _base.state.pos++; - } else { - break; - } - } - const nextChar = _base.input.charCodeAt(_base.state.pos); - if (nextChar === _charcodes.charCodes.lowercaseN) { - ++_base.state.pos; - finishToken(_types.TokenType.bigint); - } else { - finishToken(_types.TokenType.num); - } - } - function readNumber(startsWithDot) { - let isBigInt = false; - let isDecimal = false; - if (!startsWithDot) { - readInt(); - } - let nextChar = _base.input.charCodeAt(_base.state.pos); - if (nextChar === _charcodes.charCodes.dot) { - ++_base.state.pos; - readInt(); - nextChar = _base.input.charCodeAt(_base.state.pos); - } - if (nextChar === _charcodes.charCodes.uppercaseE || nextChar === _charcodes.charCodes.lowercaseE) { - nextChar = _base.input.charCodeAt(++_base.state.pos); - if (nextChar === _charcodes.charCodes.plusSign || nextChar === _charcodes.charCodes.dash) { - ++_base.state.pos; - } - readInt(); - nextChar = _base.input.charCodeAt(_base.state.pos); - } - if (nextChar === _charcodes.charCodes.lowercaseN) { - ++_base.state.pos; - isBigInt = true; - } else if (nextChar === _charcodes.charCodes.lowercaseM) { - ++_base.state.pos; - isDecimal = true; - } - if (isBigInt) { - finishToken(_types.TokenType.bigint); - return; - } - if (isDecimal) { - finishToken(_types.TokenType.decimal); - return; - } - finishToken(_types.TokenType.num); - } - function readString(quote) { - _base.state.pos++; - for (; ; ) { - if (_base.state.pos >= _base.input.length) { - _util.unexpected.call(void 0, "Unterminated string constant"); - return; - } - const ch = _base.input.charCodeAt(_base.state.pos); - if (ch === _charcodes.charCodes.backslash) { - _base.state.pos++; - } else if (ch === quote) { - break; - } - _base.state.pos++; - } - _base.state.pos++; - finishToken(_types.TokenType.string); - } - function readTmplToken() { - for (; ; ) { - if (_base.state.pos >= _base.input.length) { - _util.unexpected.call(void 0, "Unterminated template"); - return; - } - const ch = _base.input.charCodeAt(_base.state.pos); - if (ch === _charcodes.charCodes.graveAccent || ch === _charcodes.charCodes.dollarSign && _base.input.charCodeAt(_base.state.pos + 1) === _charcodes.charCodes.leftCurlyBrace) { - if (_base.state.pos === _base.state.start && match3(_types.TokenType.template)) { - if (ch === _charcodes.charCodes.dollarSign) { - _base.state.pos += 2; - finishToken(_types.TokenType.dollarBraceL); - return; - } else { - ++_base.state.pos; - finishToken(_types.TokenType.backQuote); - return; - } - } - finishToken(_types.TokenType.template); - return; - } - if (ch === _charcodes.charCodes.backslash) { - _base.state.pos++; - } - _base.state.pos++; - } - } - function skipWord() { - while (_base.state.pos < _base.input.length) { - const ch = _base.input.charCodeAt(_base.state.pos); - if (_identifier.IS_IDENTIFIER_CHAR[ch]) { - _base.state.pos++; - } else if (ch === _charcodes.charCodes.backslash) { - _base.state.pos += 2; - if (_base.input.charCodeAt(_base.state.pos) === _charcodes.charCodes.leftCurlyBrace) { - while (_base.state.pos < _base.input.length && _base.input.charCodeAt(_base.state.pos) !== _charcodes.charCodes.rightCurlyBrace) { - _base.state.pos++; - } - _base.state.pos++; - } - } else { - break; - } - } - } - exports2.skipWord = skipWord; - } -}); - -// node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js -var require_getImportExportSpecifierInfo = __commonJS({ - "node_modules/sucrase/dist/util/getImportExportSpecifierInfo.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _types = require_types(); - function getImportExportSpecifierInfo(tokens, index = tokens.currentIndex()) { - let endIndex = index + 1; - if (isSpecifierEnd(tokens, endIndex)) { - const name = tokens.identifierNameAtIndex(index); - return { - isType: false, - leftName: name, - rightName: name, - endIndex - }; - } - endIndex++; - if (isSpecifierEnd(tokens, endIndex)) { - return { - isType: true, - leftName: null, - rightName: null, - endIndex - }; - } - endIndex++; - if (isSpecifierEnd(tokens, endIndex)) { - return { - isType: false, - leftName: tokens.identifierNameAtIndex(index), - rightName: tokens.identifierNameAtIndex(index + 2), - endIndex - }; - } - endIndex++; - if (isSpecifierEnd(tokens, endIndex)) { - return { - isType: true, - leftName: null, - rightName: null, - endIndex - }; - } - throw new Error(`Unexpected import/export specifier at ${index}`); - } - exports2.default = getImportExportSpecifierInfo; - function isSpecifierEnd(tokens, index) { - const token2 = tokens.tokens[index]; - return token2.type === _types.TokenType.braceR || token2.type === _types.TokenType.comma; - } - } -}); - -// node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js -var require_xhtml = __commonJS({ - "node_modules/sucrase/dist/parser/plugins/jsx/xhtml.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.default = /* @__PURE__ */ new Map([ - ["quot", '"'], - ["amp", "&"], - ["apos", "'"], - ["lt", "<"], - ["gt", ">"], - ["nbsp", "\xA0"], - ["iexcl", "\xA1"], - ["cent", "\xA2"], - ["pound", "\xA3"], - ["curren", "\xA4"], - ["yen", "\xA5"], - ["brvbar", "\xA6"], - ["sect", "\xA7"], - ["uml", "\xA8"], - ["copy", "\xA9"], - ["ordf", "\xAA"], - ["laquo", "\xAB"], - ["not", "\xAC"], - ["shy", "\xAD"], - ["reg", "\xAE"], - ["macr", "\xAF"], - ["deg", "\xB0"], - ["plusmn", "\xB1"], - ["sup2", "\xB2"], - ["sup3", "\xB3"], - ["acute", "\xB4"], - ["micro", "\xB5"], - ["para", "\xB6"], - ["middot", "\xB7"], - ["cedil", "\xB8"], - ["sup1", "\xB9"], - ["ordm", "\xBA"], - ["raquo", "\xBB"], - ["frac14", "\xBC"], - ["frac12", "\xBD"], - ["frac34", "\xBE"], - ["iquest", "\xBF"], - ["Agrave", "\xC0"], - ["Aacute", "\xC1"], - ["Acirc", "\xC2"], - ["Atilde", "\xC3"], - ["Auml", "\xC4"], - ["Aring", "\xC5"], - ["AElig", "\xC6"], - ["Ccedil", "\xC7"], - ["Egrave", "\xC8"], - ["Eacute", "\xC9"], - ["Ecirc", "\xCA"], - ["Euml", "\xCB"], - ["Igrave", "\xCC"], - ["Iacute", "\xCD"], - ["Icirc", "\xCE"], - ["Iuml", "\xCF"], - ["ETH", "\xD0"], - ["Ntilde", "\xD1"], - ["Ograve", "\xD2"], - ["Oacute", "\xD3"], - ["Ocirc", "\xD4"], - ["Otilde", "\xD5"], - ["Ouml", "\xD6"], - ["times", "\xD7"], - ["Oslash", "\xD8"], - ["Ugrave", "\xD9"], - ["Uacute", "\xDA"], - ["Ucirc", "\xDB"], - ["Uuml", "\xDC"], - ["Yacute", "\xDD"], - ["THORN", "\xDE"], - ["szlig", "\xDF"], - ["agrave", "\xE0"], - ["aacute", "\xE1"], - ["acirc", "\xE2"], - ["atilde", "\xE3"], - ["auml", "\xE4"], - ["aring", "\xE5"], - ["aelig", "\xE6"], - ["ccedil", "\xE7"], - ["egrave", "\xE8"], - ["eacute", "\xE9"], - ["ecirc", "\xEA"], - ["euml", "\xEB"], - ["igrave", "\xEC"], - ["iacute", "\xED"], - ["icirc", "\xEE"], - ["iuml", "\xEF"], - ["eth", "\xF0"], - ["ntilde", "\xF1"], - ["ograve", "\xF2"], - ["oacute", "\xF3"], - ["ocirc", "\xF4"], - ["otilde", "\xF5"], - ["ouml", "\xF6"], - ["divide", "\xF7"], - ["oslash", "\xF8"], - ["ugrave", "\xF9"], - ["uacute", "\xFA"], - ["ucirc", "\xFB"], - ["uuml", "\xFC"], - ["yacute", "\xFD"], - ["thorn", "\xFE"], - ["yuml", "\xFF"], - ["OElig", "\u0152"], - ["oelig", "\u0153"], - ["Scaron", "\u0160"], - ["scaron", "\u0161"], - ["Yuml", "\u0178"], - ["fnof", "\u0192"], - ["circ", "\u02C6"], - ["tilde", "\u02DC"], - ["Alpha", "\u0391"], - ["Beta", "\u0392"], - ["Gamma", "\u0393"], - ["Delta", "\u0394"], - ["Epsilon", "\u0395"], - ["Zeta", "\u0396"], - ["Eta", "\u0397"], - ["Theta", "\u0398"], - ["Iota", "\u0399"], - ["Kappa", "\u039A"], - ["Lambda", "\u039B"], - ["Mu", "\u039C"], - ["Nu", "\u039D"], - ["Xi", "\u039E"], - ["Omicron", "\u039F"], - ["Pi", "\u03A0"], - ["Rho", "\u03A1"], - ["Sigma", "\u03A3"], - ["Tau", "\u03A4"], - ["Upsilon", "\u03A5"], - ["Phi", "\u03A6"], - ["Chi", "\u03A7"], - ["Psi", "\u03A8"], - ["Omega", "\u03A9"], - ["alpha", "\u03B1"], - ["beta", "\u03B2"], - ["gamma", "\u03B3"], - ["delta", "\u03B4"], - ["epsilon", "\u03B5"], - ["zeta", "\u03B6"], - ["eta", "\u03B7"], - ["theta", "\u03B8"], - ["iota", "\u03B9"], - ["kappa", "\u03BA"], - ["lambda", "\u03BB"], - ["mu", "\u03BC"], - ["nu", "\u03BD"], - ["xi", "\u03BE"], - ["omicron", "\u03BF"], - ["pi", "\u03C0"], - ["rho", "\u03C1"], - ["sigmaf", "\u03C2"], - ["sigma", "\u03C3"], - ["tau", "\u03C4"], - ["upsilon", "\u03C5"], - ["phi", "\u03C6"], - ["chi", "\u03C7"], - ["psi", "\u03C8"], - ["omega", "\u03C9"], - ["thetasym", "\u03D1"], - ["upsih", "\u03D2"], - ["piv", "\u03D6"], - ["ensp", "\u2002"], - ["emsp", "\u2003"], - ["thinsp", "\u2009"], - ["zwnj", "\u200C"], - ["zwj", "\u200D"], - ["lrm", "\u200E"], - ["rlm", "\u200F"], - ["ndash", "\u2013"], - ["mdash", "\u2014"], - ["lsquo", "\u2018"], - ["rsquo", "\u2019"], - ["sbquo", "\u201A"], - ["ldquo", "\u201C"], - ["rdquo", "\u201D"], - ["bdquo", "\u201E"], - ["dagger", "\u2020"], - ["Dagger", "\u2021"], - ["bull", "\u2022"], - ["hellip", "\u2026"], - ["permil", "\u2030"], - ["prime", "\u2032"], - ["Prime", "\u2033"], - ["lsaquo", "\u2039"], - ["rsaquo", "\u203A"], - ["oline", "\u203E"], - ["frasl", "\u2044"], - ["euro", "\u20AC"], - ["image", "\u2111"], - ["weierp", "\u2118"], - ["real", "\u211C"], - ["trade", "\u2122"], - ["alefsym", "\u2135"], - ["larr", "\u2190"], - ["uarr", "\u2191"], - ["rarr", "\u2192"], - ["darr", "\u2193"], - ["harr", "\u2194"], - ["crarr", "\u21B5"], - ["lArr", "\u21D0"], - ["uArr", "\u21D1"], - ["rArr", "\u21D2"], - ["dArr", "\u21D3"], - ["hArr", "\u21D4"], - ["forall", "\u2200"], - ["part", "\u2202"], - ["exist", "\u2203"], - ["empty", "\u2205"], - ["nabla", "\u2207"], - ["isin", "\u2208"], - ["notin", "\u2209"], - ["ni", "\u220B"], - ["prod", "\u220F"], - ["sum", "\u2211"], - ["minus", "\u2212"], - ["lowast", "\u2217"], - ["radic", "\u221A"], - ["prop", "\u221D"], - ["infin", "\u221E"], - ["ang", "\u2220"], - ["and", "\u2227"], - ["or", "\u2228"], - ["cap", "\u2229"], - ["cup", "\u222A"], - ["int", "\u222B"], - ["there4", "\u2234"], - ["sim", "\u223C"], - ["cong", "\u2245"], - ["asymp", "\u2248"], - ["ne", "\u2260"], - ["equiv", "\u2261"], - ["le", "\u2264"], - ["ge", "\u2265"], - ["sub", "\u2282"], - ["sup", "\u2283"], - ["nsub", "\u2284"], - ["sube", "\u2286"], - ["supe", "\u2287"], - ["oplus", "\u2295"], - ["otimes", "\u2297"], - ["perp", "\u22A5"], - ["sdot", "\u22C5"], - ["lceil", "\u2308"], - ["rceil", "\u2309"], - ["lfloor", "\u230A"], - ["rfloor", "\u230B"], - ["lang", "\u2329"], - ["rang", "\u232A"], - ["loz", "\u25CA"], - ["spades", "\u2660"], - ["clubs", "\u2663"], - ["hearts", "\u2665"], - ["diams", "\u2666"] - ]); - } -}); - -// node_modules/sucrase/dist/util/getJSXPragmaInfo.js -var require_getJSXPragmaInfo = __commonJS({ - "node_modules/sucrase/dist/util/getJSXPragmaInfo.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function getJSXPragmaInfo(options2) { - const [base, suffix] = splitPragma(options2.jsxPragma || "React.createElement"); - const [fragmentBase, fragmentSuffix] = splitPragma(options2.jsxFragmentPragma || "React.Fragment"); - return { base, suffix, fragmentBase, fragmentSuffix }; - } - exports2.default = getJSXPragmaInfo; - function splitPragma(pragma) { - let dotIndex = pragma.indexOf("."); - if (dotIndex === -1) { - dotIndex = pragma.length; - } - return [pragma.slice(0, dotIndex), pragma.slice(dotIndex)]; - } - } -}); - -// node_modules/sucrase/dist/transformers/Transformer.js -var require_Transformer = __commonJS({ - "node_modules/sucrase/dist/transformers/Transformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var Transformer = class { - // Return true if anything was processed, false otherwise. - getPrefixCode() { - return ""; - } - getHoistedCode() { - return ""; - } - getSuffixCode() { - return ""; - } - }; - exports2.default = Transformer; - } -}); - -// node_modules/sucrase/dist/transformers/JSXTransformer.js -var require_JSXTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/JSXTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _xhtml = require_xhtml(); - var _xhtml2 = _interopRequireDefault(_xhtml); - var _tokenizer = require_tokenizer(); - var _types = require_types(); - var _charcodes = require_charcodes(); - var _getJSXPragmaInfo = require_getJSXPragmaInfo(); - var _getJSXPragmaInfo2 = _interopRequireDefault(_getJSXPragmaInfo); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var JSXTransformer = class _JSXTransformer extends _Transformer2.default { - // State for calculating the line number of each JSX tag in development. - __init() { - this.lastLineNumber = 1; - } - __init2() { - this.lastIndex = 0; - } - // In development, variable name holding the name of the current file. - __init3() { - this.filenameVarName = null; - } - // Mapping of claimed names for imports in the automatic transform, e,g. - // {jsx: "_jsx"}. This determines which imports to generate in the prefix. - __init4() { - this.esmAutomaticImportNameResolutions = {}; - } - // When automatically adding imports in CJS mode, we store the variable name - // holding the imported CJS module so we can require it in the prefix. - __init5() { - this.cjsAutomaticModuleNameResolutions = {}; - } - constructor(rootTransformer, tokens, importProcessor, nameManager, options2) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.importProcessor = importProcessor; - this.nameManager = nameManager; - this.options = options2; - _JSXTransformer.prototype.__init.call(this); - _JSXTransformer.prototype.__init2.call(this); - _JSXTransformer.prototype.__init3.call(this); - _JSXTransformer.prototype.__init4.call(this); - _JSXTransformer.prototype.__init5.call(this); - ; - this.jsxPragmaInfo = _getJSXPragmaInfo2.default.call(void 0, options2); - this.isAutomaticRuntime = options2.jsxRuntime === "automatic"; - this.jsxImportSource = options2.jsxImportSource || "react"; - } - process() { - if (this.tokens.matches1(_types.TokenType.jsxTagStart)) { - this.processJSXTag(); - return true; - } - return false; - } - getPrefixCode() { - let prefix2 = ""; - if (this.filenameVarName) { - prefix2 += `const ${this.filenameVarName} = ${JSON.stringify(this.options.filePath || "")};`; - } - if (this.isAutomaticRuntime) { - if (this.importProcessor) { - for (const [path, resolvedName] of Object.entries(this.cjsAutomaticModuleNameResolutions)) { - prefix2 += `var ${resolvedName} = require("${path}");`; - } - } else { - const { createElement: createElementResolution, ...otherResolutions } = this.esmAutomaticImportNameResolutions; - if (createElementResolution) { - prefix2 += `import {createElement as ${createElementResolution}} from "${this.jsxImportSource}";`; - } - const importSpecifiers = Object.entries(otherResolutions).map(([name, resolvedName]) => `${name} as ${resolvedName}`).join(", "); - if (importSpecifiers) { - const importPath = this.jsxImportSource + (this.options.production ? "/jsx-runtime" : "/jsx-dev-runtime"); - prefix2 += `import {${importSpecifiers}} from "${importPath}";`; - } - } - } - return prefix2; - } - processJSXTag() { - const { jsxRole, start } = this.tokens.currentToken(); - const elementLocationCode = this.options.production ? null : this.getElementLocationCode(start); - if (this.isAutomaticRuntime && jsxRole !== _tokenizer.JSXRole.KeyAfterPropSpread) { - this.transformTagToJSXFunc(elementLocationCode, jsxRole); - } else { - this.transformTagToCreateElement(elementLocationCode); - } - } - getElementLocationCode(firstTokenStart) { - const lineNumber = this.getLineNumberForIndex(firstTokenStart); - return `lineNumber: ${lineNumber}`; - } - /** - * Get the line number for this source position. This is calculated lazily and - * must be called in increasing order by index. - */ - getLineNumberForIndex(index) { - const code = this.tokens.code; - while (this.lastIndex < index && this.lastIndex < code.length) { - if (code[this.lastIndex] === "\n") { - this.lastLineNumber++; - } - this.lastIndex++; - } - return this.lastLineNumber; - } - /** - * Convert the current JSX element to a call to jsx, jsxs, or jsxDEV. This is - * the primary transformation for the automatic transform. - * - * Example: - *
Hello{x}
- * becomes - * jsxs('div', {a: 1, children: ["Hello", x]}, 2) - */ - transformTagToJSXFunc(elementLocationCode, jsxRole) { - const isStatic = jsxRole === _tokenizer.JSXRole.StaticChildren; - this.tokens.replaceToken(this.getJSXFuncInvocationCode(isStatic)); - let keyCode = null; - if (this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.replaceToken(`${this.getFragmentCode()}, {`); - this.processAutomaticChildrenAndEndProps(jsxRole); - } else { - this.processTagIntro(); - this.tokens.appendCode(", {"); - keyCode = this.processProps(true); - if (this.tokens.matches2(_types.TokenType.slash, _types.TokenType.jsxTagEnd)) { - this.tokens.appendCode("}"); - } else if (this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.removeToken(); - this.processAutomaticChildrenAndEndProps(jsxRole); - } else { - throw new Error("Expected either /> or > at the end of the tag."); - } - if (keyCode) { - this.tokens.appendCode(`, ${keyCode}`); - } - } - if (!this.options.production) { - if (keyCode === null) { - this.tokens.appendCode(", void 0"); - } - this.tokens.appendCode(`, ${isStatic}, ${this.getDevSource(elementLocationCode)}, this`); - } - this.tokens.removeInitialToken(); - while (!this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.removeToken(); - } - this.tokens.replaceToken(")"); - } - /** - * Convert the current JSX element to a createElement call. In the classic - * runtime, this is the only case. In the automatic runtime, this is called - * as a fallback in some situations. - * - * Example: - *
Hello{x}
- * becomes - * React.createElement('div', {a: 1, key: 2}, "Hello", x) - */ - transformTagToCreateElement(elementLocationCode) { - this.tokens.replaceToken(this.getCreateElementInvocationCode()); - if (this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.replaceToken(`${this.getFragmentCode()}, null`); - this.processChildren(true); - } else { - this.processTagIntro(); - this.processPropsObjectWithDevInfo(elementLocationCode); - if (this.tokens.matches2(_types.TokenType.slash, _types.TokenType.jsxTagEnd)) { - } else if (this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.removeToken(); - this.processChildren(true); - } else { - throw new Error("Expected either /> or > at the end of the tag."); - } - } - this.tokens.removeInitialToken(); - while (!this.tokens.matches1(_types.TokenType.jsxTagEnd)) { - this.tokens.removeToken(); - } - this.tokens.replaceToken(")"); - } - /** - * Get the code for the relevant function for this context: jsx, jsxs, - * or jsxDEV. The following open-paren is included as well. - * - * These functions are only used for the automatic runtime, so they are always - * auto-imported, but the auto-import will be either CJS or ESM based on the - * target module format. - */ - getJSXFuncInvocationCode(isStatic) { - if (this.options.production) { - if (isStatic) { - return this.claimAutoImportedFuncInvocation("jsxs", "/jsx-runtime"); - } else { - return this.claimAutoImportedFuncInvocation("jsx", "/jsx-runtime"); - } - } else { - return this.claimAutoImportedFuncInvocation("jsxDEV", "/jsx-dev-runtime"); - } - } - /** - * Return the code to use for the createElement function, e.g. - * `React.createElement`, including the following open-paren. - * - * This is the main function to use for the classic runtime. For the - * automatic runtime, this function is used as a fallback function to - * preserve behavior when there is a prop spread followed by an explicit - * key. In that automatic runtime case, the function should be automatically - * imported. - */ - getCreateElementInvocationCode() { - if (this.isAutomaticRuntime) { - return this.claimAutoImportedFuncInvocation("createElement", ""); - } else { - const { jsxPragmaInfo } = this; - const resolvedPragmaBaseName = this.importProcessor ? this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.base) || jsxPragmaInfo.base : jsxPragmaInfo.base; - return `${resolvedPragmaBaseName}${jsxPragmaInfo.suffix}(`; - } - } - /** - * Return the code to use as the component when compiling a shorthand - * fragment, e.g. `React.Fragment`. - * - * This may be called from either the classic or automatic runtime, and - * the value should be auto-imported for the automatic runtime. - */ - getFragmentCode() { - if (this.isAutomaticRuntime) { - return this.claimAutoImportedName( - "Fragment", - this.options.production ? "/jsx-runtime" : "/jsx-dev-runtime" - ); - } else { - const { jsxPragmaInfo } = this; - const resolvedFragmentPragmaBaseName = this.importProcessor ? this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.fragmentBase) || jsxPragmaInfo.fragmentBase : jsxPragmaInfo.fragmentBase; - return resolvedFragmentPragmaBaseName + jsxPragmaInfo.fragmentSuffix; - } - } - /** - * Return code that invokes the given function. - * - * When the imports transform is enabled, use the CJSImportTransformer - * strategy of using `.call(void 0, ...` to avoid passing a `this` value in a - * situation that would otherwise look like a method call. - */ - claimAutoImportedFuncInvocation(funcName, importPathSuffix) { - const funcCode = this.claimAutoImportedName(funcName, importPathSuffix); - if (this.importProcessor) { - return `${funcCode}.call(void 0, `; - } else { - return `${funcCode}(`; - } - } - claimAutoImportedName(funcName, importPathSuffix) { - if (this.importProcessor) { - const path = this.jsxImportSource + importPathSuffix; - if (!this.cjsAutomaticModuleNameResolutions[path]) { - this.cjsAutomaticModuleNameResolutions[path] = this.importProcessor.getFreeIdentifierForPath(path); - } - return `${this.cjsAutomaticModuleNameResolutions[path]}.${funcName}`; - } else { - if (!this.esmAutomaticImportNameResolutions[funcName]) { - this.esmAutomaticImportNameResolutions[funcName] = this.nameManager.claimFreeName( - `_${funcName}` - ); - } - return this.esmAutomaticImportNameResolutions[funcName]; - } - } - /** - * Process the first part of a tag, before any props. - */ - processTagIntro() { - let introEnd = this.tokens.currentIndex() + 1; - while (this.tokens.tokens[introEnd].isType || !this.tokens.matches2AtIndex(introEnd - 1, _types.TokenType.jsxName, _types.TokenType.jsxName) && !this.tokens.matches2AtIndex(introEnd - 1, _types.TokenType.greaterThan, _types.TokenType.jsxName) && !this.tokens.matches1AtIndex(introEnd, _types.TokenType.braceL) && !this.tokens.matches1AtIndex(introEnd, _types.TokenType.jsxTagEnd) && !this.tokens.matches2AtIndex(introEnd, _types.TokenType.slash, _types.TokenType.jsxTagEnd)) { - introEnd++; - } - if (introEnd === this.tokens.currentIndex() + 1) { - const tagName = this.tokens.identifierName(); - if (startsWithLowerCase(tagName)) { - this.tokens.replaceToken(`'${tagName}'`); - } - } - while (this.tokens.currentIndex() < introEnd) { - this.rootTransformer.processToken(); - } - } - /** - * Starting at the beginning of the props, add the props argument to - * React.createElement, including the comma before it. - */ - processPropsObjectWithDevInfo(elementLocationCode) { - const devProps = this.options.production ? "" : `__self: this, __source: ${this.getDevSource(elementLocationCode)}`; - if (!this.tokens.matches1(_types.TokenType.jsxName) && !this.tokens.matches1(_types.TokenType.braceL)) { - if (devProps) { - this.tokens.appendCode(`, {${devProps}}`); - } else { - this.tokens.appendCode(`, null`); - } - return; - } - this.tokens.appendCode(`, {`); - this.processProps(false); - if (devProps) { - this.tokens.appendCode(` ${devProps}}`); - } else { - this.tokens.appendCode("}"); - } - } - /** - * Transform the core part of the props, assuming that a { has already been - * inserted before us and that a } will be inserted after us. - * - * If extractKeyCode is true (i.e. when using any jsx... function), any prop - * named "key" has its code captured and returned rather than being emitted to - * the output code. This shifts line numbers, and emitting the code later will - * correct line numbers again. If no key is found or if extractKeyCode is - * false, this function returns null. - */ - processProps(extractKeyCode) { - let keyCode = null; - while (true) { - if (this.tokens.matches2(_types.TokenType.jsxName, _types.TokenType.eq)) { - const propName = this.tokens.identifierName(); - if (extractKeyCode && propName === "key") { - if (keyCode !== null) { - this.tokens.appendCode(keyCode.replace(/[^\n]/g, "")); - } - this.tokens.removeToken(); - this.tokens.removeToken(); - const snapshot = this.tokens.snapshot(); - this.processPropValue(); - keyCode = this.tokens.dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot); - continue; - } else { - this.processPropName(propName); - this.tokens.replaceToken(": "); - this.processPropValue(); - } - } else if (this.tokens.matches1(_types.TokenType.jsxName)) { - const propName = this.tokens.identifierName(); - this.processPropName(propName); - this.tokens.appendCode(": true"); - } else if (this.tokens.matches1(_types.TokenType.braceL)) { - this.tokens.replaceToken(""); - this.rootTransformer.processBalancedCode(); - this.tokens.replaceToken(""); - } else { - break; - } - this.tokens.appendCode(","); - } - return keyCode; - } - processPropName(propName) { - if (propName.includes("-")) { - this.tokens.replaceToken(`'${propName}'`); - } else { - this.tokens.copyToken(); - } - } - processPropValue() { - if (this.tokens.matches1(_types.TokenType.braceL)) { - this.tokens.replaceToken(""); - this.rootTransformer.processBalancedCode(); - this.tokens.replaceToken(""); - } else if (this.tokens.matches1(_types.TokenType.jsxTagStart)) { - this.processJSXTag(); - } else { - this.processStringPropValue(); - } - } - processStringPropValue() { - const token2 = this.tokens.currentToken(); - const valueCode = this.tokens.code.slice(token2.start + 1, token2.end - 1); - const replacementCode = formatJSXTextReplacement(valueCode); - const literalCode = formatJSXStringValueLiteral(valueCode); - this.tokens.replaceToken(literalCode + replacementCode); - } - /** - * Starting in the middle of the props object literal, produce an additional - * prop for the children and close the object literal. - */ - processAutomaticChildrenAndEndProps(jsxRole) { - if (jsxRole === _tokenizer.JSXRole.StaticChildren) { - this.tokens.appendCode(" children: ["); - this.processChildren(false); - this.tokens.appendCode("]}"); - } else { - if (jsxRole === _tokenizer.JSXRole.OneChild) { - this.tokens.appendCode(" children: "); - } - this.processChildren(false); - this.tokens.appendCode("}"); - } - } - /** - * Transform children into a comma-separated list, which will be either - * arguments to createElement or array elements of a children prop. - */ - processChildren(needsInitialComma) { - let needsComma = needsInitialComma; - while (true) { - if (this.tokens.matches2(_types.TokenType.jsxTagStart, _types.TokenType.slash)) { - return; - } - let didEmitElement = false; - if (this.tokens.matches1(_types.TokenType.braceL)) { - if (this.tokens.matches2(_types.TokenType.braceL, _types.TokenType.braceR)) { - this.tokens.replaceToken(""); - this.tokens.replaceToken(""); - } else { - this.tokens.replaceToken(needsComma ? ", " : ""); - this.rootTransformer.processBalancedCode(); - this.tokens.replaceToken(""); - didEmitElement = true; - } - } else if (this.tokens.matches1(_types.TokenType.jsxTagStart)) { - this.tokens.appendCode(needsComma ? ", " : ""); - this.processJSXTag(); - didEmitElement = true; - } else if (this.tokens.matches1(_types.TokenType.jsxText) || this.tokens.matches1(_types.TokenType.jsxEmptyText)) { - didEmitElement = this.processChildTextElement(needsComma); - } else { - throw new Error("Unexpected token when processing JSX children."); - } - if (didEmitElement) { - needsComma = true; - } - } - } - /** - * Turn a JSX text element into a string literal, or nothing at all if the JSX - * text resolves to the empty string. - * - * Returns true if a string literal is emitted, false otherwise. - */ - processChildTextElement(needsComma) { - const token2 = this.tokens.currentToken(); - const valueCode = this.tokens.code.slice(token2.start, token2.end); - const replacementCode = formatJSXTextReplacement(valueCode); - const literalCode = formatJSXTextLiteral(valueCode); - if (literalCode === '""') { - this.tokens.replaceToken(replacementCode); - return false; - } else { - this.tokens.replaceToken(`${needsComma ? ", " : ""}${literalCode}${replacementCode}`); - return true; - } - } - getDevSource(elementLocationCode) { - return `{fileName: ${this.getFilenameVarName()}, ${elementLocationCode}}`; - } - getFilenameVarName() { - if (!this.filenameVarName) { - this.filenameVarName = this.nameManager.claimFreeName("_jsxFileName"); - } - return this.filenameVarName; - } - }; - exports2.default = JSXTransformer; - function startsWithLowerCase(s4) { - const firstChar = s4.charCodeAt(0); - return firstChar >= _charcodes.charCodes.lowercaseA && firstChar <= _charcodes.charCodes.lowercaseZ; - } - exports2.startsWithLowerCase = startsWithLowerCase; - function formatJSXTextLiteral(text2) { - let result = ""; - let whitespace3 = ""; - let isInInitialLineWhitespace = false; - let seenNonWhitespace = false; - for (let i4 = 0; i4 < text2.length; i4++) { - const c4 = text2[i4]; - if (c4 === " " || c4 === " " || c4 === "\r") { - if (!isInInitialLineWhitespace) { - whitespace3 += c4; - } - } else if (c4 === "\n") { - whitespace3 = ""; - isInInitialLineWhitespace = true; - } else { - if (seenNonWhitespace && isInInitialLineWhitespace) { - result += " "; - } - result += whitespace3; - whitespace3 = ""; - if (c4 === "&") { - const { entity, newI } = processEntity(text2, i4 + 1); - i4 = newI - 1; - result += entity; - } else { - result += c4; - } - seenNonWhitespace = true; - isInInitialLineWhitespace = false; - } - } - if (!isInInitialLineWhitespace) { - result += whitespace3; - } - return JSON.stringify(result); - } - function formatJSXTextReplacement(text2) { - let numNewlines = 0; - let numSpaces = 0; - for (const c4 of text2) { - if (c4 === "\n") { - numNewlines++; - numSpaces = 0; - } else if (c4 === " ") { - numSpaces++; - } - } - return "\n".repeat(numNewlines) + " ".repeat(numSpaces); - } - function formatJSXStringValueLiteral(text2) { - let result = ""; - for (let i4 = 0; i4 < text2.length; i4++) { - const c4 = text2[i4]; - if (c4 === "\n") { - if (/\s/.test(text2[i4 + 1])) { - result += " "; - while (i4 < text2.length && /\s/.test(text2[i4 + 1])) { - i4++; - } - } else { - result += "\n"; - } - } else if (c4 === "&") { - const { entity, newI } = processEntity(text2, i4 + 1); - result += entity; - i4 = newI - 1; - } else { - result += c4; - } - } - return JSON.stringify(result); - } - function processEntity(text2, indexAfterAmpersand) { - let str = ""; - let count = 0; - let entity; - let i4 = indexAfterAmpersand; - if (text2[i4] === "#") { - let radix = 10; - i4++; - let numStart; - if (text2[i4] === "x") { - radix = 16; - i4++; - numStart = i4; - while (i4 < text2.length && isHexDigit(text2.charCodeAt(i4))) { - i4++; - } - } else { - numStart = i4; - while (i4 < text2.length && isDecimalDigit(text2.charCodeAt(i4))) { - i4++; - } - } - if (text2[i4] === ";") { - const numStr = text2.slice(numStart, i4); - if (numStr) { - i4++; - entity = String.fromCodePoint(parseInt(numStr, radix)); - } - } - } else { - while (i4 < text2.length && count++ < 10) { - const ch = text2[i4]; - i4++; - if (ch === ";") { - entity = _xhtml2.default.get(str); - break; - } - str += ch; - } - } - if (!entity) { - return { entity: "&", newI: indexAfterAmpersand }; - } - return { entity, newI: i4 }; - } - function isDecimalDigit(code) { - return code >= _charcodes.charCodes.digit0 && code <= _charcodes.charCodes.digit9; - } - function isHexDigit(code) { - return code >= _charcodes.charCodes.digit0 && code <= _charcodes.charCodes.digit9 || code >= _charcodes.charCodes.lowercaseA && code <= _charcodes.charCodes.lowercaseF || code >= _charcodes.charCodes.uppercaseA && code <= _charcodes.charCodes.uppercaseF; - } - } -}); - -// node_modules/sucrase/dist/util/getNonTypeIdentifiers.js -var require_getNonTypeIdentifiers = __commonJS({ - "node_modules/sucrase/dist/util/getNonTypeIdentifiers.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tokenizer = require_tokenizer(); - var _types = require_types(); - var _JSXTransformer = require_JSXTransformer(); - var _getJSXPragmaInfo = require_getJSXPragmaInfo(); - var _getJSXPragmaInfo2 = _interopRequireDefault(_getJSXPragmaInfo); - function getNonTypeIdentifiers(tokens, options2) { - const jsxPragmaInfo = _getJSXPragmaInfo2.default.call(void 0, options2); - const nonTypeIdentifiers = /* @__PURE__ */ new Set(); - for (let i4 = 0; i4 < tokens.tokens.length; i4++) { - const token2 = tokens.tokens[i4]; - if (token2.type === _types.TokenType.name && !token2.isType && (token2.identifierRole === _tokenizer.IdentifierRole.Access || token2.identifierRole === _tokenizer.IdentifierRole.ObjectShorthand || token2.identifierRole === _tokenizer.IdentifierRole.ExportAccess) && !token2.shadowsGlobal) { - nonTypeIdentifiers.add(tokens.identifierNameForToken(token2)); - } - if (token2.type === _types.TokenType.jsxTagStart) { - nonTypeIdentifiers.add(jsxPragmaInfo.base); - } - if (token2.type === _types.TokenType.jsxTagStart && i4 + 1 < tokens.tokens.length && tokens.tokens[i4 + 1].type === _types.TokenType.jsxTagEnd) { - nonTypeIdentifiers.add(jsxPragmaInfo.base); - nonTypeIdentifiers.add(jsxPragmaInfo.fragmentBase); - } - if (token2.type === _types.TokenType.jsxName && token2.identifierRole === _tokenizer.IdentifierRole.Access) { - const identifierName = tokens.identifierNameForToken(token2); - if (!_JSXTransformer.startsWithLowerCase.call(void 0, identifierName) || tokens.tokens[i4 + 1].type === _types.TokenType.dot) { - nonTypeIdentifiers.add(tokens.identifierNameForToken(token2)); - } - } - } - return nonTypeIdentifiers; - } - exports2.getNonTypeIdentifiers = getNonTypeIdentifiers; - } -}); - -// node_modules/sucrase/dist/CJSImportProcessor.js -var require_CJSImportProcessor = __commonJS({ - "node_modules/sucrase/dist/CJSImportProcessor.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tokenizer = require_tokenizer(); - var _keywords = require_keywords(); - var _types = require_types(); - var _getImportExportSpecifierInfo = require_getImportExportSpecifierInfo(); - var _getImportExportSpecifierInfo2 = _interopRequireDefault(_getImportExportSpecifierInfo); - var _getNonTypeIdentifiers = require_getNonTypeIdentifiers(); - var CJSImportProcessor = class _CJSImportProcessor { - __init() { - this.nonTypeIdentifiers = /* @__PURE__ */ new Set(); - } - __init2() { - this.importInfoByPath = /* @__PURE__ */ new Map(); - } - __init3() { - this.importsToReplace = /* @__PURE__ */ new Map(); - } - __init4() { - this.identifierReplacements = /* @__PURE__ */ new Map(); - } - __init5() { - this.exportBindingsByLocalName = /* @__PURE__ */ new Map(); - } - constructor(nameManager, tokens, enableLegacyTypeScriptModuleInterop, options2, isTypeScriptTransformEnabled, keepUnusedImports, helperManager) { - ; - this.nameManager = nameManager; - this.tokens = tokens; - this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop; - this.options = options2; - this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; - this.keepUnusedImports = keepUnusedImports; - this.helperManager = helperManager; - _CJSImportProcessor.prototype.__init.call(this); - _CJSImportProcessor.prototype.__init2.call(this); - _CJSImportProcessor.prototype.__init3.call(this); - _CJSImportProcessor.prototype.__init4.call(this); - _CJSImportProcessor.prototype.__init5.call(this); - } - preprocessTokens() { - for (let i4 = 0; i4 < this.tokens.tokens.length; i4++) { - if (this.tokens.matches1AtIndex(i4, _types.TokenType._import) && !this.tokens.matches3AtIndex(i4, _types.TokenType._import, _types.TokenType.name, _types.TokenType.eq)) { - this.preprocessImportAtIndex(i4); - } - if (this.tokens.matches1AtIndex(i4, _types.TokenType._export) && !this.tokens.matches2AtIndex(i4, _types.TokenType._export, _types.TokenType.eq)) { - this.preprocessExportAtIndex(i4); - } - } - this.generateImportReplacements(); - } - /** - * In TypeScript, import statements that only import types should be removed. - * This includes `import {} from 'foo';`, but not `import 'foo';`. - */ - pruneTypeOnlyImports() { - this.nonTypeIdentifiers = _getNonTypeIdentifiers.getNonTypeIdentifiers.call(void 0, this.tokens, this.options); - for (const [path, importInfo] of this.importInfoByPath.entries()) { - if (importInfo.hasBareImport || importInfo.hasStarExport || importInfo.exportStarNames.length > 0 || importInfo.namedExports.length > 0) { - continue; - } - const names = [ - ...importInfo.defaultNames, - ...importInfo.wildcardNames, - ...importInfo.namedImports.map(({ localName }) => localName) - ]; - if (names.every((name) => this.shouldAutomaticallyElideImportedName(name))) { - this.importsToReplace.set(path, ""); - } - } - } - shouldAutomaticallyElideImportedName(name) { - return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.nonTypeIdentifiers.has(name); - } - generateImportReplacements() { - for (const [path, importInfo] of this.importInfoByPath.entries()) { - const { - defaultNames, - wildcardNames, - namedImports, - namedExports, - exportStarNames, - hasStarExport - } = importInfo; - if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0 && namedExports.length === 0 && exportStarNames.length === 0 && !hasStarExport) { - this.importsToReplace.set(path, `require('${path}');`); - continue; - } - const primaryImportName = this.getFreeIdentifierForPath(path); - let secondaryImportName; - if (this.enableLegacyTypeScriptModuleInterop) { - secondaryImportName = primaryImportName; - } else { - secondaryImportName = wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path); - } - let requireCode = `var ${primaryImportName} = require('${path}');`; - if (wildcardNames.length > 0) { - for (const wildcardName of wildcardNames) { - const moduleExpr = this.enableLegacyTypeScriptModuleInterop ? primaryImportName : `${this.helperManager.getHelperName("interopRequireWildcard")}(${primaryImportName})`; - requireCode += ` var ${wildcardName} = ${moduleExpr};`; - } - } else if (exportStarNames.length > 0 && secondaryImportName !== primaryImportName) { - requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName( - "interopRequireWildcard" - )}(${primaryImportName});`; - } else if (defaultNames.length > 0 && secondaryImportName !== primaryImportName) { - requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName( - "interopRequireDefault" - )}(${primaryImportName});`; - } - for (const { importedName, localName } of namedExports) { - requireCode += ` ${this.helperManager.getHelperName( - "createNamedExportFrom" - )}(${primaryImportName}, '${localName}', '${importedName}');`; - } - for (const exportStarName of exportStarNames) { - requireCode += ` exports.${exportStarName} = ${secondaryImportName};`; - } - if (hasStarExport) { - requireCode += ` ${this.helperManager.getHelperName( - "createStarExport" - )}(${primaryImportName});`; - } - this.importsToReplace.set(path, requireCode); - for (const defaultName of defaultNames) { - this.identifierReplacements.set(defaultName, `${secondaryImportName}.default`); - } - for (const { importedName, localName } of namedImports) { - this.identifierReplacements.set(localName, `${primaryImportName}.${importedName}`); - } - } - } - getFreeIdentifierForPath(path) { - const components2 = path.split("/"); - const lastComponent = components2[components2.length - 1]; - const baseName = lastComponent.replace(/\W/g, ""); - return this.nameManager.claimFreeName(`_${baseName}`); - } - preprocessImportAtIndex(index) { - const defaultNames = []; - const wildcardNames = []; - const namedImports = []; - index++; - if ((this.tokens.matchesContextualAtIndex(index, _keywords.ContextualKeyword._type) || this.tokens.matches1AtIndex(index, _types.TokenType._typeof)) && !this.tokens.matches1AtIndex(index + 1, _types.TokenType.comma) && !this.tokens.matchesContextualAtIndex(index + 1, _keywords.ContextualKeyword._from)) { - return; - } - if (this.tokens.matches1AtIndex(index, _types.TokenType.parenL)) { - return; - } - if (this.tokens.matches1AtIndex(index, _types.TokenType.name)) { - defaultNames.push(this.tokens.identifierNameAtIndex(index)); - index++; - if (this.tokens.matches1AtIndex(index, _types.TokenType.comma)) { - index++; - } - } - if (this.tokens.matches1AtIndex(index, _types.TokenType.star)) { - index += 2; - wildcardNames.push(this.tokens.identifierNameAtIndex(index)); - index++; - } - if (this.tokens.matches1AtIndex(index, _types.TokenType.braceL)) { - const result = this.getNamedImports(index + 1); - index = result.newIndex; - for (const namedImport of result.namedImports) { - if (namedImport.importedName === "default") { - defaultNames.push(namedImport.localName); - } else { - namedImports.push(namedImport); - } - } - } - if (this.tokens.matchesContextualAtIndex(index, _keywords.ContextualKeyword._from)) { - index++; - } - if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) { - throw new Error("Expected string token at the end of import statement."); - } - const path = this.tokens.stringValueAtIndex(index); - const importInfo = this.getImportInfo(path); - importInfo.defaultNames.push(...defaultNames); - importInfo.wildcardNames.push(...wildcardNames); - importInfo.namedImports.push(...namedImports); - if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0) { - importInfo.hasBareImport = true; - } - } - preprocessExportAtIndex(index) { - if (this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType._var) || this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType._let) || this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType._const)) { - this.preprocessVarExportAtIndex(index); - } else if (this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType._function) || this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType._class)) { - const exportName = this.tokens.identifierNameAtIndex(index + 2); - this.addExportBinding(exportName, exportName); - } else if (this.tokens.matches3AtIndex(index, _types.TokenType._export, _types.TokenType.name, _types.TokenType._function)) { - const exportName = this.tokens.identifierNameAtIndex(index + 3); - this.addExportBinding(exportName, exportName); - } else if (this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType.braceL)) { - this.preprocessNamedExportAtIndex(index); - } else if (this.tokens.matches2AtIndex(index, _types.TokenType._export, _types.TokenType.star)) { - this.preprocessExportStarAtIndex(index); - } - } - preprocessVarExportAtIndex(index) { - let depth = 0; - for (let i4 = index + 2; ; i4++) { - if (this.tokens.matches1AtIndex(i4, _types.TokenType.braceL) || this.tokens.matches1AtIndex(i4, _types.TokenType.dollarBraceL) || this.tokens.matches1AtIndex(i4, _types.TokenType.bracketL)) { - depth++; - } else if (this.tokens.matches1AtIndex(i4, _types.TokenType.braceR) || this.tokens.matches1AtIndex(i4, _types.TokenType.bracketR)) { - depth--; - } else if (depth === 0 && !this.tokens.matches1AtIndex(i4, _types.TokenType.name)) { - break; - } else if (this.tokens.matches1AtIndex(1, _types.TokenType.eq)) { - const endIndex = this.tokens.currentToken().rhsEndIndex; - if (endIndex == null) { - throw new Error("Expected = token with an end index."); - } - i4 = endIndex - 1; - } else { - const token2 = this.tokens.tokens[i4]; - if (_tokenizer.isDeclaration.call(void 0, token2)) { - const exportName = this.tokens.identifierNameAtIndex(i4); - this.identifierReplacements.set(exportName, `exports.${exportName}`); - } - } - } - } - /** - * Walk this export statement just in case it's an export...from statement. - * If it is, combine it into the import info for that path. Otherwise, just - * bail out; it'll be handled later. - */ - preprocessNamedExportAtIndex(index) { - index += 2; - const { newIndex, namedImports } = this.getNamedImports(index); - index = newIndex; - if (this.tokens.matchesContextualAtIndex(index, _keywords.ContextualKeyword._from)) { - index++; - } else { - for (const { importedName: localName, localName: exportedName } of namedImports) { - this.addExportBinding(localName, exportedName); - } - return; - } - if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) { - throw new Error("Expected string token at the end of import statement."); - } - const path = this.tokens.stringValueAtIndex(index); - const importInfo = this.getImportInfo(path); - importInfo.namedExports.push(...namedImports); - } - preprocessExportStarAtIndex(index) { - let exportedName = null; - if (this.tokens.matches3AtIndex(index, _types.TokenType._export, _types.TokenType.star, _types.TokenType._as)) { - index += 3; - exportedName = this.tokens.identifierNameAtIndex(index); - index += 2; - } else { - index += 3; - } - if (!this.tokens.matches1AtIndex(index, _types.TokenType.string)) { - throw new Error("Expected string token at the end of star export statement."); - } - const path = this.tokens.stringValueAtIndex(index); - const importInfo = this.getImportInfo(path); - if (exportedName !== null) { - importInfo.exportStarNames.push(exportedName); - } else { - importInfo.hasStarExport = true; - } - } - getNamedImports(index) { - const namedImports = []; - while (true) { - if (this.tokens.matches1AtIndex(index, _types.TokenType.braceR)) { - index++; - break; - } - const specifierInfo = _getImportExportSpecifierInfo2.default.call(void 0, this.tokens, index); - index = specifierInfo.endIndex; - if (!specifierInfo.isType) { - namedImports.push({ - importedName: specifierInfo.leftName, - localName: specifierInfo.rightName +// node_modules/parsimmon/build/parsimmon.umd.min.js +var require_parsimmon_umd_min = __commonJS({ + "node_modules/parsimmon/build/parsimmon.umd.min.js"(exports, module2) { + !function(n3, t5) { + "object" == typeof exports && "object" == typeof module2 ? module2.exports = t5() : "function" == typeof define && define.amd ? define([], t5) : "object" == typeof exports ? exports.Parsimmon = t5() : n3.Parsimmon = t5(); + }("undefined" != typeof self ? self : exports, function() { + return function(n3) { + var t5 = {}; + function r4(e3) { + if (t5[e3]) return t5[e3].exports; + var u4 = t5[e3] = { i: e3, l: false, exports: {} }; + return n3[e3].call(u4.exports, u4, u4.exports, r4), u4.l = true, u4.exports; + } + return r4.m = n3, r4.c = t5, r4.d = function(n4, t6, e3) { + r4.o(n4, t6) || Object.defineProperty(n4, t6, { configurable: false, enumerable: true, get: e3 }); + }, r4.r = function(n4) { + Object.defineProperty(n4, "__esModule", { value: true }); + }, r4.n = function(n4) { + var t6 = n4 && n4.__esModule ? function() { + return n4.default; + } : function() { + return n4; + }; + return r4.d(t6, "a", t6), t6; + }, r4.o = function(n4, t6) { + return Object.prototype.hasOwnProperty.call(n4, t6); + }, r4.p = "", r4(r4.s = 0); + }([function(n3, t5, r4) { + "use strict"; + function e3(n4) { + if (!(this instanceof e3)) return new e3(n4); + this._ = n4; + } + var u4 = e3.prototype; + function o4(n4, t6) { + for (var r5 = 0; r5 < n4; r5++) t6(r5); + } + function i4(n4, t6, r5) { + return function(n5, t7) { + o4(t7.length, function(r6) { + n5(t7[r6], r6, t7); }); + }(function(r6, e4, u5) { + t6 = n4(t6, r6, e4, u5); + }, r5), t6; + } + function a4(n4, t6) { + return i4(function(t7, r5, e4, u5) { + return t7.concat([n4(r5, e4, u5)]); + }, [], t6); + } + function f4(n4, t6) { + var r5 = { v: 0, buf: t6 }; + return o4(n4, function() { + var n5; + r5 = { v: r5.v << 1 | (n5 = r5.buf, n5[0] >> 7), buf: function(n6) { + var t7 = i4(function(n7, t8, r6, e4) { + return n7.concat(r6 === e4.length - 1 ? Buffer.from([t8, 0]).readUInt16BE(0) : e4.readUInt16BE(r6)); + }, [], n6); + return Buffer.from(a4(function(n7) { + return (n7 << 1 & 65535) >> 8; + }, t7)); + }(r5.buf) }; + }), r5; + } + function c4() { + return "undefined" != typeof Buffer; + } + function s4() { + if (!c4()) throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser."); + } + function l4(n4) { + s4(); + var t6 = i4(function(n5, t7) { + return n5 + t7; + }, 0, n4); + if (t6 % 8 != 0) throw new Error("The bits [" + n4.join(", ") + "] add up to " + t6 + " which is not an even number of bytes; the total should be divisible by 8"); + var r5, u5 = t6 / 8, o5 = (r5 = function(n5) { + return n5 > 48; + }, i4(function(n5, t7) { + return n5 || (r5(t7) ? t7 : n5); + }, null, n4)); + if (o5) throw new Error(o5 + " bit range requested exceeds 48 bit (6 byte) Number max."); + return new e3(function(t7, r6) { + var e4 = u5 + r6; + return e4 > t7.length ? x4(r6, u5.toString() + " bytes") : b3(e4, i4(function(n5, t8) { + var r7 = f4(t8, n5.buf); + return { coll: n5.coll.concat(r7.v), buf: r7.buf }; + }, { coll: [], buf: t7.slice(r6, e4) }, n4).coll); + }); + } + function h3(n4, t6) { + return new e3(function(r5, e4) { + return s4(), e4 + t6 > r5.length ? x4(e4, t6 + " bytes for " + n4) : b3(e4 + t6, r5.slice(e4, e4 + t6)); + }); + } + function p3(n4, t6) { + if ("number" != typeof (r5 = t6) || Math.floor(r5) !== r5 || t6 < 0 || t6 > 6) throw new Error(n4 + " requires integer length in range [0, 6]."); + var r5; + } + function d3(n4) { + return p3("uintBE", n4), h3("uintBE(" + n4 + ")", n4).map(function(t6) { + return t6.readUIntBE(0, n4); + }); + } + function v3(n4) { + return p3("uintLE", n4), h3("uintLE(" + n4 + ")", n4).map(function(t6) { + return t6.readUIntLE(0, n4); + }); + } + function g4(n4) { + return p3("intBE", n4), h3("intBE(" + n4 + ")", n4).map(function(t6) { + return t6.readIntBE(0, n4); + }); + } + function m3(n4) { + return p3("intLE", n4), h3("intLE(" + n4 + ")", n4).map(function(t6) { + return t6.readIntLE(0, n4); + }); + } + function y4(n4) { + return n4 instanceof e3; + } + function E3(n4) { + return "[object Array]" === {}.toString.call(n4); + } + function w5(n4) { + return c4() && Buffer.isBuffer(n4); + } + function b3(n4, t6) { + return { status: true, index: n4, value: t6, furthest: -1, expected: [] }; + } + function x4(n4, t6) { + return E3(t6) || (t6 = [t6]), { status: false, index: -1, value: null, furthest: n4, expected: t6 }; + } + function B4(n4, t6) { + if (!t6) return n4; + if (n4.furthest > t6.furthest) return n4; + var r5 = n4.furthest === t6.furthest ? function(n5, t7) { + if (function() { + if (void 0 !== e3._supportsSet) return e3._supportsSet; + var n6 = "undefined" != typeof Set; + return e3._supportsSet = n6, n6; + }() && Array.from) { + for (var r6 = new Set(n5), u5 = 0; u5 < t7.length; u5++) r6.add(t7[u5]); + var o5 = Array.from(r6); + return o5.sort(), o5; + } + for (var i5 = {}, a5 = 0; a5 < n5.length; a5++) i5[n5[a5]] = true; + for (var f5 = 0; f5 < t7.length; f5++) i5[t7[f5]] = true; + var c5 = []; + for (var s5 in i5) ({}).hasOwnProperty.call(i5, s5) && c5.push(s5); + return c5.sort(), c5; + }(n4.expected, t6.expected) : t6.expected; + return { status: n4.status, index: n4.index, value: n4.value, furthest: t6.furthest, expected: r5 }; + } + var j4 = {}; + function S2(n4, t6) { + if (w5(n4)) return { offset: t6, line: -1, column: -1 }; + n4 in j4 || (j4[n4] = {}); + for (var r5 = j4[n4], e4 = 0, u5 = 0, o5 = 0, i5 = t6; i5 >= 0; ) { + if (i5 in r5) { + e4 = r5[i5].line, 0 === o5 && (o5 = r5[i5].lineStart); + break; + } + ("\n" === n4.charAt(i5) || "\r" === n4.charAt(i5) && "\n" !== n4.charAt(i5 + 1)) && (u5++, 0 === o5 && (o5 = i5 + 1)), i5--; } - if (this.tokens.matches2AtIndex(index, _types.TokenType.comma, _types.TokenType.braceR)) { - index += 2; - break; - } else if (this.tokens.matches1AtIndex(index, _types.TokenType.braceR)) { - index++; - break; - } else if (this.tokens.matches1AtIndex(index, _types.TokenType.comma)) { - index++; + var a5 = e4 + u5, f5 = t6 - o5; + return r5[t6] = { line: a5, lineStart: o5 }, { offset: t6, line: a5 + 1, column: f5 + 1 }; + } + function _3(n4) { + if (!y4(n4)) throw new Error("not a parser: " + n4); + } + function L3(n4, t6) { + return "string" == typeof n4 ? n4.charAt(t6) : n4[t6]; + } + function O3(n4) { + if ("number" != typeof n4) throw new Error("not a number: " + n4); + } + function k4(n4) { + if ("function" != typeof n4) throw new Error("not a function: " + n4); + } + function P7(n4) { + if ("string" != typeof n4) throw new Error("not a string: " + n4); + } + var q4 = 2, A4 = 3, I3 = 8, F4 = 5 * I3, M3 = 4 * I3, z4 = " "; + function R2(n4, t6) { + return new Array(t6 + 1).join(n4); + } + function U2(n4, t6, r5) { + var e4 = t6 - n4.length; + return e4 <= 0 ? n4 : R2(r5, e4) + n4; + } + function W2(n4, t6, r5, e4) { + return { from: n4 - t6 > 0 ? n4 - t6 : 0, to: n4 + r5 > e4 ? e4 : n4 + r5 }; + } + function D4(n4, t6) { + var r5, e4, u5, o5, f5, c5 = t6.index, s5 = c5.offset, l5 = 1; + if (s5 === n4.length) return "Got the end of the input"; + if (w5(n4)) { + var h4 = s5 - s5 % I3, p4 = s5 - h4, d4 = W2(h4, F4, M3 + I3, n4.length), v4 = a4(function(n5) { + return a4(function(n6) { + return U2(n6.toString(16), 2, "0"); + }, n5); + }, function(n5, t7) { + var r6 = n5.length, e5 = [], u6 = 0; + if (r6 <= t7) return [n5.slice()]; + for (var o6 = 0; o6 < r6; o6++) e5[u6] || e5.push([]), e5[u6].push(n5[o6]), (o6 + 1) % t7 == 0 && u6++; + return e5; + }(n4.slice(d4.from, d4.to).toJSON().data, I3)); + o5 = function(n5) { + return 0 === n5.from && 1 === n5.to ? { from: n5.from, to: n5.to } : { from: n5.from / I3, to: Math.floor(n5.to / I3) }; + }(d4), e4 = h4 / I3, r5 = 3 * p4, p4 >= 4 && (r5 += 1), l5 = 2, u5 = a4(function(n5) { + return n5.length <= 4 ? n5.join(" ") : n5.slice(0, 4).join(" ") + " " + n5.slice(4).join(" "); + }, v4), (f5 = (8 * (o5.to > 0 ? o5.to - 1 : o5.to)).toString(16).length) < 2 && (f5 = 2); } else { - throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.tokens[index])}`); + var g5 = n4.split(/\r\n|[\n\r\u2028\u2029]/); + r5 = c5.column - 1, e4 = c5.line - 1, o5 = W2(e4, q4, A4, g5.length), u5 = g5.slice(o5.from, o5.to), f5 = o5.to.toString().length; } + var m4 = e4 - o5.from; + return w5(n4) && (f5 = (8 * (o5.to > 0 ? o5.to - 1 : o5.to)).toString(16).length) < 2 && (f5 = 2), i4(function(t7, e5, u6) { + var i5, a5 = u6 === m4, c6 = a5 ? "> " : z4; + return i5 = w5(n4) ? U2((8 * (o5.from + u6)).toString(16), f5, "0") : U2((o5.from + u6 + 1).toString(), f5, " "), [].concat(t7, [c6 + i5 + " | " + e5], a5 ? [z4 + R2(" ", f5) + " | " + U2("", r5, " ") + R2("^", l5)] : []); + }, [], u5).join("\n"); } - return { newIndex: index, namedImports }; - } - /** - * Get a mutable import info object for this path, creating one if it doesn't - * exist yet. - */ - getImportInfo(path) { - const existingInfo = this.importInfoByPath.get(path); - if (existingInfo) { - return existingInfo; + function N3(n4, t6) { + return ["\n", "-- PARSING FAILED " + R2("-", 50), "\n\n", D4(n4, t6), "\n\n", (r5 = t6.expected, 1 === r5.length ? "Expected:\n\n" + r5[0] : "Expected one of the following: \n\n" + r5.join(", ")), "\n"].join(""); + var r5; } - const newInfo = { - defaultNames: [], - wildcardNames: [], - namedImports: [], - namedExports: [], - hasBareImport: false, - exportStarNames: [], - hasStarExport: false - }; - this.importInfoByPath.set(path, newInfo); - return newInfo; - } - addExportBinding(localName, exportedName) { - if (!this.exportBindingsByLocalName.has(localName)) { - this.exportBindingsByLocalName.set(localName, []); + function G3(n4) { + return void 0 !== n4.flags ? n4.flags : [n4.global ? "g" : "", n4.ignoreCase ? "i" : "", n4.multiline ? "m" : "", n4.unicode ? "u" : "", n4.sticky ? "y" : ""].join(""); } - this.exportBindingsByLocalName.get(localName).push(exportedName); - } - /** - * Return the code to use for the import for this path, or the empty string if - * the code has already been "claimed" by a previous import. - */ - claimImportCode(importPath) { - const result = this.importsToReplace.get(importPath); - this.importsToReplace.set(importPath, ""); - return result || ""; - } - getIdentifierReplacement(identifierName) { - return this.identifierReplacements.get(identifierName) || null; - } - /** - * Return a string like `exports.foo = exports.bar`. - */ - resolveExportBinding(assignedName) { - const exportedNames = this.exportBindingsByLocalName.get(assignedName); - if (!exportedNames || exportedNames.length === 0) { - return null; + function C4() { + for (var n4 = [].slice.call(arguments), t6 = n4.length, r5 = 0; r5 < t6; r5 += 1) _3(n4[r5]); + return e3(function(r6, e4) { + for (var u5, o5 = new Array(t6), i5 = 0; i5 < t6; i5 += 1) { + if (!(u5 = B4(n4[i5]._(r6, e4), u5)).status) return u5; + o5[i5] = u5.value, e4 = u5.index; + } + return B4(b3(e4, o5), u5); + }); } - return exportedNames.map((exportedName) => `exports.${exportedName}`).join(" = "); - } - /** - * Return all imported/exported names where we might be interested in whether usages of those - * names are shadowed. - */ - getGlobalNames() { - return /* @__PURE__ */ new Set([ - ...this.identifierReplacements.keys(), - ...this.exportBindingsByLocalName.keys() - ]); - } - }; - exports2.default = CJSImportProcessor; + function J2() { + var n4 = [].slice.call(arguments); + if (0 === n4.length) throw new Error("seqMap needs at least one argument"); + var t6 = n4.pop(); + return k4(t6), C4.apply(null, n4).map(function(n5) { + return t6.apply(null, n5); + }); + } + function T4() { + var n4 = [].slice.call(arguments), t6 = n4.length; + if (0 === t6) return Y2("zero alternates"); + for (var r5 = 0; r5 < t6; r5 += 1) _3(n4[r5]); + return e3(function(t7, r6) { + for (var e4, u5 = 0; u5 < n4.length; u5 += 1) if ((e4 = B4(n4[u5]._(t7, r6), e4)).status) return e4; + return e4; + }); + } + function V3(n4, t6) { + return H3(n4, t6).or(X2([])); + } + function H3(n4, t6) { + return _3(n4), _3(t6), J2(n4, t6.then(n4).many(), function(n5, t7) { + return [n5].concat(t7); + }); + } + function K2(n4) { + P7(n4); + var t6 = "'" + n4 + "'"; + return e3(function(r5, e4) { + var u5 = e4 + n4.length, o5 = r5.slice(e4, u5); + return o5 === n4 ? b3(u5, o5) : x4(e4, t6); + }); + } + function Q2(n4, t6) { + !function(n5) { + if (!(n5 instanceof RegExp)) throw new Error("not a regexp: " + n5); + for (var t7 = G3(n5), r6 = 0; r6 < t7.length; r6++) { + var e4 = t7.charAt(r6); + if ("i" !== e4 && "m" !== e4 && "u" !== e4 && "s" !== e4) throw new Error('unsupported regexp flag "' + e4 + '": ' + n5); + } + }(n4), arguments.length >= 2 ? O3(t6) : t6 = 0; + var r5 = function(n5) { + return RegExp("^(?:" + n5.source + ")", G3(n5)); + }(n4), u5 = "" + n4; + return e3(function(n5, e4) { + var o5 = r5.exec(n5.slice(e4)); + if (o5) { + if (0 <= t6 && t6 <= o5.length) { + var i5 = o5[0], a5 = o5[t6]; + return b3(e4 + i5.length, a5); + } + return x4(e4, "valid match group (0 to " + o5.length + ") in " + u5); + } + return x4(e4, u5); + }); + } + function X2(n4) { + return e3(function(t6, r5) { + return b3(r5, n4); + }); + } + function Y2(n4) { + return e3(function(t6, r5) { + return x4(r5, n4); + }); + } + function Z2(n4) { + if (y4(n4)) return e3(function(t6, r5) { + var e4 = n4._(t6, r5); + return e4.index = r5, e4.value = "", e4; + }); + if ("string" == typeof n4) return Z2(K2(n4)); + if (n4 instanceof RegExp) return Z2(Q2(n4)); + throw new Error("not a string, regexp, or parser: " + n4); + } + function $3(n4) { + return _3(n4), e3(function(t6, r5) { + var e4 = n4._(t6, r5), u5 = t6.slice(r5, e4.index); + return e4.status ? x4(r5, 'not "' + u5 + '"') : b3(r5, null); + }); + } + function nn2(n4) { + return k4(n4), e3(function(t6, r5) { + var e4 = L3(t6, r5); + return r5 < t6.length && n4(e4) ? b3(r5 + 1, e4) : x4(r5, "a character/byte matching " + n4); + }); + } + function tn2(n4, t6) { + arguments.length < 2 && (t6 = n4, n4 = void 0); + var r5 = e3(function(n5, e4) { + return r5._ = t6()._, r5._(n5, e4); + }); + return n4 ? r5.desc(n4) : r5; + } + function rn2() { + return Y2("fantasy-land/empty"); + } + u4.parse = function(n4) { + if ("string" != typeof n4 && !w5(n4)) throw new Error(".parse must be called with a string or Buffer as its argument"); + var t6, r5 = this.skip(an2)._(n4, 0); + return t6 = r5.status ? { status: true, value: r5.value } : { status: false, index: S2(n4, r5.furthest), expected: r5.expected }, delete j4[n4], t6; + }, u4.tryParse = function(n4) { + var t6 = this.parse(n4); + if (t6.status) return t6.value; + var r5 = N3(n4, t6), e4 = new Error(r5); + throw e4.type = "ParsimmonError", e4.result = t6, e4; + }, u4.assert = function(n4, t6) { + return this.chain(function(r5) { + return n4(r5) ? X2(r5) : Y2(t6); + }); + }, u4.or = function(n4) { + return T4(this, n4); + }, u4.trim = function(n4) { + return this.wrap(n4, n4); + }, u4.wrap = function(n4, t6) { + return J2(n4, this, t6, function(n5, t7) { + return t7; + }); + }, u4.thru = function(n4) { + return n4(this); + }, u4.then = function(n4) { + return _3(n4), C4(this, n4).map(function(n5) { + return n5[1]; + }); + }, u4.many = function() { + var n4 = this; + return e3(function(t6, r5) { + for (var e4 = [], u5 = void 0; ; ) { + if (!(u5 = B4(n4._(t6, r5), u5)).status) return B4(b3(r5, e4), u5); + if (r5 === u5.index) throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause"); + r5 = u5.index, e4.push(u5.value); + } + }); + }, u4.tieWith = function(n4) { + return P7(n4), this.map(function(t6) { + if (function(n5) { + if (!E3(n5)) throw new Error("not an array: " + n5); + }(t6), t6.length) { + P7(t6[0]); + for (var r5 = t6[0], e4 = 1; e4 < t6.length; e4++) P7(t6[e4]), r5 += n4 + t6[e4]; + return r5; + } + return ""; + }); + }, u4.tie = function() { + return this.tieWith(""); + }, u4.times = function(n4, t6) { + var r5 = this; + return arguments.length < 2 && (t6 = n4), O3(n4), O3(t6), e3(function(e4, u5) { + for (var o5 = [], i5 = void 0, a5 = void 0, f5 = 0; f5 < n4; f5 += 1) { + if (a5 = B4(i5 = r5._(e4, u5), a5), !i5.status) return a5; + u5 = i5.index, o5.push(i5.value); + } + for (; f5 < t6 && (a5 = B4(i5 = r5._(e4, u5), a5), i5.status); f5 += 1) u5 = i5.index, o5.push(i5.value); + return B4(b3(u5, o5), a5); + }); + }, u4.result = function(n4) { + return this.map(function() { + return n4; + }); + }, u4.atMost = function(n4) { + return this.times(0, n4); + }, u4.atLeast = function(n4) { + return J2(this.times(n4), this.many(), function(n5, t6) { + return n5.concat(t6); + }); + }, u4.map = function(n4) { + k4(n4); + var t6 = this; + return e3(function(r5, e4) { + var u5 = t6._(r5, e4); + return u5.status ? B4(b3(u5.index, n4(u5.value)), u5) : u5; + }); + }, u4.contramap = function(n4) { + k4(n4); + var t6 = this; + return e3(function(r5, e4) { + var u5 = t6.parse(n4(r5.slice(e4))); + return u5.status ? b3(e4 + r5.length, u5.value) : u5; + }); + }, u4.promap = function(n4, t6) { + return k4(n4), k4(t6), this.contramap(n4).map(t6); + }, u4.skip = function(n4) { + return C4(this, n4).map(function(n5) { + return n5[0]; + }); + }, u4.mark = function() { + return J2(en2, this, en2, function(n4, t6, r5) { + return { start: n4, value: t6, end: r5 }; + }); + }, u4.node = function(n4) { + return J2(en2, this, en2, function(t6, r5, e4) { + return { name: n4, value: r5, start: t6, end: e4 }; + }); + }, u4.sepBy = function(n4) { + return V3(this, n4); + }, u4.sepBy1 = function(n4) { + return H3(this, n4); + }, u4.lookahead = function(n4) { + return this.skip(Z2(n4)); + }, u4.notFollowedBy = function(n4) { + return this.skip($3(n4)); + }, u4.desc = function(n4) { + E3(n4) || (n4 = [n4]); + var t6 = this; + return e3(function(r5, e4) { + var u5 = t6._(r5, e4); + return u5.status || (u5.expected = n4), u5; + }); + }, u4.fallback = function(n4) { + return this.or(X2(n4)); + }, u4.ap = function(n4) { + return J2(n4, this, function(n5, t6) { + return n5(t6); + }); + }, u4.chain = function(n4) { + var t6 = this; + return e3(function(r5, e4) { + var u5 = t6._(r5, e4); + return u5.status ? B4(n4(u5.value)._(r5, u5.index), u5) : u5; + }); + }, u4.concat = u4.or, u4.empty = rn2, u4.of = X2, u4["fantasy-land/ap"] = u4.ap, u4["fantasy-land/chain"] = u4.chain, u4["fantasy-land/concat"] = u4.concat, u4["fantasy-land/empty"] = u4.empty, u4["fantasy-land/of"] = u4.of, u4["fantasy-land/map"] = u4.map; + var en2 = e3(function(n4, t6) { + return b3(t6, S2(n4, t6)); + }), un2 = e3(function(n4, t6) { + return t6 >= n4.length ? x4(t6, "any character/byte") : b3(t6 + 1, L3(n4, t6)); + }), on = e3(function(n4, t6) { + return b3(n4.length, n4.slice(t6)); + }), an2 = e3(function(n4, t6) { + return t6 < n4.length ? x4(t6, "EOF") : b3(t6, null); + }), fn2 = Q2(/[0-9]/).desc("a digit"), cn2 = Q2(/[0-9]*/).desc("optional digits"), sn2 = Q2(/[a-z]/i).desc("a letter"), ln2 = Q2(/[a-z]*/i).desc("optional letters"), hn2 = Q2(/\s*/).desc("optional whitespace"), pn2 = Q2(/\s+/).desc("whitespace"), dn2 = K2("\r"), vn2 = K2("\n"), gn2 = K2("\r\n"), mn2 = T4(gn2, vn2, dn2).desc("newline"), yn2 = T4(mn2, an2); + e3.all = on, e3.alt = T4, e3.any = un2, e3.cr = dn2, e3.createLanguage = function(n4) { + var t6 = {}; + for (var r5 in n4) ({}).hasOwnProperty.call(n4, r5) && function(r6) { + t6[r6] = tn2(function() { + return n4[r6](t6); + }); + }(r5); + return t6; + }, e3.crlf = gn2, e3.custom = function(n4) { + return e3(n4(b3, x4)); + }, e3.digit = fn2, e3.digits = cn2, e3.empty = rn2, e3.end = yn2, e3.eof = an2, e3.fail = Y2, e3.formatError = N3, e3.index = en2, e3.isParser = y4, e3.lazy = tn2, e3.letter = sn2, e3.letters = ln2, e3.lf = vn2, e3.lookahead = Z2, e3.makeFailure = x4, e3.makeSuccess = b3, e3.newline = mn2, e3.noneOf = function(n4) { + return nn2(function(t6) { + return n4.indexOf(t6) < 0; + }).desc("none of '" + n4 + "'"); + }, e3.notFollowedBy = $3, e3.of = X2, e3.oneOf = function(n4) { + for (var t6 = n4.split(""), r5 = 0; r5 < t6.length; r5++) t6[r5] = "'" + t6[r5] + "'"; + return nn2(function(t7) { + return n4.indexOf(t7) >= 0; + }).desc(t6); + }, e3.optWhitespace = hn2, e3.Parser = e3, e3.range = function(n4, t6) { + return nn2(function(r5) { + return n4 <= r5 && r5 <= t6; + }).desc(n4 + "-" + t6); + }, e3.regex = Q2, e3.regexp = Q2, e3.sepBy = V3, e3.sepBy1 = H3, e3.seq = C4, e3.seqMap = J2, e3.seqObj = function() { + for (var n4, t6 = {}, r5 = 0, u5 = (n4 = arguments, Array.prototype.slice.call(n4)), o5 = u5.length, i5 = 0; i5 < o5; i5 += 1) { + var a5 = u5[i5]; + if (!y4(a5)) { + if (E3(a5) && 2 === a5.length && "string" == typeof a5[0] && y4(a5[1])) { + var f5 = a5[0]; + if (Object.prototype.hasOwnProperty.call(t6, f5)) throw new Error("seqObj: duplicate key " + f5); + t6[f5] = true, r5++; + continue; + } + throw new Error("seqObj arguments must be parsers or [string, parser] array pairs."); + } + } + if (0 === r5) throw new Error("seqObj expects at least one named parser, found zero"); + return e3(function(n5, t7) { + for (var r6, e4 = {}, i6 = 0; i6 < o5; i6 += 1) { + var a6, f6; + if (E3(u5[i6]) ? (a6 = u5[i6][0], f6 = u5[i6][1]) : (a6 = null, f6 = u5[i6]), !(r6 = B4(f6._(n5, t7), r6)).status) return r6; + a6 && (e4[a6] = r6.value), t7 = r6.index; + } + return B4(b3(t7, e4), r6); + }); + }, e3.string = K2, e3.succeed = X2, e3.takeWhile = function(n4) { + return k4(n4), e3(function(t6, r5) { + for (var e4 = r5; e4 < t6.length && n4(L3(t6, e4)); ) e4++; + return b3(e4, t6.slice(r5, e4)); + }); + }, e3.test = nn2, e3.whitespace = pn2, e3["fantasy-land/empty"] = rn2, e3["fantasy-land/of"] = X2, e3.Binary = { bitSeq: l4, bitSeqObj: function(n4) { + s4(); + var t6 = {}, r5 = 0, e4 = a4(function(n5) { + if (E3(n5)) { + var e5 = n5; + if (2 !== e5.length) throw new Error("[" + e5.join(", ") + "] should be length 2, got length " + e5.length); + if (P7(e5[0]), O3(e5[1]), Object.prototype.hasOwnProperty.call(t6, e5[0])) throw new Error("duplicate key in bitSeqObj: " + e5[0]); + return t6[e5[0]] = true, r5++, e5; + } + return O3(n5), [null, n5]; + }, n4); + if (r5 < 1) throw new Error("bitSeqObj expects at least one named pair, got [" + n4.join(", ") + "]"); + var u5 = a4(function(n5) { + return n5[0]; + }, e4); + return l4(a4(function(n5) { + return n5[1]; + }, e4)).map(function(n5) { + return i4(function(n6, t7) { + return null !== t7[0] && (n6[t7[0]] = t7[1]), n6; + }, {}, a4(function(t7, r6) { + return [t7, n5[r6]]; + }, u5)); + }); + }, byte: function(n4) { + if (s4(), O3(n4), n4 > 255) throw new Error("Value specified to byte constructor (" + n4 + "=0x" + n4.toString(16) + ") is larger in value than a single byte."); + var t6 = (n4 > 15 ? "0x" : "0x0") + n4.toString(16); + return e3(function(r5, e4) { + var u5 = L3(r5, e4); + return u5 === n4 ? b3(e4 + 1, u5) : x4(e4, t6); + }); + }, buffer: function(n4) { + return h3("buffer", n4).map(function(n5) { + return Buffer.from(n5); + }); + }, encodedString: function(n4, t6) { + return h3("string", t6).map(function(t7) { + return t7.toString(n4); + }); + }, uintBE: d3, uint8BE: d3(1), uint16BE: d3(2), uint32BE: d3(4), uintLE: v3, uint8LE: v3(1), uint16LE: v3(2), uint32LE: v3(4), intBE: g4, int8BE: g4(1), int16BE: g4(2), int32BE: g4(4), intLE: m3, int8LE: m3(1), int16LE: m3(2), int32LE: m3(4), floatBE: h3("floatBE", 4).map(function(n4) { + return n4.readFloatBE(0); + }), floatLE: h3("floatLE", 4).map(function(n4) { + return n4.readFloatLE(0); + }), doubleBE: h3("doubleBE", 8).map(function(n4) { + return n4.readDoubleBE(0); + }), doubleLE: h3("doubleLE", 8).map(function(n4) { + return n4.readDoubleLE(0); + }) }, n3.exports = e3; + }]); + }); } }); // node_modules/@jridgewell/set-array/dist/set-array.umd.js var require_set_array_umd = __commonJS({ - "node_modules/@jridgewell/set-array/dist/set-array.umd.js"(exports2, module2) { + "node_modules/@jridgewell/set-array/dist/set-array.umd.js"(exports, module2) { (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.setArray = {})); - })(exports2, function(exports3) { + typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.setArray = {})); + })(exports, function(exports2) { "use strict"; class SetArray { constructor() { @@ -13981,52 +626,52 @@ var require_set_array_umd = __commonJS({ return cast(setarr)._indexes[key]; } function put(setarr, key) { - const index = get(setarr, key); - if (index !== void 0) - return index; - const { array, _indexes: indexes } = cast(setarr); - const length2 = array.push(key); + const index2 = get(setarr, key); + if (index2 !== void 0) + return index2; + const { array: array2, _indexes: indexes } = cast(setarr); + const length2 = array2.push(key); return indexes[key] = length2 - 1; } function pop(setarr) { - const { array, _indexes: indexes } = cast(setarr); - if (array.length === 0) + const { array: array2, _indexes: indexes } = cast(setarr); + if (array2.length === 0) return; - const last = array.pop(); + const last = array2.pop(); indexes[last] = void 0; } function remove(setarr, key) { - const index = get(setarr, key); - if (index === void 0) + const index2 = get(setarr, key); + if (index2 === void 0) return; - const { array, _indexes: indexes } = cast(setarr); - for (let i4 = index + 1; i4 < array.length; i4++) { - const k4 = array[i4]; - array[i4 - 1] = k4; + const { array: array2, _indexes: indexes } = cast(setarr); + for (let i4 = index2 + 1; i4 < array2.length; i4++) { + const k4 = array2[i4]; + array2[i4 - 1] = k4; indexes[k4]--; } indexes[key] = void 0; - array.pop(); + array2.pop(); } - exports3.SetArray = SetArray; - exports3.get = get; - exports3.pop = pop; - exports3.put = put; - exports3.remove = remove; - Object.defineProperty(exports3, "__esModule", { value: true }); + exports2.SetArray = SetArray; + exports2.get = get; + exports2.pop = pop; + exports2.put = put; + exports2.remove = remove; + Object.defineProperty(exports2, "__esModule", { value: true }); }); } }); // node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js var require_sourcemap_codec_umd = __commonJS({ - "node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js"(exports2, module2) { + "node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js"(exports, module2) { (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.sourcemapCodec = {})); - })(exports2, function(exports3) { + typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.sourcemapCodec = {})); + })(exports, function(exports2) { "use strict"; const comma = ",".charCodeAt(0); - const semicolon = ";".charCodeAt(0); + const semicolon2 = ";".charCodeAt(0); const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const intToChar = new Uint8Array(64); const charToInt = new Uint8Array(128); @@ -14121,9 +766,9 @@ var require_sourcemap_codec_umd = __commonJS({ } } const EMPTY = []; - function decodeOriginalScopes(input) { - const { length: length2 } = input; - const reader = new StringReader(input); + function decodeOriginalScopes(input2) { + const { length: length2 } = input2; + const reader = new StringReader(input2); const scopes = []; const stack = []; let line2 = 0; @@ -14161,12 +806,12 @@ var require_sourcemap_codec_umd = __commonJS({ } return writer.flush(); } - function _encodeOriginalScopes(scopes, index, writer, state) { - const scope = scopes[index]; + function _encodeOriginalScopes(scopes, index2, writer, state2) { + const scope = scopes[index2]; const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; - if (index > 0) + if (index2 > 0) writer.write(comma); - state[0] = encodeInteger(writer, startLine, state[0]); + state2[0] = encodeInteger(writer, startLine, state2[0]); encodeInteger(writer, startColumn, 0); encodeInteger(writer, kind, 0); const fields = scope.length === 6 ? 1 : 0; @@ -14176,22 +821,22 @@ var require_sourcemap_codec_umd = __commonJS({ for (const v3 of vars) { encodeInteger(writer, v3, 0); } - for (index++; index < scopes.length; ) { - const next2 = scopes[index]; - const { 0: l4, 1: c4 } = next2; + for (index2++; index2 < scopes.length; ) { + const next3 = scopes[index2]; + const { 0: l4, 1: c4 } = next3; if (l4 > endLine || l4 === endLine && c4 >= endColumn) { break; } - index = _encodeOriginalScopes(scopes, index, writer, state); + index2 = _encodeOriginalScopes(scopes, index2, writer, state2); } writer.write(comma); - state[0] = encodeInteger(writer, endLine, state[0]); + state2[0] = encodeInteger(writer, endLine, state2[0]); encodeInteger(writer, endColumn, 0); - return index; + return index2; } - function decodeGeneratedRanges(input) { - const { length: length2 } = input; - const reader = new StringReader(input); + function decodeGeneratedRanges(input2) { + const { length: length2 } = input2; + const reader = new StringReader(input2); const ranges = []; const stack = []; let genLine = 0; @@ -14279,38 +924,38 @@ var require_sourcemap_codec_umd = __commonJS({ } return writer.flush(); } - function _encodeGeneratedRanges(ranges, index, writer, state) { - const range = ranges[index]; + function _encodeGeneratedRanges(ranges, index2, writer, state2) { + const range = ranges[index2]; const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, isScope, callsite, bindings } = range; - if (state[0] < startLine) { - catchupLine(writer, state[0], startLine); - state[0] = startLine; - state[1] = 0; - } else if (index > 0) { + if (state2[0] < startLine) { + catchupLine(writer, state2[0], startLine); + state2[0] = startLine; + state2[1] = 0; + } else if (index2 > 0) { writer.write(comma); } - state[1] = encodeInteger(writer, range[1], state[1]); + state2[1] = encodeInteger(writer, range[1], state2[1]); const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); encodeInteger(writer, fields, 0); if (range.length === 6) { const { 4: sourcesIndex, 5: scopesIndex } = range; - if (sourcesIndex !== state[2]) { - state[3] = 0; + if (sourcesIndex !== state2[2]) { + state2[3] = 0; } - state[2] = encodeInteger(writer, sourcesIndex, state[2]); - state[3] = encodeInteger(writer, scopesIndex, state[3]); + state2[2] = encodeInteger(writer, sourcesIndex, state2[2]); + state2[3] = encodeInteger(writer, scopesIndex, state2[3]); } if (callsite) { const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; - if (sourcesIndex !== state[4]) { - state[5] = 0; - state[6] = 0; - } else if (callLine !== state[5]) { - state[6] = 0; + if (sourcesIndex !== state2[4]) { + state2[5] = 0; + state2[6] = 0; + } else if (callLine !== state2[5]) { + state2[6] = 0; } - state[4] = encodeInteger(writer, sourcesIndex, state[4]); - state[5] = encodeInteger(writer, callLine, state[5]); - state[6] = encodeInteger(writer, callColumn, state[6]); + state2[4] = encodeInteger(writer, sourcesIndex, state2[4]); + state2[5] = encodeInteger(writer, callLine, state2[5]); + state2[6] = encodeInteger(writer, callColumn, state2[6]); } if (bindings) { for (const binding of bindings) { @@ -14328,27 +973,27 @@ var require_sourcemap_codec_umd = __commonJS({ } } } - for (index++; index < ranges.length; ) { - const next2 = ranges[index]; - const { 0: l4, 1: c4 } = next2; + for (index2++; index2 < ranges.length; ) { + const next3 = ranges[index2]; + const { 0: l4, 1: c4 } = next3; if (l4 > endLine || l4 === endLine && c4 >= endColumn) { break; } - index = _encodeGeneratedRanges(ranges, index, writer, state); + index2 = _encodeGeneratedRanges(ranges, index2, writer, state2); } - if (state[0] < endLine) { - catchupLine(writer, state[0], endLine); - state[0] = endLine; - state[1] = 0; + if (state2[0] < endLine) { + catchupLine(writer, state2[0], endLine); + state2[0] = endLine; + state2[1] = 0; } else { writer.write(comma); } - state[1] = encodeInteger(writer, endColumn, state[1]); - return index; + state2[1] = encodeInteger(writer, endColumn, state2[1]); + return index2; } function catchupLine(writer, lastLine, line2) { do { - writer.write(semicolon); + writer.write(semicolon2); } while (++lastLine < line2); } function decode(mappings) { @@ -14410,7 +1055,7 @@ var require_sourcemap_codec_umd = __commonJS({ for (let i4 = 0; i4 < decoded.length; i4++) { const line2 = decoded[i4]; if (i4 > 0) - writer.write(semicolon); + writer.write(semicolon2); if (line2.length === 0) continue; let genColumn = 0; @@ -14431,50 +1076,50 @@ var require_sourcemap_codec_umd = __commonJS({ } return writer.flush(); } - exports3.decode = decode; - exports3.decodeGeneratedRanges = decodeGeneratedRanges; - exports3.decodeOriginalScopes = decodeOriginalScopes; - exports3.encode = encode; - exports3.encodeGeneratedRanges = encodeGeneratedRanges; - exports3.encodeOriginalScopes = encodeOriginalScopes; - Object.defineProperty(exports3, "__esModule", { value: true }); + exports2.decode = decode; + exports2.decodeGeneratedRanges = decodeGeneratedRanges; + exports2.decodeOriginalScopes = decodeOriginalScopes; + exports2.encode = encode; + exports2.encodeGeneratedRanges = encodeGeneratedRanges; + exports2.encodeOriginalScopes = encodeOriginalScopes; + Object.defineProperty(exports2, "__esModule", { value: true }); }); } }); // node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js var require_resolve_uri_umd = __commonJS({ - "node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js"(exports2, module2) { + "node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js"(exports, module2) { (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.resolveURI = factory()); - })(exports2, function() { + typeof exports === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.resolveURI = factory()); + })(exports, function() { "use strict"; const schemeRegex = /^[\w+.-]+:\/\//; const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; - function isAbsoluteUrl(input) { - return schemeRegex.test(input); + function isAbsoluteUrl(input2) { + return schemeRegex.test(input2); } - function isSchemeRelativeUrl(input) { - return input.startsWith("//"); + function isSchemeRelativeUrl(input2) { + return input2.startsWith("//"); } - function isAbsolutePath(input) { - return input.startsWith("/"); + function isAbsolutePath(input2) { + return input2.startsWith("/"); } - function isFileUrl(input) { - return input.startsWith("file:"); + function isFileUrl(input2) { + return input2.startsWith("file:"); } - function isRelative(input) { - return /^[.?#]/.test(input); + function isRelative(input2) { + return /^[.?#]/.test(input2); } - function parseAbsoluteUrl(input) { - const match3 = urlRegex.exec(input); - return makeUrl(match3[1], match3[2] || "", match3[3], match3[4] || "", match3[5] || "/", match3[6] || "", match3[7] || ""); + function parseAbsoluteUrl(input2) { + const match4 = urlRegex.exec(input2); + return makeUrl(match4[1], match4[2] || "", match4[3], match4[4] || "", match4[5] || "/", match4[6] || "", match4[7] || ""); } - function parseFileUrl(input) { - const match3 = fileRegex.exec(input); - const path = match3[2]; - return makeUrl("file:", "", match3[1] || "", "", isAbsolutePath(path) ? path : "/" + path, match3[3] || "", match3[4] || ""); + function parseFileUrl(input2) { + const match4 = fileRegex.exec(input2); + const path = match4[2]; + return makeUrl("file:", "", match4[1] || "", "", isAbsolutePath(path) ? path : "/" + path, match4[3] || "", match4[4] || ""); } function makeUrl(scheme, user, host, port, path, query, hash2) { return { @@ -14488,35 +1133,35 @@ var require_resolve_uri_umd = __commonJS({ type: 7 }; } - function parseUrl(input) { - if (isSchemeRelativeUrl(input)) { - const url2 = parseAbsoluteUrl("http:" + input); + function parseUrl(input2) { + if (isSchemeRelativeUrl(input2)) { + const url2 = parseAbsoluteUrl("http:" + input2); url2.scheme = ""; url2.type = 6; return url2; } - if (isAbsolutePath(input)) { - const url2 = parseAbsoluteUrl("http://foo.com" + input); + if (isAbsolutePath(input2)) { + const url2 = parseAbsoluteUrl("http://foo.com" + input2); url2.scheme = ""; url2.host = ""; url2.type = 5; return url2; } - if (isFileUrl(input)) - return parseFileUrl(input); - if (isAbsoluteUrl(input)) - return parseAbsoluteUrl(input); - const url = parseAbsoluteUrl("http://foo.com/" + input); + if (isFileUrl(input2)) + return parseFileUrl(input2); + if (isAbsoluteUrl(input2)) + return parseAbsoluteUrl(input2); + const url = parseAbsoluteUrl("http://foo.com/" + input2); url.scheme = ""; url.host = ""; - url.type = input ? input.startsWith("?") ? 3 : input.startsWith("#") ? 2 : 4 : 1; + url.type = input2 ? input2.startsWith("?") ? 3 : input2.startsWith("#") ? 2 : 4 : 1; return url; } function stripPathFilename(path) { if (path.endsWith("/..")) return path; - const index = path.lastIndexOf("/"); - return path.slice(0, index + 1); + const index2 = path.lastIndexOf("/"); + return path.slice(0, index2 + 1); } function mergePaths(url, base) { normalizePath(base, base.type); @@ -14563,10 +1208,10 @@ var require_resolve_uri_umd = __commonJS({ } url.path = path; } - function resolve(input, base) { - if (!input && !base) + function resolve(input2, base) { + if (!input2 && !base) return ""; - const url = parseUrl(input); + const url = parseUrl(input2); let inputType = url.type; if (base && inputType !== 7) { const baseUrl = parseUrl(base); @@ -14605,7 +1250,7 @@ var require_resolve_uri_umd = __commonJS({ const path = url.path.slice(1); if (!path) return queryHash || "."; - if (isRelative(base || input) && !isRelative(path)) { + if (isRelative(base || input2) && !isRelative(path)) { return "./" + path + queryHash; } return path + queryHash; @@ -14623,21 +1268,21 @@ var require_resolve_uri_umd = __commonJS({ // node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js var require_trace_mapping_umd = __commonJS({ - "node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js"(exports2, module2) { + "node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js"(exports, module2) { (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2, require_sourcemap_codec_umd(), require_resolve_uri_umd()) : typeof define === "function" && define.amd ? define(["exports", "@jridgewell/sourcemap-codec", "@jridgewell/resolve-uri"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.traceMapping = {}, global2.sourcemapCodec, global2.resolveURI)); - })(exports2, function(exports3, sourcemapCodec, resolveUri) { + typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports, require_sourcemap_codec_umd(), require_resolve_uri_umd()) : typeof define === "function" && define.amd ? define(["exports", "@jridgewell/sourcemap-codec", "@jridgewell/resolve-uri"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.traceMapping = {}, global2.sourcemapCodec, global2.resolveURI)); + })(exports, function(exports2, sourcemapCodec, resolveUri) { "use strict"; - function resolve(input, base) { + function resolve(input2, base) { if (base && !base.endsWith("/")) base += "/"; - return resolveUri(input, base); + return resolveUri(input2, base); } function stripFilename(path) { if (!path) return ""; - const index = path.lastIndexOf("/"); - return path.slice(0, index + 1); + const index2 = path.lastIndexOf("/"); + return path.slice(0, index2 + 1); } const COLUMN = 0; const SOURCES_INDEX = 1; @@ -14698,19 +1343,19 @@ var require_trace_mapping_umd = __commonJS({ found = false; return low - 1; } - function upperBound(haystack, needle, index) { - for (let i4 = index + 1; i4 < haystack.length; index = i4++) { + function upperBound(haystack, needle, index2) { + for (let i4 = index2 + 1; i4 < haystack.length; index2 = i4++) { if (haystack[i4][COLUMN] !== needle) break; } - return index; + return index2; } - function lowerBound(haystack, needle, index) { - for (let i4 = index - 1; i4 >= 0; index = i4--) { + function lowerBound(haystack, needle, index2) { + for (let i4 = index2 - 1; i4 >= 0; index2 = i4--) { if (haystack[i4][COLUMN] !== needle) break; } - return index; + return index2; } function memoizedState() { return { @@ -14719,8 +1364,8 @@ var require_trace_mapping_umd = __commonJS({ lastIndex: -1 }; } - function memoizedBinarySearch(haystack, needle, state, key) { - const { lastKey, lastNeedle, lastIndex } = state; + function memoizedBinarySearch(haystack, needle, state2, key) { + const { lastKey, lastNeedle, lastIndex } = state2; let low = 0; let high = haystack.length - 1; if (key === lastKey) { @@ -14734,9 +1379,9 @@ var require_trace_mapping_umd = __commonJS({ high = lastIndex; } } - state.lastKey = key; - state.lastNeedle = needle; - return state.lastIndex = binarySearch(haystack, needle, low, high); + state2.lastKey = key; + state2.lastNeedle = needle; + return state2.lastIndex = binarySearch(haystack, needle, low, high); } function buildBySources(decoded, memos) { const sources = memos.map(buildNullArray); @@ -14752,24 +1397,24 @@ var require_trace_mapping_umd = __commonJS({ const originalSource = sources[sourceIndex2]; const originalLine = originalSource[sourceLine] || (originalSource[sourceLine] = []); const memo = memos[sourceIndex2]; - let index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); - memo.lastIndex = ++index; - insert(originalLine, index, [sourceColumn, i4, seg[COLUMN]]); + let index2 = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); + memo.lastIndex = ++index2; + insert(originalLine, index2, [sourceColumn, i4, seg[COLUMN]]); } } return sources; } - function insert(array, index, value) { - for (let i4 = array.length; i4 > index; i4--) { - array[i4] = array[i4 - 1]; + function insert(array2, index2, value) { + for (let i4 = array2.length; i4 > index2; i4--) { + array2[i4] = array2[i4 - 1]; } - array[index] = value; + array2[index2] = value; } function buildNullArray() { return { __proto__: null }; } const AnyMap = function(map, mapUrl) { - const parsed = parse4(map); + const parsed = parse5(map); if (!("sections" in parsed)) { return new TraceMap(parsed, mapUrl); } @@ -14790,11 +1435,11 @@ var require_trace_mapping_umd = __commonJS({ }; return presortedDecodedMap(joined); }; - function parse4(map) { + function parse5(map) { return typeof map === "string" ? JSON.parse(map) : map; } - function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { - const { sections } = input; + function recurse(input2, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const { sections } = input2; for (let i4 = 0; i4 < sections.length; i4++) { const { map, offset: offset3 } = sections[i4]; let sl = stopLine; @@ -14811,8 +1456,8 @@ var require_trace_mapping_umd = __commonJS({ addSection(map, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset + offset3.line, columnOffset + offset3.column, sl, sc); } } - function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { - const parsed = parse4(input); + function addSection(input2, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) { + const parsed = parse5(input2); if ("sections" in parsed) return recurse(...arguments); const map = new TraceMap(parsed, mapUrl); @@ -14857,10 +1502,10 @@ var require_trace_mapping_umd = __commonJS({ for (let i4 = 0; i4 < other.length; i4++) arr.push(other[i4]); } - function getLine(arr, index) { - for (let i4 = arr.length; i4 <= index; i4++) + function getLine(arr, index2) { + for (let i4 = arr.length; i4 <= index2; i4++) arr[i4] = []; - return arr[index]; + return arr[index2]; } const LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)"; const COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)"; @@ -14912,8 +1557,8 @@ var require_trace_mapping_umd = __commonJS({ if (line2 >= decoded.length) return null; const segments = decoded[line2]; - const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line2, column2, GREATEST_LOWER_BOUND); - return index === -1 ? null : segments[index]; + const index2 = traceSegmentInternal(segments, cast(map)._decodedMemo, line2, column2, GREATEST_LOWER_BOUND); + return index2 === -1 ? null : segments[index2]; } function originalPositionFor(map, needle) { let { line: line2, column: column2, bias } = needle; @@ -14926,10 +1571,10 @@ var require_trace_mapping_umd = __commonJS({ if (line2 >= decoded.length) return OMapping(null, null, null, null); const segments = decoded[line2]; - const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line2, column2, bias || GREATEST_LOWER_BOUND); - if (index === -1) + const index2 = traceSegmentInternal(segments, cast(map)._decodedMemo, line2, column2, bias || GREATEST_LOWER_BOUND); + if (index2 === -1) return OMapping(null, null, null, null); - const segment = segments[index]; + const segment = segments[index2]; if (segment.length === 1) return OMapping(null, null, null, null); const { names, resolvedSources } = map; @@ -14976,24 +1621,24 @@ var require_trace_mapping_umd = __commonJS({ } function sourceIndex(map, source) { const { sources, resolvedSources } = map; - let index = sources.indexOf(source); - if (index === -1) - index = resolvedSources.indexOf(source); - return index; + let index2 = sources.indexOf(source); + if (index2 === -1) + index2 = resolvedSources.indexOf(source); + return index2; } function sourceContentFor(map, source) { const { sourcesContent } = map; if (sourcesContent == null) return null; - const index = sourceIndex(map, source); - return index === -1 ? null : sourcesContent[index]; + const index2 = sourceIndex(map, source); + return index2 === -1 ? null : sourcesContent[index2]; } function isIgnored(map, source) { const { ignoreList } = map; if (ignoreList == null) return false; - const index = sourceIndex(map, source); - return index === -1 ? false : ignoreList.includes(index); + const index2 = sourceIndex(map, source); + return index2 === -1 ? false : ignoreList.includes(index2); } function presortedDecodedMap(map, mapUrl) { const tracer = new TraceMap(clone3(map, []), mapUrl); @@ -15025,14 +1670,14 @@ var require_trace_mapping_umd = __commonJS({ return { line: line2, column: column2 }; } function traceSegmentInternal(segments, memo, line2, column2, bias) { - let index = memoizedBinarySearch(segments, column2, memo, line2); + let index2 = memoizedBinarySearch(segments, column2, memo, line2); if (found) { - index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column2, index); + index2 = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column2, index2); } else if (bias === LEAST_UPPER_BOUND) - index++; - if (index === -1 || index === segments.length) + index2++; + if (index2 === -1 || index2 === segments.length) return -1; - return index; + return index2; } function sliceGeneratedPositions(segments, memo, line2, column2, bias) { let min2 = traceSegmentInternal(segments, memo, line2, column2, GREATEST_LOWER_BOUND); @@ -15071,38 +1716,38 @@ var require_trace_mapping_umd = __commonJS({ const memo = cast(map)._bySourceMemos[sourceIndex2]; if (all) return sliceGeneratedPositions(segments, memo, line2, column2, bias); - const index = traceSegmentInternal(segments, memo, line2, column2, bias); - if (index === -1) + const index2 = traceSegmentInternal(segments, memo, line2, column2, bias); + if (index2 === -1) return GMapping(null, null); - const segment = segments[index]; + const segment = segments[index2]; return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); } - exports3.AnyMap = AnyMap; - exports3.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND; - exports3.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND; - exports3.TraceMap = TraceMap; - exports3.allGeneratedPositionsFor = allGeneratedPositionsFor; - exports3.decodedMap = decodedMap; - exports3.decodedMappings = decodedMappings; - exports3.eachMapping = eachMapping; - exports3.encodedMap = encodedMap; - exports3.encodedMappings = encodedMappings; - exports3.generatedPositionFor = generatedPositionFor; - exports3.isIgnored = isIgnored; - exports3.originalPositionFor = originalPositionFor; - exports3.presortedDecodedMap = presortedDecodedMap; - exports3.sourceContentFor = sourceContentFor; - exports3.traceSegment = traceSegment; + exports2.AnyMap = AnyMap; + exports2.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND; + exports2.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND; + exports2.TraceMap = TraceMap; + exports2.allGeneratedPositionsFor = allGeneratedPositionsFor; + exports2.decodedMap = decodedMap; + exports2.decodedMappings = decodedMappings; + exports2.eachMapping = eachMapping; + exports2.encodedMap = encodedMap; + exports2.encodedMappings = encodedMappings; + exports2.generatedPositionFor = generatedPositionFor; + exports2.isIgnored = isIgnored; + exports2.originalPositionFor = originalPositionFor; + exports2.presortedDecodedMap = presortedDecodedMap; + exports2.sourceContentFor = sourceContentFor; + exports2.traceSegment = traceSegment; }); } }); // node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js var require_gen_mapping_umd = __commonJS({ - "node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js"(exports2, module2) { + "node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js"(exports, module2) { (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2, require_set_array_umd(), require_sourcemap_codec_umd(), require_trace_mapping_umd()) : typeof define === "function" && define.amd ? define(["exports", "@jridgewell/set-array", "@jridgewell/sourcemap-codec", "@jridgewell/trace-mapping"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.genMapping = {}, global2.setArray, global2.sourcemapCodec, global2.traceMapping)); - })(exports2, function(exports3, setArray, sourcemapCodec, traceMapping) { + typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports, require_set_array_umd(), require_sourcemap_codec_umd(), require_trace_mapping_umd()) : typeof define === "function" && define.amd ? define(["exports", "@jridgewell/set-array", "@jridgewell/sourcemap-codec", "@jridgewell/trace-mapping"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.genMapping = {}, global2.setArray, global2.sourcemapCodec, global2.traceMapping)); + })(exports, function(exports2, setArray, sourcemapCodec, traceMapping) { "use strict"; const COLUMN = 0; const SOURCES_INDEX = 1; @@ -15110,7 +1755,7 @@ var require_gen_mapping_umd = __commonJS({ const SOURCE_COLUMN = 3; const NAMES_INDEX = 4; const NO_NAME = -1; - class GenMapping { + class GenMapping2 { constructor({ file, sourceRoot } = {}) { this._names = new setArray.SetArray(); this._sources = new setArray.SetArray(); @@ -15130,7 +1775,7 @@ var require_gen_mapping_umd = __commonJS({ function addMapping(map, mapping) { return addMappingInternal(false, map, mapping); } - const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + const maybeAddSegment2 = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); }; const maybeAddMapping = (map, mapping) => { @@ -15138,18 +1783,18 @@ var require_gen_mapping_umd = __commonJS({ }; function setSourceContent(map, source, content) { const { _sources: sources, _sourcesContent: sourcesContent } = cast(map); - const index = setArray.put(sources, source); - sourcesContent[index] = content; + const index2 = setArray.put(sources, source); + sourcesContent[index2] = content; } function setIgnore(map, source, ignore = true) { const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map); - const index = setArray.put(sources, source); - if (index === sourcesContent.length) - sourcesContent[index] = null; + const index2 = setArray.put(sources, source); + if (index2 === sourcesContent.length) + sourcesContent[index2] = null; if (ignore) - setArray.put(ignoreList, index); + setArray.put(ignoreList, index2); else - setArray.remove(ignoreList, index); + setArray.remove(ignoreList, index2); } function toDecodedMap(map) { const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList } = cast(map); @@ -15165,13 +1810,13 @@ var require_gen_mapping_umd = __commonJS({ ignoreList: ignoreList.array }; } - function toEncodedMap(map) { + function toEncodedMap2(map) { const decoded = toDecodedMap(map); return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) }); } - function fromMap(input) { - const map = new traceMapping.TraceMap(input); - const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + function fromMap(input2) { + const map = new traceMapping.TraceMap(input2); + const gen = new GenMapping2({ file: map.file, sourceRoot: map.sourceRoot }); putAll(cast(gen)._names, map.names); putAll(cast(gen)._sources, map.sources); cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null); @@ -15205,41 +1850,41 @@ var require_gen_mapping_umd = __commonJS({ function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names } = cast(map); const line2 = getLine(mappings, genLine); - const index = getColumnIndex(line2, genColumn); + const index2 = getColumnIndex(line2, genColumn); if (!source) { - if (skipable && skipSourceless(line2, index)) + if (skipable && skipSourceless(line2, index2)) return; - return insert(line2, index, [genColumn]); + return insert(line2, index2, [genColumn]); } const sourcesIndex = setArray.put(sources, source); const namesIndex = name ? setArray.put(names, name) : NO_NAME; if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null; - if (skipable && skipSource(line2, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + if (skipable && skipSource(line2, index2, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { return; } - return insert(line2, index, name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]); + return insert(line2, index2, name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]); } - function getLine(mappings, index) { - for (let i4 = mappings.length; i4 <= index; i4++) { + function getLine(mappings, index2) { + for (let i4 = mappings.length; i4 <= index2; i4++) { mappings[i4] = []; } - return mappings[index]; + return mappings[index2]; } function getColumnIndex(line2, genColumn) { - let index = line2.length; - for (let i4 = index - 1; i4 >= 0; index = i4--) { + let index2 = line2.length; + for (let i4 = index2 - 1; i4 >= 0; index2 = i4--) { const current = line2[i4]; if (genColumn >= current[COLUMN]) break; } - return index; + return index2; } - function insert(array, index, value) { - for (let i4 = array.length; i4 > index; i4--) { - array[i4] = array[i4 - 1]; + function insert(array2, index2, value) { + for (let i4 = array2.length; i4 > index2; i4--) { + array2[i4] = array2[i4 - 1]; } - array[index] = value; + array2[index2] = value; } function removeEmptyFinalLines(mappings) { const { length: length2 } = mappings; @@ -15251,20 +1896,20 @@ var require_gen_mapping_umd = __commonJS({ if (len < length2) mappings.length = len; } - function putAll(setarr, array) { - for (let i4 = 0; i4 < array.length; i4++) - setArray.put(setarr, array[i4]); + function putAll(setarr, array2) { + for (let i4 = 0; i4 < array2.length; i4++) + setArray.put(setarr, array2[i4]); } - function skipSourceless(line2, index) { - if (index === 0) + function skipSourceless(line2, index2) { + if (index2 === 0) return true; - const prev2 = line2[index - 1]; + const prev2 = line2[index2 - 1]; return prev2.length === 1; } - function skipSource(line2, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { - if (index === 0) + function skipSource(line2, index2, sourcesIndex, sourceLine, sourceColumn, namesIndex) { + if (index2 === 0) return false; - const prev2 = line2[index - 1]; + const prev2 = line2[index2 - 1]; if (prev2.length === 1) return false; return sourcesIndex === prev2[SOURCES_INDEX] && sourceLine === prev2[SOURCE_LINE] && sourceColumn === prev2[SOURCE_COLUMN] && namesIndex === (prev2.length === 5 ? prev2[NAMES_INDEX] : NO_NAME); @@ -15276,406 +1921,27 @@ var require_gen_mapping_umd = __commonJS({ } return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content); } - exports3.GenMapping = GenMapping; - exports3.addMapping = addMapping; - exports3.addSegment = addSegment; - exports3.allMappings = allMappings; - exports3.fromMap = fromMap; - exports3.maybeAddMapping = maybeAddMapping; - exports3.maybeAddSegment = maybeAddSegment; - exports3.setIgnore = setIgnore; - exports3.setSourceContent = setSourceContent; - exports3.toDecodedMap = toDecodedMap; - exports3.toEncodedMap = toEncodedMap; - Object.defineProperty(exports3, "__esModule", { value: true }); + exports2.GenMapping = GenMapping2; + exports2.addMapping = addMapping; + exports2.addSegment = addSegment; + exports2.allMappings = allMappings; + exports2.fromMap = fromMap; + exports2.maybeAddMapping = maybeAddMapping; + exports2.maybeAddSegment = maybeAddSegment2; + exports2.setIgnore = setIgnore; + exports2.setSourceContent = setSourceContent; + exports2.toDecodedMap = toDecodedMap; + exports2.toEncodedMap = toEncodedMap2; + Object.defineProperty(exports2, "__esModule", { value: true }); }); } }); -// node_modules/sucrase/dist/computeSourceMap.js -var require_computeSourceMap = __commonJS({ - "node_modules/sucrase/dist/computeSourceMap.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _genmapping = require_gen_mapping_umd(); - var _charcodes = require_charcodes(); - function computeSourceMap({ code: generatedCode, mappings: rawMappings }, filePath, options2, source, tokens) { - const sourceColumns = computeSourceColumns(source, tokens); - const map = new (0, _genmapping.GenMapping)({ file: options2.compiledFilename }); - let tokenIndex = 0; - let currentMapping = rawMappings[0]; - while (currentMapping === void 0 && tokenIndex < rawMappings.length - 1) { - tokenIndex++; - currentMapping = rawMappings[tokenIndex]; - } - let line2 = 0; - let lineStart = 0; - if (currentMapping !== lineStart) { - _genmapping.maybeAddSegment.call(void 0, map, line2, 0, filePath, line2, 0); - } - for (let i4 = 0; i4 < generatedCode.length; i4++) { - if (i4 === currentMapping) { - const genColumn = currentMapping - lineStart; - const sourceColumn = sourceColumns[tokenIndex]; - _genmapping.maybeAddSegment.call(void 0, map, line2, genColumn, filePath, line2, sourceColumn); - while ((currentMapping === i4 || currentMapping === void 0) && tokenIndex < rawMappings.length - 1) { - tokenIndex++; - currentMapping = rawMappings[tokenIndex]; - } - } - if (generatedCode.charCodeAt(i4) === _charcodes.charCodes.lineFeed) { - line2++; - lineStart = i4 + 1; - if (currentMapping !== lineStart) { - _genmapping.maybeAddSegment.call(void 0, map, line2, 0, filePath, line2, 0); - } - } - } - const { sourceRoot, sourcesContent, ...sourceMap } = _genmapping.toEncodedMap.call(void 0, map); - return sourceMap; - } - exports2.default = computeSourceMap; - function computeSourceColumns(code, tokens) { - const sourceColumns = new Array(tokens.length); - let tokenIndex = 0; - let currentMapping = tokens[tokenIndex].start; - let lineStart = 0; - for (let i4 = 0; i4 < code.length; i4++) { - if (i4 === currentMapping) { - sourceColumns[tokenIndex] = currentMapping - lineStart; - tokenIndex++; - currentMapping = tokens[tokenIndex].start; - } - if (code.charCodeAt(i4) === _charcodes.charCodes.lineFeed) { - lineStart = i4 + 1; - } - } - return sourceColumns; - } - } -}); - -// node_modules/sucrase/dist/HelperManager.js -var require_HelperManager = __commonJS({ - "node_modules/sucrase/dist/HelperManager.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var HELPERS = { - require: ` - import {createRequire as CREATE_REQUIRE_NAME} from "module"; - const require = CREATE_REQUIRE_NAME(import.meta.url); - `, - interopRequireWildcard: ` - function interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - newObj[key] = obj[key]; - } - } - } - newObj.default = obj; - return newObj; - } - } - `, - interopRequireDefault: ` - function interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - `, - createNamedExportFrom: ` - function createNamedExportFrom(obj, localName, importedName) { - Object.defineProperty(exports, localName, {enumerable: true, configurable: true, get: () => obj[importedName]}); - } - `, - // Note that TypeScript and Babel do this differently; TypeScript does a simple existence - // check in the exports object and does a plain assignment, whereas Babel uses - // defineProperty and builds an object of explicitly-exported names so that star exports can - // always take lower precedence. For now, we do the easier TypeScript thing. - createStarExport: ` - function createStarExport(obj) { - Object.keys(obj) - .filter((key) => key !== "default" && key !== "__esModule") - .forEach((key) => { - if (exports.hasOwnProperty(key)) { - return; - } - Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); - }); - } - `, - nullishCoalesce: ` - function nullishCoalesce(lhs, rhsFn) { - if (lhs != null) { - return lhs; - } else { - return rhsFn(); - } - } - `, - asyncNullishCoalesce: ` - async function asyncNullishCoalesce(lhs, rhsFn) { - if (lhs != null) { - return lhs; - } else { - return await rhsFn(); - } - } - `, - optionalChain: ` - function optionalChain(ops) { - let lastAccessLHS = undefined; - let value = ops[0]; - let i = 1; - while (i < ops.length) { - const op = ops[i]; - const fn = ops[i + 1]; - i += 2; - if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { - return undefined; - } - if (op === 'access' || op === 'optionalAccess') { - lastAccessLHS = value; - value = fn(value); - } else if (op === 'call' || op === 'optionalCall') { - value = fn((...args) => value.call(lastAccessLHS, ...args)); - lastAccessLHS = undefined; - } - } - return value; - } - `, - asyncOptionalChain: ` - async function asyncOptionalChain(ops) { - let lastAccessLHS = undefined; - let value = ops[0]; - let i = 1; - while (i < ops.length) { - const op = ops[i]; - const fn = ops[i + 1]; - i += 2; - if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { - return undefined; - } - if (op === 'access' || op === 'optionalAccess') { - lastAccessLHS = value; - value = await fn(value); - } else if (op === 'call' || op === 'optionalCall') { - value = await fn((...args) => value.call(lastAccessLHS, ...args)); - lastAccessLHS = undefined; - } - } - return value; - } - `, - optionalChainDelete: ` - function optionalChainDelete(ops) { - const result = OPTIONAL_CHAIN_NAME(ops); - return result == null ? true : result; - } - `, - asyncOptionalChainDelete: ` - async function asyncOptionalChainDelete(ops) { - const result = await ASYNC_OPTIONAL_CHAIN_NAME(ops); - return result == null ? true : result; - } - ` - }; - var HelperManager = class _HelperManager { - __init() { - this.helperNames = {}; - } - __init2() { - this.createRequireName = null; - } - constructor(nameManager) { - ; - this.nameManager = nameManager; - _HelperManager.prototype.__init.call(this); - _HelperManager.prototype.__init2.call(this); - } - getHelperName(baseName) { - let helperName = this.helperNames[baseName]; - if (helperName) { - return helperName; - } - helperName = this.nameManager.claimFreeName(`_${baseName}`); - this.helperNames[baseName] = helperName; - return helperName; - } - emitHelpers() { - let resultCode = ""; - if (this.helperNames.optionalChainDelete) { - this.getHelperName("optionalChain"); - } - if (this.helperNames.asyncOptionalChainDelete) { - this.getHelperName("asyncOptionalChain"); - } - for (const [baseName, helperCodeTemplate] of Object.entries(HELPERS)) { - const helperName = this.helperNames[baseName]; - let helperCode = helperCodeTemplate; - if (baseName === "optionalChainDelete") { - helperCode = helperCode.replace("OPTIONAL_CHAIN_NAME", this.helperNames.optionalChain); - } else if (baseName === "asyncOptionalChainDelete") { - helperCode = helperCode.replace( - "ASYNC_OPTIONAL_CHAIN_NAME", - this.helperNames.asyncOptionalChain - ); - } else if (baseName === "require") { - if (this.createRequireName === null) { - this.createRequireName = this.nameManager.claimFreeName("_createRequire"); - } - helperCode = helperCode.replace(/CREATE_REQUIRE_NAME/g, this.createRequireName); - } - if (helperName) { - resultCode += " "; - resultCode += helperCode.replace(baseName, helperName).replace(/\s+/g, " ").trim(); - } - } - return resultCode; - } - }; - exports2.HelperManager = HelperManager; - } -}); - -// node_modules/sucrase/dist/identifyShadowedGlobals.js -var require_identifyShadowedGlobals = __commonJS({ - "node_modules/sucrase/dist/identifyShadowedGlobals.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _tokenizer = require_tokenizer(); - var _types = require_types(); - function identifyShadowedGlobals(tokens, scopes, globalNames) { - if (!hasShadowedGlobals(tokens, globalNames)) { - return; - } - markShadowedGlobals(tokens, scopes, globalNames); - } - exports2.default = identifyShadowedGlobals; - function hasShadowedGlobals(tokens, globalNames) { - for (const token2 of tokens.tokens) { - if (token2.type === _types.TokenType.name && !token2.isType && _tokenizer.isNonTopLevelDeclaration.call(void 0, token2) && globalNames.has(tokens.identifierNameForToken(token2))) { - return true; - } - } - return false; - } - exports2.hasShadowedGlobals = hasShadowedGlobals; - function markShadowedGlobals(tokens, scopes, globalNames) { - const scopeStack = []; - let scopeIndex = scopes.length - 1; - for (let i4 = tokens.tokens.length - 1; ; i4--) { - while (scopeStack.length > 0 && scopeStack[scopeStack.length - 1].startTokenIndex === i4 + 1) { - scopeStack.pop(); - } - while (scopeIndex >= 0 && scopes[scopeIndex].endTokenIndex === i4 + 1) { - scopeStack.push(scopes[scopeIndex]); - scopeIndex--; - } - if (i4 < 0) { - break; - } - const token2 = tokens.tokens[i4]; - const name = tokens.identifierNameForToken(token2); - if (scopeStack.length > 1 && !token2.isType && token2.type === _types.TokenType.name && globalNames.has(name)) { - if (_tokenizer.isBlockScopedDeclaration.call(void 0, token2)) { - markShadowedForScope(scopeStack[scopeStack.length - 1], tokens, name); - } else if (_tokenizer.isFunctionScopedDeclaration.call(void 0, token2)) { - let stackIndex = scopeStack.length - 1; - while (stackIndex > 0 && !scopeStack[stackIndex].isFunctionScope) { - stackIndex--; - } - if (stackIndex < 0) { - throw new Error("Did not find parent function scope."); - } - markShadowedForScope(scopeStack[stackIndex], tokens, name); - } - } - } - if (scopeStack.length > 0) { - throw new Error("Expected empty scope stack after processing file."); - } - } - function markShadowedForScope(scope, tokens, name) { - for (let i4 = scope.startTokenIndex; i4 < scope.endTokenIndex; i4++) { - const token2 = tokens.tokens[i4]; - if ((token2.type === _types.TokenType.name || token2.type === _types.TokenType.jsxName) && tokens.identifierNameForToken(token2) === name) { - token2.shadowsGlobal = true; - } - } - } - } -}); - -// node_modules/sucrase/dist/util/getIdentifierNames.js -var require_getIdentifierNames = __commonJS({ - "node_modules/sucrase/dist/util/getIdentifierNames.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _types = require_types(); - function getIdentifierNames(code, tokens) { - const names = []; - for (const token2 of tokens) { - if (token2.type === _types.TokenType.name) { - names.push(code.slice(token2.start, token2.end)); - } - } - return names; - } - exports2.default = getIdentifierNames; - } -}); - -// node_modules/sucrase/dist/NameManager.js -var require_NameManager = __commonJS({ - "node_modules/sucrase/dist/NameManager.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _getIdentifierNames = require_getIdentifierNames(); - var _getIdentifierNames2 = _interopRequireDefault(_getIdentifierNames); - var NameManager = class _NameManager { - __init() { - this.usedNames = /* @__PURE__ */ new Set(); - } - constructor(code, tokens) { - ; - _NameManager.prototype.__init.call(this); - this.usedNames = new Set(_getIdentifierNames2.default.call(void 0, code, tokens)); - } - claimFreeName(name) { - const newName = this.findFreeName(name); - this.usedNames.add(newName); - return newName; - } - findFreeName(name) { - if (!this.usedNames.has(name)) { - return name; - } - let suffixNum = 2; - while (this.usedNames.has(name + String(suffixNum))) { - suffixNum++; - } - return name + String(suffixNum); - } - }; - exports2.default = NameManager; - } -}); - // node_modules/ts-interface-checker/dist/util.js -var require_util2 = __commonJS({ - "node_modules/ts-interface-checker/dist/util.js"(exports2) { +var require_util = __commonJS({ + "node_modules/ts-interface-checker/dist/util.js"(exports) { "use strict"; - var __extends = exports2 && exports2.__extends || /* @__PURE__ */ function() { + var __extends = exports && exports.__extends || /* @__PURE__ */ function() { var extendStatics = function(d3, b3) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) { d4.__proto__ = b4; @@ -15692,8 +1958,8 @@ var require_util2 = __commonJS({ d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); }; }(); - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.DetailContext = exports2.NoopContext = exports2.VError = void 0; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DetailContext = exports.NoopContext = exports.VError = void 0; var VError = ( /** @class */ function(_super) { @@ -15707,7 +1973,7 @@ var require_util2 = __commonJS({ return VError2; }(Error) ); - exports2.VError = VError; + exports.VError = VError; var NoopContext = ( /** @class */ function() { @@ -15727,7 +1993,7 @@ var require_util2 = __commonJS({ return NoopContext2; }() ); - exports2.NoopContext = NoopContext; + exports.NoopContext = NoopContext; var DetailContext = ( /** @class */ function() { @@ -15794,7 +2060,7 @@ var require_util2 = __commonJS({ return DetailContext2; }() ); - exports2.DetailContext = DetailContext; + exports.DetailContext = DetailContext; var DetailUnionResolver = ( /** @class */ function() { @@ -15813,10 +2079,10 @@ var require_util2 = __commonJS({ }); // node_modules/ts-interface-checker/dist/types.js -var require_types2 = __commonJS({ - "node_modules/ts-interface-checker/dist/types.js"(exports2) { +var require_types = __commonJS({ + "node_modules/ts-interface-checker/dist/types.js"(exports) { "use strict"; - var __extends = exports2 && exports2.__extends || /* @__PURE__ */ function() { + var __extends = exports && exports.__extends || /* @__PURE__ */ function() { var extendStatics = function(d3, b3) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) { d4.__proto__ = b4; @@ -15833,9 +2099,9 @@ var require_types2 = __commonJS({ d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); }; }(); - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.basicTypes = exports2.BasicType = exports2.TParamList = exports2.TParam = exports2.param = exports2.TFunc = exports2.func = exports2.TProp = exports2.TOptional = exports2.opt = exports2.TIface = exports2.iface = exports2.TEnumLiteral = exports2.enumlit = exports2.TEnumType = exports2.enumtype = exports2.TIntersection = exports2.intersection = exports2.TUnion = exports2.union = exports2.TTuple = exports2.tuple = exports2.TArray = exports2.array = exports2.TLiteral = exports2.lit = exports2.TName = exports2.name = exports2.TType = void 0; - var util_1 = require_util2(); + Object.defineProperty(exports, "__esModule", { value: true }); + exports.basicTypes = exports.BasicType = exports.TParamList = exports.TParam = exports.param = exports.TFunc = exports.func = exports.TProp = exports.TOptional = exports.opt = exports.TIface = exports.iface = exports.TEnumLiteral = exports.enumlit = exports.TEnumType = exports.enumtype = exports.TIntersection = exports.intersection = exports.TUnion = exports.union = exports.TTuple = exports.tuple = exports.TArray = exports.array = exports.TLiteral = exports.lit = exports.TName = exports.name = exports.TType = void 0; + var util_1 = require_util(); var TType = ( /** @class */ /* @__PURE__ */ function() { @@ -15844,7 +2110,7 @@ var require_types2 = __commonJS({ return TType2; }() ); - exports2.TType = TType; + exports.TType = TType; function parseSpec(typeSpec) { return typeof typeSpec === "string" ? name(typeSpec) : typeSpec; } @@ -15858,7 +2124,7 @@ var require_types2 = __commonJS({ function name(value) { return new TName(value); } - exports2.name = name; + exports.name = name; var TName = ( /** @class */ function(_super) { @@ -15883,11 +2149,11 @@ var require_types2 = __commonJS({ return TName2; }(TType) ); - exports2.TName = TName; - function lit(value) { + exports.TName = TName; + function lit2(value) { return new TLiteral(value); } - exports2.lit = lit; + exports.lit = lit2; var TLiteral = ( /** @class */ function(_super) { @@ -15908,11 +2174,11 @@ var require_types2 = __commonJS({ return TLiteral2; }(TType) ); - exports2.TLiteral = TLiteral; - function array(typeSpec) { + exports.TLiteral = TLiteral; + function array2(typeSpec) { return new TArray(parseSpec(typeSpec)); } - exports2.array = array; + exports.array = array2; var TArray = ( /** @class */ function(_super) { @@ -15940,17 +2206,17 @@ var require_types2 = __commonJS({ return TArray2; }(TType) ); - exports2.TArray = TArray; + exports.TArray = TArray; function tuple() { var typeSpec = []; for (var _i2 = 0; _i2 < arguments.length; _i2++) { typeSpec[_i2] = arguments[_i2]; } - return new TTuple(typeSpec.map(function(t4) { - return parseSpec(t4); + return new TTuple(typeSpec.map(function(t5) { + return parseSpec(t5); })); } - exports2.tuple = tuple; + exports.tuple = tuple; var TTuple = ( /** @class */ function(_super) { @@ -15961,8 +2227,8 @@ var require_types2 = __commonJS({ return _this; } TTuple2.prototype.getChecker = function(suite, strict) { - var itemCheckers = this.ttypes.map(function(t4) { - return t4.getChecker(suite, strict); + var itemCheckers = this.ttypes.map(function(t5) { + return t5.getChecker(suite, strict); }); var checker = function(value, ctx) { if (!Array.isArray(value)) { @@ -15989,17 +2255,17 @@ var require_types2 = __commonJS({ return TTuple2; }(TType) ); - exports2.TTuple = TTuple; - function union() { + exports.TTuple = TTuple; + function union2() { var typeSpec = []; for (var _i2 = 0; _i2 < arguments.length; _i2++) { typeSpec[_i2] = arguments[_i2]; } - return new TUnion(typeSpec.map(function(t4) { - return parseSpec(t4); + return new TUnion(typeSpec.map(function(t5) { + return parseSpec(t5); })); } - exports2.union = union; + exports.union = union2; var TUnion = ( /** @class */ function(_super) { @@ -16007,8 +2273,8 @@ var require_types2 = __commonJS({ function TUnion2(ttypes) { var _this = _super.call(this) || this; _this.ttypes = ttypes; - var names = ttypes.map(function(t4) { - return t4 instanceof TName || t4 instanceof TLiteral ? t4.name : null; + var names = ttypes.map(function(t5) { + return t5 instanceof TName || t5 instanceof TLiteral ? t5.name : null; }).filter(function(n3) { return n3; }); @@ -16025,8 +2291,8 @@ var require_types2 = __commonJS({ } TUnion2.prototype.getChecker = function(suite, strict) { var _this = this; - var itemCheckers = this.ttypes.map(function(t4) { - return t4.getChecker(suite, strict); + var itemCheckers = this.ttypes.map(function(t5) { + return t5.getChecker(suite, strict); }); return function(value, ctx) { var ur = ctx.unionResolver(); @@ -16043,17 +2309,17 @@ var require_types2 = __commonJS({ return TUnion2; }(TType) ); - exports2.TUnion = TUnion; + exports.TUnion = TUnion; function intersection() { var typeSpec = []; for (var _i2 = 0; _i2 < arguments.length; _i2++) { typeSpec[_i2] = arguments[_i2]; } - return new TIntersection(typeSpec.map(function(t4) { - return parseSpec(t4); + return new TIntersection(typeSpec.map(function(t5) { + return parseSpec(t5); })); } - exports2.intersection = intersection; + exports.intersection = intersection; var TIntersection = ( /** @class */ function(_super) { @@ -16065,8 +2331,8 @@ var require_types2 = __commonJS({ } TIntersection2.prototype.getChecker = function(suite, strict) { var allowedProps = /* @__PURE__ */ new Set(); - var itemCheckers = this.ttypes.map(function(t4) { - return t4.getChecker(suite, strict, allowedProps); + var itemCheckers = this.ttypes.map(function(t5) { + return t5.getChecker(suite, strict, allowedProps); }); return function(value, ctx) { var ok = itemCheckers.every(function(checker) { @@ -16081,11 +2347,11 @@ var require_types2 = __commonJS({ return TIntersection2; }(TType) ); - exports2.TIntersection = TIntersection; + exports.TIntersection = TIntersection; function enumtype(values) { return new TEnumType(values); } - exports2.enumtype = enumtype; + exports.enumtype = enumtype; var TEnumType = ( /** @class */ function(_super) { @@ -16109,11 +2375,11 @@ var require_types2 = __commonJS({ return TEnumType2; }(TType) ); - exports2.TEnumType = TEnumType; + exports.TEnumType = TEnumType; function enumlit(name2, prop) { return new TEnumLiteral(name2, prop); } - exports2.enumlit = enumlit; + exports.enumlit = enumlit; var TEnumLiteral = ( /** @class */ function(_super) { @@ -16142,7 +2408,7 @@ var require_types2 = __commonJS({ return TEnumLiteral2; }(TType) ); - exports2.TEnumLiteral = TEnumLiteral; + exports.TEnumLiteral = TEnumLiteral; function makeIfaceProps(props) { return Object.keys(props).map(function(name2) { return makeIfaceProp(name2, props[name2]); @@ -16151,10 +2417,10 @@ var require_types2 = __commonJS({ function makeIfaceProp(name2, prop) { return prop instanceof TOptional ? new TProp(name2, prop.ttype, true) : new TProp(name2, parseSpec(prop), false); } - function iface(bases, props) { + function iface2(bases, props) { return new TIface(bases, makeIfaceProps(props)); } - exports2.iface = iface; + exports.iface = iface2; var TIface = ( /** @class */ function(_super) { @@ -16230,11 +2496,11 @@ var require_types2 = __commonJS({ return TIface2; }(TType) ); - exports2.TIface = TIface; - function opt(typeSpec) { + exports.TIface = TIface; + function opt2(typeSpec) { return new TOptional(parseSpec(typeSpec)); } - exports2.opt = opt; + exports.opt = opt2; var TOptional = ( /** @class */ function(_super) { @@ -16253,7 +2519,7 @@ var require_types2 = __commonJS({ return TOptional2; }(TType) ); - exports2.TOptional = TOptional; + exports.TOptional = TOptional; var TProp = ( /** @class */ /* @__PURE__ */ function() { @@ -16265,7 +2531,7 @@ var require_types2 = __commonJS({ return TProp2; }() ); - exports2.TProp = TProp; + exports.TProp = TProp; function func(resultSpec) { var params = []; for (var _i2 = 1; _i2 < arguments.length; _i2++) { @@ -16273,7 +2539,7 @@ var require_types2 = __commonJS({ } return new TFunc(new TParamList(params), parseSpec(resultSpec)); } - exports2.func = func; + exports.func = func; var TFunc = ( /** @class */ function(_super) { @@ -16292,11 +2558,11 @@ var require_types2 = __commonJS({ return TFunc2; }(TType) ); - exports2.TFunc = TFunc; + exports.TFunc = TFunc; function param(name2, typeSpec, isOpt) { return new TParam(name2, parseSpec(typeSpec), Boolean(isOpt)); } - exports2.param = param; + exports.param = param; var TParam = ( /** @class */ /* @__PURE__ */ function() { @@ -16308,7 +2574,7 @@ var require_types2 = __commonJS({ return TParam2; }() ); - exports2.TParam = TParam; + exports.TParam = TParam; var TParamList = ( /** @class */ function(_super) { @@ -16320,8 +2586,8 @@ var require_types2 = __commonJS({ } TParamList2.prototype.getChecker = function(suite, strict) { var _this = this; - var itemCheckers = this.params.map(function(t4) { - return t4.ttype.getChecker(suite, strict); + var itemCheckers = this.params.map(function(t5) { + return t5.ttype.getChecker(suite, strict); }); var testCtx = new util_1.NoopContext(); var isParamRequired = this.params.map(function(param2, i4) { @@ -16359,7 +2625,7 @@ var require_types2 = __commonJS({ return TParamList2; }(TType) ); - exports2.TParamList = TParamList; + exports.TParamList = TParamList; var BasicType = ( /** @class */ function(_super) { @@ -16379,8 +2645,8 @@ var require_types2 = __commonJS({ return BasicType2; }(TType) ); - exports2.BasicType = BasicType; - exports2.basicTypes = { + exports.BasicType = BasicType; + exports.basicTypes = { any: new BasicType(function(v3) { return true; }, "is invalid"), @@ -16421,12 +2687,12 @@ var require_types2 = __commonJS({ }; } if (typeof Buffer !== "undefined") { - exports2.basicTypes.Buffer = new BasicType(function(v3) { + exports.basicTypes.Buffer = new BasicType(function(v3) { return Buffer.isBuffer(v3); }, "is not a Buffer"); } var _loop_1 = function(array_12) { - exports2.basicTypes[array_12.name] = new BasicType(function(v3) { + exports.basicTypes[array_12.name] = new BasicType(function(v3) { return v3 instanceof array_12; }, "is not a " + array_12.name); }; @@ -16453,109 +2719,109 @@ var require_types2 = __commonJS({ // node_modules/ts-interface-checker/dist/index.js var require_dist = __commonJS({ - "node_modules/ts-interface-checker/dist/index.js"(exports2) { + "node_modules/ts-interface-checker/dist/index.js"(exports) { "use strict"; - var __spreadArrays = exports2 && exports2.__spreadArrays || function() { + var __spreadArrays = exports && exports.__spreadArrays || function() { for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) s4 += arguments[i4].length; for (var r4 = Array(s4), k4 = 0, i4 = 0; i4 < il; i4++) for (var a4 = arguments[i4], j4 = 0, jl = a4.length; j4 < jl; j4++, k4++) r4[k4] = a4[j4]; return r4; }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Checker = exports2.createCheckers = void 0; - var types_1 = require_types2(); - var util_1 = require_util2(); - var types_2 = require_types2(); - Object.defineProperty(exports2, "TArray", { enumerable: true, get: function() { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Checker = exports.createCheckers = void 0; + var types_1 = require_types(); + var util_1 = require_util(); + var types_2 = require_types(); + Object.defineProperty(exports, "TArray", { enumerable: true, get: function() { return types_2.TArray; } }); - Object.defineProperty(exports2, "TEnumType", { enumerable: true, get: function() { + Object.defineProperty(exports, "TEnumType", { enumerable: true, get: function() { return types_2.TEnumType; } }); - Object.defineProperty(exports2, "TEnumLiteral", { enumerable: true, get: function() { + Object.defineProperty(exports, "TEnumLiteral", { enumerable: true, get: function() { return types_2.TEnumLiteral; } }); - Object.defineProperty(exports2, "TFunc", { enumerable: true, get: function() { + Object.defineProperty(exports, "TFunc", { enumerable: true, get: function() { return types_2.TFunc; } }); - Object.defineProperty(exports2, "TIface", { enumerable: true, get: function() { + Object.defineProperty(exports, "TIface", { enumerable: true, get: function() { return types_2.TIface; } }); - Object.defineProperty(exports2, "TLiteral", { enumerable: true, get: function() { + Object.defineProperty(exports, "TLiteral", { enumerable: true, get: function() { return types_2.TLiteral; } }); - Object.defineProperty(exports2, "TName", { enumerable: true, get: function() { + Object.defineProperty(exports, "TName", { enumerable: true, get: function() { return types_2.TName; } }); - Object.defineProperty(exports2, "TOptional", { enumerable: true, get: function() { + Object.defineProperty(exports, "TOptional", { enumerable: true, get: function() { return types_2.TOptional; } }); - Object.defineProperty(exports2, "TParam", { enumerable: true, get: function() { + Object.defineProperty(exports, "TParam", { enumerable: true, get: function() { return types_2.TParam; } }); - Object.defineProperty(exports2, "TParamList", { enumerable: true, get: function() { + Object.defineProperty(exports, "TParamList", { enumerable: true, get: function() { return types_2.TParamList; } }); - Object.defineProperty(exports2, "TProp", { enumerable: true, get: function() { + Object.defineProperty(exports, "TProp", { enumerable: true, get: function() { return types_2.TProp; } }); - Object.defineProperty(exports2, "TTuple", { enumerable: true, get: function() { + Object.defineProperty(exports, "TTuple", { enumerable: true, get: function() { return types_2.TTuple; } }); - Object.defineProperty(exports2, "TType", { enumerable: true, get: function() { + Object.defineProperty(exports, "TType", { enumerable: true, get: function() { return types_2.TType; } }); - Object.defineProperty(exports2, "TUnion", { enumerable: true, get: function() { + Object.defineProperty(exports, "TUnion", { enumerable: true, get: function() { return types_2.TUnion; } }); - Object.defineProperty(exports2, "TIntersection", { enumerable: true, get: function() { + Object.defineProperty(exports, "TIntersection", { enumerable: true, get: function() { return types_2.TIntersection; } }); - Object.defineProperty(exports2, "array", { enumerable: true, get: function() { + Object.defineProperty(exports, "array", { enumerable: true, get: function() { return types_2.array; } }); - Object.defineProperty(exports2, "enumlit", { enumerable: true, get: function() { + Object.defineProperty(exports, "enumlit", { enumerable: true, get: function() { return types_2.enumlit; } }); - Object.defineProperty(exports2, "enumtype", { enumerable: true, get: function() { + Object.defineProperty(exports, "enumtype", { enumerable: true, get: function() { return types_2.enumtype; } }); - Object.defineProperty(exports2, "func", { enumerable: true, get: function() { + Object.defineProperty(exports, "func", { enumerable: true, get: function() { return types_2.func; } }); - Object.defineProperty(exports2, "iface", { enumerable: true, get: function() { + Object.defineProperty(exports, "iface", { enumerable: true, get: function() { return types_2.iface; } }); - Object.defineProperty(exports2, "lit", { enumerable: true, get: function() { + Object.defineProperty(exports, "lit", { enumerable: true, get: function() { return types_2.lit; } }); - Object.defineProperty(exports2, "name", { enumerable: true, get: function() { + Object.defineProperty(exports, "name", { enumerable: true, get: function() { return types_2.name; } }); - Object.defineProperty(exports2, "opt", { enumerable: true, get: function() { + Object.defineProperty(exports, "opt", { enumerable: true, get: function() { return types_2.opt; } }); - Object.defineProperty(exports2, "param", { enumerable: true, get: function() { + Object.defineProperty(exports, "param", { enumerable: true, get: function() { return types_2.param; } }); - Object.defineProperty(exports2, "tuple", { enumerable: true, get: function() { + Object.defineProperty(exports, "tuple", { enumerable: true, get: function() { return types_2.tuple; } }); - Object.defineProperty(exports2, "union", { enumerable: true, get: function() { + Object.defineProperty(exports, "union", { enumerable: true, get: function() { return types_2.union; } }); - Object.defineProperty(exports2, "intersection", { enumerable: true, get: function() { + Object.defineProperty(exports, "intersection", { enumerable: true, get: function() { return types_2.intersection; } }); - Object.defineProperty(exports2, "BasicType", { enumerable: true, get: function() { + Object.defineProperty(exports, "BasicType", { enumerable: true, get: function() { return types_2.BasicType; } }); - var util_2 = require_util2(); - Object.defineProperty(exports2, "VError", { enumerable: true, get: function() { + var util_2 = require_util(); + Object.defineProperty(exports, "VError", { enumerable: true, get: function() { return util_2.VError; } }); - function createCheckers() { + function createCheckers2() { var typeSuite = []; for (var _i = 0; _i < arguments.length; _i++) { typeSuite[_i] = arguments[_i]; @@ -16571,7 +2837,7 @@ var require_dist = __commonJS({ } return checkers; } - exports2.createCheckers = createCheckers; + exports.createCheckers = createCheckers2; var Checker = ( /** @class */ function() { @@ -16673,7695 +2939,22 @@ var require_dist = __commonJS({ return Checker2; }() ); - exports2.Checker = Checker; - } -}); - -// node_modules/sucrase/dist/Options-gen-types.js -var require_Options_gen_types = __commonJS({ - "node_modules/sucrase/dist/Options-gen-types.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - newObj[key] = obj[key]; - } - } - } - newObj.default = obj; - return newObj; - } - } - var _tsinterfacechecker = require_dist(); - var t4 = _interopRequireWildcard(_tsinterfacechecker); - var Transform = t4.union( - t4.lit("jsx"), - t4.lit("typescript"), - t4.lit("flow"), - t4.lit("imports"), - t4.lit("react-hot-loader"), - t4.lit("jest") - ); - exports2.Transform = Transform; - var SourceMapOptions = t4.iface([], { - compiledFilename: "string" - }); - exports2.SourceMapOptions = SourceMapOptions; - var Options = t4.iface([], { - transforms: t4.array("Transform"), - disableESTransforms: t4.opt("boolean"), - jsxRuntime: t4.opt(t4.union(t4.lit("classic"), t4.lit("automatic"), t4.lit("preserve"))), - production: t4.opt("boolean"), - jsxImportSource: t4.opt("string"), - jsxPragma: t4.opt("string"), - jsxFragmentPragma: t4.opt("string"), - keepUnusedImports: t4.opt("boolean"), - preserveDynamicImport: t4.opt("boolean"), - injectCreateRequireForImportRequire: t4.opt("boolean"), - enableLegacyTypeScriptModuleInterop: t4.opt("boolean"), - enableLegacyBabel5ModuleInterop: t4.opt("boolean"), - sourceMapOptions: t4.opt("SourceMapOptions"), - filePath: t4.opt("string") - }); - exports2.Options = Options; - var exportedTypeSuite = { - Transform: exports2.Transform, - SourceMapOptions: exports2.SourceMapOptions, - Options: exports2.Options - }; - exports2.default = exportedTypeSuite; - } -}); - -// node_modules/sucrase/dist/Options.js -var require_Options = __commonJS({ - "node_modules/sucrase/dist/Options.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tsinterfacechecker = require_dist(); - var _Optionsgentypes = require_Options_gen_types(); - var _Optionsgentypes2 = _interopRequireDefault(_Optionsgentypes); - var { Options: OptionsChecker } = _tsinterfacechecker.createCheckers.call(void 0, _Optionsgentypes2.default); - function validateOptions(options2) { - OptionsChecker.strictCheck(options2); - } - exports2.validateOptions = validateOptions; - } -}); - -// node_modules/sucrase/dist/parser/traverser/lval.js -var require_lval = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/lval.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _flow = require_flow(); - var _typescript = require_typescript(); - var _index = require_tokenizer(); - var _keywords = require_keywords(); - var _types = require_types(); - var _base = require_base(); - var _expression = require_expression(); - var _util = require_util(); - function parseSpread() { - _index.next.call(void 0); - _expression.parseMaybeAssign.call(void 0, false); - } - exports2.parseSpread = parseSpread; - function parseRest(isBlockScope) { - _index.next.call(void 0); - parseBindingAtom(isBlockScope); - } - exports2.parseRest = parseRest; - function parseBindingIdentifier(isBlockScope) { - _expression.parseIdentifier.call(void 0); - markPriorBindingIdentifier(isBlockScope); - } - exports2.parseBindingIdentifier = parseBindingIdentifier; - function parseImportedIdentifier() { - _expression.parseIdentifier.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ImportDeclaration; - } - exports2.parseImportedIdentifier = parseImportedIdentifier; - function markPriorBindingIdentifier(isBlockScope) { - let identifierRole; - if (_base.state.scopeDepth === 0) { - identifierRole = _index.IdentifierRole.TopLevelDeclaration; - } else if (isBlockScope) { - identifierRole = _index.IdentifierRole.BlockScopedDeclaration; - } else { - identifierRole = _index.IdentifierRole.FunctionScopedDeclaration; - } - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = identifierRole; - } - exports2.markPriorBindingIdentifier = markPriorBindingIdentifier; - function parseBindingAtom(isBlockScope) { - switch (_base.state.type) { - case _types.TokenType._this: { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _index.next.call(void 0); - _index.popTypeContext.call(void 0, oldIsType); - return; - } - case _types.TokenType._yield: - case _types.TokenType.name: { - _base.state.type = _types.TokenType.name; - parseBindingIdentifier(isBlockScope); - return; - } - case _types.TokenType.bracketL: { - _index.next.call(void 0); - parseBindingList( - _types.TokenType.bracketR, - isBlockScope, - true - /* allowEmpty */ - ); - return; - } - case _types.TokenType.braceL: - _expression.parseObj.call(void 0, true, isBlockScope); - return; - default: - _util.unexpected.call(void 0); - } - } - exports2.parseBindingAtom = parseBindingAtom; - function parseBindingList(close, isBlockScope, allowEmpty = false, allowModifiers = false, contextId = 0) { - let first = true; - let hasRemovedComma = false; - const firstItemTokenIndex = _base.state.tokens.length; - while (!_index.eat.call(void 0, close) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types.TokenType.comma); - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - if (!hasRemovedComma && _base.state.tokens[firstItemTokenIndex].isType) { - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - hasRemovedComma = true; - } - } - if (allowEmpty && _index.match.call(void 0, _types.TokenType.comma)) { - } else if (_index.eat.call(void 0, close)) { - break; - } else if (_index.match.call(void 0, _types.TokenType.ellipsis)) { - parseRest(isBlockScope); - parseAssignableListItemTypes(); - _index.eat.call(void 0, _types.TokenType.comma); - _util.expect.call(void 0, close); - break; - } else { - parseAssignableListItem(allowModifiers, isBlockScope); - } - } - } - exports2.parseBindingList = parseBindingList; - function parseAssignableListItem(allowModifiers, isBlockScope) { - if (allowModifiers) { - _typescript.tsParseModifiers.call(void 0, [ - _keywords.ContextualKeyword._public, - _keywords.ContextualKeyword._protected, - _keywords.ContextualKeyword._private, - _keywords.ContextualKeyword._readonly, - _keywords.ContextualKeyword._override - ]); - } - parseMaybeDefault(isBlockScope); - parseAssignableListItemTypes(); - parseMaybeDefault( - isBlockScope, - true - /* leftAlreadyParsed */ - ); - } - function parseAssignableListItemTypes() { - if (_base.isFlowEnabled) { - _flow.flowParseAssignableListItemTypes.call(void 0); - } else if (_base.isTypeScriptEnabled) { - _typescript.tsParseAssignableListItemTypes.call(void 0); - } - } - function parseMaybeDefault(isBlockScope, leftAlreadyParsed = false) { - if (!leftAlreadyParsed) { - parseBindingAtom(isBlockScope); - } - if (!_index.eat.call(void 0, _types.TokenType.eq)) { - return; - } - const eqIndex = _base.state.tokens.length - 1; - _expression.parseMaybeAssign.call(void 0); - _base.state.tokens[eqIndex].rhsEndIndex = _base.state.tokens.length; - } - exports2.parseMaybeDefault = parseMaybeDefault; - } -}); - -// node_modules/sucrase/dist/parser/plugins/typescript.js -var require_typescript = __commonJS({ - "node_modules/sucrase/dist/parser/plugins/typescript.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _keywords = require_keywords(); - var _types = require_types(); - var _base = require_base(); - var _expression = require_expression(); - var _lval = require_lval(); - var _statement = require_statement(); - var _util = require_util(); - var _jsx = require_jsx(); - function tsIsIdentifier() { - return _index.match.call(void 0, _types.TokenType.name); - } - function isLiteralPropertyName() { - return _index.match.call(void 0, _types.TokenType.name) || Boolean(_base.state.type & _types.TokenType.IS_KEYWORD) || _index.match.call(void 0, _types.TokenType.string) || _index.match.call(void 0, _types.TokenType.num) || _index.match.call(void 0, _types.TokenType.bigint) || _index.match.call(void 0, _types.TokenType.decimal); - } - function tsNextTokenCanFollowModifier() { - const snapshot = _base.state.snapshot(); - _index.next.call(void 0); - const canFollowModifier = (_index.match.call(void 0, _types.TokenType.bracketL) || _index.match.call(void 0, _types.TokenType.braceL) || _index.match.call(void 0, _types.TokenType.star) || _index.match.call(void 0, _types.TokenType.ellipsis) || _index.match.call(void 0, _types.TokenType.hash) || isLiteralPropertyName()) && !_util.hasPrecedingLineBreak.call(void 0); - if (canFollowModifier) { - return true; - } else { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - } - function tsParseModifiers(allowedModifiers) { - while (true) { - const modifier = tsParseModifier(allowedModifiers); - if (modifier === null) { - break; - } - } - } - exports2.tsParseModifiers = tsParseModifiers; - function tsParseModifier(allowedModifiers) { - if (!_index.match.call(void 0, _types.TokenType.name)) { - return null; - } - const modifier = _base.state.contextualKeyword; - if (allowedModifiers.indexOf(modifier) !== -1 && tsNextTokenCanFollowModifier()) { - switch (modifier) { - case _keywords.ContextualKeyword._readonly: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._readonly; - break; - case _keywords.ContextualKeyword._abstract: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._abstract; - break; - case _keywords.ContextualKeyword._static: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._static; - break; - case _keywords.ContextualKeyword._public: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._public; - break; - case _keywords.ContextualKeyword._private: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._private; - break; - case _keywords.ContextualKeyword._protected: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._protected; - break; - case _keywords.ContextualKeyword._override: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._override; - break; - case _keywords.ContextualKeyword._declare: - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._declare; - break; - default: - break; - } - return modifier; - } - return null; - } - exports2.tsParseModifier = tsParseModifier; - function tsParseEntityName() { - _expression.parseIdentifier.call(void 0); - while (_index.eat.call(void 0, _types.TokenType.dot)) { - _expression.parseIdentifier.call(void 0); - } - } - function tsParseTypeReference() { - tsParseEntityName(); - if (!_util.hasPrecedingLineBreak.call(void 0) && _index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseTypeArguments(); - } - } - function tsParseThisTypePredicate() { - _index.next.call(void 0); - tsParseTypeAnnotation(); - } - function tsParseThisTypeNode() { - _index.next.call(void 0); - } - function tsParseTypeQuery() { - _util.expect.call(void 0, _types.TokenType._typeof); - if (_index.match.call(void 0, _types.TokenType._import)) { - tsParseImportType(); - } else { - tsParseEntityName(); - } - if (!_util.hasPrecedingLineBreak.call(void 0) && _index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseTypeArguments(); - } - } - function tsParseImportType() { - _util.expect.call(void 0, _types.TokenType._import); - _util.expect.call(void 0, _types.TokenType.parenL); - _util.expect.call(void 0, _types.TokenType.string); - _util.expect.call(void 0, _types.TokenType.parenR); - if (_index.eat.call(void 0, _types.TokenType.dot)) { - tsParseEntityName(); - } - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseTypeArguments(); - } - } - function tsParseTypeParameter() { - _index.eat.call(void 0, _types.TokenType._const); - const hadIn = _index.eat.call(void 0, _types.TokenType._in); - const hadOut = _util.eatContextual.call(void 0, _keywords.ContextualKeyword._out); - _index.eat.call(void 0, _types.TokenType._const); - if ((hadIn || hadOut) && !_index.match.call(void 0, _types.TokenType.name)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType.name; - } else { - _expression.parseIdentifier.call(void 0); - } - if (_index.eat.call(void 0, _types.TokenType._extends)) { - tsParseType(); - } - if (_index.eat.call(void 0, _types.TokenType.eq)) { - tsParseType(); - } - } - function tsTryParseTypeParameters() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseTypeParameters(); - } - } - exports2.tsTryParseTypeParameters = tsTryParseTypeParameters; - function tsParseTypeParameters() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.typeParameterStart)) { - _index.next.call(void 0); - } else { - _util.unexpected.call(void 0); - } - while (!_index.eat.call(void 0, _types.TokenType.greaterThan) && !_base.state.error) { - tsParseTypeParameter(); - _index.eat.call(void 0, _types.TokenType.comma); - } - _index.popTypeContext.call(void 0, oldIsType); - } - function tsFillSignature(returnToken) { - const returnTokenRequired = returnToken === _types.TokenType.arrow; - tsTryParseTypeParameters(); - _util.expect.call(void 0, _types.TokenType.parenL); - _base.state.scopeDepth++; - tsParseBindingListForSignature( - false - /* isBlockScope */ - ); - _base.state.scopeDepth--; - if (returnTokenRequired) { - tsParseTypeOrTypePredicateAnnotation(returnToken); - } else if (_index.match.call(void 0, returnToken)) { - tsParseTypeOrTypePredicateAnnotation(returnToken); - } - } - function tsParseBindingListForSignature(isBlockScope) { - _lval.parseBindingList.call(void 0, _types.TokenType.parenR, isBlockScope); - } - function tsParseTypeMemberSemicolon() { - if (!_index.eat.call(void 0, _types.TokenType.comma)) { - _util.semicolon.call(void 0); - } - } - function tsParseSignatureMember() { - tsFillSignature(_types.TokenType.colon); - tsParseTypeMemberSemicolon(); - } - function tsIsUnambiguouslyIndexSignature() { - const snapshot = _base.state.snapshot(); - _index.next.call(void 0); - const isIndexSignature = _index.eat.call(void 0, _types.TokenType.name) && _index.match.call(void 0, _types.TokenType.colon); - _base.state.restoreFromSnapshot(snapshot); - return isIndexSignature; - } - function tsTryParseIndexSignature() { - if (!(_index.match.call(void 0, _types.TokenType.bracketL) && tsIsUnambiguouslyIndexSignature())) { - return false; - } - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, _types.TokenType.bracketL); - _expression.parseIdentifier.call(void 0); - tsParseTypeAnnotation(); - _util.expect.call(void 0, _types.TokenType.bracketR); - tsTryParseTypeAnnotation(); - tsParseTypeMemberSemicolon(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - function tsParsePropertyOrMethodSignature(isReadonly) { - _index.eat.call(void 0, _types.TokenType.question); - if (!isReadonly && (_index.match.call(void 0, _types.TokenType.parenL) || _index.match.call(void 0, _types.TokenType.lessThan))) { - tsFillSignature(_types.TokenType.colon); - tsParseTypeMemberSemicolon(); - } else { - tsTryParseTypeAnnotation(); - tsParseTypeMemberSemicolon(); - } - } - function tsParseTypeMember() { - if (_index.match.call(void 0, _types.TokenType.parenL) || _index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseSignatureMember(); - return; - } - if (_index.match.call(void 0, _types.TokenType._new)) { - _index.next.call(void 0); - if (_index.match.call(void 0, _types.TokenType.parenL) || _index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseSignatureMember(); - } else { - tsParsePropertyOrMethodSignature(false); - } - return; - } - const readonly = !!tsParseModifier([_keywords.ContextualKeyword._readonly]); - const found = tsTryParseIndexSignature(); - if (found) { - return; - } - if ((_util.isContextual.call(void 0, _keywords.ContextualKeyword._get) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._set)) && tsNextTokenCanFollowModifier()) { - } - _expression.parsePropertyName.call( - void 0, - -1 - /* Types don't need context IDs. */ - ); - tsParsePropertyOrMethodSignature(readonly); - } - function tsParseTypeLiteral() { - tsParseObjectTypeMembers(); - } - function tsParseObjectTypeMembers() { - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_index.eat.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - tsParseTypeMember(); - } - } - function tsLookaheadIsStartOfMappedType() { - const snapshot = _base.state.snapshot(); - const isStartOfMappedType = tsIsStartOfMappedType(); - _base.state.restoreFromSnapshot(snapshot); - return isStartOfMappedType; - } - function tsIsStartOfMappedType() { - _index.next.call(void 0); - if (_index.eat.call(void 0, _types.TokenType.plus) || _index.eat.call(void 0, _types.TokenType.minus)) { - return _util.isContextual.call(void 0, _keywords.ContextualKeyword._readonly); - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._readonly)) { - _index.next.call(void 0); - } - if (!_index.match.call(void 0, _types.TokenType.bracketL)) { - return false; - } - _index.next.call(void 0); - if (!tsIsIdentifier()) { - return false; - } - _index.next.call(void 0); - return _index.match.call(void 0, _types.TokenType._in); - } - function tsParseMappedTypeParameter() { - _expression.parseIdentifier.call(void 0); - _util.expect.call(void 0, _types.TokenType._in); - tsParseType(); - } - function tsParseMappedType() { - _util.expect.call(void 0, _types.TokenType.braceL); - if (_index.match.call(void 0, _types.TokenType.plus) || _index.match.call(void 0, _types.TokenType.minus)) { - _index.next.call(void 0); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._readonly); - } else { - _util.eatContextual.call(void 0, _keywords.ContextualKeyword._readonly); - } - _util.expect.call(void 0, _types.TokenType.bracketL); - tsParseMappedTypeParameter(); - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._as)) { - tsParseType(); - } - _util.expect.call(void 0, _types.TokenType.bracketR); - if (_index.match.call(void 0, _types.TokenType.plus) || _index.match.call(void 0, _types.TokenType.minus)) { - _index.next.call(void 0); - _util.expect.call(void 0, _types.TokenType.question); - } else { - _index.eat.call(void 0, _types.TokenType.question); - } - tsTryParseType(); - _util.semicolon.call(void 0); - _util.expect.call(void 0, _types.TokenType.braceR); - } - function tsParseTupleType() { - _util.expect.call(void 0, _types.TokenType.bracketL); - while (!_index.eat.call(void 0, _types.TokenType.bracketR) && !_base.state.error) { - tsParseTupleElementType(); - _index.eat.call(void 0, _types.TokenType.comma); - } - } - function tsParseTupleElementType() { - if (_index.eat.call(void 0, _types.TokenType.ellipsis)) { - tsParseType(); - } else { - tsParseType(); - _index.eat.call(void 0, _types.TokenType.question); - } - if (_index.eat.call(void 0, _types.TokenType.colon)) { - tsParseType(); - } - } - function tsParseParenthesizedType() { - _util.expect.call(void 0, _types.TokenType.parenL); - tsParseType(); - _util.expect.call(void 0, _types.TokenType.parenR); - } - function tsParseTemplateLiteralType() { - _index.nextTemplateToken.call(void 0); - _index.nextTemplateToken.call(void 0); - while (!_index.match.call(void 0, _types.TokenType.backQuote) && !_base.state.error) { - _util.expect.call(void 0, _types.TokenType.dollarBraceL); - tsParseType(); - _index.nextTemplateToken.call(void 0); - _index.nextTemplateToken.call(void 0); - } - _index.next.call(void 0); - } - var FunctionType; - (function(FunctionType2) { - const TSFunctionType = 0; - FunctionType2[FunctionType2["TSFunctionType"] = TSFunctionType] = "TSFunctionType"; - const TSConstructorType = TSFunctionType + 1; - FunctionType2[FunctionType2["TSConstructorType"] = TSConstructorType] = "TSConstructorType"; - const TSAbstractConstructorType = TSConstructorType + 1; - FunctionType2[FunctionType2["TSAbstractConstructorType"] = TSAbstractConstructorType] = "TSAbstractConstructorType"; - })(FunctionType || (FunctionType = {})); - function tsParseFunctionOrConstructorType(type) { - if (type === FunctionType.TSAbstractConstructorType) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._abstract); - } - if (type === FunctionType.TSConstructorType || type === FunctionType.TSAbstractConstructorType) { - _util.expect.call(void 0, _types.TokenType._new); - } - const oldInDisallowConditionalTypesContext = _base.state.inDisallowConditionalTypesContext; - _base.state.inDisallowConditionalTypesContext = false; - tsFillSignature(_types.TokenType.arrow); - _base.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; - } - function tsParseNonArrayType() { - switch (_base.state.type) { - case _types.TokenType.name: - tsParseTypeReference(); - return; - case _types.TokenType._void: - case _types.TokenType._null: - _index.next.call(void 0); - return; - case _types.TokenType.string: - case _types.TokenType.num: - case _types.TokenType.bigint: - case _types.TokenType.decimal: - case _types.TokenType._true: - case _types.TokenType._false: - _expression.parseLiteral.call(void 0); - return; - case _types.TokenType.minus: - _index.next.call(void 0); - _expression.parseLiteral.call(void 0); - return; - case _types.TokenType._this: { - tsParseThisTypeNode(); - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._is) && !_util.hasPrecedingLineBreak.call(void 0)) { - tsParseThisTypePredicate(); - } - return; - } - case _types.TokenType._typeof: - tsParseTypeQuery(); - return; - case _types.TokenType._import: - tsParseImportType(); - return; - case _types.TokenType.braceL: - if (tsLookaheadIsStartOfMappedType()) { - tsParseMappedType(); - } else { - tsParseTypeLiteral(); - } - return; - case _types.TokenType.bracketL: - tsParseTupleType(); - return; - case _types.TokenType.parenL: - tsParseParenthesizedType(); - return; - case _types.TokenType.backQuote: - tsParseTemplateLiteralType(); - return; - default: - if (_base.state.type & _types.TokenType.IS_KEYWORD) { - _index.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType.name; - return; - } - break; - } - _util.unexpected.call(void 0); - } - function tsParseArrayTypeOrHigher() { - tsParseNonArrayType(); - while (!_util.hasPrecedingLineBreak.call(void 0) && _index.eat.call(void 0, _types.TokenType.bracketL)) { - if (!_index.eat.call(void 0, _types.TokenType.bracketR)) { - tsParseType(); - _util.expect.call(void 0, _types.TokenType.bracketR); - } - } - } - function tsParseInferType() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._infer); - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType._extends)) { - const snapshot = _base.state.snapshot(); - _util.expect.call(void 0, _types.TokenType._extends); - const oldInDisallowConditionalTypesContext = _base.state.inDisallowConditionalTypesContext; - _base.state.inDisallowConditionalTypesContext = true; - tsParseType(); - _base.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; - if (_base.state.error || !_base.state.inDisallowConditionalTypesContext && _index.match.call(void 0, _types.TokenType.question)) { - _base.state.restoreFromSnapshot(snapshot); - } - } - } - function tsParseTypeOperatorOrHigher() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._keyof) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._unique) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._readonly)) { - _index.next.call(void 0); - tsParseTypeOperatorOrHigher(); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._infer)) { - tsParseInferType(); - } else { - const oldInDisallowConditionalTypesContext = _base.state.inDisallowConditionalTypesContext; - _base.state.inDisallowConditionalTypesContext = false; - tsParseArrayTypeOrHigher(); - _base.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; - } - } - function tsParseIntersectionTypeOrHigher() { - _index.eat.call(void 0, _types.TokenType.bitwiseAND); - tsParseTypeOperatorOrHigher(); - if (_index.match.call(void 0, _types.TokenType.bitwiseAND)) { - while (_index.eat.call(void 0, _types.TokenType.bitwiseAND)) { - tsParseTypeOperatorOrHigher(); - } - } - } - function tsParseUnionTypeOrHigher() { - _index.eat.call(void 0, _types.TokenType.bitwiseOR); - tsParseIntersectionTypeOrHigher(); - if (_index.match.call(void 0, _types.TokenType.bitwiseOR)) { - while (_index.eat.call(void 0, _types.TokenType.bitwiseOR)) { - tsParseIntersectionTypeOrHigher(); - } - } - } - function tsIsStartOfFunctionType() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - return true; - } - return _index.match.call(void 0, _types.TokenType.parenL) && tsLookaheadIsUnambiguouslyStartOfFunctionType(); - } - function tsSkipParameterStart() { - if (_index.match.call(void 0, _types.TokenType.name) || _index.match.call(void 0, _types.TokenType._this)) { - _index.next.call(void 0); - return true; - } - if (_index.match.call(void 0, _types.TokenType.braceL) || _index.match.call(void 0, _types.TokenType.bracketL)) { - let depth = 1; - _index.next.call(void 0); - while (depth > 0 && !_base.state.error) { - if (_index.match.call(void 0, _types.TokenType.braceL) || _index.match.call(void 0, _types.TokenType.bracketL)) { - depth++; - } else if (_index.match.call(void 0, _types.TokenType.braceR) || _index.match.call(void 0, _types.TokenType.bracketR)) { - depth--; - } - _index.next.call(void 0); - } - return true; - } - return false; - } - function tsLookaheadIsUnambiguouslyStartOfFunctionType() { - const snapshot = _base.state.snapshot(); - const isUnambiguouslyStartOfFunctionType = tsIsUnambiguouslyStartOfFunctionType(); - _base.state.restoreFromSnapshot(snapshot); - return isUnambiguouslyStartOfFunctionType; - } - function tsIsUnambiguouslyStartOfFunctionType() { - _index.next.call(void 0); - if (_index.match.call(void 0, _types.TokenType.parenR) || _index.match.call(void 0, _types.TokenType.ellipsis)) { - return true; - } - if (tsSkipParameterStart()) { - if (_index.match.call(void 0, _types.TokenType.colon) || _index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.question) || _index.match.call(void 0, _types.TokenType.eq)) { - return true; - } - if (_index.match.call(void 0, _types.TokenType.parenR)) { - _index.next.call(void 0); - if (_index.match.call(void 0, _types.TokenType.arrow)) { - return true; - } - } - } - return false; - } - function tsParseTypeOrTypePredicateAnnotation(returnToken) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, returnToken); - const finishedReturn = tsParseTypePredicateOrAssertsPrefix(); - if (!finishedReturn) { - tsParseType(); - } - _index.popTypeContext.call(void 0, oldIsType); - } - function tsTryParseTypeOrTypePredicateAnnotation() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - tsParseTypeOrTypePredicateAnnotation(_types.TokenType.colon); - } - } - function tsTryParseTypeAnnotation() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - tsParseTypeAnnotation(); - } - } - exports2.tsTryParseTypeAnnotation = tsTryParseTypeAnnotation; - function tsTryParseType() { - if (_index.eat.call(void 0, _types.TokenType.colon)) { - tsParseType(); - } - } - function tsParseTypePredicateOrAssertsPrefix() { - const snapshot = _base.state.snapshot(); - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._asserts)) { - _index.next.call(void 0); - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._is)) { - tsParseType(); - return true; - } else if (tsIsIdentifier() || _index.match.call(void 0, _types.TokenType._this)) { - _index.next.call(void 0); - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._is)) { - tsParseType(); - } - return true; - } else { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - } else if (tsIsIdentifier() || _index.match.call(void 0, _types.TokenType._this)) { - _index.next.call(void 0); - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._is) && !_util.hasPrecedingLineBreak.call(void 0)) { - _index.next.call(void 0); - tsParseType(); - return true; - } else { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - } - return false; - } - function tsParseTypeAnnotation() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, _types.TokenType.colon); - tsParseType(); - _index.popTypeContext.call(void 0, oldIsType); - } - exports2.tsParseTypeAnnotation = tsParseTypeAnnotation; - function tsParseType() { - tsParseNonConditionalType(); - if (_base.state.inDisallowConditionalTypesContext || _util.hasPrecedingLineBreak.call(void 0) || !_index.eat.call(void 0, _types.TokenType._extends)) { - return; - } - const oldInDisallowConditionalTypesContext = _base.state.inDisallowConditionalTypesContext; - _base.state.inDisallowConditionalTypesContext = true; - tsParseNonConditionalType(); - _base.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; - _util.expect.call(void 0, _types.TokenType.question); - tsParseType(); - _util.expect.call(void 0, _types.TokenType.colon); - tsParseType(); - } - exports2.tsParseType = tsParseType; - function isAbstractConstructorSignature() { - return _util.isContextual.call(void 0, _keywords.ContextualKeyword._abstract) && _index.lookaheadType.call(void 0) === _types.TokenType._new; - } - function tsParseNonConditionalType() { - if (tsIsStartOfFunctionType()) { - tsParseFunctionOrConstructorType(FunctionType.TSFunctionType); - return; - } - if (_index.match.call(void 0, _types.TokenType._new)) { - tsParseFunctionOrConstructorType(FunctionType.TSConstructorType); - return; - } else if (isAbstractConstructorSignature()) { - tsParseFunctionOrConstructorType(FunctionType.TSAbstractConstructorType); - return; - } - tsParseUnionTypeOrHigher(); - } - exports2.tsParseNonConditionalType = tsParseNonConditionalType; - function tsParseTypeAssertion() { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - tsParseType(); - _util.expect.call(void 0, _types.TokenType.greaterThan); - _index.popTypeContext.call(void 0, oldIsType); - _expression.parseMaybeUnary.call(void 0); - } - exports2.tsParseTypeAssertion = tsParseTypeAssertion; - function tsTryParseJSXTypeArgument() { - if (_index.eat.call(void 0, _types.TokenType.jsxTagStart)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType.typeParameterStart; - const oldIsType = _index.pushTypeContext.call(void 0, 1); - while (!_index.match.call(void 0, _types.TokenType.greaterThan) && !_base.state.error) { - tsParseType(); - _index.eat.call(void 0, _types.TokenType.comma); - } - _jsx.nextJSXTagToken.call(void 0); - _index.popTypeContext.call(void 0, oldIsType); - } - } - exports2.tsTryParseJSXTypeArgument = tsTryParseJSXTypeArgument; - function tsParseHeritageClause() { - while (!_index.match.call(void 0, _types.TokenType.braceL) && !_base.state.error) { - tsParseExpressionWithTypeArguments(); - _index.eat.call(void 0, _types.TokenType.comma); - } - } - function tsParseExpressionWithTypeArguments() { - tsParseEntityName(); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - tsParseTypeArguments(); - } - } - function tsParseInterfaceDeclaration() { - _lval.parseBindingIdentifier.call(void 0, false); - tsTryParseTypeParameters(); - if (_index.eat.call(void 0, _types.TokenType._extends)) { - tsParseHeritageClause(); - } - tsParseObjectTypeMembers(); - } - function tsParseTypeAliasDeclaration() { - _lval.parseBindingIdentifier.call(void 0, false); - tsTryParseTypeParameters(); - _util.expect.call(void 0, _types.TokenType.eq); - tsParseType(); - _util.semicolon.call(void 0); - } - function tsParseEnumMember() { - if (_index.match.call(void 0, _types.TokenType.string)) { - _expression.parseLiteral.call(void 0); - } else { - _expression.parseIdentifier.call(void 0); - } - if (_index.eat.call(void 0, _types.TokenType.eq)) { - const eqIndex = _base.state.tokens.length - 1; - _expression.parseMaybeAssign.call(void 0); - _base.state.tokens[eqIndex].rhsEndIndex = _base.state.tokens.length; - } - } - function tsParseEnumDeclaration() { - _lval.parseBindingIdentifier.call(void 0, false); - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_index.eat.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - tsParseEnumMember(); - _index.eat.call(void 0, _types.TokenType.comma); - } - } - function tsParseModuleBlock() { - _util.expect.call(void 0, _types.TokenType.braceL); - _statement.parseBlockBody.call( - void 0, - /* end */ - _types.TokenType.braceR - ); - } - function tsParseModuleOrNamespaceDeclaration() { - _lval.parseBindingIdentifier.call(void 0, false); - if (_index.eat.call(void 0, _types.TokenType.dot)) { - tsParseModuleOrNamespaceDeclaration(); - } else { - tsParseModuleBlock(); - } - } - function tsParseAmbientExternalModuleDeclaration() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._global)) { - _expression.parseIdentifier.call(void 0); - } else if (_index.match.call(void 0, _types.TokenType.string)) { - _expression.parseExprAtom.call(void 0); - } else { - _util.unexpected.call(void 0); - } - if (_index.match.call(void 0, _types.TokenType.braceL)) { - tsParseModuleBlock(); - } else { - _util.semicolon.call(void 0); - } - } - function tsParseImportEqualsDeclaration() { - _lval.parseImportedIdentifier.call(void 0); - _util.expect.call(void 0, _types.TokenType.eq); - tsParseModuleReference(); - _util.semicolon.call(void 0); - } - exports2.tsParseImportEqualsDeclaration = tsParseImportEqualsDeclaration; - function tsIsExternalModuleReference() { - return _util.isContextual.call(void 0, _keywords.ContextualKeyword._require) && _index.lookaheadType.call(void 0) === _types.TokenType.parenL; - } - function tsParseModuleReference() { - if (tsIsExternalModuleReference()) { - tsParseExternalModuleReference(); - } else { - tsParseEntityName(); - } - } - function tsParseExternalModuleReference() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._require); - _util.expect.call(void 0, _types.TokenType.parenL); - if (!_index.match.call(void 0, _types.TokenType.string)) { - _util.unexpected.call(void 0); - } - _expression.parseLiteral.call(void 0); - _util.expect.call(void 0, _types.TokenType.parenR); - } - function tsTryParseDeclare() { - if (_util.isLineTerminator.call(void 0)) { - return false; - } - switch (_base.state.type) { - case _types.TokenType._function: { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _index.next.call(void 0); - const functionStart = _base.state.start; - _statement.parseFunction.call( - void 0, - functionStart, - /* isStatement */ - true - ); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - case _types.TokenType._class: { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _statement.parseClass.call( - void 0, - /* isStatement */ - true, - /* optionalId */ - false - ); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - case _types.TokenType._const: { - if (_index.match.call(void 0, _types.TokenType._const) && _util.isLookaheadContextual.call(void 0, _keywords.ContextualKeyword._enum)) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _util.expect.call(void 0, _types.TokenType._const); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._enum); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._enum; - tsParseEnumDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - } - // falls through - case _types.TokenType._var: - case _types.TokenType._let: { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _statement.parseVarStatement.call(void 0, _base.state.type !== _types.TokenType._var); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - case _types.TokenType.name: { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - const contextualKeyword = _base.state.contextualKeyword; - let matched = false; - if (contextualKeyword === _keywords.ContextualKeyword._global) { - tsParseAmbientExternalModuleDeclaration(); - matched = true; - } else { - matched = tsParseDeclaration( - contextualKeyword, - /* isBeforeToken */ - true - ); - } - _index.popTypeContext.call(void 0, oldIsType); - return matched; - } - default: - return false; - } - } - function tsTryParseExportDeclaration() { - return tsParseDeclaration( - _base.state.contextualKeyword, - /* isBeforeToken */ - true - ); - } - function tsParseExpressionStatement(contextualKeyword) { - switch (contextualKeyword) { - case _keywords.ContextualKeyword._declare: { - const declareTokenIndex = _base.state.tokens.length - 1; - const matched = tsTryParseDeclare(); - if (matched) { - _base.state.tokens[declareTokenIndex].type = _types.TokenType._declare; - return true; - } - break; - } - case _keywords.ContextualKeyword._global: - if (_index.match.call(void 0, _types.TokenType.braceL)) { - tsParseModuleBlock(); - return true; - } - break; - default: - return tsParseDeclaration( - contextualKeyword, - /* isBeforeToken */ - false - ); - } - return false; - } - function tsParseDeclaration(contextualKeyword, isBeforeToken) { - switch (contextualKeyword) { - case _keywords.ContextualKeyword._abstract: - if (tsCheckLineTerminator(isBeforeToken) && _index.match.call(void 0, _types.TokenType._class)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._abstract; - _statement.parseClass.call( - void 0, - /* isStatement */ - true, - /* optionalId */ - false - ); - return true; - } - break; - case _keywords.ContextualKeyword._enum: - if (tsCheckLineTerminator(isBeforeToken) && _index.match.call(void 0, _types.TokenType.name)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._enum; - tsParseEnumDeclaration(); - return true; - } - break; - case _keywords.ContextualKeyword._interface: - if (tsCheckLineTerminator(isBeforeToken) && _index.match.call(void 0, _types.TokenType.name)) { - const oldIsType = _index.pushTypeContext.call(void 0, isBeforeToken ? 2 : 1); - tsParseInterfaceDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - break; - case _keywords.ContextualKeyword._module: - if (tsCheckLineTerminator(isBeforeToken)) { - if (_index.match.call(void 0, _types.TokenType.string)) { - const oldIsType = _index.pushTypeContext.call(void 0, isBeforeToken ? 2 : 1); - tsParseAmbientExternalModuleDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } else if (_index.match.call(void 0, _types.TokenType.name)) { - const oldIsType = _index.pushTypeContext.call(void 0, isBeforeToken ? 2 : 1); - tsParseModuleOrNamespaceDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - } - break; - case _keywords.ContextualKeyword._namespace: - if (tsCheckLineTerminator(isBeforeToken) && _index.match.call(void 0, _types.TokenType.name)) { - const oldIsType = _index.pushTypeContext.call(void 0, isBeforeToken ? 2 : 1); - tsParseModuleOrNamespaceDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - break; - case _keywords.ContextualKeyword._type: - if (tsCheckLineTerminator(isBeforeToken) && _index.match.call(void 0, _types.TokenType.name)) { - const oldIsType = _index.pushTypeContext.call(void 0, isBeforeToken ? 2 : 1); - tsParseTypeAliasDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - break; - default: - break; - } - return false; - } - function tsCheckLineTerminator(isBeforeToken) { - if (isBeforeToken) { - _index.next.call(void 0); - return true; - } else { - return !_util.isLineTerminator.call(void 0); - } - } - function tsTryParseGenericAsyncArrowFunction() { - const snapshot = _base.state.snapshot(); - tsParseTypeParameters(); - _statement.parseFunctionParams.call(void 0); - tsTryParseTypeOrTypePredicateAnnotation(); - _util.expect.call(void 0, _types.TokenType.arrow); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - _expression.parseFunctionBody.call(void 0, true); - return true; - } - function tsParseTypeArgumentsWithPossibleBitshift() { - if (_base.state.type === _types.TokenType.bitShiftL) { - _base.state.pos -= 1; - _index.finishToken.call(void 0, _types.TokenType.lessThan); - } - tsParseTypeArguments(); - } - function tsParseTypeArguments() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, _types.TokenType.lessThan); - while (!_index.match.call(void 0, _types.TokenType.greaterThan) && !_base.state.error) { - tsParseType(); - _index.eat.call(void 0, _types.TokenType.comma); - } - if (!oldIsType) { - _index.popTypeContext.call(void 0, oldIsType); - _index.rescan_gt.call(void 0); - _util.expect.call(void 0, _types.TokenType.greaterThan); - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - } else { - _util.expect.call(void 0, _types.TokenType.greaterThan); - _index.popTypeContext.call(void 0, oldIsType); - } - } - function tsIsDeclarationStart() { - if (_index.match.call(void 0, _types.TokenType.name)) { - switch (_base.state.contextualKeyword) { - case _keywords.ContextualKeyword._abstract: - case _keywords.ContextualKeyword._declare: - case _keywords.ContextualKeyword._enum: - case _keywords.ContextualKeyword._interface: - case _keywords.ContextualKeyword._module: - case _keywords.ContextualKeyword._namespace: - case _keywords.ContextualKeyword._type: - return true; - default: - break; - } - } - return false; - } - exports2.tsIsDeclarationStart = tsIsDeclarationStart; - function tsParseFunctionBodyAndFinish(functionStart, funcContextId) { - if (_index.match.call(void 0, _types.TokenType.colon)) { - tsParseTypeOrTypePredicateAnnotation(_types.TokenType.colon); - } - if (!_index.match.call(void 0, _types.TokenType.braceL) && _util.isLineTerminator.call(void 0)) { - let i4 = _base.state.tokens.length - 1; - while (i4 >= 0 && (_base.state.tokens[i4].start >= functionStart || _base.state.tokens[i4].type === _types.TokenType._default || _base.state.tokens[i4].type === _types.TokenType._export)) { - _base.state.tokens[i4].isType = true; - i4--; - } - return; - } - _expression.parseFunctionBody.call(void 0, false, funcContextId); - } - exports2.tsParseFunctionBodyAndFinish = tsParseFunctionBodyAndFinish; - function tsParseSubscript(startTokenIndex, noCalls, stopState) { - if (!_util.hasPrecedingLineBreak.call(void 0) && _index.eat.call(void 0, _types.TokenType.bang)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType.nonNullAssertion; - return; - } - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.bitShiftL)) { - const snapshot = _base.state.snapshot(); - if (!noCalls && _expression.atPossibleAsync.call(void 0)) { - const asyncArrowFn = tsTryParseGenericAsyncArrowFunction(); - if (asyncArrowFn) { - return; - } - } - tsParseTypeArgumentsWithPossibleBitshift(); - if (!noCalls && _index.eat.call(void 0, _types.TokenType.parenL)) { - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - _expression.parseCallExpressionArguments.call(void 0); - } else if (_index.match.call(void 0, _types.TokenType.backQuote)) { - _expression.parseTemplate.call(void 0); - } else if ( - // The remaining possible case is an instantiation expression, e.g. - // Array . Check for a few cases that would disqualify it and - // cause us to bail out. - // a>c is not (a)>c, but a<(b>>c) - _base.state.type === _types.TokenType.greaterThan || // ac is (ac - _base.state.type !== _types.TokenType.parenL && Boolean(_base.state.type & _types.TokenType.IS_EXPRESSION_START) && !_util.hasPrecedingLineBreak.call(void 0) - ) { - _util.unexpected.call(void 0); - } - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } else { - return; - } - } else if (!noCalls && _index.match.call(void 0, _types.TokenType.questionDot) && _index.lookaheadType.call(void 0) === _types.TokenType.lessThan) { - _index.next.call(void 0); - _base.state.tokens[startTokenIndex].isOptionalChainStart = true; - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - tsParseTypeArguments(); - _util.expect.call(void 0, _types.TokenType.parenL); - _expression.parseCallExpressionArguments.call(void 0); - } - _expression.baseParseSubscript.call(void 0, startTokenIndex, noCalls, stopState); - } - exports2.tsParseSubscript = tsParseSubscript; - function tsTryParseExport() { - if (_index.eat.call(void 0, _types.TokenType._import)) { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._type) && _index.lookaheadType.call(void 0) !== _types.TokenType.eq) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._type); - } - tsParseImportEqualsDeclaration(); - return true; - } else if (_index.eat.call(void 0, _types.TokenType.eq)) { - _expression.parseExpression.call(void 0); - _util.semicolon.call(void 0); - return true; - } else if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._as)) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._namespace); - _expression.parseIdentifier.call(void 0); - _util.semicolon.call(void 0); - return true; - } else { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._type)) { - const nextType = _index.lookaheadType.call(void 0); - if (nextType === _types.TokenType.braceL || nextType === _types.TokenType.star) { - _index.next.call(void 0); - } - } - return false; - } - } - exports2.tsTryParseExport = tsTryParseExport; - function tsParseImportSpecifier() { - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ImportDeclaration; - return; - } - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ImportDeclaration; - _base.state.tokens[_base.state.tokens.length - 2].isType = true; - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - return; - } - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 3].identifierRole = _index.IdentifierRole.ImportAccess; - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ImportDeclaration; - return; - } - _expression.parseIdentifier.call(void 0); - _base.state.tokens[_base.state.tokens.length - 3].identifierRole = _index.IdentifierRole.ImportAccess; - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ImportDeclaration; - _base.state.tokens[_base.state.tokens.length - 4].isType = true; - _base.state.tokens[_base.state.tokens.length - 3].isType = true; - _base.state.tokens[_base.state.tokens.length - 2].isType = true; - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - } - exports2.tsParseImportSpecifier = tsParseImportSpecifier; - function tsParseExportSpecifier() { - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ExportAccess; - return; - } - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index.IdentifierRole.ExportAccess; - _base.state.tokens[_base.state.tokens.length - 2].isType = true; - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - return; - } - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.braceR)) { - _base.state.tokens[_base.state.tokens.length - 3].identifierRole = _index.IdentifierRole.ExportAccess; - return; - } - _expression.parseIdentifier.call(void 0); - _base.state.tokens[_base.state.tokens.length - 3].identifierRole = _index.IdentifierRole.ExportAccess; - _base.state.tokens[_base.state.tokens.length - 4].isType = true; - _base.state.tokens[_base.state.tokens.length - 3].isType = true; - _base.state.tokens[_base.state.tokens.length - 2].isType = true; - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - } - exports2.tsParseExportSpecifier = tsParseExportSpecifier; - function tsTryParseExportDefaultExpression() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._abstract) && _index.lookaheadType.call(void 0) === _types.TokenType._class) { - _base.state.type = _types.TokenType._abstract; - _index.next.call(void 0); - _statement.parseClass.call(void 0, true, true); - return true; - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._interface)) { - const oldIsType = _index.pushTypeContext.call(void 0, 2); - tsParseDeclaration(_keywords.ContextualKeyword._interface, true); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } - return false; - } - exports2.tsTryParseExportDefaultExpression = tsTryParseExportDefaultExpression; - function tsTryParseStatementContent() { - if (_base.state.type === _types.TokenType._const) { - const ahead = _index.lookaheadTypeAndKeyword.call(void 0); - if (ahead.type === _types.TokenType.name && ahead.contextualKeyword === _keywords.ContextualKeyword._enum) { - _util.expect.call(void 0, _types.TokenType._const); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._enum); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._enum; - tsParseEnumDeclaration(); - return true; - } - } - return false; - } - exports2.tsTryParseStatementContent = tsTryParseStatementContent; - function tsTryParseClassMemberWithIsStatic(isStatic) { - const memberStartIndexAfterStatic = _base.state.tokens.length; - tsParseModifiers([ - _keywords.ContextualKeyword._abstract, - _keywords.ContextualKeyword._readonly, - _keywords.ContextualKeyword._declare, - _keywords.ContextualKeyword._static, - _keywords.ContextualKeyword._override - ]); - const modifiersEndIndex = _base.state.tokens.length; - const found = tsTryParseIndexSignature(); - if (found) { - const memberStartIndex = isStatic ? memberStartIndexAfterStatic - 1 : memberStartIndexAfterStatic; - for (let i4 = memberStartIndex; i4 < modifiersEndIndex; i4++) { - _base.state.tokens[i4].isType = true; - } - return true; - } - return false; - } - exports2.tsTryParseClassMemberWithIsStatic = tsTryParseClassMemberWithIsStatic; - function tsParseIdentifierStatement(contextualKeyword) { - const matched = tsParseExpressionStatement(contextualKeyword); - if (!matched) { - _util.semicolon.call(void 0); - } - } - exports2.tsParseIdentifierStatement = tsParseIdentifierStatement; - function tsParseExportDeclaration() { - const isDeclare = _util.eatContextual.call(void 0, _keywords.ContextualKeyword._declare); - if (isDeclare) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._declare; - } - let matchedDeclaration = false; - if (_index.match.call(void 0, _types.TokenType.name)) { - if (isDeclare) { - const oldIsType = _index.pushTypeContext.call(void 0, 2); - matchedDeclaration = tsTryParseExportDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - } else { - matchedDeclaration = tsTryParseExportDeclaration(); - } - } - if (!matchedDeclaration) { - if (isDeclare) { - const oldIsType = _index.pushTypeContext.call(void 0, 2); - _statement.parseStatement.call(void 0, true); - _index.popTypeContext.call(void 0, oldIsType); - } else { - _statement.parseStatement.call(void 0, true); - } - } - } - exports2.tsParseExportDeclaration = tsParseExportDeclaration; - function tsAfterParseClassSuper(hasSuper) { - if (hasSuper && (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.bitShiftL))) { - tsParseTypeArgumentsWithPossibleBitshift(); - } - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._implements)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._implements; - const oldIsType = _index.pushTypeContext.call(void 0, 1); - tsParseHeritageClause(); - _index.popTypeContext.call(void 0, oldIsType); - } - } - exports2.tsAfterParseClassSuper = tsAfterParseClassSuper; - function tsStartParseObjPropValue() { - tsTryParseTypeParameters(); - } - exports2.tsStartParseObjPropValue = tsStartParseObjPropValue; - function tsStartParseFunctionParams() { - tsTryParseTypeParameters(); - } - exports2.tsStartParseFunctionParams = tsStartParseFunctionParams; - function tsAfterParseVarHead() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - if (!_util.hasPrecedingLineBreak.call(void 0)) { - _index.eat.call(void 0, _types.TokenType.bang); - } - tsTryParseTypeAnnotation(); - _index.popTypeContext.call(void 0, oldIsType); - } - exports2.tsAfterParseVarHead = tsAfterParseVarHead; - function tsStartParseAsyncArrowFromCallExpression() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - tsParseTypeAnnotation(); - } - } - exports2.tsStartParseAsyncArrowFromCallExpression = tsStartParseAsyncArrowFromCallExpression; - function tsParseMaybeAssign(noIn, isWithinParens) { - if (_base.isJSXEnabled) { - return tsParseMaybeAssignWithJSX(noIn, isWithinParens); - } else { - return tsParseMaybeAssignWithoutJSX(noIn, isWithinParens); - } - } - exports2.tsParseMaybeAssign = tsParseMaybeAssign; - function tsParseMaybeAssignWithJSX(noIn, isWithinParens) { - if (!_index.match.call(void 0, _types.TokenType.lessThan)) { - return _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - } - const snapshot = _base.state.snapshot(); - let wasArrow = _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } else { - return wasArrow; - } - _base.state.type = _types.TokenType.typeParameterStart; - tsParseTypeParameters(); - wasArrow = _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - if (!wasArrow) { - _util.unexpected.call(void 0); - } - return wasArrow; - } - exports2.tsParseMaybeAssignWithJSX = tsParseMaybeAssignWithJSX; - function tsParseMaybeAssignWithoutJSX(noIn, isWithinParens) { - if (!_index.match.call(void 0, _types.TokenType.lessThan)) { - return _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - } - const snapshot = _base.state.snapshot(); - tsParseTypeParameters(); - const wasArrow = _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - if (!wasArrow) { - _util.unexpected.call(void 0); - } - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } else { - return wasArrow; - } - return _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - } - exports2.tsParseMaybeAssignWithoutJSX = tsParseMaybeAssignWithoutJSX; - function tsParseArrow() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - const snapshot = _base.state.snapshot(); - tsParseTypeOrTypePredicateAnnotation(_types.TokenType.colon); - if (_util.canInsertSemicolon.call(void 0)) _util.unexpected.call(void 0); - if (!_index.match.call(void 0, _types.TokenType.arrow)) _util.unexpected.call(void 0); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } - } - return _index.eat.call(void 0, _types.TokenType.arrow); - } - exports2.tsParseArrow = tsParseArrow; - function tsParseAssignableListItemTypes() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _index.eat.call(void 0, _types.TokenType.question); - tsTryParseTypeAnnotation(); - _index.popTypeContext.call(void 0, oldIsType); - } - exports2.tsParseAssignableListItemTypes = tsParseAssignableListItemTypes; - function tsParseMaybeDecoratorArguments() { - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.bitShiftL)) { - tsParseTypeArgumentsWithPossibleBitshift(); - } - _statement.baseParseMaybeDecoratorArguments.call(void 0); - } - exports2.tsParseMaybeDecoratorArguments = tsParseMaybeDecoratorArguments; - } -}); - -// node_modules/sucrase/dist/parser/plugins/jsx/index.js -var require_jsx = __commonJS({ - "node_modules/sucrase/dist/parser/plugins/jsx/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _types = require_types(); - var _base = require_base(); - var _expression = require_expression(); - var _util = require_util(); - var _charcodes = require_charcodes(); - var _identifier = require_identifier(); - var _typescript = require_typescript(); - function jsxReadToken() { - let sawNewline = false; - let sawNonWhitespace = false; - while (true) { - if (_base.state.pos >= _base.input.length) { - _util.unexpected.call(void 0, "Unterminated JSX contents"); - return; - } - const ch = _base.input.charCodeAt(_base.state.pos); - if (ch === _charcodes.charCodes.lessThan || ch === _charcodes.charCodes.leftCurlyBrace) { - if (_base.state.pos === _base.state.start) { - if (ch === _charcodes.charCodes.lessThan) { - _base.state.pos++; - _index.finishToken.call(void 0, _types.TokenType.jsxTagStart); - return; - } - _index.getTokenFromCode.call(void 0, ch); - return; - } - if (sawNewline && !sawNonWhitespace) { - _index.finishToken.call(void 0, _types.TokenType.jsxEmptyText); - } else { - _index.finishToken.call(void 0, _types.TokenType.jsxText); - } - return; - } - if (ch === _charcodes.charCodes.lineFeed) { - sawNewline = true; - } else if (ch !== _charcodes.charCodes.space && ch !== _charcodes.charCodes.carriageReturn && ch !== _charcodes.charCodes.tab) { - sawNonWhitespace = true; - } - _base.state.pos++; - } - } - function jsxReadString(quote) { - _base.state.pos++; - for (; ; ) { - if (_base.state.pos >= _base.input.length) { - _util.unexpected.call(void 0, "Unterminated string constant"); - return; - } - const ch = _base.input.charCodeAt(_base.state.pos); - if (ch === quote) { - _base.state.pos++; - break; - } - _base.state.pos++; - } - _index.finishToken.call(void 0, _types.TokenType.string); - } - function jsxReadWord() { - let ch; - do { - if (_base.state.pos > _base.input.length) { - _util.unexpected.call(void 0, "Unexpectedly reached the end of input."); - return; - } - ch = _base.input.charCodeAt(++_base.state.pos); - } while (_identifier.IS_IDENTIFIER_CHAR[ch] || ch === _charcodes.charCodes.dash); - _index.finishToken.call(void 0, _types.TokenType.jsxName); - } - function jsxParseIdentifier() { - nextJSXTagToken(); - } - function jsxParseNamespacedName(identifierRole) { - jsxParseIdentifier(); - if (!_index.eat.call(void 0, _types.TokenType.colon)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = identifierRole; - return; - } - jsxParseIdentifier(); - } - function jsxParseElementName() { - const firstTokenIndex = _base.state.tokens.length; - jsxParseNamespacedName(_index.IdentifierRole.Access); - let hadDot = false; - while (_index.match.call(void 0, _types.TokenType.dot)) { - hadDot = true; - nextJSXTagToken(); - jsxParseIdentifier(); - } - if (!hadDot) { - const firstToken = _base.state.tokens[firstTokenIndex]; - const firstChar = _base.input.charCodeAt(firstToken.start); - if (firstChar >= _charcodes.charCodes.lowercaseA && firstChar <= _charcodes.charCodes.lowercaseZ) { - firstToken.identifierRole = null; - } - } - } - function jsxParseAttributeValue() { - switch (_base.state.type) { - case _types.TokenType.braceL: - _index.next.call(void 0); - _expression.parseExpression.call(void 0); - nextJSXTagToken(); - return; - case _types.TokenType.jsxTagStart: - jsxParseElement(); - nextJSXTagToken(); - return; - case _types.TokenType.string: - nextJSXTagToken(); - return; - default: - _util.unexpected.call(void 0, "JSX value should be either an expression or a quoted JSX text"); - } - } - function jsxParseSpreadChild() { - _util.expect.call(void 0, _types.TokenType.ellipsis); - _expression.parseExpression.call(void 0); - } - function jsxParseOpeningElement(initialTokenIndex) { - if (_index.match.call(void 0, _types.TokenType.jsxTagEnd)) { - return false; - } - jsxParseElementName(); - if (_base.isTypeScriptEnabled) { - _typescript.tsTryParseJSXTypeArgument.call(void 0); - } - let hasSeenPropSpread = false; - while (!_index.match.call(void 0, _types.TokenType.slash) && !_index.match.call(void 0, _types.TokenType.jsxTagEnd) && !_base.state.error) { - if (_index.eat.call(void 0, _types.TokenType.braceL)) { - hasSeenPropSpread = true; - _util.expect.call(void 0, _types.TokenType.ellipsis); - _expression.parseMaybeAssign.call(void 0); - nextJSXTagToken(); - continue; - } - if (hasSeenPropSpread && _base.state.end - _base.state.start === 3 && _base.input.charCodeAt(_base.state.start) === _charcodes.charCodes.lowercaseK && _base.input.charCodeAt(_base.state.start + 1) === _charcodes.charCodes.lowercaseE && _base.input.charCodeAt(_base.state.start + 2) === _charcodes.charCodes.lowercaseY) { - _base.state.tokens[initialTokenIndex].jsxRole = _index.JSXRole.KeyAfterPropSpread; - } - jsxParseNamespacedName(_index.IdentifierRole.ObjectKey); - if (_index.match.call(void 0, _types.TokenType.eq)) { - nextJSXTagToken(); - jsxParseAttributeValue(); - } - } - const isSelfClosing = _index.match.call(void 0, _types.TokenType.slash); - if (isSelfClosing) { - nextJSXTagToken(); - } - return isSelfClosing; - } - function jsxParseClosingElement() { - if (_index.match.call(void 0, _types.TokenType.jsxTagEnd)) { - return; - } - jsxParseElementName(); - } - function jsxParseElementAt() { - const initialTokenIndex = _base.state.tokens.length - 1; - _base.state.tokens[initialTokenIndex].jsxRole = _index.JSXRole.NoChildren; - let numExplicitChildren = 0; - const isSelfClosing = jsxParseOpeningElement(initialTokenIndex); - if (!isSelfClosing) { - nextJSXExprToken(); - while (true) { - switch (_base.state.type) { - case _types.TokenType.jsxTagStart: - nextJSXTagToken(); - if (_index.match.call(void 0, _types.TokenType.slash)) { - nextJSXTagToken(); - jsxParseClosingElement(); - if (_base.state.tokens[initialTokenIndex].jsxRole !== _index.JSXRole.KeyAfterPropSpread) { - if (numExplicitChildren === 1) { - _base.state.tokens[initialTokenIndex].jsxRole = _index.JSXRole.OneChild; - } else if (numExplicitChildren > 1) { - _base.state.tokens[initialTokenIndex].jsxRole = _index.JSXRole.StaticChildren; - } - } - return; - } - numExplicitChildren++; - jsxParseElementAt(); - nextJSXExprToken(); - break; - case _types.TokenType.jsxText: - numExplicitChildren++; - nextJSXExprToken(); - break; - case _types.TokenType.jsxEmptyText: - nextJSXExprToken(); - break; - case _types.TokenType.braceL: - _index.next.call(void 0); - if (_index.match.call(void 0, _types.TokenType.ellipsis)) { - jsxParseSpreadChild(); - nextJSXExprToken(); - numExplicitChildren += 2; - } else { - if (!_index.match.call(void 0, _types.TokenType.braceR)) { - numExplicitChildren++; - _expression.parseExpression.call(void 0); - } - nextJSXExprToken(); - } - break; - // istanbul ignore next - should never happen - default: - _util.unexpected.call(void 0); - return; - } - } - } - } - function jsxParseElement() { - nextJSXTagToken(); - jsxParseElementAt(); - } - exports2.jsxParseElement = jsxParseElement; - function nextJSXTagToken() { - _base.state.tokens.push(new (0, _index.Token)()); - _index.skipSpace.call(void 0); - _base.state.start = _base.state.pos; - const code = _base.input.charCodeAt(_base.state.pos); - if (_identifier.IS_IDENTIFIER_START[code]) { - jsxReadWord(); - } else if (code === _charcodes.charCodes.quotationMark || code === _charcodes.charCodes.apostrophe) { - jsxReadString(code); - } else { - ++_base.state.pos; - switch (code) { - case _charcodes.charCodes.greaterThan: - _index.finishToken.call(void 0, _types.TokenType.jsxTagEnd); - break; - case _charcodes.charCodes.lessThan: - _index.finishToken.call(void 0, _types.TokenType.jsxTagStart); - break; - case _charcodes.charCodes.slash: - _index.finishToken.call(void 0, _types.TokenType.slash); - break; - case _charcodes.charCodes.equalsTo: - _index.finishToken.call(void 0, _types.TokenType.eq); - break; - case _charcodes.charCodes.leftCurlyBrace: - _index.finishToken.call(void 0, _types.TokenType.braceL); - break; - case _charcodes.charCodes.dot: - _index.finishToken.call(void 0, _types.TokenType.dot); - break; - case _charcodes.charCodes.colon: - _index.finishToken.call(void 0, _types.TokenType.colon); - break; - default: - _util.unexpected.call(void 0); - } - } - } - exports2.nextJSXTagToken = nextJSXTagToken; - function nextJSXExprToken() { - _base.state.tokens.push(new (0, _index.Token)()); - _base.state.start = _base.state.pos; - jsxReadToken(); - } - } -}); - -// node_modules/sucrase/dist/parser/plugins/types.js -var require_types3 = __commonJS({ - "node_modules/sucrase/dist/parser/plugins/types.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _types = require_types(); - var _base = require_base(); - var _expression = require_expression(); - var _flow = require_flow(); - var _typescript = require_typescript(); - function typedParseConditional(noIn) { - if (_index.match.call(void 0, _types.TokenType.question)) { - const nextType = _index.lookaheadType.call(void 0); - if (nextType === _types.TokenType.colon || nextType === _types.TokenType.comma || nextType === _types.TokenType.parenR) { - return; - } - } - _expression.baseParseConditional.call(void 0, noIn); - } - exports2.typedParseConditional = typedParseConditional; - function typedParseParenItem() { - _index.eatTypeToken.call(void 0, _types.TokenType.question); - if (_index.match.call(void 0, _types.TokenType.colon)) { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseTypeAnnotation.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowParseTypeAnnotation.call(void 0); - } - } - } - exports2.typedParseParenItem = typedParseParenItem; - } -}); - -// node_modules/sucrase/dist/parser/traverser/expression.js -var require_expression = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/expression.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _flow = require_flow(); - var _index = require_jsx(); - var _types = require_types3(); - var _typescript = require_typescript(); - var _index3 = require_tokenizer(); - var _keywords = require_keywords(); - var _state = require_state(); - var _types3 = require_types(); - var _charcodes = require_charcodes(); - var _identifier = require_identifier(); - var _base = require_base(); - var _lval = require_lval(); - var _statement = require_statement(); - var _util = require_util(); - var StopState = class { - constructor(stop) { - this.stop = stop; - } - }; - exports2.StopState = StopState; - function parseExpression(noIn = false) { - parseMaybeAssign(noIn); - if (_index3.match.call(void 0, _types3.TokenType.comma)) { - while (_index3.eat.call(void 0, _types3.TokenType.comma)) { - parseMaybeAssign(noIn); - } - } - } - exports2.parseExpression = parseExpression; - function parseMaybeAssign(noIn = false, isWithinParens = false) { - if (_base.isTypeScriptEnabled) { - return _typescript.tsParseMaybeAssign.call(void 0, noIn, isWithinParens); - } else if (_base.isFlowEnabled) { - return _flow.flowParseMaybeAssign.call(void 0, noIn, isWithinParens); - } else { - return baseParseMaybeAssign(noIn, isWithinParens); - } - } - exports2.parseMaybeAssign = parseMaybeAssign; - function baseParseMaybeAssign(noIn, isWithinParens) { - if (_index3.match.call(void 0, _types3.TokenType._yield)) { - parseYield(); - return false; - } - if (_index3.match.call(void 0, _types3.TokenType.parenL) || _index3.match.call(void 0, _types3.TokenType.name) || _index3.match.call(void 0, _types3.TokenType._yield)) { - _base.state.potentialArrowAt = _base.state.start; - } - const wasArrow = parseMaybeConditional(noIn); - if (isWithinParens) { - parseParenItem(); - } - if (_base.state.type & _types3.TokenType.IS_ASSIGN) { - _index3.next.call(void 0); - parseMaybeAssign(noIn); - return false; - } - return wasArrow; - } - exports2.baseParseMaybeAssign = baseParseMaybeAssign; - function parseMaybeConditional(noIn) { - const wasArrow = parseExprOps(noIn); - if (wasArrow) { - return true; - } - parseConditional(noIn); - return false; - } - function parseConditional(noIn) { - if (_base.isTypeScriptEnabled || _base.isFlowEnabled) { - _types.typedParseConditional.call(void 0, noIn); - } else { - baseParseConditional(noIn); - } - } - function baseParseConditional(noIn) { - if (_index3.eat.call(void 0, _types3.TokenType.question)) { - parseMaybeAssign(); - _util.expect.call(void 0, _types3.TokenType.colon); - parseMaybeAssign(noIn); - } - } - exports2.baseParseConditional = baseParseConditional; - function parseExprOps(noIn) { - const startTokenIndex = _base.state.tokens.length; - const wasArrow = parseMaybeUnary(); - if (wasArrow) { - return true; - } - parseExprOp(startTokenIndex, -1, noIn); - return false; - } - function parseExprOp(startTokenIndex, minPrec, noIn) { - if (_base.isTypeScriptEnabled && (_types3.TokenType._in & _types3.TokenType.PRECEDENCE_MASK) > minPrec && !_util.hasPrecedingLineBreak.call(void 0) && (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._as) || _util.eatContextual.call(void 0, _keywords.ContextualKeyword._satisfies))) { - const oldIsType = _index3.pushTypeContext.call(void 0, 1); - _typescript.tsParseType.call(void 0); - _index3.popTypeContext.call(void 0, oldIsType); - _index3.rescan_gt.call(void 0); - parseExprOp(startTokenIndex, minPrec, noIn); - return; - } - const prec = _base.state.type & _types3.TokenType.PRECEDENCE_MASK; - if (prec > 0 && (!noIn || !_index3.match.call(void 0, _types3.TokenType._in))) { - if (prec > minPrec) { - const op = _base.state.type; - _index3.next.call(void 0); - if (op === _types3.TokenType.nullishCoalescing) { - _base.state.tokens[_base.state.tokens.length - 1].nullishStartIndex = startTokenIndex; - } - const rhsStartTokenIndex = _base.state.tokens.length; - parseMaybeUnary(); - parseExprOp(rhsStartTokenIndex, op & _types3.TokenType.IS_RIGHT_ASSOCIATIVE ? prec - 1 : prec, noIn); - if (op === _types3.TokenType.nullishCoalescing) { - _base.state.tokens[startTokenIndex].numNullishCoalesceStarts++; - _base.state.tokens[_base.state.tokens.length - 1].numNullishCoalesceEnds++; - } - parseExprOp(startTokenIndex, minPrec, noIn); - } - } - } - function parseMaybeUnary() { - if (_base.isTypeScriptEnabled && !_base.isJSXEnabled && _index3.eat.call(void 0, _types3.TokenType.lessThan)) { - _typescript.tsParseTypeAssertion.call(void 0); - return false; - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._module) && _index3.lookaheadCharCode.call(void 0) === _charcodes.charCodes.leftCurlyBrace && !_util.hasFollowingLineBreak.call(void 0)) { - parseModuleExpression(); - return false; - } - if (_base.state.type & _types3.TokenType.IS_PREFIX) { - _index3.next.call(void 0); - parseMaybeUnary(); - return false; - } - const wasArrow = parseExprSubscripts(); - if (wasArrow) { - return true; - } - while (_base.state.type & _types3.TokenType.IS_POSTFIX && !_util.canInsertSemicolon.call(void 0)) { - if (_base.state.type === _types3.TokenType.preIncDec) { - _base.state.type = _types3.TokenType.postIncDec; - } - _index3.next.call(void 0); - } - return false; - } - exports2.parseMaybeUnary = parseMaybeUnary; - function parseExprSubscripts() { - const startTokenIndex = _base.state.tokens.length; - const wasArrow = parseExprAtom(); - if (wasArrow) { - return true; - } - parseSubscripts(startTokenIndex); - if (_base.state.tokens.length > startTokenIndex && _base.state.tokens[startTokenIndex].isOptionalChainStart) { - _base.state.tokens[_base.state.tokens.length - 1].isOptionalChainEnd = true; - } - return false; - } - exports2.parseExprSubscripts = parseExprSubscripts; - function parseSubscripts(startTokenIndex, noCalls = false) { - if (_base.isFlowEnabled) { - _flow.flowParseSubscripts.call(void 0, startTokenIndex, noCalls); - } else { - baseParseSubscripts(startTokenIndex, noCalls); - } - } - function baseParseSubscripts(startTokenIndex, noCalls = false) { - const stopState = new StopState(false); - do { - parseSubscript(startTokenIndex, noCalls, stopState); - } while (!stopState.stop && !_base.state.error); - } - exports2.baseParseSubscripts = baseParseSubscripts; - function parseSubscript(startTokenIndex, noCalls, stopState) { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseSubscript.call(void 0, startTokenIndex, noCalls, stopState); - } else if (_base.isFlowEnabled) { - _flow.flowParseSubscript.call(void 0, startTokenIndex, noCalls, stopState); - } else { - baseParseSubscript(startTokenIndex, noCalls, stopState); - } - } - function baseParseSubscript(startTokenIndex, noCalls, stopState) { - if (!noCalls && _index3.eat.call(void 0, _types3.TokenType.doubleColon)) { - parseNoCallExpr(); - stopState.stop = true; - parseSubscripts(startTokenIndex, noCalls); - } else if (_index3.match.call(void 0, _types3.TokenType.questionDot)) { - _base.state.tokens[startTokenIndex].isOptionalChainStart = true; - if (noCalls && _index3.lookaheadType.call(void 0) === _types3.TokenType.parenL) { - stopState.stop = true; - return; - } - _index3.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - if (_index3.eat.call(void 0, _types3.TokenType.bracketL)) { - parseExpression(); - _util.expect.call(void 0, _types3.TokenType.bracketR); - } else if (_index3.eat.call(void 0, _types3.TokenType.parenL)) { - parseCallExpressionArguments(); - } else { - parseMaybePrivateName(); - } - } else if (_index3.eat.call(void 0, _types3.TokenType.dot)) { - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - parseMaybePrivateName(); - } else if (_index3.eat.call(void 0, _types3.TokenType.bracketL)) { - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - parseExpression(); - _util.expect.call(void 0, _types3.TokenType.bracketR); - } else if (!noCalls && _index3.match.call(void 0, _types3.TokenType.parenL)) { - if (atPossibleAsync()) { - const snapshot = _base.state.snapshot(); - const asyncStartTokenIndex = _base.state.tokens.length; - _index3.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - const callContextId = _base.getNextContextId.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].contextId = callContextId; - parseCallExpressionArguments(); - _base.state.tokens[_base.state.tokens.length - 1].contextId = callContextId; - if (shouldParseAsyncArrow()) { - _base.state.restoreFromSnapshot(snapshot); - stopState.stop = true; - _base.state.scopeDepth++; - _statement.parseFunctionParams.call(void 0); - parseAsyncArrowFromCallExpression(asyncStartTokenIndex); - } - } else { - _index3.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].subscriptStartIndex = startTokenIndex; - const callContextId = _base.getNextContextId.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].contextId = callContextId; - parseCallExpressionArguments(); - _base.state.tokens[_base.state.tokens.length - 1].contextId = callContextId; - } - } else if (_index3.match.call(void 0, _types3.TokenType.backQuote)) { - parseTemplate(); - } else { - stopState.stop = true; - } - } - exports2.baseParseSubscript = baseParseSubscript; - function atPossibleAsync() { - return _base.state.tokens[_base.state.tokens.length - 1].contextualKeyword === _keywords.ContextualKeyword._async && !_util.canInsertSemicolon.call(void 0); - } - exports2.atPossibleAsync = atPossibleAsync; - function parseCallExpressionArguments() { - let first = true; - while (!_index3.eat.call(void 0, _types3.TokenType.parenR) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types3.TokenType.comma); - if (_index3.eat.call(void 0, _types3.TokenType.parenR)) { - break; - } - } - parseExprListItem(false); - } - } - exports2.parseCallExpressionArguments = parseCallExpressionArguments; - function shouldParseAsyncArrow() { - return _index3.match.call(void 0, _types3.TokenType.colon) || _index3.match.call(void 0, _types3.TokenType.arrow); - } - function parseAsyncArrowFromCallExpression(startTokenIndex) { - if (_base.isTypeScriptEnabled) { - _typescript.tsStartParseAsyncArrowFromCallExpression.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowStartParseAsyncArrowFromCallExpression.call(void 0); - } - _util.expect.call(void 0, _types3.TokenType.arrow); - parseArrowExpression(startTokenIndex); - } - function parseNoCallExpr() { - const startTokenIndex = _base.state.tokens.length; - parseExprAtom(); - parseSubscripts(startTokenIndex, true); - } - function parseExprAtom() { - if (_index3.eat.call(void 0, _types3.TokenType.modulo)) { - parseIdentifier(); - return false; - } - if (_index3.match.call(void 0, _types3.TokenType.jsxText) || _index3.match.call(void 0, _types3.TokenType.jsxEmptyText)) { - parseLiteral(); - return false; - } else if (_index3.match.call(void 0, _types3.TokenType.lessThan) && _base.isJSXEnabled) { - _base.state.type = _types3.TokenType.jsxTagStart; - _index.jsxParseElement.call(void 0); - _index3.next.call(void 0); - return false; - } - const canBeArrow = _base.state.potentialArrowAt === _base.state.start; - switch (_base.state.type) { - case _types3.TokenType.slash: - case _types3.TokenType.assign: - _index3.retokenizeSlashAsRegex.call(void 0); - // Fall through. - case _types3.TokenType._super: - case _types3.TokenType._this: - case _types3.TokenType.regexp: - case _types3.TokenType.num: - case _types3.TokenType.bigint: - case _types3.TokenType.decimal: - case _types3.TokenType.string: - case _types3.TokenType._null: - case _types3.TokenType._true: - case _types3.TokenType._false: - _index3.next.call(void 0); - return false; - case _types3.TokenType._import: - _index3.next.call(void 0); - if (_index3.match.call(void 0, _types3.TokenType.dot)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types3.TokenType.name; - _index3.next.call(void 0); - parseIdentifier(); - } - return false; - case _types3.TokenType.name: { - const startTokenIndex = _base.state.tokens.length; - const functionStart = _base.state.start; - const contextualKeyword = _base.state.contextualKeyword; - parseIdentifier(); - if (contextualKeyword === _keywords.ContextualKeyword._await) { - parseAwait(); - return false; - } else if (contextualKeyword === _keywords.ContextualKeyword._async && _index3.match.call(void 0, _types3.TokenType._function) && !_util.canInsertSemicolon.call(void 0)) { - _index3.next.call(void 0); - _statement.parseFunction.call(void 0, functionStart, false); - return false; - } else if (canBeArrow && contextualKeyword === _keywords.ContextualKeyword._async && !_util.canInsertSemicolon.call(void 0) && _index3.match.call(void 0, _types3.TokenType.name)) { - _base.state.scopeDepth++; - _lval.parseBindingIdentifier.call(void 0, false); - _util.expect.call(void 0, _types3.TokenType.arrow); - parseArrowExpression(startTokenIndex); - return true; - } else if (_index3.match.call(void 0, _types3.TokenType._do) && !_util.canInsertSemicolon.call(void 0)) { - _index3.next.call(void 0); - _statement.parseBlock.call(void 0); - return false; - } - if (canBeArrow && !_util.canInsertSemicolon.call(void 0) && _index3.match.call(void 0, _types3.TokenType.arrow)) { - _base.state.scopeDepth++; - _lval.markPriorBindingIdentifier.call(void 0, false); - _util.expect.call(void 0, _types3.TokenType.arrow); - parseArrowExpression(startTokenIndex); - return true; - } - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index3.IdentifierRole.Access; - return false; - } - case _types3.TokenType._do: { - _index3.next.call(void 0); - _statement.parseBlock.call(void 0); - return false; - } - case _types3.TokenType.parenL: { - const wasArrow = parseParenAndDistinguishExpression(canBeArrow); - return wasArrow; - } - case _types3.TokenType.bracketL: - _index3.next.call(void 0); - parseExprList(_types3.TokenType.bracketR, true); - return false; - case _types3.TokenType.braceL: - parseObj(false, false); - return false; - case _types3.TokenType._function: - parseFunctionExpression(); - return false; - case _types3.TokenType.at: - _statement.parseDecorators.call(void 0); - // Fall through. - case _types3.TokenType._class: - _statement.parseClass.call(void 0, false); - return false; - case _types3.TokenType._new: - parseNew(); - return false; - case _types3.TokenType.backQuote: - parseTemplate(); - return false; - case _types3.TokenType.doubleColon: { - _index3.next.call(void 0); - parseNoCallExpr(); - return false; - } - case _types3.TokenType.hash: { - const code = _index3.lookaheadCharCode.call(void 0); - if (_identifier.IS_IDENTIFIER_START[code] || code === _charcodes.charCodes.backslash) { - parseMaybePrivateName(); - } else { - _index3.next.call(void 0); - } - return false; - } - default: - _util.unexpected.call(void 0); - return false; - } - } - exports2.parseExprAtom = parseExprAtom; - function parseMaybePrivateName() { - _index3.eat.call(void 0, _types3.TokenType.hash); - parseIdentifier(); - } - function parseFunctionExpression() { - const functionStart = _base.state.start; - parseIdentifier(); - if (_index3.eat.call(void 0, _types3.TokenType.dot)) { - parseIdentifier(); - } - _statement.parseFunction.call(void 0, functionStart, false); - } - function parseLiteral() { - _index3.next.call(void 0); - } - exports2.parseLiteral = parseLiteral; - function parseParenExpression() { - _util.expect.call(void 0, _types3.TokenType.parenL); - parseExpression(); - _util.expect.call(void 0, _types3.TokenType.parenR); - } - exports2.parseParenExpression = parseParenExpression; - function parseParenAndDistinguishExpression(canBeArrow) { - const snapshot = _base.state.snapshot(); - const startTokenIndex = _base.state.tokens.length; - _util.expect.call(void 0, _types3.TokenType.parenL); - let first = true; - while (!_index3.match.call(void 0, _types3.TokenType.parenR) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types3.TokenType.comma); - if (_index3.match.call(void 0, _types3.TokenType.parenR)) { - break; - } - } - if (_index3.match.call(void 0, _types3.TokenType.ellipsis)) { - _lval.parseRest.call( - void 0, - false - /* isBlockScope */ - ); - parseParenItem(); - break; - } else { - parseMaybeAssign(false, true); - } - } - _util.expect.call(void 0, _types3.TokenType.parenR); - if (canBeArrow && shouldParseArrow()) { - const wasArrow = parseArrow(); - if (wasArrow) { - _base.state.restoreFromSnapshot(snapshot); - _base.state.scopeDepth++; - _statement.parseFunctionParams.call(void 0); - parseArrow(); - parseArrowExpression(startTokenIndex); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - parseParenAndDistinguishExpression(false); - return false; - } - return true; - } - } - return false; - } - function shouldParseArrow() { - return _index3.match.call(void 0, _types3.TokenType.colon) || !_util.canInsertSemicolon.call(void 0); - } - function parseArrow() { - if (_base.isTypeScriptEnabled) { - return _typescript.tsParseArrow.call(void 0); - } else if (_base.isFlowEnabled) { - return _flow.flowParseArrow.call(void 0); - } else { - return _index3.eat.call(void 0, _types3.TokenType.arrow); - } - } - exports2.parseArrow = parseArrow; - function parseParenItem() { - if (_base.isTypeScriptEnabled || _base.isFlowEnabled) { - _types.typedParseParenItem.call(void 0); - } - } - function parseNew() { - _util.expect.call(void 0, _types3.TokenType._new); - if (_index3.eat.call(void 0, _types3.TokenType.dot)) { - parseIdentifier(); - return; - } - parseNewCallee(); - if (_base.isFlowEnabled) { - _flow.flowStartParseNewArguments.call(void 0); - } - if (_index3.eat.call(void 0, _types3.TokenType.parenL)) { - parseExprList(_types3.TokenType.parenR); - } - } - function parseNewCallee() { - parseNoCallExpr(); - _index3.eat.call(void 0, _types3.TokenType.questionDot); - } - function parseTemplate() { - _index3.nextTemplateToken.call(void 0); - _index3.nextTemplateToken.call(void 0); - while (!_index3.match.call(void 0, _types3.TokenType.backQuote) && !_base.state.error) { - _util.expect.call(void 0, _types3.TokenType.dollarBraceL); - parseExpression(); - _index3.nextTemplateToken.call(void 0); - _index3.nextTemplateToken.call(void 0); - } - _index3.next.call(void 0); - } - exports2.parseTemplate = parseTemplate; - function parseObj(isPattern, isBlockScope) { - const contextId = _base.getNextContextId.call(void 0); - let first = true; - _index3.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - while (!_index3.eat.call(void 0, _types3.TokenType.braceR) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types3.TokenType.comma); - if (_index3.eat.call(void 0, _types3.TokenType.braceR)) { - break; - } - } - let isGenerator = false; - if (_index3.match.call(void 0, _types3.TokenType.ellipsis)) { - const previousIndex = _base.state.tokens.length; - _lval.parseSpread.call(void 0); - if (isPattern) { - if (_base.state.tokens.length === previousIndex + 2) { - _lval.markPriorBindingIdentifier.call(void 0, isBlockScope); - } - if (_index3.eat.call(void 0, _types3.TokenType.braceR)) { - break; - } - } - continue; - } - if (!isPattern) { - isGenerator = _index3.eat.call(void 0, _types3.TokenType.star); - } - if (!isPattern && _util.isContextual.call(void 0, _keywords.ContextualKeyword._async)) { - if (isGenerator) _util.unexpected.call(void 0); - parseIdentifier(); - if (_index3.match.call(void 0, _types3.TokenType.colon) || _index3.match.call(void 0, _types3.TokenType.parenL) || _index3.match.call(void 0, _types3.TokenType.braceR) || _index3.match.call(void 0, _types3.TokenType.eq) || _index3.match.call(void 0, _types3.TokenType.comma)) { - } else { - if (_index3.match.call(void 0, _types3.TokenType.star)) { - _index3.next.call(void 0); - isGenerator = true; - } - parsePropertyName(contextId); - } - } else { - parsePropertyName(contextId); - } - parseObjPropValue(isPattern, isBlockScope, contextId); - } - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - } - exports2.parseObj = parseObj; - function isGetterOrSetterMethod(isPattern) { - return !isPattern && (_index3.match.call(void 0, _types3.TokenType.string) || // get "string"() {} - _index3.match.call(void 0, _types3.TokenType.num) || // get 1() {} - _index3.match.call(void 0, _types3.TokenType.bracketL) || // get ["string"]() {} - _index3.match.call(void 0, _types3.TokenType.name) || // get foo() {} - !!(_base.state.type & _types3.TokenType.IS_KEYWORD)); - } - function parseObjectMethod(isPattern, objectContextId) { - const functionStart = _base.state.start; - if (_index3.match.call(void 0, _types3.TokenType.parenL)) { - if (isPattern) _util.unexpected.call(void 0); - parseMethod( - functionStart, - /* isConstructor */ - false - ); - return true; - } - if (isGetterOrSetterMethod(isPattern)) { - parsePropertyName(objectContextId); - parseMethod( - functionStart, - /* isConstructor */ - false - ); - return true; - } - return false; - } - function parseObjectProperty(isPattern, isBlockScope) { - if (_index3.eat.call(void 0, _types3.TokenType.colon)) { - if (isPattern) { - _lval.parseMaybeDefault.call(void 0, isBlockScope); - } else { - parseMaybeAssign(false); - } - return; - } - let identifierRole; - if (isPattern) { - if (_base.state.scopeDepth === 0) { - identifierRole = _index3.IdentifierRole.ObjectShorthandTopLevelDeclaration; - } else if (isBlockScope) { - identifierRole = _index3.IdentifierRole.ObjectShorthandBlockScopedDeclaration; - } else { - identifierRole = _index3.IdentifierRole.ObjectShorthandFunctionScopedDeclaration; - } - } else { - identifierRole = _index3.IdentifierRole.ObjectShorthand; - } - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = identifierRole; - _lval.parseMaybeDefault.call(void 0, isBlockScope, true); - } - function parseObjPropValue(isPattern, isBlockScope, objectContextId) { - if (_base.isTypeScriptEnabled) { - _typescript.tsStartParseObjPropValue.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowStartParseObjPropValue.call(void 0); - } - const wasMethod = parseObjectMethod(isPattern, objectContextId); - if (!wasMethod) { - parseObjectProperty(isPattern, isBlockScope); - } - } - function parsePropertyName(objectContextId) { - if (_base.isFlowEnabled) { - _flow.flowParseVariance.call(void 0); - } - if (_index3.eat.call(void 0, _types3.TokenType.bracketL)) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = objectContextId; - parseMaybeAssign(); - _util.expect.call(void 0, _types3.TokenType.bracketR); - _base.state.tokens[_base.state.tokens.length - 1].contextId = objectContextId; - } else { - if (_index3.match.call(void 0, _types3.TokenType.num) || _index3.match.call(void 0, _types3.TokenType.string) || _index3.match.call(void 0, _types3.TokenType.bigint) || _index3.match.call(void 0, _types3.TokenType.decimal)) { - parseExprAtom(); - } else { - parseMaybePrivateName(); - } - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _index3.IdentifierRole.ObjectKey; - _base.state.tokens[_base.state.tokens.length - 1].contextId = objectContextId; - } - } - exports2.parsePropertyName = parsePropertyName; - function parseMethod(functionStart, isConstructor) { - const funcContextId = _base.getNextContextId.call(void 0); - _base.state.scopeDepth++; - const startTokenIndex = _base.state.tokens.length; - const allowModifiers = isConstructor; - _statement.parseFunctionParams.call(void 0, allowModifiers, funcContextId); - parseFunctionBodyAndFinish(functionStart, funcContextId); - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, true)); - _base.state.scopeDepth--; - } - exports2.parseMethod = parseMethod; - function parseArrowExpression(startTokenIndex) { - parseFunctionBody(true); - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, true)); - _base.state.scopeDepth--; - } - exports2.parseArrowExpression = parseArrowExpression; - function parseFunctionBodyAndFinish(functionStart, funcContextId = 0) { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseFunctionBodyAndFinish.call(void 0, functionStart, funcContextId); - } else if (_base.isFlowEnabled) { - _flow.flowParseFunctionBodyAndFinish.call(void 0, funcContextId); - } else { - parseFunctionBody(false, funcContextId); - } - } - exports2.parseFunctionBodyAndFinish = parseFunctionBodyAndFinish; - function parseFunctionBody(allowExpression, funcContextId = 0) { - const isExpression = allowExpression && !_index3.match.call(void 0, _types3.TokenType.braceL); - if (isExpression) { - parseMaybeAssign(); - } else { - _statement.parseBlock.call(void 0, true, funcContextId); - } - } - exports2.parseFunctionBody = parseFunctionBody; - function parseExprList(close, allowEmpty = false) { - let first = true; - while (!_index3.eat.call(void 0, close) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types3.TokenType.comma); - if (_index3.eat.call(void 0, close)) break; - } - parseExprListItem(allowEmpty); - } - } - function parseExprListItem(allowEmpty) { - if (allowEmpty && _index3.match.call(void 0, _types3.TokenType.comma)) { - } else if (_index3.match.call(void 0, _types3.TokenType.ellipsis)) { - _lval.parseSpread.call(void 0); - parseParenItem(); - } else if (_index3.match.call(void 0, _types3.TokenType.question)) { - _index3.next.call(void 0); - } else { - parseMaybeAssign(false, true); - } - } - function parseIdentifier() { - _index3.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].type = _types3.TokenType.name; - } - exports2.parseIdentifier = parseIdentifier; - function parseAwait() { - parseMaybeUnary(); - } - function parseYield() { - _index3.next.call(void 0); - if (!_index3.match.call(void 0, _types3.TokenType.semi) && !_util.canInsertSemicolon.call(void 0)) { - _index3.eat.call(void 0, _types3.TokenType.star); - parseMaybeAssign(); - } - } - function parseModuleExpression() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._module); - _util.expect.call(void 0, _types3.TokenType.braceL); - _statement.parseBlockBody.call(void 0, _types3.TokenType.braceR); - } - } -}); - -// node_modules/sucrase/dist/parser/plugins/flow.js -var require_flow = __commonJS({ - "node_modules/sucrase/dist/parser/plugins/flow.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _keywords = require_keywords(); - var _types = require_types(); - var _base = require_base(); - var _expression = require_expression(); - var _statement = require_statement(); - var _util = require_util(); - function isMaybeDefaultImport(lookahead) { - return (lookahead.type === _types.TokenType.name || !!(lookahead.type & _types.TokenType.IS_KEYWORD)) && lookahead.contextualKeyword !== _keywords.ContextualKeyword._from; - } - function flowParseTypeInitialiser(tok) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, tok || _types.TokenType.colon); - flowParseType(); - _index.popTypeContext.call(void 0, oldIsType); - } - function flowParsePredicate() { - _util.expect.call(void 0, _types.TokenType.modulo); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._checks); - if (_index.eat.call(void 0, _types.TokenType.parenL)) { - _expression.parseExpression.call(void 0); - _util.expect.call(void 0, _types.TokenType.parenR); - } - } - function flowParseTypeAndPredicateInitialiser() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, _types.TokenType.colon); - if (_index.match.call(void 0, _types.TokenType.modulo)) { - flowParsePredicate(); - } else { - flowParseType(); - if (_index.match.call(void 0, _types.TokenType.modulo)) { - flowParsePredicate(); - } - } - _index.popTypeContext.call(void 0, oldIsType); - } - function flowParseDeclareClass() { - _index.next.call(void 0); - flowParseInterfaceish( - /* isClass */ - true - ); - } - function flowParseDeclareFunction() { - _index.next.call(void 0); - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - } - _util.expect.call(void 0, _types.TokenType.parenL); - flowParseFunctionTypeParams(); - _util.expect.call(void 0, _types.TokenType.parenR); - flowParseTypeAndPredicateInitialiser(); - _util.semicolon.call(void 0); - } - function flowParseDeclare() { - if (_index.match.call(void 0, _types.TokenType._class)) { - flowParseDeclareClass(); - } else if (_index.match.call(void 0, _types.TokenType._function)) { - flowParseDeclareFunction(); - } else if (_index.match.call(void 0, _types.TokenType._var)) { - flowParseDeclareVariable(); - } else if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._module)) { - if (_index.eat.call(void 0, _types.TokenType.dot)) { - flowParseDeclareModuleExports(); - } else { - flowParseDeclareModule(); - } - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._type)) { - flowParseDeclareTypeAlias(); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._opaque)) { - flowParseDeclareOpaqueType(); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._interface)) { - flowParseDeclareInterface(); - } else if (_index.match.call(void 0, _types.TokenType._export)) { - flowParseDeclareExportDeclaration(); - } else { - _util.unexpected.call(void 0); - } - } - function flowParseDeclareVariable() { - _index.next.call(void 0); - flowParseTypeAnnotatableIdentifier(); - _util.semicolon.call(void 0); - } - function flowParseDeclareModule() { - if (_index.match.call(void 0, _types.TokenType.string)) { - _expression.parseExprAtom.call(void 0); - } else { - _expression.parseIdentifier.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_index.match.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (_index.match.call(void 0, _types.TokenType._import)) { - _index.next.call(void 0); - _statement.parseImport.call(void 0); - } else { - _util.unexpected.call(void 0); - } - } - _util.expect.call(void 0, _types.TokenType.braceR); - } - function flowParseDeclareExportDeclaration() { - _util.expect.call(void 0, _types.TokenType._export); - if (_index.eat.call(void 0, _types.TokenType._default)) { - if (_index.match.call(void 0, _types.TokenType._function) || _index.match.call(void 0, _types.TokenType._class)) { - flowParseDeclare(); - } else { - flowParseType(); - _util.semicolon.call(void 0); - } - } else if (_index.match.call(void 0, _types.TokenType._var) || // declare export var ... - _index.match.call(void 0, _types.TokenType._function) || // declare export function ... - _index.match.call(void 0, _types.TokenType._class) || // declare export class ... - _util.isContextual.call(void 0, _keywords.ContextualKeyword._opaque)) { - flowParseDeclare(); - } else if (_index.match.call(void 0, _types.TokenType.star) || // declare export * from '' - _index.match.call(void 0, _types.TokenType.braceL) || // declare export {} ... - _util.isContextual.call(void 0, _keywords.ContextualKeyword._interface) || // declare export interface ... - _util.isContextual.call(void 0, _keywords.ContextualKeyword._type) || // declare export type ... - _util.isContextual.call(void 0, _keywords.ContextualKeyword._opaque)) { - _statement.parseExport.call(void 0); - } else { - _util.unexpected.call(void 0); - } - } - function flowParseDeclareModuleExports() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._exports); - flowParseTypeAnnotation(); - _util.semicolon.call(void 0); - } - function flowParseDeclareTypeAlias() { - _index.next.call(void 0); - flowParseTypeAlias(); - } - function flowParseDeclareOpaqueType() { - _index.next.call(void 0); - flowParseOpaqueType(true); - } - function flowParseDeclareInterface() { - _index.next.call(void 0); - flowParseInterfaceish(); - } - function flowParseInterfaceish(isClass = false) { - flowParseRestrictedIdentifier(); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - } - if (_index.eat.call(void 0, _types.TokenType._extends)) { - do { - flowParseInterfaceExtends(); - } while (!isClass && _index.eat.call(void 0, _types.TokenType.comma)); - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._mixins)) { - _index.next.call(void 0); - do { - flowParseInterfaceExtends(); - } while (_index.eat.call(void 0, _types.TokenType.comma)); - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._implements)) { - _index.next.call(void 0); - do { - flowParseInterfaceExtends(); - } while (_index.eat.call(void 0, _types.TokenType.comma)); - } - flowParseObjectType(isClass, false, isClass); - } - function flowParseInterfaceExtends() { - flowParseQualifiedTypeIdentifier(false); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterInstantiation(); - } - } - function flowParseInterface() { - flowParseInterfaceish(); - } - function flowParseRestrictedIdentifier() { - _expression.parseIdentifier.call(void 0); - } - function flowParseTypeAlias() { - flowParseRestrictedIdentifier(); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - } - flowParseTypeInitialiser(_types.TokenType.eq); - _util.semicolon.call(void 0); - } - function flowParseOpaqueType(declare) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._type); - flowParseRestrictedIdentifier(); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - } - if (_index.match.call(void 0, _types.TokenType.colon)) { - flowParseTypeInitialiser(_types.TokenType.colon); - } - if (!declare) { - flowParseTypeInitialiser(_types.TokenType.eq); - } - _util.semicolon.call(void 0); - } - function flowParseTypeParameter() { - flowParseVariance(); - flowParseTypeAnnotatableIdentifier(); - if (_index.eat.call(void 0, _types.TokenType.eq)) { - flowParseType(); - } - } - function flowParseTypeParameterDeclaration() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.typeParameterStart)) { - _index.next.call(void 0); - } else { - _util.unexpected.call(void 0); - } - do { - flowParseTypeParameter(); - if (!_index.match.call(void 0, _types.TokenType.greaterThan)) { - _util.expect.call(void 0, _types.TokenType.comma); - } - } while (!_index.match.call(void 0, _types.TokenType.greaterThan) && !_base.state.error); - _util.expect.call(void 0, _types.TokenType.greaterThan); - _index.popTypeContext.call(void 0, oldIsType); - } - exports2.flowParseTypeParameterDeclaration = flowParseTypeParameterDeclaration; - function flowParseTypeParameterInstantiation() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _util.expect.call(void 0, _types.TokenType.lessThan); - while (!_index.match.call(void 0, _types.TokenType.greaterThan) && !_base.state.error) { - flowParseType(); - if (!_index.match.call(void 0, _types.TokenType.greaterThan)) { - _util.expect.call(void 0, _types.TokenType.comma); - } - } - _util.expect.call(void 0, _types.TokenType.greaterThan); - _index.popTypeContext.call(void 0, oldIsType); - } - function flowParseInterfaceType() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._interface); - if (_index.eat.call(void 0, _types.TokenType._extends)) { - do { - flowParseInterfaceExtends(); - } while (_index.eat.call(void 0, _types.TokenType.comma)); - } - flowParseObjectType(false, false, false); - } - function flowParseObjectPropertyKey() { - if (_index.match.call(void 0, _types.TokenType.num) || _index.match.call(void 0, _types.TokenType.string)) { - _expression.parseExprAtom.call(void 0); - } else { - _expression.parseIdentifier.call(void 0); - } - } - function flowParseObjectTypeIndexer() { - if (_index.lookaheadType.call(void 0) === _types.TokenType.colon) { - flowParseObjectPropertyKey(); - flowParseTypeInitialiser(); - } else { - flowParseType(); - } - _util.expect.call(void 0, _types.TokenType.bracketR); - flowParseTypeInitialiser(); - } - function flowParseObjectTypeInternalSlot() { - flowParseObjectPropertyKey(); - _util.expect.call(void 0, _types.TokenType.bracketR); - _util.expect.call(void 0, _types.TokenType.bracketR); - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.parenL)) { - flowParseObjectTypeMethodish(); - } else { - _index.eat.call(void 0, _types.TokenType.question); - flowParseTypeInitialiser(); - } - } - function flowParseObjectTypeMethodish() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - } - _util.expect.call(void 0, _types.TokenType.parenL); - while (!_index.match.call(void 0, _types.TokenType.parenR) && !_index.match.call(void 0, _types.TokenType.ellipsis) && !_base.state.error) { - flowParseFunctionTypeParam(); - if (!_index.match.call(void 0, _types.TokenType.parenR)) { - _util.expect.call(void 0, _types.TokenType.comma); - } - } - if (_index.eat.call(void 0, _types.TokenType.ellipsis)) { - flowParseFunctionTypeParam(); - } - _util.expect.call(void 0, _types.TokenType.parenR); - flowParseTypeInitialiser(); - } - function flowParseObjectTypeCallProperty() { - flowParseObjectTypeMethodish(); - } - function flowParseObjectType(allowStatic, allowExact, allowProto) { - let endDelim; - if (allowExact && _index.match.call(void 0, _types.TokenType.braceBarL)) { - _util.expect.call(void 0, _types.TokenType.braceBarL); - endDelim = _types.TokenType.braceBarR; - } else { - _util.expect.call(void 0, _types.TokenType.braceL); - endDelim = _types.TokenType.braceR; - } - while (!_index.match.call(void 0, endDelim) && !_base.state.error) { - if (allowProto && _util.isContextual.call(void 0, _keywords.ContextualKeyword._proto)) { - const lookahead = _index.lookaheadType.call(void 0); - if (lookahead !== _types.TokenType.colon && lookahead !== _types.TokenType.question) { - _index.next.call(void 0); - allowStatic = false; - } - } - if (allowStatic && _util.isContextual.call(void 0, _keywords.ContextualKeyword._static)) { - const lookahead = _index.lookaheadType.call(void 0); - if (lookahead !== _types.TokenType.colon && lookahead !== _types.TokenType.question) { - _index.next.call(void 0); - } - } - flowParseVariance(); - if (_index.eat.call(void 0, _types.TokenType.bracketL)) { - if (_index.eat.call(void 0, _types.TokenType.bracketL)) { - flowParseObjectTypeInternalSlot(); - } else { - flowParseObjectTypeIndexer(); - } - } else if (_index.match.call(void 0, _types.TokenType.parenL) || _index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseObjectTypeCallProperty(); - } else { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._get) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._set)) { - const lookahead = _index.lookaheadType.call(void 0); - if (lookahead === _types.TokenType.name || lookahead === _types.TokenType.string || lookahead === _types.TokenType.num) { - _index.next.call(void 0); - } - } - flowParseObjectTypeProperty(); - } - flowObjectTypeSemicolon(); - } - _util.expect.call(void 0, endDelim); - } - function flowParseObjectTypeProperty() { - if (_index.match.call(void 0, _types.TokenType.ellipsis)) { - _util.expect.call(void 0, _types.TokenType.ellipsis); - if (!_index.eat.call(void 0, _types.TokenType.comma)) { - _index.eat.call(void 0, _types.TokenType.semi); - } - if (_index.match.call(void 0, _types.TokenType.braceR)) { - return; - } - flowParseType(); - } else { - flowParseObjectPropertyKey(); - if (_index.match.call(void 0, _types.TokenType.lessThan) || _index.match.call(void 0, _types.TokenType.parenL)) { - flowParseObjectTypeMethodish(); - } else { - _index.eat.call(void 0, _types.TokenType.question); - flowParseTypeInitialiser(); - } - } - } - function flowObjectTypeSemicolon() { - if (!_index.eat.call(void 0, _types.TokenType.semi) && !_index.eat.call(void 0, _types.TokenType.comma) && !_index.match.call(void 0, _types.TokenType.braceR) && !_index.match.call(void 0, _types.TokenType.braceBarR)) { - _util.unexpected.call(void 0); - } - } - function flowParseQualifiedTypeIdentifier(initialIdAlreadyParsed) { - if (!initialIdAlreadyParsed) { - _expression.parseIdentifier.call(void 0); - } - while (_index.eat.call(void 0, _types.TokenType.dot)) { - _expression.parseIdentifier.call(void 0); - } - } - function flowParseGenericType() { - flowParseQualifiedTypeIdentifier(true); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterInstantiation(); - } - } - function flowParseTypeofType() { - _util.expect.call(void 0, _types.TokenType._typeof); - flowParsePrimaryType(); - } - function flowParseTupleType() { - _util.expect.call(void 0, _types.TokenType.bracketL); - while (_base.state.pos < _base.input.length && !_index.match.call(void 0, _types.TokenType.bracketR)) { - flowParseType(); - if (_index.match.call(void 0, _types.TokenType.bracketR)) { - break; - } - _util.expect.call(void 0, _types.TokenType.comma); - } - _util.expect.call(void 0, _types.TokenType.bracketR); - } - function flowParseFunctionTypeParam() { - const lookahead = _index.lookaheadType.call(void 0); - if (lookahead === _types.TokenType.colon || lookahead === _types.TokenType.question) { - _expression.parseIdentifier.call(void 0); - _index.eat.call(void 0, _types.TokenType.question); - flowParseTypeInitialiser(); - } else { - flowParseType(); - } - } - function flowParseFunctionTypeParams() { - while (!_index.match.call(void 0, _types.TokenType.parenR) && !_index.match.call(void 0, _types.TokenType.ellipsis) && !_base.state.error) { - flowParseFunctionTypeParam(); - if (!_index.match.call(void 0, _types.TokenType.parenR)) { - _util.expect.call(void 0, _types.TokenType.comma); - } - } - if (_index.eat.call(void 0, _types.TokenType.ellipsis)) { - flowParseFunctionTypeParam(); - } - } - function flowParsePrimaryType() { - let isGroupedType = false; - const oldNoAnonFunctionType = _base.state.noAnonFunctionType; - switch (_base.state.type) { - case _types.TokenType.name: { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._interface)) { - flowParseInterfaceType(); - return; - } - _expression.parseIdentifier.call(void 0); - flowParseGenericType(); - return; - } - case _types.TokenType.braceL: - flowParseObjectType(false, false, false); - return; - case _types.TokenType.braceBarL: - flowParseObjectType(false, true, false); - return; - case _types.TokenType.bracketL: - flowParseTupleType(); - return; - case _types.TokenType.lessThan: - flowParseTypeParameterDeclaration(); - _util.expect.call(void 0, _types.TokenType.parenL); - flowParseFunctionTypeParams(); - _util.expect.call(void 0, _types.TokenType.parenR); - _util.expect.call(void 0, _types.TokenType.arrow); - flowParseType(); - return; - case _types.TokenType.parenL: - _index.next.call(void 0); - if (!_index.match.call(void 0, _types.TokenType.parenR) && !_index.match.call(void 0, _types.TokenType.ellipsis)) { - if (_index.match.call(void 0, _types.TokenType.name)) { - const token2 = _index.lookaheadType.call(void 0); - isGroupedType = token2 !== _types.TokenType.question && token2 !== _types.TokenType.colon; - } else { - isGroupedType = true; - } - } - if (isGroupedType) { - _base.state.noAnonFunctionType = false; - flowParseType(); - _base.state.noAnonFunctionType = oldNoAnonFunctionType; - if (_base.state.noAnonFunctionType || !(_index.match.call(void 0, _types.TokenType.comma) || _index.match.call(void 0, _types.TokenType.parenR) && _index.lookaheadType.call(void 0) === _types.TokenType.arrow)) { - _util.expect.call(void 0, _types.TokenType.parenR); - return; - } else { - _index.eat.call(void 0, _types.TokenType.comma); - } - } - flowParseFunctionTypeParams(); - _util.expect.call(void 0, _types.TokenType.parenR); - _util.expect.call(void 0, _types.TokenType.arrow); - flowParseType(); - return; - case _types.TokenType.minus: - _index.next.call(void 0); - _expression.parseLiteral.call(void 0); - return; - case _types.TokenType.string: - case _types.TokenType.num: - case _types.TokenType._true: - case _types.TokenType._false: - case _types.TokenType._null: - case _types.TokenType._this: - case _types.TokenType._void: - case _types.TokenType.star: - _index.next.call(void 0); - return; - default: - if (_base.state.type === _types.TokenType._typeof) { - flowParseTypeofType(); - return; - } else if (_base.state.type & _types.TokenType.IS_KEYWORD) { - _index.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType.name; - return; - } - } - _util.unexpected.call(void 0); - } - function flowParsePostfixType() { - flowParsePrimaryType(); - while (!_util.canInsertSemicolon.call(void 0) && (_index.match.call(void 0, _types.TokenType.bracketL) || _index.match.call(void 0, _types.TokenType.questionDot))) { - _index.eat.call(void 0, _types.TokenType.questionDot); - _util.expect.call(void 0, _types.TokenType.bracketL); - if (_index.eat.call(void 0, _types.TokenType.bracketR)) { - } else { - flowParseType(); - _util.expect.call(void 0, _types.TokenType.bracketR); - } - } - } - function flowParsePrefixType() { - if (_index.eat.call(void 0, _types.TokenType.question)) { - flowParsePrefixType(); - } else { - flowParsePostfixType(); - } - } - function flowParseAnonFunctionWithoutParens() { - flowParsePrefixType(); - if (!_base.state.noAnonFunctionType && _index.eat.call(void 0, _types.TokenType.arrow)) { - flowParseType(); - } - } - function flowParseIntersectionType() { - _index.eat.call(void 0, _types.TokenType.bitwiseAND); - flowParseAnonFunctionWithoutParens(); - while (_index.eat.call(void 0, _types.TokenType.bitwiseAND)) { - flowParseAnonFunctionWithoutParens(); - } - } - function flowParseUnionType() { - _index.eat.call(void 0, _types.TokenType.bitwiseOR); - flowParseIntersectionType(); - while (_index.eat.call(void 0, _types.TokenType.bitwiseOR)) { - flowParseIntersectionType(); - } - } - function flowParseType() { - flowParseUnionType(); - } - function flowParseTypeAnnotation() { - flowParseTypeInitialiser(); - } - exports2.flowParseTypeAnnotation = flowParseTypeAnnotation; - function flowParseTypeAnnotatableIdentifier() { - _expression.parseIdentifier.call(void 0); - if (_index.match.call(void 0, _types.TokenType.colon)) { - flowParseTypeAnnotation(); - } - } - function flowParseVariance() { - if (_index.match.call(void 0, _types.TokenType.plus) || _index.match.call(void 0, _types.TokenType.minus)) { - _index.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].isType = true; - } - } - exports2.flowParseVariance = flowParseVariance; - function flowParseFunctionBodyAndFinish(funcContextId) { - if (_index.match.call(void 0, _types.TokenType.colon)) { - flowParseTypeAndPredicateInitialiser(); - } - _expression.parseFunctionBody.call(void 0, false, funcContextId); - } - exports2.flowParseFunctionBodyAndFinish = flowParseFunctionBodyAndFinish; - function flowParseSubscript(startTokenIndex, noCalls, stopState) { - if (_index.match.call(void 0, _types.TokenType.questionDot) && _index.lookaheadType.call(void 0) === _types.TokenType.lessThan) { - if (noCalls) { - stopState.stop = true; - return; - } - _index.next.call(void 0); - flowParseTypeParameterInstantiation(); - _util.expect.call(void 0, _types.TokenType.parenL); - _expression.parseCallExpressionArguments.call(void 0); - return; - } else if (!noCalls && _index.match.call(void 0, _types.TokenType.lessThan)) { - const snapshot = _base.state.snapshot(); - flowParseTypeParameterInstantiation(); - _util.expect.call(void 0, _types.TokenType.parenL); - _expression.parseCallExpressionArguments.call(void 0); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } else { - return; - } - } - _expression.baseParseSubscript.call(void 0, startTokenIndex, noCalls, stopState); - } - exports2.flowParseSubscript = flowParseSubscript; - function flowStartParseNewArguments() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - const snapshot = _base.state.snapshot(); - flowParseTypeParameterInstantiation(); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } - } - } - exports2.flowStartParseNewArguments = flowStartParseNewArguments; - function flowTryParseStatement() { - if (_index.match.call(void 0, _types.TokenType.name) && _base.state.contextualKeyword === _keywords.ContextualKeyword._interface) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _index.next.call(void 0); - flowParseInterface(); - _index.popTypeContext.call(void 0, oldIsType); - return true; - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._enum)) { - flowParseEnumDeclaration(); - return true; - } - return false; - } - exports2.flowTryParseStatement = flowTryParseStatement; - function flowTryParseExportDefaultExpression() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._enum)) { - flowParseEnumDeclaration(); - return true; - } - return false; - } - exports2.flowTryParseExportDefaultExpression = flowTryParseExportDefaultExpression; - function flowParseIdentifierStatement(contextualKeyword) { - if (contextualKeyword === _keywords.ContextualKeyword._declare) { - if (_index.match.call(void 0, _types.TokenType._class) || _index.match.call(void 0, _types.TokenType.name) || _index.match.call(void 0, _types.TokenType._function) || _index.match.call(void 0, _types.TokenType._var) || _index.match.call(void 0, _types.TokenType._export)) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - flowParseDeclare(); - _index.popTypeContext.call(void 0, oldIsType); - } - } else if (_index.match.call(void 0, _types.TokenType.name)) { - if (contextualKeyword === _keywords.ContextualKeyword._interface) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - flowParseInterface(); - _index.popTypeContext.call(void 0, oldIsType); - } else if (contextualKeyword === _keywords.ContextualKeyword._type) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - flowParseTypeAlias(); - _index.popTypeContext.call(void 0, oldIsType); - } else if (contextualKeyword === _keywords.ContextualKeyword._opaque) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - flowParseOpaqueType(false); - _index.popTypeContext.call(void 0, oldIsType); - } - } - _util.semicolon.call(void 0); - } - exports2.flowParseIdentifierStatement = flowParseIdentifierStatement; - function flowShouldParseExportDeclaration() { - return _util.isContextual.call(void 0, _keywords.ContextualKeyword._type) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._interface) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._opaque) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._enum); - } - exports2.flowShouldParseExportDeclaration = flowShouldParseExportDeclaration; - function flowShouldDisallowExportDefaultSpecifier() { - return _index.match.call(void 0, _types.TokenType.name) && (_base.state.contextualKeyword === _keywords.ContextualKeyword._type || _base.state.contextualKeyword === _keywords.ContextualKeyword._interface || _base.state.contextualKeyword === _keywords.ContextualKeyword._opaque || _base.state.contextualKeyword === _keywords.ContextualKeyword._enum); - } - exports2.flowShouldDisallowExportDefaultSpecifier = flowShouldDisallowExportDefaultSpecifier; - function flowParseExportDeclaration() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._type)) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _index.next.call(void 0); - if (_index.match.call(void 0, _types.TokenType.braceL)) { - _statement.parseExportSpecifiers.call(void 0); - _statement.parseExportFrom.call(void 0); - } else { - flowParseTypeAlias(); - } - _index.popTypeContext.call(void 0, oldIsType); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._opaque)) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _index.next.call(void 0); - flowParseOpaqueType(false); - _index.popTypeContext.call(void 0, oldIsType); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._interface)) { - const oldIsType = _index.pushTypeContext.call(void 0, 1); - _index.next.call(void 0); - flowParseInterface(); - _index.popTypeContext.call(void 0, oldIsType); - } else { - _statement.parseStatement.call(void 0, true); - } - } - exports2.flowParseExportDeclaration = flowParseExportDeclaration; - function flowShouldParseExportStar() { - return _index.match.call(void 0, _types.TokenType.star) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._type) && _index.lookaheadType.call(void 0) === _types.TokenType.star; - } - exports2.flowShouldParseExportStar = flowShouldParseExportStar; - function flowParseExportStar() { - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._type)) { - const oldIsType = _index.pushTypeContext.call(void 0, 2); - _statement.baseParseExportStar.call(void 0); - _index.popTypeContext.call(void 0, oldIsType); - } else { - _statement.baseParseExportStar.call(void 0); - } - } - exports2.flowParseExportStar = flowParseExportStar; - function flowAfterParseClassSuper(hasSuper) { - if (hasSuper && _index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterInstantiation(); - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._implements)) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _index.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._implements; - do { - flowParseRestrictedIdentifier(); - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterInstantiation(); - } - } while (_index.eat.call(void 0, _types.TokenType.comma)); - _index.popTypeContext.call(void 0, oldIsType); - } - } - exports2.flowAfterParseClassSuper = flowAfterParseClassSuper; - function flowStartParseObjPropValue() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - flowParseTypeParameterDeclaration(); - if (!_index.match.call(void 0, _types.TokenType.parenL)) _util.unexpected.call(void 0); - } - } - exports2.flowStartParseObjPropValue = flowStartParseObjPropValue; - function flowParseAssignableListItemTypes() { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - _index.eat.call(void 0, _types.TokenType.question); - if (_index.match.call(void 0, _types.TokenType.colon)) { - flowParseTypeAnnotation(); - } - _index.popTypeContext.call(void 0, oldIsType); - } - exports2.flowParseAssignableListItemTypes = flowParseAssignableListItemTypes; - function flowStartParseImportSpecifiers() { - if (_index.match.call(void 0, _types.TokenType._typeof) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._type)) { - const lh = _index.lookaheadTypeAndKeyword.call(void 0); - if (isMaybeDefaultImport(lh) || lh.type === _types.TokenType.braceL || lh.type === _types.TokenType.star) { - _index.next.call(void 0); - } - } - } - exports2.flowStartParseImportSpecifiers = flowStartParseImportSpecifiers; - function flowParseImportSpecifier() { - const isTypeKeyword = _base.state.contextualKeyword === _keywords.ContextualKeyword._type || _base.state.type === _types.TokenType._typeof; - if (isTypeKeyword) { - _index.next.call(void 0); - } else { - _expression.parseIdentifier.call(void 0); - } - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._as) && !_util.isLookaheadContextual.call(void 0, _keywords.ContextualKeyword._as)) { - _expression.parseIdentifier.call(void 0); - if (isTypeKeyword && !_index.match.call(void 0, _types.TokenType.name) && !(_base.state.type & _types.TokenType.IS_KEYWORD)) { - } else { - _expression.parseIdentifier.call(void 0); - } - } else { - if (isTypeKeyword && (_index.match.call(void 0, _types.TokenType.name) || !!(_base.state.type & _types.TokenType.IS_KEYWORD))) { - _expression.parseIdentifier.call(void 0); - } - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._as)) { - _expression.parseIdentifier.call(void 0); - } - } - } - exports2.flowParseImportSpecifier = flowParseImportSpecifier; - function flowStartParseFunctionParams() { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - flowParseTypeParameterDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - } - } - exports2.flowStartParseFunctionParams = flowStartParseFunctionParams; - function flowAfterParseVarHead() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - flowParseTypeAnnotation(); - } - } - exports2.flowAfterParseVarHead = flowAfterParseVarHead; - function flowStartParseAsyncArrowFromCallExpression() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - const oldNoAnonFunctionType = _base.state.noAnonFunctionType; - _base.state.noAnonFunctionType = true; - flowParseTypeAnnotation(); - _base.state.noAnonFunctionType = oldNoAnonFunctionType; - } - } - exports2.flowStartParseAsyncArrowFromCallExpression = flowStartParseAsyncArrowFromCallExpression; - function flowParseMaybeAssign(noIn, isWithinParens) { - if (_index.match.call(void 0, _types.TokenType.lessThan)) { - const snapshot = _base.state.snapshot(); - let wasArrow = _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - _base.state.type = _types.TokenType.typeParameterStart; - } else { - return wasArrow; - } - const oldIsType = _index.pushTypeContext.call(void 0, 0); - flowParseTypeParameterDeclaration(); - _index.popTypeContext.call(void 0, oldIsType); - wasArrow = _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - if (wasArrow) { - return true; - } - _util.unexpected.call(void 0); - } - return _expression.baseParseMaybeAssign.call(void 0, noIn, isWithinParens); - } - exports2.flowParseMaybeAssign = flowParseMaybeAssign; - function flowParseArrow() { - if (_index.match.call(void 0, _types.TokenType.colon)) { - const oldIsType = _index.pushTypeContext.call(void 0, 0); - const snapshot = _base.state.snapshot(); - const oldNoAnonFunctionType = _base.state.noAnonFunctionType; - _base.state.noAnonFunctionType = true; - flowParseTypeAndPredicateInitialiser(); - _base.state.noAnonFunctionType = oldNoAnonFunctionType; - if (_util.canInsertSemicolon.call(void 0)) _util.unexpected.call(void 0); - if (!_index.match.call(void 0, _types.TokenType.arrow)) _util.unexpected.call(void 0); - if (_base.state.error) { - _base.state.restoreFromSnapshot(snapshot); - } - _index.popTypeContext.call(void 0, oldIsType); - } - return _index.eat.call(void 0, _types.TokenType.arrow); - } - exports2.flowParseArrow = flowParseArrow; - function flowParseSubscripts(startTokenIndex, noCalls = false) { - if (_base.state.tokens[_base.state.tokens.length - 1].contextualKeyword === _keywords.ContextualKeyword._async && _index.match.call(void 0, _types.TokenType.lessThan)) { - const snapshot = _base.state.snapshot(); - const wasArrow = parseAsyncArrowWithTypeParameters(); - if (wasArrow && !_base.state.error) { - return; - } - _base.state.restoreFromSnapshot(snapshot); - } - _expression.baseParseSubscripts.call(void 0, startTokenIndex, noCalls); - } - exports2.flowParseSubscripts = flowParseSubscripts; - function parseAsyncArrowWithTypeParameters() { - _base.state.scopeDepth++; - const startTokenIndex = _base.state.tokens.length; - _statement.parseFunctionParams.call(void 0); - if (!_expression.parseArrow.call(void 0)) { - return false; - } - _expression.parseArrowExpression.call(void 0, startTokenIndex); - return true; - } - function flowParseEnumDeclaration() { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._enum); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._enum; - _expression.parseIdentifier.call(void 0); - flowParseEnumBody(); - } - function flowParseEnumBody() { - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._of)) { - _index.next.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.braceL); - flowParseEnumMembers(); - _util.expect.call(void 0, _types.TokenType.braceR); - } - function flowParseEnumMembers() { - while (!_index.match.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (_index.eat.call(void 0, _types.TokenType.ellipsis)) { - break; - } - flowParseEnumMember(); - if (!_index.match.call(void 0, _types.TokenType.braceR)) { - _util.expect.call(void 0, _types.TokenType.comma); - } - } - } - function flowParseEnumMember() { - _expression.parseIdentifier.call(void 0); - if (_index.eat.call(void 0, _types.TokenType.eq)) { - _index.next.call(void 0); - } - } - } -}); - -// node_modules/sucrase/dist/parser/traverser/statement.js -var require_statement = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/statement.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_parser(); - var _flow = require_flow(); - var _typescript = require_typescript(); - var _tokenizer = require_tokenizer(); - var _keywords = require_keywords(); - var _state = require_state(); - var _types = require_types(); - var _charcodes = require_charcodes(); - var _base = require_base(); - var _expression = require_expression(); - var _lval = require_lval(); - var _util = require_util(); - function parseTopLevel() { - parseBlockBody(_types.TokenType.eof); - _base.state.scopes.push(new (0, _state.Scope)(0, _base.state.tokens.length, true)); - if (_base.state.scopeDepth !== 0) { - throw new Error(`Invalid scope depth at end of file: ${_base.state.scopeDepth}`); - } - return new (0, _index.File)(_base.state.tokens, _base.state.scopes); - } - exports2.parseTopLevel = parseTopLevel; - function parseStatement(declaration2) { - if (_base.isFlowEnabled) { - if (_flow.flowTryParseStatement.call(void 0)) { - return; - } - } - if (_tokenizer.match.call(void 0, _types.TokenType.at)) { - parseDecorators(); - } - parseStatementContent(declaration2); - } - exports2.parseStatement = parseStatement; - function parseStatementContent(declaration2) { - if (_base.isTypeScriptEnabled) { - if (_typescript.tsTryParseStatementContent.call(void 0)) { - return; - } - } - const starttype = _base.state.type; - switch (starttype) { - case _types.TokenType._break: - case _types.TokenType._continue: - parseBreakContinueStatement(); - return; - case _types.TokenType._debugger: - parseDebuggerStatement(); - return; - case _types.TokenType._do: - parseDoStatement(); - return; - case _types.TokenType._for: - parseForStatement(); - return; - case _types.TokenType._function: - if (_tokenizer.lookaheadType.call(void 0) === _types.TokenType.dot) break; - if (!declaration2) _util.unexpected.call(void 0); - parseFunctionStatement(); - return; - case _types.TokenType._class: - if (!declaration2) _util.unexpected.call(void 0); - parseClass(true); - return; - case _types.TokenType._if: - parseIfStatement(); - return; - case _types.TokenType._return: - parseReturnStatement(); - return; - case _types.TokenType._switch: - parseSwitchStatement(); - return; - case _types.TokenType._throw: - parseThrowStatement(); - return; - case _types.TokenType._try: - parseTryStatement(); - return; - case _types.TokenType._let: - case _types.TokenType._const: - if (!declaration2) _util.unexpected.call(void 0); - // NOTE: falls through to _var - case _types.TokenType._var: - parseVarStatement(starttype !== _types.TokenType._var); - return; - case _types.TokenType._while: - parseWhileStatement(); - return; - case _types.TokenType.braceL: - parseBlock(); - return; - case _types.TokenType.semi: - parseEmptyStatement(); - return; - case _types.TokenType._export: - case _types.TokenType._import: { - const nextType = _tokenizer.lookaheadType.call(void 0); - if (nextType === _types.TokenType.parenL || nextType === _types.TokenType.dot) { - break; - } - _tokenizer.next.call(void 0); - if (starttype === _types.TokenType._import) { - parseImport(); - } else { - parseExport(); - } - return; - } - case _types.TokenType.name: - if (_base.state.contextualKeyword === _keywords.ContextualKeyword._async) { - const functionStart = _base.state.start; - const snapshot = _base.state.snapshot(); - _tokenizer.next.call(void 0); - if (_tokenizer.match.call(void 0, _types.TokenType._function) && !_util.canInsertSemicolon.call(void 0)) { - _util.expect.call(void 0, _types.TokenType._function); - parseFunction(functionStart, true); - return; - } else { - _base.state.restoreFromSnapshot(snapshot); - } - } else if (_base.state.contextualKeyword === _keywords.ContextualKeyword._using && !_util.hasFollowingLineBreak.call(void 0) && // Statements like `using[0]` and `using in foo` aren't actual using - // declarations. - _tokenizer.lookaheadType.call(void 0) === _types.TokenType.name) { - parseVarStatement(true); - return; - } else if (startsAwaitUsing()) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._await); - parseVarStatement(true); - return; - } - default: - break; - } - const initialTokensLength = _base.state.tokens.length; - _expression.parseExpression.call(void 0); - let simpleName = null; - if (_base.state.tokens.length === initialTokensLength + 1) { - const token2 = _base.state.tokens[_base.state.tokens.length - 1]; - if (token2.type === _types.TokenType.name) { - simpleName = token2.contextualKeyword; - } - } - if (simpleName == null) { - _util.semicolon.call(void 0); - return; - } - if (_tokenizer.eat.call(void 0, _types.TokenType.colon)) { - parseLabeledStatement(); - } else { - parseIdentifierStatement(simpleName); - } - } - function startsAwaitUsing() { - if (!_util.isContextual.call(void 0, _keywords.ContextualKeyword._await)) { - return false; - } - const snapshot = _base.state.snapshot(); - _tokenizer.next.call(void 0); - if (!_util.isContextual.call(void 0, _keywords.ContextualKeyword._using) || _util.hasPrecedingLineBreak.call(void 0)) { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - _tokenizer.next.call(void 0); - if (!_tokenizer.match.call(void 0, _types.TokenType.name) || _util.hasPrecedingLineBreak.call(void 0)) { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - _base.state.restoreFromSnapshot(snapshot); - return true; - } - function parseDecorators() { - while (_tokenizer.match.call(void 0, _types.TokenType.at)) { - parseDecorator(); - } - } - exports2.parseDecorators = parseDecorators; - function parseDecorator() { - _tokenizer.next.call(void 0); - if (_tokenizer.eat.call(void 0, _types.TokenType.parenL)) { - _expression.parseExpression.call(void 0); - _util.expect.call(void 0, _types.TokenType.parenR); - } else { - _expression.parseIdentifier.call(void 0); - while (_tokenizer.eat.call(void 0, _types.TokenType.dot)) { - _expression.parseIdentifier.call(void 0); - } - parseMaybeDecoratorArguments(); - } - } - function parseMaybeDecoratorArguments() { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseMaybeDecoratorArguments.call(void 0); - } else { - baseParseMaybeDecoratorArguments(); - } - } - function baseParseMaybeDecoratorArguments() { - if (_tokenizer.eat.call(void 0, _types.TokenType.parenL)) { - _expression.parseCallExpressionArguments.call(void 0); - } - } - exports2.baseParseMaybeDecoratorArguments = baseParseMaybeDecoratorArguments; - function parseBreakContinueStatement() { - _tokenizer.next.call(void 0); - if (!_util.isLineTerminator.call(void 0)) { - _expression.parseIdentifier.call(void 0); - _util.semicolon.call(void 0); - } - } - function parseDebuggerStatement() { - _tokenizer.next.call(void 0); - _util.semicolon.call(void 0); - } - function parseDoStatement() { - _tokenizer.next.call(void 0); - parseStatement(false); - _util.expect.call(void 0, _types.TokenType._while); - _expression.parseParenExpression.call(void 0); - _tokenizer.eat.call(void 0, _types.TokenType.semi); - } - function parseForStatement() { - _base.state.scopeDepth++; - const startTokenIndex = _base.state.tokens.length; - parseAmbiguousForStatement(); - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, false)); - _base.state.scopeDepth--; - } - function isUsingInLoop() { - if (!_util.isContextual.call(void 0, _keywords.ContextualKeyword._using)) { - return false; - } - if (_util.isLookaheadContextual.call(void 0, _keywords.ContextualKeyword._of)) { - return false; - } - return true; - } - function parseAmbiguousForStatement() { - _tokenizer.next.call(void 0); - let forAwait = false; - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._await)) { - forAwait = true; - _tokenizer.next.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.parenL); - if (_tokenizer.match.call(void 0, _types.TokenType.semi)) { - if (forAwait) { - _util.unexpected.call(void 0); - } - parseFor(); - return; - } - const isAwaitUsing = startsAwaitUsing(); - if (isAwaitUsing || _tokenizer.match.call(void 0, _types.TokenType._var) || _tokenizer.match.call(void 0, _types.TokenType._let) || _tokenizer.match.call(void 0, _types.TokenType._const) || isUsingInLoop()) { - if (isAwaitUsing) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._await); - } - _tokenizer.next.call(void 0); - parseVar(true, _base.state.type !== _types.TokenType._var); - if (_tokenizer.match.call(void 0, _types.TokenType._in) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._of)) { - parseForIn(forAwait); - return; - } - parseFor(); - return; - } - _expression.parseExpression.call(void 0, true); - if (_tokenizer.match.call(void 0, _types.TokenType._in) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._of)) { - parseForIn(forAwait); - return; - } - if (forAwait) { - _util.unexpected.call(void 0); - } - parseFor(); - } - function parseFunctionStatement() { - const functionStart = _base.state.start; - _tokenizer.next.call(void 0); - parseFunction(functionStart, true); - } - function parseIfStatement() { - _tokenizer.next.call(void 0); - _expression.parseParenExpression.call(void 0); - parseStatement(false); - if (_tokenizer.eat.call(void 0, _types.TokenType._else)) { - parseStatement(false); - } - } - function parseReturnStatement() { - _tokenizer.next.call(void 0); - if (!_util.isLineTerminator.call(void 0)) { - _expression.parseExpression.call(void 0); - _util.semicolon.call(void 0); - } - } - function parseSwitchStatement() { - _tokenizer.next.call(void 0); - _expression.parseParenExpression.call(void 0); - _base.state.scopeDepth++; - const startTokenIndex = _base.state.tokens.length; - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_tokenizer.match.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (_tokenizer.match.call(void 0, _types.TokenType._case) || _tokenizer.match.call(void 0, _types.TokenType._default)) { - const isCase = _tokenizer.match.call(void 0, _types.TokenType._case); - _tokenizer.next.call(void 0); - if (isCase) { - _expression.parseExpression.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.colon); - } else { - parseStatement(true); - } - } - _tokenizer.next.call(void 0); - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, false)); - _base.state.scopeDepth--; - } - function parseThrowStatement() { - _tokenizer.next.call(void 0); - _expression.parseExpression.call(void 0); - _util.semicolon.call(void 0); - } - function parseCatchClauseParam() { - _lval.parseBindingAtom.call( - void 0, - true - /* isBlockScope */ - ); - if (_base.isTypeScriptEnabled) { - _typescript.tsTryParseTypeAnnotation.call(void 0); - } - } - function parseTryStatement() { - _tokenizer.next.call(void 0); - parseBlock(); - if (_tokenizer.match.call(void 0, _types.TokenType._catch)) { - _tokenizer.next.call(void 0); - let catchBindingStartTokenIndex = null; - if (_tokenizer.match.call(void 0, _types.TokenType.parenL)) { - _base.state.scopeDepth++; - catchBindingStartTokenIndex = _base.state.tokens.length; - _util.expect.call(void 0, _types.TokenType.parenL); - parseCatchClauseParam(); - _util.expect.call(void 0, _types.TokenType.parenR); - } - parseBlock(); - if (catchBindingStartTokenIndex != null) { - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(catchBindingStartTokenIndex, endTokenIndex, false)); - _base.state.scopeDepth--; - } - } - if (_tokenizer.eat.call(void 0, _types.TokenType._finally)) { - parseBlock(); - } - } - function parseVarStatement(isBlockScope) { - _tokenizer.next.call(void 0); - parseVar(false, isBlockScope); - _util.semicolon.call(void 0); - } - exports2.parseVarStatement = parseVarStatement; - function parseWhileStatement() { - _tokenizer.next.call(void 0); - _expression.parseParenExpression.call(void 0); - parseStatement(false); - } - function parseEmptyStatement() { - _tokenizer.next.call(void 0); - } - function parseLabeledStatement() { - parseStatement(true); - } - function parseIdentifierStatement(contextualKeyword) { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseIdentifierStatement.call(void 0, contextualKeyword); - } else if (_base.isFlowEnabled) { - _flow.flowParseIdentifierStatement.call(void 0, contextualKeyword); - } else { - _util.semicolon.call(void 0); - } - } - function parseBlock(isFunctionScope = false, contextId = 0) { - const startTokenIndex = _base.state.tokens.length; - _base.state.scopeDepth++; - _util.expect.call(void 0, _types.TokenType.braceL); - if (contextId) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - } - parseBlockBody(_types.TokenType.braceR); - if (contextId) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - } - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, isFunctionScope)); - _base.state.scopeDepth--; - } - exports2.parseBlock = parseBlock; - function parseBlockBody(end2) { - while (!_tokenizer.eat.call(void 0, end2) && !_base.state.error) { - parseStatement(true); - } - } - exports2.parseBlockBody = parseBlockBody; - function parseFor() { - _util.expect.call(void 0, _types.TokenType.semi); - if (!_tokenizer.match.call(void 0, _types.TokenType.semi)) { - _expression.parseExpression.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.semi); - if (!_tokenizer.match.call(void 0, _types.TokenType.parenR)) { - _expression.parseExpression.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.parenR); - parseStatement(false); - } - function parseForIn(forAwait) { - if (forAwait) { - _util.eatContextual.call(void 0, _keywords.ContextualKeyword._of); - } else { - _tokenizer.next.call(void 0); - } - _expression.parseExpression.call(void 0); - _util.expect.call(void 0, _types.TokenType.parenR); - parseStatement(false); - } - function parseVar(isFor, isBlockScope) { - while (true) { - parseVarHead(isBlockScope); - if (_tokenizer.eat.call(void 0, _types.TokenType.eq)) { - const eqIndex = _base.state.tokens.length - 1; - _expression.parseMaybeAssign.call(void 0, isFor); - _base.state.tokens[eqIndex].rhsEndIndex = _base.state.tokens.length; - } - if (!_tokenizer.eat.call(void 0, _types.TokenType.comma)) { - break; - } - } - } - function parseVarHead(isBlockScope) { - _lval.parseBindingAtom.call(void 0, isBlockScope); - if (_base.isTypeScriptEnabled) { - _typescript.tsAfterParseVarHead.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowAfterParseVarHead.call(void 0); - } - } - function parseFunction(functionStart, isStatement, optionalId = false) { - if (_tokenizer.match.call(void 0, _types.TokenType.star)) { - _tokenizer.next.call(void 0); - } - if (isStatement && !optionalId && !_tokenizer.match.call(void 0, _types.TokenType.name) && !_tokenizer.match.call(void 0, _types.TokenType._yield)) { - _util.unexpected.call(void 0); - } - let nameScopeStartTokenIndex = null; - if (_tokenizer.match.call(void 0, _types.TokenType.name)) { - if (!isStatement) { - nameScopeStartTokenIndex = _base.state.tokens.length; - _base.state.scopeDepth++; - } - _lval.parseBindingIdentifier.call(void 0, false); - } - const startTokenIndex = _base.state.tokens.length; - _base.state.scopeDepth++; - parseFunctionParams(); - _expression.parseFunctionBodyAndFinish.call(void 0, functionStart); - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(startTokenIndex, endTokenIndex, true)); - _base.state.scopeDepth--; - if (nameScopeStartTokenIndex !== null) { - _base.state.scopes.push(new (0, _state.Scope)(nameScopeStartTokenIndex, endTokenIndex, true)); - _base.state.scopeDepth--; - } - } - exports2.parseFunction = parseFunction; - function parseFunctionParams(allowModifiers = false, funcContextId = 0) { - if (_base.isTypeScriptEnabled) { - _typescript.tsStartParseFunctionParams.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowStartParseFunctionParams.call(void 0); - } - _util.expect.call(void 0, _types.TokenType.parenL); - if (funcContextId) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = funcContextId; - } - _lval.parseBindingList.call( - void 0, - _types.TokenType.parenR, - false, - false, - allowModifiers, - funcContextId - ); - if (funcContextId) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = funcContextId; - } - } - exports2.parseFunctionParams = parseFunctionParams; - function parseClass(isStatement, optionalId = false) { - const contextId = _base.getNextContextId.call(void 0); - _tokenizer.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - _base.state.tokens[_base.state.tokens.length - 1].isExpression = !isStatement; - let nameScopeStartTokenIndex = null; - if (!isStatement) { - nameScopeStartTokenIndex = _base.state.tokens.length; - _base.state.scopeDepth++; - } - parseClassId(isStatement, optionalId); - parseClassSuper(); - const openBraceIndex = _base.state.tokens.length; - parseClassBody(contextId); - if (_base.state.error) { - return; - } - _base.state.tokens[openBraceIndex].contextId = contextId; - _base.state.tokens[_base.state.tokens.length - 1].contextId = contextId; - if (nameScopeStartTokenIndex !== null) { - const endTokenIndex = _base.state.tokens.length; - _base.state.scopes.push(new (0, _state.Scope)(nameScopeStartTokenIndex, endTokenIndex, false)); - _base.state.scopeDepth--; - } - } - exports2.parseClass = parseClass; - function isClassProperty() { - return _tokenizer.match.call(void 0, _types.TokenType.eq) || _tokenizer.match.call(void 0, _types.TokenType.semi) || _tokenizer.match.call(void 0, _types.TokenType.braceR) || _tokenizer.match.call(void 0, _types.TokenType.bang) || _tokenizer.match.call(void 0, _types.TokenType.colon); - } - function isClassMethod() { - return _tokenizer.match.call(void 0, _types.TokenType.parenL) || _tokenizer.match.call(void 0, _types.TokenType.lessThan); - } - function parseClassBody(classContextId) { - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_tokenizer.eat.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (_tokenizer.eat.call(void 0, _types.TokenType.semi)) { - continue; - } - if (_tokenizer.match.call(void 0, _types.TokenType.at)) { - parseDecorator(); - continue; - } - const memberStart = _base.state.start; - parseClassMember(memberStart, classContextId); - } - } - function parseClassMember(memberStart, classContextId) { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseModifiers.call(void 0, [ - _keywords.ContextualKeyword._declare, - _keywords.ContextualKeyword._public, - _keywords.ContextualKeyword._protected, - _keywords.ContextualKeyword._private, - _keywords.ContextualKeyword._override - ]); - } - let isStatic = false; - if (_tokenizer.match.call(void 0, _types.TokenType.name) && _base.state.contextualKeyword === _keywords.ContextualKeyword._static) { - _expression.parseIdentifier.call(void 0); - if (isClassMethod()) { - parseClassMethod( - memberStart, - /* isConstructor */ - false - ); - return; - } else if (isClassProperty()) { - parseClassProperty(); - return; - } - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._static; - isStatic = true; - if (_tokenizer.match.call(void 0, _types.TokenType.braceL)) { - _base.state.tokens[_base.state.tokens.length - 1].contextId = classContextId; - parseBlock(); - return; - } - } - parseClassMemberWithIsStatic(memberStart, isStatic, classContextId); - } - function parseClassMemberWithIsStatic(memberStart, isStatic, classContextId) { - if (_base.isTypeScriptEnabled) { - if (_typescript.tsTryParseClassMemberWithIsStatic.call(void 0, isStatic)) { - return; - } - } - if (_tokenizer.eat.call(void 0, _types.TokenType.star)) { - parseClassPropertyName(classContextId); - parseClassMethod( - memberStart, - /* isConstructor */ - false - ); - return; - } - parseClassPropertyName(classContextId); - let isConstructor = false; - const token2 = _base.state.tokens[_base.state.tokens.length - 1]; - if (token2.contextualKeyword === _keywords.ContextualKeyword._constructor) { - isConstructor = true; - } - parsePostMemberNameModifiers(); - if (isClassMethod()) { - parseClassMethod(memberStart, isConstructor); - } else if (isClassProperty()) { - parseClassProperty(); - } else if (token2.contextualKeyword === _keywords.ContextualKeyword._async && !_util.isLineTerminator.call(void 0)) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._async; - const isGenerator = _tokenizer.match.call(void 0, _types.TokenType.star); - if (isGenerator) { - _tokenizer.next.call(void 0); - } - parseClassPropertyName(classContextId); - parsePostMemberNameModifiers(); - parseClassMethod( - memberStart, - false - /* isConstructor */ - ); - } else if ((token2.contextualKeyword === _keywords.ContextualKeyword._get || token2.contextualKeyword === _keywords.ContextualKeyword._set) && !(_util.isLineTerminator.call(void 0) && _tokenizer.match.call(void 0, _types.TokenType.star))) { - if (token2.contextualKeyword === _keywords.ContextualKeyword._get) { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._get; - } else { - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._set; - } - parseClassPropertyName(classContextId); - parseClassMethod( - memberStart, - /* isConstructor */ - false - ); - } else if (token2.contextualKeyword === _keywords.ContextualKeyword._accessor && !_util.isLineTerminator.call(void 0)) { - parseClassPropertyName(classContextId); - parseClassProperty(); - } else if (_util.isLineTerminator.call(void 0)) { - parseClassProperty(); - } else { - _util.unexpected.call(void 0); - } - } - function parseClassMethod(functionStart, isConstructor) { - if (_base.isTypeScriptEnabled) { - _typescript.tsTryParseTypeParameters.call(void 0); - } else if (_base.isFlowEnabled) { - if (_tokenizer.match.call(void 0, _types.TokenType.lessThan)) { - _flow.flowParseTypeParameterDeclaration.call(void 0); - } - } - _expression.parseMethod.call(void 0, functionStart, isConstructor); - } - function parseClassPropertyName(classContextId) { - _expression.parsePropertyName.call(void 0, classContextId); - } - exports2.parseClassPropertyName = parseClassPropertyName; - function parsePostMemberNameModifiers() { - if (_base.isTypeScriptEnabled) { - const oldIsType = _tokenizer.pushTypeContext.call(void 0, 0); - _tokenizer.eat.call(void 0, _types.TokenType.question); - _tokenizer.popTypeContext.call(void 0, oldIsType); - } - } - exports2.parsePostMemberNameModifiers = parsePostMemberNameModifiers; - function parseClassProperty() { - if (_base.isTypeScriptEnabled) { - _tokenizer.eatTypeToken.call(void 0, _types.TokenType.bang); - _typescript.tsTryParseTypeAnnotation.call(void 0); - } else if (_base.isFlowEnabled) { - if (_tokenizer.match.call(void 0, _types.TokenType.colon)) { - _flow.flowParseTypeAnnotation.call(void 0); - } - } - if (_tokenizer.match.call(void 0, _types.TokenType.eq)) { - const equalsTokenIndex = _base.state.tokens.length; - _tokenizer.next.call(void 0); - _expression.parseMaybeAssign.call(void 0); - _base.state.tokens[equalsTokenIndex].rhsEndIndex = _base.state.tokens.length; - } - _util.semicolon.call(void 0); - } - exports2.parseClassProperty = parseClassProperty; - function parseClassId(isStatement, optionalId = false) { - if (_base.isTypeScriptEnabled && (!isStatement || optionalId) && _util.isContextual.call(void 0, _keywords.ContextualKeyword._implements)) { - return; - } - if (_tokenizer.match.call(void 0, _types.TokenType.name)) { - _lval.parseBindingIdentifier.call(void 0, true); - } - if (_base.isTypeScriptEnabled) { - _typescript.tsTryParseTypeParameters.call(void 0); - } else if (_base.isFlowEnabled) { - if (_tokenizer.match.call(void 0, _types.TokenType.lessThan)) { - _flow.flowParseTypeParameterDeclaration.call(void 0); - } - } - } - function parseClassSuper() { - let hasSuper = false; - if (_tokenizer.eat.call(void 0, _types.TokenType._extends)) { - _expression.parseExprSubscripts.call(void 0); - hasSuper = true; - } else { - hasSuper = false; - } - if (_base.isTypeScriptEnabled) { - _typescript.tsAfterParseClassSuper.call(void 0, hasSuper); - } else if (_base.isFlowEnabled) { - _flow.flowAfterParseClassSuper.call(void 0, hasSuper); - } - } - function parseExport() { - const exportIndex = _base.state.tokens.length - 1; - if (_base.isTypeScriptEnabled) { - if (_typescript.tsTryParseExport.call(void 0)) { - return; - } - } - if (shouldParseExportStar()) { - parseExportStar(); - } else if (isExportDefaultSpecifier()) { - _expression.parseIdentifier.call(void 0); - if (_tokenizer.match.call(void 0, _types.TokenType.comma) && _tokenizer.lookaheadType.call(void 0) === _types.TokenType.star) { - _util.expect.call(void 0, _types.TokenType.comma); - _util.expect.call(void 0, _types.TokenType.star); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._as); - _expression.parseIdentifier.call(void 0); - } else { - parseExportSpecifiersMaybe(); - } - parseExportFrom(); - } else if (_tokenizer.eat.call(void 0, _types.TokenType._default)) { - parseExportDefaultExpression(); - } else if (shouldParseExportDeclaration()) { - parseExportDeclaration(); - } else { - parseExportSpecifiers(); - parseExportFrom(); - } - _base.state.tokens[exportIndex].rhsEndIndex = _base.state.tokens.length; - } - exports2.parseExport = parseExport; - function parseExportDefaultExpression() { - if (_base.isTypeScriptEnabled) { - if (_typescript.tsTryParseExportDefaultExpression.call(void 0)) { - return; - } - } - if (_base.isFlowEnabled) { - if (_flow.flowTryParseExportDefaultExpression.call(void 0)) { - return; - } - } - const functionStart = _base.state.start; - if (_tokenizer.eat.call(void 0, _types.TokenType._function)) { - parseFunction(functionStart, true, true); - } else if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._async) && _tokenizer.lookaheadType.call(void 0) === _types.TokenType._function) { - _util.eatContextual.call(void 0, _keywords.ContextualKeyword._async); - _tokenizer.eat.call(void 0, _types.TokenType._function); - parseFunction(functionStart, true, true); - } else if (_tokenizer.match.call(void 0, _types.TokenType._class)) { - parseClass(true, true); - } else if (_tokenizer.match.call(void 0, _types.TokenType.at)) { - parseDecorators(); - parseClass(true, true); - } else { - _expression.parseMaybeAssign.call(void 0); - _util.semicolon.call(void 0); - } - } - function parseExportDeclaration() { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseExportDeclaration.call(void 0); - } else if (_base.isFlowEnabled) { - _flow.flowParseExportDeclaration.call(void 0); - } else { - parseStatement(true); - } - } - function isExportDefaultSpecifier() { - if (_base.isTypeScriptEnabled && _typescript.tsIsDeclarationStart.call(void 0)) { - return false; - } else if (_base.isFlowEnabled && _flow.flowShouldDisallowExportDefaultSpecifier.call(void 0)) { - return false; - } - if (_tokenizer.match.call(void 0, _types.TokenType.name)) { - return _base.state.contextualKeyword !== _keywords.ContextualKeyword._async; - } - if (!_tokenizer.match.call(void 0, _types.TokenType._default)) { - return false; - } - const _next = _tokenizer.nextTokenStart.call(void 0); - const lookahead = _tokenizer.lookaheadTypeAndKeyword.call(void 0); - const hasFrom = lookahead.type === _types.TokenType.name && lookahead.contextualKeyword === _keywords.ContextualKeyword._from; - if (lookahead.type === _types.TokenType.comma) { - return true; - } - if (hasFrom) { - const nextAfterFrom = _base.input.charCodeAt(_tokenizer.nextTokenStartSince.call(void 0, _next + 4)); - return nextAfterFrom === _charcodes.charCodes.quotationMark || nextAfterFrom === _charcodes.charCodes.apostrophe; - } - return false; - } - function parseExportSpecifiersMaybe() { - if (_tokenizer.eat.call(void 0, _types.TokenType.comma)) { - parseExportSpecifiers(); - } - } - function parseExportFrom() { - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._from)) { - _expression.parseExprAtom.call(void 0); - maybeParseImportAttributes(); - } - _util.semicolon.call(void 0); - } - exports2.parseExportFrom = parseExportFrom; - function shouldParseExportStar() { - if (_base.isFlowEnabled) { - return _flow.flowShouldParseExportStar.call(void 0); - } else { - return _tokenizer.match.call(void 0, _types.TokenType.star); - } - } - function parseExportStar() { - if (_base.isFlowEnabled) { - _flow.flowParseExportStar.call(void 0); - } else { - baseParseExportStar(); - } - } - function baseParseExportStar() { - _util.expect.call(void 0, _types.TokenType.star); - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._as)) { - parseExportNamespace(); - } else { - parseExportFrom(); - } - } - exports2.baseParseExportStar = baseParseExportStar; - function parseExportNamespace() { - _tokenizer.next.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].type = _types.TokenType._as; - _expression.parseIdentifier.call(void 0); - parseExportSpecifiersMaybe(); - parseExportFrom(); - } - function shouldParseExportDeclaration() { - return _base.isTypeScriptEnabled && _typescript.tsIsDeclarationStart.call(void 0) || _base.isFlowEnabled && _flow.flowShouldParseExportDeclaration.call(void 0) || _base.state.type === _types.TokenType._var || _base.state.type === _types.TokenType._const || _base.state.type === _types.TokenType._let || _base.state.type === _types.TokenType._function || _base.state.type === _types.TokenType._class || _util.isContextual.call(void 0, _keywords.ContextualKeyword._async) || _tokenizer.match.call(void 0, _types.TokenType.at); - } - function parseExportSpecifiers() { - let first = true; - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_tokenizer.eat.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (first) { - first = false; - } else { - _util.expect.call(void 0, _types.TokenType.comma); - if (_tokenizer.eat.call(void 0, _types.TokenType.braceR)) { - break; - } - } - parseExportSpecifier(); - } - } - exports2.parseExportSpecifiers = parseExportSpecifiers; - function parseExportSpecifier() { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseExportSpecifier.call(void 0); - return; - } - _expression.parseIdentifier.call(void 0); - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _tokenizer.IdentifierRole.ExportAccess; - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._as)) { - _expression.parseIdentifier.call(void 0); - } - } - function isImportReflection() { - const snapshot = _base.state.snapshot(); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._module); - if (_util.eatContextual.call(void 0, _keywords.ContextualKeyword._from)) { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._from)) { - _base.state.restoreFromSnapshot(snapshot); - return true; - } else { - _base.state.restoreFromSnapshot(snapshot); - return false; - } - } else if (_tokenizer.match.call(void 0, _types.TokenType.comma)) { - _base.state.restoreFromSnapshot(snapshot); - return false; - } else { - _base.state.restoreFromSnapshot(snapshot); - return true; - } - } - function parseMaybeImportReflection() { - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._module) && isImportReflection()) { - _tokenizer.next.call(void 0); - } - } - function parseImport() { - if (_base.isTypeScriptEnabled && _tokenizer.match.call(void 0, _types.TokenType.name) && _tokenizer.lookaheadType.call(void 0) === _types.TokenType.eq) { - _typescript.tsParseImportEqualsDeclaration.call(void 0); - return; - } - if (_base.isTypeScriptEnabled && _util.isContextual.call(void 0, _keywords.ContextualKeyword._type)) { - const lookahead = _tokenizer.lookaheadTypeAndKeyword.call(void 0); - if (lookahead.type === _types.TokenType.name && lookahead.contextualKeyword !== _keywords.ContextualKeyword._from) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._type); - if (_tokenizer.lookaheadType.call(void 0) === _types.TokenType.eq) { - _typescript.tsParseImportEqualsDeclaration.call(void 0); - return; - } - } else if (lookahead.type === _types.TokenType.star || lookahead.type === _types.TokenType.braceL) { - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._type); - } - } - if (_tokenizer.match.call(void 0, _types.TokenType.string)) { - _expression.parseExprAtom.call(void 0); - } else { - parseMaybeImportReflection(); - parseImportSpecifiers(); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._from); - _expression.parseExprAtom.call(void 0); - } - maybeParseImportAttributes(); - _util.semicolon.call(void 0); - } - exports2.parseImport = parseImport; - function shouldParseDefaultImport() { - return _tokenizer.match.call(void 0, _types.TokenType.name); - } - function parseImportSpecifierLocal() { - _lval.parseImportedIdentifier.call(void 0); - } - function parseImportSpecifiers() { - if (_base.isFlowEnabled) { - _flow.flowStartParseImportSpecifiers.call(void 0); - } - let first = true; - if (shouldParseDefaultImport()) { - parseImportSpecifierLocal(); - if (!_tokenizer.eat.call(void 0, _types.TokenType.comma)) return; - } - if (_tokenizer.match.call(void 0, _types.TokenType.star)) { - _tokenizer.next.call(void 0); - _util.expectContextual.call(void 0, _keywords.ContextualKeyword._as); - parseImportSpecifierLocal(); - return; - } - _util.expect.call(void 0, _types.TokenType.braceL); - while (!_tokenizer.eat.call(void 0, _types.TokenType.braceR) && !_base.state.error) { - if (first) { - first = false; - } else { - if (_tokenizer.eat.call(void 0, _types.TokenType.colon)) { - _util.unexpected.call( - void 0, - "ES2015 named imports do not destructure. Use another statement for destructuring after the import." - ); - } - _util.expect.call(void 0, _types.TokenType.comma); - if (_tokenizer.eat.call(void 0, _types.TokenType.braceR)) { - break; - } - } - parseImportSpecifier(); - } - } - function parseImportSpecifier() { - if (_base.isTypeScriptEnabled) { - _typescript.tsParseImportSpecifier.call(void 0); - return; - } - if (_base.isFlowEnabled) { - _flow.flowParseImportSpecifier.call(void 0); - return; - } - _lval.parseImportedIdentifier.call(void 0); - if (_util.isContextual.call(void 0, _keywords.ContextualKeyword._as)) { - _base.state.tokens[_base.state.tokens.length - 1].identifierRole = _tokenizer.IdentifierRole.ImportAccess; - _tokenizer.next.call(void 0); - _lval.parseImportedIdentifier.call(void 0); - } - } - function maybeParseImportAttributes() { - if (_tokenizer.match.call(void 0, _types.TokenType._with) || _util.isContextual.call(void 0, _keywords.ContextualKeyword._assert) && !_util.hasPrecedingLineBreak.call(void 0)) { - _tokenizer.next.call(void 0); - _expression.parseObj.call(void 0, false, false); - } - } - } -}); - -// node_modules/sucrase/dist/parser/traverser/index.js -var require_traverser = __commonJS({ - "node_modules/sucrase/dist/parser/traverser/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _index = require_tokenizer(); - var _charcodes = require_charcodes(); - var _base = require_base(); - var _statement = require_statement(); - function parseFile() { - if (_base.state.pos === 0 && _base.input.charCodeAt(0) === _charcodes.charCodes.numberSign && _base.input.charCodeAt(1) === _charcodes.charCodes.exclamationMark) { - _index.skipLineComment.call(void 0, 2); - } - _index.nextToken.call(void 0); - return _statement.parseTopLevel.call(void 0); - } - exports2.parseFile = parseFile; - } -}); - -// node_modules/sucrase/dist/parser/index.js -var require_parser = __commonJS({ - "node_modules/sucrase/dist/parser/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _base = require_base(); - var _index = require_traverser(); - var File3 = class { - constructor(tokens, scopes) { - this.tokens = tokens; - this.scopes = scopes; - } - }; - exports2.File = File3; - function parse4(input, isJSXEnabled, isTypeScriptEnabled, isFlowEnabled) { - if (isFlowEnabled && isTypeScriptEnabled) { - throw new Error("Cannot combine flow and typescript plugins."); - } - _base.initParser.call(void 0, input, isJSXEnabled, isTypeScriptEnabled, isFlowEnabled); - const result = _index.parseFile.call(void 0); - if (_base.state.error) { - throw _base.augmentError.call(void 0, _base.state.error); - } - return result; - } - exports2.parse = parse4; - } -}); - -// node_modules/sucrase/dist/util/isAsyncOperation.js -var require_isAsyncOperation = __commonJS({ - "node_modules/sucrase/dist/util/isAsyncOperation.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - function isAsyncOperation(tokens) { - let index = tokens.currentIndex(); - let depth = 0; - const startToken = tokens.currentToken(); - do { - const token2 = tokens.tokens[index]; - if (token2.isOptionalChainStart) { - depth++; - } - if (token2.isOptionalChainEnd) { - depth--; - } - depth += token2.numNullishCoalesceStarts; - depth -= token2.numNullishCoalesceEnds; - if (token2.contextualKeyword === _keywords.ContextualKeyword._await && token2.identifierRole == null && token2.scopeDepth === startToken.scopeDepth) { - return true; - } - index += 1; - } while (depth > 0 && index < tokens.tokens.length); - return false; - } - exports2.default = isAsyncOperation; - } -}); - -// node_modules/sucrase/dist/TokenProcessor.js -var require_TokenProcessor = __commonJS({ - "node_modules/sucrase/dist/TokenProcessor.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _isAsyncOperation = require_isAsyncOperation(); - var _isAsyncOperation2 = _interopRequireDefault(_isAsyncOperation); - var TokenProcessor = class _TokenProcessor { - __init() { - this.resultCode = ""; - } - // Array mapping input token index to optional string index position in the - // output code. - __init2() { - this.resultMappings = new Array(this.tokens.length); - } - __init3() { - this.tokenIndex = 0; - } - constructor(code, tokens, isFlowEnabled, disableESTransforms, helperManager) { - ; - this.code = code; - this.tokens = tokens; - this.isFlowEnabled = isFlowEnabled; - this.disableESTransforms = disableESTransforms; - this.helperManager = helperManager; - _TokenProcessor.prototype.__init.call(this); - _TokenProcessor.prototype.__init2.call(this); - _TokenProcessor.prototype.__init3.call(this); - } - /** - * Snapshot the token state in a way that can be restored later, useful for - * things like lookahead. - * - * resultMappings do not need to be copied since in all use cases, they will - * be overwritten anyway after restore. - */ - snapshot() { - return { - resultCode: this.resultCode, - tokenIndex: this.tokenIndex - }; - } - restoreToSnapshot(snapshot) { - this.resultCode = snapshot.resultCode; - this.tokenIndex = snapshot.tokenIndex; - } - /** - * Remove and return the code generated since the snapshot, leaving the - * current token position in-place. Unlike most TokenProcessor operations, - * this operation can result in input/output line number mismatches because - * the removed code may contain newlines, so this operation should be used - * sparingly. - */ - dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot) { - const result = this.resultCode.slice(snapshot.resultCode.length); - this.resultCode = snapshot.resultCode; - return result; - } - reset() { - this.resultCode = ""; - this.resultMappings = new Array(this.tokens.length); - this.tokenIndex = 0; - } - matchesContextualAtIndex(index, contextualKeyword) { - return this.matches1AtIndex(index, _types.TokenType.name) && this.tokens[index].contextualKeyword === contextualKeyword; - } - identifierNameAtIndex(index) { - return this.identifierNameForToken(this.tokens[index]); - } - identifierNameAtRelativeIndex(relativeIndex) { - return this.identifierNameForToken(this.tokenAtRelativeIndex(relativeIndex)); - } - identifierName() { - return this.identifierNameForToken(this.currentToken()); - } - identifierNameForToken(token2) { - return this.code.slice(token2.start, token2.end); - } - rawCodeForToken(token2) { - return this.code.slice(token2.start, token2.end); - } - stringValueAtIndex(index) { - return this.stringValueForToken(this.tokens[index]); - } - stringValue() { - return this.stringValueForToken(this.currentToken()); - } - stringValueForToken(token2) { - return this.code.slice(token2.start + 1, token2.end - 1); - } - matches1AtIndex(index, t1) { - return this.tokens[index].type === t1; - } - matches2AtIndex(index, t1, t22) { - return this.tokens[index].type === t1 && this.tokens[index + 1].type === t22; - } - matches3AtIndex(index, t1, t22, t32) { - return this.tokens[index].type === t1 && this.tokens[index + 1].type === t22 && this.tokens[index + 2].type === t32; - } - matches1(t1) { - return this.tokens[this.tokenIndex].type === t1; - } - matches2(t1, t22) { - return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22; - } - matches3(t1, t22, t32) { - return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32; - } - matches4(t1, t22, t32, t4) { - return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32 && this.tokens[this.tokenIndex + 3].type === t4; - } - matches5(t1, t22, t32, t4, t5) { - return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32 && this.tokens[this.tokenIndex + 3].type === t4 && this.tokens[this.tokenIndex + 4].type === t5; - } - matchesContextual(contextualKeyword) { - return this.matchesContextualAtIndex(this.tokenIndex, contextualKeyword); - } - matchesContextIdAndLabel(type, contextId) { - return this.matches1(type) && this.currentToken().contextId === contextId; - } - previousWhitespaceAndComments() { - let whitespaceAndComments = this.code.slice( - this.tokenIndex > 0 ? this.tokens[this.tokenIndex - 1].end : 0, - this.tokenIndex < this.tokens.length ? this.tokens[this.tokenIndex].start : this.code.length - ); - if (this.isFlowEnabled) { - whitespaceAndComments = whitespaceAndComments.replace(/@flow/g, ""); - } - return whitespaceAndComments; - } - replaceToken(newCode) { - this.resultCode += this.previousWhitespaceAndComments(); - this.appendTokenPrefix(); - this.resultMappings[this.tokenIndex] = this.resultCode.length; - this.resultCode += newCode; - this.appendTokenSuffix(); - this.tokenIndex++; - } - replaceTokenTrimmingLeftWhitespace(newCode) { - this.resultCode += this.previousWhitespaceAndComments().replace(/[^\r\n]/g, ""); - this.appendTokenPrefix(); - this.resultMappings[this.tokenIndex] = this.resultCode.length; - this.resultCode += newCode; - this.appendTokenSuffix(); - this.tokenIndex++; - } - removeInitialToken() { - this.replaceToken(""); - } - removeToken() { - this.replaceTokenTrimmingLeftWhitespace(""); - } - /** - * Remove all code until the next }, accounting for balanced braces. - */ - removeBalancedCode() { - let braceDepth = 0; - while (!this.isAtEnd()) { - if (this.matches1(_types.TokenType.braceL)) { - braceDepth++; - } else if (this.matches1(_types.TokenType.braceR)) { - if (braceDepth === 0) { - return; - } - braceDepth--; - } - this.removeToken(); - } - } - copyExpectedToken(tokenType) { - if (this.tokens[this.tokenIndex].type !== tokenType) { - throw new Error(`Expected token ${tokenType}`); - } - this.copyToken(); - } - copyToken() { - this.resultCode += this.previousWhitespaceAndComments(); - this.appendTokenPrefix(); - this.resultMappings[this.tokenIndex] = this.resultCode.length; - this.resultCode += this.code.slice( - this.tokens[this.tokenIndex].start, - this.tokens[this.tokenIndex].end - ); - this.appendTokenSuffix(); - this.tokenIndex++; - } - copyTokenWithPrefix(prefix2) { - this.resultCode += this.previousWhitespaceAndComments(); - this.appendTokenPrefix(); - this.resultCode += prefix2; - this.resultMappings[this.tokenIndex] = this.resultCode.length; - this.resultCode += this.code.slice( - this.tokens[this.tokenIndex].start, - this.tokens[this.tokenIndex].end - ); - this.appendTokenSuffix(); - this.tokenIndex++; - } - appendTokenPrefix() { - const token2 = this.currentToken(); - if (token2.numNullishCoalesceStarts || token2.isOptionalChainStart) { - token2.isAsyncOperation = _isAsyncOperation2.default.call(void 0, this); - } - if (this.disableESTransforms) { - return; - } - if (token2.numNullishCoalesceStarts) { - for (let i4 = 0; i4 < token2.numNullishCoalesceStarts; i4++) { - if (token2.isAsyncOperation) { - this.resultCode += "await "; - this.resultCode += this.helperManager.getHelperName("asyncNullishCoalesce"); - } else { - this.resultCode += this.helperManager.getHelperName("nullishCoalesce"); - } - this.resultCode += "("; - } - } - if (token2.isOptionalChainStart) { - if (token2.isAsyncOperation) { - this.resultCode += "await "; - } - if (this.tokenIndex > 0 && this.tokenAtRelativeIndex(-1).type === _types.TokenType._delete) { - if (token2.isAsyncOperation) { - this.resultCode += this.helperManager.getHelperName("asyncOptionalChainDelete"); - } else { - this.resultCode += this.helperManager.getHelperName("optionalChainDelete"); - } - } else if (token2.isAsyncOperation) { - this.resultCode += this.helperManager.getHelperName("asyncOptionalChain"); - } else { - this.resultCode += this.helperManager.getHelperName("optionalChain"); - } - this.resultCode += "(["; - } - } - appendTokenSuffix() { - const token2 = this.currentToken(); - if (token2.isOptionalChainEnd && !this.disableESTransforms) { - this.resultCode += "])"; - } - if (token2.numNullishCoalesceEnds && !this.disableESTransforms) { - for (let i4 = 0; i4 < token2.numNullishCoalesceEnds; i4++) { - this.resultCode += "))"; - } - } - } - appendCode(code) { - this.resultCode += code; - } - currentToken() { - return this.tokens[this.tokenIndex]; - } - currentTokenCode() { - const token2 = this.currentToken(); - return this.code.slice(token2.start, token2.end); - } - tokenAtRelativeIndex(relativeIndex) { - return this.tokens[this.tokenIndex + relativeIndex]; - } - currentIndex() { - return this.tokenIndex; - } - /** - * Move to the next token. Only suitable in preprocessing steps. When - * generating new code, you should use copyToken or removeToken. - */ - nextToken() { - if (this.tokenIndex === this.tokens.length) { - throw new Error("Unexpectedly reached end of input."); - } - this.tokenIndex++; - } - previousToken() { - this.tokenIndex--; - } - finish() { - if (this.tokenIndex !== this.tokens.length) { - throw new Error("Tried to finish processing tokens before reaching the end."); - } - this.resultCode += this.previousWhitespaceAndComments(); - return { code: this.resultCode, mappings: this.resultMappings }; - } - isAtEnd() { - return this.tokenIndex === this.tokens.length; - } - }; - exports2.default = TokenProcessor; - } -}); - -// node_modules/sucrase/dist/util/getClassInfo.js -var require_getClassInfo = __commonJS({ - "node_modules/sucrase/dist/util/getClassInfo.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - var _types = require_types(); - function getClassInfo(rootTransformer, tokens, nameManager, disableESTransforms) { - const snapshot = tokens.snapshot(); - const headerInfo = processClassHeader(tokens); - let constructorInitializerStatements = []; - const instanceInitializerNames = []; - const staticInitializerNames = []; - let constructorInsertPos = null; - const fields = []; - const rangesToRemove = []; - const classContextId = tokens.currentToken().contextId; - if (classContextId == null) { - throw new Error("Expected non-null class context ID on class open-brace."); - } - tokens.nextToken(); - while (!tokens.matchesContextIdAndLabel(_types.TokenType.braceR, classContextId)) { - if (tokens.matchesContextual(_keywords.ContextualKeyword._constructor) && !tokens.currentToken().isType) { - ({ constructorInitializerStatements, constructorInsertPos } = processConstructor(tokens)); - } else if (tokens.matches1(_types.TokenType.semi)) { - if (!disableESTransforms) { - rangesToRemove.push({ start: tokens.currentIndex(), end: tokens.currentIndex() + 1 }); - } - tokens.nextToken(); - } else if (tokens.currentToken().isType) { - tokens.nextToken(); - } else { - const statementStartIndex = tokens.currentIndex(); - let isStatic = false; - let isESPrivate = false; - let isDeclareOrAbstract = false; - while (isAccessModifier(tokens.currentToken())) { - if (tokens.matches1(_types.TokenType._static)) { - isStatic = true; - } - if (tokens.matches1(_types.TokenType.hash)) { - isESPrivate = true; - } - if (tokens.matches1(_types.TokenType._declare) || tokens.matches1(_types.TokenType._abstract)) { - isDeclareOrAbstract = true; - } - tokens.nextToken(); - } - if (isStatic && tokens.matches1(_types.TokenType.braceL)) { - skipToNextClassElement(tokens, classContextId); - continue; - } - if (isESPrivate) { - skipToNextClassElement(tokens, classContextId); - continue; - } - if (tokens.matchesContextual(_keywords.ContextualKeyword._constructor) && !tokens.currentToken().isType) { - ({ constructorInitializerStatements, constructorInsertPos } = processConstructor(tokens)); - continue; - } - const nameStartIndex = tokens.currentIndex(); - skipFieldName(tokens); - if (tokens.matches1(_types.TokenType.lessThan) || tokens.matches1(_types.TokenType.parenL)) { - skipToNextClassElement(tokens, classContextId); - continue; - } - while (tokens.currentToken().isType) { - tokens.nextToken(); - } - if (tokens.matches1(_types.TokenType.eq)) { - const equalsIndex = tokens.currentIndex(); - const valueEnd = tokens.currentToken().rhsEndIndex; - if (valueEnd == null) { - throw new Error("Expected rhsEndIndex on class field assignment."); - } - tokens.nextToken(); - while (tokens.currentIndex() < valueEnd) { - rootTransformer.processToken(); - } - let initializerName; - if (isStatic) { - initializerName = nameManager.claimFreeName("__initStatic"); - staticInitializerNames.push(initializerName); - } else { - initializerName = nameManager.claimFreeName("__init"); - instanceInitializerNames.push(initializerName); - } - fields.push({ - initializerName, - equalsIndex, - start: nameStartIndex, - end: tokens.currentIndex() - }); - } else if (!disableESTransforms || isDeclareOrAbstract) { - rangesToRemove.push({ start: statementStartIndex, end: tokens.currentIndex() }); - } - } - } - tokens.restoreToSnapshot(snapshot); - if (disableESTransforms) { - return { - headerInfo, - constructorInitializerStatements, - instanceInitializerNames: [], - staticInitializerNames: [], - constructorInsertPos, - fields: [], - rangesToRemove - }; - } else { - return { - headerInfo, - constructorInitializerStatements, - instanceInitializerNames, - staticInitializerNames, - constructorInsertPos, - fields, - rangesToRemove - }; - } - } - exports2.default = getClassInfo; - function skipToNextClassElement(tokens, classContextId) { - tokens.nextToken(); - while (tokens.currentToken().contextId !== classContextId) { - tokens.nextToken(); - } - while (isAccessModifier(tokens.tokenAtRelativeIndex(-1))) { - tokens.previousToken(); - } - } - function processClassHeader(tokens) { - const classToken = tokens.currentToken(); - const contextId = classToken.contextId; - if (contextId == null) { - throw new Error("Expected context ID on class token."); - } - const isExpression = classToken.isExpression; - if (isExpression == null) { - throw new Error("Expected isExpression on class token."); - } - let className = null; - let hasSuperclass = false; - tokens.nextToken(); - if (tokens.matches1(_types.TokenType.name)) { - className = tokens.identifierName(); - } - while (!tokens.matchesContextIdAndLabel(_types.TokenType.braceL, contextId)) { - if (tokens.matches1(_types.TokenType._extends) && !tokens.currentToken().isType) { - hasSuperclass = true; - } - tokens.nextToken(); - } - return { isExpression, className, hasSuperclass }; - } - function processConstructor(tokens) { - const constructorInitializerStatements = []; - tokens.nextToken(); - const constructorContextId = tokens.currentToken().contextId; - if (constructorContextId == null) { - throw new Error("Expected context ID on open-paren starting constructor params."); - } - while (!tokens.matchesContextIdAndLabel(_types.TokenType.parenR, constructorContextId)) { - if (tokens.currentToken().contextId === constructorContextId) { - tokens.nextToken(); - if (isAccessModifier(tokens.currentToken())) { - tokens.nextToken(); - while (isAccessModifier(tokens.currentToken())) { - tokens.nextToken(); - } - const token2 = tokens.currentToken(); - if (token2.type !== _types.TokenType.name) { - throw new Error("Expected identifier after access modifiers in constructor arg."); - } - const name = tokens.identifierNameForToken(token2); - constructorInitializerStatements.push(`this.${name} = ${name}`); - } - } else { - tokens.nextToken(); - } - } - tokens.nextToken(); - while (tokens.currentToken().isType) { - tokens.nextToken(); - } - let constructorInsertPos = tokens.currentIndex(); - let foundSuperCall = false; - while (!tokens.matchesContextIdAndLabel(_types.TokenType.braceR, constructorContextId)) { - if (!foundSuperCall && tokens.matches2(_types.TokenType._super, _types.TokenType.parenL)) { - tokens.nextToken(); - const superCallContextId = tokens.currentToken().contextId; - if (superCallContextId == null) { - throw new Error("Expected a context ID on the super call"); - } - while (!tokens.matchesContextIdAndLabel(_types.TokenType.parenR, superCallContextId)) { - tokens.nextToken(); - } - constructorInsertPos = tokens.currentIndex(); - foundSuperCall = true; - } - tokens.nextToken(); - } - tokens.nextToken(); - return { constructorInitializerStatements, constructorInsertPos }; - } - function isAccessModifier(token2) { - return [ - _types.TokenType._async, - _types.TokenType._get, - _types.TokenType._set, - _types.TokenType.plus, - _types.TokenType.minus, - _types.TokenType._readonly, - _types.TokenType._static, - _types.TokenType._public, - _types.TokenType._private, - _types.TokenType._protected, - _types.TokenType._override, - _types.TokenType._abstract, - _types.TokenType.star, - _types.TokenType._declare, - _types.TokenType.hash - ].includes(token2.type); - } - function skipFieldName(tokens) { - if (tokens.matches1(_types.TokenType.bracketL)) { - const startToken = tokens.currentToken(); - const classContextId = startToken.contextId; - if (classContextId == null) { - throw new Error("Expected class context ID on computed name open bracket."); - } - while (!tokens.matchesContextIdAndLabel(_types.TokenType.bracketR, classContextId)) { - tokens.nextToken(); - } - tokens.nextToken(); - } else { - tokens.nextToken(); - } - } - } -}); - -// node_modules/sucrase/dist/util/elideImportEquals.js -var require_elideImportEquals = __commonJS({ - "node_modules/sucrase/dist/util/elideImportEquals.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _types = require_types(); - function elideImportEquals(tokens) { - tokens.removeInitialToken(); - tokens.removeToken(); - tokens.removeToken(); - tokens.removeToken(); - if (tokens.matches1(_types.TokenType.parenL)) { - tokens.removeToken(); - tokens.removeToken(); - tokens.removeToken(); - } else { - while (tokens.matches1(_types.TokenType.dot)) { - tokens.removeToken(); - tokens.removeToken(); - } - } - } - exports2.default = elideImportEquals; - } -}); - -// node_modules/sucrase/dist/util/getDeclarationInfo.js -var require_getDeclarationInfo = __commonJS({ - "node_modules/sucrase/dist/util/getDeclarationInfo.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _tokenizer = require_tokenizer(); - var _types = require_types(); - var EMPTY_DECLARATION_INFO = { - typeDeclarations: /* @__PURE__ */ new Set(), - valueDeclarations: /* @__PURE__ */ new Set() - }; - exports2.EMPTY_DECLARATION_INFO = EMPTY_DECLARATION_INFO; - function getDeclarationInfo(tokens) { - const typeDeclarations = /* @__PURE__ */ new Set(); - const valueDeclarations = /* @__PURE__ */ new Set(); - for (let i4 = 0; i4 < tokens.tokens.length; i4++) { - const token2 = tokens.tokens[i4]; - if (token2.type === _types.TokenType.name && _tokenizer.isTopLevelDeclaration.call(void 0, token2)) { - if (token2.isType) { - typeDeclarations.add(tokens.identifierNameForToken(token2)); - } else { - valueDeclarations.add(tokens.identifierNameForToken(token2)); - } - } - } - return { typeDeclarations, valueDeclarations }; - } - exports2.default = getDeclarationInfo; - } -}); - -// node_modules/sucrase/dist/util/isExportFrom.js -var require_isExportFrom = __commonJS({ - "node_modules/sucrase/dist/util/isExportFrom.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - var _types = require_types(); - function isExportFrom(tokens) { - let closeBraceIndex = tokens.currentIndex(); - while (!tokens.matches1AtIndex(closeBraceIndex, _types.TokenType.braceR)) { - closeBraceIndex++; - } - return tokens.matchesContextualAtIndex(closeBraceIndex + 1, _keywords.ContextualKeyword._from) && tokens.matches1AtIndex(closeBraceIndex + 2, _types.TokenType.string); - } - exports2.default = isExportFrom; - } -}); - -// node_modules/sucrase/dist/util/removeMaybeImportAttributes.js -var require_removeMaybeImportAttributes = __commonJS({ - "node_modules/sucrase/dist/util/removeMaybeImportAttributes.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _keywords = require_keywords(); - var _types = require_types(); - function removeMaybeImportAttributes(tokens) { - if (tokens.matches2(_types.TokenType._with, _types.TokenType.braceL) || tokens.matches2(_types.TokenType.name, _types.TokenType.braceL) && tokens.matchesContextual(_keywords.ContextualKeyword._assert)) { - tokens.removeToken(); - tokens.removeToken(); - tokens.removeBalancedCode(); - tokens.removeToken(); - } - } - exports2.removeMaybeImportAttributes = removeMaybeImportAttributes; - } -}); - -// node_modules/sucrase/dist/util/shouldElideDefaultExport.js -var require_shouldElideDefaultExport = __commonJS({ - "node_modules/sucrase/dist/util/shouldElideDefaultExport.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _types = require_types(); - function shouldElideDefaultExport(isTypeScriptTransformEnabled, keepUnusedImports, tokens, declarationInfo) { - if (!isTypeScriptTransformEnabled || keepUnusedImports) { - return false; - } - const exportToken = tokens.currentToken(); - if (exportToken.rhsEndIndex == null) { - throw new Error("Expected non-null rhsEndIndex on export token."); - } - const numTokens = exportToken.rhsEndIndex - tokens.currentIndex(); - if (numTokens !== 3 && !(numTokens === 4 && tokens.matches1AtIndex(exportToken.rhsEndIndex - 1, _types.TokenType.semi))) { - return false; - } - const identifierToken = tokens.tokenAtRelativeIndex(2); - if (identifierToken.type !== _types.TokenType.name) { - return false; - } - const exportedName = tokens.identifierNameForToken(identifierToken); - return declarationInfo.typeDeclarations.has(exportedName) && !declarationInfo.valueDeclarations.has(exportedName); - } - exports2.default = shouldElideDefaultExport; - } -}); - -// node_modules/sucrase/dist/transformers/CJSImportTransformer.js -var require_CJSImportTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/CJSImportTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tokenizer = require_tokenizer(); - var _keywords = require_keywords(); - var _types = require_types(); - var _elideImportEquals = require_elideImportEquals(); - var _elideImportEquals2 = _interopRequireDefault(_elideImportEquals); - var _getDeclarationInfo = require_getDeclarationInfo(); - var _getDeclarationInfo2 = _interopRequireDefault(_getDeclarationInfo); - var _getImportExportSpecifierInfo = require_getImportExportSpecifierInfo(); - var _getImportExportSpecifierInfo2 = _interopRequireDefault(_getImportExportSpecifierInfo); - var _isExportFrom = require_isExportFrom(); - var _isExportFrom2 = _interopRequireDefault(_isExportFrom); - var _removeMaybeImportAttributes = require_removeMaybeImportAttributes(); - var _shouldElideDefaultExport = require_shouldElideDefaultExport(); - var _shouldElideDefaultExport2 = _interopRequireDefault(_shouldElideDefaultExport); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var CJSImportTransformer = class _CJSImportTransformer extends _Transformer2.default { - __init() { - this.hadExport = false; - } - __init2() { - this.hadNamedExport = false; - } - __init3() { - this.hadDefaultExport = false; - } - constructor(rootTransformer, tokens, importProcessor, nameManager, helperManager, reactHotLoaderTransformer, enableLegacyBabel5ModuleInterop, enableLegacyTypeScriptModuleInterop, isTypeScriptTransformEnabled, isFlowTransformEnabled, preserveDynamicImport, keepUnusedImports) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.importProcessor = importProcessor; - this.nameManager = nameManager; - this.helperManager = helperManager; - this.reactHotLoaderTransformer = reactHotLoaderTransformer; - this.enableLegacyBabel5ModuleInterop = enableLegacyBabel5ModuleInterop; - this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop; - this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; - this.isFlowTransformEnabled = isFlowTransformEnabled; - this.preserveDynamicImport = preserveDynamicImport; - this.keepUnusedImports = keepUnusedImports; - _CJSImportTransformer.prototype.__init.call(this); - _CJSImportTransformer.prototype.__init2.call(this); - _CJSImportTransformer.prototype.__init3.call(this); - ; - this.declarationInfo = isTypeScriptTransformEnabled ? _getDeclarationInfo2.default.call(void 0, tokens) : _getDeclarationInfo.EMPTY_DECLARATION_INFO; - } - getPrefixCode() { - let prefix2 = ""; - if (this.hadExport) { - prefix2 += 'Object.defineProperty(exports, "__esModule", {value: true});'; - } - return prefix2; - } - getSuffixCode() { - if (this.enableLegacyBabel5ModuleInterop && this.hadDefaultExport && !this.hadNamedExport) { - return "\nmodule.exports = exports.default;\n"; - } - return ""; - } - process() { - if (this.tokens.matches3(_types.TokenType._import, _types.TokenType.name, _types.TokenType.eq)) { - return this.processImportEquals(); - } - if (this.tokens.matches1(_types.TokenType._import)) { - this.processImport(); - return true; - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.eq)) { - this.tokens.replaceToken("module.exports"); - return true; - } - if (this.tokens.matches1(_types.TokenType._export) && !this.tokens.currentToken().isType) { - this.hadExport = true; - return this.processExport(); - } - if (this.tokens.matches2(_types.TokenType.name, _types.TokenType.postIncDec)) { - if (this.processPostIncDec()) { - return true; - } - } - if (this.tokens.matches1(_types.TokenType.name) || this.tokens.matches1(_types.TokenType.jsxName)) { - return this.processIdentifier(); - } - if (this.tokens.matches1(_types.TokenType.eq)) { - return this.processAssignment(); - } - if (this.tokens.matches1(_types.TokenType.assign)) { - return this.processComplexAssignment(); - } - if (this.tokens.matches1(_types.TokenType.preIncDec)) { - return this.processPreIncDec(); - } - return false; - } - processImportEquals() { - const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); - if (this.importProcessor.shouldAutomaticallyElideImportedName(importName)) { - _elideImportEquals2.default.call(void 0, this.tokens); - } else { - this.tokens.replaceToken("const"); - } - return true; - } - /** - * Transform this: - * import foo, {bar} from 'baz'; - * into - * var _baz = require('baz'); var _baz2 = _interopRequireDefault(_baz); - * - * The import code was already generated in the import preprocessing step, so - * we just need to look it up. - */ - processImport() { - if (this.tokens.matches2(_types.TokenType._import, _types.TokenType.parenL)) { - if (this.preserveDynamicImport) { - this.tokens.copyToken(); - return; - } - const requireWrapper = this.enableLegacyTypeScriptModuleInterop ? "" : `${this.helperManager.getHelperName("interopRequireWildcard")}(`; - this.tokens.replaceToken(`Promise.resolve().then(() => ${requireWrapper}require`); - const contextId = this.tokens.currentToken().contextId; - if (contextId == null) { - throw new Error("Expected context ID on dynamic import invocation."); - } - this.tokens.copyToken(); - while (!this.tokens.matchesContextIdAndLabel(_types.TokenType.parenR, contextId)) { - this.rootTransformer.processToken(); - } - this.tokens.replaceToken(requireWrapper ? ")))" : "))"); - return; - } - const shouldElideImport = this.removeImportAndDetectIfShouldElide(); - if (shouldElideImport) { - this.tokens.removeToken(); - } else { - const path = this.tokens.stringValue(); - this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); - this.tokens.appendCode(this.importProcessor.claimImportCode(path)); - } - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - if (this.tokens.matches1(_types.TokenType.semi)) { - this.tokens.removeToken(); - } - } - /** - * Erase this import (since any CJS output would be completely different), and - * return true if this import is should be elided due to being a type-only - * import. Such imports will not be emitted at all to avoid side effects. - * - * Import elision only happens with the TypeScript or Flow transforms enabled. - * - * TODO: This function has some awkward overlap with - * CJSImportProcessor.pruneTypeOnlyImports , and the two should be unified. - * That function handles TypeScript implicit import name elision, and removes - * an import if all typical imported names (without `type`) are removed due - * to being type-only imports. This function handles Flow import removal and - * properly distinguishes `import 'foo'` from `import {} from 'foo'` for TS - * purposes. - * - * The position should end at the import string. - */ - removeImportAndDetectIfShouldElide() { - this.tokens.removeInitialToken(); - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._type) && !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, _types.TokenType.comma) && !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, _keywords.ContextualKeyword._from)) { - this.removeRemainingImport(); - return true; - } - if (this.tokens.matches1(_types.TokenType.name) || this.tokens.matches1(_types.TokenType.star)) { - this.removeRemainingImport(); - return false; - } - if (this.tokens.matches1(_types.TokenType.string)) { - return false; - } - let foundNonTypeImport = false; - let foundAnyNamedImport = false; - while (!this.tokens.matches1(_types.TokenType.string)) { - if (!foundNonTypeImport && this.tokens.matches1(_types.TokenType.braceL) || this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - if (!this.tokens.matches1(_types.TokenType.braceR)) { - foundAnyNamedImport = true; - } - if (this.tokens.matches2(_types.TokenType.name, _types.TokenType.comma) || this.tokens.matches2(_types.TokenType.name, _types.TokenType.braceR) || this.tokens.matches4(_types.TokenType.name, _types.TokenType.name, _types.TokenType.name, _types.TokenType.comma) || this.tokens.matches4(_types.TokenType.name, _types.TokenType.name, _types.TokenType.name, _types.TokenType.braceR)) { - foundNonTypeImport = true; - } - } - this.tokens.removeToken(); - } - if (this.keepUnusedImports) { - return false; - } - if (this.isTypeScriptTransformEnabled) { - return !foundNonTypeImport; - } else if (this.isFlowTransformEnabled) { - return foundAnyNamedImport && !foundNonTypeImport; - } else { - return false; - } - } - removeRemainingImport() { - while (!this.tokens.matches1(_types.TokenType.string)) { - this.tokens.removeToken(); - } - } - processIdentifier() { - const token2 = this.tokens.currentToken(); - if (token2.shadowsGlobal) { - return false; - } - if (token2.identifierRole === _tokenizer.IdentifierRole.ObjectShorthand) { - return this.processObjectShorthand(); - } - if (token2.identifierRole !== _tokenizer.IdentifierRole.Access) { - return false; - } - const replacement = this.importProcessor.getIdentifierReplacement( - this.tokens.identifierNameForToken(token2) - ); - if (!replacement) { - return false; - } - let possibleOpenParenIndex = this.tokens.currentIndex() + 1; - while (possibleOpenParenIndex < this.tokens.tokens.length && this.tokens.tokens[possibleOpenParenIndex].type === _types.TokenType.parenR) { - possibleOpenParenIndex++; - } - if (this.tokens.tokens[possibleOpenParenIndex].type === _types.TokenType.parenL) { - if (this.tokens.tokenAtRelativeIndex(1).type === _types.TokenType.parenL && this.tokens.tokenAtRelativeIndex(-1).type !== _types.TokenType._new) { - this.tokens.replaceToken(`${replacement}.call(void 0, `); - this.tokens.removeToken(); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - } else { - this.tokens.replaceToken(`(0, ${replacement})`); - } - } else { - this.tokens.replaceToken(replacement); - } - return true; - } - processObjectShorthand() { - const identifier2 = this.tokens.identifierName(); - const replacement = this.importProcessor.getIdentifierReplacement(identifier2); - if (!replacement) { - return false; - } - this.tokens.replaceToken(`${identifier2}: ${replacement}`); - return true; - } - processExport() { - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._enum) || this.tokens.matches3(_types.TokenType._export, _types.TokenType._const, _types.TokenType._enum)) { - this.hadNamedExport = true; - return false; - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._default)) { - if (this.tokens.matches3(_types.TokenType._export, _types.TokenType._default, _types.TokenType._enum)) { - this.hadDefaultExport = true; - return false; - } - this.processExportDefault(); - return true; - } else if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.braceL)) { - this.processExportBindings(); - return true; - } else if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.name) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, _keywords.ContextualKeyword._type)) { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - if (this.tokens.matches1(_types.TokenType.braceL)) { - while (!this.tokens.matches1(_types.TokenType.braceR)) { - this.tokens.removeToken(); - } - this.tokens.removeToken(); - } else { - this.tokens.removeToken(); - if (this.tokens.matches1(_types.TokenType._as)) { - this.tokens.removeToken(); - this.tokens.removeToken(); - } - } - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._from) && this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, _types.TokenType.string)) { - this.tokens.removeToken(); - this.tokens.removeToken(); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - } - return true; - } - this.hadNamedExport = true; - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._var) || this.tokens.matches2(_types.TokenType._export, _types.TokenType._let) || this.tokens.matches2(_types.TokenType._export, _types.TokenType._const)) { - this.processExportVar(); - return true; - } else if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._function) || // export async function - this.tokens.matches3(_types.TokenType._export, _types.TokenType.name, _types.TokenType._function)) { - this.processExportFunction(); - return true; - } else if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._class) || this.tokens.matches3(_types.TokenType._export, _types.TokenType._abstract, _types.TokenType._class) || this.tokens.matches2(_types.TokenType._export, _types.TokenType.at)) { - this.processExportClass(); - return true; - } else if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.star)) { - this.processExportStar(); - return true; - } else { - throw new Error("Unrecognized export syntax."); - } - } - processAssignment() { - const index = this.tokens.currentIndex(); - const identifierToken = this.tokens.tokens[index - 1]; - if (identifierToken.isType || identifierToken.type !== _types.TokenType.name) { - return false; - } - if (identifierToken.shadowsGlobal) { - return false; - } - if (index >= 2 && this.tokens.matches1AtIndex(index - 2, _types.TokenType.dot)) { - return false; - } - if (index >= 2 && [_types.TokenType._var, _types.TokenType._let, _types.TokenType._const].includes(this.tokens.tokens[index - 2].type)) { - return false; - } - const assignmentSnippet = this.importProcessor.resolveExportBinding( - this.tokens.identifierNameForToken(identifierToken) - ); - if (!assignmentSnippet) { - return false; - } - this.tokens.copyToken(); - this.tokens.appendCode(` ${assignmentSnippet} =`); - return true; - } - /** - * Process something like `a += 3`, where `a` might be an exported value. - */ - processComplexAssignment() { - const index = this.tokens.currentIndex(); - const identifierToken = this.tokens.tokens[index - 1]; - if (identifierToken.type !== _types.TokenType.name) { - return false; - } - if (identifierToken.shadowsGlobal) { - return false; - } - if (index >= 2 && this.tokens.matches1AtIndex(index - 2, _types.TokenType.dot)) { - return false; - } - const assignmentSnippet = this.importProcessor.resolveExportBinding( - this.tokens.identifierNameForToken(identifierToken) - ); - if (!assignmentSnippet) { - return false; - } - this.tokens.appendCode(` = ${assignmentSnippet}`); - this.tokens.copyToken(); - return true; - } - /** - * Process something like `++a`, where `a` might be an exported value. - */ - processPreIncDec() { - const index = this.tokens.currentIndex(); - const identifierToken = this.tokens.tokens[index + 1]; - if (identifierToken.type !== _types.TokenType.name) { - return false; - } - if (identifierToken.shadowsGlobal) { - return false; - } - if (index + 2 < this.tokens.tokens.length && (this.tokens.matches1AtIndex(index + 2, _types.TokenType.dot) || this.tokens.matches1AtIndex(index + 2, _types.TokenType.bracketL) || this.tokens.matches1AtIndex(index + 2, _types.TokenType.parenL))) { - return false; - } - const identifierName = this.tokens.identifierNameForToken(identifierToken); - const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName); - if (!assignmentSnippet) { - return false; - } - this.tokens.appendCode(`${assignmentSnippet} = `); - this.tokens.copyToken(); - return true; - } - /** - * Process something like `a++`, where `a` might be an exported value. - * This starts at the `a`, not at the `++`. - */ - processPostIncDec() { - const index = this.tokens.currentIndex(); - const identifierToken = this.tokens.tokens[index]; - const operatorToken = this.tokens.tokens[index + 1]; - if (identifierToken.type !== _types.TokenType.name) { - return false; - } - if (identifierToken.shadowsGlobal) { - return false; - } - if (index >= 1 && this.tokens.matches1AtIndex(index - 1, _types.TokenType.dot)) { - return false; - } - const identifierName = this.tokens.identifierNameForToken(identifierToken); - const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName); - if (!assignmentSnippet) { - return false; - } - const operatorCode = this.tokens.rawCodeForToken(operatorToken); - const base = this.importProcessor.getIdentifierReplacement(identifierName) || identifierName; - if (operatorCode === "++") { - this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} + 1, ${base} - 1)`); - } else if (operatorCode === "--") { - this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} - 1, ${base} + 1)`); - } else { - throw new Error(`Unexpected operator: ${operatorCode}`); - } - this.tokens.removeToken(); - return true; - } - processExportDefault() { - let exportedRuntimeValue = true; - if (this.tokens.matches4(_types.TokenType._export, _types.TokenType._default, _types.TokenType._function, _types.TokenType.name) || // export default async function - this.tokens.matches5(_types.TokenType._export, _types.TokenType._default, _types.TokenType.name, _types.TokenType._function, _types.TokenType.name) && this.tokens.matchesContextualAtIndex( - this.tokens.currentIndex() + 2, - _keywords.ContextualKeyword._async - )) { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - const name = this.processNamedFunction(); - this.tokens.appendCode(` exports.default = ${name};`); - } else if (this.tokens.matches4(_types.TokenType._export, _types.TokenType._default, _types.TokenType._class, _types.TokenType.name) || this.tokens.matches5(_types.TokenType._export, _types.TokenType._default, _types.TokenType._abstract, _types.TokenType._class, _types.TokenType.name) || this.tokens.matches3(_types.TokenType._export, _types.TokenType._default, _types.TokenType.at)) { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - this.copyDecorators(); - if (this.tokens.matches1(_types.TokenType._abstract)) { - this.tokens.removeToken(); - } - const name = this.rootTransformer.processNamedClass(); - this.tokens.appendCode(` exports.default = ${name};`); - } else if (_shouldElideDefaultExport2.default.call( - void 0, - this.isTypeScriptTransformEnabled, - this.keepUnusedImports, - this.tokens, - this.declarationInfo - )) { - exportedRuntimeValue = false; - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - this.tokens.removeToken(); - } else if (this.reactHotLoaderTransformer) { - const defaultVarName = this.nameManager.claimFreeName("_default"); - this.tokens.replaceToken(`let ${defaultVarName}; exports.`); - this.tokens.copyToken(); - this.tokens.appendCode(` = ${defaultVarName} =`); - this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName); - } else { - this.tokens.replaceToken("exports."); - this.tokens.copyToken(); - this.tokens.appendCode(" ="); - } - if (exportedRuntimeValue) { - this.hadDefaultExport = true; - } - } - copyDecorators() { - while (this.tokens.matches1(_types.TokenType.at)) { - this.tokens.copyToken(); - if (this.tokens.matches1(_types.TokenType.parenL)) { - this.tokens.copyExpectedToken(_types.TokenType.parenL); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - } else { - this.tokens.copyExpectedToken(_types.TokenType.name); - while (this.tokens.matches1(_types.TokenType.dot)) { - this.tokens.copyExpectedToken(_types.TokenType.dot); - this.tokens.copyExpectedToken(_types.TokenType.name); - } - if (this.tokens.matches1(_types.TokenType.parenL)) { - this.tokens.copyExpectedToken(_types.TokenType.parenL); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - } - } - } - } - /** - * Transform a declaration like `export var`, `export let`, or `export const`. - */ - processExportVar() { - if (this.isSimpleExportVar()) { - this.processSimpleExportVar(); - } else { - this.processComplexExportVar(); - } - } - /** - * Determine if the export is of the form: - * export var/let/const [varName] = [expr]; - * In other words, determine if function name inference might apply. - */ - isSimpleExportVar() { - let tokenIndex = this.tokens.currentIndex(); - tokenIndex++; - tokenIndex++; - if (!this.tokens.matches1AtIndex(tokenIndex, _types.TokenType.name)) { - return false; - } - tokenIndex++; - while (tokenIndex < this.tokens.tokens.length && this.tokens.tokens[tokenIndex].isType) { - tokenIndex++; - } - if (!this.tokens.matches1AtIndex(tokenIndex, _types.TokenType.eq)) { - return false; - } - return true; - } - /** - * Transform an `export var` declaration initializing a single variable. - * - * For example, this: - * export const f = () => {}; - * becomes this: - * const f = () => {}; exports.f = f; - * - * The variable is unused (e.g. exports.f has the true value of the export). - * We need to produce an assignment of this form so that the function will - * have an inferred name of "f", which wouldn't happen in the more general - * case below. - */ - processSimpleExportVar() { - this.tokens.removeInitialToken(); - this.tokens.copyToken(); - const varName = this.tokens.identifierName(); - while (!this.tokens.matches1(_types.TokenType.eq)) { - this.rootTransformer.processToken(); - } - const endIndex = this.tokens.currentToken().rhsEndIndex; - if (endIndex == null) { - throw new Error("Expected = token with an end index."); - } - while (this.tokens.currentIndex() < endIndex) { - this.rootTransformer.processToken(); - } - this.tokens.appendCode(`; exports.${varName} = ${varName}`); - } - /** - * Transform normal declaration exports, including handling destructuring. - * For example, this: - * export const {x: [a = 2, b], c} = d; - * becomes this: - * ({x: [exports.a = 2, exports.b], c: exports.c} = d;) - */ - processComplexExportVar() { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - const needsParens = this.tokens.matches1(_types.TokenType.braceL); - if (needsParens) { - this.tokens.appendCode("("); - } - let depth = 0; - while (true) { - if (this.tokens.matches1(_types.TokenType.braceL) || this.tokens.matches1(_types.TokenType.dollarBraceL) || this.tokens.matches1(_types.TokenType.bracketL)) { - depth++; - this.tokens.copyToken(); - } else if (this.tokens.matches1(_types.TokenType.braceR) || this.tokens.matches1(_types.TokenType.bracketR)) { - depth--; - this.tokens.copyToken(); - } else if (depth === 0 && !this.tokens.matches1(_types.TokenType.name) && !this.tokens.currentToken().isType) { - break; - } else if (this.tokens.matches1(_types.TokenType.eq)) { - const endIndex = this.tokens.currentToken().rhsEndIndex; - if (endIndex == null) { - throw new Error("Expected = token with an end index."); - } - while (this.tokens.currentIndex() < endIndex) { - this.rootTransformer.processToken(); - } - } else { - const token2 = this.tokens.currentToken(); - if (_tokenizer.isDeclaration.call(void 0, token2)) { - const name = this.tokens.identifierName(); - let replacement = this.importProcessor.getIdentifierReplacement(name); - if (replacement === null) { - throw new Error(`Expected a replacement for ${name} in \`export var\` syntax.`); - } - if (_tokenizer.isObjectShorthandDeclaration.call(void 0, token2)) { - replacement = `${name}: ${replacement}`; - } - this.tokens.replaceToken(replacement); - } else { - this.rootTransformer.processToken(); - } - } - } - if (needsParens) { - const endIndex = this.tokens.currentToken().rhsEndIndex; - if (endIndex == null) { - throw new Error("Expected = token with an end index."); - } - while (this.tokens.currentIndex() < endIndex) { - this.rootTransformer.processToken(); - } - this.tokens.appendCode(")"); - } - } - /** - * Transform this: - * export function foo() {} - * into this: - * function foo() {} exports.foo = foo; - */ - processExportFunction() { - this.tokens.replaceToken(""); - const name = this.processNamedFunction(); - this.tokens.appendCode(` exports.${name} = ${name};`); - } - /** - * Skip past a function with a name and return that name. - */ - processNamedFunction() { - if (this.tokens.matches1(_types.TokenType._function)) { - this.tokens.copyToken(); - } else if (this.tokens.matches2(_types.TokenType.name, _types.TokenType._function)) { - if (!this.tokens.matchesContextual(_keywords.ContextualKeyword._async)) { - throw new Error("Expected async keyword in function export."); - } - this.tokens.copyToken(); - this.tokens.copyToken(); - } - if (this.tokens.matches1(_types.TokenType.star)) { - this.tokens.copyToken(); - } - if (!this.tokens.matches1(_types.TokenType.name)) { - throw new Error("Expected identifier for exported function name."); - } - const name = this.tokens.identifierName(); - this.tokens.copyToken(); - if (this.tokens.currentToken().isType) { - this.tokens.removeInitialToken(); - while (this.tokens.currentToken().isType) { - this.tokens.removeToken(); - } - } - this.tokens.copyExpectedToken(_types.TokenType.parenL); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - this.rootTransformer.processPossibleTypeRange(); - this.tokens.copyExpectedToken(_types.TokenType.braceL); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.braceR); - return name; - } - /** - * Transform this: - * export class A {} - * into this: - * class A {} exports.A = A; - */ - processExportClass() { - this.tokens.removeInitialToken(); - this.copyDecorators(); - if (this.tokens.matches1(_types.TokenType._abstract)) { - this.tokens.removeToken(); - } - const name = this.rootTransformer.processNamedClass(); - this.tokens.appendCode(` exports.${name} = ${name};`); - } - /** - * Transform this: - * export {a, b as c}; - * into this: - * exports.a = a; exports.c = b; - * - * OR - * - * Transform this: - * export {a, b as c} from './foo'; - * into the pre-generated Object.defineProperty code from the ImportProcessor. - * - * For the first case, if the TypeScript transform is enabled, we need to skip - * exports that are only defined as types. - */ - processExportBindings() { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - const isReExport = _isExportFrom2.default.call(void 0, this.tokens); - const exportStatements = []; - while (true) { - if (this.tokens.matches1(_types.TokenType.braceR)) { - this.tokens.removeToken(); - break; - } - const specifierInfo = _getImportExportSpecifierInfo2.default.call(void 0, this.tokens); - while (this.tokens.currentIndex() < specifierInfo.endIndex) { - this.tokens.removeToken(); - } - const shouldRemoveExport = specifierInfo.isType || !isReExport && this.shouldElideExportedIdentifier(specifierInfo.leftName); - if (!shouldRemoveExport) { - const exportedName = specifierInfo.rightName; - if (exportedName === "default") { - this.hadDefaultExport = true; - } else { - this.hadNamedExport = true; - } - const localName = specifierInfo.leftName; - const newLocalName = this.importProcessor.getIdentifierReplacement(localName); - exportStatements.push(`exports.${exportedName} = ${newLocalName || localName};`); - } - if (this.tokens.matches1(_types.TokenType.braceR)) { - this.tokens.removeToken(); - break; - } - if (this.tokens.matches2(_types.TokenType.comma, _types.TokenType.braceR)) { - this.tokens.removeToken(); - this.tokens.removeToken(); - break; - } else if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - } else { - throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.currentToken())}`); - } - } - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._from)) { - this.tokens.removeToken(); - const path = this.tokens.stringValue(); - this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - } else { - this.tokens.appendCode(exportStatements.join(" ")); - } - if (this.tokens.matches1(_types.TokenType.semi)) { - this.tokens.removeToken(); - } - } - processExportStar() { - this.tokens.removeInitialToken(); - while (!this.tokens.matches1(_types.TokenType.string)) { - this.tokens.removeToken(); - } - const path = this.tokens.stringValue(); - this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - if (this.tokens.matches1(_types.TokenType.semi)) { - this.tokens.removeToken(); - } - } - shouldElideExportedIdentifier(name) { - return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.declarationInfo.valueDeclarations.has(name); - } - }; - exports2.default = CJSImportTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/ESMImportTransformer.js -var require_ESMImportTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/ESMImportTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _keywords = require_keywords(); - var _types = require_types(); - var _elideImportEquals = require_elideImportEquals(); - var _elideImportEquals2 = _interopRequireDefault(_elideImportEquals); - var _getDeclarationInfo = require_getDeclarationInfo(); - var _getDeclarationInfo2 = _interopRequireDefault(_getDeclarationInfo); - var _getImportExportSpecifierInfo = require_getImportExportSpecifierInfo(); - var _getImportExportSpecifierInfo2 = _interopRequireDefault(_getImportExportSpecifierInfo); - var _getNonTypeIdentifiers = require_getNonTypeIdentifiers(); - var _isExportFrom = require_isExportFrom(); - var _isExportFrom2 = _interopRequireDefault(_isExportFrom); - var _removeMaybeImportAttributes = require_removeMaybeImportAttributes(); - var _shouldElideDefaultExport = require_shouldElideDefaultExport(); - var _shouldElideDefaultExport2 = _interopRequireDefault(_shouldElideDefaultExport); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var ESMImportTransformer = class extends _Transformer2.default { - constructor(tokens, nameManager, helperManager, reactHotLoaderTransformer, isTypeScriptTransformEnabled, isFlowTransformEnabled, keepUnusedImports, options2) { - super(); - this.tokens = tokens; - this.nameManager = nameManager; - this.helperManager = helperManager; - this.reactHotLoaderTransformer = reactHotLoaderTransformer; - this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; - this.isFlowTransformEnabled = isFlowTransformEnabled; - this.keepUnusedImports = keepUnusedImports; - ; - this.nonTypeIdentifiers = isTypeScriptTransformEnabled && !keepUnusedImports ? _getNonTypeIdentifiers.getNonTypeIdentifiers.call(void 0, tokens, options2) : /* @__PURE__ */ new Set(); - this.declarationInfo = isTypeScriptTransformEnabled && !keepUnusedImports ? _getDeclarationInfo2.default.call(void 0, tokens) : _getDeclarationInfo.EMPTY_DECLARATION_INFO; - this.injectCreateRequireForImportRequire = Boolean(options2.injectCreateRequireForImportRequire); - } - process() { - if (this.tokens.matches3(_types.TokenType._import, _types.TokenType.name, _types.TokenType.eq)) { - return this.processImportEquals(); - } - if (this.tokens.matches4(_types.TokenType._import, _types.TokenType.name, _types.TokenType.name, _types.TokenType.eq) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, _keywords.ContextualKeyword._type)) { - this.tokens.removeInitialToken(); - for (let i4 = 0; i4 < 7; i4++) { - this.tokens.removeToken(); - } - return true; - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.eq)) { - this.tokens.replaceToken("module.exports"); - return true; - } - if (this.tokens.matches5(_types.TokenType._export, _types.TokenType._import, _types.TokenType.name, _types.TokenType.name, _types.TokenType.eq) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, _keywords.ContextualKeyword._type)) { - this.tokens.removeInitialToken(); - for (let i4 = 0; i4 < 8; i4++) { - this.tokens.removeToken(); - } - return true; - } - if (this.tokens.matches1(_types.TokenType._import)) { - return this.processImport(); - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._default)) { - return this.processExportDefault(); - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.braceL)) { - return this.processNamedExports(); - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType.name) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, _keywords.ContextualKeyword._type)) { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - if (this.tokens.matches1(_types.TokenType.braceL)) { - while (!this.tokens.matches1(_types.TokenType.braceR)) { - this.tokens.removeToken(); - } - this.tokens.removeToken(); - } else { - this.tokens.removeToken(); - if (this.tokens.matches1(_types.TokenType._as)) { - this.tokens.removeToken(); - this.tokens.removeToken(); - } - } - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._from) && this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, _types.TokenType.string)) { - this.tokens.removeToken(); - this.tokens.removeToken(); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - } - return true; - } - return false; - } - processImportEquals() { - const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); - if (this.shouldAutomaticallyElideImportedName(importName)) { - _elideImportEquals2.default.call(void 0, this.tokens); - } else if (this.injectCreateRequireForImportRequire) { - this.tokens.replaceToken("const"); - this.tokens.copyToken(); - this.tokens.copyToken(); - this.tokens.replaceToken(this.helperManager.getHelperName("require")); - } else { - this.tokens.replaceToken("const"); - } - return true; - } - processImport() { - if (this.tokens.matches2(_types.TokenType._import, _types.TokenType.parenL)) { - return false; - } - const snapshot = this.tokens.snapshot(); - const allImportsRemoved = this.removeImportTypeBindings(); - if (allImportsRemoved) { - this.tokens.restoreToSnapshot(snapshot); - while (!this.tokens.matches1(_types.TokenType.string)) { - this.tokens.removeToken(); - } - this.tokens.removeToken(); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - if (this.tokens.matches1(_types.TokenType.semi)) { - this.tokens.removeToken(); - } - } - return true; - } - /** - * Remove type bindings from this import, leaving the rest of the import intact. - * - * Return true if this import was ONLY types, and thus is eligible for removal. This will bail out - * of the replacement operation, so we can return early here. - */ - removeImportTypeBindings() { - this.tokens.copyExpectedToken(_types.TokenType._import); - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._type) && !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, _types.TokenType.comma) && !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, _keywords.ContextualKeyword._from)) { - return true; - } - if (this.tokens.matches1(_types.TokenType.string)) { - this.tokens.copyToken(); - return false; - } - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._module) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, _keywords.ContextualKeyword._from)) { - this.tokens.copyToken(); - } - let foundNonTypeImport = false; - let foundAnyNamedImport = false; - let needsComma = false; - if (this.tokens.matches1(_types.TokenType.name)) { - if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierName())) { - this.tokens.removeToken(); - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - } - } else { - foundNonTypeImport = true; - this.tokens.copyToken(); - if (this.tokens.matches1(_types.TokenType.comma)) { - needsComma = true; - this.tokens.removeToken(); - } - } - } - if (this.tokens.matches1(_types.TokenType.star)) { - if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierNameAtRelativeIndex(2))) { - this.tokens.removeToken(); - this.tokens.removeToken(); - this.tokens.removeToken(); - } else { - if (needsComma) { - this.tokens.appendCode(","); - } - foundNonTypeImport = true; - this.tokens.copyExpectedToken(_types.TokenType.star); - this.tokens.copyExpectedToken(_types.TokenType.name); - this.tokens.copyExpectedToken(_types.TokenType.name); - } - } else if (this.tokens.matches1(_types.TokenType.braceL)) { - if (needsComma) { - this.tokens.appendCode(","); - } - this.tokens.copyToken(); - while (!this.tokens.matches1(_types.TokenType.braceR)) { - foundAnyNamedImport = true; - const specifierInfo = _getImportExportSpecifierInfo2.default.call(void 0, this.tokens); - if (specifierInfo.isType || this.shouldAutomaticallyElideImportedName(specifierInfo.rightName)) { - while (this.tokens.currentIndex() < specifierInfo.endIndex) { - this.tokens.removeToken(); - } - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - } - } else { - foundNonTypeImport = true; - while (this.tokens.currentIndex() < specifierInfo.endIndex) { - this.tokens.copyToken(); - } - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.copyToken(); - } - } - } - this.tokens.copyExpectedToken(_types.TokenType.braceR); - } - if (this.keepUnusedImports) { - return false; - } - if (this.isTypeScriptTransformEnabled) { - return !foundNonTypeImport; - } else if (this.isFlowTransformEnabled) { - return foundAnyNamedImport && !foundNonTypeImport; - } else { - return false; - } - } - shouldAutomaticallyElideImportedName(name) { - return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.nonTypeIdentifiers.has(name); - } - processExportDefault() { - if (_shouldElideDefaultExport2.default.call( - void 0, - this.isTypeScriptTransformEnabled, - this.keepUnusedImports, - this.tokens, - this.declarationInfo - )) { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - this.tokens.removeToken(); - return true; - } - const alreadyHasName = this.tokens.matches4(_types.TokenType._export, _types.TokenType._default, _types.TokenType._function, _types.TokenType.name) || // export default async function - this.tokens.matches5(_types.TokenType._export, _types.TokenType._default, _types.TokenType.name, _types.TokenType._function, _types.TokenType.name) && this.tokens.matchesContextualAtIndex( - this.tokens.currentIndex() + 2, - _keywords.ContextualKeyword._async - ) || this.tokens.matches4(_types.TokenType._export, _types.TokenType._default, _types.TokenType._class, _types.TokenType.name) || this.tokens.matches5(_types.TokenType._export, _types.TokenType._default, _types.TokenType._abstract, _types.TokenType._class, _types.TokenType.name); - if (!alreadyHasName && this.reactHotLoaderTransformer) { - const defaultVarName = this.nameManager.claimFreeName("_default"); - this.tokens.replaceToken(`let ${defaultVarName}; export`); - this.tokens.copyToken(); - this.tokens.appendCode(` ${defaultVarName} =`); - this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName); - return true; - } - return false; - } - /** - * Handle a statement with one of these forms: - * export {a, type b}; - * export {c, type d} from 'foo'; - * - * In both cases, any explicit type exports should be removed. In the first - * case, we also need to handle implicit export elision for names declared as - * types. In the second case, we must NOT do implicit named export elision, - * but we must remove the runtime import if all exports are type exports. - */ - processNamedExports() { - if (!this.isTypeScriptTransformEnabled) { - return false; - } - this.tokens.copyExpectedToken(_types.TokenType._export); - this.tokens.copyExpectedToken(_types.TokenType.braceL); - const isReExport = _isExportFrom2.default.call(void 0, this.tokens); - let foundNonTypeExport = false; - while (!this.tokens.matches1(_types.TokenType.braceR)) { - const specifierInfo = _getImportExportSpecifierInfo2.default.call(void 0, this.tokens); - if (specifierInfo.isType || !isReExport && this.shouldElideExportedName(specifierInfo.leftName)) { - while (this.tokens.currentIndex() < specifierInfo.endIndex) { - this.tokens.removeToken(); - } - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - } - } else { - foundNonTypeExport = true; - while (this.tokens.currentIndex() < specifierInfo.endIndex) { - this.tokens.copyToken(); - } - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.copyToken(); - } - } - } - this.tokens.copyExpectedToken(_types.TokenType.braceR); - if (!this.keepUnusedImports && isReExport && !foundNonTypeExport) { - this.tokens.removeToken(); - this.tokens.removeToken(); - _removeMaybeImportAttributes.removeMaybeImportAttributes.call(void 0, this.tokens); - } - return true; - } - /** - * ESM elides all imports with the rule that we only elide if we see that it's - * a type and never see it as a value. This is in contrast to CJS, which - * elides imports that are completely unknown. - */ - shouldElideExportedName(name) { - return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && this.declarationInfo.typeDeclarations.has(name) && !this.declarationInfo.valueDeclarations.has(name); - } - }; - exports2.default = ESMImportTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/FlowTransformer.js -var require_FlowTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/FlowTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _keywords = require_keywords(); - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var FlowTransformer = class extends _Transformer2.default { - constructor(rootTransformer, tokens, isImportsTransformEnabled) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.isImportsTransformEnabled = isImportsTransformEnabled; - ; - } - process() { - if (this.rootTransformer.processPossibleArrowParamEnd() || this.rootTransformer.processPossibleAsyncArrowWithTypeParams() || this.rootTransformer.processPossibleTypeRange()) { - return true; - } - if (this.tokens.matches1(_types.TokenType._enum)) { - this.processEnum(); - return true; - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._enum)) { - this.processNamedExportEnum(); - return true; - } - if (this.tokens.matches3(_types.TokenType._export, _types.TokenType._default, _types.TokenType._enum)) { - this.processDefaultExportEnum(); - return true; - } - return false; - } - /** - * Handle a declaration like: - * export enum E ... - * - * With this imports transform, this becomes: - * const E = [[enum]]; exports.E = E; - * - * otherwise, it becomes: - * export const E = [[enum]]; - */ - processNamedExportEnum() { - if (this.isImportsTransformEnabled) { - this.tokens.removeInitialToken(); - const enumName = this.tokens.identifierNameAtRelativeIndex(1); - this.processEnum(); - this.tokens.appendCode(` exports.${enumName} = ${enumName};`); - } else { - this.tokens.copyToken(); - this.processEnum(); - } - } - /** - * Handle a declaration like: - * export default enum E - * - * With the imports transform, this becomes: - * const E = [[enum]]; exports.default = E; - * - * otherwise, it becomes: - * const E = [[enum]]; export default E; - */ - processDefaultExportEnum() { - this.tokens.removeInitialToken(); - this.tokens.removeToken(); - const enumName = this.tokens.identifierNameAtRelativeIndex(1); - this.processEnum(); - if (this.isImportsTransformEnabled) { - this.tokens.appendCode(` exports.default = ${enumName};`); - } else { - this.tokens.appendCode(` export default ${enumName};`); - } - } - /** - * Transpile flow enums to invoke the "flow-enums-runtime" library. - * - * Currently, the transpiled code always uses `require("flow-enums-runtime")`, - * but if future flexibility is needed, we could expose a config option for - * this string (similar to configurable JSX). Even when targeting ESM, the - * default behavior of babel-plugin-transform-flow-enums is to use require - * rather than injecting an import. - * - * Flow enums are quite a bit simpler than TS enums and have some convenient - * constraints: - * - Element initializers must be either always present or always absent. That - * means that we can use fixed lookahead on the first element (if any) and - * assume that all elements are like that. - * - The right-hand side of an element initializer must be a literal value, - * not a complex expression and not referencing other elements. That means - * we can simply copy a single token. - * - * Enums can be broken up into three basic cases: - * - * Mirrored enums: - * enum E {A, B} - * -> - * const E = require("flow-enums-runtime").Mirrored(["A", "B"]); - * - * Initializer enums: - * enum E {A = 1, B = 2} - * -> - * const E = require("flow-enums-runtime")({A: 1, B: 2}); - * - * Symbol enums: - * enum E of symbol {A, B} - * -> - * const E = require("flow-enums-runtime")({A: Symbol("A"), B: Symbol("B")}); - * - * We can statically detect which of the three cases this is by looking at the - * "of" declaration (if any) and seeing if the first element has an initializer. - * Since the other transform details are so similar between the three cases, we - * use a single implementation and vary the transform within processEnumElement - * based on case. - */ - processEnum() { - this.tokens.replaceToken("const"); - this.tokens.copyExpectedToken(_types.TokenType.name); - let isSymbolEnum = false; - if (this.tokens.matchesContextual(_keywords.ContextualKeyword._of)) { - this.tokens.removeToken(); - isSymbolEnum = this.tokens.matchesContextual(_keywords.ContextualKeyword._symbol); - this.tokens.removeToken(); - } - const hasInitializers = this.tokens.matches3(_types.TokenType.braceL, _types.TokenType.name, _types.TokenType.eq); - this.tokens.appendCode(' = require("flow-enums-runtime")'); - const isMirrored = !isSymbolEnum && !hasInitializers; - this.tokens.replaceTokenTrimmingLeftWhitespace(isMirrored ? ".Mirrored([" : "({"); - while (!this.tokens.matches1(_types.TokenType.braceR)) { - if (this.tokens.matches1(_types.TokenType.ellipsis)) { - this.tokens.removeToken(); - break; - } - this.processEnumElement(isSymbolEnum, hasInitializers); - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.copyToken(); - } - } - this.tokens.replaceToken(isMirrored ? "]);" : "});"); - } - /** - * Process an individual enum element, producing either an array element or an - * object element based on what type of enum this is. - */ - processEnumElement(isSymbolEnum, hasInitializers) { - if (isSymbolEnum) { - const elementName = this.tokens.identifierName(); - this.tokens.copyToken(); - this.tokens.appendCode(`: Symbol("${elementName}")`); - } else if (hasInitializers) { - this.tokens.copyToken(); - this.tokens.replaceTokenTrimmingLeftWhitespace(":"); - this.tokens.copyToken(); - } else { - this.tokens.replaceToken(`"${this.tokens.identifierName()}"`); - } - } - }; - exports2.default = FlowTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/JestHoistTransformer.js -var require_JestHoistTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/JestHoistTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function _optionalChain(ops) { - let lastAccessLHS = void 0; - let value = ops[0]; - let i4 = 1; - while (i4 < ops.length) { - const op = ops[i4]; - const fn2 = ops[i4 + 1]; - i4 += 2; - if ((op === "optionalAccess" || op === "optionalCall") && value == null) { - return void 0; - } - if (op === "access" || op === "optionalAccess") { - lastAccessLHS = value; - value = fn2(value); - } else if (op === "call" || op === "optionalCall") { - value = fn2((...args) => value.call(lastAccessLHS, ...args)); - lastAccessLHS = void 0; - } - } - return value; - } - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var JEST_GLOBAL_NAME = "jest"; - var HOISTED_METHODS = ["mock", "unmock", "enableAutomock", "disableAutomock"]; - var JestHoistTransformer = class _JestHoistTransformer extends _Transformer2.default { - __init() { - this.hoistedFunctionNames = []; - } - constructor(rootTransformer, tokens, nameManager, importProcessor) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.nameManager = nameManager; - this.importProcessor = importProcessor; - _JestHoistTransformer.prototype.__init.call(this); - ; - } - process() { - if (this.tokens.currentToken().scopeDepth === 0 && this.tokens.matches4(_types.TokenType.name, _types.TokenType.dot, _types.TokenType.name, _types.TokenType.parenL) && this.tokens.identifierName() === JEST_GLOBAL_NAME) { - if (_optionalChain([this, "access", (_3) => _3.importProcessor, "optionalAccess", (_22) => _22.getGlobalNames, "call", (_3) => _3(), "optionalAccess", (_4) => _4.has, "call", (_5) => _5(JEST_GLOBAL_NAME)])) { - return false; - } - return this.extractHoistedCalls(); - } - return false; - } - getHoistedCode() { - if (this.hoistedFunctionNames.length > 0) { - return this.hoistedFunctionNames.map((name) => `${name}();`).join(""); - } - return ""; - } - /** - * Extracts any methods calls on the jest-object that should be hoisted. - * - * According to the jest docs, https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options, - * mock, unmock, enableAutomock, disableAutomock, are the methods that should be hoisted. - * - * We do not apply the same checks of the arguments as babel-plugin-jest-hoist does. - */ - extractHoistedCalls() { - this.tokens.removeToken(); - let followsNonHoistedJestCall = false; - while (this.tokens.matches3(_types.TokenType.dot, _types.TokenType.name, _types.TokenType.parenL)) { - const methodName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); - const shouldHoist = HOISTED_METHODS.includes(methodName); - if (shouldHoist) { - const hoistedFunctionName = this.nameManager.claimFreeName("__jestHoist"); - this.hoistedFunctionNames.push(hoistedFunctionName); - this.tokens.replaceToken(`function ${hoistedFunctionName}(){${JEST_GLOBAL_NAME}.`); - this.tokens.copyToken(); - this.tokens.copyToken(); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - this.tokens.appendCode(";}"); - followsNonHoistedJestCall = false; - } else { - if (followsNonHoistedJestCall) { - this.tokens.copyToken(); - } else { - this.tokens.replaceToken(`${JEST_GLOBAL_NAME}.`); - } - this.tokens.copyToken(); - this.tokens.copyToken(); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - followsNonHoistedJestCall = true; - } - } - return true; - } - }; - exports2.default = JestHoistTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js -var require_NumericSeparatorTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/NumericSeparatorTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var NumericSeparatorTransformer = class extends _Transformer2.default { - constructor(tokens) { - super(); - this.tokens = tokens; - ; - } - process() { - if (this.tokens.matches1(_types.TokenType.num)) { - const code = this.tokens.currentTokenCode(); - if (code.includes("_")) { - this.tokens.replaceToken(code.replace(/_/g, "")); - return true; - } - } - return false; - } - }; - exports2.default = NumericSeparatorTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js -var require_OptionalCatchBindingTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/OptionalCatchBindingTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var OptionalCatchBindingTransformer = class extends _Transformer2.default { - constructor(tokens, nameManager) { - super(); - this.tokens = tokens; - this.nameManager = nameManager; - ; - } - process() { - if (this.tokens.matches2(_types.TokenType._catch, _types.TokenType.braceL)) { - this.tokens.copyToken(); - this.tokens.appendCode(` (${this.nameManager.claimFreeName("e")})`); - return true; - } - return false; - } - }; - exports2.default = OptionalCatchBindingTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js -var require_OptionalChainingNullishTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/OptionalChainingNullishTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var OptionalChainingNullishTransformer = class extends _Transformer2.default { - constructor(tokens, nameManager) { - super(); - this.tokens = tokens; - this.nameManager = nameManager; - ; - } - process() { - if (this.tokens.matches1(_types.TokenType.nullishCoalescing)) { - const token3 = this.tokens.currentToken(); - if (this.tokens.tokens[token3.nullishStartIndex].isAsyncOperation) { - this.tokens.replaceTokenTrimmingLeftWhitespace(", async () => ("); - } else { - this.tokens.replaceTokenTrimmingLeftWhitespace(", () => ("); - } - return true; - } - if (this.tokens.matches1(_types.TokenType._delete)) { - const nextToken = this.tokens.tokenAtRelativeIndex(1); - if (nextToken.isOptionalChainStart) { - this.tokens.removeInitialToken(); - return true; - } - } - const token2 = this.tokens.currentToken(); - const chainStart = token2.subscriptStartIndex; - if (chainStart != null && this.tokens.tokens[chainStart].isOptionalChainStart && // Super subscripts can't be optional (since super is never null/undefined), and the syntax - // relies on the subscript being intact, so leave this token alone. - this.tokens.tokenAtRelativeIndex(-1).type !== _types.TokenType._super) { - const param = this.nameManager.claimFreeName("_"); - let arrowStartSnippet; - if (chainStart > 0 && this.tokens.matches1AtIndex(chainStart - 1, _types.TokenType._delete) && this.isLastSubscriptInChain()) { - arrowStartSnippet = `${param} => delete ${param}`; - } else { - arrowStartSnippet = `${param} => ${param}`; - } - if (this.tokens.tokens[chainStart].isAsyncOperation) { - arrowStartSnippet = `async ${arrowStartSnippet}`; - } - if (this.tokens.matches2(_types.TokenType.questionDot, _types.TokenType.parenL) || this.tokens.matches2(_types.TokenType.questionDot, _types.TokenType.lessThan)) { - if (this.justSkippedSuper()) { - this.tokens.appendCode(".bind(this)"); - } - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalCall', ${arrowStartSnippet}`); - } else if (this.tokens.matches2(_types.TokenType.questionDot, _types.TokenType.bracketL)) { - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}`); - } else if (this.tokens.matches1(_types.TokenType.questionDot)) { - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}.`); - } else if (this.tokens.matches1(_types.TokenType.dot)) { - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}.`); - } else if (this.tokens.matches1(_types.TokenType.bracketL)) { - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}[`); - } else if (this.tokens.matches1(_types.TokenType.parenL)) { - if (this.justSkippedSuper()) { - this.tokens.appendCode(".bind(this)"); - } - this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'call', ${arrowStartSnippet}(`); - } else { - throw new Error("Unexpected subscript operator in optional chain."); - } - return true; - } - return false; - } - /** - * Determine if the current token is the last of its chain, so that we know whether it's eligible - * to have a delete op inserted. - * - * We can do this by walking forward until we determine one way or another. Each - * isOptionalChainStart token must be paired with exactly one isOptionalChainEnd token after it in - * a nesting way, so we can track depth and walk to the end of the chain (the point where the - * depth goes negative) and see if any other subscript token is after us in the chain. - */ - isLastSubscriptInChain() { - let depth = 0; - for (let i4 = this.tokens.currentIndex() + 1; ; i4++) { - if (i4 >= this.tokens.tokens.length) { - throw new Error("Reached the end of the code while finding the end of the access chain."); - } - if (this.tokens.tokens[i4].isOptionalChainStart) { - depth++; - } else if (this.tokens.tokens[i4].isOptionalChainEnd) { - depth--; - } - if (depth < 0) { - return true; - } - if (depth === 0 && this.tokens.tokens[i4].subscriptStartIndex != null) { - return false; - } - } - } - /** - * Determine if we are the open-paren in an expression like super.a()?.b. - * - * We can do this by walking backward to find the previous subscript. If that subscript was - * preceded by a super, then we must be the subscript after it, so if this is a call expression, - * we'll need to attach the right context. - */ - justSkippedSuper() { - let depth = 0; - let index = this.tokens.currentIndex() - 1; - while (true) { - if (index < 0) { - throw new Error( - "Reached the start of the code while finding the start of the access chain." - ); - } - if (this.tokens.tokens[index].isOptionalChainStart) { - depth--; - } else if (this.tokens.tokens[index].isOptionalChainEnd) { - depth++; - } - if (depth < 0) { - return false; - } - if (depth === 0 && this.tokens.tokens[index].subscriptStartIndex != null) { - return this.tokens.tokens[index - 1].type === _types.TokenType._super; - } - index--; - } - } - }; - exports2.default = OptionalChainingNullishTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js -var require_ReactDisplayNameTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/ReactDisplayNameTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tokenizer = require_tokenizer(); - var _types = require_types(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var ReactDisplayNameTransformer = class extends _Transformer2.default { - constructor(rootTransformer, tokens, importProcessor, options2) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.importProcessor = importProcessor; - this.options = options2; - ; - } - process() { - const startIndex = this.tokens.currentIndex(); - if (this.tokens.identifierName() === "createReactClass") { - const newName = this.importProcessor && this.importProcessor.getIdentifierReplacement("createReactClass"); - if (newName) { - this.tokens.replaceToken(`(0, ${newName})`); - } else { - this.tokens.copyToken(); - } - this.tryProcessCreateClassCall(startIndex); - return true; - } - if (this.tokens.matches3(_types.TokenType.name, _types.TokenType.dot, _types.TokenType.name) && this.tokens.identifierName() === "React" && this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 2) === "createClass") { - const newName = this.importProcessor ? this.importProcessor.getIdentifierReplacement("React") || "React" : "React"; - if (newName) { - this.tokens.replaceToken(newName); - this.tokens.copyToken(); - this.tokens.copyToken(); - } else { - this.tokens.copyToken(); - this.tokens.copyToken(); - this.tokens.copyToken(); - } - this.tryProcessCreateClassCall(startIndex); - return true; - } - return false; - } - /** - * This is called with the token position at the open-paren. - */ - tryProcessCreateClassCall(startIndex) { - const displayName = this.findDisplayName(startIndex); - if (!displayName) { - return; - } - if (this.classNeedsDisplayName()) { - this.tokens.copyExpectedToken(_types.TokenType.parenL); - this.tokens.copyExpectedToken(_types.TokenType.braceL); - this.tokens.appendCode(`displayName: '${displayName}',`); - this.rootTransformer.processBalancedCode(); - this.tokens.copyExpectedToken(_types.TokenType.braceR); - this.tokens.copyExpectedToken(_types.TokenType.parenR); - } - } - findDisplayName(startIndex) { - if (startIndex < 2) { - return null; - } - if (this.tokens.matches2AtIndex(startIndex - 2, _types.TokenType.name, _types.TokenType.eq)) { - return this.tokens.identifierNameAtIndex(startIndex - 2); - } - if (startIndex >= 2 && this.tokens.tokens[startIndex - 2].identifierRole === _tokenizer.IdentifierRole.ObjectKey) { - return this.tokens.identifierNameAtIndex(startIndex - 2); - } - if (this.tokens.matches2AtIndex(startIndex - 2, _types.TokenType._export, _types.TokenType._default)) { - return this.getDisplayNameFromFilename(); - } - return null; - } - getDisplayNameFromFilename() { - const filePath = this.options.filePath || "unknown"; - const pathSegments = filePath.split("/"); - const filename = pathSegments[pathSegments.length - 1]; - const dotIndex = filename.lastIndexOf("."); - const baseFilename = dotIndex === -1 ? filename : filename.slice(0, dotIndex); - if (baseFilename === "index" && pathSegments[pathSegments.length - 2]) { - return pathSegments[pathSegments.length - 2]; - } else { - return baseFilename; - } - } - /** - * We only want to add a display name when this is a function call containing - * one argument, which is an object literal without `displayName` as an - * existing key. - */ - classNeedsDisplayName() { - let index = this.tokens.currentIndex(); - if (!this.tokens.matches2(_types.TokenType.parenL, _types.TokenType.braceL)) { - return false; - } - const objectStartIndex = index + 1; - const objectContextId = this.tokens.tokens[objectStartIndex].contextId; - if (objectContextId == null) { - throw new Error("Expected non-null context ID on object open-brace."); - } - for (; index < this.tokens.tokens.length; index++) { - const token2 = this.tokens.tokens[index]; - if (token2.type === _types.TokenType.braceR && token2.contextId === objectContextId) { - index++; - break; - } - if (this.tokens.identifierNameAtIndex(index) === "displayName" && this.tokens.tokens[index].identifierRole === _tokenizer.IdentifierRole.ObjectKey && token2.contextId === objectContextId) { - return false; - } - } - if (index === this.tokens.tokens.length) { - throw new Error("Unexpected end of input when processing React class."); - } - return this.tokens.matches1AtIndex(index, _types.TokenType.parenR) || this.tokens.matches2AtIndex(index, _types.TokenType.comma, _types.TokenType.parenR); - } - }; - exports2.default = ReactDisplayNameTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js -var require_ReactHotLoaderTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/ReactHotLoaderTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _tokenizer = require_tokenizer(); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var ReactHotLoaderTransformer = class _ReactHotLoaderTransformer extends _Transformer2.default { - __init() { - this.extractedDefaultExportName = null; - } - constructor(tokens, filePath) { - super(); - this.tokens = tokens; - this.filePath = filePath; - _ReactHotLoaderTransformer.prototype.__init.call(this); - ; - } - setExtractedDefaultExportName(extractedDefaultExportName) { - this.extractedDefaultExportName = extractedDefaultExportName; - } - getPrefixCode() { - return ` - (function () { - var enterModule = require('react-hot-loader').enterModule; - enterModule && enterModule(module); - })();`.replace(/\s+/g, " ").trim(); - } - getSuffixCode() { - const topLevelNames = /* @__PURE__ */ new Set(); - for (const token2 of this.tokens.tokens) { - if (!token2.isType && _tokenizer.isTopLevelDeclaration.call(void 0, token2) && token2.identifierRole !== _tokenizer.IdentifierRole.ImportDeclaration) { - topLevelNames.add(this.tokens.identifierNameForToken(token2)); - } - } - const namesToRegister = Array.from(topLevelNames).map((name) => ({ - variableName: name, - uniqueLocalName: name - })); - if (this.extractedDefaultExportName) { - namesToRegister.push({ - variableName: this.extractedDefaultExportName, - uniqueLocalName: "default" - }); - } - return ` -;(function () { - var reactHotLoader = require('react-hot-loader').default; - var leaveModule = require('react-hot-loader').leaveModule; - if (!reactHotLoader) { - return; - } -${namesToRegister.map( - ({ variableName, uniqueLocalName }) => ` reactHotLoader.register(${variableName}, "${uniqueLocalName}", ${JSON.stringify( - this.filePath || "" - )});` - ).join("\n")} - leaveModule(module); -})();`; - } - process() { - return false; - } - }; - exports2.default = ReactHotLoaderTransformer; - } -}); - -// node_modules/sucrase/dist/util/isIdentifier.js -var require_isIdentifier = __commonJS({ - "node_modules/sucrase/dist/util/isIdentifier.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _identifier = require_identifier(); - var RESERVED_WORDS = /* @__PURE__ */ new Set([ - // Reserved keywords as of ECMAScript 2015 - "break", - "case", - "catch", - "class", - "const", - "continue", - "debugger", - "default", - "delete", - "do", - "else", - "export", - "extends", - "finally", - "for", - "function", - "if", - "import", - "in", - "instanceof", - "new", - "return", - "super", - "switch", - "this", - "throw", - "try", - "typeof", - "var", - "void", - "while", - "with", - "yield", - // Future reserved keywords - "enum", - "implements", - "interface", - "let", - "package", - "private", - "protected", - "public", - "static", - "await", - // Literals that cannot be used as identifiers - "false", - "null", - "true" - ]); - function isIdentifier(name) { - if (name.length === 0) { - return false; - } - if (!_identifier.IS_IDENTIFIER_START[name.charCodeAt(0)]) { - return false; - } - for (let i4 = 1; i4 < name.length; i4++) { - if (!_identifier.IS_IDENTIFIER_CHAR[name.charCodeAt(i4)]) { - return false; - } - } - return !RESERVED_WORDS.has(name); - } - exports2.default = isIdentifier; - } -}); - -// node_modules/sucrase/dist/transformers/TypeScriptTransformer.js -var require_TypeScriptTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/TypeScriptTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _isIdentifier = require_isIdentifier(); - var _isIdentifier2 = _interopRequireDefault(_isIdentifier); - var _Transformer = require_Transformer(); - var _Transformer2 = _interopRequireDefault(_Transformer); - var TypeScriptTransformer = class extends _Transformer2.default { - constructor(rootTransformer, tokens, isImportsTransformEnabled) { - super(); - this.rootTransformer = rootTransformer; - this.tokens = tokens; - this.isImportsTransformEnabled = isImportsTransformEnabled; - ; - } - process() { - if (this.rootTransformer.processPossibleArrowParamEnd() || this.rootTransformer.processPossibleAsyncArrowWithTypeParams() || this.rootTransformer.processPossibleTypeRange()) { - return true; - } - if (this.tokens.matches1(_types.TokenType._public) || this.tokens.matches1(_types.TokenType._protected) || this.tokens.matches1(_types.TokenType._private) || this.tokens.matches1(_types.TokenType._abstract) || this.tokens.matches1(_types.TokenType._readonly) || this.tokens.matches1(_types.TokenType._override) || this.tokens.matches1(_types.TokenType.nonNullAssertion)) { - this.tokens.removeInitialToken(); - return true; - } - if (this.tokens.matches1(_types.TokenType._enum) || this.tokens.matches2(_types.TokenType._const, _types.TokenType._enum)) { - this.processEnum(); - return true; - } - if (this.tokens.matches2(_types.TokenType._export, _types.TokenType._enum) || this.tokens.matches3(_types.TokenType._export, _types.TokenType._const, _types.TokenType._enum)) { - this.processEnum(true); - return true; - } - return false; - } - processEnum(isExport = false) { - this.tokens.removeInitialToken(); - while (this.tokens.matches1(_types.TokenType._const) || this.tokens.matches1(_types.TokenType._enum)) { - this.tokens.removeToken(); - } - const enumName = this.tokens.identifierName(); - this.tokens.removeToken(); - if (isExport && !this.isImportsTransformEnabled) { - this.tokens.appendCode("export "); - } - this.tokens.appendCode(`var ${enumName}; (function (${enumName})`); - this.tokens.copyExpectedToken(_types.TokenType.braceL); - this.processEnumBody(enumName); - this.tokens.copyExpectedToken(_types.TokenType.braceR); - if (isExport && this.isImportsTransformEnabled) { - this.tokens.appendCode(`)(${enumName} || (exports.${enumName} = ${enumName} = {}));`); - } else { - this.tokens.appendCode(`)(${enumName} || (${enumName} = {}));`); - } - } - /** - * Transform an enum into equivalent JS. This has complexity in a few places: - * - TS allows string enums, numeric enums, and a mix of the two styles within an enum. - * - Enum keys are allowed to be referenced in later enum values. - * - Enum keys are allowed to be strings. - * - When enum values are omitted, they should follow an auto-increment behavior. - */ - processEnumBody(enumName) { - let previousValueCode = null; - while (true) { - if (this.tokens.matches1(_types.TokenType.braceR)) { - break; - } - const { nameStringCode, variableName } = this.extractEnumKeyInfo(this.tokens.currentToken()); - this.tokens.removeInitialToken(); - if (this.tokens.matches3(_types.TokenType.eq, _types.TokenType.string, _types.TokenType.comma) || this.tokens.matches3(_types.TokenType.eq, _types.TokenType.string, _types.TokenType.braceR)) { - this.processStringLiteralEnumMember(enumName, nameStringCode, variableName); - } else if (this.tokens.matches1(_types.TokenType.eq)) { - this.processExplicitValueEnumMember(enumName, nameStringCode, variableName); - } else { - this.processImplicitValueEnumMember( - enumName, - nameStringCode, - variableName, - previousValueCode - ); - } - if (this.tokens.matches1(_types.TokenType.comma)) { - this.tokens.removeToken(); - } - if (variableName != null) { - previousValueCode = variableName; - } else { - previousValueCode = `${enumName}[${nameStringCode}]`; - } - } - } - /** - * Detect name information about this enum key, which will be used to determine which code to emit - * and whether we should declare a variable as part of this declaration. - * - * Some cases to keep in mind: - * - Enum keys can be implicitly referenced later, e.g. `X = 1, Y = X`. In Sucrase, we implement - * this by declaring a variable `X` so that later expressions can use it. - * - In addition to the usual identifier key syntax, enum keys are allowed to be string literals, - * e.g. `"hello world" = 3,`. Template literal syntax is NOT allowed. - * - Even if the enum key is defined as a string literal, it may still be referenced by identifier - * later, e.g. `"X" = 1, Y = X`. That means that we need to detect whether or not a string - * literal is identifier-like and emit a variable if so, even if the declaration did not use an - * identifier. - * - Reserved keywords like `break` are valid enum keys, but are not valid to be referenced later - * and would be a syntax error if we emitted a variable, so we need to skip the variable - * declaration in those cases. - * - * The variableName return value captures these nuances: if non-null, we can and must emit a - * variable declaration, and if null, we can't and shouldn't. - */ - extractEnumKeyInfo(nameToken) { - if (nameToken.type === _types.TokenType.name) { - const name = this.tokens.identifierNameForToken(nameToken); - return { - nameStringCode: `"${name}"`, - variableName: _isIdentifier2.default.call(void 0, name) ? name : null - }; - } else if (nameToken.type === _types.TokenType.string) { - const name = this.tokens.stringValueForToken(nameToken); - return { - nameStringCode: this.tokens.code.slice(nameToken.start, nameToken.end), - variableName: _isIdentifier2.default.call(void 0, name) ? name : null - }; - } else { - throw new Error("Expected name or string at beginning of enum element."); - } - } - /** - * Handle an enum member where the RHS is just a string literal (not omitted, not a number, and - * not a complex expression). This is the typical form for TS string enums, and in this case, we - * do *not* create a reverse mapping. - * - * This is called after deleting the key token, when the token processor is at the equals sign. - * - * Example 1: - * someKey = "some value" - * -> - * const someKey = "some value"; MyEnum["someKey"] = someKey; - * - * Example 2: - * "some key" = "some value" - * -> - * MyEnum["some key"] = "some value"; - */ - processStringLiteralEnumMember(enumName, nameStringCode, variableName) { - if (variableName != null) { - this.tokens.appendCode(`const ${variableName}`); - this.tokens.copyToken(); - this.tokens.copyToken(); - this.tokens.appendCode(`; ${enumName}[${nameStringCode}] = ${variableName};`); - } else { - this.tokens.appendCode(`${enumName}[${nameStringCode}]`); - this.tokens.copyToken(); - this.tokens.copyToken(); - this.tokens.appendCode(";"); - } - } - /** - * Handle an enum member initialized with an expression on the right-hand side (other than a - * string literal). In these cases, we should transform the expression and emit code that sets up - * a reverse mapping. - * - * The TypeScript implementation of this operation distinguishes between expressions that can be - * "constant folded" at compile time (i.e. consist of number literals and simple math operations - * on those numbers) and ones that are dynamic. For constant expressions, it emits the resolved - * numeric value, and auto-incrementing is only allowed in that case. Evaluating expressions at - * compile time would add significant complexity to Sucrase, so Sucrase instead leaves the - * expression as-is, and will later emit something like `MyEnum["previousKey"] + 1` to implement - * auto-incrementing. - * - * This is called after deleting the key token, when the token processor is at the equals sign. - * - * Example 1: - * someKey = 1 + 1 - * -> - * const someKey = 1 + 1; MyEnum[MyEnum["someKey"] = someKey] = "someKey"; - * - * Example 2: - * "some key" = 1 + 1 - * -> - * MyEnum[MyEnum["some key"] = 1 + 1] = "some key"; - */ - processExplicitValueEnumMember(enumName, nameStringCode, variableName) { - const rhsEndIndex = this.tokens.currentToken().rhsEndIndex; - if (rhsEndIndex == null) { - throw new Error("Expected rhsEndIndex on enum assign."); - } - if (variableName != null) { - this.tokens.appendCode(`const ${variableName}`); - this.tokens.copyToken(); - while (this.tokens.currentIndex() < rhsEndIndex) { - this.rootTransformer.processToken(); - } - this.tokens.appendCode( - `; ${enumName}[${enumName}[${nameStringCode}] = ${variableName}] = ${nameStringCode};` - ); - } else { - this.tokens.appendCode(`${enumName}[${enumName}[${nameStringCode}]`); - this.tokens.copyToken(); - while (this.tokens.currentIndex() < rhsEndIndex) { - this.rootTransformer.processToken(); - } - this.tokens.appendCode(`] = ${nameStringCode};`); - } - } - /** - * Handle an enum member with no right-hand side expression. In this case, the value is the - * previous value plus 1, or 0 if there was no previous value. We should also always emit a - * reverse mapping. - * - * Example 1: - * someKey2 - * -> - * const someKey2 = someKey1 + 1; MyEnum[MyEnum["someKey2"] = someKey2] = "someKey2"; - * - * Example 2: - * "some key 2" - * -> - * MyEnum[MyEnum["some key 2"] = someKey1 + 1] = "some key 2"; - */ - processImplicitValueEnumMember(enumName, nameStringCode, variableName, previousValueCode) { - let valueCode = previousValueCode != null ? `${previousValueCode} + 1` : "0"; - if (variableName != null) { - this.tokens.appendCode(`const ${variableName} = ${valueCode}; `); - valueCode = variableName; - } - this.tokens.appendCode( - `${enumName}[${enumName}[${nameStringCode}] = ${valueCode}] = ${nameStringCode};` - ); - } - }; - exports2.default = TypeScriptTransformer; - } -}); - -// node_modules/sucrase/dist/transformers/RootTransformer.js -var require_RootTransformer = __commonJS({ - "node_modules/sucrase/dist/transformers/RootTransformer.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _keywords = require_keywords(); - var _types = require_types(); - var _getClassInfo = require_getClassInfo(); - var _getClassInfo2 = _interopRequireDefault(_getClassInfo); - var _CJSImportTransformer = require_CJSImportTransformer(); - var _CJSImportTransformer2 = _interopRequireDefault(_CJSImportTransformer); - var _ESMImportTransformer = require_ESMImportTransformer(); - var _ESMImportTransformer2 = _interopRequireDefault(_ESMImportTransformer); - var _FlowTransformer = require_FlowTransformer(); - var _FlowTransformer2 = _interopRequireDefault(_FlowTransformer); - var _JestHoistTransformer = require_JestHoistTransformer(); - var _JestHoistTransformer2 = _interopRequireDefault(_JestHoistTransformer); - var _JSXTransformer = require_JSXTransformer(); - var _JSXTransformer2 = _interopRequireDefault(_JSXTransformer); - var _NumericSeparatorTransformer = require_NumericSeparatorTransformer(); - var _NumericSeparatorTransformer2 = _interopRequireDefault(_NumericSeparatorTransformer); - var _OptionalCatchBindingTransformer = require_OptionalCatchBindingTransformer(); - var _OptionalCatchBindingTransformer2 = _interopRequireDefault(_OptionalCatchBindingTransformer); - var _OptionalChainingNullishTransformer = require_OptionalChainingNullishTransformer(); - var _OptionalChainingNullishTransformer2 = _interopRequireDefault(_OptionalChainingNullishTransformer); - var _ReactDisplayNameTransformer = require_ReactDisplayNameTransformer(); - var _ReactDisplayNameTransformer2 = _interopRequireDefault(_ReactDisplayNameTransformer); - var _ReactHotLoaderTransformer = require_ReactHotLoaderTransformer(); - var _ReactHotLoaderTransformer2 = _interopRequireDefault(_ReactHotLoaderTransformer); - var _TypeScriptTransformer = require_TypeScriptTransformer(); - var _TypeScriptTransformer2 = _interopRequireDefault(_TypeScriptTransformer); - var RootTransformer = class _RootTransformer { - __init() { - this.transformers = []; - } - __init2() { - this.generatedVariables = []; - } - constructor(sucraseContext, transforms, enableLegacyBabel5ModuleInterop, options2) { - ; - _RootTransformer.prototype.__init.call(this); - _RootTransformer.prototype.__init2.call(this); - this.nameManager = sucraseContext.nameManager; - this.helperManager = sucraseContext.helperManager; - const { tokenProcessor, importProcessor } = sucraseContext; - this.tokens = tokenProcessor; - this.isImportsTransformEnabled = transforms.includes("imports"); - this.isReactHotLoaderTransformEnabled = transforms.includes("react-hot-loader"); - this.disableESTransforms = Boolean(options2.disableESTransforms); - if (!options2.disableESTransforms) { - this.transformers.push( - new (0, _OptionalChainingNullishTransformer2.default)(tokenProcessor, this.nameManager) - ); - this.transformers.push(new (0, _NumericSeparatorTransformer2.default)(tokenProcessor)); - this.transformers.push(new (0, _OptionalCatchBindingTransformer2.default)(tokenProcessor, this.nameManager)); - } - if (transforms.includes("jsx")) { - if (options2.jsxRuntime !== "preserve") { - this.transformers.push( - new (0, _JSXTransformer2.default)(this, tokenProcessor, importProcessor, this.nameManager, options2) - ); - } - this.transformers.push( - new (0, _ReactDisplayNameTransformer2.default)(this, tokenProcessor, importProcessor, options2) - ); - } - let reactHotLoaderTransformer = null; - if (transforms.includes("react-hot-loader")) { - if (!options2.filePath) { - throw new Error("filePath is required when using the react-hot-loader transform."); - } - reactHotLoaderTransformer = new (0, _ReactHotLoaderTransformer2.default)(tokenProcessor, options2.filePath); - this.transformers.push(reactHotLoaderTransformer); - } - if (transforms.includes("imports")) { - if (importProcessor === null) { - throw new Error("Expected non-null importProcessor with imports transform enabled."); - } - this.transformers.push( - new (0, _CJSImportTransformer2.default)( - this, - tokenProcessor, - importProcessor, - this.nameManager, - this.helperManager, - reactHotLoaderTransformer, - enableLegacyBabel5ModuleInterop, - Boolean(options2.enableLegacyTypeScriptModuleInterop), - transforms.includes("typescript"), - transforms.includes("flow"), - Boolean(options2.preserveDynamicImport), - Boolean(options2.keepUnusedImports) - ) - ); - } else { - this.transformers.push( - new (0, _ESMImportTransformer2.default)( - tokenProcessor, - this.nameManager, - this.helperManager, - reactHotLoaderTransformer, - transforms.includes("typescript"), - transforms.includes("flow"), - Boolean(options2.keepUnusedImports), - options2 - ) - ); - } - if (transforms.includes("flow")) { - this.transformers.push( - new (0, _FlowTransformer2.default)(this, tokenProcessor, transforms.includes("imports")) - ); - } - if (transforms.includes("typescript")) { - this.transformers.push( - new (0, _TypeScriptTransformer2.default)(this, tokenProcessor, transforms.includes("imports")) - ); - } - if (transforms.includes("jest")) { - this.transformers.push( - new (0, _JestHoistTransformer2.default)(this, tokenProcessor, this.nameManager, importProcessor) - ); - } - } - transform() { - this.tokens.reset(); - this.processBalancedCode(); - const shouldAddUseStrict = this.isImportsTransformEnabled; - let prefix2 = shouldAddUseStrict ? '"use strict";' : ""; - for (const transformer of this.transformers) { - prefix2 += transformer.getPrefixCode(); - } - prefix2 += this.helperManager.emitHelpers(); - prefix2 += this.generatedVariables.map((v3) => ` var ${v3};`).join(""); - for (const transformer of this.transformers) { - prefix2 += transformer.getHoistedCode(); - } - let suffix = ""; - for (const transformer of this.transformers) { - suffix += transformer.getSuffixCode(); - } - const result = this.tokens.finish(); - let { code } = result; - if (code.startsWith("#!")) { - let newlineIndex = code.indexOf("\n"); - if (newlineIndex === -1) { - newlineIndex = code.length; - code += "\n"; - } - return { - code: code.slice(0, newlineIndex + 1) + prefix2 + code.slice(newlineIndex + 1) + suffix, - // The hashbang line has no tokens, so shifting the tokens to account - // for prefix can happen normally. - mappings: this.shiftMappings(result.mappings, prefix2.length) - }; - } else { - return { - code: prefix2 + code + suffix, - mappings: this.shiftMappings(result.mappings, prefix2.length) - }; - } - } - processBalancedCode() { - let braceDepth = 0; - let parenDepth = 0; - while (!this.tokens.isAtEnd()) { - if (this.tokens.matches1(_types.TokenType.braceL) || this.tokens.matches1(_types.TokenType.dollarBraceL)) { - braceDepth++; - } else if (this.tokens.matches1(_types.TokenType.braceR)) { - if (braceDepth === 0) { - return; - } - braceDepth--; - } - if (this.tokens.matches1(_types.TokenType.parenL)) { - parenDepth++; - } else if (this.tokens.matches1(_types.TokenType.parenR)) { - if (parenDepth === 0) { - return; - } - parenDepth--; - } - this.processToken(); - } - } - processToken() { - if (this.tokens.matches1(_types.TokenType._class)) { - this.processClass(); - return; - } - for (const transformer of this.transformers) { - const wasProcessed = transformer.process(); - if (wasProcessed) { - return; - } - } - this.tokens.copyToken(); - } - /** - * Skip past a class with a name and return that name. - */ - processNamedClass() { - if (!this.tokens.matches2(_types.TokenType._class, _types.TokenType.name)) { - throw new Error("Expected identifier for exported class name."); - } - const name = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); - this.processClass(); - return name; - } - processClass() { - const classInfo = _getClassInfo2.default.call(void 0, this, this.tokens, this.nameManager, this.disableESTransforms); - const needsCommaExpression = (classInfo.headerInfo.isExpression || !classInfo.headerInfo.className) && classInfo.staticInitializerNames.length + classInfo.instanceInitializerNames.length > 0; - let className = classInfo.headerInfo.className; - if (needsCommaExpression) { - className = this.nameManager.claimFreeName("_class"); - this.generatedVariables.push(className); - this.tokens.appendCode(` (${className} =`); - } - const classToken = this.tokens.currentToken(); - const contextId = classToken.contextId; - if (contextId == null) { - throw new Error("Expected class to have a context ID."); - } - this.tokens.copyExpectedToken(_types.TokenType._class); - while (!this.tokens.matchesContextIdAndLabel(_types.TokenType.braceL, contextId)) { - this.processToken(); - } - this.processClassBody(classInfo, className); - const staticInitializerStatements = classInfo.staticInitializerNames.map( - (name) => `${className}.${name}()` - ); - if (needsCommaExpression) { - this.tokens.appendCode( - `, ${staticInitializerStatements.map((s4) => `${s4}, `).join("")}${className})` - ); - } else if (classInfo.staticInitializerNames.length > 0) { - this.tokens.appendCode(` ${staticInitializerStatements.map((s4) => `${s4};`).join(" ")}`); - } - } - /** - * We want to just handle class fields in all contexts, since TypeScript supports them. Later, - * when some JS implementations support class fields, this should be made optional. - */ - processClassBody(classInfo, className) { - const { - headerInfo, - constructorInsertPos, - constructorInitializerStatements, - fields, - instanceInitializerNames, - rangesToRemove - } = classInfo; - let fieldIndex = 0; - let rangeToRemoveIndex = 0; - const classContextId = this.tokens.currentToken().contextId; - if (classContextId == null) { - throw new Error("Expected non-null context ID on class."); - } - this.tokens.copyExpectedToken(_types.TokenType.braceL); - if (this.isReactHotLoaderTransformEnabled) { - this.tokens.appendCode( - "__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}" - ); - } - const needsConstructorInit = constructorInitializerStatements.length + instanceInitializerNames.length > 0; - if (constructorInsertPos === null && needsConstructorInit) { - const constructorInitializersCode = this.makeConstructorInitCode( - constructorInitializerStatements, - instanceInitializerNames, - className - ); - if (headerInfo.hasSuperclass) { - const argsName = this.nameManager.claimFreeName("args"); - this.tokens.appendCode( - `constructor(...${argsName}) { super(...${argsName}); ${constructorInitializersCode}; }` - ); - } else { - this.tokens.appendCode(`constructor() { ${constructorInitializersCode}; }`); - } - } - while (!this.tokens.matchesContextIdAndLabel(_types.TokenType.braceR, classContextId)) { - if (fieldIndex < fields.length && this.tokens.currentIndex() === fields[fieldIndex].start) { - let needsCloseBrace = false; - if (this.tokens.matches1(_types.TokenType.bracketL)) { - this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this`); - } else if (this.tokens.matches1(_types.TokenType.string) || this.tokens.matches1(_types.TokenType.num)) { - this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this[`); - needsCloseBrace = true; - } else { - this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this.`); - } - while (this.tokens.currentIndex() < fields[fieldIndex].end) { - if (needsCloseBrace && this.tokens.currentIndex() === fields[fieldIndex].equalsIndex) { - this.tokens.appendCode("]"); - } - this.processToken(); - } - this.tokens.appendCode("}"); - fieldIndex++; - } else if (rangeToRemoveIndex < rangesToRemove.length && this.tokens.currentIndex() >= rangesToRemove[rangeToRemoveIndex].start) { - if (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) { - this.tokens.removeInitialToken(); - } - while (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) { - this.tokens.removeToken(); - } - rangeToRemoveIndex++; - } else if (this.tokens.currentIndex() === constructorInsertPos) { - this.tokens.copyToken(); - if (needsConstructorInit) { - this.tokens.appendCode( - `;${this.makeConstructorInitCode( - constructorInitializerStatements, - instanceInitializerNames, - className - )};` - ); - } - this.processToken(); - } else { - this.processToken(); - } - } - this.tokens.copyExpectedToken(_types.TokenType.braceR); - } - makeConstructorInitCode(constructorInitializerStatements, instanceInitializerNames, className) { - return [ - ...constructorInitializerStatements, - ...instanceInitializerNames.map((name) => `${className}.prototype.${name}.call(this)`) - ].join(";"); - } - /** - * Normally it's ok to simply remove type tokens, but we need to be more careful when dealing with - * arrow function return types since they can confuse the parser. In that case, we want to move - * the close-paren to the same line as the arrow. - * - * See https://github.com/alangpierce/sucrase/issues/391 for more details. - */ - processPossibleArrowParamEnd() { - if (this.tokens.matches2(_types.TokenType.parenR, _types.TokenType.colon) && this.tokens.tokenAtRelativeIndex(1).isType) { - let nextNonTypeIndex = this.tokens.currentIndex() + 1; - while (this.tokens.tokens[nextNonTypeIndex].isType) { - nextNonTypeIndex++; - } - if (this.tokens.matches1AtIndex(nextNonTypeIndex, _types.TokenType.arrow)) { - this.tokens.removeInitialToken(); - while (this.tokens.currentIndex() < nextNonTypeIndex) { - this.tokens.removeToken(); - } - this.tokens.replaceTokenTrimmingLeftWhitespace(") =>"); - return true; - } - } - return false; - } - /** - * An async arrow function might be of the form: - * - * async < - * T - * >() => {} - * - * in which case, removing the type parameters will cause a syntax error. Detect this case and - * move the open-paren earlier. - */ - processPossibleAsyncArrowWithTypeParams() { - if (!this.tokens.matchesContextual(_keywords.ContextualKeyword._async) && !this.tokens.matches1(_types.TokenType._async)) { - return false; - } - const nextToken = this.tokens.tokenAtRelativeIndex(1); - if (nextToken.type !== _types.TokenType.lessThan || !nextToken.isType) { - return false; - } - let nextNonTypeIndex = this.tokens.currentIndex() + 1; - while (this.tokens.tokens[nextNonTypeIndex].isType) { - nextNonTypeIndex++; - } - if (this.tokens.matches1AtIndex(nextNonTypeIndex, _types.TokenType.parenL)) { - this.tokens.replaceToken("async ("); - this.tokens.removeInitialToken(); - while (this.tokens.currentIndex() < nextNonTypeIndex) { - this.tokens.removeToken(); - } - this.tokens.removeToken(); - this.processBalancedCode(); - this.processToken(); - return true; - } - return false; - } - processPossibleTypeRange() { - if (this.tokens.currentToken().isType) { - this.tokens.removeInitialToken(); - while (this.tokens.currentToken().isType) { - this.tokens.removeToken(); - } - return true; - } - return false; - } - shiftMappings(mappings, prefixLength) { - for (let i4 = 0; i4 < mappings.length; i4++) { - const mapping = mappings[i4]; - if (mapping !== void 0) { - mappings[i4] = mapping + prefixLength; - } - } - return mappings; - } - }; - exports2.default = RootTransformer; + exports.Checker = Checker; } }); // node_modules/lines-and-columns/build/index.js var require_build = __commonJS({ - "node_modules/lines-and-columns/build/index.js"(exports2) { + "node_modules/lines-and-columns/build/index.js"(exports) { "use strict"; - exports2.__esModule = true; - exports2.LinesAndColumns = void 0; + exports.__esModule = true; + exports.LinesAndColumns = void 0; var LF = "\n"; var CR = "\r"; - var LinesAndColumns = ( + var LinesAndColumns2 = ( /** @class */ function() { - function LinesAndColumns2(string2) { + function LinesAndColumns3(string2) { this.string = string2; var offsets = [0]; for (var offset3 = 0; offset3 < string2.length; ) { @@ -24384,19 +2977,19 @@ var require_build = __commonJS({ } this.offsets = offsets; } - LinesAndColumns2.prototype.locationForIndex = function(index) { - if (index < 0 || index > this.string.length) { + LinesAndColumns3.prototype.locationForIndex = function(index2) { + if (index2 < 0 || index2 > this.string.length) { return null; } var line2 = 0; var offsets = this.offsets; - while (offsets[line2 + 1] <= index) { + while (offsets[line2 + 1] <= index2) { line2++; } - var column2 = index - offsets[line2]; + var column2 = index2 - offsets[line2]; return { line: line2, column: column2 }; }; - LinesAndColumns2.prototype.indexForLocation = function(location) { + LinesAndColumns3.prototype.indexForLocation = function(location) { var line2 = location.line, column2 = location.column; if (line2 < 0 || line2 >= this.offsets.length) { return null; @@ -24406,392 +2999,24 @@ var require_build = __commonJS({ } return this.offsets[line2] + column2; }; - LinesAndColumns2.prototype.lengthOfLine = function(line2) { + LinesAndColumns3.prototype.lengthOfLine = function(line2) { var offset3 = this.offsets[line2]; var nextOffset = line2 === this.offsets.length - 1 ? this.string.length : this.offsets[line2 + 1]; return nextOffset - offset3; }; - return LinesAndColumns2; + return LinesAndColumns3; }() ); - exports2.LinesAndColumns = LinesAndColumns; - exports2["default"] = LinesAndColumns; - } -}); - -// node_modules/sucrase/dist/util/formatTokens.js -var require_formatTokens = __commonJS({ - "node_modules/sucrase/dist/util/formatTokens.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _linesandcolumns = require_build(); - var _linesandcolumns2 = _interopRequireDefault(_linesandcolumns); - var _types = require_types(); - function formatTokens(code, tokens) { - if (tokens.length === 0) { - return ""; - } - const tokenKeys = Object.keys(tokens[0]).filter( - (k4) => k4 !== "type" && k4 !== "value" && k4 !== "start" && k4 !== "end" && k4 !== "loc" - ); - const typeKeys = Object.keys(tokens[0].type).filter((k4) => k4 !== "label" && k4 !== "keyword"); - const headings = ["Location", "Label", "Raw", ...tokenKeys, ...typeKeys]; - const lines = new (0, _linesandcolumns2.default)(code); - const rows = [headings, ...tokens.map(getTokenComponents)]; - const padding = headings.map(() => 0); - for (const components2 of rows) { - for (let i4 = 0; i4 < components2.length; i4++) { - padding[i4] = Math.max(padding[i4], components2[i4].length); - } - } - return rows.map((components2) => components2.map((component, i4) => component.padEnd(padding[i4])).join(" ")).join("\n"); - function getTokenComponents(token2) { - const raw = code.slice(token2.start, token2.end); - return [ - formatRange(token2.start, token2.end), - _types.formatTokenType.call(void 0, token2.type), - truncate(String(raw), 14), - // @ts-ignore: Intentional dynamic access by key. - ...tokenKeys.map((key) => formatValue(token2[key], key)), - // @ts-ignore: Intentional dynamic access by key. - ...typeKeys.map((key) => formatValue(token2.type[key], key)) - ]; - } - function formatValue(value, key) { - if (value === true) { - return key; - } else if (value === false || value === null) { - return ""; - } else { - return String(value); - } - } - function formatRange(start, end2) { - return `${formatPos(start)}-${formatPos(end2)}`; - } - function formatPos(pos) { - const location = lines.locationForIndex(pos); - if (!location) { - return "Unknown"; - } else { - return `${location.line + 1}:${location.column + 1}`; - } - } - } - exports2.default = formatTokens; - function truncate(s4, length2) { - if (s4.length > length2) { - return `${s4.slice(0, length2 - 3)}...`; - } else { - return s4; - } - } - } -}); - -// node_modules/sucrase/dist/util/getTSImportedNames.js -var require_getTSImportedNames = __commonJS({ - "node_modules/sucrase/dist/util/getTSImportedNames.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _types = require_types(); - var _getImportExportSpecifierInfo = require_getImportExportSpecifierInfo(); - var _getImportExportSpecifierInfo2 = _interopRequireDefault(_getImportExportSpecifierInfo); - function getTSImportedNames(tokens) { - const importedNames = /* @__PURE__ */ new Set(); - for (let i4 = 0; i4 < tokens.tokens.length; i4++) { - if (tokens.matches1AtIndex(i4, _types.TokenType._import) && !tokens.matches3AtIndex(i4, _types.TokenType._import, _types.TokenType.name, _types.TokenType.eq)) { - collectNamesForImport(tokens, i4, importedNames); - } - } - return importedNames; - } - exports2.default = getTSImportedNames; - function collectNamesForImport(tokens, index, importedNames) { - index++; - if (tokens.matches1AtIndex(index, _types.TokenType.parenL)) { - return; - } - if (tokens.matches1AtIndex(index, _types.TokenType.name)) { - importedNames.add(tokens.identifierNameAtIndex(index)); - index++; - if (tokens.matches1AtIndex(index, _types.TokenType.comma)) { - index++; - } - } - if (tokens.matches1AtIndex(index, _types.TokenType.star)) { - index += 2; - importedNames.add(tokens.identifierNameAtIndex(index)); - index++; - } - if (tokens.matches1AtIndex(index, _types.TokenType.braceL)) { - index++; - collectNamesForNamedImport(tokens, index, importedNames); - } - } - function collectNamesForNamedImport(tokens, index, importedNames) { - while (true) { - if (tokens.matches1AtIndex(index, _types.TokenType.braceR)) { - return; - } - const specifierInfo = _getImportExportSpecifierInfo2.default.call(void 0, tokens, index); - index = specifierInfo.endIndex; - if (!specifierInfo.isType) { - importedNames.add(specifierInfo.rightName); - } - if (tokens.matches2AtIndex(index, _types.TokenType.comma, _types.TokenType.braceR)) { - return; - } else if (tokens.matches1AtIndex(index, _types.TokenType.braceR)) { - return; - } else if (tokens.matches1AtIndex(index, _types.TokenType.comma)) { - index++; - } else { - throw new Error(`Unexpected token: ${JSON.stringify(tokens.tokens[index])}`); - } - } - } - } -}); - -// node_modules/sucrase/dist/index.js -var require_dist2 = __commonJS({ - "node_modules/sucrase/dist/index.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _CJSImportProcessor = require_CJSImportProcessor(); - var _CJSImportProcessor2 = _interopRequireDefault(_CJSImportProcessor); - var _computeSourceMap = require_computeSourceMap(); - var _computeSourceMap2 = _interopRequireDefault(_computeSourceMap); - var _HelperManager = require_HelperManager(); - var _identifyShadowedGlobals = require_identifyShadowedGlobals(); - var _identifyShadowedGlobals2 = _interopRequireDefault(_identifyShadowedGlobals); - var _NameManager = require_NameManager(); - var _NameManager2 = _interopRequireDefault(_NameManager); - var _Options = require_Options(); - var _parser = require_parser(); - var _TokenProcessor = require_TokenProcessor(); - var _TokenProcessor2 = _interopRequireDefault(_TokenProcessor); - var _RootTransformer = require_RootTransformer(); - var _RootTransformer2 = _interopRequireDefault(_RootTransformer); - var _formatTokens = require_formatTokens(); - var _formatTokens2 = _interopRequireDefault(_formatTokens); - var _getTSImportedNames = require_getTSImportedNames(); - var _getTSImportedNames2 = _interopRequireDefault(_getTSImportedNames); - function getVersion() { - return "3.35.0"; - } - exports2.getVersion = getVersion; - function transform2(code, options2) { - _Options.validateOptions.call(void 0, options2); - try { - const sucraseContext = getSucraseContext(code, options2); - const transformer = new (0, _RootTransformer2.default)( - sucraseContext, - options2.transforms, - Boolean(options2.enableLegacyBabel5ModuleInterop), - options2 - ); - const transformerResult = transformer.transform(); - let result = { code: transformerResult.code }; - if (options2.sourceMapOptions) { - if (!options2.filePath) { - throw new Error("filePath must be specified when generating a source map."); - } - result = { - ...result, - sourceMap: _computeSourceMap2.default.call( - void 0, - transformerResult, - options2.filePath, - options2.sourceMapOptions, - code, - sucraseContext.tokenProcessor.tokens - ) - }; - } - return result; - } catch (e3) { - if (options2.filePath) { - e3.message = `Error transforming ${options2.filePath}: ${e3.message}`; - } - throw e3; - } - } - exports2.transform = transform2; - function getFormattedTokens(code, options2) { - const tokens = getSucraseContext(code, options2).tokenProcessor.tokens; - return _formatTokens2.default.call(void 0, code, tokens); - } - exports2.getFormattedTokens = getFormattedTokens; - function getSucraseContext(code, options2) { - const isJSXEnabled = options2.transforms.includes("jsx"); - const isTypeScriptEnabled = options2.transforms.includes("typescript"); - const isFlowEnabled = options2.transforms.includes("flow"); - const disableESTransforms = options2.disableESTransforms === true; - const file = _parser.parse.call(void 0, code, isJSXEnabled, isTypeScriptEnabled, isFlowEnabled); - const tokens = file.tokens; - const scopes = file.scopes; - const nameManager = new (0, _NameManager2.default)(code, tokens); - const helperManager = new (0, _HelperManager.HelperManager)(nameManager); - const tokenProcessor = new (0, _TokenProcessor2.default)( - code, - tokens, - isFlowEnabled, - disableESTransforms, - helperManager - ); - const enableLegacyTypeScriptModuleInterop = Boolean(options2.enableLegacyTypeScriptModuleInterop); - let importProcessor = null; - if (options2.transforms.includes("imports")) { - importProcessor = new (0, _CJSImportProcessor2.default)( - nameManager, - tokenProcessor, - enableLegacyTypeScriptModuleInterop, - options2, - options2.transforms.includes("typescript"), - Boolean(options2.keepUnusedImports), - helperManager - ); - importProcessor.preprocessTokens(); - _identifyShadowedGlobals2.default.call(void 0, tokenProcessor, scopes, importProcessor.getGlobalNames()); - if (options2.transforms.includes("typescript") && !options2.keepUnusedImports) { - importProcessor.pruneTypeOnlyImports(); - } - } else if (options2.transforms.includes("typescript") && !options2.keepUnusedImports) { - _identifyShadowedGlobals2.default.call(void 0, tokenProcessor, scopes, _getTSImportedNames2.default.call(void 0, tokenProcessor)); - } - return { tokenProcessor, scopes, nameManager, importProcessor, helperManager }; - } - } -}); - -// node_modules/react-is/cjs/react-is.production.min.js -var require_react_is_production_min = __commonJS({ - "node_modules/react-is/cjs/react-is.production.min.js"(exports2) { - "use strict"; - var b3 = "function" === typeof Symbol && Symbol.for; - var c4 = b3 ? Symbol.for("react.element") : 60103; - var d3 = b3 ? Symbol.for("react.portal") : 60106; - var e3 = b3 ? Symbol.for("react.fragment") : 60107; - var f4 = b3 ? Symbol.for("react.strict_mode") : 60108; - var g4 = b3 ? Symbol.for("react.profiler") : 60114; - var h3 = b3 ? Symbol.for("react.provider") : 60109; - var k4 = b3 ? Symbol.for("react.context") : 60110; - var l4 = b3 ? Symbol.for("react.async_mode") : 60111; - var m3 = b3 ? Symbol.for("react.concurrent_mode") : 60111; - var n3 = b3 ? Symbol.for("react.forward_ref") : 60112; - var p3 = b3 ? Symbol.for("react.suspense") : 60113; - var q4 = b3 ? Symbol.for("react.suspense_list") : 60120; - var r4 = b3 ? Symbol.for("react.memo") : 60115; - var t4 = b3 ? Symbol.for("react.lazy") : 60116; - var v3 = b3 ? Symbol.for("react.block") : 60121; - var w5 = b3 ? Symbol.for("react.fundamental") : 60117; - var x4 = b3 ? Symbol.for("react.responder") : 60118; - var y4 = b3 ? Symbol.for("react.scope") : 60119; - function z4(a4) { - if ("object" === typeof a4 && null !== a4) { - var u4 = a4.$$typeof; - switch (u4) { - case c4: - switch (a4 = a4.type, a4) { - case l4: - case m3: - case e3: - case g4: - case f4: - case p3: - return a4; - default: - switch (a4 = a4 && a4.$$typeof, a4) { - case k4: - case n3: - case t4: - case r4: - case h3: - return a4; - default: - return u4; - } - } - case d3: - return u4; - } - } - } - function A4(a4) { - return z4(a4) === m3; - } - exports2.AsyncMode = l4; - exports2.ConcurrentMode = m3; - exports2.ContextConsumer = k4; - exports2.ContextProvider = h3; - exports2.Element = c4; - exports2.ForwardRef = n3; - exports2.Fragment = e3; - exports2.Lazy = t4; - exports2.Memo = r4; - exports2.Portal = d3; - exports2.Profiler = g4; - exports2.StrictMode = f4; - exports2.Suspense = p3; - exports2.isAsyncMode = function(a4) { - return A4(a4) || z4(a4) === l4; - }; - exports2.isConcurrentMode = A4; - exports2.isContextConsumer = function(a4) { - return z4(a4) === k4; - }; - exports2.isContextProvider = function(a4) { - return z4(a4) === h3; - }; - exports2.isElement = function(a4) { - return "object" === typeof a4 && null !== a4 && a4.$$typeof === c4; - }; - exports2.isForwardRef = function(a4) { - return z4(a4) === n3; - }; - exports2.isFragment = function(a4) { - return z4(a4) === e3; - }; - exports2.isLazy = function(a4) { - return z4(a4) === t4; - }; - exports2.isMemo = function(a4) { - return z4(a4) === r4; - }; - exports2.isPortal = function(a4) { - return z4(a4) === d3; - }; - exports2.isProfiler = function(a4) { - return z4(a4) === g4; - }; - exports2.isStrictMode = function(a4) { - return z4(a4) === f4; - }; - exports2.isSuspense = function(a4) { - return z4(a4) === p3; - }; - exports2.isValidElementType = function(a4) { - return "string" === typeof a4 || "function" === typeof a4 || a4 === e3 || a4 === m3 || a4 === g4 || a4 === f4 || a4 === p3 || a4 === q4 || "object" === typeof a4 && null !== a4 && (a4.$$typeof === t4 || a4.$$typeof === r4 || a4.$$typeof === h3 || a4.$$typeof === k4 || a4.$$typeof === n3 || a4.$$typeof === w5 || a4.$$typeof === x4 || a4.$$typeof === y4 || a4.$$typeof === v3); - }; - exports2.typeOf = z4; + exports.LinesAndColumns = LinesAndColumns2; + exports["default"] = LinesAndColumns2; } }); // node_modules/react-is/cjs/react-is.development.js var require_react_is_development = __commonJS({ - "node_modules/react-is/cjs/react-is.development.js"(exports2) { + "node_modules/react-is/cjs/react-is.development.js"(exports) { "use strict"; - if (process.env.NODE_ENV !== "production") { + if (true) { (function() { "use strict"; var hasSymbol = typeof Symbol === "function" && Symbol.for; @@ -24909,34 +3134,34 @@ var require_react_is_development = __commonJS({ function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } - exports2.AsyncMode = AsyncMode; - exports2.ConcurrentMode = ConcurrentMode; - exports2.ContextConsumer = ContextConsumer; - exports2.ContextProvider = ContextProvider; - exports2.Element = Element2; - exports2.ForwardRef = ForwardRef; - exports2.Fragment = Fragment; - exports2.Lazy = Lazy; - exports2.Memo = Memo; - exports2.Portal = Portal; - exports2.Profiler = Profiler; - exports2.StrictMode = StrictMode; - exports2.Suspense = Suspense; - exports2.isAsyncMode = isAsyncMode; - exports2.isConcurrentMode = isConcurrentMode; - exports2.isContextConsumer = isContextConsumer; - exports2.isContextProvider = isContextProvider; - exports2.isElement = isElement2; - exports2.isForwardRef = isForwardRef; - exports2.isFragment = isFragment; - exports2.isLazy = isLazy; - exports2.isMemo = isMemo; - exports2.isPortal = isPortal; - exports2.isProfiler = isProfiler; - exports2.isStrictMode = isStrictMode; - exports2.isSuspense = isSuspense; - exports2.isValidElementType = isValidElementType; - exports2.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element2; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement2; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + exports.isValidElementType = isValidElementType; + exports.typeOf = typeOf; })(); } } @@ -24944,10 +3169,10 @@ var require_react_is_development = __commonJS({ // node_modules/react-is/index.js var require_react_is = __commonJS({ - "node_modules/react-is/index.js"(exports2, module2) { + "node_modules/react-is/index.js"(exports, module2) { "use strict"; - if (process.env.NODE_ENV === "production") { - module2.exports = require_react_is_production_min(); + if (false) { + module2.exports = null; } else { module2.exports = require_react_is_development(); } @@ -24956,7 +3181,7 @@ var require_react_is = __commonJS({ // node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js var require_hoist_non_react_statics_cjs = __commonJS({ - "node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"(exports2, module2) { + "node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"(exports, module2) { "use strict"; var reactIs = require_react_is(); var REACT_STATICS = { @@ -25042,4054 +3267,9 @@ var require_hoist_non_react_statics_cjs = __commonJS({ } }); -// node_modules/@babel/runtime/helpers/extends.js -var require_extends = __commonJS({ - "node_modules/@babel/runtime/helpers/extends.js"(exports2, module2) { - function _extends2() { - return module2.exports = _extends2 = Object.assign ? Object.assign.bind() : function(n3) { - for (var e3 = 1; e3 < arguments.length; e3++) { - var t4 = arguments[e3]; - for (var r4 in t4) ({}).hasOwnProperty.call(t4, r4) && (n3[r4] = t4[r4]); - } - return n3; - }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _extends2.apply(null, arguments); - } - module2.exports = _extends2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/preact/dist/preact.js -var require_preact = __commonJS({ - "node_modules/preact/dist/preact.js"(exports2) { - var n3; - var l4; - var t4; - var u4; - var i4; - var o4; - var r4; - var e3; - var f4; - var c4; - var s4; - var h3; - var a4 = {}; - var p3 = []; - var v3 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; - var y4 = Array.isArray; - function d3(n4, l5) { - for (var t5 in l5) n4[t5] = l5[t5]; - return n4; - } - function w5(n4) { - n4 && n4.parentNode && n4.parentNode.removeChild(n4); - } - function _3(l5, t5, u5) { - var i5, o5, r5, e4 = {}; - for (r5 in t5) "key" == r5 ? i5 = t5[r5] : "ref" == r5 ? o5 = t5[r5] : e4[r5] = t5[r5]; - if (arguments.length > 2 && (e4.children = arguments.length > 3 ? n3.call(arguments, 2) : u5), "function" == typeof l5 && null != l5.defaultProps) for (r5 in l5.defaultProps) void 0 === e4[r5] && (e4[r5] = l5.defaultProps[r5]); - return g4(l5, e4, i5, o5, null); - } - function g4(n4, u5, i5, o5, r5) { - var e4 = { type: n4, props: u5, key: i5, ref: o5, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: null == r5 ? ++t4 : r5, __i: -1, __u: 0 }; - return null == r5 && null != l4.vnode && l4.vnode(e4), e4; - } - function x4(n4) { - return n4.children; - } - function m3(n4, l5) { - this.props = n4, this.context = l5; - } - function b3(n4, l5) { - if (null == l5) return n4.__ ? b3(n4.__, n4.__i + 1) : null; - for (var t5; l5 < n4.__k.length; l5++) if (null != (t5 = n4.__k[l5]) && null != t5.__e) return t5.__e; - return "function" == typeof n4.type ? b3(n4) : null; - } - function k4(n4) { - var l5, t5; - if (null != (n4 = n4.__) && null != n4.__c) { - for (n4.__e = n4.__c.base = null, l5 = 0; l5 < n4.__k.length; l5++) if (null != (t5 = n4.__k[l5]) && null != t5.__e) { - n4.__e = n4.__c.base = t5.__e; - break; - } - return k4(n4); - } - } - function S2(n4) { - (!n4.__d && (n4.__d = true) && i4.push(n4) && !C4.__r++ || o4 !== l4.debounceRendering) && ((o4 = l4.debounceRendering) || r4)(C4); - } - function C4() { - var n4, t5, u5, o5, r5, f5, c5, s5; - for (i4.sort(e3); n4 = i4.shift(); ) n4.__d && (t5 = i4.length, o5 = void 0, f5 = (r5 = (u5 = n4).__v).__e, c5 = [], s5 = [], u5.__P && ((o5 = d3({}, r5)).__v = r5.__v + 1, l4.vnode && l4.vnode(o5), A4(u5.__P, o5, r5, u5.__n, u5.__P.namespaceURI, 32 & r5.__u ? [f5] : null, c5, null == f5 ? b3(r5) : f5, !!(32 & r5.__u), s5), o5.__v = r5.__v, o5.__.__k[o5.__i] = o5, F4(c5, o5, s5), o5.__e != f5 && k4(o5)), i4.length > t5 && i4.sort(e3)); - C4.__r = 0; - } - function M3(n4, l5, t5, u5, i5, o5, r5, e4, f5, c5, s5) { - var h4, v4, y5, d4, w6, _4 = u5 && u5.__k || p3, g5 = l5.length; - for (t5.__d = f5, P7(t5, l5, _4), f5 = t5.__d, h4 = 0; h4 < g5; h4++) null != (y5 = t5.__k[h4]) && (v4 = -1 === y5.__i ? a4 : _4[y5.__i] || a4, y5.__i = h4, A4(n4, y5, v4, i5, o5, r5, e4, f5, c5, s5), d4 = y5.__e, y5.ref && v4.ref != y5.ref && (v4.ref && j4(v4.ref, null, y5), s5.push(y5.ref, y5.__c || d4, y5)), null == w6 && null != d4 && (w6 = d4), 65536 & y5.__u || v4.__k === y5.__k ? f5 = $3(y5, f5, n4) : "function" == typeof y5.type && void 0 !== y5.__d ? f5 = y5.__d : d4 && (f5 = d4.nextSibling), y5.__d = void 0, y5.__u &= -196609); - t5.__d = f5, t5.__e = w6; - } - function P7(n4, l5, t5) { - var u5, i5, o5, r5, e4, f5 = l5.length, c5 = t5.length, s5 = c5, h4 = 0; - for (n4.__k = [], u5 = 0; u5 < f5; u5++) null != (i5 = l5[u5]) && "boolean" != typeof i5 && "function" != typeof i5 ? (r5 = u5 + h4, (i5 = n4.__k[u5] = "string" == typeof i5 || "number" == typeof i5 || "bigint" == typeof i5 || i5.constructor == String ? g4(null, i5, null, null, null) : y4(i5) ? g4(x4, { children: i5 }, null, null, null) : void 0 === i5.constructor && i5.__b > 0 ? g4(i5.type, i5.props, i5.key, i5.ref ? i5.ref : null, i5.__v) : i5).__ = n4, i5.__b = n4.__b + 1, o5 = null, -1 !== (e4 = i5.__i = I3(i5, t5, r5, s5)) && (s5--, (o5 = t5[e4]) && (o5.__u |= 131072)), null == o5 || null === o5.__v ? (-1 == e4 && h4--, "function" != typeof i5.type && (i5.__u |= 65536)) : e4 !== r5 && (e4 == r5 - 1 ? h4-- : e4 == r5 + 1 ? h4++ : (e4 > r5 ? h4-- : h4++, i5.__u |= 65536))) : i5 = n4.__k[u5] = null; - if (s5) for (u5 = 0; u5 < c5; u5++) null != (o5 = t5[u5]) && 0 == (131072 & o5.__u) && (o5.__e == n4.__d && (n4.__d = b3(o5)), z4(o5, o5)); - } - function $3(n4, l5, t5) { - var u5, i5; - if ("function" == typeof n4.type) { - for (u5 = n4.__k, i5 = 0; u5 && i5 < u5.length; i5++) u5[i5] && (u5[i5].__ = n4, l5 = $3(u5[i5], l5, t5)); - return l5; - } - n4.__e != l5 && (l5 && n4.type && !t5.contains(l5) && (l5 = b3(n4)), t5.insertBefore(n4.__e, l5 || null), l5 = n4.__e); - do { - l5 = l5 && l5.nextSibling; - } while (null != l5 && 8 === l5.nodeType); - return l5; - } - function I3(n4, l5, t5, u5) { - var i5 = n4.key, o5 = n4.type, r5 = t5 - 1, e4 = t5 + 1, f5 = l5[t5]; - if (null === f5 || f5 && i5 == f5.key && o5 === f5.type && 0 == (131072 & f5.__u)) return t5; - if (u5 > (null != f5 && 0 == (131072 & f5.__u) ? 1 : 0)) for (; r5 >= 0 || e4 < l5.length; ) { - if (r5 >= 0) { - if ((f5 = l5[r5]) && 0 == (131072 & f5.__u) && i5 == f5.key && o5 === f5.type) return r5; - r5--; - } - if (e4 < l5.length) { - if ((f5 = l5[e4]) && 0 == (131072 & f5.__u) && i5 == f5.key && o5 === f5.type) return e4; - e4++; - } - } - return -1; - } - function H3(n4, l5, t5) { - "-" === l5[0] ? n4.setProperty(l5, null == t5 ? "" : t5) : n4[l5] = null == t5 ? "" : "number" != typeof t5 || v3.test(l5) ? t5 : t5 + "px"; - } - function L3(n4, l5, t5, u5, i5) { - var o5; - n: if ("style" === l5) if ("string" == typeof t5) n4.style.cssText = t5; - else { - if ("string" == typeof u5 && (n4.style.cssText = u5 = ""), u5) for (l5 in u5) t5 && l5 in t5 || H3(n4.style, l5, ""); - if (t5) for (l5 in t5) u5 && t5[l5] === u5[l5] || H3(n4.style, l5, t5[l5]); - } - else if ("o" === l5[0] && "n" === l5[1]) o5 = l5 !== (l5 = l5.replace(/(PointerCapture)$|Capture$/i, "$1")), l5 = l5.toLowerCase() in n4 || "onFocusOut" === l5 || "onFocusIn" === l5 ? l5.toLowerCase().slice(2) : l5.slice(2), n4.l || (n4.l = {}), n4.l[l5 + o5] = t5, t5 ? u5 ? t5.t = u5.t : (t5.t = f4, n4.addEventListener(l5, o5 ? s4 : c4, o5)) : n4.removeEventListener(l5, o5 ? s4 : c4, o5); - else { - if ("http://www.w3.org/2000/svg" == i5) l5 = l5.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); - else if ("width" != l5 && "height" != l5 && "href" != l5 && "list" != l5 && "form" != l5 && "tabIndex" != l5 && "download" != l5 && "rowSpan" != l5 && "colSpan" != l5 && "role" != l5 && "popover" != l5 && l5 in n4) try { - n4[l5] = null == t5 ? "" : t5; - break n; - } catch (n5) { - } - "function" == typeof t5 || (null == t5 || false === t5 && "-" !== l5[4] ? n4.removeAttribute(l5) : n4.setAttribute(l5, "popover" == l5 && 1 == t5 ? "" : t5)); - } - } - function T4(n4) { - return function(t5) { - if (this.l) { - var u5 = this.l[t5.type + n4]; - if (null == t5.u) t5.u = f4++; - else if (t5.u < u5.t) return; - return u5(l4.event ? l4.event(t5) : t5); - } - }; - } - function A4(n4, t5, u5, i5, o5, r5, e4, f5, c5, s5) { - var h4, a5, p4, v4, w6, _4, g5, b4, k5, S3, C5, P8, $4, I4, H4, L4, T5 = t5.type; - if (void 0 !== t5.constructor) return null; - 128 & u5.__u && (c5 = !!(32 & u5.__u), r5 = [f5 = t5.__e = u5.__e]), (h4 = l4.__b) && h4(t5); - n: if ("function" == typeof T5) try { - if (b4 = t5.props, k5 = "prototype" in T5 && T5.prototype.render, S3 = (h4 = T5.contextType) && i5[h4.__c], C5 = h4 ? S3 ? S3.props.value : h4.__ : i5, u5.__c ? g5 = (a5 = t5.__c = u5.__c).__ = a5.__E : (k5 ? t5.__c = a5 = new T5(b4, C5) : (t5.__c = a5 = new m3(b4, C5), a5.constructor = T5, a5.render = N3), S3 && S3.sub(a5), a5.props = b4, a5.state || (a5.state = {}), a5.context = C5, a5.__n = i5, p4 = a5.__d = true, a5.__h = [], a5._sb = []), k5 && null == a5.__s && (a5.__s = a5.state), k5 && null != T5.getDerivedStateFromProps && (a5.__s == a5.state && (a5.__s = d3({}, a5.__s)), d3(a5.__s, T5.getDerivedStateFromProps(b4, a5.__s))), v4 = a5.props, w6 = a5.state, a5.__v = t5, p4) k5 && null == T5.getDerivedStateFromProps && null != a5.componentWillMount && a5.componentWillMount(), k5 && null != a5.componentDidMount && a5.__h.push(a5.componentDidMount); - else { - if (k5 && null == T5.getDerivedStateFromProps && b4 !== v4 && null != a5.componentWillReceiveProps && a5.componentWillReceiveProps(b4, C5), !a5.__e && (null != a5.shouldComponentUpdate && false === a5.shouldComponentUpdate(b4, a5.__s, C5) || t5.__v === u5.__v)) { - for (t5.__v !== u5.__v && (a5.props = b4, a5.state = a5.__s, a5.__d = false), t5.__e = u5.__e, t5.__k = u5.__k, t5.__k.some(function(n5) { - n5 && (n5.__ = t5); - }), P8 = 0; P8 < a5._sb.length; P8++) a5.__h.push(a5._sb[P8]); - a5._sb = [], a5.__h.length && e4.push(a5); - break n; - } - null != a5.componentWillUpdate && a5.componentWillUpdate(b4, a5.__s, C5), k5 && null != a5.componentDidUpdate && a5.__h.push(function() { - a5.componentDidUpdate(v4, w6, _4); - }); - } - if (a5.context = C5, a5.props = b4, a5.__P = n4, a5.__e = false, $4 = l4.__r, I4 = 0, k5) { - for (a5.state = a5.__s, a5.__d = false, $4 && $4(t5), h4 = a5.render(a5.props, a5.state, a5.context), H4 = 0; H4 < a5._sb.length; H4++) a5.__h.push(a5._sb[H4]); - a5._sb = []; - } else do { - a5.__d = false, $4 && $4(t5), h4 = a5.render(a5.props, a5.state, a5.context), a5.state = a5.__s; - } while (a5.__d && ++I4 < 25); - a5.state = a5.__s, null != a5.getChildContext && (i5 = d3(d3({}, i5), a5.getChildContext())), k5 && !p4 && null != a5.getSnapshotBeforeUpdate && (_4 = a5.getSnapshotBeforeUpdate(v4, w6)), M3(n4, y4(L4 = null != h4 && h4.type === x4 && null == h4.key ? h4.props.children : h4) ? L4 : [L4], t5, u5, i5, o5, r5, e4, f5, c5, s5), a5.base = t5.__e, t5.__u &= -161, a5.__h.length && e4.push(a5), g5 && (a5.__E = a5.__ = null); - } catch (n5) { - if (t5.__v = null, c5 || null != r5) { - for (t5.__u |= c5 ? 160 : 128; f5 && 8 === f5.nodeType && f5.nextSibling; ) f5 = f5.nextSibling; - r5[r5.indexOf(f5)] = null, t5.__e = f5; - } else t5.__e = u5.__e, t5.__k = u5.__k; - l4.__e(n5, t5, u5); - } - else null == r5 && t5.__v === u5.__v ? (t5.__k = u5.__k, t5.__e = u5.__e) : t5.__e = O3(u5.__e, t5, u5, i5, o5, r5, e4, c5, s5); - (h4 = l4.diffed) && h4(t5); - } - function F4(n4, t5, u5) { - t5.__d = void 0; - for (var i5 = 0; i5 < u5.length; i5++) j4(u5[i5], u5[++i5], u5[++i5]); - l4.__c && l4.__c(t5, n4), n4.some(function(t6) { - try { - n4 = t6.__h, t6.__h = [], n4.some(function(n5) { - n5.call(t6); - }); - } catch (n5) { - l4.__e(n5, t6.__v); - } - }); - } - function O3(t5, u5, i5, o5, r5, e4, f5, c5, s5) { - var h4, p4, v4, d4, _4, g5, x5, m4 = i5.props, k5 = u5.props, S3 = u5.type; - if ("svg" === S3 ? r5 = "http://www.w3.org/2000/svg" : "math" === S3 ? r5 = "http://www.w3.org/1998/Math/MathML" : r5 || (r5 = "http://www.w3.org/1999/xhtml"), null != e4) { - for (h4 = 0; h4 < e4.length; h4++) if ((_4 = e4[h4]) && "setAttribute" in _4 == !!S3 && (S3 ? _4.localName === S3 : 3 === _4.nodeType)) { - t5 = _4, e4[h4] = null; - break; - } - } - if (null == t5) { - if (null === S3) return document.createTextNode(k5); - t5 = document.createElementNS(r5, S3, k5.is && k5), c5 && (l4.__m && l4.__m(u5, e4), c5 = false), e4 = null; - } - if (null === S3) m4 === k5 || c5 && t5.data === k5 || (t5.data = k5); - else { - if (e4 = e4 && n3.call(t5.childNodes), m4 = i5.props || a4, !c5 && null != e4) for (m4 = {}, h4 = 0; h4 < t5.attributes.length; h4++) m4[(_4 = t5.attributes[h4]).name] = _4.value; - for (h4 in m4) if (_4 = m4[h4], "children" == h4) ; - else if ("dangerouslySetInnerHTML" == h4) v4 = _4; - else if (!(h4 in k5)) { - if ("value" == h4 && "defaultValue" in k5 || "checked" == h4 && "defaultChecked" in k5) continue; - L3(t5, h4, null, _4, r5); - } - for (h4 in k5) _4 = k5[h4], "children" == h4 ? d4 = _4 : "dangerouslySetInnerHTML" == h4 ? p4 = _4 : "value" == h4 ? g5 = _4 : "checked" == h4 ? x5 = _4 : c5 && "function" != typeof _4 || m4[h4] === _4 || L3(t5, h4, _4, m4[h4], r5); - if (p4) c5 || v4 && (p4.__html === v4.__html || p4.__html === t5.innerHTML) || (t5.innerHTML = p4.__html), u5.__k = []; - else if (v4 && (t5.innerHTML = ""), M3(t5, y4(d4) ? d4 : [d4], u5, i5, o5, "foreignObject" === S3 ? "http://www.w3.org/1999/xhtml" : r5, e4, f5, e4 ? e4[0] : i5.__k && b3(i5, 0), c5, s5), null != e4) for (h4 = e4.length; h4--; ) w5(e4[h4]); - c5 || (h4 = "value", "progress" === S3 && null == g5 ? t5.removeAttribute("value") : void 0 !== g5 && (g5 !== t5[h4] || "progress" === S3 && !g5 || "option" === S3 && g5 !== m4[h4]) && L3(t5, h4, g5, m4[h4], r5), h4 = "checked", void 0 !== x5 && x5 !== t5[h4] && L3(t5, h4, x5, m4[h4], r5)); - } - return t5; - } - function j4(n4, t5, u5) { - try { - if ("function" == typeof n4) { - var i5 = "function" == typeof n4.__u; - i5 && n4.__u(), i5 && null == t5 || (n4.__u = n4(t5)); - } else n4.current = t5; - } catch (n5) { - l4.__e(n5, u5); - } - } - function z4(n4, t5, u5) { - var i5, o5; - if (l4.unmount && l4.unmount(n4), (i5 = n4.ref) && (i5.current && i5.current !== n4.__e || j4(i5, null, t5)), null != (i5 = n4.__c)) { - if (i5.componentWillUnmount) try { - i5.componentWillUnmount(); - } catch (n5) { - l4.__e(n5, t5); - } - i5.base = i5.__P = null; - } - if (i5 = n4.__k) for (o5 = 0; o5 < i5.length; o5++) i5[o5] && z4(i5[o5], t5, u5 || "function" != typeof n4.type); - u5 || w5(n4.__e), n4.__c = n4.__ = n4.__e = n4.__d = void 0; - } - function N3(n4, l5, t5) { - return this.constructor(n4, t5); - } - function V3(t5, u5, i5) { - var o5, r5, e4, f5; - l4.__ && l4.__(t5, u5), r5 = (o5 = "function" == typeof i5) ? null : i5 && i5.__k || u5.__k, e4 = [], f5 = [], A4(u5, t5 = (!o5 && i5 || u5).__k = _3(x4, null, [t5]), r5 || a4, a4, u5.namespaceURI, !o5 && i5 ? [i5] : r5 ? null : u5.firstChild ? n3.call(u5.childNodes) : null, e4, !o5 && i5 ? i5 : r5 ? r5.__e : u5.firstChild, o5, f5), F4(e4, t5, f5); - } - n3 = p3.slice, l4 = { __e: function(n4, l5, t5, u5) { - for (var i5, o5, r5; l5 = l5.__; ) if ((i5 = l5.__c) && !i5.__) try { - if ((o5 = i5.constructor) && null != o5.getDerivedStateFromError && (i5.setState(o5.getDerivedStateFromError(n4)), r5 = i5.__d), null != i5.componentDidCatch && (i5.componentDidCatch(n4, u5 || {}), r5 = i5.__d), r5) return i5.__E = i5; - } catch (l6) { - n4 = l6; - } - throw n4; - } }, t4 = 0, u4 = function(n4) { - return null != n4 && null == n4.constructor; - }, m3.prototype.setState = function(n4, l5) { - var t5; - t5 = null != this.__s && this.__s !== this.state ? this.__s : this.__s = d3({}, this.state), "function" == typeof n4 && (n4 = n4(d3({}, t5), this.props)), n4 && d3(t5, n4), null != n4 && this.__v && (l5 && this._sb.push(l5), S2(this)); - }, m3.prototype.forceUpdate = function(n4) { - this.__v && (this.__e = true, n4 && this.__h.push(n4), S2(this)); - }, m3.prototype.render = x4, i4 = [], r4 = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, e3 = function(n4, l5) { - return n4.__v.__b - l5.__v.__b; - }, C4.__r = 0, f4 = 0, c4 = T4(false), s4 = T4(true), h3 = 0, exports2.Component = m3, exports2.Fragment = x4, exports2.cloneElement = function(l5, t5, u5) { - var i5, o5, r5, e4, f5 = d3({}, l5.props); - for (r5 in l5.type && l5.type.defaultProps && (e4 = l5.type.defaultProps), t5) "key" == r5 ? i5 = t5[r5] : "ref" == r5 ? o5 = t5[r5] : f5[r5] = void 0 === t5[r5] && void 0 !== e4 ? e4[r5] : t5[r5]; - return arguments.length > 2 && (f5.children = arguments.length > 3 ? n3.call(arguments, 2) : u5), g4(l5.type, f5, i5 || l5.key, o5 || l5.ref, null); - }, exports2.createContext = function(n4, l5) { - var t5 = { __c: l5 = "__cC" + h3++, __: n4, Consumer: function(n5, l6) { - return n5.children(l6); - }, Provider: function(n5) { - var t6, u5; - return this.getChildContext || (t6 = /* @__PURE__ */ new Set(), (u5 = {})[l5] = this, this.getChildContext = function() { - return u5; - }, this.componentWillUnmount = function() { - t6 = null; - }, this.shouldComponentUpdate = function(n6) { - this.props.value !== n6.value && t6.forEach(function(n7) { - n7.__e = true, S2(n7); - }); - }, this.sub = function(n6) { - t6.add(n6); - var l6 = n6.componentWillUnmount; - n6.componentWillUnmount = function() { - t6 && t6.delete(n6), l6 && l6.call(n6); - }; - }), n5.children; - } }; - return t5.Provider.__ = t5.Consumer.contextType = t5; - }, exports2.createElement = _3, exports2.createRef = function() { - return { current: null }; - }, exports2.h = _3, exports2.hydrate = function n4(l5, t5) { - V3(l5, t5, n4); - }, exports2.isValidElement = u4, exports2.options = l4, exports2.render = V3, exports2.toChildArray = function n4(l5, t5) { - return t5 = t5 || [], null == l5 || "boolean" == typeof l5 || (y4(l5) ? l5.some(function(l6) { - n4(l6, t5); - }) : t5.push(l5)), t5; - }; - } -}); - -// node_modules/preact/hooks/dist/hooks.js -var require_hooks = __commonJS({ - "node_modules/preact/hooks/dist/hooks.js"(exports2) { - var n3; - var t4; - var r4; - var u4; - var o4 = require_preact(); - var i4 = 0; - var f4 = []; - var c4 = o4.options; - var e3 = c4.__b; - var a4 = c4.__r; - var v3 = c4.diffed; - var s4 = c4.__c; - var l4 = c4.unmount; - var p3 = c4.__; - function x4(n4, r5) { - c4.__h && c4.__h(t4, n4, i4 || r5), i4 = 0; - var u5 = t4.__H || (t4.__H = { __: [], __h: [] }); - return n4 >= u5.__.length && u5.__.push({}), u5.__[n4]; - } - function d3(n4) { - return i4 = 1, m3(b3, n4); - } - function m3(r5, u5, o5) { - var i5 = x4(n3++, 2); - if (i5.t = r5, !i5.__c && (i5.__ = [o5 ? o5(u5) : b3(void 0, u5), function(n4) { - var t5 = i5.__N ? i5.__N[0] : i5.__[0], r6 = i5.t(t5, n4); - t5 !== r6 && (i5.__N = [r6, i5.__[1]], i5.__c.setState({})); - }], i5.__c = t4, !t4.u)) { - var f5 = function(n4, t5, r6) { - if (!i5.__c.__H) return true; - var u6 = i5.__c.__H.__.filter(function(n5) { - return !!n5.__c; - }); - if (u6.every(function(n5) { - return !n5.__N; - })) return !c5 || c5.call(this, n4, t5, r6); - var o6 = false; - return u6.forEach(function(n5) { - if (n5.__N) { - var t6 = n5.__[0]; - n5.__ = n5.__N, n5.__N = void 0, t6 !== n5.__[0] && (o6 = true); - } - }), !(!o6 && i5.__c.props === n4) && (!c5 || c5.call(this, n4, t5, r6)); - }; - t4.u = true; - var c5 = t4.shouldComponentUpdate, e4 = t4.componentWillUpdate; - t4.componentWillUpdate = function(n4, t5, r6) { - if (this.__e) { - var u6 = c5; - c5 = void 0, f5(n4, t5, r6), c5 = u6; - } - e4 && e4.call(this, n4, t5, r6); - }, t4.shouldComponentUpdate = f5; - } - return i5.__N || i5.__; - } - function h3(r5, u5) { - var o5 = x4(n3++, 4); - !c4.__s && P7(o5.__H, u5) && (o5.__ = r5, o5.o = u5, t4.__h.push(o5)); - } - function y4(t5, r5) { - var u5 = x4(n3++, 7); - return P7(u5.__H, r5) && (u5.__ = t5(), u5.__H = r5, u5.__h = t5), u5.__; - } - function _3() { - for (var n4; n4 = f4.shift(); ) if (n4.__P && n4.__H) try { - n4.__H.__h.forEach(F4), n4.__H.__h.forEach(T4), n4.__H.__h = []; - } catch (t5) { - n4.__H.__h = [], c4.__e(t5, n4.__v); - } - } - c4.__b = function(n4) { - t4 = null, e3 && e3(n4); - }, c4.__ = function(n4, t5) { - n4 && t5.__k && t5.__k.__m && (n4.__m = t5.__k.__m), p3 && p3(n4, t5); - }, c4.__r = function(u5) { - a4 && a4(u5), n3 = 0; - var o5 = (t4 = u5.__c).__H; - o5 && (r4 === t4 ? (o5.__h = [], t4.__h = [], o5.__.forEach(function(n4) { - n4.__N && (n4.__ = n4.__N), n4.o = n4.__N = void 0; - })) : (o5.__h.forEach(F4), o5.__h.forEach(T4), o5.__h = [], n3 = 0)), r4 = t4; - }, c4.diffed = function(n4) { - v3 && v3(n4); - var o5 = n4.__c; - o5 && o5.__H && (o5.__H.__h.length && (1 !== f4.push(o5) && u4 === c4.requestAnimationFrame || ((u4 = c4.requestAnimationFrame) || A4)(_3)), o5.__H.__.forEach(function(n5) { - n5.o && (n5.__H = n5.o), n5.o = void 0; - })), r4 = t4 = null; - }, c4.__c = function(n4, t5) { - t5.some(function(n5) { - try { - n5.__h.forEach(F4), n5.__h = n5.__h.filter(function(n6) { - return !n6.__ || T4(n6); - }); - } catch (r5) { - t5.some(function(n6) { - n6.__h && (n6.__h = []); - }), t5 = [], c4.__e(r5, n5.__v); - } - }), s4 && s4(n4, t5); - }, c4.unmount = function(n4) { - l4 && l4(n4); - var t5, r5 = n4.__c; - r5 && r5.__H && (r5.__H.__.forEach(function(n5) { - try { - F4(n5); - } catch (n6) { - t5 = n6; - } - }), r5.__H = void 0, t5 && c4.__e(t5, r5.__v)); - }; - var q4 = "function" == typeof requestAnimationFrame; - function A4(n4) { - var t5, r5 = function() { - clearTimeout(u5), q4 && cancelAnimationFrame(t5), setTimeout(n4); - }, u5 = setTimeout(r5, 100); - q4 && (t5 = requestAnimationFrame(r5)); - } - function F4(n4) { - var r5 = t4, u5 = n4.__c; - "function" == typeof u5 && (n4.__c = void 0, u5()), t4 = r5; - } - function T4(n4) { - var r5 = t4; - n4.__c = n4.__(), t4 = r5; - } - function P7(n4, t5) { - return !n4 || n4.length !== t5.length || t5.some(function(t6, r5) { - return t6 !== n4[r5]; - }); - } - function b3(n4, t5) { - return "function" == typeof t5 ? t5(n4) : t5; - } - exports2.useCallback = function(n4, t5) { - return i4 = 8, y4(function() { - return n4; - }, t5); - }, exports2.useContext = function(r5) { - var u5 = t4.context[r5.__c], o5 = x4(n3++, 9); - return o5.c = r5, u5 ? (null == o5.__ && (o5.__ = true, u5.sub(t4)), u5.props.value) : r5.__; - }, exports2.useDebugValue = function(n4, t5) { - c4.useDebugValue && c4.useDebugValue(t5 ? t5(n4) : n4); - }, exports2.useEffect = function(r5, u5) { - var o5 = x4(n3++, 3); - !c4.__s && P7(o5.__H, u5) && (o5.__ = r5, o5.o = u5, t4.__H.__h.push(o5)); - }, exports2.useErrorBoundary = function(r5) { - var u5 = x4(n3++, 10), o5 = d3(); - return u5.__ = r5, t4.componentDidCatch || (t4.componentDidCatch = function(n4, t5) { - u5.__ && u5.__(n4, t5), o5[1](n4); - }), [o5[0], function() { - o5[1](void 0); - }]; - }, exports2.useId = function() { - var r5 = x4(n3++, 11); - if (!r5.__) { - for (var u5 = t4.__v; null !== u5 && !u5.__m && null !== u5.__; ) u5 = u5.__; - var o5 = u5.__m || (u5.__m = [0, 0]); - r5.__ = "P" + o5[0] + "-" + o5[1]++; - } - return r5.__; - }, exports2.useImperativeHandle = function(n4, t5, r5) { - i4 = 6, h3(function() { - return "function" == typeof n4 ? (n4(t5()), function() { - return n4(null); - }) : n4 ? (n4.current = t5(), function() { - return n4.current = null; - }) : void 0; - }, null == r5 ? r5 : r5.concat(n4)); - }, exports2.useLayoutEffect = h3, exports2.useMemo = y4, exports2.useReducer = m3, exports2.useRef = function(n4) { - return i4 = 5, y4(function() { - return { current: n4 }; - }, []); - }, exports2.useState = d3; - } -}); - -// node_modules/preact/compat/dist/compat.js -var require_compat = __commonJS({ - "node_modules/preact/compat/dist/compat.js"(exports2) { - var n3 = require_preact(); - var t4 = require_hooks(); - function e3(n4, t5) { - for (var e4 in n4) if ("__source" !== e4 && !(e4 in t5)) return true; - for (var r5 in t5) if ("__source" !== r5 && n4[r5] !== t5[r5]) return true; - return false; - } - function r4(n4, t5) { - this.props = n4, this.context = t5; - } - function u4(t5, r5) { - function u5(n4) { - var t6 = this.props.ref, u6 = t6 == n4.ref; - return !u6 && t6 && (t6.call ? t6(null) : t6.current = null), r5 ? !r5(this.props, n4) || !u6 : e3(this.props, n4); - } - function o5(e4) { - return this.shouldComponentUpdate = u5, n3.createElement(t5, e4); - } - return o5.displayName = "Memo(" + (t5.displayName || t5.name) + ")", o5.prototype.isReactComponent = true, o5.__f = true, o5; - } - (r4.prototype = new n3.Component()).isPureReactComponent = true, r4.prototype.shouldComponentUpdate = function(n4, t5) { - return e3(this.props, n4) || e3(this.state, t5); - }; - var o4 = n3.options.__b; - n3.options.__b = function(n4) { - n4.type && n4.type.__f && n4.ref && (n4.props.ref = n4.ref, n4.ref = null), o4 && o4(n4); - }; - var i4 = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; - function c4(n4) { - function t5(t6) { - if (!("ref" in t6)) return n4(t6, null); - var e4 = t6.ref; - delete t6.ref; - var r5 = n4(t6, e4); - return t6.ref = e4, r5; - } - return t5.$$typeof = i4, t5.render = t5, t5.prototype.isReactComponent = t5.__f = true, t5.displayName = "ForwardRef(" + (n4.displayName || n4.name) + ")", t5; - } - var l4 = function(t5, e4) { - return null == t5 ? null : n3.toChildArray(n3.toChildArray(t5).map(e4)); - }; - var f4 = { map: l4, forEach: l4, count: function(t5) { - return t5 ? n3.toChildArray(t5).length : 0; - }, only: function(t5) { - var e4 = n3.toChildArray(t5); - if (1 !== e4.length) throw "Children.only"; - return e4[0]; - }, toArray: n3.toChildArray }; - var a4 = n3.options.__e; - n3.options.__e = function(n4, t5, e4, r5) { - if (n4.then) { - for (var u5, o5 = t5; o5 = o5.__; ) if ((u5 = o5.__c) && u5.__c) return null == t5.__e && (t5.__e = e4.__e, t5.__k = e4.__k), u5.__c(n4, t5); - } - a4(n4, t5, e4, r5); - }; - var s4 = n3.options.unmount; - function p3(n4, t5, e4) { - return n4 && (n4.__c && n4.__c.__H && (n4.__c.__H.__.forEach(function(n5) { - "function" == typeof n5.__c && n5.__c(); - }), n4.__c.__H = null), null != (n4 = function(n5, t6) { - for (var e5 in t6) n5[e5] = t6[e5]; - return n5; - }({}, n4)).__c && (n4.__c.__P === e4 && (n4.__c.__P = t5), n4.__c = null), n4.__k = n4.__k && n4.__k.map(function(n5) { - return p3(n5, t5, e4); - })), n4; - } - function h3(n4, t5, e4) { - return n4 && e4 && (n4.__v = null, n4.__k = n4.__k && n4.__k.map(function(n5) { - return h3(n5, t5, e4); - }), n4.__c && n4.__c.__P === t5 && (n4.__e && e4.appendChild(n4.__e), n4.__c.__e = true, n4.__c.__P = e4)), n4; - } - function v3() { - this.__u = 0, this.t = null, this.__b = null; - } - function d3(n4) { - var t5 = n4.__.__c; - return t5 && t5.__a && t5.__a(n4); - } - function m3(t5) { - var e4, r5, u5; - function o5(o6) { - if (e4 || (e4 = t5()).then(function(n4) { - r5 = n4.default || n4; - }, function(n4) { - u5 = n4; - }), u5) throw u5; - if (!r5) throw e4; - return n3.createElement(r5, o6); - } - return o5.displayName = "Lazy", o5.__f = true, o5; - } - function x4() { - this.u = null, this.o = null; - } - n3.options.unmount = function(n4) { - var t5 = n4.__c; - t5 && t5.__R && t5.__R(), t5 && 32 & n4.__u && (n4.type = null), s4 && s4(n4); - }, (v3.prototype = new n3.Component()).__c = function(n4, t5) { - var e4 = t5.__c, r5 = this; - null == r5.t && (r5.t = []), r5.t.push(e4); - var u5 = d3(r5.__v), o5 = false, i5 = function() { - o5 || (o5 = true, e4.__R = null, u5 ? u5(c5) : c5()); - }; - e4.__R = i5; - var c5 = function() { - if (!--r5.__u) { - if (r5.state.__a) { - var n5 = r5.state.__a; - r5.__v.__k[0] = h3(n5, n5.__c.__P, n5.__c.__O); - } - var t6; - for (r5.setState({ __a: r5.__b = null }); t6 = r5.t.pop(); ) t6.forceUpdate(); - } - }; - r5.__u++ || 32 & t5.__u || r5.setState({ __a: r5.__b = r5.__v.__k[0] }), n4.then(i5, i5); - }, v3.prototype.componentWillUnmount = function() { - this.t = []; - }, v3.prototype.render = function(t5, e4) { - if (this.__b) { - if (this.__v.__k) { - var r5 = document.createElement("div"), u5 = this.__v.__k[0].__c; - this.__v.__k[0] = p3(this.__b, r5, u5.__O = u5.__P); - } - this.__b = null; - } - var o5 = e4.__a && n3.createElement(n3.Fragment, null, t5.fallback); - return o5 && (o5.__u &= -33), [n3.createElement(n3.Fragment, null, e4.__a ? null : t5.children), o5]; - }; - var b3 = function(n4, t5, e4) { - if (++e4[1] === e4[0] && n4.o.delete(t5), n4.props.revealOrder && ("t" !== n4.props.revealOrder[0] || !n4.o.size)) for (e4 = n4.u; e4; ) { - for (; e4.length > 3; ) e4.pop()(); - if (e4[1] < e4[0]) break; - n4.u = e4 = e4[2]; - } - }; - function y4(n4) { - return this.getChildContext = function() { - return n4.context; - }, n4.children; - } - function _3(t5) { - var e4 = this, r5 = t5.i; - e4.componentWillUnmount = function() { - n3.render(null, e4.l), e4.l = null, e4.i = null; - }, e4.i && e4.i !== r5 && e4.componentWillUnmount(), e4.l || (e4.i = r5, e4.l = { nodeType: 1, parentNode: r5, childNodes: [], contains: function() { - return true; - }, appendChild: function(n4) { - this.childNodes.push(n4), e4.i.appendChild(n4); - }, insertBefore: function(n4, t6) { - this.childNodes.push(n4), e4.i.appendChild(n4); - }, removeChild: function(n4) { - this.childNodes.splice(this.childNodes.indexOf(n4) >>> 1, 1), e4.i.removeChild(n4); - } }), n3.render(n3.createElement(y4, { context: e4.context }, t5.__v), e4.l); - } - function g4(t5, e4) { - var r5 = n3.createElement(_3, { __v: t5, i: e4 }); - return r5.containerInfo = e4, r5; - } - (x4.prototype = new n3.Component()).__a = function(n4) { - var t5 = this, e4 = d3(t5.__v), r5 = t5.o.get(n4); - return r5[0]++, function(u5) { - var o5 = function() { - t5.props.revealOrder ? (r5.push(u5), b3(t5, n4, r5)) : u5(); - }; - e4 ? e4(o5) : o5(); - }; - }, x4.prototype.render = function(t5) { - this.u = null, this.o = /* @__PURE__ */ new Map(); - var e4 = n3.toChildArray(t5.children); - t5.revealOrder && "b" === t5.revealOrder[0] && e4.reverse(); - for (var r5 = e4.length; r5--; ) this.o.set(e4[r5], this.u = [1, 0, this.u]); - return t5.children; - }, x4.prototype.componentDidUpdate = x4.prototype.componentDidMount = function() { - var n4 = this; - this.o.forEach(function(t5, e4) { - b3(n4, e4, t5); - }); - }; - var S2 = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103; - var E3 = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/; - var C4 = /^on(Ani|Tra|Tou|BeforeInp|Compo)/; - var O3 = /[A-Z0-9]/g; - var R2 = "undefined" != typeof document; - var w5 = function(n4) { - return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n4); - }; - function j4(t5, e4, r5) { - return null == e4.__k && (e4.textContent = ""), n3.render(t5, e4), "function" == typeof r5 && r5(), t5 ? t5.__c : null; - } - function I3(t5, e4, r5) { - return n3.hydrate(t5, e4), "function" == typeof r5 && r5(), t5 ? t5.__c : null; - } - n3.Component.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t5) { - Object.defineProperty(n3.Component.prototype, t5, { configurable: true, get: function() { - return this["UNSAFE_" + t5]; - }, set: function(n4) { - Object.defineProperty(this, t5, { configurable: true, writable: true, value: n4 }); - } }); - }); - var N3 = n3.options.event; - function k4() { - } - function M3() { - return this.cancelBubble; - } - function T4() { - return this.defaultPrevented; - } - n3.options.event = function(n4) { - return N3 && (n4 = N3(n4)), n4.persist = k4, n4.isPropagationStopped = M3, n4.isDefaultPrevented = T4, n4.nativeEvent = n4; - }; - var A4; - var D4 = { enumerable: false, configurable: true, get: function() { - return this.class; - } }; - var L3 = n3.options.vnode; - n3.options.vnode = function(t5) { - "string" == typeof t5.type && function(t6) { - var e4 = t6.props, r5 = t6.type, u5 = {}, o5 = -1 === r5.indexOf("-"); - for (var i5 in e4) { - var c5 = e4[i5]; - if (!("value" === i5 && "defaultValue" in e4 && null == c5 || R2 && "children" === i5 && "noscript" === r5 || "class" === i5 || "className" === i5)) { - var l5 = i5.toLowerCase(); - "defaultValue" === i5 && "value" in e4 && null == e4.value ? i5 = "value" : "download" === i5 && true === c5 ? c5 = "" : "translate" === l5 && "no" === c5 ? c5 = false : "o" === l5[0] && "n" === l5[1] ? "ondoubleclick" === l5 ? i5 = "ondblclick" : "onchange" !== l5 || "input" !== r5 && "textarea" !== r5 || w5(e4.type) ? "onfocus" === l5 ? i5 = "onfocusin" : "onblur" === l5 ? i5 = "onfocusout" : C4.test(i5) && (i5 = l5) : l5 = i5 = "oninput" : o5 && E3.test(i5) ? i5 = i5.replace(O3, "-$&").toLowerCase() : null === c5 && (c5 = void 0), "oninput" === l5 && u5[i5 = l5] && (i5 = "oninputCapture"), u5[i5] = c5; - } - } - "select" == r5 && u5.multiple && Array.isArray(u5.value) && (u5.value = n3.toChildArray(e4.children).forEach(function(n4) { - n4.props.selected = -1 != u5.value.indexOf(n4.props.value); - })), "select" == r5 && null != u5.defaultValue && (u5.value = n3.toChildArray(e4.children).forEach(function(n4) { - n4.props.selected = u5.multiple ? -1 != u5.defaultValue.indexOf(n4.props.value) : u5.defaultValue == n4.props.value; - })), e4.class && !e4.className ? (u5.class = e4.class, Object.defineProperty(u5, "className", D4)) : (e4.className && !e4.class || e4.class && e4.className) && (u5.class = u5.className = e4.className), t6.props = u5; - }(t5), t5.$$typeof = S2, L3 && L3(t5); - }; - var F4 = n3.options.__r; - n3.options.__r = function(n4) { - F4 && F4(n4), A4 = n4.__c; - }; - var U2 = n3.options.diffed; - n3.options.diffed = function(n4) { - U2 && U2(n4); - var t5 = n4.props, e4 = n4.__e; - null != e4 && "textarea" === n4.type && "value" in t5 && t5.value !== e4.value && (e4.value = null == t5.value ? "" : t5.value), A4 = null; - }; - var V3 = { ReactCurrentDispatcher: { current: { readContext: function(n4) { - return A4.__n[n4.__c].props.value; - }, useCallback: t4.useCallback, useContext: t4.useContext, useDebugValue: t4.useDebugValue, useDeferredValue: K2, useEffect: t4.useEffect, useId: t4.useId, useImperativeHandle: t4.useImperativeHandle, useInsertionEffect: X2, useLayoutEffect: t4.useLayoutEffect, useMemo: t4.useMemo, useReducer: t4.useReducer, useRef: t4.useRef, useState: t4.useState, useSyncExternalStore: tn2, useTransition: Q2 } } }; - function W2(t5) { - return n3.createElement.bind(null, t5); - } - function P7(n4) { - return !!n4 && n4.$$typeof === S2; - } - function z4(t5) { - return P7(t5) && t5.type === n3.Fragment; - } - function B4(n4) { - return !!n4 && !!n4.displayName && ("string" == typeof n4.displayName || n4.displayName instanceof String) && n4.displayName.startsWith("Memo("); - } - function H3(t5) { - return P7(t5) ? n3.cloneElement.apply(null, arguments) : t5; - } - function q4(t5) { - return !!t5.__k && (n3.render(null, t5), true); - } - function Z2(n4) { - return n4 && (n4.base || 1 === n4.nodeType && n4) || null; - } - var Y2 = function(n4, t5) { - return n4(t5); - }; - var $3 = function(n4, t5) { - return n4(t5); - }; - var G3 = n3.Fragment; - function J2(n4) { - n4(); - } - function K2(n4) { - return n4; - } - function Q2() { - return [false, J2]; - } - var X2 = t4.useLayoutEffect; - var nn2 = P7; - function tn2(n4, e4) { - var r5 = e4(), u5 = t4.useState({ p: { __: r5, h: e4 } }), o5 = u5[0].p, i5 = u5[1]; - return t4.useLayoutEffect(function() { - o5.__ = r5, o5.h = e4, en2(o5) && i5({ p: o5 }); - }, [n4, r5, e4]), t4.useEffect(function() { - return en2(o5) && i5({ p: o5 }), n4(function() { - en2(o5) && i5({ p: o5 }); - }); - }, [n4]), r5; - } - function en2(n4) { - var t5, e4, r5 = n4.h, u5 = n4.__; - try { - var o5 = r5(); - return !((t5 = u5) === (e4 = o5) && (0 !== t5 || 1 / t5 == 1 / e4) || t5 != t5 && e4 != e4); - } catch (n5) { - return true; - } - } - var rn2 = { useState: t4.useState, useId: t4.useId, useReducer: t4.useReducer, useEffect: t4.useEffect, useLayoutEffect: t4.useLayoutEffect, useInsertionEffect: X2, useTransition: Q2, useDeferredValue: K2, useSyncExternalStore: tn2, startTransition: J2, useRef: t4.useRef, useImperativeHandle: t4.useImperativeHandle, useMemo: t4.useMemo, useCallback: t4.useCallback, useContext: t4.useContext, useDebugValue: t4.useDebugValue, version: "18.3.1", Children: f4, render: j4, hydrate: I3, unmountComponentAtNode: q4, createPortal: g4, createElement: n3.createElement, createContext: n3.createContext, createFactory: W2, cloneElement: H3, createRef: n3.createRef, Fragment: n3.Fragment, isValidElement: P7, isElement: nn2, isFragment: z4, isMemo: B4, findDOMNode: Z2, Component: n3.Component, PureComponent: r4, memo: u4, forwardRef: c4, flushSync: $3, unstable_batchedUpdates: Y2, StrictMode: G3, Suspense: v3, SuspenseList: x4, lazy: m3, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: V3 }; - Object.defineProperty(exports2, "Component", { enumerable: true, get: function() { - return n3.Component; - } }), Object.defineProperty(exports2, "Fragment", { enumerable: true, get: function() { - return n3.Fragment; - } }), Object.defineProperty(exports2, "createContext", { enumerable: true, get: function() { - return n3.createContext; - } }), Object.defineProperty(exports2, "createElement", { enumerable: true, get: function() { - return n3.createElement; - } }), Object.defineProperty(exports2, "createRef", { enumerable: true, get: function() { - return n3.createRef; - } }), exports2.Children = f4, exports2.PureComponent = r4, exports2.StrictMode = G3, exports2.Suspense = v3, exports2.SuspenseList = x4, exports2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = V3, exports2.cloneElement = H3, exports2.createFactory = W2, exports2.createPortal = g4, exports2.default = rn2, exports2.findDOMNode = Z2, exports2.flushSync = $3, exports2.forwardRef = c4, exports2.hydrate = I3, exports2.isElement = nn2, exports2.isFragment = z4, exports2.isMemo = B4, exports2.isValidElement = P7, exports2.lazy = m3, exports2.memo = u4, exports2.render = j4, exports2.startTransition = J2, exports2.unmountComponentAtNode = q4, exports2.unstable_batchedUpdates = Y2, exports2.useDeferredValue = K2, exports2.useInsertionEffect = X2, exports2.useSyncExternalStore = tn2, exports2.useTransition = Q2, exports2.version = "18.3.1", Object.keys(t4).forEach(function(n4) { - "default" === n4 || exports2.hasOwnProperty(n4) || Object.defineProperty(exports2, n4, { enumerable: true, get: function() { - return t4[n4]; - } }); - }); - } -}); - -// node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.prod.js -var require_use_isomorphic_layout_effect_cjs_prod = __commonJS({ - "node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.prod.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { - value: true - }); - var react = require_compat(); - var index = "undefined" != typeof document ? react.useLayoutEffect : react.useEffect; - exports2.default = index; - } -}); - -// node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.dev.js -var require_use_isomorphic_layout_effect_cjs_dev = __commonJS({ - "node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.dev.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var react = require_compat(); - var index = typeof document !== "undefined" ? react.useLayoutEffect : react.useEffect; - exports2.default = index; - } -}); - -// node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.js -var require_use_isomorphic_layout_effect_cjs = __commonJS({ - "node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.cjs.js"(exports2, module2) { - "use strict"; - if (process.env.NODE_ENV === "production") { - module2.exports = require_use_isomorphic_layout_effect_cjs_prod(); - } else { - module2.exports = require_use_isomorphic_layout_effect_cjs_dev(); - } - } -}); - -// node_modules/memoize-one/dist/memoize-one.cjs.js -var require_memoize_one_cjs = __commonJS({ - "node_modules/memoize-one/dist/memoize-one.cjs.js"(exports2, module2) { - "use strict"; - var safeIsNaN = Number.isNaN || function ponyfill(value) { - return typeof value === "number" && value !== value; - }; - function isEqual(first, second) { - if (first === second) { - return true; - } - if (safeIsNaN(first) && safeIsNaN(second)) { - return true; - } - return false; - } - function areInputsEqual(newInputs, lastInputs) { - if (newInputs.length !== lastInputs.length) { - return false; - } - for (var i4 = 0; i4 < newInputs.length; i4++) { - if (!isEqual(newInputs[i4], lastInputs[i4])) { - return false; - } - } - return true; - } - function memoizeOne2(resultFn, isEqual2) { - if (isEqual2 === void 0) { - isEqual2 = areInputsEqual; - } - var cache = null; - function memoized() { - var newArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - newArgs[_i] = arguments[_i]; - } - if (cache && cache.lastThis === this && isEqual2(newArgs, cache.lastArgs)) { - return cache.lastResult; - } - var lastResult = resultFn.apply(this, newArgs); - cache = { - lastResult, - lastArgs: newArgs, - lastThis: this - }; - return lastResult; - } - memoized.clear = function clear() { - cache = null; - }; - return memoized; - } - module2.exports = memoizeOne2; - } -}); - -// node_modules/@babel/runtime/helpers/typeof.js -var require_typeof = __commonJS({ - "node_modules/@babel/runtime/helpers/typeof.js"(exports2, module2) { - function _typeof2(o4) { - "@babel/helpers - typeof"; - return module2.exports = _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o5) { - return typeof o5; - } : function(o5) { - return o5 && "function" == typeof Symbol && o5.constructor === Symbol && o5 !== Symbol.prototype ? "symbol" : typeof o5; - }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _typeof2(o4); - } - module2.exports = _typeof2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/toPrimitive.js -var require_toPrimitive = __commonJS({ - "node_modules/@babel/runtime/helpers/toPrimitive.js"(exports2, module2) { - var _typeof2 = require_typeof()["default"]; - function toPrimitive2(t4, r4) { - if ("object" != _typeof2(t4) || !t4) return t4; - var e3 = t4[Symbol.toPrimitive]; - if (void 0 !== e3) { - var i4 = e3.call(t4, r4 || "default"); - if ("object" != _typeof2(i4)) return i4; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r4 ? String : Number)(t4); - } - module2.exports = toPrimitive2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/toPropertyKey.js -var require_toPropertyKey = __commonJS({ - "node_modules/@babel/runtime/helpers/toPropertyKey.js"(exports2, module2) { - var _typeof2 = require_typeof()["default"]; - var toPrimitive2 = require_toPrimitive(); - function toPropertyKey2(t4) { - var i4 = toPrimitive2(t4, "string"); - return "symbol" == _typeof2(i4) ? i4 : i4 + ""; - } - module2.exports = toPropertyKey2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/defineProperty.js -var require_defineProperty = __commonJS({ - "node_modules/@babel/runtime/helpers/defineProperty.js"(exports2, module2) { - var toPropertyKey2 = require_toPropertyKey(); - function _defineProperty2(e3, r4, t4) { - return (r4 = toPropertyKey2(r4)) in e3 ? Object.defineProperty(e3, r4, { - value: t4, - enumerable: true, - configurable: true, - writable: true - }) : e3[r4] = t4, e3; - } - module2.exports = _defineProperty2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/objectSpread2.js -var require_objectSpread2 = __commonJS({ - "node_modules/@babel/runtime/helpers/objectSpread2.js"(exports2, module2) { - var defineProperty = require_defineProperty(); - function ownKeys2(e3, r4) { - var t4 = Object.keys(e3); - if (Object.getOwnPropertySymbols) { - var o4 = Object.getOwnPropertySymbols(e3); - r4 && (o4 = o4.filter(function(r5) { - return Object.getOwnPropertyDescriptor(e3, r5).enumerable; - })), t4.push.apply(t4, o4); - } - return t4; - } - function _objectSpread22(e3) { - for (var r4 = 1; r4 < arguments.length; r4++) { - var t4 = null != arguments[r4] ? arguments[r4] : {}; - r4 % 2 ? ownKeys2(Object(t4), true).forEach(function(r5) { - defineProperty(e3, r5, t4[r5]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(t4)) : ownKeys2(Object(t4)).forEach(function(r5) { - Object.defineProperty(e3, r5, Object.getOwnPropertyDescriptor(t4, r5)); - }); - } - return e3; - } - module2.exports = _objectSpread22, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/arrayWithHoles.js -var require_arrayWithHoles = __commonJS({ - "node_modules/@babel/runtime/helpers/arrayWithHoles.js"(exports2, module2) { - function _arrayWithHoles2(r4) { - if (Array.isArray(r4)) return r4; - } - module2.exports = _arrayWithHoles2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/iterableToArrayLimit.js -var require_iterableToArrayLimit = __commonJS({ - "node_modules/@babel/runtime/helpers/iterableToArrayLimit.js"(exports2, module2) { - function _iterableToArrayLimit2(r4, l4) { - var t4 = null == r4 ? null : "undefined" != typeof Symbol && r4[Symbol.iterator] || r4["@@iterator"]; - if (null != t4) { - var e3, n3, i4, u4, a4 = [], f4 = true, o4 = false; - try { - if (i4 = (t4 = t4.call(r4)).next, 0 === l4) { - if (Object(t4) !== t4) return; - f4 = false; - } else for (; !(f4 = (e3 = i4.call(t4)).done) && (a4.push(e3.value), a4.length !== l4); f4 = true) ; - } catch (r5) { - o4 = true, n3 = r5; - } finally { - try { - if (!f4 && null != t4["return"] && (u4 = t4["return"](), Object(u4) !== u4)) return; - } finally { - if (o4) throw n3; - } - } - return a4; - } - } - module2.exports = _iterableToArrayLimit2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/arrayLikeToArray.js -var require_arrayLikeToArray = __commonJS({ - "node_modules/@babel/runtime/helpers/arrayLikeToArray.js"(exports2, module2) { - function _arrayLikeToArray2(r4, a4) { - (null == a4 || a4 > r4.length) && (a4 = r4.length); - for (var e3 = 0, n3 = Array(a4); e3 < a4; e3++) n3[e3] = r4[e3]; - return n3; - } - module2.exports = _arrayLikeToArray2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js -var require_unsupportedIterableToArray = __commonJS({ - "node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"(exports2, module2) { - var arrayLikeToArray = require_arrayLikeToArray(); - function _unsupportedIterableToArray2(r4, a4) { - if (r4) { - if ("string" == typeof r4) return arrayLikeToArray(r4, a4); - var t4 = {}.toString.call(r4).slice(8, -1); - return "Object" === t4 && r4.constructor && (t4 = r4.constructor.name), "Map" === t4 || "Set" === t4 ? Array.from(r4) : "Arguments" === t4 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t4) ? arrayLikeToArray(r4, a4) : void 0; - } - } - module2.exports = _unsupportedIterableToArray2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/nonIterableRest.js -var require_nonIterableRest = __commonJS({ - "node_modules/@babel/runtime/helpers/nonIterableRest.js"(exports2, module2) { - function _nonIterableRest2() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - module2.exports = _nonIterableRest2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/slicedToArray.js -var require_slicedToArray = __commonJS({ - "node_modules/@babel/runtime/helpers/slicedToArray.js"(exports2, module2) { - var arrayWithHoles = require_arrayWithHoles(); - var iterableToArrayLimit = require_iterableToArrayLimit(); - var unsupportedIterableToArray = require_unsupportedIterableToArray(); - var nonIterableRest = require_nonIterableRest(); - function _slicedToArray2(r4, e3) { - return arrayWithHoles(r4) || iterableToArrayLimit(r4, e3) || unsupportedIterableToArray(r4, e3) || nonIterableRest(); - } - module2.exports = _slicedToArray2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js -var require_objectWithoutPropertiesLoose = __commonJS({ - "node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js"(exports2, module2) { - function _objectWithoutPropertiesLoose2(r4, e3) { - if (null == r4) return {}; - var t4 = {}; - for (var n3 in r4) if ({}.hasOwnProperty.call(r4, n3)) { - if (e3.includes(n3)) continue; - t4[n3] = r4[n3]; - } - return t4; - } - module2.exports = _objectWithoutPropertiesLoose2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/objectWithoutProperties.js -var require_objectWithoutProperties = __commonJS({ - "node_modules/@babel/runtime/helpers/objectWithoutProperties.js"(exports2, module2) { - var objectWithoutPropertiesLoose = require_objectWithoutPropertiesLoose(); - function _objectWithoutProperties2(e3, t4) { - if (null == e3) return {}; - var o4, r4, i4 = objectWithoutPropertiesLoose(e3, t4); - if (Object.getOwnPropertySymbols) { - var s4 = Object.getOwnPropertySymbols(e3); - for (r4 = 0; r4 < s4.length; r4++) o4 = s4[r4], t4.includes(o4) || {}.propertyIsEnumerable.call(e3, o4) && (i4[o4] = e3[o4]); - } - return i4; - } - module2.exports = _objectWithoutProperties2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/classCallCheck.js -var require_classCallCheck = __commonJS({ - "node_modules/@babel/runtime/helpers/classCallCheck.js"(exports2, module2) { - function _classCallCheck2(a4, n3) { - if (!(a4 instanceof n3)) throw new TypeError("Cannot call a class as a function"); - } - module2.exports = _classCallCheck2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/createClass.js -var require_createClass = __commonJS({ - "node_modules/@babel/runtime/helpers/createClass.js"(exports2, module2) { - var toPropertyKey2 = require_toPropertyKey(); - function _defineProperties2(e3, r4) { - for (var t4 = 0; t4 < r4.length; t4++) { - var o4 = r4[t4]; - o4.enumerable = o4.enumerable || false, o4.configurable = true, "value" in o4 && (o4.writable = true), Object.defineProperty(e3, toPropertyKey2(o4.key), o4); - } - } - function _createClass2(e3, r4, t4) { - return r4 && _defineProperties2(e3.prototype, r4), t4 && _defineProperties2(e3, t4), Object.defineProperty(e3, "prototype", { - writable: false - }), e3; - } - module2.exports = _createClass2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/setPrototypeOf.js -var require_setPrototypeOf = __commonJS({ - "node_modules/@babel/runtime/helpers/setPrototypeOf.js"(exports2, module2) { - function _setPrototypeOf2(t4, e3) { - return module2.exports = _setPrototypeOf2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t5, e4) { - return t5.__proto__ = e4, t5; - }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _setPrototypeOf2(t4, e3); - } - module2.exports = _setPrototypeOf2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/inherits.js -var require_inherits = __commonJS({ - "node_modules/@babel/runtime/helpers/inherits.js"(exports2, module2) { - var setPrototypeOf = require_setPrototypeOf(); - function _inherits2(t4, e3) { - if ("function" != typeof e3 && null !== e3) throw new TypeError("Super expression must either be null or a function"); - t4.prototype = Object.create(e3 && e3.prototype, { - constructor: { - value: t4, - writable: true, - configurable: true - } - }), Object.defineProperty(t4, "prototype", { - writable: false - }), e3 && setPrototypeOf(t4, e3); - } - module2.exports = _inherits2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/getPrototypeOf.js -var require_getPrototypeOf = __commonJS({ - "node_modules/@babel/runtime/helpers/getPrototypeOf.js"(exports2, module2) { - function _getPrototypeOf2(t4) { - return module2.exports = _getPrototypeOf2 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t5) { - return t5.__proto__ || Object.getPrototypeOf(t5); - }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _getPrototypeOf2(t4); - } - module2.exports = _getPrototypeOf2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js -var require_isNativeReflectConstruct = __commonJS({ - "node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js"(exports2, module2) { - function _isNativeReflectConstruct2() { - try { - var t4 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { - })); - } catch (t5) { - } - return (module2.exports = _isNativeReflectConstruct2 = function _isNativeReflectConstruct3() { - return !!t4; - }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports)(); - } - module2.exports = _isNativeReflectConstruct2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/assertThisInitialized.js -var require_assertThisInitialized = __commonJS({ - "node_modules/@babel/runtime/helpers/assertThisInitialized.js"(exports2, module2) { - function _assertThisInitialized2(e3) { - if (void 0 === e3) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3; - } - module2.exports = _assertThisInitialized2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/possibleConstructorReturn.js -var require_possibleConstructorReturn = __commonJS({ - "node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"(exports2, module2) { - var _typeof2 = require_typeof()["default"]; - var assertThisInitialized = require_assertThisInitialized(); - function _possibleConstructorReturn2(t4, e3) { - if (e3 && ("object" == _typeof2(e3) || "function" == typeof e3)) return e3; - if (void 0 !== e3) throw new TypeError("Derived constructors may only return object or undefined"); - return assertThisInitialized(t4); - } - module2.exports = _possibleConstructorReturn2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/createSuper.js -var require_createSuper = __commonJS({ - "node_modules/@babel/runtime/helpers/createSuper.js"(exports2, module2) { - var getPrototypeOf = require_getPrototypeOf(); - var isNativeReflectConstruct = require_isNativeReflectConstruct(); - var possibleConstructorReturn = require_possibleConstructorReturn(); - function _createSuper2(t4) { - var r4 = isNativeReflectConstruct(); - return function() { - var e3, o4 = getPrototypeOf(t4); - if (r4) { - var s4 = getPrototypeOf(this).constructor; - e3 = Reflect.construct(o4, arguments, s4); - } else e3 = o4.apply(this, arguments); - return possibleConstructorReturn(this, e3); - }; - } - module2.exports = _createSuper2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/arrayWithoutHoles.js -var require_arrayWithoutHoles = __commonJS({ - "node_modules/@babel/runtime/helpers/arrayWithoutHoles.js"(exports2, module2) { - var arrayLikeToArray = require_arrayLikeToArray(); - function _arrayWithoutHoles2(r4) { - if (Array.isArray(r4)) return arrayLikeToArray(r4); - } - module2.exports = _arrayWithoutHoles2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/iterableToArray.js -var require_iterableToArray = __commonJS({ - "node_modules/@babel/runtime/helpers/iterableToArray.js"(exports2, module2) { - function _iterableToArray2(r4) { - if ("undefined" != typeof Symbol && null != r4[Symbol.iterator] || null != r4["@@iterator"]) return Array.from(r4); - } - module2.exports = _iterableToArray2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/nonIterableSpread.js -var require_nonIterableSpread = __commonJS({ - "node_modules/@babel/runtime/helpers/nonIterableSpread.js"(exports2, module2) { - function _nonIterableSpread2() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - module2.exports = _nonIterableSpread2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/toConsumableArray.js -var require_toConsumableArray = __commonJS({ - "node_modules/@babel/runtime/helpers/toConsumableArray.js"(exports2, module2) { - var arrayWithoutHoles = require_arrayWithoutHoles(); - var iterableToArray = require_iterableToArray(); - var unsupportedIterableToArray = require_unsupportedIterableToArray(); - var nonIterableSpread = require_nonIterableSpread(); - function _toConsumableArray2(r4) { - return arrayWithoutHoles(r4) || iterableToArray(r4) || unsupportedIterableToArray(r4) || nonIterableSpread(); - } - module2.exports = _toConsumableArray2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js -var require_taggedTemplateLiteral = __commonJS({ - "node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"(exports2, module2) { - function _taggedTemplateLiteral2(e3, t4) { - return t4 || (t4 = e3.slice(0)), Object.freeze(Object.defineProperties(e3, { - raw: { - value: Object.freeze(t4) - } - })); - } - module2.exports = _taggedTemplateLiteral2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; - } -}); - -// node_modules/@fortawesome/fontawesome-svg-core/index.mjs -var fontawesome_svg_core_exports = {}; -__export(fontawesome_svg_core_exports, { - api: () => api, - config: () => config$1, - counter: () => counter, - dom: () => dom$1, - findIconDefinition: () => findIconDefinition$1, - icon: () => icon, - layer: () => layer, - library: () => library$1, - noAuto: () => noAuto$1, - parse: () => parse$1, - text: () => text, - toHtml: () => toHtml$1 -}); -function familyProxy(obj) { - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[a3]; - } - }); -} -function getAttrConfig(attr) { - var element = DOCUMENT.querySelector("script[" + attr + "]"); - if (element) { - return element.getAttribute(attr); - } -} -function coerce(val) { - if (val === "") return true; - if (val === "false") return false; - if (val === "true") return true; - return val; -} -function onChange2(cb) { - _onChangeCb.push(cb); - return () => { - _onChangeCb.splice(_onChangeCb.indexOf(cb), 1); - }; -} -function insertCss(css6) { - if (!css6 || !IS_DOM) { - return; - } - const style = DOCUMENT.createElement("style"); - style.setAttribute("type", "text/css"); - style.innerHTML = css6; - const headChildren = DOCUMENT.head.childNodes; - let beforeChild = null; - for (let i4 = headChildren.length - 1; i4 > -1; i4--) { - const child = headChildren[i4]; - const tagName = (child.tagName || "").toUpperCase(); - if (["STYLE", "LINK"].indexOf(tagName) > -1) { - beforeChild = child; - } - } - DOCUMENT.head.insertBefore(style, beforeChild); - return css6; -} -function nextUniqueId() { - let size2 = 12; - let id = ""; - while (size2-- > 0) { - id += idPool[Math.random() * 62 | 0]; - } - return id; -} -function toArray(obj) { - const array = []; - for (let i4 = (obj || []).length >>> 0; i4--; ) { - array[i4] = obj[i4]; - } - return array; -} -function classArray(node2) { - if (node2.classList) { - return toArray(node2.classList); - } else { - return (node2.getAttribute("class") || "").split(" ").filter((i4) => i4); - } -} -function htmlEscape(str) { - return "".concat(str).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">"); -} -function joinAttributes(attributes) { - return Object.keys(attributes || {}).reduce((acc, attributeName) => { - return acc + "".concat(attributeName, '="').concat(htmlEscape(attributes[attributeName]), '" '); - }, "").trim(); -} -function joinStyles(styles2) { - return Object.keys(styles2 || {}).reduce((acc, styleName) => { - return acc + "".concat(styleName, ": ").concat(styles2[styleName].trim(), ";"); - }, ""); -} -function transformIsMeaningful(transform2) { - return transform2.size !== meaninglessTransform.size || transform2.x !== meaninglessTransform.x || transform2.y !== meaninglessTransform.y || transform2.rotate !== meaninglessTransform.rotate || transform2.flipX || transform2.flipY; -} -function transformForSvg(_ref3) { - let { - transform: transform2, - containerWidth, - iconWidth - } = _ref3; - const outer = { - transform: "translate(".concat(containerWidth / 2, " 256)") - }; - const innerTranslate = "translate(".concat(transform2.x * 32, ", ").concat(transform2.y * 32, ") "); - const innerScale = "scale(".concat(transform2.size / 16 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / 16 * (transform2.flipY ? -1 : 1), ") "); - const innerRotate = "rotate(".concat(transform2.rotate, " 0 0)"); - const inner = { - transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) - }; - const path = { - transform: "translate(".concat(iconWidth / 2 * -1, " -256)") - }; - return { - outer, - inner, - path - }; -} -function transformForCss(_ref23) { - let { - transform: transform2, - width = UNITS_IN_GRID, - height = UNITS_IN_GRID, - startCentered = false - } = _ref23; - let val = ""; - if (startCentered && IS_IE) { - val += "translate(".concat(transform2.x / d$2 - width / 2, "em, ").concat(transform2.y / d$2 - height / 2, "em) "); - } else if (startCentered) { - val += "translate(calc(-50% + ".concat(transform2.x / d$2, "em), calc(-50% + ").concat(transform2.y / d$2, "em)) "); - } else { - val += "translate(".concat(transform2.x / d$2, "em, ").concat(transform2.y / d$2, "em) "); - } - val += "scale(".concat(transform2.size / d$2 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / d$2 * (transform2.flipY ? -1 : 1), ") "); - val += "rotate(".concat(transform2.rotate, "deg) "); - return val; -} -function css5() { - const dcp = DEFAULT_CSS_PREFIX; - const drc = DEFAULT_REPLACEMENT_CLASS; - const fp = config.cssPrefix; - const rc = config.replacementClass; - let s4 = baseStyles; - if (fp !== dcp || rc !== drc) { - const dPatt = new RegExp("\\.".concat(dcp, "\\-"), "g"); - const customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), "g"); - const rPatt = new RegExp("\\.".concat(drc), "g"); - s4 = s4.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); - } - return s4; -} -function ensureCss() { - if (config.autoAddCss && !_cssInserted) { - insertCss(css5()); - _cssInserted = true; - } -} -function domready(fn2) { - if (!IS_DOM) return; - loaded ? setTimeout(fn2, 0) : functions.push(fn2); -} -function toHtml(abstractNodes) { - const { - tag, - attributes = {}, - children = [] - } = abstractNodes; - if (typeof abstractNodes === "string") { - return htmlEscape(abstractNodes); - } else { - return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(""), ""); - } -} -function iconFromMapping(mapping, prefix2, iconName) { - if (mapping && mapping[prefix2] && mapping[prefix2][iconName]) { - return { - prefix: prefix2, - iconName, - icon: mapping[prefix2][iconName] - }; - } -} -function ucs2decode(string2) { - const output = []; - let counter2 = 0; - const length2 = string2.length; - while (counter2 < length2) { - const value = string2.charCodeAt(counter2++); - if (value >= 55296 && value <= 56319 && counter2 < length2) { - const extra = string2.charCodeAt(counter2++); - if ((extra & 64512) == 56320) { - output.push(((value & 1023) << 10) + (extra & 1023) + 65536); - } else { - output.push(value); - counter2--; - } - } else { - output.push(value); - } - } - return output; -} -function toHex(unicode) { - const decoded = ucs2decode(unicode); - return decoded.length === 1 ? decoded[0].toString(16) : null; -} -function codePointAt(string2, index) { - const size2 = string2.length; - let first = string2.charCodeAt(index); - let second; - if (first >= 55296 && first <= 56319 && size2 > index + 1) { - second = string2.charCodeAt(index + 1); - if (second >= 56320 && second <= 57343) { - return (first - 55296) * 1024 + second - 56320 + 65536; - } - } - return first; -} -function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon2 = icons[iconName]; - const expanded = !!icon2.icon; - if (expanded) { - acc[icon2.iconName] = icon2.icon; - } else { - acc[iconName] = icon2; - } - return acc; - }, {}); -} -function defineIcons(prefix2, icons) { - let params = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === "function" && !skipHooks) { - namespace.hooks.addPack(prefix2, normalizeIcons(icons)); - } else { - namespace.styles[prefix2] = { - ...namespace.styles[prefix2] || {}, - ...normalized - }; - } - if (prefix2 === "fas") { - defineIcons("fa", icons); - } -} -function isReserved(name) { - return ~RESERVED_CLASSES.indexOf(name); -} -function getIconName(cssPrefix, cls) { - const parts = cls.split("-"); - const prefix2 = parts[0]; - const iconName = parts.slice(1).join("-"); - if (prefix2 === cssPrefix && iconName !== "" && !isReserved(iconName)) { - return iconName; - } else { - return null; - } -} -function byUnicode(prefix2, unicode) { - return (_byUnicode[prefix2] || {})[unicode]; -} -function byLigature(prefix2, ligature) { - return (_byLigature[prefix2] || {})[ligature]; -} -function byAlias(prefix2, alias) { - return (_byAlias[prefix2] || {})[alias]; -} -function byOldName(name) { - return _byOldName[name] || { - prefix: null, - iconName: null - }; -} -function byOldUnicode(unicode) { - const oldUnicode = _byOldUnicode[unicode]; - const newUnicode = byUnicode("fas", unicode); - return oldUnicode || (newUnicode ? { - prefix: "fas", - iconName: newUnicode - } : null) || { - prefix: null, - iconName: null - }; -} -function getDefaultUsablePrefix() { - return _defaultUsablePrefix; -} -function getCanonicalPrefix(styleOrPrefix) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - family = a3 - } = params; - const style = PREFIX_TO_STYLE[family][styleOrPrefix]; - const prefix2 = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style]; - const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null; - const result = prefix2 || defined || null; - return result; -} -function getCanonicalIcon(values) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - skipLookups = false - } = params; - const famProps = { - [a3]: "".concat(config.cssPrefix, "-").concat(a3), - [r3]: "".concat(config.cssPrefix, "-").concat(r3), - [o3]: "".concat(config.cssPrefix, "-").concat(o3) - }; - let givenPrefix = null; - let family = a3; - const nonDuotoneFamilyIds = c3.filter((familyId) => familyId !== t3); - nonDuotoneFamilyIds.forEach((familyId) => { - if (values.includes(famProps[familyId]) || values.some((v$$1) => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) { - family = familyId; - } - }); - const canonical = values.reduce((acc, cls) => { - const iconName = getIconName(config.cssPrefix, cls); - if (styles[cls]) { - cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls; - givenPrefix = cls; - acc.prefix = cls; - } else if (PREFIXES[family].indexOf(cls) > -1) { - givenPrefix = cls; - acc.prefix = getCanonicalPrefix(cls, { - family - }); - } else if (iconName) { - acc.iconName = iconName; - } else if (cls !== config.replacementClass && !nonDuotoneFamilyIds.some((familyName) => cls === famProps[familyName])) { - acc.rest.push(cls); - } - if (!skipLookups && acc.prefix && acc.iconName) { - const shim = givenPrefix === "fa" ? byOldName(acc.iconName) : {}; - const aliasIconName = byAlias(acc.prefix, acc.iconName); - if (shim.prefix) { - givenPrefix = null; - } - acc.iconName = shim.iconName || aliasIconName || acc.iconName; - acc.prefix = shim.prefix || acc.prefix; - if (acc.prefix === "far" && !styles["far"] && styles["fas"] && !config.autoFetchSvg) { - acc.prefix = "fas"; - } - } - return acc; - }, emptyCanonicalIcon()); - if (values.includes("fa-brands") || values.includes("fab")) { - canonical.prefix = "fab"; - } - if (values.includes("fa-duotone") || values.includes("fad")) { - canonical.prefix = "fad"; - } - if (!canonical.prefix && family === r3 && (styles["fass"] || config.autoFetchSvg)) { - canonical.prefix = "fass"; - canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; - } - if (!canonical.prefix && family === o3 && (styles["fasds"] || config.autoFetchSvg)) { - canonical.prefix = "fasds"; - canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; - } - if (canonical.prefix === "fa" || givenPrefix === "fa") { - canonical.prefix = getDefaultUsablePrefix() || "fas"; - } - return canonical; -} -function registerPlugins(nextPlugins, _ref3) { - let { - mixoutsTo: obj - } = _ref3; - _plugins = nextPlugins; - _hooks = {}; - Object.keys(providers).forEach((k4) => { - if (defaultProviderKeys.indexOf(k4) === -1) { - delete providers[k4]; - } - }); - _plugins.forEach((plugin) => { - const mixout = plugin.mixout ? plugin.mixout() : {}; - Object.keys(mixout).forEach((tk) => { - if (typeof mixout[tk] === "function") { - obj[tk] = mixout[tk]; - } - if (typeof mixout[tk] === "object") { - Object.keys(mixout[tk]).forEach((sk) => { - if (!obj[tk]) { - obj[tk] = {}; - } - obj[tk][sk] = mixout[tk][sk]; - }); - } - }); - if (plugin.hooks) { - const hooks = plugin.hooks(); - Object.keys(hooks).forEach((hook) => { - if (!_hooks[hook]) { - _hooks[hook] = []; - } - _hooks[hook].push(hooks[hook]); - }); - } - if (plugin.provides) { - plugin.provides(providers); - } - }); - return obj; -} -function chainHooks(hook, accumulator) { - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - const hookFns = _hooks[hook] || []; - hookFns.forEach((hookFn) => { - accumulator = hookFn.apply(null, [accumulator, ...args]); - }); - return accumulator; -} -function callHooks(hook) { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - const hookFns = _hooks[hook] || []; - hookFns.forEach((hookFn) => { - hookFn.apply(null, args); - }); - return void 0; -} -function callProvided() { - const hook = arguments[0]; - const args = Array.prototype.slice.call(arguments, 1); - return providers[hook] ? providers[hook].apply(null, args) : void 0; -} -function findIconDefinition(iconLookup) { - if (iconLookup.prefix === "fa") { - iconLookup.prefix = "fas"; - } - let { - iconName - } = iconLookup; - const prefix2 = iconLookup.prefix || getDefaultUsablePrefix(); - if (!iconName) return; - iconName = byAlias(prefix2, iconName) || iconName; - return iconFromMapping(library.definitions, prefix2, iconName) || iconFromMapping(namespace.styles, prefix2, iconName); -} -function domVariants(val, abstractCreator) { - Object.defineProperty(val, "abstract", { - get: abstractCreator - }); - Object.defineProperty(val, "html", { - get: function() { - return val.abstract.map((a4) => toHtml(a4)); - } - }); - Object.defineProperty(val, "node", { - get: function() { - if (!IS_DOM) return; - const container = DOCUMENT.createElement("div"); - container.innerHTML = val.html; - return container.children; - } - }); - return val; -} -function asIcon(_ref3) { - let { - children, - main, - mask, - attributes, - styles: styles2, - transform: transform2 - } = _ref3; - if (transformIsMeaningful(transform2) && main.found && !mask.found) { - const { - width, - height - } = main; - const offset3 = { - x: width / height / 2, - y: 0.5 - }; - attributes["style"] = joinStyles({ - ...styles2, - "transform-origin": "".concat(offset3.x + transform2.x / 16, "em ").concat(offset3.y + transform2.y / 16, "em") - }); - } - return [{ - tag: "svg", - attributes, - children - }]; -} -function asSymbol(_ref3) { - let { - prefix: prefix2, - iconName, - children, - attributes, - symbol - } = _ref3; - const id = symbol === true ? "".concat(prefix2, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol; - return [{ - tag: "svg", - attributes: { - style: "display: none;" - }, - children: [{ - tag: "symbol", - attributes: { - ...attributes, - id - }, - children - }] - }]; -} -function makeInlineSvgAbstract(params) { - const { - icons: { - main, - mask - }, - prefix: prefix2, - iconName, - transform: transform2, - symbol, - title, - maskId, - titleId, - extra, - watchable = false - } = params; - const { - width, - height - } = mask.found ? mask : main; - const isUploadedIcon = prefix2 === "fak"; - const attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ""].filter((c4) => extra.classes.indexOf(c4) === -1).filter((c4) => c4 !== "" || !!c4).concat(extra.classes).join(" "); - let content = { - children: [], - attributes: { - ...extra.attributes, - "data-prefix": prefix2, - "data-icon": iconName, - "class": attrClass, - "role": extra.attributes.role || "img", - "xmlns": "http://www.w3.org/2000/svg", - "viewBox": "0 0 ".concat(width, " ").concat(height) - } - }; - const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf("fa-fw") ? { - width: "".concat(width / height * 16 * 0.0625, "em") - } : {}; - if (watchable) { - content.attributes[DATA_FA_I2SVG] = ""; - } - if (title) { - content.children.push({ - tag: "title", - attributes: { - id: content.attributes["aria-labelledby"] || "title-".concat(titleId || nextUniqueId()) - }, - children: [title] - }); - delete content.attributes.title; - } - const args = { - ...content, - prefix: prefix2, - iconName, - main, - mask, - maskId, - transform: transform2, - symbol, - styles: { - ...uploadedIconWidthStyle, - ...extra.styles - } - }; - const { - children, - attributes - } = mask.found && main.found ? callProvided("generateAbstractMask", args) || { - children: [], - attributes: {} - } : callProvided("generateAbstractIcon", args) || { - children: [], - attributes: {} - }; - args.children = children; - args.attributes = attributes; - if (symbol) { - return asSymbol(args); - } else { - return asIcon(args); - } -} -function makeLayersTextAbstract(params) { - const { - content, - width, - height, - transform: transform2, - title, - extra, - watchable = false - } = params; - const attributes = { - ...extra.attributes, - ...title ? { - "title": title - } : {}, - "class": extra.classes.join(" ") - }; - if (watchable) { - attributes[DATA_FA_I2SVG] = ""; - } - const styles2 = { - ...extra.styles - }; - if (transformIsMeaningful(transform2)) { - styles2["transform"] = transformForCss({ - transform: transform2, - startCentered: true, - width, - height - }); - styles2["-webkit-transform"] = styles2["transform"]; - } - const styleString = joinStyles(styles2); - if (styleString.length > 0) { - attributes["style"] = styleString; - } - const val = []; - val.push({ - tag: "span", - attributes, - children: [content] - }); - if (title) { - val.push({ - tag: "span", - attributes: { - class: "sr-only" - }, - children: [title] - }); - } - return val; -} -function makeLayersCounterAbstract(params) { - const { - content, - title, - extra - } = params; - const attributes = { - ...extra.attributes, - ...title ? { - "title": title - } : {}, - "class": extra.classes.join(" ") - }; - const styleString = joinStyles(extra.styles); - if (styleString.length > 0) { - attributes["style"] = styleString; - } - const val = []; - val.push({ - tag: "span", - attributes, - children: [content] - }); - if (title) { - val.push({ - tag: "span", - attributes: { - class: "sr-only" - }, - children: [title] - }); - } - return val; -} -function asFoundIcon(icon2) { - const width = icon2[0]; - const height = icon2[1]; - const [vectorData] = icon2.slice(4); - let element = null; - if (Array.isArray(vectorData)) { - element = { - tag: "g", - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP) - }, - children: [{ - tag: "path", - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), - fill: "currentColor", - d: vectorData[0] - } - }, { - tag: "path", - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), - fill: "currentColor", - d: vectorData[1] - } - }] - }; - } else { - element = { - tag: "path", - attributes: { - fill: "currentColor", - d: vectorData - } - }; - } - return { - found: true, - width, - height, - icon: element - }; -} -function maybeNotifyMissing(iconName, prefix2) { - if (!PRODUCTION && !config.showMissingIcons && iconName) { - console.error('Icon with name "'.concat(iconName, '" and prefix "').concat(prefix2, '" is missing.')); - } -} -function findIcon(iconName, prefix2) { - let givenPrefix = prefix2; - if (prefix2 === "fa" && config.styleDefault !== null) { - prefix2 = getDefaultUsablePrefix(); - } - return new Promise((resolve, reject) => { - if (givenPrefix === "fa") { - const shim = byOldName(iconName) || {}; - iconName = shim.iconName || iconName; - prefix2 = shim.prefix || prefix2; - } - if (iconName && prefix2 && styles$1[prefix2] && styles$1[prefix2][iconName]) { - const icon2 = styles$1[prefix2][iconName]; - return resolve(asFoundIcon(icon2)); - } - maybeNotifyMissing(iconName, prefix2); - resolve({ - ...missingIconResolutionMixin, - icon: config.showMissingIcons && iconName ? callProvided("missingIconAbstract") || {} : {} - }); - }); -} -function isWatched(node2) { - const i2svg = node2.getAttribute ? node2.getAttribute(DATA_FA_I2SVG) : null; - return typeof i2svg === "string"; -} -function hasPrefixAndIcon(node2) { - const prefix2 = node2.getAttribute ? node2.getAttribute(DATA_PREFIX) : null; - const icon2 = node2.getAttribute ? node2.getAttribute(DATA_ICON) : null; - return prefix2 && icon2; -} -function hasBeenReplaced(node2) { - return node2 && node2.classList && node2.classList.contains && node2.classList.contains(config.replacementClass); -} -function getMutator() { - if (config.autoReplaceSvg === true) { - return mutators.replace; - } - const mutator = mutators[config.autoReplaceSvg]; - return mutator || mutators.replace; -} -function createElementNS(tag) { - return DOCUMENT.createElementNS("http://www.w3.org/2000/svg", tag); -} -function createElement(tag) { - return DOCUMENT.createElement(tag); -} -function convertSVG(abstractObj) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - ceFn = abstractObj.tag === "svg" ? createElementNS : createElement - } = params; - if (typeof abstractObj === "string") { - return DOCUMENT.createTextNode(abstractObj); - } - const tag = ceFn(abstractObj.tag); - Object.keys(abstractObj.attributes || []).forEach(function(key) { - tag.setAttribute(key, abstractObj.attributes[key]); - }); - const children = abstractObj.children || []; - children.forEach(function(child) { - tag.appendChild(convertSVG(child, { - ceFn - })); - }); - return tag; -} -function nodeAsComment(node2) { - let comment2 = " ".concat(node2.outerHTML, " "); - comment2 = "".concat(comment2, "Font Awesome fontawesome.com "); - return comment2; -} -function performOperationSync(op) { - op(); -} -function perform(mutations, callback) { - const callbackFunction = typeof callback === "function" ? callback : noop$2; - if (mutations.length === 0) { - callbackFunction(); - } else { - let frame = performOperationSync; - if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { - frame = WINDOW.requestAnimationFrame || performOperationSync; - } - frame(() => { - const mutator = getMutator(); - const mark = perf.begin("mutate"); - mutations.map(mutator); - mark(); - callbackFunction(); - }); - } -} -function disableObservation() { - disabled = true; -} -function enableObservation() { - disabled = false; -} -function observe(options2) { - if (!MUTATION_OBSERVER) { - return; - } - if (!config.observeMutations) { - return; - } - const { - treeCallback = noop$2, - nodeCallback = noop$2, - pseudoElementsCallback = noop$2, - observeMutationsRoot = DOCUMENT - } = options2; - mo$1 = new MUTATION_OBSERVER((objects) => { - if (disabled) return; - const defaultPrefix = getDefaultUsablePrefix(); - toArray(objects).forEach((mutationRecord) => { - if (mutationRecord.type === "childList" && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { - if (config.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target); - } - treeCallback(mutationRecord.target); - } - if (mutationRecord.type === "attributes" && mutationRecord.target.parentNode && config.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target.parentNode); - } - if (mutationRecord.type === "attributes" && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { - if (mutationRecord.attributeName === "class" && hasPrefixAndIcon(mutationRecord.target)) { - const { - prefix: prefix2, - iconName - } = getCanonicalIcon(classArray(mutationRecord.target)); - mutationRecord.target.setAttribute(DATA_PREFIX, prefix2 || defaultPrefix); - if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName); - } else if (hasBeenReplaced(mutationRecord.target)) { - nodeCallback(mutationRecord.target); - } - } - }); - }); - if (!IS_DOM) return; - mo$1.observe(observeMutationsRoot, { - childList: true, - attributes: true, - characterData: true, - subtree: true - }); -} -function disconnect() { - if (!mo$1) return; - mo$1.disconnect(); -} -function styleParser(node2) { - const style = node2.getAttribute("style"); - let val = []; - if (style) { - val = style.split(";").reduce((acc, style2) => { - const styles2 = style2.split(":"); - const prop = styles2[0]; - const value = styles2.slice(1); - if (prop && value.length > 0) { - acc[prop] = value.join(":").trim(); - } - return acc; - }, {}); - } - return val; -} -function classParser(node2) { - const existingPrefix = node2.getAttribute("data-prefix"); - const existingIconName = node2.getAttribute("data-icon"); - const innerText = node2.innerText !== void 0 ? node2.innerText.trim() : ""; - let val = getCanonicalIcon(classArray(node2)); - if (!val.prefix) { - val.prefix = getDefaultUsablePrefix(); - } - if (existingPrefix && existingIconName) { - val.prefix = existingPrefix; - val.iconName = existingIconName; - } - if (val.iconName && val.prefix) { - return val; - } - if (val.prefix && innerText.length > 0) { - val.iconName = byLigature(val.prefix, node2.innerText) || byUnicode(val.prefix, toHex(node2.innerText)); - } - if (!val.iconName && config.autoFetchSvg && node2.firstChild && node2.firstChild.nodeType === Node.TEXT_NODE) { - val.iconName = node2.firstChild.data; - } - return val; -} -function attributesParser(node2) { - const extraAttributes = toArray(node2.attributes).reduce((acc, attr) => { - if (acc.name !== "class" && acc.name !== "style") { - acc[attr.name] = attr.value; - } - return acc; - }, {}); - const title = node2.getAttribute("title"); - const titleId = node2.getAttribute("data-fa-title-id"); - if (config.autoA11y) { - if (title) { - extraAttributes["aria-labelledby"] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); - } else { - extraAttributes["aria-hidden"] = "true"; - extraAttributes["focusable"] = "false"; - } - } - return extraAttributes; -} -function blankMeta() { - return { - iconName: null, - title: null, - titleId: null, - prefix: null, - transform: meaninglessTransform, - symbol: false, - mask: { - iconName: null, - prefix: null, - rest: [] - }, - maskId: null, - extra: { - classes: [], - styles: {}, - attributes: {} - } - }; -} -function parseMeta(node2) { - let parser = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { - styleParser: true - }; - const { - iconName, - prefix: prefix2, - rest: extraClasses - } = classParser(node2); - const extraAttributes = attributesParser(node2); - const pluginMeta = chainHooks("parseNodeAttributes", {}, node2); - let extraStyles = parser.styleParser ? styleParser(node2) : []; - return { - iconName, - title: node2.getAttribute("title"), - titleId: node2.getAttribute("data-fa-title-id"), - prefix: prefix2, - transform: meaninglessTransform, - mask: { - iconName: null, - prefix: null, - rest: [] - }, - maskId: null, - symbol: false, - extra: { - classes: extraClasses, - styles: extraStyles, - attributes: extraAttributes - }, - ...pluginMeta - }; -} -function generateMutation(node2) { - const nodeMeta = config.autoReplaceSvg === "nest" ? parseMeta(node2, { - styleParser: false - }) : parseMeta(node2); - if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { - return callProvided("generateLayersText", node2, nodeMeta); - } else { - return callProvided("generateSvgReplacementMutation", node2, nodeMeta); - } -} -function onTree(root) { - let callback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; - if (!IS_DOM) return Promise.resolve(); - const htmlClassList = DOCUMENT.documentElement.classList; - const hclAdd = (suffix) => htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); - const hclRemove = (suffix) => htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); - const prefixes2 = config.autoFetchSvg ? knownPrefixes : FAMILIES.map((f$$1) => "fa-".concat(f$$1)).concat(Object.keys(styles$2)); - if (!prefixes2.includes("fa")) { - prefixes2.push("fa"); - } - const prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes2.map((p$$1) => ".".concat(p$$1, ":not([").concat(DATA_FA_I2SVG, "])"))).join(", "); - if (prefixesDomQuery.length === 0) { - return Promise.resolve(); - } - let candidates = []; - try { - candidates = toArray(root.querySelectorAll(prefixesDomQuery)); - } catch (e$$1) { - } - if (candidates.length > 0) { - hclAdd("pending"); - hclRemove("complete"); - } else { - return Promise.resolve(); - } - const mark = perf.begin("onTree"); - const mutations = candidates.reduce((acc, node2) => { - try { - const mutation = generateMutation(node2); - if (mutation) { - acc.push(mutation); - } - } catch (e$$1) { - if (!PRODUCTION) { - if (e$$1.name === "MissingIcon") { - console.error(e$$1); - } - } - } - return acc; - }, []); - return new Promise((resolve, reject) => { - Promise.all(mutations).then((resolvedMutations) => { - perform(resolvedMutations, () => { - hclAdd("active"); - hclAdd("complete"); - hclRemove("pending"); - if (typeof callback === "function") callback(); - mark(); - resolve(); - }); - }).catch((e$$1) => { - mark(); - reject(e$$1); - }); - }); -} -function onNode(node2) { - let callback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; - generateMutation(node2).then((mutation) => { - if (mutation) { - perform([mutation], callback); - } - }); -} -function resolveIcons(next2) { - return function(maybeIconDefinition) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); - let { - mask - } = params; - if (mask) { - mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); - } - return next2(iconDefinition, { - ...params, - mask - }); - }; -} -function hexValueFromContent(content) { - const cleaned = content.replace(CLEAN_CONTENT_PATTERN, ""); - const codePoint = codePointAt(cleaned, 0); - const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1]; - const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false; - return { - value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned), - isSecondary: isPrependTen || isDoubled - }; -} -function getPrefix(fontFamily, fontWeight) { - const fontFamilySanitized = fontFamily.replace(/^['"]|['"]$/g, "").toLowerCase(); - const fontWeightInteger = parseInt(fontWeight); - const fontWeightSanitized = isNaN(fontWeightInteger) ? "normal" : fontWeightInteger; - return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized]; -} -function replaceForPosition(node2, position2) { - const pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position2.replace(":", "-")); - return new Promise((resolve, reject) => { - if (node2.getAttribute(pendingAttribute) !== null) { - return resolve(); - } - const children = toArray(node2.children); - const alreadyProcessedPseudoElement = children.filter((c4) => c4.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position2)[0]; - const styles2 = WINDOW.getComputedStyle(node2, position2); - const fontFamily = styles2.getPropertyValue("font-family"); - const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN); - const fontWeight = styles2.getPropertyValue("font-weight"); - const content = styles2.getPropertyValue("content"); - if (alreadyProcessedPseudoElement && !fontFamilyMatch) { - node2.removeChild(alreadyProcessedPseudoElement); - return resolve(); - } else if (fontFamilyMatch && content !== "none" && content !== "") { - const content2 = styles2.getPropertyValue("content"); - let prefix2 = getPrefix(fontFamily, fontWeight); - const { - value: hexValue, - isSecondary - } = hexValueFromContent(content2); - const isV4 = fontFamilyMatch[0].startsWith("FontAwesome"); - let iconName = byUnicode(prefix2, hexValue); - let iconIdentifier = iconName; - if (isV4) { - const iconName4 = byOldUnicode(hexValue); - if (iconName4.iconName && iconName4.prefix) { - iconName = iconName4.iconName; - prefix2 = iconName4.prefix; - } - } - if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix2 || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { - node2.setAttribute(pendingAttribute, iconIdentifier); - if (alreadyProcessedPseudoElement) { - node2.removeChild(alreadyProcessedPseudoElement); - } - const meta = blankMeta(); - const { - extra - } = meta; - extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position2; - findIcon(iconName, prefix2).then((main) => { - const abstract = makeInlineSvgAbstract({ - ...meta, - icons: { - main, - mask: emptyCanonicalIcon() - }, - prefix: prefix2, - iconName: iconIdentifier, - extra, - watchable: true - }); - const element = DOCUMENT.createElementNS("http://www.w3.org/2000/svg", "svg"); - if (position2 === "::before") { - node2.insertBefore(element, node2.firstChild); - } else { - node2.appendChild(element); - } - element.outerHTML = abstract.map((a4) => toHtml(a4)).join("\n"); - node2.removeAttribute(pendingAttribute); - resolve(); - }).catch(reject); - } else { - resolve(); - } - } else { - resolve(); - } - }); -} -function replace2(node2) { - return Promise.all([replaceForPosition(node2, "::before"), replaceForPosition(node2, "::after")]); -} -function processable(node2) { - return node2.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node2.tagName.toUpperCase()) && !node2.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node2.parentNode || node2.parentNode.tagName !== "svg"); -} -function searchPseudoElements(root) { - if (!IS_DOM) return; - return new Promise((resolve, reject) => { - const operations = toArray(root.querySelectorAll("*")).filter(processable).map(replace2); - const end2 = perf.begin("searchPseudoElements"); - disableObservation(); - Promise.all(operations).then(() => { - end2(); - enableObservation(); - resolve(); - }).catch(() => { - end2(); - enableObservation(); - reject(); - }); - }); -} -function fillBlack(abstract) { - let force = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - if (abstract.attributes && (abstract.attributes.fill || force)) { - abstract.attributes.fill = "black"; - } - return abstract; -} -function deGroup(abstract) { - if (abstract.tag === "g") { - return abstract.children; - } else { - return [abstract]; - } -} -var noop3, _WINDOW, _DOCUMENT, _MUTATION_OBSERVER, _PERFORMANCE, userAgent, WINDOW, DOCUMENT, MUTATION_OBSERVER, PERFORMANCE, IS_BROWSER, IS_DOM, IS_IE, a3, t3, r3, o3, c3, et$1, bt, Ct, Dt, Kt, ao, eo, lo, y3, no, fo, ho, x$1, u$1, m$1, t$1, yo, mo, Io, Fo, So, NAMESPACE_IDENTIFIER, UNITS_IN_GRID, DEFAULT_CSS_PREFIX, DEFAULT_REPLACEMENT_CLASS, DATA_FA_I2SVG, DATA_FA_PSEUDO_ELEMENT, DATA_FA_PSEUDO_ELEMENT_PENDING, DATA_PREFIX, DATA_ICON, HTML_CLASS_I2SVG_BASE_CLASS, MUTATION_APPROACH_ASYNC, TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS, PRODUCTION, FAMILIES, _PREFIX_TO_STYLE, PREFIX_TO_STYLE, _STYLE_TO_PREFIX, STYLE_TO_PREFIX, _PREFIX_TO_LONG_STYLE, PREFIX_TO_LONG_STYLE, _LONG_STYLE_TO_PREFIX, LONG_STYLE_TO_PREFIX, ICON_SELECTION_SYNTAX_PATTERN, LAYERS_TEXT_CLASSNAME, FONT_FAMILY_PATTERN, _FONT_WEIGHT_TO_PREFIX, FONT_WEIGHT_TO_PREFIX, ATTRIBUTES_WATCHED_FOR_MUTATION, DUOTONE_CLASSES, prefixes, RESERVED_CLASSES, initial, _default, _config, config, _onChangeCb, d$2, meaninglessTransform, idPool, baseStyles, _cssInserted, InjectCSS, w$1, namespace, functions, listener, loaded, bindInternal4, reduce, styles, shims, LONG_STYLE, _defaultUsablePrefix, _byUnicode, _byLigature, _byOldName, _byOldUnicode, _byAlias, PREFIXES, build, emptyCanonicalIcon, PREFIXES_FOR_FAMILY, Library, _plugins, _hooks, providers, defaultProviderKeys, library, noAuto, dom, parse3, api, autoReplace, styles$1, missingIconResolutionMixin, noop$1, p$2, preamble, begin, end, perf, noop$2, mutators, disabled, mo$1, styles$2, knownPrefixes, render, ReplaceElements, Layers, LayersCounter, LayersText, CLEAN_CONTENT_PATTERN, SECONDARY_UNICODE_RANGE, _FONT_FAMILY_WEIGHT_TO_PREFIX, FONT_FAMILY_WEIGHT_TO_PREFIX, FONT_FAMILY_WEIGHT_FALLBACK, PseudoElements, _unwatched, MutationObserver$1, parseTransformString, PowerTransforms, ALL_SPACE, Masks, MissingIconIndicator, SvgSymbols, plugins, noAuto$1, config$1, library$1, dom$1, parse$1, findIconDefinition$1, toHtml$1, icon, layer, text, counter; -var init_fontawesome_svg_core = __esm({ - "node_modules/@fortawesome/fontawesome-svg-core/index.mjs"() { - noop3 = () => { - }; - _WINDOW = {}; - _DOCUMENT = {}; - _MUTATION_OBSERVER = null; - _PERFORMANCE = { - mark: noop3, - measure: noop3 - }; - try { - if (typeof window !== "undefined") _WINDOW = window; - if (typeof document !== "undefined") _DOCUMENT = document; - if (typeof MutationObserver !== "undefined") _MUTATION_OBSERVER = MutationObserver; - if (typeof performance !== "undefined") _PERFORMANCE = performance; - } catch (e3) { - } - ({ - userAgent = "" - } = _WINDOW.navigator || {}); - WINDOW = _WINDOW; - DOCUMENT = _DOCUMENT; - MUTATION_OBSERVER = _MUTATION_OBSERVER; - PERFORMANCE = _PERFORMANCE; - IS_BROWSER = !!WINDOW.document; - IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === "function" && typeof DOCUMENT.createElement === "function"; - IS_IE = ~userAgent.indexOf("MSIE") || ~userAgent.indexOf("Trident/"); - a3 = "classic"; - t3 = "duotone"; - r3 = "sharp"; - o3 = "sharp-duotone"; - c3 = [a3, t3, r3, o3]; - et$1 = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds" - } - }; - bt = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }; - Ct = ["kit"]; - Dt = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/; - Kt = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i; - ao = { - "Font Awesome 5 Free": { - 900: "fas", - 400: "far" - }, - "Font Awesome 5 Pro": { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal" - }, - "Font Awesome 5 Brands": { - 400: "fab", - normal: "fab" - }, - "Font Awesome 5 Duotone": { - 900: "fad" - } - }; - eo = { - "Font Awesome 6 Free": { - 900: "fas", - 400: "far" - }, - "Font Awesome 6 Pro": { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - "Font Awesome 6 Brands": { - 400: "fab", - normal: "fab" - }, - "Font Awesome 6 Duotone": { - 900: "fad" - }, - "Font Awesome 6 Sharp": { - 900: "fass", - 400: "fasr", - normal: "fasr", - 300: "fasl", - 100: "fast" - }, - "Font Awesome 6 Sharp Duotone": { - 900: "fasds" - } - }; - lo = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds" - } - }; - y3 = { - classic: ["fas", "far", "fal", "fat"], - sharp: ["fass", "fasr", "fasl", "fast"], - "sharp-duotone": ["fasds"] - }; - no = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid" - } - }; - fo = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - duotone: "fad", - brands: "fab" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds" - } - }; - ho = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fad: "duotone", - "fa-duotone": "duotone", - fab: "brands", - "fa-brands": "brands" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid" - } - }; - x$1 = ["solid", "regular", "light", "thin", "duotone", "brands"]; - u$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; - m$1 = u$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]); - t$1 = { - GROUP: "duotone-group", - SWAP_OPACITY: "swap-opacity", - PRIMARY: "primary", - SECONDARY: "secondary" - }; - yo = [...Object.keys(y3), ...x$1, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vertical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(u$1.map((o4) => "".concat(o4, "x"))).concat(m$1.map((o4) => "w-".concat(o4))); - mo = { - "Font Awesome Kit": { - 400: "fak", - normal: "fak" - }, - "Font Awesome Kit Duotone": { - 400: "fakd", - normal: "fakd" - } - }; - Io = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - Fo = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - So = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - NAMESPACE_IDENTIFIER = "___FONT_AWESOME___"; - UNITS_IN_GRID = 16; - DEFAULT_CSS_PREFIX = "fa"; - DEFAULT_REPLACEMENT_CLASS = "svg-inline--fa"; - DATA_FA_I2SVG = "data-fa-i2svg"; - DATA_FA_PSEUDO_ELEMENT = "data-fa-pseudo-element"; - DATA_FA_PSEUDO_ELEMENT_PENDING = "data-fa-pseudo-element-pending"; - DATA_PREFIX = "data-prefix"; - DATA_ICON = "data-icon"; - HTML_CLASS_I2SVG_BASE_CLASS = "fontawesome-i2svg"; - MUTATION_APPROACH_ASYNC = "async"; - TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ["HTML", "HEAD", "STYLE", "SCRIPT"]; - PRODUCTION = (() => { - try { - return process.env.NODE_ENV === "production"; - } catch (e$$1) { - return false; - } - })(); - FAMILIES = [a3, r3, o3]; - _PREFIX_TO_STYLE = { - ...ho - }; - _PREFIX_TO_STYLE[a3] = { - ...ho[a3], - ...bt["kit"], - ...bt["kit-duotone"] - }; - PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - _STYLE_TO_PREFIX = { - ...fo - }; - _STYLE_TO_PREFIX[a3] = { - ..._STYLE_TO_PREFIX[a3], - ...So["kit"], - ...So["kit-duotone"] - }; - STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - _PREFIX_TO_LONG_STYLE = { - ...no - }; - _PREFIX_TO_LONG_STYLE[a3] = { - ..._PREFIX_TO_LONG_STYLE[a3], - ...Fo["kit"] - }; - PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - _LONG_STYLE_TO_PREFIX = { - ...lo - }; - _LONG_STYLE_TO_PREFIX[a3] = { - ..._LONG_STYLE_TO_PREFIX[a3], - ...Io["kit"] - }; - LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - ICON_SELECTION_SYNTAX_PATTERN = Dt; - LAYERS_TEXT_CLASSNAME = "fa-layers-text"; - FONT_FAMILY_PATTERN = Kt; - _FONT_WEIGHT_TO_PREFIX = { - ...et$1 - }; - FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - ATTRIBUTES_WATCHED_FOR_MUTATION = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"]; - DUOTONE_CLASSES = t$1; - prefixes = /* @__PURE__ */ new Set(); - Object.keys(STYLE_TO_PREFIX[a3]).map(prefixes.add.bind(prefixes)); - Object.keys(STYLE_TO_PREFIX[r3]).map(prefixes.add.bind(prefixes)); - Object.keys(STYLE_TO_PREFIX[o3]).map(prefixes.add.bind(prefixes)); - RESERVED_CLASSES = [...Ct, ...yo]; - initial = WINDOW.FontAwesomeConfig || {}; - if (DOCUMENT && typeof DOCUMENT.querySelector === "function") { - const attrs = [["data-family-prefix", "familyPrefix"], ["data-css-prefix", "cssPrefix"], ["data-family-default", "familyDefault"], ["data-style-default", "styleDefault"], ["data-replacement-class", "replacementClass"], ["data-auto-replace-svg", "autoReplaceSvg"], ["data-auto-add-css", "autoAddCss"], ["data-auto-a11y", "autoA11y"], ["data-search-pseudo-elements", "searchPseudoElements"], ["data-observe-mutations", "observeMutations"], ["data-mutate-approach", "mutateApproach"], ["data-keep-original-source", "keepOriginalSource"], ["data-measure-performance", "measurePerformance"], ["data-show-missing-icons", "showMissingIcons"]]; - attrs.forEach((_ref3) => { - let [attr, key] = _ref3; - const val = coerce(getAttrConfig(attr)); - if (val !== void 0 && val !== null) { - initial[key] = val; - } - }); - } - _default = { - styleDefault: "solid", - familyDefault: "classic", - cssPrefix: DEFAULT_CSS_PREFIX, - replacementClass: DEFAULT_REPLACEMENT_CLASS, - autoReplaceSvg: true, - autoAddCss: true, - autoA11y: true, - searchPseudoElements: false, - observeMutations: true, - mutateApproach: "async", - keepOriginalSource: true, - measurePerformance: false, - showMissingIcons: true - }; - if (initial.familyPrefix) { - initial.cssPrefix = initial.familyPrefix; - } - _config = { - ..._default, - ...initial - }; - if (!_config.autoReplaceSvg) _config.observeMutations = false; - config = {}; - Object.keys(_default).forEach((key) => { - Object.defineProperty(config, key, { - enumerable: true, - set: function(val) { - _config[key] = val; - _onChangeCb.forEach((cb) => cb(config)); - }, - get: function() { - return _config[key]; - } - }); - }); - Object.defineProperty(config, "familyPrefix", { - enumerable: true, - set: function(val) { - _config.cssPrefix = val; - _onChangeCb.forEach((cb) => cb(config)); - }, - get: function() { - return _config.cssPrefix; - } - }); - WINDOW.FontAwesomeConfig = config; - _onChangeCb = []; - d$2 = UNITS_IN_GRID; - meaninglessTransform = { - size: 16, - x: 0, - y: 0, - rotate: 0, - flipX: false, - flipY: false - }; - idPool = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - baseStyles = ':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-counter-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(-1 * var(--fa-li-width, 2em));\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n animation-delay: -1ms;\n animation-duration: 1ms;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}'; - _cssInserted = false; - InjectCSS = { - mixout() { - return { - dom: { - css: css5, - insertCss: ensureCss - } - }; - }, - hooks() { - return { - beforeDOMElementCreation() { - ensureCss(); - }, - beforeI2svg() { - ensureCss(); - } - }; - } - }; - w$1 = WINDOW || {}; - if (!w$1[NAMESPACE_IDENTIFIER]) w$1[NAMESPACE_IDENTIFIER] = {}; - if (!w$1[NAMESPACE_IDENTIFIER].styles) w$1[NAMESPACE_IDENTIFIER].styles = {}; - if (!w$1[NAMESPACE_IDENTIFIER].hooks) w$1[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w$1[NAMESPACE_IDENTIFIER].shims) w$1[NAMESPACE_IDENTIFIER].shims = []; - namespace = w$1[NAMESPACE_IDENTIFIER]; - functions = []; - listener = function() { - DOCUMENT.removeEventListener("DOMContentLoaded", listener); - loaded = 1; - functions.map((fn2) => fn2()); - }; - loaded = false; - if (IS_DOM) { - loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); - if (!loaded) DOCUMENT.addEventListener("DOMContentLoaded", listener); - } - bindInternal4 = function bindInternal42(func, thisContext) { - return function(a4, b3, c4, d3) { - return func.call(thisContext, a4, b3, c4, d3); - }; - }; - reduce = function fastReduceObject(subject, fn2, initialValue, thisContext) { - var keys = Object.keys(subject), length2 = keys.length, iterator = thisContext !== void 0 ? bindInternal4(fn2, thisContext) : fn2, i4, key, result; - if (initialValue === void 0) { - i4 = 1; - result = subject[keys[0]]; - } else { - i4 = 0; - result = initialValue; - } - for (; i4 < length2; i4++) { - key = keys[i4]; - result = iterator(result, subject[key], key, subject); - } - return result; - }; - ({ - styles, - shims - } = namespace); - LONG_STYLE = { - [a3]: Object.values(PREFIX_TO_LONG_STYLE[a3]), - [r3]: Object.values(PREFIX_TO_LONG_STYLE[r3]), - [o3]: Object.values(PREFIX_TO_LONG_STYLE[o3]) - }; - _defaultUsablePrefix = null; - _byUnicode = {}; - _byLigature = {}; - _byOldName = {}; - _byOldUnicode = {}; - _byAlias = {}; - PREFIXES = { - [a3]: Object.keys(PREFIX_TO_STYLE[a3]), - [r3]: Object.keys(PREFIX_TO_STYLE[r3]), - [o3]: Object.keys(PREFIX_TO_STYLE[o3]) - }; - build = () => { - const lookup = (reducer) => { - return reduce(styles, (o$$1, style, prefix2) => { - o$$1[prefix2] = reduce(style, reducer, {}); - return o$$1; - }, {}); - }; - _byUnicode = lookup((acc, icon2, iconName) => { - if (icon2[3]) { - acc[icon2[3]] = iconName; - } - if (icon2[2]) { - const aliases = icon2[2].filter((a$$1) => { - return typeof a$$1 === "number"; - }); - aliases.forEach((alias) => { - acc[alias.toString(16)] = iconName; - }); - } - return acc; - }); - _byLigature = lookup((acc, icon2, iconName) => { - acc[iconName] = iconName; - if (icon2[2]) { - const aliases = icon2[2].filter((a$$1) => { - return typeof a$$1 === "string"; - }); - aliases.forEach((alias) => { - acc[alias] = iconName; - }); - } - return acc; - }); - _byAlias = lookup((acc, icon2, iconName) => { - const aliases = icon2[2]; - acc[iconName] = iconName; - aliases.forEach((alias) => { - acc[alias] = iconName; - }); - return acc; - }); - const hasRegular = "far" in styles || config.autoFetchSvg; - const shimLookups = reduce(shims, (acc, shim) => { - const maybeNameMaybeUnicode = shim[0]; - let prefix2 = shim[1]; - const iconName = shim[2]; - if (prefix2 === "far" && !hasRegular) { - prefix2 = "fas"; - } - if (typeof maybeNameMaybeUnicode === "string") { - acc.names[maybeNameMaybeUnicode] = { - prefix: prefix2, - iconName - }; - } - if (typeof maybeNameMaybeUnicode === "number") { - acc.unicodes[maybeNameMaybeUnicode.toString(16)] = { - prefix: prefix2, - iconName - }; - } - return acc; - }, { - names: {}, - unicodes: {} - }); - _byOldName = shimLookups.names; - _byOldUnicode = shimLookups.unicodes; - _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, { - family: config.familyDefault - }); - }; - onChange2((c$$1) => { - _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, { - family: config.familyDefault - }); - }); - build(); - emptyCanonicalIcon = () => { - return { - prefix: null, - iconName: null, - rest: [] - }; - }; - PREFIXES_FOR_FAMILY = { - [a3]: Object.keys(PREFIX_TO_LONG_STYLE[a3]), - [r3]: Object.keys(PREFIX_TO_LONG_STYLE[r3]), - [o3]: Object.keys(PREFIX_TO_LONG_STYLE[o3]) - }; - Library = class { - constructor() { - this.definitions = {}; - } - add() { - for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) { - definitions[_key] = arguments[_key]; - } - const additions = definitions.reduce(this._pullDefinitions, {}); - Object.keys(additions).forEach((key) => { - this.definitions[key] = { - ...this.definitions[key] || {}, - ...additions[key] - }; - defineIcons(key, additions[key]); - const longPrefix = PREFIX_TO_LONG_STYLE[a3][key]; - if (longPrefix) defineIcons(longPrefix, additions[key]); - build(); - }); - } - reset() { - this.definitions = {}; - } - _pullDefinitions(additions, definition) { - const normalized = definition.prefix && definition.iconName && definition.icon ? { - 0: definition - } : definition; - Object.keys(normalized).map((key) => { - const { - prefix: prefix2, - iconName, - icon: icon2 - } = normalized[key]; - const aliases = icon2[2]; - if (!additions[prefix2]) additions[prefix2] = {}; - if (aliases.length > 0) { - aliases.forEach((alias) => { - if (typeof alias === "string") { - additions[prefix2][alias] = icon2; - } - }); - } - additions[prefix2][iconName] = icon2; - }); - return additions; - } - }; - _plugins = []; - _hooks = {}; - providers = {}; - defaultProviderKeys = Object.keys(providers); - library = new Library(); - noAuto = () => { - config.autoReplaceSvg = false; - config.observeMutations = false; - callHooks("noAuto"); - }; - dom = { - i2svg: function() { - let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - if (IS_DOM) { - callHooks("beforeI2svg", params); - callProvided("pseudoElements2svg", params); - return callProvided("i2svg", params); - } else { - return Promise.reject(new Error("Operation requires a DOM of some kind.")); - } - }, - watch: function() { - let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - const { - autoReplaceSvgRoot - } = params; - if (config.autoReplaceSvg === false) { - config.autoReplaceSvg = true; - } - config.observeMutations = true; - domready(() => { - autoReplace({ - autoReplaceSvgRoot - }); - callHooks("watch", params); - }); - } - }; - parse3 = { - icon: (icon2) => { - if (icon2 === null) { - return null; - } - if (typeof icon2 === "object" && icon2.prefix && icon2.iconName) { - return { - prefix: icon2.prefix, - iconName: byAlias(icon2.prefix, icon2.iconName) || icon2.iconName - }; - } - if (Array.isArray(icon2) && icon2.length === 2) { - const iconName = icon2[1].indexOf("fa-") === 0 ? icon2[1].slice(3) : icon2[1]; - const prefix2 = getCanonicalPrefix(icon2[0]); - return { - prefix: prefix2, - iconName: byAlias(prefix2, iconName) || iconName - }; - } - if (typeof icon2 === "string" && (icon2.indexOf("".concat(config.cssPrefix, "-")) > -1 || icon2.match(ICON_SELECTION_SYNTAX_PATTERN))) { - const canonicalIcon = getCanonicalIcon(icon2.split(" "), { - skipLookups: true - }); - return { - prefix: canonicalIcon.prefix || getDefaultUsablePrefix(), - iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName - }; - } - if (typeof icon2 === "string") { - const prefix2 = getDefaultUsablePrefix(); - return { - prefix: prefix2, - iconName: byAlias(prefix2, icon2) || icon2 - }; - } - } - }; - api = { - noAuto, - config, - dom, - parse: parse3, - library, - findIconDefinition, - toHtml - }; - autoReplace = function() { - let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - const { - autoReplaceSvgRoot = DOCUMENT - } = params; - if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ - node: autoReplaceSvgRoot - }); - }; - ({ - styles: styles$1 - } = namespace); - missingIconResolutionMixin = { - found: false, - width: 512, - height: 512 - }; - noop$1 = () => { - }; - p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { - mark: noop$1, - measure: noop$1 - }; - preamble = 'FA "6.6.0"'; - begin = (name) => { - p$2.mark("".concat(preamble, " ").concat(name, " begins")); - return () => end(name); - }; - end = (name) => { - p$2.mark("".concat(preamble, " ").concat(name, " ends")); - p$2.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends")); - }; - perf = { - begin, - end - }; - noop$2 = () => { - }; - mutators = { - replace: function(mutation) { - const node2 = mutation[0]; - if (node2.parentNode) { - mutation[1].forEach((abstract) => { - node2.parentNode.insertBefore(convertSVG(abstract), node2); - }); - if (node2.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) { - let comment2 = DOCUMENT.createComment(nodeAsComment(node2)); - node2.parentNode.replaceChild(comment2, node2); - } else { - node2.remove(); - } - } - }, - nest: function(mutation) { - const node2 = mutation[0]; - const abstract = mutation[1]; - if (~classArray(node2).indexOf(config.replacementClass)) { - return mutators.replace(mutation); - } - const forSvg = new RegExp("".concat(config.cssPrefix, "-.*")); - delete abstract[0].attributes.id; - if (abstract[0].attributes.class) { - const splitClasses = abstract[0].attributes.class.split(" ").reduce((acc, cls) => { - if (cls === config.replacementClass || cls.match(forSvg)) { - acc.toSvg.push(cls); - } else { - acc.toNode.push(cls); - } - return acc; - }, { - toNode: [], - toSvg: [] - }); - abstract[0].attributes.class = splitClasses.toSvg.join(" "); - if (splitClasses.toNode.length === 0) { - node2.removeAttribute("class"); - } else { - node2.setAttribute("class", splitClasses.toNode.join(" ")); - } - } - const newInnerHTML = abstract.map((a4) => toHtml(a4)).join("\n"); - node2.setAttribute(DATA_FA_I2SVG, ""); - node2.innerHTML = newInnerHTML; - } - }; - disabled = false; - mo$1 = null; - ({ - styles: styles$2 - } = namespace); - knownPrefixes = /* @__PURE__ */ new Set(); - FAMILIES.map((family) => { - knownPrefixes.add("fa-".concat(family)); - }); - Object.keys(PREFIX_TO_STYLE[a3]).map(knownPrefixes.add.bind(knownPrefixes)); - Object.keys(PREFIX_TO_STYLE[r3]).map(knownPrefixes.add.bind(knownPrefixes)); - Object.keys(PREFIX_TO_STYLE[o3]).map(knownPrefixes.add.bind(knownPrefixes)); - knownPrefixes = [...knownPrefixes]; - render = function(iconDefinition) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - transform: transform2 = meaninglessTransform, - symbol = false, - mask = null, - maskId = null, - title = null, - titleId = null, - classes = [], - attributes = {}, - styles: styles2 = {} - } = params; - if (!iconDefinition) return; - const { - prefix: prefix2, - iconName, - icon: icon2 - } = iconDefinition; - return domVariants({ - type: "icon", - ...iconDefinition - }, () => { - callHooks("beforeDOMElementCreation", { - iconDefinition, - params - }); - if (config.autoA11y) { - if (title) { - attributes["aria-labelledby"] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); - } else { - attributes["aria-hidden"] = "true"; - attributes["focusable"] = "false"; - } - } - return makeInlineSvgAbstract({ - icons: { - main: asFoundIcon(icon2), - mask: mask ? asFoundIcon(mask.icon) : { - found: false, - width: null, - height: null, - icon: {} - } - }, - prefix: prefix2, - iconName, - transform: { - ...meaninglessTransform, - ...transform2 - }, - symbol, - title, - maskId, - titleId, - extra: { - attributes, - styles: styles2, - classes - } - }); - }); - }; - ReplaceElements = { - mixout() { - return { - icon: resolveIcons(render) - }; - }, - hooks() { - return { - mutationObserverCallbacks(accumulator) { - accumulator.treeCallback = onTree; - accumulator.nodeCallback = onNode; - return accumulator; - } - }; - }, - provides(providers$$1) { - providers$$1.i2svg = function(params) { - const { - node: node2 = DOCUMENT, - callback = () => { - } - } = params; - return onTree(node2, callback); - }; - providers$$1.generateSvgReplacementMutation = function(node2, nodeMeta) { - const { - iconName, - title, - titleId, - prefix: prefix2, - transform: transform2, - symbol, - mask, - maskId, - extra - } = nodeMeta; - return new Promise((resolve, reject) => { - Promise.all([findIcon(iconName, prefix2), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({ - found: false, - width: 512, - height: 512, - icon: {} - })]).then((_ref3) => { - let [main, mask2] = _ref3; - resolve([node2, makeInlineSvgAbstract({ - icons: { - main, - mask: mask2 - }, - prefix: prefix2, - iconName, - transform: transform2, - symbol, - maskId, - title, - titleId, - extra, - watchable: true - })]); - }).catch(reject); - }); - }; - providers$$1.generateAbstractIcon = function(_ref23) { - let { - children, - attributes, - main, - transform: transform2, - styles: styles2 - } = _ref23; - const styleString = joinStyles(styles2); - if (styleString.length > 0) { - attributes["style"] = styleString; - } - let nextChild; - if (transformIsMeaningful(transform2)) { - nextChild = callProvided("generateAbstractTransformGrouping", { - main, - transform: transform2, - containerWidth: main.width, - iconWidth: main.width - }); - } - children.push(nextChild || main.icon); - return { - children, - attributes - }; - }; - } - }; - Layers = { - mixout() { - return { - layer(assembler) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - classes = [] - } = params; - return domVariants({ - type: "layer" - }, () => { - callHooks("beforeDOMElementCreation", { - assembler, - params - }); - let children = []; - assembler((args) => { - Array.isArray(args) ? args.map((a4) => { - children = children.concat(a4.abstract); - }) : children = children.concat(args.abstract); - }); - return [{ - tag: "span", - attributes: { - class: ["".concat(config.cssPrefix, "-layers"), ...classes].join(" ") - }, - children - }]; - }); - } - }; - } - }; - LayersCounter = { - mixout() { - return { - counter(content) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - title = null, - classes = [], - attributes = {}, - styles: styles2 = {} - } = params; - return domVariants({ - type: "counter", - content - }, () => { - callHooks("beforeDOMElementCreation", { - content, - params - }); - return makeLayersCounterAbstract({ - content: content.toString(), - title, - extra: { - attributes, - styles: styles2, - classes: ["".concat(config.cssPrefix, "-layers-counter"), ...classes] - } - }); - }); - } - }; - } - }; - LayersText = { - mixout() { - return { - text(content) { - let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const { - transform: transform2 = meaninglessTransform, - title = null, - classes = [], - attributes = {}, - styles: styles2 = {} - } = params; - return domVariants({ - type: "text", - content - }, () => { - callHooks("beforeDOMElementCreation", { - content, - params - }); - return makeLayersTextAbstract({ - content, - transform: { - ...meaninglessTransform, - ...transform2 - }, - title, - extra: { - attributes, - styles: styles2, - classes: ["".concat(config.cssPrefix, "-layers-text"), ...classes] - } - }); - }); - } - }; - }, - provides(providers$$1) { - providers$$1.generateLayersText = function(node2, nodeMeta) { - const { - title, - transform: transform2, - extra - } = nodeMeta; - let width = null; - let height = null; - if (IS_IE) { - const computedFontSize = parseInt(getComputedStyle(node2).fontSize, 10); - const boundingClientRect = node2.getBoundingClientRect(); - width = boundingClientRect.width / computedFontSize; - height = boundingClientRect.height / computedFontSize; - } - if (config.autoA11y && !title) { - extra.attributes["aria-hidden"] = "true"; - } - return Promise.resolve([node2, makeLayersTextAbstract({ - content: node2.innerHTML, - width, - height, - transform: transform2, - title, - extra, - watchable: true - })]); - }; - } - }; - CLEAN_CONTENT_PATTERN = new RegExp('"', "ug"); - SECONDARY_UNICODE_RANGE = [1105920, 1112319]; - _FONT_FAMILY_WEIGHT_TO_PREFIX = { - ...{ - FontAwesome: { - normal: "fas", - 400: "fas" - } - }, - ...eo, - ...ao, - ...mo - }; - FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => { - acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key]; - return acc; - }, {}); - FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => { - const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily]; - acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1]; - return acc; - }, {}); - PseudoElements = { - hooks() { - return { - mutationObserverCallbacks(accumulator) { - accumulator.pseudoElementsCallback = searchPseudoElements; - return accumulator; - } - }; - }, - provides(providers2) { - providers2.pseudoElements2svg = function(params) { - const { - node: node2 = DOCUMENT - } = params; - if (config.searchPseudoElements) { - searchPseudoElements(node2); - } - }; - } - }; - _unwatched = false; - MutationObserver$1 = { - mixout() { - return { - dom: { - unwatch() { - disableObservation(); - _unwatched = true; - } - } - }; - }, - hooks() { - return { - bootstrap() { - observe(chainHooks("mutationObserverCallbacks", {})); - }, - noAuto() { - disconnect(); - }, - watch(params) { - const { - observeMutationsRoot - } = params; - if (_unwatched) { - enableObservation(); - } else { - observe(chainHooks("mutationObserverCallbacks", { - observeMutationsRoot - })); - } - } - }; - } - }; - parseTransformString = (transformString) => { - let transform2 = { - size: 16, - x: 0, - y: 0, - flipX: false, - flipY: false, - rotate: 0 - }; - return transformString.toLowerCase().split(" ").reduce((acc, n3) => { - const parts = n3.toLowerCase().split("-"); - const first = parts[0]; - let rest = parts.slice(1).join("-"); - if (first && rest === "h") { - acc.flipX = true; - return acc; - } - if (first && rest === "v") { - acc.flipY = true; - return acc; - } - rest = parseFloat(rest); - if (isNaN(rest)) { - return acc; - } - switch (first) { - case "grow": - acc.size = acc.size + rest; - break; - case "shrink": - acc.size = acc.size - rest; - break; - case "left": - acc.x = acc.x - rest; - break; - case "right": - acc.x = acc.x + rest; - break; - case "up": - acc.y = acc.y - rest; - break; - case "down": - acc.y = acc.y + rest; - break; - case "rotate": - acc.rotate = acc.rotate + rest; - break; - } - return acc; - }, transform2); - }; - PowerTransforms = { - mixout() { - return { - parse: { - transform: (transformString) => { - return parseTransformString(transformString); - } - } - }; - }, - hooks() { - return { - parseNodeAttributes(accumulator, node2) { - const transformString = node2.getAttribute("data-fa-transform"); - if (transformString) { - accumulator.transform = parseTransformString(transformString); - } - return accumulator; - } - }; - }, - provides(providers2) { - providers2.generateAbstractTransformGrouping = function(_ref3) { - let { - main, - transform: transform2, - containerWidth, - iconWidth - } = _ref3; - const outer = { - transform: "translate(".concat(containerWidth / 2, " 256)") - }; - const innerTranslate = "translate(".concat(transform2.x * 32, ", ").concat(transform2.y * 32, ") "); - const innerScale = "scale(".concat(transform2.size / 16 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / 16 * (transform2.flipY ? -1 : 1), ") "); - const innerRotate = "rotate(".concat(transform2.rotate, " 0 0)"); - const inner = { - transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) - }; - const path = { - transform: "translate(".concat(iconWidth / 2 * -1, " -256)") - }; - const operations = { - outer, - inner, - path - }; - return { - tag: "g", - attributes: { - ...operations.outer - }, - children: [{ - tag: "g", - attributes: { - ...operations.inner - }, - children: [{ - tag: main.icon.tag, - children: main.icon.children, - attributes: { - ...main.icon.attributes, - ...operations.path - } - }] - }] - }; - }; - } - }; - ALL_SPACE = { - x: 0, - y: 0, - width: "100%", - height: "100%" - }; - Masks = { - hooks() { - return { - parseNodeAttributes(accumulator, node2) { - const maskData = node2.getAttribute("data-fa-mask"); - const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(" ").map((i4) => i4.trim())); - if (!mask.prefix) { - mask.prefix = getDefaultUsablePrefix(); - } - accumulator.mask = mask; - accumulator.maskId = node2.getAttribute("data-fa-mask-id"); - return accumulator; - } - }; - }, - provides(providers2) { - providers2.generateAbstractMask = function(_ref3) { - let { - children, - attributes, - main, - mask, - maskId: explicitMaskId, - transform: transform2 - } = _ref3; - const { - width: mainWidth, - icon: mainPath - } = main; - const { - width: maskWidth, - icon: maskPath - } = mask; - const trans = transformForSvg({ - transform: transform2, - containerWidth: maskWidth, - iconWidth: mainWidth - }); - const maskRect = { - tag: "rect", - attributes: { - ...ALL_SPACE, - fill: "white" - } - }; - const maskInnerGroupChildrenMixin = mainPath.children ? { - children: mainPath.children.map(fillBlack) - } : {}; - const maskInnerGroup = { - tag: "g", - attributes: { - ...trans.inner - }, - children: [fillBlack({ - tag: mainPath.tag, - attributes: { - ...mainPath.attributes, - ...trans.path - }, - ...maskInnerGroupChildrenMixin - })] - }; - const maskOuterGroup = { - tag: "g", - attributes: { - ...trans.outer - }, - children: [maskInnerGroup] - }; - const maskId = "mask-".concat(explicitMaskId || nextUniqueId()); - const clipId = "clip-".concat(explicitMaskId || nextUniqueId()); - const maskTag = { - tag: "mask", - attributes: { - ...ALL_SPACE, - id: maskId, - maskUnits: "userSpaceOnUse", - maskContentUnits: "userSpaceOnUse" - }, - children: [maskRect, maskOuterGroup] - }; - const defs = { - tag: "defs", - children: [{ - tag: "clipPath", - attributes: { - id: clipId - }, - children: deGroup(maskPath) - }, maskTag] - }; - children.push(defs, { - tag: "rect", - attributes: { - fill: "currentColor", - "clip-path": "url(#".concat(clipId, ")"), - mask: "url(#".concat(maskId, ")"), - ...ALL_SPACE - } - }); - return { - children, - attributes - }; - }; - } - }; - MissingIconIndicator = { - provides(providers2) { - let reduceMotion = false; - if (WINDOW.matchMedia) { - reduceMotion = WINDOW.matchMedia("(prefers-reduced-motion: reduce)").matches; - } - providers2.missingIconAbstract = function() { - const gChildren = []; - const FILL = { - fill: "currentColor" - }; - const ANIMATION_BASE = { - attributeType: "XML", - repeatCount: "indefinite", - dur: "2s" - }; - gChildren.push({ - tag: "path", - attributes: { - ...FILL, - d: "M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z" - } - }); - const OPACITY_ANIMATE = { - ...ANIMATION_BASE, - attributeName: "opacity" - }; - const dot = { - tag: "circle", - attributes: { - ...FILL, - cx: "256", - cy: "364", - r: "28" - }, - children: [] - }; - if (!reduceMotion) { - dot.children.push({ - tag: "animate", - attributes: { - ...ANIMATION_BASE, - attributeName: "r", - values: "28;14;28;28;14;28;" - } - }, { - tag: "animate", - attributes: { - ...OPACITY_ANIMATE, - values: "1;0;1;1;0;1;" - } - }); - } - gChildren.push(dot); - gChildren.push({ - tag: "path", - attributes: { - ...FILL, - opacity: "1", - d: "M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z" - }, - children: reduceMotion ? [] : [{ - tag: "animate", - attributes: { - ...OPACITY_ANIMATE, - values: "1;0;0;0;0;1;" - } - }] - }); - if (!reduceMotion) { - gChildren.push({ - tag: "path", - attributes: { - ...FILL, - opacity: "0", - d: "M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z" - }, - children: [{ - tag: "animate", - attributes: { - ...OPACITY_ANIMATE, - values: "0;0;1;1;0;0;" - } - }] - }); - } - return { - tag: "g", - attributes: { - "class": "missing" - }, - children: gChildren - }; - }; - } - }; - SvgSymbols = { - hooks() { - return { - parseNodeAttributes(accumulator, node2) { - const symbolData = node2.getAttribute("data-fa-symbol"); - const symbol = symbolData === null ? false : symbolData === "" ? true : symbolData; - accumulator["symbol"] = symbol; - return accumulator; - } - }; - } - }; - plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols]; - registerPlugins(plugins, { - mixoutsTo: api - }); - noAuto$1 = api.noAuto; - config$1 = api.config; - library$1 = api.library; - dom$1 = api.dom; - parse$1 = api.parse; - findIconDefinition$1 = api.findIconDefinition; - toHtml$1 = api.toHtml; - icon = api.icon; - layer = api.layer; - text = api.text; - counter = api.counter; - } -}); - // node_modules/object-assign/index.js var require_object_assign = __commonJS({ - "node_modules/object-assign/index.js"(exports2, module2) { + "node_modules/object-assign/index.js"(exports, module2) { "use strict"; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty2 = Object.prototype.hasOwnProperty; @@ -29159,7 +3339,7 @@ var require_object_assign = __commonJS({ // node_modules/prop-types/lib/ReactPropTypesSecret.js var require_ReactPropTypesSecret = __commonJS({ - "node_modules/prop-types/lib/ReactPropTypesSecret.js"(exports2, module2) { + "node_modules/prop-types/lib/ReactPropTypesSecret.js"(exports, module2) { "use strict"; var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; module2.exports = ReactPropTypesSecret; @@ -29168,18 +3348,18 @@ var require_ReactPropTypesSecret = __commonJS({ // node_modules/prop-types/lib/has.js var require_has = __commonJS({ - "node_modules/prop-types/lib/has.js"(exports2, module2) { + "node_modules/prop-types/lib/has.js"(exports, module2) { module2.exports = Function.call.bind(Object.prototype.hasOwnProperty); } }); // node_modules/prop-types/checkPropTypes.js var require_checkPropTypes = __commonJS({ - "node_modules/prop-types/checkPropTypes.js"(exports2, module2) { + "node_modules/prop-types/checkPropTypes.js"(exports, module2) { "use strict"; var printWarning = function() { }; - if (process.env.NODE_ENV !== "production") { + if (true) { ReactPropTypesSecret = require_ReactPropTypesSecret(); loggedTypeFailures = {}; has = require_has(); @@ -29198,7 +3378,7 @@ var require_checkPropTypes = __commonJS({ var loggedTypeFailures; var has; function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== "production") { + if (true) { for (var typeSpecName in typeSpecs) { if (has(typeSpecs, typeSpecName)) { var error; @@ -29231,7 +3411,7 @@ var require_checkPropTypes = __commonJS({ } } checkPropTypes.resetWarningCache = function() { - if (process.env.NODE_ENV !== "production") { + if (true) { loggedTypeFailures = {}; } }; @@ -29241,7 +3421,7 @@ var require_checkPropTypes = __commonJS({ // node_modules/prop-types/factoryWithTypeCheckers.js var require_factoryWithTypeCheckers = __commonJS({ - "node_modules/prop-types/factoryWithTypeCheckers.js"(exports2, module2) { + "node_modules/prop-types/factoryWithTypeCheckers.js"(exports, module2) { "use strict"; var ReactIs = require_react_is(); var assign2 = require_object_assign(); @@ -29250,7 +3430,7 @@ var require_factoryWithTypeCheckers = __commonJS({ var checkPropTypes = require_checkPropTypes(); var printWarning = function() { }; - if (process.env.NODE_ENV !== "production") { + if (true) { printWarning = function(text2) { var message = "Warning: " + text2; if (typeof console !== "undefined") { @@ -29310,7 +3490,7 @@ var require_factoryWithTypeCheckers = __commonJS({ } PropTypeError.prototype = Error.prototype; function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== "production") { + if (true) { var manualPropTypeCallCache = {}; var manualPropTypeWarningCount = 0; } @@ -29324,7 +3504,7 @@ var require_factoryWithTypeCheckers = __commonJS({ ); err.name = "Invariant Violation"; throw err; - } else if (process.env.NODE_ENV !== "production" && typeof console !== "undefined") { + } else if (typeof console !== "undefined") { var cacheKey = componentName + ":" + propName; if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors manualPropTypeWarningCount < 3) { @@ -29425,7 +3605,7 @@ var require_factoryWithTypeCheckers = __commonJS({ } function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { - if (process.env.NODE_ENV !== "production") { + if (true) { if (arguments.length > 1) { printWarning( "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])." @@ -29478,7 +3658,7 @@ var require_factoryWithTypeCheckers = __commonJS({ } function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== "production" ? printWarning("Invalid argument supplied to oneOfType, expected an instance of array.") : void 0; + true ? printWarning("Invalid argument supplied to oneOfType, expected an instance of array.") : void 0; return emptyFunctionThatReturnsNull; } for (var i4 = 0; i4 < arrayOfTypeCheckers.length; i4++) { @@ -29682,412 +3862,26 @@ var require_factoryWithTypeCheckers = __commonJS({ } }); -// node_modules/prop-types/factoryWithThrowingShims.js -var require_factoryWithThrowingShims = __commonJS({ - "node_modules/prop-types/factoryWithThrowingShims.js"(exports2, module2) { - "use strict"; - var ReactPropTypesSecret = require_ReactPropTypesSecret(); - function emptyFunction() { - } - function emptyFunctionWithReset() { - } - emptyFunctionWithReset.resetWarningCache = emptyFunction; - module2.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - return; - } - var err = new Error( - "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types" - ); - err.name = "Invariant Violation"; - throw err; - } - ; - shim.isRequired = shim; - function getShim() { - return shim; - } - ; - var ReactPropTypes = { - array: shim, - bigint: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - any: shim, - arrayOf: getShim, - element: shim, - elementType: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim, - checkPropTypes: emptyFunctionWithReset, - resetWarningCache: emptyFunction - }; - ReactPropTypes.PropTypes = ReactPropTypes; - return ReactPropTypes; - }; - } -}); - // node_modules/prop-types/index.js var require_prop_types = __commonJS({ - "node_modules/prop-types/index.js"(exports2, module2) { - if (process.env.NODE_ENV !== "production") { + "node_modules/prop-types/index.js"(exports, module2) { + if (true) { ReactIs = require_react_is(); throwOnDirectAccess = true; module2.exports = require_factoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess); } else { - module2.exports = require_factoryWithThrowingShims()(); + module2.exports = null(); } var ReactIs; var throwOnDirectAccess; } }); -// node_modules/@fortawesome/react-fontawesome/index.js -var require_react_fontawesome = __commonJS({ - "node_modules/@fortawesome/react-fontawesome/index.js"(exports2, module2) { - (function(global2, factory) { - typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2, (init_fontawesome_svg_core(), __toCommonJS(fontawesome_svg_core_exports)), require_prop_types(), require_compat()) : typeof define === "function" && define.amd ? define(["exports", "@fortawesome/fontawesome-svg-core", "prop-types", "react"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2["react-fontawesome"] = {}, global2.FontAwesome, global2.PropTypes, global2.React)); - })(exports2, function(exports3, fontawesomeSvgCore, PropTypes, React) { - "use strict"; - function _interopDefaultLegacy(e3) { - return e3 && typeof e3 === "object" && "default" in e3 ? e3 : { "default": e3 }; - } - var PropTypes__default = /* @__PURE__ */ _interopDefaultLegacy(PropTypes); - var React__default = /* @__PURE__ */ _interopDefaultLegacy(React); - function ownKeys2(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; - } - function _objectSpread22(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = null != arguments[i4] ? arguments[i4] : {}; - i4 % 2 ? ownKeys2(Object(source), true).forEach(function(key) { - _defineProperty2(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; - } - function _typeof2(obj) { - "@babel/helpers - typeof"; - return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { - return typeof obj2; - } : function(obj2) { - return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }, _typeof2(obj); - } - function _defineProperty2(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - function _objectWithoutPropertiesLoose2(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i4; - for (i4 = 0; i4 < sourceKeys.length; i4++) { - key = sourceKeys[i4]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; - } - function _objectWithoutProperties2(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose2(source, excluded); - var key, i4; - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i4 = 0; i4 < sourceSymbolKeys.length; i4++) { - key = sourceSymbolKeys[i4]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; - } - function _toConsumableArray2(arr) { - return _arrayWithoutHoles2(arr) || _iterableToArray2(arr) || _unsupportedIterableToArray2(arr) || _nonIterableSpread2(); - } - function _arrayWithoutHoles2(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray2(arr); - } - function _iterableToArray2(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); - } - function _unsupportedIterableToArray2(o4, minLen) { - if (!o4) return; - if (typeof o4 === "string") return _arrayLikeToArray2(o4, minLen); - var n3 = Object.prototype.toString.call(o4).slice(8, -1); - if (n3 === "Object" && o4.constructor) n3 = o4.constructor.name; - if (n3 === "Map" || n3 === "Set") return Array.from(o4); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) return _arrayLikeToArray2(o4, minLen); - } - function _arrayLikeToArray2(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++) arr2[i4] = arr[i4]; - return arr2; - } - function _nonIterableSpread2() { - 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 classList(props) { - var _classes; - var beat = props.beat, fade = props.fade, beatFade = props.beatFade, bounce = props.bounce, shake = props.shake, flash = props.flash, spin = props.spin, spinPulse = props.spinPulse, spinReverse = props.spinReverse, pulse = props.pulse, fixedWidth = props.fixedWidth, inverse = props.inverse, border = props.border, listItem = props.listItem, flip2 = props.flip, size2 = props.size, rotation = props.rotation, pull = props.pull; - var classes = (_classes = { - "fa-beat": beat, - "fa-fade": fade, - "fa-beat-fade": beatFade, - "fa-bounce": bounce, - "fa-shake": shake, - "fa-flash": flash, - "fa-spin": spin, - "fa-spin-reverse": spinReverse, - "fa-spin-pulse": spinPulse, - "fa-pulse": pulse, - "fa-fw": fixedWidth, - "fa-inverse": inverse, - "fa-border": border, - "fa-li": listItem, - "fa-flip": flip2 === true, - "fa-flip-horizontal": flip2 === "horizontal" || flip2 === "both", - "fa-flip-vertical": flip2 === "vertical" || flip2 === "both" - }, _defineProperty2(_classes, "fa-".concat(size2), typeof size2 !== "undefined" && size2 !== null), _defineProperty2(_classes, "fa-rotate-".concat(rotation), typeof rotation !== "undefined" && rotation !== null && rotation !== 0), _defineProperty2(_classes, "fa-pull-".concat(pull), typeof pull !== "undefined" && pull !== null), _defineProperty2(_classes, "fa-swap-opacity", props.swapOpacity), _classes); - return Object.keys(classes).map(function(key) { - return classes[key] ? key : null; - }).filter(function(key) { - return key; - }); - } - function _isNumerical(obj) { - obj = obj - 0; - return obj === obj; - } - function camelize(string2) { - if (_isNumerical(string2)) { - return string2; - } - string2 = string2.replace(/[\-_\s]+(.)?/g, function(match3, chr) { - return chr ? chr.toUpperCase() : ""; - }); - return string2.substr(0, 1).toLowerCase() + string2.substr(1); - } - var _excluded5 = ["style"]; - function capitalize(val) { - return val.charAt(0).toUpperCase() + val.slice(1); - } - function styleToObject(style) { - return style.split(";").map(function(s4) { - return s4.trim(); - }).filter(function(s4) { - return s4; - }).reduce(function(acc, pair) { - var i4 = pair.indexOf(":"); - var prop = camelize(pair.slice(0, i4)); - var value = pair.slice(i4 + 1).trim(); - prop.startsWith("webkit") ? acc[capitalize(prop)] = value : acc[prop] = value; - return acc; - }, {}); - } - function convert2(createElement2, element) { - var extraProps = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - if (typeof element === "string") { - return element; - } - var children = (element.children || []).map(function(child) { - return convert2(createElement2, child); - }); - var mixins = Object.keys(element.attributes || {}).reduce(function(acc, key) { - var val = element.attributes[key]; - switch (key) { - case "class": - acc.attrs["className"] = val; - delete element.attributes["class"]; - break; - case "style": - acc.attrs["style"] = styleToObject(val); - break; - default: - if (key.indexOf("aria-") === 0 || key.indexOf("data-") === 0) { - acc.attrs[key.toLowerCase()] = val; - } else { - acc.attrs[camelize(key)] = val; - } - } - return acc; - }, { - attrs: {} - }); - var _extraProps$style = extraProps.style, existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style, remaining = _objectWithoutProperties2(extraProps, _excluded5); - mixins.attrs["style"] = _objectSpread22(_objectSpread22({}, mixins.attrs["style"]), existingStyle); - return createElement2.apply(void 0, [element.tag, _objectSpread22(_objectSpread22({}, mixins.attrs), remaining)].concat(_toConsumableArray2(children))); - } - var PRODUCTION2 = false; - try { - PRODUCTION2 = process.env.NODE_ENV === "production"; - } catch (e3) { - } - function log() { - if (!PRODUCTION2 && console && typeof console.error === "function") { - var _console; - (_console = console).error.apply(_console, arguments); - } - } - function normalizeIconArgs(icon2) { - if (icon2 && _typeof2(icon2) === "object" && icon2.prefix && icon2.iconName && icon2.icon) { - return icon2; - } - if (fontawesomeSvgCore.parse.icon) { - return fontawesomeSvgCore.parse.icon(icon2); - } - if (icon2 === null) { - return null; - } - if (icon2 && _typeof2(icon2) === "object" && icon2.prefix && icon2.iconName) { - return icon2; - } - if (Array.isArray(icon2) && icon2.length === 2) { - return { - prefix: icon2[0], - iconName: icon2[1] - }; - } - if (typeof icon2 === "string") { - return { - prefix: "fas", - iconName: icon2 - }; - } - } - function objectWithKey(key, value) { - return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty2({}, key, value) : {}; - } - var defaultProps2 = { - border: false, - className: "", - mask: null, - maskId: null, - fixedWidth: false, - inverse: false, - flip: false, - icon: null, - listItem: false, - pull: null, - pulse: false, - rotation: null, - size: null, - spin: false, - spinPulse: false, - spinReverse: false, - beat: false, - fade: false, - beatFade: false, - bounce: false, - shake: false, - symbol: false, - title: "", - titleId: null, - transform: null, - swapOpacity: false - }; - var FontAwesomeIcon2 = /* @__PURE__ */ React__default["default"].forwardRef(function(props, ref) { - var allProps = _objectSpread22(_objectSpread22({}, defaultProps2), props); - var iconArgs = allProps.icon, maskArgs = allProps.mask, symbol = allProps.symbol, className = allProps.className, title = allProps.title, titleId = allProps.titleId, maskId = allProps.maskId; - var iconLookup = normalizeIconArgs(iconArgs); - var classes = objectWithKey("classes", [].concat(_toConsumableArray2(classList(allProps)), _toConsumableArray2((className || "").split(" ")))); - var transform2 = objectWithKey("transform", typeof allProps.transform === "string" ? fontawesomeSvgCore.parse.transform(allProps.transform) : allProps.transform); - var mask = objectWithKey("mask", normalizeIconArgs(maskArgs)); - var renderedIcon = fontawesomeSvgCore.icon(iconLookup, _objectSpread22(_objectSpread22(_objectSpread22(_objectSpread22({}, classes), transform2), mask), {}, { - symbol, - title, - titleId, - maskId - })); - if (!renderedIcon) { - log("Could not find icon", iconLookup); - return null; - } - var abstract = renderedIcon.abstract; - var extraProps = { - ref - }; - Object.keys(allProps).forEach(function(key) { - if (!defaultProps2.hasOwnProperty(key)) { - extraProps[key] = allProps[key]; - } - }); - return convertCurry(abstract[0], extraProps); - }); - FontAwesomeIcon2.displayName = "FontAwesomeIcon"; - FontAwesomeIcon2.propTypes = { - beat: PropTypes__default["default"].bool, - border: PropTypes__default["default"].bool, - beatFade: PropTypes__default["default"].bool, - bounce: PropTypes__default["default"].bool, - className: PropTypes__default["default"].string, - fade: PropTypes__default["default"].bool, - flash: PropTypes__default["default"].bool, - mask: PropTypes__default["default"].oneOfType([PropTypes__default["default"].object, PropTypes__default["default"].array, PropTypes__default["default"].string]), - maskId: PropTypes__default["default"].string, - fixedWidth: PropTypes__default["default"].bool, - inverse: PropTypes__default["default"].bool, - flip: PropTypes__default["default"].oneOf([true, false, "horizontal", "vertical", "both"]), - icon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].object, PropTypes__default["default"].array, PropTypes__default["default"].string]), - listItem: PropTypes__default["default"].bool, - pull: PropTypes__default["default"].oneOf(["right", "left"]), - pulse: PropTypes__default["default"].bool, - rotation: PropTypes__default["default"].oneOf([0, 90, 180, 270]), - shake: PropTypes__default["default"].bool, - size: PropTypes__default["default"].oneOf(["2xs", "xs", "sm", "lg", "xl", "2xl", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x"]), - spin: PropTypes__default["default"].bool, - spinPulse: PropTypes__default["default"].bool, - spinReverse: PropTypes__default["default"].bool, - symbol: PropTypes__default["default"].oneOfType([PropTypes__default["default"].bool, PropTypes__default["default"].string]), - title: PropTypes__default["default"].string, - titleId: PropTypes__default["default"].string, - transform: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]), - swapOpacity: PropTypes__default["default"].bool - }; - var convertCurry = convert2.bind(null, React__default["default"].createElement); - exports3.FontAwesomeIcon = FontAwesomeIcon2; - Object.defineProperty(exports3, "__esModule", { value: true }); - }); - } -}); - // node_modules/sorted-btree/b+tree.js var require_b_tree = __commonJS({ - "node_modules/sorted-btree/b+tree.js"(exports2) { + "node_modules/sorted-btree/b+tree.js"(exports) { "use strict"; - var __extends = exports2 && exports2.__extends || /* @__PURE__ */ function() { + var __extends = exports && exports.__extends || /* @__PURE__ */ function() { var extendStatics = function(d3, b3) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) { d4.__proto__ = b4; @@ -30106,8 +3900,8 @@ var require_b_tree = __commonJS({ d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); }; }(); - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.EmptyBTree = exports2.asSet = exports2.simpleComparator = exports2.defaultComparator = void 0; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.EmptyBTree = exports.asSet = exports.simpleComparator = exports.defaultComparator = void 0; function defaultComparator(a4, b3) { if (Number.isFinite(a4) && Number.isFinite(b3)) { return a4 - b3; @@ -30142,11 +3936,11 @@ var require_b_tree = __commonJS({ return 1; return Array.isArray(a4) ? 0 : Number.NaN; } - exports2.defaultComparator = defaultComparator; + exports.defaultComparator = defaultComparator; function simpleComparator(a4, b3) { return a4 > b3 ? 1 : a4 < b3 ? -1 : 0; } - exports2.simpleComparator = simpleComparator; + exports.simpleComparator = simpleComparator; var BTree2 = ( /** @class */ function() { @@ -30266,9 +4060,9 @@ var require_b_tree = __commonJS({ }; BTree3.prototype.reduce = function(callback, initialValue) { var i4 = 0, p3 = initialValue; - var it = this.entries(this.minKey(), ReusedArray), next2; - while (!(next2 = it.next()).done) - p3 = callback(p3, next2.value, i4++, this); + var it = this.entries(this.minKey(), ReusedArray), next3; + while (!(next3 = it.next()).done) + p3 = callback(p3, next3.value, i4++, this); return p3; }; BTree3.prototype.entries = function(lowestKey, reusedArray) { @@ -30276,26 +4070,26 @@ var require_b_tree = __commonJS({ if (info === void 0) return iterator(); var nodequeue = info.nodequeue, nodeindex = info.nodeindex, leaf = info.leaf; - var state = reusedArray !== void 0 ? 1 : 0; + var state2 = reusedArray !== void 0 ? 1 : 0; var i4 = lowestKey === void 0 ? -1 : leaf.indexOf(lowestKey, 0, this._compare) - 1; return iterator(function() { jump: for (; ; ) { - switch (state) { + switch (state2) { case 0: if (++i4 < leaf.keys.length) return { done: false, value: [leaf.keys[i4], leaf.values[i4]] }; - state = 2; + state2 = 2; continue; case 1: if (++i4 < leaf.keys.length) { reusedArray[0] = leaf.keys[i4], reusedArray[1] = leaf.values[i4]; return { done: false, value: reusedArray }; } - state = 2; + state2 = 2; case 2: for (var level = -1; ; ) { if (++level >= nodequeue.length) { - state = 3; + state2 = 3; continue jump; } if (++nodeindex[level] < nodequeue[level].length) @@ -30307,7 +4101,7 @@ var require_b_tree = __commonJS({ } leaf = nodequeue[0][nodeindex[0]]; i4 = -1; - state = reusedArray !== void 0 ? 1 : 0; + state2 = reusedArray !== void 0 ? 1 : 0; continue; case 3: return { done: true, value: void 0 }; @@ -30327,25 +4121,25 @@ var require_b_tree = __commonJS({ var i4 = leaf.indexOf(highestKey, 0, this._compare); if (!skipHighest && i4 < leaf.keys.length && this._compare(leaf.keys[i4], highestKey) <= 0) i4++; - var state = reusedArray !== void 0 ? 1 : 0; + var state2 = reusedArray !== void 0 ? 1 : 0; return iterator(function() { jump: for (; ; ) { - switch (state) { + switch (state2) { case 0: if (--i4 >= 0) return { done: false, value: [leaf.keys[i4], leaf.values[i4]] }; - state = 2; + state2 = 2; continue; case 1: if (--i4 >= 0) { reusedArray[0] = leaf.keys[i4], reusedArray[1] = leaf.values[i4]; return { done: false, value: reusedArray }; } - state = 2; + state2 = 2; case 2: for (var level = -1; ; ) { if (++level >= nodequeue.length) { - state = 3; + state2 = 3; continue jump; } if (--nodeindex[level] >= 0) @@ -30357,7 +4151,7 @@ var require_b_tree = __commonJS({ } leaf = nodequeue[0][nodeindex[0]]; i4 = leaf.keys.length; - state = reusedArray !== void 0 ? 1 : 0; + state2 = reusedArray !== void 0 ? 1 : 0; continue; case 3: return { done: true, value: void 0 }; @@ -30719,8 +4513,8 @@ var require_b_tree = __commonJS({ configurable: true }); BTree3.prototype.freeze = function() { - var t4 = this; - t4.clear = t4.set = t4.editRange = function() { + var t5 = this; + t5.clear = t5.set = t5.editRange = function() { throw new Error("Attempted to modify a frozen BTree"); }; }; @@ -30744,23 +4538,23 @@ var require_b_tree = __commonJS({ return BTree3; }() ); - exports2.default = BTree2; + exports.default = BTree2; function asSet(btree) { return btree; } - exports2.asSet = asSet; + exports.asSet = asSet; if (Symbol && Symbol.iterator) BTree2.prototype[Symbol.iterator] = BTree2.prototype.entries; BTree2.prototype.where = BTree2.prototype.filter; BTree2.prototype.setRange = BTree2.prototype.setPairs; BTree2.prototype.add = BTree2.prototype.set; - function iterator(next2) { - if (next2 === void 0) { - next2 = function() { + function iterator(next3) { + if (next3 === void 0) { + next3 = function() { return { done: true, value: void 0 }; }; } - var result = { next: next2 }; + var result = { next: next3 }; if (Symbol && Symbol.iterator) result[Symbol.iterator] = function() { return this; @@ -31225,19 +5019,19 @@ var require_b_tree = __commonJS({ throw new Error(args.join(" ")); } } - exports2.EmptyBTree = function() { - var t4 = new BTree2(); - t4.freeze(); - return t4; + exports.EmptyBTree = function() { + var t5 = new BTree2(); + t5.freeze(); + return t5; }(); } }); // node_modules/localforage/dist/localforage.js var require_localforage = __commonJS({ - "node_modules/localforage/dist/localforage.js"(exports2, module2) { + "node_modules/localforage/dist/localforage.js"(exports, module2) { (function(f4) { - if (typeof exports2 === "object" && typeof module2 !== "undefined") { + if (typeof exports === "object" && typeof module2 !== "undefined") { module2.exports = f4(); } else if (typeof define === "function" && define.amd) { define([], f4); @@ -31255,11 +5049,11 @@ var require_localforage = __commonJS({ g4.localforage = f4(); } })(function() { - var define2, module3, exports3; - return function e3(t4, n3, r4) { + var define2, module3, exports2; + return function e3(t5, n3, r4) { function s4(o5, u4) { if (!n3[o5]) { - if (!t4[o5]) { + if (!t5[o5]) { var a4 = typeof require == "function" && require; if (!u4 && a4) return a4(o5, true); if (i4) return i4(o5, true); @@ -31267,17 +5061,17 @@ var require_localforage = __commonJS({ throw f4.code = "MODULE_NOT_FOUND", f4; } var l4 = n3[o5] = { exports: {} }; - t4[o5][0].call(l4.exports, function(e4) { - var n4 = t4[o5][1][e4]; + t5[o5][0].call(l4.exports, function(e4) { + var n4 = t5[o5][1][e4]; return s4(n4 ? n4 : e4); - }, l4, l4.exports, e3, t4, n3, r4); + }, l4, l4.exports, e3, t5, n3, r4); } return n3[o5].exports; } var i4 = typeof require == "function" && require; for (var o4 = 0; o4 < r4.length; o4++) s4(r4[o4]); return s4; - }({ 1: [function(_dereq_, module4, exports4) { + }({ 1: [function(_dereq_, module4, exports3) { (function(global2) { "use strict"; var Mutation = global2.MutationObserver || global2.WebKitMutationObserver; @@ -31340,7 +5134,7 @@ var require_localforage = __commonJS({ } } }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 2: [function(_dereq_, module4, exports4) { + }, {}], 2: [function(_dereq_, module4, exports3) { "use strict"; var immediate = _dereq_(1); function INTERNAL() { @@ -31565,16 +5359,16 @@ var require_localforage = __commonJS({ }); } } - }, { "1": 1 }], 3: [function(_dereq_, module4, exports4) { + }, { "1": 1 }], 3: [function(_dereq_, module4, exports3) { (function(global2) { "use strict"; if (typeof global2.Promise !== "function") { global2.Promise = _dereq_(2); } }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, { "2": 2 }], 4: [function(_dereq_, module4, exports4) { + }, { "2": 2 }], 4: [function(_dereq_, module4, exports3) { "use strict"; - var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { + var _typeof3 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { return typeof obj; } : function(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; @@ -32547,8 +6341,8 @@ var require_localforage = __commonJS({ stringToBuffer, bufferToString }; - function createDbTable(t4, dbInfo, callback, errorCallback) { - t4.executeSql("CREATE TABLE IF NOT EXISTS " + dbInfo.storeName + " (id INTEGER PRIMARY KEY, key unique, value)", [], callback, errorCallback); + function createDbTable(t5, dbInfo, callback, errorCallback) { + t5.executeSql("CREATE TABLE IF NOT EXISTS " + dbInfo.storeName + " (id INTEGER PRIMARY KEY, key unique, value)", [], callback, errorCallback); } function _initStorage$1(options2) { var self2 = this; @@ -32566,11 +6360,11 @@ var require_localforage = __commonJS({ } catch (e3) { return reject(e3); } - dbInfo.db.transaction(function(t4) { - createDbTable(t4, dbInfo, function() { + dbInfo.db.transaction(function(t5) { + createDbTable(t5, dbInfo, function() { self2._dbInfo = dbInfo; resolve(); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }, reject); @@ -32578,20 +6372,20 @@ var require_localforage = __commonJS({ dbInfo.serializer = localforageSerializer; return dbInfoPromise; } - function tryExecuteSql(t4, dbInfo, sqlStatement, args, callback, errorCallback) { - t4.executeSql(sqlStatement, args, callback, function(t5, error) { + function tryExecuteSql(t5, dbInfo, sqlStatement, args, callback, errorCallback) { + t5.executeSql(sqlStatement, args, callback, function(t6, error) { if (error.code === error.SYNTAX_ERR) { - t5.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?", [dbInfo.storeName], function(t6, results) { + t6.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?", [dbInfo.storeName], function(t7, results) { if (!results.rows.length) { - createDbTable(t6, dbInfo, function() { - t6.executeSql(sqlStatement, args, callback, errorCallback); + createDbTable(t7, dbInfo, function() { + t7.executeSql(sqlStatement, args, callback, errorCallback); }, errorCallback); } else { - errorCallback(t6, error); + errorCallback(t7, error); } }, errorCallback); } else { - errorCallback(t5, error); + errorCallback(t6, error); } }, errorCallback); } @@ -32601,14 +6395,14 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "SELECT * FROM " + dbInfo.storeName + " WHERE key = ? LIMIT 1", [key2], function(t5, results) { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "SELECT * FROM " + dbInfo.storeName + " WHERE key = ? LIMIT 1", [key2], function(t6, results) { var result = results.rows.length ? results.rows.item(0).value : null; if (result) { result = dbInfo.serializer.deserialize(result); } resolve(result); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32622,8 +6416,8 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "SELECT * FROM " + dbInfo.storeName, [], function(t5, results) { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "SELECT * FROM " + dbInfo.storeName, [], function(t6, results) { var rows = results.rows; var length3 = rows.length; for (var i4 = 0; i4 < length3; i4++) { @@ -32639,7 +6433,7 @@ var require_localforage = __commonJS({ } } resolve(); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32662,10 +6456,10 @@ var require_localforage = __commonJS({ if (error) { reject(error); } else { - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "INSERT OR REPLACE INTO " + dbInfo.storeName + " (key, value) VALUES (?, ?)", [key2, value2], function() { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "INSERT OR REPLACE INTO " + dbInfo.storeName + " (key, value) VALUES (?, ?)", [key2, value2], function() { resolve(originalValue); - }, function(t5, error2) { + }, function(t6, error2) { reject(error2); }); }, function(sqlError) { @@ -32693,10 +6487,10 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "DELETE FROM " + dbInfo.storeName + " WHERE key = ?", [key2], function() { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "DELETE FROM " + dbInfo.storeName + " WHERE key = ?", [key2], function() { resolve(); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32710,10 +6504,10 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "DELETE FROM " + dbInfo.storeName, [], function() { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "DELETE FROM " + dbInfo.storeName, [], function() { resolve(); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32727,11 +6521,11 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "SELECT COUNT(key) as c FROM " + dbInfo.storeName, [], function(t5, results) { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "SELECT COUNT(key) as c FROM " + dbInfo.storeName, [], function(t6, results) { var result = results.rows.item(0).c; resolve(result); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32745,11 +6539,11 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "SELECT key FROM " + dbInfo.storeName + " WHERE id = ? LIMIT 1", [n3 + 1], function(t5, results) { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "SELECT key FROM " + dbInfo.storeName + " WHERE id = ? LIMIT 1", [n3 + 1], function(t6, results) { var result = results.rows.length ? results.rows.item(0).key : null; resolve(result); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32763,14 +6557,14 @@ var require_localforage = __commonJS({ var promise = new Promise$1(function(resolve, reject) { self2.ready().then(function() { var dbInfo = self2._dbInfo; - dbInfo.db.transaction(function(t4) { - tryExecuteSql(t4, dbInfo, "SELECT key FROM " + dbInfo.storeName, [], function(t5, results) { + dbInfo.db.transaction(function(t5) { + tryExecuteSql(t5, dbInfo, "SELECT key FROM " + dbInfo.storeName, [], function(t6, results) { var keys2 = []; for (var i4 = 0; i4 < results.rows.length; i4++) { keys2.push(results.rows.item(i4).key); } resolve(keys2); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }); @@ -32781,8 +6575,8 @@ var require_localforage = __commonJS({ } function getAllStoreNames(db) { return new Promise$1(function(resolve, reject) { - db.transaction(function(t4) { - t4.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function(t5, results) { + db.transaction(function(t5) { + t5.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function(t6, results) { var storeNames = []; for (var i4 = 0; i4 < results.rows.length; i4++) { storeNames.push(results.rows.item(i4).name); @@ -32791,7 +6585,7 @@ var require_localforage = __commonJS({ db, storeNames }); - }, function(t5, error) { + }, function(t6, error) { reject(error); }); }, function(sqlError) { @@ -32829,12 +6623,12 @@ var require_localforage = __commonJS({ } }).then(function(operationInfo) { return new Promise$1(function(resolve, reject) { - operationInfo.db.transaction(function(t4) { + operationInfo.db.transaction(function(t5) { function dropTable(storeName) { return new Promise$1(function(resolve2, reject2) { - t4.executeSql("DROP TABLE IF EXISTS " + storeName, [], function() { + t5.executeSql("DROP TABLE IF EXISTS " + storeName, [], function() { resolve2(); - }, function(t5, error) { + }, function(t6, error) { reject2(error); }); }); @@ -33100,11 +6894,11 @@ var require_localforage = __commonJS({ var sameValue = function sameValue2(x4, y4) { return x4 === y4 || typeof x4 === "number" && typeof y4 === "number" && isNaN(x4) && isNaN(y4); }; - var includes = function includes2(array, searchElement) { - var len = array.length; + var includes = function includes2(array2, searchElement) { + var len = array2.length; var i4 = 0; while (i4 < len) { - if (sameValue(array[i4], searchElement)) { + if (sameValue(array2[i4], searchElement)) { return true; } i4++; @@ -33183,7 +6977,7 @@ var require_localforage = __commonJS({ }); } LocalForage2.prototype.config = function config2(options2) { - if ((typeof options2 === "undefined" ? "undefined" : _typeof2(options2)) === "object") { + if ((typeof options2 === "undefined" ? "undefined" : _typeof3(options2)) === "object") { if (this._ready) { return new Error("Can't call config() after localforage has been used."); } @@ -33380,7 +7174,7 @@ var require_localforage = __commonJS({ // node_modules/@datastructures-js/queue/src/queue.js var require_queue = __commonJS({ - "node_modules/@datastructures-js/queue/src/queue.js"(exports2) { + "node_modules/@datastructures-js/queue/src/queue.js"(exports) { var Queue3 = class _Queue { /** * Creates a queue. @@ -33496,15 +7290,15 @@ var require_queue = __commonJS({ return new _Queue(elements); } }; - exports2.Queue = Queue3; + exports.Queue = Queue3; } }); // node_modules/@datastructures-js/queue/index.js var require_queue2 = __commonJS({ - "node_modules/@datastructures-js/queue/index.js"(exports2) { + "node_modules/@datastructures-js/queue/index.js"(exports) { var { Queue: Queue3 } = require_queue(); - exports2.Queue = Queue3; + exports.Queue = Queue3; } }); @@ -33746,8 +7540,8 @@ function bestBy(arr, by, compare) { if (arr.length === 0) { return void 0; } - return arr.reduce((best, next2) => { - const pair = [by(next2), next2]; + return arr.reduce((best, next3) => { + const pair = [by(next3), next3]; if (!best) { return pair; } else if (compare(best[0], pair[0]) === best[0]) { @@ -33772,13 +7566,13 @@ function integerBetween(thing, bottom, top) { function floorMod(x4, n3) { return x4 - n3 * Math.floor(x4 / n3); } -function padStart(input, n3 = 2) { - const isNeg = input < 0; +function padStart(input2, n3 = 2) { + const isNeg = input2 < 0; let padded; if (isNeg) { - padded = "-" + ("" + -input).padStart(n3, "0"); + padded = "-" + ("" + -input2).padStart(n3, "0"); } else { - padded = ("" + input).padStart(n3, "0"); + padded = ("" + input2).padStart(n3, "0"); } return padded; } @@ -34322,7 +8116,7 @@ var Formatter = class _Formatter { }, tokens = _Formatter.parseFormat(fmt), realTokens = tokens.reduce( (found, { literal, val }) => literal ? found : found.concat(val), [] - ), collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t4) => t4)); + ), collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t5) => t5)); return stringifyTokens(tokens, tokenToString(collapsed)); } }; @@ -34747,23 +8541,23 @@ var InvalidZone = class extends Zone { }; // node_modules/luxon/src/impl/zoneUtil.js -function normalizeZone(input, defaultZone2) { +function normalizeZone(input2, defaultZone2) { let offset3; - if (isUndefined(input) || input === null) { + if (isUndefined(input2) || input2 === null) { return defaultZone2; - } else if (input instanceof Zone) { - return input; - } else if (isString(input)) { - const lowered = input.toLowerCase(); + } else if (input2 instanceof Zone) { + return input2; + } else if (isString(input2)) { + const lowered = input2.toLowerCase(); if (lowered === "local" || lowered === "system") return defaultZone2; else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance; - else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); - } else if (isNumber(input)) { - return FixedOffsetZone.instance(input); - } else if (typeof input === "object" && input.offset && typeof input.offset === "number") { - return input; + else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input2); + } else if (isNumber(input2)) { + return FixedOffsetZone.instance(input2); + } else if (typeof input2 === "object" && input2.offset && typeof input2.offset === "number") { + return input2; } else { - return new InvalidZone(input); + return new InvalidZone(input2); } } @@ -34861,8 +8655,8 @@ var Settings = class { * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals * @type {boolean} */ - static set throwOnInvalid(t4) { - throwOnInvalid = t4; + static set throwOnInvalid(t5) { + throwOnInvalid = t5; } /** * Reset Luxon's global caches. Should only be necessary in testing scenarios. @@ -35213,8 +9007,8 @@ function combineRegexes(...regexes) { function combineExtractors(...extractors) { return (m3) => extractors.reduce( ([mergedVals, mergedZone, cursor2], ex) => { - const [val, zone, next2] = ex(m3, cursor2); - return [{ ...mergedVals, ...val }, zone || mergedZone, next2]; + const [val, zone, next3] = ex(m3, cursor2); + return [{ ...mergedVals, ...val }, zone || mergedZone, next3]; }, [{}, null, 1] ).slice(0, 2); @@ -35232,11 +9026,11 @@ function parse(s4, ...patterns) { return [null, null]; } function simpleParse(...keys) { - return (match3, cursor2) => { + return (match4, cursor2) => { const ret = {}; let i4; for (i4 = 0; i4 < keys.length; i4++) { - ret[keys[i4]] = parseInteger(match3[cursor2 + i4]); + ret[keys[i4]] = parseInteger(match4[cursor2 + i4]); } return [ret, null, cursor2 + i4]; }; @@ -35256,38 +9050,38 @@ var sqlTimeRegex = RegExp( `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?` ); var sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`); -function int(match3, pos, fallback) { - const m3 = match3[pos]; +function int(match4, pos, fallback) { + const m3 = match4[pos]; return isUndefined(m3) ? fallback : parseInteger(m3); } -function extractISOYmd(match3, cursor2) { +function extractISOYmd(match4, cursor2) { const item = { - year: int(match3, cursor2), - month: int(match3, cursor2 + 1, 1), - day: int(match3, cursor2 + 2, 1) + year: int(match4, cursor2), + month: int(match4, cursor2 + 1, 1), + day: int(match4, cursor2 + 2, 1) }; return [item, null, cursor2 + 3]; } -function extractISOTime(match3, cursor2) { +function extractISOTime(match4, cursor2) { const item = { - hours: int(match3, cursor2, 0), - minutes: int(match3, cursor2 + 1, 0), - seconds: int(match3, cursor2 + 2, 0), - milliseconds: parseMillis(match3[cursor2 + 3]) + hours: int(match4, cursor2, 0), + minutes: int(match4, cursor2 + 1, 0), + seconds: int(match4, cursor2 + 2, 0), + milliseconds: parseMillis(match4[cursor2 + 3]) }; return [item, null, cursor2 + 4]; } -function extractISOOffset(match3, cursor2) { - const local = !match3[cursor2] && !match3[cursor2 + 1], fullOffset = signedOffset(match3[cursor2 + 1], match3[cursor2 + 2]), zone = local ? null : FixedOffsetZone.instance(fullOffset); +function extractISOOffset(match4, cursor2) { + const local = !match4[cursor2] && !match4[cursor2 + 1], fullOffset = signedOffset(match4[cursor2 + 1], match4[cursor2 + 2]), zone = local ? null : FixedOffsetZone.instance(fullOffset); return [{}, zone, cursor2 + 3]; } -function extractIANAZone(match3, cursor2) { - const zone = match3[cursor2] ? IANAZone.create(match3[cursor2]) : null; +function extractIANAZone(match4, cursor2) { + const zone = match4[cursor2] ? IANAZone.create(match4[cursor2]) : null; return [{}, zone, cursor2 + 1]; } var isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`); var isoDuration = /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/; -function extractISODuration(match3) { +function extractISODuration(match4) { const [ s4, yearStr, @@ -35298,7 +9092,7 @@ function extractISODuration(match3) { minuteStr, secondStr, millisecondsStr - ] = match3; + ] = match4; const hasNegativePrefix = s4[0] === "-"; const negativeSeconds = secondStr && secondStr[0] === "-"; const maybeNegate = (num, force = false) => num !== void 0 && (force || num && hasNegativePrefix) ? -num : num; @@ -35341,7 +9135,7 @@ function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, return result; } var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; -function extractRFC2822(match3) { +function extractRFC2822(match4) { const [ , weekdayStr, @@ -35355,7 +9149,7 @@ function extractRFC2822(match3) { milOffset, offHourStr, offMinuteStr - ] = match3, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + ] = match4, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); let offset3; if (obsOffset) { offset3 = obsOffsets[obsOffset]; @@ -35372,12 +9166,12 @@ function preprocessRFC2822(s4) { var rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/; var rfc850 = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/; var ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; -function extractRFC1123Or850(match3) { - const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match3, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); +function extractRFC1123Or850(match4) { + const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match4, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); return [result, FixedOffsetZone.utcInstance]; } -function extractASCII(match3) { - const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match3, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); +function extractASCII(match4) { + const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match4, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); return [result, FixedOffsetZone.utcInstance]; } var isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); @@ -36431,9 +10225,9 @@ var Interval = class _Interval { const sorted = dateTimes.map(friendlyDateTime).filter((d3) => this.contains(d3)).sort(), results = []; let { s: s4 } = this, i4 = 0; while (s4 < this.e) { - const added = sorted[i4] || this.e, next2 = +added > +this.e ? this.e : added; - results.push(_Interval.fromDateTimes(s4, next2)); - s4 = next2; + const added = sorted[i4] || this.e, next3 = +added > +this.e ? this.e : added; + results.push(_Interval.fromDateTimes(s4, next3)); + s4 = next3; i4 += 1; } return results; @@ -36449,13 +10243,13 @@ var Interval = class _Interval { if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { return []; } - let { s: s4 } = this, idx = 1, next2; + let { s: s4 } = this, idx = 1, next3; const results = []; while (s4 < this.e) { const added = this.start.plus(dur.mapUnits((x4) => x4 * idx)); - next2 = +added > +this.e ? this.e : added; - results.push(_Interval.fromDateTimes(s4, next2)); - s4 = next2; + next3 = +added > +this.e ? this.e : added; + results.push(_Interval.fromDateTimes(s4, next3)); + s4 = next3; idx += 1; } return results; @@ -36711,8 +10505,8 @@ var Info = class { * @param {string|Zone|number} [input] - the value to be converted * @return {Zone} */ - static normalizeZone(input) { - return normalizeZone(input, Settings.defaultZone); + static normalizeZone(input2) { + return normalizeZone(input2, Settings.defaultZone); } /** * Return an array of standalone month names. @@ -36984,11 +10778,11 @@ function escapeToken(value) { return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } function unitForToken(token2, loc) { - const one = digitRegex(loc), two = digitRegex(loc, "{2}"), three = digitRegex(loc, "{3}"), four = digitRegex(loc, "{4}"), six = digitRegex(loc, "{6}"), oneOrTwo = digitRegex(loc, "{1,2}"), oneToThree = digitRegex(loc, "{1,3}"), oneToSix = digitRegex(loc, "{1,6}"), oneToNine = digitRegex(loc, "{1,9}"), twoToFour = digitRegex(loc, "{2,4}"), fourToSix = digitRegex(loc, "{4,6}"), literal = (t4) => ({ regex: RegExp(escapeToken(t4.val)), deser: ([s4]) => s4, literal: true }), unitate = (t4) => { + const one = digitRegex(loc), two = digitRegex(loc, "{2}"), three = digitRegex(loc, "{3}"), four = digitRegex(loc, "{4}"), six = digitRegex(loc, "{6}"), oneOrTwo = digitRegex(loc, "{1,2}"), oneToThree = digitRegex(loc, "{1,3}"), oneToSix = digitRegex(loc, "{1,6}"), oneToNine = digitRegex(loc, "{1,9}"), twoToFour = digitRegex(loc, "{2,4}"), fourToSix = digitRegex(loc, "{4,6}"), literal = (t5) => ({ regex: RegExp(escapeToken(t5.val)), deser: ([s4]) => s4, literal: true }), unitate = (t5) => { if (token2.literal) { - return literal(t4); + return literal(t5); } - switch (t4.val) { + switch (t5.val) { // era case "G": return oneOf(loc.eras("short", false), 0); @@ -37099,7 +10893,7 @@ function unitForToken(token2, loc) { case "z": return simple(/[a-z_+-/]{1,256}?/i); default: - return literal(t4); + return literal(t5); } }; const unit = unitate(token2) || { @@ -37167,8 +10961,8 @@ function buildRegex(units) { const re = units.map((u4) => u4.regex).reduce((f4, r4) => `${f4}(${r4.source})`, ""); return [`^${re}$`, units]; } -function match(input, regex2, handlers) { - const matches = input.match(regex2); +function match(input2, regex2, handlers) { + const matches = input2.match(regex2); if (matches) { const all = {}; let matchIndex = 1; @@ -37280,24 +11074,24 @@ function maybeExpandMacroToken(token2, locale) { return tokens; } function expandMacroTokens(tokens, locale) { - return Array.prototype.concat(...tokens.map((t4) => maybeExpandMacroToken(t4, locale))); + return Array.prototype.concat(...tokens.map((t5) => maybeExpandMacroToken(t5, locale))); } -function explainFromTokens(locale, input, format) { - const tokens = expandMacroTokens(Formatter.parseFormat(format), locale), units = tokens.map((t4) => unitForToken(t4, locale)), disqualifyingUnit = units.find((t4) => t4.invalidReason); +function explainFromTokens(locale, input2, format) { + const tokens = expandMacroTokens(Formatter.parseFormat(format), locale), units = tokens.map((t5) => unitForToken(t5, locale)), disqualifyingUnit = units.find((t5) => t5.invalidReason); if (disqualifyingUnit) { - return { input, tokens, invalidReason: disqualifyingUnit.invalidReason }; + return { input: input2, tokens, invalidReason: disqualifyingUnit.invalidReason }; } else { - const [regexString, handlers] = buildRegex(units), regex2 = RegExp(regexString, "i"), [rawMatches, matches] = match(input, regex2, handlers), [result, zone, specificOffset] = matches ? dateTimeFromMatches(matches) : [null, null, void 0]; + const [regexString, handlers] = buildRegex(units), regex2 = RegExp(regexString, "i"), [rawMatches, matches] = match(input2, regex2, handlers), [result, zone, specificOffset] = matches ? dateTimeFromMatches(matches) : [null, null, void 0]; if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) { throw new ConflictingSpecificationError( "Can't include meridiem when specifying 24-hour format" ); } - return { input, tokens, regex: regex2, rawMatches, matches, result, zone, specificOffset }; + return { input: input2, tokens, regex: regex2, rawMatches, matches, result, zone, specificOffset }; } } -function parseFromTokens(locale, input, format) { - const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format); +function parseFromTokens(locale, input2, format) { + const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input2, format); return [result, zone, specificOffset, invalidReason]; } @@ -39199,8 +12993,14 @@ function friendlyDateTime(dateTimeish) { var VERSION = "2.5.2"; // src/utils/normalizers.ts -var P = __toESM(require_parsimmon()); -var import_emoji_regex = __toESM(require_emoji_regex()); +var P = __toESM(require_parsimmon_umd_min()); + +// node_modules/emoji-regex/index.mjs +var emoji_regex_default = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; +}; + +// src/utils/normalizers.ts function currentLocale() { if (typeof window === "undefined") return "en-US"; return window.navigator.language; @@ -39252,7 +13052,7 @@ function escapeRegex(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } var HEADER_CANONICALIZER = P.alt( - P.regex(new RegExp((0, import_emoji_regex.default)(), "")), + P.regex(new RegExp(emoji_regex_default(), "")), P.regex(/[0-9\p{Letter}_-]+/u), P.whitespace.map((_3) => " "), P.any.map((_3) => " ") @@ -39439,7 +13239,7 @@ function splitOnUnescapedPipe(link) { } // src/expression/parser.ts -var P2 = __toESM(require_parsimmon()); +var P2 = __toESM(require_parsimmon_umd_min()); // src/expression/literal.ts var Literals; @@ -39557,8 +13357,8 @@ var Literals; case "array": let f1 = wrap1.value; let f22 = wrap2.value; - for (let index = 0; index < Math.min(f1.length, f22.length); index++) { - let comp = compare(f1[index], f22[index]); + for (let index2 = 0; index2 < Math.min(f1.length, f22.length); index2++) { + let comp = compare(f1[index2], f22[index2]); if (comp != 0) return comp; } return f1.length - f22.length; @@ -39698,15 +13498,15 @@ var Groupings; function slice2(elements, start, end2) { if (end2 <= start) return []; if (isLeaf(elements)) return elements.slice(start, end2); - let index = 0, seen = 0; - while (index < elements.length && seen + count(elements[index]) <= start) { - seen += count(elements[index]); - index++; + let index2 = 0, seen = 0; + while (index2 < elements.length && seen + count(elements[index2]) <= start) { + seen += count(elements[index2]); + index2++; } - if (index >= elements.length) return []; + if (index2 >= elements.length) return []; const result = []; - while (index < elements.length && seen < end2) { - const group = elements[index]; + while (index2 < elements.length && seen < end2) { + const group = elements[index2]; const groupSize = count(group); const groupStart = Math.max(seen, start); const groupEnd = Math.min(groupSize + seen, end2); @@ -39715,7 +13515,7 @@ var Groupings; rows: slice2(group.rows, groupStart - seen, groupEnd - seen) }); seen += groupSize; - index++; + index2++; } return result; } @@ -39801,9 +13601,9 @@ var Result; return flatMap2(first, second, (a4, b3) => success(f4(a4, b3))); } Result2.map2 = map2; - function mapAll(input, func) { + function mapAll(input2, func) { const result = []; - for (const element of input) { + for (const element of input2) { const output = func(element); if (!output.successful) return output.cast(); result.push(output.value); @@ -39925,10 +13725,10 @@ var Filters; } } Filters2.lazyFailableIntersection = lazyFailableIntersection; - function union(filters) { + function union2(filters) { return lazyUnion(filters, (x4) => x4); } - Filters2.union = union; + Filters2.union = union2; function lazyUnion(elements, produce) { return lazyFailableUnion(elements, (x4) => Result.success(produce(x4))).orElseThrow(); } @@ -40019,15 +13819,15 @@ var Expressions; return { type: "binaryop", left, op, right }; } Expressions2.binaryOp = binaryOp; - function index(obj, index2) { - return { type: "binaryop", left: obj, right: index2, op: "index" }; + function index2(obj, index3) { + return { type: "binaryop", left: obj, right: index3, op: "index" }; } - Expressions2.index = index; + Expressions2.index = index2; function indexVariable(name) { let parts = name.split("."); let result = Expressions2.variable(parts[0]); - for (let index2 = 1; index2 < parts.length; index2++) { - result = Expressions2.index(result, Expressions2.literal(parts[index2])); + for (let index3 = 1; index3 < parts.length; index3++) { + result = Expressions2.index(result, Expressions2.literal(parts[index3])); } return result; } @@ -40119,7 +13919,6 @@ var Expressions; })(Expressions || (Expressions = {})); // src/expression/parser.ts -var import_emoji_regex2 = __toESM(require_emoji_regex()); var PRIMITIVES = P2.createLanguage({ number: (_3) => P2.regexp(/-?[0-9]+(\.[0-9]+)?/).map((str) => Number.parseFloat(str)).desc("number"), // A quote-surrounded string which supports escape characters ('\'). @@ -40220,7 +14019,7 @@ var PRIMITIVES = P2.createLanguage({ q4.number, P2.optWhitespace, q4.durationType, - (count, _3, t4) => DURATION_TYPES[t4].mapUnits((x4) => x4 * count) + (count, _3, t5) => DURATION_TYPES[t5].mapUnits((x4) => x4 * count) ).sepBy1(P2.string(",").trim(P2.optWhitespace).or(P2.optWhitespace)).map((durations) => durations.reduce((p3, c4) => p3.plus(c4))).desc("duration like 4hr2min"), // A raw null value. rawNull: (_3) => P2.string("null"), @@ -40246,7 +14045,7 @@ var PRIMITIVES = P2.createLanguage({ q4.atomInlineField ) }); -var EMOJI_REGEX = new RegExp((0, import_emoji_regex2.default)(), ""); +var EMOJI_REGEX = new RegExp(emoji_regex_default(), ""); var DURATION_TYPES = { year: Duration.fromObject({ years: 1 }), years: Duration.fromObject({ years: 1 }), @@ -40469,8 +14268,8 @@ function createBinaryParser(child, sep, combine2) { return P2.seqMap(child, P2.seq(P2.optWhitespace, sep, P2.optWhitespace, child).many(), (first, rest) => { if (rest.length == 0) return first; let node2 = combine2(first, rest[0][1], rest[0][3]); - for (let index = 1; index < rest.length; index++) { - node2 = combine2(node2, rest[index][1], rest[index][3]); + for (let index2 = 1; index2 < rest.length; index2++) { + node2 = combine2(node2, rest[index2][1], rest[index2][3]); } return node2; }); @@ -40485,13 +14284,13 @@ function createFunction(func, args) { } function chainOpt(base, ...funcs) { return P2.custom((_success, _failure) => { - return (input, i4) => { - let result = base._(input, i4); + return (input2, i4) => { + let result = base._(input2, i4); if (!result.status) return result; for (let func of funcs) { - let next2 = func(result.value)._(input, result.index); - if (!next2.status) return result; - result = next2; + let next3 = func(result.value)._(input2, result.index); + if (!next3.status) return result; + result = next3; } return result; }; @@ -40529,16 +14328,16 @@ function isImageEmbed(link) { } function extractImageDimensions(link) { if (!link.display) return void 0; - let match3 = /^(\d+)x(\d+)$/iu.exec(link.display); - if (match3) return [parseInt(match3[1]), parseInt(match3[2])]; + let match4 = /^(\d+)x(\d+)$/iu.exec(link.display); + if (match4) return [parseInt(match4[1]), parseInt(match4[2])]; let match22 = /^(\d+)/.exec(link.display); if (match22) return [parseInt(match22[1])]; return void 0; } -// node_modules/preact/dist/preact.mjs -var preact_exports = {}; -__export(preact_exports, { +// node_modules/preact/dist/preact.module.js +var preact_module_exports = {}; +__export(preact_module_exports, { Component: () => k, Fragment: () => b, cloneElement: () => E, @@ -40575,14 +14374,14 @@ function d(n3, l4) { function w(n3) { n3 && n3.parentNode && n3.parentNode.removeChild(n3); } -function _(l4, u4, t4) { +function _(l4, u4, t5) { var i4, o4, r4, f4 = {}; for (r4 in u4) "key" == r4 ? i4 = u4[r4] : "ref" == r4 ? o4 = u4[r4] : f4[r4] = u4[r4]; - if (arguments.length > 2 && (f4.children = arguments.length > 3 ? n2.call(arguments, 2) : t4), "function" == typeof l4 && null != l4.defaultProps) for (r4 in l4.defaultProps) void 0 === f4[r4] && (f4[r4] = l4.defaultProps[r4]); + if (arguments.length > 2 && (f4.children = arguments.length > 3 ? n2.call(arguments, 2) : t5), "function" == typeof l4 && null != l4.defaultProps) for (r4 in l4.defaultProps) void 0 === f4[r4] && (f4[r4] = l4.defaultProps[r4]); return g(l4, f4, i4, o4, null); } -function g(n3, t4, i4, o4, r4) { - var f4 = { type: n3, props: t4, key: i4, ref: o4, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: null == r4 ? ++u : r4, __i: -1, __u: 0 }; +function g(n3, t5, i4, o4, r4) { + var f4 = { type: n3, props: t5, key: i4, ref: o4, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: null == r4 ? ++u : r4, __i: -1, __u: 0 }; return null == r4 && null != l2.vnode && l2.vnode(f4), f4; } function m() { @@ -40613,24 +14412,24 @@ function S(n3) { (!n3.__d && (n3.__d = true) && i.push(n3) && !M.__r++ || o !== l2.debounceRendering) && ((o = l2.debounceRendering) || r)(M); } function M() { - var n3, u4, t4, o4, r4, e3, c4, s4; - for (i.sort(f); n3 = i.shift(); ) n3.__d && (u4 = i.length, o4 = void 0, e3 = (r4 = (t4 = n3).__v).__e, c4 = [], s4 = [], t4.__P && ((o4 = d({}, r4)).__v = r4.__v + 1, l2.vnode && l2.vnode(o4), O(t4.__P, o4, r4, t4.__n, t4.__P.namespaceURI, 32 & r4.__u ? [e3] : null, c4, null == e3 ? x(r4) : e3, !!(32 & r4.__u), s4), o4.__v = r4.__v, o4.__.__k[o4.__i] = o4, j(c4, o4, s4), o4.__e != e3 && C(o4)), i.length > u4 && i.sort(f)); + var n3, u4, t5, o4, r4, e3, c4, s4; + for (i.sort(f); n3 = i.shift(); ) n3.__d && (u4 = i.length, o4 = void 0, e3 = (r4 = (t5 = n3).__v).__e, c4 = [], s4 = [], t5.__P && ((o4 = d({}, r4)).__v = r4.__v + 1, l2.vnode && l2.vnode(o4), O(t5.__P, o4, r4, t5.__n, t5.__P.namespaceURI, 32 & r4.__u ? [e3] : null, c4, null == e3 ? x(r4) : e3, !!(32 & r4.__u), s4), o4.__v = r4.__v, o4.__.__k[o4.__i] = o4, j(c4, o4, s4), o4.__e != e3 && C(o4)), i.length > u4 && i.sort(f)); M.__r = 0; } -function P3(n3, l4, u4, t4, i4, o4, r4, f4, e3, c4, s4) { - var a4, p3, y4, d3, w5, _3 = t4 && t4.__k || v, g4 = l4.length; +function P3(n3, l4, u4, t5, i4, o4, r4, f4, e3, c4, s4) { + var a4, p3, y4, d3, w5, _3 = t5 && t5.__k || v, g4 = l4.length; for (u4.__d = e3, $(u4, l4, _3), e3 = u4.__d, a4 = 0; a4 < g4; a4++) null != (y4 = u4.__k[a4]) && (p3 = -1 === y4.__i ? h : _3[y4.__i] || h, y4.__i = a4, O(n3, y4, p3, i4, o4, r4, f4, e3, c4, s4), d3 = y4.__e, y4.ref && p3.ref != y4.ref && (p3.ref && N(p3.ref, null, y4), s4.push(y4.ref, y4.__c || d3, y4)), null == w5 && null != d3 && (w5 = d3), 65536 & y4.__u || p3.__k === y4.__k ? e3 = I(y4, e3, n3) : "function" == typeof y4.type && void 0 !== y4.__d ? e3 = y4.__d : d3 && (e3 = d3.nextSibling), y4.__d = void 0, y4.__u &= -196609); u4.__d = e3, u4.__e = w5; } function $(n3, l4, u4) { - var t4, i4, o4, r4, f4, e3 = l4.length, c4 = u4.length, s4 = c4, a4 = 0; - for (n3.__k = [], t4 = 0; t4 < e3; t4++) null != (i4 = l4[t4]) && "boolean" != typeof i4 && "function" != typeof i4 ? (r4 = t4 + a4, (i4 = n3.__k[t4] = "string" == typeof i4 || "number" == typeof i4 || "bigint" == typeof i4 || i4.constructor == String ? g(null, i4, null, null, null) : y(i4) ? g(b, { children: i4 }, null, null, null) : void 0 === i4.constructor && i4.__b > 0 ? g(i4.type, i4.props, i4.key, i4.ref ? i4.ref : null, i4.__v) : i4).__ = n3, i4.__b = n3.__b + 1, o4 = null, -1 !== (f4 = i4.__i = L(i4, u4, r4, s4)) && (s4--, (o4 = u4[f4]) && (o4.__u |= 131072)), null == o4 || null === o4.__v ? (-1 == f4 && a4--, "function" != typeof i4.type && (i4.__u |= 65536)) : f4 !== r4 && (f4 == r4 - 1 ? a4-- : f4 == r4 + 1 ? a4++ : (f4 > r4 ? a4-- : a4++, i4.__u |= 65536))) : i4 = n3.__k[t4] = null; - if (s4) for (t4 = 0; t4 < c4; t4++) null != (o4 = u4[t4]) && 0 == (131072 & o4.__u) && (o4.__e == n3.__d && (n3.__d = x(o4)), V(o4, o4)); + var t5, i4, o4, r4, f4, e3 = l4.length, c4 = u4.length, s4 = c4, a4 = 0; + for (n3.__k = [], t5 = 0; t5 < e3; t5++) null != (i4 = l4[t5]) && "boolean" != typeof i4 && "function" != typeof i4 ? (r4 = t5 + a4, (i4 = n3.__k[t5] = "string" == typeof i4 || "number" == typeof i4 || "bigint" == typeof i4 || i4.constructor == String ? g(null, i4, null, null, null) : y(i4) ? g(b, { children: i4 }, null, null, null) : void 0 === i4.constructor && i4.__b > 0 ? g(i4.type, i4.props, i4.key, i4.ref ? i4.ref : null, i4.__v) : i4).__ = n3, i4.__b = n3.__b + 1, o4 = null, -1 !== (f4 = i4.__i = L(i4, u4, r4, s4)) && (s4--, (o4 = u4[f4]) && (o4.__u |= 131072)), null == o4 || null === o4.__v ? (-1 == f4 && a4--, "function" != typeof i4.type && (i4.__u |= 65536)) : f4 !== r4 && (f4 == r4 - 1 ? a4-- : f4 == r4 + 1 ? a4++ : (f4 > r4 ? a4-- : a4++, i4.__u |= 65536))) : i4 = n3.__k[t5] = null; + if (s4) for (t5 = 0; t5 < c4; t5++) null != (o4 = u4[t5]) && 0 == (131072 & o4.__u) && (o4.__e == n3.__d && (n3.__d = x(o4)), V(o4, o4)); } function I(n3, l4, u4) { - var t4, i4; + var t5, i4; if ("function" == typeof n3.type) { - for (t4 = n3.__k, i4 = 0; t4 && i4 < t4.length; i4++) t4[i4] && (t4[i4].__ = n3, l4 = I(t4[i4], l4, u4)); + for (t5 = n3.__k, i4 = 0; t5 && i4 < t5.length; i4++) t5[i4] && (t5[i4].__ = n3, l4 = I(t5[i4], l4, u4)); return l4; } n3.__e != l4 && (l4 && n3.type && !u4.contains(l4) && (l4 = x(n3)), u4.insertBefore(n3.__e, l4 || null), l4 = n3.__e); @@ -40644,10 +14443,10 @@ function H(n3, l4) { H(n4, l4); }) : l4.push(n3)), l4; } -function L(n3, l4, u4, t4) { +function L(n3, l4, u4, t5) { var i4 = n3.key, o4 = n3.type, r4 = u4 - 1, f4 = u4 + 1, e3 = l4[u4]; if (null === e3 || e3 && i4 == e3.key && o4 === e3.type && 0 == (131072 & e3.__u)) return u4; - if (t4 > (null != e3 && 0 == (131072 & e3.__u) ? 1 : 0)) for (; r4 >= 0 || f4 < l4.length; ) { + if (t5 > (null != e3 && 0 == (131072 & e3.__u) ? 1 : 0)) for (; r4 >= 0 || f4 < l4.length; ) { if (r4 >= 0) { if ((e3 = l4[r4]) && 0 == (131072 & e3.__u) && i4 == e3.key && o4 === e3.type) return r4; r4--; @@ -40662,14 +14461,14 @@ function L(n3, l4, u4, t4) { function T(n3, l4, u4) { "-" === l4[0] ? n3.setProperty(l4, null == u4 ? "" : u4) : n3[l4] = null == u4 ? "" : "number" != typeof u4 || p.test(l4) ? u4 : u4 + "px"; } -function A(n3, l4, u4, t4, i4) { +function A(n3, l4, u4, t5, i4) { var o4; n: if ("style" === l4) if ("string" == typeof u4) n3.style.cssText = u4; else { - if ("string" == typeof t4 && (n3.style.cssText = t4 = ""), t4) for (l4 in t4) u4 && l4 in u4 || T(n3.style, l4, ""); - if (u4) for (l4 in u4) t4 && u4[l4] === t4[l4] || T(n3.style, l4, u4[l4]); + if ("string" == typeof t5 && (n3.style.cssText = t5 = ""), t5) for (l4 in t5) u4 && l4 in u4 || T(n3.style, l4, ""); + if (u4) for (l4 in u4) t5 && u4[l4] === t5[l4] || T(n3.style, l4, u4[l4]); } - else if ("o" === l4[0] && "n" === l4[1]) o4 = l4 !== (l4 = l4.replace(/(PointerCapture)$|Capture$/i, "$1")), l4 = l4.toLowerCase() in n3 || "onFocusOut" === l4 || "onFocusIn" === l4 ? l4.toLowerCase().slice(2) : l4.slice(2), n3.l || (n3.l = {}), n3.l[l4 + o4] = u4, u4 ? t4 ? u4.u = t4.u : (u4.u = e, n3.addEventListener(l4, o4 ? s2 : c, o4)) : n3.removeEventListener(l4, o4 ? s2 : c, o4); + else if ("o" === l4[0] && "n" === l4[1]) o4 = l4 !== (l4 = l4.replace(/(PointerCapture)$|Capture$/i, "$1")), l4 = l4.toLowerCase() in n3 || "onFocusOut" === l4 || "onFocusIn" === l4 ? l4.toLowerCase().slice(2) : l4.slice(2), n3.l || (n3.l = {}), n3.l[l4 + o4] = u4, u4 ? t5 ? u4.u = t5.u : (u4.u = e, n3.addEventListener(l4, o4 ? s2 : c, o4)) : n3.removeEventListener(l4, o4 ? s2 : c, o4); else { if ("http://www.w3.org/2000/svg" == i4) l4 = l4.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); else if ("width" != l4 && "height" != l4 && "href" != l4 && "list" != l4 && "form" != l4 && "tabIndex" != l4 && "download" != l4 && "rowSpan" != l4 && "colSpan" != l4 && "role" != l4 && "popover" != l4 && l4 in n3) try { @@ -40683,22 +14482,22 @@ function A(n3, l4, u4, t4, i4) { function F(n3) { return function(u4) { if (this.l) { - var t4 = this.l[u4.type + n3]; + var t5 = this.l[u4.type + n3]; if (null == u4.t) u4.t = e++; - else if (u4.t < t4.u) return; - return t4(l2.event ? l2.event(u4) : u4); + else if (u4.t < t5.u) return; + return t5(l2.event ? l2.event(u4) : u4); } }; } -function O(n3, u4, t4, i4, o4, r4, f4, e3, c4, s4) { +function O(n3, u4, t5, i4, o4, r4, f4, e3, c4, s4) { var a4, h3, v3, p3, w5, _3, g4, m3, x4, C4, S2, M3, $3, I3, H3, L3, T4 = u4.type; if (void 0 !== u4.constructor) return null; - 128 & t4.__u && (c4 = !!(32 & t4.__u), r4 = [e3 = u4.__e = t4.__e]), (a4 = l2.__b) && a4(u4); + 128 & t5.__u && (c4 = !!(32 & t5.__u), r4 = [e3 = u4.__e = t5.__e]), (a4 = l2.__b) && a4(u4); n: if ("function" == typeof T4) try { - if (m3 = u4.props, x4 = "prototype" in T4 && T4.prototype.render, C4 = (a4 = T4.contextType) && i4[a4.__c], S2 = a4 ? C4 ? C4.props.value : a4.__ : i4, t4.__c ? g4 = (h3 = u4.__c = t4.__c).__ = h3.__E : (x4 ? u4.__c = h3 = new T4(m3, S2) : (u4.__c = h3 = new k(m3, S2), h3.constructor = T4, h3.render = q), C4 && C4.sub(h3), h3.props = m3, h3.state || (h3.state = {}), h3.context = S2, h3.__n = i4, v3 = h3.__d = true, h3.__h = [], h3._sb = []), x4 && null == h3.__s && (h3.__s = h3.state), x4 && null != T4.getDerivedStateFromProps && (h3.__s == h3.state && (h3.__s = d({}, h3.__s)), d(h3.__s, T4.getDerivedStateFromProps(m3, h3.__s))), p3 = h3.props, w5 = h3.state, h3.__v = u4, v3) x4 && null == T4.getDerivedStateFromProps && null != h3.componentWillMount && h3.componentWillMount(), x4 && null != h3.componentDidMount && h3.__h.push(h3.componentDidMount); + if (m3 = u4.props, x4 = "prototype" in T4 && T4.prototype.render, C4 = (a4 = T4.contextType) && i4[a4.__c], S2 = a4 ? C4 ? C4.props.value : a4.__ : i4, t5.__c ? g4 = (h3 = u4.__c = t5.__c).__ = h3.__E : (x4 ? u4.__c = h3 = new T4(m3, S2) : (u4.__c = h3 = new k(m3, S2), h3.constructor = T4, h3.render = q), C4 && C4.sub(h3), h3.props = m3, h3.state || (h3.state = {}), h3.context = S2, h3.__n = i4, v3 = h3.__d = true, h3.__h = [], h3._sb = []), x4 && null == h3.__s && (h3.__s = h3.state), x4 && null != T4.getDerivedStateFromProps && (h3.__s == h3.state && (h3.__s = d({}, h3.__s)), d(h3.__s, T4.getDerivedStateFromProps(m3, h3.__s))), p3 = h3.props, w5 = h3.state, h3.__v = u4, v3) x4 && null == T4.getDerivedStateFromProps && null != h3.componentWillMount && h3.componentWillMount(), x4 && null != h3.componentDidMount && h3.__h.push(h3.componentDidMount); else { - if (x4 && null == T4.getDerivedStateFromProps && m3 !== p3 && null != h3.componentWillReceiveProps && h3.componentWillReceiveProps(m3, S2), !h3.__e && (null != h3.shouldComponentUpdate && false === h3.shouldComponentUpdate(m3, h3.__s, S2) || u4.__v === t4.__v)) { - for (u4.__v !== t4.__v && (h3.props = m3, h3.state = h3.__s, h3.__d = false), u4.__e = t4.__e, u4.__k = t4.__k, u4.__k.some(function(n4) { + if (x4 && null == T4.getDerivedStateFromProps && m3 !== p3 && null != h3.componentWillReceiveProps && h3.componentWillReceiveProps(m3, S2), !h3.__e && (null != h3.shouldComponentUpdate && false === h3.shouldComponentUpdate(m3, h3.__s, S2) || u4.__v === t5.__v)) { + for (u4.__v !== t5.__v && (h3.props = m3, h3.state = h3.__s, h3.__d = false), u4.__e = t5.__e, u4.__k = t5.__k, u4.__k.some(function(n4) { n4 && (n4.__ = u4); }), M3 = 0; M3 < h3._sb.length; M3++) h3.__h.push(h3._sb[M3]); h3._sb = [], h3.__h.length && f4.push(h3); @@ -40714,20 +14513,20 @@ function O(n3, u4, t4, i4, o4, r4, f4, e3, c4, s4) { } else do { h3.__d = false, $3 && $3(u4), a4 = h3.render(h3.props, h3.state, h3.context), h3.state = h3.__s; } while (h3.__d && ++I3 < 25); - h3.state = h3.__s, null != h3.getChildContext && (i4 = d(d({}, i4), h3.getChildContext())), x4 && !v3 && null != h3.getSnapshotBeforeUpdate && (_3 = h3.getSnapshotBeforeUpdate(p3, w5)), P3(n3, y(L3 = null != a4 && a4.type === b && null == a4.key ? a4.props.children : a4) ? L3 : [L3], u4, t4, i4, o4, r4, f4, e3, c4, s4), h3.base = u4.__e, u4.__u &= -161, h3.__h.length && f4.push(h3), g4 && (h3.__E = h3.__ = null); + h3.state = h3.__s, null != h3.getChildContext && (i4 = d(d({}, i4), h3.getChildContext())), x4 && !v3 && null != h3.getSnapshotBeforeUpdate && (_3 = h3.getSnapshotBeforeUpdate(p3, w5)), P3(n3, y(L3 = null != a4 && a4.type === b && null == a4.key ? a4.props.children : a4) ? L3 : [L3], u4, t5, i4, o4, r4, f4, e3, c4, s4), h3.base = u4.__e, u4.__u &= -161, h3.__h.length && f4.push(h3), g4 && (h3.__E = h3.__ = null); } catch (n4) { if (u4.__v = null, c4 || null != r4) { for (u4.__u |= c4 ? 160 : 128; e3 && 8 === e3.nodeType && e3.nextSibling; ) e3 = e3.nextSibling; r4[r4.indexOf(e3)] = null, u4.__e = e3; - } else u4.__e = t4.__e, u4.__k = t4.__k; - l2.__e(n4, u4, t4); + } else u4.__e = t5.__e, u4.__k = t5.__k; + l2.__e(n4, u4, t5); } - else null == r4 && u4.__v === t4.__v ? (u4.__k = t4.__k, u4.__e = t4.__e) : u4.__e = z(t4.__e, u4, t4, i4, o4, r4, f4, c4, s4); + else null == r4 && u4.__v === t5.__v ? (u4.__k = t5.__k, u4.__e = t5.__e) : u4.__e = z(t5.__e, u4, t5, i4, o4, r4, f4, c4, s4); (a4 = l2.diffed) && a4(u4); } -function j(n3, u4, t4) { +function j(n3, u4, t5) { u4.__d = void 0; - for (var i4 = 0; i4 < t4.length; i4++) N(t4[i4], t4[++i4], t4[++i4]); + for (var i4 = 0; i4 < t5.length; i4++) N(t5[i4], t5[++i4], t5[++i4]); l2.__c && l2.__c(u4, n3), n3.some(function(u5) { try { n3 = u5.__h, u5.__h = [], n3.some(function(n4) { @@ -40738,8 +14537,8 @@ function j(n3, u4, t4) { } }); } -function z(u4, t4, i4, o4, r4, f4, e3, c4, s4) { - var a4, v3, p3, d3, _3, g4, m3, b3 = i4.props, k4 = t4.props, C4 = t4.type; +function z(u4, t5, i4, o4, r4, f4, e3, c4, s4) { + var a4, v3, p3, d3, _3, g4, m3, b3 = i4.props, k4 = t5.props, C4 = t5.type; if ("svg" === C4 ? r4 = "http://www.w3.org/2000/svg" : "math" === C4 ? r4 = "http://www.w3.org/1998/Math/MathML" : r4 || (r4 = "http://www.w3.org/1999/xhtml"), null != f4) { for (a4 = 0; a4 < f4.length; a4++) if ((_3 = f4[a4]) && "setAttribute" in _3 == !!C4 && (C4 ? _3.localName === C4 : 3 === _3.nodeType)) { u4 = _3, f4[a4] = null; @@ -40748,7 +14547,7 @@ function z(u4, t4, i4, o4, r4, f4, e3, c4, s4) { } if (null == u4) { if (null === C4) return document.createTextNode(k4); - u4 = document.createElementNS(r4, C4, k4.is && k4), c4 && (l2.__m && l2.__m(t4, f4), c4 = false), f4 = null; + u4 = document.createElementNS(r4, C4, k4.is && k4), c4 && (l2.__m && l2.__m(t5, f4), c4 = false), f4 = null; } if (null === C4) b3 === k4 || c4 && u4.data === k4 || (u4.data = k4); else { @@ -40760,23 +14559,23 @@ function z(u4, t4, i4, o4, r4, f4, e3, c4, s4) { A(u4, a4, null, _3, r4); } for (a4 in k4) _3 = k4[a4], "children" == a4 ? d3 = _3 : "dangerouslySetInnerHTML" == a4 ? v3 = _3 : "value" == a4 ? g4 = _3 : "checked" == a4 ? m3 = _3 : c4 && "function" != typeof _3 || b3[a4] === _3 || A(u4, a4, _3, b3[a4], r4); - if (v3) c4 || p3 && (v3.__html === p3.__html || v3.__html === u4.innerHTML) || (u4.innerHTML = v3.__html), t4.__k = []; - else if (p3 && (u4.innerHTML = ""), P3(u4, y(d3) ? d3 : [d3], t4, i4, o4, "foreignObject" === C4 ? "http://www.w3.org/1999/xhtml" : r4, f4, e3, f4 ? f4[0] : i4.__k && x(i4, 0), c4, s4), null != f4) for (a4 = f4.length; a4--; ) w(f4[a4]); + if (v3) c4 || p3 && (v3.__html === p3.__html || v3.__html === u4.innerHTML) || (u4.innerHTML = v3.__html), t5.__k = []; + else if (p3 && (u4.innerHTML = ""), P3(u4, y(d3) ? d3 : [d3], t5, i4, o4, "foreignObject" === C4 ? "http://www.w3.org/1999/xhtml" : r4, f4, e3, f4 ? f4[0] : i4.__k && x(i4, 0), c4, s4), null != f4) for (a4 = f4.length; a4--; ) w(f4[a4]); c4 || (a4 = "value", "progress" === C4 && null == g4 ? u4.removeAttribute("value") : void 0 !== g4 && (g4 !== u4[a4] || "progress" === C4 && !g4 || "option" === C4 && g4 !== b3[a4]) && A(u4, a4, g4, b3[a4], r4), a4 = "checked", void 0 !== m3 && m3 !== u4[a4] && A(u4, a4, m3, b3[a4], r4)); } return u4; } -function N(n3, u4, t4) { +function N(n3, u4, t5) { try { if ("function" == typeof n3) { var i4 = "function" == typeof n3.__u; i4 && n3.__u(), i4 && null == u4 || (n3.__u = n3(u4)); } else n3.current = u4; } catch (n4) { - l2.__e(n4, t4); + l2.__e(n4, t5); } } -function V(n3, u4, t4) { +function V(n3, u4, t5) { var i4, o4; if (l2.unmount && l2.unmount(n3), (i4 = n3.ref) && (i4.current && i4.current !== n3.__e || N(i4, null, u4)), null != (i4 = n3.__c)) { if (i4.componentWillUnmount) try { @@ -40786,31 +14585,31 @@ function V(n3, u4, t4) { } i4.base = i4.__P = null; } - if (i4 = n3.__k) for (o4 = 0; o4 < i4.length; o4++) i4[o4] && V(i4[o4], u4, t4 || "function" != typeof n3.type); - t4 || w(n3.__e), n3.__c = n3.__ = n3.__e = n3.__d = void 0; + if (i4 = n3.__k) for (o4 = 0; o4 < i4.length; o4++) i4[o4] && V(i4[o4], u4, t5 || "function" != typeof n3.type); + t5 || w(n3.__e), n3.__c = n3.__ = n3.__e = n3.__d = void 0; } function q(n3, l4, u4) { return this.constructor(n3, u4); } -function B(u4, t4, i4) { +function B(u4, t5, i4) { var o4, r4, f4, e3; - l2.__ && l2.__(u4, t4), r4 = (o4 = "function" == typeof i4) ? null : i4 && i4.__k || t4.__k, f4 = [], e3 = [], O(t4, u4 = (!o4 && i4 || t4).__k = _(b, null, [u4]), r4 || h, h, t4.namespaceURI, !o4 && i4 ? [i4] : r4 ? null : t4.firstChild ? n2.call(t4.childNodes) : null, f4, !o4 && i4 ? i4 : r4 ? r4.__e : t4.firstChild, o4, e3), j(f4, u4, e3); + l2.__ && l2.__(u4, t5), r4 = (o4 = "function" == typeof i4) ? null : i4 && i4.__k || t5.__k, f4 = [], e3 = [], O(t5, u4 = (!o4 && i4 || t5).__k = _(b, null, [u4]), r4 || h, h, t5.namespaceURI, !o4 && i4 ? [i4] : r4 ? null : t5.firstChild ? n2.call(t5.childNodes) : null, f4, !o4 && i4 ? i4 : r4 ? r4.__e : t5.firstChild, o4, e3), j(f4, u4, e3); } function D(n3, l4) { B(n3, l4, D); } -function E(l4, u4, t4) { +function E(l4, u4, t5) { var i4, o4, r4, f4, e3 = d({}, l4.props); for (r4 in l4.type && l4.type.defaultProps && (f4 = l4.type.defaultProps), u4) "key" == r4 ? i4 = u4[r4] : "ref" == r4 ? o4 = u4[r4] : e3[r4] = void 0 === u4[r4] && void 0 !== f4 ? f4[r4] : u4[r4]; - return arguments.length > 2 && (e3.children = arguments.length > 3 ? n2.call(arguments, 2) : t4), g(l4.type, e3, i4 || l4.key, o4 || l4.ref, null); + return arguments.length > 2 && (e3.children = arguments.length > 3 ? n2.call(arguments, 2) : t5), g(l4.type, e3, i4 || l4.key, o4 || l4.ref, null); } function G(n3, l4) { var u4 = { __c: l4 = "__cC" + a++, __: n3, Consumer: function(n4, l5) { return n4.children(l5); }, Provider: function(n4) { - var u5, t4; - return this.getChildContext || (u5 = /* @__PURE__ */ new Set(), (t4 = {})[l4] = this, this.getChildContext = function() { - return t4; + var u5, t5; + return this.getChildContext || (u5 = /* @__PURE__ */ new Set(), (t5 = {})[l4] = this, this.getChildContext = function() { + return t5; }, this.componentWillUnmount = function() { u5 = null; }, this.shouldComponentUpdate = function(n5) { @@ -40827,9 +14626,9 @@ function G(n3, l4) { } }; return u4.Provider.__ = u4.Consumer.contextType = u4; } -n2 = v.slice, l2 = { __e: function(n3, l4, u4, t4) { +n2 = v.slice, l2 = { __e: function(n3, l4, u4, t5) { for (var i4, o4, r4; l4 = l4.__; ) if ((i4 = l4.__c) && !i4.__) try { - if ((o4 = i4.constructor) && null != o4.getDerivedStateFromError && (i4.setState(o4.getDerivedStateFromError(n3)), r4 = i4.__d), null != i4.componentDidCatch && (i4.componentDidCatch(n3, t4 || {}), r4 = i4.__d), r4) return i4.__E = i4; + if ((o4 = i4.constructor) && null != o4.getDerivedStateFromError && (i4.setState(o4.getDerivedStateFromError(n3)), r4 = i4.__d), null != i4.componentDidCatch && (i4.componentDidCatch(n3, t5 || {}), r4 = i4.__d), r4) return i4.__E = i4; } catch (l5) { n3 = l5; } @@ -40845,7 +14644,7 @@ n2 = v.slice, l2 = { __e: function(n3, l4, u4, t4) { return n3.__v.__b - l4.__v.__b; }, M.__r = 0, e = 0, c = F(false), s2 = F(true), a = 0; -// node_modules/preact/hooks/dist/hooks.mjs +// node_modules/preact/hooks/dist/hooks.module.js var t2; var r2; var u2; @@ -40859,8 +14658,8 @@ var v2 = c2.diffed; var l3 = c2.__c; var m2 = c2.unmount; var s3 = c2.__; -function d2(n3, t4) { - c2.__h && c2.__h(r2, n3, o2 || t4), o2 = 0; +function d2(n3, t5) { + c2.__h && c2.__h(r2, n3, o2 || t5), o2 = 0; var u4 = r2.__H || (r2.__H = { __: [], __h: [] }); return n3 >= u4.__.length && u4.__.push({}), u4.__[n3]; } @@ -40870,33 +14669,33 @@ function h2(n3) { function p2(n3, u4, i4) { var o4 = d2(t2++, 2); if (o4.t = n3, !o4.__c && (o4.__ = [i4 ? i4(u4) : D2(void 0, u4), function(n4) { - var t4 = o4.__N ? o4.__N[0] : o4.__[0], r4 = o4.t(t4, n4); - t4 !== r4 && (o4.__N = [r4, o4.__[1]], o4.__c.setState({})); + var t5 = o4.__N ? o4.__N[0] : o4.__[0], r4 = o4.t(t5, n4); + t5 !== r4 && (o4.__N = [r4, o4.__[1]], o4.__c.setState({})); }], o4.__c = r2, !r2.u)) { - var f4 = function(n4, t4, r4) { + var f4 = function(n4, t5, r4) { if (!o4.__c.__H) return true; var u5 = o4.__c.__H.__.filter(function(n5) { return !!n5.__c; }); if (u5.every(function(n5) { return !n5.__N; - })) return !c4 || c4.call(this, n4, t4, r4); + })) return !c4 || c4.call(this, n4, t5, r4); var i5 = false; return u5.forEach(function(n5) { if (n5.__N) { - var t5 = n5.__[0]; - n5.__ = n5.__N, n5.__N = void 0, t5 !== n5.__[0] && (i5 = true); + var t6 = n5.__[0]; + n5.__ = n5.__N, n5.__N = void 0, t6 !== n5.__[0] && (i5 = true); } - }), !(!i5 && o4.__c.props === n4) && (!c4 || c4.call(this, n4, t4, r4)); + }), !(!i5 && o4.__c.props === n4) && (!c4 || c4.call(this, n4, t5, r4)); }; r2.u = true; var c4 = r2.shouldComponentUpdate, e3 = r2.componentWillUpdate; - r2.componentWillUpdate = function(n4, t4, r4) { + r2.componentWillUpdate = function(n4, t5, r4) { if (this.__e) { var u5 = c4; - c4 = void 0, f4(n4, t4, r4), c4 = u5; + c4 = void 0, f4(n4, t5, r4), c4 = u5; } - e3 && e3.call(this, n4, t4, r4); + e3 && e3.call(this, n4, t5, r4); }, r2.shouldComponentUpdate = f4; } return o4.__N || o4.__; @@ -40914,11 +14713,11 @@ function A2(n3) { return { current: n3 }; }, []); } -function F2(n3, t4, r4) { +function F2(n3, t5, r4) { o2 = 6, _2(function() { - return "function" == typeof n3 ? (n3(t4()), function() { + return "function" == typeof n3 ? (n3(t5()), function() { return n3(null); - }) : n3 ? (n3.current = t4(), function() { + }) : n3 ? (n3.current = t5(), function() { return n3.current = null; }) : void 0; }, null == r4 ? r4 : r4.concat(n3)); @@ -40927,22 +14726,22 @@ function T2(n3, r4) { var u4 = d2(t2++, 7); return C2(u4.__H, r4) && (u4.__ = n3(), u4.__H = r4, u4.__h = n3), u4.__; } -function q2(n3, t4) { +function q2(n3, t5) { return o2 = 8, T2(function() { return n3; - }, t4); + }, t5); } function x2(n3) { var u4 = r2.context[n3.__c], i4 = d2(t2++, 9); return i4.c = n3, u4 ? (null == i4.__ && (i4.__ = true, u4.sub(r2)), u4.props.value) : n3.__; } -function P4(n3, t4) { - c2.useDebugValue && c2.useDebugValue(t4 ? t4(n3) : n3); +function P4(n3, t5) { + c2.useDebugValue && c2.useDebugValue(t5 ? t5(n3) : n3); } function b2(n3) { var u4 = d2(t2++, 10), i4 = h2(); - return u4.__ = n3, r2.componentDidCatch || (r2.componentDidCatch = function(n4, t4) { - u4.__ && u4.__(n4, t4), i4[1](n4); + return u4.__ = n3, r2.componentDidCatch || (r2.componentDidCatch = function(n4, t5) { + u4.__ && u4.__(n4, t5), i4[1](n4); }), [i4[0], function() { i4[1](void 0); }]; @@ -40959,14 +14758,14 @@ function g2() { function j2() { for (var n3; n3 = f2.shift(); ) if (n3.__P && n3.__H) try { n3.__H.__h.forEach(z2), n3.__H.__h.forEach(B2), n3.__H.__h = []; - } catch (t4) { - n3.__H.__h = [], c2.__e(t4, n3.__v); + } catch (t5) { + n3.__H.__h = [], c2.__e(t5, n3.__v); } } c2.__b = function(n3) { r2 = null, e2 && e2(n3); -}, c2.__ = function(n3, t4) { - n3 && t4.__k && t4.__k.__m && (n3.__m = t4.__k.__m), s3 && s3(n3, t4); +}, c2.__ = function(n3, t5) { + n3 && t5.__k && t5.__k.__m && (n3.__m = t5.__k.__m), s3 && s3(n3, t5); }, c2.__r = function(n3) { a2 && a2(n3), t2 = 0; var i4 = (r2 = n3.__c).__H; @@ -40975,78 +14774,78 @@ c2.__b = function(n3) { })) : (i4.__h.forEach(z2), i4.__h.forEach(B2), i4.__h = [], t2 = 0)), u2 = r2; }, c2.diffed = function(n3) { v2 && v2(n3); - var t4 = n3.__c; - t4 && t4.__H && (t4.__H.__h.length && (1 !== f2.push(t4) && i2 === c2.requestAnimationFrame || ((i2 = c2.requestAnimationFrame) || w2)(j2)), t4.__H.__.forEach(function(n4) { + var t5 = n3.__c; + t5 && t5.__H && (t5.__H.__h.length && (1 !== f2.push(t5) && i2 === c2.requestAnimationFrame || ((i2 = c2.requestAnimationFrame) || w2)(j2)), t5.__H.__.forEach(function(n4) { n4.i && (n4.__H = n4.i), n4.i = void 0; })), u2 = r2 = null; -}, c2.__c = function(n3, t4) { - t4.some(function(n4) { +}, c2.__c = function(n3, t5) { + t5.some(function(n4) { try { n4.__h.forEach(z2), n4.__h = n4.__h.filter(function(n5) { return !n5.__ || B2(n5); }); } catch (r4) { - t4.some(function(n5) { + t5.some(function(n5) { n5.__h && (n5.__h = []); - }), t4 = [], c2.__e(r4, n4.__v); + }), t5 = [], c2.__e(r4, n4.__v); } - }), l3 && l3(n3, t4); + }), l3 && l3(n3, t5); }, c2.unmount = function(n3) { m2 && m2(n3); - var t4, r4 = n3.__c; + var t5, r4 = n3.__c; r4 && r4.__H && (r4.__H.__.forEach(function(n4) { try { z2(n4); } catch (n5) { - t4 = n5; + t5 = n5; } - }), r4.__H = void 0, t4 && c2.__e(t4, r4.__v)); + }), r4.__H = void 0, t5 && c2.__e(t5, r4.__v)); }; var k2 = "function" == typeof requestAnimationFrame; function w2(n3) { - var t4, r4 = function() { - clearTimeout(u4), k2 && cancelAnimationFrame(t4), setTimeout(n3); + var t5, r4 = function() { + clearTimeout(u4), k2 && cancelAnimationFrame(t5), setTimeout(n3); }, u4 = setTimeout(r4, 100); - k2 && (t4 = requestAnimationFrame(r4)); + k2 && (t5 = requestAnimationFrame(r4)); } function z2(n3) { - var t4 = r2, u4 = n3.__c; - "function" == typeof u4 && (n3.__c = void 0, u4()), r2 = t4; + var t5 = r2, u4 = n3.__c; + "function" == typeof u4 && (n3.__c = void 0, u4()), r2 = t5; } function B2(n3) { - var t4 = r2; - n3.__c = n3.__(), r2 = t4; + var t5 = r2; + n3.__c = n3.__(), r2 = t5; } -function C2(n3, t4) { - return !n3 || n3.length !== t4.length || t4.some(function(t5, r4) { - return t5 !== n3[r4]; +function C2(n3, t5) { + return !n3 || n3.length !== t5.length || t5.some(function(t6, r4) { + return t6 !== n3[r4]; }); } -function D2(n3, t4) { - return "function" == typeof t4 ? t4(n3) : t4; +function D2(n3, t5) { + return "function" == typeof t5 ? t5(n3) : t5; } -// node_modules/preact/compat/dist/compat.mjs -function g3(n3, t4) { - for (var e3 in n3) if ("__source" !== e3 && !(e3 in t4)) return true; - for (var r4 in t4) if ("__source" !== r4 && n3[r4] !== t4[r4]) return true; +// node_modules/preact/compat/dist/compat.module.js +function g3(n3, t5) { + for (var e3 in n3) if ("__source" !== e3 && !(e3 in t5)) return true; + for (var r4 in t5) if ("__source" !== r4 && n3[r4] !== t5[r4]) return true; return false; } -function E2(n3, t4) { - this.props = n3, this.context = t4; +function E2(n3, t5) { + this.props = n3, this.context = t5; } function C3(n3, e3) { function r4(n4) { - var t4 = this.props.ref, r5 = t4 == n4.ref; - return !r5 && t4 && (t4.call ? t4(null) : t4.current = null), e3 ? !e3(this.props, n4) || !r5 : g3(this.props, n4); + var t5 = this.props.ref, r5 = t5 == n4.ref; + return !r5 && t5 && (t5.call ? t5(null) : t5.current = null), e3 ? !e3(this.props, n4) || !r5 : g3(this.props, n4); } function u4(e4) { return this.shouldComponentUpdate = r4, _(n3, e4); } return u4.displayName = "Memo(" + (n3.displayName || n3.name) + ")", u4.prototype.isReactComponent = true, u4.__f = true, u4; } -(E2.prototype = new k()).isPureReactComponent = true, E2.prototype.shouldComponentUpdate = function(n3, t4) { - return g3(this.props, n3) || g3(this.state, t4); +(E2.prototype = new k()).isPureReactComponent = true, E2.prototype.shouldComponentUpdate = function(n3, t5) { + return g3(this.props, n3) || g3(this.state, t5); }; var x3 = l2.__b; l2.__b = function(n3) { @@ -41054,54 +14853,54 @@ l2.__b = function(n3) { }; var R = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; function w3(n3) { - function t4(t5) { - if (!("ref" in t5)) return n3(t5, null); - var e3 = t5.ref; - delete t5.ref; - var r4 = n3(t5, e3); - return t5.ref = e3, r4; + function t5(t6) { + if (!("ref" in t6)) return n3(t6, null); + var e3 = t6.ref; + delete t6.ref; + var r4 = n3(t6, e3); + return t6.ref = e3, r4; } - return t4.$$typeof = R, t4.render = t4, t4.prototype.isReactComponent = t4.__f = true, t4.displayName = "ForwardRef(" + (n3.displayName || n3.name) + ")", t4; + return t5.$$typeof = R, t5.render = t5, t5.prototype.isReactComponent = t5.__f = true, t5.displayName = "ForwardRef(" + (n3.displayName || n3.name) + ")", t5; } -var k3 = function(n3, t4) { - return null == n3 ? null : H(H(n3).map(t4)); +var k3 = function(n3, t5) { + return null == n3 ? null : H(H(n3).map(t5)); }; var I2 = { map: k3, forEach: k3, count: function(n3) { return n3 ? H(n3).length : 0; }, only: function(n3) { - var t4 = H(n3); - if (1 !== t4.length) throw "Children.only"; - return t4[0]; + var t5 = H(n3); + if (1 !== t5.length) throw "Children.only"; + return t5[0]; }, toArray: H }; var N2 = l2.__e; -l2.__e = function(n3, t4, e3, r4) { +l2.__e = function(n3, t5, e3, r4) { if (n3.then) { - for (var u4, o4 = t4; o4 = o4.__; ) if ((u4 = o4.__c) && u4.__c) return null == t4.__e && (t4.__e = e3.__e, t4.__k = e3.__k), u4.__c(n3, t4); + for (var u4, o4 = t5; o4 = o4.__; ) if ((u4 = o4.__c) && u4.__c) return null == t5.__e && (t5.__e = e3.__e, t5.__k = e3.__k), u4.__c(n3, t5); } - N2(n3, t4, e3, r4); + N2(n3, t5, e3, r4); }; var M2 = l2.unmount; -function T3(n3, t4, e3) { +function T3(n3, t5, e3) { return n3 && (n3.__c && n3.__c.__H && (n3.__c.__H.__.forEach(function(n4) { "function" == typeof n4.__c && n4.__c(); - }), n3.__c.__H = null), null != (n3 = function(n4, t5) { - for (var e4 in t5) n4[e4] = t5[e4]; + }), n3.__c.__H = null), null != (n3 = function(n4, t6) { + for (var e4 in t6) n4[e4] = t6[e4]; return n4; - }({}, n3)).__c && (n3.__c.__P === e3 && (n3.__c.__P = t4), n3.__c = null), n3.__k = n3.__k && n3.__k.map(function(n4) { - return T3(n4, t4, e3); + }({}, n3)).__c && (n3.__c.__P === e3 && (n3.__c.__P = t5), n3.__c = null), n3.__k = n3.__k && n3.__k.map(function(n4) { + return T3(n4, t5, e3); })), n3; } -function A3(n3, t4, e3) { +function A3(n3, t5, e3) { return n3 && e3 && (n3.__v = null, n3.__k = n3.__k && n3.__k.map(function(n4) { - return A3(n4, t4, e3); - }), n3.__c && n3.__c.__P === t4 && (n3.__e && e3.appendChild(n3.__e), n3.__c.__e = true, n3.__c.__P = e3)), n3; + return A3(n4, t5, e3); + }), n3.__c && n3.__c.__P === t5 && (n3.__e && e3.appendChild(n3.__e), n3.__c.__e = true, n3.__c.__P = e3)), n3; } function D3() { this.__u = 0, this.t = null, this.__b = null; } function L2(n3) { - var t4 = n3.__.__c; - return t4 && t4.__a && t4.__a(n3); + var t5 = n3.__.__c; + return t5 && t5.__a && t5.__a(n3); } function O2(n3) { var e3, r4, u4; @@ -41120,10 +14919,10 @@ function F3() { this.u = null, this.o = null; } l2.unmount = function(n3) { - var t4 = n3.__c; - t4 && t4.__R && t4.__R(), t4 && 32 & n3.__u && (n3.type = null), M2 && M2(n3); -}, (D3.prototype = new k()).__c = function(n3, t4) { - var e3 = t4.__c, r4 = this; + var t5 = n3.__c; + t5 && t5.__R && t5.__R(), t5 && 32 & n3.__u && (n3.type = null), M2 && M2(n3); +}, (D3.prototype = new k()).__c = function(n3, t5) { + var e3 = t5.__c, r4 = this; null == r4.t && (r4.t = []), r4.t.push(e3); var u4 = L2(r4.__v), o4 = false, i4 = function() { o4 || (o4 = true, e3.__R = null, u4 ? u4(c4) : c4()); @@ -41135,11 +14934,11 @@ l2.unmount = function(n3) { var n4 = r4.state.__a; r4.__v.__k[0] = A3(n4, n4.__c.__P, n4.__c.__O); } - var t5; - for (r4.setState({ __a: r4.__b = null }); t5 = r4.t.pop(); ) t5.forceUpdate(); + var t6; + for (r4.setState({ __a: r4.__b = null }); t6 = r4.t.pop(); ) t6.forceUpdate(); } }; - r4.__u++ || 32 & t4.__u || r4.setState({ __a: r4.__b = r4.__v.__k[0] }), n3.then(i4, i4); + r4.__u++ || 32 & t5.__u || r4.setState({ __a: r4.__b = r4.__v.__k[0] }), n3.then(i4, i4); }, D3.prototype.componentWillUnmount = function() { this.t = []; }, D3.prototype.render = function(n3, e3) { @@ -41153,8 +14952,8 @@ l2.unmount = function(n3) { var i4 = e3.__a && _(b, null, n3.fallback); return i4 && (i4.__u &= -33), [_(b, null, e3.__a ? null : n3.children), i4]; }; -var U = function(n3, t4, e3) { - if (++e3[1] === e3[0] && n3.o.delete(t4), n3.props.revealOrder && ("t" !== n3.props.revealOrder[0] || !n3.o.size)) for (e3 = n3.u; e3; ) { +var U = function(n3, t5, e3) { + if (++e3[1] === e3[0] && n3.o.delete(t5), n3.props.revealOrder && ("t" !== n3.props.revealOrder[0] || !n3.o.size)) for (e3 = n3.u; e3; ) { for (; e3.length > 3; ) e3.pop()(); if (e3[1] < e3[0]) break; n3.u = e3 = e3[2]; @@ -41173,7 +14972,7 @@ function W(n3) { return true; }, appendChild: function(n4) { this.childNodes.push(n4), e3.i.appendChild(n4); - }, insertBefore: function(n4, t4) { + }, insertBefore: function(n4, t5) { this.childNodes.push(n4), e3.i.appendChild(n4); }, removeChild: function(n4) { this.childNodes.splice(this.childNodes.indexOf(n4) >>> 1, 1), e3.i.removeChild(n4); @@ -41184,23 +14983,23 @@ function P5(n3, e3) { return r4.containerInfo = e3, r4; } (F3.prototype = new k()).__a = function(n3) { - var t4 = this, e3 = L2(t4.__v), r4 = t4.o.get(n3); + var t5 = this, e3 = L2(t5.__v), r4 = t5.o.get(n3); return r4[0]++, function(u4) { var o4 = function() { - t4.props.revealOrder ? (r4.push(u4), U(t4, n3, r4)) : u4(); + t5.props.revealOrder ? (r4.push(u4), U(t5, n3, r4)) : u4(); }; e3 ? e3(o4) : o4(); }; }, F3.prototype.render = function(n3) { this.u = null, this.o = /* @__PURE__ */ new Map(); - var t4 = H(n3.children); - n3.revealOrder && "b" === n3.revealOrder[0] && t4.reverse(); - for (var e3 = t4.length; e3--; ) this.o.set(t4[e3], this.u = [1, 0, this.u]); + var t5 = H(n3.children); + n3.revealOrder && "b" === n3.revealOrder[0] && t5.reverse(); + for (var e3 = t5.length; e3--; ) this.o.set(t5[e3], this.u = [1, 0, this.u]); return n3.children; }, F3.prototype.componentDidUpdate = F3.prototype.componentDidMount = function() { var n3 = this; - this.o.forEach(function(t4, e3) { - U(n3, e3, t4); + this.o.forEach(function(t5, e3) { + U(n3, e3, t5); }); }; var j3 = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103; @@ -41211,17 +15010,17 @@ var Z = "undefined" != typeof document; var Y = function(n3) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n3); }; -function $2(n3, t4, e3) { - return null == t4.__k && (t4.textContent = ""), B(n3, t4), "function" == typeof e3 && e3(), n3 ? n3.__c : null; +function $2(n3, t5, e3) { + return null == t5.__k && (t5.textContent = ""), B(n3, t5), "function" == typeof e3 && e3(), n3 ? n3.__c : null; } -function q3(n3, t4, e3) { - return D(n3, t4), "function" == typeof e3 && e3(), n3 ? n3.__c : null; +function q3(n3, t5, e3) { + return D(n3, t5), "function" == typeof e3 && e3(), n3 ? n3.__c : null; } -k.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t4) { - Object.defineProperty(k.prototype, t4, { configurable: true, get: function() { - return this["UNSAFE_" + t4]; +k.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t5) { + Object.defineProperty(k.prototype, t5, { configurable: true, get: function() { + return this["UNSAFE_" + t5]; }, set: function(n3) { - Object.defineProperty(this, t4, { configurable: true, writable: true, value: n3 }); + Object.defineProperty(this, t5, { configurable: true, writable: true, value: n3 }); } }); }); var G2 = l2.event; @@ -41243,19 +15042,19 @@ var nn = { enumerable: false, configurable: true, get: function() { var tn = l2.vnode; l2.vnode = function(n3) { "string" == typeof n3.type && function(n4) { - var t4 = n4.props, e3 = n4.type, u4 = {}, o4 = -1 === e3.indexOf("-"); - for (var i4 in t4) { - var c4 = t4[i4]; - if (!("value" === i4 && "defaultValue" in t4 && null == c4 || Z && "children" === i4 && "noscript" === e3 || "class" === i4 || "className" === i4)) { + var t5 = n4.props, e3 = n4.type, u4 = {}, o4 = -1 === e3.indexOf("-"); + for (var i4 in t5) { + var c4 = t5[i4]; + if (!("value" === i4 && "defaultValue" in t5 && null == c4 || Z && "children" === i4 && "noscript" === e3 || "class" === i4 || "className" === i4)) { var f4 = i4.toLowerCase(); - "defaultValue" === i4 && "value" in t4 && null == t4.value ? i4 = "value" : "download" === i4 && true === c4 ? c4 = "" : "translate" === f4 && "no" === c4 ? c4 = false : "o" === f4[0] && "n" === f4[1] ? "ondoubleclick" === f4 ? i4 = "ondblclick" : "onchange" !== f4 || "input" !== e3 && "textarea" !== e3 || Y(t4.type) ? "onfocus" === f4 ? i4 = "onfocusin" : "onblur" === f4 ? i4 = "onfocusout" : B3.test(i4) && (i4 = f4) : f4 = i4 = "oninput" : o4 && z3.test(i4) ? i4 = i4.replace(H2, "-$&").toLowerCase() : null === c4 && (c4 = void 0), "oninput" === f4 && u4[i4 = f4] && (i4 = "oninputCapture"), u4[i4] = c4; + "defaultValue" === i4 && "value" in t5 && null == t5.value ? i4 = "value" : "download" === i4 && true === c4 ? c4 = "" : "translate" === f4 && "no" === c4 ? c4 = false : "o" === f4[0] && "n" === f4[1] ? "ondoubleclick" === f4 ? i4 = "ondblclick" : "onchange" !== f4 || "input" !== e3 && "textarea" !== e3 || Y(t5.type) ? "onfocus" === f4 ? i4 = "onfocusin" : "onblur" === f4 ? i4 = "onfocusout" : B3.test(i4) && (i4 = f4) : f4 = i4 = "oninput" : o4 && z3.test(i4) ? i4 = i4.replace(H2, "-$&").toLowerCase() : null === c4 && (c4 = void 0), "oninput" === f4 && u4[i4 = f4] && (i4 = "oninputCapture"), u4[i4] = c4; } } - "select" == e3 && u4.multiple && Array.isArray(u4.value) && (u4.value = H(t4.children).forEach(function(n5) { + "select" == e3 && u4.multiple && Array.isArray(u4.value) && (u4.value = H(t5.children).forEach(function(n5) { n5.props.selected = -1 != u4.value.indexOf(n5.props.value); - })), "select" == e3 && null != u4.defaultValue && (u4.value = H(t4.children).forEach(function(n5) { + })), "select" == e3 && null != u4.defaultValue && (u4.value = H(t5.children).forEach(function(n5) { n5.props.selected = u4.multiple ? -1 != u4.defaultValue.indexOf(n5.props.value) : u4.defaultValue == n5.props.value; - })), t4.class && !t4.className ? (u4.class = t4.class, Object.defineProperty(u4, "className", nn)) : (t4.className && !t4.class || t4.class && t4.className) && (u4.class = u4.className = t4.className), n4.props = u4; + })), t5.class && !t5.className ? (u4.class = t5.class, Object.defineProperty(u4, "className", nn)) : (t5.className && !t5.class || t5.class && t5.className) && (u4.class = u4.className = t5.className), n4.props = u4; }(n3), n3.$$typeof = j3, tn && tn(n3); }; var en = l2.__r; @@ -41265,8 +15064,8 @@ l2.__r = function(n3) { var rn = l2.diffed; l2.diffed = function(n3) { rn && rn(n3); - var t4 = n3.props, e3 = n3.__e; - null != e3 && "textarea" === n3.type && "value" in t4 && t4.value !== e3.value && (e3.value = null == t4.value ? "" : t4.value), X = null; + var t5 = n3.props, e3 = n3.__e; + null != e3 && "textarea" === n3.type && "value" in t5 && t5.value !== e3.value && (e3.value = null == t5.value ? "" : t5.value), X = null; }; var un = { ReactCurrentDispatcher: { current: { readContext: function(n3) { return X.__n[n3.__c].props.value; @@ -41292,11 +15091,11 @@ function hn(n3) { function vn(n3) { return n3 && (n3.base || 1 === n3.nodeType && n3) || null; } -var dn = function(n3, t4) { - return n3(t4); +var dn = function(n3, t5) { + return n3(t5); }; -var pn = function(n3, t4) { - return n3(t4); +var pn = function(n3, t5) { + return n3(t5); }; var mn = b; function yn(n3) { @@ -41310,34 +15109,34 @@ function bn() { } var Sn = _2; var gn = fn; -function En(n3, t4) { - var e3 = t4(), r4 = h2({ h: { __: e3, v: t4 } }), u4 = r4[0].h, o4 = r4[1]; +function En(n3, t5) { + var e3 = t5(), r4 = h2({ h: { __: e3, v: t5 } }), u4 = r4[0].h, o4 = r4[1]; return _2(function() { - u4.__ = e3, u4.v = t4, Cn(u4) && o4({ h: u4 }); - }, [n3, e3, t4]), y2(function() { + u4.__ = e3, u4.v = t5, Cn(u4) && o4({ h: u4 }); + }, [n3, e3, t5]), y2(function() { return Cn(u4) && o4({ h: u4 }), n3(function() { Cn(u4) && o4({ h: u4 }); }); }, [n3]), e3; } function Cn(n3) { - var t4, e3, r4 = n3.v, u4 = n3.__; + var t5, e3, r4 = n3.v, u4 = n3.__; try { var o4 = r4(); - return !((t4 = u4) === (e3 = o4) && (0 !== t4 || 1 / t4 == 1 / e3) || t4 != t4 && e3 != e3); + return !((t5 = u4) === (e3 = o4) && (0 !== t5 || 1 / t5 == 1 / e3) || t5 != t5 && e3 != e3); } catch (n4) { return true; } } var xn = { useState: h2, useId: g2, useReducer: p2, useEffect: y2, useLayoutEffect: _2, useInsertionEffect: Sn, useTransition: bn, useDeferredValue: _n, useSyncExternalStore: En, startTransition: yn, useRef: A2, useImperativeHandle: F2, useMemo: T2, useCallback: q2, useContext: x2, useDebugValue: P4, version: "18.3.1", Children: I2, render: $2, hydrate: q3, unmountComponentAtNode: hn, createPortal: P5, createElement: _, createContext: G, createFactory: cn, cloneElement: sn, createRef: m, Fragment: b, isValidElement: fn, isElement: gn, isFragment: ln, isMemo: an, findDOMNode: vn, Component: k, PureComponent: E2, memo: C3, forwardRef: w3, flushSync: pn, unstable_batchedUpdates: dn, StrictMode: mn, Suspense: D3, SuspenseList: F3, lazy: O2, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: un }; -// node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +// node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js var f3 = 0; var i3 = Array.isArray; -function u3(e3, t4, n3, o4, i4, u4) { - t4 || (t4 = {}); - var a4, c4, l4 = t4; - "ref" in t4 && (a4 = t4.ref, delete t4.ref); +function u3(e3, t5, n3, o4, i4, u4) { + t5 || (t5 = {}); + var a4, c4, l4 = t5; + "ref" in t5 && (a4 = t5.ref, delete t5.ref); var p3 = { type: e3, props: l4, key: n3, ref: a4, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: --f3, __i: -1, __u: 0, __source: i4, __self: u4 }; if ("function" == typeof e3 && (a4 = e3.defaultProps)) for (c4 in a4) void 0 === l4[c4] && (l4[c4] = a4[c4]); return l2.vnode && l2.vnode(p3), p3; @@ -41419,9 +15218,9 @@ function LineSpanEmbed({ function useLineSpan(path, start, end2) { const app = x2(APP_CONTEXT); const datacore = x2(DATACORE_CONTEXT); - const [state, update] = p2( - (state2, event) => { - if (state2.type == "loaded" && event.type !== "loaded") return state2; + const [state2, update] = p2( + (state3, event) => { + if (state3.type == "loaded" && event.type !== "loaded") return state3; else return event; }, { type: "loading" } @@ -41438,7 +15237,7 @@ function useLineSpan(path, start, end2) { update({ type: "error", message: error.message }); }); }, [path, start, end2]); - return state; + return state2; } // src/ui/markdown.tsx @@ -41577,8 +15376,8 @@ function RawLit({ return /* @__PURE__ */ u3("ul", { className: "dataview dataview-ul dataview-result-list-ul", children: value.map((subvalue) => /* @__PURE__ */ u3("li", { className: "dataview-result-list-li", children: /* @__PURE__ */ u3(Lit, { value: subvalue, sourcePath, inline: inline2, depth: depth + 1 }) })) }); } else { if (value.length == 0) return /* @__PURE__ */ u3(b, { children: "" }); - return /* @__PURE__ */ u3("span", { className: "dataview dataview-result-list-span", children: value.map((subvalue, index) => /* @__PURE__ */ u3(b, { children: [ - index == 0 ? "" : ", ", + return /* @__PURE__ */ u3("span", { className: "dataview dataview-result-list-span", children: value.map((subvalue, index2) => /* @__PURE__ */ u3(b, { children: [ + index2 == 0 ? "" : ", ", /* @__PURE__ */ u3(Lit, { value: subvalue, sourcePath, inline: inline2, depth: depth + 1 }) ] })) }); } @@ -41598,8 +15397,8 @@ function RawLit({ ] })) }); } else { if (Object.keys(value).length == 0) return /* @__PURE__ */ u3(b, { children: "" }); - return /* @__PURE__ */ u3("span", { className: "dataview dataview-result-object-span", children: Object.entries(value).map(([key, value2], index) => /* @__PURE__ */ u3(b, { children: [ - index == 0 ? "" : ", ", + return /* @__PURE__ */ u3("span", { className: "dataview dataview-result-object-span", children: Object.entries(value).map(([key, value2], index2) => /* @__PURE__ */ u3(b, { children: [ + index2 == 0 ? "" : ", ", key, ": ", /* @__PURE__ */ u3(Lit, { value: value2, sourcePath, inline: inline2, depth: depth + 1 }) @@ -41642,18 +15441,20034 @@ function SimpleErrorBoundary({ // src/ui/javascript.tsx var import_obsidian3 = require("obsidian"); +// node_modules/sucrase/dist/esm/parser/tokenizer/keywords.js +var ContextualKeyword; +(function(ContextualKeyword2) { + const NONE = 0; + ContextualKeyword2[ContextualKeyword2["NONE"] = NONE] = "NONE"; + const _abstract = NONE + 1; + ContextualKeyword2[ContextualKeyword2["_abstract"] = _abstract] = "_abstract"; + const _accessor = _abstract + 1; + ContextualKeyword2[ContextualKeyword2["_accessor"] = _accessor] = "_accessor"; + const _as = _accessor + 1; + ContextualKeyword2[ContextualKeyword2["_as"] = _as] = "_as"; + const _assert = _as + 1; + ContextualKeyword2[ContextualKeyword2["_assert"] = _assert] = "_assert"; + const _asserts = _assert + 1; + ContextualKeyword2[ContextualKeyword2["_asserts"] = _asserts] = "_asserts"; + const _async = _asserts + 1; + ContextualKeyword2[ContextualKeyword2["_async"] = _async] = "_async"; + const _await = _async + 1; + ContextualKeyword2[ContextualKeyword2["_await"] = _await] = "_await"; + const _checks = _await + 1; + ContextualKeyword2[ContextualKeyword2["_checks"] = _checks] = "_checks"; + const _constructor = _checks + 1; + ContextualKeyword2[ContextualKeyword2["_constructor"] = _constructor] = "_constructor"; + const _declare = _constructor + 1; + ContextualKeyword2[ContextualKeyword2["_declare"] = _declare] = "_declare"; + const _enum = _declare + 1; + ContextualKeyword2[ContextualKeyword2["_enum"] = _enum] = "_enum"; + const _exports = _enum + 1; + ContextualKeyword2[ContextualKeyword2["_exports"] = _exports] = "_exports"; + const _from = _exports + 1; + ContextualKeyword2[ContextualKeyword2["_from"] = _from] = "_from"; + const _get = _from + 1; + ContextualKeyword2[ContextualKeyword2["_get"] = _get] = "_get"; + const _global = _get + 1; + ContextualKeyword2[ContextualKeyword2["_global"] = _global] = "_global"; + const _implements = _global + 1; + ContextualKeyword2[ContextualKeyword2["_implements"] = _implements] = "_implements"; + const _infer = _implements + 1; + ContextualKeyword2[ContextualKeyword2["_infer"] = _infer] = "_infer"; + const _interface = _infer + 1; + ContextualKeyword2[ContextualKeyword2["_interface"] = _interface] = "_interface"; + const _is = _interface + 1; + ContextualKeyword2[ContextualKeyword2["_is"] = _is] = "_is"; + const _keyof = _is + 1; + ContextualKeyword2[ContextualKeyword2["_keyof"] = _keyof] = "_keyof"; + const _mixins = _keyof + 1; + ContextualKeyword2[ContextualKeyword2["_mixins"] = _mixins] = "_mixins"; + const _module = _mixins + 1; + ContextualKeyword2[ContextualKeyword2["_module"] = _module] = "_module"; + const _namespace = _module + 1; + ContextualKeyword2[ContextualKeyword2["_namespace"] = _namespace] = "_namespace"; + const _of = _namespace + 1; + ContextualKeyword2[ContextualKeyword2["_of"] = _of] = "_of"; + const _opaque = _of + 1; + ContextualKeyword2[ContextualKeyword2["_opaque"] = _opaque] = "_opaque"; + const _out = _opaque + 1; + ContextualKeyword2[ContextualKeyword2["_out"] = _out] = "_out"; + const _override = _out + 1; + ContextualKeyword2[ContextualKeyword2["_override"] = _override] = "_override"; + const _private = _override + 1; + ContextualKeyword2[ContextualKeyword2["_private"] = _private] = "_private"; + const _protected = _private + 1; + ContextualKeyword2[ContextualKeyword2["_protected"] = _protected] = "_protected"; + const _proto = _protected + 1; + ContextualKeyword2[ContextualKeyword2["_proto"] = _proto] = "_proto"; + const _public = _proto + 1; + ContextualKeyword2[ContextualKeyword2["_public"] = _public] = "_public"; + const _readonly = _public + 1; + ContextualKeyword2[ContextualKeyword2["_readonly"] = _readonly] = "_readonly"; + const _require = _readonly + 1; + ContextualKeyword2[ContextualKeyword2["_require"] = _require] = "_require"; + const _satisfies = _require + 1; + ContextualKeyword2[ContextualKeyword2["_satisfies"] = _satisfies] = "_satisfies"; + const _set = _satisfies + 1; + ContextualKeyword2[ContextualKeyword2["_set"] = _set] = "_set"; + const _static = _set + 1; + ContextualKeyword2[ContextualKeyword2["_static"] = _static] = "_static"; + const _symbol = _static + 1; + ContextualKeyword2[ContextualKeyword2["_symbol"] = _symbol] = "_symbol"; + const _type = _symbol + 1; + ContextualKeyword2[ContextualKeyword2["_type"] = _type] = "_type"; + const _unique = _type + 1; + ContextualKeyword2[ContextualKeyword2["_unique"] = _unique] = "_unique"; + const _using = _unique + 1; + ContextualKeyword2[ContextualKeyword2["_using"] = _using] = "_using"; +})(ContextualKeyword || (ContextualKeyword = {})); + +// node_modules/sucrase/dist/esm/parser/tokenizer/types.js +var TokenType; +(function(TokenType2) { + const PRECEDENCE_MASK = 15; + TokenType2[TokenType2["PRECEDENCE_MASK"] = PRECEDENCE_MASK] = "PRECEDENCE_MASK"; + const IS_KEYWORD = 1 << 4; + TokenType2[TokenType2["IS_KEYWORD"] = IS_KEYWORD] = "IS_KEYWORD"; + const IS_ASSIGN = 1 << 5; + TokenType2[TokenType2["IS_ASSIGN"] = IS_ASSIGN] = "IS_ASSIGN"; + const IS_RIGHT_ASSOCIATIVE = 1 << 6; + TokenType2[TokenType2["IS_RIGHT_ASSOCIATIVE"] = IS_RIGHT_ASSOCIATIVE] = "IS_RIGHT_ASSOCIATIVE"; + const IS_PREFIX = 1 << 7; + TokenType2[TokenType2["IS_PREFIX"] = IS_PREFIX] = "IS_PREFIX"; + const IS_POSTFIX = 1 << 8; + TokenType2[TokenType2["IS_POSTFIX"] = IS_POSTFIX] = "IS_POSTFIX"; + const IS_EXPRESSION_START = 1 << 9; + TokenType2[TokenType2["IS_EXPRESSION_START"] = IS_EXPRESSION_START] = "IS_EXPRESSION_START"; + const num = 512; + TokenType2[TokenType2["num"] = num] = "num"; + const bigint = 1536; + TokenType2[TokenType2["bigint"] = bigint] = "bigint"; + const decimal = 2560; + TokenType2[TokenType2["decimal"] = decimal] = "decimal"; + const regexp3 = 3584; + TokenType2[TokenType2["regexp"] = regexp3] = "regexp"; + const string2 = 4608; + TokenType2[TokenType2["string"] = string2] = "string"; + const name = 5632; + TokenType2[TokenType2["name"] = name] = "name"; + const eof = 6144; + TokenType2[TokenType2["eof"] = eof] = "eof"; + const bracketL = 7680; + TokenType2[TokenType2["bracketL"] = bracketL] = "bracketL"; + const bracketR = 8192; + TokenType2[TokenType2["bracketR"] = bracketR] = "bracketR"; + const braceL = 9728; + TokenType2[TokenType2["braceL"] = braceL] = "braceL"; + const braceBarL = 10752; + TokenType2[TokenType2["braceBarL"] = braceBarL] = "braceBarL"; + const braceR = 11264; + TokenType2[TokenType2["braceR"] = braceR] = "braceR"; + const braceBarR = 12288; + TokenType2[TokenType2["braceBarR"] = braceBarR] = "braceBarR"; + const parenL = 13824; + TokenType2[TokenType2["parenL"] = parenL] = "parenL"; + const parenR = 14336; + TokenType2[TokenType2["parenR"] = parenR] = "parenR"; + const comma = 15360; + TokenType2[TokenType2["comma"] = comma] = "comma"; + const semi = 16384; + TokenType2[TokenType2["semi"] = semi] = "semi"; + const colon = 17408; + TokenType2[TokenType2["colon"] = colon] = "colon"; + const doubleColon = 18432; + TokenType2[TokenType2["doubleColon"] = doubleColon] = "doubleColon"; + const dot = 19456; + TokenType2[TokenType2["dot"] = dot] = "dot"; + const question = 20480; + TokenType2[TokenType2["question"] = question] = "question"; + const questionDot = 21504; + TokenType2[TokenType2["questionDot"] = questionDot] = "questionDot"; + const arrow2 = 22528; + TokenType2[TokenType2["arrow"] = arrow2] = "arrow"; + const template = 23552; + TokenType2[TokenType2["template"] = template] = "template"; + const ellipsis = 24576; + TokenType2[TokenType2["ellipsis"] = ellipsis] = "ellipsis"; + const backQuote = 25600; + TokenType2[TokenType2["backQuote"] = backQuote] = "backQuote"; + const dollarBraceL = 27136; + TokenType2[TokenType2["dollarBraceL"] = dollarBraceL] = "dollarBraceL"; + const at = 27648; + TokenType2[TokenType2["at"] = at] = "at"; + const hash2 = 29184; + TokenType2[TokenType2["hash"] = hash2] = "hash"; + const eq = 29728; + TokenType2[TokenType2["eq"] = eq] = "eq"; + const assign2 = 30752; + TokenType2[TokenType2["assign"] = assign2] = "assign"; + const preIncDec = 32640; + TokenType2[TokenType2["preIncDec"] = preIncDec] = "preIncDec"; + const postIncDec = 33664; + TokenType2[TokenType2["postIncDec"] = postIncDec] = "postIncDec"; + const bang = 34432; + TokenType2[TokenType2["bang"] = bang] = "bang"; + const tilde = 35456; + TokenType2[TokenType2["tilde"] = tilde] = "tilde"; + const pipeline = 35841; + TokenType2[TokenType2["pipeline"] = pipeline] = "pipeline"; + const nullishCoalescing = 36866; + TokenType2[TokenType2["nullishCoalescing"] = nullishCoalescing] = "nullishCoalescing"; + const logicalOR = 37890; + TokenType2[TokenType2["logicalOR"] = logicalOR] = "logicalOR"; + const logicalAND = 38915; + TokenType2[TokenType2["logicalAND"] = logicalAND] = "logicalAND"; + const bitwiseOR = 39940; + TokenType2[TokenType2["bitwiseOR"] = bitwiseOR] = "bitwiseOR"; + const bitwiseXOR = 40965; + TokenType2[TokenType2["bitwiseXOR"] = bitwiseXOR] = "bitwiseXOR"; + const bitwiseAND = 41990; + TokenType2[TokenType2["bitwiseAND"] = bitwiseAND] = "bitwiseAND"; + const equality = 43015; + TokenType2[TokenType2["equality"] = equality] = "equality"; + const lessThan = 44040; + TokenType2[TokenType2["lessThan"] = lessThan] = "lessThan"; + const greaterThan = 45064; + TokenType2[TokenType2["greaterThan"] = greaterThan] = "greaterThan"; + const relationalOrEqual = 46088; + TokenType2[TokenType2["relationalOrEqual"] = relationalOrEqual] = "relationalOrEqual"; + const bitShiftL = 47113; + TokenType2[TokenType2["bitShiftL"] = bitShiftL] = "bitShiftL"; + const bitShiftR = 48137; + TokenType2[TokenType2["bitShiftR"] = bitShiftR] = "bitShiftR"; + const plus = 49802; + TokenType2[TokenType2["plus"] = plus] = "plus"; + const minus = 50826; + TokenType2[TokenType2["minus"] = minus] = "minus"; + const modulo = 51723; + TokenType2[TokenType2["modulo"] = modulo] = "modulo"; + const star = 52235; + TokenType2[TokenType2["star"] = star] = "star"; + const slash = 53259; + TokenType2[TokenType2["slash"] = slash] = "slash"; + const exponent = 54348; + TokenType2[TokenType2["exponent"] = exponent] = "exponent"; + const jsxName = 55296; + TokenType2[TokenType2["jsxName"] = jsxName] = "jsxName"; + const jsxText = 56320; + TokenType2[TokenType2["jsxText"] = jsxText] = "jsxText"; + const jsxEmptyText = 57344; + TokenType2[TokenType2["jsxEmptyText"] = jsxEmptyText] = "jsxEmptyText"; + const jsxTagStart = 58880; + TokenType2[TokenType2["jsxTagStart"] = jsxTagStart] = "jsxTagStart"; + const jsxTagEnd = 59392; + TokenType2[TokenType2["jsxTagEnd"] = jsxTagEnd] = "jsxTagEnd"; + const typeParameterStart = 60928; + TokenType2[TokenType2["typeParameterStart"] = typeParameterStart] = "typeParameterStart"; + const nonNullAssertion = 61440; + TokenType2[TokenType2["nonNullAssertion"] = nonNullAssertion] = "nonNullAssertion"; + const _break = 62480; + TokenType2[TokenType2["_break"] = _break] = "_break"; + const _case = 63504; + TokenType2[TokenType2["_case"] = _case] = "_case"; + const _catch = 64528; + TokenType2[TokenType2["_catch"] = _catch] = "_catch"; + const _continue = 65552; + TokenType2[TokenType2["_continue"] = _continue] = "_continue"; + const _debugger = 66576; + TokenType2[TokenType2["_debugger"] = _debugger] = "_debugger"; + const _default2 = 67600; + TokenType2[TokenType2["_default"] = _default2] = "_default"; + const _do = 68624; + TokenType2[TokenType2["_do"] = _do] = "_do"; + const _else = 69648; + TokenType2[TokenType2["_else"] = _else] = "_else"; + const _finally = 70672; + TokenType2[TokenType2["_finally"] = _finally] = "_finally"; + const _for = 71696; + TokenType2[TokenType2["_for"] = _for] = "_for"; + const _function = 73232; + TokenType2[TokenType2["_function"] = _function] = "_function"; + const _if = 73744; + TokenType2[TokenType2["_if"] = _if] = "_if"; + const _return = 74768; + TokenType2[TokenType2["_return"] = _return] = "_return"; + const _switch = 75792; + TokenType2[TokenType2["_switch"] = _switch] = "_switch"; + const _throw = 77456; + TokenType2[TokenType2["_throw"] = _throw] = "_throw"; + const _try = 77840; + TokenType2[TokenType2["_try"] = _try] = "_try"; + const _var = 78864; + TokenType2[TokenType2["_var"] = _var] = "_var"; + const _let = 79888; + TokenType2[TokenType2["_let"] = _let] = "_let"; + const _const = 80912; + TokenType2[TokenType2["_const"] = _const] = "_const"; + const _while = 81936; + TokenType2[TokenType2["_while"] = _while] = "_while"; + const _with = 82960; + TokenType2[TokenType2["_with"] = _with] = "_with"; + const _new = 84496; + TokenType2[TokenType2["_new"] = _new] = "_new"; + const _this = 85520; + TokenType2[TokenType2["_this"] = _this] = "_this"; + const _super = 86544; + TokenType2[TokenType2["_super"] = _super] = "_super"; + const _class = 87568; + TokenType2[TokenType2["_class"] = _class] = "_class"; + const _extends2 = 88080; + TokenType2[TokenType2["_extends"] = _extends2] = "_extends"; + const _export = 89104; + TokenType2[TokenType2["_export"] = _export] = "_export"; + const _import = 90640; + TokenType2[TokenType2["_import"] = _import] = "_import"; + const _yield = 91664; + TokenType2[TokenType2["_yield"] = _yield] = "_yield"; + const _null = 92688; + TokenType2[TokenType2["_null"] = _null] = "_null"; + const _true = 93712; + TokenType2[TokenType2["_true"] = _true] = "_true"; + const _false = 94736; + TokenType2[TokenType2["_false"] = _false] = "_false"; + const _in = 95256; + TokenType2[TokenType2["_in"] = _in] = "_in"; + const _instanceof = 96280; + TokenType2[TokenType2["_instanceof"] = _instanceof] = "_instanceof"; + const _typeof3 = 97936; + TokenType2[TokenType2["_typeof"] = _typeof3] = "_typeof"; + const _void = 98960; + TokenType2[TokenType2["_void"] = _void] = "_void"; + const _delete = 99984; + TokenType2[TokenType2["_delete"] = _delete] = "_delete"; + const _async = 100880; + TokenType2[TokenType2["_async"] = _async] = "_async"; + const _get = 101904; + TokenType2[TokenType2["_get"] = _get] = "_get"; + const _set = 102928; + TokenType2[TokenType2["_set"] = _set] = "_set"; + const _declare = 103952; + TokenType2[TokenType2["_declare"] = _declare] = "_declare"; + const _readonly = 104976; + TokenType2[TokenType2["_readonly"] = _readonly] = "_readonly"; + const _abstract = 106e3; + TokenType2[TokenType2["_abstract"] = _abstract] = "_abstract"; + const _static = 107024; + TokenType2[TokenType2["_static"] = _static] = "_static"; + const _public = 107536; + TokenType2[TokenType2["_public"] = _public] = "_public"; + const _private = 108560; + TokenType2[TokenType2["_private"] = _private] = "_private"; + const _protected = 109584; + TokenType2[TokenType2["_protected"] = _protected] = "_protected"; + const _override = 110608; + TokenType2[TokenType2["_override"] = _override] = "_override"; + const _as = 112144; + TokenType2[TokenType2["_as"] = _as] = "_as"; + const _enum = 113168; + TokenType2[TokenType2["_enum"] = _enum] = "_enum"; + const _type = 114192; + TokenType2[TokenType2["_type"] = _type] = "_type"; + const _implements = 115216; + TokenType2[TokenType2["_implements"] = _implements] = "_implements"; +})(TokenType || (TokenType = {})); +function formatTokenType(tokenType) { + switch (tokenType) { + case TokenType.num: + return "num"; + case TokenType.bigint: + return "bigint"; + case TokenType.decimal: + return "decimal"; + case TokenType.regexp: + return "regexp"; + case TokenType.string: + return "string"; + case TokenType.name: + return "name"; + case TokenType.eof: + return "eof"; + case TokenType.bracketL: + return "["; + case TokenType.bracketR: + return "]"; + case TokenType.braceL: + return "{"; + case TokenType.braceBarL: + return "{|"; + case TokenType.braceR: + return "}"; + case TokenType.braceBarR: + return "|}"; + case TokenType.parenL: + return "("; + case TokenType.parenR: + return ")"; + case TokenType.comma: + return ","; + case TokenType.semi: + return ";"; + case TokenType.colon: + return ":"; + case TokenType.doubleColon: + return "::"; + case TokenType.dot: + return "."; + case TokenType.question: + return "?"; + case TokenType.questionDot: + return "?."; + case TokenType.arrow: + return "=>"; + case TokenType.template: + return "template"; + case TokenType.ellipsis: + return "..."; + case TokenType.backQuote: + return "`"; + case TokenType.dollarBraceL: + return "${"; + case TokenType.at: + return "@"; + case TokenType.hash: + return "#"; + case TokenType.eq: + return "="; + case TokenType.assign: + return "_="; + case TokenType.preIncDec: + return "++/--"; + case TokenType.postIncDec: + return "++/--"; + case TokenType.bang: + return "!"; + case TokenType.tilde: + return "~"; + case TokenType.pipeline: + return "|>"; + case TokenType.nullishCoalescing: + return "??"; + case TokenType.logicalOR: + return "||"; + case TokenType.logicalAND: + return "&&"; + case TokenType.bitwiseOR: + return "|"; + case TokenType.bitwiseXOR: + return "^"; + case TokenType.bitwiseAND: + return "&"; + case TokenType.equality: + return "==/!="; + case TokenType.lessThan: + return "<"; + case TokenType.greaterThan: + return ">"; + case TokenType.relationalOrEqual: + return "<=/>="; + case TokenType.bitShiftL: + return "<<"; + case TokenType.bitShiftR: + return ">>/>>>"; + case TokenType.plus: + return "+"; + case TokenType.minus: + return "-"; + case TokenType.modulo: + return "%"; + case TokenType.star: + return "*"; + case TokenType.slash: + return "/"; + case TokenType.exponent: + return "**"; + case TokenType.jsxName: + return "jsxName"; + case TokenType.jsxText: + return "jsxText"; + case TokenType.jsxEmptyText: + return "jsxEmptyText"; + case TokenType.jsxTagStart: + return "jsxTagStart"; + case TokenType.jsxTagEnd: + return "jsxTagEnd"; + case TokenType.typeParameterStart: + return "typeParameterStart"; + case TokenType.nonNullAssertion: + return "nonNullAssertion"; + case TokenType._break: + return "break"; + case TokenType._case: + return "case"; + case TokenType._catch: + return "catch"; + case TokenType._continue: + return "continue"; + case TokenType._debugger: + return "debugger"; + case TokenType._default: + return "default"; + case TokenType._do: + return "do"; + case TokenType._else: + return "else"; + case TokenType._finally: + return "finally"; + case TokenType._for: + return "for"; + case TokenType._function: + return "function"; + case TokenType._if: + return "if"; + case TokenType._return: + return "return"; + case TokenType._switch: + return "switch"; + case TokenType._throw: + return "throw"; + case TokenType._try: + return "try"; + case TokenType._var: + return "var"; + case TokenType._let: + return "let"; + case TokenType._const: + return "const"; + case TokenType._while: + return "while"; + case TokenType._with: + return "with"; + case TokenType._new: + return "new"; + case TokenType._this: + return "this"; + case TokenType._super: + return "super"; + case TokenType._class: + return "class"; + case TokenType._extends: + return "extends"; + case TokenType._export: + return "export"; + case TokenType._import: + return "import"; + case TokenType._yield: + return "yield"; + case TokenType._null: + return "null"; + case TokenType._true: + return "true"; + case TokenType._false: + return "false"; + case TokenType._in: + return "in"; + case TokenType._instanceof: + return "instanceof"; + case TokenType._typeof: + return "typeof"; + case TokenType._void: + return "void"; + case TokenType._delete: + return "delete"; + case TokenType._async: + return "async"; + case TokenType._get: + return "get"; + case TokenType._set: + return "set"; + case TokenType._declare: + return "declare"; + case TokenType._readonly: + return "readonly"; + case TokenType._abstract: + return "abstract"; + case TokenType._static: + return "static"; + case TokenType._public: + return "public"; + case TokenType._private: + return "private"; + case TokenType._protected: + return "protected"; + case TokenType._override: + return "override"; + case TokenType._as: + return "as"; + case TokenType._enum: + return "enum"; + case TokenType._type: + return "type"; + case TokenType._implements: + return "implements"; + default: + return ""; + } +} + +// node_modules/sucrase/dist/esm/parser/tokenizer/state.js +var Scope = class { + constructor(startTokenIndex, endTokenIndex, isFunctionScope) { + this.startTokenIndex = startTokenIndex; + this.endTokenIndex = endTokenIndex; + this.isFunctionScope = isFunctionScope; + } +}; +var StateSnapshot = class { + constructor(potentialArrowAt, noAnonFunctionType, inDisallowConditionalTypesContext, tokensLength, scopesLength, pos, type, contextualKeyword, start, end2, isType, scopeDepth, error) { + ; + this.potentialArrowAt = potentialArrowAt; + this.noAnonFunctionType = noAnonFunctionType; + this.inDisallowConditionalTypesContext = inDisallowConditionalTypesContext; + this.tokensLength = tokensLength; + this.scopesLength = scopesLength; + this.pos = pos; + this.type = type; + this.contextualKeyword = contextualKeyword; + this.start = start; + this.end = end2; + this.isType = isType; + this.scopeDepth = scopeDepth; + this.error = error; + } +}; +var State = class _State { + constructor() { + _State.prototype.__init.call(this); + _State.prototype.__init2.call(this); + _State.prototype.__init3.call(this); + _State.prototype.__init4.call(this); + _State.prototype.__init5.call(this); + _State.prototype.__init6.call(this); + _State.prototype.__init7.call(this); + _State.prototype.__init8.call(this); + _State.prototype.__init9.call(this); + _State.prototype.__init10.call(this); + _State.prototype.__init11.call(this); + _State.prototype.__init12.call(this); + _State.prototype.__init13.call(this); + } + // Used to signify the start of a potential arrow function + __init() { + this.potentialArrowAt = -1; + } + // Used by Flow to handle an edge case involving function type parsing. + __init2() { + this.noAnonFunctionType = false; + } + // Used by TypeScript to handle ambiguities when parsing conditional types. + __init3() { + this.inDisallowConditionalTypesContext = false; + } + // Token store. + __init4() { + this.tokens = []; + } + // Array of all observed scopes, ordered by their ending position. + __init5() { + this.scopes = []; + } + // The current position of the tokenizer in the input. + __init6() { + this.pos = 0; + } + // Information about the current token. + __init7() { + this.type = TokenType.eof; + } + __init8() { + this.contextualKeyword = ContextualKeyword.NONE; + } + __init9() { + this.start = 0; + } + __init10() { + this.end = 0; + } + __init11() { + this.isType = false; + } + __init12() { + this.scopeDepth = 0; + } + /** + * If the parser is in an error state, then the token is always tt.eof and all functions can + * keep executing but should be written so they don't get into an infinite loop in this situation. + * + * This approach, combined with the ability to snapshot and restore state, allows us to implement + * backtracking without exceptions and without needing to explicitly propagate error states + * everywhere. + */ + __init13() { + this.error = null; + } + snapshot() { + return new StateSnapshot( + this.potentialArrowAt, + this.noAnonFunctionType, + this.inDisallowConditionalTypesContext, + this.tokens.length, + this.scopes.length, + this.pos, + this.type, + this.contextualKeyword, + this.start, + this.end, + this.isType, + this.scopeDepth, + this.error + ); + } + restoreFromSnapshot(snapshot) { + this.potentialArrowAt = snapshot.potentialArrowAt; + this.noAnonFunctionType = snapshot.noAnonFunctionType; + this.inDisallowConditionalTypesContext = snapshot.inDisallowConditionalTypesContext; + this.tokens.length = snapshot.tokensLength; + this.scopes.length = snapshot.scopesLength; + this.pos = snapshot.pos; + this.type = snapshot.type; + this.contextualKeyword = snapshot.contextualKeyword; + this.start = snapshot.start; + this.end = snapshot.end; + this.isType = snapshot.isType; + this.scopeDepth = snapshot.scopeDepth; + this.error = snapshot.error; + } +}; + +// node_modules/sucrase/dist/esm/parser/util/charcodes.js +var charCodes; +(function(charCodes2) { + const backSpace = 8; + charCodes2[charCodes2["backSpace"] = backSpace] = "backSpace"; + const lineFeed = 10; + charCodes2[charCodes2["lineFeed"] = lineFeed] = "lineFeed"; + const tab = 9; + charCodes2[charCodes2["tab"] = tab] = "tab"; + const carriageReturn = 13; + charCodes2[charCodes2["carriageReturn"] = carriageReturn] = "carriageReturn"; + const shiftOut = 14; + charCodes2[charCodes2["shiftOut"] = shiftOut] = "shiftOut"; + const space = 32; + charCodes2[charCodes2["space"] = space] = "space"; + const exclamationMark = 33; + charCodes2[charCodes2["exclamationMark"] = exclamationMark] = "exclamationMark"; + const quotationMark = 34; + charCodes2[charCodes2["quotationMark"] = quotationMark] = "quotationMark"; + const numberSign = 35; + charCodes2[charCodes2["numberSign"] = numberSign] = "numberSign"; + const dollarSign = 36; + charCodes2[charCodes2["dollarSign"] = dollarSign] = "dollarSign"; + const percentSign = 37; + charCodes2[charCodes2["percentSign"] = percentSign] = "percentSign"; + const ampersand = 38; + charCodes2[charCodes2["ampersand"] = ampersand] = "ampersand"; + const apostrophe = 39; + charCodes2[charCodes2["apostrophe"] = apostrophe] = "apostrophe"; + const leftParenthesis = 40; + charCodes2[charCodes2["leftParenthesis"] = leftParenthesis] = "leftParenthesis"; + const rightParenthesis = 41; + charCodes2[charCodes2["rightParenthesis"] = rightParenthesis] = "rightParenthesis"; + const asterisk = 42; + charCodes2[charCodes2["asterisk"] = asterisk] = "asterisk"; + const plusSign = 43; + charCodes2[charCodes2["plusSign"] = plusSign] = "plusSign"; + const comma = 44; + charCodes2[charCodes2["comma"] = comma] = "comma"; + const dash = 45; + charCodes2[charCodes2["dash"] = dash] = "dash"; + const dot = 46; + charCodes2[charCodes2["dot"] = dot] = "dot"; + const slash = 47; + charCodes2[charCodes2["slash"] = slash] = "slash"; + const digit0 = 48; + charCodes2[charCodes2["digit0"] = digit0] = "digit0"; + const digit1 = 49; + charCodes2[charCodes2["digit1"] = digit1] = "digit1"; + const digit2 = 50; + charCodes2[charCodes2["digit2"] = digit2] = "digit2"; + const digit3 = 51; + charCodes2[charCodes2["digit3"] = digit3] = "digit3"; + const digit4 = 52; + charCodes2[charCodes2["digit4"] = digit4] = "digit4"; + const digit5 = 53; + charCodes2[charCodes2["digit5"] = digit5] = "digit5"; + const digit6 = 54; + charCodes2[charCodes2["digit6"] = digit6] = "digit6"; + const digit7 = 55; + charCodes2[charCodes2["digit7"] = digit7] = "digit7"; + const digit8 = 56; + charCodes2[charCodes2["digit8"] = digit8] = "digit8"; + const digit9 = 57; + charCodes2[charCodes2["digit9"] = digit9] = "digit9"; + const colon = 58; + charCodes2[charCodes2["colon"] = colon] = "colon"; + const semicolon2 = 59; + charCodes2[charCodes2["semicolon"] = semicolon2] = "semicolon"; + const lessThan = 60; + charCodes2[charCodes2["lessThan"] = lessThan] = "lessThan"; + const equalsTo = 61; + charCodes2[charCodes2["equalsTo"] = equalsTo] = "equalsTo"; + const greaterThan = 62; + charCodes2[charCodes2["greaterThan"] = greaterThan] = "greaterThan"; + const questionMark = 63; + charCodes2[charCodes2["questionMark"] = questionMark] = "questionMark"; + const atSign = 64; + charCodes2[charCodes2["atSign"] = atSign] = "atSign"; + const uppercaseA = 65; + charCodes2[charCodes2["uppercaseA"] = uppercaseA] = "uppercaseA"; + const uppercaseB = 66; + charCodes2[charCodes2["uppercaseB"] = uppercaseB] = "uppercaseB"; + const uppercaseC = 67; + charCodes2[charCodes2["uppercaseC"] = uppercaseC] = "uppercaseC"; + const uppercaseD = 68; + charCodes2[charCodes2["uppercaseD"] = uppercaseD] = "uppercaseD"; + const uppercaseE = 69; + charCodes2[charCodes2["uppercaseE"] = uppercaseE] = "uppercaseE"; + const uppercaseF = 70; + charCodes2[charCodes2["uppercaseF"] = uppercaseF] = "uppercaseF"; + const uppercaseG = 71; + charCodes2[charCodes2["uppercaseG"] = uppercaseG] = "uppercaseG"; + const uppercaseH = 72; + charCodes2[charCodes2["uppercaseH"] = uppercaseH] = "uppercaseH"; + const uppercaseI = 73; + charCodes2[charCodes2["uppercaseI"] = uppercaseI] = "uppercaseI"; + const uppercaseJ = 74; + charCodes2[charCodes2["uppercaseJ"] = uppercaseJ] = "uppercaseJ"; + const uppercaseK = 75; + charCodes2[charCodes2["uppercaseK"] = uppercaseK] = "uppercaseK"; + const uppercaseL = 76; + charCodes2[charCodes2["uppercaseL"] = uppercaseL] = "uppercaseL"; + const uppercaseM = 77; + charCodes2[charCodes2["uppercaseM"] = uppercaseM] = "uppercaseM"; + const uppercaseN = 78; + charCodes2[charCodes2["uppercaseN"] = uppercaseN] = "uppercaseN"; + const uppercaseO = 79; + charCodes2[charCodes2["uppercaseO"] = uppercaseO] = "uppercaseO"; + const uppercaseP = 80; + charCodes2[charCodes2["uppercaseP"] = uppercaseP] = "uppercaseP"; + const uppercaseQ = 81; + charCodes2[charCodes2["uppercaseQ"] = uppercaseQ] = "uppercaseQ"; + const uppercaseR = 82; + charCodes2[charCodes2["uppercaseR"] = uppercaseR] = "uppercaseR"; + const uppercaseS = 83; + charCodes2[charCodes2["uppercaseS"] = uppercaseS] = "uppercaseS"; + const uppercaseT = 84; + charCodes2[charCodes2["uppercaseT"] = uppercaseT] = "uppercaseT"; + const uppercaseU = 85; + charCodes2[charCodes2["uppercaseU"] = uppercaseU] = "uppercaseU"; + const uppercaseV = 86; + charCodes2[charCodes2["uppercaseV"] = uppercaseV] = "uppercaseV"; + const uppercaseW = 87; + charCodes2[charCodes2["uppercaseW"] = uppercaseW] = "uppercaseW"; + const uppercaseX = 88; + charCodes2[charCodes2["uppercaseX"] = uppercaseX] = "uppercaseX"; + const uppercaseY = 89; + charCodes2[charCodes2["uppercaseY"] = uppercaseY] = "uppercaseY"; + const uppercaseZ = 90; + charCodes2[charCodes2["uppercaseZ"] = uppercaseZ] = "uppercaseZ"; + const leftSquareBracket = 91; + charCodes2[charCodes2["leftSquareBracket"] = leftSquareBracket] = "leftSquareBracket"; + const backslash = 92; + charCodes2[charCodes2["backslash"] = backslash] = "backslash"; + const rightSquareBracket = 93; + charCodes2[charCodes2["rightSquareBracket"] = rightSquareBracket] = "rightSquareBracket"; + const caret2 = 94; + charCodes2[charCodes2["caret"] = caret2] = "caret"; + const underscore = 95; + charCodes2[charCodes2["underscore"] = underscore] = "underscore"; + const graveAccent = 96; + charCodes2[charCodes2["graveAccent"] = graveAccent] = "graveAccent"; + const lowercaseA = 97; + charCodes2[charCodes2["lowercaseA"] = lowercaseA] = "lowercaseA"; + const lowercaseB = 98; + charCodes2[charCodes2["lowercaseB"] = lowercaseB] = "lowercaseB"; + const lowercaseC = 99; + charCodes2[charCodes2["lowercaseC"] = lowercaseC] = "lowercaseC"; + const lowercaseD = 100; + charCodes2[charCodes2["lowercaseD"] = lowercaseD] = "lowercaseD"; + const lowercaseE = 101; + charCodes2[charCodes2["lowercaseE"] = lowercaseE] = "lowercaseE"; + const lowercaseF = 102; + charCodes2[charCodes2["lowercaseF"] = lowercaseF] = "lowercaseF"; + const lowercaseG = 103; + charCodes2[charCodes2["lowercaseG"] = lowercaseG] = "lowercaseG"; + const lowercaseH = 104; + charCodes2[charCodes2["lowercaseH"] = lowercaseH] = "lowercaseH"; + const lowercaseI = 105; + charCodes2[charCodes2["lowercaseI"] = lowercaseI] = "lowercaseI"; + const lowercaseJ = 106; + charCodes2[charCodes2["lowercaseJ"] = lowercaseJ] = "lowercaseJ"; + const lowercaseK = 107; + charCodes2[charCodes2["lowercaseK"] = lowercaseK] = "lowercaseK"; + const lowercaseL = 108; + charCodes2[charCodes2["lowercaseL"] = lowercaseL] = "lowercaseL"; + const lowercaseM = 109; + charCodes2[charCodes2["lowercaseM"] = lowercaseM] = "lowercaseM"; + const lowercaseN = 110; + charCodes2[charCodes2["lowercaseN"] = lowercaseN] = "lowercaseN"; + const lowercaseO = 111; + charCodes2[charCodes2["lowercaseO"] = lowercaseO] = "lowercaseO"; + const lowercaseP = 112; + charCodes2[charCodes2["lowercaseP"] = lowercaseP] = "lowercaseP"; + const lowercaseQ = 113; + charCodes2[charCodes2["lowercaseQ"] = lowercaseQ] = "lowercaseQ"; + const lowercaseR = 114; + charCodes2[charCodes2["lowercaseR"] = lowercaseR] = "lowercaseR"; + const lowercaseS = 115; + charCodes2[charCodes2["lowercaseS"] = lowercaseS] = "lowercaseS"; + const lowercaseT = 116; + charCodes2[charCodes2["lowercaseT"] = lowercaseT] = "lowercaseT"; + const lowercaseU = 117; + charCodes2[charCodes2["lowercaseU"] = lowercaseU] = "lowercaseU"; + const lowercaseV = 118; + charCodes2[charCodes2["lowercaseV"] = lowercaseV] = "lowercaseV"; + const lowercaseW = 119; + charCodes2[charCodes2["lowercaseW"] = lowercaseW] = "lowercaseW"; + const lowercaseX = 120; + charCodes2[charCodes2["lowercaseX"] = lowercaseX] = "lowercaseX"; + const lowercaseY = 121; + charCodes2[charCodes2["lowercaseY"] = lowercaseY] = "lowercaseY"; + const lowercaseZ = 122; + charCodes2[charCodes2["lowercaseZ"] = lowercaseZ] = "lowercaseZ"; + const leftCurlyBrace = 123; + charCodes2[charCodes2["leftCurlyBrace"] = leftCurlyBrace] = "leftCurlyBrace"; + const verticalBar = 124; + charCodes2[charCodes2["verticalBar"] = verticalBar] = "verticalBar"; + const rightCurlyBrace = 125; + charCodes2[charCodes2["rightCurlyBrace"] = rightCurlyBrace] = "rightCurlyBrace"; + const tilde = 126; + charCodes2[charCodes2["tilde"] = tilde] = "tilde"; + const nonBreakingSpace = 160; + charCodes2[charCodes2["nonBreakingSpace"] = nonBreakingSpace] = "nonBreakingSpace"; + const oghamSpaceMark = 5760; + charCodes2[charCodes2["oghamSpaceMark"] = oghamSpaceMark] = "oghamSpaceMark"; + const lineSeparator = 8232; + charCodes2[charCodes2["lineSeparator"] = lineSeparator] = "lineSeparator"; + const paragraphSeparator = 8233; + charCodes2[charCodes2["paragraphSeparator"] = paragraphSeparator] = "paragraphSeparator"; +})(charCodes || (charCodes = {})); + +// node_modules/sucrase/dist/esm/parser/traverser/base.js +var isJSXEnabled; +var isTypeScriptEnabled; +var isFlowEnabled; +var state; +var input; +var nextContextId; +function getNextContextId() { + return nextContextId++; +} +function augmentError(error) { + if ("pos" in error) { + const loc = locationForIndex(error.pos); + error.message += ` (${loc.line}:${loc.column})`; + error.loc = loc; + } + return error; +} +var Loc = class { + constructor(line2, column2) { + this.line = line2; + this.column = column2; + } +}; +function locationForIndex(pos) { + let line2 = 1; + let column2 = 1; + for (let i4 = 0; i4 < pos; i4++) { + if (input.charCodeAt(i4) === charCodes.lineFeed) { + line2++; + column2 = 1; + } else { + column2++; + } + } + return new Loc(line2, column2); +} +function initParser(inputCode, isJSXEnabledArg, isTypeScriptEnabledArg, isFlowEnabledArg) { + input = inputCode; + state = new State(); + nextContextId = 1; + isJSXEnabled = isJSXEnabledArg; + isTypeScriptEnabled = isTypeScriptEnabledArg; + isFlowEnabled = isFlowEnabledArg; +} + +// node_modules/sucrase/dist/esm/parser/traverser/util.js +function isContextual(contextualKeyword) { + return state.contextualKeyword === contextualKeyword; +} +function isLookaheadContextual(contextualKeyword) { + const l4 = lookaheadTypeAndKeyword(); + return l4.type === TokenType.name && l4.contextualKeyword === contextualKeyword; +} +function eatContextual(contextualKeyword) { + return state.contextualKeyword === contextualKeyword && eat(TokenType.name); +} +function expectContextual(contextualKeyword) { + if (!eatContextual(contextualKeyword)) { + unexpected(); + } +} +function canInsertSemicolon() { + return match2(TokenType.eof) || match2(TokenType.braceR) || hasPrecedingLineBreak(); +} +function hasPrecedingLineBreak() { + const prevToken = state.tokens[state.tokens.length - 1]; + const lastTokEnd = prevToken ? prevToken.end : 0; + for (let i4 = lastTokEnd; i4 < state.start; i4++) { + const code = input.charCodeAt(i4); + if (code === charCodes.lineFeed || code === charCodes.carriageReturn || code === 8232 || code === 8233) { + return true; + } + } + return false; +} +function hasFollowingLineBreak() { + const nextStart = nextTokenStart(); + for (let i4 = state.end; i4 < nextStart; i4++) { + const code = input.charCodeAt(i4); + if (code === charCodes.lineFeed || code === charCodes.carriageReturn || code === 8232 || code === 8233) { + return true; + } + } + return false; +} +function isLineTerminator() { + return eat(TokenType.semi) || canInsertSemicolon(); +} +function semicolon() { + if (!isLineTerminator()) { + unexpected('Unexpected token, expected ";"'); + } +} +function expect(type) { + const matched = eat(type); + if (!matched) { + unexpected(`Unexpected token, expected "${formatTokenType(type)}"`); + } +} +function unexpected(message = "Unexpected token", pos = state.start) { + if (state.error) { + return; + } + const err = new SyntaxError(message); + err.pos = pos; + state.error = err; + state.pos = input.length; + finishToken(TokenType.eof); +} + +// node_modules/sucrase/dist/esm/parser/util/whitespace.js +var WHITESPACE_CHARS = [ + 9, + 11, + 12, + charCodes.space, + charCodes.nonBreakingSpace, + charCodes.oghamSpaceMark, + 8192, + // EN QUAD + 8193, + // EM QUAD + 8194, + // EN SPACE + 8195, + // EM SPACE + 8196, + // THREE-PER-EM SPACE + 8197, + // FOUR-PER-EM SPACE + 8198, + // SIX-PER-EM SPACE + 8199, + // FIGURE SPACE + 8200, + // PUNCTUATION SPACE + 8201, + // THIN SPACE + 8202, + // HAIR SPACE + 8239, + // NARROW NO-BREAK SPACE + 8287, + // MEDIUM MATHEMATICAL SPACE + 12288, + // IDEOGRAPHIC SPACE + 65279 + // ZERO WIDTH NO-BREAK SPACE +]; +var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +var IS_WHITESPACE = new Uint8Array(65536); +for (const char2 of WHITESPACE_CHARS) { + IS_WHITESPACE[char2] = 1; +} + +// node_modules/sucrase/dist/esm/parser/util/identifier.js +function computeIsIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code < 91) return true; + if (code < 97) return code === 95; + if (code < 123) return true; + if (code < 128) return false; + throw new Error("Should not be called with non-ASCII char code."); +} +var IS_IDENTIFIER_CHAR = new Uint8Array(65536); +for (let i4 = 0; i4 < 128; i4++) { + IS_IDENTIFIER_CHAR[i4] = computeIsIdentifierChar(i4) ? 1 : 0; +} +for (let i4 = 128; i4 < 65536; i4++) { + IS_IDENTIFIER_CHAR[i4] = 1; +} +for (const whitespaceChar of WHITESPACE_CHARS) { + IS_IDENTIFIER_CHAR[whitespaceChar] = 0; +} +IS_IDENTIFIER_CHAR[8232] = 0; +IS_IDENTIFIER_CHAR[8233] = 0; +var IS_IDENTIFIER_START = IS_IDENTIFIER_CHAR.slice(); +for (let numChar = charCodes.digit0; numChar <= charCodes.digit9; numChar++) { + IS_IDENTIFIER_START[numChar] = 0; +} + +// node_modules/sucrase/dist/esm/parser/tokenizer/readWordTree.js +var READ_WORD_TREE = new Int32Array([ + // "" + -1, + 27, + 783, + 918, + 1755, + 2376, + 2862, + 3483, + -1, + 3699, + -1, + 4617, + 4752, + 4833, + 5130, + 5508, + 5940, + -1, + 6480, + 6939, + 7749, + 8181, + 8451, + 8613, + -1, + 8829, + -1, + // "a" + -1, + -1, + 54, + 243, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 432, + -1, + -1, + -1, + 675, + -1, + -1, + -1, + // "ab" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 81, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "abs" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 108, + -1, + -1, + -1, + -1, + -1, + -1, + // "abst" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 135, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "abstr" + -1, + 162, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "abstra" + -1, + -1, + -1, + 189, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "abstrac" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 216, + -1, + -1, + -1, + -1, + -1, + -1, + // "abstract" + ContextualKeyword._abstract << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ac" + -1, + -1, + -1, + 270, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "acc" + -1, + -1, + -1, + -1, + -1, + 297, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "acce" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 324, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "acces" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 351, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "access" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 378, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "accesso" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 405, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "accessor" + ContextualKeyword._accessor << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "as" + ContextualKeyword._as << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 459, + -1, + -1, + -1, + -1, + -1, + 594, + -1, + // "ass" + -1, + -1, + -1, + -1, + -1, + 486, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "asse" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 513, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "asser" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 540, + -1, + -1, + -1, + -1, + -1, + -1, + // "assert" + ContextualKeyword._assert << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 567, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "asserts" + ContextualKeyword._asserts << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "asy" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 621, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "asyn" + -1, + -1, + -1, + 648, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "async" + ContextualKeyword._async << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "aw" + -1, + 702, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "awa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 729, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "awai" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 756, + -1, + -1, + -1, + -1, + -1, + -1, + // "await" + ContextualKeyword._await << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "b" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 810, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "br" + -1, + -1, + -1, + -1, + -1, + 837, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "bre" + -1, + 864, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "brea" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 891, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "break" + (TokenType._break << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "c" + -1, + 945, + -1, + -1, + -1, + -1, + -1, + -1, + 1107, + -1, + -1, + -1, + 1242, + -1, + -1, + 1350, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ca" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 972, + 1026, + -1, + -1, + -1, + -1, + -1, + -1, + // "cas" + -1, + -1, + -1, + -1, + -1, + 999, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "case" + (TokenType._case << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "cat" + -1, + -1, + -1, + 1053, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "catc" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1080, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "catch" + (TokenType._catch << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ch" + -1, + -1, + -1, + -1, + -1, + 1134, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "che" + -1, + -1, + -1, + 1161, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "chec" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1188, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "check" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1215, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "checks" + ContextualKeyword._checks << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "cl" + -1, + 1269, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "cla" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1296, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "clas" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1323, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "class" + (TokenType._class << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "co" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1377, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "con" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1404, + 1620, + -1, + -1, + -1, + -1, + -1, + -1, + // "cons" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1431, + -1, + -1, + -1, + -1, + -1, + -1, + // "const" + (TokenType._const << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1458, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "constr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1485, + -1, + -1, + -1, + -1, + -1, + // "constru" + -1, + -1, + -1, + 1512, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "construc" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1539, + -1, + -1, + -1, + -1, + -1, + -1, + // "construct" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1566, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "constructo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1593, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "constructor" + ContextualKeyword._constructor << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "cont" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1647, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "conti" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1674, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "contin" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1701, + -1, + -1, + -1, + -1, + -1, + // "continu" + -1, + -1, + -1, + -1, + -1, + 1728, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "continue" + (TokenType._continue << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "d" + -1, + -1, + -1, + -1, + -1, + 1782, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2349, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "de" + -1, + -1, + 1809, + 1971, + -1, + -1, + 2106, + -1, + -1, + -1, + -1, + -1, + 2241, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "deb" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1836, + -1, + -1, + -1, + -1, + -1, + // "debu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1863, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "debug" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1890, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "debugg" + -1, + -1, + -1, + -1, + -1, + 1917, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "debugge" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1944, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "debugger" + (TokenType._debugger << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "dec" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 1998, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "decl" + -1, + 2025, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "decla" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2052, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "declar" + -1, + -1, + -1, + -1, + -1, + 2079, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "declare" + ContextualKeyword._declare << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "def" + -1, + 2133, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "defa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2160, + -1, + -1, + -1, + -1, + -1, + // "defau" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2187, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "defaul" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2214, + -1, + -1, + -1, + -1, + -1, + -1, + // "default" + (TokenType._default << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "del" + -1, + -1, + -1, + -1, + -1, + 2268, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "dele" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2295, + -1, + -1, + -1, + -1, + -1, + -1, + // "delet" + -1, + -1, + -1, + -1, + -1, + 2322, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "delete" + (TokenType._delete << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "do" + (TokenType._do << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "e" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2403, + -1, + 2484, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2565, + -1, + -1, + // "el" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2430, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "els" + -1, + -1, + -1, + -1, + -1, + 2457, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "else" + (TokenType._else << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "en" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2511, + -1, + -1, + -1, + -1, + -1, + // "enu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2538, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "enum" + ContextualKeyword._enum << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ex" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2592, + -1, + -1, + -1, + 2727, + -1, + -1, + -1, + -1, + -1, + -1, + // "exp" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2619, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "expo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2646, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "expor" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2673, + -1, + -1, + -1, + -1, + -1, + -1, + // "export" + (TokenType._export << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2700, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "exports" + ContextualKeyword._exports << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ext" + -1, + -1, + -1, + -1, + -1, + 2754, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "exte" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2781, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "exten" + -1, + -1, + -1, + -1, + 2808, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "extend" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2835, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "extends" + (TokenType._extends << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "f" + -1, + 2889, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2997, + -1, + -1, + -1, + -1, + -1, + 3159, + -1, + -1, + 3213, + -1, + -1, + 3294, + -1, + -1, + -1, + -1, + -1, + // "fa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2916, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fal" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2943, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fals" + -1, + -1, + -1, + -1, + -1, + 2970, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "false" + (TokenType._false << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3024, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fin" + -1, + 3051, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fina" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3078, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "final" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3105, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "finall" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3132, + -1, + // "finally" + (TokenType._finally << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3186, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "for" + (TokenType._for << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3240, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fro" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3267, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "from" + ContextualKeyword._from << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3321, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "fun" + -1, + -1, + -1, + 3348, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "func" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3375, + -1, + -1, + -1, + -1, + -1, + -1, + // "funct" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3402, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "functi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3429, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "functio" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3456, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "function" + (TokenType._function << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "g" + -1, + -1, + -1, + -1, + -1, + 3510, + -1, + -1, + -1, + -1, + -1, + -1, + 3564, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ge" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3537, + -1, + -1, + -1, + -1, + -1, + -1, + // "get" + ContextualKeyword._get << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "gl" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3591, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "glo" + -1, + -1, + 3618, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "glob" + -1, + 3645, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "globa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3672, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "global" + ContextualKeyword._global << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "i" + -1, + -1, + -1, + -1, + -1, + -1, + 3726, + -1, + -1, + -1, + -1, + -1, + -1, + 3753, + 4077, + -1, + -1, + -1, + -1, + 4590, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "if" + (TokenType._if << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "im" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3780, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "imp" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3807, + -1, + -1, + 3996, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "impl" + -1, + -1, + -1, + -1, + -1, + 3834, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "imple" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3861, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "implem" + -1, + -1, + -1, + -1, + -1, + 3888, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "impleme" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3915, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "implemen" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3942, + -1, + -1, + -1, + -1, + -1, + -1, + // "implement" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 3969, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "implements" + ContextualKeyword._implements << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "impo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4023, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "impor" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4050, + -1, + -1, + -1, + -1, + -1, + -1, + // "import" + (TokenType._import << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "in" + (TokenType._in << 1) + 1, + -1, + -1, + -1, + -1, + -1, + 4104, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4185, + 4401, + -1, + -1, + -1, + -1, + -1, + -1, + // "inf" + -1, + -1, + -1, + -1, + -1, + 4131, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "infe" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4158, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "infer" + ContextualKeyword._infer << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ins" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4212, + -1, + -1, + -1, + -1, + -1, + -1, + // "inst" + -1, + 4239, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "insta" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4266, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "instan" + -1, + -1, + -1, + 4293, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "instanc" + -1, + -1, + -1, + -1, + -1, + 4320, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "instance" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4347, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "instanceo" + -1, + -1, + -1, + -1, + -1, + -1, + 4374, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "instanceof" + (TokenType._instanceof << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "int" + -1, + -1, + -1, + -1, + -1, + 4428, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "inte" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4455, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "inter" + -1, + -1, + -1, + -1, + -1, + -1, + 4482, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "interf" + -1, + 4509, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "interfa" + -1, + -1, + -1, + 4536, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "interfac" + -1, + -1, + -1, + -1, + -1, + 4563, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "interface" + ContextualKeyword._interface << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "is" + ContextualKeyword._is << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "k" + -1, + -1, + -1, + -1, + -1, + 4644, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ke" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4671, + -1, + // "key" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4698, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "keyo" + -1, + -1, + -1, + -1, + -1, + -1, + 4725, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "keyof" + ContextualKeyword._keyof << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "l" + -1, + -1, + -1, + -1, + -1, + 4779, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "le" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4806, + -1, + -1, + -1, + -1, + -1, + -1, + // "let" + (TokenType._let << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "m" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4860, + -1, + -1, + -1, + -1, + -1, + 4995, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4887, + -1, + -1, + // "mix" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4914, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mixi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4941, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mixin" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 4968, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mixins" + ContextualKeyword._mixins << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mo" + -1, + -1, + -1, + -1, + 5022, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "mod" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5049, + -1, + -1, + -1, + -1, + -1, + // "modu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5076, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "modul" + -1, + -1, + -1, + -1, + -1, + 5103, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "module" + ContextualKeyword._module << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "n" + -1, + 5157, + -1, + -1, + -1, + 5373, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5427, + -1, + -1, + -1, + -1, + -1, + // "na" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5184, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "nam" + -1, + -1, + -1, + -1, + -1, + 5211, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "name" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5238, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "names" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5265, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "namesp" + -1, + 5292, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "namespa" + -1, + -1, + -1, + 5319, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "namespac" + -1, + -1, + -1, + -1, + -1, + 5346, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "namespace" + ContextualKeyword._namespace << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ne" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5400, + -1, + -1, + -1, + // "new" + (TokenType._new << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "nu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5454, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "nul" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5481, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "null" + (TokenType._null << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "o" + -1, + -1, + -1, + -1, + -1, + -1, + 5535, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5562, + -1, + -1, + -1, + -1, + 5697, + 5751, + -1, + -1, + -1, + -1, + // "of" + ContextualKeyword._of << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "op" + -1, + 5589, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "opa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5616, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "opaq" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5643, + -1, + -1, + -1, + -1, + -1, + // "opaqu" + -1, + -1, + -1, + -1, + -1, + 5670, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "opaque" + ContextualKeyword._opaque << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ou" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5724, + -1, + -1, + -1, + -1, + -1, + -1, + // "out" + ContextualKeyword._out << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ov" + -1, + -1, + -1, + -1, + -1, + 5778, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ove" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5805, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "over" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5832, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "overr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5859, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "overri" + -1, + -1, + -1, + -1, + 5886, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "overrid" + -1, + -1, + -1, + -1, + -1, + 5913, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "override" + ContextualKeyword._override << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "p" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5967, + -1, + -1, + 6345, + -1, + -1, + -1, + -1, + -1, + // "pr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5994, + -1, + -1, + -1, + -1, + -1, + 6129, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "pri" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6021, + -1, + -1, + -1, + -1, + // "priv" + -1, + 6048, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "priva" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6075, + -1, + -1, + -1, + -1, + -1, + -1, + // "privat" + -1, + -1, + -1, + -1, + -1, + 6102, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "private" + ContextualKeyword._private << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "pro" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6156, + -1, + -1, + -1, + -1, + -1, + -1, + // "prot" + -1, + -1, + -1, + -1, + -1, + 6183, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6318, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "prote" + -1, + -1, + -1, + 6210, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "protec" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6237, + -1, + -1, + -1, + -1, + -1, + -1, + // "protect" + -1, + -1, + -1, + -1, + -1, + 6264, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "protecte" + -1, + -1, + -1, + -1, + 6291, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "protected" + ContextualKeyword._protected << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "proto" + ContextualKeyword._proto << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "pu" + -1, + -1, + 6372, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "pub" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6399, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "publ" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6426, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "publi" + -1, + -1, + -1, + 6453, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "public" + ContextualKeyword._public << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "r" + -1, + -1, + -1, + -1, + -1, + 6507, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "re" + -1, + 6534, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6696, + -1, + -1, + 6831, + -1, + -1, + -1, + -1, + -1, + -1, + // "rea" + -1, + -1, + -1, + -1, + 6561, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "read" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6588, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "reado" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6615, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "readon" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6642, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "readonl" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6669, + -1, + // "readonly" + ContextualKeyword._readonly << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "req" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6723, + -1, + -1, + -1, + -1, + -1, + // "requ" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6750, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "requi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6777, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "requir" + -1, + -1, + -1, + -1, + -1, + 6804, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "require" + ContextualKeyword._require << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ret" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6858, + -1, + -1, + -1, + -1, + -1, + // "retu" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6885, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "retur" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6912, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "return" + (TokenType._return << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "s" + -1, + 6966, + -1, + -1, + -1, + 7182, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7236, + 7371, + -1, + 7479, + -1, + 7614, + -1, + // "sa" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 6993, + -1, + -1, + -1, + -1, + -1, + -1, + // "sat" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7020, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sati" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7047, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "satis" + -1, + -1, + -1, + -1, + -1, + -1, + 7074, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "satisf" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7101, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "satisfi" + -1, + -1, + -1, + -1, + -1, + 7128, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "satisfie" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7155, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "satisfies" + ContextualKeyword._satisfies << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "se" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7209, + -1, + -1, + -1, + -1, + -1, + -1, + // "set" + ContextualKeyword._set << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "st" + -1, + 7263, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sta" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7290, + -1, + -1, + -1, + -1, + -1, + -1, + // "stat" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7317, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "stati" + -1, + -1, + -1, + 7344, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "static" + ContextualKeyword._static << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "su" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7398, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sup" + -1, + -1, + -1, + -1, + -1, + 7425, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "supe" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7452, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "super" + (TokenType._super << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sw" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7506, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "swi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7533, + -1, + -1, + -1, + -1, + -1, + -1, + // "swit" + -1, + -1, + -1, + 7560, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "switc" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7587, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "switch" + (TokenType._switch << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sy" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7641, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "sym" + -1, + -1, + 7668, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "symb" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7695, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "symbo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7722, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "symbol" + ContextualKeyword._symbol << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "t" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7776, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7938, + -1, + -1, + -1, + -1, + -1, + -1, + 8046, + -1, + // "th" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7803, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7857, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "thi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7830, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "this" + (TokenType._this << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "thr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7884, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "thro" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7911, + -1, + -1, + -1, + // "throw" + (TokenType._throw << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "tr" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 7965, + -1, + -1, + -1, + 8019, + -1, + // "tru" + -1, + -1, + -1, + -1, + -1, + 7992, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "true" + (TokenType._true << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "try" + (TokenType._try << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "ty" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8073, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "typ" + -1, + -1, + -1, + -1, + -1, + 8100, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "type" + ContextualKeyword._type << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8127, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "typeo" + -1, + -1, + -1, + -1, + -1, + -1, + 8154, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "typeof" + (TokenType._typeof << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "u" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8208, + -1, + -1, + -1, + -1, + 8343, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "un" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8235, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "uni" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8262, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "uniq" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8289, + -1, + -1, + -1, + -1, + -1, + // "uniqu" + -1, + -1, + -1, + -1, + -1, + 8316, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "unique" + ContextualKeyword._unique << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "us" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8370, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "usi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8397, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "usin" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8424, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "using" + ContextualKeyword._using << 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "v" + -1, + 8478, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8532, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "va" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8505, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "var" + (TokenType._var << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "vo" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8559, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "voi" + -1, + -1, + -1, + -1, + 8586, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "void" + (TokenType._void << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "w" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8640, + 8748, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "wh" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8667, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "whi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8694, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "whil" + -1, + -1, + -1, + -1, + -1, + 8721, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "while" + (TokenType._while << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "wi" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8775, + -1, + -1, + -1, + -1, + -1, + -1, + // "wit" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8802, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "with" + (TokenType._with << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "y" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8856, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "yi" + -1, + -1, + -1, + -1, + -1, + 8883, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "yie" + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 8910, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "yiel" + -1, + -1, + -1, + -1, + 8937, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + // "yield" + (TokenType._yield << 1) + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 +]); + +// node_modules/sucrase/dist/esm/parser/tokenizer/readWord.js +function readWord() { + let treePos = 0; + let code = 0; + let pos = state.pos; + while (pos < input.length) { + code = input.charCodeAt(pos); + if (code < charCodes.lowercaseA || code > charCodes.lowercaseZ) { + break; + } + const next3 = READ_WORD_TREE[treePos + (code - charCodes.lowercaseA) + 1]; + if (next3 === -1) { + break; + } else { + treePos = next3; + pos++; + } + } + const keywordValue = READ_WORD_TREE[treePos]; + if (keywordValue > -1 && !IS_IDENTIFIER_CHAR[code]) { + state.pos = pos; + if (keywordValue & 1) { + finishToken(keywordValue >>> 1); + } else { + finishToken(TokenType.name, keywordValue >>> 1); + } + return; + } + while (pos < input.length) { + const ch = input.charCodeAt(pos); + if (IS_IDENTIFIER_CHAR[ch]) { + pos++; + } else if (ch === charCodes.backslash) { + pos += 2; + if (input.charCodeAt(pos) === charCodes.leftCurlyBrace) { + while (pos < input.length && input.charCodeAt(pos) !== charCodes.rightCurlyBrace) { + pos++; + } + pos++; + } + } else if (ch === charCodes.atSign && input.charCodeAt(pos + 1) === charCodes.atSign) { + pos += 2; + } else { + break; + } + } + state.pos = pos; + finishToken(TokenType.name); +} + +// node_modules/sucrase/dist/esm/parser/tokenizer/index.js +var IdentifierRole; +(function(IdentifierRole2) { + const Access = 0; + IdentifierRole2[IdentifierRole2["Access"] = Access] = "Access"; + const ExportAccess = Access + 1; + IdentifierRole2[IdentifierRole2["ExportAccess"] = ExportAccess] = "ExportAccess"; + const TopLevelDeclaration = ExportAccess + 1; + IdentifierRole2[IdentifierRole2["TopLevelDeclaration"] = TopLevelDeclaration] = "TopLevelDeclaration"; + const FunctionScopedDeclaration = TopLevelDeclaration + 1; + IdentifierRole2[IdentifierRole2["FunctionScopedDeclaration"] = FunctionScopedDeclaration] = "FunctionScopedDeclaration"; + const BlockScopedDeclaration = FunctionScopedDeclaration + 1; + IdentifierRole2[IdentifierRole2["BlockScopedDeclaration"] = BlockScopedDeclaration] = "BlockScopedDeclaration"; + const ObjectShorthandTopLevelDeclaration = BlockScopedDeclaration + 1; + IdentifierRole2[IdentifierRole2["ObjectShorthandTopLevelDeclaration"] = ObjectShorthandTopLevelDeclaration] = "ObjectShorthandTopLevelDeclaration"; + const ObjectShorthandFunctionScopedDeclaration = ObjectShorthandTopLevelDeclaration + 1; + IdentifierRole2[IdentifierRole2["ObjectShorthandFunctionScopedDeclaration"] = ObjectShorthandFunctionScopedDeclaration] = "ObjectShorthandFunctionScopedDeclaration"; + const ObjectShorthandBlockScopedDeclaration = ObjectShorthandFunctionScopedDeclaration + 1; + IdentifierRole2[IdentifierRole2["ObjectShorthandBlockScopedDeclaration"] = ObjectShorthandBlockScopedDeclaration] = "ObjectShorthandBlockScopedDeclaration"; + const ObjectShorthand = ObjectShorthandBlockScopedDeclaration + 1; + IdentifierRole2[IdentifierRole2["ObjectShorthand"] = ObjectShorthand] = "ObjectShorthand"; + const ImportDeclaration = ObjectShorthand + 1; + IdentifierRole2[IdentifierRole2["ImportDeclaration"] = ImportDeclaration] = "ImportDeclaration"; + const ObjectKey = ImportDeclaration + 1; + IdentifierRole2[IdentifierRole2["ObjectKey"] = ObjectKey] = "ObjectKey"; + const ImportAccess = ObjectKey + 1; + IdentifierRole2[IdentifierRole2["ImportAccess"] = ImportAccess] = "ImportAccess"; +})(IdentifierRole || (IdentifierRole = {})); +var JSXRole; +(function(JSXRole2) { + const NoChildren = 0; + JSXRole2[JSXRole2["NoChildren"] = NoChildren] = "NoChildren"; + const OneChild = NoChildren + 1; + JSXRole2[JSXRole2["OneChild"] = OneChild] = "OneChild"; + const StaticChildren = OneChild + 1; + JSXRole2[JSXRole2["StaticChildren"] = StaticChildren] = "StaticChildren"; + const KeyAfterPropSpread = StaticChildren + 1; + JSXRole2[JSXRole2["KeyAfterPropSpread"] = KeyAfterPropSpread] = "KeyAfterPropSpread"; +})(JSXRole || (JSXRole = {})); +function isDeclaration(token2) { + const role = token2.identifierRole; + return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; +} +function isNonTopLevelDeclaration(token2) { + const role = token2.identifierRole; + return role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; +} +function isTopLevelDeclaration(token2) { + const role = token2.identifierRole; + return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ImportDeclaration; +} +function isBlockScopedDeclaration(token2) { + const role = token2.identifierRole; + return role === IdentifierRole.TopLevelDeclaration || role === IdentifierRole.BlockScopedDeclaration || role === IdentifierRole.ObjectShorthandTopLevelDeclaration || role === IdentifierRole.ObjectShorthandBlockScopedDeclaration; +} +function isFunctionScopedDeclaration(token2) { + const role = token2.identifierRole; + return role === IdentifierRole.FunctionScopedDeclaration || role === IdentifierRole.ObjectShorthandFunctionScopedDeclaration; +} +function isObjectShorthandDeclaration(token2) { + return token2.identifierRole === IdentifierRole.ObjectShorthandTopLevelDeclaration || token2.identifierRole === IdentifierRole.ObjectShorthandBlockScopedDeclaration || token2.identifierRole === IdentifierRole.ObjectShorthandFunctionScopedDeclaration; +} +var Token = class { + constructor() { + this.type = state.type; + this.contextualKeyword = state.contextualKeyword; + this.start = state.start; + this.end = state.end; + this.scopeDepth = state.scopeDepth; + this.isType = state.isType; + this.identifierRole = null; + this.jsxRole = null; + this.shadowsGlobal = false; + this.isAsyncOperation = false; + this.contextId = null; + this.rhsEndIndex = null; + this.isExpression = false; + this.numNullishCoalesceStarts = 0; + this.numNullishCoalesceEnds = 0; + this.isOptionalChainStart = false; + this.isOptionalChainEnd = false; + this.subscriptStartIndex = null; + this.nullishStartIndex = null; + } + // Initially false for all tokens, then may be computed in a follow-up step that does scope + // analysis. + // Initially false for all tokens, but may be set during transform to mark it as containing an + // await operation. + // For assignments, the index of the RHS. For export tokens, the end of the export. + // For class tokens, records if the class is a class expression or a class statement. + // Number of times to insert a `nullishCoalesce(` snippet before this token. + // Number of times to insert a `)` snippet after this token. + // If true, insert an `optionalChain([` snippet before this token. + // If true, insert a `])` snippet after this token. + // Tag for `.`, `?.`, `[`, `?.[`, `(`, and `?.(` to denote the "root" token for this + // subscript chain. This can be used to determine if this chain is an optional chain. + // Tag for `??` operators to denote the root token for this nullish coalescing call. +}; +function next() { + state.tokens.push(new Token()); + nextToken(); +} +function nextTemplateToken() { + state.tokens.push(new Token()); + state.start = state.pos; + readTmplToken(); +} +function retokenizeSlashAsRegex() { + if (state.type === TokenType.assign) { + --state.pos; + } + readRegexp(); +} +function pushTypeContext(existingTokensInType) { + for (let i4 = state.tokens.length - existingTokensInType; i4 < state.tokens.length; i4++) { + state.tokens[i4].isType = true; + } + const oldIsType = state.isType; + state.isType = true; + return oldIsType; +} +function popTypeContext(oldIsType) { + state.isType = oldIsType; +} +function eat(type) { + if (match2(type)) { + next(); + return true; + } else { + return false; + } +} +function eatTypeToken(tokenType) { + const oldIsType = state.isType; + state.isType = true; + eat(tokenType); + state.isType = oldIsType; +} +function match2(type) { + return state.type === type; +} +function lookaheadType() { + const snapshot = state.snapshot(); + next(); + const type = state.type; + state.restoreFromSnapshot(snapshot); + return type; +} +var TypeAndKeyword = class { + constructor(type, contextualKeyword) { + this.type = type; + this.contextualKeyword = contextualKeyword; + } +}; +function lookaheadTypeAndKeyword() { + const snapshot = state.snapshot(); + next(); + const type = state.type; + const contextualKeyword = state.contextualKeyword; + state.restoreFromSnapshot(snapshot); + return new TypeAndKeyword(type, contextualKeyword); +} +function nextTokenStart() { + return nextTokenStartSince(state.pos); +} +function nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + const skip = skipWhiteSpace.exec(input); + return pos + skip[0].length; +} +function lookaheadCharCode() { + return input.charCodeAt(nextTokenStart()); +} +function nextToken() { + skipSpace(); + state.start = state.pos; + if (state.pos >= input.length) { + const tokens = state.tokens; + if (tokens.length >= 2 && tokens[tokens.length - 1].start >= input.length && tokens[tokens.length - 2].start >= input.length) { + unexpected("Unexpectedly reached the end of input."); + } + finishToken(TokenType.eof); + return; + } + readToken(input.charCodeAt(state.pos)); +} +function readToken(code) { + if (IS_IDENTIFIER_START[code] || code === charCodes.backslash || code === charCodes.atSign && input.charCodeAt(state.pos + 1) === charCodes.atSign) { + readWord(); + } else { + getTokenFromCode(code); + } +} +function skipBlockComment() { + while (input.charCodeAt(state.pos) !== charCodes.asterisk || input.charCodeAt(state.pos + 1) !== charCodes.slash) { + state.pos++; + if (state.pos > input.length) { + unexpected("Unterminated comment", state.pos - 2); + return; + } + } + state.pos += 2; +} +function skipLineComment(startSkip) { + let ch = input.charCodeAt(state.pos += startSkip); + if (state.pos < input.length) { + while (ch !== charCodes.lineFeed && ch !== charCodes.carriageReturn && ch !== charCodes.lineSeparator && ch !== charCodes.paragraphSeparator && ++state.pos < input.length) { + ch = input.charCodeAt(state.pos); + } + } +} +function skipSpace() { + while (state.pos < input.length) { + const ch = input.charCodeAt(state.pos); + switch (ch) { + case charCodes.carriageReturn: + if (input.charCodeAt(state.pos + 1) === charCodes.lineFeed) { + ++state.pos; + } + case charCodes.lineFeed: + case charCodes.lineSeparator: + case charCodes.paragraphSeparator: + ++state.pos; + break; + case charCodes.slash: + switch (input.charCodeAt(state.pos + 1)) { + case charCodes.asterisk: + state.pos += 2; + skipBlockComment(); + break; + case charCodes.slash: + skipLineComment(2); + break; + default: + return; + } + break; + default: + if (IS_WHITESPACE[ch]) { + ++state.pos; + } else { + return; + } + } + } +} +function finishToken(type, contextualKeyword = ContextualKeyword.NONE) { + state.end = state.pos; + state.type = type; + state.contextualKeyword = contextualKeyword; +} +function readToken_dot() { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar >= charCodes.digit0 && nextChar <= charCodes.digit9) { + readNumber(true); + return; + } + if (nextChar === charCodes.dot && input.charCodeAt(state.pos + 2) === charCodes.dot) { + state.pos += 3; + finishToken(TokenType.ellipsis); + } else { + ++state.pos; + finishToken(TokenType.dot); + } +} +function readToken_slash() { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.assign, 2); + } else { + finishOp(TokenType.slash, 1); + } +} +function readToken_mult_modulo(code) { + let tokenType = code === charCodes.asterisk ? TokenType.star : TokenType.modulo; + let width = 1; + let nextChar = input.charCodeAt(state.pos + 1); + if (code === charCodes.asterisk && nextChar === charCodes.asterisk) { + width++; + nextChar = input.charCodeAt(state.pos + 2); + tokenType = TokenType.exponent; + } + if (nextChar === charCodes.equalsTo && input.charCodeAt(state.pos + 2) !== charCodes.greaterThan) { + width++; + tokenType = TokenType.assign; + } + finishOp(tokenType, width); +} +function readToken_pipe_amp(code) { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === code) { + if (input.charCodeAt(state.pos + 2) === charCodes.equalsTo) { + finishOp(TokenType.assign, 3); + } else { + finishOp(code === charCodes.verticalBar ? TokenType.logicalOR : TokenType.logicalAND, 2); + } + return; + } + if (code === charCodes.verticalBar) { + if (nextChar === charCodes.greaterThan) { + finishOp(TokenType.pipeline, 2); + return; + } else if (nextChar === charCodes.rightCurlyBrace && isFlowEnabled) { + finishOp(TokenType.braceBarR, 2); + return; + } + } + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.assign, 2); + return; + } + finishOp(code === charCodes.verticalBar ? TokenType.bitwiseOR : TokenType.bitwiseAND, 1); +} +function readToken_caret() { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.assign, 2); + } else { + finishOp(TokenType.bitwiseXOR, 1); + } +} +function readToken_plus_min(code) { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === code) { + finishOp(TokenType.preIncDec, 2); + return; + } + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.assign, 2); + } else if (code === charCodes.plusSign) { + finishOp(TokenType.plus, 1); + } else { + finishOp(TokenType.minus, 1); + } +} +function readToken_lt() { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.lessThan) { + if (input.charCodeAt(state.pos + 2) === charCodes.equalsTo) { + finishOp(TokenType.assign, 3); + return; + } + if (state.isType) { + finishOp(TokenType.lessThan, 1); + } else { + finishOp(TokenType.bitShiftL, 2); + } + return; + } + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.relationalOrEqual, 2); + } else { + finishOp(TokenType.lessThan, 1); + } +} +function readToken_gt() { + if (state.isType) { + finishOp(TokenType.greaterThan, 1); + return; + } + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.greaterThan) { + const size2 = input.charCodeAt(state.pos + 2) === charCodes.greaterThan ? 3 : 2; + if (input.charCodeAt(state.pos + size2) === charCodes.equalsTo) { + finishOp(TokenType.assign, size2 + 1); + return; + } + finishOp(TokenType.bitShiftR, size2); + return; + } + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.relationalOrEqual, 2); + } else { + finishOp(TokenType.greaterThan, 1); + } +} +function rescan_gt() { + if (state.type === TokenType.greaterThan) { + state.pos -= 1; + readToken_gt(); + } +} +function readToken_eq_excl(code) { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.equalsTo) { + finishOp(TokenType.equality, input.charCodeAt(state.pos + 2) === charCodes.equalsTo ? 3 : 2); + return; + } + if (code === charCodes.equalsTo && nextChar === charCodes.greaterThan) { + state.pos += 2; + finishToken(TokenType.arrow); + return; + } + finishOp(code === charCodes.equalsTo ? TokenType.eq : TokenType.bang, 1); +} +function readToken_question() { + const nextChar = input.charCodeAt(state.pos + 1); + const nextChar2 = input.charCodeAt(state.pos + 2); + if (nextChar === charCodes.questionMark && // In Flow (but not TypeScript), ??string is a valid type that should be + // tokenized as two individual ? tokens. + !(isFlowEnabled && state.isType)) { + if (nextChar2 === charCodes.equalsTo) { + finishOp(TokenType.assign, 3); + } else { + finishOp(TokenType.nullishCoalescing, 2); + } + } else if (nextChar === charCodes.dot && !(nextChar2 >= charCodes.digit0 && nextChar2 <= charCodes.digit9)) { + state.pos += 2; + finishToken(TokenType.questionDot); + } else { + ++state.pos; + finishToken(TokenType.question); + } +} +function getTokenFromCode(code) { + switch (code) { + case charCodes.numberSign: + ++state.pos; + finishToken(TokenType.hash); + return; + // The interpretation of a dot depends on whether it is followed + // by a digit or another two dots. + case charCodes.dot: + readToken_dot(); + return; + // Punctuation tokens. + case charCodes.leftParenthesis: + ++state.pos; + finishToken(TokenType.parenL); + return; + case charCodes.rightParenthesis: + ++state.pos; + finishToken(TokenType.parenR); + return; + case charCodes.semicolon: + ++state.pos; + finishToken(TokenType.semi); + return; + case charCodes.comma: + ++state.pos; + finishToken(TokenType.comma); + return; + case charCodes.leftSquareBracket: + ++state.pos; + finishToken(TokenType.bracketL); + return; + case charCodes.rightSquareBracket: + ++state.pos; + finishToken(TokenType.bracketR); + return; + case charCodes.leftCurlyBrace: + if (isFlowEnabled && input.charCodeAt(state.pos + 1) === charCodes.verticalBar) { + finishOp(TokenType.braceBarL, 2); + } else { + ++state.pos; + finishToken(TokenType.braceL); + } + return; + case charCodes.rightCurlyBrace: + ++state.pos; + finishToken(TokenType.braceR); + return; + case charCodes.colon: + if (input.charCodeAt(state.pos + 1) === charCodes.colon) { + finishOp(TokenType.doubleColon, 2); + } else { + ++state.pos; + finishToken(TokenType.colon); + } + return; + case charCodes.questionMark: + readToken_question(); + return; + case charCodes.atSign: + ++state.pos; + finishToken(TokenType.at); + return; + case charCodes.graveAccent: + ++state.pos; + finishToken(TokenType.backQuote); + return; + case charCodes.digit0: { + const nextChar = input.charCodeAt(state.pos + 1); + if (nextChar === charCodes.lowercaseX || nextChar === charCodes.uppercaseX || nextChar === charCodes.lowercaseO || nextChar === charCodes.uppercaseO || nextChar === charCodes.lowercaseB || nextChar === charCodes.uppercaseB) { + readRadixNumber(); + return; + } + } + // Anything else beginning with a digit is an integer, octal + // number, or float. + case charCodes.digit1: + case charCodes.digit2: + case charCodes.digit3: + case charCodes.digit4: + case charCodes.digit5: + case charCodes.digit6: + case charCodes.digit7: + case charCodes.digit8: + case charCodes.digit9: + readNumber(false); + return; + // Quotes produce strings. + case charCodes.quotationMark: + case charCodes.apostrophe: + readString(code); + return; + // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is + // often referred to. `finishOp` simply skips the amount of + // characters it is given as second argument, and returns a token + // of the type given by its first argument. + case charCodes.slash: + readToken_slash(); + return; + case charCodes.percentSign: + case charCodes.asterisk: + readToken_mult_modulo(code); + return; + case charCodes.verticalBar: + case charCodes.ampersand: + readToken_pipe_amp(code); + return; + case charCodes.caret: + readToken_caret(); + return; + case charCodes.plusSign: + case charCodes.dash: + readToken_plus_min(code); + return; + case charCodes.lessThan: + readToken_lt(); + return; + case charCodes.greaterThan: + readToken_gt(); + return; + case charCodes.equalsTo: + case charCodes.exclamationMark: + readToken_eq_excl(code); + return; + case charCodes.tilde: + finishOp(TokenType.tilde, 1); + return; + default: + break; + } + unexpected(`Unexpected character '${String.fromCharCode(code)}'`, state.pos); +} +function finishOp(type, size2) { + state.pos += size2; + finishToken(type); +} +function readRegexp() { + const start = state.pos; + let escaped = false; + let inClass = false; + for (; ; ) { + if (state.pos >= input.length) { + unexpected("Unterminated regular expression", start); + return; + } + const code = input.charCodeAt(state.pos); + if (escaped) { + escaped = false; + } else { + if (code === charCodes.leftSquareBracket) { + inClass = true; + } else if (code === charCodes.rightSquareBracket && inClass) { + inClass = false; + } else if (code === charCodes.slash && !inClass) { + break; + } + escaped = code === charCodes.backslash; + } + ++state.pos; + } + ++state.pos; + skipWord(); + finishToken(TokenType.regexp); +} +function readInt() { + while (true) { + const code = input.charCodeAt(state.pos); + if (code >= charCodes.digit0 && code <= charCodes.digit9 || code === charCodes.underscore) { + state.pos++; + } else { + break; + } + } +} +function readRadixNumber() { + state.pos += 2; + while (true) { + const code = input.charCodeAt(state.pos); + if (code >= charCodes.digit0 && code <= charCodes.digit9 || code >= charCodes.lowercaseA && code <= charCodes.lowercaseF || code >= charCodes.uppercaseA && code <= charCodes.uppercaseF || code === charCodes.underscore) { + state.pos++; + } else { + break; + } + } + const nextChar = input.charCodeAt(state.pos); + if (nextChar === charCodes.lowercaseN) { + ++state.pos; + finishToken(TokenType.bigint); + } else { + finishToken(TokenType.num); + } +} +function readNumber(startsWithDot) { + let isBigInt = false; + let isDecimal = false; + if (!startsWithDot) { + readInt(); + } + let nextChar = input.charCodeAt(state.pos); + if (nextChar === charCodes.dot) { + ++state.pos; + readInt(); + nextChar = input.charCodeAt(state.pos); + } + if (nextChar === charCodes.uppercaseE || nextChar === charCodes.lowercaseE) { + nextChar = input.charCodeAt(++state.pos); + if (nextChar === charCodes.plusSign || nextChar === charCodes.dash) { + ++state.pos; + } + readInt(); + nextChar = input.charCodeAt(state.pos); + } + if (nextChar === charCodes.lowercaseN) { + ++state.pos; + isBigInt = true; + } else if (nextChar === charCodes.lowercaseM) { + ++state.pos; + isDecimal = true; + } + if (isBigInt) { + finishToken(TokenType.bigint); + return; + } + if (isDecimal) { + finishToken(TokenType.decimal); + return; + } + finishToken(TokenType.num); +} +function readString(quote) { + state.pos++; + for (; ; ) { + if (state.pos >= input.length) { + unexpected("Unterminated string constant"); + return; + } + const ch = input.charCodeAt(state.pos); + if (ch === charCodes.backslash) { + state.pos++; + } else if (ch === quote) { + break; + } + state.pos++; + } + state.pos++; + finishToken(TokenType.string); +} +function readTmplToken() { + for (; ; ) { + if (state.pos >= input.length) { + unexpected("Unterminated template"); + return; + } + const ch = input.charCodeAt(state.pos); + if (ch === charCodes.graveAccent || ch === charCodes.dollarSign && input.charCodeAt(state.pos + 1) === charCodes.leftCurlyBrace) { + if (state.pos === state.start && match2(TokenType.template)) { + if (ch === charCodes.dollarSign) { + state.pos += 2; + finishToken(TokenType.dollarBraceL); + return; + } else { + ++state.pos; + finishToken(TokenType.backQuote); + return; + } + } + finishToken(TokenType.template); + return; + } + if (ch === charCodes.backslash) { + state.pos++; + } + state.pos++; + } +} +function skipWord() { + while (state.pos < input.length) { + const ch = input.charCodeAt(state.pos); + if (IS_IDENTIFIER_CHAR[ch]) { + state.pos++; + } else if (ch === charCodes.backslash) { + state.pos += 2; + if (input.charCodeAt(state.pos) === charCodes.leftCurlyBrace) { + while (state.pos < input.length && input.charCodeAt(state.pos) !== charCodes.rightCurlyBrace) { + state.pos++; + } + state.pos++; + } + } else { + break; + } + } +} + +// node_modules/sucrase/dist/esm/util/getImportExportSpecifierInfo.js +function getImportExportSpecifierInfo(tokens, index2 = tokens.currentIndex()) { + let endIndex = index2 + 1; + if (isSpecifierEnd(tokens, endIndex)) { + const name = tokens.identifierNameAtIndex(index2); + return { + isType: false, + leftName: name, + rightName: name, + endIndex + }; + } + endIndex++; + if (isSpecifierEnd(tokens, endIndex)) { + return { + isType: true, + leftName: null, + rightName: null, + endIndex + }; + } + endIndex++; + if (isSpecifierEnd(tokens, endIndex)) { + return { + isType: false, + leftName: tokens.identifierNameAtIndex(index2), + rightName: tokens.identifierNameAtIndex(index2 + 2), + endIndex + }; + } + endIndex++; + if (isSpecifierEnd(tokens, endIndex)) { + return { + isType: true, + leftName: null, + rightName: null, + endIndex + }; + } + throw new Error(`Unexpected import/export specifier at ${index2}`); +} +function isSpecifierEnd(tokens, index2) { + const token2 = tokens.tokens[index2]; + return token2.type === TokenType.braceR || token2.type === TokenType.comma; +} + +// node_modules/sucrase/dist/esm/parser/plugins/jsx/xhtml.js +var xhtml_default = /* @__PURE__ */ new Map([ + ["quot", '"'], + ["amp", "&"], + ["apos", "'"], + ["lt", "<"], + ["gt", ">"], + ["nbsp", "\xA0"], + ["iexcl", "\xA1"], + ["cent", "\xA2"], + ["pound", "\xA3"], + ["curren", "\xA4"], + ["yen", "\xA5"], + ["brvbar", "\xA6"], + ["sect", "\xA7"], + ["uml", "\xA8"], + ["copy", "\xA9"], + ["ordf", "\xAA"], + ["laquo", "\xAB"], + ["not", "\xAC"], + ["shy", "\xAD"], + ["reg", "\xAE"], + ["macr", "\xAF"], + ["deg", "\xB0"], + ["plusmn", "\xB1"], + ["sup2", "\xB2"], + ["sup3", "\xB3"], + ["acute", "\xB4"], + ["micro", "\xB5"], + ["para", "\xB6"], + ["middot", "\xB7"], + ["cedil", "\xB8"], + ["sup1", "\xB9"], + ["ordm", "\xBA"], + ["raquo", "\xBB"], + ["frac14", "\xBC"], + ["frac12", "\xBD"], + ["frac34", "\xBE"], + ["iquest", "\xBF"], + ["Agrave", "\xC0"], + ["Aacute", "\xC1"], + ["Acirc", "\xC2"], + ["Atilde", "\xC3"], + ["Auml", "\xC4"], + ["Aring", "\xC5"], + ["AElig", "\xC6"], + ["Ccedil", "\xC7"], + ["Egrave", "\xC8"], + ["Eacute", "\xC9"], + ["Ecirc", "\xCA"], + ["Euml", "\xCB"], + ["Igrave", "\xCC"], + ["Iacute", "\xCD"], + ["Icirc", "\xCE"], + ["Iuml", "\xCF"], + ["ETH", "\xD0"], + ["Ntilde", "\xD1"], + ["Ograve", "\xD2"], + ["Oacute", "\xD3"], + ["Ocirc", "\xD4"], + ["Otilde", "\xD5"], + ["Ouml", "\xD6"], + ["times", "\xD7"], + ["Oslash", "\xD8"], + ["Ugrave", "\xD9"], + ["Uacute", "\xDA"], + ["Ucirc", "\xDB"], + ["Uuml", "\xDC"], + ["Yacute", "\xDD"], + ["THORN", "\xDE"], + ["szlig", "\xDF"], + ["agrave", "\xE0"], + ["aacute", "\xE1"], + ["acirc", "\xE2"], + ["atilde", "\xE3"], + ["auml", "\xE4"], + ["aring", "\xE5"], + ["aelig", "\xE6"], + ["ccedil", "\xE7"], + ["egrave", "\xE8"], + ["eacute", "\xE9"], + ["ecirc", "\xEA"], + ["euml", "\xEB"], + ["igrave", "\xEC"], + ["iacute", "\xED"], + ["icirc", "\xEE"], + ["iuml", "\xEF"], + ["eth", "\xF0"], + ["ntilde", "\xF1"], + ["ograve", "\xF2"], + ["oacute", "\xF3"], + ["ocirc", "\xF4"], + ["otilde", "\xF5"], + ["ouml", "\xF6"], + ["divide", "\xF7"], + ["oslash", "\xF8"], + ["ugrave", "\xF9"], + ["uacute", "\xFA"], + ["ucirc", "\xFB"], + ["uuml", "\xFC"], + ["yacute", "\xFD"], + ["thorn", "\xFE"], + ["yuml", "\xFF"], + ["OElig", "\u0152"], + ["oelig", "\u0153"], + ["Scaron", "\u0160"], + ["scaron", "\u0161"], + ["Yuml", "\u0178"], + ["fnof", "\u0192"], + ["circ", "\u02C6"], + ["tilde", "\u02DC"], + ["Alpha", "\u0391"], + ["Beta", "\u0392"], + ["Gamma", "\u0393"], + ["Delta", "\u0394"], + ["Epsilon", "\u0395"], + ["Zeta", "\u0396"], + ["Eta", "\u0397"], + ["Theta", "\u0398"], + ["Iota", "\u0399"], + ["Kappa", "\u039A"], + ["Lambda", "\u039B"], + ["Mu", "\u039C"], + ["Nu", "\u039D"], + ["Xi", "\u039E"], + ["Omicron", "\u039F"], + ["Pi", "\u03A0"], + ["Rho", "\u03A1"], + ["Sigma", "\u03A3"], + ["Tau", "\u03A4"], + ["Upsilon", "\u03A5"], + ["Phi", "\u03A6"], + ["Chi", "\u03A7"], + ["Psi", "\u03A8"], + ["Omega", "\u03A9"], + ["alpha", "\u03B1"], + ["beta", "\u03B2"], + ["gamma", "\u03B3"], + ["delta", "\u03B4"], + ["epsilon", "\u03B5"], + ["zeta", "\u03B6"], + ["eta", "\u03B7"], + ["theta", "\u03B8"], + ["iota", "\u03B9"], + ["kappa", "\u03BA"], + ["lambda", "\u03BB"], + ["mu", "\u03BC"], + ["nu", "\u03BD"], + ["xi", "\u03BE"], + ["omicron", "\u03BF"], + ["pi", "\u03C0"], + ["rho", "\u03C1"], + ["sigmaf", "\u03C2"], + ["sigma", "\u03C3"], + ["tau", "\u03C4"], + ["upsilon", "\u03C5"], + ["phi", "\u03C6"], + ["chi", "\u03C7"], + ["psi", "\u03C8"], + ["omega", "\u03C9"], + ["thetasym", "\u03D1"], + ["upsih", "\u03D2"], + ["piv", "\u03D6"], + ["ensp", "\u2002"], + ["emsp", "\u2003"], + ["thinsp", "\u2009"], + ["zwnj", "\u200C"], + ["zwj", "\u200D"], + ["lrm", "\u200E"], + ["rlm", "\u200F"], + ["ndash", "\u2013"], + ["mdash", "\u2014"], + ["lsquo", "\u2018"], + ["rsquo", "\u2019"], + ["sbquo", "\u201A"], + ["ldquo", "\u201C"], + ["rdquo", "\u201D"], + ["bdquo", "\u201E"], + ["dagger", "\u2020"], + ["Dagger", "\u2021"], + ["bull", "\u2022"], + ["hellip", "\u2026"], + ["permil", "\u2030"], + ["prime", "\u2032"], + ["Prime", "\u2033"], + ["lsaquo", "\u2039"], + ["rsaquo", "\u203A"], + ["oline", "\u203E"], + ["frasl", "\u2044"], + ["euro", "\u20AC"], + ["image", "\u2111"], + ["weierp", "\u2118"], + ["real", "\u211C"], + ["trade", "\u2122"], + ["alefsym", "\u2135"], + ["larr", "\u2190"], + ["uarr", "\u2191"], + ["rarr", "\u2192"], + ["darr", "\u2193"], + ["harr", "\u2194"], + ["crarr", "\u21B5"], + ["lArr", "\u21D0"], + ["uArr", "\u21D1"], + ["rArr", "\u21D2"], + ["dArr", "\u21D3"], + ["hArr", "\u21D4"], + ["forall", "\u2200"], + ["part", "\u2202"], + ["exist", "\u2203"], + ["empty", "\u2205"], + ["nabla", "\u2207"], + ["isin", "\u2208"], + ["notin", "\u2209"], + ["ni", "\u220B"], + ["prod", "\u220F"], + ["sum", "\u2211"], + ["minus", "\u2212"], + ["lowast", "\u2217"], + ["radic", "\u221A"], + ["prop", "\u221D"], + ["infin", "\u221E"], + ["ang", "\u2220"], + ["and", "\u2227"], + ["or", "\u2228"], + ["cap", "\u2229"], + ["cup", "\u222A"], + ["int", "\u222B"], + ["there4", "\u2234"], + ["sim", "\u223C"], + ["cong", "\u2245"], + ["asymp", "\u2248"], + ["ne", "\u2260"], + ["equiv", "\u2261"], + ["le", "\u2264"], + ["ge", "\u2265"], + ["sub", "\u2282"], + ["sup", "\u2283"], + ["nsub", "\u2284"], + ["sube", "\u2286"], + ["supe", "\u2287"], + ["oplus", "\u2295"], + ["otimes", "\u2297"], + ["perp", "\u22A5"], + ["sdot", "\u22C5"], + ["lceil", "\u2308"], + ["rceil", "\u2309"], + ["lfloor", "\u230A"], + ["rfloor", "\u230B"], + ["lang", "\u2329"], + ["rang", "\u232A"], + ["loz", "\u25CA"], + ["spades", "\u2660"], + ["clubs", "\u2663"], + ["hearts", "\u2665"], + ["diams", "\u2666"] +]); + +// node_modules/sucrase/dist/esm/util/getJSXPragmaInfo.js +function getJSXPragmaInfo(options2) { + const [base, suffix] = splitPragma(options2.jsxPragma || "React.createElement"); + const [fragmentBase, fragmentSuffix] = splitPragma(options2.jsxFragmentPragma || "React.Fragment"); + return { base, suffix, fragmentBase, fragmentSuffix }; +} +function splitPragma(pragma) { + let dotIndex = pragma.indexOf("."); + if (dotIndex === -1) { + dotIndex = pragma.length; + } + return [pragma.slice(0, dotIndex), pragma.slice(dotIndex)]; +} + +// node_modules/sucrase/dist/esm/transformers/Transformer.js +var Transformer = class { + // Return true if anything was processed, false otherwise. + getPrefixCode() { + return ""; + } + getHoistedCode() { + return ""; + } + getSuffixCode() { + return ""; + } +}; + +// node_modules/sucrase/dist/esm/transformers/JSXTransformer.js +var JSXTransformer = class _JSXTransformer extends Transformer { + // State for calculating the line number of each JSX tag in development. + __init() { + this.lastLineNumber = 1; + } + __init2() { + this.lastIndex = 0; + } + // In development, variable name holding the name of the current file. + __init3() { + this.filenameVarName = null; + } + // Mapping of claimed names for imports in the automatic transform, e,g. + // {jsx: "_jsx"}. This determines which imports to generate in the prefix. + __init4() { + this.esmAutomaticImportNameResolutions = {}; + } + // When automatically adding imports in CJS mode, we store the variable name + // holding the imported CJS module so we can require it in the prefix. + __init5() { + this.cjsAutomaticModuleNameResolutions = {}; + } + constructor(rootTransformer, tokens, importProcessor, nameManager, options2) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.importProcessor = importProcessor; + this.nameManager = nameManager; + this.options = options2; + _JSXTransformer.prototype.__init.call(this); + _JSXTransformer.prototype.__init2.call(this); + _JSXTransformer.prototype.__init3.call(this); + _JSXTransformer.prototype.__init4.call(this); + _JSXTransformer.prototype.__init5.call(this); + ; + this.jsxPragmaInfo = getJSXPragmaInfo(options2); + this.isAutomaticRuntime = options2.jsxRuntime === "automatic"; + this.jsxImportSource = options2.jsxImportSource || "react"; + } + process() { + if (this.tokens.matches1(TokenType.jsxTagStart)) { + this.processJSXTag(); + return true; + } + return false; + } + getPrefixCode() { + let prefix2 = ""; + if (this.filenameVarName) { + prefix2 += `const ${this.filenameVarName} = ${JSON.stringify(this.options.filePath || "")};`; + } + if (this.isAutomaticRuntime) { + if (this.importProcessor) { + for (const [path, resolvedName] of Object.entries(this.cjsAutomaticModuleNameResolutions)) { + prefix2 += `var ${resolvedName} = require("${path}");`; + } + } else { + const { createElement: createElementResolution, ...otherResolutions } = this.esmAutomaticImportNameResolutions; + if (createElementResolution) { + prefix2 += `import {createElement as ${createElementResolution}} from "${this.jsxImportSource}";`; + } + const importSpecifiers = Object.entries(otherResolutions).map(([name, resolvedName]) => `${name} as ${resolvedName}`).join(", "); + if (importSpecifiers) { + const importPath = this.jsxImportSource + (this.options.production ? "/jsx-runtime" : "/jsx-dev-runtime"); + prefix2 += `import {${importSpecifiers}} from "${importPath}";`; + } + } + } + return prefix2; + } + processJSXTag() { + const { jsxRole, start } = this.tokens.currentToken(); + const elementLocationCode = this.options.production ? null : this.getElementLocationCode(start); + if (this.isAutomaticRuntime && jsxRole !== JSXRole.KeyAfterPropSpread) { + this.transformTagToJSXFunc(elementLocationCode, jsxRole); + } else { + this.transformTagToCreateElement(elementLocationCode); + } + } + getElementLocationCode(firstTokenStart) { + const lineNumber = this.getLineNumberForIndex(firstTokenStart); + return `lineNumber: ${lineNumber}`; + } + /** + * Get the line number for this source position. This is calculated lazily and + * must be called in increasing order by index. + */ + getLineNumberForIndex(index2) { + const code = this.tokens.code; + while (this.lastIndex < index2 && this.lastIndex < code.length) { + if (code[this.lastIndex] === "\n") { + this.lastLineNumber++; + } + this.lastIndex++; + } + return this.lastLineNumber; + } + /** + * Convert the current JSX element to a call to jsx, jsxs, or jsxDEV. This is + * the primary transformation for the automatic transform. + * + * Example: + *
Hello{x}
+ * becomes + * jsxs('div', {a: 1, children: ["Hello", x]}, 2) + */ + transformTagToJSXFunc(elementLocationCode, jsxRole) { + const isStatic = jsxRole === JSXRole.StaticChildren; + this.tokens.replaceToken(this.getJSXFuncInvocationCode(isStatic)); + let keyCode = null; + if (this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.replaceToken(`${this.getFragmentCode()}, {`); + this.processAutomaticChildrenAndEndProps(jsxRole); + } else { + this.processTagIntro(); + this.tokens.appendCode(", {"); + keyCode = this.processProps(true); + if (this.tokens.matches2(TokenType.slash, TokenType.jsxTagEnd)) { + this.tokens.appendCode("}"); + } else if (this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.removeToken(); + this.processAutomaticChildrenAndEndProps(jsxRole); + } else { + throw new Error("Expected either /> or > at the end of the tag."); + } + if (keyCode) { + this.tokens.appendCode(`, ${keyCode}`); + } + } + if (!this.options.production) { + if (keyCode === null) { + this.tokens.appendCode(", void 0"); + } + this.tokens.appendCode(`, ${isStatic}, ${this.getDevSource(elementLocationCode)}, this`); + } + this.tokens.removeInitialToken(); + while (!this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.removeToken(); + } + this.tokens.replaceToken(")"); + } + /** + * Convert the current JSX element to a createElement call. In the classic + * runtime, this is the only case. In the automatic runtime, this is called + * as a fallback in some situations. + * + * Example: + *
Hello{x}
+ * becomes + * React.createElement('div', {a: 1, key: 2}, "Hello", x) + */ + transformTagToCreateElement(elementLocationCode) { + this.tokens.replaceToken(this.getCreateElementInvocationCode()); + if (this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.replaceToken(`${this.getFragmentCode()}, null`); + this.processChildren(true); + } else { + this.processTagIntro(); + this.processPropsObjectWithDevInfo(elementLocationCode); + if (this.tokens.matches2(TokenType.slash, TokenType.jsxTagEnd)) { + } else if (this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.removeToken(); + this.processChildren(true); + } else { + throw new Error("Expected either /> or > at the end of the tag."); + } + } + this.tokens.removeInitialToken(); + while (!this.tokens.matches1(TokenType.jsxTagEnd)) { + this.tokens.removeToken(); + } + this.tokens.replaceToken(")"); + } + /** + * Get the code for the relevant function for this context: jsx, jsxs, + * or jsxDEV. The following open-paren is included as well. + * + * These functions are only used for the automatic runtime, so they are always + * auto-imported, but the auto-import will be either CJS or ESM based on the + * target module format. + */ + getJSXFuncInvocationCode(isStatic) { + if (this.options.production) { + if (isStatic) { + return this.claimAutoImportedFuncInvocation("jsxs", "/jsx-runtime"); + } else { + return this.claimAutoImportedFuncInvocation("jsx", "/jsx-runtime"); + } + } else { + return this.claimAutoImportedFuncInvocation("jsxDEV", "/jsx-dev-runtime"); + } + } + /** + * Return the code to use for the createElement function, e.g. + * `React.createElement`, including the following open-paren. + * + * This is the main function to use for the classic runtime. For the + * automatic runtime, this function is used as a fallback function to + * preserve behavior when there is a prop spread followed by an explicit + * key. In that automatic runtime case, the function should be automatically + * imported. + */ + getCreateElementInvocationCode() { + if (this.isAutomaticRuntime) { + return this.claimAutoImportedFuncInvocation("createElement", ""); + } else { + const { jsxPragmaInfo } = this; + const resolvedPragmaBaseName = this.importProcessor ? this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.base) || jsxPragmaInfo.base : jsxPragmaInfo.base; + return `${resolvedPragmaBaseName}${jsxPragmaInfo.suffix}(`; + } + } + /** + * Return the code to use as the component when compiling a shorthand + * fragment, e.g. `React.Fragment`. + * + * This may be called from either the classic or automatic runtime, and + * the value should be auto-imported for the automatic runtime. + */ + getFragmentCode() { + if (this.isAutomaticRuntime) { + return this.claimAutoImportedName( + "Fragment", + this.options.production ? "/jsx-runtime" : "/jsx-dev-runtime" + ); + } else { + const { jsxPragmaInfo } = this; + const resolvedFragmentPragmaBaseName = this.importProcessor ? this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.fragmentBase) || jsxPragmaInfo.fragmentBase : jsxPragmaInfo.fragmentBase; + return resolvedFragmentPragmaBaseName + jsxPragmaInfo.fragmentSuffix; + } + } + /** + * Return code that invokes the given function. + * + * When the imports transform is enabled, use the CJSImportTransformer + * strategy of using `.call(void 0, ...` to avoid passing a `this` value in a + * situation that would otherwise look like a method call. + */ + claimAutoImportedFuncInvocation(funcName, importPathSuffix) { + const funcCode = this.claimAutoImportedName(funcName, importPathSuffix); + if (this.importProcessor) { + return `${funcCode}.call(void 0, `; + } else { + return `${funcCode}(`; + } + } + claimAutoImportedName(funcName, importPathSuffix) { + if (this.importProcessor) { + const path = this.jsxImportSource + importPathSuffix; + if (!this.cjsAutomaticModuleNameResolutions[path]) { + this.cjsAutomaticModuleNameResolutions[path] = this.importProcessor.getFreeIdentifierForPath(path); + } + return `${this.cjsAutomaticModuleNameResolutions[path]}.${funcName}`; + } else { + if (!this.esmAutomaticImportNameResolutions[funcName]) { + this.esmAutomaticImportNameResolutions[funcName] = this.nameManager.claimFreeName( + `_${funcName}` + ); + } + return this.esmAutomaticImportNameResolutions[funcName]; + } + } + /** + * Process the first part of a tag, before any props. + */ + processTagIntro() { + let introEnd = this.tokens.currentIndex() + 1; + while (this.tokens.tokens[introEnd].isType || !this.tokens.matches2AtIndex(introEnd - 1, TokenType.jsxName, TokenType.jsxName) && !this.tokens.matches2AtIndex(introEnd - 1, TokenType.greaterThan, TokenType.jsxName) && !this.tokens.matches1AtIndex(introEnd, TokenType.braceL) && !this.tokens.matches1AtIndex(introEnd, TokenType.jsxTagEnd) && !this.tokens.matches2AtIndex(introEnd, TokenType.slash, TokenType.jsxTagEnd)) { + introEnd++; + } + if (introEnd === this.tokens.currentIndex() + 1) { + const tagName = this.tokens.identifierName(); + if (startsWithLowerCase(tagName)) { + this.tokens.replaceToken(`'${tagName}'`); + } + } + while (this.tokens.currentIndex() < introEnd) { + this.rootTransformer.processToken(); + } + } + /** + * Starting at the beginning of the props, add the props argument to + * React.createElement, including the comma before it. + */ + processPropsObjectWithDevInfo(elementLocationCode) { + const devProps = this.options.production ? "" : `__self: this, __source: ${this.getDevSource(elementLocationCode)}`; + if (!this.tokens.matches1(TokenType.jsxName) && !this.tokens.matches1(TokenType.braceL)) { + if (devProps) { + this.tokens.appendCode(`, {${devProps}}`); + } else { + this.tokens.appendCode(`, null`); + } + return; + } + this.tokens.appendCode(`, {`); + this.processProps(false); + if (devProps) { + this.tokens.appendCode(` ${devProps}}`); + } else { + this.tokens.appendCode("}"); + } + } + /** + * Transform the core part of the props, assuming that a { has already been + * inserted before us and that a } will be inserted after us. + * + * If extractKeyCode is true (i.e. when using any jsx... function), any prop + * named "key" has its code captured and returned rather than being emitted to + * the output code. This shifts line numbers, and emitting the code later will + * correct line numbers again. If no key is found or if extractKeyCode is + * false, this function returns null. + */ + processProps(extractKeyCode) { + let keyCode = null; + while (true) { + if (this.tokens.matches2(TokenType.jsxName, TokenType.eq)) { + const propName = this.tokens.identifierName(); + if (extractKeyCode && propName === "key") { + if (keyCode !== null) { + this.tokens.appendCode(keyCode.replace(/[^\n]/g, "")); + } + this.tokens.removeToken(); + this.tokens.removeToken(); + const snapshot = this.tokens.snapshot(); + this.processPropValue(); + keyCode = this.tokens.dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot); + continue; + } else { + this.processPropName(propName); + this.tokens.replaceToken(": "); + this.processPropValue(); + } + } else if (this.tokens.matches1(TokenType.jsxName)) { + const propName = this.tokens.identifierName(); + this.processPropName(propName); + this.tokens.appendCode(": true"); + } else if (this.tokens.matches1(TokenType.braceL)) { + this.tokens.replaceToken(""); + this.rootTransformer.processBalancedCode(); + this.tokens.replaceToken(""); + } else { + break; + } + this.tokens.appendCode(","); + } + return keyCode; + } + processPropName(propName) { + if (propName.includes("-")) { + this.tokens.replaceToken(`'${propName}'`); + } else { + this.tokens.copyToken(); + } + } + processPropValue() { + if (this.tokens.matches1(TokenType.braceL)) { + this.tokens.replaceToken(""); + this.rootTransformer.processBalancedCode(); + this.tokens.replaceToken(""); + } else if (this.tokens.matches1(TokenType.jsxTagStart)) { + this.processJSXTag(); + } else { + this.processStringPropValue(); + } + } + processStringPropValue() { + const token2 = this.tokens.currentToken(); + const valueCode = this.tokens.code.slice(token2.start + 1, token2.end - 1); + const replacementCode = formatJSXTextReplacement(valueCode); + const literalCode = formatJSXStringValueLiteral(valueCode); + this.tokens.replaceToken(literalCode + replacementCode); + } + /** + * Starting in the middle of the props object literal, produce an additional + * prop for the children and close the object literal. + */ + processAutomaticChildrenAndEndProps(jsxRole) { + if (jsxRole === JSXRole.StaticChildren) { + this.tokens.appendCode(" children: ["); + this.processChildren(false); + this.tokens.appendCode("]}"); + } else { + if (jsxRole === JSXRole.OneChild) { + this.tokens.appendCode(" children: "); + } + this.processChildren(false); + this.tokens.appendCode("}"); + } + } + /** + * Transform children into a comma-separated list, which will be either + * arguments to createElement or array elements of a children prop. + */ + processChildren(needsInitialComma) { + let needsComma = needsInitialComma; + while (true) { + if (this.tokens.matches2(TokenType.jsxTagStart, TokenType.slash)) { + return; + } + let didEmitElement = false; + if (this.tokens.matches1(TokenType.braceL)) { + if (this.tokens.matches2(TokenType.braceL, TokenType.braceR)) { + this.tokens.replaceToken(""); + this.tokens.replaceToken(""); + } else { + this.tokens.replaceToken(needsComma ? ", " : ""); + this.rootTransformer.processBalancedCode(); + this.tokens.replaceToken(""); + didEmitElement = true; + } + } else if (this.tokens.matches1(TokenType.jsxTagStart)) { + this.tokens.appendCode(needsComma ? ", " : ""); + this.processJSXTag(); + didEmitElement = true; + } else if (this.tokens.matches1(TokenType.jsxText) || this.tokens.matches1(TokenType.jsxEmptyText)) { + didEmitElement = this.processChildTextElement(needsComma); + } else { + throw new Error("Unexpected token when processing JSX children."); + } + if (didEmitElement) { + needsComma = true; + } + } + } + /** + * Turn a JSX text element into a string literal, or nothing at all if the JSX + * text resolves to the empty string. + * + * Returns true if a string literal is emitted, false otherwise. + */ + processChildTextElement(needsComma) { + const token2 = this.tokens.currentToken(); + const valueCode = this.tokens.code.slice(token2.start, token2.end); + const replacementCode = formatJSXTextReplacement(valueCode); + const literalCode = formatJSXTextLiteral(valueCode); + if (literalCode === '""') { + this.tokens.replaceToken(replacementCode); + return false; + } else { + this.tokens.replaceToken(`${needsComma ? ", " : ""}${literalCode}${replacementCode}`); + return true; + } + } + getDevSource(elementLocationCode) { + return `{fileName: ${this.getFilenameVarName()}, ${elementLocationCode}}`; + } + getFilenameVarName() { + if (!this.filenameVarName) { + this.filenameVarName = this.nameManager.claimFreeName("_jsxFileName"); + } + return this.filenameVarName; + } +}; +function startsWithLowerCase(s4) { + const firstChar = s4.charCodeAt(0); + return firstChar >= charCodes.lowercaseA && firstChar <= charCodes.lowercaseZ; +} +function formatJSXTextLiteral(text2) { + let result = ""; + let whitespace3 = ""; + let isInInitialLineWhitespace = false; + let seenNonWhitespace = false; + for (let i4 = 0; i4 < text2.length; i4++) { + const c4 = text2[i4]; + if (c4 === " " || c4 === " " || c4 === "\r") { + if (!isInInitialLineWhitespace) { + whitespace3 += c4; + } + } else if (c4 === "\n") { + whitespace3 = ""; + isInInitialLineWhitespace = true; + } else { + if (seenNonWhitespace && isInInitialLineWhitespace) { + result += " "; + } + result += whitespace3; + whitespace3 = ""; + if (c4 === "&") { + const { entity, newI } = processEntity(text2, i4 + 1); + i4 = newI - 1; + result += entity; + } else { + result += c4; + } + seenNonWhitespace = true; + isInInitialLineWhitespace = false; + } + } + if (!isInInitialLineWhitespace) { + result += whitespace3; + } + return JSON.stringify(result); +} +function formatJSXTextReplacement(text2) { + let numNewlines = 0; + let numSpaces = 0; + for (const c4 of text2) { + if (c4 === "\n") { + numNewlines++; + numSpaces = 0; + } else if (c4 === " ") { + numSpaces++; + } + } + return "\n".repeat(numNewlines) + " ".repeat(numSpaces); +} +function formatJSXStringValueLiteral(text2) { + let result = ""; + for (let i4 = 0; i4 < text2.length; i4++) { + const c4 = text2[i4]; + if (c4 === "\n") { + if (/\s/.test(text2[i4 + 1])) { + result += " "; + while (i4 < text2.length && /\s/.test(text2[i4 + 1])) { + i4++; + } + } else { + result += "\n"; + } + } else if (c4 === "&") { + const { entity, newI } = processEntity(text2, i4 + 1); + result += entity; + i4 = newI - 1; + } else { + result += c4; + } + } + return JSON.stringify(result); +} +function processEntity(text2, indexAfterAmpersand) { + let str = ""; + let count = 0; + let entity; + let i4 = indexAfterAmpersand; + if (text2[i4] === "#") { + let radix = 10; + i4++; + let numStart; + if (text2[i4] === "x") { + radix = 16; + i4++; + numStart = i4; + while (i4 < text2.length && isHexDigit(text2.charCodeAt(i4))) { + i4++; + } + } else { + numStart = i4; + while (i4 < text2.length && isDecimalDigit(text2.charCodeAt(i4))) { + i4++; + } + } + if (text2[i4] === ";") { + const numStr = text2.slice(numStart, i4); + if (numStr) { + i4++; + entity = String.fromCodePoint(parseInt(numStr, radix)); + } + } + } else { + while (i4 < text2.length && count++ < 10) { + const ch = text2[i4]; + i4++; + if (ch === ";") { + entity = xhtml_default.get(str); + break; + } + str += ch; + } + } + if (!entity) { + return { entity: "&", newI: indexAfterAmpersand }; + } + return { entity, newI: i4 }; +} +function isDecimalDigit(code) { + return code >= charCodes.digit0 && code <= charCodes.digit9; +} +function isHexDigit(code) { + return code >= charCodes.digit0 && code <= charCodes.digit9 || code >= charCodes.lowercaseA && code <= charCodes.lowercaseF || code >= charCodes.uppercaseA && code <= charCodes.uppercaseF; +} + +// node_modules/sucrase/dist/esm/util/getNonTypeIdentifiers.js +function getNonTypeIdentifiers(tokens, options2) { + const jsxPragmaInfo = getJSXPragmaInfo(options2); + const nonTypeIdentifiers = /* @__PURE__ */ new Set(); + for (let i4 = 0; i4 < tokens.tokens.length; i4++) { + const token2 = tokens.tokens[i4]; + if (token2.type === TokenType.name && !token2.isType && (token2.identifierRole === IdentifierRole.Access || token2.identifierRole === IdentifierRole.ObjectShorthand || token2.identifierRole === IdentifierRole.ExportAccess) && !token2.shadowsGlobal) { + nonTypeIdentifiers.add(tokens.identifierNameForToken(token2)); + } + if (token2.type === TokenType.jsxTagStart) { + nonTypeIdentifiers.add(jsxPragmaInfo.base); + } + if (token2.type === TokenType.jsxTagStart && i4 + 1 < tokens.tokens.length && tokens.tokens[i4 + 1].type === TokenType.jsxTagEnd) { + nonTypeIdentifiers.add(jsxPragmaInfo.base); + nonTypeIdentifiers.add(jsxPragmaInfo.fragmentBase); + } + if (token2.type === TokenType.jsxName && token2.identifierRole === IdentifierRole.Access) { + const identifierName = tokens.identifierNameForToken(token2); + if (!startsWithLowerCase(identifierName) || tokens.tokens[i4 + 1].type === TokenType.dot) { + nonTypeIdentifiers.add(tokens.identifierNameForToken(token2)); + } + } + } + return nonTypeIdentifiers; +} + +// node_modules/sucrase/dist/esm/CJSImportProcessor.js +var CJSImportProcessor = class _CJSImportProcessor { + __init() { + this.nonTypeIdentifiers = /* @__PURE__ */ new Set(); + } + __init2() { + this.importInfoByPath = /* @__PURE__ */ new Map(); + } + __init3() { + this.importsToReplace = /* @__PURE__ */ new Map(); + } + __init4() { + this.identifierReplacements = /* @__PURE__ */ new Map(); + } + __init5() { + this.exportBindingsByLocalName = /* @__PURE__ */ new Map(); + } + constructor(nameManager, tokens, enableLegacyTypeScriptModuleInterop, options2, isTypeScriptTransformEnabled, keepUnusedImports, helperManager) { + ; + this.nameManager = nameManager; + this.tokens = tokens; + this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop; + this.options = options2; + this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; + this.keepUnusedImports = keepUnusedImports; + this.helperManager = helperManager; + _CJSImportProcessor.prototype.__init.call(this); + _CJSImportProcessor.prototype.__init2.call(this); + _CJSImportProcessor.prototype.__init3.call(this); + _CJSImportProcessor.prototype.__init4.call(this); + _CJSImportProcessor.prototype.__init5.call(this); + } + preprocessTokens() { + for (let i4 = 0; i4 < this.tokens.tokens.length; i4++) { + if (this.tokens.matches1AtIndex(i4, TokenType._import) && !this.tokens.matches3AtIndex(i4, TokenType._import, TokenType.name, TokenType.eq)) { + this.preprocessImportAtIndex(i4); + } + if (this.tokens.matches1AtIndex(i4, TokenType._export) && !this.tokens.matches2AtIndex(i4, TokenType._export, TokenType.eq)) { + this.preprocessExportAtIndex(i4); + } + } + this.generateImportReplacements(); + } + /** + * In TypeScript, import statements that only import types should be removed. + * This includes `import {} from 'foo';`, but not `import 'foo';`. + */ + pruneTypeOnlyImports() { + this.nonTypeIdentifiers = getNonTypeIdentifiers(this.tokens, this.options); + for (const [path, importInfo] of this.importInfoByPath.entries()) { + if (importInfo.hasBareImport || importInfo.hasStarExport || importInfo.exportStarNames.length > 0 || importInfo.namedExports.length > 0) { + continue; + } + const names = [ + ...importInfo.defaultNames, + ...importInfo.wildcardNames, + ...importInfo.namedImports.map(({ localName }) => localName) + ]; + if (names.every((name) => this.shouldAutomaticallyElideImportedName(name))) { + this.importsToReplace.set(path, ""); + } + } + } + shouldAutomaticallyElideImportedName(name) { + return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.nonTypeIdentifiers.has(name); + } + generateImportReplacements() { + for (const [path, importInfo] of this.importInfoByPath.entries()) { + const { + defaultNames, + wildcardNames, + namedImports, + namedExports, + exportStarNames, + hasStarExport + } = importInfo; + if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0 && namedExports.length === 0 && exportStarNames.length === 0 && !hasStarExport) { + this.importsToReplace.set(path, `require('${path}');`); + continue; + } + const primaryImportName = this.getFreeIdentifierForPath(path); + let secondaryImportName; + if (this.enableLegacyTypeScriptModuleInterop) { + secondaryImportName = primaryImportName; + } else { + secondaryImportName = wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path); + } + let requireCode = `var ${primaryImportName} = require('${path}');`; + if (wildcardNames.length > 0) { + for (const wildcardName of wildcardNames) { + const moduleExpr = this.enableLegacyTypeScriptModuleInterop ? primaryImportName : `${this.helperManager.getHelperName("interopRequireWildcard")}(${primaryImportName})`; + requireCode += ` var ${wildcardName} = ${moduleExpr};`; + } + } else if (exportStarNames.length > 0 && secondaryImportName !== primaryImportName) { + requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName( + "interopRequireWildcard" + )}(${primaryImportName});`; + } else if (defaultNames.length > 0 && secondaryImportName !== primaryImportName) { + requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName( + "interopRequireDefault" + )}(${primaryImportName});`; + } + for (const { importedName, localName } of namedExports) { + requireCode += ` ${this.helperManager.getHelperName( + "createNamedExportFrom" + )}(${primaryImportName}, '${localName}', '${importedName}');`; + } + for (const exportStarName of exportStarNames) { + requireCode += ` exports.${exportStarName} = ${secondaryImportName};`; + } + if (hasStarExport) { + requireCode += ` ${this.helperManager.getHelperName( + "createStarExport" + )}(${primaryImportName});`; + } + this.importsToReplace.set(path, requireCode); + for (const defaultName of defaultNames) { + this.identifierReplacements.set(defaultName, `${secondaryImportName}.default`); + } + for (const { importedName, localName } of namedImports) { + this.identifierReplacements.set(localName, `${primaryImportName}.${importedName}`); + } + } + } + getFreeIdentifierForPath(path) { + const components2 = path.split("/"); + const lastComponent = components2[components2.length - 1]; + const baseName = lastComponent.replace(/\W/g, ""); + return this.nameManager.claimFreeName(`_${baseName}`); + } + preprocessImportAtIndex(index2) { + const defaultNames = []; + const wildcardNames = []; + const namedImports = []; + index2++; + if ((this.tokens.matchesContextualAtIndex(index2, ContextualKeyword._type) || this.tokens.matches1AtIndex(index2, TokenType._typeof)) && !this.tokens.matches1AtIndex(index2 + 1, TokenType.comma) && !this.tokens.matchesContextualAtIndex(index2 + 1, ContextualKeyword._from)) { + return; + } + if (this.tokens.matches1AtIndex(index2, TokenType.parenL)) { + return; + } + if (this.tokens.matches1AtIndex(index2, TokenType.name)) { + defaultNames.push(this.tokens.identifierNameAtIndex(index2)); + index2++; + if (this.tokens.matches1AtIndex(index2, TokenType.comma)) { + index2++; + } + } + if (this.tokens.matches1AtIndex(index2, TokenType.star)) { + index2 += 2; + wildcardNames.push(this.tokens.identifierNameAtIndex(index2)); + index2++; + } + if (this.tokens.matches1AtIndex(index2, TokenType.braceL)) { + const result = this.getNamedImports(index2 + 1); + index2 = result.newIndex; + for (const namedImport of result.namedImports) { + if (namedImport.importedName === "default") { + defaultNames.push(namedImport.localName); + } else { + namedImports.push(namedImport); + } + } + } + if (this.tokens.matchesContextualAtIndex(index2, ContextualKeyword._from)) { + index2++; + } + if (!this.tokens.matches1AtIndex(index2, TokenType.string)) { + throw new Error("Expected string token at the end of import statement."); + } + const path = this.tokens.stringValueAtIndex(index2); + const importInfo = this.getImportInfo(path); + importInfo.defaultNames.push(...defaultNames); + importInfo.wildcardNames.push(...wildcardNames); + importInfo.namedImports.push(...namedImports); + if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0) { + importInfo.hasBareImport = true; + } + } + preprocessExportAtIndex(index2) { + if (this.tokens.matches2AtIndex(index2, TokenType._export, TokenType._var) || this.tokens.matches2AtIndex(index2, TokenType._export, TokenType._let) || this.tokens.matches2AtIndex(index2, TokenType._export, TokenType._const)) { + this.preprocessVarExportAtIndex(index2); + } else if (this.tokens.matches2AtIndex(index2, TokenType._export, TokenType._function) || this.tokens.matches2AtIndex(index2, TokenType._export, TokenType._class)) { + const exportName = this.tokens.identifierNameAtIndex(index2 + 2); + this.addExportBinding(exportName, exportName); + } else if (this.tokens.matches3AtIndex(index2, TokenType._export, TokenType.name, TokenType._function)) { + const exportName = this.tokens.identifierNameAtIndex(index2 + 3); + this.addExportBinding(exportName, exportName); + } else if (this.tokens.matches2AtIndex(index2, TokenType._export, TokenType.braceL)) { + this.preprocessNamedExportAtIndex(index2); + } else if (this.tokens.matches2AtIndex(index2, TokenType._export, TokenType.star)) { + this.preprocessExportStarAtIndex(index2); + } + } + preprocessVarExportAtIndex(index2) { + let depth = 0; + for (let i4 = index2 + 2; ; i4++) { + if (this.tokens.matches1AtIndex(i4, TokenType.braceL) || this.tokens.matches1AtIndex(i4, TokenType.dollarBraceL) || this.tokens.matches1AtIndex(i4, TokenType.bracketL)) { + depth++; + } else if (this.tokens.matches1AtIndex(i4, TokenType.braceR) || this.tokens.matches1AtIndex(i4, TokenType.bracketR)) { + depth--; + } else if (depth === 0 && !this.tokens.matches1AtIndex(i4, TokenType.name)) { + break; + } else if (this.tokens.matches1AtIndex(1, TokenType.eq)) { + const endIndex = this.tokens.currentToken().rhsEndIndex; + if (endIndex == null) { + throw new Error("Expected = token with an end index."); + } + i4 = endIndex - 1; + } else { + const token2 = this.tokens.tokens[i4]; + if (isDeclaration(token2)) { + const exportName = this.tokens.identifierNameAtIndex(i4); + this.identifierReplacements.set(exportName, `exports.${exportName}`); + } + } + } + } + /** + * Walk this export statement just in case it's an export...from statement. + * If it is, combine it into the import info for that path. Otherwise, just + * bail out; it'll be handled later. + */ + preprocessNamedExportAtIndex(index2) { + index2 += 2; + const { newIndex, namedImports } = this.getNamedImports(index2); + index2 = newIndex; + if (this.tokens.matchesContextualAtIndex(index2, ContextualKeyword._from)) { + index2++; + } else { + for (const { importedName: localName, localName: exportedName } of namedImports) { + this.addExportBinding(localName, exportedName); + } + return; + } + if (!this.tokens.matches1AtIndex(index2, TokenType.string)) { + throw new Error("Expected string token at the end of import statement."); + } + const path = this.tokens.stringValueAtIndex(index2); + const importInfo = this.getImportInfo(path); + importInfo.namedExports.push(...namedImports); + } + preprocessExportStarAtIndex(index2) { + let exportedName = null; + if (this.tokens.matches3AtIndex(index2, TokenType._export, TokenType.star, TokenType._as)) { + index2 += 3; + exportedName = this.tokens.identifierNameAtIndex(index2); + index2 += 2; + } else { + index2 += 3; + } + if (!this.tokens.matches1AtIndex(index2, TokenType.string)) { + throw new Error("Expected string token at the end of star export statement."); + } + const path = this.tokens.stringValueAtIndex(index2); + const importInfo = this.getImportInfo(path); + if (exportedName !== null) { + importInfo.exportStarNames.push(exportedName); + } else { + importInfo.hasStarExport = true; + } + } + getNamedImports(index2) { + const namedImports = []; + while (true) { + if (this.tokens.matches1AtIndex(index2, TokenType.braceR)) { + index2++; + break; + } + const specifierInfo = getImportExportSpecifierInfo(this.tokens, index2); + index2 = specifierInfo.endIndex; + if (!specifierInfo.isType) { + namedImports.push({ + importedName: specifierInfo.leftName, + localName: specifierInfo.rightName + }); + } + if (this.tokens.matches2AtIndex(index2, TokenType.comma, TokenType.braceR)) { + index2 += 2; + break; + } else if (this.tokens.matches1AtIndex(index2, TokenType.braceR)) { + index2++; + break; + } else if (this.tokens.matches1AtIndex(index2, TokenType.comma)) { + index2++; + } else { + throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.tokens[index2])}`); + } + } + return { newIndex: index2, namedImports }; + } + /** + * Get a mutable import info object for this path, creating one if it doesn't + * exist yet. + */ + getImportInfo(path) { + const existingInfo = this.importInfoByPath.get(path); + if (existingInfo) { + return existingInfo; + } + const newInfo = { + defaultNames: [], + wildcardNames: [], + namedImports: [], + namedExports: [], + hasBareImport: false, + exportStarNames: [], + hasStarExport: false + }; + this.importInfoByPath.set(path, newInfo); + return newInfo; + } + addExportBinding(localName, exportedName) { + if (!this.exportBindingsByLocalName.has(localName)) { + this.exportBindingsByLocalName.set(localName, []); + } + this.exportBindingsByLocalName.get(localName).push(exportedName); + } + /** + * Return the code to use for the import for this path, or the empty string if + * the code has already been "claimed" by a previous import. + */ + claimImportCode(importPath) { + const result = this.importsToReplace.get(importPath); + this.importsToReplace.set(importPath, ""); + return result || ""; + } + getIdentifierReplacement(identifierName) { + return this.identifierReplacements.get(identifierName) || null; + } + /** + * Return a string like `exports.foo = exports.bar`. + */ + resolveExportBinding(assignedName) { + const exportedNames = this.exportBindingsByLocalName.get(assignedName); + if (!exportedNames || exportedNames.length === 0) { + return null; + } + return exportedNames.map((exportedName) => `exports.${exportedName}`).join(" = "); + } + /** + * Return all imported/exported names where we might be interested in whether usages of those + * names are shadowed. + */ + getGlobalNames() { + return /* @__PURE__ */ new Set([ + ...this.identifierReplacements.keys(), + ...this.exportBindingsByLocalName.keys() + ]); + } +}; + +// node_modules/sucrase/dist/esm/computeSourceMap.js +var import_gen_mapping = __toESM(require_gen_mapping_umd()); +function computeSourceMap({ code: generatedCode, mappings: rawMappings }, filePath, options2, source, tokens) { + const sourceColumns = computeSourceColumns(source, tokens); + const map = new import_gen_mapping.GenMapping({ file: options2.compiledFilename }); + let tokenIndex = 0; + let currentMapping = rawMappings[0]; + while (currentMapping === void 0 && tokenIndex < rawMappings.length - 1) { + tokenIndex++; + currentMapping = rawMappings[tokenIndex]; + } + let line2 = 0; + let lineStart = 0; + if (currentMapping !== lineStart) { + (0, import_gen_mapping.maybeAddSegment)(map, line2, 0, filePath, line2, 0); + } + for (let i4 = 0; i4 < generatedCode.length; i4++) { + if (i4 === currentMapping) { + const genColumn = currentMapping - lineStart; + const sourceColumn = sourceColumns[tokenIndex]; + (0, import_gen_mapping.maybeAddSegment)(map, line2, genColumn, filePath, line2, sourceColumn); + while ((currentMapping === i4 || currentMapping === void 0) && tokenIndex < rawMappings.length - 1) { + tokenIndex++; + currentMapping = rawMappings[tokenIndex]; + } + } + if (generatedCode.charCodeAt(i4) === charCodes.lineFeed) { + line2++; + lineStart = i4 + 1; + if (currentMapping !== lineStart) { + (0, import_gen_mapping.maybeAddSegment)(map, line2, 0, filePath, line2, 0); + } + } + } + const { sourceRoot, sourcesContent, ...sourceMap } = (0, import_gen_mapping.toEncodedMap)(map); + return sourceMap; +} +function computeSourceColumns(code, tokens) { + const sourceColumns = new Array(tokens.length); + let tokenIndex = 0; + let currentMapping = tokens[tokenIndex].start; + let lineStart = 0; + for (let i4 = 0; i4 < code.length; i4++) { + if (i4 === currentMapping) { + sourceColumns[tokenIndex] = currentMapping - lineStart; + tokenIndex++; + currentMapping = tokens[tokenIndex].start; + } + if (code.charCodeAt(i4) === charCodes.lineFeed) { + lineStart = i4 + 1; + } + } + return sourceColumns; +} + +// node_modules/sucrase/dist/esm/HelperManager.js +var HELPERS = { + require: ` + import {createRequire as CREATE_REQUIRE_NAME} from "module"; + const require = CREATE_REQUIRE_NAME(import.meta.url); + `, + interopRequireWildcard: ` + function interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + return newObj; + } + } + `, + interopRequireDefault: ` + function interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + `, + createNamedExportFrom: ` + function createNamedExportFrom(obj, localName, importedName) { + Object.defineProperty(exports, localName, {enumerable: true, configurable: true, get: () => obj[importedName]}); + } + `, + // Note that TypeScript and Babel do this differently; TypeScript does a simple existence + // check in the exports object and does a plain assignment, whereas Babel uses + // defineProperty and builds an object of explicitly-exported names so that star exports can + // always take lower precedence. For now, we do the easier TypeScript thing. + createStarExport: ` + function createStarExport(obj) { + Object.keys(obj) + .filter((key) => key !== "default" && key !== "__esModule") + .forEach((key) => { + if (exports.hasOwnProperty(key)) { + return; + } + Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); + }); + } + `, + nullishCoalesce: ` + function nullishCoalesce(lhs, rhsFn) { + if (lhs != null) { + return lhs; + } else { + return rhsFn(); + } + } + `, + asyncNullishCoalesce: ` + async function asyncNullishCoalesce(lhs, rhsFn) { + if (lhs != null) { + return lhs; + } else { + return await rhsFn(); + } + } + `, + optionalChain: ` + function optionalChain(ops) { + let lastAccessLHS = undefined; + let value = ops[0]; + let i = 1; + while (i < ops.length) { + const op = ops[i]; + const fn = ops[i + 1]; + i += 2; + if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { + return undefined; + } + if (op === 'access' || op === 'optionalAccess') { + lastAccessLHS = value; + value = fn(value); + } else if (op === 'call' || op === 'optionalCall') { + value = fn((...args) => value.call(lastAccessLHS, ...args)); + lastAccessLHS = undefined; + } + } + return value; + } + `, + asyncOptionalChain: ` + async function asyncOptionalChain(ops) { + let lastAccessLHS = undefined; + let value = ops[0]; + let i = 1; + while (i < ops.length) { + const op = ops[i]; + const fn = ops[i + 1]; + i += 2; + if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { + return undefined; + } + if (op === 'access' || op === 'optionalAccess') { + lastAccessLHS = value; + value = await fn(value); + } else if (op === 'call' || op === 'optionalCall') { + value = await fn((...args) => value.call(lastAccessLHS, ...args)); + lastAccessLHS = undefined; + } + } + return value; + } + `, + optionalChainDelete: ` + function optionalChainDelete(ops) { + const result = OPTIONAL_CHAIN_NAME(ops); + return result == null ? true : result; + } + `, + asyncOptionalChainDelete: ` + async function asyncOptionalChainDelete(ops) { + const result = await ASYNC_OPTIONAL_CHAIN_NAME(ops); + return result == null ? true : result; + } + ` +}; +var HelperManager = class _HelperManager { + __init() { + this.helperNames = {}; + } + __init2() { + this.createRequireName = null; + } + constructor(nameManager) { + ; + this.nameManager = nameManager; + _HelperManager.prototype.__init.call(this); + _HelperManager.prototype.__init2.call(this); + } + getHelperName(baseName) { + let helperName = this.helperNames[baseName]; + if (helperName) { + return helperName; + } + helperName = this.nameManager.claimFreeName(`_${baseName}`); + this.helperNames[baseName] = helperName; + return helperName; + } + emitHelpers() { + let resultCode = ""; + if (this.helperNames.optionalChainDelete) { + this.getHelperName("optionalChain"); + } + if (this.helperNames.asyncOptionalChainDelete) { + this.getHelperName("asyncOptionalChain"); + } + for (const [baseName, helperCodeTemplate] of Object.entries(HELPERS)) { + const helperName = this.helperNames[baseName]; + let helperCode = helperCodeTemplate; + if (baseName === "optionalChainDelete") { + helperCode = helperCode.replace("OPTIONAL_CHAIN_NAME", this.helperNames.optionalChain); + } else if (baseName === "asyncOptionalChainDelete") { + helperCode = helperCode.replace( + "ASYNC_OPTIONAL_CHAIN_NAME", + this.helperNames.asyncOptionalChain + ); + } else if (baseName === "require") { + if (this.createRequireName === null) { + this.createRequireName = this.nameManager.claimFreeName("_createRequire"); + } + helperCode = helperCode.replace(/CREATE_REQUIRE_NAME/g, this.createRequireName); + } + if (helperName) { + resultCode += " "; + resultCode += helperCode.replace(baseName, helperName).replace(/\s+/g, " ").trim(); + } + } + return resultCode; + } +}; + +// node_modules/sucrase/dist/esm/identifyShadowedGlobals.js +function identifyShadowedGlobals(tokens, scopes, globalNames) { + if (!hasShadowedGlobals(tokens, globalNames)) { + return; + } + markShadowedGlobals(tokens, scopes, globalNames); +} +function hasShadowedGlobals(tokens, globalNames) { + for (const token2 of tokens.tokens) { + if (token2.type === TokenType.name && !token2.isType && isNonTopLevelDeclaration(token2) && globalNames.has(tokens.identifierNameForToken(token2))) { + return true; + } + } + return false; +} +function markShadowedGlobals(tokens, scopes, globalNames) { + const scopeStack = []; + let scopeIndex = scopes.length - 1; + for (let i4 = tokens.tokens.length - 1; ; i4--) { + while (scopeStack.length > 0 && scopeStack[scopeStack.length - 1].startTokenIndex === i4 + 1) { + scopeStack.pop(); + } + while (scopeIndex >= 0 && scopes[scopeIndex].endTokenIndex === i4 + 1) { + scopeStack.push(scopes[scopeIndex]); + scopeIndex--; + } + if (i4 < 0) { + break; + } + const token2 = tokens.tokens[i4]; + const name = tokens.identifierNameForToken(token2); + if (scopeStack.length > 1 && !token2.isType && token2.type === TokenType.name && globalNames.has(name)) { + if (isBlockScopedDeclaration(token2)) { + markShadowedForScope(scopeStack[scopeStack.length - 1], tokens, name); + } else if (isFunctionScopedDeclaration(token2)) { + let stackIndex = scopeStack.length - 1; + while (stackIndex > 0 && !scopeStack[stackIndex].isFunctionScope) { + stackIndex--; + } + if (stackIndex < 0) { + throw new Error("Did not find parent function scope."); + } + markShadowedForScope(scopeStack[stackIndex], tokens, name); + } + } + } + if (scopeStack.length > 0) { + throw new Error("Expected empty scope stack after processing file."); + } +} +function markShadowedForScope(scope, tokens, name) { + for (let i4 = scope.startTokenIndex; i4 < scope.endTokenIndex; i4++) { + const token2 = tokens.tokens[i4]; + if ((token2.type === TokenType.name || token2.type === TokenType.jsxName) && tokens.identifierNameForToken(token2) === name) { + token2.shadowsGlobal = true; + } + } +} + +// node_modules/sucrase/dist/esm/util/getIdentifierNames.js +function getIdentifierNames(code, tokens) { + const names = []; + for (const token2 of tokens) { + if (token2.type === TokenType.name) { + names.push(code.slice(token2.start, token2.end)); + } + } + return names; +} + +// node_modules/sucrase/dist/esm/NameManager.js +var NameManager = class _NameManager { + __init() { + this.usedNames = /* @__PURE__ */ new Set(); + } + constructor(code, tokens) { + ; + _NameManager.prototype.__init.call(this); + this.usedNames = new Set(getIdentifierNames(code, tokens)); + } + claimFreeName(name) { + const newName = this.findFreeName(name); + this.usedNames.add(newName); + return newName; + } + findFreeName(name) { + if (!this.usedNames.has(name)) { + return name; + } + let suffixNum = 2; + while (this.usedNames.has(name + String(suffixNum))) { + suffixNum++; + } + return name + String(suffixNum); + } +}; + +// node_modules/sucrase/dist/esm/Options.js +var import_ts_interface_checker = __toESM(require_dist()); + +// node_modules/sucrase/dist/esm/Options-gen-types.js +var t3 = __toESM(require_dist()); +var Transform = t3.union( + t3.lit("jsx"), + t3.lit("typescript"), + t3.lit("flow"), + t3.lit("imports"), + t3.lit("react-hot-loader"), + t3.lit("jest") +); +var SourceMapOptions = t3.iface([], { + compiledFilename: "string" +}); +var Options = t3.iface([], { + transforms: t3.array("Transform"), + disableESTransforms: t3.opt("boolean"), + jsxRuntime: t3.opt(t3.union(t3.lit("classic"), t3.lit("automatic"), t3.lit("preserve"))), + production: t3.opt("boolean"), + jsxImportSource: t3.opt("string"), + jsxPragma: t3.opt("string"), + jsxFragmentPragma: t3.opt("string"), + keepUnusedImports: t3.opt("boolean"), + preserveDynamicImport: t3.opt("boolean"), + injectCreateRequireForImportRequire: t3.opt("boolean"), + enableLegacyTypeScriptModuleInterop: t3.opt("boolean"), + enableLegacyBabel5ModuleInterop: t3.opt("boolean"), + sourceMapOptions: t3.opt("SourceMapOptions"), + filePath: t3.opt("string") +}); +var exportedTypeSuite = { + Transform, + SourceMapOptions, + Options +}; +var Options_gen_types_default = exportedTypeSuite; + +// node_modules/sucrase/dist/esm/Options.js +var { Options: OptionsChecker } = (0, import_ts_interface_checker.createCheckers)(Options_gen_types_default); +function validateOptions(options2) { + OptionsChecker.strictCheck(options2); +} + +// node_modules/sucrase/dist/esm/parser/traverser/lval.js +function parseSpread() { + next(); + parseMaybeAssign(false); +} +function parseRest(isBlockScope) { + next(); + parseBindingAtom(isBlockScope); +} +function parseBindingIdentifier(isBlockScope) { + parseIdentifier(); + markPriorBindingIdentifier(isBlockScope); +} +function parseImportedIdentifier() { + parseIdentifier(); + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportDeclaration; +} +function markPriorBindingIdentifier(isBlockScope) { + let identifierRole; + if (state.scopeDepth === 0) { + identifierRole = IdentifierRole.TopLevelDeclaration; + } else if (isBlockScope) { + identifierRole = IdentifierRole.BlockScopedDeclaration; + } else { + identifierRole = IdentifierRole.FunctionScopedDeclaration; + } + state.tokens[state.tokens.length - 1].identifierRole = identifierRole; +} +function parseBindingAtom(isBlockScope) { + switch (state.type) { + case TokenType._this: { + const oldIsType = pushTypeContext(0); + next(); + popTypeContext(oldIsType); + return; + } + case TokenType._yield: + case TokenType.name: { + state.type = TokenType.name; + parseBindingIdentifier(isBlockScope); + return; + } + case TokenType.bracketL: { + next(); + parseBindingList( + TokenType.bracketR, + isBlockScope, + true + /* allowEmpty */ + ); + return; + } + case TokenType.braceL: + parseObj(true, isBlockScope); + return; + default: + unexpected(); + } +} +function parseBindingList(close, isBlockScope, allowEmpty = false, allowModifiers = false, contextId = 0) { + let first = true; + let hasRemovedComma = false; + const firstItemTokenIndex = state.tokens.length; + while (!eat(close) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + state.tokens[state.tokens.length - 1].contextId = contextId; + if (!hasRemovedComma && state.tokens[firstItemTokenIndex].isType) { + state.tokens[state.tokens.length - 1].isType = true; + hasRemovedComma = true; + } + } + if (allowEmpty && match2(TokenType.comma)) { + } else if (eat(close)) { + break; + } else if (match2(TokenType.ellipsis)) { + parseRest(isBlockScope); + parseAssignableListItemTypes(); + eat(TokenType.comma); + expect(close); + break; + } else { + parseAssignableListItem(allowModifiers, isBlockScope); + } + } +} +function parseAssignableListItem(allowModifiers, isBlockScope) { + if (allowModifiers) { + tsParseModifiers([ + ContextualKeyword._public, + ContextualKeyword._protected, + ContextualKeyword._private, + ContextualKeyword._readonly, + ContextualKeyword._override + ]); + } + parseMaybeDefault(isBlockScope); + parseAssignableListItemTypes(); + parseMaybeDefault( + isBlockScope, + true + /* leftAlreadyParsed */ + ); +} +function parseAssignableListItemTypes() { + if (isFlowEnabled) { + flowParseAssignableListItemTypes(); + } else if (isTypeScriptEnabled) { + tsParseAssignableListItemTypes(); + } +} +function parseMaybeDefault(isBlockScope, leftAlreadyParsed = false) { + if (!leftAlreadyParsed) { + parseBindingAtom(isBlockScope); + } + if (!eat(TokenType.eq)) { + return; + } + const eqIndex = state.tokens.length - 1; + parseMaybeAssign(); + state.tokens[eqIndex].rhsEndIndex = state.tokens.length; +} + +// node_modules/sucrase/dist/esm/parser/plugins/typescript.js +function tsIsIdentifier() { + return match2(TokenType.name); +} +function isLiteralPropertyName() { + return match2(TokenType.name) || Boolean(state.type & TokenType.IS_KEYWORD) || match2(TokenType.string) || match2(TokenType.num) || match2(TokenType.bigint) || match2(TokenType.decimal); +} +function tsNextTokenCanFollowModifier() { + const snapshot = state.snapshot(); + next(); + const canFollowModifier = (match2(TokenType.bracketL) || match2(TokenType.braceL) || match2(TokenType.star) || match2(TokenType.ellipsis) || match2(TokenType.hash) || isLiteralPropertyName()) && !hasPrecedingLineBreak(); + if (canFollowModifier) { + return true; + } else { + state.restoreFromSnapshot(snapshot); + return false; + } +} +function tsParseModifiers(allowedModifiers) { + while (true) { + const modifier = tsParseModifier(allowedModifiers); + if (modifier === null) { + break; + } + } +} +function tsParseModifier(allowedModifiers) { + if (!match2(TokenType.name)) { + return null; + } + const modifier = state.contextualKeyword; + if (allowedModifiers.indexOf(modifier) !== -1 && tsNextTokenCanFollowModifier()) { + switch (modifier) { + case ContextualKeyword._readonly: + state.tokens[state.tokens.length - 1].type = TokenType._readonly; + break; + case ContextualKeyword._abstract: + state.tokens[state.tokens.length - 1].type = TokenType._abstract; + break; + case ContextualKeyword._static: + state.tokens[state.tokens.length - 1].type = TokenType._static; + break; + case ContextualKeyword._public: + state.tokens[state.tokens.length - 1].type = TokenType._public; + break; + case ContextualKeyword._private: + state.tokens[state.tokens.length - 1].type = TokenType._private; + break; + case ContextualKeyword._protected: + state.tokens[state.tokens.length - 1].type = TokenType._protected; + break; + case ContextualKeyword._override: + state.tokens[state.tokens.length - 1].type = TokenType._override; + break; + case ContextualKeyword._declare: + state.tokens[state.tokens.length - 1].type = TokenType._declare; + break; + default: + break; + } + return modifier; + } + return null; +} +function tsParseEntityName() { + parseIdentifier(); + while (eat(TokenType.dot)) { + parseIdentifier(); + } +} +function tsParseTypeReference() { + tsParseEntityName(); + if (!hasPrecedingLineBreak() && match2(TokenType.lessThan)) { + tsParseTypeArguments(); + } +} +function tsParseThisTypePredicate() { + next(); + tsParseTypeAnnotation(); +} +function tsParseThisTypeNode() { + next(); +} +function tsParseTypeQuery() { + expect(TokenType._typeof); + if (match2(TokenType._import)) { + tsParseImportType(); + } else { + tsParseEntityName(); + } + if (!hasPrecedingLineBreak() && match2(TokenType.lessThan)) { + tsParseTypeArguments(); + } +} +function tsParseImportType() { + expect(TokenType._import); + expect(TokenType.parenL); + expect(TokenType.string); + expect(TokenType.parenR); + if (eat(TokenType.dot)) { + tsParseEntityName(); + } + if (match2(TokenType.lessThan)) { + tsParseTypeArguments(); + } +} +function tsParseTypeParameter() { + eat(TokenType._const); + const hadIn = eat(TokenType._in); + const hadOut = eatContextual(ContextualKeyword._out); + eat(TokenType._const); + if ((hadIn || hadOut) && !match2(TokenType.name)) { + state.tokens[state.tokens.length - 1].type = TokenType.name; + } else { + parseIdentifier(); + } + if (eat(TokenType._extends)) { + tsParseType(); + } + if (eat(TokenType.eq)) { + tsParseType(); + } +} +function tsTryParseTypeParameters() { + if (match2(TokenType.lessThan)) { + tsParseTypeParameters(); + } +} +function tsParseTypeParameters() { + const oldIsType = pushTypeContext(0); + if (match2(TokenType.lessThan) || match2(TokenType.typeParameterStart)) { + next(); + } else { + unexpected(); + } + while (!eat(TokenType.greaterThan) && !state.error) { + tsParseTypeParameter(); + eat(TokenType.comma); + } + popTypeContext(oldIsType); +} +function tsFillSignature(returnToken) { + const returnTokenRequired = returnToken === TokenType.arrow; + tsTryParseTypeParameters(); + expect(TokenType.parenL); + state.scopeDepth++; + tsParseBindingListForSignature( + false + /* isBlockScope */ + ); + state.scopeDepth--; + if (returnTokenRequired) { + tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (match2(returnToken)) { + tsParseTypeOrTypePredicateAnnotation(returnToken); + } +} +function tsParseBindingListForSignature(isBlockScope) { + parseBindingList(TokenType.parenR, isBlockScope); +} +function tsParseTypeMemberSemicolon() { + if (!eat(TokenType.comma)) { + semicolon(); + } +} +function tsParseSignatureMember() { + tsFillSignature(TokenType.colon); + tsParseTypeMemberSemicolon(); +} +function tsIsUnambiguouslyIndexSignature() { + const snapshot = state.snapshot(); + next(); + const isIndexSignature = eat(TokenType.name) && match2(TokenType.colon); + state.restoreFromSnapshot(snapshot); + return isIndexSignature; +} +function tsTryParseIndexSignature() { + if (!(match2(TokenType.bracketL) && tsIsUnambiguouslyIndexSignature())) { + return false; + } + const oldIsType = pushTypeContext(0); + expect(TokenType.bracketL); + parseIdentifier(); + tsParseTypeAnnotation(); + expect(TokenType.bracketR); + tsTryParseTypeAnnotation(); + tsParseTypeMemberSemicolon(); + popTypeContext(oldIsType); + return true; +} +function tsParsePropertyOrMethodSignature(isReadonly) { + eat(TokenType.question); + if (!isReadonly && (match2(TokenType.parenL) || match2(TokenType.lessThan))) { + tsFillSignature(TokenType.colon); + tsParseTypeMemberSemicolon(); + } else { + tsTryParseTypeAnnotation(); + tsParseTypeMemberSemicolon(); + } +} +function tsParseTypeMember() { + if (match2(TokenType.parenL) || match2(TokenType.lessThan)) { + tsParseSignatureMember(); + return; + } + if (match2(TokenType._new)) { + next(); + if (match2(TokenType.parenL) || match2(TokenType.lessThan)) { + tsParseSignatureMember(); + } else { + tsParsePropertyOrMethodSignature(false); + } + return; + } + const readonly = !!tsParseModifier([ContextualKeyword._readonly]); + const found = tsTryParseIndexSignature(); + if (found) { + return; + } + if ((isContextual(ContextualKeyword._get) || isContextual(ContextualKeyword._set)) && tsNextTokenCanFollowModifier()) { + } + parsePropertyName( + -1 + /* Types don't need context IDs. */ + ); + tsParsePropertyOrMethodSignature(readonly); +} +function tsParseTypeLiteral() { + tsParseObjectTypeMembers(); +} +function tsParseObjectTypeMembers() { + expect(TokenType.braceL); + while (!eat(TokenType.braceR) && !state.error) { + tsParseTypeMember(); + } +} +function tsLookaheadIsStartOfMappedType() { + const snapshot = state.snapshot(); + const isStartOfMappedType = tsIsStartOfMappedType(); + state.restoreFromSnapshot(snapshot); + return isStartOfMappedType; +} +function tsIsStartOfMappedType() { + next(); + if (eat(TokenType.plus) || eat(TokenType.minus)) { + return isContextual(ContextualKeyword._readonly); + } + if (isContextual(ContextualKeyword._readonly)) { + next(); + } + if (!match2(TokenType.bracketL)) { + return false; + } + next(); + if (!tsIsIdentifier()) { + return false; + } + next(); + return match2(TokenType._in); +} +function tsParseMappedTypeParameter() { + parseIdentifier(); + expect(TokenType._in); + tsParseType(); +} +function tsParseMappedType() { + expect(TokenType.braceL); + if (match2(TokenType.plus) || match2(TokenType.minus)) { + next(); + expectContextual(ContextualKeyword._readonly); + } else { + eatContextual(ContextualKeyword._readonly); + } + expect(TokenType.bracketL); + tsParseMappedTypeParameter(); + if (eatContextual(ContextualKeyword._as)) { + tsParseType(); + } + expect(TokenType.bracketR); + if (match2(TokenType.plus) || match2(TokenType.minus)) { + next(); + expect(TokenType.question); + } else { + eat(TokenType.question); + } + tsTryParseType(); + semicolon(); + expect(TokenType.braceR); +} +function tsParseTupleType() { + expect(TokenType.bracketL); + while (!eat(TokenType.bracketR) && !state.error) { + tsParseTupleElementType(); + eat(TokenType.comma); + } +} +function tsParseTupleElementType() { + if (eat(TokenType.ellipsis)) { + tsParseType(); + } else { + tsParseType(); + eat(TokenType.question); + } + if (eat(TokenType.colon)) { + tsParseType(); + } +} +function tsParseParenthesizedType() { + expect(TokenType.parenL); + tsParseType(); + expect(TokenType.parenR); +} +function tsParseTemplateLiteralType() { + nextTemplateToken(); + nextTemplateToken(); + while (!match2(TokenType.backQuote) && !state.error) { + expect(TokenType.dollarBraceL); + tsParseType(); + nextTemplateToken(); + nextTemplateToken(); + } + next(); +} +var FunctionType; +(function(FunctionType2) { + const TSFunctionType = 0; + FunctionType2[FunctionType2["TSFunctionType"] = TSFunctionType] = "TSFunctionType"; + const TSConstructorType = TSFunctionType + 1; + FunctionType2[FunctionType2["TSConstructorType"] = TSConstructorType] = "TSConstructorType"; + const TSAbstractConstructorType = TSConstructorType + 1; + FunctionType2[FunctionType2["TSAbstractConstructorType"] = TSAbstractConstructorType] = "TSAbstractConstructorType"; +})(FunctionType || (FunctionType = {})); +function tsParseFunctionOrConstructorType(type) { + if (type === FunctionType.TSAbstractConstructorType) { + expectContextual(ContextualKeyword._abstract); + } + if (type === FunctionType.TSConstructorType || type === FunctionType.TSAbstractConstructorType) { + expect(TokenType._new); + } + const oldInDisallowConditionalTypesContext = state.inDisallowConditionalTypesContext; + state.inDisallowConditionalTypesContext = false; + tsFillSignature(TokenType.arrow); + state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; +} +function tsParseNonArrayType() { + switch (state.type) { + case TokenType.name: + tsParseTypeReference(); + return; + case TokenType._void: + case TokenType._null: + next(); + return; + case TokenType.string: + case TokenType.num: + case TokenType.bigint: + case TokenType.decimal: + case TokenType._true: + case TokenType._false: + parseLiteral(); + return; + case TokenType.minus: + next(); + parseLiteral(); + return; + case TokenType._this: { + tsParseThisTypeNode(); + if (isContextual(ContextualKeyword._is) && !hasPrecedingLineBreak()) { + tsParseThisTypePredicate(); + } + return; + } + case TokenType._typeof: + tsParseTypeQuery(); + return; + case TokenType._import: + tsParseImportType(); + return; + case TokenType.braceL: + if (tsLookaheadIsStartOfMappedType()) { + tsParseMappedType(); + } else { + tsParseTypeLiteral(); + } + return; + case TokenType.bracketL: + tsParseTupleType(); + return; + case TokenType.parenL: + tsParseParenthesizedType(); + return; + case TokenType.backQuote: + tsParseTemplateLiteralType(); + return; + default: + if (state.type & TokenType.IS_KEYWORD) { + next(); + state.tokens[state.tokens.length - 1].type = TokenType.name; + return; + } + break; + } + unexpected(); +} +function tsParseArrayTypeOrHigher() { + tsParseNonArrayType(); + while (!hasPrecedingLineBreak() && eat(TokenType.bracketL)) { + if (!eat(TokenType.bracketR)) { + tsParseType(); + expect(TokenType.bracketR); + } + } +} +function tsParseInferType() { + expectContextual(ContextualKeyword._infer); + parseIdentifier(); + if (match2(TokenType._extends)) { + const snapshot = state.snapshot(); + expect(TokenType._extends); + const oldInDisallowConditionalTypesContext = state.inDisallowConditionalTypesContext; + state.inDisallowConditionalTypesContext = true; + tsParseType(); + state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + if (state.error || !state.inDisallowConditionalTypesContext && match2(TokenType.question)) { + state.restoreFromSnapshot(snapshot); + } + } +} +function tsParseTypeOperatorOrHigher() { + if (isContextual(ContextualKeyword._keyof) || isContextual(ContextualKeyword._unique) || isContextual(ContextualKeyword._readonly)) { + next(); + tsParseTypeOperatorOrHigher(); + } else if (isContextual(ContextualKeyword._infer)) { + tsParseInferType(); + } else { + const oldInDisallowConditionalTypesContext = state.inDisallowConditionalTypesContext; + state.inDisallowConditionalTypesContext = false; + tsParseArrayTypeOrHigher(); + state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } +} +function tsParseIntersectionTypeOrHigher() { + eat(TokenType.bitwiseAND); + tsParseTypeOperatorOrHigher(); + if (match2(TokenType.bitwiseAND)) { + while (eat(TokenType.bitwiseAND)) { + tsParseTypeOperatorOrHigher(); + } + } +} +function tsParseUnionTypeOrHigher() { + eat(TokenType.bitwiseOR); + tsParseIntersectionTypeOrHigher(); + if (match2(TokenType.bitwiseOR)) { + while (eat(TokenType.bitwiseOR)) { + tsParseIntersectionTypeOrHigher(); + } + } +} +function tsIsStartOfFunctionType() { + if (match2(TokenType.lessThan)) { + return true; + } + return match2(TokenType.parenL) && tsLookaheadIsUnambiguouslyStartOfFunctionType(); +} +function tsSkipParameterStart() { + if (match2(TokenType.name) || match2(TokenType._this)) { + next(); + return true; + } + if (match2(TokenType.braceL) || match2(TokenType.bracketL)) { + let depth = 1; + next(); + while (depth > 0 && !state.error) { + if (match2(TokenType.braceL) || match2(TokenType.bracketL)) { + depth++; + } else if (match2(TokenType.braceR) || match2(TokenType.bracketR)) { + depth--; + } + next(); + } + return true; + } + return false; +} +function tsLookaheadIsUnambiguouslyStartOfFunctionType() { + const snapshot = state.snapshot(); + const isUnambiguouslyStartOfFunctionType = tsIsUnambiguouslyStartOfFunctionType(); + state.restoreFromSnapshot(snapshot); + return isUnambiguouslyStartOfFunctionType; +} +function tsIsUnambiguouslyStartOfFunctionType() { + next(); + if (match2(TokenType.parenR) || match2(TokenType.ellipsis)) { + return true; + } + if (tsSkipParameterStart()) { + if (match2(TokenType.colon) || match2(TokenType.comma) || match2(TokenType.question) || match2(TokenType.eq)) { + return true; + } + if (match2(TokenType.parenR)) { + next(); + if (match2(TokenType.arrow)) { + return true; + } + } + } + return false; +} +function tsParseTypeOrTypePredicateAnnotation(returnToken) { + const oldIsType = pushTypeContext(0); + expect(returnToken); + const finishedReturn = tsParseTypePredicateOrAssertsPrefix(); + if (!finishedReturn) { + tsParseType(); + } + popTypeContext(oldIsType); +} +function tsTryParseTypeOrTypePredicateAnnotation() { + if (match2(TokenType.colon)) { + tsParseTypeOrTypePredicateAnnotation(TokenType.colon); + } +} +function tsTryParseTypeAnnotation() { + if (match2(TokenType.colon)) { + tsParseTypeAnnotation(); + } +} +function tsTryParseType() { + if (eat(TokenType.colon)) { + tsParseType(); + } +} +function tsParseTypePredicateOrAssertsPrefix() { + const snapshot = state.snapshot(); + if (isContextual(ContextualKeyword._asserts)) { + next(); + if (eatContextual(ContextualKeyword._is)) { + tsParseType(); + return true; + } else if (tsIsIdentifier() || match2(TokenType._this)) { + next(); + if (eatContextual(ContextualKeyword._is)) { + tsParseType(); + } + return true; + } else { + state.restoreFromSnapshot(snapshot); + return false; + } + } else if (tsIsIdentifier() || match2(TokenType._this)) { + next(); + if (isContextual(ContextualKeyword._is) && !hasPrecedingLineBreak()) { + next(); + tsParseType(); + return true; + } else { + state.restoreFromSnapshot(snapshot); + return false; + } + } + return false; +} +function tsParseTypeAnnotation() { + const oldIsType = pushTypeContext(0); + expect(TokenType.colon); + tsParseType(); + popTypeContext(oldIsType); +} +function tsParseType() { + tsParseNonConditionalType(); + if (state.inDisallowConditionalTypesContext || hasPrecedingLineBreak() || !eat(TokenType._extends)) { + return; + } + const oldInDisallowConditionalTypesContext = state.inDisallowConditionalTypesContext; + state.inDisallowConditionalTypesContext = true; + tsParseNonConditionalType(); + state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + expect(TokenType.question); + tsParseType(); + expect(TokenType.colon); + tsParseType(); +} +function isAbstractConstructorSignature() { + return isContextual(ContextualKeyword._abstract) && lookaheadType() === TokenType._new; +} +function tsParseNonConditionalType() { + if (tsIsStartOfFunctionType()) { + tsParseFunctionOrConstructorType(FunctionType.TSFunctionType); + return; + } + if (match2(TokenType._new)) { + tsParseFunctionOrConstructorType(FunctionType.TSConstructorType); + return; + } else if (isAbstractConstructorSignature()) { + tsParseFunctionOrConstructorType(FunctionType.TSAbstractConstructorType); + return; + } + tsParseUnionTypeOrHigher(); +} +function tsParseTypeAssertion() { + const oldIsType = pushTypeContext(1); + tsParseType(); + expect(TokenType.greaterThan); + popTypeContext(oldIsType); + parseMaybeUnary(); +} +function tsTryParseJSXTypeArgument() { + if (eat(TokenType.jsxTagStart)) { + state.tokens[state.tokens.length - 1].type = TokenType.typeParameterStart; + const oldIsType = pushTypeContext(1); + while (!match2(TokenType.greaterThan) && !state.error) { + tsParseType(); + eat(TokenType.comma); + } + nextJSXTagToken(); + popTypeContext(oldIsType); + } +} +function tsParseHeritageClause() { + while (!match2(TokenType.braceL) && !state.error) { + tsParseExpressionWithTypeArguments(); + eat(TokenType.comma); + } +} +function tsParseExpressionWithTypeArguments() { + tsParseEntityName(); + if (match2(TokenType.lessThan)) { + tsParseTypeArguments(); + } +} +function tsParseInterfaceDeclaration() { + parseBindingIdentifier(false); + tsTryParseTypeParameters(); + if (eat(TokenType._extends)) { + tsParseHeritageClause(); + } + tsParseObjectTypeMembers(); +} +function tsParseTypeAliasDeclaration() { + parseBindingIdentifier(false); + tsTryParseTypeParameters(); + expect(TokenType.eq); + tsParseType(); + semicolon(); +} +function tsParseEnumMember() { + if (match2(TokenType.string)) { + parseLiteral(); + } else { + parseIdentifier(); + } + if (eat(TokenType.eq)) { + const eqIndex = state.tokens.length - 1; + parseMaybeAssign(); + state.tokens[eqIndex].rhsEndIndex = state.tokens.length; + } +} +function tsParseEnumDeclaration() { + parseBindingIdentifier(false); + expect(TokenType.braceL); + while (!eat(TokenType.braceR) && !state.error) { + tsParseEnumMember(); + eat(TokenType.comma); + } +} +function tsParseModuleBlock() { + expect(TokenType.braceL); + parseBlockBody( + /* end */ + TokenType.braceR + ); +} +function tsParseModuleOrNamespaceDeclaration() { + parseBindingIdentifier(false); + if (eat(TokenType.dot)) { + tsParseModuleOrNamespaceDeclaration(); + } else { + tsParseModuleBlock(); + } +} +function tsParseAmbientExternalModuleDeclaration() { + if (isContextual(ContextualKeyword._global)) { + parseIdentifier(); + } else if (match2(TokenType.string)) { + parseExprAtom(); + } else { + unexpected(); + } + if (match2(TokenType.braceL)) { + tsParseModuleBlock(); + } else { + semicolon(); + } +} +function tsParseImportEqualsDeclaration() { + parseImportedIdentifier(); + expect(TokenType.eq); + tsParseModuleReference(); + semicolon(); +} +function tsIsExternalModuleReference() { + return isContextual(ContextualKeyword._require) && lookaheadType() === TokenType.parenL; +} +function tsParseModuleReference() { + if (tsIsExternalModuleReference()) { + tsParseExternalModuleReference(); + } else { + tsParseEntityName(); + } +} +function tsParseExternalModuleReference() { + expectContextual(ContextualKeyword._require); + expect(TokenType.parenL); + if (!match2(TokenType.string)) { + unexpected(); + } + parseLiteral(); + expect(TokenType.parenR); +} +function tsTryParseDeclare() { + if (isLineTerminator()) { + return false; + } + switch (state.type) { + case TokenType._function: { + const oldIsType = pushTypeContext(1); + next(); + const functionStart = state.start; + parseFunction( + functionStart, + /* isStatement */ + true + ); + popTypeContext(oldIsType); + return true; + } + case TokenType._class: { + const oldIsType = pushTypeContext(1); + parseClass( + /* isStatement */ + true, + /* optionalId */ + false + ); + popTypeContext(oldIsType); + return true; + } + case TokenType._const: { + if (match2(TokenType._const) && isLookaheadContextual(ContextualKeyword._enum)) { + const oldIsType = pushTypeContext(1); + expect(TokenType._const); + expectContextual(ContextualKeyword._enum); + state.tokens[state.tokens.length - 1].type = TokenType._enum; + tsParseEnumDeclaration(); + popTypeContext(oldIsType); + return true; + } + } + // falls through + case TokenType._var: + case TokenType._let: { + const oldIsType = pushTypeContext(1); + parseVarStatement(state.type !== TokenType._var); + popTypeContext(oldIsType); + return true; + } + case TokenType.name: { + const oldIsType = pushTypeContext(1); + const contextualKeyword = state.contextualKeyword; + let matched = false; + if (contextualKeyword === ContextualKeyword._global) { + tsParseAmbientExternalModuleDeclaration(); + matched = true; + } else { + matched = tsParseDeclaration( + contextualKeyword, + /* isBeforeToken */ + true + ); + } + popTypeContext(oldIsType); + return matched; + } + default: + return false; + } +} +function tsTryParseExportDeclaration() { + return tsParseDeclaration( + state.contextualKeyword, + /* isBeforeToken */ + true + ); +} +function tsParseExpressionStatement(contextualKeyword) { + switch (contextualKeyword) { + case ContextualKeyword._declare: { + const declareTokenIndex = state.tokens.length - 1; + const matched = tsTryParseDeclare(); + if (matched) { + state.tokens[declareTokenIndex].type = TokenType._declare; + return true; + } + break; + } + case ContextualKeyword._global: + if (match2(TokenType.braceL)) { + tsParseModuleBlock(); + return true; + } + break; + default: + return tsParseDeclaration( + contextualKeyword, + /* isBeforeToken */ + false + ); + } + return false; +} +function tsParseDeclaration(contextualKeyword, isBeforeToken) { + switch (contextualKeyword) { + case ContextualKeyword._abstract: + if (tsCheckLineTerminator(isBeforeToken) && match2(TokenType._class)) { + state.tokens[state.tokens.length - 1].type = TokenType._abstract; + parseClass( + /* isStatement */ + true, + /* optionalId */ + false + ); + return true; + } + break; + case ContextualKeyword._enum: + if (tsCheckLineTerminator(isBeforeToken) && match2(TokenType.name)) { + state.tokens[state.tokens.length - 1].type = TokenType._enum; + tsParseEnumDeclaration(); + return true; + } + break; + case ContextualKeyword._interface: + if (tsCheckLineTerminator(isBeforeToken) && match2(TokenType.name)) { + const oldIsType = pushTypeContext(isBeforeToken ? 2 : 1); + tsParseInterfaceDeclaration(); + popTypeContext(oldIsType); + return true; + } + break; + case ContextualKeyword._module: + if (tsCheckLineTerminator(isBeforeToken)) { + if (match2(TokenType.string)) { + const oldIsType = pushTypeContext(isBeforeToken ? 2 : 1); + tsParseAmbientExternalModuleDeclaration(); + popTypeContext(oldIsType); + return true; + } else if (match2(TokenType.name)) { + const oldIsType = pushTypeContext(isBeforeToken ? 2 : 1); + tsParseModuleOrNamespaceDeclaration(); + popTypeContext(oldIsType); + return true; + } + } + break; + case ContextualKeyword._namespace: + if (tsCheckLineTerminator(isBeforeToken) && match2(TokenType.name)) { + const oldIsType = pushTypeContext(isBeforeToken ? 2 : 1); + tsParseModuleOrNamespaceDeclaration(); + popTypeContext(oldIsType); + return true; + } + break; + case ContextualKeyword._type: + if (tsCheckLineTerminator(isBeforeToken) && match2(TokenType.name)) { + const oldIsType = pushTypeContext(isBeforeToken ? 2 : 1); + tsParseTypeAliasDeclaration(); + popTypeContext(oldIsType); + return true; + } + break; + default: + break; + } + return false; +} +function tsCheckLineTerminator(isBeforeToken) { + if (isBeforeToken) { + next(); + return true; + } else { + return !isLineTerminator(); + } +} +function tsTryParseGenericAsyncArrowFunction() { + const snapshot = state.snapshot(); + tsParseTypeParameters(); + parseFunctionParams(); + tsTryParseTypeOrTypePredicateAnnotation(); + expect(TokenType.arrow); + if (state.error) { + state.restoreFromSnapshot(snapshot); + return false; + } + parseFunctionBody(true); + return true; +} +function tsParseTypeArgumentsWithPossibleBitshift() { + if (state.type === TokenType.bitShiftL) { + state.pos -= 1; + finishToken(TokenType.lessThan); + } + tsParseTypeArguments(); +} +function tsParseTypeArguments() { + const oldIsType = pushTypeContext(0); + expect(TokenType.lessThan); + while (!match2(TokenType.greaterThan) && !state.error) { + tsParseType(); + eat(TokenType.comma); + } + if (!oldIsType) { + popTypeContext(oldIsType); + rescan_gt(); + expect(TokenType.greaterThan); + state.tokens[state.tokens.length - 1].isType = true; + } else { + expect(TokenType.greaterThan); + popTypeContext(oldIsType); + } +} +function tsIsDeclarationStart() { + if (match2(TokenType.name)) { + switch (state.contextualKeyword) { + case ContextualKeyword._abstract: + case ContextualKeyword._declare: + case ContextualKeyword._enum: + case ContextualKeyword._interface: + case ContextualKeyword._module: + case ContextualKeyword._namespace: + case ContextualKeyword._type: + return true; + default: + break; + } + } + return false; +} +function tsParseFunctionBodyAndFinish(functionStart, funcContextId) { + if (match2(TokenType.colon)) { + tsParseTypeOrTypePredicateAnnotation(TokenType.colon); + } + if (!match2(TokenType.braceL) && isLineTerminator()) { + let i4 = state.tokens.length - 1; + while (i4 >= 0 && (state.tokens[i4].start >= functionStart || state.tokens[i4].type === TokenType._default || state.tokens[i4].type === TokenType._export)) { + state.tokens[i4].isType = true; + i4--; + } + return; + } + parseFunctionBody(false, funcContextId); +} +function tsParseSubscript(startTokenIndex, noCalls, stopState) { + if (!hasPrecedingLineBreak() && eat(TokenType.bang)) { + state.tokens[state.tokens.length - 1].type = TokenType.nonNullAssertion; + return; + } + if (match2(TokenType.lessThan) || match2(TokenType.bitShiftL)) { + const snapshot = state.snapshot(); + if (!noCalls && atPossibleAsync()) { + const asyncArrowFn = tsTryParseGenericAsyncArrowFunction(); + if (asyncArrowFn) { + return; + } + } + tsParseTypeArgumentsWithPossibleBitshift(); + if (!noCalls && eat(TokenType.parenL)) { + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + parseCallExpressionArguments(); + } else if (match2(TokenType.backQuote)) { + parseTemplate(); + } else if ( + // The remaining possible case is an instantiation expression, e.g. + // Array . Check for a few cases that would disqualify it and + // cause us to bail out. + // a>c is not (a)>c, but a<(b>>c) + state.type === TokenType.greaterThan || // ac is (ac + state.type !== TokenType.parenL && Boolean(state.type & TokenType.IS_EXPRESSION_START) && !hasPrecedingLineBreak() + ) { + unexpected(); + } + if (state.error) { + state.restoreFromSnapshot(snapshot); + } else { + return; + } + } else if (!noCalls && match2(TokenType.questionDot) && lookaheadType() === TokenType.lessThan) { + next(); + state.tokens[startTokenIndex].isOptionalChainStart = true; + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + tsParseTypeArguments(); + expect(TokenType.parenL); + parseCallExpressionArguments(); + } + baseParseSubscript(startTokenIndex, noCalls, stopState); +} +function tsTryParseExport() { + if (eat(TokenType._import)) { + if (isContextual(ContextualKeyword._type) && lookaheadType() !== TokenType.eq) { + expectContextual(ContextualKeyword._type); + } + tsParseImportEqualsDeclaration(); + return true; + } else if (eat(TokenType.eq)) { + parseExpression(); + semicolon(); + return true; + } else if (eatContextual(ContextualKeyword._as)) { + expectContextual(ContextualKeyword._namespace); + parseIdentifier(); + semicolon(); + return true; + } else { + if (isContextual(ContextualKeyword._type)) { + const nextType = lookaheadType(); + if (nextType === TokenType.braceL || nextType === TokenType.star) { + next(); + } + } + return false; + } +} +function tsParseImportSpecifier() { + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportDeclaration; + return; + } + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportDeclaration; + state.tokens[state.tokens.length - 2].isType = true; + state.tokens[state.tokens.length - 1].isType = true; + return; + } + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 3].identifierRole = IdentifierRole.ImportAccess; + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportDeclaration; + return; + } + parseIdentifier(); + state.tokens[state.tokens.length - 3].identifierRole = IdentifierRole.ImportAccess; + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportDeclaration; + state.tokens[state.tokens.length - 4].isType = true; + state.tokens[state.tokens.length - 3].isType = true; + state.tokens[state.tokens.length - 2].isType = true; + state.tokens[state.tokens.length - 1].isType = true; +} +function tsParseExportSpecifier() { + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ExportAccess; + return; + } + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ExportAccess; + state.tokens[state.tokens.length - 2].isType = true; + state.tokens[state.tokens.length - 1].isType = true; + return; + } + parseIdentifier(); + if (match2(TokenType.comma) || match2(TokenType.braceR)) { + state.tokens[state.tokens.length - 3].identifierRole = IdentifierRole.ExportAccess; + return; + } + parseIdentifier(); + state.tokens[state.tokens.length - 3].identifierRole = IdentifierRole.ExportAccess; + state.tokens[state.tokens.length - 4].isType = true; + state.tokens[state.tokens.length - 3].isType = true; + state.tokens[state.tokens.length - 2].isType = true; + state.tokens[state.tokens.length - 1].isType = true; +} +function tsTryParseExportDefaultExpression() { + if (isContextual(ContextualKeyword._abstract) && lookaheadType() === TokenType._class) { + state.type = TokenType._abstract; + next(); + parseClass(true, true); + return true; + } + if (isContextual(ContextualKeyword._interface)) { + const oldIsType = pushTypeContext(2); + tsParseDeclaration(ContextualKeyword._interface, true); + popTypeContext(oldIsType); + return true; + } + return false; +} +function tsTryParseStatementContent() { + if (state.type === TokenType._const) { + const ahead = lookaheadTypeAndKeyword(); + if (ahead.type === TokenType.name && ahead.contextualKeyword === ContextualKeyword._enum) { + expect(TokenType._const); + expectContextual(ContextualKeyword._enum); + state.tokens[state.tokens.length - 1].type = TokenType._enum; + tsParseEnumDeclaration(); + return true; + } + } + return false; +} +function tsTryParseClassMemberWithIsStatic(isStatic) { + const memberStartIndexAfterStatic = state.tokens.length; + tsParseModifiers([ + ContextualKeyword._abstract, + ContextualKeyword._readonly, + ContextualKeyword._declare, + ContextualKeyword._static, + ContextualKeyword._override + ]); + const modifiersEndIndex = state.tokens.length; + const found = tsTryParseIndexSignature(); + if (found) { + const memberStartIndex = isStatic ? memberStartIndexAfterStatic - 1 : memberStartIndexAfterStatic; + for (let i4 = memberStartIndex; i4 < modifiersEndIndex; i4++) { + state.tokens[i4].isType = true; + } + return true; + } + return false; +} +function tsParseIdentifierStatement(contextualKeyword) { + const matched = tsParseExpressionStatement(contextualKeyword); + if (!matched) { + semicolon(); + } +} +function tsParseExportDeclaration() { + const isDeclare = eatContextual(ContextualKeyword._declare); + if (isDeclare) { + state.tokens[state.tokens.length - 1].type = TokenType._declare; + } + let matchedDeclaration = false; + if (match2(TokenType.name)) { + if (isDeclare) { + const oldIsType = pushTypeContext(2); + matchedDeclaration = tsTryParseExportDeclaration(); + popTypeContext(oldIsType); + } else { + matchedDeclaration = tsTryParseExportDeclaration(); + } + } + if (!matchedDeclaration) { + if (isDeclare) { + const oldIsType = pushTypeContext(2); + parseStatement(true); + popTypeContext(oldIsType); + } else { + parseStatement(true); + } + } +} +function tsAfterParseClassSuper(hasSuper) { + if (hasSuper && (match2(TokenType.lessThan) || match2(TokenType.bitShiftL))) { + tsParseTypeArgumentsWithPossibleBitshift(); + } + if (eatContextual(ContextualKeyword._implements)) { + state.tokens[state.tokens.length - 1].type = TokenType._implements; + const oldIsType = pushTypeContext(1); + tsParseHeritageClause(); + popTypeContext(oldIsType); + } +} +function tsStartParseObjPropValue() { + tsTryParseTypeParameters(); +} +function tsStartParseFunctionParams() { + tsTryParseTypeParameters(); +} +function tsAfterParseVarHead() { + const oldIsType = pushTypeContext(0); + if (!hasPrecedingLineBreak()) { + eat(TokenType.bang); + } + tsTryParseTypeAnnotation(); + popTypeContext(oldIsType); +} +function tsStartParseAsyncArrowFromCallExpression() { + if (match2(TokenType.colon)) { + tsParseTypeAnnotation(); + } +} +function tsParseMaybeAssign(noIn, isWithinParens) { + if (isJSXEnabled) { + return tsParseMaybeAssignWithJSX(noIn, isWithinParens); + } else { + return tsParseMaybeAssignWithoutJSX(noIn, isWithinParens); + } +} +function tsParseMaybeAssignWithJSX(noIn, isWithinParens) { + if (!match2(TokenType.lessThan)) { + return baseParseMaybeAssign(noIn, isWithinParens); + } + const snapshot = state.snapshot(); + let wasArrow = baseParseMaybeAssign(noIn, isWithinParens); + if (state.error) { + state.restoreFromSnapshot(snapshot); + } else { + return wasArrow; + } + state.type = TokenType.typeParameterStart; + tsParseTypeParameters(); + wasArrow = baseParseMaybeAssign(noIn, isWithinParens); + if (!wasArrow) { + unexpected(); + } + return wasArrow; +} +function tsParseMaybeAssignWithoutJSX(noIn, isWithinParens) { + if (!match2(TokenType.lessThan)) { + return baseParseMaybeAssign(noIn, isWithinParens); + } + const snapshot = state.snapshot(); + tsParseTypeParameters(); + const wasArrow = baseParseMaybeAssign(noIn, isWithinParens); + if (!wasArrow) { + unexpected(); + } + if (state.error) { + state.restoreFromSnapshot(snapshot); + } else { + return wasArrow; + } + return baseParseMaybeAssign(noIn, isWithinParens); +} +function tsParseArrow() { + if (match2(TokenType.colon)) { + const snapshot = state.snapshot(); + tsParseTypeOrTypePredicateAnnotation(TokenType.colon); + if (canInsertSemicolon()) unexpected(); + if (!match2(TokenType.arrow)) unexpected(); + if (state.error) { + state.restoreFromSnapshot(snapshot); + } + } + return eat(TokenType.arrow); +} +function tsParseAssignableListItemTypes() { + const oldIsType = pushTypeContext(0); + eat(TokenType.question); + tsTryParseTypeAnnotation(); + popTypeContext(oldIsType); +} +function tsParseMaybeDecoratorArguments() { + if (match2(TokenType.lessThan) || match2(TokenType.bitShiftL)) { + tsParseTypeArgumentsWithPossibleBitshift(); + } + baseParseMaybeDecoratorArguments(); +} + +// node_modules/sucrase/dist/esm/parser/plugins/jsx/index.js +function jsxReadToken() { + let sawNewline = false; + let sawNonWhitespace = false; + while (true) { + if (state.pos >= input.length) { + unexpected("Unterminated JSX contents"); + return; + } + const ch = input.charCodeAt(state.pos); + if (ch === charCodes.lessThan || ch === charCodes.leftCurlyBrace) { + if (state.pos === state.start) { + if (ch === charCodes.lessThan) { + state.pos++; + finishToken(TokenType.jsxTagStart); + return; + } + getTokenFromCode(ch); + return; + } + if (sawNewline && !sawNonWhitespace) { + finishToken(TokenType.jsxEmptyText); + } else { + finishToken(TokenType.jsxText); + } + return; + } + if (ch === charCodes.lineFeed) { + sawNewline = true; + } else if (ch !== charCodes.space && ch !== charCodes.carriageReturn && ch !== charCodes.tab) { + sawNonWhitespace = true; + } + state.pos++; + } +} +function jsxReadString(quote) { + state.pos++; + for (; ; ) { + if (state.pos >= input.length) { + unexpected("Unterminated string constant"); + return; + } + const ch = input.charCodeAt(state.pos); + if (ch === quote) { + state.pos++; + break; + } + state.pos++; + } + finishToken(TokenType.string); +} +function jsxReadWord() { + let ch; + do { + if (state.pos > input.length) { + unexpected("Unexpectedly reached the end of input."); + return; + } + ch = input.charCodeAt(++state.pos); + } while (IS_IDENTIFIER_CHAR[ch] || ch === charCodes.dash); + finishToken(TokenType.jsxName); +} +function jsxParseIdentifier() { + nextJSXTagToken(); +} +function jsxParseNamespacedName(identifierRole) { + jsxParseIdentifier(); + if (!eat(TokenType.colon)) { + state.tokens[state.tokens.length - 1].identifierRole = identifierRole; + return; + } + jsxParseIdentifier(); +} +function jsxParseElementName() { + const firstTokenIndex = state.tokens.length; + jsxParseNamespacedName(IdentifierRole.Access); + let hadDot = false; + while (match2(TokenType.dot)) { + hadDot = true; + nextJSXTagToken(); + jsxParseIdentifier(); + } + if (!hadDot) { + const firstToken = state.tokens[firstTokenIndex]; + const firstChar = input.charCodeAt(firstToken.start); + if (firstChar >= charCodes.lowercaseA && firstChar <= charCodes.lowercaseZ) { + firstToken.identifierRole = null; + } + } +} +function jsxParseAttributeValue() { + switch (state.type) { + case TokenType.braceL: + next(); + parseExpression(); + nextJSXTagToken(); + return; + case TokenType.jsxTagStart: + jsxParseElement(); + nextJSXTagToken(); + return; + case TokenType.string: + nextJSXTagToken(); + return; + default: + unexpected("JSX value should be either an expression or a quoted JSX text"); + } +} +function jsxParseSpreadChild() { + expect(TokenType.ellipsis); + parseExpression(); +} +function jsxParseOpeningElement(initialTokenIndex) { + if (match2(TokenType.jsxTagEnd)) { + return false; + } + jsxParseElementName(); + if (isTypeScriptEnabled) { + tsTryParseJSXTypeArgument(); + } + let hasSeenPropSpread = false; + while (!match2(TokenType.slash) && !match2(TokenType.jsxTagEnd) && !state.error) { + if (eat(TokenType.braceL)) { + hasSeenPropSpread = true; + expect(TokenType.ellipsis); + parseMaybeAssign(); + nextJSXTagToken(); + continue; + } + if (hasSeenPropSpread && state.end - state.start === 3 && input.charCodeAt(state.start) === charCodes.lowercaseK && input.charCodeAt(state.start + 1) === charCodes.lowercaseE && input.charCodeAt(state.start + 2) === charCodes.lowercaseY) { + state.tokens[initialTokenIndex].jsxRole = JSXRole.KeyAfterPropSpread; + } + jsxParseNamespacedName(IdentifierRole.ObjectKey); + if (match2(TokenType.eq)) { + nextJSXTagToken(); + jsxParseAttributeValue(); + } + } + const isSelfClosing = match2(TokenType.slash); + if (isSelfClosing) { + nextJSXTagToken(); + } + return isSelfClosing; +} +function jsxParseClosingElement() { + if (match2(TokenType.jsxTagEnd)) { + return; + } + jsxParseElementName(); +} +function jsxParseElementAt() { + const initialTokenIndex = state.tokens.length - 1; + state.tokens[initialTokenIndex].jsxRole = JSXRole.NoChildren; + let numExplicitChildren = 0; + const isSelfClosing = jsxParseOpeningElement(initialTokenIndex); + if (!isSelfClosing) { + nextJSXExprToken(); + while (true) { + switch (state.type) { + case TokenType.jsxTagStart: + nextJSXTagToken(); + if (match2(TokenType.slash)) { + nextJSXTagToken(); + jsxParseClosingElement(); + if (state.tokens[initialTokenIndex].jsxRole !== JSXRole.KeyAfterPropSpread) { + if (numExplicitChildren === 1) { + state.tokens[initialTokenIndex].jsxRole = JSXRole.OneChild; + } else if (numExplicitChildren > 1) { + state.tokens[initialTokenIndex].jsxRole = JSXRole.StaticChildren; + } + } + return; + } + numExplicitChildren++; + jsxParseElementAt(); + nextJSXExprToken(); + break; + case TokenType.jsxText: + numExplicitChildren++; + nextJSXExprToken(); + break; + case TokenType.jsxEmptyText: + nextJSXExprToken(); + break; + case TokenType.braceL: + next(); + if (match2(TokenType.ellipsis)) { + jsxParseSpreadChild(); + nextJSXExprToken(); + numExplicitChildren += 2; + } else { + if (!match2(TokenType.braceR)) { + numExplicitChildren++; + parseExpression(); + } + nextJSXExprToken(); + } + break; + // istanbul ignore next - should never happen + default: + unexpected(); + return; + } + } + } +} +function jsxParseElement() { + nextJSXTagToken(); + jsxParseElementAt(); +} +function nextJSXTagToken() { + state.tokens.push(new Token()); + skipSpace(); + state.start = state.pos; + const code = input.charCodeAt(state.pos); + if (IS_IDENTIFIER_START[code]) { + jsxReadWord(); + } else if (code === charCodes.quotationMark || code === charCodes.apostrophe) { + jsxReadString(code); + } else { + ++state.pos; + switch (code) { + case charCodes.greaterThan: + finishToken(TokenType.jsxTagEnd); + break; + case charCodes.lessThan: + finishToken(TokenType.jsxTagStart); + break; + case charCodes.slash: + finishToken(TokenType.slash); + break; + case charCodes.equalsTo: + finishToken(TokenType.eq); + break; + case charCodes.leftCurlyBrace: + finishToken(TokenType.braceL); + break; + case charCodes.dot: + finishToken(TokenType.dot); + break; + case charCodes.colon: + finishToken(TokenType.colon); + break; + default: + unexpected(); + } + } +} +function nextJSXExprToken() { + state.tokens.push(new Token()); + state.start = state.pos; + jsxReadToken(); +} + +// node_modules/sucrase/dist/esm/parser/plugins/types.js +function typedParseConditional(noIn) { + if (match2(TokenType.question)) { + const nextType = lookaheadType(); + if (nextType === TokenType.colon || nextType === TokenType.comma || nextType === TokenType.parenR) { + return; + } + } + baseParseConditional(noIn); +} +function typedParseParenItem() { + eatTypeToken(TokenType.question); + if (match2(TokenType.colon)) { + if (isTypeScriptEnabled) { + tsParseTypeAnnotation(); + } else if (isFlowEnabled) { + flowParseTypeAnnotation(); + } + } +} + +// node_modules/sucrase/dist/esm/parser/traverser/expression.js +var StopState = class { + constructor(stop) { + this.stop = stop; + } +}; +function parseExpression(noIn = false) { + parseMaybeAssign(noIn); + if (match2(TokenType.comma)) { + while (eat(TokenType.comma)) { + parseMaybeAssign(noIn); + } + } +} +function parseMaybeAssign(noIn = false, isWithinParens = false) { + if (isTypeScriptEnabled) { + return tsParseMaybeAssign(noIn, isWithinParens); + } else if (isFlowEnabled) { + return flowParseMaybeAssign(noIn, isWithinParens); + } else { + return baseParseMaybeAssign(noIn, isWithinParens); + } +} +function baseParseMaybeAssign(noIn, isWithinParens) { + if (match2(TokenType._yield)) { + parseYield(); + return false; + } + if (match2(TokenType.parenL) || match2(TokenType.name) || match2(TokenType._yield)) { + state.potentialArrowAt = state.start; + } + const wasArrow = parseMaybeConditional(noIn); + if (isWithinParens) { + parseParenItem(); + } + if (state.type & TokenType.IS_ASSIGN) { + next(); + parseMaybeAssign(noIn); + return false; + } + return wasArrow; +} +function parseMaybeConditional(noIn) { + const wasArrow = parseExprOps(noIn); + if (wasArrow) { + return true; + } + parseConditional(noIn); + return false; +} +function parseConditional(noIn) { + if (isTypeScriptEnabled || isFlowEnabled) { + typedParseConditional(noIn); + } else { + baseParseConditional(noIn); + } +} +function baseParseConditional(noIn) { + if (eat(TokenType.question)) { + parseMaybeAssign(); + expect(TokenType.colon); + parseMaybeAssign(noIn); + } +} +function parseExprOps(noIn) { + const startTokenIndex = state.tokens.length; + const wasArrow = parseMaybeUnary(); + if (wasArrow) { + return true; + } + parseExprOp(startTokenIndex, -1, noIn); + return false; +} +function parseExprOp(startTokenIndex, minPrec, noIn) { + if (isTypeScriptEnabled && (TokenType._in & TokenType.PRECEDENCE_MASK) > minPrec && !hasPrecedingLineBreak() && (eatContextual(ContextualKeyword._as) || eatContextual(ContextualKeyword._satisfies))) { + const oldIsType = pushTypeContext(1); + tsParseType(); + popTypeContext(oldIsType); + rescan_gt(); + parseExprOp(startTokenIndex, minPrec, noIn); + return; + } + const prec = state.type & TokenType.PRECEDENCE_MASK; + if (prec > 0 && (!noIn || !match2(TokenType._in))) { + if (prec > minPrec) { + const op = state.type; + next(); + if (op === TokenType.nullishCoalescing) { + state.tokens[state.tokens.length - 1].nullishStartIndex = startTokenIndex; + } + const rhsStartTokenIndex = state.tokens.length; + parseMaybeUnary(); + parseExprOp(rhsStartTokenIndex, op & TokenType.IS_RIGHT_ASSOCIATIVE ? prec - 1 : prec, noIn); + if (op === TokenType.nullishCoalescing) { + state.tokens[startTokenIndex].numNullishCoalesceStarts++; + state.tokens[state.tokens.length - 1].numNullishCoalesceEnds++; + } + parseExprOp(startTokenIndex, minPrec, noIn); + } + } +} +function parseMaybeUnary() { + if (isTypeScriptEnabled && !isJSXEnabled && eat(TokenType.lessThan)) { + tsParseTypeAssertion(); + return false; + } + if (isContextual(ContextualKeyword._module) && lookaheadCharCode() === charCodes.leftCurlyBrace && !hasFollowingLineBreak()) { + parseModuleExpression(); + return false; + } + if (state.type & TokenType.IS_PREFIX) { + next(); + parseMaybeUnary(); + return false; + } + const wasArrow = parseExprSubscripts(); + if (wasArrow) { + return true; + } + while (state.type & TokenType.IS_POSTFIX && !canInsertSemicolon()) { + if (state.type === TokenType.preIncDec) { + state.type = TokenType.postIncDec; + } + next(); + } + return false; +} +function parseExprSubscripts() { + const startTokenIndex = state.tokens.length; + const wasArrow = parseExprAtom(); + if (wasArrow) { + return true; + } + parseSubscripts(startTokenIndex); + if (state.tokens.length > startTokenIndex && state.tokens[startTokenIndex].isOptionalChainStart) { + state.tokens[state.tokens.length - 1].isOptionalChainEnd = true; + } + return false; +} +function parseSubscripts(startTokenIndex, noCalls = false) { + if (isFlowEnabled) { + flowParseSubscripts(startTokenIndex, noCalls); + } else { + baseParseSubscripts(startTokenIndex, noCalls); + } +} +function baseParseSubscripts(startTokenIndex, noCalls = false) { + const stopState = new StopState(false); + do { + parseSubscript(startTokenIndex, noCalls, stopState); + } while (!stopState.stop && !state.error); +} +function parseSubscript(startTokenIndex, noCalls, stopState) { + if (isTypeScriptEnabled) { + tsParseSubscript(startTokenIndex, noCalls, stopState); + } else if (isFlowEnabled) { + flowParseSubscript(startTokenIndex, noCalls, stopState); + } else { + baseParseSubscript(startTokenIndex, noCalls, stopState); + } +} +function baseParseSubscript(startTokenIndex, noCalls, stopState) { + if (!noCalls && eat(TokenType.doubleColon)) { + parseNoCallExpr(); + stopState.stop = true; + parseSubscripts(startTokenIndex, noCalls); + } else if (match2(TokenType.questionDot)) { + state.tokens[startTokenIndex].isOptionalChainStart = true; + if (noCalls && lookaheadType() === TokenType.parenL) { + stopState.stop = true; + return; + } + next(); + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + if (eat(TokenType.bracketL)) { + parseExpression(); + expect(TokenType.bracketR); + } else if (eat(TokenType.parenL)) { + parseCallExpressionArguments(); + } else { + parseMaybePrivateName(); + } + } else if (eat(TokenType.dot)) { + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + parseMaybePrivateName(); + } else if (eat(TokenType.bracketL)) { + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + parseExpression(); + expect(TokenType.bracketR); + } else if (!noCalls && match2(TokenType.parenL)) { + if (atPossibleAsync()) { + const snapshot = state.snapshot(); + const asyncStartTokenIndex = state.tokens.length; + next(); + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + const callContextId = getNextContextId(); + state.tokens[state.tokens.length - 1].contextId = callContextId; + parseCallExpressionArguments(); + state.tokens[state.tokens.length - 1].contextId = callContextId; + if (shouldParseAsyncArrow()) { + state.restoreFromSnapshot(snapshot); + stopState.stop = true; + state.scopeDepth++; + parseFunctionParams(); + parseAsyncArrowFromCallExpression(asyncStartTokenIndex); + } + } else { + next(); + state.tokens[state.tokens.length - 1].subscriptStartIndex = startTokenIndex; + const callContextId = getNextContextId(); + state.tokens[state.tokens.length - 1].contextId = callContextId; + parseCallExpressionArguments(); + state.tokens[state.tokens.length - 1].contextId = callContextId; + } + } else if (match2(TokenType.backQuote)) { + parseTemplate(); + } else { + stopState.stop = true; + } +} +function atPossibleAsync() { + return state.tokens[state.tokens.length - 1].contextualKeyword === ContextualKeyword._async && !canInsertSemicolon(); +} +function parseCallExpressionArguments() { + let first = true; + while (!eat(TokenType.parenR) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + if (eat(TokenType.parenR)) { + break; + } + } + parseExprListItem(false); + } +} +function shouldParseAsyncArrow() { + return match2(TokenType.colon) || match2(TokenType.arrow); +} +function parseAsyncArrowFromCallExpression(startTokenIndex) { + if (isTypeScriptEnabled) { + tsStartParseAsyncArrowFromCallExpression(); + } else if (isFlowEnabled) { + flowStartParseAsyncArrowFromCallExpression(); + } + expect(TokenType.arrow); + parseArrowExpression(startTokenIndex); +} +function parseNoCallExpr() { + const startTokenIndex = state.tokens.length; + parseExprAtom(); + parseSubscripts(startTokenIndex, true); +} +function parseExprAtom() { + if (eat(TokenType.modulo)) { + parseIdentifier(); + return false; + } + if (match2(TokenType.jsxText) || match2(TokenType.jsxEmptyText)) { + parseLiteral(); + return false; + } else if (match2(TokenType.lessThan) && isJSXEnabled) { + state.type = TokenType.jsxTagStart; + jsxParseElement(); + next(); + return false; + } + const canBeArrow = state.potentialArrowAt === state.start; + switch (state.type) { + case TokenType.slash: + case TokenType.assign: + retokenizeSlashAsRegex(); + // Fall through. + case TokenType._super: + case TokenType._this: + case TokenType.regexp: + case TokenType.num: + case TokenType.bigint: + case TokenType.decimal: + case TokenType.string: + case TokenType._null: + case TokenType._true: + case TokenType._false: + next(); + return false; + case TokenType._import: + next(); + if (match2(TokenType.dot)) { + state.tokens[state.tokens.length - 1].type = TokenType.name; + next(); + parseIdentifier(); + } + return false; + case TokenType.name: { + const startTokenIndex = state.tokens.length; + const functionStart = state.start; + const contextualKeyword = state.contextualKeyword; + parseIdentifier(); + if (contextualKeyword === ContextualKeyword._await) { + parseAwait(); + return false; + } else if (contextualKeyword === ContextualKeyword._async && match2(TokenType._function) && !canInsertSemicolon()) { + next(); + parseFunction(functionStart, false); + return false; + } else if (canBeArrow && contextualKeyword === ContextualKeyword._async && !canInsertSemicolon() && match2(TokenType.name)) { + state.scopeDepth++; + parseBindingIdentifier(false); + expect(TokenType.arrow); + parseArrowExpression(startTokenIndex); + return true; + } else if (match2(TokenType._do) && !canInsertSemicolon()) { + next(); + parseBlock(); + return false; + } + if (canBeArrow && !canInsertSemicolon() && match2(TokenType.arrow)) { + state.scopeDepth++; + markPriorBindingIdentifier(false); + expect(TokenType.arrow); + parseArrowExpression(startTokenIndex); + return true; + } + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.Access; + return false; + } + case TokenType._do: { + next(); + parseBlock(); + return false; + } + case TokenType.parenL: { + const wasArrow = parseParenAndDistinguishExpression(canBeArrow); + return wasArrow; + } + case TokenType.bracketL: + next(); + parseExprList(TokenType.bracketR, true); + return false; + case TokenType.braceL: + parseObj(false, false); + return false; + case TokenType._function: + parseFunctionExpression(); + return false; + case TokenType.at: + parseDecorators(); + // Fall through. + case TokenType._class: + parseClass(false); + return false; + case TokenType._new: + parseNew(); + return false; + case TokenType.backQuote: + parseTemplate(); + return false; + case TokenType.doubleColon: { + next(); + parseNoCallExpr(); + return false; + } + case TokenType.hash: { + const code = lookaheadCharCode(); + if (IS_IDENTIFIER_START[code] || code === charCodes.backslash) { + parseMaybePrivateName(); + } else { + next(); + } + return false; + } + default: + unexpected(); + return false; + } +} +function parseMaybePrivateName() { + eat(TokenType.hash); + parseIdentifier(); +} +function parseFunctionExpression() { + const functionStart = state.start; + parseIdentifier(); + if (eat(TokenType.dot)) { + parseIdentifier(); + } + parseFunction(functionStart, false); +} +function parseLiteral() { + next(); +} +function parseParenExpression() { + expect(TokenType.parenL); + parseExpression(); + expect(TokenType.parenR); +} +function parseParenAndDistinguishExpression(canBeArrow) { + const snapshot = state.snapshot(); + const startTokenIndex = state.tokens.length; + expect(TokenType.parenL); + let first = true; + while (!match2(TokenType.parenR) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + if (match2(TokenType.parenR)) { + break; + } + } + if (match2(TokenType.ellipsis)) { + parseRest( + false + /* isBlockScope */ + ); + parseParenItem(); + break; + } else { + parseMaybeAssign(false, true); + } + } + expect(TokenType.parenR); + if (canBeArrow && shouldParseArrow()) { + const wasArrow = parseArrow(); + if (wasArrow) { + state.restoreFromSnapshot(snapshot); + state.scopeDepth++; + parseFunctionParams(); + parseArrow(); + parseArrowExpression(startTokenIndex); + if (state.error) { + state.restoreFromSnapshot(snapshot); + parseParenAndDistinguishExpression(false); + return false; + } + return true; + } + } + return false; +} +function shouldParseArrow() { + return match2(TokenType.colon) || !canInsertSemicolon(); +} +function parseArrow() { + if (isTypeScriptEnabled) { + return tsParseArrow(); + } else if (isFlowEnabled) { + return flowParseArrow(); + } else { + return eat(TokenType.arrow); + } +} +function parseParenItem() { + if (isTypeScriptEnabled || isFlowEnabled) { + typedParseParenItem(); + } +} +function parseNew() { + expect(TokenType._new); + if (eat(TokenType.dot)) { + parseIdentifier(); + return; + } + parseNewCallee(); + if (isFlowEnabled) { + flowStartParseNewArguments(); + } + if (eat(TokenType.parenL)) { + parseExprList(TokenType.parenR); + } +} +function parseNewCallee() { + parseNoCallExpr(); + eat(TokenType.questionDot); +} +function parseTemplate() { + nextTemplateToken(); + nextTemplateToken(); + while (!match2(TokenType.backQuote) && !state.error) { + expect(TokenType.dollarBraceL); + parseExpression(); + nextTemplateToken(); + nextTemplateToken(); + } + next(); +} +function parseObj(isPattern, isBlockScope) { + const contextId = getNextContextId(); + let first = true; + next(); + state.tokens[state.tokens.length - 1].contextId = contextId; + while (!eat(TokenType.braceR) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + if (eat(TokenType.braceR)) { + break; + } + } + let isGenerator = false; + if (match2(TokenType.ellipsis)) { + const previousIndex = state.tokens.length; + parseSpread(); + if (isPattern) { + if (state.tokens.length === previousIndex + 2) { + markPriorBindingIdentifier(isBlockScope); + } + if (eat(TokenType.braceR)) { + break; + } + } + continue; + } + if (!isPattern) { + isGenerator = eat(TokenType.star); + } + if (!isPattern && isContextual(ContextualKeyword._async)) { + if (isGenerator) unexpected(); + parseIdentifier(); + if (match2(TokenType.colon) || match2(TokenType.parenL) || match2(TokenType.braceR) || match2(TokenType.eq) || match2(TokenType.comma)) { + } else { + if (match2(TokenType.star)) { + next(); + isGenerator = true; + } + parsePropertyName(contextId); + } + } else { + parsePropertyName(contextId); + } + parseObjPropValue(isPattern, isBlockScope, contextId); + } + state.tokens[state.tokens.length - 1].contextId = contextId; +} +function isGetterOrSetterMethod(isPattern) { + return !isPattern && (match2(TokenType.string) || // get "string"() {} + match2(TokenType.num) || // get 1() {} + match2(TokenType.bracketL) || // get ["string"]() {} + match2(TokenType.name) || // get foo() {} + !!(state.type & TokenType.IS_KEYWORD)); +} +function parseObjectMethod(isPattern, objectContextId) { + const functionStart = state.start; + if (match2(TokenType.parenL)) { + if (isPattern) unexpected(); + parseMethod( + functionStart, + /* isConstructor */ + false + ); + return true; + } + if (isGetterOrSetterMethod(isPattern)) { + parsePropertyName(objectContextId); + parseMethod( + functionStart, + /* isConstructor */ + false + ); + return true; + } + return false; +} +function parseObjectProperty(isPattern, isBlockScope) { + if (eat(TokenType.colon)) { + if (isPattern) { + parseMaybeDefault(isBlockScope); + } else { + parseMaybeAssign(false); + } + return; + } + let identifierRole; + if (isPattern) { + if (state.scopeDepth === 0) { + identifierRole = IdentifierRole.ObjectShorthandTopLevelDeclaration; + } else if (isBlockScope) { + identifierRole = IdentifierRole.ObjectShorthandBlockScopedDeclaration; + } else { + identifierRole = IdentifierRole.ObjectShorthandFunctionScopedDeclaration; + } + } else { + identifierRole = IdentifierRole.ObjectShorthand; + } + state.tokens[state.tokens.length - 1].identifierRole = identifierRole; + parseMaybeDefault(isBlockScope, true); +} +function parseObjPropValue(isPattern, isBlockScope, objectContextId) { + if (isTypeScriptEnabled) { + tsStartParseObjPropValue(); + } else if (isFlowEnabled) { + flowStartParseObjPropValue(); + } + const wasMethod = parseObjectMethod(isPattern, objectContextId); + if (!wasMethod) { + parseObjectProperty(isPattern, isBlockScope); + } +} +function parsePropertyName(objectContextId) { + if (isFlowEnabled) { + flowParseVariance(); + } + if (eat(TokenType.bracketL)) { + state.tokens[state.tokens.length - 1].contextId = objectContextId; + parseMaybeAssign(); + expect(TokenType.bracketR); + state.tokens[state.tokens.length - 1].contextId = objectContextId; + } else { + if (match2(TokenType.num) || match2(TokenType.string) || match2(TokenType.bigint) || match2(TokenType.decimal)) { + parseExprAtom(); + } else { + parseMaybePrivateName(); + } + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ObjectKey; + state.tokens[state.tokens.length - 1].contextId = objectContextId; + } +} +function parseMethod(functionStart, isConstructor) { + const funcContextId = getNextContextId(); + state.scopeDepth++; + const startTokenIndex = state.tokens.length; + const allowModifiers = isConstructor; + parseFunctionParams(allowModifiers, funcContextId); + parseFunctionBodyAndFinish(functionStart, funcContextId); + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, true)); + state.scopeDepth--; +} +function parseArrowExpression(startTokenIndex) { + parseFunctionBody(true); + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, true)); + state.scopeDepth--; +} +function parseFunctionBodyAndFinish(functionStart, funcContextId = 0) { + if (isTypeScriptEnabled) { + tsParseFunctionBodyAndFinish(functionStart, funcContextId); + } else if (isFlowEnabled) { + flowParseFunctionBodyAndFinish(funcContextId); + } else { + parseFunctionBody(false, funcContextId); + } +} +function parseFunctionBody(allowExpression, funcContextId = 0) { + const isExpression = allowExpression && !match2(TokenType.braceL); + if (isExpression) { + parseMaybeAssign(); + } else { + parseBlock(true, funcContextId); + } +} +function parseExprList(close, allowEmpty = false) { + let first = true; + while (!eat(close) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + if (eat(close)) break; + } + parseExprListItem(allowEmpty); + } +} +function parseExprListItem(allowEmpty) { + if (allowEmpty && match2(TokenType.comma)) { + } else if (match2(TokenType.ellipsis)) { + parseSpread(); + parseParenItem(); + } else if (match2(TokenType.question)) { + next(); + } else { + parseMaybeAssign(false, true); + } +} +function parseIdentifier() { + next(); + state.tokens[state.tokens.length - 1].type = TokenType.name; +} +function parseAwait() { + parseMaybeUnary(); +} +function parseYield() { + next(); + if (!match2(TokenType.semi) && !canInsertSemicolon()) { + eat(TokenType.star); + parseMaybeAssign(); + } +} +function parseModuleExpression() { + expectContextual(ContextualKeyword._module); + expect(TokenType.braceL); + parseBlockBody(TokenType.braceR); +} + +// node_modules/sucrase/dist/esm/parser/plugins/flow.js +function isMaybeDefaultImport(lookahead) { + return (lookahead.type === TokenType.name || !!(lookahead.type & TokenType.IS_KEYWORD)) && lookahead.contextualKeyword !== ContextualKeyword._from; +} +function flowParseTypeInitialiser(tok) { + const oldIsType = pushTypeContext(0); + expect(tok || TokenType.colon); + flowParseType(); + popTypeContext(oldIsType); +} +function flowParsePredicate() { + expect(TokenType.modulo); + expectContextual(ContextualKeyword._checks); + if (eat(TokenType.parenL)) { + parseExpression(); + expect(TokenType.parenR); + } +} +function flowParseTypeAndPredicateInitialiser() { + const oldIsType = pushTypeContext(0); + expect(TokenType.colon); + if (match2(TokenType.modulo)) { + flowParsePredicate(); + } else { + flowParseType(); + if (match2(TokenType.modulo)) { + flowParsePredicate(); + } + } + popTypeContext(oldIsType); +} +function flowParseDeclareClass() { + next(); + flowParseInterfaceish( + /* isClass */ + true + ); +} +function flowParseDeclareFunction() { + next(); + parseIdentifier(); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + expect(TokenType.parenL); + flowParseFunctionTypeParams(); + expect(TokenType.parenR); + flowParseTypeAndPredicateInitialiser(); + semicolon(); +} +function flowParseDeclare() { + if (match2(TokenType._class)) { + flowParseDeclareClass(); + } else if (match2(TokenType._function)) { + flowParseDeclareFunction(); + } else if (match2(TokenType._var)) { + flowParseDeclareVariable(); + } else if (eatContextual(ContextualKeyword._module)) { + if (eat(TokenType.dot)) { + flowParseDeclareModuleExports(); + } else { + flowParseDeclareModule(); + } + } else if (isContextual(ContextualKeyword._type)) { + flowParseDeclareTypeAlias(); + } else if (isContextual(ContextualKeyword._opaque)) { + flowParseDeclareOpaqueType(); + } else if (isContextual(ContextualKeyword._interface)) { + flowParseDeclareInterface(); + } else if (match2(TokenType._export)) { + flowParseDeclareExportDeclaration(); + } else { + unexpected(); + } +} +function flowParseDeclareVariable() { + next(); + flowParseTypeAnnotatableIdentifier(); + semicolon(); +} +function flowParseDeclareModule() { + if (match2(TokenType.string)) { + parseExprAtom(); + } else { + parseIdentifier(); + } + expect(TokenType.braceL); + while (!match2(TokenType.braceR) && !state.error) { + if (match2(TokenType._import)) { + next(); + parseImport(); + } else { + unexpected(); + } + } + expect(TokenType.braceR); +} +function flowParseDeclareExportDeclaration() { + expect(TokenType._export); + if (eat(TokenType._default)) { + if (match2(TokenType._function) || match2(TokenType._class)) { + flowParseDeclare(); + } else { + flowParseType(); + semicolon(); + } + } else if (match2(TokenType._var) || // declare export var ... + match2(TokenType._function) || // declare export function ... + match2(TokenType._class) || // declare export class ... + isContextual(ContextualKeyword._opaque)) { + flowParseDeclare(); + } else if (match2(TokenType.star) || // declare export * from '' + match2(TokenType.braceL) || // declare export {} ... + isContextual(ContextualKeyword._interface) || // declare export interface ... + isContextual(ContextualKeyword._type) || // declare export type ... + isContextual(ContextualKeyword._opaque)) { + parseExport(); + } else { + unexpected(); + } +} +function flowParseDeclareModuleExports() { + expectContextual(ContextualKeyword._exports); + flowParseTypeAnnotation(); + semicolon(); +} +function flowParseDeclareTypeAlias() { + next(); + flowParseTypeAlias(); +} +function flowParseDeclareOpaqueType() { + next(); + flowParseOpaqueType(true); +} +function flowParseDeclareInterface() { + next(); + flowParseInterfaceish(); +} +function flowParseInterfaceish(isClass = false) { + flowParseRestrictedIdentifier(); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + if (eat(TokenType._extends)) { + do { + flowParseInterfaceExtends(); + } while (!isClass && eat(TokenType.comma)); + } + if (isContextual(ContextualKeyword._mixins)) { + next(); + do { + flowParseInterfaceExtends(); + } while (eat(TokenType.comma)); + } + if (isContextual(ContextualKeyword._implements)) { + next(); + do { + flowParseInterfaceExtends(); + } while (eat(TokenType.comma)); + } + flowParseObjectType(isClass, false, isClass); +} +function flowParseInterfaceExtends() { + flowParseQualifiedTypeIdentifier(false); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterInstantiation(); + } +} +function flowParseInterface() { + flowParseInterfaceish(); +} +function flowParseRestrictedIdentifier() { + parseIdentifier(); +} +function flowParseTypeAlias() { + flowParseRestrictedIdentifier(); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + flowParseTypeInitialiser(TokenType.eq); + semicolon(); +} +function flowParseOpaqueType(declare) { + expectContextual(ContextualKeyword._type); + flowParseRestrictedIdentifier(); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + if (match2(TokenType.colon)) { + flowParseTypeInitialiser(TokenType.colon); + } + if (!declare) { + flowParseTypeInitialiser(TokenType.eq); + } + semicolon(); +} +function flowParseTypeParameter() { + flowParseVariance(); + flowParseTypeAnnotatableIdentifier(); + if (eat(TokenType.eq)) { + flowParseType(); + } +} +function flowParseTypeParameterDeclaration() { + const oldIsType = pushTypeContext(0); + if (match2(TokenType.lessThan) || match2(TokenType.typeParameterStart)) { + next(); + } else { + unexpected(); + } + do { + flowParseTypeParameter(); + if (!match2(TokenType.greaterThan)) { + expect(TokenType.comma); + } + } while (!match2(TokenType.greaterThan) && !state.error); + expect(TokenType.greaterThan); + popTypeContext(oldIsType); +} +function flowParseTypeParameterInstantiation() { + const oldIsType = pushTypeContext(0); + expect(TokenType.lessThan); + while (!match2(TokenType.greaterThan) && !state.error) { + flowParseType(); + if (!match2(TokenType.greaterThan)) { + expect(TokenType.comma); + } + } + expect(TokenType.greaterThan); + popTypeContext(oldIsType); +} +function flowParseInterfaceType() { + expectContextual(ContextualKeyword._interface); + if (eat(TokenType._extends)) { + do { + flowParseInterfaceExtends(); + } while (eat(TokenType.comma)); + } + flowParseObjectType(false, false, false); +} +function flowParseObjectPropertyKey() { + if (match2(TokenType.num) || match2(TokenType.string)) { + parseExprAtom(); + } else { + parseIdentifier(); + } +} +function flowParseObjectTypeIndexer() { + if (lookaheadType() === TokenType.colon) { + flowParseObjectPropertyKey(); + flowParseTypeInitialiser(); + } else { + flowParseType(); + } + expect(TokenType.bracketR); + flowParseTypeInitialiser(); +} +function flowParseObjectTypeInternalSlot() { + flowParseObjectPropertyKey(); + expect(TokenType.bracketR); + expect(TokenType.bracketR); + if (match2(TokenType.lessThan) || match2(TokenType.parenL)) { + flowParseObjectTypeMethodish(); + } else { + eat(TokenType.question); + flowParseTypeInitialiser(); + } +} +function flowParseObjectTypeMethodish() { + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + expect(TokenType.parenL); + while (!match2(TokenType.parenR) && !match2(TokenType.ellipsis) && !state.error) { + flowParseFunctionTypeParam(); + if (!match2(TokenType.parenR)) { + expect(TokenType.comma); + } + } + if (eat(TokenType.ellipsis)) { + flowParseFunctionTypeParam(); + } + expect(TokenType.parenR); + flowParseTypeInitialiser(); +} +function flowParseObjectTypeCallProperty() { + flowParseObjectTypeMethodish(); +} +function flowParseObjectType(allowStatic, allowExact, allowProto) { + let endDelim; + if (allowExact && match2(TokenType.braceBarL)) { + expect(TokenType.braceBarL); + endDelim = TokenType.braceBarR; + } else { + expect(TokenType.braceL); + endDelim = TokenType.braceR; + } + while (!match2(endDelim) && !state.error) { + if (allowProto && isContextual(ContextualKeyword._proto)) { + const lookahead = lookaheadType(); + if (lookahead !== TokenType.colon && lookahead !== TokenType.question) { + next(); + allowStatic = false; + } + } + if (allowStatic && isContextual(ContextualKeyword._static)) { + const lookahead = lookaheadType(); + if (lookahead !== TokenType.colon && lookahead !== TokenType.question) { + next(); + } + } + flowParseVariance(); + if (eat(TokenType.bracketL)) { + if (eat(TokenType.bracketL)) { + flowParseObjectTypeInternalSlot(); + } else { + flowParseObjectTypeIndexer(); + } + } else if (match2(TokenType.parenL) || match2(TokenType.lessThan)) { + flowParseObjectTypeCallProperty(); + } else { + if (isContextual(ContextualKeyword._get) || isContextual(ContextualKeyword._set)) { + const lookahead = lookaheadType(); + if (lookahead === TokenType.name || lookahead === TokenType.string || lookahead === TokenType.num) { + next(); + } + } + flowParseObjectTypeProperty(); + } + flowObjectTypeSemicolon(); + } + expect(endDelim); +} +function flowParseObjectTypeProperty() { + if (match2(TokenType.ellipsis)) { + expect(TokenType.ellipsis); + if (!eat(TokenType.comma)) { + eat(TokenType.semi); + } + if (match2(TokenType.braceR)) { + return; + } + flowParseType(); + } else { + flowParseObjectPropertyKey(); + if (match2(TokenType.lessThan) || match2(TokenType.parenL)) { + flowParseObjectTypeMethodish(); + } else { + eat(TokenType.question); + flowParseTypeInitialiser(); + } + } +} +function flowObjectTypeSemicolon() { + if (!eat(TokenType.semi) && !eat(TokenType.comma) && !match2(TokenType.braceR) && !match2(TokenType.braceBarR)) { + unexpected(); + } +} +function flowParseQualifiedTypeIdentifier(initialIdAlreadyParsed) { + if (!initialIdAlreadyParsed) { + parseIdentifier(); + } + while (eat(TokenType.dot)) { + parseIdentifier(); + } +} +function flowParseGenericType() { + flowParseQualifiedTypeIdentifier(true); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterInstantiation(); + } +} +function flowParseTypeofType() { + expect(TokenType._typeof); + flowParsePrimaryType(); +} +function flowParseTupleType() { + expect(TokenType.bracketL); + while (state.pos < input.length && !match2(TokenType.bracketR)) { + flowParseType(); + if (match2(TokenType.bracketR)) { + break; + } + expect(TokenType.comma); + } + expect(TokenType.bracketR); +} +function flowParseFunctionTypeParam() { + const lookahead = lookaheadType(); + if (lookahead === TokenType.colon || lookahead === TokenType.question) { + parseIdentifier(); + eat(TokenType.question); + flowParseTypeInitialiser(); + } else { + flowParseType(); + } +} +function flowParseFunctionTypeParams() { + while (!match2(TokenType.parenR) && !match2(TokenType.ellipsis) && !state.error) { + flowParseFunctionTypeParam(); + if (!match2(TokenType.parenR)) { + expect(TokenType.comma); + } + } + if (eat(TokenType.ellipsis)) { + flowParseFunctionTypeParam(); + } +} +function flowParsePrimaryType() { + let isGroupedType = false; + const oldNoAnonFunctionType = state.noAnonFunctionType; + switch (state.type) { + case TokenType.name: { + if (isContextual(ContextualKeyword._interface)) { + flowParseInterfaceType(); + return; + } + parseIdentifier(); + flowParseGenericType(); + return; + } + case TokenType.braceL: + flowParseObjectType(false, false, false); + return; + case TokenType.braceBarL: + flowParseObjectType(false, true, false); + return; + case TokenType.bracketL: + flowParseTupleType(); + return; + case TokenType.lessThan: + flowParseTypeParameterDeclaration(); + expect(TokenType.parenL); + flowParseFunctionTypeParams(); + expect(TokenType.parenR); + expect(TokenType.arrow); + flowParseType(); + return; + case TokenType.parenL: + next(); + if (!match2(TokenType.parenR) && !match2(TokenType.ellipsis)) { + if (match2(TokenType.name)) { + const token2 = lookaheadType(); + isGroupedType = token2 !== TokenType.question && token2 !== TokenType.colon; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + state.noAnonFunctionType = false; + flowParseType(); + state.noAnonFunctionType = oldNoAnonFunctionType; + if (state.noAnonFunctionType || !(match2(TokenType.comma) || match2(TokenType.parenR) && lookaheadType() === TokenType.arrow)) { + expect(TokenType.parenR); + return; + } else { + eat(TokenType.comma); + } + } + flowParseFunctionTypeParams(); + expect(TokenType.parenR); + expect(TokenType.arrow); + flowParseType(); + return; + case TokenType.minus: + next(); + parseLiteral(); + return; + case TokenType.string: + case TokenType.num: + case TokenType._true: + case TokenType._false: + case TokenType._null: + case TokenType._this: + case TokenType._void: + case TokenType.star: + next(); + return; + default: + if (state.type === TokenType._typeof) { + flowParseTypeofType(); + return; + } else if (state.type & TokenType.IS_KEYWORD) { + next(); + state.tokens[state.tokens.length - 1].type = TokenType.name; + return; + } + } + unexpected(); +} +function flowParsePostfixType() { + flowParsePrimaryType(); + while (!canInsertSemicolon() && (match2(TokenType.bracketL) || match2(TokenType.questionDot))) { + eat(TokenType.questionDot); + expect(TokenType.bracketL); + if (eat(TokenType.bracketR)) { + } else { + flowParseType(); + expect(TokenType.bracketR); + } + } +} +function flowParsePrefixType() { + if (eat(TokenType.question)) { + flowParsePrefixType(); + } else { + flowParsePostfixType(); + } +} +function flowParseAnonFunctionWithoutParens() { + flowParsePrefixType(); + if (!state.noAnonFunctionType && eat(TokenType.arrow)) { + flowParseType(); + } +} +function flowParseIntersectionType() { + eat(TokenType.bitwiseAND); + flowParseAnonFunctionWithoutParens(); + while (eat(TokenType.bitwiseAND)) { + flowParseAnonFunctionWithoutParens(); + } +} +function flowParseUnionType() { + eat(TokenType.bitwiseOR); + flowParseIntersectionType(); + while (eat(TokenType.bitwiseOR)) { + flowParseIntersectionType(); + } +} +function flowParseType() { + flowParseUnionType(); +} +function flowParseTypeAnnotation() { + flowParseTypeInitialiser(); +} +function flowParseTypeAnnotatableIdentifier() { + parseIdentifier(); + if (match2(TokenType.colon)) { + flowParseTypeAnnotation(); + } +} +function flowParseVariance() { + if (match2(TokenType.plus) || match2(TokenType.minus)) { + next(); + state.tokens[state.tokens.length - 1].isType = true; + } +} +function flowParseFunctionBodyAndFinish(funcContextId) { + if (match2(TokenType.colon)) { + flowParseTypeAndPredicateInitialiser(); + } + parseFunctionBody(false, funcContextId); +} +function flowParseSubscript(startTokenIndex, noCalls, stopState) { + if (match2(TokenType.questionDot) && lookaheadType() === TokenType.lessThan) { + if (noCalls) { + stopState.stop = true; + return; + } + next(); + flowParseTypeParameterInstantiation(); + expect(TokenType.parenL); + parseCallExpressionArguments(); + return; + } else if (!noCalls && match2(TokenType.lessThan)) { + const snapshot = state.snapshot(); + flowParseTypeParameterInstantiation(); + expect(TokenType.parenL); + parseCallExpressionArguments(); + if (state.error) { + state.restoreFromSnapshot(snapshot); + } else { + return; + } + } + baseParseSubscript(startTokenIndex, noCalls, stopState); +} +function flowStartParseNewArguments() { + if (match2(TokenType.lessThan)) { + const snapshot = state.snapshot(); + flowParseTypeParameterInstantiation(); + if (state.error) { + state.restoreFromSnapshot(snapshot); + } + } +} +function flowTryParseStatement() { + if (match2(TokenType.name) && state.contextualKeyword === ContextualKeyword._interface) { + const oldIsType = pushTypeContext(0); + next(); + flowParseInterface(); + popTypeContext(oldIsType); + return true; + } else if (isContextual(ContextualKeyword._enum)) { + flowParseEnumDeclaration(); + return true; + } + return false; +} +function flowTryParseExportDefaultExpression() { + if (isContextual(ContextualKeyword._enum)) { + flowParseEnumDeclaration(); + return true; + } + return false; +} +function flowParseIdentifierStatement(contextualKeyword) { + if (contextualKeyword === ContextualKeyword._declare) { + if (match2(TokenType._class) || match2(TokenType.name) || match2(TokenType._function) || match2(TokenType._var) || match2(TokenType._export)) { + const oldIsType = pushTypeContext(1); + flowParseDeclare(); + popTypeContext(oldIsType); + } + } else if (match2(TokenType.name)) { + if (contextualKeyword === ContextualKeyword._interface) { + const oldIsType = pushTypeContext(1); + flowParseInterface(); + popTypeContext(oldIsType); + } else if (contextualKeyword === ContextualKeyword._type) { + const oldIsType = pushTypeContext(1); + flowParseTypeAlias(); + popTypeContext(oldIsType); + } else if (contextualKeyword === ContextualKeyword._opaque) { + const oldIsType = pushTypeContext(1); + flowParseOpaqueType(false); + popTypeContext(oldIsType); + } + } + semicolon(); +} +function flowShouldParseExportDeclaration() { + return isContextual(ContextualKeyword._type) || isContextual(ContextualKeyword._interface) || isContextual(ContextualKeyword._opaque) || isContextual(ContextualKeyword._enum); +} +function flowShouldDisallowExportDefaultSpecifier() { + return match2(TokenType.name) && (state.contextualKeyword === ContextualKeyword._type || state.contextualKeyword === ContextualKeyword._interface || state.contextualKeyword === ContextualKeyword._opaque || state.contextualKeyword === ContextualKeyword._enum); +} +function flowParseExportDeclaration() { + if (isContextual(ContextualKeyword._type)) { + const oldIsType = pushTypeContext(1); + next(); + if (match2(TokenType.braceL)) { + parseExportSpecifiers(); + parseExportFrom(); + } else { + flowParseTypeAlias(); + } + popTypeContext(oldIsType); + } else if (isContextual(ContextualKeyword._opaque)) { + const oldIsType = pushTypeContext(1); + next(); + flowParseOpaqueType(false); + popTypeContext(oldIsType); + } else if (isContextual(ContextualKeyword._interface)) { + const oldIsType = pushTypeContext(1); + next(); + flowParseInterface(); + popTypeContext(oldIsType); + } else { + parseStatement(true); + } +} +function flowShouldParseExportStar() { + return match2(TokenType.star) || isContextual(ContextualKeyword._type) && lookaheadType() === TokenType.star; +} +function flowParseExportStar() { + if (eatContextual(ContextualKeyword._type)) { + const oldIsType = pushTypeContext(2); + baseParseExportStar(); + popTypeContext(oldIsType); + } else { + baseParseExportStar(); + } +} +function flowAfterParseClassSuper(hasSuper) { + if (hasSuper && match2(TokenType.lessThan)) { + flowParseTypeParameterInstantiation(); + } + if (isContextual(ContextualKeyword._implements)) { + const oldIsType = pushTypeContext(0); + next(); + state.tokens[state.tokens.length - 1].type = TokenType._implements; + do { + flowParseRestrictedIdentifier(); + if (match2(TokenType.lessThan)) { + flowParseTypeParameterInstantiation(); + } + } while (eat(TokenType.comma)); + popTypeContext(oldIsType); + } +} +function flowStartParseObjPropValue() { + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + if (!match2(TokenType.parenL)) unexpected(); + } +} +function flowParseAssignableListItemTypes() { + const oldIsType = pushTypeContext(0); + eat(TokenType.question); + if (match2(TokenType.colon)) { + flowParseTypeAnnotation(); + } + popTypeContext(oldIsType); +} +function flowStartParseImportSpecifiers() { + if (match2(TokenType._typeof) || isContextual(ContextualKeyword._type)) { + const lh = lookaheadTypeAndKeyword(); + if (isMaybeDefaultImport(lh) || lh.type === TokenType.braceL || lh.type === TokenType.star) { + next(); + } + } +} +function flowParseImportSpecifier() { + const isTypeKeyword = state.contextualKeyword === ContextualKeyword._type || state.type === TokenType._typeof; + if (isTypeKeyword) { + next(); + } else { + parseIdentifier(); + } + if (isContextual(ContextualKeyword._as) && !isLookaheadContextual(ContextualKeyword._as)) { + parseIdentifier(); + if (isTypeKeyword && !match2(TokenType.name) && !(state.type & TokenType.IS_KEYWORD)) { + } else { + parseIdentifier(); + } + } else { + if (isTypeKeyword && (match2(TokenType.name) || !!(state.type & TokenType.IS_KEYWORD))) { + parseIdentifier(); + } + if (eatContextual(ContextualKeyword._as)) { + parseIdentifier(); + } + } +} +function flowStartParseFunctionParams() { + if (match2(TokenType.lessThan)) { + const oldIsType = pushTypeContext(0); + flowParseTypeParameterDeclaration(); + popTypeContext(oldIsType); + } +} +function flowAfterParseVarHead() { + if (match2(TokenType.colon)) { + flowParseTypeAnnotation(); + } +} +function flowStartParseAsyncArrowFromCallExpression() { + if (match2(TokenType.colon)) { + const oldNoAnonFunctionType = state.noAnonFunctionType; + state.noAnonFunctionType = true; + flowParseTypeAnnotation(); + state.noAnonFunctionType = oldNoAnonFunctionType; + } +} +function flowParseMaybeAssign(noIn, isWithinParens) { + if (match2(TokenType.lessThan)) { + const snapshot = state.snapshot(); + let wasArrow = baseParseMaybeAssign(noIn, isWithinParens); + if (state.error) { + state.restoreFromSnapshot(snapshot); + state.type = TokenType.typeParameterStart; + } else { + return wasArrow; + } + const oldIsType = pushTypeContext(0); + flowParseTypeParameterDeclaration(); + popTypeContext(oldIsType); + wasArrow = baseParseMaybeAssign(noIn, isWithinParens); + if (wasArrow) { + return true; + } + unexpected(); + } + return baseParseMaybeAssign(noIn, isWithinParens); +} +function flowParseArrow() { + if (match2(TokenType.colon)) { + const oldIsType = pushTypeContext(0); + const snapshot = state.snapshot(); + const oldNoAnonFunctionType = state.noAnonFunctionType; + state.noAnonFunctionType = true; + flowParseTypeAndPredicateInitialiser(); + state.noAnonFunctionType = oldNoAnonFunctionType; + if (canInsertSemicolon()) unexpected(); + if (!match2(TokenType.arrow)) unexpected(); + if (state.error) { + state.restoreFromSnapshot(snapshot); + } + popTypeContext(oldIsType); + } + return eat(TokenType.arrow); +} +function flowParseSubscripts(startTokenIndex, noCalls = false) { + if (state.tokens[state.tokens.length - 1].contextualKeyword === ContextualKeyword._async && match2(TokenType.lessThan)) { + const snapshot = state.snapshot(); + const wasArrow = parseAsyncArrowWithTypeParameters(); + if (wasArrow && !state.error) { + return; + } + state.restoreFromSnapshot(snapshot); + } + baseParseSubscripts(startTokenIndex, noCalls); +} +function parseAsyncArrowWithTypeParameters() { + state.scopeDepth++; + const startTokenIndex = state.tokens.length; + parseFunctionParams(); + if (!parseArrow()) { + return false; + } + parseArrowExpression(startTokenIndex); + return true; +} +function flowParseEnumDeclaration() { + expectContextual(ContextualKeyword._enum); + state.tokens[state.tokens.length - 1].type = TokenType._enum; + parseIdentifier(); + flowParseEnumBody(); +} +function flowParseEnumBody() { + if (eatContextual(ContextualKeyword._of)) { + next(); + } + expect(TokenType.braceL); + flowParseEnumMembers(); + expect(TokenType.braceR); +} +function flowParseEnumMembers() { + while (!match2(TokenType.braceR) && !state.error) { + if (eat(TokenType.ellipsis)) { + break; + } + flowParseEnumMember(); + if (!match2(TokenType.braceR)) { + expect(TokenType.comma); + } + } +} +function flowParseEnumMember() { + parseIdentifier(); + if (eat(TokenType.eq)) { + next(); + } +} + +// node_modules/sucrase/dist/esm/parser/traverser/statement.js +function parseTopLevel() { + parseBlockBody(TokenType.eof); + state.scopes.push(new Scope(0, state.tokens.length, true)); + if (state.scopeDepth !== 0) { + throw new Error(`Invalid scope depth at end of file: ${state.scopeDepth}`); + } + return new File(state.tokens, state.scopes); +} +function parseStatement(declaration2) { + if (isFlowEnabled) { + if (flowTryParseStatement()) { + return; + } + } + if (match2(TokenType.at)) { + parseDecorators(); + } + parseStatementContent(declaration2); +} +function parseStatementContent(declaration2) { + if (isTypeScriptEnabled) { + if (tsTryParseStatementContent()) { + return; + } + } + const starttype = state.type; + switch (starttype) { + case TokenType._break: + case TokenType._continue: + parseBreakContinueStatement(); + return; + case TokenType._debugger: + parseDebuggerStatement(); + return; + case TokenType._do: + parseDoStatement(); + return; + case TokenType._for: + parseForStatement(); + return; + case TokenType._function: + if (lookaheadType() === TokenType.dot) break; + if (!declaration2) unexpected(); + parseFunctionStatement(); + return; + case TokenType._class: + if (!declaration2) unexpected(); + parseClass(true); + return; + case TokenType._if: + parseIfStatement(); + return; + case TokenType._return: + parseReturnStatement(); + return; + case TokenType._switch: + parseSwitchStatement(); + return; + case TokenType._throw: + parseThrowStatement(); + return; + case TokenType._try: + parseTryStatement(); + return; + case TokenType._let: + case TokenType._const: + if (!declaration2) unexpected(); + // NOTE: falls through to _var + case TokenType._var: + parseVarStatement(starttype !== TokenType._var); + return; + case TokenType._while: + parseWhileStatement(); + return; + case TokenType.braceL: + parseBlock(); + return; + case TokenType.semi: + parseEmptyStatement(); + return; + case TokenType._export: + case TokenType._import: { + const nextType = lookaheadType(); + if (nextType === TokenType.parenL || nextType === TokenType.dot) { + break; + } + next(); + if (starttype === TokenType._import) { + parseImport(); + } else { + parseExport(); + } + return; + } + case TokenType.name: + if (state.contextualKeyword === ContextualKeyword._async) { + const functionStart = state.start; + const snapshot = state.snapshot(); + next(); + if (match2(TokenType._function) && !canInsertSemicolon()) { + expect(TokenType._function); + parseFunction(functionStart, true); + return; + } else { + state.restoreFromSnapshot(snapshot); + } + } else if (state.contextualKeyword === ContextualKeyword._using && !hasFollowingLineBreak() && // Statements like `using[0]` and `using in foo` aren't actual using + // declarations. + lookaheadType() === TokenType.name) { + parseVarStatement(true); + return; + } else if (startsAwaitUsing()) { + expectContextual(ContextualKeyword._await); + parseVarStatement(true); + return; + } + default: + break; + } + const initialTokensLength = state.tokens.length; + parseExpression(); + let simpleName = null; + if (state.tokens.length === initialTokensLength + 1) { + const token2 = state.tokens[state.tokens.length - 1]; + if (token2.type === TokenType.name) { + simpleName = token2.contextualKeyword; + } + } + if (simpleName == null) { + semicolon(); + return; + } + if (eat(TokenType.colon)) { + parseLabeledStatement(); + } else { + parseIdentifierStatement(simpleName); + } +} +function startsAwaitUsing() { + if (!isContextual(ContextualKeyword._await)) { + return false; + } + const snapshot = state.snapshot(); + next(); + if (!isContextual(ContextualKeyword._using) || hasPrecedingLineBreak()) { + state.restoreFromSnapshot(snapshot); + return false; + } + next(); + if (!match2(TokenType.name) || hasPrecedingLineBreak()) { + state.restoreFromSnapshot(snapshot); + return false; + } + state.restoreFromSnapshot(snapshot); + return true; +} +function parseDecorators() { + while (match2(TokenType.at)) { + parseDecorator(); + } +} +function parseDecorator() { + next(); + if (eat(TokenType.parenL)) { + parseExpression(); + expect(TokenType.parenR); + } else { + parseIdentifier(); + while (eat(TokenType.dot)) { + parseIdentifier(); + } + parseMaybeDecoratorArguments(); + } +} +function parseMaybeDecoratorArguments() { + if (isTypeScriptEnabled) { + tsParseMaybeDecoratorArguments(); + } else { + baseParseMaybeDecoratorArguments(); + } +} +function baseParseMaybeDecoratorArguments() { + if (eat(TokenType.parenL)) { + parseCallExpressionArguments(); + } +} +function parseBreakContinueStatement() { + next(); + if (!isLineTerminator()) { + parseIdentifier(); + semicolon(); + } +} +function parseDebuggerStatement() { + next(); + semicolon(); +} +function parseDoStatement() { + next(); + parseStatement(false); + expect(TokenType._while); + parseParenExpression(); + eat(TokenType.semi); +} +function parseForStatement() { + state.scopeDepth++; + const startTokenIndex = state.tokens.length; + parseAmbiguousForStatement(); + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, false)); + state.scopeDepth--; +} +function isUsingInLoop() { + if (!isContextual(ContextualKeyword._using)) { + return false; + } + if (isLookaheadContextual(ContextualKeyword._of)) { + return false; + } + return true; +} +function parseAmbiguousForStatement() { + next(); + let forAwait = false; + if (isContextual(ContextualKeyword._await)) { + forAwait = true; + next(); + } + expect(TokenType.parenL); + if (match2(TokenType.semi)) { + if (forAwait) { + unexpected(); + } + parseFor(); + return; + } + const isAwaitUsing = startsAwaitUsing(); + if (isAwaitUsing || match2(TokenType._var) || match2(TokenType._let) || match2(TokenType._const) || isUsingInLoop()) { + if (isAwaitUsing) { + expectContextual(ContextualKeyword._await); + } + next(); + parseVar(true, state.type !== TokenType._var); + if (match2(TokenType._in) || isContextual(ContextualKeyword._of)) { + parseForIn(forAwait); + return; + } + parseFor(); + return; + } + parseExpression(true); + if (match2(TokenType._in) || isContextual(ContextualKeyword._of)) { + parseForIn(forAwait); + return; + } + if (forAwait) { + unexpected(); + } + parseFor(); +} +function parseFunctionStatement() { + const functionStart = state.start; + next(); + parseFunction(functionStart, true); +} +function parseIfStatement() { + next(); + parseParenExpression(); + parseStatement(false); + if (eat(TokenType._else)) { + parseStatement(false); + } +} +function parseReturnStatement() { + next(); + if (!isLineTerminator()) { + parseExpression(); + semicolon(); + } +} +function parseSwitchStatement() { + next(); + parseParenExpression(); + state.scopeDepth++; + const startTokenIndex = state.tokens.length; + expect(TokenType.braceL); + while (!match2(TokenType.braceR) && !state.error) { + if (match2(TokenType._case) || match2(TokenType._default)) { + const isCase = match2(TokenType._case); + next(); + if (isCase) { + parseExpression(); + } + expect(TokenType.colon); + } else { + parseStatement(true); + } + } + next(); + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, false)); + state.scopeDepth--; +} +function parseThrowStatement() { + next(); + parseExpression(); + semicolon(); +} +function parseCatchClauseParam() { + parseBindingAtom( + true + /* isBlockScope */ + ); + if (isTypeScriptEnabled) { + tsTryParseTypeAnnotation(); + } +} +function parseTryStatement() { + next(); + parseBlock(); + if (match2(TokenType._catch)) { + next(); + let catchBindingStartTokenIndex = null; + if (match2(TokenType.parenL)) { + state.scopeDepth++; + catchBindingStartTokenIndex = state.tokens.length; + expect(TokenType.parenL); + parseCatchClauseParam(); + expect(TokenType.parenR); + } + parseBlock(); + if (catchBindingStartTokenIndex != null) { + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(catchBindingStartTokenIndex, endTokenIndex, false)); + state.scopeDepth--; + } + } + if (eat(TokenType._finally)) { + parseBlock(); + } +} +function parseVarStatement(isBlockScope) { + next(); + parseVar(false, isBlockScope); + semicolon(); +} +function parseWhileStatement() { + next(); + parseParenExpression(); + parseStatement(false); +} +function parseEmptyStatement() { + next(); +} +function parseLabeledStatement() { + parseStatement(true); +} +function parseIdentifierStatement(contextualKeyword) { + if (isTypeScriptEnabled) { + tsParseIdentifierStatement(contextualKeyword); + } else if (isFlowEnabled) { + flowParseIdentifierStatement(contextualKeyword); + } else { + semicolon(); + } +} +function parseBlock(isFunctionScope = false, contextId = 0) { + const startTokenIndex = state.tokens.length; + state.scopeDepth++; + expect(TokenType.braceL); + if (contextId) { + state.tokens[state.tokens.length - 1].contextId = contextId; + } + parseBlockBody(TokenType.braceR); + if (contextId) { + state.tokens[state.tokens.length - 1].contextId = contextId; + } + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, isFunctionScope)); + state.scopeDepth--; +} +function parseBlockBody(end2) { + while (!eat(end2) && !state.error) { + parseStatement(true); + } +} +function parseFor() { + expect(TokenType.semi); + if (!match2(TokenType.semi)) { + parseExpression(); + } + expect(TokenType.semi); + if (!match2(TokenType.parenR)) { + parseExpression(); + } + expect(TokenType.parenR); + parseStatement(false); +} +function parseForIn(forAwait) { + if (forAwait) { + eatContextual(ContextualKeyword._of); + } else { + next(); + } + parseExpression(); + expect(TokenType.parenR); + parseStatement(false); +} +function parseVar(isFor, isBlockScope) { + while (true) { + parseVarHead(isBlockScope); + if (eat(TokenType.eq)) { + const eqIndex = state.tokens.length - 1; + parseMaybeAssign(isFor); + state.tokens[eqIndex].rhsEndIndex = state.tokens.length; + } + if (!eat(TokenType.comma)) { + break; + } + } +} +function parseVarHead(isBlockScope) { + parseBindingAtom(isBlockScope); + if (isTypeScriptEnabled) { + tsAfterParseVarHead(); + } else if (isFlowEnabled) { + flowAfterParseVarHead(); + } +} +function parseFunction(functionStart, isStatement, optionalId = false) { + if (match2(TokenType.star)) { + next(); + } + if (isStatement && !optionalId && !match2(TokenType.name) && !match2(TokenType._yield)) { + unexpected(); + } + let nameScopeStartTokenIndex = null; + if (match2(TokenType.name)) { + if (!isStatement) { + nameScopeStartTokenIndex = state.tokens.length; + state.scopeDepth++; + } + parseBindingIdentifier(false); + } + const startTokenIndex = state.tokens.length; + state.scopeDepth++; + parseFunctionParams(); + parseFunctionBodyAndFinish(functionStart); + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(startTokenIndex, endTokenIndex, true)); + state.scopeDepth--; + if (nameScopeStartTokenIndex !== null) { + state.scopes.push(new Scope(nameScopeStartTokenIndex, endTokenIndex, true)); + state.scopeDepth--; + } +} +function parseFunctionParams(allowModifiers = false, funcContextId = 0) { + if (isTypeScriptEnabled) { + tsStartParseFunctionParams(); + } else if (isFlowEnabled) { + flowStartParseFunctionParams(); + } + expect(TokenType.parenL); + if (funcContextId) { + state.tokens[state.tokens.length - 1].contextId = funcContextId; + } + parseBindingList( + TokenType.parenR, + false, + false, + allowModifiers, + funcContextId + ); + if (funcContextId) { + state.tokens[state.tokens.length - 1].contextId = funcContextId; + } +} +function parseClass(isStatement, optionalId = false) { + const contextId = getNextContextId(); + next(); + state.tokens[state.tokens.length - 1].contextId = contextId; + state.tokens[state.tokens.length - 1].isExpression = !isStatement; + let nameScopeStartTokenIndex = null; + if (!isStatement) { + nameScopeStartTokenIndex = state.tokens.length; + state.scopeDepth++; + } + parseClassId(isStatement, optionalId); + parseClassSuper(); + const openBraceIndex = state.tokens.length; + parseClassBody(contextId); + if (state.error) { + return; + } + state.tokens[openBraceIndex].contextId = contextId; + state.tokens[state.tokens.length - 1].contextId = contextId; + if (nameScopeStartTokenIndex !== null) { + const endTokenIndex = state.tokens.length; + state.scopes.push(new Scope(nameScopeStartTokenIndex, endTokenIndex, false)); + state.scopeDepth--; + } +} +function isClassProperty() { + return match2(TokenType.eq) || match2(TokenType.semi) || match2(TokenType.braceR) || match2(TokenType.bang) || match2(TokenType.colon); +} +function isClassMethod() { + return match2(TokenType.parenL) || match2(TokenType.lessThan); +} +function parseClassBody(classContextId) { + expect(TokenType.braceL); + while (!eat(TokenType.braceR) && !state.error) { + if (eat(TokenType.semi)) { + continue; + } + if (match2(TokenType.at)) { + parseDecorator(); + continue; + } + const memberStart = state.start; + parseClassMember(memberStart, classContextId); + } +} +function parseClassMember(memberStart, classContextId) { + if (isTypeScriptEnabled) { + tsParseModifiers([ + ContextualKeyword._declare, + ContextualKeyword._public, + ContextualKeyword._protected, + ContextualKeyword._private, + ContextualKeyword._override + ]); + } + let isStatic = false; + if (match2(TokenType.name) && state.contextualKeyword === ContextualKeyword._static) { + parseIdentifier(); + if (isClassMethod()) { + parseClassMethod( + memberStart, + /* isConstructor */ + false + ); + return; + } else if (isClassProperty()) { + parseClassProperty(); + return; + } + state.tokens[state.tokens.length - 1].type = TokenType._static; + isStatic = true; + if (match2(TokenType.braceL)) { + state.tokens[state.tokens.length - 1].contextId = classContextId; + parseBlock(); + return; + } + } + parseClassMemberWithIsStatic(memberStart, isStatic, classContextId); +} +function parseClassMemberWithIsStatic(memberStart, isStatic, classContextId) { + if (isTypeScriptEnabled) { + if (tsTryParseClassMemberWithIsStatic(isStatic)) { + return; + } + } + if (eat(TokenType.star)) { + parseClassPropertyName(classContextId); + parseClassMethod( + memberStart, + /* isConstructor */ + false + ); + return; + } + parseClassPropertyName(classContextId); + let isConstructor = false; + const token2 = state.tokens[state.tokens.length - 1]; + if (token2.contextualKeyword === ContextualKeyword._constructor) { + isConstructor = true; + } + parsePostMemberNameModifiers(); + if (isClassMethod()) { + parseClassMethod(memberStart, isConstructor); + } else if (isClassProperty()) { + parseClassProperty(); + } else if (token2.contextualKeyword === ContextualKeyword._async && !isLineTerminator()) { + state.tokens[state.tokens.length - 1].type = TokenType._async; + const isGenerator = match2(TokenType.star); + if (isGenerator) { + next(); + } + parseClassPropertyName(classContextId); + parsePostMemberNameModifiers(); + parseClassMethod( + memberStart, + false + /* isConstructor */ + ); + } else if ((token2.contextualKeyword === ContextualKeyword._get || token2.contextualKeyword === ContextualKeyword._set) && !(isLineTerminator() && match2(TokenType.star))) { + if (token2.contextualKeyword === ContextualKeyword._get) { + state.tokens[state.tokens.length - 1].type = TokenType._get; + } else { + state.tokens[state.tokens.length - 1].type = TokenType._set; + } + parseClassPropertyName(classContextId); + parseClassMethod( + memberStart, + /* isConstructor */ + false + ); + } else if (token2.contextualKeyword === ContextualKeyword._accessor && !isLineTerminator()) { + parseClassPropertyName(classContextId); + parseClassProperty(); + } else if (isLineTerminator()) { + parseClassProperty(); + } else { + unexpected(); + } +} +function parseClassMethod(functionStart, isConstructor) { + if (isTypeScriptEnabled) { + tsTryParseTypeParameters(); + } else if (isFlowEnabled) { + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + } + parseMethod(functionStart, isConstructor); +} +function parseClassPropertyName(classContextId) { + parsePropertyName(classContextId); +} +function parsePostMemberNameModifiers() { + if (isTypeScriptEnabled) { + const oldIsType = pushTypeContext(0); + eat(TokenType.question); + popTypeContext(oldIsType); + } +} +function parseClassProperty() { + if (isTypeScriptEnabled) { + eatTypeToken(TokenType.bang); + tsTryParseTypeAnnotation(); + } else if (isFlowEnabled) { + if (match2(TokenType.colon)) { + flowParseTypeAnnotation(); + } + } + if (match2(TokenType.eq)) { + const equalsTokenIndex = state.tokens.length; + next(); + parseMaybeAssign(); + state.tokens[equalsTokenIndex].rhsEndIndex = state.tokens.length; + } + semicolon(); +} +function parseClassId(isStatement, optionalId = false) { + if (isTypeScriptEnabled && (!isStatement || optionalId) && isContextual(ContextualKeyword._implements)) { + return; + } + if (match2(TokenType.name)) { + parseBindingIdentifier(true); + } + if (isTypeScriptEnabled) { + tsTryParseTypeParameters(); + } else if (isFlowEnabled) { + if (match2(TokenType.lessThan)) { + flowParseTypeParameterDeclaration(); + } + } +} +function parseClassSuper() { + let hasSuper = false; + if (eat(TokenType._extends)) { + parseExprSubscripts(); + hasSuper = true; + } else { + hasSuper = false; + } + if (isTypeScriptEnabled) { + tsAfterParseClassSuper(hasSuper); + } else if (isFlowEnabled) { + flowAfterParseClassSuper(hasSuper); + } +} +function parseExport() { + const exportIndex = state.tokens.length - 1; + if (isTypeScriptEnabled) { + if (tsTryParseExport()) { + return; + } + } + if (shouldParseExportStar()) { + parseExportStar(); + } else if (isExportDefaultSpecifier()) { + parseIdentifier(); + if (match2(TokenType.comma) && lookaheadType() === TokenType.star) { + expect(TokenType.comma); + expect(TokenType.star); + expectContextual(ContextualKeyword._as); + parseIdentifier(); + } else { + parseExportSpecifiersMaybe(); + } + parseExportFrom(); + } else if (eat(TokenType._default)) { + parseExportDefaultExpression(); + } else if (shouldParseExportDeclaration()) { + parseExportDeclaration(); + } else { + parseExportSpecifiers(); + parseExportFrom(); + } + state.tokens[exportIndex].rhsEndIndex = state.tokens.length; +} +function parseExportDefaultExpression() { + if (isTypeScriptEnabled) { + if (tsTryParseExportDefaultExpression()) { + return; + } + } + if (isFlowEnabled) { + if (flowTryParseExportDefaultExpression()) { + return; + } + } + const functionStart = state.start; + if (eat(TokenType._function)) { + parseFunction(functionStart, true, true); + } else if (isContextual(ContextualKeyword._async) && lookaheadType() === TokenType._function) { + eatContextual(ContextualKeyword._async); + eat(TokenType._function); + parseFunction(functionStart, true, true); + } else if (match2(TokenType._class)) { + parseClass(true, true); + } else if (match2(TokenType.at)) { + parseDecorators(); + parseClass(true, true); + } else { + parseMaybeAssign(); + semicolon(); + } +} +function parseExportDeclaration() { + if (isTypeScriptEnabled) { + tsParseExportDeclaration(); + } else if (isFlowEnabled) { + flowParseExportDeclaration(); + } else { + parseStatement(true); + } +} +function isExportDefaultSpecifier() { + if (isTypeScriptEnabled && tsIsDeclarationStart()) { + return false; + } else if (isFlowEnabled && flowShouldDisallowExportDefaultSpecifier()) { + return false; + } + if (match2(TokenType.name)) { + return state.contextualKeyword !== ContextualKeyword._async; + } + if (!match2(TokenType._default)) { + return false; + } + const _next = nextTokenStart(); + const lookahead = lookaheadTypeAndKeyword(); + const hasFrom = lookahead.type === TokenType.name && lookahead.contextualKeyword === ContextualKeyword._from; + if (lookahead.type === TokenType.comma) { + return true; + } + if (hasFrom) { + const nextAfterFrom = input.charCodeAt(nextTokenStartSince(_next + 4)); + return nextAfterFrom === charCodes.quotationMark || nextAfterFrom === charCodes.apostrophe; + } + return false; +} +function parseExportSpecifiersMaybe() { + if (eat(TokenType.comma)) { + parseExportSpecifiers(); + } +} +function parseExportFrom() { + if (eatContextual(ContextualKeyword._from)) { + parseExprAtom(); + maybeParseImportAttributes(); + } + semicolon(); +} +function shouldParseExportStar() { + if (isFlowEnabled) { + return flowShouldParseExportStar(); + } else { + return match2(TokenType.star); + } +} +function parseExportStar() { + if (isFlowEnabled) { + flowParseExportStar(); + } else { + baseParseExportStar(); + } +} +function baseParseExportStar() { + expect(TokenType.star); + if (isContextual(ContextualKeyword._as)) { + parseExportNamespace(); + } else { + parseExportFrom(); + } +} +function parseExportNamespace() { + next(); + state.tokens[state.tokens.length - 1].type = TokenType._as; + parseIdentifier(); + parseExportSpecifiersMaybe(); + parseExportFrom(); +} +function shouldParseExportDeclaration() { + return isTypeScriptEnabled && tsIsDeclarationStart() || isFlowEnabled && flowShouldParseExportDeclaration() || state.type === TokenType._var || state.type === TokenType._const || state.type === TokenType._let || state.type === TokenType._function || state.type === TokenType._class || isContextual(ContextualKeyword._async) || match2(TokenType.at); +} +function parseExportSpecifiers() { + let first = true; + expect(TokenType.braceL); + while (!eat(TokenType.braceR) && !state.error) { + if (first) { + first = false; + } else { + expect(TokenType.comma); + if (eat(TokenType.braceR)) { + break; + } + } + parseExportSpecifier(); + } +} +function parseExportSpecifier() { + if (isTypeScriptEnabled) { + tsParseExportSpecifier(); + return; + } + parseIdentifier(); + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ExportAccess; + if (eatContextual(ContextualKeyword._as)) { + parseIdentifier(); + } +} +function isImportReflection() { + const snapshot = state.snapshot(); + expectContextual(ContextualKeyword._module); + if (eatContextual(ContextualKeyword._from)) { + if (isContextual(ContextualKeyword._from)) { + state.restoreFromSnapshot(snapshot); + return true; + } else { + state.restoreFromSnapshot(snapshot); + return false; + } + } else if (match2(TokenType.comma)) { + state.restoreFromSnapshot(snapshot); + return false; + } else { + state.restoreFromSnapshot(snapshot); + return true; + } +} +function parseMaybeImportReflection() { + if (isContextual(ContextualKeyword._module) && isImportReflection()) { + next(); + } +} +function parseImport() { + if (isTypeScriptEnabled && match2(TokenType.name) && lookaheadType() === TokenType.eq) { + tsParseImportEqualsDeclaration(); + return; + } + if (isTypeScriptEnabled && isContextual(ContextualKeyword._type)) { + const lookahead = lookaheadTypeAndKeyword(); + if (lookahead.type === TokenType.name && lookahead.contextualKeyword !== ContextualKeyword._from) { + expectContextual(ContextualKeyword._type); + if (lookaheadType() === TokenType.eq) { + tsParseImportEqualsDeclaration(); + return; + } + } else if (lookahead.type === TokenType.star || lookahead.type === TokenType.braceL) { + expectContextual(ContextualKeyword._type); + } + } + if (match2(TokenType.string)) { + parseExprAtom(); + } else { + parseMaybeImportReflection(); + parseImportSpecifiers(); + expectContextual(ContextualKeyword._from); + parseExprAtom(); + } + maybeParseImportAttributes(); + semicolon(); +} +function shouldParseDefaultImport() { + return match2(TokenType.name); +} +function parseImportSpecifierLocal() { + parseImportedIdentifier(); +} +function parseImportSpecifiers() { + if (isFlowEnabled) { + flowStartParseImportSpecifiers(); + } + let first = true; + if (shouldParseDefaultImport()) { + parseImportSpecifierLocal(); + if (!eat(TokenType.comma)) return; + } + if (match2(TokenType.star)) { + next(); + expectContextual(ContextualKeyword._as); + parseImportSpecifierLocal(); + return; + } + expect(TokenType.braceL); + while (!eat(TokenType.braceR) && !state.error) { + if (first) { + first = false; + } else { + if (eat(TokenType.colon)) { + unexpected( + "ES2015 named imports do not destructure. Use another statement for destructuring after the import." + ); + } + expect(TokenType.comma); + if (eat(TokenType.braceR)) { + break; + } + } + parseImportSpecifier(); + } +} +function parseImportSpecifier() { + if (isTypeScriptEnabled) { + tsParseImportSpecifier(); + return; + } + if (isFlowEnabled) { + flowParseImportSpecifier(); + return; + } + parseImportedIdentifier(); + if (isContextual(ContextualKeyword._as)) { + state.tokens[state.tokens.length - 1].identifierRole = IdentifierRole.ImportAccess; + next(); + parseImportedIdentifier(); + } +} +function maybeParseImportAttributes() { + if (match2(TokenType._with) || isContextual(ContextualKeyword._assert) && !hasPrecedingLineBreak()) { + next(); + parseObj(false, false); + } +} + +// node_modules/sucrase/dist/esm/parser/traverser/index.js +function parseFile() { + if (state.pos === 0 && input.charCodeAt(0) === charCodes.numberSign && input.charCodeAt(1) === charCodes.exclamationMark) { + skipLineComment(2); + } + nextToken(); + return parseTopLevel(); +} + +// node_modules/sucrase/dist/esm/parser/index.js +var File = class { + constructor(tokens, scopes) { + this.tokens = tokens; + this.scopes = scopes; + } +}; +function parse2(input2, isJSXEnabled2, isTypeScriptEnabled2, isFlowEnabled2) { + if (isFlowEnabled2 && isTypeScriptEnabled2) { + throw new Error("Cannot combine flow and typescript plugins."); + } + initParser(input2, isJSXEnabled2, isTypeScriptEnabled2, isFlowEnabled2); + const result = parseFile(); + if (state.error) { + throw augmentError(state.error); + } + return result; +} + +// node_modules/sucrase/dist/esm/util/isAsyncOperation.js +function isAsyncOperation(tokens) { + let index2 = tokens.currentIndex(); + let depth = 0; + const startToken = tokens.currentToken(); + do { + const token2 = tokens.tokens[index2]; + if (token2.isOptionalChainStart) { + depth++; + } + if (token2.isOptionalChainEnd) { + depth--; + } + depth += token2.numNullishCoalesceStarts; + depth -= token2.numNullishCoalesceEnds; + if (token2.contextualKeyword === ContextualKeyword._await && token2.identifierRole == null && token2.scopeDepth === startToken.scopeDepth) { + return true; + } + index2 += 1; + } while (depth > 0 && index2 < tokens.tokens.length); + return false; +} + +// node_modules/sucrase/dist/esm/TokenProcessor.js +var TokenProcessor = class _TokenProcessor { + __init() { + this.resultCode = ""; + } + // Array mapping input token index to optional string index position in the + // output code. + __init2() { + this.resultMappings = new Array(this.tokens.length); + } + __init3() { + this.tokenIndex = 0; + } + constructor(code, tokens, isFlowEnabled2, disableESTransforms, helperManager) { + ; + this.code = code; + this.tokens = tokens; + this.isFlowEnabled = isFlowEnabled2; + this.disableESTransforms = disableESTransforms; + this.helperManager = helperManager; + _TokenProcessor.prototype.__init.call(this); + _TokenProcessor.prototype.__init2.call(this); + _TokenProcessor.prototype.__init3.call(this); + } + /** + * Snapshot the token state in a way that can be restored later, useful for + * things like lookahead. + * + * resultMappings do not need to be copied since in all use cases, they will + * be overwritten anyway after restore. + */ + snapshot() { + return { + resultCode: this.resultCode, + tokenIndex: this.tokenIndex + }; + } + restoreToSnapshot(snapshot) { + this.resultCode = snapshot.resultCode; + this.tokenIndex = snapshot.tokenIndex; + } + /** + * Remove and return the code generated since the snapshot, leaving the + * current token position in-place. Unlike most TokenProcessor operations, + * this operation can result in input/output line number mismatches because + * the removed code may contain newlines, so this operation should be used + * sparingly. + */ + dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot) { + const result = this.resultCode.slice(snapshot.resultCode.length); + this.resultCode = snapshot.resultCode; + return result; + } + reset() { + this.resultCode = ""; + this.resultMappings = new Array(this.tokens.length); + this.tokenIndex = 0; + } + matchesContextualAtIndex(index2, contextualKeyword) { + return this.matches1AtIndex(index2, TokenType.name) && this.tokens[index2].contextualKeyword === contextualKeyword; + } + identifierNameAtIndex(index2) { + return this.identifierNameForToken(this.tokens[index2]); + } + identifierNameAtRelativeIndex(relativeIndex) { + return this.identifierNameForToken(this.tokenAtRelativeIndex(relativeIndex)); + } + identifierName() { + return this.identifierNameForToken(this.currentToken()); + } + identifierNameForToken(token2) { + return this.code.slice(token2.start, token2.end); + } + rawCodeForToken(token2) { + return this.code.slice(token2.start, token2.end); + } + stringValueAtIndex(index2) { + return this.stringValueForToken(this.tokens[index2]); + } + stringValue() { + return this.stringValueForToken(this.currentToken()); + } + stringValueForToken(token2) { + return this.code.slice(token2.start + 1, token2.end - 1); + } + matches1AtIndex(index2, t1) { + return this.tokens[index2].type === t1; + } + matches2AtIndex(index2, t1, t22) { + return this.tokens[index2].type === t1 && this.tokens[index2 + 1].type === t22; + } + matches3AtIndex(index2, t1, t22, t32) { + return this.tokens[index2].type === t1 && this.tokens[index2 + 1].type === t22 && this.tokens[index2 + 2].type === t32; + } + matches1(t1) { + return this.tokens[this.tokenIndex].type === t1; + } + matches2(t1, t22) { + return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22; + } + matches3(t1, t22, t32) { + return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32; + } + matches4(t1, t22, t32, t42) { + return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32 && this.tokens[this.tokenIndex + 3].type === t42; + } + matches5(t1, t22, t32, t42, t5) { + return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t22 && this.tokens[this.tokenIndex + 2].type === t32 && this.tokens[this.tokenIndex + 3].type === t42 && this.tokens[this.tokenIndex + 4].type === t5; + } + matchesContextual(contextualKeyword) { + return this.matchesContextualAtIndex(this.tokenIndex, contextualKeyword); + } + matchesContextIdAndLabel(type, contextId) { + return this.matches1(type) && this.currentToken().contextId === contextId; + } + previousWhitespaceAndComments() { + let whitespaceAndComments = this.code.slice( + this.tokenIndex > 0 ? this.tokens[this.tokenIndex - 1].end : 0, + this.tokenIndex < this.tokens.length ? this.tokens[this.tokenIndex].start : this.code.length + ); + if (this.isFlowEnabled) { + whitespaceAndComments = whitespaceAndComments.replace(/@flow/g, ""); + } + return whitespaceAndComments; + } + replaceToken(newCode) { + this.resultCode += this.previousWhitespaceAndComments(); + this.appendTokenPrefix(); + this.resultMappings[this.tokenIndex] = this.resultCode.length; + this.resultCode += newCode; + this.appendTokenSuffix(); + this.tokenIndex++; + } + replaceTokenTrimmingLeftWhitespace(newCode) { + this.resultCode += this.previousWhitespaceAndComments().replace(/[^\r\n]/g, ""); + this.appendTokenPrefix(); + this.resultMappings[this.tokenIndex] = this.resultCode.length; + this.resultCode += newCode; + this.appendTokenSuffix(); + this.tokenIndex++; + } + removeInitialToken() { + this.replaceToken(""); + } + removeToken() { + this.replaceTokenTrimmingLeftWhitespace(""); + } + /** + * Remove all code until the next }, accounting for balanced braces. + */ + removeBalancedCode() { + let braceDepth = 0; + while (!this.isAtEnd()) { + if (this.matches1(TokenType.braceL)) { + braceDepth++; + } else if (this.matches1(TokenType.braceR)) { + if (braceDepth === 0) { + return; + } + braceDepth--; + } + this.removeToken(); + } + } + copyExpectedToken(tokenType) { + if (this.tokens[this.tokenIndex].type !== tokenType) { + throw new Error(`Expected token ${tokenType}`); + } + this.copyToken(); + } + copyToken() { + this.resultCode += this.previousWhitespaceAndComments(); + this.appendTokenPrefix(); + this.resultMappings[this.tokenIndex] = this.resultCode.length; + this.resultCode += this.code.slice( + this.tokens[this.tokenIndex].start, + this.tokens[this.tokenIndex].end + ); + this.appendTokenSuffix(); + this.tokenIndex++; + } + copyTokenWithPrefix(prefix2) { + this.resultCode += this.previousWhitespaceAndComments(); + this.appendTokenPrefix(); + this.resultCode += prefix2; + this.resultMappings[this.tokenIndex] = this.resultCode.length; + this.resultCode += this.code.slice( + this.tokens[this.tokenIndex].start, + this.tokens[this.tokenIndex].end + ); + this.appendTokenSuffix(); + this.tokenIndex++; + } + appendTokenPrefix() { + const token2 = this.currentToken(); + if (token2.numNullishCoalesceStarts || token2.isOptionalChainStart) { + token2.isAsyncOperation = isAsyncOperation(this); + } + if (this.disableESTransforms) { + return; + } + if (token2.numNullishCoalesceStarts) { + for (let i4 = 0; i4 < token2.numNullishCoalesceStarts; i4++) { + if (token2.isAsyncOperation) { + this.resultCode += "await "; + this.resultCode += this.helperManager.getHelperName("asyncNullishCoalesce"); + } else { + this.resultCode += this.helperManager.getHelperName("nullishCoalesce"); + } + this.resultCode += "("; + } + } + if (token2.isOptionalChainStart) { + if (token2.isAsyncOperation) { + this.resultCode += "await "; + } + if (this.tokenIndex > 0 && this.tokenAtRelativeIndex(-1).type === TokenType._delete) { + if (token2.isAsyncOperation) { + this.resultCode += this.helperManager.getHelperName("asyncOptionalChainDelete"); + } else { + this.resultCode += this.helperManager.getHelperName("optionalChainDelete"); + } + } else if (token2.isAsyncOperation) { + this.resultCode += this.helperManager.getHelperName("asyncOptionalChain"); + } else { + this.resultCode += this.helperManager.getHelperName("optionalChain"); + } + this.resultCode += "(["; + } + } + appendTokenSuffix() { + const token2 = this.currentToken(); + if (token2.isOptionalChainEnd && !this.disableESTransforms) { + this.resultCode += "])"; + } + if (token2.numNullishCoalesceEnds && !this.disableESTransforms) { + for (let i4 = 0; i4 < token2.numNullishCoalesceEnds; i4++) { + this.resultCode += "))"; + } + } + } + appendCode(code) { + this.resultCode += code; + } + currentToken() { + return this.tokens[this.tokenIndex]; + } + currentTokenCode() { + const token2 = this.currentToken(); + return this.code.slice(token2.start, token2.end); + } + tokenAtRelativeIndex(relativeIndex) { + return this.tokens[this.tokenIndex + relativeIndex]; + } + currentIndex() { + return this.tokenIndex; + } + /** + * Move to the next token. Only suitable in preprocessing steps. When + * generating new code, you should use copyToken or removeToken. + */ + nextToken() { + if (this.tokenIndex === this.tokens.length) { + throw new Error("Unexpectedly reached end of input."); + } + this.tokenIndex++; + } + previousToken() { + this.tokenIndex--; + } + finish() { + if (this.tokenIndex !== this.tokens.length) { + throw new Error("Tried to finish processing tokens before reaching the end."); + } + this.resultCode += this.previousWhitespaceAndComments(); + return { code: this.resultCode, mappings: this.resultMappings }; + } + isAtEnd() { + return this.tokenIndex === this.tokens.length; + } +}; + +// node_modules/sucrase/dist/esm/util/getClassInfo.js +function getClassInfo(rootTransformer, tokens, nameManager, disableESTransforms) { + const snapshot = tokens.snapshot(); + const headerInfo = processClassHeader(tokens); + let constructorInitializerStatements = []; + const instanceInitializerNames = []; + const staticInitializerNames = []; + let constructorInsertPos = null; + const fields = []; + const rangesToRemove = []; + const classContextId = tokens.currentToken().contextId; + if (classContextId == null) { + throw new Error("Expected non-null class context ID on class open-brace."); + } + tokens.nextToken(); + while (!tokens.matchesContextIdAndLabel(TokenType.braceR, classContextId)) { + if (tokens.matchesContextual(ContextualKeyword._constructor) && !tokens.currentToken().isType) { + ({ constructorInitializerStatements, constructorInsertPos } = processConstructor(tokens)); + } else if (tokens.matches1(TokenType.semi)) { + if (!disableESTransforms) { + rangesToRemove.push({ start: tokens.currentIndex(), end: tokens.currentIndex() + 1 }); + } + tokens.nextToken(); + } else if (tokens.currentToken().isType) { + tokens.nextToken(); + } else { + const statementStartIndex = tokens.currentIndex(); + let isStatic = false; + let isESPrivate = false; + let isDeclareOrAbstract = false; + while (isAccessModifier(tokens.currentToken())) { + if (tokens.matches1(TokenType._static)) { + isStatic = true; + } + if (tokens.matches1(TokenType.hash)) { + isESPrivate = true; + } + if (tokens.matches1(TokenType._declare) || tokens.matches1(TokenType._abstract)) { + isDeclareOrAbstract = true; + } + tokens.nextToken(); + } + if (isStatic && tokens.matches1(TokenType.braceL)) { + skipToNextClassElement(tokens, classContextId); + continue; + } + if (isESPrivate) { + skipToNextClassElement(tokens, classContextId); + continue; + } + if (tokens.matchesContextual(ContextualKeyword._constructor) && !tokens.currentToken().isType) { + ({ constructorInitializerStatements, constructorInsertPos } = processConstructor(tokens)); + continue; + } + const nameStartIndex = tokens.currentIndex(); + skipFieldName(tokens); + if (tokens.matches1(TokenType.lessThan) || tokens.matches1(TokenType.parenL)) { + skipToNextClassElement(tokens, classContextId); + continue; + } + while (tokens.currentToken().isType) { + tokens.nextToken(); + } + if (tokens.matches1(TokenType.eq)) { + const equalsIndex = tokens.currentIndex(); + const valueEnd = tokens.currentToken().rhsEndIndex; + if (valueEnd == null) { + throw new Error("Expected rhsEndIndex on class field assignment."); + } + tokens.nextToken(); + while (tokens.currentIndex() < valueEnd) { + rootTransformer.processToken(); + } + let initializerName; + if (isStatic) { + initializerName = nameManager.claimFreeName("__initStatic"); + staticInitializerNames.push(initializerName); + } else { + initializerName = nameManager.claimFreeName("__init"); + instanceInitializerNames.push(initializerName); + } + fields.push({ + initializerName, + equalsIndex, + start: nameStartIndex, + end: tokens.currentIndex() + }); + } else if (!disableESTransforms || isDeclareOrAbstract) { + rangesToRemove.push({ start: statementStartIndex, end: tokens.currentIndex() }); + } + } + } + tokens.restoreToSnapshot(snapshot); + if (disableESTransforms) { + return { + headerInfo, + constructorInitializerStatements, + instanceInitializerNames: [], + staticInitializerNames: [], + constructorInsertPos, + fields: [], + rangesToRemove + }; + } else { + return { + headerInfo, + constructorInitializerStatements, + instanceInitializerNames, + staticInitializerNames, + constructorInsertPos, + fields, + rangesToRemove + }; + } +} +function skipToNextClassElement(tokens, classContextId) { + tokens.nextToken(); + while (tokens.currentToken().contextId !== classContextId) { + tokens.nextToken(); + } + while (isAccessModifier(tokens.tokenAtRelativeIndex(-1))) { + tokens.previousToken(); + } +} +function processClassHeader(tokens) { + const classToken = tokens.currentToken(); + const contextId = classToken.contextId; + if (contextId == null) { + throw new Error("Expected context ID on class token."); + } + const isExpression = classToken.isExpression; + if (isExpression == null) { + throw new Error("Expected isExpression on class token."); + } + let className = null; + let hasSuperclass = false; + tokens.nextToken(); + if (tokens.matches1(TokenType.name)) { + className = tokens.identifierName(); + } + while (!tokens.matchesContextIdAndLabel(TokenType.braceL, contextId)) { + if (tokens.matches1(TokenType._extends) && !tokens.currentToken().isType) { + hasSuperclass = true; + } + tokens.nextToken(); + } + return { isExpression, className, hasSuperclass }; +} +function processConstructor(tokens) { + const constructorInitializerStatements = []; + tokens.nextToken(); + const constructorContextId = tokens.currentToken().contextId; + if (constructorContextId == null) { + throw new Error("Expected context ID on open-paren starting constructor params."); + } + while (!tokens.matchesContextIdAndLabel(TokenType.parenR, constructorContextId)) { + if (tokens.currentToken().contextId === constructorContextId) { + tokens.nextToken(); + if (isAccessModifier(tokens.currentToken())) { + tokens.nextToken(); + while (isAccessModifier(tokens.currentToken())) { + tokens.nextToken(); + } + const token2 = tokens.currentToken(); + if (token2.type !== TokenType.name) { + throw new Error("Expected identifier after access modifiers in constructor arg."); + } + const name = tokens.identifierNameForToken(token2); + constructorInitializerStatements.push(`this.${name} = ${name}`); + } + } else { + tokens.nextToken(); + } + } + tokens.nextToken(); + while (tokens.currentToken().isType) { + tokens.nextToken(); + } + let constructorInsertPos = tokens.currentIndex(); + let foundSuperCall = false; + while (!tokens.matchesContextIdAndLabel(TokenType.braceR, constructorContextId)) { + if (!foundSuperCall && tokens.matches2(TokenType._super, TokenType.parenL)) { + tokens.nextToken(); + const superCallContextId = tokens.currentToken().contextId; + if (superCallContextId == null) { + throw new Error("Expected a context ID on the super call"); + } + while (!tokens.matchesContextIdAndLabel(TokenType.parenR, superCallContextId)) { + tokens.nextToken(); + } + constructorInsertPos = tokens.currentIndex(); + foundSuperCall = true; + } + tokens.nextToken(); + } + tokens.nextToken(); + return { constructorInitializerStatements, constructorInsertPos }; +} +function isAccessModifier(token2) { + return [ + TokenType._async, + TokenType._get, + TokenType._set, + TokenType.plus, + TokenType.minus, + TokenType._readonly, + TokenType._static, + TokenType._public, + TokenType._private, + TokenType._protected, + TokenType._override, + TokenType._abstract, + TokenType.star, + TokenType._declare, + TokenType.hash + ].includes(token2.type); +} +function skipFieldName(tokens) { + if (tokens.matches1(TokenType.bracketL)) { + const startToken = tokens.currentToken(); + const classContextId = startToken.contextId; + if (classContextId == null) { + throw new Error("Expected class context ID on computed name open bracket."); + } + while (!tokens.matchesContextIdAndLabel(TokenType.bracketR, classContextId)) { + tokens.nextToken(); + } + tokens.nextToken(); + } else { + tokens.nextToken(); + } +} + +// node_modules/sucrase/dist/esm/util/elideImportEquals.js +function elideImportEquals(tokens) { + tokens.removeInitialToken(); + tokens.removeToken(); + tokens.removeToken(); + tokens.removeToken(); + if (tokens.matches1(TokenType.parenL)) { + tokens.removeToken(); + tokens.removeToken(); + tokens.removeToken(); + } else { + while (tokens.matches1(TokenType.dot)) { + tokens.removeToken(); + tokens.removeToken(); + } + } +} + +// node_modules/sucrase/dist/esm/util/getDeclarationInfo.js +var EMPTY_DECLARATION_INFO = { + typeDeclarations: /* @__PURE__ */ new Set(), + valueDeclarations: /* @__PURE__ */ new Set() +}; +function getDeclarationInfo(tokens) { + const typeDeclarations = /* @__PURE__ */ new Set(); + const valueDeclarations = /* @__PURE__ */ new Set(); + for (let i4 = 0; i4 < tokens.tokens.length; i4++) { + const token2 = tokens.tokens[i4]; + if (token2.type === TokenType.name && isTopLevelDeclaration(token2)) { + if (token2.isType) { + typeDeclarations.add(tokens.identifierNameForToken(token2)); + } else { + valueDeclarations.add(tokens.identifierNameForToken(token2)); + } + } + } + return { typeDeclarations, valueDeclarations }; +} + +// node_modules/sucrase/dist/esm/util/isExportFrom.js +function isExportFrom(tokens) { + let closeBraceIndex = tokens.currentIndex(); + while (!tokens.matches1AtIndex(closeBraceIndex, TokenType.braceR)) { + closeBraceIndex++; + } + return tokens.matchesContextualAtIndex(closeBraceIndex + 1, ContextualKeyword._from) && tokens.matches1AtIndex(closeBraceIndex + 2, TokenType.string); +} + +// node_modules/sucrase/dist/esm/util/removeMaybeImportAttributes.js +function removeMaybeImportAttributes(tokens) { + if (tokens.matches2(TokenType._with, TokenType.braceL) || tokens.matches2(TokenType.name, TokenType.braceL) && tokens.matchesContextual(ContextualKeyword._assert)) { + tokens.removeToken(); + tokens.removeToken(); + tokens.removeBalancedCode(); + tokens.removeToken(); + } +} + +// node_modules/sucrase/dist/esm/util/shouldElideDefaultExport.js +function shouldElideDefaultExport(isTypeScriptTransformEnabled, keepUnusedImports, tokens, declarationInfo) { + if (!isTypeScriptTransformEnabled || keepUnusedImports) { + return false; + } + const exportToken = tokens.currentToken(); + if (exportToken.rhsEndIndex == null) { + throw new Error("Expected non-null rhsEndIndex on export token."); + } + const numTokens = exportToken.rhsEndIndex - tokens.currentIndex(); + if (numTokens !== 3 && !(numTokens === 4 && tokens.matches1AtIndex(exportToken.rhsEndIndex - 1, TokenType.semi))) { + return false; + } + const identifierToken = tokens.tokenAtRelativeIndex(2); + if (identifierToken.type !== TokenType.name) { + return false; + } + const exportedName = tokens.identifierNameForToken(identifierToken); + return declarationInfo.typeDeclarations.has(exportedName) && !declarationInfo.valueDeclarations.has(exportedName); +} + +// node_modules/sucrase/dist/esm/transformers/CJSImportTransformer.js +var CJSImportTransformer = class _CJSImportTransformer extends Transformer { + __init() { + this.hadExport = false; + } + __init2() { + this.hadNamedExport = false; + } + __init3() { + this.hadDefaultExport = false; + } + constructor(rootTransformer, tokens, importProcessor, nameManager, helperManager, reactHotLoaderTransformer, enableLegacyBabel5ModuleInterop, enableLegacyTypeScriptModuleInterop, isTypeScriptTransformEnabled, isFlowTransformEnabled, preserveDynamicImport, keepUnusedImports) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.importProcessor = importProcessor; + this.nameManager = nameManager; + this.helperManager = helperManager; + this.reactHotLoaderTransformer = reactHotLoaderTransformer; + this.enableLegacyBabel5ModuleInterop = enableLegacyBabel5ModuleInterop; + this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop; + this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; + this.isFlowTransformEnabled = isFlowTransformEnabled; + this.preserveDynamicImport = preserveDynamicImport; + this.keepUnusedImports = keepUnusedImports; + _CJSImportTransformer.prototype.__init.call(this); + _CJSImportTransformer.prototype.__init2.call(this); + _CJSImportTransformer.prototype.__init3.call(this); + ; + this.declarationInfo = isTypeScriptTransformEnabled ? getDeclarationInfo(tokens) : EMPTY_DECLARATION_INFO; + } + getPrefixCode() { + let prefix2 = ""; + if (this.hadExport) { + prefix2 += 'Object.defineProperty(exports, "__esModule", {value: true});'; + } + return prefix2; + } + getSuffixCode() { + if (this.enableLegacyBabel5ModuleInterop && this.hadDefaultExport && !this.hadNamedExport) { + return "\nmodule.exports = exports.default;\n"; + } + return ""; + } + process() { + if (this.tokens.matches3(TokenType._import, TokenType.name, TokenType.eq)) { + return this.processImportEquals(); + } + if (this.tokens.matches1(TokenType._import)) { + this.processImport(); + return true; + } + if (this.tokens.matches2(TokenType._export, TokenType.eq)) { + this.tokens.replaceToken("module.exports"); + return true; + } + if (this.tokens.matches1(TokenType._export) && !this.tokens.currentToken().isType) { + this.hadExport = true; + return this.processExport(); + } + if (this.tokens.matches2(TokenType.name, TokenType.postIncDec)) { + if (this.processPostIncDec()) { + return true; + } + } + if (this.tokens.matches1(TokenType.name) || this.tokens.matches1(TokenType.jsxName)) { + return this.processIdentifier(); + } + if (this.tokens.matches1(TokenType.eq)) { + return this.processAssignment(); + } + if (this.tokens.matches1(TokenType.assign)) { + return this.processComplexAssignment(); + } + if (this.tokens.matches1(TokenType.preIncDec)) { + return this.processPreIncDec(); + } + return false; + } + processImportEquals() { + const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); + if (this.importProcessor.shouldAutomaticallyElideImportedName(importName)) { + elideImportEquals(this.tokens); + } else { + this.tokens.replaceToken("const"); + } + return true; + } + /** + * Transform this: + * import foo, {bar} from 'baz'; + * into + * var _baz = require('baz'); var _baz2 = _interopRequireDefault(_baz); + * + * The import code was already generated in the import preprocessing step, so + * we just need to look it up. + */ + processImport() { + if (this.tokens.matches2(TokenType._import, TokenType.parenL)) { + if (this.preserveDynamicImport) { + this.tokens.copyToken(); + return; + } + const requireWrapper = this.enableLegacyTypeScriptModuleInterop ? "" : `${this.helperManager.getHelperName("interopRequireWildcard")}(`; + this.tokens.replaceToken(`Promise.resolve().then(() => ${requireWrapper}require`); + const contextId = this.tokens.currentToken().contextId; + if (contextId == null) { + throw new Error("Expected context ID on dynamic import invocation."); + } + this.tokens.copyToken(); + while (!this.tokens.matchesContextIdAndLabel(TokenType.parenR, contextId)) { + this.rootTransformer.processToken(); + } + this.tokens.replaceToken(requireWrapper ? ")))" : "))"); + return; + } + const shouldElideImport = this.removeImportAndDetectIfShouldElide(); + if (shouldElideImport) { + this.tokens.removeToken(); + } else { + const path = this.tokens.stringValue(); + this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); + this.tokens.appendCode(this.importProcessor.claimImportCode(path)); + } + removeMaybeImportAttributes(this.tokens); + if (this.tokens.matches1(TokenType.semi)) { + this.tokens.removeToken(); + } + } + /** + * Erase this import (since any CJS output would be completely different), and + * return true if this import is should be elided due to being a type-only + * import. Such imports will not be emitted at all to avoid side effects. + * + * Import elision only happens with the TypeScript or Flow transforms enabled. + * + * TODO: This function has some awkward overlap with + * CJSImportProcessor.pruneTypeOnlyImports , and the two should be unified. + * That function handles TypeScript implicit import name elision, and removes + * an import if all typical imported names (without `type`) are removed due + * to being type-only imports. This function handles Flow import removal and + * properly distinguishes `import 'foo'` from `import {} from 'foo'` for TS + * purposes. + * + * The position should end at the import string. + */ + removeImportAndDetectIfShouldElide() { + this.tokens.removeInitialToken(); + if (this.tokens.matchesContextual(ContextualKeyword._type) && !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, TokenType.comma) && !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._from)) { + this.removeRemainingImport(); + return true; + } + if (this.tokens.matches1(TokenType.name) || this.tokens.matches1(TokenType.star)) { + this.removeRemainingImport(); + return false; + } + if (this.tokens.matches1(TokenType.string)) { + return false; + } + let foundNonTypeImport = false; + let foundAnyNamedImport = false; + while (!this.tokens.matches1(TokenType.string)) { + if (!foundNonTypeImport && this.tokens.matches1(TokenType.braceL) || this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + if (!this.tokens.matches1(TokenType.braceR)) { + foundAnyNamedImport = true; + } + if (this.tokens.matches2(TokenType.name, TokenType.comma) || this.tokens.matches2(TokenType.name, TokenType.braceR) || this.tokens.matches4(TokenType.name, TokenType.name, TokenType.name, TokenType.comma) || this.tokens.matches4(TokenType.name, TokenType.name, TokenType.name, TokenType.braceR)) { + foundNonTypeImport = true; + } + } + this.tokens.removeToken(); + } + if (this.keepUnusedImports) { + return false; + } + if (this.isTypeScriptTransformEnabled) { + return !foundNonTypeImport; + } else if (this.isFlowTransformEnabled) { + return foundAnyNamedImport && !foundNonTypeImport; + } else { + return false; + } + } + removeRemainingImport() { + while (!this.tokens.matches1(TokenType.string)) { + this.tokens.removeToken(); + } + } + processIdentifier() { + const token2 = this.tokens.currentToken(); + if (token2.shadowsGlobal) { + return false; + } + if (token2.identifierRole === IdentifierRole.ObjectShorthand) { + return this.processObjectShorthand(); + } + if (token2.identifierRole !== IdentifierRole.Access) { + return false; + } + const replacement = this.importProcessor.getIdentifierReplacement( + this.tokens.identifierNameForToken(token2) + ); + if (!replacement) { + return false; + } + let possibleOpenParenIndex = this.tokens.currentIndex() + 1; + while (possibleOpenParenIndex < this.tokens.tokens.length && this.tokens.tokens[possibleOpenParenIndex].type === TokenType.parenR) { + possibleOpenParenIndex++; + } + if (this.tokens.tokens[possibleOpenParenIndex].type === TokenType.parenL) { + if (this.tokens.tokenAtRelativeIndex(1).type === TokenType.parenL && this.tokens.tokenAtRelativeIndex(-1).type !== TokenType._new) { + this.tokens.replaceToken(`${replacement}.call(void 0, `); + this.tokens.removeToken(); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + } else { + this.tokens.replaceToken(`(0, ${replacement})`); + } + } else { + this.tokens.replaceToken(replacement); + } + return true; + } + processObjectShorthand() { + const identifier2 = this.tokens.identifierName(); + const replacement = this.importProcessor.getIdentifierReplacement(identifier2); + if (!replacement) { + return false; + } + this.tokens.replaceToken(`${identifier2}: ${replacement}`); + return true; + } + processExport() { + if (this.tokens.matches2(TokenType._export, TokenType._enum) || this.tokens.matches3(TokenType._export, TokenType._const, TokenType._enum)) { + this.hadNamedExport = true; + return false; + } + if (this.tokens.matches2(TokenType._export, TokenType._default)) { + if (this.tokens.matches3(TokenType._export, TokenType._default, TokenType._enum)) { + this.hadDefaultExport = true; + return false; + } + this.processExportDefault(); + return true; + } else if (this.tokens.matches2(TokenType._export, TokenType.braceL)) { + this.processExportBindings(); + return true; + } else if (this.tokens.matches2(TokenType._export, TokenType.name) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)) { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + if (this.tokens.matches1(TokenType.braceL)) { + while (!this.tokens.matches1(TokenType.braceR)) { + this.tokens.removeToken(); + } + this.tokens.removeToken(); + } else { + this.tokens.removeToken(); + if (this.tokens.matches1(TokenType._as)) { + this.tokens.removeToken(); + this.tokens.removeToken(); + } + } + if (this.tokens.matchesContextual(ContextualKeyword._from) && this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, TokenType.string)) { + this.tokens.removeToken(); + this.tokens.removeToken(); + removeMaybeImportAttributes(this.tokens); + } + return true; + } + this.hadNamedExport = true; + if (this.tokens.matches2(TokenType._export, TokenType._var) || this.tokens.matches2(TokenType._export, TokenType._let) || this.tokens.matches2(TokenType._export, TokenType._const)) { + this.processExportVar(); + return true; + } else if (this.tokens.matches2(TokenType._export, TokenType._function) || // export async function + this.tokens.matches3(TokenType._export, TokenType.name, TokenType._function)) { + this.processExportFunction(); + return true; + } else if (this.tokens.matches2(TokenType._export, TokenType._class) || this.tokens.matches3(TokenType._export, TokenType._abstract, TokenType._class) || this.tokens.matches2(TokenType._export, TokenType.at)) { + this.processExportClass(); + return true; + } else if (this.tokens.matches2(TokenType._export, TokenType.star)) { + this.processExportStar(); + return true; + } else { + throw new Error("Unrecognized export syntax."); + } + } + processAssignment() { + const index2 = this.tokens.currentIndex(); + const identifierToken = this.tokens.tokens[index2 - 1]; + if (identifierToken.isType || identifierToken.type !== TokenType.name) { + return false; + } + if (identifierToken.shadowsGlobal) { + return false; + } + if (index2 >= 2 && this.tokens.matches1AtIndex(index2 - 2, TokenType.dot)) { + return false; + } + if (index2 >= 2 && [TokenType._var, TokenType._let, TokenType._const].includes(this.tokens.tokens[index2 - 2].type)) { + return false; + } + const assignmentSnippet = this.importProcessor.resolveExportBinding( + this.tokens.identifierNameForToken(identifierToken) + ); + if (!assignmentSnippet) { + return false; + } + this.tokens.copyToken(); + this.tokens.appendCode(` ${assignmentSnippet} =`); + return true; + } + /** + * Process something like `a += 3`, where `a` might be an exported value. + */ + processComplexAssignment() { + const index2 = this.tokens.currentIndex(); + const identifierToken = this.tokens.tokens[index2 - 1]; + if (identifierToken.type !== TokenType.name) { + return false; + } + if (identifierToken.shadowsGlobal) { + return false; + } + if (index2 >= 2 && this.tokens.matches1AtIndex(index2 - 2, TokenType.dot)) { + return false; + } + const assignmentSnippet = this.importProcessor.resolveExportBinding( + this.tokens.identifierNameForToken(identifierToken) + ); + if (!assignmentSnippet) { + return false; + } + this.tokens.appendCode(` = ${assignmentSnippet}`); + this.tokens.copyToken(); + return true; + } + /** + * Process something like `++a`, where `a` might be an exported value. + */ + processPreIncDec() { + const index2 = this.tokens.currentIndex(); + const identifierToken = this.tokens.tokens[index2 + 1]; + if (identifierToken.type !== TokenType.name) { + return false; + } + if (identifierToken.shadowsGlobal) { + return false; + } + if (index2 + 2 < this.tokens.tokens.length && (this.tokens.matches1AtIndex(index2 + 2, TokenType.dot) || this.tokens.matches1AtIndex(index2 + 2, TokenType.bracketL) || this.tokens.matches1AtIndex(index2 + 2, TokenType.parenL))) { + return false; + } + const identifierName = this.tokens.identifierNameForToken(identifierToken); + const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName); + if (!assignmentSnippet) { + return false; + } + this.tokens.appendCode(`${assignmentSnippet} = `); + this.tokens.copyToken(); + return true; + } + /** + * Process something like `a++`, where `a` might be an exported value. + * This starts at the `a`, not at the `++`. + */ + processPostIncDec() { + const index2 = this.tokens.currentIndex(); + const identifierToken = this.tokens.tokens[index2]; + const operatorToken = this.tokens.tokens[index2 + 1]; + if (identifierToken.type !== TokenType.name) { + return false; + } + if (identifierToken.shadowsGlobal) { + return false; + } + if (index2 >= 1 && this.tokens.matches1AtIndex(index2 - 1, TokenType.dot)) { + return false; + } + const identifierName = this.tokens.identifierNameForToken(identifierToken); + const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName); + if (!assignmentSnippet) { + return false; + } + const operatorCode = this.tokens.rawCodeForToken(operatorToken); + const base = this.importProcessor.getIdentifierReplacement(identifierName) || identifierName; + if (operatorCode === "++") { + this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} + 1, ${base} - 1)`); + } else if (operatorCode === "--") { + this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} - 1, ${base} + 1)`); + } else { + throw new Error(`Unexpected operator: ${operatorCode}`); + } + this.tokens.removeToken(); + return true; + } + processExportDefault() { + let exportedRuntimeValue = true; + if (this.tokens.matches4(TokenType._export, TokenType._default, TokenType._function, TokenType.name) || // export default async function + this.tokens.matches5(TokenType._export, TokenType._default, TokenType.name, TokenType._function, TokenType.name) && this.tokens.matchesContextualAtIndex( + this.tokens.currentIndex() + 2, + ContextualKeyword._async + )) { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + const name = this.processNamedFunction(); + this.tokens.appendCode(` exports.default = ${name};`); + } else if (this.tokens.matches4(TokenType._export, TokenType._default, TokenType._class, TokenType.name) || this.tokens.matches5(TokenType._export, TokenType._default, TokenType._abstract, TokenType._class, TokenType.name) || this.tokens.matches3(TokenType._export, TokenType._default, TokenType.at)) { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + this.copyDecorators(); + if (this.tokens.matches1(TokenType._abstract)) { + this.tokens.removeToken(); + } + const name = this.rootTransformer.processNamedClass(); + this.tokens.appendCode(` exports.default = ${name};`); + } else if (shouldElideDefaultExport( + this.isTypeScriptTransformEnabled, + this.keepUnusedImports, + this.tokens, + this.declarationInfo + )) { + exportedRuntimeValue = false; + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + this.tokens.removeToken(); + } else if (this.reactHotLoaderTransformer) { + const defaultVarName = this.nameManager.claimFreeName("_default"); + this.tokens.replaceToken(`let ${defaultVarName}; exports.`); + this.tokens.copyToken(); + this.tokens.appendCode(` = ${defaultVarName} =`); + this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName); + } else { + this.tokens.replaceToken("exports."); + this.tokens.copyToken(); + this.tokens.appendCode(" ="); + } + if (exportedRuntimeValue) { + this.hadDefaultExport = true; + } + } + copyDecorators() { + while (this.tokens.matches1(TokenType.at)) { + this.tokens.copyToken(); + if (this.tokens.matches1(TokenType.parenL)) { + this.tokens.copyExpectedToken(TokenType.parenL); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + } else { + this.tokens.copyExpectedToken(TokenType.name); + while (this.tokens.matches1(TokenType.dot)) { + this.tokens.copyExpectedToken(TokenType.dot); + this.tokens.copyExpectedToken(TokenType.name); + } + if (this.tokens.matches1(TokenType.parenL)) { + this.tokens.copyExpectedToken(TokenType.parenL); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + } + } + } + } + /** + * Transform a declaration like `export var`, `export let`, or `export const`. + */ + processExportVar() { + if (this.isSimpleExportVar()) { + this.processSimpleExportVar(); + } else { + this.processComplexExportVar(); + } + } + /** + * Determine if the export is of the form: + * export var/let/const [varName] = [expr]; + * In other words, determine if function name inference might apply. + */ + isSimpleExportVar() { + let tokenIndex = this.tokens.currentIndex(); + tokenIndex++; + tokenIndex++; + if (!this.tokens.matches1AtIndex(tokenIndex, TokenType.name)) { + return false; + } + tokenIndex++; + while (tokenIndex < this.tokens.tokens.length && this.tokens.tokens[tokenIndex].isType) { + tokenIndex++; + } + if (!this.tokens.matches1AtIndex(tokenIndex, TokenType.eq)) { + return false; + } + return true; + } + /** + * Transform an `export var` declaration initializing a single variable. + * + * For example, this: + * export const f = () => {}; + * becomes this: + * const f = () => {}; exports.f = f; + * + * The variable is unused (e.g. exports.f has the true value of the export). + * We need to produce an assignment of this form so that the function will + * have an inferred name of "f", which wouldn't happen in the more general + * case below. + */ + processSimpleExportVar() { + this.tokens.removeInitialToken(); + this.tokens.copyToken(); + const varName = this.tokens.identifierName(); + while (!this.tokens.matches1(TokenType.eq)) { + this.rootTransformer.processToken(); + } + const endIndex = this.tokens.currentToken().rhsEndIndex; + if (endIndex == null) { + throw new Error("Expected = token with an end index."); + } + while (this.tokens.currentIndex() < endIndex) { + this.rootTransformer.processToken(); + } + this.tokens.appendCode(`; exports.${varName} = ${varName}`); + } + /** + * Transform normal declaration exports, including handling destructuring. + * For example, this: + * export const {x: [a = 2, b], c} = d; + * becomes this: + * ({x: [exports.a = 2, exports.b], c: exports.c} = d;) + */ + processComplexExportVar() { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + const needsParens = this.tokens.matches1(TokenType.braceL); + if (needsParens) { + this.tokens.appendCode("("); + } + let depth = 0; + while (true) { + if (this.tokens.matches1(TokenType.braceL) || this.tokens.matches1(TokenType.dollarBraceL) || this.tokens.matches1(TokenType.bracketL)) { + depth++; + this.tokens.copyToken(); + } else if (this.tokens.matches1(TokenType.braceR) || this.tokens.matches1(TokenType.bracketR)) { + depth--; + this.tokens.copyToken(); + } else if (depth === 0 && !this.tokens.matches1(TokenType.name) && !this.tokens.currentToken().isType) { + break; + } else if (this.tokens.matches1(TokenType.eq)) { + const endIndex = this.tokens.currentToken().rhsEndIndex; + if (endIndex == null) { + throw new Error("Expected = token with an end index."); + } + while (this.tokens.currentIndex() < endIndex) { + this.rootTransformer.processToken(); + } + } else { + const token2 = this.tokens.currentToken(); + if (isDeclaration(token2)) { + const name = this.tokens.identifierName(); + let replacement = this.importProcessor.getIdentifierReplacement(name); + if (replacement === null) { + throw new Error(`Expected a replacement for ${name} in \`export var\` syntax.`); + } + if (isObjectShorthandDeclaration(token2)) { + replacement = `${name}: ${replacement}`; + } + this.tokens.replaceToken(replacement); + } else { + this.rootTransformer.processToken(); + } + } + } + if (needsParens) { + const endIndex = this.tokens.currentToken().rhsEndIndex; + if (endIndex == null) { + throw new Error("Expected = token with an end index."); + } + while (this.tokens.currentIndex() < endIndex) { + this.rootTransformer.processToken(); + } + this.tokens.appendCode(")"); + } + } + /** + * Transform this: + * export function foo() {} + * into this: + * function foo() {} exports.foo = foo; + */ + processExportFunction() { + this.tokens.replaceToken(""); + const name = this.processNamedFunction(); + this.tokens.appendCode(` exports.${name} = ${name};`); + } + /** + * Skip past a function with a name and return that name. + */ + processNamedFunction() { + if (this.tokens.matches1(TokenType._function)) { + this.tokens.copyToken(); + } else if (this.tokens.matches2(TokenType.name, TokenType._function)) { + if (!this.tokens.matchesContextual(ContextualKeyword._async)) { + throw new Error("Expected async keyword in function export."); + } + this.tokens.copyToken(); + this.tokens.copyToken(); + } + if (this.tokens.matches1(TokenType.star)) { + this.tokens.copyToken(); + } + if (!this.tokens.matches1(TokenType.name)) { + throw new Error("Expected identifier for exported function name."); + } + const name = this.tokens.identifierName(); + this.tokens.copyToken(); + if (this.tokens.currentToken().isType) { + this.tokens.removeInitialToken(); + while (this.tokens.currentToken().isType) { + this.tokens.removeToken(); + } + } + this.tokens.copyExpectedToken(TokenType.parenL); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + this.rootTransformer.processPossibleTypeRange(); + this.tokens.copyExpectedToken(TokenType.braceL); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.braceR); + return name; + } + /** + * Transform this: + * export class A {} + * into this: + * class A {} exports.A = A; + */ + processExportClass() { + this.tokens.removeInitialToken(); + this.copyDecorators(); + if (this.tokens.matches1(TokenType._abstract)) { + this.tokens.removeToken(); + } + const name = this.rootTransformer.processNamedClass(); + this.tokens.appendCode(` exports.${name} = ${name};`); + } + /** + * Transform this: + * export {a, b as c}; + * into this: + * exports.a = a; exports.c = b; + * + * OR + * + * Transform this: + * export {a, b as c} from './foo'; + * into the pre-generated Object.defineProperty code from the ImportProcessor. + * + * For the first case, if the TypeScript transform is enabled, we need to skip + * exports that are only defined as types. + */ + processExportBindings() { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + const isReExport = isExportFrom(this.tokens); + const exportStatements = []; + while (true) { + if (this.tokens.matches1(TokenType.braceR)) { + this.tokens.removeToken(); + break; + } + const specifierInfo = getImportExportSpecifierInfo(this.tokens); + while (this.tokens.currentIndex() < specifierInfo.endIndex) { + this.tokens.removeToken(); + } + const shouldRemoveExport = specifierInfo.isType || !isReExport && this.shouldElideExportedIdentifier(specifierInfo.leftName); + if (!shouldRemoveExport) { + const exportedName = specifierInfo.rightName; + if (exportedName === "default") { + this.hadDefaultExport = true; + } else { + this.hadNamedExport = true; + } + const localName = specifierInfo.leftName; + const newLocalName = this.importProcessor.getIdentifierReplacement(localName); + exportStatements.push(`exports.${exportedName} = ${newLocalName || localName};`); + } + if (this.tokens.matches1(TokenType.braceR)) { + this.tokens.removeToken(); + break; + } + if (this.tokens.matches2(TokenType.comma, TokenType.braceR)) { + this.tokens.removeToken(); + this.tokens.removeToken(); + break; + } else if (this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + } else { + throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.currentToken())}`); + } + } + if (this.tokens.matchesContextual(ContextualKeyword._from)) { + this.tokens.removeToken(); + const path = this.tokens.stringValue(); + this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); + removeMaybeImportAttributes(this.tokens); + } else { + this.tokens.appendCode(exportStatements.join(" ")); + } + if (this.tokens.matches1(TokenType.semi)) { + this.tokens.removeToken(); + } + } + processExportStar() { + this.tokens.removeInitialToken(); + while (!this.tokens.matches1(TokenType.string)) { + this.tokens.removeToken(); + } + const path = this.tokens.stringValue(); + this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path)); + removeMaybeImportAttributes(this.tokens); + if (this.tokens.matches1(TokenType.semi)) { + this.tokens.removeToken(); + } + } + shouldElideExportedIdentifier(name) { + return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.declarationInfo.valueDeclarations.has(name); + } +}; + +// node_modules/sucrase/dist/esm/transformers/ESMImportTransformer.js +var ESMImportTransformer = class extends Transformer { + constructor(tokens, nameManager, helperManager, reactHotLoaderTransformer, isTypeScriptTransformEnabled, isFlowTransformEnabled, keepUnusedImports, options2) { + super(); + this.tokens = tokens; + this.nameManager = nameManager; + this.helperManager = helperManager; + this.reactHotLoaderTransformer = reactHotLoaderTransformer; + this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled; + this.isFlowTransformEnabled = isFlowTransformEnabled; + this.keepUnusedImports = keepUnusedImports; + ; + this.nonTypeIdentifiers = isTypeScriptTransformEnabled && !keepUnusedImports ? getNonTypeIdentifiers(tokens, options2) : /* @__PURE__ */ new Set(); + this.declarationInfo = isTypeScriptTransformEnabled && !keepUnusedImports ? getDeclarationInfo(tokens) : EMPTY_DECLARATION_INFO; + this.injectCreateRequireForImportRequire = Boolean(options2.injectCreateRequireForImportRequire); + } + process() { + if (this.tokens.matches3(TokenType._import, TokenType.name, TokenType.eq)) { + return this.processImportEquals(); + } + if (this.tokens.matches4(TokenType._import, TokenType.name, TokenType.name, TokenType.eq) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)) { + this.tokens.removeInitialToken(); + for (let i4 = 0; i4 < 7; i4++) { + this.tokens.removeToken(); + } + return true; + } + if (this.tokens.matches2(TokenType._export, TokenType.eq)) { + this.tokens.replaceToken("module.exports"); + return true; + } + if (this.tokens.matches5(TokenType._export, TokenType._import, TokenType.name, TokenType.name, TokenType.eq) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, ContextualKeyword._type)) { + this.tokens.removeInitialToken(); + for (let i4 = 0; i4 < 8; i4++) { + this.tokens.removeToken(); + } + return true; + } + if (this.tokens.matches1(TokenType._import)) { + return this.processImport(); + } + if (this.tokens.matches2(TokenType._export, TokenType._default)) { + return this.processExportDefault(); + } + if (this.tokens.matches2(TokenType._export, TokenType.braceL)) { + return this.processNamedExports(); + } + if (this.tokens.matches2(TokenType._export, TokenType.name) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)) { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + if (this.tokens.matches1(TokenType.braceL)) { + while (!this.tokens.matches1(TokenType.braceR)) { + this.tokens.removeToken(); + } + this.tokens.removeToken(); + } else { + this.tokens.removeToken(); + if (this.tokens.matches1(TokenType._as)) { + this.tokens.removeToken(); + this.tokens.removeToken(); + } + } + if (this.tokens.matchesContextual(ContextualKeyword._from) && this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, TokenType.string)) { + this.tokens.removeToken(); + this.tokens.removeToken(); + removeMaybeImportAttributes(this.tokens); + } + return true; + } + return false; + } + processImportEquals() { + const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); + if (this.shouldAutomaticallyElideImportedName(importName)) { + elideImportEquals(this.tokens); + } else if (this.injectCreateRequireForImportRequire) { + this.tokens.replaceToken("const"); + this.tokens.copyToken(); + this.tokens.copyToken(); + this.tokens.replaceToken(this.helperManager.getHelperName("require")); + } else { + this.tokens.replaceToken("const"); + } + return true; + } + processImport() { + if (this.tokens.matches2(TokenType._import, TokenType.parenL)) { + return false; + } + const snapshot = this.tokens.snapshot(); + const allImportsRemoved = this.removeImportTypeBindings(); + if (allImportsRemoved) { + this.tokens.restoreToSnapshot(snapshot); + while (!this.tokens.matches1(TokenType.string)) { + this.tokens.removeToken(); + } + this.tokens.removeToken(); + removeMaybeImportAttributes(this.tokens); + if (this.tokens.matches1(TokenType.semi)) { + this.tokens.removeToken(); + } + } + return true; + } + /** + * Remove type bindings from this import, leaving the rest of the import intact. + * + * Return true if this import was ONLY types, and thus is eligible for removal. This will bail out + * of the replacement operation, so we can return early here. + */ + removeImportTypeBindings() { + this.tokens.copyExpectedToken(TokenType._import); + if (this.tokens.matchesContextual(ContextualKeyword._type) && !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, TokenType.comma) && !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._from)) { + return true; + } + if (this.tokens.matches1(TokenType.string)) { + this.tokens.copyToken(); + return false; + } + if (this.tokens.matchesContextual(ContextualKeyword._module) && this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, ContextualKeyword._from)) { + this.tokens.copyToken(); + } + let foundNonTypeImport = false; + let foundAnyNamedImport = false; + let needsComma = false; + if (this.tokens.matches1(TokenType.name)) { + if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierName())) { + this.tokens.removeToken(); + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + } + } else { + foundNonTypeImport = true; + this.tokens.copyToken(); + if (this.tokens.matches1(TokenType.comma)) { + needsComma = true; + this.tokens.removeToken(); + } + } + } + if (this.tokens.matches1(TokenType.star)) { + if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierNameAtRelativeIndex(2))) { + this.tokens.removeToken(); + this.tokens.removeToken(); + this.tokens.removeToken(); + } else { + if (needsComma) { + this.tokens.appendCode(","); + } + foundNonTypeImport = true; + this.tokens.copyExpectedToken(TokenType.star); + this.tokens.copyExpectedToken(TokenType.name); + this.tokens.copyExpectedToken(TokenType.name); + } + } else if (this.tokens.matches1(TokenType.braceL)) { + if (needsComma) { + this.tokens.appendCode(","); + } + this.tokens.copyToken(); + while (!this.tokens.matches1(TokenType.braceR)) { + foundAnyNamedImport = true; + const specifierInfo = getImportExportSpecifierInfo(this.tokens); + if (specifierInfo.isType || this.shouldAutomaticallyElideImportedName(specifierInfo.rightName)) { + while (this.tokens.currentIndex() < specifierInfo.endIndex) { + this.tokens.removeToken(); + } + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + } + } else { + foundNonTypeImport = true; + while (this.tokens.currentIndex() < specifierInfo.endIndex) { + this.tokens.copyToken(); + } + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.copyToken(); + } + } + } + this.tokens.copyExpectedToken(TokenType.braceR); + } + if (this.keepUnusedImports) { + return false; + } + if (this.isTypeScriptTransformEnabled) { + return !foundNonTypeImport; + } else if (this.isFlowTransformEnabled) { + return foundAnyNamedImport && !foundNonTypeImport; + } else { + return false; + } + } + shouldAutomaticallyElideImportedName(name) { + return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && !this.nonTypeIdentifiers.has(name); + } + processExportDefault() { + if (shouldElideDefaultExport( + this.isTypeScriptTransformEnabled, + this.keepUnusedImports, + this.tokens, + this.declarationInfo + )) { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + this.tokens.removeToken(); + return true; + } + const alreadyHasName = this.tokens.matches4(TokenType._export, TokenType._default, TokenType._function, TokenType.name) || // export default async function + this.tokens.matches5(TokenType._export, TokenType._default, TokenType.name, TokenType._function, TokenType.name) && this.tokens.matchesContextualAtIndex( + this.tokens.currentIndex() + 2, + ContextualKeyword._async + ) || this.tokens.matches4(TokenType._export, TokenType._default, TokenType._class, TokenType.name) || this.tokens.matches5(TokenType._export, TokenType._default, TokenType._abstract, TokenType._class, TokenType.name); + if (!alreadyHasName && this.reactHotLoaderTransformer) { + const defaultVarName = this.nameManager.claimFreeName("_default"); + this.tokens.replaceToken(`let ${defaultVarName}; export`); + this.tokens.copyToken(); + this.tokens.appendCode(` ${defaultVarName} =`); + this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName); + return true; + } + return false; + } + /** + * Handle a statement with one of these forms: + * export {a, type b}; + * export {c, type d} from 'foo'; + * + * In both cases, any explicit type exports should be removed. In the first + * case, we also need to handle implicit export elision for names declared as + * types. In the second case, we must NOT do implicit named export elision, + * but we must remove the runtime import if all exports are type exports. + */ + processNamedExports() { + if (!this.isTypeScriptTransformEnabled) { + return false; + } + this.tokens.copyExpectedToken(TokenType._export); + this.tokens.copyExpectedToken(TokenType.braceL); + const isReExport = isExportFrom(this.tokens); + let foundNonTypeExport = false; + while (!this.tokens.matches1(TokenType.braceR)) { + const specifierInfo = getImportExportSpecifierInfo(this.tokens); + if (specifierInfo.isType || !isReExport && this.shouldElideExportedName(specifierInfo.leftName)) { + while (this.tokens.currentIndex() < specifierInfo.endIndex) { + this.tokens.removeToken(); + } + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + } + } else { + foundNonTypeExport = true; + while (this.tokens.currentIndex() < specifierInfo.endIndex) { + this.tokens.copyToken(); + } + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.copyToken(); + } + } + } + this.tokens.copyExpectedToken(TokenType.braceR); + if (!this.keepUnusedImports && isReExport && !foundNonTypeExport) { + this.tokens.removeToken(); + this.tokens.removeToken(); + removeMaybeImportAttributes(this.tokens); + } + return true; + } + /** + * ESM elides all imports with the rule that we only elide if we see that it's + * a type and never see it as a value. This is in contrast to CJS, which + * elides imports that are completely unknown. + */ + shouldElideExportedName(name) { + return this.isTypeScriptTransformEnabled && !this.keepUnusedImports && this.declarationInfo.typeDeclarations.has(name) && !this.declarationInfo.valueDeclarations.has(name); + } +}; + +// node_modules/sucrase/dist/esm/transformers/FlowTransformer.js +var FlowTransformer = class extends Transformer { + constructor(rootTransformer, tokens, isImportsTransformEnabled) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.isImportsTransformEnabled = isImportsTransformEnabled; + ; + } + process() { + if (this.rootTransformer.processPossibleArrowParamEnd() || this.rootTransformer.processPossibleAsyncArrowWithTypeParams() || this.rootTransformer.processPossibleTypeRange()) { + return true; + } + if (this.tokens.matches1(TokenType._enum)) { + this.processEnum(); + return true; + } + if (this.tokens.matches2(TokenType._export, TokenType._enum)) { + this.processNamedExportEnum(); + return true; + } + if (this.tokens.matches3(TokenType._export, TokenType._default, TokenType._enum)) { + this.processDefaultExportEnum(); + return true; + } + return false; + } + /** + * Handle a declaration like: + * export enum E ... + * + * With this imports transform, this becomes: + * const E = [[enum]]; exports.E = E; + * + * otherwise, it becomes: + * export const E = [[enum]]; + */ + processNamedExportEnum() { + if (this.isImportsTransformEnabled) { + this.tokens.removeInitialToken(); + const enumName = this.tokens.identifierNameAtRelativeIndex(1); + this.processEnum(); + this.tokens.appendCode(` exports.${enumName} = ${enumName};`); + } else { + this.tokens.copyToken(); + this.processEnum(); + } + } + /** + * Handle a declaration like: + * export default enum E + * + * With the imports transform, this becomes: + * const E = [[enum]]; exports.default = E; + * + * otherwise, it becomes: + * const E = [[enum]]; export default E; + */ + processDefaultExportEnum() { + this.tokens.removeInitialToken(); + this.tokens.removeToken(); + const enumName = this.tokens.identifierNameAtRelativeIndex(1); + this.processEnum(); + if (this.isImportsTransformEnabled) { + this.tokens.appendCode(` exports.default = ${enumName};`); + } else { + this.tokens.appendCode(` export default ${enumName};`); + } + } + /** + * Transpile flow enums to invoke the "flow-enums-runtime" library. + * + * Currently, the transpiled code always uses `require("flow-enums-runtime")`, + * but if future flexibility is needed, we could expose a config option for + * this string (similar to configurable JSX). Even when targeting ESM, the + * default behavior of babel-plugin-transform-flow-enums is to use require + * rather than injecting an import. + * + * Flow enums are quite a bit simpler than TS enums and have some convenient + * constraints: + * - Element initializers must be either always present or always absent. That + * means that we can use fixed lookahead on the first element (if any) and + * assume that all elements are like that. + * - The right-hand side of an element initializer must be a literal value, + * not a complex expression and not referencing other elements. That means + * we can simply copy a single token. + * + * Enums can be broken up into three basic cases: + * + * Mirrored enums: + * enum E {A, B} + * -> + * const E = require("flow-enums-runtime").Mirrored(["A", "B"]); + * + * Initializer enums: + * enum E {A = 1, B = 2} + * -> + * const E = require("flow-enums-runtime")({A: 1, B: 2}); + * + * Symbol enums: + * enum E of symbol {A, B} + * -> + * const E = require("flow-enums-runtime")({A: Symbol("A"), B: Symbol("B")}); + * + * We can statically detect which of the three cases this is by looking at the + * "of" declaration (if any) and seeing if the first element has an initializer. + * Since the other transform details are so similar between the three cases, we + * use a single implementation and vary the transform within processEnumElement + * based on case. + */ + processEnum() { + this.tokens.replaceToken("const"); + this.tokens.copyExpectedToken(TokenType.name); + let isSymbolEnum = false; + if (this.tokens.matchesContextual(ContextualKeyword._of)) { + this.tokens.removeToken(); + isSymbolEnum = this.tokens.matchesContextual(ContextualKeyword._symbol); + this.tokens.removeToken(); + } + const hasInitializers = this.tokens.matches3(TokenType.braceL, TokenType.name, TokenType.eq); + this.tokens.appendCode(' = require("flow-enums-runtime")'); + const isMirrored = !isSymbolEnum && !hasInitializers; + this.tokens.replaceTokenTrimmingLeftWhitespace(isMirrored ? ".Mirrored([" : "({"); + while (!this.tokens.matches1(TokenType.braceR)) { + if (this.tokens.matches1(TokenType.ellipsis)) { + this.tokens.removeToken(); + break; + } + this.processEnumElement(isSymbolEnum, hasInitializers); + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.copyToken(); + } + } + this.tokens.replaceToken(isMirrored ? "]);" : "});"); + } + /** + * Process an individual enum element, producing either an array element or an + * object element based on what type of enum this is. + */ + processEnumElement(isSymbolEnum, hasInitializers) { + if (isSymbolEnum) { + const elementName = this.tokens.identifierName(); + this.tokens.copyToken(); + this.tokens.appendCode(`: Symbol("${elementName}")`); + } else if (hasInitializers) { + this.tokens.copyToken(); + this.tokens.replaceTokenTrimmingLeftWhitespace(":"); + this.tokens.copyToken(); + } else { + this.tokens.replaceToken(`"${this.tokens.identifierName()}"`); + } + } +}; + +// node_modules/sucrase/dist/esm/transformers/JestHoistTransformer.js +function _optionalChain(ops) { + let lastAccessLHS = void 0; + let value = ops[0]; + let i4 = 1; + while (i4 < ops.length) { + const op = ops[i4]; + const fn2 = ops[i4 + 1]; + i4 += 2; + if ((op === "optionalAccess" || op === "optionalCall") && value == null) { + return void 0; + } + if (op === "access" || op === "optionalAccess") { + lastAccessLHS = value; + value = fn2(value); + } else if (op === "call" || op === "optionalCall") { + value = fn2((...args) => value.call(lastAccessLHS, ...args)); + lastAccessLHS = void 0; + } + } + return value; +} +var JEST_GLOBAL_NAME = "jest"; +var HOISTED_METHODS = ["mock", "unmock", "enableAutomock", "disableAutomock"]; +var JestHoistTransformer = class _JestHoistTransformer extends Transformer { + __init() { + this.hoistedFunctionNames = []; + } + constructor(rootTransformer, tokens, nameManager, importProcessor) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.nameManager = nameManager; + this.importProcessor = importProcessor; + _JestHoistTransformer.prototype.__init.call(this); + ; + } + process() { + if (this.tokens.currentToken().scopeDepth === 0 && this.tokens.matches4(TokenType.name, TokenType.dot, TokenType.name, TokenType.parenL) && this.tokens.identifierName() === JEST_GLOBAL_NAME) { + if (_optionalChain([this, "access", (_3) => _3.importProcessor, "optionalAccess", (_22) => _22.getGlobalNames, "call", (_3) => _3(), "optionalAccess", (_4) => _4.has, "call", (_5) => _5(JEST_GLOBAL_NAME)])) { + return false; + } + return this.extractHoistedCalls(); + } + return false; + } + getHoistedCode() { + if (this.hoistedFunctionNames.length > 0) { + return this.hoistedFunctionNames.map((name) => `${name}();`).join(""); + } + return ""; + } + /** + * Extracts any methods calls on the jest-object that should be hoisted. + * + * According to the jest docs, https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options, + * mock, unmock, enableAutomock, disableAutomock, are the methods that should be hoisted. + * + * We do not apply the same checks of the arguments as babel-plugin-jest-hoist does. + */ + extractHoistedCalls() { + this.tokens.removeToken(); + let followsNonHoistedJestCall = false; + while (this.tokens.matches3(TokenType.dot, TokenType.name, TokenType.parenL)) { + const methodName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); + const shouldHoist = HOISTED_METHODS.includes(methodName); + if (shouldHoist) { + const hoistedFunctionName = this.nameManager.claimFreeName("__jestHoist"); + this.hoistedFunctionNames.push(hoistedFunctionName); + this.tokens.replaceToken(`function ${hoistedFunctionName}(){${JEST_GLOBAL_NAME}.`); + this.tokens.copyToken(); + this.tokens.copyToken(); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + this.tokens.appendCode(";}"); + followsNonHoistedJestCall = false; + } else { + if (followsNonHoistedJestCall) { + this.tokens.copyToken(); + } else { + this.tokens.replaceToken(`${JEST_GLOBAL_NAME}.`); + } + this.tokens.copyToken(); + this.tokens.copyToken(); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.parenR); + followsNonHoistedJestCall = true; + } + } + return true; + } +}; + +// node_modules/sucrase/dist/esm/transformers/NumericSeparatorTransformer.js +var NumericSeparatorTransformer = class extends Transformer { + constructor(tokens) { + super(); + this.tokens = tokens; + ; + } + process() { + if (this.tokens.matches1(TokenType.num)) { + const code = this.tokens.currentTokenCode(); + if (code.includes("_")) { + this.tokens.replaceToken(code.replace(/_/g, "")); + return true; + } + } + return false; + } +}; + +// node_modules/sucrase/dist/esm/transformers/OptionalCatchBindingTransformer.js +var OptionalCatchBindingTransformer = class extends Transformer { + constructor(tokens, nameManager) { + super(); + this.tokens = tokens; + this.nameManager = nameManager; + ; + } + process() { + if (this.tokens.matches2(TokenType._catch, TokenType.braceL)) { + this.tokens.copyToken(); + this.tokens.appendCode(` (${this.nameManager.claimFreeName("e")})`); + return true; + } + return false; + } +}; + +// node_modules/sucrase/dist/esm/transformers/OptionalChainingNullishTransformer.js +var OptionalChainingNullishTransformer = class extends Transformer { + constructor(tokens, nameManager) { + super(); + this.tokens = tokens; + this.nameManager = nameManager; + ; + } + process() { + if (this.tokens.matches1(TokenType.nullishCoalescing)) { + const token3 = this.tokens.currentToken(); + if (this.tokens.tokens[token3.nullishStartIndex].isAsyncOperation) { + this.tokens.replaceTokenTrimmingLeftWhitespace(", async () => ("); + } else { + this.tokens.replaceTokenTrimmingLeftWhitespace(", () => ("); + } + return true; + } + if (this.tokens.matches1(TokenType._delete)) { + const nextToken2 = this.tokens.tokenAtRelativeIndex(1); + if (nextToken2.isOptionalChainStart) { + this.tokens.removeInitialToken(); + return true; + } + } + const token2 = this.tokens.currentToken(); + const chainStart = token2.subscriptStartIndex; + if (chainStart != null && this.tokens.tokens[chainStart].isOptionalChainStart && // Super subscripts can't be optional (since super is never null/undefined), and the syntax + // relies on the subscript being intact, so leave this token alone. + this.tokens.tokenAtRelativeIndex(-1).type !== TokenType._super) { + const param = this.nameManager.claimFreeName("_"); + let arrowStartSnippet; + if (chainStart > 0 && this.tokens.matches1AtIndex(chainStart - 1, TokenType._delete) && this.isLastSubscriptInChain()) { + arrowStartSnippet = `${param} => delete ${param}`; + } else { + arrowStartSnippet = `${param} => ${param}`; + } + if (this.tokens.tokens[chainStart].isAsyncOperation) { + arrowStartSnippet = `async ${arrowStartSnippet}`; + } + if (this.tokens.matches2(TokenType.questionDot, TokenType.parenL) || this.tokens.matches2(TokenType.questionDot, TokenType.lessThan)) { + if (this.justSkippedSuper()) { + this.tokens.appendCode(".bind(this)"); + } + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalCall', ${arrowStartSnippet}`); + } else if (this.tokens.matches2(TokenType.questionDot, TokenType.bracketL)) { + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}`); + } else if (this.tokens.matches1(TokenType.questionDot)) { + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}.`); + } else if (this.tokens.matches1(TokenType.dot)) { + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}.`); + } else if (this.tokens.matches1(TokenType.bracketL)) { + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}[`); + } else if (this.tokens.matches1(TokenType.parenL)) { + if (this.justSkippedSuper()) { + this.tokens.appendCode(".bind(this)"); + } + this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'call', ${arrowStartSnippet}(`); + } else { + throw new Error("Unexpected subscript operator in optional chain."); + } + return true; + } + return false; + } + /** + * Determine if the current token is the last of its chain, so that we know whether it's eligible + * to have a delete op inserted. + * + * We can do this by walking forward until we determine one way or another. Each + * isOptionalChainStart token must be paired with exactly one isOptionalChainEnd token after it in + * a nesting way, so we can track depth and walk to the end of the chain (the point where the + * depth goes negative) and see if any other subscript token is after us in the chain. + */ + isLastSubscriptInChain() { + let depth = 0; + for (let i4 = this.tokens.currentIndex() + 1; ; i4++) { + if (i4 >= this.tokens.tokens.length) { + throw new Error("Reached the end of the code while finding the end of the access chain."); + } + if (this.tokens.tokens[i4].isOptionalChainStart) { + depth++; + } else if (this.tokens.tokens[i4].isOptionalChainEnd) { + depth--; + } + if (depth < 0) { + return true; + } + if (depth === 0 && this.tokens.tokens[i4].subscriptStartIndex != null) { + return false; + } + } + } + /** + * Determine if we are the open-paren in an expression like super.a()?.b. + * + * We can do this by walking backward to find the previous subscript. If that subscript was + * preceded by a super, then we must be the subscript after it, so if this is a call expression, + * we'll need to attach the right context. + */ + justSkippedSuper() { + let depth = 0; + let index2 = this.tokens.currentIndex() - 1; + while (true) { + if (index2 < 0) { + throw new Error( + "Reached the start of the code while finding the start of the access chain." + ); + } + if (this.tokens.tokens[index2].isOptionalChainStart) { + depth--; + } else if (this.tokens.tokens[index2].isOptionalChainEnd) { + depth++; + } + if (depth < 0) { + return false; + } + if (depth === 0 && this.tokens.tokens[index2].subscriptStartIndex != null) { + return this.tokens.tokens[index2 - 1].type === TokenType._super; + } + index2--; + } + } +}; + +// node_modules/sucrase/dist/esm/transformers/ReactDisplayNameTransformer.js +var ReactDisplayNameTransformer = class extends Transformer { + constructor(rootTransformer, tokens, importProcessor, options2) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.importProcessor = importProcessor; + this.options = options2; + ; + } + process() { + const startIndex = this.tokens.currentIndex(); + if (this.tokens.identifierName() === "createReactClass") { + const newName = this.importProcessor && this.importProcessor.getIdentifierReplacement("createReactClass"); + if (newName) { + this.tokens.replaceToken(`(0, ${newName})`); + } else { + this.tokens.copyToken(); + } + this.tryProcessCreateClassCall(startIndex); + return true; + } + if (this.tokens.matches3(TokenType.name, TokenType.dot, TokenType.name) && this.tokens.identifierName() === "React" && this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 2) === "createClass") { + const newName = this.importProcessor ? this.importProcessor.getIdentifierReplacement("React") || "React" : "React"; + if (newName) { + this.tokens.replaceToken(newName); + this.tokens.copyToken(); + this.tokens.copyToken(); + } else { + this.tokens.copyToken(); + this.tokens.copyToken(); + this.tokens.copyToken(); + } + this.tryProcessCreateClassCall(startIndex); + return true; + } + return false; + } + /** + * This is called with the token position at the open-paren. + */ + tryProcessCreateClassCall(startIndex) { + const displayName = this.findDisplayName(startIndex); + if (!displayName) { + return; + } + if (this.classNeedsDisplayName()) { + this.tokens.copyExpectedToken(TokenType.parenL); + this.tokens.copyExpectedToken(TokenType.braceL); + this.tokens.appendCode(`displayName: '${displayName}',`); + this.rootTransformer.processBalancedCode(); + this.tokens.copyExpectedToken(TokenType.braceR); + this.tokens.copyExpectedToken(TokenType.parenR); + } + } + findDisplayName(startIndex) { + if (startIndex < 2) { + return null; + } + if (this.tokens.matches2AtIndex(startIndex - 2, TokenType.name, TokenType.eq)) { + return this.tokens.identifierNameAtIndex(startIndex - 2); + } + if (startIndex >= 2 && this.tokens.tokens[startIndex - 2].identifierRole === IdentifierRole.ObjectKey) { + return this.tokens.identifierNameAtIndex(startIndex - 2); + } + if (this.tokens.matches2AtIndex(startIndex - 2, TokenType._export, TokenType._default)) { + return this.getDisplayNameFromFilename(); + } + return null; + } + getDisplayNameFromFilename() { + const filePath = this.options.filePath || "unknown"; + const pathSegments = filePath.split("/"); + const filename = pathSegments[pathSegments.length - 1]; + const dotIndex = filename.lastIndexOf("."); + const baseFilename = dotIndex === -1 ? filename : filename.slice(0, dotIndex); + if (baseFilename === "index" && pathSegments[pathSegments.length - 2]) { + return pathSegments[pathSegments.length - 2]; + } else { + return baseFilename; + } + } + /** + * We only want to add a display name when this is a function call containing + * one argument, which is an object literal without `displayName` as an + * existing key. + */ + classNeedsDisplayName() { + let index2 = this.tokens.currentIndex(); + if (!this.tokens.matches2(TokenType.parenL, TokenType.braceL)) { + return false; + } + const objectStartIndex = index2 + 1; + const objectContextId = this.tokens.tokens[objectStartIndex].contextId; + if (objectContextId == null) { + throw new Error("Expected non-null context ID on object open-brace."); + } + for (; index2 < this.tokens.tokens.length; index2++) { + const token2 = this.tokens.tokens[index2]; + if (token2.type === TokenType.braceR && token2.contextId === objectContextId) { + index2++; + break; + } + if (this.tokens.identifierNameAtIndex(index2) === "displayName" && this.tokens.tokens[index2].identifierRole === IdentifierRole.ObjectKey && token2.contextId === objectContextId) { + return false; + } + } + if (index2 === this.tokens.tokens.length) { + throw new Error("Unexpected end of input when processing React class."); + } + return this.tokens.matches1AtIndex(index2, TokenType.parenR) || this.tokens.matches2AtIndex(index2, TokenType.comma, TokenType.parenR); + } +}; + +// node_modules/sucrase/dist/esm/transformers/ReactHotLoaderTransformer.js +var ReactHotLoaderTransformer = class _ReactHotLoaderTransformer extends Transformer { + __init() { + this.extractedDefaultExportName = null; + } + constructor(tokens, filePath) { + super(); + this.tokens = tokens; + this.filePath = filePath; + _ReactHotLoaderTransformer.prototype.__init.call(this); + ; + } + setExtractedDefaultExportName(extractedDefaultExportName) { + this.extractedDefaultExportName = extractedDefaultExportName; + } + getPrefixCode() { + return ` + (function () { + var enterModule = require('react-hot-loader').enterModule; + enterModule && enterModule(module); + })();`.replace(/\s+/g, " ").trim(); + } + getSuffixCode() { + const topLevelNames = /* @__PURE__ */ new Set(); + for (const token2 of this.tokens.tokens) { + if (!token2.isType && isTopLevelDeclaration(token2) && token2.identifierRole !== IdentifierRole.ImportDeclaration) { + topLevelNames.add(this.tokens.identifierNameForToken(token2)); + } + } + const namesToRegister = Array.from(topLevelNames).map((name) => ({ + variableName: name, + uniqueLocalName: name + })); + if (this.extractedDefaultExportName) { + namesToRegister.push({ + variableName: this.extractedDefaultExportName, + uniqueLocalName: "default" + }); + } + return ` +;(function () { + var reactHotLoader = require('react-hot-loader').default; + var leaveModule = require('react-hot-loader').leaveModule; + if (!reactHotLoader) { + return; + } +${namesToRegister.map( + ({ variableName, uniqueLocalName }) => ` reactHotLoader.register(${variableName}, "${uniqueLocalName}", ${JSON.stringify( + this.filePath || "" + )});` + ).join("\n")} + leaveModule(module); +})();`; + } + process() { + return false; + } +}; + +// node_modules/sucrase/dist/esm/util/isIdentifier.js +var RESERVED_WORDS = /* @__PURE__ */ new Set([ + // Reserved keywords as of ECMAScript 2015 + "break", + "case", + "catch", + "class", + "const", + "continue", + "debugger", + "default", + "delete", + "do", + "else", + "export", + "extends", + "finally", + "for", + "function", + "if", + "import", + "in", + "instanceof", + "new", + "return", + "super", + "switch", + "this", + "throw", + "try", + "typeof", + "var", + "void", + "while", + "with", + "yield", + // Future reserved keywords + "enum", + "implements", + "interface", + "let", + "package", + "private", + "protected", + "public", + "static", + "await", + // Literals that cannot be used as identifiers + "false", + "null", + "true" +]); +function isIdentifier(name) { + if (name.length === 0) { + return false; + } + if (!IS_IDENTIFIER_START[name.charCodeAt(0)]) { + return false; + } + for (let i4 = 1; i4 < name.length; i4++) { + if (!IS_IDENTIFIER_CHAR[name.charCodeAt(i4)]) { + return false; + } + } + return !RESERVED_WORDS.has(name); +} + +// node_modules/sucrase/dist/esm/transformers/TypeScriptTransformer.js +var TypeScriptTransformer = class extends Transformer { + constructor(rootTransformer, tokens, isImportsTransformEnabled) { + super(); + this.rootTransformer = rootTransformer; + this.tokens = tokens; + this.isImportsTransformEnabled = isImportsTransformEnabled; + ; + } + process() { + if (this.rootTransformer.processPossibleArrowParamEnd() || this.rootTransformer.processPossibleAsyncArrowWithTypeParams() || this.rootTransformer.processPossibleTypeRange()) { + return true; + } + if (this.tokens.matches1(TokenType._public) || this.tokens.matches1(TokenType._protected) || this.tokens.matches1(TokenType._private) || this.tokens.matches1(TokenType._abstract) || this.tokens.matches1(TokenType._readonly) || this.tokens.matches1(TokenType._override) || this.tokens.matches1(TokenType.nonNullAssertion)) { + this.tokens.removeInitialToken(); + return true; + } + if (this.tokens.matches1(TokenType._enum) || this.tokens.matches2(TokenType._const, TokenType._enum)) { + this.processEnum(); + return true; + } + if (this.tokens.matches2(TokenType._export, TokenType._enum) || this.tokens.matches3(TokenType._export, TokenType._const, TokenType._enum)) { + this.processEnum(true); + return true; + } + return false; + } + processEnum(isExport = false) { + this.tokens.removeInitialToken(); + while (this.tokens.matches1(TokenType._const) || this.tokens.matches1(TokenType._enum)) { + this.tokens.removeToken(); + } + const enumName = this.tokens.identifierName(); + this.tokens.removeToken(); + if (isExport && !this.isImportsTransformEnabled) { + this.tokens.appendCode("export "); + } + this.tokens.appendCode(`var ${enumName}; (function (${enumName})`); + this.tokens.copyExpectedToken(TokenType.braceL); + this.processEnumBody(enumName); + this.tokens.copyExpectedToken(TokenType.braceR); + if (isExport && this.isImportsTransformEnabled) { + this.tokens.appendCode(`)(${enumName} || (exports.${enumName} = ${enumName} = {}));`); + } else { + this.tokens.appendCode(`)(${enumName} || (${enumName} = {}));`); + } + } + /** + * Transform an enum into equivalent JS. This has complexity in a few places: + * - TS allows string enums, numeric enums, and a mix of the two styles within an enum. + * - Enum keys are allowed to be referenced in later enum values. + * - Enum keys are allowed to be strings. + * - When enum values are omitted, they should follow an auto-increment behavior. + */ + processEnumBody(enumName) { + let previousValueCode = null; + while (true) { + if (this.tokens.matches1(TokenType.braceR)) { + break; + } + const { nameStringCode, variableName } = this.extractEnumKeyInfo(this.tokens.currentToken()); + this.tokens.removeInitialToken(); + if (this.tokens.matches3(TokenType.eq, TokenType.string, TokenType.comma) || this.tokens.matches3(TokenType.eq, TokenType.string, TokenType.braceR)) { + this.processStringLiteralEnumMember(enumName, nameStringCode, variableName); + } else if (this.tokens.matches1(TokenType.eq)) { + this.processExplicitValueEnumMember(enumName, nameStringCode, variableName); + } else { + this.processImplicitValueEnumMember( + enumName, + nameStringCode, + variableName, + previousValueCode + ); + } + if (this.tokens.matches1(TokenType.comma)) { + this.tokens.removeToken(); + } + if (variableName != null) { + previousValueCode = variableName; + } else { + previousValueCode = `${enumName}[${nameStringCode}]`; + } + } + } + /** + * Detect name information about this enum key, which will be used to determine which code to emit + * and whether we should declare a variable as part of this declaration. + * + * Some cases to keep in mind: + * - Enum keys can be implicitly referenced later, e.g. `X = 1, Y = X`. In Sucrase, we implement + * this by declaring a variable `X` so that later expressions can use it. + * - In addition to the usual identifier key syntax, enum keys are allowed to be string literals, + * e.g. `"hello world" = 3,`. Template literal syntax is NOT allowed. + * - Even if the enum key is defined as a string literal, it may still be referenced by identifier + * later, e.g. `"X" = 1, Y = X`. That means that we need to detect whether or not a string + * literal is identifier-like and emit a variable if so, even if the declaration did not use an + * identifier. + * - Reserved keywords like `break` are valid enum keys, but are not valid to be referenced later + * and would be a syntax error if we emitted a variable, so we need to skip the variable + * declaration in those cases. + * + * The variableName return value captures these nuances: if non-null, we can and must emit a + * variable declaration, and if null, we can't and shouldn't. + */ + extractEnumKeyInfo(nameToken) { + if (nameToken.type === TokenType.name) { + const name = this.tokens.identifierNameForToken(nameToken); + return { + nameStringCode: `"${name}"`, + variableName: isIdentifier(name) ? name : null + }; + } else if (nameToken.type === TokenType.string) { + const name = this.tokens.stringValueForToken(nameToken); + return { + nameStringCode: this.tokens.code.slice(nameToken.start, nameToken.end), + variableName: isIdentifier(name) ? name : null + }; + } else { + throw new Error("Expected name or string at beginning of enum element."); + } + } + /** + * Handle an enum member where the RHS is just a string literal (not omitted, not a number, and + * not a complex expression). This is the typical form for TS string enums, and in this case, we + * do *not* create a reverse mapping. + * + * This is called after deleting the key token, when the token processor is at the equals sign. + * + * Example 1: + * someKey = "some value" + * -> + * const someKey = "some value"; MyEnum["someKey"] = someKey; + * + * Example 2: + * "some key" = "some value" + * -> + * MyEnum["some key"] = "some value"; + */ + processStringLiteralEnumMember(enumName, nameStringCode, variableName) { + if (variableName != null) { + this.tokens.appendCode(`const ${variableName}`); + this.tokens.copyToken(); + this.tokens.copyToken(); + this.tokens.appendCode(`; ${enumName}[${nameStringCode}] = ${variableName};`); + } else { + this.tokens.appendCode(`${enumName}[${nameStringCode}]`); + this.tokens.copyToken(); + this.tokens.copyToken(); + this.tokens.appendCode(";"); + } + } + /** + * Handle an enum member initialized with an expression on the right-hand side (other than a + * string literal). In these cases, we should transform the expression and emit code that sets up + * a reverse mapping. + * + * The TypeScript implementation of this operation distinguishes between expressions that can be + * "constant folded" at compile time (i.e. consist of number literals and simple math operations + * on those numbers) and ones that are dynamic. For constant expressions, it emits the resolved + * numeric value, and auto-incrementing is only allowed in that case. Evaluating expressions at + * compile time would add significant complexity to Sucrase, so Sucrase instead leaves the + * expression as-is, and will later emit something like `MyEnum["previousKey"] + 1` to implement + * auto-incrementing. + * + * This is called after deleting the key token, when the token processor is at the equals sign. + * + * Example 1: + * someKey = 1 + 1 + * -> + * const someKey = 1 + 1; MyEnum[MyEnum["someKey"] = someKey] = "someKey"; + * + * Example 2: + * "some key" = 1 + 1 + * -> + * MyEnum[MyEnum["some key"] = 1 + 1] = "some key"; + */ + processExplicitValueEnumMember(enumName, nameStringCode, variableName) { + const rhsEndIndex = this.tokens.currentToken().rhsEndIndex; + if (rhsEndIndex == null) { + throw new Error("Expected rhsEndIndex on enum assign."); + } + if (variableName != null) { + this.tokens.appendCode(`const ${variableName}`); + this.tokens.copyToken(); + while (this.tokens.currentIndex() < rhsEndIndex) { + this.rootTransformer.processToken(); + } + this.tokens.appendCode( + `; ${enumName}[${enumName}[${nameStringCode}] = ${variableName}] = ${nameStringCode};` + ); + } else { + this.tokens.appendCode(`${enumName}[${enumName}[${nameStringCode}]`); + this.tokens.copyToken(); + while (this.tokens.currentIndex() < rhsEndIndex) { + this.rootTransformer.processToken(); + } + this.tokens.appendCode(`] = ${nameStringCode};`); + } + } + /** + * Handle an enum member with no right-hand side expression. In this case, the value is the + * previous value plus 1, or 0 if there was no previous value. We should also always emit a + * reverse mapping. + * + * Example 1: + * someKey2 + * -> + * const someKey2 = someKey1 + 1; MyEnum[MyEnum["someKey2"] = someKey2] = "someKey2"; + * + * Example 2: + * "some key 2" + * -> + * MyEnum[MyEnum["some key 2"] = someKey1 + 1] = "some key 2"; + */ + processImplicitValueEnumMember(enumName, nameStringCode, variableName, previousValueCode) { + let valueCode = previousValueCode != null ? `${previousValueCode} + 1` : "0"; + if (variableName != null) { + this.tokens.appendCode(`const ${variableName} = ${valueCode}; `); + valueCode = variableName; + } + this.tokens.appendCode( + `${enumName}[${enumName}[${nameStringCode}] = ${valueCode}] = ${nameStringCode};` + ); + } +}; + +// node_modules/sucrase/dist/esm/transformers/RootTransformer.js +var RootTransformer = class _RootTransformer { + __init() { + this.transformers = []; + } + __init2() { + this.generatedVariables = []; + } + constructor(sucraseContext, transforms, enableLegacyBabel5ModuleInterop, options2) { + ; + _RootTransformer.prototype.__init.call(this); + _RootTransformer.prototype.__init2.call(this); + this.nameManager = sucraseContext.nameManager; + this.helperManager = sucraseContext.helperManager; + const { tokenProcessor, importProcessor } = sucraseContext; + this.tokens = tokenProcessor; + this.isImportsTransformEnabled = transforms.includes("imports"); + this.isReactHotLoaderTransformEnabled = transforms.includes("react-hot-loader"); + this.disableESTransforms = Boolean(options2.disableESTransforms); + if (!options2.disableESTransforms) { + this.transformers.push( + new OptionalChainingNullishTransformer(tokenProcessor, this.nameManager) + ); + this.transformers.push(new NumericSeparatorTransformer(tokenProcessor)); + this.transformers.push(new OptionalCatchBindingTransformer(tokenProcessor, this.nameManager)); + } + if (transforms.includes("jsx")) { + if (options2.jsxRuntime !== "preserve") { + this.transformers.push( + new JSXTransformer(this, tokenProcessor, importProcessor, this.nameManager, options2) + ); + } + this.transformers.push( + new ReactDisplayNameTransformer(this, tokenProcessor, importProcessor, options2) + ); + } + let reactHotLoaderTransformer = null; + if (transforms.includes("react-hot-loader")) { + if (!options2.filePath) { + throw new Error("filePath is required when using the react-hot-loader transform."); + } + reactHotLoaderTransformer = new ReactHotLoaderTransformer(tokenProcessor, options2.filePath); + this.transformers.push(reactHotLoaderTransformer); + } + if (transforms.includes("imports")) { + if (importProcessor === null) { + throw new Error("Expected non-null importProcessor with imports transform enabled."); + } + this.transformers.push( + new CJSImportTransformer( + this, + tokenProcessor, + importProcessor, + this.nameManager, + this.helperManager, + reactHotLoaderTransformer, + enableLegacyBabel5ModuleInterop, + Boolean(options2.enableLegacyTypeScriptModuleInterop), + transforms.includes("typescript"), + transforms.includes("flow"), + Boolean(options2.preserveDynamicImport), + Boolean(options2.keepUnusedImports) + ) + ); + } else { + this.transformers.push( + new ESMImportTransformer( + tokenProcessor, + this.nameManager, + this.helperManager, + reactHotLoaderTransformer, + transforms.includes("typescript"), + transforms.includes("flow"), + Boolean(options2.keepUnusedImports), + options2 + ) + ); + } + if (transforms.includes("flow")) { + this.transformers.push( + new FlowTransformer(this, tokenProcessor, transforms.includes("imports")) + ); + } + if (transforms.includes("typescript")) { + this.transformers.push( + new TypeScriptTransformer(this, tokenProcessor, transforms.includes("imports")) + ); + } + if (transforms.includes("jest")) { + this.transformers.push( + new JestHoistTransformer(this, tokenProcessor, this.nameManager, importProcessor) + ); + } + } + transform() { + this.tokens.reset(); + this.processBalancedCode(); + const shouldAddUseStrict = this.isImportsTransformEnabled; + let prefix2 = shouldAddUseStrict ? '"use strict";' : ""; + for (const transformer of this.transformers) { + prefix2 += transformer.getPrefixCode(); + } + prefix2 += this.helperManager.emitHelpers(); + prefix2 += this.generatedVariables.map((v3) => ` var ${v3};`).join(""); + for (const transformer of this.transformers) { + prefix2 += transformer.getHoistedCode(); + } + let suffix = ""; + for (const transformer of this.transformers) { + suffix += transformer.getSuffixCode(); + } + const result = this.tokens.finish(); + let { code } = result; + if (code.startsWith("#!")) { + let newlineIndex = code.indexOf("\n"); + if (newlineIndex === -1) { + newlineIndex = code.length; + code += "\n"; + } + return { + code: code.slice(0, newlineIndex + 1) + prefix2 + code.slice(newlineIndex + 1) + suffix, + // The hashbang line has no tokens, so shifting the tokens to account + // for prefix can happen normally. + mappings: this.shiftMappings(result.mappings, prefix2.length) + }; + } else { + return { + code: prefix2 + code + suffix, + mappings: this.shiftMappings(result.mappings, prefix2.length) + }; + } + } + processBalancedCode() { + let braceDepth = 0; + let parenDepth = 0; + while (!this.tokens.isAtEnd()) { + if (this.tokens.matches1(TokenType.braceL) || this.tokens.matches1(TokenType.dollarBraceL)) { + braceDepth++; + } else if (this.tokens.matches1(TokenType.braceR)) { + if (braceDepth === 0) { + return; + } + braceDepth--; + } + if (this.tokens.matches1(TokenType.parenL)) { + parenDepth++; + } else if (this.tokens.matches1(TokenType.parenR)) { + if (parenDepth === 0) { + return; + } + parenDepth--; + } + this.processToken(); + } + } + processToken() { + if (this.tokens.matches1(TokenType._class)) { + this.processClass(); + return; + } + for (const transformer of this.transformers) { + const wasProcessed = transformer.process(); + if (wasProcessed) { + return; + } + } + this.tokens.copyToken(); + } + /** + * Skip past a class with a name and return that name. + */ + processNamedClass() { + if (!this.tokens.matches2(TokenType._class, TokenType.name)) { + throw new Error("Expected identifier for exported class name."); + } + const name = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1); + this.processClass(); + return name; + } + processClass() { + const classInfo = getClassInfo(this, this.tokens, this.nameManager, this.disableESTransforms); + const needsCommaExpression = (classInfo.headerInfo.isExpression || !classInfo.headerInfo.className) && classInfo.staticInitializerNames.length + classInfo.instanceInitializerNames.length > 0; + let className = classInfo.headerInfo.className; + if (needsCommaExpression) { + className = this.nameManager.claimFreeName("_class"); + this.generatedVariables.push(className); + this.tokens.appendCode(` (${className} =`); + } + const classToken = this.tokens.currentToken(); + const contextId = classToken.contextId; + if (contextId == null) { + throw new Error("Expected class to have a context ID."); + } + this.tokens.copyExpectedToken(TokenType._class); + while (!this.tokens.matchesContextIdAndLabel(TokenType.braceL, contextId)) { + this.processToken(); + } + this.processClassBody(classInfo, className); + const staticInitializerStatements = classInfo.staticInitializerNames.map( + (name) => `${className}.${name}()` + ); + if (needsCommaExpression) { + this.tokens.appendCode( + `, ${staticInitializerStatements.map((s4) => `${s4}, `).join("")}${className})` + ); + } else if (classInfo.staticInitializerNames.length > 0) { + this.tokens.appendCode(` ${staticInitializerStatements.map((s4) => `${s4};`).join(" ")}`); + } + } + /** + * We want to just handle class fields in all contexts, since TypeScript supports them. Later, + * when some JS implementations support class fields, this should be made optional. + */ + processClassBody(classInfo, className) { + const { + headerInfo, + constructorInsertPos, + constructorInitializerStatements, + fields, + instanceInitializerNames, + rangesToRemove + } = classInfo; + let fieldIndex = 0; + let rangeToRemoveIndex = 0; + const classContextId = this.tokens.currentToken().contextId; + if (classContextId == null) { + throw new Error("Expected non-null context ID on class."); + } + this.tokens.copyExpectedToken(TokenType.braceL); + if (this.isReactHotLoaderTransformEnabled) { + this.tokens.appendCode( + "__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}" + ); + } + const needsConstructorInit = constructorInitializerStatements.length + instanceInitializerNames.length > 0; + if (constructorInsertPos === null && needsConstructorInit) { + const constructorInitializersCode = this.makeConstructorInitCode( + constructorInitializerStatements, + instanceInitializerNames, + className + ); + if (headerInfo.hasSuperclass) { + const argsName = this.nameManager.claimFreeName("args"); + this.tokens.appendCode( + `constructor(...${argsName}) { super(...${argsName}); ${constructorInitializersCode}; }` + ); + } else { + this.tokens.appendCode(`constructor() { ${constructorInitializersCode}; }`); + } + } + while (!this.tokens.matchesContextIdAndLabel(TokenType.braceR, classContextId)) { + if (fieldIndex < fields.length && this.tokens.currentIndex() === fields[fieldIndex].start) { + let needsCloseBrace = false; + if (this.tokens.matches1(TokenType.bracketL)) { + this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this`); + } else if (this.tokens.matches1(TokenType.string) || this.tokens.matches1(TokenType.num)) { + this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this[`); + needsCloseBrace = true; + } else { + this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this.`); + } + while (this.tokens.currentIndex() < fields[fieldIndex].end) { + if (needsCloseBrace && this.tokens.currentIndex() === fields[fieldIndex].equalsIndex) { + this.tokens.appendCode("]"); + } + this.processToken(); + } + this.tokens.appendCode("}"); + fieldIndex++; + } else if (rangeToRemoveIndex < rangesToRemove.length && this.tokens.currentIndex() >= rangesToRemove[rangeToRemoveIndex].start) { + if (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) { + this.tokens.removeInitialToken(); + } + while (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) { + this.tokens.removeToken(); + } + rangeToRemoveIndex++; + } else if (this.tokens.currentIndex() === constructorInsertPos) { + this.tokens.copyToken(); + if (needsConstructorInit) { + this.tokens.appendCode( + `;${this.makeConstructorInitCode( + constructorInitializerStatements, + instanceInitializerNames, + className + )};` + ); + } + this.processToken(); + } else { + this.processToken(); + } + } + this.tokens.copyExpectedToken(TokenType.braceR); + } + makeConstructorInitCode(constructorInitializerStatements, instanceInitializerNames, className) { + return [ + ...constructorInitializerStatements, + ...instanceInitializerNames.map((name) => `${className}.prototype.${name}.call(this)`) + ].join(";"); + } + /** + * Normally it's ok to simply remove type tokens, but we need to be more careful when dealing with + * arrow function return types since they can confuse the parser. In that case, we want to move + * the close-paren to the same line as the arrow. + * + * See https://github.com/alangpierce/sucrase/issues/391 for more details. + */ + processPossibleArrowParamEnd() { + if (this.tokens.matches2(TokenType.parenR, TokenType.colon) && this.tokens.tokenAtRelativeIndex(1).isType) { + let nextNonTypeIndex = this.tokens.currentIndex() + 1; + while (this.tokens.tokens[nextNonTypeIndex].isType) { + nextNonTypeIndex++; + } + if (this.tokens.matches1AtIndex(nextNonTypeIndex, TokenType.arrow)) { + this.tokens.removeInitialToken(); + while (this.tokens.currentIndex() < nextNonTypeIndex) { + this.tokens.removeToken(); + } + this.tokens.replaceTokenTrimmingLeftWhitespace(") =>"); + return true; + } + } + return false; + } + /** + * An async arrow function might be of the form: + * + * async < + * T + * >() => {} + * + * in which case, removing the type parameters will cause a syntax error. Detect this case and + * move the open-paren earlier. + */ + processPossibleAsyncArrowWithTypeParams() { + if (!this.tokens.matchesContextual(ContextualKeyword._async) && !this.tokens.matches1(TokenType._async)) { + return false; + } + const nextToken2 = this.tokens.tokenAtRelativeIndex(1); + if (nextToken2.type !== TokenType.lessThan || !nextToken2.isType) { + return false; + } + let nextNonTypeIndex = this.tokens.currentIndex() + 1; + while (this.tokens.tokens[nextNonTypeIndex].isType) { + nextNonTypeIndex++; + } + if (this.tokens.matches1AtIndex(nextNonTypeIndex, TokenType.parenL)) { + this.tokens.replaceToken("async ("); + this.tokens.removeInitialToken(); + while (this.tokens.currentIndex() < nextNonTypeIndex) { + this.tokens.removeToken(); + } + this.tokens.removeToken(); + this.processBalancedCode(); + this.processToken(); + return true; + } + return false; + } + processPossibleTypeRange() { + if (this.tokens.currentToken().isType) { + this.tokens.removeInitialToken(); + while (this.tokens.currentToken().isType) { + this.tokens.removeToken(); + } + return true; + } + return false; + } + shiftMappings(mappings, prefixLength) { + for (let i4 = 0; i4 < mappings.length; i4++) { + const mapping = mappings[i4]; + if (mapping !== void 0) { + mappings[i4] = mapping + prefixLength; + } + } + return mappings; + } +}; + +// node_modules/sucrase/dist/esm/util/formatTokens.js +var import_lines_and_columns = __toESM(require_build()); + +// node_modules/sucrase/dist/esm/util/getTSImportedNames.js +function getTSImportedNames(tokens) { + const importedNames = /* @__PURE__ */ new Set(); + for (let i4 = 0; i4 < tokens.tokens.length; i4++) { + if (tokens.matches1AtIndex(i4, TokenType._import) && !tokens.matches3AtIndex(i4, TokenType._import, TokenType.name, TokenType.eq)) { + collectNamesForImport(tokens, i4, importedNames); + } + } + return importedNames; +} +function collectNamesForImport(tokens, index2, importedNames) { + index2++; + if (tokens.matches1AtIndex(index2, TokenType.parenL)) { + return; + } + if (tokens.matches1AtIndex(index2, TokenType.name)) { + importedNames.add(tokens.identifierNameAtIndex(index2)); + index2++; + if (tokens.matches1AtIndex(index2, TokenType.comma)) { + index2++; + } + } + if (tokens.matches1AtIndex(index2, TokenType.star)) { + index2 += 2; + importedNames.add(tokens.identifierNameAtIndex(index2)); + index2++; + } + if (tokens.matches1AtIndex(index2, TokenType.braceL)) { + index2++; + collectNamesForNamedImport(tokens, index2, importedNames); + } +} +function collectNamesForNamedImport(tokens, index2, importedNames) { + while (true) { + if (tokens.matches1AtIndex(index2, TokenType.braceR)) { + return; + } + const specifierInfo = getImportExportSpecifierInfo(tokens, index2); + index2 = specifierInfo.endIndex; + if (!specifierInfo.isType) { + importedNames.add(specifierInfo.rightName); + } + if (tokens.matches2AtIndex(index2, TokenType.comma, TokenType.braceR)) { + return; + } else if (tokens.matches1AtIndex(index2, TokenType.braceR)) { + return; + } else if (tokens.matches1AtIndex(index2, TokenType.comma)) { + index2++; + } else { + throw new Error(`Unexpected token: ${JSON.stringify(tokens.tokens[index2])}`); + } + } +} + +// node_modules/sucrase/dist/esm/index.js +function transform(code, options2) { + validateOptions(options2); + try { + const sucraseContext = getSucraseContext(code, options2); + const transformer = new RootTransformer( + sucraseContext, + options2.transforms, + Boolean(options2.enableLegacyBabel5ModuleInterop), + options2 + ); + const transformerResult = transformer.transform(); + let result = { code: transformerResult.code }; + if (options2.sourceMapOptions) { + if (!options2.filePath) { + throw new Error("filePath must be specified when generating a source map."); + } + result = { + ...result, + sourceMap: computeSourceMap( + transformerResult, + options2.filePath, + options2.sourceMapOptions, + code, + sucraseContext.tokenProcessor.tokens + ) + }; + } + return result; + } catch (e3) { + if (options2.filePath) { + e3.message = `Error transforming ${options2.filePath}: ${e3.message}`; + } + throw e3; + } +} +function getSucraseContext(code, options2) { + const isJSXEnabled2 = options2.transforms.includes("jsx"); + const isTypeScriptEnabled2 = options2.transforms.includes("typescript"); + const isFlowEnabled2 = options2.transforms.includes("flow"); + const disableESTransforms = options2.disableESTransforms === true; + const file = parse2(code, isJSXEnabled2, isTypeScriptEnabled2, isFlowEnabled2); + const tokens = file.tokens; + const scopes = file.scopes; + const nameManager = new NameManager(code, tokens); + const helperManager = new HelperManager(nameManager); + const tokenProcessor = new TokenProcessor( + code, + tokens, + isFlowEnabled2, + disableESTransforms, + helperManager + ); + const enableLegacyTypeScriptModuleInterop = Boolean(options2.enableLegacyTypeScriptModuleInterop); + let importProcessor = null; + if (options2.transforms.includes("imports")) { + importProcessor = new CJSImportProcessor( + nameManager, + tokenProcessor, + enableLegacyTypeScriptModuleInterop, + options2, + options2.transforms.includes("typescript"), + Boolean(options2.keepUnusedImports), + helperManager + ); + importProcessor.preprocessTokens(); + identifyShadowedGlobals(tokenProcessor, scopes, importProcessor.getGlobalNames()); + if (options2.transforms.includes("typescript") && !options2.keepUnusedImports) { + importProcessor.pruneTypeOnlyImports(); + } + } else if (options2.transforms.includes("typescript") && !options2.keepUnusedImports) { + identifyShadowedGlobals(tokenProcessor, scopes, getTSImportedNames(tokenProcessor)); + } + return { tokenProcessor, scopes, nameManager, importProcessor, helperManager }; +} + // src/utils/javascript.ts -var import_sucrase = __toESM(require_dist2()); function transpile(script, language) { switch (language) { case "js": return script; case "jsx": - return (0, import_sucrase.transform)(script, { transforms: ["jsx"], jsxPragma: "h", jsxFragmentPragma: "Fragment" }).code; + return transform(script, { transforms: ["jsx"], jsxPragma: "h", jsxFragmentPragma: "Fragment" }).code; case "ts": - return (0, import_sucrase.transform)(script, { transforms: ["typescript"] }).code; + return transform(script, { transforms: ["typescript"] }).code; case "tsx": - return (0, import_sucrase.transform)(script, { + return transform(script, { transforms: ["typescript", "jsx"], jsxPragma: "h", jsxFragmentPragma: "Fragment" @@ -41759,9 +35574,9 @@ function useStableCallback(callback, deps) { var NO_OP_UPDATE = (x4) => { }; function useControlledState(initialState, override, update) { - const [state, setState] = h2(override != null ? override : initialState); + const [state2, setState] = h2(override != null ? override : initialState); if (override !== void 0) { - if (state != override) setState(override); + if (state2 != override) setState(override); return [override, update != null ? update : NO_OP_UPDATE]; } const setStateWithUpdate = q2( @@ -41771,7 +35586,7 @@ function useControlledState(initialState, override, update) { }, [setState, update] ); - return [state, setStateWithUpdate]; + return [state2, setStateWithUpdate]; } // src/ui/loading-boundary.tsx @@ -41966,9 +35781,9 @@ function Button(props) { ); } function Textbox(props) { - var _a; - const { className, children, ...forwardingProps } = props; - return /* @__PURE__ */ u3("input", { type: (_a = props.type) != null ? _a : "text", className: combineClasses("dc-textbox", className), ...forwardingProps }); + var _a, _b; + const { className, children, inline: inline2 = false, ...forwardingProps } = props; + return inline2 ? /* @__PURE__ */ u3("input", { type: (_a = props.type) != null ? _a : "text", className: combineClasses("dc-textbox", className), ...forwardingProps }) : /* @__PURE__ */ u3("textarea", { className: combineClasses("dc-textbox", className), children: (_b = props.value) != null ? _b : "" }); } function Checkbox(props) { const { @@ -42257,8 +36072,7 @@ var Extractors; })(Extractors || (Extractors = {})); // src/index/import/inline-field.ts -var P6 = __toESM(require_parsimmon()); -var import_emoji_regex3 = __toESM(require_emoji_regex()); +var P6 = __toESM(require_parsimmon_umd_min()); // src/utils/data.ts function mapObjectValues(object, func) { @@ -42272,7 +36086,7 @@ function mapObjectValues(object, func) { // src/index/types/json/common.ts var JsonConversion; ((JsonConversion2) => { - JsonConversion2.NOOP_NORMALIZER = (input) => input; + JsonConversion2.NOOP_NORMALIZER = (input2) => input2; function json(literal) { const wrapped = Literals.wrapValue(literal); if (!wrapped) return null; @@ -42282,7 +36096,7 @@ var JsonConversion; case "object": return mapObjectValues(wrapped.value, JsonConversion2.json); case "date": - return { $_type: "date", value: wrapped.value.toISO({ includeOffset: true }) }; + return { $_type: "date", value: wrapped.value.toISO({ extendedZone: true, includeOffset: true }) }; case "link": return { $_type: "link", value: wrapped.value.toObject() }; case "duration": @@ -42300,14 +36114,14 @@ var JsonConversion; function value(json2, normalizer = JsonConversion2.NOOP_NORMALIZER) { if (json2 === null || json2 === void 0) return null; if (Array.isArray(json2)) { - return normalizer(json2.map((input) => JsonConversion2.value(input, normalizer))); + return normalizer(json2.map((input2) => JsonConversion2.value(input2, normalizer))); } else if (typeof json2 === "object") { if (!("$_type" in json2)) return mapObjectValues(json2, (v3) => JsonConversion2.value(v3, normalizer)); const type = json2["$_type"]; switch (type) { case "date": - return normalizer(DateTime.fromISO(json2.value, { setZone: true })); + return normalizer(DateTime.fromISO(json2.value)); case "duration": return normalizer(Duration.fromISO(json2.value)); case "link": @@ -42335,8 +36149,8 @@ var INLINE_FIELD_WRAPPERS = Object.freeze({ function findClosing(line2, start, open, close) { let nesting = 0; let escaped = false; - for (let index = start; index < line2.length; index++) { - let char2 = line2.charAt(index); + for (let index2 = start; index2 < line2.length; index2++) { + let char2 = line2.charAt(index2); if (char2 == "\\") { escaped = !escaped; continue; @@ -42347,7 +36161,7 @@ function findClosing(line2, start, open, close) { } if (char2 == open) nesting++; else if (char2 == close) nesting--; - if (nesting < 0) return { value: line2.substring(start, index).trim(), endIndex: index + 1 }; + if (nesting < 0) return { value: line2.substring(start, index2).trim(), endIndex: index2 + 1 }; escaped = false; } return void 0; @@ -42400,7 +36214,7 @@ function extractInlineFields(line2, includeTaskFields = false) { return filteredFields; } var FULL_LINE_KEY_PART = P6.alt( - P6.regexp(new RegExp((0, import_emoji_regex3.default)(), "u")), + P6.regexp(new RegExp(emoji_regex_default(), "u")), P6.regexp(/[0-9\p{Letter}\w\s_/-]+/u) ).many().map((parts) => parts.join("")); var FULL_LINE_KEY_PARSER = P6.regexp(/[^0-9\w\p{Letter}]*/u).then(FULL_LINE_KEY_PART).skip(P6.regexp(/[_\*~`]*/u)); @@ -42419,14 +36233,14 @@ var EMOJI_REGEXES = [ function extractSpecialTaskFields(line2) { let results = []; for (let { regex: regex2, key } of EMOJI_REGEXES) { - const match3 = regex2.exec(line2); - if (!match3) continue; + const match4 = regex2.exec(line2); + if (!match4) continue; results.push({ key, - value: match3[1], - start: match3.index, - startValue: match3.index + 1, - end: match3.index + match3[0].length, + value: match4[1], + start: match4.index, + startValue: match4.index + 1, + end: match4.index + match4[0].length, wrapping: "emoji-shorthand" }); } @@ -42952,24 +36766,24 @@ function valueFrontmatterEntry(raw) { raw: raw.raw }; } -function normalizeLinks(input, normalizer) { - return Literals.mapLeaves(input, (value) => { +function normalizeLinks(input2, normalizer) { + return Literals.mapLeaves(input2, (value) => { if (Literals.isLink(value)) return normalizer(value); else return value; }); } -function gatherLinks(input) { +function gatherLinks(input2) { const result = []; - Literals.mapLeaves(input, (value) => { + Literals.mapLeaves(input2, (value) => { if (Literals.isLink(value)) result.push(value); return null; }); return result; } function gatherTags(data) { - function recurse(input) { - if (Literals.isString(input)) return [input.startsWith("#") ? input : "#" + input]; - else if (Literals.isArray(input)) return input.flatMap(recurse); + function recurse(input2) { + if (Literals.isString(input2)) return [input2.startsWith("#") ? input2 : "#" + input2]; + else if (Literals.isArray(input2)) return input2.flatMap(recurse); else return []; } let tags = []; @@ -42990,51 +36804,51 @@ function _typeof(o4) { } // node_modules/@babel/runtime/helpers/esm/toPrimitive.js -function toPrimitive(t4, r4) { - if ("object" != _typeof(t4) || !t4) return t4; - var e3 = t4[Symbol.toPrimitive]; +function toPrimitive(t5, r4) { + if ("object" != _typeof(t5) || !t5) return t5; + var e3 = t5[Symbol.toPrimitive]; if (void 0 !== e3) { - var i4 = e3.call(t4, r4 || "default"); + var i4 = e3.call(t5, r4 || "default"); if ("object" != _typeof(i4)) return i4; throw new TypeError("@@toPrimitive must return a primitive value."); } - return ("string" === r4 ? String : Number)(t4); + return ("string" === r4 ? String : Number)(t5); } // node_modules/@babel/runtime/helpers/esm/toPropertyKey.js -function toPropertyKey(t4) { - var i4 = toPrimitive(t4, "string"); +function toPropertyKey(t5) { + var i4 = toPrimitive(t5, "string"); return "symbol" == _typeof(i4) ? i4 : i4 + ""; } // node_modules/@babel/runtime/helpers/esm/defineProperty.js -function _defineProperty(e3, r4, t4) { +function _defineProperty(e3, r4, t5) { return (r4 = toPropertyKey(r4)) in e3 ? Object.defineProperty(e3, r4, { - value: t4, + value: t5, enumerable: true, configurable: true, writable: true - }) : e3[r4] = t4, e3; + }) : e3[r4] = t5, e3; } // node_modules/@babel/runtime/helpers/esm/objectSpread2.js function ownKeys(e3, r4) { - var t4 = Object.keys(e3); + var t5 = Object.keys(e3); if (Object.getOwnPropertySymbols) { var o4 = Object.getOwnPropertySymbols(e3); r4 && (o4 = o4.filter(function(r5) { return Object.getOwnPropertyDescriptor(e3, r5).enumerable; - })), t4.push.apply(t4, o4); + })), t5.push.apply(t5, o4); } - return t4; + return t5; } function _objectSpread2(e3) { for (var r4 = 1; r4 < arguments.length; r4++) { - var t4 = null != arguments[r4] ? arguments[r4] : {}; - r4 % 2 ? ownKeys(Object(t4), true).forEach(function(r5) { - _defineProperty(e3, r5, t4[r5]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(t4)) : ownKeys(Object(t4)).forEach(function(r5) { - Object.defineProperty(e3, r5, Object.getOwnPropertyDescriptor(t4, r5)); + var t5 = null != arguments[r4] ? arguments[r4] : {}; + r4 % 2 ? ownKeys(Object(t5), true).forEach(function(r5) { + _defineProperty(e3, r5, t5[r5]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(t5)) : ownKeys(Object(t5)).forEach(function(r5) { + Object.defineProperty(e3, r5, Object.getOwnPropertyDescriptor(t5, r5)); }); } return e3; @@ -43047,19 +36861,19 @@ function _arrayWithHoles(r4) { // node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js function _iterableToArrayLimit(r4, l4) { - var t4 = null == r4 ? null : "undefined" != typeof Symbol && r4[Symbol.iterator] || r4["@@iterator"]; - if (null != t4) { + var t5 = null == r4 ? null : "undefined" != typeof Symbol && r4[Symbol.iterator] || r4["@@iterator"]; + if (null != t5) { var e3, n3, i4, u4, a4 = [], f4 = true, o4 = false; try { - if (i4 = (t4 = t4.call(r4)).next, 0 === l4) { - if (Object(t4) !== t4) return; + if (i4 = (t5 = t5.call(r4)).next, 0 === l4) { + if (Object(t5) !== t5) return; f4 = false; - } else for (; !(f4 = (e3 = i4.call(t4)).done) && (a4.push(e3.value), a4.length !== l4); f4 = true) ; + } else for (; !(f4 = (e3 = i4.call(t5)).done) && (a4.push(e3.value), a4.length !== l4); f4 = true) ; } catch (r5) { o4 = true, n3 = r5; } finally { try { - if (!f4 && null != t4["return"] && (u4 = t4["return"](), Object(u4) !== u4)) return; + if (!f4 && null != t5["return"] && (u4 = t5["return"](), Object(u4) !== u4)) return; } finally { if (o4) throw n3; } @@ -43079,8 +36893,8 @@ function _arrayLikeToArray(r4, a4) { function _unsupportedIterableToArray(r4, a4) { if (r4) { if ("string" == typeof r4) return _arrayLikeToArray(r4, a4); - var t4 = {}.toString.call(r4).slice(8, -1); - return "Object" === t4 && r4.constructor && (t4 = r4.constructor.name), "Map" === t4 || "Set" === t4 ? Array.from(r4) : "Arguments" === t4 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t4) ? _arrayLikeToArray(r4, a4) : void 0; + var t5 = {}.toString.call(r4).slice(8, -1); + return "Object" === t5 && r4.constructor && (t5 = r4.constructor.name), "Map" === t5 || "Set" === t5 ? Array.from(r4) : "Arguments" === t5 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t5) ? _arrayLikeToArray(r4, a4) : void 0; } } @@ -43097,21 +36911,21 @@ function _slicedToArray(r4, e3) { // node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js function _objectWithoutPropertiesLoose(r4, e3) { if (null == r4) return {}; - var t4 = {}; + var t5 = {}; for (var n3 in r4) if ({}.hasOwnProperty.call(r4, n3)) { if (e3.includes(n3)) continue; - t4[n3] = r4[n3]; + t5[n3] = r4[n3]; } - return t4; + return t5; } // node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js -function _objectWithoutProperties(e3, t4) { +function _objectWithoutProperties(e3, t5) { if (null == e3) return {}; - var o4, r4, i4 = _objectWithoutPropertiesLoose(e3, t4); + var o4, r4, i4 = _objectWithoutPropertiesLoose(e3, t5); if (Object.getOwnPropertySymbols) { var s4 = Object.getOwnPropertySymbols(e3); - for (r4 = 0; r4 < s4.length; r4++) o4 = s4[r4], t4.includes(o4) || {}.propertyIsEnumerable.call(e3, o4) && (i4[o4] = e3[o4]); + for (r4 = 0; r4 < s4.length; r4++) o4 = s4[r4], t5.includes(o4) || {}.propertyIsEnumerable.call(e3, o4) && (i4[o4] = e3[o4]); } return i4; } @@ -43166,8 +36980,8 @@ function useStateManager(_ref3) { function _extends() { return _extends = Object.assign ? Object.assign.bind() : function(n3) { for (var e3 = 1; e3 < arguments.length; e3++) { - var t4 = arguments[e3]; - for (var r4 in t4) ({}).hasOwnProperty.call(t4, r4) && (n3[r4] = t4[r4]); + var t5 = arguments[e3]; + for (var r4 in t5) ({}).hasOwnProperty.call(t5, r4) && (n3[r4] = t5[r4]); } return n3; }, _extends.apply(null, arguments); @@ -43180,54 +36994,54 @@ function _classCallCheck(a4, n3) { // node_modules/@babel/runtime/helpers/esm/createClass.js function _defineProperties(e3, r4) { - for (var t4 = 0; t4 < r4.length; t4++) { - var o4 = r4[t4]; + for (var t5 = 0; t5 < r4.length; t5++) { + var o4 = r4[t5]; o4.enumerable = o4.enumerable || false, o4.configurable = true, "value" in o4 && (o4.writable = true), Object.defineProperty(e3, toPropertyKey(o4.key), o4); } } -function _createClass(e3, r4, t4) { - return r4 && _defineProperties(e3.prototype, r4), t4 && _defineProperties(e3, t4), Object.defineProperty(e3, "prototype", { +function _createClass(e3, r4, t5) { + return r4 && _defineProperties(e3.prototype, r4), t5 && _defineProperties(e3, t5), Object.defineProperty(e3, "prototype", { writable: false }), e3; } // node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js -function _setPrototypeOf(t4, e3) { - return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t5, e4) { - return t5.__proto__ = e4, t5; - }, _setPrototypeOf(t4, e3); +function _setPrototypeOf(t5, e3) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t6, e4) { + return t6.__proto__ = e4, t6; + }, _setPrototypeOf(t5, e3); } // node_modules/@babel/runtime/helpers/esm/inherits.js -function _inherits(t4, e3) { +function _inherits(t5, e3) { if ("function" != typeof e3 && null !== e3) throw new TypeError("Super expression must either be null or a function"); - t4.prototype = Object.create(e3 && e3.prototype, { + t5.prototype = Object.create(e3 && e3.prototype, { constructor: { - value: t4, + value: t5, writable: true, configurable: true } - }), Object.defineProperty(t4, "prototype", { + }), Object.defineProperty(t5, "prototype", { writable: false - }), e3 && _setPrototypeOf(t4, e3); + }), e3 && _setPrototypeOf(t5, e3); } // node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js -function _getPrototypeOf(t4) { - return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t5) { - return t5.__proto__ || Object.getPrototypeOf(t5); - }, _getPrototypeOf(t4); +function _getPrototypeOf(t5) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t6) { + return t6.__proto__ || Object.getPrototypeOf(t6); + }, _getPrototypeOf(t5); } // node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js function _isNativeReflectConstruct() { try { - var t4 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { + var t5 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); - } catch (t5) { + } catch (t6) { } return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() { - return !!t4; + return !!t5; })(); } @@ -43238,17 +37052,17 @@ function _assertThisInitialized(e3) { } // node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js -function _possibleConstructorReturn(t4, e3) { +function _possibleConstructorReturn(t5, e3) { if (e3 && ("object" == _typeof(e3) || "function" == typeof e3)) return e3; if (void 0 !== e3) throw new TypeError("Derived constructors may only return object or undefined"); - return _assertThisInitialized(t4); + return _assertThisInitialized(t5); } // node_modules/@babel/runtime/helpers/esm/createSuper.js -function _createSuper(t4) { +function _createSuper(t5) { var r4 = _isNativeReflectConstruct(); return function() { - var e3, o4 = _getPrototypeOf(t4); + var e3, o4 = _getPrototypeOf(t5); if (r4) { var s4 = _getPrototypeOf(this).constructor; e3 = Reflect.construct(o4, arguments, s4); @@ -43381,7 +37195,7 @@ function hash(value, length2) { function trim(value) { return value.trim(); } -function match2(value, pattern) { +function match3(value, pattern) { return (value = pattern.exec(value)) ? value[0] : value; } function replace(value, pattern, replacement) { @@ -43390,8 +37204,8 @@ function replace(value, pattern, replacement) { function indexof(value, search) { return value.indexOf(search); } -function charat(value, index) { - return value.charCodeAt(index) | 0; +function charat(value, index2) { + return value.charCodeAt(index2) | 0; } function substr(value, begin2, end2) { return value.slice(begin2, end2); @@ -43402,11 +37216,11 @@ function strlen(value) { function sizeof(value) { return value.length; } -function append(value, array) { - return array.push(value), value; +function append(value, array2) { + return array2.push(value), value; } -function combine(array, callback) { - return array.map(callback).join(""); +function combine(array2, callback) { + return array2.map(callback).join(""); } // node_modules/stylis/src/Tokenizer.js @@ -43431,7 +37245,7 @@ function prev() { column = 1, line--; return character; } -function next() { +function next2() { character = position < length ? charat(characters, position++) : 0; if (column++, character === 10) column = 1, line++; @@ -43496,19 +37310,19 @@ function delimit(type) { function whitespace2(type) { while (character = peek()) if (character < 33) - next(); + next2(); else break; return token(type) > 2 || token(character) > 3 ? "" : " "; } -function escaping(index, count) { - while (--count && next()) +function escaping(index2, count) { + while (--count && next2()) if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) break; - return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32)); + return slice(index2, caret() + (count < 6 && peek() == 32 && next2() == 32)); } function delimiter(type) { - while (next()) + while (next2()) switch (character) { // ] ) " ' case type: @@ -43526,31 +37340,31 @@ function delimiter(type) { break; // \ case 92: - next(); + next2(); break; } return position; } -function commenter(type, index) { - while (next()) +function commenter(type, index2) { + while (next2()) if (type + character === 47 + 10) break; else if (type + character === 42 + 42 && peek() === 47) break; - return "/*" + slice(index, position - 1) + "*" + from(type === 47 ? type : next()); + return "/*" + slice(index2, position - 1) + "*" + from(type === 47 ? type : next2()); } -function identifier(index) { +function identifier(index2) { while (!token(peek())) - next(); - return slice(index, position); + next2(); + return slice(index2, position); } // node_modules/stylis/src/Parser.js function compile(value) { - return dealloc(parse2("", null, null, null, [""], value = alloc(value), 0, [0], value)); + return dealloc(parse3("", null, null, null, [""], value = alloc(value), 0, [0], value)); } -function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) { - var index = 0; +function parse3(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) { + var index2 = 0; var offset3 = 0; var length2 = pseudo; var atrule = 0; @@ -43566,7 +37380,7 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl var reference = rule; var characters2 = type; while (scanning) - switch (previous = character2, character2 = next()) { + switch (previous = character2, character2 = next2()) { // ( case 40: if (previous != 108 && charat(characters2, length2 - 1) == 58) { @@ -43596,7 +37410,7 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl switch (peek()) { case 42: case 47: - append(comment(commenter(next(), caret()), root, parent), declarations); + append(comment(commenter(next2(), caret()), root, parent), declarations); break; default: characters2 += "/"; @@ -43604,7 +37418,7 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl break; // { case 123 * variable: - points[index++] = strlen(characters2) * ampersand; + points[index2++] = strlen(characters2) * ampersand; // } ; \0 case 125 * variable: case 59: @@ -43625,10 +37439,10 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl characters2 += ";"; // { rule/at-rule default: - append(reference = ruleset(characters2, root, parent, index, offset3, rules, points, type, props = [], children = [], length2), rulesets); + append(reference = ruleset(characters2, root, parent, index2, offset3, rules, points, type, props = [], children = [], length2), rulesets); if (character2 === 123) if (offset3 === 0) - parse2(characters2, root, reference, reference, props, rulesets, length2, points, children); + parse3(characters2, root, reference, reference, props, rulesets, length2, points, children); else switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) { // d l m s @@ -43636,13 +37450,13 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl case 108: case 109: case 115: - parse2(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length2), children), rules, children, length2, points, rule ? props : children); + parse3(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length2), children), rules, children, length2, points, rule ? props : children); break; default: - parse2(characters2, reference, reference, reference, [""], children, 0, points, children); + parse3(characters2, reference, reference, reference, [""], children, 0, points, children); } } - index = offset3 = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo; + index2 = offset3 = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo; break; // : case 58: @@ -43661,12 +37475,12 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl break; // , case 44: - points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1; + points[index2++] = (strlen(characters2) - 1) * ampersand, ampersand = 1; break; // @ case 64: if (peek() === 45) - characters2 += delimit(next()); + characters2 += delimit(next2()); atrule = peek(), offset3 = length2 = strlen(type = characters2 += identifier(caret())), character2++; break; // - @@ -43677,11 +37491,11 @@ function parse2(value, root, parent, rule, rules, rulesets, pseudo, points, decl } return rulesets; } -function ruleset(value, root, parent, index, offset3, rules, points, type, props, children, length2) { +function ruleset(value, root, parent, index2, offset3, rules, points, type, props, children, length2) { var post = offset3 - 1; var rule = offset3 === 0 ? rules : [""]; var size2 = sizeof(rule); - for (var i4 = 0, j4 = 0, k4 = 0; i4 < index; ++i4) + for (var i4 = 0, j4 = 0, k4 = 0; i4 < index2; ++i4) for (var x4 = 0, y4 = substr(value, post + 1, post = abs(j4 = points[i4])), z4 = value; x4 < size2; ++x4) if (z4 = trim(j4 > 0 ? rule[x4] + " " + y4 : replace(y4, /&\f/g, rule[x4]))) props[k4++] = z4; @@ -43702,7 +37516,7 @@ function serialize(children, callback) { output += callback(children[i4], i4, children, callback) || ""; return output; } -function stringify(element, index, children, callback) { +function stringify(element, index2, children, callback) { switch (element.type) { case LAYER: if (element.children.length) break; @@ -43722,10 +37536,10 @@ function stringify(element, index, children, callback) { // node_modules/stylis/src/Middleware.js function middleware(collection) { var length2 = sizeof(collection); - return function(element, index, children, callback) { + return function(element, index2, children, callback) { var output = ""; for (var i4 = 0; i4 < length2; i4++) - output += collection[i4](element, index, children, callback) || ""; + output += collection[i4](element, index2, children, callback) || ""; return output; }; } @@ -43738,19 +37552,6 @@ function rulesheet(callback) { }; } -// node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js -var weakMemoize = function weakMemoize2(func) { - var cache = /* @__PURE__ */ new WeakMap(); - return function(arg) { - if (cache.has(arg)) { - return cache.get(arg); - } - var ret = func(arg); - cache.set(arg, ret); - return ret; - }; -}; - // node_modules/@emotion/memoize/dist/emotion-memoize.esm.js function memoize(fn2) { var cache = /* @__PURE__ */ Object.create(null); @@ -43760,49 +37561,48 @@ function memoize(fn2) { }; } -// node_modules/@emotion/cache/dist/emotion-cache.esm.js -var isBrowser = typeof document !== "undefined"; -var identifierWithPointTracking = function identifierWithPointTracking2(begin2, points, index) { +// node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js +var identifierWithPointTracking = function identifierWithPointTracking2(begin2, points, index2) { var previous = 0; var character2 = 0; while (true) { previous = character2; character2 = peek(); if (previous === 38 && character2 === 12) { - points[index] = 1; + points[index2] = 1; } if (token(character2)) { break; } - next(); + next2(); } return slice(begin2, position); }; var toRules = function toRules2(parsed, points) { - var index = -1; + var index2 = -1; var character2 = 44; do { switch (token(character2)) { case 0: if (character2 === 38 && peek() === 12) { - points[index] = 1; + points[index2] = 1; } - parsed[index] += identifierWithPointTracking(position - 1, points, index); + parsed[index2] += identifierWithPointTracking(position - 1, points, index2); break; case 2: - parsed[index] += delimit(character2); + parsed[index2] += delimit(character2); break; case 4: if (character2 === 44) { - parsed[++index] = peek() === 58 ? "&\f" : ""; - points[index] = parsed[index].length; + parsed[++index2] = peek() === 58 ? "&\f" : ""; + points[index2] = parsed[index2].length; break; } // fallthrough default: - parsed[index] += from(character2); + parsed[index2] += from(character2); } - } while (character2 = next()); + } while (character2 = next2()); return parsed; }; var getRules = function getRules2(value, points) { @@ -43992,7 +37792,7 @@ function prefix(value, length2) { } return value; } -var prefixer = function prefixer2(element, index, children, callback) { +var prefixer = function prefixer2(element, index2, children, callback) { if (element.length > -1) { if (!element["return"]) switch (element.type) { case DECLARATION: @@ -44004,7 +37804,7 @@ var prefixer = function prefixer2(element, index, children, callback) { })], callback); case RULESET: if (element.length) return combine(element.props, function(value) { - switch (match2(value, /(::plac\w+|:read-\w+)/)) { + switch (match3(value, /(::plac\w+|:read-\w+)/)) { // :read-(only|write) case ":read-only": case ":read-write": @@ -44026,18 +37826,10 @@ var prefixer = function prefixer2(element, index, children, callback) { } } }; -var getServerStylisCache = isBrowser ? void 0 : weakMemoize(function() { - return memoize(function() { - var cache = {}; - return function(name) { - return cache[name]; - }; - }); -}); var defaultStylisPlugins = [prefixer]; var createCache = function createCache2(options2) { var key = options2.key; - if (isBrowser && key === "css") { + if (key === "css") { var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); Array.prototype.forEach.call(ssrStyles, function(node2) { var dataEmotionAttribute = node2.getAttribute("data-emotion"); @@ -44052,7 +37844,7 @@ var createCache = function createCache2(options2) { var inserted = {}; var container; var nodesToHydrate = []; - if (isBrowser) { + { container = options2.container || document.head; Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which @@ -44069,7 +37861,7 @@ var createCache = function createCache2(options2) { } var _insert; var omnipresentPlugins = [compat, removeLabel]; - if (isBrowser) { + { var currentSheet; var finalizingPlugins = [stringify, rulesheet(function(rule) { currentSheet.insert(rule); @@ -44085,36 +37877,6 @@ var createCache = function createCache2(options2) { cache.inserted[serialized.name] = true; } }; - } else { - var _finalizingPlugins = [stringify]; - var _serializer = middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins)); - var _stylis = function _stylis2(styles2) { - return serialize(compile(styles2), _serializer); - }; - var serverStylisCache = getServerStylisCache(stylisPlugins)(key); - var getRules3 = function getRules4(selector, serialized) { - var name = serialized.name; - if (serverStylisCache[name] === void 0) { - serverStylisCache[name] = _stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles); - } - return serverStylisCache[name]; - }; - _insert = function _insert2(selector, serialized, sheet, shouldCache) { - var name = serialized.name; - var rules = getRules3(selector, serialized); - if (cache.compat === void 0) { - if (shouldCache) { - cache.inserted[name] = true; - } - return rules; - } else { - if (shouldCache) { - cache.inserted[name] = rules; - } else { - return rules; - } - } - }; } var cache = { key, @@ -44135,8 +37897,8 @@ var createCache = function createCache2(options2) { return cache; }; -// node_modules/@emotion/utils/dist/emotion-utils.esm.js -var isBrowser2 = typeof document !== "undefined"; +// node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js +var isBrowser = true; function getRegisteredStyles(registered, registeredStyles, classNames2) { var rawClassName = ""; classNames2.split(" ").forEach(function(className) { @@ -44160,7 +37922,7 @@ var registerStyles = function registerStyles2(cache, serialized, isStringTag) { // in node since emotion-server relies on whether a style is in // the registered cache to know whether a style is global or not // also, note that this check will be dead code eliminated in the browser - isBrowser2 === false && cache.compat !== void 0) && cache.registered[className] === void 0 + isBrowser === false) && cache.registered[className] === void 0 ) { cache.registered[className] = serialized.styles; } @@ -44169,18 +37931,11 @@ var insertStyles = function insertStyles2(cache, serialized, isStringTag) { registerStyles(cache, serialized, isStringTag); var className = cache.key + "-" + serialized.name; if (cache.inserted[serialized.name] === void 0) { - var stylesForSSR = ""; var current = serialized; do { - var maybeStyles = cache.insert(serialized === current ? "." + className : "", current, cache.sheet, true); - if (!isBrowser2 && maybeStyles !== void 0) { - stylesForSSR += maybeStyles; - } + cache.insert(serialized === current ? "." + className : "", current, cache.sheet, true); current = current.next; } while (current !== void 0); - if (!isBrowser2 && stylesForSSR.length !== 0) { - return stylesForSSR; - } } }; @@ -44284,7 +38039,7 @@ var processStyleValue = function processStyleValue2(key, value) { case "animation": case "animationName": { if (typeof value === "string") { - return value.replace(animationRegex, function(match3, p1, p22) { + return value.replace(animationRegex, function(match4, p1, p22) { cursor = { name: p1, styles: p22, @@ -44325,15 +38080,15 @@ function handleInterpolation(mergedProps, registered, interpolation) { } var serializedStyles = interpolation; if (serializedStyles.styles !== void 0) { - var next2 = serializedStyles.next; - if (next2 !== void 0) { - while (next2 !== void 0) { + var next3 = serializedStyles.next; + if (next3 !== void 0) { + while (next3 !== void 0) { cursor = { - name: next2.name, - styles: next2.styles, + name: next3.name, + styles: next3.styles, next: cursor }; - next2 = next2.next; + next3 = next3.next; } } var styles2 = serializedStyles.styles + ";"; @@ -44428,9 +38183,9 @@ function serializeStyles(args, registered, mergedProps) { } labelPattern.lastIndex = 0; var identifierName = ""; - var match3; - while ((match3 = labelPattern.exec(styles2)) !== null) { - identifierName += "-" + match3[1]; + var match4; + while ((match4 = labelPattern.exec(styles2)) !== null) { + identifierName += "-" + match4[1]; } var name = murmur2(styles2) + identifierName; return { @@ -44440,17 +38195,15 @@ function serializeStyles(args, registered, mergedProps) { }; } -// node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.esm.js -var isBrowser3 = typeof document !== "undefined"; +// node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js var syncFallback = function syncFallback2(create) { return create(); }; var useInsertionEffect = Sn ? Sn : false; -var useInsertionEffectAlwaysWithSyncFallback = !isBrowser3 ? syncFallback : useInsertionEffect || syncFallback; +var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback; -// node_modules/@emotion/react/dist/emotion-element-b4c8b265.esm.js +// node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js var isDevelopment3 = false; -var isBrowser4 = typeof document !== "undefined"; var EmotionCacheContext = /* @__PURE__ */ G( // we're doing this to avoid preconstruct's dead code elimination in this one case // because this module is primarily intended for the browser and node @@ -44469,23 +38222,6 @@ var withEmotionCache = function withEmotionCache2(func) { return func(props, cache, ref); }); }; -if (!isBrowser4) { - withEmotionCache = function withEmotionCache3(func) { - return function(props) { - var cache = x2(EmotionCacheContext); - if (cache === null) { - cache = createCache({ - key: "css" - }); - return /* @__PURE__ */ _(EmotionCacheContext.Provider, { - value: cache - }, func(props, cache)); - } else { - return func(props, cache); - } - }; - }; -} var ThemeContext = /* @__PURE__ */ G({}); var hasOwn = {}.hasOwnProperty; var typePropName = "__EMOTION_TYPE_PLEASE_DO_NOT_USE__"; @@ -44502,21 +38238,9 @@ var createEmotionProps = function createEmotionProps2(type, props) { var Insertion = function Insertion2(_ref3) { var cache = _ref3.cache, serialized = _ref3.serialized, isStringTag = _ref3.isStringTag; registerStyles(cache, serialized, isStringTag); - var rules = useInsertionEffectAlwaysWithSyncFallback(function() { + useInsertionEffectAlwaysWithSyncFallback(function() { return insertStyles(cache, serialized, isStringTag); }); - if (!isBrowser4 && rules !== void 0) { - var _ref23; - var serializedNames = serialized.name; - var next2 = serialized.next; - while (next2 !== void 0) { - serializedNames += " " + next2.name; - next2 = next2.next; - } - return /* @__PURE__ */ _("style", (_ref23 = {}, _ref23["data-emotion"] = cache.key + " " + serializedNames, _ref23.dangerouslySetInnerHTML = { - __html: rules - }, _ref23.nonce = cache.sheet.nonce, _ref23)); - } return null; }; var Emotion = /* @__PURE__ */ withEmotionCache( @@ -44555,8 +38279,7 @@ var Emotion = /* @__PURE__ */ withEmotionCache( ); var Emotion$1 = Emotion; -// node_modules/@emotion/react/dist/emotion-react.esm.js -var import_extends2 = __toESM(require_extends()); +// node_modules/@emotion/react/dist/emotion-react.browser.esm.js var import_hoist_non_react_statics = __toESM(require_hoist_non_react_statics_cjs()); var jsx = function jsx2(type, props) { var args = arguments; @@ -44592,10 +38315,10 @@ var keyframes = function keyframes2() { }; // node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js -function _taggedTemplateLiteral(e3, t4) { - return t4 || (t4 = e3.slice(0)), Object.freeze(Object.defineProperties(e3, { +function _taggedTemplateLiteral(e3, t5) { + return t5 || (t5 = e3.slice(0)), Object.freeze(Object.defineProperties(e3, { raw: { - value: Object.freeze(t4) + value: Object.freeze(t5) } })); } @@ -44990,8 +38713,11 @@ function autoUpdate(reference, floating, update, options2) { }; } +// node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +var index = _2; +var use_isomorphic_layout_effect_browser_esm_default = index; + // node_modules/react-select/dist/index-a301f526.esm.js -var import_use_isomorphic_layout_effect = __toESM(require_use_isomorphic_layout_effect_cjs()); var _excluded$4 = ["className", "clearValue", "cx", "getStyles", "getClassNames", "getValue", "hasValue", "isMulti", "isRtl", "options", "selectOption", "selectProps", "setValue", "theme"]; var noop = function noop2() { }; @@ -45004,14 +38730,14 @@ function applyPrefixToName(prefix2, name) { return prefix2 + "__" + name; } } -function classNames(prefix2, state) { +function classNames(prefix2, state2) { for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { classNameList[_key - 2] = arguments[_key]; } var arr = [].concat(classNameList); - if (state && prefix2) { - for (var key in state) { - if (state.hasOwnProperty(key) && state[key]) { + if (state2 && prefix2) { + for (var key in state2) { + if (state2.hasOwnProperty(key) && state2[key]) { arr.push("".concat(applyPrefixToName(prefix2, key))); } } @@ -45090,8 +38816,8 @@ function getScrollParent(element) { } return document.documentElement; } -function easeOutCubic(t4, b3, c4, d3) { - return c4 * ((t4 = t4 / d3 - 1) * t4 * t4 + 1) + b3; +function easeOutCubic(t5, b3, c4, d3) { + return c4 * ((t5 = t5 / d3 - 1) * t5 * t5 + 1) + b3; } function animatedScrollTo(element, to) { var duration = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 200; @@ -45311,11 +39037,11 @@ var coercePlacement = function coercePlacement2(p3) { return p3 === "auto" ? "bottom" : p3; }; var menuCSS = function menuCSS2(_ref23, unstyled) { - var _objectSpread22; + var _objectSpread23; var placement = _ref23.placement, _ref2$theme = _ref23.theme, borderRadius2 = _ref2$theme.borderRadius, spacing2 = _ref2$theme.spacing, colors2 = _ref2$theme.colors; - return _objectSpread2((_objectSpread22 = { + return _objectSpread2((_objectSpread23 = { label: "menu" - }, _defineProperty(_objectSpread22, alignToControl(placement), "100%"), _defineProperty(_objectSpread22, "position", "absolute"), _defineProperty(_objectSpread22, "width", "100%"), _defineProperty(_objectSpread22, "zIndex", 1), _objectSpread22), unstyled ? {} : { + }, _defineProperty(_objectSpread23, alignToControl(placement), "100%"), _defineProperty(_objectSpread23, "position", "absolute"), _defineProperty(_objectSpread23, "width", "100%"), _defineProperty(_objectSpread23, "zIndex", 1), _objectSpread23), unstyled ? {} : { backgroundColor: colors2.neutral0, borderRadius: borderRadius2, boxShadow: "0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)", @@ -45331,12 +39057,12 @@ var MenuPlacer = function MenuPlacer2(props) { var _useState = h2(maxMenuHeight), _useState2 = _slicedToArray(_useState, 2), maxHeight = _useState2[0], setMaxHeight = _useState2[1]; var _useState3 = h2(null), _useState4 = _slicedToArray(_useState3, 2), placement = _useState4[0], setPlacement = _useState4[1]; var controlHeight2 = theme.spacing.controlHeight; - (0, import_use_isomorphic_layout_effect.default)(function() { + use_isomorphic_layout_effect_browser_esm_default(function() { var menuEl = ref.current; if (!menuEl) return; var isFixedPosition = menuPosition === "fixed"; var shouldScroll = menuShouldScrollIntoView && !isFixedPosition; - var state = getMenuPlacement({ + var state2 = getMenuPlacement({ maxHeight: maxMenuHeight, menuEl, minHeight: minMenuHeight, @@ -45345,9 +39071,9 @@ var MenuPlacer = function MenuPlacer2(props) { isFixedPosition, controlHeight: controlHeight2 }); - setMaxHeight(state.maxHeight); - setPlacement(state.placement); - setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement); + setMaxHeight(state2.maxHeight); + setPlacement(state2.placement); + setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state2.placement); }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight2]); return children({ ref, @@ -45452,7 +39178,7 @@ var MenuPortal = function MenuPortal2(props) { }); } }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]); - (0, import_use_isomorphic_layout_effect.default)(function() { + use_isomorphic_layout_effect_browser_esm_default(function() { updateComputedPosition(); }, [updateComputedPosition]); var runAutoUpdate = q2(function() { @@ -45466,7 +39192,7 @@ var MenuPortal = function MenuPortal2(props) { }); } }, [controlElement, updateComputedPosition]); - (0, import_use_isomorphic_layout_effect.default)(function() { + use_isomorphic_layout_effect_browser_esm_default(function() { runAutoUpdate(); }, [runAutoUpdate]); var setMenuPortalElement = q2(function(menuPortalElement) { @@ -45546,7 +39272,7 @@ var _excluded2 = ["innerProps", "isRtl", "size"]; function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } -var _ref2 = process.env.NODE_ENV === "production" ? { +var _ref2 = false ? { name: "8mmkcg", styles: "display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0" } : { @@ -45658,7 +39384,7 @@ var LoadingDot = function LoadingDot2(_ref6) { height: "1em", verticalAlign: "top", width: "1em" - }, process.env.NODE_ENV === "production" ? "" : ";label:LoadingDot;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */") + }, false ? "" : ";label:LoadingDot;", false ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */") }); }; var LoadingIndicator = function LoadingIndicator2(_ref7) { @@ -46014,12 +39740,62 @@ var defaultComponents = function defaultComponents2(props) { return _objectSpread2(_objectSpread2({}, components), props.components); }; +// node_modules/memoize-one/dist/memoize-one.esm.js +var safeIsNaN = Number.isNaN || function ponyfill(value) { + return typeof value === "number" && value !== value; +}; +function isEqual(first, second) { + if (first === second) { + return true; + } + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + return false; +} +function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i4 = 0; i4 < newInputs.length; i4++) { + if (!isEqual(newInputs[i4], lastInputs[i4])) { + return false; + } + } + return true; +} +function memoizeOne(resultFn, isEqual2) { + if (isEqual2 === void 0) { + isEqual2 = areInputsEqual; + } + var cache = null; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (cache && cache.lastThis === this && isEqual2(newArgs, cache.lastArgs)) { + return cache.lastResult; + } + var lastResult = resultFn.apply(this, newArgs); + cache = { + lastResult, + lastArgs: newArgs, + lastThis: this + }; + return lastResult; + } + memoized.clear = function clear() { + cache = null; + }; + return memoized; +} + // node_modules/react-select/dist/Select-1fd588c9.esm.js -var import_memoize_one = __toESM(require_memoize_one_cjs()); function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } -var _ref = process.env.NODE_ENV === "production" ? { +var _ref = false ? { name: "7pg0cj-a11yText", styles: "label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap" } : { @@ -46450,11 +40226,11 @@ var diacritic; var j4; var i4; var stripDiacritics = function stripDiacritics2(str) { - return str.replace(anyDiacritic, function(match3) { - return diacriticToBase[match3]; + return str.replace(anyDiacritic, function(match4) { + return diacriticToBase[match4]; }); }; -var memoizedStripDiacriticsForInput = (0, import_memoize_one.default)(stripDiacritics); +var memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics); var trimString = function trimString2(str) { return str.replace(/^\s+|\s+$/g, ""); }; @@ -46471,17 +40247,17 @@ var createFilter = function createFilter2(config2) { trim: true, matchFrom: "any" }, config2), ignoreCase = _ignoreCase$ignoreAcc.ignoreCase, ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents, stringify2 = _ignoreCase$ignoreAcc.stringify, trim2 = _ignoreCase$ignoreAcc.trim, matchFrom = _ignoreCase$ignoreAcc.matchFrom; - var input = trim2 ? trimString(rawInput) : rawInput; + var input2 = trim2 ? trimString(rawInput) : rawInput; var candidate = trim2 ? trimString(stringify2(option)) : stringify2(option); if (ignoreCase) { - input = input.toLowerCase(); + input2 = input2.toLowerCase(); candidate = candidate.toLowerCase(); } if (ignoreAccents) { - input = memoizedStripDiacriticsForInput(input); + input2 = memoizedStripDiacriticsForInput(input2); candidate = stripDiacritics(candidate); } - return matchFrom === "start" ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1; + return matchFrom === "start" ? candidate.substr(0, input2.length) === input2 : candidate.indexOf(input2) > -1; }; }; var _excluded4 = ["innerRef"]; @@ -46511,7 +40287,7 @@ function DummyInput(_ref3) { opacity: 0, position: "relative", transform: "scale(.01)" - }, process.env.NODE_ENV === "production" ? "" : ";label:DummyInput;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */") + }, false ? "" : ";label:DummyInput;", false ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */") })); } var cancelScroll = function cancelScroll2(event) { @@ -46705,7 +40481,7 @@ var blurSelectInput = function blurSelectInput2(event) { var element = event.target; return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur(); }; -var _ref2$1 = process.env.NODE_ENV === "production" ? { +var _ref2$1 = false ? { name: "1kfdb0e", styles: "position:fixed;left:0;bottom:0;right:0;top:0" } : { @@ -46738,7 +40514,7 @@ function ScrollManager(_ref3) { function _EMOTION_STRINGIFIED_CSS_ERROR__2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } -var _ref22 = process.env.NODE_ENV === "production" ? { +var _ref22 = false ? { name: "1a0ro4n-requiredInput", styles: "label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%" } : { @@ -46899,7 +40675,7 @@ var defaultProps = { tabSelectsValue: true, unstyled: false }; -function toCategorizedOption(props, option, selectValue, index) { +function toCategorizedOption(props, option, selectValue, index2) { var isDisabled = _isOptionDisabled(props, option, selectValue); var isSelected = _isOptionSelected(props, option, selectValue); var label = getOptionLabel2(props, option); @@ -46911,7 +40687,7 @@ function toCategorizedOption(props, option, selectValue, index) { isSelected, label, value, - index + index: index2 }; } function buildCategorizedOptions(props, selectValue) { @@ -46975,8 +40751,8 @@ function isFocusable(props, categorizedOption) { data }, inputValue); } -function getNextFocusedValue(state, nextSelectValue) { - var focusedValue = state.focusedValue, lastSelectValue = state.selectValue; +function getNextFocusedValue(state2, nextSelectValue) { + var focusedValue = state2.focusedValue, lastSelectValue = state2.selectValue; var lastFocusedIndex = lastSelectValue.indexOf(focusedValue); if (lastFocusedIndex > -1) { var nextFocusedIndex = nextSelectValue.indexOf(focusedValue); @@ -46988,8 +40764,8 @@ function getNextFocusedValue(state, nextSelectValue) { } return null; } -function getNextFocusedOption(state, options2) { - var lastFocusedOption = state.focusedOption; +function getNextFocusedOption(state2, options2) { + var lastFocusedOption = state2.focusedOption; return lastFocusedOption && options2.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options2[0]; } var getFocusedOptionId = function getFocusedOptionId2(focusableOptionsWithIds, focusedOption) { @@ -47936,9 +41712,9 @@ var Select = /* @__PURE__ */ function(_Component) { }), placeholder); } if (isMulti) { - return selectValue.map(function(opt, index) { - var isOptionFocused = opt === focusedValue; - var key = "".concat(_this3.getOptionLabel(opt), "-").concat(_this3.getOptionValue(opt)); + return selectValue.map(function(opt2, index2) { + var isOptionFocused = opt2 === focusedValue; + var key = "".concat(_this3.getOptionLabel(opt2), "-").concat(_this3.getOptionValue(opt2)); return /* @__PURE__ */ _(MultiValue3, _extends({}, commonProps, { components: { Container: MultiValueContainer2, @@ -47948,20 +41724,20 @@ var Select = /* @__PURE__ */ function(_Component) { isFocused: isOptionFocused, isDisabled, key, - index, + index: index2, removeProps: { onClick: function onClick() { - return _this3.removeValue(opt); + return _this3.removeValue(opt2); }, onTouchEnd: function onTouchEnd() { - return _this3.removeValue(opt); + return _this3.removeValue(opt2); }, onMouseDown: function onMouseDown(e3) { e3.preventDefault(); } }, - data: opt - }), _this3.formatOptionLabel(opt, "value")); + data: opt2 + }), _this3.formatOptionLabel(opt2, "value")); }); } if (inputValue) { @@ -48182,8 +41958,8 @@ var Select = /* @__PURE__ */ function(_Component) { if (!name || isDisabled) return; if (isMulti) { if (delimiter2) { - var value = selectValue.map(function(opt) { - return _this5.getOptionValue(opt); + var value = selectValue.map(function(opt2) { + return _this5.getOptionValue(opt2); }).join(delimiter2); return /* @__PURE__ */ _("input", { name, @@ -48191,19 +41967,19 @@ var Select = /* @__PURE__ */ function(_Component) { value }); } else { - var input = selectValue.length > 0 ? selectValue.map(function(opt, i4) { + var input2 = selectValue.length > 0 ? selectValue.map(function(opt2, i4) { return /* @__PURE__ */ _("input", { key: "i-".concat(i4), name, type: "hidden", - value: _this5.getOptionValue(opt) + value: _this5.getOptionValue(opt2) }); }) : /* @__PURE__ */ _("input", { name, type: "hidden", value: "" }); - return /* @__PURE__ */ _("div", null, input); + return /* @__PURE__ */ _("div", null, input2); } } else { var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : ""; @@ -48263,16 +42039,16 @@ var Select = /* @__PURE__ */ function(_Component) { } }], [{ key: "getDerivedStateFromProps", - value: function getDerivedStateFromProps(props, state) { - var prevProps = state.prevProps, clearFocusValueOnUpdate = state.clearFocusValueOnUpdate, inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate, ariaSelection = state.ariaSelection, isFocused = state.isFocused, prevWasFocused = state.prevWasFocused, instancePrefix = state.instancePrefix; + value: function getDerivedStateFromProps(props, state2) { + var prevProps = state2.prevProps, clearFocusValueOnUpdate = state2.clearFocusValueOnUpdate, inputIsHiddenAfterUpdate = state2.inputIsHiddenAfterUpdate, ariaSelection = state2.ariaSelection, isFocused = state2.isFocused, prevWasFocused = state2.prevWasFocused, instancePrefix = state2.instancePrefix; var options2 = props.options, value = props.value, menuIsOpen = props.menuIsOpen, inputValue = props.inputValue, isMulti = props.isMulti; var selectValue = cleanValue(value); var newMenuOptionsState = {}; if (prevProps && (value !== prevProps.value || options2 !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) { var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : []; var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), "".concat(instancePrefix, "-option")) : []; - var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null; - var focusedOption = getNextFocusedOption(state, focusableOptions); + var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state2, selectValue) : null; + var focusedOption = getNextFocusedOption(state2, focusableOptions); var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption); newMenuOptionsState = { selectValue, @@ -48312,18 +42088,6 @@ var Select = /* @__PURE__ */ function(_Component) { Select.defaultProps = defaultProps; // node_modules/react-select/dist/react-select.esm.js -var import_objectSpread24 = __toESM(require_objectSpread2()); -var import_slicedToArray3 = __toESM(require_slicedToArray()); -var import_objectWithoutProperties4 = __toESM(require_objectWithoutProperties()); -var import_classCallCheck2 = __toESM(require_classCallCheck()); -var import_createClass2 = __toESM(require_createClass()); -var import_inherits2 = __toESM(require_inherits()); -var import_createSuper2 = __toESM(require_createSuper()); -var import_toConsumableArray2 = __toESM(require_toConsumableArray()); -var import_typeof5 = __toESM(require_typeof()); -var import_taggedTemplateLiteral2 = __toESM(require_taggedTemplateLiteral()); -var import_defineProperty3 = __toESM(require_defineProperty()); -var import_use_isomorphic_layout_effect2 = __toESM(require_use_isomorphic_layout_effect_cjs()); var StateManagedSelect = /* @__PURE__ */ w3(function(props, ref) { var baseSelectProps = useStateManager(props); return /* @__PURE__ */ _(Select, _extends({ @@ -48335,7 +42099,7 @@ var StateManagedSelect$1 = StateManagedSelect; // src/ui/fields/boolean-field.tsx function BooleanEditable(props) { var _a; - const [state, dispatch] = useEditableDispatch({ + const [state2, dispatch] = useEditableDispatch({ content: (_a = props.value) != null ? _a : props.defaultValue, updater: props.updater }); @@ -48345,9 +42109,9 @@ function BooleanEditable(props) { dispatch({ type: "content-changed", newValue }); dispatch({ type: "commit", newValue }); }, - [state.content, state, props.value] + [state2.content, state2, props.value] ); - return /* @__PURE__ */ u3("div", { onClick: onChange3, className: `checkbox-container${state.content ? " is-enabled" : ""}`, children: /* @__PURE__ */ u3("input", { type: "checkbox" }) }); + return /* @__PURE__ */ u3("div", { onClick: onChange3, className: `checkbox-container${state2.content ? " is-enabled" : ""}`, children: /* @__PURE__ */ u3("input", { type: "checkbox" }) }); } // src/ui/fields/progress-field.tsx @@ -48384,21 +42148,21 @@ function ProgressEditable(props) { // src/ui/fields/rating.tsx function RatingEditable({ value, updater, config: config2, defaultValue }) { - const [state, dispatch] = useEditableDispatch({ + const [state2, dispatch] = useEditableDispatch({ content: value != null ? value : defaultValue, updater }); const parsedValue = T2(() => { - if (typeof state.content == "string") { - if (state.content.contains("/")) { - let split = state.content.split("/"); + if (typeof state2.content == "string") { + if (state2.content.contains("/")) { + let split = state2.content.split("/"); return parseInt(split[0]) / parseInt(split[1]); } - } else if (typeof state.content == "number") { - return Math.min(state.content, 5); + } else if (typeof state2.content == "number") { + return Math.min(state2.content, 5); } return 0; - }, [state.content]); + }, [state2.content]); const stars = T2(() => { var _a; let r4 = []; @@ -48406,16 +42170,16 @@ function RatingEditable({ value, updater, config: config2, defaultValue }) { let clickCb = useStableCallback(() => { var _a2; let newValue = null; - if (typeof state.content == "string") { - if (state.content.contains("/")) { + if (typeof state2.content == "string") { + if (state2.content.contains("/")) { newValue = `${i4 + 1}/5`; } - } else if (typeof state.content == "number") { + } else if (typeof state2.content == "number") { newValue = Math.min(i4 + 1, (_a2 = config2 == null ? void 0 : config2.max) != null ? _a2 : 5); } dispatch({ type: "content-changed", newValue: newValue || i4 + 1 }); dispatch({ type: "commit", newValue: newValue || i4 + 1 }); - }, [state, parsedValue, i4]); + }, [state2, parsedValue, i4]); let classes = ["datacore-rating-star"]; classes.push(i4 < parsedValue ? "filled" : "empty"); r4.push( @@ -48423,7 +42187,7 @@ function RatingEditable({ value, updater, config: config2, defaultValue }) { ); } return r4; - }, [parsedValue, state]); + }, [parsedValue, state2]); return /* @__PURE__ */ u3("span", { className: "datacore-rating", children: stars }); } @@ -48476,23 +42240,27 @@ async function rewriteTask(vault, core, task, desiredStatus, desiredText) { let hasRN = rawFiletext.contains("\r"); let filetext = rawFiletext.split(/\r\n|\r|\n/u); if (filetext.length < task.$line) return; - let match3 = LIST_ITEM_REGEX.exec(filetext[task.$line]); - if (!match3 || ((_a = match3[2]) == null ? void 0 : _a.length) == 0) return; + let match4 = LIST_ITEM_REGEX.exec(filetext[task.$line]); + if (!match4 || ((_a = match4[2]) == null ? void 0 : _a.length) == 0) return; let taskTextParts = task.$text.split("\n"); const statusPart = task instanceof MarkdownTaskItem ? `[${desiredStatus}]` : ""; let initialSpacing = /^[\s>]*/u.exec(filetext[task.$line])[0]; + let cnt = 0; if (desiredText) { let desiredParts = desiredText.split("\n"); let newTextLines = [`${initialSpacing}${task.$symbol} ${statusPart} ${desiredParts[0]}`].concat( - desiredParts.slice(1).map((l4) => initialSpacing + " " + l4.trimStart()) + desiredParts.slice(1).map((l4) => initialSpacing + " " + l4.trimStart()) ); filetext.splice(task.$line, task.$text.split("\n").length, ...newTextLines); + cnt = newTextLines.length; } else { filetext[task.$line] = `${initialSpacing}${task.$symbol} ${statusPart} ${taskTextParts[0].trim()}`; + cnt = 1; } let newText = filetext.join(hasRN ? "\r\n" : "\n"); await vault.adapter.write(task.$file, newText); const tfile = vault.getFileByPath(task.$file); + console.log(task.$file, filetext.slice(task.$position.start, task.$position.start + cnt).join("\n")); if (tfile) core.reload(tfile); } async function completeTask(completed, task, vault, core) { @@ -48504,16 +42272,16 @@ async function completeTask(completed, task, vault, core) { }; task.$elements.forEach(forEach); } - for (const t4 of tasksToComplete) { + for (const t5 of tasksToComplete) { let newText = setTaskCompletion( - t4, - t4.$text, + t5, + t5.$text, core.settings.taskCompletionUseEmojiShorthand, core.settings.taskCompletionText, core.settings.defaultDateFormat, completed ); - await rewriteTask(vault, core, t4, completed ? "x" : " ", newText); + await rewriteTask(vault, core, t5, completed ? "x" : " ", newText); } } @@ -48629,6 +42397,7 @@ async function setTaskText(app, core, text2, item) { for (let field in item.$infields) { withFields = setInlineField(withFields, field, item.$infields[field].raw); } + console.log("new text", withFields); await rewriteTask(app.vault, core, item, item.$status, withFields); } function useFinalizer(newValue, dispatch) { @@ -48663,19 +42432,19 @@ function useEditableDispatch(initial2) { const init = T2(() => typeof initial2 == "function" ? initial2() : initial2, [initial2]); return p2(editableReducer, init, (s4) => init); } -function Editable({ sourcePath, defaultRender, editor, dispatch, state }) { +function Editable({ sourcePath, defaultRender, editor, dispatch, state: state2 }) { const currentRef = A2(null); const element = T2(() => { - if (state.isEditing) { + if (state2.isEditing) { return editor; } else { if (defaultRender) return defaultRender; - else return /* @__PURE__ */ u3(Lit, { value: state.content, inline: true, sourcePath: "" }); + else return /* @__PURE__ */ u3(Lit, { value: state2.content, inline: true, sourcePath: "" }); } - }, [state.isEditing, state.content, sourcePath, defaultRender]); + }, [state2.isEditing, state2.content, sourcePath, defaultRender]); y2(() => { - dispatch && dispatch({ type: "content-changed", newValue: state.content }); - }, [state.content, state.isEditing]); + dispatch && dispatch({ type: "content-changed", newValue: state2.content }); + }, [state2.content, state2.isEditing]); return /* @__PURE__ */ u3("span", { className: "datacore-editable-outer", ref: currentRef, children: element }); } function ControlledEditable({ @@ -48686,13 +42455,14 @@ function ControlledEditable({ props, sourcePath }) { - const [state, dispatch] = useEditableDispatch(() => ({ + const [state2, dispatch] = useEditableDispatch(() => ({ updater: onUpdate, content, inline: false, isEditing: false })); - return /* @__PURE__ */ u3(Editor, { dispatch, ...props, ...state }); + const editor = /* @__PURE__ */ u3(Editor, { dispatch, ...props, ...state2 }); + return /* @__PURE__ */ u3(Editable, { dispatch, editor, sourcePath, state: state2 }); } function SelectableEditable({ isEditing, @@ -48748,7 +42518,7 @@ function DateEditable({ sourcePath, ...rest }) { - const [state, o4] = useEditableDispatch(() => { + const [state2, o4] = useEditableDispatch(() => { var _a; return { isEditing: rest.isEditing, @@ -48774,14 +42544,14 @@ function DateEditable({ }); }; const jsDate = T2(() => { - return state.content instanceof DateTime ? state.content : typeof state.content == "string" && !!state.content ? DateTime.fromJSDate(new Date(Date.parse(state.content))) : null; - }, [state.content]); + return state2.content instanceof DateTime ? state2.content : typeof state2.content == "string" && !!state2.content ? DateTime.fromJSDate(new Date(Date.parse(state2.content))) : null; + }, [state2.content]); const editorNode = /* @__PURE__ */ u3("input", { type: "date", onChange: onChange3, value: jsDate == null ? void 0 : jsDate.toFormat("yyyy-MM-dd") }); return /* @__PURE__ */ u3(Editable, { dispatch, state: rest, editor: editorNode }); } function NumberEditable(props) { const cfc = x2(CURRENT_FILE_CONTEXT); - const [state, dispatch] = useEditableDispatch(() => ({ + const [state2, dispatch] = useEditableDispatch(() => ({ isEditing: false, content: props.content, updater: props.updater, @@ -48792,7 +42562,7 @@ function NumberEditable(props) { async (evt) => { value.current = parseFloat(evt.currentTarget.value); }, - [value.current, state.content, state.updater, state.isEditing] + [value.current, state2.content, state2.updater, state2.isEditing] ); const finalize = useFinalizer(value.current, dispatch); const onInput = useStableCallback( @@ -48801,7 +42571,7 @@ function NumberEditable(props) { await finalize(); } }, - [value.current, state.updater, state.content, state.isEditing] + [value.current, state2.updater, state2.content, state2.isEditing] ); const dblClick = useStableCallback( (e3) => { @@ -48810,15 +42580,15 @@ function NumberEditable(props) { newValue: true }); }, - [value.current, state.updater, state.isEditing, state.content] + [value.current, state2.updater, state2.isEditing, state2.content] ); const readonlyEl = /* @__PURE__ */ u3(Lit, { inline: false, sourcePath: cfc, value: value.current }); const editor = /* @__PURE__ */ u3("input", { className: "datacore-editable", type: "number", onChange: onChangeCb, onKeyUp: onInput }); - return /* @__PURE__ */ u3("span", { className: "has-texteditable", onDblClick: dblClick, children: /* @__PURE__ */ u3(Editable, { dispatch, editor, defaultRender: readonlyEl, state }) }); + return /* @__PURE__ */ u3("span", { className: "has-texteditable", onDblClick: dblClick, children: /* @__PURE__ */ u3(Editable, { dispatch, editor, defaultRender: readonlyEl, state: state2 }) }); } function TextEditable(props) { const cfc = x2(CURRENT_FILE_CONTEXT); - const [state, dispatch] = useEditableDispatch(() => { + const [state2, dispatch] = useEditableDispatch(() => { var _a; return { isEditing: props.isEditing, @@ -48827,12 +42597,12 @@ function TextEditable(props) { inline: (_a = props.inline) != null ? _a : false }; }); - const text2 = A2("-"); + const text2 = A2(props.content); y2(() => { - text2.current = state.content; - dispatch({ type: "content-changed", newValue: state.content }); - }, [props.content, state.content]); - const finalize = useFinalizer(state.content, dispatch); + text2.current = state2.content; + dispatch({ type: "content-changed", newValue: state2.content }); + }, [props.content, state2.content]); + const finalize = useFinalizer(state2.content, dispatch); const onInput = useStableCallback( async (e3) => { if (props.inline) { @@ -48846,7 +42616,7 @@ function TextEditable(props) { } } }, - [text2.current, props.sourcePath, state.updater, state.content, state.isEditing] + [text2.current, props.sourcePath, state2.updater, state2.content, state2.isEditing] ); const dblClick = useStableCallback( (e3) => { @@ -48855,11 +42625,11 @@ function TextEditable(props) { newValue: true }); }, - [text2.current, props.sourcePath, state.updater, state.isEditing, state.content] + [text2.current, props.sourcePath, state2.updater, state2.isEditing, state2.content] ); const readonlyEl = /* @__PURE__ */ u3(b, { children: props.markdown ? /* @__PURE__ */ u3(Markdown, { content: text2.current, sourcePath: props.sourcePath || cfc, inline: false }) : /* @__PURE__ */ u3(Lit, { inline: false, sourcePath: props.sourcePath || cfc, value: text2.current }) }); const editor = /* @__PURE__ */ u3(UncontrolledTextEditable, { onInput, inline: props.inline, dispatch, text: text2.current }); - return /* @__PURE__ */ u3("span", { className: "has-texteditable", onDblClick: dblClick, children: /* @__PURE__ */ u3(Editable, { dispatch, editor, defaultRender: readonlyEl, state }) }); + return /* @__PURE__ */ u3("span", { className: "has-texteditable", onDblClick: dblClick, children: /* @__PURE__ */ u3(Editable, { dispatch, editor, defaultRender: readonlyEl, state: state2 }) }); } function UncontrolledTextEditable({ inline: inline2, @@ -49022,10 +42792,10 @@ function EditableListElement({ function TaskList({ rows: items, additionalStates: states, - renderer: listRenderer = (item, index) => /* @__PURE__ */ u3( + renderer: listRenderer = (item, index2) => /* @__PURE__ */ u3( EditableListElement, { - onUpdate: useListItemEditing(item), + onUpdate: useListItemEditing(item, ""), element: item.$cleantext, file: item.$file, editorProps: { markdown: true, sourcePath: item.$file }, @@ -49080,7 +42850,7 @@ function Task({ item, state: props }) { const checked = T2(() => status !== " ", [item.$status, item, status]); const eState = T2(() => { return { - updater: useListItemEditing(item), + updater: useListItemEditing(item, status), content: item.$cleantext, inline: false, isEditing: false @@ -49090,27 +42860,42 @@ function Task({ item, state: props }) { () => /* @__PURE__ */ u3(TextEditable, { sourcePath: item.$file, ...eState }), [eState.content, item, props.rows] ); - const [collapsed, setCollapsed] = h2(false); + const [collapsed, setCollapsed] = h2(true); const hasChildren = item.$elements.length > 0; - y2(() => { - setCollapsed(!collapsed); - }, []); - return /* @__PURE__ */ u3("li", { "data-testid": "datacore-task-item", className: "datacore task-list-item" + (checked ? " is-checked" : ""), "data-task": status, children: [ - /* @__PURE__ */ u3( - CollapseIndicator, - { - onClick: () => setCollapsed((c4) => !c4), - collapsed, - hasChildren - } - ), - /* @__PURE__ */ u3("input", { className: "datacore task-list-item-checkbox", type: "checkbox", checked, onClick: onChecked, onChange: (e3) => console.log(e3.currentTarget.value) }), - /* @__PURE__ */ u3("div", { children: /* @__PURE__ */ u3("div", { className: "datacore-list-item-content", children: [ - theElement, - /* @__PURE__ */ u3("div", { className: "datacore-list-item-fields", children: /* @__PURE__ */ u3(ListItemFields, { displayedFields: props.displayedFields, item }) }) - ] }) }), - hasChildren && !collapsed && /* @__PURE__ */ u3(TaskList, { ...props, rows: item.$elements }) - ] }, item.$id); + return /* @__PURE__ */ u3( + "li", + { + "data-testid": "datacore-task-item", + className: "datacore task-list-item" + (checked ? " is-checked" : ""), + "data-task": status, + children: [ + /* @__PURE__ */ u3( + CollapseIndicator, + { + onClick: () => setCollapsed((c4) => !c4), + collapsed, + hasChildren + } + ), + /* @__PURE__ */ u3( + "input", + { + className: "datacore task-list-item-checkbox", + type: "checkbox", + checked, + onClick: onChecked, + onChange: (e3) => console.log(e3.currentTarget.value) + } + ), + /* @__PURE__ */ u3("div", { children: /* @__PURE__ */ u3("div", { className: "datacore-list-item-content", children: [ + theElement, + /* @__PURE__ */ u3("div", { className: "datacore-list-item-fields", children: /* @__PURE__ */ u3(ListItemFields, { displayedFields: props.displayedFields, item }) }) + ] }) }), + hasChildren && !collapsed && /* @__PURE__ */ u3(TaskList, { ...props, rows: item.$elements }) + ] + }, + item.$id + ); } function CollapseIndicator({ collapsed, @@ -49218,10 +43003,9 @@ function ListItemFields({ ); }) }); } -function useListItemEditing(item) { +function useListItemEditing(item, status) { const app = x2(APP_CONTEXT); const core = x2(DATACORE_CONTEXT); - const status = T2(() => item instanceof MarkdownTaskItem ? item.$status : " ", [item]); return useStableCallback( async (val) => { if (typeof val === "string") { @@ -49229,6 +43013,7 @@ function useListItemEditing(item) { for (let field in item.$infields) { withFields = setInlineField(withFields, field, item.$infields[field].raw); } + console.log("use", withFields); await rewriteTask(app.vault, core, item, status, withFields); } }, @@ -49412,10 +43197,10 @@ function useDatacorePaging({ ); return { enabled: pagingEnabled, scroll: shouldScroll, page, pageSize, totalPages, setPage }; } -function clamp(input, min2, max2) { - if (input < min2) return min2; - if (input > max2) return max2; - return input; +function clamp(input2, min2, max2) { + if (input2 < min2) return min2; + if (input2 > max2) return max2; + return input2; } function splitPages(page, totalPages) { if (totalPages < 12) return [Array.from({ length: totalPages }, (_3, i4) => i4)]; @@ -49478,12 +43263,3036 @@ var faSortUp = { icon: [320, 512, ["sort-asc"], "f0de", "M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"] }; +// node_modules/@fortawesome/fontawesome-svg-core/index.mjs +var noop3 = () => { +}; +var _WINDOW = {}; +var _DOCUMENT = {}; +var _MUTATION_OBSERVER = null; +var _PERFORMANCE = { + mark: noop3, + measure: noop3 +}; +try { + if (typeof window !== "undefined") _WINDOW = window; + if (typeof document !== "undefined") _DOCUMENT = document; + if (typeof MutationObserver !== "undefined") _MUTATION_OBSERVER = MutationObserver; + if (typeof performance !== "undefined") _PERFORMANCE = performance; +} catch (e3) { +} +var { + userAgent = "" +} = _WINDOW.navigator || {}; +var WINDOW = _WINDOW; +var DOCUMENT = _DOCUMENT; +var MUTATION_OBSERVER = _MUTATION_OBSERVER; +var PERFORMANCE = _PERFORMANCE; +var IS_BROWSER = !!WINDOW.document; +var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === "function" && typeof DOCUMENT.createElement === "function"; +var IS_IE = ~userAgent.indexOf("MSIE") || ~userAgent.indexOf("Trident/"); +var a3 = "classic"; +var t4 = "duotone"; +var r3 = "sharp"; +var o3 = "sharp-duotone"; +var c3 = [a3, t4, r3, o3]; +var et$1 = { + classic: { + 900: "fas", + 400: "far", + normal: "far", + 300: "fal", + 100: "fat" + }, + sharp: { + 900: "fass", + 400: "fasr", + 300: "fasl", + 100: "fast" + }, + "sharp-duotone": { + 900: "fasds" + } +}; +var bt = { + kit: { + fak: "kit", + "fa-kit": "kit" + }, + "kit-duotone": { + fakd: "kit-duotone", + "fa-kit-duotone": "kit-duotone" + } +}; +var Ct = ["kit"]; +var Dt = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/; +var Kt = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i; +var ao = { + "Font Awesome 5 Free": { + 900: "fas", + 400: "far" + }, + "Font Awesome 5 Pro": { + 900: "fas", + 400: "far", + normal: "far", + 300: "fal" + }, + "Font Awesome 5 Brands": { + 400: "fab", + normal: "fab" + }, + "Font Awesome 5 Duotone": { + 900: "fad" + } +}; +var eo = { + "Font Awesome 6 Free": { + 900: "fas", + 400: "far" + }, + "Font Awesome 6 Pro": { + 900: "fas", + 400: "far", + normal: "far", + 300: "fal", + 100: "fat" + }, + "Font Awesome 6 Brands": { + 400: "fab", + normal: "fab" + }, + "Font Awesome 6 Duotone": { + 900: "fad" + }, + "Font Awesome 6 Sharp": { + 900: "fass", + 400: "fasr", + normal: "fasr", + 300: "fasl", + 100: "fast" + }, + "Font Awesome 6 Sharp Duotone": { + 900: "fasds" + } +}; +var lo = { + classic: { + "fa-brands": "fab", + "fa-duotone": "fad", + "fa-light": "fal", + "fa-regular": "far", + "fa-solid": "fas", + "fa-thin": "fat" + }, + sharp: { + "fa-solid": "fass", + "fa-regular": "fasr", + "fa-light": "fasl", + "fa-thin": "fast" + }, + "sharp-duotone": { + "fa-solid": "fasds" + } +}; +var y3 = { + classic: ["fas", "far", "fal", "fat"], + sharp: ["fass", "fasr", "fasl", "fast"], + "sharp-duotone": ["fasds"] +}; +var no = { + classic: { + fab: "fa-brands", + fad: "fa-duotone", + fal: "fa-light", + far: "fa-regular", + fas: "fa-solid", + fat: "fa-thin" + }, + sharp: { + fass: "fa-solid", + fasr: "fa-regular", + fasl: "fa-light", + fast: "fa-thin" + }, + "sharp-duotone": { + fasds: "fa-solid" + } +}; +var fo = { + classic: { + solid: "fas", + regular: "far", + light: "fal", + thin: "fat", + duotone: "fad", + brands: "fab" + }, + sharp: { + solid: "fass", + regular: "fasr", + light: "fasl", + thin: "fast" + }, + "sharp-duotone": { + solid: "fasds" + } +}; +var ho = { + classic: { + fa: "solid", + fas: "solid", + "fa-solid": "solid", + far: "regular", + "fa-regular": "regular", + fal: "light", + "fa-light": "light", + fat: "thin", + "fa-thin": "thin", + fad: "duotone", + "fa-duotone": "duotone", + fab: "brands", + "fa-brands": "brands" + }, + sharp: { + fa: "solid", + fass: "solid", + "fa-solid": "solid", + fasr: "regular", + "fa-regular": "regular", + fasl: "light", + "fa-light": "light", + fast: "thin", + "fa-thin": "thin" + }, + "sharp-duotone": { + fa: "solid", + fasds: "solid", + "fa-solid": "solid" + } +}; +var x$1 = ["solid", "regular", "light", "thin", "duotone", "brands"]; +var u$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; +var m$1 = u$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]); +var t$1 = { + GROUP: "duotone-group", + SWAP_OPACITY: "swap-opacity", + PRIMARY: "primary", + SECONDARY: "secondary" +}; +var yo = [...Object.keys(y3), ...x$1, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vertical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(u$1.map((o4) => "".concat(o4, "x"))).concat(m$1.map((o4) => "w-".concat(o4))); +var mo = { + "Font Awesome Kit": { + 400: "fak", + normal: "fak" + }, + "Font Awesome Kit Duotone": { + 400: "fakd", + normal: "fakd" + } +}; +var Io = { + kit: { + "fa-kit": "fak" + }, + "kit-duotone": { + "fa-kit-duotone": "fakd" + } +}; +var Fo = { + kit: { + fak: "fa-kit" + }, + "kit-duotone": { + fakd: "fa-kit-duotone" + } +}; +var So = { + kit: { + kit: "fak" + }, + "kit-duotone": { + "kit-duotone": "fakd" + } +}; +var NAMESPACE_IDENTIFIER = "___FONT_AWESOME___"; +var UNITS_IN_GRID = 16; +var DEFAULT_CSS_PREFIX = "fa"; +var DEFAULT_REPLACEMENT_CLASS = "svg-inline--fa"; +var DATA_FA_I2SVG = "data-fa-i2svg"; +var DATA_FA_PSEUDO_ELEMENT = "data-fa-pseudo-element"; +var DATA_FA_PSEUDO_ELEMENT_PENDING = "data-fa-pseudo-element-pending"; +var DATA_PREFIX = "data-prefix"; +var DATA_ICON = "data-icon"; +var HTML_CLASS_I2SVG_BASE_CLASS = "fontawesome-i2svg"; +var MUTATION_APPROACH_ASYNC = "async"; +var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ["HTML", "HEAD", "STYLE", "SCRIPT"]; +var PRODUCTION = (() => { + try { + return false; + } catch (e$$1) { + return false; + } +})(); +var FAMILIES = [a3, r3, o3]; +function familyProxy(obj) { + return new Proxy(obj, { + get(target, prop) { + return prop in target ? target[prop] : target[a3]; + } + }); +} +var _PREFIX_TO_STYLE = { + ...ho +}; +_PREFIX_TO_STYLE[a3] = { + ...ho[a3], + ...bt["kit"], + ...bt["kit-duotone"] +}; +var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); +var _STYLE_TO_PREFIX = { + ...fo +}; +_STYLE_TO_PREFIX[a3] = { + ..._STYLE_TO_PREFIX[a3], + ...So["kit"], + ...So["kit-duotone"] +}; +var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); +var _PREFIX_TO_LONG_STYLE = { + ...no +}; +_PREFIX_TO_LONG_STYLE[a3] = { + ..._PREFIX_TO_LONG_STYLE[a3], + ...Fo["kit"] +}; +var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); +var _LONG_STYLE_TO_PREFIX = { + ...lo +}; +_LONG_STYLE_TO_PREFIX[a3] = { + ..._LONG_STYLE_TO_PREFIX[a3], + ...Io["kit"] +}; +var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); +var ICON_SELECTION_SYNTAX_PATTERN = Dt; +var LAYERS_TEXT_CLASSNAME = "fa-layers-text"; +var FONT_FAMILY_PATTERN = Kt; +var _FONT_WEIGHT_TO_PREFIX = { + ...et$1 +}; +var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); +var ATTRIBUTES_WATCHED_FOR_MUTATION = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"]; +var DUOTONE_CLASSES = t$1; +var prefixes = /* @__PURE__ */ new Set(); +Object.keys(STYLE_TO_PREFIX[a3]).map(prefixes.add.bind(prefixes)); +Object.keys(STYLE_TO_PREFIX[r3]).map(prefixes.add.bind(prefixes)); +Object.keys(STYLE_TO_PREFIX[o3]).map(prefixes.add.bind(prefixes)); +var RESERVED_CLASSES = [...Ct, ...yo]; +var initial = WINDOW.FontAwesomeConfig || {}; +function getAttrConfig(attr) { + var element = DOCUMENT.querySelector("script[" + attr + "]"); + if (element) { + return element.getAttribute(attr); + } +} +function coerce(val) { + if (val === "") return true; + if (val === "false") return false; + if (val === "true") return true; + return val; +} +if (DOCUMENT && typeof DOCUMENT.querySelector === "function") { + const attrs = [["data-family-prefix", "familyPrefix"], ["data-css-prefix", "cssPrefix"], ["data-family-default", "familyDefault"], ["data-style-default", "styleDefault"], ["data-replacement-class", "replacementClass"], ["data-auto-replace-svg", "autoReplaceSvg"], ["data-auto-add-css", "autoAddCss"], ["data-auto-a11y", "autoA11y"], ["data-search-pseudo-elements", "searchPseudoElements"], ["data-observe-mutations", "observeMutations"], ["data-mutate-approach", "mutateApproach"], ["data-keep-original-source", "keepOriginalSource"], ["data-measure-performance", "measurePerformance"], ["data-show-missing-icons", "showMissingIcons"]]; + attrs.forEach((_ref3) => { + let [attr, key] = _ref3; + const val = coerce(getAttrConfig(attr)); + if (val !== void 0 && val !== null) { + initial[key] = val; + } + }); +} +var _default = { + styleDefault: "solid", + familyDefault: "classic", + cssPrefix: DEFAULT_CSS_PREFIX, + replacementClass: DEFAULT_REPLACEMENT_CLASS, + autoReplaceSvg: true, + autoAddCss: true, + autoA11y: true, + searchPseudoElements: false, + observeMutations: true, + mutateApproach: "async", + keepOriginalSource: true, + measurePerformance: false, + showMissingIcons: true +}; +if (initial.familyPrefix) { + initial.cssPrefix = initial.familyPrefix; +} +var _config = { + ..._default, + ...initial +}; +if (!_config.autoReplaceSvg) _config.observeMutations = false; +var config = {}; +Object.keys(_default).forEach((key) => { + Object.defineProperty(config, key, { + enumerable: true, + set: function(val) { + _config[key] = val; + _onChangeCb.forEach((cb) => cb(config)); + }, + get: function() { + return _config[key]; + } + }); +}); +Object.defineProperty(config, "familyPrefix", { + enumerable: true, + set: function(val) { + _config.cssPrefix = val; + _onChangeCb.forEach((cb) => cb(config)); + }, + get: function() { + return _config.cssPrefix; + } +}); +WINDOW.FontAwesomeConfig = config; +var _onChangeCb = []; +function onChange2(cb) { + _onChangeCb.push(cb); + return () => { + _onChangeCb.splice(_onChangeCb.indexOf(cb), 1); + }; +} +var d$2 = UNITS_IN_GRID; +var meaninglessTransform = { + size: 16, + x: 0, + y: 0, + rotate: 0, + flipX: false, + flipY: false +}; +function insertCss(css6) { + if (!css6 || !IS_DOM) { + return; + } + const style = DOCUMENT.createElement("style"); + style.setAttribute("type", "text/css"); + style.innerHTML = css6; + const headChildren = DOCUMENT.head.childNodes; + let beforeChild = null; + for (let i4 = headChildren.length - 1; i4 > -1; i4--) { + const child = headChildren[i4]; + const tagName = (child.tagName || "").toUpperCase(); + if (["STYLE", "LINK"].indexOf(tagName) > -1) { + beforeChild = child; + } + } + DOCUMENT.head.insertBefore(style, beforeChild); + return css6; +} +var idPool = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +function nextUniqueId() { + let size2 = 12; + let id = ""; + while (size2-- > 0) { + id += idPool[Math.random() * 62 | 0]; + } + return id; +} +function toArray(obj) { + const array2 = []; + for (let i4 = (obj || []).length >>> 0; i4--; ) { + array2[i4] = obj[i4]; + } + return array2; +} +function classArray(node2) { + if (node2.classList) { + return toArray(node2.classList); + } else { + return (node2.getAttribute("class") || "").split(" ").filter((i4) => i4); + } +} +function htmlEscape(str) { + return "".concat(str).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">"); +} +function joinAttributes(attributes) { + return Object.keys(attributes || {}).reduce((acc, attributeName) => { + return acc + "".concat(attributeName, '="').concat(htmlEscape(attributes[attributeName]), '" '); + }, "").trim(); +} +function joinStyles(styles2) { + return Object.keys(styles2 || {}).reduce((acc, styleName) => { + return acc + "".concat(styleName, ": ").concat(styles2[styleName].trim(), ";"); + }, ""); +} +function transformIsMeaningful(transform2) { + return transform2.size !== meaninglessTransform.size || transform2.x !== meaninglessTransform.x || transform2.y !== meaninglessTransform.y || transform2.rotate !== meaninglessTransform.rotate || transform2.flipX || transform2.flipY; +} +function transformForSvg(_ref3) { + let { + transform: transform2, + containerWidth, + iconWidth + } = _ref3; + const outer = { + transform: "translate(".concat(containerWidth / 2, " 256)") + }; + const innerTranslate = "translate(".concat(transform2.x * 32, ", ").concat(transform2.y * 32, ") "); + const innerScale = "scale(".concat(transform2.size / 16 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / 16 * (transform2.flipY ? -1 : 1), ") "); + const innerRotate = "rotate(".concat(transform2.rotate, " 0 0)"); + const inner = { + transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) + }; + const path = { + transform: "translate(".concat(iconWidth / 2 * -1, " -256)") + }; + return { + outer, + inner, + path + }; +} +function transformForCss(_ref23) { + let { + transform: transform2, + width = UNITS_IN_GRID, + height = UNITS_IN_GRID, + startCentered = false + } = _ref23; + let val = ""; + if (startCentered && IS_IE) { + val += "translate(".concat(transform2.x / d$2 - width / 2, "em, ").concat(transform2.y / d$2 - height / 2, "em) "); + } else if (startCentered) { + val += "translate(calc(-50% + ".concat(transform2.x / d$2, "em), calc(-50% + ").concat(transform2.y / d$2, "em)) "); + } else { + val += "translate(".concat(transform2.x / d$2, "em, ").concat(transform2.y / d$2, "em) "); + } + val += "scale(".concat(transform2.size / d$2 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / d$2 * (transform2.flipY ? -1 : 1), ") "); + val += "rotate(".concat(transform2.rotate, "deg) "); + return val; +} +var baseStyles = ':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-counter-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(-1 * var(--fa-li-width, 2em));\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n animation-delay: -1ms;\n animation-duration: 1ms;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}'; +function css5() { + const dcp = DEFAULT_CSS_PREFIX; + const drc = DEFAULT_REPLACEMENT_CLASS; + const fp = config.cssPrefix; + const rc = config.replacementClass; + let s4 = baseStyles; + if (fp !== dcp || rc !== drc) { + const dPatt = new RegExp("\\.".concat(dcp, "\\-"), "g"); + const customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), "g"); + const rPatt = new RegExp("\\.".concat(drc), "g"); + s4 = s4.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); + } + return s4; +} +var _cssInserted = false; +function ensureCss() { + if (config.autoAddCss && !_cssInserted) { + insertCss(css5()); + _cssInserted = true; + } +} +var InjectCSS = { + mixout() { + return { + dom: { + css: css5, + insertCss: ensureCss + } + }; + }, + hooks() { + return { + beforeDOMElementCreation() { + ensureCss(); + }, + beforeI2svg() { + ensureCss(); + } + }; + } +}; +var w$1 = WINDOW || {}; +if (!w$1[NAMESPACE_IDENTIFIER]) w$1[NAMESPACE_IDENTIFIER] = {}; +if (!w$1[NAMESPACE_IDENTIFIER].styles) w$1[NAMESPACE_IDENTIFIER].styles = {}; +if (!w$1[NAMESPACE_IDENTIFIER].hooks) w$1[NAMESPACE_IDENTIFIER].hooks = {}; +if (!w$1[NAMESPACE_IDENTIFIER].shims) w$1[NAMESPACE_IDENTIFIER].shims = []; +var namespace = w$1[NAMESPACE_IDENTIFIER]; +var functions = []; +var listener = function() { + DOCUMENT.removeEventListener("DOMContentLoaded", listener); + loaded = 1; + functions.map((fn2) => fn2()); +}; +var loaded = false; +if (IS_DOM) { + loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); + if (!loaded) DOCUMENT.addEventListener("DOMContentLoaded", listener); +} +function domready(fn2) { + if (!IS_DOM) return; + loaded ? setTimeout(fn2, 0) : functions.push(fn2); +} +function toHtml(abstractNodes) { + const { + tag, + attributes = {}, + children = [] + } = abstractNodes; + if (typeof abstractNodes === "string") { + return htmlEscape(abstractNodes); + } else { + return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(""), ""); + } +} +function iconFromMapping(mapping, prefix2, iconName) { + if (mapping && mapping[prefix2] && mapping[prefix2][iconName]) { + return { + prefix: prefix2, + iconName, + icon: mapping[prefix2][iconName] + }; + } +} +var bindInternal4 = function bindInternal42(func, thisContext) { + return function(a4, b3, c4, d3) { + return func.call(thisContext, a4, b3, c4, d3); + }; +}; +var reduce = function fastReduceObject(subject, fn2, initialValue, thisContext) { + var keys = Object.keys(subject), length2 = keys.length, iterator = thisContext !== void 0 ? bindInternal4(fn2, thisContext) : fn2, i4, key, result; + if (initialValue === void 0) { + i4 = 1; + result = subject[keys[0]]; + } else { + i4 = 0; + result = initialValue; + } + for (; i4 < length2; i4++) { + key = keys[i4]; + result = iterator(result, subject[key], key, subject); + } + return result; +}; +function ucs2decode(string2) { + const output = []; + let counter2 = 0; + const length2 = string2.length; + while (counter2 < length2) { + const value = string2.charCodeAt(counter2++); + if (value >= 55296 && value <= 56319 && counter2 < length2) { + const extra = string2.charCodeAt(counter2++); + if ((extra & 64512) == 56320) { + output.push(((value & 1023) << 10) + (extra & 1023) + 65536); + } else { + output.push(value); + counter2--; + } + } else { + output.push(value); + } + } + return output; +} +function toHex(unicode) { + const decoded = ucs2decode(unicode); + return decoded.length === 1 ? decoded[0].toString(16) : null; +} +function codePointAt(string2, index2) { + const size2 = string2.length; + let first = string2.charCodeAt(index2); + let second; + if (first >= 55296 && first <= 56319 && size2 > index2 + 1) { + second = string2.charCodeAt(index2 + 1); + if (second >= 56320 && second <= 57343) { + return (first - 55296) * 1024 + second - 56320 + 65536; + } + } + return first; +} +function normalizeIcons(icons) { + return Object.keys(icons).reduce((acc, iconName) => { + const icon2 = icons[iconName]; + const expanded = !!icon2.icon; + if (expanded) { + acc[icon2.iconName] = icon2.icon; + } else { + acc[iconName] = icon2; + } + return acc; + }, {}); +} +function defineIcons(prefix2, icons) { + let params = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + const { + skipHooks = false + } = params; + const normalized = normalizeIcons(icons); + if (typeof namespace.hooks.addPack === "function" && !skipHooks) { + namespace.hooks.addPack(prefix2, normalizeIcons(icons)); + } else { + namespace.styles[prefix2] = { + ...namespace.styles[prefix2] || {}, + ...normalized + }; + } + if (prefix2 === "fas") { + defineIcons("fa", icons); + } +} +var { + styles, + shims +} = namespace; +var LONG_STYLE = { + [a3]: Object.values(PREFIX_TO_LONG_STYLE[a3]), + [r3]: Object.values(PREFIX_TO_LONG_STYLE[r3]), + [o3]: Object.values(PREFIX_TO_LONG_STYLE[o3]) +}; +var _defaultUsablePrefix = null; +var _byUnicode = {}; +var _byLigature = {}; +var _byOldName = {}; +var _byOldUnicode = {}; +var _byAlias = {}; +var PREFIXES = { + [a3]: Object.keys(PREFIX_TO_STYLE[a3]), + [r3]: Object.keys(PREFIX_TO_STYLE[r3]), + [o3]: Object.keys(PREFIX_TO_STYLE[o3]) +}; +function isReserved(name) { + return ~RESERVED_CLASSES.indexOf(name); +} +function getIconName(cssPrefix, cls) { + const parts = cls.split("-"); + const prefix2 = parts[0]; + const iconName = parts.slice(1).join("-"); + if (prefix2 === cssPrefix && iconName !== "" && !isReserved(iconName)) { + return iconName; + } else { + return null; + } +} +var build = () => { + const lookup = (reducer) => { + return reduce(styles, (o$$1, style, prefix2) => { + o$$1[prefix2] = reduce(style, reducer, {}); + return o$$1; + }, {}); + }; + _byUnicode = lookup((acc, icon2, iconName) => { + if (icon2[3]) { + acc[icon2[3]] = iconName; + } + if (icon2[2]) { + const aliases = icon2[2].filter((a$$1) => { + return typeof a$$1 === "number"; + }); + aliases.forEach((alias) => { + acc[alias.toString(16)] = iconName; + }); + } + return acc; + }); + _byLigature = lookup((acc, icon2, iconName) => { + acc[iconName] = iconName; + if (icon2[2]) { + const aliases = icon2[2].filter((a$$1) => { + return typeof a$$1 === "string"; + }); + aliases.forEach((alias) => { + acc[alias] = iconName; + }); + } + return acc; + }); + _byAlias = lookup((acc, icon2, iconName) => { + const aliases = icon2[2]; + acc[iconName] = iconName; + aliases.forEach((alias) => { + acc[alias] = iconName; + }); + return acc; + }); + const hasRegular = "far" in styles || config.autoFetchSvg; + const shimLookups = reduce(shims, (acc, shim) => { + const maybeNameMaybeUnicode = shim[0]; + let prefix2 = shim[1]; + const iconName = shim[2]; + if (prefix2 === "far" && !hasRegular) { + prefix2 = "fas"; + } + if (typeof maybeNameMaybeUnicode === "string") { + acc.names[maybeNameMaybeUnicode] = { + prefix: prefix2, + iconName + }; + } + if (typeof maybeNameMaybeUnicode === "number") { + acc.unicodes[maybeNameMaybeUnicode.toString(16)] = { + prefix: prefix2, + iconName + }; + } + return acc; + }, { + names: {}, + unicodes: {} + }); + _byOldName = shimLookups.names; + _byOldUnicode = shimLookups.unicodes; + _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, { + family: config.familyDefault + }); +}; +onChange2((c$$1) => { + _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, { + family: config.familyDefault + }); +}); +build(); +function byUnicode(prefix2, unicode) { + return (_byUnicode[prefix2] || {})[unicode]; +} +function byLigature(prefix2, ligature) { + return (_byLigature[prefix2] || {})[ligature]; +} +function byAlias(prefix2, alias) { + return (_byAlias[prefix2] || {})[alias]; +} +function byOldName(name) { + return _byOldName[name] || { + prefix: null, + iconName: null + }; +} +function byOldUnicode(unicode) { + const oldUnicode = _byOldUnicode[unicode]; + const newUnicode = byUnicode("fas", unicode); + return oldUnicode || (newUnicode ? { + prefix: "fas", + iconName: newUnicode + } : null) || { + prefix: null, + iconName: null + }; +} +function getDefaultUsablePrefix() { + return _defaultUsablePrefix; +} +var emptyCanonicalIcon = () => { + return { + prefix: null, + iconName: null, + rest: [] + }; +}; +function getCanonicalPrefix(styleOrPrefix) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + family = a3 + } = params; + const style = PREFIX_TO_STYLE[family][styleOrPrefix]; + const prefix2 = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style]; + const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null; + const result = prefix2 || defined || null; + return result; +} +var PREFIXES_FOR_FAMILY = { + [a3]: Object.keys(PREFIX_TO_LONG_STYLE[a3]), + [r3]: Object.keys(PREFIX_TO_LONG_STYLE[r3]), + [o3]: Object.keys(PREFIX_TO_LONG_STYLE[o3]) +}; +function getCanonicalIcon(values) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + skipLookups = false + } = params; + const famProps = { + [a3]: "".concat(config.cssPrefix, "-").concat(a3), + [r3]: "".concat(config.cssPrefix, "-").concat(r3), + [o3]: "".concat(config.cssPrefix, "-").concat(o3) + }; + let givenPrefix = null; + let family = a3; + const nonDuotoneFamilyIds = c3.filter((familyId) => familyId !== t4); + nonDuotoneFamilyIds.forEach((familyId) => { + if (values.includes(famProps[familyId]) || values.some((v$$1) => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) { + family = familyId; + } + }); + const canonical = values.reduce((acc, cls) => { + const iconName = getIconName(config.cssPrefix, cls); + if (styles[cls]) { + cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls; + givenPrefix = cls; + acc.prefix = cls; + } else if (PREFIXES[family].indexOf(cls) > -1) { + givenPrefix = cls; + acc.prefix = getCanonicalPrefix(cls, { + family + }); + } else if (iconName) { + acc.iconName = iconName; + } else if (cls !== config.replacementClass && !nonDuotoneFamilyIds.some((familyName) => cls === famProps[familyName])) { + acc.rest.push(cls); + } + if (!skipLookups && acc.prefix && acc.iconName) { + const shim = givenPrefix === "fa" ? byOldName(acc.iconName) : {}; + const aliasIconName = byAlias(acc.prefix, acc.iconName); + if (shim.prefix) { + givenPrefix = null; + } + acc.iconName = shim.iconName || aliasIconName || acc.iconName; + acc.prefix = shim.prefix || acc.prefix; + if (acc.prefix === "far" && !styles["far"] && styles["fas"] && !config.autoFetchSvg) { + acc.prefix = "fas"; + } + } + return acc; + }, emptyCanonicalIcon()); + if (values.includes("fa-brands") || values.includes("fab")) { + canonical.prefix = "fab"; + } + if (values.includes("fa-duotone") || values.includes("fad")) { + canonical.prefix = "fad"; + } + if (!canonical.prefix && family === r3 && (styles["fass"] || config.autoFetchSvg)) { + canonical.prefix = "fass"; + canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; + } + if (!canonical.prefix && family === o3 && (styles["fasds"] || config.autoFetchSvg)) { + canonical.prefix = "fasds"; + canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; + } + if (canonical.prefix === "fa" || givenPrefix === "fa") { + canonical.prefix = getDefaultUsablePrefix() || "fas"; + } + return canonical; +} +var Library = class { + constructor() { + this.definitions = {}; + } + add() { + for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) { + definitions[_key] = arguments[_key]; + } + const additions = definitions.reduce(this._pullDefinitions, {}); + Object.keys(additions).forEach((key) => { + this.definitions[key] = { + ...this.definitions[key] || {}, + ...additions[key] + }; + defineIcons(key, additions[key]); + const longPrefix = PREFIX_TO_LONG_STYLE[a3][key]; + if (longPrefix) defineIcons(longPrefix, additions[key]); + build(); + }); + } + reset() { + this.definitions = {}; + } + _pullDefinitions(additions, definition) { + const normalized = definition.prefix && definition.iconName && definition.icon ? { + 0: definition + } : definition; + Object.keys(normalized).map((key) => { + const { + prefix: prefix2, + iconName, + icon: icon2 + } = normalized[key]; + const aliases = icon2[2]; + if (!additions[prefix2]) additions[prefix2] = {}; + if (aliases.length > 0) { + aliases.forEach((alias) => { + if (typeof alias === "string") { + additions[prefix2][alias] = icon2; + } + }); + } + additions[prefix2][iconName] = icon2; + }); + return additions; + } +}; +var _plugins = []; +var _hooks = {}; +var providers = {}; +var defaultProviderKeys = Object.keys(providers); +function registerPlugins(nextPlugins, _ref3) { + let { + mixoutsTo: obj + } = _ref3; + _plugins = nextPlugins; + _hooks = {}; + Object.keys(providers).forEach((k4) => { + if (defaultProviderKeys.indexOf(k4) === -1) { + delete providers[k4]; + } + }); + _plugins.forEach((plugin) => { + const mixout = plugin.mixout ? plugin.mixout() : {}; + Object.keys(mixout).forEach((tk) => { + if (typeof mixout[tk] === "function") { + obj[tk] = mixout[tk]; + } + if (typeof mixout[tk] === "object") { + Object.keys(mixout[tk]).forEach((sk) => { + if (!obj[tk]) { + obj[tk] = {}; + } + obj[tk][sk] = mixout[tk][sk]; + }); + } + }); + if (plugin.hooks) { + const hooks = plugin.hooks(); + Object.keys(hooks).forEach((hook) => { + if (!_hooks[hook]) { + _hooks[hook] = []; + } + _hooks[hook].push(hooks[hook]); + }); + } + if (plugin.provides) { + plugin.provides(providers); + } + }); + return obj; +} +function chainHooks(hook, accumulator) { + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + const hookFns = _hooks[hook] || []; + hookFns.forEach((hookFn) => { + accumulator = hookFn.apply(null, [accumulator, ...args]); + }); + return accumulator; +} +function callHooks(hook) { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + const hookFns = _hooks[hook] || []; + hookFns.forEach((hookFn) => { + hookFn.apply(null, args); + }); + return void 0; +} +function callProvided() { + const hook = arguments[0]; + const args = Array.prototype.slice.call(arguments, 1); + return providers[hook] ? providers[hook].apply(null, args) : void 0; +} +function findIconDefinition(iconLookup) { + if (iconLookup.prefix === "fa") { + iconLookup.prefix = "fas"; + } + let { + iconName + } = iconLookup; + const prefix2 = iconLookup.prefix || getDefaultUsablePrefix(); + if (!iconName) return; + iconName = byAlias(prefix2, iconName) || iconName; + return iconFromMapping(library.definitions, prefix2, iconName) || iconFromMapping(namespace.styles, prefix2, iconName); +} +var library = new Library(); +var noAuto = () => { + config.autoReplaceSvg = false; + config.observeMutations = false; + callHooks("noAuto"); +}; +var dom = { + i2svg: function() { + let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (IS_DOM) { + callHooks("beforeI2svg", params); + callProvided("pseudoElements2svg", params); + return callProvided("i2svg", params); + } else { + return Promise.reject(new Error("Operation requires a DOM of some kind.")); + } + }, + watch: function() { + let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + const { + autoReplaceSvgRoot + } = params; + if (config.autoReplaceSvg === false) { + config.autoReplaceSvg = true; + } + config.observeMutations = true; + domready(() => { + autoReplace({ + autoReplaceSvgRoot + }); + callHooks("watch", params); + }); + } +}; +var parse4 = { + icon: (icon2) => { + if (icon2 === null) { + return null; + } + if (typeof icon2 === "object" && icon2.prefix && icon2.iconName) { + return { + prefix: icon2.prefix, + iconName: byAlias(icon2.prefix, icon2.iconName) || icon2.iconName + }; + } + if (Array.isArray(icon2) && icon2.length === 2) { + const iconName = icon2[1].indexOf("fa-") === 0 ? icon2[1].slice(3) : icon2[1]; + const prefix2 = getCanonicalPrefix(icon2[0]); + return { + prefix: prefix2, + iconName: byAlias(prefix2, iconName) || iconName + }; + } + if (typeof icon2 === "string" && (icon2.indexOf("".concat(config.cssPrefix, "-")) > -1 || icon2.match(ICON_SELECTION_SYNTAX_PATTERN))) { + const canonicalIcon = getCanonicalIcon(icon2.split(" "), { + skipLookups: true + }); + return { + prefix: canonicalIcon.prefix || getDefaultUsablePrefix(), + iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName + }; + } + if (typeof icon2 === "string") { + const prefix2 = getDefaultUsablePrefix(); + return { + prefix: prefix2, + iconName: byAlias(prefix2, icon2) || icon2 + }; + } + } +}; +var api = { + noAuto, + config, + dom, + parse: parse4, + library, + findIconDefinition, + toHtml +}; +var autoReplace = function() { + let params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + const { + autoReplaceSvgRoot = DOCUMENT + } = params; + if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ + node: autoReplaceSvgRoot + }); +}; +function domVariants(val, abstractCreator) { + Object.defineProperty(val, "abstract", { + get: abstractCreator + }); + Object.defineProperty(val, "html", { + get: function() { + return val.abstract.map((a4) => toHtml(a4)); + } + }); + Object.defineProperty(val, "node", { + get: function() { + if (!IS_DOM) return; + const container = DOCUMENT.createElement("div"); + container.innerHTML = val.html; + return container.children; + } + }); + return val; +} +function asIcon(_ref3) { + let { + children, + main, + mask, + attributes, + styles: styles2, + transform: transform2 + } = _ref3; + if (transformIsMeaningful(transform2) && main.found && !mask.found) { + const { + width, + height + } = main; + const offset3 = { + x: width / height / 2, + y: 0.5 + }; + attributes["style"] = joinStyles({ + ...styles2, + "transform-origin": "".concat(offset3.x + transform2.x / 16, "em ").concat(offset3.y + transform2.y / 16, "em") + }); + } + return [{ + tag: "svg", + attributes, + children + }]; +} +function asSymbol(_ref3) { + let { + prefix: prefix2, + iconName, + children, + attributes, + symbol + } = _ref3; + const id = symbol === true ? "".concat(prefix2, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol; + return [{ + tag: "svg", + attributes: { + style: "display: none;" + }, + children: [{ + tag: "symbol", + attributes: { + ...attributes, + id + }, + children + }] + }]; +} +function makeInlineSvgAbstract(params) { + const { + icons: { + main, + mask + }, + prefix: prefix2, + iconName, + transform: transform2, + symbol, + title, + maskId, + titleId, + extra, + watchable = false + } = params; + const { + width, + height + } = mask.found ? mask : main; + const isUploadedIcon = prefix2 === "fak"; + const attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ""].filter((c4) => extra.classes.indexOf(c4) === -1).filter((c4) => c4 !== "" || !!c4).concat(extra.classes).join(" "); + let content = { + children: [], + attributes: { + ...extra.attributes, + "data-prefix": prefix2, + "data-icon": iconName, + "class": attrClass, + "role": extra.attributes.role || "img", + "xmlns": "http://www.w3.org/2000/svg", + "viewBox": "0 0 ".concat(width, " ").concat(height) + } + }; + const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf("fa-fw") ? { + width: "".concat(width / height * 16 * 0.0625, "em") + } : {}; + if (watchable) { + content.attributes[DATA_FA_I2SVG] = ""; + } + if (title) { + content.children.push({ + tag: "title", + attributes: { + id: content.attributes["aria-labelledby"] || "title-".concat(titleId || nextUniqueId()) + }, + children: [title] + }); + delete content.attributes.title; + } + const args = { + ...content, + prefix: prefix2, + iconName, + main, + mask, + maskId, + transform: transform2, + symbol, + styles: { + ...uploadedIconWidthStyle, + ...extra.styles + } + }; + const { + children, + attributes + } = mask.found && main.found ? callProvided("generateAbstractMask", args) || { + children: [], + attributes: {} + } : callProvided("generateAbstractIcon", args) || { + children: [], + attributes: {} + }; + args.children = children; + args.attributes = attributes; + if (symbol) { + return asSymbol(args); + } else { + return asIcon(args); + } +} +function makeLayersTextAbstract(params) { + const { + content, + width, + height, + transform: transform2, + title, + extra, + watchable = false + } = params; + const attributes = { + ...extra.attributes, + ...title ? { + "title": title + } : {}, + "class": extra.classes.join(" ") + }; + if (watchable) { + attributes[DATA_FA_I2SVG] = ""; + } + const styles2 = { + ...extra.styles + }; + if (transformIsMeaningful(transform2)) { + styles2["transform"] = transformForCss({ + transform: transform2, + startCentered: true, + width, + height + }); + styles2["-webkit-transform"] = styles2["transform"]; + } + const styleString = joinStyles(styles2); + if (styleString.length > 0) { + attributes["style"] = styleString; + } + const val = []; + val.push({ + tag: "span", + attributes, + children: [content] + }); + if (title) { + val.push({ + tag: "span", + attributes: { + class: "sr-only" + }, + children: [title] + }); + } + return val; +} +function makeLayersCounterAbstract(params) { + const { + content, + title, + extra + } = params; + const attributes = { + ...extra.attributes, + ...title ? { + "title": title + } : {}, + "class": extra.classes.join(" ") + }; + const styleString = joinStyles(extra.styles); + if (styleString.length > 0) { + attributes["style"] = styleString; + } + const val = []; + val.push({ + tag: "span", + attributes, + children: [content] + }); + if (title) { + val.push({ + tag: "span", + attributes: { + class: "sr-only" + }, + children: [title] + }); + } + return val; +} +var { + styles: styles$1 +} = namespace; +function asFoundIcon(icon2) { + const width = icon2[0]; + const height = icon2[1]; + const [vectorData] = icon2.slice(4); + let element = null; + if (Array.isArray(vectorData)) { + element = { + tag: "g", + attributes: { + class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP) + }, + children: [{ + tag: "path", + attributes: { + class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), + fill: "currentColor", + d: vectorData[0] + } + }, { + tag: "path", + attributes: { + class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), + fill: "currentColor", + d: vectorData[1] + } + }] + }; + } else { + element = { + tag: "path", + attributes: { + fill: "currentColor", + d: vectorData + } + }; + } + return { + found: true, + width, + height, + icon: element + }; +} +var missingIconResolutionMixin = { + found: false, + width: 512, + height: 512 +}; +function maybeNotifyMissing(iconName, prefix2) { + if (!PRODUCTION && !config.showMissingIcons && iconName) { + console.error('Icon with name "'.concat(iconName, '" and prefix "').concat(prefix2, '" is missing.')); + } +} +function findIcon(iconName, prefix2) { + let givenPrefix = prefix2; + if (prefix2 === "fa" && config.styleDefault !== null) { + prefix2 = getDefaultUsablePrefix(); + } + return new Promise((resolve, reject) => { + if (givenPrefix === "fa") { + const shim = byOldName(iconName) || {}; + iconName = shim.iconName || iconName; + prefix2 = shim.prefix || prefix2; + } + if (iconName && prefix2 && styles$1[prefix2] && styles$1[prefix2][iconName]) { + const icon2 = styles$1[prefix2][iconName]; + return resolve(asFoundIcon(icon2)); + } + maybeNotifyMissing(iconName, prefix2); + resolve({ + ...missingIconResolutionMixin, + icon: config.showMissingIcons && iconName ? callProvided("missingIconAbstract") || {} : {} + }); + }); +} +var noop$1 = () => { +}; +var p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { + mark: noop$1, + measure: noop$1 +}; +var preamble = 'FA "6.6.0"'; +var begin = (name) => { + p$2.mark("".concat(preamble, " ").concat(name, " begins")); + return () => end(name); +}; +var end = (name) => { + p$2.mark("".concat(preamble, " ").concat(name, " ends")); + p$2.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends")); +}; +var perf = { + begin, + end +}; +var noop$2 = () => { +}; +function isWatched(node2) { + const i2svg = node2.getAttribute ? node2.getAttribute(DATA_FA_I2SVG) : null; + return typeof i2svg === "string"; +} +function hasPrefixAndIcon(node2) { + const prefix2 = node2.getAttribute ? node2.getAttribute(DATA_PREFIX) : null; + const icon2 = node2.getAttribute ? node2.getAttribute(DATA_ICON) : null; + return prefix2 && icon2; +} +function hasBeenReplaced(node2) { + return node2 && node2.classList && node2.classList.contains && node2.classList.contains(config.replacementClass); +} +function getMutator() { + if (config.autoReplaceSvg === true) { + return mutators.replace; + } + const mutator = mutators[config.autoReplaceSvg]; + return mutator || mutators.replace; +} +function createElementNS(tag) { + return DOCUMENT.createElementNS("http://www.w3.org/2000/svg", tag); +} +function createElement(tag) { + return DOCUMENT.createElement(tag); +} +function convertSVG(abstractObj) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + ceFn = abstractObj.tag === "svg" ? createElementNS : createElement + } = params; + if (typeof abstractObj === "string") { + return DOCUMENT.createTextNode(abstractObj); + } + const tag = ceFn(abstractObj.tag); + Object.keys(abstractObj.attributes || []).forEach(function(key) { + tag.setAttribute(key, abstractObj.attributes[key]); + }); + const children = abstractObj.children || []; + children.forEach(function(child) { + tag.appendChild(convertSVG(child, { + ceFn + })); + }); + return tag; +} +function nodeAsComment(node2) { + let comment2 = " ".concat(node2.outerHTML, " "); + comment2 = "".concat(comment2, "Font Awesome fontawesome.com "); + return comment2; +} +var mutators = { + replace: function(mutation) { + const node2 = mutation[0]; + if (node2.parentNode) { + mutation[1].forEach((abstract) => { + node2.parentNode.insertBefore(convertSVG(abstract), node2); + }); + if (node2.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) { + let comment2 = DOCUMENT.createComment(nodeAsComment(node2)); + node2.parentNode.replaceChild(comment2, node2); + } else { + node2.remove(); + } + } + }, + nest: function(mutation) { + const node2 = mutation[0]; + const abstract = mutation[1]; + if (~classArray(node2).indexOf(config.replacementClass)) { + return mutators.replace(mutation); + } + const forSvg = new RegExp("".concat(config.cssPrefix, "-.*")); + delete abstract[0].attributes.id; + if (abstract[0].attributes.class) { + const splitClasses = abstract[0].attributes.class.split(" ").reduce((acc, cls) => { + if (cls === config.replacementClass || cls.match(forSvg)) { + acc.toSvg.push(cls); + } else { + acc.toNode.push(cls); + } + return acc; + }, { + toNode: [], + toSvg: [] + }); + abstract[0].attributes.class = splitClasses.toSvg.join(" "); + if (splitClasses.toNode.length === 0) { + node2.removeAttribute("class"); + } else { + node2.setAttribute("class", splitClasses.toNode.join(" ")); + } + } + const newInnerHTML = abstract.map((a4) => toHtml(a4)).join("\n"); + node2.setAttribute(DATA_FA_I2SVG, ""); + node2.innerHTML = newInnerHTML; + } +}; +function performOperationSync(op) { + op(); +} +function perform(mutations, callback) { + const callbackFunction = typeof callback === "function" ? callback : noop$2; + if (mutations.length === 0) { + callbackFunction(); + } else { + let frame = performOperationSync; + if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { + frame = WINDOW.requestAnimationFrame || performOperationSync; + } + frame(() => { + const mutator = getMutator(); + const mark = perf.begin("mutate"); + mutations.map(mutator); + mark(); + callbackFunction(); + }); + } +} +var disabled = false; +function disableObservation() { + disabled = true; +} +function enableObservation() { + disabled = false; +} +var mo$1 = null; +function observe(options2) { + if (!MUTATION_OBSERVER) { + return; + } + if (!config.observeMutations) { + return; + } + const { + treeCallback = noop$2, + nodeCallback = noop$2, + pseudoElementsCallback = noop$2, + observeMutationsRoot = DOCUMENT + } = options2; + mo$1 = new MUTATION_OBSERVER((objects) => { + if (disabled) return; + const defaultPrefix = getDefaultUsablePrefix(); + toArray(objects).forEach((mutationRecord) => { + if (mutationRecord.type === "childList" && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { + if (config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target); + } + treeCallback(mutationRecord.target); + } + if (mutationRecord.type === "attributes" && mutationRecord.target.parentNode && config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target.parentNode); + } + if (mutationRecord.type === "attributes" && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { + if (mutationRecord.attributeName === "class" && hasPrefixAndIcon(mutationRecord.target)) { + const { + prefix: prefix2, + iconName + } = getCanonicalIcon(classArray(mutationRecord.target)); + mutationRecord.target.setAttribute(DATA_PREFIX, prefix2 || defaultPrefix); + if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName); + } else if (hasBeenReplaced(mutationRecord.target)) { + nodeCallback(mutationRecord.target); + } + } + }); + }); + if (!IS_DOM) return; + mo$1.observe(observeMutationsRoot, { + childList: true, + attributes: true, + characterData: true, + subtree: true + }); +} +function disconnect() { + if (!mo$1) return; + mo$1.disconnect(); +} +function styleParser(node2) { + const style = node2.getAttribute("style"); + let val = []; + if (style) { + val = style.split(";").reduce((acc, style2) => { + const styles2 = style2.split(":"); + const prop = styles2[0]; + const value = styles2.slice(1); + if (prop && value.length > 0) { + acc[prop] = value.join(":").trim(); + } + return acc; + }, {}); + } + return val; +} +function classParser(node2) { + const existingPrefix = node2.getAttribute("data-prefix"); + const existingIconName = node2.getAttribute("data-icon"); + const innerText = node2.innerText !== void 0 ? node2.innerText.trim() : ""; + let val = getCanonicalIcon(classArray(node2)); + if (!val.prefix) { + val.prefix = getDefaultUsablePrefix(); + } + if (existingPrefix && existingIconName) { + val.prefix = existingPrefix; + val.iconName = existingIconName; + } + if (val.iconName && val.prefix) { + return val; + } + if (val.prefix && innerText.length > 0) { + val.iconName = byLigature(val.prefix, node2.innerText) || byUnicode(val.prefix, toHex(node2.innerText)); + } + if (!val.iconName && config.autoFetchSvg && node2.firstChild && node2.firstChild.nodeType === Node.TEXT_NODE) { + val.iconName = node2.firstChild.data; + } + return val; +} +function attributesParser(node2) { + const extraAttributes = toArray(node2.attributes).reduce((acc, attr) => { + if (acc.name !== "class" && acc.name !== "style") { + acc[attr.name] = attr.value; + } + return acc; + }, {}); + const title = node2.getAttribute("title"); + const titleId = node2.getAttribute("data-fa-title-id"); + if (config.autoA11y) { + if (title) { + extraAttributes["aria-labelledby"] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + extraAttributes["aria-hidden"] = "true"; + extraAttributes["focusable"] = "false"; + } + } + return extraAttributes; +} +function blankMeta() { + return { + iconName: null, + title: null, + titleId: null, + prefix: null, + transform: meaninglessTransform, + symbol: false, + mask: { + iconName: null, + prefix: null, + rest: [] + }, + maskId: null, + extra: { + classes: [], + styles: {}, + attributes: {} + } + }; +} +function parseMeta(node2) { + let parser = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { + styleParser: true + }; + const { + iconName, + prefix: prefix2, + rest: extraClasses + } = classParser(node2); + const extraAttributes = attributesParser(node2); + const pluginMeta = chainHooks("parseNodeAttributes", {}, node2); + let extraStyles = parser.styleParser ? styleParser(node2) : []; + return { + iconName, + title: node2.getAttribute("title"), + titleId: node2.getAttribute("data-fa-title-id"), + prefix: prefix2, + transform: meaninglessTransform, + mask: { + iconName: null, + prefix: null, + rest: [] + }, + maskId: null, + symbol: false, + extra: { + classes: extraClasses, + styles: extraStyles, + attributes: extraAttributes + }, + ...pluginMeta + }; +} +var { + styles: styles$2 +} = namespace; +function generateMutation(node2) { + const nodeMeta = config.autoReplaceSvg === "nest" ? parseMeta(node2, { + styleParser: false + }) : parseMeta(node2); + if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { + return callProvided("generateLayersText", node2, nodeMeta); + } else { + return callProvided("generateSvgReplacementMutation", node2, nodeMeta); + } +} +var knownPrefixes = /* @__PURE__ */ new Set(); +FAMILIES.map((family) => { + knownPrefixes.add("fa-".concat(family)); +}); +Object.keys(PREFIX_TO_STYLE[a3]).map(knownPrefixes.add.bind(knownPrefixes)); +Object.keys(PREFIX_TO_STYLE[r3]).map(knownPrefixes.add.bind(knownPrefixes)); +Object.keys(PREFIX_TO_STYLE[o3]).map(knownPrefixes.add.bind(knownPrefixes)); +knownPrefixes = [...knownPrefixes]; +function onTree(root) { + let callback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; + if (!IS_DOM) return Promise.resolve(); + const htmlClassList = DOCUMENT.documentElement.classList; + const hclAdd = (suffix) => htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + const hclRemove = (suffix) => htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + const prefixes2 = config.autoFetchSvg ? knownPrefixes : FAMILIES.map((f$$1) => "fa-".concat(f$$1)).concat(Object.keys(styles$2)); + if (!prefixes2.includes("fa")) { + prefixes2.push("fa"); + } + const prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes2.map((p$$1) => ".".concat(p$$1, ":not([").concat(DATA_FA_I2SVG, "])"))).join(", "); + if (prefixesDomQuery.length === 0) { + return Promise.resolve(); + } + let candidates = []; + try { + candidates = toArray(root.querySelectorAll(prefixesDomQuery)); + } catch (e$$1) { + } + if (candidates.length > 0) { + hclAdd("pending"); + hclRemove("complete"); + } else { + return Promise.resolve(); + } + const mark = perf.begin("onTree"); + const mutations = candidates.reduce((acc, node2) => { + try { + const mutation = generateMutation(node2); + if (mutation) { + acc.push(mutation); + } + } catch (e$$1) { + if (!PRODUCTION) { + if (e$$1.name === "MissingIcon") { + console.error(e$$1); + } + } + } + return acc; + }, []); + return new Promise((resolve, reject) => { + Promise.all(mutations).then((resolvedMutations) => { + perform(resolvedMutations, () => { + hclAdd("active"); + hclAdd("complete"); + hclRemove("pending"); + if (typeof callback === "function") callback(); + mark(); + resolve(); + }); + }).catch((e$$1) => { + mark(); + reject(e$$1); + }); + }); +} +function onNode(node2) { + let callback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; + generateMutation(node2).then((mutation) => { + if (mutation) { + perform([mutation], callback); + } + }); +} +function resolveIcons(next3) { + return function(maybeIconDefinition) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); + let { + mask + } = params; + if (mask) { + mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); + } + return next3(iconDefinition, { + ...params, + mask + }); + }; +} +var render = function(iconDefinition) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + transform: transform2 = meaninglessTransform, + symbol = false, + mask = null, + maskId = null, + title = null, + titleId = null, + classes = [], + attributes = {}, + styles: styles2 = {} + } = params; + if (!iconDefinition) return; + const { + prefix: prefix2, + iconName, + icon: icon2 + } = iconDefinition; + return domVariants({ + type: "icon", + ...iconDefinition + }, () => { + callHooks("beforeDOMElementCreation", { + iconDefinition, + params + }); + if (config.autoA11y) { + if (title) { + attributes["aria-labelledby"] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + attributes["aria-hidden"] = "true"; + attributes["focusable"] = "false"; + } + } + return makeInlineSvgAbstract({ + icons: { + main: asFoundIcon(icon2), + mask: mask ? asFoundIcon(mask.icon) : { + found: false, + width: null, + height: null, + icon: {} + } + }, + prefix: prefix2, + iconName, + transform: { + ...meaninglessTransform, + ...transform2 + }, + symbol, + title, + maskId, + titleId, + extra: { + attributes, + styles: styles2, + classes + } + }); + }); +}; +var ReplaceElements = { + mixout() { + return { + icon: resolveIcons(render) + }; + }, + hooks() { + return { + mutationObserverCallbacks(accumulator) { + accumulator.treeCallback = onTree; + accumulator.nodeCallback = onNode; + return accumulator; + } + }; + }, + provides(providers$$1) { + providers$$1.i2svg = function(params) { + const { + node: node2 = DOCUMENT, + callback = () => { + } + } = params; + return onTree(node2, callback); + }; + providers$$1.generateSvgReplacementMutation = function(node2, nodeMeta) { + const { + iconName, + title, + titleId, + prefix: prefix2, + transform: transform2, + symbol, + mask, + maskId, + extra + } = nodeMeta; + return new Promise((resolve, reject) => { + Promise.all([findIcon(iconName, prefix2), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({ + found: false, + width: 512, + height: 512, + icon: {} + })]).then((_ref3) => { + let [main, mask2] = _ref3; + resolve([node2, makeInlineSvgAbstract({ + icons: { + main, + mask: mask2 + }, + prefix: prefix2, + iconName, + transform: transform2, + symbol, + maskId, + title, + titleId, + extra, + watchable: true + })]); + }).catch(reject); + }); + }; + providers$$1.generateAbstractIcon = function(_ref23) { + let { + children, + attributes, + main, + transform: transform2, + styles: styles2 + } = _ref23; + const styleString = joinStyles(styles2); + if (styleString.length > 0) { + attributes["style"] = styleString; + } + let nextChild; + if (transformIsMeaningful(transform2)) { + nextChild = callProvided("generateAbstractTransformGrouping", { + main, + transform: transform2, + containerWidth: main.width, + iconWidth: main.width + }); + } + children.push(nextChild || main.icon); + return { + children, + attributes + }; + }; + } +}; +var Layers = { + mixout() { + return { + layer(assembler) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + classes = [] + } = params; + return domVariants({ + type: "layer" + }, () => { + callHooks("beforeDOMElementCreation", { + assembler, + params + }); + let children = []; + assembler((args) => { + Array.isArray(args) ? args.map((a4) => { + children = children.concat(a4.abstract); + }) : children = children.concat(args.abstract); + }); + return [{ + tag: "span", + attributes: { + class: ["".concat(config.cssPrefix, "-layers"), ...classes].join(" ") + }, + children + }]; + }); + } + }; + } +}; +var LayersCounter = { + mixout() { + return { + counter(content) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + title = null, + classes = [], + attributes = {}, + styles: styles2 = {} + } = params; + return domVariants({ + type: "counter", + content + }, () => { + callHooks("beforeDOMElementCreation", { + content, + params + }); + return makeLayersCounterAbstract({ + content: content.toString(), + title, + extra: { + attributes, + styles: styles2, + classes: ["".concat(config.cssPrefix, "-layers-counter"), ...classes] + } + }); + }); + } + }; + } +}; +var LayersText = { + mixout() { + return { + text(content) { + let params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const { + transform: transform2 = meaninglessTransform, + title = null, + classes = [], + attributes = {}, + styles: styles2 = {} + } = params; + return domVariants({ + type: "text", + content + }, () => { + callHooks("beforeDOMElementCreation", { + content, + params + }); + return makeLayersTextAbstract({ + content, + transform: { + ...meaninglessTransform, + ...transform2 + }, + title, + extra: { + attributes, + styles: styles2, + classes: ["".concat(config.cssPrefix, "-layers-text"), ...classes] + } + }); + }); + } + }; + }, + provides(providers$$1) { + providers$$1.generateLayersText = function(node2, nodeMeta) { + const { + title, + transform: transform2, + extra + } = nodeMeta; + let width = null; + let height = null; + if (IS_IE) { + const computedFontSize = parseInt(getComputedStyle(node2).fontSize, 10); + const boundingClientRect = node2.getBoundingClientRect(); + width = boundingClientRect.width / computedFontSize; + height = boundingClientRect.height / computedFontSize; + } + if (config.autoA11y && !title) { + extra.attributes["aria-hidden"] = "true"; + } + return Promise.resolve([node2, makeLayersTextAbstract({ + content: node2.innerHTML, + width, + height, + transform: transform2, + title, + extra, + watchable: true + })]); + }; + } +}; +var CLEAN_CONTENT_PATTERN = new RegExp('"', "ug"); +var SECONDARY_UNICODE_RANGE = [1105920, 1112319]; +var _FONT_FAMILY_WEIGHT_TO_PREFIX = { + ...{ + FontAwesome: { + normal: "fas", + 400: "fas" + } + }, + ...eo, + ...ao, + ...mo +}; +var FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => { + acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key]; + return acc; +}, {}); +var FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => { + const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily]; + acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1]; + return acc; +}, {}); +function hexValueFromContent(content) { + const cleaned = content.replace(CLEAN_CONTENT_PATTERN, ""); + const codePoint = codePointAt(cleaned, 0); + const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1]; + const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false; + return { + value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned), + isSecondary: isPrependTen || isDoubled + }; +} +function getPrefix(fontFamily, fontWeight) { + const fontFamilySanitized = fontFamily.replace(/^['"]|['"]$/g, "").toLowerCase(); + const fontWeightInteger = parseInt(fontWeight); + const fontWeightSanitized = isNaN(fontWeightInteger) ? "normal" : fontWeightInteger; + return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized]; +} +function replaceForPosition(node2, position2) { + const pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position2.replace(":", "-")); + return new Promise((resolve, reject) => { + if (node2.getAttribute(pendingAttribute) !== null) { + return resolve(); + } + const children = toArray(node2.children); + const alreadyProcessedPseudoElement = children.filter((c4) => c4.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position2)[0]; + const styles2 = WINDOW.getComputedStyle(node2, position2); + const fontFamily = styles2.getPropertyValue("font-family"); + const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN); + const fontWeight = styles2.getPropertyValue("font-weight"); + const content = styles2.getPropertyValue("content"); + if (alreadyProcessedPseudoElement && !fontFamilyMatch) { + node2.removeChild(alreadyProcessedPseudoElement); + return resolve(); + } else if (fontFamilyMatch && content !== "none" && content !== "") { + const content2 = styles2.getPropertyValue("content"); + let prefix2 = getPrefix(fontFamily, fontWeight); + const { + value: hexValue, + isSecondary + } = hexValueFromContent(content2); + const isV4 = fontFamilyMatch[0].startsWith("FontAwesome"); + let iconName = byUnicode(prefix2, hexValue); + let iconIdentifier = iconName; + if (isV4) { + const iconName4 = byOldUnicode(hexValue); + if (iconName4.iconName && iconName4.prefix) { + iconName = iconName4.iconName; + prefix2 = iconName4.prefix; + } + } + if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix2 || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { + node2.setAttribute(pendingAttribute, iconIdentifier); + if (alreadyProcessedPseudoElement) { + node2.removeChild(alreadyProcessedPseudoElement); + } + const meta = blankMeta(); + const { + extra + } = meta; + extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position2; + findIcon(iconName, prefix2).then((main) => { + const abstract = makeInlineSvgAbstract({ + ...meta, + icons: { + main, + mask: emptyCanonicalIcon() + }, + prefix: prefix2, + iconName: iconIdentifier, + extra, + watchable: true + }); + const element = DOCUMENT.createElementNS("http://www.w3.org/2000/svg", "svg"); + if (position2 === "::before") { + node2.insertBefore(element, node2.firstChild); + } else { + node2.appendChild(element); + } + element.outerHTML = abstract.map((a4) => toHtml(a4)).join("\n"); + node2.removeAttribute(pendingAttribute); + resolve(); + }).catch(reject); + } else { + resolve(); + } + } else { + resolve(); + } + }); +} +function replace2(node2) { + return Promise.all([replaceForPosition(node2, "::before"), replaceForPosition(node2, "::after")]); +} +function processable(node2) { + return node2.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node2.tagName.toUpperCase()) && !node2.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node2.parentNode || node2.parentNode.tagName !== "svg"); +} +function searchPseudoElements(root) { + if (!IS_DOM) return; + return new Promise((resolve, reject) => { + const operations = toArray(root.querySelectorAll("*")).filter(processable).map(replace2); + const end2 = perf.begin("searchPseudoElements"); + disableObservation(); + Promise.all(operations).then(() => { + end2(); + enableObservation(); + resolve(); + }).catch(() => { + end2(); + enableObservation(); + reject(); + }); + }); +} +var PseudoElements = { + hooks() { + return { + mutationObserverCallbacks(accumulator) { + accumulator.pseudoElementsCallback = searchPseudoElements; + return accumulator; + } + }; + }, + provides(providers2) { + providers2.pseudoElements2svg = function(params) { + const { + node: node2 = DOCUMENT + } = params; + if (config.searchPseudoElements) { + searchPseudoElements(node2); + } + }; + } +}; +var _unwatched = false; +var MutationObserver$1 = { + mixout() { + return { + dom: { + unwatch() { + disableObservation(); + _unwatched = true; + } + } + }; + }, + hooks() { + return { + bootstrap() { + observe(chainHooks("mutationObserverCallbacks", {})); + }, + noAuto() { + disconnect(); + }, + watch(params) { + const { + observeMutationsRoot + } = params; + if (_unwatched) { + enableObservation(); + } else { + observe(chainHooks("mutationObserverCallbacks", { + observeMutationsRoot + })); + } + } + }; + } +}; +var parseTransformString = (transformString) => { + let transform2 = { + size: 16, + x: 0, + y: 0, + flipX: false, + flipY: false, + rotate: 0 + }; + return transformString.toLowerCase().split(" ").reduce((acc, n3) => { + const parts = n3.toLowerCase().split("-"); + const first = parts[0]; + let rest = parts.slice(1).join("-"); + if (first && rest === "h") { + acc.flipX = true; + return acc; + } + if (first && rest === "v") { + acc.flipY = true; + return acc; + } + rest = parseFloat(rest); + if (isNaN(rest)) { + return acc; + } + switch (first) { + case "grow": + acc.size = acc.size + rest; + break; + case "shrink": + acc.size = acc.size - rest; + break; + case "left": + acc.x = acc.x - rest; + break; + case "right": + acc.x = acc.x + rest; + break; + case "up": + acc.y = acc.y - rest; + break; + case "down": + acc.y = acc.y + rest; + break; + case "rotate": + acc.rotate = acc.rotate + rest; + break; + } + return acc; + }, transform2); +}; +var PowerTransforms = { + mixout() { + return { + parse: { + transform: (transformString) => { + return parseTransformString(transformString); + } + } + }; + }, + hooks() { + return { + parseNodeAttributes(accumulator, node2) { + const transformString = node2.getAttribute("data-fa-transform"); + if (transformString) { + accumulator.transform = parseTransformString(transformString); + } + return accumulator; + } + }; + }, + provides(providers2) { + providers2.generateAbstractTransformGrouping = function(_ref3) { + let { + main, + transform: transform2, + containerWidth, + iconWidth + } = _ref3; + const outer = { + transform: "translate(".concat(containerWidth / 2, " 256)") + }; + const innerTranslate = "translate(".concat(transform2.x * 32, ", ").concat(transform2.y * 32, ") "); + const innerScale = "scale(".concat(transform2.size / 16 * (transform2.flipX ? -1 : 1), ", ").concat(transform2.size / 16 * (transform2.flipY ? -1 : 1), ") "); + const innerRotate = "rotate(".concat(transform2.rotate, " 0 0)"); + const inner = { + transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) + }; + const path = { + transform: "translate(".concat(iconWidth / 2 * -1, " -256)") + }; + const operations = { + outer, + inner, + path + }; + return { + tag: "g", + attributes: { + ...operations.outer + }, + children: [{ + tag: "g", + attributes: { + ...operations.inner + }, + children: [{ + tag: main.icon.tag, + children: main.icon.children, + attributes: { + ...main.icon.attributes, + ...operations.path + } + }] + }] + }; + }; + } +}; +var ALL_SPACE = { + x: 0, + y: 0, + width: "100%", + height: "100%" +}; +function fillBlack(abstract) { + let force = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + if (abstract.attributes && (abstract.attributes.fill || force)) { + abstract.attributes.fill = "black"; + } + return abstract; +} +function deGroup(abstract) { + if (abstract.tag === "g") { + return abstract.children; + } else { + return [abstract]; + } +} +var Masks = { + hooks() { + return { + parseNodeAttributes(accumulator, node2) { + const maskData = node2.getAttribute("data-fa-mask"); + const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(" ").map((i4) => i4.trim())); + if (!mask.prefix) { + mask.prefix = getDefaultUsablePrefix(); + } + accumulator.mask = mask; + accumulator.maskId = node2.getAttribute("data-fa-mask-id"); + return accumulator; + } + }; + }, + provides(providers2) { + providers2.generateAbstractMask = function(_ref3) { + let { + children, + attributes, + main, + mask, + maskId: explicitMaskId, + transform: transform2 + } = _ref3; + const { + width: mainWidth, + icon: mainPath + } = main; + const { + width: maskWidth, + icon: maskPath + } = mask; + const trans = transformForSvg({ + transform: transform2, + containerWidth: maskWidth, + iconWidth: mainWidth + }); + const maskRect = { + tag: "rect", + attributes: { + ...ALL_SPACE, + fill: "white" + } + }; + const maskInnerGroupChildrenMixin = mainPath.children ? { + children: mainPath.children.map(fillBlack) + } : {}; + const maskInnerGroup = { + tag: "g", + attributes: { + ...trans.inner + }, + children: [fillBlack({ + tag: mainPath.tag, + attributes: { + ...mainPath.attributes, + ...trans.path + }, + ...maskInnerGroupChildrenMixin + })] + }; + const maskOuterGroup = { + tag: "g", + attributes: { + ...trans.outer + }, + children: [maskInnerGroup] + }; + const maskId = "mask-".concat(explicitMaskId || nextUniqueId()); + const clipId = "clip-".concat(explicitMaskId || nextUniqueId()); + const maskTag = { + tag: "mask", + attributes: { + ...ALL_SPACE, + id: maskId, + maskUnits: "userSpaceOnUse", + maskContentUnits: "userSpaceOnUse" + }, + children: [maskRect, maskOuterGroup] + }; + const defs = { + tag: "defs", + children: [{ + tag: "clipPath", + attributes: { + id: clipId + }, + children: deGroup(maskPath) + }, maskTag] + }; + children.push(defs, { + tag: "rect", + attributes: { + fill: "currentColor", + "clip-path": "url(#".concat(clipId, ")"), + mask: "url(#".concat(maskId, ")"), + ...ALL_SPACE + } + }); + return { + children, + attributes + }; + }; + } +}; +var MissingIconIndicator = { + provides(providers2) { + let reduceMotion = false; + if (WINDOW.matchMedia) { + reduceMotion = WINDOW.matchMedia("(prefers-reduced-motion: reduce)").matches; + } + providers2.missingIconAbstract = function() { + const gChildren = []; + const FILL = { + fill: "currentColor" + }; + const ANIMATION_BASE = { + attributeType: "XML", + repeatCount: "indefinite", + dur: "2s" + }; + gChildren.push({ + tag: "path", + attributes: { + ...FILL, + d: "M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z" + } + }); + const OPACITY_ANIMATE = { + ...ANIMATION_BASE, + attributeName: "opacity" + }; + const dot = { + tag: "circle", + attributes: { + ...FILL, + cx: "256", + cy: "364", + r: "28" + }, + children: [] + }; + if (!reduceMotion) { + dot.children.push({ + tag: "animate", + attributes: { + ...ANIMATION_BASE, + attributeName: "r", + values: "28;14;28;28;14;28;" + } + }, { + tag: "animate", + attributes: { + ...OPACITY_ANIMATE, + values: "1;0;1;1;0;1;" + } + }); + } + gChildren.push(dot); + gChildren.push({ + tag: "path", + attributes: { + ...FILL, + opacity: "1", + d: "M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z" + }, + children: reduceMotion ? [] : [{ + tag: "animate", + attributes: { + ...OPACITY_ANIMATE, + values: "1;0;0;0;0;1;" + } + }] + }); + if (!reduceMotion) { + gChildren.push({ + tag: "path", + attributes: { + ...FILL, + opacity: "0", + d: "M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z" + }, + children: [{ + tag: "animate", + attributes: { + ...OPACITY_ANIMATE, + values: "0;0;1;1;0;0;" + } + }] + }); + } + return { + tag: "g", + attributes: { + "class": "missing" + }, + children: gChildren + }; + }; + } +}; +var SvgSymbols = { + hooks() { + return { + parseNodeAttributes(accumulator, node2) { + const symbolData = node2.getAttribute("data-fa-symbol"); + const symbol = symbolData === null ? false : symbolData === "" ? true : symbolData; + accumulator["symbol"] = symbol; + return accumulator; + } + }; + } +}; +var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols]; +registerPlugins(plugins, { + mixoutsTo: api +}); +var noAuto$1 = api.noAuto; +var config$1 = api.config; +var library$1 = api.library; +var dom$1 = api.dom; +var parse$1 = api.parse; +var findIconDefinition$1 = api.findIconDefinition; +var toHtml$1 = api.toHtml; +var icon = api.icon; +var layer = api.layer; +var text = api.text; +var counter = api.counter; + +// node_modules/@fortawesome/react-fontawesome/index.es.js +var import_prop_types = __toESM(require_prop_types()); +function ownKeys2(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function _objectSpread22(target) { + for (var i4 = 1; i4 < arguments.length; i4++) { + var source = null != arguments[i4] ? arguments[i4] : {}; + i4 % 2 ? ownKeys2(Object(source), true).forEach(function(key) { + _defineProperty2(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function _typeof2(obj) { + "@babel/helpers - typeof"; + return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof2(obj); +} +function _defineProperty2(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function _objectWithoutPropertiesLoose2(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i4; + for (i4 = 0; i4 < sourceKeys.length; i4++) { + key = sourceKeys[i4]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; +} +function _objectWithoutProperties2(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose2(source, excluded); + var key, i4; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i4 = 0; i4 < sourceSymbolKeys.length; i4++) { + key = sourceSymbolKeys[i4]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + return target; +} +function _toConsumableArray2(arr) { + return _arrayWithoutHoles2(arr) || _iterableToArray2(arr) || _unsupportedIterableToArray2(arr) || _nonIterableSpread2(); +} +function _arrayWithoutHoles2(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray2(arr); +} +function _iterableToArray2(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function _unsupportedIterableToArray2(o4, minLen) { + if (!o4) return; + if (typeof o4 === "string") return _arrayLikeToArray2(o4, minLen); + var n3 = Object.prototype.toString.call(o4).slice(8, -1); + if (n3 === "Object" && o4.constructor) n3 = o4.constructor.name; + if (n3 === "Map" || n3 === "Set") return Array.from(o4); + if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) return _arrayLikeToArray2(o4, minLen); +} +function _arrayLikeToArray2(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++) arr2[i4] = arr[i4]; + return arr2; +} +function _nonIterableSpread2() { + 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 classList(props) { + var _classes; + var beat = props.beat, fade = props.fade, beatFade = props.beatFade, bounce = props.bounce, shake = props.shake, flash = props.flash, spin = props.spin, spinPulse = props.spinPulse, spinReverse = props.spinReverse, pulse = props.pulse, fixedWidth = props.fixedWidth, inverse = props.inverse, border = props.border, listItem = props.listItem, flip2 = props.flip, size2 = props.size, rotation = props.rotation, pull = props.pull; + var classes = (_classes = { + "fa-beat": beat, + "fa-fade": fade, + "fa-beat-fade": beatFade, + "fa-bounce": bounce, + "fa-shake": shake, + "fa-flash": flash, + "fa-spin": spin, + "fa-spin-reverse": spinReverse, + "fa-spin-pulse": spinPulse, + "fa-pulse": pulse, + "fa-fw": fixedWidth, + "fa-inverse": inverse, + "fa-border": border, + "fa-li": listItem, + "fa-flip": flip2 === true, + "fa-flip-horizontal": flip2 === "horizontal" || flip2 === "both", + "fa-flip-vertical": flip2 === "vertical" || flip2 === "both" + }, _defineProperty2(_classes, "fa-".concat(size2), typeof size2 !== "undefined" && size2 !== null), _defineProperty2(_classes, "fa-rotate-".concat(rotation), typeof rotation !== "undefined" && rotation !== null && rotation !== 0), _defineProperty2(_classes, "fa-pull-".concat(pull), typeof pull !== "undefined" && pull !== null), _defineProperty2(_classes, "fa-swap-opacity", props.swapOpacity), _classes); + return Object.keys(classes).map(function(key) { + return classes[key] ? key : null; + }).filter(function(key) { + return key; + }); +} +function _isNumerical(obj) { + obj = obj - 0; + return obj === obj; +} +function camelize(string2) { + if (_isNumerical(string2)) { + return string2; + } + string2 = string2.replace(/[\-_\s]+(.)?/g, function(match4, chr) { + return chr ? chr.toUpperCase() : ""; + }); + return string2.substr(0, 1).toLowerCase() + string2.substr(1); +} +var _excluded5 = ["style"]; +function capitalize(val) { + return val.charAt(0).toUpperCase() + val.slice(1); +} +function styleToObject(style) { + return style.split(";").map(function(s4) { + return s4.trim(); + }).filter(function(s4) { + return s4; + }).reduce(function(acc, pair) { + var i4 = pair.indexOf(":"); + var prop = camelize(pair.slice(0, i4)); + var value = pair.slice(i4 + 1).trim(); + prop.startsWith("webkit") ? acc[capitalize(prop)] = value : acc[prop] = value; + return acc; + }, {}); +} +function convert2(createElement2, element) { + var extraProps = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + if (typeof element === "string") { + return element; + } + var children = (element.children || []).map(function(child) { + return convert2(createElement2, child); + }); + var mixins = Object.keys(element.attributes || {}).reduce(function(acc, key) { + var val = element.attributes[key]; + switch (key) { + case "class": + acc.attrs["className"] = val; + delete element.attributes["class"]; + break; + case "style": + acc.attrs["style"] = styleToObject(val); + break; + default: + if (key.indexOf("aria-") === 0 || key.indexOf("data-") === 0) { + acc.attrs[key.toLowerCase()] = val; + } else { + acc.attrs[camelize(key)] = val; + } + } + return acc; + }, { + attrs: {} + }); + var _extraProps$style = extraProps.style, existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style, remaining = _objectWithoutProperties2(extraProps, _excluded5); + mixins.attrs["style"] = _objectSpread22(_objectSpread22({}, mixins.attrs["style"]), existingStyle); + return createElement2.apply(void 0, [element.tag, _objectSpread22(_objectSpread22({}, mixins.attrs), remaining)].concat(_toConsumableArray2(children))); +} +var PRODUCTION2 = false; +try { + PRODUCTION2 = false; +} catch (e3) { +} +function log() { + if (!PRODUCTION2 && console && typeof console.error === "function") { + var _console; + (_console = console).error.apply(_console, arguments); + } +} +function normalizeIconArgs(icon2) { + if (icon2 && _typeof2(icon2) === "object" && icon2.prefix && icon2.iconName && icon2.icon) { + return icon2; + } + if (parse$1.icon) { + return parse$1.icon(icon2); + } + if (icon2 === null) { + return null; + } + if (icon2 && _typeof2(icon2) === "object" && icon2.prefix && icon2.iconName) { + return icon2; + } + if (Array.isArray(icon2) && icon2.length === 2) { + return { + prefix: icon2[0], + iconName: icon2[1] + }; + } + if (typeof icon2 === "string") { + return { + prefix: "fas", + iconName: icon2 + }; + } +} +function objectWithKey(key, value) { + return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty2({}, key, value) : {}; +} +var defaultProps2 = { + border: false, + className: "", + mask: null, + maskId: null, + fixedWidth: false, + inverse: false, + flip: false, + icon: null, + listItem: false, + pull: null, + pulse: false, + rotation: null, + size: null, + spin: false, + spinPulse: false, + spinReverse: false, + beat: false, + fade: false, + beatFade: false, + bounce: false, + shake: false, + symbol: false, + title: "", + titleId: null, + transform: null, + swapOpacity: false +}; +var FontAwesomeIcon = /* @__PURE__ */ xn.forwardRef(function(props, ref) { + var allProps = _objectSpread22(_objectSpread22({}, defaultProps2), props); + var iconArgs = allProps.icon, maskArgs = allProps.mask, symbol = allProps.symbol, className = allProps.className, title = allProps.title, titleId = allProps.titleId, maskId = allProps.maskId; + var iconLookup = normalizeIconArgs(iconArgs); + var classes = objectWithKey("classes", [].concat(_toConsumableArray2(classList(allProps)), _toConsumableArray2((className || "").split(" ")))); + var transform2 = objectWithKey("transform", typeof allProps.transform === "string" ? parse$1.transform(allProps.transform) : allProps.transform); + var mask = objectWithKey("mask", normalizeIconArgs(maskArgs)); + var renderedIcon = icon(iconLookup, _objectSpread22(_objectSpread22(_objectSpread22(_objectSpread22({}, classes), transform2), mask), {}, { + symbol, + title, + titleId, + maskId + })); + if (!renderedIcon) { + log("Could not find icon", iconLookup); + return null; + } + var abstract = renderedIcon.abstract; + var extraProps = { + ref + }; + Object.keys(allProps).forEach(function(key) { + if (!defaultProps2.hasOwnProperty(key)) { + extraProps[key] = allProps[key]; + } + }); + return convertCurry(abstract[0], extraProps); +}); +FontAwesomeIcon.displayName = "FontAwesomeIcon"; +FontAwesomeIcon.propTypes = { + beat: import_prop_types.default.bool, + border: import_prop_types.default.bool, + beatFade: import_prop_types.default.bool, + bounce: import_prop_types.default.bool, + className: import_prop_types.default.string, + fade: import_prop_types.default.bool, + flash: import_prop_types.default.bool, + mask: import_prop_types.default.oneOfType([import_prop_types.default.object, import_prop_types.default.array, import_prop_types.default.string]), + maskId: import_prop_types.default.string, + fixedWidth: import_prop_types.default.bool, + inverse: import_prop_types.default.bool, + flip: import_prop_types.default.oneOf([true, false, "horizontal", "vertical", "both"]), + icon: import_prop_types.default.oneOfType([import_prop_types.default.object, import_prop_types.default.array, import_prop_types.default.string]), + listItem: import_prop_types.default.bool, + pull: import_prop_types.default.oneOf(["right", "left"]), + pulse: import_prop_types.default.bool, + rotation: import_prop_types.default.oneOf([0, 90, 180, 270]), + shake: import_prop_types.default.bool, + size: import_prop_types.default.oneOf(["2xs", "xs", "sm", "lg", "xl", "2xl", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x"]), + spin: import_prop_types.default.bool, + spinPulse: import_prop_types.default.bool, + spinReverse: import_prop_types.default.bool, + symbol: import_prop_types.default.oneOfType([import_prop_types.default.bool, import_prop_types.default.string]), + title: import_prop_types.default.string, + titleId: import_prop_types.default.string, + transform: import_prop_types.default.oneOfType([import_prop_types.default.string, import_prop_types.default.object]), + swapOpacity: import_prop_types.default.bool +}; +var convertCurry = convert2.bind(null, xn.createElement); + // src/api/ui/views/table.tsx -var import_react_fontawesome = __toESM(require_react_fontawesome()); function VanillaTable(props) { const columns = useInterning(props.columns, (a4, b3) => { if (a4.length != b3.length) return false; - return a4.every((value, index) => value == b3[index]); + return a4.every((value, index2) => value == b3[index2]); }); const tableRef = A2(null); const totalElements = T2(() => Groupings.count(props.rows), [props.rows]); @@ -49564,6 +46373,7 @@ function TableRow({ level, row, columns }) { return /* @__PURE__ */ u3("tr", { className: "datacore-table-row", style: level ? `padding-left: ${level * 5}px` : void 0, children: columns.map((col) => /* @__PURE__ */ u3(TableRowCell, { row, column: col })) }); } function TableRowCell({ row, column: column2 }) { + var _a; const value = T2(() => column2.value(row), [row, column2.value]); const [editableState, dispatch] = useEditableDispatch({ content: value, @@ -49578,27 +46388,13 @@ function TableRowCell({ row, column: column2 }) { } else return value; }, [row, column2.render, value]); const rendered = useAsElement(renderable); - const Editor = T2(() => { - let e3; - if (column2.editable && column2.editor) e3 = column2.editor(editableState.content, row); - else e3 = null; - if (e3) return { ...e3, props: { ...e3.props, dispatch } }; - return e3; - }, [row, column2.editor, column2.editable, value]); + const { editor: Editor } = column2; return /* @__PURE__ */ u3( "td", { onDblClick: () => dispatch({ type: "editing-toggled", newValue: !editableState.isEditing }), className: "datacore-table-cell", - children: column2.editable ? /* @__PURE__ */ u3( - Editable, - { - defaultRender: rendered, - editor: Editor, - dispatch, - state: editableState - } - ) : rendered + children: column2.editable && editableState.isEditing && Editor ? /* @__PURE__ */ u3(Editor, { dispatch, ...editableState, ...(_a = column2.editorProps) != null ? _a : {} }) : rendered } ); } @@ -49622,7 +46418,7 @@ function SortButton({ else if (direction == "descending") return faSortUp; return faSort; }, [direction]); - return /* @__PURE__ */ u3("div", { onClick, className, children: /* @__PURE__ */ u3(import_react_fontawesome.FontAwesomeIcon, { icon: icon2 }) }); + return /* @__PURE__ */ u3("div", { onClick, className, children: /* @__PURE__ */ u3(FontAwesomeIcon, { icon: icon2 }) }); } var DEFAULT_TABLE_COMPARATOR = (a4, b3, _ao, _bo) => Literals.compare(a4, b3); @@ -49738,16 +46534,16 @@ var _DataArrayImpl = class _DataArrayImpl { } flatMap(f4) { let result = []; - for (let index = 0; index < this.length; index++) { - let value = f4(this.values[index], index, this.values); + for (let index2 = 0; index2 < this.length; index2++) { + let value = f4(this.values[index2], index2, this.values); if (!value || value.length == 0) continue; for (let r4 of value) result.push(r4); } return this.lwrap(result); } mutate(f4) { - for (let index = 0; index < this.values.length; index++) { - f4(this.values[index], index, this.values); + for (let index2 = 0; index2 < this.values.length; index2++) { + f4(this.values[index2], index2, this.values); } return this; } @@ -49766,13 +46562,13 @@ var _DataArrayImpl = class _DataArrayImpl { } /** Return the first element that satisfies the given predicate. */ find(pred) { - let index = this.findIndex(pred); - if (index == -1) return void 0; - else return this.values[index]; + let index2 = this.findIndex(pred); + if (index2 == -1) return void 0; + else return this.values[index2]; } findIndex(pred, fromIndex) { - for (let index = fromIndex != null ? fromIndex : 0; index < this.length; index++) { - if (pred(this.values[index], index, this.values)) return index; + for (let index2 = fromIndex != null ? fromIndex : 0; index2 < this.length; index2++) { + if (pred(this.values[index2], index2, this.values)) return index2; } return -1; } @@ -49786,8 +46582,8 @@ var _DataArrayImpl = class _DataArrayImpl { if (this.values.length == 0) return this; let realComparator = comparator != null ? comparator : this.defaultComparator; let realKey = key != null ? key : (l4) => l4; - let copy2 = [].concat(this.array()).map((elem, index) => { - return { index, value: elem }; + let copy2 = [].concat(this.array()).map((elem, index2) => { + return { index: index2, value: elem }; }); copy2.sort((a4, b3) => { let aKey = realKey(a4.value, a4.index, this.values); @@ -49814,14 +46610,14 @@ var _DataArrayImpl = class _DataArrayImpl { let result = []; let currentRow = [intermediate[0]]; let current = key(intermediate[0], 0, intermediate.values); - for (let index = 1; index < intermediate.length; index++) { - let newKey = key(intermediate[index], index, intermediate.values); + for (let index2 = 1; index2 < intermediate.length; index2++) { + let newKey = key(intermediate[index2], index2, intermediate.values); if (comparator(current, newKey) != 0) { result.push({ key: current, rows: currentRow }); current = newKey; - currentRow = [intermediate[index]]; + currentRow = [intermediate[index2]]; } else { - currentRow.push(intermediate[index]); + currentRow.push(intermediate[index2]); } } result.push({ key: current, rows: currentRow }); @@ -49842,14 +46638,14 @@ var _DataArrayImpl = class _DataArrayImpl { distinct(key, comparator) { if (this.values.length == 0) return this; let realKey = key != null ? key : (x4) => x4; - let intermediate = this.map((x4, index) => { - return { key: realKey(x4, index, this.values), value: x4 }; + let intermediate = this.map((x4, index2) => { + return { key: realKey(x4, index2, this.values), value: x4 }; }).sort((x4) => x4.key, "asc", comparator); comparator = comparator != null ? comparator : this.defaultComparator; let result = [intermediate[0].value]; - for (let index = 1; index < intermediate.length; index++) { - if (comparator(intermediate[index - 1].key, intermediate[index].key) != 0) { - result.push(intermediate[index].value); + for (let index2 = 1; index2 < intermediate.length; index2++) { + if (comparator(intermediate[index2 - 1].key, intermediate[index2].key) != 0) { + result.push(intermediate[index2].value); } } return this.lwrap(result); @@ -49892,19 +46688,19 @@ var _DataArrayImpl = class _DataArrayImpl { let result = []; let queue = [].concat(this.values); while (queue.length > 0) { - let next2 = queue.pop(); - let value = next2[key]; + let next3 = queue.pop(); + let value = next3[key]; if (value === void 0 || value === null) continue; if (Array.isArray(value)) value.forEach((v3) => queue.push(v3)); else if (value instanceof _DataArrayImpl) value.forEach((v3) => queue.push(v3)); else queue.push(value); - result.push(next2); + result.push(next3); } return this.lwrap(result); } forEach(f4) { - for (let index = 0; index < this.values.length; index++) { - f4(this.values[index], index, this.values); + for (let index2 = 0; index2 < this.values.length; index2++) { + f4(this.values[index2], index2, this.values); } } array() { @@ -50054,11 +46850,11 @@ var Coerce; } else return void 0; } Coerce2.link = link; - function array(value) { + function array2(value) { if (Array.isArray(value)) return value; else return [value]; } - Coerce2.array = array; + Coerce2.array = array2; })(Coerce || (Coerce = {})); // src/utils/deferred.ts @@ -50226,15 +47022,15 @@ function EditableTextField(props) { return /* @__PURE__ */ u3( ControlledEditableTextField, { - text: (_a = field == null ? void 0 : field.value) != null ? _a : defaultValue, + content: (_a = field == null ? void 0 : field.value) != null ? _a : defaultValue, inline: inline2, dispatch } ); } function ControlledEditableTextField(props) { - const { text: text2, inline: inline2, dispatch } = props; - const [textState, setText] = h2(text2); + const { content, inline: inline2, dispatch } = props; + const [textState, setText] = h2(content); const onInput = async (e3) => { setText(e3.currentTarget.value); if (props.inline) { @@ -50249,7 +47045,7 @@ function ControlledEditableTextField(props) { } } }; - return /* @__PURE__ */ u3(UncontrolledTextEditable, { text: text2, inline: inline2, dispatch, onInput }); + return /* @__PURE__ */ u3(UncontrolledTextEditable, { text: content, inline: inline2, dispatch, onInput }); } function FieldSlider(props) { var _a; @@ -50397,15 +47193,15 @@ var TreeUtils; TreeUtils2.count = count; function sliceInTreeRow(elements, start, end2) { if (end2 <= start) return []; - let index = 0, seen = 0; - while (index < elements.length && seen + countInTreeRow(elements[index]) <= start) { - seen += countInTreeRow(elements[index]); - index++; + let index2 = 0, seen = 0; + while (index2 < elements.length && seen + countInTreeRow(elements[index2]) <= start) { + seen += countInTreeRow(elements[index2]); + index2++; } - if (index >= elements.length) return []; + if (index2 >= elements.length) return []; const result = []; - while (index < elements.length && seen < end2) { - const group = elements[index]; + while (index2 < elements.length && seen < end2) { + const group = elements[index2]; const groupSize = countInTreeRow(group); const groupStart = Math.max(seen, start); const groupEnd = Math.min(groupSize + seen, end2); @@ -50414,19 +47210,19 @@ var TreeUtils; children: sliceInTreeRow(group.children, groupStart - seen, groupEnd - seen) }); seen += groupSize; - index++; + index2++; } return result; } function slice2(elements, start, end2) { let initial2 = [...Groupings.slice(elements, start, end2)]; - let index = 0, seen = 0; + let index2 = 0, seen = 0; for (let element of initial2) { if (Groupings.isElementGroup(element)) { let groupSize = Groupings.count(elements); let groupStart = Math.min(seen, start); let groupEnd = Math.min(groupSize, end2); - initial2[index].rows = Groupings.slice( + initial2[index2].rows = Groupings.slice( element.rows, groupStart, groupEnd @@ -50435,7 +47231,7 @@ var TreeUtils; } else { seen += countInTreeRow(element); } - index++; + index2++; } return initial2; } @@ -50454,11 +47250,11 @@ var TreeUtils; } return 0; }; - const map = (t4) => { + const map = (t5) => { let r4; - if (Groupings.isElementGroup(t4)) - r4 = { ...t4, rows: sort(t4.rows, comparators).map(map) }; - else r4 = { ...t4, children: sort(t4.children, comparators).map(map) }; + if (Groupings.isElementGroup(t5)) + r4 = { ...t5, rows: sort(t5.rows, comparators).map(map) }; + else r4 = { ...t5, children: sort(t5.children, comparators).map(map) }; return r4; }; return rows.map(map).sort(realComparator); @@ -50478,14 +47274,14 @@ function useKeyFn(id, ...deps) { ); return ret; } -function treeTableReducer(state, action) { +function treeTableReducer(state2, action) { switch (action.type) { case "sort-column": if (action.direction == void 0) { - return { ...state, sortOn: void 0 }; + return { ...state2, sortOn: void 0 }; } else { return { - ...state, + ...state2, sortOn: [ { type: "column", @@ -50497,15 +47293,15 @@ function treeTableReducer(state, action) { } case "row-expand": const newMap = /* @__PURE__ */ new Map(); - if (!state.openMap) return { ...state }; - for (const k4 of state.openMap.keys()) newMap.set(k4, state.openMap.get(k4)); - newMap.set(state.id(action.row), action.newValue); - return { ...state, openMap: newMap }; + if (!state2.openMap) return { ...state2 }; + for (const k4 of state2.openMap.keys()) newMap.set(k4, state2.openMap.get(k4)); + newMap.set(state2.id(action.row), action.newValue); + return { ...state2, openMap: newMap }; case "open-map-changed": - return { ...state, openMap: action.newValue }; + return { ...state2, openMap: action.newValue }; } console.warn("datacore: Encountered unrecognized operation: " + action.type); - return state; + return state2; } function useTreeTableDispatch(initial2) { const init = T2(() => typeof initial2 == "function" ? initial2() : initial2, []); @@ -50629,6 +47425,7 @@ function TreeTableRowCell({ level, isFirst = false }) { + var _a; const value = T2(() => column2.value(row.value), [row.value, column2.value, column2.value(row.value)]); const updater = q2( (v3) => { @@ -50651,35 +47448,21 @@ function TreeTableRowCell({ else return renderedColumn; }, [column2.render, value, editableState.content, renderedColumn, row.value, updater]); const rendered = useAsElement(renderable); - const Editor = T2(() => { - let e3; - if (column2.editable && column2.editor) e3 = column2.editor(editableState.content, row.value); - else e3 = null; - if (e3) return Object.assign(e3, { props: Object.assign(e3.props, { dispatch }) }); - return e3; - }, [column2.editor, column2.editable, editableState.content, row.value]); + const { editor: Editor } = column2; return /* @__PURE__ */ u3( "td", { style: { paddingLeft: isFirst ? `${(level - 1) * 1.2}em` : void 0 }, onDblClick: () => dispatch({ type: "editing-toggled", newValue: !editableState.isEditing }), className: "datacore-table-cell", - children: column2.editable ? /* @__PURE__ */ u3( - Editable, - { - defaultRender: rendered, - editor: Editor, - dispatch, - state: editableState - } - ) : rendered + children: column2.editable && editableState.isEditing && Editor ? /* @__PURE__ */ u3(Editor, { dispatch, ...editableState, ...(_a = column2.editorProps) != null ? _a : {} }) : rendered } ); } function ControlledTreeTableView(props) { const columns = useInterning(props.columns, (a4, b3) => { if (a4.length != b3.length) return false; - return a4.every((value, index) => value == b3[index]); + return a4.every((value, index2) => value == b3[index2]); }); const totalElements = T2(() => { if (Groupings.isGrouping(props.rows)) return Groupings.count(props.rows); @@ -50768,19 +47551,19 @@ function ControlledTreeTableView(props) { } function TreeTableView(props) { var _a; - const [state, dispatch] = useTreeTableDispatch({ + const [state2, dispatch] = useTreeTableDispatch({ sortOn: (_a = props.sortOn) != null ? _a : [], id: props.id ? props.id : (x4) => x4.$id }); - const refState = T2(() => A2(state), [state]); - if (state.openMap !== void 0) refState.current = state; + const refState = T2(() => A2(state2), [state2]); + if (state2.openMap !== void 0) refState.current = state2; else refState.current.openMap = /* @__PURE__ */ new Map(); y2(() => { var _a2; dispatch({ type: "open-map-changed", newValue: (_a2 = refState.current.openMap) != null ? _a2 : /* @__PURE__ */ new Map() }); }, [dispatch]); delete props.sortOn; - return /* @__PURE__ */ u3(ControlledTreeTableView, { dispatch, ...state, ...props }); + return /* @__PURE__ */ u3(ControlledTreeTableView, { dispatch, ...state2, ...props }); } // src/api/local-api.tsx @@ -50893,6 +47676,7 @@ var DatacoreLocalApi = class { this.Slider = Slider; this.Switch = Switch; this.VanillaSelect = VanillaSelect; + this.VanillaTextBox = ControlledEditableTextField; ///////////////////////// // field editors // ///////////////////////// @@ -50901,7 +47685,6 @@ var DatacoreLocalApi = class { this.FieldSelect = FieldSelect; this.FieldSwitch = FieldSwitch; this.TextField = EditableTextField; - this.VanillaTextBox = ControlledEditableTextField; this.scriptCache = new ScriptCache(this.core.datastore); } /** The current file path for the local API. */ @@ -50918,7 +47701,7 @@ var DatacoreLocalApi = class { } /** Get access to preact functions. */ get preact() { - return preact_exports; + return preact_module_exports; } /** Central Obsidian app object. */ get app() { @@ -50984,8 +47767,8 @@ var DatacoreLocalApi = class { return this.api.tryParseLink(linktext); } /** Create a data array from a regular array. */ - array(input) { - return DataArray.wrap(input); + array(input2) { + return DataArray.wrap(input2); } /** Sets the text of a given task programmatically. */ setTaskText(newText, task) { @@ -50996,8 +47779,8 @@ var DatacoreLocalApi = class { completeTask(completed, task, this.app.vault, this.core); } /** Memoize the input automatically and process it using a Data Array; returns a vanilla array back. */ - useArray(input, process2, deps) { - return T2(() => process2(DataArray.wrap(input)).array(), [input, ...deps != null ? deps : []]); + useArray(input2, process2, deps) { + return T2(() => process2(DataArray.wrap(input2)).array(), [input2, ...deps != null ? deps : []]); } /** Use the file metadata for the current file. Automatically updates the view when the current file metadata changes. */ useCurrentFile(settings) { @@ -51030,7 +47813,7 @@ var DatacoreLocalApi = class { }; // src/api/api.ts -var import_parsimmon = __toESM(require_parsimmon()); +var import_parsimmon = __toESM(require_parsimmon_umd_min()); var DatacoreApi = class { constructor(core) { this.core = core; @@ -51046,7 +47829,7 @@ var DatacoreApi = class { } /** Get access to preact functions. */ get preact() { - return preact_exports; + return preact_module_exports; } /** Central Obsidian app object. */ get app() { @@ -51126,8 +47909,8 @@ var DatacoreApi = class { return Result.success(parsed.value); } /** Create a data array from a regular array. */ - array(input) { - return DataArray.wrap(input); + array(input2) { + return DataArray.wrap(input2); } ///////////////////// // Visual Elements // @@ -51633,12 +48416,12 @@ var FunctionBuilder = class { let result = []; for (let vpos = 0; vpos < minLength; vpos++) { let subargs = []; - for (let index = 0; index < args.length; index++) { - if (vectorizedPositions.includes(index)) { - let arr = args[index]; + for (let index2 = 0; index2 < args.length; index2++) { + if (vectorizedPositions.includes(index2)) { + let arr = args[index2]; subargs.push(arr[vpos]); } else { - subargs.push(args[index]); + subargs.push(args[index2]); } } result.push(self2(context, ...subargs)); @@ -51649,8 +48432,8 @@ var FunctionBuilder = class { outer: for (let variant of this.variants) { if (variant.varargs) return variant.impl(context, ...args); if (variant.args.length != types.length) continue; - for (let index = 0; index < variant.args.length; index++) { - if (variant.args[index] != "*" && variant.args[index] != types[index]) continue outer; + for (let index2 = 0; index2 < variant.args.length; index2++) { + if (variant.args[index2] != "*" && variant.args[index2] != types[index2]) continue outer; } return variant.impl(context, ...args); } @@ -51682,14 +48465,14 @@ var DefaultFunctions; DefaultFunctions2.object = (_context, ...args) => { if (args.length % 2 != 0) throw Error("object() requires an even number of arguments"); let result = {}; - for (let index = 0; index < args.length; index += 2) { - let key = args[index]; + for (let index2 = 0; index2 < args.length; index2 += 2) { + let key = args[index2]; if (!Literals.isString(key)) throw Error("keys should be of type string for object(key1, value1, ...)"); - result[key] = args[index + 1]; + result[key] = args[index2 + 1]; } return result; }; - DefaultFunctions2.link = new FunctionBuilder("link").add1("string", (a4, c4) => Link.file(c4.linkHandler.normalize(a4), false)).add1("link", (a4) => a4).add1("null", (_a) => null).vectorize(1, [0]).add2("string", "string", (t4, d3, c4) => Link.file(c4.linkHandler.normalize(t4), false, d3)).add3("string", "string", "boolean", (t4, d3, e3, c4) => Link.file(c4.linkHandler.normalize(t4), e3, d3)).add2("link", "string", (t4, d3) => t4.withDisplay(d3)).add2("null", "*", () => null).add2("*", "null", (t4, _n2, c4) => (0, DefaultFunctions2.link)(c4, t4)).vectorize(2, [0, 1]).build(); + DefaultFunctions2.link = new FunctionBuilder("link").add1("string", (a4, c4) => Link.file(c4.linkHandler.normalize(a4), false)).add1("link", (a4) => a4).add1("null", (_a) => null).vectorize(1, [0]).add2("string", "string", (t5, d3, c4) => Link.file(c4.linkHandler.normalize(t5), false, d3)).add3("string", "string", "boolean", (t5, d3, e3, c4) => Link.file(c4.linkHandler.normalize(t5), e3, d3)).add2("link", "string", (t5, d3) => t5.withDisplay(d3)).add2("null", "*", () => null).add2("*", "null", (t5, _n2, c4) => (0, DefaultFunctions2.link)(c4, t5)).vectorize(2, [0, 1]).build(); DefaultFunctions2.embed = new FunctionBuilder("embed").add1("link", (l4) => l4.toEmbed()).vectorize(1, [0]).add2("link", "boolean", (l4, e3, c4) => e3 ? l4.toEmbed() : l4.fromEmbed()).add1("null", () => null).add2("null", "*", () => null).add2("*", "null", () => null).vectorize(2, [0, 1]).build(); DefaultFunctions2.date = new FunctionBuilder("date").add1("string", (str) => { let parsedDate = PRIMITIVES.datePlus.parse(str); @@ -51710,8 +48493,8 @@ var DefaultFunctions; return null; }).add2("string", "string", (d3, f4) => { if (f4 === "x" || f4 === "X") { - let match3 = NUMBER_REGEX.exec(d3); - if (match3) return DateTime.fromMillis(Number.parseInt(match3[0]) * (f4 === "X" ? 1e3 : 1)); + let match4 = NUMBER_REGEX.exec(d3); + if (match4) return DateTime.fromMillis(Number.parseInt(match4[0]) * (f4 === "X" ? 1e3 : 1)); else { throw Error("Not a number for format( (${ f }): ${ d }"); } @@ -51732,8 +48515,8 @@ var DefaultFunctions; DefaultFunctions2.localtime = new FunctionBuilder("localtime").add1("date", (d3) => d3.toLocal()).add1("null", () => null).vectorize(1, [0]).build(); const NUMBER_REGEX = /-?[0-9]+(\.[0-9]+)?/; DefaultFunctions2.number = new FunctionBuilder("number").add1("number", (a4) => a4).add1("string", (str) => { - let match3 = NUMBER_REGEX.exec(str); - if (match3) return Number.parseFloat(match3[0]); + let match4 = NUMBER_REGEX.exec(str); + if (match4) return Number.parseFloat(match4[0]); else return null; }).add1("null", () => null).vectorize(1, [0]).build(); DefaultFunctions2.string = new FunctionBuilder("string").add1("*", (a4, ctx) => Literals.toString(a4, stringSettings(ctx.settings))).build(); @@ -51803,8 +48586,8 @@ var DefaultFunctions; let object2 = args[0]; if (Literals.isArray(object2)) return object2.map((v3) => (0, DefaultFunctions2.extract)(context, v3, ...args.slice(1))); let result = {}; - for (let index = 1; index < args.length; index++) { - let key = args[index]; + for (let index2 = 1; index2 < args.length; index2++) { + let key = args[index2]; if (!Literals.isString(key)) throw Error("extract(object, key1, ...) must be called with string keys"); result[key] = context.evaluate(Expressions.index(Expressions.literal(object2), Expressions.literal(key))).orElseThrow(); } @@ -51812,7 +48595,7 @@ var DefaultFunctions; }; DefaultFunctions2.reverse = new FunctionBuilder("reverse").add1("array", (l4) => { let result = []; - for (let index = l4.length - 1; index >= 0; index--) result.push(l4[index]); + for (let index2 = l4.length - 1; index2 >= 0; index2--) result.push(l4[index2]); return result; }).add1("string", (l4) => { let result = ""; @@ -51870,25 +48653,25 @@ var DefaultFunctions; if (op != "+" && op != "-" && op != "*" && op != "/" && op != "&" && op != "|") throw Error("reduce(array, op) supports '+', '-', '/', '*', '&', and '|'"); let value = lis[0]; - for (let index = 1; index < lis.length; index++) { - value = context.evaluate(Expressions.binaryOp(Expressions.literal(value), op, Expressions.literal(lis[index]))).orElseThrow(); + for (let index2 = 1; index2 < lis.length; index2++) { + value = context.evaluate(Expressions.binaryOp(Expressions.literal(value), op, Expressions.literal(lis[index2]))).orElseThrow(); } return value; }).add2("array", "function", (lis, op, context) => { if (lis.length == 0) return null; let value = lis[0]; - for (let index = 1; index < lis.length; index++) { - if (Literals.isNull(lis[index])) continue; - value = op(context, value, lis[index]); + for (let index2 = 1; index2 < lis.length; index2++) { + if (Literals.isNull(lis[index2])) continue; + value = op(context, value, lis[index2]); } return value; }).add2("null", "*", () => null).add2("*", "null", () => null).vectorize(2, [1]).build(); DefaultFunctions2.sum = new FunctionBuilder("sum").add1("array", (arr, c4) => (0, DefaultFunctions2.reduce)(c4, arr, "+")).add1("*", (e3) => e3).build(); - DefaultFunctions2.average = new FunctionBuilder("average").add1("array", (array, context) => { - if (array.length == 0) return null; - const add = (0, DefaultFunctions2.sum)(context, array); + DefaultFunctions2.average = new FunctionBuilder("average").add1("array", (array2, context) => { + if (array2.length == 0) return null; + const add = (0, DefaultFunctions2.sum)(context, array2); if (add == null || add == void 0) return null; - return context.evaluate(Expressions.binaryOp(Expressions.literal(add), "/", Expressions.literal(array.length))).orElseThrow(); + return context.evaluate(Expressions.binaryOp(Expressions.literal(add), "/", Expressions.literal(array2.length))).orElseThrow(); }).add1("*", (e3) => e3).build(); DefaultFunctions2.product = new FunctionBuilder("product").add1("array", (arr, c4) => (0, DefaultFunctions2.reduce)(c4, arr, "*")).add1("*", (e3) => e3).build(); DefaultFunctions2.join = new FunctionBuilder("join").add2( @@ -52697,7 +49480,7 @@ var Datastore = class { query.values, (value) => this._filterFields( query.field, - (index) => index.equals(value), + (index2) => index2.equals(value), (field) => Literals.compare(value, field.value) == 0 ) ); @@ -52706,12 +49489,12 @@ var Datastore = class { /** Filter documents by field values, using the fast lookup if it returns a result and otherwise filtering over every document using the slow predicate. */ _filterFields(key, fast, slow) { const normkey = key.toLowerCase(); - const index = this.fields.get(normkey); - if (index == null) return Filters.NOTHING; - const fastlookup = fast(index); + const index2 = this.fields.get(normkey); + if (index2 == null) return Filters.NOTHING; + const fastlookup = fast(index2); if (fastlookup != null) return Filters.atom(fastlookup); const matches = /* @__PURE__ */ new Set(); - for (const objectId of index.all()) { + for (const objectId of index2.all()) { const object = this.objects.get(objectId); if (!object || !object.$types.contains(FIELDBEARING_TYPE)) continue; const field = object.field(normkey); @@ -52851,7 +49634,7 @@ function inlineWorker(scriptText) { // src/index/web-worker/importer.worker.ts function Worker2() { - return inlineWorker('var cl=Object.create;var Js=Object.defineProperty,fl=Object.defineProperties,dl=Object.getOwnPropertyDescriptor,hl=Object.getOwnPropertyDescriptors,ml=Object.getOwnPropertyNames,qr=Object.getOwnPropertySymbols,pl=Object.getPrototypeOf,zs=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable;var Hs=(n,e)=>(e=Symbol[n])?e:Symbol.for("Symbol."+n),Dl=n=>{throw TypeError(n)};var Ao=(n,e,t)=>e in n?Js(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,R=(n,e)=>{for(var t in e||(e={}))zs.call(e,t)&&Ao(n,t,e[t]);if(qr)for(var t of qr(e))Mo.call(e,t)&&Ao(n,t,e[t]);return n},ye=(n,e)=>fl(n,hl(e));var Ys=(n,e)=>{var t={};for(var r in n)zs.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&qr)for(var r of qr(n))e.indexOf(r)<0&&Mo.call(n,r)&&(t[r]=n[r]);return t};var _o=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var yl=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ml(e))!zs.call(n,s)&&s!==t&&Js(n,s,{get:()=>e[s],enumerable:!(r=dl(e,s))||r.enumerable});return n};var Vr=(n,e,t)=>(t=n!=null?cl(pl(n)):{},yl(e||!n||!n.__esModule?Js(t,"default",{value:n,enumerable:!0}):t,n));var gl=function(n,e){this[0]=n,this[1]=e};var S=n=>{var e=n[Hs("asyncIterator")],t=!1,r,s={};return e==null?(e=n[Hs("iterator")](),r=i=>s[i]=o=>e[i](o)):(e=e.call(n),r=i=>s[i]=o=>{if(t){if(t=!1,i==="throw")throw o;return o}return t=!0,{done:!1,value:new gl(new Promise(a=>{var u=e[i](o);u instanceof Object||Dl("Object expected"),a(u)}),1)}}),s[Hs("iterator")]=()=>s,r("next"),"throw"in e?r("throw"):s.throw=i=>{throw i},"return"in e&&r("return"),s};var ns=_o((mr,Ai)=>{(function(n,e){typeof mr=="object"&&typeof Ai=="object"?Ai.exports=e():typeof define=="function"&&define.amd?define([],e):typeof mr=="object"?mr.Parsimmon=e():n.Parsimmon=e()})(typeof self!="undefined"?self:mr,function(){return function(n){var e={};function t(r){if(e[r])return e[r].exports;var s=e[r]={i:r,l:!1,exports:{}};return n[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}return t.m=n,t.c=e,t.d=function(r,s,i){t.o(r,s)||Object.defineProperty(r,s,{configurable:!1,enumerable:!0,get:i})},t.r=function(r){Object.defineProperty(r,"__esModule",{value:!0})},t.n=function(r){var s=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(s,"a",s),s},t.o=function(r,s){return Object.prototype.hasOwnProperty.call(r,s)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";function r(c){if(!(this instanceof r))return new r(c);this._=c}var s=r.prototype;function i(c,p){for(var E=0;E>7),buf:function(L){var A=o(function(M,U,te,Ee){return M.concat(te===Ee.length-1?Buffer.from([U,0]).readUInt16BE(0):Ee.readUInt16BE(te))},[],L);return Buffer.from(a(function(M){return(M<<1&65535)>>8},A))}(E.buf)}}),E}function l(){return typeof Buffer!="undefined"}function f(){if(!l())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function d(c){f();var p=o(function(A,M){return A+M},0,c);if(p%8!=0)throw new Error("The bits ["+c.join(", ")+"] add up to "+p+" which is not an even number of bytes; the total should be divisible by 8");var E,k=p/8,L=(E=function(A){return A>48},o(function(A,M){return A||(E(M)?M:A)},null,c));if(L)throw new Error(L+" bit range requested exceeds 48 bit (6 byte) Number max.");return new r(function(A,M){var U=k+M;return U>A.length?v(M,k.toString()+" bytes"):w(U,o(function(te,Ee){var me=u(Ee,te.buf);return{coll:te.coll.concat(me.v),buf:me.buf}},{coll:[],buf:A.slice(M,U)},c).coll)})}function m(c,p){return new r(function(E,k){return f(),k+p>E.length?v(k,p+" bytes for "+c):w(k+p,E.slice(k,k+p))})}function h(c,p){if(typeof(E=p)!="number"||Math.floor(E)!==E||p<0||p>6)throw new Error(c+" requires integer length in range [0, 6].");var E}function b(c){return h("uintBE",c),m("uintBE("+c+")",c).map(function(p){return p.readUIntBE(0,c)})}function g(c){return h("uintLE",c),m("uintLE("+c+")",c).map(function(p){return p.readUIntLE(0,c)})}function D(c){return h("intBE",c),m("intBE("+c+")",c).map(function(p){return p.readIntBE(0,c)})}function T(c){return h("intLE",c),m("intLE("+c+")",c).map(function(p){return p.readIntLE(0,c)})}function I(c){return c instanceof r}function N(c){return{}.toString.call(c)==="[object Array]"}function y(c){return l()&&Buffer.isBuffer(c)}function w(c,p){return{status:!0,index:c,value:p,furthest:-1,expected:[]}}function v(c,p){return N(p)||(p=[p]),{status:!1,index:-1,value:null,furthest:c,expected:p}}function x(c,p){if(!p||c.furthest>p.furthest)return c;var E=c.furthest===p.furthest?function(k,L){if(function(){if(r._supportsSet!==void 0)return r._supportsSet;var ht=typeof Set!="undefined";return r._supportsSet=ht,ht}()&&Array.from){for(var A=new Set(k),M=0;M=0;){if(M in E){k=E[M].line,A===0&&(A=E[M].lineStart);break}(c.charAt(M)===`\n`||c.charAt(M)==="\\r"&&c.charAt(M+1)!==`\n`)&&(L++,A===0&&(A=M+1)),M--}var U=k+L,te=p-A;return E[p]={line:U,lineStart:A},{offset:p,line:U+1,column:te+1}}function j(c){if(!I(c))throw new Error("not a parser: "+c)}function Y(c,p){return typeof c=="string"?c.charAt(p):c[p]}function ee(c){if(typeof c!="number")throw new Error("not a number: "+c)}function ae(c){if(typeof c!="function")throw new Error("not a function: "+c)}function O(c){if(typeof c!="string")throw new Error("not a string: "+c)}var $=2,Q=3,ue=8,De=5*ue,Re=4*ue,Qt=" ";function Mt(c,p){return new Array(p+1).join(c)}function _t(c,p,E){var k=p-c.length;return k<=0?c:Mt(E,k)+c}function Ae(c,p,E,k){return{from:c-p>0?c-p:0,to:c+E>k?k:c+E}}function Bt(c,p){var E,k,L,A,M,U=p.index,te=U.offset,Ee=1;if(te===c.length)return"Got the end of the input";if(y(c)){var me=te-te%ue,dt=te-me,ve=Ae(me,De,Re+ue,c.length),ht=a(function(le){return a(function(en){return _t(en.toString(16),2,"0")},le)},function(le,en){var tn=le.length,Rt=[],nn=0;if(tn<=en)return[le.slice()];for(var rn=0;rn=4&&(E+=1),Ee=2,L=a(function(le){return le.length<=4?le.join(" "):le.slice(0,4).join(" ")+" "+le.slice(4).join(" ")},ht),(M=(8*(A.to>0?A.to-1:A.to)).toString(16).length)<2&&(M=2)}else{var Xt=c.split(/\\r\\n|[\\n\\r\\u2028\\u2029]/);E=U.column-1,k=U.line-1,A=Ae(k,$,Q,Xt.length),L=Xt.slice(A.from,A.to),M=A.to.toString().length}var ll=k-A.from;return y(c)&&(M=(8*(A.to>0?A.to-1:A.to)).toString(16).length)<2&&(M=2),o(function(le,en,tn){var Rt,nn=tn===ll,rn=nn?"> ":Qt;return Rt=y(c)?_t((8*(A.from+tn)).toString(16),M,"0"):_t((A.from+tn+1).toString(),M," "),[].concat(le,[rn+Rt+" | "+en],nn?[Qt+Mt(" ",M)+" | "+_t("",E," ")+Mt("^",Ee)]:[])},[],L).join(`\n`)}function So(c,p){return[`\n`,"-- PARSING FAILED "+Mt("-",50),`\n\n`,Bt(c,p),`\n\n`,(E=p.expected,E.length===1?`Expected:\n\n`+E[0]:`Expected one of the following: \n\n`+E.join(", ")),`\n`].join("");var E}function ko(c){return c.flags!==void 0?c.flags:[c.global?"g":"",c.ignoreCase?"i":"",c.multiline?"m":"",c.unicode?"u":"",c.sticky?"y":""].join("")}function Br(){for(var c=[].slice.call(arguments),p=c.length,E=0;E=2?ee(p):p=0;var E=function(L){return RegExp("^(?:"+L.source+")",ko(L))}(c),k=""+c;return r(function(L,A){var M=E.exec(L.slice(A));if(M){if(0<=p&&p<=M.length){var U=M[0],te=M[p];return w(A+U.length,te)}return v(A,"valid match group (0 to "+M.length+") in "+k)}return v(A,k)})}function $t(c){return r(function(p,E){return w(E,c)})}function $r(c){return r(function(p,E){return v(E,c)})}function Rr(c){if(I(c))return r(function(p,E){var k=c._(p,E);return k.index=E,k.value="",k});if(typeof c=="string")return Rr(Bn(c));if(c instanceof RegExp)return Rr(ft(c));throw new Error("not a string, regexp, or parser: "+c)}function vo(c){return j(c),r(function(p,E){var k=c._(p,E),L=p.slice(E,k.index);return k.status?v(E,\'not "\'+L+\'"\'):w(E,null)})}function jr(c){return ae(c),r(function(p,E){var k=Y(p,E);return E=c.length?v(p,"any character/byte"):w(p+1,Y(c,p))}),tl=r(function(c,p){return w(c.length,c.slice(p))}),Ws=r(function(c,p){return p=0}).desc(p)},r.optWhitespace=ol,r.Parser=r,r.range=function(c,p){return jr(function(E){return c<=E&&E<=p}).desc(c+"-"+p)},r.regex=ft,r.regexp=ft,r.sepBy=Co,r.sepBy1=Us,r.seq=Br,r.seqMap=Pt,r.seqObj=function(){for(var c,p={},E=0,k=(c=arguments,Array.prototype.slice.call(c)),L=k.length,A=0;A255)throw new Error("Value specified to byte constructor ("+c+"=0x"+c.toString(16)+") is larger in value than a single byte.");var p=(c>15?"0x":"0x0")+c.toString(16);return r(function(E,k){var L=Y(E,k);return L===c?w(k+1,L):v(k,p)})},buffer:function(c){return m("buffer",c).map(function(p){return Buffer.from(p)})},encodedString:function(c,p){return m("string",p).map(function(E){return E.toString(c)})},uintBE:b,uint8BE:b(1),uint16BE:b(2),uint32BE:b(4),uintLE:g,uint8LE:g(1),uint16LE:g(2),uint32LE:g(4),intBE:D,int8BE:D(1),int16BE:D(2),int32BE:D(4),intLE:T,int8LE:T(1),int16LE:T(2),int32LE:T(4),floatBE:m("floatBE",4).map(function(c){return c.readFloatBE(0)}),floatLE:m("floatLE",4).map(function(c){return c.readFloatLE(0)}),doubleBE:m("doubleBE",8).map(function(c){return c.readDoubleBE(0)}),doubleLE:m("doubleLE",8).map(function(c){return c.readDoubleLE(0)})},n.exports=r}])})});var Ru=_o(Ne=>{"use strict";var Sf=Ne&&Ne.__extends||function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,s){r.__proto__=s}||function(r,s){for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(r[i]=s[i])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}();Object.defineProperty(Ne,"__esModule",{value:!0});Ne.EmptyBTree=Ne.asSet=Ne.simpleComparator=Ne.defaultComparator=void 0;function Bu(n,e){if(Number.isFinite(n)&&Number.isFinite(e))return n-e;var t=typeof n,r=typeof e;if(t!==r)return te?1:n===e?0:Number.isNaN(n)?Number.isNaN(e)?0:-1:Number.isNaN(e)?1:Array.isArray(n)?0:Number.NaN}Ne.defaultComparator=Bu;function kf(n,e){return n>e?1:n=4?Math.min(r,256):32,this._compare=t||Bu,e&&this.setPairs(e)}return Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isEmpty",{get:function(){return this._size===0},enumerable:!1,configurable:!0}),n.prototype.clear=function(){this._root=fo,this._size=0},n.prototype.forEach=function(e,t){var r=this;return t!==void 0&&(e=e.bind(t)),this.forEachPair(function(s,i){return e(i,s,r)})},n.prototype.forEachPair=function(e,t){var r=this.minKey(),s=this.maxKey();return this.forRange(r,s,!0,e,t)},n.prototype.get=function(e,t){return this._root.get(e,t,this)},n.prototype.set=function(e,t,r){this._root.isShared&&(this._root=this._root.clone());var s=this._root.set(e,t,r,this);return s===!0||s===!1?s:(this._root=new vf([this._root,s]),!0)},n.prototype.has=function(e){return this.forRange(e,e,!0,void 0)!==0},n.prototype.delete=function(e){return this.editRange(e,e,!0,Mu)!==0},n.prototype.with=function(e,t,r){var s=this.clone();return s.set(e,t,r)||r?s:this},n.prototype.withPairs=function(e,t){var r=this.clone();return r.setPairs(e,t)!==0||t?r:this},n.prototype.withKeys=function(e,t){for(var r=this.clone(),s=!1,i=0;i=s.length){a=3;continue e}if(++i[l]0;l--)s[l-1]=s[l][i[l]].children,i[l-1]=0;o=s[0][i[0]],u=-1,a=t!==void 0?1:0;continue;case 3:return{done:!0,value:void 0}}})},n.prototype.entriesReversed=function(e,t,r){if(e===void 0&&(e=this.maxKey(),r=void 0,e===void 0))return An();var s=this.findPath(e)||this.findPath(this.maxKey()),i=s.nodequeue,o=s.nodeindex,a=s.leaf;Le(!i[0]||a===i[0][o[0]],"wat!");var u=a.indexOf(e,0,this._compare);!r&&u=0)return{done:!1,value:[a.keys[u],a.values[u]]};l=2;continue;case 1:if(--u>=0)return t[0]=a.keys[u],t[1]=a.values[u],{done:!1,value:t};l=2;case 2:for(var f=-1;;){if(++f>=i.length){l=3;continue e}if(--o[f]>=0)break}for(;f>0;f--)i[f-1]=i[f][o[f]].children,o[f-1]=i[f-1].length-1;a=i[0][o[0]],u=a.keys.length,l=t!==void 0?1:0;continue;case 3:return{done:!0,value:void 0}}})},n.prototype.findPath=function(e){var t=this._root,r,s;if(t.isLeaf)r=_u,s=_u;else{r=[],s=[];for(var i=0;!t.isLeaf;i++){if(r[i]=t.children,s[i]=e===void 0?0:t.indexOf(e,0,this._compare),s[i]>=r[i].length)return;t=r[i][s[i]]}r.reverse(),s.reverse()}return{nodequeue:r,nodeindex:s,leaf:t}},n.prototype.diffAgainst=function(e,t,r,s){if(e._compare!==this._compare)throw new Error("Tree comparators are not the same.");if(this.isEmpty||e.isEmpty)return this.isEmpty&&e.isEmpty?void 0:this.isEmpty?r===void 0?void 0:n.stepToEnd(n.makeDiffCursor(e),r):t===void 0?void 0:n.stepToEnd(n.makeDiffCursor(this),t);for(var i=this._compare,o=n.makeDiffCursor(this),a=n.makeDiffCursor(e),u=!0,l=!0,f=n.compare(o,a,i);u&&l;){var d=n.compare(o,a,i),m=o.leaf,h=o.internalSpine,b=o.levelIndices,g=a.leaf,D=a.internalSpine,T=a.levelIndices;if(m||g){if(f!==0){if(d===0){if(m&&g&&s){var I=m.values[b[b.length-1]],N=g.values[T[T.length-1]];if(!Object.is(I,N)){var y=s(o.currentKey,I,N);if(y&&y.break)return y.break}}}else if(d>0){if(g&&r){var w=g.values[T[T.length-1]],y=r(a.currentKey,w);if(y&&y.break)return y.break}}else if(t&&m&&f!==0){var I=m.values[b[b.length-1]],y=t(o.currentKey,I);if(y&&y.break)return y.break}}}else if(!m&&!g&&d===0){var v=h.length-1,x=D.length-1,C=h[v][b[v]],V=D[x][T[x]];if(V===C){f=0,u=n.step(o,!0),l=n.step(a,!0);continue}}f=d,d<0?u=n.step(o):l=n.step(a)}if(u&&t)return n.finishCursorWalk(o,a,i,t);if(l&&r)return n.finishCursorWalk(a,o,i,r)},n.finishCursorWalk=function(e,t,r,s){var i=n.compare(e,t,r);if(i===0){if(!n.step(e))return}else i<0&&Le(!1,"cursor walk terminated early");return n.stepToEnd(e,s)},n.stepToEnd=function(e,t){for(var r=!0;r;){var s=e.leaf,i=e.levelIndices,o=e.currentKey;if(s){var a=s.values[i[i.length-1]],u=t(o,a);if(u&&u.break)return u.break}r=n.step(e)}},n.makeDiffCursor=function(e){var t=e._root,r=e.height;return{height:r,internalSpine:[[t]],levelIndices:[0],leaf:void 0,currentKey:t.maxKey()}},n.step=function(e,t){var r=e.internalSpine,s=e.levelIndices,i=e.leaf;if(t===!0||i){var o=s.length;if(t===!0||s[o-1]===0){var a=r.length;if(a===0)return!1;for(var u=a-1,l=u;l>=0;){if(s[l]>0)return ls?xf:void 0}),i},n.prototype.setPairs=function(e,t){for(var r=0,s=0;s>1;i0)o=a;else{if(u===0)return a;if(e===e)return s.length;throw new Error("BTree: NaN was used as a key")}a=i+o>>1}return a^t},n.prototype.minKey=function(){return this.keys[0]},n.prototype.minPair=function(e){if(this.keys.length!==0)return e[0]=this.keys[0],e[1]=this.values[0],e},n.prototype.maxPair=function(e){if(this.keys.length!==0){var t=this.keys.length-1;return e[0]=this.keys[t],e[1]=this.values[t],e}},n.prototype.clone=function(){var e=this.values;return new n(this.keys.slice(0),e===pe?e:e.slice(0))},n.prototype.greedyClone=function(e){return this.isShared&&!e?this:this.clone()},n.prototype.get=function(e,t,r){var s=this.indexOf(e,-1,r._compare);return s<0?t:this.values[s]},n.prototype.getPairOrNextLower=function(e,t,r,s){var i=this.indexOf(e,-1,t),o=i<0?~i-1:r?i:i-1;if(o>=0)return s[0]=this.keys[o],s[1]=this.values[o],s},n.prototype.getPairOrNextHigher=function(e,t,r,s){var i=this.indexOf(e,-1,t),o=i<0?~i:r?i:i+1,a=this.keys;if(o0,"empty leaf at depth",e,"and baseIndex",r),s},n.prototype.set=function(e,t,r,s){var i=this.indexOf(e,-1,s._compare);if(i<0){if(i=~i,s._size++,this.keys.lengththis.keys.length&&(i-=this.keys.length,a=o),a.insertInLeaf(i,e,t,s),o}else return r!==!1&&(t!==void 0&&this.reifyValues(),this.keys[i]=e,this.values[i]=t),!1},n.prototype.reifyValues=function(){return this.values===pe?this.values=this.values.slice(0,this.keys.length):this.values},n.prototype.insertInLeaf=function(e,t,r,s){if(this.keys.splice(e,0,t),this.values===pe){for(;pe.length>1,t=this.keys.splice(e),r=this.values===pe?pe:this.values.splice(e);return new n(t,r)},n.prototype.forRange=function(e,t,r,s,i,o,a){var u=i._compare,l,f;if(t===e){if(!r||(f=(l=this.indexOf(e,-1,u))+1,l<0))return o}else l=this.indexOf(e,0,u),f=this.indexOf(t,-1,u),f<0?f=~f:r===!0&&f++;var d=this.keys,m=this.values;if(a!==void 0)for(var h=l;h=a.length)return this.maxPair(i);var u=a[o].getPairOrNextLower(t,r,s,i);return u===void 0&&o>0?a[o-1].maxPair(i):u},e.prototype.getPairOrNextHigher=function(t,r,s,i){var o=this.indexOf(t,0,r),a=this.children,u=a.length;if(!(o>=u)){var l=a[o].getPairOrNextHigher(t,r,s,i);return l===void 0&&o1||t>0,"internal node has length",i,"at depth",t,"baseIndex",s);for(var a=0,u=this.children,l=this.keys,f=0,d=0;d=f,"wtf",s),Le(d===0||u[d-1].constructor===u[d].constructor,"type mismatch, baseIndex:",s),u[d].maxKey()!=l[d]&&Le(!1,"keys[",d,"] =",l[d],"is wrong, should be ",u[d].maxKey(),"at depth",t,"baseIndex",s),d===0||r._compare(l[d-1],l[d])<0||Le(!1,"sort violation at depth",t,"index",d,"keys",l[d-1],l[d]);var m=f===0;return(m||f>r.maxNodeSize*o)&&Le(!1,m?"too few":"too many","children (",f,a,") at depth",t,"maxNodeSize:",r.maxNodeSize,"children.length:",o,"baseIndex:",s),a},e.prototype.set=function(t,r,s,i){var o=this.children,a=i._maxNodeSize,u=i._compare,l=Math.min(this.indexOf(t,0,u),o.length-1),f=o[l];if(f.isShared&&(o[l]=f=f.clone()),f.keys.length>=a){var d;l>0&&(d=o[l-1]).keys.length0&&(b=h,l-=this.keys.length),b.insert(l+1,m),h},e.prototype.insert=function(t,r){this.children.splice(t,0,r),this.keys.splice(t,0,r.maxKey())},e.prototype.splitOffRightSide=function(){var t=this.children.length>>1;return new e(this.children.splice(t),this.keys.splice(t))},e.prototype.takeFromRight=function(t){this.keys.push(t.keys.shift()),this.children.push(t.children.shift())},e.prototype.takeFromLeft=function(t){this.keys.unshift(t.keys.pop()),this.children.unshift(t.children.pop())},e.prototype.forRange=function(t,r,s,i,o,a,u){var l=o._compare,f=this.keys,d=this.children,m=this.indexOf(t,0,l),h=m,b=Math.min(r===t?m:this.indexOf(r,0,l),f.length-1);if(i){if(h<=b)try{for(;h<=b;h++){d[h].isShared&&(d[h]=d[h].clone());var g=d[h].forRange(t,r,s,i,o,a,u);if(f[h]=d[h].maxKey(),typeof g!="number")return g;a=g}}finally{var D=o._maxNodeSize>>1;for(m>0&&m--,h=b;h>=m;h--)d[h].keys.length<=D&&(d[h].keys.length!==0?this.tryMerge(h,o._maxNodeSize):(f.splice(h,1),d.splice(h,1)));d.length!==0&&d[0].keys.length===0&&Le(!1,"emptiness bug")}}else for(;h<=b;h++){var g=d[h].forRange(t,r,s,i,o,a,u);if(typeof g!="number")return g;a=g}return a},e.prototype.tryMerge=function(t,r){var s=this.children;return t>=0&&t+1{let i=[e(s),s];return r&&t(r[0],i[0])===r[0]?r:i},null)[1]}function Ro(n,e){return e.reduce((t,r)=>(t[r]=n[r],t),{})}function kt(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function nt(n,e,t){return rr(n)&&n>=e&&n<=t}function bl(n,e){return n-e*Math.floor(n/e)}function re(n,e=2){let t=n<0,r;return t?r="-"+(""+-n).padStart(e,"0"):r=(""+n).padStart(e,"0"),r}function Dt(n){if(!(W(n)||n===null||n===""))return parseInt(n,10)}function Ct(n){if(!(W(n)||n===null||n===""))return parseFloat(n)}function sr(n){if(!(W(n)||n===null||n==="")){let e=parseFloat("0."+n)*1e3;return Math.floor(e)}}function an(n,e,t=!1){let r=10**e;return(t?Math.trunc:Math.round)(n*r)/r}function jt(n){return n%4===0&&(n%100!==0||n%400===0)}function qt(n){return jt(n)?366:365}function un(n,e){let t=bl(e-1,12)+1,r=n+(e-t)/12;return t===2?jt(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function ir(n){let e=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second,n.millisecond);return n.year<100&&n.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function ln(n){let e=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7,t=n-1,r=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||r===3?53:52}function or(n){return n>99?n:n>60?1900+n:2e3+n}function Jr(n,e,t,r=null){let s=new Date(n),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(i.timeZone=r);let o=R({timeZoneName:e},i),a=new Intl.DateTimeFormat(t,o).formatToParts(s).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Vt(n,e){let t=parseInt(n,10);Number.isNaN(t)&&(t=0);let r=parseInt(e,10)||0,s=t<0||Object.is(t,-0)?-r:r;return t*60+s}function ei(n){let e=Number(n);if(typeof n=="boolean"||n===""||Number.isNaN(e))throw new fe(`Invalid unit value ${n}`);return e}function cn(n,e){let t={};for(let r in n)if(kt(n,r)){let s=n[r];if(s==null)continue;t[e(r)]=ei(s)}return t}function vt(n,e){let t=Math.trunc(Math.abs(n/60)),r=Math.trunc(Math.abs(n%60)),s=n>=0?"+":"-";switch(e){case"short":return`${s}${re(t,2)}:${re(r,2)}`;case"narrow":return`${s}${t}${r>0?`:${r}`:""}`;case"techie":return`${s}${re(t,2)}${re(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ar(n){return Ro(n,["hour","minute","second","millisecond"])}var ti=/[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;var Fl=["January","February","March","April","May","June","July","August","September","October","November","December"],ni=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],El=["J","F","M","A","M","J","J","A","S","O","N","D"];function ri(n){switch(n){case"narrow":return[...El];case"short":return[...ni];case"long":return[...Fl];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var si=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ii=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],wl=["M","T","W","T","F","S","S"];function oi(n){switch(n){case"narrow":return[...wl];case"short":return[...ii];case"long":return[...si];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var ai=["AM","PM"],Tl=["Before Christ","Anno Domini"],Sl=["BC","AD"],kl=["B","A"];function ui(n){switch(n){case"narrow":return[...kl];case"short":return[...Sl];case"long":return[...Tl];default:return null}}function jo(n){return ai[n.hour<12?0:1]}function qo(n,e){return oi(e)[n.weekday-1]}function Vo(n,e){return ri(e)[n.month-1]}function Uo(n,e){return ui(e)[n.year<0?0:1]}function Ko(n,e,t="always",r=!1){let s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},i=["hours","minutes","seconds"].indexOf(n)===-1;if(t==="auto"&&i){let d=n==="days";switch(e){case 1:return d?"tomorrow":`next ${s[n][0]}`;case-1:return d?"yesterday":`last ${s[n][0]}`;case 0:return d?"today":`this ${s[n][0]}`;default:}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,l=s[n],f=r?u?l[1]:l[2]||l[1]:u?s[n][0]:n;return o?`${a} ${f} ago`:`in ${a} ${f}`}function Wo(n,e){let t="";for(let r of n)r.literal?t+=r.val:t+=e(r.val);return t}var Cl={D:on,DD:$n,DDD:Rn,DDDD:jn,t:qn,tt:Vn,ttt:Un,tttt:Kn,T:Wn,TT:Hn,TTT:Jn,TTTT:zn,f:Yn,ff:Zn,fff:Xn,ffff:tr,F:Gn,FF:Qn,FFF:er,FFFF:nr},we=class n{static create(e,t={}){return new n(e,t)}static parseFormat(e){let t=null,r="",s=!1,i=[];for(let o=0;o0&&i.push({literal:s,val:r}),t=null,r="",s=!s):s||a===t?r+=a:(r.length>0&&i.push({literal:!1,val:r}),r=a,t=a)}return r.length>0&&i.push({literal:s,val:r}),i}static macroTokenToFormatOpts(e){return Cl[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,R(R({},this.opts),t)).format()}formatDateTime(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).format()}formatDateTimeParts(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).formatToParts()}resolvedOptions(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return re(e,t);let r=R({},this.opts);return t>0&&(r.padTo=t),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,t){let r=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",i=(h,b)=>this.loc.extract(e,h,b),o=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",a=()=>r?jo(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(h,b)=>r?Vo(e,h):i(b?{month:h}:{month:h,day:"numeric"},"month"),l=(h,b)=>r?qo(e,h):i(b?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),f=h=>{let b=n.macroTokenToFormatOpts(h);return b?this.formatWithSystemDefault(e,b):h},d=h=>r?Uo(e,h):i({era:h},"era"),m=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return s?i({day:"numeric"},"day"):this.num(e.day);case"dd":return s?i({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return s?i({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?i({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return s?i({month:"numeric"},"month"):this.num(e.month);case"MM":return s?i({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return s?i({year:"numeric"},"year"):this.num(e.year);case"yy":return s?i({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?i({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?i({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return f(h)}};return Wo(n.parseFormat(t),m)}formatDurationFromString(e,t){let r=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=u=>l=>{let f=r(l);return f?this.num(u.get(f),l.length):l},i=n.parseFormat(t),o=i.reduce((u,{literal:l,val:f})=>l?u:u.concat(f),[]),a=e.shiftTo(...o.map(r).filter(u=>u));return Wo(i,s(a))}};var de=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var ke=class{get type(){throw new je}get name(){throw new je}get ianaName(){return this.name}get isUniversal(){throw new je}offsetName(e,t){throw new je}formatOffset(e,t){throw new je}offset(e){throw new je}equals(e){throw new je}get isValid(){throw new je}};var ci=null,fn=class n extends ke{static get instance(){return ci===null&&(ci=new n),ci}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:r}){return Jr(e,t,r)}formatOffset(e,t){return vt(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}};var Yr={};function vl(n){return Yr[n]||(Yr[n]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:n,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Yr[n]}var xl={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Ol(n,e){let t=n.format(e).replace(/\\u200E/g,""),r=/(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(t),[,s,i,o,a,u,l,f]=r;return[o,s,i,a,u,l,f]}function Il(n,e){let t=n.formatToParts(e),r=[];for(let s=0;s=0?b:1e3+b,(m-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}};var fi=null,he=class n extends ke{static get utcInstance(){return fi===null&&(fi=new n(0)),fi}static instance(e){return e===0?n.utcInstance:new n(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);if(t)return new n(Vt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return vt(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}};var dn=class extends ke{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ve(n,e){let t;if(W(n)||n===null)return e;if(n instanceof ke)return n;if(Bo(n)){let r=n.toLowerCase();return r==="local"||r==="system"?e:r==="utc"||r==="gmt"?he.utcInstance:he.parseSpecifier(r)||ge.create(n)}else return tt(n)?he.instance(n):typeof n=="object"&&n.offset&&typeof n.offset=="number"?n:new dn(n)}var Ho=()=>Date.now(),Jo="system",zo=null,Yo=null,Go=null,Zo,X=class{static get now(){return Ho}static set now(e){Ho=e}static set defaultZone(e){Jo=e}static get defaultZone(){return Ve(Jo,fn.instance)}static get defaultLocale(){return zo}static set defaultLocale(e){zo=e}static get defaultNumberingSystem(){return Yo}static set defaultNumberingSystem(e){Yo=e}static get defaultOutputCalendar(){return Go}static set defaultOutputCalendar(e){Go=e}static get throwOnInvalid(){return Zo}static set throwOnInvalid(e){Zo=e}static resetCaches(){ne.resetCache(),ge.resetCache()}};var Qo={};function Ll(n,e={}){let t=JSON.stringify([n,e]),r=Qo[t];return r||(r=new Intl.ListFormat(n,e),Qo[t]=r),r}var di={};function hi(n,e={}){let t=JSON.stringify([n,e]),r=di[t];return r||(r=new Intl.DateTimeFormat(n,e),di[t]=r),r}var mi={};function Nl(n,e={}){let t=JSON.stringify([n,e]),r=mi[t];return r||(r=new Intl.NumberFormat(n,e),mi[t]=r),r}var pi={};function Al(n,e={}){let o=e,{base:t}=o,r=Ys(o,["base"]),s=JSON.stringify([n,r]),i=pi[s];return i||(i=new Intl.RelativeTimeFormat(n,e),pi[s]=i),i}var ur=null;function Ml(){return ur||(ur=new Intl.DateTimeFormat().resolvedOptions().locale,ur)}function _l(n){let e=n.indexOf("-u-");if(e===-1)return[n];{let t,r=n.substring(0,e);try{t=hi(n).resolvedOptions()}catch(o){t=hi(r).resolvedOptions()}let{numberingSystem:s,calendar:i}=t;return[r,s,i]}}function Bl(n,e,t){return(t||e)&&(n+="-u",t&&(n+=`-ca-${t}`),e&&(n+=`-nu-${e}`)),n}function Pl(n){let e=[];for(let t=1;t<=12;t++){let r=q.utc(2016,t,1);e.push(n(r))}return e}function $l(n){let e=[];for(let t=1;t<=7;t++){let r=q.utc(2016,11,13+t);e.push(n(r))}return e}function Gr(n,e,t,r,s){let i=n.listingMode(t);return i==="error"?null:i==="en"?r(e):s(e)}function Rl(n){return n.numberingSystem&&n.numberingSystem!=="latn"?!1:n.numberingSystem==="latn"||!n.locale||n.locale.startsWith("en")||new Intl.DateTimeFormat(n.intl).resolvedOptions().numberingSystem==="latn"}var Di=class{constructor(e,t,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;let a=r,{padTo:s,floor:i}=a,o=Ys(a,["padTo","floor"]);if(!t||Object.keys(o).length>0){let u=R({useGrouping:!1},r);r.padTo>0&&(u.minimumIntegerDigits=r.padTo),this.inf=Nl(e,u)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):an(e,3);return re(t,this.padTo)}}},yi=class{constructor(e,t,r){this.opts=r;let s;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ge.create(a).valid?(s=a,this.dt=e):(s="UTC",r.timeZoneName?this.dt=e:this.dt=e.offset===0?e:q.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,s=e.zone.name);let i=R({},this.opts);s&&(i.timeZone=s),this.dtf=hi(t,i)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},gi=class{constructor(e,t,r){this.opts=R({style:"long"},r),!t&&Hr()&&(this.rtf=Al(e,r))}format(e,t){return this.rtf?this.rtf.format(e,t):Ko(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},ne=class n{static fromOpts(e){return n.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,r,s=!1){let i=e||X.defaultLocale,o=i||(s?"en-US":Ml()),a=t||X.defaultNumberingSystem,u=r||X.defaultOutputCalendar;return new n(o,a,u,i)}static resetCache(){ur=null,di={},mi={},pi={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:r}={}){return n.create(e,t,r)}constructor(e,t,r,s){let[i,o,a]=_l(e);this.locale=i,this.numberingSystem=t||o||null,this.outputCalendar=r||a||null,this.intl=Bl(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Rl(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:n.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone(ye(R({},e),{defaultToEN:!0}))}redefaultToSystem(e={}){return this.clone(ye(R({},e),{defaultToEN:!1}))}months(e,t=!1,r=!0){return Gr(this,e,r,ri,()=>{let s=t?{month:e,day:"numeric"}:{month:e},i=t?"format":"standalone";return this.monthsCache[i][e]||(this.monthsCache[i][e]=Pl(o=>this.extract(o,s,"month"))),this.monthsCache[i][e]})}weekdays(e,t=!1,r=!0){return Gr(this,e,r,oi,()=>{let s=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=$l(o=>this.extract(o,s,"weekday"))),this.weekdaysCache[i][e]})}meridiems(e=!0){return Gr(this,void 0,e,()=>ai,()=>{if(!this.meridiemCache){let t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[q.utc(2016,11,13,9),q.utc(2016,11,13,19)].map(r=>this.extract(r,t,"dayperiod"))}return this.meridiemCache})}eras(e,t=!0){return Gr(this,e,t,ui,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[q.utc(-40,1,1),q.utc(2017,1,1)].map(s=>this.extract(s,r,"era"))),this.eraCache[e]})}extract(e,t,r){let s=this.dtFormatter(e,t),i=s.formatToParts(),o=i.find(a=>a.type.toLowerCase()===r);return o?o.value:null}numberFormatter(e={}){return new Di(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new yi(e,this.intl,t)}relFormatter(e={}){return new gi(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ll(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}};function mn(...n){let e=n.reduce((t,r)=>t+r.source,"");return RegExp(`^${e}$`)}function pn(...n){return e=>n.reduce(([t,r,s],i)=>{let[o,a,u]=i(e,s);return[R(R({},t),o),a||r,u]},[{},null,1]).slice(0,2)}function Dn(n,...e){if(n==null)return[null,null];for(let[t,r]of e){let s=t.exec(n);if(s)return r(s)}return[null,null]}function ea(...n){return(e,t)=>{let r={},s;for(s=0;sh!==void 0&&(b||h&&f)?-h:h;return[{years:m(Ct(t)),months:m(Ct(r)),weeks:m(Ct(s)),days:m(Ct(i)),hours:m(Ct(o)),minutes:m(Ct(a)),seconds:m(Ct(u),u==="-0"),milliseconds:m(sr(l),d)}]}var Ql={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Ei(n,e,t,r,s,i,o){let a={year:e.length===2?or(Dt(e)):Dt(e),month:ni.indexOf(t)+1,day:Dt(r),hour:Dt(s),minute:Dt(i)};return o&&(a.second=Dt(o)),n&&(a.weekday=n.length>3?si.indexOf(n)+1:ii.indexOf(n)+1),a}var Xl=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;function ec(n){let[,e,t,r,s,i,o,a,u,l,f,d]=n,m=Ei(e,s,r,t,i,o,a),h;return u?h=Ql[u]:l?h=0:h=Vt(f,d),[m,new he(h)]}function tc(n){return n.replace(/\\([^()]*\\)|[\\n\\t]/g," ").replace(/(\\s\\s+)/g," ").trim()}var nc=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,rc=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,sc=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;function Xo(n){let[,e,t,r,s,i,o,a]=n;return[Ei(e,s,r,t,i,o,a),he.utcInstance]}function ic(n){let[,e,t,r,s,i,o,a]=n;return[Ei(e,a,t,r,s,i,o),he.utcInstance]}var oc=mn(ql,Fi),ac=mn(Vl,Fi),uc=mn(Ul,Fi),lc=mn(na),sa=pn(zl,yn,lr,cr),cc=pn(Kl,yn,lr,cr),fc=pn(Wl,yn,lr,cr),dc=pn(yn,lr,cr);function ia(n){return Dn(n,[oc,sa],[ac,cc],[uc,fc],[lc,dc])}function oa(n){return Dn(tc(n),[Xl,ec])}function aa(n){return Dn(n,[nc,Xo],[rc,Xo],[sc,ic])}function ua(n){return Dn(n,[Gl,Zl])}var hc=pn(yn);function la(n){return Dn(n,[Yl,hc])}var mc=mn(Hl,Jl),pc=mn(ra),Dc=pn(yn,lr,cr);function ca(n){return Dn(n,[mc,sa],[pc,Dc])}var yc="Invalid Duration",fa={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},gc=R({years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3}},fa),Me=146097/400,gn=146097/4800,bc=R({years:{quarters:4,months:12,weeks:Me/7,days:Me,hours:Me*24,minutes:Me*24*60,seconds:Me*24*60*60,milliseconds:Me*24*60*60*1e3},quarters:{months:3,weeks:Me/28,days:Me/4,hours:Me*24/4,minutes:Me*24*60/4,seconds:Me*24*60*60/4,milliseconds:Me*24*60*60*1e3/4},months:{weeks:gn/7,days:gn,hours:gn*24,minutes:gn*24*60,seconds:gn*24*60*60,milliseconds:gn*24*60*60*1e3}},fa),Kt=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Fc=Kt.slice(0).reverse();function Ut(n,e,t=!1){let r={values:t?e.values:R(R({},n.values),e.values||{}),loc:n.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||n.conversionAccuracy};return new B(r)}function Ec(n){return n<0?Math.floor(n):Math.ceil(n)}function da(n,e,t,r,s){let i=n[s][t],o=e[t]/i,a=Math.sign(o)===Math.sign(r[s]),u=!a&&r[s]!==0&&Math.abs(o)<=1?Ec(o):Math.trunc(o);r[s]+=u,e[t]-=u*i}function wc(n,e){Fc.reduce((t,r)=>W(e[r])?t:(t&&da(n,e,t,e,r),r),null)}var B=class n{constructor(e){let t=e.conversionAccuracy==="longterm"||!1;this.values=e.values,this.loc=e.loc||ne.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?bc:gc,this.isLuxonDuration=!0}static fromMillis(e,t){return n.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new fe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new n({values:cn(e,n.normalizeUnit),loc:ne.fromObject(t),conversionAccuracy:t.conversionAccuracy})}static fromDurationLike(e){if(tt(e))return n.fromMillis(e);if(n.isDuration(e))return e;if(typeof e=="object")return n.fromObject(e);throw new fe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[r]=ua(e);return r?n.fromObject(r,t):n.invalid("unparsable",`the input "${e}" can\'t be parsed as ISO 8601`)}static fromISOTime(e,t){let[r]=la(e);return r?n.fromObject(r,t):n.invalid("unparsable",`the input "${e}" can\'t be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new fe("need to specify a reason the Duration is invalid");let r=e instanceof de?e:new de(e,t);if(X.throwOnInvalid)throw new Wr(r);return new n({invalid:r})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new sn(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let r=ye(R({},t),{floor:t.round!==!1&&t.floor!==!1});return this.isValid?we.create(this.loc,r).formatDurationFromString(this,e):yc}toHuman(e={}){let t=Kt.map(r=>{let s=this.values[r];return W(s)?null:this.loc.numberFormatter(ye(R({style:"unit",unitDisplay:"long"},e),{unit:r.slice(0,-1)})).format(s)}).filter(r=>r);return this.loc.listFormatter(R({type:"conjunction",style:e.listStyle||"narrow"},e)).format(t)}toObject(){return this.isValid?R({},this.values):{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=an(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();if(t<0||t>=864e5)return null;e=R({suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended"},e);let r=this.shiftTo("hours","minutes","seconds","milliseconds"),s=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||r.seconds!==0||r.milliseconds!==0)&&(s+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||r.milliseconds!==0)&&(s+=".SSS"));let i=r.toFormat(s);return e.includePrefix&&(i="T"+i),i}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=n.fromDurationLike(e),r={};for(let s of Kt)(kt(t.values,s)||kt(this.values,s))&&(r[s]=t.get(s)+this.get(s));return Ut(this,{values:r},!0)}minus(e){if(!this.isValid)return this;let t=n.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let r of Object.keys(this.values))t[r]=ei(e(this.values[r],r));return Ut(this,{values:t},!0)}get(e){return this[n.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t=R(R({},this.values),cn(e,n.normalizeUnit));return Ut(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:r}={}){let s=this.loc.clone({locale:e,numberingSystem:t}),i={loc:s};return r&&(i.conversionAccuracy=r),Ut(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return wc(this.matrix,e),Ut(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>n.normalizeUnit(o));let t={},r={},s=this.toObject(),i;for(let o of Kt)if(e.indexOf(o)>=0){i=o;let a=0;for(let l in r)a+=this.matrix[l][o]*r[l],r[l]=0;tt(s[o])&&(a+=s[o]);let u=Math.trunc(a);t[o]=u,r[o]=(a*1e3-u*1e3)/1e3;for(let l in s)Kt.indexOf(l)>Kt.indexOf(o)&&da(this.matrix,s,l,t,o)}else tt(s[o])&&(r[o]=s[o]);for(let o in r)r[o]!==0&&(t[i]+=o===i?r[o]:r[o]/this.matrix[i][o]);return Ut(this,{values:t},!0).normalize()}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Ut(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(r,s){return r===void 0||r===0?s===void 0||s===0:r===s}for(let r of Kt)if(!t(this.values[r],e.values[r]))return!1;return!0}};var fr="Invalid Interval";function Tc(n,e){return!n||!n.isValid?yt.invalid("missing or invalid start"):!e||!e.isValid?yt.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?n.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(bn).filter(o=>this.contains(o)).sort(),r=[],{s}=this,i=0;for(;s+this.e?this.e:o;r.push(n.fromDateTimes(s,a)),s=a,i+=1}return r}splitBy(e){let t=B.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:r}=this,s=1,i,o=[];for(;ru*s));i=+a>+this.e?this.e:a,o.push(n.fromDateTimes(r,i)),r=i,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,r=this.e=r?null:n.fromDateTimes(t,r)}union(e){if(!this.isValid)return this;let t=this.se.e?this.e:e.e;return n.fromDateTimes(t,r)}static merge(e){let[t,r]=e.sort((s,i)=>s.s-i.s).reduce(([s,i],o)=>i?i.overlaps(o)||i.abutsStart(o)?[s,i.union(o)]:[s.concat([i]),o]:[s,o],[[],null]);return r&&t.push(r),t}static xor(e){let t=null,r=0,s=[],i=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...i),a=o.sort((u,l)=>u.time-l.time);for(let u of a)r+=u.type==="s"?1:-1,r===1?t=u.time:(t&&+t!=+u.time&&s.push(n.fromDateTimes(t,u.time)),t=null);return n.merge(s)}difference(...e){return n.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \\u2013 ${this.e.toISO()})`:fr}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:fr}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:fr}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:fr}toFormat(e,{separator:t=" \\u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:fr}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):B.invalid(this.invalidReason)}mapEndpoints(e){return n.fromDateTimes(e(this.s),e(this.e))}};var gt=class{static hasDST(e=X.defaultZone){let t=q.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return ge.isValidZone(e)}static normalizeZone(e){return Ve(e,X.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(t,r,i)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(t,r,i)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null}={}){return(s||ne.create(t,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null}={}){return(s||ne.create(t,r,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ne.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ne.create(t,null,"gregory").eras(e)}static features(){return{relative:Hr()}}};function ha(n,e){let t=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=t(e)-t(n);return Math.floor(B.fromMillis(r).as("days"))}function Sc(n,e,t){let r=[["years",(a,u)=>u.year-a.year],["quarters",(a,u)=>u.quarter-a.quarter],["months",(a,u)=>u.month-a.month+(u.year-a.year)*12],["weeks",(a,u)=>{let l=ha(a,u);return(l-l%7)/7}],["days",ha]],s={},i,o;for(let[a,u]of r)if(t.indexOf(a)>=0){i=a;let l=u(n,e);o=n.plus({[a]:l}),o>e?(n=n.plus({[a]:l-1}),l-=1):n=o,s[a]=l}return[n,s,o,i]}function ma(n,e,t,r){let[s,i,o,a]=Sc(n,e,t),u=e-s,l=t.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);l.length===0&&(o0?B.fromMillis(u,r).shiftTo(...l).plus(f):f}var wi={arab:"[\\u0660-\\u0669]",arabext:"[\\u06F0-\\u06F9]",bali:"[\\u1B50-\\u1B59]",beng:"[\\u09E6-\\u09EF]",deva:"[\\u0966-\\u096F]",fullwide:"[\\uFF10-\\uFF19]",gujr:"[\\u0AE6-\\u0AEF]",hanidec:"[\\u3007|\\u4E00|\\u4E8C|\\u4E09|\\u56DB|\\u4E94|\\u516D|\\u4E03|\\u516B|\\u4E5D]",khmr:"[\\u17E0-\\u17E9]",knda:"[\\u0CE6-\\u0CEF]",laoo:"[\\u0ED0-\\u0ED9]",limb:"[\\u1946-\\u194F]",mlym:"[\\u0D66-\\u0D6F]",mong:"[\\u1810-\\u1819]",mymr:"[\\u1040-\\u1049]",orya:"[\\u0B66-\\u0B6F]",tamldec:"[\\u0BE6-\\u0BEF]",telu:"[\\u0C66-\\u0C6F]",thai:"[\\u0E50-\\u0E59]",tibt:"[\\u0F20-\\u0F29]",latn:"\\\\d"},pa={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},kc=wi.hanidec.replace(/[\\[|\\]]/g,"").split("");function Da(n){let e=parseInt(n,10);if(isNaN(e)){e="";for(let t=0;t=i&&r<=o&&(e+=r-i)}}return parseInt(e,10)}else return e}function _e({numberingSystem:n},e=""){return new RegExp(`${wi[n||"latn"]}${e}`)}var Cc="missing Intl.DateTimeFormat.formatToParts support";function G(n,e=t=>t){return{regex:n,deser:([t])=>e(Da(t))}}var vc="\\xA0",ba=`[ ${vc}]`,Fa=new RegExp(ba,"g");function xc(n){return n.replace(/\\./g,"\\\\.?").replace(Fa,ba)}function ya(n){return n.replace(/\\./g,"").replace(Fa," ").toLowerCase()}function Ue(n,e){return n===null?null:{regex:RegExp(n.map(xc).join("|")),deser:([t])=>n.findIndex(r=>ya(t)===ya(r))+e}}function ga(n,e){return{regex:n,deser:([,t,r])=>Vt(t,r),groups:e}}function Ti(n){return{regex:n,deser:([e])=>e}}function Oc(n){return n.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,"\\\\$&")}function Ic(n,e){let t=_e(e),r=_e(e,"{2}"),s=_e(e,"{3}"),i=_e(e,"{4}"),o=_e(e,"{6}"),a=_e(e,"{1,2}"),u=_e(e,"{1,3}"),l=_e(e,"{1,6}"),f=_e(e,"{1,9}"),d=_e(e,"{2,4}"),m=_e(e,"{4,6}"),h=D=>({regex:RegExp(Oc(D.val)),deser:([T])=>T,literal:!0}),g=(D=>{if(n.literal)return h(D);switch(D.val){case"G":return Ue(e.eras("short",!1),0);case"GG":return Ue(e.eras("long",!1),0);case"y":return G(l);case"yy":return G(d,or);case"yyyy":return G(i);case"yyyyy":return G(m);case"yyyyyy":return G(o);case"M":return G(a);case"MM":return G(r);case"MMM":return Ue(e.months("short",!0,!1),1);case"MMMM":return Ue(e.months("long",!0,!1),1);case"L":return G(a);case"LL":return G(r);case"LLL":return Ue(e.months("short",!1,!1),1);case"LLLL":return Ue(e.months("long",!1,!1),1);case"d":return G(a);case"dd":return G(r);case"o":return G(u);case"ooo":return G(s);case"HH":return G(r);case"H":return G(a);case"hh":return G(r);case"h":return G(a);case"mm":return G(r);case"m":return G(a);case"q":return G(a);case"qq":return G(r);case"s":return G(a);case"ss":return G(r);case"S":return G(u);case"SSS":return G(s);case"u":return Ti(f);case"uu":return Ti(a);case"uuu":return G(t);case"a":return Ue(e.meridiems(),0);case"kkkk":return G(i);case"kk":return G(d,or);case"W":return G(a);case"WW":return G(r);case"E":case"c":return G(t);case"EEE":return Ue(e.weekdays("short",!1,!1),1);case"EEEE":return Ue(e.weekdays("long",!1,!1),1);case"ccc":return Ue(e.weekdays("short",!0,!1),1);case"cccc":return Ue(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return ga(new RegExp(`([+-]${a.source})(?::(${r.source}))?`),2);case"ZZZ":return ga(new RegExp(`([+-]${a.source})(${r.source})?`),2);case"z":return Ti(/[a-z_+-/]{1,256}?/i);default:return h(D)}})(n)||{invalidReason:Cc};return g.token=n,g}var Lc={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};function Nc(n,e,t){let{type:r,value:s}=n;if(r==="literal")return{literal:!0,val:s};let i=t[r],o=Lc[r];if(typeof o=="object"&&(o=o[i]),o)return{literal:!1,val:o}}function Ac(n){return[`^${n.map(t=>t.regex).reduce((t,r)=>`${t}(${r.source})`,"")}$`,n]}function Mc(n,e,t){let r=n.match(e);if(r){let s={},i=1;for(let o in t)if(kt(t,o)){let a=t[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(s[a.token.val[0]]=a.deser(r.slice(i,i+u))),i+=u}return[r,s]}else return[r,{}]}function _c(n){let e=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,r;return W(n.z)||(t=ge.create(n.z)),W(n.Z)||(t||(t=new he(n.Z)),r=n.Z),W(n.q)||(n.M=(n.q-1)*3+1),W(n.h)||(n.h<12&&n.a===1?n.h+=12:n.h===12&&n.a===0&&(n.h=0)),n.G===0&&n.y&&(n.y=-n.y),W(n.u)||(n.S=sr(n.u)),[Object.keys(n).reduce((i,o)=>{let a=e(o);return a&&(i[a]=n[o]),i},{}),t,r]}var Si=null;function Bc(){return Si||(Si=q.fromMillis(1555555555555)),Si}function Pc(n,e){if(n.literal)return n;let t=we.macroTokenToFormatOpts(n.val);if(!t)return n;let i=we.create(e,t).formatDateTimeParts(Bc()).map(o=>Nc(o,e,t));return i.includes(void 0)?n:i}function $c(n,e){return Array.prototype.concat(...n.map(t=>Pc(t,e)))}function ki(n,e,t){let r=$c(we.parseFormat(t),n),s=r.map(o=>Ic(o,n)),i=s.find(o=>o.invalidReason);if(i)return{input:e,tokens:r,invalidReason:i.invalidReason};{let[o,a]=Ac(s),u=RegExp(o,"i"),[l,f]=Mc(e,u,a),[d,m,h]=f?_c(f):[null,null,void 0];if(kt(f,"a")&&kt(f,"H"))throw new pt("Can\'t include meridiem when specifying 24-hour format");return{input:e,tokens:r,regex:u,rawMatches:l,matches:f,result:d,zone:m,specificOffset:h}}}function Ea(n,e,t){let{result:r,zone:s,specificOffset:i,invalidReason:o}=ki(n,e,t);return[r,s,i,o]}var wa=[0,31,59,90,120,151,181,212,243,273,304,334],Ta=[0,31,60,91,121,152,182,213,244,274,305,335];function Be(n,e){return new de("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${n}, which is invalid`)}function Sa(n,e,t){let r=new Date(Date.UTC(n,e-1,t));n<100&&n>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let s=r.getUTCDay();return s===0?7:s}function ka(n,e,t){return t+(jt(n)?Ta:wa)[e-1]}function Ca(n,e){let t=jt(n)?Ta:wa,r=t.findIndex(i=>iln(e)?(a=e+1,o=1):a=e,R({weekYear:a,weekNumber:o,weekday:i},ar(n))}function Ci(n){let{weekYear:e,weekNumber:t,weekday:r}=n,s=Sa(e,1,4),i=qt(e),o=t*7+r-s-3,a;o<1?(a=e-1,o+=qt(a)):o>i?(a=e+1,o-=qt(e)):a=e;let{month:u,day:l}=Ca(a,o);return R({year:a,month:u,day:l},ar(n))}function Qr(n){let{year:e,month:t,day:r}=n,s=ka(e,t,r);return R({year:e,ordinal:s},ar(n))}function vi(n){let{year:e,ordinal:t}=n,{month:r,day:s}=Ca(e,t);return R({year:e,month:r,day:s},ar(n))}function va(n){let e=rr(n.weekYear),t=nt(n.weekNumber,1,ln(n.weekYear)),r=nt(n.weekday,1,7);return e?t?r?!1:Be("weekday",n.weekday):Be("week",n.week):Be("weekYear",n.weekYear)}function xa(n){let e=rr(n.year),t=nt(n.ordinal,1,qt(n.year));return e?t?!1:Be("ordinal",n.ordinal):Be("year",n.year)}function xi(n){let e=rr(n.year),t=nt(n.month,1,12),r=nt(n.day,1,un(n.year,n.month));return e?t?r?!1:Be("day",n.day):Be("month",n.month):Be("year",n.year)}function Oi(n){let{hour:e,minute:t,second:r,millisecond:s}=n,i=nt(e,0,23)||e===24&&t===0&&r===0&&s===0,o=nt(t,0,59),a=nt(r,0,59),u=nt(s,0,999);return i?o?a?u?!1:Be("millisecond",s):Be("second",r):Be("minute",t):Be("hour",e)}var Ii="Invalid DateTime",Oa=864e13;function Xr(n){return new de("unsupported zone",`the zone "${n.name}" is not supported`)}function Li(n){return n.weekData===null&&(n.weekData=Zr(n.c)),n.weekData}function dr(n,e){let t={ts:n.ts,zone:n.zone,c:n.c,o:n.o,loc:n.loc,invalid:n.invalid};return new q(ye(R(R({},t),e),{old:t}))}function Pa(n,e,t){let r=n-e*60*1e3,s=t.offset(r);if(e===s)return[r,e];r-=(s-e)*60*1e3;let i=t.offset(r);return s===i?[r,s]:[n-Math.min(s,i)*60*1e3,Math.max(s,i)]}function Ia(n,e){n+=e*60*1e3;let t=new Date(n);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function ts(n,e,t){return Pa(ir(n),e,t)}function La(n,e){let t=n.o,r=n.c.year+Math.trunc(e.years),s=n.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,i=ye(R({},n.c),{year:r,month:s,day:Math.min(n.c.day,un(r,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7}),o=B.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=ir(i),[u,l]=Pa(a,t,n.zone);return o!==0&&(u+=o,l=n.zone.offset(u)),{ts:u,o:l}}function hr(n,e,t,r,s,i){let{setZone:o,zone:a}=t;if(n&&Object.keys(n).length!==0){let u=e||a,l=q.fromObject(n,ye(R({},t),{zone:u,specificOffset:i}));return o?l:l.setZone(a)}else return q.invalid(new de("unparsable",`the input "${s}" can\'t be parsed as ${r}`))}function es(n,e,t=!0){return n.isValid?we.create(ne.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(n,e):null}function Ni(n,e){let t=n.c.year>9999||n.c.year<0,r="";return t&&n.c.year>=0&&(r+="+"),r+=re(n.c.year,t?6:4),e?(r+="-",r+=re(n.c.month),r+="-",r+=re(n.c.day)):(r+=re(n.c.month),r+=re(n.c.day)),r}function Na(n,e,t,r,s,i){let o=re(n.c.hour);return e?(o+=":",o+=re(n.c.minute),(n.c.second!==0||!t)&&(o+=":")):o+=re(n.c.minute),(n.c.second!==0||!t)&&(o+=re(n.c.second),(n.c.millisecond!==0||!r)&&(o+=".",o+=re(n.c.millisecond,3))),s&&(n.isOffsetFixed&&n.offset===0&&!i?o+="Z":n.o<0?(o+="-",o+=re(Math.trunc(-n.o/60)),o+=":",o+=re(Math.trunc(-n.o%60))):(o+="+",o+=re(Math.trunc(n.o/60)),o+=":",o+=re(Math.trunc(n.o%60)))),i&&(o+="["+n.zone.ianaName+"]"),o}var $a={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Rc={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jc={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ra=["year","month","day","hour","minute","second","millisecond"],qc=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Vc=["year","ordinal","hour","minute","second","millisecond"];function Aa(n){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[n.toLowerCase()];if(!e)throw new sn(n);return e}function Ma(n,e){let t=Ve(e.zone,X.defaultZone),r=ne.fromObject(e),s=X.now(),i,o;if(W(n.year))i=s;else{for(let l of Ra)W(n[l])&&(n[l]=$a[l]);let a=xi(n)||Oi(n);if(a)return q.invalid(a);let u=t.offset(s);[i,o]=ts(n,u,t)}return new q({ts:i,zone:t,loc:r,o})}function _a(n,e,t){let r=W(t.round)?!0:t.round,s=(o,a)=>(o=an(o,r||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,a)),i=o=>t.calendary?e.hasSame(n,o)?0:e.startOf(o).diff(n.startOf(o),o).get(o):e.diff(n,o).get(o);if(t.unit)return s(i(t.unit),t.unit);for(let o of t.units){let a=i(o);if(Math.abs(a)>=1)return s(a,o)}return s(n>e?-0:0,t.units[t.units.length-1])}function Ba(n){let e={},t;return n.length>0&&typeof n[n.length-1]=="object"?(e=n[n.length-1],t=Array.from(n).slice(0,n.length-1)):t=Array.from(n),[e,t]}var q=class n{constructor(e){let t=e.zone||X.defaultZone,r=e.invalid||(Number.isNaN(e.ts)?new de("invalid input"):null)||(t.isValid?null:Xr(t));this.ts=W(e.ts)?X.now():e.ts;let s=null,i=null;if(!r)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,i]=[e.old.c,e.old.o];else{let a=t.offset(this.ts);s=Ia(this.ts,a),r=Number.isNaN(s.year)?new de("invalid input"):null,s=r?null:s,i=r?null:a}this._zone=t,this.loc=e.loc||ne.create(),this.invalid=r,this.weekData=null,this.c=s,this.o=i,this.isLuxonDateTime=!0}static now(){return new n({})}static local(){let[e,t]=Ba(arguments),[r,s,i,o,a,u,l]=t;return Ma({year:r,month:s,day:i,hour:o,minute:a,second:u,millisecond:l},e)}static utc(){let[e,t]=Ba(arguments),[r,s,i,o,a,u,l]=t;return e.zone=he.utcInstance,Ma({year:r,month:s,day:i,hour:o,minute:a,second:u,millisecond:l},e)}static fromJSDate(e,t={}){let r=Po(e)?e.valueOf():NaN;if(Number.isNaN(r))return n.invalid("invalid input");let s=Ve(t.zone,X.defaultZone);return s.isValid?new n({ts:r,zone:s,loc:ne.fromObject(t)}):n.invalid(Xr(s))}static fromMillis(e,t={}){if(tt(e))return e<-Oa||e>Oa?n.invalid("Timestamp out of range"):new n({ts:e,zone:Ve(t.zone,X.defaultZone),loc:ne.fromObject(t)});throw new fe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(tt(e))return new n({ts:e*1e3,zone:Ve(t.zone,X.defaultZone),loc:ne.fromObject(t)});throw new fe("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let r=Ve(t.zone,X.defaultZone);if(!r.isValid)return n.invalid(Xr(r));let s=X.now(),i=W(t.specificOffset)?r.offset(s):t.specificOffset,o=cn(e,Aa),a=!W(o.ordinal),u=!W(o.year),l=!W(o.month)||!W(o.day),f=u||l,d=o.weekYear||o.weekNumber,m=ne.fromObject(t);if((f||a)&&d)throw new pt("Can\'t mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new pt("Can\'t mix ordinal dates with month/day");let h=d||o.weekday&&!f,b,g,D=Ia(s,i);h?(b=qc,g=Rc,D=Zr(D)):a?(b=Vc,g=jc,D=Qr(D)):(b=Ra,g=$a);let T=!1;for(let C of b){let V=o[C];W(V)?T?o[C]=g[C]:o[C]=D[C]:T=!0}let I=h?va(o):a?xa(o):xi(o),N=I||Oi(o);if(N)return n.invalid(N);let y=h?Ci(o):a?vi(o):o,[w,v]=ts(y,i,r),x=new n({ts:w,zone:r,o:v,loc:m});return o.weekday&&f&&e.weekday!==x.weekday?n.invalid("mismatched weekday",`you can\'t specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,t={}){let[r,s]=ia(e);return hr(r,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[r,s]=oa(e);return hr(r,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[r,s]=aa(e);return hr(r,s,t,"HTTP",t)}static fromFormat(e,t,r={}){if(W(e)||W(t))throw new fe("fromFormat requires an input string and a format");let{locale:s=null,numberingSystem:i=null}=r,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0}),[a,u,l,f]=Ea(o,e,t);return f?n.invalid(f):hr(a,u,r,`format ${t}`,e,l)}static fromString(e,t,r={}){return n.fromFormat(e,t,r)}static fromSQL(e,t={}){let[r,s]=ca(e);return hr(r,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new fe("need to specify a reason the DateTime is invalid");let r=e instanceof de?e:new de(e,t);if(X.throwOnInvalid)throw new Ur(r);return new n({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Li(this).weekYear:NaN}get weekNumber(){return this.isValid?Li(this).weekNumber:NaN}get weekday(){return this.isValid?Li(this).weekday:NaN}get ordinal(){return this.isValid?Qr(this.c).ordinal:NaN}get monthShort(){return this.isValid?gt.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?gt.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?gt.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?gt.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return jt(this.year)}get daysInMonth(){return un(this.year,this.month)}get daysInYear(){return this.isValid?qt(this.year):NaN}get weeksInWeekYear(){return this.isValid?ln(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:r,calendar:s}=we.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:r,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(he.instance(e),t)}toLocal(){return this.setZone(X.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:r=!1}={}){if(e=Ve(e,X.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||r){let i=e.offset(this.ts),o=this.toObject();[s]=ts(o,i,e)}return dr(this,{ts:s,zone:e})}else return n.invalid(Xr(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:r}={}){let s=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:r});return dr(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=cn(e,Aa),r=!W(t.weekYear)||!W(t.weekNumber)||!W(t.weekday),s=!W(t.ordinal),i=!W(t.year),o=!W(t.month)||!W(t.day),a=i||o,u=t.weekYear||t.weekNumber;if((a||s)&&u)throw new pt("Can\'t mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&s)throw new pt("Can\'t mix ordinal dates with month/day");let l;r?l=Ci(R(R({},Zr(this.c)),t)):W(t.ordinal)?(l=R(R({},this.toObject()),t),W(t.day)&&(l.day=Math.min(un(l.year,l.month),l.day))):l=vi(R(R({},Qr(this.c)),t));let[f,d]=ts(l,this.o,this.zone);return dr(this,{ts:f,o:d})}plus(e){if(!this.isValid)return this;let t=B.fromDurationLike(e);return dr(this,La(this,t))}minus(e){if(!this.isValid)return this;let t=B.fromDurationLike(e).negate();return dr(this,La(this,t))}startOf(e){if(!this.isValid)return this;let t={},r=B.normalizeUnit(e);switch(r){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break;case"milliseconds":break}if(r==="weeks"&&(t.weekday=1),r==="quarters"){let s=Math.ceil(this.month/3);t.month=(s-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?we.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Ii}toLocaleString(e=on,t={}){return this.isValid?we.create(this.loc.clone(t),e).formatDateTime(this):Ii}toLocaleParts(e={}){return this.isValid?we.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:r=!1,includeOffset:s=!0,extendedZone:i=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Ni(this,o);return a+="T",a+=Na(this,o,t,r,s,i),a}toISODate({format:e="extended"}={}){return this.isValid?Ni(this,e==="extended"):null}toISOWeekDate(){return es(this,"kkkk-\'W\'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:r=!0,includePrefix:s=!1,extendedZone:i=!1,format:o="extended"}={}){return this.isValid?(s?"T":"")+Na(this,o==="extended",t,e,r,i):null}toRFC2822(){return es(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return es(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss \'GMT\'")}toSQLDate(){return this.isValid?Ni(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:r=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(r&&(s+=" "),t?s+="z":e&&(s+="ZZ")),es(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ii}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t=R({},this.c);return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",r={}){if(!this.isValid||!e.isValid)return B.invalid("created by diffing an invalid DateTime");let s=R({locale:this.locale,numberingSystem:this.numberingSystem},r),i=$o(t).map(B.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,l=ma(a,u,i,s);return o?l.negate():l}diffNow(e="milliseconds",t={}){return this.diff(n.now(),e,t)}until(e){return this.isValid?yt.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;let r=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t)<=r&&r<=s.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||n.fromObject({},{zone:this.zone}),r=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(n.isDateTime))throw new fe("max requires all arguments be DateTimes");return Xs(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,r={}){let{locale:s=null,numberingSystem:i=null}=r,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0});return ki(o,e,t)}static fromStringExplain(e,t,r={}){return n.fromFormatExplain(e,t,r)}static get DATE_SHORT(){return on}static get DATE_MED(){return $n}static get DATE_MED_WITH_WEEKDAY(){return Gs}static get DATE_FULL(){return Rn}static get DATE_HUGE(){return jn}static get TIME_SIMPLE(){return qn}static get TIME_WITH_SECONDS(){return Vn}static get TIME_WITH_SHORT_OFFSET(){return Un}static get TIME_WITH_LONG_OFFSET(){return Kn}static get TIME_24_SIMPLE(){return Wn}static get TIME_24_WITH_SECONDS(){return Hn}static get TIME_24_WITH_SHORT_OFFSET(){return Jn}static get TIME_24_WITH_LONG_OFFSET(){return zn}static get DATETIME_SHORT(){return Yn}static get DATETIME_SHORT_WITH_SECONDS(){return Gn}static get DATETIME_MED(){return Zn}static get DATETIME_MED_WITH_SECONDS(){return Qn}static get DATETIME_MED_WITH_WEEKDAY(){return Zs}static get DATETIME_FULL(){return Xn}static get DATETIME_FULL_WITH_SECONDS(){return er}static get DATETIME_HUGE(){return tr}static get DATETIME_HUGE_WITH_SECONDS(){return nr}};function bn(n){if(q.isDateTime(n))return n;if(n&&n.valueOf&&tt(n.valueOf()))return q.fromJSDate(n);if(n&&typeof n=="object")return q.fromObject(n);throw new fe(`Unknown datetime argument: ${n}, of type ${typeof n}`)}var bt=Vr(ns());var Fn=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Mi(n){return n==null?n:n.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds").normalize()}function ja(n,e,t,r){return n.second==0&&n.minute==0&&n.hour==0?n.toLocal().toFormat(e,{locale:r}):n.toLocal().toFormat(t,{locale:r})}function qa(n){n=Mi(n);let e="";return n.years&&(e+=`${n.years} years, `),n.months&&(e+=`${n.months} months, `),n.weeks&&(e+=`${n.weeks} weeks, `),n.days&&(e+=`${n.days} days, `),n.hours&&(e+=`${n.hours} hours, `),n.minutes&&(e+=`${n.minutes} minutes, `),n.seconds&&(e+=`${Math.round(n.seconds)} seconds, `),n.milliseconds&&(e+=`${Math.round(n.milliseconds)} ms, `),e.endsWith(", ")&&(e=e.substring(0,e.length-2)),e}function En(n){return n.includes("/")&&(n=n.substring(n.lastIndexOf("/")+1)),n.endsWith(".md")&&(n=n.substring(0,n.length-3)),n}function Va(n){return n.includes(".")?n.substring(n.lastIndexOf(".")+1):""}var Uc=bt.alt(bt.regex(new RegExp(Fn(),"")),bt.regex(/[0-9\\p{Letter}_-]+/u),bt.whitespace.map(n=>" "),bt.any.map(n=>" ")).many().map(n=>n.join("").split(/\\s+/).join(" ").trim());function Ua(n){return Uc.tryParse(n)}var Oe=class n{static file(e,t=!1,r){return new n({path:e,embed:t,display:r,subpath:void 0,type:"file"})}static infer(e,t=!1,r){if(e.includes("#^")){let s=e.split("#^");return n.block(s[0],s[1],t,r)}else if(e.includes("#")){let s=e.split("#");return n.header(s[0],s[1],t,r)}else return n.file(e,t,r)}static header(e,t,r,s){return new n({path:e,embed:r,display:s,subpath:Ua(t),type:"header"})}static block(e,t,r,s){return new n({path:e,embed:r,display:s,subpath:t,type:"block"})}static fromObject(e){return new n(e)}static parseInner(e){let[t,r]=Kc(e);return n.infer(t,!1,r)}constructor(e){Object.assign(this,e)}withPath(e){return new n(Object.assign({},this,{path:e}))}withDisplay(e){return new n(Object.assign({},this,{display:e}))}withEmbed(e){return this.embed==e?this:new n(Object.assign({},this,{embed:e}))}withHeader(e){return n.header(this.path,e,this.embed,this.display)}withBlock(e){return n.block(this.path,e,this.embed,this.display)}equals(e){return e==null||e==null?!1:this.path==e.path&&this.type==e.type&&this.subpath==e.subpath}toString(){return this.markdown()}toObject(){return{path:this.path,type:this.type,subpath:this.subpath,display:this.display,embed:this.embed}}toFile(){return n.file(this.path,this.embed,this.display)}toEmbed(){return this.withEmbed(!0)}fromEmbed(){return this.withEmbed(!1)}markdown(){let e=(this.embed?"!":"")+"[["+this.obsidianLink();return e+="|",e+=this.displayOrDefault(),e+="]]",e}displayOrDefault(){if(this.display)return this.display;{let e=En(this.path);return(this.type=="header"||this.type=="block")&&(e+=" > "+this.subpath),e}}obsidianLink(){var t,r;let e=this.path.replace("|","\\\\|");return this.type=="header"?e+"#"+((t=this.subpath)==null?void 0:t.replace("|","\\\\|")):this.type=="block"?e+"#^"+((r=this.subpath)==null?void 0:r.replace("|","\\\\|")):e}fileName(){return En(this.path)}};function Kc(n){let e=-1;for(;(e=n.indexOf("|",e+1))>=0;)if(!(e>0&&n[e-1]=="\\\\"))return[n.substring(0,e).replace(/\\\\\\|/g,"|"),n.substring(e+1)];return[n.replace(/\\\\\\|/g,"|"),void 0]}var rs=Symbol.for("yaml.alias"),ss=Symbol.for("yaml.document"),Ke=Symbol.for("yaml.map"),_i=Symbol.for("yaml.pair"),Ie=Symbol.for("yaml.scalar"),Ft=Symbol.for("yaml.seq"),Te=Symbol.for("yaml.node.type"),We=n=>!!n&&typeof n=="object"&&n[Te]===rs,rt=n=>!!n&&typeof n=="object"&&n[Te]===ss,He=n=>!!n&&typeof n=="object"&&n[Te]===Ke,H=n=>!!n&&typeof n=="object"&&n[Te]===_i,K=n=>!!n&&typeof n=="object"&&n[Te]===Ie,Je=n=>!!n&&typeof n=="object"&&n[Te]===Ft;function Z(n){if(n&&typeof n=="object")switch(n[Te]){case Ke:case Ft:return!0}return!1}function J(n){if(n&&typeof n=="object")switch(n[Te]){case rs:case Ke:case Ie:case Ft:return!0}return!1}var Ka=n=>(K(n)||Z(n))&&!!n.anchor;var Ce=Symbol("break visit"),Wa=Symbol("skip children"),st=Symbol("remove node");function ze(n,e){let t=Ha(e);rt(n)?wn(null,n.contents,t,Object.freeze([n]))===st&&(n.contents=null):wn(null,n,t,Object.freeze([]))}ze.BREAK=Ce;ze.SKIP=Wa;ze.REMOVE=st;function wn(n,e,t,r){let s=Ja(n,e,t,r);if(J(s)||H(s))return za(n,r,s),wn(n,s,t,r);if(typeof s!="symbol"){if(Z(e)){r=Object.freeze(r.concat(e));for(let i=0;in.replace(/[!,[\\]{}]/g,e=>Wc[e]),it=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \\t]+/),s=r.shift();switch(s){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[i,o]=r;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=r;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\\d+\\.\\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren\'t resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,r,s]=e.match(new RegExp("^(.*!)([^!]*)$","s"));s||t(`The ${e} tag has no suffix`);let i=this.tags[r];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+Hc(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),s;if(e&&r.length>0&&J(e.contents)){let i={};ze(e.contents,(o,a)=>{J(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of r)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`\n`)}};it.defaultYaml={explicit:!1,version:"1.2"};it.defaultTags={"!!":"tag:yaml.org,2002:"};function os(n){if(/[\\x00-\\x19\\s,[\\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function Bi(n){let e=new Set;return ze(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function Pi(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Ya(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s||(s=Bi(n));let o=Pi(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(K(o.node)||Z(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:r}}function xt(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let s=0,i=r.length;sce(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Ka(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=i=>{r.res=i,delete t.onCreate};let s=n.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof n=="bigint"&&!(t!=null&&t.keep)?Number(n):n}var Ot=class{constructor(e){Object.defineProperty(this,Te,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:r,onAnchor:s,reviver:i}={}){if(!rt(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=ce(this,"",o);if(typeof s=="function")for(let{count:u,res:l}of o.anchors.values())s(l,u);return typeof i=="function"?xt(i,{"":a},"",a):a}};var Et=class extends Ot{constructor(e){super(rs),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return ze(e,{Node:(r,s)=>{if(s===this)return ze.BREAK;s.anchor===this.source&&(t=s)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:s,maxAliasCount:i}=t,o=this.resolve(s);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=r.get(o);if(a||(ce(o,null,t),a=r.get(o)),!a||a.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=as(s,o,r)),a.count*a.aliasCount>i)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(e,t,r){let s=`*${this.source}`;if(e){if(os(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function as(n,e,t){if(We(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(Z(e)){let r=0;for(let s of e.items){let i=as(n,s,t);i>r&&(r=i)}return r}else if(H(e)){let r=as(n,e.key,t),s=as(n,e.value,t);return Math.max(r,s)}return 1}var us=n=>!n||typeof n!="function"&&typeof n!="object",P=class extends Ot{constructor(e){super(Ie),this.value=e}toJSON(e,t){return t!=null&&t.keep?this.value:ce(this.value,e,t)}toString(){return String(this.value)}};P.BLOCK_FOLDED="BLOCK_FOLDED";P.BLOCK_LITERAL="BLOCK_LITERAL";P.PLAIN="PLAIN";P.QUOTE_DOUBLE="QUOTE_DOUBLE";P.QUOTE_SINGLE="QUOTE_SINGLE";var Jc="tag:yaml.org,2002:";function zc(n,e,t){var r;if(e){let s=t.filter(o=>o.tag===e),i=(r=s.find(o=>!o.format))!=null?r:s[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(s=>{var i;return((i=s.identify)==null?void 0:i.call(s,n))&&!s.format})}function wt(n,e,t){var d,m,h;if(rt(n)&&(n=n.contents),J(n))return n;if(H(n)){let b=(m=(d=t.schema[Ke]).createNode)==null?void 0:m.call(d,t.schema,null,t);return b.items.push(n),b}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt!="undefined"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,u;if(r&&n&&typeof n=="object"){if(u=a.get(n),u)return u.anchor||(u.anchor=s(n)),new Et(u.anchor);u={anchor:null,node:null},a.set(n,u)}e!=null&&e.startsWith("!!")&&(e=Jc+e.slice(2));let l=zc(n,e,o.tags);if(!l){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let b=new P(n);return u&&(u.node=b),b}l=n instanceof Map?o[Ke]:Symbol.iterator in Object(n)?o[Ft]:o[Ke]}i&&(i(l),delete t.onTagObj);let f=l!=null&&l.createNode?l.createNode(t.schema,n,t):typeof((h=l==null?void 0:l.nodeClass)==null?void 0:h.from)=="function"?l.nodeClass.from(t.schema,n,t):new P(n);return e?f.tag=e:l.default||(f.tag=l.tag),u&&(u.node=f),f}function pr(n,e,t){let r=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=r,r=o}else r=new Map([[i,r]])}return wt(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var kn=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Sn=class extends Ot{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(r=>J(r)||H(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(kn(e))this.add(t);else{let[r,...s]=e,i=this.get(r,!0);if(Z(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(r,pr(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let s=this.get(t,!0);if(Z(s))return s.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...s]=e,i=this.get(r,!0);return s.length===0?!t&&K(i)?i.value:i:Z(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!H(t))return!1;let r=t.value;return r==null||e&&K(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let s=this.get(t,!0);return Z(s)?s.hasIn(r):!1}setIn(e,t){let[r,...s]=e;if(s.length===0)this.set(r,t);else{let i=this.get(r,!0);if(Z(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(r,pr(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};var Ga=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Pe(n,e){return/^\\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var ot=(n,e,t)=>n.endsWith(`\n`)?Pe(t,e):t.includes(`\n`)?`\n`+Pe(t,e):(n.endsWith(" ")?"":" ")+t;var $i="flow",ls="block",Dr="quoted";function yr(n,e,t="flow",{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;ss-Math.max(2,i)?l.push(0):d=s-r);let m,h,b=!1,g=-1,D=-1,T=-1;t===ls&&(g=Za(n,g,e.length),g!==-1&&(d=g+u));for(let N;N=n[g+=1];){if(t===Dr&&N==="\\\\"){switch(D=g,n[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}T=g}if(N===`\n`)t===ls&&(g=Za(n,g,e.length)),d=g+e.length+u,m=void 0;else{if(N===" "&&h&&h!==" "&&h!==`\n`&&h!==" "){let y=n[g+1];y&&y!==" "&&y!==`\n`&&y!==" "&&(m=g)}if(g>=d)if(m)l.push(m),d=m+u,m=void 0;else if(t===Dr){for(;h===" "||h===" ";)h=N,N=n[g+=1],b=!0;let y=g>T+1?g-2:D-1;if(f[y])return n;l.push(y),f[y]=!0,d=y+u,m=void 0}else b=!0}h=N}if(b&&a&&a(),l.length===0)return n;o&&o();let I=n.slice(0,l[0]);for(let N=0;N({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),ds=n=>/^(%|---|\\.\\.\\.)/m.test(n);function Yc(n,e,t){if(!e||e<0)return!1;let r=e-t,s=n.length;if(s<=r)return!1;for(let i=0,o=0;ir)return!0;if(o=i+1,s-o<=r)return!1}return!0}function gr(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(ds(n)?" ":""),o="",a=0;for(let u=0,l=t[u];l;l=t[++u])if(l===" "&&t[u+1]==="\\\\"&&t[u+2]==="n"&&(o+=t.slice(a,u)+"\\\\ ",u+=1,a=u,l="\\\\"),l==="\\\\")switch(t[u+1]){case"u":{o+=t.slice(a,u);let f=t.substr(u+2,4);switch(f){case"0000":o+="\\\\0";break;case"0007":o+="\\\\a";break;case"000b":o+="\\\\v";break;case"001b":o+="\\\\e";break;case"0085":o+="\\\\N";break;case"00a0":o+="\\\\_";break;case"2028":o+="\\\\L";break;case"2029":o+="\\\\P";break;default:f.substr(0,2)==="00"?o+="\\\\x"+f.substr(2):o+=t.substr(u,6)}u+=5,a=u+1}break;case"n":if(r||t[u+2]===\'"\'||t.length\n`;let d,m;for(m=t.length;m>0;--m){let v=t[m-1];if(v!==`\n`&&v!==" "&&v!==" ")break}let h=t.substring(m),b=h.indexOf(`\n`);b===-1?d="-":t===h||b!==h.length-1?(d="+",i&&i()):d="",h&&(t=t.slice(0,-h.length),h[h.length-1]===`\n`&&(h=h.slice(0,-1)),h=h.replace(ji,`$&${l}`));let g=!1,D,T=-1;for(D=0;D")+(g?l?"2":"1":"")+d;if(n&&(y+=" "+a(n.replace(/ ?[\\r\\n]+/g," ")),s&&s()),f)return t=t.replace(/\\n+/g,`$&${l}`),`${y}\n${l}${I}${t}${h}`;t=t.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,"$1$2").replace(/\\n+/g,`$&${l}`);let w=yr(`${I}${t}${h}`,l,ls,fs(r,!0));return`${y}\n${l}${w}`}function Gc(n,e,t,r){let{type:s,value:i}=n,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:f}=e;if(a&&i.includes(`\n`)||f&&/[[\\]{},]/.test(i))return Cn(i,e);if(!i||/^[\\n\\t ,[\\]{}#&*!|>\'"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(i))return a||f||!i.includes(`\n`)?Cn(i,e):cs(n,e,t,r);if(!a&&!f&&s!==P.PLAIN&&i.includes(`\n`))return cs(n,e,t,r);if(ds(i)){if(u==="")return e.forceBlockIndent=!0,cs(n,e,t,r);if(a&&u===l)return Cn(i,e)}let d=i.replace(/\\n+/g,`$&\n${u}`);if(o){let m=g=>{var D;return g.default&&g.tag!=="tag:yaml.org,2002:str"&&((D=g.test)==null?void 0:D.test(d))},{compat:h,tags:b}=e.doc.schema;if(b.some(m)||h!=null&&h.some(m))return Cn(i,e)}return a?d:yr(d,u,$i,fs(e,!1))}function Wt(n,e,t,r){let{implicitKey:s,inFlow:i}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==P.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(o.value)&&(a=P.QUOTE_DOUBLE);let u=f=>{switch(f){case P.BLOCK_FOLDED:case P.BLOCK_LITERAL:return s||i?Cn(o.value,e):cs(o,e,t,r);case P.QUOTE_DOUBLE:return gr(o.value,e);case P.QUOTE_SINGLE:return Ri(o.value,e);case P.PLAIN:return Gc(o,e,t,r);default:return null}},l=u(a);if(l===null){let{defaultKeyType:f,defaultStringType:d}=e.options,m=s&&f||d;if(l=u(m),l===null)throw new Error(`Unsupported default string type ${m}`)}return l}function hs(n,e){let t=Object.assign({blockQuote:!0,commentString:Ga,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function Zc(n,e){var s,i,o,a;if(e.tag){let u=n.filter(l=>l.tag===e.tag);if(u.length>0)return(s=u.find(l=>l.format===e.format))!=null?s:u[0]}let t,r;if(K(e)){r=e.value;let u=n.filter(l=>{var f;return(f=l.identify)==null?void 0:f.call(l,r)});if(u.length>1){let l=u.filter(f=>f.test);l.length>0&&(u=l)}t=(i=u.find(l=>l.format===e.format))!=null?i:u.find(l=>!l.format)}else r=e,t=n.find(u=>u.nodeClass&&r instanceof u.nodeClass);if(!t){let u=(a=(o=r==null?void 0:r.constructor)==null?void 0:o.name)!=null?a:typeof r;throw new Error(`Tag not resolved for ${u} value`)}return t}function Qc(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(K(n)||Z(n))&&n.anchor;i&&os(i)&&(t.add(i),s.push(`&${i}`));let o=n.tag?n.tag:e.default?null:e.tag;return o&&s.push(r.directives.tagString(o)),s.join(" ")}function Tt(n,e,t,r){var u,l;if(H(n))return n.toString(e,t,r);if(We(n)){if(e.doc.directives)return n.toString(e);if((u=e.resolvedAliases)!=null&&u.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let s,i=J(n)?n:e.doc.createNode(n,{onTagObj:f=>s=f});s||(s=Zc(e.doc.schema.tags,i));let o=Qc(i,s,e);o.length>0&&(e.indentAtStart=((l=e.indentAtStart)!=null?l:0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,r):K(i)?Wt(i,e,t,r):i.toString(e,t,r);return o?K(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}\n${e.indent}${a}`:a}function Qa({key:n,value:e},t,r,s){var x,C;let{allNullValues:i,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:f,simpleKeys:d}}=t,m=J(n)&&n.comment||null;if(d){if(m)throw new Error("With simple keys, key nodes cannot have comments");if(Z(n)||!J(n)&&typeof n=="object"){let V="With simple keys, collection cannot be used as a key value";throw new Error(V)}}let h=!d&&(!n||m&&e==null&&!t.inFlow||Z(n)||(K(n)?n.type===P.BLOCK_FOLDED||n.type===P.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(d||!i),indent:a+u});let b=!1,g=!1,D=Tt(n,t,()=>b=!0,()=>g=!0);if(!h&&!t.inFlow&&D.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(i||e==null)return b&&r&&r(),D===""?"?":h?`? ${D}`:D}else if(i&&!d||e==null&&h)return D=`? ${D}`,m&&!b?D+=ot(D,t.indent,l(m)):g&&s&&s(),D;b&&(m=null),h?(m&&(D+=ot(D,t.indent,l(m))),D=`? ${D}\n${a}:`):(D=`${D}:`,m&&(D+=ot(D,t.indent,l(m))));let T,I,N;J(e)?(T=!!e.spaceBefore,I=e.commentBefore,N=e.comment):(T=!1,I=null,N=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!m&&K(e)&&(t.indentAtStart=D.length+1),g=!1,!f&&u.length>=2&&!t.inFlow&&!h&&Je(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let y=!1,w=Tt(e,t,()=>y=!0,()=>g=!0),v=" ";if(m||T||I){if(v=T?`\n`:"",I){let V=l(I);v+=`\n${Pe(V,t.indent)}`}w===""&&!t.inFlow?v===`\n`&&(v=`\n\n`):v+=`\n${t.indent}`}else if(!h&&Z(e)){let V=w[0],j=w.indexOf(`\n`),Y=j!==-1,ee=(C=(x=t.inFlow)!=null?x:e.flow)!=null?C:e.items.length===0;if(Y||!ee){let ae=!1;if(Y&&(V==="&"||V==="!")){let O=w.indexOf(" ");V==="&"&&O!==-1&&On===ps||typeof n=="symbol"&&n.description===ps,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new P(Symbol(ps)),{addToJSMap:Vi}),stringify:()=>ps},Xa=(n,e)=>(Ye.identify(e)||K(e)&&(!e.type||e.type===P.PLAIN)&&Ye.identify(e.value))&&(n==null?void 0:n.doc.schema.tags.some(t=>t.tag===Ye.tag&&t.default));function Vi(n,e,t){if(t=n&&We(t)?t.resolve(n.doc):t,Je(t))for(let r of t.items)qi(n,e,r);else if(Array.isArray(t))for(let r of t)qi(n,e,r);else qi(n,e,t)}function qi(n,e,t){let r=n&&We(t)?t.resolve(n.doc):t;if(!He(r))throw new Error("Merge sources must be maps or map aliases");let s=r.toJSON(null,n,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function Ds(n,e,{key:t,value:r}){if(J(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(Xa(n,t))Vi(n,e,r);else{let s=ce(t,"",n);if(e instanceof Map)e.set(s,ce(r,s,n));else if(e instanceof Set)e.add(s);else{let i=Xc(t,s,n),o=ce(r,i,n);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function Xc(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(J(n)&&(t!=null&&t.doc)){let r=hs(t.doc,{});r.anchors=new Set;for(let i of t.anchors.keys())r.anchors.add(i.anchor);r.inFlow=!0,r.inStringifyKey=!0;let s=n.toString(r);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+\'..."\'),ms(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}function vn(n,e,t){let r=wt(n,void 0,t),s=wt(e,void 0,t);return new ie(r,s)}var ie=class n{constructor(e,t=null){Object.defineProperty(this,Te,{value:_i}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return J(t)&&(t=t.clone(e)),J(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t!=null&&t.mapAsMap?new Map:{};return Ds(t,r,this)}toString(e,t,r){return e!=null&&e.doc?Qa(this,e,t,r):JSON.stringify(this)}};function gs(n,e,t){var i;return(((i=e.inFlow)!=null?i:n.flow)?tf:ef)(n,e,t)}function ef({comment:n,items:e},t,{blockItemPrefix:r,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),d=!1,m=[];for(let b=0;bD=null,()=>d=!0);D&&(T+=ot(T,i,l(D))),d&&D&&(d=!1),m.push(r+T)}let h;if(m.length===0)h=s.start+s.end;else{h=m[0];for(let b=1;bD=null);bf||T.includes(`\n`))&&(l=!0),d.push(T),f=d.length}let{start:m,end:h}=t;if(d.length===0)return m+h;if(!l){let b=d.reduce((g,D)=>g+D.length+2,2);l=e.options.lineWidth>0&&b>e.options.lineWidth}if(l){let b=m;for(let g of d)b+=g?`\n${i}${s}${g}`:`\n`;return`${b}\n${s}${h}`}else return`${m}${o}${d.join(" ")}${o}${h}`}function ys({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\\n+/,"")),r){let i=Pe(e(r),n);t.push(i.trimStart())}}function It(n,e){let t=K(e)?e.value:e;for(let r of n)if(H(r)&&(r.key===e||r.key===t||K(r.key)&&r.key.value===t))return r}var oe=class extends Sn{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Ke,e),this.items=[]}static from(e,t,r){let{keepUndefined:s,replacer:i}=r,o=new this(e),a=(u,l)=>{if(typeof i=="function")l=i.call(t,u,l);else if(Array.isArray(i)&&!i.includes(u))return;(l!==void 0||s)&&o.items.push(vn(u,l,r))};if(t instanceof Map)for(let[u,l]of t)a(u,l);else if(t&&typeof t=="object")for(let u of Object.keys(t))a(u,t[u]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){var o;let r;H(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new ie(e,e==null?void 0:e.value):r=new ie(e.key,e.value);let s=It(this.items,r.key),i=(o=this.schema)==null?void 0:o.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);K(s.value)&&us(r.value)?s.value.value=r.value:s.value=r.value}else if(i){let a=this.items.findIndex(u=>i(r,u)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(e){let t=It(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){var i;let r=It(this.items,e),s=r==null?void 0:r.value;return(i=!t&&K(s)?s.value:s)!=null?i:void 0}has(e){return!!It(this.items,e)}set(e,t){this.add(new ie(e,t),!0)}toJSON(e,t,r){let s=r?new r:t!=null&&t.mapAsMap?new Map:{};t!=null&&t.onCreate&&t.onCreate(s);for(let i of this.items)Ds(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!H(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),gs(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};var Ge={collection:"map",default:!0,nodeClass:oe,tag:"tag:yaml.org,2002:map",resolve(n,e){return He(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>oe.from(n,e,t)};var be=class extends Sn{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Ft,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=bs(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=bs(e);if(typeof r!="number")return;let s=this.items[r];return!t&&K(s)?s.value:s}has(e){let t=bs(e);return typeof t=="number"&&t=0?e:null}var Ze={collection:"seq",default:!0,nodeClass:be,tag:"tag:yaml.org,2002:seq",resolve(n,e){return Je(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>be.from(n,e,t)};var Lt={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),Wt(n,e,t,r)}};var Ht={identify:n=>n==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new P(null),stringify:({source:n},e)=>typeof n=="string"&&Ht.test.test(n)?n:e.options.nullStr};var br={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new P(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&br.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};function Fe({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let s=typeof r=="number"?r:Number(r);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=JSON.stringify(r);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}var Fs={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},Es={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Fe(n)}},ws={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,resolve(n){let e=new P(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:Fe};var Ts=n=>typeof n=="bigint"||Number.isInteger(n),Ui=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function eu(n,e,t){let{value:r}=n;return Ts(r)&&r>=0?t+r.toString(e):Fe(n)}var Ss={identify:n=>Ts(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>Ui(n,2,8,t),stringify:n=>eu(n,8,"0o")},ks={identify:Ts,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>Ui(n,0,10,t),stringify:Fe},Cs={identify:n=>Ts(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>Ui(n,2,16,t),stringify:n=>eu(n,16,"0x")};var tu=[Ge,Ze,Lt,Ht,br,Ss,ks,Cs,Fs,Es,ws];function nu(n){return typeof n=="bigint"||Number.isInteger(n)}var vs=({value:n})=>JSON.stringify(n),nf=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:vs},{identify:n=>n==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:vs},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:n=>n==="true",stringify:vs},{identify:nu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>nu(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:vs}],rf={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},ru=[Ge,Ze].concat(nf,rf);var Fr={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Buffer=="function")return Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\\n\\r]/g,"")),r=new Uint8Array(t.length);for(let s=0;s1&&e("Each pair must have its own sequence indicator");let i=s.items[0]||new ie(new P(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}\n${i.key.commentBefore}`:s.commentBefore),s.comment){let o=(t=i.value)!=null?t:i.key;o.comment=o.comment?`${s.comment}\n${o.comment}`:s.comment}s=i}n.items[r]=H(s)?s:new ie(s)}}else e("Expected a sequence for this tag");return n}function Wi(n,e,t){let{replacer:r}=t,s=new be(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(vn(a,u,t))}return s}var Er={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ki,createNode:Wi};var xn=class n extends be{constructor(){super(),this.add=oe.prototype.add.bind(this),this.delete=oe.prototype.delete.bind(this),this.get=oe.prototype.get.bind(this),this.has=oe.prototype.has.bind(this),this.set=oe.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t!=null&&t.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(H(s)?(i=ce(s.key,"",t),o=ce(s.value,i,t)):i=ce(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Wi(e,t,r),i=new this;return i.items=s.items,i}};xn.tag="tag:yaml.org,2002:omap";var wr={collection:"seq",identify:n=>n instanceof Map,nodeClass:xn,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ki(n,e),r=[];for(let{key:s}of t.items)K(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new xn,t)},createNode:(n,e,t)=>xn.from(n,e,t)};function su({value:n,source:e},t){return e&&(n?Hi:Ji).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Hi={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new P(!0),stringify:su},Ji={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new P(!1),stringify:su};var iu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},ou={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Fe(n)}},au={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,resolve(n){let e=new P(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:Fe};var Tr=n=>typeof n=="bigint"||Number.isInteger(n);function xs(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function zi(n,e,t){let{value:r}=n;if(Tr(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Fe(n)}var uu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>xs(n,2,2,t),stringify:n=>zi(n,2,"0b")},lu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>xs(n,1,8,t),stringify:n=>zi(n,8,"0")},cu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>xs(n,0,10,t),stringify:Fe},fu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>xs(n,2,16,t),stringify:n=>zi(n,16,"0x")};var On=class n extends oe{constructor(e){super(e),this.tag=n.tag}add(e){let t;H(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ie(e.key,null):t=new ie(e,null),It(this.items,t.key)||this.items.push(t)}get(e,t){let r=It(this.items,e);return!t&&H(r)?K(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let r=It(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new ie(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(vn(o,null,r));return i}};On.tag="tag:yaml.org,2002:set";var Sr={collection:"map",identify:n=>n instanceof Set,nodeClass:On,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>On.from(n,e,t),resolve(n,e){if(He(n)){if(n.hasAllNullValues(!0))return Object.assign(new On,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};function Yi(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function du(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Fe(n);let r="";e<0&&(r="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\\d*$/,"")}var Os={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Yi(n,t),stringify:du},Is={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,resolve:n=>Yi(n,!1),stringify:du},In={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let e=n.match(In.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),u=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,r-1,s,i||0,o||0,a||0,u),f=e[8];if(f&&f!=="Z"){let d=Yi(f,!1);Math.abs(d)<30&&(d*=60),l-=6e4*d}return new Date(l)},stringify:({value:n})=>n.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,"")};var Gi=[Ge,Ze,Lt,Ht,Hi,Ji,uu,lu,cu,fu,iu,ou,au,Fr,Ye,wr,Er,Sr,Os,Is,In];var hu=new Map([["core",tu],["failsafe",[Ge,Ze,Lt]],["json",ru],["yaml11",Gi],["yaml-1.1",Gi]]),mu={binary:Fr,bool:br,float:ws,floatExp:Es,floatNaN:Fs,floatTime:Is,int:ks,intHex:Cs,intOct:Ss,intTime:Os,map:Ge,merge:Ye,null:Ht,omap:wr,pairs:Er,seq:Ze,set:Sr,timestamp:In},pu={"tag:yaml.org,2002:binary":Fr,"tag:yaml.org,2002:merge":Ye,"tag:yaml.org,2002:omap":wr,"tag:yaml.org,2002:pairs":Er,"tag:yaml.org,2002:set":Sr,"tag:yaml.org,2002:timestamp":In};function Ls(n,e,t){let r=hu.get(e);if(r&&!n)return t&&!r.includes(Ye)?r.concat(Ye):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(hu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Ye)),s.reduce((i,o)=>{let a=typeof o=="string"?mu[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(mu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}var sf=(n,e)=>n.keye.key?1:0,kr=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ls(e,"compat"):e?Ls(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?pu:{},this.tags=Ls(t,this.name,r),this.toStringOptions=a!=null?a:null,Object.defineProperty(this,Ke,{value:Ge}),Object.defineProperty(this,Ie,{value:Lt}),Object.defineProperty(this,Ft,{value:Ze}),this.sortMapEntries=typeof o=="function"?o:o===!0?sf:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};function Du(n,e){var u;let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=hs(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pe(l,""))}let o=!1,a=null;if(n.contents){if(J(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pe(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,f=Tt(n.contents,s,()=>a=null,l);a&&(f+=ot(f,"",i(a))),(f[0]==="|"||f[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${f}`:t.push(f)}else t.push(Tt(n.contents,s));if((u=n.directives)!=null&&u.docEnd)if(n.comment){let l=i(n.comment);l.includes(`\n`)?(t.push("..."),t.push(Pe(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Pe(i(l),"")))}return t.join(`\n`)+`\n`}var Nt=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Te,{value:ss});let s=null;typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=i;let{version:o}=i;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new it({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,s,r)}clone(){let e=Object.create(n.prototype,{[Te]:{value:ss}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=J(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ln(this.contents)&&this.contents.add(e)}addIn(e,t){Ln(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=Bi(this);e.anchor=!t||r.has(t)?Pi(t||"a",r):t}return new Et(e.anchor)}createNode(e,t,r){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let D=I=>typeof I=="number"||I instanceof String||I instanceof Number,T=t.filter(D).map(String);T.length>0&&(t=t.concat(T)),s=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:f}=r!=null?r:{},{onAnchor:d,setAnchors:m,sourceObjects:h}=Ya(this,o||"a"),b={aliasDuplicateObjects:i!=null?i:!0,keepUndefined:u!=null?u:!1,onAnchor:d,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:h},g=wt(e,f,b);return a&&Z(g)&&(g.flow=!0),m(),g}createPair(e,t,r={}){let s=this.createNode(e,null,r),i=this.createNode(t,null,r);return new ie(s,i)}delete(e){return Ln(this.contents)?this.contents.delete(e):!1}deleteIn(e){return kn(e)?this.contents==null?!1:(this.contents=null,!0):Ln(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Z(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return kn(e)?!t&&K(this.contents)?this.contents.value:this.contents:Z(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Z(this.contents)?this.contents.has(e):!1}hasIn(e){return kn(e)?this.contents!==void 0:Z(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=pr(this.schema,[e],t):Ln(this.contents)&&this.contents.set(e,t)}setIn(e,t){kn(e)?this.contents=t:this.contents==null?this.contents=pr(this.schema,Array.from(e),t):Ln(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new it({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new it({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected \'1.1\', \'1.2\' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new kr(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},u=ce(this.contents,t!=null?t:"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?xt(o,{"":u},"",u):u}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Du(this,e)}};function Ln(n){if(Z(n))return!0;throw new Error("Expected a YAML collection as document contents")}var Cr=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Qe=class extends Cr{constructor(e,t,r){super("YAMLParseError",e,t,r)}},vr=class extends Cr{constructor(e,t,r){super("YAMLWarning",e,t,r)}},Zi=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:s}=t.linePos[0];t.message+=` at line ${r}, column ${s}`;let i=s-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).replace(/[\\n\\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\\u2026"),r>1&&/^ *$/.test(o.substring(0,i))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\\u2026\n`),o=a+o}if(/[^ ]/.test(o)){let a=1,u=t.linePos[1];u&&u.line===r&&u.col>s&&(a=Math.max(1,Math.min(u.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:\n\n${o}\n${l}\n`}};function at(n,{flow:e,indicator:t,next:r,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let u=!1,l=a,f=a,d="",m="",h=!1,b=!1,g=null,D=null,T=null,I=null,N=null,y=null,w=null;for(let C of n)switch(b&&(C.type!=="space"&&C.type!=="newline"&&C.type!=="comma"&&i(C.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b=!1),g&&(l&&C.type!=="comment"&&C.type!=="newline"&&i(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),C.type){case"space":!e&&(t!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&C.source.includes(" ")&&(g=C),f=!0;break;case"comment":{f||i(C,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let V=C.source.substring(1)||" ";d?d+=m+V:d=V,m="",l=!1;break}case"newline":l?d?d+=C.source:u=!0:m+=C.source,l=!0,h=!0,(D||T)&&(I=C),f=!0;break;case"anchor":D&&i(C,"MULTIPLE_ANCHORS","A node can have at most one anchor"),C.source.endsWith(":")&&i(C.offset+C.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=C,w===null&&(w=C.offset),l=!1,f=!1,b=!0;break;case"tag":{T&&i(C,"MULTIPLE_TAGS","A node can have at most one tag"),T=C,w===null&&(w=C.offset),l=!1,f=!1,b=!0;break}case t:(D||T)&&i(C,"BAD_PROP_ORDER",`Anchors and tags must be after the ${C.source} indicator`),y&&i(C,"UNEXPECTED_TOKEN",`Unexpected ${C.source} in ${e!=null?e:"collection"}`),y=C,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){N&&i(C,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),N=C,l=!1,f=!1;break}default:i(C,"UNEXPECTED_TOKEN",`Unexpected ${C.type} token`),l=!1,f=!1}let v=n[n.length-1],x=v?v.offset+v.source.length:s;return b&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&i(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&i(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:N,found:y,spaceBefore:u,comment:d,hasNewline:h,anchor:D,tag:T,newlineAfterProp:I,end:x,start:w!=null?w:x}}function At(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`\n`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(At(e.key)||At(e.value))return!0}return!1;default:return!0}}function xr(n,e,t){if((e==null?void 0:e.type)==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&At(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function Ns(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||K(i)&&K(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}var yu="All mapping items must start at the same column";function gu({composeNode:n,composeEmptyNode:e},t,r,s,i){var f,d;let o=(f=i==null?void 0:i.nodeClass)!=null?f:oe,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let u=r.offset,l=null;for(let m of r.items){let{start:h,key:b,sep:g,value:D}=m,T=at(h,{indicator:"explicit-key-ind",next:b!=null?b:g==null?void 0:g[0],offset:u,onError:s,parentIndent:r.indent,startOnNewline:!0}),I=!T.found;if(I){if(b&&(b.type==="block-seq"?s(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in b&&b.indent!==r.indent&&s(u,"BAD_INDENT",yu)),!T.anchor&&!T.tag&&!g){l=T.end,T.comment&&(a.comment?a.comment+=`\n`+T.comment:a.comment=T.comment);continue}(T.newlineAfterProp||At(b))&&s(b!=null?b:h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=T.found)==null?void 0:d.indent)!==r.indent&&s(u,"BAD_INDENT",yu);t.atKey=!0;let N=T.end,y=b?n(t,b,T,s):e(t,N,h,null,T,s);t.schema.compat&&xr(r.indent,b,s),t.atKey=!1,Ns(t,a.items,y)&&s(N,"DUPLICATE_KEY","Map keys must be unique");let w=at(g!=null?g:[],{indicator:"map-value-ind",next:D,offset:y.range[2],onError:s,parentIndent:r.indent,startOnNewline:!b||b.type==="block-scalar"});if(u=w.end,w.found){I&&((D==null?void 0:D.type)==="block-map"&&!w.hasNewline&&s(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&T.startn&&(n.type==="block-map"||n.type==="block-seq");function Fu({composeNode:n,composeEmptyNode:e},t,r,s,i){var D,T;let o=r.start.source==="{",a=o?"flow map":"flow sequence",u=(D=i==null?void 0:i.nodeClass)!=null?D:o?oe:be,l=new u(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let d=r.offset+r.start.source.length;for(let I=0;I0){let I=ut(b,g,t.options.strict,s);I.comment&&(l.comment?l.comment+=`\n`+I.comment:l.comment=I.comment),l.range=[r.offset,g,I.offset]}else l.range=[r.offset,g,g];return l}function eo(n,e,t,r,s,i){let o=t.type==="block-map"?gu(n,e,t,r,i):t.type==="block-seq"?bu(n,e,t,r,i):Fu(n,e,t,r,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Eu(n,e,t,r,s){var m,h;let i=r.tag,o=i?e.directives.tagName(i.source,b=>s(i,"TAG_RESOLVE_FAILED",b)):null;if(t.type==="block-seq"){let{anchor:b,newlineAfterProp:g}=r,D=b&&i?b.offset>i.offset?b:i:b!=null?b:i;D&&(!g||g.offsetb.tag===o&&b.collection===a);if(!u){let b=e.schema.knownTags[o];if(b&&b.collection===a)e.schema.tags.push(Object.assign({},b,{default:!1})),u=b;else return b!=null&&b.collection?s(i,"BAD_COLLECTION_TYPE",`${b.tag} used for ${a} collection, but expects ${b.collection}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),eo(n,e,t,s,o)}let l=eo(n,e,t,s,o,u),f=(h=(m=u.resolve)==null?void 0:m.call(u,l,b=>s(i,"TAG_RESOLVE_FAILED",b),e.options))!=null?h:l,d=J(f)?f:new P(f);return d.range=l.range,d.tag=o,u!=null&&u.format&&(d.format=u.format),d}function to(n,e,t){let r=e.offset,s=of(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?P.BLOCK_FOLDED:P.BLOCK_LITERAL,o=e.source?af(e.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let D=o[g][1];if(D===""||D==="\\r")a=g;else break}if(a===0){let g=s.chomp==="+"&&o.length>0?`\n`.repeat(Math.max(1,o.length-1)):"",D=r+s.length;return e.source&&(D+=e.source.length),{value:g,type:i,comment:s.comment,range:[r,D,D]}}let u=e.indent+s.indent,l=e.offset+s.length,f=0;for(let g=0;gu&&(u=D.length);else{D.length=a;--g)o[g][0].length>u&&(a=g+1);let d="",m="",h=!1;for(let g=0;gu||T[0]===" "?(m===" "?m=`\n`:!h&&m===`\n`&&(m=`\n\n`),d+=m+D.slice(u)+T,m=`\n`,h=!0):T===""?m===`\n`?d+=`\n`:m=`\n`:(d+=m+T,m=" ",h=!1)}switch(s.chomp){case"-":break;case"+":for(let g=a;gt(r+m,h,b);switch(s){case"scalar":a=P.PLAIN,u=uf(i,l);break;case"single-quoted-scalar":a=P.QUOTE_SINGLE,u=lf(i,l);break;case"double-quoted-scalar":a=P.QUOTE_DOUBLE,u=cf(i,l);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[r,r+i.length,r+i.length]}}let f=r+i.length,d=ut(o,f,e,t);return{value:u,type:a,comment:d.comment,range:[r,f,d.offset]}}function uf(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),wu(n)}function lf(n,e){return(n[n.length-1]!=="\'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing \'quote"),wu(n.slice(1,-1)).replace(/\'\'/g,"\'")}function wu(n){var u;let e,t;try{e=new RegExp(`(.*?)(?i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!==\'"\'||n.length===1)&&e(n.length,"MISSING_CHAR",\'Missing closing "quote\'),t}function ff(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===`\n`||r==="\\r")&&!(r==="\\r"&&n[e+2]!==`\n`);)r===`\n`&&(t+=`\n`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var df={0:"\\0",a:"\\x07",b:"\\b",e:"\\x1B",f:"\\f",n:`\n`,r:"\\r",t:" ",v:"\\v",N:"\\x85",_:"\\xA0",L:"\\u2028",P:"\\u2029"," ":" ",\'"\':\'"\',"/":"/","\\\\":"\\\\"," ":" "};function hf(n,e,t,r){let s=n.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=n.substr(e-2,t+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}function ro(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?to(n,e,r):no(e,n.options.strict,r),u=t?n.directives.tagName(t.source,d=>r(t,"TAG_RESOLVE_FAILED",d)):null,l;n.options.stringKeys&&n.atKey?l=n.schema[Ie]:u?l=mf(n.schema,s,u,t,r):e.type==="scalar"?l=pf(n,s,e,r):l=n.schema[Ie];let f;try{let d=l.resolve(s,m=>r(t!=null?t:e,"TAG_RESOLVE_FAILED",m),n.options);f=K(d)?d:new P(d)}catch(d){let m=d instanceof Error?d.message:String(d);r(t!=null?t:e,"TAG_RESOLVE_FAILED",m),f=new P(s)}return f.range=a,f.source=s,i&&(f.type=i),u&&(f.tag=u),l.format&&(f.format=l.format),o&&(f.comment=o),f}function mf(n,e,t,r,s){var a;if(t==="!")return n[Ie];let i=[];for(let u of n.tags)if(!u.collection&&u.tag===t)if(u.default&&u.test)i.push(u);else return u;for(let u of i)if((a=u.test)!=null&&a.test(e))return u;let o=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Ie])}function pf({atKey:n,directives:e,schema:t},r,s,i){var a;let o=t.tags.find(u=>{var l;return(u.default===!0||n&&u.default==="key")&&((l=u.test)==null?void 0:l.test(r))})||t[Ie];if(t.compat){let u=(a=t.compat.find(l=>{var f;return l.default&&((f=l.test)==null?void 0:f.test(r))}))!=null?a:t[Ie];if(o.tag!==u.tag){let l=e.tagString(o.tag),f=e.tagString(u.tag),d=`Value may be parsed as either ${l} or ${f}`;i(s,"TAG_RESOLVE_FAILED",d,!0)}}return o}function Tu(n,e,t){if(e){t===null&&(t=e.length);for(let r=t-1;r>=0;--r){let s=e[r];switch(s.type){case"space":case"comment":case"newline":n-=s.source.length;continue}for(s=e[++r];(s==null?void 0:s.type)==="space";)n+=s.source.length,s=e[++r];break}}return n}var Df={composeNode:so,composeEmptyNode:As};function so(n,e,t,r){let s=n.atKey,{spaceBefore:i,comment:o,anchor:a,tag:u}=t,l,f=!0;switch(e.type){case"alias":l=yf(n,e,r),(a||u)&&r(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=ro(n,e,u,r),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Eu(Df,n,e,t,r),a&&(l.anchor=a.source.substring(1));break;default:{let d=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",d),l=As(n,e.offset,void 0,null,t,r),f=!1}}return a&&l.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&n.options.stringKeys&&(!K(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&r(u!=null?u:e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),n.options.keepSourceTokens&&f&&(l.srcToken=e),l}function As(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:u},l){let f={type:"scalar",offset:Tu(e,t,r),indent:-1,source:""},d=ro(n,f,a,l);return o&&(d.anchor=o.source.substring(1),d.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(d.spaceBefore=!0),i&&(d.comment=i,d.range[2]=u),d}function yf({options:n},{offset:e,source:t,end:r},s){let i=new Et(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=ut(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}function Su(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),u=new Nt(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},f=at(r,{indicator:"doc-start",next:s!=null?s:i==null?void 0:i[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(u.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=s?so(l,s,f,o):As(l,f.end,r,null,f,o);let d=u.contents.range[2],m=ut(i,d,!1,o);return m.comment&&(u.comment=m.comment),u.range=[t,d,m.offset],u}function Or(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function ku(n){var s;let e="",t=!1,r=!1;for(let i=0;i{let o=Or(t);i?this.warnings.push(new vr(o,r,s)):this.errors.push(new Qe(o,r,s))},this.directives=new it({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=ku(this.prelude);if(r){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${r}`:r;else if(s||e.directives.docStart||!i)e.commentBefore=r;else if(Z(i)&&!i.flow&&i.items.length>0){let o=i.items[0];H(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r}\n${a}`:r}else{let o=i.commentBefore;i.commentBefore=o?`${r}\n${o}`:r}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:ku(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let s of e)yield*S(this.next(s));yield*S(this.end(t,r))}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=Or(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Su(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,r=new Qe(Or(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new Qe(Or(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=ut(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Qe(Or(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),s=new Nt(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};var io=Symbol("break visit"),gf=Symbol("skip children"),Cu=Symbol("remove item");function Jt(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),vu(Object.freeze([]),n,e)}Jt.BREAK=io;Jt.SKIP=gf;Jt.REMOVE=Cu;Jt.itemAtPath=(n,e)=>{let t=n;for(let[r,s]of e){let i=t==null?void 0:t[r];if(i&&"items"in i)t=i.items[s];else return}return t};Jt.parentCollection=(n,e)=>{let t=Jt.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],s=t==null?void 0:t[r];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function vu(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o":return"block-scalar-header"}return null}function Xe(n){switch(n){case void 0:case" ":case`\n`:case"\\r":case" ":return!0;default:return!1}}var Ou=new Set("0123456789ABCDEFabcdef"),Ff=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*\'()"),_s=new Set(",[]{}"),Ef=new Set(` ,[]{}\n\\r `),lo=n=>!n||Ef.has(n),Lr=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){var s;if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let r=(s=this.next)!=null?s:"stream";for(;r&&(t||this.hasChars(1));)r=yield*S(this.parseNext(r))}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`\n`?!0:t==="\\r"?this.buffer[e+1]===`\n`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;for(;t===" ";)t=this.buffer[++r+e];if(t==="\\r"){let s=this.buffer[r+e+1];if(s===`\n`||!s&&!this.atEnd)return e+r+1}return t===`\n`||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){let r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&Xe(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&ethis.indentValue&&!Xe(this.charAt(1))&&(this.indentNext=this.indentValue),yield*S(this.parseBlockStart())}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Xe(t)){let r=(yield*S(this.pushCount(1)))+(yield*S(this.pushSpaces(!0)));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*S(this.parseBlockStart())}return"doc"}*parseDocument(){yield*S(this.pushSpaces(!0));let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*S(this.pushIndicators());switch(e[t]){case"#":yield*S(this.pushCount(e.length-t));case void 0:return yield*S(this.pushNewline()),yield*S(this.parseLineStart());case"{":case"[":return yield*S(this.pushCount(1)),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*S(this.pushCount(1)),"doc";case"*":return yield*S(this.pushUntil(lo)),"doc";case\'"\':case"\'":return yield*S(this.parseQuotedScalar());case"|":case">":return t+=yield*S(this.parseBlockScalarHeader()),t+=yield*S(this.pushSpaces(!0)),yield*S(this.pushCount(e.length-t)),yield*S(this.pushNewline()),yield*S(this.parseBlockScalar());default:return yield*S(this.parsePlainScalar())}}*parseFlowCollection(){let e,t,r=-1;do e=yield*S(this.pushNewline()),e>0?(t=yield*S(this.pushSpaces(!1)),this.indentValue=r=t):t=0,t+=yield*S(this.pushSpaces(!0));while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*S(this.pushUntil(t=>Xe(t)||t==="#"))}*parseBlockScalar(){let e=this.pos-1,t=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":t+=1;break;case`\n`:e=i,t=0;break;case"\\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`\n`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`\n`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(r=this.buffer[s];r===" ";)r=this.buffer[++s];if(r===" "){for(;r===" "||r===" "||r==="\\r"||r===`\n`;)r=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`\n`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Ms,yield*S(this.pushToIndex(e+1,!0)),yield*S(this.parseLineStart())}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,s;for(;s=this.buffer[++r];)if(s===":"){let i=this.buffer[r+1];if(Xe(i)||e&&_s.has(i))break;t=r}else if(Xe(s)){let i=this.buffer[r+1];if(s==="\\r"&&(i===`\n`?(r+=1,s=`\n`,i=this.buffer[r+1]):t=r),i==="#"||e&&_s.has(i))break;if(s===`\n`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&_s.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Ms,yield*S(this.pushToIndex(t+1,!0)),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*S(this.pushTag()))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()));case"&":return(yield*S(this.pushUntil(lo)))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()));case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Xe(t)||e&&_s.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*S(this.pushCount(1)))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()))}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Xe(t)&&t!==">";)t=this.buffer[++e];return yield*S(this.pushToIndex(t===">"?e+1:e,!1))}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Ff.has(t))t=this.buffer[++e];else if(t==="%"&&Ou.has(this.buffer[e+1])&&Ou.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*S(this.pushToIndex(e,!1))}}*pushNewline(){let e=this.buffer[this.pos];return e===`\n`?yield*S(this.pushCount(1)):e==="\\r"&&this.charAt(1)===`\n`?yield*S(this.pushCount(2)):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*S(this.pushToIndex(t,!1))}};var Nr=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t>1;this.lineStarts[i]=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((t=n[++e])==null?void 0:t.type)==="space";);return n.splice(e,n.length)}function Lu(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!zt(e.start,"explicit-key-ind")&&!zt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Nu(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var Ar=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Lr,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*S(this.next(r));t||(yield*S(this.end()))}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*S(this.step()),this.offset+=e.length;return}let t=xu(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*S(this.step()),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let r=`Not a YAML token: ${e}`;yield*S(this.pop({type:"error",offset:this.offset,message:r,source:e})),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*S(this.pop())}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){for(;this.stack.length>0;)yield*S(this.pop());this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*S(this.stream());switch(e.type){case"document":return yield*S(this.document(e));case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*S(this.scalar(e));case"block-scalar":return yield*S(this.blockScalar(e));case"block-map":return yield*S(this.blockMap(e));case"block-seq":return yield*S(this.blockSequence(e));case"flow-collection":return yield*S(this.flowCollection(e));case"doc-end":return yield*S(this.documentEnd(e))}yield*S(this.pop())}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e!=null?e:this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Lu(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let s=r.items[r.items.length-1];if(s.value){r.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=r.items[r.items.length-1];s.value?r.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=r.items[r.items.length-1];!s||s.value?r.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*S(this.pop()),yield*S(this.pop(t))}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Iu(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,i=s&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",o=[];if(i&&t.sep&&!t.value){let a=[];for(let u=0;ue.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=t.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":i||t.value?(o.push(this.sourceToken),e.items.push({start:o}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):i||t.value?(o.push(this.sourceToken),e.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zt(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(Nu(t.key)&&!zt(t.sep,"newline")){let a=Nn(t.start),u=t.key,l=t.sep;l.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:u,sep:l}]})}else o.length>0?t.sep=t.sep.concat(o,this.sourceToken):t.sep.push(this.sourceToken);else if(zt(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let a=Nn(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||i?e.items.push({start:o,key:null,sep:[this.sourceToken]}):zt(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let a=this.flowScalar(this.type);i||t.value?(e.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(a):(Object.assign(t,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{let a=this.startBlockValue(e);if(a){s&&a.type!=="block-seq"&&e.items.push({start:o}),this.stack.push(a);return}}}}yield*S(this.pop()),yield*S(this.step())}*blockSequence(e){var r;let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let s="end"in t.value?t.value.end:void 0,i=Array.isArray(s)?s[s.length-1]:void 0;(i==null?void 0:i.type)==="comment"?s==null||s.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2],i=(r=s==null?void 0:s.value)==null?void 0:r.end;if(Array.isArray(i)){Array.prototype.push.apply(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||zt(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*S(this.pop()),yield*S(this.step())}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*S(this.pop()),r=this.peek(1);while(r&&r.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*S(this.pop()),yield*S(this.step()))}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*S(this.pop()),yield*S(this.step());else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let s=Bs(r),i=Nn(s);Lu(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*S(this.lineEnd(e))}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`\n`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`\n`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Bs(e),r=Nn(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Bs(e),r=Nn(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*S(this.pop())))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*S(this.pop()),yield*S(this.step());break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*S(this.pop()))}}};function wf(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Nr||null,prettyErrors:e}}function Au(n,e={}){let{lineCounter:t,prettyErrors:r}=wf(e),s=new Ar(t==null?void 0:t.addNewLine),i=new Ir(e),o=null;for(let a of i.compose(s.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Qe(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Zi(n,t)),o.warnings.forEach(Zi(n,t))),o}function co(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Au(n,t);if(!s)return null;if(s.warnings.forEach(i=>ms(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:r},t))}var js=Vr(Ru());var F=Vr(ns());var et;(N=>{N.DEFAULT_TO_STRING={nullRepresentation:"-",dateFormat:"MMMM dd, yyyy",dateTimeFormat:"h:mm a - MMMM dd, yyyy"};function e(y,w=N.DEFAULT_TO_STRING,v=!1){let x=t(y);if(!x)return w.nullRepresentation;switch(x.type){case"null":return w.nullRepresentation;case"string":return x.value;case"number":case"boolean":return""+x.value;case"link":return x.value.markdown();case"function":return"";case"array":let C="";return v&&(C+="["),C+=x.value.map(V=>e(V,w,!0)).join(", "),v&&(C+="]"),C;case"object":return"{ "+Object.entries(x.value).map(V=>V[0]+": "+e(V[1],w,!0)).join(", ")+" }";case"date":return ja(x.value,w.dateFormat,w.dateTimeFormat);case"duration":return qa(x.value)}}N.toString=e;function t(y){return h(y)?{type:"null",value:y}:f(y)?{type:"number",value:y}:l(y)?{type:"string",value:y}:g(y)?{type:"boolean",value:y}:m(y)?{type:"duration",value:y}:d(y)?{type:"date",value:y}:b(y)?{type:"array",value:y}:D(y)?{type:"link",value:y}:I(y)?{type:"function",value:y}:T(y)?{type:"object",value:y}:void 0}N.wrapValue=t;function r(y,w){if(T(y)){let v={};for(let[x,C]of Object.entries(y))v[x]=r(C,w);return v}else if(b(y)){let v=[];for(let x of y)v.push(r(x,w));return v}else return w(y)}N.mapLeaves=r;function s(y,w){return i(y,w)==0}N.equals=s;function i(y,w,v){var V,j;if(y===w||(y===void 0&&(y=null),w===void 0&&(w=null),y===null&&w===null))return 0;if(y===null)return-1;if(w===null)return 1;let x=t(y),C=t(w);if(x===void 0&&C===void 0)return 0;if(x===void 0)return-1;if(C===void 0)return 1;if(x.type!=C.type)return x.type.localeCompare(C.type);if(x.value===C.value)return 0;switch(x.type){case"string":return x.value.localeCompare(C.value);case"number":return x.valueAe,O=ae(Y.path).localeCompare(ae(ee.path));if(O!=0)return O;let $=Y.type.localeCompare(ee.type);return $!=0?$:Y.subpath&&!ee.subpath?1:!Y.subpath&&ee.subpath?-1:!Y.subpath&&!ee.subpath?0:((V=Y.subpath)!=null?V:"").localeCompare((j=ee.subpath)!=null?j:"");case"date":return x.value0;case"boolean":return w.value;case"link":return!!w.value.path;case"date":return w.value.toMillis()!=0;case"duration":return w.value.as("seconds")!=0;case"object":return Object.keys(w.value).length>0;case"array":return w.value.length>0;case"null":return!1;case"function":return!0}}N.isTruthy=a;function u(y){if(y==null)return y;if(N.isArray(y))return[].concat(y.map(w=>u(w)));if(N.isObject(y)){let w={};for(let[v,x]of Object.entries(y))w[v]=u(x);return w}else return y}N.deepCopy=u;function l(y){return typeof y=="string"}N.isString=l;function f(y){return typeof y=="number"}N.isNumber=f;function d(y){return y instanceof q}N.isDate=d;function m(y){return y instanceof B}N.isDuration=m;function h(y){return y==null}N.isNull=h;function b(y){return Array.isArray(y)}N.isArray=b;function g(y){return typeof y=="boolean"}N.isBoolean=g;function D(y){return y instanceof Oe}N.isLink=D;function T(y){return y!==void 0&&typeof y=="object"&&!b(y)&&!m(y)&&!d(y)&&!D(y)&&!h(y)}N.isObject=T;function I(y){return typeof y=="function"}N.isFunction=I})(et||(et={}));var ju;(i=>{function n(o){return et.isObject(o)&&Object.keys(o).length==2&&"key"in o&&"rows"in o}i.isElementGroup=n;function e(o){for(let a of o)if(!n(a))return!1;return!0}i.isGrouping=e;function t(o){for(let a of o)if(n(a))return!1;return!0}i.isLeaf=t;function r(o){if(n(o))return r(o.rows);if(e(o)){let a=0;for(let u of o)a+=r(u.rows);return a}else return o.length}i.count=r;function s(o,a,u){if(u<=a)return[];if(t(o))return o.slice(a,u);let l=0,f=0;for(;l=o.length)return[];let d=[];for(;l{function n(u){return new ho(u)}a.success=n;function e(u){return new mo(u)}a.failure=e;function t(u,l,f){return u.successful?l.successful?f(u.value,l.value):e(l.error):e(u.error)}a.flatMap2=t;function r(u,l,f){return t(u,l,(d,m)=>n(f(d,m)))}a.map2=r;function s(u,l){let f=[];for(let d of u){let m=l(d);if(!m.successful)return m.cast();f.push(m.value)}return a.success(f)}a.mapAll=s;function i(u){try{return a.success(u())}catch(l){return a.failure(l)}}a.trying=i;async function o(u){try{return a.success(await u)}catch(l){return a.failure(l)}}a.async=o})(Se||(Se={}));var Yt;(N=>{N.EVERYTHING={type:"everything"},N.NOTHING={type:"nothing"},N.EMPTY_SET=new Set;function r(y){return y.size==0?N.NOTHING:{type:"atom",value:y}}N.atom=r;function s(y){return y?N.EVERYTHING:N.NOTHING}N.constant=s;function i(y){return y!==void 0?r(y):N.NOTHING}N.nullableAtom=i;function o(y){return y.size==0?N.EVERYTHING:{type:"negated",value:y}}N.negated=o;function a(y){switch(y.type){case"everything":return N.NOTHING;case"nothing":return N.EVERYTHING;case"atom":return o(y.value);case"negated":return r(y.value)}}N.negate=a;function u(y){switch(y.type){case"everything":return!1;case"negated":return!1;case"atom":return y.value.size==0;case"nothing":return!0}}N.empty=u;function l(y,w){switch(y.type){case"everything":return w;case"nothing":return N.EMPTY_SET;case"atom":return y.value;case"negated":return I(w,y.value)}}N.resolve=l;function f(y){return d(y,w=>w)}N.intersect=f;function d(y,w){return m(y,v=>Se.success(w(v))).orElseThrow()}N.lazyIntersect=d;function m(y,w){let v=[],x=[];for(let C of y){let V=w(C);if(!V.successful)return V.cast();let j=V.value;if(j!==void 0){if(u(j))return Se.success(N.NOTHING);j.type!=="everything"&&(j.type=="atom"?v.push(j.value):j.type=="negated"&&x.push(j.value))}}return v.length==0&&x.length==0?Se.success(N.EVERYTHING):v.length>0&&x.length==0?Se.success(r(D(v))):v.length==0&&x.length>0?Se.success(o(T(x))):Se.success(N.atom(I(D(v),T(x))))}N.lazyFailableIntersection=m;function h(y){return b(y,w=>w)}N.union=h;function b(y,w){return g(y,v=>Se.success(w(v))).orElseThrow()}N.lazyUnion=b;function g(y,w){let v=[],x=[];for(let C of y){let V=w(C);if(!V.successful)return V.cast();let j=V.value;if(j!==void 0){if(j.type==="everything")return Se.success(N.EVERYTHING);u(j)||(j.type=="atom"?v.push(j.value):j.type=="negated"&&x.push(j.value))}}return v.length==0&&x.length==0?Se.success(N.NOTHING):v.length>0&&x.length==0?Se.success(N.atom(T(v))):v.length==0&&x.length>0?Se.success(N.negated(D(x))):Se.success(o(I(D(x),T(v))))}N.lazyFailableUnion=g;function D(y){if(y.length==0)return new Set;if(y.length==1)return y[0];let w=[].concat(y).sort((v,x)=>v.size-x.size);for(;w.length>1;){let v=new Set,x=w.pop();for(let C of w[0])x.has(C)&&v.add(C);w[0]=v}return w[0]}N.setIntersect=D;function T(y){if(y.length==0)return new Set;if(y.length==1)return y[0];let w=new Set;for(let v of y)for(let x of v)w.add(x);return w}N.setUnion=T;function I(y,w){if(y.size>w.size){let v=new Set(y);for(let x of w)v.delete(x);return v}else{let v=new Set;for(let x of y)w.has(x)||v.add(x);return v}}N.setIntersectNegation=I})(Yt||(Yt={}));var se;(g=>{g.ROW="$row";function e(D){return{type:"variable",name:D}}g.variable=e;function t(D){return{type:"literal",value:D}}g.literal=t;function r(D,T,I){return{type:"binaryop",left:D,op:T,right:I}}g.binaryOp=r;function s(D,T){return{type:"binaryop",left:D,right:T,op:"index"}}g.index=s;function i(D){let T=D.split("."),I=g.variable(T[0]);for(let N=1;N"||D==">="||D=="!="||D=="="}g.isCompareOp=d;function m(D,T=new Set([g.ROW])){switch(D.type){case"binaryop":return D.op==="index"&&D.left.type=="variable"&&D.left.name==g.ROW&&D.right.type=="literal"&&et.isString(D.right.value)?T.has(D.right.value)?new Set:new Set([D.right.value]):Yt.setUnion([m(D.left,T),m(D.right,T)]);case"function":return Yt.setUnion(D.arguments.map(N=>m(N,T)));case"lambda":let I=T!=null?T:new Set;for(let N of D.arguments)I.add(N);return m(D.value,I);case"list":return Yt.setUnion(D.values.map(N=>m(N,T)));case"negated":return m(D.child,T);case"object":return Yt.setUnion(Object.values(D.values).map(N=>m(N,T)));case"variable":return T&&T.has(D.name)?new Set:new Set([D.name]);case"literal":return new Set}}g.unboundVariables=m;function h(D){switch(D.type){case"binaryop":return D.op==="index"?`${h(D.left)}[${h(D.right)}]`:`${h(D.left)} ${D.op} ${h(D.right)}`;case"function":return`${h(D.func)}(${D.arguments.map(h).join(", ")})`;case"lambda":return`(${D.arguments.join(", ")}) => ${h(D.value)}`;case"list":return`[${D.values.map(h).join(", ")}]`;case"negated":return`!${h(D.child)}`;case"object":return`{${Object.entries(D.values).map(([I,N])=>`${I}: ${h(N)}`).join(", ")}}`;case"variable":return D.name;case"literal":let T=et.wrapValue(D.value);if(!T)return"null";switch(T.type){case"string":return`"${T.value}"`;default:return et.toString(T.value)}}}g.toString=h,g.NULL=g.literal(null)})(se||(se={}));var z=F.createLanguage({number:n=>F.regexp(/-?[0-9]+(\\.[0-9]+)?/).map(e=>Number.parseFloat(e)).desc("number"),string:n=>F.string(\'"\').then(F.alt(n.escapeCharacter,F.noneOf(\'"\\\\\')).atLeast(0).map(e=>e.join(""))).skip(F.string(\'"\')).desc("string"),escapeCharacter:n=>F.string("\\\\").then(F.any).map(e=>e===\'"\'?\'"\':e==="\\\\"?"\\\\":"\\\\"+e),bool:n=>F.regexp(/true|false|True|False/).map(e=>e.toLowerCase()=="true").desc("boolean"),tag:n=>F.seqMap(F.string("#"),F.alt(F.regexp(/[^\\u2000-\\u206F\\u2E00-\\u2E7F\'!"#$%&()*+,.:;<=>?@^`{|}~\\[\\]\\\\\\s]/).desc("text")).many(),(e,t)=>e+t.join("")).desc("tag"),identifier:n=>F.seqMap(F.alt(F.regexp(/[\\p{Letter}$]/u),F.regexp(qu).desc("text")),F.alt(F.regexp(/[0-9\\p{Letter}$_-]/u),F.regexp(qu).desc("text")).many(),(e,t)=>e+t.join("")).desc("variable"),link:n=>F.regexp(/\\[\\[([^\\[\\]]*?)\\]\\]/u,1).map(e=>Oe.parseInner(e)).desc("file link"),embedLink:n=>F.seqMap(F.string("!").atMost(1),n.link,(e,t)=>(e.length>0&&(t.embed=!0),t)).desc("file link"),binaryPlusMinus:n=>F.regexp(/\\+|-/).map(e=>e).desc("\'+\' or \'-\'"),binaryMulDiv:n=>F.regexp(/\\*|\\/|%/).map(e=>e).desc("\'*\' or \'/\' or \'%\'"),binaryCompareOp:n=>F.regexp(/>=|<=|!=|>|<|=/).map(e=>e).desc("\'>=\' or \'<=\' or \'!=\' or \'=\' or \'>\' or \'<\'"),binaryAndOp:n=>F.regexp(/and|&/i).map(e=>"&").desc("\'and\'"),binaryOrOp:n=>F.regexp(/or|\\|/i).map(e=>"|").desc("\'or\'"),rootDate:n=>F.seqMap(F.regexp(/\\d{4}/),F.string("-"),F.regexp(/\\d{2}/),(e,t,r)=>q.fromObject({year:Number.parseInt(e),month:Number.parseInt(r)})).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),dateShorthand:n=>F.alt(...Object.keys(Uu).sort((e,t)=>t.length-e.length).map(F.string)),date:n=>Of(n.rootDate,e=>F.seqMap(F.string("-"),F.regexp(/\\d{2}/),(t,r)=>e.set({day:Number.parseInt(r)})),e=>F.seqMap(F.string("T"),F.regexp(/\\d{2}/),(t,r)=>e.set({hour:Number.parseInt(r)})),e=>F.seqMap(F.string(":"),F.regexp(/\\d{2}/),(t,r)=>e.set({minute:Number.parseInt(r)})),e=>F.seqMap(F.string(":"),F.regexp(/\\d{2}/),(t,r)=>e.set({second:Number.parseInt(r)})),e=>F.alt(F.seqMap(F.string("."),F.regexp(/\\d{3}/),(t,r)=>e.set({millisecond:Number.parseInt(r)})),F.succeed(e)),e=>F.alt(F.seqMap(F.string("+").or(F.string("-")),F.regexp(/\\d{1,2}(:\\d{2})?/),(t,r)=>e.setZone("UTC"+t+r,{keepLocalTime:!0})),F.seqMap(F.string("Z"),()=>e.setZone("utc",{keepLocalTime:!0})),F.seqMap(F.string("["),F.regexp(/[0-9A-Za-z+-\\/]+/u),F.string("]"),(t,r,s)=>e.setZone(r,{keepLocalTime:!0})))).assert(e=>e.isValid,"valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),datePlus:n=>F.alt(n.dateShorthand.map(e=>Uu[e]()),n.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"),durationType:n=>F.alt(...Object.keys(Vu).sort((e,t)=>t.length-e.length).map(F.string)),duration:n=>F.seqMap(n.number,F.optWhitespace,n.durationType,(e,t,r)=>Vu[r].mapUnits(s=>s*e)).sepBy1(F.string(",").trim(F.optWhitespace).or(F.optWhitespace)).map(e=>e.reduce((t,r)=>t.plus(r))).desc("duration like 4hr2min"),rawNull:n=>F.string("null"),atomInlineField:n=>F.alt(n.date,n.duration.map(e=>Mi(e)),n.string,n.tag,n.embedLink,n.bool,n.number,n.rawNull),inlineFieldList:n=>n.atomInlineField.sepBy(F.string(",").trim(F.optWhitespace).lookahead(n.atomInlineField)),inlineField:n=>F.alt(F.seqMap(n.atomInlineField,F.string(",").trim(F.optWhitespace),n.inlineFieldList,(e,t,r)=>[e].concat(r)),n.atomInlineField)}),qu=new RegExp(Fn(),""),Vu={year:B.fromObject({years:1}),years:B.fromObject({years:1}),yr:B.fromObject({years:1}),yrs:B.fromObject({years:1}),month:B.fromObject({months:1}),months:B.fromObject({months:1}),mo:B.fromObject({months:1}),mos:B.fromObject({months:1}),week:B.fromObject({weeks:1}),weeks:B.fromObject({weeks:1}),wk:B.fromObject({weeks:1}),wks:B.fromObject({weeks:1}),w:B.fromObject({weeks:1}),day:B.fromObject({days:1}),days:B.fromObject({days:1}),d:B.fromObject({days:1}),hour:B.fromObject({hours:1}),hours:B.fromObject({hours:1}),hr:B.fromObject({hours:1}),hrs:B.fromObject({hours:1}),h:B.fromObject({hours:1}),minute:B.fromObject({minutes:1}),minutes:B.fromObject({minutes:1}),min:B.fromObject({minutes:1}),mins:B.fromObject({minutes:1}),m:B.fromObject({minutes:1}),second:B.fromObject({seconds:1}),seconds:B.fromObject({seconds:1}),sec:B.fromObject({seconds:1}),secs:B.fromObject({seconds:1}),s:B.fromObject({seconds:1})},Uu={now:()=>q.local(),today:()=>q.local().startOf("day"),yesterday:()=>q.local().startOf("day").minus(B.fromObject({days:1})),tomorrow:()=>q.local().startOf("day").plus(B.fromObject({days:1})),sow:()=>q.local().startOf("week"),"start-of-week":()=>q.local().startOf("week"),eow:()=>q.local().endOf("week"),"end-of-week":()=>q.local().endOf("week"),soy:()=>q.local().startOf("year"),"start-of-year":()=>q.local().startOf("year"),eoy:()=>q.local().endOf("year"),"end-of-year":()=>q.local().endOf("year"),som:()=>q.local().startOf("month"),"start-of-month":()=>q.local().startOf("month"),eom:()=>q.local().endOf("month"),"end-of-month":()=>q.local().endOf("month")},Ku=F.createLanguage({variable:n=>z.identifier.map(se.variable).desc("variable"),number:n=>z.number.map(se.literal).desc("number"),string:n=>z.string.map(se.literal).desc("string"),bool:n=>z.bool.map(se.literal).desc("boolean"),date:n=>St("date",z.datePlus).map(([e,t])=>se.literal(t)).desc("date"),duration:n=>St("dur",z.duration).map(([e,t])=>se.literal(t)).desc("duration"),null:n=>z.rawNull.map(e=>se.NULL),link:n=>z.link.map(se.literal),list:n=>n.expression.sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("[").skip(F.optWhitespace),F.optWhitespace.then(F.string("]"))).map(e=>se.list(e)).desc("list"),object:n=>F.seqMap(z.identifier.or(z.string),F.string(":").trim(F.optWhitespace),n.expression,(e,t,r)=>({name:e,value:r})).sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("{").skip(F.optWhitespace),F.optWhitespace.then(F.string("}"))).map(e=>{let t={};for(let r of e)t[r.name]=r.value;return se.object(t)}).desc("object (\'{ a: 1, b: 2 }\')"),atom:n=>F.alt(z.embedLink.map(e=>se.literal(e)),n.negated,n.link,n.list,n.object,n.lambda,n.parens,n.bool,n.number,n.string,n.date,n.duration,n.null,n.variable),index:n=>F.seqMap(n.atom,F.alt(n.dotPostfix,n.indexPostfix,n.functionPostfix).many(),(e,t)=>{let r=e;for(let s of t)switch(s.type){case"dot":r=se.index(r,se.literal(s.expr));break;case"index":r=se.index(r,s.expr);break;case"function":r=se.func(r,s.exprs);break}return r}),negated:n=>F.seqMap(F.string("!"),n.index,(e,t)=>se.negate(t)).desc("negated field"),parens:n=>n.expression.trim(F.optWhitespace).wrap(F.string("("),F.string(")")),lambda:n=>F.seqMap(z.identifier.sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("(").trim(F.optWhitespace),F.string(")").trim(F.optWhitespace)),F.string("=>").trim(F.optWhitespace),n.expression,(e,t,r)=>({type:"lambda",arguments:e,value:r})),dotPostfix:n=>F.seqMap(F.string("."),z.identifier,(e,t)=>({type:"dot",expr:t})),indexPostfix:n=>F.seqMap(F.string("["),F.optWhitespace,n.expression,F.optWhitespace,F.string("]"),(e,t,r,s,i)=>({type:"index",expr:r})),functionPostfix:n=>F.seqMap(F.string("("),F.optWhitespace,n.expression.sepBy(F.string(",").trim(F.optWhitespace)),F.optWhitespace,F.string(")"),(e,t,r,s,i)=>({type:"function",exprs:r})),binaryMulDiv:n=>Mn(n.index,z.binaryMulDiv,se.binaryOp),binaryPlusMinus:n=>Mn(n.binaryMulDiv,z.binaryPlusMinus,se.binaryOp),binaryCompare:n=>Mn(n.binaryPlusMinus,z.binaryCompareOp,se.binaryOp),binaryBoolean:n=>Mn(n.binaryCompare,z.binaryAndOp.or(z.binaryOrOp),se.binaryOp),binaryOp:n=>n.binaryBoolean,expression:n=>n.binaryOp}),lb=F.createLanguage({queryTag:n=>z.tag.map(e=>({type:"tagged",value:e})),queryId:n=>St("id",z.string).map(([e,t])=>({type:"id",value:t})),queryType:n=>F.string("@").then(z.identifier).map(e=>({type:"typed",value:e})),queryPath:n=>St(F.regexp(/e?path/i).desc("[e]path"),z.string).map(([e,t])=>({type:"path",value:t,exact:e.toLowerCase()==="epath"})),queryParentOf:n=>St(F.regexp(/parentof|supertree/i).desc("parentof"),n.query).map(([e,t])=>({type:"parent-of",children:t,inclusive:e.toLowerCase()==="supertree"})),queryChildOf:n=>St(F.regexp(/childof|subtree/i).desc("childof"),n.query).map(([e,t])=>({type:"child-of",parents:t,inclusive:e.toLowerCase()==="subtree"})),querySimpleLinked:n=>z.link.map(e=>({type:"linked",source:{type:"link",value:e},direction:"incoming"})),queryLinked:n=>St(F.regexp(/linksto|linkedfrom|connected/i).desc("connected"),n.query).map(([e,t])=>({type:"linked",source:t,direction:e.toLowerCase()=="linksto"?"incoming":e.toLowerCase()=="linkedfrom"?"outgoing":"both"})),queryExists:n=>St(F.regexp(/exists/i).desc("exists"),z.identifier.or(z.string)).map(([e,t])=>({type:"field",value:t})),queryQuotedExpression:n=>St(F.regexp(/expr/i).desc("expr"),Ku.expression).map(([e,t])=>({type:"expression",expression:t})),queryRawExpression:n=>Ku.binaryCompare.map(e=>({type:"expression",expression:e})),queryParens:n=>n.query.trim(F.optWhitespace).wrap(F.string("("),F.string(")")),queryNegate:n=>F.string("!").skip(F.optWhitespace).then(n.queryAtom).map(e=>({type:"not",element:e})),queryAtom:n=>F.alt(n.queryParens,n.queryNegate,n.querySimpleLinked,n.queryTag,n.queryType,n.queryId,n.queryExists,n.queryChildOf,n.queryParentOf,n.queryLinked,n.queryPath,n.queryQuotedExpression,n.queryRawExpression),queryAnds:n=>Mn(n.queryAtom,z.binaryAndOp,(e,t,r)=>({type:"and",elements:[e,r]})),queryOrs:n=>Mn(n.queryAnds,z.binaryOrOp,(e,t,r)=>({type:"or",elements:[e,r]})),query:n=>n.queryOrs.trim(F.optWhitespace)});function Mn(n,e,t){return F.seqMap(n,F.seq(F.optWhitespace,e,F.optWhitespace,n).many(),(r,s)=>{if(s.length==0)return r;let i=t(r,s[0][1],s[0][3]);for(let o=1;o[r,s])}function Of(n,...e){return F.custom((t,r)=>(s,i)=>{let o=n._(s,i);if(!o.status)return o;for(let a of e){let u=a(o.value)._(s,o.index);if(!u.status)return o;o=u}return o})}var Zt=Vr(ns());function Gt(n,e){let t={};for(let[r,s]of Object.entries(n))t[r]=e(s);return t}var _n;(r=>{r.NOOP_NORMALIZER=s=>s;function e(s){let i=et.wrapValue(s);if(!i)return null;switch(i==null?void 0:i.type){case"array":return i.value.map(r.json);case"object":return Gt(i.value,r.json);case"date":return{$_type:"date",value:i.value.toISO({includeOffset:!0})};case"link":return{$_type:"link",value:i.value.toObject()};case"duration":return{$_type:"duration",value:i.value.toISO()};case"boolean":case"number":case"string":return i.value;case"function":case"null":return null}}r.json=e;function t(s,i=r.NOOP_NORMALIZER){if(s==null)return null;if(Array.isArray(s))return i(s.map(o=>r.value(o,i)));if(typeof s=="object"){if(!("$_type"in s))return Gt(s,a=>r.value(a,i));let o=s.$_type;switch(o){case"date":return i(q.fromISO(s.value,{setZone:!0}));case"duration":return i(B.fromISO(s.value));case"link":return i(Oe.fromObject(s.value));default:throw new Error(`Unrecognized serialized type \'${o}\'!`)}}return i(s)}r.value=t})(_n||(_n={}));function Wu(n){return Object.assign({},n,{value:_n.json(n.value)})}function $s(n,e){return Array.isArray(n)?n.map(t=>$s(t,e)):{key:n.key,raw:n.value,value:Nf(n.value),position:{line:e,start:n.start,startValue:n.startValue,end:n.end},wrapping:n.wrapping}}var Ps=Object.freeze({"[":"]","(":")"});function If(n,e,t,r){let s=0,i=!1;for(let o=e;o=0;){let o=Lf(n,i);if(!o){i=n.indexOf(s,i+1);continue}t.push(o),i=n.indexOf(s,o.end)}}e&&(t=t.concat(qf(n))),t.sort((s,i)=>s.start-i.start);let r=[];for(let s=0;sn.join("")),Mf=Zt.regexp(/[^0-9\\w\\p{Letter}]*/u).then(Af).skip(Zt.regexp(/[_\\*~`]*/u));function zu(n){let e=Hu(n,0);if(!e)return;let t=Mf.parse(e.key);if(t.status)return{key:t.value,value:n.substring(e.valueIndex).trim(),start:0,startValue:e.valueIndex,end:n.length}}var _f=/\\u{2795}\\s*(\\d{4}-\\d{2}-\\d{2})/u,Bf=/(?:\\u{1F4C5}|\\u{1F4C6}|\\u{1F5D3}\\u{FE0F}?)\\s*(\\d{4}-\\d{2}-\\d{2})/u,Pf=/\\u{2705}\\s*(\\d{4}-\\d{2}-\\d{2})/u,$f=/[\\u{23F3}\\u{231B}]\\s*(\\d{4}-\\d{2}-\\d{2})/u,Rf=/\\u{1F6EB}\\s*(\\d{4}-\\d{2}-\\d{2})/u,jf=[{regex:_f,key:"created"},{regex:Rf,key:"start"},{regex:$f,key:"scheduled"},{regex:Bf,key:"due"},{regex:Pf,key:"completion"}];function qf(n){let e=[];for(let{regex:t,key:r}of jf){let s=t.exec(n);s&&e.push({key:r,value:s[1],start:s.index,startValue:s.index+1,end:s.index+s[0].length,wrapping:"emoji-shorthand"})}return e}var Rs;(t=>{function n(r){let s=et.wrapValue(e);if(!s)return null;switch(s.type){case"string":case"boolean":case"null":case"number":return s.value;case"array":return s.value.map(n);case"date":return s.value.toISO();case"duration":return s.value.toHuman();case"function":return null;case"link":return s.value.markdown();case"object":return Gt(s.value,n)}}t.yaml=n;function e(r){if(r==null)return null;if(typeof r=="object")if(Array.isArray(r)){let s=[];for(let i of r)s.push(e(i));return s}else{if(r instanceof Date)return q.fromJSDate(r);{let s=r,i={};for(let o in s)i[o]=e(s[o]);return i}}else{if(typeof r=="number")return r;if(typeof r=="boolean")return r;if(typeof r=="string"){let s=z.date.parse(r);if(s.status)return s.value;let i=z.duration.parse(r);if(i.status)return i.value;let o=z.link.parse(r);return o.status?o.value:r}}return null}t.literal=e})(Rs||(Rs={}));var Vf=/```yaml:data/i,Uf=/^(?:```|~~~)(.*)$/im,Kf=/^[\\s>]*(\\d+\\.|\\d+\\)|\\*|-|\\+)\\s*(\\[.{0,1}\\])?\\s*(.*)$/mu;function Zu(n,e,t,r){let{lines:s,metadata:i,frontmatter:o,sections:a}=Fo(n,e,t);return new po(n,r,s.length,i,a,o).build()}function Fo(n,e,t){var b,g,D,T,I,N,y,w,v,x,C,V,j,Y,ee,ae;let r=t.frontmatter?Gu(t.frontmatter):void 0,s=e.split(/\\r\\n|\\r|\\n/),i=new $e,o=[],a=(b=t.headings)!=null?b:[];a.sort((O,$)=>O.position.start.line-$.position.start.line);let u=new js.default(void 0,(O,$)=>O-$);for(let O=0;O0&&!Yu(s,0,O.start)){let $=new _r(0,O.start,En(n),1,0);u.set(0,$)}}let l=new js.default(void 0,(O,$)=>O-$),f=1;for(let O of t.sections||[]){if(O.type==="heading")continue;let $=O.position.start.line,Q=O.position.end.line+1,ue=s[$];if(O.type==="list")l.set($,new Do($,Q,f++,O.id));else if(O.type=="code"&&Vf.test(ue)){let De=s.slice($+1,Q-1).join(`\n`).replace(/\\t/gm," "),Re=Gu(co(De));l.set($,new yo($,Q,f++,Re,O.id))}else if(O.type==="code"){let De=ue.match(Uf);if(!De)l.set($,new qs($,Q,f++,[],"indent",$,Q,O.id));else{let Re=De.length>1&&De[1]?De[1].split(","):[];l.set($,new qs($,Q,f++,Re,"fenced",$+1,Q-1,O.id))}}else l.set($,new go($,Q,f++,O.type,O.id))}for(let O of l.values())(D=ct(O.start,u))==null||D.block(O);let d=/^[\\t\\f\\v ]*[\\-+\\*]\\s(\\[.\\]\\s)?/,m=/^(>?\\s?)*(\\t|\\s)*/g,h=new js.default(void 0,(O,$)=>O-$);for(let O of t.listItems||[]){let Q=s[O.position.start.line].match(Kf),ue,De;Q&&(ue=Q[1],De=Q[3]);let Re=new bo(O.position.start.line,O.position.end.line+1,O.parent,ue,O.id,O.task,De);h.set(Re.start,Re)}for(let O of h.values())if(O.parentLine<0){let $=l.get(-O.parentLine);if(!$||$.type!=="list")continue;$.items.push(O)}else(T=h.get(O.parentLine))==null||T.elements.push(O);for(let O of(I=t.tags)!=null?I:[]){let $=O.tag.startsWith("#")?O.tag:"#"+O.tag,Q=O.position.start.line;i.tag($),(N=ct(Q,u))==null||N.metadata.tag($),(y=ct(Q,l))==null||y.metadata.tag($),(w=ct(Q,h))==null||w.metadata.tag($)}if(t.frontmatter)for(let O of Wf(t.frontmatter)){let $=O.startsWith("#")?O:"#"+O;i.tag($)}for(let O of(v=t.links)!=null?v:[]){let $=Oe.infer(O.link),Q=O.position.start.line;i.link($),(x=ct(Q,u))==null||x.metadata.link($),(C=ct(Q,l))==null||C.metadata.link($),(V=ct(Q,h))==null||V.metadata.link($)}for(let O of(j=t.frontmatterLinks)!=null?j:[])i.link(Oe.infer(O.link,!1,O.displayText));for(let O of Eo(s)){let $=O.position.line;i.inlineField(O),(Y=ct($,u))==null||Y.metadata.inlineField(O),(ee=ct($,l))==null||ee.metadata.inlineField(O),(ae=ct($,h))==null||ae.metadata.inlineField(O)}return o.push(...u.values()),{lines:s,frontmatter:r,metadata:i,sections:o}}function Yu(n,e,t){for(let r=e;r32768||!t.includes("::"))continue;let r=Ju(t);if(r.length>0)for(let s of r)yield $s(s,e);else{let s=zu(t);s&&(yield $s(s,e))}}}function Gu(n){let e={};for(let t of Object.keys(n)){let r=n[t];e[t.toLowerCase()]={key:t,value:_n.json(Rs.literal(r)),raw:r}}return e}function ct(n,e){var r;let t=(r=e.getPairOrNextLower(n))==null?void 0:r[1];if(t&&t.end>=n)return t}function Wf(n){return Object.keys(n).filter(t=>t.toLowerCase()=="tags"||t.toLowerCase()=="tag").map(t=>Qu(n[t],/[,\\s]+/)).reduce((t,r)=>t.concat(r),[]).map(t=>t.startsWith("#")?t:"#"+t)}function Qu(n,e){return n==null||n==null?[]:Array.isArray(n)?n.filter(t=>!!t).map(t=>Qu(t,e)).reduce((t,r)=>t.concat(r),[]):(""+n).split(e).filter(t=>!!t).map(t=>t.trim()).filter(t=>t.length>0)}var $e=class{constructor(){this.tags=new Set;this.links=[];this.inlineFields={}}tag(e){this.tags.add(e)}link(e){this.links.find(t=>t.equals(e))||this.links.push(e)}inlineField(e){let t=e.key.toLowerCase();Object.keys(this.inlineFields).some(r=>r.toLowerCase()==t)||(this.inlineFields[t]=e)}finishTags(){return Array.from(this.tags)}finishLinks(){return this.links.map(e=>e.toObject())}finishInlineFields(){return Gt(this.inlineFields,Wu)}},po=class{constructor(e,t,r,s,i,o){this.path=e;this.stats=t;this.length=r;this.metadata=s;this.sections=i;this.frontmatter=o}build(){return{$path:this.path,$ctime:this.stats.ctime,$mtime:this.stats.mtime,$size:this.stats.size,$extension:Va(this.path),$position:{start:0,end:this.length},$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$infields:this.metadata.finishInlineFields(),$sections:this.sections.map(e=>e.build()),$frontmatter:this.frontmatter}}},_r=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.title=r;this.level=s;this.ordinal=i;this.blocks=[];this.metadata=new $e}block(e){this.blocks.push(e)}build(){return{$title:this.title,$ordinal:this.ordinal,$level:this.level,$tags:this.metadata.finishTags(),$infields:this.metadata.finishInlineFields(),$links:this.metadata.finishLinks(),$position:{start:this.start,end:this.end},$blocks:this.blocks.map(e=>e.build())}}},Do=class{constructor(e,t,r,s){this.start=e;this.end=t;this.ordinal=r;this.blockId=s;this.type="list";this.metadata=new $e;this.items=[]}build(){return{$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$type:"list",$blockId:this.blockId,$elements:this.items.map(e=>e.build())}}},qs=class{constructor(e,t,r,s,i,o,a,u){this.start=e;this.end=t;this.ordinal=r;this.languages=s;this.style=i;this.contentStart=o;this.contentEnd=a;this.blockId=u;this.type="codeblock";this.metadata=new $e}build(){return{$type:"codeblock",$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId,$languages:this.languages,$style:this.style,$contentPosition:{start:this.contentStart,end:this.contentEnd}}}},yo=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.ordinal=r;this.data=s;this.blockId=i;this.type="datablock";this.metadata=new $e}build(){return{$type:"datablock",$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId,$data:this.data}}},go=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.ordinal=r;this.type=s;this.blockId=i;this.metadata=new $e}build(){return{$type:this.type,$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId}}},bo=class{constructor(e,t,r,s,i,o,a){this.start=e;this.end=t;this.parentLine=r;this.symbol=s;this.blockId=i;this.status=o;this.text=a;this.metadata=new $e;this.elements=[]}build(){return{$parentLine:this.parentLine,$position:{start:this.start,end:this.end},$blockId:this.blockId,$elements:this.elements.map(e=>e.build()),$type:this.status?"task":"list",$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$status:this.status,$symbol:this.symbol,$text:this.text}}};function Xu(n,e,t,r){var o;let s=new To(n,r),i=JSON.parse(e);for(let a of i.nodes)if(a.type!="group")if(a.type=="text"){let{frontmatter:u,metadata:l,lines:f,sections:d}=Fo(n,a.text,t.caches[a.id]),m=new Vs(n,a.id,a,u);d.forEach(h=>m.section(h)),s.card(m);for(let h in l.tags)s.metadata.tag(h);for(let h of(o=l.links)!=null?o:[])s.metadata.link(h);for(let h of Eo(f))s.metadata.inlineField(h)}else{let u=new Vs(n,a.id,a);s.card(u)}return s.build()}var wo=class{constructor(e,t,r){this.path=e;this.id=t;this.nodeJson=r;this.metadata=new $e}build(){return{$file:this.path,$id:this.id,$position:{x:this.nodeJson.x,y:this.nodeJson.y},$dimensions:{width:this.nodeJson.width,height:this.nodeJson.height},$color:this.nodeJson.color,$link:Oe.file(this.path).withBlock(this.id).toObject()}}},Vs=class extends wo{constructor(t,r,s,i){super(t,r,s);this.path=t;this.id=r;this.nodeJson=s;this.frontmatter=i;this.sections=[]}section(t){return this.sections.push(t),t}build(){switch(this.nodeJson.type){case"text":return ye(R({},super.build()),{$infields:this.metadata.finishInlineFields(),$frontmatter:this.frontmatter,$sections:this.sections.map(t=>t.build()),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$type:"text-card",$color:this.nodeJson.color});case"file":return ye(R({},super.build()),{$linkedFile:this.nodeJson.file});case"link":return ye(R({},super.build()),{$url:this.nodeJson.url})}}},To=class{constructor(e,t){this.path=e;this.stats=t;this.cards=[];this.metadata=new $e}card(e){return this.cards.push(e),e}build(){return{$cards:this.cards.map(e=>e.build()),$ctime:this.stats.ctime,$mtime:this.stats.mtime,$infields:this.metadata.finishInlineFields(),$links:this.metadata.finishLinks(),$tags:this.metadata.finishTags(),$path:this.path,$size:this.stats.size}}};onmessage=async n=>{try{let e=n.data;if(e.type==="markdown"){let t=Zu(e.path,e.contents,e.metadata,e.stat);postMessage({type:"markdown",result:t})}else if(e.type==="canvas"){let t=Xu(e.path,e.contents,e.index,e.stat);postMessage({type:"canvas",result:t})}else postMessage({$error:"Unsupported import method."})}catch(e){console.error(`Datacore Indexer failed to index ${n.data.path}: ${e}`),postMessage({$error:e.message})}};\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vcGFyc2ltbW9uL2J1aWxkL3BhcnNpbW1vbi51bWQubWluLmpzIiwgIi4uLy4uL3NvcnRlZC1idHJlZS9iK3RyZWUuanMiLCAiLi4vLi4vbHV4b24vc3JjL2Vycm9ycy5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9mb3JtYXRzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL3V0aWwuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvZW5nbGlzaC5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9mb3JtYXR0ZXIuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvaW52YWxpZC5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvc3lzdGVtWm9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvSUFOQVpvbmUuanMiLCAiLi4vLi4vbHV4b24vc3JjL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvaW52YWxpZFpvbmUuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvem9uZVV0aWwuanMiLCAiLi4vLi4vbHV4b24vc3JjL3NldHRpbmdzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2xvY2FsZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9yZWdleFBhcnNlci5qcyIsICIuLi8uLi9sdXhvbi9zcmMvZHVyYXRpb24uanMiLCAiLi4vLi4vbHV4b24vc3JjL2ludGVydmFsLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbmZvLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2RpZmYuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvZGlnaXRzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL3Rva2VuUGFyc2VyLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2NvbnZlcnNpb25zLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9kYXRldGltZS5qcyIsICIuLi8uLi8uLi9zcmMvdXRpbHMvbm9ybWFsaXplcnMudHMiLCAiLi4vLi4vZW1vamktcmVnZXgvaW5kZXgubWpzIiwgIi4uLy4uLy4uL3NyYy9leHByZXNzaW9uL2xpbmsudHMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvaWRlbnRpdHkuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvdmlzaXQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2RpcmVjdGl2ZXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2FuY2hvcnMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2FwcGx5UmV2aXZlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9ub2Rlcy90b0pTLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL05vZGUuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvQWxpYXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvU2NhbGFyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2RvYy9jcmVhdGVOb2RlLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL0NvbGxlY3Rpb24uanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeUNvbW1lbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L2ZvbGRGbG93TGluZXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeVN0cmluZy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zdHJpbmdpZnkvc3RyaW5naWZ5LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3N0cmluZ2lmeS9zdHJpbmdpZnlQYWlyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2xvZy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvbWVyZ2UuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvYWRkUGFpclRvSlNNYXAuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvUGFpci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zdHJpbmdpZnkvc3RyaW5naWZ5Q29sbGVjdGlvbi5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9ub2Rlcy9ZQU1MTWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9jb21tb24vbWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL1lBTUxTZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9zZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9zdHJpbmcuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9udWxsLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9jb3JlL2Jvb2wuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeU51bWJlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvY29yZS9mbG9hdC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvY29yZS9pbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvcmUvc2NoZW1hLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9qc29uL3NjaGVtYS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvYmluYXJ5LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS95YW1sLTEuMS9wYWlycy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvb21hcC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvYm9vbC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvZmxvYXQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL3lhbWwtMS4xL2ludC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvc2V0LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS95YW1sLTEuMS90aW1lc3RhbXAuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL3lhbWwtMS4xL3NjaGVtYS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvdGFncy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvU2NoZW1hLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3N0cmluZ2lmeS9zdHJpbmdpZnlEb2N1bWVudC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9kb2MvRG9jdW1lbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZXJyb3JzLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1wcm9wcy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3V0aWwtY29udGFpbnMtbmV3bGluZS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3V0aWwtZmxvdy1pbmRlbnQtY2hlY2suanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS91dGlsLW1hcC1pbmNsdWRlcy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3Jlc29sdmUtYmxvY2stbWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1ibG9jay1zZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS9yZXNvbHZlLWVuZC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3Jlc29sdmUtZmxvdy1jb2xsZWN0aW9uLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZS1jb2xsZWN0aW9uLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1ibG9jay1zY2FsYXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS9yZXNvbHZlLWZsb3ctc2NhbGFyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZS1zY2FsYXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS91dGlsLWVtcHR5LXNjYWxhci1wb3NpdGlvbi5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL2NvbXBvc2Utbm9kZS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL2NvbXBvc2UtZG9jLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvcGFyc2UvY3N0LXZpc2l0LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3BhcnNlL2NzdC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9wYXJzZS9sZXhlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9wYXJzZS9saW5lLWNvdW50ZXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvcGFyc2UvcGFyc2VyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3B1YmxpYy1hcGkuanMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L2ltcG9ydC9tYXJrZG93bi50cyIsICIuLi8uLi8uLi9zcmMvZXhwcmVzc2lvbi9wYXJzZXIudHMiLCAiLi4vLi4vLi4vc3JjL2V4cHJlc3Npb24vbGl0ZXJhbC50cyIsICIuLi8uLi8uLi9zcmMvYXBpL3Jlc3VsdC50cyIsICIuLi8uLi8uLi9zcmMvZXhwcmVzc2lvbi9maWx0ZXJzLnRzIiwgIi4uLy4uLy4uL3NyYy9leHByZXNzaW9uL2V4cHJlc3Npb24udHMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L2ltcG9ydC9pbmxpbmUtZmllbGQudHMiLCAiLi4vLi4vLi4vc3JjL3V0aWxzL2RhdGEudHMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L3R5cGVzL2pzb24vY29tbW9uLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC90eXBlcy95YW1sLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC9pbXBvcnQvY2FudmFzLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC93ZWItd29ya2VyL2ltcG9ydGVyLndvcmtlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIWZ1bmN0aW9uKG4sdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5QYXJzaW1tb249dCgpOm4uUGFyc2ltbW9uPXQoKX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXt9O2Z1bmN0aW9uIHIoZSl7aWYodFtlXSlyZXR1cm4gdFtlXS5leHBvcnRzO3ZhciB1PXRbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319O3JldHVybiBuW2VdLmNhbGwodS5leHBvcnRzLHUsdS5leHBvcnRzLHIpLHUubD0hMCx1LmV4cG9ydHN9cmV0dXJuIHIubT1uLHIuYz10LHIuZD1mdW5jdGlvbihuLHQsZSl7ci5vKG4sdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDplfSl9LHIucj1mdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci5uPWZ1bmN0aW9uKG4pe3ZhciB0PW4mJm4uX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIG59O3JldHVybiByLmQodCxcImFcIix0KSx0fSxyLm89ZnVuY3Rpb24obix0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sdCl9LHIucD1cIlwiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1ufXZhciB1PWUucHJvdG90eXBlO2Z1bmN0aW9uIG8obix0KXtmb3IodmFyIHI9MDtyPG47cisrKXQocil9ZnVuY3Rpb24gaShuLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7byh0Lmxlbmd0aCxmdW5jdGlvbihyKXtuKHRbcl0scix0KX0pfShmdW5jdGlvbihyLGUsdSl7dD1uKHQscixlLHUpfSxyKSx0fWZ1bmN0aW9uIGEobix0KXtyZXR1cm4gaShmdW5jdGlvbih0LHIsZSx1KXtyZXR1cm4gdC5jb25jYXQoW24ocixlLHUpXSl9LFtdLHQpfWZ1bmN0aW9uIGYobix0KXt2YXIgcj17djowLGJ1Zjp0fTtyZXR1cm4gbyhuLGZ1bmN0aW9uKCl7dmFyIG47cj17djpyLnY8PDF8KG49ci5idWYsblswXT4+NyksYnVmOmZ1bmN0aW9uKG4pe3ZhciB0PWkoZnVuY3Rpb24obix0LHIsZSl7cmV0dXJuIG4uY29uY2F0KHI9PT1lLmxlbmd0aC0xP0J1ZmZlci5mcm9tKFt0LDBdKS5yZWFkVUludDE2QkUoMCk6ZS5yZWFkVUludDE2QkUocikpfSxbXSxuKTtyZXR1cm4gQnVmZmVyLmZyb20oYShmdW5jdGlvbihuKXtyZXR1cm4objw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfX0pLHJ9ZnVuY3Rpb24gYygpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKFwiQnVmZmVyIGdsb2JhbCBkb2VzIG5vdCBleGlzdDsgcGxlYXNlIHVzZSB3ZWJwYWNrIGlmIHlvdSBuZWVkIHRvIHBhcnNlIEJ1ZmZlcnMgaW4gdGhlIGJyb3dzZXIuXCIpfWZ1bmN0aW9uIGwobil7cygpO3ZhciB0PWkoZnVuY3Rpb24obix0KXtyZXR1cm4gbit0fSwwLG4pO2lmKHQlOCE9MCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgYml0cyBbXCIrbi5qb2luKFwiLCBcIikrXCJdIGFkZCB1cCB0byBcIit0K1wiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOFwiKTt2YXIgcix1PXQvOCxvPShyPWZ1bmN0aW9uKG4pe3JldHVybiBuPjQ4fSxpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG58fChyKHQpP3Q6bil9LG51bGwsbikpO2lmKG8pdGhyb3cgbmV3IEVycm9yKG8rXCIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LlwiKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKStcIiBieXRlc1wiKTpiKGUsaShmdW5jdGlvbihuLHQpe3ZhciByPWYodCxuLmJ1Zik7cmV0dXJue2NvbGw6bi5jb2xsLmNvbmNhdChyLnYpLGJ1ZjpyLmJ1Zn19LHtjb2xsOltdLGJ1Zjp0LnNsaWNlKHIsZSl9LG4pLmNvbGwpfSl9ZnVuY3Rpb24gaChuLHQpe3JldHVybiBuZXcgZShmdW5jdGlvbihyLGUpe3JldHVybiBzKCksZSt0PnIubGVuZ3RoP3goZSx0K1wiIGJ5dGVzIGZvciBcIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mKHI9dCl8fE1hdGguZmxvb3IocikhPT1yfHx0PDB8fHQ+Nil0aHJvdyBuZXcgRXJyb3IobitcIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uXCIpO3ZhciByfWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoXCJ1aW50QkVcIixuKSxoKFwidWludEJFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoXCJ1aW50TEVcIixuKSxoKFwidWludExFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoXCJpbnRCRVwiLG4pLGgoXCJpbnRCRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoXCJpbnRMRVwiLG4pLGgoXCJpbnRMRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT09e30udG9TdHJpbmcuY2FsbChuKX1mdW5jdGlvbiB3KG4pe3JldHVybiBjKCkmJkJ1ZmZlci5pc0J1ZmZlcihuKX1mdW5jdGlvbiBiKG4sdCl7cmV0dXJue3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldDtyZXR1cm4gZS5fc3VwcG9ydHNTZXQ9bixufSgpJiZBcnJheS5mcm9tKXtmb3IodmFyIHI9bmV3IFNldChuKSx1PTA7dTx0Lmxlbmd0aDt1Kyspci5hZGQodFt1XSk7dmFyIG89QXJyYXkuZnJvbShyKTtyZXR1cm4gby5zb3J0KCksb31mb3IodmFyIGk9e30sYT0wO2E8bi5sZW5ndGg7YSsrKWlbblthXV09ITA7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDtmKyspaVt0W2ZdXT0hMDt2YXIgYz1bXTtmb3IodmFyIHMgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxzKSYmYy5wdXNoKHMpO3JldHVybiBjLnNvcnQoKSxjfShuLmV4cGVjdGVkLHQuZXhwZWN0ZWQpOnQuZXhwZWN0ZWQ7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxpbmRleDpuLmluZGV4LHZhbHVlOm4udmFsdWUsZnVydGhlc3Q6dC5mdXJ0aGVzdCxleHBlY3RlZDpyfX12YXIgaj17fTtmdW5jdGlvbiBTKG4sdCl7aWYodyhuKSlyZXR1cm57b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfShcIlxcblwiPT09bi5jaGFyQXQoaSl8fFwiXFxyXCI9PT1uLmNoYXJBdChpKSYmXCJcXG5cIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS19dmFyIGE9ZSt1LGY9dC1vO3JldHVybiByW3RdPXtsaW5lOmEsbGluZVN0YXJ0Om99LHtvZmZzZXQ6dCxsaW5lOmErMSxjb2x1bW46ZisxfX1mdW5jdGlvbiBfKG4pe2lmKCF5KG4pKXRocm93IG5ldyBFcnJvcihcIm5vdCBhIHBhcnNlcjogXCIrbil9ZnVuY3Rpb24gTChuLHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBuP24uY2hhckF0KHQpOm5bdF19ZnVuY3Rpb24gTyhuKXtpZihcIm51bWJlclwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBudW1iZXI6IFwiK24pfWZ1bmN0aW9uIGsobil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBmdW5jdGlvbjogXCIrbil9ZnVuY3Rpb24gUChuKXtpZihcInN0cmluZ1wiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBzdHJpbmc6IFwiK24pfXZhciBxPTIsQT0zLEk9OCxGPTUqSSxNPTQqSSx6PVwiICBcIjtmdW5jdGlvbiBSKG4sdCl7cmV0dXJuIG5ldyBBcnJheSh0KzEpLmpvaW4obil9ZnVuY3Rpb24gVShuLHQscil7dmFyIGU9dC1uLmxlbmd0aDtyZXR1cm4gZTw9MD9uOlIocixlKStufWZ1bmN0aW9uIFcobix0LHIsZSl7cmV0dXJue2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuXCJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXRcIjtpZih3KG4pKXt2YXIgaD1zLXMlSSxwPXMtaCxkPVcoaCxGLE0rSSxuLmxlbmd0aCksdj1hKGZ1bmN0aW9uKG4pe3JldHVybiBhKGZ1bmN0aW9uKG4pe3JldHVybiBVKG4udG9TdHJpbmcoMTYpLDIsXCIwXCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybltuLnNsaWNlKCldO2Zvcih2YXIgbz0wO288cjtvKyspZVt1XXx8ZS5wdXNoKFtdKSxlW3VdLnB1c2gobltvXSksKG8rMSkldD09MCYmdSsrO3JldHVybiBlfShuLnNsaWNlKGQuZnJvbSxkLnRvKS50b0pTT04oKS5kYXRhLEkpKTtvPWZ1bmN0aW9uKG4pe3JldHVybiAwPT09bi5mcm9tJiYxPT09bi50bz97ZnJvbTpuLmZyb20sdG86bi50b306e2Zyb206bi5mcm9tL0ksdG86TWF0aC5mbG9vcihuLnRvL0kpfX0oZCksZT1oL0kscj0zKnAscD49NCYmKHIrPTEpLGw9Mix1PWEoZnVuY3Rpb24obil7cmV0dXJuIG4ubGVuZ3RoPD00P24uam9pbihcIiBcIik6bi5zbGljZSgwLDQpLmpvaW4oXCIgXCIpK1wiICBcIituLnNsaWNlKDQpLmpvaW4oXCIgXCIpfSx2KSwoZj0oOCooby50bz4wP28udG8tMTpvLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKGY9Mil9ZWxzZXt2YXIgZz1uLnNwbGl0KC9cXHJcXG58W1xcblxcclxcdTIwMjhcXHUyMDI5XS8pO3I9Yy5jb2x1bW4tMSxlPWMubGluZS0xLG89VyhlLHEsQSxnLmxlbmd0aCksdT1nLnNsaWNlKG8uZnJvbSxvLnRvKSxmPW8udG8udG9TdHJpbmcoKS5sZW5ndGh9dmFyIG09ZS1vLmZyb207cmV0dXJuIHcobikmJihmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKSxpKGZ1bmN0aW9uKHQsZSx1KXt2YXIgaSxhPXU9PT1tLGM9YT9cIj4gXCI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsXCIwXCIpOlUoKG8uZnJvbSt1KzEpLnRvU3RyaW5nKCksZixcIiBcIiksW10uY29uY2F0KHQsW2MraStcIiB8IFwiK2VdLGE/W3orUihcIiBcIixmKStcIiB8IFwiK1UoXCJcIixyLFwiIFwiKStSKFwiXlwiLGwpXTpbXSl9LFtdLHUpLmpvaW4oXCJcXG5cIil9ZnVuY3Rpb24gTihuLHQpe3JldHVybltcIlxcblwiLFwiLS0gUEFSU0lORyBGQUlMRUQgXCIrUihcIi1cIiw1MCksXCJcXG5cXG5cIixEKG4sdCksXCJcXG5cXG5cIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD9cIkV4cGVjdGVkOlxcblxcblwiK3JbMF06XCJFeHBlY3RlZCBvbmUgb2YgdGhlIGZvbGxvd2luZzogXFxuXFxuXCIrci5qb2luKFwiLCBcIikpLFwiXFxuXCJdLmpvaW4oXCJcIik7dmFyIHJ9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gdm9pZCAwIT09bi5mbGFncz9uLmZsYWdzOltuLmdsb2JhbD9cImdcIjpcIlwiLG4uaWdub3JlQ2FzZT9cImlcIjpcIlwiLG4ubXVsdGlsaW5lP1wibVwiOlwiXCIsbi51bmljb2RlP1widVwiOlwiXCIsbi5zdGlja3k/XCJ5XCI6XCJcIl0uam9pbihcIlwiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4fXJldHVybiBCKGIoZSxvKSx1KX0pfWZ1bmN0aW9uIEooKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoMD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnRcIik7dmFyIHQ9bi5wb3AoKTtyZXR1cm4gayh0KSxDLmFwcGx5KG51bGwsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiB0LmFwcGx5KG51bGwsbil9KX1mdW5jdGlvbiBUKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHQ9bi5sZW5ndGg7aWYoMD09PXQpcmV0dXJuIFkoXCJ6ZXJvIGFsdGVybmF0ZXNcIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybltuXS5jb25jYXQodCl9KX1mdW5jdGlvbiBLKG4pe1Aobik7dmFyIHQ9XCInXCIrbitcIidcIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKFwibm90IGEgcmVnZXhwOiBcIituKTtmb3IodmFyIHQ9RyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBlPXQuY2hhckF0KHIpO2lmKFwiaVwiIT09ZSYmXCJtXCIhPT1lJiZcInVcIiE9PWUmJlwic1wiIT09ZSl0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHJlZ2V4cCBmbGFnIFwiJytlKydcIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cChcIl4oPzpcIituLnNvdXJjZStcIilcIixHKG4pKX0obiksdT1cIlwiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSxcInZhbGlkIG1hdGNoIGdyb3VwICgwIHRvIFwiK28ubGVuZ3RoK1wiKSBpbiBcIit1KX1yZXR1cm4geChlLHUpfSl9ZnVuY3Rpb24gWChuKXtyZXR1cm4gZShmdW5jdGlvbih0LHIpe3JldHVybiBiKHIsbil9KX1mdW5jdGlvbiBZKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHgocixuKX0pfWZ1bmN0aW9uIFoobil7aWYoeShuKSlyZXR1cm4gZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpO3JldHVybiBlLmluZGV4PXIsZS52YWx1ZT1cIlwiLGV9KTtpZihcInN0cmluZ1wiPT10eXBlb2YgbilyZXR1cm4gWihLKG4pKTtpZihuIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBaKFEobikpO3Rocm93IG5ldyBFcnJvcihcIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6IFwiK24pfWZ1bmN0aW9uICQobil7cmV0dXJuIF8obiksZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpLHU9dC5zbGljZShyLGUuaW5kZXgpO3JldHVybiBlLnN0YXR1cz94KHIsJ25vdCBcIicrdSsnXCInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngocixcImEgY2hhcmFjdGVyL2J5dGUgbWF0Y2hpbmcgXCIrbil9KX1mdW5jdGlvbiB0bihuLHQpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9bixuPXZvaWQgMCk7dmFyIHI9ZShmdW5jdGlvbihuLGUpe3JldHVybiByLl89dCgpLl8sci5fKG4sZSl9KTtyZXR1cm4gbj9yLmRlc2Mobik6cn1mdW5jdGlvbiBybigpe3JldHVybiBZKFwiZmFudGFzeS1sYW5kL2VtcHR5XCIpfXUucGFyc2U9ZnVuY3Rpb24obil7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcihcIi5wYXJzZSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc3RyaW5nIG9yIEJ1ZmZlciBhcyBpdHMgYXJndW1lbnRcIik7dmFyIHQscj10aGlzLnNraXAoYW4pLl8obiwwKTtyZXR1cm4gdD1yLnN0YXR1cz97c3RhdHVzOiEwLHZhbHVlOnIudmFsdWV9OntzdGF0dXM6ITEsaW5kZXg6UyhuLHIuZnVydGhlc3QpLGV4cGVjdGVkOnIuZXhwZWN0ZWR9LGRlbGV0ZSBqW25dLHR9LHUudHJ5UGFyc2U9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5wYXJzZShuKTtpZih0LnN0YXR1cylyZXR1cm4gdC52YWx1ZTt2YXIgcj1OKG4sdCksZT1uZXcgRXJyb3Iocik7dGhyb3cgZS50eXBlPVwiUGFyc2ltbW9uRXJyb3JcIixlLnJlc3VsdD10LGV9LHUuYXNzZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXMuY2hhaW4oZnVuY3Rpb24ocil7cmV0dXJuIG4ocik/WChyKTpZKHQpfSl9LHUub3I9ZnVuY3Rpb24obil7cmV0dXJuIFQodGhpcyxuKX0sdS50cmltPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLndyYXAobixuKX0sdS53cmFwPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEoobix0aGlzLHQsZnVuY3Rpb24obix0KXtyZXR1cm4gdH0pfSx1LnRocnU9ZnVuY3Rpb24obil7cmV0dXJuIG4odGhpcyl9LHUudGhlbj1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKSxDKHRoaXMsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSl9LHUubWFueT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9W10sdT12b2lkIDA7Oyl7aWYoISh1PUIobi5fKHQsciksdSkpLnN0YXR1cylyZXR1cm4gQihiKHIsZSksdSk7aWYocj09PXUuaW5kZXgpdGhyb3cgbmV3IEVycm9yKFwiaW5maW5pdGUgbG9vcCBkZXRlY3RlZCBpbiAubWFueSgpIHBhcnNlciAtLS0gY2FsbGluZyAubWFueSgpIG9uIGEgcGFyc2VyIHdoaWNoIGNhbiBhY2NlcHQgemVybyBjaGFyYWN0ZXJzIGlzIHVzdWFsbHkgdGhlIGNhdXNlXCIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSl9fSl9LHUudGllV2l0aD1mdW5jdGlvbihuKXtyZXR1cm4gUChuKSx0aGlzLm1hcChmdW5jdGlvbih0KXtpZihmdW5jdGlvbihuKXtpZighRShuKSl0aHJvdyBuZXcgRXJyb3IoXCJub3QgYW4gYXJyYXk6IFwiK24pfSh0KSx0Lmxlbmd0aCl7UCh0WzBdKTtmb3IodmFyIHI9dFswXSxlPTE7ZTx0Lmxlbmd0aDtlKyspUCh0W2VdKSxyKz1uK3RbZV07cmV0dXJuIHJ9cmV0dXJuXCJcIn0pfSx1LnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoXCJcIil9LHUudGltZXM9ZnVuY3Rpb24obix0KXt2YXIgcj10aGlzO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PW4pLE8obiksTyh0KSxlKGZ1bmN0aW9uKGUsdSl7Zm9yKHZhciBvPVtdLGk9dm9pZCAwLGE9dm9pZCAwLGY9MDtmPG47Zis9MSl7aWYoYT1CKGk9ci5fKGUsdSksYSksIWkuc3RhdHVzKXJldHVybiBhO3U9aS5pbmRleCxvLnB1c2goaS52YWx1ZSl9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJue3N0YXJ0Om4sdmFsdWU6dCxlbmQ6cn19KX0sdS5ub2RlPWZ1bmN0aW9uKG4pe3JldHVybiBKKGVuLHRoaXMsZW4sZnVuY3Rpb24odCxyLGUpe3JldHVybntuYW1lOm4sdmFsdWU6cixzdGFydDp0LGVuZDplfX0pfSx1LnNlcEJ5PWZ1bmN0aW9uKG4pe3JldHVybiBWKHRoaXMsbil9LHUuc2VwQnkxPWZ1bmN0aW9uKG4pe3JldHVybiBIKHRoaXMsbil9LHUubG9va2FoZWFkPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoWihuKSl9LHUubm90Rm9sbG93ZWRCeT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5za2lwKCQobikpfSx1LmRlc2M9ZnVuY3Rpb24obil7RShuKXx8KG49W25dKTt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzfHwodS5leHBlY3RlZD1uKSx1fSl9LHUuZmFsbGJhY2s9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMub3IoWChuKSl9LHUuYXA9ZnVuY3Rpb24obil7cmV0dXJuIEoobix0aGlzLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4odCl9KX0sdS5jaGFpbj1mdW5jdGlvbihuKXt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzP0Iobih1LnZhbHVlKS5fKHIsdS5pbmRleCksdSk6dX0pfSx1LmNvbmNhdD11Lm9yLHUuZW1wdHk9cm4sdS5vZj1YLHVbXCJmYW50YXN5LWxhbmQvYXBcIl09dS5hcCx1W1wiZmFudGFzeS1sYW5kL2NoYWluXCJdPXUuY2hhaW4sdVtcImZhbnRhc3ktbGFuZC9jb25jYXRcIl09dS5jb25jYXQsdVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT11LmVtcHR5LHVbXCJmYW50YXN5LWxhbmQvb2ZcIl09dS5vZix1W1wiZmFudGFzeS1sYW5kL21hcFwiXT11Lm1hcDt2YXIgZW49ZShmdW5jdGlvbihuLHQpe3JldHVybiBiKHQsUyhuLHQpKX0pLHVuPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gdD49bi5sZW5ndGg/eCh0LFwiYW55IGNoYXJhY3Rlci9ieXRlXCIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LFwiRU9GXCIpOmIodCxudWxsKX0pLGZuPVEoL1swLTldLykuZGVzYyhcImEgZGlnaXRcIiksY249USgvWzAtOV0qLykuZGVzYyhcIm9wdGlvbmFsIGRpZ2l0c1wiKSxzbj1RKC9bYS16XS9pKS5kZXNjKFwiYSBsZXR0ZXJcIiksbG49USgvW2Etel0qL2kpLmRlc2MoXCJvcHRpb25hbCBsZXR0ZXJzXCIpLGhuPVEoL1xccyovKS5kZXNjKFwib3B0aW9uYWwgd2hpdGVzcGFjZVwiKSxwbj1RKC9cXHMrLykuZGVzYyhcIndoaXRlc3BhY2VcIiksZG49SyhcIlxcclwiKSx2bj1LKFwiXFxuXCIpLGduPUsoXCJcXHJcXG5cIiksbW49VChnbix2bixkbikuZGVzYyhcIm5ld2xpbmVcIikseW49VChtbixhbik7ZS5hbGw9b24sZS5hbHQ9VCxlLmFueT11bixlLmNyPWRuLGUuY3JlYXRlTGFuZ3VhZ2U9ZnVuY3Rpb24obil7dmFyIHQ9e307Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJmZ1bmN0aW9uKHIpe3Rbcl09dG4oZnVuY3Rpb24oKXtyZXR1cm4gbltyXSh0KX0pfShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoXCJub25lIG9mICdcIituK1wiJ1wiKX0sZS5ub3RGb2xsb3dlZEJ5PSQsZS5vZj1YLGUub25lT2Y9ZnVuY3Rpb24obil7Zm9yKHZhciB0PW4uc3BsaXQoXCJcIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09XCInXCIrdFtyXStcIidcIjtyZXR1cm4gbm4oZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5kZXhPZih0KT49MH0pLmRlc2ModCl9LGUub3B0V2hpdGVzcGFjZT1obixlLlBhcnNlcj1lLGUucmFuZ2U9ZnVuY3Rpb24obix0KXtyZXR1cm4gbm4oZnVuY3Rpb24ocil7cmV0dXJuIG48PXImJnI8PXR9KS5kZXNjKG4rXCItXCIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmXCJzdHJpbmdcIj09dHlwZW9mIGFbMF0mJnkoYVsxXSkpe3ZhciBmPWFbMF07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZikpdGhyb3cgbmV3IEVycm9yKFwic2VxT2JqOiBkdXBsaWNhdGUga2V5IFwiK2YpO3RbZl09ITAscisrO2NvbnRpbnVlfXRocm93IG5ldyBFcnJvcihcInNlcU9iaiBhcmd1bWVudHMgbXVzdCBiZSBwYXJzZXJzIG9yIFtzdHJpbmcsIHBhcnNlcl0gYXJyYXkgcGFpcnMuXCIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoXCJzZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFyc2VyLCBmb3VuZCB6ZXJvXCIpO3JldHVybiBlKGZ1bmN0aW9uKG4sdCl7Zm9yKHZhciByLGU9e30saT0wO2k8bztpKz0xKXt2YXIgYSxmO2lmKEUodVtpXSk/KGE9dVtpXVswXSxmPXVbaV1bMV0pOihhPW51bGwsZj11W2ldKSwhKHI9QihmLl8obix0KSxyKSkuc3RhdHVzKXJldHVybiByO2EmJihlW2FdPXIudmFsdWUpLHQ9ci5pbmRleH1yZXR1cm4gQihiKHQsZSkscil9KX0sZS5zdHJpbmc9SyxlLnN1Y2NlZWQ9WCxlLnRha2VXaGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXI7ZTx0Lmxlbmd0aCYmbihMKHQsZSkpOyllKys7cmV0dXJuIGIoZSx0LnNsaWNlKHIsZSkpfSl9LGUudGVzdD1ubixlLndoaXRlc3BhY2U9cG4sZVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT1ybixlW1wiZmFudGFzeS1sYW5kL29mXCJdPVgsZS5CaW5hcnk9e2JpdFNlcTpsLGJpdFNlcU9iajpmdW5jdGlvbihuKXtzKCk7dmFyIHQ9e30scj0wLGU9YShmdW5jdGlvbihuKXtpZihFKG4pKXt2YXIgZT1uO2lmKDIhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJbXCIrZS5qb2luKFwiLCBcIikrXCJdIHNob3VsZCBiZSBsZW5ndGggMiwgZ290IGxlbmd0aCBcIitlLmxlbmd0aCk7aWYoUChlWzBdKSxPKGVbMV0pLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGVbMF0pKXRocm93IG5ldyBFcnJvcihcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcIitlWzBdKTtyZXR1cm4gdFtlWzBdXT0hMCxyKyssZX1yZXR1cm4gTyhuKSxbbnVsbCxuXX0sbik7aWYocjwxKXRocm93IG5ldyBFcnJvcihcImJpdFNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYWlyLCBnb3QgW1wiK24uam9pbihcIiwgXCIpK1wiXVwiKTt2YXIgdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuWzBdfSxlKTtyZXR1cm4gbChhKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSxlKSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGwhPT10WzBdJiYoblt0WzBdXT10WzFdKSxufSx7fSxhKGZ1bmN0aW9uKHQscil7cmV0dXJuW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcihcIlZhbHVlIHNwZWNpZmllZCB0byBieXRlIGNvbnN0cnVjdG9yIChcIituK1wiPTB4XCIrbi50b1N0cmluZygxNikrXCIpIGlzIGxhcmdlciBpbiB2YWx1ZSB0aGFuIGEgc2luZ2xlIGJ5dGUuXCIpO3ZhciB0PShuPjE1P1wiMHhcIjpcIjB4MFwiKStuLnRvU3RyaW5nKDE2KTtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PUwocixlKTtyZXR1cm4gdT09PW4/YihlKzEsdSk6eChlLHQpfSl9LGJ1ZmZlcjpmdW5jdGlvbihuKXtyZXR1cm4gaChcImJ1ZmZlclwiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKFwic3RyaW5nXCIsdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKG4pfSl9LHVpbnRCRTpkLHVpbnQ4QkU6ZCgxKSx1aW50MTZCRTpkKDIpLHVpbnQzMkJFOmQoNCksdWludExFOnYsdWludDhMRTp2KDEpLHVpbnQxNkxFOnYoMiksdWludDMyTEU6dig0KSxpbnRCRTpnLGludDhCRTpnKDEpLGludDE2QkU6ZygyKSxpbnQzMkJFOmcoNCksaW50TEU6bSxpbnQ4TEU6bSgxKSxpbnQxNkxFOm0oMiksaW50MzJMRTptKDQpLGZsb2F0QkU6aChcImZsb2F0QkVcIiw0KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVhZEZsb2F0QkUoMCl9KSxmbG9hdExFOmgoXCJmbG9hdExFXCIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aChcImRvdWJsZUJFXCIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVCRSgwKX0pLGRvdWJsZUxFOmgoXCJkb3VibGVMRVwiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlTEUoMCl9KX0sbi5leHBvcnRzPWV9XSl9KTsiLCAiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbiAgICB9O1xyXG59KSgpO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRW1wdHlCVHJlZSA9IGV4cG9ydHMuYXNTZXQgPSBleHBvcnRzLnNpbXBsZUNvbXBhcmF0b3IgPSBleHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gdm9pZCAwO1xyXG4vKipcclxuICogQ29tcGFyZXMgRGVmYXVsdENvbXBhcmFibGVzIHRvIGZvcm0gYSBzdHJpY3QgcGFydGlhbCBvcmRlcmluZy5cclxuICpcclxuICogSGFuZGxlcyArLy0wIGFuZCBOYU4gbGlrZSBNYXA6IE5hTiBpcyBlcXVhbCB0byBOYU4sIGFuZCAtMCBpcyBlcXVhbCB0byArMC5cclxuICpcclxuICogQXJyYXlzIGFyZSBjb21wYXJlZCB1c2luZyAnPCcgYW5kICc+Jywgd2hpY2ggbWF5IGNhdXNlIHVuZXhwZWN0ZWQgZXF1YWxpdHk6XHJcbiAqIGZvciBleGFtcGxlIFsxXSB3aWxsIGJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gWycxJ10uXHJcbiAqXHJcbiAqIFR3byBvYmplY3RzIHdpdGggZXF1YWwgdmFsdWVPZiBjb21wYXJlIHRoZSBzYW1lLCBidXQgY29tcGFyZSB1bmVxdWFsIHRvXHJcbiAqIHByaW1pdGl2ZXMgdGhhdCBoYXZlIHRoZSBzYW1lIHZhbHVlLlxyXG4gKi9cclxuZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IoYSwgYikge1xyXG4gICAgLy8gU3BlY2lhbCBjYXNlIGZpbml0ZSBudW1iZXJzIGZpcnN0IGZvciBwZXJmb3JtYW5jZS5cclxuICAgIC8vIE5vdGUgdGhhdCB0aGUgdHJpY2sgb2YgdXNpbmcgJ2EgLSBiJyBhbmQgY2hlY2tpbmcgZm9yIE5hTiB0byBkZXRlY3Qgbm9uLW51bWJlcnNcclxuICAgIC8vIGRvZXMgbm90IHdvcmsgaWYgdGhlIHN0cmluZ3MgYXJlIG51bWVyaWMgKGV4OiBcIjVcIikuIFRoaXMgd291bGQgbGVhZGluZyBtb3N0IFxyXG4gICAgLy8gY29tcGFyaXNvbiBmdW5jdGlvbnMgdXNpbmcgdGhhdCBhcHByb2FjaCB0byBmYWlsIHRvIGhhdmUgdHJhbnNpdGl2aXR5LlxyXG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShhKSAmJiBOdW1iZXIuaXNGaW5pdGUoYikpIHtcclxuICAgICAgICByZXR1cm4gYSAtIGI7XHJcbiAgICB9XHJcbiAgICAvLyBUaGUgZGVmYXVsdCA8IGFuZCA+IG9wZXJhdG9ycyBhcmUgbm90IHRvdGFsbHkgb3JkZXJlZC4gVG8gYWxsb3cgdHlwZXMgdG8gYmUgbWl4ZWRcclxuICAgIC8vIGluIGEgc2luZ2xlIGNvbGxlY3Rpb24sIGNvbXBhcmUgdHlwZXMgYW5kIG9yZGVyIHZhbHVlcyBvZiBkaWZmZXJlbnQgdHlwZXMgYnkgdHlwZS5cclxuICAgIHZhciB0YSA9IHR5cGVvZiBhO1xyXG4gICAgdmFyIHRiID0gdHlwZW9mIGI7XHJcbiAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRhIDwgdGIgPyAtMSA6IDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGEgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgLy8gc3RhbmRhcmRpemVkIEphdmFTY3JpcHQgYnVnOiBudWxsIGlzIG5vdCBhbiBvYmplY3QsIGJ1dCB0eXBlb2Ygc2F5cyBpdCBpc1xyXG4gICAgICAgIGlmIChhID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gYiA9PT0gbnVsbCA/IDAgOiAtMTtcclxuICAgICAgICBlbHNlIGlmIChiID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICBhID0gYS52YWx1ZU9mKCk7XHJcbiAgICAgICAgYiA9IGIudmFsdWVPZigpO1xyXG4gICAgICAgIHRhID0gdHlwZW9mIGE7XHJcbiAgICAgICAgdGIgPSB0eXBlb2YgYjtcclxuICAgICAgICAvLyBEZWFsIHdpdGggdGhlIHR3byB2YWx1ZU9mKClzIHByb2R1Y2luZyBkaWZmZXJlbnQgdHlwZXNcclxuICAgICAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0YSA8IHRiID8gLTEgOiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGEgYW5kIGIgYXJlIG5vdyB0aGUgc2FtZSB0eXBlLCBhbmQgd2lsbCBiZSBhIG51bWJlciwgc3RyaW5nIG9yIGFycmF5IFxyXG4gICAgLy8gKHdoaWNoIHdlIGFzc3VtZSBob2xkcyBudW1iZXJzIG9yIHN0cmluZ3MpLCBvciBzb21ldGhpbmcgdW5zdXBwb3J0ZWQuXHJcbiAgICBpZiAoYSA8IGIpXHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgaWYgKGEgPiBiKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgaWYgKGEgPT09IGIpXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAvLyBPcmRlciBOYU4gbGVzcyB0aGFuIG90aGVyIG51bWJlcnNcclxuICAgIGlmIChOdW1iZXIuaXNOYU4oYSkpXHJcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihiKSA/IDAgOiAtMTtcclxuICAgIGVsc2UgaWYgKE51bWJlci5pc05hTihiKSlcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIC8vIFRoaXMgY291bGQgYmUgdHdvIG9iamVjdHMgKGUuZy4gWzddIGFuZCBbJzcnXSkgdGhhdCBhcmVuJ3Qgb3JkZXJlZFxyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgPyAwIDogTnVtYmVyLk5hTjtcclxufVxyXG5leHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gZGVmYXVsdENvbXBhcmF0b3I7XHJcbjtcclxuZnVuY3Rpb24gc2ltcGxlQ29tcGFyYXRvcihhLCBiKSB7XHJcbiAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA8IGIgPyAtMSA6IDA7XHJcbn1cclxuZXhwb3J0cy5zaW1wbGVDb21wYXJhdG9yID0gc2ltcGxlQ29tcGFyYXRvcjtcclxuO1xyXG4vKipcclxuICogQSByZWFzb25hYmx5IGZhc3QgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMgd2l0aCBhIHBvd2VyZnVsIEFQSS5cclxuICogTGFyZ2VseSBjb21wYXRpYmxlIHdpdGggdGhlIHN0YW5kYXJkIE1hcC4gQlRyZWUgaXMgYSBCKyB0cmVlIGRhdGEgc3RydWN0dXJlLFxyXG4gKiBzbyB0aGUgY29sbGVjdGlvbiBpcyBzb3J0ZWQgYnkga2V5LlxyXG4gKlxyXG4gKiBCKyB0cmVlcyB0ZW5kIHRvIHVzZSBtZW1vcnkgbW9yZSBlZmZpY2llbnRseSB0aGFuIGhhc2h0YWJsZXMgc3VjaCBhcyB0aGVcclxuICogc3RhbmRhcmQgTWFwLCBlc3BlY2lhbGx5IHdoZW4gdGhlIGNvbGxlY3Rpb24gY29udGFpbnMgYSBsYXJnZSBudW1iZXIgb2ZcclxuICogaXRlbXMuIEhvd2V2ZXIsIG1haW50YWluaW5nIHRoZSBzb3J0IG9yZGVyIG1ha2VzIHRoZW0gbW9kZXN0bHkgc2xvd2VyOlxyXG4gKiBPKGxvZyBzaXplKSByYXRoZXIgdGhhbiBPKDEpLiBUaGlzIEIrIHRyZWUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgTygxKVxyXG4gKiBmYXN0IGNsb25pbmcuIEl0IGFsc28gc3VwcG9ydHMgZnJlZXplKCksIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0XHJcbiAqIGEgQlRyZWUgaXMgbm90IGNoYW5nZWQgYWNjaWRlbnRhbGx5LlxyXG4gKlxyXG4gKiBDb25mdXNpbmdseSwgdGhlIEVTNiBNYXAuZm9yRWFjaChjKSBtZXRob2QgY2FsbHMgYyh2YWx1ZSxrZXkpIGluc3RlYWQgb2ZcclxuICogYyhrZXksdmFsdWUpLCBpbiBjb250cmFzdCB0byBvdGhlciBtZXRob2RzIHN1Y2ggYXMgc2V0KCkgYW5kIGVudHJpZXMoKVxyXG4gKiB3aGljaCBwdXQgdGhlIGtleSBmaXJzdC4gSSBjYW4gb25seSBhc3N1bWUgdGhhdCB0aGUgb3JkZXIgd2FzIHJldmVyc2VkIG9uXHJcbiAqIHRoZSB0aGVvcnkgdGhhdCB1c2VycyB3b3VsZCB1c3VhbGx5IHdhbnQgdG8gZXhhbWluZSB2YWx1ZXMgYW5kIGlnbm9yZSBrZXlzLlxyXG4gKiBCVHJlZSdzIGZvckVhY2goKSB0aGVyZWZvcmUgd29ya3MgdGhlIHNhbWUgd2F5LCBidXQgYSBzZWNvbmQgbWV0aG9kXHJcbiAqIGAuZm9yRWFjaFBhaXIoKGtleSx2YWx1ZSk9PnsuLi59KWAgaXMgcHJvdmlkZWQgd2hpY2ggc2VuZHMgeW91IHRoZSBrZXlcclxuICogZmlyc3QgYW5kIHRoZSB2YWx1ZSBzZWNvbmQ7IHRoaXMgbWV0aG9kIGlzIHNsaWdodGx5IGZhc3RlciBiZWNhdXNlIGl0IGlzXHJcbiAqIHRoZSBcIm5hdGl2ZVwiIGZvci1lYWNoIG1ldGhvZCBmb3IgdGhpcyBjbGFzcy5cclxuICpcclxuICogT3V0IG9mIHRoZSBib3gsIEJUcmVlIHN1cHBvcnRzIGtleXMgdGhhdCBhcmUgbnVtYmVycywgc3RyaW5ncywgYXJyYXlzIG9mXHJcbiAqIG51bWJlcnMvc3RyaW5ncywgRGF0ZSwgYW5kIG9iamVjdHMgdGhhdCBoYXZlIGEgdmFsdWVPZigpIG1ldGhvZCByZXR1cm5pbmcgYVxyXG4gKiBudW1iZXIgb3Igc3RyaW5nLiBPdGhlciBkYXRhIHR5cGVzLCBzdWNoIGFzIGFycmF5cyBvZiBEYXRlIG9yIGN1c3RvbVxyXG4gKiBvYmplY3RzLCByZXF1aXJlIGEgY3VzdG9tIGNvbXBhcmF0b3IsIHdoaWNoIHlvdSBtdXN0IHBhc3MgYXMgdGhlIHNlY29uZFxyXG4gKiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3IgKHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBvcHRpb25hbCBsaXN0IG9mXHJcbiAqIGluaXRpYWwgaXRlbXMpLiBTeW1ib2xzIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgYmVjYXVzZSB0aGV5IGFyZSB1bm9yZGVyZWRcclxuICogKG9uZSBTeW1ib2wgaXMgbmV2ZXIgXCJncmVhdGVyXCIgb3IgXCJsZXNzXCIgdGhhbiBhbm90aGVyKS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogR2l2ZW4gYSB7bmFtZTogc3RyaW5nLCBhZ2U6IG51bWJlcn0gb2JqZWN0LCB5b3UgY2FuIGNyZWF0ZSBhIHRyZWUgc29ydGVkIGJ5XHJcbiAqIG5hbWUgYW5kIHRoZW4gYnkgYWdlIGxpa2UgdGhpczpcclxuICpcclxuICogICAgIHZhciB0cmVlID0gbmV3IEJUcmVlKHVuZGVmaW5lZCwgKGEsIGIpID0+IHtcclxuICogICAgICAgaWYgKGEubmFtZSA+IGIubmFtZSlcclxuICogICAgICAgICByZXR1cm4gMTsgLy8gUmV0dXJuIGEgbnVtYmVyID4wIHdoZW4gYSA+IGJcclxuICogICAgICAgZWxzZSBpZiAoYS5uYW1lIDwgYi5uYW1lKVxyXG4gKiAgICAgICAgIHJldHVybiAtMTsgLy8gUmV0dXJuIGEgbnVtYmVyIDwwIHdoZW4gYSA8IGJcclxuICogICAgICAgZWxzZSAvLyBuYW1lcyBhcmUgZXF1YWwgKG9yIGluY29tcGFyYWJsZSlcclxuICogICAgICAgICByZXR1cm4gYS5hZ2UgLSBiLmFnZTsgLy8gUmV0dXJuID4wIHdoZW4gYS5hZ2UgPiBiLmFnZVxyXG4gKiAgICAgfSk7XHJcbiAqXHJcbiAqICAgICB0cmVlLnNldCh7bmFtZTpcIkJpbGxcIiwgYWdlOjE3fSwgXCJoYXBweVwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiRnJhblwiLCBhZ2U6NDB9LCBcImJ1c3kgJiBzdHJlc3NlZFwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiQmlsbFwiLCBhZ2U6NTV9LCBcInJlY2VudGx5IGxhaWQgb2ZmXCIpO1xyXG4gKiAgICAgdHJlZS5mb3JFYWNoUGFpcigoaywgdikgPT4ge1xyXG4gKiAgICAgICBjb25zb2xlLmxvZyhgTmFtZTogJHtrLm5hbWV9IEFnZTogJHtrLmFnZX0gU3RhdHVzOiAke3Z9YCk7XHJcbiAqICAgICB9KTtcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoZSBcInJhbmdlXCIgbWV0aG9kcyAoYGZvckVhY2gsIGZvclJhbmdlLCBlZGl0UmFuZ2VgKSB3aWxsIHJldHVybiB0aGUgbnVtYmVyXHJcbiAqIG9mIGVsZW1lbnRzIHRoYXQgd2VyZSBzY2FubmVkLiBJbiBhZGRpdGlvbiwgdGhlIGNhbGxiYWNrIGNhbiByZXR1cm4ge2JyZWFrOlJ9XHJcbiAqIHRvIHN0b3AgZWFybHkgYW5kIHJldHVybiBSIGZyb20gdGhlIG91dGVyIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiAtIFRPRE86IFRlc3QgcGVyZm9ybWFuY2Ugb2YgcHJlYWxsb2NhdGluZyB2YWx1ZXMgYXJyYXkgYXQgbWF4IHNpemVcclxuICogLSBUT0RPOiBBZGQgZmFzdCBpbml0aWFsaXphdGlvbiB3aGVuIGEgc29ydGVkIGFycmF5IGlzIHByb3ZpZGVkIHRvIGNvbnN0cnVjdG9yXHJcbiAqXHJcbiAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9xd2VydGllL2J0cmVlLXR5cGVzY3JpcHRcclxuICpcclxuICogQXJlIHlvdSBhIEMjIGRldmVsb3Blcj8gWW91IG1pZ2h0IGxpa2UgdGhlIHNpbWlsYXIgZGF0YSBzdHJ1Y3R1cmVzIEkgbWFkZSBmb3IgQyM6XHJcbiAqIEJEaWN0aW9uYXJ5LCBCTGlzdCwgZXRjLiBTZWUgaHR0cDovL2NvcmUubG95Yy5uZXQvY29sbGVjdGlvbnMvXHJcbiAqXHJcbiAqIEBhdXRob3IgRGF2aWQgUGllcGdyYXNzXHJcbiAqL1xyXG52YXIgQlRyZWUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGFuIGVtcHR5IEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gY29tcGFyZSBDdXN0b20gZnVuY3Rpb24gdG8gY29tcGFyZSBwYWlycyBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZS5cclxuICAgICAqICAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdENvbXBhcmF0b3Igd2lsbCBiZSB1c2VkIHdoaWNoIGlzIHZhbGlkIGFzIGxvbmcgYXMgSyBleHRlbmRzIERlZmF1bHRDb21wYXJhYmxlLlxyXG4gICAgICogQHBhcmFtIGVudHJpZXMgQSBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGluaXRpYWxpemUgdGhlIHRyZWVcclxuICAgICAqIEBwYXJhbSBtYXhOb2RlU2l6ZSBCcmFuY2hpbmcgZmFjdG9yIChtYXhpbXVtIGl0ZW1zIG9yIGNoaWxkcmVuIHBlciBub2RlKVxyXG4gICAgICogICBNdXN0IGJlIGluIHJhbmdlIDQuLjI1Ni4gSWYgdW5kZWZpbmVkIG9yIDw0IHRoZW4gZGVmYXVsdCBpcyB1c2VkOyBpZiA+MjU2IHRoZW4gMjU2LlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBCVHJlZShlbnRyaWVzLCBjb21wYXJlLCBtYXhOb2RlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5fbWF4Tm9kZVNpemUgPSBtYXhOb2RlU2l6ZSA+PSA0ID8gTWF0aC5taW4obWF4Tm9kZVNpemUsIDI1NikgOiAzMjtcclxuICAgICAgICB0aGlzLl9jb21wYXJlID0gY29tcGFyZSB8fCBkZWZhdWx0Q29tcGFyYXRvcjtcclxuICAgICAgICBpZiAoZW50cmllcylcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWlycyhlbnRyaWVzKTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XHJcbiAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvLyBFUzYgTWFwPEssVj4gbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJsZW5ndGhcIiwge1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0VtcHR5XCIsIHtcclxuICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmZiB0aGUgdHJlZSBjb250YWlucyBubyBrZXktdmFsdWUgcGFpcnMuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9zaXplID09PSAwOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvKiogUmVsZWFzZXMgdGhlIHRyZWUgc28gdGhhdCBpdHMgc2l6ZSBpcyAwLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEVTNiBNYXAsIHRoZSBhcmd1bWVudCBvcmRlciB0b1xyXG4gICAgICogIHRoZSBjYWxsYmFjayBpcyBiYWNrd2FyZHM6IHZhbHVlIGZpcnN0LCB0aGVuIGtleS4gQ2FsbCBmb3JFYWNoUGFpclxyXG4gICAgICogIGluc3RlYWQgdG8gcmVjZWl2ZSB0aGUga2V5IGFzIHRoZSBmaXJzdCBhcmd1bWVudC5cclxuICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCB0aGlzIHBhcmFtZXRlciBpcyBhc3NpZ25lZCBhcyB0aGUgYHRoaXNgXHJcbiAgICAgKiAgICAgICAgdmFsdWUgZm9yIGVhY2ggY2FsbGJhY2suXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHZhbHVlcyB0aGF0IHdlcmUgc2VudCB0byB0aGUgY2FsbGJhY2ssXHJcbiAgICAgKiAgICAgICAgb3IgdGhlIFIgdmFsdWUgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkIHticmVhazpSfS4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24gKGNhbGxiYWNrLCB0aGlzQXJnKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAodGhpc0FyZyAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpc0FyZyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhaXIoZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuIGNhbGxiYWNrKHYsIGssIF90aGlzKTsgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBUaGUgY2FsbGJhY2sgY2FuIHJldHVybiB7YnJlYWs6Un0gKHdoZXJlIFIgaXMgYW55IHZhbHVlXHJcbiAgICAgKiAgZXhjZXB0IHVuZGVmaW5lZCkgdG8gc3RvcCBpbW1lZGlhdGVseSBhbmQgcmV0dXJuIFIgZnJvbSBmb3JFYWNoUGFpci5cclxuICAgICAqIEBwYXJhbSBvbkZvdW5kIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2gga2V5LXZhbHVlIHBhaXIuIFRoaXNcclxuICAgICAqICAgICAgICBmdW5jdGlvbiBjYW4gcmV0dXJuIHticmVhazpSfSB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIuXHJcbiAgICAgKiAgICAgICAgVGhlIHJlYXNvbiB0aGF0IHlvdSBtdXN0IHJldHVybiB7YnJlYWs6Un0gaW5zdGVhZCBvZiBzaW1wbHkgUlxyXG4gICAgICogICAgICAgIGl0c2VsZiBpcyBmb3IgY29uc2lzdGVuY3kgd2l0aCBlZGl0UmFuZ2UoKSwgd2hpY2ggYWxsb3dzXHJcbiAgICAgKiAgICAgICAgbXVsdGlwbGUgYWN0aW9ucywgbm90IGp1c3QgYnJlYWtpbmcuXHJcbiAgICAgKiBAcGFyYW0gaW5pdGlhbENvdW50ZXIgVGhpcyBpcyB0aGUgdmFsdWUgb2YgdGhlIHRoaXJkIGFyZ3VtZW50IG9mXHJcbiAgICAgKiAgICAgICAgYG9uRm91bmRgIHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC4gVGhlIGNvdW50ZXIgaW5jcmVhc2VzXHJcbiAgICAgKiAgICAgICAgYnkgb25lIGVhY2ggdGltZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBEZWZhdWx0IHZhbHVlOiAwXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhaXJzIHNlbnQgdG8gdGhlIGNhbGxiYWNrIChwbHVzIGluaXRpYWxDb3VudGVyLFxyXG4gICAgICogICAgICAgIGlmIHlvdSBwcm92aWRlZCBvbmUpLiBJZiB0aGUgY2FsbGJhY2sgcmV0dXJuZWQge2JyZWFrOlJ9IHRoZW5cclxuICAgICAqICAgICAgICB0aGUgUiB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZvckVhY2hQYWlyID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciBsb3cgPSB0aGlzLm1pbktleSgpLCBoaWdoID0gdGhpcy5tYXhLZXkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShsb3csIGhpZ2gsIHRydWUsIGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcik7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5kcyBhIHBhaXIgaW4gdGhlIHRyZWUgYW5kIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIGEgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEByZXR1cm5zIHRoZSB2YWx1ZSwgb3IgZGVmYXVsdFZhbHVlIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5nZXQoa2V5LCBkZWZhdWx0VmFsdWUsIHRoaXMpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBvciBvdmVyd3JpdGVzIGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNvcnQgb3JkZXIgb2ZcclxuICAgICAqICAgICAgICBkYXRhIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIGRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGtleSAob3B0aW9uYWwpXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGtleS12YWx1ZSBwYWlyXHJcbiAgICAgKiAgICAgICAgKGRlZmF1bHQ6IHRydWUpLiBJZiB0aGlzIGlzIGZhbHNlIGFuZCB0aGVyZSBpcyBhbiBleGlzdGluZ1xyXG4gICAgICogICAgICAgIGtleS12YWx1ZSBwYWlyIHRoZW4gdGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBuZXcga2V5LXZhbHVlIHBhaXIgd2FzIGFkZGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqIE5vdGU6IHdoZW4gb3ZlcndyaXRpbmcgYSBwcmV2aW91cyBlbnRyeSwgdGhlIGtleSBpcyB1cGRhdGVkXHJcbiAgICAgKiBhcyB3ZWxsIGFzIHRoZSB2YWx1ZS4gVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyB0aGUgbmV3IGtleVxyXG4gICAgICogaGFzIGRhdGEgdGhhdCBkb2VzIG5vdCBhZmZlY3QgaXRzIHNvcnQgb3JkZXIuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Jvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSB0aGlzLl9yb290LmNsb25lKCk7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX3Jvb3Quc2V0KGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdGhpcyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSB8fCByZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIC8vIFJvb3Qgbm9kZSBoYXMgc3BsaXQsIHNvIGNyZWF0ZSBhIG5ldyByb290IG5vZGUuXHJcbiAgICAgICAgdGhpcy5fcm9vdCA9IG5ldyBCTm9kZUludGVybmFsKFt0aGlzLl9yb290LCByZXN1bHRdKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgQisgdHJlZSwgZmFsc2UgaWYgbm90LlxyXG4gICAgICogVXNlIGdldCgpIGZvciBiZXN0IHBlcmZvcm1hbmNlOyB1c2UgaGFzKCkgaWYgeW91IG5lZWQgdG9cclxuICAgICAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gXCJ1bmRlZmluZWQgdmFsdWVcIiBhbmQgXCJrZXkgbm90IHByZXNlbnRcIi5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGRldGVjdFxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShrZXksIGtleSwgdHJ1ZSwgdW5kZWZpbmVkKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBzaW5nbGUga2V5LXZhbHVlIHBhaXIgZnJvbSB0aGUgQisgdHJlZS5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGZpbmRcclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBwYWlyIHdhcyBmb3VuZCBhbmQgcmVtb3ZlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIERlbGV0ZVJhbmdlKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS12YWx1ZSBwYWlycyBzZXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aFBhaXJzID0gZnVuY3Rpb24gKHBhaXJzLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldFBhaXJzKHBhaXJzLCBvdmVyd3JpdGUpICE9PSAwIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleXMgcHJlc2VudC5cclxuICAgICAqICBAcGFyYW0ga2V5cyBUaGUga2V5cyB0byBhZGQuIElmIGEga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgdHJlZSxcclxuICAgICAqICAgICAgICAgbmVpdGhlciB0aGUgZXhpc3Rpbmcga2V5IG5vciB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbW9kaWZpZWQuXHJcbiAgICAgKiAgQHBhcmFtIHJldHVyblRoaXNJZlVuY2hhbmdlZCBpZiB0cnVlLCByZXR1cm5zIHRoaXMgaWYgYWxsIGtleXMgYWxyZWFkeVxyXG4gICAgICogIGV4aXN0ZWQuIFBlcmZvcm1hbmNlIG5vdGU6IGR1ZSB0byB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgY2xhc3MsIGFsbFxyXG4gICAgICogIG5vZGUocykgbGVhZGluZyB0byBleGlzdGluZyBrZXlzIGFyZSBjbG9uZWQgZXZlbiBpZiB0aGUgY29sbGVjdGlvbiBpc1xyXG4gICAgICogIHVsdGltYXRlbHkgdW5jaGFuZ2VkLlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRoS2V5cyA9IGZ1bmN0aW9uIChrZXlzLCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCksIGNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGNoYW5nZWQgPSBudS5zZXQoa2V5c1tpXSwgdW5kZWZpbmVkLCBmYWxzZSkgfHwgY2hhbmdlZDtcclxuICAgICAgICByZXR1cm4gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkICYmICFjaGFuZ2VkID8gdGhpcyA6IG51O1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdHJlZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5IHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiB0aGUga2V5IGRpZG4ndCBleGlzdC5cclxuICAgICAqICBQZXJmb3JtYW5jZSBub3RlOiBkdWUgdG8gdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNsYXNzLCBub2RlKHMpIGxlYWRpbmdcclxuICAgICAqICB0byB3aGVyZSB0aGUga2V5IHdvdWxkIGhhdmUgYmVlbiBzdG9yZWQgYXJlIGNsb25lZCBldmVuIHdoZW4gdGhlIGtleVxyXG4gICAgICogIHR1cm5zIG91dCBub3QgdG8gZXhpc3QgYW5kIHRoZSBjb2xsZWN0aW9uIGlzIHVuY2hhbmdlZC5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLndpdGhvdXQgPSBmdW5jdGlvbiAoa2V5LCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53aXRob3V0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIHJldHVyblRoaXNJZlVuY2hhbmdlZCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXlzIHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiBub25lIG9mIHRoZSBrZXlzXHJcbiAgICAgKiAgZXhpc3RlZC4gUGVyZm9ybWFuY2Ugbm90ZTogZHVlIHRvIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBjbGFzcyxcclxuICAgICAqICBub2RlKHMpIGxlYWRpbmcgdG8gd2hlcmUgdGhlIGtleSB3b3VsZCBoYXZlIGJlZW4gc3RvcmVkIGFyZSBjbG9uZWRcclxuICAgICAqICBldmVuIHdoZW4gdGhlIGtleSB0dXJucyBvdXQgbm90IHRvIGV4aXN0LlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dEtleXMgPSBmdW5jdGlvbiAoa2V5cywgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKSB7XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5jbG9uZSgpO1xyXG4gICAgICAgIHJldHVybiBudS5kZWxldGVLZXlzKGtleXMpIHx8ICFyZXR1cm5UaGlzSWZVbmNoYW5nZWQgPyBudSA6IHRoaXM7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzIHJlbW92ZWQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKTtcclxuICAgICAgICBpZiAobnUuZGVsZXRlUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkgPT09IDAgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggcGFpcnMgcmVtb3ZlZCB3aGVuZXZlciB0aGUgY2FsbGJhY2tcclxuICAgICAqICBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLiBgd2hlcmUoKWAgaXMgYSBzeW5vbnltIGZvciB0aGlzIG1ldGhvZC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICB2YXIgZGVsO1xyXG4gICAgICAgIG51LmVkaXRBbGwoZnVuY3Rpb24gKGssIHYsIGkpIHtcclxuICAgICAgICAgICAgaWYgKCFjYWxsYmFjayhrLCB2LCBpKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZWwgPSBEZWxldGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCFkZWwgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggYWxsIHZhbHVlcyBhbHRlcmVkIGJ5IGEgY2FsbGJhY2sgZnVuY3Rpb24uICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWFwVmFsdWVzID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIHRtcCA9IHt9O1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICBudS5lZGl0QWxsKGZ1bmN0aW9uIChrLCB2LCBpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0bXAudmFsdWUgPSBjYWxsYmFjayh2LCBrLCBpKSwgdG1wO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcclxuICAgICAgICB2YXIgaSA9IDAsIHAgPSBpbml0aWFsVmFsdWU7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKHRoaXMubWluS2V5KCksIFJldXNlZEFycmF5KSwgbmV4dDtcclxuICAgICAgICB3aGlsZSAoIShuZXh0ID0gaXQubmV4dCgpKS5kb25lKVxyXG4gICAgICAgICAgICBwID0gY2FsbGJhY2socCwgbmV4dC52YWx1ZSwgaSsrLCB0aGlzKTtcclxuICAgICAgICByZXR1cm4gcDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gSXRlcmF0b3IgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gb3JkZXIgKGFzY2VuZGluZyBvcmRlciBpZlxyXG4gICAgICogIHRoZSBjb2xsZWN0aW9uJ3MgY29tcGFyYXRvciB1c2VzIGFzY2VuZGluZyBvcmRlciwgYXMgaXMgdGhlIGRlZmF1bHQuKVxyXG4gICAgICogIEBwYXJhbSBsb3dlc3RLZXkgRmlyc3Qga2V5IHRvIGJlIGl0ZXJhdGVkLCBvciB1bmRlZmluZWQgdG8gc3RhcnQgYXRcclxuICAgICAqICAgICAgICAgbWluS2V5KCkuIElmIHRoZSBzcGVjaWZpZWQga2V5IGRvZXNuJ3QgZXhpc3QgdGhlbiBpdGVyYXRpb25cclxuICAgICAqICAgICAgICAgc3RhcnRzIGF0IHRoZSBuZXh0IGhpZ2hlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbiAobG93ZXN0S2V5LCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpbmZvID0gdGhpcy5maW5kUGF0aChsb3dlc3RLZXkpO1xyXG4gICAgICAgIGlmIChpbmZvID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigpO1xyXG4gICAgICAgIHZhciBub2RlcXVldWUgPSBpbmZvLm5vZGVxdWV1ZSwgbm9kZWluZGV4ID0gaW5mby5ub2RlaW5kZXgsIGxlYWYgPSBpbmZvLmxlYWY7XHJcbiAgICAgICAgdmFyIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgIHZhciBpID0gKGxvd2VzdEtleSA9PT0gdW5kZWZpbmVkID8gLTEgOiBsZWFmLmluZGV4T2YobG93ZXN0S2V5LCAwLCB0aGlzLl9jb21wYXJlKSAtIDEpO1xyXG4gICAgICAgIHJldHVybiBpdGVyYXRvcihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGp1bXA6IGZvciAoOzspIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGxlYWYua2V5c1tpXSwgcmV1c2VkQXJyYXlbMV0gPSBsZWFmLnZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogcmV1c2VkQXJyYXkgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBuZXh0IGxlYWYgbm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsZXZlbCA9IC0xOzspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2xldmVsID49IG5vZGVxdWV1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUganVtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK25vZGVpbmRleFtsZXZlbF0gPCBub2RlcXVldWVbbGV2ZWxdLmxlbmd0aClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbGV2ZWwgPiAwOyBsZXZlbC0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlcXVldWVbbGV2ZWwgLSAxXSA9IG5vZGVxdWV1ZVtsZXZlbF1bbm9kZWluZGV4W2xldmVsXV0uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlaW5kZXhbbGV2ZWwgLSAxXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiA9IG5vZGVxdWV1ZVswXVtub2RlaW5kZXhbMF1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gcmV2ZXJzZWQgb3JkZXIuXHJcbiAgICAgKiAgQHBhcmFtIGhpZ2hlc3RLZXkgS2V5IGF0IHdoaWNoIHRvIHN0YXJ0IGl0ZXJhdGluZywgb3IgdW5kZWZpbmVkIHRvXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0IGF0IG1heEtleSgpLiBJZiB0aGUgc3BlY2lmaWVkIGtleSBkb2Vzbid0IGV4aXN0IHRoZW4gaXRlcmF0aW9uXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0cyBhdCB0aGUgbmV4dCBsb3dlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqICBAcGFyYW0gc2tpcEhpZ2hlc3QgSWZmIHRoaXMgZmxhZyBpcyB0cnVlIGFuZCB0aGUgaGlnaGVzdEtleSBleGlzdHMgaW4gdGhlXHJcbiAgICAgKiAgICAgICAgIGNvbGxlY3Rpb24sIHRoZSBwYWlyIG1hdGNoaW5nIGhpZ2hlc3RLZXkgaXMgc2tpcHBlZCwgbm90IGl0ZXJhdGVkLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZW50cmllc1JldmVyc2VkID0gZnVuY3Rpb24gKGhpZ2hlc3RLZXksIHJldXNlZEFycmF5LCBza2lwSGlnaGVzdCkge1xyXG4gICAgICAgIGlmIChoaWdoZXN0S2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGlnaGVzdEtleSA9IHRoaXMubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIHNraXBIaWdoZXN0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoaGlnaGVzdEtleSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7IC8vIGNvbGxlY3Rpb24gaXMgZW1wdHlcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIF9hID0gdGhpcy5maW5kUGF0aChoaWdoZXN0S2V5KSB8fCB0aGlzLmZpbmRQYXRoKHRoaXMubWF4S2V5KCkpLCBub2RlcXVldWUgPSBfYS5ub2RlcXVldWUsIG5vZGVpbmRleCA9IF9hLm5vZGVpbmRleCwgbGVhZiA9IF9hLmxlYWY7XHJcbiAgICAgICAgY2hlY2soIW5vZGVxdWV1ZVswXSB8fCBsZWFmID09PSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXSwgXCJ3YXQhXCIpO1xyXG4gICAgICAgIHZhciBpID0gbGVhZi5pbmRleE9mKGhpZ2hlc3RLZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgIGlmICghc2tpcEhpZ2hlc3QgJiYgaSA8IGxlYWYua2V5cy5sZW5ndGggJiYgdGhpcy5fY29tcGFyZShsZWFmLmtleXNbaV0sIGhpZ2hlc3RLZXkpIDw9IDApXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB2YXIgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAganVtcDogZm9yICg7Oykge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0taSA+PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWkgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkQXJyYXlbMF0gPSBsZWFmLmtleXNbaV0sIHJldXNlZEFycmF5WzFdID0gbGVhZi52YWx1ZXNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IHJldXNlZEFycmF5IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBsZWFmIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbGV2ZWwgPSAtMTs7KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytsZXZlbCA+PSBub2RlcXVldWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGp1bXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1ub2RlaW5kZXhbbGV2ZWxdID49IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7IGxldmVsID4gMDsgbGV2ZWwtLSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXF1ZXVlW2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWxdW25vZGVpbmRleFtsZXZlbF1dLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZWluZGV4W2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWwgLSAxXS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgPSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGxlYWYua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qIFVzZWQgYnkgZW50cmllcygpIGFuZCBlbnRyaWVzUmV2ZXJzZWQoKSB0byBwcmVwYXJlIHRvIHN0YXJ0IGl0ZXJhdGluZy5cclxuICAgICAqIEl0IGRldmVsb3BzIGEgXCJub2RlIHF1ZXVlXCIgZm9yIGVhY2ggbm9uLWxlYWYgbGV2ZWwgb2YgdGhlIHRyZWUuXHJcbiAgICAgKiBMZXZlbHMgYXJlIG51bWJlcmVkIFwiYm90dG9tLXVwXCIgc28gdGhhdCBsZXZlbCAwIGlzIGEgbGlzdCBvZiBsZWFmXHJcbiAgICAgKiBub2RlcyBmcm9tIGEgbG93LWxldmVsIG5vbi1sZWFmIG5vZGUuIFRoZSBxdWV1ZSBhdCBhIGdpdmVuIGxldmVsIExcclxuICAgICAqIGNvbnNpc3RzIG9mIG5vZGVxdWV1ZVtMXSB3aGljaCBpcyB0aGUgY2hpbGRyZW4gb2YgYSBCTm9kZUludGVybmFsLFxyXG4gICAgICogYW5kIG5vZGVpbmRleFtMXSwgdGhlIGN1cnJlbnQgaW5kZXggd2l0aGluIHRoYXQgY2hpbGQgbGlzdCwgc3VjaFxyXG4gICAgICogc3VjaCB0aGF0IG5vZGVxdWV1ZVtMLTFdID09PSBub2RlcXVldWVbTF1bbm9kZWluZGV4W0xdXS5jaGlsZHJlbi5cclxuICAgICAqIChIb3dldmVyIGluc2lkZSB0aGlzIGZ1bmN0aW9uIHRoZSBvcmRlciBpcyByZXZlcnNlZC4pXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maW5kUGF0aCA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICB2YXIgbmV4dG5vZGUgPSB0aGlzLl9yb290O1xyXG4gICAgICAgIHZhciBub2RlcXVldWUsIG5vZGVpbmRleDtcclxuICAgICAgICBpZiAobmV4dG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgIG5vZGVxdWV1ZSA9IEVtcHR5QXJyYXksIG5vZGVpbmRleCA9IEVtcHR5QXJyYXk7IC8vIGF2b2lkIGFsbG9jYXRpb25zXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBub2RlcXVldWUgPSBbXSwgbm9kZWluZGV4ID0gW107XHJcbiAgICAgICAgICAgIGZvciAodmFyIGQgPSAwOyAhbmV4dG5vZGUuaXNMZWFmOyBkKyspIHtcclxuICAgICAgICAgICAgICAgIG5vZGVxdWV1ZVtkXSA9IG5leHRub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgbm9kZWluZGV4W2RdID0ga2V5ID09PSB1bmRlZmluZWQgPyAwIDogbmV4dG5vZGUuaW5kZXhPZihrZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGVpbmRleFtkXSA+PSBub2RlcXVldWVbZF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gZmlyc3Qga2V5ID4gbWF4S2V5KClcclxuICAgICAgICAgICAgICAgIG5leHRub2RlID0gbm9kZXF1ZXVlW2RdW25vZGVpbmRleFtkXV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZXF1ZXVlLnJldmVyc2UoKTtcclxuICAgICAgICAgICAgbm9kZWluZGV4LnJldmVyc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbm9kZXF1ZXVlOiBub2RlcXVldWUsIG5vZGVpbmRleDogbm9kZWluZGV4LCBsZWFmOiBuZXh0bm9kZSB9O1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQ29tcHV0ZXMgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYHRoaXNgIGFuZCBgb3RoZXJgLlxyXG4gICAgICogRm9yIGVmZmljaWVuY3ksIHRoZSBkaWZmIGlzIHJldHVybmVkIHZpYSBpbnZvY2F0aW9ucyBvZiBzdXBwbGllZCBoYW5kbGVycy5cclxuICAgICAqIFRoZSBjb21wdXRhdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIHRoZSBjYXNlIGluIHdoaWNoIHRoZSB0d28gdHJlZXMgaGF2ZSBsYXJnZSBhbW91bnRzXHJcbiAgICAgKiBvZiBzaGFyZWQgZGF0YSAob2J0YWluZWQgYnkgY2FsbGluZyB0aGUgYGNsb25lYCBvciBgd2l0aGAgQVBJcykgYW5kIHdpbGwgYXZvaWRcclxuICAgICAqIGFueSBpdGVyYXRpb24gb2Ygc2hhcmVkIHN0YXRlLlxyXG4gICAgICogVGhlIGhhbmRsZXJzIGNhbiBjYXVzZSBjb21wdXRhdGlvbiB0byBlYXJseSBleGl0IGJ5IHJldHVybmluZyB7YnJlYWs6IFJ9LlxyXG4gICAgICogTmVpdGhlciBvZiB0aGUgY29sbGVjdGlvbnMgc2hvdWxkIGJlIGNoYW5nZWQgZHVyaW5nIHRoZSBjb21wYXJpc29uIHByb2Nlc3MgKGluIHlvdXIgY2FsbGJhY2tzKSwgYXMgdGhpcyBtZXRob2QgYXNzdW1lcyB0aGV5IHdpbGwgbm90IGJlIG11dGF0ZWQuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIHRyZWUgdG8gY29tcHV0ZSBhIGRpZmYgYWdhaW5zdC5cclxuICAgICAqIEBwYXJhbSBvbmx5VGhpcyBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYHRoaXNgLlxyXG4gICAgICogQHBhcmFtIG9ubHlPdGhlciBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYG90aGVyYC5cclxuICAgICAqIEBwYXJhbSBkaWZmZXJlbnQgQ2FsbGJhY2sgaW52b2tlZCBmb3IgYWxsIGtleXMgd2l0aCBkaWZmZXJpbmcgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGlmZkFnYWluc3QgPSBmdW5jdGlvbiAob3RoZXIsIG9ubHlUaGlzLCBvbmx5T3RoZXIsIGRpZmZlcmVudCkge1xyXG4gICAgICAgIGlmIChvdGhlci5fY29tcGFyZSAhPT0gdGhpcy5fY29tcGFyZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmVlIGNvbXBhcmF0b3JzIGFyZSBub3QgdGhlIHNhbWUuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc0VtcHR5IHx8IG90aGVyLmlzRW1wdHkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSAmJiBvdGhlci5pc0VtcHR5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgLy8gSWYgb25lIHRyZWUgaXMgZW1wdHksIGV2ZXJ5dGhpbmcgd2lsbCBiZSBhbiBvbmx5VGhpcy9vbmx5T3RoZXIuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb25seU90aGVyID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBCVHJlZS5zdGVwVG9FbmQoQlRyZWUubWFrZURpZmZDdXJzb3Iob3RoZXIpLCBvbmx5T3RoZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gb25seVRoaXMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEJUcmVlLnN0ZXBUb0VuZChCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKSwgb25seVRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDdXJzb3ItYmFzZWQgZGlmZiBhbGdvcml0aG0gaXMgYXMgZm9sbG93czpcclxuICAgICAgICAvLyAtIFVudGlsIG5laXRoZXIgY3Vyc29yIGhhcyBuYXZpZ2F0ZWQgdG8gdGhlIGVuZCBvZiB0aGUgdHJlZSwgZG8gdGhlIGZvbGxvd2luZzpcclxuICAgICAgICAvLyAgLSBJZiB0aGUgYHRoaXNgIGN1cnNvciBpcyBcImJlaGluZFwiIHRoZSBgb3RoZXJgIGN1cnNvciAoc3RyaWN0bHkgPCwgdmlhIGNvbXBhcmUpLCBhZHZhbmNlIGl0LlxyXG4gICAgICAgIC8vICAtIE90aGVyd2lzZSwgYWR2YW5jZSB0aGUgYG90aGVyYCBjdXJzb3IuXHJcbiAgICAgICAgLy8gIC0gQW55IHRpbWUgYSBjdXJzb3IgaXMgc3RlcHBlZCwgcGVyZm9ybSB0aGUgZm9sbG93aW5nOlxyXG4gICAgICAgIC8vICAgIC0gSWYgZWl0aGVyIGN1cnNvciBwb2ludHMgdG8gYSBrZXkvdmFsdWUgcGFpcjpcclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA9PT0gb3RoZXJDdXJzb3IgYW5kIHRoZSB2YWx1ZXMgZGlmZmVyLCBpdCBpcyBhIERpZmZlcmVudC5cclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA+IG90aGVyQ3Vyc29yIGFuZCBvdGhlckN1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5T3RoZXIuXHJcbiAgICAgICAgLy8gICAgICAtIElmIHRoaXNDdXJzb3IgPCBvdGhlckN1cnNvciBhbmQgdGhpc0N1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5VGhpcyBhcyBsb25nIGFzIHRoZSBtb3N0IHJlY2VudCBcclxuICAgICAgICAvLyAgICAgICAgY3Vyc29yIHN0ZXAgd2FzICpub3QqIG90aGVyQ3Vyc29yIGFkdmFuY2luZyBmcm9tIGEgdGllLiBUaGUgZXh0cmEgY29uZGl0aW9uIGF2b2lkcyBlcnJvbmVvdXMgT25seU90aGVyIGNhbGxzIFxyXG4gICAgICAgIC8vICAgICAgICB0aGF0IHdvdWxkIG9jY3VyIGR1ZSB0byBvdGhlckN1cnNvciBiZWluZyB0aGUgXCJsZWFkZXJcIi5cclxuICAgICAgICAvLyAgICAtIE90aGVyd2lzZSwgaWYgYm90aCBjdXJzb3JzIHBvaW50IHRvIG5vZGVzLCBjb21wYXJlIHRoZW0uIElmIHRoZXkgYXJlIGVxdWFsIGJ5IHJlZmVyZW5jZSAoc2hhcmVkKSwgc2tpcFxyXG4gICAgICAgIC8vICAgICAgYm90aCBjdXJzb3JzIHRvIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHdhbGsuXHJcbiAgICAgICAgLy8gLSBPbmNlIG9uZSBjdXJzb3IgaGFzIGZpbmlzaGVkIHN0ZXBwaW5nLCBhbnkgcmVtYWluaW5nIHN0ZXBzIChpZiBhbnkpIGFyZSB0YWtlbiBhbmQga2V5L3ZhbHVlIHBhaXJzIGFyZSBsb2dnZWRcclxuICAgICAgICAvLyAgIGFzIE9ubHlPdGhlciAoaWYgb3RoZXJDdXJzb3IgaXMgc3RlcHBpbmcpIG9yIE9ubHlUaGlzIChpZiB0aGlzQ3Vyc29yIGlzIHN0ZXBwaW5nKS5cclxuICAgICAgICAvLyBUaGlzIGFsZ29yaXRobSBnaXZlcyB0aGUgY3JpdGljYWwgZ3VhcmFudGVlIHRoYXQgYWxsIGxvY2F0aW9ucyAoYm90aCBub2RlcyBhbmQga2V5L3ZhbHVlIHBhaXJzKSBpbiBib3RoIHRyZWVzIHRoYXQgXHJcbiAgICAgICAgLy8gYXJlIGlkZW50aWNhbCBieSB2YWx1ZSAoYW5kIHBvc3NpYmx5IGJ5IHJlZmVyZW5jZSkgd2lsbCBiZSB2aXNpdGVkICphdCB0aGUgc2FtZSB0aW1lKiBieSB0aGUgY3Vyc29ycy5cclxuICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIHBvc3NpYmlsaXR5IG9mIGVtaXR0aW5nIGluY29ycmVjdCBkaWZmcywgYXMgd2VsbCBhcyBhbGxvd2luZyBmb3Igc2tpcHBpbmcgc2hhcmVkIG5vZGVzLlxyXG4gICAgICAgIHZhciBfY29tcGFyZSA9IHRoaXMuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIHRoaXNDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKTtcclxuICAgICAgICB2YXIgb3RoZXJDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcihvdGhlcik7XHJcbiAgICAgICAgLy8gSXQgZG9lc24ndCBtYXR0ZXIgaG93IHRoaXNTdGVwcGVkTGFzdCBpcyBpbml0aWFsaXplZC5cclxuICAgICAgICAvLyBTdGVwIG9yZGVyIGlzIG9ubHkgdXNlZCB3aGVuIGVpdGhlciBjdXJzb3IgaXMgYXQgYSBsZWFmLCBhbmQgY3Vyc29ycyBhbHdheXMgc3RhcnQgYXQgYSBub2RlLlxyXG4gICAgICAgIHZhciB0aGlzU3VjY2VzcyA9IHRydWUsIG90aGVyU3VjY2VzcyA9IHRydWUsIHByZXZDdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICB3aGlsZSAodGhpc1N1Y2Nlc3MgJiYgb3RoZXJTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHZhciBjdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICAgICAgdmFyIHRoaXNMZWFmID0gdGhpc0N1cnNvci5sZWFmLCB0aGlzSW50ZXJuYWxTcGluZSA9IHRoaXNDdXJzb3IuaW50ZXJuYWxTcGluZSwgdGhpc0xldmVsSW5kaWNlcyA9IHRoaXNDdXJzb3IubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgICAgICB2YXIgb3RoZXJMZWFmID0gb3RoZXJDdXJzb3IubGVhZiwgb3RoZXJJbnRlcm5hbFNwaW5lID0gb3RoZXJDdXJzb3IuaW50ZXJuYWxTcGluZSwgb3RoZXJMZXZlbEluZGljZXMgPSBvdGhlckN1cnNvci5sZXZlbEluZGljZXM7XHJcbiAgICAgICAgICAgIGlmICh0aGlzTGVhZiB8fCBvdGhlckxlYWYpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3JzIHdlcmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gbGFzdCBzdGVwLCB0aGVuIHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUgZG9uZS5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2Q3Vyc29yT3JkZXIgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yT3JkZXIgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNMZWFmICYmIG90aGVyTGVhZiAmJiBkaWZmZXJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWFsIGtleXMsIGNoZWNrIGZvciBtb2RpZmljYXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbE90aGVyID0gb3RoZXJMZWFmLnZhbHVlc1tvdGhlckxldmVsSW5kaWNlc1tvdGhlckxldmVsSW5kaWNlcy5sZW5ndGggLSAxXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pcyh2YWxUaGlzLCB2YWxPdGhlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZGlmZmVyZW50KHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcywgdmFsT3RoZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmJyZWFrKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnNvck9yZGVyID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3ZSBrbm93IHRoYXQgZWl0aGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLiBvdGhlckN1cnNvciBzdGVwcGVkIGxhc3QgZnJvbSBhIHN0YXJ0aW5nIHBvc2l0aW9uIHRoYXQgdHJhaWxlZCB0aGlzQ3Vyc29yLCBhbmQgaXMgc3RpbGwgYmVoaW5kLCBvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAyLiB0aGlzQ3Vyc29yIHN0ZXBwZWQgbGFzdCBhbmQgbGVhcGZyb2dnZWQgb3RoZXJDdXJzb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIG9mIHRoZXNlIGNhc2VzIGlzIGFuIFwib25seSBvdGhlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlckxlYWYgJiYgb25seU90aGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJWYWwgPSBvdGhlckxlYWYudmFsdWVzW290aGVyTGV2ZWxJbmRpY2VzW290aGVyTGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbmx5T3RoZXIob3RoZXJDdXJzb3IuY3VycmVudEtleSwgb3RoZXJWYWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuYnJlYWspXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5icmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvbmx5VGhpcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc0xlYWYgJiYgcHJldkN1cnNvck9yZGVyICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9ubHlUaGlzKHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzTGVhZiAmJiAhb3RoZXJMZWFmICYmIGN1cnNvck9yZGVyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFRoaXMgPSB0aGlzSW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIGxhc3RPdGhlciA9IG90aGVySW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5vZGVUaGlzID0gdGhpc0ludGVybmFsU3BpbmVbbGFzdFRoaXNdW3RoaXNMZXZlbEluZGljZXNbbGFzdFRoaXNdXTtcclxuICAgICAgICAgICAgICAgIHZhciBub2RlT3RoZXIgPSBvdGhlckludGVybmFsU3BpbmVbbGFzdE90aGVyXVtvdGhlckxldmVsSW5kaWNlc1tsYXN0T3RoZXJdXTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlT3RoZXIgPT09IG5vZGVUaGlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzU3VjY2VzcyA9IEJUcmVlLnN0ZXAodGhpc0N1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJTdWNjZXNzID0gQlRyZWUuc3RlcChvdGhlckN1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gY3Vyc29yT3JkZXI7XHJcbiAgICAgICAgICAgIGlmIChjdXJzb3JPcmRlciA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXNTdWNjZXNzID0gQlRyZWUuc3RlcCh0aGlzQ3Vyc29yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG90aGVyU3VjY2VzcyA9IEJUcmVlLnN0ZXAob3RoZXJDdXJzb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzU3VjY2VzcyAmJiBvbmx5VGhpcylcclxuICAgICAgICAgICAgcmV0dXJuIEJUcmVlLmZpbmlzaEN1cnNvcldhbGsodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlLCBvbmx5VGhpcyk7XHJcbiAgICAgICAgaWYgKG90aGVyU3VjY2VzcyAmJiBvbmx5T3RoZXIpXHJcbiAgICAgICAgICAgIHJldHVybiBCVHJlZS5maW5pc2hDdXJzb3JXYWxrKG90aGVyQ3Vyc29yLCB0aGlzQ3Vyc29yLCBfY29tcGFyZSwgb25seU90aGVyKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIEhlbHBlciBtZXRob2RzIGZvciBkaWZmQWdhaW5zdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQlRyZWUuZmluaXNoQ3Vyc29yV2FsayA9IGZ1bmN0aW9uIChjdXJzb3IsIGN1cnNvckZpbmlzaGVkLCBjb21wYXJlS2V5cywgY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgY29tcGFyZWQgPSBCVHJlZS5jb21wYXJlKGN1cnNvciwgY3Vyc29yRmluaXNoZWQsIGNvbXBhcmVLZXlzKTtcclxuICAgICAgICBpZiAoY29tcGFyZWQgPT09IDApIHtcclxuICAgICAgICAgICAgaWYgKCFCVHJlZS5zdGVwKGN1cnNvcikpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjb21wYXJlZCA8IDApIHtcclxuICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiY3Vyc29yIHdhbGsgdGVybWluYXRlZCBlYXJseVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEJUcmVlLnN0ZXBUb0VuZChjdXJzb3IsIGNhbGxiYWNrKTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5zdGVwVG9FbmQgPSBmdW5jdGlvbiAoY3Vyc29yLCBjYWxsYmFjaykge1xyXG4gICAgICAgIHZhciBjYW5TdGVwID0gdHJ1ZTtcclxuICAgICAgICB3aGlsZSAoY2FuU3RlcCkge1xyXG4gICAgICAgICAgICB2YXIgbGVhZiA9IGN1cnNvci5sZWFmLCBsZXZlbEluZGljZXMgPSBjdXJzb3IubGV2ZWxJbmRpY2VzLCBjdXJyZW50S2V5ID0gY3Vyc29yLmN1cnJlbnRLZXk7XHJcbiAgICAgICAgICAgIGlmIChsZWFmKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBsZWFmLnZhbHVlc1tsZXZlbEluZGljZXNbbGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjYWxsYmFjayhjdXJyZW50S2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhblN0ZXAgPSBCVHJlZS5zdGVwKGN1cnNvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQlRyZWUubWFrZURpZmZDdXJzb3IgPSBmdW5jdGlvbiAodHJlZSkge1xyXG4gICAgICAgIHZhciBfcm9vdCA9IHRyZWUuX3Jvb3QsIGhlaWdodCA9IHRyZWUuaGVpZ2h0O1xyXG4gICAgICAgIHJldHVybiB7IGhlaWdodDogaGVpZ2h0LCBpbnRlcm5hbFNwaW5lOiBbW19yb290XV0sIGxldmVsSW5kaWNlczogWzBdLCBsZWFmOiB1bmRlZmluZWQsIGN1cnJlbnRLZXk6IF9yb290Lm1heEtleSgpIH07XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBBZHZhbmNlcyB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0IHN0ZXAgaW4gdGhlIHdhbGsgb2YgaXRzIHRyZWUuXHJcbiAgICAgKiBDdXJzb3JzIGFyZSB3YWxrZWQgYmFja3dhcmRzIGluIHNvcnQgb3JkZXIsIGFzIHRoaXMgYWxsb3dzIHRoZW0gdG8gbGV2ZXJhZ2UgbWF4S2V5KCkgaW4gb3JkZXIgdG8gYmUgY29tcGFyZWQgaW4gTygxKS5cclxuICAgICAqIEBwYXJhbSBjdXJzb3IgVGhlIGN1cnNvciB0byBzdGVwXHJcbiAgICAgKiBAcGFyYW0gc3RlcFRvTm9kZSBJZiB0cnVlLCB0aGUgY3Vyc29yIHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIG5leHQgbm9kZSAoc2tpcHBpbmcgdmFsdWVzKVxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgc3RlcCB3YXMgY29tcGxldGVkIGFuZCBmYWxzZSBpZiB0aGUgc3RlcCB3b3VsZCBoYXZlIGNhdXNlZCB0aGUgY3Vyc29yIHRvIG1vdmUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHRyZWUuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnN0ZXAgPSBmdW5jdGlvbiAoY3Vyc29yLCBzdGVwVG9Ob2RlKSB7XHJcbiAgICAgICAgdmFyIGludGVybmFsU3BpbmUgPSBjdXJzb3IuaW50ZXJuYWxTcGluZSwgbGV2ZWxJbmRpY2VzID0gY3Vyc29yLmxldmVsSW5kaWNlcywgbGVhZiA9IGN1cnNvci5sZWFmO1xyXG4gICAgICAgIGlmIChzdGVwVG9Ob2RlID09PSB0cnVlIHx8IGxlYWYpIHtcclxuICAgICAgICAgICAgdmFyIGxldmVsc0xlbmd0aCA9IGxldmVsSW5kaWNlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIC8vIFN0ZXAgdG8gdGhlIG5leHQgbm9kZSBvbmx5IGlmOlxyXG4gICAgICAgICAgICAvLyAtIFdlIGFyZSBleHBsaWNpdGx5IGRpcmVjdGVkIHRvIHZpYSBzdGVwVG9Ob2RlLCBvclxyXG4gICAgICAgICAgICAvLyAtIFRoZXJlIGFyZSBubyBrZXkvdmFsdWUgcGFpcnMgbGVmdCB0byBzdGVwIHRvIGluIHRoaXMgbGVhZlxyXG4gICAgICAgICAgICBpZiAoc3RlcFRvTm9kZSA9PT0gdHJ1ZSB8fCBsZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV0gPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBzcGluZUxlbmd0aCA9IGludGVybmFsU3BpbmUubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgLy8gUm9vdCBpcyBsZWFmXHJcbiAgICAgICAgICAgICAgICBpZiAoc3BpbmVMZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gV2FsayBiYWNrIHVwIHRoZSB0cmVlIHVudGlsIHdlIGZpbmQgYSBuZXcgc3VidHJlZSB0byBkZXNjZW5kIGludG9cclxuICAgICAgICAgICAgICAgIHZhciBub2RlTGV2ZWxJbmRleCA9IHNwaW5lTGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIHZhciBsZXZlbEluZGV4V2Fsa0JhY2sgPSBub2RlTGV2ZWxJbmRleDtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChsZXZlbEluZGV4V2Fsa0JhY2sgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxldmVsSW5kZXhXYWxrQmFjayA8IGxldmVsc0xlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBsZWFmIHN0YXRlIGZyb20gY3Vyc29yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsSW5kaWNlcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3YWxrZWQgdXB3YXJkcyBwYXN0IGFueSBpbnRlcm5hbCBub2RlLCBzbGljZSB0aGVtIG91dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmRleFdhbGtCYWNrIDwgbm9kZUxldmVsSW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuaW50ZXJuYWxTcGluZSA9IGludGVybmFsU3BpbmUuc2xpY2UoMCwgbGV2ZWxJbmRleFdhbGtCYWNrICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGludGVybmFsIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBpbnRlcm5hbFNwaW5lW2xldmVsSW5kZXhXYWxrQmFja11bLS1sZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZGV4V2Fsa0JhY2stLTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEN1cnNvciBpcyBpbiB0aGUgZmFyIGxlZnQgbGVhZiBvZiB0aGUgdHJlZSwgbm8gbW9yZSBub2RlcyB0byBlbnVtZXJhdGVcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGxlYWYgdmFsdWVcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gLS1sZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgICBjdXJzb3IuY3VycmVudEtleSA9IGxlYWYua2V5c1t2YWx1ZUluZGV4XTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgeyAvLyBDdXJzb3IgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWx1ZSBpbiBhIGxlYWYsIHNvIG1vdmUgZG93bndhcmRzXHJcbiAgICAgICAgICAgIHZhciBuZXh0TGV2ZWwgPSBpbnRlcm5hbFNwaW5lLmxlbmd0aDtcclxuICAgICAgICAgICAgdmFyIGN1cnJlbnRMZXZlbCA9IG5leHRMZXZlbCAtIDE7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gaW50ZXJuYWxTcGluZVtjdXJyZW50TGV2ZWxdW2xldmVsSW5kaWNlc1tjdXJyZW50TGV2ZWxdXTtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFbnRlcmluZyBpbnRvIGEgbGVhZi4gU2V0IHRoZSBjdXJzb3IgdG8gcG9pbnQgYXQgdGhlIGxhc3Qga2V5L3ZhbHVlIHBhaXIuXHJcbiAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVJbmRleCA9IGxldmVsSW5kaWNlc1tuZXh0TGV2ZWxdID0gbm9kZS52YWx1ZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIGN1cnNvci5jdXJyZW50S2V5ID0gbm9kZS5rZXlzW3ZhbHVlSW5kZXhdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIGludGVybmFsU3BpbmVbbmV4dExldmVsXSA9IGNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkSW5kZXggPSBjaGlsZHJlbi5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgbGV2ZWxJbmRpY2VzW25leHRMZXZlbF0gPSBjaGlsZEluZGV4O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBjaGlsZHJlbltjaGlsZEluZGV4XS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB0aGUgdHdvIGN1cnNvcnMuIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoaWNoIGN1cnNvciBpcyBhaGVhZCBpbiBhIHdhbGsuXHJcbiAgICAgKiBOb3RlIHRoYXQgY3Vyc29ycyBhcmUgYWR2YW5jZWQgaW4gcmV2ZXJzZSBzb3J0aW5nIG9yZGVyLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5jb21wYXJlID0gZnVuY3Rpb24gKGN1cnNvckEsIGN1cnNvckIsIGNvbXBhcmVLZXlzKSB7XHJcbiAgICAgICAgdmFyIGhlaWdodEEgPSBjdXJzb3JBLmhlaWdodCwgY3VycmVudEtleUEgPSBjdXJzb3JBLmN1cnJlbnRLZXksIGxldmVsSW5kaWNlc0EgPSBjdXJzb3JBLmxldmVsSW5kaWNlcztcclxuICAgICAgICB2YXIgaGVpZ2h0QiA9IGN1cnNvckIuaGVpZ2h0LCBjdXJyZW50S2V5QiA9IGN1cnNvckIuY3VycmVudEtleSwgbGV2ZWxJbmRpY2VzQiA9IGN1cnNvckIubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgIC8vIFJldmVyc2UgdGhlIGNvbXBhcmlzb24gb3JkZXIsIGFzIGN1cnNvcnMgYXJlIGFkdmFuY2VkIGluIHJldmVyc2Ugc29ydGluZyBvcmRlclxyXG4gICAgICAgIHZhciBrZXlDb21wYXJpc29uID0gY29tcGFyZUtleXMoY3VycmVudEtleUIsIGN1cnJlbnRLZXlBKTtcclxuICAgICAgICBpZiAoa2V5Q29tcGFyaXNvbiAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyaXNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTm9ybWFsaXplIGRlcHRoIHZhbHVlcyByZWxhdGl2ZSB0byB0aGUgc2hvcnRlc3QgdHJlZS5cclxuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBjb25jdXJyZW50IGN1cnNvciB3YWxrcyBvZiB0cmVlcyBvZiBkaWZmZXJpbmcgaGVpZ2h0cyBjYW4gcmVsaWFibHkgbGFuZCBvbiBzaGFyZWQgbm9kZXMgYXQgdGhlIHNhbWUgdGltZS5cclxuICAgICAgICAvLyBUbyBhY2NvbXBsaXNoIHRoaXMsIGEgY3Vyc29yIHRoYXQgaXMgb24gYW4gaW50ZXJuYWwgbm9kZSBhdCBkZXB0aCBEMSB3aXRoIG1heEtleSBYIGlzIGNvbnNpZGVyZWQgXCJiZWhpbmRcIiBhIGN1cnNvciBvbiBhblxyXG4gICAgICAgIC8vIGludGVybmFsIG5vZGUgYXQgZGVwdGggRDIgd2l0aCBtYXhLZXkgWSwgd2hlbiBEMSA8IEQyLiBUaHVzLCBhbHdheXMgd2Fsa2luZyB0aGUgY3Vyc29yIHRoYXQgaXMgXCJiZWhpbmRcIiB3aWxsIGFsbG93IHRoZSBjdXJzb3JcclxuICAgICAgICAvLyBhdCBzaGFsbG93ZXIgZGVwdGggKGJ1dCBlcXVhbCBtYXhLZXkpIHRvIFwiY2F0Y2ggdXBcIiBhbmQgbGFuZCBvbiBzaGFyZWQgbm9kZXMuXHJcbiAgICAgICAgdmFyIGhlaWdodE1pbiA9IGhlaWdodEEgPCBoZWlnaHRCID8gaGVpZ2h0QSA6IGhlaWdodEI7XHJcbiAgICAgICAgdmFyIGRlcHRoQU5vcm1hbGl6ZWQgPSBsZXZlbEluZGljZXNBLmxlbmd0aCAtIChoZWlnaHRBIC0gaGVpZ2h0TWluKTtcclxuICAgICAgICB2YXIgZGVwdGhCTm9ybWFsaXplZCA9IGxldmVsSW5kaWNlc0IubGVuZ3RoIC0gKGhlaWdodEIgLSBoZWlnaHRNaW4pO1xyXG4gICAgICAgIHJldHVybiBkZXB0aEFOb3JtYWxpemVkIC0gZGVwdGhCTm9ybWFsaXplZDtcclxuICAgIH07XHJcbiAgICAvLyBFbmQgb2YgaGVscGVyIG1ldGhvZHMgZm9yIGRpZmZBZ2FpbnN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUga2V5cyBvZiBlYWNoIHBhaXIgaW4gYXNjZW5kaW5nIG9yZGVyLlxyXG4gICAgICogIEBwYXJhbSBmaXJzdEtleTogTWluaW11bSBrZXkgdG8gaW5jbHVkZSBpbiB0aGUgb3V0cHV0LiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoZmlyc3RLZXkpIHtcclxuICAgICAgICB2YXIgaXQgPSB0aGlzLmVudHJpZXMoZmlyc3RLZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gaXRlcmF0b3IoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgbiA9IGl0Lm5leHQoKTtcclxuICAgICAgICAgICAgaWYgKG4udmFsdWUpXHJcbiAgICAgICAgICAgICAgICBuLnZhbHVlID0gbi52YWx1ZVswXTtcclxuICAgICAgICAgICAgcmV0dXJuIG47XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUgdmFsdWVzIG9mIGVhY2ggcGFpciBpbiBvcmRlciBieSBrZXkuXHJcbiAgICAgKiAgQHBhcmFtIGZpcnN0S2V5OiBNaW5pbXVtIGtleSB3aG9zZSBhc3NvY2lhdGVkIHZhbHVlIGlzIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKGZpcnN0S2V5KSB7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKGZpcnN0S2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIG4gPSBpdC5uZXh0KCk7XHJcbiAgICAgICAgICAgIGlmIChuLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgbi52YWx1ZSA9IG4udmFsdWVbMV07XHJcbiAgICAgICAgICAgIHJldHVybiBuO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwibWF4Tm9kZVNpemVcIiwge1xyXG4gICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvKiogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hpbGRyZW4vdmFsdWVzIGJlZm9yZSBub2RlcyB3aWxsIHNwbGl0LiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWF4Tm9kZVNpemU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIEdldHMgdGhlIGxvd2VzdCBrZXkgaW4gdGhlIHRyZWUuIENvbXBsZXhpdHk6IE8obG9nIHNpemUpICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcm9vdC5taW5LZXkoKTsgfTtcclxuICAgIC8qKiBHZXRzIHRoZSBoaWdoZXN0IGtleSBpbiB0aGUgdHJlZS4gQ29tcGxleGl0eTogTygxKSAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm1heEtleSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3Jvb3QubWF4S2V5KCk7IH07XHJcbiAgICAvKiogUXVpY2tseSBjbG9uZXMgdGhlIHRyZWUgYnkgbWFya2luZyB0aGUgcm9vdCBub2RlIGFzIHNoYXJlZC5cclxuICAgICAqICBCb3RoIGNvcGllcyByZW1haW4gZWRpdGFibGUuIFdoZW4geW91IG1vZGlmeSBlaXRoZXIgY29weSwgYW55XHJcbiAgICAgKiAgbm9kZXMgdGhhdCBhcmUgc2hhcmVkIChvciBwb3RlbnRpYWxseSBzaGFyZWQpIGJldHdlZW4gdGhlIHR3b1xyXG4gICAgICogIGNvcGllcyBhcmUgY2xvbmVkIHNvIHRoYXQgdGhlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCBvdGhlciBjb3BpZXMuXHJcbiAgICAgKiAgVGhpcyBpcyBrbm93biBhcyBjb3B5LW9uLXdyaXRlIGJlaGF2aW9yLCBvciBcImxhenkgY29weWluZ1wiLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgQlRyZWUodW5kZWZpbmVkLCB0aGlzLl9jb21wYXJlLCB0aGlzLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgcmVzdWx0Ll9yb290ID0gdGhpcy5fcm9vdDtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIFBlcmZvcm1zIGEgZ3JlZWR5IGNsb25lLCBpbW1lZGlhdGVseSBkdXBsaWNhdGluZyBhbnkgbm9kZXMgdGhhdCBhcmVcclxuICAgICAqICBub3QgY3VycmVudGx5IG1hcmtlZCBhcyBzaGFyZWQsIGluIG9yZGVyIHRvIGF2b2lkIG1hcmtpbmcgYW55XHJcbiAgICAgKiAgYWRkaXRpb25hbCBub2RlcyBhcyBzaGFyZWQuXHJcbiAgICAgKiAgQHBhcmFtIGZvcmNlIENsb25lIGFsbCBub2RlcywgZXZlbiBzaGFyZWQgb25lcy5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBCVHJlZSh1bmRlZmluZWQsIHRoaXMuX2NvbXBhcmUsIHRoaXMuX21heE5vZGVTaXplKTtcclxuICAgICAgICByZXN1bHQuX3Jvb3QgPSB0aGlzLl9yb290LmdyZWVkeUNsb25lKGZvcmNlKTtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYW4gYXJyYXkgZmlsbGVkIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSB0cmVlLCBzb3J0ZWQgYnkga2V5ICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChtYXhMZW5ndGgpIHtcclxuICAgICAgICBpZiAobWF4TGVuZ3RoID09PSB2b2lkIDApIHsgbWF4TGVuZ3RoID0gMHg3RkZGRkZGRjsgfVxyXG4gICAgICAgIHZhciBtaW4gPSB0aGlzLm1pbktleSgpLCBtYXggPSB0aGlzLm1heEtleSgpO1xyXG4gICAgICAgIGlmIChtaW4gIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2UobWluLCBtYXgsIHRydWUsIG1heExlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCBrZXlzLCBzb3J0ZWQgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5rZXlzQXJyYXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcclxuICAgICAgICB0aGlzLl9yb290LmZvclJhbmdlKHRoaXMubWluS2V5KCksIHRoaXMubWF4S2V5KCksIHRydWUsIGZhbHNlLCB0aGlzLCAwLCBmdW5jdGlvbiAoaywgdikgeyByZXN1bHRzLnB1c2goayk7IH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCB2YWx1ZXMsIHNvcnRlZCBieSBrZXkgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS52YWx1ZXNBcnJheSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7IHJlc3VsdHMucHVzaCh2KTsgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0cmVlJ3MgZGF0YSBiYXNlZCBvbiB0b0FycmF5KCkuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9BcnJheSgpLnRvU3RyaW5nKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFN0b3JlcyBhIGtleS12YWx1ZSBwYWlyIG9ubHkgaWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIHRyZWUuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGEgbmV3IGtleSB3YXMgYWRkZWRcclxuICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0SWZOb3RQcmVzZW50ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXQoa2V5LCB2YWx1ZSwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIGxhcmdlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5IChvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZSkuXHJcbiAgICAgKiBJZiBrZXkgPT09IHVuZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsb3dlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBvbiBldmVyeSBpdGVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWluUGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRIaWdoZXIoa2V5LCB0aGlzLl9jb21wYXJlLCBmYWxzZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IGtleSBsYXJnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dEhpZ2hlcktleSh1bmRlZmluZWQpIHJldHVybnMgdGhlIGxvd2VzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyS2V5ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHZhciBwID0gdGhpcy5uZXh0SGlnaGVyUGFpcihrZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gcCAmJiBwWzBdO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSAob3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUpLlxyXG4gICAgICogIElmIGtleSA9PT0gdW5kZWZpbmVkLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhpZ2hlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiAgICAgICAgYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgZWFjaCB0aW1lIHlvdSBjYWxsIHRoaXMgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubmV4dExvd2VyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWF4UGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRMb3dlcihrZXksIHRoaXMuX2NvbXBhcmUsIGZhbHNlLCByZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQga2V5IHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dExvd2VyS2V5KHVuZGVmaW5lZCkgcmV0dXJucyB0aGUgaGlnaGVzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0TG93ZXJLZXkgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgdmFyIHAgPSB0aGlzLm5leHRMb3dlclBhaXIoa2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIHAgJiYgcFswXTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdXBwbGllZCBrZXkgaWYgaXQgZXhpc3RzXHJcbiAgICAgKiAgb3IgdGhlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXh0IGxvd2VyIHBhaXIgb3RoZXJ3aXNlLiBJZiB0aGVyZSBpcyBub1xyXG4gICAgICogIG5leHQgbG93ZXIgcGFpciwgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycywgdG9cclxuICAgICAqICAgICAgICBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBlYWNoIHRpbWUgeW91IGNhbGwgdGhpcyBtZXRob2QuXHJcbiAgICAgKiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFBhaXJPck5leHRMb3dlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dExvd2VyKGtleSwgdGhpcy5fY29tcGFyZSwgdHJ1ZSwgcmV1c2VkQXJyYXkgfHwgW10pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cHBsaWVkIGtleSBpZiBpdCBleGlzdHNcclxuICAgICAqICBvciB0aGUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIG5leHQgbG93ZXIgcGFpciBvdGhlcndpc2UuIElmIHRoZXJlIGlzIG5vXHJcbiAgICAgKiAgbmV4dCBsb3dlciBwYWlyLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXHJcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgICAqIEBwYXJhbSByZXVzZWRBcnJheSBPcHRpb25hbCBhcnJheSB1c2VkIHJlcGVhdGVkbHkgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLCB0b1xyXG4gICAgICogICAgICAgIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IGVhY2ggdGltZSB5b3UgY2FsbCB0aGlzIG1ldGhvZC5cclxuICAgICAqICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIHRoaXMuX2NvbXBhcmUsIHRydWUsIHJldXNlZEFycmF5IHx8IFtdKTtcclxuICAgIH07XHJcbiAgICAvKiogRWRpdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIGtleSBpbiB0aGUgdHJlZSwgaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBrZXkgZXhpc3RlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5jaGFuZ2VJZlByZXNlbnQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShrZXksIGtleSwgdHJ1ZSwgZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuICh7IHZhbHVlOiB2YWx1ZSB9KTsgfSkgIT09IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBCdWlsZHMgYW4gYXJyYXkgb2YgcGFpcnMgZnJvbSB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGtleXMsIHNvcnRlZCBieSBrZXkuXHJcbiAgICAgKiBFYWNoIHJldHVybmVkIHBhaXIgaXMgYWxzbyBhbiBhcnJheTogcGFpclswXSBpcyB0aGUga2V5LCBwYWlyWzFdIGlzIHRoZSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBsb3cgVGhlIGZpcnN0IGtleSBpbiB0aGUgYXJyYXkgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGl0cyBwYWlyIHdpbGwgYmUgaW5jbHVkZWRcclxuICAgICAqICAgICAgICBpbiB0aGUgb3V0cHV0IGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuIE5vdGU6IGlmIHRoZVxyXG4gICAgICogICAgICAgIGBsb3dgIGtleSBpcyBwcmVzZW50LCBpdCBpcyBhbHdheXMgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC5cclxuICAgICAqIEBwYXJhbSBtYXhMZW5ndGggTGVuZ3RoIGxpbWl0LiBnZXRSYW5nZSB3aWxsIHN0b3Agc2Nhbm5pbmcgdGhlIHRyZWUgd2hlblxyXG4gICAgICogICAgICAgICAgICAgICAgICB0aGUgYXJyYXkgcmVhY2hlcyB0aGlzIHNpemUuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKHJlc3VsdC5sZW5ndGggKyBsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIG1heExlbmd0aCkge1xyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAweDNGRkZGRkY7IH1cclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChbaywgdl0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGggPiBtYXhMZW5ndGggPyBCcmVhayA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBhbGwgcGFpcnMgZnJvbSBhIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzLlxyXG4gICAgICogQHBhcmFtIHBhaXJzIFBhaXJzIHRvIGFkZCB0byB0aGlzIHRyZWUuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyxcclxuICAgICAqICAgICAgICBsYXRlciBwYWlycyBjdXJyZW50bHkgb3ZlcndyaXRlIGVhcmxpZXIgb25lcyAoZS5nLiBbWzAsMV0sWzAsN11dXHJcbiAgICAgKiAgICAgICAgYXNzb2NpYXRlcyAwIHdpdGggNy4pXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIHBhaXJzIHRoYXQgYWxyZWFkeSBleGlzdCAoaWYgZmFsc2UsXHJcbiAgICAgKiAgICAgICAgcGFpcnNbaV0gaXMgaWdub3JlZCB3aGVuIHRoZSBrZXkgcGFpcnNbaV1bMF0gYWxyZWFkeSBleGlzdHMuKVxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiBwYWlycyBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8ocGFpcnMubGVuZ3RoICogbG9nKHNpemUgKyBwYWlycy5sZW5ndGgpKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnMgPSBmdW5jdGlvbiAocGFpcnMsIG92ZXJ3cml0ZSkge1xyXG4gICAgICAgIHZhciBhZGRlZCA9IDA7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2V0KHBhaXJzW2ldWzBdLCBwYWlyc1tpXVsxXSwgb3ZlcndyaXRlKSlcclxuICAgICAgICAgICAgICAgIGFkZGVkKys7XHJcbiAgICAgICAgcmV0dXJuIGFkZGVkO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzLCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkga2V5LlxyXG4gICAgICogTm90ZTogdGhlIGNhbGxiYWNrIGBvbkZvdW5kYCBtdXN0IG5vdCBpbnNlcnQgb3IgcmVtb3ZlIGl0ZW1zIGluIHRoZVxyXG4gICAgICogY29sbGVjdGlvbi4gRG9pbmcgc28gbWF5IGNhdXNlIGluY29ycmVjdCBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlXHJcbiAgICAgKiBjYWxsYmFjayBhZnRlcndhcmQuXHJcbiAgICAgKiBAcGFyYW0gbG93IFRoZSBmaXJzdCBrZXkgc2Nhbm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFNjYW5uaW5nIHN0b3BzIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGBvbkZvdW5kYCBpcyBjYWxsZWQgZm9yXHJcbiAgICAgKiAgICAgICAgdGhhdCBmaW5hbCBwYWlyIGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuXHJcbiAgICAgKiBAcGFyYW0gb25Gb3VuZCBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLiBUaGlzXHJcbiAgICAgKiAgICAgICAgZnVuY3Rpb24gY2FuIHJldHVybiB7YnJlYWs6Un0gdG8gc3RvcCBlYXJseSB3aXRoIHJlc3VsdCBSLlxyXG4gICAgICogQHBhcmFtIGluaXRpYWxDb3VudGVyIEluaXRpYWwgdGhpcmQgYXJndW1lbnQgb2Ygb25Gb3VuZC4gVGhpcyB2YWx1ZVxyXG4gICAgICogICAgICAgIGluY3JlYXNlcyBieSBvbmUgZWFjaCB0aW1lIGBvbkZvdW5kYCBpcyBjYWxsZWQuIERlZmF1bHQ6IDBcclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIGZvdW5kLCBvciBSIGlmIHRoZSBjYWxsYmFjayByZXR1cm5lZFxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIHRvIHN0b3AgZWFybHkuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKG51bWJlciBvZiBpdGVtcyBzY2FubmVkICsgbG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBvbkZvdW5kLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciByID0gdGhpcy5fcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBmYWxzZSwgdGhpcywgaW5pdGlhbENvdW50ZXIgfHwgMCwgb25Gb3VuZCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyBhbmQgcG90ZW50aWFsbHkgbW9kaWZpZXMgdmFsdWVzIGZvciBhIHN1YnNlcXVlbmNlIG9mIGtleXMuXHJcbiAgICAgKiBOb3RlOiB0aGUgY2FsbGJhY2sgYG9uRm91bmRgIHNob3VsZCBpZGVhbGx5IGJlIGEgcHVyZSBmdW5jdGlvbi5cclxuICAgICAqICAgU3BlY2ZpY2FsbHksIGl0IG11c3Qgbm90IGluc2VydCBpdGVtcywgY2FsbCBjbG9uZSgpLCBvciBjaGFuZ2VcclxuICAgICAqICAgdGhlIGNvbGxlY3Rpb24gZXhjZXB0IHZpYSByZXR1cm4gdmFsdWU7IG91dC1vZi1iYW5kIGVkaXRpbmcgbWF5XHJcbiAgICAgKiAgIGNhdXNlIGFuIGV4Y2VwdGlvbiBvciBtYXkgY2F1c2UgaW5jb3JyZWN0IGRhdGEgdG8gYmUgc2VudCB0b1xyXG4gICAgICogICB0aGUgY2FsbGJhY2sgKGR1cGxpY2F0ZSBvciBtaXNzZWQgaXRlbXMpLiBJdCBtdXN0IG5vdCBjYXVzZSBhXHJcbiAgICAgKiAgIGNsb25lKCkgb2YgdGhlIGNvbGxlY3Rpb24sIG90aGVyd2lzZSB0aGUgY2xvbmUgY291bGQgYmUgbW9kaWZpZWRcclxuICAgICAqICAgYnkgY2hhbmdlcyByZXF1ZXN0ZWQgYnkgdGhlIGNhbGxiYWNrLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBJZiB0aGUgYGhpZ2hgIGtleSBpcyBwcmVzZW50LCBgb25Gb3VuZGAgaXMgY2FsbGVkIGZvclxyXG4gICAgICogICAgICAgIHRoYXQgZmluYWwgcGFpciBpZiBhbmQgb25seSBpZiB0aGlzIHBhcmFtZXRlciBpcyB0cnVlLlxyXG4gICAgICogQHBhcmFtIG9uRm91bmQgQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBmb3IgZWFjaCBrZXktdmFsdWUgcGFpci4gVGhpc1xyXG4gICAgICogICAgICAgIGZ1bmN0aW9uIGNhbiByZXR1cm4gYHt2YWx1ZTp2fWAgdG8gY2hhbmdlIHRoZSB2YWx1ZSBhc3NvY2lhdGVkXHJcbiAgICAgKiAgICAgICAgd2l0aCB0aGUgY3VycmVudCBrZXksIGB7ZGVsZXRlOnRydWV9YCB0byBkZWxldGUgdGhlIGN1cnJlbnQgcGFpcixcclxuICAgICAqICAgICAgICBge2JyZWFrOlJ9YCB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIsIG9yIGl0IGNhbiByZXR1cm4gbm90aGluZ1xyXG4gICAgICogICAgICAgICh1bmRlZmluZWQgb3Ige30pIHRvIGNhdXNlIG5vIGVmZmVjdCBhbmQgY29udGludWUgaXRlcmF0aW5nLlxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIGNhbiBiZSBjb21iaW5lZCB3aXRoIG9uZSBvZiB0aGUgb3RoZXIgdHdvIGNvbW1hbmRzLlxyXG4gICAgICogICAgICAgIFRoZSB0aGlyZCBhcmd1bWVudCBgY291bnRlcmAgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBpdGVyYXRlZFxyXG4gICAgICogICAgICAgIHByZXZpb3VzbHk7IGl0IGVxdWFscyAwIHdoZW4gYG9uRm91bmRgIGlzIGNhbGxlZCB0aGUgZmlyc3QgdGltZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIHNjYW5uZWQsIG9yIFIgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkXHJcbiAgICAgKiAgICAgICAgYHticmVhazpSfWAgdG8gc3RvcCBlYXJseS5cclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIGl0ZW1zIHNjYW5uZWQgKyBsb2cgc2l6ZSlcclxuICAgICAqICAgTm90ZTogaWYgdGhlIHRyZWUgaGFzIGJlZW4gY2xvbmVkIHdpdGggY2xvbmUoKSwgYW55IHNoYXJlZFxyXG4gICAgICogICBub2RlcyBhcmUgY29waWVkIGJlZm9yZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBUaGlzIHRha2VzIE8obikgdGltZVxyXG4gICAgICogICB3aGVyZSBuIGlzIHByb3BvcnRpb25hbCB0byB0aGUgYW1vdW50IG9mIHNoYXJlZCBkYXRhIHNjYW5uZWQuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICB2YXIgcm9vdCA9IHRoaXMuX3Jvb3Q7XHJcbiAgICAgICAgaWYgKHJvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5jbG9uZSgpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciByID0gcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCB0cnVlLCB0aGlzLCBpbml0aWFsQ291bnRlciB8fCAwLCBvbkZvdW5kKTtcclxuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB2YXIgaXNTaGFyZWQgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChyb290LmtleXMubGVuZ3RoIDw9IDEgJiYgIXJvb3QuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICBpc1NoYXJlZCB8fCAoaXNTaGFyZWQgPSByb290LmlzU2hhcmVkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5rZXlzLmxlbmd0aCA9PT0gMCA/IEVtcHR5TGVhZiA6XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5jaGlsZHJlblswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBJZiBhbnkgYW5jZXN0b3Igb2YgdGhlIG5ldyByb290IHdhcyBzaGFyZWQsIHRoZSBuZXcgcm9vdCBtdXN0IGFsc28gYmUgc2hhcmVkXHJcbiAgICAgICAgICAgIGlmIChpc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAgICAgcm9vdC5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqIFNhbWUgYXMgYGVkaXRSYW5nZWAgZXhjZXB0IHRoYXQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCBmb3IgYWxsIHBhaXJzLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVkaXRBbGwgPSBmdW5jdGlvbiAob25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIHJhbmdlIG9mIGtleS12YWx1ZSBwYWlycyBmcm9tIHRoZSBCKyB0cmVlLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBTcGVjaWZpZXMgd2hldGhlciB0aGUgYGhpZ2hgIGtleSwgaWYgcHJlc2VudCwgaXMgZGVsZXRlZC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIHRoYXQgd2VyZSBkZWxldGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSArIG51bWJlciBvZiBpdGVtcyBkZWxldGVkKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGVsZXRlUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBEZWxldGVSYW5nZSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIERlbGV0ZXMgYSBzZXJpZXMgb2Yga2V5cyBmcm9tIHRoZSBjb2xsZWN0aW9uLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZUtleXMgPSBmdW5jdGlvbiAoa2V5cykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCByID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZShrZXlzW2ldKSlcclxuICAgICAgICAgICAgICAgIHIrKztcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgIH07XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImhlaWdodFwiLCB7XHJcbiAgICAgICAgLyoqIEdldHMgdGhlIGhlaWdodCBvZiB0aGUgdHJlZTogdGhlIG51bWJlciBvZiBpbnRlcm5hbCBub2RlcyBiZXR3ZWVuIHRoZVxyXG4gICAgICAgICAqICBCVHJlZSBvYmplY3QgYW5kIGl0cyBsZWFmIG5vZGVzICh6ZXJvIGlmIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBub2RlcykuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5fcm9vdDtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IC0xO1xyXG4gICAgICAgICAgICB3aGlsZSAobm9kZSkge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0Kys7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5pc0xlYWYgPyB1bmRlZmluZWQgOiBub2RlLmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIE1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5IHRvIGVuc3VyZSBpdCBpcyBub3QgYWNjaWRlbnRhbGx5IG1vZGlmaWVkLlxyXG4gICAgICogIEZyZWV6aW5nIGRvZXMgbm90IGhhdmUgdG8gYmUgcGVybWFuZW50OyB1bmZyZWV6ZSgpIHJldmVyc2VzIHRoZSBlZmZlY3QuXHJcbiAgICAgKiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgcmVwbGFjaW5nIG11dGF0b3IgZnVuY3Rpb25zIHdpdGggYSBmdW5jdGlvblxyXG4gICAgICogIHRoYXQgdGhyb3dzIGFuIEVycm9yLiBDb21wYXJlZCB0byB1c2luZyBhIHByb3BlcnR5IChlLmcuIHRoaXMuaXNGcm96ZW4pXHJcbiAgICAgKiAgdGhpcyBpbXBsZW1lbnRhdGlvbiBnaXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgaW4gbm9uLWZyb3plbiBCVHJlZXMuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mcmVlemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHQgPSB0aGlzO1xyXG4gICAgICAgIC8vIE5vdGU6IGFsbCBvdGhlciBtdXRhdG9ycyB1bHRpbWF0ZWx5IGNhbGwgc2V0KCkgb3IgZWRpdFJhbmdlKCkgXHJcbiAgICAgICAgLy8gICAgICAgc28gd2UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aG9zZSBvdGhlcnMuXHJcbiAgICAgICAgdC5jbGVhciA9IHQuc2V0ID0gdC5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byBtb2RpZnkgYSBmcm96ZW4gQlRyZWVcIik7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICAvKiogRW5zdXJlcyBtdXRhdGlvbnMgYXJlIGFsbG93ZWQsIHJldmVyc2luZyB0aGUgZWZmZWN0IG9mIGZyZWV6ZSgpLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLnVuZnJlZXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmUgXCJUaGUgb3BlcmFuZCBvZiBhICdkZWxldGUnIG9wZXJhdG9yIG11c3QgYmUgb3B0aW9uYWwuXCJcclxuICAgICAgICAvLyAgICAgICAgICAgICh3cm9uZzogZGVsZXRlIGRvZXMgbm90IGFmZmVjdCB0aGUgcHJvdG90eXBlLilcclxuICAgICAgICBkZWxldGUgdGhpcy5jbGVhcjtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgZGVsZXRlIHRoaXMuc2V0O1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBkZWxldGUgdGhpcy5lZGl0UmFuZ2U7XHJcbiAgICB9O1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0Zyb3plblwiLCB7XHJcbiAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdHJlZSBhcHBlYXJzIHRvIGJlIGZyb3plbi4gKi9cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoJ2VkaXRSYW5nZScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIC8qKiBTY2FucyB0aGUgdHJlZSBmb3Igc2lnbnMgb2Ygc2VyaW91cyBidWdzIChlLmcuIHRoaXMuc2l6ZSBkb2Vzbid0IG1hdGNoXHJcbiAgICAgKiAgbnVtYmVyIG9mIGVsZW1lbnRzLCBpbnRlcm5hbCBub2RlcyBub3QgY2FjaGluZyBtYXggZWxlbWVudCBwcm9wZXJseS4uLilcclxuICAgICAqICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIG5vZGVzKSwgaS5lLiBPKHNpemUpLiBUaGlzIG1ldGhvZFxyXG4gICAgICogIHNraXBzIHRoZSBtb3N0IGV4cGVuc2l2ZSB0ZXN0IC0gd2hldGhlciBhbGwga2V5cyBhcmUgc29ydGVkIC0gYnV0IGl0XHJcbiAgICAgKiAgZG9lcyBjaGVjayB0aGF0IG1heEtleSgpIG9mIHRoZSBjaGlsZHJlbiBvZiBpbnRlcm5hbCBub2RlcyBhcmUgc29ydGVkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHNpemUgPSB0aGlzLl9yb290LmNoZWNrVmFsaWQoMCwgdGhpcywgMCk7XHJcbiAgICAgICAgY2hlY2soc2l6ZSA9PT0gdGhpcy5zaXplLCBcInNpemUgbWlzbWF0Y2g6IGNvdW50ZWQgXCIsIHNpemUsIFwiYnV0IHN0b3JlZFwiLCB0aGlzLnNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCVHJlZTtcclxufSgpKTtcclxuZXhwb3J0cy5kZWZhdWx0ID0gQlRyZWU7XHJcbi8qKiBBIFR5cGVTY3JpcHQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2ltcGx5IHJldHVybnMgaXRzIGFyZ3VtZW50LCB0eXBlZCBhc1xyXG4gKiAgYElTb3J0ZWRTZXQ8Sz5gIGlmIHRoZSBCVHJlZSBpbXBsZW1lbnRzIGl0LCBhcyBpdCBkb2VzIGlmIGBWIGV4dGVuZHMgdW5kZWZpbmVkYC5cclxuICogIElmIGBWYCBjYW5ub3QgYmUgYHVuZGVmaW5lZGAsIGl0IHJldHVybnMgYHVua25vd25gIGluc3RlYWQuIE9yIGF0IGxlYXN0LCB0aGF0XHJcbiAqICB3YXMgdGhlIGludGVudGlvbiwgYnV0IFR5cGVTY3JpcHQgaXMgYWN0aW5nIHdlaXJkIGFuZCBtYXkgcmV0dXJuIGBJU29ydGVkU2V0PEs+YFxyXG4gKiAgZXZlbiBpZiBgVmAgY2FuJ3QgYmUgYHVuZGVmaW5lZGAgKGRpc2N1c3Npb246IGJ0cmVlLXR5cGVzY3JpcHQgaXNzdWUgIzE0KSAqL1xyXG5mdW5jdGlvbiBhc1NldChidHJlZSkge1xyXG4gICAgcmV0dXJuIGJ0cmVlO1xyXG59XHJcbmV4cG9ydHMuYXNTZXQgPSBhc1NldDtcclxuaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpIC8vIGl0ZXJhdG9yIGlzIGVxdWl2YWxlbnQgdG8gZW50cmllcygpXHJcbiAgICBCVHJlZS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEJUcmVlLnByb3RvdHlwZS5lbnRyaWVzO1xyXG5CVHJlZS5wcm90b3R5cGUud2hlcmUgPSBCVHJlZS5wcm90b3R5cGUuZmlsdGVyO1xyXG5CVHJlZS5wcm90b3R5cGUuc2V0UmFuZ2UgPSBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnM7XHJcbkJUcmVlLnByb3RvdHlwZS5hZGQgPSBCVHJlZS5wcm90b3R5cGUuc2V0OyAvLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIElTZXRTaW5rPEs+XHJcbmZ1bmN0aW9uIGl0ZXJhdG9yKG5leHQpIHtcclxuICAgIGlmIChuZXh0ID09PSB2b2lkIDApIHsgbmV4dCA9IChmdW5jdGlvbiAoKSB7IHJldHVybiAoeyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0pOyB9KTsgfVxyXG4gICAgdmFyIHJlc3VsdCA9IHsgbmV4dDogbmV4dCB9O1xyXG4gICAgaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpXHJcbiAgICAgICAgcmVzdWx0W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKiogTGVhZiBub2RlIC8gYmFzZSBjbGFzcy4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbnZhciBCTm9kZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJOb2RlKGtleXMsIHZhbHVlcykge1xyXG4gICAgICAgIGlmIChrZXlzID09PSB2b2lkIDApIHsga2V5cyA9IFtdOyB9XHJcbiAgICAgICAgdGhpcy5rZXlzID0ga2V5cztcclxuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcyB8fCB1bmRlZlZhbHM7XHJcbiAgICAgICAgdGhpcy5pc1NoYXJlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCTm9kZS5wcm90b3R5cGUsIFwiaXNMZWFmXCIsIHtcclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZDsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBTaGFyZWQgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5tYXhLZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5c1t0aGlzLmtleXMubGVuZ3RoIC0gMV07XHJcbiAgICB9O1xyXG4gICAgLy8gSWYga2V5IG5vdCBmb3VuZCwgcmV0dXJucyBpXmZhaWxYb3Igd2hlcmUgaSBpcyB0aGUgaW5zZXJ0aW9uIGluZGV4LlxyXG4gICAgLy8gQ2FsbGVycyB0aGF0IGRvbid0IGNhcmUgd2hldGhlciB0aGVyZSB3YXMgYSBtYXRjaCB3aWxsIHNldCBmYWlsWG9yPTAuXHJcbiAgICBCTm9kZS5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIChrZXksIGZhaWxYb3IsIGNtcCkge1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIHZhciBsbyA9IDAsIGhpID0ga2V5cy5sZW5ndGgsIG1pZCA9IGhpID4+IDE7XHJcbiAgICAgICAgd2hpbGUgKGxvIDwgaGkpIHtcclxuICAgICAgICAgICAgdmFyIGMgPSBjbXAoa2V5c1ttaWRdLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAoYyA8IDApXHJcbiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPiAwKSAvLyBrZXkgPCBrZXlzW21pZF1cclxuICAgICAgICAgICAgICAgIGhpID0gbWlkO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pZDtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjIGlzIE5hTiBvciBvdGhlcndpc2UgaW52YWxpZFxyXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbWlkID0gKGxvICsgaGkpID4+IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtaWQgXiBmYWlsWG9yO1xyXG4gICAgICAgIC8vIFVucm9sbGVkIHZlcnNpb246IGJlbmNobWFya3Mgc2hvdyBzYW1lIHNwZWVkLCBub3Qgd29ydGggdXNpbmdcclxuICAgICAgICAvKnZhciBpID0gMSwgYzogbnVtYmVyID0gMCwgc3VtID0gMDtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgICAgaSA9IDM7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gOCkge1xyXG4gICAgICAgICAgICBpID0gNztcclxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDE2KSB7XHJcbiAgICAgICAgICAgICAgaSA9IDE1O1xyXG4gICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+PSAzMikge1xyXG4gICAgICAgICAgICAgICAgaSA9IDMxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDY0KSB7XHJcbiAgICAgICAgICAgICAgICAgIGkgPSAxMjc7XHJcbiAgICAgICAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDY0IDogLTY0O1xyXG4gICAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMzIgOiAtMzI7XHJcbiAgICAgICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMTYgOiAtMTY7XHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gOCA6IC04O1xyXG4gICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDQgOiAtNDtcclxuICAgICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAyIDogLTI7XHJcbiAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMSA6IC0xO1xyXG4gICAgICAgIGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDE7XHJcbiAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgaWYgKGMgPCAwKSB7XHJcbiAgICAgICAgICArK2k7XHJcbiAgICAgICAgICBjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxO1xyXG4gICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzdW0gIT09IHN1bSkge1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgIHJldHVybiBrZXlzLmxlbmd0aCBeIGZhaWxYb3I7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjID09PSAwID8gaSA6IGkgXiBmYWlsWG9yOyovXHJcbiAgICB9O1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIExlYWYgTm9kZTogbWlzYyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmtleXNbMF07XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLm1pblBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICBpZiAodGhpcy5rZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1swXTtcclxuICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzWzBdO1xyXG4gICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWF4UGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHZhciBsYXN0SW5kZXggPSB0aGlzLmtleXMubGVuZ3RoIC0gMTtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tsYXN0SW5kZXhdO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzFdID0gdGhpcy52YWx1ZXNbbGFzdEluZGV4XTtcclxuICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZSh0aGlzLmtleXMuc2xpY2UoMCksIHYgPT09IHVuZGVmVmFscyA/IHYgOiB2LnNsaWNlKDApKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ3JlZWR5Q2xvbmUgPSBmdW5jdGlvbiAoZm9yY2UpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NoYXJlZCAmJiAhZm9yY2UgPyB0aGlzIDogdGhpcy5jbG9uZSgpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUsIHRyZWUpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCB0cmVlLl9jb21wYXJlKTtcclxuICAgICAgICByZXR1cm4gaSA8IDAgPyBkZWZhdWx0VmFsdWUgOiB0aGlzLnZhbHVlc1tpXTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgLTEsIGNvbXBhcmUpO1xyXG4gICAgICAgIHZhciBpbmRleE9yTG93ZXIgPSBpIDwgMCA/IH5pIC0gMSA6IChpbmNsdXNpdmUgPyBpIDogaSAtIDEpO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPj0gMCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzW2luZGV4T3JMb3dlcl07XHJcbiAgICAgICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCBjb21wYXJlKTtcclxuICAgICAgICB2YXIgaW5kZXhPckxvd2VyID0gaSA8IDAgPyB+aSA6IChpbmNsdXNpdmUgPyBpIDogaSArIDEpO1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPCBrZXlzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGtleXNbaW5kZXhPckxvd2VyXTtcclxuICAgICAgICAgICAgcmV1c2VkQXJyYXlbMV0gPSB0aGlzLnZhbHVlc1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIHZMID0gdGhpcy52YWx1ZXMubGVuZ3RoO1xyXG4gICAgICAgIGNoZWNrKHRoaXMudmFsdWVzID09PSB1bmRlZlZhbHMgPyBrTCA8PSB2TCA6IGtMID09PSB2TCwgXCJrZXlzL3ZhbHVlcyBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXCIsIGRlcHRoLCBcIndpdGggbGVuZ3Roc1wiLCBrTCwgdkwsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGNoZWNrIGZvciBcIm5vZGUgdG9vIHNtYWxsXCIgYmVjYXVzZSBzb21ldGltZXMgYSBub2RlXHJcbiAgICAgICAgLy8gY2FuIGxlZ2l0aW1hdGVseSBoYXZlIHNpemUgMS4gVGhpcyBvY2N1cnMgaWYgdGhlcmUgaXMgYSBiYXRjaCBcclxuICAgICAgICAvLyBkZWxldGlvbiwgbGVhdmluZyBhIG5vZGUgb2Ygc2l6ZSAxLCBhbmQgdGhlIHNpYmxpbmdzIGFyZSBmdWxsIHNvXHJcbiAgICAgICAgLy8gaXQgY2FuJ3QgYmUgbWVyZ2VkIHdpdGggYWRqYWNlbnQgbm9kZXMuIEhvd2V2ZXIsIHRoZSBwYXJlbnQgd2lsbFxyXG4gICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBhdmVyYWdlIG5vZGUgc2l6ZSBpcyBhdCBsZWFzdCBoYWxmIG9mIHRoZSBtYXhpbXVtLlxyXG4gICAgICAgIGNoZWNrKGRlcHRoID09IDAgfHwga0wgPiAwLCBcImVtcHR5IGxlYWYgYXQgZGVwdGhcIiwgZGVwdGgsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBrTDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlLCB0cmVlKSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAtMSwgdHJlZS5fY29tcGFyZSk7XHJcbiAgICAgICAgaWYgKGkgPCAwKSB7XHJcbiAgICAgICAgICAgIC8vIGtleSBkb2VzIG5vdCBleGlzdCB5ZXRcclxuICAgICAgICAgICAgaSA9IH5pO1xyXG4gICAgICAgICAgICB0cmVlLl9zaXplKys7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoIDwgdHJlZS5fbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbGVhZiBub2RlIGlzIGZ1bGwgYW5kIG11c3Qgc3BsaXRcclxuICAgICAgICAgICAgICAgIHZhciBuZXdSaWdodFNpYmxpbmcgPSB0aGlzLnNwbGl0T2ZmUmlnaHRTaWRlKCksIHRhcmdldCA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IHRoaXMua2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpIC09IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Lmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEtleSBhbHJlYWR5IGV4aXN0c1xyXG4gICAgICAgICAgICBpZiAob3ZlcndyaXRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgLy8gdXN1YWxseSB0aGlzIGlzIGEgbm8tb3AsIGJ1dCBzb21lIHVzZXJzIG1heSB3aXNoIHRvIGVkaXQgdGhlIGtleVxyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXlzW2ldID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXNbaV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5yZWlmeVZhbHVlcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscylcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5pbnNlcnRJbkxlYWYgPSBmdW5jdGlvbiAoaSwga2V5LCB2YWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHRoaXMua2V5cy5zcGxpY2UoaSwgMCwga2V5KTtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICB3aGlsZSAodW5kZWZWYWxzLmxlbmd0aCA8IHRyZWUuX21heE5vZGVTaXplKVxyXG4gICAgICAgICAgICAgICAgdW5kZWZWYWxzLnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB1bmRlZlZhbHMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAwLCB2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlcztcclxuICAgICAgICBpZiAocmhzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmICh2ICE9PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICB2LnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHYgPSB0aGlzLnJlaWZ5VmFsdWVzKCk7XHJcbiAgICAgICAgICAgIHYucHVzaChyaHMudmFsdWVzLnNoaWZ0KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmtleXMucHVzaChyaHMua2V5cy5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUudGFrZUZyb21MZWZ0ID0gZnVuY3Rpb24gKGxocykge1xyXG4gICAgICAgIC8vIFJlbWluZGVyOiBwYXJlbnQgbm9kZSBtdXN0IHVwZGF0ZSBpdHMgY29weSBvZiBrZXkgZm9yIHRoaXMgbm9kZVxyXG4gICAgICAgIC8vIGFzc2VydDogbmVpdGhlciBub2RlIGlzIHNoYXJlZFxyXG4gICAgICAgIC8vIGFzc2VydCByaHMua2V5cy5sZW5ndGggPiAobWF4Tm9kZVNpemUvMiAmJiB0aGlzLmtleXMubGVuZ3RoPG1heE5vZGVTaXplKVxyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgaWYgKGxocy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICBpZiAodiAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgdi51bnNoaWZ0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2ID0gdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICB2LnVuc2hpZnQobGhzLnZhbHVlcy5wb3AoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMua2V5cy51bnNoaWZ0KGxocy5rZXlzLnBvcCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgdmFyIGhhbGYgPSB0aGlzLmtleXMubGVuZ3RoID4+IDEsIGtleXMgPSB0aGlzLmtleXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzID8gdW5kZWZWYWxzIDogdGhpcy52YWx1ZXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHJldHVybiBuZXcgQk5vZGUoa2V5cywgdmFsdWVzKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpIHtcclxuICAgICAgICB2YXIgY21wID0gdHJlZS5fY29tcGFyZTtcclxuICAgICAgICB2YXIgaUxvdywgaUhpZ2g7XHJcbiAgICAgICAgaWYgKGhpZ2ggPT09IGxvdykge1xyXG4gICAgICAgICAgICBpZiAoIWluY2x1ZGVIaWdoKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgICAgICBpSGlnaCA9IChpTG93ID0gdGhpcy5pbmRleE9mKGxvdywgLTEsIGNtcCkpICsgMTtcclxuICAgICAgICAgICAgaWYgKGlMb3cgPCAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCk7XHJcbiAgICAgICAgICAgIGlIaWdoID0gdGhpcy5pbmRleE9mKGhpZ2gsIC0xLCBjbXApO1xyXG4gICAgICAgICAgICBpZiAoaUhpZ2ggPCAwKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2ggPSB+aUhpZ2g7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGluY2x1ZGVIaWdoID09PSB0cnVlKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2grKztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xyXG4gICAgICAgIGlmIChvbkZvdW5kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGlMb3c7IGkgPCBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbkZvdW5kKGtleSwgdmFsdWVzW2ldLCBjb3VudCsrKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0TW9kZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBrZXlzW2ldIHx8IHRoaXMuaXNTaGFyZWQgPT09IHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCVHJlZSBpbGxlZ2FsbHkgY2hhbmdlZCBvciBjbG9uZWQgaW4gZWRpdFJhbmdlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlcyAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUuX3NpemUtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlIaWdoLS07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0Lmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSByZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5icmVhayAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY291bnQgKz0gaUhpZ2ggLSBpTG93O1xyXG4gICAgICAgIHJldHVybiBjb3VudDtcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBlbnRpcmUgY29udGVudHMgb2YgcmlnaHQtaGFuZCBzaWJsaW5nIChyaHMgaXMgbGVmdCB1bmNoYW5nZWQpICovXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgXykge1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoLmFwcGx5KHRoaXMua2V5cywgcmhzLmtleXMpO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmIChyaHMudmFsdWVzID09PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsIHJocy5yZWlmeVZhbHVlcygpKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gQk5vZGU7XHJcbn0oKSk7XHJcbi8qKiBJbnRlcm5hbCBub2RlIChub24tbGVhZiBub2RlKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxudmFyIEJOb2RlSW50ZXJuYWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQk5vZGVJbnRlcm5hbCwgX3N1cGVyKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBtYXJrIGBjaGlsZHJlbmAgYXMgc2hhcmVkLCBzbyBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlclxyXG4gICAgICogdG8gZW5zdXJlIGNoaWxkcmVuIGFyZSBlaXRoZXIgbWFya2VkIHNoYXJlZCwgb3IgYXJlbid0IGluY2x1ZGVkIGluIGFub3RoZXIgdHJlZS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gQk5vZGVJbnRlcm5hbChjaGlsZHJlbiwga2V5cykge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgaWYgKCFrZXlzKSB7XHJcbiAgICAgICAgICAgIGtleXMgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGtleXNbaV0gPSBjaGlsZHJlbltpXS5tYXhLZXkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBrZXlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5zbGljZSgwKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICBjaGlsZHJlbltpXS5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZUludGVybmFsKGNoaWxkcmVuLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTaGFyZWQgJiYgIWZvcmNlKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB2YXIgbnUgPSBuZXcgQk5vZGVJbnRlcm5hbCh0aGlzLmNoaWxkcmVuLnNsaWNlKDApLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIG51LmNoaWxkcmVuW2ldID0gbnUuY2hpbGRyZW5baV0uZ3JlZWR5Q2xvbmUoZm9yY2UpO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5taW5LZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluS2V5KCk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWluUGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuWzBdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLm1heFBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgdHJlZS5fY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gaSA8IGNoaWxkcmVuLmxlbmd0aCA/IGNoaWxkcmVuW2ldLmdldChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkgOiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICBpZiAoaSA+PSBjaGlsZHJlbi5sZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5nZXRQYWlyT3JOZXh0TG93ZXIoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KTtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgaSA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2kgLSAxXS5tYXhQYWlyKHJldXNlZEFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0SGlnaGVyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiwgbGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgIGlmIChpID49IGxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gY2hpbGRyZW5baV0uZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBpIDwgbGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baSArIDFdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIGNMID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgY2hlY2soa0wgPT09IGNMLCBcImtleXMvY2hpbGRyZW4gbGVuZ3RoIG1pc21hdGNoOiBkZXB0aFwiLCBkZXB0aCwgXCJsZW5ndGhzXCIsIGtMLCBjTCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICBjaGVjayhrTCA+IDEgfHwgZGVwdGggPiAwLCBcImludGVybmFsIG5vZGUgaGFzIGxlbmd0aFwiLCBrTCwgXCJhdCBkZXB0aFwiLCBkZXB0aCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICB2YXIgc2l6ZSA9IDAsIGMgPSB0aGlzLmNoaWxkcmVuLCBrID0gdGhpcy5rZXlzLCBjaGlsZFNpemUgPSAwO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY0w7IGkrKykge1xyXG4gICAgICAgICAgICBzaXplICs9IGNbaV0uY2hlY2tWYWxpZChkZXB0aCArIDEsIHRyZWUsIGJhc2VJbmRleCArIHNpemUpO1xyXG4gICAgICAgICAgICBjaGlsZFNpemUgKz0gY1tpXS5rZXlzLmxlbmd0aDtcclxuICAgICAgICAgICAgY2hlY2soc2l6ZSA+PSBjaGlsZFNpemUsIFwid3RmXCIsIGJhc2VJbmRleCk7IC8vIG5vIHdheSB0aGlzIHdpbGwgZXZlciBmYWlsXHJcbiAgICAgICAgICAgIGNoZWNrKGkgPT09IDAgfHwgY1tpIC0gMV0uY29uc3RydWN0b3IgPT09IGNbaV0uY29uc3RydWN0b3IsIFwidHlwZSBtaXNtYXRjaCwgYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoY1tpXS5tYXhLZXkoKSAhPSBrW2ldKVxyXG4gICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwia2V5c1tcIiwgaSwgXCJdID1cIiwga1tpXSwgXCJpcyB3cm9uZywgc2hvdWxkIGJlIFwiLCBjW2ldLm1heEtleSgpLCBcImF0IGRlcHRoXCIsIGRlcHRoLCBcImJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoIShpID09PSAwIHx8IHRyZWUuX2NvbXBhcmUoa1tpIC0gMV0sIGtbaV0pIDwgMCkpXHJcbiAgICAgICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJzb3J0IHZpb2xhdGlvbiBhdCBkZXB0aFwiLCBkZXB0aCwgXCJpbmRleFwiLCBpLCBcImtleXNcIiwga1tpIC0gMV0sIGtbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyAyMDIwLzA4OiBCVHJlZSBkb2Vzbid0IGFsd2F5cyBhdm9pZCBncm9zc2x5IHVuZGVyc2l6ZWQgbm9kZXMsXHJcbiAgICAgICAgLy8gYnV0IEFGQUlLIHN1Y2ggbm9kZXMgYXJlIHByZXR0eSBoYXJtbGVzcywgc28gYWNjZXB0IHRoZW0uXHJcbiAgICAgICAgdmFyIHRvb2ZldyA9IGNoaWxkU2l6ZSA9PT0gMDsgLy8gY2hpbGRTaXplIDwgKHRyZWUubWF4Tm9kZVNpemUgPj4gMSkqY0w7XHJcbiAgICAgICAgaWYgKHRvb2ZldyB8fCBjaGlsZFNpemUgPiB0cmVlLm1heE5vZGVTaXplICogY0wpXHJcbiAgICAgICAgICAgIGNoZWNrKGZhbHNlLCB0b29mZXcgPyBcInRvbyBmZXdcIiA6IFwidG9vIG1hbnlcIiwgXCJjaGlsZHJlbiAoXCIsIGNoaWxkU2l6ZSwgc2l6ZSwgXCIpIGF0IGRlcHRoXCIsIGRlcHRoLCBcIm1heE5vZGVTaXplOlwiLCB0cmVlLm1heE5vZGVTaXplLCBcImNoaWxkcmVuLmxlbmd0aDpcIiwgY0wsIFwiYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBjID0gdGhpcy5jaGlsZHJlbiwgbWF4ID0gdHJlZS5fbWF4Tm9kZVNpemUsIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGkgPSBNYXRoLm1pbih0aGlzLmluZGV4T2Yoa2V5LCAwLCBjbXApLCBjLmxlbmd0aCAtIDEpLCBjaGlsZCA9IGNbaV07XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICBjW2ldID0gY2hpbGQgPSBjaGlsZC5jbG9uZSgpO1xyXG4gICAgICAgIGlmIChjaGlsZC5rZXlzLmxlbmd0aCA+PSBtYXgpIHtcclxuICAgICAgICAgICAgLy8gY2hpbGQgaXMgZnVsbDsgaW5zZXJ0aW5nIGFueXRoaW5nIGVsc2Ugd2lsbCBjYXVzZSBhIHNwbGl0LlxyXG4gICAgICAgICAgICAvLyBTaGlmdGluZyBhbiBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpYmxpbmcgbWF5IGF2b2lkIGEgc3BsaXQuXHJcbiAgICAgICAgICAgIC8vIFdlIGNhbiBkbyBhIHNoaWZ0IGlmIHRoZSBhZGphY2VudCBub2RlIGlzIG5vdCBmdWxsIGFuZCBpZiB0aGVcclxuICAgICAgICAgICAgLy8gY3VycmVudCBrZXkgY2FuIHN0aWxsIGJlIHBsYWNlZCBpbiB0aGUgc2FtZSBub2RlIGFmdGVyIHRoZSBzaGlmdC5cclxuICAgICAgICAgICAgdmFyIG90aGVyO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDAgJiYgKG90aGVyID0gY1tpIC0gMV0pLmtleXMubGVuZ3RoIDwgbWF4ICYmIGNtcChjaGlsZC5rZXlzWzBdLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSAtIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21SaWdodChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXNbaSAtIDFdID0gb3RoZXIubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKG90aGVyID0gY1tpICsgMV0pICE9PSB1bmRlZmluZWQgJiYgb3RoZXIua2V5cy5sZW5ndGggPCBtYXggJiYgY21wKGNoaWxkLm1heEtleSgpLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSArIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21MZWZ0KGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNbaV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkLnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUsIHRyZWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5rZXlzW2ldID0gY2hpbGQubWF4S2V5KCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy8gVGhlIGNoaWxkIGhhcyBzcGxpdCBhbmQgYHJlc3VsdGAgaXMgYSBuZXcgcmlnaHQgY2hpbGQuLi4gZG9lcyBpdCBmaXQ/XHJcbiAgICAgICAgaWYgKHRoaXMua2V5cy5sZW5ndGggPCBtYXgpIHsgLy8geWVzXHJcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0KGkgKyAxLCByZXN1bHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIG5vLCB3ZSBtdXN0IHNwbGl0IGFsc29cclxuICAgICAgICAgICAgdmFyIG5ld1JpZ2h0U2libGluZyA9IHRoaXMuc3BsaXRPZmZSaWdodFNpZGUoKSwgdGFyZ2V0ID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGNtcChyZXN1bHQubWF4S2V5KCksIHRoaXMubWF4S2V5KCkpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgaSAtPSB0aGlzLmtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRhcmdldC5pbnNlcnQoaSArIDEsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBgY2hpbGRgIGF0IGluZGV4IGBpYC5cclxuICAgICAqIFRoaXMgZG9lcyBub3QgbWFyayBgY2hpbGRgIGFzIHNoYXJlZCwgc28gaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXJcclxuICAgICAqIHRvIGVuc3VyZSB0aGF0IGVpdGhlciBjaGlsZCBpcyBtYXJrZWQgc2hhcmVkLCBvciBpdCBpcyBub3QgaW5jbHVkZWQgaW4gYW5vdGhlciB0cmVlLlxyXG4gICAgICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbiAoaSwgY2hpbGQpIHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBjaGlsZCk7XHJcbiAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAwLCBjaGlsZC5tYXhLZXkoKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGxpdCB0aGlzIG5vZGUuXHJcbiAgICAgKiBNb2RpZmllcyB0aGlzIHRvIHJlbW92ZSB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIGl0ZW1zLCByZXR1cm5pbmcgYSBzZXBhcmF0ZSBub2RlIGNvbnRhaW5pbmcgdGhlbS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gYXNzZXJ0ICF0aGlzLmlzU2hhcmVkO1xyXG4gICAgICAgIHZhciBoYWxmID0gdGhpcy5jaGlsZHJlbi5sZW5ndGggPj4gMTtcclxuICAgICAgICByZXR1cm4gbmV3IEJOb2RlSW50ZXJuYWwodGhpcy5jaGlsZHJlbi5zcGxpY2UoaGFsZiksIHRoaXMua2V5cy5zcGxpY2UoaGFsZikpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2gocmhzLmtleXMuc2hpZnQoKSk7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKHJocy5jaGlsZHJlbi5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS50YWtlRnJvbUxlZnQgPSBmdW5jdGlvbiAobGhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnVuc2hpZnQobGhzLmtleXMucG9wKCkpO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChsaHMuY2hpbGRyZW4ucG9wKCkpO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTm90ZTogYGNvdW50YCBpcyB0aGUgbmV4dCB2YWx1ZSBvZiB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYG9uRm91bmRgLiBcclxuICAgIC8vICAgICAgIEEgbGVhZiBub2RlJ3MgYGZvclJhbmdlYCBmdW5jdGlvbiByZXR1cm5zIGEgbmV3IHZhbHVlIGZvciB0aGlzIGNvdW50ZXIsXHJcbiAgICAvLyAgICAgICB1bmxlc3MgdGhlIG9wZXJhdGlvbiBpcyB0byBzdG9wIGVhcmx5LlxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZm9yUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZWRpdE1vZGUsIHRyZWUsIGNvdW50LCBvbkZvdW5kKSB7XHJcbiAgICAgICAgdmFyIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICB2YXIgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCksIGkgPSBpTG93O1xyXG4gICAgICAgIHZhciBpSGlnaCA9IE1hdGgubWluKGhpZ2ggPT09IGxvdyA/IGlMb3cgOiB0aGlzLmluZGV4T2YoaGlnaCwgMCwgY21wKSwga2V5cy5sZW5ndGggLSAxKTtcclxuICAgICAgICBpZiAoIWVkaXRNb2RlKSB7XHJcbiAgICAgICAgICAgIC8vIFNpbXBsZSBjYXNlXHJcbiAgICAgICAgICAgIGZvciAoOyBpIDw9IGlIaWdoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBjb3VudCA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpIDw9IGlIaWdoKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKDsgaSA8PSBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkcmVuW2ldLmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGVkaXRNb2RlLCB0cmVlLCBjb3VudCwgb25Gb3VuZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogaWYgY2hpbGRyZW5baV0gaXMgZW1wdHkgdGhlbiBrZXlzW2ldPXVuZGVmaW5lZC5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBUaGlzIGlzIGFuIGludmFsaWQgc3RhdGUsIGJ1dCBpdCBpcyBmaXhlZCBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICBrZXlzW2ldID0gY2hpbGRyZW5baV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGVsZXRpb25zIG1heSBoYXZlIG9jY3VycmVkLCBzbyBsb29rIGZvciBvcHBvcnR1bml0aWVzIHRvIG1lcmdlIG5vZGVzLlxyXG4gICAgICAgICAgICAgICAgdmFyIGhhbGYgPSB0cmVlLl9tYXhOb2RlU2l6ZSA+PiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlMb3cgPiAwKVxyXG4gICAgICAgICAgICAgICAgICAgIGlMb3ctLTtcclxuICAgICAgICAgICAgICAgIGZvciAoaSA9IGlIaWdoOyBpID49IGlMb3c7IGktLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCA8PSBoYWxmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cnlNZXJnZShpLCB0cmVlLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIGNoaWxkIGlzIGVtcHR5ISBkZWxldGUgaXQhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggIT09IDAgJiYgY2hpbGRyZW5bMF0ua2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiZW1wdGluZXNzIGJ1Z1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIE1lcmdlcyBjaGlsZCBpIHdpdGggY2hpbGQgaSsxIGlmIHRoZWlyIGNvbWJpbmVkIHNpemUgaXMgbm90IHRvbyBsYXJnZSAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUudHJ5TWVyZ2UgPSBmdW5jdGlvbiAoaSwgbWF4U2l6ZSkge1xyXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47XHJcbiAgICAgICAgaWYgKGkgPj0gMCAmJiBpICsgMSA8IGNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0ua2V5cy5sZW5ndGggKyBjaGlsZHJlbltpICsgMV0ua2V5cy5sZW5ndGggPD0gbWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKSAvLyBjbG9uZWQgYWxyZWFkeSBVTkxFU1MgaSBpcyBvdXRzaWRlIHNjYW4gcmFuZ2VcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbltpXS5tZXJnZVNpYmxpbmcoY2hpbGRyZW5baSArIDFdLCBtYXhTaXplKTtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpICsgMSwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXMuc3BsaWNlKGkgKyAxLCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNoaWxkcmVuW2ldLm1heEtleSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogTW92ZSBjaGlsZHJlbiBmcm9tIGByaHNgIGludG8gdGhpcy5cclxuICAgICAqIGByaHNgIG11c3QgYmUgcGFydCBvZiB0aGlzIHRyZWUsIGFuZCBiZSByZW1vdmVkIGZyb20gaXQgYWZ0ZXIgdGhpcyBjYWxsXHJcbiAgICAgKiAob3RoZXJ3aXNlIGlzU2hhcmVkIGZvciBpdHMgY2hpbGRyZW4gY291bGQgYmUgaW5jb3JyZWN0KS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAvLyBhc3NlcnQgIXRoaXMuaXNTaGFyZWQ7XHJcbiAgICAgICAgdmFyIG9sZExlbmd0aCA9IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLCByaHMua2V5cyk7XHJcbiAgICAgICAgdmFyIHJoc0NoaWxkcmVuID0gcmhzLmNoaWxkcmVuO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaC5hcHBseSh0aGlzLmNoaWxkcmVuLCByaHNDaGlsZHJlbik7XHJcbiAgICAgICAgaWYgKHJocy5pc1NoYXJlZCAmJiAhdGhpcy5pc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAvLyBBbGwgY2hpbGRyZW4gb2YgYSBzaGFyZWQgbm9kZSBhcmUgaW1wbGljaXRseSBzaGFyZWQsIGFuZCBzaW5jZSB0aGVpciBuZXdcclxuICAgICAgICAgICAgLy8gcGFyZW50IGlzIG5vdCBzaGFyZWQsIHRoZXkgbXVzdCBub3cgYmUgZXhwbGljaXRseSBtYXJrZWQgYXMgc2hhcmVkLlxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJoc0NoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgcmhzQ2hpbGRyZW5baV0uaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBvdXIgY2hpbGRyZW4gYXJlIHRoZW1zZWx2ZXMgYWxtb3N0IGVtcHR5IGR1ZSB0byBhIG1hc3MtZGVsZXRlLFxyXG4gICAgICAgIC8vIHRoZXkgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIHRvbyAoYnV0IG9ubHkgdGhlIG9sZExlbmd0aC0xIGFuZCBpdHNcclxuICAgICAgICAvLyByaWdodCBzaWJsaW5nIHNob3VsZCBuZWVkIHRoaXMpLlxyXG4gICAgICAgIHRoaXMudHJ5TWVyZ2Uob2xkTGVuZ3RoIC0gMSwgbWF4Tm9kZVNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCTm9kZUludGVybmFsO1xyXG59KEJOb2RlKSk7XHJcbi8vIE9wdGltaXphdGlvbjogdGhpcyBhcnJheSBvZiBgdW5kZWZpbmVkYHMgaXMgdXNlZCBpbnN0ZWFkIG9mIGEgbm9ybWFsXHJcbi8vIGFycmF5IG9mIHZhbHVlcyBpbiBub2RlcyB3aGVyZSBgdW5kZWZpbmVkYCBpcyB0aGUgb25seSB2YWx1ZS5cclxuLy8gSXRzIGxlbmd0aCBpcyBleHRlbmRlZCB0byBtYXggbm9kZSBzaXplIG9uIGZpcnN0IHVzZTsgc2luY2UgaXQgY2FuXHJcbi8vIGJlIHNoYXJlZCBiZXR3ZWVuIHRyZWVzIHdpdGggZGlmZmVyZW50IG1heGltdW1zLCBpdHMgbGVuZ3RoIGNhbiBvbmx5XHJcbi8vIGluY3JlYXNlLCBuZXZlciBkZWNyZWFzZS4gSXRzIHR5cGUgc2hvdWxkIGJlIHVuZGVmaW5lZFtdIGJ1dCBzdHJhbmdlbHlcclxuLy8gVHlwZVNjcmlwdCB3b24ndCBhbGxvdyB0aGUgY29tcGFyaXNvbiBWW10gPT09IHVuZGVmaW5lZFtdLiBUbyBwcmV2ZW50XHJcbi8vIHVzZXJzIGZyb20gbWFraW5nIHRoaXMgYXJyYXkgdG9vIGxhcmdlLCBCVHJlZSBoYXMgYSBtYXhpbXVtIG5vZGUgc2l6ZS5cclxuLy9cclxuLy8gRkFROiB1bmRlZlZhbHNbaV0gaXMgYWxyZWFkeSB1bmRlZmluZWQsIHNvIHdoeSBpbmNyZWFzZSB0aGUgYXJyYXkgc2l6ZT9cclxuLy8gUmVhZGluZyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYW4gYXJyYXkgaXMgcmVsYXRpdmVseSBzbG93IGJlY2F1c2UgaXRcclxuLy8gaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzY2FubmluZyB0aGUgcHJvdG90eXBlIGNoYWluLlxyXG52YXIgdW5kZWZWYWxzID0gW107XHJcbnZhciBEZWxldGUgPSB7IGRlbGV0ZTogdHJ1ZSB9LCBEZWxldGVSYW5nZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIERlbGV0ZTsgfTtcclxudmFyIEJyZWFrID0geyBicmVhazogdHJ1ZSB9O1xyXG52YXIgRW1wdHlMZWFmID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBuID0gbmV3IEJOb2RlKCk7XHJcbiAgICBuLmlzU2hhcmVkID0gdHJ1ZTtcclxuICAgIHJldHVybiBuO1xyXG59KSgpO1xyXG52YXIgRW1wdHlBcnJheSA9IFtdO1xyXG52YXIgUmV1c2VkQXJyYXkgPSBbXTsgLy8gYXNzdW1lZCB0aHJlYWQtbG9jYWxcclxuZnVuY3Rpb24gY2hlY2soZmFjdCkge1xyXG4gICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgYXJnc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIGlmICghZmFjdCkge1xyXG4gICAgICAgIGFyZ3MudW5zaGlmdCgnQisgdHJlZScpOyAvLyBhdCBiZWdpbm5pbmcgb2YgbWVzc2FnZVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihhcmdzLmpvaW4oJyAnKSk7XHJcbiAgICB9XHJcbn1cclxuLyoqIEEgQlRyZWUgZnJvemVuIGluIHRoZSBlbXB0eSBzdGF0ZS4gKi9cclxuZXhwb3J0cy5FbXB0eUJUcmVlID0gKGZ1bmN0aW9uICgpIHsgdmFyIHQgPSBuZXcgQlRyZWUoKTsgdC5mcmVlemUoKTsgcmV0dXJuIHQ7IH0pKCk7XHJcbiIsICIvLyB0aGVzZSBhcmVuJ3QgcmVhbGx5IHByaXZhdGUsIGJ1dCBub3IgYXJlIHRoZXkgcmVhbGx5IHVzZWZ1bCB0byBkb2N1bWVudFxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIEx1eG9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRGF0ZVRpbWVFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBEYXRlVGltZTogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEludGVydmFsRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgSW50ZXJ2YWw6ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREdXJhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIER1cmF0aW9uOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZFVuaXRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih1bml0KSB7XG4gICAgc3VwZXIoYEludmFsaWQgdW5pdCAke3VuaXR9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEFyZ3VtZW50RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFpvbmVJc0Fic3RyYWN0RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJab25lIGlzIGFuIGFic3RyYWN0IGNsYXNzXCIpO1xuICB9XG59XG4iLCAiLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmNvbnN0IG4gPSBcIm51bWVyaWNcIixcbiAgcyA9IFwic2hvcnRcIixcbiAgbCA9IFwibG9uZ1wiO1xuXG5leHBvcnQgY29uc3QgREFURV9TSE9SVCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IG4sXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TRUNPTkRTID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRUQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBzLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IGwsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuIiwgIi8qXG4gIFRoaXMgaXMganVzdCBhIGp1bmsgZHJhd2VyLCBjb250YWluaW5nIGFueXRoaW5nIHVzZWQgYWNyb3NzIG11bHRpcGxlIGNsYXNzZXMuXG4gIEJlY2F1c2UgTHV4b24gaXMgc21hbGwoaXNoKSwgdGhpcyBzaG91bGQgc3RheSBzbWFsbCBhbmQgd2Ugd29uJ3Qgd29ycnkgYWJvdXQgc3BsaXR0aW5nXG4gIGl0IHVwIGludG8sIHNheSwgcGFyc2luZ1V0aWwuanMgYW5kIGJhc2ljVXRpbC5qcyBhbmQgc28gb24uIEJ1dCB0aGV5IGFyZSBkaXZpZGVkIHVwIGJ5IGZlYXR1cmUgYXJlYS5cbiovXG5cbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy5qc1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuLy8gVFlQRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInVuZGVmaW5lZFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVnZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCIgJiYgbyAlIDEgPT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyhvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZShvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykgPT09IFwiW29iamVjdCBEYXRlXVwiO1xufVxuXG4vLyBDQVBBQklMSVRJRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1JlbGF0aXZlKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0eXBlb2YgSW50bCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhIUludGwuUmVsYXRpdmVUaW1lRm9ybWF0O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIE9CSkVDVFMgQU5EIEFSUkFZU1xuXG5leHBvcnQgZnVuY3Rpb24gbWF5YmVBcnJheSh0aGluZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkge1xuICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGJlc3QsIG5leHQpID0+IHtcbiAgICBjb25zdCBwYWlyID0gW2J5KG5leHQpLCBuZXh0XTtcbiAgICBpZiAoIWJlc3QpIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH0gZWxzZSBpZiAoY29tcGFyZShiZXN0WzBdLCBwYWlyWzBdKSA9PT0gYmVzdFswXSkge1xuICAgICAgcmV0dXJuIGJlc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH1cbiAgfSwgbnVsbClbMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrKG9iaiwga2V5cykge1xuICByZXR1cm4ga2V5cy5yZWR1Y2UoKGEsIGspID0+IHtcbiAgICBhW2tdID0gb2JqW2tdO1xuICAgIHJldHVybiBhO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG4vLyBOVU1CRVJTIEFORCBTVFJJTkdTXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyQmV0d2Vlbih0aGluZywgYm90dG9tLCB0b3ApIHtcbiAgcmV0dXJuIGlzSW50ZWdlcih0aGluZykgJiYgdGhpbmcgPj0gYm90dG9tICYmIHRoaW5nIDw9IHRvcDtcbn1cblxuLy8geCAlIG4gYnV0IHRha2VzIHRoZSBzaWduIG9mIG4gaW5zdGVhZCBvZiB4XG5leHBvcnQgZnVuY3Rpb24gZmxvb3JNb2QoeCwgbikge1xuICByZXR1cm4geCAtIG4gKiBNYXRoLmZsb29yKHggLyBuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZFN0YXJ0KGlucHV0LCBuID0gMikge1xuICBjb25zdCBpc05lZyA9IGlucHV0IDwgMDtcbiAgbGV0IHBhZGRlZDtcbiAgaWYgKGlzTmVnKSB7XG4gICAgcGFkZGVkID0gXCItXCIgKyAoXCJcIiArIC1pbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9IGVsc2Uge1xuICAgIHBhZGRlZCA9IChcIlwiICsgaW5wdXQpLnBhZFN0YXJ0KG4sIFwiMFwiKTtcbiAgfVxuICByZXR1cm4gcGFkZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlZ2VyKHN0cmluZykge1xuICBpZiAoaXNVbmRlZmluZWQoc3RyaW5nKSB8fCBzdHJpbmcgPT09IG51bGwgfHwgc3RyaW5nID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nLCAxMCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRmxvYXRpbmcoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWlsbGlzKGZyYWN0aW9uKSB7XG4gIC8vIFJldHVybiB1bmRlZmluZWQgKGluc3RlYWQgb2YgMCkgaW4gdGhlc2UgY2FzZXMsIHdoZXJlIGZyYWN0aW9uIGlzIG5vdCBzZXRcbiAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZiA9IHBhcnNlRmxvYXQoXCIwLlwiICsgZnJhY3Rpb24pICogMTAwMDtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihmKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRUbyhudW1iZXIsIGRpZ2l0cywgdG93YXJkWmVybyA9IGZhbHNlKSB7XG4gIGNvbnN0IGZhY3RvciA9IDEwICoqIGRpZ2l0cyxcbiAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kO1xuICByZXR1cm4gcm91bmRlcihudW1iZXIgKiBmYWN0b3IpIC8gZmFjdG9yO1xufVxuXG4vLyBEQVRFIEJBU0lDU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gIGNvbnN0IG1vZE1vbnRoID0gZmxvb3JNb2QobW9udGggLSAxLCAxMikgKyAxLFxuICAgIG1vZFllYXIgPSB5ZWFyICsgKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG5cbiAgaWYgKG1vZE1vbnRoID09PSAyKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb2RNb250aCAtIDFdO1xuICB9XG59XG5cbi8vIGNvdmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGxvY2FsIHRpbWVzdGFtcCAoZXBvY2gsIGJ1dCB3aXRoIHRoZSBvZmZzZXQgYmFrZWQgaW4pXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9Mb2NhbFRTKG9iaikge1xuICBsZXQgZCA9IERhdGUuVVRDKFxuICAgIG9iai55ZWFyLFxuICAgIG9iai5tb250aCAtIDEsXG4gICAgb2JqLmRheSxcbiAgICBvYmouaG91cixcbiAgICBvYmoubWludXRlLFxuICAgIG9iai5zZWNvbmQsXG4gICAgb2JqLm1pbGxpc2Vjb25kXG4gICk7XG5cbiAgLy8gZm9yIGxlZ2FjeSByZWFzb25zLCB5ZWFycyBiZXR3ZWVuIDAgYW5kIDk5IGFyZSBpbnRlcnByZXRlZCBhcyAxOVhYOyByZXZlcnQgdGhhdFxuICBpZiAob2JqLnllYXIgPCAxMDAgJiYgb2JqLnllYXIgPj0gMCkge1xuICAgIGQgPSBuZXcgRGF0ZShkKTtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG4gIHJldHVybiArZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcikge1xuICBjb25zdCBwMSA9XG4gICAgICAod2Vla1llYXIgK1xuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gNCkgLVxuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gMTAwKSArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0MDApKSAlXG4gICAgICA3LFxuICAgIGxhc3QgPSB3ZWVrWWVhciAtIDEsXG4gICAgcDIgPSAobGFzdCArIE1hdGguZmxvb3IobGFzdCAvIDQpIC0gTWF0aC5mbG9vcihsYXN0IC8gMTAwKSArIE1hdGguZmxvb3IobGFzdCAvIDQwMCkpICUgNztcbiAgcmV0dXJuIHAxID09PSA0IHx8IHAyID09PSAzID8gNTMgOiA1Mjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXIpIHtcbiAgaWYgKHllYXIgPiA5OSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2UgcmV0dXJuIHllYXIgPiA2MCA/IDE5MDAgKyB5ZWFyIDogMjAwMCArIHllYXI7XG59XG5cbi8vIFBBUlNJTkdcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlWm9uZUluZm8odHMsIG9mZnNldEZvcm1hdCwgbG9jYWxlLCB0aW1lWm9uZSA9IG51bGwpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRzKSxcbiAgICBpbnRsT3B0cyA9IHtcbiAgICAgIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICB9O1xuXG4gIGlmICh0aW1lWm9uZSkge1xuICAgIGludGxPcHRzLnRpbWVab25lID0gdGltZVpvbmU7XG4gIH1cblxuICBjb25zdCBtb2RpZmllZCA9IHsgdGltZVpvbmVOYW1lOiBvZmZzZXRGb3JtYXQsIC4uLmludGxPcHRzIH07XG5cbiAgY29uc3QgcGFyc2VkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBtb2RpZmllZClcbiAgICAuZm9ybWF0VG9QYXJ0cyhkYXRlKVxuICAgIC5maW5kKChtKSA9PiBtLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0aW1lem9uZW5hbWVcIik7XG4gIHJldHVybiBwYXJzZWQgPyBwYXJzZWQudmFsdWUgOiBudWxsO1xufVxuXG4vLyBzaWduZWRPZmZzZXQoJy01JywgJzMwJykgLT4gLTMzMFxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25lZE9mZnNldChvZmZIb3VyU3RyLCBvZmZNaW51dGVTdHIpIHtcbiAgbGV0IG9mZkhvdXIgPSBwYXJzZUludChvZmZIb3VyU3RyLCAxMCk7XG5cbiAgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTBcbiAgaWYgKE51bWJlci5pc05hTihvZmZIb3VyKSkge1xuICAgIG9mZkhvdXIgPSAwO1xuICB9XG5cbiAgY29uc3Qgb2ZmTWluID0gcGFyc2VJbnQob2ZmTWludXRlU3RyLCAxMCkgfHwgMCxcbiAgICBvZmZNaW5TaWduZWQgPSBvZmZIb3VyIDwgMCB8fCBPYmplY3QuaXMob2ZmSG91ciwgLTApID8gLW9mZk1pbiA6IG9mZk1pbjtcbiAgcmV0dXJuIG9mZkhvdXIgKiA2MCArIG9mZk1pblNpZ25lZDtcbn1cblxuLy8gQ09FUkNJT05cblxuZXhwb3J0IGZ1bmN0aW9uIGFzTnVtYmVyKHZhbHVlKSB7XG4gIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiIHx8IHZhbHVlID09PSBcIlwiIHx8IE51bWJlci5pc05hTihudW1lcmljVmFsdWUpKVxuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCB1bml0IHZhbHVlICR7dmFsdWV9YCk7XG4gIHJldHVybiBudW1lcmljVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVyKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTtcbiAgZm9yIChjb25zdCB1IGluIG9iaikge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShvYmosIHUpKSB7XG4gICAgICBjb25zdCB2ID0gb2JqW3VdO1xuICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSBjb250aW51ZTtcbiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplcih1KV0gPSBhc051bWJlcih2KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRPZmZzZXQob2Zmc2V0LCBmb3JtYXQpIHtcbiAgY29uc3QgaG91cnMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAvIDYwKSksXG4gICAgbWludXRlcyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0ICUgNjApKSxcbiAgICBzaWduID0gb2Zmc2V0ID49IDAgPyBcIitcIiA6IFwiLVwiO1xuXG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX06JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7aG91cnN9JHttaW51dGVzID4gMCA/IGA6JHttaW51dGVzfWAgOiBcIlwifWA7XG4gICAgY2FzZSBcInRlY2hpZVwiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtwYWRTdGFydChob3VycywgMil9JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVmFsdWUgZm9ybWF0ICR7Zm9ybWF0fSBpcyBvdXQgb2YgcmFuZ2UgZm9yIHByb3BlcnR5IGZvcm1hdGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lT2JqZWN0KG9iaikge1xuICByZXR1cm4gcGljayhvYmosIFtcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSk7XG59XG5cbmV4cG9ydCBjb25zdCBpYW5hUmVnZXggPVxuICAvW0EtWmEtel8rLV17MSwyNTZ9KD86Oj9cXC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcXC9bQS1aYS16MC05XystXXsxLDI1Nn0pPyk/LztcbiIsICJpbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7IHBpY2sgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeShvYmopIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGNvbnN0IG1vbnRoc0xvbmcgPSBbXG4gIFwiSmFudWFyeVwiLFxuICBcIkZlYnJ1YXJ5XCIsXG4gIFwiTWFyY2hcIixcbiAgXCJBcHJpbFwiLFxuICBcIk1heVwiLFxuICBcIkp1bmVcIixcbiAgXCJKdWx5XCIsXG4gIFwiQXVndXN0XCIsXG4gIFwiU2VwdGVtYmVyXCIsXG4gIFwiT2N0b2JlclwiLFxuICBcIk5vdmVtYmVyXCIsXG4gIFwiRGVjZW1iZXJcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNTaG9ydCA9IFtcbiAgXCJKYW5cIixcbiAgXCJGZWJcIixcbiAgXCJNYXJcIixcbiAgXCJBcHJcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5cIixcbiAgXCJKdWxcIixcbiAgXCJBdWdcIixcbiAgXCJTZXBcIixcbiAgXCJPY3RcIixcbiAgXCJOb3ZcIixcbiAgXCJEZWNcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNOYXJyb3cgPSBbXCJKXCIsIFwiRlwiLCBcIk1cIiwgXCJBXCIsIFwiTVwiLCBcIkpcIiwgXCJKXCIsIFwiQVwiLCBcIlNcIiwgXCJPXCIsIFwiTlwiLCBcIkRcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb250aHMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgY2FzZSBcIjItZGlnaXRcIjpcbiAgICAgIHJldHVybiBbXCIwMVwiLCBcIjAyXCIsIFwiMDNcIiwgXCIwNFwiLCBcIjA1XCIsIFwiMDZcIiwgXCIwN1wiLCBcIjA4XCIsIFwiMDlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c0xvbmcgPSBbXG4gIFwiTW9uZGF5XCIsXG4gIFwiVHVlc2RheVwiLFxuICBcIldlZG5lc2RheVwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiRnJpZGF5XCIsXG4gIFwiU2F0dXJkYXlcIixcbiAgXCJTdW5kYXlcIixcbl07XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c1Nob3J0ID0gW1wiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCIsIFwiU3VuXCJdO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNOYXJyb3cgPSBbXCJNXCIsIFwiVFwiLCBcIldcIiwgXCJUXCIsIFwiRlwiLCBcIlNcIiwgXCJTXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCJdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWVyaWRpZW1zID0gW1wiQU1cIiwgXCJQTVwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNMb25nID0gW1wiQmVmb3JlIENocmlzdFwiLCBcIkFubm8gRG9taW5pXCJdO1xuXG5leHBvcnQgY29uc3QgZXJhc1Nob3J0ID0gW1wiQkNcIiwgXCJBRFwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNOYXJyb3cgPSBbXCJCXCIsIFwiQVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVyYXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTG9uZ107XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJpZGllbUZvckRhdGVUaW1lKGR0KSB7XG4gIHJldHVybiBtZXJpZGllbXNbZHQuaG91ciA8IDEyID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIHdlZWtkYXlzKGxlbmd0aClbZHQud2Vla2RheSAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiBtb250aHMobGVuZ3RoKVtkdC5tb250aCAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJhRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gZXJhcyhsZW5ndGgpW2R0LnllYXIgPCAwID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCBudW1lcmljID0gXCJhbHdheXNcIiwgbmFycm93ID0gZmFsc2UpIHtcbiAgY29uc3QgdW5pdHMgPSB7XG4gICAgeWVhcnM6IFtcInllYXJcIiwgXCJ5ci5cIl0sXG4gICAgcXVhcnRlcnM6IFtcInF1YXJ0ZXJcIiwgXCJxdHIuXCJdLFxuICAgIG1vbnRoczogW1wibW9udGhcIiwgXCJtby5cIl0sXG4gICAgd2Vla3M6IFtcIndlZWtcIiwgXCJ3ay5cIl0sXG4gICAgZGF5czogW1wiZGF5XCIsIFwiZGF5XCIsIFwiZGF5c1wiXSxcbiAgICBob3VyczogW1wiaG91clwiLCBcImhyLlwiXSxcbiAgICBtaW51dGVzOiBbXCJtaW51dGVcIiwgXCJtaW4uXCJdLFxuICAgIHNlY29uZHM6IFtcInNlY29uZFwiLCBcInNlYy5cIl0sXG4gIH07XG5cbiAgY29uc3QgbGFzdGFibGUgPSBbXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdLmluZGV4T2YodW5pdCkgPT09IC0xO1xuXG4gIGlmIChudW1lcmljID09PSBcImF1dG9cIiAmJiBsYXN0YWJsZSkge1xuICAgIGNvbnN0IGlzRGF5ID0gdW5pdCA9PT0gXCJkYXlzXCI7XG4gICAgc3dpdGNoIChjb3VudCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvbW9ycm93XCIgOiBgbmV4dCAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBjYXNlIC0xOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInllc3RlcmRheVwiIDogYGxhc3QgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvZGF5XCIgOiBgdGhpcyAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBkZWZhdWx0OiAvLyBmYWxsIHRocm91Z2hcbiAgICB9XG4gIH1cblxuICBjb25zdCBpc0luUGFzdCA9IE9iamVjdC5pcyhjb3VudCwgLTApIHx8IGNvdW50IDwgMCxcbiAgICBmbXRWYWx1ZSA9IE1hdGguYWJzKGNvdW50KSxcbiAgICBzaW5ndWxhciA9IGZtdFZhbHVlID09PSAxLFxuICAgIGxpbFVuaXRzID0gdW5pdHNbdW5pdF0sXG4gICAgZm10VW5pdCA9IG5hcnJvd1xuICAgICAgPyBzaW5ndWxhclxuICAgICAgICA/IGxpbFVuaXRzWzFdXG4gICAgICAgIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV1cbiAgICAgIDogc2luZ3VsYXJcbiAgICAgID8gdW5pdHNbdW5pdF1bMF1cbiAgICAgIDogdW5pdDtcbiAgcmV0dXJuIGlzSW5QYXN0ID8gYCR7Zm10VmFsdWV9ICR7Zm10VW5pdH0gYWdvYCA6IGBpbiAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0cmluZyhrbm93bkZvcm1hdCkge1xuICAvLyB0aGVzZSBhbGwgaGF2ZSB0aGUgb2Zmc2V0cyByZW1vdmVkIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlbVxuICAvLyB3aXRob3V0IGFsbCB0aGUgaW50bCBzdHVmZiB0aGlzIGlzIGJhY2tmaWxsaW5nXG4gIGNvbnN0IGZpbHRlcmVkID0gcGljayhrbm93bkZvcm1hdCwgW1xuICAgICAgXCJ3ZWVrZGF5XCIsXG4gICAgICBcImVyYVwiLFxuICAgICAgXCJ5ZWFyXCIsXG4gICAgICBcIm1vbnRoXCIsXG4gICAgICBcImRheVwiLFxuICAgICAgXCJob3VyXCIsXG4gICAgICBcIm1pbnV0ZVwiLFxuICAgICAgXCJzZWNvbmRcIixcbiAgICAgIFwidGltZVpvbmVOYW1lXCIsXG4gICAgICBcImhvdXJDeWNsZVwiLFxuICAgIF0pLFxuICAgIGtleSA9IHN0cmluZ2lmeShmaWx0ZXJlZCksXG4gICAgZGF0ZVRpbWVIdWdlID0gXCJFRUVFLCBMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0ZVTEwpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0hVR0UpOlxuICAgICAgcmV0dXJuIFwiRUVFRSwgTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1NJTVBMRSk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcImg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfU0lNUExFKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJISDptbTpzc1wiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTCk6XG4gICAgICByZXR1cm4gXCJMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfSFVHRSk6XG4gICAgICByZXR1cm4gZGF0ZVRpbWVIdWdlO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIk0vZC95eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIGQgTExMIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkVFRUUsIExMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRlVGltZUh1Z2U7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCAqIGFzIEZvcm1hdHMgZnJvbSBcIi4vZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHsgcGFkU3RhcnQgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVRva2VucyhzcGxpdHMsIHRva2VuVG9TdHJpbmcpIHtcbiAgbGV0IHMgPSBcIlwiO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHNwbGl0cykge1xuICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICBzICs9IHRva2VuLnZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcyArPSB0b2tlblRvU3RyaW5nKHRva2VuLnZhbCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzO1xufVxuXG5jb25zdCBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0ge1xuICBEOiBGb3JtYXRzLkRBVEVfU0hPUlQsXG4gIEREOiBGb3JtYXRzLkRBVEVfTUVELFxuICBEREQ6IEZvcm1hdHMuREFURV9GVUxMLFxuICBEREREOiBGb3JtYXRzLkRBVEVfSFVHRSxcbiAgdDogRm9ybWF0cy5USU1FX1NJTVBMRSxcbiAgdHQ6IEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFMsXG4gIHR0dDogRm9ybWF0cy5USU1FX1dJVEhfU0hPUlRfT0ZGU0VULFxuICB0dHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCxcbiAgVDogRm9ybWF0cy5USU1FXzI0X1NJTVBMRSxcbiAgVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFMsXG4gIFRUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VULFxuICBUVFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCxcbiAgZjogRm9ybWF0cy5EQVRFVElNRV9TSE9SVCxcbiAgZmY6IEZvcm1hdHMuREFURVRJTUVfTUVELFxuICBmZmY6IEZvcm1hdHMuREFURVRJTUVfRlVMTCxcbiAgZmZmZjogRm9ybWF0cy5EQVRFVElNRV9IVUdFLFxuICBGOiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyxcbiAgRkY6IEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyxcbiAgRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTLFxuICBGRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTLFxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm1hdHRlciB7XG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlRm9ybWF0KGZtdCkge1xuICAgIGxldCBjdXJyZW50ID0gbnVsbCxcbiAgICAgIGN1cnJlbnRGdWxsID0gXCJcIixcbiAgICAgIGJyYWNrZXRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHNwbGl0cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm10Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gZm10LmNoYXJBdChpKTtcbiAgICAgIGlmIChjID09PSBcIidcIikge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogYnJhY2tldGVkLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgICBjdXJyZW50RnVsbCA9IFwiXCI7XG4gICAgICAgIGJyYWNrZXRlZCA9ICFicmFja2V0ZWQ7XG4gICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkge1xuICAgICAgICBjdXJyZW50RnVsbCArPSBjO1xuICAgICAgfSBlbHNlIGlmIChjID09PSBjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRGdWxsICs9IGM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogZmFsc2UsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudEZ1bGwgPSBjO1xuICAgICAgICBjdXJyZW50ID0gYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgc3BsaXRzLnB1c2goeyBsaXRlcmFsOiBicmFja2V0ZWQsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwbGl0cztcbiAgfVxuXG4gIHN0YXRpYyBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKSB7XG4gICAgcmV0dXJuIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHNbdG9rZW5dO1xuICB9XG5cbiAgY29uc3RydWN0b3IobG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gZm9ybWF0T3B0cztcbiAgICB0aGlzLmxvYyA9IGxvY2FsZTtcbiAgICB0aGlzLnN5c3RlbUxvYyA9IG51bGw7XG4gIH1cblxuICBmb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgb3B0cykge1xuICAgIGlmICh0aGlzLnN5c3RlbUxvYyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeXN0ZW1Mb2MgPSB0aGlzLmxvYy5yZWRlZmF1bHRUb1N5c3RlbSgpO1xuICAgIH1cbiAgICBjb25zdCBkZiA9IHRoaXMuc3lzdGVtTG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYuZm9ybWF0KCk7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZShkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdCgpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWVQYXJ0cyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdFRvUGFydHMoKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLnJlc29sdmVkT3B0aW9ucygpO1xuICB9XG5cbiAgbnVtKG4sIHAgPSAwKSB7XG4gICAgLy8gd2UgZ2V0IHNvbWUgcGVyZiBvdXQgb2YgZG9pbmcgdGhpcyBoZXJlLCBhbm5veWluZ2x5XG4gICAgaWYgKHRoaXMub3B0cy5mb3JjZVNpbXBsZSkge1xuICAgICAgcmV0dXJuIHBhZFN0YXJ0KG4sIHApO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdHMgPSB7IC4uLnRoaXMub3B0cyB9O1xuXG4gICAgaWYgKHAgPiAwKSB7XG4gICAgICBvcHRzLnBhZFRvID0gcDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2MubnVtYmVyRm9ybWF0dGVyKG9wdHMpLmZvcm1hdChuKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm10KSB7XG4gICAgY29uc3Qga25vd25FbmdsaXNoID0gdGhpcy5sb2MubGlzdGluZ01vZGUoKSA9PT0gXCJlblwiLFxuICAgICAgdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPSB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAmJiB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAhPT0gXCJncmVnb3J5XCIsXG4gICAgICBzdHJpbmcgPSAob3B0cywgZXh0cmFjdCkgPT4gdGhpcy5sb2MuZXh0cmFjdChkdCwgb3B0cywgZXh0cmFjdCksXG4gICAgICBmb3JtYXRPZmZzZXQgPSAob3B0cykgPT4ge1xuICAgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHtcbiAgICAgICAgICByZXR1cm4gXCJaXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiBcIlwiO1xuICAgICAgfSxcbiAgICAgIG1lcmlkaWVtID0gKCkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLm1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpXG4gICAgICAgICAgOiBzdHJpbmcoeyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH0sIFwiZGF5cGVyaW9kXCIpLFxuICAgICAgbW9udGggPSAobGVuZ3RoLCBzdGFuZGFsb25lKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gubW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKVxuICAgICAgICAgIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7IG1vbnRoOiBsZW5ndGggfSA6IHsgbW9udGg6IGxlbmd0aCwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpLFxuICAgICAgd2Vla2RheSA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC53ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aClcbiAgICAgICAgICA6IHN0cmluZyhcbiAgICAgICAgICAgICAgc3RhbmRhbG9uZSA/IHsgd2Vla2RheTogbGVuZ3RoIH0gOiB7IHdlZWtkYXk6IGxlbmd0aCwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sXG4gICAgICAgICAgICAgIFwid2Vla2RheVwiXG4gICAgICAgICAgICApLFxuICAgICAgbWF5YmVNYWNybyA9ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pO1xuICAgICAgICBpZiAoZm9ybWF0T3B0cykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBmb3JtYXRPcHRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcmEgPSAobGVuZ3RoKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2ggPyBFbmdsaXNoLmVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHsgZXJhOiBsZW5ndGggfSwgXCJlcmFcIiksXG4gICAgICB0b2tlblRvU3RyaW5nID0gKHRva2VuKSA9PiB7XG4gICAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXNcbiAgICAgICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgICAgIC8vIG1zXG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCk7XG4gICAgICAgICAgY2FzZSBcInVcIjpcbiAgICAgICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICAgICAgY2FzZSBcIlNTU1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTtcbiAgICAgICAgICAvLyBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQpO1xuICAgICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnNlY29uZCwgMik7XG4gICAgICAgICAgLy8gZnJhY3Rpb25hbCBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwKSwgMik7XG4gICAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQubWlsbGlzZWNvbmQgLyAxMDApKTtcbiAgICAgICAgICAvLyBtaW51dGVzXG4gICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUpO1xuICAgICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSwgMik7XG4gICAgICAgICAgLy8gaG91cnNcbiAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyKTtcbiAgICAgICAgICBjYXNlIFwiaGhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMiwgMik7XG4gICAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyKTtcbiAgICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyLCAyKTtcbiAgICAgICAgICAvLyBvZmZzZXRcbiAgICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArNlxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogXCJuYXJyb3dcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArMDY6MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwic2hvcnRcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzA2MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwidGVjaGllXCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFU1RcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcInNob3J0XCIsIGxvY2FsZTogdGhpcy5sb2MubG9jYWxlIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFYXN0ZXJuIFN0YW5kYXJkIFRpbWVcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcImxvbmdcIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7XG4gICAgICAgICAgLy8gem9uZVxuICAgICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lTmFtZTtcbiAgICAgICAgICAvLyBtZXJpZGllbXNcbiAgICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgICAgcmV0dXJuIG1lcmlkaWVtKCk7XG4gICAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgZGF5OiBcIm51bWVyaWNcIiB9LCBcImRheVwiKSA6IHRoaXMubnVtKGR0LmRheSk7XG4gICAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6IFwiMi1kaWdpdFwiIH0sIFwiZGF5XCIpIDogdGhpcy5udW0oZHQuZGF5LCAyKTtcbiAgICAgICAgICAvLyB3ZWVrZGF5cyAtIHN0YW5kYWxvbmVcbiAgICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcImxvbmdcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gd2Vla2RheXMgLSBmb3JtYXRcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzZGF5J1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJsb25nXCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiRUVFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1QnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcIm5hcnJvd1wiLCBmYWxzZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gc3RhbmRhbG9uZVxuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpO1xuICAgICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMSwgZG9lc24ndCBzZWVtIHRvIHdvcmtcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIjItZGlnaXRcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgsIDIpO1xuICAgICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFuXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJzaG9ydFwiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5XG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJsb25nXCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJMTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gZm9ybWF0XG4gICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCk7XG4gICAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCIyLWRpZ2l0XCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTtcbiAgICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphblxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphbnVhcnlcbiAgICAgICAgICAgIHJldHVybiBtb250aChcImxvbmdcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgZmFsc2UpO1xuICAgICAgICAgIC8vIHllYXJzXG4gICAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMjAxNFxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpIDogdGhpcy5udW0oZHQueWVhcik7XG4gICAgICAgICAgY2FzZSBcInl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDE0XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIjItZGlnaXRcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTtcbiAgICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMDEyXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIm51bWVyaWNcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLCA0KTtcbiAgICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAwMDAxMlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhciwgNik7XG4gICAgICAgICAgLy8gZXJhc1xuICAgICAgICAgIGNhc2UgXCJHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFEXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwic2hvcnRcIik7XG4gICAgICAgICAgY2FzZSBcIkdHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFubm8gRG9taW5pXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwibG9uZ1wiKTtcbiAgICAgICAgICBjYXNlIFwiR0dHR0dcIjpcbiAgICAgICAgICAgIHJldHVybiBlcmEoXCJuYXJyb3dcIik7XG4gICAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIudG9TdHJpbmcoKS5zbGljZSgtMiksIDIpO1xuICAgICAgICAgIGNhc2UgXCJra2trXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIsIDQpO1xuICAgICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlcik7XG4gICAgICAgICAgY2FzZSBcIldXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlciwgMik7XG4gICAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5vcmRpbmFsKTtcbiAgICAgICAgICBjYXNlIFwib29vXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCwgMyk7XG4gICAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIpO1xuICAgICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJYXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC50cyAvIDEwMDApKTtcbiAgICAgICAgICBjYXNlIFwieFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnRzKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWFjcm8odG9rZW4pO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSwgdG9rZW5Ub1N0cmluZyk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbkZyb21TdHJpbmcoZHVyLCBmbXQpIHtcbiAgICBjb25zdCB0b2tlblRvRmllbGQgPSAodG9rZW4pID0+IHtcbiAgICAgICAgc3dpdGNoICh0b2tlblswXSkge1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtaWxsaXNlY29uZFwiO1xuICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICAgIHJldHVybiBcIndlZWtcIjtcbiAgICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgICAgICBjYXNlIFwieVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwieWVhclwiO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRva2VuVG9TdHJpbmcgPSAobGlsZHVyKSA9PiAodG9rZW4pID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTtcbiAgICAgICAgaWYgKG1hcHBlZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm51bShsaWxkdXIuZ2V0KG1hcHBlZCksIHRva2VuLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5zID0gRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksXG4gICAgICByZWFsVG9rZW5zID0gdG9rZW5zLnJlZHVjZShcbiAgICAgICAgKGZvdW5kLCB7IGxpdGVyYWwsIHZhbCB9KSA9PiAobGl0ZXJhbCA/IGZvdW5kIDogZm91bmQuY29uY2F0KHZhbCkpLFxuICAgICAgICBbXVxuICAgICAgKSxcbiAgICAgIGNvbGxhcHNlZCA9IGR1ci5zaGlmdFRvKC4uLnJlYWxUb2tlbnMubWFwKHRva2VuVG9GaWVsZCkuZmlsdGVyKCh0KSA9PiB0KSk7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2Vucyh0b2tlbnMsIHRva2VuVG9TdHJpbmcoY29sbGFwc2VkKSk7XG4gIH1cbn1cbiIsICJleHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkIHtcbiAgY29uc3RydWN0b3IocmVhc29uLCBleHBsYW5hdGlvbikge1xuICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICAgIHRoaXMuZXhwbGFuYXRpb24gPSBleHBsYW5hdGlvbjtcbiAgfVxuXG4gIHRvTWVzc2FnZSgpIHtcbiAgICBpZiAodGhpcy5leHBsYW5hdGlvbikge1xuICAgICAgcmV0dXJuIGAke3RoaXMucmVhc29ufTogJHt0aGlzLmV4cGxhbmF0aW9ufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYXNvbjtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBab25lSXNBYnN0cmFjdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQGludGVyZmFjZVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBab25lIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHpvbmVcbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgdHlwZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgem9uZS5cbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgZ2V0IGlhbmFOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBvZmZzZXQgaXMga25vd24gdG8gYmUgZml4ZWQgZm9yIHRoZSB3aG9sZSB5ZWFyLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLiBBY2NlcHRzICdsb25nJyBvciAnc2hvcnQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5sb2NhbGUgLSBXaGF0IGxvY2FsZSB0byByZXR1cm4gdGhlIG9mZnNldCBuYW1lIGluLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBvZmZzZXROYW1lKHRzLCBvcHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyB2YWx1ZSBhcyBhIHN0cmluZ1xuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBnZXQgdGhlIG9mZnNldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHlcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gY29tcHV0ZSB0aGUgb2Zmc2V0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIG9mZnNldCh0cykge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgdmFsaWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHBhcnNlWm9uZUluZm8gfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lXG4gICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBTeXN0ZW1ab25lKCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkge1xuICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgcmV0dXJuIC1uZXcgRGF0ZSh0cykuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwic3lzdGVtXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbywgaXNVbmRlZmluZWQsIG9ialRvTG9jYWxUUyB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBkdGZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gbWFrZURURih6b25lKSB7XG4gIGlmICghZHRmQ2FjaGVbem9uZV0pIHtcbiAgICBkdGZDYWNoZVt6b25lXSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiB6b25lLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgc2Vjb25kOiBcIjItZGlnaXRcIixcbiAgICAgIGVyYTogXCJzaG9ydFwiLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBkdGZDYWNoZVt6b25lXTtcbn1cblxuY29uc3QgdHlwZVRvUG9zID0ge1xuICB5ZWFyOiAwLFxuICBtb250aDogMSxcbiAgZGF5OiAyLFxuICBlcmE6IDMsXG4gIGhvdXI6IDQsXG4gIG1pbnV0ZTogNSxcbiAgc2Vjb25kOiA2LFxufTtcblxuZnVuY3Rpb24gaGFja3lPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXFx1MjAwRS9nLCBcIlwiKSxcbiAgICBwYXJzZWQgPSAvKFxcZCspXFwvKFxcZCspXFwvKFxcZCspIChBRHxCQyksPyAoXFxkKyk6KFxcZCspOihcXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLFxuICAgIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZhZE9yQmMsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZDtcbiAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmYWRPckJjLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICBjb25zdCBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcbiAgY29uc3QgZmlsbGVkID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gZm9ybWF0dGVkW2ldO1xuICAgIGNvbnN0IHBvcyA9IHR5cGVUb1Bvc1t0eXBlXTtcblxuICAgIGlmICh0eXBlID09PSBcImVyYVwiKSB7XG4gICAgICBmaWxsZWRbcG9zXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbGxlZDtcbn1cblxubGV0IGlhbmFab25lQ2FjaGUgPSB7fTtcbi8qKlxuICogQSB6b25lIGlkZW50aWZpZWQgYnkgYW4gSUFOQSBpZGVudGlmaWVyLCBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJQU5BWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWVcbiAgICogQHJldHVybiB7SUFOQVpvbmV9XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKG5hbWUpIHtcbiAgICBpZiAoIWlhbmFab25lQ2FjaGVbbmFtZV0pIHtcbiAgICAgIGlhbmFab25lQ2FjaGVbbmFtZV0gPSBuZXcgSUFOQVpvbmUobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgaWFuYVpvbmVDYWNoZSA9IHt9O1xuICAgIGR0ZkNhY2hlID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBzcGVjaWZpZXIuIFRoaXMgb25seSBjaGVja3MgdGhlIHN0cmluZydzIGZvcm1hdCwgbm90IHRoYXQgdGhlIHNwZWNpZmllciBpZGVudGlmaWVzIGEga25vd24gem9uZTsgc2VlIGlzVmFsaWRab25lIGZvciB0aGF0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBzdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIkFtZXJpY2EvTmV3X1lvcmtcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJTcG9ydH5+YmxvcnBcIikgLy89PiBmYWxzZVxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlIGZvciBzb21lIHZhbGlkIElBTkEgbmFtZXMuIFVzZSBpc1ZhbGlkWm9uZSBpbnN0ZWFkLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTcGVjaWZpZXIocykge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRab25lKHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlkZW50aWZpZXMgYSByZWFsIHpvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBUaGUgc3RyaW5nIHRvIGNoZWNrXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiBmYWxzZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFpvbmUoem9uZSkge1xuICAgIGlmICghem9uZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7IHRpbWVab25lOiB6b25lIH0pLmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnpvbmVOYW1lID0gbmFtZTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaWFuYVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlLCB0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCh0cykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZSkpIHJldHVybiBOYU47XG5cbiAgICBjb25zdCBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSk7XG4gICAgbGV0IFt5ZWFyLCBtb250aCwgZGF5LCBhZE9yQmMsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kXSA9IGR0Zi5mb3JtYXRUb1BhcnRzXG4gICAgICA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSlcbiAgICAgIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKTtcblxuICAgIGlmIChhZE9yQmMgPT09IFwiQkNcIikge1xuICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7XG4gICAgfVxuXG4gICAgLy8gYmVjYXVzZSB3ZSdyZSB1c2luZyBob3VyMTIgYW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEwMjU1NjQmY2FuPTImcT0lMjIyNCUzQTAwJTIyJTIwZGF0ZXRpbWVmb3JtYXRcbiAgICBjb25zdCBhZGp1c3RlZEhvdXIgPSBob3VyID09PSAyNCA/IDAgOiBob3VyO1xuXG4gICAgY29uc3QgYXNVVEMgPSBvYmpUb0xvY2FsVFMoe1xuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5LFxuICAgICAgaG91cjogYWRqdXN0ZWRIb3VyLFxuICAgICAgbWludXRlLFxuICAgICAgc2Vjb25kLFxuICAgICAgbWlsbGlzZWNvbmQ6IDAsXG4gICAgfSk7XG5cbiAgICBsZXQgYXNUUyA9ICtkYXRlO1xuICAgIGNvbnN0IG92ZXIgPSBhc1RTICUgMTAwMDtcbiAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjtcbiAgICByZXR1cm4gKGFzVVRDIC0gYXNUUykgLyAoNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiaWFuYVwiICYmIG90aGVyWm9uZS5uYW1lID09PSB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZDtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgc2lnbmVkT2Zmc2V0IH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxubGV0IHNpbmdsZXRvbiA9IG51bGw7XG5cbi8qKlxuICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKVxuICogQGltcGxlbWVudHMge1pvbmV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpeGVkT2Zmc2V0Wm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIFVUQ1xuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IHV0Y0luc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBGaXhlZE9mZnNldFpvbmUoMCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgLSBUaGUgb2Zmc2V0IGluIG1pbnV0ZXNcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIGluc3RhbmNlKG9mZnNldCkge1xuICAgIHJldHVybiBvZmZzZXQgPT09IDAgPyBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2UgOiBuZXcgRml4ZWRPZmZzZXRab25lKG9mZnNldCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIG9mIEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIGEgVVRDIG9mZnNldCBzdHJpbmcsIGxpa2UgXCJVVEMrNlwiXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIG9mZnNldCBzdHJpbmcgdG8gcGFyc2VcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzZcIilcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzA2XCIpXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQy02OjAwXCIpXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBwYXJzZVNwZWNpZmllcihzKSB7XG4gICAgaWYgKHMpIHtcbiAgICAgIGNvbnN0IHIgPSBzLm1hdGNoKC9edXRjKD86KFsrLV1cXGR7MSwyfSkoPzo6KFxcZHsyfSkpPyk/JC9pKTtcbiAgICAgIGlmIChyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRml4ZWRPZmZzZXRab25lKHNpZ25lZE9mZnNldChyWzFdLCByWzJdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3Iob2Zmc2V0KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy5maXhlZCA9IG9mZnNldDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImZpeGVkXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZCA9PT0gMCA/IFwiVVRDXCIgOiBgVVRDJHtmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgfVxuXG4gIGdldCBpYW5hTmFtZSgpIHtcbiAgICBpZiAodGhpcy5maXhlZCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiRXRjL1VUQ1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYEV0Yy9HTVQke2Zvcm1hdE9mZnNldCgtdGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgICB9XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiZml4ZWRcIiAmJiBvdGhlclpvbmUuZml4ZWQgPT09IHRoaXMuZml4ZWQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbi8qKlxuICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUge1xuICBjb25zdHJ1Y3Rvcih6b25lTmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqICBAcHJpdmF0ZSAqL1xuICAgIHRoaXMuem9uZU5hbWUgPSB6b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuLi96b25lcy9pbnZhbGlkWm9uZS5qc1wiO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNTdHJpbmcsIGlzTnVtYmVyIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHtcbiAgbGV0IG9mZnNldDtcbiAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIFpvbmUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoaW5wdXQpKSB7XG4gICAgY29uc3QgbG93ZXJlZCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyZWQgPT09IFwibG9jYWxcIiB8fCBsb3dlcmVkID09PSBcInN5c3RlbVwiKSByZXR1cm4gZGVmYXVsdFpvbmU7XG4gICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gXCJ1dGNcIiB8fCBsb3dlcmVkID09PSBcImdtdFwiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dC5vZmZzZXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIFRoaXMgaXMgZHVtYiwgYnV0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIGFib3ZlIGRvZXNuJ3Qgc2VlbSB0byByZWFsbHkgd29ya1xuICAgIC8vIHNvIHdlJ3JlIGR1Y2sgY2hlY2tpbmcgaXRcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBJbnZhbGlkWm9uZShpbnB1dCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxubGV0IG5vdyA9ICgpID0+IERhdGUubm93KCksXG4gIGRlZmF1bHRab25lID0gXCJzeXN0ZW1cIixcbiAgZGVmYXVsdExvY2FsZSA9IG51bGwsXG4gIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLFxuICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLFxuICB0aHJvd09uSW52YWxpZDtcblxuLyoqXG4gKiBTZXR0aW5ncyBjb250YWlucyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0IGNvbnRyb2wgTHV4b24ncyBvdmVyYWxsIGJlaGF2aW9yLiBMdXhvbiBpcyBhIHNpbXBsZSBsaWJyYXJ5IHdpdGggZmV3IG9wdGlvbnMsIGJ1dCB0aGUgb25lcyBpdCBkb2VzIGhhdmUgbGl2ZSBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLlxuICAgKiBAdHlwZSB7ZnVuY3Rpb259XG4gICAqL1xuICBzdGF0aWMgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50XG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICogQGV4YW1wbGUgU2V0dGluZ3Mubm93ID0gKCkgPT4gRGF0ZS5ub3coKSArIDMwMDAgLy8gcHJldGVuZCBpdCBpcyAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWVcbiAgICovXG4gIHN0YXRpYyBzZXQgbm93KG4pIHtcbiAgICBub3cgPSBuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgdG8gY3JlYXRlIERhdGVUaW1lcyBpbi4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogVXNlIHRoZSB2YWx1ZSBcInN5c3RlbVwiIHRvIHJlc2V0IHRoaXMgdmFsdWUgdG8gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdFpvbmUoem9uZSkge1xuICAgIGRlZmF1bHRab25lID0gem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgc3lzdGVtJ3MgdGltZSB6b25lICh0aGUgb25lIHNldCBvbiB0aGUgbWFjaGluZSB0aGF0IHJ1bnMgdGhpcyBjb2RlKS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRab25lKCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdExvY2FsZShsb2NhbGUpIHtcbiAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyaW5nIHN5c3RlbSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0obnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHRPdXRwdXRDYWxlbmRhcihvdXRwdXRDYWxlbmRhcikge1xuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgdGhyb3dPbkludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRocm93T25JbnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQodCkge1xuICAgIHRocm93T25JbnZhbGlkID0gdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBMdXhvbidzIGdsb2JhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyByZXNldENhY2hlcygpIHtcbiAgICBMb2NhbGUucmVzZXRDYWNoZSgpO1xuICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHBhZFN0YXJ0LCByb3VuZFRvLCBoYXNSZWxhdGl2ZSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vLyB0b2RvIC0gcmVtYXAgY2FjaGluZ1xuXG5sZXQgaW50bExGQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZExGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGR0ZiA9IGludGxMRkNhY2hlW2tleV07XG4gIGlmICghZHRmKSB7XG4gICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxMRkNhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxEVENhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bERUQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxOdW1DYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkSU5GKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxOdW1DYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxOdW1DYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBpbnRsUmVsQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZFJURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9uc1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxSZWxDYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxSZWxDYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBzeXNMb2NhbGVDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7XG4gIGlmIChzeXNMb2NhbGVDYWNoZSkge1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBzeXNMb2NhbGVDYWNoZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlO1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGVTdHIpIHtcbiAgLy8gSSByZWFsbHkgd2FudCB0byBhdm9pZCB3cml0aW5nIGEgQkNQIDQ3IHBhcnNlclxuICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDdcbiAgLy8gSW5zdGVhZCwgd2UnbGwgZG8gdGhpczpcblxuICAvLyBhKSBpZiB0aGUgc3RyaW5nIGhhcyBubyAtdSBleHRlbnNpb25zLCBqdXN0IGxlYXZlIGl0IGFsb25lXG4gIC8vIGIpIGlmIGl0IGRvZXMsIHVzZSBJbnRsIHRvIHJlc29sdmUgZXZlcnl0aGluZ1xuICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXVcblxuICBjb25zdCB1SW5kZXggPSBsb2NhbGVTdHIuaW5kZXhPZihcIi11LVwiKTtcbiAgaWYgKHVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gW2xvY2FsZVN0cl07XG4gIH0gZWxzZSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTtcbiAgICB0cnkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG9wdGlvbnMgPSBnZXRDYWNoZWREVEYoc21hbGxlcikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zO1xuICAgIC8vIHJldHVybiB0aGUgc21hbGxlciBvbmUgc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHRoZSBjYWxlbmRhciBhbmQgbnVtYmVyaW5nIG92ZXJyaWRlcyB0byBpdFxuICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07XG4gIH1cbn1cblxuZnVuY3Rpb24gaW50bENvbmZpZ1N0cmluZyhsb2NhbGVTdHIsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpIHtcbiAgaWYgKG91dHB1dENhbGVuZGFyIHx8IG51bWJlcmluZ1N5c3RlbSkge1xuICAgIGxvY2FsZVN0ciArPSBcIi11XCI7XG5cbiAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLWNhLSR7b3V0cHV0Q2FsZW5kYXJ9YDtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlU3RyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwTW9udGhzKGYpIHtcbiAgY29uc3QgbXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTI7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIGksIDEpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbWFwV2Vla2RheXMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMgKyBpKTtcbiAgICBtcy5wdXNoKGYoZHQpKTtcbiAgfVxuICByZXR1cm4gbXM7XG59XG5cbmZ1bmN0aW9uIGxpc3RTdHVmZihsb2MsIGxlbmd0aCwgZGVmYXVsdE9LLCBlbmdsaXNoRm4sIGludGxGbikge1xuICBjb25zdCBtb2RlID0gbG9jLmxpc3RpbmdNb2RlKGRlZmF1bHRPSyk7XG5cbiAgaWYgKG1vZGUgPT09IFwiZXJyb3JcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZW5cIikge1xuICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydHNGYXN0TnVtYmVycyhsb2MpIHtcbiAgaWYgKGxvYy5udW1iZXJpbmdTeXN0ZW0gJiYgbG9jLm51bWJlcmluZ1N5c3RlbSAhPT0gXCJsYXRuXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiIHx8XG4gICAgICAhbG9jLmxvY2FsZSB8fFxuICAgICAgbG9jLmxvY2FsZS5zdGFydHNXaXRoKFwiZW5cIikgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7XG4gICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDtcbiAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTtcblxuICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW50bE9wdHMgPSB7IHVzZUdyb3VwaW5nOiBmYWxzZSwgLi4ub3B0cyB9O1xuICAgICAgaWYgKG9wdHMucGFkVG8gPiAwKSBpbnRsT3B0cy5taW5pbXVtSW50ZWdlckRpZ2l0cyA9IG9wdHMucGFkVG87XG4gICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0KGkpIHtcbiAgICBpZiAodGhpcy5pbmYpIHtcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiBpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5mLmZvcm1hdChmaXhlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRvIG1hdGNoIHRoZSBicm93c2VyJ3MgbnVtYmVyZm9ybWF0dGVyIGRlZmF1bHRzXG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogcm91bmRUbyhpLCAzKTtcbiAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5RGF0ZUZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIGxldCB6O1xuICAgIGlmIChkdC56b25lLmlzVW5pdmVyc2FsKSB7XG4gICAgICAvLyBVVEMtOCBvciBFdGMvVVRDLTggYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YSwgb25seSBFdGMvR01UKzggYW5kIHRoZSBsaWtlLlxuICAgICAgLy8gVGhhdCBpcyB3aHkgZml4ZWQtb2Zmc2V0IFRaIGlzIHNldCB0byB0aGF0IHVubGVzcyBpdCBpczpcbiAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULlxuICAgICAgLy8gMi4gVW5zdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXI6XG4gICAgICAvLyAgICAtIHNvbWUgZG8gbm90IHN1cHBvcnQgRXRjL1xuICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhXG4gICAgICBjb25zdCBnbXRPZmZzZXQgPSAtMSAqIChkdC5vZmZzZXQgLyA2MCk7XG4gICAgICBjb25zdCBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyBgRXRjL0dNVCske2dtdE9mZnNldH1gIDogYEV0Yy9HTVQke2dtdE9mZnNldH1gO1xuICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHtcbiAgICAgICAgeiA9IG9mZnNldFo7XG4gICAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBhbGwgZml4ZWQtb2Zmc2V0IHpvbmVzIGxpa2UgRXRjLys0OjMwIGFyZSBwcmVzZW50IGluIHR6ZGF0YS5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBtYWtlIGRvLiBUd28gY2FzZXM6XG4gICAgICAgIC8vIDEuIFRoZSBmb3JtYXQgb3B0aW9ucyB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFdlIGNhbid0IGRvIHRoYXQsIHNvIHRoZSBiZXN0XG4gICAgICAgIC8vIHdlIGNhbiBkbyBpcyBmb3JtYXQgdGhlIGRhdGUgaW4gVVRDLlxuICAgICAgICAvLyAyLiBUaGUgZm9ybWF0IG9wdGlvbnMgZG9uJ3QgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBUaGVuIHdlIGNhbiBhZGp1c3QgdGhlbVxuICAgICAgICAvLyB0aGUgdGltZSBhbmQgdGVsbCB0aGUgZm9ybWF0dGVyIHRvIHNob3cgaXQgdG8gdXMgaW4gVVRDLCBzbyB0aGF0IHRoZSB0aW1lIGlzIHJpZ2h0XG4gICAgICAgIC8vIGFuZCB0aGUgYmFkIHpvbmUgZG9lc24ndCBzaG93IHVwLlxuICAgICAgICB6ID0gXCJVVENcIjtcbiAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09IFwic3lzdGVtXCIpIHtcbiAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgeiA9IGR0LnpvbmUubmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRsT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG4gICAgaWYgKHopIHtcbiAgICAgIGludGxPcHRzLnRpbWVab25lID0gejtcbiAgICB9XG4gICAgdGhpcy5kdGYgPSBnZXRDYWNoZWREVEYoaW50bCwgaW50bE9wdHMpO1xuICB9XG5cbiAgZm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXQodGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdFRvUGFydHModGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBQb2x5UmVsRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0geyBzdHlsZTogXCJsb25nXCIsIC4uLm9wdHMgfTtcbiAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7XG4gICAgICB0aGlzLnJ0ZiA9IGdldENhY2hlZFJURihpbnRsLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW5nbGlzaC5mb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIHRoaXMub3B0cy5udW1lcmljLCB0aGlzLm9wdHMuc3R5bGUgIT09IFwibG9uZ1wiKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KSB7XG4gICAgaWYgKHRoaXMucnRmKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsZSB7XG4gIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7XG4gICAgLy8gdGhlIHN5c3RlbSBsb2NhbGUgaXMgdXNlZnVsIGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzIGJ1dCBhbm5veWluZyBmb3IgcGFyc2luZy9mb3JtYXR0aW5nIGtub3duIGZvcm1hdHNcbiAgICBjb25zdCBsb2NhbGVSID0gc3BlY2lmaWVkTG9jYWxlIHx8IChkZWZhdWx0VG9FTiA/IFwiZW4tVVNcIiA6IHN5c3RlbUxvY2FsZSgpKTtcbiAgICBjb25zdCBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07XG4gICAgY29uc3Qgb3V0cHV0Q2FsZW5kYXJSID0gb3V0cHV0Q2FsZW5kYXIgfHwgU2V0dGluZ3MuZGVmYXVsdE91dHB1dENhbGVuZGFyO1xuICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldENhY2hlKCkge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbiAgICBpbnRsRFRDYWNoZSA9IHt9O1xuICAgIGludGxOdW1DYWNoZSA9IHt9O1xuICAgIGludGxSZWxDYWNoZSA9IHt9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgbnVtYmVyaW5nLCBvdXRwdXRDYWxlbmRhciwgc3BlY2lmaWVkTG9jYWxlKSB7XG4gICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpO1xuXG4gICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7XG4gICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPSBudW1iZXJpbmcgfHwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtIHx8IG51bGw7XG4gICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyIHx8IHBhcnNlZE91dHB1dENhbGVuZGFyIHx8IG51bGw7XG4gICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpO1xuXG4gICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9O1xuICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tZXJpZGllbUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLmVyYUNhY2hlID0ge307XG5cbiAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTtcbiAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gbnVsbDtcbiAgfVxuXG4gIGdldCBmYXN0TnVtYmVycygpIHtcbiAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gc3VwcG9ydHNGYXN0TnVtYmVycyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZDtcbiAgfVxuXG4gIGxpc3RpbmdNb2RlKCkge1xuICAgIGNvbnN0IGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7XG4gICAgY29uc3QgaGFzTm9XZWlyZG5lc3MgPVxuICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBcImxhdG5cIikgJiZcbiAgICAgICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IFwiZ3JlZ29yeVwiKTtcbiAgICByZXR1cm4gaXNBY3R1YWxseUVuICYmIGhhc05vV2VpcmRuZXNzID8gXCJlblwiIDogXCJpbnRsXCI7XG4gIH1cblxuICBjbG9uZShhbHRzKSB7XG4gICAgaWYgKCFhbHRzIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFsdHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKFxuICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSxcbiAgICAgICAgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhcixcbiAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IHRydWUgfSk7XG4gIH1cblxuICByZWRlZmF1bHRUb1N5c3RlbShhbHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTtcbiAgfVxuXG4gIG1vbnRocyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5tb250aHMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQgPyB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7XG4gICAgICAgIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwTW9udGhzKChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcIm1vbnRoXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIHdlZWtkYXlzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLndlZWtkYXlzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0gZm9ybWF0XG4gICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9XG4gICAgICAgICAgOiB7IHdlZWtkYXk6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwid2Vla2RheVwiKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBtZXJpZGllbXMoZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYoXG4gICAgICB0aGlzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9LLFxuICAgICAgKCkgPT4gRW5nbGlzaC5tZXJpZGllbXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIEluIHRoZW9yeSB0aGVyZSBjb3VsZCBiZSBhcmliaXRyYXJ5IGRheSBwZXJpb2RzLiBXZSdyZSBnb25uYSBhc3N1bWUgdGhlcmUgYXJlIGV4YWN0bHkgdHdvXG4gICAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci5cbiAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBpbnRsID0geyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH07XG4gICAgICAgICAgdGhpcy5tZXJpZGllbUNhY2hlID0gW0RhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDkpLCBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCAxOSldLm1hcChcbiAgICAgICAgICAgIChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImRheXBlcmlvZFwiKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlcmFzKGxlbmd0aCwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2guZXJhcywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTtcblxuICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzXG4gICAgICAvLyB0byBkZWZpbml0ZWx5IGVudW1lcmF0ZSB0aGVtLlxuICAgICAgaWYgKCF0aGlzLmVyYUNhY2hlW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+XG4gICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImVyYVwiKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lcmFDYWNoZVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyksXG4gICAgICByZXN1bHRzID0gZGYuZm9ybWF0VG9QYXJ0cygpLFxuICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7XG4gICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgbnVtYmVyRm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKVxuICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpXG4gICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTtcbiAgfVxuXG4gIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5RGF0ZUZvcm1hdHRlcihkdCwgdGhpcy5pbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICByZWxGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7XG4gIH1cblxuICBsaXN0Rm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBnZXRDYWNoZWRMRih0aGlzLmludGwsIG9wdHMpO1xuICB9XG5cbiAgaXNFbmdsaXNoKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gXCJlblwiIHx8XG4gICAgICB0aGlzLmxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBcImVuLXVzXCIgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoXCJlbi11c1wiKVxuICAgICk7XG4gIH1cblxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJlxuICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJlxuICAgICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gb3RoZXIub3V0cHV0Q2FsZW5kYXJcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgdW50cnVuY2F0ZVllYXIsXG4gIHNpZ25lZE9mZnNldCxcbiAgcGFyc2VJbnRlZ2VyLFxuICBwYXJzZU1pbGxpcyxcbiAgaWFuYVJlZ2V4LFxuICBpc1VuZGVmaW5lZCxcbiAgcGFyc2VGbG9hdGluZ1xufSBmcm9tIFwiLi91dGlsLmpzXCI7XG5pbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vKlxuICogVGhpcyBmaWxlIGhhbmRsZXMgcGFyc2luZyBmb3Igd2VsbC1zcGVjaWZpZWQgZm9ybWF0cy4gSGVyZSdzIGhvdyBpdCB3b3JrczpcbiAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLlxuICogQW4gZXh0cmFjdG9yIGlzIGp1c3QgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVnZXggbWF0Y2ggYXJyYXkgYW5kIHJldHVybnMgYSB7IHllYXI6IC4uLiwgbW9udGg6IC4uLiB9IG9iamVjdFxuICogcGFyc2UoKSBkb2VzIHRoZSB3b3JrIG9mIGV4ZWN1dGluZyB0aGUgcmVnZXggYW5kIGFwcGx5aW5nIHRoZSBleHRyYWN0b3IuIEl0IHRha2VzIG11bHRpcGxlIHJlZ2V4L2V4dHJhY3RvciBwYWlycyB0byB0cnkgaW4gc2VxdWVuY2UuXG4gKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgXCJjdXJzb3JcIiByZXByZXNlbnRpbmcgdGhlIG9mZnNldCBpbiB0aGUgbWF0Y2ggdG8gbG9vayBhdC4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGNvbWJpbmUgZXh0cmFjdG9ycy5cbiAqIGNvbWJpbmVFeHRyYWN0b3JzKCkgZG9lcyB0aGUgd29yayBvZiBjb21iaW5pbmcgdGhlbSwga2VlcGluZyB0cmFjayBvZiB0aGUgY3Vyc29yIHRocm91Z2ggbXVsdGlwbGUgZXh0cmFjdGlvbnMuXG4gKiBTb21lIGV4dHJhY3Rpb25zIGFyZSBzdXBlciBkdW1iIGFuZCBzaW1wbGVQYXJzZSBhbmQgZnJvbVN0cmluZ3MgaGVscCBEUlkgdGhlbS5cbiAqL1xuXG5mdW5jdGlvbiBjb21iaW5lUmVnZXhlcyguLi5yZWdleGVzKSB7XG4gIGNvbnN0IGZ1bGwgPSByZWdleGVzLnJlZHVjZSgoZiwgcikgPT4gZiArIHIuc291cmNlLCBcIlwiKTtcbiAgcmV0dXJuIFJlZ0V4cChgXiR7ZnVsbH0kYCk7XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVFeHRyYWN0b3JzKC4uLmV4dHJhY3RvcnMpIHtcbiAgcmV0dXJuIG0gPT5cbiAgICBleHRyYWN0b3JzXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoW21lcmdlZFZhbHMsIG1lcmdlZFpvbmUsIGN1cnNvcl0sIGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgW3ZhbCwgem9uZSwgbmV4dF0gPSBleChtLCBjdXJzb3IpO1xuICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgem9uZSB8fCBtZXJnZWRab25lLCBuZXh0XTtcbiAgICAgICAgfSxcbiAgICAgICAgW3t9LCBudWxsLCAxXVxuICAgICAgKVxuICAgICAgLnNsaWNlKDAsIDIpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzLCAuLi5wYXR0ZXJucykge1xuICBpZiAocyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW3JlZ2V4LCBleHRyYWN0b3JdIG9mIHBhdHRlcm5zKSB7XG4gICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIHJldHVybiBleHRyYWN0b3IobSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbbnVsbCwgbnVsbF07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHtcbiAgcmV0dXJuIChtYXRjaCwgY3Vyc29yKSA9PiB7XG4gICAgY29uc3QgcmV0ID0ge307XG4gICAgbGV0IGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmV0W2tleXNbaV1dID0gcGFyc2VJbnRlZ2VyKG1hdGNoW2N1cnNvciArIGldKTtcbiAgICB9XG4gICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldO1xuICB9O1xufVxuXG4vLyBJU08gYW5kIFNRTCBwYXJzaW5nXG5jb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/KS87XG5jb25zdCBpc29FeHRlbmRlZFpvbmUgPSBgKD86JHtvZmZzZXRSZWdleC5zb3VyY2V9Pyg/OlxcXFxbKCR7aWFuYVJlZ2V4LnNvdXJjZX0pXFxcXF0pPyk/YDtcbmNvbnN0IGlzb1RpbWVCYXNlUmVnZXggPSAvKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlsuLF0oXFxkezEsMzB9KSk/KT8pPy87XG5jb25zdCBpc29UaW1lUmVnZXggPSBSZWdFeHAoYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JHtpc29FeHRlbmRlZFpvbmV9YCk7XG5jb25zdCBpc29UaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoYCg/OlQke2lzb1RpbWVSZWdleC5zb3VyY2V9KT9gKTtcbmNvbnN0IGlzb1ltZFJlZ2V4ID0gLyhbKy1dXFxkezZ9fFxcZHs0fSkoPzotPyhcXGRcXGQpKD86LT8oXFxkXFxkKSk/KT8vO1xuY29uc3QgaXNvV2Vla1JlZ2V4ID0gLyhcXGR7NH0pLT9XKFxcZFxcZCkoPzotPyhcXGQpKT8vO1xuY29uc3QgaXNvT3JkaW5hbFJlZ2V4ID0gLyhcXGR7NH0pLT8oXFxkezN9KS87XG5jb25zdCBleHRyYWN0SVNPV2Vla0RhdGEgPSBzaW1wbGVQYXJzZShcIndlZWtZZWFyXCIsIFwid2Vla051bWJlclwiLCBcIndlZWtEYXlcIik7XG5jb25zdCBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZShcInllYXJcIiwgXCJvcmRpbmFsXCIpO1xuY29uc3Qgc3FsWW1kUmVnZXggPSAvKFxcZHs0fSktKFxcZFxcZCktKFxcZFxcZCkvOyAvLyBkdW1iZWQtZG93biB2ZXJzaW9uIG9mIHRoZSBJU08gb25lXG5jb25zdCBzcWxUaW1lUmVnZXggPSBSZWdFeHAoXG4gIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YFxuKTtcbmNvbnN0IHNxbFRpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86ICR7c3FsVGltZVJlZ2V4LnNvdXJjZX0pP2ApO1xuXG5mdW5jdGlvbiBpbnQobWF0Y2gsIHBvcywgZmFsbGJhY2spIHtcbiAgY29uc3QgbSA9IG1hdGNoW3Bvc107XG4gIHJldHVybiBpc1VuZGVmaW5lZChtKSA/IGZhbGxiYWNrIDogcGFyc2VJbnRlZ2VyKG0pO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPWW1kKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3QgaXRlbSA9IHtcbiAgICB5ZWFyOiBpbnQobWF0Y2gsIGN1cnNvciksXG4gICAgbW9udGg6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMSksXG4gICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikge1xuICBjb25zdCBpdGVtID0ge1xuICAgIGhvdXJzOiBpbnQobWF0Y2gsIGN1cnNvciwgMCksXG4gICAgbWludXRlczogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAwKSxcbiAgICBzZWNvbmRzOiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDApLFxuICAgIG1pbGxpc2Vjb25kczogcGFyc2VNaWxsaXMobWF0Y2hbY3Vyc29yICsgM10pXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyA0XTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT09mZnNldChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLFxuICAgIGZ1bGxPZmZzZXQgPSBzaWduZWRPZmZzZXQobWF0Y2hbY3Vyc29yICsgMV0sIG1hdGNoW2N1cnNvciArIDJdKSxcbiAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElBTkFab25lKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3Qgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTtcbn1cblxuLy8gSVNPIHRpbWUgcGFyc2luZ1xuXG5jb25zdCBpc29UaW1lT25seSA9IFJlZ0V4cChgXlQ/JHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0kYCk7XG5cbi8vIElTTyBkdXJhdGlvbiBwYXJzaW5nXG5cbmNvbnN0IGlzb0R1cmF0aW9uID0gL14tP1AoPzooPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylZKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylNKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylXKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylEKT8oPzpUKD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pSCk/KD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pTSk/KD86KC0/XFxkezEsMjB9KSg/OlsuLF0oLT9cXGR7MSwyMH0pKT9TKT8pPykkLztcblxuZnVuY3Rpb24gZXh0cmFjdElTT0R1cmF0aW9uKG1hdGNoKSB7XG4gIGNvbnN0IFtcbiAgICBzLFxuICAgIHllYXJTdHIsXG4gICAgbW9udGhTdHIsXG4gICAgd2Vla1N0cixcbiAgICBkYXlTdHIsXG4gICAgaG91clN0cixcbiAgICBtaW51dGVTdHIsXG4gICAgc2Vjb25kU3RyLFxuICAgIG1pbGxpc2Vjb25kc1N0clxuICBdID0gbWF0Y2g7XG5cbiAgY29uc3QgaGFzTmVnYXRpdmVQcmVmaXggPSBzWzBdID09PSBcIi1cIjtcbiAgY29uc3QgbmVnYXRpdmVTZWNvbmRzID0gc2Vjb25kU3RyICYmIHNlY29uZFN0clswXSA9PT0gXCItXCI7XG5cbiAgY29uc3QgbWF5YmVOZWdhdGUgPSAobnVtLCBmb3JjZSA9IGZhbHNlKSA9PlxuICAgIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCAobnVtICYmIGhhc05lZ2F0aXZlUHJlZml4KSkgPyAtbnVtIDogbnVtO1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgeWVhcnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoeWVhclN0cikpLFxuICAgICAgbW9udGhzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1vbnRoU3RyKSksXG4gICAgICB3ZWVrczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh3ZWVrU3RyKSksXG4gICAgICBkYXlzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKGRheVN0cikpLFxuICAgICAgaG91cnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoaG91clN0cikpLFxuICAgICAgbWludXRlczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhtaW51dGVTdHIpKSxcbiAgICAgIHNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoc2Vjb25kU3RyKSwgc2Vjb25kU3RyID09PSBcIi0wXCIpLFxuICAgICAgbWlsbGlzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZU1pbGxpcyhtaWxsaXNlY29uZHNTdHIpLCBuZWdhdGl2ZVNlY29uZHMpXG4gICAgfVxuICBdO1xufVxuXG4vLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmtcbi8vIGFuZCBub3QganVzdCB0aGF0IHdlJ3JlIGluIC0yNDAgKnJpZ2h0IG5vdyouIEJ1dCBzaW5jZSBJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSB1c2VkIHRoYXQgb2Z0ZW5cbi8vIEknbSBqdXN0IGdvaW5nIHRvIGlnbm9yZSB0aGF0XG5jb25zdCBvYnNPZmZzZXRzID0ge1xuICBHTVQ6IDAsXG4gIEVEVDogLTQgKiA2MCxcbiAgRVNUOiAtNSAqIDYwLFxuICBDRFQ6IC01ICogNjAsXG4gIENTVDogLTYgKiA2MCxcbiAgTURUOiAtNiAqIDYwLFxuICBNU1Q6IC03ICogNjAsXG4gIFBEVDogLTcgKiA2MCxcbiAgUFNUOiAtOCAqIDYwXG59O1xuXG5mdW5jdGlvbiBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgeWVhcjogeWVhclN0ci5sZW5ndGggPT09IDIgPyB1bnRydW5jYXRlWWVhcihwYXJzZUludGVnZXIoeWVhclN0cikpIDogcGFyc2VJbnRlZ2VyKHllYXJTdHIpLFxuICAgIG1vbnRoOiBFbmdsaXNoLm1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpICsgMSxcbiAgICBkYXk6IHBhcnNlSW50ZWdlcihkYXlTdHIpLFxuICAgIGhvdXI6IHBhcnNlSW50ZWdlcihob3VyU3RyKSxcbiAgICBtaW51dGU6IHBhcnNlSW50ZWdlcihtaW51dGVTdHIpXG4gIH07XG5cbiAgaWYgKHNlY29uZFN0cikgcmVzdWx0LnNlY29uZCA9IHBhcnNlSW50ZWdlcihzZWNvbmRTdHIpO1xuICBpZiAod2Vla2RheVN0cikge1xuICAgIHJlc3VsdC53ZWVrZGF5ID1cbiAgICAgIHdlZWtkYXlTdHIubGVuZ3RoID4gM1xuICAgICAgICA/IEVuZ2xpc2gud2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxXG4gICAgICAgIDogRW5nbGlzaC53ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUkZDIDI4MjIvNTMyMlxuY29uc3QgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxkXFxkKShcXGRcXGQpKSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgICAgLFxuICAgICAgd2Vla2RheVN0cixcbiAgICAgIGRheVN0cixcbiAgICAgIG1vbnRoU3RyLFxuICAgICAgeWVhclN0cixcbiAgICAgIGhvdXJTdHIsXG4gICAgICBtaW51dGVTdHIsXG4gICAgICBzZWNvbmRTdHIsXG4gICAgICBvYnNPZmZzZXQsXG4gICAgICBtaWxPZmZzZXQsXG4gICAgICBvZmZIb3VyU3RyLFxuICAgICAgb2ZmTWludXRlU3RyXG4gICAgXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcblxuICBsZXQgb2Zmc2V0O1xuICBpZiAob2JzT2Zmc2V0KSB7XG4gICAgb2Zmc2V0ID0gb2JzT2Zmc2V0c1tvYnNPZmZzZXRdO1xuICB9IGVsc2UgaWYgKG1pbE9mZnNldCkge1xuICAgIG9mZnNldCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgb2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cik7XG4gIH1cblxuICByZXR1cm4gW3Jlc3VsdCwgbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpXTtcbn1cblxuZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXChbXigpXSpcXCl8W1xcblxcdF0vZywgXCIgXCIpXG4gICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG4vLyBodHRwIGRhdGVcblxuY29uc3QgcmZjMTEyMyA9IC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksIChcXGRcXGQpIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKFxcZHs0fSkgKFxcZFxcZCk6KFxcZFxcZCk6KFxcZFxcZCkgR01UJC8sXG4gIHJmYzg1MCA9IC9eKE1vbmRheXxUdWVzZGF5fFdlZG5lc2RheXxUaHVyc2RheXxGcmlkYXl8U2F0dXJkYXl8U3VuZGF5KSwgKFxcZFxcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgYXNjaWkgPSAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKCBcXGR8XFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSAoXFxkezR9KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0UkZDMTEyM09yODUwKG1hdGNoKSB7XG4gIGNvbnN0IFssIHdlZWtkYXlTdHIsIGRheVN0ciwgbW9udGhTdHIsIHllYXJTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcbiAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBU0NJSShtYXRjaCkge1xuICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0ciwgeWVhclN0cl0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG4gIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdO1xufVxuXG5jb25zdCBpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvWW1kUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1dlZWtSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvT3JkaW5hbFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvVGltZUNvbWJpbmVkUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29UaW1lUmVnZXgpO1xuXG5jb25zdCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPWW1kLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoXG4gIGV4dHJhY3RJU09XZWVrRGF0YSxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT09yZGluYWxEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuLypcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLFxuICAgIFtpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZV0sXG4gICAgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykge1xuICByZXR1cm4gcGFyc2UocHJlcHJvY2Vzc1JGQzI4MjIocyksIFtyZmMyODIyLCBleHRyYWN0UkZDMjgyMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVFRQRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbcmZjODUwLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRHVyYXRpb24ocykge1xuICByZXR1cm4gcGFyc2UocywgW2lzb0R1cmF0aW9uLCBleHRyYWN0SVNPRHVyYXRpb25dKTtcbn1cblxuY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pO1xufVxuXG5jb25zdCBzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsWW1kUmVnZXgsIHNxbFRpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU1FMKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSxcbiAgICBbc3FsVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmVdXG4gICk7XG59XG4iLCAiaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWREdXJhdGlvbkVycm9yLCBJbnZhbGlkVW5pdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCB7IHBhcnNlSVNPRHVyYXRpb24sIHBhcnNlSVNPVGltZU9ubHkgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBhc051bWJlcixcbiAgaGFzT3duUHJvcGVydHksXG4gIGlzTnVtYmVyLFxuICBpc1VuZGVmaW5lZCxcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuXG5jb25zdCBJTlZBTElEID0gXCJJbnZhbGlkIER1cmF0aW9uXCI7XG5cbi8vIHVuaXQgY29udmVyc2lvbiBjb25zdGFudHNcbmV4cG9ydCBjb25zdCBsb3dPcmRlck1hdHJpeCA9IHtcbiAgICB3ZWVrczoge1xuICAgICAgZGF5czogNyxcbiAgICAgIGhvdXJzOiA3ICogMjQsXG4gICAgICBtaW51dGVzOiA3ICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgZGF5czoge1xuICAgICAgaG91cnM6IDI0LFxuICAgICAgbWludXRlczogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIGhvdXJzOiB7IG1pbnV0ZXM6IDYwLCBzZWNvbmRzOiA2MCAqIDYwLCBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwIH0sXG4gICAgbWludXRlczogeyBzZWNvbmRzOiA2MCwgbWlsbGlzZWNvbmRzOiA2MCAqIDEwMDAgfSxcbiAgICBzZWNvbmRzOiB7IG1pbGxpc2Vjb25kczogMTAwMCB9LFxuICB9LFxuICBjYXN1YWxNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiA1MixcbiAgICAgIGRheXM6IDM2NSxcbiAgICAgIGhvdXJzOiAzNjUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDM2NSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDM2NSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBxdWFydGVyczoge1xuICAgICAgbW9udGhzOiAzLFxuICAgICAgd2Vla3M6IDEzLFxuICAgICAgZGF5czogOTEsXG4gICAgICBob3VyczogOTEgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDkxICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBtb250aHM6IHtcbiAgICAgIHdlZWtzOiA0LFxuICAgICAgZGF5czogMzAsXG4gICAgICBob3VyczogMzAgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDMwICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcblxuICAgIC4uLmxvd09yZGVyTWF0cml4LFxuICB9LFxuICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCxcbiAgZGF5c0luTW9udGhBY2N1cmF0ZSA9IDE0NjA5Ny4wIC8gNDgwMCxcbiAgYWNjdXJhdGVNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlLFxuICAgICAgaG91cnM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0LFxuICAgICAgbWludXRlczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIHF1YXJ0ZXJzOiB7XG4gICAgICBtb250aHM6IDMsXG4gICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gMjgsXG4gICAgICBkYXlzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA0LFxuICAgICAgaG91cnM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCkgLyA0LFxuICAgICAgbWludXRlczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjApIC8gNCxcbiAgICAgIHNlY29uZHM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjApIC8gNCxcbiAgICAgIG1pbGxpc2Vjb25kczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDApIC8gNCxcbiAgICB9LFxuICAgIG1vbnRoczoge1xuICAgICAgd2Vla3M6IGRheXNJbk1vbnRoQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luTW9udGhBY2N1cmF0ZSxcbiAgICAgIGhvdXJzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQsXG4gICAgICBtaW51dGVzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgLi4ubG93T3JkZXJNYXRyaXgsXG4gIH07XG5cbi8vIHVuaXRzIG9yZGVyZWQgYnkgc2l6ZVxuY29uc3Qgb3JkZXJlZFVuaXRzID0gW1xuICBcInllYXJzXCIsXG4gIFwicXVhcnRlcnNcIixcbiAgXCJtb250aHNcIixcbiAgXCJ3ZWVrc1wiLFxuICBcImRheXNcIixcbiAgXCJob3Vyc1wiLFxuICBcIm1pbnV0ZXNcIixcbiAgXCJzZWNvbmRzXCIsXG4gIFwibWlsbGlzZWNvbmRzXCIsXG5dO1xuXG5jb25zdCByZXZlcnNlVW5pdHMgPSBvcmRlcmVkVW5pdHMuc2xpY2UoMCkucmV2ZXJzZSgpO1xuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMgXCJjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBqdXN0IGxpa2UgdGhpcyBvbmUsIGJ1dCB3aXRoIHRoZXNlIGNoYW5nZXNcIlxuZnVuY3Rpb24gY2xvbmUoZHVyLCBhbHRzLCBjbGVhciA9IGZhbHNlKSB7XG4gIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHNcbiAgY29uc3QgY29uZiA9IHtcbiAgICB2YWx1ZXM6IGNsZWFyID8gYWx0cy52YWx1ZXMgOiB7IC4uLmR1ci52YWx1ZXMsIC4uLihhbHRzLnZhbHVlcyB8fCB7fSkgfSxcbiAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLFxuICAgIGNvbnZlcnNpb25BY2N1cmFjeTogYWx0cy5jb252ZXJzaW9uQWNjdXJhY3kgfHwgZHVyLmNvbnZlcnNpb25BY2N1cmFjeSxcbiAgfTtcbiAgcmV0dXJuIG5ldyBEdXJhdGlvbihjb25mKTtcbn1cblxuZnVuY3Rpb24gYW50aVRydW5jKG4pIHtcbiAgcmV0dXJuIG4gPCAwID8gTWF0aC5mbG9vcihuKSA6IE1hdGguY2VpbChuKTtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gY29udmVydChtYXRyaXgsIGZyb21NYXAsIGZyb21Vbml0LCB0b01hcCwgdG9Vbml0KSB7XG4gIGNvbnN0IGNvbnYgPSBtYXRyaXhbdG9Vbml0XVtmcm9tVW5pdF0sXG4gICAgcmF3ID0gZnJvbU1hcFtmcm9tVW5pdF0gLyBjb252LFxuICAgIHNhbWVTaWduID0gTWF0aC5zaWduKHJhdykgPT09IE1hdGguc2lnbih0b01hcFt0b1VuaXRdKSxcbiAgICAvLyBvaywgc28gdGhpcyBpcyB3aWxkLCBidXQgc2VlIHRoZSBtYXRyaXggaW4gdGhlIHRlc3RzXG4gICAgYWRkZWQgPVxuICAgICAgIXNhbWVTaWduICYmIHRvTWFwW3RvVW5pdF0gIT09IDAgJiYgTWF0aC5hYnMocmF3KSA8PSAxID8gYW50aVRydW5jKHJhdykgOiBNYXRoLnRydW5jKHJhdyk7XG4gIHRvTWFwW3RvVW5pdF0gKz0gYWRkZWQ7XG4gIGZyb21NYXBbZnJvbVVuaXRdIC09IGFkZGVkICogY29udjtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVzKG1hdHJpeCwgdmFscykge1xuICByZXZlcnNlVW5pdHMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgIGlmICghaXNVbmRlZmluZWQodmFsc1tjdXJyZW50XSkpIHtcbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICBjb252ZXJ0KG1hdHJpeCwgdmFscywgcHJldmlvdXMsIHZhbHMsIGN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICB9XG4gIH0sIG51bGwpO1xufVxuXG4vKipcbiAqIEEgRHVyYXRpb24gb2JqZWN0IHJlcHJlc2VudHMgYSBwZXJpb2Qgb2YgdGltZSwgbGlrZSBcIjIgbW9udGhzXCIgb3IgXCIxIGRheSwgMSBob3VyXCIuIENvbmNlcHR1YWxseSwgaXQncyBqdXN0IGEgbWFwIG9mIHVuaXRzIHRvIHRoZWlyIHF1YW50aXRpZXMsIGFjY29tcGFuaWVkIGJ5IHNvbWUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGFuZCBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLiBUaGV5IGNhbiBiZSB1c2VkIG9uIHRoZWlyIG93biBvciBpbiBjb25qdW5jdGlvbiB3aXRoIG90aGVyIEx1eG9uIHR5cGVzOyBmb3IgZXhhbXBsZSwgeW91IGNhbiB1c2Uge0BsaW5rIERhdGVUaW1lI3BsdXN9IHRvIGFkZCBhIER1cmF0aW9uIG9iamVjdCB0byBhIERhdGVUaW1lLCBwcm9kdWNpbmcgYW5vdGhlciBEYXRlVGltZS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIER1cmF0aW9uOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhIER1cmF0aW9uLCB1c2Uge0BsaW5rIER1cmF0aW9uI2Zyb21NaWxsaXN9LCB7QGxpbmsgRHVyYXRpb24jZnJvbU9iamVjdH0sIG9yIHtAbGluayBEdXJhdGlvbiNmcm9tSVNPfS5cbiAqICogKipVbml0IHZhbHVlcyoqIFNlZSB0aGUge0BsaW5rIER1cmF0aW9uI3llYXJzfSwge0BsaW5rIER1cmF0aW9uI21vbnRoc30sIHtAbGluayBEdXJhdGlvbiN3ZWVrc30sIHtAbGluayBEdXJhdGlvbiNkYXlzfSwge0BsaW5rIER1cmF0aW9uI2hvdXJzfSwge0BsaW5rIER1cmF0aW9uI21pbnV0ZXN9LCB7QGxpbmsgRHVyYXRpb24jc2Vjb25kc30sIHtAbGluayBEdXJhdGlvbiNtaWxsaXNlY29uZHN9IGFjY2Vzc29ycy5cbiAqICogKipDb25maWd1cmF0aW9uKiogU2VlICB7QGxpbmsgRHVyYXRpb24jbG9jYWxlfSBhbmQge0BsaW5rIER1cmF0aW9uI251bWJlcmluZ1N5c3RlbX0gYWNjZXNzb3JzLlxuICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG5ldyBEdXJhdGlvbnMgb3V0IG9mIG9sZCBvbmVzIHVzZSB7QGxpbmsgRHVyYXRpb24jcGx1c30sIHtAbGluayBEdXJhdGlvbiNtaW51c30sIHtAbGluayBEdXJhdGlvbiNub3JtYWxpemV9LCB7QGxpbmsgRHVyYXRpb24jc2V0fSwge0BsaW5rIER1cmF0aW9uI3JlY29uZmlndXJlfSwge0BsaW5rIER1cmF0aW9uI3NoaWZ0VG99LCBhbmQge0BsaW5rIER1cmF0aW9uI25lZ2F0ZX0uXG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgRHVyYXRpb24gaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgRHVyYXRpb24jYXN9LCB7QGxpbmsgRHVyYXRpb24jdG9JU099LCB7QGxpbmsgRHVyYXRpb24jdG9Gb3JtYXR9LCBhbmQge0BsaW5rIER1cmF0aW9uI3RvSlNPTn1cbiAqXG4gKiBUaGVyZSdzIGFyZSBtb3JlIG1ldGhvZHMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIHZhbGlkaXR5LCBzZWUgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCBhY2N1cmF0ZSA9IGNvbmZpZy5jb252ZXJzaW9uQWNjdXJhY3kgPT09IFwibG9uZ3Rlcm1cIiB8fCBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlcyA9IGNvbmZpZy52YWx1ZXM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGFjY3VyYXRlID8gXCJsb25ndGVybVwiIDogXCJjYXN1YWxcIjtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMubWF0cml4ID0gYWNjdXJhdGUgPyBhY2N1cmF0ZU1hdHJpeCA6IGNhc3VhbE1hdHJpeDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EdXJhdGlvbiA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKGNvdW50LCBvcHRzKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IGNvdW50IH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLlxuICAgKiBJZiB0aGlzIG9iamVjdCBpcyBlbXB0eSB0aGVuIGEgemVybyBtaWxsaXNlY29uZHMgZHVyYXRpb24gaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoucXVhcnRlcnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3Vyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz1bXV0gLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgRHVyYXRpb24uZnJvbU9iamVjdDogYXJndW1lbnQgZXhwZWN0ZWQgdG8gYmUgYW4gb2JqZWN0LCBnb3QgJHtcbiAgICAgICAgICBvYmogPT09IG51bGwgPyBcIm51bGxcIiA6IHR5cGVvZiBvYmpcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7XG4gICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLFxuICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICAgIGNvbnZlcnNpb25BY2N1cmFjeTogb3B0cy5jb252ZXJzaW9uQWNjdXJhY3ksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBEdXJhdGlvbkxpa2UuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZVxuICAgKiBPbmUgb2Y6XG4gICAqIC0gb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuXG4gICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHNcbiAgICogLSBEdXJhdGlvbiBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uTGlrZSkge1xuICAgIGlmIChpc051bWJlcihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpO1xuICAgIH0gZWxzZSBpZiAoRHVyYXRpb24uaXNEdXJhdGlvbihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gZHVyYXRpb25MaWtlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoZHVyYXRpb25MaWtlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgVW5rbm93biBkdXJhdGlvbiBhcmd1bWVudCAke2R1cmF0aW9uTGlrZX0gb2YgdHlwZSAke3R5cGVvZiBkdXJhdGlvbkxpa2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDNZNk0xVzREVDEySDMwTTVTJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDMsIG1vbnRoczogNiwgd2Vla3M6IDEsIGRheXM6IDQsIGhvdXJzOiAxMiwgbWludXRlczogMzAsIHNlY29uZHM6IDUgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQVDIzSCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyMyB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1A1WTNNJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDUsIG1vbnRoczogMyB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21JU08odGV4dCwgb3B0cykge1xuICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09EdXJhdGlvbih0ZXh0KTtcbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChwYXJzZWQsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSB0aW1lIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0ZXh0IHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMToyMjozMy40NDQnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDIyLCBzZWNvbmRzOiAzMywgbWlsbGlzZWNvbmRzOiA0NDQgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExOjAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3BhcnNlZF0gPSBwYXJzZUlTT1RpbWVPbmx5KHRleHQpO1xuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwidW5wYXJzYWJsZVwiLCBgdGhlIGlucHV0IFwiJHt0ZXh0fVwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgZGF0ZXRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRHVyYXRpb25FcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplVW5pdCh1bml0KSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHtcbiAgICAgIHllYXI6IFwieWVhcnNcIixcbiAgICAgIHllYXJzOiBcInllYXJzXCIsXG4gICAgICBxdWFydGVyOiBcInF1YXJ0ZXJzXCIsXG4gICAgICBxdWFydGVyczogXCJxdWFydGVyc1wiLFxuICAgICAgbW9udGg6IFwibW9udGhzXCIsXG4gICAgICBtb250aHM6IFwibW9udGhzXCIsXG4gICAgICB3ZWVrOiBcIndlZWtzXCIsXG4gICAgICB3ZWVrczogXCJ3ZWVrc1wiLFxuICAgICAgZGF5OiBcImRheXNcIixcbiAgICAgIGRheXM6IFwiZGF5c1wiLFxuICAgICAgaG91cjogXCJob3Vyc1wiLFxuICAgICAgaG91cnM6IFwiaG91cnNcIixcbiAgICAgIG1pbnV0ZTogXCJtaW51dGVzXCIsXG4gICAgICBtaW51dGVzOiBcIm1pbnV0ZXNcIixcbiAgICAgIHNlY29uZDogXCJzZWNvbmRzXCIsXG4gICAgICBzZWNvbmRzOiBcInNlY29uZHNcIixcbiAgICAgIG1pbGxpc2Vjb25kOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgICAgbWlsbGlzZWNvbmRzOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgIH1bdW5pdCA/IHVuaXQudG9Mb3dlckNhc2UoKSA6IHVuaXRdO1xuXG4gICAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIER1cmF0aW9uLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNEdXJhdGlvbihvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkR1cmF0aW9uKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgIHRoZSBsb2NhbGUgb2YgYSBEdXJhdGlvbiwgc3VjaCAnZW4tR0InXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIER1cmF0aW9uLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIER1cmF0aW9uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy4gWW91IG1heSB1c2UgdGhlc2UgdG9rZW5zOlxuICAgKiAqIGBTYCBmb3IgbWlsbGlzZWNvbmRzXG4gICAqICogYHNgIGZvciBzZWNvbmRzXG4gICAqICogYG1gIGZvciBtaW51dGVzXG4gICAqICogYGhgIGZvciBob3Vyc1xuICAgKiAqIGBkYCBmb3IgZGF5c1xuICAgKiAqIGB3YCBmb3Igd2Vla3NcbiAgICogKiBgTWAgZm9yIG1vbnRoc1xuICAgKiAqIGB5YCBmb3IgeWVhcnNcbiAgICogTm90ZXM6XG4gICAqICogQWRkIHBhZGRpbmcgYnkgcmVwZWF0aW5nIHRoZSB0b2tlbiwgZS5nLiBcInl5XCIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgXCJoaGhoXCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzXG4gICAqICogVG9rZW5zIGNhbiBiZSBlc2NhcGVkIGJ5IHdyYXBwaW5nIHdpdGggc2luZ2xlIHF1b3Rlcy5cbiAgICogKiBUaGUgZHVyYXRpb24gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlIHNldCBvZiB1bml0cyBpbiB0aGUgZm9ybWF0IHN0cmluZyB1c2luZyB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30gYW5kIHRoZSBEdXJhdGlvbnMncyBjb252ZXJzaW9uIGFjY3VyYWN5IHNldHRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5mbG9vcj10cnVlXSAtIGZsb29yIG51bWVyaWNhbCB2YWx1ZXNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieSBkIHNcIikgLy89PiBcIjEgNiAyXCJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieXkgZGQgc3NzXCIpIC8vPT4gXCIwMSAwNiAwMDJcIlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoXCJNIFNcIikgLy89PiBcIjEyIDUxODQwMjAwMFwiXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZtdE9wdHMgPSB7XG4gICAgICAuLi5vcHRzLFxuICAgICAgZmxvb3I6IG9wdHMucm91bmQgIT09IGZhbHNlICYmIG9wdHMuZmxvb3IgIT09IGZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLCBmbXRPcHRzKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEdXJhdGlvbiB3aXRoIGFsbCB1bml0cyBpbmNsdWRlZC5cbiAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0XG4gICAqIEBwYXJhbSBvcHRzIC0gT24gb3B0aW9uIG9iamVjdCB0byBvdmVycmlkZSB0aGUgZm9ybWF0dGluZy4gQWNjZXB0cyB0aGUgc2FtZSBrZXlzIGFzIHRoZSBvcHRpb25zIHBhcmFtZXRlciBvZiB0aGUgbmF0aXZlIGBJbnQuTnVtYmVyRm9ybWF0YCBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyBgbGlzdFN0eWxlYC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBganNcbiAgICogdmFyIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxLCBob3VyczogNSwgbWludXRlczogNiB9KVxuICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnXG4gICAqIGR1ci50b0h1bWFuKHsgbGlzdFN0eWxlOiBcImxvbmdcIiB9KSAvLz0+ICcxIGRheSwgNSBob3VycywgYW5kIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyB1bml0RGlzcGxheTogXCJzaG9ydFwiIH0pIC8vPT4gJzEgZGF5LCA1IGhyLCA2IG1pbidcbiAgICogYGBgXG4gICAqL1xuICB0b0h1bWFuKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGwgPSBvcmRlcmVkVW5pdHNcbiAgICAgIC5tYXAoKHVuaXQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZXNbdW5pdF07XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAgICAgLm51bWJlckZvcm1hdHRlcih7IHN0eWxlOiBcInVuaXRcIiwgdW5pdERpc3BsYXk6IFwibG9uZ1wiLCAuLi5vcHRzLCB1bml0OiB1bml0LnNsaWNlKDAsIC0xKSB9KVxuICAgICAgICAgIC5mb3JtYXQodmFsKTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChuKSA9PiBuKTtcblxuICAgIHJldHVybiB0aGlzLmxvY1xuICAgICAgLmxpc3RGb3JtYXR0ZXIoeyB0eXBlOiBcImNvbmp1bmN0aW9uXCIsIHN0eWxlOiBvcHRzLmxpc3RTdHlsZSB8fCBcIm5hcnJvd1wiLCAuLi5vcHRzIH0pXG4gICAgICAuZm9ybWF0KGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRHVyYXRpb24ncyB2YWx1ZXMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4ge307XG4gICAgcmV0dXJuIHsgLi4udGhpcy52YWx1ZXMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAzLCBzZWNvbmRzOiA0NSB9KS50b0lTTygpIC8vPT4gJ1AzWVQ0NVMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDQsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDRNVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNSB9KS50b0lTTygpIC8vPT4gJ1A1TSdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDUgfSkudG9JU08oKSAvLz0+ICdQVDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWlsbGlzZWNvbmRzOiA2IH0pLnRvSVNPKCkgLy89PiAnUFQwLjAwNlMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKCkge1xuICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgZm9ybWF0dGVyLCBidXQgdGhpcyBpcyBhbiBlYXNpZXIgd2F5IHRvIGdldCB0aGUgbWluaW11bSBzdHJpbmdcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgcyA9IFwiUFwiO1xuICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyBcIllcIjtcbiAgICBpZiAodGhpcy5tb250aHMgIT09IDAgfHwgdGhpcy5xdWFydGVycyAhPT0gMCkgcyArPSB0aGlzLm1vbnRocyArIHRoaXMucXVhcnRlcnMgKiAzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMud2Vla3MgIT09IDApIHMgKz0gdGhpcy53ZWVrcyArIFwiV1wiO1xuICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgXCJEXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDAgfHwgdGhpcy5taW51dGVzICE9PSAwIHx8IHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIHMgKz0gXCJUXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDApIHMgKz0gdGhpcy5ob3VycyArIFwiSFwiO1xuICAgIGlmICh0aGlzLm1pbnV0ZXMgIT09IDApIHMgKz0gdGhpcy5taW51dGVzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIC8vIHRoaXMgd2lsbCBoYW5kbGUgXCJmbG9hdGluZyBwb2ludCBtYWRuZXNzXCIgYnkgcmVtb3ZpbmcgZXh0cmEgZGVjaW1hbCBwbGFjZXNcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlblxuICAgICAgcyArPSByb3VuZFRvKHRoaXMuc2Vjb25kcyArIHRoaXMubWlsbGlzZWNvbmRzIC8gMTAwMCwgMykgKyBcIlNcIjtcbiAgICBpZiAocyA9PT0gXCJQXCIpIHMgKz0gXCJUMFNcIjtcbiAgICByZXR1cm4gcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiwgZm9ybWF0dGVkIGFzIGEgdGltZSBvZiBkYXkuXG4gICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQsIG5lZ2F0aXZlLCBvciBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMjQgaG91cnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzU2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIHNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVQcmVmaXg9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgYFRgIHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoKSAvLz0+ICcxMTowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NNaWxsaXNlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDA6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGluY2x1ZGVQcmVmaXg6IHRydWUgfSkgLy89PiAnVDExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMTEwMDAwLjAwMCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1pbGxpcyA9IHRoaXMudG9NaWxsaXMoKTtcbiAgICBpZiAobWlsbGlzIDwgMCB8fCBtaWxsaXMgPj0gODY0MDAwMDApIHJldHVybiBudWxsO1xuXG4gICAgb3B0cyA9IHtcbiAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsXG4gICAgICBpbmNsdWRlUHJlZml4OiBmYWxzZSxcbiAgICAgIGZvcm1hdDogXCJleHRlbmRlZFwiLFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNoaWZ0VG8oXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCIsIFwibWlsbGlzZWNvbmRzXCIpO1xuXG4gICAgbGV0IGZtdCA9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcImhobW1cIiA6IFwiaGg6bW1cIjtcblxuICAgIGlmICghb3B0cy5zdXBwcmVzc1NlY29uZHMgfHwgdmFsdWUuc2Vjb25kcyAhPT0gMCB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgIGZtdCArPSBvcHRzLmZvcm1hdCA9PT0gXCJiYXNpY1wiID8gXCJzc1wiIDogXCI6c3NcIjtcbiAgICAgIGlmICghb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcyB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgICAgZm10ICs9IFwiLlNTU1wiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzdHIgPSB2YWx1ZS50b0Zvcm1hdChmbXQpO1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZVByZWZpeCkge1xuICAgICAgc3RyID0gXCJUXCIgKyBzdHI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvSVNPKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXMoXCJtaWxsaXNlY29uZHNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi4gQWxpYXMgb2Yge0BsaW5rIHRvTWlsbGlzfVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB2YWx1ZU9mKCkge1xuICAgIHJldHVybiB0aGlzLnRvTWlsbGlzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIGxvbmdlciBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICByZXN1bHQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShkdXIudmFsdWVzLCBrKSB8fCBoYXNPd25Qcm9wZXJ0eSh0aGlzLnZhbHVlcywgaykpIHtcbiAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhpcyBEdXJhdGlvbiBzaG9ydGVyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5wbHVzKGR1ci5uZWdhdGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgdGhpcyBEdXJhdGlvbiBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdW5pdC4gQXJpdHkgaXMgMSBvciAyOiB0aGUgdmFsdWUgb2YgdGhlIHVuaXQgYW5kLCBvcHRpb25hbGx5LCB0aGUgdW5pdCBuYW1lLiBNdXN0IHJldHVybiBhIG51bWJlci5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cyh4ID0+IHggKiAyKSAvLz0+IHsgaG91cnM6IDIsIG1pbnV0ZXM6IDYwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cygoeCwgdSkgPT4gdSA9PT0gXCJob3VyXCIgPyB4ICogMiA6IHgpIC8vPT4geyBob3VyczogMiwgbWludXRlczogMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG1hcFVuaXRzKGZuKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIHJlc3VsdFtrXSA9IGFzTnVtYmVyKGZuKHRoaXMudmFsdWVzW2tdLCBrKSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5J1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgneWVhcnMnKSAvLz0+IDJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ21vbnRocycpIC8vPT4gMFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gM1xuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQodW5pdCkge1xuICAgIHJldHVybiB0aGlzW0R1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCldO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pXG4gICAqIEBleGFtcGxlIGR1ci5zZXQoeyBob3VyczogOCwgbWludXRlczogMzAgfSlcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzZXQodmFsdWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgbWl4ZWQgPSB7IC4uLnRoaXMudmFsdWVzLCAuLi5ub3JtYWxpemVPYmplY3QodmFsdWVzLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSB9O1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbWl4ZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlIGFuZC9vciBudW1iZXJpbmdTeXN0ZW0uICBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIGR1ci5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNvbnZlcnNpb25BY2N1cmFjeSB9ID0ge30pIHtcbiAgICBjb25zdCBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtIH0pLFxuICAgICAgb3B0cyA9IHsgbG9jIH07XG5cbiAgICBpZiAoY29udmVyc2lvbkFjY3VyYWN5KSB7XG4gICAgICBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGNvbnZlcnNpb25BY2N1cmFjeTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGR1cmF0aW9uIGluIHRoZSBzcGVjaWZpZWQgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlcycgb3IgJ2RheXMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ2RheXMnKSAvLz0+IDM2NVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdtb250aHMnKSAvLz0+IDEyXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe2hvdXJzOiA2MH0pLmFzKCdkYXlzJykgLy89PiAyLjVcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgYXModW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnNoaWZ0VG8odW5pdCkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0aGlzIER1cmF0aW9uIHRvIGl0cyBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gaW4gaXRzIGN1cnJlbnQgdW5pdHMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMiwgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMTUsIGRheXM6IDI1NSB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTIsIG1pbnV0ZXM6IC00NSB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDE1IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBub3JtYWxpemUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbm9ybWFsaXplVmFsdWVzKHRoaXMubWF0cml4LCB2YWxzKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IHZhbHMgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGlzIER1cmF0aW9uIGludG8gaXRzIHJlcHJlc2VudGF0aW9uIGluIGEgZGlmZmVyZW50IHNldCBvZiB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5zaGlmdFRvKCdtaW51dGVzJywgJ21pbGxpc2Vjb25kcycpLnRvT2JqZWN0KCkgLy89PiB7IG1pbnV0ZXM6IDYwLCBtaWxsaXNlY29uZHM6IDMwMDAwIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzaGlmdFRvKC4uLnVuaXRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKHVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdW5pdHMgPSB1bml0cy5tYXAoKHUpID0+IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodSkpO1xuXG4gICAgY29uc3QgYnVpbHQgPSB7fSxcbiAgICAgIGFjY3VtdWxhdGVkID0ge30sXG4gICAgICB2YWxzID0gdGhpcy50b09iamVjdCgpO1xuICAgIGxldCBsYXN0VW5pdDtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmICh1bml0cy5pbmRleE9mKGspID49IDApIHtcbiAgICAgICAgbGFzdFVuaXQgPSBrO1xuXG4gICAgICAgIGxldCBvd24gPSAwO1xuXG4gICAgICAgIC8vIGFueXRoaW5nIHdlIGhhdmVuJ3QgYm9pbGVkIGRvd24geWV0IHNob3VsZCBnZXQgYm9pbGVkIHRvIHRoaXMgdW5pdFxuICAgICAgICBmb3IgKGNvbnN0IGFrIGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICAgICAgb3duICs9IHRoaXMubWF0cml4W2FrXVtrXSAqIGFjY3VtdWxhdGVkW2FrXTtcbiAgICAgICAgICBhY2N1bXVsYXRlZFtha10gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyB0aGF0J3MgYWxyZWFkeSBpbiB0aGlzIHVuaXRcbiAgICAgICAgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgICAgb3duICs9IHZhbHNba107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpID0gTWF0aC50cnVuYyhvd24pO1xuICAgICAgICBidWlsdFtrXSA9IGk7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gKG93biAqIDEwMDAgLSBpICogMTAwMCkgLyAxMDAwO1xuXG4gICAgICAgIC8vIHBsdXMgYW55dGhpbmcgZnVydGhlciBkb3duIHRoZSBjaGFpbiB0aGF0IHNob3VsZCBiZSByb2xsZWQgdXAgaW4gdG8gdGhpc1xuICAgICAgICBmb3IgKGNvbnN0IGRvd24gaW4gdmFscykge1xuICAgICAgICAgIGlmIChvcmRlcmVkVW5pdHMuaW5kZXhPZihkb3duKSA+IG9yZGVyZWRVbml0cy5pbmRleE9mKGspKSB7XG4gICAgICAgICAgICBjb252ZXJ0KHRoaXMubWF0cml4LCB2YWxzLCBkb3duLCBidWlsdCwgayk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwga2VlcCBpdCBpbiB0aGUgd2luZ3MgdG8gYm9pbCBpdCBsYXRlclxuICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkge1xuICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IHZhbHNba107XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgbGVmdG92ZXIgYmVjb21lcyB0aGUgZGVjaW1hbCBmb3IgdGhlIGxhc3QgdW5pdFxuICAgIC8vIGxhc3RVbml0IG11c3QgYmUgZGVmaW5lZCBzaW5jZSB1bml0cyBpcyBub3QgZW1wdHlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBhY2N1bXVsYXRlZCkge1xuICAgICAgaWYgKGFjY3VtdWxhdGVkW2tleV0gIT09IDApIHtcbiAgICAgICAgYnVpbHRbbGFzdFVuaXRdICs9XG4gICAgICAgICAga2V5ID09PSBsYXN0VW5pdCA/IGFjY3VtdWxhdGVkW2tleV0gOiBhY2N1bXVsYXRlZFtrZXldIC8gdGhpcy5tYXRyaXhbbGFzdFVuaXRdW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBidWlsdCB9LCB0cnVlKS5ub3JtYWxpemUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5lZ2F0aXZlIG9mIHRoaXMgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgc2Vjb25kczogMzAgfSkubmVnYXRlKCkudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IC0xLCBzZWNvbmRzOiAtMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5lZ2F0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbmVnYXRlZCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbmVnYXRlZCB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHllYXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy55ZWFycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcXVhcnRlcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgcXVhcnRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnF1YXJ0ZXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aHMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbW9udGhzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5tb250aHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlZWtzXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLndlZWtzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXlzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmRheXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhvdXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGhvdXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5ob3VycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlcy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaW51dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taW51dGVzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgc2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWlsbGlzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWlsbGlzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taWxsaXNlY29uZHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIER1cmF0aW9uIGlzIGludmFsaWQuIEludmFsaWQgZHVyYXRpb25zIGFyZSByZXR1cm5lZCBieSBkaWZmIG9wZXJhdGlvbnNcbiAgICogb24gaW52YWxpZCBEYXRlVGltZXMgb3IgSW50ZXJ2YWxzLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWFsaXR5IGNoZWNrXG4gICAqIFR3byBEdXJhdGlvbnMgYXJlIGVxdWFsIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgdW5pdHMgYW5kIHRoZSBzYW1lIHZhbHVlcyBmb3IgZWFjaCB1bml0LlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXEodjEsIHYyKSB7XG4gICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWxcbiAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkIHx8IHYxID09PSAwKSByZXR1cm4gdjIgPT09IHVuZGVmaW5lZCB8fCB2MiA9PT0gMDtcbiAgICAgIHJldHVybiB2MSA9PT0gdjI7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKCFlcSh0aGlzLnZhbHVlc1t1XSwgb3RoZXIudmFsdWVzW3VdKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lLCB7IGZyaWVuZGx5RGF0ZVRpbWUgfSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IER1cmF0aW9uIGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBJbnZhbGlkSW50ZXJ2YWxFcnJvciB9IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgSW50ZXJ2YWxcIjtcblxuLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZFxuZnVuY3Rpb24gdmFsaWRhdGVTdGFydEVuZChzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQgfHwgIXN0YXJ0LmlzVmFsaWQpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcIm1pc3Npbmcgb3IgaW52YWxpZCBzdGFydFwiKTtcbiAgfSBlbHNlIGlmICghZW5kIHx8ICFlbmQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIGVuZFwiKTtcbiAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFxuICAgICAgXCJlbmQgYmVmb3JlIHN0YXJ0XCIsXG4gICAgICBgVGhlIGVuZCBvZiBhbiBpbnRlcnZhbCBtdXN0IGJlIGFmdGVyIGl0cyBzdGFydCwgYnV0IHlvdSBoYWQgc3RhcnQ9JHtzdGFydC50b0lTTygpfSBhbmQgZW5kPSR7ZW5kLnRvSVNPKCl9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJbnRlcnZhbCBvYmplY3QgcmVwcmVzZW50cyBhIGhhbGYtb3BlbiBpbnRlcnZhbCBvZiB0aW1lLCB3aGVyZSBlYWNoIGVuZHBvaW50IGlzIGEge0BsaW5rIERhdGVUaW1lfS4gQ29uY2VwdHVhbGx5LCBpdCdzIGEgY29udGFpbmVyIGZvciB0aG9zZSB0d28gZW5kcG9pbnRzLCBhY2NvbXBhbmllZCBieSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgY29tcGFyaW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBJbnRlcnZhbDpcbiAqXG4gKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYW4gSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZnJvbURhdGVUaW1lc30sIHtAbGluayBJbnRlcnZhbCNhZnRlcn0sIHtAbGluayBJbnRlcnZhbCNiZWZvcmV9LCBvciB7QGxpbmsgSW50ZXJ2YWwjZnJvbUlTT30uXG4gKiAqICoqQWNjZXNzb3JzKiogVXNlIHtAbGluayBJbnRlcnZhbCNzdGFydH0gYW5kIHtAbGluayBJbnRlcnZhbCNlbmR9IHRvIGdldCB0aGUgc3RhcnQgYW5kIGVuZC5cbiAqICogKipJbnRlcnJvZ2F0aW9uKiogVG8gYW5hbHl6ZSB0aGUgSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjY291bnR9LCB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSwge0BsaW5rIEludGVydmFsI2hhc1NhbWV9LCB7QGxpbmsgSW50ZXJ2YWwjY29udGFpbnN9LCB7QGxpbmsgSW50ZXJ2YWwjaXNBZnRlcn0sIG9yIHtAbGluayBJbnRlcnZhbCNpc0JlZm9yZX0uXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgb3RoZXIgSW50ZXJ2YWxzIG91dCBvZiB0aGlzIG9uZSwgdXNlIHtAbGluayBJbnRlcnZhbCNzZXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRBdH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEJ5fSwge0BsaW5rIEludGVydmFsI2RpdmlkZUVxdWFsbHl9LCB7QGxpbmsgSW50ZXJ2YWwjbWVyZ2V9LCB7QGxpbmsgSW50ZXJ2YWwjeG9yfSwge0BsaW5rIEludGVydmFsI3VuaW9ufSwge0BsaW5rIEludGVydmFsI2ludGVyc2VjdGlvbn0sIG9yIHtAbGluayBJbnRlcnZhbCNkaWZmZXJlbmNlfS5cbiAqICogKipDb21wYXJpc29uKiogVG8gY29tcGFyZSB0aGlzIEludGVydmFsIHRvIGFub3RoZXIgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI2VxdWFsc30sIHtAbGluayBJbnRlcnZhbCNvdmVybGFwc30sIHtAbGluayBJbnRlcnZhbCNhYnV0c1N0YXJ0fSwge0BsaW5rIEludGVydmFsI2FidXRzRW5kfSwge0BsaW5rIEludGVydmFsI2VuZ3VsZnN9XG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgSW50ZXJ2YWwgaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgSW50ZXJ2YWwjdG9TdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU099LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09EYXRlfSwge0BsaW5rIEludGVydmFsI3RvSVNPVGltZX0sIHtAbGluayBJbnRlcnZhbCN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgSW50ZXJ2YWwjdG9EdXJhdGlvbn0uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEludGVydmFsIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnMgPSBjb25maWcuc3RhcnQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5lID0gY29uZmlnLmVuZDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkludGVydmFsID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkSW50ZXJ2YWxFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpIHtcbiAgICBjb25zdCBidWlsdFN0YXJ0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCksXG4gICAgICBidWlsdEVuZCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSB2YWxpZGF0ZVN0YXJ0RW5kKGJ1aWx0U3RhcnQsIGJ1aWx0RW5kKTtcblxuICAgIGlmICh2YWxpZGF0ZUVycm9yID09IG51bGwpIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoe1xuICAgICAgICBzdGFydDogYnVpbHRTdGFydCxcbiAgICAgICAgZW5kOiBidWlsdEVuZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC5cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgYWZ0ZXIoc3RhcnQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoc3RhcnQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0LCBkdC5wbHVzKGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIGVuZCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgYmFja3dhcmRzIHRvLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBiZWZvcmUoZW5kLCBkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLFxuICAgICAgZHQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQubWludXMoZHVyKSwgZHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy5cbiAgICogQWNjZXB0cyBgPHN0YXJ0Pi88ZW5kPmAsIGA8c3RhcnQ+LzxkdXJhdGlvbj5gLCBhbmQgYDxkdXJhdGlvbj4vPGVuZD5gIGZvcm1hdHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIElTTyBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099XG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3MsIGVdID0gKHRleHQgfHwgXCJcIikuc3BsaXQoXCIvXCIsIDIpO1xuICAgIGlmIChzICYmIGUpIHtcbiAgICAgIGxldCBzdGFydCwgc3RhcnRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RhcnQgPSBEYXRlVGltZS5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBzdGFydElzVmFsaWQgPSBzdGFydC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzdGFydElzVmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVuZCwgZW5kSXNWYWxpZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGVuZCA9IERhdGVUaW1lLmZyb21JU08oZSwgb3B0cyk7XG4gICAgICAgIGVuZElzVmFsaWQgPSBlbmQuaXNWYWxpZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhcnRJc1ZhbGlkICYmIGVuZElzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmFmdGVyKHN0YXJ0LCBkdXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhzLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmJlZm9yZShlbmQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNJbnRlcnZhbChvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkludGVydmFsKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IHN0YXJ0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnMgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVuZCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IGVuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhdCBsZWFzdCBpdHMgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgSW50ZXJ2YWwgaXNuJ3QgJ2JhY2t3YXJkcycuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZFJlYXNvbiA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwgaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byByZXR1cm4gdGhlIGxlbmd0aCBpbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgbGVuZ3RoKHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9EdXJhdGlvbiguLi5bdW5pdF0pLmdldCh1bml0KSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBtaW51dGVzLCBob3VycywgZGF5cywgbW9udGhzLCBvciB5ZWFycyBpbmNsdWRlZCBpbiB0aGUgSW50ZXJ2YWwsIGV2ZW4gaW4gcGFydC5cbiAgICogVW5saWtlIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9IHRoaXMgY291bnRzIHNlY3Rpb25zIG9mIHRoZSBjYWxlbmRhciwgbm90IHBlcmlvZHMgb2YgdGltZSwgZS5nLiBzcGVjaWZ5aW5nICdkYXknXG4gICAqIGFza3MgJ3doYXQgZGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJ2YWw/Jywgbm90ICdob3cgbWFueSBkYXlzIGxvbmcgaXMgdGhpcyBpbnRlcnZhbD8nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdW5pdD0nbWlsbGlzZWNvbmRzJ10gLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBjb3VudCh1bml0ID0gXCJtaWxsaXNlY29uZHNcIikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gTmFOO1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5zdGFydE9mKHVuaXQpLFxuICAgICAgZW5kID0gdGhpcy5lbmQuc3RhcnRPZih1bml0KTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpKSArIDE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBhbmQgZW5kIGFyZSBib3RoIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc1NhbWUodW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLmUubWludXMoMSkuaGFzU2FtZSh0aGlzLnMsIHVuaXQpIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBEYXRlVGltZXMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnMudmFsdWVPZigpID09PSB0aGlzLmUudmFsdWVPZigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBkYXRlVGltZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNBZnRlcihkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBlbmQgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0JlZm9yZShkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZSA8PSBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBjb250YWlucyhkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBkYXRlVGltZSAmJiB0aGlzLmUgPiBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldHNcIiB0aGUgc3RhcnQgYW5kL29yIGVuZCBkYXRlcy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gdGhlIHZhbHVlcyB0byBzZXRcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLnN0YXJ0IC0gdGhlIHN0YXJ0aW5nIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IHZhbHVlcy5lbmQgLSB0aGUgZW5kaW5nIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc2V0KHsgc3RhcnQsIGVuZCB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGF0IGVhY2ggb2YgdGhlIHNwZWNpZmllZCBEYXRlVGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzcGxpdEF0KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgY29uc3Qgc29ydGVkID0gZGF0ZVRpbWVzXG4gICAgICAgIC5tYXAoZnJpZW5kbHlEYXRlVGltZSlcbiAgICAgICAgLmZpbHRlcigoZCkgPT4gdGhpcy5jb250YWlucyhkKSlcbiAgICAgICAgLnNvcnQoKSxcbiAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaSA9IDA7XG5cbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLFxuICAgICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHNtYWxsZXIgSW50ZXJ2YWxzLCBlYWNoIG9mIHRoZSBzcGVjaWZpZWQgbGVuZ3RoLlxuICAgKiBMZWZ0IG92ZXIgdGltZSBpcyBncm91cGVkIGludG8gYSBzbWFsbGVyIGludGVydmFsXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgbGVuZ3RoIG9mIGVhY2ggcmVzdWx0aW5nIGludGVydmFsLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QnkoZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFkdXIuaXNWYWxpZCB8fCBkdXIuYXMoXCJtaWxsaXNlY29uZHNcIikgPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaWR4ID0gMSxcbiAgICAgIG5leHQ7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKHMgPCB0aGlzLmUpIHtcbiAgICAgIGNvbnN0IGFkZGVkID0gdGhpcy5zdGFydC5wbHVzKGR1ci5tYXBVbml0cygoeCkgPT4geCAqIGlkeCkpO1xuICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDtcbiAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIG5leHQpKTtcbiAgICAgIHMgPSBuZXh0O1xuICAgICAgaWR4ICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNtYWxsZXIgaW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyT2ZQYXJ0cyAtIFRoZSBudW1iZXIgb2YgSW50ZXJ2YWxzIHRvIGRpdmlkZSB0aGUgSW50ZXJ2YWwgaW50by5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBkaXZpZGVFcXVhbGx5KG51bWJlck9mUGFydHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKSAvIG51bWJlck9mUGFydHMpLnNsaWNlKDAsIG51bWJlck9mUGFydHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgb3ZlcmxhcHMgd2l0aCB0aGUgc3BlY2lmaWVkIEludGVydmFsXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBvdmVybGFwcyhvdGhlcikge1xuICAgIHJldHVybiB0aGlzLmUgPiBvdGhlci5zICYmIHRoaXMucyA8IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c1N0YXJ0KG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK3RoaXMuZSA9PT0gK290aGVyLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBlbmQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c0VuZChvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICtvdGhlci5lID09PSArdGhpcy5zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgZW5ndWxmcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZW5ndWxmcyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBvdGhlci5zICYmIHRoaXMuZSA+PSBvdGhlci5lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlci5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucy5lcXVhbHMob3RoZXIucykgJiYgdGhpcy5lLmVxdWFscyhvdGhlci5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWF4aW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWluaW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogUmV0dXJucyBudWxsIGlmIHRoZSBpbnRlcnNlY3Rpb24gaXMgZW1wdHksIG1lYW5pbmcsIHRoZSBpbnRlcnZhbHMgZG9uJ3QgaW50ZXJzZWN0LlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIGludGVyc2VjdGlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zID4gb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG5cbiAgICBpZiAocyA+PSBlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1pbmltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1heGltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW5pb24ob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcyA9IHRoaXMucyA8IG90aGVyLnMgPyB0aGlzLnMgOiBvdGhlci5zLFxuICAgICAgZSA9IHRoaXMuZSA+IG90aGVyLmUgPyB0aGlzLmUgOiBvdGhlci5lO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIGFuIGFycmF5IG9mIEludGVydmFscyBpbnRvIGEgZXF1aXZhbGVudCBtaW5pbWFsIHNldCBvZiBJbnRlcnZhbHMuXG4gICAqIENvbWJpbmVzIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJnZShpbnRlcnZhbHMpIHtcbiAgICBjb25zdCBbZm91bmQsIGZpbmFsXSA9IGludGVydmFsc1xuICAgICAgLnNvcnQoKGEsIGIpID0+IGEucyAtIGIucylcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChbc29mYXIsIGN1cnJlbnRdLCBpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBpdGVtXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQub3ZlcmxhcHMoaXRlbSkgfHwgY3VycmVudC5hYnV0c1N0YXJ0KGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtzb2Zhci5jb25jYXQoW2N1cnJlbnRdKSwgaXRlbV07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbW10sIG51bGxdXG4gICAgICApO1xuICAgIGlmIChmaW5hbCkge1xuICAgICAgZm91bmQucHVzaChmaW5hbCk7XG4gICAgfVxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIHJlcHJlc2VudGluZyB0aGUgc3BhbnMgb2YgdGltZSB0aGF0IG9ubHkgYXBwZWFyIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHhvcihpbnRlcnZhbHMpIHtcbiAgICBsZXQgc3RhcnQgPSBudWxsLFxuICAgICAgY3VycmVudENvdW50ID0gMDtcbiAgICBjb25zdCByZXN1bHRzID0gW10sXG4gICAgICBlbmRzID0gaW50ZXJ2YWxzLm1hcCgoaSkgPT4gW1xuICAgICAgICB7IHRpbWU6IGkucywgdHlwZTogXCJzXCIgfSxcbiAgICAgICAgeyB0aW1lOiBpLmUsIHR5cGU6IFwiZVwiIH0sXG4gICAgICBdKSxcbiAgICAgIGZsYXR0ZW5lZCA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4uZW5kcyksXG4gICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydCgoYSwgYikgPT4gYS50aW1lIC0gYi50aW1lKTtcblxuICAgIGZvciAoY29uc3QgaSBvZiBhcnIpIHtcbiAgICAgIGN1cnJlbnRDb3VudCArPSBpLnR5cGUgPT09IFwic1wiID8gMSA6IC0xO1xuXG4gICAgICBpZiAoY3VycmVudENvdW50ID09PSAxKSB7XG4gICAgICAgIHN0YXJ0ID0gaS50aW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXJ0ICYmICtzdGFydCAhPT0gK2kudGltZSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gSW50ZXJ2YWwubWVyZ2UocmVzdWx0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgc3BhbiBvZiB0aW1lIGluIHRoaXMgSW50ZXJ2YWwgdGhhdCBkb2Vzbid0IG92ZXJsYXAgd2l0aCBhbnkgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7Li4uSW50ZXJ2YWx9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpZmZlcmVuY2UoLi4uaW50ZXJ2YWxzKSB7XG4gICAgcmV0dXJuIEludGVydmFsLnhvcihbdGhpc10uY29uY2F0KGludGVydmFscykpXG4gICAgICAubWFwKChpKSA9PiB0aGlzLmludGVyc2VjdGlvbihpKSlcbiAgICAgIC5maWx0ZXIoKGkpID0+IGkgJiYgIWkuaXNFbXB0eSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgYXBwcm9wcmlhdGUgZm9yIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgWyR7dGhpcy5zLnRvSVNPKCl9IFx1MjAxMyAke3RoaXMuZS50b0lTTygpfSlgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTTyhvcHRzKX0vJHt0aGlzLmUudG9JU08ob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZGF0ZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgdGltZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPRGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT0RhdGUoKX0vJHt0aGlzLmUudG9JU09EYXRlKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGltZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgZGF0ZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPVGltZShvcHRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9JU09UaW1lKG9wdHMpfS8ke3RoaXMuZS50b0lTT1RpbWUob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlRm9ybWF0IC0gdGhlIGZvcm1hdCBzdHJpbmcuIFRoaXMgc3RyaW5nIGZvcm1hdHMgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZS4gU2VlIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0gZm9yIGRldGFpbHMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gICcgXHUyMDEzICddIC0gYSBzZXBhcmF0b3IgdG8gcGxhY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCByZXByZXNlbnRhdGlvbnNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9Gb3JtYXQoZGF0ZUZvcm1hdCwgeyBzZXBhcmF0b3IgPSBcIiBcdTIwMTMgXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9JHtzZXBhcmF0b3J9JHt0aGlzLmUudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEdXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHRpbWUgc3Bhbm5lZCBieSB0aGlzIGludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA4ODQ4OTI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ2RheXMnKS50b09iamVjdCgpIC8vPT4geyBkYXlzOiAxLjAyNDE4MTIxNTI3Nzc3NzggfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LjgyMDk1IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbihbJ2hvdXJzJywgJ21pbnV0ZXMnLCAnc2Vjb25kcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LCBzZWNvbmRzOiA0OS4yNTcgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCdzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgc2Vjb25kczogODg0ODkuMjU3IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICB0b0R1cmF0aW9uKHVuaXQsIG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQodGhpcy5pbnZhbGlkUmVhc29uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZS5kaWZmKHRoaXMucywgdW5pdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUnVuIG1hcEZuIG9uIHRoZSBpbnRlcnZhbCBzdGFydCBhbmQgZW5kLCByZXR1cm5pbmcgYSBuZXcgSW50ZXJ2YWwgZnJvbSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGblxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnRvVVRDKCkpXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpXG4gICAqL1xuICBtYXBFbmRwb2ludHMobWFwRm4pIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhtYXBGbih0aGlzLnMpLCBtYXBGbih0aGlzLmUpKTtcbiAgfVxufVxuIiwgImltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5cbmltcG9ydCB7IGhhc1JlbGF0aXZlIH0gZnJvbSBcIi4vaW1wbC91dGlsLmpzXCI7XG5cbi8qKlxuICogVGhlIEluZm8gY2xhc3MgY29udGFpbnMgc3RhdGljIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcgZ2VuZXJhbCB0aW1lIGFuZCBkYXRlIHJlbGF0ZWQgZGF0YS4gRm9yIGV4YW1wbGUsIGl0IGhhcyBtZXRob2RzIGZvciBmaW5kaW5nIG91dCBpZiBhIHRpbWUgem9uZSBoYXMgYSBEU1QsIGZvciBsaXN0aW5nIHRoZSBtb250aHMgaW4gYW55IHN1cHBvcnRlZCBsb2NhbGUsIGFuZCBmb3IgZGlzY292ZXJpbmcgd2hpY2ggb2YgTHV4b24gZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5mbyB7XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgY29udGFpbnMgYSBEU1QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBoYXNEU1Qoem9uZSA9IFNldHRpbmdzLmRlZmF1bHRab25lKSB7XG4gICAgY29uc3QgcHJvdG8gPSBEYXRlVGltZS5ub3coKS5zZXRab25lKHpvbmUpLnNldCh7IG1vbnRoOiAxMiB9KTtcblxuICAgIHJldHVybiAhem9uZS5pc1VuaXZlcnNhbCAmJiBwcm90by5vZmZzZXQgIT09IHByb3RvLnNldCh7IG1vbnRoOiA2IH0pLm9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgaXMgYSB2YWxpZCBJQU5BIHNwZWNpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBab25lIHRvIGNoZWNrXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZElBTkFab25lKHpvbmUpIHtcbiAgICByZXR1cm4gSUFOQVpvbmUuaXNWYWxpZFpvbmUoem9uZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGlucHV0IGludG8gYSB7QGxpbmsgWm9uZX0gaW5zdGFuY2UuXG4gICAqXG4gICAqICogSWYgYGlucHV0YCBpcyBhbHJlYWR5IGEgWm9uZSBpbnN0YW5jZSwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYSBzdHJpbmcgY29udGFpbmluZyBhIHZhbGlkIHRpbWUgem9uZSBuYW1lLCBhIFpvbmUgaW5zdGFuY2VcbiAgICogICB3aXRoIHRoYXQgbmFtZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIHRoYXQgZG9lc24ndCByZWZlciB0byBhIGtub3duIHRpbWUgem9uZSwgYSBab25lXG4gICAqICAgaW5zdGFuY2Ugd2l0aCB7QGxpbmsgWm9uZSNpc1ZhbGlkfSA9PSBmYWxzZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXQgaXMgYSBudW1iZXIsIGEgWm9uZSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZml4ZWQgb2Zmc2V0XG4gICAqICAgaW4gbWludXRlcyBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYCwgdGhlIGRlZmF1bHQgem9uZSBpcyByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZXxudW1iZXJ9IFtpbnB1dF0gLSB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm4ge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplWm9uZShpbnB1dCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGlucHV0LCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgbW9udGggbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygpWzBdIC8vPT4gJ0phbnVhcnknXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcpWzBdIC8vPT4gJ0phbidcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnKVswXSAvLz0+ICcxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9IClbMF0gLy89PiAnamFudi4nXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdudW1lcmljJywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAnXHUwNjYxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbG9uZycsIHsgb3V0cHV0Q2FsZW5kYXI6ICdpc2xhbWljJyB9KVswXSAvLz0+ICdSYWJpXHUwMkJCIEknXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1vbnRocyhcbiAgICBsZW5ndGggPSBcImxvbmdcIixcbiAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gXCJncmVnb3J5XCIgfSA9IHt9XG4gICkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCBtb250aCBuYW1lcy5cbiAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0XG4gICAqIGNoYW5nZXMgdGhlIHN0cmluZy5cbiAgICogU2VlIHtAbGluayBJbmZvI21vbnRoc31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtb250aHNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsLCBvdXRwdXRDYWxlbmRhciA9IFwiZ3JlZ29yeVwiIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIHdlZWsgbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIHdlZWtkYXkgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygpWzBdIC8vPT4gJ01vbmRheSdcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnKVswXSAvLz0+ICdNb24nXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSlbMF0gLy89PiAnbHVuLidcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICdcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MkJcdTA2NDZcdTA2NEFcdTA2NDYnXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHdlZWtkYXlzKGxlbmd0aCA9IFwibG9uZ1wiLCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwgfSA9IHt9KSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgbnVsbCkpLndlZWtkYXlzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCB3ZWVrIG5hbWVzLlxuICAgKiBGb3JtYXQgd2Vla2RheXMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSB3ZWVrZGF5cyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gbW9yZSBkYXRlIGluZm9ybWF0aW9uLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdFxuICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuXG4gICAqIFNlZSB7QGxpbmsgSW5mbyN3ZWVrZGF5c31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPW51bGxdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgd2Vla2RheXNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgbWVyaWRpZW1zLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoKSAvLz0+IFsgJ0FNJywgJ1BNJyBdXG4gICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKHsgbG9jYWxlOiAnbXknIH0pIC8vPT4gWyAnXHUxMDE0XHUxMDM2XHUxMDE0XHUxMDAwXHUxMDNBJywgJ1x1MTAwQVx1MTAxNFx1MTAzMScgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJpZGllbXMoeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSkubWVyaWRpZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGVyYXMsIHN1Y2ggYXMgWydCQycsICdBRCddLiBUaGUgbG9jYWxlIGNhbiBiZSBzcGVjaWZpZWQsIGJ1dCB0aGUgY2FsZW5kYXIgc3lzdGVtIGlzIGFsd2F5cyBHcmVnb3JpYW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdzaG9ydCddIC0gdGhlIGxlbmd0aCBvZiB0aGUgZXJhIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwic2hvcnRcIiBvciBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygpIC8vPT4gWyAnQkMnLCAnQUQnIF1cbiAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJykgLy89PiBbICdCZWZvcmUgQ2hyaXN0JywgJ0Fubm8gRG9taW5pJyBdXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycsIHsgbG9jYWxlOiAnZnInIH0pIC8vPT4gWyAnYXZhbnQgSlx1MDBFOXN1cy1DaHJpc3QnLCAnYXByXHUwMEU4cyBKXHUwMEU5c3VzLUNocmlzdCcgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBlcmFzKGxlbmd0aCA9IFwic2hvcnRcIiwgeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgXCJncmVnb3J5XCIpLmVyYXMobGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhdmFpbGFibGUgZmVhdHVyZXMgaW4gdGhpcyBlbnZpcm9ubWVudC5cbiAgICogU29tZSBmZWF0dXJlcyBvZiBMdXhvbiBhcmUgbm90IGF2YWlsYWJsZSBpbiBhbGwgZW52aXJvbm1lbnRzLiBGb3IgZXhhbXBsZSwgb24gb2xkZXIgYnJvd3NlcnMsIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZyBzdXBwb3J0IGlzIG5vdCBhdmFpbGFibGUuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGZpZ3VyZSBvdXQgaWYgdGhhdCdzIHRoZSBjYXNlLlxuICAgKiBLZXlzOlxuICAgKiAqIGByZWxhdGl2ZWA6IHdoZXRoZXIgdGhpcyBlbnZpcm9ubWVudCBzdXBwb3J0cyByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmdcbiAgICogQGV4YW1wbGUgSW5mby5mZWF0dXJlcygpIC8vPT4geyByZWxhdGl2ZTogZmFsc2UgfVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZmVhdHVyZXMoKSB7XG4gICAgcmV0dXJuIHsgcmVsYXRpdmU6IGhhc1JlbGF0aXZlKCkgfTtcbiAgfVxufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi4vZHVyYXRpb24uanNcIjtcblxuZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikge1xuICBjb25zdCB1dGNEYXlTdGFydCA9IChkdCkgPT4gZHQudG9VVEMoMCwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pLnN0YXJ0T2YoXCJkYXlcIikudmFsdWVPZigpLFxuICAgIG1zID0gdXRjRGF5U3RhcnQobGF0ZXIpIC0gdXRjRGF5U3RhcnQoZWFybGllcik7XG4gIHJldHVybiBNYXRoLmZsb29yKER1cmF0aW9uLmZyb21NaWxsaXMobXMpLmFzKFwiZGF5c1wiKSk7XG59XG5cbmZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7XG4gIGNvbnN0IGRpZmZlcnMgPSBbXG4gICAgW1wieWVhcnNcIiwgKGEsIGIpID0+IGIueWVhciAtIGEueWVhcl0sXG4gICAgW1wicXVhcnRlcnNcIiwgKGEsIGIpID0+IGIucXVhcnRlciAtIGEucXVhcnRlcl0sXG4gICAgW1wibW9udGhzXCIsIChhLCBiKSA9PiBiLm1vbnRoIC0gYS5tb250aCArIChiLnllYXIgLSBhLnllYXIpICogMTJdLFxuICAgIFtcbiAgICAgIFwid2Vla3NcIixcbiAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBkYXlEaWZmKGEsIGIpO1xuICAgICAgICByZXR1cm4gKGRheXMgLSAoZGF5cyAlIDcpKSAvIDc7XG4gICAgICB9LFxuICAgIF0sXG4gICAgW1wiZGF5c1wiLCBkYXlEaWZmXSxcbiAgXTtcblxuICBjb25zdCByZXN1bHRzID0ge307XG4gIGxldCBsb3dlc3RPcmRlciwgaGlnaFdhdGVyO1xuXG4gIGZvciAoY29uc3QgW3VuaXQsIGRpZmZlcl0gb2YgZGlmZmVycykge1xuICAgIGlmICh1bml0cy5pbmRleE9mKHVuaXQpID49IDApIHtcbiAgICAgIGxvd2VzdE9yZGVyID0gdW5pdDtcblxuICAgICAgbGV0IGRlbHRhID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpO1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIH0pO1xuXG4gICAgICBpZiAoaGlnaFdhdGVyID4gbGF0ZXIpIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIC0gMSB9KTtcbiAgICAgICAgZGVsdGEgLT0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnNvciA9IGhpZ2hXYXRlcjtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0c1t1bml0XSA9IGRlbHRhO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgb3B0cykge1xuICBsZXQgW2N1cnNvciwgcmVzdWx0cywgaGlnaFdhdGVyLCBsb3dlc3RPcmRlcl0gPSBoaWdoT3JkZXJEaWZmcyhlYXJsaWVyLCBsYXRlciwgdW5pdHMpO1xuXG4gIGNvbnN0IHJlbWFpbmluZ01pbGxpcyA9IGxhdGVyIC0gY3Vyc29yO1xuXG4gIGNvbnN0IGxvd2VyT3JkZXJVbml0cyA9IHVuaXRzLmZpbHRlcihcbiAgICAodSkgPT4gW1wiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiXS5pbmRleE9mKHUpID49IDBcbiAgKTtcblxuICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChoaWdoV2F0ZXIgPCBsYXRlcikge1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbbG93ZXN0T3JkZXJdOiAxIH0pO1xuICAgIH1cblxuICAgIGlmIChoaWdoV2F0ZXIgIT09IGN1cnNvcikge1xuICAgICAgcmVzdWx0c1tsb3dlc3RPcmRlcl0gPSAocmVzdWx0c1tsb3dlc3RPcmRlcl0gfHwgMCkgKyByZW1haW5pbmdNaWxsaXMgLyAoaGlnaFdhdGVyIC0gY3Vyc29yKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLmZyb21PYmplY3QocmVzdWx0cywgb3B0cyk7XG5cbiAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21NaWxsaXMocmVtYWluaW5nTWlsbGlzLCBvcHRzKVxuICAgICAgLnNoaWZ0VG8oLi4ubG93ZXJPcmRlclVuaXRzKVxuICAgICAgLnBsdXMoZHVyYXRpb24pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkdXJhdGlvbjtcbiAgfVxufVxuIiwgImNvbnN0IG51bWJlcmluZ1N5c3RlbXMgPSB7XG4gIGFyYWI6IFwiW1xcdTA2NjAtXFx1MDY2OV1cIixcbiAgYXJhYmV4dDogXCJbXFx1MDZGMC1cXHUwNkY5XVwiLFxuICBiYWxpOiBcIltcXHUxQjUwLVxcdTFCNTldXCIsXG4gIGJlbmc6IFwiW1xcdTA5RTYtXFx1MDlFRl1cIixcbiAgZGV2YTogXCJbXFx1MDk2Ni1cXHUwOTZGXVwiLFxuICBmdWxsd2lkZTogXCJbXFx1RkYxMC1cXHVGRjE5XVwiLFxuICBndWpyOiBcIltcXHUwQUU2LVxcdTBBRUZdXCIsXG4gIGhhbmlkZWM6IFwiW1x1MzAwN3xcdTRFMDB8XHU0RThDfFx1NEUwOXxcdTU2REJ8XHU0RTk0fFx1NTE2RHxcdTRFMDN8XHU1MTZCfFx1NEU1RF1cIixcbiAga2htcjogXCJbXFx1MTdFMC1cXHUxN0U5XVwiLFxuICBrbmRhOiBcIltcXHUwQ0U2LVxcdTBDRUZdXCIsXG4gIGxhb286IFwiW1xcdTBFRDAtXFx1MEVEOV1cIixcbiAgbGltYjogXCJbXFx1MTk0Ni1cXHUxOTRGXVwiLFxuICBtbHltOiBcIltcXHUwRDY2LVxcdTBENkZdXCIsXG4gIG1vbmc6IFwiW1xcdTE4MTAtXFx1MTgxOV1cIixcbiAgbXltcjogXCJbXFx1MTA0MC1cXHUxMDQ5XVwiLFxuICBvcnlhOiBcIltcXHUwQjY2LVxcdTBCNkZdXCIsXG4gIHRhbWxkZWM6IFwiW1xcdTBCRTYtXFx1MEJFRl1cIixcbiAgdGVsdTogXCJbXFx1MEM2Ni1cXHUwQzZGXVwiLFxuICB0aGFpOiBcIltcXHUwRTUwLVxcdTBFNTldXCIsXG4gIHRpYnQ6IFwiW1xcdTBGMjAtXFx1MEYyOV1cIixcbiAgbGF0bjogXCJcXFxcZFwiLFxufTtcblxuY29uc3QgbnVtYmVyaW5nU3lzdGVtc1VURjE2ID0ge1xuICBhcmFiOiBbMTYzMiwgMTY0MV0sXG4gIGFyYWJleHQ6IFsxNzc2LCAxNzg1XSxcbiAgYmFsaTogWzY5OTIsIDcwMDFdLFxuICBiZW5nOiBbMjUzNCwgMjU0M10sXG4gIGRldmE6IFsyNDA2LCAyNDE1XSxcbiAgZnVsbHdpZGU6IFs2NTI5NiwgNjUzMDNdLFxuICBndWpyOiBbMjc5MCwgMjc5OV0sXG4gIGtobXI6IFs2MTEyLCA2MTIxXSxcbiAga25kYTogWzMzMDIsIDMzMTFdLFxuICBsYW9vOiBbMzc5MiwgMzgwMV0sXG4gIGxpbWI6IFs2NDcwLCA2NDc5XSxcbiAgbWx5bTogWzM0MzAsIDM0MzldLFxuICBtb25nOiBbNjE2MCwgNjE2OV0sXG4gIG15bXI6IFs0MTYwLCA0MTY5XSxcbiAgb3J5YTogWzI5MTgsIDI5MjddLFxuICB0YW1sZGVjOiBbMzA0NiwgMzA1NV0sXG4gIHRlbHU6IFszMTc0LCAzMTgzXSxcbiAgdGhhaTogWzM2NjQsIDM2NzNdLFxuICB0aWJ0OiBbMzg3MiwgMzg4MV0sXG59O1xuXG5jb25zdCBoYW5pZGVjQ2hhcnMgPSBudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMucmVwbGFjZSgvW1xcW3xcXF1dL2csIFwiXCIpLnNwbGl0KFwiXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEaWdpdHMoc3RyKSB7XG4gIGxldCB2YWx1ZSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgdmFsdWUgPSBcIlwiO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cbiAgICAgIGlmIChzdHJbaV0uc2VhcmNoKG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYykgIT09IC0xKSB7XG4gICAgICAgIHZhbHVlICs9IGhhbmlkZWNDaGFycy5pbmRleE9mKHN0cltpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBudW1iZXJpbmdTeXN0ZW1zVVRGMTYpIHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0gbnVtYmVyaW5nU3lzdGVtc1VURjE2W2tleV07XG4gICAgICAgICAgaWYgKGNvZGUgPj0gbWluICYmIGNvZGUgPD0gbWF4KSB7XG4gICAgICAgICAgICB2YWx1ZSArPSBjb2RlIC0gbWluO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZ2l0UmVnZXgoeyBudW1iZXJpbmdTeXN0ZW0gfSwgYXBwZW5kID0gXCJcIikge1xuICByZXR1cm4gbmV3IFJlZ0V4cChgJHtudW1iZXJpbmdTeXN0ZW1zW251bWJlcmluZ1N5c3RlbSB8fCBcImxhdG5cIl19JHthcHBlbmR9YCk7XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VNaWxsaXMsIGlzVW5kZWZpbmVkLCB1bnRydW5jYXRlWWVhciwgc2lnbmVkT2Zmc2V0LCBoYXNPd25Qcm9wZXJ0eSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi4vZGF0ZXRpbWUuanNcIjtcbmltcG9ydCB7IGRpZ2l0UmVnZXgsIHBhcnNlRGlnaXRzIH0gZnJvbSBcIi4vZGlnaXRzLmpzXCI7XG5pbXBvcnQgeyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcblxuY29uc3QgTUlTU0lOR19GVFAgPSBcIm1pc3NpbmcgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXRUb1BhcnRzIHN1cHBvcnRcIjtcblxuZnVuY3Rpb24gaW50VW5pdChyZWdleCwgcG9zdCA9IChpKSA9PiBpKSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcG9zdChwYXJzZURpZ2l0cyhzKSkgfTtcbn1cblxuY29uc3QgTkJTUCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTtcbmNvbnN0IHNwYWNlT3JOQlNQID0gYFsgJHtOQlNQfV1gO1xuY29uc3Qgc3BhY2VPck5CU1BSZWdFeHAgPSBuZXcgUmVnRXhwKHNwYWNlT3JOQlNQLCBcImdcIik7XG5cbmZ1bmN0aW9uIGZpeExpc3RSZWdleChzKSB7XG4gIC8vIG1ha2UgZG90cyBvcHRpb25hbCBhbmQgYWxzbyBtYWtlIHRoZW0gbGl0ZXJhbFxuICAvLyBtYWtlIHNwYWNlIGFuZCBub24gYnJlYWthYmxlIHNwYWNlIGNoYXJhY3RlcnMgaW50ZXJjaGFuZ2VhYmxlXG4gIHJldHVybiBzLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuP1wiKS5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCBzcGFjZU9yTkJTUCk7XG59XG5cbmZ1bmN0aW9uIHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpIHtcbiAgcmV0dXJuIHNcbiAgICAucmVwbGFjZSgvXFwuL2csIFwiXCIpIC8vIGlnbm9yZSBkb3RzIHRoYXQgd2VyZSBtYWRlIG9wdGlvbmFsXG4gICAgLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIFwiIFwiKSAvLyBpbnRlcmNoYW5nZSBzcGFjZSBhbmQgbmJzcFxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBvbmVPZihzdHJpbmdzLCBzdGFydEluZGV4KSB7XG4gIGlmIChzdHJpbmdzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKFwifFwiKSksXG4gICAgICBkZXNlcjogKFtzXSkgPT5cbiAgICAgICAgc3RyaW5ncy5maW5kSW5kZXgoKGkpID0+IHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpID09PSBzdHJpcEluc2Vuc2l0aXZpdGllcyhpKSkgKyBzdGFydEluZGV4LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHtcbiAgcmV0dXJuIHsgcmVnZXgsIGRlc2VyOiAoWywgaCwgbV0pID0+IHNpZ25lZE9mZnNldChoLCBtKSwgZ3JvdXBzIH07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZShyZWdleCkge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHMgfTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlVG9rZW4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1tcXC1cXFtcXF17fSgpKis/LixcXFxcXFxeJHwjXFxzXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuZnVuY3Rpb24gdW5pdEZvclRva2VuKHRva2VuLCBsb2MpIHtcbiAgY29uc3Qgb25lID0gZGlnaXRSZWdleChsb2MpLFxuICAgIHR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsyfVwiKSxcbiAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInszfVwiKSxcbiAgICBmb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezR9XCIpLFxuICAgIHNpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns2fVwiKSxcbiAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDJ9XCIpLFxuICAgIG9uZVRvVGhyZWUgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7MSwzfVwiKSxcbiAgICBvbmVUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDZ9XCIpLFxuICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDl9XCIpLFxuICAgIHR3b1RvRm91ciA9IGRpZ2l0UmVnZXgobG9jLCBcInsyLDR9XCIpLFxuICAgIGZvdXJUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns0LDZ9XCIpLFxuICAgIGxpdGVyYWwgPSAodCkgPT4gKHsgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLCBkZXNlcjogKFtzXSkgPT4gcywgbGl0ZXJhbDogdHJ1ZSB9KSxcbiAgICB1bml0YXRlID0gKHQpID0+IHtcbiAgICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICAgIHJldHVybiBsaXRlcmFsKHQpO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0LnZhbCkge1xuICAgICAgICAvLyBlcmFcbiAgICAgICAgY2FzZSBcIkdcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJzaG9ydFwiLCBmYWxzZSksIDApO1xuICAgICAgICBjYXNlIFwiR0dcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJsb25nXCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIC8vIHllYXJzXG4gICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgY2FzZSBcInl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcInl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91clRvU2l4KTtcbiAgICAgICAgY2FzZSBcInl5eXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHNpeCk7XG4gICAgICAgIC8vIG1vbnRoc1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIk1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIk1NTU1cIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcImxvbmdcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcInNob3J0XCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJkZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIG9yZGluYWxzXG4gICAgICAgIGNhc2UgXCJvXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJvb29cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIC8vIHRpbWVcbiAgICAgICAgY2FzZSBcIkhIXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJoaFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwibW1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwic3NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpO1xuICAgICAgICBjYXNlIFwiU1NTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodGhyZWUpO1xuICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgIHJldHVybiBzaW1wbGUob25lVG9OaW5lKTtcbiAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJ1dXVcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmUpO1xuICAgICAgICAvLyBtZXJpZGllbVxuICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApO1xuICAgICAgICAvLyB3ZWVrWWVhciAoaylcbiAgICAgICAgY2FzZSBcImtra2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7XG4gICAgICAgIC8vIHdlZWtOdW1iZXIgKFcpXG4gICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiV1dcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICAvLyB3ZWVrZGF5c1xuICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy53ZWVrZGF5cyhcImxvbmdcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBvZmZzZXQvem9uZVxuICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICBjYXNlIFwiWlpcIjpcbiAgICAgICAgICByZXR1cm4gb2Zmc2V0KG5ldyBSZWdFeHAoYChbKy1dJHtvbmVPclR3by5zb3VyY2V9KSg/OjooJHt0d28uc291cmNlfSkpP2ApLCAyKTtcbiAgICAgICAgY2FzZSBcIlpaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKCR7dHdvLnNvdXJjZX0pP2ApLCAyKTtcbiAgICAgICAgLy8gd2UgZG9uJ3Qgc3VwcG9ydCBaWlpaIChQU1QpIG9yIFpaWlpaIChQYWNpZmljIFN0YW5kYXJkIFRpbWUpIGluIHBhcnNpbmdcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHRoZXkgYXJlXG4gICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZSgvW2Etel8rLS9dezEsMjU2fT8vaSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgfTtcblxuICBjb25zdCB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwge1xuICAgIGludmFsaWRSZWFzb246IE1JU1NJTkdfRlRQLFxuICB9O1xuXG4gIHVuaXQudG9rZW4gPSB0b2tlbjtcblxuICByZXR1cm4gdW5pdDtcbn1cblxuY29uc3QgcGFydFR5cGVTdHlsZVRvVG9rZW5WYWwgPSB7XG4gIHllYXI6IHtcbiAgICBcIjItZGlnaXRcIjogXCJ5eVwiLFxuICAgIG51bWVyaWM6IFwieXl5eXlcIixcbiAgfSxcbiAgbW9udGg6IHtcbiAgICBudW1lcmljOiBcIk1cIixcbiAgICBcIjItZGlnaXRcIjogXCJNTVwiLFxuICAgIHNob3J0OiBcIk1NTVwiLFxuICAgIGxvbmc6IFwiTU1NTVwiLFxuICB9LFxuICBkYXk6IHtcbiAgICBudW1lcmljOiBcImRcIixcbiAgICBcIjItZGlnaXRcIjogXCJkZFwiLFxuICB9LFxuICB3ZWVrZGF5OiB7XG4gICAgc2hvcnQ6IFwiRUVFXCIsXG4gICAgbG9uZzogXCJFRUVFXCIsXG4gIH0sXG4gIGRheXBlcmlvZDogXCJhXCIsXG4gIGRheVBlcmlvZDogXCJhXCIsXG4gIGhvdXI6IHtcbiAgICBudW1lcmljOiBcImhcIixcbiAgICBcIjItZGlnaXRcIjogXCJoaFwiLFxuICB9LFxuICBtaW51dGU6IHtcbiAgICBudW1lcmljOiBcIm1cIixcbiAgICBcIjItZGlnaXRcIjogXCJtbVwiLFxuICB9LFxuICBzZWNvbmQ6IHtcbiAgICBudW1lcmljOiBcInNcIixcbiAgICBcIjItZGlnaXRcIjogXCJzc1wiLFxuICB9LFxufTtcblxuZnVuY3Rpb24gdG9rZW5Gb3JQYXJ0KHBhcnQsIGxvY2FsZSwgZm9ybWF0T3B0cykge1xuICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBwYXJ0O1xuXG4gIGlmICh0eXBlID09PSBcImxpdGVyYWxcIikge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiB0cnVlLFxuICAgICAgdmFsOiB2YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgc3R5bGUgPSBmb3JtYXRPcHRzW3R5cGVdO1xuXG4gIGxldCB2YWwgPSBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbFt0eXBlXTtcbiAgaWYgKHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIpIHtcbiAgICB2YWwgPSB2YWxbc3R5bGVdO1xuICB9XG5cbiAgaWYgKHZhbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiBmYWxzZSxcbiAgICAgIHZhbCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYnVpbGRSZWdleCh1bml0cykge1xuICBjb25zdCByZSA9IHVuaXRzLm1hcCgodSkgPT4gdS5yZWdleCkucmVkdWNlKChmLCByKSA9PiBgJHtmfSgke3Iuc291cmNlfSlgLCBcIlwiKTtcbiAgcmV0dXJuIFtgXiR7cmV9JGAsIHVuaXRzXTtcbn1cblxuZnVuY3Rpb24gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycykge1xuICBjb25zdCBtYXRjaGVzID0gaW5wdXQubWF0Y2gocmVnZXgpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgY29uc3QgYWxsID0ge307XG4gICAgbGV0IG1hdGNoSW5kZXggPSAxO1xuICAgIGZvciAoY29uc3QgaSBpbiBoYW5kbGVycykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGhhbmRsZXJzLCBpKSkge1xuICAgICAgICBjb25zdCBoID0gaGFuZGxlcnNbaV0sXG4gICAgICAgICAgZ3JvdXBzID0gaC5ncm91cHMgPyBoLmdyb3VwcyArIDEgOiAxO1xuICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7XG4gICAgICAgICAgYWxsW2gudG9rZW4udmFsWzBdXSA9IGguZGVzZXIobWF0Y2hlcy5zbGljZShtYXRjaEluZGV4LCBtYXRjaEluZGV4ICsgZ3JvdXBzKSk7XG4gICAgICAgIH1cbiAgICAgICAgbWF0Y2hJbmRleCArPSBncm91cHM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbbWF0Y2hlcywgYWxsXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW21hdGNoZXMsIHt9XTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkYXRlVGltZUZyb21NYXRjaGVzKG1hdGNoZXMpIHtcbiAgY29uc3QgdG9GaWVsZCA9ICh0b2tlbikgPT4ge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgIHJldHVybiBcIm1pbGxpc2Vjb25kXCI7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgIHJldHVybiBcIm1pbnV0ZVwiO1xuICAgICAgY2FzZSBcImhcIjpcbiAgICAgIGNhc2UgXCJIXCI6XG4gICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgIHJldHVybiBcImRheVwiO1xuICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgcmV0dXJuIFwib3JkaW5hbFwiO1xuICAgICAgY2FzZSBcIkxcIjpcbiAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgIHJldHVybiBcIm1vbnRoXCI7XG4gICAgICBjYXNlIFwieVwiOlxuICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICBjYXNlIFwiRVwiOlxuICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla2RheVwiO1xuICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla051bWJlclwiO1xuICAgICAgY2FzZSBcImtcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla1llYXJcIjtcbiAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgIHJldHVybiBcInF1YXJ0ZXJcIjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBsZXQgem9uZSA9IG51bGw7XG4gIGxldCBzcGVjaWZpY09mZnNldDtcbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7XG4gICAgem9uZSA9IElBTkFab25lLmNyZWF0ZShtYXRjaGVzLnopO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLlopKSB7XG4gICAgaWYgKCF6b25lKSB7XG4gICAgICB6b25lID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZShtYXRjaGVzLlopO1xuICAgIH1cbiAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjtcbiAgfVxuXG4gIGlmICghaXNVbmRlZmluZWQobWF0Y2hlcy5xKSkge1xuICAgIG1hdGNoZXMuTSA9IChtYXRjaGVzLnEgLSAxKSAqIDMgKyAxO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLmgpKSB7XG4gICAgaWYgKG1hdGNoZXMuaCA8IDEyICYmIG1hdGNoZXMuYSA9PT0gMSkge1xuICAgICAgbWF0Y2hlcy5oICs9IDEyO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hlcy5oID09PSAxMiAmJiBtYXRjaGVzLmEgPT09IDApIHtcbiAgICAgIG1hdGNoZXMuaCA9IDA7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHtcbiAgICBtYXRjaGVzLnkgPSAtbWF0Y2hlcy55O1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnUpKSB7XG4gICAgbWF0Y2hlcy5TID0gcGFyc2VNaWxsaXMobWF0Y2hlcy51KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHMgPSBPYmplY3Qua2V5cyhtYXRjaGVzKS5yZWR1Y2UoKHIsIGspID0+IHtcbiAgICBjb25zdCBmID0gdG9GaWVsZChrKTtcbiAgICBpZiAoZikge1xuICAgICAgcltmXSA9IG1hdGNoZXNba107XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH0sIHt9KTtcblxuICByZXR1cm4gW3ZhbHMsIHpvbmUsIHNwZWNpZmljT2Zmc2V0XTtcbn1cblxubGV0IGR1bW15RGF0ZVRpbWVDYWNoZSA9IG51bGw7XG5cbmZ1bmN0aW9uIGdldER1bW15RGF0ZVRpbWUoKSB7XG4gIGlmICghZHVtbXlEYXRlVGltZUNhY2hlKSB7XG4gICAgZHVtbXlEYXRlVGltZUNhY2hlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcygxNTU1NTU1NTU1NTU1KTtcbiAgfVxuXG4gIHJldHVybiBkdW1teURhdGVUaW1lQ2FjaGU7XG59XG5cbmZ1bmN0aW9uIG1heWJlRXhwYW5kTWFjcm9Ub2tlbih0b2tlbiwgbG9jYWxlKSB7XG4gIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuLnZhbCk7XG5cbiAgaWYgKCFmb3JtYXRPcHRzKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0dGVyID0gRm9ybWF0dGVyLmNyZWF0ZShsb2NhbGUsIGZvcm1hdE9wdHMpO1xuICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXREYXRlVGltZVBhcnRzKGdldER1bW15RGF0ZVRpbWUoKSk7XG5cbiAgY29uc3QgdG9rZW5zID0gcGFydHMubWFwKChwKSA9PiB0b2tlbkZvclBhcnQocCwgbG9jYWxlLCBmb3JtYXRPcHRzKSk7XG5cbiAgaWYgKHRva2Vucy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuZnVuY3Rpb24gZXhwYW5kTWFjcm9Ub2tlbnModG9rZW5zLCBsb2NhbGUpIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4udG9rZW5zLm1hcCgodCkgPT4gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHQsIGxvY2FsZSkpKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgdG9rZW5zID0gZXhwYW5kTWFjcm9Ub2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZvcm1hdCksIGxvY2FsZSksXG4gICAgdW5pdHMgPSB0b2tlbnMubWFwKCh0KSA9PiB1bml0Rm9yVG9rZW4odCwgbG9jYWxlKSksXG4gICAgZGlzcXVhbGlmeWluZ1VuaXQgPSB1bml0cy5maW5kKCh0KSA9PiB0LmludmFsaWRSZWFzb24pO1xuXG4gIGlmIChkaXNxdWFsaWZ5aW5nVW5pdCkge1xuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIGludmFsaWRSZWFzb246IGRpc3F1YWxpZnlpbmdVbml0LmludmFsaWRSZWFzb24gfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBbcmVnZXhTdHJpbmcsIGhhbmRsZXJzXSA9IGJ1aWxkUmVnZXgodW5pdHMpLFxuICAgICAgcmVnZXggPSBSZWdFeHAocmVnZXhTdHJpbmcsIFwiaVwiKSxcbiAgICAgIFtyYXdNYXRjaGVzLCBtYXRjaGVzXSA9IG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpLFxuICAgICAgW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXRdID0gbWF0Y2hlc1xuICAgICAgICA/IGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcylcbiAgICAgICAgOiBbbnVsbCwgbnVsbCwgdW5kZWZpbmVkXTtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJhXCIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsIFwiSFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IGluY2x1ZGUgbWVyaWRpZW0gd2hlbiBzcGVjaWZ5aW5nIDI0LWhvdXIgZm9ybWF0XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIHJlZ2V4LCByYXdNYXRjaGVzLCBtYXRjaGVzLCByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0IH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgeyByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uIH0gPSBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpO1xuICByZXR1cm4gW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb25dO1xufVxuIiwgImltcG9ydCB7XG4gIGludGVnZXJCZXR3ZWVuLFxuICBpc0xlYXBZZWFyLFxuICB0aW1lT2JqZWN0LFxuICBkYXlzSW5ZZWFyLFxuICBkYXlzSW5Nb250aCxcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBpc0ludGVnZXIsXG59IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ludmFsaWQuanNcIjtcblxuY29uc3Qgbm9uTGVhcExhZGRlciA9IFswLCAzMSwgNTksIDkwLCAxMjAsIDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNF0sXG4gIGxlYXBMYWRkZXIgPSBbMCwgMzEsIDYwLCA5MSwgMTIxLCAxNTIsIDE4MiwgMjEzLCAyNDQsIDI3NCwgMzA1LCAzMzVdO1xuXG5mdW5jdGlvbiB1bml0T3V0T2ZSYW5nZSh1bml0LCB2YWx1ZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXG4gICAgXCJ1bml0IG91dCBvZiByYW5nZVwiLFxuICAgIGB5b3Ugc3BlY2lmaWVkICR7dmFsdWV9IChvZiB0eXBlICR7dHlwZW9mIHZhbHVlfSkgYXMgYSAke3VuaXR9LCB3aGljaCBpcyBpbnZhbGlkYFxuICApO1xufVxuXG5mdW5jdGlvbiBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSkge1xuICBjb25zdCBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTtcblxuICBpZiAoeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG5cbiAgY29uc3QganMgPSBkLmdldFVUQ0RheSgpO1xuXG4gIHJldHVybiBqcyA9PT0gMCA/IDcgOiBqcztcbn1cblxuZnVuY3Rpb24gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSkge1xuICByZXR1cm4gZGF5ICsgKGlzTGVhcFllYXIoeWVhcikgPyBsZWFwTGFkZGVyIDogbm9uTGVhcExhZGRlcilbbW9udGggLSAxXTtcbn1cblxuZnVuY3Rpb24gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSB7XG4gIGNvbnN0IHRhYmxlID0gaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyLFxuICAgIG1vbnRoMCA9IHRhYmxlLmZpbmRJbmRleCgoaSkgPT4gaSA8IG9yZGluYWwpLFxuICAgIGRheSA9IG9yZGluYWwgLSB0YWJsZVttb250aDBdO1xuICByZXR1cm4geyBtb250aDogbW9udGgwICsgMSwgZGF5IH07XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JlZ29yaWFuVG9XZWVrKGdyZWdPYmopIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnT2JqLFxuICAgIG9yZGluYWwgPSBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSxcbiAgICB3ZWVrZGF5ID0gZGF5T2ZXZWVrKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gIGxldCB3ZWVrTnVtYmVyID0gTWF0aC5mbG9vcigob3JkaW5hbCAtIHdlZWtkYXkgKyAxMCkgLyA3KSxcbiAgICB3ZWVrWWVhcjtcblxuICBpZiAod2Vla051bWJlciA8IDEpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgLSAxO1xuICAgIHdlZWtOdW1iZXIgPSB3ZWVrc0luV2Vla1llYXIod2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgKyAxO1xuICAgIHdlZWtOdW1iZXIgPSAxO1xuICB9IGVsc2Uge1xuICAgIHdlZWtZZWFyID0geWVhcjtcbiAgfVxuXG4gIHJldHVybiB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5LCAuLi50aW1lT2JqZWN0KGdyZWdPYmopIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrVG9HcmVnb3JpYW4od2Vla0RhdGEpIHtcbiAgY29uc3QgeyB3ZWVrWWVhciwgd2Vla051bWJlciwgd2Vla2RheSB9ID0gd2Vla0RhdGEsXG4gICAgd2Vla2RheU9mSmFuNCA9IGRheU9mV2Vlayh3ZWVrWWVhciwgMSwgNCksXG4gICAgeWVhckluRGF5cyA9IGRheXNJblllYXIod2Vla1llYXIpO1xuXG4gIGxldCBvcmRpbmFsID0gd2Vla051bWJlciAqIDcgKyB3ZWVrZGF5IC0gd2Vla2RheU9mSmFuNCAtIDMsXG4gICAgeWVhcjtcblxuICBpZiAob3JkaW5hbCA8IDEpIHtcbiAgICB5ZWFyID0gd2Vla1llYXIgLSAxO1xuICAgIG9yZGluYWwgKz0gZGF5c0luWWVhcih5ZWFyKTtcbiAgfSBlbHNlIGlmIChvcmRpbmFsID4geWVhckluRGF5cykge1xuICAgIHllYXIgPSB3ZWVrWWVhciArIDE7XG4gICAgb3JkaW5hbCAtPSBkYXlzSW5ZZWFyKHdlZWtZZWFyKTtcbiAgfSBlbHNlIHtcbiAgICB5ZWFyID0gd2Vla1llYXI7XG4gIH1cblxuICBjb25zdCB7IG1vbnRoLCBkYXkgfSA9IHVuY29tcHV0ZU9yZGluYWwoeWVhciwgb3JkaW5hbCk7XG4gIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXksIC4uLnRpbWVPYmplY3Qod2Vla0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub09yZGluYWwoZ3JlZ0RhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnRGF0YTtcbiAgY29uc3Qgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpO1xuICByZXR1cm4geyB5ZWFyLCBvcmRpbmFsLCAuLi50aW1lT2JqZWN0KGdyZWdEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3JkaW5hbFRvR3JlZ29yaWFuKG9yZGluYWxEYXRhKSB7XG4gIGNvbnN0IHsgeWVhciwgb3JkaW5hbCB9ID0gb3JkaW5hbERhdGE7XG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdChvcmRpbmFsRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRXZWVrRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai53ZWVrWWVhciksXG4gICAgdmFsaWRXZWVrID0gaW50ZWdlckJldHdlZW4ob2JqLndlZWtOdW1iZXIsIDEsIHdlZWtzSW5XZWVrWWVhcihvYmoud2Vla1llYXIpKSxcbiAgICB2YWxpZFdlZWtkYXkgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla2RheSwgMSwgNyk7XG5cbiAgaWYgKCF2YWxpZFllYXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrWWVhclwiLCBvYmoud2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWspIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrXCIsIG9iai53ZWVrKTtcbiAgfSBlbHNlIGlmICghdmFsaWRXZWVrZGF5KSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwid2Vla2RheVwiLCBvYmoud2Vla2RheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRPcmRpbmFsID0gaW50ZWdlckJldHdlZW4ob2JqLm9yZGluYWwsIDEsIGRheXNJblllYXIob2JqLnllYXIpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE9yZGluYWwpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJvcmRpbmFsXCIsIG9iai5vcmRpbmFsKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLFxuICAgIHZhbGlkTW9udGggPSBpbnRlZ2VyQmV0d2VlbihvYmoubW9udGgsIDEsIDEyKSxcbiAgICB2YWxpZERheSA9IGludGVnZXJCZXR3ZWVuKG9iai5kYXksIDEsIGRheXNJbk1vbnRoKG9iai55ZWFyLCBvYmoubW9udGgpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1vbnRoKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibW9udGhcIiwgb2JqLm1vbnRoKTtcbiAgfSBlbHNlIGlmICghdmFsaWREYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJkYXlcIiwgb2JqLmRheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkVGltZURhdGEob2JqKSB7XG4gIGNvbnN0IHsgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0gPSBvYmo7XG4gIGNvbnN0IHZhbGlkSG91ciA9XG4gICAgICBpbnRlZ2VyQmV0d2Vlbihob3VyLCAwLCAyMykgfHxcbiAgICAgIChob3VyID09PSAyNCAmJiBtaW51dGUgPT09IDAgJiYgc2Vjb25kID09PSAwICYmIG1pbGxpc2Vjb25kID09PSAwKSxcbiAgICB2YWxpZE1pbnV0ZSA9IGludGVnZXJCZXR3ZWVuKG1pbnV0ZSwgMCwgNTkpLFxuICAgIHZhbGlkU2Vjb25kID0gaW50ZWdlckJldHdlZW4oc2Vjb25kLCAwLCA1OSksXG4gICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpO1xuXG4gIGlmICghdmFsaWRIb3VyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwiaG91clwiLCBob3VyKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtaW51dGVcIiwgbWludXRlKTtcbiAgfSBlbHNlIGlmICghdmFsaWRTZWNvbmQpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJzZWNvbmRcIiwgc2Vjb25kKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaWxsaXNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbGxpc2Vjb25kXCIsIG1pbGxpc2Vjb25kKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cbiIsICJpbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgSW5mbyBmcm9tIFwiLi9pbmZvLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHtcbiAgaXNVbmRlZmluZWQsXG4gIG1heWJlQXJyYXksXG4gIGlzRGF0ZSxcbiAgaXNOdW1iZXIsXG4gIGJlc3RCeSxcbiAgZGF5c0luTW9udGgsXG4gIGRheXNJblllYXIsXG4gIGlzTGVhcFllYXIsXG4gIHdlZWtzSW5XZWVrWWVhcixcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxuICBvYmpUb0xvY2FsVFMsXG4gIHBhZFN0YXJ0LFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5pbXBvcnQgZGlmZiBmcm9tIFwiLi9pbXBsL2RpZmYuanNcIjtcbmltcG9ydCB7IHBhcnNlUkZDMjgyMkRhdGUsIHBhcnNlSVNPRGF0ZSwgcGFyc2VIVFRQRGF0ZSwgcGFyc2VTUUwgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBwYXJzZUZyb21Ub2tlbnMsIGV4cGxhaW5Gcm9tVG9rZW5zIH0gZnJvbSBcIi4vaW1wbC90b2tlblBhcnNlci5qc1wiO1xuaW1wb3J0IHtcbiAgZ3JlZ29yaWFuVG9XZWVrLFxuICB3ZWVrVG9HcmVnb3JpYW4sXG4gIGdyZWdvcmlhblRvT3JkaW5hbCxcbiAgb3JkaW5hbFRvR3JlZ29yaWFuLFxuICBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YSxcbiAgaGFzSW52YWxpZFdlZWtEYXRhLFxuICBoYXNJbnZhbGlkT3JkaW5hbERhdGEsXG4gIGhhc0ludmFsaWRUaW1lRGF0YSxcbn0gZnJvbSBcIi4vaW1wbC9jb252ZXJzaW9ucy5qc1wiO1xuaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9pbXBsL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7XG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcixcbiAgSW52YWxpZFVuaXRFcnJvcixcbiAgSW52YWxpZERhdGVUaW1lRXJyb3IsXG59IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgRGF0ZVRpbWVcIjtcbmNvbnN0IE1BWF9EQVRFID0gOC42NGUxNTtcblxuZnVuY3Rpb24gdW5zdXBwb3J0ZWRab25lKHpvbmUpIHtcbiAgcmV0dXJuIG5ldyBJbnZhbGlkKFwidW5zdXBwb3J0ZWQgem9uZVwiLCBgdGhlIHpvbmUgXCIke3pvbmUubmFtZX1cIiBpcyBub3Qgc3VwcG9ydGVkYCk7XG59XG5cbi8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlXG5mdW5jdGlvbiBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKGR0KSB7XG4gIGlmIChkdC53ZWVrRGF0YSA9PT0gbnVsbCkge1xuICAgIGR0LndlZWtEYXRhID0gZ3JlZ29yaWFuVG9XZWVrKGR0LmMpO1xuICB9XG4gIHJldHVybiBkdC53ZWVrRGF0YTtcbn1cblxuLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCBcIm1ha2UgYSBuZXcgb2JqZWN0IHdpdGggdGhlc2UgbW9kaWZpY2F0aW9uc1wiLiBhbGwgXCJzZXR0ZXJzXCIgcmVhbGx5IHVzZSB0aGlzXG4vLyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHdoaWxlIG9ubHkgY2hhbmdpbmcgc29tZSBvZiB0aGUgcHJvcGVydGllc1xuZnVuY3Rpb24gY2xvbmUoaW5zdCwgYWx0cykge1xuICBjb25zdCBjdXJyZW50ID0ge1xuICAgIHRzOiBpbnN0LnRzLFxuICAgIHpvbmU6IGluc3Quem9uZSxcbiAgICBjOiBpbnN0LmMsXG4gICAgbzogaW5zdC5vLFxuICAgIGxvYzogaW5zdC5sb2MsXG4gICAgaW52YWxpZDogaW5zdC5pbnZhbGlkLFxuICB9O1xuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgLi4uY3VycmVudCwgLi4uYWx0cywgb2xkOiBjdXJyZW50IH0pO1xufVxuXG4vLyBmaW5kIHRoZSByaWdodCBvZmZzZXQgYSBnaXZlbiBsb2NhbCB0aW1lLiBUaGUgbyBpbnB1dCBpcyBvdXIgZ3Vlc3MsIHdoaWNoIGRldGVybWluZXMgd2hpY2hcbi8vIG9mZnNldCB3ZSdsbCBwaWNrIGluIGFtYmlndW91cyBjYXNlcyAoZS5nLiB0aGVyZSBhcmUgdHdvIDMgQU1zIGIvYyBGYWxsYmFjayBEU1QpXG5mdW5jdGlvbiBmaXhPZmZzZXQobG9jYWxUUywgbywgdHopIHtcbiAgLy8gT3VyIFVUQyB0aW1lIGlzIGp1c3QgYSBndWVzcyBiZWNhdXNlIG91ciBvZmZzZXQgaXMganVzdCBhIGd1ZXNzXG4gIGxldCB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvICogNjAgKiAxMDAwO1xuXG4gIC8vIFRlc3Qgd2hldGhlciB0aGUgem9uZSBtYXRjaGVzIHRoZSBvZmZzZXQgZm9yIHRoaXMgdHNcbiAgY29uc3QgbzIgPSB0ei5vZmZzZXQodXRjR3Vlc3MpO1xuXG4gIC8vIElmIHNvLCBvZmZzZXQgZGlkbid0IGNoYW5nZSBhbmQgd2UncmUgZG9uZVxuICBpZiAobyA9PT0gbzIpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTtcbiAgfVxuXG4gIC8vIElmIG5vdCwgY2hhbmdlIHRoZSB0cyBieSB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgb2Zmc2V0XG4gIHV0Y0d1ZXNzIC09IChvMiAtIG8pICogNjAgKiAxMDAwO1xuXG4gIC8vIElmIHRoYXQgZ2l2ZXMgdXMgdGhlIGxvY2FsIHRpbWUgd2Ugd2FudCwgd2UncmUgZG9uZVxuICBjb25zdCBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG4gIGlmIChvMiA9PT0gbzMpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvMl07XG4gIH1cblxuICAvLyBJZiBpdCdzIGRpZmZlcmVudCwgd2UncmUgaW4gYSBob2xlIHRpbWUuIFRoZSBvZmZzZXQgaGFzIGNoYW5nZWQsIGJ1dCB0aGUgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lXG4gIHJldHVybiBbbG9jYWxUUyAtIE1hdGgubWluKG8yLCBvMykgKiA2MCAqIDEwMDAsIE1hdGgubWF4KG8yLCBvMyldO1xufVxuXG4vLyBjb252ZXJ0IGFuIGVwb2NoIHRpbWVzdGFtcCBpbnRvIGEgY2FsZW5kYXIgb2JqZWN0IHdpdGggdGhlIGdpdmVuIG9mZnNldFxuZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7XG4gIHRzICs9IG9mZnNldCAqIDYwICogMTAwMDtcblxuICBjb25zdCBkID0gbmV3IERhdGUodHMpO1xuXG4gIHJldHVybiB7XG4gICAgeWVhcjogZC5nZXRVVENGdWxsWWVhcigpLFxuICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLFxuICAgIGRheTogZC5nZXRVVENEYXRlKCksXG4gICAgaG91cjogZC5nZXRVVENIb3VycygpLFxuICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksXG4gICAgc2Vjb25kOiBkLmdldFVUQ1NlY29uZHMoKSxcbiAgICBtaWxsaXNlY29uZDogZC5nZXRVVENNaWxsaXNlY29uZHMoKSxcbiAgfTtcbn1cblxuLy8gY29udmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGVwb2NoIHRpbWVzdGFtcFxuZnVuY3Rpb24gb2JqVG9UUyhvYmosIG9mZnNldCwgem9uZSkge1xuICByZXR1cm4gZml4T2Zmc2V0KG9ialRvTG9jYWxUUyhvYmopLCBvZmZzZXQsIHpvbmUpO1xufVxuXG4vLyBjcmVhdGUgYSBuZXcgRFQgaW5zdGFuY2UgYnkgYWRkaW5nIGEgZHVyYXRpb24sIGFkanVzdGluZyBmb3IgRFNUc1xuZnVuY3Rpb24gYWRqdXN0VGltZShpbnN0LCBkdXIpIHtcbiAgY29uc3Qgb1ByZSA9IGluc3QubyxcbiAgICB5ZWFyID0gaW5zdC5jLnllYXIgKyBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgbW9udGggPSBpbnN0LmMubW9udGggKyBNYXRoLnRydW5jKGR1ci5tb250aHMpICsgTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpICogMyxcbiAgICBjID0ge1xuICAgICAgLi4uaW5zdC5jLFxuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5OlxuICAgICAgICBNYXRoLm1pbihpbnN0LmMuZGF5LCBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpICtcbiAgICAgICAgTWF0aC50cnVuYyhkdXIuZGF5cykgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci53ZWVrcykgKiA3LFxuICAgIH0sXG4gICAgbWlsbGlzVG9BZGQgPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtcbiAgICAgIHllYXJzOiBkdXIueWVhcnMgLSBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgICBxdWFydGVyczogZHVyLnF1YXJ0ZXJzIC0gTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpLFxuICAgICAgbW9udGhzOiBkdXIubW9udGhzIC0gTWF0aC50cnVuYyhkdXIubW9udGhzKSxcbiAgICAgIHdlZWtzOiBkdXIud2Vla3MgLSBNYXRoLnRydW5jKGR1ci53ZWVrcyksXG4gICAgICBkYXlzOiBkdXIuZGF5cyAtIE1hdGgudHJ1bmMoZHVyLmRheXMpLFxuICAgICAgaG91cnM6IGR1ci5ob3VycyxcbiAgICAgIG1pbnV0ZXM6IGR1ci5taW51dGVzLFxuICAgICAgc2Vjb25kczogZHVyLnNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHM6IGR1ci5taWxsaXNlY29uZHMsXG4gICAgfSkuYXMoXCJtaWxsaXNlY29uZHNcIiksXG4gICAgbG9jYWxUUyA9IG9ialRvTG9jYWxUUyhjKTtcblxuICBsZXQgW3RzLCBvXSA9IGZpeE9mZnNldChsb2NhbFRTLCBvUHJlLCBpbnN0LnpvbmUpO1xuXG4gIGlmIChtaWxsaXNUb0FkZCAhPT0gMCkge1xuICAgIHRzICs9IG1pbGxpc1RvQWRkO1xuICAgIC8vIHRoYXQgY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBvZmZzZXQgYnkgZ29pbmcgb3ZlciBhIERTVCwgYnV0IHdlIHdhbnQgdG8ga2VlcCB0aGUgdHMgdGhlIHNhbWVcbiAgICBvID0gaW5zdC56b25lLm9mZnNldCh0cyk7XG4gIH1cblxuICByZXR1cm4geyB0cywgbyB9O1xufVxuXG4vLyBoZWxwZXIgdXNlZnVsIGluIHR1cm5pbmcgdGhlIHJlc3VsdHMgb2YgcGFyc2luZyBpbnRvIHJlYWwgZGF0ZXNcbi8vIGJ5IGhhbmRsaW5nIHRoZSB6b25lIG9wdGlvbnNcbmZ1bmN0aW9uIHBhcnNlRGF0YVRvRGF0ZVRpbWUocGFyc2VkLCBwYXJzZWRab25lLCBvcHRzLCBmb3JtYXQsIHRleHQsIHNwZWNpZmljT2Zmc2V0KSB7XG4gIGNvbnN0IHsgc2V0Wm9uZSwgem9uZSB9ID0gb3B0cztcbiAgaWYgKHBhcnNlZCAmJiBPYmplY3Qua2V5cyhwYXJzZWQpLmxlbmd0aCAhPT0gMCkge1xuICAgIGNvbnN0IGludGVycHJldGF0aW9uWm9uZSA9IHBhcnNlZFpvbmUgfHwgem9uZSxcbiAgICAgIGluc3QgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHBhcnNlZCwge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICB6b25lOiBpbnRlcnByZXRhdGlvblpvbmUsXG4gICAgICAgIHNwZWNpZmljT2Zmc2V0LFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHNldFpvbmUgPyBpbnN0IDogaW5zdC5zZXRab25lKHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgbmV3IEludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzICR7Zm9ybWF0fWApXG4gICAgKTtcbiAgfVxufVxuXG4vLyBpZiB5b3Ugd2FudCB0byBvdXRwdXQgYSB0ZWNobmljYWwgZm9ybWF0IChlLmcuIFJGQyAyODIyKSwgdGhpcyBoZWxwZXJcbi8vIGhlbHBzIGhhbmRsZSB0aGUgZGV0YWlsc1xuZnVuY3Rpb24gdG9UZWNoRm9ybWF0KGR0LCBmb3JtYXQsIGFsbG93WiA9IHRydWUpIHtcbiAgcmV0dXJuIGR0LmlzVmFsaWRcbiAgICA/IEZvcm1hdHRlci5jcmVhdGUoTG9jYWxlLmNyZWF0ZShcImVuLVVTXCIpLCB7XG4gICAgICAgIGFsbG93WixcbiAgICAgICAgZm9yY2VTaW1wbGU6IHRydWUsXG4gICAgICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdClcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIHRvSVNPRGF0ZShvLCBleHRlbmRlZCkge1xuICBjb25zdCBsb25nRm9ybWF0ID0gby5jLnllYXIgPiA5OTk5IHx8IG8uYy55ZWFyIDwgMDtcbiAgbGV0IGMgPSBcIlwiO1xuICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9IFwiK1wiO1xuICBjICs9IHBhZFN0YXJ0KG8uYy55ZWFyLCBsb25nRm9ybWF0ID8gNiA6IDQpO1xuXG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubW9udGgpO1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gdG9JU09UaW1lKFxuICBvLFxuICBleHRlbmRlZCxcbiAgc3VwcHJlc3NTZWNvbmRzLFxuICBzdXBwcmVzc01pbGxpc2Vjb25kcyxcbiAgaW5jbHVkZU9mZnNldCxcbiAgZXh0ZW5kZWRab25lXG4pIHtcbiAgbGV0IGMgPSBwYWRTdGFydChvLmMuaG91cik7XG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCI6XCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTtcbiAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgICBjICs9IFwiOlwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICB9XG5cbiAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7XG5cbiAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykge1xuICAgICAgYyArPSBcIi5cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDAgJiYgIWV4dGVuZGVkWm9uZSkge1xuICAgICAgYyArPSBcIlpcIjtcbiAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHtcbiAgICAgIGMgKz0gXCItXCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gJSA2MCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjICs9IFwiK1wiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAlIDYwKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGV4dGVuZGVkWm9uZSkge1xuICAgIGMgKz0gXCJbXCIgKyBvLnpvbmUuaWFuYU5hbWUgKyBcIl1cIjtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzXG5jb25zdCBkZWZhdWx0VW5pdFZhbHVlcyA9IHtcbiAgICBtb250aDogMSxcbiAgICBkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7XG4gICAgd2Vla051bWJlcjogMSxcbiAgICB3ZWVrZGF5OiAxLFxuICAgIGhvdXI6IDAsXG4gICAgbWludXRlOiAwLFxuICAgIHNlY29uZDogMCxcbiAgICBtaWxsaXNlY29uZDogMCxcbiAgfSxcbiAgZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzID0ge1xuICAgIG9yZGluYWw6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9O1xuXG4vLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3NcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcInllYXJcIiwgXCJtb250aFwiLCBcImRheVwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSxcbiAgb3JkZXJlZFdlZWtVbml0cyA9IFtcbiAgICBcIndlZWtZZWFyXCIsXG4gICAgXCJ3ZWVrTnVtYmVyXCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJtaW51dGVcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwibWlsbGlzZWNvbmRcIixcbiAgXSxcbiAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFtcInllYXJcIiwgXCJvcmRpbmFsXCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdO1xuXG4vLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgIHllYXI6IFwieWVhclwiLFxuICAgIHllYXJzOiBcInllYXJcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG1vbnRoczogXCJtb250aFwiLFxuICAgIGRheTogXCJkYXlcIixcbiAgICBkYXlzOiBcImRheVwiLFxuICAgIGhvdXI6IFwiaG91clwiLFxuICAgIGhvdXJzOiBcImhvdXJcIixcbiAgICBtaW51dGU6IFwibWludXRlXCIsXG4gICAgbWludXRlczogXCJtaW51dGVcIixcbiAgICBxdWFydGVyOiBcInF1YXJ0ZXJcIixcbiAgICBxdWFydGVyczogXCJxdWFydGVyXCIsXG4gICAgc2Vjb25kOiBcInNlY29uZFwiLFxuICAgIHNlY29uZHM6IFwic2Vjb25kXCIsXG4gICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRcIixcbiAgICB3ZWVrZGF5OiBcIndlZWtkYXlcIixcbiAgICB3ZWVrZGF5czogXCJ3ZWVrZGF5XCIsXG4gICAgd2Vla251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla3NudW1iZXI6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWtudW1iZXJzOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVreWVhcjogXCJ3ZWVrWWVhclwiLFxuICAgIHdlZWt5ZWFyczogXCJ3ZWVrWWVhclwiLFxuICAgIG9yZGluYWw6IFwib3JkaW5hbFwiLFxuICB9W3VuaXQudG9Mb3dlckNhc2UoKV07XG5cbiAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyXG4vLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzXG4vLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLlxuZnVuY3Rpb24gcXVpY2tEVChvYmosIG9wdHMpIHtcbiAgY29uc3Qgem9uZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyksXG4gICAgdHNOb3cgPSBTZXR0aW5ncy5ub3coKTtcblxuICBsZXQgdHMsIG87XG5cbiAgLy8gYXNzdW1lIHdlIGhhdmUgdGhlIGhpZ2hlci1vcmRlciB1bml0c1xuICBpZiAoIWlzVW5kZWZpbmVkKG9iai55ZWFyKSkge1xuICAgIGZvciAoY29uc3QgdSBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChpc1VuZGVmaW5lZChvYmpbdV0pKSB7XG4gICAgICAgIG9ialt1XSA9IGRlZmF1bHRVbml0VmFsdWVzW3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHx8IGhhc0ludmFsaWRUaW1lRGF0YShvYmopO1xuICAgIGlmIChpbnZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXRQcm92aXMgPSB6b25lLm9mZnNldCh0c05vdyk7XG4gICAgW3RzLCBvXSA9IG9ialRvVFMob2JqLCBvZmZzZXRQcm92aXMsIHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHRzID0gdHNOb3c7XG4gIH1cblxuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgdHMsIHpvbmUsIGxvYywgbyB9KTtcbn1cblxuZnVuY3Rpb24gZGlmZlJlbGF0aXZlKHN0YXJ0LCBlbmQsIG9wdHMpIHtcbiAgY29uc3Qgcm91bmQgPSBpc1VuZGVmaW5lZChvcHRzLnJvdW5kKSA/IHRydWUgOiBvcHRzLnJvdW5kLFxuICAgIGZvcm1hdCA9IChjLCB1bml0KSA9PiB7XG4gICAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGVuZC5sb2MuY2xvbmUob3B0cykucmVsRm9ybWF0dGVyKG9wdHMpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQoYywgdW5pdCk7XG4gICAgfSxcbiAgICBkaWZmZXIgPSAodW5pdCkgPT4ge1xuICAgICAgaWYgKG9wdHMuY2FsZW5kYXJ5KSB7XG4gICAgICAgIGlmICghZW5kLmhhc1NhbWUoc3RhcnQsIHVuaXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZC5zdGFydE9mKHVuaXQpLmRpZmYoc3RhcnQuc3RhcnRPZih1bml0KSwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsIHVuaXQpLmdldCh1bml0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGlmIChvcHRzLnVuaXQpIHtcbiAgICByZXR1cm4gZm9ybWF0KGRpZmZlcihvcHRzLnVuaXQpLCBvcHRzLnVuaXQpO1xuICB9XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIG9wdHMudW5pdHMpIHtcbiAgICBjb25zdCBjb3VudCA9IGRpZmZlcih1bml0KTtcbiAgICBpZiAoTWF0aC5hYnMoY291bnQpID49IDEpIHtcbiAgICAgIHJldHVybiBmb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybWF0KHN0YXJ0ID4gZW5kID8gLTAgOiAwLCBvcHRzLnVuaXRzW29wdHMudW5pdHMubGVuZ3RoIC0gMV0pO1xufVxuXG5mdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7XG4gIGxldCBvcHRzID0ge30sXG4gICAgYXJncztcbiAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSBcIm9iamVjdFwiKSB7XG4gICAgb3B0cyA9IGFyZ0xpc3RbYXJnTGlzdC5sZW5ndGggLSAxXTtcbiAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KS5zbGljZSgwLCBhcmdMaXN0Lmxlbmd0aCAtIDEpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpO1xuICB9XG4gIHJldHVybiBbb3B0cywgYXJnc107XG59XG5cbi8qKlxuICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLlxuICpcbiAqIEEgRGF0ZVRpbWUgY29tcHJpc2VzIG9mOlxuICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC5cbiAqICogQSB0aW1lIHpvbmUuIEVhY2ggaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHpvbmUgKGJ5IGRlZmF1bHQgdGhlIGxvY2FsIHN5c3RlbSdzIHpvbmUpLlxuICogKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBlZmZlY3QgaG93IG91dHB1dCBzdHJpbmdzIGFyZSBmb3JtYXR0ZWQsIHN1Y2ggYXMgYGxvY2FsZWAsIGBudW1iZXJpbmdTeXN0ZW1gLCBhbmQgYG91dHB1dENhbGVuZGFyYC5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbmFsaXR5IGl0IHByb3ZpZGVzOlxuICpcbiAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZSNsb2NhbH0sIHtAbGluayBEYXRlVGltZSN1dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZSNmcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lI2Zyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZSNmcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSlNEYXRlfS5cbiAqICogKipHcmVnb3JpYW4gY2FsZW5kYXIgYW5kIHRpbWUqKjogVG8gZXhhbWluZSB0aGUgR3JlZ29yaWFuIHByb3BlcnRpZXMgb2YgYSBEYXRlVGltZSBpbmRpdmlkdWFsbHkgKGkuZSBhcyBvcHBvc2VkIHRvIGNvbGxlY3RpdmVseSB0aHJvdWdoIHtAbGluayBEYXRlVGltZSN0b09iamVjdH0pLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN5ZWFyfSwge0BsaW5rIERhdGVUaW1lI21vbnRofSxcbiAqIHtAbGluayBEYXRlVGltZSNkYXl9LCB7QGxpbmsgRGF0ZVRpbWUjaG91cn0sIHtAbGluayBEYXRlVGltZSNtaW51dGV9LCB7QGxpbmsgRGF0ZVRpbWUjc2Vjb25kfSwge0BsaW5rIERhdGVUaW1lI21pbGxpc2Vjb25kfSBhY2Nlc3NvcnMuXG4gKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLlxuICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgdGhlIHtAbGluayBEYXRlVGltZSNsb2NhbGV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKjogVG8gdHJhbnNmb3JtIHRoZSBEYXRlVGltZSBpbnRvIG90aGVyIERhdGVUaW1lcywgdXNlIHtAbGluayBEYXRlVGltZSNzZXR9LCB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9LCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0sIHtAbGluayBEYXRlVGltZSNzZXRMb2NhbGV9LCB7QGxpbmsgRGF0ZVRpbWUucGx1c30sIHtAbGluayBEYXRlVGltZSNtaW51c30sIHtAbGluayBEYXRlVGltZSNlbmRPZn0sIHtAbGluayBEYXRlVGltZSNzdGFydE9mfSwge0BsaW5rIERhdGVUaW1lI3RvVVRDfSwgYW5kIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfS5cbiAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uXG4gKlxuICogVGhlcmUncyBwbGVudHkgb3RoZXJzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uLCB0aW1lIHpvbmVzLCBhbHRlcm5hdGl2ZSBjYWxlbmRhcnMsIHZhbGlkaXR5LCBhbmQgc28gb24sIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0ZVRpbWUge1xuICAvKipcbiAgICogQGFjY2VzcyBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCB6b25lID0gY29uZmlnLnpvbmUgfHwgU2V0dGluZ3MuZGVmYXVsdFpvbmU7XG5cbiAgICBsZXQgaW52YWxpZCA9XG4gICAgICBjb25maWcuaW52YWxpZCB8fFxuICAgICAgKE51bWJlci5pc05hTihjb25maWcudHMpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbCkgfHxcbiAgICAgICghem9uZS5pc1ZhbGlkID8gdW5zdXBwb3J0ZWRab25lKHpvbmUpIDogbnVsbCk7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy50cyA9IGlzVW5kZWZpbmVkKGNvbmZpZy50cykgPyBTZXR0aW5ncy5ub3coKSA6IGNvbmZpZy50cztcblxuICAgIGxldCBjID0gbnVsbCxcbiAgICAgIG8gPSBudWxsO1xuICAgIGlmICghaW52YWxpZCkge1xuICAgICAgY29uc3QgdW5jaGFuZ2VkID0gY29uZmlnLm9sZCAmJiBjb25maWcub2xkLnRzID09PSB0aGlzLnRzICYmIGNvbmZpZy5vbGQuem9uZS5lcXVhbHMoem9uZSk7XG5cbiAgICAgIGlmICh1bmNoYW5nZWQpIHtcbiAgICAgICAgW2MsIG9dID0gW2NvbmZpZy5vbGQuYywgY29uZmlnLm9sZC5vXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG90ID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGMgPSB0c1RvT2JqKHRoaXMudHMsIG90KTtcbiAgICAgICAgaW52YWxpZCA9IE51bWJlci5pc05hTihjLnllYXIpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbDtcbiAgICAgICAgYyA9IGludmFsaWQgPyBudWxsIDogYztcbiAgICAgICAgbyA9IGludmFsaWQgPyBudWxsIDogb3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5fem9uZSA9IHpvbmU7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBpbnZhbGlkO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMud2Vla0RhdGEgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuYyA9IGM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5vID0gbztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EYXRlVGltZSA9IHRydWU7XG4gIH1cblxuICAvLyBDT05TVFJVQ1RcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZm9yIHRoZSBjdXJyZW50IGluc3RhbnQsIGluIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUuXG4gICAqXG4gICAqIFVzZSBTZXR0aW5ncyB0byBvdmVycmlkZSB0aGVzZSBkZWZhdWx0IHZhbHVlcyBpZiBuZWVkZWQuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy9+PiBub3cgaW4gdGhlIElTTyBmb3JtYXRcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbm93KCkge1xuICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGxvY2FsIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYGxvY2FsKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaW51dGU9MF0gLSBUaGUgbWludXRlIG9mIHRoZSBob3VyLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWNvbmQ9MF0gLSBUaGUgc2Vjb25kIG9mIHRoZSBtaW51dGUsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCh7IHpvbmU6IFwiQW1lcmljYS9OZXdfWW9ya1wiIH0pICAgICAgLy9+PiBub3csIGluIFVTIGVhc3QgY29hc3QgdGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwLCB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiBcInV0Y1wiIH0pICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwLCBpbiBVVENcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1KSAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCkgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1KSAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1XG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGxvY2FsKCkge1xuICAgIGNvbnN0IFtvcHRzLCBhcmdzXSA9IGxhc3RPcHRzKGFyZ3VtZW50cyksXG4gICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXSA9IGFyZ3M7XG4gICAgcmV0dXJuIHF1aWNrRFQoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgaW4gVVRDXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYHV0YygpYCB3aXRoIG5vIGFyZ3VtZW50cyksIHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB1c2VkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm91dHB1dENhbGVuZGFyXSAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm51bWJlcmluZ1N5c3RlbV0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDEtMDFUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1WiB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyB1dGMoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcblxuICAgIG9wdHMuem9uZSA9IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZTtcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdC4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge0RhdGV9IGRhdGUgLSBhIEphdmFTY3JpcHQgRGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTRGF0ZShkYXRlLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0cyA9IGlzRGF0ZShkYXRlKSA/IGRhdGUudmFsdWVPZigpIDogTmFOO1xuICAgIGlmIChOdW1iZXIuaXNOYU4odHMpKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcImludmFsaWQgaW5wdXRcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICB0czogdHMsXG4gICAgICB6b25lOiB6b25lVG9Vc2UsXG4gICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghaXNOdW1iZXIobWlsbGlzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgZnJvbU1pbGxpcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCwgYnV0IHJlY2VpdmVkIGEgJHt0eXBlb2YgbWlsbGlzZWNvbmRzfSB3aXRoIHZhbHVlICR7bWlsbGlzZWNvbmRzfWBcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPCAtTUFYX0RBVEUgfHwgbWlsbGlzZWNvbmRzID4gTUFYX0RBVEUpIHtcbiAgICAgIC8vIHRoaXMgaXNuJ3QgcGVyZmVjdCBiZWNhdXNlIGJlY2F1c2Ugd2UgY2FuIHN0aWxsIGVuZCB1cCBvdXQgb2YgcmFuZ2UgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHNoaWZ0aW5nLCBidXQgaXQncyBhIHN0YXJ0XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcIlRpbWVzdGFtcCBvdXQgb2YgcmFuZ2VcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogbWlsbGlzZWNvbmRzLFxuICAgICAgICB6b25lOiBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpLFxuICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2ggKG1lYW5pbmcgc2luY2UgMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Vjb25kcyAtIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNlY29uZHMoc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwiZnJvbVNlY29uZHMgcmVxdWlyZXMgYSBudW1lcmljYWwgaW5wdXRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogc2Vjb25kcyAqIDEwMDAsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFyJyBhbmQgJ2hvdXInIHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gY3JlYXRlIHRoZSBEYXRlVGltZSBmcm9tXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhciAtIGEgeWVhciwgc3VjaCBhcyAxOTg3XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubW9udGggLSBhIG1vbnRoLCAxLTEyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5IC0gYSBkYXkgb2YgdGhlIG1vbnRoLCAxLTMxLCBkZXBlbmRpbmcgb24gdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoub3JkaW5hbCAtIGRheSBvZiB0aGUgeWVhciwgMS0zNjUgb3IgMzY2XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla1llYXIgLSBhbiBJU08gd2VlayB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla051bWJlciAtIGFuIElTTyB3ZWVrIG51bWJlciwgYmV0d2VlbiAxIGFuZCA1MiBvciA1MywgZGVwZW5kaW5nIG9uIHRoZSB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla2RheSAtIGFuIElTTyB3ZWVrZGF5LCAxLTcsIHdoZXJlIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmhvdXIgLSBob3VyIG9mIHRoZSBkYXksIDAtMjNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGUgLSBtaW51dGUgb2YgdGhlIGhvdXIsIDAtNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmQgLSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbGxpc2Vjb25kIC0gbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgMC05OTlcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBpbnRlcnByZXQgdGhlIG51bWJlcnMgaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyIHpvbmUuIENhbiB0YWtlIGFueSB2YWx1ZSB0YWtlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc2V0Wm9uZSgpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyLCBtb250aDogNSwgZGF5OiAyNX0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDEtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0pIC8vfj4gdG9kYXkgYXQgMTA6MjY6MDZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAndXRjJyB9KSxcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnbG9jYWwnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB3ZWVrWWVhcjogMjAxNiwgd2Vla051bWJlcjogMiwgd2Vla2RheTogMyB9KS50b0lTT0RhdGUoKSAvLz0+ICcyMDE2LTAxLTEzJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tT2JqZWN0KG9iaiwgb3B0cyA9IHt9KSB7XG4gICAgb2JqID0gb2JqIHx8IHt9O1xuICAgIGNvbnN0IHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gICAgaWYgKCF6b25lVG9Vc2UuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHRzTm93ID0gU2V0dGluZ3Mubm93KCksXG4gICAgICBvZmZzZXRQcm92aXMgPSAhaXNVbmRlZmluZWQob3B0cy5zcGVjaWZpY09mZnNldClcbiAgICAgICAgPyBvcHRzLnNwZWNpZmljT2Zmc2V0XG4gICAgICAgIDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksXG4gICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KG9iaiwgbm9ybWFsaXplVW5pdCksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLFxuICAgICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyk7XG5cbiAgICAvLyBjYXNlczpcbiAgICAvLyBqdXN0IGEgd2Vla2RheSAtPiB0aGlzIHdlZWsncyBpbnN0YW5jZSBvZiB0aGF0IHdlZWtkYXksIG5vIHdvcnJpZXNcbiAgICAvLyAoZ3JlZ29yaWFuIGRhdGEgb3Igb3JkaW5hbCkgKyAod2Vla1llYXIgb3Igd2Vla051bWJlcikgLT4gZXJyb3JcbiAgICAvLyAoZ3JlZ29yaWFuIG1vbnRoIG9yIGRheSkgKyBvcmRpbmFsIC0+IGVycm9yXG4gICAgLy8gb3RoZXJ3aXNlIGp1c3QgdXNlIHdlZWtzIG9yIG9yZGluYWxzIG9yIGdyZWdvcmlhbiwgZGVwZW5kaW5nIG9uIHdoYXQncyBzcGVjaWZpZWRcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VXZWVrRGF0YSA9IGRlZmluaXRlV2Vla0RlZiB8fCAobm9ybWFsaXplZC53ZWVrZGF5ICYmICFjb250YWluc0dyZWdvcik7XG5cbiAgICAvLyBjb25maWd1cmUgb3Vyc2VsdmVzIHRvIGRlYWwgd2l0aCBncmVnb3JpYW4gZGF0ZXMgb3Igd2VlayBzdHVmZlxuICAgIGxldCB1bml0cyxcbiAgICAgIGRlZmF1bHRWYWx1ZXMsXG4gICAgICBvYmpOb3cgPSB0c1RvT2JqKHRzTm93LCBvZmZzZXRQcm92aXMpO1xuICAgIGlmICh1c2VXZWVrRGF0YSkge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkV2Vla1VuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRXZWVrVW5pdFZhbHVlcztcbiAgICAgIG9iak5vdyA9IGdyZWdvcmlhblRvV2VlayhvYmpOb3cpO1xuICAgIH0gZWxzZSBpZiAoY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRPcmRpbmFsVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9PcmRpbmFsKG9iak5vdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZFVuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRVbml0VmFsdWVzO1xuICAgIH1cblxuICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBzdHVmZlxuICAgIGxldCBmb3VuZEZpcnN0ID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCB1IG9mIHVuaXRzKSB7XG4gICAgICBjb25zdCB2ID0gbm9ybWFsaXplZFt1XTtcbiAgICAgIGlmICghaXNVbmRlZmluZWQodikpIHtcbiAgICAgICAgZm91bmRGaXJzdCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGZvdW5kRmlyc3QpIHtcbiAgICAgICAgbm9ybWFsaXplZFt1XSA9IGRlZmF1bHRWYWx1ZXNbdV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gb2JqTm93W3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIHdlIGhhdmUgYXJlIGluIHJhbmdlXG4gICAgY29uc3QgaGlnaGVyT3JkZXJJbnZhbGlkID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyBoYXNJbnZhbGlkV2Vla0RhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBoYXNJbnZhbGlkT3JkaW5hbERhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShub3JtYWxpemVkKSxcbiAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpO1xuXG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIC8vIGNvbXB1dGUgdGhlIGFjdHVhbCB0aW1lXG4gICAgY29uc3QgZ3JlZ29yaWFuID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyB3ZWVrVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBvcmRpbmFsVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBub3JtYWxpemVkLFxuICAgICAgW3RzRmluYWwsIG9mZnNldEZpbmFsXSA9IG9ialRvVFMoZ3JlZ29yaWFuLCBvZmZzZXRQcm92aXMsIHpvbmVUb1VzZSksXG4gICAgICBpbnN0ID0gbmV3IERhdGVUaW1lKHtcbiAgICAgICAgdHM6IHRzRmluYWwsXG4gICAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgICAgbzogb2Zmc2V0RmluYWwsXG4gICAgICAgIGxvYyxcbiAgICAgIH0pO1xuXG4gICAgLy8gZ3JlZ29yaWFuIGRhdGEgKyB3ZWVrZGF5IHNlcnZlcyBvbmx5IHRvIHZhbGlkYXRlXG4gICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcbiAgICAgICAgXCJtaXNtYXRjaGVkIHdlZWtkYXlcIixcbiAgICAgICAgYHlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICR7bm9ybWFsaXplZC53ZWVrZGF5fSBhbmQgYSBkYXRlIG9mICR7aW5zdC50b0lTTygpfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBJU08gODYwMSBzdHJpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnLCB7em9uZTogJ3V0Yyd9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LVcwNS00JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUlTT0RhdGUodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJJU08gODYwMVwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBSRkMgMjgyMiBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSB0aGUgb2Zmc2V0IGlzIGFsd2F5cyBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIHRoaXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgaW50ZXJwcmV0YXRpb24gb2Ygc3RyaW5nLCBtZXJlbHkgdGhlIHpvbmUgdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpcyBleHByZXNzZWQgaW4uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMzoxMiBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tUkZDMjgyMignRnJpLCAyNSBOb3YgMjAxNiAxMzoyMzoxMiArMDYwMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMyBaJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVJGQzI4MjIodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VSRkMyODIyRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlJGQyAyODIyXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gSFRUUCBoZWFkZXIgZGF0ZVxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZS4gU2luY2UgSFRUUCBkYXRlcyBhcmUgYWx3YXlzIGluIFVUQywgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggdGhlIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nLiBGb3IgSFRUUCBkYXRlcywgdGhpcyBpcyBhbHdheXMgVVRDLCBzbyB0aGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhlIGB6b25lYCBvcHRpb24gdG8gJ3V0YycsIGJ1dCB0aGlzIG9wdGlvbiBpcyBpbmNsdWRlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCBzaW1pbGFyIG1ldGhvZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4sIDA2IE5vdiAxOTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW5kYXksIDA2LU5vdi05NCAwODo0OTozNyBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuIE5vdiAgNiAwODo0OTozNyAxOTk0JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUhUVFAodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VIVFRQRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIkhUVFBcIiwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBpbnB1dCBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmcuXG4gICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvcGFyc2luZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIHRoZSBsaW5rIGJlbG93IGZvciB0aGUgZm9ybWF0cylcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIHVzZSB0aGlzIHpvbmUgaWYgbm8gb2Zmc2V0IGlzIHNwZWNpZmllZCBpbiB0aGUgaW5wdXQgc3RyaW5nIGl0c2VsZi4gV2lsbCBhbHNvIGNvbnZlcnQgdGhlIERhdGVUaW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSBhIGxvY2FsZSBzdHJpbmcgdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIHRvIHRoaXMgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tRm9ybWF0IHJlcXVpcmVzIGFuIGlucHV0IHN0cmluZyBhbmQgYSBmb3JtYXRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRzLFxuICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoe1xuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG51bWJlcmluZ1N5c3RlbSxcbiAgICAgICAgZGVmYXVsdFRvRU46IHRydWUsXG4gICAgICB9KSxcbiAgICAgIFt2YWxzLCBwYXJzZWRab25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZF0gPSBwYXJzZUZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBgZm9ybWF0ICR7Zm10fWAsIHRleHQsIHNwZWNpZmljT2Zmc2V0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXQgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBTUUwgZGF0ZSwgdGltZSwgb3IgZGF0ZXRpbWVcbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIgQW1lcmljYS9Mb3NfQW5nZWxlcycsIHsgc2V0Wm9uZTogdHJ1ZSB9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MicsIHsgem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzA5OjEyOjM0LjM0MicpXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21TUUwodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VTUUwodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJTUUxcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGludmFsaWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIERhdGVUaW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7XG4gICAgaWYgKCFyZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRGF0ZVRpbWUgaXMgaW52YWxpZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pO1xuXG4gICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGVUaW1lRXJyb3IoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoeyBpbnZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZVRpbWUuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0RhdGVUaW1lKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRGF0ZVRpbWUpIHx8IGZhbHNlO1xuICB9XG5cbiAgLy8gSU5GT1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZScgb3IgJ2RheSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdtb250aCcpOyAvLz0+IDdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdkYXknKTsgLy89PiA0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbdW5pdF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyB2YWxpZC4gSW52YWxpZCBEYXRlVGltZXMgb2NjdXIgd2hlbjpcbiAgICogKiBUaGUgRGF0ZVRpbWUgd2FzIGNyZWF0ZWQgZnJvbSBpbnZhbGlkIGNhbGVuZGFyIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSAxM3RoIG1vbnRoIG9yIEZlYnJ1YXJ5IDMwXG4gICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGJ5IGFuIG9wZXJhdGlvbiBvbiBhbm90aGVyIGludmFsaWQgZGF0ZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkUmVhc29uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQucmVhc29uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIERhdGVUaW1lLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgb3V0cHV0IGNhbGVuZGFyIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2lzbGFtaWMnLiBUaGUgb3V0cHV0IGNhbGVuZGFyIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEB0eXBlIHtab25lfVxuICAgKi9cbiAgZ2V0IHpvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgem9uZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5uYW1lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnllYXIgLy89PiAyMDE3XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnllYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5xdWFydGVyIC8vPT4gMlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHF1YXJ0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoICgxLTEyKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1vbnRoKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubW9udGggOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLmRheSAvLz0+IDI1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuZGF5IDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91ciBvZiB0aGUgZGF5ICgwLTIzKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDkpLmhvdXIgLy89PiA5XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGUgb2YgdGhlIGhvdXIgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWludXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWludXRlIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyKS5zZWNvbmQgLy89PiA1MlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHNlY29uZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnNlY29uZCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQgKDAtOTk5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1MiwgNjU0KS5taWxsaXNlY29uZCAvLz0+IDY1NFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbGxpc2Vjb25kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDEyLCAzMSkud2Vla1llYXIgLy89PiAyMDE1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla1llYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgd2VlayB5ZWFyICgxLTUyaXNoKS5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjFcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtOdW1iZXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuXG4gICAqIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla2RheSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcilcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm9yZGluYWwgLy89PiAxNDVcbiAgICogQHR5cGUge251bWJlcnxEYXRlVGltZX1cbiAgICovXG4gIGdldCBvcmRpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKS5vcmRpbmFsIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0Jy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG1vbnRoU2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKFwic2hvcnRcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdG9iZXInLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbW9udGhMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocyhcImxvbmdcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCB3ZWVrZGF5LCBzdWNoIGFzICdNb24nLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB3ZWVrZGF5U2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoXCJzaG9ydFwiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyB3ZWVrZGF5LCBzdWNoIGFzICdNb25kYXknLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheVxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXlMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKFwibG9uZ1wiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgVVRDIG9mZnNldCBvZiB0aGlzIERhdGVUaW1lIGluIG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkub2Zmc2V0IC8vPT4gLTI0MFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgb2Zmc2V0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyArdGhpcy5vIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgXCJFU1RcIiBvciBcIkVEVFwiLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvZmZzZXROYW1lU2hvcnQoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHtcbiAgICAgICAgZm9ybWF0OiBcInNob3J0XCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9uZyBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSBcIkVhc3Rlcm4gU3RhbmRhcmQgVGltZVwiIG9yIFwiRWFzdGVybiBEYXlsaWdodCBUaW1lXCIuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG9mZnNldE5hbWVMb25nKCkge1xuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvbmUub2Zmc2V0TmFtZSh0aGlzLnRzLCB7XG4gICAgICAgIGZvcm1hdDogXCJsb25nXCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoaXMgem9uZSdzIG9mZnNldCBldmVyIGNoYW5nZXMsIGFzIGluIGEgRFNULlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc09mZnNldEZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUuaXNVbml2ZXJzYWwgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyBpbiBhIERTVC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkRTVCgpIHtcbiAgICBpZiAodGhpcy5pc09mZnNldEZpeGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogMSwgZGF5OiAxIH0pLm9mZnNldCB8fFxuICAgICAgICB0aGlzLm9mZnNldCA+IHRoaXMuc2V0KHsgbW9udGg6IDUgfSkub2Zmc2V0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbiBhIGxlYXAgeWVhciwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmlzSW5MZWFwWWVhciAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuaXNJbkxlYXBZZWFyIC8vPT4gZmFsc2VcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkxlYXBZZWFyKCkge1xuICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIG1vbnRoXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYsIDIpLmRheXNJbk1vbnRoIC8vPT4gMjlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMykuZGF5c0luTW9udGggLy89PiAzMVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJbk1vbnRoKCkge1xuICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIsIHRoaXMubW9udGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyB5ZWFyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmRheXNJblllYXIgLy89PiAzNjZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuZGF5c0luWWVhciAvLz0+IDM2NVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJblllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGRheXNJblllYXIodGhpcy55ZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMDQpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUyXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3NJbldlZWtZZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB3ZWVrc0luV2Vla1llYXIodGhpcy53ZWVrWWVhcikgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgSW50bCBvcHRpb25zIGZvciB0aGlzIERhdGVUaW1lLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSB0aGUgc2FtZSBvcHRpb25zIGFzIHRvTG9jYWxlU3RyaW5nXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHJlc29sdmVkTG9jYWxlT3B0aW9ucyhvcHRzID0ge30pIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhciB9ID0gRm9ybWF0dGVyLmNyZWF0ZShcbiAgICAgIHRoaXMubG9jLmNsb25lKG9wdHMpLFxuICAgICAgb3B0c1xuICAgICkucmVzb2x2ZWRPcHRpb25zKHRoaXMpO1xuICAgIHJldHVybiB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcjogY2FsZW5kYXIgfTtcbiAgfVxuXG4gIC8vIFRSQU5TRk9STVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gVVRDLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8ge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9KCd1dGMnKVxuICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIG9wdGlvbmFsbHksIGFuIG9mZnNldCBmcm9tIFVUQyBpbiBtaW51dGVzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz17fV0gLSBvcHRpb25zIHRvIHBhc3MgdG8gYHNldFpvbmUoKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b1VUQyhvZmZzZXQgPSAwLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShvZmZzZXQpLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gdGhlIGhvc3QncyBsb2NhbCB6b25lLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8gYHNldFpvbmUoJ2xvY2FsJylgXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgdG9Mb2NhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gc3BlY2lmaWVkIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIHNldHRlciBrZWVwcyB0aGUgdW5kZXJseWluZyB0aW1lIHRoZSBzYW1lIChhcyBpbiwgdGhlIHNhbWUgdGltZXN0YW1wKSwgYnV0IHRoZSBuZXcgaW5zdGFuY2Ugd2lsbCByZXBvcnQgZGlmZmVyZW50IGxvY2FsIHRpbWVzIGFuZCBjb25zaWRlciBEU1RzIHdoZW4gbWFraW5nIGNvbXB1dGF0aW9ucywgYXMgd2l0aCB7QGxpbmsgRGF0ZVRpbWUjcGx1c30uIFlvdSBtYXkgd2lzaCB0byB1c2Uge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9IHdoaWNoIHByb3ZpZGUgc2ltcGxlIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBjb21tb25seSB1c2VkIHpvbmVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbem9uZT0nbG9jYWwnXSAtIGEgem9uZSBpZGVudGlmaWVyLiBBcyBhIHN0cmluZywgdGhhdCBjYW4gYmUgYW55IElBTkEgem9uZSBzdXBwb3J0ZWQgYnkgdGhlIGhvc3QgZW52aXJvbm1lbnQsIG9yIGEgZml4ZWQtb2Zmc2V0IG5hbWUgb2YgdGhlIGZvcm0gJ1VUQyszJywgb3IgdGhlIHN0cmluZ3MgJ2xvY2FsJyBvciAndXRjJy4gWW91IG1heSBhbHNvIHN1cHBseSBhbiBpbnN0YW5jZSBvZiBhIHtAbGluayBEYXRlVGltZSNab25lfSBjbGFzcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMua2VlcExvY2FsVGltZT1mYWxzZV0gLSBJZiB0cnVlLCBhZGp1c3QgdGhlIHVuZGVybHlpbmcgdGltZSBzbyB0aGF0IHRoZSBsb2NhbCB0aW1lIHN0YXlzIHRoZSBzYW1lLCBidXQgaW4gdGhlIHRhcmdldCB6b25lLiBZb3Ugc2hvdWxkIHJhcmVseSBuZWVkIHRoaXMuXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWUgPSBmYWxzZSwga2VlcENhbGVuZGFyVGltZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgIHpvbmUgPSBub3JtYWxpemVab25lKHpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoem9uZS5lcXVhbHModGhpcy56b25lKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmICghem9uZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbmV3VFMgPSB0aGlzLnRzO1xuICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkge1xuICAgICAgICBjb25zdCBvZmZzZXRHdWVzcyA9IHpvbmUub2Zmc2V0KHRoaXMudHMpO1xuICAgICAgICBjb25zdCBhc09iaiA9IHRoaXMudG9PYmplY3QoKTtcbiAgICAgICAgW25ld1RTXSA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzOiBuZXdUUywgem9uZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIC0gdGhlIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IGxvYyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogSnVzdCBhIGNvbnZlbmllbnQgYWxpYXMgZm9yIHJlY29uZmlndXJlKHsgbG9jYWxlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5zZXRMb2NhbGUoJ2VuLUdCJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRMb2NhbGUobG9jYWxlKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb25maWd1cmUoeyBsb2NhbGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBZb3UgY2FuIG9ubHkgc2V0IHVuaXRzIHdpdGggdGhpcyBtZXRob2Q7IGZvciBcInNldHRpbmdcIiBtZXRhZGF0YSwgc2VlIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0gYW5kIHtAbGluayBEYXRlVGltZSNzZXRab25lfS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIGEgbWFwcGluZyBvZiB1bml0cyB0byBudW1iZXJzXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgaG91cjogOCwgbWludXRlOiAzMCB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB3ZWVrZGF5OiA1IH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMDUsIG9yZGluYWw6IDIzNCB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KHZhbHVlcywgbm9ybWFsaXplVW5pdCksXG4gICAgICBzZXR0aW5nV2Vla1N0dWZmID1cbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla1llYXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtkYXkpLFxuICAgICAgY29udGFpbnNPcmRpbmFsID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQub3JkaW5hbCksXG4gICAgICBjb250YWluc0dyZWdvclllYXIgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC55ZWFyKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yID0gY29udGFpbnNHcmVnb3JZZWFyIHx8IGNvbnRhaW5zR3JlZ29yTUQsXG4gICAgICBkZWZpbml0ZVdlZWtEZWYgPSBub3JtYWxpemVkLndlZWtZZWFyIHx8IG5vcm1hbGl6ZWQud2Vla051bWJlcjtcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBsZXQgbWl4ZWQ7XG4gICAgaWYgKHNldHRpbmdXZWVrU3R1ZmYpIHtcbiAgICAgIG1peGVkID0gd2Vla1RvR3JlZ29yaWFuKHsgLi4uZ3JlZ29yaWFuVG9XZWVrKHRoaXMuYyksIC4uLm5vcm1hbGl6ZWQgfSk7XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSkge1xuICAgICAgbWl4ZWQgPSBvcmRpbmFsVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWl4ZWQgPSB7IC4uLnRoaXMudG9PYmplY3QoKSwgLi4ubm9ybWFsaXplZCB9O1xuXG4gICAgICAvLyBpZiB3ZSBkaWRuJ3Qgc2V0IHRoZSBkYXkgYnV0IHdlIGVuZGVkIHVwIG9uIGFuIG92ZXJmbG93IGRhdGUsXG4gICAgICAvLyB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSByaWdodCBtb250aFxuICAgICAgaWYgKGlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSkge1xuICAgICAgICBtaXhlZC5kYXkgPSBNYXRoLm1pbihkYXlzSW5Nb250aChtaXhlZC55ZWFyLCBtaXhlZC5tb250aCksIG1peGVkLmRheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgW3RzLCBvXSA9IG9ialRvVFMobWl4ZWQsIHRoaXMubywgdGhpcy56b25lKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB0cywgbyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZVxuICAgKlxuICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cygxMjMpIC8vfj4gaW4gMTIzIG1pbGxpc2Vjb25kc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pIC8vfj4gdGhpcyB0aW1lIHRvbW9ycm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAtMSB9KSAvL34+IHRoaXMgdGltZSB5ZXN0ZXJkYXlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pblxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMywgbWludXRlczogMTMgfSkpIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcGx1cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgYWRqdXN0VGltZSh0aGlzLCBkdXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJ0cmFjdCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjcGx1c31cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIG1pbnVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLm5lZ2F0ZSgpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhpcyBEYXRlVGltZSB0byB0aGUgYmVnaW5uaW5nIG9mIGEgdW5pdCBvZiB0aW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBiZWdpbm5pbmcgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ21vbnRoJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ3llYXInKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignd2VlaycpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAzJywgd2Vla3MgYWx3YXlzIHN0YXJ0IG9uIE1vbmRheXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2RheScpLnRvSVNPVGltZSgpOyAvLz0+ICcwMDowMC4wMDAtMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdob3VyJykudG9JU09UaW1lKCk7IC8vPT4gJzA1OjAwOjAwLjAwMC0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGFydE9mKHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbyA9IHt9LFxuICAgICAgbm9ybWFsaXplZFVuaXQgPSBEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpO1xuICAgIHN3aXRjaCAobm9ybWFsaXplZFVuaXQpIHtcbiAgICAgIGNhc2UgXCJ5ZWFyc1wiOlxuICAgICAgICBvLm1vbnRoID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJxdWFydGVyc1wiOlxuICAgICAgY2FzZSBcIm1vbnRoc1wiOlxuICAgICAgICBvLmRheSA9IDE7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwid2Vla3NcIjpcbiAgICAgIGNhc2UgXCJkYXlzXCI6XG4gICAgICAgIG8uaG91ciA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwiaG91cnNcIjpcbiAgICAgICAgby5taW51dGUgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcIm1pbnV0ZXNcIjpcbiAgICAgICAgby5zZWNvbmQgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInNlY29uZHNcIjpcbiAgICAgICAgby5taWxsaXNlY29uZCA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1pbGxpc2Vjb25kc1wiOlxuICAgICAgICBicmVhaztcbiAgICAgIC8vIG5vIGRlZmF1bHQsIGludmFsaWQgdW5pdHMgdGhyb3cgaW4gbm9ybWFsaXplVW5pdCgpXG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcIndlZWtzXCIpIHtcbiAgICAgIG8ud2Vla2RheSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcInF1YXJ0ZXJzXCIpIHtcbiAgICAgIGNvbnN0IHEgPSBNYXRoLmNlaWwodGhpcy5tb250aCAvIDMpO1xuICAgICAgby5tb250aCA9IChxIC0gMSkgKiAzICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXQobyk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGVuZCBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ21vbnRoJykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd3ZWVrJykudG9JU08oKTsgLy8gPT4gJzIwMTQtMDMtMDlUMjM6NTk6NTkuOTk5LTA1OjAwJywgd2Vla3Mgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2RheScpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMjM6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBlbmRPZih1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyB0aGlzLnBsdXMoeyBbdW5pdF06IDEgfSlcbiAgICAgICAgICAuc3RhcnRPZih1bml0KVxuICAgICAgICAgIC5taW51cygxKVxuICAgICAgOiB0aGlzO1xuICB9XG5cbiAgLy8gT1VUUFVUXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogKipZb3UgbWF5IG5vdCB3YW50IHRoaXMuKiogU2VlIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9yIGEgbW9yZSBmbGV4aWJsZSBmb3JtYXR0aW5nIHRvb2wuIEZvciBhIHRhYmxlIG9mIHRva2VucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb25zLCBzZWUgW2hlcmVdKGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jL2Zvcm1hdHRpbmc/aWQ9dGFibGUtb2YtdG9rZW5zKS5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IEFwciAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKCdmcicpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJywgeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+ICcyMDE3IGF2ci4gMjInXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KFwiSEggJ2hvdXJzIGFuZCcgbW0gJ21pbnV0ZXMnXCIpIC8vPT4gJzIwIGhvdXJzIGFuZCA1NSBtaW51dGVzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5yZWRlZmF1bHRUb0VOKG9wdHMpKS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsb2NhbGl6ZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGlzIGRhdGUuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBhbmQgYW55IHByZXNldHMgZGVmaW5lZCBieSBMdXhvbiwgc3VjaCBhcyBgRGF0ZVRpbWUuREFURV9GVUxMYCBvciBgRGF0ZVRpbWUuVElNRV9TSU1QTEVgLlxuICAgKiBUaGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2QgaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb25cbiAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDQvMjAvMjAxN1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyBsb2NhbGU6ICdlbi1nYicgfSk7IC8vPT4gJzIwLzA0LzIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5USU1FX1NJTVBMRSk7IC8vPT4gJzExOjMyIEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1cnNkYXksIEFwcmlsIDIwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdzaG9ydCcsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICcyLWRpZ2l0JywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1LCBBcHIgMjAsIDExOjI3IEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gRm9ybWF0cy5EQVRFX1NIT1JULCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MuY2xvbmUob3B0cyksIGZvcm1hdE9wdHMpLmZvcm1hdERhdGVUaW1lKHRoaXMpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBmb3JtYXQgXCJwYXJ0c1wiLCBtZWFuaW5nIGluZGl2aWR1YWwgdG9rZW5zIGFsb25nIHdpdGggbWV0YWRhdGEuIFRoaXMgaXMgYWxsb3dzIGNhbGxlcnMgdG8gcG9zdC1wcm9jZXNzIGluZGl2aWR1YWwgc2VjdGlvbnMgb2YgdGhlIGZvcm1hdHRlZCBvdXRwdXQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHNcbiAgICogQHBhcmFtIG9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMsIHNhbWUgYXMgYHRvTG9jYWxlU3RyaW5nYC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVQYXJ0cygpOyAvLz0+IFtcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbW9udGgnLCB2YWx1ZTogJzA1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAneWVhcicsIHZhbHVlOiAnMTk4MicgfVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiBdXG4gICAqL1xuICB0b0xvY2FsZVBhcnRzKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgb3B0cykuZm9ybWF0RGF0ZVRpbWVQYXJ0cyh0aGlzKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MywgNSwgMjUpLnRvSVNPKCkgLy89PiAnMTk4Mi0wNS0yNVQwMDowMDowMC4wMDBaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTygpIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1LTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcyMDE3MDQyMlQyMDQ3MDUuMzM1LTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKHtcbiAgICBmb3JtYXQgPSBcImV4dGVuZGVkXCIsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSxcbiAgICBpbmNsdWRlT2Zmc2V0ID0gdHJ1ZSxcbiAgICBleHRlbmRlZFpvbmUgPSBmYWxzZSxcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiO1xuXG4gICAgbGV0IGMgPSB0b0lTT0RhdGUodGhpcywgZXh0KTtcbiAgICBjICs9IFwiVFwiO1xuICAgIGMgKz0gdG9JU09UaW1lKHRoaXMsIGV4dCwgc3VwcHJlc3NTZWNvbmRzLCBzdXBwcmVzc01pbGxpc2Vjb25kcywgaW5jbHVkZU9mZnNldCwgZXh0ZW5kZWRab25lKTtcbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIGRhdGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxOTgyMDUyNSdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKHsgZm9ybWF0ID0gXCJleHRlbmRlZFwiIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHdlZWsgZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPV2Vla0RhdGUoKSAvLz0+ICcxOTgyLVcyMS0yJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1dlZWtEYXRlKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgXCJra2trLSdXJ1dXLWNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyB0aW1lIGNvbXBvbmVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSgpIC8vPT4gJzA3OjM0OjE5LjM2MVonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQsIHNlY29uZHM6IDAsIG1pbGxpc2Vjb25kczogMCB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMDc6MzRaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QwNzozNDoxOS4zNjFaJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUoe1xuICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgaW5jbHVkZU9mZnNldCA9IHRydWUsXG4gICAgaW5jbHVkZVByZWZpeCA9IGZhbHNlLFxuICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLFxuICAgIGZvcm1hdCA9IFwiZXh0ZW5kZWRcIixcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBjID0gaW5jbHVkZVByZWZpeCA/IFwiVFwiIDogXCJcIjtcbiAgICByZXR1cm4gKFxuICAgICAgYyArXG4gICAgICB0b0lTT1RpbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiLFxuICAgICAgICBzdXBwcmVzc1NlY29uZHMsXG4gICAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzLFxuICAgICAgICBpbmNsdWRlT2Zmc2V0LFxuICAgICAgICBleHRlbmRlZFpvbmVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gUkZDIDI4MjItY29tcGF0aWJsZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgKzAwMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1JGQzI4MjIoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaXCIsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBIVFRQIGhlYWRlcnMuIFRoZSBvdXRwdXQgaXMgYWx3YXlzIGV4cHJlc3NlZCBpbiBHTVQuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZyBjb25mb3JtcyB0byBSRkMgMTEyMy5cbiAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjFcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIEdNVCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzLCAxOSkudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAxOTowMDowMCBHTVQnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSFRUUCgpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMudG9VVEMoKSwgXCJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9TUUxEYXRlKCkgLy89PiAnMjAxNC0wNy0xMydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUxEYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRvSVNPRGF0ZSh0aGlzLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlLCBpbmNsdWRlT2Zmc2V0U3BhY2UgPSB0cnVlIH0gPSB7fSkge1xuICAgIGxldCBmbXQgPSBcIkhIOm1tOnNzLlNTU1wiO1xuXG4gICAgaWYgKGluY2x1ZGVab25lIHx8IGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgIGlmIChpbmNsdWRlT2Zmc2V0U3BhY2UpIHtcbiAgICAgICAgZm10ICs9IFwiIFwiO1xuICAgICAgfVxuICAgICAgaWYgKGluY2x1ZGVab25lKSB7XG4gICAgICAgIGZtdCArPSBcInpcIjtcbiAgICAgIH0gZWxzZSBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgICAgICBmbXQgKz0gXCJaWlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgZm10LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldFNwYWNlPXRydWVdIC0gaW5jbHVkZSB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgdGltZSBhbmQgdGhlIG9mZnNldCwgc3VjaCBhcyAnMDU6MTU6MTYuMzQ1IC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIFonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCh7IGluY2x1ZGVab25lOiB0cnVlIH0pIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7dGhpcy50b1NRTERhdGUoKX0gJHt0aGlzLnRvU1FMVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLiBBbGlhcyBvZiB7QGxpbmsgRGF0ZVRpbWUjdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1NlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIHNlY29uZHMgKGFzIGEgd2hvbGUgbnVtYmVyKSBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1VuaXhJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQlNPTiBzZXJpYWxpemFibGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtEYXRlfVxuICAgKi9cbiAgdG9CU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvSlNEYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEYXRlVGltZSdzIHllYXIsIG1vbnRoLCBkYXksIGFuZCBzbyBvbi5cbiAgICogQHBhcmFtIG9wdHMgLSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlQ29uZmlnPWZhbHNlXSAtIGluY2x1ZGUgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVzIGluIHRoZSBvdXRwdXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9PYmplY3QoKSAvLz0+IHsgeWVhcjogMjAxNywgbW9udGg6IDQsIGRheTogMjIsIGhvdXI6IDIwLCBtaW51dGU6IDQ5LCBzZWNvbmQ6IDQyLCBtaWxsaXNlY29uZDogMjY4IH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3Qob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcblxuICAgIGNvbnN0IGJhc2UgPSB7IC4uLnRoaXMuYyB9O1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykge1xuICAgICAgYmFzZS5vdXRwdXRDYWxlbmRhciA9IHRoaXMub3V0cHV0Q2FsZW5kYXI7XG4gICAgICBiYXNlLm51bWJlcmluZ1N5c3RlbSA9IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbTtcbiAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBEYXRlIGVxdWl2YWxlbnQgdG8gdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7RGF0ZX1cbiAgICovXG4gIHRvSlNEYXRlKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmlzVmFsaWQgPyB0aGlzLnRzIDogTmFOKTtcbiAgfVxuXG4gIC8vIENPTVBBUkVcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIERhdGVUaW1lcyBhcyBhIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIERhdGVUaW1lIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG9cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIGkxID0gRGF0ZVRpbWUuZnJvbUlTTygnMTk4Mi0wNS0yNVQwOTo0NScpLFxuICAgKiAgICAgaTIgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgzLTEwLTE0VDEwOjMwJyk7XG4gICAqIGkyLmRpZmYoaTEpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogNDM4MDc1MDAwMDAgfVxuICAgKiBpMi5kaWZmKGkxLCAnaG91cnMnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTIxNjguNzUgfVxuICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LjAzMTI1IH1cbiAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cycsICdob3VycyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOSwgaG91cnM6IDAuNzUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmYob3RoZXJEYXRlVGltZSwgdW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlckRhdGVUaW1lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWVcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyT3B0cyA9IHsgbG9jYWxlOiB0aGlzLmxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtOiB0aGlzLm51bWJlcmluZ1N5c3RlbSwgLi4ub3B0cyB9O1xuXG4gICAgY29uc3QgdW5pdHMgPSBtYXliZUFycmF5KHVuaXQpLm1hcChEdXJhdGlvbi5ub3JtYWxpemVVbml0KSxcbiAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksXG4gICAgICBlYXJsaWVyID0gb3RoZXJJc0xhdGVyID8gdGhpcyA6IG90aGVyRGF0ZVRpbWUsXG4gICAgICBsYXRlciA9IG90aGVySXNMYXRlciA/IG90aGVyRGF0ZVRpbWUgOiB0aGlzLFxuICAgICAgZGlmZmVkID0gZGlmZihlYXJsaWVyLCBsYXRlciwgdW5pdHMsIGR1ck9wdHMpO1xuXG4gICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCByaWdodCBub3cuXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjZGlmZn1cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgdW5pdHMgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmZOb3codW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmRpZmYoRGF0ZVRpbWUubm93KCksIHVuaXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCBzcGFubmluZyBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIGFub3RoZXIgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBlbmQgcG9pbnQgb2YgdGhlIEludGVydmFsXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW50aWwob3RoZXJEYXRlVGltZSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHRoaXMsIG90aGVyRGF0ZVRpbWUpIDogdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIERhdGVUaW1lIGlzIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZSBhcyBhbm90aGVyIERhdGVUaW1lLlxuICAgKiBIaWdoZXItb3JkZXIgdW5pdHMgbXVzdCBhbHNvIGJlIGlkZW50aWNhbCBmb3IgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYHRydWVgLlxuICAgKiBOb3RlIHRoYXQgdGltZSB6b25lcyBhcmUgKippZ25vcmVkKiogaW4gdGhpcyBjb21wYXJpc29uLCB3aGljaCBjb21wYXJlcyB0aGUgKipsb2NhbCoqIGNhbGVuZGFyIHRpbWUuIFVzZSB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0gdG8gY29udmVydCBvbmUgb2YgdGhlIGRhdGVzIGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuaGFzU2FtZShvdGhlckRULCAnZGF5Jyk7IC8vfj4gdHJ1ZSBpZiBvdGhlckRUIGlzIGluIHRoZSBzYW1lIGN1cnJlbnQgY2FsZW5kYXIgZGF5XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBoYXNTYW1lKG90aGVyRGF0ZVRpbWUsIHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgaW5wdXRNcyA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpO1xuICAgIGNvbnN0IGFkanVzdGVkVG9ab25lID0gdGhpcy5zZXRab25lKG90aGVyRGF0ZVRpbWUuem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pO1xuICAgIHJldHVybiBhZGp1c3RlZFRvWm9uZS5zdGFydE9mKHVuaXQpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSBhZGp1c3RlZFRvWm9uZS5lbmRPZih1bml0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVhbGl0eSBjaGVja1xuICAgKiBUd28gRGF0ZVRpbWVzIGFyZSBlcXVhbCBpZmYgdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbWlsbGlzZWNvbmQsIGhhdmUgdGhlIHNhbWUgem9uZSBhbmQgbG9jYXRpb24sIGFuZCBhcmUgYm90aCB2YWxpZC5cbiAgICogVG8gY29tcGFyZSBqdXN0IHRoZSBtaWxsaXNlY29uZCB2YWx1ZXMsIHVzZSBgK2R0MSA9PT0gK2R0MmAuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyIC0gdGhlIG90aGVyIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1ZhbGlkICYmXG4gICAgICBvdGhlci5pc1ZhbGlkICYmXG4gICAgICB0aGlzLnZhbHVlT2YoKSA9PT0gb3RoZXIudmFsdWVPZigpICYmXG4gICAgICB0aGlzLnpvbmUuZXF1YWxzKG90aGVyLnpvbmUpICYmXG4gICAgICB0aGlzLmxvYy5lcXVhbHMob3RoZXIubG9jKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHRoaXMgdGltZSByZWxhdGl2ZSB0byBub3csIHN1Y2ggYXMgXCJpbiB0d28gZGF5c1wiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXJcbiAgICogcGxhdGZvcm0gc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuIFJvdW5kcyBkb3duIGJ5IGRlZmF1bHQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zdHlsZT1cImxvbmdcIl0gLSB0aGUgc3R5bGUgb2YgdW5pdHMsIG11c3QgYmUgXCJsb25nXCIsIFwic2hvcnRcIiwgb3IgXCJuYXJyb3dcIlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdCBvciBhcnJheSBvZiB1bml0czsgaWYgb21pdHRlZCwgb3IgYW4gYXJyYXksIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSBiZXN0IHVuaXQuIFVzZSBhbiBhcnJheSBvciBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIG9yIFwic2Vjb25kc1wiXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYWRkaW5nPTBdIC0gcGFkZGluZyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgYWxsb3dzIHlvdSB0byByb3VuZCB1cCB0aGUgcmVzdWx0IGlmIGl0IGZpdHMgaW5zaWRlIHRoZSB0aHJlc2hvbGQuIERvbid0IHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIHtyb3VuZDogZmFsc2V9IGJlY2F1c2UgdGhlIGRlY2ltYWwgb3V0cHV0IHdpbGwgaW5jbHVkZSB0aGUgcGFkZGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCJpbiAxIGRheVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZShcImVzXCIpLnRvUmVsYXRpdmUoeyBkYXlzOiAxIH0pIC8vPT4gXCJkZW50cm8gZGUgMSBkXHUwMEVEYVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGFucyAyMyBoZXVyZXNcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoeyB1bml0OiBcImhvdXJzXCIgfSkgLy89PiBcIjQ4IGhvdXJzIGFnb1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgaG91cnM6IDM2IH0pLnRvUmVsYXRpdmUoeyByb3VuZDogZmFsc2UgfSkgLy89PiBcIjEuNSBkYXlzIGFnb1wiXG4gICAqL1xuICB0b1JlbGF0aXZlKG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyA/ICh0aGlzIDwgYmFzZSA/IC1vcHRpb25zLnBhZGRpbmcgOiBvcHRpb25zLnBhZGRpbmcpIDogMDtcbiAgICBsZXQgdW5pdHMgPSBbXCJ5ZWFyc1wiLCBcIm1vbnRoc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdO1xuICAgIGxldCB1bml0ID0gb3B0aW9ucy51bml0O1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMudW5pdCkpIHtcbiAgICAgIHVuaXRzID0gb3B0aW9ucy51bml0O1xuICAgICAgdW5pdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShiYXNlLCB0aGlzLnBsdXMocGFkZGluZyksIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBudW1lcmljOiBcImFsd2F5c1wiLFxuICAgICAgdW5pdHMsXG4gICAgICB1bml0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBkYXRlIHJlbGF0aXZlIHRvIHRvZGF5LCBzdWNoIGFzIFwieWVzdGVyZGF5XCIgb3IgXCJuZXh0IG1vbnRoXCIuXG4gICAqIE9ubHkgaW50ZXJuYXRpb25hbGl6ZXMgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmxvY2FsZSAtIG92ZXJyaWRlIHRoZSBsb2NhbGUgb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdDsgaWYgb21pdHRlZCwgdGhlIG1ldGhvZCB3aWxsIHBpY2sgdGhlIHVuaXQuIFVzZSBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgb3IgXCJkYXlzXCJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+IFwidG9tb3Jyb3dcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoXCJlc1wiKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiBcIlwibWFcdTAwRjFhbmFcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGVtYWluXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICovXG4gIHRvUmVsYXRpdmVDYWxlbmRhcihvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gZGlmZlJlbGF0aXZlKG9wdGlvbnMuYmFzZSB8fCBEYXRlVGltZS5mcm9tT2JqZWN0KHt9LCB7IHpvbmU6IHRoaXMuem9uZSB9KSwgdGhpcywge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG51bWVyaWM6IFwiYXV0b1wiLFxuICAgICAgdW5pdHM6IFtcInllYXJzXCIsIFwibW9udGhzXCIsIFwiZGF5c1wiXSxcbiAgICAgIGNhbGVuZGFyeTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWluaW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1pbiBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWluKC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtaW4gcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1heCBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1heCBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWF4KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtYXggcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWF4KTtcbiAgfVxuXG4gIC8vIE1JU0NcblxuICAvKipcbiAgICogRXhwbGFpbiBob3cgYSBzdHJpbmcgd291bGQgYmUgcGFyc2VkIGJ5IGZyb21Gb3JtYXQoKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIGRlc2NyaXB0aW9uKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGFrZW4gYnkgZnJvbUZvcm1hdCgpXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0RXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCB9ID0gb3B0aW9ucyxcbiAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBudW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZVRvVXNlLCB0ZXh0LCBmbXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRm9ybWF0RXhwbGFpbiBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZ0V4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIEZPUk1BVCBQUkVTRVRTXG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4M1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX1NIT1JUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0IDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX01FRCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX01FRDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIE9jdCAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX0ZVTEwoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ1R1ZXNkYXksIE9jdG9iZXIgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX0hVR0U7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9TSU1QTEUoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9TSU1QTEU7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX0xPTkdfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCcsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1NJTVBMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMycsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFRFQnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMTAvMTQvMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRUQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfTUVEO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCAxNCBPY3QgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9IVUdFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFM7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJpZW5kbHlEYXRlVGltZShkYXRlVGltZWlzaCkge1xuICBpZiAoRGF0ZVRpbWUuaXNEYXRlVGltZShkYXRlVGltZWlzaCkpIHtcbiAgICByZXR1cm4gZGF0ZVRpbWVpc2g7XG4gIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgZGF0ZVRpbWVpc2gudmFsdWVPZiAmJiBpc051bWJlcihkYXRlVGltZWlzaC52YWx1ZU9mKCkpKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21KU0RhdGUoZGF0ZVRpbWVpc2gpO1xuICB9IGVsc2UgaWYgKGRhdGVUaW1laXNoICYmIHR5cGVvZiBkYXRlVGltZWlzaCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KGRhdGVUaW1laXNoKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICBgVW5rbm93biBkYXRldGltZSBhcmd1bWVudDogJHtkYXRlVGltZWlzaH0sIG9mIHR5cGUgJHt0eXBlb2YgZGF0ZVRpbWVpc2h9YFxuICAgICk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuXG4vKiogVGVzdC1lbnZpcm9ubWVudC1mcmllbmRseSBmdW5jdGlvbiB3aGljaCBmZXRjaGVzIHRoZSBjdXJyZW50IHN5c3RlbSBsb2NhbGUuICovXG5leHBvcnQgZnVuY3Rpb24gY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCJlbi1VU1wiO1xuICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xufVxuXG4vLyBEYXRlL1RpbWUgUmVuZGVyaW5nXG5cbi8qKiBOb3JtYWxpemUgYSBkdXJhdGlvbiB0byBhbGwgb2YgdGhlIHByb3BlciB1bml0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEdXJhdGlvbihkdXI6IER1cmF0aW9uKSB7XG4gICAgaWYgKGR1ciA9PT0gdW5kZWZpbmVkIHx8IGR1ciA9PT0gbnVsbCkgcmV0dXJuIGR1cjtcblxuICAgIHJldHVybiBkdXIuc2hpZnRUbyhcInllYXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiKS5ub3JtYWxpemUoKTtcbn1cblxuLyoqIFN0cmlwIHRoZSB0aW1lIGNvbXBvbmVudHMgb2YgYSBkYXRlIHRpbWUgb2JqZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGltZShkdDogRGF0ZVRpbWUpOiBEYXRlVGltZSB7XG4gICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpIHJldHVybiBkdDtcblxuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHtcbiAgICAgICAgeWVhcjogZHQueWVhcixcbiAgICAgICAgbW9udGg6IGR0Lm1vbnRoLFxuICAgICAgICBkYXk6IGR0LmRheSxcbiAgICB9KTtcbn1cblxuLyoqIFRyeSB0byBleHRyYWN0IGEgWVlZWU1NREQgZGF0ZSBmcm9tIGEgc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REYXRlKHN0cjogc3RyaW5nKTogRGF0ZVRpbWUgfCB1bmRlZmluZWQge1xuICAgIGxldCBkYXRlTWF0Y2ggPSAvKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkvLmV4ZWMoc3RyKTtcbiAgICBpZiAoIWRhdGVNYXRjaCkgZGF0ZU1hdGNoID0gLyhcXGR7NH0pKFxcZHsyfSkoXFxkezJ9KS8uZXhlYyhzdHIpO1xuICAgIGlmIChkYXRlTWF0Y2gpIHtcbiAgICAgICAgbGV0IHllYXIgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzFdKTtcbiAgICAgICAgbGV0IG1vbnRoID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFsyXSk7XG4gICAgICAgIGxldCBkYXkgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzNdKTtcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZW5kZXIgYSBEYXRlVGltZSBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbERhdGUodGltZTogRGF0ZVRpbWUsIGRhdGVGb3JtYXQ6IHN0cmluZywgZGF0ZVRpbWVGb3JtYXQ6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyByZWxldmFudCB0aW1lIHNwZWNpZmllZCwgZmFsbCBiYWNrIHRvIGp1c3QgcmVuZGVyaW5nIHRoZSBkYXRlLlxuICAgIGlmICh0aW1lLnNlY29uZCA9PSAwICYmIHRpbWUubWludXRlID09IDAgJiYgdGltZS5ob3VyID09IDApIHtcbiAgICAgICAgcmV0dXJuIHRpbWUudG9Mb2NhbCgpLnRvRm9ybWF0KGRhdGVGb3JtYXQsIHsgbG9jYWxlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aW1lLnRvTG9jYWwoKS50b0Zvcm1hdChkYXRlVGltZUZvcm1hdCwgeyBsb2NhbGUgfSk7XG59XG5cbi8qKiBSZW5kZXIgYSBkdXJhdGlvbiBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbER1cmF0aW9uKGR1cjogRHVyYXRpb24pOiBzdHJpbmcge1xuICAgIGR1ciA9IG5vcm1hbGl6ZUR1cmF0aW9uKGR1cik7XG5cbiAgICAvLyBUT0RPOiBMdXhvbiBkb2VzIG5vdCBoYXZlIG11bHRpLWxpbmd1YWwvbG9jYWxlLWF3YXJlIGR1cmF0aW9uIHJlbmRlcmluZy5cbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBpZiAoZHVyLnllYXJzKSByZXN1bHQgKz0gYCR7ZHVyLnllYXJzfSB5ZWFycywgYDtcbiAgICBpZiAoZHVyLm1vbnRocykgcmVzdWx0ICs9IGAke2R1ci5tb250aHN9IG1vbnRocywgYDtcbiAgICBpZiAoZHVyLndlZWtzKSByZXN1bHQgKz0gYCR7ZHVyLndlZWtzfSB3ZWVrcywgYDtcbiAgICBpZiAoZHVyLmRheXMpIHJlc3VsdCArPSBgJHtkdXIuZGF5c30gZGF5cywgYDtcbiAgICBpZiAoZHVyLmhvdXJzKSByZXN1bHQgKz0gYCR7ZHVyLmhvdXJzfSBob3VycywgYDtcbiAgICBpZiAoZHVyLm1pbnV0ZXMpIHJlc3VsdCArPSBgJHtkdXIubWludXRlc30gbWludXRlcywgYDtcbiAgICBpZiAoZHVyLnNlY29uZHMpIHJlc3VsdCArPSBgJHtNYXRoLnJvdW5kKGR1ci5zZWNvbmRzKX0gc2Vjb25kcywgYDtcbiAgICBpZiAoZHVyLm1pbGxpc2Vjb25kcykgcmVzdWx0ICs9IGAke01hdGgucm91bmQoZHVyLm1pbGxpc2Vjb25kcyl9IG1zLCBgO1xuXG4gICAgaWYgKHJlc3VsdC5lbmRzV2l0aChcIiwgXCIpKSByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIHJlc3VsdC5sZW5ndGggLSAyKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBQYXRoIHV0aWxpdGllcy5cblxuLyoqIEdldCB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHBhdGggKGkuZS4sIGxpa2UgY29tcHV0aW5nICdwYXRoLy4uJykuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyZW50Rm9sZGVyKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKS5qb2luKFwiL1wiKTtcbn1cblxuLyoqIEdldCB0aGUgZmlsZSBuYW1lIGZvciB0aGUgZmlsZSByZWZlcmVuY2VkIGluIHRoZSBnaXZlbiBwYXRoLCBieSBzdHJpcHBpbmcgdGhlIHBhcmVudCBmb2xkZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVOYW1lKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguaW5jbHVkZXMoXCIvXCIpID8gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSA6IHBhdGg7XG59XG5cbi8qKiBHZXQgdGhlIFwidGl0bGVcIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChwYXRoLmluY2x1ZGVzKFwiL1wiKSkgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHBhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG4gICAgaWYgKHBhdGguZW5kc1dpdGgoXCIubWRcIikpIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKiogR2V0IHRoZSBleHRlbnNpb24gb2YgYSBmaWxlIGZyb20gdGhlIGZpbGUgcGF0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb24ocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXBhdGguaW5jbHVkZXMoXCIuXCIpKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi5cIikgKyAxKTtcbn1cblxuLy8gVGFnIGV4dHJhY3Rpb24uXG5cbi8qKiBQYXJzZSBhbGwgc3VidGFncyBvdXQgb2YgdGhlIGdpdmVuIHRhZy4gSS5lLiwgI2hlbGxvL2kvYW0gd291bGQgeWllbGQgWyNoZWxsby9pL2FtLCAjaGVsbG8vaSwgI2hlbGxvXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3VidGFncyh0YWdzOiBzdHJpbmcgfCBJdGVyYWJsZTxzdHJpbmc+KTogc3RyaW5nW10ge1xuICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCB0YWcgb2YgdHlwZW9mIHRhZ3MgPT09IFwic3RyaW5nXCIgPyBbdGFnc10gOiB0YWdzKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRhZyk7XG4gICAgICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoXCIvXCIpKSB7XG4gICAgICAgICAgICB0YWcgPSB0YWcuc3Vic3RyaW5nKDAsIHRhZy5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBTcGxpdCBlYWNoIGJsb2NrIGFuZCBzZWN0aW9uIGxpbmsgaW50byB0aGUgb3JpZ2luYWwgbGluayBhbmQgYSBjb3JyZXNwb25kaW5nIGZpbGUgbGluay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsZUxpbmtzKGVsaW5rczogTGlua1tdKTogTGlua1tdIHtcbiAgICBjb25zdCByZXN1bHQ6IExpbmtbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBlbGlua3MpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobGluayk7XG5cbiAgICAgICAgY29uc3QgZmlsZUxpbmsgPSBsaW5rLnRvRmlsZSgpO1xuICAgICAgICBpZiAobGluay50eXBlICE9IFwiZmlsZVwiICYmICFyZXN1bHQuZmluZCgoZXhpc3RpbmcpID0+IGV4aXN0aW5nLmVxdWFscyhmaWxlTGluaykpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlTGluayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBTdHJpbmcgZXNjYXBpbmcgYW5kIGNhbm9uaWNhbGl6YXRpb24uXG5cbi8qKlxuICogRXNjYXBlIHJlZ2V4IGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmVnZXgoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuY29uc3QgSEVBREVSX0NBTk9OSUNBTElaRVI6IFAuUGFyc2VyPHN0cmluZz4gPSBQLmFsdChcbiAgICBQLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCBcIlwiKSksXG4gICAgUC5yZWdleCgvWzAtOVxccHtMZXR0ZXJ9Xy1dKy91KSxcbiAgICBQLndoaXRlc3BhY2UubWFwKChfKSA9PiBcIiBcIiksXG4gICAgUC5hbnkubWFwKChfKSA9PiBcIiBcIilcbilcbiAgICAubWFueSgpXG4gICAgLm1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbihcIlwiKS5zcGxpdCgvXFxzKy8pLmpvaW4oXCIgXCIpLnRyaW0oKTtcbiAgICB9KTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIHRoZSB0ZXh0IGluIGEgaGVhZGVyIHRvIGJlIHNvbWV0aGluZyB0aGF0IGlzIGFjdHVhbGx5IGxpbmthYmxlIHRvLiBUaGlzIG1pbWljc1xuICogaG93IE9ic2lkaWFuIGRvZXMgaXQncyBub3JtYWxpemF0aW9uLCBjb2xsYXBzaW5nIHJlcGVhdGVkIHNwYWNlcyBhbmQgc3RyaXBwaW5nIG91dCBjb250cm9sIGNoYXJhY3RlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSEVBREVSX0NBTk9OSUNBTElaRVIudHJ5UGFyc2UoaGVhZGVyKTtcbn1cblxuLy8gRmFzdCBleHRyYWN0aW9uIG9mIGxpbmUgcmFuZ2VzIGZyb20gbGFyZ2UgcGllY2VzIG9mIHRleHQuXG5cbi8qKiBVcGRhdGUgdGhlIGxpbmUgcmFuZ2UgZnJvbSBbc3RhcnQsIGVuZCkgd2l0aCB0aGUgZ2l2ZW4gZnVuY3Rpb24uICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVJlcGxhY2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgZnVuYzogKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBbZGF0YSwgb2Zmc2V0XSA9IGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpO1xuICAgIGlmICghb2Zmc2V0KSByZXR1cm4gdGV4dDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIGRhdGEuc3Vic3RyaW5nKDAsIG9mZnNldC5zdGFydCkgKyBmdW5jKGRhdGEuc3Vic3RyaW5nKG9mZnNldC5zdGFydCwgb2Zmc2V0LmVuZCkpICsgZGF0YS5zdWJzdHJpbmcob2Zmc2V0LmVuZClcbiAgICApO1xufVxuXG4vKiogRXh0cmFjdCB0aGUgbGluZXMgaW4gdGhlIHJhbmdlIFtzdGFydCwgZW5kKSwgYXMgd2VsbCBhcyB0aGUgYWN0dWFsIG9mZnNldHMgb2YgdGhlIHN0YXJ0IGFuZCBlbmQuICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVNwYW4oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgZW5kOiBudW1iZXJcbik6IFtzdHJpbmcsIHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfSB8IHVuZGVmaW5lZF0ge1xuICAgIHN0YXJ0ID0gTWF0aC5tYXgoc3RhcnQsIDApO1xuICAgIGVuZCA9IE1hdGgubWF4KGVuZCwgMCk7XG5cbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICAvLyBTdGFydCBieSBmaW5kaW5nIHRoZSBzdGFydGluZyBsaW5lIG9mZnNldC5cbiAgICBjb25zdCBzdGFydE9mZnNldCA9IHNraXBOZXdsaW5lcyh0ZXh0LCAwLCBzdGFydCk7XG4gICAgaWYgKHN0YXJ0T2Zmc2V0ID09IC0xKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICBjb25zdCBlbmRPZmZzZXQgPSBza2lwTmV3bGluZXModGV4dCwgc3RhcnRPZmZzZXQsIGVuZCAtIHN0YXJ0KTtcbiAgICBpZiAoZW5kT2Zmc2V0ID09IC0xKSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0KSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogdGV4dC5sZW5ndGggfV07XG4gICAgZWxzZSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSAxKSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogZW5kT2Zmc2V0IC0gMSB9XTtcbn1cblxuLyoqIEV4dHJhY3QgdGhlIGxpbmVzIGluIHRoZSByYW5nZSBbc3RhcnQsIGVuZCkuIFN0YXJ0IGlzIGluY2x1c2l2ZSwgZW5kIGlzIGV4Y2x1c2l2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lUmFuZ2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpWzBdO1xufVxuXG4vKiogU2tpcCB7Y291bnR9IHRvdGFsIG5ld2xpbmVzLCByZXR1cm5pbmcgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHtjb3VudH0gbGluZXMgYWZ0ZXIgdGhlIGN1cnJlbnQgbGluZS4gSWYgY291bnQgaXMgMCwgdGhlIGluaXRpYWwgb2Zmc2V0IGlzIHJldHVybmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNraXBOZXdsaW5lcyh0ZXh0OiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gc3RhcnQ7XG5cbiAgICBsZXQgcG9zaXRpb24gPSBzdGFydDtcbiAgICB3aGlsZSAoY291bnQgPiAwKSB7XG4gICAgICAgIHBvc2l0aW9uID0gdGV4dC5pbmRleE9mKFwiXFxuXCIsIHBvc2l0aW9uKTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09IC0xKSByZXR1cm4gLTE7XG5cbiAgICAgICAgY291bnQtLTtcbiAgICAgICAgcG9zaXRpb24gKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zaXRpb247XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuXHQvLyBodHRwczovL210aHMuYmUvZW1vamlcblx0cmV0dXJuIC9bIyowLTldXFx1RkUwRj9cXHUyMEUzfFtcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRUQtXFx1MjNFRlxcdTIzRjFcXHUyM0YyXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCXFx1MjVGQ1xcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MjBcXHUyNjIyXFx1MjYyM1xcdTI2MjZcXHUyNjJBXFx1MjYyRVxcdTI2MkZcXHUyNjM4LVxcdTI2M0FcXHUyNjQwXFx1MjY0MlxcdTI2NDgtXFx1MjY1M1xcdTI2NUZcXHUyNjYwXFx1MjY2M1xcdTI2NjVcXHUyNjY2XFx1MjY2OFxcdTI2N0JcXHUyNjdFXFx1MjY3RlxcdTI2OTJcXHUyNjk0LVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBN1xcdTI2QUFcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZEM1xcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E1KT98XFx1MjZGOSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzRcXHVERkNBXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERkNCXFx1REZDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjQzXFx1REY0NS1cXHVERjRBXFx1REY0Qy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RERFNlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl18XFx1RERFN1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUZcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREU4XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjdcXHVEREZBLVxcdURERkZdfFxcdURERTlcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdfFxcdURERUFcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXXxcXHVEREVCXFx1RDgzQ1tcXHVEREVFLVxcdURERjBcXHVEREYyXFx1RERGNFxcdURERjddfFxcdURERUNcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdfFxcdURERURcXHVEODNDW1xcdURERjBcXHVEREYyXFx1RERGM1xcdURERjdcXHVEREY5XFx1RERGQV18XFx1RERFRVxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XXxcXHVEREVGXFx1RDgzQ1tcXHVEREVBXFx1RERGMlxcdURERjRcXHVEREY1XXxcXHVEREYwXFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERGMVxcdUQ4M0NbXFx1RERFNi1cXHVEREU4XFx1RERFRVxcdURERjBcXHVEREY3LVxcdURERkJcXHVEREZFXXxcXHVEREYyXFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXXxcXHVEREYzXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdfFxcdURERjRcXHVEODNDXFx1RERGMnxcXHVEREY1XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdfFxcdURERjZcXHVEODNDXFx1RERFNnxcXHVEREY3XFx1RDgzQ1tcXHVEREVBXFx1RERGNFxcdURERjhcXHVEREZBXFx1RERGQ118XFx1RERGOFxcdUQ4M0NbXFx1RERFNi1cXHVEREVBXFx1RERFQy1cXHVEREY0XFx1RERGNy1cXHVEREY5XFx1RERGQlxcdURERkQtXFx1RERGRl18XFx1RERGOVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdfFxcdURERkFcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdfFxcdURERkJcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdfFxcdURERkNcXHVEODNDW1xcdURERUJcXHVEREY4XXxcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RERGRVxcdUQ4M0NbXFx1RERFQVxcdURERjldfFxcdURERkZcXHVEODNDW1xcdURERTZcXHVEREYyXFx1RERGQ118XFx1REY0NCg/OlxcdTIwMERcXHVEODNEXFx1REZFQik/fFxcdURGNEIoPzpcXHUyMDBEXFx1RDgzRFxcdURGRTkpP3xcXHVERkMzKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjRcXHVERUI1XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDc0XFx1REQ5MF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/fFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDMjVcXHVEQzI3LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQxXFx1REU0M1xcdURFNDRcXHVERTQ4LVxcdURFNEFcXHVERTgwLVxcdURFQTJcXHVERUE0LVxcdURFQjNcXHVERUI3LVxcdURFQkZcXHVERUMxLVxcdURFQzVcXHVERUQwLVxcdURFRDJcXHVERUQ1LVxcdURFRDdcXHVERURDLVxcdURFREZcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQ1xcdURGRTAtXFx1REZFQlxcdURGRjBdfFxcdURDMDgoPzpcXHUyMDBEXFx1MkIxQik/fFxcdURDMTUoPzpcXHUyMDBEXFx1RDgzRVxcdUREQkEpP3xcXHVEQzI2KD86XFx1MjAwRCg/OlxcdTJCMUJ8XFx1RDgzRFxcdUREMjUpKT98XFx1REMzQig/OlxcdTIwMERcXHUyNzQ0XFx1RkUwRj8pP3xcXHVEQzQxXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURERThcXHVGRTBGPyk/fFxcdURDNjgoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OHxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2Rig/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERDc1KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERTJFKD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E4KT98XFx1REUzNSg/OlxcdTIwMERcXHVEODNEXFx1RENBQik/fFxcdURFMzYoPzpcXHUyMDBEXFx1RDgzQ1xcdURGMkJcXHVGRTBGPyk/fFxcdURFNDIoPzpcXHUyMDBEW1xcdTIxOTRcXHUyMTk1XVxcdUZFMEY/KT98XFx1REVCNig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0RcXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RERERVxcdUREREZdKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDBEXFx1REQwRVxcdUREMTAtXFx1REQxN1xcdUREMjAtXFx1REQyNVxcdUREMjctXFx1REQyRlxcdUREM0FcXHVERDNGLVxcdURENDVcXHVERDQ3LVxcdURENzZcXHVERDc4LVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQ1xcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFN0NcXHVERTgwLVxcdURFODlcXHVERThGLVxcdURFQzJcXHVERUM2XFx1REVDRS1cXHVERURDXFx1REVERi1cXHVERUU5XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVERENFKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEREQxXFx1MjAwRFxcdUQ4M0VcXHVEREQyKD86XFx1MjAwRFxcdUQ4M0VcXHVEREQyKT98XFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/KSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT8pKT98XFx1REVGMSg/OlxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKT98XFx1REZGQyg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pP3xcXHVERkZEKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSk/fFxcdURGRkUoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKT98XFx1REZGRig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSk/KSk/KS9nO1xufTtcbiIsICJpbXBvcnQgeyBnZXRGaWxlVGl0bGUsIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLyoqIFRoZSBPYnNpZGlhbiAnbGluaycsIHVzZWQgZm9yIHVuaXF1ZWx5IGRlc2NyaWJpbmcgYSBmaWxlLCBoZWFkZXIsIG9yIGJsb2NrLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgY2xhc3MgTGluayB7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBwdWJsaWMgZGlzcGxheT86IHN0cmluZztcbiAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqL1xuICAgIHB1YmxpYyBzdWJwYXRoPzogc3RyaW5nO1xuICAgIC8qKiBJcyB0aGlzIGxpbmsgYW4gZW1iZWRkZWQgbGluayAob2YgZm9ybSAnIVtbaGVsbG9dXScpPyAqL1xuICAgIHB1YmxpYyBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgcHVibGljIHR5cGU6IFwiZmlsZVwiIHwgXCJoZWFkZXJcIiB8IFwiYmxvY2tcIjtcblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgc3BlY2lmaWMgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbGUocGF0aDogc3RyaW5nLCBlbWJlZDogYm9vbGVhbiA9IGZhbHNlLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgZW1iZWQsXG4gICAgICAgICAgICBkaXNwbGF5LFxuICAgICAgICAgICAgc3VicGF0aDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHlwZTogXCJmaWxlXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbmZlciB0aGUgdHlwZSBvZiB0aGUgbGluayBmcm9tIHRoZSBmdWxsIGludGVybmFsIGxpbmsgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGluZmVyKGxpbmtwYXRoOiBzdHJpbmcsIGVtYmVkOiBib29sZWFuID0gZmFsc2UsIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgaWYgKGxpbmtwYXRoLmluY2x1ZGVzKFwiI15cIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI15cIik7XG4gICAgICAgICAgICByZXR1cm4gTGluay5ibG9jayhzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rcGF0aC5pbmNsdWRlcyhcIiNcIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovXG4gICAgcHVibGljIHN0YXRpYyBoZWFkZXIocGF0aDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgZW1iZWQ/OiBib29sZWFuLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIC8vIEhlYWRlcnMgbmVlZCB0byBiZSBub3JtYWxpemVkIHRvIGFscGhhLW51bWVyaWMgJiB3aXRoIGV4dHJhIHNwYWNpbmcgcmVtb3ZlZC5cbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlciksXG4gICAgICAgICAgICB0eXBlOiBcImhlYWRlclwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGJsb2NrIGluIHRoYXQgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGJsb2NrKHBhdGg6IHN0cmluZywgYmxvY2tJZDogc3RyaW5nLCBlbWJlZD86IGJvb2xlYW4sIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBibG9ja0lkLFxuICAgICAgICAgICAgdHlwZTogXCJibG9ja1wiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBhIGxpbmsgZnJvbSBpdCdzIHJhdyBKU09OIHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IEpzb25MaW5rKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIGJ5IHBhcnNpbmcgaXQncyBpbnRlcmlvciBwYXJ0IChpbnNpZGUgb2YgdGhlICdbW11dJykuICovXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZUlubmVyKHJhd2xpbms6IHN0cmluZyk6IExpbmsge1xuICAgICAgICBsZXQgW2xpbmssIGRpc3BsYXldID0gc3BsaXRPblVuZXNjYXBlZFBpcGUocmF3bGluayk7XG4gICAgICAgIHJldHVybiBMaW5rLmluZmVyKGxpbmssIGZhbHNlLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGZpZWxkczogUGFydGlhbDxMaW5rPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGlzIGxpbmsgd2l0aCBhIG5ldyBwYXRoLiAqL1xuICAgIHB1YmxpYyB3aXRoUGF0aChwYXRoOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHsgcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIG5ldyBsaW5rIHdoaWNoIHBvaW50cyB0byB0aGUgc2FtZSBsb2NhdGlvbiBidXQgd2l0aCBhIG5ldyBkaXNwbGF5IHZhbHVlLiAqL1xuICAgIHB1YmxpYyB3aXRoRGlzcGxheShkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBuZXcgbGluayB3aGljaCBoYXMgdGhlIGdpdmVuIGVtYmVkZGVkIHN0YXR1cy4gKi9cbiAgICBwdWJsaWMgd2l0aEVtYmVkKGVtYmVkOiBib29sZWFuKTogTGluayB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkID09IGVtYmVkKSByZXR1cm4gdGhpcztcblxuICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBlbWJlZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgYSBmaWxlIGxpbmsgaW50byBhIGxpbmsgdG8gYSBzcGVjaWZpYyBoZWFkZXIuICovXG4gICAgcHVibGljIHdpdGhIZWFkZXIoaGVhZGVyOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWNiIGxvY2suICovXG4gICAgcHVibGljIHdpdGhCbG9jayhibG9jazogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHRoaXMucGF0aCwgYmxvY2ssIHRoaXMuZW1iZWQsIHRoaXMuZGlzcGxheSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBmb3IgbGluayBlcXVhbGl0eSAoaS5lLiwgdGhhdCB0aGUgbGlua3MgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGV4YWN0IGxvY2F0aW9uKS4gKi9cbiAgICBwdWJsaWMgZXF1YWxzKG90aGVyOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gb3RoZXIucGF0aCAmJiB0aGlzLnR5cGUgPT0gb3RoZXIudHlwZSAmJiB0aGlzLnN1YnBhdGggPT0gb3RoZXIuc3VicGF0aDtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gaXQncyBtYXJrZG93biByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovXG4gICAgcHVibGljIHRvT2JqZWN0KCk6IEpzb25MaW5rIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHN1YnBhdGg6IHRoaXMuc3VicGF0aCxcbiAgICAgICAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgICAgICAgIGVtYmVkOiB0aGlzLmVtYmVkLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqL1xuICAgIHB1YmxpYyB0b0ZpbGUoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy5wYXRoLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayBpbnRvIGFuIGVtYmVkZGVkIGxpbmsuICovXG4gICAgcHVibGljIHRvRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhIG5vbi1lbWJlZGRlZCBsaW5rLiAqL1xuICAgIHB1YmxpYyBmcm9tRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIG1hcmtkb3duIHNvIGl0IGNhbiBiZSByZW5kZXJlZC4gKi9cbiAgICBwdWJsaWMgbWFya2Rvd24oKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICh0aGlzLmVtYmVkID8gXCIhXCIgOiBcIlwiKSArIFwiW1tcIiArIHRoaXMub2JzaWRpYW5MaW5rKCk7XG4gICAgICAgIHJlc3VsdCArPSBcInxcIjtcbiAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGlzcGxheU9yRGVmYXVsdCgpO1xuICAgICAgICByZXN1bHQgKz0gXCJdXVwiO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIGRpc3BsYXkgZm9yIHRoaXMgbGluayBpZiBwcmVzZW50LCBvciByZXR1cm4gYSBzaW1wbGUgZGVmYXVsdCBkaXNwbGF5LiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5T3JEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcImhlYWRlclwiIHx8IHRoaXMudHlwZSA9PSBcImJsb2NrXCIpIHJlc3VsdCArPSBcIiA+IFwiICsgdGhpcy5zdWJwYXRoO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhlIGlubmVyIHBhcnQgb2YgdGhlIGxpbmsgdG8gc29tZXRoaW5nIHRoYXQgT2JzaWRpYW4gY2FuIG9wZW4gLyB1bmRlcnN0YW5kLiAqL1xuICAgIHB1YmxpYyBvYnNpZGlhbkxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlKFwifFwiLCBcIlxcXFx8XCIpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09IFwiaGVhZGVyXCIpIHJldHVybiBlc2NhcGVkICsgXCIjXCIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2UoXCJ8XCIsIFwiXFxcXHxcIik7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJibG9ja1wiKSByZXR1cm4gZXNjYXBlZCArIFwiI15cIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZShcInxcIiwgXCJcXFxcfFwiKTtcbiAgICAgICAgZWxzZSByZXR1cm4gZXNjYXBlZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIHN0cmlwcGVkIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgZmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgIH1cbn1cblxuLyoqIFNlcmlhbGl6ZWQgZm9ybSBvZiBhIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkxpbmsge1xuICAgIC8qKiBUaGUgZmlsZSBwYXRoIHRoaXMgbGluayBwb2ludHMgdG8uICovXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBkaXNwbGF5Pzogc3RyaW5nO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb3IgaGVhZGVyIHRoaXMgbGluayBwb2ludHMgdG8gd2l0aGluIGEgZmlsZSwgaWYgcmVsZXZhbnQuICovXG4gICAgc3VicGF0aD86IHN0cmluZztcbiAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKG9mIGZvcm0gJyFbW2hlbGxvXV0nKT8gKi9cbiAgICBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgdHlwZTogXCJmaWxlXCIgfCBcImhlYWRlclwiIHwgXCJibG9ja1wiO1xufVxuXG4vKiogU3BsaXQgb24gdW5lc2NhcGVkIHBpcGVzIGluIGFuIGlubmVyIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdE9uVW5lc2NhcGVkUGlwZShsaW5rOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdIHtcbiAgICBsZXQgcGlwZSA9IC0xO1xuICAgIHdoaWxlICgocGlwZSA9IGxpbmsuaW5kZXhPZihcInxcIiwgcGlwZSArIDEpKSA+PSAwKSB7XG4gICAgICAgIGlmIChwaXBlID4gMCAmJiBsaW5rW3BpcGUgLSAxXSA9PSBcIlxcXFxcIikgY29udGludWU7XG4gICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcXFxcfC9nLCBcInxcIiksIGxpbmsuc3Vic3RyaW5nKHBpcGUgKyAxKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtsaW5rLnJlcGxhY2UoL1xcXFxcXHwvZywgXCJ8XCIpLCB1bmRlZmluZWRdO1xufVxuIiwgImNvbnN0IEFMSUFTID0gU3ltYm9sLmZvcigneWFtbC5hbGlhcycpO1xuY29uc3QgRE9DID0gU3ltYm9sLmZvcigneWFtbC5kb2N1bWVudCcpO1xuY29uc3QgTUFQID0gU3ltYm9sLmZvcigneWFtbC5tYXAnKTtcbmNvbnN0IFBBSVIgPSBTeW1ib2wuZm9yKCd5YW1sLnBhaXInKTtcbmNvbnN0IFNDQUxBUiA9IFN5bWJvbC5mb3IoJ3lhbWwuc2NhbGFyJyk7XG5jb25zdCBTRVEgPSBTeW1ib2wuZm9yKCd5YW1sLnNlcScpO1xuY29uc3QgTk9ERV9UWVBFID0gU3ltYm9sLmZvcigneWFtbC5ub2RlLnR5cGUnKTtcbmNvbnN0IGlzQWxpYXMgPSAobm9kZSkgPT4gISFub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlW05PREVfVFlQRV0gPT09IEFMSUFTO1xuY29uc3QgaXNEb2N1bWVudCA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gRE9DO1xuY29uc3QgaXNNYXAgPSAobm9kZSkgPT4gISFub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlW05PREVfVFlQRV0gPT09IE1BUDtcbmNvbnN0IGlzUGFpciA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gUEFJUjtcbmNvbnN0IGlzU2NhbGFyID0gKG5vZGUpID0+ICEhbm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgJiYgbm9kZVtOT0RFX1RZUEVdID09PSBTQ0FMQVI7XG5jb25zdCBpc1NlcSA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gU0VRO1xuZnVuY3Rpb24gaXNDb2xsZWN0aW9uKG5vZGUpIHtcbiAgICBpZiAobm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpXG4gICAgICAgIHN3aXRjaCAobm9kZVtOT0RFX1RZUEVdKSB7XG4gICAgICAgICAgICBjYXNlIE1BUDpcbiAgICAgICAgICAgIGNhc2UgU0VROlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNOb2RlKG5vZGUpIHtcbiAgICBpZiAobm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpXG4gICAgICAgIHN3aXRjaCAobm9kZVtOT0RFX1RZUEVdKSB7XG4gICAgICAgICAgICBjYXNlIEFMSUFTOlxuICAgICAgICAgICAgY2FzZSBNQVA6XG4gICAgICAgICAgICBjYXNlIFNDQUxBUjpcbiAgICAgICAgICAgIGNhc2UgU0VROlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuY29uc3QgaGFzQW5jaG9yID0gKG5vZGUpID0+IChpc1NjYWxhcihub2RlKSB8fCBpc0NvbGxlY3Rpb24obm9kZSkpICYmICEhbm9kZS5hbmNob3I7XG5cbmV4cG9ydCB7IEFMSUFTLCBET0MsIE1BUCwgTk9ERV9UWVBFLCBQQUlSLCBTQ0FMQVIsIFNFUSwgaGFzQW5jaG9yLCBpc0FsaWFzLCBpc0NvbGxlY3Rpb24sIGlzRG9jdW1lbnQsIGlzTWFwLCBpc05vZGUsIGlzUGFpciwgaXNTY2FsYXIsIGlzU2VxIH07XG4iLCAiaW1wb3J0IHsgaXNEb2N1bWVudCwgaXNOb2RlLCBpc1BhaXIsIGlzQ29sbGVjdGlvbiwgaXNNYXAsIGlzU2VxLCBpc1NjYWxhciwgaXNBbGlhcyB9IGZyb20gJy4vbm9kZXMvaWRlbnRpdHkuanMnO1xuXG5jb25zdCBCUkVBSyA9IFN5bWJvbCgnYnJlYWsgdmlzaXQnKTtcbmNvbnN0IFNLSVAgPSBTeW1ib2woJ3NraXAgY2hpbGRyZW4nKTtcbmNvbnN0IFJFTU9WRSA9IFN5bWJvbCgncmVtb3ZlIG5vZGUnKTtcbi8qKlxuICogQXBwbHkgYSB2aXNpdG9yIHRvIGFuIEFTVCBub2RlIG9yIGRvY3VtZW50LlxuICpcbiAqIFdhbGtzIHRocm91Z2ggdGhlIHRyZWUgKGRlcHRoLWZpcnN0KSBzdGFydGluZyBmcm9tIGBub2RlYCwgY2FsbGluZyBhXG4gKiBgdmlzaXRvcmAgZnVuY3Rpb24gd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gKiAgIC0gYGtleWA6IEZvciBzZXF1ZW5jZSB2YWx1ZXMgYW5kIG1hcCBgUGFpcmAsIHRoZSBub2RlJ3MgaW5kZXggaW4gdGhlXG4gKiAgICAgY29sbGVjdGlvbi4gV2l0aGluIGEgYFBhaXJgLCBgJ2tleSdgIG9yIGAndmFsdWUnYCwgY29ycmVzcG9uZGluZ2x5LlxuICogICAgIGBudWxsYCBmb3IgdGhlIHJvb3Qgbm9kZS5cbiAqICAgLSBgbm9kZWA6IFRoZSBjdXJyZW50IG5vZGUuXG4gKiAgIC0gYHBhdGhgOiBUaGUgYW5jZXN0cnkgb2YgdGhlIGN1cnJlbnQgbm9kZS5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB2aXNpdG9yIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHRyYXZlcnNhbDpcbiAqICAgLSBgdW5kZWZpbmVkYCAoZGVmYXVsdCk6IERvIG5vdGhpbmcgYW5kIGNvbnRpbnVlXG4gKiAgIC0gYHZpc2l0LlNLSVBgOiBEbyBub3QgdmlzaXQgdGhlIGNoaWxkcmVuIG9mIHRoaXMgbm9kZSwgY29udGludWUgd2l0aCBuZXh0XG4gKiAgICAgc2libGluZ1xuICogICAtIGB2aXNpdC5CUkVBS2A6IFRlcm1pbmF0ZSB0cmF2ZXJzYWwgY29tcGxldGVseVxuICogICAtIGB2aXNpdC5SRU1PVkVgOiBSZW1vdmUgdGhlIGN1cnJlbnQgbm9kZSwgdGhlbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZVxuICogICAtIGBOb2RlYDogUmVwbGFjZSB0aGUgY3VycmVudCBub2RlLCB0aGVuIGNvbnRpbnVlIGJ5IHZpc2l0aW5nIGl0XG4gKiAgIC0gYG51bWJlcmA6IFdoaWxlIGl0ZXJhdGluZyB0aGUgaXRlbXMgb2YgYSBzZXF1ZW5jZSBvciBtYXAsIHNldCB0aGUgaW5kZXhcbiAqICAgICBvZiB0aGUgbmV4dCBzdGVwLiBUaGlzIGlzIHVzZWZ1bCBlc3BlY2lhbGx5IGlmIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudFxuICogICAgIG5vZGUgaGFzIGNoYW5nZWQuXG4gKlxuICogSWYgYHZpc2l0b3JgIGlzIGEgc2luZ2xlIGZ1bmN0aW9uLCBpdCB3aWxsIGJlIGNhbGxlZCB3aXRoIGFsbCB2YWx1ZXNcbiAqIGVuY291bnRlcmVkIGluIHRoZSB0cmVlLCBpbmNsdWRpbmcgZS5nLiBgbnVsbGAgdmFsdWVzLiBBbHRlcm5hdGl2ZWx5LFxuICogc2VwYXJhdGUgdmlzaXRvciBmdW5jdGlvbnMgbWF5IGJlIGRlZmluZWQgZm9yIGVhY2ggYE1hcGAsIGBQYWlyYCwgYFNlcWAsXG4gKiBgQWxpYXNgIGFuZCBgU2NhbGFyYCBub2RlLiBUbyBkZWZpbmUgdGhlIHNhbWUgdmlzaXRvciBmdW5jdGlvbiBmb3IgbW9yZSB0aGFuXG4gKiBvbmUgbm9kZSB0eXBlLCB1c2UgdGhlIGBDb2xsZWN0aW9uYCAobWFwIGFuZCBzZXEpLCBgVmFsdWVgIChtYXAsIHNlcSAmIHNjYWxhcilcbiAqIGFuZCBgTm9kZWAgKGFsaWFzLCBtYXAsIHNlcSAmIHNjYWxhcikgdGFyZ2V0cy4gT2YgYWxsIHRoZXNlLCBvbmx5IHRoZSBtb3N0XG4gKiBzcGVjaWZpYyBkZWZpbmVkIG9uZSB3aWxsIGJlIHVzZWQgZm9yIGVhY2ggbm9kZS5cbiAqL1xuZnVuY3Rpb24gdmlzaXQobm9kZSwgdmlzaXRvcikge1xuICAgIGNvbnN0IHZpc2l0b3JfID0gaW5pdFZpc2l0b3IodmlzaXRvcik7XG4gICAgaWYgKGlzRG9jdW1lbnQobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY2QgPSB2aXNpdF8obnVsbCwgbm9kZS5jb250ZW50cywgdmlzaXRvcl8sIE9iamVjdC5mcmVlemUoW25vZGVdKSk7XG4gICAgICAgIGlmIChjZCA9PT0gUkVNT1ZFKVxuICAgICAgICAgICAgbm9kZS5jb250ZW50cyA9IG51bGw7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgICAgdmlzaXRfKG51bGwsIG5vZGUsIHZpc2l0b3JfLCBPYmplY3QuZnJlZXplKFtdKSk7XG59XG4vLyBXaXRob3V0IHRoZSBgYXMgc3ltYm9sYCBjYXN0cywgVFMgZGVjbGFyZXMgdGhlc2UgaW4gdGhlIGB2aXNpdGBcbi8vIG5hbWVzcGFjZSB1c2luZyBgdmFyYCwgYnV0IHRoZW4gY29tcGxhaW5zIGFib3V0IHRoYXQgYmVjYXVzZVxuLy8gYHVuaXF1ZSBzeW1ib2xgIG11c3QgYmUgYGNvbnN0YC5cbi8qKiBUZXJtaW5hdGUgdmlzaXQgdHJhdmVyc2FsIGNvbXBsZXRlbHkgKi9cbnZpc2l0LkJSRUFLID0gQlJFQUs7XG4vKiogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBub2RlICovXG52aXNpdC5TS0lQID0gU0tJUDtcbi8qKiBSZW1vdmUgdGhlIGN1cnJlbnQgbm9kZSAqL1xudmlzaXQuUkVNT1ZFID0gUkVNT1ZFO1xuZnVuY3Rpb24gdmlzaXRfKGtleSwgbm9kZSwgdmlzaXRvciwgcGF0aCkge1xuICAgIGNvbnN0IGN0cmwgPSBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpO1xuICAgIGlmIChpc05vZGUoY3RybCkgfHwgaXNQYWlyKGN0cmwpKSB7XG4gICAgICAgIHJlcGxhY2VOb2RlKGtleSwgcGF0aCwgY3RybCk7XG4gICAgICAgIHJldHVybiB2aXNpdF8oa2V5LCBjdHJsLCB2aXNpdG9yLCBwYXRoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjdHJsICE9PSAnc3ltYm9sJykge1xuICAgICAgICBpZiAoaXNDb2xsZWN0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICBwYXRoID0gT2JqZWN0LmZyZWV6ZShwYXRoLmNvbmNhdChub2RlKSk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuaXRlbXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaSA9IHZpc2l0XyhpLCBub2RlLml0ZW1zW2ldLCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNpID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgaSA9IGNpIC0gMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCUkVBSztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gUkVNT1ZFKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaXRlbXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICBpIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGFpcihub2RlKSkge1xuICAgICAgICAgICAgcGF0aCA9IE9iamVjdC5mcmVlemUocGF0aC5jb25jYXQobm9kZSkpO1xuICAgICAgICAgICAgY29uc3QgY2sgPSB2aXNpdF8oJ2tleScsIG5vZGUua2V5LCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjayA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2sgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLmtleSA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdiA9IHZpc2l0XygndmFsdWUnLCBub2RlLnZhbHVlLCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjdiA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY3YgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3RybDtcbn1cbi8qKlxuICogQXBwbHkgYW4gYXN5bmMgdmlzaXRvciB0byBhbiBBU1Qgbm9kZSBvciBkb2N1bWVudC5cbiAqXG4gKiBXYWxrcyB0aHJvdWdoIHRoZSB0cmVlIChkZXB0aC1maXJzdCkgc3RhcnRpbmcgZnJvbSBgbm9kZWAsIGNhbGxpbmcgYVxuICogYHZpc2l0b3JgIGZ1bmN0aW9uIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICogICAtIGBrZXlgOiBGb3Igc2VxdWVuY2UgdmFsdWVzIGFuZCBtYXAgYFBhaXJgLCB0aGUgbm9kZSdzIGluZGV4IGluIHRoZVxuICogICAgIGNvbGxlY3Rpb24uIFdpdGhpbiBhIGBQYWlyYCwgYCdrZXknYCBvciBgJ3ZhbHVlJ2AsIGNvcnJlc3BvbmRpbmdseS5cbiAqICAgICBgbnVsbGAgZm9yIHRoZSByb290IG5vZGUuXG4gKiAgIC0gYG5vZGVgOiBUaGUgY3VycmVudCBub2RlLlxuICogICAtIGBwYXRoYDogVGhlIGFuY2VzdHJ5IG9mIHRoZSBjdXJyZW50IG5vZGUuXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdmlzaXRvciBtYXkgYmUgdXNlZCB0byBjb250cm9sIHRoZSB0cmF2ZXJzYWw6XG4gKiAgIC0gYFByb21pc2VgOiBNdXN0IHJlc29sdmUgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzXG4gKiAgIC0gYHVuZGVmaW5lZGAgKGRlZmF1bHQpOiBEbyBub3RoaW5nIGFuZCBjb250aW51ZVxuICogICAtIGB2aXNpdC5TS0lQYDogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsIGNvbnRpbnVlIHdpdGggbmV4dFxuICogICAgIHNpYmxpbmdcbiAqICAgLSBgdmlzaXQuQlJFQUtgOiBUZXJtaW5hdGUgdHJhdmVyc2FsIGNvbXBsZXRlbHlcbiAqICAgLSBgdmlzaXQuUkVNT1ZFYDogUmVtb3ZlIHRoZSBjdXJyZW50IG5vZGUsIHRoZW4gY29udGludWUgd2l0aCB0aGUgbmV4dCBvbmVcbiAqICAgLSBgTm9kZWA6IFJlcGxhY2UgdGhlIGN1cnJlbnQgbm9kZSwgdGhlbiBjb250aW51ZSBieSB2aXNpdGluZyBpdFxuICogICAtIGBudW1iZXJgOiBXaGlsZSBpdGVyYXRpbmcgdGhlIGl0ZW1zIG9mIGEgc2VxdWVuY2Ugb3IgbWFwLCBzZXQgdGhlIGluZGV4XG4gKiAgICAgb2YgdGhlIG5leHQgc3RlcC4gVGhpcyBpcyB1c2VmdWwgZXNwZWNpYWxseSBpZiB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnRcbiAqICAgICBub2RlIGhhcyBjaGFuZ2VkLlxuICpcbiAqIElmIGB2aXNpdG9yYCBpcyBhIHNpbmdsZSBmdW5jdGlvbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbGwgdmFsdWVzXG4gKiBlbmNvdW50ZXJlZCBpbiB0aGUgdHJlZSwgaW5jbHVkaW5nIGUuZy4gYG51bGxgIHZhbHVlcy4gQWx0ZXJuYXRpdmVseSxcbiAqIHNlcGFyYXRlIHZpc2l0b3IgZnVuY3Rpb25zIG1heSBiZSBkZWZpbmVkIGZvciBlYWNoIGBNYXBgLCBgUGFpcmAsIGBTZXFgLFxuICogYEFsaWFzYCBhbmQgYFNjYWxhcmAgbm9kZS4gVG8gZGVmaW5lIHRoZSBzYW1lIHZpc2l0b3IgZnVuY3Rpb24gZm9yIG1vcmUgdGhhblxuICogb25lIG5vZGUgdHlwZSwgdXNlIHRoZSBgQ29sbGVjdGlvbmAgKG1hcCBhbmQgc2VxKSwgYFZhbHVlYCAobWFwLCBzZXEgJiBzY2FsYXIpXG4gKiBhbmQgYE5vZGVgIChhbGlhcywgbWFwLCBzZXEgJiBzY2FsYXIpIHRhcmdldHMuIE9mIGFsbCB0aGVzZSwgb25seSB0aGUgbW9zdFxuICogc3BlY2lmaWMgZGVmaW5lZCBvbmUgd2lsbCBiZSB1c2VkIGZvciBlYWNoIG5vZGUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZpc2l0QXN5bmMobm9kZSwgdmlzaXRvcikge1xuICAgIGNvbnN0IHZpc2l0b3JfID0gaW5pdFZpc2l0b3IodmlzaXRvcik7XG4gICAgaWYgKGlzRG9jdW1lbnQobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY2QgPSBhd2FpdCB2aXNpdEFzeW5jXyhudWxsLCBub2RlLmNvbnRlbnRzLCB2aXNpdG9yXywgT2JqZWN0LmZyZWV6ZShbbm9kZV0pKTtcbiAgICAgICAgaWYgKGNkID09PSBSRU1PVkUpXG4gICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gbnVsbDtcbiAgICB9XG4gICAgZWxzZVxuICAgICAgICBhd2FpdCB2aXNpdEFzeW5jXyhudWxsLCBub2RlLCB2aXNpdG9yXywgT2JqZWN0LmZyZWV6ZShbXSkpO1xufVxuLy8gV2l0aG91dCB0aGUgYGFzIHN5bWJvbGAgY2FzdHMsIFRTIGRlY2xhcmVzIHRoZXNlIGluIHRoZSBgdmlzaXRgXG4vLyBuYW1lc3BhY2UgdXNpbmcgYHZhcmAsIGJ1dCB0aGVuIGNvbXBsYWlucyBhYm91dCB0aGF0IGJlY2F1c2Vcbi8vIGB1bmlxdWUgc3ltYm9sYCBtdXN0IGJlIGBjb25zdGAuXG4vKiogVGVybWluYXRlIHZpc2l0IHRyYXZlcnNhbCBjb21wbGV0ZWx5ICovXG52aXNpdEFzeW5jLkJSRUFLID0gQlJFQUs7XG4vKiogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBub2RlICovXG52aXNpdEFzeW5jLlNLSVAgPSBTS0lQO1xuLyoqIFJlbW92ZSB0aGUgY3VycmVudCBub2RlICovXG52aXNpdEFzeW5jLlJFTU9WRSA9IFJFTU9WRTtcbmFzeW5jIGZ1bmN0aW9uIHZpc2l0QXN5bmNfKGtleSwgbm9kZSwgdmlzaXRvciwgcGF0aCkge1xuICAgIGNvbnN0IGN0cmwgPSBhd2FpdCBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpO1xuICAgIGlmIChpc05vZGUoY3RybCkgfHwgaXNQYWlyKGN0cmwpKSB7XG4gICAgICAgIHJlcGxhY2VOb2RlKGtleSwgcGF0aCwgY3RybCk7XG4gICAgICAgIHJldHVybiB2aXNpdEFzeW5jXyhrZXksIGN0cmwsIHZpc2l0b3IsIHBhdGgpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGN0cmwgIT09ICdzeW1ib2wnKSB7XG4gICAgICAgIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgICAgIHBhdGggPSBPYmplY3QuZnJlZXplKHBhdGguY29uY2F0KG5vZGUpKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5pdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNpID0gYXdhaXQgdmlzaXRBc3luY18oaSwgbm9kZS5pdGVtc1tpXSwgdmlzaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaSA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICAgICAgICAgIGkgPSBjaSAtIDE7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2kgPT09IEJSRUFLKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUs7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2kgPT09IFJFTU9WRSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1BhaXIobm9kZSkpIHtcbiAgICAgICAgICAgIHBhdGggPSBPYmplY3QuZnJlZXplKHBhdGguY29uY2F0KG5vZGUpKTtcbiAgICAgICAgICAgIGNvbnN0IGNrID0gYXdhaXQgdmlzaXRBc3luY18oJ2tleScsIG5vZGUua2V5LCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjayA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2sgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLmtleSA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdiA9IGF3YWl0IHZpc2l0QXN5bmNfKCd2YWx1ZScsIG5vZGUudmFsdWUsIHZpc2l0b3IsIHBhdGgpO1xuICAgICAgICAgICAgaWYgKGN2ID09PSBCUkVBSylcbiAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUs7XG4gICAgICAgICAgICBlbHNlIGlmIChjdiA9PT0gUkVNT1ZFKVxuICAgICAgICAgICAgICAgIG5vZGUudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjdHJsO1xufVxuZnVuY3Rpb24gaW5pdFZpc2l0b3IodmlzaXRvcikge1xuICAgIGlmICh0eXBlb2YgdmlzaXRvciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHZpc2l0b3IuQ29sbGVjdGlvbiB8fCB2aXNpdG9yLk5vZGUgfHwgdmlzaXRvci5WYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgQWxpYXM6IHZpc2l0b3IuTm9kZSxcbiAgICAgICAgICAgIE1hcDogdmlzaXRvci5Ob2RlLFxuICAgICAgICAgICAgU2NhbGFyOiB2aXNpdG9yLk5vZGUsXG4gICAgICAgICAgICBTZXE6IHZpc2l0b3IuTm9kZVxuICAgICAgICB9LCB2aXNpdG9yLlZhbHVlICYmIHtcbiAgICAgICAgICAgIE1hcDogdmlzaXRvci5WYWx1ZSxcbiAgICAgICAgICAgIFNjYWxhcjogdmlzaXRvci5WYWx1ZSxcbiAgICAgICAgICAgIFNlcTogdmlzaXRvci5WYWx1ZVxuICAgICAgICB9LCB2aXNpdG9yLkNvbGxlY3Rpb24gJiYge1xuICAgICAgICAgICAgTWFwOiB2aXNpdG9yLkNvbGxlY3Rpb24sXG4gICAgICAgICAgICBTZXE6IHZpc2l0b3IuQ29sbGVjdGlvblxuICAgICAgICB9LCB2aXNpdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2l0b3I7XG59XG5mdW5jdGlvbiBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpIHtcbiAgICBpZiAodHlwZW9mIHZpc2l0b3IgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiB2aXNpdG9yKGtleSwgbm9kZSwgcGF0aCk7XG4gICAgaWYgKGlzTWFwKG5vZGUpKVxuICAgICAgICByZXR1cm4gdmlzaXRvci5NYXA/LihrZXksIG5vZGUsIHBhdGgpO1xuICAgIGlmIChpc1NlcShub2RlKSlcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IuU2VxPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICBpZiAoaXNQYWlyKG5vZGUpKVxuICAgICAgICByZXR1cm4gdmlzaXRvci5QYWlyPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICBpZiAoaXNTY2FsYXIobm9kZSkpXG4gICAgICAgIHJldHVybiB2aXNpdG9yLlNjYWxhcj8uKGtleSwgbm9kZSwgcGF0aCk7XG4gICAgaWYgKGlzQWxpYXMobm9kZSkpXG4gICAgICAgIHJldHVybiB2aXNpdG9yLkFsaWFzPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gcmVwbGFjZU5vZGUoa2V5LCBwYXRoLCBub2RlKSB7XG4gICAgY29uc3QgcGFyZW50ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgIGlmIChpc0NvbGxlY3Rpb24ocGFyZW50KSkge1xuICAgICAgICBwYXJlbnQuaXRlbXNba2V5XSA9IG5vZGU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGFpcihwYXJlbnQpKSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdrZXknKVxuICAgICAgICAgICAgcGFyZW50LmtleSA9IG5vZGU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHBhcmVudC52YWx1ZSA9IG5vZGU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzRG9jdW1lbnQocGFyZW50KSkge1xuICAgICAgICBwYXJlbnQuY29udGVudHMgPSBub2RlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcHQgPSBpc0FsaWFzKHBhcmVudCkgPyAnYWxpYXMnIDogJ3NjYWxhcic7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlcGxhY2Ugbm9kZSB3aXRoICR7cHR9IHBhcmVudGApO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgdmlzaXQsIHZpc2l0QXN5bmMgfTtcbiIsICJpbXBvcnQgeyBpc05vZGUgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uL3Zpc2l0LmpzJztcblxuY29uc3QgZXNjYXBlQ2hhcnMgPSB7XG4gICAgJyEnOiAnJTIxJyxcbiAgICAnLCc6ICclMkMnLFxuICAgICdbJzogJyU1QicsXG4gICAgJ10nOiAnJTVEJyxcbiAgICAneyc6ICclN0InLFxuICAgICd9JzogJyU3RCdcbn07XG5jb25zdCBlc2NhcGVUYWdOYW1lID0gKHRuKSA9PiB0bi5yZXBsYWNlKC9bISxbXFxde31dL2csIGNoID0+IGVzY2FwZUNoYXJzW2NoXSk7XG5jbGFzcyBEaXJlY3RpdmVzIHtcbiAgICBjb25zdHJ1Y3Rvcih5YW1sLCB0YWdzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IG1hcmtlciBgLS0tYC4gSWYgYG51bGxgLCBhIG1hcmtlciBtYXkgc3RpbGwgYmVcbiAgICAgICAgICogaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50J3Mgc3RyaW5naWZpZWQgcmVwcmVzZW50YXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmRvY1N0YXJ0ID0gbnVsbDtcbiAgICAgICAgLyoqIFRoZSBkb2MtZW5kIG1hcmtlciBgLi4uYC4gICovXG4gICAgICAgIHRoaXMuZG9jRW5kID0gZmFsc2U7XG4gICAgICAgIHRoaXMueWFtbCA9IE9iamVjdC5hc3NpZ24oe30sIERpcmVjdGl2ZXMuZGVmYXVsdFlhbWwsIHlhbWwpO1xuICAgICAgICB0aGlzLnRhZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBEaXJlY3RpdmVzLmRlZmF1bHRUYWdzLCB0YWdzKTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgRGlyZWN0aXZlcyh0aGlzLnlhbWwsIHRoaXMudGFncyk7XG4gICAgICAgIGNvcHkuZG9jU3RhcnQgPSB0aGlzLmRvY1N0YXJ0O1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRHVyaW5nIHBhcnNpbmcsIGdldCBhIERpcmVjdGl2ZXMgaW5zdGFuY2UgZm9yIHRoZSBjdXJyZW50IGRvY3VtZW50IGFuZFxuICAgICAqIHVwZGF0ZSB0aGUgc3RyZWFtIHN0YXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCB2ZXJzaW9uJ3Mgc3BlYy5cbiAgICAgKi9cbiAgICBhdERvY3VtZW50KCkge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgRGlyZWN0aXZlcyh0aGlzLnlhbWwsIHRoaXMudGFncyk7XG4gICAgICAgIHN3aXRjaCAodGhpcy55YW1sLnZlcnNpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJzEuMSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hdE5leHREb2N1bWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcxLjInOlxuICAgICAgICAgICAgICAgIHRoaXMuYXROZXh0RG9jdW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnlhbWwgPSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0OiBEaXJlY3RpdmVzLmRlZmF1bHRZYW1sLmV4cGxpY2l0LFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiAnMS4yJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gT2JqZWN0LmFzc2lnbih7fSwgRGlyZWN0aXZlcy5kZWZhdWx0VGFncyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9uRXJyb3IgLSBNYXkgYmUgY2FsbGVkIGV2ZW4gaWYgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bFxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBvbiBzdWNjZXNzXG4gICAgICovXG4gICAgYWRkKGxpbmUsIG9uRXJyb3IpIHtcbiAgICAgICAgaWYgKHRoaXMuYXROZXh0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMueWFtbCA9IHsgZXhwbGljaXQ6IERpcmVjdGl2ZXMuZGVmYXVsdFlhbWwuZXhwbGljaXQsIHZlcnNpb246ICcxLjEnIH07XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBEaXJlY3RpdmVzLmRlZmF1bHRUYWdzKTtcbiAgICAgICAgICAgIHRoaXMuYXROZXh0RG9jdW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0cyA9IGxpbmUudHJpbSgpLnNwbGl0KC9bIFxcdF0rLyk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXJ0cy5zaGlmdCgpO1xuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJyVUQUcnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKDAsICclVEFHIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IHR3byBwYXJ0cycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgW2hhbmRsZSwgcHJlZml4XSA9IHBhcnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnc1toYW5kbGVdID0gcHJlZml4O1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnJVlBTUwnOiB7XG4gICAgICAgICAgICAgICAgdGhpcy55YW1sLmV4cGxpY2l0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoMCwgJyVZQU1MIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IG9uZSBwYXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgW3ZlcnNpb25dID0gcGFydHM7XG4gICAgICAgICAgICAgICAgaWYgKHZlcnNpb24gPT09ICcxLjEnIHx8IHZlcnNpb24gPT09ICcxLjInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWFtbC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gL15cXGQrXFwuXFxkKyQvLnRlc3QodmVyc2lvbik7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoNiwgYFVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiAke3ZlcnNpb259YCwgaXNWYWxpZCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG9uRXJyb3IoMCwgYFVua25vd24gZGlyZWN0aXZlICR7bmFtZX1gLCB0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzb2x2ZXMgYSB0YWcsIG1hdGNoaW5nIGhhbmRsZXMgdG8gdGhvc2UgZGVmaW5lZCBpbiAlVEFHIGRpcmVjdGl2ZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBSZXNvbHZlZCB0YWcsIHdoaWNoIG1heSBhbHNvIGJlIHRoZSBub24tc3BlY2lmaWMgdGFnIGAnISdgIG9yIGFcbiAgICAgKiAgIGAnIWxvY2FsJ2AgdGFnLCBvciBgbnVsbGAgaWYgdW5yZXNvbHZhYmxlLlxuICAgICAqL1xuICAgIHRhZ05hbWUoc291cmNlLCBvbkVycm9yKSB7XG4gICAgICAgIGlmIChzb3VyY2UgPT09ICchJylcbiAgICAgICAgICAgIHJldHVybiAnISc7IC8vIG5vbi1zcGVjaWZpYyB0YWdcbiAgICAgICAgaWYgKHNvdXJjZVswXSAhPT0gJyEnKSB7XG4gICAgICAgICAgICBvbkVycm9yKGBOb3QgYSB2YWxpZCB0YWc6ICR7c291cmNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVsxXSA9PT0gJzwnKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJiYXRpbSA9IHNvdXJjZS5zbGljZSgyLCAtMSk7XG4gICAgICAgICAgICBpZiAodmVyYmF0aW0gPT09ICchJyB8fCB2ZXJiYXRpbSA9PT0gJyEhJykge1xuICAgICAgICAgICAgICAgIG9uRXJyb3IoYFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke3NvdXJjZX0gaXMgaW52YWxpZC5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzb3VyY2Vbc291cmNlLmxlbmd0aCAtIDFdICE9PSAnPicpXG4gICAgICAgICAgICAgICAgb25FcnJvcignVmVyYmF0aW0gdGFncyBtdXN0IGVuZCB3aXRoIGEgPicpO1xuICAgICAgICAgICAgcmV0dXJuIHZlcmJhdGltO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFssIGhhbmRsZSwgc3VmZml4XSA9IHNvdXJjZS5tYXRjaCgvXiguKiEpKFteIV0qKSQvcyk7XG4gICAgICAgIGlmICghc3VmZml4KVxuICAgICAgICAgICAgb25FcnJvcihgVGhlICR7c291cmNlfSB0YWcgaGFzIG5vIHN1ZmZpeGApO1xuICAgICAgICBjb25zdCBwcmVmaXggPSB0aGlzLnRhZ3NbaGFuZGxlXTtcbiAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJlZml4ICsgZGVjb2RlVVJJQ29tcG9uZW50KHN1ZmZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yKFN0cmluZyhlcnJvcikpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYW5kbGUgPT09ICchJylcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7IC8vIGxvY2FsIHRhZ1xuICAgICAgICBvbkVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSB0YWc6ICR7c291cmNlfWApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBmdWxseSByZXNvbHZlZCB0YWcsIHJldHVybnMgaXRzIHByaW50YWJsZSBzdHJpbmcgZm9ybSxcbiAgICAgKiB0YWtpbmcgaW50byBhY2NvdW50IGN1cnJlbnQgdGFnIHByZWZpeGVzIGFuZCBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICB0YWdTdHJpbmcodGFnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2hhbmRsZSwgcHJlZml4XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpKSB7XG4gICAgICAgICAgICBpZiAodGFnLnN0YXJ0c1dpdGgocHJlZml4KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlICsgZXNjYXBlVGFnTmFtZSh0YWcuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFnWzBdID09PSAnIScgPyB0YWcgOiBgITwke3RhZ30+YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoZG9jKSB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy55YW1sLmV4cGxpY2l0XG4gICAgICAgICAgICA/IFtgJVlBTUwgJHt0aGlzLnlhbWwudmVyc2lvbiB8fCAnMS4yJ31gXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgY29uc3QgdGFnRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMudGFncyk7XG4gICAgICAgIGxldCB0YWdOYW1lcztcbiAgICAgICAgaWYgKGRvYyAmJiB0YWdFbnRyaWVzLmxlbmd0aCA+IDAgJiYgaXNOb2RlKGRvYy5jb250ZW50cykpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB7fTtcbiAgICAgICAgICAgIHZpc2l0KGRvYy5jb250ZW50cywgKF9rZXksIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNOb2RlKG5vZGUpICYmIG5vZGUudGFnKVxuICAgICAgICAgICAgICAgICAgICB0YWdzW25vZGUudGFnXSA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhZ05hbWVzID0gT2JqZWN0LmtleXModGFncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGFnTmFtZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBbaGFuZGxlLCBwcmVmaXhdIG9mIHRhZ0VudHJpZXMpIHtcbiAgICAgICAgICAgIGlmIChoYW5kbGUgPT09ICchIScgJiYgcHJlZml4ID09PSAndGFnOnlhbWwub3JnLDIwMDI6JylcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICghZG9jIHx8IHRhZ05hbWVzLnNvbWUodG4gPT4gdG4uc3RhcnRzV2l0aChwcmVmaXgpKSlcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAlVEFHICR7aGFuZGxlfSAke3ByZWZpeH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG4gICAgfVxufVxuRGlyZWN0aXZlcy5kZWZhdWx0WWFtbCA9IHsgZXhwbGljaXQ6IGZhbHNlLCB2ZXJzaW9uOiAnMS4yJyB9O1xuRGlyZWN0aXZlcy5kZWZhdWx0VGFncyA9IHsgJyEhJzogJ3RhZzp5YW1sLm9yZywyMDAyOicgfTtcblxuZXhwb3J0IHsgRGlyZWN0aXZlcyB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc0NvbGxlY3Rpb24gfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uL3Zpc2l0LmpzJztcblxuLyoqXG4gKiBWZXJpZnkgdGhhdCB0aGUgaW5wdXQgc3RyaW5nIGlzIGEgdmFsaWQgYW5jaG9yLlxuICpcbiAqIFdpbGwgdGhyb3cgb24gZXJyb3JzLlxuICovXG5mdW5jdGlvbiBhbmNob3JJc1ZhbGlkKGFuY2hvcikge1xuICAgIGlmICgvW1xceDAwLVxceDE5XFxzLFtcXF17fV0vLnRlc3QoYW5jaG9yKSkge1xuICAgICAgICBjb25zdCBzYSA9IEpTT04uc3RyaW5naWZ5KGFuY2hvcik7XG4gICAgICAgIGNvbnN0IG1zZyA9IGBBbmNob3IgbXVzdCBub3QgY29udGFpbiB3aGl0ZXNwYWNlIG9yIGNvbnRyb2wgY2hhcmFjdGVyczogJHtzYX1gO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBhbmNob3JOYW1lcyhyb290KSB7XG4gICAgY29uc3QgYW5jaG9ycyA9IG5ldyBTZXQoKTtcbiAgICB2aXNpdChyb290LCB7XG4gICAgICAgIFZhbHVlKF9rZXksIG5vZGUpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmFuY2hvcilcbiAgICAgICAgICAgICAgICBhbmNob3JzLmFkZChub2RlLmFuY2hvcik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYW5jaG9ycztcbn1cbi8qKiBGaW5kIGEgbmV3IGFuY2hvciBuYW1lIHdpdGggdGhlIGdpdmVuIGBwcmVmaXhgIGFuZCBhIG9uZS1pbmRleGVkIHN1ZmZpeC4gKi9cbmZ1bmN0aW9uIGZpbmROZXdBbmNob3IocHJlZml4LCBleGNsdWRlKSB7XG4gICAgZm9yIChsZXQgaSA9IDE7IHRydWU7ICsraSkge1xuICAgICAgICBjb25zdCBuYW1lID0gYCR7cHJlZml4fSR7aX1gO1xuICAgICAgICBpZiAoIWV4Y2x1ZGUuaGFzKG5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlTm9kZUFuY2hvcnMoZG9jLCBwcmVmaXgpIHtcbiAgICBjb25zdCBhbGlhc09iamVjdHMgPSBbXTtcbiAgICBjb25zdCBzb3VyY2VPYmplY3RzID0gbmV3IE1hcCgpO1xuICAgIGxldCBwcmV2QW5jaG9ycyA9IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb25BbmNob3I6IChzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIGFsaWFzT2JqZWN0cy5wdXNoKHNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoIXByZXZBbmNob3JzKVxuICAgICAgICAgICAgICAgIHByZXZBbmNob3JzID0gYW5jaG9yTmFtZXMoZG9jKTtcbiAgICAgICAgICAgIGNvbnN0IGFuY2hvciA9IGZpbmROZXdBbmNob3IocHJlZml4LCBwcmV2QW5jaG9ycyk7XG4gICAgICAgICAgICBwcmV2QW5jaG9ycy5hZGQoYW5jaG9yKTtcbiAgICAgICAgICAgIHJldHVybiBhbmNob3I7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaXRoIGNpcmN1bGFyIHJlZmVyZW5jZXMsIHRoZSBzb3VyY2Ugbm9kZSBpcyBvbmx5IHJlc29sdmVkIGFmdGVyIGFsbFxuICAgICAgICAgKiBvZiBpdHMgY2hpbGQgbm9kZXMgYXJlLiBUaGlzIGlzIHdoeSBhbmNob3JzIGFyZSBzZXQgb25seSBhZnRlciBhbGwgb2ZcbiAgICAgICAgICogdGhlIG5vZGVzIGhhdmUgYmVlbiBjcmVhdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgc2V0QW5jaG9yczogKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgYWxpYXNPYmplY3RzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmID0gc291cmNlT2JqZWN0cy5nZXQoc291cmNlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVmLmFuY2hvciAmJlxuICAgICAgICAgICAgICAgICAgICAoaXNTY2FsYXIocmVmLm5vZGUpIHx8IGlzQ29sbGVjdGlvbihyZWYubm9kZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5ub2RlLmFuY2hvciA9IHJlZi5hbmNob3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgcmVwZWF0ZWQgb2JqZWN0ICh0aGlzIHNob3VsZCBub3QgaGFwcGVuKScpO1xuICAgICAgICAgICAgICAgICAgICBlcnJvci5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlT2JqZWN0c1xuICAgIH07XG59XG5cbmV4cG9ydCB7IGFuY2hvcklzVmFsaWQsIGFuY2hvck5hbWVzLCBjcmVhdGVOb2RlQW5jaG9ycywgZmluZE5ld0FuY2hvciB9O1xuIiwgIi8qKlxuICogQXBwbGllcyB0aGUgSlNPTi5wYXJzZSByZXZpdmVyIGFsZ29yaXRobSBhcyBkZWZpbmVkIGluIHRoZSBFQ01BLTI2MiBzcGVjLFxuICogaW4gc2VjdGlvbiAyNC41LjEuMSBcIlJ1bnRpbWUgU2VtYW50aWNzOiBJbnRlcm5hbGl6ZUpTT05Qcm9wZXJ0eVwiIG9mIHRoZVxuICogMjAyMSBlZGl0aW9uOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24ucGFyc2VcbiAqXG4gKiBJbmNsdWRlcyBleHRlbnNpb25zIGZvciBoYW5kbGluZyBNYXAgYW5kIFNldCBvYmplY3RzLlxuICovXG5mdW5jdGlvbiBhcHBseVJldml2ZXIocmV2aXZlciwgb2JqLCBrZXksIHZhbCkge1xuICAgIGlmICh2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHZhbC5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHYwID0gdmFsW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHYxID0gYXBwbHlSZXZpdmVyKHJldml2ZXIsIHZhbCwgU3RyaW5nKGkpLCB2MCk7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1hcnJheS1kZWxldGVcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbFtpXTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2MSAhPT0gdjApXG4gICAgICAgICAgICAgICAgICAgIHZhbFtpXSA9IHYxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIEFycmF5LmZyb20odmFsLmtleXMoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2MCA9IHZhbC5nZXQoayk7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCBrLCB2MCk7XG4gICAgICAgICAgICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIHZhbC5kZWxldGUoayk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodjEgIT09IHYwKVxuICAgICAgICAgICAgICAgICAgICB2YWwuc2V0KGssIHYxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdjAgb2YgQXJyYXkuZnJvbSh2YWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCB2MCwgdjApO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICB2YWwuZGVsZXRlKHYwKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2MSAhPT0gdjApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsLmRlbGV0ZSh2MCk7XG4gICAgICAgICAgICAgICAgICAgIHZhbC5hZGQodjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHYwXSBvZiBPYmplY3QuZW50cmllcyh2YWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCBrLCB2MCk7XG4gICAgICAgICAgICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWxba107XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodjEgIT09IHYwKVxuICAgICAgICAgICAgICAgICAgICB2YWxba10gPSB2MTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV2aXZlci5jYWxsKG9iaiwga2V5LCB2YWwpO1xufVxuXG5leHBvcnQgeyBhcHBseVJldml2ZXIgfTtcbiIsICJpbXBvcnQgeyBoYXNBbmNob3IgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBjb252ZXJ0IGFueSBub2RlIG9yIGl0cyBjb250ZW50cyB0byBuYXRpdmUgSmF2YVNjcmlwdFxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbnB1dCB2YWx1ZVxuICogQHBhcmFtIGFyZyAtIElmIGB2YWx1ZWAgZGVmaW5lcyBhIGB0b0pTT04oKWAgbWV0aG9kLCB1c2UgdGhpc1xuICogICBhcyBpdHMgZmlyc3QgYXJndW1lbnRcbiAqIEBwYXJhbSBjdHggLSBDb252ZXJzaW9uIGNvbnRleHQsIG9yaWdpbmFsbHkgc2V0IGluIERvY3VtZW50I3RvSlMoKS4gSWZcbiAqICAgYHsga2VlcDogdHJ1ZSB9YCBpcyBub3Qgc2V0LCBvdXRwdXQgc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBKU09OXG4gKiAgIHN0cmluZ2lmaWNhdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9KUyh2YWx1ZSwgYXJnLCBjdHgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKHYsIGkpID0+IHRvSlModiwgU3RyaW5nKGkpLCBjdHgpKTtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGlmICghY3R4IHx8ICFoYXNBbmNob3IodmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvSlNPTihhcmcsIGN0eCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IGFsaWFzQ291bnQ6IDAsIGNvdW50OiAxLCByZXM6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjdHguYW5jaG9ycy5zZXQodmFsdWUsIGRhdGEpO1xuICAgICAgICBjdHgub25DcmVhdGUgPSByZXMgPT4ge1xuICAgICAgICAgICAgZGF0YS5yZXMgPSByZXM7XG4gICAgICAgICAgICBkZWxldGUgY3R4Lm9uQ3JlYXRlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXMgPSB2YWx1ZS50b0pTT04oYXJnLCBjdHgpO1xuICAgICAgICBpZiAoY3R4Lm9uQ3JlYXRlKVxuICAgICAgICAgICAgY3R4Lm9uQ3JlYXRlKHJlcyk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnICYmICFjdHg/LmtlZXApXG4gICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IHsgdG9KUyB9O1xuIiwgImltcG9ydCB7IGFwcGx5UmV2aXZlciB9IGZyb20gJy4uL2RvYy9hcHBseVJldml2ZXIuanMnO1xuaW1wb3J0IHsgTk9ERV9UWVBFLCBpc0RvY3VtZW50IH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi90b0pTLmpzJztcblxuY2xhc3MgTm9kZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHR5cGUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIE5PREVfVFlQRSwgeyB2YWx1ZTogdHlwZSB9KTtcbiAgICB9XG4gICAgLyoqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBub2RlLiAgKi9cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgY29uc3QgY29weSA9IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlKVxuICAgICAgICAgICAgY29weS5yYW5nZSA9IHRoaXMucmFuZ2Uuc2xpY2UoKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuICAgIC8qKiBBIHBsYWluIEphdmFTY3JpcHQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBub2RlLiAqL1xuICAgIHRvSlMoZG9jLCB7IG1hcEFzTWFwLCBtYXhBbGlhc0NvdW50LCBvbkFuY2hvciwgcmV2aXZlciB9ID0ge30pIHtcbiAgICAgICAgaWYgKCFpc0RvY3VtZW50KGRvYykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRvY3VtZW50IGFyZ3VtZW50IGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFuY2hvcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgIGtlZXA6IHRydWUsXG4gICAgICAgICAgICBtYXBBc01hcDogbWFwQXNNYXAgPT09IHRydWUsXG4gICAgICAgICAgICBtYXBLZXlXYXJuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgbWF4QWxpYXNDb3VudDogdHlwZW9mIG1heEFsaWFzQ291bnQgPT09ICdudW1iZXInID8gbWF4QWxpYXNDb3VudCA6IDEwMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXMgPSB0b0pTKHRoaXMsICcnLCBjdHgpO1xuICAgICAgICBpZiAodHlwZW9mIG9uQW5jaG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgZm9yIChjb25zdCB7IGNvdW50LCByZXMgfSBvZiBjdHguYW5jaG9ycy52YWx1ZXMoKSlcbiAgICAgICAgICAgICAgICBvbkFuY2hvcihyZXMsIGNvdW50KTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGFwcGx5UmV2aXZlcihyZXZpdmVyLCB7ICcnOiByZXMgfSwgJycsIHJlcylcbiAgICAgICAgICAgIDogcmVzO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTm9kZUJhc2UgfTtcbiIsICJpbXBvcnQgeyBhbmNob3JJc1ZhbGlkIH0gZnJvbSAnLi4vZG9jL2FuY2hvcnMuanMnO1xuaW1wb3J0IHsgdmlzaXQgfSBmcm9tICcuLi92aXNpdC5qcyc7XG5pbXBvcnQgeyBBTElBUywgaXNBbGlhcywgaXNDb2xsZWN0aW9uLCBpc1BhaXIgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IE5vZGVCYXNlIH0gZnJvbSAnLi9Ob2RlLmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5jbGFzcyBBbGlhcyBleHRlbmRzIE5vZGVCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihzb3VyY2UpIHtcbiAgICAgICAgc3VwZXIoQUxJQVMpO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0YWcnLCB7XG4gICAgICAgICAgICBzZXQoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbGlhcyBub2RlcyBjYW5ub3QgaGF2ZSB0YWdzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlIHRoZSB2YWx1ZSBvZiB0aGlzIGFsaWFzIHdpdGhpbiBgZG9jYCwgZmluZGluZyB0aGUgbGFzdFxuICAgICAqIGluc3RhbmNlIG9mIHRoZSBgc291cmNlYCBhbmNob3IgYmVmb3JlIHRoaXMgbm9kZS5cbiAgICAgKi9cbiAgICByZXNvbHZlKGRvYykge1xuICAgICAgICBsZXQgZm91bmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZpc2l0KGRvYywge1xuICAgICAgICAgICAgTm9kZTogKF9rZXksIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSA9PT0gdGhpcylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2l0LkJSRUFLO1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmFuY2hvciA9PT0gdGhpcy5zb3VyY2UpXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG4gICAgdG9KU09OKF9hcmcsIGN0eCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiB7IHNvdXJjZTogdGhpcy5zb3VyY2UgfTtcbiAgICAgICAgY29uc3QgeyBhbmNob3JzLCBkb2MsIG1heEFsaWFzQ291bnQgfSA9IGN0eDtcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5yZXNvbHZlKGRvYyk7XG4gICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBgVW5yZXNvbHZlZCBhbGlhcyAodGhlIGFuY2hvciBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGFsaWFzKTogJHt0aGlzLnNvdXJjZX1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRhdGEgPSBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIC8vIFJlc29sdmUgYW5jaG9ycyBmb3IgTm9kZS5wcm90b3R5cGUudG9KUygpXG4gICAgICAgICAgICB0b0pTKHNvdXJjZSwgbnVsbCwgY3R4KTtcbiAgICAgICAgICAgIGRhdGEgPSBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5yZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gJ1RoaXMgc2hvdWxkIG5vdCBoYXBwZW46IEFsaWFzIGFuY2hvciB3YXMgbm90IHJlc29sdmVkPyc7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IobXNnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4QWxpYXNDb3VudCA+PSAwKSB7XG4gICAgICAgICAgICBkYXRhLmNvdW50ICs9IDE7XG4gICAgICAgICAgICBpZiAoZGF0YS5hbGlhc0NvdW50ID09PSAwKVxuICAgICAgICAgICAgICAgIGRhdGEuYWxpYXNDb3VudCA9IGdldEFsaWFzQ291bnQoZG9jLCBzb3VyY2UsIGFuY2hvcnMpO1xuICAgICAgICAgICAgaWYgKGRhdGEuY291bnQgKiBkYXRhLmFsaWFzQ291bnQgPiBtYXhBbGlhc0NvdW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gJ0V4Y2Vzc2l2ZSBhbGlhcyBjb3VudCBpbmRpY2F0ZXMgYSByZXNvdXJjZSBleGhhdXN0aW9uIGF0dGFjayc7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEucmVzO1xuICAgIH1cbiAgICB0b1N0cmluZyhjdHgsIF9vbkNvbW1lbnQsIF9vbkNob21wS2VlcCkge1xuICAgICAgICBjb25zdCBzcmMgPSBgKiR7dGhpcy5zb3VyY2V9YDtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgYW5jaG9ySXNWYWxpZCh0aGlzLnNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMudmVyaWZ5QWxpYXNPcmRlciAmJiAhY3R4LmFuY2hvcnMuaGFzKHRoaXMuc291cmNlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3R4LmltcGxpY2l0S2V5KVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzcmN9IGA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNyYztcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRBbGlhc0NvdW50KGRvYywgbm9kZSwgYW5jaG9ycykge1xuICAgIGlmIChpc0FsaWFzKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5vZGUucmVzb2x2ZShkb2MpO1xuICAgICAgICBjb25zdCBhbmNob3IgPSBhbmNob3JzICYmIHNvdXJjZSAmJiBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICByZXR1cm4gYW5jaG9yID8gYW5jaG9yLmNvdW50ICogYW5jaG9yLmFsaWFzQ291bnQgOiAwO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG5vZGUuaXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGMgPSBnZXRBbGlhc0NvdW50KGRvYywgaXRlbSwgYW5jaG9ycyk7XG4gICAgICAgICAgICBpZiAoYyA+IGNvdW50KVxuICAgICAgICAgICAgICAgIGNvdW50ID0gYztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGFpcihub2RlKSkge1xuICAgICAgICBjb25zdCBrYyA9IGdldEFsaWFzQ291bnQoZG9jLCBub2RlLmtleSwgYW5jaG9ycyk7XG4gICAgICAgIGNvbnN0IHZjID0gZ2V0QWxpYXNDb3VudChkb2MsIG5vZGUudmFsdWUsIGFuY2hvcnMpO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgoa2MsIHZjKTtcbiAgICB9XG4gICAgcmV0dXJuIDE7XG59XG5cbmV4cG9ydCB7IEFsaWFzIH07XG4iLCAiaW1wb3J0IHsgU0NBTEFSIH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBOb2RlQmFzZSB9IGZyb20gJy4vTm9kZS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi90b0pTLmpzJztcblxuY29uc3QgaXNTY2FsYXJWYWx1ZSA9ICh2YWx1ZSkgPT4gIXZhbHVlIHx8ICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jyk7XG5jbGFzcyBTY2FsYXIgZXh0ZW5kcyBOb2RlQmFzZSB7XG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgc3VwZXIoU0NBTEFSKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICB0b0pTT04oYXJnLCBjdHgpIHtcbiAgICAgICAgcmV0dXJuIGN0eD8ua2VlcCA/IHRoaXMudmFsdWUgOiB0b0pTKHRoaXMudmFsdWUsIGFyZywgY3R4KTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuU2NhbGFyLkJMT0NLX0ZPTERFRCA9ICdCTE9DS19GT0xERUQnO1xuU2NhbGFyLkJMT0NLX0xJVEVSQUwgPSAnQkxPQ0tfTElURVJBTCc7XG5TY2FsYXIuUExBSU4gPSAnUExBSU4nO1xuU2NhbGFyLlFVT1RFX0RPVUJMRSA9ICdRVU9URV9ET1VCTEUnO1xuU2NhbGFyLlFVT1RFX1NJTkdMRSA9ICdRVU9URV9TSU5HTEUnO1xuXG5leHBvcnQgeyBTY2FsYXIsIGlzU2NhbGFyVmFsdWUgfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzTm9kZSwgaXNQYWlyLCBNQVAsIFNFUSwgaXNEb2N1bWVudCB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5cbmNvbnN0IGRlZmF1bHRUYWdQcmVmaXggPSAndGFnOnlhbWwub3JnLDIwMDI6JztcbmZ1bmN0aW9uIGZpbmRUYWdPYmplY3QodmFsdWUsIHRhZ05hbWUsIHRhZ3MpIHtcbiAgICBpZiAodGFnTmFtZSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHRhZ3MuZmlsdGVyKHQgPT4gdC50YWcgPT09IHRhZ05hbWUpO1xuICAgICAgICBjb25zdCB0YWdPYmogPSBtYXRjaC5maW5kKHQgPT4gIXQuZm9ybWF0KSA/PyBtYXRjaFswXTtcbiAgICAgICAgaWYgKCF0YWdPYmopXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhZyAke3RhZ05hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdGFnT2JqO1xuICAgIH1cbiAgICByZXR1cm4gdGFncy5maW5kKHQgPT4gdC5pZGVudGlmeT8uKHZhbHVlKSAmJiAhdC5mb3JtYXQpO1xufVxuZnVuY3Rpb24gY3JlYXRlTm9kZSh2YWx1ZSwgdGFnTmFtZSwgY3R4KSB7XG4gICAgaWYgKGlzRG9jdW1lbnQodmFsdWUpKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLmNvbnRlbnRzO1xuICAgIGlmIChpc05vZGUodmFsdWUpKVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgaWYgKGlzUGFpcih2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgbWFwID0gY3R4LnNjaGVtYVtNQVBdLmNyZWF0ZU5vZGU/LihjdHguc2NoZW1hLCBudWxsLCBjdHgpO1xuICAgICAgICBtYXAuaXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZyB8fFxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIE51bWJlciB8fFxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIEJvb2xlYW4gfHxcbiAgICAgICAgKHR5cGVvZiBCaWdJbnQgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQmlnSW50KSAvLyBub3Qgc3VwcG9ydGVkIGV2ZXJ5d2hlcmVcbiAgICApIHtcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zZXJpYWxpemVqc29ucHJvcGVydHlcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZU9mKCk7XG4gICAgfVxuICAgIGNvbnN0IHsgYWxpYXNEdXBsaWNhdGVPYmplY3RzLCBvbkFuY2hvciwgb25UYWdPYmosIHNjaGVtYSwgc291cmNlT2JqZWN0cyB9ID0gY3R4O1xuICAgIC8vIERldGVjdCBkdXBsaWNhdGUgcmVmZXJlbmNlcyB0byB0aGUgc2FtZSBvYmplY3QgJiB1c2UgQWxpYXMgbm9kZXMgZm9yIGFsbFxuICAgIC8vIGFmdGVyIGZpcnN0LiBUaGUgYHJlZmAgd3JhcHBlciBhbGxvd3MgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgdG8gcmVzb2x2ZS5cbiAgICBsZXQgcmVmID0gdW5kZWZpbmVkO1xuICAgIGlmIChhbGlhc0R1cGxpY2F0ZU9iamVjdHMgJiYgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWYgPSBzb3VyY2VPYmplY3RzLmdldCh2YWx1ZSk7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIGlmICghcmVmLmFuY2hvcilcbiAgICAgICAgICAgICAgICByZWYuYW5jaG9yID0gb25BbmNob3IodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbGlhcyhyZWYuYW5jaG9yKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlZiA9IHsgYW5jaG9yOiBudWxsLCBub2RlOiBudWxsIH07XG4gICAgICAgICAgICBzb3VyY2VPYmplY3RzLnNldCh2YWx1ZSwgcmVmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFnTmFtZT8uc3RhcnRzV2l0aCgnISEnKSlcbiAgICAgICAgdGFnTmFtZSA9IGRlZmF1bHRUYWdQcmVmaXggKyB0YWdOYW1lLnNsaWNlKDIpO1xuICAgIGxldCB0YWdPYmogPSBmaW5kVGFnT2JqZWN0KHZhbHVlLCB0YWdOYW1lLCBzY2hlbWEudGFncyk7XG4gICAgaWYgKCF0YWdPYmopIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09OKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IFNjYWxhcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAocmVmKVxuICAgICAgICAgICAgICAgIHJlZi5ub2RlID0gbm9kZTtcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICAgIHRhZ09iaiA9XG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIE1hcFxuICAgICAgICAgICAgICAgID8gc2NoZW1hW01BUF1cbiAgICAgICAgICAgICAgICA6IFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gc2NoZW1hW1NFUV1cbiAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWFbTUFQXTtcbiAgICB9XG4gICAgaWYgKG9uVGFnT2JqKSB7XG4gICAgICAgIG9uVGFnT2JqKHRhZ09iaik7XG4gICAgICAgIGRlbGV0ZSBjdHgub25UYWdPYmo7XG4gICAgfVxuICAgIGNvbnN0IG5vZGUgPSB0YWdPYmo/LmNyZWF0ZU5vZGVcbiAgICAgICAgPyB0YWdPYmouY3JlYXRlTm9kZShjdHguc2NoZW1hLCB2YWx1ZSwgY3R4KVxuICAgICAgICA6IHR5cGVvZiB0YWdPYmo/Lm5vZGVDbGFzcz8uZnJvbSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyB0YWdPYmoubm9kZUNsYXNzLmZyb20oY3R4LnNjaGVtYSwgdmFsdWUsIGN0eClcbiAgICAgICAgICAgIDogbmV3IFNjYWxhcih2YWx1ZSk7XG4gICAgaWYgKHRhZ05hbWUpXG4gICAgICAgIG5vZGUudGFnID0gdGFnTmFtZTtcbiAgICBlbHNlIGlmICghdGFnT2JqLmRlZmF1bHQpXG4gICAgICAgIG5vZGUudGFnID0gdGFnT2JqLnRhZztcbiAgICBpZiAocmVmKVxuICAgICAgICByZWYubm9kZSA9IG5vZGU7XG4gICAgcmV0dXJuIG5vZGU7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU5vZGUgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi4vZG9jL2NyZWF0ZU5vZGUuanMnO1xuaW1wb3J0IHsgaXNOb2RlLCBpc1BhaXIsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IE5vZGVCYXNlIH0gZnJvbSAnLi9Ob2RlLmpzJztcblxuZnVuY3Rpb24gY29sbGVjdGlvbkZyb21QYXRoKHNjaGVtYSwgcGF0aCwgdmFsdWUpIHtcbiAgICBsZXQgdiA9IHZhbHVlO1xuICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIGNvbnN0IGsgPSBwYXRoW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGsgPT09ICdudW1iZXInICYmIE51bWJlci5pc0ludGVnZXIoaykgJiYgayA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gW107XG4gICAgICAgICAgICBhW2tdID0gdjtcbiAgICAgICAgICAgIHYgPSBhO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdiA9IG5ldyBNYXAoW1trLCB2XV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVOb2RlKHYsIHVuZGVmaW5lZCwge1xuICAgICAgICBhbGlhc0R1cGxpY2F0ZU9iamVjdHM6IGZhbHNlLFxuICAgICAgICBrZWVwVW5kZWZpbmVkOiBmYWxzZSxcbiAgICAgICAgb25BbmNob3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgcGxlYXNlIHJlcG9ydCBhIGJ1Zy4nKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2NoZW1hLFxuICAgICAgICBzb3VyY2VPYmplY3RzOiBuZXcgTWFwKClcbiAgICB9KTtcbn1cbi8vIFR5cGUgZ3VhcmQgaXMgaW50ZW50aW9uYWxseSBhIGxpdHRsZSB3cm9uZyBzbyBhcyB0byBiZSBtb3JlIHVzZWZ1bCxcbi8vIGFzIGl0IGRvZXMgbm90IGNvdmVyIHVudHlwYWJsZSBlbXB0eSBub24tc3RyaW5nIGl0ZXJhYmxlcyAoZS5nLiBbXSkuXG5jb25zdCBpc0VtcHR5UGF0aCA9IChwYXRoKSA9PiBwYXRoID09IG51bGwgfHxcbiAgICAodHlwZW9mIHBhdGggPT09ICdvYmplY3QnICYmICEhcGF0aFtTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUpO1xuY2xhc3MgQ29sbGVjdGlvbiBleHRlbmRzIE5vZGVCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBzY2hlbWEpIHtcbiAgICAgICAgc3VwZXIodHlwZSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc2NoZW1hJywge1xuICAgICAgICAgICAgdmFsdWU6IHNjaGVtYSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjaGVtYSAtIElmIGRlZmluZWQsIG92ZXJ3cml0ZXMgdGhlIG9yaWdpbmFsJ3Mgc2NoZW1hXG4gICAgICovXG4gICAgY2xvbmUoc2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO1xuICAgICAgICBpZiAoc2NoZW1hKVxuICAgICAgICAgICAgY29weS5zY2hlbWEgPSBzY2hlbWE7XG4gICAgICAgIGNvcHkuaXRlbXMgPSBjb3B5Lml0ZW1zLm1hcChpdCA9PiBpc05vZGUoaXQpIHx8IGlzUGFpcihpdCkgPyBpdC5jbG9uZShzY2hlbWEpIDogaXQpO1xuICAgICAgICBpZiAodGhpcy5yYW5nZSlcbiAgICAgICAgICAgIGNvcHkucmFuZ2UgPSB0aGlzLnJhbmdlLnNsaWNlKCk7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgdmFsdWUgdG8gdGhlIGNvbGxlY3Rpb24uIEZvciBgISFtYXBgIGFuZCBgISFvbWFwYCB0aGUgdmFsdWUgbXVzdFxuICAgICAqIGJlIGEgUGFpciBpbnN0YW5jZSBvciBhIGB7IGtleSwgdmFsdWUgfWAgb2JqZWN0LCB3aGljaCBtYXkgbm90IGhhdmUgYSBrZXlcbiAgICAgKiB0aGF0IGFscmVhZHkgZXhpc3RzIGluIHRoZSBtYXAuXG4gICAgICovXG4gICAgYWRkSW4ocGF0aCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGlzRW1wdHlQYXRoKHBhdGgpKVxuICAgICAgICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICAgICAgaWYgKGlzQ29sbGVjdGlvbihub2RlKSlcbiAgICAgICAgICAgICAgICBub2RlLmFkZEluKHJlc3QsIHZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnNjaGVtYSlcbiAgICAgICAgICAgICAgICB0aGlzLnNldChrZXksIGNvbGxlY3Rpb25Gcm9tUGF0aCh0aGlzLnNjaGVtYSwgcmVzdCwgdmFsdWUpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2tleX0uIFJlbWFpbmluZyBwYXRoOiAke3Jlc3R9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGNvbGxlY3Rpb24uXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBpdGVtIHdhcyBmb3VuZCBhbmQgcmVtb3ZlZC5cbiAgICAgKi9cbiAgICBkZWxldGVJbihwYXRoKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICBpZiAoaXNDb2xsZWN0aW9uKG5vZGUpKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZGVsZXRlSW4ocmVzdCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7a2V5fS4gUmVtYWluaW5nIHBhdGg6ICR7cmVzdH1gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpdGVtIGF0IGBrZXlgLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuIEJ5IGRlZmF1bHQgdW53cmFwc1xuICAgICAqIHNjYWxhciB2YWx1ZXMgZnJvbSB0aGVpciBzdXJyb3VuZGluZyBub2RlOyB0byBkaXNhYmxlIHNldCBga2VlcFNjYWxhcmAgdG9cbiAgICAgKiBgdHJ1ZWAgKGNvbGxlY3Rpb25zIGFyZSBhbHdheXMgcmV0dXJuZWQgaW50YWN0KS5cbiAgICAgKi9cbiAgICBnZXRJbihwYXRoLCBrZWVwU2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0KGtleSwgdHJ1ZSk7XG4gICAgICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcihub2RlKSA/IG5vZGUudmFsdWUgOiBub2RlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKG5vZGUpID8gbm9kZS5nZXRJbihyZXN0LCBrZWVwU2NhbGFyKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFzQWxsTnVsbFZhbHVlcyhhbGxvd1NjYWxhcikge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5ldmVyeShub2RlID0+IHtcbiAgICAgICAgICAgIGlmICghaXNQYWlyKG5vZGUpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBub2RlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIChuID09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAoYWxsb3dTY2FsYXIgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNTY2FsYXIobikgJiZcbiAgICAgICAgICAgICAgICAgICAgbi52YWx1ZSA9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICFuLmNvbW1lbnRCZWZvcmUgJiZcbiAgICAgICAgICAgICAgICAgICAgIW4uY29tbWVudCAmJlxuICAgICAgICAgICAgICAgICAgICAhbi50YWcpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY29sbGVjdGlvbiBpbmNsdWRlcyBhIHZhbHVlIHdpdGggdGhlIGtleSBga2V5YC5cbiAgICAgKi9cbiAgICBoYXNJbihwYXRoKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzKGtleSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKG5vZGUpID8gbm9kZS5oYXNJbihyZXN0KSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgaW4gdGhpcyBjb2xsZWN0aW9uLiBGb3IgYCEhc2V0YCwgYHZhbHVlYCBuZWVkcyB0byBiZSBhXG4gICAgICogYm9vbGVhbiB0byBhZGQvcmVtb3ZlIHRoZSBpdGVtIGZyb20gdGhlIHNldC5cbiAgICAgKi9cbiAgICBzZXRJbihwYXRoLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBba2V5LCAuLi5yZXN0XSA9IHBhdGg7XG4gICAgICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5nZXQoa2V5LCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRJbihyZXN0LCB2YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIGlmIChub2RlID09PSB1bmRlZmluZWQgJiYgdGhpcy5zY2hlbWEpXG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCBjb2xsZWN0aW9uRnJvbVBhdGgodGhpcy5zY2hlbWEsIHJlc3QsIHZhbHVlKSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtrZXl9LiBSZW1haW5pbmcgcGF0aDogJHtyZXN0fWApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBDb2xsZWN0aW9uLCBjb2xsZWN0aW9uRnJvbVBhdGgsIGlzRW1wdHlQYXRoIH07XG4iLCAiLyoqXG4gKiBTdHJpbmdpZmllcyBhIGNvbW1lbnQuXG4gKlxuICogRW1wdHkgY29tbWVudCBsaW5lcyBhcmUgbGVmdCBlbXB0eSxcbiAqIGxpbmVzIGNvbnNpc3Rpbmcgb2YgYSBzaW5nbGUgc3BhY2UgYXJlIHJlcGxhY2VkIGJ5IGAjYCxcbiAqIGFuZCBhbGwgb3RoZXIgbGluZXMgYXJlIHByZWZpeGVkIHdpdGggYSBgI2AuXG4gKi9cbmNvbnN0IHN0cmluZ2lmeUNvbW1lbnQgPSAoc3RyKSA9PiBzdHIucmVwbGFjZSgvXig/ISQpKD86ICQpPy9nbSwgJyMnKTtcbmZ1bmN0aW9uIGluZGVudENvbW1lbnQoY29tbWVudCwgaW5kZW50KSB7XG4gICAgaWYgKC9eXFxuKyQvLnRlc3QoY29tbWVudCkpXG4gICAgICAgIHJldHVybiBjb21tZW50LnN1YnN0cmluZygxKTtcbiAgICByZXR1cm4gaW5kZW50ID8gY29tbWVudC5yZXBsYWNlKC9eKD8hICokKS9nbSwgaW5kZW50KSA6IGNvbW1lbnQ7XG59XG5jb25zdCBsaW5lQ29tbWVudCA9IChzdHIsIGluZGVudCwgY29tbWVudCkgPT4gc3RyLmVuZHNXaXRoKCdcXG4nKVxuICAgID8gaW5kZW50Q29tbWVudChjb21tZW50LCBpbmRlbnQpXG4gICAgOiBjb21tZW50LmluY2x1ZGVzKCdcXG4nKVxuICAgICAgICA/ICdcXG4nICsgaW5kZW50Q29tbWVudChjb21tZW50LCBpbmRlbnQpXG4gICAgICAgIDogKHN0ci5lbmRzV2l0aCgnICcpID8gJycgOiAnICcpICsgY29tbWVudDtcblxuZXhwb3J0IHsgaW5kZW50Q29tbWVudCwgbGluZUNvbW1lbnQsIHN0cmluZ2lmeUNvbW1lbnQgfTtcbiIsICJjb25zdCBGT0xEX0ZMT1cgPSAnZmxvdyc7XG5jb25zdCBGT0xEX0JMT0NLID0gJ2Jsb2NrJztcbmNvbnN0IEZPTERfUVVPVEVEID0gJ3F1b3RlZCc7XG4vKipcbiAqIFRyaWVzIHRvIGtlZXAgaW5wdXQgYXQgdXAgdG8gYGxpbmVXaWR0aGAgY2hhcmFjdGVycywgc3BsaXR0aW5nIG9ubHkgb24gc3BhY2VzXG4gKiBub3QgZm9sbG93ZWQgYnkgbmV3bGluZXMgb3Igc3BhY2VzIHVubGVzcyBgbW9kZWAgaXMgYCdxdW90ZWQnYC4gTGluZXMgYXJlXG4gKiB0ZXJtaW5hdGVkIHdpdGggYFxcbmAgYW5kIHN0YXJ0ZWQgd2l0aCBgaW5kZW50YC5cbiAqL1xuZnVuY3Rpb24gZm9sZEZsb3dMaW5lcyh0ZXh0LCBpbmRlbnQsIG1vZGUgPSAnZmxvdycsIHsgaW5kZW50QXRTdGFydCwgbGluZVdpZHRoID0gODAsIG1pbkNvbnRlbnRXaWR0aCA9IDIwLCBvbkZvbGQsIG9uT3ZlcmZsb3cgfSA9IHt9KSB7XG4gICAgaWYgKCFsaW5lV2lkdGggfHwgbGluZVdpZHRoIDwgMClcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgaWYgKGxpbmVXaWR0aCA8IG1pbkNvbnRlbnRXaWR0aClcbiAgICAgICAgbWluQ29udGVudFdpZHRoID0gMDtcbiAgICBjb25zdCBlbmRTdGVwID0gTWF0aC5tYXgoMSArIG1pbkNvbnRlbnRXaWR0aCwgMSArIGxpbmVXaWR0aCAtIGluZGVudC5sZW5ndGgpO1xuICAgIGlmICh0ZXh0Lmxlbmd0aCA8PSBlbmRTdGVwKVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICBjb25zdCBmb2xkcyA9IFtdO1xuICAgIGNvbnN0IGVzY2FwZWRGb2xkcyA9IHt9O1xuICAgIGxldCBlbmQgPSBsaW5lV2lkdGggLSBpbmRlbnQubGVuZ3RoO1xuICAgIGlmICh0eXBlb2YgaW5kZW50QXRTdGFydCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGluZGVudEF0U3RhcnQgPiBsaW5lV2lkdGggLSBNYXRoLm1heCgyLCBtaW5Db250ZW50V2lkdGgpKVxuICAgICAgICAgICAgZm9sZHMucHVzaCgwKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZW5kID0gbGluZVdpZHRoIC0gaW5kZW50QXRTdGFydDtcbiAgICB9XG4gICAgbGV0IHNwbGl0ID0gdW5kZWZpbmVkO1xuICAgIGxldCBwcmV2ID0gdW5kZWZpbmVkO1xuICAgIGxldCBvdmVyZmxvdyA9IGZhbHNlO1xuICAgIGxldCBpID0gLTE7XG4gICAgbGV0IGVzY1N0YXJ0ID0gLTE7XG4gICAgbGV0IGVzY0VuZCA9IC0xO1xuICAgIGlmIChtb2RlID09PSBGT0xEX0JMT0NLKSB7XG4gICAgICAgIGkgPSBjb25zdW1lTW9yZUluZGVudGVkTGluZXModGV4dCwgaSwgaW5kZW50Lmxlbmd0aCk7XG4gICAgICAgIGlmIChpICE9PSAtMSlcbiAgICAgICAgICAgIGVuZCA9IGkgKyBlbmRTdGVwO1xuICAgIH1cbiAgICBmb3IgKGxldCBjaDsgKGNoID0gdGV4dFsoaSArPSAxKV0pOykge1xuICAgICAgICBpZiAobW9kZSA9PT0gRk9MRF9RVU9URUQgJiYgY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgZXNjU3RhcnQgPSBpO1xuICAgICAgICAgICAgc3dpdGNoICh0ZXh0W2kgKyAxXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDM7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1UnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVzY0VuZCA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSAnXFxuJykge1xuICAgICAgICAgICAgaWYgKG1vZGUgPT09IEZPTERfQkxPQ0spXG4gICAgICAgICAgICAgICAgaSA9IGNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyh0ZXh0LCBpLCBpbmRlbnQubGVuZ3RoKTtcbiAgICAgICAgICAgIGVuZCA9IGkgKyBpbmRlbnQubGVuZ3RoICsgZW5kU3RlcDtcbiAgICAgICAgICAgIHNwbGl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNoID09PSAnICcgJiZcbiAgICAgICAgICAgICAgICBwcmV2ICYmXG4gICAgICAgICAgICAgICAgcHJldiAhPT0gJyAnICYmXG4gICAgICAgICAgICAgICAgcHJldiAhPT0gJ1xcbicgJiZcbiAgICAgICAgICAgICAgICBwcmV2ICE9PSAnXFx0Jykge1xuICAgICAgICAgICAgICAgIC8vIHNwYWNlIHN1cnJvdW5kZWQgYnkgbm9uLXNwYWNlIGNhbiBiZSByZXBsYWNlZCB3aXRoIG5ld2xpbmUgKyBpbmRlbnRcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gdGV4dFtpICsgMV07XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dCAhPT0gJyAnICYmIG5leHQgIT09ICdcXG4nICYmIG5leHQgIT09ICdcXHQnKVxuICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaSA+PSBlbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9sZHMucHVzaChzcGxpdCk7XG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IHNwbGl0ICsgZW5kU3RlcDtcbiAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT09IEZPTERfUVVPVEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoaXRlLXNwYWNlIGNvbGxlY3RlZCBhdCBlbmQgbWF5IHN0cmV0Y2ggcGFzdCBsaW5lV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZXYgPT09ICcgJyB8fCBwcmV2ID09PSAnXFx0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0WyhpICs9IDEpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBBY2NvdW50IGZvciBuZXdsaW5lIGVzY2FwZSwgYnV0IGRvbid0IGJyZWFrIHByZWNlZGluZyBlc2NhcGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaiA9IGkgPiBlc2NFbmQgKyAxID8gaSAtIDIgOiBlc2NTdGFydCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIC8vIEJhaWwgb3V0IGlmIGxpbmVXaWR0aCAmIG1pbkNvbnRlbnRXaWR0aCBhcmUgc2hvcnRlciB0aGFuIGFuIGVzY2FwZSBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVzY2FwZWRGb2xkc1tqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICBmb2xkcy5wdXNoKGopO1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVkRm9sZHNbal0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBlbmQgPSBqICsgZW5kU3RlcDtcbiAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHByZXYgPSBjaDtcbiAgICB9XG4gICAgaWYgKG92ZXJmbG93ICYmIG9uT3ZlcmZsb3cpXG4gICAgICAgIG9uT3ZlcmZsb3coKTtcbiAgICBpZiAoZm9sZHMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICBpZiAob25Gb2xkKVxuICAgICAgICBvbkZvbGQoKTtcbiAgICBsZXQgcmVzID0gdGV4dC5zbGljZSgwLCBmb2xkc1swXSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb2xkcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBmb2xkID0gZm9sZHNbaV07XG4gICAgICAgIGNvbnN0IGVuZCA9IGZvbGRzW2kgKyAxXSB8fCB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKGZvbGQgPT09IDApXG4gICAgICAgICAgICByZXMgPSBgXFxuJHtpbmRlbnR9JHt0ZXh0LnNsaWNlKDAsIGVuZCl9YDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gRk9MRF9RVU9URUQgJiYgZXNjYXBlZEZvbGRzW2ZvbGRdKVxuICAgICAgICAgICAgICAgIHJlcyArPSBgJHt0ZXh0W2ZvbGRdfVxcXFxgO1xuICAgICAgICAgICAgcmVzICs9IGBcXG4ke2luZGVudH0ke3RleHQuc2xpY2UoZm9sZCArIDEsIGVuZCl9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBQcmVzdW1lcyBgaSArIDFgIGlzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmVcbiAqIEByZXR1cm5zIGluZGV4IG9mIGxhc3QgbmV3bGluZSBpbiBtb3JlLWluZGVudGVkIGJsb2NrXG4gKi9cbmZ1bmN0aW9uIGNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyh0ZXh0LCBpLCBpbmRlbnQpIHtcbiAgICBsZXQgZW5kID0gaTtcbiAgICBsZXQgc3RhcnQgPSBpICsgMTtcbiAgICBsZXQgY2ggPSB0ZXh0W3N0YXJ0XTtcbiAgICB3aGlsZSAoY2ggPT09ICcgJyB8fCBjaCA9PT0gJ1xcdCcpIHtcbiAgICAgICAgaWYgKGkgPCBzdGFydCArIGluZGVudCkge1xuICAgICAgICAgICAgY2ggPSB0ZXh0WysraV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgY2ggPSB0ZXh0WysraV07XG4gICAgICAgICAgICB9IHdoaWxlIChjaCAmJiBjaCAhPT0gJ1xcbicpO1xuICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICBjaCA9IHRleHRbc3RhcnRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbmQ7XG59XG5cbmV4cG9ydCB7IEZPTERfQkxPQ0ssIEZPTERfRkxPVywgRk9MRF9RVU9URUQsIGZvbGRGbG93TGluZXMgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgZm9sZEZsb3dMaW5lcywgRk9MRF9RVU9URUQsIEZPTERfRkxPVywgRk9MRF9CTE9DSyB9IGZyb20gJy4vZm9sZEZsb3dMaW5lcy5qcyc7XG5cbmNvbnN0IGdldEZvbGRPcHRpb25zID0gKGN0eCwgaXNCbG9jaykgPT4gKHtcbiAgICBpbmRlbnRBdFN0YXJ0OiBpc0Jsb2NrID8gY3R4LmluZGVudC5sZW5ndGggOiBjdHguaW5kZW50QXRTdGFydCxcbiAgICBsaW5lV2lkdGg6IGN0eC5vcHRpb25zLmxpbmVXaWR0aCxcbiAgICBtaW5Db250ZW50V2lkdGg6IGN0eC5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aFxufSk7XG4vLyBBbHNvIGNoZWNrcyBmb3IgbGluZXMgc3RhcnRpbmcgd2l0aCAlLCBhcyBwYXJzaW5nIHRoZSBvdXRwdXQgYXMgWUFNTCAxLjEgd2lsbFxuLy8gcHJlc3VtZSB0aGF0J3Mgc3RhcnRpbmcgYSBuZXcgZG9jdW1lbnQuXG5jb25zdCBjb250YWluc0RvY3VtZW50TWFya2VyID0gKHN0cikgPT4gL14oJXwtLS18XFwuXFwuXFwuKS9tLnRlc3Qoc3RyKTtcbmZ1bmN0aW9uIGxpbmVMZW5ndGhPdmVyTGltaXQoc3RyLCBsaW5lV2lkdGgsIGluZGVudExlbmd0aCkge1xuICAgIGlmICghbGluZVdpZHRoIHx8IGxpbmVXaWR0aCA8IDApXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsaW1pdCA9IGxpbmVXaWR0aCAtIGluZGVudExlbmd0aDtcbiAgICBjb25zdCBzdHJMZW4gPSBzdHIubGVuZ3RoO1xuICAgIGlmIChzdHJMZW4gPD0gbGltaXQpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMCwgc3RhcnQgPSAwOyBpIDwgc3RyTGVuOyArK2kpIHtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIGlmIChpIC0gc3RhcnQgPiBsaW1pdClcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICBpZiAoc3RyTGVuIC0gc3RhcnQgPD0gbGltaXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZG91YmxlUXVvdGVkU3RyaW5nKHZhbHVlLCBjdHgpIHtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGlmIChjdHgub3B0aW9ucy5kb3VibGVRdW90ZWRBc0pTT04pXG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIGNvbnN0IHsgaW1wbGljaXRLZXkgfSA9IGN0eDtcbiAgICBjb25zdCBtaW5NdWx0aUxpbmVMZW5ndGggPSBjdHgub3B0aW9ucy5kb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGg7XG4gICAgY29uc3QgaW5kZW50ID0gY3R4LmluZGVudCB8fCAoY29udGFpbnNEb2N1bWVudE1hcmtlcih2YWx1ZSkgPyAnICAnIDogJycpO1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBsZXQgc3RhcnQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwLCBjaCA9IGpzb25baV07IGNoOyBjaCA9IGpzb25bKytpXSkge1xuICAgICAgICBpZiAoY2ggPT09ICcgJyAmJiBqc29uW2kgKyAxXSA9PT0gJ1xcXFwnICYmIGpzb25baSArIDJdID09PSAnbicpIHtcbiAgICAgICAgICAgIC8vIHNwYWNlIGJlZm9yZSBuZXdsaW5lIG5lZWRzIHRvIGJlIGVzY2FwZWQgdG8gbm90IGJlIGZvbGRlZFxuICAgICAgICAgICAgc3RyICs9IGpzb24uc2xpY2Uoc3RhcnQsIGkpICsgJ1xcXFwgJztcbiAgICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaTtcbiAgICAgICAgICAgIGNoID0gJ1xcXFwnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcXFwnKVxuICAgICAgICAgICAgc3dpdGNoIChqc29uW2kgKyAxXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0ganNvbi5zbGljZShzdGFydCwgaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0ganNvbi5zdWJzdHIoaSArIDIsIDQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMDAwMCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXDAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcwMDA3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcYSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAwMGInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFx2JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMDAxYic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcwMDg1JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcTic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAwYTAnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFxfJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMjAyOCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXEwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcyMDI5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcUCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlLnN1YnN0cigwLCAyKSA9PT0gJzAwJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXHgnICsgY29kZS5zdWJzdHIoMik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBqc29uLnN1YnN0cihpLCA2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbic6XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbXBsaWNpdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAganNvbltpICsgMl0gPT09ICdcIicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb24ubGVuZ3RoIDwgbWluTXVsdGlMaW5lTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb2xkaW5nIHdpbGwgZWF0IGZpcnN0IG5ld2xpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBqc29uLnNsaWNlKHN0YXJ0LCBpKSArICdcXG5cXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGpzb25baSArIDJdID09PSAnXFxcXCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uW2kgKyAzXSA9PT0gJ24nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbltpICsgNF0gIT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IGluZGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwYWNlIGFmdGVyIG5ld2xpbmUgbmVlZHMgdG8gYmUgZXNjYXBlZCB0byBub3QgYmUgZm9sZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbltpICsgMl0gPT09ICcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpICsgMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIHN0ciA9IHN0YXJ0ID8gc3RyICsganNvbi5zbGljZShzdGFydCkgOiBqc29uO1xuICAgIHJldHVybiBpbXBsaWNpdEtleVxuICAgICAgICA/IHN0clxuICAgICAgICA6IGZvbGRGbG93TGluZXMoc3RyLCBpbmRlbnQsIEZPTERfUVVPVEVELCBnZXRGb2xkT3B0aW9ucyhjdHgsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBzaW5nbGVRdW90ZWRTdHJpbmcodmFsdWUsIGN0eCkge1xuICAgIGlmIChjdHgub3B0aW9ucy5zaW5nbGVRdW90ZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgKGN0eC5pbXBsaWNpdEtleSAmJiB2YWx1ZS5pbmNsdWRlcygnXFxuJykpIHx8XG4gICAgICAgIC9bIFxcdF1cXG58XFxuWyBcXHRdLy50ZXN0KHZhbHVlKSAvLyBzaW5nbGUgcXVvdGVkIHN0cmluZyBjYW4ndCBoYXZlIGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZSBhcm91bmQgbmV3bGluZVxuICAgIClcbiAgICAgICAgcmV0dXJuIGRvdWJsZVF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KTtcbiAgICBjb25zdCBpbmRlbnQgPSBjdHguaW5kZW50IHx8IChjb250YWluc0RvY3VtZW50TWFya2VyKHZhbHVlKSA/ICcgICcgOiAnJyk7XG4gICAgY29uc3QgcmVzID0gXCInXCIgKyB2YWx1ZS5yZXBsYWNlKC8nL2csIFwiJydcIikucmVwbGFjZSgvXFxuKy9nLCBgJCZcXG4ke2luZGVudH1gKSArIFwiJ1wiO1xuICAgIHJldHVybiBjdHguaW1wbGljaXRLZXlcbiAgICAgICAgPyByZXNcbiAgICAgICAgOiBmb2xkRmxvd0xpbmVzKHJlcywgaW5kZW50LCBGT0xEX0ZMT1csIGdldEZvbGRPcHRpb25zKGN0eCwgZmFsc2UpKTtcbn1cbmZ1bmN0aW9uIHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KSB7XG4gICAgY29uc3QgeyBzaW5nbGVRdW90ZSB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgbGV0IHFzO1xuICAgIGlmIChzaW5nbGVRdW90ZSA9PT0gZmFsc2UpXG4gICAgICAgIHFzID0gZG91YmxlUXVvdGVkU3RyaW5nO1xuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBoYXNEb3VibGUgPSB2YWx1ZS5pbmNsdWRlcygnXCInKTtcbiAgICAgICAgY29uc3QgaGFzU2luZ2xlID0gdmFsdWUuaW5jbHVkZXMoXCInXCIpO1xuICAgICAgICBpZiAoaGFzRG91YmxlICYmICFoYXNTaW5nbGUpXG4gICAgICAgICAgICBxcyA9IHNpbmdsZVF1b3RlZFN0cmluZztcbiAgICAgICAgZWxzZSBpZiAoaGFzU2luZ2xlICYmICFoYXNEb3VibGUpXG4gICAgICAgICAgICBxcyA9IGRvdWJsZVF1b3RlZFN0cmluZztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcXMgPSBzaW5nbGVRdW90ZSA/IHNpbmdsZVF1b3RlZFN0cmluZyA6IGRvdWJsZVF1b3RlZFN0cmluZztcbiAgICB9XG4gICAgcmV0dXJuIHFzKHZhbHVlLCBjdHgpO1xufVxuLy8gVGhlIG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXZvaWRzIGEgcG9seW5vbWlhbCBzZWFyY2gsXG4vLyBidXQgaXNuJ3Qgc3VwcG9ydGVkIHlldCBvbiBTYWZhcmk6IGh0dHBzOi8vY2FuaXVzZS5jb20vanMtcmVnZXhwLWxvb2tiZWhpbmRcbmxldCBibG9ja0VuZE5ld2xpbmVzO1xudHJ5IHtcbiAgICBibG9ja0VuZE5ld2xpbmVzID0gbmV3IFJlZ0V4cCgnKF58KD88IVxcbikpXFxuKyg/IVxcbnwkKScsICdnJyk7XG59XG5jYXRjaCB7XG4gICAgYmxvY2tFbmROZXdsaW5lcyA9IC9cXG4rKD8hXFxufCQpL2c7XG59XG5mdW5jdGlvbiBibG9ja1N0cmluZyh7IGNvbW1lbnQsIHR5cGUsIHZhbHVlIH0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgIGNvbnN0IHsgYmxvY2tRdW90ZSwgY29tbWVudFN0cmluZywgbGluZVdpZHRoIH0gPSBjdHgub3B0aW9ucztcbiAgICAvLyAxLiBCbG9jayBjYW4ndCBlbmQgaW4gd2hpdGVzcGFjZSB1bmxlc3MgdGhlIGxhc3QgbGluZSBpcyBub24tZW1wdHkuXG4gICAgLy8gMi4gU3RyaW5ncyBjb25zaXN0aW5nIG9mIG9ubHkgd2hpdGVzcGFjZSBhcmUgYmVzdCByZW5kZXJlZCBleHBsaWNpdGx5LlxuICAgIGlmICghYmxvY2tRdW90ZSB8fCAvXFxuW1xcdCBdKyQvLnRlc3QodmFsdWUpIHx8IC9eXFxzKiQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBxdW90ZWRTdHJpbmcodmFsdWUsIGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IGluZGVudCA9IGN0eC5pbmRlbnQgfHxcbiAgICAgICAgKGN0eC5mb3JjZUJsb2NrSW5kZW50IHx8IGNvbnRhaW5zRG9jdW1lbnRNYXJrZXIodmFsdWUpID8gJyAgJyA6ICcnKTtcbiAgICBjb25zdCBsaXRlcmFsID0gYmxvY2tRdW90ZSA9PT0gJ2xpdGVyYWwnXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGJsb2NrUXVvdGUgPT09ICdmb2xkZWQnIHx8IHR5cGUgPT09IFNjYWxhci5CTE9DS19GT0xERURcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDogdHlwZSA9PT0gU2NhbGFyLkJMT0NLX0xJVEVSQUxcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6ICFsaW5lTGVuZ3RoT3ZlckxpbWl0KHZhbHVlLCBsaW5lV2lkdGgsIGluZGVudC5sZW5ndGgpO1xuICAgIGlmICghdmFsdWUpXG4gICAgICAgIHJldHVybiBsaXRlcmFsID8gJ3xcXG4nIDogJz5cXG4nO1xuICAgIC8vIGRldGVybWluZSBjaG9tcGluZyBmcm9tIHdoaXRlc3BhY2UgYXQgdmFsdWUgZW5kXG4gICAgbGV0IGNob21wO1xuICAgIGxldCBlbmRTdGFydDtcbiAgICBmb3IgKGVuZFN0YXJ0ID0gdmFsdWUubGVuZ3RoOyBlbmRTdGFydCA+IDA7IC0tZW5kU3RhcnQpIHtcbiAgICAgICAgY29uc3QgY2ggPSB2YWx1ZVtlbmRTdGFydCAtIDFdO1xuICAgICAgICBpZiAoY2ggIT09ICdcXG4nICYmIGNoICE9PSAnXFx0JyAmJiBjaCAhPT0gJyAnKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxldCBlbmQgPSB2YWx1ZS5zdWJzdHJpbmcoZW5kU3RhcnQpO1xuICAgIGNvbnN0IGVuZE5sUG9zID0gZW5kLmluZGV4T2YoJ1xcbicpO1xuICAgIGlmIChlbmRObFBvcyA9PT0gLTEpIHtcbiAgICAgICAgY2hvbXAgPSAnLSc7IC8vIHN0cmlwXG4gICAgfVxuICAgIGVsc2UgaWYgKHZhbHVlID09PSBlbmQgfHwgZW5kTmxQb3MgIT09IGVuZC5sZW5ndGggLSAxKSB7XG4gICAgICAgIGNob21wID0gJysnOyAvLyBrZWVwXG4gICAgICAgIGlmIChvbkNob21wS2VlcClcbiAgICAgICAgICAgIG9uQ2hvbXBLZWVwKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjaG9tcCA9ICcnOyAvLyBjbGlwXG4gICAgfVxuICAgIGlmIChlbmQpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtZW5kLmxlbmd0aCk7XG4gICAgICAgIGlmIChlbmRbZW5kLmxlbmd0aCAtIDFdID09PSAnXFxuJylcbiAgICAgICAgICAgIGVuZCA9IGVuZC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGVuZCA9IGVuZC5yZXBsYWNlKGJsb2NrRW5kTmV3bGluZXMsIGAkJiR7aW5kZW50fWApO1xuICAgIH1cbiAgICAvLyBkZXRlcm1pbmUgaW5kZW50IGluZGljYXRvciBmcm9tIHdoaXRlc3BhY2UgYXQgdmFsdWUgc3RhcnRcbiAgICBsZXQgc3RhcnRXaXRoU3BhY2UgPSBmYWxzZTtcbiAgICBsZXQgc3RhcnRFbmQ7XG4gICAgbGV0IHN0YXJ0TmxQb3MgPSAtMTtcbiAgICBmb3IgKHN0YXJ0RW5kID0gMDsgc3RhcnRFbmQgPCB2YWx1ZS5sZW5ndGg7ICsrc3RhcnRFbmQpIHtcbiAgICAgICAgY29uc3QgY2ggPSB2YWx1ZVtzdGFydEVuZF07XG4gICAgICAgIGlmIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgc3RhcnRXaXRoU3BhY2UgPSB0cnVlO1xuICAgICAgICBlbHNlIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICBzdGFydE5sUG9zID0gc3RhcnRFbmQ7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgc3RhcnQgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnRObFBvcyA8IHN0YXJ0RW5kID8gc3RhcnRObFBvcyArIDEgOiBzdGFydEVuZCk7XG4gICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKHN0YXJ0Lmxlbmd0aCk7XG4gICAgICAgIHN0YXJ0ID0gc3RhcnQucmVwbGFjZSgvXFxuKy9nLCBgJCYke2luZGVudH1gKTtcbiAgICB9XG4gICAgY29uc3QgaW5kZW50U2l6ZSA9IGluZGVudCA/ICcyJyA6ICcxJzsgLy8gcm9vdCBpcyBhdCAtMVxuICAgIGxldCBoZWFkZXIgPSAobGl0ZXJhbCA/ICd8JyA6ICc+JykgKyAoc3RhcnRXaXRoU3BhY2UgPyBpbmRlbnRTaXplIDogJycpICsgY2hvbXA7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgaGVhZGVyICs9ICcgJyArIGNvbW1lbnRTdHJpbmcoY29tbWVudC5yZXBsYWNlKC8gP1tcXHJcXG5dKy9nLCAnICcpKTtcbiAgICAgICAgaWYgKG9uQ29tbWVudClcbiAgICAgICAgICAgIG9uQ29tbWVudCgpO1xuICAgIH1cbiAgICBpZiAobGl0ZXJhbCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZywgYCQmJHtpbmRlbnR9YCk7XG4gICAgICAgIHJldHVybiBgJHtoZWFkZXJ9XFxuJHtpbmRlbnR9JHtzdGFydH0ke3ZhbHVlfSR7ZW5kfWA7XG4gICAgfVxuICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgLnJlcGxhY2UoL1xcbisvZywgJ1xcbiQmJylcbiAgICAgICAgLnJlcGxhY2UoLyg/Ol58XFxuKShbXFx0IF0uKikoPzooW1xcblxcdCBdKilcXG4oPyFbXFxuXFx0IF0pKT8vZywgJyQxJDInKSAvLyBtb3JlLWluZGVudGVkIGxpbmVzIGFyZW4ndCBmb2xkZWRcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgXiBtb3JlLWluZC4gXiBlbXB0eSAgICAgXiBjYXB0dXJlIG5leHQgZW1wdHkgbGluZXMgb25seSBhdCBlbmQgb2YgaW5kZW50XG4gICAgICAgIC5yZXBsYWNlKC9cXG4rL2csIGAkJiR7aW5kZW50fWApO1xuICAgIGNvbnN0IGJvZHkgPSBmb2xkRmxvd0xpbmVzKGAke3N0YXJ0fSR7dmFsdWV9JHtlbmR9YCwgaW5kZW50LCBGT0xEX0JMT0NLLCBnZXRGb2xkT3B0aW9ucyhjdHgsIHRydWUpKTtcbiAgICByZXR1cm4gYCR7aGVhZGVyfVxcbiR7aW5kZW50fSR7Ym9keX1gO1xufVxuZnVuY3Rpb24gcGxhaW5TdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gaXRlbTtcbiAgICBjb25zdCB7IGFjdHVhbFN0cmluZywgaW1wbGljaXRLZXksIGluZGVudCwgaW5kZW50U3RlcCwgaW5GbG93IH0gPSBjdHg7XG4gICAgaWYgKChpbXBsaWNpdEtleSAmJiB2YWx1ZS5pbmNsdWRlcygnXFxuJykpIHx8XG4gICAgICAgIChpbkZsb3cgJiYgL1tbXFxde30sXS8udGVzdCh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiBxdW90ZWRTdHJpbmcodmFsdWUsIGN0eCk7XG4gICAgfVxuICAgIGlmICghdmFsdWUgfHxcbiAgICAgICAgL15bXFxuXFx0ICxbXFxde30jJiohfD4nXCIlQGBdfF5bPy1dJHxeWz8tXVsgXFx0XXxbXFxuOl1bIFxcdF18WyBcXHRdXFxufFtcXG5cXHQgXSN8W1xcblxcdCA6XSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIC8vIG5vdCBhbGxvd2VkOlxuICAgICAgICAvLyAtIGVtcHR5IHN0cmluZywgJy0nIG9yICc/J1xuICAgICAgICAvLyAtIHN0YXJ0IHdpdGggYW4gaW5kaWNhdG9yIGNoYXJhY3RlciAoZXhjZXB0IFs/Oi1dKSBvciAvWz8tXSAvXG4gICAgICAgIC8vIC0gJ1xcbiAnLCAnOiAnIG9yICcgXFxuJyBhbnl3aGVyZVxuICAgICAgICAvLyAtICcjJyBub3QgcHJlY2VkZWQgYnkgYSBub24tc3BhY2UgY2hhclxuICAgICAgICAvLyAtIGVuZCB3aXRoICcgJyBvciAnOidcbiAgICAgICAgcmV0dXJuIGltcGxpY2l0S2V5IHx8IGluRmxvdyB8fCAhdmFsdWUuaW5jbHVkZXMoJ1xcbicpXG4gICAgICAgICAgICA/IHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KVxuICAgICAgICAgICAgOiBibG9ja1N0cmluZyhpdGVtLCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgIH1cbiAgICBpZiAoIWltcGxpY2l0S2V5ICYmXG4gICAgICAgICFpbkZsb3cgJiZcbiAgICAgICAgdHlwZSAhPT0gU2NhbGFyLlBMQUlOICYmXG4gICAgICAgIHZhbHVlLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICAvLyBXaGVyZSBhbGxvd2VkICYgdHlwZSBub3Qgc2V0IGV4cGxpY2l0bHksIHByZWZlciBibG9jayBzdHlsZSBmb3IgbXVsdGlsaW5lIHN0cmluZ3NcbiAgICAgICAgcmV0dXJuIGJsb2NrU3RyaW5nKGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgfVxuICAgIGlmIChjb250YWluc0RvY3VtZW50TWFya2VyKHZhbHVlKSkge1xuICAgICAgICBpZiAoaW5kZW50ID09PSAnJykge1xuICAgICAgICAgICAgY3R4LmZvcmNlQmxvY2tJbmRlbnQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGJsb2NrU3RyaW5nKGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW1wbGljaXRLZXkgJiYgaW5kZW50ID09PSBpbmRlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm4gcXVvdGVkU3RyaW5nKHZhbHVlLCBjdHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHN0ciA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZywgYCQmXFxuJHtpbmRlbnR9YCk7XG4gICAgLy8gVmVyaWZ5IHRoYXQgb3V0cHV0IHdpbGwgYmUgcGFyc2VkIGFzIGEgc3RyaW5nLCBhcyBlLmcuIHBsYWluIG51bWJlcnMgYW5kXG4gICAgLy8gYm9vbGVhbnMgZ2V0IHBhcnNlZCB3aXRoIHRob3NlIHR5cGVzIGluIHYxLjIgKGUuZy4gJzQyJywgJ3RydWUnICYgJzAuOWUtMycpLFxuICAgIC8vIGFuZCBvdGhlcnMgaW4gdjEuMS5cbiAgICBpZiAoYWN0dWFsU3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHRlc3QgPSAodGFnKSA9PiB0YWcuZGVmYXVsdCAmJiB0YWcudGFnICE9PSAndGFnOnlhbWwub3JnLDIwMDI6c3RyJyAmJiB0YWcudGVzdD8udGVzdChzdHIpO1xuICAgICAgICBjb25zdCB7IGNvbXBhdCwgdGFncyB9ID0gY3R4LmRvYy5zY2hlbWE7XG4gICAgICAgIGlmICh0YWdzLnNvbWUodGVzdCkgfHwgY29tcGF0Py5zb21lKHRlc3QpKVxuICAgICAgICAgICAgcmV0dXJuIHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KTtcbiAgICB9XG4gICAgcmV0dXJuIGltcGxpY2l0S2V5XG4gICAgICAgID8gc3RyXG4gICAgICAgIDogZm9sZEZsb3dMaW5lcyhzdHIsIGluZGVudCwgRk9MRF9GTE9XLCBnZXRGb2xkT3B0aW9ucyhjdHgsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlTdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyBpbXBsaWNpdEtleSwgaW5GbG93IH0gPSBjdHg7XG4gICAgY29uc3Qgc3MgPSB0eXBlb2YgaXRlbS52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBpdGVtXG4gICAgICAgIDogT2JqZWN0LmFzc2lnbih7fSwgaXRlbSwgeyB2YWx1ZTogU3RyaW5nKGl0ZW0udmFsdWUpIH0pO1xuICAgIGxldCB7IHR5cGUgfSA9IGl0ZW07XG4gICAgaWYgKHR5cGUgIT09IFNjYWxhci5RVU9URV9ET1VCTEUpIHtcbiAgICAgICAgLy8gZm9yY2UgZG91YmxlIHF1b3RlcyBvbiBjb250cm9sIGNoYXJhY3RlcnMgJiB1bnBhaXJlZCBzdXJyb2dhdGVzXG4gICAgICAgIGlmICgvW1xceDAwLVxceDA4XFx4MGItXFx4MWZcXHg3Zi1cXHg5ZlxcdXtEODAwfS1cXHV7REZGRn1dL3UudGVzdChzcy52YWx1ZSkpXG4gICAgICAgICAgICB0eXBlID0gU2NhbGFyLlFVT1RFX0RPVUJMRTtcbiAgICB9XG4gICAgY29uc3QgX3N0cmluZ2lmeSA9IChfdHlwZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKF90eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5CTE9DS19GT0xERUQ6XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5CTE9DS19MSVRFUkFMOlxuICAgICAgICAgICAgICAgIHJldHVybiBpbXBsaWNpdEtleSB8fCBpbkZsb3dcbiAgICAgICAgICAgICAgICAgICAgPyBxdW90ZWRTdHJpbmcoc3MudmFsdWUsIGN0eCkgLy8gYmxvY2tzIGFyZSBub3QgdmFsaWQgaW5zaWRlIGZsb3cgY29udGFpbmVyc1xuICAgICAgICAgICAgICAgICAgICA6IGJsb2NrU3RyaW5nKHNzLCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgICAgICAgICAgY2FzZSBTY2FsYXIuUVVPVEVfRE9VQkxFOlxuICAgICAgICAgICAgICAgIHJldHVybiBkb3VibGVRdW90ZWRTdHJpbmcoc3MudmFsdWUsIGN0eCk7XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5RVU9URV9TSU5HTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZVF1b3RlZFN0cmluZyhzcy52YWx1ZSwgY3R4KTtcbiAgICAgICAgICAgIGNhc2UgU2NhbGFyLlBMQUlOOlxuICAgICAgICAgICAgICAgIHJldHVybiBwbGFpblN0cmluZyhzcywgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGxldCByZXMgPSBfc3RyaW5naWZ5KHR5cGUpO1xuICAgIGlmIChyZXMgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0S2V5VHlwZSwgZGVmYXVsdFN0cmluZ1R5cGUgfSA9IGN0eC5vcHRpb25zO1xuICAgICAgICBjb25zdCB0ID0gKGltcGxpY2l0S2V5ICYmIGRlZmF1bHRLZXlUeXBlKSB8fCBkZWZhdWx0U3RyaW5nVHlwZTtcbiAgICAgICAgcmVzID0gX3N0cmluZ2lmeSh0KTtcbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke3R9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeVN0cmluZyB9O1xuIiwgImltcG9ydCB7IGFuY2hvcklzVmFsaWQgfSBmcm9tICcuLi9kb2MvYW5jaG9ycy5qcyc7XG5pbXBvcnQgeyBpc1BhaXIsIGlzQWxpYXMsIGlzTm9kZSwgaXNTY2FsYXIsIGlzQ29sbGVjdGlvbiB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeUNvbW1lbnQgfSBmcm9tICcuL3N0cmluZ2lmeUNvbW1lbnQuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5U3RyaW5nIH0gZnJvbSAnLi9zdHJpbmdpZnlTdHJpbmcuanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVTdHJpbmdpZnlDb250ZXh0KGRvYywgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBibG9ja1F1b3RlOiB0cnVlLFxuICAgICAgICBjb21tZW50U3RyaW5nOiBzdHJpbmdpZnlDb21tZW50LFxuICAgICAgICBkZWZhdWx0S2V5VHlwZTogbnVsbCxcbiAgICAgICAgZGVmYXVsdFN0cmluZ1R5cGU6ICdQTEFJTicsXG4gICAgICAgIGRpcmVjdGl2ZXM6IG51bGwsXG4gICAgICAgIGRvdWJsZVF1b3RlZEFzSlNPTjogZmFsc2UsXG4gICAgICAgIGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDogNDAsXG4gICAgICAgIGZhbHNlU3RyOiAnZmFsc2UnLFxuICAgICAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IHRydWUsXG4gICAgICAgIGluZGVudFNlcTogdHJ1ZSxcbiAgICAgICAgbGluZVdpZHRoOiA4MCxcbiAgICAgICAgbWluQ29udGVudFdpZHRoOiAyMCxcbiAgICAgICAgbnVsbFN0cjogJ251bGwnLFxuICAgICAgICBzaW1wbGVLZXlzOiBmYWxzZSxcbiAgICAgICAgc2luZ2xlUXVvdGU6IG51bGwsXG4gICAgICAgIHRydWVTdHI6ICd0cnVlJyxcbiAgICAgICAgdmVyaWZ5QWxpYXNPcmRlcjogdHJ1ZVxuICAgIH0sIGRvYy5zY2hlbWEudG9TdHJpbmdPcHRpb25zLCBvcHRpb25zKTtcbiAgICBsZXQgaW5GbG93O1xuICAgIHN3aXRjaCAob3B0LmNvbGxlY3Rpb25TdHlsZSkge1xuICAgICAgICBjYXNlICdibG9jayc6XG4gICAgICAgICAgICBpbkZsb3cgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmbG93JzpcbiAgICAgICAgICAgIGluRmxvdyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGluRmxvdyA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGFuY2hvcnM6IG5ldyBTZXQoKSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IG9wdC5mbG93Q29sbGVjdGlvblBhZGRpbmcgPyAnICcgOiAnJyxcbiAgICAgICAgaW5kZW50OiAnJyxcbiAgICAgICAgaW5kZW50U3RlcDogdHlwZW9mIG9wdC5pbmRlbnQgPT09ICdudW1iZXInID8gJyAnLnJlcGVhdChvcHQuaW5kZW50KSA6ICcgICcsXG4gICAgICAgIGluRmxvdyxcbiAgICAgICAgb3B0aW9uczogb3B0XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFRhZ09iamVjdCh0YWdzLCBpdGVtKSB7XG4gICAgaWYgKGl0ZW0udGFnKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gdGFncy5maWx0ZXIodCA9PiB0LnRhZyA9PT0gaXRlbS50YWcpO1xuICAgICAgICBpZiAobWF0Y2gubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiBtYXRjaC5maW5kKHQgPT4gdC5mb3JtYXQgPT09IGl0ZW0uZm9ybWF0KSA/PyBtYXRjaFswXTtcbiAgICB9XG4gICAgbGV0IHRhZ09iaiA9IHVuZGVmaW5lZDtcbiAgICBsZXQgb2JqO1xuICAgIGlmIChpc1NjYWxhcihpdGVtKSkge1xuICAgICAgICBvYmogPSBpdGVtLnZhbHVlO1xuICAgICAgICBsZXQgbWF0Y2ggPSB0YWdzLmZpbHRlcih0ID0+IHQuaWRlbnRpZnk/LihvYmopKTtcbiAgICAgICAgaWYgKG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RNYXRjaCA9IG1hdGNoLmZpbHRlcih0ID0+IHQudGVzdCk7XG4gICAgICAgICAgICBpZiAodGVzdE1hdGNoLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgbWF0Y2ggPSB0ZXN0TWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgdGFnT2JqID1cbiAgICAgICAgICAgIG1hdGNoLmZpbmQodCA9PiB0LmZvcm1hdCA9PT0gaXRlbS5mb3JtYXQpID8/IG1hdGNoLmZpbmQodCA9PiAhdC5mb3JtYXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb2JqID0gaXRlbTtcbiAgICAgICAgdGFnT2JqID0gdGFncy5maW5kKHQgPT4gdC5ub2RlQ2xhc3MgJiYgb2JqIGluc3RhbmNlb2YgdC5ub2RlQ2xhc3MpO1xuICAgIH1cbiAgICBpZiAoIXRhZ09iaikge1xuICAgICAgICBjb25zdCBuYW1lID0gb2JqPy5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyB0eXBlb2Ygb2JqO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhZyBub3QgcmVzb2x2ZWQgZm9yICR7bmFtZX0gdmFsdWVgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ09iajtcbn1cbi8vIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgdmFsdWUgc3RyaW5naWZpZXIgdG8gYWxsb3cgZm9yIGNpcmN1bGFyIGFuY2hvciByZWZzXG5mdW5jdGlvbiBzdHJpbmdpZnlQcm9wcyhub2RlLCB0YWdPYmosIHsgYW5jaG9ycywgZG9jIH0pIHtcbiAgICBpZiAoIWRvYy5kaXJlY3RpdmVzKVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgY29uc3QgcHJvcHMgPSBbXTtcbiAgICBjb25zdCBhbmNob3IgPSAoaXNTY2FsYXIobm9kZSkgfHwgaXNDb2xsZWN0aW9uKG5vZGUpKSAmJiBub2RlLmFuY2hvcjtcbiAgICBpZiAoYW5jaG9yICYmIGFuY2hvcklzVmFsaWQoYW5jaG9yKSkge1xuICAgICAgICBhbmNob3JzLmFkZChhbmNob3IpO1xuICAgICAgICBwcm9wcy5wdXNoKGAmJHthbmNob3J9YCk7XG4gICAgfVxuICAgIGNvbnN0IHRhZyA9IG5vZGUudGFnID8gbm9kZS50YWcgOiB0YWdPYmouZGVmYXVsdCA/IG51bGwgOiB0YWdPYmoudGFnO1xuICAgIGlmICh0YWcpXG4gICAgICAgIHByb3BzLnB1c2goZG9jLmRpcmVjdGl2ZXMudGFnU3RyaW5nKHRhZykpO1xuICAgIHJldHVybiBwcm9wcy5qb2luKCcgJyk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnkoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgaWYgKGlzUGFpcihpdGVtKSlcbiAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICBpZiAoaXNBbGlhcyhpdGVtKSkge1xuICAgICAgICBpZiAoY3R4LmRvYy5kaXJlY3RpdmVzKVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoY3R4KTtcbiAgICAgICAgaWYgKGN0eC5yZXNvbHZlZEFsaWFzZXM/LmhhcyhpdGVtKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ2Fubm90IHN0cmluZ2lmeSBjaXJjdWxhciBzdHJ1Y3R1cmUgd2l0aG91dCBhbGlhcyBub2Rlc2ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0eC5yZXNvbHZlZEFsaWFzZXMpXG4gICAgICAgICAgICAgICAgY3R4LnJlc29sdmVkQWxpYXNlcy5hZGQoaXRlbSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY3R4LnJlc29sdmVkQWxpYXNlcyA9IG5ldyBTZXQoW2l0ZW1dKTtcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlc29sdmUoY3R4LmRvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IHRhZ09iaiA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBub2RlID0gaXNOb2RlKGl0ZW0pXG4gICAgICAgID8gaXRlbVxuICAgICAgICA6IGN0eC5kb2MuY3JlYXRlTm9kZShpdGVtLCB7IG9uVGFnT2JqOiBvID0+ICh0YWdPYmogPSBvKSB9KTtcbiAgICBpZiAoIXRhZ09iailcbiAgICAgICAgdGFnT2JqID0gZ2V0VGFnT2JqZWN0KGN0eC5kb2Muc2NoZW1hLnRhZ3MsIG5vZGUpO1xuICAgIGNvbnN0IHByb3BzID0gc3RyaW5naWZ5UHJvcHMobm9kZSwgdGFnT2JqLCBjdHgpO1xuICAgIGlmIChwcm9wcy5sZW5ndGggPiAwKVxuICAgICAgICBjdHguaW5kZW50QXRTdGFydCA9IChjdHguaW5kZW50QXRTdGFydCA/PyAwKSArIHByb3BzLmxlbmd0aCArIDE7XG4gICAgY29uc3Qgc3RyID0gdHlwZW9mIHRhZ09iai5zdHJpbmdpZnkgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyB0YWdPYmouc3RyaW5naWZ5KG5vZGUsIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcClcbiAgICAgICAgOiBpc1NjYWxhcihub2RlKVxuICAgICAgICAgICAgPyBzdHJpbmdpZnlTdHJpbmcobm9kZSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKVxuICAgICAgICAgICAgOiBub2RlLnRvU3RyaW5nKGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgaWYgKCFwcm9wcylcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICByZXR1cm4gaXNTY2FsYXIobm9kZSkgfHwgc3RyWzBdID09PSAneycgfHwgc3RyWzBdID09PSAnWydcbiAgICAgICAgPyBgJHtwcm9wc30gJHtzdHJ9YFxuICAgICAgICA6IGAke3Byb3BzfVxcbiR7Y3R4LmluZGVudH0ke3N0cn1gO1xufVxuXG5leHBvcnQgeyBjcmVhdGVTdHJpbmdpZnlDb250ZXh0LCBzdHJpbmdpZnkgfTtcbiIsICJpbXBvcnQgeyBpc0NvbGxlY3Rpb24sIGlzTm9kZSwgaXNTY2FsYXIsIGlzU2VxIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmltcG9ydCB7IGxpbmVDb21tZW50LCBpbmRlbnRDb21tZW50IH0gZnJvbSAnLi9zdHJpbmdpZnlDb21tZW50LmpzJztcblxuZnVuY3Rpb24gc3RyaW5naWZ5UGFpcih7IGtleSwgdmFsdWUgfSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyBhbGxOdWxsVmFsdWVzLCBkb2MsIGluZGVudCwgaW5kZW50U3RlcCwgb3B0aW9uczogeyBjb21tZW50U3RyaW5nLCBpbmRlbnRTZXEsIHNpbXBsZUtleXMgfSB9ID0gY3R4O1xuICAgIGxldCBrZXlDb21tZW50ID0gKGlzTm9kZShrZXkpICYmIGtleS5jb21tZW50KSB8fCBudWxsO1xuICAgIGlmIChzaW1wbGVLZXlzKSB7XG4gICAgICAgIGlmIChrZXlDb21tZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dpdGggc2ltcGxlIGtleXMsIGtleSBub2RlcyBjYW5ub3QgaGF2ZSBjb21tZW50cycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NvbGxlY3Rpb24oa2V5KSB8fCAoIWlzTm9kZShrZXkpICYmIHR5cGVvZiBrZXkgPT09ICdvYmplY3QnKSkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gJ1dpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWUnO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IGV4cGxpY2l0S2V5ID0gIXNpbXBsZUtleXMgJiZcbiAgICAgICAgKCFrZXkgfHxcbiAgICAgICAgICAgIChrZXlDb21tZW50ICYmIHZhbHVlID09IG51bGwgJiYgIWN0eC5pbkZsb3cpIHx8XG4gICAgICAgICAgICBpc0NvbGxlY3Rpb24oa2V5KSB8fFxuICAgICAgICAgICAgKGlzU2NhbGFyKGtleSlcbiAgICAgICAgICAgICAgICA/IGtleS50eXBlID09PSBTY2FsYXIuQkxPQ0tfRk9MREVEIHx8IGtleS50eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIGtleSA9PT0gJ29iamVjdCcpKTtcbiAgICBjdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHtcbiAgICAgICAgYWxsTnVsbFZhbHVlczogZmFsc2UsXG4gICAgICAgIGltcGxpY2l0S2V5OiAhZXhwbGljaXRLZXkgJiYgKHNpbXBsZUtleXMgfHwgIWFsbE51bGxWYWx1ZXMpLFxuICAgICAgICBpbmRlbnQ6IGluZGVudCArIGluZGVudFN0ZXBcbiAgICB9KTtcbiAgICBsZXQga2V5Q29tbWVudERvbmUgPSBmYWxzZTtcbiAgICBsZXQgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgbGV0IHN0ciA9IHN0cmluZ2lmeShrZXksIGN0eCwgKCkgPT4gKGtleUNvbW1lbnREb25lID0gdHJ1ZSksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgaWYgKCFleHBsaWNpdEtleSAmJiAhY3R4LmluRmxvdyAmJiBzdHIubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICBpZiAoc2ltcGxlS2V5cylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVycycpO1xuICAgICAgICBleHBsaWNpdEtleSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChjdHguaW5GbG93KSB7XG4gICAgICAgIGlmIChhbGxOdWxsVmFsdWVzIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChrZXlDb21tZW50RG9uZSAmJiBvbkNvbW1lbnQpXG4gICAgICAgICAgICAgICAgb25Db21tZW50KCk7XG4gICAgICAgICAgICByZXR1cm4gc3RyID09PSAnJyA/ICc/JyA6IGV4cGxpY2l0S2V5ID8gYD8gJHtzdHJ9YCA6IHN0cjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICgoYWxsTnVsbFZhbHVlcyAmJiAhc2ltcGxlS2V5cykgfHwgKHZhbHVlID09IG51bGwgJiYgZXhwbGljaXRLZXkpKSB7XG4gICAgICAgIHN0ciA9IGA/ICR7c3RyfWA7XG4gICAgICAgIGlmIChrZXlDb21tZW50ICYmICFrZXlDb21tZW50RG9uZSkge1xuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyhrZXlDb21tZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2hvbXBLZWVwICYmIG9uQ2hvbXBLZWVwKVxuICAgICAgICAgICAgb25DaG9tcEtlZXAoKTtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgaWYgKGtleUNvbW1lbnREb25lKVxuICAgICAgICBrZXlDb21tZW50ID0gbnVsbDtcbiAgICBpZiAoZXhwbGljaXRLZXkpIHtcbiAgICAgICAgaWYgKGtleUNvbW1lbnQpXG4gICAgICAgICAgICBzdHIgKz0gbGluZUNvbW1lbnQoc3RyLCBjdHguaW5kZW50LCBjb21tZW50U3RyaW5nKGtleUNvbW1lbnQpKTtcbiAgICAgICAgc3RyID0gYD8gJHtzdHJ9XFxuJHtpbmRlbnR9OmA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdHIgPSBgJHtzdHJ9OmA7XG4gICAgICAgIGlmIChrZXlDb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyhrZXlDb21tZW50KSk7XG4gICAgfVxuICAgIGxldCB2c2IsIHZjYiwgdmFsdWVDb21tZW50O1xuICAgIGlmIChpc05vZGUodmFsdWUpKSB7XG4gICAgICAgIHZzYiA9ICEhdmFsdWUuc3BhY2VCZWZvcmU7XG4gICAgICAgIHZjYiA9IHZhbHVlLmNvbW1lbnRCZWZvcmU7XG4gICAgICAgIHZhbHVlQ29tbWVudCA9IHZhbHVlLmNvbW1lbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2c2IgPSBmYWxzZTtcbiAgICAgICAgdmNiID0gbnVsbDtcbiAgICAgICAgdmFsdWVDb21tZW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICB2YWx1ZSA9IGRvYy5jcmVhdGVOb2RlKHZhbHVlKTtcbiAgICB9XG4gICAgY3R4LmltcGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgaWYgKCFleHBsaWNpdEtleSAmJiAha2V5Q29tbWVudCAmJiBpc1NjYWxhcih2YWx1ZSkpXG4gICAgICAgIGN0eC5pbmRlbnRBdFN0YXJ0ID0gc3RyLmxlbmd0aCArIDE7XG4gICAgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgaWYgKCFpbmRlbnRTZXEgJiZcbiAgICAgICAgaW5kZW50U3RlcC5sZW5ndGggPj0gMiAmJlxuICAgICAgICAhY3R4LmluRmxvdyAmJlxuICAgICAgICAhZXhwbGljaXRLZXkgJiZcbiAgICAgICAgaXNTZXEodmFsdWUpICYmXG4gICAgICAgICF2YWx1ZS5mbG93ICYmXG4gICAgICAgICF2YWx1ZS50YWcgJiZcbiAgICAgICAgIXZhbHVlLmFuY2hvcikge1xuICAgICAgICAvLyBJZiBpbmRlbnRTZXEgPT09IGZhbHNlLCBjb25zaWRlciAnLSAnIGFzIHBhcnQgb2YgaW5kZW50YXRpb24gd2hlcmUgcG9zc2libGVcbiAgICAgICAgY3R4LmluZGVudCA9IGN0eC5pbmRlbnQuc3Vic3RyaW5nKDIpO1xuICAgIH1cbiAgICBsZXQgdmFsdWVDb21tZW50RG9uZSA9IGZhbHNlO1xuICAgIGNvbnN0IHZhbHVlU3RyID0gc3RyaW5naWZ5KHZhbHVlLCBjdHgsICgpID0+ICh2YWx1ZUNvbW1lbnREb25lID0gdHJ1ZSksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgbGV0IHdzID0gJyAnO1xuICAgIGlmIChrZXlDb21tZW50IHx8IHZzYiB8fCB2Y2IpIHtcbiAgICAgICAgd3MgPSB2c2IgPyAnXFxuJyA6ICcnO1xuICAgICAgICBpZiAodmNiKSB7XG4gICAgICAgICAgICBjb25zdCBjcyA9IGNvbW1lbnRTdHJpbmcodmNiKTtcbiAgICAgICAgICAgIHdzICs9IGBcXG4ke2luZGVudENvbW1lbnQoY3MsIGN0eC5pbmRlbnQpfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlU3RyID09PSAnJyAmJiAhY3R4LmluRmxvdykge1xuICAgICAgICAgICAgaWYgKHdzID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICB3cyA9ICdcXG5cXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd3MgKz0gYFxcbiR7Y3R4LmluZGVudH1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKCFleHBsaWNpdEtleSAmJiBpc0NvbGxlY3Rpb24odmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHZzMCA9IHZhbHVlU3RyWzBdO1xuICAgICAgICBjb25zdCBubDAgPSB2YWx1ZVN0ci5pbmRleE9mKCdcXG4nKTtcbiAgICAgICAgY29uc3QgaGFzTmV3bGluZSA9IG5sMCAhPT0gLTE7XG4gICAgICAgIGNvbnN0IGZsb3cgPSBjdHguaW5GbG93ID8/IHZhbHVlLmZsb3cgPz8gdmFsdWUuaXRlbXMubGVuZ3RoID09PSAwO1xuICAgICAgICBpZiAoaGFzTmV3bGluZSB8fCAhZmxvdykge1xuICAgICAgICAgICAgbGV0IGhhc1Byb3BzTGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGhhc05ld2xpbmUgJiYgKHZzMCA9PT0gJyYnIHx8IHZzMCA9PT0gJyEnKSkge1xuICAgICAgICAgICAgICAgIGxldCBzcDAgPSB2YWx1ZVN0ci5pbmRleE9mKCcgJyk7XG4gICAgICAgICAgICAgICAgaWYgKHZzMCA9PT0gJyYnICYmXG4gICAgICAgICAgICAgICAgICAgIHNwMCAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgc3AwIDwgbmwwICYmXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlU3RyW3NwMCArIDFdID09PSAnIScpIHtcbiAgICAgICAgICAgICAgICAgICAgc3AwID0gdmFsdWVTdHIuaW5kZXhPZignICcsIHNwMCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3AwID09PSAtMSB8fCBubDAgPCBzcDApXG4gICAgICAgICAgICAgICAgICAgIGhhc1Byb3BzTGluZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc1Byb3BzTGluZSlcbiAgICAgICAgICAgICAgICB3cyA9IGBcXG4ke2N0eC5pbmRlbnR9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZVN0ciA9PT0gJycgfHwgdmFsdWVTdHJbMF0gPT09ICdcXG4nKSB7XG4gICAgICAgIHdzID0gJyc7XG4gICAgfVxuICAgIHN0ciArPSB3cyArIHZhbHVlU3RyO1xuICAgIGlmIChjdHguaW5GbG93KSB7XG4gICAgICAgIGlmICh2YWx1ZUNvbW1lbnREb25lICYmIG9uQ29tbWVudClcbiAgICAgICAgICAgIG9uQ29tbWVudCgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZUNvbW1lbnQgJiYgIXZhbHVlQ29tbWVudERvbmUpIHtcbiAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyh2YWx1ZUNvbW1lbnQpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2hvbXBLZWVwICYmIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIG9uQ2hvbXBLZWVwKCk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeVBhaXIgfTtcbiIsICJmdW5jdGlvbiBkZWJ1Zyhsb2dMZXZlbCwgLi4ubWVzc2FnZXMpIHtcbiAgICBpZiAobG9nTGV2ZWwgPT09ICdkZWJ1ZycpXG4gICAgICAgIGNvbnNvbGUubG9nKC4uLm1lc3NhZ2VzKTtcbn1cbmZ1bmN0aW9uIHdhcm4obG9nTGV2ZWwsIHdhcm5pbmcpIHtcbiAgICBpZiAobG9nTGV2ZWwgPT09ICdkZWJ1ZycgfHwgbG9nTGV2ZWwgPT09ICd3YXJuJykge1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW1pdFdhcm5pbmcpXG4gICAgICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKHdhcm5pbmcpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBkZWJ1Zywgd2FybiB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc0FsaWFzLCBpc1NlcSwgaXNNYXAgfSBmcm9tICcuLi8uLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG4vLyBJZiB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgbWVyZ2Uga2V5IGlzIGEgc2luZ2xlIG1hcHBpbmcgbm9kZSwgZWFjaCBvZlxuLy8gaXRzIGtleS92YWx1ZSBwYWlycyBpcyBpbnNlcnRlZCBpbnRvIHRoZSBjdXJyZW50IG1hcHBpbmcsIHVubGVzcyB0aGUga2V5XG4vLyBhbHJlYWR5IGV4aXN0cyBpbiBpdC4gSWYgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVyZ2Uga2V5IGlzIGFcbi8vIHNlcXVlbmNlLCB0aGVuIHRoaXMgc2VxdWVuY2UgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBtYXBwaW5nIG5vZGVzIGFuZCBlYWNoXG4vLyBvZiB0aGVzZSBub2RlcyBpcyBtZXJnZWQgaW4gdHVybiBhY2NvcmRpbmcgdG8gaXRzIG9yZGVyIGluIHRoZSBzZXF1ZW5jZS5cbi8vIEtleXMgaW4gbWFwcGluZyBub2RlcyBlYXJsaWVyIGluIHRoZSBzZXF1ZW5jZSBvdmVycmlkZSBrZXlzIHNwZWNpZmllZCBpblxuLy8gbGF0ZXIgbWFwcGluZyBub2Rlcy4gLS0gaHR0cDovL3lhbWwub3JnL3R5cGUvbWVyZ2UuaHRtbFxuY29uc3QgTUVSR0VfS0VZID0gJzw8JztcbmNvbnN0IG1lcmdlID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB2YWx1ZSA9PT0gTUVSR0VfS0VZIHx8XG4gICAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnICYmIHZhbHVlLmRlc2NyaXB0aW9uID09PSBNRVJHRV9LRVkpLFxuICAgIGRlZmF1bHQ6ICdrZXknLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJyxcbiAgICB0ZXN0OiAvXjw8JC8sXG4gICAgcmVzb2x2ZTogKCkgPT4gT2JqZWN0LmFzc2lnbihuZXcgU2NhbGFyKFN5bWJvbChNRVJHRV9LRVkpKSwge1xuICAgICAgICBhZGRUb0pTTWFwOiBhZGRNZXJnZVRvSlNNYXBcbiAgICB9KSxcbiAgICBzdHJpbmdpZnk6ICgpID0+IE1FUkdFX0tFWVxufTtcbmNvbnN0IGlzTWVyZ2VLZXkgPSAoY3R4LCBrZXkpID0+IChtZXJnZS5pZGVudGlmeShrZXkpIHx8XG4gICAgKGlzU2NhbGFyKGtleSkgJiZcbiAgICAgICAgKCFrZXkudHlwZSB8fCBrZXkudHlwZSA9PT0gU2NhbGFyLlBMQUlOKSAmJlxuICAgICAgICBtZXJnZS5pZGVudGlmeShrZXkudmFsdWUpKSkgJiZcbiAgICBjdHg/LmRvYy5zY2hlbWEudGFncy5zb21lKHRhZyA9PiB0YWcudGFnID09PSBtZXJnZS50YWcgJiYgdGFnLmRlZmF1bHQpO1xuZnVuY3Rpb24gYWRkTWVyZ2VUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSkge1xuICAgIHZhbHVlID0gY3R4ICYmIGlzQWxpYXModmFsdWUpID8gdmFsdWUucmVzb2x2ZShjdHguZG9jKSA6IHZhbHVlO1xuICAgIGlmIChpc1NlcSh2YWx1ZSkpXG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgdmFsdWUuaXRlbXMpXG4gICAgICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCBpdCk7XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgdmFsdWUpXG4gICAgICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCBpdCk7XG4gICAgZWxzZVxuICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCB2YWx1ZSk7XG59XG5mdW5jdGlvbiBtZXJnZVZhbHVlKGN0eCwgbWFwLCB2YWx1ZSkge1xuICAgIGNvbnN0IHNvdXJjZSA9IGN0eCAmJiBpc0FsaWFzKHZhbHVlKSA/IHZhbHVlLnJlc29sdmUoY3R4LmRvYykgOiB2YWx1ZTtcbiAgICBpZiAoIWlzTWFwKHNvdXJjZSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXMnKTtcbiAgICBjb25zdCBzcmNNYXAgPSBzb3VyY2UudG9KU09OKG51bGwsIGN0eCwgTWFwKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzcmNNYXApIHtcbiAgICAgICAgaWYgKG1hcCBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgaWYgKCFtYXAuaGFzKGtleSkpXG4gICAgICAgICAgICAgICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXAgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgIG1hcC5hZGQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1hcCwga2V5KSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG1hcCwga2V5LCB7XG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG59XG5cbmV4cG9ydCB7IGFkZE1lcmdlVG9KU01hcCwgaXNNZXJnZUtleSwgbWVyZ2UgfTtcbiIsICJpbXBvcnQgeyB3YXJuIH0gZnJvbSAnLi4vbG9nLmpzJztcbmltcG9ydCB7IGlzTWVyZ2VLZXksIGFkZE1lcmdlVG9KU01hcCB9IGZyb20gJy4uL3NjaGVtYS95YW1sLTEuMS9tZXJnZS5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTdHJpbmdpZnlDb250ZXh0IH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeS5qcyc7XG5pbXBvcnQgeyBpc05vZGUgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5mdW5jdGlvbiBhZGRQYWlyVG9KU01hcChjdHgsIG1hcCwgeyBrZXksIHZhbHVlIH0pIHtcbiAgICBpZiAoaXNOb2RlKGtleSkgJiYga2V5LmFkZFRvSlNNYXApXG4gICAgICAgIGtleS5hZGRUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSk7XG4gICAgLy8gVE9ETzogU2hvdWxkIGRyb3AgdGhpcyBzcGVjaWFsIGNhc2UgZm9yIGJhcmUgPDwgaGFuZGxpbmdcbiAgICBlbHNlIGlmIChpc01lcmdlS2V5KGN0eCwga2V5KSlcbiAgICAgICAgYWRkTWVyZ2VUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSk7XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGpzS2V5ID0gdG9KUyhrZXksICcnLCBjdHgpO1xuICAgICAgICBpZiAobWFwIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBtYXAuc2V0KGpzS2V5LCB0b0pTKHZhbHVlLCBqc0tleSwgY3R4KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWFwIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgICAgICBtYXAuYWRkKGpzS2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ0tleSA9IHN0cmluZ2lmeUtleShrZXksIGpzS2V5LCBjdHgpO1xuICAgICAgICAgICAgY29uc3QganNWYWx1ZSA9IHRvSlModmFsdWUsIHN0cmluZ0tleSwgY3R4KTtcbiAgICAgICAgICAgIGlmIChzdHJpbmdLZXkgaW4gbWFwKVxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtYXAsIHN0cmluZ0tleSwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZToganNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1hcFtzdHJpbmdLZXldID0ganNWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5S2V5KGtleSwganNLZXksIGN0eCkge1xuICAgIGlmIChqc0tleSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIGlmICh0eXBlb2YganNLZXkgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gU3RyaW5nKGpzS2V5KTtcbiAgICBpZiAoaXNOb2RlKGtleSkgJiYgY3R4Py5kb2MpIHtcbiAgICAgICAgY29uc3Qgc3RyQ3R4ID0gY3JlYXRlU3RyaW5naWZ5Q29udGV4dChjdHguZG9jLCB7fSk7XG4gICAgICAgIHN0ckN0eC5hbmNob3JzID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgY3R4LmFuY2hvcnMua2V5cygpKVxuICAgICAgICAgICAgc3RyQ3R4LmFuY2hvcnMuYWRkKG5vZGUuYW5jaG9yKTtcbiAgICAgICAgc3RyQ3R4LmluRmxvdyA9IHRydWU7XG4gICAgICAgIHN0ckN0eC5pblN0cmluZ2lmeUtleSA9IHRydWU7XG4gICAgICAgIGNvbnN0IHN0cktleSA9IGtleS50b1N0cmluZyhzdHJDdHgpO1xuICAgICAgICBpZiAoIWN0eC5tYXBLZXlXYXJuZWQpIHtcbiAgICAgICAgICAgIGxldCBqc29uU3RyID0gSlNPTi5zdHJpbmdpZnkoc3RyS2V5KTtcbiAgICAgICAgICAgIGlmIChqc29uU3RyLmxlbmd0aCA+IDQwKVxuICAgICAgICAgICAgICAgIGpzb25TdHIgPSBqc29uU3RyLnN1YnN0cmluZygwLCAzNikgKyAnLi4uXCInO1xuICAgICAgICAgICAgd2FybihjdHguZG9jLm9wdGlvbnMubG9nTGV2ZWwsIGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtqc29uU3RyfS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKTtcbiAgICAgICAgICAgIGN0eC5tYXBLZXlXYXJuZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJLZXk7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShqc0tleSk7XG59XG5cbmV4cG9ydCB7IGFkZFBhaXJUb0pTTWFwIH07XG4iLCAiaW1wb3J0IHsgY3JlYXRlTm9kZSB9IGZyb20gJy4uL2RvYy9jcmVhdGVOb2RlLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeVBhaXIgfSBmcm9tICcuLi9zdHJpbmdpZnkvc3RyaW5naWZ5UGFpci5qcyc7XG5pbXBvcnQgeyBhZGRQYWlyVG9KU01hcCB9IGZyb20gJy4vYWRkUGFpclRvSlNNYXAuanMnO1xuaW1wb3J0IHsgTk9ERV9UWVBFLCBQQUlSLCBpc05vZGUgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuZnVuY3Rpb24gY3JlYXRlUGFpcihrZXksIHZhbHVlLCBjdHgpIHtcbiAgICBjb25zdCBrID0gY3JlYXRlTm9kZShrZXksIHVuZGVmaW5lZCwgY3R4KTtcbiAgICBjb25zdCB2ID0gY3JlYXRlTm9kZSh2YWx1ZSwgdW5kZWZpbmVkLCBjdHgpO1xuICAgIHJldHVybiBuZXcgUGFpcihrLCB2KTtcbn1cbmNsYXNzIFBhaXIge1xuICAgIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUgPSBudWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBOT0RFX1RZUEUsIHsgdmFsdWU6IFBBSVIgfSk7XG4gICAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGNsb25lKHNjaGVtYSkge1xuICAgICAgICBsZXQgeyBrZXksIHZhbHVlIH0gPSB0aGlzO1xuICAgICAgICBpZiAoaXNOb2RlKGtleSkpXG4gICAgICAgICAgICBrZXkgPSBrZXkuY2xvbmUoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzTm9kZSh2YWx1ZSkpXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmNsb25lKHNjaGVtYSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFpcihrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgdG9KU09OKF8sIGN0eCkge1xuICAgICAgICBjb25zdCBwYWlyID0gY3R4Py5tYXBBc01hcCA/IG5ldyBNYXAoKSA6IHt9O1xuICAgICAgICByZXR1cm4gYWRkUGFpclRvSlNNYXAoY3R4LCBwYWlyLCB0aGlzKTtcbiAgICB9XG4gICAgdG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIHJldHVybiBjdHg/LmRvY1xuICAgICAgICAgICAgPyBzdHJpbmdpZnlQYWlyKHRoaXMsIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcClcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkodGhpcyk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBQYWlyLCBjcmVhdGVQYWlyIH07XG4iLCAiaW1wb3J0IHsgaXNOb2RlLCBpc1BhaXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tICcuL3N0cmluZ2lmeS5qcyc7XG5pbXBvcnQgeyBsaW5lQ29tbWVudCwgaW5kZW50Q29tbWVudCB9IGZyb20gJy4vc3RyaW5naWZ5Q29tbWVudC5qcyc7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUNvbGxlY3Rpb24oY29sbGVjdGlvbiwgY3R4LCBvcHRpb25zKSB7XG4gICAgY29uc3QgZmxvdyA9IGN0eC5pbkZsb3cgPz8gY29sbGVjdGlvbi5mbG93O1xuICAgIGNvbnN0IHN0cmluZ2lmeSA9IGZsb3cgPyBzdHJpbmdpZnlGbG93Q29sbGVjdGlvbiA6IHN0cmluZ2lmeUJsb2NrQ29sbGVjdGlvbjtcbiAgICByZXR1cm4gc3RyaW5naWZ5KGNvbGxlY3Rpb24sIGN0eCwgb3B0aW9ucyk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlCbG9ja0NvbGxlY3Rpb24oeyBjb21tZW50LCBpdGVtcyB9LCBjdHgsIHsgYmxvY2tJdGVtUHJlZml4LCBmbG93Q2hhcnMsIGl0ZW1JbmRlbnQsIG9uQ2hvbXBLZWVwLCBvbkNvbW1lbnQgfSkge1xuICAgIGNvbnN0IHsgaW5kZW50LCBvcHRpb25zOiB7IGNvbW1lbnRTdHJpbmcgfSB9ID0gY3R4O1xuICAgIGNvbnN0IGl0ZW1DdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHsgaW5kZW50OiBpdGVtSW5kZW50LCB0eXBlOiBudWxsIH0pO1xuICAgIGxldCBjaG9tcEtlZXAgPSBmYWxzZTsgLy8gZmxhZyBmb3IgdGhlIHByZWNlZGluZyBub2RlJ3Mgc3RhdHVzXG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgbGV0IGNvbW1lbnQgPSBudWxsO1xuICAgICAgICBpZiAoaXNOb2RlKGl0ZW0pKSB7XG4gICAgICAgICAgICBpZiAoIWNob21wS2VlcCAmJiBpdGVtLnNwYWNlQmVmb3JlKVxuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgICAgICAgYWRkQ29tbWVudEJlZm9yZShjdHgsIGxpbmVzLCBpdGVtLmNvbW1lbnRCZWZvcmUsIGNob21wS2VlcCk7XG4gICAgICAgICAgICBpZiAoaXRlbS5jb21tZW50KVxuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpdGVtLmNvbW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNQYWlyKGl0ZW0pKSB7XG4gICAgICAgICAgICBjb25zdCBpayA9IGlzTm9kZShpdGVtLmtleSkgPyBpdGVtLmtleSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoaWspIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNob21wS2VlcCAmJiBpay5zcGFjZUJlZm9yZSlcbiAgICAgICAgICAgICAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgICAgICAgICAgYWRkQ29tbWVudEJlZm9yZShjdHgsIGxpbmVzLCBpay5jb21tZW50QmVmb3JlLCBjaG9tcEtlZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNob21wS2VlcCA9IGZhbHNlO1xuICAgICAgICBsZXQgc3RyID0gc3RyaW5naWZ5KGl0ZW0sIGl0ZW1DdHgsICgpID0+IChjb21tZW50ID0gbnVsbCksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgaXRlbUluZGVudCwgY29tbWVudFN0cmluZyhjb21tZW50KSk7XG4gICAgICAgIGlmIChjaG9tcEtlZXAgJiYgY29tbWVudClcbiAgICAgICAgICAgIGNob21wS2VlcCA9IGZhbHNlO1xuICAgICAgICBsaW5lcy5wdXNoKGJsb2NrSXRlbVByZWZpeCArIHN0cik7XG4gICAgfVxuICAgIGxldCBzdHI7XG4gICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzdHIgPSBmbG93Q2hhcnMuc3RhcnQgKyBmbG93Q2hhcnMuZW5kO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RyID0gbGluZXNbMF07XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbGluZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICAgICAgICAgIHN0ciArPSBsaW5lID8gYFxcbiR7aW5kZW50fSR7bGluZX1gIDogJ1xcbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgc3RyICs9ICdcXG4nICsgaW5kZW50Q29tbWVudChjb21tZW50U3RyaW5nKGNvbW1lbnQpLCBpbmRlbnQpO1xuICAgICAgICBpZiAob25Db21tZW50KVxuICAgICAgICAgICAgb25Db21tZW50KCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNob21wS2VlcCAmJiBvbkNob21wS2VlcClcbiAgICAgICAgb25DaG9tcEtlZXAoKTtcbiAgICByZXR1cm4gc3RyO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5Rmxvd0NvbGxlY3Rpb24oeyBpdGVtcyB9LCBjdHgsIHsgZmxvd0NoYXJzLCBpdGVtSW5kZW50IH0pIHtcbiAgICBjb25zdCB7IGluZGVudCwgaW5kZW50U3RlcCwgZmxvd0NvbGxlY3Rpb25QYWRkaW5nOiBmY1BhZGRpbmcsIG9wdGlvbnM6IHsgY29tbWVudFN0cmluZyB9IH0gPSBjdHg7XG4gICAgaXRlbUluZGVudCArPSBpbmRlbnRTdGVwO1xuICAgIGNvbnN0IGl0ZW1DdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHtcbiAgICAgICAgaW5kZW50OiBpdGVtSW5kZW50LFxuICAgICAgICBpbkZsb3c6IHRydWUsXG4gICAgICAgIHR5cGU6IG51bGxcbiAgICB9KTtcbiAgICBsZXQgcmVxTmV3bGluZSA9IGZhbHNlO1xuICAgIGxldCBsaW5lc0F0VmFsdWUgPSAwO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaV07XG4gICAgICAgIGxldCBjb21tZW50ID0gbnVsbDtcbiAgICAgICAgaWYgKGlzTm9kZShpdGVtKSkge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc3BhY2VCZWZvcmUpXG4gICAgICAgICAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgICAgICBhZGRDb21tZW50QmVmb3JlKGN0eCwgbGluZXMsIGl0ZW0uY29tbWVudEJlZm9yZSwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKGl0ZW0uY29tbWVudClcbiAgICAgICAgICAgICAgICBjb21tZW50ID0gaXRlbS5jb21tZW50O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGFpcihpdGVtKSkge1xuICAgICAgICAgICAgY29uc3QgaWsgPSBpc05vZGUoaXRlbS5rZXkpID8gaXRlbS5rZXkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGlrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlrLnNwYWNlQmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgICAgICAgICBhZGRDb21tZW50QmVmb3JlKGN0eCwgbGluZXMsIGlrLmNvbW1lbnRCZWZvcmUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoaWsuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdiA9IGlzTm9kZShpdGVtLnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGl2KSB7XG4gICAgICAgICAgICAgICAgaWYgKGl2LmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpdi5jb21tZW50O1xuICAgICAgICAgICAgICAgIGlmIChpdi5jb21tZW50QmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICByZXFOZXdsaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udmFsdWUgPT0gbnVsbCAmJiBpaz8uY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpay5jb21tZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgIGxldCBzdHIgPSBzdHJpbmdpZnkoaXRlbSwgaXRlbUN0eCwgKCkgPT4gKGNvbW1lbnQgPSBudWxsKSk7XG4gICAgICAgIGlmIChpIDwgaXRlbXMubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgIHN0ciArPSAnLCc7XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgaXRlbUluZGVudCwgY29tbWVudFN0cmluZyhjb21tZW50KSk7XG4gICAgICAgIGlmICghcmVxTmV3bGluZSAmJiAobGluZXMubGVuZ3RoID4gbGluZXNBdFZhbHVlIHx8IHN0ci5pbmNsdWRlcygnXFxuJykpKVxuICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgIGxpbmVzLnB1c2goc3RyKTtcbiAgICAgICAgbGluZXNBdFZhbHVlID0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGZsb3dDaGFycztcbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFydCArIGVuZDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghcmVxTmV3bGluZSkge1xuICAgICAgICAgICAgY29uc3QgbGVuID0gbGluZXMucmVkdWNlKChzdW0sIGxpbmUpID0+IHN1bSArIGxpbmUubGVuZ3RoICsgMiwgMik7XG4gICAgICAgICAgICByZXFOZXdsaW5lID0gY3R4Lm9wdGlvbnMubGluZVdpZHRoID4gMCAmJiBsZW4gPiBjdHgub3B0aW9ucy5saW5lV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcU5ld2xpbmUpIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBzdGFydDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcylcbiAgICAgICAgICAgICAgICBzdHIgKz0gbGluZSA/IGBcXG4ke2luZGVudFN0ZXB9JHtpbmRlbnR9JHtsaW5lfWAgOiAnXFxuJztcbiAgICAgICAgICAgIHJldHVybiBgJHtzdHJ9XFxuJHtpbmRlbnR9JHtlbmR9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtzdGFydH0ke2ZjUGFkZGluZ30ke2xpbmVzLmpvaW4oJyAnKX0ke2ZjUGFkZGluZ30ke2VuZH1gO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkQ29tbWVudEJlZm9yZSh7IGluZGVudCwgb3B0aW9uczogeyBjb21tZW50U3RyaW5nIH0gfSwgbGluZXMsIGNvbW1lbnQsIGNob21wS2VlcCkge1xuICAgIGlmIChjb21tZW50ICYmIGNob21wS2VlcClcbiAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSgvXlxcbisvLCAnJyk7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWMgPSBpbmRlbnRDb21tZW50KGNvbW1lbnRTdHJpbmcoY29tbWVudCksIGluZGVudCk7XG4gICAgICAgIGxpbmVzLnB1c2goaWMudHJpbVN0YXJ0KCkpOyAvLyBBdm9pZCBkb3VibGUgaW5kZW50IG9uIGZpcnN0IGxpbmVcbiAgICB9XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeUNvbGxlY3Rpb24gfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeUNvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgYWRkUGFpclRvSlNNYXAgfSBmcm9tICcuL2FkZFBhaXJUb0pTTWFwLmpzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgaXNQYWlyLCBpc1NjYWxhciwgTUFQIH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBQYWlyLCBjcmVhdGVQYWlyIH0gZnJvbSAnLi9QYWlyLmpzJztcbmltcG9ydCB7IGlzU2NhbGFyVmFsdWUgfSBmcm9tICcuL1NjYWxhci5qcyc7XG5cbmZ1bmN0aW9uIGZpbmRQYWlyKGl0ZW1zLCBrZXkpIHtcbiAgICBjb25zdCBrID0gaXNTY2FsYXIoa2V5KSA/IGtleS52YWx1ZSA6IGtleTtcbiAgICBmb3IgKGNvbnN0IGl0IG9mIGl0ZW1zKSB7XG4gICAgICAgIGlmIChpc1BhaXIoaXQpKSB7XG4gICAgICAgICAgICBpZiAoaXQua2V5ID09PSBrZXkgfHwgaXQua2V5ID09PSBrKVxuICAgICAgICAgICAgICAgIHJldHVybiBpdDtcbiAgICAgICAgICAgIGlmIChpc1NjYWxhcihpdC5rZXkpICYmIGl0LmtleS52YWx1ZSA9PT0gaylcbiAgICAgICAgICAgICAgICByZXR1cm4gaXQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbmNsYXNzIFlBTUxNYXAgZXh0ZW5kcyBDb2xsZWN0aW9uIHtcbiAgICBzdGF0aWMgZ2V0IHRhZ05hbWUoKSB7XG4gICAgICAgIHJldHVybiAndGFnOnlhbWwub3JnLDIwMDI6bWFwJztcbiAgICB9XG4gICAgY29uc3RydWN0b3Ioc2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKE1BUCwgc2NoZW1hKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIGdlbmVyaWMgY29sbGVjdGlvbiBwYXJzaW5nIG1ldGhvZCB0aGF0IGNhbiBiZSBleHRlbmRlZFxuICAgICAqIHRvIG90aGVyIG5vZGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBZQU1MTWFwXG4gICAgICovXG4gICAgc3RhdGljIGZyb20oc2NoZW1hLCBvYmosIGN0eCkge1xuICAgICAgICBjb25zdCB7IGtlZXBVbmRlZmluZWQsIHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IGFkZCA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXIuY2FsbChvYmosIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikgJiYgIXJlcGxhY2VyLmluY2x1ZGVzKGtleSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwga2VlcFVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaChjcmVhdGVQYWlyKGtleSwgdmFsdWUsIGN0eCkpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBvYmopXG4gICAgICAgICAgICAgICAgYWRkKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSlcbiAgICAgICAgICAgICAgICBhZGQoa2V5LCBvYmpba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuc29ydE1hcEVudHJpZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG1hcC5pdGVtcy5zb3J0KHNjaGVtYS5zb3J0TWFwRW50cmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyBhIHZhbHVlIHRvIHRoZSBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG92ZXJ3cml0ZSAtIElmIG5vdCBzZXQgYHRydWVgLCB1c2luZyBhIGtleSB0aGF0IGlzIGFscmVhZHkgaW4gdGhlXG4gICAgICogICBjb2xsZWN0aW9uIHdpbGwgdGhyb3cuIE90aGVyd2lzZSwgb3ZlcndyaXRlcyB0aGUgcHJldmlvdXMgdmFsdWUuXG4gICAgICovXG4gICAgYWRkKHBhaXIsIG92ZXJ3cml0ZSkge1xuICAgICAgICBsZXQgX3BhaXI7XG4gICAgICAgIGlmIChpc1BhaXIocGFpcikpXG4gICAgICAgICAgICBfcGFpciA9IHBhaXI7XG4gICAgICAgIGVsc2UgaWYgKCFwYWlyIHx8IHR5cGVvZiBwYWlyICE9PSAnb2JqZWN0JyB8fCAhKCdrZXknIGluIHBhaXIpKSB7XG4gICAgICAgICAgICAvLyBJbiBUeXBlU2NyaXB0LCB0aGlzIG5ldmVyIGhhcHBlbnMuXG4gICAgICAgICAgICBfcGFpciA9IG5ldyBQYWlyKHBhaXIsIHBhaXI/LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBfcGFpciA9IG5ldyBQYWlyKHBhaXIua2V5LCBwYWlyLnZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJldiA9IGZpbmRQYWlyKHRoaXMuaXRlbXMsIF9wYWlyLmtleSk7XG4gICAgICAgIGNvbnN0IHNvcnRFbnRyaWVzID0gdGhpcy5zY2hlbWE/LnNvcnRNYXBFbnRyaWVzO1xuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgaWYgKCFvdmVyd3JpdGUpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXkgJHtfcGFpci5rZXl9IGFscmVhZHkgc2V0YCk7XG4gICAgICAgICAgICAvLyBGb3Igc2NhbGFycywga2VlcCB0aGUgb2xkIG5vZGUgJiBpdHMgY29tbWVudHMgYW5kIGFuY2hvcnNcbiAgICAgICAgICAgIGlmIChpc1NjYWxhcihwcmV2LnZhbHVlKSAmJiBpc1NjYWxhclZhbHVlKF9wYWlyLnZhbHVlKSlcbiAgICAgICAgICAgICAgICBwcmV2LnZhbHVlLnZhbHVlID0gX3BhaXIudmFsdWU7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcHJldi52YWx1ZSA9IF9wYWlyLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNvcnRFbnRyaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBzb3J0RW50cmllcyhfcGFpciwgaXRlbSkgPCAwKTtcbiAgICAgICAgICAgIGlmIChpID09PSAtMSlcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goX3BhaXIpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGksIDAsIF9wYWlyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChfcGFpcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBjb25zdCBpdCA9IGZpbmRQYWlyKHRoaXMuaXRlbXMsIGtleSk7XG4gICAgICAgIGlmICghaXQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRlbCA9IHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdCksIDEpO1xuICAgICAgICByZXR1cm4gZGVsLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIGdldChrZXksIGtlZXBTY2FsYXIpIHtcbiAgICAgICAgY29uc3QgaXQgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICBjb25zdCBub2RlID0gaXQ/LnZhbHVlO1xuICAgICAgICByZXR1cm4gKCFrZWVwU2NhbGFyICYmIGlzU2NhbGFyKG5vZGUpID8gbm9kZS52YWx1ZSA6IG5vZGUpID8/IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFzKGtleSkge1xuICAgICAgICByZXR1cm4gISFmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmFkZChuZXcgUGFpcihrZXksIHZhbHVlKSwgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjdHggLSBDb252ZXJzaW9uIGNvbnRleHQsIG9yaWdpbmFsbHkgc2V0IGluIERvY3VtZW50I3RvSlMoKVxuICAgICAqIEBwYXJhbSB7Q2xhc3N9IFR5cGUgLSBJZiBzZXQsIGZvcmNlcyB0aGUgcmV0dXJuZWQgY29sbGVjdGlvbiB0eXBlXG4gICAgICogQHJldHVybnMgSW5zdGFuY2Ugb2YgVHlwZSwgTWFwLCBvciBPYmplY3RcbiAgICAgKi9cbiAgICB0b0pTT04oXywgY3R4LCBUeXBlKSB7XG4gICAgICAgIGNvbnN0IG1hcCA9IFR5cGUgPyBuZXcgVHlwZSgpIDogY3R4Py5tYXBBc01hcCA/IG5ldyBNYXAoKSA6IHt9O1xuICAgICAgICBpZiAoY3R4Py5vbkNyZWF0ZSlcbiAgICAgICAgICAgIGN0eC5vbkNyZWF0ZShtYXApO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcylcbiAgICAgICAgICAgIGFkZFBhaXJUb0pTTWFwKGN0eCwgbWFwLCBpdGVtKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgdG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIGlmICghY3R4KVxuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgICAgICAgaWYgKCFpc1BhaXIoaXRlbSkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkoaXRlbSl9IGluc3RlYWRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWN0eC5hbGxOdWxsVmFsdWVzICYmIHRoaXMuaGFzQWxsTnVsbFZhbHVlcyhmYWxzZSkpXG4gICAgICAgICAgICBjdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHsgYWxsTnVsbFZhbHVlczogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUNvbGxlY3Rpb24odGhpcywgY3R4LCB7XG4gICAgICAgICAgICBibG9ja0l0ZW1QcmVmaXg6ICcnLFxuICAgICAgICAgICAgZmxvd0NoYXJzOiB7IHN0YXJ0OiAneycsIGVuZDogJ30nIH0sXG4gICAgICAgICAgICBpdGVtSW5kZW50OiBjdHguaW5kZW50IHx8ICcnLFxuICAgICAgICAgICAgb25DaG9tcEtlZXAsXG4gICAgICAgICAgICBvbkNvbW1lbnRcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBZQU1MTWFwLCBmaW5kUGFpciB9O1xuIiwgImltcG9ydCB7IGlzTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCB9IGZyb20gJy4uLy4uL25vZGVzL1lBTUxNYXAuanMnO1xuXG5jb25zdCBtYXAgPSB7XG4gICAgY29sbGVjdGlvbjogJ21hcCcsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICBub2RlQ2xhc3M6IFlBTUxNYXAsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6bWFwJyxcbiAgICByZXNvbHZlKG1hcCwgb25FcnJvcikge1xuICAgICAgICBpZiAoIWlzTWFwKG1hcCkpXG4gICAgICAgICAgICBvbkVycm9yKCdFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnJyk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSxcbiAgICBjcmVhdGVOb2RlOiAoc2NoZW1hLCBvYmosIGN0eCkgPT4gWUFNTE1hcC5mcm9tKHNjaGVtYSwgb2JqLCBjdHgpXG59O1xuXG5leHBvcnQgeyBtYXAgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi4vZG9jL2NyZWF0ZU5vZGUuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5Q29sbGVjdGlvbiB9IGZyb20gJy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgU0VRLCBpc1NjYWxhciB9IGZyb20gJy4vaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgaXNTY2FsYXJWYWx1ZSB9IGZyb20gJy4vU2NhbGFyLmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5jbGFzcyBZQU1MU2VxIGV4dGVuZHMgQ29sbGVjdGlvbiB7XG4gICAgc3RhdGljIGdldCB0YWdOYW1lKCkge1xuICAgICAgICByZXR1cm4gJ3RhZzp5YW1sLm9yZywyMDAyOnNlcSc7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHNjaGVtYSkge1xuICAgICAgICBzdXBlcihTRVEsIHNjaGVtYSk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICB9XG4gICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSB2YWx1ZSBmcm9tIHRoZSBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogYGtleWAgbXVzdCBjb250YWluIGEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciBmb3IgdGhpcyB0byBzdWNjZWVkLlxuICAgICAqIEl0IG1heSBiZSB3cmFwcGVkIGluIGEgYFNjYWxhcmAuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGl0ZW0gd2FzIGZvdW5kIGFuZCByZW1vdmVkLlxuICAgICAqL1xuICAgIGRlbGV0ZShrZXkpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBkZWwgPSB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICByZXR1cm4gZGVsLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIGdldChrZXksIGtlZXBTY2FsYXIpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaXQgPSB0aGlzLml0ZW1zW2lkeF07XG4gICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcihpdCkgPyBpdC52YWx1ZSA6IGl0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGNvbGxlY3Rpb24gaW5jbHVkZXMgYSB2YWx1ZSB3aXRoIHRoZSBrZXkgYGtleWAuXG4gICAgICpcbiAgICAgKiBga2V5YCBtdXN0IGNvbnRhaW4gYSByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnRlZ2VyIGZvciB0aGlzIHRvIHN1Y2NlZWQuXG4gICAgICogSXQgbWF5IGJlIHdyYXBwZWQgaW4gYSBgU2NhbGFyYC5cbiAgICAgKi9cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IGFzSXRlbUluZGV4KGtleSk7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaWR4ID09PSAnbnVtYmVyJyAmJiBpZHggPCB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIGluIHRoaXMgY29sbGVjdGlvbi4gRm9yIGAhIXNldGAsIGB2YWx1ZWAgbmVlZHMgdG8gYmUgYVxuICAgICAqIGJvb2xlYW4gdG8gYWRkL3JlbW92ZSB0aGUgaXRlbSBmcm9tIHRoZSBzZXQuXG4gICAgICpcbiAgICAgKiBJZiBga2V5YCBkb2VzIG5vdCBjb250YWluIGEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciwgdGhpcyB3aWxsIHRocm93LlxuICAgICAqIEl0IG1heSBiZSB3cmFwcGVkIGluIGEgYFNjYWxhcmAuXG4gICAgICovXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHZhbGlkIGluZGV4LCBub3QgJHtrZXl9LmApO1xuICAgICAgICBjb25zdCBwcmV2ID0gdGhpcy5pdGVtc1tpZHhdO1xuICAgICAgICBpZiAoaXNTY2FsYXIocHJldikgJiYgaXNTY2FsYXJWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgICBwcmV2LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuaXRlbXNbaWR4XSA9IHZhbHVlO1xuICAgIH1cbiAgICB0b0pTT04oXywgY3R4KSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IFtdO1xuICAgICAgICBpZiAoY3R4Py5vbkNyZWF0ZSlcbiAgICAgICAgICAgIGN0eC5vbkNyZWF0ZShzZXEpO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKVxuICAgICAgICAgICAgc2VxLnB1c2godG9KUyhpdGVtLCBTdHJpbmcoaSsrKSwgY3R4KSk7XG4gICAgICAgIHJldHVybiBzZXE7XG4gICAgfVxuICAgIHRvU3RyaW5nKGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUNvbGxlY3Rpb24odGhpcywgY3R4LCB7XG4gICAgICAgICAgICBibG9ja0l0ZW1QcmVmaXg6ICctICcsXG4gICAgICAgICAgICBmbG93Q2hhcnM6IHsgc3RhcnQ6ICdbJywgZW5kOiAnXScgfSxcbiAgICAgICAgICAgIGl0ZW1JbmRlbnQ6IChjdHguaW5kZW50IHx8ICcnKSArICcgICcsXG4gICAgICAgICAgICBvbkNob21wS2VlcCxcbiAgICAgICAgICAgIG9uQ29tbWVudFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGZyb20oc2NoZW1hLCBvYmosIGN0eCkge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IHNlcSA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGlmIChvYmogJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChvYmopKSB7XG4gICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpdCBvZiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IG9iaiBpbnN0YW5jZW9mIFNldCA/IGl0IDogU3RyaW5nKGkrKyk7XG4gICAgICAgICAgICAgICAgICAgIGl0ID0gcmVwbGFjZXIuY2FsbChvYmosIGtleSwgaXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXEuaXRlbXMucHVzaChjcmVhdGVOb2RlKGl0LCB1bmRlZmluZWQsIGN0eCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXE7XG4gICAgfVxufVxuZnVuY3Rpb24gYXNJdGVtSW5kZXgoa2V5KSB7XG4gICAgbGV0IGlkeCA9IGlzU2NhbGFyKGtleSkgPyBrZXkudmFsdWUgOiBrZXk7XG4gICAgaWYgKGlkeCAmJiB0eXBlb2YgaWR4ID09PSAnc3RyaW5nJylcbiAgICAgICAgaWR4ID0gTnVtYmVyKGlkeCk7XG4gICAgcmV0dXJuIHR5cGVvZiBpZHggPT09ICdudW1iZXInICYmIE51bWJlci5pc0ludGVnZXIoaWR4KSAmJiBpZHggPj0gMFxuICAgICAgICA/IGlkeFxuICAgICAgICA6IG51bGw7XG59XG5cbmV4cG9ydCB7IFlBTUxTZXEgfTtcbiIsICJpbXBvcnQgeyBpc1NlcSB9IGZyb20gJy4uLy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MU2VxLmpzJztcblxuY29uc3Qgc2VxID0ge1xuICAgIGNvbGxlY3Rpb246ICdzZXEnLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgbm9kZUNsYXNzOiBZQU1MU2VxLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOnNlcScsXG4gICAgcmVzb2x2ZShzZXEsIG9uRXJyb3IpIHtcbiAgICAgICAgaWYgKCFpc1NlcShzZXEpKVxuICAgICAgICAgICAgb25FcnJvcignRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWcnKTtcbiAgICAgICAgcmV0dXJuIHNlcTtcbiAgICB9LFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIG9iaiwgY3R4KSA9PiBZQU1MU2VxLmZyb20oc2NoZW1hLCBvYmosIGN0eClcbn07XG5cbmV4cG9ydCB7IHNlcSB9O1xuIiwgImltcG9ydCB7IHN0cmluZ2lmeVN0cmluZyB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlTdHJpbmcuanMnO1xuXG5jb25zdCBzdHJpbmcgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzdHInLFxuICAgIHJlc29sdmU6IHN0ciA9PiBzdHIsXG4gICAgc3RyaW5naWZ5KGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgICAgICBjdHggPSBPYmplY3QuYXNzaWduKHsgYWN0dWFsU3RyaW5nOiB0cnVlIH0sIGN0eCk7XG4gICAgICAgIHJldHVybiBzdHJpbmdpZnlTdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBzdHJpbmcgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5jb25zdCBudWxsVGFnID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB2YWx1ZSA9PSBudWxsLFxuICAgIGNyZWF0ZU5vZGU6ICgpID0+IG5ldyBTY2FsYXIobnVsbCksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpudWxsJyxcbiAgICB0ZXN0OiAvXig/On58W05uXXVsbHxOVUxMKT8kLyxcbiAgICByZXNvbHZlOiAoKSA9PiBuZXcgU2NhbGFyKG51bGwpLFxuICAgIHN0cmluZ2lmeTogKHsgc291cmNlIH0sIGN0eCkgPT4gdHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgJiYgbnVsbFRhZy50ZXN0LnRlc3Qoc291cmNlKVxuICAgICAgICA/IHNvdXJjZVxuICAgICAgICA6IGN0eC5vcHRpb25zLm51bGxTdHJcbn07XG5cbmV4cG9ydCB7IG51bGxUYWcgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5jb25zdCBib29sVGFnID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmJvb2wnLFxuICAgIHRlc3Q6IC9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLFxuICAgIHJlc29sdmU6IHN0ciA9PiBuZXcgU2NhbGFyKHN0clswXSA9PT0gJ3QnIHx8IHN0clswXSA9PT0gJ1QnKSxcbiAgICBzdHJpbmdpZnkoeyBzb3VyY2UsIHZhbHVlIH0sIGN0eCkge1xuICAgICAgICBpZiAoc291cmNlICYmIGJvb2xUYWcudGVzdC50ZXN0KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN2ID0gc291cmNlWzBdID09PSAndCcgfHwgc291cmNlWzBdID09PSAnVCc7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHN2KVxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gY3R4Lm9wdGlvbnMudHJ1ZVN0ciA6IGN0eC5vcHRpb25zLmZhbHNlU3RyO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGJvb2xUYWcgfTtcbiIsICJmdW5jdGlvbiBzdHJpbmdpZnlOdW1iZXIoeyBmb3JtYXQsIG1pbkZyYWN0aW9uRGlnaXRzLCB0YWcsIHZhbHVlIH0pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYmlnaW50JylcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIWlzRmluaXRlKG51bSkpXG4gICAgICAgIHJldHVybiBpc05hTihudW0pID8gJy5uYW4nIDogbnVtIDwgMCA/ICctLmluZicgOiAnLmluZic7XG4gICAgbGV0IG4gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKCFmb3JtYXQgJiZcbiAgICAgICAgbWluRnJhY3Rpb25EaWdpdHMgJiZcbiAgICAgICAgKCF0YWcgfHwgdGFnID09PSAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnKSAmJlxuICAgICAgICAvXlxcZC8udGVzdChuKSkge1xuICAgICAgICBsZXQgaSA9IG4uaW5kZXhPZignLicpO1xuICAgICAgICBpZiAoaSA8IDApIHtcbiAgICAgICAgICAgIGkgPSBuLmxlbmd0aDtcbiAgICAgICAgICAgIG4gKz0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkID0gbWluRnJhY3Rpb25EaWdpdHMgLSAobi5sZW5ndGggLSBpIC0gMSk7XG4gICAgICAgIHdoaWxlIChkLS0gPiAwKVxuICAgICAgICAgICAgbiArPSAnMCc7XG4gICAgfVxuICAgIHJldHVybiBuO1xufVxuXG5leHBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5TnVtYmVyIH0gZnJvbSAnLi4vLi4vc3RyaW5naWZ5L3N0cmluZ2lmeU51bWJlci5qcyc7XG5cbmNvbnN0IGZsb2F0TmFOID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eKD86Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwubmFufFxcLk5hTnxcXC5OQU4pJC8sXG4gICAgcmVzb2x2ZTogc3RyID0+IHN0ci5zbGljZSgtMykudG9Mb3dlckNhc2UoKSA9PT0gJ25hbidcbiAgICAgICAgPyBOYU5cbiAgICAgICAgOiBzdHJbMF0gPT09ICctJ1xuICAgICAgICAgICAgPyBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFlcbiAgICAgICAgICAgIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5TnVtYmVyXG59O1xuY29uc3QgZmxvYXRFeHAgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCcsXG4gICAgZm9ybWF0OiAnRVhQJyxcbiAgICB0ZXN0OiAvXlstK10/KD86XFwuWzAtOV0rfFswLTldKyg/OlxcLlswLTldKik/KVtlRV1bLStdP1swLTldKyQvLFxuICAgIHJlc29sdmU6IHN0ciA9PiBwYXJzZUZsb2F0KHN0ciksXG4gICAgc3RyaW5naWZ5KG5vZGUpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKG5vZGUudmFsdWUpO1xuICAgICAgICByZXR1cm4gaXNGaW5pdGUobnVtKSA/IG51bS50b0V4cG9uZW50aWFsKCkgOiBzdHJpbmdpZnlOdW1iZXIobm9kZSk7XG4gICAgfVxufTtcbmNvbnN0IGZsb2F0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eWy0rXT8oPzpcXC5bMC05XSt8WzAtOV0rXFwuWzAtOV0qKSQvLFxuICAgIHJlc29sdmUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgU2NhbGFyKHBhcnNlRmxvYXQoc3RyKSk7XG4gICAgICAgIGNvbnN0IGRvdCA9IHN0ci5pbmRleE9mKCcuJyk7XG4gICAgICAgIGlmIChkb3QgIT09IC0xICYmIHN0cltzdHIubGVuZ3RoIC0gMV0gPT09ICcwJylcbiAgICAgICAgICAgIG5vZGUubWluRnJhY3Rpb25EaWdpdHMgPSBzdHIubGVuZ3RoIC0gZG90IC0gMTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeU51bWJlclxufTtcblxuZXhwb3J0IHsgZmxvYXQsIGZsb2F0RXhwLCBmbG9hdE5hTiB9O1xuIiwgImltcG9ydCB7IHN0cmluZ2lmeU51bWJlciB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlOdW1iZXIuanMnO1xuXG5jb25zdCBpbnRJZGVudGlmeSA9ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyB8fCBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbmNvbnN0IGludFJlc29sdmUgPSAoc3RyLCBvZmZzZXQsIHJhZGl4LCB7IGludEFzQmlnSW50IH0pID0+IChpbnRBc0JpZ0ludCA/IEJpZ0ludChzdHIpIDogcGFyc2VJbnQoc3RyLnN1YnN0cmluZyhvZmZzZXQpLCByYWRpeCkpO1xuZnVuY3Rpb24gaW50U3RyaW5naWZ5KG5vZGUsIHJhZGl4LCBwcmVmaXgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBub2RlO1xuICAgIGlmIChpbnRJZGVudGlmeSh2YWx1ZSkgJiYgdmFsdWUgPj0gMClcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIHZhbHVlLnRvU3RyaW5nKHJhZGl4KTtcbiAgICByZXR1cm4gc3RyaW5naWZ5TnVtYmVyKG5vZGUpO1xufVxuY29uc3QgaW50T2N0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiBpbnRJZGVudGlmeSh2YWx1ZSkgJiYgdmFsdWUgPj0gMCxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmludCcsXG4gICAgZm9ybWF0OiAnT0NUJyxcbiAgICB0ZXN0OiAvXjBvWzAtN10rJC8sXG4gICAgcmVzb2x2ZTogKHN0ciwgX29uRXJyb3IsIG9wdCkgPT4gaW50UmVzb2x2ZShzdHIsIDIsIDgsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCA4LCAnMG8nKVxufTtcbmNvbnN0IGludCA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMCwgMTAsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5jb25zdCBpbnRIZXggPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IGludElkZW50aWZ5KHZhbHVlKSAmJiB2YWx1ZSA+PSAwLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdIRVgnLFxuICAgIHRlc3Q6IC9eMHhbMC05YS1mQS1GXSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMiwgMTYsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCAxNiwgJzB4Jylcbn07XG5cbmV4cG9ydCB7IGludCwgaW50SGV4LCBpbnRPY3QgfTtcbiIsICJpbXBvcnQgeyBtYXAgfSBmcm9tICcuLi9jb21tb24vbWFwLmpzJztcbmltcG9ydCB7IG51bGxUYWcgfSBmcm9tICcuLi9jb21tb24vbnVsbC5qcyc7XG5pbXBvcnQgeyBzZXEgfSBmcm9tICcuLi9jb21tb24vc2VxLmpzJztcbmltcG9ydCB7IHN0cmluZyB9IGZyb20gJy4uL2NvbW1vbi9zdHJpbmcuanMnO1xuaW1wb3J0IHsgYm9vbFRhZyB9IGZyb20gJy4vYm9vbC5qcyc7XG5pbXBvcnQgeyBmbG9hdE5hTiwgZmxvYXRFeHAsIGZsb2F0IH0gZnJvbSAnLi9mbG9hdC5qcyc7XG5pbXBvcnQgeyBpbnRPY3QsIGludCwgaW50SGV4IH0gZnJvbSAnLi9pbnQuanMnO1xuXG5jb25zdCBzY2hlbWEgPSBbXG4gICAgbWFwLFxuICAgIHNlcSxcbiAgICBzdHJpbmcsXG4gICAgbnVsbFRhZyxcbiAgICBib29sVGFnLFxuICAgIGludE9jdCxcbiAgICBpbnQsXG4gICAgaW50SGV4LFxuICAgIGZsb2F0TmFOLFxuICAgIGZsb2F0RXhwLFxuICAgIGZsb2F0XG5dO1xuXG5leHBvcnQgeyBzY2hlbWEgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi4vY29tbW9uL21hcC5qcyc7XG5pbXBvcnQgeyBzZXEgfSBmcm9tICcuLi9jb21tb24vc2VxLmpzJztcblxuZnVuY3Rpb24gaW50SWRlbnRpZnkodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyB8fCBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbn1cbmNvbnN0IHN0cmluZ2lmeUpTT04gPSAoeyB2YWx1ZSB9KSA9PiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5jb25zdCBqc29uU2NhbGFycyA9IFtcbiAgICB7XG4gICAgICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzdHInLFxuICAgICAgICByZXNvbHZlOiBzdHIgPT4gc3RyLFxuICAgICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeUpTT05cbiAgICB9LFxuICAgIHtcbiAgICAgICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlID09IG51bGwsXG4gICAgICAgIGNyZWF0ZU5vZGU6ICgpID0+IG5ldyBTY2FsYXIobnVsbCksXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOm51bGwnLFxuICAgICAgICB0ZXN0OiAvXm51bGwkLyxcbiAgICAgICAgcmVzb2x2ZTogKCkgPT4gbnVsbCxcbiAgICAgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlKU09OXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgICAgIHRlc3Q6IC9edHJ1ZXxmYWxzZSQvLFxuICAgICAgICByZXNvbHZlOiBzdHIgPT4gc3RyID09PSAndHJ1ZScsXG4gICAgICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5SlNPTlxuICAgIH0sXG4gICAge1xuICAgICAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmludCcsXG4gICAgICAgIHRlc3Q6IC9eLT8oPzowfFsxLTldWzAtOV0qKSQvLFxuICAgICAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgeyBpbnRBc0JpZ0ludCB9KSA9PiBpbnRBc0JpZ0ludCA/IEJpZ0ludChzdHIpIDogcGFyc2VJbnQoc3RyLCAxMCksXG4gICAgICAgIHN0cmluZ2lmeTogKHsgdmFsdWUgfSkgPT4gaW50SWRlbnRpZnkodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKVxuICAgIH0sXG4gICAge1xuICAgICAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgICAgICB0ZXN0OiAvXi0/KD86MHxbMS05XVswLTldKikoPzpcXC5bMC05XSopPyg/OltlRV1bLStdP1swLTldKyk/JC8sXG4gICAgICAgIHJlc29sdmU6IHN0ciA9PiBwYXJzZUZsb2F0KHN0ciksXG4gICAgICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5SlNPTlxuICAgIH1cbl07XG5jb25zdCBqc29uRXJyb3IgPSB7XG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICcnLFxuICAgIHRlc3Q6IC9eLyxcbiAgICByZXNvbHZlKHN0ciwgb25FcnJvcikge1xuICAgICAgICBvbkVycm9yKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KHN0cil9YCk7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxufTtcbmNvbnN0IHNjaGVtYSA9IFttYXAsIHNlcV0uY29uY2F0KGpzb25TY2FsYXJzLCBqc29uRXJyb3IpO1xuXG5leHBvcnQgeyBzY2hlbWEgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5U3RyaW5nIH0gZnJvbSAnLi4vLi4vc3RyaW5naWZ5L3N0cmluZ2lmeVN0cmluZy5qcyc7XG5cbmNvbnN0IGJpbmFyeSA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5LCAvLyBCdWZmZXIgaW5oZXJpdHMgZnJvbSBVaW50OEFycmF5XG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5JyxcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgQnVmZmVyIGluIG5vZGUgYW5kIGFuIFVpbnQ4QXJyYXkgaW4gYnJvd3NlcnNcbiAgICAgKlxuICAgICAqIFRvIHVzZSB0aGUgcmVzdWx0aW5nIGJ1ZmZlciBhcyBhbiBpbWFnZSwgeW91J2xsIHdhbnQgdG8gZG8gc29tZXRoaW5nIGxpa2U6XG4gICAgICpcbiAgICAgKiAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnaW1hZ2UvanBlZycgfSlcbiAgICAgKiAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwaG90bycpLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgKi9cbiAgICByZXNvbHZlKHNyYywgb25FcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNyYywgJ2Jhc2U2NCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBhdG9iID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBPbiBJRSAxMSwgYXRvYigpIGNhbid0IGhhbmRsZSBuZXdsaW5lc1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gYXRvYihzcmMucmVwbGFjZSgvW1xcblxccl0vZywgJycpKTtcbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25FcnJvcignVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYXRvYiBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIHNyYztcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc3RyaW5naWZ5KHsgY29tbWVudCwgdHlwZSwgdmFsdWUgfSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIGNvbnN0IGJ1ZiA9IHZhbHVlOyAvLyBjaGVja2VkIGVhcmxpZXIgYnkgYmluYXJ5LmlkZW50aWZ5KClcbiAgICAgICAgbGV0IHN0cjtcbiAgICAgICAgaWYgKHR5cGVvZiBCdWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0ciA9XG4gICAgICAgICAgICAgICAgYnVmIGluc3RhbmNlb2YgQnVmZmVyXG4gICAgICAgICAgICAgICAgICAgID8gYnVmLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgICAgICAgICAgICAgICA6IEJ1ZmZlci5mcm9tKGJ1Zi5idWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgYnRvYSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHMgPSAnJztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgKytpKVxuICAgICAgICAgICAgICAgIHMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pO1xuICAgICAgICAgICAgc3RyID0gYnRvYShzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYnRvYSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHR5cGUgPSBTY2FsYXIuQkxPQ0tfTElURVJBTDtcbiAgICAgICAgaWYgKHR5cGUgIT09IFNjYWxhci5RVU9URV9ET1VCTEUpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVXaWR0aCA9IE1hdGgubWF4KGN0eC5vcHRpb25zLmxpbmVXaWR0aCAtIGN0eC5pbmRlbnQubGVuZ3RoLCBjdHgub3B0aW9ucy5taW5Db250ZW50V2lkdGgpO1xuICAgICAgICAgICAgY29uc3QgbiA9IE1hdGguY2VpbChzdHIubGVuZ3RoIC8gbGluZVdpZHRoKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5KG4pO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIG8gPSAwOyBpIDwgbjsgKytpLCBvICs9IGxpbmVXaWR0aCkge1xuICAgICAgICAgICAgICAgIGxpbmVzW2ldID0gc3RyLnN1YnN0cihvLCBsaW5lV2lkdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyID0gbGluZXMuam9pbih0eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTCA/ICdcXG4nIDogJyAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyaW5naWZ5U3RyaW5nKHsgY29tbWVudCwgdHlwZSwgdmFsdWU6IHN0ciB9LCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGJpbmFyeSB9O1xuIiwgImltcG9ydCB7IGlzU2VxLCBpc1BhaXIsIGlzTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciwgY3JlYXRlUGFpciB9IGZyb20gJy4uLy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MU2VxLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZVBhaXJzKHNlcSwgb25FcnJvcikge1xuICAgIGlmIChpc1NlcShzZXEpKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VxLml0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9IHNlcS5pdGVtc1tpXTtcbiAgICAgICAgICAgIGlmIChpc1BhaXIoaXRlbSkpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBlbHNlIGlmIChpc01hcChpdGVtKSkge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLml0ZW1zLmxlbmd0aCA+IDEpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoJ0VhY2ggcGFpciBtdXN0IGhhdmUgaXRzIG93biBzZXF1ZW5jZSBpbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWlyID0gaXRlbS5pdGVtc1swXSB8fCBuZXcgUGFpcihuZXcgU2NhbGFyKG51bGwpKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5jb21tZW50QmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICBwYWlyLmtleS5jb21tZW50QmVmb3JlID0gcGFpci5rZXkuY29tbWVudEJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtpdGVtLmNvbW1lbnRCZWZvcmV9XFxuJHtwYWlyLmtleS5jb21tZW50QmVmb3JlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5jb21tZW50QmVmb3JlO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNvbW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY24gPSBwYWlyLnZhbHVlID8/IHBhaXIua2V5O1xuICAgICAgICAgICAgICAgICAgICBjbi5jb21tZW50ID0gY24uY29tbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtpdGVtLmNvbW1lbnR9XFxuJHtjbi5jb21tZW50fWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtID0gcGFpcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlcS5pdGVtc1tpXSA9IGlzUGFpcihpdGVtKSA/IGl0ZW0gOiBuZXcgUGFpcihpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlXG4gICAgICAgIG9uRXJyb3IoJ0V4cGVjdGVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgdGFnJyk7XG4gICAgcmV0dXJuIHNlcTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBhaXJzKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgIGNvbnN0IHsgcmVwbGFjZXIgfSA9IGN0eDtcbiAgICBjb25zdCBwYWlycyA9IG5ldyBZQU1MU2VxKHNjaGVtYSk7XG4gICAgcGFpcnMudGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOnBhaXJzJztcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKGl0ZXJhYmxlICYmIFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoaXRlcmFibGUpKVxuICAgICAgICBmb3IgKGxldCBpdCBvZiBpdGVyYWJsZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgICAgICBpdCA9IHJlcGxhY2VyLmNhbGwoaXRlcmFibGUsIFN0cmluZyhpKyspLCBpdCk7XG4gICAgICAgICAgICBsZXQga2V5LCB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0KSkge1xuICAgICAgICAgICAgICAgIGlmIChpdC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5ID0gaXRbMF07XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke2l0fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXQgJiYgaXQgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaXQpO1xuICAgICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCB0dXBsZSB3aXRoIG9uZSBrZXksIG5vdCAke2tleXMubGVuZ3RofSBrZXlzYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAga2V5ID0gaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWlycy5pdGVtcy5wdXNoKGNyZWF0ZVBhaXIoa2V5LCB2YWx1ZSwgY3R4KSk7XG4gICAgICAgIH1cbiAgICByZXR1cm4gcGFpcnM7XG59XG5jb25zdCBwYWlycyA9IHtcbiAgICBjb2xsZWN0aW9uOiAnc2VxJyxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsXG4gICAgcmVzb2x2ZTogcmVzb2x2ZVBhaXJzLFxuICAgIGNyZWF0ZU5vZGU6IGNyZWF0ZVBhaXJzXG59O1xuXG5leHBvcnQgeyBjcmVhdGVQYWlycywgcGFpcnMsIHJlc29sdmVQYWlycyB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc1BhaXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi4vLi4vbm9kZXMvdG9KUy5qcyc7XG5pbXBvcnQgeyBZQU1MTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvWUFNTE1hcC5qcyc7XG5pbXBvcnQgeyBZQU1MU2VxIH0gZnJvbSAnLi4vLi4vbm9kZXMvWUFNTFNlcS5qcyc7XG5pbXBvcnQgeyByZXNvbHZlUGFpcnMsIGNyZWF0ZVBhaXJzIH0gZnJvbSAnLi9wYWlycy5qcyc7XG5cbmNsYXNzIFlBTUxPTWFwIGV4dGVuZHMgWUFNTFNlcSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYWRkID0gWUFNTE1hcC5wcm90b3R5cGUuYWRkLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZGVsZXRlID0gWUFNTE1hcC5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZ2V0ID0gWUFNTE1hcC5wcm90b3R5cGUuZ2V0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFzID0gWUFNTE1hcC5wcm90b3R5cGUuaGFzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2V0ID0gWUFNTE1hcC5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMudGFnID0gWUFNTE9NYXAudGFnO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiBgY3R4YCBpcyBnaXZlbiwgdGhlIHJldHVybiB0eXBlIGlzIGFjdHVhbGx5IGBNYXA8dW5rbm93biwgdW5rbm93bj5gLFxuICAgICAqIGJ1dCBUeXBlU2NyaXB0IHdvbid0IGFsbG93IHdpZGVuaW5nIHRoZSBzaWduYXR1cmUgb2YgYSBjaGlsZCBtZXRob2QuXG4gICAgICovXG4gICAgdG9KU09OKF8sIGN0eCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiBzdXBlci50b0pTT04oXyk7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKGN0eD8ub25DcmVhdGUpXG4gICAgICAgICAgICBjdHgub25DcmVhdGUobWFwKTtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGxldCBrZXksIHZhbHVlO1xuICAgICAgICAgICAgaWYgKGlzUGFpcihwYWlyKSkge1xuICAgICAgICAgICAgICAgIGtleSA9IHRvSlMocGFpci5rZXksICcnLCBjdHgpO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9KUyhwYWlyLnZhbHVlLCBrZXksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBrZXkgPSB0b0pTKHBhaXIsICcnLCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hcC5oYXMoa2V5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzJyk7XG4gICAgICAgICAgICBtYXAuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgICAgICBjb25zdCBwYWlycyA9IGNyZWF0ZVBhaXJzKHNjaGVtYSwgaXRlcmFibGUsIGN0eCk7XG4gICAgICAgIGNvbnN0IG9tYXAgPSBuZXcgdGhpcygpO1xuICAgICAgICBvbWFwLml0ZW1zID0gcGFpcnMuaXRlbXM7XG4gICAgICAgIHJldHVybiBvbWFwO1xuICAgIH1cbn1cbllBTUxPTWFwLnRhZyA9ICd0YWc6eWFtbC5vcmcsMjAwMjpvbWFwJztcbmNvbnN0IG9tYXAgPSB7XG4gICAgY29sbGVjdGlvbjogJ3NlcScsXG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlIGluc3RhbmNlb2YgTWFwLFxuICAgIG5vZGVDbGFzczogWUFNTE9NYXAsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsXG4gICAgcmVzb2x2ZShzZXEsIG9uRXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGFpcnMgPSByZXNvbHZlUGFpcnMoc2VxLCBvbkVycm9yKTtcbiAgICAgICAgY29uc3Qgc2VlbktleXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB7IGtleSB9IG9mIHBhaXJzLml0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXNTY2FsYXIoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWVuS2V5cy5pbmNsdWRlcyhrZXkudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoYE9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzOiAke2tleS52YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZW5LZXlzLnB1c2goa2V5LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFlBTUxPTWFwKCksIHBhaXJzKTtcbiAgICB9LFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpID0+IFlBTUxPTWFwLmZyb20oc2NoZW1hLCBpdGVyYWJsZSwgY3R4KVxufTtcblxuZXhwb3J0IHsgWUFNTE9NYXAsIG9tYXAgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5mdW5jdGlvbiBib29sU3RyaW5naWZ5KHsgdmFsdWUsIHNvdXJjZSB9LCBjdHgpIHtcbiAgICBjb25zdCBib29sT2JqID0gdmFsdWUgPyB0cnVlVGFnIDogZmFsc2VUYWc7XG4gICAgaWYgKHNvdXJjZSAmJiBib29sT2JqLnRlc3QudGVzdChzb3VyY2UpKVxuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIHJldHVybiB2YWx1ZSA/IGN0eC5vcHRpb25zLnRydWVTdHIgOiBjdHgub3B0aW9ucy5mYWxzZVN0cjtcbn1cbmNvbnN0IHRydWVUYWcgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlID09PSB0cnVlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgdGVzdDogL14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8sXG4gICAgcmVzb2x2ZTogKCkgPT4gbmV3IFNjYWxhcih0cnVlKSxcbiAgICBzdHJpbmdpZnk6IGJvb2xTdHJpbmdpZnlcbn07XG5jb25zdCBmYWxzZVRhZyA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgPT09IGZhbHNlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgdGVzdDogL14oPzpOfG58W05uXW98Tk98W0ZmXWFsc2V8RkFMU0V8W09vXWZmfE9GRikkLyxcbiAgICByZXNvbHZlOiAoKSA9PiBuZXcgU2NhbGFyKGZhbHNlKSxcbiAgICBzdHJpbmdpZnk6IGJvb2xTdHJpbmdpZnlcbn07XG5cbmV4cG9ydCB7IGZhbHNlVGFnLCB0cnVlVGFnIH07XG4iLCAiaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeU51bWJlciB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlOdW1iZXIuanMnO1xuXG5jb25zdCBmbG9hdE5hTiA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0JyxcbiAgICB0ZXN0OiAvXig/OlstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLm5hbnxcXC5OYU58XFwuTkFOKSQvLFxuICAgIHJlc29sdmU6IChzdHIpID0+IHN0ci5zbGljZSgtMykudG9Mb3dlckNhc2UoKSA9PT0gJ25hbidcbiAgICAgICAgPyBOYU5cbiAgICAgICAgOiBzdHJbMF0gPT09ICctJ1xuICAgICAgICAgICAgPyBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFlcbiAgICAgICAgICAgIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5TnVtYmVyXG59O1xuY29uc3QgZmxvYXRFeHAgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCcsXG4gICAgZm9ybWF0OiAnRVhQJyxcbiAgICB0ZXN0OiAvXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcXC5bMC05X10qKT9bZUVdWy0rXT9bMC05XSskLyxcbiAgICByZXNvbHZlOiAoc3RyKSA9PiBwYXJzZUZsb2F0KHN0ci5yZXBsYWNlKC9fL2csICcnKSksXG4gICAgc3RyaW5naWZ5KG5vZGUpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKG5vZGUudmFsdWUpO1xuICAgICAgICByZXR1cm4gaXNGaW5pdGUobnVtKSA/IG51bS50b0V4cG9uZW50aWFsKCkgOiBzdHJpbmdpZnlOdW1iZXIobm9kZSk7XG4gICAgfVxufTtcbmNvbnN0IGZsb2F0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eWy0rXT8oPzpbMC05XVswLTlfXSopP1xcLlswLTlfXSokLyxcbiAgICByZXNvbHZlKHN0cikge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IFNjYWxhcihwYXJzZUZsb2F0KHN0ci5yZXBsYWNlKC9fL2csICcnKSkpO1xuICAgICAgICBjb25zdCBkb3QgPSBzdHIuaW5kZXhPZignLicpO1xuICAgICAgICBpZiAoZG90ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgZiA9IHN0ci5zdWJzdHJpbmcoZG90ICsgMSkucmVwbGFjZSgvXy9nLCAnJyk7XG4gICAgICAgICAgICBpZiAoZltmLmxlbmd0aCAtIDFdID09PSAnMCcpXG4gICAgICAgICAgICAgICAgbm9kZS5taW5GcmFjdGlvbkRpZ2l0cyA9IGYubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH0sXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5cbmV4cG9ydCB7IGZsb2F0LCBmbG9hdEV4cCwgZmxvYXROYU4gfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfSBmcm9tICcuLi8uLi9zdHJpbmdpZnkvc3RyaW5naWZ5TnVtYmVyLmpzJztcblxuY29uc3QgaW50SWRlbnRpZnkgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgfHwgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSk7XG5mdW5jdGlvbiBpbnRSZXNvbHZlKHN0ciwgb2Zmc2V0LCByYWRpeCwgeyBpbnRBc0JpZ0ludCB9KSB7XG4gICAgY29uc3Qgc2lnbiA9IHN0clswXTtcbiAgICBpZiAoc2lnbiA9PT0gJy0nIHx8IHNpZ24gPT09ICcrJylcbiAgICAgICAgb2Zmc2V0ICs9IDE7XG4gICAgc3RyID0gc3RyLnN1YnN0cmluZyhvZmZzZXQpLnJlcGxhY2UoL18vZywgJycpO1xuICAgIGlmIChpbnRBc0JpZ0ludCkge1xuICAgICAgICBzd2l0Y2ggKHJhZGl4KSB7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgc3RyID0gYDBiJHtzdHJ9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICBzdHIgPSBgMG8ke3N0cn1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgICAgICBzdHIgPSBgMHgke3N0cn1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSBCaWdJbnQoc3RyKTtcbiAgICAgICAgcmV0dXJuIHNpZ24gPT09ICctJyA/IEJpZ0ludCgtMSkgKiBuIDogbjtcbiAgICB9XG4gICAgY29uc3QgbiA9IHBhcnNlSW50KHN0ciwgcmFkaXgpO1xuICAgIHJldHVybiBzaWduID09PSAnLScgPyAtMSAqIG4gOiBuO1xufVxuZnVuY3Rpb24gaW50U3RyaW5naWZ5KG5vZGUsIHJhZGl4LCBwcmVmaXgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBub2RlO1xuICAgIGlmIChpbnRJZGVudGlmeSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3Qgc3RyID0gdmFsdWUudG9TdHJpbmcocmFkaXgpO1xuICAgICAgICByZXR1cm4gdmFsdWUgPCAwID8gJy0nICsgcHJlZml4ICsgc3RyLnN1YnN0cigxKSA6IHByZWZpeCArIHN0cjtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZ2lmeU51bWJlcihub2RlKTtcbn1cbmNvbnN0IGludEJpbiA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIGZvcm1hdDogJ0JJTicsXG4gICAgdGVzdDogL15bLStdPzBiWzAtMV9dKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCBvcHQpID0+IGludFJlc29sdmUoc3RyLCAyLCAyLCBvcHQpLFxuICAgIHN0cmluZ2lmeTogbm9kZSA9PiBpbnRTdHJpbmdpZnkobm9kZSwgMiwgJzBiJylcbn07XG5jb25zdCBpbnRPY3QgPSB7XG4gICAgaWRlbnRpZnk6IGludElkZW50aWZ5LFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdPQ1QnLFxuICAgIHRlc3Q6IC9eWy0rXT8wWzAtN19dKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCBvcHQpID0+IGludFJlc29sdmUoc3RyLCAxLCA4LCBvcHQpLFxuICAgIHN0cmluZ2lmeTogbm9kZSA9PiBpbnRTdHJpbmdpZnkobm9kZSwgOCwgJzAnKVxufTtcbmNvbnN0IGludCA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XVswLTlfXSokLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMCwgMTAsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5jb25zdCBpbnRIZXggPSB7XG4gICAgaWRlbnRpZnk6IGludElkZW50aWZ5LFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdIRVgnLFxuICAgIHRlc3Q6IC9eWy0rXT8weFswLTlhLWZBLUZfXSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMiwgMTYsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCAxNiwgJzB4Jylcbn07XG5cbmV4cG9ydCB7IGludCwgaW50QmluLCBpbnRIZXgsIGludE9jdCB9O1xuIiwgImltcG9ydCB7IGlzTWFwLCBpc1BhaXIsIGlzU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciwgY3JlYXRlUGFpciB9IGZyb20gJy4uLy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCwgZmluZFBhaXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MTWFwLmpzJztcblxuY2xhc3MgWUFNTFNldCBleHRlbmRzIFlBTUxNYXAge1xuICAgIGNvbnN0cnVjdG9yKHNjaGVtYSkge1xuICAgICAgICBzdXBlcihzY2hlbWEpO1xuICAgICAgICB0aGlzLnRhZyA9IFlBTUxTZXQudGFnO1xuICAgIH1cbiAgICBhZGQoa2V5KSB7XG4gICAgICAgIGxldCBwYWlyO1xuICAgICAgICBpZiAoaXNQYWlyKGtleSkpXG4gICAgICAgICAgICBwYWlyID0ga2V5O1xuICAgICAgICBlbHNlIGlmIChrZXkgJiZcbiAgICAgICAgICAgIHR5cGVvZiBrZXkgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAna2V5JyBpbiBrZXkgJiZcbiAgICAgICAgICAgICd2YWx1ZScgaW4ga2V5ICYmXG4gICAgICAgICAgICBrZXkudmFsdWUgPT09IG51bGwpXG4gICAgICAgICAgICBwYWlyID0gbmV3IFBhaXIoa2V5LmtleSwgbnVsbCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHBhaXIgPSBuZXcgUGFpcihrZXksIG51bGwpO1xuICAgICAgICBjb25zdCBwcmV2ID0gZmluZFBhaXIodGhpcy5pdGVtcywgcGFpci5rZXkpO1xuICAgICAgICBpZiAoIXByZXYpXG4gICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2gocGFpcik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIGBrZWVwUGFpcmAgaXMgYHRydWVgLCByZXR1cm5zIHRoZSBQYWlyIG1hdGNoaW5nIGBrZXlgLlxuICAgICAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhhdCBQYWlyJ3Mga2V5LlxuICAgICAqL1xuICAgIGdldChrZXksIGtlZXBQYWlyKSB7XG4gICAgICAgIGNvbnN0IHBhaXIgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICByZXR1cm4gIWtlZXBQYWlyICYmIGlzUGFpcihwYWlyKVxuICAgICAgICAgICAgPyBpc1NjYWxhcihwYWlyLmtleSlcbiAgICAgICAgICAgICAgICA/IHBhaXIua2V5LnZhbHVlXG4gICAgICAgICAgICAgICAgOiBwYWlyLmtleVxuICAgICAgICAgICAgOiBwYWlyO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4gdmFsdWUgZm9yIHNldChrZXksIHZhbHVlKSBpbiBhIFlBTUwgc2V0LCBub3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgICAgIGNvbnN0IHByZXYgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICBpZiAocHJldiAmJiAhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihwcmV2KSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXByZXYgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChuZXcgUGFpcihrZXkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b0pTT04oXywgY3R4KSB7XG4gICAgICAgIHJldHVybiBzdXBlci50b0pTT04oXywgY3R4LCBTZXQpO1xuICAgIH1cbiAgICB0b1N0cmluZyhjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApIHtcbiAgICAgICAgaWYgKCFjdHgpXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLmhhc0FsbE51bGxWYWx1ZXModHJ1ZSkpXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudG9TdHJpbmcoT2JqZWN0LmFzc2lnbih7fSwgY3R4LCB7IGFsbE51bGxWYWx1ZXM6IHRydWUgfSksIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzJyk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGlmIChpdGVyYWJsZSAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXJhYmxlKSlcbiAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIGl0ZXJhYmxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSByZXBsYWNlci5jYWxsKGl0ZXJhYmxlLCB2YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIHNldC5pdGVtcy5wdXNoKGNyZWF0ZVBhaXIodmFsdWUsIG51bGwsIGN0eCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0O1xuICAgIH1cbn1cbllBTUxTZXQudGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOnNldCc7XG5jb25zdCBzZXQgPSB7XG4gICAgY29sbGVjdGlvbjogJ21hcCcsXG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlIGluc3RhbmNlb2YgU2V0LFxuICAgIG5vZGVDbGFzczogWUFNTFNldCxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzZXQnLFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpID0+IFlBTUxTZXQuZnJvbShzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpLFxuICAgIHJlc29sdmUobWFwLCBvbkVycm9yKSB7XG4gICAgICAgIGlmIChpc01hcChtYXApKSB7XG4gICAgICAgICAgICBpZiAobWFwLmhhc0FsbE51bGxWYWx1ZXModHJ1ZSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFlBTUxTZXQoKSwgbWFwKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvbkVycm9yKCdTZXQgaXRlbXMgbXVzdCBhbGwgaGF2ZSBudWxsIHZhbHVlcycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIG9uRXJyb3IoJ0V4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWcnKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBZQU1MU2V0LCBzZXQgfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfSBmcm9tICcuLi8uLi9zdHJpbmdpZnkvc3RyaW5naWZ5TnVtYmVyLmpzJztcblxuLyoqIEludGVybmFsIHR5cGVzIGhhbmRsZSBiaWdpbnQgYXMgbnVtYmVyLCBiZWNhdXNlIFRTIGNhbid0IGZpZ3VyZSBpdCBvdXQuICovXG5mdW5jdGlvbiBwYXJzZVNleGFnZXNpbWFsKHN0ciwgYXNCaWdJbnQpIHtcbiAgICBjb25zdCBzaWduID0gc3RyWzBdO1xuICAgIGNvbnN0IHBhcnRzID0gc2lnbiA9PT0gJy0nIHx8IHNpZ24gPT09ICcrJyA/IHN0ci5zdWJzdHJpbmcoMSkgOiBzdHI7XG4gICAgY29uc3QgbnVtID0gKG4pID0+IGFzQmlnSW50ID8gQmlnSW50KG4pIDogTnVtYmVyKG4pO1xuICAgIGNvbnN0IHJlcyA9IHBhcnRzXG4gICAgICAgIC5yZXBsYWNlKC9fL2csICcnKVxuICAgICAgICAuc3BsaXQoJzonKVxuICAgICAgICAucmVkdWNlKChyZXMsIHApID0+IHJlcyAqIG51bSg2MCkgKyBudW0ocCksIG51bSgwKSk7XG4gICAgcmV0dXJuIChzaWduID09PSAnLScgPyBudW0oLTEpICogcmVzIDogcmVzKTtcbn1cbi8qKlxuICogaGhoaDptbTpzcy5zc3NcbiAqXG4gKiBJbnRlcm5hbCB0eXBlcyBoYW5kbGUgYmlnaW50IGFzIG51bWJlciwgYmVjYXVzZSBUUyBjYW4ndCBmaWd1cmUgaXQgb3V0LlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlTZXhhZ2VzaW1hbChub2RlKSB7XG4gICAgbGV0IHsgdmFsdWUgfSA9IG5vZGU7XG4gICAgbGV0IG51bSA9IChuKSA9PiBuO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnKVxuICAgICAgICBudW0gPSBuID0+IEJpZ0ludChuKTtcbiAgICBlbHNlIGlmIChpc05hTih2YWx1ZSkgfHwgIWlzRmluaXRlKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeU51bWJlcihub2RlKTtcbiAgICBsZXQgc2lnbiA9ICcnO1xuICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgc2lnbiA9ICctJztcbiAgICAgICAgdmFsdWUgKj0gbnVtKC0xKTtcbiAgICB9XG4gICAgY29uc3QgXzYwID0gbnVtKDYwKTtcbiAgICBjb25zdCBwYXJ0cyA9IFt2YWx1ZSAlIF82MF07IC8vIHNlY29uZHMsIGluY2x1ZGluZyBtc1xuICAgIGlmICh2YWx1ZSA8IDYwKSB7XG4gICAgICAgIHBhcnRzLnVuc2hpZnQoMCk7IC8vIGF0IGxlYXN0IG9uZSA6IGlzIHJlcXVpcmVkXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIHBhcnRzWzBdKSAvIF82MDtcbiAgICAgICAgcGFydHMudW5zaGlmdCh2YWx1ZSAlIF82MCk7IC8vIG1pbnV0ZXNcbiAgICAgICAgaWYgKHZhbHVlID49IDYwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIHBhcnRzWzBdKSAvIF82MDtcbiAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQodmFsdWUpOyAvLyBob3Vyc1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoc2lnbiArXG4gICAgICAgIHBhcnRzXG4gICAgICAgICAgICAubWFwKG4gPT4gU3RyaW5nKG4pLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAuam9pbignOicpXG4gICAgICAgICAgICAucmVwbGFjZSgvMDAwMDAwXFxkKiQvLCAnJykgLy8gJSA2MCBtYXkgaW50cm9kdWNlIGVycm9yXG4gICAgKTtcbn1cbmNvbnN0IGludFRpbWUgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgfHwgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIGZvcm1hdDogJ1RJTUUnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCB7IGludEFzQmlnSW50IH0pID0+IHBhcnNlU2V4YWdlc2ltYWwoc3RyLCBpbnRBc0JpZ0ludCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlTZXhhZ2VzaW1hbFxufTtcbmNvbnN0IGZsb2F0VGltZSA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0JyxcbiAgICBmb3JtYXQ6ICdUSU1FJyxcbiAgICB0ZXN0OiAvXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcXC5bMC05X10qJC8sXG4gICAgcmVzb2x2ZTogc3RyID0+IHBhcnNlU2V4YWdlc2ltYWwoc3RyLCBmYWxzZSksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlTZXhhZ2VzaW1hbFxufTtcbmNvbnN0IHRpbWVzdGFtcCA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJyxcbiAgICAvLyBJZiB0aGUgdGltZSB6b25lIGlzIG9taXR0ZWQsIHRoZSB0aW1lc3RhbXAgaXMgYXNzdW1lZCB0byBiZSBzcGVjaWZpZWQgaW4gVVRDLiBUaGUgdGltZSBwYXJ0XG4gICAgLy8gbWF5IGJlIG9taXR0ZWQgYWx0b2dldGhlciwgcmVzdWx0aW5nIGluIGEgZGF0ZSBmb3JtYXQuIEluIHN1Y2ggYSBjYXNlLCB0aGUgdGltZSBwYXJ0IGlzXG4gICAgLy8gYXNzdW1lZCB0byBiZSAwMDowMDowMFogKHN0YXJ0IG9mIGRheSwgVVRDKS5cbiAgICB0ZXN0OiBSZWdFeHAoJ14oWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSknICsgLy8gWVlZWS1NbS1EZFxuICAgICAgICAnKD86JyArIC8vIHRpbWUgaXMgb3B0aW9uYWxcbiAgICAgICAgJyg/OnR8VHxbIFxcXFx0XSspJyArIC8vIHQgfCBUIHwgd2hpdGVzcGFjZVxuICAgICAgICAnKFswLTldezEsMn0pOihbMC05XXsxLDJ9KTooWzAtOV17MSwyfShcXFxcLlswLTldKyk/KScgKyAvLyBIaDpNbTpTcyguc3MpP1xuICAgICAgICAnKD86WyBcXFxcdF0qKFp8Wy0rXVswMTJdP1swLTldKD86OlswLTldezJ9KT8pKT8nICsgLy8gWiB8ICs1IHwgLTAzOjMwXG4gICAgICAgICcpPyQnKSxcbiAgICByZXNvbHZlKHN0cikge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHN0ci5tYXRjaCh0aW1lc3RhbXAudGVzdCk7XG4gICAgICAgIGlmICghbWF0Y2gpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyEhdGltZXN0YW1wIGV4cGVjdHMgYSBkYXRlLCBzdGFydGluZyB3aXRoIHl5eXktbW0tZGQnKTtcbiAgICAgICAgY29uc3QgWywgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmRdID0gbWF0Y2gubWFwKE51bWJlcik7XG4gICAgICAgIGNvbnN0IG1pbGxpc2VjID0gbWF0Y2hbN10gPyBOdW1iZXIoKG1hdGNoWzddICsgJzAwJykuc3Vic3RyKDEsIDMpKSA6IDA7XG4gICAgICAgIGxldCBkYXRlID0gRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXksIGhvdXIgfHwgMCwgbWludXRlIHx8IDAsIHNlY29uZCB8fCAwLCBtaWxsaXNlYyk7XG4gICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hbOF07XG4gICAgICAgIGlmICh0eiAmJiB0eiAhPT0gJ1onKSB7XG4gICAgICAgICAgICBsZXQgZCA9IHBhcnNlU2V4YWdlc2ltYWwodHosIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkKSA8IDMwKVxuICAgICAgICAgICAgICAgIGQgKj0gNjA7XG4gICAgICAgICAgICBkYXRlIC09IDYwMDAwICogZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSxcbiAgICBzdHJpbmdpZnk6ICh7IHZhbHVlIH0pID0+IHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKChUMDA6MDApPzowMCk/XFwuMDAwWiQvLCAnJylcbn07XG5cbmV4cG9ydCB7IGZsb2F0VGltZSwgaW50VGltZSwgdGltZXN0YW1wIH07XG4iLCAiaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi4vY29tbW9uL21hcC5qcyc7XG5pbXBvcnQgeyBudWxsVGFnIH0gZnJvbSAnLi4vY29tbW9uL251bGwuanMnO1xuaW1wb3J0IHsgc2VxIH0gZnJvbSAnLi4vY29tbW9uL3NlcS5qcyc7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuLi9jb21tb24vc3RyaW5nLmpzJztcbmltcG9ydCB7IGJpbmFyeSB9IGZyb20gJy4vYmluYXJ5LmpzJztcbmltcG9ydCB7IHRydWVUYWcsIGZhbHNlVGFnIH0gZnJvbSAnLi9ib29sLmpzJztcbmltcG9ydCB7IGZsb2F0TmFOLCBmbG9hdEV4cCwgZmxvYXQgfSBmcm9tICcuL2Zsb2F0LmpzJztcbmltcG9ydCB7IGludEJpbiwgaW50T2N0LCBpbnQsIGludEhleCB9IGZyb20gJy4vaW50LmpzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnLi9tZXJnZS5qcyc7XG5pbXBvcnQgeyBvbWFwIH0gZnJvbSAnLi9vbWFwLmpzJztcbmltcG9ydCB7IHBhaXJzIH0gZnJvbSAnLi9wYWlycy5qcyc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICcuL3NldC5qcyc7XG5pbXBvcnQgeyBpbnRUaW1lLCBmbG9hdFRpbWUsIHRpbWVzdGFtcCB9IGZyb20gJy4vdGltZXN0YW1wLmpzJztcblxuY29uc3Qgc2NoZW1hID0gW1xuICAgIG1hcCxcbiAgICBzZXEsXG4gICAgc3RyaW5nLFxuICAgIG51bGxUYWcsXG4gICAgdHJ1ZVRhZyxcbiAgICBmYWxzZVRhZyxcbiAgICBpbnRCaW4sXG4gICAgaW50T2N0LFxuICAgIGludCxcbiAgICBpbnRIZXgsXG4gICAgZmxvYXROYU4sXG4gICAgZmxvYXRFeHAsXG4gICAgZmxvYXQsXG4gICAgYmluYXJ5LFxuICAgIG1lcmdlLFxuICAgIG9tYXAsXG4gICAgcGFpcnMsXG4gICAgc2V0LFxuICAgIGludFRpbWUsXG4gICAgZmxvYXRUaW1lLFxuICAgIHRpbWVzdGFtcFxuXTtcblxuZXhwb3J0IHsgc2NoZW1hIH07XG4iLCAiaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9jb21tb24vbWFwLmpzJztcbmltcG9ydCB7IG51bGxUYWcgfSBmcm9tICcuL2NvbW1vbi9udWxsLmpzJztcbmltcG9ydCB7IHNlcSB9IGZyb20gJy4vY29tbW9uL3NlcS5qcyc7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuL2NvbW1vbi9zdHJpbmcuanMnO1xuaW1wb3J0IHsgYm9vbFRhZyB9IGZyb20gJy4vY29yZS9ib29sLmpzJztcbmltcG9ydCB7IGZsb2F0LCBmbG9hdEV4cCwgZmxvYXROYU4gfSBmcm9tICcuL2NvcmUvZmxvYXQuanMnO1xuaW1wb3J0IHsgaW50LCBpbnRIZXgsIGludE9jdCB9IGZyb20gJy4vY29yZS9pbnQuanMnO1xuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSAnLi9jb3JlL3NjaGVtYS5qcyc7XG5pbXBvcnQgeyBzY2hlbWEgYXMgc2NoZW1hJDEgfSBmcm9tICcuL2pzb24vc2NoZW1hLmpzJztcbmltcG9ydCB7IGJpbmFyeSB9IGZyb20gJy4veWFtbC0xLjEvYmluYXJ5LmpzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnLi95YW1sLTEuMS9tZXJnZS5qcyc7XG5pbXBvcnQgeyBvbWFwIH0gZnJvbSAnLi95YW1sLTEuMS9vbWFwLmpzJztcbmltcG9ydCB7IHBhaXJzIH0gZnJvbSAnLi95YW1sLTEuMS9wYWlycy5qcyc7XG5pbXBvcnQgeyBzY2hlbWEgYXMgc2NoZW1hJDIgfSBmcm9tICcuL3lhbWwtMS4xL3NjaGVtYS5qcyc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICcuL3lhbWwtMS4xL3NldC5qcyc7XG5pbXBvcnQgeyB0aW1lc3RhbXAsIGZsb2F0VGltZSwgaW50VGltZSB9IGZyb20gJy4veWFtbC0xLjEvdGltZXN0YW1wLmpzJztcblxuY29uc3Qgc2NoZW1hcyA9IG5ldyBNYXAoW1xuICAgIFsnY29yZScsIHNjaGVtYV0sXG4gICAgWydmYWlsc2FmZScsIFttYXAsIHNlcSwgc3RyaW5nXV0sXG4gICAgWydqc29uJywgc2NoZW1hJDFdLFxuICAgIFsneWFtbDExJywgc2NoZW1hJDJdLFxuICAgIFsneWFtbC0xLjEnLCBzY2hlbWEkMl1cbl0pO1xuY29uc3QgdGFnc0J5TmFtZSA9IHtcbiAgICBiaW5hcnksXG4gICAgYm9vbDogYm9vbFRhZyxcbiAgICBmbG9hdCxcbiAgICBmbG9hdEV4cCxcbiAgICBmbG9hdE5hTixcbiAgICBmbG9hdFRpbWUsXG4gICAgaW50LFxuICAgIGludEhleCxcbiAgICBpbnRPY3QsXG4gICAgaW50VGltZSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgbnVsbDogbnVsbFRhZyxcbiAgICBvbWFwLFxuICAgIHBhaXJzLFxuICAgIHNlcSxcbiAgICBzZXQsXG4gICAgdGltZXN0YW1wXG59O1xuY29uc3QgY29yZUtub3duVGFncyA9IHtcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5JzogYmluYXJ5LFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSc6IG1lcmdlLFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjpvbWFwJzogb21hcCxcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6cGFpcnMnOiBwYWlycyxcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6c2V0Jzogc2V0LFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAnOiB0aW1lc3RhbXBcbn07XG5mdW5jdGlvbiBnZXRUYWdzKGN1c3RvbVRhZ3MsIHNjaGVtYU5hbWUsIGFkZE1lcmdlVGFnKSB7XG4gICAgY29uc3Qgc2NoZW1hVGFncyA9IHNjaGVtYXMuZ2V0KHNjaGVtYU5hbWUpO1xuICAgIGlmIChzY2hlbWFUYWdzICYmICFjdXN0b21UYWdzKSB7XG4gICAgICAgIHJldHVybiBhZGRNZXJnZVRhZyAmJiAhc2NoZW1hVGFncy5pbmNsdWRlcyhtZXJnZSlcbiAgICAgICAgICAgID8gc2NoZW1hVGFncy5jb25jYXQobWVyZ2UpXG4gICAgICAgICAgICA6IHNjaGVtYVRhZ3Muc2xpY2UoKTtcbiAgICB9XG4gICAgbGV0IHRhZ3MgPSBzY2hlbWFUYWdzO1xuICAgIGlmICghdGFncykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXN0b21UYWdzKSlcbiAgICAgICAgICAgIHRhZ3MgPSBbXTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbShzY2hlbWFzLmtleXMoKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGtleSA9PiBrZXkgIT09ICd5YW1sMTEnKVxuICAgICAgICAgICAgICAgIC5tYXAoa2V5ID0+IEpTT04uc3RyaW5naWZ5KGtleSkpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hIFwiJHtzY2hlbWFOYW1lfVwiOyB1c2Ugb25lIG9mICR7a2V5c30gb3IgZGVmaW5lIGN1c3RvbVRhZ3MgYXJyYXlgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjdXN0b21UYWdzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiBjdXN0b21UYWdzKVxuICAgICAgICAgICAgdGFncyA9IHRhZ3MuY29uY2F0KHRhZyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBjdXN0b21UYWdzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRhZ3MgPSBjdXN0b21UYWdzKHRhZ3Muc2xpY2UoKSk7XG4gICAgfVxuICAgIGlmIChhZGRNZXJnZVRhZylcbiAgICAgICAgdGFncyA9IHRhZ3MuY29uY2F0KG1lcmdlKTtcbiAgICByZXR1cm4gdGFncy5yZWR1Y2UoKHRhZ3MsIHRhZykgPT4ge1xuICAgICAgICBjb25zdCB0YWdPYmogPSB0eXBlb2YgdGFnID09PSAnc3RyaW5nJyA/IHRhZ3NCeU5hbWVbdGFnXSA6IHRhZztcbiAgICAgICAgaWYgKCF0YWdPYmopIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ05hbWUgPSBKU09OLnN0cmluZ2lmeSh0YWcpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRhZ3NCeU5hbWUpXG4gICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gSlNPTi5zdHJpbmdpZnkoa2V5KSlcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7dGFnTmFtZX07IHVzZSBvbmUgb2YgJHtrZXlzfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFncy5pbmNsdWRlcyh0YWdPYmopKVxuICAgICAgICAgICAgdGFncy5wdXNoKHRhZ09iaik7XG4gICAgICAgIHJldHVybiB0YWdzO1xuICAgIH0sIFtdKTtcbn1cblxuZXhwb3J0IHsgY29yZUtub3duVGFncywgZ2V0VGFncyB9O1xuIiwgImltcG9ydCB7IE1BUCwgU0NBTEFSLCBTRVEgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICcuL2NvbW1vbi9tYXAuanMnO1xuaW1wb3J0IHsgc2VxIH0gZnJvbSAnLi9jb21tb24vc2VxLmpzJztcbmltcG9ydCB7IHN0cmluZyB9IGZyb20gJy4vY29tbW9uL3N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRUYWdzLCBjb3JlS25vd25UYWdzIH0gZnJvbSAnLi90YWdzLmpzJztcblxuY29uc3Qgc29ydE1hcEVudHJpZXNCeUtleSA9IChhLCBiKSA9PiBhLmtleSA8IGIua2V5ID8gLTEgOiBhLmtleSA+IGIua2V5ID8gMSA6IDA7XG5jbGFzcyBTY2hlbWEge1xuICAgIGNvbnN0cnVjdG9yKHsgY29tcGF0LCBjdXN0b21UYWdzLCBtZXJnZSwgcmVzb2x2ZUtub3duVGFncywgc2NoZW1hLCBzb3J0TWFwRW50cmllcywgdG9TdHJpbmdEZWZhdWx0cyB9KSB7XG4gICAgICAgIHRoaXMuY29tcGF0ID0gQXJyYXkuaXNBcnJheShjb21wYXQpXG4gICAgICAgICAgICA/IGdldFRhZ3MoY29tcGF0LCAnY29tcGF0JylcbiAgICAgICAgICAgIDogY29tcGF0XG4gICAgICAgICAgICAgICAgPyBnZXRUYWdzKG51bGwsIGNvbXBhdClcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIHRoaXMubmFtZSA9ICh0eXBlb2Ygc2NoZW1hID09PSAnc3RyaW5nJyAmJiBzY2hlbWEpIHx8ICdjb3JlJztcbiAgICAgICAgdGhpcy5rbm93blRhZ3MgPSByZXNvbHZlS25vd25UYWdzID8gY29yZUtub3duVGFncyA6IHt9O1xuICAgICAgICB0aGlzLnRhZ3MgPSBnZXRUYWdzKGN1c3RvbVRhZ3MsIHRoaXMubmFtZSwgbWVyZ2UpO1xuICAgICAgICB0aGlzLnRvU3RyaW5nT3B0aW9ucyA9IHRvU3RyaW5nRGVmYXVsdHMgPz8gbnVsbDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIE1BUCwgeyB2YWx1ZTogbWFwIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgU0NBTEFSLCB7IHZhbHVlOiBzdHJpbmcgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBTRVEsIHsgdmFsdWU6IHNlcSB9KTtcbiAgICAgICAgLy8gVXNlZCBieSBjcmVhdGVNYXAoKVxuICAgICAgICB0aGlzLnNvcnRNYXBFbnRyaWVzID1cbiAgICAgICAgICAgIHR5cGVvZiBzb3J0TWFwRW50cmllcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gc29ydE1hcEVudHJpZXNcbiAgICAgICAgICAgICAgICA6IHNvcnRNYXBFbnRyaWVzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gc29ydE1hcEVudHJpZXNCeUtleVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGNsb25lKCkge1xuICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmNyZWF0ZShTY2hlbWEucHJvdG90eXBlLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7XG4gICAgICAgIGNvcHkudGFncyA9IHRoaXMudGFncy5zbGljZSgpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFNjaGVtYSB9O1xuIiwgImltcG9ydCB7IGlzTm9kZSB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IGNyZWF0ZVN0cmluZ2lmeUNvbnRleHQsIHN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmltcG9ydCB7IGluZGVudENvbW1lbnQsIGxpbmVDb21tZW50IH0gZnJvbSAnLi9zdHJpbmdpZnlDb21tZW50LmpzJztcblxuZnVuY3Rpb24gc3RyaW5naWZ5RG9jdW1lbnQoZG9jLCBvcHRpb25zKSB7XG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBsZXQgaGFzRGlyZWN0aXZlcyA9IG9wdGlvbnMuZGlyZWN0aXZlcyA9PT0gdHJ1ZTtcbiAgICBpZiAob3B0aW9ucy5kaXJlY3RpdmVzICE9PSBmYWxzZSAmJiBkb2MuZGlyZWN0aXZlcykge1xuICAgICAgICBjb25zdCBkaXIgPSBkb2MuZGlyZWN0aXZlcy50b1N0cmluZyhkb2MpO1xuICAgICAgICBpZiAoZGlyKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGRpcik7XG4gICAgICAgICAgICBoYXNEaXJlY3RpdmVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkb2MuZGlyZWN0aXZlcy5kb2NTdGFydClcbiAgICAgICAgICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoaGFzRGlyZWN0aXZlcylcbiAgICAgICAgbGluZXMucHVzaCgnLS0tJyk7XG4gICAgY29uc3QgY3R4ID0gY3JlYXRlU3RyaW5naWZ5Q29udGV4dChkb2MsIG9wdGlvbnMpO1xuICAgIGNvbnN0IHsgY29tbWVudFN0cmluZyB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgaWYgKGRvYy5jb21tZW50QmVmb3JlKSB7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICBsaW5lcy51bnNoaWZ0KCcnKTtcbiAgICAgICAgY29uc3QgY3MgPSBjb21tZW50U3RyaW5nKGRvYy5jb21tZW50QmVmb3JlKTtcbiAgICAgICAgbGluZXMudW5zaGlmdChpbmRlbnRDb21tZW50KGNzLCAnJykpO1xuICAgIH1cbiAgICBsZXQgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgbGV0IGNvbnRlbnRDb21tZW50ID0gbnVsbDtcbiAgICBpZiAoZG9jLmNvbnRlbnRzKSB7XG4gICAgICAgIGlmIChpc05vZGUoZG9jLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgaWYgKGRvYy5jb250ZW50cy5zcGFjZUJlZm9yZSAmJiBoYXNEaXJlY3RpdmVzKVxuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgICAgICAgaWYgKGRvYy5jb250ZW50cy5jb21tZW50QmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3MgPSBjb21tZW50U3RyaW5nKGRvYy5jb250ZW50cy5jb21tZW50QmVmb3JlKTtcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGluZGVudENvbW1lbnQoY3MsICcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgYmxvY2sgc2NhbGFycyBuZWVkIHRvIGJlIGluZGVudGVkIGlmIGZvbGxvd2VkIGJ5IGEgY29tbWVudFxuICAgICAgICAgICAgY3R4LmZvcmNlQmxvY2tJbmRlbnQgPSAhIWRvYy5jb21tZW50O1xuICAgICAgICAgICAgY29udGVudENvbW1lbnQgPSBkb2MuY29udGVudHMuY29tbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvbkNob21wS2VlcCA9IGNvbnRlbnRDb21tZW50ID8gdW5kZWZpbmVkIDogKCkgPT4gKGNob21wS2VlcCA9IHRydWUpO1xuICAgICAgICBsZXQgYm9keSA9IHN0cmluZ2lmeShkb2MuY29udGVudHMsIGN0eCwgKCkgPT4gKGNvbnRlbnRDb21tZW50ID0gbnVsbCksIG9uQ2hvbXBLZWVwKTtcbiAgICAgICAgaWYgKGNvbnRlbnRDb21tZW50KVxuICAgICAgICAgICAgYm9keSArPSBsaW5lQ29tbWVudChib2R5LCAnJywgY29tbWVudFN0cmluZyhjb250ZW50Q29tbWVudCkpO1xuICAgICAgICBpZiAoKGJvZHlbMF0gPT09ICd8JyB8fCBib2R5WzBdID09PSAnPicpICYmXG4gICAgICAgICAgICBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSA9PT0gJy0tLScpIHtcbiAgICAgICAgICAgIC8vIFRvcC1sZXZlbCBibG9jayBzY2FsYXJzIHdpdGggYSBwcmVjZWRpbmcgZG9jIG1hcmtlciBvdWdodCB0byB1c2UgdGhlXG4gICAgICAgICAgICAvLyBzYW1lIGxpbmUgZm9yIHRoZWlyIGhlYWRlci5cbiAgICAgICAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdID0gYC0tLSAke2JvZHl9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBsaW5lcy5wdXNoKGJvZHkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbGluZXMucHVzaChzdHJpbmdpZnkoZG9jLmNvbnRlbnRzLCBjdHgpKTtcbiAgICB9XG4gICAgaWYgKGRvYy5kaXJlY3RpdmVzPy5kb2NFbmQpIHtcbiAgICAgICAgaWYgKGRvYy5jb21tZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjcyA9IGNvbW1lbnRTdHJpbmcoZG9jLmNvbW1lbnQpO1xuICAgICAgICAgICAgaWYgKGNzLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJy4uLicpO1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goaW5kZW50Q29tbWVudChjcywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYC4uLiAke2NzfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnLi4uJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGxldCBkYyA9IGRvYy5jb21tZW50O1xuICAgICAgICBpZiAoZGMgJiYgY2hvbXBLZWVwKVxuICAgICAgICAgICAgZGMgPSBkYy5yZXBsYWNlKC9eXFxuKy8sICcnKTtcbiAgICAgICAgaWYgKGRjKSB7XG4gICAgICAgICAgICBpZiAoKCFjaG9tcEtlZXAgfHwgY29udGVudENvbW1lbnQpICYmIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdICE9PSAnJylcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goaW5kZW50Q29tbWVudChjb21tZW50U3RyaW5nKGRjKSwgJycpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IHsgc3RyaW5naWZ5RG9jdW1lbnQgfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzRW1wdHlQYXRoLCBjb2xsZWN0aW9uRnJvbVBhdGggfSBmcm9tICcuLi9ub2Rlcy9Db2xsZWN0aW9uLmpzJztcbmltcG9ydCB7IE5PREVfVFlQRSwgRE9DLCBpc05vZGUsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBQYWlyIH0gZnJvbSAnLi4vbm9kZXMvUGFpci5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi4vbm9kZXMvdG9KUy5qcyc7XG5pbXBvcnQgeyBTY2hlbWEgfSBmcm9tICcuLi9zY2hlbWEvU2NoZW1hLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeURvY3VtZW50IH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeURvY3VtZW50LmpzJztcbmltcG9ydCB7IGFuY2hvck5hbWVzLCBmaW5kTmV3QW5jaG9yLCBjcmVhdGVOb2RlQW5jaG9ycyB9IGZyb20gJy4vYW5jaG9ycy5qcyc7XG5pbXBvcnQgeyBhcHBseVJldml2ZXIgfSBmcm9tICcuL2FwcGx5UmV2aXZlci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi9jcmVhdGVOb2RlLmpzJztcbmltcG9ydCB7IERpcmVjdGl2ZXMgfSBmcm9tICcuL2RpcmVjdGl2ZXMuanMnO1xuXG5jbGFzcyBEb2N1bWVudCB7XG4gICAgY29uc3RydWN0b3IodmFsdWUsIHJlcGxhY2VyLCBvcHRpb25zKSB7XG4gICAgICAgIC8qKiBBIGNvbW1lbnQgYmVmb3JlIHRoaXMgRG9jdW1lbnQgKi9cbiAgICAgICAgdGhpcy5jb21tZW50QmVmb3JlID0gbnVsbDtcbiAgICAgICAgLyoqIEEgY29tbWVudCBpbW1lZGlhdGVseSBhZnRlciB0aGlzIERvY3VtZW50ICovXG4gICAgICAgIHRoaXMuY29tbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBFcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIHBhcnNpbmcuICovXG4gICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgIC8qKiBXYXJuaW5ncyBlbmNvdW50ZXJlZCBkdXJpbmcgcGFyc2luZy4gKi9cbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTk9ERV9UWVBFLCB7IHZhbHVlOiBET0MgfSk7XG4gICAgICAgIGxldCBfcmVwbGFjZXIgPSBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nIHx8IEFycmF5LmlzQXJyYXkocmVwbGFjZXIpKSB7XG4gICAgICAgICAgICBfcmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgJiYgcmVwbGFjZXIpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSByZXBsYWNlcjtcbiAgICAgICAgICAgIHJlcGxhY2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgaW50QXNCaWdJbnQ6IGZhbHNlLFxuICAgICAgICAgICAga2VlcFNvdXJjZVRva2VuczogZmFsc2UsXG4gICAgICAgICAgICBsb2dMZXZlbDogJ3dhcm4nLFxuICAgICAgICAgICAgcHJldHR5RXJyb3JzOiB0cnVlLFxuICAgICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgICAgc3RyaW5nS2V5czogZmFsc2UsXG4gICAgICAgICAgICB1bmlxdWVLZXlzOiB0cnVlLFxuICAgICAgICAgICAgdmVyc2lvbjogJzEuMidcbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdDtcbiAgICAgICAgbGV0IHsgdmVyc2lvbiB9ID0gb3B0O1xuICAgICAgICBpZiAob3B0aW9ucz8uX2RpcmVjdGl2ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG9wdGlvbnMuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0KVxuICAgICAgICAgICAgICAgIHZlcnNpb24gPSB0aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbiB9KTtcbiAgICAgICAgdGhpcy5zZXRTY2hlbWEodmVyc2lvbiwgb3B0aW9ucyk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgIHRoaXMuY29udGVudHMgPVxuICAgICAgICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLmNyZWF0ZU5vZGUodmFsdWUsIF9yZXBsYWNlciwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGRlZXAgY29weSBvZiB0aGlzIERvY3VtZW50IGFuZCBpdHMgY29udGVudHMuXG4gICAgICpcbiAgICAgKiBDdXN0b20gTm9kZSB2YWx1ZXMgdGhhdCBpbmhlcml0IGZyb20gYE9iamVjdGAgc3RpbGwgcmVmZXIgdG8gdGhlaXIgb3JpZ2luYWwgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIGNsb25lKCkge1xuICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmNyZWF0ZShEb2N1bWVudC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIFtOT0RFX1RZUEVdOiB7IHZhbHVlOiBET0MgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29weS5jb21tZW50QmVmb3JlID0gdGhpcy5jb21tZW50QmVmb3JlO1xuICAgICAgICBjb3B5LmNvbW1lbnQgPSB0aGlzLmNvbW1lbnQ7XG4gICAgICAgIGNvcHkuZXJyb3JzID0gdGhpcy5lcnJvcnMuc2xpY2UoKTtcbiAgICAgICAgY29weS53YXJuaW5ncyA9IHRoaXMud2FybmluZ3Muc2xpY2UoKTtcbiAgICAgICAgY29weS5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgIGNvcHkuZGlyZWN0aXZlcyA9IHRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpO1xuICAgICAgICBjb3B5LnNjaGVtYSA9IHRoaXMuc2NoZW1hLmNsb25lKCk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgIGNvcHkuY29udGVudHMgPSBpc05vZGUodGhpcy5jb250ZW50cylcbiAgICAgICAgICAgID8gdGhpcy5jb250ZW50cy5jbG9uZShjb3B5LnNjaGVtYSlcbiAgICAgICAgICAgIDogdGhpcy5jb250ZW50cztcbiAgICAgICAgaWYgKHRoaXMucmFuZ2UpXG4gICAgICAgICAgICBjb3B5LnJhbmdlID0gdGhpcy5yYW5nZS5zbGljZSgpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgLyoqIEFkZHMgYSB2YWx1ZSB0byB0aGUgZG9jdW1lbnQuICovXG4gICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIGlmIChhc3NlcnRDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpKVxuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5hZGQodmFsdWUpO1xuICAgIH1cbiAgICAvKiogQWRkcyBhIHZhbHVlIHRvIHRoZSBkb2N1bWVudC4gKi9cbiAgICBhZGRJbihwYXRoLCB2YWx1ZSkge1xuICAgICAgICBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSlcbiAgICAgICAgICAgIHRoaXMuY29udGVudHMuYWRkSW4ocGF0aCwgdmFsdWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFsaWFzYCBub2RlLCBlbnN1cmluZyB0aGF0IHRoZSB0YXJnZXQgYG5vZGVgIGhhcyB0aGUgcmVxdWlyZWQgYW5jaG9yLlxuICAgICAqXG4gICAgICogSWYgYG5vZGVgIGFscmVhZHkgaGFzIGFuIGFuY2hvciwgYG5hbWVgIGlzIGlnbm9yZWQuXG4gICAgICogT3RoZXJ3aXNlLCB0aGUgYG5vZGUuYW5jaG9yYCB2YWx1ZSB3aWxsIGJlIHNldCB0byBgbmFtZWAsXG4gICAgICogb3IgaWYgYW4gYW5jaG9yIHdpdGggdGhhdCBuYW1lIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgZG9jdW1lbnQsXG4gICAgICogYG5hbWVgIHdpbGwgYmUgdXNlZCBhcyBhIHByZWZpeCBmb3IgYSBuZXcgdW5pcXVlIGFuY2hvci5cbiAgICAgKiBJZiBgbmFtZWAgaXMgdW5kZWZpbmVkLCB0aGUgZ2VuZXJhdGVkIGFuY2hvciB3aWxsIHVzZSAnYScgYXMgYSBwcmVmaXguXG4gICAgICovXG4gICAgY3JlYXRlQWxpYXMobm9kZSwgbmFtZSkge1xuICAgICAgICBpZiAoIW5vZGUuYW5jaG9yKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gYW5jaG9yTmFtZXModGhpcyk7XG4gICAgICAgICAgICBub2RlLmFuY2hvciA9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgICAgICAgICAgIW5hbWUgfHwgcHJldi5oYXMobmFtZSkgPyBmaW5kTmV3QW5jaG9yKG5hbWUgfHwgJ2EnLCBwcmV2KSA6IG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGlhcyhub2RlLmFuY2hvcik7XG4gICAgfVxuICAgIGNyZWF0ZU5vZGUodmFsdWUsIHJlcGxhY2VyLCBvcHRpb25zKSB7XG4gICAgICAgIGxldCBfcmVwbGFjZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXIuY2FsbCh7ICcnOiB2YWx1ZSB9LCAnJywgdmFsdWUpO1xuICAgICAgICAgICAgX3JlcGxhY2VyID0gcmVwbGFjZXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleVRvU3RyID0gKHYpID0+IHR5cGVvZiB2ID09PSAnbnVtYmVyJyB8fCB2IGluc3RhbmNlb2YgU3RyaW5nIHx8IHYgaW5zdGFuY2VvZiBOdW1iZXI7XG4gICAgICAgICAgICBjb25zdCBhc1N0ciA9IHJlcGxhY2VyLmZpbHRlcihrZXlUb1N0cikubWFwKFN0cmluZyk7XG4gICAgICAgICAgICBpZiAoYXNTdHIubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICByZXBsYWNlciA9IHJlcGxhY2VyLmNvbmNhdChhc1N0cik7XG4gICAgICAgICAgICBfcmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgJiYgcmVwbGFjZXIpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSByZXBsYWNlcjtcbiAgICAgICAgICAgIHJlcGxhY2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgYWxpYXNEdXBsaWNhdGVPYmplY3RzLCBhbmNob3JQcmVmaXgsIGZsb3csIGtlZXBVbmRlZmluZWQsIG9uVGFnT2JqLCB0YWcgfSA9IG9wdGlvbnMgPz8ge307XG4gICAgICAgIGNvbnN0IHsgb25BbmNob3IsIHNldEFuY2hvcnMsIHNvdXJjZU9iamVjdHMgfSA9IGNyZWF0ZU5vZGVBbmNob3JzKHRoaXMsIFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgYW5jaG9yUHJlZml4IHx8ICdhJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFsaWFzRHVwbGljYXRlT2JqZWN0czogYWxpYXNEdXBsaWNhdGVPYmplY3RzID8/IHRydWUsXG4gICAgICAgICAgICBrZWVwVW5kZWZpbmVkOiBrZWVwVW5kZWZpbmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgb25BbmNob3IsXG4gICAgICAgICAgICBvblRhZ09iaixcbiAgICAgICAgICAgIHJlcGxhY2VyOiBfcmVwbGFjZXIsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgc291cmNlT2JqZWN0c1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBub2RlID0gY3JlYXRlTm9kZSh2YWx1ZSwgdGFnLCBjdHgpO1xuICAgICAgICBpZiAoZmxvdyAmJiBpc0NvbGxlY3Rpb24obm9kZSkpXG4gICAgICAgICAgICBub2RlLmZsb3cgPSB0cnVlO1xuICAgICAgICBzZXRBbmNob3JzKCk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEga2V5IGFuZCBhIHZhbHVlIGludG8gYSBgUGFpcmAgdXNpbmcgdGhlIGN1cnJlbnQgc2NoZW1hLFxuICAgICAqIHJlY3Vyc2l2ZWx5IHdyYXBwaW5nIGFsbCB2YWx1ZXMgYXMgYFNjYWxhcmAgb3IgYENvbGxlY3Rpb25gIG5vZGVzLlxuICAgICAqL1xuICAgIGNyZWF0ZVBhaXIoa2V5LCB2YWx1ZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGsgPSB0aGlzLmNyZWF0ZU5vZGUoa2V5LCBudWxsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlTm9kZSh2YWx1ZSwgbnVsbCwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBuZXcgUGFpcihrLCB2KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGRvY3VtZW50LlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaXRlbSB3YXMgZm91bmQgYW5kIHJlbW92ZWQuXG4gICAgICovXG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICByZXR1cm4gYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSA/IHRoaXMuY29udGVudHMuZGVsZXRlKGtleSkgOiBmYWxzZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGRvY3VtZW50LlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaXRlbSB3YXMgZm91bmQgYW5kIHJlbW92ZWQuXG4gICAgICovXG4gICAgZGVsZXRlSW4ocGF0aCkge1xuICAgICAgICBpZiAoaXNFbXB0eVBhdGgocGF0aCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRzID09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQcmVzdW1lZCBpbXBvc3NpYmxlIGlmIFN0cmljdCBleHRlbmRzIGZhbHNlXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhc3NlcnRDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpXG4gICAgICAgICAgICA/IHRoaXMuY29udGVudHMuZGVsZXRlSW4ocGF0aClcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSBhdCBga2V5YCwgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGZvdW5kLiBCeSBkZWZhdWx0IHVud3JhcHNcbiAgICAgKiBzY2FsYXIgdmFsdWVzIGZyb20gdGhlaXIgc3Vycm91bmRpbmcgbm9kZTsgdG8gZGlzYWJsZSBzZXQgYGtlZXBTY2FsYXJgIHRvXG4gICAgICogYHRydWVgIChjb2xsZWN0aW9ucyBhcmUgYWx3YXlzIHJldHVybmVkIGludGFjdCkuXG4gICAgICovXG4gICAgZ2V0KGtleSwga2VlcFNjYWxhcikge1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpXG4gICAgICAgICAgICA/IHRoaXMuY29udGVudHMuZ2V0KGtleSwga2VlcFNjYWxhcilcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGl0ZW0gYXQgYHBhdGhgLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuIEJ5IGRlZmF1bHQgdW53cmFwc1xuICAgICAqIHNjYWxhciB2YWx1ZXMgZnJvbSB0aGVpciBzdXJyb3VuZGluZyBub2RlOyB0byBkaXNhYmxlIHNldCBga2VlcFNjYWxhcmAgdG9cbiAgICAgKiBgdHJ1ZWAgKGNvbGxlY3Rpb25zIGFyZSBhbHdheXMgcmV0dXJuZWQgaW50YWN0KS5cbiAgICAgKi9cbiAgICBnZXRJbihwYXRoLCBrZWVwU2NhbGFyKSB7XG4gICAgICAgIGlmIChpc0VtcHR5UGF0aChwYXRoKSlcbiAgICAgICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcih0aGlzLmNvbnRlbnRzKVxuICAgICAgICAgICAgICAgID8gdGhpcy5jb250ZW50cy52YWx1ZVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb250ZW50cztcbiAgICAgICAgcmV0dXJuIGlzQ29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKVxuICAgICAgICAgICAgPyB0aGlzLmNvbnRlbnRzLmdldEluKHBhdGgsIGtlZXBTY2FsYXIpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBkb2N1bWVudCBpbmNsdWRlcyBhIHZhbHVlIHdpdGggdGhlIGtleSBga2V5YC5cbiAgICAgKi9cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIHJldHVybiBpc0NvbGxlY3Rpb24odGhpcy5jb250ZW50cykgPyB0aGlzLmNvbnRlbnRzLmhhcyhrZXkpIDogZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgZG9jdW1lbnQgaW5jbHVkZXMgYSB2YWx1ZSBhdCBgcGF0aGAuXG4gICAgICovXG4gICAgaGFzSW4ocGF0aCkge1xuICAgICAgICBpZiAoaXNFbXB0eVBhdGgocGF0aCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50cyAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpID8gdGhpcy5jb250ZW50cy5oYXNJbihwYXRoKSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgaW4gdGhpcyBkb2N1bWVudC4gRm9yIGAhIXNldGAsIGB2YWx1ZWAgbmVlZHMgdG8gYmUgYVxuICAgICAqIGJvb2xlYW4gdG8gYWRkL3JlbW92ZSB0aGUgaXRlbSBmcm9tIHRoZSBzZXQuXG4gICAgICovXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudHMgPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBXZSBjYW4ndCByZWFsbHkga25vdyB0aGF0IHRoaXMgbWF0Y2hlcyBDb250ZW50cy5cbiAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSBjb2xsZWN0aW9uRnJvbVBhdGgodGhpcy5zY2hlbWEsIFtrZXldLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIGluIHRoaXMgZG9jdW1lbnQuIEZvciBgISFzZXRgLCBgdmFsdWVgIG5lZWRzIHRvIGJlIGFcbiAgICAgKiBib29sZWFuIHRvIGFkZC9yZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgc2V0LlxuICAgICAqL1xuICAgIHNldEluKHBhdGgsIHZhbHVlKSB7XG4gICAgICAgIGlmIChpc0VtcHR5UGF0aChwYXRoKSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBXZSBjYW4ndCByZWFsbHkga25vdyB0aGF0IHRoaXMgbWF0Y2hlcyBDb250ZW50cy5cbiAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNvbnRlbnRzID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRzID0gY29sbGVjdGlvbkZyb21QYXRoKHRoaXMuc2NoZW1hLCBBcnJheS5mcm9tKHBhdGgpLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5zZXRJbihwYXRoLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBZQU1MIHZlcnNpb24gYW5kIHNjaGVtYSB1c2VkIGJ5IHRoZSBkb2N1bWVudC5cbiAgICAgKiBBIGBudWxsYCB2ZXJzaW9uIGRpc2FibGVzIHN1cHBvcnQgZm9yIGRpcmVjdGl2ZXMsIGV4cGxpY2l0IHRhZ3MsIGFuY2hvcnMsIGFuZCBhbGlhc2VzLlxuICAgICAqIEl0IGFsc28gcmVxdWlyZXMgdGhlIGBzY2hlbWFgIG9wdGlvbiB0byBiZSBnaXZlbiBhcyBhIGBTY2hlbWFgIGluc3RhbmNlIHZhbHVlLlxuICAgICAqXG4gICAgICogT3ZlcnJpZGVzIGFsbCBwcmV2aW91c2x5IHNldCBzY2hlbWEgb3B0aW9ucy5cbiAgICAgKi9cbiAgICBzZXRTY2hlbWEodmVyc2lvbiwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICB2ZXJzaW9uID0gU3RyaW5nKHZlcnNpb24pO1xuICAgICAgICBsZXQgb3B0O1xuICAgICAgICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJzEuMSc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbiA9ICcxLjEnO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVzID0gbmV3IERpcmVjdGl2ZXMoeyB2ZXJzaW9uOiAnMS4xJyB9KTtcbiAgICAgICAgICAgICAgICBvcHQgPSB7IHJlc29sdmVLbm93blRhZ3M6IGZhbHNlLCBzY2hlbWE6ICd5YW1sLTEuMScgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzEuMic6XG4gICAgICAgICAgICBjYXNlICduZXh0JzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXJlY3RpdmVzKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbiB9KTtcbiAgICAgICAgICAgICAgICBvcHQgPSB7IHJlc29sdmVLbm93blRhZ3M6IHRydWUsIHNjaGVtYTogJ2NvcmUnIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGlyZWN0aXZlcztcbiAgICAgICAgICAgICAgICBvcHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN2ID0gSlNPTi5zdHJpbmdpZnkodmVyc2lvbik7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAnMS4xJywgJzEuMicgb3IgbnVsbCBhcyBmaXJzdCBhcmd1bWVudCwgYnV0IGZvdW5kOiAke3N2fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE5vdCB1c2luZyBgaW5zdGFuY2VvZiBTY2hlbWFgIHRvIGFsbG93IGZvciBkdWNrIHR5cGluZ1xuICAgICAgICBpZiAob3B0aW9ucy5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgICAgICAgICB0aGlzLnNjaGVtYSA9IG9wdGlvbnMuc2NoZW1hO1xuICAgICAgICBlbHNlIGlmIChvcHQpXG4gICAgICAgICAgICB0aGlzLnNjaGVtYSA9IG5ldyBTY2hlbWEoT2JqZWN0LmFzc2lnbihvcHQsIG9wdGlvbnMpKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkYCk7XG4gICAgfVxuICAgIC8vIGpzb24gJiBqc29uQXJnIGFyZSBvbmx5IHVzZWQgZnJvbSB0b0pTT04oKVxuICAgIHRvSlMoeyBqc29uLCBqc29uQXJnLCBtYXBBc01hcCwgbWF4QWxpYXNDb3VudCwgb25BbmNob3IsIHJldml2ZXIgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFuY2hvcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIGRvYzogdGhpcyxcbiAgICAgICAgICAgIGtlZXA6ICFqc29uLFxuICAgICAgICAgICAgbWFwQXNNYXA6IG1hcEFzTWFwID09PSB0cnVlLFxuICAgICAgICAgICAgbWFwS2V5V2FybmVkOiBmYWxzZSxcbiAgICAgICAgICAgIG1heEFsaWFzQ291bnQ6IHR5cGVvZiBtYXhBbGlhc0NvdW50ID09PSAnbnVtYmVyJyA/IG1heEFsaWFzQ291bnQgOiAxMDBcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzID0gdG9KUyh0aGlzLmNvbnRlbnRzLCBqc29uQXJnID8/ICcnLCBjdHgpO1xuICAgICAgICBpZiAodHlwZW9mIG9uQW5jaG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgZm9yIChjb25zdCB7IGNvdW50LCByZXMgfSBvZiBjdHguYW5jaG9ycy52YWx1ZXMoKSlcbiAgICAgICAgICAgICAgICBvbkFuY2hvcihyZXMsIGNvdW50KTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGFwcGx5UmV2aXZlcihyZXZpdmVyLCB7ICcnOiByZXMgfSwgJycsIHJlcylcbiAgICAgICAgICAgIDogcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50IGBjb250ZW50c2AuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ganNvbkFyZyBVc2VkIGJ5IGBKU09OLnN0cmluZ2lmeWAgdG8gaW5kaWNhdGUgdGhlIGFycmF5IGluZGV4IG9yXG4gICAgICogICBwcm9wZXJ0eSBuYW1lLlxuICAgICAqL1xuICAgIHRvSlNPTihqc29uQXJnLCBvbkFuY2hvcikge1xuICAgICAgICByZXR1cm4gdGhpcy50b0pTKHsganNvbjogdHJ1ZSwganNvbkFyZywgbWFwQXNNYXA6IGZhbHNlLCBvbkFuY2hvciB9KTtcbiAgICB9XG4gICAgLyoqIEEgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZG9jdW1lbnQuICovXG4gICAgdG9TdHJpbmcob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEb2N1bWVudCB3aXRoIGVycm9ycyBjYW5ub3QgYmUgc3RyaW5naWZpZWQnKTtcbiAgICAgICAgaWYgKCdpbmRlbnQnIGluIG9wdGlvbnMgJiZcbiAgICAgICAgICAgICghTnVtYmVyLmlzSW50ZWdlcihvcHRpb25zLmluZGVudCkgfHwgTnVtYmVyKG9wdGlvbnMuaW5kZW50KSA8PSAwKSkge1xuICAgICAgICAgICAgY29uc3QgcyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaW5kZW50KTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJpbmRlbnRcIiBvcHRpb24gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIG5vdCAke3N9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeURvY3VtZW50KHRoaXMsIG9wdGlvbnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFzc2VydENvbGxlY3Rpb24oY29udGVudHMpIHtcbiAgICBpZiAoaXNDb2xsZWN0aW9uKGNvbnRlbnRzKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIFlBTUwgY29sbGVjdGlvbiBhcyBkb2N1bWVudCBjb250ZW50cycpO1xufVxuXG5leHBvcnQgeyBEb2N1bWVudCB9O1xuIiwgImNsYXNzIFlBTUxFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBwb3MsIGNvZGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgfVxufVxuY2xhc3MgWUFNTFBhcnNlRXJyb3IgZXh0ZW5kcyBZQU1MRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHBvcywgY29kZSwgbWVzc2FnZSkge1xuICAgICAgICBzdXBlcignWUFNTFBhcnNlRXJyb3InLCBwb3MsIGNvZGUsIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmNsYXNzIFlBTUxXYXJuaW5nIGV4dGVuZHMgWUFNTEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcihwb3MsIGNvZGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIoJ1lBTUxXYXJuaW5nJywgcG9zLCBjb2RlLCBtZXNzYWdlKTtcbiAgICB9XG59XG5jb25zdCBwcmV0dGlmeUVycm9yID0gKHNyYywgbGMpID0+IChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvci5wb3NbMF0gPT09IC0xKVxuICAgICAgICByZXR1cm47XG4gICAgZXJyb3IubGluZVBvcyA9IGVycm9yLnBvcy5tYXAocG9zID0+IGxjLmxpbmVQb3MocG9zKSk7XG4gICAgY29uc3QgeyBsaW5lLCBjb2wgfSA9IGVycm9yLmxpbmVQb3NbMF07XG4gICAgZXJyb3IubWVzc2FnZSArPSBgIGF0IGxpbmUgJHtsaW5lfSwgY29sdW1uICR7Y29sfWA7XG4gICAgbGV0IGNpID0gY29sIC0gMTtcbiAgICBsZXQgbGluZVN0ciA9IHNyY1xuICAgICAgICAuc3Vic3RyaW5nKGxjLmxpbmVTdGFydHNbbGluZSAtIDFdLCBsYy5saW5lU3RhcnRzW2xpbmVdKVxuICAgICAgICAucmVwbGFjZSgvW1xcblxccl0rJC8sICcnKTtcbiAgICAvLyBUcmltIHRvIG1heCA4MCBjaGFycywga2VlcGluZyBjb2wgcG9zaXRpb24gbmVhciB0aGUgbWlkZGxlXG4gICAgaWYgKGNpID49IDYwICYmIGxpbmVTdHIubGVuZ3RoID4gODApIHtcbiAgICAgICAgY29uc3QgdHJpbVN0YXJ0ID0gTWF0aC5taW4oY2kgLSAzOSwgbGluZVN0ci5sZW5ndGggLSA3OSk7XG4gICAgICAgIGxpbmVTdHIgPSAnXHUyMDI2JyArIGxpbmVTdHIuc3Vic3RyaW5nKHRyaW1TdGFydCk7XG4gICAgICAgIGNpIC09IHRyaW1TdGFydCAtIDE7XG4gICAgfVxuICAgIGlmIChsaW5lU3RyLmxlbmd0aCA+IDgwKVxuICAgICAgICBsaW5lU3RyID0gbGluZVN0ci5zdWJzdHJpbmcoMCwgNzkpICsgJ1x1MjAyNic7XG4gICAgLy8gSW5jbHVkZSBwcmV2aW91cyBsaW5lIGluIGNvbnRleHQgaWYgcG9pbnRpbmcgYXQgbGluZSBzdGFydFxuICAgIGlmIChsaW5lID4gMSAmJiAvXiAqJC8udGVzdChsaW5lU3RyLnN1YnN0cmluZygwLCBjaSkpKSB7XG4gICAgICAgIC8vIFJlZ2V4cCB3b24ndCBtYXRjaCBpZiBzdGFydCBpcyB0cmltbWVkXG4gICAgICAgIGxldCBwcmV2ID0gc3JjLnN1YnN0cmluZyhsYy5saW5lU3RhcnRzW2xpbmUgLSAyXSwgbGMubGluZVN0YXJ0c1tsaW5lIC0gMV0pO1xuICAgICAgICBpZiAocHJldi5sZW5ndGggPiA4MClcbiAgICAgICAgICAgIHByZXYgPSBwcmV2LnN1YnN0cmluZygwLCA3OSkgKyAnXHUyMDI2XFxuJztcbiAgICAgICAgbGluZVN0ciA9IHByZXYgKyBsaW5lU3RyO1xuICAgIH1cbiAgICBpZiAoL1teIF0vLnRlc3QobGluZVN0cikpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMTtcbiAgICAgICAgY29uc3QgZW5kID0gZXJyb3IubGluZVBvc1sxXTtcbiAgICAgICAgaWYgKGVuZCAmJiBlbmQubGluZSA9PT0gbGluZSAmJiBlbmQuY29sID4gY29sKSB7XG4gICAgICAgICAgICBjb3VudCA9IE1hdGgubWF4KDEsIE1hdGgubWluKGVuZC5jb2wgLSBjb2wsIDgwIC0gY2kpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludGVyID0gJyAnLnJlcGVhdChjaSkgKyAnXicucmVwZWF0KGNvdW50KTtcbiAgICAgICAgZXJyb3IubWVzc2FnZSArPSBgOlxcblxcbiR7bGluZVN0cn1cXG4ke3BvaW50ZXJ9XFxuYDtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBZQU1MRXJyb3IsIFlBTUxQYXJzZUVycm9yLCBZQU1MV2FybmluZywgcHJldHRpZnlFcnJvciB9O1xuIiwgImZ1bmN0aW9uIHJlc29sdmVQcm9wcyh0b2tlbnMsIHsgZmxvdywgaW5kaWNhdG9yLCBuZXh0LCBvZmZzZXQsIG9uRXJyb3IsIHBhcmVudEluZGVudCwgc3RhcnRPbk5ld2xpbmUgfSkge1xuICAgIGxldCBzcGFjZUJlZm9yZSA9IGZhbHNlO1xuICAgIGxldCBhdE5ld2xpbmUgPSBzdGFydE9uTmV3bGluZTtcbiAgICBsZXQgaGFzU3BhY2UgPSBzdGFydE9uTmV3bGluZTtcbiAgICBsZXQgY29tbWVudCA9ICcnO1xuICAgIGxldCBjb21tZW50U2VwID0gJyc7XG4gICAgbGV0IGhhc05ld2xpbmUgPSBmYWxzZTtcbiAgICBsZXQgcmVxU3BhY2UgPSBmYWxzZTtcbiAgICBsZXQgdGFiID0gbnVsbDtcbiAgICBsZXQgYW5jaG9yID0gbnVsbDtcbiAgICBsZXQgdGFnID0gbnVsbDtcbiAgICBsZXQgbmV3bGluZUFmdGVyUHJvcCA9IG51bGw7XG4gICAgbGV0IGNvbW1hID0gbnVsbDtcbiAgICBsZXQgZm91bmQgPSBudWxsO1xuICAgIGxldCBzdGFydCA9IG51bGw7XG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgaWYgKHJlcVNwYWNlKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gJ3NwYWNlJyAmJlxuICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgIT09ICduZXdsaW5lJyAmJlxuICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgIT09ICdjb21tYScpXG4gICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbi5vZmZzZXQsICdNSVNTSU5HX0NIQVInLCAnVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlJyk7XG4gICAgICAgICAgICByZXFTcGFjZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWIpIHtcbiAgICAgICAgICAgIGlmIChhdE5ld2xpbmUgJiYgdG9rZW4udHlwZSAhPT0gJ2NvbW1lbnQnICYmIHRva2VuLnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgICAgICAgICAgICAgIG9uRXJyb3IodGFiLCAnVEFCX0FTX0lOREVOVCcsICdUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFiID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAvLyBBdCB0aGUgZG9jIGxldmVsLCB0YWJzIGF0IGxpbmUgc3RhcnQgbWF5IGJlIHBhcnNlZFxuICAgICAgICAgICAgICAgIC8vIGFzIGxlYWRpbmcgd2hpdGUgc3BhY2UgcmF0aGVyIHRoYW4gaW5kZW50YXRpb24uXG4gICAgICAgICAgICAgICAgLy8gSW4gYSBmbG93IGNvbGxlY3Rpb24sIG9ubHkgdGhlIHBhcnNlciBoYW5kbGVzIGluZGVudC5cbiAgICAgICAgICAgICAgICBpZiAoIWZsb3cgJiZcbiAgICAgICAgICAgICAgICAgICAgKGluZGljYXRvciAhPT0gJ2RvYy1zdGFydCcgfHwgbmV4dD8udHlwZSAhPT0gJ2Zsb3ctY29sbGVjdGlvbicpICYmXG4gICAgICAgICAgICAgICAgICAgIHRva2VuLnNvdXJjZS5pbmNsdWRlcygnXFx0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFiID0gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGhhc1NwYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNTcGFjZSlcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ01JU1NJTkdfQ0hBUicsICdDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2IgPSB0b2tlbi5zb3VyY2Uuc3Vic3RyaW5nKDEpIHx8ICcgJztcbiAgICAgICAgICAgICAgICBpZiAoIWNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBjYjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgKz0gY29tbWVudFNlcCArIGNiO1xuICAgICAgICAgICAgICAgIGNvbW1lbnRTZXAgPSAnJztcbiAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIGlmIChhdE5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ICs9IHRva2VuLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VCZWZvcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRTZXAgKz0gdG9rZW4uc291cmNlO1xuICAgICAgICAgICAgICAgIGF0TmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaGFzTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGFuY2hvciB8fCB0YWcpXG4gICAgICAgICAgICAgICAgICAgIG5ld2xpbmVBZnRlclByb3AgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhbmNob3InOlxuICAgICAgICAgICAgICAgIGlmIChhbmNob3IpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdNVUxUSVBMRV9BTkNIT1JTJywgJ0Egbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSBhbmNob3InKTtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4uc291cmNlLmVuZHNXaXRoKCc6JykpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4ub2Zmc2V0ICsgdG9rZW4uc291cmNlLmxlbmd0aCAtIDEsICdCQURfQUxJQVMnLCAnQW5jaG9yIGVuZGluZyBpbiA6IGlzIGFtYmlndW91cycsIHRydWUpO1xuICAgICAgICAgICAgICAgIGFuY2hvciA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0b2tlbi5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYXROZXdsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXFTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0YWcnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRhZylcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ01VTFRJUExFX1RBR1MnLCAnQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIHRhZycpO1xuICAgICAgICAgICAgICAgIHRhZyA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0b2tlbi5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYXROZXdsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXFTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIGluZGljYXRvcjpcbiAgICAgICAgICAgICAgICAvLyBDb3VsZCBoZXJlIGhhbmRsZSBwcmVjZWRpbmcgY29tbWVudHMgZGlmZmVyZW50bHlcbiAgICAgICAgICAgICAgICBpZiAoYW5jaG9yIHx8IHRhZylcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ0JBRF9QUk9QX09SREVSJywgYEFuY2hvcnMgYW5kIHRhZ3MgbXVzdCBiZSBhZnRlciB0aGUgJHt0b2tlbi5zb3VyY2V9IGluZGljYXRvcmApO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZClcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1VORVhQRUNURURfVE9LRU4nLCBgVW5leHBlY3RlZCAke3Rva2VuLnNvdXJjZX0gaW4gJHtmbG93ID8/ICdjb2xsZWN0aW9uJ31gKTtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGF0TmV3bGluZSA9XG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvciA9PT0gJ3NlcS1pdGVtLWluZCcgfHwgaW5kaWNhdG9yID09PSAnZXhwbGljaXQta2V5LWluZCc7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1hJzpcbiAgICAgICAgICAgICAgICBpZiAoZmxvdykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWEpXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmbG93fWApO1xuICAgICAgICAgICAgICAgICAgICBjb21tYSA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZSBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICR7dG9rZW4udHlwZX0gdG9rZW5gKTtcbiAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxhc3QgPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGVuZCA9IGxhc3QgPyBsYXN0Lm9mZnNldCArIGxhc3Quc291cmNlLmxlbmd0aCA6IG9mZnNldDtcbiAgICBpZiAocmVxU3BhY2UgJiZcbiAgICAgICAgbmV4dCAmJlxuICAgICAgICBuZXh0LnR5cGUgIT09ICdzcGFjZScgJiZcbiAgICAgICAgbmV4dC50eXBlICE9PSAnbmV3bGluZScgJiZcbiAgICAgICAgbmV4dC50eXBlICE9PSAnY29tbWEnICYmXG4gICAgICAgIChuZXh0LnR5cGUgIT09ICdzY2FsYXInIHx8IG5leHQuc291cmNlICE9PSAnJykpIHtcbiAgICAgICAgb25FcnJvcihuZXh0Lm9mZnNldCwgJ01JU1NJTkdfQ0hBUicsICdUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UnKTtcbiAgICB9XG4gICAgaWYgKHRhYiAmJlxuICAgICAgICAoKGF0TmV3bGluZSAmJiB0YWIuaW5kZW50IDw9IHBhcmVudEluZGVudCkgfHxcbiAgICAgICAgICAgIG5leHQ/LnR5cGUgPT09ICdibG9jay1tYXAnIHx8XG4gICAgICAgICAgICBuZXh0Py50eXBlID09PSAnYmxvY2stc2VxJykpXG4gICAgICAgIG9uRXJyb3IodGFiLCAnVEFCX0FTX0lOREVOVCcsICdUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbicpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1hLFxuICAgICAgICBmb3VuZCxcbiAgICAgICAgc3BhY2VCZWZvcmUsXG4gICAgICAgIGNvbW1lbnQsXG4gICAgICAgIGhhc05ld2xpbmUsXG4gICAgICAgIGFuY2hvcixcbiAgICAgICAgdGFnLFxuICAgICAgICBuZXdsaW5lQWZ0ZXJQcm9wLFxuICAgICAgICBlbmQsXG4gICAgICAgIHN0YXJ0OiBzdGFydCA/PyBlbmRcbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNvbHZlUHJvcHMgfTtcbiIsICJmdW5jdGlvbiBjb250YWluc05ld2xpbmUoa2V5KSB7XG4gICAgaWYgKCFrZXkpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAoa2V5LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICBjYXNlICdkb3VibGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIGlmIChrZXkuc291cmNlLmluY2x1ZGVzKCdcXG4nKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChrZXkuZW5kKVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Qgb2Yga2V5LmVuZClcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0LnR5cGUgPT09ICduZXdsaW5lJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOlxuICAgICAgICAgICAgZm9yIChjb25zdCBpdCBvZiBrZXkuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN0IG9mIGl0LnN0YXJ0KVxuICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdCBvZiBpdC5zZXApXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluc05ld2xpbmUoaXQua2V5KSB8fCBjb250YWluc05ld2xpbmUoaXQudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgY29udGFpbnNOZXdsaW5lIH07XG4iLCAiaW1wb3J0IHsgY29udGFpbnNOZXdsaW5lIH0gZnJvbSAnLi91dGlsLWNvbnRhaW5zLW5ld2xpbmUuanMnO1xuXG5mdW5jdGlvbiBmbG93SW5kZW50Q2hlY2soaW5kZW50LCBmYywgb25FcnJvcikge1xuICAgIGlmIChmYz8udHlwZSA9PT0gJ2Zsb3ctY29sbGVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgZW5kID0gZmMuZW5kWzBdO1xuICAgICAgICBpZiAoZW5kLmluZGVudCA9PT0gaW5kZW50ICYmXG4gICAgICAgICAgICAoZW5kLnNvdXJjZSA9PT0gJ10nIHx8IGVuZC5zb3VyY2UgPT09ICd9JykgJiZcbiAgICAgICAgICAgIGNvbnRhaW5zTmV3bGluZShmYykpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9ICdGbG93IGVuZCBpbmRpY2F0b3Igc2hvdWxkIGJlIG1vcmUgaW5kZW50ZWQgdGhhbiBwYXJlbnQnO1xuICAgICAgICAgICAgb25FcnJvcihlbmQsICdCQURfSU5ERU5UJywgbXNnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgZmxvd0luZGVudENoZWNrIH07XG4iLCAiaW1wb3J0IHsgaXNTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5cbmZ1bmN0aW9uIG1hcEluY2x1ZGVzKGN0eCwgaXRlbXMsIHNlYXJjaCkge1xuICAgIGNvbnN0IHsgdW5pcXVlS2V5cyB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgaWYgKHVuaXF1ZUtleXMgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgaXNFcXVhbCA9IHR5cGVvZiB1bmlxdWVLZXlzID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gdW5pcXVlS2V5c1xuICAgICAgICA6IChhLCBiKSA9PiBhID09PSBiIHx8IChpc1NjYWxhcihhKSAmJiBpc1NjYWxhcihiKSAmJiBhLnZhbHVlID09PSBiLnZhbHVlKTtcbiAgICByZXR1cm4gaXRlbXMuc29tZShwYWlyID0+IGlzRXF1YWwocGFpci5rZXksIHNlYXJjaCkpO1xufVxuXG5leHBvcnQgeyBtYXBJbmNsdWRlcyB9O1xuIiwgImltcG9ydCB7IFBhaXIgfSBmcm9tICcuLi9ub2Rlcy9QYWlyLmpzJztcbmltcG9ydCB7IFlBTUxNYXAgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MTWFwLmpzJztcbmltcG9ydCB7IHJlc29sdmVQcm9wcyB9IGZyb20gJy4vcmVzb2x2ZS1wcm9wcy5qcyc7XG5pbXBvcnQgeyBjb250YWluc05ld2xpbmUgfSBmcm9tICcuL3V0aWwtY29udGFpbnMtbmV3bGluZS5qcyc7XG5pbXBvcnQgeyBmbG93SW5kZW50Q2hlY2sgfSBmcm9tICcuL3V0aWwtZmxvdy1pbmRlbnQtY2hlY2suanMnO1xuaW1wb3J0IHsgbWFwSW5jbHVkZXMgfSBmcm9tICcuL3V0aWwtbWFwLWluY2x1ZGVzLmpzJztcblxuY29uc3Qgc3RhcnRDb2xNc2cgPSAnQWxsIG1hcHBpbmcgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW4nO1xuZnVuY3Rpb24gcmVzb2x2ZUJsb2NrTWFwKHsgY29tcG9zZU5vZGUsIGNvbXBvc2VFbXB0eU5vZGUgfSwgY3R4LCBibSwgb25FcnJvciwgdGFnKSB7XG4gICAgY29uc3QgTm9kZUNsYXNzID0gdGFnPy5ub2RlQ2xhc3MgPz8gWUFNTE1hcDtcbiAgICBjb25zdCBtYXAgPSBuZXcgTm9kZUNsYXNzKGN0eC5zY2hlbWEpO1xuICAgIGlmIChjdHguYXRSb290KVxuICAgICAgICBjdHguYXRSb290ID0gZmFsc2U7XG4gICAgbGV0IG9mZnNldCA9IGJtLm9mZnNldDtcbiAgICBsZXQgY29tbWVudEVuZCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjb2xsSXRlbSBvZiBibS5pdGVtcykge1xuICAgICAgICBjb25zdCB7IHN0YXJ0LCBrZXksIHNlcCwgdmFsdWUgfSA9IGNvbGxJdGVtO1xuICAgICAgICAvLyBrZXkgcHJvcGVydGllc1xuICAgICAgICBjb25zdCBrZXlQcm9wcyA9IHJlc29sdmVQcm9wcyhzdGFydCwge1xuICAgICAgICAgICAgaW5kaWNhdG9yOiAnZXhwbGljaXQta2V5LWluZCcsXG4gICAgICAgICAgICBuZXh0OiBrZXkgPz8gc2VwPy5bMF0sXG4gICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgcGFyZW50SW5kZW50OiBibS5pbmRlbnQsXG4gICAgICAgICAgICBzdGFydE9uTmV3bGluZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW1wbGljaXRLZXkgPSAha2V5UHJvcHMuZm91bmQ7XG4gICAgICAgIGlmIChpbXBsaWNpdEtleSkge1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGlmIChrZXkudHlwZSA9PT0gJ2Jsb2NrLXNlcScpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3Iob2Zmc2V0LCAnQkxPQ0tfQVNfSU1QTElDSVRfS0VZJywgJ0EgYmxvY2sgc2VxdWVuY2UgbWF5IG5vdCBiZSB1c2VkIGFzIGFuIGltcGxpY2l0IG1hcCBrZXknKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgnaW5kZW50JyBpbiBrZXkgJiYga2V5LmluZGVudCAhPT0gYm0uaW5kZW50KVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBzdGFydENvbE1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWtleVByb3BzLmFuY2hvciAmJiAha2V5UHJvcHMudGFnICYmICFzZXApIHtcbiAgICAgICAgICAgICAgICBjb21tZW50RW5kID0ga2V5UHJvcHMuZW5kO1xuICAgICAgICAgICAgICAgIGlmIChrZXlQcm9wcy5jb21tZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXAuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5jb21tZW50ICs9ICdcXG4nICsga2V5UHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmNvbW1lbnQgPSBrZXlQcm9wcy5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChrZXlQcm9wcy5uZXdsaW5lQWZ0ZXJQcm9wIHx8IGNvbnRhaW5zTmV3bGluZShrZXkpKSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXkgPz8gc3RhcnRbc3RhcnQubGVuZ3RoIC0gMV0sICdNVUxUSUxJTkVfSU1QTElDSVRfS0VZJywgJ0ltcGxpY2l0IGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoa2V5UHJvcHMuZm91bmQ/LmluZGVudCAhPT0gYm0uaW5kZW50KSB7XG4gICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBzdGFydENvbE1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8ga2V5IHZhbHVlXG4gICAgICAgIGN0eC5hdEtleSA9IHRydWU7XG4gICAgICAgIGNvbnN0IGtleVN0YXJ0ID0ga2V5UHJvcHMuZW5kO1xuICAgICAgICBjb25zdCBrZXlOb2RlID0ga2V5XG4gICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwga2V5LCBrZXlQcm9wcywgb25FcnJvcilcbiAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIGtleVN0YXJ0LCBzdGFydCwgbnVsbCwga2V5UHJvcHMsIG9uRXJyb3IpO1xuICAgICAgICBpZiAoY3R4LnNjaGVtYS5jb21wYXQpXG4gICAgICAgICAgICBmbG93SW5kZW50Q2hlY2soYm0uaW5kZW50LCBrZXksIG9uRXJyb3IpO1xuICAgICAgICBjdHguYXRLZXkgPSBmYWxzZTtcbiAgICAgICAgaWYgKG1hcEluY2x1ZGVzKGN0eCwgbWFwLml0ZW1zLCBrZXlOb2RlKSlcbiAgICAgICAgICAgIG9uRXJyb3Ioa2V5U3RhcnQsICdEVVBMSUNBVEVfS0VZJywgJ01hcCBrZXlzIG11c3QgYmUgdW5pcXVlJyk7XG4gICAgICAgIC8vIHZhbHVlIHByb3BlcnRpZXNcbiAgICAgICAgY29uc3QgdmFsdWVQcm9wcyA9IHJlc29sdmVQcm9wcyhzZXAgPz8gW10sIHtcbiAgICAgICAgICAgIGluZGljYXRvcjogJ21hcC12YWx1ZS1pbmQnLFxuICAgICAgICAgICAgbmV4dDogdmFsdWUsXG4gICAgICAgICAgICBvZmZzZXQ6IGtleU5vZGUucmFuZ2VbMl0sXG4gICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgcGFyZW50SW5kZW50OiBibS5pbmRlbnQsXG4gICAgICAgICAgICBzdGFydE9uTmV3bGluZTogIWtleSB8fCBrZXkudHlwZSA9PT0gJ2Jsb2NrLXNjYWxhcidcbiAgICAgICAgfSk7XG4gICAgICAgIG9mZnNldCA9IHZhbHVlUHJvcHMuZW5kO1xuICAgICAgICBpZiAodmFsdWVQcm9wcy5mb3VuZCkge1xuICAgICAgICAgICAgaWYgKGltcGxpY2l0S2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlPy50eXBlID09PSAnYmxvY2stbWFwJyAmJiAhdmFsdWVQcm9wcy5oYXNOZXdsaW5lKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JMT0NLX0FTX0lNUExJQ0lUX0tFWScsICdOZXN0ZWQgbWFwcGluZ3MgYXJlIG5vdCBhbGxvd2VkIGluIGNvbXBhY3QgbWFwcGluZ3MnKTtcbiAgICAgICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMuc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgICAgIGtleVByb3BzLnN0YXJ0IDwgdmFsdWVQcm9wcy5mb3VuZC5vZmZzZXQgLSAxMDI0KVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGtleU5vZGUucmFuZ2UsICdLRVlfT1ZFUl8xMDI0X0NIQVJTJywgJ1RoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgYmxvY2sgbWFwcGluZyBrZXknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHZhbHVlIHZhbHVlXG4gICAgICAgICAgICBjb25zdCB2YWx1ZU5vZGUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgdmFsdWVQcm9wcywgb25FcnJvcilcbiAgICAgICAgICAgICAgICA6IGNvbXBvc2VFbXB0eU5vZGUoY3R4LCBvZmZzZXQsIHNlcCwgbnVsbCwgdmFsdWVQcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBpZiAoY3R4LnNjaGVtYS5jb21wYXQpXG4gICAgICAgICAgICAgICAgZmxvd0luZGVudENoZWNrKGJtLmluZGVudCwgdmFsdWUsIG9uRXJyb3IpO1xuICAgICAgICAgICAgb2Zmc2V0ID0gdmFsdWVOb2RlLnJhbmdlWzJdO1xuICAgICAgICAgICAgY29uc3QgcGFpciA9IG5ldyBQYWlyKGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMua2VlcFNvdXJjZVRva2VucylcbiAgICAgICAgICAgICAgICBwYWlyLnNyY1Rva2VuID0gY29sbEl0ZW07XG4gICAgICAgICAgICBtYXAuaXRlbXMucHVzaChwYWlyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGtleSB3aXRoIG5vIHZhbHVlXG4gICAgICAgICAgICBpZiAoaW1wbGljaXRLZXkpXG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXlOb2RlLnJhbmdlLCAnTUlTU0lOR19DSEFSJywgJ0ltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlcycpO1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGlmIChrZXlOb2RlLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCArPSAnXFxuJyArIHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCA9IHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhaXIgPSBuZXcgUGFpcihrZXlOb2RlKTtcbiAgICAgICAgICAgIGlmIChjdHgub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zKVxuICAgICAgICAgICAgICAgIHBhaXIuc3JjVG9rZW4gPSBjb2xsSXRlbTtcbiAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChjb21tZW50RW5kICYmIGNvbW1lbnRFbmQgPCBvZmZzZXQpXG4gICAgICAgIG9uRXJyb3IoY29tbWVudEVuZCwgJ0lNUE9TU0lCTEUnLCAnTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50Jyk7XG4gICAgbWFwLnJhbmdlID0gW2JtLm9mZnNldCwgb2Zmc2V0LCBjb21tZW50RW5kID8/IG9mZnNldF07XG4gICAgcmV0dXJuIG1hcDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUJsb2NrTWFwIH07XG4iLCAiaW1wb3J0IHsgWUFNTFNlcSB9IGZyb20gJy4uL25vZGVzL1lBTUxTZXEuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcbmltcG9ydCB7IGZsb3dJbmRlbnRDaGVjayB9IGZyb20gJy4vdXRpbC1mbG93LWluZGVudC1jaGVjay5qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVCbG9ja1NlcSh7IGNvbXBvc2VOb2RlLCBjb21wb3NlRW1wdHlOb2RlIH0sIGN0eCwgYnMsIG9uRXJyb3IsIHRhZykge1xuICAgIGNvbnN0IE5vZGVDbGFzcyA9IHRhZz8ubm9kZUNsYXNzID8/IFlBTUxTZXE7XG4gICAgY29uc3Qgc2VxID0gbmV3IE5vZGVDbGFzcyhjdHguc2NoZW1hKTtcbiAgICBpZiAoY3R4LmF0Um9vdClcbiAgICAgICAgY3R4LmF0Um9vdCA9IGZhbHNlO1xuICAgIGlmIChjdHguYXRLZXkpXG4gICAgICAgIGN0eC5hdEtleSA9IGZhbHNlO1xuICAgIGxldCBvZmZzZXQgPSBicy5vZmZzZXQ7XG4gICAgbGV0IGNvbW1lbnRFbmQgPSBudWxsO1xuICAgIGZvciAoY29uc3QgeyBzdGFydCwgdmFsdWUgfSBvZiBicy5pdGVtcykge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHJlc29sdmVQcm9wcyhzdGFydCwge1xuICAgICAgICAgICAgaW5kaWNhdG9yOiAnc2VxLWl0ZW0taW5kJyxcbiAgICAgICAgICAgIG5leHQ6IHZhbHVlLFxuICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAgIHBhcmVudEluZGVudDogYnMuaW5kZW50LFxuICAgICAgICAgICAgc3RhcnRPbk5ld2xpbmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcHJvcHMuZm91bmQpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5hbmNob3IgfHwgcHJvcHMudGFnIHx8IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnR5cGUgPT09ICdibG9jay1zZXEnKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmVuZCwgJ0JBRF9JTkRFTlQnLCAnQWxsIHNlcXVlbmNlIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uJyk7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ01JU1NJTkdfQ0hBUicsICdTZXF1ZW5jZSBpdGVtIHdpdGhvdXQgLSBpbmRpY2F0b3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbW1lbnRFbmQgPSBwcm9wcy5lbmQ7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIHNlcS5jb21tZW50ID0gcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub2RlID0gdmFsdWVcbiAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgcHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICA6IGNvbXBvc2VFbXB0eU5vZGUoY3R4LCBwcm9wcy5lbmQsIHN0YXJ0LCBudWxsLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgIGlmIChjdHguc2NoZW1hLmNvbXBhdClcbiAgICAgICAgICAgIGZsb3dJbmRlbnRDaGVjayhicy5pbmRlbnQsIHZhbHVlLCBvbkVycm9yKTtcbiAgICAgICAgb2Zmc2V0ID0gbm9kZS5yYW5nZVsyXTtcbiAgICAgICAgc2VxLml0ZW1zLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIHNlcS5yYW5nZSA9IFticy5vZmZzZXQsIG9mZnNldCwgY29tbWVudEVuZCA/PyBvZmZzZXRdO1xuICAgIHJldHVybiBzZXE7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVCbG9ja1NlcSB9O1xuIiwgImZ1bmN0aW9uIHJlc29sdmVFbmQoZW5kLCBvZmZzZXQsIHJlcVNwYWNlLCBvbkVycm9yKSB7XG4gICAgbGV0IGNvbW1lbnQgPSAnJztcbiAgICBpZiAoZW5kKSB7XG4gICAgICAgIGxldCBoYXNTcGFjZSA9IGZhbHNlO1xuICAgICAgICBsZXQgc2VwID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCB7IHNvdXJjZSwgdHlwZSB9ID0gdG9rZW47XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgICAgIGhhc1NwYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcVNwYWNlICYmICFoYXNTcGFjZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdNSVNTSU5HX0NIQVInLCAnQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYiA9IHNvdXJjZS5zdWJzdHJpbmcoMSkgfHwgJyAnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gY2I7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgKz0gc2VwICsgY2I7XG4gICAgICAgICAgICAgICAgICAgIHNlcCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VwICs9IHNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3BhY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICR7dHlwZX0gYXQgbm9kZSBlbmRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGNvbW1lbnQsIG9mZnNldCB9O1xufVxuXG5leHBvcnQgeyByZXNvbHZlRW5kIH07XG4iLCAiaW1wb3J0IHsgaXNQYWlyIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciB9IGZyb20gJy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCB9IGZyb20gJy4uL25vZGVzL1lBTUxNYXAuanMnO1xuaW1wb3J0IHsgWUFNTFNlcSB9IGZyb20gJy4uL25vZGVzL1lBTUxTZXEuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZCB9IGZyb20gJy4vcmVzb2x2ZS1lbmQuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcbmltcG9ydCB7IGNvbnRhaW5zTmV3bGluZSB9IGZyb20gJy4vdXRpbC1jb250YWlucy1uZXdsaW5lLmpzJztcbmltcG9ydCB7IG1hcEluY2x1ZGVzIH0gZnJvbSAnLi91dGlsLW1hcC1pbmNsdWRlcy5qcyc7XG5cbmNvbnN0IGJsb2NrTXNnID0gJ0Jsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9ucyc7XG5jb25zdCBpc0Jsb2NrID0gKHRva2VuKSA9PiB0b2tlbiAmJiAodG9rZW4udHlwZSA9PT0gJ2Jsb2NrLW1hcCcgfHwgdG9rZW4udHlwZSA9PT0gJ2Jsb2NrLXNlcScpO1xuZnVuY3Rpb24gcmVzb2x2ZUZsb3dDb2xsZWN0aW9uKHsgY29tcG9zZU5vZGUsIGNvbXBvc2VFbXB0eU5vZGUgfSwgY3R4LCBmYywgb25FcnJvciwgdGFnKSB7XG4gICAgY29uc3QgaXNNYXAgPSBmYy5zdGFydC5zb3VyY2UgPT09ICd7JztcbiAgICBjb25zdCBmY05hbWUgPSBpc01hcCA/ICdmbG93IG1hcCcgOiAnZmxvdyBzZXF1ZW5jZSc7XG4gICAgY29uc3QgTm9kZUNsYXNzID0gKHRhZz8ubm9kZUNsYXNzID8/IChpc01hcCA/IFlBTUxNYXAgOiBZQU1MU2VxKSk7XG4gICAgY29uc3QgY29sbCA9IG5ldyBOb2RlQ2xhc3MoY3R4LnNjaGVtYSk7XG4gICAgY29sbC5mbG93ID0gdHJ1ZTtcbiAgICBjb25zdCBhdFJvb3QgPSBjdHguYXRSb290O1xuICAgIGlmIChhdFJvb3QpXG4gICAgICAgIGN0eC5hdFJvb3QgPSBmYWxzZTtcbiAgICBpZiAoY3R4LmF0S2V5KVxuICAgICAgICBjdHguYXRLZXkgPSBmYWxzZTtcbiAgICBsZXQgb2Zmc2V0ID0gZmMub2Zmc2V0ICsgZmMuc3RhcnQuc291cmNlLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZjLml0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGNvbGxJdGVtID0gZmMuaXRlbXNbaV07XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGtleSwgc2VwLCB2YWx1ZSB9ID0gY29sbEl0ZW07XG4gICAgICAgIGNvbnN0IHByb3BzID0gcmVzb2x2ZVByb3BzKHN0YXJ0LCB7XG4gICAgICAgICAgICBmbG93OiBmY05hbWUsXG4gICAgICAgICAgICBpbmRpY2F0b3I6ICdleHBsaWNpdC1rZXktaW5kJyxcbiAgICAgICAgICAgIG5leHQ6IGtleSA/PyBzZXA/LlswXSxcbiAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgIG9uRXJyb3IsXG4gICAgICAgICAgICBwYXJlbnRJbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgIHN0YXJ0T25OZXdsaW5lOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcm9wcy5mb3VuZCkge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy5hbmNob3IgJiYgIXByb3BzLnRhZyAmJiAhc2VwICYmICF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSAwICYmIHByb3BzLmNvbW1hKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmNvbW1hLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmY05hbWV9YCk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaSA8IGZjLml0ZW1zLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IocHJvcHMuc3RhcnQsICdVTkVYUEVDVEVEX1RPS0VOJywgYFVuZXhwZWN0ZWQgZW1wdHkgaXRlbSBpbiAke2ZjTmFtZX1gKTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sbC5jb21tZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbC5jb21tZW50ICs9ICdcXG4nICsgcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbC5jb21tZW50ID0gcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvcHMuZW5kO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc01hcCAmJiBjdHgub3B0aW9ucy5zdHJpY3QgJiYgY29udGFpbnNOZXdsaW5lKGtleSkpXG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXksIC8vIGNoZWNrZWQgYnkgY29udGFpbnNOZXdsaW5lKClcbiAgICAgICAgICAgICAgICAnTVVMVElMSU5FX0lNUExJQ0lUX0tFWScsICdJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jb21tYSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmNvbW1hLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmY05hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXByb3BzLmNvbW1hKVxuICAgICAgICAgICAgICAgIG9uRXJyb3IocHJvcHMuc3RhcnQsICdNSVNTSU5HX0NIQVInLCBgTWlzc2luZyAsIGJldHdlZW4gJHtmY05hbWV9IGl0ZW1zYCk7XG4gICAgICAgICAgICBpZiAocHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGxldCBwcmV2SXRlbUNvbW1lbnQgPSAnJztcbiAgICAgICAgICAgICAgICBsb29wOiBmb3IgKGNvbnN0IHN0IG9mIHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tbWEnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkl0ZW1Db21tZW50ID0gc3Quc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwcmV2SXRlbUNvbW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXYgPSBjb2xsLml0ZW1zW2NvbGwuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1BhaXIocHJldikpXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gcHJldi52YWx1ZSA/PyBwcmV2LmtleTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXYuY29tbWVudCArPSAnXFxuJyArIHByZXZJdGVtQ29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldi5jb21tZW50ID0gcHJldkl0ZW1Db21tZW50O1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb21tZW50ID0gcHJvcHMuY29tbWVudC5zdWJzdHJpbmcocHJldkl0ZW1Db21tZW50Lmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTWFwICYmICFzZXAgJiYgIXByb3BzLmZvdW5kKSB7XG4gICAgICAgICAgICAvLyBpdGVtIGlzIGEgdmFsdWUgaW4gYSBzZXFcbiAgICAgICAgICAgIC8vIFx1MjE5MiBrZXkgJiBzZXAgYXJlIGVtcHR5LCBzdGFydCBkb2VzIG5vdCBpbmNsdWRlID8gb3IgOlxuICAgICAgICAgICAgY29uc3QgdmFsdWVOb2RlID0gdmFsdWVcbiAgICAgICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwgdmFsdWUsIHByb3BzLCBvbkVycm9yKVxuICAgICAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIHByb3BzLmVuZCwgc2VwLCBudWxsLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBjb2xsLml0ZW1zLnB1c2godmFsdWVOb2RlKTtcbiAgICAgICAgICAgIG9mZnNldCA9IHZhbHVlTm9kZS5yYW5nZVsyXTtcbiAgICAgICAgICAgIGlmIChpc0Jsb2NrKHZhbHVlKSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKHZhbHVlTm9kZS5yYW5nZSwgJ0JMT0NLX0lOX0ZMT1cnLCBibG9ja01zZyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBpdGVtIGlzIGEga2V5K3ZhbHVlIHBhaXJcbiAgICAgICAgICAgIC8vIGtleSB2YWx1ZVxuICAgICAgICAgICAgY3R4LmF0S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGtleVN0YXJ0ID0gcHJvcHMuZW5kO1xuICAgICAgICAgICAgY29uc3Qga2V5Tm9kZSA9IGtleVxuICAgICAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCBrZXksIHByb3BzLCBvbkVycm9yKVxuICAgICAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIGtleVN0YXJ0LCBzdGFydCwgbnVsbCwgcHJvcHMsIG9uRXJyb3IpO1xuICAgICAgICAgICAgaWYgKGlzQmxvY2soa2V5KSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKGtleU5vZGUucmFuZ2UsICdCTE9DS19JTl9GTE9XJywgYmxvY2tNc2cpO1xuICAgICAgICAgICAgY3R4LmF0S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB2YWx1ZSBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BzID0gcmVzb2x2ZVByb3BzKHNlcCA/PyBbXSwge1xuICAgICAgICAgICAgICAgIGZsb3c6IGZjTmFtZSxcbiAgICAgICAgICAgICAgICBpbmRpY2F0b3I6ICdtYXAtdmFsdWUtaW5kJyxcbiAgICAgICAgICAgICAgICBuZXh0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IGtleU5vZGUucmFuZ2VbMl0sXG4gICAgICAgICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAgICAgICBwYXJlbnRJbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgICAgICBzdGFydE9uTmV3bGluZTogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcHMuZm91bmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTWFwICYmICFwcm9wcy5mb3VuZCAmJiBjdHgub3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Qgb2Ygc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0ID09PSB2YWx1ZVByb3BzLmZvdW5kKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3Ioc3QsICdNVUxUSUxJTkVfSU1QTElDSVRfS0VZJywgJ0ltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuc3RhcnQgPCB2YWx1ZVByb3BzLmZvdW5kLm9mZnNldCAtIDEwMjQpXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHZhbHVlUHJvcHMuZm91bmQsICdLRVlfT1ZFUl8xMDI0X0NIQVJTJywgJ1RoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgZmxvdyBzZXF1ZW5jZSBrZXknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICgnc291cmNlJyBpbiB2YWx1ZSAmJiB2YWx1ZS5zb3VyY2UgJiYgdmFsdWUuc291cmNlWzBdID09PSAnOicpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodmFsdWUsICdNSVNTSU5HX0NIQVInLCBgTWlzc2luZyBzcGFjZSBhZnRlciA6IGluICR7ZmNOYW1lfWApO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih2YWx1ZVByb3BzLnN0YXJ0LCAnTUlTU0lOR19DSEFSJywgYE1pc3NpbmcgLCBvciA6IGJldHdlZW4gJHtmY05hbWV9IGl0ZW1zYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB2YWx1ZSB2YWx1ZVxuICAgICAgICAgICAgY29uc3QgdmFsdWVOb2RlID0gdmFsdWVcbiAgICAgICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwgdmFsdWUsIHZhbHVlUHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZVByb3BzLmZvdW5kXG4gICAgICAgICAgICAgICAgICAgID8gY29tcG9zZUVtcHR5Tm9kZShjdHgsIHZhbHVlUHJvcHMuZW5kLCBzZXAsIG51bGwsIHZhbHVlUHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh2YWx1ZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNCbG9jayh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodmFsdWVOb2RlLnJhbmdlLCAnQkxPQ0tfSU5fRkxPVycsIGJsb2NrTXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlUHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGlmIChrZXlOb2RlLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCArPSAnXFxuJyArIHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCA9IHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhaXIgPSBuZXcgUGFpcihrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgICAgICAgICAgaWYgKGN0eC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMpXG4gICAgICAgICAgICAgICAgcGFpci5zcmNUb2tlbiA9IGNvbGxJdGVtO1xuICAgICAgICAgICAgaWYgKGlzTWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwID0gY29sbDtcbiAgICAgICAgICAgICAgICBpZiAobWFwSW5jbHVkZXMoY3R4LCBtYXAuaXRlbXMsIGtleU5vZGUpKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGtleVN0YXJ0LCAnRFVQTElDQVRFX0tFWScsICdNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZScpO1xuICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwID0gbmV3IFlBTUxNYXAoY3R4LnNjaGVtYSk7XG4gICAgICAgICAgICAgICAgbWFwLmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFJhbmdlID0gKHZhbHVlTm9kZSA/PyBrZXlOb2RlKS5yYW5nZTtcbiAgICAgICAgICAgICAgICBtYXAucmFuZ2UgPSBba2V5Tm9kZS5yYW5nZVswXSwgZW5kUmFuZ2VbMV0sIGVuZFJhbmdlWzJdXTtcbiAgICAgICAgICAgICAgICBjb2xsLml0ZW1zLnB1c2gobWFwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9mZnNldCA9IHZhbHVlTm9kZSA/IHZhbHVlTm9kZS5yYW5nZVsyXSA6IHZhbHVlUHJvcHMuZW5kO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGV4cGVjdGVkRW5kID0gaXNNYXAgPyAnfScgOiAnXSc7XG4gICAgY29uc3QgW2NlLCAuLi5lZV0gPSBmYy5lbmQ7XG4gICAgbGV0IGNlUG9zID0gb2Zmc2V0O1xuICAgIGlmIChjZSAmJiBjZS5zb3VyY2UgPT09IGV4cGVjdGVkRW5kKVxuICAgICAgICBjZVBvcyA9IGNlLm9mZnNldCArIGNlLnNvdXJjZS5sZW5ndGg7XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBmY05hbWVbMF0udG9VcHBlckNhc2UoKSArIGZjTmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGNvbnN0IG1zZyA9IGF0Um9vdFxuICAgICAgICAgICAgPyBgJHtuYW1lfSBtdXN0IGVuZCB3aXRoIGEgJHtleHBlY3RlZEVuZH1gXG4gICAgICAgICAgICA6IGAke25hbWV9IGluIGJsb2NrIGNvbGxlY3Rpb24gbXVzdCBiZSBzdWZmaWNpZW50bHkgaW5kZW50ZWQgYW5kIGVuZCB3aXRoIGEgJHtleHBlY3RlZEVuZH1gO1xuICAgICAgICBvbkVycm9yKG9mZnNldCwgYXRSb290ID8gJ01JU1NJTkdfQ0hBUicgOiAnQkFEX0lOREVOVCcsIG1zZyk7XG4gICAgICAgIGlmIChjZSAmJiBjZS5zb3VyY2UubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgZWUudW5zaGlmdChjZSk7XG4gICAgfVxuICAgIGlmIChlZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGVuZCA9IHJlc29sdmVFbmQoZWUsIGNlUG9zLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgICAgICBpZiAoZW5kLmNvbW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChjb2xsLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgY29sbC5jb21tZW50ICs9ICdcXG4nICsgZW5kLmNvbW1lbnQ7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY29sbC5jb21tZW50ID0gZW5kLmNvbW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29sbC5yYW5nZSA9IFtmYy5vZmZzZXQsIGNlUG9zLCBlbmQub2Zmc2V0XTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbGwucmFuZ2UgPSBbZmMub2Zmc2V0LCBjZVBvcywgY2VQb3NdO1xuICAgIH1cbiAgICByZXR1cm4gY29sbDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUZsb3dDb2xsZWN0aW9uIH07XG4iLCAiaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IFlBTUxNYXAgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MTWFwLmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MU2VxLmpzJztcbmltcG9ydCB7IHJlc29sdmVCbG9ja01hcCB9IGZyb20gJy4vcmVzb2x2ZS1ibG9jay1tYXAuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUJsb2NrU2VxIH0gZnJvbSAnLi9yZXNvbHZlLWJsb2NrLXNlcS5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRmxvd0NvbGxlY3Rpb24gfSBmcm9tICcuL3Jlc29sdmUtZmxvdy1jb2xsZWN0aW9uLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUNvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZ05hbWUsIHRhZykge1xuICAgIGNvbnN0IGNvbGwgPSB0b2tlbi50eXBlID09PSAnYmxvY2stbWFwJ1xuICAgICAgICA/IHJlc29sdmVCbG9ja01hcChDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnKVxuICAgICAgICA6IHRva2VuLnR5cGUgPT09ICdibG9jay1zZXEnXG4gICAgICAgICAgICA/IHJlc29sdmVCbG9ja1NlcShDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnKVxuICAgICAgICAgICAgOiByZXNvbHZlRmxvd0NvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZyk7XG4gICAgY29uc3QgQ29sbCA9IGNvbGwuY29uc3RydWN0b3I7XG4gICAgLy8gSWYgd2UgZ290IGEgdGFnTmFtZSBtYXRjaGluZyB0aGUgY2xhc3MsIG9yIHRoZSB0YWcgbmFtZSBpcyAnIScsXG4gICAgLy8gdGhlbiB1c2UgdGhlIHRhZ05hbWUgZnJvbSB0aGUgbm9kZSBjbGFzcyB1c2VkIHRvIGNyZWF0ZSBpdC5cbiAgICBpZiAodGFnTmFtZSA9PT0gJyEnIHx8IHRhZ05hbWUgPT09IENvbGwudGFnTmFtZSkge1xuICAgICAgICBjb2xsLnRhZyA9IENvbGwudGFnTmFtZTtcbiAgICAgICAgcmV0dXJuIGNvbGw7XG4gICAgfVxuICAgIGlmICh0YWdOYW1lKVxuICAgICAgICBjb2xsLnRhZyA9IHRhZ05hbWU7XG4gICAgcmV0dXJuIGNvbGw7XG59XG5mdW5jdGlvbiBjb21wb3NlQ29sbGVjdGlvbihDTiwgY3R4LCB0b2tlbiwgcHJvcHMsIG9uRXJyb3IpIHtcbiAgICBjb25zdCB0YWdUb2tlbiA9IHByb3BzLnRhZztcbiAgICBjb25zdCB0YWdOYW1lID0gIXRhZ1Rva2VuXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGN0eC5kaXJlY3RpdmVzLnRhZ05hbWUodGFnVG9rZW4uc291cmNlLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZykpO1xuICAgIGlmICh0b2tlbi50eXBlID09PSAnYmxvY2stc2VxJykge1xuICAgICAgICBjb25zdCB7IGFuY2hvciwgbmV3bGluZUFmdGVyUHJvcDogbmwgfSA9IHByb3BzO1xuICAgICAgICBjb25zdCBsYXN0UHJvcCA9IGFuY2hvciAmJiB0YWdUb2tlblxuICAgICAgICAgICAgPyBhbmNob3Iub2Zmc2V0ID4gdGFnVG9rZW4ub2Zmc2V0XG4gICAgICAgICAgICAgICAgPyBhbmNob3JcbiAgICAgICAgICAgICAgICA6IHRhZ1Rva2VuXG4gICAgICAgICAgICA6IChhbmNob3IgPz8gdGFnVG9rZW4pO1xuICAgICAgICBpZiAobGFzdFByb3AgJiYgKCFubCB8fCBubC5vZmZzZXQgPCBsYXN0UHJvcC5vZmZzZXQpKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ01pc3NpbmcgbmV3bGluZSBhZnRlciBibG9jayBzZXF1ZW5jZSBwcm9wcyc7XG4gICAgICAgICAgICBvbkVycm9yKGxhc3RQcm9wLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZXhwVHlwZSA9IHRva2VuLnR5cGUgPT09ICdibG9jay1tYXAnXG4gICAgICAgID8gJ21hcCdcbiAgICAgICAgOiB0b2tlbi50eXBlID09PSAnYmxvY2stc2VxJ1xuICAgICAgICAgICAgPyAnc2VxJ1xuICAgICAgICAgICAgOiB0b2tlbi5zdGFydC5zb3VyY2UgPT09ICd7J1xuICAgICAgICAgICAgICAgID8gJ21hcCdcbiAgICAgICAgICAgICAgICA6ICdzZXEnO1xuICAgIC8vIHNob3J0Y3V0OiBjaGVjayBpZiBpdCdzIGEgZ2VuZXJpYyBZQU1MTWFwIG9yIFlBTUxTZXFcbiAgICAvLyBiZWZvcmUganVtcGluZyBpbnRvIHRoZSBjdXN0b20gdGFnIGxvZ2ljLlxuICAgIGlmICghdGFnVG9rZW4gfHxcbiAgICAgICAgIXRhZ05hbWUgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJyEnIHx8XG4gICAgICAgICh0YWdOYW1lID09PSBZQU1MTWFwLnRhZ05hbWUgJiYgZXhwVHlwZSA9PT0gJ21hcCcpIHx8XG4gICAgICAgICh0YWdOYW1lID09PSBZQU1MU2VxLnRhZ05hbWUgJiYgZXhwVHlwZSA9PT0gJ3NlcScpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29sbGVjdGlvbihDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnTmFtZSk7XG4gICAgfVxuICAgIGxldCB0YWcgPSBjdHguc2NoZW1hLnRhZ3MuZmluZCh0ID0+IHQudGFnID09PSB0YWdOYW1lICYmIHQuY29sbGVjdGlvbiA9PT0gZXhwVHlwZSk7XG4gICAgaWYgKCF0YWcpIHtcbiAgICAgICAgY29uc3Qga3QgPSBjdHguc2NoZW1hLmtub3duVGFnc1t0YWdOYW1lXTtcbiAgICAgICAgaWYgKGt0ICYmIGt0LmNvbGxlY3Rpb24gPT09IGV4cFR5cGUpIHtcbiAgICAgICAgICAgIGN0eC5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGt0LCB7IGRlZmF1bHQ6IGZhbHNlIH0pKTtcbiAgICAgICAgICAgIHRhZyA9IGt0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGt0Py5jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcih0YWdUb2tlbiwgJ0JBRF9DT0xMRUNUSU9OX1RZUEUnLCBgJHtrdC50YWd9IHVzZWQgZm9yICR7ZXhwVHlwZX0gY29sbGVjdGlvbiwgYnV0IGV4cGVjdHMgJHtrdC5jb2xsZWN0aW9ufWAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIGBVbnJlc29sdmVkIHRhZzogJHt0YWdOYW1lfWAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVDb2xsZWN0aW9uKENOLCBjdHgsIHRva2VuLCBvbkVycm9yLCB0YWdOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb2xsID0gcmVzb2x2ZUNvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZ05hbWUsIHRhZyk7XG4gICAgY29uc3QgcmVzID0gdGFnLnJlc29sdmU/Lihjb2xsLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZyksIGN0eC5vcHRpb25zKSA/PyBjb2xsO1xuICAgIGNvbnN0IG5vZGUgPSBpc05vZGUocmVzKVxuICAgICAgICA/IHJlc1xuICAgICAgICA6IG5ldyBTY2FsYXIocmVzKTtcbiAgICBub2RlLnJhbmdlID0gY29sbC5yYW5nZTtcbiAgICBub2RlLnRhZyA9IHRhZ05hbWU7XG4gICAgaWYgKHRhZz8uZm9ybWF0KVxuICAgICAgICBub2RlLmZvcm1hdCA9IHRhZy5mb3JtYXQ7XG4gICAgcmV0dXJuIG5vZGU7XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VDb2xsZWN0aW9uIH07XG4iLCAiaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUJsb2NrU2NhbGFyKGN0eCwgc2NhbGFyLCBvbkVycm9yKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBzY2FsYXIub2Zmc2V0O1xuICAgIGNvbnN0IGhlYWRlciA9IHBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoc2NhbGFyLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgIGlmICghaGVhZGVyKVxuICAgICAgICByZXR1cm4geyB2YWx1ZTogJycsIHR5cGU6IG51bGwsIGNvbW1lbnQ6ICcnLCByYW5nZTogW3N0YXJ0LCBzdGFydCwgc3RhcnRdIH07XG4gICAgY29uc3QgdHlwZSA9IGhlYWRlci5tb2RlID09PSAnPicgPyBTY2FsYXIuQkxPQ0tfRk9MREVEIDogU2NhbGFyLkJMT0NLX0xJVEVSQUw7XG4gICAgY29uc3QgbGluZXMgPSBzY2FsYXIuc291cmNlID8gc3BsaXRMaW5lcyhzY2FsYXIuc291cmNlKSA6IFtdO1xuICAgIC8vIGRldGVybWluZSB0aGUgZW5kIG9mIGNvbnRlbnQgJiBzdGFydCBvZiBjaG9tcGluZ1xuICAgIGxldCBjaG9tcFN0YXJ0ID0gbGluZXMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSBsaW5lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbGluZXNbaV1bMV07XG4gICAgICAgIGlmIChjb250ZW50ID09PSAnJyB8fCBjb250ZW50ID09PSAnXFxyJylcbiAgICAgICAgICAgIGNob21wU3RhcnQgPSBpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgLy8gc2hvcnRjdXQgZm9yIGVtcHR5IGNvbnRlbnRzXG4gICAgaWYgKGNob21wU3RhcnQgPT09IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBoZWFkZXIuY2hvbXAgPT09ICcrJyAmJiBsaW5lcy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/ICdcXG4nLnJlcGVhdChNYXRoLm1heCgxLCBsaW5lcy5sZW5ndGggLSAxKSlcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgIGxldCBlbmQgPSBzdGFydCArIGhlYWRlci5sZW5ndGg7XG4gICAgICAgIGlmIChzY2FsYXIuc291cmNlKVxuICAgICAgICAgICAgZW5kICs9IHNjYWxhci5zb3VyY2UubGVuZ3RoO1xuICAgICAgICByZXR1cm4geyB2YWx1ZSwgdHlwZSwgY29tbWVudDogaGVhZGVyLmNvbW1lbnQsIHJhbmdlOiBbc3RhcnQsIGVuZCwgZW5kXSB9O1xuICAgIH1cbiAgICAvLyBmaW5kIHRoZSBpbmRlbnRhdGlvbiBsZXZlbCB0byB0cmltIGZyb20gc3RhcnRcbiAgICBsZXQgdHJpbUluZGVudCA9IHNjYWxhci5pbmRlbnQgKyBoZWFkZXIuaW5kZW50O1xuICAgIGxldCBvZmZzZXQgPSBzY2FsYXIub2Zmc2V0ICsgaGVhZGVyLmxlbmd0aDtcbiAgICBsZXQgY29udGVudFN0YXJ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob21wU3RhcnQ7ICsraSkge1xuICAgICAgICBjb25zdCBbaW5kZW50LCBjb250ZW50XSA9IGxpbmVzW2ldO1xuICAgICAgICBpZiAoY29udGVudCA9PT0gJycgfHwgY29udGVudCA9PT0gJ1xccicpIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXIuaW5kZW50ID09PSAwICYmIGluZGVudC5sZW5ndGggPiB0cmltSW5kZW50KVxuICAgICAgICAgICAgICAgIHRyaW1JbmRlbnQgPSBpbmRlbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGVudC5sZW5ndGggPCB0cmltSW5kZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdCbG9jayBzY2FsYXJzIHdpdGggbW9yZS1pbmRlbnRlZCBsZWFkaW5nIGVtcHR5IGxpbmVzIG11c3QgdXNlIGFuIGV4cGxpY2l0IGluZGVudGF0aW9uIGluZGljYXRvcic7XG4gICAgICAgICAgICAgICAgb25FcnJvcihvZmZzZXQgKyBpbmRlbnQubGVuZ3RoLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGVhZGVyLmluZGVudCA9PT0gMClcbiAgICAgICAgICAgICAgICB0cmltSW5kZW50ID0gaW5kZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnRlbnRTdGFydCA9IGk7XG4gICAgICAgICAgICBpZiAodHJpbUluZGVudCA9PT0gMCAmJiAhY3R4LmF0Um9vdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnQmxvY2sgc2NhbGFyIHZhbHVlcyBpbiBjb2xsZWN0aW9ucyBtdXN0IGJlIGluZGVudGVkJztcbiAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCArPSBpbmRlbnQubGVuZ3RoICsgY29udGVudC5sZW5ndGggKyAxO1xuICAgIH1cbiAgICAvLyBpbmNsdWRlIHRyYWlsaW5nIG1vcmUtaW5kZW50ZWQgZW1wdHkgbGluZXMgaW4gY29udGVudFxuICAgIGZvciAobGV0IGkgPSBsaW5lcy5sZW5ndGggLSAxOyBpID49IGNob21wU3RhcnQ7IC0taSkge1xuICAgICAgICBpZiAobGluZXNbaV1bMF0ubGVuZ3RoID4gdHJpbUluZGVudClcbiAgICAgICAgICAgIGNob21wU3RhcnQgPSBpICsgMTtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gJyc7XG4gICAgbGV0IHNlcCA9ICcnO1xuICAgIGxldCBwcmV2TW9yZUluZGVudGVkID0gZmFsc2U7XG4gICAgLy8gbGVhZGluZyB3aGl0ZXNwYWNlIGlzIGtlcHQgaW50YWN0XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZW50U3RhcnQ7ICsraSlcbiAgICAgICAgdmFsdWUgKz0gbGluZXNbaV1bMF0uc2xpY2UodHJpbUluZGVudCkgKyAnXFxuJztcbiAgICBmb3IgKGxldCBpID0gY29udGVudFN0YXJ0OyBpIDwgY2hvbXBTdGFydDsgKytpKSB7XG4gICAgICAgIGxldCBbaW5kZW50LCBjb250ZW50XSA9IGxpbmVzW2ldO1xuICAgICAgICBvZmZzZXQgKz0gaW5kZW50Lmxlbmd0aCArIGNvbnRlbnQubGVuZ3RoICsgMTtcbiAgICAgICAgY29uc3QgY3JsZiA9IGNvbnRlbnRbY29udGVudC5sZW5ndGggLSAxXSA9PT0gJ1xccic7XG4gICAgICAgIGlmIChjcmxmKVxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc2xpY2UoMCwgLTEpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgYWxyZWFkeSBjYXVnaHQgaW4gbGV4ZXIgKi9cbiAgICAgICAgaWYgKGNvbnRlbnQgJiYgaW5kZW50Lmxlbmd0aCA8IHRyaW1JbmRlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IGhlYWRlci5pbmRlbnRcbiAgICAgICAgICAgICAgICA/ICdleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3InXG4gICAgICAgICAgICAgICAgOiAnZmlyc3QgbGluZSc7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYEJsb2NrIHNjYWxhciBsaW5lcyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtzcmN9YDtcbiAgICAgICAgICAgIG9uRXJyb3Iob2Zmc2V0IC0gY29udGVudC5sZW5ndGggLSAoY3JsZiA/IDIgOiAxKSwgJ0JBRF9JTkRFTlQnLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGluZGVudCA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgaW5kZW50LnNsaWNlKHRyaW1JbmRlbnQpICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluZGVudC5sZW5ndGggPiB0cmltSW5kZW50IHx8IGNvbnRlbnRbMF0gPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAvLyBtb3JlLWluZGVudGVkIGNvbnRlbnQgd2l0aGluIGEgZm9sZGVkIGJsb2NrXG4gICAgICAgICAgICBpZiAoc2VwID09PSAnICcpXG4gICAgICAgICAgICAgICAgc2VwID0gJ1xcbic7XG4gICAgICAgICAgICBlbHNlIGlmICghcHJldk1vcmVJbmRlbnRlZCAmJiBzZXAgPT09ICdcXG4nKVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG5cXG4nO1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgaW5kZW50LnNsaWNlKHRyaW1JbmRlbnQpICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICAgICAgcHJldk1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgIC8vIGVtcHR5IGxpbmVcbiAgICAgICAgICAgIGlmIChzZXAgPT09ICdcXG4nKVxuICAgICAgICAgICAgICAgIHZhbHVlICs9ICdcXG4nO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICcgJztcbiAgICAgICAgICAgIHByZXZNb3JlSW5kZW50ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2ggKGhlYWRlci5jaG9tcCkge1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBjaG9tcFN0YXJ0OyBpIDwgbGluZXMubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gJ1xcbicgKyBsaW5lc1tpXVswXS5zbGljZSh0cmltSW5kZW50KTtcbiAgICAgICAgICAgIGlmICh2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSAhPT0gJ1xcbicpXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gJ1xcbic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHZhbHVlICs9ICdcXG4nO1xuICAgIH1cbiAgICBjb25zdCBlbmQgPSBzdGFydCArIGhlYWRlci5sZW5ndGggKyBzY2FsYXIuc291cmNlLmxlbmd0aDtcbiAgICByZXR1cm4geyB2YWx1ZSwgdHlwZSwgY29tbWVudDogaGVhZGVyLmNvbW1lbnQsIHJhbmdlOiBbc3RhcnQsIGVuZCwgZW5kXSB9O1xufVxuZnVuY3Rpb24gcGFyc2VCbG9ja1NjYWxhckhlYWRlcih7IG9mZnNldCwgcHJvcHMgfSwgc3RyaWN0LCBvbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmIHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgaWYgKHByb3BzWzBdLnR5cGUgIT09ICdibG9jay1zY2FsYXItaGVhZGVyJykge1xuICAgICAgICBvbkVycm9yKHByb3BzWzBdLCAnSU1QT1NTSUJMRScsICdCbG9jayBzY2FsYXIgaGVhZGVyIG5vdCBmb3VuZCcpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IHByb3BzWzBdO1xuICAgIGNvbnN0IG1vZGUgPSBzb3VyY2VbMF07XG4gICAgbGV0IGluZGVudCA9IDA7XG4gICAgbGV0IGNob21wID0gJyc7XG4gICAgbGV0IGVycm9yID0gLTE7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzb3VyY2UubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgY2ggPSBzb3VyY2VbaV07XG4gICAgICAgIGlmICghY2hvbXAgJiYgKGNoID09PSAnLScgfHwgY2ggPT09ICcrJykpXG4gICAgICAgICAgICBjaG9tcCA9IGNoO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBOdW1iZXIoY2gpO1xuICAgICAgICAgICAgaWYgKCFpbmRlbnQgJiYgbilcbiAgICAgICAgICAgICAgICBpbmRlbnQgPSBuO1xuICAgICAgICAgICAgZWxzZSBpZiAoZXJyb3IgPT09IC0xKVxuICAgICAgICAgICAgICAgIGVycm9yID0gb2Zmc2V0ICsgaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXJyb3IgIT09IC0xKVxuICAgICAgICBvbkVycm9yKGVycm9yLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBCbG9jayBzY2FsYXIgaGVhZGVyIGluY2x1ZGVzIGV4dHJhIGNoYXJhY3RlcnM6ICR7c291cmNlfWApO1xuICAgIGxldCBoYXNTcGFjZSA9IGZhbHNlO1xuICAgIGxldCBjb21tZW50ID0gJyc7XG4gICAgbGV0IGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwcm9wcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHByb3BzW2ldO1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgbGVuZ3RoICs9IHRva2VuLnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgICAgICBpZiAoc3RyaWN0ICYmICFoYXNTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ0NvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMnO1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxlbmd0aCArPSB0b2tlbi5zb3VyY2UubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSB0b2tlbi5zb3VyY2Uuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdVTkVYUEVDVEVEX1RPS0VOJywgdG9rZW4ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgbGVuZ3RoICs9IHRva2VuLnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0b2tlbiBpbiBibG9jayBzY2FsYXIgaGVhZGVyOiAke3Rva2VuLnR5cGV9YDtcbiAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRzID0gdG9rZW4uc291cmNlO1xuICAgICAgICAgICAgICAgIGlmICh0cyAmJiB0eXBlb2YgdHMgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gdHMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IG1vZGUsIGluZGVudCwgY2hvbXAsIGNvbW1lbnQsIGxlbmd0aCB9O1xufVxuLyoqIEByZXR1cm5zIEFycmF5IG9mIGxpbmVzIHNwbGl0IHVwIGFzIGBbaW5kZW50LCBjb250ZW50XWAgKi9cbmZ1bmN0aW9uIHNwbGl0TGluZXMoc291cmNlKSB7XG4gICAgY29uc3Qgc3BsaXQgPSBzb3VyY2Uuc3BsaXQoL1xcbiggKikvKTtcbiAgICBjb25zdCBmaXJzdCA9IHNwbGl0WzBdO1xuICAgIGNvbnN0IG0gPSBmaXJzdC5tYXRjaCgvXiggKikvKTtcbiAgICBjb25zdCBsaW5lMCA9IG0/LlsxXVxuICAgICAgICA/IFttWzFdLCBmaXJzdC5zbGljZShtWzFdLmxlbmd0aCldXG4gICAgICAgIDogWycnLCBmaXJzdF07XG4gICAgY29uc3QgbGluZXMgPSBbbGluZTBdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc3BsaXQubGVuZ3RoOyBpICs9IDIpXG4gICAgICAgIGxpbmVzLnB1c2goW3NwbGl0W2ldLCBzcGxpdFtpICsgMV1dKTtcbiAgICByZXR1cm4gbGluZXM7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVCbG9ja1NjYWxhciB9O1xuIiwgImltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVGbG93U2NhbGFyKHNjYWxhciwgc3RyaWN0LCBvbkVycm9yKSB7XG4gICAgY29uc3QgeyBvZmZzZXQsIHR5cGUsIHNvdXJjZSwgZW5kIH0gPSBzY2FsYXI7XG4gICAgbGV0IF90eXBlO1xuICAgIGxldCB2YWx1ZTtcbiAgICBjb25zdCBfb25FcnJvciA9IChyZWwsIGNvZGUsIG1zZykgPT4gb25FcnJvcihvZmZzZXQgKyByZWwsIGNvZGUsIG1zZyk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgICAgICBfdHlwZSA9IFNjYWxhci5QTEFJTjtcbiAgICAgICAgICAgIHZhbHVlID0gcGxhaW5WYWx1ZShzb3VyY2UsIF9vbkVycm9yKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICBfdHlwZSA9IFNjYWxhci5RVU9URV9TSU5HTEU7XG4gICAgICAgICAgICB2YWx1ZSA9IHNpbmdsZVF1b3RlZFZhbHVlKHNvdXJjZSwgX29uRXJyb3IpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIF90eXBlID0gU2NhbGFyLlFVT1RFX0RPVUJMRTtcbiAgICAgICAgICAgIHZhbHVlID0gZG91YmxlUXVvdGVkVmFsdWUoc291cmNlLCBfb25FcnJvcik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG9uRXJyb3Ioc2NhbGFyLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBFeHBlY3RlZCBhIGZsb3cgc2NhbGFyIHZhbHVlLCBidXQgZm91bmQ6ICR7dHlwZX1gKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgICAgICAgICAgY29tbWVudDogJycsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFtvZmZzZXQsIG9mZnNldCArIHNvdXJjZS5sZW5ndGgsIG9mZnNldCArIHNvdXJjZS5sZW5ndGhdXG4gICAgICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZUVuZCA9IG9mZnNldCArIHNvdXJjZS5sZW5ndGg7XG4gICAgY29uc3QgcmUgPSByZXNvbHZlRW5kKGVuZCwgdmFsdWVFbmQsIHN0cmljdCwgb25FcnJvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHR5cGU6IF90eXBlLFxuICAgICAgICBjb21tZW50OiByZS5jb21tZW50LFxuICAgICAgICByYW5nZTogW29mZnNldCwgdmFsdWVFbmQsIHJlLm9mZnNldF1cbiAgICB9O1xufVxuZnVuY3Rpb24gcGxhaW5WYWx1ZShzb3VyY2UsIG9uRXJyb3IpIHtcbiAgICBsZXQgYmFkQ2hhciA9ICcnO1xuICAgIHN3aXRjaCAoc291cmNlWzBdKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgICAgIGNhc2UgJ1xcdCc6XG4gICAgICAgICAgICBiYWRDaGFyID0gJ2EgdGFiIGNoYXJhY3Rlcic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnLCc6XG4gICAgICAgICAgICBiYWRDaGFyID0gJ2Zsb3cgaW5kaWNhdG9yIGNoYXJhY3RlciAsJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICclJzpcbiAgICAgICAgICAgIGJhZENoYXIgPSAnZGlyZWN0aXZlIGluZGljYXRvciBjaGFyYWN0ZXIgJSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgIGNhc2UgJz4nOiB7XG4gICAgICAgICAgICBiYWRDaGFyID0gYGJsb2NrIHNjYWxhciBpbmRpY2F0b3IgJHtzb3VyY2VbMF19YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ0AnOlxuICAgICAgICBjYXNlICdgJzoge1xuICAgICAgICAgICAgYmFkQ2hhciA9IGByZXNlcnZlZCBjaGFyYWN0ZXIgJHtzb3VyY2VbMF19YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChiYWRDaGFyKVxuICAgICAgICBvbkVycm9yKDAsICdCQURfU0NBTEFSX1NUQVJUJywgYFBsYWluIHZhbHVlIGNhbm5vdCBzdGFydCB3aXRoICR7YmFkQ2hhcn1gKTtcbiAgICByZXR1cm4gZm9sZExpbmVzKHNvdXJjZSk7XG59XG5mdW5jdGlvbiBzaW5nbGVRdW90ZWRWYWx1ZShzb3VyY2UsIG9uRXJyb3IpIHtcbiAgICBpZiAoc291cmNlW3NvdXJjZS5sZW5ndGggLSAxXSAhPT0gXCInXCIgfHwgc291cmNlLmxlbmd0aCA9PT0gMSlcbiAgICAgICAgb25FcnJvcihzb3VyY2UubGVuZ3RoLCAnTUlTU0lOR19DSEFSJywgXCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlXCIpO1xuICAgIHJldHVybiBmb2xkTGluZXMoc291cmNlLnNsaWNlKDEsIC0xKSkucmVwbGFjZSgvJycvZywgXCInXCIpO1xufVxuZnVuY3Rpb24gZm9sZExpbmVzKHNvdXJjZSkge1xuICAgIC8qKlxuICAgICAqIFRoZSBuZWdhdGl2ZSBsb29rYmVoaW5kIGhlcmUgYW5kIGluIHRoZSBgcmVgIFJlZ0V4cCBpcyB0b1xuICAgICAqIHByZXZlbnQgY2F1c2luZyBhIHBvbHlub21pYWwgc2VhcmNoIHRpbWUgaW4gY2VydGFpbiBjYXNlcy5cbiAgICAgKlxuICAgICAqIFRoZSB0cnktY2F0Y2ggaXMgZm9yIFNhZmFyaSwgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHRoaXMgeWV0OlxuICAgICAqIGh0dHBzOi8vY2FuaXVzZS5jb20vanMtcmVnZXhwLWxvb2tiZWhpbmRcbiAgICAgKi9cbiAgICBsZXQgZmlyc3QsIGxpbmU7XG4gICAgdHJ5IHtcbiAgICAgICAgZmlyc3QgPSBuZXcgUmVnRXhwKCcoLio/KSg/PCFbIFxcdF0pWyBcXHRdKlxccj9cXG4nLCAnc3knKTtcbiAgICAgICAgbGluZSA9IG5ldyBSZWdFeHAoJ1sgXFx0XSooLio/KSg/Oig/PCFbIFxcdF0pWyBcXHRdKik/XFxyP1xcbicsICdzeScpO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIGZpcnN0ID0gLyguKj8pWyBcXHRdKlxccj9cXG4vc3k7XG4gICAgICAgIGxpbmUgPSAvWyBcXHRdKiguKj8pWyBcXHRdKlxccj9cXG4vc3k7XG4gICAgfVxuICAgIGxldCBtYXRjaCA9IGZpcnN0LmV4ZWMoc291cmNlKTtcbiAgICBpZiAoIW1hdGNoKVxuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIGxldCByZXMgPSBtYXRjaFsxXTtcbiAgICBsZXQgc2VwID0gJyAnO1xuICAgIGxldCBwb3MgPSBmaXJzdC5sYXN0SW5kZXg7XG4gICAgbGluZS5sYXN0SW5kZXggPSBwb3M7XG4gICAgd2hpbGUgKChtYXRjaCA9IGxpbmUuZXhlYyhzb3VyY2UpKSkge1xuICAgICAgICBpZiAobWF0Y2hbMV0gPT09ICcnKSB7XG4gICAgICAgICAgICBpZiAoc2VwID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICByZXMgKz0gc2VwO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHNlcCArIG1hdGNoWzFdO1xuICAgICAgICAgICAgc2VwID0gJyAnO1xuICAgICAgICB9XG4gICAgICAgIHBvcyA9IGxpbmUubGFzdEluZGV4O1xuICAgIH1cbiAgICBjb25zdCBsYXN0ID0gL1sgXFx0XSooLiopL3N5O1xuICAgIGxhc3QubGFzdEluZGV4ID0gcG9zO1xuICAgIG1hdGNoID0gbGFzdC5leGVjKHNvdXJjZSk7XG4gICAgcmV0dXJuIHJlcyArIHNlcCArIChtYXRjaD8uWzFdID8/ICcnKTtcbn1cbmZ1bmN0aW9uIGRvdWJsZVF1b3RlZFZhbHVlKHNvdXJjZSwgb25FcnJvcikge1xuICAgIGxldCByZXMgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHNvdXJjZS5sZW5ndGggLSAxOyArK2kpIHtcbiAgICAgICAgY29uc3QgY2ggPSBzb3VyY2VbaV07XG4gICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2kgKyAxXSA9PT0gJ1xcbicpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGNoID09PSAnXFxuJykge1xuICAgICAgICAgICAgY29uc3QgeyBmb2xkLCBvZmZzZXQgfSA9IGZvbGROZXdsaW5lKHNvdXJjZSwgaSk7XG4gICAgICAgICAgICByZXMgKz0gZm9sZDtcbiAgICAgICAgICAgIGkgPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgbGV0IG5leHQgPSBzb3VyY2VbKytpXTtcbiAgICAgICAgICAgIGNvbnN0IGNjID0gZXNjYXBlQ29kZXNbbmV4dF07XG4gICAgICAgICAgICBpZiAoY2MpXG4gICAgICAgICAgICAgICAgcmVzICs9IGNjO1xuICAgICAgICAgICAgZWxzZSBpZiAobmV4dCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAvLyBza2lwIGVzY2FwZWQgbmV3bGluZXMsIGJ1dCBzdGlsbCB0cmltIHRoZSBmb2xsb3dpbmcgbGluZVxuICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbaSArIDFdO1xuICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0ID09PSAnICcgfHwgbmV4dCA9PT0gJ1xcdCcpXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbKytpICsgMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChuZXh0ID09PSAnXFxyJyAmJiBzb3VyY2VbaSArIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIC8vIHNraXAgZXNjYXBlZCBDUkxGIG5ld2xpbmVzLCBidXQgc3RpbGwgdHJpbSB0aGUgZm9sbG93aW5nIGxpbmVcbiAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlWysraSArIDFdO1xuICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0ID09PSAnICcgfHwgbmV4dCA9PT0gJ1xcdCcpXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbKytpICsgMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChuZXh0ID09PSAneCcgfHwgbmV4dCA9PT0gJ3UnIHx8IG5leHQgPT09ICdVJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHsgeDogMiwgdTogNCwgVTogOCB9W25leHRdO1xuICAgICAgICAgICAgICAgIHJlcyArPSBwYXJzZUNoYXJDb2RlKHNvdXJjZSwgaSArIDEsIGxlbmd0aCwgb25FcnJvcik7XG4gICAgICAgICAgICAgICAgaSArPSBsZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBzb3VyY2Uuc3Vic3RyKGkgLSAxLCAyKTtcbiAgICAgICAgICAgICAgICBvbkVycm9yKGkgLSAxLCAnQkFEX0RRX0VTQ0FQRScsIGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke3Jhd31gKTtcbiAgICAgICAgICAgICAgICByZXMgKz0gcmF3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAvLyB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2VcbiAgICAgICAgICAgIGNvbnN0IHdzU3RhcnQgPSBpO1xuICAgICAgICAgICAgbGV0IG5leHQgPSBzb3VyY2VbaSArIDFdO1xuICAgICAgICAgICAgd2hpbGUgKG5leHQgPT09ICcgJyB8fCBuZXh0ID09PSAnXFx0JylcbiAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlWysraSArIDFdO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09ICdcXG4nICYmICEobmV4dCA9PT0gJ1xccicgJiYgc291cmNlW2kgKyAyXSA9PT0gJ1xcbicpKVxuICAgICAgICAgICAgICAgIHJlcyArPSBpID4gd3NTdGFydCA/IHNvdXJjZS5zbGljZSh3c1N0YXJ0LCBpICsgMSkgOiBjaDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlcyArPSBjaDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc291cmNlW3NvdXJjZS5sZW5ndGggLSAxXSAhPT0gJ1wiJyB8fCBzb3VyY2UubGVuZ3RoID09PSAxKVxuICAgICAgICBvbkVycm9yKHNvdXJjZS5sZW5ndGgsICdNSVNTSU5HX0NIQVInLCAnTWlzc2luZyBjbG9zaW5nIFwicXVvdGUnKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBGb2xkIGEgc2luZ2xlIG5ld2xpbmUgaW50byBhIHNwYWNlLCBtdWx0aXBsZSBuZXdsaW5lcyB0byBOIC0gMSBuZXdsaW5lcy5cbiAqIFByZXN1bWVzIGBzb3VyY2Vbb2Zmc2V0XSA9PT0gJ1xcbidgXG4gKi9cbmZ1bmN0aW9uIGZvbGROZXdsaW5lKHNvdXJjZSwgb2Zmc2V0KSB7XG4gICAgbGV0IGZvbGQgPSAnJztcbiAgICBsZXQgY2ggPSBzb3VyY2Vbb2Zmc2V0ICsgMV07XG4gICAgd2hpbGUgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnIHx8IGNoID09PSAnXFxuJyB8fCBjaCA9PT0gJ1xccicpIHtcbiAgICAgICAgaWYgKGNoID09PSAnXFxyJyAmJiBzb3VyY2Vbb2Zmc2V0ICsgMl0gIT09ICdcXG4nKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICBmb2xkICs9ICdcXG4nO1xuICAgICAgICBvZmZzZXQgKz0gMTtcbiAgICAgICAgY2ggPSBzb3VyY2Vbb2Zmc2V0ICsgMV07XG4gICAgfVxuICAgIGlmICghZm9sZClcbiAgICAgICAgZm9sZCA9ICcgJztcbiAgICByZXR1cm4geyBmb2xkLCBvZmZzZXQgfTtcbn1cbmNvbnN0IGVzY2FwZUNvZGVzID0ge1xuICAgICcwJzogJ1xcMCcsIC8vIG51bGwgY2hhcmFjdGVyXG4gICAgYTogJ1xceDA3JywgLy8gYmVsbCBjaGFyYWN0ZXJcbiAgICBiOiAnXFxiJywgLy8gYmFja3NwYWNlXG4gICAgZTogJ1xceDFiJywgLy8gZXNjYXBlIGNoYXJhY3RlclxuICAgIGY6ICdcXGYnLCAvLyBmb3JtIGZlZWRcbiAgICBuOiAnXFxuJywgLy8gbGluZSBmZWVkXG4gICAgcjogJ1xccicsIC8vIGNhcnJpYWdlIHJldHVyblxuICAgIHQ6ICdcXHQnLCAvLyBob3Jpem9udGFsIHRhYlxuICAgIHY6ICdcXHYnLCAvLyB2ZXJ0aWNhbCB0YWJcbiAgICBOOiAnXFx1MDA4NScsIC8vIFVuaWNvZGUgbmV4dCBsaW5lXG4gICAgXzogJ1xcdTAwYTAnLCAvLyBVbmljb2RlIG5vbi1icmVha2luZyBzcGFjZVxuICAgIEw6ICdcXHUyMDI4JywgLy8gVW5pY29kZSBsaW5lIHNlcGFyYXRvclxuICAgIFA6ICdcXHUyMDI5JywgLy8gVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yXG4gICAgJyAnOiAnICcsXG4gICAgJ1wiJzogJ1wiJyxcbiAgICAnLyc6ICcvJyxcbiAgICAnXFxcXCc6ICdcXFxcJyxcbiAgICAnXFx0JzogJ1xcdCdcbn07XG5mdW5jdGlvbiBwYXJzZUNoYXJDb2RlKHNvdXJjZSwgb2Zmc2V0LCBsZW5ndGgsIG9uRXJyb3IpIHtcbiAgICBjb25zdCBjYyA9IHNvdXJjZS5zdWJzdHIob2Zmc2V0LCBsZW5ndGgpO1xuICAgIGNvbnN0IG9rID0gY2MubGVuZ3RoID09PSBsZW5ndGggJiYgL15bMC05YS1mQS1GXSskLy50ZXN0KGNjKTtcbiAgICBjb25zdCBjb2RlID0gb2sgPyBwYXJzZUludChjYywgMTYpIDogTmFOO1xuICAgIGlmIChpc05hTihjb2RlKSkge1xuICAgICAgICBjb25zdCByYXcgPSBzb3VyY2Uuc3Vic3RyKG9mZnNldCAtIDIsIGxlbmd0aCArIDIpO1xuICAgICAgICBvbkVycm9yKG9mZnNldCAtIDIsICdCQURfRFFfRVNDQVBFJywgYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7cmF3fWApO1xuICAgICAgICByZXR1cm4gcmF3O1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSk7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVGbG93U2NhbGFyIH07XG4iLCAiaW1wb3J0IHsgaXNTY2FsYXIsIFNDQUxBUiB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlQmxvY2tTY2FsYXIgfSBmcm9tICcuL3Jlc29sdmUtYmxvY2stc2NhbGFyLmpzJztcbmltcG9ydCB7IHJlc29sdmVGbG93U2NhbGFyIH0gZnJvbSAnLi9yZXNvbHZlLWZsb3ctc2NhbGFyLmpzJztcblxuZnVuY3Rpb24gY29tcG9zZVNjYWxhcihjdHgsIHRva2VuLCB0YWdUb2tlbiwgb25FcnJvcikge1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGUsIGNvbW1lbnQsIHJhbmdlIH0gPSB0b2tlbi50eXBlID09PSAnYmxvY2stc2NhbGFyJ1xuICAgICAgICA/IHJlc29sdmVCbG9ja1NjYWxhcihjdHgsIHRva2VuLCBvbkVycm9yKVxuICAgICAgICA6IHJlc29sdmVGbG93U2NhbGFyKHRva2VuLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgIGNvbnN0IHRhZ05hbWUgPSB0YWdUb2tlblxuICAgICAgICA/IGN0eC5kaXJlY3RpdmVzLnRhZ05hbWUodGFnVG9rZW4uc291cmNlLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZykpXG4gICAgICAgIDogbnVsbDtcbiAgICBsZXQgdGFnO1xuICAgIGlmIChjdHgub3B0aW9ucy5zdHJpbmdLZXlzICYmIGN0eC5hdEtleSkge1xuICAgICAgICB0YWcgPSBjdHguc2NoZW1hW1NDQUxBUl07XG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ05hbWUpXG4gICAgICAgIHRhZyA9IGZpbmRTY2FsYXJUYWdCeU5hbWUoY3R4LnNjaGVtYSwgdmFsdWUsIHRhZ05hbWUsIHRhZ1Rva2VuLCBvbkVycm9yKTtcbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSAnc2NhbGFyJylcbiAgICAgICAgdGFnID0gZmluZFNjYWxhclRhZ0J5VGVzdChjdHgsIHZhbHVlLCB0b2tlbiwgb25FcnJvcik7XG4gICAgZWxzZVxuICAgICAgICB0YWcgPSBjdHguc2NoZW1hW1NDQUxBUl07XG4gICAgbGV0IHNjYWxhcjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXMgPSB0YWcucmVzb2x2ZSh2YWx1ZSwgbXNnID0+IG9uRXJyb3IodGFnVG9rZW4gPz8gdG9rZW4sICdUQUdfUkVTT0xWRV9GQUlMRUQnLCBtc2cpLCBjdHgub3B0aW9ucyk7XG4gICAgICAgIHNjYWxhciA9IGlzU2NhbGFyKHJlcykgPyByZXMgOiBuZXcgU2NhbGFyKHJlcyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBtc2cgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIG9uRXJyb3IodGFnVG9rZW4gPz8gdG9rZW4sICdUQUdfUkVTT0xWRV9GQUlMRUQnLCBtc2cpO1xuICAgICAgICBzY2FsYXIgPSBuZXcgU2NhbGFyKHZhbHVlKTtcbiAgICB9XG4gICAgc2NhbGFyLnJhbmdlID0gcmFuZ2U7XG4gICAgc2NhbGFyLnNvdXJjZSA9IHZhbHVlO1xuICAgIGlmICh0eXBlKVxuICAgICAgICBzY2FsYXIudHlwZSA9IHR5cGU7XG4gICAgaWYgKHRhZ05hbWUpXG4gICAgICAgIHNjYWxhci50YWcgPSB0YWdOYW1lO1xuICAgIGlmICh0YWcuZm9ybWF0KVxuICAgICAgICBzY2FsYXIuZm9ybWF0ID0gdGFnLmZvcm1hdDtcbiAgICBpZiAoY29tbWVudClcbiAgICAgICAgc2NhbGFyLmNvbW1lbnQgPSBjb21tZW50O1xuICAgIHJldHVybiBzY2FsYXI7XG59XG5mdW5jdGlvbiBmaW5kU2NhbGFyVGFnQnlOYW1lKHNjaGVtYSwgdmFsdWUsIHRhZ05hbWUsIHRhZ1Rva2VuLCBvbkVycm9yKSB7XG4gICAgaWYgKHRhZ05hbWUgPT09ICchJylcbiAgICAgICAgcmV0dXJuIHNjaGVtYVtTQ0FMQVJdOyAvLyBub24tc3BlY2lmaWMgdGFnXG4gICAgY29uc3QgbWF0Y2hXaXRoVGVzdCA9IFtdO1xuICAgIGZvciAoY29uc3QgdGFnIG9mIHNjaGVtYS50YWdzKSB7XG4gICAgICAgIGlmICghdGFnLmNvbGxlY3Rpb24gJiYgdGFnLnRhZyA9PT0gdGFnTmFtZSkge1xuICAgICAgICAgICAgaWYgKHRhZy5kZWZhdWx0ICYmIHRhZy50ZXN0KVxuICAgICAgICAgICAgICAgIG1hdGNoV2l0aFRlc3QucHVzaCh0YWcpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCB0YWcgb2YgbWF0Y2hXaXRoVGVzdClcbiAgICAgICAgaWYgKHRhZy50ZXN0Py50ZXN0KHZhbHVlKSlcbiAgICAgICAgICAgIHJldHVybiB0YWc7XG4gICAgY29uc3Qga3QgPSBzY2hlbWEua25vd25UYWdzW3RhZ05hbWVdO1xuICAgIGlmIChrdCAmJiAha3QuY29sbGVjdGlvbikge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUga25vd24gdGFnIGlzIGF2YWlsYWJsZSBmb3Igc3RyaW5naWZ5aW5nLFxuICAgICAgICAvLyBidXQgZG9lcyBub3QgZ2V0IHVzZWQgYnkgZGVmYXVsdC5cbiAgICAgICAgc2NoZW1hLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKHt9LCBrdCwgeyBkZWZhdWx0OiBmYWxzZSwgdGVzdDogdW5kZWZpbmVkIH0pKTtcbiAgICAgICAgcmV0dXJuIGt0O1xuICAgIH1cbiAgICBvbkVycm9yKHRhZ1Rva2VuLCAnVEFHX1JFU09MVkVfRkFJTEVEJywgYFVucmVzb2x2ZWQgdGFnOiAke3RhZ05hbWV9YCwgdGFnTmFtZSAhPT0gJ3RhZzp5YW1sLm9yZywyMDAyOnN0cicpO1xuICAgIHJldHVybiBzY2hlbWFbU0NBTEFSXTtcbn1cbmZ1bmN0aW9uIGZpbmRTY2FsYXJUYWdCeVRlc3QoeyBhdEtleSwgZGlyZWN0aXZlcywgc2NoZW1hIH0sIHZhbHVlLCB0b2tlbiwgb25FcnJvcikge1xuICAgIGNvbnN0IHRhZyA9IHNjaGVtYS50YWdzLmZpbmQodGFnID0+ICh0YWcuZGVmYXVsdCA9PT0gdHJ1ZSB8fCAoYXRLZXkgJiYgdGFnLmRlZmF1bHQgPT09ICdrZXknKSkgJiZcbiAgICAgICAgdGFnLnRlc3Q/LnRlc3QodmFsdWUpKSB8fCBzY2hlbWFbU0NBTEFSXTtcbiAgICBpZiAoc2NoZW1hLmNvbXBhdCkge1xuICAgICAgICBjb25zdCBjb21wYXQgPSBzY2hlbWEuY29tcGF0LmZpbmQodGFnID0+IHRhZy5kZWZhdWx0ICYmIHRhZy50ZXN0Py50ZXN0KHZhbHVlKSkgPz9cbiAgICAgICAgICAgIHNjaGVtYVtTQ0FMQVJdO1xuICAgICAgICBpZiAodGFnLnRhZyAhPT0gY29tcGF0LnRhZykge1xuICAgICAgICAgICAgY29uc3QgdHMgPSBkaXJlY3RpdmVzLnRhZ1N0cmluZyh0YWcudGFnKTtcbiAgICAgICAgICAgIGNvbnN0IGNzID0gZGlyZWN0aXZlcy50YWdTdHJpbmcoY29tcGF0LnRhZyk7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBgVmFsdWUgbWF5IGJlIHBhcnNlZCBhcyBlaXRoZXIgJHt0c30gb3IgJHtjc31gO1xuICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cblxuZXhwb3J0IHsgY29tcG9zZVNjYWxhciB9O1xuIiwgImZ1bmN0aW9uIGVtcHR5U2NhbGFyUG9zaXRpb24ob2Zmc2V0LCBiZWZvcmUsIHBvcykge1xuICAgIGlmIChiZWZvcmUpIHtcbiAgICAgICAgaWYgKHBvcyA9PT0gbnVsbClcbiAgICAgICAgICAgIHBvcyA9IGJlZm9yZS5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSBwb3MgLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgbGV0IHN0ID0gYmVmb3JlW2ldO1xuICAgICAgICAgICAgc3dpdGNoIChzdC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLT0gc3Quc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUZWNobmljYWxseSwgYW4gZW1wdHkgc2NhbGFyIGlzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IG5vbi1lbXB0eVxuICAgICAgICAgICAgLy8gbm9kZSwgYnV0IGl0J3MgbW9yZSB1c2VmdWwgdG8gcGxhY2UgaXQgYWZ0ZXIgYW55IHdoaXRlc3BhY2UuXG4gICAgICAgICAgICBzdCA9IGJlZm9yZVsrK2ldO1xuICAgICAgICAgICAgd2hpbGUgKHN0Py50eXBlID09PSAnc3BhY2UnKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHN0LnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgc3QgPSBiZWZvcmVbKytpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvZmZzZXQ7XG59XG5cbmV4cG9ydCB7IGVtcHR5U2NhbGFyUG9zaXRpb24gfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgY29tcG9zZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbXBvc2UtY29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgeyBjb21wb3NlU2NhbGFyIH0gZnJvbSAnLi9jb21wb3NlLXNjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5pbXBvcnQgeyBlbXB0eVNjYWxhclBvc2l0aW9uIH0gZnJvbSAnLi91dGlsLWVtcHR5LXNjYWxhci1wb3NpdGlvbi5qcyc7XG5cbmNvbnN0IENOID0geyBjb21wb3NlTm9kZSwgY29tcG9zZUVtcHR5Tm9kZSB9O1xuZnVuY3Rpb24gY29tcG9zZU5vZGUoY3R4LCB0b2tlbiwgcHJvcHMsIG9uRXJyb3IpIHtcbiAgICBjb25zdCBhdEtleSA9IGN0eC5hdEtleTtcbiAgICBjb25zdCB7IHNwYWNlQmVmb3JlLCBjb21tZW50LCBhbmNob3IsIHRhZyB9ID0gcHJvcHM7XG4gICAgbGV0IG5vZGU7XG4gICAgbGV0IGlzU3JjVG9rZW4gPSB0cnVlO1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICBub2RlID0gY29tcG9zZUFsaWFzKGN0eCwgdG9rZW4sIG9uRXJyb3IpO1xuICAgICAgICAgICAgaWYgKGFuY2hvciB8fCB0YWcpXG4gICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ0FMSUFTX1BST1BTJywgJ0FuIGFsaWFzIG5vZGUgbXVzdCBub3Qgc3BlY2lmeSBhbnkgcHJvcGVydGllcycpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICBjYXNlICdibG9jay1zY2FsYXInOlxuICAgICAgICAgICAgbm9kZSA9IGNvbXBvc2VTY2FsYXIoY3R4LCB0b2tlbiwgdGFnLCBvbkVycm9yKTtcbiAgICAgICAgICAgIGlmIChhbmNob3IpXG4gICAgICAgICAgICAgICAgbm9kZS5hbmNob3IgPSBhbmNob3Iuc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdibG9jay1tYXAnOlxuICAgICAgICBjYXNlICdibG9jay1zZXEnOlxuICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOlxuICAgICAgICAgICAgbm9kZSA9IGNvbXBvc2VDb2xsZWN0aW9uKENOLCBjdHgsIHRva2VuLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBpZiAoYW5jaG9yKVxuICAgICAgICAgICAgICAgIG5vZGUuYW5jaG9yID0gYW5jaG9yLnNvdXJjZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRva2VuLnR5cGUgPT09ICdlcnJvcidcbiAgICAgICAgICAgICAgICA/IHRva2VuLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICA6IGBVbnN1cHBvcnRlZCB0b2tlbiAodHlwZTogJHt0b2tlbi50eXBlfSlgO1xuICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1VORVhQRUNURURfVE9LRU4nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIG5vZGUgPSBjb21wb3NlRW1wdHlOb2RlKGN0eCwgdG9rZW4ub2Zmc2V0LCB1bmRlZmluZWQsIG51bGwsIHByb3BzLCBvbkVycm9yKTtcbiAgICAgICAgICAgIGlzU3JjVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoYW5jaG9yICYmIG5vZGUuYW5jaG9yID09PSAnJylcbiAgICAgICAgb25FcnJvcihhbmNob3IsICdCQURfQUxJQVMnLCAnQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICBpZiAoYXRLZXkgJiZcbiAgICAgICAgY3R4Lm9wdGlvbnMuc3RyaW5nS2V5cyAmJlxuICAgICAgICAoIWlzU2NhbGFyKG5vZGUpIHx8XG4gICAgICAgICAgICB0eXBlb2Ygbm9kZS52YWx1ZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgIChub2RlLnRhZyAmJiBub2RlLnRhZyAhPT0gJ3RhZzp5YW1sLm9yZywyMDAyOnN0cicpKSkge1xuICAgICAgICBjb25zdCBtc2cgPSAnV2l0aCBzdHJpbmdLZXlzLCBhbGwga2V5cyBtdXN0IGJlIHN0cmluZ3MnO1xuICAgICAgICBvbkVycm9yKHRhZyA/PyB0b2tlbiwgJ05PTl9TVFJJTkdfS0VZJywgbXNnKTtcbiAgICB9XG4gICAgaWYgKHNwYWNlQmVmb3JlKVxuICAgICAgICBub2RlLnNwYWNlQmVmb3JlID0gdHJ1ZTtcbiAgICBpZiAoY29tbWVudCkge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3NjYWxhcicgJiYgdG9rZW4uc291cmNlID09PSAnJylcbiAgICAgICAgICAgIG5vZGUuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIG5vZGUuY29tbWVudEJlZm9yZSA9IGNvbW1lbnQ7XG4gICAgfVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSBjaGVja2luZyBtaXNzZXMgbWVhbmluZyBvZiBpc1NyY1Rva2VuXG4gICAgaWYgKGN0eC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMgJiYgaXNTcmNUb2tlbilcbiAgICAgICAgbm9kZS5zcmNUb2tlbiA9IHRva2VuO1xuICAgIHJldHVybiBub2RlO1xufVxuZnVuY3Rpb24gY29tcG9zZUVtcHR5Tm9kZShjdHgsIG9mZnNldCwgYmVmb3JlLCBwb3MsIHsgc3BhY2VCZWZvcmUsIGNvbW1lbnQsIGFuY2hvciwgdGFnLCBlbmQgfSwgb25FcnJvcikge1xuICAgIGNvbnN0IHRva2VuID0ge1xuICAgICAgICB0eXBlOiAnc2NhbGFyJyxcbiAgICAgICAgb2Zmc2V0OiBlbXB0eVNjYWxhclBvc2l0aW9uKG9mZnNldCwgYmVmb3JlLCBwb3MpLFxuICAgICAgICBpbmRlbnQ6IC0xLFxuICAgICAgICBzb3VyY2U6ICcnXG4gICAgfTtcbiAgICBjb25zdCBub2RlID0gY29tcG9zZVNjYWxhcihjdHgsIHRva2VuLCB0YWcsIG9uRXJyb3IpO1xuICAgIGlmIChhbmNob3IpIHtcbiAgICAgICAgbm9kZS5hbmNob3IgPSBhbmNob3Iuc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgaWYgKG5vZGUuYW5jaG9yID09PSAnJylcbiAgICAgICAgICAgIG9uRXJyb3IoYW5jaG9yLCAnQkFEX0FMSUFTJywgJ0FuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nJyk7XG4gICAgfVxuICAgIGlmIChzcGFjZUJlZm9yZSlcbiAgICAgICAgbm9kZS5zcGFjZUJlZm9yZSA9IHRydWU7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgbm9kZS5jb21tZW50ID0gY29tbWVudDtcbiAgICAgICAgbm9kZS5yYW5nZVsyXSA9IGVuZDtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59XG5mdW5jdGlvbiBjb21wb3NlQWxpYXMoeyBvcHRpb25zIH0sIHsgb2Zmc2V0LCBzb3VyY2UsIGVuZCB9LCBvbkVycm9yKSB7XG4gICAgY29uc3QgYWxpYXMgPSBuZXcgQWxpYXMoc291cmNlLnN1YnN0cmluZygxKSk7XG4gICAgaWYgKGFsaWFzLnNvdXJjZSA9PT0gJycpXG4gICAgICAgIG9uRXJyb3Iob2Zmc2V0LCAnQkFEX0FMSUFTJywgJ0FsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICBpZiAoYWxpYXMuc291cmNlLmVuZHNXaXRoKCc6JykpXG4gICAgICAgIG9uRXJyb3Iob2Zmc2V0ICsgc291cmNlLmxlbmd0aCAtIDEsICdCQURfQUxJQVMnLCAnQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzJywgdHJ1ZSk7XG4gICAgY29uc3QgdmFsdWVFbmQgPSBvZmZzZXQgKyBzb3VyY2UubGVuZ3RoO1xuICAgIGNvbnN0IHJlID0gcmVzb2x2ZUVuZChlbmQsIHZhbHVlRW5kLCBvcHRpb25zLnN0cmljdCwgb25FcnJvcik7XG4gICAgYWxpYXMucmFuZ2UgPSBbb2Zmc2V0LCB2YWx1ZUVuZCwgcmUub2Zmc2V0XTtcbiAgICBpZiAocmUuY29tbWVudClcbiAgICAgICAgYWxpYXMuY29tbWVudCA9IHJlLmNvbW1lbnQ7XG4gICAgcmV0dXJuIGFsaWFzO1xufVxuXG5leHBvcnQgeyBjb21wb3NlRW1wdHlOb2RlLCBjb21wb3NlTm9kZSB9O1xuIiwgImltcG9ydCB7IERvY3VtZW50IH0gZnJvbSAnLi4vZG9jL0RvY3VtZW50LmpzJztcbmltcG9ydCB7IGNvbXBvc2VOb2RlLCBjb21wb3NlRW1wdHlOb2RlIH0gZnJvbSAnLi9jb21wb3NlLW5vZGUuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZCB9IGZyb20gJy4vcmVzb2x2ZS1lbmQuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcblxuZnVuY3Rpb24gY29tcG9zZURvYyhvcHRpb25zLCBkaXJlY3RpdmVzLCB7IG9mZnNldCwgc3RhcnQsIHZhbHVlLCBlbmQgfSwgb25FcnJvcikge1xuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHsgX2RpcmVjdGl2ZXM6IGRpcmVjdGl2ZXMgfSwgb3B0aW9ucyk7XG4gICAgY29uc3QgZG9jID0gbmV3IERvY3VtZW50KHVuZGVmaW5lZCwgb3B0cyk7XG4gICAgY29uc3QgY3R4ID0ge1xuICAgICAgICBhdEtleTogZmFsc2UsXG4gICAgICAgIGF0Um9vdDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aXZlczogZG9jLmRpcmVjdGl2ZXMsXG4gICAgICAgIG9wdGlvbnM6IGRvYy5vcHRpb25zLFxuICAgICAgICBzY2hlbWE6IGRvYy5zY2hlbWFcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0gcmVzb2x2ZVByb3BzKHN0YXJ0LCB7XG4gICAgICAgIGluZGljYXRvcjogJ2RvYy1zdGFydCcsXG4gICAgICAgIG5leHQ6IHZhbHVlID8/IGVuZD8uWzBdLFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIG9uRXJyb3IsXG4gICAgICAgIHBhcmVudEluZGVudDogMCxcbiAgICAgICAgc3RhcnRPbk5ld2xpbmU6IHRydWVcbiAgICB9KTtcbiAgICBpZiAocHJvcHMuZm91bmQpIHtcbiAgICAgICAgZG9jLmRpcmVjdGl2ZXMuZG9jU3RhcnQgPSB0cnVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgICh2YWx1ZS50eXBlID09PSAnYmxvY2stbWFwJyB8fCB2YWx1ZS50eXBlID09PSAnYmxvY2stc2VxJykgJiZcbiAgICAgICAgICAgICFwcm9wcy5oYXNOZXdsaW5lKVxuICAgICAgICAgICAgb25FcnJvcihwcm9wcy5lbmQsICdNSVNTSU5HX0NIQVInLCAnQmxvY2sgY29sbGVjdGlvbiBjYW5ub3Qgc3RhcnQgb24gc2FtZSBsaW5lIHdpdGggZGlyZWN0aXZlcy1lbmQgbWFya2VyJyk7XG4gICAgfVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgSWYgQ29udGVudHMgaXMgc2V0LCBsZXQncyB0cnVzdCB0aGUgdXNlclxuICAgIGRvYy5jb250ZW50cyA9IHZhbHVlXG4gICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgcHJvcHMsIG9uRXJyb3IpXG4gICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIHByb3BzLmVuZCwgc3RhcnQsIG51bGwsIHByb3BzLCBvbkVycm9yKTtcbiAgICBjb25zdCBjb250ZW50RW5kID0gZG9jLmNvbnRlbnRzLnJhbmdlWzJdO1xuICAgIGNvbnN0IHJlID0gcmVzb2x2ZUVuZChlbmQsIGNvbnRlbnRFbmQsIGZhbHNlLCBvbkVycm9yKTtcbiAgICBpZiAocmUuY29tbWVudClcbiAgICAgICAgZG9jLmNvbW1lbnQgPSByZS5jb21tZW50O1xuICAgIGRvYy5yYW5nZSA9IFtvZmZzZXQsIGNvbnRlbnRFbmQsIHJlLm9mZnNldF07XG4gICAgcmV0dXJuIGRvYztcbn1cblxuZXhwb3J0IHsgY29tcG9zZURvYyB9O1xuIiwgImltcG9ydCB7IERpcmVjdGl2ZXMgfSBmcm9tICcuLi9kb2MvZGlyZWN0aXZlcy5qcyc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4uL2RvYy9Eb2N1bWVudC5qcyc7XG5pbXBvcnQgeyBZQU1MV2FybmluZywgWUFNTFBhcnNlRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMuanMnO1xuaW1wb3J0IHsgaXNDb2xsZWN0aW9uLCBpc1BhaXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBjb21wb3NlRG9jIH0gZnJvbSAnLi9jb21wb3NlLWRvYy5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5cbmZ1bmN0aW9uIGdldEVycm9yUG9zKHNyYykge1xuICAgIGlmICh0eXBlb2Ygc3JjID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFtzcmMsIHNyYyArIDFdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpXG4gICAgICAgIHJldHVybiBzcmMubGVuZ3RoID09PSAyID8gc3JjIDogW3NyY1swXSwgc3JjWzFdXTtcbiAgICBjb25zdCB7IG9mZnNldCwgc291cmNlIH0gPSBzcmM7XG4gICAgcmV0dXJuIFtvZmZzZXQsIG9mZnNldCArICh0eXBlb2Ygc291cmNlID09PSAnc3RyaW5nJyA/IHNvdXJjZS5sZW5ndGggOiAxKV07XG59XG5mdW5jdGlvbiBwYXJzZVByZWx1ZGUocHJlbHVkZSkge1xuICAgIGxldCBjb21tZW50ID0gJyc7XG4gICAgbGV0IGF0Q29tbWVudCA9IGZhbHNlO1xuICAgIGxldCBhZnRlckVtcHR5TGluZSA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlbHVkZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBwcmVsdWRlW2ldO1xuICAgICAgICBzd2l0Y2ggKHNvdXJjZVswXSkge1xuICAgICAgICAgICAgY2FzZSAnIyc6XG4gICAgICAgICAgICAgICAgY29tbWVudCArPVxuICAgICAgICAgICAgICAgICAgICAoY29tbWVudCA9PT0gJycgPyAnJyA6IGFmdGVyRW1wdHlMaW5lID8gJ1xcblxcbicgOiAnXFxuJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZS5zdWJzdHJpbmcoMSkgfHwgJyAnKTtcbiAgICAgICAgICAgICAgICBhdENvbW1lbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGFmdGVyRW1wdHlMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICclJzpcbiAgICAgICAgICAgICAgICBpZiAocHJlbHVkZVtpICsgMV0/LlswXSAhPT0gJyMnKVxuICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICAgICAgYXRDb21tZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbWF5IGJlIHdyb25nIGFmdGVyIGRvYy1lbmQsIGJ1dCBpbiB0aGF0IGNhc2UgaXQgZG9lc24ndCBtYXR0ZXJcbiAgICAgICAgICAgICAgICBpZiAoIWF0Q29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgYWZ0ZXJFbXB0eUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGF0Q29tbWVudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGNvbW1lbnQsIGFmdGVyRW1wdHlMaW5lIH07XG59XG4vKipcbiAqIENvbXBvc2UgYSBzdHJlYW0gb2YgQ1NUIG5vZGVzIGludG8gYSBzdHJlYW0gb2YgWUFNTCBEb2N1bWVudHMuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvc2VyLCBQYXJzZXIgfSBmcm9tICd5YW1sJ1xuICpcbiAqIGNvbnN0IHNyYzogc3RyaW5nID0gLi4uXG4gKiBjb25zdCB0b2tlbnMgPSBuZXcgUGFyc2VyKCkucGFyc2Uoc3JjKVxuICogY29uc3QgZG9jcyA9IG5ldyBDb21wb3NlcigpLmNvbXBvc2UodG9rZW5zKVxuICogYGBgXG4gKi9cbmNsYXNzIENvbXBvc2VyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5kb2MgPSBudWxsO1xuICAgICAgICB0aGlzLmF0RGlyZWN0aXZlcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZWx1ZGUgPSBbXTtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgICAgICB0aGlzLm9uRXJyb3IgPSAoc291cmNlLCBjb2RlLCBtZXNzYWdlLCB3YXJuaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSBnZXRFcnJvclBvcyhzb3VyY2UpO1xuICAgICAgICAgICAgaWYgKHdhcm5pbmcpXG4gICAgICAgICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKG5ldyBZQU1MV2FybmluZyhwb3MsIGNvZGUsIG1lc3NhZ2UpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKG5ldyBZQU1MUGFyc2VFcnJvcihwb3MsIGNvZGUsIG1lc3NhZ2UpKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uIHx8ICcxLjInIH0pO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICBkZWNvcmF0ZShkb2MsIGFmdGVyRG9jKSB7XG4gICAgICAgIGNvbnN0IHsgY29tbWVudCwgYWZ0ZXJFbXB0eUxpbmUgfSA9IHBhcnNlUHJlbHVkZSh0aGlzLnByZWx1ZGUpO1xuICAgICAgICAvL2NvbnNvbGUubG9nKHsgZGM6IGRvYy5jb21tZW50LCBwcmVsdWRlLCBjb21tZW50IH0pXG4gICAgICAgIGlmIChjb21tZW50KSB7XG4gICAgICAgICAgICBjb25zdCBkYyA9IGRvYy5jb250ZW50cztcbiAgICAgICAgICAgIGlmIChhZnRlckRvYykge1xuICAgICAgICAgICAgICAgIGRvYy5jb21tZW50ID0gZG9jLmNvbW1lbnQgPyBgJHtkb2MuY29tbWVudH1cXG4ke2NvbW1lbnR9YCA6IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhZnRlckVtcHR5TGluZSB8fCBkb2MuZGlyZWN0aXZlcy5kb2NTdGFydCB8fCAhZGMpIHtcbiAgICAgICAgICAgICAgICBkb2MuY29tbWVudEJlZm9yZSA9IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc0NvbGxlY3Rpb24oZGMpICYmICFkYy5mbG93ICYmIGRjLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgaXQgPSBkYy5pdGVtc1swXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNQYWlyKGl0KSlcbiAgICAgICAgICAgICAgICAgICAgaXQgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2IgPSBpdC5jb21tZW50QmVmb3JlO1xuICAgICAgICAgICAgICAgIGl0LmNvbW1lbnRCZWZvcmUgPSBjYiA/IGAke2NvbW1lbnR9XFxuJHtjYn1gIDogY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNiID0gZGMuY29tbWVudEJlZm9yZTtcbiAgICAgICAgICAgICAgICBkYy5jb21tZW50QmVmb3JlID0gY2IgPyBgJHtjb21tZW50fVxcbiR7Y2J9YCA6IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFmdGVyRG9jKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShkb2MuZXJyb3JzLCB0aGlzLmVycm9ycyk7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShkb2Mud2FybmluZ3MsIHRoaXMud2FybmluZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZG9jLmVycm9ycyA9IHRoaXMuZXJyb3JzO1xuICAgICAgICAgICAgZG9jLndhcm5pbmdzID0gdGhpcy53YXJuaW5ncztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZWx1ZGUgPSBbXTtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHN0cmVhbSBzdGF0dXMgaW5mb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBNb3N0bHkgdXNlZnVsIGF0IHRoZSBlbmQgb2YgaW5wdXQgZm9yIGFuIGVtcHR5IHN0cmVhbS5cbiAgICAgKi9cbiAgICBzdHJlYW1JbmZvKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29tbWVudDogcGFyc2VQcmVsdWRlKHRoaXMucHJlbHVkZSkuY29tbWVudCxcbiAgICAgICAgICAgIGRpcmVjdGl2ZXM6IHRoaXMuZGlyZWN0aXZlcyxcbiAgICAgICAgICAgIGVycm9yczogdGhpcy5lcnJvcnMsXG4gICAgICAgICAgICB3YXJuaW5nczogdGhpcy53YXJuaW5nc1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb21wb3NlIHRva2VucyBpbnRvIGRvY3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JjZURvYyAtIElmIHRoZSBzdHJlYW0gY29udGFpbnMgbm8gZG9jdW1lbnQsIHN0aWxsIGVtaXQgYSBmaW5hbCBkb2N1bWVudCBpbmNsdWRpbmcgYW55IGNvbW1lbnRzIGFuZCBkaXJlY3RpdmVzIHRoYXQgd291bGQgYmUgYXBwbGllZCB0byBhIHN1YnNlcXVlbnQgZG9jdW1lbnQuXG4gICAgICogQHBhcmFtIGVuZE9mZnNldCAtIFNob3VsZCBiZSBzZXQgaWYgYGZvcmNlRG9jYCBpcyBhbHNvIHNldCwgdG8gc2V0IHRoZSBkb2N1bWVudCByYW5nZSBlbmQgYW5kIHRvIGluZGljYXRlIGVycm9ycyBjb3JyZWN0bHkuXG4gICAgICovXG4gICAgKmNvbXBvc2UodG9rZW5zLCBmb3JjZURvYyA9IGZhbHNlLCBlbmRPZmZzZXQgPSAtMSkge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2VucylcbiAgICAgICAgICAgIHlpZWxkKiB0aGlzLm5leHQodG9rZW4pO1xuICAgICAgICB5aWVsZCogdGhpcy5lbmQoZm9yY2VEb2MsIGVuZE9mZnNldCk7XG4gICAgfVxuICAgIC8qKiBBZHZhbmNlIHRoZSBjb21wb3NlciBieSBvbmUgQ1NUIHRva2VuLiAqL1xuICAgICpuZXh0KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGlyZWN0aXZlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZXMuYWRkKHRva2VuLnNvdXJjZSwgKG9mZnNldCwgbWVzc2FnZSwgd2FybmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBnZXRFcnJvclBvcyh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHBvc1swXSArPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcihwb3MsICdCQURfRElSRUNUSVZFJywgbWVzc2FnZSwgd2FybmluZyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVsdWRlLnB1c2godG9rZW4uc291cmNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmF0RGlyZWN0aXZlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkb2N1bWVudCc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkb2MgPSBjb21wb3NlRG9jKHRoaXMub3B0aW9ucywgdGhpcy5kaXJlY3RpdmVzLCB0b2tlbiwgdGhpcy5vbkVycm9yKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdERpcmVjdGl2ZXMgJiYgIWRvYy5kaXJlY3RpdmVzLmRvY1N0YXJ0KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IodG9rZW4sICdNSVNTSU5HX0NIQVInLCAnTWlzc2luZyBkaXJlY3RpdmVzLWVuZC9kb2Mtc3RhcnQgaW5kaWNhdG9yIGxpbmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlY29yYXRlKGRvYywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRvYylcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5kb2M7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2MgPSBkb2M7XG4gICAgICAgICAgICAgICAgdGhpcy5hdERpcmVjdGl2ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2J5dGUtb3JkZXItbWFyayc6XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIHRoaXMucHJlbHVkZS5wdXNoKHRva2VuLnNvdXJjZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSB0b2tlbi5zb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgPyBgJHt0b2tlbi5tZXNzYWdlfTogJHtKU09OLnN0cmluZ2lmeSh0b2tlbi5zb3VyY2UpfWBcbiAgICAgICAgICAgICAgICAgICAgOiB0b2tlbi5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFlBTUxQYXJzZUVycm9yKGdldEVycm9yUG9zKHRva2VuKSwgJ1VORVhQRUNURURfVE9LRU4nLCBtc2cpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF0RGlyZWN0aXZlcyB8fCAhdGhpcy5kb2MpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2MuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZG9jLWVuZCc6IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZG9jKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9ICdVbmV4cGVjdGVkIGRvYy1lbmQgd2l0aG91dCBwcmVjZWRpbmcgZG9jdW1lbnQnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKG5ldyBZQU1MUGFyc2VFcnJvcihnZXRFcnJvclBvcyh0b2tlbiksICdVTkVYUEVDVEVEX1RPS0VOJywgbXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gcmVzb2x2ZUVuZCh0b2tlbi5lbmQsIHRva2VuLm9mZnNldCArIHRva2VuLnNvdXJjZS5sZW5ndGgsIHRoaXMuZG9jLm9wdGlvbnMuc3RyaWN0LCB0aGlzLm9uRXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVjb3JhdGUodGhpcy5kb2MsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChlbmQuY29tbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYyA9IHRoaXMuZG9jLmNvbW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLmNvbW1lbnQgPSBkYyA/IGAke2RjfVxcbiR7ZW5kLmNvbW1lbnR9YCA6IGVuZC5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvYy5yYW5nZVsyXSA9IGVuZC5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2gobmV3IFlBTUxQYXJzZUVycm9yKGdldEVycm9yUG9zKHRva2VuKSwgJ1VORVhQRUNURURfVE9LRU4nLCBgVW5zdXBwb3J0ZWQgdG9rZW4gJHt0b2tlbi50eXBlfWApKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsIGF0IGVuZCBvZiBpbnB1dCB0byB5aWVsZCBhbnkgcmVtYWluaW5nIGRvY3VtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcmNlRG9jIC0gSWYgdGhlIHN0cmVhbSBjb250YWlucyBubyBkb2N1bWVudCwgc3RpbGwgZW1pdCBhIGZpbmFsIGRvY3VtZW50IGluY2x1ZGluZyBhbnkgY29tbWVudHMgYW5kIGRpcmVjdGl2ZXMgdGhhdCB3b3VsZCBiZSBhcHBsaWVkIHRvIGEgc3Vic2VxdWVudCBkb2N1bWVudC5cbiAgICAgKiBAcGFyYW0gZW5kT2Zmc2V0IC0gU2hvdWxkIGJlIHNldCBpZiBgZm9yY2VEb2NgIGlzIGFsc28gc2V0LCB0byBzZXQgdGhlIGRvY3VtZW50IHJhbmdlIGVuZCBhbmQgdG8gaW5kaWNhdGUgZXJyb3JzIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICAqZW5kKGZvcmNlRG9jID0gZmFsc2UsIGVuZE9mZnNldCA9IC0xKSB7XG4gICAgICAgIGlmICh0aGlzLmRvYykge1xuICAgICAgICAgICAgdGhpcy5kZWNvcmF0ZSh0aGlzLmRvYywgdHJ1ZSk7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmRvYztcbiAgICAgICAgICAgIHRoaXMuZG9jID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmb3JjZURvYykge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oeyBfZGlyZWN0aXZlczogdGhpcy5kaXJlY3RpdmVzIH0sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBuZXcgRG9jdW1lbnQodW5kZWZpbmVkLCBvcHRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmF0RGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZW5kT2Zmc2V0LCAnTUlTU0lOR19DSEFSJywgJ01pc3NpbmcgZGlyZWN0aXZlcy1lbmQgaW5kaWNhdG9yIGxpbmUnKTtcbiAgICAgICAgICAgIGRvYy5yYW5nZSA9IFswLCBlbmRPZmZzZXQsIGVuZE9mZnNldF07XG4gICAgICAgICAgICB0aGlzLmRlY29yYXRlKGRvYywgZmFsc2UpO1xuICAgICAgICAgICAgeWllbGQgZG9jO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBDb21wb3NlciB9O1xuIiwgImNvbnN0IEJSRUFLID0gU3ltYm9sKCdicmVhayB2aXNpdCcpO1xuY29uc3QgU0tJUCA9IFN5bWJvbCgnc2tpcCBjaGlsZHJlbicpO1xuY29uc3QgUkVNT1ZFID0gU3ltYm9sKCdyZW1vdmUgaXRlbScpO1xuLyoqXG4gKiBBcHBseSBhIHZpc2l0b3IgdG8gYSBDU1QgZG9jdW1lbnQgb3IgaXRlbS5cbiAqXG4gKiBXYWxrcyB0aHJvdWdoIHRoZSB0cmVlIChkZXB0aC1maXJzdCkgc3RhcnRpbmcgZnJvbSB0aGUgcm9vdCwgY2FsbGluZyBhXG4gKiBgdmlzaXRvcmAgZnVuY3Rpb24gd2l0aCB0d28gYXJndW1lbnRzIHdoZW4gZW50ZXJpbmcgZWFjaCBpdGVtOlxuICogICAtIGBpdGVtYDogVGhlIGN1cnJlbnQgaXRlbSwgd2hpY2ggaW5jbHVkZWQgdGhlIGZvbGxvd2luZyBtZW1iZXJzOlxuICogICAgIC0gYHN0YXJ0OiBTb3VyY2VUb2tlbltdYCBcdTIwMTMgU291cmNlIHRva2VucyBiZWZvcmUgdGhlIGtleSBvciB2YWx1ZSxcbiAqICAgICAgIHBvc3NpYmx5IGluY2x1ZGluZyBpdHMgYW5jaG9yIG9yIHRhZy5cbiAqICAgICAtIGBrZXk/OiBUb2tlbiB8IG51bGxgIFx1MjAxMyBTZXQgZm9yIHBhaXIgdmFsdWVzLiBNYXkgdGhlbiBiZSBgbnVsbGAsIGlmXG4gKiAgICAgICB0aGUga2V5IGJlZm9yZSB0aGUgYDpgIHNlcGFyYXRvciBpcyBlbXB0eS5cbiAqICAgICAtIGBzZXA/OiBTb3VyY2VUb2tlbltdYCBcdTIwMTMgU291cmNlIHRva2VucyBiZXR3ZWVuIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZSxcbiAqICAgICAgIHdoaWNoIHNob3VsZCBpbmNsdWRlIHRoZSBgOmAgbWFwIHZhbHVlIGluZGljYXRvciBpZiBgdmFsdWVgIGlzIHNldC5cbiAqICAgICAtIGB2YWx1ZT86IFRva2VuYCBcdTIwMTMgVGhlIHZhbHVlIG9mIGEgc2VxdWVuY2UgaXRlbSwgb3Igb2YgYSBtYXAgcGFpci5cbiAqICAgLSBgcGF0aGA6IFRoZSBzdGVwcyBmcm9tIHRoZSByb290IHRvIHRoZSBjdXJyZW50IG5vZGUsIGFzIGFuIGFycmF5IG9mXG4gKiAgICAgYFsna2V5JyB8ICd2YWx1ZScsIG51bWJlcl1gIHR1cGxlcy5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB2aXNpdG9yIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHRyYXZlcnNhbDpcbiAqICAgLSBgdW5kZWZpbmVkYCAoZGVmYXVsdCk6IERvIG5vdGhpbmcgYW5kIGNvbnRpbnVlXG4gKiAgIC0gYHZpc2l0LlNLSVBgOiBEbyBub3QgdmlzaXQgdGhlIGNoaWxkcmVuIG9mIHRoaXMgdG9rZW4sIGNvbnRpbnVlIHdpdGhcbiAqICAgICAgbmV4dCBzaWJsaW5nXG4gKiAgIC0gYHZpc2l0LkJSRUFLYDogVGVybWluYXRlIHRyYXZlcnNhbCBjb21wbGV0ZWx5XG4gKiAgIC0gYHZpc2l0LlJFTU9WRWA6IFJlbW92ZSB0aGUgY3VycmVudCBpdGVtLCB0aGVuIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lXG4gKiAgIC0gYG51bWJlcmA6IFNldCB0aGUgaW5kZXggb2YgdGhlIG5leHQgc3RlcC4gVGhpcyBpcyB1c2VmdWwgZXNwZWNpYWxseSBpZlxuICogICAgIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudCB0b2tlbiBoYXMgY2hhbmdlZC5cbiAqICAgLSBgZnVuY3Rpb25gOiBEZWZpbmUgdGhlIG5leHQgdmlzaXRvciBmb3IgdGhpcyBpdGVtLiBBZnRlciB0aGUgb3JpZ2luYWxcbiAqICAgICB2aXNpdG9yIGlzIGNhbGxlZCBvbiBpdGVtIGVudHJ5LCBuZXh0IHZpc2l0b3JzIGFyZSBjYWxsZWQgYWZ0ZXIgaGFuZGxpbmdcbiAqICAgICBhIG5vbi1lbXB0eSBga2V5YCBhbmQgd2hlbiBleGl0aW5nIHRoZSBpdGVtLlxuICovXG5mdW5jdGlvbiB2aXNpdChjc3QsIHZpc2l0b3IpIHtcbiAgICBpZiAoJ3R5cGUnIGluIGNzdCAmJiBjc3QudHlwZSA9PT0gJ2RvY3VtZW50JylcbiAgICAgICAgY3N0ID0geyBzdGFydDogY3N0LnN0YXJ0LCB2YWx1ZTogY3N0LnZhbHVlIH07XG4gICAgX3Zpc2l0KE9iamVjdC5mcmVlemUoW10pLCBjc3QsIHZpc2l0b3IpO1xufVxuLy8gV2l0aG91dCB0aGUgYGFzIHN5bWJvbGAgY2FzdHMsIFRTIGRlY2xhcmVzIHRoZXNlIGluIHRoZSBgdmlzaXRgXG4vLyBuYW1lc3BhY2UgdXNpbmcgYHZhcmAsIGJ1dCB0aGVuIGNvbXBsYWlucyBhYm91dCB0aGF0IGJlY2F1c2Vcbi8vIGB1bmlxdWUgc3ltYm9sYCBtdXN0IGJlIGBjb25zdGAuXG4vKiogVGVybWluYXRlIHZpc2l0IHRyYXZlcnNhbCBjb21wbGV0ZWx5ICovXG52aXNpdC5CUkVBSyA9IEJSRUFLO1xuLyoqIERvIG5vdCB2aXNpdCB0aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgaXRlbSAqL1xudmlzaXQuU0tJUCA9IFNLSVA7XG4vKiogUmVtb3ZlIHRoZSBjdXJyZW50IGl0ZW0gKi9cbnZpc2l0LlJFTU9WRSA9IFJFTU9WRTtcbi8qKiBGaW5kIHRoZSBpdGVtIGF0IGBwYXRoYCBmcm9tIGBjc3RgIGFzIHRoZSByb290ICovXG52aXNpdC5pdGVtQXRQYXRoID0gKGNzdCwgcGF0aCkgPT4ge1xuICAgIGxldCBpdGVtID0gY3N0O1xuICAgIGZvciAoY29uc3QgW2ZpZWxkLCBpbmRleF0gb2YgcGF0aCkge1xuICAgICAgICBjb25zdCB0b2sgPSBpdGVtPy5bZmllbGRdO1xuICAgICAgICBpZiAodG9rICYmICdpdGVtcycgaW4gdG9rKSB7XG4gICAgICAgICAgICBpdGVtID0gdG9rLml0ZW1zW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn07XG4vKipcbiAqIEdldCB0aGUgaW1tZWRpYXRlIHBhcmVudCBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIGF0IGBwYXRoYCBmcm9tIGBjc3RgIGFzIHRoZSByb290LlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgY29sbGVjdGlvbiBpcyBub3QgZm91bmQsIHdoaWNoIHNob3VsZCBuZXZlciBoYXBwZW4gaWYgdGhlIGl0ZW0gaXRzZWxmIGV4aXN0cy5cbiAqL1xudmlzaXQucGFyZW50Q29sbGVjdGlvbiA9IChjc3QsIHBhdGgpID0+IHtcbiAgICBjb25zdCBwYXJlbnQgPSB2aXNpdC5pdGVtQXRQYXRoKGNzdCwgcGF0aC5zbGljZSgwLCAtMSkpO1xuICAgIGNvbnN0IGZpZWxkID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdWzBdO1xuICAgIGNvbnN0IGNvbGwgPSBwYXJlbnQ/LltmaWVsZF07XG4gICAgaWYgKGNvbGwgJiYgJ2l0ZW1zJyBpbiBjb2xsKVxuICAgICAgICByZXR1cm4gY29sbDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBjb2xsZWN0aW9uIG5vdCBmb3VuZCcpO1xufTtcbmZ1bmN0aW9uIF92aXNpdChwYXRoLCBpdGVtLCB2aXNpdG9yKSB7XG4gICAgbGV0IGN0cmwgPSB2aXNpdG9yKGl0ZW0sIHBhdGgpO1xuICAgIGlmICh0eXBlb2YgY3RybCA9PT0gJ3N5bWJvbCcpXG4gICAgICAgIHJldHVybiBjdHJsO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgWydrZXknLCAndmFsdWUnXSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGl0ZW1bZmllbGRdO1xuICAgICAgICBpZiAodG9rZW4gJiYgJ2l0ZW1zJyBpbiB0b2tlbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5pdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNpID0gX3Zpc2l0KE9iamVjdC5mcmVlemUocGF0aC5jb25jYXQoW1tmaWVsZCwgaV1dKSksIHRva2VuLml0ZW1zW2ldLCB2aXNpdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNpID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgaSA9IGNpIC0gMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCUkVBSztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gUkVNT1ZFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3RybCA9PT0gJ2Z1bmN0aW9uJyAmJiBmaWVsZCA9PT0gJ2tleScpXG4gICAgICAgICAgICAgICAgY3RybCA9IGN0cmwoaXRlbSwgcGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBjdHJsID09PSAnZnVuY3Rpb24nID8gY3RybChpdGVtLCBwYXRoKSA6IGN0cmw7XG59XG5cbmV4cG9ydCB7IHZpc2l0IH07XG4iLCAiZXhwb3J0IHsgY3JlYXRlU2NhbGFyVG9rZW4sIHJlc29sdmVBc1NjYWxhciwgc2V0U2NhbGFyVmFsdWUgfSBmcm9tICcuL2NzdC1zY2FsYXIuanMnO1xuZXhwb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSAnLi9jc3Qtc3RyaW5naWZ5LmpzJztcbmV4cG9ydCB7IHZpc2l0IH0gZnJvbSAnLi9jc3QtdmlzaXQuanMnO1xuXG4vKiogVGhlIGJ5dGUgb3JkZXIgbWFyayAqL1xuY29uc3QgQk9NID0gJ1xcdXtGRUZGfSc7XG4vKiogU3RhcnQgb2YgZG9jLW1vZGUgKi9cbmNvbnN0IERPQ1VNRU5UID0gJ1xceDAyJzsgLy8gQzA6IFN0YXJ0IG9mIFRleHRcbi8qKiBVbmV4cGVjdGVkIGVuZCBvZiBmbG93LW1vZGUgKi9cbmNvbnN0IEZMT1dfRU5EID0gJ1xceDE4JzsgLy8gQzA6IENhbmNlbFxuLyoqIE5leHQgdG9rZW4gaXMgYSBzY2FsYXIgdmFsdWUgKi9cbmNvbnN0IFNDQUxBUiA9ICdcXHgxZic7IC8vIEMwOiBVbml0IFNlcGFyYXRvclxuLyoqIEByZXR1cm5zIGB0cnVlYCBpZiBgdG9rZW5gIGlzIGEgZmxvdyBvciBibG9jayBjb2xsZWN0aW9uICovXG5jb25zdCBpc0NvbGxlY3Rpb24gPSAodG9rZW4pID0+ICEhdG9rZW4gJiYgJ2l0ZW1zJyBpbiB0b2tlbjtcbi8qKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYHRva2VuYCBpcyBhIGZsb3cgb3IgYmxvY2sgc2NhbGFyOyBub3QgYW4gYWxpYXMgKi9cbmNvbnN0IGlzU2NhbGFyID0gKHRva2VuKSA9PiAhIXRva2VuICYmXG4gICAgKHRva2VuLnR5cGUgPT09ICdzY2FsYXInIHx8XG4gICAgICAgIHRva2VuLnR5cGUgPT09ICdzaW5nbGUtcXVvdGVkLXNjYWxhcicgfHxcbiAgICAgICAgdG9rZW4udHlwZSA9PT0gJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJyB8fFxuICAgICAgICB0b2tlbi50eXBlID09PSAnYmxvY2stc2NhbGFyJyk7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuLyoqIEdldCBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIGxleGVyIHRva2VuICovXG5mdW5jdGlvbiBwcmV0dHlUb2tlbih0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgICAgY2FzZSBCT006XG4gICAgICAgICAgICByZXR1cm4gJzxCT00+JztcbiAgICAgICAgY2FzZSBET0NVTUVOVDpcbiAgICAgICAgICAgIHJldHVybiAnPERPQz4nO1xuICAgICAgICBjYXNlIEZMT1dfRU5EOlxuICAgICAgICAgICAgcmV0dXJuICc8RkxPV19FTkQ+JztcbiAgICAgICAgY2FzZSBTQ0FMQVI6XG4gICAgICAgICAgICByZXR1cm4gJzxTQ0FMQVI+JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0b2tlbik7XG4gICAgfVxufVxuLyoqIElkZW50aWZ5IHRoZSB0eXBlIG9mIGEgbGV4ZXIgdG9rZW4uIE1heSByZXR1cm4gYG51bGxgIGZvciB1bmtub3duIHRva2Vucy4gKi9cbmZ1bmN0aW9uIHRva2VuVHlwZShzb3VyY2UpIHtcbiAgICBzd2l0Y2ggKHNvdXJjZSkge1xuICAgICAgICBjYXNlIEJPTTpcbiAgICAgICAgICAgIHJldHVybiAnYnl0ZS1vcmRlci1tYXJrJztcbiAgICAgICAgY2FzZSBET0NVTUVOVDpcbiAgICAgICAgICAgIHJldHVybiAnZG9jLW1vZGUnO1xuICAgICAgICBjYXNlIEZMT1dfRU5EOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LWVycm9yLWVuZCc7XG4gICAgICAgIGNhc2UgU0NBTEFSOlxuICAgICAgICAgICAgcmV0dXJuICdzY2FsYXInO1xuICAgICAgICBjYXNlICctLS0nOlxuICAgICAgICAgICAgcmV0dXJuICdkb2Mtc3RhcnQnO1xuICAgICAgICBjYXNlICcuLi4nOlxuICAgICAgICAgICAgcmV0dXJuICdkb2MtZW5kJztcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgY2FzZSAnXFxyXFxuJzpcbiAgICAgICAgICAgIHJldHVybiAnbmV3bGluZSc7XG4gICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgcmV0dXJuICdzZXEtaXRlbS1pbmQnO1xuICAgICAgICBjYXNlICc/JzpcbiAgICAgICAgICAgIHJldHVybiAnZXhwbGljaXQta2V5LWluZCc7XG4gICAgICAgIGNhc2UgJzonOlxuICAgICAgICAgICAgcmV0dXJuICdtYXAtdmFsdWUtaW5kJztcbiAgICAgICAgY2FzZSAneyc6XG4gICAgICAgICAgICByZXR1cm4gJ2Zsb3ctbWFwLXN0YXJ0JztcbiAgICAgICAgY2FzZSAnfSc6XG4gICAgICAgICAgICByZXR1cm4gJ2Zsb3ctbWFwLWVuZCc7XG4gICAgICAgIGNhc2UgJ1snOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LXNlcS1zdGFydCc7XG4gICAgICAgIGNhc2UgJ10nOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LXNlcS1lbmQnO1xuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgICAgIHJldHVybiAnY29tbWEnO1xuICAgIH1cbiAgICBzd2l0Y2ggKHNvdXJjZVswXSkge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgY2FzZSAnXFx0JzpcbiAgICAgICAgICAgIHJldHVybiAnc3BhY2UnO1xuICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAgIHJldHVybiAnY29tbWVudCc7XG4gICAgICAgIGNhc2UgJyUnOlxuICAgICAgICAgICAgcmV0dXJuICdkaXJlY3RpdmUtbGluZSc7XG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICAgICAgcmV0dXJuICdhbGlhcyc7XG4gICAgICAgIGNhc2UgJyYnOlxuICAgICAgICAgICAgcmV0dXJuICdhbmNob3InO1xuICAgICAgICBjYXNlICchJzpcbiAgICAgICAgICAgIHJldHVybiAndGFnJztcbiAgICAgICAgY2FzZSBcIidcIjpcbiAgICAgICAgICAgIHJldHVybiAnc2luZ2xlLXF1b3RlZC1zY2FsYXInO1xuICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICByZXR1cm4gJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJztcbiAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgcmV0dXJuICdibG9jay1zY2FsYXItaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCB7IEJPTSwgRE9DVU1FTlQsIEZMT1dfRU5ELCBTQ0FMQVIsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIsIHByZXR0eVRva2VuLCB0b2tlblR5cGUgfTtcbiIsICJpbXBvcnQgeyBCT00sIERPQ1VNRU5ULCBGTE9XX0VORCwgU0NBTEFSIH0gZnJvbSAnLi9jc3QuanMnO1xuXG4vKlxuU1RBUlQgLT4gc3RyZWFtXG5cbnN0cmVhbVxuICBkaXJlY3RpdmUgLT4gbGluZS1lbmQgLT4gc3RyZWFtXG4gIGluZGVudCArIGxpbmUtZW5kIC0+IHN0cmVhbVxuICBbZWxzZV0gLT4gbGluZS1zdGFydFxuXG5saW5lLWVuZFxuICBjb21tZW50IC0+IGxpbmUtZW5kXG4gIG5ld2xpbmUgLT4gLlxuICBpbnB1dC1lbmQgLT4gRU5EXG5cbmxpbmUtc3RhcnRcbiAgZG9jLXN0YXJ0IC0+IGRvY1xuICBkb2MtZW5kIC0+IHN0cmVhbVxuICBbZWxzZV0gLT4gaW5kZW50IC0+IGJsb2NrLXN0YXJ0XG5cbmJsb2NrLXN0YXJ0XG4gIHNlcS1pdGVtLXN0YXJ0IC0+IGJsb2NrLXN0YXJ0XG4gIGV4cGxpY2l0LWtleS1zdGFydCAtPiBibG9jay1zdGFydFxuICBtYXAtdmFsdWUtc3RhcnQgLT4gYmxvY2stc3RhcnRcbiAgW2Vsc2VdIC0+IGRvY1xuXG5kb2NcbiAgbGluZS1lbmQgLT4gbGluZS1zdGFydFxuICBzcGFjZXMgLT4gZG9jXG4gIGFuY2hvciAtPiBkb2NcbiAgdGFnIC0+IGRvY1xuICBmbG93LXN0YXJ0IC0+IGZsb3cgLT4gZG9jXG4gIGZsb3ctZW5kIC0+IGVycm9yIC0+IGRvY1xuICBzZXEtaXRlbS1zdGFydCAtPiBlcnJvciAtPiBkb2NcbiAgZXhwbGljaXQta2V5LXN0YXJ0IC0+IGVycm9yIC0+IGRvY1xuICBtYXAtdmFsdWUtc3RhcnQgLT4gZG9jXG4gIGFsaWFzIC0+IGRvY1xuICBxdW90ZS1zdGFydCAtPiBxdW90ZWQtc2NhbGFyIC0+IGRvY1xuICBibG9jay1zY2FsYXItaGVhZGVyIC0+IGxpbmUtZW5kIC0+IGJsb2NrLXNjYWxhcihtaW4pIC0+IGxpbmUtc3RhcnRcbiAgW2Vsc2VdIC0+IHBsYWluLXNjYWxhcihmYWxzZSwgbWluKSAtPiBkb2NcblxuZmxvd1xuICBsaW5lLWVuZCAtPiBmbG93XG4gIHNwYWNlcyAtPiBmbG93XG4gIGFuY2hvciAtPiBmbG93XG4gIHRhZyAtPiBmbG93XG4gIGZsb3ctc3RhcnQgLT4gZmxvdyAtPiBmbG93XG4gIGZsb3ctZW5kIC0+IC5cbiAgc2VxLWl0ZW0tc3RhcnQgLT4gZXJyb3IgLT4gZmxvd1xuICBleHBsaWNpdC1rZXktc3RhcnQgLT4gZmxvd1xuICBtYXAtdmFsdWUtc3RhcnQgLT4gZmxvd1xuICBhbGlhcyAtPiBmbG93XG4gIHF1b3RlLXN0YXJ0IC0+IHF1b3RlZC1zY2FsYXIgLT4gZmxvd1xuICBjb21tYSAtPiBmbG93XG4gIFtlbHNlXSAtPiBwbGFpbi1zY2FsYXIodHJ1ZSwgMCkgLT4gZmxvd1xuXG5xdW90ZWQtc2NhbGFyXG4gIHF1b3RlLWVuZCAtPiAuXG4gIFtlbHNlXSAtPiBxdW90ZWQtc2NhbGFyXG5cbmJsb2NrLXNjYWxhcihtaW4pXG4gIG5ld2xpbmUgKyBwZWVrKGluZGVudCA8IG1pbikgLT4gLlxuICBbZWxzZV0gLT4gYmxvY2stc2NhbGFyKG1pbilcblxucGxhaW4tc2NhbGFyKGlzLWZsb3csIG1pbilcbiAgc2NhbGFyLWVuZChpcy1mbG93KSAtPiAuXG4gIHBlZWsobmV3bGluZSArIChpbmRlbnQgPCBtaW4pKSAtPiAuXG4gIFtlbHNlXSAtPiBwbGFpbi1zY2FsYXIobWluKVxuKi9cbmZ1bmN0aW9uIGlzRW1wdHkoY2gpIHtcbiAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgY2FzZSAnXFxyJzpcbiAgICAgICAgY2FzZSAnXFx0JzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGhleERpZ2l0cyA9IG5ldyBTZXQoJzAxMjM0NTY3ODlBQkNERUZhYmNkZWYnKTtcbmNvbnN0IHRhZ0NoYXJzID0gbmV3IFNldChcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKVwiKTtcbmNvbnN0IGZsb3dJbmRpY2F0b3JDaGFycyA9IG5ldyBTZXQoJyxbXXt9Jyk7XG5jb25zdCBpbnZhbGlkQW5jaG9yQ2hhcnMgPSBuZXcgU2V0KCcgLFtde31cXG5cXHJcXHQnKTtcbmNvbnN0IGlzTm90QW5jaG9yQ2hhciA9IChjaCkgPT4gIWNoIHx8IGludmFsaWRBbmNob3JDaGFycy5oYXMoY2gpO1xuLyoqXG4gKiBTcGxpdHMgYW4gaW5wdXQgc3RyaW5nIGludG8gbGV4aWNhbCB0b2tlbnMsIGkuZS4gc21hbGxlciBzdHJpbmdzIHRoYXQgYXJlXG4gKiBlYXNpbHkgaWRlbnRpZmlhYmxlIGJ5IGB0b2tlbnMudG9rZW5UeXBlKClgLlxuICpcbiAqIExleGluZyBzdGFydHMgYWx3YXlzIGluIGEgXCJzdHJlYW1cIiBjb250ZXh0LiBJbmNvbXBsZXRlIGlucHV0IG1heSBiZSBidWZmZXJlZFxuICogdW50aWwgYSBjb21wbGV0ZSB0b2tlbiBjYW4gYmUgZW1pdHRlZC5cbiAqXG4gKiBJbiBhZGRpdGlvbiB0byBzbGljZXMgb2YgdGhlIG9yaWdpbmFsIGlucHV0LCB0aGUgZm9sbG93aW5nIGNvbnRyb2wgY2hhcmFjdGVyc1xuICogbWF5IGFsc28gYmUgZW1pdHRlZDpcbiAqXG4gKiAtIGBcXHgwMmAgKFN0YXJ0IG9mIFRleHQpOiBBIGRvY3VtZW50IHN0YXJ0cyB3aXRoIHRoZSBuZXh0IHRva2VuXG4gKiAtIGBcXHgxOGAgKENhbmNlbCk6IFVuZXhwZWN0ZWQgZW5kIG9mIGZsb3ctbW9kZSAoaW5kaWNhdGVzIGFuIGVycm9yKVxuICogLSBgXFx4MWZgIChVbml0IFNlcGFyYXRvcik6IE5leHQgdG9rZW4gaXMgYSBzY2FsYXIgdmFsdWVcbiAqIC0gYFxcdXtGRUZGfWAgKEJ5dGUgb3JkZXIgbWFyayk6IEVtaXR0ZWQgc2VwYXJhdGVseSBvdXRzaWRlIGRvY3VtZW50c1xuICovXG5jbGFzcyBMZXhlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBtYXJrcyB0aGUgZW5kIG9mXG4gICAgICAgICAqIGFsbCBpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hdEVuZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogRXhwbGljaXQgaW5kZW50IHNldCBpbiBibG9jayBzY2FsYXIgaGVhZGVyLCBhcyBhbiBvZmZzZXQgZnJvbSB0aGUgY3VycmVudFxuICAgICAgICAgKiBtaW5pbXVtIGluZGVudCwgc28gZS5nLiBzZXQgdG8gMSBmcm9tIGEgaGVhZGVyIGB8MitgLiBTZXQgdG8gLTEgaWYgbm90XG4gICAgICAgICAqIGV4cGxpY2l0bHkgc2V0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCA9IC0xO1xuICAgICAgICAvKipcbiAgICAgICAgICogQmxvY2sgc2NhbGFycyB0aGF0IGluY2x1ZGUgYSArIChrZWVwKSBjaG9tcGluZyBpbmRpY2F0b3IgaW4gdGhlaXIgaGVhZGVyXG4gICAgICAgICAqIGluY2x1ZGUgdHJhaWxpbmcgZW1wdHkgbGluZXMsIHdoaWNoIGFyZSBvdGhlcndpc2UgZXhjbHVkZWQgZnJvbSB0aGVcbiAgICAgICAgICogc2NhbGFyJ3MgY29udGVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJsb2NrU2NhbGFyS2VlcCA9IGZhbHNlO1xuICAgICAgICAvKiogQ3VycmVudCBpbnB1dCAqL1xuICAgICAgICB0aGlzLmJ1ZmZlciA9ICcnO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmxhZyBub3Rpbmcgd2hldGhlciB0aGUgbWFwIHZhbHVlIGluZGljYXRvciA6IGNhbiBpbW1lZGlhdGVseSBmb2xsb3cgdGhpc1xuICAgICAgICAgKiBub2RlIHdpdGhpbiBhIGZsb3cgY29udGV4dC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZmxvd0tleSA9IGZhbHNlO1xuICAgICAgICAvKiogQ291bnQgb2Ygc3Vycm91bmRpbmcgZmxvdyBjb2xsZWN0aW9uIGxldmVscy4gKi9cbiAgICAgICAgdGhpcy5mbG93TGV2ZWwgPSAwO1xuICAgICAgICAvKipcbiAgICAgICAgICogTWluaW11bSBsZXZlbCBvZiBpbmRlbnRhdGlvbiByZXF1aXJlZCBmb3IgbmV4dCBsaW5lcyB0byBiZSBwYXJzZWQgYXMgYVxuICAgICAgICAgKiBwYXJ0IG9mIHRoZSBjdXJyZW50IHNjYWxhciB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IDA7XG4gICAgICAgIC8qKiBJbmRlbnRhdGlvbiBsZXZlbCBvZiB0aGUgY3VycmVudCBsaW5lLiAqL1xuICAgICAgICB0aGlzLmluZGVudFZhbHVlID0gMDtcbiAgICAgICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBuZXh0IFxcbiBjaGFyYWN0ZXIuICovXG4gICAgICAgIHRoaXMubGluZUVuZFBvcyA9IG51bGw7XG4gICAgICAgIC8qKiBTdG9yZXMgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBpZiByZWFjaGluZyB0aGUgZW5kIG9mIGluY3BvbXBsZXRlIGlucHV0ICovXG4gICAgICAgIHRoaXMubmV4dCA9IG51bGw7XG4gICAgICAgIC8qKiBBIHBvaW50ZXIgdG8gYGJ1ZmZlcmA7IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBsZXhlci4gKi9cbiAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZSBZQU1MIHRva2VucyBmcm9tIHRoZSBgc291cmNlYCBzdHJpbmcuIElmIGBpbmNvbXBsZXRlYCxcbiAgICAgKiBhIHBhcnQgb2YgdGhlIGxhc3QgbGluZSBtYXkgYmUgbGVmdCBhcyBhIGJ1ZmZlciBmb3IgdGhlIG5leHQgY2FsbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgZ2VuZXJhdG9yIG9mIGxleGljYWwgdG9rZW5zXG4gICAgICovXG4gICAgKmxleChzb3VyY2UsIGluY29tcGxldGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdzb3VyY2UgaXMgbm90IGEgc3RyaW5nJyk7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyID8gdGhpcy5idWZmZXIgKyBzb3VyY2UgOiBzb3VyY2U7XG4gICAgICAgICAgICB0aGlzLmxpbmVFbmRQb3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXRFbmQgPSAhaW5jb21wbGV0ZTtcbiAgICAgICAgbGV0IG5leHQgPSB0aGlzLm5leHQgPz8gJ3N0cmVhbSc7XG4gICAgICAgIHdoaWxlIChuZXh0ICYmIChpbmNvbXBsZXRlIHx8IHRoaXMuaGFzQ2hhcnMoMSkpKVxuICAgICAgICAgICAgbmV4dCA9IHlpZWxkKiB0aGlzLnBhcnNlTmV4dChuZXh0KTtcbiAgICB9XG4gICAgYXRMaW5lRW5kKCkge1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zO1xuICAgICAgICBsZXQgY2ggPSB0aGlzLmJ1ZmZlcltpXTtcbiAgICAgICAgd2hpbGUgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKVxuICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsrK2ldO1xuICAgICAgICBpZiAoIWNoIHx8IGNoID09PSAnIycgfHwgY2ggPT09ICdcXG4nKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjaCA9PT0gJ1xccicpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWZmZXJbaSArIDFdID09PSAnXFxuJztcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjaGFyQXQobikge1xuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MgKyBuXTtcbiAgICB9XG4gICAgY29udGludWVTY2FsYXIob2Zmc2V0KSB7XG4gICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW29mZnNldF07XG4gICAgICAgIGlmICh0aGlzLmluZGVudE5leHQgPiAwKSB7XG4gICAgICAgICAgICBsZXQgaW5kZW50ID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpbmRlbnQgKyBvZmZzZXRdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnXFxyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLmJ1ZmZlcltpbmRlbnQgKyBvZmZzZXQgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gJ1xcbicgfHwgKCFuZXh0ICYmICF0aGlzLmF0RW5kKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldCArIGluZGVudCArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2ggPT09ICdcXG4nIHx8IGluZGVudCA+PSB0aGlzLmluZGVudE5leHQgfHwgKCFjaCAmJiAhdGhpcy5hdEVuZClcbiAgICAgICAgICAgICAgICA/IG9mZnNldCArIGluZGVudFxuICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSAnLScgfHwgY2ggPT09ICcuJykge1xuICAgICAgICAgICAgY29uc3QgZHQgPSB0aGlzLmJ1ZmZlci5zdWJzdHIob2Zmc2V0LCAzKTtcbiAgICAgICAgICAgIGlmICgoZHQgPT09ICctLS0nIHx8IGR0ID09PSAnLi4uJykgJiYgaXNFbXB0eSh0aGlzLmJ1ZmZlcltvZmZzZXQgKyAzXSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuICAgIGdldExpbmUoKSB7XG4gICAgICAgIGxldCBlbmQgPSB0aGlzLmxpbmVFbmRQb3M7XG4gICAgICAgIGlmICh0eXBlb2YgZW5kICE9PSAnbnVtYmVyJyB8fCAoZW5kICE9PSAtMSAmJiBlbmQgPCB0aGlzLnBvcykpIHtcbiAgICAgICAgICAgIGVuZCA9IHRoaXMuYnVmZmVyLmluZGV4T2YoJ1xcbicsIHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZUVuZFBvcyA9IGVuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5kID09PSAtMSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF0RW5kID8gdGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSA6IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlcltlbmQgLSAxXSA9PT0gJ1xccicpXG4gICAgICAgICAgICBlbmQgLT0gMTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcywgZW5kKTtcbiAgICB9XG4gICAgaGFzQ2hhcnMobikge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgKyBuIDw9IHRoaXMuYnVmZmVyLmxlbmd0aDtcbiAgICB9XG4gICAgc2V0TmV4dChzdGF0ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk7XG4gICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgdGhpcy5saW5lRW5kUG9zID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0ID0gc3RhdGU7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwZWVrKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcywgbik7XG4gICAgfVxuICAgICpwYXJzZU5leHQobmV4dCkge1xuICAgICAgICBzd2l0Y2ggKG5leHQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmVhbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlU3RyZWFtKCk7XG4gICAgICAgICAgICBjYXNlICdsaW5lLXN0YXJ0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VCbG9ja1N0YXJ0KCk7XG4gICAgICAgICAgICBjYXNlICdkb2MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZURvY3VtZW50KCk7XG4gICAgICAgICAgICBjYXNlICdmbG93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VGbG93Q29sbGVjdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAncXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlUXVvdGVkU2NhbGFyKCk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7XG4gICAgICAgICAgICBjYXNlICdwbGFpbi1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZVBsYWluU2NhbGFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnBhcnNlU3RyZWFtKCkge1xuICAgICAgICBsZXQgbGluZSA9IHRoaXMuZ2V0TGluZSgpO1xuICAgICAgICBpZiAobGluZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ3N0cmVhbScpO1xuICAgICAgICBpZiAobGluZVswXSA9PT0gQk9NKSB7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVbMF0gPT09ICclJykge1xuICAgICAgICAgICAgbGV0IGRpckVuZCA9IGxpbmUubGVuZ3RoO1xuICAgICAgICAgICAgbGV0IGNzID0gbGluZS5pbmRleE9mKCcjJyk7XG4gICAgICAgICAgICB3aGlsZSAoY3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2ggPSBsaW5lW2NzIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpckVuZCA9IGNzIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjcyA9IGxpbmUuaW5kZXhPZignIycsIGNzICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGxpbmVbZGlyRW5kIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKVxuICAgICAgICAgICAgICAgICAgICBkaXJFbmQgLT0gMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbiA9ICh5aWVsZCogdGhpcy5wdXNoQ291bnQoZGlyRW5kKSkgKyAoeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKSk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBuKTsgLy8gcG9zc2libGUgY29tbWVudFxuICAgICAgICAgICAgdGhpcy5wdXNoTmV3bGluZSgpO1xuICAgICAgICAgICAgcmV0dXJuICdzdHJlYW0nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF0TGluZUVuZCgpKSB7XG4gICAgICAgICAgICBjb25zdCBzcCA9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBzcCk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoTmV3bGluZSgpO1xuICAgICAgICAgICAgcmV0dXJuICdzdHJlYW0nO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIERPQ1VNRU5UO1xuICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICB9XG4gICAgKnBhcnNlTGluZVN0YXJ0KCkge1xuICAgICAgICBjb25zdCBjaCA9IHRoaXMuY2hhckF0KDApO1xuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnbGluZS1zdGFydCcpO1xuICAgICAgICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJy4nKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXRFbmQgJiYgIXRoaXMuaGFzQ2hhcnMoNCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnbGluZS1zdGFydCcpO1xuICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMucGVlaygzKTtcbiAgICAgICAgICAgIGlmICgocyA9PT0gJy0tLScgfHwgcyA9PT0gJy4uLicpICYmIGlzRW1wdHkodGhpcy5jaGFyQXQoMykpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaENvdW50KDMpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50VmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHMgPT09ICctLS0nID8gJ2RvYycgOiAnc3RyZWFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluZGVudFZhbHVlID0geWllbGQqIHRoaXMucHVzaFNwYWNlcyhmYWxzZSk7XG4gICAgICAgIGlmICh0aGlzLmluZGVudE5leHQgPiB0aGlzLmluZGVudFZhbHVlICYmICFpc0VtcHR5KHRoaXMuY2hhckF0KDEpKSlcbiAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IHRoaXMuaW5kZW50VmFsdWU7XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUJsb2NrU3RhcnQoKTtcbiAgICB9XG4gICAgKnBhcnNlQmxvY2tTdGFydCgpIHtcbiAgICAgICAgY29uc3QgW2NoMCwgY2gxXSA9IHRoaXMucGVlaygyKTtcbiAgICAgICAgaWYgKCFjaDEgJiYgIXRoaXMuYXRFbmQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdibG9jay1zdGFydCcpO1xuICAgICAgICBpZiAoKGNoMCA9PT0gJy0nIHx8IGNoMCA9PT0gJz8nIHx8IGNoMCA9PT0gJzonKSAmJiBpc0VtcHR5KGNoMSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSAoeWllbGQqIHRoaXMucHVzaENvdW50KDEpKSArICh5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IHRoaXMuaW5kZW50VmFsdWUgKyAxO1xuICAgICAgICAgICAgdGhpcy5pbmRlbnRWYWx1ZSArPSBuO1xuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlQmxvY2tTdGFydCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnZG9jJztcbiAgICB9XG4gICAgKnBhcnNlRG9jdW1lbnQoKSB7XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLmdldExpbmUoKTtcbiAgICAgICAgaWYgKGxpbmUgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdkb2MnKTtcbiAgICAgICAgbGV0IG4gPSB5aWVsZCogdGhpcy5wdXNoSW5kaWNhdG9ycygpO1xuICAgICAgICBzd2l0Y2ggKGxpbmVbbl0pIHtcbiAgICAgICAgICAgIGNhc2UgJyMnOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudChsaW5lLmxlbmd0aCAtIG4pO1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hOZXdsaW5lKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlTGluZVN0YXJ0KCk7XG4gICAgICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgIGNhc2UgJ1snOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dLZXkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCA9IDE7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgY2FzZSAnXSc6XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RvYyc7XG4gICAgICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoVW50aWwoaXNOb3RBbmNob3JDaGFyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RvYyc7XG4gICAgICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICBjYXNlIFwiJ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO1xuICAgICAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgICAgICAgICBuICs9IHlpZWxkKiB0aGlzLnBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoKTtcbiAgICAgICAgICAgICAgICBuICs9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaENvdW50KGxpbmUubGVuZ3RoIC0gbik7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaE5ld2xpbmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VCbG9ja1NjYWxhcigpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VQbGFpblNjYWxhcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwYXJzZUZsb3dDb2xsZWN0aW9uKCkge1xuICAgICAgICBsZXQgbmwsIHNwO1xuICAgICAgICBsZXQgaW5kZW50ID0gLTE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIG5sID0geWllbGQqIHRoaXMucHVzaE5ld2xpbmUoKTtcbiAgICAgICAgICAgIGlmIChubCA+IDApIHtcbiAgICAgICAgICAgICAgICBzcCA9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50VmFsdWUgPSBpbmRlbnQgPSBzcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNwID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwICs9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgIH0gd2hpbGUgKG5sICsgc3AgPiAwKTtcbiAgICAgICAgY29uc3QgbGluZSA9IHRoaXMuZ2V0TGluZSgpO1xuICAgICAgICBpZiAobGluZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ2Zsb3cnKTtcbiAgICAgICAgaWYgKChpbmRlbnQgIT09IC0xICYmIGluZGVudCA8IHRoaXMuaW5kZW50TmV4dCAmJiBsaW5lWzBdICE9PSAnIycpIHx8XG4gICAgICAgICAgICAoaW5kZW50ID09PSAwICYmXG4gICAgICAgICAgICAgICAgKGxpbmUuc3RhcnRzV2l0aCgnLS0tJykgfHwgbGluZS5zdGFydHNXaXRoKCcuLi4nKSkgJiZcbiAgICAgICAgICAgICAgICBpc0VtcHR5KGxpbmVbM10pKSkge1xuICAgICAgICAgICAgLy8gQWxsb3dpbmcgZm9yIHRoZSB0ZXJtaW5hbCBdIG9yIH0gYXQgdGhlIHNhbWUgKHJhdGhlciB0aGFuIGdyZWF0ZXIpXG4gICAgICAgICAgICAvLyBpbmRlbnQgbGV2ZWwgYXMgdGhlIGluaXRpYWwgWyBvciB7IGlzIHRlY2huaWNhbGx5IGludmFsaWQsIGJ1dFxuICAgICAgICAgICAgLy8gZmFpbGluZyBoZXJlIHdvdWxkIGJlIHN1cnByaXNpbmcgdG8gdXNlcnMuXG4gICAgICAgICAgICBjb25zdCBhdEZsb3dFbmRNYXJrZXIgPSBpbmRlbnQgPT09IHRoaXMuaW5kZW50TmV4dCAtIDEgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIChsaW5lWzBdID09PSAnXScgfHwgbGluZVswXSA9PT0gJ30nKTtcbiAgICAgICAgICAgIGlmICghYXRGbG93RW5kTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIHRoaXMuZmxvd0xldmVsID0gMDtcbiAgICAgICAgICAgICAgICB5aWVsZCBGTE9XX0VORDtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgbiA9IDA7XG4gICAgICAgIHdoaWxlIChsaW5lW25dID09PSAnLCcpIHtcbiAgICAgICAgICAgIG4gKz0geWllbGQqIHRoaXMucHVzaENvdW50KDEpO1xuICAgICAgICAgICAgbiArPSB5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbiArPSB5aWVsZCogdGhpcy5wdXNoSW5kaWNhdG9ycygpO1xuICAgICAgICBzd2l0Y2ggKGxpbmVbbl0pIHtcbiAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmxvdyc7XG4gICAgICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBuKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Zsb3cnO1xuICAgICAgICAgICAgY2FzZSAneyc6XG4gICAgICAgICAgICBjYXNlICdbJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93TGV2ZWwgKz0gMTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Zsb3cnO1xuICAgICAgICAgICAgY2FzZSAnfSc6XG4gICAgICAgICAgICBjYXNlICddJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCAtPSAxO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dMZXZlbCA/ICdmbG93JyA6ICdkb2MnO1xuICAgICAgICAgICAgY2FzZSAnKic6XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaFVudGlsKGlzTm90QW5jaG9yQ2hhcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICAgIGNhc2UgXCInXCI6XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtcbiAgICAgICAgICAgIGNhc2UgJzonOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuY2hhckF0KDEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dLZXkgfHwgaXNFbXB0eShuZXh0KSB8fCBuZXh0ID09PSAnLCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dLZXkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VQbGFpblNjYWxhcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwYXJzZVF1b3RlZFNjYWxhcigpIHtcbiAgICAgICAgY29uc3QgcXVvdGUgPSB0aGlzLmNoYXJBdCgwKTtcbiAgICAgICAgbGV0IGVuZCA9IHRoaXMuYnVmZmVyLmluZGV4T2YocXVvdGUsIHRoaXMucG9zICsgMSk7XG4gICAgICAgIGlmIChxdW90ZSA9PT0gXCInXCIpIHtcbiAgICAgICAgICAgIHdoaWxlIChlbmQgIT09IC0xICYmIHRoaXMuYnVmZmVyW2VuZCArIDFdID09PSBcIidcIilcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmJ1ZmZlci5pbmRleE9mKFwiJ1wiLCBlbmQgKyAyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGRvdWJsZS1xdW90ZVxuICAgICAgICAgICAgd2hpbGUgKGVuZCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgbiA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuYnVmZmVyW2VuZCAtIDEgLSBuXSA9PT0gJ1xcXFwnKVxuICAgICAgICAgICAgICAgICAgICBuICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKG4gJSAyID09PSAwKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmJ1ZmZlci5pbmRleE9mKCdcIicsIGVuZCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgbG9va2luZyBmb3IgbmV3bGluZXMgd2l0aGluIHRoZSBxdW90ZXNcbiAgICAgICAgY29uc3QgcWIgPSB0aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCwgZW5kKTtcbiAgICAgICAgbGV0IG5sID0gcWIuaW5kZXhPZignXFxuJywgdGhpcy5wb3MpO1xuICAgICAgICBpZiAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICB3aGlsZSAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3MgPSB0aGlzLmNvbnRpbnVlU2NhbGFyKG5sICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKGNzID09PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgbmwgPSBxYi5pbmRleE9mKCdcXG4nLCBjcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvciBjYXVzZWQgYnkgYW4gdW5leHBlY3RlZCB1bmluZGVudFxuICAgICAgICAgICAgICAgIGVuZCA9IG5sIC0gKHFiW25sIC0gMV0gPT09ICdcXHInID8gMiA6IDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQgPT09IC0xKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXRFbmQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgncXVvdGVkLXNjYWxhcicpO1xuICAgICAgICAgICAgZW5kID0gdGhpcy5idWZmZXIubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hUb0luZGV4KGVuZCArIDEsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvd0xldmVsID8gJ2Zsb3cnIDogJ2RvYyc7XG4gICAgfVxuICAgICpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkge1xuICAgICAgICB0aGlzLmJsb2NrU2NhbGFySW5kZW50ID0gLTE7XG4gICAgICAgIHRoaXMuYmxvY2tTY2FsYXJLZWVwID0gZmFsc2U7XG4gICAgICAgIGxldCBpID0gdGhpcy5wb3M7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgICAgICBpZiAoY2ggPT09ICcrJylcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrU2NhbGFyS2VlcCA9IHRydWU7XG4gICAgICAgICAgICBlbHNlIGlmIChjaCA+ICcwJyAmJiBjaCA8PSAnOScpXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCA9IE51bWJlcihjaCkgLSAxO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2ggIT09ICctJylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaFVudGlsKGNoID0+IGlzRW1wdHkoY2gpIHx8IGNoID09PSAnIycpO1xuICAgIH1cbiAgICAqcGFyc2VCbG9ja1NjYWxhcigpIHtcbiAgICAgICAgbGV0IG5sID0gdGhpcy5wb3MgLSAxOyAvLyBtYXkgYmUgLTEgaWYgdGhpcy5wb3MgPT09IDBcbiAgICAgICAgbGV0IGluZGVudCA9IDA7XG4gICAgICAgIGxldCBjaDtcbiAgICAgICAgbG9vcDogZm9yIChsZXQgaSA9IHRoaXMucG9zOyAoY2ggPSB0aGlzLmJ1ZmZlcltpXSk7ICsraSkge1xuICAgICAgICAgICAgc3dpdGNoIChjaCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgICAgICAgICAgICAgbmwgPSBpO1xuICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdcXHInOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLmJ1ZmZlcltpICsgMV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV4dCAmJiAhdGhpcy5hdEVuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ2Jsb2NrLXNjYWxhcicpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gJ1xcbicpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnYmxvY2stc2NhbGFyJyk7XG4gICAgICAgIGlmIChpbmRlbnQgPj0gdGhpcy5pbmRlbnROZXh0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja1NjYWxhckluZGVudCA9PT0gLTEpXG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID0gaW5kZW50O1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCArICh0aGlzLmluZGVudE5leHQgPT09IDAgPyAxIDogdGhpcy5pbmRlbnROZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcyA9IHRoaXMuY29udGludWVTY2FsYXIobmwgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAoY3MgPT09IC0xKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuYnVmZmVyLmluZGV4T2YoJ1xcbicsIGNzKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKG5sICE9PSAtMSk7XG4gICAgICAgICAgICBpZiAobmwgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdibG9jay1zY2FsYXInKTtcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuYnVmZmVyLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFpbGluZyBpbnN1ZmZpY2llbnRseSBpbmRlbnRlZCB0YWJzIGFyZSBpbnZhbGlkLlxuICAgICAgICAvLyBUbyBjYXRjaCB0aGF0IGR1cmluZyBwYXJzaW5nLCB3ZSBpbmNsdWRlIHRoZW0gaW4gdGhlIGJsb2NrIHNjYWxhciB2YWx1ZS5cbiAgICAgICAgbGV0IGkgPSBubCArIDE7XG4gICAgICAgIGNoID0gdGhpcy5idWZmZXJbaV07XG4gICAgICAgIHdoaWxlIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsrK2ldO1xuICAgICAgICBpZiAoY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICB3aGlsZSAoY2ggPT09ICdcXHQnIHx8IGNoID09PSAnICcgfHwgY2ggPT09ICdcXHInIHx8IGNoID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgICAgICBubCA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmJsb2NrU2NhbGFyS2VlcCkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGxldCBpID0gbmwgLSAxO1xuICAgICAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbLS1pXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGk7IC8vIERyb3AgdGhlIGxpbmUgaWYgbGFzdCBjaGFyIG5vdCBtb3JlIGluZGVudGVkXG4gICAgICAgICAgICAgICAgd2hpbGUgKGNoID09PSAnICcpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbLS1pXTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXG4nICYmIGkgPj0gdGhpcy5wb3MgJiYgaSArIDEgKyBpbmRlbnQgPiBsYXN0Q2hhcilcbiAgICAgICAgICAgICAgICAgICAgbmwgPSBpO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IHdoaWxlICh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBTQ0FMQVI7XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hUb0luZGV4KG5sICsgMSwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUxpbmVTdGFydCgpO1xuICAgIH1cbiAgICAqcGFyc2VQbGFpblNjYWxhcigpIHtcbiAgICAgICAgY29uc3QgaW5GbG93ID0gdGhpcy5mbG93TGV2ZWwgPiAwO1xuICAgICAgICBsZXQgZW5kID0gdGhpcy5wb3MgLSAxO1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zIC0gMTtcbiAgICAgICAgbGV0IGNoO1xuICAgICAgICB3aGlsZSAoKGNoID0gdGhpcy5idWZmZXJbKytpXSkpIHtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJzonKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuYnVmZmVyW2kgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eShuZXh0KSB8fCAoaW5GbG93ICYmIGZsb3dJbmRpY2F0b3JDaGFycy5oYXMobmV4dCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBlbmQgPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNFbXB0eShjaCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHRoaXMuYnVmZmVyW2kgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXHInKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAnXFxuJztcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLmJ1ZmZlcltpICsgMV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgPT09ICcjJyB8fCAoaW5GbG93ICYmIGZsb3dJbmRpY2F0b3JDaGFycy5oYXMobmV4dCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzID0gdGhpcy5jb250aW51ZVNjYWxhcihpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcyA9PT0gLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgaSA9IE1hdGgubWF4KGksIGNzIC0gMik7IC8vIHRvIGFkdmFuY2UsIGJ1dCBzdGlsbCBhY2NvdW50IGZvciAnICMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGluRmxvdyAmJiBmbG93SW5kaWNhdG9yQ2hhcnMuaGFzKGNoKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgncGxhaW4tc2NhbGFyJyk7XG4gICAgICAgIHlpZWxkIFNDQUxBUjtcbiAgICAgICAgeWllbGQqIHRoaXMucHVzaFRvSW5kZXgoZW5kICsgMSwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBpbkZsb3cgPyAnZmxvdycgOiAnZG9jJztcbiAgICB9XG4gICAgKnB1c2hDb3VudChuKSB7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLCBuKTtcbiAgICAgICAgICAgIHRoaXMucG9zICs9IG47XG4gICAgICAgICAgICByZXR1cm4gbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgKnB1c2hUb0luZGV4KGksIGFsbG93RW1wdHkpIHtcbiAgICAgICAgY29uc3QgcyA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLCBpKTtcbiAgICAgICAgaWYgKHMpIHtcbiAgICAgICAgICAgIHlpZWxkIHM7XG4gICAgICAgICAgICB0aGlzLnBvcyArPSBzLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiBzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChhbGxvd0VtcHR5KVxuICAgICAgICAgICAgeWllbGQgJyc7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAqcHVzaEluZGljYXRvcnMoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jaGFyQXQoMCkpIHtcbiAgICAgICAgICAgIGNhc2UgJyEnOlxuICAgICAgICAgICAgICAgIHJldHVybiAoKHlpZWxkKiB0aGlzLnB1c2hUYWcoKSkgK1xuICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKSkgK1xuICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaEluZGljYXRvcnMoKSkpO1xuICAgICAgICAgICAgY2FzZSAnJic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICgoeWllbGQqIHRoaXMucHVzaFVudGlsKGlzTm90QW5jaG9yQ2hhcikpICtcbiAgICAgICAgICAgICAgICAgICAgKHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSkpICtcbiAgICAgICAgICAgICAgICAgICAgKHlpZWxkKiB0aGlzLnB1c2hJbmRpY2F0b3JzKCkpKTtcbiAgICAgICAgICAgIGNhc2UgJy0nOiAvLyB0aGlzIGlzIGFuIGVycm9yXG4gICAgICAgICAgICBjYXNlICc/JzogLy8gdGhpcyBpcyBhbiBlcnJvciBvdXRzaWRlIGZsb3cgY29sbGVjdGlvbnNcbiAgICAgICAgICAgIGNhc2UgJzonOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5GbG93ID0gdGhpcy5mbG93TGV2ZWwgPiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoMSA9IHRoaXMuY2hhckF0KDEpO1xuICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KGNoMSkgfHwgKGluRmxvdyAmJiBmbG93SW5kaWNhdG9yQ2hhcnMuaGFzKGNoMSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5GbG93KVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID0gdGhpcy5pbmRlbnRWYWx1ZSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZmxvd0tleSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmxvd0tleSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCh5aWVsZCogdGhpcy5wdXNoQ291bnQoMSkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICh5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaEluZGljYXRvcnMoKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgKnB1c2hUYWcoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJBdCgxKSA9PT0gJzwnKSB7XG4gICAgICAgICAgICBsZXQgaSA9IHRoaXMucG9zICsgMjtcbiAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgd2hpbGUgKCFpc0VtcHR5KGNoKSAmJiBjaCAhPT0gJz4nKVxuICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpXTtcbiAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wdXNoVG9JbmRleChjaCA9PT0gJz4nID8gaSArIDEgOiBpLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgaSA9IHRoaXMucG9zICsgMTtcbiAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgd2hpbGUgKGNoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhZ0NoYXJzLmhhcyhjaCkpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpXTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaCA9PT0gJyUnICYmXG4gICAgICAgICAgICAgICAgICAgIGhleERpZ2l0cy5oYXModGhpcy5idWZmZXJbaSArIDFdKSAmJlxuICAgICAgICAgICAgICAgICAgICBoZXhEaWdpdHMuaGFzKHRoaXMuYnVmZmVyW2kgKyAyXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsoaSArPSAzKV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaFRvSW5kZXgoaSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwdXNoTmV3bGluZSgpIHtcbiAgICAgICAgY29uc3QgY2ggPSB0aGlzLmJ1ZmZlclt0aGlzLnBvc107XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaENvdW50KDEpO1xuICAgICAgICBlbHNlIGlmIChjaCA9PT0gJ1xccicgJiYgdGhpcy5jaGFyQXQoMSkgPT09ICdcXG4nKVxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgyKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgICpwdXNoU3BhY2VzKGFsbG93VGFicykge1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zIC0gMTtcbiAgICAgICAgbGV0IGNoO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgIH0gd2hpbGUgKGNoID09PSAnICcgfHwgKGFsbG93VGFicyAmJiBjaCA9PT0gJ1xcdCcpKTtcbiAgICAgICAgY29uc3QgbiA9IGkgLSB0aGlzLnBvcztcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsIG4pO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSBpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuO1xuICAgIH1cbiAgICAqcHVzaFVudGlsKHRlc3QpIHtcbiAgICAgICAgbGV0IGkgPSB0aGlzLnBvcztcbiAgICAgICAgbGV0IGNoID0gdGhpcy5idWZmZXJbaV07XG4gICAgICAgIHdoaWxlICghdGVzdChjaCkpXG4gICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wdXNoVG9JbmRleChpLCBmYWxzZSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBMZXhlciB9O1xuIiwgIi8qKlxuICogVHJhY2tzIG5ld2xpbmVzIGR1cmluZyBwYXJzaW5nIGluIG9yZGVyIHRvIHByb3ZpZGUgYW4gZWZmaWNpZW50IEFQSSBmb3JcbiAqIGRldGVybWluaW5nIHRoZSBvbmUtaW5kZXhlZCBgeyBsaW5lLCBjb2wgfWAgcG9zaXRpb24gZm9yIGFueSBvZmZzZXRcbiAqIHdpdGhpbiB0aGUgaW5wdXQuXG4gKi9cbmNsYXNzIExpbmVDb3VudGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5saW5lU3RhcnRzID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaG91bGQgYmUgY2FsbGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLCBjYWxsXG4gICAgICAgICAqIGBsaW5lQ291bnRlci5saW5lU3RhcnRzLnNvcnQoKWAgYmVmb3JlIGNhbGxpbmcgYGxpbmVQb3MoKWAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFkZE5ld0xpbmUgPSAob2Zmc2V0KSA9PiB0aGlzLmxpbmVTdGFydHMucHVzaChvZmZzZXQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogUGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoIGFuZCByZXR1cm5zIHRoZSAxLWluZGV4ZWQgeyBsaW5lLCBjb2wgfVxuICAgICAgICAgKiBwb3NpdGlvbiBvZiBgb2Zmc2V0YC4gSWYgYGxpbmUgPT09IDBgLCBgYWRkTmV3TGluZWAgaGFzIG5ldmVyIGJlZW5cbiAgICAgICAgICogY2FsbGVkIG9yIGBvZmZzZXRgIGlzIGJlZm9yZSB0aGUgZmlyc3Qga25vd24gbmV3bGluZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGluZVBvcyA9IChvZmZzZXQpID0+IHtcbiAgICAgICAgICAgIGxldCBsb3cgPSAwO1xuICAgICAgICAgICAgbGV0IGhpZ2ggPSB0aGlzLmxpbmVTdGFydHMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaWQgPSAobG93ICsgaGlnaCkgPj4gMTsgLy8gTWF0aC5mbG9vcigobG93ICsgaGlnaCkgLyAyKVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVTdGFydHNbbWlkXSA8IG9mZnNldClcbiAgICAgICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5saW5lU3RhcnRzW2xvd10gPT09IG9mZnNldClcbiAgICAgICAgICAgICAgICByZXR1cm4geyBsaW5lOiBsb3cgKyAxLCBjb2w6IDEgfTtcbiAgICAgICAgICAgIGlmIChsb3cgPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbGluZTogMCwgY29sOiBvZmZzZXQgfTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5saW5lU3RhcnRzW2xvdyAtIDFdO1xuICAgICAgICAgICAgcmV0dXJuIHsgbGluZTogbG93LCBjb2w6IG9mZnNldCAtIHN0YXJ0ICsgMSB9O1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTGluZUNvdW50ZXIgfTtcbiIsICJpbXBvcnQgeyB0b2tlblR5cGUgfSBmcm9tICcuL2NzdC5qcyc7XG5pbXBvcnQgeyBMZXhlciB9IGZyb20gJy4vbGV4ZXIuanMnO1xuXG5mdW5jdGlvbiBpbmNsdWRlc1Rva2VuKGxpc3QsIHR5cGUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpXG4gICAgICAgIGlmIChsaXN0W2ldLnR5cGUgPT09IHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBmaW5kTm9uRW1wdHlJbmRleChsaXN0KSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHN3aXRjaCAobGlzdFtpXS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBpc0Zsb3dUb2tlbih0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4/LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgY2FzZSAnZmxvdy1jb2xsZWN0aW9uJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldFByZXZQcm9wcyhwYXJlbnQpIHtcbiAgICBzd2l0Y2ggKHBhcmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2RvY3VtZW50JzpcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQuc3RhcnQ7XG4gICAgICAgIGNhc2UgJ2Jsb2NrLW1hcCc6IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ID0gcGFyZW50Lml0ZW1zW3BhcmVudC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIHJldHVybiBpdC5zZXAgPz8gaXQuc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnYmxvY2stc2VxJzpcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQuaXRlbXNbcGFyZW50Lml0ZW1zLmxlbmd0aCAtIDFdLnN0YXJ0O1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbn1cbi8qKiBOb3RlOiBNYXkgbW9kaWZ5IGlucHV0IGFycmF5ICovXG5mdW5jdGlvbiBnZXRGaXJzdEtleVN0YXJ0UHJvcHMocHJldikge1xuICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIGxldCBpID0gcHJldi5sZW5ndGg7XG4gICAgbG9vcDogd2hpbGUgKC0taSA+PSAwKSB7XG4gICAgICAgIHN3aXRjaCAocHJldltpXS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkb2Mtc3RhcnQnOlxuICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgIGNhc2UgJ3NlcS1pdGVtLWluZCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdoaWxlIChwcmV2WysraV0/LnR5cGUgPT09ICdzcGFjZScpIHtcbiAgICAgICAgLyogbG9vcCAqL1xuICAgIH1cbiAgICByZXR1cm4gcHJldi5zcGxpY2UoaSwgcHJldi5sZW5ndGgpO1xufVxuZnVuY3Rpb24gZml4Rmxvd1NlcUl0ZW1zKGZjKSB7XG4gICAgaWYgKGZjLnN0YXJ0LnR5cGUgPT09ICdmbG93LXNlcS1zdGFydCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdCBvZiBmYy5pdGVtcykge1xuICAgICAgICAgICAgaWYgKGl0LnNlcCAmJlxuICAgICAgICAgICAgICAgICFpdC52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICFpbmNsdWRlc1Rva2VuKGl0LnN0YXJ0LCAnZXhwbGljaXQta2V5LWluZCcpICYmXG4gICAgICAgICAgICAgICAgIWluY2x1ZGVzVG9rZW4oaXQuc2VwLCAnbWFwLXZhbHVlLWluZCcpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0LmtleSlcbiAgICAgICAgICAgICAgICAgICAgaXQudmFsdWUgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0LmtleTtcbiAgICAgICAgICAgICAgICBpZiAoaXNGbG93VG9rZW4oaXQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZS5lbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShpdC52YWx1ZS5lbmQsIGl0LnNlcCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlLmVuZCA9IGl0LnNlcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShpdC5zdGFydCwgaXQuc2VwKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXQuc2VwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBBIFlBTUwgY29uY3JldGUgc3ludGF4IHRyZWUgKENTVCkgcGFyc2VyXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IHNyYzogc3RyaW5nID0gLi4uXG4gKiBmb3IgKGNvbnN0IHRva2VuIG9mIG5ldyBQYXJzZXIoKS5wYXJzZShzcmMpKSB7XG4gKiAgIC8vIHRva2VuOiBUb2tlblxuICogfVxuICogYGBgXG4gKlxuICogVG8gdXNlIHRoZSBwYXJzZXIgd2l0aCBhIHVzZXItcHJvdmlkZWQgbGV4ZXI6XG4gKlxuICogYGBgdHNcbiAqIGZ1bmN0aW9uKiBwYXJzZShzb3VyY2U6IHN0cmluZywgbGV4ZXI6IExleGVyKSB7XG4gKiAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoKVxuICogICBmb3IgKGNvbnN0IGxleGVtZSBvZiBsZXhlci5sZXgoc291cmNlKSlcbiAqICAgICB5aWVsZCogcGFyc2VyLm5leHQobGV4ZW1lKVxuICogICB5aWVsZCogcGFyc2VyLmVuZCgpXG4gKiB9XG4gKlxuICogY29uc3Qgc3JjOiBzdHJpbmcgPSAuLi5cbiAqIGNvbnN0IGxleGVyID0gbmV3IExleGVyKClcbiAqIGZvciAoY29uc3QgdG9rZW4gb2YgcGFyc2Uoc3JjLCBsZXhlcikpIHtcbiAqICAgLy8gdG9rZW46IFRva2VuXG4gKiB9XG4gKiBgYGBcbiAqL1xuY2xhc3MgUGFyc2VyIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb25OZXdMaW5lIC0gSWYgZGVmaW5lZCwgY2FsbGVkIHNlcGFyYXRlbHkgd2l0aCB0aGUgc3RhcnQgcG9zaXRpb24gb2ZcbiAgICAgKiAgIGVhY2ggbmV3IGxpbmUgKGluIGBwYXJzZSgpYCwgaW5jbHVkaW5nIHRoZSBzdGFydCBvZiBpbnB1dCkuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob25OZXdMaW5lKSB7XG4gICAgICAgIC8qKiBJZiB0cnVlLCBzcGFjZSBhbmQgc2VxdWVuY2UgaW5kaWNhdG9ycyBjb3VudCBhcyBpbmRlbnRhdGlvbiAqL1xuICAgICAgICB0aGlzLmF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgIC8qKiBJZiB0cnVlLCBuZXh0IHRva2VuIGlzIGEgc2NhbGFyIHZhbHVlICovXG4gICAgICAgIHRoaXMuYXRTY2FsYXIgPSBmYWxzZTtcbiAgICAgICAgLyoqIEN1cnJlbnQgaW5kZW50YXRpb24gbGV2ZWwgKi9cbiAgICAgICAgdGhpcy5pbmRlbnQgPSAwO1xuICAgICAgICAvKiogQ3VycmVudCBvZmZzZXQgc2luY2UgdGhlIHN0YXJ0IG9mIHBhcnNpbmcgKi9cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICAvKiogT24gdGhlIHNhbWUgbGluZSB3aXRoIGEgYmxvY2sgbWFwIGtleSAqL1xuICAgICAgICB0aGlzLm9uS2V5TGluZSA9IGZhbHNlO1xuICAgICAgICAvKiogVG9wIGluZGljYXRlcyB0aGUgbm9kZSB0aGF0J3MgY3VycmVudGx5IGJlaW5nIGJ1aWx0ICovXG4gICAgICAgIHRoaXMuc3RhY2sgPSBbXTtcbiAgICAgICAgLyoqIFRoZSBzb3VyY2Ugb2YgdGhlIGN1cnJlbnQgdG9rZW4sIHNldCBpbiBwYXJzZSgpICovXG4gICAgICAgIHRoaXMuc291cmNlID0gJyc7XG4gICAgICAgIC8qKiBUaGUgdHlwZSBvZiB0aGUgY3VycmVudCB0b2tlbiwgc2V0IGluIHBhcnNlKCkgKi9cbiAgICAgICAgdGhpcy50eXBlID0gJyc7XG4gICAgICAgIC8vIE11c3QgYmUgZGVmaW5lZCBhZnRlciBgbmV4dCgpYFxuICAgICAgICB0aGlzLmxleGVyID0gbmV3IExleGVyKCk7XG4gICAgICAgIHRoaXMub25OZXdMaW5lID0gb25OZXdMaW5lO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQYXJzZSBgc291cmNlYCBhcyBhIFlBTUwgc3RyZWFtLlxuICAgICAqIElmIGBpbmNvbXBsZXRlYCwgYSBwYXJ0IG9mIHRoZSBsYXN0IGxpbmUgbWF5IGJlIGxlZnQgYXMgYSBidWZmZXIgZm9yIHRoZSBuZXh0IGNhbGwuXG4gICAgICpcbiAgICAgKiBFcnJvcnMgYXJlIG5vdCB0aHJvd24sIGJ1dCB5aWVsZGVkIGFzIGB7IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2UgfWAgdG9rZW5zLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBnZW5lcmF0b3Igb2YgdG9rZW5zIHJlcHJlc2VudGluZyBlYWNoIGRpcmVjdGl2ZSwgZG9jdW1lbnQsIGFuZCBvdGhlciBzdHJ1Y3R1cmUuXG4gICAgICovXG4gICAgKnBhcnNlKHNvdXJjZSwgaW5jb21wbGV0ZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSAmJiB0aGlzLm9mZnNldCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMub25OZXdMaW5lKDApO1xuICAgICAgICBmb3IgKGNvbnN0IGxleGVtZSBvZiB0aGlzLmxleGVyLmxleChzb3VyY2UsIGluY29tcGxldGUpKVxuICAgICAgICAgICAgeWllbGQqIHRoaXMubmV4dChsZXhlbWUpO1xuICAgICAgICBpZiAoIWluY29tcGxldGUpXG4gICAgICAgICAgICB5aWVsZCogdGhpcy5lbmQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWR2YW5jZSB0aGUgcGFyc2VyIGJ5IHRoZSBgc291cmNlYCBvZiBvbmUgbGV4aWNhbCB0b2tlbi5cbiAgICAgKi9cbiAgICAqbmV4dChzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIGlmICh0aGlzLmF0U2NhbGFyKSB7XG4gICAgICAgICAgICB0aGlzLmF0U2NhbGFyID0gZmFsc2U7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0b2tlblR5cGUoc291cmNlKTtcbiAgICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYE5vdCBhIFlBTUwgdG9rZW46ICR7c291cmNlfWA7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoeyB0eXBlOiAnZXJyb3InLCBvZmZzZXQ6IHRoaXMub2Zmc2V0LCBtZXNzYWdlLCBzb3VyY2UgfSk7XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdzY2FsYXInKSB7XG4gICAgICAgICAgICB0aGlzLmF0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hdFNjYWxhciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSAnc2NhbGFyJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGVudCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0ICsgc291cmNlLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXROZXdMaW5lICYmIHNvdXJjZVswXSA9PT0gJyAnKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgKz0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbWFwLXZhbHVlLWluZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2VxLWl0ZW0taW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXROZXdMaW5lKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgKz0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZG9jLW1vZGUnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb3ctZXJyb3ItZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBDYWxsIGF0IGVuZCBvZiBpbnB1dCB0byBwdXNoIG91dCBhbnkgcmVtYWluaW5nIGNvbnN0cnVjdGlvbnMgKi9cbiAgICAqZW5kKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5zdGFjay5sZW5ndGggPiAwKVxuICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgfVxuICAgIGdldCBzb3VyY2VUb2tlbigpIHtcbiAgICAgICAgY29uc3Qgc3QgPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN0O1xuICAgIH1cbiAgICAqc3RlcCgpIHtcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy5wZWVrKDEpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnZG9jLWVuZCcgJiYgKCF0b3AgfHwgdG9wLnR5cGUgIT09ICdkb2MtZW5kJykpIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLnN0YWNrLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdkb2MtZW5kJyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdG9wKVxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnN0cmVhbSgpO1xuICAgICAgICBzd2l0Y2ggKHRvcC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkb2N1bWVudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLmRvY3VtZW50KHRvcCk7XG4gICAgICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICAgICAgY2FzZSAnc2luZ2xlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5zY2FsYXIodG9wKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jsb2NrLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLmJsb2NrU2NhbGFyKHRvcCk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1tYXAnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5ibG9ja01hcCh0b3ApO1xuICAgICAgICAgICAgY2FzZSAnYmxvY2stc2VxJzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMuYmxvY2tTZXF1ZW5jZSh0b3ApO1xuICAgICAgICAgICAgY2FzZSAnZmxvdy1jb2xsZWN0aW9uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMuZmxvd0NvbGxlY3Rpb24odG9wKTtcbiAgICAgICAgICAgIGNhc2UgJ2RvYy1lbmQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5kb2N1bWVudEVuZCh0b3ApO1xuICAgICAgICB9XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgIH1cbiAgICBwZWVrKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSBuXTtcbiAgICB9XG4gICAgKnBvcChlcnJvcikge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVycm9yID8/IHRoaXMuc3RhY2sucG9wKCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ1RyaWVkIHRvIHBvcCBhbiBlbXB0eSBzdGFjayc7XG4gICAgICAgICAgICB5aWVsZCB7IHR5cGU6ICdlcnJvcicsIG9mZnNldDogdGhpcy5vZmZzZXQsIHNvdXJjZTogJycsIG1lc3NhZ2UgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnN0YWNrLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSB0aGlzLnBlZWsoMSk7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2Jsb2NrLXNjYWxhcicpIHtcbiAgICAgICAgICAgICAgICAvLyBCbG9jayBzY2FsYXJzIHVzZSB0aGVpciBwYXJlbnQgcmF0aGVyIHRoYW4gaGVhZGVyIGluZGVudFxuICAgICAgICAgICAgICAgIHRva2VuLmluZGVudCA9ICdpbmRlbnQnIGluIHRvcCA/IHRvcC5pbmRlbnQgOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gJ2Zsb3ctY29sbGVjdGlvbicgJiYgdG9wLnR5cGUgPT09ICdkb2N1bWVudCcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgYWxsIGluZGVudCBmb3IgdG9wLWxldmVsIGZsb3cgY29sbGVjdGlvbnNcbiAgICAgICAgICAgICAgICB0b2tlbi5pbmRlbnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdmbG93LWNvbGxlY3Rpb24nKVxuICAgICAgICAgICAgICAgIGZpeEZsb3dTZXFJdGVtcyh0b2tlbik7XG4gICAgICAgICAgICBzd2l0Y2ggKHRvcC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZG9jdW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AudmFsdWUgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmxvY2stc2NhbGFyJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wLnByb3BzLnB1c2godG9rZW4pOyAvLyBlcnJvclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdibG9jay1tYXAnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdG9wLml0ZW1zW3RvcC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiB0b2tlbiwgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpdC5zZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogdG9rZW4sIHNlcDogW10gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9ICFpdC5leHBsaWNpdEtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnYmxvY2stc2VxJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdCA9IHRvcC5pdGVtc1t0b3AuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcC5pdGVtcy5wdXNoKHsgc3RhcnQ6IFtdLCB2YWx1ZTogdG9rZW4gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdG9wLml0ZW1zW3RvcC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpdCB8fCBpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcC5pdGVtcy5wdXNoKHsgc3RhcnQ6IFtdLCBrZXk6IHRva2VuLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpdC5zZXApXG4gICAgICAgICAgICAgICAgICAgICAgICBpdC52YWx1ZSA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogdG9rZW4sIHNlcDogW10gfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgodG9wLnR5cGUgPT09ICdkb2N1bWVudCcgfHxcbiAgICAgICAgICAgICAgICB0b3AudHlwZSA9PT0gJ2Jsb2NrLW1hcCcgfHxcbiAgICAgICAgICAgICAgICB0b3AudHlwZSA9PT0gJ2Jsb2NrLXNlcScpICYmXG4gICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09ICdibG9jay1tYXAnIHx8IHRva2VuLnR5cGUgPT09ICdibG9jay1zZXEnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSB0b2tlbi5pdGVtc1t0b2tlbi5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAmJlxuICAgICAgICAgICAgICAgICAgICAhbGFzdC5zZXAgJiZcbiAgICAgICAgICAgICAgICAgICAgIWxhc3QudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgbGFzdC5zdGFydC5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbmROb25FbXB0eUluZGV4KGxhc3Quc3RhcnQpID09PSAtMSAmJlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4uaW5kZW50ID09PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0LnN0YXJ0LmV2ZXJ5KHN0ID0+IHN0LnR5cGUgIT09ICdjb21tZW50JyB8fCBzdC5pbmRlbnQgPCB0b2tlbi5pbmRlbnQpKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9wLnR5cGUgPT09ICdkb2N1bWVudCcpXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AuZW5kID0gbGFzdC5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLml0ZW1zLnB1c2goeyBzdGFydDogbGFzdC5zdGFydCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uaXRlbXMuc3BsaWNlKC0xLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnN0cmVhbSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RpcmVjdGl2ZS1saW5lJzpcbiAgICAgICAgICAgICAgICB5aWVsZCB7IHR5cGU6ICdkaXJlY3RpdmUnLCBvZmZzZXQ6IHRoaXMub2Zmc2V0LCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSAnYnl0ZS1vcmRlci1tYXJrJzpcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgeWllbGQgdGhpcy5zb3VyY2VUb2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdkb2MtbW9kZSc6XG4gICAgICAgICAgICBjYXNlICdkb2Mtc3RhcnQnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9jID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdkb2Mtc3RhcnQnKVxuICAgICAgICAgICAgICAgICAgICBkb2Muc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goZG9jKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCAke3RoaXMudHlwZX0gdG9rZW4gaW4gWUFNTCBzdHJlYW1gLFxuICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZVxuICAgICAgICB9O1xuICAgIH1cbiAgICAqZG9jdW1lbnQoZG9jKSB7XG4gICAgICAgIGlmIChkb2MudmFsdWUpXG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMubGluZUVuZChkb2MpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZG9jLXN0YXJ0Jzoge1xuICAgICAgICAgICAgICAgIGlmIChmaW5kTm9uRW1wdHlJbmRleChkb2Muc3RhcnQpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGRvYy5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FuY2hvcic6XG4gICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBkb2Muc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShkb2MpO1xuICAgICAgICBpZiAoYnYpXG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHlpZWxkIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgZG9jdW1lbnRgLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnNjYWxhcihzY2FsYXIpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ21hcC12YWx1ZS1pbmQnKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZ2V0UHJldlByb3BzKHRoaXMucGVlaygyKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGdldEZpcnN0S2V5U3RhcnRQcm9wcyhwcmV2KTtcbiAgICAgICAgICAgIGxldCBzZXA7XG4gICAgICAgICAgICBpZiAoc2NhbGFyLmVuZCkge1xuICAgICAgICAgICAgICAgIHNlcCA9IHNjYWxhci5lbmQ7XG4gICAgICAgICAgICAgICAgc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHNjYWxhci5lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgc2VwID0gW3RoaXMuc291cmNlVG9rZW5dO1xuICAgICAgICAgICAgY29uc3QgbWFwID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogc2NhbGFyLm9mZnNldCxcbiAgICAgICAgICAgICAgICBpbmRlbnQ6IHNjYWxhci5pbmRlbnQsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0LCBrZXk6IHNjYWxhciwgc2VwIH1dXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdID0gbWFwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHlpZWxkKiB0aGlzLmxpbmVFbmQoc2NhbGFyKTtcbiAgICB9XG4gICAgKmJsb2NrU2NhbGFyKHNjYWxhcikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBzY2FsYXIucHJvcHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICAgICAgICAgIHNjYWxhci5zb3VyY2UgPSB0aGlzLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAvLyBibG9jay1zY2FsYXIgc291cmNlIGluY2x1ZGVzIHRyYWlsaW5nIG5ld2xpbmVcbiAgICAgICAgICAgICAgICB0aGlzLmF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgPSAwO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmwgPSB0aGlzLnNvdXJjZS5pbmRleE9mKCdcXG4nKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChubCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQgKyBubCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBubCA9IHRoaXMuc291cmNlLmluZGV4T2YoJ1xcbicsIG5sKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmJsb2NrTWFwKG1hcCkge1xuICAgICAgICBjb25zdCBpdCA9IG1hcC5pdGVtc1ttYXAuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIC8vIGl0LnNlcCBpcyB0cnVlLWlzaCBpZiBwYWlyIGFscmVhZHkgaGFzIGtleSBvciA6IHNlcGFyYXRvclxuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gJ2VuZCcgaW4gaXQudmFsdWUgPyBpdC52YWx1ZS5lbmQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBBcnJheS5pc0FycmF5KGVuZCkgPyBlbmRbZW5kLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdD8udHlwZSA9PT0gJ2NvbW1lbnQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmF0SW5kZW50ZWRDb21tZW50KGl0LnN0YXJ0LCBtYXAuaW5kZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IG1hcC5pdGVtc1ttYXAuaXRlbXMubGVuZ3RoIC0gMl07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBwcmV2Py52YWx1ZT8uZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGVuZCwgaXQuc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluZGVudCA+PSBtYXAuaW5kZW50KSB7XG4gICAgICAgICAgICBjb25zdCBhdE1hcEluZGVudCA9ICF0aGlzLm9uS2V5TGluZSAmJiB0aGlzLmluZGVudCA9PT0gbWFwLmluZGVudDtcbiAgICAgICAgICAgIGNvbnN0IGF0TmV4dEl0ZW0gPSBhdE1hcEluZGVudCAmJlxuICAgICAgICAgICAgICAgIChpdC5zZXAgfHwgaXQuZXhwbGljaXRLZXkpICYmXG4gICAgICAgICAgICAgICAgdGhpcy50eXBlICE9PSAnc2VxLWl0ZW0taW5kJztcbiAgICAgICAgICAgIC8vIEZvciBlbXB0eSBub2RlcywgYXNzaWduIG5ld2xpbmUtc2VwYXJhdGVkIG5vdCBpbmRlbnRlZCBlbXB0eSB0b2tlbnMgdG8gZm9sbG93aW5nIG5vZGVcbiAgICAgICAgICAgIGxldCBzdGFydCA9IFtdO1xuICAgICAgICAgICAgaWYgKGF0TmV4dEl0ZW0gJiYgaXQuc2VwICYmICFpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5sID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdC5zZXAubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3QgPSBpdC5zZXBbaV07XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmwucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdC5pbmRlbnQgPiBtYXAuaW5kZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubC5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBubC5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChubC5sZW5ndGggPj0gMilcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpdC5zZXAuc3BsaWNlKG5sWzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYW5jaG9yJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoYXROZXh0SXRlbSB8fCBpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQuc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2V4cGxpY2l0LWtleS1pbmQnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0LnNlcCAmJiAhaXQuZXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5leHBsaWNpdEtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXROZXh0SXRlbSB8fCBpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQsIGV4cGxpY2l0S2V5OiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stbWFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0sIGV4cGxpY2l0S2V5OiB0cnVlIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlc1Rva2VuKGl0LnN0YXJ0LCAnbmV3bGluZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXQsIHsga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKGl0LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGluY2x1ZGVzVG9rZW4oaXQuc2VwLCAnbWFwLXZhbHVlLWluZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNGbG93VG9rZW4oaXQua2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpbmNsdWRlc1Rva2VuKGl0LnNlcCwgJ25ld2xpbmUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKGl0LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VwID0gaXQuc2VwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdHlwZSBndWFyZCBpcyB3cm9uZyBoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0LmtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHR5cGUgZ3VhcmQgaXMgd3JvbmcgaGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdC5zZXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwga2V5LCBzZXAgfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYWN0dWFsbHkgYXQgbmV4dCBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQuc2VwID0gaXQuc2VwLmNvbmNhdChzdGFydCwgdGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXQuc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdCwgeyBrZXk6IG51bGwsIHNlcDogW3RoaXMuc291cmNlVG9rZW5dIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQudmFsdWUgfHwgYXROZXh0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmNsdWRlc1Rva2VuKGl0LnNlcCwgJ21hcC12YWx1ZS1pbmQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IHRoaXMuaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQ6IFtdLCBrZXk6IG51bGwsIHNlcDogW3RoaXMuc291cmNlVG9rZW5dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgICAgICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZzID0gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdE5leHRJdGVtIHx8IGl0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0LCBrZXk6IGZzLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXQsIHsga2V5OiBmcywgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShtYXApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdE1hcEluZGVudCAmJiBidi50eXBlICE9PSAnYmxvY2stc2VxJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgfVxuICAgICpibG9ja1NlcXVlbmNlKHNlcSkge1xuICAgICAgICBjb25zdCBpdCA9IHNlcS5pdGVtc1tzZXEuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gJ2VuZCcgaW4gaXQudmFsdWUgPyBpdC52YWx1ZS5lbmQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBBcnJheS5pc0FycmF5KGVuZCkgPyBlbmRbZW5kLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdD8udHlwZSA9PT0gJ2NvbW1lbnQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXEuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIHNlcS5pdGVtcy5wdXNoKHsgc3RhcnQ6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQoaXQuc3RhcnQsIHNlcS5pbmRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gc2VxLml0ZW1zW3NlcS5pdGVtcy5sZW5ndGggLSAyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHByZXY/LnZhbHVlPy5lbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZW5kLCBpdC5zdGFydCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VxLml0ZW1zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpdC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdhbmNob3InOlxuICAgICAgICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUgfHwgdGhpcy5pbmRlbnQgPD0gc2VxLmluZGVudClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzZXEtaXRlbS1pbmQnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluZGVudCAhPT0gc2VxLmluZGVudClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgaWYgKGl0LnZhbHVlIHx8IGluY2x1ZGVzVG9rZW4oaXQuc3RhcnQsICdzZXEtaXRlbS1pbmQnKSlcbiAgICAgICAgICAgICAgICAgICAgc2VxLml0ZW1zLnB1c2goeyBzdGFydDogW3RoaXMuc291cmNlVG9rZW5dIH0pO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5kZW50ID4gc2VxLmluZGVudCkge1xuICAgICAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShzZXEpO1xuICAgICAgICAgICAgaWYgKGJ2KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGJ2KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgIHlpZWxkKiB0aGlzLnN0ZXAoKTtcbiAgICB9XG4gICAgKmZsb3dDb2xsZWN0aW9uKGZjKSB7XG4gICAgICAgIGNvbnN0IGl0ID0gZmMuaXRlbXNbZmMuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdmbG93LWVycm9yLWVuZCcpIHtcbiAgICAgICAgICAgIGxldCB0b3A7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgdG9wID0gdGhpcy5wZWVrKDEpO1xuICAgICAgICAgICAgfSB3aGlsZSAodG9wICYmIHRvcC50eXBlID09PSAnZmxvdy1jb2xsZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZmMuZW5kLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb21tYSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXQgfHwgaXQuc2VwKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpdCB8fCBpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZjLml0ZW1zLnB1c2goeyBzdGFydDogW10sIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnYW5jaG9yJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0IHx8IGl0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2luZ2xlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmcyA9IHRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0IHx8IGl0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiBmcywgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQuc2VwKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZzKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdCwgeyBrZXk6IGZzLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb3ctbWFwLWVuZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZmxvdy1zZXEtZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgZmMuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ2ID0gdGhpcy5zdGFydEJsb2NrVmFsdWUoZmMpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2Ugc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgICAgIGlmIChidilcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wZWVrKDIpO1xuICAgICAgICAgICAgaWYgKHBhcmVudC50eXBlID09PSAnYmxvY2stbWFwJyAmJlxuICAgICAgICAgICAgICAgICgodGhpcy50eXBlID09PSAnbWFwLXZhbHVlLWluZCcgJiYgcGFyZW50LmluZGVudCA9PT0gZmMuaW5kZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy50eXBlID09PSAnbmV3bGluZScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFwYXJlbnQuaXRlbXNbcGFyZW50Lml0ZW1zLmxlbmd0aCAtIDFdLnNlcCkpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnbWFwLXZhbHVlLWluZCcgJiZcbiAgICAgICAgICAgICAgICBwYXJlbnQudHlwZSAhPT0gJ2Zsb3ctY29sbGVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gZ2V0UHJldlByb3BzKHBhcmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBnZXRGaXJzdEtleVN0YXJ0UHJvcHMocHJldik7XG4gICAgICAgICAgICAgICAgZml4Rmxvd1NlcUl0ZW1zKGZjKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXAgPSBmYy5lbmQuc3BsaWNlKDEsIGZjLmVuZC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogZmMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0LCBrZXk6IGZjLCBzZXAgfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV0gPSBtYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5saW5lRW5kKGZjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbG93U2NhbGFyKHR5cGUpIHtcbiAgICAgICAgaWYgKHRoaXMub25OZXdMaW5lKSB7XG4gICAgICAgICAgICBsZXQgbmwgPSB0aGlzLnNvdXJjZS5pbmRleE9mKCdcXG4nKSArIDE7XG4gICAgICAgICAgICB3aGlsZSAobmwgIT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCArIG5sKTtcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuc291cmNlLmluZGV4T2YoJ1xcbicsIG5sKSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhcnRCbG9ja1ZhbHVlKHBhcmVudCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICAgICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1zY2FsYXItaGVhZGVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stc2NhbGFyJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IFt0aGlzLnNvdXJjZVRva2VuXSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjYXNlICdmbG93LW1hcC1zdGFydCc6XG4gICAgICAgICAgICBjYXNlICdmbG93LXNlcS1zdGFydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Zsb3ctY29sbGVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiB0aGlzLnNvdXJjZVRva2VuLFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgICAgICAgICAgICAgIGVuZDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnc2VxLWl0ZW0taW5kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stc2VxJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IGdldFByZXZQcm9wcyhwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKHByZXYpO1xuICAgICAgICAgICAgICAgIHN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwgZXhwbGljaXRLZXk6IHRydWUgfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbWFwLXZhbHVlLWluZCc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IGdldFByZXZQcm9wcyhwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKHByZXYpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IHRoaXMuaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBhdEluZGVudGVkQ29tbWVudChzdGFydCwgaW5kZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdjb21tZW50JylcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5kZW50IDw9IGluZGVudClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0LmV2ZXJ5KHN0ID0+IHN0LnR5cGUgPT09ICduZXdsaW5lJyB8fCBzdC50eXBlID09PSAnc3BhY2UnKTtcbiAgICB9XG4gICAgKmRvY3VtZW50RW5kKGRvY0VuZCkge1xuICAgICAgICBpZiAodGhpcy50eXBlICE9PSAnZG9jLW1vZGUnKSB7XG4gICAgICAgICAgICBpZiAoZG9jRW5kLmVuZClcbiAgICAgICAgICAgICAgICBkb2NFbmQuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jRW5kLmVuZCA9IFt0aGlzLnNvdXJjZVRva2VuXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICduZXdsaW5lJylcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqbGluZUVuZCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY29tbWEnOlxuICAgICAgICAgICAgY2FzZSAnZG9jLXN0YXJ0JzpcbiAgICAgICAgICAgIGNhc2UgJ2RvYy1lbmQnOlxuICAgICAgICAgICAgY2FzZSAnZmxvdy1zZXEtZW5kJzpcbiAgICAgICAgICAgIGNhc2UgJ2Zsb3ctbWFwLWVuZCc6XG4gICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBhbGwgb3RoZXIgdmFsdWVzIGFyZSBlcnJvcnNcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4uZW5kKVxuICAgICAgICAgICAgICAgICAgICB0b2tlbi5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHRva2VuLmVuZCA9IFt0aGlzLnNvdXJjZVRva2VuXTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAnbmV3bGluZScpXG4gICAgICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBQYXJzZXIgfTtcbiIsICJpbXBvcnQgeyBDb21wb3NlciB9IGZyb20gJy4vY29tcG9zZS9jb21wb3Nlci5qcyc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4vZG9jL0RvY3VtZW50LmpzJztcbmltcG9ydCB7IHByZXR0aWZ5RXJyb3IsIFlBTUxQYXJzZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMuanMnO1xuaW1wb3J0IHsgd2FybiB9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB7IGlzRG9jdW1lbnQgfSBmcm9tICcuL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IExpbmVDb3VudGVyIH0gZnJvbSAnLi9wYXJzZS9saW5lLWNvdW50ZXIuanMnO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZS9wYXJzZXIuanMnO1xuXG5mdW5jdGlvbiBwYXJzZU9wdGlvbnMob3B0aW9ucykge1xuICAgIGNvbnN0IHByZXR0eUVycm9ycyA9IG9wdGlvbnMucHJldHR5RXJyb3JzICE9PSBmYWxzZTtcbiAgICBjb25zdCBsaW5lQ291bnRlciA9IG9wdGlvbnMubGluZUNvdW50ZXIgfHwgKHByZXR0eUVycm9ycyAmJiBuZXcgTGluZUNvdW50ZXIoKSkgfHwgbnVsbDtcbiAgICByZXR1cm4geyBsaW5lQ291bnRlciwgcHJldHR5RXJyb3JzIH07XG59XG4vKipcbiAqIFBhcnNlIHRoZSBpbnB1dCBhcyBhIHN0cmVhbSBvZiBZQU1MIGRvY3VtZW50cy5cbiAqXG4gKiBEb2N1bWVudHMgc2hvdWxkIGJlIHNlcGFyYXRlZCBmcm9tIGVhY2ggb3RoZXIgYnkgYC4uLmAgb3IgYC0tLWAgbWFya2VyIGxpbmVzLlxuICpcbiAqIEByZXR1cm5zIElmIGFuIGVtcHR5IGBkb2NzYCBhcnJheSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBvZiB0eXBlXG4gKiAgIEVtcHR5U3RyZWFtIGFuZCBjb250YWluIGFkZGl0aW9uYWwgc3RyZWFtIGluZm9ybWF0aW9uLiBJblxuICogICBUeXBlU2NyaXB0LCB5b3Ugc2hvdWxkIHVzZSBgJ2VtcHR5JyBpbiBkb2NzYCBhcyBhIHR5cGUgZ3VhcmQgZm9yIGl0LlxuICovXG5mdW5jdGlvbiBwYXJzZUFsbERvY3VtZW50cyhzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbGluZUNvdW50ZXIsIHByZXR0eUVycm9ycyB9ID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobGluZUNvdW50ZXI/LmFkZE5ld0xpbmUpO1xuICAgIGNvbnN0IGNvbXBvc2VyID0gbmV3IENvbXBvc2VyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRvY3MgPSBBcnJheS5mcm9tKGNvbXBvc2VyLmNvbXBvc2UocGFyc2VyLnBhcnNlKHNvdXJjZSkpKTtcbiAgICBpZiAocHJldHR5RXJyb3JzICYmIGxpbmVDb3VudGVyKVxuICAgICAgICBmb3IgKGNvbnN0IGRvYyBvZiBkb2NzKSB7XG4gICAgICAgICAgICBkb2MuZXJyb3JzLmZvckVhY2gocHJldHRpZnlFcnJvcihzb3VyY2UsIGxpbmVDb3VudGVyKSk7XG4gICAgICAgICAgICBkb2Mud2FybmluZ3MuZm9yRWFjaChwcmV0dGlmeUVycm9yKHNvdXJjZSwgbGluZUNvdW50ZXIpKTtcbiAgICAgICAgfVxuICAgIGlmIChkb2NzLmxlbmd0aCA+IDApXG4gICAgICAgIHJldHVybiBkb2NzO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCB7IGVtcHR5OiB0cnVlIH0sIGNvbXBvc2VyLnN0cmVhbUluZm8oKSk7XG59XG4vKiogUGFyc2UgYW4gaW5wdXQgc3RyaW5nIGludG8gYSBzaW5nbGUgWUFNTC5Eb2N1bWVudCAqL1xuZnVuY3Rpb24gcGFyc2VEb2N1bWVudChzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbGluZUNvdW50ZXIsIHByZXR0eUVycm9ycyB9ID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobGluZUNvdW50ZXI/LmFkZE5ld0xpbmUpO1xuICAgIGNvbnN0IGNvbXBvc2VyID0gbmV3IENvbXBvc2VyKG9wdGlvbnMpO1xuICAgIC8vIGBkb2NgIGlzIGFsd2F5cyBzZXQgYnkgY29tcG9zZS5lbmQodHJ1ZSkgYXQgdGhlIHZlcnkgbGF0ZXN0XG4gICAgbGV0IGRvYyA9IG51bGw7XG4gICAgZm9yIChjb25zdCBfZG9jIG9mIGNvbXBvc2VyLmNvbXBvc2UocGFyc2VyLnBhcnNlKHNvdXJjZSksIHRydWUsIHNvdXJjZS5sZW5ndGgpKSB7XG4gICAgICAgIGlmICghZG9jKVxuICAgICAgICAgICAgZG9jID0gX2RvYztcbiAgICAgICAgZWxzZSBpZiAoZG9jLm9wdGlvbnMubG9nTGV2ZWwgIT09ICdzaWxlbnQnKSB7XG4gICAgICAgICAgICBkb2MuZXJyb3JzLnB1c2gobmV3IFlBTUxQYXJzZUVycm9yKF9kb2MucmFuZ2Uuc2xpY2UoMCwgMiksICdNVUxUSVBMRV9ET0NTJywgJ1NvdXJjZSBjb250YWlucyBtdWx0aXBsZSBkb2N1bWVudHM7IHBsZWFzZSB1c2UgWUFNTC5wYXJzZUFsbERvY3VtZW50cygpJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXR0eUVycm9ycyAmJiBsaW5lQ291bnRlcikge1xuICAgICAgICBkb2MuZXJyb3JzLmZvckVhY2gocHJldHRpZnlFcnJvcihzb3VyY2UsIGxpbmVDb3VudGVyKSk7XG4gICAgICAgIGRvYy53YXJuaW5ncy5mb3JFYWNoKHByZXR0aWZ5RXJyb3Ioc291cmNlLCBsaW5lQ291bnRlcikpO1xuICAgIH1cbiAgICByZXR1cm4gZG9jO1xufVxuZnVuY3Rpb24gcGFyc2Uoc3JjLCByZXZpdmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IF9yZXZpdmVyID0gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBfcmV2aXZlciA9IHJldml2ZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCAmJiByZXZpdmVyICYmIHR5cGVvZiByZXZpdmVyID09PSAnb2JqZWN0Jykge1xuICAgICAgICBvcHRpb25zID0gcmV2aXZlcjtcbiAgICB9XG4gICAgY29uc3QgZG9jID0gcGFyc2VEb2N1bWVudChzcmMsIG9wdGlvbnMpO1xuICAgIGlmICghZG9jKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBkb2Mud2FybmluZ3MuZm9yRWFjaCh3YXJuaW5nID0+IHdhcm4oZG9jLm9wdGlvbnMubG9nTGV2ZWwsIHdhcm5pbmcpKTtcbiAgICBpZiAoZG9jLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChkb2Mub3B0aW9ucy5sb2dMZXZlbCAhPT0gJ3NpbGVudCcpXG4gICAgICAgICAgICB0aHJvdyBkb2MuZXJyb3JzWzBdO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBkb2MuZXJyb3JzID0gW107XG4gICAgfVxuICAgIHJldHVybiBkb2MudG9KUyhPYmplY3QuYXNzaWduKHsgcmV2aXZlcjogX3Jldml2ZXIgfSwgb3B0aW9ucykpO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlLCByZXBsYWNlciwgb3B0aW9ucykge1xuICAgIGxldCBfcmVwbGFjZXIgPSBudWxsO1xuICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicgfHwgQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcbiAgICAgICAgX3JlcGxhY2VyID0gcmVwbGFjZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCAmJiByZXBsYWNlcikge1xuICAgICAgICBvcHRpb25zID0gcmVwbGFjZXI7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zLmxlbmd0aDtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgucm91bmQob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMgPSBpbmRlbnQgPCAxID8gdW5kZWZpbmVkIDogaW5kZW50ID4gOCA/IHsgaW5kZW50OiA4IH0gOiB7IGluZGVudCB9O1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB7IGtlZXBVbmRlZmluZWQgfSA9IG9wdGlvbnMgPz8gcmVwbGFjZXIgPz8ge307XG4gICAgICAgIGlmICgha2VlcFVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChpc0RvY3VtZW50KHZhbHVlKSAmJiAhX3JlcGxhY2VyKVxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcob3B0aW9ucyk7XG4gICAgcmV0dXJuIG5ldyBEb2N1bWVudCh2YWx1ZSwgX3JlcGxhY2VyLCBvcHRpb25zKS50b1N0cmluZyhvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgcGFyc2UsIHBhcnNlQWxsRG9jdW1lbnRzLCBwYXJzZURvY3VtZW50LCBzdHJpbmdpZnkgfTtcbiIsICJpbXBvcnQgeyBKc29uTGluaywgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IGdldEV4dGVuc2lvbiwgZ2V0RmlsZVRpdGxlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBDYWNoZWRNZXRhZGF0YSwgRmlsZVN0YXRzLCBGcm9udE1hdHRlckNhY2hlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZVlhbWwgfSBmcm9tIFwieWFtbFwiO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEJUcmVlfSBmcm9tIFwic29ydGVkLWJ0cmVlXCI7XG5pbXBvcnQge1xuICAgIElubGluZUZpZWxkLFxuICAgIEpzb25JbmxpbmVGaWVsZCxcbiAgICBhc0lubGluZUZpZWxkLFxuICAgIGV4dHJhY3RGdWxsTGluZUZpZWxkLFxuICAgIGV4dHJhY3RJbmxpbmVGaWVsZHMsXG4gICAganNvbklubGluZUZpZWxkLFxufSBmcm9tIFwiLi9pbmxpbmUtZmllbGRcIjtcbmltcG9ydCB7XG4gICAgSnNvbk1hcmtkb3duQmxvY2ssXG4gICAgSnNvbk1hcmtkb3duTGlzdEJsb2NrLFxuICAgIEpzb25NYXJrZG93bkxpc3RJdGVtLFxuICAgIEpzb25NYXJrZG93blBhZ2UsXG4gICAgSnNvbk1hcmtkb3duU2VjdGlvbixcbiAgICBKc29uTWFya2Rvd25UYXNrSXRlbSxcbiAgICBKc29uTWFya2Rvd25EYXRhYmxvY2ssXG4gICAgSnNvbk1hcmtkb3duQ29kZWJsb2NrLFxuICAgIEpzb25Gcm9udG1hdHRlckVudHJ5LFxufSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9tYXJrZG93blwiO1xuaW1wb3J0IHsgSnNvbkNvbnZlcnNpb24gfSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9jb21tb25cIjtcbmltcG9ydCB7IFlhbWxDb252ZXJzaW9uIH0gZnJvbSBcImluZGV4L3R5cGVzL3lhbWxcIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5cbi8qKiBNYXRjaGVzIHlhbWwgZGF0YWJsb2Nrcywgd2hpY2ggc2hvdyB1cCBhcyBpbmRlcGVuZGVudCBvYmplY3RzIGluIHRoZSBkYXRhY29yZSBpbmRleC4gKi9cbmNvbnN0IFlBTUxfREFUQV9SRUdFWCA9IC9gYGB5YW1sOmRhdGEvaTtcbi8qKiBNYXRjaGVzIHRoZSBzdGFydCBvZiBhbnkgY29kZWJsb2NrIGZlbmNlLiAqL1xuY29uc3QgQ09ERUJMT0NLX0ZFTkNFX1JFR0VYID0gL14oPzpgYGB8fn5+KSguKikkL2ltO1xuLyoqIE1hdGNoZXMgbGlzdCBpdGVtcyAoaW5jbHVkaW5nIGluc2lkZSB0ZXh0IGJsb2NrcykuICovXG5jb25zdCBMSVNUX0lURU1fUkVHRVggPSAvXltcXHM+XSooXFxkK1xcLnxcXGQrXFwpfFxcKnwtfFxcKylcXHMqKFxcWy57MCwxfVxcXSk/XFxzKiguKikkL211O1xuXG4vKipcbiAqIEdpdmVuIHRoZSByYXcgc291cmNlIGFuZCBPYnNpZGlhbiBtZXRhZGF0YSBmb3IgYSBnaXZlbiBtYXJrZG93biBmaWxlLFxuICogcmV0dXJuIGZ1bGwgbWFya2Rvd24gZmlsZSBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duSW1wb3J0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBtYXJrZG93bjogc3RyaW5nLFxuICAgIG1ldGFkYXRhOiBDYWNoZWRNZXRhZGF0YSxcbiAgICBzdGF0czogRmlsZVN0YXRzXG4pOiBKc29uTWFya2Rvd25QYWdlIHtcbiAgICBjb25zdCB7IGxpbmVzLCBtZXRhZGF0YTogcGFnZU1ldGFkYXRhLCBmcm9udG1hdHRlciwgc2VjdGlvbnMgfSA9IG1hcmtkb3duU291cmNlSW1wb3J0KHBhdGgsIG1hcmtkb3duLCBtZXRhZGF0YSk7XG4gICAgY29uc3QgcGFnZSA9IG5ldyBQYWdlRGF0YShwYXRoLCBzdGF0cywgbGluZXMubGVuZ3RoLCBwYWdlTWV0YWRhdGEsIHNlY3Rpb25zLCBmcm9udG1hdHRlcik7XG5cbiAgICByZXR1cm4gcGFnZS5idWlsZCgpO1xufVxuXG4vKiogSW1wb3J0IG1hcmtkb3duIGZpbGUgbWV0YWRhdGEsIHByb2R1Y2luZyBhbGwgcmVsZXZhbnQgbWFya2Rvd24gZGF0YS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrZG93blNvdXJjZUltcG9ydChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbWFya2Rvd246IHN0cmluZyxcbiAgICBtZXRhZGF0YTogQ2FjaGVkTWV0YWRhdGFcbik6IHtcbiAgICBsaW5lczogc3RyaW5nW107XG4gICAgbWV0YWRhdGE6IE1ldGFkYXRhO1xuICAgIGZyb250bWF0dGVyPzogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+O1xuICAgIHNlY3Rpb25zOiBTZWN0aW9uRGF0YVtdO1xufSB7XG4gICAgY29uc3QgZnJvbnRtYXR0ZXI6IFJlY29yZDxzdHJpbmcsIEpzb25Gcm9udG1hdHRlckVudHJ5PiB8IHVuZGVmaW5lZCA9IG1ldGFkYXRhLmZyb250bWF0dGVyXG4gICAgICAgID8gcGFyc2VGcm9udG1hdHRlckJsb2NrKG1ldGFkYXRhLmZyb250bWF0dGVyKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBsaW5lcyA9IG1hcmtkb3duLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pO1xuICAgIGNvbnN0IG1hcmtkb3duTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICBjb25zdCBzZWN0aW9uQXJyYXk6IFNlY3Rpb25EYXRhW10gPSBbXTtcbiAgICAvLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNlY3Rpb25zIC8vXG4gICAgLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IG1ldGFoZWFkaW5ncyA9IG1ldGFkYXRhLmhlYWRpbmdzID8/IFtdO1xuICAgIG1ldGFoZWFkaW5ncy5zb3J0KChhLCBiKSA9PiBhLnBvc2l0aW9uLnN0YXJ0LmxpbmUgLSBiLnBvc2l0aW9uLnN0YXJ0LmxpbmUpO1xuXG4gICAgY29uc3Qgc2VjdGlvbnMgPSBuZXcgQlRyZWU8bnVtYmVyLCBTZWN0aW9uRGF0YT4odW5kZWZpbmVkLCAoYSwgYikgPT4gYSAtIGIpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZXRhaGVhZGluZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gbWV0YWhlYWRpbmdzW2luZGV4XTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBlbnRyeS5wb3NpdGlvbi5zdGFydC5saW5lO1xuICAgICAgICBjb25zdCBlbmQgPSBpbmRleCA9PSBtZXRhaGVhZGluZ3MubGVuZ3RoIC0gMSA/IGxpbmVzLmxlbmd0aCA6IG1ldGFoZWFkaW5nc1tpbmRleCArIDFdLnBvc2l0aW9uLnN0YXJ0LmxpbmU7XG5cbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IG5ldyBTZWN0aW9uRGF0YShzdGFydCwgZW5kLCBlbnRyeS5oZWFkaW5nLCBlbnRyeS5sZXZlbCwgaW5kZXggKyAxKTtcbiAgICAgICAgc2VjdGlvbnMuc2V0KHN0YXJ0LCBzZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYW4gaW1wbGljaXQgc2VjdGlvbiBmb3IgdGhlIFwiaGVhZGluZ1wiIHNlY3Rpb24gb2YgdGhlIHBhZ2UgaWYgdGhlcmUgaXMgbm90IGFuIGltbWVkaWF0ZSBoZWFkZXIgYnV0IHRoZXJlIGlzXG4gICAgLy8gc29tZSBjb250ZW50IGluIHRoZSBmaWxlLiBJZiB0aGVyZSBhcmUgb3RoZXIgc2VjdGlvbnMsIHRoZW4gZ28gdXAgdG8gdGhhdCwgb3RoZXJ3aXNlLCBnbyBmb3IgdGhlIGVudGlyZSBmaWxlLlxuICAgIGlmIChzZWN0aW9ucy5zaXplID09IDApIHtcbiAgICAgICAgaWYgKCFlbXB0eWxpbmVzKGxpbmVzLCAwLCBsaW5lcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gbmV3IFNlY3Rpb25EYXRhKDAsIGxpbmVzLmxlbmd0aCwgZ2V0RmlsZVRpdGxlKHBhdGgpLCAxLCAwKTtcbiAgICAgICAgICAgIHNlY3Rpb25zLnNldCgwLCBzZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZpbmQgdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCBzZWN0aW9uLlxuICAgICAgICBjb25zdCBmaXJzdCA9IHNlY3Rpb25zLmdldFBhaXJPck5leHRIaWdoZXIoMCk/LlsxXSEhO1xuXG4gICAgICAgIGlmIChmaXJzdC5zdGFydCA+IDAgJiYgIWVtcHR5bGluZXMobGluZXMsIDAsIGZpcnN0LnN0YXJ0KSkge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IG5ldyBTZWN0aW9uRGF0YSgwLCBmaXJzdC5zdGFydCwgZ2V0RmlsZVRpdGxlKHBhdGgpLCAxLCAwKTtcblxuICAgICAgICAgICAgc2VjdGlvbnMuc2V0KDAsIHNlY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vXG4gICAgLy8gQmxvY2tzIC8vXG4gICAgLy8vLy8vLy8vLy8vXG5cbiAgICAvLyBBbGwgYmxvY2tzOyB3ZSB3aWxsIGFzc2lnbiB0YWdzIGFuZCBvdGhlciBtZXRhZGF0YSB0byBibG9ja3MgYXMgd2UgZW5jb3VudGVyIHRoZW0uIEF0IHRoZSBlbmQsIG9ubHkgYmxvY2tzIHRoYXRcbiAgICAvLyBoYXZlIGFjdHVhbCBtZXRhZGF0YSB3aWxsIGJlIHN0b3JlZCB0byBzYXZlIG9uIG1lbW9yeSBwcmVzc3VyZS5cbiAgICBjb25zdCBibG9ja3MgPSBuZXcgQlRyZWU8bnVtYmVyLCBCbG9ja0RhdGE+KHVuZGVmaW5lZCwgKGEsIGIpID0+IGEgLSBiKTtcbiAgICBsZXQgYmxvY2tPcmRpbmFsID0gMTtcbiAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIG1ldGFkYXRhLnNlY3Rpb25zIHx8IFtdKSB7XG4gICAgICAgIC8vIFNraXAgaGVhZGluZ3MgYmxvY2tzLCB3ZSBoYW5kbGUgdGhlbSBzcGVjaWFsbHkgYXMgc2VjdGlvbnMuXG4gICAgICAgIGlmIChibG9jay50eXBlID09PSBcImhlYWRpbmdcIikgY29udGludWU7XG5cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBibG9jay5wb3NpdGlvbi5zdGFydC5saW5lO1xuICAgICAgICBjb25zdCBlbmQgPSBibG9jay5wb3NpdGlvbi5lbmQubGluZSArIDE7XG4gICAgICAgIGNvbnN0IHN0YXJ0TGluZSA9IGxpbmVzW3N0YXJ0XTsgLy8gdG8gdXNlIHRvIGNoZWNrIHRoZSBjb2RlYmxvY2sgdHlwZVxuXG4gICAgICAgIGlmIChibG9jay50eXBlID09PSBcImxpc3RcIikge1xuICAgICAgICAgICAgYmxvY2tzLnNldChzdGFydCwgbmV3IExpc3RCbG9ja0RhdGEoc3RhcnQsIGVuZCwgYmxvY2tPcmRpbmFsKyssIGJsb2NrLmlkKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYmxvY2sudHlwZSA9PSBcImNvZGVcIiAmJiBZQU1MX0RBVEFfUkVHRVgudGVzdChzdGFydExpbmUpKSB7XG4gICAgICAgICAgICBjb25zdCB5YW1sOiBzdHJpbmcgPSBsaW5lc1xuICAgICAgICAgICAgICAgIC5zbGljZShzdGFydCArIDEsIGVuZCAtIDEpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIilcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFx0L2dtLCBcIiAgXCIpO1xuICAgICAgICAgICAgY29uc3Qgc3BsaXQ6IFJlY29yZDxzdHJpbmcsIEpzb25Gcm9udG1hdHRlckVudHJ5PiA9IHBhcnNlRnJvbnRtYXR0ZXJCbG9jayhwYXJzZVlhbWwoeWFtbCkpO1xuXG4gICAgICAgICAgICBibG9ja3Muc2V0KHN0YXJ0LCBuZXcgRGF0YWJsb2NrRGF0YShzdGFydCwgZW5kLCBibG9ja09yZGluYWwrKywgc3BsaXQsIGJsb2NrLmlkKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYmxvY2sudHlwZSA9PT0gXCJjb2RlXCIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBibG9jayBpcyBmZW5jZWQuXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHN0YXJ0TGluZS5tYXRjaChDT0RFQkxPQ0tfRkVOQ0VfUkVHRVgpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gaW5kZW50ZWQtc3R5bGUgY29kZWJsb2NrLlxuICAgICAgICAgICAgICAgIGJsb2Nrcy5zZXQoc3RhcnQsIG5ldyBDb2RlYmxvY2tEYXRhKHN0YXJ0LCBlbmQsIGJsb2NrT3JkaW5hbCsrLCBbXSwgXCJpbmRlbnRcIiwgc3RhcnQsIGVuZCwgYmxvY2suaWQpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gbWF0Y2gubGVuZ3RoID4gMSAmJiBtYXRjaFsxXSA/IG1hdGNoWzFdLnNwbGl0KFwiLFwiKSA6IFtdO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5zZXQoXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICBuZXcgQ29kZWJsb2NrRGF0YShzdGFydCwgZW5kLCBibG9ja09yZGluYWwrKywgbGFuZ3VhZ2VzLCBcImZlbmNlZFwiLCBzdGFydCArIDEsIGVuZCAtIDEsIGJsb2NrLmlkKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBibG9ja3Muc2V0KHN0YXJ0LCBuZXcgQmFzZUJsb2NrRGF0YShzdGFydCwgZW5kLCBibG9ja09yZGluYWwrKywgYmxvY2sudHlwZSwgYmxvY2suaWQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBibG9ja3MgdG8gc2VjdGlvbnMuXG4gICAgZm9yIChjb25zdCBibG9jayBvZiBibG9ja3MudmFsdWVzKCkpIHtcbiAgICAgICAgbG9va3VwKGJsb2NrLnN0YXJ0LCBzZWN0aW9ucyk/LmJsb2NrKGJsb2NrKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vL1xuICAgIC8vIExpc3RzIC8vXG4gICAgLy8vLy8vLy8vLy9cblxuICAgIC8vIEFsbCBsaXN0IGl0ZW1zIGluIGxpc3RzLiBTdGFydCB3aXRoIGEgc2ltcGxlIHRyaXZpYWwgcGFzcy5cbiAgICBjb25zdCBjb250ZW50UmVnZXggPSAvXltcXHRcXGZcXHYgXSpbXFwtK1xcKl1cXHMoXFxbLlxcXVxccyk/LztcbiAgICBjb25zdCBtYXJrZXJSZWdleCA9IC9eKD4/XFxzPykqKFxcdHxcXHMpKi9nO1xuICAgIGNvbnN0IGxpc3RJdGVtcyA9IG5ldyBCVHJlZTxudW1iZXIsIExpc3RJdGVtRGF0YT4odW5kZWZpbmVkLCAoYSwgYikgPT4gYSAtIGIpO1xuXG4gICAgZm9yIChjb25zdCBsaXN0IG9mIG1ldGFkYXRhLmxpc3RJdGVtcyB8fCBbXSkge1xuICAgICAgICBjb25zdCBsaW5lID0gbGluZXNbbGlzdC5wb3NpdGlvbi5zdGFydC5saW5lXTtcblxuICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgZmxhZyB3aGljaCBza2lwcyBpbmRleGluZyBsaXN0IGl0ZW1zLlxuICAgICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goTElTVF9JVEVNX1JFR0VYKTtcbiAgICAgICAgbGV0IHN5bWJvbCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRleHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgc3ltYm9sID0gbWF0Y2hbMV07XG4gICAgICAgICAgICB0ZXh0ID0gbWF0Y2hbM107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtID0gbmV3IExpc3RJdGVtRGF0YShcbiAgICAgICAgICAgIGxpc3QucG9zaXRpb24uc3RhcnQubGluZSxcbiAgICAgICAgICAgIGxpc3QucG9zaXRpb24uZW5kLmxpbmUgKyAxLFxuICAgICAgICAgICAgbGlzdC5wYXJlbnQsXG4gICAgICAgICAgICBzeW1ib2wsXG4gICAgICAgICAgICBsaXN0LmlkLFxuICAgICAgICAgICAgbGlzdC50YXNrLFxuICAgICAgICAgICAgdGV4dFxuICAgICAgICApO1xuICAgICAgICBsaXN0SXRlbXMuc2V0KGl0ZW0uc3RhcnQsIGl0ZW0pO1xuICAgIH1cblxuICAgIC8vIEluIHRoZSBzZWNvbmQgbGlzdCBwYXNzLCBhY3R1YWxseSBjb25zdHJ1Y3QgdGhlIGxpc3QgaGVpcmFyY2h5LlxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBsaXN0SXRlbXMudmFsdWVzKCkpIHtcbiAgICAgICAgaWYgKGl0ZW0ucGFyZW50TGluZSA8IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RCbG9jayA9IGJsb2Nrcy5nZXQoLWl0ZW0ucGFyZW50TGluZSk7XG4gICAgICAgICAgICBpZiAoIWxpc3RCbG9jayB8fCAhKGxpc3RCbG9jay50eXBlID09PSBcImxpc3RcIikpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAobGlzdEJsb2NrIGFzIExpc3RCbG9ja0RhdGEpLml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0SXRlbXMuZ2V0KGl0ZW0ucGFyZW50TGluZSk/LmVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vXG4gICAgLy8gVGFncyAvL1xuICAgIC8vLy8vLy8vLy9cblxuICAgIC8vIEZvciBlYWNoIHRhZywgYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGFuZCBibG9jayB0aGF0IGl0IGlzIGEgcGFydCBvZi5cbiAgICBmb3IgKGNvbnN0IHRhZ2RlZiBvZiBtZXRhZGF0YS50YWdzID8/IFtdKSB7XG4gICAgICAgIGNvbnN0IHRhZyA9IHRhZ2RlZi50YWcuc3RhcnRzV2l0aChcIiNcIikgPyB0YWdkZWYudGFnIDogXCIjXCIgKyB0YWdkZWYudGFnO1xuICAgICAgICBjb25zdCBsaW5lID0gdGFnZGVmLnBvc2l0aW9uLnN0YXJ0LmxpbmU7XG4gICAgICAgIG1hcmtkb3duTWV0YWRhdGEudGFnKHRhZyk7XG5cbiAgICAgICAgbG9va3VwKGxpbmUsIHNlY3Rpb25zKT8ubWV0YWRhdGEudGFnKHRhZyk7XG4gICAgICAgIGxvb2t1cChsaW5lLCBibG9ja3MpPy5tZXRhZGF0YS50YWcodGFnKTtcbiAgICAgICAgbG9va3VwKGxpbmUsIGxpc3RJdGVtcyk/Lm1ldGFkYXRhLnRhZyh0YWcpO1xuICAgIH1cblxuICAgIC8vIEFkZCBmcm9udG1hdHRlciB0YWdzLlxuICAgIGlmIChtZXRhZGF0YS5mcm9udG1hdHRlcikge1xuICAgICAgICBmb3IgKGNvbnN0IHJhd3RhZyBvZiBleHRyYWN0VGFncyhtZXRhZGF0YS5mcm9udG1hdHRlcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJhd3RhZy5zdGFydHNXaXRoKFwiI1wiKSA/IHJhd3RhZyA6IFwiI1wiICsgcmF3dGFnO1xuICAgICAgICAgICAgbWFya2Rvd25NZXRhZGF0YS50YWcodGFnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vXG4gICAgLy8gTGlua3MgLy9cbiAgICAvLy8vLy8vLy8vL1xuXG4gICAgZm9yIChsZXQgbGlua2RlZiBvZiBtZXRhZGF0YS5saW5rcyA/PyBbXSkge1xuICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihsaW5rZGVmLmxpbmspO1xuICAgICAgICBjb25zdCBsaW5lID0gbGlua2RlZi5wb3NpdGlvbi5zdGFydC5saW5lO1xuICAgICAgICBtYXJrZG93bk1ldGFkYXRhLmxpbmsobGluayk7XG5cbiAgICAgICAgbG9va3VwKGxpbmUsIHNlY3Rpb25zKT8ubWV0YWRhdGEubGluayhsaW5rKTtcbiAgICAgICAgbG9va3VwKGxpbmUsIGJsb2Nrcyk/Lm1ldGFkYXRhLmxpbmsobGluayk7XG4gICAgICAgIGxvb2t1cChsaW5lLCBsaXN0SXRlbXMpPy5tZXRhZGF0YS5saW5rKGxpbmspO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRnJvbnRtYXR0ZXIgTGlua3MgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLy8gRnJvbnRtYXR0ZXIgbGlua3MgYXJlIG9ubHkgYXNzaWduZWQgdG8gdGhlIHBhZ2UuXG4gICAgZm9yIChjb25zdCBsaW5rZGVmIG9mIG1ldGFkYXRhLmZyb250bWF0dGVyTGlua3MgPz8gW10pIHtcbiAgICAgICAgbWFya2Rvd25NZXRhZGF0YS5saW5rKExpbmsuaW5mZXIobGlua2RlZi5saW5rLCBmYWxzZSwgbGlua2RlZi5kaXNwbGF5VGV4dCkpO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJbmxpbmUgRmllbGRzIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBpdGVyYXRlSW5saW5lRmllbGRzKGxpbmVzKSkge1xuICAgICAgICBjb25zdCBsaW5lID0gZmllbGQucG9zaXRpb24ubGluZTtcbiAgICAgICAgbWFya2Rvd25NZXRhZGF0YS5pbmxpbmVGaWVsZChmaWVsZCk7XG5cbiAgICAgICAgbG9va3VwKGxpbmUsIHNlY3Rpb25zKT8ubWV0YWRhdGEuaW5saW5lRmllbGQoZmllbGQpO1xuICAgICAgICBsb29rdXAobGluZSwgYmxvY2tzKT8ubWV0YWRhdGEuaW5saW5lRmllbGQoZmllbGQpO1xuICAgICAgICBsb29rdXAobGluZSwgbGlzdEl0ZW1zKT8ubWV0YWRhdGEuaW5saW5lRmllbGQoZmllbGQpO1xuICAgIH1cbiAgICBzZWN0aW9uQXJyYXkucHVzaCguLi5zZWN0aW9ucy52YWx1ZXMoKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZXMsXG4gICAgICAgIGZyb250bWF0dGVyLFxuICAgICAgICBtZXRhZGF0YTogbWFya2Rvd25NZXRhZGF0YSxcbiAgICAgICAgc2VjdGlvbnM6IHNlY3Rpb25BcnJheSxcbiAgICB9O1xufVxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQYXJzaW5nIEFpZHMgLy9cbi8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKiogQ2hlY2sgaWYgdGhlIGdpdmVuIGxpbmUgcmFuZ2UgaXMgYWxsIGVtcHR5LiBTdGFydCBpcyBpbmNsdXNpdmUsIGVuZCBleGNsdXNpdmUuICovXG5mdW5jdGlvbiBlbXB0eWxpbmVzKGxpbmVzOiBzdHJpbmdbXSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0OyBpbmRleCA8IGVuZDsgaW5kZXgrKykge1xuICAgICAgICBpZiAobGluZXNbaW5kZXhdLnRyaW0oKSAhPT0gXCJcIikgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFlpZWxkcyBhbGwgaW5saW5lIGZpZWxkcyBmb3VuZCBpbiB0aGUgZG9jdW1lbnQgYnkgdHJhdmVyc2luZyBsaW5lIGJ5IGxpbmUgdGhyb3VnaCB0aGUgZG9jdW1lbnQuIFBlcmZvcm1zIHNvbWUgb3B0aW1pemF0aW9uc1xuICogdG8gc2tpcCBleHRyYS1sYXJnZSBsaW5lcywgYW5kIGNhbiBiZSBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyYXRlSW5saW5lRmllbGRzKGNvbnRlbnQ6IHN0cmluZ1tdKTogR2VuZXJhdG9yPElubGluZUZpZWxkPiB7XG4gICAgZm9yIChsZXQgbGluZW5vID0gMDsgbGluZW5vIDwgY29udGVudC5sZW5ndGg7IGxpbmVubysrKSB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBjb250ZW50W2xpbmVub107XG5cbiAgICAgICAgLy8gRmFzdC1iYWlsb3V0IGZvciBsaW5lcyB0aGF0IGFyZSB0b28gbG9uZyBvciBkbyBub3QgY29udGFpbiAnOjonLlxuICAgICAgICBpZiAobGluZS5sZW5ndGggPiAzMjc2OCB8fCAhbGluZS5pbmNsdWRlcyhcIjo6XCIpKSBjb250aW51ZTtcblxuICAgICAgICAvLyBUT0RPOiBSZS1hZGQgc3VwcG9ydCBmb3IgdGhvc2UgY3VzdG9tIGVtb2ppIGZpZWxkcyBvbiB0YXNrcyBhbmQgc2ltaWxhci5cbiAgICAgICAgbGV0IGlubGluZUZpZWxkcyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZSk7XG4gICAgICAgIGlmIChpbmxpbmVGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaWZpZWxkIG9mIGlubGluZUZpZWxkcykgeWllbGQgYXNJbmxpbmVGaWVsZChpZmllbGQsIGxpbmVubyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZnVsbExpbmUgPSBleHRyYWN0RnVsbExpbmVGaWVsZChsaW5lKTtcbiAgICAgICAgICAgIGlmIChmdWxsTGluZSkgeWllbGQgYXNJbmxpbmVGaWVsZChmdWxsTGluZSwgbGluZW5vKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIFRvcC1sZXZlbCBmdW5jdGlvbiB3aGljaCBtYXBzIGEgWUFNTCBibG9jayAtIGluY2x1ZGluZyBmcm9udG1hdHRlciAtIGludG8gZnJvbnRtYXR0ZXIgZW50cmllcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZyb250bWF0dGVyQmxvY2soYmxvY2s6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT4ge1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYmxvY2spKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYmxvY2tba2V5XTtcblxuICAgICAgICByZXN1bHRba2V5LnRvTG93ZXJDYXNlKCldID0ge1xuICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICB2YWx1ZTogSnNvbkNvbnZlcnNpb24uanNvbihZYW1sQ29udmVyc2lvbi5saXRlcmFsKHZhbHVlKSksXG4gICAgICAgICAgICByYXc6IHZhbHVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBGaW5kcyBhbiBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHRoZSBnaXZlbiBsaW5lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cDxUIGV4dGVuZHMgeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9PihsaW5lOiBudW1iZXIsIHRyZWU6IEJUcmVlPG51bWJlciwgVD4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0YXJnZXQgPSB0cmVlLmdldFBhaXJPck5leHRMb3dlcihsaW5lKT8uWzFdO1xuICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmVuZCA+PSBsaW5lKSByZXR1cm4gdGFyZ2V0O1xuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIEV4dHJhY3QgdGFncyBpbnRlbGxpZ2VudGx5IGZyb20gZnJvbnRtYXR0ZXIuIEhhbmRsZXMgYXJyYXlzLCBudW1iZXJzLCBhbmQgc3RyaW5ncy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VGFncyhtZXRhZGF0YTogRnJvbnRNYXR0ZXJDYWNoZSk6IHN0cmluZ1tdIHtcbiAgICBsZXQgdGFnS2V5cyA9IE9iamVjdC5rZXlzKG1ldGFkYXRhKS5maWx0ZXIoKHQpID0+IHQudG9Mb3dlckNhc2UoKSA9PSBcInRhZ3NcIiB8fCB0LnRvTG93ZXJDYXNlKCkgPT0gXCJ0YWdcIik7XG5cbiAgICByZXR1cm4gdGFnS2V5c1xuICAgICAgICAubWFwKChrKSA9PiBzcGxpdEZyb250bWF0dGVyVGFnT3JBbGlhcyhtZXRhZGF0YVtrXSwgL1ssXFxzXSsvKSlcbiAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gcC5jb25jYXQoYyksIFtdKVxuICAgICAgICAubWFwKChzdHIpID0+IChzdHIuc3RhcnRzV2l0aChcIiNcIikgPyBzdHIgOiBcIiNcIiArIHN0cikpO1xufVxuXG4vKiogU3BsaXQgYSBmcm9udG1hdHRlciBsaXN0IGludG8gc2VwYXJhdGUgZWxlbWVudHM7IGhhbmRsZXMgYWN0dWFsIGxpc3RzLCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMsIGFuZCBzaW5nbGUgZWxlbWVudHMuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMoZGF0YTogYW55LCBvbjogUmVnRXhwKTogc3RyaW5nW10ge1xuICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YSA9PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgLmZpbHRlcigocykgPT4gISFzKVxuICAgICAgICAgICAgLm1hcCgocykgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMocywgb24pKVxuICAgICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gcC5jb25jYXQoYyksIFtdKTtcbiAgICB9XG5cbiAgICAvLyBGb3JjZSB0byBhIHN0cmluZyB0byBoYW5kbGUgbnVtYmVycyBhbmQgc28gb24uXG4gICAgcmV0dXJuIChcIlwiICsgZGF0YSlcbiAgICAgICAgLnNwbGl0KG9uKVxuICAgICAgICAuZmlsdGVyKCh0KSA9PiAhIXQpXG4gICAgICAgIC5tYXAoKHQpID0+IHQudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKCh0KSA9PiB0Lmxlbmd0aCA+IDApO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnVpbGRlciBVdGlsaXRpZXMgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKiBDb252aWVuZW50IHNoYXJlZCB1dGlsaXR5IGZvciB0cmFja2luZyBtZXRhZGF0YSAtIGxpbmtzLCB0YWdzLCBhbmQgc28gb24uICovXG5leHBvcnQgY2xhc3MgTWV0YWRhdGEge1xuICAgIHB1YmxpYyB0YWdzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICBwdWJsaWMgbGlua3M6IExpbmtbXSA9IFtdO1xuICAgIHB1YmxpYyBpbmxpbmVGaWVsZHM6IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPiA9IHt9O1xuXG4gICAgLyoqIEFkZCBhIHRhZyB0byB0aGUgbWV0YWRhdGEuICovXG4gICAgcHVibGljIHRhZyh0YWc6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKHRhZyk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhIGxpbmsgdG8gdGhlIG1ldGFkYXRhLiAqL1xuICAgIHB1YmxpYyBsaW5rKGxpbms6IExpbmspIHtcbiAgICAgICAgaWYgKHRoaXMubGlua3MuZmluZCgodikgPT4gdi5lcXVhbHMobGluaykpKSByZXR1cm47XG4gICAgICAgIHRoaXMubGlua3MucHVzaChsaW5rKTtcbiAgICB9XG5cbiAgICAvKiogQWRkIGFuIGlubGluZSBmaWVsZCB0byB0aGUgbWV0YWRhdGEuICovXG4gICAgcHVibGljIGlubGluZUZpZWxkKGZpZWxkOiBJbmxpbmVGaWVsZCkge1xuICAgICAgICBjb25zdCBsb3dlciA9IGZpZWxkLmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5pbmxpbmVGaWVsZHMpLnNvbWUoKGtleSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT0gbG93ZXIpKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pbmxpbmVGaWVsZHNbbG93ZXJdID0gZmllbGQ7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIGxpc3Qgb2YgdW5pcXVlIGFkZGVkIHRhZ3MuICovXG4gICAgcHVibGljIGZpbmlzaFRhZ3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhZ3MpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBsaXN0IG9mIEpTT04tc2VyaWFsaXplZCBsaW5rcy4gKi9cbiAgICBwdWJsaWMgZmluaXNoTGlua3MoKTogSnNvbkxpbmtbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzLm1hcCgobGluaykgPT4gbGluay50b09iamVjdCgpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIGEgbGlzdCBvZiBKU09OLXNlcmlhbGl6ZWQgaW5saW5lIGZpZWxkcy4gKi9cbiAgICBwdWJsaWMgZmluaXNoSW5saW5lRmllbGRzKCk6IFJlY29yZDxzdHJpbmcsIEpzb25JbmxpbmVGaWVsZD4ge1xuICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKHRoaXMuaW5saW5lRmllbGRzLCBqc29uSW5saW5lRmllbGQpO1xuICAgIH1cbn1cblxuLyoqIENvbnZpZW5lbnQgdXRpbGl0eSBmb3IgY29uc3RydWN0aW5nIHBhZ2Ugb2JqZWN0cy4gKi9cbmV4cG9ydCBjbGFzcyBQYWdlRGF0YSB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcGF0aDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgc3RhdHM6IEZpbGVTdGF0cyxcbiAgICAgICAgcHVibGljIGxlbmd0aDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhLFxuICAgICAgICBwdWJsaWMgc2VjdGlvbnM6IFNlY3Rpb25EYXRhW10sXG4gICAgICAgIHB1YmxpYyBmcm9udG1hdHRlcj86IFJlY29yZDxzdHJpbmcsIEpzb25Gcm9udG1hdHRlckVudHJ5PlxuICAgICkge31cblxuICAgIHB1YmxpYyBidWlsZCgpOiBKc29uTWFya2Rvd25QYWdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgICAgICAkY3RpbWU6IHRoaXMuc3RhdHMuY3RpbWUsXG4gICAgICAgICAgICAkbXRpbWU6IHRoaXMuc3RhdHMubXRpbWUsXG4gICAgICAgICAgICAkc2l6ZTogdGhpcy5zdGF0cy5zaXplLFxuICAgICAgICAgICAgJGV4dGVuc2lvbjogZ2V0RXh0ZW5zaW9uKHRoaXMucGF0aCksXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IDAsIGVuZDogdGhpcy5sZW5ndGggfSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJGluZmllbGRzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLFxuICAgICAgICAgICAgJHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLm1hcCgoeCkgPT4geC5idWlsZCgpKSxcbiAgICAgICAgICAgICRmcm9udG1hdHRlcjogdGhpcy5mcm9udG1hdHRlcixcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKiBDb252aWVuZW50IHV0aWxpdHkgZm9yIGNvbnN0cnVjdGluZyBtYXJrZG93biBzZWN0aW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBTZWN0aW9uRGF0YSB7XG4gICAgcHVibGljIGJsb2NrczogQmxvY2tEYXRhW10gPSBbXTtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgbGV2ZWw6IG51bWJlcixcbiAgICAgICAgcHVibGljIG9yZGluYWw6IG51bWJlclxuICAgICkge31cblxuICAgIHB1YmxpYyBibG9jayhibG9jazogQmxvY2tEYXRhKSB7XG4gICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZCgpOiBKc29uTWFya2Rvd25TZWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICR0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgICAgICAgICRvcmRpbmFsOiB0aGlzLm9yZGluYWwsXG4gICAgICAgICAgICAkbGV2ZWw6IHRoaXMubGV2ZWwsXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogeyBzdGFydDogdGhpcy5zdGFydCwgZW5kOiB0aGlzLmVuZCB9LFxuICAgICAgICAgICAgJGJsb2NrczogdGhpcy5ibG9ja3MubWFwKChibG9jaykgPT4gYmxvY2suYnVpbGQoKSksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQ29uc3RydWN0cyBtYXJrZG93biBsaXN0IGJsb2NrcyBzcGVjaWZpY2FsbHkuICovXG5leHBvcnQgY2xhc3MgTGlzdEJsb2NrRGF0YSB7XG4gICAgcHVibGljIHR5cGU6IHN0cmluZyA9IFwibGlzdFwiO1xuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICBwdWJsaWMgaXRlbXM6IExpc3RJdGVtRGF0YVtdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBudW1iZXIsIHB1YmxpYyBlbmQ6IG51bWJlciwgcHVibGljIG9yZGluYWw6IG51bWJlciwgcHVibGljIGJsb2NrSWQ/OiBzdHJpbmcpIHt9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbk1hcmtkb3duTGlzdEJsb2NrIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRvcmRpbmFsOiB0aGlzLm9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJHR5cGU6IFwibGlzdFwiLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuYmxvY2tJZCxcbiAgICAgICAgICAgICRlbGVtZW50czogdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYnVpbGQoKSksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQ29uc3RydWN0cyBtYXJrZG93biBjb2RlYmxvY2tzIHNwZWNpZmljYWxseS4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlYmxvY2tEYXRhIHtcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nID0gXCJjb2RlYmxvY2tcIjtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBvcmRpbmFsOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBsYW5ndWFnZXM6IHN0cmluZ1tdLFxuICAgICAgICBwdWJsaWMgc3R5bGU6IFwiaW5kZW50XCIgfCBcImZlbmNlZFwiLFxuICAgICAgICBwdWJsaWMgY29udGVudFN0YXJ0OiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBjb250ZW50RW5kOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBibG9ja0lkPzogc3RyaW5nXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25NYXJrZG93bkNvZGVibG9jayB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkdHlwZTogXCJjb2RlYmxvY2tcIixcbiAgICAgICAgICAgICRvcmRpbmFsOiB0aGlzLm9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuYmxvY2tJZCxcbiAgICAgICAgICAgICRsYW5ndWFnZXM6IHRoaXMubGFuZ3VhZ2VzLFxuICAgICAgICAgICAgJHN0eWxlOiB0aGlzLnN0eWxlLFxuICAgICAgICAgICAgJGNvbnRlbnRQb3NpdGlvbjogeyBzdGFydDogdGhpcy5jb250ZW50U3RhcnQsIGVuZDogdGhpcy5jb250ZW50RW5kIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQ29uc3RydWN0cyBtYXJrZG93biBkYXRhYmxvY2tzIHNwZWNpZmljYWxseS4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhYmxvY2tEYXRhIHtcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nID0gXCJkYXRhYmxvY2tcIjtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBvcmRpbmFsOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT4sXG4gICAgICAgIHB1YmxpYyBibG9ja0lkPzogc3RyaW5nXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25NYXJrZG93bkRhdGFibG9jayB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkdHlwZTogXCJkYXRhYmxvY2tcIixcbiAgICAgICAgICAgICRvcmRpbmFsOiB0aGlzLm9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuYmxvY2tJZCxcbiAgICAgICAgICAgICRkYXRhOiB0aGlzLmRhdGEsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQmFzZSBibG9jayBtZXRhZGF0YSB1c2VkIGZvciBub24tc3BlY2lmaWMgYmxvY2tzLiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VCbG9ja0RhdGEge1xuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHN0YXJ0OiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBlbmQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIG9yZGluYWw6IG51bWJlcixcbiAgICAgICAgcHVibGljIHR5cGU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGJsb2NrSWQ/OiBzdHJpbmdcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbk1hcmtkb3duQmxvY2sge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgICRvcmRpbmFsOiB0aGlzLm9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuYmxvY2tJZCxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIEJsb2NrRGF0YSA9IExpc3RCbG9ja0RhdGEgfCBDb2RlYmxvY2tEYXRhIHwgRGF0YWJsb2NrRGF0YSB8IEJhc2VCbG9ja0RhdGE7XG5cbi8qKiBVdGlsaXR5IGZvciBjb25zdHJ1Y3RpbmcgbWFya2Rvd24gbGlzdCBpdGVtcy4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0SXRlbURhdGEge1xuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICBwdWJsaWMgZWxlbWVudHM6IExpc3RJdGVtRGF0YVtdID0gW107XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIGVuZDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgcGFyZW50TGluZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgc3ltYm9sPzogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgYmxvY2tJZD86IHN0cmluZyxcbiAgICAgICAgcHVibGljIHN0YXR1cz86IHN0cmluZyxcbiAgICAgICAgcHVibGljIHRleHQ/OiBzdHJpbmdcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbk1hcmtkb3duTGlzdEl0ZW0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJHBhcmVudExpbmU6IHRoaXMucGFyZW50TGluZSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogeyBzdGFydDogdGhpcy5zdGFydCwgZW5kOiB0aGlzLmVuZCB9LFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuYmxvY2tJZCxcbiAgICAgICAgICAgICRlbGVtZW50czogdGhpcy5lbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQuYnVpbGQoKSksXG4gICAgICAgICAgICAkdHlwZTogdGhpcy5zdGF0dXMgPyBcInRhc2tcIiA6IFwibGlzdFwiLFxuICAgICAgICAgICAgJGluZmllbGRzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksXG4gICAgICAgICAgICAkc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgICAgICAgICRzeW1ib2w6IHRoaXMuc3ltYm9sLFxuICAgICAgICAgICAgJHRleHQ6IHRoaXMudGV4dCxcbiAgICAgICAgfSBhcyBKc29uTWFya2Rvd25UYXNrSXRlbTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0ICogYXMgUCBmcm9tIFwicGFyc2ltbW9uXCI7XG5pbXBvcnQge1xuICAgIEJpbmFyeU9wLFxuICAgIEV4cHJlc3Npb24sXG4gICAgRXhwcmVzc2lvbnMsXG4gICAgTGFtYmRhRXhwcmVzc2lvbixcbiAgICBMaXN0RXhwcmVzc2lvbixcbiAgICBMaXRlcmFsRXhwcmVzc2lvbixcbiAgICBPYmplY3RFeHByZXNzaW9uLFxuICAgIFZhcmlhYmxlRXhwcmVzc2lvbixcbn0gZnJvbSBcIi4vZXhwcmVzc2lvblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQge1xuICAgIEluZGV4Q2hpbGRPZixcbiAgICBJbmRleFBhdGgsXG4gICAgSW5kZXhJZCxcbiAgICBJbmRleE5vdCxcbiAgICBJbmRleFBhcmVudE9mLFxuICAgIEluZGV4UXVlcnksXG4gICAgSW5kZXhUYWdnZWQsXG4gICAgSW5kZXhUeXBlZCxcbiAgICBJbmRleExpbmtlZCxcbiAgICBJbmRleEZpZWxkLFxuICAgIEluZGV4RXhwcmVzc2lvbixcbn0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4LXF1ZXJ5XCI7XG5pbXBvcnQgeyBub3JtYWxpemVEdXJhdGlvbiB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQYXJzaW5nIFByaW1pdGl2ZXMgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKiogUHJpbWl0aXZlIHBhcnNpbmcgZm9yIGNvbW1vbmx5IHNlZW4gdHlwZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW1pdGl2ZXNMYW5ndWFnZSB7XG4gICAgbnVtYmVyOiBudW1iZXI7XG4gICAgc3RyaW5nOiBzdHJpbmc7XG4gICAgZXNjYXBlQ2hhcmFjdGVyOiBzdHJpbmc7XG4gICAgYm9vbDogYm9vbGVhbjtcbiAgICB0YWc6IHN0cmluZztcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgbGluazogTGluaztcbiAgICBlbWJlZExpbms6IExpbms7XG4gICAgcm9vdERhdGU6IERhdGVUaW1lO1xuICAgIGRhdGVTaG9ydGhhbmQ6IGtleW9mIHR5cGVvZiBEQVRFX1NIT1JUSEFORFM7XG4gICAgZGF0ZTogRGF0ZVRpbWU7XG4gICAgZGF0ZVBsdXM6IERhdGVUaW1lO1xuICAgIGR1cmF0aW9uVHlwZToga2V5b2YgdHlwZW9mIERVUkFUSU9OX1RZUEVTO1xuICAgIGR1cmF0aW9uOiBEdXJhdGlvbjtcbiAgICByYXdOdWxsOiBzdHJpbmc7XG5cbiAgICBiaW5hcnlQbHVzTWludXM6IEJpbmFyeU9wO1xuICAgIGJpbmFyeU11bERpdjogQmluYXJ5T3A7XG4gICAgYmluYXJ5Q29tcGFyZU9wOiBCaW5hcnlPcDtcbiAgICBiaW5hcnlBbmRPcDogQmluYXJ5T3A7XG4gICAgYmluYXJ5T3JPcDogQmluYXJ5T3A7XG5cbiAgICAvLyBMaXRlcmFsIGZpZWxkIHBhcnNpbmcgZm9yIGluZ2VzdGluZyBpbmxpbmUgZmllbGRzIGFuZCBmcm9udG1hdHRlci5cbiAgICBhdG9tSW5saW5lRmllbGQ6IExpdGVyYWw7XG4gICAgaW5saW5lRmllbGRMaXN0OiBMaXRlcmFsW107XG4gICAgaW5saW5lRmllbGQ6IExpdGVyYWw7XG59XG5cbi8qKiBJbXBsZW1lbnRhdGlvbnMgZm9yIG1hbnkgcHJpbWl0aXZlcy4gKi9cbmV4cG9ydCBjb25zdCBQUklNSVRJVkVTID0gUC5jcmVhdGVMYW5ndWFnZTxQcmltaXRpdmVzTGFuZ3VhZ2U+KHtcbiAgICBudW1iZXI6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvLT9bMC05XSsoXFwuWzAtOV0rKT8vKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBOdW1iZXIucGFyc2VGbG9hdChzdHIpKVxuICAgICAgICAgICAgLmRlc2MoXCJudW1iZXJcIiksXG5cbiAgICAvLyBBIHF1b3RlLXN1cnJvdW5kZWQgc3RyaW5nIHdoaWNoIHN1cHBvcnRzIGVzY2FwZSBjaGFyYWN0ZXJzICgnXFwnKS5cbiAgICBzdHJpbmc6IChxKSA9PlxuICAgICAgICBQLnN0cmluZygnXCInKVxuICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgUC5hbHQocS5lc2NhcGVDaGFyYWN0ZXIsIFAubm9uZU9mKCdcIlxcXFwnKSlcbiAgICAgICAgICAgICAgICAgICAgLmF0TGVhc3QoMClcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoY2hhcnMpID0+IGNoYXJzLmpvaW4oXCJcIikpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc2tpcChQLnN0cmluZygnXCInKSlcbiAgICAgICAgICAgIC5kZXNjKFwic3RyaW5nXCIpLFxuXG4gICAgZXNjYXBlQ2hhcmFjdGVyOiAoXykgPT5cbiAgICAgICAgUC5zdHJpbmcoXCJcXFxcXCIpXG4gICAgICAgICAgICAudGhlbihQLmFueSlcbiAgICAgICAgICAgIC5tYXAoKGVzY2FwZWQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgZXNjYXBpbmcgYSBiYWNrc2xhc2ggb3IgYSBxdW90ZSwgcGFzcyBpbiBvbiBpbiBlc2NhcGVkIGZvcm1cbiAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZCA9PT0gJ1wiJykgcmV0dXJuICdcIic7XG4gICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT09IFwiXFxcXFwiKSByZXR1cm4gXCJcXFxcXCI7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gXCJcXFxcXCIgKyBlc2NhcGVkO1xuICAgICAgICAgICAgfSksXG5cbiAgICAvLyBBIGJvb2xlYW4gdHJ1ZS9mYWxzZSB2YWx1ZS5cbiAgICBib29sOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL3RydWV8ZmFsc2V8VHJ1ZXxGYWxzZS8pXG4gICAgICAgICAgICAubWFwKChzdHIpID0+IHN0ci50b0xvd2VyQ2FzZSgpID09IFwidHJ1ZVwiKVxuICAgICAgICAgICAgLmRlc2MoXCJib29sZWFuXCIpLFxuXG4gICAgLy8gQSB0YWcgb2YgdGhlIGZvcm0gJyNzdHVmZi9oZWxsby10aGVyZScuXG4gICAgdGFnOiAoXykgPT5cbiAgICAgICAgUC5zZXFNYXAoXG4gICAgICAgICAgICBQLnN0cmluZyhcIiNcIiksXG4gICAgICAgICAgICBQLmFsdChQLnJlZ2V4cCgvW15cXHUyMDAwLVxcdTIwNkZcXHUyRTAwLVxcdTJFN0YnIVwiIyQlJigpKissLjo7PD0+P0BeYHt8fX5cXFtcXF1cXFxcXFxzXS8pLmRlc2MoXCJ0ZXh0XCIpKS5tYW55KCksXG4gICAgICAgICAgICAoc3RhcnQsIHJlc3QpID0+IHN0YXJ0ICsgcmVzdC5qb2luKFwiXCIpXG4gICAgICAgICkuZGVzYyhcInRhZ1wiKSxcblxuICAgIC8vIEEgdmFyaWFibGUgaWRlbnRpZmllciwgd2hpY2ggaXMgYWxwaGFudW1lcmljIGFuZCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IuLi4gZW1vamkuXG4gICAgaWRlbnRpZmllcjogKF8pID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5hbHQoUC5yZWdleHAoL1tcXHB7TGV0dGVyfSRdL3UpLCBQLnJlZ2V4cChFTU9KSV9SRUdFWCkuZGVzYyhcInRleHRcIikpLFxuICAgICAgICAgICAgUC5hbHQoUC5yZWdleHAoL1swLTlcXHB7TGV0dGVyfSRfLV0vdSksIFAucmVnZXhwKEVNT0pJX1JFR0VYKS5kZXNjKFwidGV4dFwiKSkubWFueSgpLFxuICAgICAgICAgICAgKGZpcnN0LCByZXN0KSA9PiBmaXJzdCArIHJlc3Quam9pbihcIlwiKVxuICAgICAgICApLmRlc2MoXCJ2YXJpYWJsZVwiKSxcblxuICAgIC8vIEFuIE9ic2lkaWFuIGxpbmsgb2YgdGhlIGZvcm0gW1s8bGluaz5dXS5cbiAgICBsaW5rOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL1xcW1xcWyhbXlxcW1xcXV0qPylcXF1cXF0vdSwgMSlcbiAgICAgICAgICAgIC5tYXAoKGxpbmtJbm5lcikgPT4gTGluay5wYXJzZUlubmVyKGxpbmtJbm5lcikpXG4gICAgICAgICAgICAuZGVzYyhcImZpbGUgbGlua1wiKSxcblxuICAgIC8vIEFuIGVtYmVkZGFibGUgbGluayB3aGljaCBjYW4gc3RhcnQgd2l0aCAnIScuIFRoaXMgb3ZlcmxhcHMgd2l0aCB0aGUgbm9ybWFsIG5lZ2F0aW9uIG9wZXJhdG9yLCBzbyBpdCBpcyBvbmx5XG4gICAgLy8gcHJvdmlkZWQgZm9yIG1ldGFkYXRhIHBhcnNpbmcuXG4gICAgZW1iZWRMaW5rOiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCIhXCIpLmF0TW9zdCgxKSwgcS5saW5rLCAocCwgbCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAubGVuZ3RoID4gMCkgbC5lbWJlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gbDtcbiAgICAgICAgfSkuZGVzYyhcImZpbGUgbGlua1wiKSxcblxuICAgIC8vIEJpbmFyeSBwbHVzIG9yIG1pbnVzIG9wZXJhdG9yLlxuICAgIGJpbmFyeVBsdXNNaW51czogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXCt8LS8pXG4gICAgICAgICAgICAubWFwKChzdHIpID0+IHN0ciBhcyBCaW5hcnlPcClcbiAgICAgICAgICAgIC5kZXNjKFwiJysnIG9yICctJ1wiKSxcblxuICAgIC8vIEJpbmFyeSB0aW1lcyBvciBkaXZpZGUgb3BlcmF0b3IuXG4gICAgYmluYXJ5TXVsRGl2OiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL1xcKnxcXC98JS8pXG4gICAgICAgICAgICAubWFwKChzdHIpID0+IHN0ciBhcyBCaW5hcnlPcClcbiAgICAgICAgICAgIC5kZXNjKFwiJyonIG9yICcvJyBvciAnJSdcIiksXG5cbiAgICAvLyBCaW5hcnkgY29tcGFyaXNvbiBvcGVyYXRvci5cbiAgICBiaW5hcnlDb21wYXJlT3A6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvPj18PD18IT18Pnw8fD0vKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIic+PScgb3IgJzw9JyBvciAnIT0nIG9yICc9JyBvciAnPicgb3IgJzwnXCIpLFxuXG4gICAgLy8gQmluYXJ5IGJvb2xlYW4gY29tYmluYXRpb24gb3BlcmF0b3IuXG4gICAgYmluYXJ5QW5kT3A6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvYW5kfCYvaSlcbiAgICAgICAgICAgIC5tYXAoKF9zdHIpID0+IFwiJlwiIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInYW5kJ1wiKSxcbiAgICBiaW5hcnlPck9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL29yfFxcfC9pKVxuICAgICAgICAgICAgLm1hcCgoX3N0cikgPT4gXCJ8XCIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIidvcidcIiksXG5cbiAgICAvLyBBIGRhdGUgd2hpY2ggY2FuIGJlIFlZWVktTU1bLUREVEhIOm1tOnNzXS5cbiAgICByb290RGF0ZTogKF8pID0+XG4gICAgICAgIFAuc2VxTWFwKFAucmVnZXhwKC9cXGR7NH0vKSwgUC5zdHJpbmcoXCItXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksICh5ZWFyLCBfLCBtb250aCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiBOdW1iZXIucGFyc2VJbnQoeWVhciksIG1vbnRoOiBOdW1iZXIucGFyc2VJbnQobW9udGgpIH0pO1xuICAgICAgICB9KS5kZXNjKFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXCIpLFxuICAgIGRhdGVTaG9ydGhhbmQ6IChfKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKERBVEVfU0hPUlRIQU5EUylcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aClcbiAgICAgICAgICAgICAgICAubWFwKFAuc3RyaW5nKVxuICAgICAgICApIGFzIFAuUGFyc2VyPGtleW9mIHR5cGVvZiBEQVRFX1NIT1JUSEFORFM+LFxuICAgIGRhdGU6IChxKSA9PlxuICAgICAgICBjaGFpbk9wdDxEYXRlVGltZT4oXG4gICAgICAgICAgICBxLnJvb3REYXRlLFxuICAgICAgICAgICAgKHltOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIi1cIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIGRheSkgPT4geW0uc2V0KHsgZGF5OiBOdW1iZXIucGFyc2VJbnQoZGF5KSB9KSksXG4gICAgICAgICAgICAoeW1kOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIlRcIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIGhvdXIpID0+IHltZC5zZXQoeyBob3VyOiBOdW1iZXIucGFyc2VJbnQoaG91cikgfSkpLFxuICAgICAgICAgICAgKHltZGg6IERhdGVUaW1lKSA9PlxuICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiOlwiKSwgUC5yZWdleHAoL1xcZHsyfS8pLCAoXywgbWludXRlKSA9PlxuICAgICAgICAgICAgICAgICAgICB5bWRoLnNldCh7IG1pbnV0ZTogTnVtYmVyLnBhcnNlSW50KG1pbnV0ZSkgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHltZGhtOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIjpcIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIHNlY29uZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgeW1kaG0uc2V0KHsgc2Vjb25kOiBOdW1iZXIucGFyc2VJbnQoc2Vjb25kKSB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoeW1kaG1zOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLmFsdChcbiAgICAgICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCIuXCIpLCBQLnJlZ2V4cCgvXFxkezN9LyksIChfLCBtaWxsaXNlY29uZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHltZGhtcy5zZXQoeyBtaWxsaXNlY29uZDogTnVtYmVyLnBhcnNlSW50KG1pbGxpc2Vjb25kKSB9KVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBQLnN1Y2NlZWQoeW1kaG1zKSAvLyBwYXNzXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChkdDogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiK1wiKS5vcihQLnN0cmluZyhcIi1cIikpLCBQLnJlZ2V4cCgvXFxkezEsMn0oOlxcZHsyfSk/LyksIChwbSwgaHIpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBkdC5zZXRab25lKFwiVVRDXCIgKyBwbSArIGhyLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCJaXCIpLCAoKSA9PiBkdC5zZXRab25lKFwidXRjXCIsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KSksXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiW1wiKSwgUC5yZWdleHAoL1swLTlBLVphLXorLVxcL10rL3UpLCBQLnN0cmluZyhcIl1cIiksIChfYSwgem9uZSwgX2IpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBkdC5zZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgICAuYXNzZXJ0KChkdDogRGF0ZVRpbWUpID0+IGR0LmlzVmFsaWQsIFwidmFsaWQgZGF0ZVwiKVxuICAgICAgICAgICAgLmRlc2MoXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU11cIiksXG5cbiAgICAvLyBBIGRhdGUsIHBsdXMgdmFyaW91cyBzaG9ydGhhbmQgdGltZXMgb2YgZGF5IGl0IGNvdWxkIGJlLlxuICAgIGRhdGVQbHVzOiAocSkgPT5cbiAgICAgICAgUC5hbHQ8RGF0ZVRpbWU+KFxuICAgICAgICAgICAgcS5kYXRlU2hvcnRoYW5kLm1hcCgoZCkgPT4gREFURV9TSE9SVEhBTkRTW2RdKCkpLFxuICAgICAgICAgICAgcS5kYXRlXG4gICAgICAgICkuZGVzYyhcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXSBvciBpbiBzaG9ydGhhbmRcIiksXG5cbiAgICAvLyBBIGR1cmF0aW9uIG9mIHRpbWUuXG4gICAgZHVyYXRpb25UeXBlOiAoXykgPT5cbiAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhEVVJBVElPTl9UWVBFUylcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aClcbiAgICAgICAgICAgICAgICAubWFwKFAuc3RyaW5nKVxuICAgICAgICApIGFzIFAuUGFyc2VyPGtleW9mIHR5cGVvZiBEVVJBVElPTl9UWVBFUz4sXG4gICAgZHVyYXRpb246IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChxLm51bWJlciwgUC5vcHRXaGl0ZXNwYWNlLCBxLmR1cmF0aW9uVHlwZSwgKGNvdW50LCBfLCB0KSA9PlxuICAgICAgICAgICAgRFVSQVRJT05fVFlQRVNbdF0ubWFwVW5pdHMoKHgpID0+IHggKiBjb3VudClcbiAgICAgICAgKVxuICAgICAgICAgICAgLnNlcEJ5MShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLm9yKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAubWFwKChkdXJhdGlvbnMpID0+IGR1cmF0aW9ucy5yZWR1Y2UoKHAsIGMpID0+IHAucGx1cyhjKSkpXG4gICAgICAgICAgICAuZGVzYyhcImR1cmF0aW9uIGxpa2UgNGhyMm1pblwiKSxcblxuICAgIC8vIEEgcmF3IG51bGwgdmFsdWUuXG4gICAgcmF3TnVsbDogKF8pID0+IFAuc3RyaW5nKFwibnVsbFwiKSxcblxuICAgIC8vIElubGluZSBmaWVsZCB2YWx1ZSBwYXJzaW5nLlxuICAgIGF0b21JbmxpbmVGaWVsZDogKHEpID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgcS5kYXRlLFxuICAgICAgICAgICAgcS5kdXJhdGlvbi5tYXAoKGQpID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGQpKSxcbiAgICAgICAgICAgIHEuc3RyaW5nLFxuICAgICAgICAgICAgcS50YWcsXG4gICAgICAgICAgICBxLmVtYmVkTGluayxcbiAgICAgICAgICAgIHEuYm9vbCxcbiAgICAgICAgICAgIHEubnVtYmVyLFxuICAgICAgICAgICAgcS5yYXdOdWxsXG4gICAgICAgICksXG4gICAgaW5saW5lRmllbGRMaXN0OiAocSkgPT4gcS5hdG9tSW5saW5lRmllbGQuc2VwQnkoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS5sb29rYWhlYWQocS5hdG9tSW5saW5lRmllbGQpKSxcbiAgICBpbmxpbmVGaWVsZDogKHEpID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgUC5zZXFNYXAocS5hdG9tSW5saW5lRmllbGQsIFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksIHEuaW5saW5lRmllbGRMaXN0LCAoZiwgX3MsIGwpID0+XG4gICAgICAgICAgICAgICAgW2ZdLmNvbmNhdChsKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHEuYXRvbUlubGluZUZpZWxkXG4gICAgICAgICksXG59KTtcblxuLyoqIEVtb2ppIHJlZ2V4LCBzdHJwcGluZyBhbnkgcmVnZXggZmxhZ3MgaXQgaGFzLiAqL1xuY29uc3QgRU1PSklfUkVHRVggPSBuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgXCJcIik7XG5cbi8qKiBQcm92aWRlcyBhIGxvb2t1cCB0YWJsZSBmb3IgdW5pdCBkdXJhdGlvbnMgb2YgdGhlIGdpdmVuIHR5cGUuICovXG5leHBvcnQgY29uc3QgRFVSQVRJT05fVFlQRVMgPSB7XG4gICAgeWVhcjogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLFxuICAgIHllYXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG4gICAgeXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSxcbiAgICB5cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSxcblxuICAgIG1vbnRoOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLFxuICAgIG1vbnRoczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSxcbiAgICBtbzogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSxcbiAgICBtb3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG5cbiAgICB3ZWVrOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG4gICAgd2Vla3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3azogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLFxuICAgIHdrczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLFxuICAgIHc6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcblxuICAgIGRheTogRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSksXG4gICAgZGF5czogRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSksXG4gICAgZDogRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEgfSksXG5cbiAgICBob3VyOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG4gICAgaG91cnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBocjogRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLFxuICAgIGhyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLFxuICAgIGg6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcblxuICAgIG1pbnV0ZTogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbWludXRlczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbWluOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSxcbiAgICBtaW5zOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSxcbiAgICBtOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogMSB9KSxcblxuICAgIHNlY29uZDogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgc2Vjb25kczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgc2VjOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSxcbiAgICBzZWNzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSxcbiAgICBzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgc2Vjb25kczogMSB9KSxcbn07XG5cbi8qKiBTaG9ydGhhbmQgZm9yIGNvbW1vbiBkYXRlcyAocmVsYXRpdmUgdG8gcmlnaHQgbm93KS4gKi9cbmV4cG9ydCBjb25zdCBEQVRFX1NIT1JUSEFORFMgPSB7XG4gICAgbm93OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLFxuICAgIHRvZGF5OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJkYXlcIiksXG4gICAgeWVzdGVyZGF5OiAoKSA9PlxuICAgICAgICBEYXRlVGltZS5sb2NhbCgpXG4gICAgICAgICAgICAuc3RhcnRPZihcImRheVwiKVxuICAgICAgICAgICAgLm1pbnVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pKSxcbiAgICB0b21vcnJvdzogKCkgPT5cbiAgICAgICAgRGF0ZVRpbWUubG9jYWwoKVxuICAgICAgICAgICAgLnN0YXJ0T2YoXCJkYXlcIilcbiAgICAgICAgICAgIC5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pKSxcbiAgICBzb3c6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcIndlZWtcIiksXG4gICAgXCJzdGFydC1vZi13ZWVrXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcIndlZWtcIiksXG4gICAgZW93OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwid2Vla1wiKSxcbiAgICBcImVuZC1vZi13ZWVrXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJ3ZWVrXCIpLFxuICAgIHNveTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwieWVhclwiKSxcbiAgICBcInN0YXJ0LW9mLXllYXJcIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwieWVhclwiKSxcbiAgICBlb3k6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJ5ZWFyXCIpLFxuICAgIFwiZW5kLW9mLXllYXJcIjogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZihcInllYXJcIiksXG4gICAgc29tOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJtb250aFwiKSxcbiAgICBcInN0YXJ0LW9mLW1vbnRoXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcIm1vbnRoXCIpLFxuICAgIGVvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZihcIm1vbnRoXCIpLFxuICAgIFwiZW5kLW9mLW1vbnRoXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJtb250aFwiKSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEV4cHJlc3Npb24gTGFuZ3VhZ2UgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgUG9zdGZpeEZyYWdtZW50ID1cbiAgICB8IHsgdHlwZTogXCJkb3RcIjsgZXhwcjogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogXCJpbmRleFwiOyBleHByOiBFeHByZXNzaW9uIH1cbiAgICB8IHsgdHlwZTogXCJmdW5jdGlvblwiOyBleHByczogRXhwcmVzc2lvbltdIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvbkxhbmd1YWdlIHtcbiAgICB2YXJpYWJsZTogVmFyaWFibGVFeHByZXNzaW9uO1xuICAgIG51bWJlcjogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgYm9vbDogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgc3RyaW5nOiBMaXRlcmFsRXhwcmVzc2lvbjtcbiAgICBkYXRlOiBMaXRlcmFsRXhwcmVzc2lvbjtcbiAgICBkdXJhdGlvbjogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgbGluazogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgbnVsbDogTGl0ZXJhbEV4cHJlc3Npb247XG5cbiAgICBsaXN0OiBMaXN0RXhwcmVzc2lvbjtcbiAgICBvYmplY3Q6IE9iamVjdEV4cHJlc3Npb247XG5cbiAgICBuZWdhdGVkOiBFeHByZXNzaW9uO1xuICAgIGF0b206IEV4cHJlc3Npb247XG4gICAgaW5kZXg6IEV4cHJlc3Npb247XG4gICAgbGFtYmRhOiBMYW1iZGFFeHByZXNzaW9uO1xuXG4gICAgLy8gUG9zdGZpeCBwYXJzZXJzIGZvciBmdW5jdGlvbiBjYWxscyAmIHRoZSBsaWtlLlxuICAgIGRvdFBvc3RmaXg6IFBvc3RmaXhGcmFnbWVudDtcbiAgICBpbmRleFBvc3RmaXg6IFBvc3RmaXhGcmFnbWVudDtcbiAgICBmdW5jdGlvblBvc3RmaXg6IFBvc3RmaXhGcmFnbWVudDtcblxuICAgIC8vIEJpbmFyeSBvcCBwYXJzZXJzLlxuICAgIGJpbmFyeU11bERpdjogRXhwcmVzc2lvbjtcbiAgICBiaW5hcnlQbHVzTWludXM6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5Q29tcGFyZTogRXhwcmVzc2lvbjtcbiAgICBiaW5hcnlCb29sZWFuOiBFeHByZXNzaW9uO1xuICAgIGJpbmFyeU9wOiBFeHByZXNzaW9uO1xuICAgIHBhcmVuczogRXhwcmVzc2lvbjtcbiAgICBleHByZXNzaW9uOiBFeHByZXNzaW9uO1xufVxuXG4vKipcbiAqIFBhcnNlIGZvciB0aGUgZGF0YWNvcmUgZXhwcmVzc2lvbiBsYW5ndWFnZSwgd2hpY2ggcHJvdmlkZXMgc2ltcGxlIGFuZCB2YWd1ZWx5IEpTLWxvb2tpbmcgY29tcHV0YXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OID0gUC5jcmVhdGVMYW5ndWFnZTxFeHByZXNzaW9uTGFuZ3VhZ2U+KHtcbiAgICAvLyBGaWVsZCBwYXJzaW5nLlxuICAgIHZhcmlhYmxlOiAoXykgPT4gUFJJTUlUSVZFUy5pZGVudGlmaWVyLm1hcChFeHByZXNzaW9ucy52YXJpYWJsZSkuZGVzYyhcInZhcmlhYmxlXCIpLFxuICAgIG51bWJlcjogKF8pID0+IFBSSU1JVElWRVMubnVtYmVyLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKS5kZXNjKFwibnVtYmVyXCIpLFxuICAgIHN0cmluZzogKF8pID0+IFBSSU1JVElWRVMuc3RyaW5nLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKS5kZXNjKFwic3RyaW5nXCIpLFxuICAgIGJvb2w6IChfKSA9PiBQUklNSVRJVkVTLmJvb2wubWFwKEV4cHJlc3Npb25zLmxpdGVyYWwpLmRlc2MoXCJib29sZWFuXCIpLFxuICAgIGRhdGU6IChfKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihcImRhdGVcIiwgUFJJTUlUSVZFUy5kYXRlUGx1cylcbiAgICAgICAgICAgIC5tYXAoKFtfZnVuYywgZGF0ZV0pID0+IEV4cHJlc3Npb25zLmxpdGVyYWwoZGF0ZSkpXG4gICAgICAgICAgICAuZGVzYyhcImRhdGVcIiksXG4gICAgZHVyYXRpb246IChfKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihcImR1clwiLCBQUklNSVRJVkVTLmR1cmF0aW9uKVxuICAgICAgICAgICAgLm1hcCgoW19mdW5jLCBkdXJdKSA9PiBFeHByZXNzaW9ucy5saXRlcmFsKGR1cikpXG4gICAgICAgICAgICAuZGVzYyhcImR1cmF0aW9uXCIpLFxuICAgIG51bGw6IChfKSA9PiBQUklNSVRJVkVTLnJhd051bGwubWFwKChfKSA9PiBFeHByZXNzaW9ucy5OVUxMKSxcbiAgICBsaW5rOiAoXykgPT4gUFJJTUlUSVZFUy5saW5rLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKSxcbiAgICBsaXN0OiAocSkgPT5cbiAgICAgICAgcS5leHByZXNzaW9uXG4gICAgICAgICAgICAuc2VwQnkoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKSlcbiAgICAgICAgICAgIC53cmFwKFAuc3RyaW5nKFwiW1wiKS5za2lwKFAub3B0V2hpdGVzcGFjZSksIFAub3B0V2hpdGVzcGFjZS50aGVuKFAuc3RyaW5nKFwiXVwiKSkpXG4gICAgICAgICAgICAubWFwKChsKSA9PiBFeHByZXNzaW9ucy5saXN0KGwpKVxuICAgICAgICAgICAgLmRlc2MoXCJsaXN0XCIpLFxuICAgIG9iamVjdDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUFJJTUlUSVZFUy5pZGVudGlmaWVyLm9yKFBSSU1JVElWRVMuc3RyaW5nKSxcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiOlwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksXG4gICAgICAgICAgICBxLmV4cHJlc3Npb24sXG4gICAgICAgICAgICAobmFtZSwgX3NlcCwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgICAgICAuc2VwQnkoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKSlcbiAgICAgICAgICAgIC53cmFwKFAuc3RyaW5nKFwie1wiKS5za2lwKFAub3B0V2hpdGVzcGFjZSksIFAub3B0V2hpdGVzcGFjZS50aGVuKFAuc3RyaW5nKFwifVwiKSkpXG4gICAgICAgICAgICAubWFwKCh2YWxzKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlczogUmVjb3JkPHN0cmluZywgRXhwcmVzc2lvbj4gPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBlbnRyeSBvZiB2YWxzKSByZXNbZW50cnkubmFtZV0gPSBlbnRyeS52YWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gRXhwcmVzc2lvbnMub2JqZWN0KHJlcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmRlc2MoXCJvYmplY3QgKCd7IGE6IDEsIGI6IDIgfScpXCIpLFxuXG4gICAgYXRvbTogKHEpID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgLy8gUGxhY2UgZW1iZWQgbGlua3MgYWJvdmUgbmVnYXRlZCBmaWVsZHMgYXMgdGhleSBhcmUgdGhlIHNwZWNpYWwgcGFyc2VyIGNhc2UgJyFbW3RoaW5nXV0nIGFuZCBhcmUgZ2VuZXJhbGx5IHVuYW1iaWdpb3VzLlxuICAgICAgICAgICAgUFJJTUlUSVZFUy5lbWJlZExpbmsubWFwKChsKSA9PiBFeHByZXNzaW9ucy5saXRlcmFsKGwpKSxcbiAgICAgICAgICAgIHEubmVnYXRlZCxcbiAgICAgICAgICAgIHEubGluayxcbiAgICAgICAgICAgIHEubGlzdCxcbiAgICAgICAgICAgIHEub2JqZWN0LFxuICAgICAgICAgICAgcS5sYW1iZGEsXG4gICAgICAgICAgICBxLnBhcmVucyxcbiAgICAgICAgICAgIHEuYm9vbCxcbiAgICAgICAgICAgIHEubnVtYmVyLFxuICAgICAgICAgICAgcS5zdHJpbmcsXG4gICAgICAgICAgICBxLmRhdGUsXG4gICAgICAgICAgICBxLmR1cmF0aW9uLFxuICAgICAgICAgICAgcS5udWxsLFxuICAgICAgICAgICAgcS52YXJpYWJsZVxuICAgICAgICApLFxuICAgIGluZGV4OiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAocS5hdG9tLCBQLmFsdChxLmRvdFBvc3RmaXgsIHEuaW5kZXhQb3N0Zml4LCBxLmZ1bmN0aW9uUG9zdGZpeCkubWFueSgpLCAob2JqLCBwb3N0Zml4ZXMpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBvYmo7XG4gICAgICAgICAgICBmb3IgKGxldCBwb3N0IG9mIHBvc3RmaXhlcykge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAocG9zdC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkb3RcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEV4cHJlc3Npb25zLmluZGV4KHJlc3VsdCwgRXhwcmVzc2lvbnMubGl0ZXJhbChwb3N0LmV4cHIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaW5kZXhcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEV4cHJlc3Npb25zLmluZGV4KHJlc3VsdCwgcG9zdC5leHByKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEV4cHJlc3Npb25zLmZ1bmMocmVzdWx0LCBwb3N0LmV4cHJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgbmVnYXRlZDogKHEpID0+IFAuc2VxTWFwKFAuc3RyaW5nKFwiIVwiKSwgcS5pbmRleCwgKF8sIGZpZWxkKSA9PiBFeHByZXNzaW9ucy5uZWdhdGUoZmllbGQpKS5kZXNjKFwibmVnYXRlZCBmaWVsZFwiKSxcbiAgICBwYXJlbnM6IChxKSA9PiBxLmV4cHJlc3Npb24udHJpbShQLm9wdFdoaXRlc3BhY2UpLndyYXAoUC5zdHJpbmcoXCIoXCIpLCBQLnN0cmluZyhcIilcIikpLFxuICAgIGxhbWJkYTogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUFJJTUlUSVZFUy5pZGVudGlmaWVyXG4gICAgICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAgICAgLndyYXAoUC5zdHJpbmcoXCIoXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKSwgUC5zdHJpbmcoXCIpXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKSksXG4gICAgICAgICAgICBQLnN0cmluZyhcIj0+XCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKSxcbiAgICAgICAgICAgIHEuZXhwcmVzc2lvbixcbiAgICAgICAgICAgIChpZGVudCwgX2lnbm9yZSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcImxhbWJkYVwiLCBhcmd1bWVudHM6IGlkZW50LCB2YWx1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApLFxuXG4gICAgZG90UG9zdGZpeDogKHEpID0+IFAuc2VxTWFwKFAuc3RyaW5nKFwiLlwiKSwgUFJJTUlUSVZFUy5pZGVudGlmaWVyLCAoXywgZXhwcikgPT4gKHsgdHlwZTogXCJkb3RcIiwgZXhwciB9KSksXG4gICAgaW5kZXhQb3N0Zml4OiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAoXG4gICAgICAgICAgICBQLnN0cmluZyhcIltcIiksXG4gICAgICAgICAgICBQLm9wdFdoaXRlc3BhY2UsXG4gICAgICAgICAgICBxLmV4cHJlc3Npb24sXG4gICAgICAgICAgICBQLm9wdFdoaXRlc3BhY2UsXG4gICAgICAgICAgICBQLnN0cmluZyhcIl1cIiksXG4gICAgICAgICAgICAoXywgXzIsIGV4cHIsIF8zLCBfNCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiaW5kZXhcIiwgZXhwciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApLFxuICAgIGZ1bmN0aW9uUG9zdGZpeDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCIoXCIpLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCIpXCIpLFxuICAgICAgICAgICAgKF8sIF8xLCBleHBycywgXzIsIF8zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJmdW5jdGlvblwiLCBleHBycyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApLFxuXG4gICAgLy8gVGhlIHByZWNlZGVuY2UgaGllcmFyY2h5IG9mIG9wZXJhdG9ycyAtIG11bHRpcGx5L2RpdmlkZSwgYWRkL3N1YnRyYWN0LCBjb21wYXJlLCBhbmQgdGhlbiBib29sZWFuIG9wZXJhdGlvbnMuXG4gICAgYmluYXJ5TXVsRGl2OiAocSkgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuaW5kZXgsIFBSSU1JVElWRVMuYmluYXJ5TXVsRGl2LCBFeHByZXNzaW9ucy5iaW5hcnlPcCksXG4gICAgYmluYXJ5UGx1c01pbnVzOiAocSkgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5TXVsRGl2LCBQUklNSVRJVkVTLmJpbmFyeVBsdXNNaW51cywgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeUNvbXBhcmU6IChxKSA9PiBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlQbHVzTWludXMsIFBSSU1JVElWRVMuYmluYXJ5Q29tcGFyZU9wLCBFeHByZXNzaW9ucy5iaW5hcnlPcCksXG4gICAgYmluYXJ5Qm9vbGVhbjogKHEpID0+XG4gICAgICAgIGNyZWF0ZUJpbmFyeVBhcnNlcihxLmJpbmFyeUNvbXBhcmUsIFBSSU1JVElWRVMuYmluYXJ5QW5kT3Aub3IoUFJJTUlUSVZFUy5iaW5hcnlPck9wKSwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeU9wOiAocSkgPT4gcS5iaW5hcnlCb29sZWFuLFxuXG4gICAgZXhwcmVzc2lvbjogKHEpID0+IHEuYmluYXJ5T3AsXG59KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFF1ZXJ5IExhbmd1YWdlIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKiogU3VwcG9ydGVkIHR5cGVzIGluIHRoZSBncmFtbWFyIGZvciBpbmRleCBxdWVyaWVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWVyeUxhbmd1YWdlIHtcbiAgICBxdWVyeVRhZzogSW5kZXhUYWdnZWQ7XG4gICAgcXVlcnlJZDogSW5kZXhJZDtcbiAgICBxdWVyeVR5cGU6IEluZGV4VHlwZWQ7XG4gICAgcXVlcnlQYXRoOiBJbmRleFBhdGg7XG4gICAgcXVlcnlQYXJlbnRPZjogSW5kZXhQYXJlbnRPZjtcbiAgICBxdWVyeUNoaWxkT2Y6IEluZGV4Q2hpbGRPZjtcbiAgICBxdWVyeVNpbXBsZUxpbmtlZDogSW5kZXhMaW5rZWQ7XG4gICAgcXVlcnlMaW5rZWQ6IEluZGV4TGlua2VkO1xuICAgIHF1ZXJ5RXhpc3RzOiBJbmRleEZpZWxkO1xuICAgIHF1ZXJ5UXVvdGVkRXhwcmVzc2lvbjogSW5kZXhFeHByZXNzaW9uO1xuICAgIHF1ZXJ5UmF3RXhwcmVzc2lvbjogSW5kZXhFeHByZXNzaW9uO1xuICAgIHF1ZXJ5TmVnYXRlOiBJbmRleE5vdDtcbiAgICBxdWVyeVBhcmVuczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeUF0b206IEluZGV4UXVlcnk7XG4gICAgcXVlcnlBbmRzOiBJbmRleFF1ZXJ5O1xuICAgIHF1ZXJ5T3JzOiBJbmRleFF1ZXJ5O1xuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5O1xufVxuXG4vKipcbiAqIFBhcnNlciBmb3IgdGhlIHF1ZXJ5IGxhbmd1YWdlLiBEaWQgSSByZWFsbHkgbmVlZCBhIHF1ZXJ5IGxhbmd1YWdlIGluc3RlYWQgb2YganVzdCBhIGJldHRlciBVST8gUHJvYmFibHkgbm90LlxuICogQnV0IHF1ZXJ5IGxhbmd1YWdlcyBhcmUgZnVuIGZvciB0aGUgd2hvbGUgZmFtaWx5IGFuZCBhdCBzb21lIHBvaW50IHlvdSBnZXQgc28gdXNlZCB0byB3cml0aW5nIHRoZW0gdGhhdFxuICogeW91IGRvbid0IHN0b3AgdG8gdGhpbmsgaWYgeW91ICpuZWVkKiB0byB3cml0ZSB0aGVtIGFueW1vcmUuIEl0J3MgZ29vZCB0eXBpbmcgcHJhY3RpY2UgZm9yIGV2ZXJ5b25lLlxuICovXG5leHBvcnQgY29uc3QgUVVFUlkgPSBQLmNyZWF0ZUxhbmd1YWdlPFF1ZXJ5TGFuZ3VhZ2U+KHtcbiAgICBxdWVyeVRhZzogKF8pID0+IFBSSU1JVElWRVMudGFnLm1hcCgodmFsdWUpID0+ICh7IHR5cGU6IFwidGFnZ2VkXCIsIHZhbHVlIH0pKSxcbiAgICBxdWVyeUlkOiAoXykgPT4gY3JlYXRlRnVuY3Rpb24oXCJpZFwiLCBQUklNSVRJVkVTLnN0cmluZykubWFwKChbXywgaWRdKSA9PiAoeyB0eXBlOiBcImlkXCIsIHZhbHVlOiBpZCB9KSksXG4gICAgcXVlcnlUeXBlOiAoXykgPT5cbiAgICAgICAgUC5zdHJpbmcoXCJAXCIpXG4gICAgICAgICAgICAudGhlbihQUklNSVRJVkVTLmlkZW50aWZpZXIpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4gKHsgdHlwZTogXCJ0eXBlZFwiLCB2YWx1ZTogdmFsdWUgfSkpLFxuXG4gICAgcXVlcnlQYXRoOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oUC5yZWdleHAoL2U/cGF0aC9pKS5kZXNjKFwiW2VdcGF0aFwiKSwgUFJJTUlUSVZFUy5zdHJpbmcpLm1hcCgoW2Z1bmMsIHBhdGhdKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJwYXRoXCIsXG4gICAgICAgICAgICB2YWx1ZTogcGF0aCxcbiAgICAgICAgICAgIGV4YWN0OiBmdW5jLnRvTG93ZXJDYXNlKCkgPT09IFwiZXBhdGhcIixcbiAgICAgICAgfSkpLFxuXG4gICAgcXVlcnlQYXJlbnRPZjogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9wYXJlbnRvZnxzdXBlcnRyZWUvaSkuZGVzYyhcInBhcmVudG9mXCIpLCBxLnF1ZXJ5KS5tYXAoKFtmdW5jLCBjaGlsZHJlbl0pID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcInBhcmVudC1vZlwiLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PT0gXCJzdXBlcnRyZWVcIixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5Q2hpbGRPZjogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9jaGlsZG9mfHN1YnRyZWUvaSkuZGVzYyhcImNoaWxkb2ZcIiksIHEucXVlcnkpLm1hcCgoW2Z1bmMsIHBhcmVudHNdKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJjaGlsZC1vZlwiLFxuICAgICAgICAgICAgcGFyZW50cyxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogZnVuYy50b0xvd2VyQ2FzZSgpID09PSBcInN1YnRyZWVcIixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5U2ltcGxlTGlua2VkOiAoXykgPT5cbiAgICAgICAgUFJJTUlUSVZFUy5saW5rLm1hcCgobGluaykgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwibGlua2VkXCIsXG4gICAgICAgICAgICBzb3VyY2U6IHsgdHlwZTogXCJsaW5rXCIsIHZhbHVlOiBsaW5rIH0sXG4gICAgICAgICAgICBkaXJlY3Rpb246IFwiaW5jb21pbmdcIixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5TGlua2VkOiAocSkgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oUC5yZWdleHAoL2xpbmtzdG98bGlua2VkZnJvbXxjb25uZWN0ZWQvaSkuZGVzYyhcImNvbm5lY3RlZFwiKSwgcS5xdWVyeSkubWFwKChbZnVuYywgc291cmNlXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwibGlua2VkXCIsXG4gICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICBkaXJlY3Rpb246XG4gICAgICAgICAgICAgICAgZnVuYy50b0xvd2VyQ2FzZSgpID09IFwibGlua3N0b1wiID8gXCJpbmNvbWluZ1wiIDogZnVuYy50b0xvd2VyQ2FzZSgpID09IFwibGlua2VkZnJvbVwiID8gXCJvdXRnb2luZ1wiIDogXCJib3RoXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUV4aXN0czogKF8pID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9leGlzdHMvaSkuZGVzYyhcImV4aXN0c1wiKSwgUFJJTUlUSVZFUy5pZGVudGlmaWVyLm9yKFBSSU1JVElWRVMuc3RyaW5nKSkubWFwKFxuICAgICAgICAgICAgKFtfZnVuYywgaWRlbnRdKSA9PiAoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZmllbGRcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogaWRlbnQsXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgIHF1ZXJ5UXVvdGVkRXhwcmVzc2lvbjogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9leHByL2kpLmRlc2MoXCJleHByXCIpLCBFWFBSRVNTSU9OLmV4cHJlc3Npb24pLm1hcCgoW18sIGV4cHJdKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJleHByZXNzaW9uXCIsXG4gICAgICAgICAgICBleHByZXNzaW9uOiBleHByLFxuICAgICAgICB9KSksXG4gICAgcXVlcnlSYXdFeHByZXNzaW9uOiAocSkgPT4gRVhQUkVTU0lPTi5iaW5hcnlDb21wYXJlLm1hcCgoZXhwcikgPT4gKHsgdHlwZTogXCJleHByZXNzaW9uXCIsIGV4cHJlc3Npb246IGV4cHIgfSkpLFxuXG4gICAgcXVlcnlQYXJlbnM6IChxKSA9PiBxLnF1ZXJ5LnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS53cmFwKFAuc3RyaW5nKFwiKFwiKSwgUC5zdHJpbmcoXCIpXCIpKSxcbiAgICBxdWVyeU5lZ2F0ZTogKHEpID0+XG4gICAgICAgIFAuc3RyaW5nKFwiIVwiKVxuICAgICAgICAgICAgLnNraXAoUC5vcHRXaGl0ZXNwYWNlKVxuICAgICAgICAgICAgLnRoZW4ocS5xdWVyeUF0b20pXG4gICAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcIm5vdFwiLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHZhbHVlLFxuICAgICAgICAgICAgfSkpLFxuICAgIHF1ZXJ5QXRvbTogKHEpID0+XG4gICAgICAgIFAuYWx0PEluZGV4UXVlcnk+KFxuICAgICAgICAgICAgcS5xdWVyeVBhcmVucyxcbiAgICAgICAgICAgIHEucXVlcnlOZWdhdGUsXG4gICAgICAgICAgICBxLnF1ZXJ5U2ltcGxlTGlua2VkLFxuICAgICAgICAgICAgcS5xdWVyeVRhZyxcbiAgICAgICAgICAgIHEucXVlcnlUeXBlLFxuICAgICAgICAgICAgcS5xdWVyeUlkLFxuICAgICAgICAgICAgcS5xdWVyeUV4aXN0cyxcbiAgICAgICAgICAgIHEucXVlcnlDaGlsZE9mLFxuICAgICAgICAgICAgcS5xdWVyeVBhcmVudE9mLFxuICAgICAgICAgICAgcS5xdWVyeUxpbmtlZCxcbiAgICAgICAgICAgIHEucXVlcnlQYXRoLFxuICAgICAgICAgICAgcS5xdWVyeVF1b3RlZEV4cHJlc3Npb24sXG4gICAgICAgICAgICAvLyBFeHByZXNzaW9ucyBhcmUgZXNzZW50aWFsbHkgdGhlIFwiY2F0Y2gtYWxsXCIgb2Ygb3RoZXJ3aXNlIHVucGFyc2VhYmxlIHRlcm1zLCBzbyB0aGV5IHNob3VsZCBnbyBhYnNvbHV0ZSBsYXN0LlxuICAgICAgICAgICAgcS5xdWVyeVJhd0V4cHJlc3Npb25cbiAgICAgICAgKSxcbiAgICBxdWVyeUFuZHM6IChxKSA9PlxuICAgICAgICBjcmVhdGVCaW5hcnlQYXJzZXIocS5xdWVyeUF0b20sIFBSSU1JVElWRVMuYmluYXJ5QW5kT3AsIChsZWZ0LCBfb3AsIHJpZ2h0KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJhbmRcIixcbiAgICAgICAgICAgIGVsZW1lbnRzOiBbbGVmdCwgcmlnaHRdLFxuICAgICAgICB9KSksXG4gICAgcXVlcnlPcnM6IChxKSA9PlxuICAgICAgICBjcmVhdGVCaW5hcnlQYXJzZXIocS5xdWVyeUFuZHMsIFBSSU1JVElWRVMuYmluYXJ5T3JPcCwgKGxlZnQsIF9vcCwgcmlnaHQpID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcIm9yXCIsXG4gICAgICAgICAgICBlbGVtZW50czogW2xlZnQsIHJpZ2h0XSxcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5OiAocSkgPT4gcS5xdWVyeU9ycy50cmltKFAub3B0V2hpdGVzcGFjZSksXG59KTtcblxuLyoqIFJldHVybiBhIG5ldyBwYXJzZXIgd2hpY2ggZXhlY3V0ZXMgdGhlIHVuZGVybHlpbmcgcGFyc2VyIGFuZCByZXR1cm5zIGl0J3MgcmF3IHN0cmluZyByZXByZXNlbnRhdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlUmF3PFQ+KGJhc2U6IFAuUGFyc2VyPFQ+KTogUC5QYXJzZXI8W1QsIHN0cmluZ10+IHtcbiAgICByZXR1cm4gUC5jdXN0b20oKF9zdWNjZXNzLCBfZmFpbHVyZSkgPT4ge1xuICAgICAgICByZXR1cm4gKGlucHV0LCBpKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gKGJhc2UgYXMgYW55KS5fKGlucHV0LCBpKTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LnN0YXR1cykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCwgeyB2YWx1ZTogW3Jlc3VsdC52YWx1ZSwgaW5wdXQuc3Vic3RyaW5nKGksIHJlc3VsdC5pbmRleCldIH0pO1xuICAgICAgICB9O1xuICAgIH0pO1xufVxuXG4vKiogQ3JlYXRlIGEgbGVmdC1hc3NvY2lhdGl2ZSBiaW5hcnkgcGFyc2VyIHdoaWNoIHBhcnNlcyB0aGUgZ2l2ZW4gc3ViLWVsZW1lbnQgYW5kIHNlcGFyYXRvci4gSGFuZGxlcyB3aGl0ZXNwYWNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJpbmFyeVBhcnNlcjxULCBVPihcbiAgICBjaGlsZDogUC5QYXJzZXI8VD4sXG4gICAgc2VwOiBQLlBhcnNlcjxVPixcbiAgICBjb21iaW5lOiAoYTogVCwgYjogVSwgYzogVCkgPT4gVFxuKTogUC5QYXJzZXI8VD4ge1xuICAgIHJldHVybiBQLnNlcU1hcChjaGlsZCwgUC5zZXEoUC5vcHRXaGl0ZXNwYWNlLCBzZXAsIFAub3B0V2hpdGVzcGFjZSwgY2hpbGQpLm1hbnkoKSwgKGZpcnN0LCByZXN0KSA9PiB7XG4gICAgICAgIGlmIChyZXN0Lmxlbmd0aCA9PSAwKSByZXR1cm4gZmlyc3Q7XG5cbiAgICAgICAgbGV0IG5vZGUgPSBjb21iaW5lKGZpcnN0LCByZXN0WzBdWzFdLCByZXN0WzBdWzNdKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHJlc3QubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBub2RlID0gY29tYmluZShub2RlLCByZXN0W2luZGV4XVsxXSwgcmVzdFtpbmRleF1bM10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBhcnNlciB3aGljaCBwYXJzZXMgXFw8ZnVuY3Rpb25cXD4oXFw8YXJnc1xcPikuXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uPFQ+KGZ1bmM6IHN0cmluZyB8IFAuUGFyc2VyPHN0cmluZz4sIGFyZ3M6IFAuUGFyc2VyPFQ+KTogUC5QYXJzZXI8W3N0cmluZywgVF0+IHtcbiAgICBjb25zdCByZWFsRnVuYyA9IHR5cGVvZiBmdW5jID09PSBcInN0cmluZ1wiID8gUC5zdHJpbmcoZnVuYykgOiBmdW5jO1xuICAgIHJldHVybiBQLnNlcU1hcChcbiAgICAgICAgcmVhbEZ1bmMuc2tpcChQLm9wdFdoaXRlc3BhY2UpLFxuICAgICAgICBhcmdzLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS53cmFwKFAuc3RyaW5nKFwiKFwiKSwgUC5zdHJpbmcoXCIpXCIpKSxcbiAgICAgICAgKGYsIGEpID0+IFtmLCBhXVxuICAgICk7XG59XG5cbi8qKiBDaGFpbnMgYSBsaXN0IG9mIHBhcnNlcnM7IHRoZSBmaXJzdCBvbmUgbXVzdCBzdWNjZWVkLCBidXQgZm9sbG93aW5nIG9uZXMgbWF5IGZhaWwgd2l0aG91dCBmYWlsaW5nIHRoZSBvdmVyYWxsIHBhcnNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluT3B0PFQ+KGJhc2U6IFAuUGFyc2VyPFQ+LCAuLi5mdW5jczogKChyOiBUKSA9PiBQLlBhcnNlcjxUPilbXSk6IFAuUGFyc2VyPFQ+IHtcbiAgICByZXR1cm4gUC5jdXN0b20oKF9zdWNjZXNzLCBfZmFpbHVyZSkgPT4ge1xuICAgICAgICByZXR1cm4gKGlucHV0LCBpKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gKGJhc2UgYXMgYW55KS5fKGlucHV0LCBpKTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LnN0YXR1cykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykge1xuICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gKGZ1bmMocmVzdWx0LnZhbHVlIGFzIFQpIGFzIGFueSkuXyhpbnB1dCwgcmVzdWx0LmluZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHQuc3RhdHVzKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgZXhwcmVzc2lvbnNcbiAqL1xuaW1wb3J0IHsgRGF0ZVRpbWUsIER1cmF0aW9uIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgcmVuZGVyTWluaW1hbERhdGUsIHJlbmRlck1pbmltYWxEdXJhdGlvbiB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuXG4vLyBSZS1leHBvcnRzIG9mIHVzZWZ1bCBnZW5lcmljIHR5cGVzLlxuZXhwb3J0IHsgTGluayB9O1xuXG4vKiogU2hvcnRoYW5kIGZvciBhIG1hcHBpbmcgZnJvbSBrZXlzIHRvIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIERhdGFPYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuLyoqIFRoZSBsaXRlcmFsIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUgcXVlcnkgZW5naW5lLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFR5cGUgPVxuICAgIHwgXCJib29sZWFuXCJcbiAgICB8IFwibnVtYmVyXCJcbiAgICB8IFwic3RyaW5nXCJcbiAgICB8IFwiZGF0ZVwiXG4gICAgfCBcImR1cmF0aW9uXCJcbiAgICB8IFwibGlua1wiXG4gICAgfCBcImFycmF5XCJcbiAgICB8IFwib2JqZWN0XCJcbiAgICB8IFwiZnVuY3Rpb25cIlxuICAgIHwgXCJudWxsXCI7XG4vKiogVGhlIHJhdyB2YWx1ZXMgdGhhdCBhIGxpdGVyYWwgY2FuIHRha2Ugb24uICovXG5leHBvcnQgdHlwZSBMaXRlcmFsID1cbiAgICB8IGJvb2xlYW5cbiAgICB8IG51bWJlclxuICAgIHwgc3RyaW5nXG4gICAgfCBEYXRlVGltZVxuICAgIHwgRHVyYXRpb25cbiAgICB8IExpbmtcbiAgICB8IEFycmF5PExpdGVyYWw+XG4gICAgfCBEYXRhT2JqZWN0XG4gICAgfCBGdW5jdGlvblxuICAgIHwgbnVsbDtcblxuLyoqIE1hcHMgdGhlIHN0cmluZyB0eXBlIHRvIGl0J3MgZXh0ZXJuYWwsIEFQSS1mYWNpbmcgcmVwcmVzZW50YXRpb24uICovXG5leHBvcnQgdHlwZSBMaXRlcmFsUmVwcjxUIGV4dGVuZHMgTGl0ZXJhbFR5cGU+ID0gVCBleHRlbmRzIFwiYm9vbGVhblwiXG4gICAgPyBib29sZWFuXG4gICAgOiBUIGV4dGVuZHMgXCJudW1iZXJcIlxuICAgID8gbnVtYmVyXG4gICAgOiBUIGV4dGVuZHMgXCJzdHJpbmdcIlxuICAgID8gc3RyaW5nXG4gICAgOiBUIGV4dGVuZHMgXCJkdXJhdGlvblwiXG4gICAgPyBEdXJhdGlvblxuICAgIDogVCBleHRlbmRzIFwiZGF0ZVwiXG4gICAgPyBEYXRlVGltZVxuICAgIDogVCBleHRlbmRzIFwibnVsbFwiXG4gICAgPyBudWxsXG4gICAgOiBUIGV4dGVuZHMgXCJsaW5rXCJcbiAgICA/IExpbmtcbiAgICA6IFQgZXh0ZW5kcyBcImFycmF5XCJcbiAgICA/IEFycmF5PExpdGVyYWw+XG4gICAgOiBUIGV4dGVuZHMgXCJvYmplY3RcIlxuICAgID8gRGF0YU9iamVjdFxuICAgIDogVCBleHRlbmRzIFwiZnVuY3Rpb25cIlxuICAgID8gRnVuY3Rpb25cbiAgICA6IGFueTtcblxuLyoqIEEgd3JhcHBlZCBsaXRlcmFsIHZhbHVlIHdoaWNoIGNhbiBiZSBzd2l0Y2hlZCBvbi4gKi9cbmV4cG9ydCB0eXBlIFdyYXBwZWRMaXRlcmFsID1cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwic3RyaW5nXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcIm51bWJlclwiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJib29sZWFuXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImRhdGVcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiZHVyYXRpb25cIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwibGlua1wiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJhcnJheVwiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJvYmplY3RcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiZnVuY3Rpb25cIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwibnVsbFwiPjtcblxuLyoqIENvbWJpbmVzIGEgdGV4dHVhbCB0eXBlIGFuZCB2YWx1ZTsgcHJpbWFyaWx5IHVzZWZ1bCBmb3Igc3dpdGNoaW5nIG9uLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpdGVyYWxXcmFwcGVyPFQgZXh0ZW5kcyBMaXRlcmFsVHlwZT4ge1xuICAgIHR5cGU6IFQ7XG4gICAgdmFsdWU6IExpdGVyYWxSZXByPFQ+O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqICBVdGlsaXR5IGxpYnJhcnkgZm9yIGhhbmRsaW5nIGxpdGVyYWwgdmFsdWVzLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBMaXRlcmFscyB7XG4gICAgLyoqIFNldHRpbmdzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGxpdGVyYWwgdmFsdWVzIHRvIHRleHQuICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBUb1N0cmluZ1NldHRpbmdzIHtcbiAgICAgICAgLyoqIFdoYXQgYSBudWxsIHdpbGwgcmVuZGVyIGFzLiAqL1xuICAgICAgICBudWxsUmVwcmVzZW50YXRpb246IHN0cmluZztcblxuICAgICAgICAvKiogRGF0ZSBmb3JtYXQuICovXG4gICAgICAgIGRhdGVGb3JtYXQ6IHN0cmluZztcblxuICAgICAgICAvKiogRGF0ZS10aW1lIGZvcm1hdC4gKi9cbiAgICAgICAgZGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKiogU2FuZSwgRW5nbGlzaC1iYXNlZCBkZWZhdWx0cyBmb3IgZGF0ZSBmb3JtYXRzLiAqL1xuICAgIGV4cG9ydCBjb25zdCBERUZBVUxUX1RPX1NUUklORzogVG9TdHJpbmdTZXR0aW5ncyA9IHtcbiAgICAgICAgbnVsbFJlcHJlc2VudGF0aW9uOiBcIi1cIixcblxuICAgICAgICBkYXRlRm9ybWF0OiBcIk1NTU0gZGQsIHl5eXlcIixcbiAgICAgICAgZGF0ZVRpbWVGb3JtYXQ6IFwiaDptbSBhIC0gTU1NTSBkZCwgeXl5eVwiLFxuICAgIH07XG5cbiAgICAvKiogQ29udmVydCBhbiBhcmJpdHJhcnkgdmFsdWUgaW50byBhIHJlYXNvbmFibGUsIE1hcmtkb3duLWZyaWVuZGx5IHN0cmluZyBpZiBwb3NzaWJsZS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcoXG4gICAgICAgIGZpZWxkOiBhbnksXG4gICAgICAgIHNldHRpbmc6IFRvU3RyaW5nU2V0dGluZ3MgPSBERUZBVUxUX1RPX1NUUklORyxcbiAgICAgICAgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2VcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIHNldHRpbmcubnVsbFJlcHJlc2VudGF0aW9uO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5nLm51bGxSZXByZXNlbnRhdGlvbjtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiPGZ1bmN0aW9uPlwiO1xuICAgICAgICAgICAgY2FzZSBcImFycmF5XCI6XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkgcmVzdWx0ICs9IFwiW1wiO1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3cmFwcGVkLnZhbHVlLm1hcCgoZikgPT4gdG9TdHJpbmcoZiwgc2V0dGluZywgdHJ1ZSkpLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgICAgICAgICBpZiAocmVjdXJzaXZlKSByZXN1bHQgKz0gXCJdXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBcInsgXCIgK1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyh3cmFwcGVkLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoZSkgPT4gZVswXSArIFwiOiBcIiArIHRvU3RyaW5nKGVbMV0sIHNldHRpbmcsIHRydWUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCIsIFwiKSArXG4gICAgICAgICAgICAgICAgICAgIFwiIH1cIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRGF0ZSh3cmFwcGVkLnZhbHVlLCBzZXR0aW5nLmRhdGVGb3JtYXQsIHNldHRpbmcuZGF0ZVRpbWVGb3JtYXQpO1xuICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlck1pbmltYWxEdXJhdGlvbih3cmFwcGVkLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBXcmFwIGEgbGl0ZXJhbCB2YWx1ZSBzbyB5b3UgY2FuIHN3aXRjaCBvbiBpdCBlYXNpbHkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHdyYXBWYWx1ZSh2YWw6IExpdGVyYWwpOiBXcmFwcGVkTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc051bGwodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJudWxsXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJudW1iZXJcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc1N0cmluZyh2YWwpKSByZXR1cm4geyB0eXBlOiBcInN0cmluZ1wiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzQm9vbGVhbih2YWwpKSByZXR1cm4geyB0eXBlOiBcImJvb2xlYW5cIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0R1cmF0aW9uKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZHVyYXRpb25cIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0RhdGUodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJkYXRlXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKSByZXR1cm4geyB0eXBlOiBcImFycmF5XCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNMaW5rKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibGlua1wiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzRnVuY3Rpb24odmFsKSkgcmV0dXJuIHsgdHlwZTogXCJmdW5jdGlvblwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHJldHVybiB7IHR5cGU6IFwib2JqZWN0XCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZWN1cnNpdmVseSBtYXAgY29tcGxleCBvYmplY3RzIGF0IHRoZSBsZWF2ZXMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1hcExlYXZlcyh2YWw6IExpdGVyYWwsIGZ1bmM6ICh0OiBMaXRlcmFsKSA9PiBMaXRlcmFsKTogTGl0ZXJhbCB7XG4gICAgICAgIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBEYXRhT2JqZWN0ID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsKSkgcmVzdWx0W2tleV0gPSBtYXBMZWF2ZXModmFsdWUsIGZ1bmMpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQ6IExpdGVyYWxbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsKSByZXN1bHQucHVzaChtYXBMZWF2ZXModmFsdWUsIGZ1bmMpKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuYyh2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHR3byBhcmJpdHJhcnkgbGl0ZXJhbHMgYXJlIGVxdWFsLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBlcXVhbHMoZmlyc3Q6IExpdGVyYWwgfCB1bmRlZmluZWQsIHNlY29uZDogTGl0ZXJhbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY29tcGFyZShmaXJzdCwgc2Vjb25kKSA9PSAwO1xuICAgIH1cblxuICAgIC8qKiBDb21wYXJlIHR3byBhcmJpdHJhcnkgSmF2YVNjcmlwdCB2YWx1ZXMuIFByb2R1Y2VzIGEgdG90YWwgb3JkZXJpbmcgb3ZlciBBTlkgcG9zc2libGUgZGF0YWNvcmUgdmFsdWUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmUoXG4gICAgICAgIHZhbDE6IExpdGVyYWwgfCB1bmRlZmluZWQsXG4gICAgICAgIHZhbDI6IExpdGVyYWwgfCB1bmRlZmluZWQsXG4gICAgICAgIGxpbmtOb3JtYWxpemVyPzogKGxpbms6IHN0cmluZykgPT4gc3RyaW5nXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgLy8gUmVmZXJlbmNlIGVxdWFsaXR5IC0gc2hvcnQgY2lyY3VpdC5cbiAgICAgICAgaWYgKHZhbDEgPT09IHZhbDIpIHJldHVybiAwO1xuXG4gICAgICAgIC8vIEhhbmRsZSB1bmRlZmluZWQvbnVsbHMgZmlyc3QuXG4gICAgICAgIGlmICh2YWwxID09PSB1bmRlZmluZWQpIHZhbDEgPSBudWxsO1xuICAgICAgICBpZiAodmFsMiA9PT0gdW5kZWZpbmVkKSB2YWwyID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbDEgPT09IG51bGwgJiYgdmFsMiA9PT0gbnVsbCkgcmV0dXJuIDA7XG4gICAgICAgIGVsc2UgaWYgKHZhbDEgPT09IG51bGwpIHJldHVybiAtMTtcbiAgICAgICAgZWxzZSBpZiAodmFsMiA9PT0gbnVsbCkgcmV0dXJuIDE7XG5cbiAgICAgICAgLy8gQSBub24tbnVsbCB2YWx1ZSBub3cgd2hpY2ggd2UgY2FuIHdyYXAgJiBjb21wYXJlIG9uLlxuICAgICAgICBsZXQgd3JhcDEgPSB3cmFwVmFsdWUodmFsMSk7XG4gICAgICAgIGxldCB3cmFwMiA9IHdyYXBWYWx1ZSh2YWwyKTtcblxuICAgICAgICBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCAmJiB3cmFwMiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgICAgICAgZWxzZSBpZiAod3JhcDEgPT09IHVuZGVmaW5lZCkgcmV0dXJuIC0xO1xuICAgICAgICBlbHNlIGlmICh3cmFwMiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMTtcblxuICAgICAgICAvLyBTaG9ydC1jaXJjdWl0IG9uIGRpZmZlcmVudCB0eXBlcyBvciBvbiByZWZlcmVuY2UgZXF1YWxpdHkuXG4gICAgICAgIGlmICh3cmFwMS50eXBlICE9IHdyYXAyLnR5cGUpIHJldHVybiB3cmFwMS50eXBlLmxvY2FsZUNvbXBhcmUod3JhcDIudHlwZSk7XG4gICAgICAgIGlmICh3cmFwMS52YWx1ZSA9PT0gd3JhcDIudmFsdWUpIHJldHVybiAwO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcDEudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZS5sb2NhbGVDb21wYXJlKHdyYXAyLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlIDwgKHdyYXAyLnZhbHVlIGFzIG51bWJlcikpIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3cmFwMS52YWx1ZSA9PSAod3JhcDIudmFsdWUgYXMgbnVtYmVyKSkgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICBpZiAod3JhcDEudmFsdWUgPT0gd3JhcDIudmFsdWUpIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHdyYXAxLnZhbHVlID8gMSA6IC0xO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICBsZXQgbGluazEgPSB3cmFwMS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgbGluazIgPSB3cmFwMi52YWx1ZSBhcyBMaW5rO1xuICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemUgPSBsaW5rTm9ybWFsaXplciA/PyAoKHg6IHN0cmluZykgPT4geCk7XG5cbiAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBjb21wYXJlIGJ5IGZpbGUgbmFtZSBvciBkaXNwbGF5LCBzaW5jZSB0aGF0IHdvdWxkIGJyZWFrIGxpbmsgZXF1YWxpdHkuIENvbXBhcmUgYnkgcGF0aC5cbiAgICAgICAgICAgICAgICBsZXQgcGF0aENvbXBhcmUgPSBub3JtYWxpemUobGluazEucGF0aCkubG9jYWxlQ29tcGFyZShub3JtYWxpemUobGluazIucGF0aCkpO1xuICAgICAgICAgICAgICAgIGlmIChwYXRoQ29tcGFyZSAhPSAwKSByZXR1cm4gcGF0aENvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgdHlwZS5cbiAgICAgICAgICAgICAgICBsZXQgdHlwZUNvbXBhcmUgPSBsaW5rMS50eXBlLmxvY2FsZUNvbXBhcmUobGluazIudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVDb21wYXJlICE9IDApIHJldHVybiB0eXBlQ29tcGFyZTtcblxuICAgICAgICAgICAgICAgIC8vIFRoZW4gY29tcGFyZSBieSBzdWJwYXRoIGV4aXN0ZW5jZS5cbiAgICAgICAgICAgICAgICBpZiAobGluazEuc3VicGF0aCAmJiAhbGluazIuc3VicGF0aCkgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmIGxpbmsyLnN1YnBhdGgpIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpIHJldHVybiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gU2luY2UgYm90aCBoYXZlIGEgc3VicGF0aCwgY29tcGFyZSBieSBzdWJwYXRoLlxuICAgICAgICAgICAgICAgIHJldHVybiAobGluazEuc3VicGF0aCA/PyBcIlwiKS5sb2NhbGVDb21wYXJlKGxpbmsyLnN1YnBhdGggPz8gXCJcIik7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA8ICh3cmFwMi52YWx1ZSBhcyBEYXRlVGltZSlcbiAgICAgICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgICAgICA6IHdyYXAxLnZhbHVlLmVxdWFscyh3cmFwMi52YWx1ZSBhcyBEYXRlVGltZSlcbiAgICAgICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgICAgIDogMTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwMS52YWx1ZSA8ICh3cmFwMi52YWx1ZSBhcyBEdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgICAgICA6IHdyYXAxLnZhbHVlLmVxdWFscyh3cmFwMi52YWx1ZSBhcyBEdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgICAgIDogMTtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIGxldCBmMSA9IHdyYXAxLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBmMiA9IHdyYXAyLnZhbHVlIGFzIGFueVtdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBNYXRoLm1pbihmMS5sZW5ndGgsIGYyLmxlbmd0aCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlKGYxW2luZGV4XSwgZjJbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXAgIT0gMCkgcmV0dXJuIGNvbXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmMS5sZW5ndGggLSBmMi5sZW5ndGg7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgbGV0IG8xID0gd3JhcDEudmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IG8yID0gd3JhcDIudmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgICAgICAgICBsZXQgazEgPSBBcnJheS5mcm9tKE9iamVjdC5rZXlzKG8xKSk7XG4gICAgICAgICAgICAgICAgbGV0IGsyID0gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvMikpO1xuICAgICAgICAgICAgICAgIGsxLnNvcnQoKTtcbiAgICAgICAgICAgICAgICBrMi5zb3J0KCk7XG5cbiAgICAgICAgICAgICAgICBsZXQga2V5Q29tcGFyZSA9IGNvbXBhcmUoazEsIGsyKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5Q29tcGFyZSAhPSAwKSByZXR1cm4ga2V5Q29tcGFyZTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiBrMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcCA9IGNvbXBhcmUobzFba2V5XSwgbzJba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApIHJldHVybiBjb21wO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRmluZCB0aGUgY29ycmVzcG9uZGluZyBkYXRhY29yZSB0eXBlIGZvciBhbiBhcmJpdHJhcnkgdmFsdWUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHR5cGVPZih2YWw6IGFueSk6IExpdGVyYWxUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHdyYXBWYWx1ZSh2YWwpPy50eXBlO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIFwidHJ1dGh5XCIgKGkuZS4sIGlzIG5vbi1udWxsIGFuZCBoYXMgZGF0YSBpbiBpdCkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzVHJ1dGh5KGZpZWxkOiBMaXRlcmFsKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCB3cmFwcGVkID0gd3JhcFZhbHVlKGZpZWxkKTtcbiAgICAgICAgaWYgKCF3cmFwcGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZSAhPSAwO1xuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gISF3cmFwcGVkLnZhbHVlLnBhdGg7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvTWlsbGlzKCkgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmFzKFwic2Vjb25kc1wiKSAhPSAwO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh3cmFwcGVkLnZhbHVlKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgY2FzZSBcImFycmF5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJudWxsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRGVlcCBjb3B5IGEgZmllbGQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGRlZXBDb3B5PFQgZXh0ZW5kcyBMaXRlcmFsPihmaWVsZDogVCk6IFQge1xuICAgICAgICBpZiAoZmllbGQgPT09IG51bGwgfHwgZmllbGQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZpZWxkO1xuXG4gICAgICAgIGlmIChMaXRlcmFscy5pc0FycmF5KGZpZWxkKSkge1xuICAgICAgICAgICAgcmV0dXJuIChbXSBhcyBMaXRlcmFsW10pLmNvbmNhdChmaWVsZC5tYXAoKHYpID0+IGRlZXBDb3B5KHYpKSkgYXMgVDtcbiAgICAgICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc09iamVjdChmaWVsZCkpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+ID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGQpKSByZXN1bHRba2V5XSA9IGRlZXBDb3B5KHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgYXMgVDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgc3RyaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWw6IGFueSk6IHZhbCBpcyBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSBcInN0cmluZ1wiO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWw6IGFueSk6IHZhbCBpcyBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSBcIm51bWJlclwiO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgZGF0ZS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbDogYW55KTogdmFsIGlzIERhdGVUaW1lIHtcbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIERhdGVUaW1lO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgZHVyYXRpb24uICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzRHVyYXRpb24odmFsOiBhbnkpOiB2YWwgaXMgRHVyYXRpb24ge1xuICAgICAgICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRHVyYXRpb247XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWw6IGFueSk6IHZhbCBpcyBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhbiBhcnJheS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNBcnJheSh2YWw6IGFueSk6IHZhbCBpcyBhbnlbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYSBib29sZWFuLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsOiBhbnkpOiB2YWwgaXMgYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGxpbmsuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzTGluayh2YWw6IGFueSk6IHZhbCBpcyBMaW5rIHtcbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIExpbms7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gb2JqZWN0IChhbmQgbm90IGFueSBvdGhlciBkYXRhY29yZS1yZWNvZ25pemVkIG9iamVjdC1saWtlIHR5cGUpLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWw6IGFueSk6IHZhbCBpcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHZhbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsID09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICFpc0FycmF5KHZhbCkgJiZcbiAgICAgICAgICAgICFpc0R1cmF0aW9uKHZhbCkgJiZcbiAgICAgICAgICAgICFpc0RhdGUodmFsKSAmJlxuICAgICAgICAgICAgIWlzTGluayh2YWwpICYmXG4gICAgICAgICAgICAhaXNOdWxsKHZhbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBqYXZhc2NyaXB0IGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbDogYW55KTogdmFsIGlzIEZ1bmN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJmdW5jdGlvblwiO1xuICAgIH1cbn1cblxuLyoqIEEgZ3JvdXBpbmcgb24gYSB0eXBlIHdoaWNoIHN1cHBvcnRzIHJlY3Vyc2l2ZWx5LW5lc3RlZCBncm91cHMuXG4gKiBAZ3JvdXAgQ29tbW9uIFR5cGVzXG4gKi9cbmV4cG9ydCB0eXBlIEdyb3VwRWxlbWVudDxUPiA9IHsga2V5OiBMaXRlcmFsOyByb3dzOiBHcm91cGluZzxUPiB9O1xuLyoqXG4gKiBBIGdyb3VwaW5nLCB3aGljaCBjYW4gYmUgZWl0aGVyOlxuICogLSBhbiBhcnJheSBvZiBlbGVtZW50cyBvZiB0eXBlIGBUYCwgb3JcbiAqIC0gYW4gYXJyYXkgb2Yge0BsaW5rIEdyb3VwZWxlbWVudH1zXG4gKlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBHcm91cGluZzxUPiA9IFRbXSB8IEdyb3VwRWxlbWVudDxUPltdO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgR3JvdXBpbmdzIHtcbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZ3JvdXAgZW50cnkgaXMgYSBzdGFuZGFsb25lIHZhbHVlLCBvciBhIGdyb3VwaW5nIG9mIHN1Yi1lbnRyaWVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0VsZW1lbnRHcm91cDxUPihlbnRyeTogYW55KTogZW50cnkgaXMgR3JvdXBFbGVtZW50PFQ+IHtcbiAgICAgICAgcmV0dXJuIExpdGVyYWxzLmlzT2JqZWN0KGVudHJ5KSAmJiBPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoID09IDIgJiYgXCJrZXlcIiBpbiBlbnRyeSAmJiBcInJvd3NcIiBpbiBlbnRyeTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gYXJyYXkgaXMgYSBncm91cGluZyBhcnJheS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNHcm91cGluZzxUPihlbnRyeTogR3JvdXBpbmc8VD4pOiBlbnRyeSBpcyBHcm91cEVsZW1lbnQ8VD5bXSB7XG4gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpIGlmICghaXNFbGVtZW50R3JvdXAoZWxlbWVudCkpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gYXJyYXkgaXMgYSBsZWFmIGFuZCBoYXMgbm8gc3ViZ3JvdXBpbmdzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0xlYWY8VD4oZW50cnk6IEdyb3VwaW5nPFQ+KTogZW50cnkgaXMgVFtdIHtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbnRyeSkgaWYgKGlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIENvdW50IHRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSByZWN1cnNpdmUgZ3JvdXBpbmcuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvdW50PFQ+KGVsZW1lbnRzOiBHcm91cGluZzxUPiB8IEdyb3VwRWxlbWVudDxUPik6IG51bWJlciB7XG4gICAgICAgIGlmIChpc0VsZW1lbnRHcm91cChlbGVtZW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBjb3VudChlbGVtZW50cy5yb3dzKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0dyb3VwaW5nKGVsZW1lbnRzKSkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBzdWJncm91cCBvZiBlbGVtZW50cykgcmVzdWx0ICs9IGNvdW50KHN1Ymdyb3VwLnJvd3MpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgc2xpY2UgYSBncm91cGluZywgcHJlc2VydmluZyB0aGUgZ3JvdXAgc3RydWN0dXJlIHRoYXQgY29udGFpbnMgZWxlbWVudHMgW3N0YXJ0Li4uZW5kKS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gc2xpY2U8VD4oZWxlbWVudHM6IEdyb3VwaW5nPFQ+LCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IEdyb3VwaW5nPFQ+IHtcbiAgICAgICAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuIFtdO1xuICAgICAgICBpZiAoaXNMZWFmKGVsZW1lbnRzKSkgcmV0dXJuIGVsZW1lbnRzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGdyb3VwIHRoYXQgY29udGFpbnMgaW5kZXggYHN0YXJ0YC5cbiAgICAgICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgICAgIHNlZW4gPSAwO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBlbGVtZW50cy5sZW5ndGggJiYgc2VlbiArIGNvdW50KGVsZW1lbnRzW2luZGV4XSkgPD0gc3RhcnQpIHtcbiAgICAgICAgICAgIHNlZW4gKz0gY291bnQoZWxlbWVudHNbaW5kZXhdKTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFydCB3YXMgZ3JlYXRlciB0aGFuIHRoZSBlbnRpcmUgbGVuZ3RoIG9mIHRoZSBncm91cGluZ3MuXG4gICAgICAgIGlmIChpbmRleCA+PSBlbGVtZW50cy5sZW5ndGgpIHJldHVybiBbXTtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IHsga2V5OiBMaXRlcmFsOyByb3dzOiBHcm91cGluZzxUPiB9W10gPSBbXTtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gPCBlbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gZWxlbWVudHNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBTaXplID0gY291bnQoZ3JvdXApO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBTdGFydCA9IE1hdGgubWF4KHNlZW4sIHN0YXJ0KTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRW5kID0gTWF0aC5taW4oZ3JvdXBTaXplICsgc2VlbiwgZW5kKTtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIGtleTogZ3JvdXAua2V5LFxuICAgICAgICAgICAgICAgIHJvd3M6IHNsaWNlKGdyb3VwLnJvd3MsIGdyb3VwU3RhcnQgLSBzZWVuLCBncm91cEVuZCAtIHNlZW4pLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNlZW4gKz0gZ3JvdXBTaXplO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIiwgIi8qKlxuICogQG1vZHVsZSBhcGlcbiAqL1xuLyoqXG4gKiAgRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuXG4gKiBAaGlkZGVuXG4gKiAqL1xuZXhwb3J0IGNsYXNzIFN1Y2Nlc3M8VCwgRT4ge1xuICAgIHB1YmxpYyBzdWNjZXNzZnVsOiB0cnVlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NmdWwgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXA8VT4oZjogKGE6IFQpID0+IFUpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gbmV3IFN1Y2Nlc3MoZih0aGlzLnZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZsYXRNYXA8VT4oZjogKGE6IFQpID0+IFJlc3VsdDxVLCBFPik6IFJlc3VsdDxVLCBFPiB7XG4gICAgICAgIHJldHVybiBmKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXBFcnI8VT4oZjogKGU6IEUpID0+IFUpOiBSZXN1bHQ8VCwgVT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnkgYXMgUmVzdWx0PFQsIFU+O1xuICAgIH1cblxuICAgIHB1YmxpYyBiaW1hcDxUMiwgRTI+KHN1Y2M6IChhOiBUKSA9PiBUMiwgX2ZhaWw6IChiOiBFKSA9PiBFMik6IFJlc3VsdDxUMiwgRTI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwKHN1Y2MpIGFzIGFueTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3JFbHNlKF92YWx1ZTogVCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdDxVPigpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZVRocm93KF9tZXNzYWdlPzogKGU6IEUpID0+IHN0cmluZyk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG59XG5cbi8qKiBGdW5jdGlvbmFsIHJldHVybiB0eXBlIGZvciBlcnJvciBoYW5kbGluZy5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNsYXNzIEZhaWx1cmU8VCwgRT4ge1xuICAgIHB1YmxpYyBzdWNjZXNzZnVsOiBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3I6IEUpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcDxVPihfZjogKGE6IFQpID0+IFUpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnkgYXMgRmFpbHVyZTxVLCBFPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmxhdE1hcDxVPihfZjogKGE6IFQpID0+IFJlc3VsdDxVLCBFPik6IFJlc3VsdDxVLCBFPiB7XG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueSBhcyBGYWlsdXJlPFUsIEU+O1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXBFcnI8VT4oZjogKGU6IEUpID0+IFUpOiBSZXN1bHQ8VCwgVT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZhaWx1cmUoZih0aGlzLmVycm9yKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGJpbWFwPFQyLCBFMj4oX3N1Y2M6IChhOiBUKSA9PiBUMiwgZmFpbDogKGI6IEUpID0+IEUyKTogUmVzdWx0PFQyLCBFMj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBFcnIoZmFpbCkgYXMgYW55O1xuICAgIH1cblxuICAgIHB1YmxpYyBvckVsc2UodmFsdWU6IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYXN0PFU+KCk6IFJlc3VsdDxVLCBFPiB7XG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3JFbHNlVGhyb3cobWVzc2FnZT86IChlOiBFKSA9PiBzdHJpbmcpOiBUIHtcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKHRoaXMuZXJyb3IpKTtcbiAgICAgICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IoXCJcIiArIHRoaXMuZXJyb3IpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBIG1vbmFkaWMgcmVzdWx0IHR5cGUgd2hpY2ggc3RvcmVzIGVpdGhlciBcInN1Y2Nlc3NcIiBvciBcImZhaWx1cmVcIi4gQW4gYWx0ZXJuYXRpdmUgaGFuZGxpbmcgZXhjZXB0aW9uYWwgYmVoYXZpb3JcbiAqIGJ5IHVzaW5nIHRoZSByZXR1cm4gdmFsdWUgaW5zdGVhZCBvZiBhbiBleGNlcHRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3VsdDxULCBFPiA9IFN1Y2Nlc3M8VCwgRT4gfCBGYWlsdXJlPFQsIEU+O1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIE1vbmFkaWMgJ1Jlc3VsdCcgdHlwZSB3aGljaCBlbmNhcHN1bGF0ZXMgd2hldGhlciBhIHByb2NlZHVyZSBzdWNjZWVkZWQgb3IgZmFpbGVkLCBhcyB3ZWxsIGFzIGl0J3MgcmV0dXJuIHZhbHVlLlxuICovXG5leHBvcnQgbmFtZXNwYWNlIFJlc3VsdCB7XG4gICAgLyoqIENvbnN0cnVjdCBhIG5ldyBzdWNjZXNzIHJlc3VsdCB3cmFwcGluZyB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHN1Y2Nlc3M8VCwgRT4odmFsdWU6IFQpOiBSZXN1bHQ8VCwgRT4ge1xuICAgICAgICByZXR1cm4gbmV3IFN1Y2Nlc3ModmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgZmFpbHVyZSB2YWx1ZSB3cmFwcGluZyB0aGUgZ2l2ZW4gZXJyb3IuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZhaWx1cmU8VCwgRT4oZXJyb3I6IEUpOiBSZXN1bHQ8VCwgRT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZhaWx1cmUoZXJyb3IpO1xuICAgIH1cblxuICAgIC8qKiBKb2luIHR3byByZXN1bHRzIHdpdGggYSBiaS1mdW5jdGlvbiBhbmQgcmV0dXJuIGEgbmV3IHJlc3VsdC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZmxhdE1hcDI8VDEsIFQyLCBPLCBFPihcbiAgICAgICAgZmlyc3Q6IFJlc3VsdDxUMSwgRT4sXG4gICAgICAgIHNlY29uZDogUmVzdWx0PFQyLCBFPixcbiAgICAgICAgZjogKGE6IFQxLCBiOiBUMikgPT4gUmVzdWx0PE8sIEU+XG4gICAgKTogUmVzdWx0PE8sIEU+IHtcbiAgICAgICAgaWYgKGZpcnN0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIGlmIChzZWNvbmQuc3VjY2Vzc2Z1bCkgcmV0dXJuIGYoZmlyc3QudmFsdWUsIHNlY29uZC52YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIHJldHVybiBmYWlsdXJlKHNlY29uZC5lcnJvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFpbHVyZShmaXJzdC5lcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1hcDI8VDEsIFQyLCBPLCBFPihcbiAgICAgICAgZmlyc3Q6IFJlc3VsdDxUMSwgRT4sXG4gICAgICAgIHNlY29uZDogUmVzdWx0PFQyLCBFPixcbiAgICAgICAgZjogKGE6IFQxLCBiOiBUMikgPT4gT1xuICAgICk6IFJlc3VsdDxPLCBFPiB7XG4gICAgICAgIHJldHVybiBmbGF0TWFwMihmaXJzdCwgc2Vjb25kLCAoYSwgYikgPT4gc3VjY2VzcyhmKGEsIGIpKSk7XG4gICAgfVxuXG4gICAgLyoqIE1hcCBhIGZhaWxhYmxlIGZ1bmN0aW9uIG92ZXIgYWxsIGVsZW1lbnRzIGluIHRoZSBsaXN0LCByZXR1cm5pbmcgZWFybHkgb24gZmFpbHVyZS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbWFwQWxsPFQsIE8sIEU+KGlucHV0OiBJdGVyYWJsZTxUPiwgZnVuYzogKGlucHV0OiBUKSA9PiBSZXN1bHQ8TywgRT4pOiBSZXN1bHQ8T1tdLCBFPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogT1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBpbnB1dCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZnVuYyhlbGVtZW50KTtcbiAgICAgICAgICAgIGlmICghb3V0cHV0LnN1Y2Nlc3NmdWwpIHJldHVybiBvdXRwdXQuY2FzdCgpO1xuXG4gICAgICAgICAgICByZXN1bHQucHVzaChvdXRwdXQudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqIENhdGNoIGFueSBlcnJvcnMgaW4gYSBjYWxsLCByZXR1cm5pbmcgYSByZXN1bHQgaW5zdGVhZC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdHJ5aW5nPFQ+KGNhbGw6ICgpID0+IFQpOiBSZXN1bHQ8VCwgRXJyb3I+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhjYWxsKCkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGEgcHJvbWlzZSB3aGljaCBtYXkgdGhyb3cgaW50byBhIHByb21pc2Ugd2hpY2ggcmV0dXJucyBhIHJlc3VsdCBvZiB0aGUgc3VjY2Vzc2Z1bCB2YWx1ZSBvciBhbiBlcnJvci4gKi9cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmM8VD4ocHJvbWlzZTogUHJvbWlzZTxUPik6IFByb21pc2U8UmVzdWx0PFQsIEVycm9yPj4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGF3YWl0IHByb21pc2UpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuXG4vKiogU3RhdGljIHNldCBlbGVtZW50IHdoaWNoIG1hdGNoZXMgZXZlcnl0aGluZy4gKi9cbmV4cG9ydCB0eXBlIEV2ZXJ5dGhpbmcgPSB7IHR5cGU6IFwiZXZlcnl0aGluZ1wiIH07XG4vKiogU3RhdGljIHNldCBlbGVtZW50IHdoaWNoIG1hdGNoZXMgbm90aGluZy4gKi9cbmV4cG9ydCB0eXBlIE5vdGhpbmcgPSB7IHR5cGU6IFwibm90aGluZ1wiIH07XG4vKiogU2V0IHdoaWNoIG1hdGNoZXMgdGhlIG5lZ2F0aW9uIG9mIGEgc2V0LiAqL1xuZXhwb3J0IHR5cGUgTmVnYXRlZDxUPiA9IHsgdHlwZTogXCJuZWdhdGVkXCI7IHZhbHVlOiBTZXQ8VD4gfTtcbi8qKiBTZXQgd2hpY2ggbWF0Y2hlcyBhbiBhY3R1YWwgc2V0IG9mIHZhbHVlcy4gICovXG5leHBvcnQgdHlwZSBBdG9tPFQ+ID0geyB0eXBlOiBcImF0b21cIjsgdmFsdWU6IFNldDxUPiB9O1xuXG4vKiogQWJzdHJhY3QgZmlsdGVyIHR5cGUgd2hpY2ggcmVwcmVzZW50cyB0aGUgcmVzdWx0cyBvZiBhcHBseWluZyBmaWx0ZXIgb3BlcmF0aW9ucyB0byB0aGUgZGF0YSBzdG9yZS4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlcjxUPiA9IEV2ZXJ5dGhpbmcgfCBOb3RoaW5nIHwgQXRvbTxUPiB8IE5lZ2F0ZWQ8VD47XG5cbi8qKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgZWZmaWNpZW50bHkgb3BlcmF0aW5nIG9uIGZpbHRlcnMuICovXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlcnMge1xuICAgIC8qKiBTdGF0aWMgZmlsdGVyIHdoaWNoIG1hdGNoZXMgZXZlcnl0aGluZy4gKi9cbiAgICBleHBvcnQgY29uc3QgRVZFUllUSElORzogRXZlcnl0aGluZyA9IHsgdHlwZTogXCJldmVyeXRoaW5nXCIgfTtcbiAgICAvKiogU3RhdGljIGZpbHRlciB3aGljaCBtYXRjaGVzIG5vdGhpbmcuICovXG4gICAgZXhwb3J0IGNvbnN0IE5PVEhJTkc6IE5vdGhpbmcgPSB7IHR5cGU6IFwibm90aGluZ1wiIH07XG4gICAgLyoqIEVtcHR5IHNldCBjb25zdGFudC4gKi9cbiAgICBleHBvcnQgY29uc3QgRU1QVFlfU0VUOiBTZXQ8YW55PiA9IG5ldyBTZXQoKTtcblxuICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgYXRvbSBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGF0b208VD4oc2V0OiBTZXQ8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBpZiAoc2V0LnNpemUgPT0gMCkgcmV0dXJuIE5PVEhJTkc7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJhdG9tXCIsIHZhbHVlOiBzZXQgfTtcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgZmlsdGVyIHRoYXQgbWF0Y2hlcyBldmVyeXRoaW5nIG9yIG5vdGhpbmcuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvbnN0YW50PFQ+KHZhbHVlOiBib29sZWFuKTogRmlsdGVyPFQ+IHtcbiAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gRVZFUllUSElORztcbiAgICAgICAgZWxzZSByZXR1cm4gTk9USElORztcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGF0b20gZmlsdGVyIHdoaWNoIGlzIE5PVEhJTkcgaWYgc2V0IGlzIHVuZGVmaW5lZC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbnVsbGFibGVBdG9tPFQ+KHNldDogU2V0PFQ+IHwgdW5kZWZpbmVkKTogRmlsdGVyPFQ+IHtcbiAgICAgICAgcmV0dXJuIHNldCAhPT0gdW5kZWZpbmVkID8gYXRvbShzZXQpIDogTk9USElORztcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmVnYXRlZCBhdG9tIGZpbHRlci4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbmVnYXRlZDxUPihzZXQ6IFNldDxUPik6IEZpbHRlcjxUPiB7XG4gICAgICAgIGlmIChzZXQuc2l6ZSA9PSAwKSByZXR1cm4gRVZFUllUSElORztcblxuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5lZ2F0ZWRcIiwgdmFsdWU6IHNldCB9O1xuICAgIH1cblxuICAgIC8qKiBQcm9kdWNlcyB0aGUgbmVnYXRpb24gb2YgYSBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG5lZ2F0ZTxUPihmaWx0ZXI6IEZpbHRlcjxUPik6IEZpbHRlcjxUPiB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJldmVyeXRoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5PVEhJTkc7XG4gICAgICAgICAgICBjYXNlIFwibm90aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBFVkVSWVRISU5HO1xuICAgICAgICAgICAgY2FzZSBcImF0b21cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmVnYXRlZChmaWx0ZXIudmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYXRvbShmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgZ2l2ZW4gZmlsdGVyIGlzIGRlZmluaXRpdmVseSBjdXJyZW50bHkgZW1wdHkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGVtcHR5PFQ+KGZpbHRlcjogRmlsdGVyPFQ+KTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJldmVyeXRoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjYXNlIFwiYXRvbVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudmFsdWUuc2l6ZSA9PSAwO1xuICAgICAgICAgICAgY2FzZSBcIm5vdGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZXNvbHZlIGEgdG9wLWxldmVsIGZpbHRlciB3aXRoIHRoZSBzZXQgb2YgYWxsIGF2YWlsYWJsZSBvYmplY3RzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiByZXNvbHZlPFQ+KGZpbHRlcjogRmlsdGVyPFQ+LCBldmVyeXRoaW5nOiBTZXQ8VD4pOiBTZXQ8VD4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBldmVyeXRoaW5nO1xuICAgICAgICAgICAgY2FzZSBcIm5vdGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFlfU0VUO1xuICAgICAgICAgICAgY2FzZSBcImF0b21cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gc2V0SW50ZXJzZWN0TmVnYXRpb24oZXZlcnl0aGluZywgZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBJbnRlcnNlY3QgYW4gaXRlcmFibGUgb2YgZmlsdGVycy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaW50ZXJzZWN0PFQ+KGVsZW1lbnRzOiBJdGVyYWJsZTxGaWx0ZXI8VD4+KTogRmlsdGVyPFQ+IHtcbiAgICAgICAgcmV0dXJuIGxhenlJbnRlcnNlY3QoZWxlbWVudHMsICh4KSA9PiB4KTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGZpbHRlcnMgbGF6aWx5LCBzaG9ydC1jaXJjdWl0aW5nIGlmIHRoZSBpbnRlcnNlY3Rpb24gd291bGQgcHJvZHVjZSBOT1RISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5SW50ZXJzZWN0PEksIFQ+KFxuICAgICAgICBlbGVtZW50czogSXRlcmFibGU8ST4sXG4gICAgICAgIHByb2R1Y2U6IChpbnB1dDogSSkgPT4gRmlsdGVyPFQ+IHwgdW5kZWZpbmVkXG4gICAgKTogRmlsdGVyPFQ+IHtcbiAgICAgICAgcmV0dXJuIGxhenlGYWlsYWJsZUludGVyc2VjdGlvbihlbGVtZW50cywgKHgpID0+IFJlc3VsdC5zdWNjZXNzKHByb2R1Y2UoeCkpKS5vckVsc2VUaHJvdygpO1xuICAgIH1cblxuICAgIC8qKiBJbnRlcnNlY3QgZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIGludGVyc2VjdGlvbiB3b3VsZCBwcm9kdWNlIE5PVEhJTkcuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGxhenlGYWlsYWJsZUludGVyc2VjdGlvbjxJLCBULCBFPihcbiAgICAgICAgZWxlbWVudHM6IEl0ZXJhYmxlPEk+LFxuICAgICAgICBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IFJlc3VsdDxGaWx0ZXI8VD4gfCB1bmRlZmluZWQsIEU+XG4gICAgKTogUmVzdWx0PEZpbHRlcjxUPiwgRT4ge1xuICAgICAgICBjb25zdCBhdG9tczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgY29uc3QgbmVnYXRpb25zOiBTZXQ8VD5bXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBtYXliZUZpbHRlciA9IHByb2R1Y2UoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIW1heWJlRmlsdGVyLnN1Y2Nlc3NmdWwpIHJldHVybiBtYXliZUZpbHRlci5jYXN0KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IG1heWJlRmlsdGVyLnZhbHVlO1xuICAgICAgICAgICAgaWYgKGZpbHRlciA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gRW1wdHkgZmlsdGVycyB3aWxsIHByb2R1Y2UgYW4gZW1wdHkgaW50ZXJzZWN0aW9uLlxuICAgICAgICAgICAgaWYgKGVtcHR5KGZpbHRlcikpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhOT1RISU5HKTtcbiAgICAgICAgICAgIC8vIEVWRVJZVEhJTkcgZmlsdGVycyBhcmUgcmVkdW5kYW50IGluIEFORHMsIHNraXAgdGhlbS5cbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJldmVyeXRoaW5nXCIpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAvLyBXaWxsIG9ubHkgYmUgbGVmdCB3aXRoIGF0b21zIG9yIG5lZ2F0aW9ucy5cbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PSBcImF0b21cIikgYXRvbXMucHVzaChmaWx0ZXIudmFsdWUpO1xuICAgICAgICAgICAgZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT0gXCJuZWdhdGVkXCIpIG5lZ2F0aW9ucy5wdXNoKGZpbHRlci52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBzdGFydCB3aXRoIHNvbWV0aGluZyBvZiB0aGUgZm9ybSBhICYmIGIgJiYgIWMgJiYgIWQuXG4gICAgICAgIC8vIElmIG5vIHRlcm1zLCB0aGVuIGV2ZXJ5dGhpbmcgd2FzIEVWRVJZVEhJTkcgc28gcmV0dXJuIHRoYXQuXG4gICAgICAgIC8vIElmIG9ubHkgYXRvbXMsIGp1c3QgaW50ZXJzZWN0IHRoZW0gKGEgJiYgYikuXG4gICAgICAgIC8vIElmIG9ubHkgbmVnYXRpb25zLCB0aGVuIHJld3JpdGUgIWMgJiYgIWQgPT4gIShjIHx8IGQpIGFuZCByZXR1cm4gbmVnYXRlZChjIHx8IGQpLlxuICAgICAgICAvLyBJZiBib3RoLCBjb21wdXRlIHggPSAoYSAmJiBiKSBhbmQgeSA9IChjIHx8IGQpLCBhbmQgdGhlbiBjb21wdXRlIHggJiYgIXkuXG5cbiAgICAgICAgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEVWRVJZVEhJTkcpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA+IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoYXRvbShzZXRJbnRlcnNlY3QoYXRvbXMpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXRvbXMubGVuZ3RoID09IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhuZWdhdGVkKHNldFVuaW9uKG5lZ2F0aW9ucykpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20oc2V0SW50ZXJzZWN0TmVnYXRpb24oc2V0SW50ZXJzZWN0KGF0b21zKSwgc2V0VW5pb24obmVnYXRpb25zKSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBVbmlvbiBmaWx0ZXJzLCBwcm9kdWNpbmcgYSBzaW5nbGUgcmVzdWx0IGZpbHRlci4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdW5pb248VD4oZmlsdGVyczogSXRlcmFibGU8RmlsdGVyPFQ+Pik6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5VW5pb24oZmlsdGVycywgKHgpID0+IHgpO1xuICAgIH1cblxuICAgIC8qKiBVbmlvbiBmaWx0ZXJzIGxhemlseSwgc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgdW5pb24gd291bGQgcHJvZHVjZSBFVkVSWVRISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5VW5pb248SSwgVD4oZWxlbWVudHM6IEl0ZXJhYmxlPEk+LCBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IEZpbHRlcjxUPiB8IHVuZGVmaW5lZCk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5RmFpbGFibGVVbmlvbihlbGVtZW50cywgKHgpID0+IFJlc3VsdC5zdWNjZXNzKHByb2R1Y2UoeCkpKS5vckVsc2VUaHJvdygpO1xuICAgIH1cblxuICAgIC8qKiBVbmlvbiBmaWx0ZXJzIGxhemlseSwgc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgdW5pb24gd291bGQgcHJvZHVjZSBFVkVSWVRISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5RmFpbGFibGVVbmlvbjxJLCBULCBFPihcbiAgICAgICAgZWxlbWVudHM6IEl0ZXJhYmxlPEk+LFxuICAgICAgICBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IFJlc3VsdDxGaWx0ZXI8VD4gfCB1bmRlZmluZWQsIEU+XG4gICAgKTogUmVzdWx0PEZpbHRlcjxUPiwgRT4ge1xuICAgICAgICBjb25zdCBhdG9tczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgY29uc3QgbmVnYXRpb25zOiBTZXQ8VD5bXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBtYXliZUZpbHRlciA9IHByb2R1Y2UoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIW1heWJlRmlsdGVyLnN1Y2Nlc3NmdWwpIHJldHVybiBtYXliZUZpbHRlci5jYXN0KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IG1heWJlRmlsdGVyLnZhbHVlO1xuICAgICAgICAgICAgaWYgKGZpbHRlciA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gRVZFUllUSElORyBmaWx0ZXJzIHdpbGwgcHJvZHVjZSBldmVyeXRoaW5nIGFsd2F5cy5cbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJldmVyeXRoaW5nXCIpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhFVkVSWVRISU5HKTtcbiAgICAgICAgICAgIC8vIEVtcHR5IGZpbHRlcnMgYXJlIHJlZHVuZGFudC5cbiAgICAgICAgICAgIGlmIChlbXB0eShmaWx0ZXIpKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gV2lsbCBvbmx5IGJlIGxlZnQgd2l0aCBhdG9tcyBvciBuZWdhdGlvbnMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gXCJhdG9tXCIpIGF0b21zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGZpbHRlci50eXBlID09IFwibmVnYXRlZFwiKSBuZWdhdGlvbnMucHVzaChmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3IgaXMgYSBiaXQgaGFyZGVyIHRoYW4gQU5EIHNpbmNlIHlvdSBjYW4gZW5kIHVwIHdpdGggc2NlbmFyaW9zIGxpa2UgYSB8fCAhYiwgd2hpY2ggYXJlXG4gICAgICAgIC8vIG5vdCBjb21wdXRhYmxlIGRpcmVjdGx5LiBIb3dldmVyLCB3ZSBjYW4gZG8gYm9vbGVhbiBsb2dpYyB0byBhbHdheXMgcHJvZHVjZSBhIHNpbmdsZVxuICAgICAgICAvLyBzZXQuXG4gICAgICAgIC8vIElmIG5vdGhpbmcgPT4gbm90aGluZywgbm8gbm9uLWVtcHR5IGZpbHRlcnMuXG4gICAgICAgIC8vIElmIGF0b21zIGJ1dCBubyBuZWdhdGlvbnMgKGEgfHwgYiB8fCBjKSA9PiBjb21wdXRlIHVuaW9uLlxuICAgICAgICAvLyBJZiBuZWdhdGlvbnMgYnV0IG5vIGF0b21zICghYSB8fCAhYiB8fCAhYykgPT4gcmV3cml0ZSBhcyAhKGEgJiYgYiAmJiBjKS5cbiAgICAgICAgLy8gSWYgYm90aDogKGEgfHwgYiB8fCAhYyB8fCAhZCkgPT4gY29tYmluZSBlYWNoIHBhcnQgaW50byAoYSB8fCBiKSB8fCAoIWMgfHwgIWQpID0+IChhIHx8IGIpIHx8ICEoYyAmJiBkKSA9PiBlIHx8ICFmID0+ICEoIWUgJiYgZikgd2hpY2hcbiAgICAgICAgLy8gY2FuIGJlIGNvbXB1dGVkIHVzaW5nIGludGVyc2VjdGlvbiBsb2dpYy5cblxuICAgICAgICBpZiAoYXRvbXMubGVuZ3RoID09IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoTk9USElORyk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXRvbXMubGVuZ3RoID4gMCAmJiBuZWdhdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20oc2V0VW5pb24oYXRvbXMpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXRvbXMubGVuZ3RoID09IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLm5lZ2F0ZWQoc2V0SW50ZXJzZWN0KG5lZ2F0aW9ucykpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhuZWdhdGVkKHNldEludGVyc2VjdE5lZ2F0aW9uKHNldEludGVyc2VjdChuZWdhdGlvbnMpLCBzZXRVbmlvbihhdG9tcykpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSB0aGUgaW50ZXJzZWN0aW9uIG9mIHNldHMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNldEludGVyc2VjdDxUPihzZXRzOiBTZXQ8VD5bXSk6IFNldDxUPiB7XG4gICAgICAgIGlmIChzZXRzLmxlbmd0aCA9PSAwKSByZXR1cm4gbmV3IFNldCgpO1xuICAgICAgICBlbHNlIGlmIChzZXRzLmxlbmd0aCA9PSAxKSByZXR1cm4gc2V0c1swXTtcblxuICAgICAgICAvLyBTb3J0IGJ5IHNpemUgYW5kIGNvbWJpbmUgc21hbGxlc3QgYW5kIGxhcmdlc3Qgc2V0IHJlcGVhdGVkbHkuXG4gICAgICAgIGxldCBzb3J0ZWQgPSAoW10gYXMgU2V0PFQ+W10pLmNvbmNhdChzZXRzKS5zb3J0KChhLCBiKSA9PiBhLnNpemUgLSBiLnNpemUpO1xuXG4gICAgICAgIHdoaWxlIChzb3J0ZWQubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldDxUPigpO1xuICAgICAgICAgICAgY29uc3QgbGFyZ2VzdCA9IHNvcnRlZC5wb3AoKSE7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2Ygc29ydGVkWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxhcmdlc3QuaGFzKGVsZW1lbnQpKSByZXN1bHQuYWRkKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzb3J0ZWRbMF0gPSByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc29ydGVkWzBdO1xuICAgIH1cblxuICAgIC8qKiBFZmZpY2llbnRseSBjb21wdXRlIHRoZSB1bmlvbiBvZiBzZXRzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRVbmlvbjxUPihzZXRzOiBTZXQ8VD5bXSk6IFNldDxUPiB7XG4gICAgICAgIGlmIChzZXRzLmxlbmd0aCA9PSAwKSByZXR1cm4gbmV3IFNldCgpO1xuICAgICAgICBlbHNlIGlmIChzZXRzLmxlbmd0aCA9PSAxKSByZXR1cm4gc2V0c1swXTtcblxuICAgICAgICAvLyBJJ20gbm90IHN1cmUgaWYgdGhlcmUgaXMgYW55IHVzZWZ1bCBvcHRpbWl6YXRpb24gZm9yIHNldCB1bmlvbnMsIHNvIGp1c3QgYWRkIHRoZW0gYWxsIEkgZ3Vlc3MuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgZm9yIChjb25zdCBzZXQgb2Ygc2V0cykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHNldCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBFZmZpY2llbnRseSBjb21wdXRlIGF0b20gJiYgIW5lZ2F0ZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNldEludGVyc2VjdE5lZ2F0aW9uPFQ+KGF0b206IFNldDxUPiwgbmVnYXRlZDogU2V0PFQ+KTogU2V0PFQ+IHtcbiAgICAgICAgaWYgKGF0b20uc2l6ZSA+IG5lZ2F0ZWQuc2l6ZSkge1xuICAgICAgICAgICAgLy8gVE9ETzogV291bGQgYmUgbmljZSB0byBhdm9pZCB0aGUgY29weSwgc2luY2UgSSdtIG5vdCBzdXJlIGl0J3MgYW55IGZhc3RlciB3aXRoIHRoZSBjb3B5LlxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldChhdG9tKTtcbiAgICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgbmVnYXRlZCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5kZWxldGUoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gLyogYXRvbS5zaXplIDwgbmVnYXRpb24uc2l6ZSAqLyBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgYXRvbSkge1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGVkLmhhcyhlbGVtZW50KSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmFkZChlbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IEZpbHRlcnMgfSBmcm9tIFwiLi9maWx0ZXJzXCI7XG5cbi8qKiBDb21wYXJpc29uIG9wZXJhdG9ycyB3aGljaCB5aWVsZCB0cnVlL2ZhbHNlLiAqL1xuZXhwb3J0IHR5cGUgQ29tcGFyZU9wID0gXCI+XCIgfCBcIj49XCIgfCBcIjw9XCIgfCBcIjxcIiB8IFwiPVwiIHwgXCIhPVwiO1xuLyoqIEFyaXRobWV0aWMgb3BlcmF0b3JzIHdoaWNoIHlpZWxkIG51bWJlcnMgYW5kIG90aGVyIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEFyaXRobWV0aWNPcCA9IFwiK1wiIHwgXCItXCIgfCBcIipcIiB8IFwiL1wiIHwgXCIlXCIgfCBcIiZcIiB8IFwifFwiO1xuLyoqIEluZGV4IGEgdmFsdWUgaW50byBhbm90aGVyIHZhbHVlLiAqL1xuZXhwb3J0IHR5cGUgTG9naWNhbE9wID0gXCJpbmRleFwiO1xuLyoqIEFsbCB2YWxpZCBiaW5hcnkgb3BlcmF0b3JzLiAqL1xuZXhwb3J0IHR5cGUgQmluYXJ5T3AgPSBDb21wYXJlT3AgfCBBcml0aG1ldGljT3AgfCBMb2dpY2FsT3A7XG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb24gPVxuICAgIHwgTGl0ZXJhbEV4cHJlc3Npb25cbiAgICB8IFZhcmlhYmxlRXhwcmVzc2lvblxuICAgIHwgTGlzdEV4cHJlc3Npb25cbiAgICB8IE9iamVjdEV4cHJlc3Npb25cbiAgICB8IEJpbmFyeU9wRXhwcmVzc2lvblxuICAgIHwgRnVuY3Rpb25FeHByZXNzaW9uXG4gICAgfCBMYW1iZGFFeHByZXNzaW9uXG4gICAgfCBOZWdhdGVkRXhwcmVzc2lvbjtcblxuLyoqIExpdGVyYWwgcmVwcmVzZW50YXRpb24gb2Ygc29tZSBmaWVsZCB0eXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJsaXRlcmFsXCI7XG4gICAgdmFsdWU6IExpdGVyYWw7XG59XG5cbi8qKiBBIHZhcmlhYmxlIGZpZWxkIGZvciBhIHZhcmlhYmxlIHdpdGggYSBnaXZlbiBuYW1lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZUV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwidmFyaWFibGVcIjtcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBBIGxpc3QgbGl0ZXJhbCwgd2hpY2ggaXMgYW4gb3JkZXJlZCBjb2xsZWN0aW9uIG9mIGZpZWxkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGlzdFwiO1xuICAgIHZhbHVlczogRXhwcmVzc2lvbltdO1xufVxuXG4vKiogQW4gb2JqZWN0IGxpdGVyYWwsIHdoaWNoIGlzIGEgbWFwcGluZyBvZiBuYW1lIHRvIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYmplY3RFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcIm9iamVjdFwiO1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgRXhwcmVzc2lvbj47XG59XG5cbi8qKiBBIGJpbmFyeSBvcGVyYXRvciBleHByZXNzaW9uIHdoaWNoIGNvbWJpbmVzIHR3byBzdWJub2RlcyBzb21laG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5hcnlPcEV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwiYmluYXJ5b3BcIjtcbiAgICBsZWZ0OiBFeHByZXNzaW9uO1xuICAgIHJpZ2h0OiBFeHByZXNzaW9uO1xuICAgIG9wOiBCaW5hcnlPcDtcbn1cblxuLyoqIEEgZnVuY3Rpb24gZXhwcmVzc2lvbiB3aGljaCBjYWxscyBhIGZ1bmN0aW9uIG9uIDAgb3IgbW9yZSBhcmd1bWVudHMuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJmdW5jdGlvblwiO1xuICAgIC8qKiBFaXRoZXIgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBvciBhIEZ1bmN0aW9uIG9iamVjdC4gKi9cbiAgICBmdW5jOiBFeHByZXNzaW9uO1xuICAgIC8qKiBUaGUgbGlzdCBvZiBhcmd1bWVudHMgYmVpbmcgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi4gKi9cbiAgICBhcmd1bWVudHM6IEV4cHJlc3Npb25bXTtcbn1cblxuLyoqIEFuIGlubGluZSBmdW5jdGlvbiBhY2NlcHRpbmcgb25lIG9yIG1vcmUgYXJndW1lbnRzIGFuZCBwcm9kdWNpbmcgYSB2YWx1ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJsYW1iZGFcIjtcbiAgICAvKiogQW4gb3JkZXJlZCBsaXN0IG9mIG5hbWVkIGFyZ3VtZW50cy4gKi9cbiAgICBhcmd1bWVudHM6IHN0cmluZ1tdO1xuICAgIC8qKiBUaGUgZmllbGQgd2hpY2ggd2lsbCBiZSBldmFsdWF0ZWQgdXNpbmcgdGhlIGFyZ3VtZW50cyBpbiBjb250ZXh0LiAqL1xuICAgIHZhbHVlOiBFeHByZXNzaW9uO1xufVxuXG4vKiogQW4gZXhwcmVzc2lvbiB3aGljaCBuZWdhdGVzIHRoZSB2YWx1ZSBvZiB0aGUgb3JpZ2luYWwgZmllbGQuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lZ2F0ZWRFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcIm5lZ2F0ZWRcIjtcblxuICAgIC8qKiBUaGUgY2hpbGQgZmllbGQgdG8gbmVnYXRlLiAqL1xuICAgIGNoaWxkOiBFeHByZXNzaW9uO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIEV4cHJlc3Npb25zIHtcbiAgICAvKiogVGhlIGltcGxpY2l0IGZpZWxkIHJlZmVyZW5jaW5nIHRoZSBjdXJyZW50IGZpZWxkLiAqL1xuICAgIGV4cG9ydCBjb25zdCBST1c6IHN0cmluZyA9IFwiJHJvd1wiO1xuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlKG5hbWU6IHN0cmluZyk6IFZhcmlhYmxlRXhwcmVzc2lvbiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwidmFyaWFibGVcIiwgbmFtZSB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBsaXRlcmFsKHZhbHVlOiBMaXRlcmFsKTogTGl0ZXJhbEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImxpdGVyYWxcIiwgdmFsdWUgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gYmluYXJ5T3AobGVmdDogRXhwcmVzc2lvbiwgb3A6IEJpbmFyeU9wLCByaWdodDogRXhwcmVzc2lvbik6IEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImJpbmFyeW9wXCIsIGxlZnQsIG9wLCByaWdodCB9IGFzIEJpbmFyeU9wRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gaW5kZXgob2JqOiBFeHByZXNzaW9uLCBpbmRleDogRXhwcmVzc2lvbik6IEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImJpbmFyeW9wXCIsIGxlZnQ6IG9iaiwgcmlnaHQ6IGluZGV4LCBvcDogXCJpbmRleFwiIH07XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnRzIGEgc3RyaW5nIGluIGRvdC1ub3RhdGlvbi1mb3JtYXQgaW50byBhIHZhcmlhYmxlIHdoaWNoIGluZGV4ZXMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZGV4VmFyaWFibGUobmFtZTogc3RyaW5nKTogRXhwcmVzc2lvbiB7XG4gICAgICAgIGxldCBwYXJ0cyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICBsZXQgcmVzdWx0OiBFeHByZXNzaW9uID0gRXhwcmVzc2lvbnMudmFyaWFibGUocGFydHNbMF0pO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgcGFydHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIEV4cHJlc3Npb25zLmxpdGVyYWwocGFydHNbaW5kZXhdKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBsYW1iZGEoYXJnczogc3RyaW5nW10sIHZhbHVlOiBFeHByZXNzaW9uKTogTGFtYmRhRXhwcmVzc2lvbiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwibGFtYmRhXCIsIGFyZ3VtZW50czogYXJncywgdmFsdWUgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gZnVuYyhmdW5jOiBFeHByZXNzaW9uLCBhcmdzOiBFeHByZXNzaW9uW10pOiBGdW5jdGlvbkV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImZ1bmN0aW9uXCIsIGZ1bmMsIGFyZ3VtZW50czogYXJncyB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBsaXN0KHZhbHVlczogRXhwcmVzc2lvbltdKTogTGlzdEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImxpc3RcIiwgdmFsdWVzIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG9iamVjdCh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+KTogT2JqZWN0RXhwcmVzc2lvbiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwib2JqZWN0XCIsIHZhbHVlcyB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBuZWdhdGUoY2hpbGQ6IEV4cHJlc3Npb24pOiBOZWdhdGVkRXhwcmVzc2lvbiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwibmVnYXRlZFwiLCBjaGlsZCB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0NvbXBhcmVPcChvcDogQmluYXJ5T3ApOiBvcCBpcyBDb21wYXJlT3Age1xuICAgICAgICByZXR1cm4gb3AgPT0gXCI8PVwiIHx8IG9wID09IFwiPFwiIHx8IG9wID09IFwiPlwiIHx8IG9wID09IFwiPj1cIiB8fCBvcCA9PSBcIiE9XCIgfHwgb3AgPT0gXCI9XCI7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYSBzZXQgb2YgYWxsIHVuYm91bmQgdmFyaWFibGVzIChpLmUuLCB2YXJpYWJsZXMgbm90IHByb3ZpZGVkIGJ5IGByb3dgLCBsYW1iZGFzLCBvciBzaW1pbGFyLikgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdW5ib3VuZFZhcmlhYmxlcyhleHByOiBFeHByZXNzaW9uLCBib3VuZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtST1ddKSk6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgc3dpdGNoIChleHByLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJiaW5hcnlvcFwiOlxuICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBgcm93W1wiLi4uLlwiXWAuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBleHByLm9wID09PSBcImluZGV4XCIgJiZcbiAgICAgICAgICAgICAgICAgICAgZXhwci5sZWZ0LnR5cGUgPT0gXCJ2YXJpYWJsZVwiICYmXG4gICAgICAgICAgICAgICAgICAgIGV4cHIubGVmdC5uYW1lID09IFJPVyAmJlxuICAgICAgICAgICAgICAgICAgICBleHByLnJpZ2h0LnR5cGUgPT0gXCJsaXRlcmFsXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgTGl0ZXJhbHMuaXNTdHJpbmcoZXhwci5yaWdodC52YWx1ZSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvdW5kLmhhcyhleHByLnJpZ2h0LnZhbHVlKSkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gbmV3IFNldChbZXhwci5yaWdodC52YWx1ZV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IGNoZWNrIGxlZnQgYW5kIHJpZ2h0LlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKFt1bmJvdW5kVmFyaWFibGVzKGV4cHIubGVmdCwgYm91bmQpLCB1bmJvdW5kVmFyaWFibGVzKGV4cHIucmlnaHQsIGJvdW5kKV0pO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpbHRlcnMuc2V0VW5pb24oZXhwci5hcmd1bWVudHMubWFwKChhKSA9PiB1bmJvdW5kVmFyaWFibGVzKGEsIGJvdW5kKSkpO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0JvdW5kID0gYm91bmQgPz8gbmV3IFNldCgpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXJnIG9mIGV4cHIuYXJndW1lbnRzKSBuZXdCb3VuZC5hZGQoYXJnKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB1bmJvdW5kVmFyaWFibGVzKGV4cHIudmFsdWUsIG5ld0JvdW5kKTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpbHRlcnMuc2V0VW5pb24oZXhwci52YWx1ZXMubWFwKCh2KSA9PiB1bmJvdW5kVmFyaWFibGVzKHYsIGJvdW5kKSkpO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5ib3VuZFZhcmlhYmxlcyhleHByLmNoaWxkLCBib3VuZCk7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpbHRlcnMuc2V0VW5pb24oT2JqZWN0LnZhbHVlcyhleHByLnZhbHVlcykubWFwKCh2KSA9PiB1bmJvdW5kVmFyaWFibGVzKHYsIGJvdW5kKSkpO1xuICAgICAgICAgICAgY2FzZSBcInZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKGJvdW5kICYmIGJvdW5kLmhhcyhleHByLm5hbWUpKSByZXR1cm4gbmV3IFNldCgpO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIG5ldyBTZXQoW2V4cHIubmFtZV0pO1xuICAgICAgICAgICAgY2FzZSBcImxpdGVyYWxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbmRlciBhbiBleHByZXNzaW9uIGFzIGEgc3RyaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB0b1N0cmluZyhleHByOiBFeHByZXNzaW9uKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChleHByLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJiaW5hcnlvcFwiOlxuICAgICAgICAgICAgICAgIGlmIChleHByLm9wID09PSBcImluZGV4XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3RvU3RyaW5nKGV4cHIubGVmdCl9WyR7dG9TdHJpbmcoZXhwci5yaWdodCl9XWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3RvU3RyaW5nKGV4cHIubGVmdCl9ICR7ZXhwci5vcH0gJHt0b1N0cmluZyhleHByLnJpZ2h0KX1gO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3RvU3RyaW5nKGV4cHIuZnVuYyl9KCR7ZXhwci5hcmd1bWVudHMubWFwKHRvU3RyaW5nKS5qb2luKFwiLCBcIil9KWA7XG4gICAgICAgICAgICBjYXNlIFwibGFtYmRhXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtleHByLmFyZ3VtZW50cy5qb2luKFwiLCBcIil9KSA9PiAke3RvU3RyaW5nKGV4cHIudmFsdWUpfWA7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgWyR7ZXhwci52YWx1ZXMubWFwKHRvU3RyaW5nKS5qb2luKFwiLCBcIil9XWA7XG4gICAgICAgICAgICBjYXNlIFwibmVnYXRlZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgISR7dG9TdHJpbmcoZXhwci5jaGlsZCl9YDtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYHske09iamVjdC5lbnRyaWVzKGV4cHIudmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChbaywgdl0pID0+IGAke2t9OiAke3RvU3RyaW5nKHYpfWApXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIil9fWA7XG4gICAgICAgICAgICBjYXNlIFwidmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwci5uYW1lO1xuICAgICAgICAgICAgY2FzZSBcImxpdGVyYWxcIjpcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVkID0gTGl0ZXJhbHMud3JhcFZhbHVlKGV4cHIudmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgXCIke3dyYXBwZWQudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExpdGVyYWxzLnRvU3RyaW5nKHdyYXBwZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjb25zdCBOVUxMID0gRXhwcmVzc2lvbnMubGl0ZXJhbChudWxsKTtcbn1cbiIsICIvKiogUGFyc2UgaW5saW5lIGZpZWxkcyBhbmQgb3RoZXIgZW1iZWRkZWQgbWV0YWRhdGEgaW4gYSBsaW5lLiAqL1xuXG5pbXBvcnQgeyBQUklNSVRJVkVTIH0gZnJvbSBcImV4cHJlc3Npb24vcGFyc2VyXCI7XG5pbXBvcnQgeyBMaXRlcmFsIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0ICogYXMgUCBmcm9tIFwicGFyc2ltbW9uXCI7XG5pbXBvcnQgZW1vamlSZWdleCBmcm9tIFwiZW1vamktcmVnZXhcIjtcbmltcG9ydCB7IEpzb25Db252ZXJzaW9uLCBKc29uTGl0ZXJhbCB9IGZyb20gXCJpbmRleC90eXBlcy9qc29uL2NvbW1vblwiO1xuXG4vKiogQSBwYXJzZWQgaW5saW5lIGZpZWxkIGZyb20gYSBzcGVjaWZpYyBsaW5lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbElubGluZUZpZWxkIHtcbiAgICAvKiogVGhlIHJhdyBwYXJzZWQga2V5LiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIC8qKiBUaGUgcmF3IHZhbHVlIG9mIHRoZSBmaWVsZC4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICBzdGFydDogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuICovXG4gICAgc3RhcnRWYWx1ZTogbnVtYmVyO1xuICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgZW5kOiBudW1iZXI7XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBGdWxsIGlubGluZSBmaWVsZCBtZXRhZGF0YSBmb3IgYW4gb2JqZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSBhY3R1YWwga2V5IGRlc2NyaWJpbmcgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgaW5saW5lIGZpZWxkLiAqL1xuICAgIHJhdzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFyc2VkIHZhbHVlLiAqL1xuICAgIHZhbHVlOiBMaXRlcmFsO1xuICAgIC8qKiBGdWxsIHBvc2l0aW9uIGluZm9ybWF0aW9uIGZvciB3aGVyZSB0aGUgaW5saW5lIGZpZWxkIGlzIGxvY2F0ZWQgaW4gdGhlIGRvY3VtZW50LiAqL1xuICAgIHBvc2l0aW9uOiB7XG4gICAgICAgIC8qKiBUaGUgbGluZSBudW1iZXIgdGhlIGlubGluZSBmaWVsZCBhcHBlYXJzIG9uLiAqL1xuICAgICAgICBsaW5lOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICAgICAgc3RhcnQ6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBzdGFydCBjb2x1bW4gb2YgdGhlICp2YWx1ZSogZm9yIHRoZSBmaWVsZC4gSW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICc6OicuICovXG4gICAgICAgIHN0YXJ0VmFsdWU6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBlbmQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICAgICAgZW5kOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogSWYgdGhpcyBpbmxpbmUgZmllbGQgd2FzIGRlZmluZWQgdmlhIGEgd3JhcHBpbmcgKCdbJyBvciAnKCcgb3IgJ2xpbmsnKSwgdGhlbiB0aGUgd3JhcHBpbmcgdGhhdCB3YXMgdXNlZC4gKi9cbiAgICB3cmFwcGluZz86IHN0cmluZztcbn1cblxuLyoqIEpTT04sIHNlcmlhbGl6YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhbiBpbmxpbmUgZmllbGQuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25JbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSBhY3R1YWwga2V5IGRlc2NyaWJpbmcgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgaW5saW5lIGZpZWxkLiAqL1xuICAgIHJhdzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFyc2VkIHZhbHVlLiAqL1xuICAgIHZhbHVlOiBKc29uTGl0ZXJhbDtcbiAgICAvKiogRnVsbCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igd2hlcmUgdGhlIGlubGluZSBmaWVsZCBpcyBsb2NhdGVkIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBwb3NpdGlvbjoge1xuICAgICAgICAvKiogVGhlIGxpbmUgbnVtYmVyIHRoZSBpbmxpbmUgZmllbGQgYXBwZWFycyBvbi4gKi9cbiAgICAgICAgbGluZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuIEltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnOjonLiAqL1xuICAgICAgICBzdGFydFZhbHVlOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIGVuZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBDb252ZXJ0IGFuIGlubGluZSBmaWVsZCB0byBhIEpTT04gZm9ybWF0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25JbmxpbmVGaWVsZChmaWVsZDogSW5saW5lRmllbGQpOiBKc29uSW5saW5lRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBmaWVsZCwgeyB2YWx1ZTogSnNvbkNvbnZlcnNpb24uanNvbihmaWVsZC52YWx1ZSkgfSk7XG59XG5cbi8qKiBDb252ZXJ0IGEgSlNPTiBpbmxpbmUgZmllbGQgYmFjayB0byBhIHJlZ3VsYXIgZmllbGQuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVJbmxpbmVGaWVsZChmaWVsZDogSnNvbklubGluZUZpZWxkKTogSW5saW5lRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBmaWVsZCwgeyB2YWx1ZTogSnNvbkNvbnZlcnNpb24udmFsdWUoZmllbGQudmFsdWUpIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChsb2NhbDogTG9jYWxJbmxpbmVGaWVsZCwgbGluZW5vOiBudW1iZXIpOiBJbmxpbmVGaWVsZDtcbmV4cG9ydCBmdW5jdGlvbiBhc0lubGluZUZpZWxkKGxvY2FsOiBMb2NhbElubGluZUZpZWxkW10sIGxpbmVubzogbnVtYmVyKTogSW5saW5lRmllbGRbXTtcbi8qKiBDb252ZXJ0IGEgbG9jYWwgaW5saW5lIGZpZWxkIGludG8gYSBmdWxsIGlubGluZSBmaWVsZCBieSBwZXJmb3JtaW5nIHBhcnNpbmcgYW5kIGFkZGluZyB0aGUgY29ycmVjdCBsaW5lIG51bWJlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc0lubGluZUZpZWxkKFxuICAgIGxvY2FsOiBMb2NhbElubGluZUZpZWxkIHwgTG9jYWxJbmxpbmVGaWVsZFtdLFxuICAgIGxpbmVubzogbnVtYmVyXG4pOiBJbmxpbmVGaWVsZCB8IElubGluZUZpZWxkW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsKSkge1xuICAgICAgICByZXR1cm4gbG9jYWwubWFwKChmKSA9PiBhc0lubGluZUZpZWxkKGYsIGxpbmVubykpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogbG9jYWwua2V5LFxuICAgICAgICByYXc6IGxvY2FsLnZhbHVlLFxuICAgICAgICB2YWx1ZTogcGFyc2VJbmxpbmVWYWx1ZShsb2NhbC52YWx1ZSksXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lbm8sXG4gICAgICAgICAgICBzdGFydDogbG9jYWwuc3RhcnQsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBsb2NhbC5zdGFydFZhbHVlLFxuICAgICAgICAgICAgZW5kOiBsb2NhbC5lbmQsXG4gICAgICAgIH0sXG4gICAgICAgIHdyYXBwaW5nOiBsb2NhbC53cmFwcGluZyxcbiAgICB9O1xufVxuXG4vKiogVGhlIHdyYXBwZXIgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhbiBpbmxpbmUgZmllbGQuICovXG5leHBvcnQgY29uc3QgSU5MSU5FX0ZJRUxEX1dSQVBQRVJTOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IE9iamVjdC5mcmVlemUoe1xuICAgIFwiW1wiOiBcIl1cIixcbiAgICBcIihcIjogXCIpXCIsXG59KTtcblxuLyoqXG4gKiBGaW5kIGEgbWF0Y2hpbmcgY2xvc2luZyBicmFja2V0IHRoYXQgb2NjdXJzIGF0IG9yIGFmdGVyIGBzdGFydGAsIHJlc3BlY3RpbmcgbmVzdGluZyBhbmQgZXNjYXBlcy4gSWYgZm91bmQsXG4gKiByZXR1cm5zIHRoZSB2YWx1ZSBjb250YWluZWQgd2l0aGluIGFuZCB0aGUgc3RyaW5nIGluZGV4IGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZhbHVlLlxuICovXG5mdW5jdGlvbiBmaW5kQ2xvc2luZyhcbiAgICBsaW5lOiBzdHJpbmcsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBvcGVuOiBzdHJpbmcsXG4gICAgY2xvc2U6IHN0cmluZ1xuKTogeyB2YWx1ZTogc3RyaW5nOyBlbmRJbmRleDogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBuZXN0aW5nID0gMDtcbiAgICBsZXQgZXNjYXBlZCA9IGZhbHNlO1xuICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnQ7IGluZGV4IDwgbGluZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBsaW5lLmNoYXJBdChpbmRleCk7XG5cbiAgICAgICAgLy8gQWxsb3dzIGZvciBkb3VibGUgZXNjYXBlcyBsaWtlICdcXFxcJyB0byBiZSByZW5kZXJlZCBub3JtYWxseS5cbiAgICAgICAgaWYgKGNoYXIgPT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXNjYXBlZCwgaWdub3JlIHRoZSBuZXh0IGNoYXJhY3RlciBmb3IgY29tcHV0aW5nIG5lc3RpbmcsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpdCBpcy5cbiAgICAgICAgaWYgKGVzY2FwZWQpIHtcbiAgICAgICAgICAgIGVzY2FwZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYXIgPT0gb3BlbikgbmVzdGluZysrO1xuICAgICAgICBlbHNlIGlmIChjaGFyID09IGNsb3NlKSBuZXN0aW5nLS07XG5cbiAgICAgICAgLy8gT25seSBvY2N1cnMgaWYgd2UgYXJlIG9uIGEgY2xvc2UgY2hhcmFjdGVyIGFuZCB0cmhlcmUgaXMgbm8gbW9yZSBuZXN0aW5nLlxuICAgICAgICBpZiAobmVzdGluZyA8IDApIHJldHVybiB7IHZhbHVlOiBsaW5lLnN1YnN0cmluZyhzdGFydCwgaW5kZXgpLnRyaW0oKSwgZW5kSW5kZXg6IGluZGV4ICsgMSB9O1xuXG4gICAgICAgIGVzY2FwZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogRmluZCB0aGUgJzo6JyBzZXBhcmF0b3IgaW4gYW4gaW5saW5lIGZpZWxkLiAqL1xuZnVuY3Rpb24gZmluZFNlcGFyYXRvcihsaW5lOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIpOiB7IGtleTogc3RyaW5nOyB2YWx1ZUluZGV4OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlcCA9IGxpbmUuaW5kZXhPZihcIjo6XCIsIHN0YXJ0KTtcbiAgICBpZiAoc2VwIDwgMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7IGtleTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIHNlcCkudHJpbSgpLCB2YWx1ZUluZGV4OiBzZXAgKyAyIH07XG59XG5cbi8qKiBUcnkgdG8gY29tcGxldGVseSBwYXJzZSBhbiBpbmxpbmUgZmllbGQgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiBBc3N1bWVzIGBzdGFydGAgaXMgb24gYSB3cmFwcGluZyBjaGFyYWN0ZXIuICovXG5mdW5jdGlvbiBmaW5kU3BlY2lmaWNJbmxpbmVGaWVsZChsaW5lOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIpOiBMb2NhbElubGluZUZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgb3BlbiA9IGxpbmUuY2hhckF0KHN0YXJ0KTtcblxuICAgIGxldCBrZXkgPSBmaW5kU2VwYXJhdG9yKGxpbmUsIHN0YXJ0ICsgMSk7XG4gICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gRmFpbCB0aGUgbWF0Y2ggaWYgd2UgZmluZCBhbnkgc2VwYXJhdG9yIGNoYXJhY3RlcnMgKG5vdCBhbGxvd2VkIGluIGtleXMpLlxuICAgIGZvciAobGV0IHNlcCBvZiBPYmplY3Qua2V5cyhJTkxJTkVfRklFTERfV1JBUFBFUlMpLmNvbmNhdChPYmplY3QudmFsdWVzKElOTElORV9GSUVMRF9XUkFQUEVSUykpKSB7XG4gICAgICAgIGlmIChrZXkua2V5LmluY2x1ZGVzKHNlcCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gZmluZENsb3NpbmcobGluZSwga2V5LnZhbHVlSW5kZXgsIG9wZW4sIElOTElORV9GSUVMRF9XUkFQUEVSU1tvcGVuXSk7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGtleS5rZXksXG4gICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBzdGFydFZhbHVlOiBrZXkudmFsdWVJbmRleCxcbiAgICAgICAgZW5kOiB2YWx1ZS5lbmRJbmRleCxcbiAgICAgICAgd3JhcHBpbmc6IG9wZW4sXG4gICAgfTtcbn1cblxuLyoqIFBhcnNlIGEgdGV4dHVhbCBpbmxpbmUgZmllbGQgdmFsdWUgaW50byBzb21ldGhpbmcgd2UgY2FuIHdvcmsgd2l0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlubGluZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBMaXRlcmFsIHtcbiAgICAvLyBFbXB0eSBpbmxpbmUgdmFsdWVzIChpLmUuLCBubyB0ZXh0KSBzaG91bGQgbWFwIHRvIG51bGwgdG8gbWF0Y2ggbG9uZy10ZXJtIERhdGF2aWV3IHNlbWFudGljcy5cbiAgICAvLyBOdWxsIGlzIGFsc28gYSBtb3JlIHVuaXZlcnNhbCB0eXBlIHRvIGRlYWwgd2l0aCB0aGFuIHN0cmluZ3MsIHNpbmNlIGFsbCBmdW5jdGlvbnMgYWNjZXB0IG51bGxzLlxuICAgIGlmICh2YWx1ZS50cmltKCkgPT0gXCJcIikgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBUaGUgc3RyaXBwZWQgbGl0ZXJhbCBmaWVsZCBwYXJzZXIgdW5kZXJzdGFuZHMgYWxsIG9mIHRoZSBub24tYXJyYXkvbm9uLW9iamVjdCBmaWVsZHMgYW5kIGNhbiBwYXJzZSB0aGVtIGZvciB1cy5cbiAgICAvLyBJbmxpbmUgZmllbGQgb2JqZWN0cyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQ7IGlubGluZSBhcnJheSBvYmplY3RzIGhhdmUgdG8gYmUgaGFuZGxlZCBieSB0aGUgcGFyc2VyXG4gICAgLy8gc2VwYXJhdGVseS5cbiAgICBsZXQgaW5saW5lID0gUFJJTUlUSVZFUy5pbmxpbmVGaWVsZC5wYXJzZSh2YWx1ZSk7XG4gICAgaWYgKGlubGluZS5zdGF0dXMpIHJldHVybiBpbmxpbmUudmFsdWU7XG4gICAgZWxzZSByZXR1cm4gdmFsdWU7XG59XG5cbi8qKiBFeHRyYWN0cyBpbmxpbmUgZmllbGRzIG9mIHRoZSBmb3JtICdba2V5OjogdmFsdWVdJyBmcm9tIGEgbGluZSBvZiB0ZXh0LiBUaGlzIGlzIGRvbmUgaW4gYSByZWxhdGl2ZWx5XG4gKiBcInJvYnVzdFwiIHdheSB0byBhdm9pZCBmYWlsaW5nIGR1ZSB0byBiYWQgbmVzdGluZyBvciBvdGhlciBpbnRlcmZlcmluZyBNYXJrZG93biBzeW1ib2xzOlxuICpcbiAqIC0gTG9vayBmb3IgYW55IHdyYXBwZXJzICgnWycgYW5kICcoJykgaW4gdGhlIGxpbmUsIHRyeWluZyB0byBwYXJzZSB3aGF0ZXZlciBjb21lcyBhZnRlciBpdCBhcyBhbiBpbmxpbmUga2V5OjouXG4gKiAtIElmIHN1Y2Nlc3NmdWwsIHNjYW4gdW50aWwgeW91IGZpbmQgYSBtYXRjaGluZyBlbmQgYnJhY2tldCwgYW5kIHBhcnNlIHdoYXRldmVyIHJlbWFpbnMgYXMgYW4gaW5saW5lIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdElubGluZUZpZWxkcyhsaW5lOiBzdHJpbmcsIGluY2x1ZGVUYXNrRmllbGRzOiBib29sZWFuID0gZmFsc2UpOiBMb2NhbElubGluZUZpZWxkW10ge1xuICAgIGxldCBmaWVsZHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuICAgIGZvciAobGV0IHdyYXBwZXIgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKSkge1xuICAgICAgICBsZXQgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyKTtcbiAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZEZpZWxkID0gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZSwgZm91bmRJbmRleCk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBmb3VuZEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKHBhcnNlZEZpZWxkKTtcbiAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgcGFyc2VkRmllbGQuZW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpbmNsdWRlVGFza0ZpZWxkcykgZmllbGRzID0gZmllbGRzLmNvbmNhdChleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZSkpO1xuXG4gICAgZmllbGRzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnQgLSBiLnN0YXJ0KTtcblxuICAgIGxldCBmaWx0ZXJlZEZpZWxkczogTG9jYWxJbmxpbmVGaWVsZFtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGkgPT0gMCB8fCBmaWx0ZXJlZEZpZWxkc1tmaWx0ZXJlZEZpZWxkcy5sZW5ndGggLSAxXS5lbmQgPCBmaWVsZHNbaV0uc3RhcnQpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkRmllbGRzLnB1c2goZmllbGRzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRGaWVsZHM7XG59XG5cbi8qKiBWYWxpZGF0ZXMgdGhhdCBhIHJhdyBmaWVsZCBuYW1lIGhhcyBhIHZhbGlkIGZvcm0uICovXG5jb25zdCBGVUxMX0xJTkVfS0VZX1BBUlQ6IFAuUGFyc2VyPHN0cmluZz4gPSBQLmFsdChcbiAgICBQLnJlZ2V4cChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgXCJ1XCIpKSxcbiAgICBQLnJlZ2V4cCgvWzAtOVxccHtMZXR0ZXJ9XFx3XFxzXy8tXSsvdSlcbilcbiAgICAubWFueSgpXG4gICAgLm1hcCgocGFydHMpID0+IHBhcnRzLmpvaW4oXCJcIikpO1xuXG5jb25zdCBGVUxMX0xJTkVfS0VZX1BBUlNFUjogUC5QYXJzZXI8c3RyaW5nPiA9IFAucmVnZXhwKC9bXjAtOVxcd1xccHtMZXR0ZXJ9XSovdSlcbiAgICAudGhlbihGVUxMX0xJTkVfS0VZX1BBUlQpXG4gICAgLnNraXAoUC5yZWdleHAoL1tfXFwqfmBdKi91KSk7XG5cbi8qKiBBdHRlbXB0IHRvIGV4dHJhY3QgYSBmdWxsLWxpbmUgZmllbGQgKEtleTo6IFZhbHVlIGNvbnN1bWluZyB0aGUgZW50aXJlIGNvbnRlbnQgbGluZSkuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dDogc3RyaW5nKTogTG9jYWxJbmxpbmVGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlcCA9IGZpbmRTZXBhcmF0b3IodGV4dCwgMCk7XG4gICAgaWYgKCFzZXApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXZSBuZWVkIHRvIHBvc3QtcHJvY2VzcyB0aGUga2V5IHRvIGRyb3AgdW5uZWNlc3Nhcnkgb3BlbmluZyBhbm5vdGF0aW9ucyBhcyB3ZWxsIGFzXG4gICAgLy8gZHJvcCBzdXJyb3VuZGluZyBNYXJrZG93bi5cbiAgICBsZXQgcmVhbEtleSA9IEZVTExfTElORV9LRVlfUEFSU0VSLnBhcnNlKHNlcC5rZXkpO1xuICAgIGlmICghcmVhbEtleS5zdGF0dXMpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IHJlYWxLZXkudmFsdWUsXG4gICAgICAgIHZhbHVlOiB0ZXh0LnN1YnN0cmluZyhzZXAudmFsdWVJbmRleCkudHJpbSgpLFxuICAgICAgICBzdGFydDogMCxcbiAgICAgICAgc3RhcnRWYWx1ZTogc2VwLnZhbHVlSW5kZXgsXG4gICAgICAgIGVuZDogdGV4dC5sZW5ndGgsXG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENSRUFURURfREFURV9SRUdFWCA9IC9cXHV7Mjc5NX1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IERVRV9EQVRFX1JFR0VYID0gLyg/OlxcdXsxRjRDNX18XFx1ezFGNEM2fXxcXHV7MUY1RDN9XFx1e0ZFMEZ9PylcXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IERPTkVfREFURV9SRUdFWCA9IC9cXHV7MjcwNX1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IFNDSEVEVUxFRF9EQVRFX1JFR0VYID0gL1tcXHV7MjNGM31cXHV7MjMxQn1dXFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBTVEFSVF9EQVRFX1JFR0VYID0gL1xcdXsxRjZFQn1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuXG5leHBvcnQgY29uc3QgRU1PSklfUkVHRVhFUyA9IFtcbiAgICB7IHJlZ2V4OiBDUkVBVEVEX0RBVEVfUkVHRVgsIGtleTogXCJjcmVhdGVkXCIgfSxcbiAgICB7IHJlZ2V4OiBTVEFSVF9EQVRFX1JFR0VYLCBrZXk6IFwic3RhcnRcIiB9LFxuICAgIHsgcmVnZXg6IFNDSEVEVUxFRF9EQVRFX1JFR0VYLCBrZXk6IFwic2NoZWR1bGVkXCIgfSxcbiAgICB7IHJlZ2V4OiBEVUVfREFURV9SRUdFWCwga2V5OiBcImR1ZVwiIH0sXG4gICAgeyByZWdleDogRE9ORV9EQVRFX1JFR0VYLCBrZXk6IFwiY29tcGxldGlvblwiIH0sXG5dO1xuXG4vKiogUGFyc2Ugc3BlY2lhbCBjb21wbGV0ZWQvZHVlL2RvbmUgdGFzayBmaWVsZHMgd2hpY2ggYXJlIG1hcmtlZCB2aWEgZW1vamkuICovXG5mdW5jdGlvbiBleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZTogc3RyaW5nKTogTG9jYWxJbmxpbmVGaWVsZFtdIHtcbiAgICBsZXQgcmVzdWx0czogTG9jYWxJbmxpbmVGaWVsZFtdID0gW107XG5cbiAgICBmb3IgKGxldCB7IHJlZ2V4LCBrZXkgfSBvZiBFTU9KSV9SRUdFWEVTKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhsaW5lKTtcbiAgICAgICAgaWYgKCFtYXRjaCkgY29udGludWU7XG5cbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlOiBtYXRjaFsxXSxcbiAgICAgICAgICAgIHN0YXJ0OiBtYXRjaC5pbmRleCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IG1hdGNoLmluZGV4ICsgMSxcbiAgICAgICAgICAgIGVuZDogbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgsXG4gICAgICAgICAgICB3cmFwcGluZzogXCJlbW9qaS1zaG9ydGhhbmRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKiBTZXRzIG9yIHJlcGxhY2VzIHRoZSB2YWx1ZSBvZiBhbiBpbmxpbmUgZmllbGQ7IGlmIHRoZSB2YWx1ZSBpcyAndW5kZWZpbmVkJywgZGVsZXRlcyB0aGUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldElubGluZUZpZWxkKHNvdXJjZTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBleGlzdGluZyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMoc291cmNlKTtcbiAgICBsZXQgZXhpc3RpbmdLZXlzID0gZXhpc3RpbmcuZmlsdGVyKChmKSA9PiBmLmtleSA9PSBrZXkpO1xuXG4gICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBrZXlzIE9SIHRoZSBrZXkgYWxyZWFkeSBkb2Vzbid0IGV4aXN0LlxuICAgIGlmIChleGlzdGluZ0tleXMubGVuZ3RoID4gMiB8fCAoZXhpc3RpbmdLZXlzLmxlbmd0aCA9PSAwICYmICF2YWx1ZSkpIHJldHVybiBzb3VyY2U7XG4gICAgbGV0IGV4aXN0aW5nS2V5ID0gZXhpc3RpbmdLZXlzWzBdO1xuXG4gICAgbGV0IGFubm90YXRpb24gPSB2YWx1ZSA/IGBbJHtrZXl9OjogJHt2YWx1ZX1dYCA6IFwiXCI7XG4gICAgaWYgKGV4aXN0aW5nS2V5KSB7XG4gICAgICAgIGxldCBwcmVmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKDAsIGV4aXN0aW5nS2V5LnN0YXJ0KTtcbiAgICAgICAgbGV0IHN1ZmZpeCA9IHNvdXJjZS5zdWJzdHJpbmcoZXhpc3RpbmdLZXkuZW5kKTtcblxuICAgICAgICBpZiAoYW5ub3RhdGlvbikgcmV0dXJuIGAke3ByZWZpeH0ke2Fubm90YXRpb259JHtzdWZmaXh9YDtcbiAgICAgICAgZWxzZSByZXR1cm4gYCR7cHJlZml4fSR7c3VmZml4LnRyaW1TdGFydCgpfWA7XG4gICAgfSBlbHNlIGlmIChhbm5vdGF0aW9uKSB7XG4gICAgICAgIHJldHVybiBgJHtzb3VyY2UudHJpbUVuZCgpfSAke2Fubm90YXRpb259YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW1vamlTaG9ydGhhbmRDb21wbGV0aW9uRmllbGQoc291cmNlOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMoc291cmNlLCB0cnVlKTtcbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBleGlzdGluZy5maWx0ZXIoKGYpID0+IGYua2V5ID09PSBcImNvbXBsZXRpb25cIiAmJiBmLndyYXBwaW5nID09PSBcImVtb2ppLXNob3J0aGFuZFwiKTtcblxuICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyBPUiB0aGUga2V5IGFscmVhZHkgZG9lc24ndCBleGlzdC5cbiAgICBpZiAoZXhpc3RpbmdLZXlzLmxlbmd0aCA+IDIgfHwgKGV4aXN0aW5nS2V5cy5sZW5ndGggPT0gMCAmJiAhdmFsdWUpKSByZXR1cm4gc291cmNlO1xuXG4gICAgLyogTm8gd3JhcHBlciwgYWRkIG93biBzcGFjaW5nIGF0IHN0YXJ0ICovXG4gICAgY29uc3QgYW5ub3RhdGlvbiA9IHZhbHVlID8gYCBcdTI3MDUgJHt2YWx1ZX1gIDogXCJcIjtcbiAgICBsZXQgZXhpc3RpbmdLZXkgPSBleGlzdGluZ0tleXNbMF07XG4gICAgaWYgKGV4aXN0aW5nS2V5KSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHNvdXJjZS5zdWJzdHJpbmcoMCwgZXhpc3RpbmdLZXkuc3RhcnQpO1xuICAgICAgICBjb25zdCBzdWZmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKGV4aXN0aW5nS2V5LmVuZCk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXgudHJpbUVuZCgpfSR7YW5ub3RhdGlvbn0ke3N1ZmZpeH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHtzb3VyY2UudHJpbUVuZCgpfSR7YW5ub3RhdGlvbn1gO1xuICAgIH1cbn1cbiIsICIvKiogTWFwIHRoZSB2YWx1ZXMgb2YgYW4gb2JqZWN0LCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdFZhbHVlczxWLCBVPihvYmplY3Q6IFJlY29yZDxzdHJpbmcsIFY+LCBmdW5jOiAoeDogVikgPT4gVSk6IFJlY29yZDxzdHJpbmcsIFU+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFU+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqZWN0KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IGZ1bmModmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iLCAiaW1wb3J0IHsgTGluaywgSnNvbkxpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIEpTT04tc2VyaWFsaXplZCBlcXVpdmFsZW50cyBmb3IgbGl0ZXJhbHMuICovXG5leHBvcnQgdHlwZSBKc29uTGl0ZXJhbCA9XG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgeyAkX3R5cGU6IFwiZGF0ZVwiOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB8IHsgJF90eXBlOiBcImR1cmF0aW9uXCI7IHZhbHVlOiBzdHJpbmcgfVxuICAgIHwgeyAkX3R5cGU6IFwibGlua1wiOyB2YWx1ZTogSnNvbkxpbmsgfVxuICAgIHwgQXJyYXk8SnNvbkxpdGVyYWw+XG4gICAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgfCBudWxsO1xuXG5leHBvcnQgbmFtZXNwYWNlIEpzb25Db252ZXJzaW9uIHtcbiAgICBleHBvcnQgY29uc3QgTk9PUF9OT1JNQUxJWkVSOiAoaW5wdXQ6IExpdGVyYWwpID0+IExpdGVyYWwgPSAoaW5wdXQpID0+IGlucHV0O1xuXG4gICAgLyoqIENvbnZlcnQgYSBsaXRlcmFsIHZhbHVlIHRvIGEgc2FmZSwgcGVyc2lzdGVudCBKU09OIGVxdWl2YWxlbnQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGpzb24obGl0ZXJhbDogTGl0ZXJhbCk6IEpzb25MaXRlcmFsIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShsaXRlcmFsKTtcbiAgICAgICAgaWYgKCF3cmFwcGVkKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQ/LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcChKc29uQ29udmVyc2lvbi5qc29uKTtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKHdyYXBwZWQudmFsdWUsIEpzb25Db252ZXJzaW9uLmpzb24pO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyAkX3R5cGU6IFwiZGF0ZVwiLCB2YWx1ZTogd3JhcHBlZC52YWx1ZS50b0lTTyh7IGluY2x1ZGVPZmZzZXQ6IHRydWUgfSkgfTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImxpbmtcIiwgdmFsdWU6IHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSB9O1xuICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImR1cmF0aW9uXCIsIHZhbHVlOiB3cmFwcGVkLnZhbHVlLnRvSVNPKCkgfTtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIGNhc2UgXCJudWxsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgSlNPTiBsaXRlcmFsIHRvIGl0J3MgY29ycmVzcG9uZGluZyBoeWRyYXRlZCB2YWx1ZSwgb3B0aW9uYWxseSBhcHBseWluZ1xuICAgICAqIGEgbm9ybWFsaXphdGlvbiBzdGVwIHRvIHRoZSByZXN1bHRpbmcgdmFsdWUgYW5kIGFueSBsaXRlcmFscyBjb250YWluZWQgd2l0aGluIGl0XG4gICAgICogKHN1Y2ggYXMgaWYgdGhlIGxpdGVyYWwgaXMgYSBsaXN0IG9yIG9iamVjdCkuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhbHVlKGpzb246IEpzb25MaXRlcmFsLCBub3JtYWxpemVyOiAoaW5wdXQ6IExpdGVyYWwpID0+IExpdGVyYWwgPSBOT09QX05PUk1BTElaRVIpOiBMaXRlcmFsIHtcbiAgICAgICAgaWYgKGpzb24gPT09IG51bGwgfHwganNvbiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoanNvbi5tYXAoKGlucHV0KSA9PiBKc29uQ29udmVyc2lvbi52YWx1ZShpbnB1dCwgbm9ybWFsaXplcikpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YganNvbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKCEoXCIkX3R5cGVcIiBpbiBqc29uKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKGpzb24sICh2KSA9PiBKc29uQ29udmVyc2lvbi52YWx1ZSh2IGFzIEpzb25MaXRlcmFsLCBub3JtYWxpemVyKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBqc29uW1wiJF90eXBlXCJdO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoRGF0ZVRpbWUuZnJvbUlTTyhqc29uLnZhbHVlLCB7IHNldFpvbmU6IHRydWUgfSkpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplcihEdXJhdGlvbi5mcm9tSVNPKGpzb24udmFsdWUpKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QoanNvbi52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHNlcmlhbGl6ZWQgdHlwZSAnJHt0eXBlfSchYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmltaXRpdmUgdHlwZSwgcmV0dXJuIGFzIGlzLlxuICAgICAgICByZXR1cm4gbm9ybWFsaXplcihqc29uIGFzIExpdGVyYWwpO1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgaW5kZXhhYmxlc1xuICovXG4vKiogVXRpbGl0aWVzIGZvciBjb252ZXJ0aW5nIGxpdGVyYWwgdHlwZXMgdG8gYW5kIGZyb20gdGhlaXIgWUFNTCBmcm9udG1hdHRlciByZXByZXNlbnRhdGlvbi4gKi9cblxuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBQUklNSVRJVkVTIH0gZnJvbSBcImV4cHJlc3Npb24vcGFyc2VyXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIFlBTUwtZnJpZW5kbHkgcmVwcmVzZW50YXRpb24gZm9yIGEgbGl0ZXJhbC4gKi9cbmV4cG9ydCB0eXBlIFlhbWxMaXRlcmFsID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgQXJyYXk8WWFtbExpdGVyYWw+O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBZYW1sQ29udmVyc2lvbiB7XG4gICAgLyoqIENvbnZlcnQgYSBsaXRlcmFsIGludG8gYSB5YW1sIGZyaWVuZGx5IHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB5YW1sKHZhbHVlOiBMaXRlcmFsKTogWWFtbExpdGVyYWwge1xuICAgICAgICBjb25zdCB3cmFwcGVkID0gTGl0ZXJhbHMud3JhcFZhbHVlKGxpdGVyYWwpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcCh5YW1sKTtcbiAgICAgICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9JU08oKTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvSHVtYW4oKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBtYXBPYmplY3RWYWx1ZXMod3JhcHBlZC52YWx1ZSwgeWFtbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgY29udmVydCBhIFlBTUwgbGl0ZXJhbCBpbnRvIGEgcmVndWxhciBsaXRlcmFsIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsaXRlcmFsKHZhbHVlOiBZYW1sTGl0ZXJhbCk6IExpdGVyYWwge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdmFsdWUgYXMgQXJyYXk8YW55Pikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChsaXRlcmFsKGNoaWxkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGVQYXJzZSA9IERhdGVUaW1lLmZyb21KU0RhdGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlUGFyc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBvYmplY3QgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGxpdGVyYWwob2JqZWN0W2tleV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbGV0IGRhdGVQYXJzZSA9IFBSSU1JVElWRVMuZGF0ZS5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZGF0ZVBhcnNlLnN0YXR1cykgcmV0dXJuIGRhdGVQYXJzZS52YWx1ZTtcblxuICAgICAgICAgICAgbGV0IGR1cmF0aW9uUGFyc2UgPSBQUklNSVRJVkVTLmR1cmF0aW9uLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChkdXJhdGlvblBhcnNlLnN0YXR1cykgcmV0dXJuIGR1cmF0aW9uUGFyc2UudmFsdWU7XG5cbiAgICAgICAgICAgIGxldCBsaW5rUGFyc2UgPSBQUklNSVRJVkVTLmxpbmsucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGxpbmtQYXJzZS5zdGF0dXMpIHJldHVybiBsaW5rUGFyc2UudmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJhY2t1cCBpZiB3ZSBkb24ndCB1bmRlcnN0YW5kIHRoZSB0eXBlLlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgRmlsZVN0YXRzIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBpdGVyYXRlSW5saW5lRmllbGRzLCBtYXJrZG93blNvdXJjZUltcG9ydCwgTWV0YWRhdGEsIFNlY3Rpb25EYXRhIH0gZnJvbSBcIi4vbWFya2Rvd25cIjtcbmltcG9ydCB7IEpzb25Gcm9udG1hdHRlckVudHJ5IH0gZnJvbSBcImluZGV4L3R5cGVzL2pzb24vbWFya2Rvd25cIjtcbmltcG9ydCB7XG4gICAgQ2FudmFzTWV0YWRhdGFJbmRleCxcbiAgICBKc29uQmFzZUNhbnZhc0NhcmQsXG4gICAgSnNvbkNhbnZhcyxcbiAgICBKc29uQ2FudmFzQ2FyZCxcbiAgICBKc29uQ2FudmFzRmlsZUNhcmQsXG4gICAgSnNvbkNhbnZhc1RleHRDYXJkLFxuICAgIEpzb25DYW52YXNXZWJDYXJkLFxufSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9jYW52YXNcIjtcbmltcG9ydCB7IENhbnZhc0ZpbGVEYXRhLCBDYW52YXNMaW5rRGF0YSwgQ2FudmFzVGV4dERhdGEsIENhbnZhc0RhdGEgYXMgSUNhbnZhcyB9IGZyb20gXCJvYnNpZGlhbi9jYW52YXNcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5cbi8qKiBJbXBvcnQgYSBjYW52YXMgZmlsZSB1c2luZyB0aGUgY2FudmFzIG1ldGFkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbnZhc0ltcG9ydChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgc291cmNlOiBzdHJpbmcsXG4gICAgaW5kZXg6IENhbnZhc01ldGFkYXRhSW5kZXhbXCJzdHJpbmdcIl0sXG4gICAgc3RhdHM6IEZpbGVTdGF0c1xuKTogSnNvbkNhbnZhcyB7XG4gICAgY29uc3QgY2FudmFzID0gbmV3IENhbnZhc0RhdGEocGF0aCwgc3RhdHMpO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc291cmNlKSBhcyBJQ2FudmFzO1xuXG4gICAgZm9yIChjb25zdCBjIG9mIHBhcnNlZC5ub2Rlcykge1xuICAgICAgICBpZiAoYy50eXBlID09IFwiZ3JvdXBcIikgY29udGludWU7XG4gICAgICAgIGlmIChjLnR5cGUgPT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbnRtYXR0ZXIsIG1ldGFkYXRhLCBsaW5lcywgc2VjdGlvbnMgfSA9IG1hcmtkb3duU291cmNlSW1wb3J0KHBhdGgsIGMudGV4dCwgaW5kZXguY2FjaGVzW2MuaWRdKTtcbiAgICAgICAgICAgIGNvbnN0IGNhcmQgPSBuZXcgQ2FudmFzQ2FyZERhdGEocGF0aCwgYy5pZCwgYywgZnJvbnRtYXR0ZXIpO1xuICAgICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaCgoaSkgPT4gY2FyZC5zZWN0aW9uKGkpKTtcbiAgICAgICAgICAgIGNhbnZhcy5jYXJkKGNhcmQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgaW4gbWV0YWRhdGEudGFncykgY2FudmFzLm1ldGFkYXRhLnRhZyh0YWcpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIG1ldGFkYXRhLmxpbmtzID8/IFtdKSBjYW52YXMubWV0YWRhdGEubGluayhsaW5rKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgaXRlcmF0ZUlubGluZUZpZWxkcyhsaW5lcykpIGNhbnZhcy5tZXRhZGF0YS5pbmxpbmVGaWVsZChmaWVsZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkID0gbmV3IENhbnZhc0NhcmREYXRhKHBhdGgsIGMuaWQsIGMpO1xuICAgICAgICAgICAgY2FudmFzLmNhcmQoY2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2FudmFzLmJ1aWxkKCk7XG59XG5cbi8qKiBNZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBjYW52YXMgY2FyZC4gKi9cbmFic3RyYWN0IGNsYXNzIEFic3RyYWN0Q2FudmFzQ2FyZERhdGEge1xuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBub2RlSnNvbjogQ2FudmFzVGV4dERhdGEgfCBDYW52YXNMaW5rRGF0YSB8IENhbnZhc0ZpbGVEYXRhXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25CYXNlQ2FudmFzQ2FyZCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkZmlsZTogdGhpcy5wYXRoLFxuICAgICAgICAgICAgJGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgeDogdGhpcy5ub2RlSnNvbi54LFxuICAgICAgICAgICAgICAgIHk6IHRoaXMubm9kZUpzb24ueSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAkZGltZW5zaW9uczoge1xuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLm5vZGVKc29uLndpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5ub2RlSnNvbi5oZWlnaHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJGNvbG9yOiB0aGlzLm5vZGVKc29uLmNvbG9yLFxuICAgICAgICAgICAgJGxpbms6IExpbmsuZmlsZSh0aGlzLnBhdGgpLndpdGhCbG9jayh0aGlzLmlkKS50b09iamVjdCgpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIE1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGNhcmQgaW4gYSBjYW52YXMgdmlldy4gKi9cbmV4cG9ydCBjbGFzcyBDYW52YXNDYXJkRGF0YSBleHRlbmRzIEFic3RyYWN0Q2FudmFzQ2FyZERhdGEge1xuICAgIHB1YmxpYyBzZWN0aW9uczogU2VjdGlvbkRhdGFbXSA9IFtdO1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBub2RlSnNvbjogQ2FudmFzVGV4dERhdGEgfCBDYW52YXNMaW5rRGF0YSB8IENhbnZhc0ZpbGVEYXRhLFxuICAgICAgICBwdWJsaWMgZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT5cbiAgICApIHtcbiAgICAgICAgc3VwZXIocGF0aCwgaWQsIG5vZGVKc29uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VjdGlvbihzZWN0aW9uOiBTZWN0aW9uRGF0YSk6IFNlY3Rpb25EYXRhIHtcbiAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgICAgICByZXR1cm4gc2VjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbkNhbnZhc0NhcmQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubm9kZUpzb24udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi4oc3VwZXIuYnVpbGQoKSBhcyBKc29uQmFzZUNhbnZhc0NhcmQpLFxuICAgICAgICAgICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAgICAgICAgICRmcm9udG1hdHRlcjogdGhpcy5mcm9udG1hdHRlcixcbiAgICAgICAgICAgICAgICAgICAgJHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLm1hcCgoeCkgPT4geC5idWlsZCgpKSxcbiAgICAgICAgICAgICAgICAgICAgJHRhZ3M6IHRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLFxuICAgICAgICAgICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6IFwidGV4dC1jYXJkXCIsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogdGhpcy5ub2RlSnNvbi5jb2xvcixcbiAgICAgICAgICAgICAgICB9IGFzIEpzb25DYW52YXNUZXh0Q2FyZDtcbiAgICAgICAgICAgIGNhc2UgXCJmaWxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3VwZXIuYnVpbGQoKSxcbiAgICAgICAgICAgICAgICAgICAgJGxpbmtlZEZpbGU6IHRoaXMubm9kZUpzb24uZmlsZSxcbiAgICAgICAgICAgICAgICB9IGFzIEpzb25DYW52YXNGaWxlQ2FyZDtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3VwZXIuYnVpbGQoKSxcbiAgICAgICAgICAgICAgICAgICAgJHVybDogdGhpcy5ub2RlSnNvbi51cmwsXG4gICAgICAgICAgICAgICAgfSBhcyBKc29uQ2FudmFzV2ViQ2FyZDtcbiAgICAgICAgICAgIC8vIHJldHVybiBuZXdcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIE1ldGFkYXRhIGZvciB0aGUgd2hvbGUgY2FudmFzIHBhZ2UgYXMgYSB3aG9sZS4gKi9cbmV4cG9ydCBjbGFzcyBDYW52YXNEYXRhIHtcbiAgICBwdWJsaWMgY2FyZHM6IENhbnZhc0NhcmREYXRhW10gPSBbXTtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHBhdGg6IHN0cmluZywgcHVibGljIHN0YXRzOiBGaWxlU3RhdHMpIHt9XG5cbiAgICBwdWJsaWMgY2FyZChkOiBDYW52YXNDYXJkRGF0YSk6IENhbnZhc0NhcmREYXRhIHtcbiAgICAgICAgdGhpcy5jYXJkcy5wdXNoKGQpO1xuICAgICAgICByZXR1cm4gZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbkNhbnZhcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkY2FyZHM6IHRoaXMuY2FyZHMubWFwKCh4KSA9PiB4LmJ1aWxkKCkpLFxuICAgICAgICAgICAgJGN0aW1lOiB0aGlzLnN0YXRzLmN0aW1lLFxuICAgICAgICAgICAgJG10aW1lOiB0aGlzLnN0YXRzLm10aW1lLFxuICAgICAgICAgICAgJGluZmllbGRzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgJHNpemU6IHRoaXMuc3RhdHMuc2l6ZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY2FudmFzSW1wb3J0IH0gZnJvbSBcImluZGV4L2ltcG9ydC9jYW52YXNcIjtcbmltcG9ydCB7IG1hcmtkb3duSW1wb3J0IH0gZnJvbSBcImluZGV4L2ltcG9ydC9tYXJrZG93blwiO1xuaW1wb3J0IHsgQ2FudmFzSW1wb3J0UmVzdWx0LCBJbXBvcnRDb21tYW5kLCBNYXJrZG93bkltcG9ydFJlc3VsdCB9IGZyb20gXCJpbmRleC93ZWItd29ya2VyL21lc3NhZ2VcIjtcblxuLyoqIFdlYiB3b3JrZXIgZW50cnkgcG9pbnQgZm9yIGltcG9ydGluZy4gKi9cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBldmVudC5kYXRhIGFzIEltcG9ydENvbW1hbmQ7XG5cbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJtYXJrZG93blwiKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZG93biA9IG1hcmtkb3duSW1wb3J0KG1lc3NhZ2UucGF0aCwgbWVzc2FnZS5jb250ZW50cywgbWVzc2FnZS5tZXRhZGF0YSwgbWVzc2FnZS5zdGF0KTtcblxuICAgICAgICAgICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwibWFya2Rvd25cIixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IG1hcmtkb3duLFxuICAgICAgICAgICAgfSBhcyBNYXJrZG93bkltcG9ydFJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS50eXBlID09PSBcImNhbnZhc1wiKSB7XG4gICAgICAgICAgICBjb25zdCBjYW52YXMgPSBjYW52YXNJbXBvcnQobWVzc2FnZS5wYXRoLCBtZXNzYWdlLmNvbnRlbnRzLCBtZXNzYWdlLmluZGV4LCBtZXNzYWdlLnN0YXQpO1xuXG4gICAgICAgICAgICBwb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJjYW52YXNcIixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGNhbnZhcyxcbiAgICAgICAgICAgIH0gYXMgQ2FudmFzSW1wb3J0UmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlKHsgJGVycm9yOiBcIlVuc3VwcG9ydGVkIGltcG9ydCBtZXRob2QuXCIgfSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBEYXRhY29yZSBJbmRleGVyIGZhaWxlZCB0byBpbmRleCAke2V2ZW50LmRhdGEucGF0aH06ICR7ZXJyb3J9YCk7XG4gICAgICAgIHBvc3RNZXNzYWdlKHsgJGVycm9yOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiMGpEQUFBLElBQUFBLEdBQUFDLEdBQUEsQ0FBQUMsR0FBQUMsS0FBQSxFQUFDLFNBQVMsRUFBRUMsRUFBRSxDQUFXLE9BQU9GLElBQWpCLFVBQW9DLE9BQU9DLElBQWpCLFNBQXdCQSxHQUFPLFFBQVFDLEVBQUUsRUFBYyxPQUFPLFFBQW5CLFlBQTJCLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRUEsQ0FBQyxFQUFZLE9BQU9GLElBQWpCLFNBQXlCQSxHQUFRLFVBQVVFLEVBQUUsRUFBRSxFQUFFLFVBQVVBLEVBQUUsQ0FBQyxHQUFlLE9BQU8sTUFBcEIsWUFBeUIsS0FBS0YsR0FBSyxVQUFVLENBQUMsT0FBTyxTQUFTLEVBQUUsQ0FBQyxJQUFJRSxFQUFFLENBQUMsRUFBRSxTQUFTQyxFQUFFQyxFQUFFLENBQUMsR0FBR0YsRUFBRUUsQ0FBQyxFQUFFLE9BQU9GLEVBQUVFLENBQUMsRUFBRSxRQUFRLElBQUlDLEVBQUVILEVBQUVFLENBQUMsRUFBRSxDQUFDLEVBQUVBLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFQSxDQUFDLEVBQUUsS0FBS0MsRUFBRSxRQUFRQSxFQUFFQSxFQUFFLFFBQVFGLENBQUMsRUFBRUUsRUFBRSxFQUFFLEdBQUdBLEVBQUUsT0FBTyxDQUFDLE9BQU9GLEVBQUUsRUFBRSxFQUFFQSxFQUFFLEVBQUVELEVBQUVDLEVBQUUsRUFBRSxTQUFTRyxFQUFFSixFQUFFRSxFQUFFLENBQUNELEVBQUUsRUFBRUcsRUFBRUosQ0FBQyxHQUFHLE9BQU8sZUFBZUksRUFBRUosRUFBRSxDQUFDLGFBQWEsR0FBRyxXQUFXLEdBQUcsSUFBSUUsQ0FBQyxDQUFDLENBQUMsRUFBRUQsRUFBRSxFQUFFLFNBQVNHLEVBQUUsQ0FBQyxPQUFPLGVBQWVBLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRUgsRUFBRSxFQUFFLFNBQVNHLEVBQUUsQ0FBQyxJQUFJSixFQUFFSSxHQUFHQSxFQUFFLFdBQVcsVUFBVSxDQUFDLE9BQU9BLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPQSxDQUFDLEVBQUUsT0FBT0gsRUFBRSxFQUFFRCxFQUFFLElBQUlBLENBQUMsRUFBRUEsQ0FBQyxFQUFFQyxFQUFFLEVBQUUsU0FBU0csRUFBRUosRUFBRSxDQUFDLE9BQU8sT0FBTyxVQUFVLGVBQWUsS0FBS0ksRUFBRUosQ0FBQyxDQUFDLEVBQUVDLEVBQUUsRUFBRSxHQUFHQSxFQUFFQSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUVELEVBQUVDLEVBQUUsQ0FBQyxhQUFhLFNBQVNDLEVBQUVFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCRixHQUFHLE9BQU8sSUFBSUEsRUFBRUUsQ0FBQyxFQUFFLEtBQUssRUFBRUEsQ0FBQyxDQUFDLElBQUlELEVBQUVELEVBQUUsVUFBVSxTQUFTRyxFQUFFRCxFQUFFSixFQUFFLENBQUMsUUFBUUMsRUFBRSxFQUFFQSxFQUFFRyxFQUFFSCxJQUFJRCxFQUFFQyxDQUFDLENBQUMsQ0FBQyxTQUFTSyxFQUFFRixFQUFFSixFQUFFQyxFQUFFLENBQUMsT0FBTyxTQUFTRyxFQUFFSixFQUFFLENBQUNLLEVBQUVMLEVBQUUsT0FBTyxTQUFTQyxFQUFFLENBQUNHLEVBQUVKLEVBQUVDLENBQUMsRUFBRUEsRUFBRUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVNDLEVBQUVDLEVBQUVDLEVBQUUsQ0FBQ0gsRUFBRUksRUFBRUosRUFBRUMsRUFBRUMsRUFBRUMsQ0FBQyxDQUFDLEVBQUVGLENBQUMsRUFBRUQsQ0FBQyxDQUFDLFNBQVMsRUFBRUksRUFBRUosRUFBRSxDQUFDLE9BQU9NLEVBQUUsU0FBU04sRUFBRUMsRUFBRUMsRUFBRUMsRUFBRSxDQUFDLE9BQU9ILEVBQUUsT0FBTyxDQUFDSSxFQUFFSCxFQUFFQyxFQUFFQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFSCxDQUFDLENBQUMsQ0FBQyxTQUFT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QUMsRUFBRSxFQUFFLFNBQVNKLEVBQUVDLEVBQUUsQ0FBQyxNQUFNLENBQUNELEVBQUVJLEVBQUVILENBQUMsQ0FBQyxDQUFDLEVBQUVFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBU0MsRUFBRSxDQUFDLEdBQUdLLEVBQUUsRUFBRW1CLEdBQUV4QixDQUFDLEVBQUVBLEVBQUUsSUFBSSxNQUFNLElBQUksTUFBTSx3Q0FBd0NBLEVBQUUsTUFBTUEsRUFBRSxTQUFTLEVBQUUsRUFBRSwwQ0FBMEMsRUFBRSxJQUFJSixHQUFHSSxFQUFFLEdBQUcsS0FBSyxPQUFPQSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU9GLEVBQUUsU0FBU0QsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUV3QixFQUFFMUIsRUFBRUMsQ0FBQyxFQUFFLE9BQU9DLElBQUlDLEVBQUVRLEVBQUVWLEVBQUUsRUFBRUMsQ0FBQyxFQUFFUSxFQUFFVCxFQUFFRixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxTQUFTSSxFQUFFLENBQUMsT0FBT1MsRUFBRSxTQUFTVCxDQUFDLEVBQUUsSUFBSSxTQUFTQSxFQUFFLENBQUMsT0FBTyxPQUFPLEtBQUtBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLFNBQVNBLEVBQUVKLEVBQUUsQ0FBQyxPQUFPYSxFQUFFLFNBQVNiLENBQUMsRUFBRSxJQUFJLFNBQVNBLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLFNBQVNJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPVyxFQUFFLFFBQVFBLEVBQUUsQ0FBQyxFQUFFLFNBQVNBLEVBQUUsQ0FBQyxFQUFFLFNBQVNBLEVBQUUsQ0FBQyxFQUFFLE9BQU9DLEVBQUUsUUFBUUEsRUFBRSxDQUFDLEVBQUUsU0FBU0EsRUFBRSxDQUFDLEVBQUUsU0FBU0EsRUFBRSxDQUFDLEVBQUUsTUFBTUMsRUFBRSxPQUFPQSxFQUFFLENBQUMsRUFBRSxRQUFRQSxFQUFFLENBQUMsRUFBRSxRQUFRQSxFQUFFLENBQUMsRUFBRSxNQUFN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QUFDLEVBQ3hDLE9BQVFBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBQ3pDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBQ3JDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBRXRDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3RDLE1BQU9BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3ZDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3BDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBRW5DLElBQUtBLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBQ3BDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBRWxDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3RDLE1BQU9BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3ZDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3BDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBRW5DLE9BQVFBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQzFDLFFBQVNBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQzNDLElBQUtBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQ3ZDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQ3hDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBRXJDLE9BQVFBLEVB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TSxPQUFRLENBQUMsQ0FDekMsQ0FDSiIsCiAgIm5hbWVzIjogWyJyZXF1aXJlX3BhcnNpbW1vbl91bWRfbWluIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidCIsICJyIiwgImUiLCAidSIsICJuIiwgIm8iLCAiaSIsICJmIiwgImMiLCAicyIsICJsIiwgIngiLCAiYiIsICJoIiwgInAiLCAiZCIsICJ2IiwgImciLCAibSIsICJ5IiwgIkUiLCAidyIsICJCIiwgImEiLCAiaiIsICJTIiwgIl8iLCAiTCIsICJPIiwgImsiLCAiUCIsICJxIiwgIkEiLCAiSSIsICJGIiwgIk0iLCAieiIsICJSIiwgIlUiLCAiVyIsICJEIiwgIk4iLCAiRyIsICJDIiwgIkoiLCAiVCIsICJZIiwgIlYiLCAiSCIsICJYIiwgIksiLCAiUSIsICJaIiwgIiQiLCAibm4iLCAidG4iLCAicm4iLCAiYW4iLCAiZW4iLCAidW4iLCAib24iLCAiZm4iLCAiY24iLCAic24iLCAibG4iLCAiaG4iLCAicG4iLCAiZG4iLCAidm4iLCAiZ24iLCAibW4iLCAieW4iLCAicmVxdWlyZV9iX3RyZWUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIl9fZXh0ZW5kcyIsICJleHRlbmRTdGF0aWNzIiwgImQiLCAiYiIsICJwIiwgIl9fIiwgImRlZmF1bHRDb21wYXJhdG9yIiwgImEiLCAidGEiLCAidGIiLCAic2ltcGxlQ29tcGFyYXRvciIsICJCVHJlZSIsICJlbnRyaWVzIiwgImNvbXBhcmUiLCAibWF4Tm9kZVNpemUiLCAiRW1wdHlMZWFmIiwgImNhbGxiYWNrIiwgInRoaXNBcmciLCAiX3RoaXMiLCAiayIsICJ2IiwgImluaXRpYWxDb3VudGVyIiwgImxvdyIsICJoaWdoIiwgImtleSIsICJkZWZhdWx0VmFsdWUiLCAidmFsdWUiLCAib3ZlcndyaXRlIiwgInJlc3VsdCIsICJCTm9kZUludGVybmFsIiwgIkRlbGV0ZVJhbmdlIiwgIm51IiwgInBhaXJzIiwgImtleXMiLCAicmV0dXJuVGhpc0lmVW5jaGFuZ2VkIiwgImNoYW5nZWQiLCAiaW5jbHVkZUhpZ2giLCAiZGVsIiwgImkiLCAiRGVsZXRlIiwgInRtcCIsICJpbml0aWFsVmFsdWUiLCAiaXQiLCAiUmV1c2VkQXJyYXkiLCAibmV4dCIsICJsb3dlc3RLZXkiLCAicmV1c2VkQXJyYXkiLCAiaW5mbyIsICJpdGVyYXRvciIsICJub2RlcXVldWUiLCAibm9kZWluZGV4IiwgImxlYWYiLCAic3RhdGUiLCAianVtcCIsICJsZXZlbCIsICJoaWdoZXN0S2V5IiwgInNraXBIaWdoZXN0IiwgIl9hIiwgImNoZWNrIiwgIm5leHRub2RlIiwgIkVtcHR5QXJyYXkiLCAib3RoZXIiLCAib25seVRoaXMiLCAib25seU90aGVyIiwgImRpZmZlcmVudCIsICJfY29tcGFyZSIsICJ0aGlzQ3Vyc29yIiwgIm90aGVyQ3Vyc29yIiwgInRoaXNTdWNjZXNzIiwgIm90aGVyU3VjY2VzcyIsICJwcmV2Q3Vyc29yT3JkZXIiLCAiY3Vyc29yT3JkZXIiLCAidGhpc0xlYWYiLCAidGhpc0ludGVybmFsU3BpbmUiLCAidGhpc0xldmVsSW5kaWNlcyIsICJvdGhlckxlYWYiLCAib3RoZXJJbnRlcm5hbFNwaW5lIiwgIm90aGVyTGV2ZWxJbmRpY2VzIiwgInZhbFRoaXMiLCAidmFsT3RoZXIiLCAib3RoZXJWYWwiLCAibGFzdFRoaXMiLCAibGFzdE90aGVyIiwgIm5vZGVUaGlzIiwgIm5vZGVPdGhlciIsICJjdXJzb3IiLCAiY3Vyc29yRmluaXNoZWQiLCAiY29tcGFyZUtleXMiLCAiY29tcGFyZWQiLCAiY2FuU3RlcCIsICJsZXZlbEluZGljZXMiLCAiY3VycmVudEtleSIsICJ0cmVlIiwgIl9yb290IiwgImhlaWdodCIsICJzdGVwVG9Ob2RlIiwgImludGVybmFsU3BpbmUiLCAibGV2ZWxzTGVuZ3RoIiwgInNwaW5lTGVuZ3RoIiwgIm5vZGVMZXZlbEluZGV4IiwgImxldmVsSW5kZXhXYWxrQmFjayIsICJ2YWx1ZUluZGV4IiwgIm5leHRMZXZlbCIsICJjdXJyZW50TGV2ZWwiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZEluZGV4IiwgImN1cnNvckEiLCAiY3Vyc29yQiIsICJoZWlnaHRBIiwgImN1cnJlbnRLZXlBIiwgImxldmVsSW5kaWNlc0EiLCAiaGVpZ2h0QiIsICJjdXJyZW50S2V5QiIsICJsZXZlbEluZGljZXNCIiwgImtleUNvbXBhcmlzb24iLCAiaGVpZ2h0TWluIiwgImRlcHRoQU5vcm1hbGl6ZWQiLCAiZGVwdGhCTm9ybWFsaXplZCIsICJmaXJzdEtleSIsICJuIiwgImZvcmNlIiwgIm1heExlbmd0aCIsICJtaW4iLCAibWF4IiwgInJlc3VsdHMiLCAiQnJlYWsiLCAiYWRkZWQiLCAib25Gb3VuZCIsICJyIiwgInJvb3QiLCAiaXNTaGFyZWQiLCAidCIsICJzaXplIiwgImFzU2V0IiwgImJ0cmVlIiwgIkJOb2RlIiwgInZhbHVlcyIsICJ1bmRlZlZhbHMiLCAiZmFpbFhvciIsICJjbXAiLCAibG8iLCAiaGkiLCAibWlkIiwgImMiLCAibGFzdEluZGV4IiwgImluY2x1c2l2ZSIsICJpbmRleE9yTG93ZXIiLCAiZGVwdGgiLCAiYmFzZUluZGV4IiwgImtMIiwgInZMIiwgIm5ld1JpZ2h0U2libGluZyIsICJ0YXJnZXQiLCAicmhzIiwgImxocyIsICJoYWxmIiwgImVkaXRNb2RlIiwgImNvdW50IiwgImlMb3ciLCAiaUhpZ2giLCAiXyIsICJfc3VwZXIiLCAibGVuZ3RoIiwgImNMIiwgImNoaWxkU2l6ZSIsICJ0b29mZXciLCAiY2hpbGQiLCAibWF4U2l6ZSIsICJvbGRMZW5ndGgiLCAicmhzQ2hpbGRyZW4iLCAiZmFjdCIsICJhcmdzIiwgIl9pIiwgIkx1eG9uRXJyb3IiLCAiSW52YWxpZERhdGVUaW1lRXJyb3IiLCAicmVhc29uIiwgIkludmFsaWRJbnRlcnZhbEVycm9yIiwgIkludmFsaWREdXJhdGlvbkVycm9yIiwgIkNvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIiwgIkludmFsaWRVbml0RXJyb3IiLCAidW5pdCIsICJJbnZhbGlkQXJndW1lbnRFcnJvciIsICJab25lSXNBYnN0cmFjdEVycm9yIiwgIm4iLCAicyIsICJsIiwgIkRBVEVfU0hPUlQiLCAiREFURV9NRUQiLCAiREFURV9NRURfV0lUSF9XRUVLREFZIiwgIkRBVEVfRlVMTCIsICJEQVRFX0hVR0UiLCAiVElNRV9TSU1QTEUiLCAiVElNRV9XSVRIX1NFQ09ORFMiLCAiVElNRV9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FX1dJVEhfTE9OR19PRkZTRVQiLCAiVElNRV8yNF9TSU1QTEUiLCAiVElNRV8yNF9XSVRIX1NFQ09ORFMiLCAiVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQiLCAiREFURVRJTUVfU0hPUlQiLCAiREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX01FRCIsICJEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkiLCAiREFURVRJTUVfRlVMTCIsICJEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9IVUdFIiwgIkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTIiwgImlzVW5kZWZpbmVkIiwgIm8iLCAiaXNOdW1iZXIiLCAiaXNJbnRlZ2VyIiwgImlzU3RyaW5nIiwgImlzRGF0ZSIsICJoYXNSZWxhdGl2ZSIsICJlIiwgIm1heWJlQXJyYXkiLCAidGhpbmciLCAiYmVzdEJ5IiwgImFyciIsICJieSIsICJjb21wYXJlIiwgImJlc3QiLCAibmV4dCIsICJwYWlyIiwgInBpY2siLCAib2JqIiwgImtleXMiLCAiYSIsICJrIiwgImhhc093blByb3BlcnR5IiwgInByb3AiLCAiaW50ZWdlckJldHdlZW4iLCAiYm90dG9tIiwgInRvcCIsICJmbG9vck1vZCIsICJ4IiwgIm4iLCAicGFkU3RhcnQiLCAiaW5wdXQiLCAiaXNOZWciLCAicGFkZGVkIiwgInBhcnNlSW50ZWdlciIsICJzdHJpbmciLCAicGFyc2VGbG9hdGluZyIsICJwYXJzZU1pbGxpcyIsICJmcmFjdGlvbiIsICJmIiwgInJvdW5kVG8iLCAibnVtYmVyIiwgImRpZ2l0cyIsICJ0b3dhcmRaZXJvIiwgImZhY3RvciIsICJpc0xlYXBZZWFyIiwgInllYXIiLCAiZGF5c0luWWVhciIsICJkYXlzSW5Nb250aCIsICJtb250aCIsICJtb2RNb250aCIsICJtb2RZZWFyIiwgIm9ialRvTG9jYWxUUyIsICJkIiwgIndlZWtzSW5XZWVrWWVhciIsICJ3ZWVrWWVhciIsICJwMSIsICJsYXN0IiwgInAyIiwgInVudHJ1bmNhdGVZZWFyIiwgInBhcnNlWm9uZUluZm8iLCAidHMiLCAib2Zmc2V0Rm9ybWF0IiwgImxvY2FsZSIsICJ0aW1lWm9uZSIsICJkYXRlIiwgImludGxPcHRzIiwgIm1vZGlmaWVkIiwgIl9fc3ByZWFkVmFsdWVzIiwgInBhcnNlZCIsICJtIiwgInNpZ25lZE9mZnNldCIsICJvZmZIb3VyU3RyIiwgIm9mZk1pbnV0ZVN0ciIsICJvZmZIb3VyIiwgIm9mZk1pbiIsICJvZmZNaW5TaWduZWQiLCAiYXNOdW1iZXIiLCAidmFsdWUiLCAibnVtZXJpY1ZhbHVlIiwgIkludmFsaWRBcmd1bWVudEVycm9yIiwgIm5vcm1hbGl6ZU9iamVjdCIsICJub3JtYWxpemVyIiwgIm5vcm1hbGl6ZWQiLCAidSIsICJ2IiwgImZvcm1hdE9mZnNldCIsICJvZmZzZXQiLCAiZm9ybWF0IiwgImhvdXJzIiwgIm1pbnV0ZXMiLCAic2lnbiIsICJ0aW1lT2JqZWN0IiwgImlhbmFSZWdleCIsICJtb250aHNMb25nIiwgIm1vbnRoc1Nob3J0IiwgIm1vbnRoc05hcnJvdyIsICJtb250aHMiLCAibGVuZ3RoIiwgIndlZWtkYXlzTG9uZyIsICJ3ZWVrZGF5c1Nob3J0IiwgIndlZWtkYXlzTmFycm93IiwgIndlZWtkYXlzIiwgIm1lcmlkaWVtcyIsICJlcmFzTG9uZyIsICJlcmFzU2hvcnQiLCAiZXJhc05hcnJvdyIsICJlcmFzIiwgIm1lcmlkaWVtRm9yRGF0ZVRpbWUiLCAiZHQiLCAid2Vla2RheUZvckRhdGVUaW1lIiwgIm1vbnRoRm9yRGF0ZVRpbWUiLCAiZXJhRm9yRGF0ZVRpbWUiLCAiZm9ybWF0UmVsYXRpdmVUaW1lIiwgInVuaXQiLCAiY291bnQiLCAibnVtZXJpYyIsICJuYXJyb3ciLCAidW5pdHMiLCAibGFzdGFibGUiLCAiaXNEYXkiLCAiaXNJblBhc3QiLCAiZm10VmFsdWUiLCAic2luZ3VsYXIiLCAibGlsVW5pdHMiLCAiZm10VW5pdCIsICJzdHJpbmdpZnlUb2tlbnMiLCAic3BsaXRzIiwgInRva2VuVG9TdHJpbmciLCAicyIsICJ0b2tlbiIsICJtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzIiwgIkRBVEVfU0hPUlQiLCAiREFURV9NRUQiLCAiREFURV9GVUxMIiwgIkRBVEVfSFVHRSIsICJUSU1FX1NJTVBMRSIsICJUSU1FX1dJVEhfU0VDT05EUyIsICJUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUIiwgIlRJTUVfV0lUSF9MT05HX09GRlNFVCIsICJUSU1FXzI0X1NJTVBMRSIsICJUSU1FXzI0X1dJVEhfU0VDT05EUyIsICJUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUIiwgIlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCIsICJEQVRFVElNRV9TSE9SVCIsICJEQVRFVElNRV9NRUQiLCAiREFURVRJTUVfRlVMTCIsICJEQVRFVElNRV9IVUdFIiwgIkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTIiwgIkZvcm1hdHRlciIsICJfRm9ybWF0dGVyIiwgImxvY2FsZSIsICJvcHRzIiwgImZtdCIsICJjdXJyZW50IiwgImN1cnJlbnRGdWxsIiwgImJyYWNrZXRlZCIsICJpIiwgImMiLCAiZm9ybWF0T3B0cyIsICJkdCIsICJfX3NwcmVhZFZhbHVlcyIsICJuIiwgInAiLCAicGFkU3RhcnQiLCAia25vd25FbmdsaXNoIiwgInVzZURhdGVUaW1lRm9ybWF0dGVyIiwgInN0cmluZyIsICJleHRyYWN0IiwgImZvcm1hdE9mZnNldCIsICJtZXJpZGllbSIsICJtZXJpZGllbUZvckRhdGVUaW1lIiwgIm1vbnRoIiwgImxlbmd0aCIsICJzdGFuZGFsb25lIiwgIm1vbnRoRm9yRGF0ZVRpbWUiLCAid2Vla2RheSIsICJ3ZWVrZGF5Rm9yRGF0ZVRpbWUiLCAibWF5YmVNYWNybyIsICJlcmEiLCAiZXJhRm9yRGF0ZVRpbWUiLCAiZHVyIiwgInRva2VuVG9GaWVsZCIsICJsaWxkdXIiLCAibWFwcGVkIiwgInRva2VucyIsICJyZWFsVG9rZW5zIiwgImZvdW5kIiwgImxpdGVyYWwiLCAidmFsIiwgImNvbGxhcHNlZCIsICJ0IiwgIkludmFsaWQiLCAicmVhc29uIiwgImV4cGxhbmF0aW9uIiwgIlpvbmUiLCAiWm9uZUlzQWJzdHJhY3RFcnJvciIsICJ0cyIsICJvcHRzIiwgImZvcm1hdCIsICJvdGhlclpvbmUiLCAic2luZ2xldG9uIiwgIlN5c3RlbVpvbmUiLCAiX1N5c3RlbVpvbmUiLCAiWm9uZSIsICJ0cyIsICJmb3JtYXQiLCAibG9jYWxlIiwgInBhcnNlWm9uZUluZm8iLCAiZm9ybWF0T2Zmc2V0IiwgIm90aGVyWm9uZSIsICJkdGZDYWNoZSIsICJtYWtlRFRGIiwgInpvbmUiLCAidHlwZVRvUG9zIiwgImhhY2t5T2Zmc2V0IiwgImR0ZiIsICJkYXRlIiwgImZvcm1hdHRlZCIsICJwYXJzZWQiLCAiZk1vbnRoIiwgImZEYXkiLCAiZlllYXIiLCAiZmFkT3JCYyIsICJmSG91ciIsICJmTWludXRlIiwgImZTZWNvbmQiLCAicGFydHNPZmZzZXQiLCAiZmlsbGVkIiwgImkiLCAidHlwZSIsICJ2YWx1ZSIsICJwb3MiLCAiaXNVbmRlZmluZWQiLCAiaWFuYVpvbmVDYWNoZSIsICJJQU5BWm9uZSIsICJfSUFOQVpvbmUiLCAiWm9uZSIsICJuYW1lIiwgInMiLCAiZSIsICJ0cyIsICJmb3JtYXQiLCAibG9jYWxlIiwgInBhcnNlWm9uZUluZm8iLCAiZm9ybWF0T2Zmc2V0IiwgInllYXIiLCAibW9udGgiLCAiZGF5IiwgImFkT3JCYyIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAiYXNVVEMiLCAib2JqVG9Mb2NhbFRTIiwgImFzVFMiLCAib3ZlciIsICJvdGhlclpvbmUiLCAic2luZ2xldG9uIiwgIkZpeGVkT2Zmc2V0Wm9uZSIsICJfRml4ZWRPZmZzZXRab25lIiwgIlpvbmUiLCAib2Zmc2V0IiwgInMiLCAiciIsICJzaWduZWRPZmZzZXQiLCAiZm9ybWF0T2Zmc2V0IiwgInRzIiwgImZvcm1hdCIsICJvdGhlclpvbmUiLCAiSW52YWxpZFpvbmUiLCAiWm9uZSIsICJ6b25lTmFtZSIsICJub3JtYWxpemVab25lIiwgImlucHV0IiwgImRlZmF1bHRab25lIiwgIm9mZnNldCIsICJpc1VuZGVmaW5lZCIsICJab25lIiwgImlzU3RyaW5nIiwgImxvd2VyZWQiLCAiRml4ZWRPZmZzZXRab25lIiwgIklBTkFab25lIiwgImlzTnVtYmVyIiwgIkludmFsaWRab25lIiwgIm5vdyIsICJkZWZhdWx0Wm9uZSIsICJkZWZhdWx0TG9jYWxlIiwgImRlZmF1bHROdW1iZXJpbmdTeXN0ZW0iLCAiZGVmYXVsdE91dHB1dENhbGVuZGFyIiwgInRocm93T25JbnZhbGlkIiwgIlNldHRpbmdzIiwgIm4iLCAiem9uZSIsICJub3JtYWxpemVab25lIiwgIlN5c3RlbVpvbmUiLCAibG9jYWxlIiwgIm51bWJlcmluZ1N5c3RlbSIsICJvdXRwdXRDYWxlbmRhciIsICJ0IiwgIkxvY2FsZSIsICJJQU5BWm9uZSIsICJpbnRsTEZDYWNoZSIsICJnZXRDYWNoZWRMRiIsICJsb2NTdHJpbmciLCAib3B0cyIsICJrZXkiLCAiZHRmIiwgImludGxEVENhY2hlIiwgImdldENhY2hlZERURiIsICJpbnRsTnVtQ2FjaGUiLCAiZ2V0Q2FjaGVkSU5GIiwgImluZiIsICJpbnRsUmVsQ2FjaGUiLCAiZ2V0Q2FjaGVkUlRGIiwgIl9hIiwgImJhc2UiLCAiY2FjaGVLZXlPcHRzIiwgIl9fb2JqUmVzdCIsICJzeXNMb2NhbGVDYWNoZSIsICJzeXN0ZW1Mb2NhbGUiLCAicGFyc2VMb2NhbGVTdHJpbmciLCAibG9jYWxlU3RyIiwgInVJbmRleCIsICJvcHRpb25zIiwgInNtYWxsZXIiLCAiZSIsICJudW1iZXJpbmdTeXN0ZW0iLCAiY2FsZW5kYXIiLCAiaW50bENvbmZpZ1N0cmluZyIsICJvdXRwdXRDYWxlbmRhciIsICJtYXBNb250aHMiLCAiZiIsICJtcyIsICJpIiwgImR0IiwgIkRhdGVUaW1lIiwgIm1hcFdlZWtkYXlzIiwgImxpc3RTdHVmZiIsICJsb2MiLCAibGVuZ3RoIiwgImRlZmF1bHRPSyIsICJlbmdsaXNoRm4iLCAiaW50bEZuIiwgIm1vZGUiLCAic3VwcG9ydHNGYXN0TnVtYmVycyIsICJQb2x5TnVtYmVyRm9ybWF0dGVyIiwgImludGwiLCAiZm9yY2VTaW1wbGUiLCAicGFkVG8iLCAiZmxvb3IiLCAib3RoZXJPcHRzIiwgImludGxPcHRzIiwgIl9fc3ByZWFkVmFsdWVzIiwgImZpeGVkIiwgInJvdW5kVG8iLCAicGFkU3RhcnQiLCAiUG9seURhdGVGb3JtYXR0ZXIiLCAieiIsICJnbXRPZmZzZXQiLCAib2Zmc2V0WiIsICJJQU5BWm9uZSIsICJQb2x5UmVsRm9ybWF0dGVyIiwgImlzRW5nbGlzaCIsICJoYXNSZWxhdGl2ZSIsICJjb3VudCIsICJ1bml0IiwgImZvcm1hdFJlbGF0aXZlVGltZSIsICJMb2NhbGUiLCAiX0xvY2FsZSIsICJsb2NhbGUiLCAiZGVmYXVsdFRvRU4iLCAic3BlY2lmaWVkTG9jYWxlIiwgIlNldHRpbmdzIiwgImxvY2FsZVIiLCAibnVtYmVyaW5nU3lzdGVtUiIsICJvdXRwdXRDYWxlbmRhclIiLCAibnVtYmVyaW5nIiwgInBhcnNlZExvY2FsZSIsICJwYXJzZWROdW1iZXJpbmdTeXN0ZW0iLCAicGFyc2VkT3V0cHV0Q2FsZW5kYXIiLCAiaXNBY3R1YWxseUVuIiwgImhhc05vV2VpcmRuZXNzIiwgImFsdHMiLCAiX19zcHJlYWRQcm9wcyIsICJmb3JtYXQiLCAibW9udGhzIiwgImZvcm1hdFN0ciIsICJ3ZWVrZGF5cyIsICJtZXJpZGllbXMiLCAiZXJhcyIsICJmaWVsZCIsICJkZiIsICJyZXN1bHRzIiwgIm1hdGNoaW5nIiwgIm0iLCAib3RoZXIiLCAiY29tYmluZVJlZ2V4ZXMiLCAicmVnZXhlcyIsICJmdWxsIiwgImYiLCAiY29tYmluZUV4dHJhY3RvcnMiLCAiZXh0cmFjdG9ycyIsICJtIiwgIm1lcmdlZFZhbHMiLCAibWVyZ2VkWm9uZSIsICJjdXJzb3IiLCAiZXgiLCAidmFsIiwgInpvbmUiLCAibmV4dCIsICJfX3NwcmVhZFZhbHVlcyIsICJwYXJzZSIsICJzIiwgInBhdHRlcm5zIiwgInJlZ2V4IiwgImV4dHJhY3RvciIsICJzaW1wbGVQYXJzZSIsICJrZXlzIiwgIm1hdGNoIiwgInJldCIsICJpIiwgInBhcnNlSW50ZWdlciIsICJvZmZzZXRSZWdleCIsICJpc29FeHRlbmRlZFpvbmUiLCAiaWFuYVJlZ2V4IiwgImlzb1RpbWVCYXNlUmVnZXgiLCAiaXNvVGltZVJlZ2V4IiwgImlzb1RpbWVFeHRlbnNpb25SZWdleCIsICJpc29ZbWRSZWdleCIsICJpc29XZWVrUmVnZXgiLCAiaXNvT3JkaW5hbFJlZ2V4IiwgImV4dHJhY3RJU09XZWVrRGF0YSIsICJleHRyYWN0SVNPT3JkaW5hbERhdGEiLCAic3FsWW1kUmVnZXgiLCAic3FsVGltZVJlZ2V4IiwgInNxbFRpbWVFeHRlbnNpb25SZWdleCIsICJpbnQiLCAicG9zIiwgImZhbGxiYWNrIiwgImlzVW5kZWZpbmVkIiwgImV4dHJhY3RJU09ZbWQiLCAiZXh0cmFjdElTT1RpbWUiLCAicGFyc2VNaWxsaXMiLCAiZXh0cmFjdElTT09mZnNldCIsICJsb2NhbCIsICJmdWxsT2Zmc2V0IiwgInNpZ25lZE9mZnNldCIsICJGaXhlZE9mZnNldFpvbmUiLCAiZXh0cmFjdElBTkFab25lIiwgIklBTkFab25lIiwgImlzb1RpbWVPbmx5IiwgImlzb0R1cmF0aW9uIiwgImV4dHJhY3RJU09EdXJhdGlvbiIsICJ5ZWFyU3RyIiwgIm1vbnRoU3RyIiwgIndlZWtTdHIiLCAiZGF5U3RyIiwgImhvdXJTdHIiLCAibWludXRlU3RyIiwgInNlY29uZFN0ciIsICJtaWxsaXNlY29uZHNTdHIiLCAiaGFzTmVnYXRpdmVQcmVmaXgiLCAibmVnYXRpdmVTZWNvbmRzIiwgIm1heWJlTmVnYXRlIiwgIm51bSIsICJmb3JjZSIsICJwYXJzZUZsb2F0aW5nIiwgIm9ic09mZnNldHMiLCAiZnJvbVN0cmluZ3MiLCAid2Vla2RheVN0ciIsICJyZXN1bHQiLCAidW50cnVuY2F0ZVllYXIiLCAibW9udGhzU2hvcnQiLCAid2Vla2RheXNMb25nIiwgIndlZWtkYXlzU2hvcnQiLCAicmZjMjgyMiIsICJleHRyYWN0UkZDMjgyMiIsICJvYnNPZmZzZXQiLCAibWlsT2Zmc2V0IiwgIm9mZkhvdXJTdHIiLCAib2ZmTWludXRlU3RyIiwgIm9mZnNldCIsICJwcmVwcm9jZXNzUkZDMjgyMiIsICJyZmMxMTIzIiwgInJmYzg1MCIsICJhc2NpaSIsICJleHRyYWN0UkZDMTEyM09yODUwIiwgImV4dHJhY3RBU0NJSSIsICJpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4IiwgImlzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4IiwgImlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4IiwgImlzb1RpbWVDb21iaW5lZFJlZ2V4IiwgImV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0IiwgImV4dHJhY3RJU09XZWVrVGltZUFuZE9mZnNldCIsICJleHRyYWN0SVNPT3JkaW5hbERhdGVBbmRUaW1lIiwgImV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0IiwgInBhcnNlSVNPRGF0ZSIsICJwYXJzZVJGQzI4MjJEYXRlIiwgInBhcnNlSFRUUERhdGUiLCAicGFyc2VJU09EdXJhdGlvbiIsICJleHRyYWN0SVNPVGltZU9ubHkiLCAicGFyc2VJU09UaW1lT25seSIsICJzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4IiwgInNxbFRpbWVDb21iaW5lZFJlZ2V4IiwgImV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUiLCAicGFyc2VTUUwiLCAiSU5WQUxJRCIsICJsb3dPcmRlck1hdHJpeCIsICJjYXN1YWxNYXRyaXgiLCAiX19zcHJlYWRWYWx1ZXMiLCAiZGF5c0luWWVhckFjY3VyYXRlIiwgImRheXNJbk1vbnRoQWNjdXJhdGUiLCAiYWNjdXJhdGVNYXRyaXgiLCAib3JkZXJlZFVuaXRzIiwgInJldmVyc2VVbml0cyIsICJjbG9uZSIsICJkdXIiLCAiYWx0cyIsICJjbGVhciIsICJjb25mIiwgIkR1cmF0aW9uIiwgImFudGlUcnVuYyIsICJjb252ZXJ0IiwgIm1hdHJpeCIsICJmcm9tTWFwIiwgImZyb21Vbml0IiwgInRvTWFwIiwgInRvVW5pdCIsICJjb252IiwgInJhdyIsICJzYW1lU2lnbiIsICJhZGRlZCIsICJub3JtYWxpemVWYWx1ZXMiLCAidmFscyIsICJwcmV2aW91cyIsICJjdXJyZW50IiwgImlzVW5kZWZpbmVkIiwgIl9EdXJhdGlvbiIsICJjb25maWciLCAiYWNjdXJhdGUiLCAiTG9jYWxlIiwgImNvdW50IiwgIm9wdHMiLCAib2JqIiwgIkludmFsaWRBcmd1bWVudEVycm9yIiwgIm5vcm1hbGl6ZU9iamVjdCIsICJkdXJhdGlvbkxpa2UiLCAiaXNOdW1iZXIiLCAidGV4dCIsICJwYXJzZWQiLCAicGFyc2VJU09EdXJhdGlvbiIsICJwYXJzZUlTT1RpbWVPbmx5IiwgInJlYXNvbiIsICJleHBsYW5hdGlvbiIsICJpbnZhbGlkIiwgIkludmFsaWQiLCAiU2V0dGluZ3MiLCAiSW52YWxpZER1cmF0aW9uRXJyb3IiLCAidW5pdCIsICJub3JtYWxpemVkIiwgIkludmFsaWRVbml0RXJyb3IiLCAibyIsICJmbXQiLCAiZm10T3B0cyIsICJfX3NwcmVhZFByb3BzIiwgIkZvcm1hdHRlciIsICJsIiwgInZhbCIsICJuIiwgInMiLCAicm91bmRUbyIsICJtaWxsaXMiLCAidmFsdWUiLCAic3RyIiwgImR1cmF0aW9uIiwgInJlc3VsdCIsICJrIiwgImhhc093blByb3BlcnR5IiwgImZuIiwgImFzTnVtYmVyIiwgInZhbHVlcyIsICJtaXhlZCIsICJsb2NhbGUiLCAibnVtYmVyaW5nU3lzdGVtIiwgImNvbnZlcnNpb25BY2N1cmFjeSIsICJsb2MiLCAidW5pdHMiLCAidSIsICJidWlsdCIsICJhY2N1bXVsYXRlZCIsICJsYXN0VW5pdCIsICJvd24iLCAiYWsiLCAiaSIsICJkb3duIiwgImtleSIsICJuZWdhdGVkIiwgIm90aGVyIiwgImVxIiwgInYxIiwgInYyIiwgIklOVkFMSUQiLCAidmFsaWRhdGVTdGFydEVuZCIsICJzdGFydCIsICJlbmQiLCAiSW50ZXJ2YWwiLCAiX0ludGVydmFsIiwgImNvbmZpZyIsICJyZWFzb24iLCAiZXhwbGFuYXRpb24iLCAiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCAiaW52YWxpZCIsICJJbnZhbGlkIiwgIlNldHRpbmdzIiwgIkludmFsaWRJbnRlcnZhbEVycm9yIiwgImJ1aWx0U3RhcnQiLCAiZnJpZW5kbHlEYXRlVGltZSIsICJidWlsdEVuZCIsICJ2YWxpZGF0ZUVycm9yIiwgImR1cmF0aW9uIiwgImR1ciIsICJEdXJhdGlvbiIsICJkdCIsICJ0ZXh0IiwgIm9wdHMiLCAicyIsICJlIiwgInN0YXJ0SXNWYWxpZCIsICJEYXRlVGltZSIsICJlbmRJc1ZhbGlkIiwgIm8iLCAidW5pdCIsICJkYXRlVGltZSIsICJkYXRlVGltZXMiLCAic29ydGVkIiwgImQiLCAicmVzdWx0cyIsICJhZGRlZCIsICJuZXh0IiwgImlkeCIsICJ4IiwgIm51bWJlck9mUGFydHMiLCAib3RoZXIiLCAiaW50ZXJ2YWxzIiwgImZvdW5kIiwgImZpbmFsIiwgImEiLCAiYiIsICJzb2ZhciIsICJjdXJyZW50IiwgIml0ZW0iLCAiY3VycmVudENvdW50IiwgImVuZHMiLCAiaSIsICJmbGF0dGVuZWQiLCAiYXJyIiwgImRhdGVGb3JtYXQiLCAic2VwYXJhdG9yIiwgIm1hcEZuIiwgIkluZm8iLCAiem9uZSIsICJTZXR0aW5ncyIsICJwcm90byIsICJEYXRlVGltZSIsICJJQU5BWm9uZSIsICJpbnB1dCIsICJub3JtYWxpemVab25lIiwgImxlbmd0aCIsICJsb2NhbGUiLCAibnVtYmVyaW5nU3lzdGVtIiwgImxvY09iaiIsICJvdXRwdXRDYWxlbmRhciIsICJMb2NhbGUiLCAiaGFzUmVsYXRpdmUiLCAiZGF5RGlmZiIsICJlYXJsaWVyIiwgImxhdGVyIiwgInV0Y0RheVN0YXJ0IiwgImR0IiwgIm1zIiwgIkR1cmF0aW9uIiwgImhpZ2hPcmRlckRpZmZzIiwgImN1cnNvciIsICJ1bml0cyIsICJkaWZmZXJzIiwgImIiLCAiZGF5cyIsICJyZXN1bHRzIiwgImxvd2VzdE9yZGVyIiwgImhpZ2hXYXRlciIsICJ1bml0IiwgImRpZmZlciIsICJkZWx0YSIsICJkaWZmX2RlZmF1bHQiLCAib3B0cyIsICJyZW1haW5pbmdNaWxsaXMiLCAibG93ZXJPcmRlclVuaXRzIiwgInUiLCAiZHVyYXRpb24iLCAibnVtYmVyaW5nU3lzdGVtcyIsICJudW1iZXJpbmdTeXN0ZW1zVVRGMTYiLCAiaGFuaWRlY0NoYXJzIiwgInBhcnNlRGlnaXRzIiwgInN0ciIsICJ2YWx1ZSIsICJpIiwgImNvZGUiLCAia2V5IiwgIm1pbiIsICJtYXgiLCAiZGlnaXRSZWdleCIsICJudW1iZXJpbmdTeXN0ZW0iLCAiYXBwZW5kIiwgIk1JU1NJTkdfRlRQIiwgImludFVuaXQiLCAicmVnZXgiLCAicG9zdCIsICJpIiwgInMiLCAicGFyc2VEaWdpdHMiLCAiTkJTUCIsICJzcGFjZU9yTkJTUCIsICJzcGFjZU9yTkJTUFJlZ0V4cCIsICJmaXhMaXN0UmVnZXgiLCAic3RyaXBJbnNlbnNpdGl2aXRpZXMiLCAib25lT2YiLCAic3RyaW5ncyIsICJzdGFydEluZGV4IiwgIm9mZnNldCIsICJncm91cHMiLCAiaCIsICJtIiwgInNpZ25lZE9mZnNldCIsICJzaW1wbGUiLCAiZXNjYXBlVG9rZW4iLCAidmFsdWUiLCAidW5pdEZvclRva2VuIiwgInRva2VuIiwgImxvYyIsICJvbmUiLCAiZGlnaXRSZWdleCIsICJ0d28iLCAidGhyZWUiLCAiZm91ciIsICJzaXgiLCAib25lT3JUd28iLCAib25lVG9UaHJlZSIsICJvbmVUb1NpeCIsICJvbmVUb05pbmUiLCAidHdvVG9Gb3VyIiwgImZvdXJUb1NpeCIsICJsaXRlcmFsIiwgInQiLCAidW5pdCIsICJ1bnRydW5jYXRlWWVhciIsICJwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbCIsICJ0b2tlbkZvclBhcnQiLCAicGFydCIsICJsb2NhbGUiLCAiZm9ybWF0T3B0cyIsICJ0eXBlIiwgInN0eWxlIiwgInZhbCIsICJidWlsZFJlZ2V4IiwgInVuaXRzIiwgInUiLCAiZiIsICJtYXRjaCIsICJpbnB1dCIsICJoYW5kbGVycyIsICJtYXRjaGVzIiwgImFsbCIsICJtYXRjaEluZGV4IiwgImhhc093blByb3BlcnR5IiwgImRhdGVUaW1lRnJvbU1hdGNoZXMiLCAidG9GaWVsZCIsICJ6b25lIiwgInNwZWNpZmljT2Zmc2V0IiwgImlzVW5kZWZpbmVkIiwgIklBTkFab25lIiwgIkZpeGVkT2Zmc2V0Wm9uZSIsICJwYXJzZU1pbGxpcyIsICJyIiwgImsiLCAiZHVtbXlEYXRlVGltZUNhY2hlIiwgImdldER1bW15RGF0ZVRpbWUiLCAiRGF0ZVRpbWUiLCAibWF5YmVFeHBhbmRNYWNyb1Rva2VuIiwgIkZvcm1hdHRlciIsICJ0b2tlbnMiLCAicCIsICJleHBhbmRNYWNyb1Rva2VucyIsICJleHBsYWluRnJvbVRva2VucyIsICJmb3JtYXQiLCAiZGlzcXVhbGlmeWluZ1VuaXQiLCAicmVnZXhTdHJpbmciLCAicmF3TWF0Y2hlcyIsICJyZXN1bHQiLCAiQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IiLCAicGFyc2VGcm9tVG9rZW5zIiwgImludmFsaWRSZWFzb24iLCAibm9uTGVhcExhZGRlciIsICJsZWFwTGFkZGVyIiwgInVuaXRPdXRPZlJhbmdlIiwgInVuaXQiLCAidmFsdWUiLCAiSW52YWxpZCIsICJkYXlPZldlZWsiLCAieWVhciIsICJtb250aCIsICJkYXkiLCAiZCIsICJqcyIsICJjb21wdXRlT3JkaW5hbCIsICJpc0xlYXBZZWFyIiwgInVuY29tcHV0ZU9yZGluYWwiLCAib3JkaW5hbCIsICJ0YWJsZSIsICJtb250aDAiLCAiZ3JlZ29yaWFuVG9XZWVrIiwgImdyZWdPYmoiLCAid2Vla2RheSIsICJ3ZWVrTnVtYmVyIiwgIndlZWtZZWFyIiwgIndlZWtzSW5XZWVrWWVhciIsICJfX3NwcmVhZFZhbHVlcyIsICJ0aW1lT2JqZWN0IiwgIndlZWtUb0dyZWdvcmlhbiIsICJ3ZWVrRGF0YSIsICJ3ZWVrZGF5T2ZKYW40IiwgInllYXJJbkRheXMiLCAiZGF5c0luWWVhciIsICJncmVnb3JpYW5Ub09yZGluYWwiLCAiZ3JlZ0RhdGEiLCAib3JkaW5hbFRvR3JlZ29yaWFuIiwgIm9yZGluYWxEYXRhIiwgImhhc0ludmFsaWRXZWVrRGF0YSIsICJvYmoiLCAidmFsaWRZZWFyIiwgImlzSW50ZWdlciIsICJ2YWxpZFdlZWsiLCAiaW50ZWdlckJldHdlZW4iLCAidmFsaWRXZWVrZGF5IiwgImhhc0ludmFsaWRPcmRpbmFsRGF0YSIsICJ2YWxpZE9yZGluYWwiLCAiaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEiLCAidmFsaWRNb250aCIsICJ2YWxpZERheSIsICJkYXlzSW5Nb250aCIsICJoYXNJbnZhbGlkVGltZURhdGEiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIiwgInZhbGlkSG91ciIsICJ2YWxpZE1pbnV0ZSIsICJ2YWxpZFNlY29uZCIsICJ2YWxpZE1pbGxpc2Vjb25kIiwgIklOVkFMSUQiLCAiTUFYX0RBVEUiLCAidW5zdXBwb3J0ZWRab25lIiwgInpvbmUiLCAiSW52YWxpZCIsICJwb3NzaWJseUNhY2hlZFdlZWtEYXRhIiwgImR0IiwgImdyZWdvcmlhblRvV2VlayIsICJjbG9uZSIsICJpbnN0IiwgImFsdHMiLCAiY3VycmVudCIsICJEYXRlVGltZSIsICJfX3NwcmVhZFByb3BzIiwgIl9fc3ByZWFkVmFsdWVzIiwgImZpeE9mZnNldCIsICJsb2NhbFRTIiwgIm8iLCAidHoiLCAidXRjR3Vlc3MiLCAibzIiLCAibzMiLCAidHNUb09iaiIsICJ0cyIsICJvZmZzZXQiLCAiZCIsICJvYmpUb1RTIiwgIm9iaiIsICJvYmpUb0xvY2FsVFMiLCAiYWRqdXN0VGltZSIsICJkdXIiLCAib1ByZSIsICJ5ZWFyIiwgIm1vbnRoIiwgImMiLCAiZGF5c0luTW9udGgiLCAibWlsbGlzVG9BZGQiLCAiRHVyYXRpb24iLCAicGFyc2VEYXRhVG9EYXRlVGltZSIsICJwYXJzZWQiLCAicGFyc2VkWm9uZSIsICJvcHRzIiwgImZvcm1hdCIsICJ0ZXh0IiwgInNwZWNpZmljT2Zmc2V0IiwgInNldFpvbmUiLCAiaW50ZXJwcmV0YXRpb25ab25lIiwgInRvVGVjaEZvcm1hdCIsICJhbGxvd1oiLCAiRm9ybWF0dGVyIiwgIkxvY2FsZSIsICJ0b0lTT0RhdGUiLCAiZXh0ZW5kZWQiLCAibG9uZ0Zvcm1hdCIsICJwYWRTdGFydCIsICJ0b0lTT1RpbWUiLCAic3VwcHJlc3NTZWNvbmRzIiwgInN1cHByZXNzTWlsbGlzZWNvbmRzIiwgImluY2x1ZGVPZmZzZXQiLCAiZXh0ZW5kZWRab25lIiwgImRlZmF1bHRVbml0VmFsdWVzIiwgImRlZmF1bHRXZWVrVW5pdFZhbHVlcyIsICJkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXMiLCAib3JkZXJlZFVuaXRzIiwgIm9yZGVyZWRXZWVrVW5pdHMiLCAib3JkZXJlZE9yZGluYWxVbml0cyIsICJub3JtYWxpemVVbml0IiwgInVuaXQiLCAibm9ybWFsaXplZCIsICJJbnZhbGlkVW5pdEVycm9yIiwgInF1aWNrRFQiLCAibm9ybWFsaXplWm9uZSIsICJTZXR0aW5ncyIsICJsb2MiLCAidHNOb3ciLCAiaXNVbmRlZmluZWQiLCAidSIsICJpbnZhbGlkIiwgImhhc0ludmFsaWRHcmVnb3JpYW5EYXRhIiwgImhhc0ludmFsaWRUaW1lRGF0YSIsICJvZmZzZXRQcm92aXMiLCAiZGlmZlJlbGF0aXZlIiwgInN0YXJ0IiwgImVuZCIsICJyb3VuZCIsICJyb3VuZFRvIiwgImRpZmZlciIsICJjb3VudCIsICJsYXN0T3B0cyIsICJhcmdMaXN0IiwgImFyZ3MiLCAiX0RhdGVUaW1lIiwgImNvbmZpZyIsICJvdCIsICJkYXkiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgIm1pbGxpc2Vjb25kIiwgIkZpeGVkT2Zmc2V0Wm9uZSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiaXNEYXRlIiwgInpvbmVUb1VzZSIsICJtaWxsaXNlY29uZHMiLCAiaXNOdW1iZXIiLCAiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCAic2Vjb25kcyIsICJub3JtYWxpemVPYmplY3QiLCAiY29udGFpbnNPcmRpbmFsIiwgImNvbnRhaW5zR3JlZ29yWWVhciIsICJjb250YWluc0dyZWdvck1EIiwgImNvbnRhaW5zR3JlZ29yIiwgImRlZmluaXRlV2Vla0RlZiIsICJDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciIsICJ1c2VXZWVrRGF0YSIsICJ1bml0cyIsICJkZWZhdWx0VmFsdWVzIiwgIm9iak5vdyIsICJncmVnb3JpYW5Ub09yZGluYWwiLCAiZm91bmRGaXJzdCIsICJ2IiwgImhpZ2hlck9yZGVySW52YWxpZCIsICJoYXNJbnZhbGlkV2Vla0RhdGEiLCAiaGFzSW52YWxpZE9yZGluYWxEYXRhIiwgImdyZWdvcmlhbiIsICJ3ZWVrVG9HcmVnb3JpYW4iLCAib3JkaW5hbFRvR3JlZ29yaWFuIiwgInRzRmluYWwiLCAib2Zmc2V0RmluYWwiLCAidmFscyIsICJwYXJzZUlTT0RhdGUiLCAicGFyc2VSRkMyODIyRGF0ZSIsICJwYXJzZUhUVFBEYXRlIiwgImZtdCIsICJsb2NhbGUiLCAibnVtYmVyaW5nU3lzdGVtIiwgImxvY2FsZVRvVXNlIiwgInBhcnNlRnJvbVRva2VucyIsICJwYXJzZVNRTCIsICJyZWFzb24iLCAiZXhwbGFuYXRpb24iLCAiSW52YWxpZERhdGVUaW1lRXJyb3IiLCAiSW5mbyIsICJpc0xlYXBZZWFyIiwgImRheXNJblllYXIiLCAid2Vla3NJbldlZWtZZWFyIiwgImNhbGVuZGFyIiwgImtlZXBMb2NhbFRpbWUiLCAia2VlcENhbGVuZGFyVGltZSIsICJuZXdUUyIsICJvZmZzZXRHdWVzcyIsICJhc09iaiIsICJvdXRwdXRDYWxlbmRhciIsICJ2YWx1ZXMiLCAic2V0dGluZ1dlZWtTdHVmZiIsICJtaXhlZCIsICJkdXJhdGlvbiIsICJub3JtYWxpemVkVW5pdCIsICJxIiwgImZvcm1hdE9wdHMiLCAiREFURV9TSE9SVCIsICJleHQiLCAiaW5jbHVkZVByZWZpeCIsICJpbmNsdWRlWm9uZSIsICJpbmNsdWRlT2Zmc2V0U3BhY2UiLCAiYmFzZSIsICJvdGhlckRhdGVUaW1lIiwgImR1ck9wdHMiLCAibWF5YmVBcnJheSIsICJvdGhlcklzTGF0ZXIiLCAiZWFybGllciIsICJsYXRlciIsICJkaWZmZWQiLCAiZGlmZl9kZWZhdWx0IiwgIkludGVydmFsIiwgImlucHV0TXMiLCAiYWRqdXN0ZWRUb1pvbmUiLCAib3RoZXIiLCAicGFkZGluZyIsICJkYXRlVGltZXMiLCAiYmVzdEJ5IiwgImkiLCAiZXhwbGFpbkZyb21Ub2tlbnMiLCAiREFURV9NRUQiLCAiREFURV9NRURfV0lUSF9XRUVLREFZIiwgIkRBVEVfRlVMTCIsICJEQVRFX0hVR0UiLCAiVElNRV9TSU1QTEUiLCAiVElNRV9XSVRIX1NFQ09ORFMiLCAiVElNRV9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FX1dJVEhfTE9OR19PRkZTRVQiLCAiVElNRV8yNF9TSU1QTEUiLCAiVElNRV8yNF9XSVRIX1NFQ09ORFMiLCAiVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQiLCAiREFURVRJTUVfU0hPUlQiLCAiREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX01FRCIsICJEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTIiwgIkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkiLCAiREFURVRJTUVfRlVMTCIsICJEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9IVUdFIiwgIkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTIiwgImZyaWVuZGx5RGF0ZVRpbWUiLCAiZGF0ZVRpbWVpc2giLCAiUCIsICJlbW9qaV9yZWdleF9kZWZhdWx0IiwgIm5vcm1hbGl6ZUR1cmF0aW9uIiwgImR1ciIsICJyZW5kZXJNaW5pbWFsRGF0ZSIsICJ0aW1lIiwgImRhdGVGb3JtYXQiLCAiZGF0ZVRpbWVGb3JtYXQiLCAibG9jYWxlIiwgInJlbmRlck1pbmltYWxEdXJhdGlvbiIsICJkdXIiLCAibm9ybWFsaXplRHVyYXRpb24iLCAicmVzdWx0IiwgImdldEZpbGVUaXRsZSIsICJwYXRoIiwgImdldEV4dGVuc2lvbiIsICJIRUFERVJfQ0FOT05JQ0FMSVpFUiIsICJlbW9qaV9yZWdleF9kZWZhdWx0IiwgIl8iLCAicmVzdWx0IiwgIm5vcm1hbGl6ZUhlYWRlckZvckxpbmsiLCAiaGVhZGVyIiwgIkxpbmsiLCAiX0xpbmsiLCAicGF0aCIsICJlbWJlZCIsICJkaXNwbGF5IiwgImxpbmtwYXRoIiwgInNwbGl0IiwgImhlYWRlciIsICJub3JtYWxpemVIZWFkZXJGb3JMaW5rIiwgImJsb2NrSWQiLCAib2JqZWN0IiwgInJhd2xpbmsiLCAibGluayIsICJzcGxpdE9uVW5lc2NhcGVkUGlwZSIsICJmaWVsZHMiLCAiYmxvY2siLCAib3RoZXIiLCAicmVzdWx0IiwgImdldEZpbGVUaXRsZSIsICJfYSIsICJfYiIsICJlc2NhcGVkIiwgInBpcGUiLCAiQUxJQVMiLCAiRE9DIiwgIk1BUCIsICJQQUlSIiwgIlNDQUxBUiIsICJTRVEiLCAiTk9ERV9UWVBFIiwgImlzQWxpYXMiLCAibm9kZSIsICJpc0RvY3VtZW50IiwgImlzTWFwIiwgImlzUGFpciIsICJpc1NjYWxhciIsICJpc1NlcSIsICJpc0NvbGxlY3Rpb24iLCAiaXNOb2RlIiwgImhhc0FuY2hvciIsICJCUkVBSyIsICJTS0lQIiwgIlJFTU9WRSIsICJ2aXNpdCIsICJub2RlIiwgInZpc2l0b3IiLCAidmlzaXRvcl8iLCAiaW5pdFZpc2l0b3IiLCAiaXNEb2N1bWVudCIsICJ2aXNpdF8iLCAia2V5IiwgInBhdGgiLCAiY3RybCIsICJjYWxsVmlzaXRvciIsICJpc05vZGUiLCAiaXNQYWlyIiwgInJlcGxhY2VOb2RlIiwgImlzQ29sbGVjdGlvbiIsICJjaSIsICJjayIsICJjdiIsICJ2aXNpdEFzeW5jIiwgInZpc2l0QXN5bmNfIiwgIl9hIiwgIl9iIiwgIl9jIiwgIl9kIiwgIl9lIiwgImlzTWFwIiwgImlzU2VxIiwgImlzU2NhbGFyIiwgImlzQWxpYXMiLCAicGFyZW50IiwgInB0IiwgImVzY2FwZUNoYXJzIiwgImVzY2FwZVRhZ05hbWUiLCAidG4iLCAiY2giLCAiRGlyZWN0aXZlcyIsICJfRGlyZWN0aXZlcyIsICJ5YW1sIiwgInRhZ3MiLCAiY29weSIsICJyZXMiLCAibGluZSIsICJvbkVycm9yIiwgInBhcnRzIiwgIm5hbWUiLCAiaGFuZGxlIiwgInByZWZpeCIsICJ2ZXJzaW9uIiwgImlzVmFsaWQiLCAic291cmNlIiwgInZlcmJhdGltIiwgInN1ZmZpeCIsICJlcnJvciIsICJ0YWciLCAiZG9jIiwgImxpbmVzIiwgInRhZ0VudHJpZXMiLCAidGFnTmFtZXMiLCAiaXNOb2RlIiwgInZpc2l0IiwgIl9rZXkiLCAibm9kZSIsICJhbmNob3JJc1ZhbGlkIiwgImFuY2hvciIsICJtc2ciLCAiYW5jaG9yTmFtZXMiLCAicm9vdCIsICJhbmNob3JzIiwgInZpc2l0IiwgIl9rZXkiLCAibm9kZSIsICJmaW5kTmV3QW5jaG9yIiwgInByZWZpeCIsICJleGNsdWRlIiwgImkiLCAibmFtZSIsICJjcmVhdGVOb2RlQW5jaG9ycyIsICJkb2MiLCAiYWxpYXNPYmplY3RzIiwgInNvdXJjZU9iamVjdHMiLCAicHJldkFuY2hvcnMiLCAic291cmNlIiwgInJlZiIsICJpc1NjYWxhciIsICJpc0NvbGxlY3Rpb24iLCAiZXJyb3IiLCAiYXBwbHlSZXZpdmVyIiwgInJldml2ZXIiLCAib2JqIiwgImtleSIsICJ2YWwiLCAiaSIsICJsZW4iLCAidjAiLCAidjEiLCAiayIsICJ0b0pTIiwgInZhbHVlIiwgImFyZyIsICJjdHgiLCAidiIsICJpIiwgImhhc0FuY2hvciIsICJkYXRhIiwgInJlcyIsICJOb2RlQmFzZSIsICJ0eXBlIiwgIk5PREVfVFlQRSIsICJjb3B5IiwgImRvYyIsICJtYXBBc01hcCIsICJtYXhBbGlhc0NvdW50IiwgIm9uQW5jaG9yIiwgInJldml2ZXIiLCAiaXNEb2N1bWVudCIsICJjdHgiLCAicmVzIiwgInRvSlMiLCAiY291bnQiLCAiYXBwbHlSZXZpdmVyIiwgIkFsaWFzIiwgIk5vZGVCYXNlIiwgInNvdXJjZSIsICJBTElBUyIsICJkb2MiLCAiZm91bmQiLCAidmlzaXQiLCAiX2tleSIsICJub2RlIiwgIl9hcmciLCAiY3R4IiwgImFuY2hvcnMiLCAibWF4QWxpYXNDb3VudCIsICJtc2ciLCAiZGF0YSIsICJ0b0pTIiwgImdldEFsaWFzQ291bnQiLCAiX29uQ29tbWVudCIsICJfb25DaG9tcEtlZXAiLCAic3JjIiwgImFuY2hvcklzVmFsaWQiLCAiaXNBbGlhcyIsICJhbmNob3IiLCAiaXNDb2xsZWN0aW9uIiwgImNvdW50IiwgIml0ZW0iLCAiYyIsICJpc1BhaXIiLCAia2MiLCAidmMiLCAiaXNTY2FsYXJWYWx1ZSIsICJ2YWx1ZSIsICJTY2FsYXIiLCAiTm9kZUJhc2UiLCAiU0NBTEFSIiwgImFyZyIsICJjdHgiLCAidG9KUyIsICJkZWZhdWx0VGFnUHJlZml4IiwgImZpbmRUYWdPYmplY3QiLCAidmFsdWUiLCAidGFnTmFtZSIsICJ0YWdzIiwgIl9hIiwgIm1hdGNoIiwgInQiLCAidGFnT2JqIiwgImNyZWF0ZU5vZGUiLCAiY3R4IiwgIl9iIiwgIl9jIiwgImlzRG9jdW1lbnQiLCAiaXNOb2RlIiwgImlzUGFpciIsICJtYXAiLCAiTUFQIiwgImFsaWFzRHVwbGljYXRlT2JqZWN0cyIsICJvbkFuY2hvciIsICJvblRhZ09iaiIsICJzY2hlbWEiLCAic291cmNlT2JqZWN0cyIsICJyZWYiLCAiQWxpYXMiLCAibm9kZSIsICJTY2FsYXIiLCAiU0VRIiwgImNvbGxlY3Rpb25Gcm9tUGF0aCIsICJzY2hlbWEiLCAicGF0aCIsICJ2YWx1ZSIsICJ2IiwgImkiLCAiayIsICJhIiwgImNyZWF0ZU5vZGUiLCAiaXNFbXB0eVBhdGgiLCAiQ29sbGVjdGlvbiIsICJOb2RlQmFzZSIsICJ0eXBlIiwgImNvcHkiLCAiaXQiLCAiaXNOb2RlIiwgImlzUGFpciIsICJrZXkiLCAicmVzdCIsICJub2RlIiwgImlzQ29sbGVjdGlvbiIsICJrZWVwU2NhbGFyIiwgImlzU2NhbGFyIiwgImFsbG93U2NhbGFyIiwgIm4iLCAic3RyaW5naWZ5Q29tbWVudCIsICJzdHIiLCAiaW5kZW50Q29tbWVudCIsICJjb21tZW50IiwgImluZGVudCIsICJsaW5lQ29tbWVudCIsICJGT0xEX0ZMT1ciLCAiRk9MRF9CTE9DSyIsICJGT0xEX1FVT1RFRCIsICJmb2xkRmxvd0xpbmVzIiwgInRleHQiLCAiaW5kZW50IiwgIm1vZGUiLCAiaW5kZW50QXRTdGFydCIsICJsaW5lV2lkdGgiLCAibWluQ29udGVudFdpZHRoIiwgIm9uRm9sZCIsICJvbk92ZXJmbG93IiwgImVuZFN0ZXAiLCAiZm9sZHMiLCAiZXNjYXBlZEZvbGRzIiwgImVuZCIsICJzcGxpdCIsICJwcmV2IiwgIm92ZXJmbG93IiwgImkiLCAiZXNjU3RhcnQiLCAiZXNjRW5kIiwgImNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyIsICJjaCIsICJuZXh0IiwgImoiLCAicmVzIiwgImZvbGQiLCAic3RhcnQiLCAiZ2V0Rm9sZE9wdGlvbnMiLCAiY3R4IiwgImlzQmxvY2siLCAiY29udGFpbnNEb2N1bWVudE1hcmtlciIsICJzdHIiLCAibGluZUxlbmd0aE92ZXJMaW1pdCIsICJsaW5lV2lkdGgiLCAiaW5kZW50TGVuZ3RoIiwgImxpbWl0IiwgInN0ckxlbiIsICJzdGFydCIsICJkb3VibGVRdW90ZWRTdHJpbmciLCAidmFsdWUiLCAianNvbiIsICJpbXBsaWNpdEtleSIsICJtaW5NdWx0aUxpbmVMZW5ndGgiLCAiaW5kZW50IiwgImkiLCAiY2giLCAiY29kZSIsICJmb2xkRmxvd0xpbmVzIiwgIkZPTERfUVVPVEVEIiwgInNpbmdsZVF1b3RlZFN0cmluZyIsICJyZXMiLCAiRk9MRF9GTE9XIiwgInF1b3RlZFN0cmluZyIsICJzaW5nbGVRdW90ZSIsICJxcyIsICJoYXNEb3VibGUiLCAiaGFzU2luZ2xlIiwgImJsb2NrRW5kTmV3bGluZXMiLCAiZSIsICJibG9ja1N0cmluZyIsICJjb21tZW50IiwgInR5cGUiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgImJsb2NrUXVvdGUiLCAiY29tbWVudFN0cmluZyIsICJsaXRlcmFsIiwgIlNjYWxhciIsICJjaG9tcCIsICJlbmRTdGFydCIsICJlbmQiLCAiZW5kTmxQb3MiLCAic3RhcnRXaXRoU3BhY2UiLCAic3RhcnRFbmQiLCAic3RhcnRObFBvcyIsICJoZWFkZXIiLCAiYm9keSIsICJGT0xEX0JMT0NLIiwgInBsYWluU3RyaW5nIiwgIml0ZW0iLCAiYWN0dWFsU3RyaW5nIiwgImluZGVudFN0ZXAiLCAiaW5GbG93IiwgInRlc3QiLCAidGFnIiwgIl9hIiwgImNvbXBhdCIsICJ0YWdzIiwgInN0cmluZ2lmeVN0cmluZyIsICJzcyIsICJfc3RyaW5naWZ5IiwgIl90eXBlIiwgImRlZmF1bHRLZXlUeXBlIiwgImRlZmF1bHRTdHJpbmdUeXBlIiwgInQiLCAiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIsICJkb2MiLCAib3B0aW9ucyIsICJvcHQiLCAic3RyaW5naWZ5Q29tbWVudCIsICJpbkZsb3ciLCAiZ2V0VGFnT2JqZWN0IiwgInRhZ3MiLCAiaXRlbSIsICJfYSIsICJfYiIsICJfYyIsICJfZCIsICJtYXRjaCIsICJ0IiwgInRhZ09iaiIsICJvYmoiLCAiaXNTY2FsYXIiLCAidGVzdE1hdGNoIiwgIm5hbWUiLCAic3RyaW5naWZ5UHJvcHMiLCAibm9kZSIsICJhbmNob3JzIiwgInByb3BzIiwgImFuY2hvciIsICJpc0NvbGxlY3Rpb24iLCAiYW5jaG9ySXNWYWxpZCIsICJ0YWciLCAic3RyaW5naWZ5IiwgImN0eCIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAiaXNQYWlyIiwgImlzQWxpYXMiLCAiaXNOb2RlIiwgIm8iLCAic3RyIiwgInN0cmluZ2lmeVN0cmluZyIsICJzdHJpbmdpZnlQYWlyIiwgImtleSIsICJ2YWx1ZSIsICJjdHgiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgIl9hIiwgIl9iIiwgImFsbE51bGxWYWx1ZXMiLCAiZG9jIiwgImluZGVudCIsICJpbmRlbnRTdGVwIiwgImNvbW1lbnRTdHJpbmciLCAiaW5kZW50U2VxIiwgInNpbXBsZUtleXMiLCAia2V5Q29tbWVudCIsICJpc05vZGUiLCAiaXNDb2xsZWN0aW9uIiwgIm1zZyIsICJleHBsaWNpdEtleSIsICJpc1NjYWxhciIsICJTY2FsYXIiLCAia2V5Q29tbWVudERvbmUiLCAiY2hvbXBLZWVwIiwgInN0ciIsICJzdHJpbmdpZnkiLCAibGluZUNvbW1lbnQiLCAidnNiIiwgInZjYiIsICJ2YWx1ZUNvbW1lbnQiLCAiaXNTZXEiLCAidmFsdWVDb21tZW50RG9uZSIsICJ2YWx1ZVN0ciIsICJ3cyIsICJjcyIsICJpbmRlbnRDb21tZW50IiwgInZzMCIsICJubDAiLCAiaGFzTmV3bGluZSIsICJmbG93IiwgImhhc1Byb3BzTGluZSIsICJzcDAiLCAid2FybiIsICJsb2dMZXZlbCIsICJ3YXJuaW5nIiwgIk1FUkdFX0tFWSIsICJtZXJnZSIsICJ2YWx1ZSIsICJTY2FsYXIiLCAiYWRkTWVyZ2VUb0pTTWFwIiwgImlzTWVyZ2VLZXkiLCAiY3R4IiwgImtleSIsICJpc1NjYWxhciIsICJ0YWciLCAibWFwIiwgImlzQWxpYXMiLCAiaXNTZXEiLCAiaXQiLCAibWVyZ2VWYWx1ZSIsICJzb3VyY2UiLCAiaXNNYXAiLCAic3JjTWFwIiwgImFkZFBhaXJUb0pTTWFwIiwgImN0eCIsICJtYXAiLCAia2V5IiwgInZhbHVlIiwgImlzTm9kZSIsICJpc01lcmdlS2V5IiwgImFkZE1lcmdlVG9KU01hcCIsICJqc0tleSIsICJ0b0pTIiwgInN0cmluZ0tleSIsICJzdHJpbmdpZnlLZXkiLCAianNWYWx1ZSIsICJzdHJDdHgiLCAiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIsICJub2RlIiwgInN0cktleSIsICJqc29uU3RyIiwgIndhcm4iLCAiY3JlYXRlUGFpciIsICJrZXkiLCAidmFsdWUiLCAiY3R4IiwgImsiLCAiY3JlYXRlTm9kZSIsICJ2IiwgIlBhaXIiLCAiX1BhaXIiLCAiTk9ERV9UWVBFIiwgIlBBSVIiLCAic2NoZW1hIiwgImlzTm9kZSIsICJfIiwgInBhaXIiLCAiYWRkUGFpclRvSlNNYXAiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgInN0cmluZ2lmeVBhaXIiLCAic3RyaW5naWZ5Q29sbGVjdGlvbiIsICJjb2xsZWN0aW9uIiwgImN0eCIsICJvcHRpb25zIiwgIl9hIiwgInN0cmluZ2lmeUZsb3dDb2xsZWN0aW9uIiwgInN0cmluZ2lmeUJsb2NrQ29sbGVjdGlvbiIsICJjb21tZW50IiwgIml0ZW1zIiwgImJsb2NrSXRlbVByZWZpeCIsICJmbG93Q2hhcnMiLCAiaXRlbUluZGVudCIsICJvbkNob21wS2VlcCIsICJvbkNvbW1lbnQiLCAiaW5kZW50IiwgImNvbW1lbnRTdHJpbmciLCAiaXRlbUN0eCIsICJjaG9tcEtlZXAiLCAibGluZXMiLCAiaSIsICJpdGVtIiwgImlzTm9kZSIsICJhZGRDb21tZW50QmVmb3JlIiwgImlzUGFpciIsICJpayIsICJzdHIiLCAic3RyaW5naWZ5IiwgImxpbmVDb21tZW50IiwgImxpbmUiLCAiaW5kZW50Q29tbWVudCIsICJpbmRlbnRTdGVwIiwgImZjUGFkZGluZyIsICJyZXFOZXdsaW5lIiwgImxpbmVzQXRWYWx1ZSIsICJpdiIsICJzdGFydCIsICJlbmQiLCAibGVuIiwgInN1bSIsICJpYyIsICJmaW5kUGFpciIsICJpdGVtcyIsICJrZXkiLCAiayIsICJpc1NjYWxhciIsICJpdCIsICJpc1BhaXIiLCAiWUFNTE1hcCIsICJDb2xsZWN0aW9uIiwgInNjaGVtYSIsICJNQVAiLCAib2JqIiwgImN0eCIsICJrZWVwVW5kZWZpbmVkIiwgInJlcGxhY2VyIiwgIm1hcCIsICJhZGQiLCAidmFsdWUiLCAiY3JlYXRlUGFpciIsICJwYWlyIiwgIm92ZXJ3cml0ZSIsICJfYSIsICJfcGFpciIsICJQYWlyIiwgInByZXYiLCAic29ydEVudHJpZXMiLCAiaXNTY2FsYXJWYWx1ZSIsICJpIiwgIml0ZW0iLCAia2VlcFNjYWxhciIsICJub2RlIiwgIl8iLCAiVHlwZSIsICJhZGRQYWlyVG9KU01hcCIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAic3RyaW5naWZ5Q29sbGVjdGlvbiIsICJtYXAiLCAiWUFNTE1hcCIsICJvbkVycm9yIiwgImlzTWFwIiwgInNjaGVtYSIsICJvYmoiLCAiY3R4IiwgIllBTUxTZXEiLCAiQ29sbGVjdGlvbiIsICJzY2hlbWEiLCAiU0VRIiwgInZhbHVlIiwgImtleSIsICJpZHgiLCAiYXNJdGVtSW5kZXgiLCAia2VlcFNjYWxhciIsICJpdCIsICJpc1NjYWxhciIsICJwcmV2IiwgImlzU2NhbGFyVmFsdWUiLCAiXyIsICJjdHgiLCAic2VxIiwgImkiLCAiaXRlbSIsICJ0b0pTIiwgIm9uQ29tbWVudCIsICJvbkNob21wS2VlcCIsICJzdHJpbmdpZnlDb2xsZWN0aW9uIiwgIm9iaiIsICJyZXBsYWNlciIsICJjcmVhdGVOb2RlIiwgInNlcSIsICJZQU1MU2VxIiwgIm9uRXJyb3IiLCAiaXNTZXEiLCAic2NoZW1hIiwgIm9iaiIsICJjdHgiLCAic3RyaW5nIiwgInZhbHVlIiwgInN0ciIsICJpdGVtIiwgImN0eCIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAic3RyaW5naWZ5U3RyaW5nIiwgIm51bGxUYWciLCAidmFsdWUiLCAiU2NhbGFyIiwgInNvdXJjZSIsICJjdHgiLCAiYm9vbFRhZyIsICJ2YWx1ZSIsICJzdHIiLCAiU2NhbGFyIiwgInNvdXJjZSIsICJjdHgiLCAic3YiLCAic3RyaW5naWZ5TnVtYmVyIiwgImZvcm1hdCIsICJtaW5GcmFjdGlvbkRpZ2l0cyIsICJ0YWciLCAidmFsdWUiLCAibnVtIiwgIm4iLCAiaSIsICJkIiwgImZsb2F0TmFOIiwgInZhbHVlIiwgInN0ciIsICJzdHJpbmdpZnlOdW1iZXIiLCAiZmxvYXRFeHAiLCAibm9kZSIsICJudW0iLCAiZmxvYXQiLCAiU2NhbGFyIiwgImRvdCIsICJpbnRJZGVudGlmeSIsICJ2YWx1ZSIsICJpbnRSZXNvbHZlIiwgInN0ciIsICJvZmZzZXQiLCAicmFkaXgiLCAiaW50QXNCaWdJbnQiLCAiaW50U3RyaW5naWZ5IiwgIm5vZGUiLCAicHJlZml4IiwgInN0cmluZ2lmeU51bWJlciIsICJpbnRPY3QiLCAiX29uRXJyb3IiLCAib3B0IiwgImludCIsICJpbnRIZXgiLCAic2NoZW1hIiwgIm1hcCIsICJzZXEiLCAic3RyaW5nIiwgIm51bGxUYWciLCAiYm9vbFRhZyIsICJpbnRPY3QiLCAiaW50IiwgImludEhleCIsICJmbG9hdE5hTiIsICJmbG9hdEV4cCIsICJmbG9hdCIsICJpbnRJZGVudGlmeSIsICJ2YWx1ZSIsICJzdHJpbmdpZnlKU09OIiwgImpzb25TY2FsYXJzIiwgInN0ciIsICJTY2FsYXIiLCAiX29uRXJyb3IiLCAiaW50QXNCaWdJbnQiLCAianNvbkVycm9yIiwgIm9uRXJyb3IiLCAic2NoZW1hIiwgIm1hcCIsICJzZXEiLCAiYmluYXJ5IiwgInZhbHVlIiwgInNyYyIsICJvbkVycm9yIiwgInN0ciIsICJidWZmZXIiLCAiaSIsICJjb21tZW50IiwgInR5cGUiLCAiY3R4IiwgIm9uQ29tbWVudCIsICJvbkNob21wS2VlcCIsICJidWYiLCAicyIsICJTY2FsYXIiLCAibGluZVdpZHRoIiwgIm4iLCAibGluZXMiLCAibyIsICJzdHJpbmdpZnlTdHJpbmciLCAicmVzb2x2ZVBhaXJzIiwgInNlcSIsICJvbkVycm9yIiwgIl9hIiwgImlzU2VxIiwgImkiLCAiaXRlbSIsICJpc1BhaXIiLCAiaXNNYXAiLCAicGFpciIsICJQYWlyIiwgIlNjYWxhciIsICJjbiIsICJjcmVhdGVQYWlycyIsICJzY2hlbWEiLCAiaXRlcmFibGUiLCAiY3R4IiwgInJlcGxhY2VyIiwgInBhaXJzIiwgIllBTUxTZXEiLCAiaXQiLCAia2V5IiwgInZhbHVlIiwgImtleXMiLCAiY3JlYXRlUGFpciIsICJZQU1MT01hcCIsICJfWUFNTE9NYXAiLCAiWUFNTFNlcSIsICJZQU1MTWFwIiwgIl8iLCAiY3R4IiwgIm1hcCIsICJwYWlyIiwgImtleSIsICJ2YWx1ZSIsICJpc1BhaXIiLCAidG9KUyIsICJzY2hlbWEiLCAiaXRlcmFibGUiLCAicGFpcnMiLCAiY3JlYXRlUGFpcnMiLCAib21hcCIsICJzZXEiLCAib25FcnJvciIsICJyZXNvbHZlUGFpcnMiLCAic2VlbktleXMiLCAiaXNTY2FsYXIiLCAiYm9vbFN0cmluZ2lmeSIsICJ2YWx1ZSIsICJzb3VyY2UiLCAiY3R4IiwgInRydWVUYWciLCAiZmFsc2VUYWciLCAiU2NhbGFyIiwgImZsb2F0TmFOIiwgInZhbHVlIiwgInN0ciIsICJzdHJpbmdpZnlOdW1iZXIiLCAiZmxvYXRFeHAiLCAibm9kZSIsICJudW0iLCAiZmxvYXQiLCAiU2NhbGFyIiwgImRvdCIsICJmIiwgImludElkZW50aWZ5IiwgInZhbHVlIiwgImludFJlc29sdmUiLCAic3RyIiwgIm9mZnNldCIsICJyYWRpeCIsICJpbnRBc0JpZ0ludCIsICJzaWduIiwgIm4iLCAiaW50U3RyaW5naWZ5IiwgIm5vZGUiLCAicHJlZml4IiwgInN0cmluZ2lmeU51bWJlciIsICJpbnRCaW4iLCAiX29uRXJyb3IiLCAib3B0IiwgImludE9jdCIsICJpbnQiLCAiaW50SGV4IiwgIllBTUxTZXQiLCAiX1lBTUxTZXQiLCAiWUFNTE1hcCIsICJzY2hlbWEiLCAia2V5IiwgInBhaXIiLCAiaXNQYWlyIiwgIlBhaXIiLCAiZmluZFBhaXIiLCAia2VlcFBhaXIiLCAiaXNTY2FsYXIiLCAidmFsdWUiLCAicHJldiIsICJfIiwgImN0eCIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAiaXRlcmFibGUiLCAicmVwbGFjZXIiLCAic2V0IiwgImNyZWF0ZVBhaXIiLCAibWFwIiwgIm9uRXJyb3IiLCAiaXNNYXAiLCAicGFyc2VTZXhhZ2VzaW1hbCIsICJzdHIiLCAiYXNCaWdJbnQiLCAic2lnbiIsICJwYXJ0cyIsICJudW0iLCAibiIsICJyZXMiLCAicCIsICJzdHJpbmdpZnlTZXhhZ2VzaW1hbCIsICJub2RlIiwgInZhbHVlIiwgInN0cmluZ2lmeU51bWJlciIsICJfNjAiLCAiaW50VGltZSIsICJfb25FcnJvciIsICJpbnRBc0JpZ0ludCIsICJmbG9hdFRpbWUiLCAidGltZXN0YW1wIiwgIm1hdGNoIiwgInllYXIiLCAibW9udGgiLCAiZGF5IiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlYyIsICJkYXRlIiwgInR6IiwgInNjaGVtYSIsICJtYXAiLCAic2VxIiwgInN0cmluZyIsICJudWxsVGFnIiwgInRydWVUYWciLCAiZmFsc2VUYWciLCAiaW50QmluIiwgImludE9jdCIsICJpbnQiLCAiaW50SGV4IiwgImZsb2F0TmFOIiwgImZsb2F0RXhwIiwgImZsb2F0IiwgImJpbmFyeSIsICJtZXJnZSIsICJvbWFwIiwgInBhaXJzIiwgInNldCIsICJpbnRUaW1lIiwgImZsb2F0VGltZSIsICJ0aW1lc3RhbXAiLCAic2NoZW1hcyIsICJzY2hlbWEiLCAibWFwIiwgInNlcSIsICJzdHJpbmciLCAidGFnc0J5TmFtZSIsICJiaW5hcnkiLCAiYm9vbFRhZyIsICJmbG9hdCIsICJmbG9hdEV4cCIsICJmbG9hdE5hTiIsICJmbG9hdFRpbWUiLCAiaW50IiwgImludEhleCIsICJpbnRPY3QiLCAiaW50VGltZSIsICJtZXJnZSIsICJudWxsVGFnIiwgIm9tYXAiLCAicGFpcnMiLCAic2V0IiwgInRpbWVzdGFtcCIsICJjb3JlS25vd25UYWdzIiwgImdldFRhZ3MiLCAiY3VzdG9tVGFncyIsICJzY2hlbWFOYW1lIiwgImFkZE1lcmdlVGFnIiwgInNjaGVtYVRhZ3MiLCAidGFncyIsICJrZXlzIiwgImtleSIsICJ0YWciLCAidGFnT2JqIiwgInRhZ05hbWUiLCAic29ydE1hcEVudHJpZXNCeUtleSIsICJhIiwgImIiLCAiU2NoZW1hIiwgIl9TY2hlbWEiLCAiY29tcGF0IiwgImN1c3RvbVRhZ3MiLCAibWVyZ2UiLCAicmVzb2x2ZUtub3duVGFncyIsICJzY2hlbWEiLCAic29ydE1hcEVudHJpZXMiLCAidG9TdHJpbmdEZWZhdWx0cyIsICJnZXRUYWdzIiwgImNvcmVLbm93blRhZ3MiLCAiTUFQIiwgIm1hcCIsICJTQ0FMQVIiLCAic3RyaW5nIiwgIlNFUSIsICJzZXEiLCAiY29weSIsICJzdHJpbmdpZnlEb2N1bWVudCIsICJkb2MiLCAib3B0aW9ucyIsICJfYSIsICJsaW5lcyIsICJoYXNEaXJlY3RpdmVzIiwgImRpciIsICJjdHgiLCAiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIsICJjb21tZW50U3RyaW5nIiwgImNzIiwgImluZGVudENvbW1lbnQiLCAiY2hvbXBLZWVwIiwgImNvbnRlbnRDb21tZW50IiwgImlzTm9kZSIsICJvbkNob21wS2VlcCIsICJib2R5IiwgInN0cmluZ2lmeSIsICJsaW5lQ29tbWVudCIsICJkYyIsICJEb2N1bWVudCIsICJfRG9jdW1lbnQiLCAidmFsdWUiLCAicmVwbGFjZXIiLCAib3B0aW9ucyIsICJOT0RFX1RZUEUiLCAiRE9DIiwgIl9yZXBsYWNlciIsICJvcHQiLCAidmVyc2lvbiIsICJEaXJlY3RpdmVzIiwgImNvcHkiLCAiaXNOb2RlIiwgImFzc2VydENvbGxlY3Rpb24iLCAicGF0aCIsICJub2RlIiwgIm5hbWUiLCAicHJldiIsICJhbmNob3JOYW1lcyIsICJmaW5kTmV3QW5jaG9yIiwgIkFsaWFzIiwgImtleVRvU3RyIiwgInYiLCAiYXNTdHIiLCAiYWxpYXNEdXBsaWNhdGVPYmplY3RzIiwgImFuY2hvclByZWZpeCIsICJmbG93IiwgImtlZXBVbmRlZmluZWQiLCAib25UYWdPYmoiLCAidGFnIiwgIm9uQW5jaG9yIiwgInNldEFuY2hvcnMiLCAic291cmNlT2JqZWN0cyIsICJjcmVhdGVOb2RlQW5jaG9ycyIsICJjdHgiLCAiY3JlYXRlTm9kZSIsICJpc0NvbGxlY3Rpb24iLCAia2V5IiwgImsiLCAiUGFpciIsICJpc0VtcHR5UGF0aCIsICJrZWVwU2NhbGFyIiwgImlzU2NhbGFyIiwgImNvbGxlY3Rpb25Gcm9tUGF0aCIsICJzdiIsICJTY2hlbWEiLCAianNvbiIsICJqc29uQXJnIiwgIm1hcEFzTWFwIiwgIm1heEFsaWFzQ291bnQiLCAicmV2aXZlciIsICJyZXMiLCAidG9KUyIsICJjb3VudCIsICJhcHBseVJldml2ZXIiLCAicyIsICJzdHJpbmdpZnlEb2N1bWVudCIsICJjb250ZW50cyIsICJZQU1MRXJyb3IiLCAibmFtZSIsICJwb3MiLCAiY29kZSIsICJtZXNzYWdlIiwgIllBTUxQYXJzZUVycm9yIiwgIllBTUxXYXJuaW5nIiwgInByZXR0aWZ5RXJyb3IiLCAic3JjIiwgImxjIiwgImVycm9yIiwgImxpbmUiLCAiY29sIiwgImNpIiwgImxpbmVTdHIiLCAidHJpbVN0YXJ0IiwgInByZXYiLCAiY291bnQiLCAiZW5kIiwgInBvaW50ZXIiLCAicmVzb2x2ZVByb3BzIiwgInRva2VucyIsICJmbG93IiwgImluZGljYXRvciIsICJuZXh0IiwgIm9mZnNldCIsICJvbkVycm9yIiwgInBhcmVudEluZGVudCIsICJzdGFydE9uTmV3bGluZSIsICJzcGFjZUJlZm9yZSIsICJhdE5ld2xpbmUiLCAiaGFzU3BhY2UiLCAiY29tbWVudCIsICJjb21tZW50U2VwIiwgImhhc05ld2xpbmUiLCAicmVxU3BhY2UiLCAidGFiIiwgImFuY2hvciIsICJ0YWciLCAibmV3bGluZUFmdGVyUHJvcCIsICJjb21tYSIsICJmb3VuZCIsICJzdGFydCIsICJ0b2tlbiIsICJjYiIsICJsYXN0IiwgImVuZCIsICJjb250YWluc05ld2xpbmUiLCAia2V5IiwgInN0IiwgIml0IiwgImZsb3dJbmRlbnRDaGVjayIsICJpbmRlbnQiLCAiZmMiLCAib25FcnJvciIsICJlbmQiLCAiY29udGFpbnNOZXdsaW5lIiwgIm1hcEluY2x1ZGVzIiwgImN0eCIsICJpdGVtcyIsICJzZWFyY2giLCAidW5pcXVlS2V5cyIsICJpc0VxdWFsIiwgImEiLCAiYiIsICJpc1NjYWxhciIsICJwYWlyIiwgInN0YXJ0Q29sTXNnIiwgInJlc29sdmVCbG9ja01hcCIsICJjb21wb3NlTm9kZSIsICJjb21wb3NlRW1wdHlOb2RlIiwgImN0eCIsICJibSIsICJvbkVycm9yIiwgInRhZyIsICJfYSIsICJfYiIsICJOb2RlQ2xhc3MiLCAiWUFNTE1hcCIsICJtYXAiLCAib2Zmc2V0IiwgImNvbW1lbnRFbmQiLCAiY29sbEl0ZW0iLCAic3RhcnQiLCAia2V5IiwgInNlcCIsICJ2YWx1ZSIsICJrZXlQcm9wcyIsICJyZXNvbHZlUHJvcHMiLCAiaW1wbGljaXRLZXkiLCAiY29udGFpbnNOZXdsaW5lIiwgImtleVN0YXJ0IiwgImtleU5vZGUiLCAiZmxvd0luZGVudENoZWNrIiwgIm1hcEluY2x1ZGVzIiwgInZhbHVlUHJvcHMiLCAidmFsdWVOb2RlIiwgInBhaXIiLCAiUGFpciIsICJyZXNvbHZlQmxvY2tTZXEiLCAiY29tcG9zZU5vZGUiLCAiY29tcG9zZUVtcHR5Tm9kZSIsICJjdHgiLCAiYnMiLCAib25FcnJvciIsICJ0YWciLCAiX2EiLCAiTm9kZUNsYXNzIiwgIllBTUxTZXEiLCAic2VxIiwgIm9mZnNldCIsICJjb21tZW50RW5kIiwgInN0YXJ0IiwgInZhbHVlIiwgInByb3BzIiwgInJlc29sdmVQcm9wcyIsICJub2RlIiwgImZsb3dJbmRlbnRDaGVjayIsICJyZXNvbHZlRW5kIiwgImVuZCIsICJvZmZzZXQiLCAicmVxU3BhY2UiLCAib25FcnJvciIsICJjb21tZW50IiwgImhhc1NwYWNlIiwgInNlcCIsICJ0b2tlbiIsICJzb3VyY2UiLCAidHlwZSIsICJjYiIsICJibG9ja01zZyIsICJpc0Jsb2NrIiwgInRva2VuIiwgInJlc29sdmVGbG93Q29sbGVjdGlvbiIsICJjb21wb3NlTm9kZSIsICJjb21wb3NlRW1wdHlOb2RlIiwgImN0eCIsICJmYyIsICJvbkVycm9yIiwgInRhZyIsICJfYSIsICJfYiIsICJpc01hcCIsICJmY05hbWUiLCAiTm9kZUNsYXNzIiwgIllBTUxNYXAiLCAiWUFNTFNlcSIsICJjb2xsIiwgImF0Um9vdCIsICJvZmZzZXQiLCAiaSIsICJjb2xsSXRlbSIsICJzdGFydCIsICJrZXkiLCAic2VwIiwgInZhbHVlIiwgInByb3BzIiwgInJlc29sdmVQcm9wcyIsICJjb250YWluc05ld2xpbmUiLCAicHJldkl0ZW1Db21tZW50IiwgImxvb3AiLCAic3QiLCAicHJldiIsICJpc1BhaXIiLCAidmFsdWVOb2RlIiwgImtleVN0YXJ0IiwgImtleU5vZGUiLCAidmFsdWVQcm9wcyIsICJwYWlyIiwgIlBhaXIiLCAibWFwIiwgIm1hcEluY2x1ZGVzIiwgImVuZFJhbmdlIiwgImV4cGVjdGVkRW5kIiwgImNlIiwgImVlIiwgImNlUG9zIiwgIm5hbWUiLCAibXNnIiwgImVuZCIsICJyZXNvbHZlRW5kIiwgInJlc29sdmVDb2xsZWN0aW9uIiwgIkNOIiwgImN0eCIsICJ0b2tlbiIsICJvbkVycm9yIiwgInRhZ05hbWUiLCAidGFnIiwgImNvbGwiLCAicmVzb2x2ZUJsb2NrTWFwIiwgInJlc29sdmVCbG9ja1NlcSIsICJyZXNvbHZlRmxvd0NvbGxlY3Rpb24iLCAiQ29sbCIsICJjb21wb3NlQ29sbGVjdGlvbiIsICJwcm9wcyIsICJfYSIsICJfYiIsICJ0YWdUb2tlbiIsICJtc2ciLCAiYW5jaG9yIiwgIm5sIiwgImxhc3RQcm9wIiwgImV4cFR5cGUiLCAiWUFNTE1hcCIsICJZQU1MU2VxIiwgInQiLCAia3QiLCAicmVzIiwgIm5vZGUiLCAiaXNOb2RlIiwgIlNjYWxhciIsICJyZXNvbHZlQmxvY2tTY2FsYXIiLCAiY3R4IiwgInNjYWxhciIsICJvbkVycm9yIiwgInN0YXJ0IiwgImhlYWRlciIsICJwYXJzZUJsb2NrU2NhbGFySGVhZGVyIiwgInR5cGUiLCAiU2NhbGFyIiwgImxpbmVzIiwgInNwbGl0TGluZXMiLCAiY2hvbXBTdGFydCIsICJpIiwgImNvbnRlbnQiLCAidmFsdWUiLCAiZW5kIiwgInRyaW1JbmRlbnQiLCAib2Zmc2V0IiwgImNvbnRlbnRTdGFydCIsICJpbmRlbnQiLCAic2VwIiwgInByZXZNb3JlSW5kZW50ZWQiLCAiY3JsZiIsICJtZXNzYWdlIiwgInByb3BzIiwgInN0cmljdCIsICJzb3VyY2UiLCAibW9kZSIsICJjaG9tcCIsICJlcnJvciIsICJjaCIsICJuIiwgImhhc1NwYWNlIiwgImNvbW1lbnQiLCAibGVuZ3RoIiwgInRva2VuIiwgInRzIiwgInNwbGl0IiwgImZpcnN0IiwgIm0iLCAicmVzb2x2ZUZsb3dTY2FsYXIiLCAic2NhbGFyIiwgInN0cmljdCIsICJvbkVycm9yIiwgIm9mZnNldCIsICJ0eXBlIiwgInNvdXJjZSIsICJlbmQiLCAiX3R5cGUiLCAidmFsdWUiLCAiX29uRXJyb3IiLCAicmVsIiwgImNvZGUiLCAibXNnIiwgIlNjYWxhciIsICJwbGFpblZhbHVlIiwgInNpbmdsZVF1b3RlZFZhbHVlIiwgImRvdWJsZVF1b3RlZFZhbHVlIiwgInZhbHVlRW5kIiwgInJlIiwgInJlc29sdmVFbmQiLCAiYmFkQ2hhciIsICJmb2xkTGluZXMiLCAiX2EiLCAiZmlyc3QiLCAibGluZSIsICJlIiwgIm1hdGNoIiwgInJlcyIsICJzZXAiLCAicG9zIiwgImxhc3QiLCAiaSIsICJjaCIsICJmb2xkIiwgImZvbGROZXdsaW5lIiwgIm5leHQiLCAiY2MiLCAiZXNjYXBlQ29kZXMiLCAibGVuZ3RoIiwgInBhcnNlQ2hhckNvZGUiLCAicmF3IiwgIndzU3RhcnQiLCAiY29tcG9zZVNjYWxhciIsICJjdHgiLCAidG9rZW4iLCAidGFnVG9rZW4iLCAib25FcnJvciIsICJ2YWx1ZSIsICJ0eXBlIiwgImNvbW1lbnQiLCAicmFuZ2UiLCAicmVzb2x2ZUJsb2NrU2NhbGFyIiwgInJlc29sdmVGbG93U2NhbGFyIiwgInRhZ05hbWUiLCAibXNnIiwgInRhZyIsICJTQ0FMQVIiLCAiZmluZFNjYWxhclRhZ0J5TmFtZSIsICJmaW5kU2NhbGFyVGFnQnlUZXN0IiwgInNjYWxhciIsICJyZXMiLCAiaXNTY2FsYXIiLCAiU2NhbGFyIiwgImVycm9yIiwgInNjaGVtYSIsICJfYSIsICJtYXRjaFdpdGhUZXN0IiwgImt0IiwgImF0S2V5IiwgImRpcmVjdGl2ZXMiLCAiY29tcGF0IiwgInRzIiwgImNzIiwgImVtcHR5U2NhbGFyUG9zaXRpb24iLCAib2Zmc2V0IiwgImJlZm9yZSIsICJwb3MiLCAiaSIsICJzdCIsICJDTiIsICJjb21wb3NlTm9kZSIsICJjb21wb3NlRW1wdHlOb2RlIiwgImN0eCIsICJ0b2tlbiIsICJwcm9wcyIsICJvbkVycm9yIiwgImF0S2V5IiwgInNwYWNlQmVmb3JlIiwgImNvbW1lbnQiLCAiYW5jaG9yIiwgInRhZyIsICJub2RlIiwgImlzU3JjVG9rZW4iLCAiY29tcG9zZUFsaWFzIiwgImNvbXBvc2VTY2FsYXIiLCAiY29tcG9zZUNvbGxlY3Rpb24iLCAibWVzc2FnZSIsICJpc1NjYWxhciIsICJvZmZzZXQiLCAiYmVmb3JlIiwgInBvcyIsICJlbmQiLCAiZW1wdHlTY2FsYXJQb3NpdGlvbiIsICJvcHRpb25zIiwgInNvdXJjZSIsICJhbGlhcyIsICJBbGlhcyIsICJ2YWx1ZUVuZCIsICJyZSIsICJyZXNvbHZlRW5kIiwgImNvbXBvc2VEb2MiLCAib3B0aW9ucyIsICJkaXJlY3RpdmVzIiwgIm9mZnNldCIsICJzdGFydCIsICJ2YWx1ZSIsICJlbmQiLCAib25FcnJvciIsICJvcHRzIiwgImRvYyIsICJEb2N1bWVudCIsICJjdHgiLCAicHJvcHMiLCAicmVzb2x2ZVByb3BzIiwgImNvbXBvc2VOb2RlIiwgImNvbXBvc2VFbXB0eU5vZGUiLCAiY29udGVudEVuZCIsICJyZSIsICJyZXNvbHZlRW5kIiwgImdldEVycm9yUG9zIiwgInNyYyIsICJvZmZzZXQiLCAic291cmNlIiwgInBhcnNlUHJlbHVkZSIsICJwcmVsdWRlIiwgIl9hIiwgImNvbW1lbnQiLCAiYXRDb21tZW50IiwgImFmdGVyRW1wdHlMaW5lIiwgIkNvbXBvc2VyIiwgIm9wdGlvbnMiLCAiY29kZSIsICJtZXNzYWdlIiwgIndhcm5pbmciLCAicG9zIiwgIllBTUxXYXJuaW5nIiwgIllBTUxQYXJzZUVycm9yIiwgIkRpcmVjdGl2ZXMiLCAiZG9jIiwgImFmdGVyRG9jIiwgImRjIiwgImlzQ29sbGVjdGlvbiIsICJpdCIsICJpc1BhaXIiLCAiY2IiLCAidG9rZW5zIiwgImZvcmNlRG9jIiwgImVuZE9mZnNldCIsICJ0b2tlbiIsICJfX3lpZWxkU3RhciIsICJjb21wb3NlRG9jIiwgIm1zZyIsICJlcnJvciIsICJlbmQiLCAicmVzb2x2ZUVuZCIsICJvcHRzIiwgIkRvY3VtZW50IiwgIkJSRUFLIiwgIlNLSVAiLCAiUkVNT1ZFIiwgInZpc2l0IiwgImNzdCIsICJ2aXNpdG9yIiwgIl92aXNpdCIsICJwYXRoIiwgIml0ZW0iLCAiZmllbGQiLCAiaW5kZXgiLCAidG9rIiwgInBhcmVudCIsICJjb2xsIiwgImN0cmwiLCAidG9rZW4iLCAiaSIsICJjaSIsICJCT00iLCAiRE9DVU1FTlQiLCAiRkxPV19FTkQiLCAiU0NBTEFSIiwgInRva2VuVHlwZSIsICJzb3VyY2UiLCAiQk9NIiwgIkRPQ1VNRU5UIiwgIkZMT1dfRU5EIiwgIlNDQUxBUiIsICJpc0VtcHR5IiwgImNoIiwgImhleERpZ2l0cyIsICJ0YWdDaGFycyIsICJmbG93SW5kaWNhdG9yQ2hhcnMiLCAiaW52YWxpZEFuY2hvckNoYXJzIiwgImlzTm90QW5jaG9yQ2hhciIsICJMZXhlciIsICJzb3VyY2UiLCAiaW5jb21wbGV0ZSIsICJfYSIsICJuZXh0IiwgIl9feWllbGRTdGFyIiwgImkiLCAibiIsICJvZmZzZXQiLCAiaW5kZW50IiwgImR0IiwgImVuZCIsICJzdGF0ZSIsICJsaW5lIiwgIkJPTSIsICJkaXJFbmQiLCAiY3MiLCAic3AiLCAiRE9DVU1FTlQiLCAicyIsICJjaDAiLCAiY2gxIiwgIm5sIiwgIkZMT1dfRU5EIiwgInF1b3RlIiwgInFiIiwgImxvb3AiLCAibGFzdENoYXIiLCAiU0NBTEFSIiwgImluRmxvdyIsICJhbGxvd0VtcHR5IiwgImFsbG93VGFicyIsICJ0ZXN0IiwgIkxpbmVDb3VudGVyIiwgIm9mZnNldCIsICJsb3ciLCAiaGlnaCIsICJtaWQiLCAic3RhcnQiLCAiaW5jbHVkZXNUb2tlbiIsICJsaXN0IiwgInR5cGUiLCAiaSIsICJmaW5kTm9uRW1wdHlJbmRleCIsICJpc0Zsb3dUb2tlbiIsICJ0b2tlbiIsICJnZXRQcmV2UHJvcHMiLCAicGFyZW50IiwgIl9hIiwgIml0IiwgImdldEZpcnN0S2V5U3RhcnRQcm9wcyIsICJwcmV2IiwgImxvb3AiLCAiZml4Rmxvd1NlcUl0ZW1zIiwgImZjIiwgIlBhcnNlciIsICJvbk5ld0xpbmUiLCAiTGV4ZXIiLCAic291cmNlIiwgImluY29tcGxldGUiLCAibGV4ZW1lIiwgIl9feWllbGRTdGFyIiwgInRva2VuVHlwZSIsICJtZXNzYWdlIiwgInRvcCIsICJuIiwgImVycm9yIiwgImxhc3QiLCAic3QiLCAiZG9jIiwgImJ2IiwgInNjYWxhciIsICJzdGFydCIsICJzZXAiLCAibWFwIiwgIm5sIiwgImVuZCIsICJhdE1hcEluZGVudCIsICJhdE5leHRJdGVtIiwgImtleSIsICJmcyIsICJzZXEiLCAiaW5kZW50IiwgImRvY0VuZCIsICJwYXJzZU9wdGlvbnMiLCAib3B0aW9ucyIsICJwcmV0dHlFcnJvcnMiLCAiTGluZUNvdW50ZXIiLCAicGFyc2VEb2N1bWVudCIsICJzb3VyY2UiLCAib3B0aW9ucyIsICJsaW5lQ291bnRlciIsICJwcmV0dHlFcnJvcnMiLCAicGFyc2VPcHRpb25zIiwgInBhcnNlciIsICJQYXJzZXIiLCAiY29tcG9zZXIiLCAiQ29tcG9zZXIiLCAiZG9jIiwgIl9kb2MiLCAiWUFNTFBhcnNlRXJyb3IiLCAicHJldHRpZnlFcnJvciIsICJwYXJzZSIsICJzcmMiLCAicmV2aXZlciIsICJfcmV2aXZlciIsICJ3YXJuaW5nIiwgIndhcm4iLCAiaW1wb3J0X3NvcnRlZF9idHJlZSIsICJQIiwgIkxpdGVyYWxzIiwgInRvU3RyaW5nIiwgImZpZWxkIiwgInNldHRpbmciLCAicmVjdXJzaXZlIiwgIndyYXBwZWQiLCAid3JhcFZhbHVlIiwgInJlc3VsdCIsICJmIiwgImUiLCAicmVuZGVyTWluaW1hbERhdGUiLCAicmVuZGVyTWluaW1hbER1cmF0aW9uIiwgInZhbCIsICJpc051bGwiLCAiaXNOdW1iZXIiLCAiaXNTdHJpbmciLCAiaXNCb29sZWFuIiwgImlzRHVyYXRpb24iLCAiaXNEYXRlIiwgImlzQXJyYXkiLCAiaXNMaW5rIiwgImlzRnVuY3Rpb24iLCAiaXNPYmplY3QiLCAibWFwTGVhdmVzIiwgImZ1bmMiLCAia2V5IiwgInZhbHVlIiwgImVxdWFscyIsICJmaXJzdCIsICJzZWNvbmQiLCAiY29tcGFyZSIsICJ2YWwxIiwgInZhbDIiLCAibGlua05vcm1hbGl6ZXIiLCAiX2EiLCAiX2IiLCAid3JhcDEiLCAid3JhcDIiLCAibGluazEiLCAibGluazIiLCAibm9ybWFsaXplIiwgIngiLCAicGF0aENvbXBhcmUiLCAidHlwZUNvbXBhcmUiLCAiZjEiLCAiZjIiLCAiaW5kZXgiLCAiY29tcCIsICJvMSIsICJvMiIsICJrMSIsICJrMiIsICJrZXlDb21wYXJlIiwgInR5cGVPZiIsICJpc1RydXRoeSIsICJkZWVwQ29weSIsICJ2IiwgIkRhdGVUaW1lIiwgIkR1cmF0aW9uIiwgIkxpbmsiLCAiR3JvdXBpbmdzIiwgImlzRWxlbWVudEdyb3VwIiwgImVudHJ5IiwgImlzR3JvdXBpbmciLCAiZWxlbWVudCIsICJpc0xlYWYiLCAiY291bnQiLCAiZWxlbWVudHMiLCAic3ViZ3JvdXAiLCAic2xpY2UiLCAic3RhcnQiLCAiZW5kIiwgInNlZW4iLCAiZ3JvdXAiLCAiZ3JvdXBTaXplIiwgImdyb3VwU3RhcnQiLCAiZ3JvdXBFbmQiLCAiU3VjY2VzcyIsICJfU3VjY2VzcyIsICJ2YWx1ZSIsICJmIiwgInN1Y2MiLCAiX2ZhaWwiLCAiX3ZhbHVlIiwgIl9tZXNzYWdlIiwgIkZhaWx1cmUiLCAiX0ZhaWx1cmUiLCAiZXJyb3IiLCAiX2YiLCAiX3N1Y2MiLCAiZmFpbCIsICJtZXNzYWdlIiwgIlJlc3VsdCIsICJzdWNjZXNzIiwgImZhaWx1cmUiLCAiZmxhdE1hcDIiLCAiZmlyc3QiLCAic2Vjb25kIiwgIm1hcDIiLCAiYSIsICJiIiwgIm1hcEFsbCIsICJpbnB1dCIsICJmdW5jIiwgInJlc3VsdCIsICJlbGVtZW50IiwgIm91dHB1dCIsICJ0cnlpbmciLCAiY2FsbCIsICJhc3luYyIsICJwcm9taXNlIiwgIkZpbHRlcnMiLCAiYXRvbSIsICJzZXQiLCAiY29uc3RhbnQiLCAidmFsdWUiLCAibnVsbGFibGVBdG9tIiwgIm5lZ2F0ZWQiLCAibmVnYXRlIiwgImZpbHRlciIsICJlbXB0eSIsICJyZXNvbHZlIiwgImV2ZXJ5dGhpbmciLCAic2V0SW50ZXJzZWN0TmVnYXRpb24iLCAiaW50ZXJzZWN0IiwgImVsZW1lbnRzIiwgImxhenlJbnRlcnNlY3QiLCAieCIsICJwcm9kdWNlIiwgImxhenlGYWlsYWJsZUludGVyc2VjdGlvbiIsICJSZXN1bHQiLCAiYXRvbXMiLCAibmVnYXRpb25zIiwgImVsZW1lbnQiLCAibWF5YmVGaWx0ZXIiLCAic2V0SW50ZXJzZWN0IiwgInNldFVuaW9uIiwgInVuaW9uIiwgImZpbHRlcnMiLCAibGF6eVVuaW9uIiwgImxhenlGYWlsYWJsZVVuaW9uIiwgInNldHMiLCAic29ydGVkIiwgImEiLCAiYiIsICJyZXN1bHQiLCAibGFyZ2VzdCIsICJFeHByZXNzaW9ucyIsICJ2YXJpYWJsZSIsICJuYW1lIiwgImxpdGVyYWwiLCAidmFsdWUiLCAiYmluYXJ5T3AiLCAibGVmdCIsICJvcCIsICJyaWdodCIsICJpbmRleCIsICJvYmoiLCAiaW5kZXhWYXJpYWJsZSIsICJwYXJ0cyIsICJyZXN1bHQiLCAibGFtYmRhIiwgImFyZ3MiLCAiZnVuYyIsICJsaXN0IiwgInZhbHVlcyIsICJvYmplY3QiLCAibmVnYXRlIiwgImNoaWxkIiwgImlzQ29tcGFyZU9wIiwgInVuYm91bmRWYXJpYWJsZXMiLCAiZXhwciIsICJib3VuZCIsICJMaXRlcmFscyIsICJGaWx0ZXJzIiwgImEiLCAibmV3Qm91bmQiLCAiYXJnIiwgInYiLCAidG9TdHJpbmciLCAiayIsICJ3cmFwcGVkIiwgIlBSSU1JVElWRVMiLCAiXyIsICJzdHIiLCAicSIsICJjaGFycyIsICJlc2NhcGVkIiwgInN0YXJ0IiwgInJlc3QiLCAiRU1PSklfUkVHRVgiLCAiZmlyc3QiLCAibGlua0lubmVyIiwgIkxpbmsiLCAicCIsICJsIiwgIl9zdHIiLCAieWVhciIsICJtb250aCIsICJEYXRlVGltZSIsICJEQVRFX1NIT1JUSEFORFMiLCAiYSIsICJiIiwgImNoYWluT3B0IiwgInltIiwgImRheSIsICJ5bWQiLCAiaG91ciIsICJ5bWRoIiwgIm1pbnV0ZSIsICJ5bWRobSIsICJzZWNvbmQiLCAieW1kaG1zIiwgIm1pbGxpc2Vjb25kIiwgImR0IiwgInBtIiwgImhyIiwgIl9hIiwgInpvbmUiLCAiX2IiLCAiZCIsICJEVVJBVElPTl9UWVBFUyIsICJjb3VudCIsICJ0IiwgIngiLCAiZHVyYXRpb25zIiwgImMiLCAibm9ybWFsaXplRHVyYXRpb24iLCAiZiIsICJfcyIsICJlbW9qaV9yZWdleF9kZWZhdWx0IiwgIkR1cmF0aW9uIiwgIkVYUFJFU1NJT04iLCAiRXhwcmVzc2lvbnMiLCAiY3JlYXRlRnVuY3Rpb24iLCAiX2Z1bmMiLCAiZGF0ZSIsICJkdXIiLCAibmFtZSIsICJfc2VwIiwgInZhbHVlIiwgInZhbHMiLCAicmVzIiwgImVudHJ5IiwgIm9iaiIsICJwb3N0Zml4ZXMiLCAicmVzdWx0IiwgInBvc3QiLCAiZmllbGQiLCAiaWRlbnQiLCAiX2lnbm9yZSIsICJleHByIiwgIl8yIiwgIl8zIiwgIl80IiwgIl8xIiwgImV4cHJzIiwgImNyZWF0ZUJpbmFyeVBhcnNlciIsICJRVUVSWSIsICJpZCIsICJmdW5jIiwgInBhdGgiLCAiY2hpbGRyZW4iLCAicGFyZW50cyIsICJsaW5rIiwgInNvdXJjZSIsICJsZWZ0IiwgIl9vcCIsICJyaWdodCIsICJjcmVhdGVCaW5hcnlQYXJzZXIiLCAiY2hpbGQiLCAic2VwIiwgImNvbWJpbmUiLCAiZmlyc3QiLCAicmVzdCIsICJub2RlIiwgImluZGV4IiwgImNyZWF0ZUZ1bmN0aW9uIiwgImZ1bmMiLCAiYXJncyIsICJyZWFsRnVuYyIsICJmIiwgImEiLCAiY2hhaW5PcHQiLCAiYmFzZSIsICJmdW5jcyIsICJfc3VjY2VzcyIsICJfZmFpbHVyZSIsICJpbnB1dCIsICJyZXN1bHQiLCAibmV4dCIsICJQIiwgIm1hcE9iamVjdFZhbHVlcyIsICJvYmplY3QiLCAiZnVuYyIsICJyZXN1bHQiLCAia2V5IiwgInZhbHVlIiwgIkpzb25Db252ZXJzaW9uIiwgImlucHV0IiwgImpzb24iLCAibGl0ZXJhbCIsICJ3cmFwcGVkIiwgIkxpdGVyYWxzIiwgIm1hcE9iamVjdFZhbHVlcyIsICJ2YWx1ZSIsICJub3JtYWxpemVyIiwgInYiLCAidHlwZSIsICJEYXRlVGltZSIsICJEdXJhdGlvbiIsICJMaW5rIiwgImpzb25JbmxpbmVGaWVsZCIsICJmaWVsZCIsICJKc29uQ29udmVyc2lvbiIsICJhc0lubGluZUZpZWxkIiwgImxvY2FsIiwgImxpbmVubyIsICJmIiwgInBhcnNlSW5saW5lVmFsdWUiLCAiSU5MSU5FX0ZJRUxEX1dSQVBQRVJTIiwgImZpbmRDbG9zaW5nIiwgImxpbmUiLCAic3RhcnQiLCAib3BlbiIsICJjbG9zZSIsICJuZXN0aW5nIiwgImVzY2FwZWQiLCAiaW5kZXgiLCAiY2hhciIsICJmaW5kU2VwYXJhdG9yIiwgInNlcCIsICJmaW5kU3BlY2lmaWNJbmxpbmVGaWVsZCIsICJrZXkiLCAidmFsdWUiLCAiaW5saW5lIiwgIlBSSU1JVElWRVMiLCAiZXh0cmFjdElubGluZUZpZWxkcyIsICJpbmNsdWRlVGFza0ZpZWxkcyIsICJmaWVsZHMiLCAid3JhcHBlciIsICJmb3VuZEluZGV4IiwgInBhcnNlZEZpZWxkIiwgImV4dHJhY3RTcGVjaWFsVGFza0ZpZWxkcyIsICJhIiwgImIiLCAiZmlsdGVyZWRGaWVsZHMiLCAiaSIsICJGVUxMX0xJTkVfS0VZX1BBUlQiLCAiZW1vamlfcmVnZXhfZGVmYXVsdCIsICJwYXJ0cyIsICJGVUxMX0xJTkVfS0VZX1BBUlNFUiIsICJleHRyYWN0RnVsbExpbmVGaWVsZCIsICJ0ZXh0IiwgInJlYWxLZXkiLCAiQ1JFQVRFRF9EQVRFX1JFR0VYIiwgIkRVRV9EQVRFX1JFR0VYIiwgIkRPTkVfREFURV9SRUdFWCIsICJTQ0hFRFVMRURfREFURV9SRUdFWCIsICJTVEFSVF9EQVRFX1JFR0VYIiwgIkVNT0pJX1JFR0VYRVMiLCAicmVzdWx0cyIsICJyZWdleCIsICJtYXRjaCIsICJZYW1sQ29udmVyc2lvbiIsICJ5YW1sIiwgInZhbHVlIiwgIndyYXBwZWQiLCAiTGl0ZXJhbHMiLCAibGl0ZXJhbCIsICJtYXBPYmplY3RWYWx1ZXMiLCAicmVzdWx0IiwgImNoaWxkIiwgIkRhdGVUaW1lIiwgIm9iamVjdCIsICJrZXkiLCAiZGF0ZVBhcnNlIiwgIlBSSU1JVElWRVMiLCAiZHVyYXRpb25QYXJzZSIsICJsaW5rUGFyc2UiLCAiWUFNTF9EQVRBX1JFR0VYIiwgIkNPREVCTE9DS19GRU5DRV9SRUdFWCIsICJMSVNUX0lURU1fUkVHRVgiLCAibWFya2Rvd25JbXBvcnQiLCAicGF0aCIsICJtYXJrZG93biIsICJtZXRhZGF0YSIsICJzdGF0cyIsICJsaW5lcyIsICJwYWdlTWV0YWRhdGEiLCAiZnJvbnRtYXR0ZXIiLCAic2VjdGlvbnMiLCAibWFya2Rvd25Tb3VyY2VJbXBvcnQiLCAiUGFnZURhdGEiLCAiX2EiLCAiX2IiLCAiX2MiLCAiX2QiLCAiX2UiLCAiX2YiLCAiX2ciLCAiX2giLCAiX2kiLCAiX2oiLCAiX2siLCAiX2wiLCAiX20iLCAiX24iLCAiX28iLCAiX3AiLCAicGFyc2VGcm9udG1hdHRlckJsb2NrIiwgIm1hcmtkb3duTWV0YWRhdGEiLCAiTWV0YWRhdGEiLCAic2VjdGlvbkFycmF5IiwgIm1ldGFoZWFkaW5ncyIsICJhIiwgImIiLCAiQlRyZWUiLCAiaW5kZXgiLCAiZW50cnkiLCAic3RhcnQiLCAiZW5kIiwgInNlY3Rpb24iLCAiU2VjdGlvbkRhdGEiLCAiZW1wdHlsaW5lcyIsICJnZXRGaWxlVGl0bGUiLCAiZmlyc3QiLCAiYmxvY2tzIiwgImJsb2NrT3JkaW5hbCIsICJibG9jayIsICJzdGFydExpbmUiLCAiTGlzdEJsb2NrRGF0YSIsICJ5YW1sIiwgInNwbGl0IiwgInBhcnNlIiwgIkRhdGFibG9ja0RhdGEiLCAibWF0Y2giLCAiQ29kZWJsb2NrRGF0YSIsICJsYW5ndWFnZXMiLCAiQmFzZUJsb2NrRGF0YSIsICJsb29rdXAiLCAiY29udGVudFJlZ2V4IiwgIm1hcmtlclJlZ2V4IiwgImxpc3RJdGVtcyIsICJsaXN0IiwgInN5bWJvbCIsICJ0ZXh0IiwgIml0ZW0iLCAiTGlzdEl0ZW1EYXRhIiwgImxpc3RCbG9jayIsICJ0YWdkZWYiLCAidGFnIiwgImxpbmUiLCAicmF3dGFnIiwgImV4dHJhY3RUYWdzIiwgImxpbmtkZWYiLCAibGluayIsICJMaW5rIiwgImZpZWxkIiwgIml0ZXJhdGVJbmxpbmVGaWVsZHMiLCAiY29udGVudCIsICJsaW5lbm8iLCAiaW5saW5lRmllbGRzIiwgImV4dHJhY3RJbmxpbmVGaWVsZHMiLCAiaWZpZWxkIiwgImFzSW5saW5lRmllbGQiLCAiZnVsbExpbmUiLCAiZXh0cmFjdEZ1bGxMaW5lRmllbGQiLCAicmVzdWx0IiwgImtleSIsICJ2YWx1ZSIsICJKc29uQ29udmVyc2lvbiIsICJZYW1sQ29udmVyc2lvbiIsICJ0cmVlIiwgInRhcmdldCIsICJrIiwgInNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzIiwgInAiLCAiYyIsICJzdHIiLCAiZGF0YSIsICJvbiIsICJzIiwgInYiLCAibG93ZXIiLCAibWFwT2JqZWN0VmFsdWVzIiwgImpzb25JbmxpbmVGaWVsZCIsICJsZW5ndGgiLCAiZ2V0RXh0ZW5zaW9uIiwgIngiLCAidGl0bGUiLCAibGV2ZWwiLCAib3JkaW5hbCIsICJibG9ja0lkIiwgInN0eWxlIiwgImNvbnRlbnRTdGFydCIsICJjb250ZW50RW5kIiwgInR5cGUiLCAicGFyZW50TGluZSIsICJzdGF0dXMiLCAiZWxlbWVudCIsICJjYW52YXNJbXBvcnQiLCAicGF0aCIsICJzb3VyY2UiLCAiaW5kZXgiLCAic3RhdHMiLCAiX2EiLCAiY2FudmFzIiwgIkNhbnZhc0RhdGEiLCAicGFyc2VkIiwgImMiLCAiZnJvbnRtYXR0ZXIiLCAibWV0YWRhdGEiLCAibGluZXMiLCAic2VjdGlvbnMiLCAibWFya2Rvd25Tb3VyY2VJbXBvcnQiLCAiY2FyZCIsICJDYW52YXNDYXJkRGF0YSIsICJpIiwgInRhZyIsICJsaW5rIiwgImZpZWxkIiwgIml0ZXJhdGVJbmxpbmVGaWVsZHMiLCAiQWJzdHJhY3RDYW52YXNDYXJkRGF0YSIsICJpZCIsICJub2RlSnNvbiIsICJNZXRhZGF0YSIsICJMaW5rIiwgInNlY3Rpb24iLCAiX19zcHJlYWRQcm9wcyIsICJfX3NwcmVhZFZhbHVlcyIsICJ4IiwgImQiLCAiZXZlbnQiLCAibWVzc2FnZSIsICJtYXJrZG93biIsICJtYXJrZG93bkltcG9ydCIsICJjYW52YXMiLCAiY2FudmFzSW1wb3J0IiwgImVycm9yIl0KfQo=\n'); + return inlineWorker('var cl=Object.create;var Js=Object.defineProperty,fl=Object.defineProperties,dl=Object.getOwnPropertyDescriptor,hl=Object.getOwnPropertyDescriptors,pl=Object.getOwnPropertyNames,qr=Object.getOwnPropertySymbols,ml=Object.getPrototypeOf,zs=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable;var Hs=(n,e)=>(e=Symbol[n])?e:Symbol.for("Symbol."+n),Dl=n=>{throw TypeError(n)};var Ao=(n,e,t)=>e in n?Js(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,R=(n,e)=>{for(var t in e||(e={}))zs.call(e,t)&&Ao(n,t,e[t]);if(qr)for(var t of qr(e))Mo.call(e,t)&&Ao(n,t,e[t]);return n},ye=(n,e)=>fl(n,hl(e));var Ys=(n,e)=>{var t={};for(var r in n)zs.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&qr)for(var r of qr(n))e.indexOf(r)<0&&Mo.call(n,r)&&(t[r]=n[r]);return t};var _o=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var yl=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of pl(e))!zs.call(n,s)&&s!==t&&Js(n,s,{get:()=>e[s],enumerable:!(r=dl(e,s))||r.enumerable});return n};var Vr=(n,e,t)=>(t=n!=null?cl(ml(n)):{},yl(e||!n||!n.__esModule?Js(t,"default",{value:n,enumerable:!0}):t,n));var gl=function(n,e){this[0]=n,this[1]=e};var S=n=>{var e=n[Hs("asyncIterator")],t=!1,r,s={};return e==null?(e=n[Hs("iterator")](),r=i=>s[i]=o=>e[i](o)):(e=e.call(n),r=i=>s[i]=o=>{if(t){if(t=!1,i==="throw")throw o;return o}return t=!0,{done:!1,value:new gl(new Promise(a=>{var u=e[i](o);u instanceof Object||Dl("Object expected"),a(u)}),1)}}),s[Hs("iterator")]=()=>s,r("next"),"throw"in e?r("throw"):s.throw=i=>{throw i},"return"in e&&r("return"),s};var ns=_o((pr,Ai)=>{(function(n,e){typeof pr=="object"&&typeof Ai=="object"?Ai.exports=e():typeof define=="function"&&define.amd?define([],e):typeof pr=="object"?pr.Parsimmon=e():n.Parsimmon=e()})(typeof self!="undefined"?self:pr,function(){return function(n){var e={};function t(r){if(e[r])return e[r].exports;var s=e[r]={i:r,l:!1,exports:{}};return n[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}return t.m=n,t.c=e,t.d=function(r,s,i){t.o(r,s)||Object.defineProperty(r,s,{configurable:!1,enumerable:!0,get:i})},t.r=function(r){Object.defineProperty(r,"__esModule",{value:!0})},t.n=function(r){var s=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(s,"a",s),s},t.o=function(r,s){return Object.prototype.hasOwnProperty.call(r,s)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";function r(c){if(!(this instanceof r))return new r(c);this._=c}var s=r.prototype;function i(c,m){for(var E=0;E>7),buf:function(L){var A=o(function(M,U,te,Ee){return M.concat(te===Ee.length-1?Buffer.from([U,0]).readUInt16BE(0):Ee.readUInt16BE(te))},[],L);return Buffer.from(a(function(M){return(M<<1&65535)>>8},A))}(E.buf)}}),E}function l(){return typeof Buffer!="undefined"}function f(){if(!l())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function d(c){f();var m=o(function(A,M){return A+M},0,c);if(m%8!=0)throw new Error("The bits ["+c.join(", ")+"] add up to "+m+" which is not an even number of bytes; the total should be divisible by 8");var E,k=m/8,L=(E=function(A){return A>48},o(function(A,M){return A||(E(M)?M:A)},null,c));if(L)throw new Error(L+" bit range requested exceeds 48 bit (6 byte) Number max.");return new r(function(A,M){var U=k+M;return U>A.length?v(M,k.toString()+" bytes"):w(U,o(function(te,Ee){var pe=u(Ee,te.buf);return{coll:te.coll.concat(pe.v),buf:pe.buf}},{coll:[],buf:A.slice(M,U)},c).coll)})}function p(c,m){return new r(function(E,k){return f(),k+m>E.length?v(k,m+" bytes for "+c):w(k+m,E.slice(k,k+m))})}function h(c,m){if(typeof(E=m)!="number"||Math.floor(E)!==E||m<0||m>6)throw new Error(c+" requires integer length in range [0, 6].");var E}function b(c){return h("uintBE",c),p("uintBE("+c+")",c).map(function(m){return m.readUIntBE(0,c)})}function g(c){return h("uintLE",c),p("uintLE("+c+")",c).map(function(m){return m.readUIntLE(0,c)})}function D(c){return h("intBE",c),p("intBE("+c+")",c).map(function(m){return m.readIntBE(0,c)})}function T(c){return h("intLE",c),p("intLE("+c+")",c).map(function(m){return m.readIntLE(0,c)})}function I(c){return c instanceof r}function N(c){return{}.toString.call(c)==="[object Array]"}function y(c){return l()&&Buffer.isBuffer(c)}function w(c,m){return{status:!0,index:c,value:m,furthest:-1,expected:[]}}function v(c,m){return N(m)||(m=[m]),{status:!1,index:-1,value:null,furthest:c,expected:m}}function O(c,m){if(!m||c.furthest>m.furthest)return c;var E=c.furthest===m.furthest?function(k,L){if(function(){if(r._supportsSet!==void 0)return r._supportsSet;var ht=typeof Set!="undefined";return r._supportsSet=ht,ht}()&&Array.from){for(var A=new Set(k),M=0;M=0;){if(M in E){k=E[M].line,A===0&&(A=E[M].lineStart);break}(c.charAt(M)===`\n`||c.charAt(M)==="\\r"&&c.charAt(M+1)!==`\n`)&&(L++,A===0&&(A=M+1)),M--}var U=k+L,te=m-A;return E[m]={line:U,lineStart:A},{offset:m,line:U+1,column:te+1}}function j(c){if(!I(c))throw new Error("not a parser: "+c)}function Y(c,m){return typeof c=="string"?c.charAt(m):c[m]}function ee(c){if(typeof c!="number")throw new Error("not a number: "+c)}function ae(c){if(typeof c!="function")throw new Error("not a function: "+c)}function x(c){if(typeof c!="string")throw new Error("not a string: "+c)}var $=2,Q=3,ue=8,De=5*ue,Re=4*ue,Qt=" ";function Mt(c,m){return new Array(m+1).join(c)}function _t(c,m,E){var k=m-c.length;return k<=0?c:Mt(E,k)+c}function Ae(c,m,E,k){return{from:c-m>0?c-m:0,to:c+E>k?k:c+E}}function Bt(c,m){var E,k,L,A,M,U=m.index,te=U.offset,Ee=1;if(te===c.length)return"Got the end of the input";if(y(c)){var pe=te-te%ue,dt=te-pe,ve=Ae(pe,De,Re+ue,c.length),ht=a(function(le){return a(function(en){return _t(en.toString(16),2,"0")},le)},function(le,en){var tn=le.length,Rt=[],nn=0;if(tn<=en)return[le.slice()];for(var rn=0;rn=4&&(E+=1),Ee=2,L=a(function(le){return le.length<=4?le.join(" "):le.slice(0,4).join(" ")+" "+le.slice(4).join(" ")},ht),(M=(8*(A.to>0?A.to-1:A.to)).toString(16).length)<2&&(M=2)}else{var Xt=c.split(/\\r\\n|[\\n\\r\\u2028\\u2029]/);E=U.column-1,k=U.line-1,A=Ae(k,$,Q,Xt.length),L=Xt.slice(A.from,A.to),M=A.to.toString().length}var ll=k-A.from;return y(c)&&(M=(8*(A.to>0?A.to-1:A.to)).toString(16).length)<2&&(M=2),o(function(le,en,tn){var Rt,nn=tn===ll,rn=nn?"> ":Qt;return Rt=y(c)?_t((8*(A.from+tn)).toString(16),M,"0"):_t((A.from+tn+1).toString(),M," "),[].concat(le,[rn+Rt+" | "+en],nn?[Qt+Mt(" ",M)+" | "+_t("",E," ")+Mt("^",Ee)]:[])},[],L).join(`\n`)}function So(c,m){return[`\n`,"-- PARSING FAILED "+Mt("-",50),`\n\n`,Bt(c,m),`\n\n`,(E=m.expected,E.length===1?`Expected:\n\n`+E[0]:`Expected one of the following: \n\n`+E.join(", ")),`\n`].join("");var E}function ko(c){return c.flags!==void 0?c.flags:[c.global?"g":"",c.ignoreCase?"i":"",c.multiline?"m":"",c.unicode?"u":"",c.sticky?"y":""].join("")}function Br(){for(var c=[].slice.call(arguments),m=c.length,E=0;E=2?ee(m):m=0;var E=function(L){return RegExp("^(?:"+L.source+")",ko(L))}(c),k=""+c;return r(function(L,A){var M=E.exec(L.slice(A));if(M){if(0<=m&&m<=M.length){var U=M[0],te=M[m];return w(A+U.length,te)}return v(A,"valid match group (0 to "+M.length+") in "+k)}return v(A,k)})}function $t(c){return r(function(m,E){return w(E,c)})}function $r(c){return r(function(m,E){return v(E,c)})}function Rr(c){if(I(c))return r(function(m,E){var k=c._(m,E);return k.index=E,k.value="",k});if(typeof c=="string")return Rr(Bn(c));if(c instanceof RegExp)return Rr(ft(c));throw new Error("not a string, regexp, or parser: "+c)}function vo(c){return j(c),r(function(m,E){var k=c._(m,E),L=m.slice(E,k.index);return k.status?v(E,\'not "\'+L+\'"\'):w(E,null)})}function jr(c){return ae(c),r(function(m,E){var k=Y(m,E);return E=c.length?v(m,"any character/byte"):w(m+1,Y(c,m))}),tl=r(function(c,m){return w(c.length,c.slice(m))}),Ws=r(function(c,m){return m=0}).desc(m)},r.optWhitespace=ol,r.Parser=r,r.range=function(c,m){return jr(function(E){return c<=E&&E<=m}).desc(c+"-"+m)},r.regex=ft,r.regexp=ft,r.sepBy=Co,r.sepBy1=Us,r.seq=Br,r.seqMap=Pt,r.seqObj=function(){for(var c,m={},E=0,k=(c=arguments,Array.prototype.slice.call(c)),L=k.length,A=0;A255)throw new Error("Value specified to byte constructor ("+c+"=0x"+c.toString(16)+") is larger in value than a single byte.");var m=(c>15?"0x":"0x0")+c.toString(16);return r(function(E,k){var L=Y(E,k);return L===c?w(k+1,L):v(k,m)})},buffer:function(c){return p("buffer",c).map(function(m){return Buffer.from(m)})},encodedString:function(c,m){return p("string",m).map(function(E){return E.toString(c)})},uintBE:b,uint8BE:b(1),uint16BE:b(2),uint32BE:b(4),uintLE:g,uint8LE:g(1),uint16LE:g(2),uint32LE:g(4),intBE:D,int8BE:D(1),int16BE:D(2),int32BE:D(4),intLE:T,int8LE:T(1),int16LE:T(2),int32LE:T(4),floatBE:p("floatBE",4).map(function(c){return c.readFloatBE(0)}),floatLE:p("floatLE",4).map(function(c){return c.readFloatLE(0)}),doubleBE:p("doubleBE",8).map(function(c){return c.readDoubleBE(0)}),doubleLE:p("doubleLE",8).map(function(c){return c.readDoubleLE(0)})},n.exports=r}])})});var Ru=_o(Ne=>{"use strict";var Sf=Ne&&Ne.__extends||function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,s){r.__proto__=s}||function(r,s){for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(r[i]=s[i])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}();Object.defineProperty(Ne,"__esModule",{value:!0});Ne.EmptyBTree=Ne.asSet=Ne.simpleComparator=Ne.defaultComparator=void 0;function Bu(n,e){if(Number.isFinite(n)&&Number.isFinite(e))return n-e;var t=typeof n,r=typeof e;if(t!==r)return te?1:n===e?0:Number.isNaN(n)?Number.isNaN(e)?0:-1:Number.isNaN(e)?1:Array.isArray(n)?0:Number.NaN}Ne.defaultComparator=Bu;function kf(n,e){return n>e?1:n=4?Math.min(r,256):32,this._compare=t||Bu,e&&this.setPairs(e)}return Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isEmpty",{get:function(){return this._size===0},enumerable:!1,configurable:!0}),n.prototype.clear=function(){this._root=fo,this._size=0},n.prototype.forEach=function(e,t){var r=this;return t!==void 0&&(e=e.bind(t)),this.forEachPair(function(s,i){return e(i,s,r)})},n.prototype.forEachPair=function(e,t){var r=this.minKey(),s=this.maxKey();return this.forRange(r,s,!0,e,t)},n.prototype.get=function(e,t){return this._root.get(e,t,this)},n.prototype.set=function(e,t,r){this._root.isShared&&(this._root=this._root.clone());var s=this._root.set(e,t,r,this);return s===!0||s===!1?s:(this._root=new vf([this._root,s]),!0)},n.prototype.has=function(e){return this.forRange(e,e,!0,void 0)!==0},n.prototype.delete=function(e){return this.editRange(e,e,!0,Mu)!==0},n.prototype.with=function(e,t,r){var s=this.clone();return s.set(e,t,r)||r?s:this},n.prototype.withPairs=function(e,t){var r=this.clone();return r.setPairs(e,t)!==0||t?r:this},n.prototype.withKeys=function(e,t){for(var r=this.clone(),s=!1,i=0;i=s.length){a=3;continue e}if(++i[l]0;l--)s[l-1]=s[l][i[l]].children,i[l-1]=0;o=s[0][i[0]],u=-1,a=t!==void 0?1:0;continue;case 3:return{done:!0,value:void 0}}})},n.prototype.entriesReversed=function(e,t,r){if(e===void 0&&(e=this.maxKey(),r=void 0,e===void 0))return An();var s=this.findPath(e)||this.findPath(this.maxKey()),i=s.nodequeue,o=s.nodeindex,a=s.leaf;Le(!i[0]||a===i[0][o[0]],"wat!");var u=a.indexOf(e,0,this._compare);!r&&u=0)return{done:!1,value:[a.keys[u],a.values[u]]};l=2;continue;case 1:if(--u>=0)return t[0]=a.keys[u],t[1]=a.values[u],{done:!1,value:t};l=2;case 2:for(var f=-1;;){if(++f>=i.length){l=3;continue e}if(--o[f]>=0)break}for(;f>0;f--)i[f-1]=i[f][o[f]].children,o[f-1]=i[f-1].length-1;a=i[0][o[0]],u=a.keys.length,l=t!==void 0?1:0;continue;case 3:return{done:!0,value:void 0}}})},n.prototype.findPath=function(e){var t=this._root,r,s;if(t.isLeaf)r=_u,s=_u;else{r=[],s=[];for(var i=0;!t.isLeaf;i++){if(r[i]=t.children,s[i]=e===void 0?0:t.indexOf(e,0,this._compare),s[i]>=r[i].length)return;t=r[i][s[i]]}r.reverse(),s.reverse()}return{nodequeue:r,nodeindex:s,leaf:t}},n.prototype.diffAgainst=function(e,t,r,s){if(e._compare!==this._compare)throw new Error("Tree comparators are not the same.");if(this.isEmpty||e.isEmpty)return this.isEmpty&&e.isEmpty?void 0:this.isEmpty?r===void 0?void 0:n.stepToEnd(n.makeDiffCursor(e),r):t===void 0?void 0:n.stepToEnd(n.makeDiffCursor(this),t);for(var i=this._compare,o=n.makeDiffCursor(this),a=n.makeDiffCursor(e),u=!0,l=!0,f=n.compare(o,a,i);u&&l;){var d=n.compare(o,a,i),p=o.leaf,h=o.internalSpine,b=o.levelIndices,g=a.leaf,D=a.internalSpine,T=a.levelIndices;if(p||g){if(f!==0){if(d===0){if(p&&g&&s){var I=p.values[b[b.length-1]],N=g.values[T[T.length-1]];if(!Object.is(I,N)){var y=s(o.currentKey,I,N);if(y&&y.break)return y.break}}}else if(d>0){if(g&&r){var w=g.values[T[T.length-1]],y=r(a.currentKey,w);if(y&&y.break)return y.break}}else if(t&&p&&f!==0){var I=p.values[b[b.length-1]],y=t(o.currentKey,I);if(y&&y.break)return y.break}}}else if(!p&&!g&&d===0){var v=h.length-1,O=D.length-1,C=h[v][b[v]],V=D[O][T[O]];if(V===C){f=0,u=n.step(o,!0),l=n.step(a,!0);continue}}f=d,d<0?u=n.step(o):l=n.step(a)}if(u&&t)return n.finishCursorWalk(o,a,i,t);if(l&&r)return n.finishCursorWalk(a,o,i,r)},n.finishCursorWalk=function(e,t,r,s){var i=n.compare(e,t,r);if(i===0){if(!n.step(e))return}else i<0&&Le(!1,"cursor walk terminated early");return n.stepToEnd(e,s)},n.stepToEnd=function(e,t){for(var r=!0;r;){var s=e.leaf,i=e.levelIndices,o=e.currentKey;if(s){var a=s.values[i[i.length-1]],u=t(o,a);if(u&&u.break)return u.break}r=n.step(e)}},n.makeDiffCursor=function(e){var t=e._root,r=e.height;return{height:r,internalSpine:[[t]],levelIndices:[0],leaf:void 0,currentKey:t.maxKey()}},n.step=function(e,t){var r=e.internalSpine,s=e.levelIndices,i=e.leaf;if(t===!0||i){var o=s.length;if(t===!0||s[o-1]===0){var a=r.length;if(a===0)return!1;for(var u=a-1,l=u;l>=0;){if(s[l]>0)return ls?Of:void 0}),i},n.prototype.setPairs=function(e,t){for(var r=0,s=0;s>1;i0)o=a;else{if(u===0)return a;if(e===e)return s.length;throw new Error("BTree: NaN was used as a key")}a=i+o>>1}return a^t},n.prototype.minKey=function(){return this.keys[0]},n.prototype.minPair=function(e){if(this.keys.length!==0)return e[0]=this.keys[0],e[1]=this.values[0],e},n.prototype.maxPair=function(e){if(this.keys.length!==0){var t=this.keys.length-1;return e[0]=this.keys[t],e[1]=this.values[t],e}},n.prototype.clone=function(){var e=this.values;return new n(this.keys.slice(0),e===me?e:e.slice(0))},n.prototype.greedyClone=function(e){return this.isShared&&!e?this:this.clone()},n.prototype.get=function(e,t,r){var s=this.indexOf(e,-1,r._compare);return s<0?t:this.values[s]},n.prototype.getPairOrNextLower=function(e,t,r,s){var i=this.indexOf(e,-1,t),o=i<0?~i-1:r?i:i-1;if(o>=0)return s[0]=this.keys[o],s[1]=this.values[o],s},n.prototype.getPairOrNextHigher=function(e,t,r,s){var i=this.indexOf(e,-1,t),o=i<0?~i:r?i:i+1,a=this.keys;if(o0,"empty leaf at depth",e,"and baseIndex",r),s},n.prototype.set=function(e,t,r,s){var i=this.indexOf(e,-1,s._compare);if(i<0){if(i=~i,s._size++,this.keys.lengththis.keys.length&&(i-=this.keys.length,a=o),a.insertInLeaf(i,e,t,s),o}else return r!==!1&&(t!==void 0&&this.reifyValues(),this.keys[i]=e,this.values[i]=t),!1},n.prototype.reifyValues=function(){return this.values===me?this.values=this.values.slice(0,this.keys.length):this.values},n.prototype.insertInLeaf=function(e,t,r,s){if(this.keys.splice(e,0,t),this.values===me){for(;me.length>1,t=this.keys.splice(e),r=this.values===me?me:this.values.splice(e);return new n(t,r)},n.prototype.forRange=function(e,t,r,s,i,o,a){var u=i._compare,l,f;if(t===e){if(!r||(f=(l=this.indexOf(e,-1,u))+1,l<0))return o}else l=this.indexOf(e,0,u),f=this.indexOf(t,-1,u),f<0?f=~f:r===!0&&f++;var d=this.keys,p=this.values;if(a!==void 0)for(var h=l;h=a.length)return this.maxPair(i);var u=a[o].getPairOrNextLower(t,r,s,i);return u===void 0&&o>0?a[o-1].maxPair(i):u},e.prototype.getPairOrNextHigher=function(t,r,s,i){var o=this.indexOf(t,0,r),a=this.children,u=a.length;if(!(o>=u)){var l=a[o].getPairOrNextHigher(t,r,s,i);return l===void 0&&o1||t>0,"internal node has length",i,"at depth",t,"baseIndex",s);for(var a=0,u=this.children,l=this.keys,f=0,d=0;d=f,"wtf",s),Le(d===0||u[d-1].constructor===u[d].constructor,"type mismatch, baseIndex:",s),u[d].maxKey()!=l[d]&&Le(!1,"keys[",d,"] =",l[d],"is wrong, should be ",u[d].maxKey(),"at depth",t,"baseIndex",s),d===0||r._compare(l[d-1],l[d])<0||Le(!1,"sort violation at depth",t,"index",d,"keys",l[d-1],l[d]);var p=f===0;return(p||f>r.maxNodeSize*o)&&Le(!1,p?"too few":"too many","children (",f,a,") at depth",t,"maxNodeSize:",r.maxNodeSize,"children.length:",o,"baseIndex:",s),a},e.prototype.set=function(t,r,s,i){var o=this.children,a=i._maxNodeSize,u=i._compare,l=Math.min(this.indexOf(t,0,u),o.length-1),f=o[l];if(f.isShared&&(o[l]=f=f.clone()),f.keys.length>=a){var d;l>0&&(d=o[l-1]).keys.length0&&(b=h,l-=this.keys.length),b.insert(l+1,p),h},e.prototype.insert=function(t,r){this.children.splice(t,0,r),this.keys.splice(t,0,r.maxKey())},e.prototype.splitOffRightSide=function(){var t=this.children.length>>1;return new e(this.children.splice(t),this.keys.splice(t))},e.prototype.takeFromRight=function(t){this.keys.push(t.keys.shift()),this.children.push(t.children.shift())},e.prototype.takeFromLeft=function(t){this.keys.unshift(t.keys.pop()),this.children.unshift(t.children.pop())},e.prototype.forRange=function(t,r,s,i,o,a,u){var l=o._compare,f=this.keys,d=this.children,p=this.indexOf(t,0,l),h=p,b=Math.min(r===t?p:this.indexOf(r,0,l),f.length-1);if(i){if(h<=b)try{for(;h<=b;h++){d[h].isShared&&(d[h]=d[h].clone());var g=d[h].forRange(t,r,s,i,o,a,u);if(f[h]=d[h].maxKey(),typeof g!="number")return g;a=g}}finally{var D=o._maxNodeSize>>1;for(p>0&&p--,h=b;h>=p;h--)d[h].keys.length<=D&&(d[h].keys.length!==0?this.tryMerge(h,o._maxNodeSize):(f.splice(h,1),d.splice(h,1)));d.length!==0&&d[0].keys.length===0&&Le(!1,"emptiness bug")}}else for(;h<=b;h++){var g=d[h].forRange(t,r,s,i,o,a,u);if(typeof g!="number")return g;a=g}return a},e.prototype.tryMerge=function(t,r){var s=this.children;return t>=0&&t+1{let i=[e(s),s];return r&&t(r[0],i[0])===r[0]?r:i},null)[1]}function Ro(n,e){return e.reduce((t,r)=>(t[r]=n[r],t),{})}function kt(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function nt(n,e,t){return rr(n)&&n>=e&&n<=t}function bl(n,e){return n-e*Math.floor(n/e)}function re(n,e=2){let t=n<0,r;return t?r="-"+(""+-n).padStart(e,"0"):r=(""+n).padStart(e,"0"),r}function Dt(n){if(!(W(n)||n===null||n===""))return parseInt(n,10)}function Ct(n){if(!(W(n)||n===null||n===""))return parseFloat(n)}function sr(n){if(!(W(n)||n===null||n==="")){let e=parseFloat("0."+n)*1e3;return Math.floor(e)}}function an(n,e,t=!1){let r=10**e;return(t?Math.trunc:Math.round)(n*r)/r}function jt(n){return n%4===0&&(n%100!==0||n%400===0)}function qt(n){return jt(n)?366:365}function un(n,e){let t=bl(e-1,12)+1,r=n+(e-t)/12;return t===2?jt(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function ir(n){let e=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second,n.millisecond);return n.year<100&&n.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function ln(n){let e=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7,t=n-1,r=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||r===3?53:52}function or(n){return n>99?n:n>60?1900+n:2e3+n}function Jr(n,e,t,r=null){let s=new Date(n),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(i.timeZone=r);let o=R({timeZoneName:e},i),a=new Intl.DateTimeFormat(t,o).formatToParts(s).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Vt(n,e){let t=parseInt(n,10);Number.isNaN(t)&&(t=0);let r=parseInt(e,10)||0,s=t<0||Object.is(t,-0)?-r:r;return t*60+s}function ei(n){let e=Number(n);if(typeof n=="boolean"||n===""||Number.isNaN(e))throw new fe(`Invalid unit value ${n}`);return e}function cn(n,e){let t={};for(let r in n)if(kt(n,r)){let s=n[r];if(s==null)continue;t[e(r)]=ei(s)}return t}function vt(n,e){let t=Math.trunc(Math.abs(n/60)),r=Math.trunc(Math.abs(n%60)),s=n>=0?"+":"-";switch(e){case"short":return`${s}${re(t,2)}:${re(r,2)}`;case"narrow":return`${s}${t}${r>0?`:${r}`:""}`;case"techie":return`${s}${re(t,2)}${re(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ar(n){return Ro(n,["hour","minute","second","millisecond"])}var ti=/[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;var Fl=["January","February","March","April","May","June","July","August","September","October","November","December"],ni=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],El=["J","F","M","A","M","J","J","A","S","O","N","D"];function ri(n){switch(n){case"narrow":return[...El];case"short":return[...ni];case"long":return[...Fl];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var si=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ii=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],wl=["M","T","W","T","F","S","S"];function oi(n){switch(n){case"narrow":return[...wl];case"short":return[...ii];case"long":return[...si];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var ai=["AM","PM"],Tl=["Before Christ","Anno Domini"],Sl=["BC","AD"],kl=["B","A"];function ui(n){switch(n){case"narrow":return[...kl];case"short":return[...Sl];case"long":return[...Tl];default:return null}}function jo(n){return ai[n.hour<12?0:1]}function qo(n,e){return oi(e)[n.weekday-1]}function Vo(n,e){return ri(e)[n.month-1]}function Uo(n,e){return ui(e)[n.year<0?0:1]}function Ko(n,e,t="always",r=!1){let s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},i=["hours","minutes","seconds"].indexOf(n)===-1;if(t==="auto"&&i){let d=n==="days";switch(e){case 1:return d?"tomorrow":`next ${s[n][0]}`;case-1:return d?"yesterday":`last ${s[n][0]}`;case 0:return d?"today":`this ${s[n][0]}`;default:}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,l=s[n],f=r?u?l[1]:l[2]||l[1]:u?s[n][0]:n;return o?`${a} ${f} ago`:`in ${a} ${f}`}function Wo(n,e){let t="";for(let r of n)r.literal?t+=r.val:t+=e(r.val);return t}var Cl={D:on,DD:$n,DDD:Rn,DDDD:jn,t:qn,tt:Vn,ttt:Un,tttt:Kn,T:Wn,TT:Hn,TTT:Jn,TTTT:zn,f:Yn,ff:Zn,fff:Xn,ffff:tr,F:Gn,FF:Qn,FFF:er,FFFF:nr},we=class n{static create(e,t={}){return new n(e,t)}static parseFormat(e){let t=null,r="",s=!1,i=[];for(let o=0;o0&&i.push({literal:s,val:r}),t=null,r="",s=!s):s||a===t?r+=a:(r.length>0&&i.push({literal:!1,val:r}),r=a,t=a)}return r.length>0&&i.push({literal:s,val:r}),i}static macroTokenToFormatOpts(e){return Cl[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,R(R({},this.opts),t)).format()}formatDateTime(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).format()}formatDateTimeParts(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).formatToParts()}resolvedOptions(e,t={}){return this.loc.dtFormatter(e,R(R({},this.opts),t)).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return re(e,t);let r=R({},this.opts);return t>0&&(r.padTo=t),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,t){let r=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",i=(h,b)=>this.loc.extract(e,h,b),o=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",a=()=>r?jo(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(h,b)=>r?Vo(e,h):i(b?{month:h}:{month:h,day:"numeric"},"month"),l=(h,b)=>r?qo(e,h):i(b?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),f=h=>{let b=n.macroTokenToFormatOpts(h);return b?this.formatWithSystemDefault(e,b):h},d=h=>r?Uo(e,h):i({era:h},"era"),p=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return s?i({day:"numeric"},"day"):this.num(e.day);case"dd":return s?i({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return s?i({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?i({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return s?i({month:"numeric"},"month"):this.num(e.month);case"MM":return s?i({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return s?i({year:"numeric"},"year"):this.num(e.year);case"yy":return s?i({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?i({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?i({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return f(h)}};return Wo(n.parseFormat(t),p)}formatDurationFromString(e,t){let r=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=u=>l=>{let f=r(l);return f?this.num(u.get(f),l.length):l},i=n.parseFormat(t),o=i.reduce((u,{literal:l,val:f})=>l?u:u.concat(f),[]),a=e.shiftTo(...o.map(r).filter(u=>u));return Wo(i,s(a))}};var de=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var ke=class{get type(){throw new je}get name(){throw new je}get ianaName(){return this.name}get isUniversal(){throw new je}offsetName(e,t){throw new je}formatOffset(e,t){throw new je}offset(e){throw new je}equals(e){throw new je}get isValid(){throw new je}};var ci=null,fn=class n extends ke{static get instance(){return ci===null&&(ci=new n),ci}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:r}){return Jr(e,t,r)}formatOffset(e,t){return vt(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}};var Yr={};function vl(n){return Yr[n]||(Yr[n]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:n,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Yr[n]}var Ol={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function xl(n,e){let t=n.format(e).replace(/\\u200E/g,""),r=/(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(t),[,s,i,o,a,u,l,f]=r;return[o,s,i,a,u,l,f]}function Il(n,e){let t=n.formatToParts(e),r=[];for(let s=0;s=0?b:1e3+b,(p-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}};var fi=null,he=class n extends ke{static get utcInstance(){return fi===null&&(fi=new n(0)),fi}static instance(e){return e===0?n.utcInstance:new n(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);if(t)return new n(Vt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return vt(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}};var dn=class extends ke{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ve(n,e){let t;if(W(n)||n===null)return e;if(n instanceof ke)return n;if(Bo(n)){let r=n.toLowerCase();return r==="local"||r==="system"?e:r==="utc"||r==="gmt"?he.utcInstance:he.parseSpecifier(r)||ge.create(n)}else return tt(n)?he.instance(n):typeof n=="object"&&n.offset&&typeof n.offset=="number"?n:new dn(n)}var Ho=()=>Date.now(),Jo="system",zo=null,Yo=null,Go=null,Zo,X=class{static get now(){return Ho}static set now(e){Ho=e}static set defaultZone(e){Jo=e}static get defaultZone(){return Ve(Jo,fn.instance)}static get defaultLocale(){return zo}static set defaultLocale(e){zo=e}static get defaultNumberingSystem(){return Yo}static set defaultNumberingSystem(e){Yo=e}static get defaultOutputCalendar(){return Go}static set defaultOutputCalendar(e){Go=e}static get throwOnInvalid(){return Zo}static set throwOnInvalid(e){Zo=e}static resetCaches(){ne.resetCache(),ge.resetCache()}};var Qo={};function Ll(n,e={}){let t=JSON.stringify([n,e]),r=Qo[t];return r||(r=new Intl.ListFormat(n,e),Qo[t]=r),r}var di={};function hi(n,e={}){let t=JSON.stringify([n,e]),r=di[t];return r||(r=new Intl.DateTimeFormat(n,e),di[t]=r),r}var pi={};function Nl(n,e={}){let t=JSON.stringify([n,e]),r=pi[t];return r||(r=new Intl.NumberFormat(n,e),pi[t]=r),r}var mi={};function Al(n,e={}){let o=e,{base:t}=o,r=Ys(o,["base"]),s=JSON.stringify([n,r]),i=mi[s];return i||(i=new Intl.RelativeTimeFormat(n,e),mi[s]=i),i}var ur=null;function Ml(){return ur||(ur=new Intl.DateTimeFormat().resolvedOptions().locale,ur)}function _l(n){let e=n.indexOf("-u-");if(e===-1)return[n];{let t,r=n.substring(0,e);try{t=hi(n).resolvedOptions()}catch(o){t=hi(r).resolvedOptions()}let{numberingSystem:s,calendar:i}=t;return[r,s,i]}}function Bl(n,e,t){return(t||e)&&(n+="-u",t&&(n+=`-ca-${t}`),e&&(n+=`-nu-${e}`)),n}function Pl(n){let e=[];for(let t=1;t<=12;t++){let r=q.utc(2016,t,1);e.push(n(r))}return e}function $l(n){let e=[];for(let t=1;t<=7;t++){let r=q.utc(2016,11,13+t);e.push(n(r))}return e}function Gr(n,e,t,r,s){let i=n.listingMode(t);return i==="error"?null:i==="en"?r(e):s(e)}function Rl(n){return n.numberingSystem&&n.numberingSystem!=="latn"?!1:n.numberingSystem==="latn"||!n.locale||n.locale.startsWith("en")||new Intl.DateTimeFormat(n.intl).resolvedOptions().numberingSystem==="latn"}var Di=class{constructor(e,t,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;let a=r,{padTo:s,floor:i}=a,o=Ys(a,["padTo","floor"]);if(!t||Object.keys(o).length>0){let u=R({useGrouping:!1},r);r.padTo>0&&(u.minimumIntegerDigits=r.padTo),this.inf=Nl(e,u)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):an(e,3);return re(t,this.padTo)}}},yi=class{constructor(e,t,r){this.opts=r;let s;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ge.create(a).valid?(s=a,this.dt=e):(s="UTC",r.timeZoneName?this.dt=e:this.dt=e.offset===0?e:q.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,s=e.zone.name);let i=R({},this.opts);s&&(i.timeZone=s),this.dtf=hi(t,i)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},gi=class{constructor(e,t,r){this.opts=R({style:"long"},r),!t&&Hr()&&(this.rtf=Al(e,r))}format(e,t){return this.rtf?this.rtf.format(e,t):Ko(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},ne=class n{static fromOpts(e){return n.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,r,s=!1){let i=e||X.defaultLocale,o=i||(s?"en-US":Ml()),a=t||X.defaultNumberingSystem,u=r||X.defaultOutputCalendar;return new n(o,a,u,i)}static resetCache(){ur=null,di={},pi={},mi={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:r}={}){return n.create(e,t,r)}constructor(e,t,r,s){let[i,o,a]=_l(e);this.locale=i,this.numberingSystem=t||o||null,this.outputCalendar=r||a||null,this.intl=Bl(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Rl(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:n.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone(ye(R({},e),{defaultToEN:!0}))}redefaultToSystem(e={}){return this.clone(ye(R({},e),{defaultToEN:!1}))}months(e,t=!1,r=!0){return Gr(this,e,r,ri,()=>{let s=t?{month:e,day:"numeric"}:{month:e},i=t?"format":"standalone";return this.monthsCache[i][e]||(this.monthsCache[i][e]=Pl(o=>this.extract(o,s,"month"))),this.monthsCache[i][e]})}weekdays(e,t=!1,r=!0){return Gr(this,e,r,oi,()=>{let s=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=$l(o=>this.extract(o,s,"weekday"))),this.weekdaysCache[i][e]})}meridiems(e=!0){return Gr(this,void 0,e,()=>ai,()=>{if(!this.meridiemCache){let t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[q.utc(2016,11,13,9),q.utc(2016,11,13,19)].map(r=>this.extract(r,t,"dayperiod"))}return this.meridiemCache})}eras(e,t=!0){return Gr(this,e,t,ui,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[q.utc(-40,1,1),q.utc(2017,1,1)].map(s=>this.extract(s,r,"era"))),this.eraCache[e]})}extract(e,t,r){let s=this.dtFormatter(e,t),i=s.formatToParts(),o=i.find(a=>a.type.toLowerCase()===r);return o?o.value:null}numberFormatter(e={}){return new Di(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new yi(e,this.intl,t)}relFormatter(e={}){return new gi(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ll(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}};function pn(...n){let e=n.reduce((t,r)=>t+r.source,"");return RegExp(`^${e}$`)}function mn(...n){return e=>n.reduce(([t,r,s],i)=>{let[o,a,u]=i(e,s);return[R(R({},t),o),a||r,u]},[{},null,1]).slice(0,2)}function Dn(n,...e){if(n==null)return[null,null];for(let[t,r]of e){let s=t.exec(n);if(s)return r(s)}return[null,null]}function ea(...n){return(e,t)=>{let r={},s;for(s=0;sh!==void 0&&(b||h&&f)?-h:h;return[{years:p(Ct(t)),months:p(Ct(r)),weeks:p(Ct(s)),days:p(Ct(i)),hours:p(Ct(o)),minutes:p(Ct(a)),seconds:p(Ct(u),u==="-0"),milliseconds:p(sr(l),d)}]}var Ql={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Ei(n,e,t,r,s,i,o){let a={year:e.length===2?or(Dt(e)):Dt(e),month:ni.indexOf(t)+1,day:Dt(r),hour:Dt(s),minute:Dt(i)};return o&&(a.second=Dt(o)),n&&(a.weekday=n.length>3?si.indexOf(n)+1:ii.indexOf(n)+1),a}var Xl=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;function ec(n){let[,e,t,r,s,i,o,a,u,l,f,d]=n,p=Ei(e,s,r,t,i,o,a),h;return u?h=Ql[u]:l?h=0:h=Vt(f,d),[p,new he(h)]}function tc(n){return n.replace(/\\([^()]*\\)|[\\n\\t]/g," ").replace(/(\\s\\s+)/g," ").trim()}var nc=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,rc=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,sc=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;function Xo(n){let[,e,t,r,s,i,o,a]=n;return[Ei(e,s,r,t,i,o,a),he.utcInstance]}function ic(n){let[,e,t,r,s,i,o,a]=n;return[Ei(e,a,t,r,s,i,o),he.utcInstance]}var oc=pn(ql,Fi),ac=pn(Vl,Fi),uc=pn(Ul,Fi),lc=pn(na),sa=mn(zl,yn,lr,cr),cc=mn(Kl,yn,lr,cr),fc=mn(Wl,yn,lr,cr),dc=mn(yn,lr,cr);function ia(n){return Dn(n,[oc,sa],[ac,cc],[uc,fc],[lc,dc])}function oa(n){return Dn(tc(n),[Xl,ec])}function aa(n){return Dn(n,[nc,Xo],[rc,Xo],[sc,ic])}function ua(n){return Dn(n,[Gl,Zl])}var hc=mn(yn);function la(n){return Dn(n,[Yl,hc])}var pc=pn(Hl,Jl),mc=pn(ra),Dc=mn(yn,lr,cr);function ca(n){return Dn(n,[pc,sa],[mc,Dc])}var yc="Invalid Duration",fa={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},gc=R({years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3}},fa),Me=146097/400,gn=146097/4800,bc=R({years:{quarters:4,months:12,weeks:Me/7,days:Me,hours:Me*24,minutes:Me*24*60,seconds:Me*24*60*60,milliseconds:Me*24*60*60*1e3},quarters:{months:3,weeks:Me/28,days:Me/4,hours:Me*24/4,minutes:Me*24*60/4,seconds:Me*24*60*60/4,milliseconds:Me*24*60*60*1e3/4},months:{weeks:gn/7,days:gn,hours:gn*24,minutes:gn*24*60,seconds:gn*24*60*60,milliseconds:gn*24*60*60*1e3}},fa),Kt=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Fc=Kt.slice(0).reverse();function Ut(n,e,t=!1){let r={values:t?e.values:R(R({},n.values),e.values||{}),loc:n.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||n.conversionAccuracy};return new B(r)}function Ec(n){return n<0?Math.floor(n):Math.ceil(n)}function da(n,e,t,r,s){let i=n[s][t],o=e[t]/i,a=Math.sign(o)===Math.sign(r[s]),u=!a&&r[s]!==0&&Math.abs(o)<=1?Ec(o):Math.trunc(o);r[s]+=u,e[t]-=u*i}function wc(n,e){Fc.reduce((t,r)=>W(e[r])?t:(t&&da(n,e,t,e,r),r),null)}var B=class n{constructor(e){let t=e.conversionAccuracy==="longterm"||!1;this.values=e.values,this.loc=e.loc||ne.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?bc:gc,this.isLuxonDuration=!0}static fromMillis(e,t){return n.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new fe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new n({values:cn(e,n.normalizeUnit),loc:ne.fromObject(t),conversionAccuracy:t.conversionAccuracy})}static fromDurationLike(e){if(tt(e))return n.fromMillis(e);if(n.isDuration(e))return e;if(typeof e=="object")return n.fromObject(e);throw new fe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[r]=ua(e);return r?n.fromObject(r,t):n.invalid("unparsable",`the input "${e}" can\'t be parsed as ISO 8601`)}static fromISOTime(e,t){let[r]=la(e);return r?n.fromObject(r,t):n.invalid("unparsable",`the input "${e}" can\'t be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new fe("need to specify a reason the Duration is invalid");let r=e instanceof de?e:new de(e,t);if(X.throwOnInvalid)throw new Wr(r);return new n({invalid:r})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new sn(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let r=ye(R({},t),{floor:t.round!==!1&&t.floor!==!1});return this.isValid?we.create(this.loc,r).formatDurationFromString(this,e):yc}toHuman(e={}){let t=Kt.map(r=>{let s=this.values[r];return W(s)?null:this.loc.numberFormatter(ye(R({style:"unit",unitDisplay:"long"},e),{unit:r.slice(0,-1)})).format(s)}).filter(r=>r);return this.loc.listFormatter(R({type:"conjunction",style:e.listStyle||"narrow"},e)).format(t)}toObject(){return this.isValid?R({},this.values):{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=an(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();if(t<0||t>=864e5)return null;e=R({suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended"},e);let r=this.shiftTo("hours","minutes","seconds","milliseconds"),s=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||r.seconds!==0||r.milliseconds!==0)&&(s+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||r.milliseconds!==0)&&(s+=".SSS"));let i=r.toFormat(s);return e.includePrefix&&(i="T"+i),i}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=n.fromDurationLike(e),r={};for(let s of Kt)(kt(t.values,s)||kt(this.values,s))&&(r[s]=t.get(s)+this.get(s));return Ut(this,{values:r},!0)}minus(e){if(!this.isValid)return this;let t=n.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let r of Object.keys(this.values))t[r]=ei(e(this.values[r],r));return Ut(this,{values:t},!0)}get(e){return this[n.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t=R(R({},this.values),cn(e,n.normalizeUnit));return Ut(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:r}={}){let s=this.loc.clone({locale:e,numberingSystem:t}),i={loc:s};return r&&(i.conversionAccuracy=r),Ut(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return wc(this.matrix,e),Ut(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>n.normalizeUnit(o));let t={},r={},s=this.toObject(),i;for(let o of Kt)if(e.indexOf(o)>=0){i=o;let a=0;for(let l in r)a+=this.matrix[l][o]*r[l],r[l]=0;tt(s[o])&&(a+=s[o]);let u=Math.trunc(a);t[o]=u,r[o]=(a*1e3-u*1e3)/1e3;for(let l in s)Kt.indexOf(l)>Kt.indexOf(o)&&da(this.matrix,s,l,t,o)}else tt(s[o])&&(r[o]=s[o]);for(let o in r)r[o]!==0&&(t[i]+=o===i?r[o]:r[o]/this.matrix[i][o]);return Ut(this,{values:t},!0).normalize()}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Ut(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(r,s){return r===void 0||r===0?s===void 0||s===0:r===s}for(let r of Kt)if(!t(this.values[r],e.values[r]))return!1;return!0}};var fr="Invalid Interval";function Tc(n,e){return!n||!n.isValid?yt.invalid("missing or invalid start"):!e||!e.isValid?yt.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?n.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(bn).filter(o=>this.contains(o)).sort(),r=[],{s}=this,i=0;for(;s+this.e?this.e:o;r.push(n.fromDateTimes(s,a)),s=a,i+=1}return r}splitBy(e){let t=B.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:r}=this,s=1,i,o=[];for(;ru*s));i=+a>+this.e?this.e:a,o.push(n.fromDateTimes(r,i)),r=i,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,r=this.e=r?null:n.fromDateTimes(t,r)}union(e){if(!this.isValid)return this;let t=this.se.e?this.e:e.e;return n.fromDateTimes(t,r)}static merge(e){let[t,r]=e.sort((s,i)=>s.s-i.s).reduce(([s,i],o)=>i?i.overlaps(o)||i.abutsStart(o)?[s,i.union(o)]:[s.concat([i]),o]:[s,o],[[],null]);return r&&t.push(r),t}static xor(e){let t=null,r=0,s=[],i=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...i),a=o.sort((u,l)=>u.time-l.time);for(let u of a)r+=u.type==="s"?1:-1,r===1?t=u.time:(t&&+t!=+u.time&&s.push(n.fromDateTimes(t,u.time)),t=null);return n.merge(s)}difference(...e){return n.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \\u2013 ${this.e.toISO()})`:fr}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:fr}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:fr}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:fr}toFormat(e,{separator:t=" \\u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:fr}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):B.invalid(this.invalidReason)}mapEndpoints(e){return n.fromDateTimes(e(this.s),e(this.e))}};var gt=class{static hasDST(e=X.defaultZone){let t=q.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return ge.isValidZone(e)}static normalizeZone(e){return Ve(e,X.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(t,r,i)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(t,r,i)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null}={}){return(s||ne.create(t,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:s=null}={}){return(s||ne.create(t,r,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ne.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ne.create(t,null,"gregory").eras(e)}static features(){return{relative:Hr()}}};function ha(n,e){let t=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=t(e)-t(n);return Math.floor(B.fromMillis(r).as("days"))}function Sc(n,e,t){let r=[["years",(a,u)=>u.year-a.year],["quarters",(a,u)=>u.quarter-a.quarter],["months",(a,u)=>u.month-a.month+(u.year-a.year)*12],["weeks",(a,u)=>{let l=ha(a,u);return(l-l%7)/7}],["days",ha]],s={},i,o;for(let[a,u]of r)if(t.indexOf(a)>=0){i=a;let l=u(n,e);o=n.plus({[a]:l}),o>e?(n=n.plus({[a]:l-1}),l-=1):n=o,s[a]=l}return[n,s,o,i]}function pa(n,e,t,r){let[s,i,o,a]=Sc(n,e,t),u=e-s,l=t.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);l.length===0&&(o0?B.fromMillis(u,r).shiftTo(...l).plus(f):f}var wi={arab:"[\\u0660-\\u0669]",arabext:"[\\u06F0-\\u06F9]",bali:"[\\u1B50-\\u1B59]",beng:"[\\u09E6-\\u09EF]",deva:"[\\u0966-\\u096F]",fullwide:"[\\uFF10-\\uFF19]",gujr:"[\\u0AE6-\\u0AEF]",hanidec:"[\\u3007|\\u4E00|\\u4E8C|\\u4E09|\\u56DB|\\u4E94|\\u516D|\\u4E03|\\u516B|\\u4E5D]",khmr:"[\\u17E0-\\u17E9]",knda:"[\\u0CE6-\\u0CEF]",laoo:"[\\u0ED0-\\u0ED9]",limb:"[\\u1946-\\u194F]",mlym:"[\\u0D66-\\u0D6F]",mong:"[\\u1810-\\u1819]",mymr:"[\\u1040-\\u1049]",orya:"[\\u0B66-\\u0B6F]",tamldec:"[\\u0BE6-\\u0BEF]",telu:"[\\u0C66-\\u0C6F]",thai:"[\\u0E50-\\u0E59]",tibt:"[\\u0F20-\\u0F29]",latn:"\\\\d"},ma={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},kc=wi.hanidec.replace(/[\\[|\\]]/g,"").split("");function Da(n){let e=parseInt(n,10);if(isNaN(e)){e="";for(let t=0;t=i&&r<=o&&(e+=r-i)}}return parseInt(e,10)}else return e}function _e({numberingSystem:n},e=""){return new RegExp(`${wi[n||"latn"]}${e}`)}var Cc="missing Intl.DateTimeFormat.formatToParts support";function G(n,e=t=>t){return{regex:n,deser:([t])=>e(Da(t))}}var vc="\\xA0",ba=`[ ${vc}]`,Fa=new RegExp(ba,"g");function Oc(n){return n.replace(/\\./g,"\\\\.?").replace(Fa,ba)}function ya(n){return n.replace(/\\./g,"").replace(Fa," ").toLowerCase()}function Ue(n,e){return n===null?null:{regex:RegExp(n.map(Oc).join("|")),deser:([t])=>n.findIndex(r=>ya(t)===ya(r))+e}}function ga(n,e){return{regex:n,deser:([,t,r])=>Vt(t,r),groups:e}}function Ti(n){return{regex:n,deser:([e])=>e}}function xc(n){return n.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,"\\\\$&")}function Ic(n,e){let t=_e(e),r=_e(e,"{2}"),s=_e(e,"{3}"),i=_e(e,"{4}"),o=_e(e,"{6}"),a=_e(e,"{1,2}"),u=_e(e,"{1,3}"),l=_e(e,"{1,6}"),f=_e(e,"{1,9}"),d=_e(e,"{2,4}"),p=_e(e,"{4,6}"),h=D=>({regex:RegExp(xc(D.val)),deser:([T])=>T,literal:!0}),g=(D=>{if(n.literal)return h(D);switch(D.val){case"G":return Ue(e.eras("short",!1),0);case"GG":return Ue(e.eras("long",!1),0);case"y":return G(l);case"yy":return G(d,or);case"yyyy":return G(i);case"yyyyy":return G(p);case"yyyyyy":return G(o);case"M":return G(a);case"MM":return G(r);case"MMM":return Ue(e.months("short",!0,!1),1);case"MMMM":return Ue(e.months("long",!0,!1),1);case"L":return G(a);case"LL":return G(r);case"LLL":return Ue(e.months("short",!1,!1),1);case"LLLL":return Ue(e.months("long",!1,!1),1);case"d":return G(a);case"dd":return G(r);case"o":return G(u);case"ooo":return G(s);case"HH":return G(r);case"H":return G(a);case"hh":return G(r);case"h":return G(a);case"mm":return G(r);case"m":return G(a);case"q":return G(a);case"qq":return G(r);case"s":return G(a);case"ss":return G(r);case"S":return G(u);case"SSS":return G(s);case"u":return Ti(f);case"uu":return Ti(a);case"uuu":return G(t);case"a":return Ue(e.meridiems(),0);case"kkkk":return G(i);case"kk":return G(d,or);case"W":return G(a);case"WW":return G(r);case"E":case"c":return G(t);case"EEE":return Ue(e.weekdays("short",!1,!1),1);case"EEEE":return Ue(e.weekdays("long",!1,!1),1);case"ccc":return Ue(e.weekdays("short",!0,!1),1);case"cccc":return Ue(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return ga(new RegExp(`([+-]${a.source})(?::(${r.source}))?`),2);case"ZZZ":return ga(new RegExp(`([+-]${a.source})(${r.source})?`),2);case"z":return Ti(/[a-z_+-/]{1,256}?/i);default:return h(D)}})(n)||{invalidReason:Cc};return g.token=n,g}var Lc={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};function Nc(n,e,t){let{type:r,value:s}=n;if(r==="literal")return{literal:!0,val:s};let i=t[r],o=Lc[r];if(typeof o=="object"&&(o=o[i]),o)return{literal:!1,val:o}}function Ac(n){return[`^${n.map(t=>t.regex).reduce((t,r)=>`${t}(${r.source})`,"")}$`,n]}function Mc(n,e,t){let r=n.match(e);if(r){let s={},i=1;for(let o in t)if(kt(t,o)){let a=t[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(s[a.token.val[0]]=a.deser(r.slice(i,i+u))),i+=u}return[r,s]}else return[r,{}]}function _c(n){let e=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,r;return W(n.z)||(t=ge.create(n.z)),W(n.Z)||(t||(t=new he(n.Z)),r=n.Z),W(n.q)||(n.M=(n.q-1)*3+1),W(n.h)||(n.h<12&&n.a===1?n.h+=12:n.h===12&&n.a===0&&(n.h=0)),n.G===0&&n.y&&(n.y=-n.y),W(n.u)||(n.S=sr(n.u)),[Object.keys(n).reduce((i,o)=>{let a=e(o);return a&&(i[a]=n[o]),i},{}),t,r]}var Si=null;function Bc(){return Si||(Si=q.fromMillis(1555555555555)),Si}function Pc(n,e){if(n.literal)return n;let t=we.macroTokenToFormatOpts(n.val);if(!t)return n;let i=we.create(e,t).formatDateTimeParts(Bc()).map(o=>Nc(o,e,t));return i.includes(void 0)?n:i}function $c(n,e){return Array.prototype.concat(...n.map(t=>Pc(t,e)))}function ki(n,e,t){let r=$c(we.parseFormat(t),n),s=r.map(o=>Ic(o,n)),i=s.find(o=>o.invalidReason);if(i)return{input:e,tokens:r,invalidReason:i.invalidReason};{let[o,a]=Ac(s),u=RegExp(o,"i"),[l,f]=Mc(e,u,a),[d,p,h]=f?_c(f):[null,null,void 0];if(kt(f,"a")&&kt(f,"H"))throw new mt("Can\'t include meridiem when specifying 24-hour format");return{input:e,tokens:r,regex:u,rawMatches:l,matches:f,result:d,zone:p,specificOffset:h}}}function Ea(n,e,t){let{result:r,zone:s,specificOffset:i,invalidReason:o}=ki(n,e,t);return[r,s,i,o]}var wa=[0,31,59,90,120,151,181,212,243,273,304,334],Ta=[0,31,60,91,121,152,182,213,244,274,305,335];function Be(n,e){return new de("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${n}, which is invalid`)}function Sa(n,e,t){let r=new Date(Date.UTC(n,e-1,t));n<100&&n>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let s=r.getUTCDay();return s===0?7:s}function ka(n,e,t){return t+(jt(n)?Ta:wa)[e-1]}function Ca(n,e){let t=jt(n)?Ta:wa,r=t.findIndex(i=>iln(e)?(a=e+1,o=1):a=e,R({weekYear:a,weekNumber:o,weekday:i},ar(n))}function Ci(n){let{weekYear:e,weekNumber:t,weekday:r}=n,s=Sa(e,1,4),i=qt(e),o=t*7+r-s-3,a;o<1?(a=e-1,o+=qt(a)):o>i?(a=e+1,o-=qt(e)):a=e;let{month:u,day:l}=Ca(a,o);return R({year:a,month:u,day:l},ar(n))}function Qr(n){let{year:e,month:t,day:r}=n,s=ka(e,t,r);return R({year:e,ordinal:s},ar(n))}function vi(n){let{year:e,ordinal:t}=n,{month:r,day:s}=Ca(e,t);return R({year:e,month:r,day:s},ar(n))}function va(n){let e=rr(n.weekYear),t=nt(n.weekNumber,1,ln(n.weekYear)),r=nt(n.weekday,1,7);return e?t?r?!1:Be("weekday",n.weekday):Be("week",n.week):Be("weekYear",n.weekYear)}function Oa(n){let e=rr(n.year),t=nt(n.ordinal,1,qt(n.year));return e?t?!1:Be("ordinal",n.ordinal):Be("year",n.year)}function Oi(n){let e=rr(n.year),t=nt(n.month,1,12),r=nt(n.day,1,un(n.year,n.month));return e?t?r?!1:Be("day",n.day):Be("month",n.month):Be("year",n.year)}function xi(n){let{hour:e,minute:t,second:r,millisecond:s}=n,i=nt(e,0,23)||e===24&&t===0&&r===0&&s===0,o=nt(t,0,59),a=nt(r,0,59),u=nt(s,0,999);return i?o?a?u?!1:Be("millisecond",s):Be("second",r):Be("minute",t):Be("hour",e)}var Ii="Invalid DateTime",xa=864e13;function Xr(n){return new de("unsupported zone",`the zone "${n.name}" is not supported`)}function Li(n){return n.weekData===null&&(n.weekData=Zr(n.c)),n.weekData}function dr(n,e){let t={ts:n.ts,zone:n.zone,c:n.c,o:n.o,loc:n.loc,invalid:n.invalid};return new q(ye(R(R({},t),e),{old:t}))}function Pa(n,e,t){let r=n-e*60*1e3,s=t.offset(r);if(e===s)return[r,e];r-=(s-e)*60*1e3;let i=t.offset(r);return s===i?[r,s]:[n-Math.min(s,i)*60*1e3,Math.max(s,i)]}function Ia(n,e){n+=e*60*1e3;let t=new Date(n);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function ts(n,e,t){return Pa(ir(n),e,t)}function La(n,e){let t=n.o,r=n.c.year+Math.trunc(e.years),s=n.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,i=ye(R({},n.c),{year:r,month:s,day:Math.min(n.c.day,un(r,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7}),o=B.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=ir(i),[u,l]=Pa(a,t,n.zone);return o!==0&&(u+=o,l=n.zone.offset(u)),{ts:u,o:l}}function hr(n,e,t,r,s,i){let{setZone:o,zone:a}=t;if(n&&Object.keys(n).length!==0){let u=e||a,l=q.fromObject(n,ye(R({},t),{zone:u,specificOffset:i}));return o?l:l.setZone(a)}else return q.invalid(new de("unparsable",`the input "${s}" can\'t be parsed as ${r}`))}function es(n,e,t=!0){return n.isValid?we.create(ne.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(n,e):null}function Ni(n,e){let t=n.c.year>9999||n.c.year<0,r="";return t&&n.c.year>=0&&(r+="+"),r+=re(n.c.year,t?6:4),e?(r+="-",r+=re(n.c.month),r+="-",r+=re(n.c.day)):(r+=re(n.c.month),r+=re(n.c.day)),r}function Na(n,e,t,r,s,i){let o=re(n.c.hour);return e?(o+=":",o+=re(n.c.minute),(n.c.second!==0||!t)&&(o+=":")):o+=re(n.c.minute),(n.c.second!==0||!t)&&(o+=re(n.c.second),(n.c.millisecond!==0||!r)&&(o+=".",o+=re(n.c.millisecond,3))),s&&(n.isOffsetFixed&&n.offset===0&&!i?o+="Z":n.o<0?(o+="-",o+=re(Math.trunc(-n.o/60)),o+=":",o+=re(Math.trunc(-n.o%60))):(o+="+",o+=re(Math.trunc(n.o/60)),o+=":",o+=re(Math.trunc(n.o%60)))),i&&(o+="["+n.zone.ianaName+"]"),o}var $a={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Rc={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jc={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ra=["year","month","day","hour","minute","second","millisecond"],qc=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Vc=["year","ordinal","hour","minute","second","millisecond"];function Aa(n){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[n.toLowerCase()];if(!e)throw new sn(n);return e}function Ma(n,e){let t=Ve(e.zone,X.defaultZone),r=ne.fromObject(e),s=X.now(),i,o;if(W(n.year))i=s;else{for(let l of Ra)W(n[l])&&(n[l]=$a[l]);let a=Oi(n)||xi(n);if(a)return q.invalid(a);let u=t.offset(s);[i,o]=ts(n,u,t)}return new q({ts:i,zone:t,loc:r,o})}function _a(n,e,t){let r=W(t.round)?!0:t.round,s=(o,a)=>(o=an(o,r||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,a)),i=o=>t.calendary?e.hasSame(n,o)?0:e.startOf(o).diff(n.startOf(o),o).get(o):e.diff(n,o).get(o);if(t.unit)return s(i(t.unit),t.unit);for(let o of t.units){let a=i(o);if(Math.abs(a)>=1)return s(a,o)}return s(n>e?-0:0,t.units[t.units.length-1])}function Ba(n){let e={},t;return n.length>0&&typeof n[n.length-1]=="object"?(e=n[n.length-1],t=Array.from(n).slice(0,n.length-1)):t=Array.from(n),[e,t]}var q=class n{constructor(e){let t=e.zone||X.defaultZone,r=e.invalid||(Number.isNaN(e.ts)?new de("invalid input"):null)||(t.isValid?null:Xr(t));this.ts=W(e.ts)?X.now():e.ts;let s=null,i=null;if(!r)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,i]=[e.old.c,e.old.o];else{let a=t.offset(this.ts);s=Ia(this.ts,a),r=Number.isNaN(s.year)?new de("invalid input"):null,s=r?null:s,i=r?null:a}this._zone=t,this.loc=e.loc||ne.create(),this.invalid=r,this.weekData=null,this.c=s,this.o=i,this.isLuxonDateTime=!0}static now(){return new n({})}static local(){let[e,t]=Ba(arguments),[r,s,i,o,a,u,l]=t;return Ma({year:r,month:s,day:i,hour:o,minute:a,second:u,millisecond:l},e)}static utc(){let[e,t]=Ba(arguments),[r,s,i,o,a,u,l]=t;return e.zone=he.utcInstance,Ma({year:r,month:s,day:i,hour:o,minute:a,second:u,millisecond:l},e)}static fromJSDate(e,t={}){let r=Po(e)?e.valueOf():NaN;if(Number.isNaN(r))return n.invalid("invalid input");let s=Ve(t.zone,X.defaultZone);return s.isValid?new n({ts:r,zone:s,loc:ne.fromObject(t)}):n.invalid(Xr(s))}static fromMillis(e,t={}){if(tt(e))return e<-xa||e>xa?n.invalid("Timestamp out of range"):new n({ts:e,zone:Ve(t.zone,X.defaultZone),loc:ne.fromObject(t)});throw new fe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(tt(e))return new n({ts:e*1e3,zone:Ve(t.zone,X.defaultZone),loc:ne.fromObject(t)});throw new fe("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let r=Ve(t.zone,X.defaultZone);if(!r.isValid)return n.invalid(Xr(r));let s=X.now(),i=W(t.specificOffset)?r.offset(s):t.specificOffset,o=cn(e,Aa),a=!W(o.ordinal),u=!W(o.year),l=!W(o.month)||!W(o.day),f=u||l,d=o.weekYear||o.weekNumber,p=ne.fromObject(t);if((f||a)&&d)throw new mt("Can\'t mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new mt("Can\'t mix ordinal dates with month/day");let h=d||o.weekday&&!f,b,g,D=Ia(s,i);h?(b=qc,g=Rc,D=Zr(D)):a?(b=Vc,g=jc,D=Qr(D)):(b=Ra,g=$a);let T=!1;for(let C of b){let V=o[C];W(V)?T?o[C]=g[C]:o[C]=D[C]:T=!0}let I=h?va(o):a?Oa(o):Oi(o),N=I||xi(o);if(N)return n.invalid(N);let y=h?Ci(o):a?vi(o):o,[w,v]=ts(y,i,r),O=new n({ts:w,zone:r,o:v,loc:p});return o.weekday&&f&&e.weekday!==O.weekday?n.invalid("mismatched weekday",`you can\'t specify both a weekday of ${o.weekday} and a date of ${O.toISO()}`):O}static fromISO(e,t={}){let[r,s]=ia(e);return hr(r,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[r,s]=oa(e);return hr(r,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[r,s]=aa(e);return hr(r,s,t,"HTTP",t)}static fromFormat(e,t,r={}){if(W(e)||W(t))throw new fe("fromFormat requires an input string and a format");let{locale:s=null,numberingSystem:i=null}=r,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0}),[a,u,l,f]=Ea(o,e,t);return f?n.invalid(f):hr(a,u,r,`format ${t}`,e,l)}static fromString(e,t,r={}){return n.fromFormat(e,t,r)}static fromSQL(e,t={}){let[r,s]=ca(e);return hr(r,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new fe("need to specify a reason the DateTime is invalid");let r=e instanceof de?e:new de(e,t);if(X.throwOnInvalid)throw new Ur(r);return new n({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Li(this).weekYear:NaN}get weekNumber(){return this.isValid?Li(this).weekNumber:NaN}get weekday(){return this.isValid?Li(this).weekday:NaN}get ordinal(){return this.isValid?Qr(this.c).ordinal:NaN}get monthShort(){return this.isValid?gt.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?gt.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?gt.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?gt.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return jt(this.year)}get daysInMonth(){return un(this.year,this.month)}get daysInYear(){return this.isValid?qt(this.year):NaN}get weeksInWeekYear(){return this.isValid?ln(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:r,calendar:s}=we.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:r,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(he.instance(e),t)}toLocal(){return this.setZone(X.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:r=!1}={}){if(e=Ve(e,X.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||r){let i=e.offset(this.ts),o=this.toObject();[s]=ts(o,i,e)}return dr(this,{ts:s,zone:e})}else return n.invalid(Xr(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:r}={}){let s=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:r});return dr(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=cn(e,Aa),r=!W(t.weekYear)||!W(t.weekNumber)||!W(t.weekday),s=!W(t.ordinal),i=!W(t.year),o=!W(t.month)||!W(t.day),a=i||o,u=t.weekYear||t.weekNumber;if((a||s)&&u)throw new mt("Can\'t mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&s)throw new mt("Can\'t mix ordinal dates with month/day");let l;r?l=Ci(R(R({},Zr(this.c)),t)):W(t.ordinal)?(l=R(R({},this.toObject()),t),W(t.day)&&(l.day=Math.min(un(l.year,l.month),l.day))):l=vi(R(R({},Qr(this.c)),t));let[f,d]=ts(l,this.o,this.zone);return dr(this,{ts:f,o:d})}plus(e){if(!this.isValid)return this;let t=B.fromDurationLike(e);return dr(this,La(this,t))}minus(e){if(!this.isValid)return this;let t=B.fromDurationLike(e).negate();return dr(this,La(this,t))}startOf(e){if(!this.isValid)return this;let t={},r=B.normalizeUnit(e);switch(r){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break;case"milliseconds":break}if(r==="weeks"&&(t.weekday=1),r==="quarters"){let s=Math.ceil(this.month/3);t.month=(s-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?we.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Ii}toLocaleString(e=on,t={}){return this.isValid?we.create(this.loc.clone(t),e).formatDateTime(this):Ii}toLocaleParts(e={}){return this.isValid?we.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:r=!1,includeOffset:s=!0,extendedZone:i=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Ni(this,o);return a+="T",a+=Na(this,o,t,r,s,i),a}toISODate({format:e="extended"}={}){return this.isValid?Ni(this,e==="extended"):null}toISOWeekDate(){return es(this,"kkkk-\'W\'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:r=!0,includePrefix:s=!1,extendedZone:i=!1,format:o="extended"}={}){return this.isValid?(s?"T":"")+Na(this,o==="extended",t,e,r,i):null}toRFC2822(){return es(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return es(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss \'GMT\'")}toSQLDate(){return this.isValid?Ni(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:r=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(r&&(s+=" "),t?s+="z":e&&(s+="ZZ")),es(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ii}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t=R({},this.c);return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",r={}){if(!this.isValid||!e.isValid)return B.invalid("created by diffing an invalid DateTime");let s=R({locale:this.locale,numberingSystem:this.numberingSystem},r),i=$o(t).map(B.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,l=pa(a,u,i,s);return o?l.negate():l}diffNow(e="milliseconds",t={}){return this.diff(n.now(),e,t)}until(e){return this.isValid?yt.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;let r=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t)<=r&&r<=s.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||n.fromObject({},{zone:this.zone}),r=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(n.isDateTime))throw new fe("max requires all arguments be DateTimes");return Xs(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,r={}){let{locale:s=null,numberingSystem:i=null}=r,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0});return ki(o,e,t)}static fromStringExplain(e,t,r={}){return n.fromFormatExplain(e,t,r)}static get DATE_SHORT(){return on}static get DATE_MED(){return $n}static get DATE_MED_WITH_WEEKDAY(){return Gs}static get DATE_FULL(){return Rn}static get DATE_HUGE(){return jn}static get TIME_SIMPLE(){return qn}static get TIME_WITH_SECONDS(){return Vn}static get TIME_WITH_SHORT_OFFSET(){return Un}static get TIME_WITH_LONG_OFFSET(){return Kn}static get TIME_24_SIMPLE(){return Wn}static get TIME_24_WITH_SECONDS(){return Hn}static get TIME_24_WITH_SHORT_OFFSET(){return Jn}static get TIME_24_WITH_LONG_OFFSET(){return zn}static get DATETIME_SHORT(){return Yn}static get DATETIME_SHORT_WITH_SECONDS(){return Gn}static get DATETIME_MED(){return Zn}static get DATETIME_MED_WITH_SECONDS(){return Qn}static get DATETIME_MED_WITH_WEEKDAY(){return Zs}static get DATETIME_FULL(){return Xn}static get DATETIME_FULL_WITH_SECONDS(){return er}static get DATETIME_HUGE(){return tr}static get DATETIME_HUGE_WITH_SECONDS(){return nr}};function bn(n){if(q.isDateTime(n))return n;if(n&&n.valueOf&&tt(n.valueOf()))return q.fromJSDate(n);if(n&&typeof n=="object")return q.fromObject(n);throw new fe(`Unknown datetime argument: ${n}, of type ${typeof n}`)}var bt=Vr(ns());var Fn=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Mi(n){return n==null?n:n.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds").normalize()}function ja(n,e,t,r){return n.second==0&&n.minute==0&&n.hour==0?n.toLocal().toFormat(e,{locale:r}):n.toLocal().toFormat(t,{locale:r})}function qa(n){n=Mi(n);let e="";return n.years&&(e+=`${n.years} years, `),n.months&&(e+=`${n.months} months, `),n.weeks&&(e+=`${n.weeks} weeks, `),n.days&&(e+=`${n.days} days, `),n.hours&&(e+=`${n.hours} hours, `),n.minutes&&(e+=`${n.minutes} minutes, `),n.seconds&&(e+=`${Math.round(n.seconds)} seconds, `),n.milliseconds&&(e+=`${Math.round(n.milliseconds)} ms, `),e.endsWith(", ")&&(e=e.substring(0,e.length-2)),e}function En(n){return n.includes("/")&&(n=n.substring(n.lastIndexOf("/")+1)),n.endsWith(".md")&&(n=n.substring(0,n.length-3)),n}function Va(n){return n.includes(".")?n.substring(n.lastIndexOf(".")+1):""}var Uc=bt.alt(bt.regex(new RegExp(Fn(),"")),bt.regex(/[0-9\\p{Letter}_-]+/u),bt.whitespace.map(n=>" "),bt.any.map(n=>" ")).many().map(n=>n.join("").split(/\\s+/).join(" ").trim());function Ua(n){return Uc.tryParse(n)}var xe=class n{static file(e,t=!1,r){return new n({path:e,embed:t,display:r,subpath:void 0,type:"file"})}static infer(e,t=!1,r){if(e.includes("#^")){let s=e.split("#^");return n.block(s[0],s[1],t,r)}else if(e.includes("#")){let s=e.split("#");return n.header(s[0],s[1],t,r)}else return n.file(e,t,r)}static header(e,t,r,s){return new n({path:e,embed:r,display:s,subpath:Ua(t),type:"header"})}static block(e,t,r,s){return new n({path:e,embed:r,display:s,subpath:t,type:"block"})}static fromObject(e){return new n(e)}static parseInner(e){let[t,r]=Kc(e);return n.infer(t,!1,r)}constructor(e){Object.assign(this,e)}withPath(e){return new n(Object.assign({},this,{path:e}))}withDisplay(e){return new n(Object.assign({},this,{display:e}))}withEmbed(e){return this.embed==e?this:new n(Object.assign({},this,{embed:e}))}withHeader(e){return n.header(this.path,e,this.embed,this.display)}withBlock(e){return n.block(this.path,e,this.embed,this.display)}equals(e){return e==null||e==null?!1:this.path==e.path&&this.type==e.type&&this.subpath==e.subpath}toString(){return this.markdown()}toObject(){return{path:this.path,type:this.type,subpath:this.subpath,display:this.display,embed:this.embed}}toFile(){return n.file(this.path,this.embed,this.display)}toEmbed(){return this.withEmbed(!0)}fromEmbed(){return this.withEmbed(!1)}markdown(){let e=(this.embed?"!":"")+"[["+this.obsidianLink();return e+="|",e+=this.displayOrDefault(),e+="]]",e}displayOrDefault(){if(this.display)return this.display;{let e=En(this.path);return(this.type=="header"||this.type=="block")&&(e+=" > "+this.subpath),e}}obsidianLink(){var t,r;let e=this.path.replace("|","\\\\|");return this.type=="header"?e+"#"+((t=this.subpath)==null?void 0:t.replace("|","\\\\|")):this.type=="block"?e+"#^"+((r=this.subpath)==null?void 0:r.replace("|","\\\\|")):e}fileName(){return En(this.path)}};function Kc(n){let e=-1;for(;(e=n.indexOf("|",e+1))>=0;)if(!(e>0&&n[e-1]=="\\\\"))return[n.substring(0,e).replace(/\\\\\\|/g,"|"),n.substring(e+1)];return[n.replace(/\\\\\\|/g,"|"),void 0]}var rs=Symbol.for("yaml.alias"),ss=Symbol.for("yaml.document"),Ke=Symbol.for("yaml.map"),_i=Symbol.for("yaml.pair"),Ie=Symbol.for("yaml.scalar"),Ft=Symbol.for("yaml.seq"),Te=Symbol.for("yaml.node.type"),We=n=>!!n&&typeof n=="object"&&n[Te]===rs,rt=n=>!!n&&typeof n=="object"&&n[Te]===ss,He=n=>!!n&&typeof n=="object"&&n[Te]===Ke,H=n=>!!n&&typeof n=="object"&&n[Te]===_i,K=n=>!!n&&typeof n=="object"&&n[Te]===Ie,Je=n=>!!n&&typeof n=="object"&&n[Te]===Ft;function Z(n){if(n&&typeof n=="object")switch(n[Te]){case Ke:case Ft:return!0}return!1}function J(n){if(n&&typeof n=="object")switch(n[Te]){case rs:case Ke:case Ie:case Ft:return!0}return!1}var Ka=n=>(K(n)||Z(n))&&!!n.anchor;var Ce=Symbol("break visit"),Wa=Symbol("skip children"),st=Symbol("remove node");function ze(n,e){let t=Ha(e);rt(n)?wn(null,n.contents,t,Object.freeze([n]))===st&&(n.contents=null):wn(null,n,t,Object.freeze([]))}ze.BREAK=Ce;ze.SKIP=Wa;ze.REMOVE=st;function wn(n,e,t,r){let s=Ja(n,e,t,r);if(J(s)||H(s))return za(n,r,s),wn(n,s,t,r);if(typeof s!="symbol"){if(Z(e)){r=Object.freeze(r.concat(e));for(let i=0;in.replace(/[!,[\\]{}]/g,e=>Wc[e]),it=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \\t]+/),s=r.shift();switch(s){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[i,o]=r;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=r;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\\d+\\.\\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren\'t resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,r,s]=e.match(new RegExp("^(.*!)([^!]*)$","s"));s||t(`The ${e} tag has no suffix`);let i=this.tags[r];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+Hc(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),s;if(e&&r.length>0&&J(e.contents)){let i={};ze(e.contents,(o,a)=>{J(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of r)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`\n`)}};it.defaultYaml={explicit:!1,version:"1.2"};it.defaultTags={"!!":"tag:yaml.org,2002:"};function os(n){if(/[\\x00-\\x19\\s,[\\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function Bi(n){let e=new Set;return ze(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function Pi(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Ya(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s||(s=Bi(n));let o=Pi(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(K(o.node)||Z(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:r}}function Ot(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let s=0,i=r.length;sce(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Ka(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=i=>{r.res=i,delete t.onCreate};let s=n.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof n=="bigint"&&!(t!=null&&t.keep)?Number(n):n}var xt=class{constructor(e){Object.defineProperty(this,Te,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:r,onAnchor:s,reviver:i}={}){if(!rt(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=ce(this,"",o);if(typeof s=="function")for(let{count:u,res:l}of o.anchors.values())s(l,u);return typeof i=="function"?Ot(i,{"":a},"",a):a}};var Et=class extends xt{constructor(e){super(rs),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return ze(e,{Node:(r,s)=>{if(s===this)return ze.BREAK;s.anchor===this.source&&(t=s)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:s,maxAliasCount:i}=t,o=this.resolve(s);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=r.get(o);if(a||(ce(o,null,t),a=r.get(o)),!a||a.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=as(s,o,r)),a.count*a.aliasCount>i)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(e,t,r){let s=`*${this.source}`;if(e){if(os(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function as(n,e,t){if(We(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(Z(e)){let r=0;for(let s of e.items){let i=as(n,s,t);i>r&&(r=i)}return r}else if(H(e)){let r=as(n,e.key,t),s=as(n,e.value,t);return Math.max(r,s)}return 1}var us=n=>!n||typeof n!="function"&&typeof n!="object",P=class extends xt{constructor(e){super(Ie),this.value=e}toJSON(e,t){return t!=null&&t.keep?this.value:ce(this.value,e,t)}toString(){return String(this.value)}};P.BLOCK_FOLDED="BLOCK_FOLDED";P.BLOCK_LITERAL="BLOCK_LITERAL";P.PLAIN="PLAIN";P.QUOTE_DOUBLE="QUOTE_DOUBLE";P.QUOTE_SINGLE="QUOTE_SINGLE";var Jc="tag:yaml.org,2002:";function zc(n,e,t){var r;if(e){let s=t.filter(o=>o.tag===e),i=(r=s.find(o=>!o.format))!=null?r:s[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(s=>{var i;return((i=s.identify)==null?void 0:i.call(s,n))&&!s.format})}function wt(n,e,t){var d,p,h;if(rt(n)&&(n=n.contents),J(n))return n;if(H(n)){let b=(p=(d=t.schema[Ke]).createNode)==null?void 0:p.call(d,t.schema,null,t);return b.items.push(n),b}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt!="undefined"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,u;if(r&&n&&typeof n=="object"){if(u=a.get(n),u)return u.anchor||(u.anchor=s(n)),new Et(u.anchor);u={anchor:null,node:null},a.set(n,u)}e!=null&&e.startsWith("!!")&&(e=Jc+e.slice(2));let l=zc(n,e,o.tags);if(!l){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let b=new P(n);return u&&(u.node=b),b}l=n instanceof Map?o[Ke]:Symbol.iterator in Object(n)?o[Ft]:o[Ke]}i&&(i(l),delete t.onTagObj);let f=l!=null&&l.createNode?l.createNode(t.schema,n,t):typeof((h=l==null?void 0:l.nodeClass)==null?void 0:h.from)=="function"?l.nodeClass.from(t.schema,n,t):new P(n);return e?f.tag=e:l.default||(f.tag=l.tag),u&&(u.node=f),f}function mr(n,e,t){let r=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=r,r=o}else r=new Map([[i,r]])}return wt(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var kn=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Sn=class extends xt{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(r=>J(r)||H(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(kn(e))this.add(t);else{let[r,...s]=e,i=this.get(r,!0);if(Z(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(r,mr(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let s=this.get(t,!0);if(Z(s))return s.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...s]=e,i=this.get(r,!0);return s.length===0?!t&&K(i)?i.value:i:Z(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!H(t))return!1;let r=t.value;return r==null||e&&K(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let s=this.get(t,!0);return Z(s)?s.hasIn(r):!1}setIn(e,t){let[r,...s]=e;if(s.length===0)this.set(r,t);else{let i=this.get(r,!0);if(Z(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(r,mr(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};var Ga=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Pe(n,e){return/^\\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var ot=(n,e,t)=>n.endsWith(`\n`)?Pe(t,e):t.includes(`\n`)?`\n`+Pe(t,e):(n.endsWith(" ")?"":" ")+t;var $i="flow",ls="block",Dr="quoted";function yr(n,e,t="flow",{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;ss-Math.max(2,i)?l.push(0):d=s-r);let p,h,b=!1,g=-1,D=-1,T=-1;t===ls&&(g=Za(n,g,e.length),g!==-1&&(d=g+u));for(let N;N=n[g+=1];){if(t===Dr&&N==="\\\\"){switch(D=g,n[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}T=g}if(N===`\n`)t===ls&&(g=Za(n,g,e.length)),d=g+e.length+u,p=void 0;else{if(N===" "&&h&&h!==" "&&h!==`\n`&&h!==" "){let y=n[g+1];y&&y!==" "&&y!==`\n`&&y!==" "&&(p=g)}if(g>=d)if(p)l.push(p),d=p+u,p=void 0;else if(t===Dr){for(;h===" "||h===" ";)h=N,N=n[g+=1],b=!0;let y=g>T+1?g-2:D-1;if(f[y])return n;l.push(y),f[y]=!0,d=y+u,p=void 0}else b=!0}h=N}if(b&&a&&a(),l.length===0)return n;o&&o();let I=n.slice(0,l[0]);for(let N=0;N({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),ds=n=>/^(%|---|\\.\\.\\.)/m.test(n);function Yc(n,e,t){if(!e||e<0)return!1;let r=e-t,s=n.length;if(s<=r)return!1;for(let i=0,o=0;ir)return!0;if(o=i+1,s-o<=r)return!1}return!0}function gr(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(ds(n)?" ":""),o="",a=0;for(let u=0,l=t[u];l;l=t[++u])if(l===" "&&t[u+1]==="\\\\"&&t[u+2]==="n"&&(o+=t.slice(a,u)+"\\\\ ",u+=1,a=u,l="\\\\"),l==="\\\\")switch(t[u+1]){case"u":{o+=t.slice(a,u);let f=t.substr(u+2,4);switch(f){case"0000":o+="\\\\0";break;case"0007":o+="\\\\a";break;case"000b":o+="\\\\v";break;case"001b":o+="\\\\e";break;case"0085":o+="\\\\N";break;case"00a0":o+="\\\\_";break;case"2028":o+="\\\\L";break;case"2029":o+="\\\\P";break;default:f.substr(0,2)==="00"?o+="\\\\x"+f.substr(2):o+=t.substr(u,6)}u+=5,a=u+1}break;case"n":if(r||t[u+2]===\'"\'||t.length\n`;let d,p;for(p=t.length;p>0;--p){let v=t[p-1];if(v!==`\n`&&v!==" "&&v!==" ")break}let h=t.substring(p),b=h.indexOf(`\n`);b===-1?d="-":t===h||b!==h.length-1?(d="+",i&&i()):d="",h&&(t=t.slice(0,-h.length),h[h.length-1]===`\n`&&(h=h.slice(0,-1)),h=h.replace(ji,`$&${l}`));let g=!1,D,T=-1;for(D=0;D")+(g?l?"2":"1":"")+d;if(n&&(y+=" "+a(n.replace(/ ?[\\r\\n]+/g," ")),s&&s()),f)return t=t.replace(/\\n+/g,`$&${l}`),`${y}\n${l}${I}${t}${h}`;t=t.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,"$1$2").replace(/\\n+/g,`$&${l}`);let w=yr(`${I}${t}${h}`,l,ls,fs(r,!0));return`${y}\n${l}${w}`}function Gc(n,e,t,r){let{type:s,value:i}=n,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:f}=e;if(a&&i.includes(`\n`)||f&&/[[\\]{},]/.test(i))return Cn(i,e);if(!i||/^[\\n\\t ,[\\]{}#&*!|>\'"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(i))return a||f||!i.includes(`\n`)?Cn(i,e):cs(n,e,t,r);if(!a&&!f&&s!==P.PLAIN&&i.includes(`\n`))return cs(n,e,t,r);if(ds(i)){if(u==="")return e.forceBlockIndent=!0,cs(n,e,t,r);if(a&&u===l)return Cn(i,e)}let d=i.replace(/\\n+/g,`$&\n${u}`);if(o){let p=g=>{var D;return g.default&&g.tag!=="tag:yaml.org,2002:str"&&((D=g.test)==null?void 0:D.test(d))},{compat:h,tags:b}=e.doc.schema;if(b.some(p)||h!=null&&h.some(p))return Cn(i,e)}return a?d:yr(d,u,$i,fs(e,!1))}function Wt(n,e,t,r){let{implicitKey:s,inFlow:i}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==P.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(o.value)&&(a=P.QUOTE_DOUBLE);let u=f=>{switch(f){case P.BLOCK_FOLDED:case P.BLOCK_LITERAL:return s||i?Cn(o.value,e):cs(o,e,t,r);case P.QUOTE_DOUBLE:return gr(o.value,e);case P.QUOTE_SINGLE:return Ri(o.value,e);case P.PLAIN:return Gc(o,e,t,r);default:return null}},l=u(a);if(l===null){let{defaultKeyType:f,defaultStringType:d}=e.options,p=s&&f||d;if(l=u(p),l===null)throw new Error(`Unsupported default string type ${p}`)}return l}function hs(n,e){let t=Object.assign({blockQuote:!0,commentString:Ga,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function Zc(n,e){var s,i,o,a;if(e.tag){let u=n.filter(l=>l.tag===e.tag);if(u.length>0)return(s=u.find(l=>l.format===e.format))!=null?s:u[0]}let t,r;if(K(e)){r=e.value;let u=n.filter(l=>{var f;return(f=l.identify)==null?void 0:f.call(l,r)});if(u.length>1){let l=u.filter(f=>f.test);l.length>0&&(u=l)}t=(i=u.find(l=>l.format===e.format))!=null?i:u.find(l=>!l.format)}else r=e,t=n.find(u=>u.nodeClass&&r instanceof u.nodeClass);if(!t){let u=(a=(o=r==null?void 0:r.constructor)==null?void 0:o.name)!=null?a:typeof r;throw new Error(`Tag not resolved for ${u} value`)}return t}function Qc(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(K(n)||Z(n))&&n.anchor;i&&os(i)&&(t.add(i),s.push(`&${i}`));let o=n.tag?n.tag:e.default?null:e.tag;return o&&s.push(r.directives.tagString(o)),s.join(" ")}function Tt(n,e,t,r){var u,l;if(H(n))return n.toString(e,t,r);if(We(n)){if(e.doc.directives)return n.toString(e);if((u=e.resolvedAliases)!=null&&u.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let s,i=J(n)?n:e.doc.createNode(n,{onTagObj:f=>s=f});s||(s=Zc(e.doc.schema.tags,i));let o=Qc(i,s,e);o.length>0&&(e.indentAtStart=((l=e.indentAtStart)!=null?l:0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,r):K(i)?Wt(i,e,t,r):i.toString(e,t,r);return o?K(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}\n${e.indent}${a}`:a}function Qa({key:n,value:e},t,r,s){var O,C;let{allNullValues:i,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:f,simpleKeys:d}}=t,p=J(n)&&n.comment||null;if(d){if(p)throw new Error("With simple keys, key nodes cannot have comments");if(Z(n)||!J(n)&&typeof n=="object"){let V="With simple keys, collection cannot be used as a key value";throw new Error(V)}}let h=!d&&(!n||p&&e==null&&!t.inFlow||Z(n)||(K(n)?n.type===P.BLOCK_FOLDED||n.type===P.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(d||!i),indent:a+u});let b=!1,g=!1,D=Tt(n,t,()=>b=!0,()=>g=!0);if(!h&&!t.inFlow&&D.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(i||e==null)return b&&r&&r(),D===""?"?":h?`? ${D}`:D}else if(i&&!d||e==null&&h)return D=`? ${D}`,p&&!b?D+=ot(D,t.indent,l(p)):g&&s&&s(),D;b&&(p=null),h?(p&&(D+=ot(D,t.indent,l(p))),D=`? ${D}\n${a}:`):(D=`${D}:`,p&&(D+=ot(D,t.indent,l(p))));let T,I,N;J(e)?(T=!!e.spaceBefore,I=e.commentBefore,N=e.comment):(T=!1,I=null,N=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!p&&K(e)&&(t.indentAtStart=D.length+1),g=!1,!f&&u.length>=2&&!t.inFlow&&!h&&Je(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let y=!1,w=Tt(e,t,()=>y=!0,()=>g=!0),v=" ";if(p||T||I){if(v=T?`\n`:"",I){let V=l(I);v+=`\n${Pe(V,t.indent)}`}w===""&&!t.inFlow?v===`\n`&&(v=`\n\n`):v+=`\n${t.indent}`}else if(!h&&Z(e)){let V=w[0],j=w.indexOf(`\n`),Y=j!==-1,ee=(C=(O=t.inFlow)!=null?O:e.flow)!=null?C:e.items.length===0;if(Y||!ee){let ae=!1;if(Y&&(V==="&"||V==="!")){let x=w.indexOf(" ");V==="&"&&x!==-1&&xn===ms||typeof n=="symbol"&&n.description===ms,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new P(Symbol(ms)),{addToJSMap:Vi}),stringify:()=>ms},Xa=(n,e)=>(Ye.identify(e)||K(e)&&(!e.type||e.type===P.PLAIN)&&Ye.identify(e.value))&&(n==null?void 0:n.doc.schema.tags.some(t=>t.tag===Ye.tag&&t.default));function Vi(n,e,t){if(t=n&&We(t)?t.resolve(n.doc):t,Je(t))for(let r of t.items)qi(n,e,r);else if(Array.isArray(t))for(let r of t)qi(n,e,r);else qi(n,e,t)}function qi(n,e,t){let r=n&&We(t)?t.resolve(n.doc):t;if(!He(r))throw new Error("Merge sources must be maps or map aliases");let s=r.toJSON(null,n,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function Ds(n,e,{key:t,value:r}){if(J(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(Xa(n,t))Vi(n,e,r);else{let s=ce(t,"",n);if(e instanceof Map)e.set(s,ce(r,s,n));else if(e instanceof Set)e.add(s);else{let i=Xc(t,s,n),o=ce(r,i,n);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function Xc(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(J(n)&&(t!=null&&t.doc)){let r=hs(t.doc,{});r.anchors=new Set;for(let i of t.anchors.keys())r.anchors.add(i.anchor);r.inFlow=!0,r.inStringifyKey=!0;let s=n.toString(r);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+\'..."\'),ps(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}function vn(n,e,t){let r=wt(n,void 0,t),s=wt(e,void 0,t);return new ie(r,s)}var ie=class n{constructor(e,t=null){Object.defineProperty(this,Te,{value:_i}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return J(t)&&(t=t.clone(e)),J(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t!=null&&t.mapAsMap?new Map:{};return Ds(t,r,this)}toString(e,t,r){return e!=null&&e.doc?Qa(this,e,t,r):JSON.stringify(this)}};function gs(n,e,t){var i;return(((i=e.inFlow)!=null?i:n.flow)?tf:ef)(n,e,t)}function ef({comment:n,items:e},t,{blockItemPrefix:r,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),d=!1,p=[];for(let b=0;bD=null,()=>d=!0);D&&(T+=ot(T,i,l(D))),d&&D&&(d=!1),p.push(r+T)}let h;if(p.length===0)h=s.start+s.end;else{h=p[0];for(let b=1;bD=null);bf||T.includes(`\n`))&&(l=!0),d.push(T),f=d.length}let{start:p,end:h}=t;if(d.length===0)return p+h;if(!l){let b=d.reduce((g,D)=>g+D.length+2,2);l=e.options.lineWidth>0&&b>e.options.lineWidth}if(l){let b=p;for(let g of d)b+=g?`\n${i}${s}${g}`:`\n`;return`${b}\n${s}${h}`}else return`${p}${o}${d.join(" ")}${o}${h}`}function ys({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\\n+/,"")),r){let i=Pe(e(r),n);t.push(i.trimStart())}}function It(n,e){let t=K(e)?e.value:e;for(let r of n)if(H(r)&&(r.key===e||r.key===t||K(r.key)&&r.key.value===t))return r}var oe=class extends Sn{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Ke,e),this.items=[]}static from(e,t,r){let{keepUndefined:s,replacer:i}=r,o=new this(e),a=(u,l)=>{if(typeof i=="function")l=i.call(t,u,l);else if(Array.isArray(i)&&!i.includes(u))return;(l!==void 0||s)&&o.items.push(vn(u,l,r))};if(t instanceof Map)for(let[u,l]of t)a(u,l);else if(t&&typeof t=="object")for(let u of Object.keys(t))a(u,t[u]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){var o;let r;H(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new ie(e,e==null?void 0:e.value):r=new ie(e.key,e.value);let s=It(this.items,r.key),i=(o=this.schema)==null?void 0:o.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);K(s.value)&&us(r.value)?s.value.value=r.value:s.value=r.value}else if(i){let a=this.items.findIndex(u=>i(r,u)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(e){let t=It(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){var i;let r=It(this.items,e),s=r==null?void 0:r.value;return(i=!t&&K(s)?s.value:s)!=null?i:void 0}has(e){return!!It(this.items,e)}set(e,t){this.add(new ie(e,t),!0)}toJSON(e,t,r){let s=r?new r:t!=null&&t.mapAsMap?new Map:{};t!=null&&t.onCreate&&t.onCreate(s);for(let i of this.items)Ds(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!H(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),gs(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};var Ge={collection:"map",default:!0,nodeClass:oe,tag:"tag:yaml.org,2002:map",resolve(n,e){return He(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>oe.from(n,e,t)};var be=class extends Sn{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Ft,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=bs(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=bs(e);if(typeof r!="number")return;let s=this.items[r];return!t&&K(s)?s.value:s}has(e){let t=bs(e);return typeof t=="number"&&t=0?e:null}var Ze={collection:"seq",default:!0,nodeClass:be,tag:"tag:yaml.org,2002:seq",resolve(n,e){return Je(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>be.from(n,e,t)};var Lt={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),Wt(n,e,t,r)}};var Ht={identify:n=>n==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new P(null),stringify:({source:n},e)=>typeof n=="string"&&Ht.test.test(n)?n:e.options.nullStr};var br={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new P(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&br.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};function Fe({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let s=typeof r=="number"?r:Number(r);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=JSON.stringify(r);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}var Fs={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},Es={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Fe(n)}},ws={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,resolve(n){let e=new P(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:Fe};var Ts=n=>typeof n=="bigint"||Number.isInteger(n),Ui=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function eu(n,e,t){let{value:r}=n;return Ts(r)&&r>=0?t+r.toString(e):Fe(n)}var Ss={identify:n=>Ts(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>Ui(n,2,8,t),stringify:n=>eu(n,8,"0o")},ks={identify:Ts,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>Ui(n,0,10,t),stringify:Fe},Cs={identify:n=>Ts(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>Ui(n,2,16,t),stringify:n=>eu(n,16,"0x")};var tu=[Ge,Ze,Lt,Ht,br,Ss,ks,Cs,Fs,Es,ws];function nu(n){return typeof n=="bigint"||Number.isInteger(n)}var vs=({value:n})=>JSON.stringify(n),nf=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:vs},{identify:n=>n==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:vs},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:n=>n==="true",stringify:vs},{identify:nu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>nu(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:vs}],rf={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},ru=[Ge,Ze].concat(nf,rf);var Fr={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Buffer=="function")return Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\\n\\r]/g,"")),r=new Uint8Array(t.length);for(let s=0;s1&&e("Each pair must have its own sequence indicator");let i=s.items[0]||new ie(new P(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}\n${i.key.commentBefore}`:s.commentBefore),s.comment){let o=(t=i.value)!=null?t:i.key;o.comment=o.comment?`${s.comment}\n${o.comment}`:s.comment}s=i}n.items[r]=H(s)?s:new ie(s)}}else e("Expected a sequence for this tag");return n}function Wi(n,e,t){let{replacer:r}=t,s=new be(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(vn(a,u,t))}return s}var Er={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ki,createNode:Wi};var On=class n extends be{constructor(){super(),this.add=oe.prototype.add.bind(this),this.delete=oe.prototype.delete.bind(this),this.get=oe.prototype.get.bind(this),this.has=oe.prototype.has.bind(this),this.set=oe.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t!=null&&t.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(H(s)?(i=ce(s.key,"",t),o=ce(s.value,i,t)):i=ce(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Wi(e,t,r),i=new this;return i.items=s.items,i}};On.tag="tag:yaml.org,2002:omap";var wr={collection:"seq",identify:n=>n instanceof Map,nodeClass:On,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ki(n,e),r=[];for(let{key:s}of t.items)K(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new On,t)},createNode:(n,e,t)=>On.from(n,e,t)};function su({value:n,source:e},t){return e&&(n?Hi:Ji).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Hi={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new P(!0),stringify:su},Ji={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new P(!1),stringify:su};var iu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fe},ou={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Fe(n)}},au={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,resolve(n){let e=new P(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:Fe};var Tr=n=>typeof n=="bigint"||Number.isInteger(n);function Os(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function zi(n,e,t){let{value:r}=n;if(Tr(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Fe(n)}var uu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>Os(n,2,2,t),stringify:n=>zi(n,2,"0b")},lu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>Os(n,1,8,t),stringify:n=>zi(n,8,"0")},cu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>Os(n,0,10,t),stringify:Fe},fu={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>Os(n,2,16,t),stringify:n=>zi(n,16,"0x")};var xn=class n extends oe{constructor(e){super(e),this.tag=n.tag}add(e){let t;H(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ie(e.key,null):t=new ie(e,null),It(this.items,t.key)||this.items.push(t)}get(e,t){let r=It(this.items,e);return!t&&H(r)?K(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let r=It(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new ie(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(vn(o,null,r));return i}};xn.tag="tag:yaml.org,2002:set";var Sr={collection:"map",identify:n=>n instanceof Set,nodeClass:xn,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>xn.from(n,e,t),resolve(n,e){if(He(n)){if(n.hasAllNullValues(!0))return Object.assign(new xn,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};function Yi(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function du(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Fe(n);let r="";e<0&&(r="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\\d*$/,"")}var xs={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Yi(n,t),stringify:du},Is={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,resolve:n=>Yi(n,!1),stringify:du},In={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let e=n.match(In.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),u=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,r-1,s,i||0,o||0,a||0,u),f=e[8];if(f&&f!=="Z"){let d=Yi(f,!1);Math.abs(d)<30&&(d*=60),l-=6e4*d}return new Date(l)},stringify:({value:n})=>n.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,"")};var Gi=[Ge,Ze,Lt,Ht,Hi,Ji,uu,lu,cu,fu,iu,ou,au,Fr,Ye,wr,Er,Sr,xs,Is,In];var hu=new Map([["core",tu],["failsafe",[Ge,Ze,Lt]],["json",ru],["yaml11",Gi],["yaml-1.1",Gi]]),pu={binary:Fr,bool:br,float:ws,floatExp:Es,floatNaN:Fs,floatTime:Is,int:ks,intHex:Cs,intOct:Ss,intTime:xs,map:Ge,merge:Ye,null:Ht,omap:wr,pairs:Er,seq:Ze,set:Sr,timestamp:In},mu={"tag:yaml.org,2002:binary":Fr,"tag:yaml.org,2002:merge":Ye,"tag:yaml.org,2002:omap":wr,"tag:yaml.org,2002:pairs":Er,"tag:yaml.org,2002:set":Sr,"tag:yaml.org,2002:timestamp":In};function Ls(n,e,t){let r=hu.get(e);if(r&&!n)return t&&!r.includes(Ye)?r.concat(Ye):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(hu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Ye)),s.reduce((i,o)=>{let a=typeof o=="string"?pu[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(pu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}var sf=(n,e)=>n.keye.key?1:0,kr=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ls(e,"compat"):e?Ls(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?mu:{},this.tags=Ls(t,this.name,r),this.toStringOptions=a!=null?a:null,Object.defineProperty(this,Ke,{value:Ge}),Object.defineProperty(this,Ie,{value:Lt}),Object.defineProperty(this,Ft,{value:Ze}),this.sortMapEntries=typeof o=="function"?o:o===!0?sf:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};function Du(n,e){var u;let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=hs(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pe(l,""))}let o=!1,a=null;if(n.contents){if(J(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pe(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,f=Tt(n.contents,s,()=>a=null,l);a&&(f+=ot(f,"",i(a))),(f[0]==="|"||f[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${f}`:t.push(f)}else t.push(Tt(n.contents,s));if((u=n.directives)!=null&&u.docEnd)if(n.comment){let l=i(n.comment);l.includes(`\n`)?(t.push("..."),t.push(Pe(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Pe(i(l),"")))}return t.join(`\n`)+`\n`}var Nt=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Te,{value:ss});let s=null;typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=i;let{version:o}=i;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new it({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,s,r)}clone(){let e=Object.create(n.prototype,{[Te]:{value:ss}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=J(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ln(this.contents)&&this.contents.add(e)}addIn(e,t){Ln(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=Bi(this);e.anchor=!t||r.has(t)?Pi(t||"a",r):t}return new Et(e.anchor)}createNode(e,t,r){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let D=I=>typeof I=="number"||I instanceof String||I instanceof Number,T=t.filter(D).map(String);T.length>0&&(t=t.concat(T)),s=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:f}=r!=null?r:{},{onAnchor:d,setAnchors:p,sourceObjects:h}=Ya(this,o||"a"),b={aliasDuplicateObjects:i!=null?i:!0,keepUndefined:u!=null?u:!1,onAnchor:d,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:h},g=wt(e,f,b);return a&&Z(g)&&(g.flow=!0),p(),g}createPair(e,t,r={}){let s=this.createNode(e,null,r),i=this.createNode(t,null,r);return new ie(s,i)}delete(e){return Ln(this.contents)?this.contents.delete(e):!1}deleteIn(e){return kn(e)?this.contents==null?!1:(this.contents=null,!0):Ln(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Z(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return kn(e)?!t&&K(this.contents)?this.contents.value:this.contents:Z(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Z(this.contents)?this.contents.has(e):!1}hasIn(e){return kn(e)?this.contents!==void 0:Z(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=mr(this.schema,[e],t):Ln(this.contents)&&this.contents.set(e,t)}setIn(e,t){kn(e)?this.contents=t:this.contents==null?this.contents=mr(this.schema,Array.from(e),t):Ln(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new it({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new it({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected \'1.1\', \'1.2\' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new kr(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},u=ce(this.contents,t!=null?t:"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Ot(o,{"":u},"",u):u}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Du(this,e)}};function Ln(n){if(Z(n))return!0;throw new Error("Expected a YAML collection as document contents")}var Cr=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Qe=class extends Cr{constructor(e,t,r){super("YAMLParseError",e,t,r)}},vr=class extends Cr{constructor(e,t,r){super("YAMLWarning",e,t,r)}},Zi=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:s}=t.linePos[0];t.message+=` at line ${r}, column ${s}`;let i=s-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).replace(/[\\n\\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\\u2026"),r>1&&/^ *$/.test(o.substring(0,i))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\\u2026\n`),o=a+o}if(/[^ ]/.test(o)){let a=1,u=t.linePos[1];u&&u.line===r&&u.col>s&&(a=Math.max(1,Math.min(u.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:\n\n${o}\n${l}\n`}};function at(n,{flow:e,indicator:t,next:r,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let u=!1,l=a,f=a,d="",p="",h=!1,b=!1,g=null,D=null,T=null,I=null,N=null,y=null,w=null;for(let C of n)switch(b&&(C.type!=="space"&&C.type!=="newline"&&C.type!=="comma"&&i(C.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b=!1),g&&(l&&C.type!=="comment"&&C.type!=="newline"&&i(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),C.type){case"space":!e&&(t!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&C.source.includes(" ")&&(g=C),f=!0;break;case"comment":{f||i(C,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let V=C.source.substring(1)||" ";d?d+=p+V:d=V,p="",l=!1;break}case"newline":l?d?d+=C.source:u=!0:p+=C.source,l=!0,h=!0,(D||T)&&(I=C),f=!0;break;case"anchor":D&&i(C,"MULTIPLE_ANCHORS","A node can have at most one anchor"),C.source.endsWith(":")&&i(C.offset+C.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=C,w===null&&(w=C.offset),l=!1,f=!1,b=!0;break;case"tag":{T&&i(C,"MULTIPLE_TAGS","A node can have at most one tag"),T=C,w===null&&(w=C.offset),l=!1,f=!1,b=!0;break}case t:(D||T)&&i(C,"BAD_PROP_ORDER",`Anchors and tags must be after the ${C.source} indicator`),y&&i(C,"UNEXPECTED_TOKEN",`Unexpected ${C.source} in ${e!=null?e:"collection"}`),y=C,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){N&&i(C,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),N=C,l=!1,f=!1;break}default:i(C,"UNEXPECTED_TOKEN",`Unexpected ${C.type} token`),l=!1,f=!1}let v=n[n.length-1],O=v?v.offset+v.source.length:s;return b&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&i(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&i(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:N,found:y,spaceBefore:u,comment:d,hasNewline:h,anchor:D,tag:T,newlineAfterProp:I,end:O,start:w!=null?w:O}}function At(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`\n`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(At(e.key)||At(e.value))return!0}return!1;default:return!0}}function Or(n,e,t){if((e==null?void 0:e.type)==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&At(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function Ns(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||K(i)&&K(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}var yu="All mapping items must start at the same column";function gu({composeNode:n,composeEmptyNode:e},t,r,s,i){var f,d;let o=(f=i==null?void 0:i.nodeClass)!=null?f:oe,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let u=r.offset,l=null;for(let p of r.items){let{start:h,key:b,sep:g,value:D}=p,T=at(h,{indicator:"explicit-key-ind",next:b!=null?b:g==null?void 0:g[0],offset:u,onError:s,parentIndent:r.indent,startOnNewline:!0}),I=!T.found;if(I){if(b&&(b.type==="block-seq"?s(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in b&&b.indent!==r.indent&&s(u,"BAD_INDENT",yu)),!T.anchor&&!T.tag&&!g){l=T.end,T.comment&&(a.comment?a.comment+=`\n`+T.comment:a.comment=T.comment);continue}(T.newlineAfterProp||At(b))&&s(b!=null?b:h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=T.found)==null?void 0:d.indent)!==r.indent&&s(u,"BAD_INDENT",yu);t.atKey=!0;let N=T.end,y=b?n(t,b,T,s):e(t,N,h,null,T,s);t.schema.compat&&Or(r.indent,b,s),t.atKey=!1,Ns(t,a.items,y)&&s(N,"DUPLICATE_KEY","Map keys must be unique");let w=at(g!=null?g:[],{indicator:"map-value-ind",next:D,offset:y.range[2],onError:s,parentIndent:r.indent,startOnNewline:!b||b.type==="block-scalar"});if(u=w.end,w.found){I&&((D==null?void 0:D.type)==="block-map"&&!w.hasNewline&&s(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&T.startn&&(n.type==="block-map"||n.type==="block-seq");function Fu({composeNode:n,composeEmptyNode:e},t,r,s,i){var D,T;let o=r.start.source==="{",a=o?"flow map":"flow sequence",u=(D=i==null?void 0:i.nodeClass)!=null?D:o?oe:be,l=new u(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let d=r.offset+r.start.source.length;for(let I=0;I0){let I=ut(b,g,t.options.strict,s);I.comment&&(l.comment?l.comment+=`\n`+I.comment:l.comment=I.comment),l.range=[r.offset,g,I.offset]}else l.range=[r.offset,g,g];return l}function eo(n,e,t,r,s,i){let o=t.type==="block-map"?gu(n,e,t,r,i):t.type==="block-seq"?bu(n,e,t,r,i):Fu(n,e,t,r,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Eu(n,e,t,r,s){var p,h;let i=r.tag,o=i?e.directives.tagName(i.source,b=>s(i,"TAG_RESOLVE_FAILED",b)):null;if(t.type==="block-seq"){let{anchor:b,newlineAfterProp:g}=r,D=b&&i?b.offset>i.offset?b:i:b!=null?b:i;D&&(!g||g.offsetb.tag===o&&b.collection===a);if(!u){let b=e.schema.knownTags[o];if(b&&b.collection===a)e.schema.tags.push(Object.assign({},b,{default:!1})),u=b;else return b!=null&&b.collection?s(i,"BAD_COLLECTION_TYPE",`${b.tag} used for ${a} collection, but expects ${b.collection}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),eo(n,e,t,s,o)}let l=eo(n,e,t,s,o,u),f=(h=(p=u.resolve)==null?void 0:p.call(u,l,b=>s(i,"TAG_RESOLVE_FAILED",b),e.options))!=null?h:l,d=J(f)?f:new P(f);return d.range=l.range,d.tag=o,u!=null&&u.format&&(d.format=u.format),d}function to(n,e,t){let r=e.offset,s=of(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?P.BLOCK_FOLDED:P.BLOCK_LITERAL,o=e.source?af(e.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let D=o[g][1];if(D===""||D==="\\r")a=g;else break}if(a===0){let g=s.chomp==="+"&&o.length>0?`\n`.repeat(Math.max(1,o.length-1)):"",D=r+s.length;return e.source&&(D+=e.source.length),{value:g,type:i,comment:s.comment,range:[r,D,D]}}let u=e.indent+s.indent,l=e.offset+s.length,f=0;for(let g=0;gu&&(u=D.length);else{D.length=a;--g)o[g][0].length>u&&(a=g+1);let d="",p="",h=!1;for(let g=0;gu||T[0]===" "?(p===" "?p=`\n`:!h&&p===`\n`&&(p=`\n\n`),d+=p+D.slice(u)+T,p=`\n`,h=!0):T===""?p===`\n`?d+=`\n`:p=`\n`:(d+=p+T,p=" ",h=!1)}switch(s.chomp){case"-":break;case"+":for(let g=a;gt(r+p,h,b);switch(s){case"scalar":a=P.PLAIN,u=uf(i,l);break;case"single-quoted-scalar":a=P.QUOTE_SINGLE,u=lf(i,l);break;case"double-quoted-scalar":a=P.QUOTE_DOUBLE,u=cf(i,l);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[r,r+i.length,r+i.length]}}let f=r+i.length,d=ut(o,f,e,t);return{value:u,type:a,comment:d.comment,range:[r,f,d.offset]}}function uf(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),wu(n)}function lf(n,e){return(n[n.length-1]!=="\'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing \'quote"),wu(n.slice(1,-1)).replace(/\'\'/g,"\'")}function wu(n){var u;let e,t;try{e=new RegExp(`(.*?)(?i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!==\'"\'||n.length===1)&&e(n.length,"MISSING_CHAR",\'Missing closing "quote\'),t}function ff(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===`\n`||r==="\\r")&&!(r==="\\r"&&n[e+2]!==`\n`);)r===`\n`&&(t+=`\n`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var df={0:"\\0",a:"\\x07",b:"\\b",e:"\\x1B",f:"\\f",n:`\n`,r:"\\r",t:" ",v:"\\v",N:"\\x85",_:"\\xA0",L:"\\u2028",P:"\\u2029"," ":" ",\'"\':\'"\',"/":"/","\\\\":"\\\\"," ":" "};function hf(n,e,t,r){let s=n.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=n.substr(e-2,t+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}function ro(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?to(n,e,r):no(e,n.options.strict,r),u=t?n.directives.tagName(t.source,d=>r(t,"TAG_RESOLVE_FAILED",d)):null,l;n.options.stringKeys&&n.atKey?l=n.schema[Ie]:u?l=pf(n.schema,s,u,t,r):e.type==="scalar"?l=mf(n,s,e,r):l=n.schema[Ie];let f;try{let d=l.resolve(s,p=>r(t!=null?t:e,"TAG_RESOLVE_FAILED",p),n.options);f=K(d)?d:new P(d)}catch(d){let p=d instanceof Error?d.message:String(d);r(t!=null?t:e,"TAG_RESOLVE_FAILED",p),f=new P(s)}return f.range=a,f.source=s,i&&(f.type=i),u&&(f.tag=u),l.format&&(f.format=l.format),o&&(f.comment=o),f}function pf(n,e,t,r,s){var a;if(t==="!")return n[Ie];let i=[];for(let u of n.tags)if(!u.collection&&u.tag===t)if(u.default&&u.test)i.push(u);else return u;for(let u of i)if((a=u.test)!=null&&a.test(e))return u;let o=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Ie])}function mf({atKey:n,directives:e,schema:t},r,s,i){var a;let o=t.tags.find(u=>{var l;return(u.default===!0||n&&u.default==="key")&&((l=u.test)==null?void 0:l.test(r))})||t[Ie];if(t.compat){let u=(a=t.compat.find(l=>{var f;return l.default&&((f=l.test)==null?void 0:f.test(r))}))!=null?a:t[Ie];if(o.tag!==u.tag){let l=e.tagString(o.tag),f=e.tagString(u.tag),d=`Value may be parsed as either ${l} or ${f}`;i(s,"TAG_RESOLVE_FAILED",d,!0)}}return o}function Tu(n,e,t){if(e){t===null&&(t=e.length);for(let r=t-1;r>=0;--r){let s=e[r];switch(s.type){case"space":case"comment":case"newline":n-=s.source.length;continue}for(s=e[++r];(s==null?void 0:s.type)==="space";)n+=s.source.length,s=e[++r];break}}return n}var Df={composeNode:so,composeEmptyNode:As};function so(n,e,t,r){let s=n.atKey,{spaceBefore:i,comment:o,anchor:a,tag:u}=t,l,f=!0;switch(e.type){case"alias":l=yf(n,e,r),(a||u)&&r(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=ro(n,e,u,r),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Eu(Df,n,e,t,r),a&&(l.anchor=a.source.substring(1));break;default:{let d=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",d),l=As(n,e.offset,void 0,null,t,r),f=!1}}return a&&l.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&n.options.stringKeys&&(!K(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&r(u!=null?u:e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),n.options.keepSourceTokens&&f&&(l.srcToken=e),l}function As(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:u},l){let f={type:"scalar",offset:Tu(e,t,r),indent:-1,source:""},d=ro(n,f,a,l);return o&&(d.anchor=o.source.substring(1),d.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(d.spaceBefore=!0),i&&(d.comment=i,d.range[2]=u),d}function yf({options:n},{offset:e,source:t,end:r},s){let i=new Et(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=ut(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}function Su(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),u=new Nt(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},f=at(r,{indicator:"doc-start",next:s!=null?s:i==null?void 0:i[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(u.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=s?so(l,s,f,o):As(l,f.end,r,null,f,o);let d=u.contents.range[2],p=ut(i,d,!1,o);return p.comment&&(u.comment=p.comment),u.range=[t,d,p.offset],u}function xr(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function ku(n){var s;let e="",t=!1,r=!1;for(let i=0;i{let o=xr(t);i?this.warnings.push(new vr(o,r,s)):this.errors.push(new Qe(o,r,s))},this.directives=new it({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=ku(this.prelude);if(r){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${r}`:r;else if(s||e.directives.docStart||!i)e.commentBefore=r;else if(Z(i)&&!i.flow&&i.items.length>0){let o=i.items[0];H(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r}\n${a}`:r}else{let o=i.commentBefore;i.commentBefore=o?`${r}\n${o}`:r}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:ku(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let s of e)yield*S(this.next(s));yield*S(this.end(t,r))}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=xr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Su(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,r=new Qe(xr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new Qe(xr(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=ut(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Qe(xr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),s=new Nt(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};var io=Symbol("break visit"),gf=Symbol("skip children"),Cu=Symbol("remove item");function Jt(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),vu(Object.freeze([]),n,e)}Jt.BREAK=io;Jt.SKIP=gf;Jt.REMOVE=Cu;Jt.itemAtPath=(n,e)=>{let t=n;for(let[r,s]of e){let i=t==null?void 0:t[r];if(i&&"items"in i)t=i.items[s];else return}return t};Jt.parentCollection=(n,e)=>{let t=Jt.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],s=t==null?void 0:t[r];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function vu(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o":return"block-scalar-header"}return null}function Xe(n){switch(n){case void 0:case" ":case`\n`:case"\\r":case" ":return!0;default:return!1}}var xu=new Set("0123456789ABCDEFabcdef"),Ff=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*\'()"),_s=new Set(",[]{}"),Ef=new Set(` ,[]{}\n\\r `),lo=n=>!n||Ef.has(n),Lr=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){var s;if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let r=(s=this.next)!=null?s:"stream";for(;r&&(t||this.hasChars(1));)r=yield*S(this.parseNext(r))}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`\n`?!0:t==="\\r"?this.buffer[e+1]===`\n`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;for(;t===" ";)t=this.buffer[++r+e];if(t==="\\r"){let s=this.buffer[r+e+1];if(s===`\n`||!s&&!this.atEnd)return e+r+1}return t===`\n`||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){let r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&Xe(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&ethis.indentValue&&!Xe(this.charAt(1))&&(this.indentNext=this.indentValue),yield*S(this.parseBlockStart())}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Xe(t)){let r=(yield*S(this.pushCount(1)))+(yield*S(this.pushSpaces(!0)));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*S(this.parseBlockStart())}return"doc"}*parseDocument(){yield*S(this.pushSpaces(!0));let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*S(this.pushIndicators());switch(e[t]){case"#":yield*S(this.pushCount(e.length-t));case void 0:return yield*S(this.pushNewline()),yield*S(this.parseLineStart());case"{":case"[":return yield*S(this.pushCount(1)),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*S(this.pushCount(1)),"doc";case"*":return yield*S(this.pushUntil(lo)),"doc";case\'"\':case"\'":return yield*S(this.parseQuotedScalar());case"|":case">":return t+=yield*S(this.parseBlockScalarHeader()),t+=yield*S(this.pushSpaces(!0)),yield*S(this.pushCount(e.length-t)),yield*S(this.pushNewline()),yield*S(this.parseBlockScalar());default:return yield*S(this.parsePlainScalar())}}*parseFlowCollection(){let e,t,r=-1;do e=yield*S(this.pushNewline()),e>0?(t=yield*S(this.pushSpaces(!1)),this.indentValue=r=t):t=0,t+=yield*S(this.pushSpaces(!0));while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*S(this.pushUntil(t=>Xe(t)||t==="#"))}*parseBlockScalar(){let e=this.pos-1,t=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":t+=1;break;case`\n`:e=i,t=0;break;case"\\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`\n`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`\n`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(r=this.buffer[s];r===" ";)r=this.buffer[++s];if(r===" "){for(;r===" "||r===" "||r==="\\r"||r===`\n`;)r=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`\n`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Ms,yield*S(this.pushToIndex(e+1,!0)),yield*S(this.parseLineStart())}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,s;for(;s=this.buffer[++r];)if(s===":"){let i=this.buffer[r+1];if(Xe(i)||e&&_s.has(i))break;t=r}else if(Xe(s)){let i=this.buffer[r+1];if(s==="\\r"&&(i===`\n`?(r+=1,s=`\n`,i=this.buffer[r+1]):t=r),i==="#"||e&&_s.has(i))break;if(s===`\n`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&_s.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Ms,yield*S(this.pushToIndex(t+1,!0)),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*S(this.pushTag()))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()));case"&":return(yield*S(this.pushUntil(lo)))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()));case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Xe(t)||e&&_s.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*S(this.pushCount(1)))+(yield*S(this.pushSpaces(!0)))+(yield*S(this.pushIndicators()))}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Xe(t)&&t!==">";)t=this.buffer[++e];return yield*S(this.pushToIndex(t===">"?e+1:e,!1))}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Ff.has(t))t=this.buffer[++e];else if(t==="%"&&xu.has(this.buffer[e+1])&&xu.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*S(this.pushToIndex(e,!1))}}*pushNewline(){let e=this.buffer[this.pos];return e===`\n`?yield*S(this.pushCount(1)):e==="\\r"&&this.charAt(1)===`\n`?yield*S(this.pushCount(2)):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*S(this.pushToIndex(t,!1))}};var Nr=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t>1;this.lineStarts[i]=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((t=n[++e])==null?void 0:t.type)==="space";);return n.splice(e,n.length)}function Lu(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!zt(e.start,"explicit-key-ind")&&!zt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Nu(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var Ar=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Lr,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*S(this.next(r));t||(yield*S(this.end()))}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*S(this.step()),this.offset+=e.length;return}let t=Ou(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*S(this.step()),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let r=`Not a YAML token: ${e}`;yield*S(this.pop({type:"error",offset:this.offset,message:r,source:e})),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*S(this.pop())}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){for(;this.stack.length>0;)yield*S(this.pop());this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*S(this.stream());switch(e.type){case"document":return yield*S(this.document(e));case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*S(this.scalar(e));case"block-scalar":return yield*S(this.blockScalar(e));case"block-map":return yield*S(this.blockMap(e));case"block-seq":return yield*S(this.blockSequence(e));case"flow-collection":return yield*S(this.flowCollection(e));case"doc-end":return yield*S(this.documentEnd(e))}yield*S(this.pop())}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e!=null?e:this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Lu(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let s=r.items[r.items.length-1];if(s.value){r.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=r.items[r.items.length-1];s.value?r.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=r.items[r.items.length-1];!s||s.value?r.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*S(this.pop()),yield*S(this.pop(t))}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Iu(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,i=s&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",o=[];if(i&&t.sep&&!t.value){let a=[];for(let u=0;ue.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=t.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":i||t.value?(o.push(this.sourceToken),e.items.push({start:o}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):i||t.value?(o.push(this.sourceToken),e.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zt(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(Nu(t.key)&&!zt(t.sep,"newline")){let a=Nn(t.start),u=t.key,l=t.sep;l.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:u,sep:l}]})}else o.length>0?t.sep=t.sep.concat(o,this.sourceToken):t.sep.push(this.sourceToken);else if(zt(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let a=Nn(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||i?e.items.push({start:o,key:null,sep:[this.sourceToken]}):zt(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let a=this.flowScalar(this.type);i||t.value?(e.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(a):(Object.assign(t,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{let a=this.startBlockValue(e);if(a){s&&a.type!=="block-seq"&&e.items.push({start:o}),this.stack.push(a);return}}}}yield*S(this.pop()),yield*S(this.step())}*blockSequence(e){var r;let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let s="end"in t.value?t.value.end:void 0,i=Array.isArray(s)?s[s.length-1]:void 0;(i==null?void 0:i.type)==="comment"?s==null||s.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2],i=(r=s==null?void 0:s.value)==null?void 0:r.end;if(Array.isArray(i)){Array.prototype.push.apply(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||zt(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*S(this.pop()),yield*S(this.step())}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*S(this.pop()),r=this.peek(1);while(r&&r.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*S(this.pop()),yield*S(this.step()))}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*S(this.pop()),yield*S(this.step());else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let s=Bs(r),i=Nn(s);Lu(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*S(this.lineEnd(e))}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`\n`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`\n`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Bs(e),r=Nn(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Bs(e),r=Nn(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*S(this.pop())))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*S(this.pop()),yield*S(this.step());break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*S(this.pop()))}}};function wf(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Nr||null,prettyErrors:e}}function Au(n,e={}){let{lineCounter:t,prettyErrors:r}=wf(e),s=new Ar(t==null?void 0:t.addNewLine),i=new Ir(e),o=null;for(let a of i.compose(s.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Qe(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Zi(n,t)),o.warnings.forEach(Zi(n,t))),o}function co(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Au(n,t);if(!s)return null;if(s.warnings.forEach(i=>ps(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:r},t))}var js=Vr(Ru());var F=Vr(ns());var et;(N=>{N.DEFAULT_TO_STRING={nullRepresentation:"-",dateFormat:"MMMM dd, yyyy",dateTimeFormat:"h:mm a - MMMM dd, yyyy"};function e(y,w=N.DEFAULT_TO_STRING,v=!1){let O=t(y);if(!O)return w.nullRepresentation;switch(O.type){case"null":return w.nullRepresentation;case"string":return O.value;case"number":case"boolean":return""+O.value;case"link":return O.value.markdown();case"function":return"";case"array":let C="";return v&&(C+="["),C+=O.value.map(V=>e(V,w,!0)).join(", "),v&&(C+="]"),C;case"object":return"{ "+Object.entries(O.value).map(V=>V[0]+": "+e(V[1],w,!0)).join(", ")+" }";case"date":return ja(O.value,w.dateFormat,w.dateTimeFormat);case"duration":return qa(O.value)}}N.toString=e;function t(y){return h(y)?{type:"null",value:y}:f(y)?{type:"number",value:y}:l(y)?{type:"string",value:y}:g(y)?{type:"boolean",value:y}:p(y)?{type:"duration",value:y}:d(y)?{type:"date",value:y}:b(y)?{type:"array",value:y}:D(y)?{type:"link",value:y}:I(y)?{type:"function",value:y}:T(y)?{type:"object",value:y}:void 0}N.wrapValue=t;function r(y,w){if(T(y)){let v={};for(let[O,C]of Object.entries(y))v[O]=r(C,w);return v}else if(b(y)){let v=[];for(let O of y)v.push(r(O,w));return v}else return w(y)}N.mapLeaves=r;function s(y,w){return i(y,w)==0}N.equals=s;function i(y,w,v){var V,j;if(y===w||(y===void 0&&(y=null),w===void 0&&(w=null),y===null&&w===null))return 0;if(y===null)return-1;if(w===null)return 1;let O=t(y),C=t(w);if(O===void 0&&C===void 0)return 0;if(O===void 0)return-1;if(C===void 0)return 1;if(O.type!=C.type)return O.type.localeCompare(C.type);if(O.value===C.value)return 0;switch(O.type){case"string":return O.value.localeCompare(C.value);case"number":return O.valueAe,x=ae(Y.path).localeCompare(ae(ee.path));if(x!=0)return x;let $=Y.type.localeCompare(ee.type);return $!=0?$:Y.subpath&&!ee.subpath?1:!Y.subpath&&ee.subpath?-1:!Y.subpath&&!ee.subpath?0:((V=Y.subpath)!=null?V:"").localeCompare((j=ee.subpath)!=null?j:"");case"date":return O.value0;case"boolean":return w.value;case"link":return!!w.value.path;case"date":return w.value.toMillis()!=0;case"duration":return w.value.as("seconds")!=0;case"object":return Object.keys(w.value).length>0;case"array":return w.value.length>0;case"null":return!1;case"function":return!0}}N.isTruthy=a;function u(y){if(y==null)return y;if(N.isArray(y))return[].concat(y.map(w=>u(w)));if(N.isObject(y)){let w={};for(let[v,O]of Object.entries(y))w[v]=u(O);return w}else return y}N.deepCopy=u;function l(y){return typeof y=="string"}N.isString=l;function f(y){return typeof y=="number"}N.isNumber=f;function d(y){return y instanceof q}N.isDate=d;function p(y){return y instanceof B}N.isDuration=p;function h(y){return y==null}N.isNull=h;function b(y){return Array.isArray(y)}N.isArray=b;function g(y){return typeof y=="boolean"}N.isBoolean=g;function D(y){return y instanceof xe}N.isLink=D;function T(y){return y!==void 0&&typeof y=="object"&&!b(y)&&!p(y)&&!d(y)&&!D(y)&&!h(y)}N.isObject=T;function I(y){return typeof y=="function"}N.isFunction=I})(et||(et={}));var ju;(i=>{function n(o){return et.isObject(o)&&Object.keys(o).length==2&&"key"in o&&"rows"in o}i.isElementGroup=n;function e(o){for(let a of o)if(!n(a))return!1;return!0}i.isGrouping=e;function t(o){for(let a of o)if(n(a))return!1;return!0}i.isLeaf=t;function r(o){if(n(o))return r(o.rows);if(e(o)){let a=0;for(let u of o)a+=r(u.rows);return a}else return o.length}i.count=r;function s(o,a,u){if(u<=a)return[];if(t(o))return o.slice(a,u);let l=0,f=0;for(;l=o.length)return[];let d=[];for(;l{function n(u){return new ho(u)}a.success=n;function e(u){return new po(u)}a.failure=e;function t(u,l,f){return u.successful?l.successful?f(u.value,l.value):e(l.error):e(u.error)}a.flatMap2=t;function r(u,l,f){return t(u,l,(d,p)=>n(f(d,p)))}a.map2=r;function s(u,l){let f=[];for(let d of u){let p=l(d);if(!p.successful)return p.cast();f.push(p.value)}return a.success(f)}a.mapAll=s;function i(u){try{return a.success(u())}catch(l){return a.failure(l)}}a.trying=i;async function o(u){try{return a.success(await u)}catch(l){return a.failure(l)}}a.async=o})(Se||(Se={}));var Yt;(N=>{N.EVERYTHING={type:"everything"},N.NOTHING={type:"nothing"},N.EMPTY_SET=new Set;function r(y){return y.size==0?N.NOTHING:{type:"atom",value:y}}N.atom=r;function s(y){return y?N.EVERYTHING:N.NOTHING}N.constant=s;function i(y){return y!==void 0?r(y):N.NOTHING}N.nullableAtom=i;function o(y){return y.size==0?N.EVERYTHING:{type:"negated",value:y}}N.negated=o;function a(y){switch(y.type){case"everything":return N.NOTHING;case"nothing":return N.EVERYTHING;case"atom":return o(y.value);case"negated":return r(y.value)}}N.negate=a;function u(y){switch(y.type){case"everything":return!1;case"negated":return!1;case"atom":return y.value.size==0;case"nothing":return!0}}N.empty=u;function l(y,w){switch(y.type){case"everything":return w;case"nothing":return N.EMPTY_SET;case"atom":return y.value;case"negated":return I(w,y.value)}}N.resolve=l;function f(y){return d(y,w=>w)}N.intersect=f;function d(y,w){return p(y,v=>Se.success(w(v))).orElseThrow()}N.lazyIntersect=d;function p(y,w){let v=[],O=[];for(let C of y){let V=w(C);if(!V.successful)return V.cast();let j=V.value;if(j!==void 0){if(u(j))return Se.success(N.NOTHING);j.type!=="everything"&&(j.type=="atom"?v.push(j.value):j.type=="negated"&&O.push(j.value))}}return v.length==0&&O.length==0?Se.success(N.EVERYTHING):v.length>0&&O.length==0?Se.success(r(D(v))):v.length==0&&O.length>0?Se.success(o(T(O))):Se.success(N.atom(I(D(v),T(O))))}N.lazyFailableIntersection=p;function h(y){return b(y,w=>w)}N.union=h;function b(y,w){return g(y,v=>Se.success(w(v))).orElseThrow()}N.lazyUnion=b;function g(y,w){let v=[],O=[];for(let C of y){let V=w(C);if(!V.successful)return V.cast();let j=V.value;if(j!==void 0){if(j.type==="everything")return Se.success(N.EVERYTHING);u(j)||(j.type=="atom"?v.push(j.value):j.type=="negated"&&O.push(j.value))}}return v.length==0&&O.length==0?Se.success(N.NOTHING):v.length>0&&O.length==0?Se.success(N.atom(T(v))):v.length==0&&O.length>0?Se.success(N.negated(D(O))):Se.success(o(I(D(O),T(v))))}N.lazyFailableUnion=g;function D(y){if(y.length==0)return new Set;if(y.length==1)return y[0];let w=[].concat(y).sort((v,O)=>v.size-O.size);for(;w.length>1;){let v=new Set,O=w.pop();for(let C of w[0])O.has(C)&&v.add(C);w[0]=v}return w[0]}N.setIntersect=D;function T(y){if(y.length==0)return new Set;if(y.length==1)return y[0];let w=new Set;for(let v of y)for(let O of v)w.add(O);return w}N.setUnion=T;function I(y,w){if(y.size>w.size){let v=new Set(y);for(let O of w)v.delete(O);return v}else{let v=new Set;for(let O of y)w.has(O)||v.add(O);return v}}N.setIntersectNegation=I})(Yt||(Yt={}));var se;(g=>{g.ROW="$row";function e(D){return{type:"variable",name:D}}g.variable=e;function t(D){return{type:"literal",value:D}}g.literal=t;function r(D,T,I){return{type:"binaryop",left:D,op:T,right:I}}g.binaryOp=r;function s(D,T){return{type:"binaryop",left:D,right:T,op:"index"}}g.index=s;function i(D){let T=D.split("."),I=g.variable(T[0]);for(let N=1;N"||D==">="||D=="!="||D=="="}g.isCompareOp=d;function p(D,T=new Set([g.ROW])){switch(D.type){case"binaryop":return D.op==="index"&&D.left.type=="variable"&&D.left.name==g.ROW&&D.right.type=="literal"&&et.isString(D.right.value)?T.has(D.right.value)?new Set:new Set([D.right.value]):Yt.setUnion([p(D.left,T),p(D.right,T)]);case"function":return Yt.setUnion(D.arguments.map(N=>p(N,T)));case"lambda":let I=T!=null?T:new Set;for(let N of D.arguments)I.add(N);return p(D.value,I);case"list":return Yt.setUnion(D.values.map(N=>p(N,T)));case"negated":return p(D.child,T);case"object":return Yt.setUnion(Object.values(D.values).map(N=>p(N,T)));case"variable":return T&&T.has(D.name)?new Set:new Set([D.name]);case"literal":return new Set}}g.unboundVariables=p;function h(D){switch(D.type){case"binaryop":return D.op==="index"?`${h(D.left)}[${h(D.right)}]`:`${h(D.left)} ${D.op} ${h(D.right)}`;case"function":return`${h(D.func)}(${D.arguments.map(h).join(", ")})`;case"lambda":return`(${D.arguments.join(", ")}) => ${h(D.value)}`;case"list":return`[${D.values.map(h).join(", ")}]`;case"negated":return`!${h(D.child)}`;case"object":return`{${Object.entries(D.values).map(([I,N])=>`${I}: ${h(N)}`).join(", ")}}`;case"variable":return D.name;case"literal":let T=et.wrapValue(D.value);if(!T)return"null";switch(T.type){case"string":return`"${T.value}"`;default:return et.toString(T.value)}}}g.toString=h,g.NULL=g.literal(null)})(se||(se={}));var z=F.createLanguage({number:n=>F.regexp(/-?[0-9]+(\\.[0-9]+)?/).map(e=>Number.parseFloat(e)).desc("number"),string:n=>F.string(\'"\').then(F.alt(n.escapeCharacter,F.noneOf(\'"\\\\\')).atLeast(0).map(e=>e.join(""))).skip(F.string(\'"\')).desc("string"),escapeCharacter:n=>F.string("\\\\").then(F.any).map(e=>e===\'"\'?\'"\':e==="\\\\"?"\\\\":"\\\\"+e),bool:n=>F.regexp(/true|false|True|False/).map(e=>e.toLowerCase()=="true").desc("boolean"),tag:n=>F.seqMap(F.string("#"),F.alt(F.regexp(/[^\\u2000-\\u206F\\u2E00-\\u2E7F\'!"#$%&()*+,.:;<=>?@^`{|}~\\[\\]\\\\\\s]/).desc("text")).many(),(e,t)=>e+t.join("")).desc("tag"),identifier:n=>F.seqMap(F.alt(F.regexp(/[\\p{Letter}$]/u),F.regexp(qu).desc("text")),F.alt(F.regexp(/[0-9\\p{Letter}$_-]/u),F.regexp(qu).desc("text")).many(),(e,t)=>e+t.join("")).desc("variable"),link:n=>F.regexp(/\\[\\[([^\\[\\]]*?)\\]\\]/u,1).map(e=>xe.parseInner(e)).desc("file link"),embedLink:n=>F.seqMap(F.string("!").atMost(1),n.link,(e,t)=>(e.length>0&&(t.embed=!0),t)).desc("file link"),binaryPlusMinus:n=>F.regexp(/\\+|-/).map(e=>e).desc("\'+\' or \'-\'"),binaryMulDiv:n=>F.regexp(/\\*|\\/|%/).map(e=>e).desc("\'*\' or \'/\' or \'%\'"),binaryCompareOp:n=>F.regexp(/>=|<=|!=|>|<|=/).map(e=>e).desc("\'>=\' or \'<=\' or \'!=\' or \'=\' or \'>\' or \'<\'"),binaryAndOp:n=>F.regexp(/and|&/i).map(e=>"&").desc("\'and\'"),binaryOrOp:n=>F.regexp(/or|\\|/i).map(e=>"|").desc("\'or\'"),rootDate:n=>F.seqMap(F.regexp(/\\d{4}/),F.string("-"),F.regexp(/\\d{2}/),(e,t,r)=>q.fromObject({year:Number.parseInt(e),month:Number.parseInt(r)})).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),dateShorthand:n=>F.alt(...Object.keys(Uu).sort((e,t)=>t.length-e.length).map(F.string)),date:n=>xf(n.rootDate,e=>F.seqMap(F.string("-"),F.regexp(/\\d{2}/),(t,r)=>e.set({day:Number.parseInt(r)})),e=>F.seqMap(F.string("T"),F.regexp(/\\d{2}/),(t,r)=>e.set({hour:Number.parseInt(r)})),e=>F.seqMap(F.string(":"),F.regexp(/\\d{2}/),(t,r)=>e.set({minute:Number.parseInt(r)})),e=>F.seqMap(F.string(":"),F.regexp(/\\d{2}/),(t,r)=>e.set({second:Number.parseInt(r)})),e=>F.alt(F.seqMap(F.string("."),F.regexp(/\\d{3}/),(t,r)=>e.set({millisecond:Number.parseInt(r)})),F.succeed(e)),e=>F.alt(F.seqMap(F.string("+").or(F.string("-")),F.regexp(/\\d{1,2}(:\\d{2})?/),(t,r)=>e.setZone("UTC"+t+r,{keepLocalTime:!0})),F.seqMap(F.string("Z"),()=>e.setZone("utc",{keepLocalTime:!0})),F.seqMap(F.string("["),F.regexp(/[0-9A-Za-z+-\\/]+/u),F.string("]"),(t,r,s)=>e.setZone(r,{keepLocalTime:!0})))).assert(e=>e.isValid,"valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),datePlus:n=>F.alt(n.dateShorthand.map(e=>Uu[e]()),n.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"),durationType:n=>F.alt(...Object.keys(Vu).sort((e,t)=>t.length-e.length).map(F.string)),duration:n=>F.seqMap(n.number,F.optWhitespace,n.durationType,(e,t,r)=>Vu[r].mapUnits(s=>s*e)).sepBy1(F.string(",").trim(F.optWhitespace).or(F.optWhitespace)).map(e=>e.reduce((t,r)=>t.plus(r))).desc("duration like 4hr2min"),rawNull:n=>F.string("null"),atomInlineField:n=>F.alt(n.date,n.duration.map(e=>Mi(e)),n.string,n.tag,n.embedLink,n.bool,n.number,n.rawNull),inlineFieldList:n=>n.atomInlineField.sepBy(F.string(",").trim(F.optWhitespace).lookahead(n.atomInlineField)),inlineField:n=>F.alt(F.seqMap(n.atomInlineField,F.string(",").trim(F.optWhitespace),n.inlineFieldList,(e,t,r)=>[e].concat(r)),n.atomInlineField)}),qu=new RegExp(Fn(),""),Vu={year:B.fromObject({years:1}),years:B.fromObject({years:1}),yr:B.fromObject({years:1}),yrs:B.fromObject({years:1}),month:B.fromObject({months:1}),months:B.fromObject({months:1}),mo:B.fromObject({months:1}),mos:B.fromObject({months:1}),week:B.fromObject({weeks:1}),weeks:B.fromObject({weeks:1}),wk:B.fromObject({weeks:1}),wks:B.fromObject({weeks:1}),w:B.fromObject({weeks:1}),day:B.fromObject({days:1}),days:B.fromObject({days:1}),d:B.fromObject({days:1}),hour:B.fromObject({hours:1}),hours:B.fromObject({hours:1}),hr:B.fromObject({hours:1}),hrs:B.fromObject({hours:1}),h:B.fromObject({hours:1}),minute:B.fromObject({minutes:1}),minutes:B.fromObject({minutes:1}),min:B.fromObject({minutes:1}),mins:B.fromObject({minutes:1}),m:B.fromObject({minutes:1}),second:B.fromObject({seconds:1}),seconds:B.fromObject({seconds:1}),sec:B.fromObject({seconds:1}),secs:B.fromObject({seconds:1}),s:B.fromObject({seconds:1})},Uu={now:()=>q.local(),today:()=>q.local().startOf("day"),yesterday:()=>q.local().startOf("day").minus(B.fromObject({days:1})),tomorrow:()=>q.local().startOf("day").plus(B.fromObject({days:1})),sow:()=>q.local().startOf("week"),"start-of-week":()=>q.local().startOf("week"),eow:()=>q.local().endOf("week"),"end-of-week":()=>q.local().endOf("week"),soy:()=>q.local().startOf("year"),"start-of-year":()=>q.local().startOf("year"),eoy:()=>q.local().endOf("year"),"end-of-year":()=>q.local().endOf("year"),som:()=>q.local().startOf("month"),"start-of-month":()=>q.local().startOf("month"),eom:()=>q.local().endOf("month"),"end-of-month":()=>q.local().endOf("month")},Ku=F.createLanguage({variable:n=>z.identifier.map(se.variable).desc("variable"),number:n=>z.number.map(se.literal).desc("number"),string:n=>z.string.map(se.literal).desc("string"),bool:n=>z.bool.map(se.literal).desc("boolean"),date:n=>St("date",z.datePlus).map(([e,t])=>se.literal(t)).desc("date"),duration:n=>St("dur",z.duration).map(([e,t])=>se.literal(t)).desc("duration"),null:n=>z.rawNull.map(e=>se.NULL),link:n=>z.link.map(se.literal),list:n=>n.expression.sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("[").skip(F.optWhitespace),F.optWhitespace.then(F.string("]"))).map(e=>se.list(e)).desc("list"),object:n=>F.seqMap(z.identifier.or(z.string),F.string(":").trim(F.optWhitespace),n.expression,(e,t,r)=>({name:e,value:r})).sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("{").skip(F.optWhitespace),F.optWhitespace.then(F.string("}"))).map(e=>{let t={};for(let r of e)t[r.name]=r.value;return se.object(t)}).desc("object (\'{ a: 1, b: 2 }\')"),atom:n=>F.alt(z.embedLink.map(e=>se.literal(e)),n.negated,n.link,n.list,n.object,n.lambda,n.parens,n.bool,n.number,n.string,n.date,n.duration,n.null,n.variable),index:n=>F.seqMap(n.atom,F.alt(n.dotPostfix,n.indexPostfix,n.functionPostfix).many(),(e,t)=>{let r=e;for(let s of t)switch(s.type){case"dot":r=se.index(r,se.literal(s.expr));break;case"index":r=se.index(r,s.expr);break;case"function":r=se.func(r,s.exprs);break}return r}),negated:n=>F.seqMap(F.string("!"),n.index,(e,t)=>se.negate(t)).desc("negated field"),parens:n=>n.expression.trim(F.optWhitespace).wrap(F.string("("),F.string(")")),lambda:n=>F.seqMap(z.identifier.sepBy(F.string(",").trim(F.optWhitespace)).wrap(F.string("(").trim(F.optWhitespace),F.string(")").trim(F.optWhitespace)),F.string("=>").trim(F.optWhitespace),n.expression,(e,t,r)=>({type:"lambda",arguments:e,value:r})),dotPostfix:n=>F.seqMap(F.string("."),z.identifier,(e,t)=>({type:"dot",expr:t})),indexPostfix:n=>F.seqMap(F.string("["),F.optWhitespace,n.expression,F.optWhitespace,F.string("]"),(e,t,r,s,i)=>({type:"index",expr:r})),functionPostfix:n=>F.seqMap(F.string("("),F.optWhitespace,n.expression.sepBy(F.string(",").trim(F.optWhitespace)),F.optWhitespace,F.string(")"),(e,t,r,s,i)=>({type:"function",exprs:r})),binaryMulDiv:n=>Mn(n.index,z.binaryMulDiv,se.binaryOp),binaryPlusMinus:n=>Mn(n.binaryMulDiv,z.binaryPlusMinus,se.binaryOp),binaryCompare:n=>Mn(n.binaryPlusMinus,z.binaryCompareOp,se.binaryOp),binaryBoolean:n=>Mn(n.binaryCompare,z.binaryAndOp.or(z.binaryOrOp),se.binaryOp),binaryOp:n=>n.binaryBoolean,expression:n=>n.binaryOp}),lb=F.createLanguage({queryTag:n=>z.tag.map(e=>({type:"tagged",value:e})),queryId:n=>St("id",z.string).map(([e,t])=>({type:"id",value:t})),queryType:n=>F.string("@").then(z.identifier).map(e=>({type:"typed",value:e})),queryPath:n=>St(F.regexp(/e?path/i).desc("[e]path"),z.string).map(([e,t])=>({type:"path",value:t,exact:e.toLowerCase()==="epath"})),queryParentOf:n=>St(F.regexp(/parentof|supertree/i).desc("parentof"),n.query).map(([e,t])=>({type:"parent-of",children:t,inclusive:e.toLowerCase()==="supertree"})),queryChildOf:n=>St(F.regexp(/childof|subtree/i).desc("childof"),n.query).map(([e,t])=>({type:"child-of",parents:t,inclusive:e.toLowerCase()==="subtree"})),querySimpleLinked:n=>z.link.map(e=>({type:"linked",source:{type:"link",value:e},direction:"incoming"})),queryLinked:n=>St(F.regexp(/linksto|linkedfrom|connected/i).desc("connected"),n.query).map(([e,t])=>({type:"linked",source:t,direction:e.toLowerCase()=="linksto"?"incoming":e.toLowerCase()=="linkedfrom"?"outgoing":"both"})),queryExists:n=>St(F.regexp(/exists/i).desc("exists"),z.identifier.or(z.string)).map(([e,t])=>({type:"field",value:t})),queryQuotedExpression:n=>St(F.regexp(/expr/i).desc("expr"),Ku.expression).map(([e,t])=>({type:"expression",expression:t})),queryRawExpression:n=>Ku.binaryCompare.map(e=>({type:"expression",expression:e})),queryParens:n=>n.query.trim(F.optWhitespace).wrap(F.string("("),F.string(")")),queryNegate:n=>F.string("!").skip(F.optWhitespace).then(n.queryAtom).map(e=>({type:"not",element:e})),queryAtom:n=>F.alt(n.queryParens,n.queryNegate,n.querySimpleLinked,n.queryTag,n.queryType,n.queryId,n.queryExists,n.queryChildOf,n.queryParentOf,n.queryLinked,n.queryPath,n.queryQuotedExpression,n.queryRawExpression),queryAnds:n=>Mn(n.queryAtom,z.binaryAndOp,(e,t,r)=>({type:"and",elements:[e,r]})),queryOrs:n=>Mn(n.queryAnds,z.binaryOrOp,(e,t,r)=>({type:"or",elements:[e,r]})),query:n=>n.queryOrs.trim(F.optWhitespace)});function Mn(n,e,t){return F.seqMap(n,F.seq(F.optWhitespace,e,F.optWhitespace,n).many(),(r,s)=>{if(s.length==0)return r;let i=t(r,s[0][1],s[0][3]);for(let o=1;o[r,s])}function xf(n,...e){return F.custom((t,r)=>(s,i)=>{let o=n._(s,i);if(!o.status)return o;for(let a of e){let u=a(o.value)._(s,o.index);if(!u.status)return o;o=u}return o})}var Zt=Vr(ns());function Gt(n,e){let t={};for(let[r,s]of Object.entries(n))t[r]=e(s);return t}var _n;(r=>{r.NOOP_NORMALIZER=s=>s;function e(s){let i=et.wrapValue(s);if(!i)return null;switch(i==null?void 0:i.type){case"array":return i.value.map(r.json);case"object":return Gt(i.value,r.json);case"date":return{$_type:"date",value:i.value.toISO({extendedZone:!0,includeOffset:!0})};case"link":return{$_type:"link",value:i.value.toObject()};case"duration":return{$_type:"duration",value:i.value.toISO()};case"boolean":case"number":case"string":return i.value;case"function":case"null":return null}}r.json=e;function t(s,i=r.NOOP_NORMALIZER){if(s==null)return null;if(Array.isArray(s))return i(s.map(o=>r.value(o,i)));if(typeof s=="object"){if(!("$_type"in s))return Gt(s,a=>r.value(a,i));let o=s.$_type;switch(o){case"date":return i(q.fromISO(s.value));case"duration":return i(B.fromISO(s.value));case"link":return i(xe.fromObject(s.value));default:throw new Error(`Unrecognized serialized type \'${o}\'!`)}}return i(s)}r.value=t})(_n||(_n={}));function Wu(n){return Object.assign({},n,{value:_n.json(n.value)})}function $s(n,e){return Array.isArray(n)?n.map(t=>$s(t,e)):{key:n.key,raw:n.value,value:Nf(n.value),position:{line:e,start:n.start,startValue:n.startValue,end:n.end},wrapping:n.wrapping}}var Ps=Object.freeze({"[":"]","(":")"});function If(n,e,t,r){let s=0,i=!1;for(let o=e;o=0;){let o=Lf(n,i);if(!o){i=n.indexOf(s,i+1);continue}t.push(o),i=n.indexOf(s,o.end)}}e&&(t=t.concat(qf(n))),t.sort((s,i)=>s.start-i.start);let r=[];for(let s=0;sn.join("")),Mf=Zt.regexp(/[^0-9\\w\\p{Letter}]*/u).then(Af).skip(Zt.regexp(/[_\\*~`]*/u));function zu(n){let e=Hu(n,0);if(!e)return;let t=Mf.parse(e.key);if(t.status)return{key:t.value,value:n.substring(e.valueIndex).trim(),start:0,startValue:e.valueIndex,end:n.length}}var _f=/\\u{2795}\\s*(\\d{4}-\\d{2}-\\d{2})/u,Bf=/(?:\\u{1F4C5}|\\u{1F4C6}|\\u{1F5D3}\\u{FE0F}?)\\s*(\\d{4}-\\d{2}-\\d{2})/u,Pf=/\\u{2705}\\s*(\\d{4}-\\d{2}-\\d{2})/u,$f=/[\\u{23F3}\\u{231B}]\\s*(\\d{4}-\\d{2}-\\d{2})/u,Rf=/\\u{1F6EB}\\s*(\\d{4}-\\d{2}-\\d{2})/u,jf=[{regex:_f,key:"created"},{regex:Rf,key:"start"},{regex:$f,key:"scheduled"},{regex:Bf,key:"due"},{regex:Pf,key:"completion"}];function qf(n){let e=[];for(let{regex:t,key:r}of jf){let s=t.exec(n);s&&e.push({key:r,value:s[1],start:s.index,startValue:s.index+1,end:s.index+s[0].length,wrapping:"emoji-shorthand"})}return e}var Rs;(t=>{function n(r){let s=et.wrapValue(e);if(!s)return null;switch(s.type){case"string":case"boolean":case"null":case"number":return s.value;case"array":return s.value.map(n);case"date":return s.value.toISO();case"duration":return s.value.toHuman();case"function":return null;case"link":return s.value.markdown();case"object":return Gt(s.value,n)}}t.yaml=n;function e(r){if(r==null)return null;if(typeof r=="object")if(Array.isArray(r)){let s=[];for(let i of r)s.push(e(i));return s}else{if(r instanceof Date)return q.fromJSDate(r);{let s=r,i={};for(let o in s)i[o]=e(s[o]);return i}}else{if(typeof r=="number")return r;if(typeof r=="boolean")return r;if(typeof r=="string"){let s=z.date.parse(r);if(s.status)return s.value;let i=z.duration.parse(r);if(i.status)return i.value;let o=z.link.parse(r);return o.status?o.value:r}}return null}t.literal=e})(Rs||(Rs={}));var Vf=/```yaml:data/i,Uf=/^(?:```|~~~)(.*)$/im,Kf=new RegExp("^[\\\\s>]*(\\\\d+\\\\.|\\\\d+\\\\)|\\\\*|-|\\\\+)\\\\s*(\\\\[.{0,1}\\\\])?\\\\s*(.*)","msu");function Zu(n,e,t,r){let{lines:s,metadata:i,frontmatter:o,sections:a}=Fo(n,e,t);return new mo(n,r,s.length,i,a,o).build()}function Fo(n,e,t){var b,g,D,T,I,N,y,w,v,O,C,V,j,Y,ee,ae;let r=t!=null&&t.frontmatter?Gu(t.frontmatter):void 0,s=e.split(/\\r\\n|\\r|\\n/),i=new $e,o=[],a=(b=t==null?void 0:t.headings)!=null?b:[];a.sort((x,$)=>x.position.start.line-$.position.start.line);let u=new js.default(void 0,(x,$)=>x-$);for(let x=0;x0&&!Yu(s,0,x.start)){let $=new _r(0,x.start,En(n),1,0);u.set(0,$)}}let l=new js.default(void 0,(x,$)=>x-$),f=1;for(let x of(t==null?void 0:t.sections)||[]){if(x.type==="heading")continue;let $=x.position.start.line,Q=x.position.end.line+1,ue=s[$];if(x.type==="list")l.set($,new Do($,Q,f++,x.id));else if(x.type=="code"&&Vf.test(ue)){let De=s.slice($+1,Q-1).join(`\n`).replace(/\\t/gm," "),Re=Gu(co(De));l.set($,new yo($,Q,f++,Re,x.id))}else if(x.type==="code"){let De=ue.match(Uf);if(!De)l.set($,new qs($,Q,f++,[],"indent",$,Q,x.id));else{let Re=De.length>1&&De[1]?De[1].split(","):[];l.set($,new qs($,Q,f++,Re,"fenced",$+1,Q-1,x.id))}}else l.set($,new go($,Q,f++,x.type,x.id))}for(let x of l.values())(D=ct(x.start,u))==null||D.block(x);let d=/^[\\t\\f\\v ]*[\\-+\\*]\\s(\\[.\\]\\s)?/,p=/^(>?\\s?)*(\\t|\\s)*/g,h=new js.default(void 0,(x,$)=>x-$);for(let x of(t==null?void 0:t.listItems)||[]){let Q=s.slice(x.position.start.line,x.position.end.line+1).join(`\n`).match(Kf),ue,De;Q&&(ue=Q[1],De=Q[3]);let Re=new bo(x.position.start.line,x.position.end.line+1,x.parent,ue,x.id,x.task,De);h.set(Re.start,Re)}for(let x of h.values())if(x.parentLine<0){let $=l.get(-x.parentLine);if(!$||$.type!=="list")continue;$.items.push(x)}else(T=h.get(x.parentLine))==null||T.elements.push(x);for(let x of(I=t==null?void 0:t.tags)!=null?I:[]){let $=x.tag.startsWith("#")?x.tag:"#"+x.tag,Q=x.position.start.line;i.tag($),(N=ct(Q,u))==null||N.metadata.tag($),(y=ct(Q,l))==null||y.metadata.tag($),(w=ct(Q,h))==null||w.metadata.tag($)}if(t!=null&&t.frontmatter)for(let x of Wf(t.frontmatter)){let $=x.startsWith("#")?x:"#"+x;i.tag($)}for(let x of(v=t==null?void 0:t.links)!=null?v:[]){let $=xe.infer(x.link),Q=x.position.start.line;i.link($),(O=ct(Q,u))==null||O.metadata.link($),(C=ct(Q,l))==null||C.metadata.link($),(V=ct(Q,h))==null||V.metadata.link($)}for(let x of(j=t==null?void 0:t.frontmatterLinks)!=null?j:[])i.link(xe.infer(x.link,!1,x.displayText));for(let x of Eo(s)){let $=x.position.line;i.inlineField(x),(Y=ct($,u))==null||Y.metadata.inlineField(x),(ee=ct($,l))==null||ee.metadata.inlineField(x),(ae=ct($,h))==null||ae.metadata.inlineField(x)}return o.push(...u.values()),{lines:s,frontmatter:r,metadata:i,sections:o}}function Yu(n,e,t){for(let r=e;r32768||!t.includes("::"))continue;let r=Ju(t);if(r.length>0)for(let s of r)yield $s(s,e);else{let s=zu(t);s&&(yield $s(s,e))}}}function Gu(n){let e={};for(let t of Object.keys(n)){let r=n[t];e[t.toLowerCase()]={key:t,value:_n.json(Rs.literal(r)),raw:r}}return e}function ct(n,e){var r;let t=(r=e.getPairOrNextLower(n))==null?void 0:r[1];if(t&&t.end>=n)return t}function Wf(n){return Object.keys(n).filter(t=>t.toLowerCase()=="tags"||t.toLowerCase()=="tag").map(t=>Qu(n[t],/[,\\s]+/)).reduce((t,r)=>t.concat(r),[]).map(t=>t.startsWith("#")?t:"#"+t)}function Qu(n,e){return n==null||n==null?[]:Array.isArray(n)?n.filter(t=>!!t).map(t=>Qu(t,e)).reduce((t,r)=>t.concat(r),[]):(""+n).split(e).filter(t=>!!t).map(t=>t.trim()).filter(t=>t.length>0)}var $e=class{constructor(){this.tags=new Set;this.links=[];this.inlineFields={}}tag(e){this.tags.add(e)}link(e){this.links.find(t=>t.equals(e))||this.links.push(e)}inlineField(e){let t=e.key.toLowerCase();Object.keys(this.inlineFields).some(r=>r.toLowerCase()==t)||(this.inlineFields[t]=e)}finishTags(){return Array.from(this.tags)}finishLinks(){return this.links.map(e=>e.toObject())}finishInlineFields(){return Gt(this.inlineFields,Wu)}},mo=class{constructor(e,t,r,s,i,o){this.path=e;this.stats=t;this.length=r;this.metadata=s;this.sections=i;this.frontmatter=o}build(){return{$path:this.path,$ctime:this.stats.ctime,$mtime:this.stats.mtime,$size:this.stats.size,$extension:Va(this.path),$position:{start:0,end:this.length},$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$infields:this.metadata.finishInlineFields(),$sections:this.sections.map(e=>e.build()),$frontmatter:this.frontmatter}}},_r=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.title=r;this.level=s;this.ordinal=i;this.blocks=[];this.metadata=new $e}block(e){this.blocks.push(e)}build(){return{$title:this.title,$ordinal:this.ordinal,$level:this.level,$tags:this.metadata.finishTags(),$infields:this.metadata.finishInlineFields(),$links:this.metadata.finishLinks(),$position:{start:this.start,end:this.end},$blocks:this.blocks.map(e=>e.build())}}},Do=class{constructor(e,t,r,s){this.start=e;this.end=t;this.ordinal=r;this.blockId=s;this.type="list";this.metadata=new $e;this.items=[]}build(){return{$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$type:"list",$blockId:this.blockId,$elements:this.items.map(e=>e.build())}}},qs=class{constructor(e,t,r,s,i,o,a,u){this.start=e;this.end=t;this.ordinal=r;this.languages=s;this.style=i;this.contentStart=o;this.contentEnd=a;this.blockId=u;this.type="codeblock";this.metadata=new $e}build(){return{$type:"codeblock",$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId,$languages:this.languages,$style:this.style,$contentPosition:{start:this.contentStart,end:this.contentEnd}}}},yo=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.ordinal=r;this.data=s;this.blockId=i;this.type="datablock";this.metadata=new $e}build(){return{$type:"datablock",$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId,$data:this.data}}},go=class{constructor(e,t,r,s,i){this.start=e;this.end=t;this.ordinal=r;this.type=s;this.blockId=i;this.metadata=new $e}build(){return{$type:this.type,$ordinal:this.ordinal,$position:{start:this.start,end:this.end},$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$blockId:this.blockId}}},bo=class{constructor(e,t,r,s,i,o,a){this.start=e;this.end=t;this.parentLine=r;this.symbol=s;this.blockId=i;this.status=o;this.text=a;this.metadata=new $e;this.elements=[]}build(){return{$parentLine:this.parentLine,$position:{start:this.start,end:this.end},$blockId:this.blockId,$elements:this.elements.map(e=>e.build()),$type:this.status?"task":"list",$infields:this.metadata.finishInlineFields(),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$status:this.status,$symbol:this.symbol,$text:this.text}}};function Xu(n,e,t,r){var o;let s=new To(n,r),i=JSON.parse(e);for(let a of i.nodes)if(a.type!="group")if(a.type=="text"){let{frontmatter:u,metadata:l,lines:f,sections:d}=Fo(n,a.text,t==null?void 0:t.caches[a.id]),p=new Vs(n,a.id,a,u);d.forEach(h=>p.section(h)),s.card(p);for(let h in l.tags)s.metadata.tag(h);for(let h of(o=l.links)!=null?o:[])s.metadata.link(h);for(let h of Eo(f))s.metadata.inlineField(h)}else{let u=new Vs(n,a.id,a);s.card(u)}return s.build()}var wo=class{constructor(e,t,r){this.path=e;this.id=t;this.nodeJson=r;this.metadata=new $e}build(){return{$file:this.path,$id:this.id,$position:{x:this.nodeJson.x,y:this.nodeJson.y},$dimensions:{width:this.nodeJson.width,height:this.nodeJson.height},$color:this.nodeJson.color,$link:xe.file(this.path).withBlock(this.id).toObject()}}},Vs=class extends wo{constructor(t,r,s,i){super(t,r,s);this.path=t;this.id=r;this.nodeJson=s;this.frontmatter=i;this.sections=[]}section(t){return this.sections.push(t),t}build(){switch(this.nodeJson.type){case"text":return ye(R({},super.build()),{$infields:this.metadata.finishInlineFields(),$frontmatter:this.frontmatter,$sections:this.sections.map(t=>t.build()),$tags:this.metadata.finishTags(),$links:this.metadata.finishLinks(),$type:"text-card",$color:this.nodeJson.color});case"file":return ye(R({},super.build()),{$linkedFile:this.nodeJson.file});case"link":return ye(R({},super.build()),{$url:this.nodeJson.url})}}},To=class{constructor(e,t){this.path=e;this.stats=t;this.cards=[];this.metadata=new $e}card(e){return this.cards.push(e),e}build(){return{$cards:this.cards.map(e=>e.build()),$ctime:this.stats.ctime,$mtime:this.stats.mtime,$infields:this.metadata.finishInlineFields(),$links:this.metadata.finishLinks(),$tags:this.metadata.finishTags(),$path:this.path,$size:this.stats.size}}};onmessage=async n=>{try{let e=n.data;if(e.type==="markdown"){let t=Zu(e.path,e.contents,e.metadata,e.stat);postMessage({type:"markdown",result:t})}else if(e.type==="canvas"){let t=Xu(e.path,e.contents,e.index,e.stat);postMessage({type:"canvas",result:t})}else postMessage({$error:"Unsupported import method."})}catch(e){console.error(`Datacore Indexer failed to index ${n.data.path}: ${e}`),postMessage({$error:e.message})}};\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vcGFyc2ltbW9uL2J1aWxkL3BhcnNpbW1vbi51bWQubWluLmpzIiwgIi4uLy4uL3NvcnRlZC1idHJlZS9iK3RyZWUuanMiLCAiLi4vLi4vbHV4b24vc3JjL2Vycm9ycy5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9mb3JtYXRzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL3V0aWwuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvZW5nbGlzaC5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9mb3JtYXR0ZXIuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvaW52YWxpZC5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvc3lzdGVtWm9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvSUFOQVpvbmUuanMiLCAiLi4vLi4vbHV4b24vc3JjL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvem9uZXMvaW52YWxpZFpvbmUuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvem9uZVV0aWwuanMiLCAiLi4vLi4vbHV4b24vc3JjL3NldHRpbmdzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2xvY2FsZS5qcyIsICIuLi8uLi9sdXhvbi9zcmMvaW1wbC9yZWdleFBhcnNlci5qcyIsICIuLi8uLi9sdXhvbi9zcmMvZHVyYXRpb24uanMiLCAiLi4vLi4vbHV4b24vc3JjL2ludGVydmFsLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbmZvLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2RpZmYuanMiLCAiLi4vLi4vbHV4b24vc3JjL2ltcGwvZGlnaXRzLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL3Rva2VuUGFyc2VyLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9pbXBsL2NvbnZlcnNpb25zLmpzIiwgIi4uLy4uL2x1eG9uL3NyYy9kYXRldGltZS5qcyIsICIuLi8uLi8uLi9zcmMvdXRpbHMvbm9ybWFsaXplcnMudHMiLCAiLi4vLi4vZW1vamktcmVnZXgvaW5kZXgubWpzIiwgIi4uLy4uLy4uL3NyYy9leHByZXNzaW9uL2xpbmsudHMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvaWRlbnRpdHkuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvdmlzaXQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2RpcmVjdGl2ZXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2FuY2hvcnMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZG9jL2FwcGx5UmV2aXZlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9ub2Rlcy90b0pTLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL05vZGUuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvQWxpYXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvU2NhbGFyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2RvYy9jcmVhdGVOb2RlLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL0NvbGxlY3Rpb24uanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeUNvbW1lbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L2ZvbGRGbG93TGluZXMuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeVN0cmluZy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zdHJpbmdpZnkvc3RyaW5naWZ5LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3N0cmluZ2lmeS9zdHJpbmdpZnlQYWlyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2xvZy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvbWVyZ2UuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvYWRkUGFpclRvSlNNYXAuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvbm9kZXMvUGFpci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zdHJpbmdpZnkvc3RyaW5naWZ5Q29sbGVjdGlvbi5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9ub2Rlcy9ZQU1MTWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9jb21tb24vbWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L25vZGVzL1lBTUxTZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9zZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9zdHJpbmcuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvbW1vbi9udWxsLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9jb3JlL2Jvb2wuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc3RyaW5naWZ5L3N0cmluZ2lmeU51bWJlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvY29yZS9mbG9hdC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvY29yZS9pbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL2NvcmUvc2NoZW1hLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS9qc29uL3NjaGVtYS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvYmluYXJ5LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS95YW1sLTEuMS9wYWlycy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvb21hcC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvYm9vbC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvZmxvYXQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL3lhbWwtMS4xL2ludC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEveWFtbC0xLjEvc2V0LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3NjaGVtYS95YW1sLTEuMS90aW1lc3RhbXAuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3Qvc2NoZW1hL3lhbWwtMS4xL3NjaGVtYS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvdGFncy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9zY2hlbWEvU2NoZW1hLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3N0cmluZ2lmeS9zdHJpbmdpZnlEb2N1bWVudC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9kb2MvRG9jdW1lbnQuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvZXJyb3JzLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1wcm9wcy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3V0aWwtY29udGFpbnMtbmV3bGluZS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3V0aWwtZmxvdy1pbmRlbnQtY2hlY2suanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS91dGlsLW1hcC1pbmNsdWRlcy5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3Jlc29sdmUtYmxvY2stbWFwLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1ibG9jay1zZXEuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS9yZXNvbHZlLWVuZC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL3Jlc29sdmUtZmxvdy1jb2xsZWN0aW9uLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZS1jb2xsZWN0aW9uLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvcmVzb2x2ZS1ibG9jay1zY2FsYXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS9yZXNvbHZlLWZsb3ctc2NhbGFyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZS1zY2FsYXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvY29tcG9zZS91dGlsLWVtcHR5LXNjYWxhci1wb3NpdGlvbi5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL2NvbXBvc2Utbm9kZS5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9jb21wb3NlL2NvbXBvc2UtZG9jLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L2NvbXBvc2UvY29tcG9zZXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvcGFyc2UvY3N0LXZpc2l0LmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3BhcnNlL2NzdC5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9wYXJzZS9sZXhlci5qcyIsICIuLi8uLi95YW1sL2Jyb3dzZXIvZGlzdC9wYXJzZS9saW5lLWNvdW50ZXIuanMiLCAiLi4vLi4veWFtbC9icm93c2VyL2Rpc3QvcGFyc2UvcGFyc2VyLmpzIiwgIi4uLy4uL3lhbWwvYnJvd3Nlci9kaXN0L3B1YmxpYy1hcGkuanMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L2ltcG9ydC9tYXJrZG93bi50cyIsICIuLi8uLi8uLi9zcmMvZXhwcmVzc2lvbi9wYXJzZXIudHMiLCAiLi4vLi4vLi4vc3JjL2V4cHJlc3Npb24vbGl0ZXJhbC50cyIsICIuLi8uLi8uLi9zcmMvYXBpL3Jlc3VsdC50cyIsICIuLi8uLi8uLi9zcmMvZXhwcmVzc2lvbi9maWx0ZXJzLnRzIiwgIi4uLy4uLy4uL3NyYy9leHByZXNzaW9uL2V4cHJlc3Npb24udHMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L2ltcG9ydC9pbmxpbmUtZmllbGQudHMiLCAiLi4vLi4vLi4vc3JjL3V0aWxzL2RhdGEudHMiLCAiLi4vLi4vLi4vc3JjL2luZGV4L3R5cGVzL2pzb24vY29tbW9uLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC90eXBlcy95YW1sLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC9pbXBvcnQvY2FudmFzLnRzIiwgIi4uLy4uLy4uL3NyYy9pbmRleC93ZWItd29ya2VyL2ltcG9ydGVyLndvcmtlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIWZ1bmN0aW9uKG4sdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5QYXJzaW1tb249dCgpOm4uUGFyc2ltbW9uPXQoKX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXt9O2Z1bmN0aW9uIHIoZSl7aWYodFtlXSlyZXR1cm4gdFtlXS5leHBvcnRzO3ZhciB1PXRbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319O3JldHVybiBuW2VdLmNhbGwodS5leHBvcnRzLHUsdS5leHBvcnRzLHIpLHUubD0hMCx1LmV4cG9ydHN9cmV0dXJuIHIubT1uLHIuYz10LHIuZD1mdW5jdGlvbihuLHQsZSl7ci5vKG4sdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDplfSl9LHIucj1mdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci5uPWZ1bmN0aW9uKG4pe3ZhciB0PW4mJm4uX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIG59O3JldHVybiByLmQodCxcImFcIix0KSx0fSxyLm89ZnVuY3Rpb24obix0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sdCl9LHIucD1cIlwiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1ufXZhciB1PWUucHJvdG90eXBlO2Z1bmN0aW9uIG8obix0KXtmb3IodmFyIHI9MDtyPG47cisrKXQocil9ZnVuY3Rpb24gaShuLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7byh0Lmxlbmd0aCxmdW5jdGlvbihyKXtuKHRbcl0scix0KX0pfShmdW5jdGlvbihyLGUsdSl7dD1uKHQscixlLHUpfSxyKSx0fWZ1bmN0aW9uIGEobix0KXtyZXR1cm4gaShmdW5jdGlvbih0LHIsZSx1KXtyZXR1cm4gdC5jb25jYXQoW24ocixlLHUpXSl9LFtdLHQpfWZ1bmN0aW9uIGYobix0KXt2YXIgcj17djowLGJ1Zjp0fTtyZXR1cm4gbyhuLGZ1bmN0aW9uKCl7dmFyIG47cj17djpyLnY8PDF8KG49ci5idWYsblswXT4+NyksYnVmOmZ1bmN0aW9uKG4pe3ZhciB0PWkoZnVuY3Rpb24obix0LHIsZSl7cmV0dXJuIG4uY29uY2F0KHI9PT1lLmxlbmd0aC0xP0J1ZmZlci5mcm9tKFt0LDBdKS5yZWFkVUludDE2QkUoMCk6ZS5yZWFkVUludDE2QkUocikpfSxbXSxuKTtyZXR1cm4gQnVmZmVyLmZyb20oYShmdW5jdGlvbihuKXtyZXR1cm4objw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfX0pLHJ9ZnVuY3Rpb24gYygpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKFwiQnVmZmVyIGdsb2JhbCBkb2VzIG5vdCBleGlzdDsgcGxlYXNlIHVzZSB3ZWJwYWNrIGlmIHlvdSBuZWVkIHRvIHBhcnNlIEJ1ZmZlcnMgaW4gdGhlIGJyb3dzZXIuXCIpfWZ1bmN0aW9uIGwobil7cygpO3ZhciB0PWkoZnVuY3Rpb24obix0KXtyZXR1cm4gbit0fSwwLG4pO2lmKHQlOCE9MCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgYml0cyBbXCIrbi5qb2luKFwiLCBcIikrXCJdIGFkZCB1cCB0byBcIit0K1wiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOFwiKTt2YXIgcix1PXQvOCxvPShyPWZ1bmN0aW9uKG4pe3JldHVybiBuPjQ4fSxpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG58fChyKHQpP3Q6bil9LG51bGwsbikpO2lmKG8pdGhyb3cgbmV3IEVycm9yKG8rXCIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LlwiKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKStcIiBieXRlc1wiKTpiKGUsaShmdW5jdGlvbihuLHQpe3ZhciByPWYodCxuLmJ1Zik7cmV0dXJue2NvbGw6bi5jb2xsLmNvbmNhdChyLnYpLGJ1ZjpyLmJ1Zn19LHtjb2xsOltdLGJ1Zjp0LnNsaWNlKHIsZSl9LG4pLmNvbGwpfSl9ZnVuY3Rpb24gaChuLHQpe3JldHVybiBuZXcgZShmdW5jdGlvbihyLGUpe3JldHVybiBzKCksZSt0PnIubGVuZ3RoP3goZSx0K1wiIGJ5dGVzIGZvciBcIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mKHI9dCl8fE1hdGguZmxvb3IocikhPT1yfHx0PDB8fHQ+Nil0aHJvdyBuZXcgRXJyb3IobitcIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uXCIpO3ZhciByfWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoXCJ1aW50QkVcIixuKSxoKFwidWludEJFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoXCJ1aW50TEVcIixuKSxoKFwidWludExFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoXCJpbnRCRVwiLG4pLGgoXCJpbnRCRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoXCJpbnRMRVwiLG4pLGgoXCJpbnRMRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT09e30udG9TdHJpbmcuY2FsbChuKX1mdW5jdGlvbiB3KG4pe3JldHVybiBjKCkmJkJ1ZmZlci5pc0J1ZmZlcihuKX1mdW5jdGlvbiBiKG4sdCl7cmV0dXJue3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldDtyZXR1cm4gZS5fc3VwcG9ydHNTZXQ9bixufSgpJiZBcnJheS5mcm9tKXtmb3IodmFyIHI9bmV3IFNldChuKSx1PTA7dTx0Lmxlbmd0aDt1Kyspci5hZGQodFt1XSk7dmFyIG89QXJyYXkuZnJvbShyKTtyZXR1cm4gby5zb3J0KCksb31mb3IodmFyIGk9e30sYT0wO2E8bi5sZW5ndGg7YSsrKWlbblthXV09ITA7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDtmKyspaVt0W2ZdXT0hMDt2YXIgYz1bXTtmb3IodmFyIHMgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxzKSYmYy5wdXNoKHMpO3JldHVybiBjLnNvcnQoKSxjfShuLmV4cGVjdGVkLHQuZXhwZWN0ZWQpOnQuZXhwZWN0ZWQ7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxpbmRleDpuLmluZGV4LHZhbHVlOm4udmFsdWUsZnVydGhlc3Q6dC5mdXJ0aGVzdCxleHBlY3RlZDpyfX12YXIgaj17fTtmdW5jdGlvbiBTKG4sdCl7aWYodyhuKSlyZXR1cm57b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfShcIlxcblwiPT09bi5jaGFyQXQoaSl8fFwiXFxyXCI9PT1uLmNoYXJBdChpKSYmXCJcXG5cIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS19dmFyIGE9ZSt1LGY9dC1vO3JldHVybiByW3RdPXtsaW5lOmEsbGluZVN0YXJ0Om99LHtvZmZzZXQ6dCxsaW5lOmErMSxjb2x1bW46ZisxfX1mdW5jdGlvbiBfKG4pe2lmKCF5KG4pKXRocm93IG5ldyBFcnJvcihcIm5vdCBhIHBhcnNlcjogXCIrbil9ZnVuY3Rpb24gTChuLHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBuP24uY2hhckF0KHQpOm5bdF19ZnVuY3Rpb24gTyhuKXtpZihcIm51bWJlclwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBudW1iZXI6IFwiK24pfWZ1bmN0aW9uIGsobil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBmdW5jdGlvbjogXCIrbil9ZnVuY3Rpb24gUChuKXtpZihcInN0cmluZ1wiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBzdHJpbmc6IFwiK24pfXZhciBxPTIsQT0zLEk9OCxGPTUqSSxNPTQqSSx6PVwiICBcIjtmdW5jdGlvbiBSKG4sdCl7cmV0dXJuIG5ldyBBcnJheSh0KzEpLmpvaW4obil9ZnVuY3Rpb24gVShuLHQscil7dmFyIGU9dC1uLmxlbmd0aDtyZXR1cm4gZTw9MD9uOlIocixlKStufWZ1bmN0aW9uIFcobix0LHIsZSl7cmV0dXJue2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuXCJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXRcIjtpZih3KG4pKXt2YXIgaD1zLXMlSSxwPXMtaCxkPVcoaCxGLE0rSSxuLmxlbmd0aCksdj1hKGZ1bmN0aW9uKG4pe3JldHVybiBhKGZ1bmN0aW9uKG4pe3JldHVybiBVKG4udG9TdHJpbmcoMTYpLDIsXCIwXCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybltuLnNsaWNlKCldO2Zvcih2YXIgbz0wO288cjtvKyspZVt1XXx8ZS5wdXNoKFtdKSxlW3VdLnB1c2gobltvXSksKG8rMSkldD09MCYmdSsrO3JldHVybiBlfShuLnNsaWNlKGQuZnJvbSxkLnRvKS50b0pTT04oKS5kYXRhLEkpKTtvPWZ1bmN0aW9uKG4pe3JldHVybiAwPT09bi5mcm9tJiYxPT09bi50bz97ZnJvbTpuLmZyb20sdG86bi50b306e2Zyb206bi5mcm9tL0ksdG86TWF0aC5mbG9vcihuLnRvL0kpfX0oZCksZT1oL0kscj0zKnAscD49NCYmKHIrPTEpLGw9Mix1PWEoZnVuY3Rpb24obil7cmV0dXJuIG4ubGVuZ3RoPD00P24uam9pbihcIiBcIik6bi5zbGljZSgwLDQpLmpvaW4oXCIgXCIpK1wiICBcIituLnNsaWNlKDQpLmpvaW4oXCIgXCIpfSx2KSwoZj0oOCooby50bz4wP28udG8tMTpvLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKGY9Mil9ZWxzZXt2YXIgZz1uLnNwbGl0KC9cXHJcXG58W1xcblxcclxcdTIwMjhcXHUyMDI5XS8pO3I9Yy5jb2x1bW4tMSxlPWMubGluZS0xLG89VyhlLHEsQSxnLmxlbmd0aCksdT1nLnNsaWNlKG8uZnJvbSxvLnRvKSxmPW8udG8udG9TdHJpbmcoKS5sZW5ndGh9dmFyIG09ZS1vLmZyb207cmV0dXJuIHcobikmJihmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKSxpKGZ1bmN0aW9uKHQsZSx1KXt2YXIgaSxhPXU9PT1tLGM9YT9cIj4gXCI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsXCIwXCIpOlUoKG8uZnJvbSt1KzEpLnRvU3RyaW5nKCksZixcIiBcIiksW10uY29uY2F0KHQsW2MraStcIiB8IFwiK2VdLGE/W3orUihcIiBcIixmKStcIiB8IFwiK1UoXCJcIixyLFwiIFwiKStSKFwiXlwiLGwpXTpbXSl9LFtdLHUpLmpvaW4oXCJcXG5cIil9ZnVuY3Rpb24gTihuLHQpe3JldHVybltcIlxcblwiLFwiLS0gUEFSU0lORyBGQUlMRUQgXCIrUihcIi1cIiw1MCksXCJcXG5cXG5cIixEKG4sdCksXCJcXG5cXG5cIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD9cIkV4cGVjdGVkOlxcblxcblwiK3JbMF06XCJFeHBlY3RlZCBvbmUgb2YgdGhlIGZvbGxvd2luZzogXFxuXFxuXCIrci5qb2luKFwiLCBcIikpLFwiXFxuXCJdLmpvaW4oXCJcIik7dmFyIHJ9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gdm9pZCAwIT09bi5mbGFncz9uLmZsYWdzOltuLmdsb2JhbD9cImdcIjpcIlwiLG4uaWdub3JlQ2FzZT9cImlcIjpcIlwiLG4ubXVsdGlsaW5lP1wibVwiOlwiXCIsbi51bmljb2RlP1widVwiOlwiXCIsbi5zdGlja3k/XCJ5XCI6XCJcIl0uam9pbihcIlwiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4fXJldHVybiBCKGIoZSxvKSx1KX0pfWZ1bmN0aW9uIEooKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoMD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnRcIik7dmFyIHQ9bi5wb3AoKTtyZXR1cm4gayh0KSxDLmFwcGx5KG51bGwsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiB0LmFwcGx5KG51bGwsbil9KX1mdW5jdGlvbiBUKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHQ9bi5sZW5ndGg7aWYoMD09PXQpcmV0dXJuIFkoXCJ6ZXJvIGFsdGVybmF0ZXNcIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybltuXS5jb25jYXQodCl9KX1mdW5jdGlvbiBLKG4pe1Aobik7dmFyIHQ9XCInXCIrbitcIidcIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKFwibm90IGEgcmVnZXhwOiBcIituKTtmb3IodmFyIHQ9RyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBlPXQuY2hhckF0KHIpO2lmKFwiaVwiIT09ZSYmXCJtXCIhPT1lJiZcInVcIiE9PWUmJlwic1wiIT09ZSl0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHJlZ2V4cCBmbGFnIFwiJytlKydcIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cChcIl4oPzpcIituLnNvdXJjZStcIilcIixHKG4pKX0obiksdT1cIlwiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSxcInZhbGlkIG1hdGNoIGdyb3VwICgwIHRvIFwiK28ubGVuZ3RoK1wiKSBpbiBcIit1KX1yZXR1cm4geChlLHUpfSl9ZnVuY3Rpb24gWChuKXtyZXR1cm4gZShmdW5jdGlvbih0LHIpe3JldHVybiBiKHIsbil9KX1mdW5jdGlvbiBZKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHgocixuKX0pfWZ1bmN0aW9uIFoobil7aWYoeShuKSlyZXR1cm4gZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpO3JldHVybiBlLmluZGV4PXIsZS52YWx1ZT1cIlwiLGV9KTtpZihcInN0cmluZ1wiPT10eXBlb2YgbilyZXR1cm4gWihLKG4pKTtpZihuIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBaKFEobikpO3Rocm93IG5ldyBFcnJvcihcIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6IFwiK24pfWZ1bmN0aW9uICQobil7cmV0dXJuIF8obiksZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpLHU9dC5zbGljZShyLGUuaW5kZXgpO3JldHVybiBlLnN0YXR1cz94KHIsJ25vdCBcIicrdSsnXCInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngocixcImEgY2hhcmFjdGVyL2J5dGUgbWF0Y2hpbmcgXCIrbil9KX1mdW5jdGlvbiB0bihuLHQpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9bixuPXZvaWQgMCk7dmFyIHI9ZShmdW5jdGlvbihuLGUpe3JldHVybiByLl89dCgpLl8sci5fKG4sZSl9KTtyZXR1cm4gbj9yLmRlc2Mobik6cn1mdW5jdGlvbiBybigpe3JldHVybiBZKFwiZmFudGFzeS1sYW5kL2VtcHR5XCIpfXUucGFyc2U9ZnVuY3Rpb24obil7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcihcIi5wYXJzZSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc3RyaW5nIG9yIEJ1ZmZlciBhcyBpdHMgYXJndW1lbnRcIik7dmFyIHQscj10aGlzLnNraXAoYW4pLl8obiwwKTtyZXR1cm4gdD1yLnN0YXR1cz97c3RhdHVzOiEwLHZhbHVlOnIudmFsdWV9OntzdGF0dXM6ITEsaW5kZXg6UyhuLHIuZnVydGhlc3QpLGV4cGVjdGVkOnIuZXhwZWN0ZWR9LGRlbGV0ZSBqW25dLHR9LHUudHJ5UGFyc2U9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5wYXJzZShuKTtpZih0LnN0YXR1cylyZXR1cm4gdC52YWx1ZTt2YXIgcj1OKG4sdCksZT1uZXcgRXJyb3Iocik7dGhyb3cgZS50eXBlPVwiUGFyc2ltbW9uRXJyb3JcIixlLnJlc3VsdD10LGV9LHUuYXNzZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXMuY2hhaW4oZnVuY3Rpb24ocil7cmV0dXJuIG4ocik/WChyKTpZKHQpfSl9LHUub3I9ZnVuY3Rpb24obil7cmV0dXJuIFQodGhpcyxuKX0sdS50cmltPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLndyYXAobixuKX0sdS53cmFwPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEoobix0aGlzLHQsZnVuY3Rpb24obix0KXtyZXR1cm4gdH0pfSx1LnRocnU9ZnVuY3Rpb24obil7cmV0dXJuIG4odGhpcyl9LHUudGhlbj1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKSxDKHRoaXMsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSl9LHUubWFueT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9W10sdT12b2lkIDA7Oyl7aWYoISh1PUIobi5fKHQsciksdSkpLnN0YXR1cylyZXR1cm4gQihiKHIsZSksdSk7aWYocj09PXUuaW5kZXgpdGhyb3cgbmV3IEVycm9yKFwiaW5maW5pdGUgbG9vcCBkZXRlY3RlZCBpbiAubWFueSgpIHBhcnNlciAtLS0gY2FsbGluZyAubWFueSgpIG9uIGEgcGFyc2VyIHdoaWNoIGNhbiBhY2NlcHQgemVybyBjaGFyYWN0ZXJzIGlzIHVzdWFsbHkgdGhlIGNhdXNlXCIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSl9fSl9LHUudGllV2l0aD1mdW5jdGlvbihuKXtyZXR1cm4gUChuKSx0aGlzLm1hcChmdW5jdGlvbih0KXtpZihmdW5jdGlvbihuKXtpZighRShuKSl0aHJvdyBuZXcgRXJyb3IoXCJub3QgYW4gYXJyYXk6IFwiK24pfSh0KSx0Lmxlbmd0aCl7UCh0WzBdKTtmb3IodmFyIHI9dFswXSxlPTE7ZTx0Lmxlbmd0aDtlKyspUCh0W2VdKSxyKz1uK3RbZV07cmV0dXJuIHJ9cmV0dXJuXCJcIn0pfSx1LnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoXCJcIil9LHUudGltZXM9ZnVuY3Rpb24obix0KXt2YXIgcj10aGlzO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PW4pLE8obiksTyh0KSxlKGZ1bmN0aW9uKGUsdSl7Zm9yKHZhciBvPVtdLGk9dm9pZCAwLGE9dm9pZCAwLGY9MDtmPG47Zis9MSl7aWYoYT1CKGk9ci5fKGUsdSksYSksIWkuc3RhdHVzKXJldHVybiBhO3U9aS5pbmRleCxvLnB1c2goaS52YWx1ZSl9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJue3N0YXJ0Om4sdmFsdWU6dCxlbmQ6cn19KX0sdS5ub2RlPWZ1bmN0aW9uKG4pe3JldHVybiBKKGVuLHRoaXMsZW4sZnVuY3Rpb24odCxyLGUpe3JldHVybntuYW1lOm4sdmFsdWU6cixzdGFydDp0LGVuZDplfX0pfSx1LnNlcEJ5PWZ1bmN0aW9uKG4pe3JldHVybiBWKHRoaXMsbil9LHUuc2VwQnkxPWZ1bmN0aW9uKG4pe3JldHVybiBIKHRoaXMsbil9LHUubG9va2FoZWFkPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoWihuKSl9LHUubm90Rm9sbG93ZWRCeT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5za2lwKCQobikpfSx1LmRlc2M9ZnVuY3Rpb24obil7RShuKXx8KG49W25dKTt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzfHwodS5leHBlY3RlZD1uKSx1fSl9LHUuZmFsbGJhY2s9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMub3IoWChuKSl9LHUuYXA9ZnVuY3Rpb24obil7cmV0dXJuIEoobix0aGlzLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4odCl9KX0sdS5jaGFpbj1mdW5jdGlvbihuKXt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzP0Iobih1LnZhbHVlKS5fKHIsdS5pbmRleCksdSk6dX0pfSx1LmNvbmNhdD11Lm9yLHUuZW1wdHk9cm4sdS5vZj1YLHVbXCJmYW50YXN5LWxhbmQvYXBcIl09dS5hcCx1W1wiZmFudGFzeS1sYW5kL2NoYWluXCJdPXUuY2hhaW4sdVtcImZhbnRhc3ktbGFuZC9jb25jYXRcIl09dS5jb25jYXQsdVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT11LmVtcHR5LHVbXCJmYW50YXN5LWxhbmQvb2ZcIl09dS5vZix1W1wiZmFudGFzeS1sYW5kL21hcFwiXT11Lm1hcDt2YXIgZW49ZShmdW5jdGlvbihuLHQpe3JldHVybiBiKHQsUyhuLHQpKX0pLHVuPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gdD49bi5sZW5ndGg/eCh0LFwiYW55IGNoYXJhY3Rlci9ieXRlXCIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LFwiRU9GXCIpOmIodCxudWxsKX0pLGZuPVEoL1swLTldLykuZGVzYyhcImEgZGlnaXRcIiksY249USgvWzAtOV0qLykuZGVzYyhcIm9wdGlvbmFsIGRpZ2l0c1wiKSxzbj1RKC9bYS16XS9pKS5kZXNjKFwiYSBsZXR0ZXJcIiksbG49USgvW2Etel0qL2kpLmRlc2MoXCJvcHRpb25hbCBsZXR0ZXJzXCIpLGhuPVEoL1xccyovKS5kZXNjKFwib3B0aW9uYWwgd2hpdGVzcGFjZVwiKSxwbj1RKC9cXHMrLykuZGVzYyhcIndoaXRlc3BhY2VcIiksZG49SyhcIlxcclwiKSx2bj1LKFwiXFxuXCIpLGduPUsoXCJcXHJcXG5cIiksbW49VChnbix2bixkbikuZGVzYyhcIm5ld2xpbmVcIikseW49VChtbixhbik7ZS5hbGw9b24sZS5hbHQ9VCxlLmFueT11bixlLmNyPWRuLGUuY3JlYXRlTGFuZ3VhZ2U9ZnVuY3Rpb24obil7dmFyIHQ9e307Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJmZ1bmN0aW9uKHIpe3Rbcl09dG4oZnVuY3Rpb24oKXtyZXR1cm4gbltyXSh0KX0pfShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoXCJub25lIG9mICdcIituK1wiJ1wiKX0sZS5ub3RGb2xsb3dlZEJ5PSQsZS5vZj1YLGUub25lT2Y9ZnVuY3Rpb24obil7Zm9yKHZhciB0PW4uc3BsaXQoXCJcIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09XCInXCIrdFtyXStcIidcIjtyZXR1cm4gbm4oZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5kZXhPZih0KT49MH0pLmRlc2ModCl9LGUub3B0V2hpdGVzcGFjZT1obixlLlBhcnNlcj1lLGUucmFuZ2U9ZnVuY3Rpb24obix0KXtyZXR1cm4gbm4oZnVuY3Rpb24ocil7cmV0dXJuIG48PXImJnI8PXR9KS5kZXNjKG4rXCItXCIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmXCJzdHJpbmdcIj09dHlwZW9mIGFbMF0mJnkoYVsxXSkpe3ZhciBmPWFbMF07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZikpdGhyb3cgbmV3IEVycm9yKFwic2VxT2JqOiBkdXBsaWNhdGUga2V5IFwiK2YpO3RbZl09ITAscisrO2NvbnRpbnVlfXRocm93IG5ldyBFcnJvcihcInNlcU9iaiBhcmd1bWVudHMgbXVzdCBiZSBwYXJzZXJzIG9yIFtzdHJpbmcsIHBhcnNlcl0gYXJyYXkgcGFpcnMuXCIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoXCJzZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFyc2VyLCBmb3VuZCB6ZXJvXCIpO3JldHVybiBlKGZ1bmN0aW9uKG4sdCl7Zm9yKHZhciByLGU9e30saT0wO2k8bztpKz0xKXt2YXIgYSxmO2lmKEUodVtpXSk/KGE9dVtpXVswXSxmPXVbaV1bMV0pOihhPW51bGwsZj11W2ldKSwhKHI9QihmLl8obix0KSxyKSkuc3RhdHVzKXJldHVybiByO2EmJihlW2FdPXIudmFsdWUpLHQ9ci5pbmRleH1yZXR1cm4gQihiKHQsZSkscil9KX0sZS5zdHJpbmc9SyxlLnN1Y2NlZWQ9WCxlLnRha2VXaGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXI7ZTx0Lmxlbmd0aCYmbihMKHQsZSkpOyllKys7cmV0dXJuIGIoZSx0LnNsaWNlKHIsZSkpfSl9LGUudGVzdD1ubixlLndoaXRlc3BhY2U9cG4sZVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT1ybixlW1wiZmFudGFzeS1sYW5kL29mXCJdPVgsZS5CaW5hcnk9e2JpdFNlcTpsLGJpdFNlcU9iajpmdW5jdGlvbihuKXtzKCk7dmFyIHQ9e30scj0wLGU9YShmdW5jdGlvbihuKXtpZihFKG4pKXt2YXIgZT1uO2lmKDIhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJbXCIrZS5qb2luKFwiLCBcIikrXCJdIHNob3VsZCBiZSBsZW5ndGggMiwgZ290IGxlbmd0aCBcIitlLmxlbmd0aCk7aWYoUChlWzBdKSxPKGVbMV0pLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGVbMF0pKXRocm93IG5ldyBFcnJvcihcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcIitlWzBdKTtyZXR1cm4gdFtlWzBdXT0hMCxyKyssZX1yZXR1cm4gTyhuKSxbbnVsbCxuXX0sbik7aWYocjwxKXRocm93IG5ldyBFcnJvcihcImJpdFNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYWlyLCBnb3QgW1wiK24uam9pbihcIiwgXCIpK1wiXVwiKTt2YXIgdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuWzBdfSxlKTtyZXR1cm4gbChhKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSxlKSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGwhPT10WzBdJiYoblt0WzBdXT10WzFdKSxufSx7fSxhKGZ1bmN0aW9uKHQscil7cmV0dXJuW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcihcIlZhbHVlIHNwZWNpZmllZCB0byBieXRlIGNvbnN0cnVjdG9yIChcIituK1wiPTB4XCIrbi50b1N0cmluZygxNikrXCIpIGlzIGxhcmdlciBpbiB2YWx1ZSB0aGFuIGEgc2luZ2xlIGJ5dGUuXCIpO3ZhciB0PShuPjE1P1wiMHhcIjpcIjB4MFwiKStuLnRvU3RyaW5nKDE2KTtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PUwocixlKTtyZXR1cm4gdT09PW4/YihlKzEsdSk6eChlLHQpfSl9LGJ1ZmZlcjpmdW5jdGlvbihuKXtyZXR1cm4gaChcImJ1ZmZlclwiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKFwic3RyaW5nXCIsdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKG4pfSl9LHVpbnRCRTpkLHVpbnQ4QkU6ZCgxKSx1aW50MTZCRTpkKDIpLHVpbnQzMkJFOmQoNCksdWludExFOnYsdWludDhMRTp2KDEpLHVpbnQxNkxFOnYoMiksdWludDMyTEU6dig0KSxpbnRCRTpnLGludDhCRTpnKDEpLGludDE2QkU6ZygyKSxpbnQzMkJFOmcoNCksaW50TEU6bSxpbnQ4TEU6bSgxKSxpbnQxNkxFOm0oMiksaW50MzJMRTptKDQpLGZsb2F0QkU6aChcImZsb2F0QkVcIiw0KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVhZEZsb2F0QkUoMCl9KSxmbG9hdExFOmgoXCJmbG9hdExFXCIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aChcImRvdWJsZUJFXCIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVCRSgwKX0pLGRvdWJsZUxFOmgoXCJkb3VibGVMRVwiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlTEUoMCl9KX0sbi5leHBvcnRzPWV9XSl9KTsiLCAiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbiAgICB9O1xyXG59KSgpO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRW1wdHlCVHJlZSA9IGV4cG9ydHMuYXNTZXQgPSBleHBvcnRzLnNpbXBsZUNvbXBhcmF0b3IgPSBleHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gdm9pZCAwO1xyXG4vKipcclxuICogQ29tcGFyZXMgRGVmYXVsdENvbXBhcmFibGVzIHRvIGZvcm0gYSBzdHJpY3QgcGFydGlhbCBvcmRlcmluZy5cclxuICpcclxuICogSGFuZGxlcyArLy0wIGFuZCBOYU4gbGlrZSBNYXA6IE5hTiBpcyBlcXVhbCB0byBOYU4sIGFuZCAtMCBpcyBlcXVhbCB0byArMC5cclxuICpcclxuICogQXJyYXlzIGFyZSBjb21wYXJlZCB1c2luZyAnPCcgYW5kICc+Jywgd2hpY2ggbWF5IGNhdXNlIHVuZXhwZWN0ZWQgZXF1YWxpdHk6XHJcbiAqIGZvciBleGFtcGxlIFsxXSB3aWxsIGJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gWycxJ10uXHJcbiAqXHJcbiAqIFR3byBvYmplY3RzIHdpdGggZXF1YWwgdmFsdWVPZiBjb21wYXJlIHRoZSBzYW1lLCBidXQgY29tcGFyZSB1bmVxdWFsIHRvXHJcbiAqIHByaW1pdGl2ZXMgdGhhdCBoYXZlIHRoZSBzYW1lIHZhbHVlLlxyXG4gKi9cclxuZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IoYSwgYikge1xyXG4gICAgLy8gU3BlY2lhbCBjYXNlIGZpbml0ZSBudW1iZXJzIGZpcnN0IGZvciBwZXJmb3JtYW5jZS5cclxuICAgIC8vIE5vdGUgdGhhdCB0aGUgdHJpY2sgb2YgdXNpbmcgJ2EgLSBiJyBhbmQgY2hlY2tpbmcgZm9yIE5hTiB0byBkZXRlY3Qgbm9uLW51bWJlcnNcclxuICAgIC8vIGRvZXMgbm90IHdvcmsgaWYgdGhlIHN0cmluZ3MgYXJlIG51bWVyaWMgKGV4OiBcIjVcIikuIFRoaXMgd291bGQgbGVhZGluZyBtb3N0IFxyXG4gICAgLy8gY29tcGFyaXNvbiBmdW5jdGlvbnMgdXNpbmcgdGhhdCBhcHByb2FjaCB0byBmYWlsIHRvIGhhdmUgdHJhbnNpdGl2aXR5LlxyXG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShhKSAmJiBOdW1iZXIuaXNGaW5pdGUoYikpIHtcclxuICAgICAgICByZXR1cm4gYSAtIGI7XHJcbiAgICB9XHJcbiAgICAvLyBUaGUgZGVmYXVsdCA8IGFuZCA+IG9wZXJhdG9ycyBhcmUgbm90IHRvdGFsbHkgb3JkZXJlZC4gVG8gYWxsb3cgdHlwZXMgdG8gYmUgbWl4ZWRcclxuICAgIC8vIGluIGEgc2luZ2xlIGNvbGxlY3Rpb24sIGNvbXBhcmUgdHlwZXMgYW5kIG9yZGVyIHZhbHVlcyBvZiBkaWZmZXJlbnQgdHlwZXMgYnkgdHlwZS5cclxuICAgIHZhciB0YSA9IHR5cGVvZiBhO1xyXG4gICAgdmFyIHRiID0gdHlwZW9mIGI7XHJcbiAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRhIDwgdGIgPyAtMSA6IDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGEgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgLy8gc3RhbmRhcmRpemVkIEphdmFTY3JpcHQgYnVnOiBudWxsIGlzIG5vdCBhbiBvYmplY3QsIGJ1dCB0eXBlb2Ygc2F5cyBpdCBpc1xyXG4gICAgICAgIGlmIChhID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gYiA9PT0gbnVsbCA/IDAgOiAtMTtcclxuICAgICAgICBlbHNlIGlmIChiID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICBhID0gYS52YWx1ZU9mKCk7XHJcbiAgICAgICAgYiA9IGIudmFsdWVPZigpO1xyXG4gICAgICAgIHRhID0gdHlwZW9mIGE7XHJcbiAgICAgICAgdGIgPSB0eXBlb2YgYjtcclxuICAgICAgICAvLyBEZWFsIHdpdGggdGhlIHR3byB2YWx1ZU9mKClzIHByb2R1Y2luZyBkaWZmZXJlbnQgdHlwZXNcclxuICAgICAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0YSA8IHRiID8gLTEgOiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGEgYW5kIGIgYXJlIG5vdyB0aGUgc2FtZSB0eXBlLCBhbmQgd2lsbCBiZSBhIG51bWJlciwgc3RyaW5nIG9yIGFycmF5IFxyXG4gICAgLy8gKHdoaWNoIHdlIGFzc3VtZSBob2xkcyBudW1iZXJzIG9yIHN0cmluZ3MpLCBvciBzb21ldGhpbmcgdW5zdXBwb3J0ZWQuXHJcbiAgICBpZiAoYSA8IGIpXHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgaWYgKGEgPiBiKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgaWYgKGEgPT09IGIpXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAvLyBPcmRlciBOYU4gbGVzcyB0aGFuIG90aGVyIG51bWJlcnNcclxuICAgIGlmIChOdW1iZXIuaXNOYU4oYSkpXHJcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihiKSA/IDAgOiAtMTtcclxuICAgIGVsc2UgaWYgKE51bWJlci5pc05hTihiKSlcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIC8vIFRoaXMgY291bGQgYmUgdHdvIG9iamVjdHMgKGUuZy4gWzddIGFuZCBbJzcnXSkgdGhhdCBhcmVuJ3Qgb3JkZXJlZFxyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgPyAwIDogTnVtYmVyLk5hTjtcclxufVxyXG5leHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gZGVmYXVsdENvbXBhcmF0b3I7XHJcbjtcclxuZnVuY3Rpb24gc2ltcGxlQ29tcGFyYXRvcihhLCBiKSB7XHJcbiAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA8IGIgPyAtMSA6IDA7XHJcbn1cclxuZXhwb3J0cy5zaW1wbGVDb21wYXJhdG9yID0gc2ltcGxlQ29tcGFyYXRvcjtcclxuO1xyXG4vKipcclxuICogQSByZWFzb25hYmx5IGZhc3QgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMgd2l0aCBhIHBvd2VyZnVsIEFQSS5cclxuICogTGFyZ2VseSBjb21wYXRpYmxlIHdpdGggdGhlIHN0YW5kYXJkIE1hcC4gQlRyZWUgaXMgYSBCKyB0cmVlIGRhdGEgc3RydWN0dXJlLFxyXG4gKiBzbyB0aGUgY29sbGVjdGlvbiBpcyBzb3J0ZWQgYnkga2V5LlxyXG4gKlxyXG4gKiBCKyB0cmVlcyB0ZW5kIHRvIHVzZSBtZW1vcnkgbW9yZSBlZmZpY2llbnRseSB0aGFuIGhhc2h0YWJsZXMgc3VjaCBhcyB0aGVcclxuICogc3RhbmRhcmQgTWFwLCBlc3BlY2lhbGx5IHdoZW4gdGhlIGNvbGxlY3Rpb24gY29udGFpbnMgYSBsYXJnZSBudW1iZXIgb2ZcclxuICogaXRlbXMuIEhvd2V2ZXIsIG1haW50YWluaW5nIHRoZSBzb3J0IG9yZGVyIG1ha2VzIHRoZW0gbW9kZXN0bHkgc2xvd2VyOlxyXG4gKiBPKGxvZyBzaXplKSByYXRoZXIgdGhhbiBPKDEpLiBUaGlzIEIrIHRyZWUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgTygxKVxyXG4gKiBmYXN0IGNsb25pbmcuIEl0IGFsc28gc3VwcG9ydHMgZnJlZXplKCksIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0XHJcbiAqIGEgQlRyZWUgaXMgbm90IGNoYW5nZWQgYWNjaWRlbnRhbGx5LlxyXG4gKlxyXG4gKiBDb25mdXNpbmdseSwgdGhlIEVTNiBNYXAuZm9yRWFjaChjKSBtZXRob2QgY2FsbHMgYyh2YWx1ZSxrZXkpIGluc3RlYWQgb2ZcclxuICogYyhrZXksdmFsdWUpLCBpbiBjb250cmFzdCB0byBvdGhlciBtZXRob2RzIHN1Y2ggYXMgc2V0KCkgYW5kIGVudHJpZXMoKVxyXG4gKiB3aGljaCBwdXQgdGhlIGtleSBmaXJzdC4gSSBjYW4gb25seSBhc3N1bWUgdGhhdCB0aGUgb3JkZXIgd2FzIHJldmVyc2VkIG9uXHJcbiAqIHRoZSB0aGVvcnkgdGhhdCB1c2VycyB3b3VsZCB1c3VhbGx5IHdhbnQgdG8gZXhhbWluZSB2YWx1ZXMgYW5kIGlnbm9yZSBrZXlzLlxyXG4gKiBCVHJlZSdzIGZvckVhY2goKSB0aGVyZWZvcmUgd29ya3MgdGhlIHNhbWUgd2F5LCBidXQgYSBzZWNvbmQgbWV0aG9kXHJcbiAqIGAuZm9yRWFjaFBhaXIoKGtleSx2YWx1ZSk9PnsuLi59KWAgaXMgcHJvdmlkZWQgd2hpY2ggc2VuZHMgeW91IHRoZSBrZXlcclxuICogZmlyc3QgYW5kIHRoZSB2YWx1ZSBzZWNvbmQ7IHRoaXMgbWV0aG9kIGlzIHNsaWdodGx5IGZhc3RlciBiZWNhdXNlIGl0IGlzXHJcbiAqIHRoZSBcIm5hdGl2ZVwiIGZvci1lYWNoIG1ldGhvZCBmb3IgdGhpcyBjbGFzcy5cclxuICpcclxuICogT3V0IG9mIHRoZSBib3gsIEJUcmVlIHN1cHBvcnRzIGtleXMgdGhhdCBhcmUgbnVtYmVycywgc3RyaW5ncywgYXJyYXlzIG9mXHJcbiAqIG51bWJlcnMvc3RyaW5ncywgRGF0ZSwgYW5kIG9iamVjdHMgdGhhdCBoYXZlIGEgdmFsdWVPZigpIG1ldGhvZCByZXR1cm5pbmcgYVxyXG4gKiBudW1iZXIgb3Igc3RyaW5nLiBPdGhlciBkYXRhIHR5cGVzLCBzdWNoIGFzIGFycmF5cyBvZiBEYXRlIG9yIGN1c3RvbVxyXG4gKiBvYmplY3RzLCByZXF1aXJlIGEgY3VzdG9tIGNvbXBhcmF0b3IsIHdoaWNoIHlvdSBtdXN0IHBhc3MgYXMgdGhlIHNlY29uZFxyXG4gKiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3IgKHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBvcHRpb25hbCBsaXN0IG9mXHJcbiAqIGluaXRpYWwgaXRlbXMpLiBTeW1ib2xzIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgYmVjYXVzZSB0aGV5IGFyZSB1bm9yZGVyZWRcclxuICogKG9uZSBTeW1ib2wgaXMgbmV2ZXIgXCJncmVhdGVyXCIgb3IgXCJsZXNzXCIgdGhhbiBhbm90aGVyKS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogR2l2ZW4gYSB7bmFtZTogc3RyaW5nLCBhZ2U6IG51bWJlcn0gb2JqZWN0LCB5b3UgY2FuIGNyZWF0ZSBhIHRyZWUgc29ydGVkIGJ5XHJcbiAqIG5hbWUgYW5kIHRoZW4gYnkgYWdlIGxpa2UgdGhpczpcclxuICpcclxuICogICAgIHZhciB0cmVlID0gbmV3IEJUcmVlKHVuZGVmaW5lZCwgKGEsIGIpID0+IHtcclxuICogICAgICAgaWYgKGEubmFtZSA+IGIubmFtZSlcclxuICogICAgICAgICByZXR1cm4gMTsgLy8gUmV0dXJuIGEgbnVtYmVyID4wIHdoZW4gYSA+IGJcclxuICogICAgICAgZWxzZSBpZiAoYS5uYW1lIDwgYi5uYW1lKVxyXG4gKiAgICAgICAgIHJldHVybiAtMTsgLy8gUmV0dXJuIGEgbnVtYmVyIDwwIHdoZW4gYSA8IGJcclxuICogICAgICAgZWxzZSAvLyBuYW1lcyBhcmUgZXF1YWwgKG9yIGluY29tcGFyYWJsZSlcclxuICogICAgICAgICByZXR1cm4gYS5hZ2UgLSBiLmFnZTsgLy8gUmV0dXJuID4wIHdoZW4gYS5hZ2UgPiBiLmFnZVxyXG4gKiAgICAgfSk7XHJcbiAqXHJcbiAqICAgICB0cmVlLnNldCh7bmFtZTpcIkJpbGxcIiwgYWdlOjE3fSwgXCJoYXBweVwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiRnJhblwiLCBhZ2U6NDB9LCBcImJ1c3kgJiBzdHJlc3NlZFwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiQmlsbFwiLCBhZ2U6NTV9LCBcInJlY2VudGx5IGxhaWQgb2ZmXCIpO1xyXG4gKiAgICAgdHJlZS5mb3JFYWNoUGFpcigoaywgdikgPT4ge1xyXG4gKiAgICAgICBjb25zb2xlLmxvZyhgTmFtZTogJHtrLm5hbWV9IEFnZTogJHtrLmFnZX0gU3RhdHVzOiAke3Z9YCk7XHJcbiAqICAgICB9KTtcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoZSBcInJhbmdlXCIgbWV0aG9kcyAoYGZvckVhY2gsIGZvclJhbmdlLCBlZGl0UmFuZ2VgKSB3aWxsIHJldHVybiB0aGUgbnVtYmVyXHJcbiAqIG9mIGVsZW1lbnRzIHRoYXQgd2VyZSBzY2FubmVkLiBJbiBhZGRpdGlvbiwgdGhlIGNhbGxiYWNrIGNhbiByZXR1cm4ge2JyZWFrOlJ9XHJcbiAqIHRvIHN0b3AgZWFybHkgYW5kIHJldHVybiBSIGZyb20gdGhlIG91dGVyIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiAtIFRPRE86IFRlc3QgcGVyZm9ybWFuY2Ugb2YgcHJlYWxsb2NhdGluZyB2YWx1ZXMgYXJyYXkgYXQgbWF4IHNpemVcclxuICogLSBUT0RPOiBBZGQgZmFzdCBpbml0aWFsaXphdGlvbiB3aGVuIGEgc29ydGVkIGFycmF5IGlzIHByb3ZpZGVkIHRvIGNvbnN0cnVjdG9yXHJcbiAqXHJcbiAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9xd2VydGllL2J0cmVlLXR5cGVzY3JpcHRcclxuICpcclxuICogQXJlIHlvdSBhIEMjIGRldmVsb3Blcj8gWW91IG1pZ2h0IGxpa2UgdGhlIHNpbWlsYXIgZGF0YSBzdHJ1Y3R1cmVzIEkgbWFkZSBmb3IgQyM6XHJcbiAqIEJEaWN0aW9uYXJ5LCBCTGlzdCwgZXRjLiBTZWUgaHR0cDovL2NvcmUubG95Yy5uZXQvY29sbGVjdGlvbnMvXHJcbiAqXHJcbiAqIEBhdXRob3IgRGF2aWQgUGllcGdyYXNzXHJcbiAqL1xyXG52YXIgQlRyZWUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGFuIGVtcHR5IEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gY29tcGFyZSBDdXN0b20gZnVuY3Rpb24gdG8gY29tcGFyZSBwYWlycyBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZS5cclxuICAgICAqICAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdENvbXBhcmF0b3Igd2lsbCBiZSB1c2VkIHdoaWNoIGlzIHZhbGlkIGFzIGxvbmcgYXMgSyBleHRlbmRzIERlZmF1bHRDb21wYXJhYmxlLlxyXG4gICAgICogQHBhcmFtIGVudHJpZXMgQSBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGluaXRpYWxpemUgdGhlIHRyZWVcclxuICAgICAqIEBwYXJhbSBtYXhOb2RlU2l6ZSBCcmFuY2hpbmcgZmFjdG9yIChtYXhpbXVtIGl0ZW1zIG9yIGNoaWxkcmVuIHBlciBub2RlKVxyXG4gICAgICogICBNdXN0IGJlIGluIHJhbmdlIDQuLjI1Ni4gSWYgdW5kZWZpbmVkIG9yIDw0IHRoZW4gZGVmYXVsdCBpcyB1c2VkOyBpZiA+MjU2IHRoZW4gMjU2LlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBCVHJlZShlbnRyaWVzLCBjb21wYXJlLCBtYXhOb2RlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5fbWF4Tm9kZVNpemUgPSBtYXhOb2RlU2l6ZSA+PSA0ID8gTWF0aC5taW4obWF4Tm9kZVNpemUsIDI1NikgOiAzMjtcclxuICAgICAgICB0aGlzLl9jb21wYXJlID0gY29tcGFyZSB8fCBkZWZhdWx0Q29tcGFyYXRvcjtcclxuICAgICAgICBpZiAoZW50cmllcylcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWlycyhlbnRyaWVzKTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XHJcbiAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvLyBFUzYgTWFwPEssVj4gbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJsZW5ndGhcIiwge1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0VtcHR5XCIsIHtcclxuICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmZiB0aGUgdHJlZSBjb250YWlucyBubyBrZXktdmFsdWUgcGFpcnMuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9zaXplID09PSAwOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvKiogUmVsZWFzZXMgdGhlIHRyZWUgc28gdGhhdCBpdHMgc2l6ZSBpcyAwLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEVTNiBNYXAsIHRoZSBhcmd1bWVudCBvcmRlciB0b1xyXG4gICAgICogIHRoZSBjYWxsYmFjayBpcyBiYWNrd2FyZHM6IHZhbHVlIGZpcnN0LCB0aGVuIGtleS4gQ2FsbCBmb3JFYWNoUGFpclxyXG4gICAgICogIGluc3RlYWQgdG8gcmVjZWl2ZSB0aGUga2V5IGFzIHRoZSBmaXJzdCBhcmd1bWVudC5cclxuICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCB0aGlzIHBhcmFtZXRlciBpcyBhc3NpZ25lZCBhcyB0aGUgYHRoaXNgXHJcbiAgICAgKiAgICAgICAgdmFsdWUgZm9yIGVhY2ggY2FsbGJhY2suXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHZhbHVlcyB0aGF0IHdlcmUgc2VudCB0byB0aGUgY2FsbGJhY2ssXHJcbiAgICAgKiAgICAgICAgb3IgdGhlIFIgdmFsdWUgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkIHticmVhazpSfS4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24gKGNhbGxiYWNrLCB0aGlzQXJnKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAodGhpc0FyZyAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpc0FyZyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhaXIoZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuIGNhbGxiYWNrKHYsIGssIF90aGlzKTsgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBUaGUgY2FsbGJhY2sgY2FuIHJldHVybiB7YnJlYWs6Un0gKHdoZXJlIFIgaXMgYW55IHZhbHVlXHJcbiAgICAgKiAgZXhjZXB0IHVuZGVmaW5lZCkgdG8gc3RvcCBpbW1lZGlhdGVseSBhbmQgcmV0dXJuIFIgZnJvbSBmb3JFYWNoUGFpci5cclxuICAgICAqIEBwYXJhbSBvbkZvdW5kIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2gga2V5LXZhbHVlIHBhaXIuIFRoaXNcclxuICAgICAqICAgICAgICBmdW5jdGlvbiBjYW4gcmV0dXJuIHticmVhazpSfSB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIuXHJcbiAgICAgKiAgICAgICAgVGhlIHJlYXNvbiB0aGF0IHlvdSBtdXN0IHJldHVybiB7YnJlYWs6Un0gaW5zdGVhZCBvZiBzaW1wbHkgUlxyXG4gICAgICogICAgICAgIGl0c2VsZiBpcyBmb3IgY29uc2lzdGVuY3kgd2l0aCBlZGl0UmFuZ2UoKSwgd2hpY2ggYWxsb3dzXHJcbiAgICAgKiAgICAgICAgbXVsdGlwbGUgYWN0aW9ucywgbm90IGp1c3QgYnJlYWtpbmcuXHJcbiAgICAgKiBAcGFyYW0gaW5pdGlhbENvdW50ZXIgVGhpcyBpcyB0aGUgdmFsdWUgb2YgdGhlIHRoaXJkIGFyZ3VtZW50IG9mXHJcbiAgICAgKiAgICAgICAgYG9uRm91bmRgIHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC4gVGhlIGNvdW50ZXIgaW5jcmVhc2VzXHJcbiAgICAgKiAgICAgICAgYnkgb25lIGVhY2ggdGltZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBEZWZhdWx0IHZhbHVlOiAwXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhaXJzIHNlbnQgdG8gdGhlIGNhbGxiYWNrIChwbHVzIGluaXRpYWxDb3VudGVyLFxyXG4gICAgICogICAgICAgIGlmIHlvdSBwcm92aWRlZCBvbmUpLiBJZiB0aGUgY2FsbGJhY2sgcmV0dXJuZWQge2JyZWFrOlJ9IHRoZW5cclxuICAgICAqICAgICAgICB0aGUgUiB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZvckVhY2hQYWlyID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciBsb3cgPSB0aGlzLm1pbktleSgpLCBoaWdoID0gdGhpcy5tYXhLZXkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShsb3csIGhpZ2gsIHRydWUsIGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcik7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5kcyBhIHBhaXIgaW4gdGhlIHRyZWUgYW5kIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIGEgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEByZXR1cm5zIHRoZSB2YWx1ZSwgb3IgZGVmYXVsdFZhbHVlIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5nZXQoa2V5LCBkZWZhdWx0VmFsdWUsIHRoaXMpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBvciBvdmVyd3JpdGVzIGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNvcnQgb3JkZXIgb2ZcclxuICAgICAqICAgICAgICBkYXRhIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIGRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGtleSAob3B0aW9uYWwpXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGtleS12YWx1ZSBwYWlyXHJcbiAgICAgKiAgICAgICAgKGRlZmF1bHQ6IHRydWUpLiBJZiB0aGlzIGlzIGZhbHNlIGFuZCB0aGVyZSBpcyBhbiBleGlzdGluZ1xyXG4gICAgICogICAgICAgIGtleS12YWx1ZSBwYWlyIHRoZW4gdGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBuZXcga2V5LXZhbHVlIHBhaXIgd2FzIGFkZGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqIE5vdGU6IHdoZW4gb3ZlcndyaXRpbmcgYSBwcmV2aW91cyBlbnRyeSwgdGhlIGtleSBpcyB1cGRhdGVkXHJcbiAgICAgKiBhcyB3ZWxsIGFzIHRoZSB2YWx1ZS4gVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyB0aGUgbmV3IGtleVxyXG4gICAgICogaGFzIGRhdGEgdGhhdCBkb2VzIG5vdCBhZmZlY3QgaXRzIHNvcnQgb3JkZXIuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Jvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSB0aGlzLl9yb290LmNsb25lKCk7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX3Jvb3Quc2V0KGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdGhpcyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSB8fCByZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIC8vIFJvb3Qgbm9kZSBoYXMgc3BsaXQsIHNvIGNyZWF0ZSBhIG5ldyByb290IG5vZGUuXHJcbiAgICAgICAgdGhpcy5fcm9vdCA9IG5ldyBCTm9kZUludGVybmFsKFt0aGlzLl9yb290LCByZXN1bHRdKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgQisgdHJlZSwgZmFsc2UgaWYgbm90LlxyXG4gICAgICogVXNlIGdldCgpIGZvciBiZXN0IHBlcmZvcm1hbmNlOyB1c2UgaGFzKCkgaWYgeW91IG5lZWQgdG9cclxuICAgICAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gXCJ1bmRlZmluZWQgdmFsdWVcIiBhbmQgXCJrZXkgbm90IHByZXNlbnRcIi5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGRldGVjdFxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShrZXksIGtleSwgdHJ1ZSwgdW5kZWZpbmVkKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBzaW5nbGUga2V5LXZhbHVlIHBhaXIgZnJvbSB0aGUgQisgdHJlZS5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGZpbmRcclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBwYWlyIHdhcyBmb3VuZCBhbmQgcmVtb3ZlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIERlbGV0ZVJhbmdlKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS12YWx1ZSBwYWlycyBzZXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aFBhaXJzID0gZnVuY3Rpb24gKHBhaXJzLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldFBhaXJzKHBhaXJzLCBvdmVyd3JpdGUpICE9PSAwIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleXMgcHJlc2VudC5cclxuICAgICAqICBAcGFyYW0ga2V5cyBUaGUga2V5cyB0byBhZGQuIElmIGEga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgdHJlZSxcclxuICAgICAqICAgICAgICAgbmVpdGhlciB0aGUgZXhpc3Rpbmcga2V5IG5vciB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbW9kaWZpZWQuXHJcbiAgICAgKiAgQHBhcmFtIHJldHVyblRoaXNJZlVuY2hhbmdlZCBpZiB0cnVlLCByZXR1cm5zIHRoaXMgaWYgYWxsIGtleXMgYWxyZWFkeVxyXG4gICAgICogIGV4aXN0ZWQuIFBlcmZvcm1hbmNlIG5vdGU6IGR1ZSB0byB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgY2xhc3MsIGFsbFxyXG4gICAgICogIG5vZGUocykgbGVhZGluZyB0byBleGlzdGluZyBrZXlzIGFyZSBjbG9uZWQgZXZlbiBpZiB0aGUgY29sbGVjdGlvbiBpc1xyXG4gICAgICogIHVsdGltYXRlbHkgdW5jaGFuZ2VkLlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRoS2V5cyA9IGZ1bmN0aW9uIChrZXlzLCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCksIGNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGNoYW5nZWQgPSBudS5zZXQoa2V5c1tpXSwgdW5kZWZpbmVkLCBmYWxzZSkgfHwgY2hhbmdlZDtcclxuICAgICAgICByZXR1cm4gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkICYmICFjaGFuZ2VkID8gdGhpcyA6IG51O1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdHJlZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5IHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiB0aGUga2V5IGRpZG4ndCBleGlzdC5cclxuICAgICAqICBQZXJmb3JtYW5jZSBub3RlOiBkdWUgdG8gdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNsYXNzLCBub2RlKHMpIGxlYWRpbmdcclxuICAgICAqICB0byB3aGVyZSB0aGUga2V5IHdvdWxkIGhhdmUgYmVlbiBzdG9yZWQgYXJlIGNsb25lZCBldmVuIHdoZW4gdGhlIGtleVxyXG4gICAgICogIHR1cm5zIG91dCBub3QgdG8gZXhpc3QgYW5kIHRoZSBjb2xsZWN0aW9uIGlzIHVuY2hhbmdlZC5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLndpdGhvdXQgPSBmdW5jdGlvbiAoa2V5LCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53aXRob3V0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIHJldHVyblRoaXNJZlVuY2hhbmdlZCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXlzIHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiBub25lIG9mIHRoZSBrZXlzXHJcbiAgICAgKiAgZXhpc3RlZC4gUGVyZm9ybWFuY2Ugbm90ZTogZHVlIHRvIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBjbGFzcyxcclxuICAgICAqICBub2RlKHMpIGxlYWRpbmcgdG8gd2hlcmUgdGhlIGtleSB3b3VsZCBoYXZlIGJlZW4gc3RvcmVkIGFyZSBjbG9uZWRcclxuICAgICAqICBldmVuIHdoZW4gdGhlIGtleSB0dXJucyBvdXQgbm90IHRvIGV4aXN0LlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dEtleXMgPSBmdW5jdGlvbiAoa2V5cywgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKSB7XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5jbG9uZSgpO1xyXG4gICAgICAgIHJldHVybiBudS5kZWxldGVLZXlzKGtleXMpIHx8ICFyZXR1cm5UaGlzSWZVbmNoYW5nZWQgPyBudSA6IHRoaXM7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzIHJlbW92ZWQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKTtcclxuICAgICAgICBpZiAobnUuZGVsZXRlUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkgPT09IDAgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggcGFpcnMgcmVtb3ZlZCB3aGVuZXZlciB0aGUgY2FsbGJhY2tcclxuICAgICAqICBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLiBgd2hlcmUoKWAgaXMgYSBzeW5vbnltIGZvciB0aGlzIG1ldGhvZC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICB2YXIgZGVsO1xyXG4gICAgICAgIG51LmVkaXRBbGwoZnVuY3Rpb24gKGssIHYsIGkpIHtcclxuICAgICAgICAgICAgaWYgKCFjYWxsYmFjayhrLCB2LCBpKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZWwgPSBEZWxldGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCFkZWwgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggYWxsIHZhbHVlcyBhbHRlcmVkIGJ5IGEgY2FsbGJhY2sgZnVuY3Rpb24uICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWFwVmFsdWVzID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIHRtcCA9IHt9O1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICBudS5lZGl0QWxsKGZ1bmN0aW9uIChrLCB2LCBpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0bXAudmFsdWUgPSBjYWxsYmFjayh2LCBrLCBpKSwgdG1wO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcclxuICAgICAgICB2YXIgaSA9IDAsIHAgPSBpbml0aWFsVmFsdWU7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKHRoaXMubWluS2V5KCksIFJldXNlZEFycmF5KSwgbmV4dDtcclxuICAgICAgICB3aGlsZSAoIShuZXh0ID0gaXQubmV4dCgpKS5kb25lKVxyXG4gICAgICAgICAgICBwID0gY2FsbGJhY2socCwgbmV4dC52YWx1ZSwgaSsrLCB0aGlzKTtcclxuICAgICAgICByZXR1cm4gcDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gSXRlcmF0b3IgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gb3JkZXIgKGFzY2VuZGluZyBvcmRlciBpZlxyXG4gICAgICogIHRoZSBjb2xsZWN0aW9uJ3MgY29tcGFyYXRvciB1c2VzIGFzY2VuZGluZyBvcmRlciwgYXMgaXMgdGhlIGRlZmF1bHQuKVxyXG4gICAgICogIEBwYXJhbSBsb3dlc3RLZXkgRmlyc3Qga2V5IHRvIGJlIGl0ZXJhdGVkLCBvciB1bmRlZmluZWQgdG8gc3RhcnQgYXRcclxuICAgICAqICAgICAgICAgbWluS2V5KCkuIElmIHRoZSBzcGVjaWZpZWQga2V5IGRvZXNuJ3QgZXhpc3QgdGhlbiBpdGVyYXRpb25cclxuICAgICAqICAgICAgICAgc3RhcnRzIGF0IHRoZSBuZXh0IGhpZ2hlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbiAobG93ZXN0S2V5LCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpbmZvID0gdGhpcy5maW5kUGF0aChsb3dlc3RLZXkpO1xyXG4gICAgICAgIGlmIChpbmZvID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigpO1xyXG4gICAgICAgIHZhciBub2RlcXVldWUgPSBpbmZvLm5vZGVxdWV1ZSwgbm9kZWluZGV4ID0gaW5mby5ub2RlaW5kZXgsIGxlYWYgPSBpbmZvLmxlYWY7XHJcbiAgICAgICAgdmFyIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgIHZhciBpID0gKGxvd2VzdEtleSA9PT0gdW5kZWZpbmVkID8gLTEgOiBsZWFmLmluZGV4T2YobG93ZXN0S2V5LCAwLCB0aGlzLl9jb21wYXJlKSAtIDEpO1xyXG4gICAgICAgIHJldHVybiBpdGVyYXRvcihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGp1bXA6IGZvciAoOzspIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGxlYWYua2V5c1tpXSwgcmV1c2VkQXJyYXlbMV0gPSBsZWFmLnZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogcmV1c2VkQXJyYXkgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBuZXh0IGxlYWYgbm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsZXZlbCA9IC0xOzspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2xldmVsID49IG5vZGVxdWV1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUganVtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK25vZGVpbmRleFtsZXZlbF0gPCBub2RlcXVldWVbbGV2ZWxdLmxlbmd0aClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbGV2ZWwgPiAwOyBsZXZlbC0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlcXVldWVbbGV2ZWwgLSAxXSA9IG5vZGVxdWV1ZVtsZXZlbF1bbm9kZWluZGV4W2xldmVsXV0uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlaW5kZXhbbGV2ZWwgLSAxXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiA9IG5vZGVxdWV1ZVswXVtub2RlaW5kZXhbMF1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gcmV2ZXJzZWQgb3JkZXIuXHJcbiAgICAgKiAgQHBhcmFtIGhpZ2hlc3RLZXkgS2V5IGF0IHdoaWNoIHRvIHN0YXJ0IGl0ZXJhdGluZywgb3IgdW5kZWZpbmVkIHRvXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0IGF0IG1heEtleSgpLiBJZiB0aGUgc3BlY2lmaWVkIGtleSBkb2Vzbid0IGV4aXN0IHRoZW4gaXRlcmF0aW9uXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0cyBhdCB0aGUgbmV4dCBsb3dlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqICBAcGFyYW0gc2tpcEhpZ2hlc3QgSWZmIHRoaXMgZmxhZyBpcyB0cnVlIGFuZCB0aGUgaGlnaGVzdEtleSBleGlzdHMgaW4gdGhlXHJcbiAgICAgKiAgICAgICAgIGNvbGxlY3Rpb24sIHRoZSBwYWlyIG1hdGNoaW5nIGhpZ2hlc3RLZXkgaXMgc2tpcHBlZCwgbm90IGl0ZXJhdGVkLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZW50cmllc1JldmVyc2VkID0gZnVuY3Rpb24gKGhpZ2hlc3RLZXksIHJldXNlZEFycmF5LCBza2lwSGlnaGVzdCkge1xyXG4gICAgICAgIGlmIChoaWdoZXN0S2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGlnaGVzdEtleSA9IHRoaXMubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIHNraXBIaWdoZXN0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoaGlnaGVzdEtleSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7IC8vIGNvbGxlY3Rpb24gaXMgZW1wdHlcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIF9hID0gdGhpcy5maW5kUGF0aChoaWdoZXN0S2V5KSB8fCB0aGlzLmZpbmRQYXRoKHRoaXMubWF4S2V5KCkpLCBub2RlcXVldWUgPSBfYS5ub2RlcXVldWUsIG5vZGVpbmRleCA9IF9hLm5vZGVpbmRleCwgbGVhZiA9IF9hLmxlYWY7XHJcbiAgICAgICAgY2hlY2soIW5vZGVxdWV1ZVswXSB8fCBsZWFmID09PSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXSwgXCJ3YXQhXCIpO1xyXG4gICAgICAgIHZhciBpID0gbGVhZi5pbmRleE9mKGhpZ2hlc3RLZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgIGlmICghc2tpcEhpZ2hlc3QgJiYgaSA8IGxlYWYua2V5cy5sZW5ndGggJiYgdGhpcy5fY29tcGFyZShsZWFmLmtleXNbaV0sIGhpZ2hlc3RLZXkpIDw9IDApXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB2YXIgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAganVtcDogZm9yICg7Oykge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0taSA+PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWkgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkQXJyYXlbMF0gPSBsZWFmLmtleXNbaV0sIHJldXNlZEFycmF5WzFdID0gbGVhZi52YWx1ZXNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IHJldXNlZEFycmF5IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBsZWFmIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbGV2ZWwgPSAtMTs7KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytsZXZlbCA+PSBub2RlcXVldWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGp1bXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1ub2RlaW5kZXhbbGV2ZWxdID49IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7IGxldmVsID4gMDsgbGV2ZWwtLSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXF1ZXVlW2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWxdW25vZGVpbmRleFtsZXZlbF1dLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZWluZGV4W2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWwgLSAxXS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgPSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGxlYWYua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qIFVzZWQgYnkgZW50cmllcygpIGFuZCBlbnRyaWVzUmV2ZXJzZWQoKSB0byBwcmVwYXJlIHRvIHN0YXJ0IGl0ZXJhdGluZy5cclxuICAgICAqIEl0IGRldmVsb3BzIGEgXCJub2RlIHF1ZXVlXCIgZm9yIGVhY2ggbm9uLWxlYWYgbGV2ZWwgb2YgdGhlIHRyZWUuXHJcbiAgICAgKiBMZXZlbHMgYXJlIG51bWJlcmVkIFwiYm90dG9tLXVwXCIgc28gdGhhdCBsZXZlbCAwIGlzIGEgbGlzdCBvZiBsZWFmXHJcbiAgICAgKiBub2RlcyBmcm9tIGEgbG93LWxldmVsIG5vbi1sZWFmIG5vZGUuIFRoZSBxdWV1ZSBhdCBhIGdpdmVuIGxldmVsIExcclxuICAgICAqIGNvbnNpc3RzIG9mIG5vZGVxdWV1ZVtMXSB3aGljaCBpcyB0aGUgY2hpbGRyZW4gb2YgYSBCTm9kZUludGVybmFsLFxyXG4gICAgICogYW5kIG5vZGVpbmRleFtMXSwgdGhlIGN1cnJlbnQgaW5kZXggd2l0aGluIHRoYXQgY2hpbGQgbGlzdCwgc3VjaFxyXG4gICAgICogc3VjaCB0aGF0IG5vZGVxdWV1ZVtMLTFdID09PSBub2RlcXVldWVbTF1bbm9kZWluZGV4W0xdXS5jaGlsZHJlbi5cclxuICAgICAqIChIb3dldmVyIGluc2lkZSB0aGlzIGZ1bmN0aW9uIHRoZSBvcmRlciBpcyByZXZlcnNlZC4pXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maW5kUGF0aCA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICB2YXIgbmV4dG5vZGUgPSB0aGlzLl9yb290O1xyXG4gICAgICAgIHZhciBub2RlcXVldWUsIG5vZGVpbmRleDtcclxuICAgICAgICBpZiAobmV4dG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgIG5vZGVxdWV1ZSA9IEVtcHR5QXJyYXksIG5vZGVpbmRleCA9IEVtcHR5QXJyYXk7IC8vIGF2b2lkIGFsbG9jYXRpb25zXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBub2RlcXVldWUgPSBbXSwgbm9kZWluZGV4ID0gW107XHJcbiAgICAgICAgICAgIGZvciAodmFyIGQgPSAwOyAhbmV4dG5vZGUuaXNMZWFmOyBkKyspIHtcclxuICAgICAgICAgICAgICAgIG5vZGVxdWV1ZVtkXSA9IG5leHRub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgbm9kZWluZGV4W2RdID0ga2V5ID09PSB1bmRlZmluZWQgPyAwIDogbmV4dG5vZGUuaW5kZXhPZihrZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGVpbmRleFtkXSA+PSBub2RlcXVldWVbZF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gZmlyc3Qga2V5ID4gbWF4S2V5KClcclxuICAgICAgICAgICAgICAgIG5leHRub2RlID0gbm9kZXF1ZXVlW2RdW25vZGVpbmRleFtkXV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZXF1ZXVlLnJldmVyc2UoKTtcclxuICAgICAgICAgICAgbm9kZWluZGV4LnJldmVyc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbm9kZXF1ZXVlOiBub2RlcXVldWUsIG5vZGVpbmRleDogbm9kZWluZGV4LCBsZWFmOiBuZXh0bm9kZSB9O1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQ29tcHV0ZXMgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYHRoaXNgIGFuZCBgb3RoZXJgLlxyXG4gICAgICogRm9yIGVmZmljaWVuY3ksIHRoZSBkaWZmIGlzIHJldHVybmVkIHZpYSBpbnZvY2F0aW9ucyBvZiBzdXBwbGllZCBoYW5kbGVycy5cclxuICAgICAqIFRoZSBjb21wdXRhdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIHRoZSBjYXNlIGluIHdoaWNoIHRoZSB0d28gdHJlZXMgaGF2ZSBsYXJnZSBhbW91bnRzXHJcbiAgICAgKiBvZiBzaGFyZWQgZGF0YSAob2J0YWluZWQgYnkgY2FsbGluZyB0aGUgYGNsb25lYCBvciBgd2l0aGAgQVBJcykgYW5kIHdpbGwgYXZvaWRcclxuICAgICAqIGFueSBpdGVyYXRpb24gb2Ygc2hhcmVkIHN0YXRlLlxyXG4gICAgICogVGhlIGhhbmRsZXJzIGNhbiBjYXVzZSBjb21wdXRhdGlvbiB0byBlYXJseSBleGl0IGJ5IHJldHVybmluZyB7YnJlYWs6IFJ9LlxyXG4gICAgICogTmVpdGhlciBvZiB0aGUgY29sbGVjdGlvbnMgc2hvdWxkIGJlIGNoYW5nZWQgZHVyaW5nIHRoZSBjb21wYXJpc29uIHByb2Nlc3MgKGluIHlvdXIgY2FsbGJhY2tzKSwgYXMgdGhpcyBtZXRob2QgYXNzdW1lcyB0aGV5IHdpbGwgbm90IGJlIG11dGF0ZWQuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIHRyZWUgdG8gY29tcHV0ZSBhIGRpZmYgYWdhaW5zdC5cclxuICAgICAqIEBwYXJhbSBvbmx5VGhpcyBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYHRoaXNgLlxyXG4gICAgICogQHBhcmFtIG9ubHlPdGhlciBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYG90aGVyYC5cclxuICAgICAqIEBwYXJhbSBkaWZmZXJlbnQgQ2FsbGJhY2sgaW52b2tlZCBmb3IgYWxsIGtleXMgd2l0aCBkaWZmZXJpbmcgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGlmZkFnYWluc3QgPSBmdW5jdGlvbiAob3RoZXIsIG9ubHlUaGlzLCBvbmx5T3RoZXIsIGRpZmZlcmVudCkge1xyXG4gICAgICAgIGlmIChvdGhlci5fY29tcGFyZSAhPT0gdGhpcy5fY29tcGFyZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmVlIGNvbXBhcmF0b3JzIGFyZSBub3QgdGhlIHNhbWUuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc0VtcHR5IHx8IG90aGVyLmlzRW1wdHkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSAmJiBvdGhlci5pc0VtcHR5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgLy8gSWYgb25lIHRyZWUgaXMgZW1wdHksIGV2ZXJ5dGhpbmcgd2lsbCBiZSBhbiBvbmx5VGhpcy9vbmx5T3RoZXIuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb25seU90aGVyID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBCVHJlZS5zdGVwVG9FbmQoQlRyZWUubWFrZURpZmZDdXJzb3Iob3RoZXIpLCBvbmx5T3RoZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gb25seVRoaXMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEJUcmVlLnN0ZXBUb0VuZChCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKSwgb25seVRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDdXJzb3ItYmFzZWQgZGlmZiBhbGdvcml0aG0gaXMgYXMgZm9sbG93czpcclxuICAgICAgICAvLyAtIFVudGlsIG5laXRoZXIgY3Vyc29yIGhhcyBuYXZpZ2F0ZWQgdG8gdGhlIGVuZCBvZiB0aGUgdHJlZSwgZG8gdGhlIGZvbGxvd2luZzpcclxuICAgICAgICAvLyAgLSBJZiB0aGUgYHRoaXNgIGN1cnNvciBpcyBcImJlaGluZFwiIHRoZSBgb3RoZXJgIGN1cnNvciAoc3RyaWN0bHkgPCwgdmlhIGNvbXBhcmUpLCBhZHZhbmNlIGl0LlxyXG4gICAgICAgIC8vICAtIE90aGVyd2lzZSwgYWR2YW5jZSB0aGUgYG90aGVyYCBjdXJzb3IuXHJcbiAgICAgICAgLy8gIC0gQW55IHRpbWUgYSBjdXJzb3IgaXMgc3RlcHBlZCwgcGVyZm9ybSB0aGUgZm9sbG93aW5nOlxyXG4gICAgICAgIC8vICAgIC0gSWYgZWl0aGVyIGN1cnNvciBwb2ludHMgdG8gYSBrZXkvdmFsdWUgcGFpcjpcclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA9PT0gb3RoZXJDdXJzb3IgYW5kIHRoZSB2YWx1ZXMgZGlmZmVyLCBpdCBpcyBhIERpZmZlcmVudC5cclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA+IG90aGVyQ3Vyc29yIGFuZCBvdGhlckN1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5T3RoZXIuXHJcbiAgICAgICAgLy8gICAgICAtIElmIHRoaXNDdXJzb3IgPCBvdGhlckN1cnNvciBhbmQgdGhpc0N1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5VGhpcyBhcyBsb25nIGFzIHRoZSBtb3N0IHJlY2VudCBcclxuICAgICAgICAvLyAgICAgICAgY3Vyc29yIHN0ZXAgd2FzICpub3QqIG90aGVyQ3Vyc29yIGFkdmFuY2luZyBmcm9tIGEgdGllLiBUaGUgZXh0cmEgY29uZGl0aW9uIGF2b2lkcyBlcnJvbmVvdXMgT25seU90aGVyIGNhbGxzIFxyXG4gICAgICAgIC8vICAgICAgICB0aGF0IHdvdWxkIG9jY3VyIGR1ZSB0byBvdGhlckN1cnNvciBiZWluZyB0aGUgXCJsZWFkZXJcIi5cclxuICAgICAgICAvLyAgICAtIE90aGVyd2lzZSwgaWYgYm90aCBjdXJzb3JzIHBvaW50IHRvIG5vZGVzLCBjb21wYXJlIHRoZW0uIElmIHRoZXkgYXJlIGVxdWFsIGJ5IHJlZmVyZW5jZSAoc2hhcmVkKSwgc2tpcFxyXG4gICAgICAgIC8vICAgICAgYm90aCBjdXJzb3JzIHRvIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHdhbGsuXHJcbiAgICAgICAgLy8gLSBPbmNlIG9uZSBjdXJzb3IgaGFzIGZpbmlzaGVkIHN0ZXBwaW5nLCBhbnkgcmVtYWluaW5nIHN0ZXBzIChpZiBhbnkpIGFyZSB0YWtlbiBhbmQga2V5L3ZhbHVlIHBhaXJzIGFyZSBsb2dnZWRcclxuICAgICAgICAvLyAgIGFzIE9ubHlPdGhlciAoaWYgb3RoZXJDdXJzb3IgaXMgc3RlcHBpbmcpIG9yIE9ubHlUaGlzIChpZiB0aGlzQ3Vyc29yIGlzIHN0ZXBwaW5nKS5cclxuICAgICAgICAvLyBUaGlzIGFsZ29yaXRobSBnaXZlcyB0aGUgY3JpdGljYWwgZ3VhcmFudGVlIHRoYXQgYWxsIGxvY2F0aW9ucyAoYm90aCBub2RlcyBhbmQga2V5L3ZhbHVlIHBhaXJzKSBpbiBib3RoIHRyZWVzIHRoYXQgXHJcbiAgICAgICAgLy8gYXJlIGlkZW50aWNhbCBieSB2YWx1ZSAoYW5kIHBvc3NpYmx5IGJ5IHJlZmVyZW5jZSkgd2lsbCBiZSB2aXNpdGVkICphdCB0aGUgc2FtZSB0aW1lKiBieSB0aGUgY3Vyc29ycy5cclxuICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIHBvc3NpYmlsaXR5IG9mIGVtaXR0aW5nIGluY29ycmVjdCBkaWZmcywgYXMgd2VsbCBhcyBhbGxvd2luZyBmb3Igc2tpcHBpbmcgc2hhcmVkIG5vZGVzLlxyXG4gICAgICAgIHZhciBfY29tcGFyZSA9IHRoaXMuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIHRoaXNDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKTtcclxuICAgICAgICB2YXIgb3RoZXJDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcihvdGhlcik7XHJcbiAgICAgICAgLy8gSXQgZG9lc24ndCBtYXR0ZXIgaG93IHRoaXNTdGVwcGVkTGFzdCBpcyBpbml0aWFsaXplZC5cclxuICAgICAgICAvLyBTdGVwIG9yZGVyIGlzIG9ubHkgdXNlZCB3aGVuIGVpdGhlciBjdXJzb3IgaXMgYXQgYSBsZWFmLCBhbmQgY3Vyc29ycyBhbHdheXMgc3RhcnQgYXQgYSBub2RlLlxyXG4gICAgICAgIHZhciB0aGlzU3VjY2VzcyA9IHRydWUsIG90aGVyU3VjY2VzcyA9IHRydWUsIHByZXZDdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICB3aGlsZSAodGhpc1N1Y2Nlc3MgJiYgb3RoZXJTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHZhciBjdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICAgICAgdmFyIHRoaXNMZWFmID0gdGhpc0N1cnNvci5sZWFmLCB0aGlzSW50ZXJuYWxTcGluZSA9IHRoaXNDdXJzb3IuaW50ZXJuYWxTcGluZSwgdGhpc0xldmVsSW5kaWNlcyA9IHRoaXNDdXJzb3IubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgICAgICB2YXIgb3RoZXJMZWFmID0gb3RoZXJDdXJzb3IubGVhZiwgb3RoZXJJbnRlcm5hbFNwaW5lID0gb3RoZXJDdXJzb3IuaW50ZXJuYWxTcGluZSwgb3RoZXJMZXZlbEluZGljZXMgPSBvdGhlckN1cnNvci5sZXZlbEluZGljZXM7XHJcbiAgICAgICAgICAgIGlmICh0aGlzTGVhZiB8fCBvdGhlckxlYWYpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3JzIHdlcmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gbGFzdCBzdGVwLCB0aGVuIHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUgZG9uZS5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2Q3Vyc29yT3JkZXIgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yT3JkZXIgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNMZWFmICYmIG90aGVyTGVhZiAmJiBkaWZmZXJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWFsIGtleXMsIGNoZWNrIGZvciBtb2RpZmljYXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbE90aGVyID0gb3RoZXJMZWFmLnZhbHVlc1tvdGhlckxldmVsSW5kaWNlc1tvdGhlckxldmVsSW5kaWNlcy5sZW5ndGggLSAxXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pcyh2YWxUaGlzLCB2YWxPdGhlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZGlmZmVyZW50KHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcywgdmFsT3RoZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmJyZWFrKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnNvck9yZGVyID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3ZSBrbm93IHRoYXQgZWl0aGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLiBvdGhlckN1cnNvciBzdGVwcGVkIGxhc3QgZnJvbSBhIHN0YXJ0aW5nIHBvc2l0aW9uIHRoYXQgdHJhaWxlZCB0aGlzQ3Vyc29yLCBhbmQgaXMgc3RpbGwgYmVoaW5kLCBvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAyLiB0aGlzQ3Vyc29yIHN0ZXBwZWQgbGFzdCBhbmQgbGVhcGZyb2dnZWQgb3RoZXJDdXJzb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIG9mIHRoZXNlIGNhc2VzIGlzIGFuIFwib25seSBvdGhlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlckxlYWYgJiYgb25seU90aGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJWYWwgPSBvdGhlckxlYWYudmFsdWVzW290aGVyTGV2ZWxJbmRpY2VzW290aGVyTGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbmx5T3RoZXIob3RoZXJDdXJzb3IuY3VycmVudEtleSwgb3RoZXJWYWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuYnJlYWspXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5icmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvbmx5VGhpcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc0xlYWYgJiYgcHJldkN1cnNvck9yZGVyICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9ubHlUaGlzKHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzTGVhZiAmJiAhb3RoZXJMZWFmICYmIGN1cnNvck9yZGVyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFRoaXMgPSB0aGlzSW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIGxhc3RPdGhlciA9IG90aGVySW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5vZGVUaGlzID0gdGhpc0ludGVybmFsU3BpbmVbbGFzdFRoaXNdW3RoaXNMZXZlbEluZGljZXNbbGFzdFRoaXNdXTtcclxuICAgICAgICAgICAgICAgIHZhciBub2RlT3RoZXIgPSBvdGhlckludGVybmFsU3BpbmVbbGFzdE90aGVyXVtvdGhlckxldmVsSW5kaWNlc1tsYXN0T3RoZXJdXTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlT3RoZXIgPT09IG5vZGVUaGlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzU3VjY2VzcyA9IEJUcmVlLnN0ZXAodGhpc0N1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJTdWNjZXNzID0gQlRyZWUuc3RlcChvdGhlckN1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gY3Vyc29yT3JkZXI7XHJcbiAgICAgICAgICAgIGlmIChjdXJzb3JPcmRlciA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXNTdWNjZXNzID0gQlRyZWUuc3RlcCh0aGlzQ3Vyc29yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG90aGVyU3VjY2VzcyA9IEJUcmVlLnN0ZXAob3RoZXJDdXJzb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzU3VjY2VzcyAmJiBvbmx5VGhpcylcclxuICAgICAgICAgICAgcmV0dXJuIEJUcmVlLmZpbmlzaEN1cnNvcldhbGsodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlLCBvbmx5VGhpcyk7XHJcbiAgICAgICAgaWYgKG90aGVyU3VjY2VzcyAmJiBvbmx5T3RoZXIpXHJcbiAgICAgICAgICAgIHJldHVybiBCVHJlZS5maW5pc2hDdXJzb3JXYWxrKG90aGVyQ3Vyc29yLCB0aGlzQ3Vyc29yLCBfY29tcGFyZSwgb25seU90aGVyKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIEhlbHBlciBtZXRob2RzIGZvciBkaWZmQWdhaW5zdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQlRyZWUuZmluaXNoQ3Vyc29yV2FsayA9IGZ1bmN0aW9uIChjdXJzb3IsIGN1cnNvckZpbmlzaGVkLCBjb21wYXJlS2V5cywgY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgY29tcGFyZWQgPSBCVHJlZS5jb21wYXJlKGN1cnNvciwgY3Vyc29yRmluaXNoZWQsIGNvbXBhcmVLZXlzKTtcclxuICAgICAgICBpZiAoY29tcGFyZWQgPT09IDApIHtcclxuICAgICAgICAgICAgaWYgKCFCVHJlZS5zdGVwKGN1cnNvcikpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjb21wYXJlZCA8IDApIHtcclxuICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiY3Vyc29yIHdhbGsgdGVybWluYXRlZCBlYXJseVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEJUcmVlLnN0ZXBUb0VuZChjdXJzb3IsIGNhbGxiYWNrKTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5zdGVwVG9FbmQgPSBmdW5jdGlvbiAoY3Vyc29yLCBjYWxsYmFjaykge1xyXG4gICAgICAgIHZhciBjYW5TdGVwID0gdHJ1ZTtcclxuICAgICAgICB3aGlsZSAoY2FuU3RlcCkge1xyXG4gICAgICAgICAgICB2YXIgbGVhZiA9IGN1cnNvci5sZWFmLCBsZXZlbEluZGljZXMgPSBjdXJzb3IubGV2ZWxJbmRpY2VzLCBjdXJyZW50S2V5ID0gY3Vyc29yLmN1cnJlbnRLZXk7XHJcbiAgICAgICAgICAgIGlmIChsZWFmKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBsZWFmLnZhbHVlc1tsZXZlbEluZGljZXNbbGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjYWxsYmFjayhjdXJyZW50S2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhblN0ZXAgPSBCVHJlZS5zdGVwKGN1cnNvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQlRyZWUubWFrZURpZmZDdXJzb3IgPSBmdW5jdGlvbiAodHJlZSkge1xyXG4gICAgICAgIHZhciBfcm9vdCA9IHRyZWUuX3Jvb3QsIGhlaWdodCA9IHRyZWUuaGVpZ2h0O1xyXG4gICAgICAgIHJldHVybiB7IGhlaWdodDogaGVpZ2h0LCBpbnRlcm5hbFNwaW5lOiBbW19yb290XV0sIGxldmVsSW5kaWNlczogWzBdLCBsZWFmOiB1bmRlZmluZWQsIGN1cnJlbnRLZXk6IF9yb290Lm1heEtleSgpIH07XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBBZHZhbmNlcyB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0IHN0ZXAgaW4gdGhlIHdhbGsgb2YgaXRzIHRyZWUuXHJcbiAgICAgKiBDdXJzb3JzIGFyZSB3YWxrZWQgYmFja3dhcmRzIGluIHNvcnQgb3JkZXIsIGFzIHRoaXMgYWxsb3dzIHRoZW0gdG8gbGV2ZXJhZ2UgbWF4S2V5KCkgaW4gb3JkZXIgdG8gYmUgY29tcGFyZWQgaW4gTygxKS5cclxuICAgICAqIEBwYXJhbSBjdXJzb3IgVGhlIGN1cnNvciB0byBzdGVwXHJcbiAgICAgKiBAcGFyYW0gc3RlcFRvTm9kZSBJZiB0cnVlLCB0aGUgY3Vyc29yIHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIG5leHQgbm9kZSAoc2tpcHBpbmcgdmFsdWVzKVxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgc3RlcCB3YXMgY29tcGxldGVkIGFuZCBmYWxzZSBpZiB0aGUgc3RlcCB3b3VsZCBoYXZlIGNhdXNlZCB0aGUgY3Vyc29yIHRvIG1vdmUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHRyZWUuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnN0ZXAgPSBmdW5jdGlvbiAoY3Vyc29yLCBzdGVwVG9Ob2RlKSB7XHJcbiAgICAgICAgdmFyIGludGVybmFsU3BpbmUgPSBjdXJzb3IuaW50ZXJuYWxTcGluZSwgbGV2ZWxJbmRpY2VzID0gY3Vyc29yLmxldmVsSW5kaWNlcywgbGVhZiA9IGN1cnNvci5sZWFmO1xyXG4gICAgICAgIGlmIChzdGVwVG9Ob2RlID09PSB0cnVlIHx8IGxlYWYpIHtcclxuICAgICAgICAgICAgdmFyIGxldmVsc0xlbmd0aCA9IGxldmVsSW5kaWNlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIC8vIFN0ZXAgdG8gdGhlIG5leHQgbm9kZSBvbmx5IGlmOlxyXG4gICAgICAgICAgICAvLyAtIFdlIGFyZSBleHBsaWNpdGx5IGRpcmVjdGVkIHRvIHZpYSBzdGVwVG9Ob2RlLCBvclxyXG4gICAgICAgICAgICAvLyAtIFRoZXJlIGFyZSBubyBrZXkvdmFsdWUgcGFpcnMgbGVmdCB0byBzdGVwIHRvIGluIHRoaXMgbGVhZlxyXG4gICAgICAgICAgICBpZiAoc3RlcFRvTm9kZSA9PT0gdHJ1ZSB8fCBsZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV0gPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBzcGluZUxlbmd0aCA9IGludGVybmFsU3BpbmUubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgLy8gUm9vdCBpcyBsZWFmXHJcbiAgICAgICAgICAgICAgICBpZiAoc3BpbmVMZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gV2FsayBiYWNrIHVwIHRoZSB0cmVlIHVudGlsIHdlIGZpbmQgYSBuZXcgc3VidHJlZSB0byBkZXNjZW5kIGludG9cclxuICAgICAgICAgICAgICAgIHZhciBub2RlTGV2ZWxJbmRleCA9IHNwaW5lTGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIHZhciBsZXZlbEluZGV4V2Fsa0JhY2sgPSBub2RlTGV2ZWxJbmRleDtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChsZXZlbEluZGV4V2Fsa0JhY2sgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxldmVsSW5kZXhXYWxrQmFjayA8IGxldmVsc0xlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBsZWFmIHN0YXRlIGZyb20gY3Vyc29yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsSW5kaWNlcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3YWxrZWQgdXB3YXJkcyBwYXN0IGFueSBpbnRlcm5hbCBub2RlLCBzbGljZSB0aGVtIG91dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmRleFdhbGtCYWNrIDwgbm9kZUxldmVsSW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuaW50ZXJuYWxTcGluZSA9IGludGVybmFsU3BpbmUuc2xpY2UoMCwgbGV2ZWxJbmRleFdhbGtCYWNrICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGludGVybmFsIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBpbnRlcm5hbFNwaW5lW2xldmVsSW5kZXhXYWxrQmFja11bLS1sZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZGV4V2Fsa0JhY2stLTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEN1cnNvciBpcyBpbiB0aGUgZmFyIGxlZnQgbGVhZiBvZiB0aGUgdHJlZSwgbm8gbW9yZSBub2RlcyB0byBlbnVtZXJhdGVcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGxlYWYgdmFsdWVcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gLS1sZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgICBjdXJzb3IuY3VycmVudEtleSA9IGxlYWYua2V5c1t2YWx1ZUluZGV4XTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgeyAvLyBDdXJzb3IgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWx1ZSBpbiBhIGxlYWYsIHNvIG1vdmUgZG93bndhcmRzXHJcbiAgICAgICAgICAgIHZhciBuZXh0TGV2ZWwgPSBpbnRlcm5hbFNwaW5lLmxlbmd0aDtcclxuICAgICAgICAgICAgdmFyIGN1cnJlbnRMZXZlbCA9IG5leHRMZXZlbCAtIDE7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gaW50ZXJuYWxTcGluZVtjdXJyZW50TGV2ZWxdW2xldmVsSW5kaWNlc1tjdXJyZW50TGV2ZWxdXTtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFbnRlcmluZyBpbnRvIGEgbGVhZi4gU2V0IHRoZSBjdXJzb3IgdG8gcG9pbnQgYXQgdGhlIGxhc3Qga2V5L3ZhbHVlIHBhaXIuXHJcbiAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVJbmRleCA9IGxldmVsSW5kaWNlc1tuZXh0TGV2ZWxdID0gbm9kZS52YWx1ZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIGN1cnNvci5jdXJyZW50S2V5ID0gbm9kZS5rZXlzW3ZhbHVlSW5kZXhdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIGludGVybmFsU3BpbmVbbmV4dExldmVsXSA9IGNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkSW5kZXggPSBjaGlsZHJlbi5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgbGV2ZWxJbmRpY2VzW25leHRMZXZlbF0gPSBjaGlsZEluZGV4O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBjaGlsZHJlbltjaGlsZEluZGV4XS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB0aGUgdHdvIGN1cnNvcnMuIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoaWNoIGN1cnNvciBpcyBhaGVhZCBpbiBhIHdhbGsuXHJcbiAgICAgKiBOb3RlIHRoYXQgY3Vyc29ycyBhcmUgYWR2YW5jZWQgaW4gcmV2ZXJzZSBzb3J0aW5nIG9yZGVyLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5jb21wYXJlID0gZnVuY3Rpb24gKGN1cnNvckEsIGN1cnNvckIsIGNvbXBhcmVLZXlzKSB7XHJcbiAgICAgICAgdmFyIGhlaWdodEEgPSBjdXJzb3JBLmhlaWdodCwgY3VycmVudEtleUEgPSBjdXJzb3JBLmN1cnJlbnRLZXksIGxldmVsSW5kaWNlc0EgPSBjdXJzb3JBLmxldmVsSW5kaWNlcztcclxuICAgICAgICB2YXIgaGVpZ2h0QiA9IGN1cnNvckIuaGVpZ2h0LCBjdXJyZW50S2V5QiA9IGN1cnNvckIuY3VycmVudEtleSwgbGV2ZWxJbmRpY2VzQiA9IGN1cnNvckIubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgIC8vIFJldmVyc2UgdGhlIGNvbXBhcmlzb24gb3JkZXIsIGFzIGN1cnNvcnMgYXJlIGFkdmFuY2VkIGluIHJldmVyc2Ugc29ydGluZyBvcmRlclxyXG4gICAgICAgIHZhciBrZXlDb21wYXJpc29uID0gY29tcGFyZUtleXMoY3VycmVudEtleUIsIGN1cnJlbnRLZXlBKTtcclxuICAgICAgICBpZiAoa2V5Q29tcGFyaXNvbiAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyaXNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTm9ybWFsaXplIGRlcHRoIHZhbHVlcyByZWxhdGl2ZSB0byB0aGUgc2hvcnRlc3QgdHJlZS5cclxuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBjb25jdXJyZW50IGN1cnNvciB3YWxrcyBvZiB0cmVlcyBvZiBkaWZmZXJpbmcgaGVpZ2h0cyBjYW4gcmVsaWFibHkgbGFuZCBvbiBzaGFyZWQgbm9kZXMgYXQgdGhlIHNhbWUgdGltZS5cclxuICAgICAgICAvLyBUbyBhY2NvbXBsaXNoIHRoaXMsIGEgY3Vyc29yIHRoYXQgaXMgb24gYW4gaW50ZXJuYWwgbm9kZSBhdCBkZXB0aCBEMSB3aXRoIG1heEtleSBYIGlzIGNvbnNpZGVyZWQgXCJiZWhpbmRcIiBhIGN1cnNvciBvbiBhblxyXG4gICAgICAgIC8vIGludGVybmFsIG5vZGUgYXQgZGVwdGggRDIgd2l0aCBtYXhLZXkgWSwgd2hlbiBEMSA8IEQyLiBUaHVzLCBhbHdheXMgd2Fsa2luZyB0aGUgY3Vyc29yIHRoYXQgaXMgXCJiZWhpbmRcIiB3aWxsIGFsbG93IHRoZSBjdXJzb3JcclxuICAgICAgICAvLyBhdCBzaGFsbG93ZXIgZGVwdGggKGJ1dCBlcXVhbCBtYXhLZXkpIHRvIFwiY2F0Y2ggdXBcIiBhbmQgbGFuZCBvbiBzaGFyZWQgbm9kZXMuXHJcbiAgICAgICAgdmFyIGhlaWdodE1pbiA9IGhlaWdodEEgPCBoZWlnaHRCID8gaGVpZ2h0QSA6IGhlaWdodEI7XHJcbiAgICAgICAgdmFyIGRlcHRoQU5vcm1hbGl6ZWQgPSBsZXZlbEluZGljZXNBLmxlbmd0aCAtIChoZWlnaHRBIC0gaGVpZ2h0TWluKTtcclxuICAgICAgICB2YXIgZGVwdGhCTm9ybWFsaXplZCA9IGxldmVsSW5kaWNlc0IubGVuZ3RoIC0gKGhlaWdodEIgLSBoZWlnaHRNaW4pO1xyXG4gICAgICAgIHJldHVybiBkZXB0aEFOb3JtYWxpemVkIC0gZGVwdGhCTm9ybWFsaXplZDtcclxuICAgIH07XHJcbiAgICAvLyBFbmQgb2YgaGVscGVyIG1ldGhvZHMgZm9yIGRpZmZBZ2FpbnN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUga2V5cyBvZiBlYWNoIHBhaXIgaW4gYXNjZW5kaW5nIG9yZGVyLlxyXG4gICAgICogIEBwYXJhbSBmaXJzdEtleTogTWluaW11bSBrZXkgdG8gaW5jbHVkZSBpbiB0aGUgb3V0cHV0LiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoZmlyc3RLZXkpIHtcclxuICAgICAgICB2YXIgaXQgPSB0aGlzLmVudHJpZXMoZmlyc3RLZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gaXRlcmF0b3IoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgbiA9IGl0Lm5leHQoKTtcclxuICAgICAgICAgICAgaWYgKG4udmFsdWUpXHJcbiAgICAgICAgICAgICAgICBuLnZhbHVlID0gbi52YWx1ZVswXTtcclxuICAgICAgICAgICAgcmV0dXJuIG47XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUgdmFsdWVzIG9mIGVhY2ggcGFpciBpbiBvcmRlciBieSBrZXkuXHJcbiAgICAgKiAgQHBhcmFtIGZpcnN0S2V5OiBNaW5pbXVtIGtleSB3aG9zZSBhc3NvY2lhdGVkIHZhbHVlIGlzIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKGZpcnN0S2V5KSB7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKGZpcnN0S2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIG4gPSBpdC5uZXh0KCk7XHJcbiAgICAgICAgICAgIGlmIChuLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgbi52YWx1ZSA9IG4udmFsdWVbMV07XHJcbiAgICAgICAgICAgIHJldHVybiBuO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwibWF4Tm9kZVNpemVcIiwge1xyXG4gICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvKiogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hpbGRyZW4vdmFsdWVzIGJlZm9yZSBub2RlcyB3aWxsIHNwbGl0LiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWF4Tm9kZVNpemU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIEdldHMgdGhlIGxvd2VzdCBrZXkgaW4gdGhlIHRyZWUuIENvbXBsZXhpdHk6IE8obG9nIHNpemUpICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcm9vdC5taW5LZXkoKTsgfTtcclxuICAgIC8qKiBHZXRzIHRoZSBoaWdoZXN0IGtleSBpbiB0aGUgdHJlZS4gQ29tcGxleGl0eTogTygxKSAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm1heEtleSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3Jvb3QubWF4S2V5KCk7IH07XHJcbiAgICAvKiogUXVpY2tseSBjbG9uZXMgdGhlIHRyZWUgYnkgbWFya2luZyB0aGUgcm9vdCBub2RlIGFzIHNoYXJlZC5cclxuICAgICAqICBCb3RoIGNvcGllcyByZW1haW4gZWRpdGFibGUuIFdoZW4geW91IG1vZGlmeSBlaXRoZXIgY29weSwgYW55XHJcbiAgICAgKiAgbm9kZXMgdGhhdCBhcmUgc2hhcmVkIChvciBwb3RlbnRpYWxseSBzaGFyZWQpIGJldHdlZW4gdGhlIHR3b1xyXG4gICAgICogIGNvcGllcyBhcmUgY2xvbmVkIHNvIHRoYXQgdGhlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCBvdGhlciBjb3BpZXMuXHJcbiAgICAgKiAgVGhpcyBpcyBrbm93biBhcyBjb3B5LW9uLXdyaXRlIGJlaGF2aW9yLCBvciBcImxhenkgY29weWluZ1wiLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgQlRyZWUodW5kZWZpbmVkLCB0aGlzLl9jb21wYXJlLCB0aGlzLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgcmVzdWx0Ll9yb290ID0gdGhpcy5fcm9vdDtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIFBlcmZvcm1zIGEgZ3JlZWR5IGNsb25lLCBpbW1lZGlhdGVseSBkdXBsaWNhdGluZyBhbnkgbm9kZXMgdGhhdCBhcmVcclxuICAgICAqICBub3QgY3VycmVudGx5IG1hcmtlZCBhcyBzaGFyZWQsIGluIG9yZGVyIHRvIGF2b2lkIG1hcmtpbmcgYW55XHJcbiAgICAgKiAgYWRkaXRpb25hbCBub2RlcyBhcyBzaGFyZWQuXHJcbiAgICAgKiAgQHBhcmFtIGZvcmNlIENsb25lIGFsbCBub2RlcywgZXZlbiBzaGFyZWQgb25lcy5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBCVHJlZSh1bmRlZmluZWQsIHRoaXMuX2NvbXBhcmUsIHRoaXMuX21heE5vZGVTaXplKTtcclxuICAgICAgICByZXN1bHQuX3Jvb3QgPSB0aGlzLl9yb290LmdyZWVkeUNsb25lKGZvcmNlKTtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYW4gYXJyYXkgZmlsbGVkIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSB0cmVlLCBzb3J0ZWQgYnkga2V5ICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChtYXhMZW5ndGgpIHtcclxuICAgICAgICBpZiAobWF4TGVuZ3RoID09PSB2b2lkIDApIHsgbWF4TGVuZ3RoID0gMHg3RkZGRkZGRjsgfVxyXG4gICAgICAgIHZhciBtaW4gPSB0aGlzLm1pbktleSgpLCBtYXggPSB0aGlzLm1heEtleSgpO1xyXG4gICAgICAgIGlmIChtaW4gIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2UobWluLCBtYXgsIHRydWUsIG1heExlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCBrZXlzLCBzb3J0ZWQgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5rZXlzQXJyYXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcclxuICAgICAgICB0aGlzLl9yb290LmZvclJhbmdlKHRoaXMubWluS2V5KCksIHRoaXMubWF4S2V5KCksIHRydWUsIGZhbHNlLCB0aGlzLCAwLCBmdW5jdGlvbiAoaywgdikgeyByZXN1bHRzLnB1c2goayk7IH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCB2YWx1ZXMsIHNvcnRlZCBieSBrZXkgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS52YWx1ZXNBcnJheSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7IHJlc3VsdHMucHVzaCh2KTsgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0cmVlJ3MgZGF0YSBiYXNlZCBvbiB0b0FycmF5KCkuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9BcnJheSgpLnRvU3RyaW5nKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFN0b3JlcyBhIGtleS12YWx1ZSBwYWlyIG9ubHkgaWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIHRyZWUuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGEgbmV3IGtleSB3YXMgYWRkZWRcclxuICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0SWZOb3RQcmVzZW50ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXQoa2V5LCB2YWx1ZSwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIGxhcmdlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5IChvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZSkuXHJcbiAgICAgKiBJZiBrZXkgPT09IHVuZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsb3dlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBvbiBldmVyeSBpdGVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWluUGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRIaWdoZXIoa2V5LCB0aGlzLl9jb21wYXJlLCBmYWxzZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IGtleSBsYXJnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dEhpZ2hlcktleSh1bmRlZmluZWQpIHJldHVybnMgdGhlIGxvd2VzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyS2V5ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHZhciBwID0gdGhpcy5uZXh0SGlnaGVyUGFpcihrZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gcCAmJiBwWzBdO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSAob3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUpLlxyXG4gICAgICogIElmIGtleSA9PT0gdW5kZWZpbmVkLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhpZ2hlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiAgICAgICAgYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgZWFjaCB0aW1lIHlvdSBjYWxsIHRoaXMgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubmV4dExvd2VyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWF4UGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRMb3dlcihrZXksIHRoaXMuX2NvbXBhcmUsIGZhbHNlLCByZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQga2V5IHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dExvd2VyS2V5KHVuZGVmaW5lZCkgcmV0dXJucyB0aGUgaGlnaGVzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0TG93ZXJLZXkgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgdmFyIHAgPSB0aGlzLm5leHRMb3dlclBhaXIoa2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIHAgJiYgcFswXTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdXBwbGllZCBrZXkgaWYgaXQgZXhpc3RzXHJcbiAgICAgKiAgb3IgdGhlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXh0IGxvd2VyIHBhaXIgb3RoZXJ3aXNlLiBJZiB0aGVyZSBpcyBub1xyXG4gICAgICogIG5leHQgbG93ZXIgcGFpciwgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycywgdG9cclxuICAgICAqICAgICAgICBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBlYWNoIHRpbWUgeW91IGNhbGwgdGhpcyBtZXRob2QuXHJcbiAgICAgKiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFBhaXJPck5leHRMb3dlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dExvd2VyKGtleSwgdGhpcy5fY29tcGFyZSwgdHJ1ZSwgcmV1c2VkQXJyYXkgfHwgW10pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cHBsaWVkIGtleSBpZiBpdCBleGlzdHNcclxuICAgICAqICBvciB0aGUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIG5leHQgbG93ZXIgcGFpciBvdGhlcndpc2UuIElmIHRoZXJlIGlzIG5vXHJcbiAgICAgKiAgbmV4dCBsb3dlciBwYWlyLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXHJcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgICAqIEBwYXJhbSByZXVzZWRBcnJheSBPcHRpb25hbCBhcnJheSB1c2VkIHJlcGVhdGVkbHkgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLCB0b1xyXG4gICAgICogICAgICAgIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IGVhY2ggdGltZSB5b3UgY2FsbCB0aGlzIG1ldGhvZC5cclxuICAgICAqICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIHRoaXMuX2NvbXBhcmUsIHRydWUsIHJldXNlZEFycmF5IHx8IFtdKTtcclxuICAgIH07XHJcbiAgICAvKiogRWRpdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIGtleSBpbiB0aGUgdHJlZSwgaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBrZXkgZXhpc3RlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5jaGFuZ2VJZlByZXNlbnQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShrZXksIGtleSwgdHJ1ZSwgZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuICh7IHZhbHVlOiB2YWx1ZSB9KTsgfSkgIT09IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBCdWlsZHMgYW4gYXJyYXkgb2YgcGFpcnMgZnJvbSB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGtleXMsIHNvcnRlZCBieSBrZXkuXHJcbiAgICAgKiBFYWNoIHJldHVybmVkIHBhaXIgaXMgYWxzbyBhbiBhcnJheTogcGFpclswXSBpcyB0aGUga2V5LCBwYWlyWzFdIGlzIHRoZSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBsb3cgVGhlIGZpcnN0IGtleSBpbiB0aGUgYXJyYXkgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGl0cyBwYWlyIHdpbGwgYmUgaW5jbHVkZWRcclxuICAgICAqICAgICAgICBpbiB0aGUgb3V0cHV0IGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuIE5vdGU6IGlmIHRoZVxyXG4gICAgICogICAgICAgIGBsb3dgIGtleSBpcyBwcmVzZW50LCBpdCBpcyBhbHdheXMgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC5cclxuICAgICAqIEBwYXJhbSBtYXhMZW5ndGggTGVuZ3RoIGxpbWl0LiBnZXRSYW5nZSB3aWxsIHN0b3Agc2Nhbm5pbmcgdGhlIHRyZWUgd2hlblxyXG4gICAgICogICAgICAgICAgICAgICAgICB0aGUgYXJyYXkgcmVhY2hlcyB0aGlzIHNpemUuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKHJlc3VsdC5sZW5ndGggKyBsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIG1heExlbmd0aCkge1xyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAweDNGRkZGRkY7IH1cclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChbaywgdl0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGggPiBtYXhMZW5ndGggPyBCcmVhayA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBhbGwgcGFpcnMgZnJvbSBhIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzLlxyXG4gICAgICogQHBhcmFtIHBhaXJzIFBhaXJzIHRvIGFkZCB0byB0aGlzIHRyZWUuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyxcclxuICAgICAqICAgICAgICBsYXRlciBwYWlycyBjdXJyZW50bHkgb3ZlcndyaXRlIGVhcmxpZXIgb25lcyAoZS5nLiBbWzAsMV0sWzAsN11dXHJcbiAgICAgKiAgICAgICAgYXNzb2NpYXRlcyAwIHdpdGggNy4pXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIHBhaXJzIHRoYXQgYWxyZWFkeSBleGlzdCAoaWYgZmFsc2UsXHJcbiAgICAgKiAgICAgICAgcGFpcnNbaV0gaXMgaWdub3JlZCB3aGVuIHRoZSBrZXkgcGFpcnNbaV1bMF0gYWxyZWFkeSBleGlzdHMuKVxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiBwYWlycyBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8ocGFpcnMubGVuZ3RoICogbG9nKHNpemUgKyBwYWlycy5sZW5ndGgpKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnMgPSBmdW5jdGlvbiAocGFpcnMsIG92ZXJ3cml0ZSkge1xyXG4gICAgICAgIHZhciBhZGRlZCA9IDA7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2V0KHBhaXJzW2ldWzBdLCBwYWlyc1tpXVsxXSwgb3ZlcndyaXRlKSlcclxuICAgICAgICAgICAgICAgIGFkZGVkKys7XHJcbiAgICAgICAgcmV0dXJuIGFkZGVkO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzLCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkga2V5LlxyXG4gICAgICogTm90ZTogdGhlIGNhbGxiYWNrIGBvbkZvdW5kYCBtdXN0IG5vdCBpbnNlcnQgb3IgcmVtb3ZlIGl0ZW1zIGluIHRoZVxyXG4gICAgICogY29sbGVjdGlvbi4gRG9pbmcgc28gbWF5IGNhdXNlIGluY29ycmVjdCBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlXHJcbiAgICAgKiBjYWxsYmFjayBhZnRlcndhcmQuXHJcbiAgICAgKiBAcGFyYW0gbG93IFRoZSBmaXJzdCBrZXkgc2Nhbm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFNjYW5uaW5nIHN0b3BzIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGBvbkZvdW5kYCBpcyBjYWxsZWQgZm9yXHJcbiAgICAgKiAgICAgICAgdGhhdCBmaW5hbCBwYWlyIGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuXHJcbiAgICAgKiBAcGFyYW0gb25Gb3VuZCBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLiBUaGlzXHJcbiAgICAgKiAgICAgICAgZnVuY3Rpb24gY2FuIHJldHVybiB7YnJlYWs6Un0gdG8gc3RvcCBlYXJseSB3aXRoIHJlc3VsdCBSLlxyXG4gICAgICogQHBhcmFtIGluaXRpYWxDb3VudGVyIEluaXRpYWwgdGhpcmQgYXJndW1lbnQgb2Ygb25Gb3VuZC4gVGhpcyB2YWx1ZVxyXG4gICAgICogICAgICAgIGluY3JlYXNlcyBieSBvbmUgZWFjaCB0aW1lIGBvbkZvdW5kYCBpcyBjYWxsZWQuIERlZmF1bHQ6IDBcclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIGZvdW5kLCBvciBSIGlmIHRoZSBjYWxsYmFjayByZXR1cm5lZFxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIHRvIHN0b3AgZWFybHkuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKG51bWJlciBvZiBpdGVtcyBzY2FubmVkICsgbG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBvbkZvdW5kLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciByID0gdGhpcy5fcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBmYWxzZSwgdGhpcywgaW5pdGlhbENvdW50ZXIgfHwgMCwgb25Gb3VuZCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyBhbmQgcG90ZW50aWFsbHkgbW9kaWZpZXMgdmFsdWVzIGZvciBhIHN1YnNlcXVlbmNlIG9mIGtleXMuXHJcbiAgICAgKiBOb3RlOiB0aGUgY2FsbGJhY2sgYG9uRm91bmRgIHNob3VsZCBpZGVhbGx5IGJlIGEgcHVyZSBmdW5jdGlvbi5cclxuICAgICAqICAgU3BlY2ZpY2FsbHksIGl0IG11c3Qgbm90IGluc2VydCBpdGVtcywgY2FsbCBjbG9uZSgpLCBvciBjaGFuZ2VcclxuICAgICAqICAgdGhlIGNvbGxlY3Rpb24gZXhjZXB0IHZpYSByZXR1cm4gdmFsdWU7IG91dC1vZi1iYW5kIGVkaXRpbmcgbWF5XHJcbiAgICAgKiAgIGNhdXNlIGFuIGV4Y2VwdGlvbiBvciBtYXkgY2F1c2UgaW5jb3JyZWN0IGRhdGEgdG8gYmUgc2VudCB0b1xyXG4gICAgICogICB0aGUgY2FsbGJhY2sgKGR1cGxpY2F0ZSBvciBtaXNzZWQgaXRlbXMpLiBJdCBtdXN0IG5vdCBjYXVzZSBhXHJcbiAgICAgKiAgIGNsb25lKCkgb2YgdGhlIGNvbGxlY3Rpb24sIG90aGVyd2lzZSB0aGUgY2xvbmUgY291bGQgYmUgbW9kaWZpZWRcclxuICAgICAqICAgYnkgY2hhbmdlcyByZXF1ZXN0ZWQgYnkgdGhlIGNhbGxiYWNrLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBJZiB0aGUgYGhpZ2hgIGtleSBpcyBwcmVzZW50LCBgb25Gb3VuZGAgaXMgY2FsbGVkIGZvclxyXG4gICAgICogICAgICAgIHRoYXQgZmluYWwgcGFpciBpZiBhbmQgb25seSBpZiB0aGlzIHBhcmFtZXRlciBpcyB0cnVlLlxyXG4gICAgICogQHBhcmFtIG9uRm91bmQgQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBmb3IgZWFjaCBrZXktdmFsdWUgcGFpci4gVGhpc1xyXG4gICAgICogICAgICAgIGZ1bmN0aW9uIGNhbiByZXR1cm4gYHt2YWx1ZTp2fWAgdG8gY2hhbmdlIHRoZSB2YWx1ZSBhc3NvY2lhdGVkXHJcbiAgICAgKiAgICAgICAgd2l0aCB0aGUgY3VycmVudCBrZXksIGB7ZGVsZXRlOnRydWV9YCB0byBkZWxldGUgdGhlIGN1cnJlbnQgcGFpcixcclxuICAgICAqICAgICAgICBge2JyZWFrOlJ9YCB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIsIG9yIGl0IGNhbiByZXR1cm4gbm90aGluZ1xyXG4gICAgICogICAgICAgICh1bmRlZmluZWQgb3Ige30pIHRvIGNhdXNlIG5vIGVmZmVjdCBhbmQgY29udGludWUgaXRlcmF0aW5nLlxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIGNhbiBiZSBjb21iaW5lZCB3aXRoIG9uZSBvZiB0aGUgb3RoZXIgdHdvIGNvbW1hbmRzLlxyXG4gICAgICogICAgICAgIFRoZSB0aGlyZCBhcmd1bWVudCBgY291bnRlcmAgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBpdGVyYXRlZFxyXG4gICAgICogICAgICAgIHByZXZpb3VzbHk7IGl0IGVxdWFscyAwIHdoZW4gYG9uRm91bmRgIGlzIGNhbGxlZCB0aGUgZmlyc3QgdGltZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIHNjYW5uZWQsIG9yIFIgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkXHJcbiAgICAgKiAgICAgICAgYHticmVhazpSfWAgdG8gc3RvcCBlYXJseS5cclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIGl0ZW1zIHNjYW5uZWQgKyBsb2cgc2l6ZSlcclxuICAgICAqICAgTm90ZTogaWYgdGhlIHRyZWUgaGFzIGJlZW4gY2xvbmVkIHdpdGggY2xvbmUoKSwgYW55IHNoYXJlZFxyXG4gICAgICogICBub2RlcyBhcmUgY29waWVkIGJlZm9yZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBUaGlzIHRha2VzIE8obikgdGltZVxyXG4gICAgICogICB3aGVyZSBuIGlzIHByb3BvcnRpb25hbCB0byB0aGUgYW1vdW50IG9mIHNoYXJlZCBkYXRhIHNjYW5uZWQuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICB2YXIgcm9vdCA9IHRoaXMuX3Jvb3Q7XHJcbiAgICAgICAgaWYgKHJvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5jbG9uZSgpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciByID0gcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCB0cnVlLCB0aGlzLCBpbml0aWFsQ291bnRlciB8fCAwLCBvbkZvdW5kKTtcclxuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB2YXIgaXNTaGFyZWQgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChyb290LmtleXMubGVuZ3RoIDw9IDEgJiYgIXJvb3QuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICBpc1NoYXJlZCB8fCAoaXNTaGFyZWQgPSByb290LmlzU2hhcmVkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5rZXlzLmxlbmd0aCA9PT0gMCA/IEVtcHR5TGVhZiA6XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5jaGlsZHJlblswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBJZiBhbnkgYW5jZXN0b3Igb2YgdGhlIG5ldyByb290IHdhcyBzaGFyZWQsIHRoZSBuZXcgcm9vdCBtdXN0IGFsc28gYmUgc2hhcmVkXHJcbiAgICAgICAgICAgIGlmIChpc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAgICAgcm9vdC5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqIFNhbWUgYXMgYGVkaXRSYW5nZWAgZXhjZXB0IHRoYXQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCBmb3IgYWxsIHBhaXJzLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVkaXRBbGwgPSBmdW5jdGlvbiAob25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIHJhbmdlIG9mIGtleS12YWx1ZSBwYWlycyBmcm9tIHRoZSBCKyB0cmVlLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBTcGVjaWZpZXMgd2hldGhlciB0aGUgYGhpZ2hgIGtleSwgaWYgcHJlc2VudCwgaXMgZGVsZXRlZC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIHRoYXQgd2VyZSBkZWxldGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSArIG51bWJlciBvZiBpdGVtcyBkZWxldGVkKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGVsZXRlUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBEZWxldGVSYW5nZSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIERlbGV0ZXMgYSBzZXJpZXMgb2Yga2V5cyBmcm9tIHRoZSBjb2xsZWN0aW9uLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZUtleXMgPSBmdW5jdGlvbiAoa2V5cykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCByID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZShrZXlzW2ldKSlcclxuICAgICAgICAgICAgICAgIHIrKztcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgIH07XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImhlaWdodFwiLCB7XHJcbiAgICAgICAgLyoqIEdldHMgdGhlIGhlaWdodCBvZiB0aGUgdHJlZTogdGhlIG51bWJlciBvZiBpbnRlcm5hbCBub2RlcyBiZXR3ZWVuIHRoZVxyXG4gICAgICAgICAqICBCVHJlZSBvYmplY3QgYW5kIGl0cyBsZWFmIG5vZGVzICh6ZXJvIGlmIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBub2RlcykuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5fcm9vdDtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IC0xO1xyXG4gICAgICAgICAgICB3aGlsZSAobm9kZSkge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0Kys7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5pc0xlYWYgPyB1bmRlZmluZWQgOiBub2RlLmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIE1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5IHRvIGVuc3VyZSBpdCBpcyBub3QgYWNjaWRlbnRhbGx5IG1vZGlmaWVkLlxyXG4gICAgICogIEZyZWV6aW5nIGRvZXMgbm90IGhhdmUgdG8gYmUgcGVybWFuZW50OyB1bmZyZWV6ZSgpIHJldmVyc2VzIHRoZSBlZmZlY3QuXHJcbiAgICAgKiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgcmVwbGFjaW5nIG11dGF0b3IgZnVuY3Rpb25zIHdpdGggYSBmdW5jdGlvblxyXG4gICAgICogIHRoYXQgdGhyb3dzIGFuIEVycm9yLiBDb21wYXJlZCB0byB1c2luZyBhIHByb3BlcnR5IChlLmcuIHRoaXMuaXNGcm96ZW4pXHJcbiAgICAgKiAgdGhpcyBpbXBsZW1lbnRhdGlvbiBnaXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgaW4gbm9uLWZyb3plbiBCVHJlZXMuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mcmVlemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHQgPSB0aGlzO1xyXG4gICAgICAgIC8vIE5vdGU6IGFsbCBvdGhlciBtdXRhdG9ycyB1bHRpbWF0ZWx5IGNhbGwgc2V0KCkgb3IgZWRpdFJhbmdlKCkgXHJcbiAgICAgICAgLy8gICAgICAgc28gd2UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aG9zZSBvdGhlcnMuXHJcbiAgICAgICAgdC5jbGVhciA9IHQuc2V0ID0gdC5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byBtb2RpZnkgYSBmcm96ZW4gQlRyZWVcIik7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICAvKiogRW5zdXJlcyBtdXRhdGlvbnMgYXJlIGFsbG93ZWQsIHJldmVyc2luZyB0aGUgZWZmZWN0IG9mIGZyZWV6ZSgpLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLnVuZnJlZXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmUgXCJUaGUgb3BlcmFuZCBvZiBhICdkZWxldGUnIG9wZXJhdG9yIG11c3QgYmUgb3B0aW9uYWwuXCJcclxuICAgICAgICAvLyAgICAgICAgICAgICh3cm9uZzogZGVsZXRlIGRvZXMgbm90IGFmZmVjdCB0aGUgcHJvdG90eXBlLilcclxuICAgICAgICBkZWxldGUgdGhpcy5jbGVhcjtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgZGVsZXRlIHRoaXMuc2V0O1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBkZWxldGUgdGhpcy5lZGl0UmFuZ2U7XHJcbiAgICB9O1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0Zyb3plblwiLCB7XHJcbiAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdHJlZSBhcHBlYXJzIHRvIGJlIGZyb3plbi4gKi9cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoJ2VkaXRSYW5nZScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIC8qKiBTY2FucyB0aGUgdHJlZSBmb3Igc2lnbnMgb2Ygc2VyaW91cyBidWdzIChlLmcuIHRoaXMuc2l6ZSBkb2Vzbid0IG1hdGNoXHJcbiAgICAgKiAgbnVtYmVyIG9mIGVsZW1lbnRzLCBpbnRlcm5hbCBub2RlcyBub3QgY2FjaGluZyBtYXggZWxlbWVudCBwcm9wZXJseS4uLilcclxuICAgICAqICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIG5vZGVzKSwgaS5lLiBPKHNpemUpLiBUaGlzIG1ldGhvZFxyXG4gICAgICogIHNraXBzIHRoZSBtb3N0IGV4cGVuc2l2ZSB0ZXN0IC0gd2hldGhlciBhbGwga2V5cyBhcmUgc29ydGVkIC0gYnV0IGl0XHJcbiAgICAgKiAgZG9lcyBjaGVjayB0aGF0IG1heEtleSgpIG9mIHRoZSBjaGlsZHJlbiBvZiBpbnRlcm5hbCBub2RlcyBhcmUgc29ydGVkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHNpemUgPSB0aGlzLl9yb290LmNoZWNrVmFsaWQoMCwgdGhpcywgMCk7XHJcbiAgICAgICAgY2hlY2soc2l6ZSA9PT0gdGhpcy5zaXplLCBcInNpemUgbWlzbWF0Y2g6IGNvdW50ZWQgXCIsIHNpemUsIFwiYnV0IHN0b3JlZFwiLCB0aGlzLnNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCVHJlZTtcclxufSgpKTtcclxuZXhwb3J0cy5kZWZhdWx0ID0gQlRyZWU7XHJcbi8qKiBBIFR5cGVTY3JpcHQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2ltcGx5IHJldHVybnMgaXRzIGFyZ3VtZW50LCB0eXBlZCBhc1xyXG4gKiAgYElTb3J0ZWRTZXQ8Sz5gIGlmIHRoZSBCVHJlZSBpbXBsZW1lbnRzIGl0LCBhcyBpdCBkb2VzIGlmIGBWIGV4dGVuZHMgdW5kZWZpbmVkYC5cclxuICogIElmIGBWYCBjYW5ub3QgYmUgYHVuZGVmaW5lZGAsIGl0IHJldHVybnMgYHVua25vd25gIGluc3RlYWQuIE9yIGF0IGxlYXN0LCB0aGF0XHJcbiAqICB3YXMgdGhlIGludGVudGlvbiwgYnV0IFR5cGVTY3JpcHQgaXMgYWN0aW5nIHdlaXJkIGFuZCBtYXkgcmV0dXJuIGBJU29ydGVkU2V0PEs+YFxyXG4gKiAgZXZlbiBpZiBgVmAgY2FuJ3QgYmUgYHVuZGVmaW5lZGAgKGRpc2N1c3Npb246IGJ0cmVlLXR5cGVzY3JpcHQgaXNzdWUgIzE0KSAqL1xyXG5mdW5jdGlvbiBhc1NldChidHJlZSkge1xyXG4gICAgcmV0dXJuIGJ0cmVlO1xyXG59XHJcbmV4cG9ydHMuYXNTZXQgPSBhc1NldDtcclxuaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpIC8vIGl0ZXJhdG9yIGlzIGVxdWl2YWxlbnQgdG8gZW50cmllcygpXHJcbiAgICBCVHJlZS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEJUcmVlLnByb3RvdHlwZS5lbnRyaWVzO1xyXG5CVHJlZS5wcm90b3R5cGUud2hlcmUgPSBCVHJlZS5wcm90b3R5cGUuZmlsdGVyO1xyXG5CVHJlZS5wcm90b3R5cGUuc2V0UmFuZ2UgPSBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnM7XHJcbkJUcmVlLnByb3RvdHlwZS5hZGQgPSBCVHJlZS5wcm90b3R5cGUuc2V0OyAvLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIElTZXRTaW5rPEs+XHJcbmZ1bmN0aW9uIGl0ZXJhdG9yKG5leHQpIHtcclxuICAgIGlmIChuZXh0ID09PSB2b2lkIDApIHsgbmV4dCA9IChmdW5jdGlvbiAoKSB7IHJldHVybiAoeyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0pOyB9KTsgfVxyXG4gICAgdmFyIHJlc3VsdCA9IHsgbmV4dDogbmV4dCB9O1xyXG4gICAgaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpXHJcbiAgICAgICAgcmVzdWx0W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKiogTGVhZiBub2RlIC8gYmFzZSBjbGFzcy4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbnZhciBCTm9kZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJOb2RlKGtleXMsIHZhbHVlcykge1xyXG4gICAgICAgIGlmIChrZXlzID09PSB2b2lkIDApIHsga2V5cyA9IFtdOyB9XHJcbiAgICAgICAgdGhpcy5rZXlzID0ga2V5cztcclxuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcyB8fCB1bmRlZlZhbHM7XHJcbiAgICAgICAgdGhpcy5pc1NoYXJlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCTm9kZS5wcm90b3R5cGUsIFwiaXNMZWFmXCIsIHtcclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZDsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBTaGFyZWQgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5tYXhLZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5c1t0aGlzLmtleXMubGVuZ3RoIC0gMV07XHJcbiAgICB9O1xyXG4gICAgLy8gSWYga2V5IG5vdCBmb3VuZCwgcmV0dXJucyBpXmZhaWxYb3Igd2hlcmUgaSBpcyB0aGUgaW5zZXJ0aW9uIGluZGV4LlxyXG4gICAgLy8gQ2FsbGVycyB0aGF0IGRvbid0IGNhcmUgd2hldGhlciB0aGVyZSB3YXMgYSBtYXRjaCB3aWxsIHNldCBmYWlsWG9yPTAuXHJcbiAgICBCTm9kZS5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIChrZXksIGZhaWxYb3IsIGNtcCkge1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIHZhciBsbyA9IDAsIGhpID0ga2V5cy5sZW5ndGgsIG1pZCA9IGhpID4+IDE7XHJcbiAgICAgICAgd2hpbGUgKGxvIDwgaGkpIHtcclxuICAgICAgICAgICAgdmFyIGMgPSBjbXAoa2V5c1ttaWRdLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAoYyA8IDApXHJcbiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPiAwKSAvLyBrZXkgPCBrZXlzW21pZF1cclxuICAgICAgICAgICAgICAgIGhpID0gbWlkO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pZDtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjIGlzIE5hTiBvciBvdGhlcndpc2UgaW52YWxpZFxyXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbWlkID0gKGxvICsgaGkpID4+IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtaWQgXiBmYWlsWG9yO1xyXG4gICAgICAgIC8vIFVucm9sbGVkIHZlcnNpb246IGJlbmNobWFya3Mgc2hvdyBzYW1lIHNwZWVkLCBub3Qgd29ydGggdXNpbmdcclxuICAgICAgICAvKnZhciBpID0gMSwgYzogbnVtYmVyID0gMCwgc3VtID0gMDtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgICAgaSA9IDM7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gOCkge1xyXG4gICAgICAgICAgICBpID0gNztcclxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDE2KSB7XHJcbiAgICAgICAgICAgICAgaSA9IDE1O1xyXG4gICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+PSAzMikge1xyXG4gICAgICAgICAgICAgICAgaSA9IDMxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDY0KSB7XHJcbiAgICAgICAgICAgICAgICAgIGkgPSAxMjc7XHJcbiAgICAgICAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDY0IDogLTY0O1xyXG4gICAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMzIgOiAtMzI7XHJcbiAgICAgICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMTYgOiAtMTY7XHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gOCA6IC04O1xyXG4gICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDQgOiAtNDtcclxuICAgICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAyIDogLTI7XHJcbiAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMSA6IC0xO1xyXG4gICAgICAgIGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDE7XHJcbiAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgaWYgKGMgPCAwKSB7XHJcbiAgICAgICAgICArK2k7XHJcbiAgICAgICAgICBjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxO1xyXG4gICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzdW0gIT09IHN1bSkge1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgIHJldHVybiBrZXlzLmxlbmd0aCBeIGZhaWxYb3I7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjID09PSAwID8gaSA6IGkgXiBmYWlsWG9yOyovXHJcbiAgICB9O1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIExlYWYgTm9kZTogbWlzYyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmtleXNbMF07XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLm1pblBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICBpZiAodGhpcy5rZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1swXTtcclxuICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzWzBdO1xyXG4gICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWF4UGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHZhciBsYXN0SW5kZXggPSB0aGlzLmtleXMubGVuZ3RoIC0gMTtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tsYXN0SW5kZXhdO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzFdID0gdGhpcy52YWx1ZXNbbGFzdEluZGV4XTtcclxuICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZSh0aGlzLmtleXMuc2xpY2UoMCksIHYgPT09IHVuZGVmVmFscyA/IHYgOiB2LnNsaWNlKDApKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ3JlZWR5Q2xvbmUgPSBmdW5jdGlvbiAoZm9yY2UpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NoYXJlZCAmJiAhZm9yY2UgPyB0aGlzIDogdGhpcy5jbG9uZSgpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUsIHRyZWUpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCB0cmVlLl9jb21wYXJlKTtcclxuICAgICAgICByZXR1cm4gaSA8IDAgPyBkZWZhdWx0VmFsdWUgOiB0aGlzLnZhbHVlc1tpXTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgLTEsIGNvbXBhcmUpO1xyXG4gICAgICAgIHZhciBpbmRleE9yTG93ZXIgPSBpIDwgMCA/IH5pIC0gMSA6IChpbmNsdXNpdmUgPyBpIDogaSAtIDEpO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPj0gMCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzW2luZGV4T3JMb3dlcl07XHJcbiAgICAgICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCBjb21wYXJlKTtcclxuICAgICAgICB2YXIgaW5kZXhPckxvd2VyID0gaSA8IDAgPyB+aSA6IChpbmNsdXNpdmUgPyBpIDogaSArIDEpO1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPCBrZXlzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGtleXNbaW5kZXhPckxvd2VyXTtcclxuICAgICAgICAgICAgcmV1c2VkQXJyYXlbMV0gPSB0aGlzLnZhbHVlc1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIHZMID0gdGhpcy52YWx1ZXMubGVuZ3RoO1xyXG4gICAgICAgIGNoZWNrKHRoaXMudmFsdWVzID09PSB1bmRlZlZhbHMgPyBrTCA8PSB2TCA6IGtMID09PSB2TCwgXCJrZXlzL3ZhbHVlcyBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXCIsIGRlcHRoLCBcIndpdGggbGVuZ3Roc1wiLCBrTCwgdkwsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGNoZWNrIGZvciBcIm5vZGUgdG9vIHNtYWxsXCIgYmVjYXVzZSBzb21ldGltZXMgYSBub2RlXHJcbiAgICAgICAgLy8gY2FuIGxlZ2l0aW1hdGVseSBoYXZlIHNpemUgMS4gVGhpcyBvY2N1cnMgaWYgdGhlcmUgaXMgYSBiYXRjaCBcclxuICAgICAgICAvLyBkZWxldGlvbiwgbGVhdmluZyBhIG5vZGUgb2Ygc2l6ZSAxLCBhbmQgdGhlIHNpYmxpbmdzIGFyZSBmdWxsIHNvXHJcbiAgICAgICAgLy8gaXQgY2FuJ3QgYmUgbWVyZ2VkIHdpdGggYWRqYWNlbnQgbm9kZXMuIEhvd2V2ZXIsIHRoZSBwYXJlbnQgd2lsbFxyXG4gICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBhdmVyYWdlIG5vZGUgc2l6ZSBpcyBhdCBsZWFzdCBoYWxmIG9mIHRoZSBtYXhpbXVtLlxyXG4gICAgICAgIGNoZWNrKGRlcHRoID09IDAgfHwga0wgPiAwLCBcImVtcHR5IGxlYWYgYXQgZGVwdGhcIiwgZGVwdGgsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBrTDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlLCB0cmVlKSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAtMSwgdHJlZS5fY29tcGFyZSk7XHJcbiAgICAgICAgaWYgKGkgPCAwKSB7XHJcbiAgICAgICAgICAgIC8vIGtleSBkb2VzIG5vdCBleGlzdCB5ZXRcclxuICAgICAgICAgICAgaSA9IH5pO1xyXG4gICAgICAgICAgICB0cmVlLl9zaXplKys7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoIDwgdHJlZS5fbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbGVhZiBub2RlIGlzIGZ1bGwgYW5kIG11c3Qgc3BsaXRcclxuICAgICAgICAgICAgICAgIHZhciBuZXdSaWdodFNpYmxpbmcgPSB0aGlzLnNwbGl0T2ZmUmlnaHRTaWRlKCksIHRhcmdldCA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IHRoaXMua2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpIC09IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Lmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEtleSBhbHJlYWR5IGV4aXN0c1xyXG4gICAgICAgICAgICBpZiAob3ZlcndyaXRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgLy8gdXN1YWxseSB0aGlzIGlzIGEgbm8tb3AsIGJ1dCBzb21lIHVzZXJzIG1heSB3aXNoIHRvIGVkaXQgdGhlIGtleVxyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXlzW2ldID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXNbaV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5yZWlmeVZhbHVlcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscylcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5pbnNlcnRJbkxlYWYgPSBmdW5jdGlvbiAoaSwga2V5LCB2YWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHRoaXMua2V5cy5zcGxpY2UoaSwgMCwga2V5KTtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICB3aGlsZSAodW5kZWZWYWxzLmxlbmd0aCA8IHRyZWUuX21heE5vZGVTaXplKVxyXG4gICAgICAgICAgICAgICAgdW5kZWZWYWxzLnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB1bmRlZlZhbHMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAwLCB2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlcztcclxuICAgICAgICBpZiAocmhzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmICh2ICE9PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICB2LnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHYgPSB0aGlzLnJlaWZ5VmFsdWVzKCk7XHJcbiAgICAgICAgICAgIHYucHVzaChyaHMudmFsdWVzLnNoaWZ0KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmtleXMucHVzaChyaHMua2V5cy5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUudGFrZUZyb21MZWZ0ID0gZnVuY3Rpb24gKGxocykge1xyXG4gICAgICAgIC8vIFJlbWluZGVyOiBwYXJlbnQgbm9kZSBtdXN0IHVwZGF0ZSBpdHMgY29weSBvZiBrZXkgZm9yIHRoaXMgbm9kZVxyXG4gICAgICAgIC8vIGFzc2VydDogbmVpdGhlciBub2RlIGlzIHNoYXJlZFxyXG4gICAgICAgIC8vIGFzc2VydCByaHMua2V5cy5sZW5ndGggPiAobWF4Tm9kZVNpemUvMiAmJiB0aGlzLmtleXMubGVuZ3RoPG1heE5vZGVTaXplKVxyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgaWYgKGxocy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICBpZiAodiAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgdi51bnNoaWZ0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2ID0gdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICB2LnVuc2hpZnQobGhzLnZhbHVlcy5wb3AoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMua2V5cy51bnNoaWZ0KGxocy5rZXlzLnBvcCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgdmFyIGhhbGYgPSB0aGlzLmtleXMubGVuZ3RoID4+IDEsIGtleXMgPSB0aGlzLmtleXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzID8gdW5kZWZWYWxzIDogdGhpcy52YWx1ZXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHJldHVybiBuZXcgQk5vZGUoa2V5cywgdmFsdWVzKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpIHtcclxuICAgICAgICB2YXIgY21wID0gdHJlZS5fY29tcGFyZTtcclxuICAgICAgICB2YXIgaUxvdywgaUhpZ2g7XHJcbiAgICAgICAgaWYgKGhpZ2ggPT09IGxvdykge1xyXG4gICAgICAgICAgICBpZiAoIWluY2x1ZGVIaWdoKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgICAgICBpSGlnaCA9IChpTG93ID0gdGhpcy5pbmRleE9mKGxvdywgLTEsIGNtcCkpICsgMTtcclxuICAgICAgICAgICAgaWYgKGlMb3cgPCAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCk7XHJcbiAgICAgICAgICAgIGlIaWdoID0gdGhpcy5pbmRleE9mKGhpZ2gsIC0xLCBjbXApO1xyXG4gICAgICAgICAgICBpZiAoaUhpZ2ggPCAwKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2ggPSB+aUhpZ2g7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGluY2x1ZGVIaWdoID09PSB0cnVlKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2grKztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xyXG4gICAgICAgIGlmIChvbkZvdW5kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGlMb3c7IGkgPCBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbkZvdW5kKGtleSwgdmFsdWVzW2ldLCBjb3VudCsrKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0TW9kZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBrZXlzW2ldIHx8IHRoaXMuaXNTaGFyZWQgPT09IHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCVHJlZSBpbGxlZ2FsbHkgY2hhbmdlZCBvciBjbG9uZWQgaW4gZWRpdFJhbmdlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlcyAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUuX3NpemUtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlIaWdoLS07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0Lmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSByZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5icmVhayAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY291bnQgKz0gaUhpZ2ggLSBpTG93O1xyXG4gICAgICAgIHJldHVybiBjb3VudDtcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBlbnRpcmUgY29udGVudHMgb2YgcmlnaHQtaGFuZCBzaWJsaW5nIChyaHMgaXMgbGVmdCB1bmNoYW5nZWQpICovXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgXykge1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoLmFwcGx5KHRoaXMua2V5cywgcmhzLmtleXMpO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmIChyaHMudmFsdWVzID09PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsIHJocy5yZWlmeVZhbHVlcygpKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gQk5vZGU7XHJcbn0oKSk7XHJcbi8qKiBJbnRlcm5hbCBub2RlIChub24tbGVhZiBub2RlKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxudmFyIEJOb2RlSW50ZXJuYWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQk5vZGVJbnRlcm5hbCwgX3N1cGVyKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBtYXJrIGBjaGlsZHJlbmAgYXMgc2hhcmVkLCBzbyBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlclxyXG4gICAgICogdG8gZW5zdXJlIGNoaWxkcmVuIGFyZSBlaXRoZXIgbWFya2VkIHNoYXJlZCwgb3IgYXJlbid0IGluY2x1ZGVkIGluIGFub3RoZXIgdHJlZS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gQk5vZGVJbnRlcm5hbChjaGlsZHJlbiwga2V5cykge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgaWYgKCFrZXlzKSB7XHJcbiAgICAgICAgICAgIGtleXMgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGtleXNbaV0gPSBjaGlsZHJlbltpXS5tYXhLZXkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBrZXlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5zbGljZSgwKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICBjaGlsZHJlbltpXS5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZUludGVybmFsKGNoaWxkcmVuLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTaGFyZWQgJiYgIWZvcmNlKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB2YXIgbnUgPSBuZXcgQk5vZGVJbnRlcm5hbCh0aGlzLmNoaWxkcmVuLnNsaWNlKDApLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIG51LmNoaWxkcmVuW2ldID0gbnUuY2hpbGRyZW5baV0uZ3JlZWR5Q2xvbmUoZm9yY2UpO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5taW5LZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluS2V5KCk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWluUGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuWzBdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLm1heFBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgdHJlZS5fY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gaSA8IGNoaWxkcmVuLmxlbmd0aCA/IGNoaWxkcmVuW2ldLmdldChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkgOiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICBpZiAoaSA+PSBjaGlsZHJlbi5sZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5nZXRQYWlyT3JOZXh0TG93ZXIoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KTtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgaSA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2kgLSAxXS5tYXhQYWlyKHJldXNlZEFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0SGlnaGVyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiwgbGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgIGlmIChpID49IGxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gY2hpbGRyZW5baV0uZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBpIDwgbGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baSArIDFdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIGNMID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgY2hlY2soa0wgPT09IGNMLCBcImtleXMvY2hpbGRyZW4gbGVuZ3RoIG1pc21hdGNoOiBkZXB0aFwiLCBkZXB0aCwgXCJsZW5ndGhzXCIsIGtMLCBjTCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICBjaGVjayhrTCA+IDEgfHwgZGVwdGggPiAwLCBcImludGVybmFsIG5vZGUgaGFzIGxlbmd0aFwiLCBrTCwgXCJhdCBkZXB0aFwiLCBkZXB0aCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICB2YXIgc2l6ZSA9IDAsIGMgPSB0aGlzLmNoaWxkcmVuLCBrID0gdGhpcy5rZXlzLCBjaGlsZFNpemUgPSAwO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY0w7IGkrKykge1xyXG4gICAgICAgICAgICBzaXplICs9IGNbaV0uY2hlY2tWYWxpZChkZXB0aCArIDEsIHRyZWUsIGJhc2VJbmRleCArIHNpemUpO1xyXG4gICAgICAgICAgICBjaGlsZFNpemUgKz0gY1tpXS5rZXlzLmxlbmd0aDtcclxuICAgICAgICAgICAgY2hlY2soc2l6ZSA+PSBjaGlsZFNpemUsIFwid3RmXCIsIGJhc2VJbmRleCk7IC8vIG5vIHdheSB0aGlzIHdpbGwgZXZlciBmYWlsXHJcbiAgICAgICAgICAgIGNoZWNrKGkgPT09IDAgfHwgY1tpIC0gMV0uY29uc3RydWN0b3IgPT09IGNbaV0uY29uc3RydWN0b3IsIFwidHlwZSBtaXNtYXRjaCwgYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoY1tpXS5tYXhLZXkoKSAhPSBrW2ldKVxyXG4gICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwia2V5c1tcIiwgaSwgXCJdID1cIiwga1tpXSwgXCJpcyB3cm9uZywgc2hvdWxkIGJlIFwiLCBjW2ldLm1heEtleSgpLCBcImF0IGRlcHRoXCIsIGRlcHRoLCBcImJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoIShpID09PSAwIHx8IHRyZWUuX2NvbXBhcmUoa1tpIC0gMV0sIGtbaV0pIDwgMCkpXHJcbiAgICAgICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJzb3J0IHZpb2xhdGlvbiBhdCBkZXB0aFwiLCBkZXB0aCwgXCJpbmRleFwiLCBpLCBcImtleXNcIiwga1tpIC0gMV0sIGtbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyAyMDIwLzA4OiBCVHJlZSBkb2Vzbid0IGFsd2F5cyBhdm9pZCBncm9zc2x5IHVuZGVyc2l6ZWQgbm9kZXMsXHJcbiAgICAgICAgLy8gYnV0IEFGQUlLIHN1Y2ggbm9kZXMgYXJlIHByZXR0eSBoYXJtbGVzcywgc28gYWNjZXB0IHRoZW0uXHJcbiAgICAgICAgdmFyIHRvb2ZldyA9IGNoaWxkU2l6ZSA9PT0gMDsgLy8gY2hpbGRTaXplIDwgKHRyZWUubWF4Tm9kZVNpemUgPj4gMSkqY0w7XHJcbiAgICAgICAgaWYgKHRvb2ZldyB8fCBjaGlsZFNpemUgPiB0cmVlLm1heE5vZGVTaXplICogY0wpXHJcbiAgICAgICAgICAgIGNoZWNrKGZhbHNlLCB0b29mZXcgPyBcInRvbyBmZXdcIiA6IFwidG9vIG1hbnlcIiwgXCJjaGlsZHJlbiAoXCIsIGNoaWxkU2l6ZSwgc2l6ZSwgXCIpIGF0IGRlcHRoXCIsIGRlcHRoLCBcIm1heE5vZGVTaXplOlwiLCB0cmVlLm1heE5vZGVTaXplLCBcImNoaWxkcmVuLmxlbmd0aDpcIiwgY0wsIFwiYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBjID0gdGhpcy5jaGlsZHJlbiwgbWF4ID0gdHJlZS5fbWF4Tm9kZVNpemUsIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGkgPSBNYXRoLm1pbih0aGlzLmluZGV4T2Yoa2V5LCAwLCBjbXApLCBjLmxlbmd0aCAtIDEpLCBjaGlsZCA9IGNbaV07XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICBjW2ldID0gY2hpbGQgPSBjaGlsZC5jbG9uZSgpO1xyXG4gICAgICAgIGlmIChjaGlsZC5rZXlzLmxlbmd0aCA+PSBtYXgpIHtcclxuICAgICAgICAgICAgLy8gY2hpbGQgaXMgZnVsbDsgaW5zZXJ0aW5nIGFueXRoaW5nIGVsc2Ugd2lsbCBjYXVzZSBhIHNwbGl0LlxyXG4gICAgICAgICAgICAvLyBTaGlmdGluZyBhbiBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpYmxpbmcgbWF5IGF2b2lkIGEgc3BsaXQuXHJcbiAgICAgICAgICAgIC8vIFdlIGNhbiBkbyBhIHNoaWZ0IGlmIHRoZSBhZGphY2VudCBub2RlIGlzIG5vdCBmdWxsIGFuZCBpZiB0aGVcclxuICAgICAgICAgICAgLy8gY3VycmVudCBrZXkgY2FuIHN0aWxsIGJlIHBsYWNlZCBpbiB0aGUgc2FtZSBub2RlIGFmdGVyIHRoZSBzaGlmdC5cclxuICAgICAgICAgICAgdmFyIG90aGVyO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDAgJiYgKG90aGVyID0gY1tpIC0gMV0pLmtleXMubGVuZ3RoIDwgbWF4ICYmIGNtcChjaGlsZC5rZXlzWzBdLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSAtIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21SaWdodChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXNbaSAtIDFdID0gb3RoZXIubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKG90aGVyID0gY1tpICsgMV0pICE9PSB1bmRlZmluZWQgJiYgb3RoZXIua2V5cy5sZW5ndGggPCBtYXggJiYgY21wKGNoaWxkLm1heEtleSgpLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSArIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21MZWZ0KGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNbaV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkLnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUsIHRyZWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5rZXlzW2ldID0gY2hpbGQubWF4S2V5KCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy8gVGhlIGNoaWxkIGhhcyBzcGxpdCBhbmQgYHJlc3VsdGAgaXMgYSBuZXcgcmlnaHQgY2hpbGQuLi4gZG9lcyBpdCBmaXQ/XHJcbiAgICAgICAgaWYgKHRoaXMua2V5cy5sZW5ndGggPCBtYXgpIHsgLy8geWVzXHJcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0KGkgKyAxLCByZXN1bHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIG5vLCB3ZSBtdXN0IHNwbGl0IGFsc29cclxuICAgICAgICAgICAgdmFyIG5ld1JpZ2h0U2libGluZyA9IHRoaXMuc3BsaXRPZmZSaWdodFNpZGUoKSwgdGFyZ2V0ID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGNtcChyZXN1bHQubWF4S2V5KCksIHRoaXMubWF4S2V5KCkpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgaSAtPSB0aGlzLmtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRhcmdldC5pbnNlcnQoaSArIDEsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBgY2hpbGRgIGF0IGluZGV4IGBpYC5cclxuICAgICAqIFRoaXMgZG9lcyBub3QgbWFyayBgY2hpbGRgIGFzIHNoYXJlZCwgc28gaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXJcclxuICAgICAqIHRvIGVuc3VyZSB0aGF0IGVpdGhlciBjaGlsZCBpcyBtYXJrZWQgc2hhcmVkLCBvciBpdCBpcyBub3QgaW5jbHVkZWQgaW4gYW5vdGhlciB0cmVlLlxyXG4gICAgICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbiAoaSwgY2hpbGQpIHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBjaGlsZCk7XHJcbiAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAwLCBjaGlsZC5tYXhLZXkoKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGxpdCB0aGlzIG5vZGUuXHJcbiAgICAgKiBNb2RpZmllcyB0aGlzIHRvIHJlbW92ZSB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIGl0ZW1zLCByZXR1cm5pbmcgYSBzZXBhcmF0ZSBub2RlIGNvbnRhaW5pbmcgdGhlbS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gYXNzZXJ0ICF0aGlzLmlzU2hhcmVkO1xyXG4gICAgICAgIHZhciBoYWxmID0gdGhpcy5jaGlsZHJlbi5sZW5ndGggPj4gMTtcclxuICAgICAgICByZXR1cm4gbmV3IEJOb2RlSW50ZXJuYWwodGhpcy5jaGlsZHJlbi5zcGxpY2UoaGFsZiksIHRoaXMua2V5cy5zcGxpY2UoaGFsZikpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2gocmhzLmtleXMuc2hpZnQoKSk7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKHJocy5jaGlsZHJlbi5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS50YWtlRnJvbUxlZnQgPSBmdW5jdGlvbiAobGhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnVuc2hpZnQobGhzLmtleXMucG9wKCkpO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChsaHMuY2hpbGRyZW4ucG9wKCkpO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTm90ZTogYGNvdW50YCBpcyB0aGUgbmV4dCB2YWx1ZSBvZiB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYG9uRm91bmRgLiBcclxuICAgIC8vICAgICAgIEEgbGVhZiBub2RlJ3MgYGZvclJhbmdlYCBmdW5jdGlvbiByZXR1cm5zIGEgbmV3IHZhbHVlIGZvciB0aGlzIGNvdW50ZXIsXHJcbiAgICAvLyAgICAgICB1bmxlc3MgdGhlIG9wZXJhdGlvbiBpcyB0byBzdG9wIGVhcmx5LlxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZm9yUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZWRpdE1vZGUsIHRyZWUsIGNvdW50LCBvbkZvdW5kKSB7XHJcbiAgICAgICAgdmFyIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICB2YXIgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCksIGkgPSBpTG93O1xyXG4gICAgICAgIHZhciBpSGlnaCA9IE1hdGgubWluKGhpZ2ggPT09IGxvdyA/IGlMb3cgOiB0aGlzLmluZGV4T2YoaGlnaCwgMCwgY21wKSwga2V5cy5sZW5ndGggLSAxKTtcclxuICAgICAgICBpZiAoIWVkaXRNb2RlKSB7XHJcbiAgICAgICAgICAgIC8vIFNpbXBsZSBjYXNlXHJcbiAgICAgICAgICAgIGZvciAoOyBpIDw9IGlIaWdoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBjb3VudCA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpIDw9IGlIaWdoKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKDsgaSA8PSBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkcmVuW2ldLmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGVkaXRNb2RlLCB0cmVlLCBjb3VudCwgb25Gb3VuZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogaWYgY2hpbGRyZW5baV0gaXMgZW1wdHkgdGhlbiBrZXlzW2ldPXVuZGVmaW5lZC5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBUaGlzIGlzIGFuIGludmFsaWQgc3RhdGUsIGJ1dCBpdCBpcyBmaXhlZCBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICBrZXlzW2ldID0gY2hpbGRyZW5baV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGVsZXRpb25zIG1heSBoYXZlIG9jY3VycmVkLCBzbyBsb29rIGZvciBvcHBvcnR1bml0aWVzIHRvIG1lcmdlIG5vZGVzLlxyXG4gICAgICAgICAgICAgICAgdmFyIGhhbGYgPSB0cmVlLl9tYXhOb2RlU2l6ZSA+PiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlMb3cgPiAwKVxyXG4gICAgICAgICAgICAgICAgICAgIGlMb3ctLTtcclxuICAgICAgICAgICAgICAgIGZvciAoaSA9IGlIaWdoOyBpID49IGlMb3c7IGktLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCA8PSBoYWxmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cnlNZXJnZShpLCB0cmVlLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIGNoaWxkIGlzIGVtcHR5ISBkZWxldGUgaXQhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggIT09IDAgJiYgY2hpbGRyZW5bMF0ua2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiZW1wdGluZXNzIGJ1Z1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIE1lcmdlcyBjaGlsZCBpIHdpdGggY2hpbGQgaSsxIGlmIHRoZWlyIGNvbWJpbmVkIHNpemUgaXMgbm90IHRvbyBsYXJnZSAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUudHJ5TWVyZ2UgPSBmdW5jdGlvbiAoaSwgbWF4U2l6ZSkge1xyXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47XHJcbiAgICAgICAgaWYgKGkgPj0gMCAmJiBpICsgMSA8IGNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0ua2V5cy5sZW5ndGggKyBjaGlsZHJlbltpICsgMV0ua2V5cy5sZW5ndGggPD0gbWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKSAvLyBjbG9uZWQgYWxyZWFkeSBVTkxFU1MgaSBpcyBvdXRzaWRlIHNjYW4gcmFuZ2VcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbltpXS5tZXJnZVNpYmxpbmcoY2hpbGRyZW5baSArIDFdLCBtYXhTaXplKTtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpICsgMSwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXMuc3BsaWNlKGkgKyAxLCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNoaWxkcmVuW2ldLm1heEtleSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogTW92ZSBjaGlsZHJlbiBmcm9tIGByaHNgIGludG8gdGhpcy5cclxuICAgICAqIGByaHNgIG11c3QgYmUgcGFydCBvZiB0aGlzIHRyZWUsIGFuZCBiZSByZW1vdmVkIGZyb20gaXQgYWZ0ZXIgdGhpcyBjYWxsXHJcbiAgICAgKiAob3RoZXJ3aXNlIGlzU2hhcmVkIGZvciBpdHMgY2hpbGRyZW4gY291bGQgYmUgaW5jb3JyZWN0KS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAvLyBhc3NlcnQgIXRoaXMuaXNTaGFyZWQ7XHJcbiAgICAgICAgdmFyIG9sZExlbmd0aCA9IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLCByaHMua2V5cyk7XHJcbiAgICAgICAgdmFyIHJoc0NoaWxkcmVuID0gcmhzLmNoaWxkcmVuO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaC5hcHBseSh0aGlzLmNoaWxkcmVuLCByaHNDaGlsZHJlbik7XHJcbiAgICAgICAgaWYgKHJocy5pc1NoYXJlZCAmJiAhdGhpcy5pc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAvLyBBbGwgY2hpbGRyZW4gb2YgYSBzaGFyZWQgbm9kZSBhcmUgaW1wbGljaXRseSBzaGFyZWQsIGFuZCBzaW5jZSB0aGVpciBuZXdcclxuICAgICAgICAgICAgLy8gcGFyZW50IGlzIG5vdCBzaGFyZWQsIHRoZXkgbXVzdCBub3cgYmUgZXhwbGljaXRseSBtYXJrZWQgYXMgc2hhcmVkLlxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJoc0NoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgcmhzQ2hpbGRyZW5baV0uaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBvdXIgY2hpbGRyZW4gYXJlIHRoZW1zZWx2ZXMgYWxtb3N0IGVtcHR5IGR1ZSB0byBhIG1hc3MtZGVsZXRlLFxyXG4gICAgICAgIC8vIHRoZXkgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIHRvbyAoYnV0IG9ubHkgdGhlIG9sZExlbmd0aC0xIGFuZCBpdHNcclxuICAgICAgICAvLyByaWdodCBzaWJsaW5nIHNob3VsZCBuZWVkIHRoaXMpLlxyXG4gICAgICAgIHRoaXMudHJ5TWVyZ2Uob2xkTGVuZ3RoIC0gMSwgbWF4Tm9kZVNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCTm9kZUludGVybmFsO1xyXG59KEJOb2RlKSk7XHJcbi8vIE9wdGltaXphdGlvbjogdGhpcyBhcnJheSBvZiBgdW5kZWZpbmVkYHMgaXMgdXNlZCBpbnN0ZWFkIG9mIGEgbm9ybWFsXHJcbi8vIGFycmF5IG9mIHZhbHVlcyBpbiBub2RlcyB3aGVyZSBgdW5kZWZpbmVkYCBpcyB0aGUgb25seSB2YWx1ZS5cclxuLy8gSXRzIGxlbmd0aCBpcyBleHRlbmRlZCB0byBtYXggbm9kZSBzaXplIG9uIGZpcnN0IHVzZTsgc2luY2UgaXQgY2FuXHJcbi8vIGJlIHNoYXJlZCBiZXR3ZWVuIHRyZWVzIHdpdGggZGlmZmVyZW50IG1heGltdW1zLCBpdHMgbGVuZ3RoIGNhbiBvbmx5XHJcbi8vIGluY3JlYXNlLCBuZXZlciBkZWNyZWFzZS4gSXRzIHR5cGUgc2hvdWxkIGJlIHVuZGVmaW5lZFtdIGJ1dCBzdHJhbmdlbHlcclxuLy8gVHlwZVNjcmlwdCB3b24ndCBhbGxvdyB0aGUgY29tcGFyaXNvbiBWW10gPT09IHVuZGVmaW5lZFtdLiBUbyBwcmV2ZW50XHJcbi8vIHVzZXJzIGZyb20gbWFraW5nIHRoaXMgYXJyYXkgdG9vIGxhcmdlLCBCVHJlZSBoYXMgYSBtYXhpbXVtIG5vZGUgc2l6ZS5cclxuLy9cclxuLy8gRkFROiB1bmRlZlZhbHNbaV0gaXMgYWxyZWFkeSB1bmRlZmluZWQsIHNvIHdoeSBpbmNyZWFzZSB0aGUgYXJyYXkgc2l6ZT9cclxuLy8gUmVhZGluZyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYW4gYXJyYXkgaXMgcmVsYXRpdmVseSBzbG93IGJlY2F1c2UgaXRcclxuLy8gaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzY2FubmluZyB0aGUgcHJvdG90eXBlIGNoYWluLlxyXG52YXIgdW5kZWZWYWxzID0gW107XHJcbnZhciBEZWxldGUgPSB7IGRlbGV0ZTogdHJ1ZSB9LCBEZWxldGVSYW5nZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIERlbGV0ZTsgfTtcclxudmFyIEJyZWFrID0geyBicmVhazogdHJ1ZSB9O1xyXG52YXIgRW1wdHlMZWFmID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBuID0gbmV3IEJOb2RlKCk7XHJcbiAgICBuLmlzU2hhcmVkID0gdHJ1ZTtcclxuICAgIHJldHVybiBuO1xyXG59KSgpO1xyXG52YXIgRW1wdHlBcnJheSA9IFtdO1xyXG52YXIgUmV1c2VkQXJyYXkgPSBbXTsgLy8gYXNzdW1lZCB0aHJlYWQtbG9jYWxcclxuZnVuY3Rpb24gY2hlY2soZmFjdCkge1xyXG4gICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgYXJnc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIGlmICghZmFjdCkge1xyXG4gICAgICAgIGFyZ3MudW5zaGlmdCgnQisgdHJlZScpOyAvLyBhdCBiZWdpbm5pbmcgb2YgbWVzc2FnZVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihhcmdzLmpvaW4oJyAnKSk7XHJcbiAgICB9XHJcbn1cclxuLyoqIEEgQlRyZWUgZnJvemVuIGluIHRoZSBlbXB0eSBzdGF0ZS4gKi9cclxuZXhwb3J0cy5FbXB0eUJUcmVlID0gKGZ1bmN0aW9uICgpIHsgdmFyIHQgPSBuZXcgQlRyZWUoKTsgdC5mcmVlemUoKTsgcmV0dXJuIHQ7IH0pKCk7XHJcbiIsICIvLyB0aGVzZSBhcmVuJ3QgcmVhbGx5IHByaXZhdGUsIGJ1dCBub3IgYXJlIHRoZXkgcmVhbGx5IHVzZWZ1bCB0byBkb2N1bWVudFxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIEx1eG9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRGF0ZVRpbWVFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBEYXRlVGltZTogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEludGVydmFsRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgSW50ZXJ2YWw6ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREdXJhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIER1cmF0aW9uOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZFVuaXRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih1bml0KSB7XG4gICAgc3VwZXIoYEludmFsaWQgdW5pdCAke3VuaXR9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEFyZ3VtZW50RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFpvbmVJc0Fic3RyYWN0RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJab25lIGlzIGFuIGFic3RyYWN0IGNsYXNzXCIpO1xuICB9XG59XG4iLCAiLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmNvbnN0IG4gPSBcIm51bWVyaWNcIixcbiAgcyA9IFwic2hvcnRcIixcbiAgbCA9IFwibG9uZ1wiO1xuXG5leHBvcnQgY29uc3QgREFURV9TSE9SVCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IG4sXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TRUNPTkRTID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRUQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBzLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IGwsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuIiwgIi8qXG4gIFRoaXMgaXMganVzdCBhIGp1bmsgZHJhd2VyLCBjb250YWluaW5nIGFueXRoaW5nIHVzZWQgYWNyb3NzIG11bHRpcGxlIGNsYXNzZXMuXG4gIEJlY2F1c2UgTHV4b24gaXMgc21hbGwoaXNoKSwgdGhpcyBzaG91bGQgc3RheSBzbWFsbCBhbmQgd2Ugd29uJ3Qgd29ycnkgYWJvdXQgc3BsaXR0aW5nXG4gIGl0IHVwIGludG8sIHNheSwgcGFyc2luZ1V0aWwuanMgYW5kIGJhc2ljVXRpbC5qcyBhbmQgc28gb24uIEJ1dCB0aGV5IGFyZSBkaXZpZGVkIHVwIGJ5IGZlYXR1cmUgYXJlYS5cbiovXG5cbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy5qc1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuLy8gVFlQRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInVuZGVmaW5lZFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVnZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCIgJiYgbyAlIDEgPT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyhvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZShvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykgPT09IFwiW29iamVjdCBEYXRlXVwiO1xufVxuXG4vLyBDQVBBQklMSVRJRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1JlbGF0aXZlKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0eXBlb2YgSW50bCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhIUludGwuUmVsYXRpdmVUaW1lRm9ybWF0O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIE9CSkVDVFMgQU5EIEFSUkFZU1xuXG5leHBvcnQgZnVuY3Rpb24gbWF5YmVBcnJheSh0aGluZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkge1xuICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGJlc3QsIG5leHQpID0+IHtcbiAgICBjb25zdCBwYWlyID0gW2J5KG5leHQpLCBuZXh0XTtcbiAgICBpZiAoIWJlc3QpIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH0gZWxzZSBpZiAoY29tcGFyZShiZXN0WzBdLCBwYWlyWzBdKSA9PT0gYmVzdFswXSkge1xuICAgICAgcmV0dXJuIGJlc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH1cbiAgfSwgbnVsbClbMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrKG9iaiwga2V5cykge1xuICByZXR1cm4ga2V5cy5yZWR1Y2UoKGEsIGspID0+IHtcbiAgICBhW2tdID0gb2JqW2tdO1xuICAgIHJldHVybiBhO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG4vLyBOVU1CRVJTIEFORCBTVFJJTkdTXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyQmV0d2Vlbih0aGluZywgYm90dG9tLCB0b3ApIHtcbiAgcmV0dXJuIGlzSW50ZWdlcih0aGluZykgJiYgdGhpbmcgPj0gYm90dG9tICYmIHRoaW5nIDw9IHRvcDtcbn1cblxuLy8geCAlIG4gYnV0IHRha2VzIHRoZSBzaWduIG9mIG4gaW5zdGVhZCBvZiB4XG5leHBvcnQgZnVuY3Rpb24gZmxvb3JNb2QoeCwgbikge1xuICByZXR1cm4geCAtIG4gKiBNYXRoLmZsb29yKHggLyBuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZFN0YXJ0KGlucHV0LCBuID0gMikge1xuICBjb25zdCBpc05lZyA9IGlucHV0IDwgMDtcbiAgbGV0IHBhZGRlZDtcbiAgaWYgKGlzTmVnKSB7XG4gICAgcGFkZGVkID0gXCItXCIgKyAoXCJcIiArIC1pbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9IGVsc2Uge1xuICAgIHBhZGRlZCA9IChcIlwiICsgaW5wdXQpLnBhZFN0YXJ0KG4sIFwiMFwiKTtcbiAgfVxuICByZXR1cm4gcGFkZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlZ2VyKHN0cmluZykge1xuICBpZiAoaXNVbmRlZmluZWQoc3RyaW5nKSB8fCBzdHJpbmcgPT09IG51bGwgfHwgc3RyaW5nID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nLCAxMCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRmxvYXRpbmcoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWlsbGlzKGZyYWN0aW9uKSB7XG4gIC8vIFJldHVybiB1bmRlZmluZWQgKGluc3RlYWQgb2YgMCkgaW4gdGhlc2UgY2FzZXMsIHdoZXJlIGZyYWN0aW9uIGlzIG5vdCBzZXRcbiAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZiA9IHBhcnNlRmxvYXQoXCIwLlwiICsgZnJhY3Rpb24pICogMTAwMDtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihmKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRUbyhudW1iZXIsIGRpZ2l0cywgdG93YXJkWmVybyA9IGZhbHNlKSB7XG4gIGNvbnN0IGZhY3RvciA9IDEwICoqIGRpZ2l0cyxcbiAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kO1xuICByZXR1cm4gcm91bmRlcihudW1iZXIgKiBmYWN0b3IpIC8gZmFjdG9yO1xufVxuXG4vLyBEQVRFIEJBU0lDU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gIGNvbnN0IG1vZE1vbnRoID0gZmxvb3JNb2QobW9udGggLSAxLCAxMikgKyAxLFxuICAgIG1vZFllYXIgPSB5ZWFyICsgKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG5cbiAgaWYgKG1vZE1vbnRoID09PSAyKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb2RNb250aCAtIDFdO1xuICB9XG59XG5cbi8vIGNvdmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGxvY2FsIHRpbWVzdGFtcCAoZXBvY2gsIGJ1dCB3aXRoIHRoZSBvZmZzZXQgYmFrZWQgaW4pXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9Mb2NhbFRTKG9iaikge1xuICBsZXQgZCA9IERhdGUuVVRDKFxuICAgIG9iai55ZWFyLFxuICAgIG9iai5tb250aCAtIDEsXG4gICAgb2JqLmRheSxcbiAgICBvYmouaG91cixcbiAgICBvYmoubWludXRlLFxuICAgIG9iai5zZWNvbmQsXG4gICAgb2JqLm1pbGxpc2Vjb25kXG4gICk7XG5cbiAgLy8gZm9yIGxlZ2FjeSByZWFzb25zLCB5ZWFycyBiZXR3ZWVuIDAgYW5kIDk5IGFyZSBpbnRlcnByZXRlZCBhcyAxOVhYOyByZXZlcnQgdGhhdFxuICBpZiAob2JqLnllYXIgPCAxMDAgJiYgb2JqLnllYXIgPj0gMCkge1xuICAgIGQgPSBuZXcgRGF0ZShkKTtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG4gIHJldHVybiArZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcikge1xuICBjb25zdCBwMSA9XG4gICAgICAod2Vla1llYXIgK1xuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gNCkgLVxuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gMTAwKSArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0MDApKSAlXG4gICAgICA3LFxuICAgIGxhc3QgPSB3ZWVrWWVhciAtIDEsXG4gICAgcDIgPSAobGFzdCArIE1hdGguZmxvb3IobGFzdCAvIDQpIC0gTWF0aC5mbG9vcihsYXN0IC8gMTAwKSArIE1hdGguZmxvb3IobGFzdCAvIDQwMCkpICUgNztcbiAgcmV0dXJuIHAxID09PSA0IHx8IHAyID09PSAzID8gNTMgOiA1Mjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXIpIHtcbiAgaWYgKHllYXIgPiA5OSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2UgcmV0dXJuIHllYXIgPiA2MCA/IDE5MDAgKyB5ZWFyIDogMjAwMCArIHllYXI7XG59XG5cbi8vIFBBUlNJTkdcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlWm9uZUluZm8odHMsIG9mZnNldEZvcm1hdCwgbG9jYWxlLCB0aW1lWm9uZSA9IG51bGwpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRzKSxcbiAgICBpbnRsT3B0cyA9IHtcbiAgICAgIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICB9O1xuXG4gIGlmICh0aW1lWm9uZSkge1xuICAgIGludGxPcHRzLnRpbWVab25lID0gdGltZVpvbmU7XG4gIH1cblxuICBjb25zdCBtb2RpZmllZCA9IHsgdGltZVpvbmVOYW1lOiBvZmZzZXRGb3JtYXQsIC4uLmludGxPcHRzIH07XG5cbiAgY29uc3QgcGFyc2VkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBtb2RpZmllZClcbiAgICAuZm9ybWF0VG9QYXJ0cyhkYXRlKVxuICAgIC5maW5kKChtKSA9PiBtLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0aW1lem9uZW5hbWVcIik7XG4gIHJldHVybiBwYXJzZWQgPyBwYXJzZWQudmFsdWUgOiBudWxsO1xufVxuXG4vLyBzaWduZWRPZmZzZXQoJy01JywgJzMwJykgLT4gLTMzMFxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25lZE9mZnNldChvZmZIb3VyU3RyLCBvZmZNaW51dGVTdHIpIHtcbiAgbGV0IG9mZkhvdXIgPSBwYXJzZUludChvZmZIb3VyU3RyLCAxMCk7XG5cbiAgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTBcbiAgaWYgKE51bWJlci5pc05hTihvZmZIb3VyKSkge1xuICAgIG9mZkhvdXIgPSAwO1xuICB9XG5cbiAgY29uc3Qgb2ZmTWluID0gcGFyc2VJbnQob2ZmTWludXRlU3RyLCAxMCkgfHwgMCxcbiAgICBvZmZNaW5TaWduZWQgPSBvZmZIb3VyIDwgMCB8fCBPYmplY3QuaXMob2ZmSG91ciwgLTApID8gLW9mZk1pbiA6IG9mZk1pbjtcbiAgcmV0dXJuIG9mZkhvdXIgKiA2MCArIG9mZk1pblNpZ25lZDtcbn1cblxuLy8gQ09FUkNJT05cblxuZXhwb3J0IGZ1bmN0aW9uIGFzTnVtYmVyKHZhbHVlKSB7XG4gIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiIHx8IHZhbHVlID09PSBcIlwiIHx8IE51bWJlci5pc05hTihudW1lcmljVmFsdWUpKVxuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCB1bml0IHZhbHVlICR7dmFsdWV9YCk7XG4gIHJldHVybiBudW1lcmljVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVyKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTtcbiAgZm9yIChjb25zdCB1IGluIG9iaikge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShvYmosIHUpKSB7XG4gICAgICBjb25zdCB2ID0gb2JqW3VdO1xuICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSBjb250aW51ZTtcbiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplcih1KV0gPSBhc051bWJlcih2KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRPZmZzZXQob2Zmc2V0LCBmb3JtYXQpIHtcbiAgY29uc3QgaG91cnMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAvIDYwKSksXG4gICAgbWludXRlcyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0ICUgNjApKSxcbiAgICBzaWduID0gb2Zmc2V0ID49IDAgPyBcIitcIiA6IFwiLVwiO1xuXG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX06JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7aG91cnN9JHttaW51dGVzID4gMCA/IGA6JHttaW51dGVzfWAgOiBcIlwifWA7XG4gICAgY2FzZSBcInRlY2hpZVwiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtwYWRTdGFydChob3VycywgMil9JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVmFsdWUgZm9ybWF0ICR7Zm9ybWF0fSBpcyBvdXQgb2YgcmFuZ2UgZm9yIHByb3BlcnR5IGZvcm1hdGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lT2JqZWN0KG9iaikge1xuICByZXR1cm4gcGljayhvYmosIFtcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSk7XG59XG5cbmV4cG9ydCBjb25zdCBpYW5hUmVnZXggPVxuICAvW0EtWmEtel8rLV17MSwyNTZ9KD86Oj9cXC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcXC9bQS1aYS16MC05XystXXsxLDI1Nn0pPyk/LztcbiIsICJpbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7IHBpY2sgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeShvYmopIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGNvbnN0IG1vbnRoc0xvbmcgPSBbXG4gIFwiSmFudWFyeVwiLFxuICBcIkZlYnJ1YXJ5XCIsXG4gIFwiTWFyY2hcIixcbiAgXCJBcHJpbFwiLFxuICBcIk1heVwiLFxuICBcIkp1bmVcIixcbiAgXCJKdWx5XCIsXG4gIFwiQXVndXN0XCIsXG4gIFwiU2VwdGVtYmVyXCIsXG4gIFwiT2N0b2JlclwiLFxuICBcIk5vdmVtYmVyXCIsXG4gIFwiRGVjZW1iZXJcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNTaG9ydCA9IFtcbiAgXCJKYW5cIixcbiAgXCJGZWJcIixcbiAgXCJNYXJcIixcbiAgXCJBcHJcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5cIixcbiAgXCJKdWxcIixcbiAgXCJBdWdcIixcbiAgXCJTZXBcIixcbiAgXCJPY3RcIixcbiAgXCJOb3ZcIixcbiAgXCJEZWNcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNOYXJyb3cgPSBbXCJKXCIsIFwiRlwiLCBcIk1cIiwgXCJBXCIsIFwiTVwiLCBcIkpcIiwgXCJKXCIsIFwiQVwiLCBcIlNcIiwgXCJPXCIsIFwiTlwiLCBcIkRcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb250aHMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgY2FzZSBcIjItZGlnaXRcIjpcbiAgICAgIHJldHVybiBbXCIwMVwiLCBcIjAyXCIsIFwiMDNcIiwgXCIwNFwiLCBcIjA1XCIsIFwiMDZcIiwgXCIwN1wiLCBcIjA4XCIsIFwiMDlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c0xvbmcgPSBbXG4gIFwiTW9uZGF5XCIsXG4gIFwiVHVlc2RheVwiLFxuICBcIldlZG5lc2RheVwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiRnJpZGF5XCIsXG4gIFwiU2F0dXJkYXlcIixcbiAgXCJTdW5kYXlcIixcbl07XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c1Nob3J0ID0gW1wiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCIsIFwiU3VuXCJdO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNOYXJyb3cgPSBbXCJNXCIsIFwiVFwiLCBcIldcIiwgXCJUXCIsIFwiRlwiLCBcIlNcIiwgXCJTXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCJdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWVyaWRpZW1zID0gW1wiQU1cIiwgXCJQTVwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNMb25nID0gW1wiQmVmb3JlIENocmlzdFwiLCBcIkFubm8gRG9taW5pXCJdO1xuXG5leHBvcnQgY29uc3QgZXJhc1Nob3J0ID0gW1wiQkNcIiwgXCJBRFwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNOYXJyb3cgPSBbXCJCXCIsIFwiQVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVyYXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTG9uZ107XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJpZGllbUZvckRhdGVUaW1lKGR0KSB7XG4gIHJldHVybiBtZXJpZGllbXNbZHQuaG91ciA8IDEyID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIHdlZWtkYXlzKGxlbmd0aClbZHQud2Vla2RheSAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiBtb250aHMobGVuZ3RoKVtkdC5tb250aCAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJhRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gZXJhcyhsZW5ndGgpW2R0LnllYXIgPCAwID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCBudW1lcmljID0gXCJhbHdheXNcIiwgbmFycm93ID0gZmFsc2UpIHtcbiAgY29uc3QgdW5pdHMgPSB7XG4gICAgeWVhcnM6IFtcInllYXJcIiwgXCJ5ci5cIl0sXG4gICAgcXVhcnRlcnM6IFtcInF1YXJ0ZXJcIiwgXCJxdHIuXCJdLFxuICAgIG1vbnRoczogW1wibW9udGhcIiwgXCJtby5cIl0sXG4gICAgd2Vla3M6IFtcIndlZWtcIiwgXCJ3ay5cIl0sXG4gICAgZGF5czogW1wiZGF5XCIsIFwiZGF5XCIsIFwiZGF5c1wiXSxcbiAgICBob3VyczogW1wiaG91clwiLCBcImhyLlwiXSxcbiAgICBtaW51dGVzOiBbXCJtaW51dGVcIiwgXCJtaW4uXCJdLFxuICAgIHNlY29uZHM6IFtcInNlY29uZFwiLCBcInNlYy5cIl0sXG4gIH07XG5cbiAgY29uc3QgbGFzdGFibGUgPSBbXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdLmluZGV4T2YodW5pdCkgPT09IC0xO1xuXG4gIGlmIChudW1lcmljID09PSBcImF1dG9cIiAmJiBsYXN0YWJsZSkge1xuICAgIGNvbnN0IGlzRGF5ID0gdW5pdCA9PT0gXCJkYXlzXCI7XG4gICAgc3dpdGNoIChjb3VudCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvbW9ycm93XCIgOiBgbmV4dCAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBjYXNlIC0xOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInllc3RlcmRheVwiIDogYGxhc3QgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvZGF5XCIgOiBgdGhpcyAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBkZWZhdWx0OiAvLyBmYWxsIHRocm91Z2hcbiAgICB9XG4gIH1cblxuICBjb25zdCBpc0luUGFzdCA9IE9iamVjdC5pcyhjb3VudCwgLTApIHx8IGNvdW50IDwgMCxcbiAgICBmbXRWYWx1ZSA9IE1hdGguYWJzKGNvdW50KSxcbiAgICBzaW5ndWxhciA9IGZtdFZhbHVlID09PSAxLFxuICAgIGxpbFVuaXRzID0gdW5pdHNbdW5pdF0sXG4gICAgZm10VW5pdCA9IG5hcnJvd1xuICAgICAgPyBzaW5ndWxhclxuICAgICAgICA/IGxpbFVuaXRzWzFdXG4gICAgICAgIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV1cbiAgICAgIDogc2luZ3VsYXJcbiAgICAgID8gdW5pdHNbdW5pdF1bMF1cbiAgICAgIDogdW5pdDtcbiAgcmV0dXJuIGlzSW5QYXN0ID8gYCR7Zm10VmFsdWV9ICR7Zm10VW5pdH0gYWdvYCA6IGBpbiAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0cmluZyhrbm93bkZvcm1hdCkge1xuICAvLyB0aGVzZSBhbGwgaGF2ZSB0aGUgb2Zmc2V0cyByZW1vdmVkIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlbVxuICAvLyB3aXRob3V0IGFsbCB0aGUgaW50bCBzdHVmZiB0aGlzIGlzIGJhY2tmaWxsaW5nXG4gIGNvbnN0IGZpbHRlcmVkID0gcGljayhrbm93bkZvcm1hdCwgW1xuICAgICAgXCJ3ZWVrZGF5XCIsXG4gICAgICBcImVyYVwiLFxuICAgICAgXCJ5ZWFyXCIsXG4gICAgICBcIm1vbnRoXCIsXG4gICAgICBcImRheVwiLFxuICAgICAgXCJob3VyXCIsXG4gICAgICBcIm1pbnV0ZVwiLFxuICAgICAgXCJzZWNvbmRcIixcbiAgICAgIFwidGltZVpvbmVOYW1lXCIsXG4gICAgICBcImhvdXJDeWNsZVwiLFxuICAgIF0pLFxuICAgIGtleSA9IHN0cmluZ2lmeShmaWx0ZXJlZCksXG4gICAgZGF0ZVRpbWVIdWdlID0gXCJFRUVFLCBMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0ZVTEwpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0hVR0UpOlxuICAgICAgcmV0dXJuIFwiRUVFRSwgTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1NJTVBMRSk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcImg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfU0lNUExFKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJISDptbTpzc1wiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTCk6XG4gICAgICByZXR1cm4gXCJMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfSFVHRSk6XG4gICAgICByZXR1cm4gZGF0ZVRpbWVIdWdlO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIk0vZC95eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIGQgTExMIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkVFRUUsIExMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRlVGltZUh1Z2U7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCAqIGFzIEZvcm1hdHMgZnJvbSBcIi4vZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHsgcGFkU3RhcnQgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVRva2VucyhzcGxpdHMsIHRva2VuVG9TdHJpbmcpIHtcbiAgbGV0IHMgPSBcIlwiO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHNwbGl0cykge1xuICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICBzICs9IHRva2VuLnZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcyArPSB0b2tlblRvU3RyaW5nKHRva2VuLnZhbCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzO1xufVxuXG5jb25zdCBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0ge1xuICBEOiBGb3JtYXRzLkRBVEVfU0hPUlQsXG4gIEREOiBGb3JtYXRzLkRBVEVfTUVELFxuICBEREQ6IEZvcm1hdHMuREFURV9GVUxMLFxuICBEREREOiBGb3JtYXRzLkRBVEVfSFVHRSxcbiAgdDogRm9ybWF0cy5USU1FX1NJTVBMRSxcbiAgdHQ6IEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFMsXG4gIHR0dDogRm9ybWF0cy5USU1FX1dJVEhfU0hPUlRfT0ZGU0VULFxuICB0dHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCxcbiAgVDogRm9ybWF0cy5USU1FXzI0X1NJTVBMRSxcbiAgVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFMsXG4gIFRUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VULFxuICBUVFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCxcbiAgZjogRm9ybWF0cy5EQVRFVElNRV9TSE9SVCxcbiAgZmY6IEZvcm1hdHMuREFURVRJTUVfTUVELFxuICBmZmY6IEZvcm1hdHMuREFURVRJTUVfRlVMTCxcbiAgZmZmZjogRm9ybWF0cy5EQVRFVElNRV9IVUdFLFxuICBGOiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyxcbiAgRkY6IEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyxcbiAgRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTLFxuICBGRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTLFxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm1hdHRlciB7XG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlRm9ybWF0KGZtdCkge1xuICAgIGxldCBjdXJyZW50ID0gbnVsbCxcbiAgICAgIGN1cnJlbnRGdWxsID0gXCJcIixcbiAgICAgIGJyYWNrZXRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHNwbGl0cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm10Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gZm10LmNoYXJBdChpKTtcbiAgICAgIGlmIChjID09PSBcIidcIikge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogYnJhY2tldGVkLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgICBjdXJyZW50RnVsbCA9IFwiXCI7XG4gICAgICAgIGJyYWNrZXRlZCA9ICFicmFja2V0ZWQ7XG4gICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkge1xuICAgICAgICBjdXJyZW50RnVsbCArPSBjO1xuICAgICAgfSBlbHNlIGlmIChjID09PSBjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRGdWxsICs9IGM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogZmFsc2UsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudEZ1bGwgPSBjO1xuICAgICAgICBjdXJyZW50ID0gYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgc3BsaXRzLnB1c2goeyBsaXRlcmFsOiBicmFja2V0ZWQsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwbGl0cztcbiAgfVxuXG4gIHN0YXRpYyBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKSB7XG4gICAgcmV0dXJuIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHNbdG9rZW5dO1xuICB9XG5cbiAgY29uc3RydWN0b3IobG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gZm9ybWF0T3B0cztcbiAgICB0aGlzLmxvYyA9IGxvY2FsZTtcbiAgICB0aGlzLnN5c3RlbUxvYyA9IG51bGw7XG4gIH1cblxuICBmb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgb3B0cykge1xuICAgIGlmICh0aGlzLnN5c3RlbUxvYyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeXN0ZW1Mb2MgPSB0aGlzLmxvYy5yZWRlZmF1bHRUb1N5c3RlbSgpO1xuICAgIH1cbiAgICBjb25zdCBkZiA9IHRoaXMuc3lzdGVtTG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYuZm9ybWF0KCk7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZShkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdCgpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWVQYXJ0cyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdFRvUGFydHMoKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLnJlc29sdmVkT3B0aW9ucygpO1xuICB9XG5cbiAgbnVtKG4sIHAgPSAwKSB7XG4gICAgLy8gd2UgZ2V0IHNvbWUgcGVyZiBvdXQgb2YgZG9pbmcgdGhpcyBoZXJlLCBhbm5veWluZ2x5XG4gICAgaWYgKHRoaXMub3B0cy5mb3JjZVNpbXBsZSkge1xuICAgICAgcmV0dXJuIHBhZFN0YXJ0KG4sIHApO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdHMgPSB7IC4uLnRoaXMub3B0cyB9O1xuXG4gICAgaWYgKHAgPiAwKSB7XG4gICAgICBvcHRzLnBhZFRvID0gcDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2MubnVtYmVyRm9ybWF0dGVyKG9wdHMpLmZvcm1hdChuKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm10KSB7XG4gICAgY29uc3Qga25vd25FbmdsaXNoID0gdGhpcy5sb2MubGlzdGluZ01vZGUoKSA9PT0gXCJlblwiLFxuICAgICAgdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPSB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAmJiB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAhPT0gXCJncmVnb3J5XCIsXG4gICAgICBzdHJpbmcgPSAob3B0cywgZXh0cmFjdCkgPT4gdGhpcy5sb2MuZXh0cmFjdChkdCwgb3B0cywgZXh0cmFjdCksXG4gICAgICBmb3JtYXRPZmZzZXQgPSAob3B0cykgPT4ge1xuICAgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHtcbiAgICAgICAgICByZXR1cm4gXCJaXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiBcIlwiO1xuICAgICAgfSxcbiAgICAgIG1lcmlkaWVtID0gKCkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLm1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpXG4gICAgICAgICAgOiBzdHJpbmcoeyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH0sIFwiZGF5cGVyaW9kXCIpLFxuICAgICAgbW9udGggPSAobGVuZ3RoLCBzdGFuZGFsb25lKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gubW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKVxuICAgICAgICAgIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7IG1vbnRoOiBsZW5ndGggfSA6IHsgbW9udGg6IGxlbmd0aCwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpLFxuICAgICAgd2Vla2RheSA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC53ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aClcbiAgICAgICAgICA6IHN0cmluZyhcbiAgICAgICAgICAgICAgc3RhbmRhbG9uZSA/IHsgd2Vla2RheTogbGVuZ3RoIH0gOiB7IHdlZWtkYXk6IGxlbmd0aCwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sXG4gICAgICAgICAgICAgIFwid2Vla2RheVwiXG4gICAgICAgICAgICApLFxuICAgICAgbWF5YmVNYWNybyA9ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pO1xuICAgICAgICBpZiAoZm9ybWF0T3B0cykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBmb3JtYXRPcHRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcmEgPSAobGVuZ3RoKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2ggPyBFbmdsaXNoLmVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHsgZXJhOiBsZW5ndGggfSwgXCJlcmFcIiksXG4gICAgICB0b2tlblRvU3RyaW5nID0gKHRva2VuKSA9PiB7XG4gICAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXNcbiAgICAgICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgICAgIC8vIG1zXG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCk7XG4gICAgICAgICAgY2FzZSBcInVcIjpcbiAgICAgICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICAgICAgY2FzZSBcIlNTU1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTtcbiAgICAgICAgICAvLyBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQpO1xuICAgICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnNlY29uZCwgMik7XG4gICAgICAgICAgLy8gZnJhY3Rpb25hbCBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwKSwgMik7XG4gICAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQubWlsbGlzZWNvbmQgLyAxMDApKTtcbiAgICAgICAgICAvLyBtaW51dGVzXG4gICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUpO1xuICAgICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSwgMik7XG4gICAgICAgICAgLy8gaG91cnNcbiAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyKTtcbiAgICAgICAgICBjYXNlIFwiaGhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMiwgMik7XG4gICAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyKTtcbiAgICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyLCAyKTtcbiAgICAgICAgICAvLyBvZmZzZXRcbiAgICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArNlxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogXCJuYXJyb3dcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArMDY6MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwic2hvcnRcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzA2MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwidGVjaGllXCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFU1RcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcInNob3J0XCIsIGxvY2FsZTogdGhpcy5sb2MubG9jYWxlIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFYXN0ZXJuIFN0YW5kYXJkIFRpbWVcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcImxvbmdcIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7XG4gICAgICAgICAgLy8gem9uZVxuICAgICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lTmFtZTtcbiAgICAgICAgICAvLyBtZXJpZGllbXNcbiAgICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgICAgcmV0dXJuIG1lcmlkaWVtKCk7XG4gICAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgZGF5OiBcIm51bWVyaWNcIiB9LCBcImRheVwiKSA6IHRoaXMubnVtKGR0LmRheSk7XG4gICAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6IFwiMi1kaWdpdFwiIH0sIFwiZGF5XCIpIDogdGhpcy5udW0oZHQuZGF5LCAyKTtcbiAgICAgICAgICAvLyB3ZWVrZGF5cyAtIHN0YW5kYWxvbmVcbiAgICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcImxvbmdcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gd2Vla2RheXMgLSBmb3JtYXRcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzZGF5J1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJsb25nXCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiRUVFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1QnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcIm5hcnJvd1wiLCBmYWxzZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gc3RhbmRhbG9uZVxuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpO1xuICAgICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMSwgZG9lc24ndCBzZWVtIHRvIHdvcmtcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIjItZGlnaXRcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgsIDIpO1xuICAgICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFuXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJzaG9ydFwiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5XG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJsb25nXCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJMTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gZm9ybWF0XG4gICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCk7XG4gICAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCIyLWRpZ2l0XCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTtcbiAgICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphblxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphbnVhcnlcbiAgICAgICAgICAgIHJldHVybiBtb250aChcImxvbmdcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgZmFsc2UpO1xuICAgICAgICAgIC8vIHllYXJzXG4gICAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMjAxNFxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpIDogdGhpcy5udW0oZHQueWVhcik7XG4gICAgICAgICAgY2FzZSBcInl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDE0XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIjItZGlnaXRcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTtcbiAgICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMDEyXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIm51bWVyaWNcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLCA0KTtcbiAgICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAwMDAxMlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhciwgNik7XG4gICAgICAgICAgLy8gZXJhc1xuICAgICAgICAgIGNhc2UgXCJHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFEXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwic2hvcnRcIik7XG4gICAgICAgICAgY2FzZSBcIkdHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFubm8gRG9taW5pXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwibG9uZ1wiKTtcbiAgICAgICAgICBjYXNlIFwiR0dHR0dcIjpcbiAgICAgICAgICAgIHJldHVybiBlcmEoXCJuYXJyb3dcIik7XG4gICAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIudG9TdHJpbmcoKS5zbGljZSgtMiksIDIpO1xuICAgICAgICAgIGNhc2UgXCJra2trXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIsIDQpO1xuICAgICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlcik7XG4gICAgICAgICAgY2FzZSBcIldXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlciwgMik7XG4gICAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5vcmRpbmFsKTtcbiAgICAgICAgICBjYXNlIFwib29vXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCwgMyk7XG4gICAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIpO1xuICAgICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJYXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC50cyAvIDEwMDApKTtcbiAgICAgICAgICBjYXNlIFwieFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnRzKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWFjcm8odG9rZW4pO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSwgdG9rZW5Ub1N0cmluZyk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbkZyb21TdHJpbmcoZHVyLCBmbXQpIHtcbiAgICBjb25zdCB0b2tlblRvRmllbGQgPSAodG9rZW4pID0+IHtcbiAgICAgICAgc3dpdGNoICh0b2tlblswXSkge1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtaWxsaXNlY29uZFwiO1xuICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICAgIHJldHVybiBcIndlZWtcIjtcbiAgICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgICAgICBjYXNlIFwieVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwieWVhclwiO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRva2VuVG9TdHJpbmcgPSAobGlsZHVyKSA9PiAodG9rZW4pID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTtcbiAgICAgICAgaWYgKG1hcHBlZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm51bShsaWxkdXIuZ2V0KG1hcHBlZCksIHRva2VuLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5zID0gRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksXG4gICAgICByZWFsVG9rZW5zID0gdG9rZW5zLnJlZHVjZShcbiAgICAgICAgKGZvdW5kLCB7IGxpdGVyYWwsIHZhbCB9KSA9PiAobGl0ZXJhbCA/IGZvdW5kIDogZm91bmQuY29uY2F0KHZhbCkpLFxuICAgICAgICBbXVxuICAgICAgKSxcbiAgICAgIGNvbGxhcHNlZCA9IGR1ci5zaGlmdFRvKC4uLnJlYWxUb2tlbnMubWFwKHRva2VuVG9GaWVsZCkuZmlsdGVyKCh0KSA9PiB0KSk7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2Vucyh0b2tlbnMsIHRva2VuVG9TdHJpbmcoY29sbGFwc2VkKSk7XG4gIH1cbn1cbiIsICJleHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkIHtcbiAgY29uc3RydWN0b3IocmVhc29uLCBleHBsYW5hdGlvbikge1xuICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICAgIHRoaXMuZXhwbGFuYXRpb24gPSBleHBsYW5hdGlvbjtcbiAgfVxuXG4gIHRvTWVzc2FnZSgpIHtcbiAgICBpZiAodGhpcy5leHBsYW5hdGlvbikge1xuICAgICAgcmV0dXJuIGAke3RoaXMucmVhc29ufTogJHt0aGlzLmV4cGxhbmF0aW9ufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYXNvbjtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBab25lSXNBYnN0cmFjdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQGludGVyZmFjZVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBab25lIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHpvbmVcbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgdHlwZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgem9uZS5cbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgZ2V0IGlhbmFOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBvZmZzZXQgaXMga25vd24gdG8gYmUgZml4ZWQgZm9yIHRoZSB3aG9sZSB5ZWFyLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLiBBY2NlcHRzICdsb25nJyBvciAnc2hvcnQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5sb2NhbGUgLSBXaGF0IGxvY2FsZSB0byByZXR1cm4gdGhlIG9mZnNldCBuYW1lIGluLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBvZmZzZXROYW1lKHRzLCBvcHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyB2YWx1ZSBhcyBhIHN0cmluZ1xuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBnZXQgdGhlIG9mZnNldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHlcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gY29tcHV0ZSB0aGUgb2Zmc2V0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIG9mZnNldCh0cykge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgdmFsaWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHBhcnNlWm9uZUluZm8gfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lXG4gICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBTeXN0ZW1ab25lKCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkge1xuICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgcmV0dXJuIC1uZXcgRGF0ZSh0cykuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwic3lzdGVtXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbywgaXNVbmRlZmluZWQsIG9ialRvTG9jYWxUUyB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBkdGZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gbWFrZURURih6b25lKSB7XG4gIGlmICghZHRmQ2FjaGVbem9uZV0pIHtcbiAgICBkdGZDYWNoZVt6b25lXSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiB6b25lLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgc2Vjb25kOiBcIjItZGlnaXRcIixcbiAgICAgIGVyYTogXCJzaG9ydFwiLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBkdGZDYWNoZVt6b25lXTtcbn1cblxuY29uc3QgdHlwZVRvUG9zID0ge1xuICB5ZWFyOiAwLFxuICBtb250aDogMSxcbiAgZGF5OiAyLFxuICBlcmE6IDMsXG4gIGhvdXI6IDQsXG4gIG1pbnV0ZTogNSxcbiAgc2Vjb25kOiA2LFxufTtcblxuZnVuY3Rpb24gaGFja3lPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXFx1MjAwRS9nLCBcIlwiKSxcbiAgICBwYXJzZWQgPSAvKFxcZCspXFwvKFxcZCspXFwvKFxcZCspIChBRHxCQyksPyAoXFxkKyk6KFxcZCspOihcXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLFxuICAgIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZhZE9yQmMsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZDtcbiAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmYWRPckJjLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICBjb25zdCBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcbiAgY29uc3QgZmlsbGVkID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gZm9ybWF0dGVkW2ldO1xuICAgIGNvbnN0IHBvcyA9IHR5cGVUb1Bvc1t0eXBlXTtcblxuICAgIGlmICh0eXBlID09PSBcImVyYVwiKSB7XG4gICAgICBmaWxsZWRbcG9zXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbGxlZDtcbn1cblxubGV0IGlhbmFab25lQ2FjaGUgPSB7fTtcbi8qKlxuICogQSB6b25lIGlkZW50aWZpZWQgYnkgYW4gSUFOQSBpZGVudGlmaWVyLCBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJQU5BWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWVcbiAgICogQHJldHVybiB7SUFOQVpvbmV9XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKG5hbWUpIHtcbiAgICBpZiAoIWlhbmFab25lQ2FjaGVbbmFtZV0pIHtcbiAgICAgIGlhbmFab25lQ2FjaGVbbmFtZV0gPSBuZXcgSUFOQVpvbmUobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgaWFuYVpvbmVDYWNoZSA9IHt9O1xuICAgIGR0ZkNhY2hlID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBzcGVjaWZpZXIuIFRoaXMgb25seSBjaGVja3MgdGhlIHN0cmluZydzIGZvcm1hdCwgbm90IHRoYXQgdGhlIHNwZWNpZmllciBpZGVudGlmaWVzIGEga25vd24gem9uZTsgc2VlIGlzVmFsaWRab25lIGZvciB0aGF0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBzdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIkFtZXJpY2EvTmV3X1lvcmtcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJTcG9ydH5+YmxvcnBcIikgLy89PiBmYWxzZVxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlIGZvciBzb21lIHZhbGlkIElBTkEgbmFtZXMuIFVzZSBpc1ZhbGlkWm9uZSBpbnN0ZWFkLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTcGVjaWZpZXIocykge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRab25lKHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlkZW50aWZpZXMgYSByZWFsIHpvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBUaGUgc3RyaW5nIHRvIGNoZWNrXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiBmYWxzZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFpvbmUoem9uZSkge1xuICAgIGlmICghem9uZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7IHRpbWVab25lOiB6b25lIH0pLmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnpvbmVOYW1lID0gbmFtZTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaWFuYVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlLCB0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCh0cykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZSkpIHJldHVybiBOYU47XG5cbiAgICBjb25zdCBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSk7XG4gICAgbGV0IFt5ZWFyLCBtb250aCwgZGF5LCBhZE9yQmMsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kXSA9IGR0Zi5mb3JtYXRUb1BhcnRzXG4gICAgICA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSlcbiAgICAgIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKTtcblxuICAgIGlmIChhZE9yQmMgPT09IFwiQkNcIikge1xuICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7XG4gICAgfVxuXG4gICAgLy8gYmVjYXVzZSB3ZSdyZSB1c2luZyBob3VyMTIgYW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEwMjU1NjQmY2FuPTImcT0lMjIyNCUzQTAwJTIyJTIwZGF0ZXRpbWVmb3JtYXRcbiAgICBjb25zdCBhZGp1c3RlZEhvdXIgPSBob3VyID09PSAyNCA/IDAgOiBob3VyO1xuXG4gICAgY29uc3QgYXNVVEMgPSBvYmpUb0xvY2FsVFMoe1xuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5LFxuICAgICAgaG91cjogYWRqdXN0ZWRIb3VyLFxuICAgICAgbWludXRlLFxuICAgICAgc2Vjb25kLFxuICAgICAgbWlsbGlzZWNvbmQ6IDAsXG4gICAgfSk7XG5cbiAgICBsZXQgYXNUUyA9ICtkYXRlO1xuICAgIGNvbnN0IG92ZXIgPSBhc1RTICUgMTAwMDtcbiAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjtcbiAgICByZXR1cm4gKGFzVVRDIC0gYXNUUykgLyAoNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiaWFuYVwiICYmIG90aGVyWm9uZS5uYW1lID09PSB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZDtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgc2lnbmVkT2Zmc2V0IH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxubGV0IHNpbmdsZXRvbiA9IG51bGw7XG5cbi8qKlxuICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKVxuICogQGltcGxlbWVudHMge1pvbmV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpeGVkT2Zmc2V0Wm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIFVUQ1xuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IHV0Y0luc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBGaXhlZE9mZnNldFpvbmUoMCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgLSBUaGUgb2Zmc2V0IGluIG1pbnV0ZXNcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIGluc3RhbmNlKG9mZnNldCkge1xuICAgIHJldHVybiBvZmZzZXQgPT09IDAgPyBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2UgOiBuZXcgRml4ZWRPZmZzZXRab25lKG9mZnNldCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIG9mIEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIGEgVVRDIG9mZnNldCBzdHJpbmcsIGxpa2UgXCJVVEMrNlwiXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIG9mZnNldCBzdHJpbmcgdG8gcGFyc2VcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzZcIilcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzA2XCIpXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQy02OjAwXCIpXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBwYXJzZVNwZWNpZmllcihzKSB7XG4gICAgaWYgKHMpIHtcbiAgICAgIGNvbnN0IHIgPSBzLm1hdGNoKC9edXRjKD86KFsrLV1cXGR7MSwyfSkoPzo6KFxcZHsyfSkpPyk/JC9pKTtcbiAgICAgIGlmIChyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRml4ZWRPZmZzZXRab25lKHNpZ25lZE9mZnNldChyWzFdLCByWzJdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3Iob2Zmc2V0KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy5maXhlZCA9IG9mZnNldDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImZpeGVkXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZCA9PT0gMCA/IFwiVVRDXCIgOiBgVVRDJHtmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgfVxuXG4gIGdldCBpYW5hTmFtZSgpIHtcbiAgICBpZiAodGhpcy5maXhlZCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiRXRjL1VUQ1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYEV0Yy9HTVQke2Zvcm1hdE9mZnNldCgtdGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgICB9XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiZml4ZWRcIiAmJiBvdGhlclpvbmUuZml4ZWQgPT09IHRoaXMuZml4ZWQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbi8qKlxuICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUge1xuICBjb25zdHJ1Y3Rvcih6b25lTmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqICBAcHJpdmF0ZSAqL1xuICAgIHRoaXMuem9uZU5hbWUgPSB6b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuLi96b25lcy9pbnZhbGlkWm9uZS5qc1wiO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNTdHJpbmcsIGlzTnVtYmVyIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHtcbiAgbGV0IG9mZnNldDtcbiAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIFpvbmUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoaW5wdXQpKSB7XG4gICAgY29uc3QgbG93ZXJlZCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyZWQgPT09IFwibG9jYWxcIiB8fCBsb3dlcmVkID09PSBcInN5c3RlbVwiKSByZXR1cm4gZGVmYXVsdFpvbmU7XG4gICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gXCJ1dGNcIiB8fCBsb3dlcmVkID09PSBcImdtdFwiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dC5vZmZzZXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIFRoaXMgaXMgZHVtYiwgYnV0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIGFib3ZlIGRvZXNuJ3Qgc2VlbSB0byByZWFsbHkgd29ya1xuICAgIC8vIHNvIHdlJ3JlIGR1Y2sgY2hlY2tpbmcgaXRcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBJbnZhbGlkWm9uZShpbnB1dCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxubGV0IG5vdyA9ICgpID0+IERhdGUubm93KCksXG4gIGRlZmF1bHRab25lID0gXCJzeXN0ZW1cIixcbiAgZGVmYXVsdExvY2FsZSA9IG51bGwsXG4gIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLFxuICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLFxuICB0aHJvd09uSW52YWxpZDtcblxuLyoqXG4gKiBTZXR0aW5ncyBjb250YWlucyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0IGNvbnRyb2wgTHV4b24ncyBvdmVyYWxsIGJlaGF2aW9yLiBMdXhvbiBpcyBhIHNpbXBsZSBsaWJyYXJ5IHdpdGggZmV3IG9wdGlvbnMsIGJ1dCB0aGUgb25lcyBpdCBkb2VzIGhhdmUgbGl2ZSBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLlxuICAgKiBAdHlwZSB7ZnVuY3Rpb259XG4gICAqL1xuICBzdGF0aWMgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50XG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICogQGV4YW1wbGUgU2V0dGluZ3Mubm93ID0gKCkgPT4gRGF0ZS5ub3coKSArIDMwMDAgLy8gcHJldGVuZCBpdCBpcyAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWVcbiAgICovXG4gIHN0YXRpYyBzZXQgbm93KG4pIHtcbiAgICBub3cgPSBuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgdG8gY3JlYXRlIERhdGVUaW1lcyBpbi4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogVXNlIHRoZSB2YWx1ZSBcInN5c3RlbVwiIHRvIHJlc2V0IHRoaXMgdmFsdWUgdG8gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdFpvbmUoem9uZSkge1xuICAgIGRlZmF1bHRab25lID0gem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgc3lzdGVtJ3MgdGltZSB6b25lICh0aGUgb25lIHNldCBvbiB0aGUgbWFjaGluZSB0aGF0IHJ1bnMgdGhpcyBjb2RlKS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRab25lKCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdExvY2FsZShsb2NhbGUpIHtcbiAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyaW5nIHN5c3RlbSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0obnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHRPdXRwdXRDYWxlbmRhcihvdXRwdXRDYWxlbmRhcikge1xuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgdGhyb3dPbkludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRocm93T25JbnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQodCkge1xuICAgIHRocm93T25JbnZhbGlkID0gdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBMdXhvbidzIGdsb2JhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyByZXNldENhY2hlcygpIHtcbiAgICBMb2NhbGUucmVzZXRDYWNoZSgpO1xuICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHBhZFN0YXJ0LCByb3VuZFRvLCBoYXNSZWxhdGl2ZSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vLyB0b2RvIC0gcmVtYXAgY2FjaGluZ1xuXG5sZXQgaW50bExGQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZExGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGR0ZiA9IGludGxMRkNhY2hlW2tleV07XG4gIGlmICghZHRmKSB7XG4gICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxMRkNhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxEVENhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bERUQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxOdW1DYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkSU5GKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxOdW1DYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxOdW1DYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBpbnRsUmVsQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZFJURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9uc1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxSZWxDYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxSZWxDYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBzeXNMb2NhbGVDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7XG4gIGlmIChzeXNMb2NhbGVDYWNoZSkge1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBzeXNMb2NhbGVDYWNoZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlO1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGVTdHIpIHtcbiAgLy8gSSByZWFsbHkgd2FudCB0byBhdm9pZCB3cml0aW5nIGEgQkNQIDQ3IHBhcnNlclxuICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDdcbiAgLy8gSW5zdGVhZCwgd2UnbGwgZG8gdGhpczpcblxuICAvLyBhKSBpZiB0aGUgc3RyaW5nIGhhcyBubyAtdSBleHRlbnNpb25zLCBqdXN0IGxlYXZlIGl0IGFsb25lXG4gIC8vIGIpIGlmIGl0IGRvZXMsIHVzZSBJbnRsIHRvIHJlc29sdmUgZXZlcnl0aGluZ1xuICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXVcblxuICBjb25zdCB1SW5kZXggPSBsb2NhbGVTdHIuaW5kZXhPZihcIi11LVwiKTtcbiAgaWYgKHVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gW2xvY2FsZVN0cl07XG4gIH0gZWxzZSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTtcbiAgICB0cnkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG9wdGlvbnMgPSBnZXRDYWNoZWREVEYoc21hbGxlcikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zO1xuICAgIC8vIHJldHVybiB0aGUgc21hbGxlciBvbmUgc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHRoZSBjYWxlbmRhciBhbmQgbnVtYmVyaW5nIG92ZXJyaWRlcyB0byBpdFxuICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07XG4gIH1cbn1cblxuZnVuY3Rpb24gaW50bENvbmZpZ1N0cmluZyhsb2NhbGVTdHIsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpIHtcbiAgaWYgKG91dHB1dENhbGVuZGFyIHx8IG51bWJlcmluZ1N5c3RlbSkge1xuICAgIGxvY2FsZVN0ciArPSBcIi11XCI7XG5cbiAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLWNhLSR7b3V0cHV0Q2FsZW5kYXJ9YDtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlU3RyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwTW9udGhzKGYpIHtcbiAgY29uc3QgbXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTI7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIGksIDEpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbWFwV2Vla2RheXMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMgKyBpKTtcbiAgICBtcy5wdXNoKGYoZHQpKTtcbiAgfVxuICByZXR1cm4gbXM7XG59XG5cbmZ1bmN0aW9uIGxpc3RTdHVmZihsb2MsIGxlbmd0aCwgZGVmYXVsdE9LLCBlbmdsaXNoRm4sIGludGxGbikge1xuICBjb25zdCBtb2RlID0gbG9jLmxpc3RpbmdNb2RlKGRlZmF1bHRPSyk7XG5cbiAgaWYgKG1vZGUgPT09IFwiZXJyb3JcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZW5cIikge1xuICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydHNGYXN0TnVtYmVycyhsb2MpIHtcbiAgaWYgKGxvYy5udW1iZXJpbmdTeXN0ZW0gJiYgbG9jLm51bWJlcmluZ1N5c3RlbSAhPT0gXCJsYXRuXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiIHx8XG4gICAgICAhbG9jLmxvY2FsZSB8fFxuICAgICAgbG9jLmxvY2FsZS5zdGFydHNXaXRoKFwiZW5cIikgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7XG4gICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDtcbiAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTtcblxuICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW50bE9wdHMgPSB7IHVzZUdyb3VwaW5nOiBmYWxzZSwgLi4ub3B0cyB9O1xuICAgICAgaWYgKG9wdHMucGFkVG8gPiAwKSBpbnRsT3B0cy5taW5pbXVtSW50ZWdlckRpZ2l0cyA9IG9wdHMucGFkVG87XG4gICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0KGkpIHtcbiAgICBpZiAodGhpcy5pbmYpIHtcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiBpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5mLmZvcm1hdChmaXhlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRvIG1hdGNoIHRoZSBicm93c2VyJ3MgbnVtYmVyZm9ybWF0dGVyIGRlZmF1bHRzXG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogcm91bmRUbyhpLCAzKTtcbiAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5RGF0ZUZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIGxldCB6O1xuICAgIGlmIChkdC56b25lLmlzVW5pdmVyc2FsKSB7XG4gICAgICAvLyBVVEMtOCBvciBFdGMvVVRDLTggYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YSwgb25seSBFdGMvR01UKzggYW5kIHRoZSBsaWtlLlxuICAgICAgLy8gVGhhdCBpcyB3aHkgZml4ZWQtb2Zmc2V0IFRaIGlzIHNldCB0byB0aGF0IHVubGVzcyBpdCBpczpcbiAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULlxuICAgICAgLy8gMi4gVW5zdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXI6XG4gICAgICAvLyAgICAtIHNvbWUgZG8gbm90IHN1cHBvcnQgRXRjL1xuICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhXG4gICAgICBjb25zdCBnbXRPZmZzZXQgPSAtMSAqIChkdC5vZmZzZXQgLyA2MCk7XG4gICAgICBjb25zdCBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyBgRXRjL0dNVCske2dtdE9mZnNldH1gIDogYEV0Yy9HTVQke2dtdE9mZnNldH1gO1xuICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHtcbiAgICAgICAgeiA9IG9mZnNldFo7XG4gICAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBhbGwgZml4ZWQtb2Zmc2V0IHpvbmVzIGxpa2UgRXRjLys0OjMwIGFyZSBwcmVzZW50IGluIHR6ZGF0YS5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBtYWtlIGRvLiBUd28gY2FzZXM6XG4gICAgICAgIC8vIDEuIFRoZSBmb3JtYXQgb3B0aW9ucyB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFdlIGNhbid0IGRvIHRoYXQsIHNvIHRoZSBiZXN0XG4gICAgICAgIC8vIHdlIGNhbiBkbyBpcyBmb3JtYXQgdGhlIGRhdGUgaW4gVVRDLlxuICAgICAgICAvLyAyLiBUaGUgZm9ybWF0IG9wdGlvbnMgZG9uJ3QgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBUaGVuIHdlIGNhbiBhZGp1c3QgdGhlbVxuICAgICAgICAvLyB0aGUgdGltZSBhbmQgdGVsbCB0aGUgZm9ybWF0dGVyIHRvIHNob3cgaXQgdG8gdXMgaW4gVVRDLCBzbyB0aGF0IHRoZSB0aW1lIGlzIHJpZ2h0XG4gICAgICAgIC8vIGFuZCB0aGUgYmFkIHpvbmUgZG9lc24ndCBzaG93IHVwLlxuICAgICAgICB6ID0gXCJVVENcIjtcbiAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09IFwic3lzdGVtXCIpIHtcbiAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgeiA9IGR0LnpvbmUubmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRsT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG4gICAgaWYgKHopIHtcbiAgICAgIGludGxPcHRzLnRpbWVab25lID0gejtcbiAgICB9XG4gICAgdGhpcy5kdGYgPSBnZXRDYWNoZWREVEYoaW50bCwgaW50bE9wdHMpO1xuICB9XG5cbiAgZm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXQodGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdFRvUGFydHModGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBQb2x5UmVsRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0geyBzdHlsZTogXCJsb25nXCIsIC4uLm9wdHMgfTtcbiAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7XG4gICAgICB0aGlzLnJ0ZiA9IGdldENhY2hlZFJURihpbnRsLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW5nbGlzaC5mb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIHRoaXMub3B0cy5udW1lcmljLCB0aGlzLm9wdHMuc3R5bGUgIT09IFwibG9uZ1wiKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KSB7XG4gICAgaWYgKHRoaXMucnRmKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsZSB7XG4gIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7XG4gICAgLy8gdGhlIHN5c3RlbSBsb2NhbGUgaXMgdXNlZnVsIGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzIGJ1dCBhbm5veWluZyBmb3IgcGFyc2luZy9mb3JtYXR0aW5nIGtub3duIGZvcm1hdHNcbiAgICBjb25zdCBsb2NhbGVSID0gc3BlY2lmaWVkTG9jYWxlIHx8IChkZWZhdWx0VG9FTiA/IFwiZW4tVVNcIiA6IHN5c3RlbUxvY2FsZSgpKTtcbiAgICBjb25zdCBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07XG4gICAgY29uc3Qgb3V0cHV0Q2FsZW5kYXJSID0gb3V0cHV0Q2FsZW5kYXIgfHwgU2V0dGluZ3MuZGVmYXVsdE91dHB1dENhbGVuZGFyO1xuICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldENhY2hlKCkge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbiAgICBpbnRsRFRDYWNoZSA9IHt9O1xuICAgIGludGxOdW1DYWNoZSA9IHt9O1xuICAgIGludGxSZWxDYWNoZSA9IHt9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgbnVtYmVyaW5nLCBvdXRwdXRDYWxlbmRhciwgc3BlY2lmaWVkTG9jYWxlKSB7XG4gICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpO1xuXG4gICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7XG4gICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPSBudW1iZXJpbmcgfHwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtIHx8IG51bGw7XG4gICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyIHx8IHBhcnNlZE91dHB1dENhbGVuZGFyIHx8IG51bGw7XG4gICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpO1xuXG4gICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9O1xuICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tZXJpZGllbUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLmVyYUNhY2hlID0ge307XG5cbiAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTtcbiAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gbnVsbDtcbiAgfVxuXG4gIGdldCBmYXN0TnVtYmVycygpIHtcbiAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gc3VwcG9ydHNGYXN0TnVtYmVycyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZDtcbiAgfVxuXG4gIGxpc3RpbmdNb2RlKCkge1xuICAgIGNvbnN0IGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7XG4gICAgY29uc3QgaGFzTm9XZWlyZG5lc3MgPVxuICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBcImxhdG5cIikgJiZcbiAgICAgICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IFwiZ3JlZ29yeVwiKTtcbiAgICByZXR1cm4gaXNBY3R1YWxseUVuICYmIGhhc05vV2VpcmRuZXNzID8gXCJlblwiIDogXCJpbnRsXCI7XG4gIH1cblxuICBjbG9uZShhbHRzKSB7XG4gICAgaWYgKCFhbHRzIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFsdHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKFxuICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSxcbiAgICAgICAgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhcixcbiAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IHRydWUgfSk7XG4gIH1cblxuICByZWRlZmF1bHRUb1N5c3RlbShhbHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTtcbiAgfVxuXG4gIG1vbnRocyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5tb250aHMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQgPyB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7XG4gICAgICAgIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwTW9udGhzKChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcIm1vbnRoXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIHdlZWtkYXlzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLndlZWtkYXlzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0gZm9ybWF0XG4gICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9XG4gICAgICAgICAgOiB7IHdlZWtkYXk6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwid2Vla2RheVwiKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBtZXJpZGllbXMoZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYoXG4gICAgICB0aGlzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9LLFxuICAgICAgKCkgPT4gRW5nbGlzaC5tZXJpZGllbXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIEluIHRoZW9yeSB0aGVyZSBjb3VsZCBiZSBhcmliaXRyYXJ5IGRheSBwZXJpb2RzLiBXZSdyZSBnb25uYSBhc3N1bWUgdGhlcmUgYXJlIGV4YWN0bHkgdHdvXG4gICAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci5cbiAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBpbnRsID0geyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH07XG4gICAgICAgICAgdGhpcy5tZXJpZGllbUNhY2hlID0gW0RhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDkpLCBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCAxOSldLm1hcChcbiAgICAgICAgICAgIChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImRheXBlcmlvZFwiKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlcmFzKGxlbmd0aCwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2guZXJhcywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTtcblxuICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzXG4gICAgICAvLyB0byBkZWZpbml0ZWx5IGVudW1lcmF0ZSB0aGVtLlxuICAgICAgaWYgKCF0aGlzLmVyYUNhY2hlW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+XG4gICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImVyYVwiKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lcmFDYWNoZVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyksXG4gICAgICByZXN1bHRzID0gZGYuZm9ybWF0VG9QYXJ0cygpLFxuICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7XG4gICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgbnVtYmVyRm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKVxuICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpXG4gICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTtcbiAgfVxuXG4gIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5RGF0ZUZvcm1hdHRlcihkdCwgdGhpcy5pbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICByZWxGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7XG4gIH1cblxuICBsaXN0Rm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBnZXRDYWNoZWRMRih0aGlzLmludGwsIG9wdHMpO1xuICB9XG5cbiAgaXNFbmdsaXNoKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gXCJlblwiIHx8XG4gICAgICB0aGlzLmxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBcImVuLXVzXCIgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoXCJlbi11c1wiKVxuICAgICk7XG4gIH1cblxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJlxuICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJlxuICAgICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gb3RoZXIub3V0cHV0Q2FsZW5kYXJcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgdW50cnVuY2F0ZVllYXIsXG4gIHNpZ25lZE9mZnNldCxcbiAgcGFyc2VJbnRlZ2VyLFxuICBwYXJzZU1pbGxpcyxcbiAgaWFuYVJlZ2V4LFxuICBpc1VuZGVmaW5lZCxcbiAgcGFyc2VGbG9hdGluZ1xufSBmcm9tIFwiLi91dGlsLmpzXCI7XG5pbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vKlxuICogVGhpcyBmaWxlIGhhbmRsZXMgcGFyc2luZyBmb3Igd2VsbC1zcGVjaWZpZWQgZm9ybWF0cy4gSGVyZSdzIGhvdyBpdCB3b3JrczpcbiAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLlxuICogQW4gZXh0cmFjdG9yIGlzIGp1c3QgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVnZXggbWF0Y2ggYXJyYXkgYW5kIHJldHVybnMgYSB7IHllYXI6IC4uLiwgbW9udGg6IC4uLiB9IG9iamVjdFxuICogcGFyc2UoKSBkb2VzIHRoZSB3b3JrIG9mIGV4ZWN1dGluZyB0aGUgcmVnZXggYW5kIGFwcGx5aW5nIHRoZSBleHRyYWN0b3IuIEl0IHRha2VzIG11bHRpcGxlIHJlZ2V4L2V4dHJhY3RvciBwYWlycyB0byB0cnkgaW4gc2VxdWVuY2UuXG4gKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgXCJjdXJzb3JcIiByZXByZXNlbnRpbmcgdGhlIG9mZnNldCBpbiB0aGUgbWF0Y2ggdG8gbG9vayBhdC4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGNvbWJpbmUgZXh0cmFjdG9ycy5cbiAqIGNvbWJpbmVFeHRyYWN0b3JzKCkgZG9lcyB0aGUgd29yayBvZiBjb21iaW5pbmcgdGhlbSwga2VlcGluZyB0cmFjayBvZiB0aGUgY3Vyc29yIHRocm91Z2ggbXVsdGlwbGUgZXh0cmFjdGlvbnMuXG4gKiBTb21lIGV4dHJhY3Rpb25zIGFyZSBzdXBlciBkdW1iIGFuZCBzaW1wbGVQYXJzZSBhbmQgZnJvbVN0cmluZ3MgaGVscCBEUlkgdGhlbS5cbiAqL1xuXG5mdW5jdGlvbiBjb21iaW5lUmVnZXhlcyguLi5yZWdleGVzKSB7XG4gIGNvbnN0IGZ1bGwgPSByZWdleGVzLnJlZHVjZSgoZiwgcikgPT4gZiArIHIuc291cmNlLCBcIlwiKTtcbiAgcmV0dXJuIFJlZ0V4cChgXiR7ZnVsbH0kYCk7XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVFeHRyYWN0b3JzKC4uLmV4dHJhY3RvcnMpIHtcbiAgcmV0dXJuIG0gPT5cbiAgICBleHRyYWN0b3JzXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoW21lcmdlZFZhbHMsIG1lcmdlZFpvbmUsIGN1cnNvcl0sIGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgW3ZhbCwgem9uZSwgbmV4dF0gPSBleChtLCBjdXJzb3IpO1xuICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgem9uZSB8fCBtZXJnZWRab25lLCBuZXh0XTtcbiAgICAgICAgfSxcbiAgICAgICAgW3t9LCBudWxsLCAxXVxuICAgICAgKVxuICAgICAgLnNsaWNlKDAsIDIpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzLCAuLi5wYXR0ZXJucykge1xuICBpZiAocyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW3JlZ2V4LCBleHRyYWN0b3JdIG9mIHBhdHRlcm5zKSB7XG4gICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIHJldHVybiBleHRyYWN0b3IobSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbbnVsbCwgbnVsbF07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHtcbiAgcmV0dXJuIChtYXRjaCwgY3Vyc29yKSA9PiB7XG4gICAgY29uc3QgcmV0ID0ge307XG4gICAgbGV0IGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmV0W2tleXNbaV1dID0gcGFyc2VJbnRlZ2VyKG1hdGNoW2N1cnNvciArIGldKTtcbiAgICB9XG4gICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldO1xuICB9O1xufVxuXG4vLyBJU08gYW5kIFNRTCBwYXJzaW5nXG5jb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/KS87XG5jb25zdCBpc29FeHRlbmRlZFpvbmUgPSBgKD86JHtvZmZzZXRSZWdleC5zb3VyY2V9Pyg/OlxcXFxbKCR7aWFuYVJlZ2V4LnNvdXJjZX0pXFxcXF0pPyk/YDtcbmNvbnN0IGlzb1RpbWVCYXNlUmVnZXggPSAvKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlsuLF0oXFxkezEsMzB9KSk/KT8pPy87XG5jb25zdCBpc29UaW1lUmVnZXggPSBSZWdFeHAoYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JHtpc29FeHRlbmRlZFpvbmV9YCk7XG5jb25zdCBpc29UaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoYCg/OlQke2lzb1RpbWVSZWdleC5zb3VyY2V9KT9gKTtcbmNvbnN0IGlzb1ltZFJlZ2V4ID0gLyhbKy1dXFxkezZ9fFxcZHs0fSkoPzotPyhcXGRcXGQpKD86LT8oXFxkXFxkKSk/KT8vO1xuY29uc3QgaXNvV2Vla1JlZ2V4ID0gLyhcXGR7NH0pLT9XKFxcZFxcZCkoPzotPyhcXGQpKT8vO1xuY29uc3QgaXNvT3JkaW5hbFJlZ2V4ID0gLyhcXGR7NH0pLT8oXFxkezN9KS87XG5jb25zdCBleHRyYWN0SVNPV2Vla0RhdGEgPSBzaW1wbGVQYXJzZShcIndlZWtZZWFyXCIsIFwid2Vla051bWJlclwiLCBcIndlZWtEYXlcIik7XG5jb25zdCBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZShcInllYXJcIiwgXCJvcmRpbmFsXCIpO1xuY29uc3Qgc3FsWW1kUmVnZXggPSAvKFxcZHs0fSktKFxcZFxcZCktKFxcZFxcZCkvOyAvLyBkdW1iZWQtZG93biB2ZXJzaW9uIG9mIHRoZSBJU08gb25lXG5jb25zdCBzcWxUaW1lUmVnZXggPSBSZWdFeHAoXG4gIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YFxuKTtcbmNvbnN0IHNxbFRpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86ICR7c3FsVGltZVJlZ2V4LnNvdXJjZX0pP2ApO1xuXG5mdW5jdGlvbiBpbnQobWF0Y2gsIHBvcywgZmFsbGJhY2spIHtcbiAgY29uc3QgbSA9IG1hdGNoW3Bvc107XG4gIHJldHVybiBpc1VuZGVmaW5lZChtKSA/IGZhbGxiYWNrIDogcGFyc2VJbnRlZ2VyKG0pO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPWW1kKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3QgaXRlbSA9IHtcbiAgICB5ZWFyOiBpbnQobWF0Y2gsIGN1cnNvciksXG4gICAgbW9udGg6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMSksXG4gICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikge1xuICBjb25zdCBpdGVtID0ge1xuICAgIGhvdXJzOiBpbnQobWF0Y2gsIGN1cnNvciwgMCksXG4gICAgbWludXRlczogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAwKSxcbiAgICBzZWNvbmRzOiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDApLFxuICAgIG1pbGxpc2Vjb25kczogcGFyc2VNaWxsaXMobWF0Y2hbY3Vyc29yICsgM10pXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyA0XTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT09mZnNldChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLFxuICAgIGZ1bGxPZmZzZXQgPSBzaWduZWRPZmZzZXQobWF0Y2hbY3Vyc29yICsgMV0sIG1hdGNoW2N1cnNvciArIDJdKSxcbiAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElBTkFab25lKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3Qgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTtcbn1cblxuLy8gSVNPIHRpbWUgcGFyc2luZ1xuXG5jb25zdCBpc29UaW1lT25seSA9IFJlZ0V4cChgXlQ/JHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0kYCk7XG5cbi8vIElTTyBkdXJhdGlvbiBwYXJzaW5nXG5cbmNvbnN0IGlzb0R1cmF0aW9uID0gL14tP1AoPzooPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylZKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylNKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylXKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylEKT8oPzpUKD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pSCk/KD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pTSk/KD86KC0/XFxkezEsMjB9KSg/OlsuLF0oLT9cXGR7MSwyMH0pKT9TKT8pPykkLztcblxuZnVuY3Rpb24gZXh0cmFjdElTT0R1cmF0aW9uKG1hdGNoKSB7XG4gIGNvbnN0IFtcbiAgICBzLFxuICAgIHllYXJTdHIsXG4gICAgbW9udGhTdHIsXG4gICAgd2Vla1N0cixcbiAgICBkYXlTdHIsXG4gICAgaG91clN0cixcbiAgICBtaW51dGVTdHIsXG4gICAgc2Vjb25kU3RyLFxuICAgIG1pbGxpc2Vjb25kc1N0clxuICBdID0gbWF0Y2g7XG5cbiAgY29uc3QgaGFzTmVnYXRpdmVQcmVmaXggPSBzWzBdID09PSBcIi1cIjtcbiAgY29uc3QgbmVnYXRpdmVTZWNvbmRzID0gc2Vjb25kU3RyICYmIHNlY29uZFN0clswXSA9PT0gXCItXCI7XG5cbiAgY29uc3QgbWF5YmVOZWdhdGUgPSAobnVtLCBmb3JjZSA9IGZhbHNlKSA9PlxuICAgIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCAobnVtICYmIGhhc05lZ2F0aXZlUHJlZml4KSkgPyAtbnVtIDogbnVtO1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgeWVhcnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoeWVhclN0cikpLFxuICAgICAgbW9udGhzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1vbnRoU3RyKSksXG4gICAgICB3ZWVrczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh3ZWVrU3RyKSksXG4gICAgICBkYXlzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKGRheVN0cikpLFxuICAgICAgaG91cnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoaG91clN0cikpLFxuICAgICAgbWludXRlczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhtaW51dGVTdHIpKSxcbiAgICAgIHNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoc2Vjb25kU3RyKSwgc2Vjb25kU3RyID09PSBcIi0wXCIpLFxuICAgICAgbWlsbGlzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZU1pbGxpcyhtaWxsaXNlY29uZHNTdHIpLCBuZWdhdGl2ZVNlY29uZHMpXG4gICAgfVxuICBdO1xufVxuXG4vLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmtcbi8vIGFuZCBub3QganVzdCB0aGF0IHdlJ3JlIGluIC0yNDAgKnJpZ2h0IG5vdyouIEJ1dCBzaW5jZSBJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSB1c2VkIHRoYXQgb2Z0ZW5cbi8vIEknbSBqdXN0IGdvaW5nIHRvIGlnbm9yZSB0aGF0XG5jb25zdCBvYnNPZmZzZXRzID0ge1xuICBHTVQ6IDAsXG4gIEVEVDogLTQgKiA2MCxcbiAgRVNUOiAtNSAqIDYwLFxuICBDRFQ6IC01ICogNjAsXG4gIENTVDogLTYgKiA2MCxcbiAgTURUOiAtNiAqIDYwLFxuICBNU1Q6IC03ICogNjAsXG4gIFBEVDogLTcgKiA2MCxcbiAgUFNUOiAtOCAqIDYwXG59O1xuXG5mdW5jdGlvbiBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgeWVhcjogeWVhclN0ci5sZW5ndGggPT09IDIgPyB1bnRydW5jYXRlWWVhcihwYXJzZUludGVnZXIoeWVhclN0cikpIDogcGFyc2VJbnRlZ2VyKHllYXJTdHIpLFxuICAgIG1vbnRoOiBFbmdsaXNoLm1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpICsgMSxcbiAgICBkYXk6IHBhcnNlSW50ZWdlcihkYXlTdHIpLFxuICAgIGhvdXI6IHBhcnNlSW50ZWdlcihob3VyU3RyKSxcbiAgICBtaW51dGU6IHBhcnNlSW50ZWdlcihtaW51dGVTdHIpXG4gIH07XG5cbiAgaWYgKHNlY29uZFN0cikgcmVzdWx0LnNlY29uZCA9IHBhcnNlSW50ZWdlcihzZWNvbmRTdHIpO1xuICBpZiAod2Vla2RheVN0cikge1xuICAgIHJlc3VsdC53ZWVrZGF5ID1cbiAgICAgIHdlZWtkYXlTdHIubGVuZ3RoID4gM1xuICAgICAgICA/IEVuZ2xpc2gud2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxXG4gICAgICAgIDogRW5nbGlzaC53ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUkZDIDI4MjIvNTMyMlxuY29uc3QgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxkXFxkKShcXGRcXGQpKSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgICAgLFxuICAgICAgd2Vla2RheVN0cixcbiAgICAgIGRheVN0cixcbiAgICAgIG1vbnRoU3RyLFxuICAgICAgeWVhclN0cixcbiAgICAgIGhvdXJTdHIsXG4gICAgICBtaW51dGVTdHIsXG4gICAgICBzZWNvbmRTdHIsXG4gICAgICBvYnNPZmZzZXQsXG4gICAgICBtaWxPZmZzZXQsXG4gICAgICBvZmZIb3VyU3RyLFxuICAgICAgb2ZmTWludXRlU3RyXG4gICAgXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcblxuICBsZXQgb2Zmc2V0O1xuICBpZiAob2JzT2Zmc2V0KSB7XG4gICAgb2Zmc2V0ID0gb2JzT2Zmc2V0c1tvYnNPZmZzZXRdO1xuICB9IGVsc2UgaWYgKG1pbE9mZnNldCkge1xuICAgIG9mZnNldCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgb2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cik7XG4gIH1cblxuICByZXR1cm4gW3Jlc3VsdCwgbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpXTtcbn1cblxuZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXChbXigpXSpcXCl8W1xcblxcdF0vZywgXCIgXCIpXG4gICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG4vLyBodHRwIGRhdGVcblxuY29uc3QgcmZjMTEyMyA9IC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksIChcXGRcXGQpIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKFxcZHs0fSkgKFxcZFxcZCk6KFxcZFxcZCk6KFxcZFxcZCkgR01UJC8sXG4gIHJmYzg1MCA9IC9eKE1vbmRheXxUdWVzZGF5fFdlZG5lc2RheXxUaHVyc2RheXxGcmlkYXl8U2F0dXJkYXl8U3VuZGF5KSwgKFxcZFxcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgYXNjaWkgPSAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKCBcXGR8XFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSAoXFxkezR9KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0UkZDMTEyM09yODUwKG1hdGNoKSB7XG4gIGNvbnN0IFssIHdlZWtkYXlTdHIsIGRheVN0ciwgbW9udGhTdHIsIHllYXJTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcbiAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBU0NJSShtYXRjaCkge1xuICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0ciwgeWVhclN0cl0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG4gIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdO1xufVxuXG5jb25zdCBpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvWW1kUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1dlZWtSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvT3JkaW5hbFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvVGltZUNvbWJpbmVkUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29UaW1lUmVnZXgpO1xuXG5jb25zdCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPWW1kLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoXG4gIGV4dHJhY3RJU09XZWVrRGF0YSxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT09yZGluYWxEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuLypcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLFxuICAgIFtpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZV0sXG4gICAgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykge1xuICByZXR1cm4gcGFyc2UocHJlcHJvY2Vzc1JGQzI4MjIocyksIFtyZmMyODIyLCBleHRyYWN0UkZDMjgyMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVFRQRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbcmZjODUwLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRHVyYXRpb24ocykge1xuICByZXR1cm4gcGFyc2UocywgW2lzb0R1cmF0aW9uLCBleHRyYWN0SVNPRHVyYXRpb25dKTtcbn1cblxuY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pO1xufVxuXG5jb25zdCBzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsWW1kUmVnZXgsIHNxbFRpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU1FMKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSxcbiAgICBbc3FsVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmVdXG4gICk7XG59XG4iLCAiaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWREdXJhdGlvbkVycm9yLCBJbnZhbGlkVW5pdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCB7IHBhcnNlSVNPRHVyYXRpb24sIHBhcnNlSVNPVGltZU9ubHkgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBhc051bWJlcixcbiAgaGFzT3duUHJvcGVydHksXG4gIGlzTnVtYmVyLFxuICBpc1VuZGVmaW5lZCxcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuXG5jb25zdCBJTlZBTElEID0gXCJJbnZhbGlkIER1cmF0aW9uXCI7XG5cbi8vIHVuaXQgY29udmVyc2lvbiBjb25zdGFudHNcbmV4cG9ydCBjb25zdCBsb3dPcmRlck1hdHJpeCA9IHtcbiAgICB3ZWVrczoge1xuICAgICAgZGF5czogNyxcbiAgICAgIGhvdXJzOiA3ICogMjQsXG4gICAgICBtaW51dGVzOiA3ICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgZGF5czoge1xuICAgICAgaG91cnM6IDI0LFxuICAgICAgbWludXRlczogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIGhvdXJzOiB7IG1pbnV0ZXM6IDYwLCBzZWNvbmRzOiA2MCAqIDYwLCBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwIH0sXG4gICAgbWludXRlczogeyBzZWNvbmRzOiA2MCwgbWlsbGlzZWNvbmRzOiA2MCAqIDEwMDAgfSxcbiAgICBzZWNvbmRzOiB7IG1pbGxpc2Vjb25kczogMTAwMCB9LFxuICB9LFxuICBjYXN1YWxNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiA1MixcbiAgICAgIGRheXM6IDM2NSxcbiAgICAgIGhvdXJzOiAzNjUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDM2NSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDM2NSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBxdWFydGVyczoge1xuICAgICAgbW9udGhzOiAzLFxuICAgICAgd2Vla3M6IDEzLFxuICAgICAgZGF5czogOTEsXG4gICAgICBob3VyczogOTEgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDkxICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBtb250aHM6IHtcbiAgICAgIHdlZWtzOiA0LFxuICAgICAgZGF5czogMzAsXG4gICAgICBob3VyczogMzAgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDMwICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcblxuICAgIC4uLmxvd09yZGVyTWF0cml4LFxuICB9LFxuICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCxcbiAgZGF5c0luTW9udGhBY2N1cmF0ZSA9IDE0NjA5Ny4wIC8gNDgwMCxcbiAgYWNjdXJhdGVNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlLFxuICAgICAgaG91cnM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0LFxuICAgICAgbWludXRlczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIHF1YXJ0ZXJzOiB7XG4gICAgICBtb250aHM6IDMsXG4gICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gMjgsXG4gICAgICBkYXlzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA0LFxuICAgICAgaG91cnM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCkgLyA0LFxuICAgICAgbWludXRlczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjApIC8gNCxcbiAgICAgIHNlY29uZHM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjApIC8gNCxcbiAgICAgIG1pbGxpc2Vjb25kczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDApIC8gNCxcbiAgICB9LFxuICAgIG1vbnRoczoge1xuICAgICAgd2Vla3M6IGRheXNJbk1vbnRoQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luTW9udGhBY2N1cmF0ZSxcbiAgICAgIGhvdXJzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQsXG4gICAgICBtaW51dGVzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgLi4ubG93T3JkZXJNYXRyaXgsXG4gIH07XG5cbi8vIHVuaXRzIG9yZGVyZWQgYnkgc2l6ZVxuY29uc3Qgb3JkZXJlZFVuaXRzID0gW1xuICBcInllYXJzXCIsXG4gIFwicXVhcnRlcnNcIixcbiAgXCJtb250aHNcIixcbiAgXCJ3ZWVrc1wiLFxuICBcImRheXNcIixcbiAgXCJob3Vyc1wiLFxuICBcIm1pbnV0ZXNcIixcbiAgXCJzZWNvbmRzXCIsXG4gIFwibWlsbGlzZWNvbmRzXCIsXG5dO1xuXG5jb25zdCByZXZlcnNlVW5pdHMgPSBvcmRlcmVkVW5pdHMuc2xpY2UoMCkucmV2ZXJzZSgpO1xuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMgXCJjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBqdXN0IGxpa2UgdGhpcyBvbmUsIGJ1dCB3aXRoIHRoZXNlIGNoYW5nZXNcIlxuZnVuY3Rpb24gY2xvbmUoZHVyLCBhbHRzLCBjbGVhciA9IGZhbHNlKSB7XG4gIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHNcbiAgY29uc3QgY29uZiA9IHtcbiAgICB2YWx1ZXM6IGNsZWFyID8gYWx0cy52YWx1ZXMgOiB7IC4uLmR1ci52YWx1ZXMsIC4uLihhbHRzLnZhbHVlcyB8fCB7fSkgfSxcbiAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLFxuICAgIGNvbnZlcnNpb25BY2N1cmFjeTogYWx0cy5jb252ZXJzaW9uQWNjdXJhY3kgfHwgZHVyLmNvbnZlcnNpb25BY2N1cmFjeSxcbiAgfTtcbiAgcmV0dXJuIG5ldyBEdXJhdGlvbihjb25mKTtcbn1cblxuZnVuY3Rpb24gYW50aVRydW5jKG4pIHtcbiAgcmV0dXJuIG4gPCAwID8gTWF0aC5mbG9vcihuKSA6IE1hdGguY2VpbChuKTtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gY29udmVydChtYXRyaXgsIGZyb21NYXAsIGZyb21Vbml0LCB0b01hcCwgdG9Vbml0KSB7XG4gIGNvbnN0IGNvbnYgPSBtYXRyaXhbdG9Vbml0XVtmcm9tVW5pdF0sXG4gICAgcmF3ID0gZnJvbU1hcFtmcm9tVW5pdF0gLyBjb252LFxuICAgIHNhbWVTaWduID0gTWF0aC5zaWduKHJhdykgPT09IE1hdGguc2lnbih0b01hcFt0b1VuaXRdKSxcbiAgICAvLyBvaywgc28gdGhpcyBpcyB3aWxkLCBidXQgc2VlIHRoZSBtYXRyaXggaW4gdGhlIHRlc3RzXG4gICAgYWRkZWQgPVxuICAgICAgIXNhbWVTaWduICYmIHRvTWFwW3RvVW5pdF0gIT09IDAgJiYgTWF0aC5hYnMocmF3KSA8PSAxID8gYW50aVRydW5jKHJhdykgOiBNYXRoLnRydW5jKHJhdyk7XG4gIHRvTWFwW3RvVW5pdF0gKz0gYWRkZWQ7XG4gIGZyb21NYXBbZnJvbVVuaXRdIC09IGFkZGVkICogY29udjtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVzKG1hdHJpeCwgdmFscykge1xuICByZXZlcnNlVW5pdHMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgIGlmICghaXNVbmRlZmluZWQodmFsc1tjdXJyZW50XSkpIHtcbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICBjb252ZXJ0KG1hdHJpeCwgdmFscywgcHJldmlvdXMsIHZhbHMsIGN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICB9XG4gIH0sIG51bGwpO1xufVxuXG4vKipcbiAqIEEgRHVyYXRpb24gb2JqZWN0IHJlcHJlc2VudHMgYSBwZXJpb2Qgb2YgdGltZSwgbGlrZSBcIjIgbW9udGhzXCIgb3IgXCIxIGRheSwgMSBob3VyXCIuIENvbmNlcHR1YWxseSwgaXQncyBqdXN0IGEgbWFwIG9mIHVuaXRzIHRvIHRoZWlyIHF1YW50aXRpZXMsIGFjY29tcGFuaWVkIGJ5IHNvbWUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGFuZCBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLiBUaGV5IGNhbiBiZSB1c2VkIG9uIHRoZWlyIG93biBvciBpbiBjb25qdW5jdGlvbiB3aXRoIG90aGVyIEx1eG9uIHR5cGVzOyBmb3IgZXhhbXBsZSwgeW91IGNhbiB1c2Uge0BsaW5rIERhdGVUaW1lI3BsdXN9IHRvIGFkZCBhIER1cmF0aW9uIG9iamVjdCB0byBhIERhdGVUaW1lLCBwcm9kdWNpbmcgYW5vdGhlciBEYXRlVGltZS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIER1cmF0aW9uOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhIER1cmF0aW9uLCB1c2Uge0BsaW5rIER1cmF0aW9uI2Zyb21NaWxsaXN9LCB7QGxpbmsgRHVyYXRpb24jZnJvbU9iamVjdH0sIG9yIHtAbGluayBEdXJhdGlvbiNmcm9tSVNPfS5cbiAqICogKipVbml0IHZhbHVlcyoqIFNlZSB0aGUge0BsaW5rIER1cmF0aW9uI3llYXJzfSwge0BsaW5rIER1cmF0aW9uI21vbnRoc30sIHtAbGluayBEdXJhdGlvbiN3ZWVrc30sIHtAbGluayBEdXJhdGlvbiNkYXlzfSwge0BsaW5rIER1cmF0aW9uI2hvdXJzfSwge0BsaW5rIER1cmF0aW9uI21pbnV0ZXN9LCB7QGxpbmsgRHVyYXRpb24jc2Vjb25kc30sIHtAbGluayBEdXJhdGlvbiNtaWxsaXNlY29uZHN9IGFjY2Vzc29ycy5cbiAqICogKipDb25maWd1cmF0aW9uKiogU2VlICB7QGxpbmsgRHVyYXRpb24jbG9jYWxlfSBhbmQge0BsaW5rIER1cmF0aW9uI251bWJlcmluZ1N5c3RlbX0gYWNjZXNzb3JzLlxuICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG5ldyBEdXJhdGlvbnMgb3V0IG9mIG9sZCBvbmVzIHVzZSB7QGxpbmsgRHVyYXRpb24jcGx1c30sIHtAbGluayBEdXJhdGlvbiNtaW51c30sIHtAbGluayBEdXJhdGlvbiNub3JtYWxpemV9LCB7QGxpbmsgRHVyYXRpb24jc2V0fSwge0BsaW5rIER1cmF0aW9uI3JlY29uZmlndXJlfSwge0BsaW5rIER1cmF0aW9uI3NoaWZ0VG99LCBhbmQge0BsaW5rIER1cmF0aW9uI25lZ2F0ZX0uXG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgRHVyYXRpb24gaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgRHVyYXRpb24jYXN9LCB7QGxpbmsgRHVyYXRpb24jdG9JU099LCB7QGxpbmsgRHVyYXRpb24jdG9Gb3JtYXR9LCBhbmQge0BsaW5rIER1cmF0aW9uI3RvSlNPTn1cbiAqXG4gKiBUaGVyZSdzIGFyZSBtb3JlIG1ldGhvZHMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIHZhbGlkaXR5LCBzZWUgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCBhY2N1cmF0ZSA9IGNvbmZpZy5jb252ZXJzaW9uQWNjdXJhY3kgPT09IFwibG9uZ3Rlcm1cIiB8fCBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlcyA9IGNvbmZpZy52YWx1ZXM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGFjY3VyYXRlID8gXCJsb25ndGVybVwiIDogXCJjYXN1YWxcIjtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMubWF0cml4ID0gYWNjdXJhdGUgPyBhY2N1cmF0ZU1hdHJpeCA6IGNhc3VhbE1hdHJpeDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EdXJhdGlvbiA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKGNvdW50LCBvcHRzKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IGNvdW50IH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLlxuICAgKiBJZiB0aGlzIG9iamVjdCBpcyBlbXB0eSB0aGVuIGEgemVybyBtaWxsaXNlY29uZHMgZHVyYXRpb24gaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoucXVhcnRlcnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3Vyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz1bXV0gLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgRHVyYXRpb24uZnJvbU9iamVjdDogYXJndW1lbnQgZXhwZWN0ZWQgdG8gYmUgYW4gb2JqZWN0LCBnb3QgJHtcbiAgICAgICAgICBvYmogPT09IG51bGwgPyBcIm51bGxcIiA6IHR5cGVvZiBvYmpcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7XG4gICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLFxuICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICAgIGNvbnZlcnNpb25BY2N1cmFjeTogb3B0cy5jb252ZXJzaW9uQWNjdXJhY3ksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBEdXJhdGlvbkxpa2UuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZVxuICAgKiBPbmUgb2Y6XG4gICAqIC0gb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuXG4gICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHNcbiAgICogLSBEdXJhdGlvbiBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uTGlrZSkge1xuICAgIGlmIChpc051bWJlcihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpO1xuICAgIH0gZWxzZSBpZiAoRHVyYXRpb24uaXNEdXJhdGlvbihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gZHVyYXRpb25MaWtlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoZHVyYXRpb25MaWtlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgVW5rbm93biBkdXJhdGlvbiBhcmd1bWVudCAke2R1cmF0aW9uTGlrZX0gb2YgdHlwZSAke3R5cGVvZiBkdXJhdGlvbkxpa2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDNZNk0xVzREVDEySDMwTTVTJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDMsIG1vbnRoczogNiwgd2Vla3M6IDEsIGRheXM6IDQsIGhvdXJzOiAxMiwgbWludXRlczogMzAsIHNlY29uZHM6IDUgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQVDIzSCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyMyB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1A1WTNNJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDUsIG1vbnRoczogMyB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21JU08odGV4dCwgb3B0cykge1xuICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09EdXJhdGlvbih0ZXh0KTtcbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChwYXJzZWQsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSB0aW1lIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0ZXh0IHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMToyMjozMy40NDQnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDIyLCBzZWNvbmRzOiAzMywgbWlsbGlzZWNvbmRzOiA0NDQgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExOjAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3BhcnNlZF0gPSBwYXJzZUlTT1RpbWVPbmx5KHRleHQpO1xuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwidW5wYXJzYWJsZVwiLCBgdGhlIGlucHV0IFwiJHt0ZXh0fVwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgZGF0ZXRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRHVyYXRpb25FcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplVW5pdCh1bml0KSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHtcbiAgICAgIHllYXI6IFwieWVhcnNcIixcbiAgICAgIHllYXJzOiBcInllYXJzXCIsXG4gICAgICBxdWFydGVyOiBcInF1YXJ0ZXJzXCIsXG4gICAgICBxdWFydGVyczogXCJxdWFydGVyc1wiLFxuICAgICAgbW9udGg6IFwibW9udGhzXCIsXG4gICAgICBtb250aHM6IFwibW9udGhzXCIsXG4gICAgICB3ZWVrOiBcIndlZWtzXCIsXG4gICAgICB3ZWVrczogXCJ3ZWVrc1wiLFxuICAgICAgZGF5OiBcImRheXNcIixcbiAgICAgIGRheXM6IFwiZGF5c1wiLFxuICAgICAgaG91cjogXCJob3Vyc1wiLFxuICAgICAgaG91cnM6IFwiaG91cnNcIixcbiAgICAgIG1pbnV0ZTogXCJtaW51dGVzXCIsXG4gICAgICBtaW51dGVzOiBcIm1pbnV0ZXNcIixcbiAgICAgIHNlY29uZDogXCJzZWNvbmRzXCIsXG4gICAgICBzZWNvbmRzOiBcInNlY29uZHNcIixcbiAgICAgIG1pbGxpc2Vjb25kOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgICAgbWlsbGlzZWNvbmRzOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgIH1bdW5pdCA/IHVuaXQudG9Mb3dlckNhc2UoKSA6IHVuaXRdO1xuXG4gICAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIER1cmF0aW9uLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNEdXJhdGlvbihvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkR1cmF0aW9uKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgIHRoZSBsb2NhbGUgb2YgYSBEdXJhdGlvbiwgc3VjaCAnZW4tR0InXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIER1cmF0aW9uLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIER1cmF0aW9uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy4gWW91IG1heSB1c2UgdGhlc2UgdG9rZW5zOlxuICAgKiAqIGBTYCBmb3IgbWlsbGlzZWNvbmRzXG4gICAqICogYHNgIGZvciBzZWNvbmRzXG4gICAqICogYG1gIGZvciBtaW51dGVzXG4gICAqICogYGhgIGZvciBob3Vyc1xuICAgKiAqIGBkYCBmb3IgZGF5c1xuICAgKiAqIGB3YCBmb3Igd2Vla3NcbiAgICogKiBgTWAgZm9yIG1vbnRoc1xuICAgKiAqIGB5YCBmb3IgeWVhcnNcbiAgICogTm90ZXM6XG4gICAqICogQWRkIHBhZGRpbmcgYnkgcmVwZWF0aW5nIHRoZSB0b2tlbiwgZS5nLiBcInl5XCIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgXCJoaGhoXCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzXG4gICAqICogVG9rZW5zIGNhbiBiZSBlc2NhcGVkIGJ5IHdyYXBwaW5nIHdpdGggc2luZ2xlIHF1b3Rlcy5cbiAgICogKiBUaGUgZHVyYXRpb24gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlIHNldCBvZiB1bml0cyBpbiB0aGUgZm9ybWF0IHN0cmluZyB1c2luZyB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30gYW5kIHRoZSBEdXJhdGlvbnMncyBjb252ZXJzaW9uIGFjY3VyYWN5IHNldHRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5mbG9vcj10cnVlXSAtIGZsb29yIG51bWVyaWNhbCB2YWx1ZXNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieSBkIHNcIikgLy89PiBcIjEgNiAyXCJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieXkgZGQgc3NzXCIpIC8vPT4gXCIwMSAwNiAwMDJcIlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoXCJNIFNcIikgLy89PiBcIjEyIDUxODQwMjAwMFwiXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZtdE9wdHMgPSB7XG4gICAgICAuLi5vcHRzLFxuICAgICAgZmxvb3I6IG9wdHMucm91bmQgIT09IGZhbHNlICYmIG9wdHMuZmxvb3IgIT09IGZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLCBmbXRPcHRzKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEdXJhdGlvbiB3aXRoIGFsbCB1bml0cyBpbmNsdWRlZC5cbiAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0XG4gICAqIEBwYXJhbSBvcHRzIC0gT24gb3B0aW9uIG9iamVjdCB0byBvdmVycmlkZSB0aGUgZm9ybWF0dGluZy4gQWNjZXB0cyB0aGUgc2FtZSBrZXlzIGFzIHRoZSBvcHRpb25zIHBhcmFtZXRlciBvZiB0aGUgbmF0aXZlIGBJbnQuTnVtYmVyRm9ybWF0YCBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyBgbGlzdFN0eWxlYC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBganNcbiAgICogdmFyIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxLCBob3VyczogNSwgbWludXRlczogNiB9KVxuICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnXG4gICAqIGR1ci50b0h1bWFuKHsgbGlzdFN0eWxlOiBcImxvbmdcIiB9KSAvLz0+ICcxIGRheSwgNSBob3VycywgYW5kIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyB1bml0RGlzcGxheTogXCJzaG9ydFwiIH0pIC8vPT4gJzEgZGF5LCA1IGhyLCA2IG1pbidcbiAgICogYGBgXG4gICAqL1xuICB0b0h1bWFuKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGwgPSBvcmRlcmVkVW5pdHNcbiAgICAgIC5tYXAoKHVuaXQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZXNbdW5pdF07XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAgICAgLm51bWJlckZvcm1hdHRlcih7IHN0eWxlOiBcInVuaXRcIiwgdW5pdERpc3BsYXk6IFwibG9uZ1wiLCAuLi5vcHRzLCB1bml0OiB1bml0LnNsaWNlKDAsIC0xKSB9KVxuICAgICAgICAgIC5mb3JtYXQodmFsKTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChuKSA9PiBuKTtcblxuICAgIHJldHVybiB0aGlzLmxvY1xuICAgICAgLmxpc3RGb3JtYXR0ZXIoeyB0eXBlOiBcImNvbmp1bmN0aW9uXCIsIHN0eWxlOiBvcHRzLmxpc3RTdHlsZSB8fCBcIm5hcnJvd1wiLCAuLi5vcHRzIH0pXG4gICAgICAuZm9ybWF0KGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRHVyYXRpb24ncyB2YWx1ZXMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4ge307XG4gICAgcmV0dXJuIHsgLi4udGhpcy52YWx1ZXMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAzLCBzZWNvbmRzOiA0NSB9KS50b0lTTygpIC8vPT4gJ1AzWVQ0NVMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDQsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDRNVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNSB9KS50b0lTTygpIC8vPT4gJ1A1TSdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDUgfSkudG9JU08oKSAvLz0+ICdQVDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWlsbGlzZWNvbmRzOiA2IH0pLnRvSVNPKCkgLy89PiAnUFQwLjAwNlMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKCkge1xuICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgZm9ybWF0dGVyLCBidXQgdGhpcyBpcyBhbiBlYXNpZXIgd2F5IHRvIGdldCB0aGUgbWluaW11bSBzdHJpbmdcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgcyA9IFwiUFwiO1xuICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyBcIllcIjtcbiAgICBpZiAodGhpcy5tb250aHMgIT09IDAgfHwgdGhpcy5xdWFydGVycyAhPT0gMCkgcyArPSB0aGlzLm1vbnRocyArIHRoaXMucXVhcnRlcnMgKiAzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMud2Vla3MgIT09IDApIHMgKz0gdGhpcy53ZWVrcyArIFwiV1wiO1xuICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgXCJEXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDAgfHwgdGhpcy5taW51dGVzICE9PSAwIHx8IHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIHMgKz0gXCJUXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDApIHMgKz0gdGhpcy5ob3VycyArIFwiSFwiO1xuICAgIGlmICh0aGlzLm1pbnV0ZXMgIT09IDApIHMgKz0gdGhpcy5taW51dGVzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIC8vIHRoaXMgd2lsbCBoYW5kbGUgXCJmbG9hdGluZyBwb2ludCBtYWRuZXNzXCIgYnkgcmVtb3ZpbmcgZXh0cmEgZGVjaW1hbCBwbGFjZXNcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlblxuICAgICAgcyArPSByb3VuZFRvKHRoaXMuc2Vjb25kcyArIHRoaXMubWlsbGlzZWNvbmRzIC8gMTAwMCwgMykgKyBcIlNcIjtcbiAgICBpZiAocyA9PT0gXCJQXCIpIHMgKz0gXCJUMFNcIjtcbiAgICByZXR1cm4gcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiwgZm9ybWF0dGVkIGFzIGEgdGltZSBvZiBkYXkuXG4gICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQsIG5lZ2F0aXZlLCBvciBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMjQgaG91cnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzU2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIHNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVQcmVmaXg9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgYFRgIHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoKSAvLz0+ICcxMTowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NNaWxsaXNlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDA6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGluY2x1ZGVQcmVmaXg6IHRydWUgfSkgLy89PiAnVDExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMTEwMDAwLjAwMCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1pbGxpcyA9IHRoaXMudG9NaWxsaXMoKTtcbiAgICBpZiAobWlsbGlzIDwgMCB8fCBtaWxsaXMgPj0gODY0MDAwMDApIHJldHVybiBudWxsO1xuXG4gICAgb3B0cyA9IHtcbiAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsXG4gICAgICBpbmNsdWRlUHJlZml4OiBmYWxzZSxcbiAgICAgIGZvcm1hdDogXCJleHRlbmRlZFwiLFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNoaWZ0VG8oXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCIsIFwibWlsbGlzZWNvbmRzXCIpO1xuXG4gICAgbGV0IGZtdCA9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcImhobW1cIiA6IFwiaGg6bW1cIjtcblxuICAgIGlmICghb3B0cy5zdXBwcmVzc1NlY29uZHMgfHwgdmFsdWUuc2Vjb25kcyAhPT0gMCB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgIGZtdCArPSBvcHRzLmZvcm1hdCA9PT0gXCJiYXNpY1wiID8gXCJzc1wiIDogXCI6c3NcIjtcbiAgICAgIGlmICghb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcyB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgICAgZm10ICs9IFwiLlNTU1wiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzdHIgPSB2YWx1ZS50b0Zvcm1hdChmbXQpO1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZVByZWZpeCkge1xuICAgICAgc3RyID0gXCJUXCIgKyBzdHI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvSVNPKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXMoXCJtaWxsaXNlY29uZHNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi4gQWxpYXMgb2Yge0BsaW5rIHRvTWlsbGlzfVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB2YWx1ZU9mKCkge1xuICAgIHJldHVybiB0aGlzLnRvTWlsbGlzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIGxvbmdlciBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICByZXN1bHQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShkdXIudmFsdWVzLCBrKSB8fCBoYXNPd25Qcm9wZXJ0eSh0aGlzLnZhbHVlcywgaykpIHtcbiAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhpcyBEdXJhdGlvbiBzaG9ydGVyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5wbHVzKGR1ci5uZWdhdGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgdGhpcyBEdXJhdGlvbiBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdW5pdC4gQXJpdHkgaXMgMSBvciAyOiB0aGUgdmFsdWUgb2YgdGhlIHVuaXQgYW5kLCBvcHRpb25hbGx5LCB0aGUgdW5pdCBuYW1lLiBNdXN0IHJldHVybiBhIG51bWJlci5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cyh4ID0+IHggKiAyKSAvLz0+IHsgaG91cnM6IDIsIG1pbnV0ZXM6IDYwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cygoeCwgdSkgPT4gdSA9PT0gXCJob3VyXCIgPyB4ICogMiA6IHgpIC8vPT4geyBob3VyczogMiwgbWludXRlczogMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG1hcFVuaXRzKGZuKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIHJlc3VsdFtrXSA9IGFzTnVtYmVyKGZuKHRoaXMudmFsdWVzW2tdLCBrKSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5J1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgneWVhcnMnKSAvLz0+IDJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ21vbnRocycpIC8vPT4gMFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gM1xuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQodW5pdCkge1xuICAgIHJldHVybiB0aGlzW0R1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCldO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pXG4gICAqIEBleGFtcGxlIGR1ci5zZXQoeyBob3VyczogOCwgbWludXRlczogMzAgfSlcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzZXQodmFsdWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgbWl4ZWQgPSB7IC4uLnRoaXMudmFsdWVzLCAuLi5ub3JtYWxpemVPYmplY3QodmFsdWVzLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSB9O1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbWl4ZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlIGFuZC9vciBudW1iZXJpbmdTeXN0ZW0uICBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIGR1ci5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNvbnZlcnNpb25BY2N1cmFjeSB9ID0ge30pIHtcbiAgICBjb25zdCBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtIH0pLFxuICAgICAgb3B0cyA9IHsgbG9jIH07XG5cbiAgICBpZiAoY29udmVyc2lvbkFjY3VyYWN5KSB7XG4gICAgICBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGNvbnZlcnNpb25BY2N1cmFjeTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGR1cmF0aW9uIGluIHRoZSBzcGVjaWZpZWQgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlcycgb3IgJ2RheXMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ2RheXMnKSAvLz0+IDM2NVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdtb250aHMnKSAvLz0+IDEyXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe2hvdXJzOiA2MH0pLmFzKCdkYXlzJykgLy89PiAyLjVcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgYXModW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnNoaWZ0VG8odW5pdCkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0aGlzIER1cmF0aW9uIHRvIGl0cyBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gaW4gaXRzIGN1cnJlbnQgdW5pdHMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMiwgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMTUsIGRheXM6IDI1NSB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTIsIG1pbnV0ZXM6IC00NSB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDE1IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBub3JtYWxpemUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbm9ybWFsaXplVmFsdWVzKHRoaXMubWF0cml4LCB2YWxzKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IHZhbHMgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGlzIER1cmF0aW9uIGludG8gaXRzIHJlcHJlc2VudGF0aW9uIGluIGEgZGlmZmVyZW50IHNldCBvZiB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5zaGlmdFRvKCdtaW51dGVzJywgJ21pbGxpc2Vjb25kcycpLnRvT2JqZWN0KCkgLy89PiB7IG1pbnV0ZXM6IDYwLCBtaWxsaXNlY29uZHM6IDMwMDAwIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzaGlmdFRvKC4uLnVuaXRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKHVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdW5pdHMgPSB1bml0cy5tYXAoKHUpID0+IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodSkpO1xuXG4gICAgY29uc3QgYnVpbHQgPSB7fSxcbiAgICAgIGFjY3VtdWxhdGVkID0ge30sXG4gICAgICB2YWxzID0gdGhpcy50b09iamVjdCgpO1xuICAgIGxldCBsYXN0VW5pdDtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmICh1bml0cy5pbmRleE9mKGspID49IDApIHtcbiAgICAgICAgbGFzdFVuaXQgPSBrO1xuXG4gICAgICAgIGxldCBvd24gPSAwO1xuXG4gICAgICAgIC8vIGFueXRoaW5nIHdlIGhhdmVuJ3QgYm9pbGVkIGRvd24geWV0IHNob3VsZCBnZXQgYm9pbGVkIHRvIHRoaXMgdW5pdFxuICAgICAgICBmb3IgKGNvbnN0IGFrIGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICAgICAgb3duICs9IHRoaXMubWF0cml4W2FrXVtrXSAqIGFjY3VtdWxhdGVkW2FrXTtcbiAgICAgICAgICBhY2N1bXVsYXRlZFtha10gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyB0aGF0J3MgYWxyZWFkeSBpbiB0aGlzIHVuaXRcbiAgICAgICAgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgICAgb3duICs9IHZhbHNba107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpID0gTWF0aC50cnVuYyhvd24pO1xuICAgICAgICBidWlsdFtrXSA9IGk7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gKG93biAqIDEwMDAgLSBpICogMTAwMCkgLyAxMDAwO1xuXG4gICAgICAgIC8vIHBsdXMgYW55dGhpbmcgZnVydGhlciBkb3duIHRoZSBjaGFpbiB0aGF0IHNob3VsZCBiZSByb2xsZWQgdXAgaW4gdG8gdGhpc1xuICAgICAgICBmb3IgKGNvbnN0IGRvd24gaW4gdmFscykge1xuICAgICAgICAgIGlmIChvcmRlcmVkVW5pdHMuaW5kZXhPZihkb3duKSA+IG9yZGVyZWRVbml0cy5pbmRleE9mKGspKSB7XG4gICAgICAgICAgICBjb252ZXJ0KHRoaXMubWF0cml4LCB2YWxzLCBkb3duLCBidWlsdCwgayk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwga2VlcCBpdCBpbiB0aGUgd2luZ3MgdG8gYm9pbCBpdCBsYXRlclxuICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkge1xuICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IHZhbHNba107XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgbGVmdG92ZXIgYmVjb21lcyB0aGUgZGVjaW1hbCBmb3IgdGhlIGxhc3QgdW5pdFxuICAgIC8vIGxhc3RVbml0IG11c3QgYmUgZGVmaW5lZCBzaW5jZSB1bml0cyBpcyBub3QgZW1wdHlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBhY2N1bXVsYXRlZCkge1xuICAgICAgaWYgKGFjY3VtdWxhdGVkW2tleV0gIT09IDApIHtcbiAgICAgICAgYnVpbHRbbGFzdFVuaXRdICs9XG4gICAgICAgICAga2V5ID09PSBsYXN0VW5pdCA/IGFjY3VtdWxhdGVkW2tleV0gOiBhY2N1bXVsYXRlZFtrZXldIC8gdGhpcy5tYXRyaXhbbGFzdFVuaXRdW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBidWlsdCB9LCB0cnVlKS5ub3JtYWxpemUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5lZ2F0aXZlIG9mIHRoaXMgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgc2Vjb25kczogMzAgfSkubmVnYXRlKCkudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IC0xLCBzZWNvbmRzOiAtMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5lZ2F0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbmVnYXRlZCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbmVnYXRlZCB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHllYXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy55ZWFycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcXVhcnRlcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgcXVhcnRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnF1YXJ0ZXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aHMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbW9udGhzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5tb250aHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlZWtzXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLndlZWtzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXlzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmRheXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhvdXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGhvdXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5ob3VycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlcy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaW51dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taW51dGVzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgc2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWlsbGlzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWlsbGlzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taWxsaXNlY29uZHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIER1cmF0aW9uIGlzIGludmFsaWQuIEludmFsaWQgZHVyYXRpb25zIGFyZSByZXR1cm5lZCBieSBkaWZmIG9wZXJhdGlvbnNcbiAgICogb24gaW52YWxpZCBEYXRlVGltZXMgb3IgSW50ZXJ2YWxzLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWFsaXR5IGNoZWNrXG4gICAqIFR3byBEdXJhdGlvbnMgYXJlIGVxdWFsIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgdW5pdHMgYW5kIHRoZSBzYW1lIHZhbHVlcyBmb3IgZWFjaCB1bml0LlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXEodjEsIHYyKSB7XG4gICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWxcbiAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkIHx8IHYxID09PSAwKSByZXR1cm4gdjIgPT09IHVuZGVmaW5lZCB8fCB2MiA9PT0gMDtcbiAgICAgIHJldHVybiB2MSA9PT0gdjI7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKCFlcSh0aGlzLnZhbHVlc1t1XSwgb3RoZXIudmFsdWVzW3VdKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lLCB7IGZyaWVuZGx5RGF0ZVRpbWUgfSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IER1cmF0aW9uIGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBJbnZhbGlkSW50ZXJ2YWxFcnJvciB9IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgSW50ZXJ2YWxcIjtcblxuLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZFxuZnVuY3Rpb24gdmFsaWRhdGVTdGFydEVuZChzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQgfHwgIXN0YXJ0LmlzVmFsaWQpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcIm1pc3Npbmcgb3IgaW52YWxpZCBzdGFydFwiKTtcbiAgfSBlbHNlIGlmICghZW5kIHx8ICFlbmQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIGVuZFwiKTtcbiAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFxuICAgICAgXCJlbmQgYmVmb3JlIHN0YXJ0XCIsXG4gICAgICBgVGhlIGVuZCBvZiBhbiBpbnRlcnZhbCBtdXN0IGJlIGFmdGVyIGl0cyBzdGFydCwgYnV0IHlvdSBoYWQgc3RhcnQ9JHtzdGFydC50b0lTTygpfSBhbmQgZW5kPSR7ZW5kLnRvSVNPKCl9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJbnRlcnZhbCBvYmplY3QgcmVwcmVzZW50cyBhIGhhbGYtb3BlbiBpbnRlcnZhbCBvZiB0aW1lLCB3aGVyZSBlYWNoIGVuZHBvaW50IGlzIGEge0BsaW5rIERhdGVUaW1lfS4gQ29uY2VwdHVhbGx5LCBpdCdzIGEgY29udGFpbmVyIGZvciB0aG9zZSB0d28gZW5kcG9pbnRzLCBhY2NvbXBhbmllZCBieSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgY29tcGFyaW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBJbnRlcnZhbDpcbiAqXG4gKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYW4gSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZnJvbURhdGVUaW1lc30sIHtAbGluayBJbnRlcnZhbCNhZnRlcn0sIHtAbGluayBJbnRlcnZhbCNiZWZvcmV9LCBvciB7QGxpbmsgSW50ZXJ2YWwjZnJvbUlTT30uXG4gKiAqICoqQWNjZXNzb3JzKiogVXNlIHtAbGluayBJbnRlcnZhbCNzdGFydH0gYW5kIHtAbGluayBJbnRlcnZhbCNlbmR9IHRvIGdldCB0aGUgc3RhcnQgYW5kIGVuZC5cbiAqICogKipJbnRlcnJvZ2F0aW9uKiogVG8gYW5hbHl6ZSB0aGUgSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjY291bnR9LCB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSwge0BsaW5rIEludGVydmFsI2hhc1NhbWV9LCB7QGxpbmsgSW50ZXJ2YWwjY29udGFpbnN9LCB7QGxpbmsgSW50ZXJ2YWwjaXNBZnRlcn0sIG9yIHtAbGluayBJbnRlcnZhbCNpc0JlZm9yZX0uXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgb3RoZXIgSW50ZXJ2YWxzIG91dCBvZiB0aGlzIG9uZSwgdXNlIHtAbGluayBJbnRlcnZhbCNzZXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRBdH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEJ5fSwge0BsaW5rIEludGVydmFsI2RpdmlkZUVxdWFsbHl9LCB7QGxpbmsgSW50ZXJ2YWwjbWVyZ2V9LCB7QGxpbmsgSW50ZXJ2YWwjeG9yfSwge0BsaW5rIEludGVydmFsI3VuaW9ufSwge0BsaW5rIEludGVydmFsI2ludGVyc2VjdGlvbn0sIG9yIHtAbGluayBJbnRlcnZhbCNkaWZmZXJlbmNlfS5cbiAqICogKipDb21wYXJpc29uKiogVG8gY29tcGFyZSB0aGlzIEludGVydmFsIHRvIGFub3RoZXIgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI2VxdWFsc30sIHtAbGluayBJbnRlcnZhbCNvdmVybGFwc30sIHtAbGluayBJbnRlcnZhbCNhYnV0c1N0YXJ0fSwge0BsaW5rIEludGVydmFsI2FidXRzRW5kfSwge0BsaW5rIEludGVydmFsI2VuZ3VsZnN9XG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgSW50ZXJ2YWwgaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgSW50ZXJ2YWwjdG9TdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU099LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09EYXRlfSwge0BsaW5rIEludGVydmFsI3RvSVNPVGltZX0sIHtAbGluayBJbnRlcnZhbCN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgSW50ZXJ2YWwjdG9EdXJhdGlvbn0uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEludGVydmFsIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnMgPSBjb25maWcuc3RhcnQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5lID0gY29uZmlnLmVuZDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkludGVydmFsID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkSW50ZXJ2YWxFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpIHtcbiAgICBjb25zdCBidWlsdFN0YXJ0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCksXG4gICAgICBidWlsdEVuZCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSB2YWxpZGF0ZVN0YXJ0RW5kKGJ1aWx0U3RhcnQsIGJ1aWx0RW5kKTtcblxuICAgIGlmICh2YWxpZGF0ZUVycm9yID09IG51bGwpIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoe1xuICAgICAgICBzdGFydDogYnVpbHRTdGFydCxcbiAgICAgICAgZW5kOiBidWlsdEVuZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC5cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgYWZ0ZXIoc3RhcnQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoc3RhcnQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0LCBkdC5wbHVzKGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIGVuZCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgYmFja3dhcmRzIHRvLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBiZWZvcmUoZW5kLCBkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLFxuICAgICAgZHQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQubWludXMoZHVyKSwgZHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy5cbiAgICogQWNjZXB0cyBgPHN0YXJ0Pi88ZW5kPmAsIGA8c3RhcnQ+LzxkdXJhdGlvbj5gLCBhbmQgYDxkdXJhdGlvbj4vPGVuZD5gIGZvcm1hdHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIElTTyBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099XG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3MsIGVdID0gKHRleHQgfHwgXCJcIikuc3BsaXQoXCIvXCIsIDIpO1xuICAgIGlmIChzICYmIGUpIHtcbiAgICAgIGxldCBzdGFydCwgc3RhcnRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RhcnQgPSBEYXRlVGltZS5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBzdGFydElzVmFsaWQgPSBzdGFydC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzdGFydElzVmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVuZCwgZW5kSXNWYWxpZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGVuZCA9IERhdGVUaW1lLmZyb21JU08oZSwgb3B0cyk7XG4gICAgICAgIGVuZElzVmFsaWQgPSBlbmQuaXNWYWxpZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhcnRJc1ZhbGlkICYmIGVuZElzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmFmdGVyKHN0YXJ0LCBkdXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhzLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmJlZm9yZShlbmQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNJbnRlcnZhbChvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkludGVydmFsKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IHN0YXJ0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnMgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVuZCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IGVuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhdCBsZWFzdCBpdHMgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgSW50ZXJ2YWwgaXNuJ3QgJ2JhY2t3YXJkcycuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZFJlYXNvbiA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwgaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byByZXR1cm4gdGhlIGxlbmd0aCBpbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgbGVuZ3RoKHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9EdXJhdGlvbiguLi5bdW5pdF0pLmdldCh1bml0KSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBtaW51dGVzLCBob3VycywgZGF5cywgbW9udGhzLCBvciB5ZWFycyBpbmNsdWRlZCBpbiB0aGUgSW50ZXJ2YWwsIGV2ZW4gaW4gcGFydC5cbiAgICogVW5saWtlIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9IHRoaXMgY291bnRzIHNlY3Rpb25zIG9mIHRoZSBjYWxlbmRhciwgbm90IHBlcmlvZHMgb2YgdGltZSwgZS5nLiBzcGVjaWZ5aW5nICdkYXknXG4gICAqIGFza3MgJ3doYXQgZGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJ2YWw/Jywgbm90ICdob3cgbWFueSBkYXlzIGxvbmcgaXMgdGhpcyBpbnRlcnZhbD8nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdW5pdD0nbWlsbGlzZWNvbmRzJ10gLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBjb3VudCh1bml0ID0gXCJtaWxsaXNlY29uZHNcIikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gTmFOO1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5zdGFydE9mKHVuaXQpLFxuICAgICAgZW5kID0gdGhpcy5lbmQuc3RhcnRPZih1bml0KTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpKSArIDE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBhbmQgZW5kIGFyZSBib3RoIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc1NhbWUodW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLmUubWludXMoMSkuaGFzU2FtZSh0aGlzLnMsIHVuaXQpIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBEYXRlVGltZXMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnMudmFsdWVPZigpID09PSB0aGlzLmUudmFsdWVPZigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBkYXRlVGltZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNBZnRlcihkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBlbmQgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0JlZm9yZShkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZSA8PSBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBjb250YWlucyhkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBkYXRlVGltZSAmJiB0aGlzLmUgPiBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldHNcIiB0aGUgc3RhcnQgYW5kL29yIGVuZCBkYXRlcy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gdGhlIHZhbHVlcyB0byBzZXRcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLnN0YXJ0IC0gdGhlIHN0YXJ0aW5nIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IHZhbHVlcy5lbmQgLSB0aGUgZW5kaW5nIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc2V0KHsgc3RhcnQsIGVuZCB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGF0IGVhY2ggb2YgdGhlIHNwZWNpZmllZCBEYXRlVGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzcGxpdEF0KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgY29uc3Qgc29ydGVkID0gZGF0ZVRpbWVzXG4gICAgICAgIC5tYXAoZnJpZW5kbHlEYXRlVGltZSlcbiAgICAgICAgLmZpbHRlcigoZCkgPT4gdGhpcy5jb250YWlucyhkKSlcbiAgICAgICAgLnNvcnQoKSxcbiAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaSA9IDA7XG5cbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLFxuICAgICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHNtYWxsZXIgSW50ZXJ2YWxzLCBlYWNoIG9mIHRoZSBzcGVjaWZpZWQgbGVuZ3RoLlxuICAgKiBMZWZ0IG92ZXIgdGltZSBpcyBncm91cGVkIGludG8gYSBzbWFsbGVyIGludGVydmFsXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgbGVuZ3RoIG9mIGVhY2ggcmVzdWx0aW5nIGludGVydmFsLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QnkoZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFkdXIuaXNWYWxpZCB8fCBkdXIuYXMoXCJtaWxsaXNlY29uZHNcIikgPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaWR4ID0gMSxcbiAgICAgIG5leHQ7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKHMgPCB0aGlzLmUpIHtcbiAgICAgIGNvbnN0IGFkZGVkID0gdGhpcy5zdGFydC5wbHVzKGR1ci5tYXBVbml0cygoeCkgPT4geCAqIGlkeCkpO1xuICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDtcbiAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIG5leHQpKTtcbiAgICAgIHMgPSBuZXh0O1xuICAgICAgaWR4ICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNtYWxsZXIgaW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyT2ZQYXJ0cyAtIFRoZSBudW1iZXIgb2YgSW50ZXJ2YWxzIHRvIGRpdmlkZSB0aGUgSW50ZXJ2YWwgaW50by5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBkaXZpZGVFcXVhbGx5KG51bWJlck9mUGFydHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKSAvIG51bWJlck9mUGFydHMpLnNsaWNlKDAsIG51bWJlck9mUGFydHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgb3ZlcmxhcHMgd2l0aCB0aGUgc3BlY2lmaWVkIEludGVydmFsXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBvdmVybGFwcyhvdGhlcikge1xuICAgIHJldHVybiB0aGlzLmUgPiBvdGhlci5zICYmIHRoaXMucyA8IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c1N0YXJ0KG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK3RoaXMuZSA9PT0gK290aGVyLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBlbmQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c0VuZChvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICtvdGhlci5lID09PSArdGhpcy5zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgZW5ndWxmcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZW5ndWxmcyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBvdGhlci5zICYmIHRoaXMuZSA+PSBvdGhlci5lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlci5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucy5lcXVhbHMob3RoZXIucykgJiYgdGhpcy5lLmVxdWFscyhvdGhlci5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWF4aW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWluaW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogUmV0dXJucyBudWxsIGlmIHRoZSBpbnRlcnNlY3Rpb24gaXMgZW1wdHksIG1lYW5pbmcsIHRoZSBpbnRlcnZhbHMgZG9uJ3QgaW50ZXJzZWN0LlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIGludGVyc2VjdGlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zID4gb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG5cbiAgICBpZiAocyA+PSBlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1pbmltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1heGltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW5pb24ob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcyA9IHRoaXMucyA8IG90aGVyLnMgPyB0aGlzLnMgOiBvdGhlci5zLFxuICAgICAgZSA9IHRoaXMuZSA+IG90aGVyLmUgPyB0aGlzLmUgOiBvdGhlci5lO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIGFuIGFycmF5IG9mIEludGVydmFscyBpbnRvIGEgZXF1aXZhbGVudCBtaW5pbWFsIHNldCBvZiBJbnRlcnZhbHMuXG4gICAqIENvbWJpbmVzIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJnZShpbnRlcnZhbHMpIHtcbiAgICBjb25zdCBbZm91bmQsIGZpbmFsXSA9IGludGVydmFsc1xuICAgICAgLnNvcnQoKGEsIGIpID0+IGEucyAtIGIucylcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChbc29mYXIsIGN1cnJlbnRdLCBpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBpdGVtXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQub3ZlcmxhcHMoaXRlbSkgfHwgY3VycmVudC5hYnV0c1N0YXJ0KGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtzb2Zhci5jb25jYXQoW2N1cnJlbnRdKSwgaXRlbV07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbW10sIG51bGxdXG4gICAgICApO1xuICAgIGlmIChmaW5hbCkge1xuICAgICAgZm91bmQucHVzaChmaW5hbCk7XG4gICAgfVxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIHJlcHJlc2VudGluZyB0aGUgc3BhbnMgb2YgdGltZSB0aGF0IG9ubHkgYXBwZWFyIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHhvcihpbnRlcnZhbHMpIHtcbiAgICBsZXQgc3RhcnQgPSBudWxsLFxuICAgICAgY3VycmVudENvdW50ID0gMDtcbiAgICBjb25zdCByZXN1bHRzID0gW10sXG4gICAgICBlbmRzID0gaW50ZXJ2YWxzLm1hcCgoaSkgPT4gW1xuICAgICAgICB7IHRpbWU6IGkucywgdHlwZTogXCJzXCIgfSxcbiAgICAgICAgeyB0aW1lOiBpLmUsIHR5cGU6IFwiZVwiIH0sXG4gICAgICBdKSxcbiAgICAgIGZsYXR0ZW5lZCA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4uZW5kcyksXG4gICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydCgoYSwgYikgPT4gYS50aW1lIC0gYi50aW1lKTtcblxuICAgIGZvciAoY29uc3QgaSBvZiBhcnIpIHtcbiAgICAgIGN1cnJlbnRDb3VudCArPSBpLnR5cGUgPT09IFwic1wiID8gMSA6IC0xO1xuXG4gICAgICBpZiAoY3VycmVudENvdW50ID09PSAxKSB7XG4gICAgICAgIHN0YXJ0ID0gaS50aW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXJ0ICYmICtzdGFydCAhPT0gK2kudGltZSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gSW50ZXJ2YWwubWVyZ2UocmVzdWx0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgc3BhbiBvZiB0aW1lIGluIHRoaXMgSW50ZXJ2YWwgdGhhdCBkb2Vzbid0IG92ZXJsYXAgd2l0aCBhbnkgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7Li4uSW50ZXJ2YWx9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpZmZlcmVuY2UoLi4uaW50ZXJ2YWxzKSB7XG4gICAgcmV0dXJuIEludGVydmFsLnhvcihbdGhpc10uY29uY2F0KGludGVydmFscykpXG4gICAgICAubWFwKChpKSA9PiB0aGlzLmludGVyc2VjdGlvbihpKSlcbiAgICAgIC5maWx0ZXIoKGkpID0+IGkgJiYgIWkuaXNFbXB0eSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgYXBwcm9wcmlhdGUgZm9yIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgWyR7dGhpcy5zLnRvSVNPKCl9IFx1MjAxMyAke3RoaXMuZS50b0lTTygpfSlgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTTyhvcHRzKX0vJHt0aGlzLmUudG9JU08ob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZGF0ZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgdGltZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPRGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT0RhdGUoKX0vJHt0aGlzLmUudG9JU09EYXRlKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGltZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgZGF0ZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPVGltZShvcHRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9JU09UaW1lKG9wdHMpfS8ke3RoaXMuZS50b0lTT1RpbWUob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlRm9ybWF0IC0gdGhlIGZvcm1hdCBzdHJpbmcuIFRoaXMgc3RyaW5nIGZvcm1hdHMgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZS4gU2VlIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0gZm9yIGRldGFpbHMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gICcgXHUyMDEzICddIC0gYSBzZXBhcmF0b3IgdG8gcGxhY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCByZXByZXNlbnRhdGlvbnNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9Gb3JtYXQoZGF0ZUZvcm1hdCwgeyBzZXBhcmF0b3IgPSBcIiBcdTIwMTMgXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9JHtzZXBhcmF0b3J9JHt0aGlzLmUudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEdXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHRpbWUgc3Bhbm5lZCBieSB0aGlzIGludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA4ODQ4OTI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ2RheXMnKS50b09iamVjdCgpIC8vPT4geyBkYXlzOiAxLjAyNDE4MTIxNTI3Nzc3NzggfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LjgyMDk1IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbihbJ2hvdXJzJywgJ21pbnV0ZXMnLCAnc2Vjb25kcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LCBzZWNvbmRzOiA0OS4yNTcgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCdzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgc2Vjb25kczogODg0ODkuMjU3IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICB0b0R1cmF0aW9uKHVuaXQsIG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQodGhpcy5pbnZhbGlkUmVhc29uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZS5kaWZmKHRoaXMucywgdW5pdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUnVuIG1hcEZuIG9uIHRoZSBpbnRlcnZhbCBzdGFydCBhbmQgZW5kLCByZXR1cm5pbmcgYSBuZXcgSW50ZXJ2YWwgZnJvbSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGblxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnRvVVRDKCkpXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpXG4gICAqL1xuICBtYXBFbmRwb2ludHMobWFwRm4pIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhtYXBGbih0aGlzLnMpLCBtYXBGbih0aGlzLmUpKTtcbiAgfVxufVxuIiwgImltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5cbmltcG9ydCB7IGhhc1JlbGF0aXZlIH0gZnJvbSBcIi4vaW1wbC91dGlsLmpzXCI7XG5cbi8qKlxuICogVGhlIEluZm8gY2xhc3MgY29udGFpbnMgc3RhdGljIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcgZ2VuZXJhbCB0aW1lIGFuZCBkYXRlIHJlbGF0ZWQgZGF0YS4gRm9yIGV4YW1wbGUsIGl0IGhhcyBtZXRob2RzIGZvciBmaW5kaW5nIG91dCBpZiBhIHRpbWUgem9uZSBoYXMgYSBEU1QsIGZvciBsaXN0aW5nIHRoZSBtb250aHMgaW4gYW55IHN1cHBvcnRlZCBsb2NhbGUsIGFuZCBmb3IgZGlzY292ZXJpbmcgd2hpY2ggb2YgTHV4b24gZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5mbyB7XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgY29udGFpbnMgYSBEU1QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBoYXNEU1Qoem9uZSA9IFNldHRpbmdzLmRlZmF1bHRab25lKSB7XG4gICAgY29uc3QgcHJvdG8gPSBEYXRlVGltZS5ub3coKS5zZXRab25lKHpvbmUpLnNldCh7IG1vbnRoOiAxMiB9KTtcblxuICAgIHJldHVybiAhem9uZS5pc1VuaXZlcnNhbCAmJiBwcm90by5vZmZzZXQgIT09IHByb3RvLnNldCh7IG1vbnRoOiA2IH0pLm9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgaXMgYSB2YWxpZCBJQU5BIHNwZWNpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBab25lIHRvIGNoZWNrXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZElBTkFab25lKHpvbmUpIHtcbiAgICByZXR1cm4gSUFOQVpvbmUuaXNWYWxpZFpvbmUoem9uZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGlucHV0IGludG8gYSB7QGxpbmsgWm9uZX0gaW5zdGFuY2UuXG4gICAqXG4gICAqICogSWYgYGlucHV0YCBpcyBhbHJlYWR5IGEgWm9uZSBpbnN0YW5jZSwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYSBzdHJpbmcgY29udGFpbmluZyBhIHZhbGlkIHRpbWUgem9uZSBuYW1lLCBhIFpvbmUgaW5zdGFuY2VcbiAgICogICB3aXRoIHRoYXQgbmFtZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIHRoYXQgZG9lc24ndCByZWZlciB0byBhIGtub3duIHRpbWUgem9uZSwgYSBab25lXG4gICAqICAgaW5zdGFuY2Ugd2l0aCB7QGxpbmsgWm9uZSNpc1ZhbGlkfSA9PSBmYWxzZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXQgaXMgYSBudW1iZXIsIGEgWm9uZSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZml4ZWQgb2Zmc2V0XG4gICAqICAgaW4gbWludXRlcyBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYCwgdGhlIGRlZmF1bHQgem9uZSBpcyByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZXxudW1iZXJ9IFtpbnB1dF0gLSB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm4ge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplWm9uZShpbnB1dCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGlucHV0LCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgbW9udGggbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygpWzBdIC8vPT4gJ0phbnVhcnknXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcpWzBdIC8vPT4gJ0phbidcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnKVswXSAvLz0+ICcxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9IClbMF0gLy89PiAnamFudi4nXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdudW1lcmljJywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAnXHUwNjYxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbG9uZycsIHsgb3V0cHV0Q2FsZW5kYXI6ICdpc2xhbWljJyB9KVswXSAvLz0+ICdSYWJpXHUwMkJCIEknXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1vbnRocyhcbiAgICBsZW5ndGggPSBcImxvbmdcIixcbiAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gXCJncmVnb3J5XCIgfSA9IHt9XG4gICkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCBtb250aCBuYW1lcy5cbiAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0XG4gICAqIGNoYW5nZXMgdGhlIHN0cmluZy5cbiAgICogU2VlIHtAbGluayBJbmZvI21vbnRoc31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtb250aHNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsLCBvdXRwdXRDYWxlbmRhciA9IFwiZ3JlZ29yeVwiIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIHdlZWsgbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIHdlZWtkYXkgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygpWzBdIC8vPT4gJ01vbmRheSdcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnKVswXSAvLz0+ICdNb24nXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSlbMF0gLy89PiAnbHVuLidcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICdcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MkJcdTA2NDZcdTA2NEFcdTA2NDYnXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHdlZWtkYXlzKGxlbmd0aCA9IFwibG9uZ1wiLCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwgfSA9IHt9KSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgbnVsbCkpLndlZWtkYXlzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCB3ZWVrIG5hbWVzLlxuICAgKiBGb3JtYXQgd2Vla2RheXMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSB3ZWVrZGF5cyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gbW9yZSBkYXRlIGluZm9ybWF0aW9uLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdFxuICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuXG4gICAqIFNlZSB7QGxpbmsgSW5mbyN3ZWVrZGF5c31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPW51bGxdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgd2Vla2RheXNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgbWVyaWRpZW1zLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoKSAvLz0+IFsgJ0FNJywgJ1BNJyBdXG4gICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKHsgbG9jYWxlOiAnbXknIH0pIC8vPT4gWyAnXHUxMDE0XHUxMDM2XHUxMDE0XHUxMDAwXHUxMDNBJywgJ1x1MTAwQVx1MTAxNFx1MTAzMScgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJpZGllbXMoeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSkubWVyaWRpZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGVyYXMsIHN1Y2ggYXMgWydCQycsICdBRCddLiBUaGUgbG9jYWxlIGNhbiBiZSBzcGVjaWZpZWQsIGJ1dCB0aGUgY2FsZW5kYXIgc3lzdGVtIGlzIGFsd2F5cyBHcmVnb3JpYW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdzaG9ydCddIC0gdGhlIGxlbmd0aCBvZiB0aGUgZXJhIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwic2hvcnRcIiBvciBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygpIC8vPT4gWyAnQkMnLCAnQUQnIF1cbiAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJykgLy89PiBbICdCZWZvcmUgQ2hyaXN0JywgJ0Fubm8gRG9taW5pJyBdXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycsIHsgbG9jYWxlOiAnZnInIH0pIC8vPT4gWyAnYXZhbnQgSlx1MDBFOXN1cy1DaHJpc3QnLCAnYXByXHUwMEU4cyBKXHUwMEU5c3VzLUNocmlzdCcgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBlcmFzKGxlbmd0aCA9IFwic2hvcnRcIiwgeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgXCJncmVnb3J5XCIpLmVyYXMobGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhdmFpbGFibGUgZmVhdHVyZXMgaW4gdGhpcyBlbnZpcm9ubWVudC5cbiAgICogU29tZSBmZWF0dXJlcyBvZiBMdXhvbiBhcmUgbm90IGF2YWlsYWJsZSBpbiBhbGwgZW52aXJvbm1lbnRzLiBGb3IgZXhhbXBsZSwgb24gb2xkZXIgYnJvd3NlcnMsIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZyBzdXBwb3J0IGlzIG5vdCBhdmFpbGFibGUuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGZpZ3VyZSBvdXQgaWYgdGhhdCdzIHRoZSBjYXNlLlxuICAgKiBLZXlzOlxuICAgKiAqIGByZWxhdGl2ZWA6IHdoZXRoZXIgdGhpcyBlbnZpcm9ubWVudCBzdXBwb3J0cyByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmdcbiAgICogQGV4YW1wbGUgSW5mby5mZWF0dXJlcygpIC8vPT4geyByZWxhdGl2ZTogZmFsc2UgfVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZmVhdHVyZXMoKSB7XG4gICAgcmV0dXJuIHsgcmVsYXRpdmU6IGhhc1JlbGF0aXZlKCkgfTtcbiAgfVxufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi4vZHVyYXRpb24uanNcIjtcblxuZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikge1xuICBjb25zdCB1dGNEYXlTdGFydCA9IChkdCkgPT4gZHQudG9VVEMoMCwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pLnN0YXJ0T2YoXCJkYXlcIikudmFsdWVPZigpLFxuICAgIG1zID0gdXRjRGF5U3RhcnQobGF0ZXIpIC0gdXRjRGF5U3RhcnQoZWFybGllcik7XG4gIHJldHVybiBNYXRoLmZsb29yKER1cmF0aW9uLmZyb21NaWxsaXMobXMpLmFzKFwiZGF5c1wiKSk7XG59XG5cbmZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7XG4gIGNvbnN0IGRpZmZlcnMgPSBbXG4gICAgW1wieWVhcnNcIiwgKGEsIGIpID0+IGIueWVhciAtIGEueWVhcl0sXG4gICAgW1wicXVhcnRlcnNcIiwgKGEsIGIpID0+IGIucXVhcnRlciAtIGEucXVhcnRlcl0sXG4gICAgW1wibW9udGhzXCIsIChhLCBiKSA9PiBiLm1vbnRoIC0gYS5tb250aCArIChiLnllYXIgLSBhLnllYXIpICogMTJdLFxuICAgIFtcbiAgICAgIFwid2Vla3NcIixcbiAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBkYXlEaWZmKGEsIGIpO1xuICAgICAgICByZXR1cm4gKGRheXMgLSAoZGF5cyAlIDcpKSAvIDc7XG4gICAgICB9LFxuICAgIF0sXG4gICAgW1wiZGF5c1wiLCBkYXlEaWZmXSxcbiAgXTtcblxuICBjb25zdCByZXN1bHRzID0ge307XG4gIGxldCBsb3dlc3RPcmRlciwgaGlnaFdhdGVyO1xuXG4gIGZvciAoY29uc3QgW3VuaXQsIGRpZmZlcl0gb2YgZGlmZmVycykge1xuICAgIGlmICh1bml0cy5pbmRleE9mKHVuaXQpID49IDApIHtcbiAgICAgIGxvd2VzdE9yZGVyID0gdW5pdDtcblxuICAgICAgbGV0IGRlbHRhID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpO1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIH0pO1xuXG4gICAgICBpZiAoaGlnaFdhdGVyID4gbGF0ZXIpIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIC0gMSB9KTtcbiAgICAgICAgZGVsdGEgLT0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnNvciA9IGhpZ2hXYXRlcjtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0c1t1bml0XSA9IGRlbHRhO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgb3B0cykge1xuICBsZXQgW2N1cnNvciwgcmVzdWx0cywgaGlnaFdhdGVyLCBsb3dlc3RPcmRlcl0gPSBoaWdoT3JkZXJEaWZmcyhlYXJsaWVyLCBsYXRlciwgdW5pdHMpO1xuXG4gIGNvbnN0IHJlbWFpbmluZ01pbGxpcyA9IGxhdGVyIC0gY3Vyc29yO1xuXG4gIGNvbnN0IGxvd2VyT3JkZXJVbml0cyA9IHVuaXRzLmZpbHRlcihcbiAgICAodSkgPT4gW1wiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiXS5pbmRleE9mKHUpID49IDBcbiAgKTtcblxuICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChoaWdoV2F0ZXIgPCBsYXRlcikge1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbbG93ZXN0T3JkZXJdOiAxIH0pO1xuICAgIH1cblxuICAgIGlmIChoaWdoV2F0ZXIgIT09IGN1cnNvcikge1xuICAgICAgcmVzdWx0c1tsb3dlc3RPcmRlcl0gPSAocmVzdWx0c1tsb3dlc3RPcmRlcl0gfHwgMCkgKyByZW1haW5pbmdNaWxsaXMgLyAoaGlnaFdhdGVyIC0gY3Vyc29yKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLmZyb21PYmplY3QocmVzdWx0cywgb3B0cyk7XG5cbiAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21NaWxsaXMocmVtYWluaW5nTWlsbGlzLCBvcHRzKVxuICAgICAgLnNoaWZ0VG8oLi4ubG93ZXJPcmRlclVuaXRzKVxuICAgICAgLnBsdXMoZHVyYXRpb24pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkdXJhdGlvbjtcbiAgfVxufVxuIiwgImNvbnN0IG51bWJlcmluZ1N5c3RlbXMgPSB7XG4gIGFyYWI6IFwiW1xcdTA2NjAtXFx1MDY2OV1cIixcbiAgYXJhYmV4dDogXCJbXFx1MDZGMC1cXHUwNkY5XVwiLFxuICBiYWxpOiBcIltcXHUxQjUwLVxcdTFCNTldXCIsXG4gIGJlbmc6IFwiW1xcdTA5RTYtXFx1MDlFRl1cIixcbiAgZGV2YTogXCJbXFx1MDk2Ni1cXHUwOTZGXVwiLFxuICBmdWxsd2lkZTogXCJbXFx1RkYxMC1cXHVGRjE5XVwiLFxuICBndWpyOiBcIltcXHUwQUU2LVxcdTBBRUZdXCIsXG4gIGhhbmlkZWM6IFwiW1x1MzAwN3xcdTRFMDB8XHU0RThDfFx1NEUwOXxcdTU2REJ8XHU0RTk0fFx1NTE2RHxcdTRFMDN8XHU1MTZCfFx1NEU1RF1cIixcbiAga2htcjogXCJbXFx1MTdFMC1cXHUxN0U5XVwiLFxuICBrbmRhOiBcIltcXHUwQ0U2LVxcdTBDRUZdXCIsXG4gIGxhb286IFwiW1xcdTBFRDAtXFx1MEVEOV1cIixcbiAgbGltYjogXCJbXFx1MTk0Ni1cXHUxOTRGXVwiLFxuICBtbHltOiBcIltcXHUwRDY2LVxcdTBENkZdXCIsXG4gIG1vbmc6IFwiW1xcdTE4MTAtXFx1MTgxOV1cIixcbiAgbXltcjogXCJbXFx1MTA0MC1cXHUxMDQ5XVwiLFxuICBvcnlhOiBcIltcXHUwQjY2LVxcdTBCNkZdXCIsXG4gIHRhbWxkZWM6IFwiW1xcdTBCRTYtXFx1MEJFRl1cIixcbiAgdGVsdTogXCJbXFx1MEM2Ni1cXHUwQzZGXVwiLFxuICB0aGFpOiBcIltcXHUwRTUwLVxcdTBFNTldXCIsXG4gIHRpYnQ6IFwiW1xcdTBGMjAtXFx1MEYyOV1cIixcbiAgbGF0bjogXCJcXFxcZFwiLFxufTtcblxuY29uc3QgbnVtYmVyaW5nU3lzdGVtc1VURjE2ID0ge1xuICBhcmFiOiBbMTYzMiwgMTY0MV0sXG4gIGFyYWJleHQ6IFsxNzc2LCAxNzg1XSxcbiAgYmFsaTogWzY5OTIsIDcwMDFdLFxuICBiZW5nOiBbMjUzNCwgMjU0M10sXG4gIGRldmE6IFsyNDA2LCAyNDE1XSxcbiAgZnVsbHdpZGU6IFs2NTI5NiwgNjUzMDNdLFxuICBndWpyOiBbMjc5MCwgMjc5OV0sXG4gIGtobXI6IFs2MTEyLCA2MTIxXSxcbiAga25kYTogWzMzMDIsIDMzMTFdLFxuICBsYW9vOiBbMzc5MiwgMzgwMV0sXG4gIGxpbWI6IFs2NDcwLCA2NDc5XSxcbiAgbWx5bTogWzM0MzAsIDM0MzldLFxuICBtb25nOiBbNjE2MCwgNjE2OV0sXG4gIG15bXI6IFs0MTYwLCA0MTY5XSxcbiAgb3J5YTogWzI5MTgsIDI5MjddLFxuICB0YW1sZGVjOiBbMzA0NiwgMzA1NV0sXG4gIHRlbHU6IFszMTc0LCAzMTgzXSxcbiAgdGhhaTogWzM2NjQsIDM2NzNdLFxuICB0aWJ0OiBbMzg3MiwgMzg4MV0sXG59O1xuXG5jb25zdCBoYW5pZGVjQ2hhcnMgPSBudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMucmVwbGFjZSgvW1xcW3xcXF1dL2csIFwiXCIpLnNwbGl0KFwiXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEaWdpdHMoc3RyKSB7XG4gIGxldCB2YWx1ZSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgdmFsdWUgPSBcIlwiO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cbiAgICAgIGlmIChzdHJbaV0uc2VhcmNoKG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYykgIT09IC0xKSB7XG4gICAgICAgIHZhbHVlICs9IGhhbmlkZWNDaGFycy5pbmRleE9mKHN0cltpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBudW1iZXJpbmdTeXN0ZW1zVVRGMTYpIHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0gbnVtYmVyaW5nU3lzdGVtc1VURjE2W2tleV07XG4gICAgICAgICAgaWYgKGNvZGUgPj0gbWluICYmIGNvZGUgPD0gbWF4KSB7XG4gICAgICAgICAgICB2YWx1ZSArPSBjb2RlIC0gbWluO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZ2l0UmVnZXgoeyBudW1iZXJpbmdTeXN0ZW0gfSwgYXBwZW5kID0gXCJcIikge1xuICByZXR1cm4gbmV3IFJlZ0V4cChgJHtudW1iZXJpbmdTeXN0ZW1zW251bWJlcmluZ1N5c3RlbSB8fCBcImxhdG5cIl19JHthcHBlbmR9YCk7XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VNaWxsaXMsIGlzVW5kZWZpbmVkLCB1bnRydW5jYXRlWWVhciwgc2lnbmVkT2Zmc2V0LCBoYXNPd25Qcm9wZXJ0eSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi4vZGF0ZXRpbWUuanNcIjtcbmltcG9ydCB7IGRpZ2l0UmVnZXgsIHBhcnNlRGlnaXRzIH0gZnJvbSBcIi4vZGlnaXRzLmpzXCI7XG5pbXBvcnQgeyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcblxuY29uc3QgTUlTU0lOR19GVFAgPSBcIm1pc3NpbmcgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXRUb1BhcnRzIHN1cHBvcnRcIjtcblxuZnVuY3Rpb24gaW50VW5pdChyZWdleCwgcG9zdCA9IChpKSA9PiBpKSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcG9zdChwYXJzZURpZ2l0cyhzKSkgfTtcbn1cblxuY29uc3QgTkJTUCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTtcbmNvbnN0IHNwYWNlT3JOQlNQID0gYFsgJHtOQlNQfV1gO1xuY29uc3Qgc3BhY2VPck5CU1BSZWdFeHAgPSBuZXcgUmVnRXhwKHNwYWNlT3JOQlNQLCBcImdcIik7XG5cbmZ1bmN0aW9uIGZpeExpc3RSZWdleChzKSB7XG4gIC8vIG1ha2UgZG90cyBvcHRpb25hbCBhbmQgYWxzbyBtYWtlIHRoZW0gbGl0ZXJhbFxuICAvLyBtYWtlIHNwYWNlIGFuZCBub24gYnJlYWthYmxlIHNwYWNlIGNoYXJhY3RlcnMgaW50ZXJjaGFuZ2VhYmxlXG4gIHJldHVybiBzLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuP1wiKS5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCBzcGFjZU9yTkJTUCk7XG59XG5cbmZ1bmN0aW9uIHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpIHtcbiAgcmV0dXJuIHNcbiAgICAucmVwbGFjZSgvXFwuL2csIFwiXCIpIC8vIGlnbm9yZSBkb3RzIHRoYXQgd2VyZSBtYWRlIG9wdGlvbmFsXG4gICAgLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIFwiIFwiKSAvLyBpbnRlcmNoYW5nZSBzcGFjZSBhbmQgbmJzcFxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBvbmVPZihzdHJpbmdzLCBzdGFydEluZGV4KSB7XG4gIGlmIChzdHJpbmdzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKFwifFwiKSksXG4gICAgICBkZXNlcjogKFtzXSkgPT5cbiAgICAgICAgc3RyaW5ncy5maW5kSW5kZXgoKGkpID0+IHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpID09PSBzdHJpcEluc2Vuc2l0aXZpdGllcyhpKSkgKyBzdGFydEluZGV4LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHtcbiAgcmV0dXJuIHsgcmVnZXgsIGRlc2VyOiAoWywgaCwgbV0pID0+IHNpZ25lZE9mZnNldChoLCBtKSwgZ3JvdXBzIH07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZShyZWdleCkge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHMgfTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlVG9rZW4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1tcXC1cXFtcXF17fSgpKis/LixcXFxcXFxeJHwjXFxzXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuZnVuY3Rpb24gdW5pdEZvclRva2VuKHRva2VuLCBsb2MpIHtcbiAgY29uc3Qgb25lID0gZGlnaXRSZWdleChsb2MpLFxuICAgIHR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsyfVwiKSxcbiAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInszfVwiKSxcbiAgICBmb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezR9XCIpLFxuICAgIHNpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns2fVwiKSxcbiAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDJ9XCIpLFxuICAgIG9uZVRvVGhyZWUgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7MSwzfVwiKSxcbiAgICBvbmVUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDZ9XCIpLFxuICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDl9XCIpLFxuICAgIHR3b1RvRm91ciA9IGRpZ2l0UmVnZXgobG9jLCBcInsyLDR9XCIpLFxuICAgIGZvdXJUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns0LDZ9XCIpLFxuICAgIGxpdGVyYWwgPSAodCkgPT4gKHsgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLCBkZXNlcjogKFtzXSkgPT4gcywgbGl0ZXJhbDogdHJ1ZSB9KSxcbiAgICB1bml0YXRlID0gKHQpID0+IHtcbiAgICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICAgIHJldHVybiBsaXRlcmFsKHQpO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0LnZhbCkge1xuICAgICAgICAvLyBlcmFcbiAgICAgICAgY2FzZSBcIkdcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJzaG9ydFwiLCBmYWxzZSksIDApO1xuICAgICAgICBjYXNlIFwiR0dcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJsb25nXCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIC8vIHllYXJzXG4gICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgY2FzZSBcInl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcInl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91clRvU2l4KTtcbiAgICAgICAgY2FzZSBcInl5eXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHNpeCk7XG4gICAgICAgIC8vIG1vbnRoc1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIk1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIk1NTU1cIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcImxvbmdcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcInNob3J0XCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJkZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIG9yZGluYWxzXG4gICAgICAgIGNhc2UgXCJvXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJvb29cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIC8vIHRpbWVcbiAgICAgICAgY2FzZSBcIkhIXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJoaFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwibW1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwic3NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpO1xuICAgICAgICBjYXNlIFwiU1NTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodGhyZWUpO1xuICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgIHJldHVybiBzaW1wbGUob25lVG9OaW5lKTtcbiAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJ1dXVcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmUpO1xuICAgICAgICAvLyBtZXJpZGllbVxuICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApO1xuICAgICAgICAvLyB3ZWVrWWVhciAoaylcbiAgICAgICAgY2FzZSBcImtra2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7XG4gICAgICAgIC8vIHdlZWtOdW1iZXIgKFcpXG4gICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiV1dcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICAvLyB3ZWVrZGF5c1xuICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy53ZWVrZGF5cyhcImxvbmdcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBvZmZzZXQvem9uZVxuICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICBjYXNlIFwiWlpcIjpcbiAgICAgICAgICByZXR1cm4gb2Zmc2V0KG5ldyBSZWdFeHAoYChbKy1dJHtvbmVPclR3by5zb3VyY2V9KSg/OjooJHt0d28uc291cmNlfSkpP2ApLCAyKTtcbiAgICAgICAgY2FzZSBcIlpaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKCR7dHdvLnNvdXJjZX0pP2ApLCAyKTtcbiAgICAgICAgLy8gd2UgZG9uJ3Qgc3VwcG9ydCBaWlpaIChQU1QpIG9yIFpaWlpaIChQYWNpZmljIFN0YW5kYXJkIFRpbWUpIGluIHBhcnNpbmdcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHRoZXkgYXJlXG4gICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZSgvW2Etel8rLS9dezEsMjU2fT8vaSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgfTtcblxuICBjb25zdCB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwge1xuICAgIGludmFsaWRSZWFzb246IE1JU1NJTkdfRlRQLFxuICB9O1xuXG4gIHVuaXQudG9rZW4gPSB0b2tlbjtcblxuICByZXR1cm4gdW5pdDtcbn1cblxuY29uc3QgcGFydFR5cGVTdHlsZVRvVG9rZW5WYWwgPSB7XG4gIHllYXI6IHtcbiAgICBcIjItZGlnaXRcIjogXCJ5eVwiLFxuICAgIG51bWVyaWM6IFwieXl5eXlcIixcbiAgfSxcbiAgbW9udGg6IHtcbiAgICBudW1lcmljOiBcIk1cIixcbiAgICBcIjItZGlnaXRcIjogXCJNTVwiLFxuICAgIHNob3J0OiBcIk1NTVwiLFxuICAgIGxvbmc6IFwiTU1NTVwiLFxuICB9LFxuICBkYXk6IHtcbiAgICBudW1lcmljOiBcImRcIixcbiAgICBcIjItZGlnaXRcIjogXCJkZFwiLFxuICB9LFxuICB3ZWVrZGF5OiB7XG4gICAgc2hvcnQ6IFwiRUVFXCIsXG4gICAgbG9uZzogXCJFRUVFXCIsXG4gIH0sXG4gIGRheXBlcmlvZDogXCJhXCIsXG4gIGRheVBlcmlvZDogXCJhXCIsXG4gIGhvdXI6IHtcbiAgICBudW1lcmljOiBcImhcIixcbiAgICBcIjItZGlnaXRcIjogXCJoaFwiLFxuICB9LFxuICBtaW51dGU6IHtcbiAgICBudW1lcmljOiBcIm1cIixcbiAgICBcIjItZGlnaXRcIjogXCJtbVwiLFxuICB9LFxuICBzZWNvbmQ6IHtcbiAgICBudW1lcmljOiBcInNcIixcbiAgICBcIjItZGlnaXRcIjogXCJzc1wiLFxuICB9LFxufTtcblxuZnVuY3Rpb24gdG9rZW5Gb3JQYXJ0KHBhcnQsIGxvY2FsZSwgZm9ybWF0T3B0cykge1xuICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBwYXJ0O1xuXG4gIGlmICh0eXBlID09PSBcImxpdGVyYWxcIikge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiB0cnVlLFxuICAgICAgdmFsOiB2YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgc3R5bGUgPSBmb3JtYXRPcHRzW3R5cGVdO1xuXG4gIGxldCB2YWwgPSBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbFt0eXBlXTtcbiAgaWYgKHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIpIHtcbiAgICB2YWwgPSB2YWxbc3R5bGVdO1xuICB9XG5cbiAgaWYgKHZhbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiBmYWxzZSxcbiAgICAgIHZhbCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYnVpbGRSZWdleCh1bml0cykge1xuICBjb25zdCByZSA9IHVuaXRzLm1hcCgodSkgPT4gdS5yZWdleCkucmVkdWNlKChmLCByKSA9PiBgJHtmfSgke3Iuc291cmNlfSlgLCBcIlwiKTtcbiAgcmV0dXJuIFtgXiR7cmV9JGAsIHVuaXRzXTtcbn1cblxuZnVuY3Rpb24gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycykge1xuICBjb25zdCBtYXRjaGVzID0gaW5wdXQubWF0Y2gocmVnZXgpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgY29uc3QgYWxsID0ge307XG4gICAgbGV0IG1hdGNoSW5kZXggPSAxO1xuICAgIGZvciAoY29uc3QgaSBpbiBoYW5kbGVycykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGhhbmRsZXJzLCBpKSkge1xuICAgICAgICBjb25zdCBoID0gaGFuZGxlcnNbaV0sXG4gICAgICAgICAgZ3JvdXBzID0gaC5ncm91cHMgPyBoLmdyb3VwcyArIDEgOiAxO1xuICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7XG4gICAgICAgICAgYWxsW2gudG9rZW4udmFsWzBdXSA9IGguZGVzZXIobWF0Y2hlcy5zbGljZShtYXRjaEluZGV4LCBtYXRjaEluZGV4ICsgZ3JvdXBzKSk7XG4gICAgICAgIH1cbiAgICAgICAgbWF0Y2hJbmRleCArPSBncm91cHM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbbWF0Y2hlcywgYWxsXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW21hdGNoZXMsIHt9XTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkYXRlVGltZUZyb21NYXRjaGVzKG1hdGNoZXMpIHtcbiAgY29uc3QgdG9GaWVsZCA9ICh0b2tlbikgPT4ge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgIHJldHVybiBcIm1pbGxpc2Vjb25kXCI7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgIHJldHVybiBcIm1pbnV0ZVwiO1xuICAgICAgY2FzZSBcImhcIjpcbiAgICAgIGNhc2UgXCJIXCI6XG4gICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgIHJldHVybiBcImRheVwiO1xuICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgcmV0dXJuIFwib3JkaW5hbFwiO1xuICAgICAgY2FzZSBcIkxcIjpcbiAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgIHJldHVybiBcIm1vbnRoXCI7XG4gICAgICBjYXNlIFwieVwiOlxuICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICBjYXNlIFwiRVwiOlxuICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla2RheVwiO1xuICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla051bWJlclwiO1xuICAgICAgY2FzZSBcImtcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla1llYXJcIjtcbiAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgIHJldHVybiBcInF1YXJ0ZXJcIjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBsZXQgem9uZSA9IG51bGw7XG4gIGxldCBzcGVjaWZpY09mZnNldDtcbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7XG4gICAgem9uZSA9IElBTkFab25lLmNyZWF0ZShtYXRjaGVzLnopO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLlopKSB7XG4gICAgaWYgKCF6b25lKSB7XG4gICAgICB6b25lID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZShtYXRjaGVzLlopO1xuICAgIH1cbiAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjtcbiAgfVxuXG4gIGlmICghaXNVbmRlZmluZWQobWF0Y2hlcy5xKSkge1xuICAgIG1hdGNoZXMuTSA9IChtYXRjaGVzLnEgLSAxKSAqIDMgKyAxO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLmgpKSB7XG4gICAgaWYgKG1hdGNoZXMuaCA8IDEyICYmIG1hdGNoZXMuYSA9PT0gMSkge1xuICAgICAgbWF0Y2hlcy5oICs9IDEyO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hlcy5oID09PSAxMiAmJiBtYXRjaGVzLmEgPT09IDApIHtcbiAgICAgIG1hdGNoZXMuaCA9IDA7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHtcbiAgICBtYXRjaGVzLnkgPSAtbWF0Y2hlcy55O1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnUpKSB7XG4gICAgbWF0Y2hlcy5TID0gcGFyc2VNaWxsaXMobWF0Y2hlcy51KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHMgPSBPYmplY3Qua2V5cyhtYXRjaGVzKS5yZWR1Y2UoKHIsIGspID0+IHtcbiAgICBjb25zdCBmID0gdG9GaWVsZChrKTtcbiAgICBpZiAoZikge1xuICAgICAgcltmXSA9IG1hdGNoZXNba107XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH0sIHt9KTtcblxuICByZXR1cm4gW3ZhbHMsIHpvbmUsIHNwZWNpZmljT2Zmc2V0XTtcbn1cblxubGV0IGR1bW15RGF0ZVRpbWVDYWNoZSA9IG51bGw7XG5cbmZ1bmN0aW9uIGdldER1bW15RGF0ZVRpbWUoKSB7XG4gIGlmICghZHVtbXlEYXRlVGltZUNhY2hlKSB7XG4gICAgZHVtbXlEYXRlVGltZUNhY2hlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcygxNTU1NTU1NTU1NTU1KTtcbiAgfVxuXG4gIHJldHVybiBkdW1teURhdGVUaW1lQ2FjaGU7XG59XG5cbmZ1bmN0aW9uIG1heWJlRXhwYW5kTWFjcm9Ub2tlbih0b2tlbiwgbG9jYWxlKSB7XG4gIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuLnZhbCk7XG5cbiAgaWYgKCFmb3JtYXRPcHRzKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0dGVyID0gRm9ybWF0dGVyLmNyZWF0ZShsb2NhbGUsIGZvcm1hdE9wdHMpO1xuICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXREYXRlVGltZVBhcnRzKGdldER1bW15RGF0ZVRpbWUoKSk7XG5cbiAgY29uc3QgdG9rZW5zID0gcGFydHMubWFwKChwKSA9PiB0b2tlbkZvclBhcnQocCwgbG9jYWxlLCBmb3JtYXRPcHRzKSk7XG5cbiAgaWYgKHRva2Vucy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuZnVuY3Rpb24gZXhwYW5kTWFjcm9Ub2tlbnModG9rZW5zLCBsb2NhbGUpIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4udG9rZW5zLm1hcCgodCkgPT4gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHQsIGxvY2FsZSkpKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgdG9rZW5zID0gZXhwYW5kTWFjcm9Ub2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZvcm1hdCksIGxvY2FsZSksXG4gICAgdW5pdHMgPSB0b2tlbnMubWFwKCh0KSA9PiB1bml0Rm9yVG9rZW4odCwgbG9jYWxlKSksXG4gICAgZGlzcXVhbGlmeWluZ1VuaXQgPSB1bml0cy5maW5kKCh0KSA9PiB0LmludmFsaWRSZWFzb24pO1xuXG4gIGlmIChkaXNxdWFsaWZ5aW5nVW5pdCkge1xuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIGludmFsaWRSZWFzb246IGRpc3F1YWxpZnlpbmdVbml0LmludmFsaWRSZWFzb24gfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBbcmVnZXhTdHJpbmcsIGhhbmRsZXJzXSA9IGJ1aWxkUmVnZXgodW5pdHMpLFxuICAgICAgcmVnZXggPSBSZWdFeHAocmVnZXhTdHJpbmcsIFwiaVwiKSxcbiAgICAgIFtyYXdNYXRjaGVzLCBtYXRjaGVzXSA9IG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpLFxuICAgICAgW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXRdID0gbWF0Y2hlc1xuICAgICAgICA/IGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcylcbiAgICAgICAgOiBbbnVsbCwgbnVsbCwgdW5kZWZpbmVkXTtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJhXCIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsIFwiSFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IGluY2x1ZGUgbWVyaWRpZW0gd2hlbiBzcGVjaWZ5aW5nIDI0LWhvdXIgZm9ybWF0XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIHJlZ2V4LCByYXdNYXRjaGVzLCBtYXRjaGVzLCByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0IH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgeyByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uIH0gPSBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpO1xuICByZXR1cm4gW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb25dO1xufVxuIiwgImltcG9ydCB7XG4gIGludGVnZXJCZXR3ZWVuLFxuICBpc0xlYXBZZWFyLFxuICB0aW1lT2JqZWN0LFxuICBkYXlzSW5ZZWFyLFxuICBkYXlzSW5Nb250aCxcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBpc0ludGVnZXIsXG59IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ludmFsaWQuanNcIjtcblxuY29uc3Qgbm9uTGVhcExhZGRlciA9IFswLCAzMSwgNTksIDkwLCAxMjAsIDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNF0sXG4gIGxlYXBMYWRkZXIgPSBbMCwgMzEsIDYwLCA5MSwgMTIxLCAxNTIsIDE4MiwgMjEzLCAyNDQsIDI3NCwgMzA1LCAzMzVdO1xuXG5mdW5jdGlvbiB1bml0T3V0T2ZSYW5nZSh1bml0LCB2YWx1ZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXG4gICAgXCJ1bml0IG91dCBvZiByYW5nZVwiLFxuICAgIGB5b3Ugc3BlY2lmaWVkICR7dmFsdWV9IChvZiB0eXBlICR7dHlwZW9mIHZhbHVlfSkgYXMgYSAke3VuaXR9LCB3aGljaCBpcyBpbnZhbGlkYFxuICApO1xufVxuXG5mdW5jdGlvbiBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSkge1xuICBjb25zdCBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTtcblxuICBpZiAoeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG5cbiAgY29uc3QganMgPSBkLmdldFVUQ0RheSgpO1xuXG4gIHJldHVybiBqcyA9PT0gMCA/IDcgOiBqcztcbn1cblxuZnVuY3Rpb24gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSkge1xuICByZXR1cm4gZGF5ICsgKGlzTGVhcFllYXIoeWVhcikgPyBsZWFwTGFkZGVyIDogbm9uTGVhcExhZGRlcilbbW9udGggLSAxXTtcbn1cblxuZnVuY3Rpb24gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSB7XG4gIGNvbnN0IHRhYmxlID0gaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyLFxuICAgIG1vbnRoMCA9IHRhYmxlLmZpbmRJbmRleCgoaSkgPT4gaSA8IG9yZGluYWwpLFxuICAgIGRheSA9IG9yZGluYWwgLSB0YWJsZVttb250aDBdO1xuICByZXR1cm4geyBtb250aDogbW9udGgwICsgMSwgZGF5IH07XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JlZ29yaWFuVG9XZWVrKGdyZWdPYmopIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnT2JqLFxuICAgIG9yZGluYWwgPSBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSxcbiAgICB3ZWVrZGF5ID0gZGF5T2ZXZWVrKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gIGxldCB3ZWVrTnVtYmVyID0gTWF0aC5mbG9vcigob3JkaW5hbCAtIHdlZWtkYXkgKyAxMCkgLyA3KSxcbiAgICB3ZWVrWWVhcjtcblxuICBpZiAod2Vla051bWJlciA8IDEpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgLSAxO1xuICAgIHdlZWtOdW1iZXIgPSB3ZWVrc0luV2Vla1llYXIod2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgKyAxO1xuICAgIHdlZWtOdW1iZXIgPSAxO1xuICB9IGVsc2Uge1xuICAgIHdlZWtZZWFyID0geWVhcjtcbiAgfVxuXG4gIHJldHVybiB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5LCAuLi50aW1lT2JqZWN0KGdyZWdPYmopIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrVG9HcmVnb3JpYW4od2Vla0RhdGEpIHtcbiAgY29uc3QgeyB3ZWVrWWVhciwgd2Vla051bWJlciwgd2Vla2RheSB9ID0gd2Vla0RhdGEsXG4gICAgd2Vla2RheU9mSmFuNCA9IGRheU9mV2Vlayh3ZWVrWWVhciwgMSwgNCksXG4gICAgeWVhckluRGF5cyA9IGRheXNJblllYXIod2Vla1llYXIpO1xuXG4gIGxldCBvcmRpbmFsID0gd2Vla051bWJlciAqIDcgKyB3ZWVrZGF5IC0gd2Vla2RheU9mSmFuNCAtIDMsXG4gICAgeWVhcjtcblxuICBpZiAob3JkaW5hbCA8IDEpIHtcbiAgICB5ZWFyID0gd2Vla1llYXIgLSAxO1xuICAgIG9yZGluYWwgKz0gZGF5c0luWWVhcih5ZWFyKTtcbiAgfSBlbHNlIGlmIChvcmRpbmFsID4geWVhckluRGF5cykge1xuICAgIHllYXIgPSB3ZWVrWWVhciArIDE7XG4gICAgb3JkaW5hbCAtPSBkYXlzSW5ZZWFyKHdlZWtZZWFyKTtcbiAgfSBlbHNlIHtcbiAgICB5ZWFyID0gd2Vla1llYXI7XG4gIH1cblxuICBjb25zdCB7IG1vbnRoLCBkYXkgfSA9IHVuY29tcHV0ZU9yZGluYWwoeWVhciwgb3JkaW5hbCk7XG4gIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXksIC4uLnRpbWVPYmplY3Qod2Vla0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub09yZGluYWwoZ3JlZ0RhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnRGF0YTtcbiAgY29uc3Qgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpO1xuICByZXR1cm4geyB5ZWFyLCBvcmRpbmFsLCAuLi50aW1lT2JqZWN0KGdyZWdEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3JkaW5hbFRvR3JlZ29yaWFuKG9yZGluYWxEYXRhKSB7XG4gIGNvbnN0IHsgeWVhciwgb3JkaW5hbCB9ID0gb3JkaW5hbERhdGE7XG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdChvcmRpbmFsRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRXZWVrRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai53ZWVrWWVhciksXG4gICAgdmFsaWRXZWVrID0gaW50ZWdlckJldHdlZW4ob2JqLndlZWtOdW1iZXIsIDEsIHdlZWtzSW5XZWVrWWVhcihvYmoud2Vla1llYXIpKSxcbiAgICB2YWxpZFdlZWtkYXkgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla2RheSwgMSwgNyk7XG5cbiAgaWYgKCF2YWxpZFllYXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrWWVhclwiLCBvYmoud2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWspIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrXCIsIG9iai53ZWVrKTtcbiAgfSBlbHNlIGlmICghdmFsaWRXZWVrZGF5KSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwid2Vla2RheVwiLCBvYmoud2Vla2RheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRPcmRpbmFsID0gaW50ZWdlckJldHdlZW4ob2JqLm9yZGluYWwsIDEsIGRheXNJblllYXIob2JqLnllYXIpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE9yZGluYWwpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJvcmRpbmFsXCIsIG9iai5vcmRpbmFsKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLFxuICAgIHZhbGlkTW9udGggPSBpbnRlZ2VyQmV0d2VlbihvYmoubW9udGgsIDEsIDEyKSxcbiAgICB2YWxpZERheSA9IGludGVnZXJCZXR3ZWVuKG9iai5kYXksIDEsIGRheXNJbk1vbnRoKG9iai55ZWFyLCBvYmoubW9udGgpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1vbnRoKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibW9udGhcIiwgb2JqLm1vbnRoKTtcbiAgfSBlbHNlIGlmICghdmFsaWREYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJkYXlcIiwgb2JqLmRheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkVGltZURhdGEob2JqKSB7XG4gIGNvbnN0IHsgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0gPSBvYmo7XG4gIGNvbnN0IHZhbGlkSG91ciA9XG4gICAgICBpbnRlZ2VyQmV0d2Vlbihob3VyLCAwLCAyMykgfHxcbiAgICAgIChob3VyID09PSAyNCAmJiBtaW51dGUgPT09IDAgJiYgc2Vjb25kID09PSAwICYmIG1pbGxpc2Vjb25kID09PSAwKSxcbiAgICB2YWxpZE1pbnV0ZSA9IGludGVnZXJCZXR3ZWVuKG1pbnV0ZSwgMCwgNTkpLFxuICAgIHZhbGlkU2Vjb25kID0gaW50ZWdlckJldHdlZW4oc2Vjb25kLCAwLCA1OSksXG4gICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpO1xuXG4gIGlmICghdmFsaWRIb3VyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwiaG91clwiLCBob3VyKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtaW51dGVcIiwgbWludXRlKTtcbiAgfSBlbHNlIGlmICghdmFsaWRTZWNvbmQpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJzZWNvbmRcIiwgc2Vjb25kKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaWxsaXNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbGxpc2Vjb25kXCIsIG1pbGxpc2Vjb25kKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cbiIsICJpbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgSW5mbyBmcm9tIFwiLi9pbmZvLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHtcbiAgaXNVbmRlZmluZWQsXG4gIG1heWJlQXJyYXksXG4gIGlzRGF0ZSxcbiAgaXNOdW1iZXIsXG4gIGJlc3RCeSxcbiAgZGF5c0luTW9udGgsXG4gIGRheXNJblllYXIsXG4gIGlzTGVhcFllYXIsXG4gIHdlZWtzSW5XZWVrWWVhcixcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxuICBvYmpUb0xvY2FsVFMsXG4gIHBhZFN0YXJ0LFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5pbXBvcnQgZGlmZiBmcm9tIFwiLi9pbXBsL2RpZmYuanNcIjtcbmltcG9ydCB7IHBhcnNlUkZDMjgyMkRhdGUsIHBhcnNlSVNPRGF0ZSwgcGFyc2VIVFRQRGF0ZSwgcGFyc2VTUUwgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBwYXJzZUZyb21Ub2tlbnMsIGV4cGxhaW5Gcm9tVG9rZW5zIH0gZnJvbSBcIi4vaW1wbC90b2tlblBhcnNlci5qc1wiO1xuaW1wb3J0IHtcbiAgZ3JlZ29yaWFuVG9XZWVrLFxuICB3ZWVrVG9HcmVnb3JpYW4sXG4gIGdyZWdvcmlhblRvT3JkaW5hbCxcbiAgb3JkaW5hbFRvR3JlZ29yaWFuLFxuICBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YSxcbiAgaGFzSW52YWxpZFdlZWtEYXRhLFxuICBoYXNJbnZhbGlkT3JkaW5hbERhdGEsXG4gIGhhc0ludmFsaWRUaW1lRGF0YSxcbn0gZnJvbSBcIi4vaW1wbC9jb252ZXJzaW9ucy5qc1wiO1xuaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9pbXBsL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7XG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcixcbiAgSW52YWxpZFVuaXRFcnJvcixcbiAgSW52YWxpZERhdGVUaW1lRXJyb3IsXG59IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgRGF0ZVRpbWVcIjtcbmNvbnN0IE1BWF9EQVRFID0gOC42NGUxNTtcblxuZnVuY3Rpb24gdW5zdXBwb3J0ZWRab25lKHpvbmUpIHtcbiAgcmV0dXJuIG5ldyBJbnZhbGlkKFwidW5zdXBwb3J0ZWQgem9uZVwiLCBgdGhlIHpvbmUgXCIke3pvbmUubmFtZX1cIiBpcyBub3Qgc3VwcG9ydGVkYCk7XG59XG5cbi8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlXG5mdW5jdGlvbiBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKGR0KSB7XG4gIGlmIChkdC53ZWVrRGF0YSA9PT0gbnVsbCkge1xuICAgIGR0LndlZWtEYXRhID0gZ3JlZ29yaWFuVG9XZWVrKGR0LmMpO1xuICB9XG4gIHJldHVybiBkdC53ZWVrRGF0YTtcbn1cblxuLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCBcIm1ha2UgYSBuZXcgb2JqZWN0IHdpdGggdGhlc2UgbW9kaWZpY2F0aW9uc1wiLiBhbGwgXCJzZXR0ZXJzXCIgcmVhbGx5IHVzZSB0aGlzXG4vLyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHdoaWxlIG9ubHkgY2hhbmdpbmcgc29tZSBvZiB0aGUgcHJvcGVydGllc1xuZnVuY3Rpb24gY2xvbmUoaW5zdCwgYWx0cykge1xuICBjb25zdCBjdXJyZW50ID0ge1xuICAgIHRzOiBpbnN0LnRzLFxuICAgIHpvbmU6IGluc3Quem9uZSxcbiAgICBjOiBpbnN0LmMsXG4gICAgbzogaW5zdC5vLFxuICAgIGxvYzogaW5zdC5sb2MsXG4gICAgaW52YWxpZDogaW5zdC5pbnZhbGlkLFxuICB9O1xuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgLi4uY3VycmVudCwgLi4uYWx0cywgb2xkOiBjdXJyZW50IH0pO1xufVxuXG4vLyBmaW5kIHRoZSByaWdodCBvZmZzZXQgYSBnaXZlbiBsb2NhbCB0aW1lLiBUaGUgbyBpbnB1dCBpcyBvdXIgZ3Vlc3MsIHdoaWNoIGRldGVybWluZXMgd2hpY2hcbi8vIG9mZnNldCB3ZSdsbCBwaWNrIGluIGFtYmlndW91cyBjYXNlcyAoZS5nLiB0aGVyZSBhcmUgdHdvIDMgQU1zIGIvYyBGYWxsYmFjayBEU1QpXG5mdW5jdGlvbiBmaXhPZmZzZXQobG9jYWxUUywgbywgdHopIHtcbiAgLy8gT3VyIFVUQyB0aW1lIGlzIGp1c3QgYSBndWVzcyBiZWNhdXNlIG91ciBvZmZzZXQgaXMganVzdCBhIGd1ZXNzXG4gIGxldCB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvICogNjAgKiAxMDAwO1xuXG4gIC8vIFRlc3Qgd2hldGhlciB0aGUgem9uZSBtYXRjaGVzIHRoZSBvZmZzZXQgZm9yIHRoaXMgdHNcbiAgY29uc3QgbzIgPSB0ei5vZmZzZXQodXRjR3Vlc3MpO1xuXG4gIC8vIElmIHNvLCBvZmZzZXQgZGlkbid0IGNoYW5nZSBhbmQgd2UncmUgZG9uZVxuICBpZiAobyA9PT0gbzIpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTtcbiAgfVxuXG4gIC8vIElmIG5vdCwgY2hhbmdlIHRoZSB0cyBieSB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgb2Zmc2V0XG4gIHV0Y0d1ZXNzIC09IChvMiAtIG8pICogNjAgKiAxMDAwO1xuXG4gIC8vIElmIHRoYXQgZ2l2ZXMgdXMgdGhlIGxvY2FsIHRpbWUgd2Ugd2FudCwgd2UncmUgZG9uZVxuICBjb25zdCBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG4gIGlmIChvMiA9PT0gbzMpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvMl07XG4gIH1cblxuICAvLyBJZiBpdCdzIGRpZmZlcmVudCwgd2UncmUgaW4gYSBob2xlIHRpbWUuIFRoZSBvZmZzZXQgaGFzIGNoYW5nZWQsIGJ1dCB0aGUgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lXG4gIHJldHVybiBbbG9jYWxUUyAtIE1hdGgubWluKG8yLCBvMykgKiA2MCAqIDEwMDAsIE1hdGgubWF4KG8yLCBvMyldO1xufVxuXG4vLyBjb252ZXJ0IGFuIGVwb2NoIHRpbWVzdGFtcCBpbnRvIGEgY2FsZW5kYXIgb2JqZWN0IHdpdGggdGhlIGdpdmVuIG9mZnNldFxuZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7XG4gIHRzICs9IG9mZnNldCAqIDYwICogMTAwMDtcblxuICBjb25zdCBkID0gbmV3IERhdGUodHMpO1xuXG4gIHJldHVybiB7XG4gICAgeWVhcjogZC5nZXRVVENGdWxsWWVhcigpLFxuICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLFxuICAgIGRheTogZC5nZXRVVENEYXRlKCksXG4gICAgaG91cjogZC5nZXRVVENIb3VycygpLFxuICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksXG4gICAgc2Vjb25kOiBkLmdldFVUQ1NlY29uZHMoKSxcbiAgICBtaWxsaXNlY29uZDogZC5nZXRVVENNaWxsaXNlY29uZHMoKSxcbiAgfTtcbn1cblxuLy8gY29udmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGVwb2NoIHRpbWVzdGFtcFxuZnVuY3Rpb24gb2JqVG9UUyhvYmosIG9mZnNldCwgem9uZSkge1xuICByZXR1cm4gZml4T2Zmc2V0KG9ialRvTG9jYWxUUyhvYmopLCBvZmZzZXQsIHpvbmUpO1xufVxuXG4vLyBjcmVhdGUgYSBuZXcgRFQgaW5zdGFuY2UgYnkgYWRkaW5nIGEgZHVyYXRpb24sIGFkanVzdGluZyBmb3IgRFNUc1xuZnVuY3Rpb24gYWRqdXN0VGltZShpbnN0LCBkdXIpIHtcbiAgY29uc3Qgb1ByZSA9IGluc3QubyxcbiAgICB5ZWFyID0gaW5zdC5jLnllYXIgKyBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgbW9udGggPSBpbnN0LmMubW9udGggKyBNYXRoLnRydW5jKGR1ci5tb250aHMpICsgTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpICogMyxcbiAgICBjID0ge1xuICAgICAgLi4uaW5zdC5jLFxuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5OlxuICAgICAgICBNYXRoLm1pbihpbnN0LmMuZGF5LCBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpICtcbiAgICAgICAgTWF0aC50cnVuYyhkdXIuZGF5cykgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci53ZWVrcykgKiA3LFxuICAgIH0sXG4gICAgbWlsbGlzVG9BZGQgPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtcbiAgICAgIHllYXJzOiBkdXIueWVhcnMgLSBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgICBxdWFydGVyczogZHVyLnF1YXJ0ZXJzIC0gTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpLFxuICAgICAgbW9udGhzOiBkdXIubW9udGhzIC0gTWF0aC50cnVuYyhkdXIubW9udGhzKSxcbiAgICAgIHdlZWtzOiBkdXIud2Vla3MgLSBNYXRoLnRydW5jKGR1ci53ZWVrcyksXG4gICAgICBkYXlzOiBkdXIuZGF5cyAtIE1hdGgudHJ1bmMoZHVyLmRheXMpLFxuICAgICAgaG91cnM6IGR1ci5ob3VycyxcbiAgICAgIG1pbnV0ZXM6IGR1ci5taW51dGVzLFxuICAgICAgc2Vjb25kczogZHVyLnNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHM6IGR1ci5taWxsaXNlY29uZHMsXG4gICAgfSkuYXMoXCJtaWxsaXNlY29uZHNcIiksXG4gICAgbG9jYWxUUyA9IG9ialRvTG9jYWxUUyhjKTtcblxuICBsZXQgW3RzLCBvXSA9IGZpeE9mZnNldChsb2NhbFRTLCBvUHJlLCBpbnN0LnpvbmUpO1xuXG4gIGlmIChtaWxsaXNUb0FkZCAhPT0gMCkge1xuICAgIHRzICs9IG1pbGxpc1RvQWRkO1xuICAgIC8vIHRoYXQgY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBvZmZzZXQgYnkgZ29pbmcgb3ZlciBhIERTVCwgYnV0IHdlIHdhbnQgdG8ga2VlcCB0aGUgdHMgdGhlIHNhbWVcbiAgICBvID0gaW5zdC56b25lLm9mZnNldCh0cyk7XG4gIH1cblxuICByZXR1cm4geyB0cywgbyB9O1xufVxuXG4vLyBoZWxwZXIgdXNlZnVsIGluIHR1cm5pbmcgdGhlIHJlc3VsdHMgb2YgcGFyc2luZyBpbnRvIHJlYWwgZGF0ZXNcbi8vIGJ5IGhhbmRsaW5nIHRoZSB6b25lIG9wdGlvbnNcbmZ1bmN0aW9uIHBhcnNlRGF0YVRvRGF0ZVRpbWUocGFyc2VkLCBwYXJzZWRab25lLCBvcHRzLCBmb3JtYXQsIHRleHQsIHNwZWNpZmljT2Zmc2V0KSB7XG4gIGNvbnN0IHsgc2V0Wm9uZSwgem9uZSB9ID0gb3B0cztcbiAgaWYgKHBhcnNlZCAmJiBPYmplY3Qua2V5cyhwYXJzZWQpLmxlbmd0aCAhPT0gMCkge1xuICAgIGNvbnN0IGludGVycHJldGF0aW9uWm9uZSA9IHBhcnNlZFpvbmUgfHwgem9uZSxcbiAgICAgIGluc3QgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHBhcnNlZCwge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICB6b25lOiBpbnRlcnByZXRhdGlvblpvbmUsXG4gICAgICAgIHNwZWNpZmljT2Zmc2V0LFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHNldFpvbmUgPyBpbnN0IDogaW5zdC5zZXRab25lKHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgbmV3IEludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzICR7Zm9ybWF0fWApXG4gICAgKTtcbiAgfVxufVxuXG4vLyBpZiB5b3Ugd2FudCB0byBvdXRwdXQgYSB0ZWNobmljYWwgZm9ybWF0IChlLmcuIFJGQyAyODIyKSwgdGhpcyBoZWxwZXJcbi8vIGhlbHBzIGhhbmRsZSB0aGUgZGV0YWlsc1xuZnVuY3Rpb24gdG9UZWNoRm9ybWF0KGR0LCBmb3JtYXQsIGFsbG93WiA9IHRydWUpIHtcbiAgcmV0dXJuIGR0LmlzVmFsaWRcbiAgICA/IEZvcm1hdHRlci5jcmVhdGUoTG9jYWxlLmNyZWF0ZShcImVuLVVTXCIpLCB7XG4gICAgICAgIGFsbG93WixcbiAgICAgICAgZm9yY2VTaW1wbGU6IHRydWUsXG4gICAgICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdClcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIHRvSVNPRGF0ZShvLCBleHRlbmRlZCkge1xuICBjb25zdCBsb25nRm9ybWF0ID0gby5jLnllYXIgPiA5OTk5IHx8IG8uYy55ZWFyIDwgMDtcbiAgbGV0IGMgPSBcIlwiO1xuICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9IFwiK1wiO1xuICBjICs9IHBhZFN0YXJ0KG8uYy55ZWFyLCBsb25nRm9ybWF0ID8gNiA6IDQpO1xuXG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubW9udGgpO1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gdG9JU09UaW1lKFxuICBvLFxuICBleHRlbmRlZCxcbiAgc3VwcHJlc3NTZWNvbmRzLFxuICBzdXBwcmVzc01pbGxpc2Vjb25kcyxcbiAgaW5jbHVkZU9mZnNldCxcbiAgZXh0ZW5kZWRab25lXG4pIHtcbiAgbGV0IGMgPSBwYWRTdGFydChvLmMuaG91cik7XG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCI6XCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTtcbiAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgICBjICs9IFwiOlwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICB9XG5cbiAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7XG5cbiAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykge1xuICAgICAgYyArPSBcIi5cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDAgJiYgIWV4dGVuZGVkWm9uZSkge1xuICAgICAgYyArPSBcIlpcIjtcbiAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHtcbiAgICAgIGMgKz0gXCItXCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gJSA2MCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjICs9IFwiK1wiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAlIDYwKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGV4dGVuZGVkWm9uZSkge1xuICAgIGMgKz0gXCJbXCIgKyBvLnpvbmUuaWFuYU5hbWUgKyBcIl1cIjtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzXG5jb25zdCBkZWZhdWx0VW5pdFZhbHVlcyA9IHtcbiAgICBtb250aDogMSxcbiAgICBkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7XG4gICAgd2Vla051bWJlcjogMSxcbiAgICB3ZWVrZGF5OiAxLFxuICAgIGhvdXI6IDAsXG4gICAgbWludXRlOiAwLFxuICAgIHNlY29uZDogMCxcbiAgICBtaWxsaXNlY29uZDogMCxcbiAgfSxcbiAgZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzID0ge1xuICAgIG9yZGluYWw6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9O1xuXG4vLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3NcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcInllYXJcIiwgXCJtb250aFwiLCBcImRheVwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSxcbiAgb3JkZXJlZFdlZWtVbml0cyA9IFtcbiAgICBcIndlZWtZZWFyXCIsXG4gICAgXCJ3ZWVrTnVtYmVyXCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJtaW51dGVcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwibWlsbGlzZWNvbmRcIixcbiAgXSxcbiAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFtcInllYXJcIiwgXCJvcmRpbmFsXCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdO1xuXG4vLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgIHllYXI6IFwieWVhclwiLFxuICAgIHllYXJzOiBcInllYXJcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG1vbnRoczogXCJtb250aFwiLFxuICAgIGRheTogXCJkYXlcIixcbiAgICBkYXlzOiBcImRheVwiLFxuICAgIGhvdXI6IFwiaG91clwiLFxuICAgIGhvdXJzOiBcImhvdXJcIixcbiAgICBtaW51dGU6IFwibWludXRlXCIsXG4gICAgbWludXRlczogXCJtaW51dGVcIixcbiAgICBxdWFydGVyOiBcInF1YXJ0ZXJcIixcbiAgICBxdWFydGVyczogXCJxdWFydGVyXCIsXG4gICAgc2Vjb25kOiBcInNlY29uZFwiLFxuICAgIHNlY29uZHM6IFwic2Vjb25kXCIsXG4gICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRcIixcbiAgICB3ZWVrZGF5OiBcIndlZWtkYXlcIixcbiAgICB3ZWVrZGF5czogXCJ3ZWVrZGF5XCIsXG4gICAgd2Vla251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla3NudW1iZXI6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWtudW1iZXJzOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVreWVhcjogXCJ3ZWVrWWVhclwiLFxuICAgIHdlZWt5ZWFyczogXCJ3ZWVrWWVhclwiLFxuICAgIG9yZGluYWw6IFwib3JkaW5hbFwiLFxuICB9W3VuaXQudG9Mb3dlckNhc2UoKV07XG5cbiAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyXG4vLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzXG4vLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLlxuZnVuY3Rpb24gcXVpY2tEVChvYmosIG9wdHMpIHtcbiAgY29uc3Qgem9uZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyksXG4gICAgdHNOb3cgPSBTZXR0aW5ncy5ub3coKTtcblxuICBsZXQgdHMsIG87XG5cbiAgLy8gYXNzdW1lIHdlIGhhdmUgdGhlIGhpZ2hlci1vcmRlciB1bml0c1xuICBpZiAoIWlzVW5kZWZpbmVkKG9iai55ZWFyKSkge1xuICAgIGZvciAoY29uc3QgdSBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChpc1VuZGVmaW5lZChvYmpbdV0pKSB7XG4gICAgICAgIG9ialt1XSA9IGRlZmF1bHRVbml0VmFsdWVzW3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHx8IGhhc0ludmFsaWRUaW1lRGF0YShvYmopO1xuICAgIGlmIChpbnZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXRQcm92aXMgPSB6b25lLm9mZnNldCh0c05vdyk7XG4gICAgW3RzLCBvXSA9IG9ialRvVFMob2JqLCBvZmZzZXRQcm92aXMsIHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHRzID0gdHNOb3c7XG4gIH1cblxuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgdHMsIHpvbmUsIGxvYywgbyB9KTtcbn1cblxuZnVuY3Rpb24gZGlmZlJlbGF0aXZlKHN0YXJ0LCBlbmQsIG9wdHMpIHtcbiAgY29uc3Qgcm91bmQgPSBpc1VuZGVmaW5lZChvcHRzLnJvdW5kKSA/IHRydWUgOiBvcHRzLnJvdW5kLFxuICAgIGZvcm1hdCA9IChjLCB1bml0KSA9PiB7XG4gICAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGVuZC5sb2MuY2xvbmUob3B0cykucmVsRm9ybWF0dGVyKG9wdHMpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQoYywgdW5pdCk7XG4gICAgfSxcbiAgICBkaWZmZXIgPSAodW5pdCkgPT4ge1xuICAgICAgaWYgKG9wdHMuY2FsZW5kYXJ5KSB7XG4gICAgICAgIGlmICghZW5kLmhhc1NhbWUoc3RhcnQsIHVuaXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZC5zdGFydE9mKHVuaXQpLmRpZmYoc3RhcnQuc3RhcnRPZih1bml0KSwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsIHVuaXQpLmdldCh1bml0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGlmIChvcHRzLnVuaXQpIHtcbiAgICByZXR1cm4gZm9ybWF0KGRpZmZlcihvcHRzLnVuaXQpLCBvcHRzLnVuaXQpO1xuICB9XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIG9wdHMudW5pdHMpIHtcbiAgICBjb25zdCBjb3VudCA9IGRpZmZlcih1bml0KTtcbiAgICBpZiAoTWF0aC5hYnMoY291bnQpID49IDEpIHtcbiAgICAgIHJldHVybiBmb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybWF0KHN0YXJ0ID4gZW5kID8gLTAgOiAwLCBvcHRzLnVuaXRzW29wdHMudW5pdHMubGVuZ3RoIC0gMV0pO1xufVxuXG5mdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7XG4gIGxldCBvcHRzID0ge30sXG4gICAgYXJncztcbiAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSBcIm9iamVjdFwiKSB7XG4gICAgb3B0cyA9IGFyZ0xpc3RbYXJnTGlzdC5sZW5ndGggLSAxXTtcbiAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KS5zbGljZSgwLCBhcmdMaXN0Lmxlbmd0aCAtIDEpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpO1xuICB9XG4gIHJldHVybiBbb3B0cywgYXJnc107XG59XG5cbi8qKlxuICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLlxuICpcbiAqIEEgRGF0ZVRpbWUgY29tcHJpc2VzIG9mOlxuICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC5cbiAqICogQSB0aW1lIHpvbmUuIEVhY2ggaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHpvbmUgKGJ5IGRlZmF1bHQgdGhlIGxvY2FsIHN5c3RlbSdzIHpvbmUpLlxuICogKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBlZmZlY3QgaG93IG91dHB1dCBzdHJpbmdzIGFyZSBmb3JtYXR0ZWQsIHN1Y2ggYXMgYGxvY2FsZWAsIGBudW1iZXJpbmdTeXN0ZW1gLCBhbmQgYG91dHB1dENhbGVuZGFyYC5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbmFsaXR5IGl0IHByb3ZpZGVzOlxuICpcbiAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZSNsb2NhbH0sIHtAbGluayBEYXRlVGltZSN1dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZSNmcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lI2Zyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZSNmcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSlNEYXRlfS5cbiAqICogKipHcmVnb3JpYW4gY2FsZW5kYXIgYW5kIHRpbWUqKjogVG8gZXhhbWluZSB0aGUgR3JlZ29yaWFuIHByb3BlcnRpZXMgb2YgYSBEYXRlVGltZSBpbmRpdmlkdWFsbHkgKGkuZSBhcyBvcHBvc2VkIHRvIGNvbGxlY3RpdmVseSB0aHJvdWdoIHtAbGluayBEYXRlVGltZSN0b09iamVjdH0pLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN5ZWFyfSwge0BsaW5rIERhdGVUaW1lI21vbnRofSxcbiAqIHtAbGluayBEYXRlVGltZSNkYXl9LCB7QGxpbmsgRGF0ZVRpbWUjaG91cn0sIHtAbGluayBEYXRlVGltZSNtaW51dGV9LCB7QGxpbmsgRGF0ZVRpbWUjc2Vjb25kfSwge0BsaW5rIERhdGVUaW1lI21pbGxpc2Vjb25kfSBhY2Nlc3NvcnMuXG4gKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLlxuICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgdGhlIHtAbGluayBEYXRlVGltZSNsb2NhbGV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKjogVG8gdHJhbnNmb3JtIHRoZSBEYXRlVGltZSBpbnRvIG90aGVyIERhdGVUaW1lcywgdXNlIHtAbGluayBEYXRlVGltZSNzZXR9LCB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9LCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0sIHtAbGluayBEYXRlVGltZSNzZXRMb2NhbGV9LCB7QGxpbmsgRGF0ZVRpbWUucGx1c30sIHtAbGluayBEYXRlVGltZSNtaW51c30sIHtAbGluayBEYXRlVGltZSNlbmRPZn0sIHtAbGluayBEYXRlVGltZSNzdGFydE9mfSwge0BsaW5rIERhdGVUaW1lI3RvVVRDfSwgYW5kIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfS5cbiAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uXG4gKlxuICogVGhlcmUncyBwbGVudHkgb3RoZXJzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uLCB0aW1lIHpvbmVzLCBhbHRlcm5hdGl2ZSBjYWxlbmRhcnMsIHZhbGlkaXR5LCBhbmQgc28gb24sIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0ZVRpbWUge1xuICAvKipcbiAgICogQGFjY2VzcyBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCB6b25lID0gY29uZmlnLnpvbmUgfHwgU2V0dGluZ3MuZGVmYXVsdFpvbmU7XG5cbiAgICBsZXQgaW52YWxpZCA9XG4gICAgICBjb25maWcuaW52YWxpZCB8fFxuICAgICAgKE51bWJlci5pc05hTihjb25maWcudHMpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbCkgfHxcbiAgICAgICghem9uZS5pc1ZhbGlkID8gdW5zdXBwb3J0ZWRab25lKHpvbmUpIDogbnVsbCk7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy50cyA9IGlzVW5kZWZpbmVkKGNvbmZpZy50cykgPyBTZXR0aW5ncy5ub3coKSA6IGNvbmZpZy50cztcblxuICAgIGxldCBjID0gbnVsbCxcbiAgICAgIG8gPSBudWxsO1xuICAgIGlmICghaW52YWxpZCkge1xuICAgICAgY29uc3QgdW5jaGFuZ2VkID0gY29uZmlnLm9sZCAmJiBjb25maWcub2xkLnRzID09PSB0aGlzLnRzICYmIGNvbmZpZy5vbGQuem9uZS5lcXVhbHMoem9uZSk7XG5cbiAgICAgIGlmICh1bmNoYW5nZWQpIHtcbiAgICAgICAgW2MsIG9dID0gW2NvbmZpZy5vbGQuYywgY29uZmlnLm9sZC5vXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG90ID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGMgPSB0c1RvT2JqKHRoaXMudHMsIG90KTtcbiAgICAgICAgaW52YWxpZCA9IE51bWJlci5pc05hTihjLnllYXIpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbDtcbiAgICAgICAgYyA9IGludmFsaWQgPyBudWxsIDogYztcbiAgICAgICAgbyA9IGludmFsaWQgPyBudWxsIDogb3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5fem9uZSA9IHpvbmU7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBpbnZhbGlkO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMud2Vla0RhdGEgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuYyA9IGM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5vID0gbztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EYXRlVGltZSA9IHRydWU7XG4gIH1cblxuICAvLyBDT05TVFJVQ1RcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZm9yIHRoZSBjdXJyZW50IGluc3RhbnQsIGluIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUuXG4gICAqXG4gICAqIFVzZSBTZXR0aW5ncyB0byBvdmVycmlkZSB0aGVzZSBkZWZhdWx0IHZhbHVlcyBpZiBuZWVkZWQuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy9+PiBub3cgaW4gdGhlIElTTyBmb3JtYXRcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbm93KCkge1xuICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGxvY2FsIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYGxvY2FsKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaW51dGU9MF0gLSBUaGUgbWludXRlIG9mIHRoZSBob3VyLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWNvbmQ9MF0gLSBUaGUgc2Vjb25kIG9mIHRoZSBtaW51dGUsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCh7IHpvbmU6IFwiQW1lcmljYS9OZXdfWW9ya1wiIH0pICAgICAgLy9+PiBub3csIGluIFVTIGVhc3QgY29hc3QgdGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwLCB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiBcInV0Y1wiIH0pICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwLCBpbiBVVENcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1KSAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCkgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1KSAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1XG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGxvY2FsKCkge1xuICAgIGNvbnN0IFtvcHRzLCBhcmdzXSA9IGxhc3RPcHRzKGFyZ3VtZW50cyksXG4gICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXSA9IGFyZ3M7XG4gICAgcmV0dXJuIHF1aWNrRFQoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgaW4gVVRDXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYHV0YygpYCB3aXRoIG5vIGFyZ3VtZW50cyksIHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB1c2VkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm91dHB1dENhbGVuZGFyXSAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm51bWJlcmluZ1N5c3RlbV0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDEtMDFUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1WiB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyB1dGMoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcblxuICAgIG9wdHMuem9uZSA9IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZTtcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdC4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge0RhdGV9IGRhdGUgLSBhIEphdmFTY3JpcHQgRGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTRGF0ZShkYXRlLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0cyA9IGlzRGF0ZShkYXRlKSA/IGRhdGUudmFsdWVPZigpIDogTmFOO1xuICAgIGlmIChOdW1iZXIuaXNOYU4odHMpKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcImludmFsaWQgaW5wdXRcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICB0czogdHMsXG4gICAgICB6b25lOiB6b25lVG9Vc2UsXG4gICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghaXNOdW1iZXIobWlsbGlzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgZnJvbU1pbGxpcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCwgYnV0IHJlY2VpdmVkIGEgJHt0eXBlb2YgbWlsbGlzZWNvbmRzfSB3aXRoIHZhbHVlICR7bWlsbGlzZWNvbmRzfWBcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPCAtTUFYX0RBVEUgfHwgbWlsbGlzZWNvbmRzID4gTUFYX0RBVEUpIHtcbiAgICAgIC8vIHRoaXMgaXNuJ3QgcGVyZmVjdCBiZWNhdXNlIGJlY2F1c2Ugd2UgY2FuIHN0aWxsIGVuZCB1cCBvdXQgb2YgcmFuZ2UgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHNoaWZ0aW5nLCBidXQgaXQncyBhIHN0YXJ0XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcIlRpbWVzdGFtcCBvdXQgb2YgcmFuZ2VcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogbWlsbGlzZWNvbmRzLFxuICAgICAgICB6b25lOiBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpLFxuICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2ggKG1lYW5pbmcgc2luY2UgMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Vjb25kcyAtIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNlY29uZHMoc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwiZnJvbVNlY29uZHMgcmVxdWlyZXMgYSBudW1lcmljYWwgaW5wdXRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogc2Vjb25kcyAqIDEwMDAsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFyJyBhbmQgJ2hvdXInIHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gY3JlYXRlIHRoZSBEYXRlVGltZSBmcm9tXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhciAtIGEgeWVhciwgc3VjaCBhcyAxOTg3XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubW9udGggLSBhIG1vbnRoLCAxLTEyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5IC0gYSBkYXkgb2YgdGhlIG1vbnRoLCAxLTMxLCBkZXBlbmRpbmcgb24gdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoub3JkaW5hbCAtIGRheSBvZiB0aGUgeWVhciwgMS0zNjUgb3IgMzY2XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla1llYXIgLSBhbiBJU08gd2VlayB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla051bWJlciAtIGFuIElTTyB3ZWVrIG51bWJlciwgYmV0d2VlbiAxIGFuZCA1MiBvciA1MywgZGVwZW5kaW5nIG9uIHRoZSB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla2RheSAtIGFuIElTTyB3ZWVrZGF5LCAxLTcsIHdoZXJlIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmhvdXIgLSBob3VyIG9mIHRoZSBkYXksIDAtMjNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGUgLSBtaW51dGUgb2YgdGhlIGhvdXIsIDAtNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmQgLSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbGxpc2Vjb25kIC0gbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgMC05OTlcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBpbnRlcnByZXQgdGhlIG51bWJlcnMgaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyIHpvbmUuIENhbiB0YWtlIGFueSB2YWx1ZSB0YWtlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc2V0Wm9uZSgpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyLCBtb250aDogNSwgZGF5OiAyNX0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDEtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0pIC8vfj4gdG9kYXkgYXQgMTA6MjY6MDZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAndXRjJyB9KSxcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnbG9jYWwnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB3ZWVrWWVhcjogMjAxNiwgd2Vla051bWJlcjogMiwgd2Vla2RheTogMyB9KS50b0lTT0RhdGUoKSAvLz0+ICcyMDE2LTAxLTEzJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tT2JqZWN0KG9iaiwgb3B0cyA9IHt9KSB7XG4gICAgb2JqID0gb2JqIHx8IHt9O1xuICAgIGNvbnN0IHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gICAgaWYgKCF6b25lVG9Vc2UuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHRzTm93ID0gU2V0dGluZ3Mubm93KCksXG4gICAgICBvZmZzZXRQcm92aXMgPSAhaXNVbmRlZmluZWQob3B0cy5zcGVjaWZpY09mZnNldClcbiAgICAgICAgPyBvcHRzLnNwZWNpZmljT2Zmc2V0XG4gICAgICAgIDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksXG4gICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KG9iaiwgbm9ybWFsaXplVW5pdCksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLFxuICAgICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyk7XG5cbiAgICAvLyBjYXNlczpcbiAgICAvLyBqdXN0IGEgd2Vla2RheSAtPiB0aGlzIHdlZWsncyBpbnN0YW5jZSBvZiB0aGF0IHdlZWtkYXksIG5vIHdvcnJpZXNcbiAgICAvLyAoZ3JlZ29yaWFuIGRhdGEgb3Igb3JkaW5hbCkgKyAod2Vla1llYXIgb3Igd2Vla051bWJlcikgLT4gZXJyb3JcbiAgICAvLyAoZ3JlZ29yaWFuIG1vbnRoIG9yIGRheSkgKyBvcmRpbmFsIC0+IGVycm9yXG4gICAgLy8gb3RoZXJ3aXNlIGp1c3QgdXNlIHdlZWtzIG9yIG9yZGluYWxzIG9yIGdyZWdvcmlhbiwgZGVwZW5kaW5nIG9uIHdoYXQncyBzcGVjaWZpZWRcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VXZWVrRGF0YSA9IGRlZmluaXRlV2Vla0RlZiB8fCAobm9ybWFsaXplZC53ZWVrZGF5ICYmICFjb250YWluc0dyZWdvcik7XG5cbiAgICAvLyBjb25maWd1cmUgb3Vyc2VsdmVzIHRvIGRlYWwgd2l0aCBncmVnb3JpYW4gZGF0ZXMgb3Igd2VlayBzdHVmZlxuICAgIGxldCB1bml0cyxcbiAgICAgIGRlZmF1bHRWYWx1ZXMsXG4gICAgICBvYmpOb3cgPSB0c1RvT2JqKHRzTm93LCBvZmZzZXRQcm92aXMpO1xuICAgIGlmICh1c2VXZWVrRGF0YSkge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkV2Vla1VuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRXZWVrVW5pdFZhbHVlcztcbiAgICAgIG9iak5vdyA9IGdyZWdvcmlhblRvV2VlayhvYmpOb3cpO1xuICAgIH0gZWxzZSBpZiAoY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRPcmRpbmFsVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9PcmRpbmFsKG9iak5vdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZFVuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRVbml0VmFsdWVzO1xuICAgIH1cblxuICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBzdHVmZlxuICAgIGxldCBmb3VuZEZpcnN0ID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCB1IG9mIHVuaXRzKSB7XG4gICAgICBjb25zdCB2ID0gbm9ybWFsaXplZFt1XTtcbiAgICAgIGlmICghaXNVbmRlZmluZWQodikpIHtcbiAgICAgICAgZm91bmRGaXJzdCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGZvdW5kRmlyc3QpIHtcbiAgICAgICAgbm9ybWFsaXplZFt1XSA9IGRlZmF1bHRWYWx1ZXNbdV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gb2JqTm93W3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIHdlIGhhdmUgYXJlIGluIHJhbmdlXG4gICAgY29uc3QgaGlnaGVyT3JkZXJJbnZhbGlkID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyBoYXNJbnZhbGlkV2Vla0RhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBoYXNJbnZhbGlkT3JkaW5hbERhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShub3JtYWxpemVkKSxcbiAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpO1xuXG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIC8vIGNvbXB1dGUgdGhlIGFjdHVhbCB0aW1lXG4gICAgY29uc3QgZ3JlZ29yaWFuID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyB3ZWVrVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBvcmRpbmFsVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBub3JtYWxpemVkLFxuICAgICAgW3RzRmluYWwsIG9mZnNldEZpbmFsXSA9IG9ialRvVFMoZ3JlZ29yaWFuLCBvZmZzZXRQcm92aXMsIHpvbmVUb1VzZSksXG4gICAgICBpbnN0ID0gbmV3IERhdGVUaW1lKHtcbiAgICAgICAgdHM6IHRzRmluYWwsXG4gICAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgICAgbzogb2Zmc2V0RmluYWwsXG4gICAgICAgIGxvYyxcbiAgICAgIH0pO1xuXG4gICAgLy8gZ3JlZ29yaWFuIGRhdGEgKyB3ZWVrZGF5IHNlcnZlcyBvbmx5IHRvIHZhbGlkYXRlXG4gICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcbiAgICAgICAgXCJtaXNtYXRjaGVkIHdlZWtkYXlcIixcbiAgICAgICAgYHlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICR7bm9ybWFsaXplZC53ZWVrZGF5fSBhbmQgYSBkYXRlIG9mICR7aW5zdC50b0lTTygpfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBJU08gODYwMSBzdHJpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnLCB7em9uZTogJ3V0Yyd9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LVcwNS00JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUlTT0RhdGUodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJJU08gODYwMVwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBSRkMgMjgyMiBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSB0aGUgb2Zmc2V0IGlzIGFsd2F5cyBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIHRoaXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgaW50ZXJwcmV0YXRpb24gb2Ygc3RyaW5nLCBtZXJlbHkgdGhlIHpvbmUgdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpcyBleHByZXNzZWQgaW4uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMzoxMiBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tUkZDMjgyMignRnJpLCAyNSBOb3YgMjAxNiAxMzoyMzoxMiArMDYwMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMyBaJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVJGQzI4MjIodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VSRkMyODIyRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlJGQyAyODIyXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gSFRUUCBoZWFkZXIgZGF0ZVxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZS4gU2luY2UgSFRUUCBkYXRlcyBhcmUgYWx3YXlzIGluIFVUQywgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggdGhlIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nLiBGb3IgSFRUUCBkYXRlcywgdGhpcyBpcyBhbHdheXMgVVRDLCBzbyB0aGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhlIGB6b25lYCBvcHRpb24gdG8gJ3V0YycsIGJ1dCB0aGlzIG9wdGlvbiBpcyBpbmNsdWRlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCBzaW1pbGFyIG1ldGhvZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4sIDA2IE5vdiAxOTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW5kYXksIDA2LU5vdi05NCAwODo0OTozNyBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuIE5vdiAgNiAwODo0OTozNyAxOTk0JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUhUVFAodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VIVFRQRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIkhUVFBcIiwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBpbnB1dCBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmcuXG4gICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvcGFyc2luZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIHRoZSBsaW5rIGJlbG93IGZvciB0aGUgZm9ybWF0cylcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIHVzZSB0aGlzIHpvbmUgaWYgbm8gb2Zmc2V0IGlzIHNwZWNpZmllZCBpbiB0aGUgaW5wdXQgc3RyaW5nIGl0c2VsZi4gV2lsbCBhbHNvIGNvbnZlcnQgdGhlIERhdGVUaW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSBhIGxvY2FsZSBzdHJpbmcgdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIHRvIHRoaXMgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tRm9ybWF0IHJlcXVpcmVzIGFuIGlucHV0IHN0cmluZyBhbmQgYSBmb3JtYXRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRzLFxuICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoe1xuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG51bWJlcmluZ1N5c3RlbSxcbiAgICAgICAgZGVmYXVsdFRvRU46IHRydWUsXG4gICAgICB9KSxcbiAgICAgIFt2YWxzLCBwYXJzZWRab25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZF0gPSBwYXJzZUZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBgZm9ybWF0ICR7Zm10fWAsIHRleHQsIHNwZWNpZmljT2Zmc2V0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXQgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBTUUwgZGF0ZSwgdGltZSwgb3IgZGF0ZXRpbWVcbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIgQW1lcmljYS9Mb3NfQW5nZWxlcycsIHsgc2V0Wm9uZTogdHJ1ZSB9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MicsIHsgem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzA5OjEyOjM0LjM0MicpXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21TUUwodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VTUUwodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJTUUxcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGludmFsaWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIERhdGVUaW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7XG4gICAgaWYgKCFyZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRGF0ZVRpbWUgaXMgaW52YWxpZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pO1xuXG4gICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGVUaW1lRXJyb3IoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoeyBpbnZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZVRpbWUuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0RhdGVUaW1lKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRGF0ZVRpbWUpIHx8IGZhbHNlO1xuICB9XG5cbiAgLy8gSU5GT1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZScgb3IgJ2RheSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdtb250aCcpOyAvLz0+IDdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdkYXknKTsgLy89PiA0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbdW5pdF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyB2YWxpZC4gSW52YWxpZCBEYXRlVGltZXMgb2NjdXIgd2hlbjpcbiAgICogKiBUaGUgRGF0ZVRpbWUgd2FzIGNyZWF0ZWQgZnJvbSBpbnZhbGlkIGNhbGVuZGFyIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSAxM3RoIG1vbnRoIG9yIEZlYnJ1YXJ5IDMwXG4gICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGJ5IGFuIG9wZXJhdGlvbiBvbiBhbm90aGVyIGludmFsaWQgZGF0ZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkUmVhc29uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQucmVhc29uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIERhdGVUaW1lLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgb3V0cHV0IGNhbGVuZGFyIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2lzbGFtaWMnLiBUaGUgb3V0cHV0IGNhbGVuZGFyIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEB0eXBlIHtab25lfVxuICAgKi9cbiAgZ2V0IHpvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgem9uZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5uYW1lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnllYXIgLy89PiAyMDE3XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnllYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5xdWFydGVyIC8vPT4gMlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHF1YXJ0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoICgxLTEyKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1vbnRoKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubW9udGggOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLmRheSAvLz0+IDI1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuZGF5IDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91ciBvZiB0aGUgZGF5ICgwLTIzKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDkpLmhvdXIgLy89PiA5XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGUgb2YgdGhlIGhvdXIgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWludXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWludXRlIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyKS5zZWNvbmQgLy89PiA1MlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHNlY29uZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnNlY29uZCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQgKDAtOTk5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1MiwgNjU0KS5taWxsaXNlY29uZCAvLz0+IDY1NFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbGxpc2Vjb25kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDEyLCAzMSkud2Vla1llYXIgLy89PiAyMDE1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla1llYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgd2VlayB5ZWFyICgxLTUyaXNoKS5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjFcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtOdW1iZXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuXG4gICAqIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla2RheSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcilcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm9yZGluYWwgLy89PiAxNDVcbiAgICogQHR5cGUge251bWJlcnxEYXRlVGltZX1cbiAgICovXG4gIGdldCBvcmRpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKS5vcmRpbmFsIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0Jy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG1vbnRoU2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKFwic2hvcnRcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdG9iZXInLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbW9udGhMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocyhcImxvbmdcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCB3ZWVrZGF5LCBzdWNoIGFzICdNb24nLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB3ZWVrZGF5U2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoXCJzaG9ydFwiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyB3ZWVrZGF5LCBzdWNoIGFzICdNb25kYXknLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheVxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXlMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKFwibG9uZ1wiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgVVRDIG9mZnNldCBvZiB0aGlzIERhdGVUaW1lIGluIG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkub2Zmc2V0IC8vPT4gLTI0MFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgb2Zmc2V0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyArdGhpcy5vIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgXCJFU1RcIiBvciBcIkVEVFwiLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvZmZzZXROYW1lU2hvcnQoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHtcbiAgICAgICAgZm9ybWF0OiBcInNob3J0XCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9uZyBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSBcIkVhc3Rlcm4gU3RhbmRhcmQgVGltZVwiIG9yIFwiRWFzdGVybiBEYXlsaWdodCBUaW1lXCIuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG9mZnNldE5hbWVMb25nKCkge1xuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvbmUub2Zmc2V0TmFtZSh0aGlzLnRzLCB7XG4gICAgICAgIGZvcm1hdDogXCJsb25nXCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoaXMgem9uZSdzIG9mZnNldCBldmVyIGNoYW5nZXMsIGFzIGluIGEgRFNULlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc09mZnNldEZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUuaXNVbml2ZXJzYWwgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyBpbiBhIERTVC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkRTVCgpIHtcbiAgICBpZiAodGhpcy5pc09mZnNldEZpeGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogMSwgZGF5OiAxIH0pLm9mZnNldCB8fFxuICAgICAgICB0aGlzLm9mZnNldCA+IHRoaXMuc2V0KHsgbW9udGg6IDUgfSkub2Zmc2V0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbiBhIGxlYXAgeWVhciwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmlzSW5MZWFwWWVhciAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuaXNJbkxlYXBZZWFyIC8vPT4gZmFsc2VcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkxlYXBZZWFyKCkge1xuICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIG1vbnRoXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYsIDIpLmRheXNJbk1vbnRoIC8vPT4gMjlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMykuZGF5c0luTW9udGggLy89PiAzMVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJbk1vbnRoKCkge1xuICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIsIHRoaXMubW9udGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyB5ZWFyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmRheXNJblllYXIgLy89PiAzNjZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuZGF5c0luWWVhciAvLz0+IDM2NVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJblllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGRheXNJblllYXIodGhpcy55ZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMDQpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUyXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3NJbldlZWtZZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB3ZWVrc0luV2Vla1llYXIodGhpcy53ZWVrWWVhcikgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgSW50bCBvcHRpb25zIGZvciB0aGlzIERhdGVUaW1lLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSB0aGUgc2FtZSBvcHRpb25zIGFzIHRvTG9jYWxlU3RyaW5nXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHJlc29sdmVkTG9jYWxlT3B0aW9ucyhvcHRzID0ge30pIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhciB9ID0gRm9ybWF0dGVyLmNyZWF0ZShcbiAgICAgIHRoaXMubG9jLmNsb25lKG9wdHMpLFxuICAgICAgb3B0c1xuICAgICkucmVzb2x2ZWRPcHRpb25zKHRoaXMpO1xuICAgIHJldHVybiB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcjogY2FsZW5kYXIgfTtcbiAgfVxuXG4gIC8vIFRSQU5TRk9STVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gVVRDLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8ge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9KCd1dGMnKVxuICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIG9wdGlvbmFsbHksIGFuIG9mZnNldCBmcm9tIFVUQyBpbiBtaW51dGVzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz17fV0gLSBvcHRpb25zIHRvIHBhc3MgdG8gYHNldFpvbmUoKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b1VUQyhvZmZzZXQgPSAwLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShvZmZzZXQpLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gdGhlIGhvc3QncyBsb2NhbCB6b25lLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8gYHNldFpvbmUoJ2xvY2FsJylgXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgdG9Mb2NhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gc3BlY2lmaWVkIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIHNldHRlciBrZWVwcyB0aGUgdW5kZXJseWluZyB0aW1lIHRoZSBzYW1lIChhcyBpbiwgdGhlIHNhbWUgdGltZXN0YW1wKSwgYnV0IHRoZSBuZXcgaW5zdGFuY2Ugd2lsbCByZXBvcnQgZGlmZmVyZW50IGxvY2FsIHRpbWVzIGFuZCBjb25zaWRlciBEU1RzIHdoZW4gbWFraW5nIGNvbXB1dGF0aW9ucywgYXMgd2l0aCB7QGxpbmsgRGF0ZVRpbWUjcGx1c30uIFlvdSBtYXkgd2lzaCB0byB1c2Uge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9IHdoaWNoIHByb3ZpZGUgc2ltcGxlIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBjb21tb25seSB1c2VkIHpvbmVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbem9uZT0nbG9jYWwnXSAtIGEgem9uZSBpZGVudGlmaWVyLiBBcyBhIHN0cmluZywgdGhhdCBjYW4gYmUgYW55IElBTkEgem9uZSBzdXBwb3J0ZWQgYnkgdGhlIGhvc3QgZW52aXJvbm1lbnQsIG9yIGEgZml4ZWQtb2Zmc2V0IG5hbWUgb2YgdGhlIGZvcm0gJ1VUQyszJywgb3IgdGhlIHN0cmluZ3MgJ2xvY2FsJyBvciAndXRjJy4gWW91IG1heSBhbHNvIHN1cHBseSBhbiBpbnN0YW5jZSBvZiBhIHtAbGluayBEYXRlVGltZSNab25lfSBjbGFzcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMua2VlcExvY2FsVGltZT1mYWxzZV0gLSBJZiB0cnVlLCBhZGp1c3QgdGhlIHVuZGVybHlpbmcgdGltZSBzbyB0aGF0IHRoZSBsb2NhbCB0aW1lIHN0YXlzIHRoZSBzYW1lLCBidXQgaW4gdGhlIHRhcmdldCB6b25lLiBZb3Ugc2hvdWxkIHJhcmVseSBuZWVkIHRoaXMuXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWUgPSBmYWxzZSwga2VlcENhbGVuZGFyVGltZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgIHpvbmUgPSBub3JtYWxpemVab25lKHpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoem9uZS5lcXVhbHModGhpcy56b25lKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmICghem9uZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbmV3VFMgPSB0aGlzLnRzO1xuICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkge1xuICAgICAgICBjb25zdCBvZmZzZXRHdWVzcyA9IHpvbmUub2Zmc2V0KHRoaXMudHMpO1xuICAgICAgICBjb25zdCBhc09iaiA9IHRoaXMudG9PYmplY3QoKTtcbiAgICAgICAgW25ld1RTXSA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzOiBuZXdUUywgem9uZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIC0gdGhlIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IGxvYyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogSnVzdCBhIGNvbnZlbmllbnQgYWxpYXMgZm9yIHJlY29uZmlndXJlKHsgbG9jYWxlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5zZXRMb2NhbGUoJ2VuLUdCJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRMb2NhbGUobG9jYWxlKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb25maWd1cmUoeyBsb2NhbGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBZb3UgY2FuIG9ubHkgc2V0IHVuaXRzIHdpdGggdGhpcyBtZXRob2Q7IGZvciBcInNldHRpbmdcIiBtZXRhZGF0YSwgc2VlIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0gYW5kIHtAbGluayBEYXRlVGltZSNzZXRab25lfS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIGEgbWFwcGluZyBvZiB1bml0cyB0byBudW1iZXJzXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgaG91cjogOCwgbWludXRlOiAzMCB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB3ZWVrZGF5OiA1IH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMDUsIG9yZGluYWw6IDIzNCB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KHZhbHVlcywgbm9ybWFsaXplVW5pdCksXG4gICAgICBzZXR0aW5nV2Vla1N0dWZmID1cbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla1llYXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtkYXkpLFxuICAgICAgY29udGFpbnNPcmRpbmFsID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQub3JkaW5hbCksXG4gICAgICBjb250YWluc0dyZWdvclllYXIgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC55ZWFyKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yID0gY29udGFpbnNHcmVnb3JZZWFyIHx8IGNvbnRhaW5zR3JlZ29yTUQsXG4gICAgICBkZWZpbml0ZVdlZWtEZWYgPSBub3JtYWxpemVkLndlZWtZZWFyIHx8IG5vcm1hbGl6ZWQud2Vla051bWJlcjtcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBsZXQgbWl4ZWQ7XG4gICAgaWYgKHNldHRpbmdXZWVrU3R1ZmYpIHtcbiAgICAgIG1peGVkID0gd2Vla1RvR3JlZ29yaWFuKHsgLi4uZ3JlZ29yaWFuVG9XZWVrKHRoaXMuYyksIC4uLm5vcm1hbGl6ZWQgfSk7XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSkge1xuICAgICAgbWl4ZWQgPSBvcmRpbmFsVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWl4ZWQgPSB7IC4uLnRoaXMudG9PYmplY3QoKSwgLi4ubm9ybWFsaXplZCB9O1xuXG4gICAgICAvLyBpZiB3ZSBkaWRuJ3Qgc2V0IHRoZSBkYXkgYnV0IHdlIGVuZGVkIHVwIG9uIGFuIG92ZXJmbG93IGRhdGUsXG4gICAgICAvLyB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSByaWdodCBtb250aFxuICAgICAgaWYgKGlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSkge1xuICAgICAgICBtaXhlZC5kYXkgPSBNYXRoLm1pbihkYXlzSW5Nb250aChtaXhlZC55ZWFyLCBtaXhlZC5tb250aCksIG1peGVkLmRheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgW3RzLCBvXSA9IG9ialRvVFMobWl4ZWQsIHRoaXMubywgdGhpcy56b25lKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB0cywgbyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZVxuICAgKlxuICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cygxMjMpIC8vfj4gaW4gMTIzIG1pbGxpc2Vjb25kc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pIC8vfj4gdGhpcyB0aW1lIHRvbW9ycm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAtMSB9KSAvL34+IHRoaXMgdGltZSB5ZXN0ZXJkYXlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pblxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMywgbWludXRlczogMTMgfSkpIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcGx1cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgYWRqdXN0VGltZSh0aGlzLCBkdXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJ0cmFjdCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjcGx1c31cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIG1pbnVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLm5lZ2F0ZSgpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhpcyBEYXRlVGltZSB0byB0aGUgYmVnaW5uaW5nIG9mIGEgdW5pdCBvZiB0aW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBiZWdpbm5pbmcgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ21vbnRoJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ3llYXInKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignd2VlaycpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAzJywgd2Vla3MgYWx3YXlzIHN0YXJ0IG9uIE1vbmRheXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2RheScpLnRvSVNPVGltZSgpOyAvLz0+ICcwMDowMC4wMDAtMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdob3VyJykudG9JU09UaW1lKCk7IC8vPT4gJzA1OjAwOjAwLjAwMC0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGFydE9mKHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbyA9IHt9LFxuICAgICAgbm9ybWFsaXplZFVuaXQgPSBEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpO1xuICAgIHN3aXRjaCAobm9ybWFsaXplZFVuaXQpIHtcbiAgICAgIGNhc2UgXCJ5ZWFyc1wiOlxuICAgICAgICBvLm1vbnRoID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJxdWFydGVyc1wiOlxuICAgICAgY2FzZSBcIm1vbnRoc1wiOlxuICAgICAgICBvLmRheSA9IDE7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwid2Vla3NcIjpcbiAgICAgIGNhc2UgXCJkYXlzXCI6XG4gICAgICAgIG8uaG91ciA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwiaG91cnNcIjpcbiAgICAgICAgby5taW51dGUgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcIm1pbnV0ZXNcIjpcbiAgICAgICAgby5zZWNvbmQgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInNlY29uZHNcIjpcbiAgICAgICAgby5taWxsaXNlY29uZCA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1pbGxpc2Vjb25kc1wiOlxuICAgICAgICBicmVhaztcbiAgICAgIC8vIG5vIGRlZmF1bHQsIGludmFsaWQgdW5pdHMgdGhyb3cgaW4gbm9ybWFsaXplVW5pdCgpXG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcIndlZWtzXCIpIHtcbiAgICAgIG8ud2Vla2RheSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcInF1YXJ0ZXJzXCIpIHtcbiAgICAgIGNvbnN0IHEgPSBNYXRoLmNlaWwodGhpcy5tb250aCAvIDMpO1xuICAgICAgby5tb250aCA9IChxIC0gMSkgKiAzICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXQobyk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGVuZCBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ21vbnRoJykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd3ZWVrJykudG9JU08oKTsgLy8gPT4gJzIwMTQtMDMtMDlUMjM6NTk6NTkuOTk5LTA1OjAwJywgd2Vla3Mgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2RheScpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMjM6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBlbmRPZih1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyB0aGlzLnBsdXMoeyBbdW5pdF06IDEgfSlcbiAgICAgICAgICAuc3RhcnRPZih1bml0KVxuICAgICAgICAgIC5taW51cygxKVxuICAgICAgOiB0aGlzO1xuICB9XG5cbiAgLy8gT1VUUFVUXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogKipZb3UgbWF5IG5vdCB3YW50IHRoaXMuKiogU2VlIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9yIGEgbW9yZSBmbGV4aWJsZSBmb3JtYXR0aW5nIHRvb2wuIEZvciBhIHRhYmxlIG9mIHRva2VucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb25zLCBzZWUgW2hlcmVdKGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jL2Zvcm1hdHRpbmc/aWQ9dGFibGUtb2YtdG9rZW5zKS5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IEFwciAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKCdmcicpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJywgeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+ICcyMDE3IGF2ci4gMjInXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KFwiSEggJ2hvdXJzIGFuZCcgbW0gJ21pbnV0ZXMnXCIpIC8vPT4gJzIwIGhvdXJzIGFuZCA1NSBtaW51dGVzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5yZWRlZmF1bHRUb0VOKG9wdHMpKS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsb2NhbGl6ZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGlzIGRhdGUuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBhbmQgYW55IHByZXNldHMgZGVmaW5lZCBieSBMdXhvbiwgc3VjaCBhcyBgRGF0ZVRpbWUuREFURV9GVUxMYCBvciBgRGF0ZVRpbWUuVElNRV9TSU1QTEVgLlxuICAgKiBUaGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2QgaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb25cbiAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDQvMjAvMjAxN1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyBsb2NhbGU6ICdlbi1nYicgfSk7IC8vPT4gJzIwLzA0LzIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5USU1FX1NJTVBMRSk7IC8vPT4gJzExOjMyIEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1cnNkYXksIEFwcmlsIDIwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdzaG9ydCcsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICcyLWRpZ2l0JywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1LCBBcHIgMjAsIDExOjI3IEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gRm9ybWF0cy5EQVRFX1NIT1JULCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MuY2xvbmUob3B0cyksIGZvcm1hdE9wdHMpLmZvcm1hdERhdGVUaW1lKHRoaXMpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBmb3JtYXQgXCJwYXJ0c1wiLCBtZWFuaW5nIGluZGl2aWR1YWwgdG9rZW5zIGFsb25nIHdpdGggbWV0YWRhdGEuIFRoaXMgaXMgYWxsb3dzIGNhbGxlcnMgdG8gcG9zdC1wcm9jZXNzIGluZGl2aWR1YWwgc2VjdGlvbnMgb2YgdGhlIGZvcm1hdHRlZCBvdXRwdXQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHNcbiAgICogQHBhcmFtIG9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMsIHNhbWUgYXMgYHRvTG9jYWxlU3RyaW5nYC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVQYXJ0cygpOyAvLz0+IFtcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbW9udGgnLCB2YWx1ZTogJzA1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAneWVhcicsIHZhbHVlOiAnMTk4MicgfVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiBdXG4gICAqL1xuICB0b0xvY2FsZVBhcnRzKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgb3B0cykuZm9ybWF0RGF0ZVRpbWVQYXJ0cyh0aGlzKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MywgNSwgMjUpLnRvSVNPKCkgLy89PiAnMTk4Mi0wNS0yNVQwMDowMDowMC4wMDBaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTygpIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1LTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcyMDE3MDQyMlQyMDQ3MDUuMzM1LTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKHtcbiAgICBmb3JtYXQgPSBcImV4dGVuZGVkXCIsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSxcbiAgICBpbmNsdWRlT2Zmc2V0ID0gdHJ1ZSxcbiAgICBleHRlbmRlZFpvbmUgPSBmYWxzZSxcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiO1xuXG4gICAgbGV0IGMgPSB0b0lTT0RhdGUodGhpcywgZXh0KTtcbiAgICBjICs9IFwiVFwiO1xuICAgIGMgKz0gdG9JU09UaW1lKHRoaXMsIGV4dCwgc3VwcHJlc3NTZWNvbmRzLCBzdXBwcmVzc01pbGxpc2Vjb25kcywgaW5jbHVkZU9mZnNldCwgZXh0ZW5kZWRab25lKTtcbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIGRhdGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxOTgyMDUyNSdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKHsgZm9ybWF0ID0gXCJleHRlbmRlZFwiIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHdlZWsgZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPV2Vla0RhdGUoKSAvLz0+ICcxOTgyLVcyMS0yJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1dlZWtEYXRlKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgXCJra2trLSdXJ1dXLWNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyB0aW1lIGNvbXBvbmVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSgpIC8vPT4gJzA3OjM0OjE5LjM2MVonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQsIHNlY29uZHM6IDAsIG1pbGxpc2Vjb25kczogMCB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMDc6MzRaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QwNzozNDoxOS4zNjFaJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUoe1xuICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgaW5jbHVkZU9mZnNldCA9IHRydWUsXG4gICAgaW5jbHVkZVByZWZpeCA9IGZhbHNlLFxuICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLFxuICAgIGZvcm1hdCA9IFwiZXh0ZW5kZWRcIixcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBjID0gaW5jbHVkZVByZWZpeCA/IFwiVFwiIDogXCJcIjtcbiAgICByZXR1cm4gKFxuICAgICAgYyArXG4gICAgICB0b0lTT1RpbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiLFxuICAgICAgICBzdXBwcmVzc1NlY29uZHMsXG4gICAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzLFxuICAgICAgICBpbmNsdWRlT2Zmc2V0LFxuICAgICAgICBleHRlbmRlZFpvbmVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gUkZDIDI4MjItY29tcGF0aWJsZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgKzAwMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1JGQzI4MjIoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaXCIsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBIVFRQIGhlYWRlcnMuIFRoZSBvdXRwdXQgaXMgYWx3YXlzIGV4cHJlc3NlZCBpbiBHTVQuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZyBjb25mb3JtcyB0byBSRkMgMTEyMy5cbiAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjFcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIEdNVCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzLCAxOSkudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAxOTowMDowMCBHTVQnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSFRUUCgpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMudG9VVEMoKSwgXCJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9TUUxEYXRlKCkgLy89PiAnMjAxNC0wNy0xMydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUxEYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRvSVNPRGF0ZSh0aGlzLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlLCBpbmNsdWRlT2Zmc2V0U3BhY2UgPSB0cnVlIH0gPSB7fSkge1xuICAgIGxldCBmbXQgPSBcIkhIOm1tOnNzLlNTU1wiO1xuXG4gICAgaWYgKGluY2x1ZGVab25lIHx8IGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgIGlmIChpbmNsdWRlT2Zmc2V0U3BhY2UpIHtcbiAgICAgICAgZm10ICs9IFwiIFwiO1xuICAgICAgfVxuICAgICAgaWYgKGluY2x1ZGVab25lKSB7XG4gICAgICAgIGZtdCArPSBcInpcIjtcbiAgICAgIH0gZWxzZSBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgICAgICBmbXQgKz0gXCJaWlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgZm10LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldFNwYWNlPXRydWVdIC0gaW5jbHVkZSB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgdGltZSBhbmQgdGhlIG9mZnNldCwgc3VjaCBhcyAnMDU6MTU6MTYuMzQ1IC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIFonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCh7IGluY2x1ZGVab25lOiB0cnVlIH0pIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7dGhpcy50b1NRTERhdGUoKX0gJHt0aGlzLnRvU1FMVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLiBBbGlhcyBvZiB7QGxpbmsgRGF0ZVRpbWUjdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1NlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIHNlY29uZHMgKGFzIGEgd2hvbGUgbnVtYmVyKSBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1VuaXhJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQlNPTiBzZXJpYWxpemFibGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtEYXRlfVxuICAgKi9cbiAgdG9CU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvSlNEYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEYXRlVGltZSdzIHllYXIsIG1vbnRoLCBkYXksIGFuZCBzbyBvbi5cbiAgICogQHBhcmFtIG9wdHMgLSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlQ29uZmlnPWZhbHNlXSAtIGluY2x1ZGUgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVzIGluIHRoZSBvdXRwdXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9PYmplY3QoKSAvLz0+IHsgeWVhcjogMjAxNywgbW9udGg6IDQsIGRheTogMjIsIGhvdXI6IDIwLCBtaW51dGU6IDQ5LCBzZWNvbmQ6IDQyLCBtaWxsaXNlY29uZDogMjY4IH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3Qob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcblxuICAgIGNvbnN0IGJhc2UgPSB7IC4uLnRoaXMuYyB9O1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykge1xuICAgICAgYmFzZS5vdXRwdXRDYWxlbmRhciA9IHRoaXMub3V0cHV0Q2FsZW5kYXI7XG4gICAgICBiYXNlLm51bWJlcmluZ1N5c3RlbSA9IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbTtcbiAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBEYXRlIGVxdWl2YWxlbnQgdG8gdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7RGF0ZX1cbiAgICovXG4gIHRvSlNEYXRlKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmlzVmFsaWQgPyB0aGlzLnRzIDogTmFOKTtcbiAgfVxuXG4gIC8vIENPTVBBUkVcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIERhdGVUaW1lcyBhcyBhIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIERhdGVUaW1lIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG9cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIGkxID0gRGF0ZVRpbWUuZnJvbUlTTygnMTk4Mi0wNS0yNVQwOTo0NScpLFxuICAgKiAgICAgaTIgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgzLTEwLTE0VDEwOjMwJyk7XG4gICAqIGkyLmRpZmYoaTEpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogNDM4MDc1MDAwMDAgfVxuICAgKiBpMi5kaWZmKGkxLCAnaG91cnMnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTIxNjguNzUgfVxuICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LjAzMTI1IH1cbiAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cycsICdob3VycyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOSwgaG91cnM6IDAuNzUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmYob3RoZXJEYXRlVGltZSwgdW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlckRhdGVUaW1lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWVcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyT3B0cyA9IHsgbG9jYWxlOiB0aGlzLmxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtOiB0aGlzLm51bWJlcmluZ1N5c3RlbSwgLi4ub3B0cyB9O1xuXG4gICAgY29uc3QgdW5pdHMgPSBtYXliZUFycmF5KHVuaXQpLm1hcChEdXJhdGlvbi5ub3JtYWxpemVVbml0KSxcbiAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksXG4gICAgICBlYXJsaWVyID0gb3RoZXJJc0xhdGVyID8gdGhpcyA6IG90aGVyRGF0ZVRpbWUsXG4gICAgICBsYXRlciA9IG90aGVySXNMYXRlciA/IG90aGVyRGF0ZVRpbWUgOiB0aGlzLFxuICAgICAgZGlmZmVkID0gZGlmZihlYXJsaWVyLCBsYXRlciwgdW5pdHMsIGR1ck9wdHMpO1xuXG4gICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCByaWdodCBub3cuXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjZGlmZn1cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgdW5pdHMgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmZOb3codW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmRpZmYoRGF0ZVRpbWUubm93KCksIHVuaXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCBzcGFubmluZyBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIGFub3RoZXIgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBlbmQgcG9pbnQgb2YgdGhlIEludGVydmFsXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW50aWwob3RoZXJEYXRlVGltZSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHRoaXMsIG90aGVyRGF0ZVRpbWUpIDogdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIERhdGVUaW1lIGlzIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZSBhcyBhbm90aGVyIERhdGVUaW1lLlxuICAgKiBIaWdoZXItb3JkZXIgdW5pdHMgbXVzdCBhbHNvIGJlIGlkZW50aWNhbCBmb3IgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYHRydWVgLlxuICAgKiBOb3RlIHRoYXQgdGltZSB6b25lcyBhcmUgKippZ25vcmVkKiogaW4gdGhpcyBjb21wYXJpc29uLCB3aGljaCBjb21wYXJlcyB0aGUgKipsb2NhbCoqIGNhbGVuZGFyIHRpbWUuIFVzZSB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0gdG8gY29udmVydCBvbmUgb2YgdGhlIGRhdGVzIGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuaGFzU2FtZShvdGhlckRULCAnZGF5Jyk7IC8vfj4gdHJ1ZSBpZiBvdGhlckRUIGlzIGluIHRoZSBzYW1lIGN1cnJlbnQgY2FsZW5kYXIgZGF5XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBoYXNTYW1lKG90aGVyRGF0ZVRpbWUsIHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgaW5wdXRNcyA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpO1xuICAgIGNvbnN0IGFkanVzdGVkVG9ab25lID0gdGhpcy5zZXRab25lKG90aGVyRGF0ZVRpbWUuem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pO1xuICAgIHJldHVybiBhZGp1c3RlZFRvWm9uZS5zdGFydE9mKHVuaXQpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSBhZGp1c3RlZFRvWm9uZS5lbmRPZih1bml0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVhbGl0eSBjaGVja1xuICAgKiBUd28gRGF0ZVRpbWVzIGFyZSBlcXVhbCBpZmYgdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbWlsbGlzZWNvbmQsIGhhdmUgdGhlIHNhbWUgem9uZSBhbmQgbG9jYXRpb24sIGFuZCBhcmUgYm90aCB2YWxpZC5cbiAgICogVG8gY29tcGFyZSBqdXN0IHRoZSBtaWxsaXNlY29uZCB2YWx1ZXMsIHVzZSBgK2R0MSA9PT0gK2R0MmAuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyIC0gdGhlIG90aGVyIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1ZhbGlkICYmXG4gICAgICBvdGhlci5pc1ZhbGlkICYmXG4gICAgICB0aGlzLnZhbHVlT2YoKSA9PT0gb3RoZXIudmFsdWVPZigpICYmXG4gICAgICB0aGlzLnpvbmUuZXF1YWxzKG90aGVyLnpvbmUpICYmXG4gICAgICB0aGlzLmxvYy5lcXVhbHMob3RoZXIubG9jKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHRoaXMgdGltZSByZWxhdGl2ZSB0byBub3csIHN1Y2ggYXMgXCJpbiB0d28gZGF5c1wiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXJcbiAgICogcGxhdGZvcm0gc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuIFJvdW5kcyBkb3duIGJ5IGRlZmF1bHQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zdHlsZT1cImxvbmdcIl0gLSB0aGUgc3R5bGUgb2YgdW5pdHMsIG11c3QgYmUgXCJsb25nXCIsIFwic2hvcnRcIiwgb3IgXCJuYXJyb3dcIlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdCBvciBhcnJheSBvZiB1bml0czsgaWYgb21pdHRlZCwgb3IgYW4gYXJyYXksIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSBiZXN0IHVuaXQuIFVzZSBhbiBhcnJheSBvciBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIG9yIFwic2Vjb25kc1wiXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYWRkaW5nPTBdIC0gcGFkZGluZyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgYWxsb3dzIHlvdSB0byByb3VuZCB1cCB0aGUgcmVzdWx0IGlmIGl0IGZpdHMgaW5zaWRlIHRoZSB0aHJlc2hvbGQuIERvbid0IHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIHtyb3VuZDogZmFsc2V9IGJlY2F1c2UgdGhlIGRlY2ltYWwgb3V0cHV0IHdpbGwgaW5jbHVkZSB0aGUgcGFkZGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCJpbiAxIGRheVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZShcImVzXCIpLnRvUmVsYXRpdmUoeyBkYXlzOiAxIH0pIC8vPT4gXCJkZW50cm8gZGUgMSBkXHUwMEVEYVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGFucyAyMyBoZXVyZXNcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoeyB1bml0OiBcImhvdXJzXCIgfSkgLy89PiBcIjQ4IGhvdXJzIGFnb1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgaG91cnM6IDM2IH0pLnRvUmVsYXRpdmUoeyByb3VuZDogZmFsc2UgfSkgLy89PiBcIjEuNSBkYXlzIGFnb1wiXG4gICAqL1xuICB0b1JlbGF0aXZlKG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyA/ICh0aGlzIDwgYmFzZSA/IC1vcHRpb25zLnBhZGRpbmcgOiBvcHRpb25zLnBhZGRpbmcpIDogMDtcbiAgICBsZXQgdW5pdHMgPSBbXCJ5ZWFyc1wiLCBcIm1vbnRoc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdO1xuICAgIGxldCB1bml0ID0gb3B0aW9ucy51bml0O1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMudW5pdCkpIHtcbiAgICAgIHVuaXRzID0gb3B0aW9ucy51bml0O1xuICAgICAgdW5pdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShiYXNlLCB0aGlzLnBsdXMocGFkZGluZyksIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBudW1lcmljOiBcImFsd2F5c1wiLFxuICAgICAgdW5pdHMsXG4gICAgICB1bml0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBkYXRlIHJlbGF0aXZlIHRvIHRvZGF5LCBzdWNoIGFzIFwieWVzdGVyZGF5XCIgb3IgXCJuZXh0IG1vbnRoXCIuXG4gICAqIE9ubHkgaW50ZXJuYXRpb25hbGl6ZXMgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmxvY2FsZSAtIG92ZXJyaWRlIHRoZSBsb2NhbGUgb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdDsgaWYgb21pdHRlZCwgdGhlIG1ldGhvZCB3aWxsIHBpY2sgdGhlIHVuaXQuIFVzZSBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgb3IgXCJkYXlzXCJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+IFwidG9tb3Jyb3dcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoXCJlc1wiKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiBcIlwibWFcdTAwRjFhbmFcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGVtYWluXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICovXG4gIHRvUmVsYXRpdmVDYWxlbmRhcihvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gZGlmZlJlbGF0aXZlKG9wdGlvbnMuYmFzZSB8fCBEYXRlVGltZS5mcm9tT2JqZWN0KHt9LCB7IHpvbmU6IHRoaXMuem9uZSB9KSwgdGhpcywge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG51bWVyaWM6IFwiYXV0b1wiLFxuICAgICAgdW5pdHM6IFtcInllYXJzXCIsIFwibW9udGhzXCIsIFwiZGF5c1wiXSxcbiAgICAgIGNhbGVuZGFyeTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWluaW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1pbiBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWluKC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtaW4gcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1heCBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1heCBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWF4KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtYXggcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWF4KTtcbiAgfVxuXG4gIC8vIE1JU0NcblxuICAvKipcbiAgICogRXhwbGFpbiBob3cgYSBzdHJpbmcgd291bGQgYmUgcGFyc2VkIGJ5IGZyb21Gb3JtYXQoKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIGRlc2NyaXB0aW9uKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGFrZW4gYnkgZnJvbUZvcm1hdCgpXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0RXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCB9ID0gb3B0aW9ucyxcbiAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBudW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZVRvVXNlLCB0ZXh0LCBmbXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRm9ybWF0RXhwbGFpbiBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZ0V4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIEZPUk1BVCBQUkVTRVRTXG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4M1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX1NIT1JUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0IDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX01FRCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX01FRDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIE9jdCAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX0ZVTEwoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ1R1ZXNkYXksIE9jdG9iZXIgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX0hVR0U7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9TSU1QTEUoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9TSU1QTEU7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX0xPTkdfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCcsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1NJTVBMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMycsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFRFQnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMTAvMTQvMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRUQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfTUVEO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCAxNCBPY3QgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9IVUdFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFM7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJpZW5kbHlEYXRlVGltZShkYXRlVGltZWlzaCkge1xuICBpZiAoRGF0ZVRpbWUuaXNEYXRlVGltZShkYXRlVGltZWlzaCkpIHtcbiAgICByZXR1cm4gZGF0ZVRpbWVpc2g7XG4gIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgZGF0ZVRpbWVpc2gudmFsdWVPZiAmJiBpc051bWJlcihkYXRlVGltZWlzaC52YWx1ZU9mKCkpKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21KU0RhdGUoZGF0ZVRpbWVpc2gpO1xuICB9IGVsc2UgaWYgKGRhdGVUaW1laXNoICYmIHR5cGVvZiBkYXRlVGltZWlzaCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KGRhdGVUaW1laXNoKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICBgVW5rbm93biBkYXRldGltZSBhcmd1bWVudDogJHtkYXRlVGltZWlzaH0sIG9mIHR5cGUgJHt0eXBlb2YgZGF0ZVRpbWVpc2h9YFxuICAgICk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuXG4vKiogVGVzdC1lbnZpcm9ubWVudC1mcmllbmRseSBmdW5jdGlvbiB3aGljaCBmZXRjaGVzIHRoZSBjdXJyZW50IHN5c3RlbSBsb2NhbGUuICovXG5leHBvcnQgZnVuY3Rpb24gY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCJlbi1VU1wiO1xuICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xufVxuXG4vLyBEYXRlL1RpbWUgUmVuZGVyaW5nXG5cbi8qKiBOb3JtYWxpemUgYSBkdXJhdGlvbiB0byBhbGwgb2YgdGhlIHByb3BlciB1bml0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEdXJhdGlvbihkdXI6IER1cmF0aW9uKSB7XG4gICAgaWYgKGR1ciA9PT0gdW5kZWZpbmVkIHx8IGR1ciA9PT0gbnVsbCkgcmV0dXJuIGR1cjtcblxuICAgIHJldHVybiBkdXIuc2hpZnRUbyhcInllYXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiKS5ub3JtYWxpemUoKTtcbn1cblxuLyoqIFN0cmlwIHRoZSB0aW1lIGNvbXBvbmVudHMgb2YgYSBkYXRlIHRpbWUgb2JqZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGltZShkdDogRGF0ZVRpbWUpOiBEYXRlVGltZSB7XG4gICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpIHJldHVybiBkdDtcblxuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHtcbiAgICAgICAgeWVhcjogZHQueWVhcixcbiAgICAgICAgbW9udGg6IGR0Lm1vbnRoLFxuICAgICAgICBkYXk6IGR0LmRheSxcbiAgICB9KTtcbn1cblxuLyoqIFRyeSB0byBleHRyYWN0IGEgWVlZWU1NREQgZGF0ZSBmcm9tIGEgc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REYXRlKHN0cjogc3RyaW5nKTogRGF0ZVRpbWUgfCB1bmRlZmluZWQge1xuICAgIGxldCBkYXRlTWF0Y2ggPSAvKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkvLmV4ZWMoc3RyKTtcbiAgICBpZiAoIWRhdGVNYXRjaCkgZGF0ZU1hdGNoID0gLyhcXGR7NH0pKFxcZHsyfSkoXFxkezJ9KS8uZXhlYyhzdHIpO1xuICAgIGlmIChkYXRlTWF0Y2gpIHtcbiAgICAgICAgbGV0IHllYXIgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzFdKTtcbiAgICAgICAgbGV0IG1vbnRoID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFsyXSk7XG4gICAgICAgIGxldCBkYXkgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzNdKTtcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZW5kZXIgYSBEYXRlVGltZSBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbERhdGUodGltZTogRGF0ZVRpbWUsIGRhdGVGb3JtYXQ6IHN0cmluZywgZGF0ZVRpbWVGb3JtYXQ6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyByZWxldmFudCB0aW1lIHNwZWNpZmllZCwgZmFsbCBiYWNrIHRvIGp1c3QgcmVuZGVyaW5nIHRoZSBkYXRlLlxuICAgIGlmICh0aW1lLnNlY29uZCA9PSAwICYmIHRpbWUubWludXRlID09IDAgJiYgdGltZS5ob3VyID09IDApIHtcbiAgICAgICAgcmV0dXJuIHRpbWUudG9Mb2NhbCgpLnRvRm9ybWF0KGRhdGVGb3JtYXQsIHsgbG9jYWxlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aW1lLnRvTG9jYWwoKS50b0Zvcm1hdChkYXRlVGltZUZvcm1hdCwgeyBsb2NhbGUgfSk7XG59XG5cbi8qKiBSZW5kZXIgYSBkdXJhdGlvbiBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbER1cmF0aW9uKGR1cjogRHVyYXRpb24pOiBzdHJpbmcge1xuICAgIGR1ciA9IG5vcm1hbGl6ZUR1cmF0aW9uKGR1cik7XG5cbiAgICAvLyBUT0RPOiBMdXhvbiBkb2VzIG5vdCBoYXZlIG11bHRpLWxpbmd1YWwvbG9jYWxlLWF3YXJlIGR1cmF0aW9uIHJlbmRlcmluZy5cbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBpZiAoZHVyLnllYXJzKSByZXN1bHQgKz0gYCR7ZHVyLnllYXJzfSB5ZWFycywgYDtcbiAgICBpZiAoZHVyLm1vbnRocykgcmVzdWx0ICs9IGAke2R1ci5tb250aHN9IG1vbnRocywgYDtcbiAgICBpZiAoZHVyLndlZWtzKSByZXN1bHQgKz0gYCR7ZHVyLndlZWtzfSB3ZWVrcywgYDtcbiAgICBpZiAoZHVyLmRheXMpIHJlc3VsdCArPSBgJHtkdXIuZGF5c30gZGF5cywgYDtcbiAgICBpZiAoZHVyLmhvdXJzKSByZXN1bHQgKz0gYCR7ZHVyLmhvdXJzfSBob3VycywgYDtcbiAgICBpZiAoZHVyLm1pbnV0ZXMpIHJlc3VsdCArPSBgJHtkdXIubWludXRlc30gbWludXRlcywgYDtcbiAgICBpZiAoZHVyLnNlY29uZHMpIHJlc3VsdCArPSBgJHtNYXRoLnJvdW5kKGR1ci5zZWNvbmRzKX0gc2Vjb25kcywgYDtcbiAgICBpZiAoZHVyLm1pbGxpc2Vjb25kcykgcmVzdWx0ICs9IGAke01hdGgucm91bmQoZHVyLm1pbGxpc2Vjb25kcyl9IG1zLCBgO1xuXG4gICAgaWYgKHJlc3VsdC5lbmRzV2l0aChcIiwgXCIpKSByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIHJlc3VsdC5sZW5ndGggLSAyKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBQYXRoIHV0aWxpdGllcy5cblxuLyoqIEdldCB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHBhdGggKGkuZS4sIGxpa2UgY29tcHV0aW5nICdwYXRoLy4uJykuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyZW50Rm9sZGVyKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKS5qb2luKFwiL1wiKTtcbn1cblxuLyoqIEdldCB0aGUgZmlsZSBuYW1lIGZvciB0aGUgZmlsZSByZWZlcmVuY2VkIGluIHRoZSBnaXZlbiBwYXRoLCBieSBzdHJpcHBpbmcgdGhlIHBhcmVudCBmb2xkZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVOYW1lKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguaW5jbHVkZXMoXCIvXCIpID8gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSA6IHBhdGg7XG59XG5cbi8qKiBHZXQgdGhlIFwidGl0bGVcIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChwYXRoLmluY2x1ZGVzKFwiL1wiKSkgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHBhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG4gICAgaWYgKHBhdGguZW5kc1dpdGgoXCIubWRcIikpIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKiogR2V0IHRoZSBleHRlbnNpb24gb2YgYSBmaWxlIGZyb20gdGhlIGZpbGUgcGF0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb24ocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXBhdGguaW5jbHVkZXMoXCIuXCIpKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi5cIikgKyAxKTtcbn1cblxuLy8gVGFnIGV4dHJhY3Rpb24uXG5cbi8qKiBQYXJzZSBhbGwgc3VidGFncyBvdXQgb2YgdGhlIGdpdmVuIHRhZy4gSS5lLiwgI2hlbGxvL2kvYW0gd291bGQgeWllbGQgWyNoZWxsby9pL2FtLCAjaGVsbG8vaSwgI2hlbGxvXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3VidGFncyh0YWdzOiBzdHJpbmcgfCBJdGVyYWJsZTxzdHJpbmc+KTogc3RyaW5nW10ge1xuICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCB0YWcgb2YgdHlwZW9mIHRhZ3MgPT09IFwic3RyaW5nXCIgPyBbdGFnc10gOiB0YWdzKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRhZyk7XG4gICAgICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoXCIvXCIpKSB7XG4gICAgICAgICAgICB0YWcgPSB0YWcuc3Vic3RyaW5nKDAsIHRhZy5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBTcGxpdCBlYWNoIGJsb2NrIGFuZCBzZWN0aW9uIGxpbmsgaW50byB0aGUgb3JpZ2luYWwgbGluayBhbmQgYSBjb3JyZXNwb25kaW5nIGZpbGUgbGluay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsZUxpbmtzKGVsaW5rczogTGlua1tdKTogTGlua1tdIHtcbiAgICBjb25zdCByZXN1bHQ6IExpbmtbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBlbGlua3MpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobGluayk7XG5cbiAgICAgICAgY29uc3QgZmlsZUxpbmsgPSBsaW5rLnRvRmlsZSgpO1xuICAgICAgICBpZiAobGluay50eXBlICE9IFwiZmlsZVwiICYmICFyZXN1bHQuZmluZCgoZXhpc3RpbmcpID0+IGV4aXN0aW5nLmVxdWFscyhmaWxlTGluaykpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlTGluayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBTdHJpbmcgZXNjYXBpbmcgYW5kIGNhbm9uaWNhbGl6YXRpb24uXG5cbi8qKlxuICogRXNjYXBlIHJlZ2V4IGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmVnZXgoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuY29uc3QgSEVBREVSX0NBTk9OSUNBTElaRVI6IFAuUGFyc2VyPHN0cmluZz4gPSBQLmFsdChcbiAgICBQLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCBcIlwiKSksXG4gICAgUC5yZWdleCgvWzAtOVxccHtMZXR0ZXJ9Xy1dKy91KSxcbiAgICBQLndoaXRlc3BhY2UubWFwKChfKSA9PiBcIiBcIiksXG4gICAgUC5hbnkubWFwKChfKSA9PiBcIiBcIilcbilcbiAgICAubWFueSgpXG4gICAgLm1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbihcIlwiKS5zcGxpdCgvXFxzKy8pLmpvaW4oXCIgXCIpLnRyaW0oKTtcbiAgICB9KTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIHRoZSB0ZXh0IGluIGEgaGVhZGVyIHRvIGJlIHNvbWV0aGluZyB0aGF0IGlzIGFjdHVhbGx5IGxpbmthYmxlIHRvLiBUaGlzIG1pbWljc1xuICogaG93IE9ic2lkaWFuIGRvZXMgaXQncyBub3JtYWxpemF0aW9uLCBjb2xsYXBzaW5nIHJlcGVhdGVkIHNwYWNlcyBhbmQgc3RyaXBwaW5nIG91dCBjb250cm9sIGNoYXJhY3RlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSEVBREVSX0NBTk9OSUNBTElaRVIudHJ5UGFyc2UoaGVhZGVyKTtcbn1cblxuLy8gRmFzdCBleHRyYWN0aW9uIG9mIGxpbmUgcmFuZ2VzIGZyb20gbGFyZ2UgcGllY2VzIG9mIHRleHQuXG5cbi8qKiBVcGRhdGUgdGhlIGxpbmUgcmFuZ2UgZnJvbSBbc3RhcnQsIGVuZCkgd2l0aCB0aGUgZ2l2ZW4gZnVuY3Rpb24uICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVJlcGxhY2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgZnVuYzogKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBbZGF0YSwgb2Zmc2V0XSA9IGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpO1xuICAgIGlmICghb2Zmc2V0KSByZXR1cm4gdGV4dDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIGRhdGEuc3Vic3RyaW5nKDAsIG9mZnNldC5zdGFydCkgKyBmdW5jKGRhdGEuc3Vic3RyaW5nKG9mZnNldC5zdGFydCwgb2Zmc2V0LmVuZCkpICsgZGF0YS5zdWJzdHJpbmcob2Zmc2V0LmVuZClcbiAgICApO1xufVxuXG4vKiogRXh0cmFjdCB0aGUgbGluZXMgaW4gdGhlIHJhbmdlIFtzdGFydCwgZW5kKSwgYXMgd2VsbCBhcyB0aGUgYWN0dWFsIG9mZnNldHMgb2YgdGhlIHN0YXJ0IGFuZCBlbmQuICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVNwYW4oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgZW5kOiBudW1iZXJcbik6IFtzdHJpbmcsIHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfSB8IHVuZGVmaW5lZF0ge1xuICAgIHN0YXJ0ID0gTWF0aC5tYXgoc3RhcnQsIDApO1xuICAgIGVuZCA9IE1hdGgubWF4KGVuZCwgMCk7XG5cbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICAvLyBTdGFydCBieSBmaW5kaW5nIHRoZSBzdGFydGluZyBsaW5lIG9mZnNldC5cbiAgICBjb25zdCBzdGFydE9mZnNldCA9IHNraXBOZXdsaW5lcyh0ZXh0LCAwLCBzdGFydCk7XG4gICAgaWYgKHN0YXJ0T2Zmc2V0ID09IC0xKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICBjb25zdCBlbmRPZmZzZXQgPSBza2lwTmV3bGluZXModGV4dCwgc3RhcnRPZmZzZXQsIGVuZCAtIHN0YXJ0KTtcbiAgICBpZiAoZW5kT2Zmc2V0ID09IC0xKSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0KSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogdGV4dC5sZW5ndGggfV07XG4gICAgZWxzZSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSAxKSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogZW5kT2Zmc2V0IC0gMSB9XTtcbn1cblxuLyoqIEV4dHJhY3QgdGhlIGxpbmVzIGluIHRoZSByYW5nZSBbc3RhcnQsIGVuZCkuIFN0YXJ0IGlzIGluY2x1c2l2ZSwgZW5kIGlzIGV4Y2x1c2l2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lUmFuZ2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpWzBdO1xufVxuXG4vKiogU2tpcCB7Y291bnR9IHRvdGFsIG5ld2xpbmVzLCByZXR1cm5pbmcgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHtjb3VudH0gbGluZXMgYWZ0ZXIgdGhlIGN1cnJlbnQgbGluZS4gSWYgY291bnQgaXMgMCwgdGhlIGluaXRpYWwgb2Zmc2V0IGlzIHJldHVybmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNraXBOZXdsaW5lcyh0ZXh0OiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gc3RhcnQ7XG5cbiAgICBsZXQgcG9zaXRpb24gPSBzdGFydDtcbiAgICB3aGlsZSAoY291bnQgPiAwKSB7XG4gICAgICAgIHBvc2l0aW9uID0gdGV4dC5pbmRleE9mKFwiXFxuXCIsIHBvc2l0aW9uKTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09IC0xKSByZXR1cm4gLTE7XG5cbiAgICAgICAgY291bnQtLTtcbiAgICAgICAgcG9zaXRpb24gKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zaXRpb247XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuXHQvLyBodHRwczovL210aHMuYmUvZW1vamlcblx0cmV0dXJuIC9bIyowLTldXFx1RkUwRj9cXHUyMEUzfFtcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRUQtXFx1MjNFRlxcdTIzRjFcXHUyM0YyXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCXFx1MjVGQ1xcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MjBcXHUyNjIyXFx1MjYyM1xcdTI2MjZcXHUyNjJBXFx1MjYyRVxcdTI2MkZcXHUyNjM4LVxcdTI2M0FcXHUyNjQwXFx1MjY0MlxcdTI2NDgtXFx1MjY1M1xcdTI2NUZcXHUyNjYwXFx1MjY2M1xcdTI2NjVcXHUyNjY2XFx1MjY2OFxcdTI2N0JcXHUyNjdFXFx1MjY3RlxcdTI2OTJcXHUyNjk0LVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBN1xcdTI2QUFcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZEM1xcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E1KT98XFx1MjZGOSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzRcXHVERkNBXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERkNCXFx1REZDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjQzXFx1REY0NS1cXHVERjRBXFx1REY0Qy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RERFNlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl18XFx1RERFN1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUZcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREU4XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjdcXHVEREZBLVxcdURERkZdfFxcdURERTlcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdfFxcdURERUFcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXXxcXHVEREVCXFx1RDgzQ1tcXHVEREVFLVxcdURERjBcXHVEREYyXFx1RERGNFxcdURERjddfFxcdURERUNcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdfFxcdURERURcXHVEODNDW1xcdURERjBcXHVEREYyXFx1RERGM1xcdURERjdcXHVEREY5XFx1RERGQV18XFx1RERFRVxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XXxcXHVEREVGXFx1RDgzQ1tcXHVEREVBXFx1RERGMlxcdURERjRcXHVEREY1XXxcXHVEREYwXFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERGMVxcdUQ4M0NbXFx1RERFNi1cXHVEREU4XFx1RERFRVxcdURERjBcXHVEREY3LVxcdURERkJcXHVEREZFXXxcXHVEREYyXFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXXxcXHVEREYzXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdfFxcdURERjRcXHVEODNDXFx1RERGMnxcXHVEREY1XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdfFxcdURERjZcXHVEODNDXFx1RERFNnxcXHVEREY3XFx1RDgzQ1tcXHVEREVBXFx1RERGNFxcdURERjhcXHVEREZBXFx1RERGQ118XFx1RERGOFxcdUQ4M0NbXFx1RERFNi1cXHVEREVBXFx1RERFQy1cXHVEREY0XFx1RERGNy1cXHVEREY5XFx1RERGQlxcdURERkQtXFx1RERGRl18XFx1RERGOVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdfFxcdURERkFcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdfFxcdURERkJcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdfFxcdURERkNcXHVEODNDW1xcdURERUJcXHVEREY4XXxcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RERGRVxcdUQ4M0NbXFx1RERFQVxcdURERjldfFxcdURERkZcXHVEODNDW1xcdURERTZcXHVEREYyXFx1RERGQ118XFx1REY0NCg/OlxcdTIwMERcXHVEODNEXFx1REZFQik/fFxcdURGNEIoPzpcXHUyMDBEXFx1RDgzRFxcdURGRTkpP3xcXHVERkMzKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjRcXHVERUI1XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDc0XFx1REQ5MF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/fFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDMjVcXHVEQzI3LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQxXFx1REU0M1xcdURFNDRcXHVERTQ4LVxcdURFNEFcXHVERTgwLVxcdURFQTJcXHVERUE0LVxcdURFQjNcXHVERUI3LVxcdURFQkZcXHVERUMxLVxcdURFQzVcXHVERUQwLVxcdURFRDJcXHVERUQ1LVxcdURFRDdcXHVERURDLVxcdURFREZcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQ1xcdURGRTAtXFx1REZFQlxcdURGRjBdfFxcdURDMDgoPzpcXHUyMDBEXFx1MkIxQik/fFxcdURDMTUoPzpcXHUyMDBEXFx1RDgzRVxcdUREQkEpP3xcXHVEQzI2KD86XFx1MjAwRCg/OlxcdTJCMUJ8XFx1RDgzRFxcdUREMjUpKT98XFx1REMzQig/OlxcdTIwMERcXHUyNzQ0XFx1RkUwRj8pP3xcXHVEQzQxXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURERThcXHVGRTBGPyk/fFxcdURDNjgoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OHxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2Rig/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERDc1KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERTJFKD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E4KT98XFx1REUzNSg/OlxcdTIwMERcXHVEODNEXFx1RENBQik/fFxcdURFMzYoPzpcXHUyMDBEXFx1RDgzQ1xcdURGMkJcXHVGRTBGPyk/fFxcdURFNDIoPzpcXHUyMDBEW1xcdTIxOTRcXHUyMTk1XVxcdUZFMEY/KT98XFx1REVCNig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0RcXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RERERVxcdUREREZdKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDBEXFx1REQwRVxcdUREMTAtXFx1REQxN1xcdUREMjAtXFx1REQyNVxcdUREMjctXFx1REQyRlxcdUREM0FcXHVERDNGLVxcdURENDVcXHVERDQ3LVxcdURENzZcXHVERDc4LVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQ1xcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFN0NcXHVERTgwLVxcdURFODlcXHVERThGLVxcdURFQzJcXHVERUM2XFx1REVDRS1cXHVERURDXFx1REVERi1cXHVERUU5XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVERENFKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEREQxXFx1MjAwRFxcdUQ4M0VcXHVEREQyKD86XFx1MjAwRFxcdUQ4M0VcXHVEREQyKT98XFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/KSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT8pKT98XFx1REVGMSg/OlxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKT98XFx1REZGQyg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pP3xcXHVERkZEKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSk/fFxcdURGRkUoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKT98XFx1REZGRig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSk/KSk/KS9nO1xufTtcbiIsICJpbXBvcnQgeyBnZXRGaWxlVGl0bGUsIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLyoqIFRoZSBPYnNpZGlhbiAnbGluaycsIHVzZWQgZm9yIHVuaXF1ZWx5IGRlc2NyaWJpbmcgYSBmaWxlLCBoZWFkZXIsIG9yIGJsb2NrLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgY2xhc3MgTGluayB7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBwdWJsaWMgZGlzcGxheT86IHN0cmluZztcbiAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqL1xuICAgIHB1YmxpYyBzdWJwYXRoPzogc3RyaW5nO1xuICAgIC8qKiBJcyB0aGlzIGxpbmsgYW4gZW1iZWRkZWQgbGluayAob2YgZm9ybSAnIVtbaGVsbG9dXScpPyAqL1xuICAgIHB1YmxpYyBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgcHVibGljIHR5cGU6IFwiZmlsZVwiIHwgXCJoZWFkZXJcIiB8IFwiYmxvY2tcIjtcblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgc3BlY2lmaWMgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbGUocGF0aDogc3RyaW5nLCBlbWJlZDogYm9vbGVhbiA9IGZhbHNlLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgZW1iZWQsXG4gICAgICAgICAgICBkaXNwbGF5LFxuICAgICAgICAgICAgc3VicGF0aDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHlwZTogXCJmaWxlXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbmZlciB0aGUgdHlwZSBvZiB0aGUgbGluayBmcm9tIHRoZSBmdWxsIGludGVybmFsIGxpbmsgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGluZmVyKGxpbmtwYXRoOiBzdHJpbmcsIGVtYmVkOiBib29sZWFuID0gZmFsc2UsIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgaWYgKGxpbmtwYXRoLmluY2x1ZGVzKFwiI15cIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI15cIik7XG4gICAgICAgICAgICByZXR1cm4gTGluay5ibG9jayhzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rcGF0aC5pbmNsdWRlcyhcIiNcIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovXG4gICAgcHVibGljIHN0YXRpYyBoZWFkZXIocGF0aDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgZW1iZWQ/OiBib29sZWFuLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIC8vIEhlYWRlcnMgbmVlZCB0byBiZSBub3JtYWxpemVkIHRvIGFscGhhLW51bWVyaWMgJiB3aXRoIGV4dHJhIHNwYWNpbmcgcmVtb3ZlZC5cbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlciksXG4gICAgICAgICAgICB0eXBlOiBcImhlYWRlclwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGJsb2NrIGluIHRoYXQgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGJsb2NrKHBhdGg6IHN0cmluZywgYmxvY2tJZDogc3RyaW5nLCBlbWJlZD86IGJvb2xlYW4sIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBibG9ja0lkLFxuICAgICAgICAgICAgdHlwZTogXCJibG9ja1wiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBhIGxpbmsgZnJvbSBpdCdzIHJhdyBKU09OIHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IEpzb25MaW5rKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIGJ5IHBhcnNpbmcgaXQncyBpbnRlcmlvciBwYXJ0IChpbnNpZGUgb2YgdGhlICdbW11dJykuICovXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZUlubmVyKHJhd2xpbms6IHN0cmluZyk6IExpbmsge1xuICAgICAgICBsZXQgW2xpbmssIGRpc3BsYXldID0gc3BsaXRPblVuZXNjYXBlZFBpcGUocmF3bGluayk7XG4gICAgICAgIHJldHVybiBMaW5rLmluZmVyKGxpbmssIGZhbHNlLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGZpZWxkczogUGFydGlhbDxMaW5rPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGlzIGxpbmsgd2l0aCBhIG5ldyBwYXRoLiAqL1xuICAgIHB1YmxpYyB3aXRoUGF0aChwYXRoOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHsgcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIG5ldyBsaW5rIHdoaWNoIHBvaW50cyB0byB0aGUgc2FtZSBsb2NhdGlvbiBidXQgd2l0aCBhIG5ldyBkaXNwbGF5IHZhbHVlLiAqL1xuICAgIHB1YmxpYyB3aXRoRGlzcGxheShkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBuZXcgbGluayB3aGljaCBoYXMgdGhlIGdpdmVuIGVtYmVkZGVkIHN0YXR1cy4gKi9cbiAgICBwdWJsaWMgd2l0aEVtYmVkKGVtYmVkOiBib29sZWFuKTogTGluayB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkID09IGVtYmVkKSByZXR1cm4gdGhpcztcblxuICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBlbWJlZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgYSBmaWxlIGxpbmsgaW50byBhIGxpbmsgdG8gYSBzcGVjaWZpYyBoZWFkZXIuICovXG4gICAgcHVibGljIHdpdGhIZWFkZXIoaGVhZGVyOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWNiIGxvY2suICovXG4gICAgcHVibGljIHdpdGhCbG9jayhibG9jazogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHRoaXMucGF0aCwgYmxvY2ssIHRoaXMuZW1iZWQsIHRoaXMuZGlzcGxheSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBmb3IgbGluayBlcXVhbGl0eSAoaS5lLiwgdGhhdCB0aGUgbGlua3MgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGV4YWN0IGxvY2F0aW9uKS4gKi9cbiAgICBwdWJsaWMgZXF1YWxzKG90aGVyOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gb3RoZXIucGF0aCAmJiB0aGlzLnR5cGUgPT0gb3RoZXIudHlwZSAmJiB0aGlzLnN1YnBhdGggPT0gb3RoZXIuc3VicGF0aDtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gaXQncyBtYXJrZG93biByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovXG4gICAgcHVibGljIHRvT2JqZWN0KCk6IEpzb25MaW5rIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHN1YnBhdGg6IHRoaXMuc3VicGF0aCxcbiAgICAgICAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgICAgICAgIGVtYmVkOiB0aGlzLmVtYmVkLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqL1xuICAgIHB1YmxpYyB0b0ZpbGUoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy5wYXRoLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayBpbnRvIGFuIGVtYmVkZGVkIGxpbmsuICovXG4gICAgcHVibGljIHRvRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhIG5vbi1lbWJlZGRlZCBsaW5rLiAqL1xuICAgIHB1YmxpYyBmcm9tRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIG1hcmtkb3duIHNvIGl0IGNhbiBiZSByZW5kZXJlZC4gKi9cbiAgICBwdWJsaWMgbWFya2Rvd24oKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICh0aGlzLmVtYmVkID8gXCIhXCIgOiBcIlwiKSArIFwiW1tcIiArIHRoaXMub2JzaWRpYW5MaW5rKCk7XG4gICAgICAgIHJlc3VsdCArPSBcInxcIjtcbiAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGlzcGxheU9yRGVmYXVsdCgpO1xuICAgICAgICByZXN1bHQgKz0gXCJdXVwiO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIGRpc3BsYXkgZm9yIHRoaXMgbGluayBpZiBwcmVzZW50LCBvciByZXR1cm4gYSBzaW1wbGUgZGVmYXVsdCBkaXNwbGF5LiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5T3JEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcImhlYWRlclwiIHx8IHRoaXMudHlwZSA9PSBcImJsb2NrXCIpIHJlc3VsdCArPSBcIiA+IFwiICsgdGhpcy5zdWJwYXRoO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhlIGlubmVyIHBhcnQgb2YgdGhlIGxpbmsgdG8gc29tZXRoaW5nIHRoYXQgT2JzaWRpYW4gY2FuIG9wZW4gLyB1bmRlcnN0YW5kLiAqL1xuICAgIHB1YmxpYyBvYnNpZGlhbkxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlKFwifFwiLCBcIlxcXFx8XCIpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09IFwiaGVhZGVyXCIpIHJldHVybiBlc2NhcGVkICsgXCIjXCIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2UoXCJ8XCIsIFwiXFxcXHxcIik7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJibG9ja1wiKSByZXR1cm4gZXNjYXBlZCArIFwiI15cIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZShcInxcIiwgXCJcXFxcfFwiKTtcbiAgICAgICAgZWxzZSByZXR1cm4gZXNjYXBlZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIHN0cmlwcGVkIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgZmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgIH1cbn1cblxuLyoqIFNlcmlhbGl6ZWQgZm9ybSBvZiBhIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkxpbmsge1xuICAgIC8qKiBUaGUgZmlsZSBwYXRoIHRoaXMgbGluayBwb2ludHMgdG8uICovXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBkaXNwbGF5Pzogc3RyaW5nO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb3IgaGVhZGVyIHRoaXMgbGluayBwb2ludHMgdG8gd2l0aGluIGEgZmlsZSwgaWYgcmVsZXZhbnQuICovXG4gICAgc3VicGF0aD86IHN0cmluZztcbiAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKG9mIGZvcm0gJyFbW2hlbGxvXV0nKT8gKi9cbiAgICBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgdHlwZTogXCJmaWxlXCIgfCBcImhlYWRlclwiIHwgXCJibG9ja1wiO1xufVxuXG4vKiogU3BsaXQgb24gdW5lc2NhcGVkIHBpcGVzIGluIGFuIGlubmVyIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdE9uVW5lc2NhcGVkUGlwZShsaW5rOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdIHtcbiAgICBsZXQgcGlwZSA9IC0xO1xuICAgIHdoaWxlICgocGlwZSA9IGxpbmsuaW5kZXhPZihcInxcIiwgcGlwZSArIDEpKSA+PSAwKSB7XG4gICAgICAgIGlmIChwaXBlID4gMCAmJiBsaW5rW3BpcGUgLSAxXSA9PSBcIlxcXFxcIikgY29udGludWU7XG4gICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcXFxcfC9nLCBcInxcIiksIGxpbmsuc3Vic3RyaW5nKHBpcGUgKyAxKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtsaW5rLnJlcGxhY2UoL1xcXFxcXHwvZywgXCJ8XCIpLCB1bmRlZmluZWRdO1xufVxuIiwgImNvbnN0IEFMSUFTID0gU3ltYm9sLmZvcigneWFtbC5hbGlhcycpO1xuY29uc3QgRE9DID0gU3ltYm9sLmZvcigneWFtbC5kb2N1bWVudCcpO1xuY29uc3QgTUFQID0gU3ltYm9sLmZvcigneWFtbC5tYXAnKTtcbmNvbnN0IFBBSVIgPSBTeW1ib2wuZm9yKCd5YW1sLnBhaXInKTtcbmNvbnN0IFNDQUxBUiA9IFN5bWJvbC5mb3IoJ3lhbWwuc2NhbGFyJyk7XG5jb25zdCBTRVEgPSBTeW1ib2wuZm9yKCd5YW1sLnNlcScpO1xuY29uc3QgTk9ERV9UWVBFID0gU3ltYm9sLmZvcigneWFtbC5ub2RlLnR5cGUnKTtcbmNvbnN0IGlzQWxpYXMgPSAobm9kZSkgPT4gISFub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlW05PREVfVFlQRV0gPT09IEFMSUFTO1xuY29uc3QgaXNEb2N1bWVudCA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gRE9DO1xuY29uc3QgaXNNYXAgPSAobm9kZSkgPT4gISFub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlW05PREVfVFlQRV0gPT09IE1BUDtcbmNvbnN0IGlzUGFpciA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gUEFJUjtcbmNvbnN0IGlzU2NhbGFyID0gKG5vZGUpID0+ICEhbm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgJiYgbm9kZVtOT0RFX1RZUEVdID09PSBTQ0FMQVI7XG5jb25zdCBpc1NlcSA9IChub2RlKSA9PiAhIW5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGVbTk9ERV9UWVBFXSA9PT0gU0VRO1xuZnVuY3Rpb24gaXNDb2xsZWN0aW9uKG5vZGUpIHtcbiAgICBpZiAobm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpXG4gICAgICAgIHN3aXRjaCAobm9kZVtOT0RFX1RZUEVdKSB7XG4gICAgICAgICAgICBjYXNlIE1BUDpcbiAgICAgICAgICAgIGNhc2UgU0VROlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNOb2RlKG5vZGUpIHtcbiAgICBpZiAobm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpXG4gICAgICAgIHN3aXRjaCAobm9kZVtOT0RFX1RZUEVdKSB7XG4gICAgICAgICAgICBjYXNlIEFMSUFTOlxuICAgICAgICAgICAgY2FzZSBNQVA6XG4gICAgICAgICAgICBjYXNlIFNDQUxBUjpcbiAgICAgICAgICAgIGNhc2UgU0VROlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuY29uc3QgaGFzQW5jaG9yID0gKG5vZGUpID0+IChpc1NjYWxhcihub2RlKSB8fCBpc0NvbGxlY3Rpb24obm9kZSkpICYmICEhbm9kZS5hbmNob3I7XG5cbmV4cG9ydCB7IEFMSUFTLCBET0MsIE1BUCwgTk9ERV9UWVBFLCBQQUlSLCBTQ0FMQVIsIFNFUSwgaGFzQW5jaG9yLCBpc0FsaWFzLCBpc0NvbGxlY3Rpb24sIGlzRG9jdW1lbnQsIGlzTWFwLCBpc05vZGUsIGlzUGFpciwgaXNTY2FsYXIsIGlzU2VxIH07XG4iLCAiaW1wb3J0IHsgaXNEb2N1bWVudCwgaXNOb2RlLCBpc1BhaXIsIGlzQ29sbGVjdGlvbiwgaXNNYXAsIGlzU2VxLCBpc1NjYWxhciwgaXNBbGlhcyB9IGZyb20gJy4vbm9kZXMvaWRlbnRpdHkuanMnO1xuXG5jb25zdCBCUkVBSyA9IFN5bWJvbCgnYnJlYWsgdmlzaXQnKTtcbmNvbnN0IFNLSVAgPSBTeW1ib2woJ3NraXAgY2hpbGRyZW4nKTtcbmNvbnN0IFJFTU9WRSA9IFN5bWJvbCgncmVtb3ZlIG5vZGUnKTtcbi8qKlxuICogQXBwbHkgYSB2aXNpdG9yIHRvIGFuIEFTVCBub2RlIG9yIGRvY3VtZW50LlxuICpcbiAqIFdhbGtzIHRocm91Z2ggdGhlIHRyZWUgKGRlcHRoLWZpcnN0KSBzdGFydGluZyBmcm9tIGBub2RlYCwgY2FsbGluZyBhXG4gKiBgdmlzaXRvcmAgZnVuY3Rpb24gd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gKiAgIC0gYGtleWA6IEZvciBzZXF1ZW5jZSB2YWx1ZXMgYW5kIG1hcCBgUGFpcmAsIHRoZSBub2RlJ3MgaW5kZXggaW4gdGhlXG4gKiAgICAgY29sbGVjdGlvbi4gV2l0aGluIGEgYFBhaXJgLCBgJ2tleSdgIG9yIGAndmFsdWUnYCwgY29ycmVzcG9uZGluZ2x5LlxuICogICAgIGBudWxsYCBmb3IgdGhlIHJvb3Qgbm9kZS5cbiAqICAgLSBgbm9kZWA6IFRoZSBjdXJyZW50IG5vZGUuXG4gKiAgIC0gYHBhdGhgOiBUaGUgYW5jZXN0cnkgb2YgdGhlIGN1cnJlbnQgbm9kZS5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB2aXNpdG9yIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHRyYXZlcnNhbDpcbiAqICAgLSBgdW5kZWZpbmVkYCAoZGVmYXVsdCk6IERvIG5vdGhpbmcgYW5kIGNvbnRpbnVlXG4gKiAgIC0gYHZpc2l0LlNLSVBgOiBEbyBub3QgdmlzaXQgdGhlIGNoaWxkcmVuIG9mIHRoaXMgbm9kZSwgY29udGludWUgd2l0aCBuZXh0XG4gKiAgICAgc2libGluZ1xuICogICAtIGB2aXNpdC5CUkVBS2A6IFRlcm1pbmF0ZSB0cmF2ZXJzYWwgY29tcGxldGVseVxuICogICAtIGB2aXNpdC5SRU1PVkVgOiBSZW1vdmUgdGhlIGN1cnJlbnQgbm9kZSwgdGhlbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZVxuICogICAtIGBOb2RlYDogUmVwbGFjZSB0aGUgY3VycmVudCBub2RlLCB0aGVuIGNvbnRpbnVlIGJ5IHZpc2l0aW5nIGl0XG4gKiAgIC0gYG51bWJlcmA6IFdoaWxlIGl0ZXJhdGluZyB0aGUgaXRlbXMgb2YgYSBzZXF1ZW5jZSBvciBtYXAsIHNldCB0aGUgaW5kZXhcbiAqICAgICBvZiB0aGUgbmV4dCBzdGVwLiBUaGlzIGlzIHVzZWZ1bCBlc3BlY2lhbGx5IGlmIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudFxuICogICAgIG5vZGUgaGFzIGNoYW5nZWQuXG4gKlxuICogSWYgYHZpc2l0b3JgIGlzIGEgc2luZ2xlIGZ1bmN0aW9uLCBpdCB3aWxsIGJlIGNhbGxlZCB3aXRoIGFsbCB2YWx1ZXNcbiAqIGVuY291bnRlcmVkIGluIHRoZSB0cmVlLCBpbmNsdWRpbmcgZS5nLiBgbnVsbGAgdmFsdWVzLiBBbHRlcm5hdGl2ZWx5LFxuICogc2VwYXJhdGUgdmlzaXRvciBmdW5jdGlvbnMgbWF5IGJlIGRlZmluZWQgZm9yIGVhY2ggYE1hcGAsIGBQYWlyYCwgYFNlcWAsXG4gKiBgQWxpYXNgIGFuZCBgU2NhbGFyYCBub2RlLiBUbyBkZWZpbmUgdGhlIHNhbWUgdmlzaXRvciBmdW5jdGlvbiBmb3IgbW9yZSB0aGFuXG4gKiBvbmUgbm9kZSB0eXBlLCB1c2UgdGhlIGBDb2xsZWN0aW9uYCAobWFwIGFuZCBzZXEpLCBgVmFsdWVgIChtYXAsIHNlcSAmIHNjYWxhcilcbiAqIGFuZCBgTm9kZWAgKGFsaWFzLCBtYXAsIHNlcSAmIHNjYWxhcikgdGFyZ2V0cy4gT2YgYWxsIHRoZXNlLCBvbmx5IHRoZSBtb3N0XG4gKiBzcGVjaWZpYyBkZWZpbmVkIG9uZSB3aWxsIGJlIHVzZWQgZm9yIGVhY2ggbm9kZS5cbiAqL1xuZnVuY3Rpb24gdmlzaXQobm9kZSwgdmlzaXRvcikge1xuICAgIGNvbnN0IHZpc2l0b3JfID0gaW5pdFZpc2l0b3IodmlzaXRvcik7XG4gICAgaWYgKGlzRG9jdW1lbnQobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY2QgPSB2aXNpdF8obnVsbCwgbm9kZS5jb250ZW50cywgdmlzaXRvcl8sIE9iamVjdC5mcmVlemUoW25vZGVdKSk7XG4gICAgICAgIGlmIChjZCA9PT0gUkVNT1ZFKVxuICAgICAgICAgICAgbm9kZS5jb250ZW50cyA9IG51bGw7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgICAgdmlzaXRfKG51bGwsIG5vZGUsIHZpc2l0b3JfLCBPYmplY3QuZnJlZXplKFtdKSk7XG59XG4vLyBXaXRob3V0IHRoZSBgYXMgc3ltYm9sYCBjYXN0cywgVFMgZGVjbGFyZXMgdGhlc2UgaW4gdGhlIGB2aXNpdGBcbi8vIG5hbWVzcGFjZSB1c2luZyBgdmFyYCwgYnV0IHRoZW4gY29tcGxhaW5zIGFib3V0IHRoYXQgYmVjYXVzZVxuLy8gYHVuaXF1ZSBzeW1ib2xgIG11c3QgYmUgYGNvbnN0YC5cbi8qKiBUZXJtaW5hdGUgdmlzaXQgdHJhdmVyc2FsIGNvbXBsZXRlbHkgKi9cbnZpc2l0LkJSRUFLID0gQlJFQUs7XG4vKiogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBub2RlICovXG52aXNpdC5TS0lQID0gU0tJUDtcbi8qKiBSZW1vdmUgdGhlIGN1cnJlbnQgbm9kZSAqL1xudmlzaXQuUkVNT1ZFID0gUkVNT1ZFO1xuZnVuY3Rpb24gdmlzaXRfKGtleSwgbm9kZSwgdmlzaXRvciwgcGF0aCkge1xuICAgIGNvbnN0IGN0cmwgPSBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpO1xuICAgIGlmIChpc05vZGUoY3RybCkgfHwgaXNQYWlyKGN0cmwpKSB7XG4gICAgICAgIHJlcGxhY2VOb2RlKGtleSwgcGF0aCwgY3RybCk7XG4gICAgICAgIHJldHVybiB2aXNpdF8oa2V5LCBjdHJsLCB2aXNpdG9yLCBwYXRoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjdHJsICE9PSAnc3ltYm9sJykge1xuICAgICAgICBpZiAoaXNDb2xsZWN0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICBwYXRoID0gT2JqZWN0LmZyZWV6ZShwYXRoLmNvbmNhdChub2RlKSk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuaXRlbXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaSA9IHZpc2l0XyhpLCBub2RlLml0ZW1zW2ldLCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNpID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgaSA9IGNpIC0gMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCUkVBSztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gUkVNT1ZFKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaXRlbXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICBpIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGFpcihub2RlKSkge1xuICAgICAgICAgICAgcGF0aCA9IE9iamVjdC5mcmVlemUocGF0aC5jb25jYXQobm9kZSkpO1xuICAgICAgICAgICAgY29uc3QgY2sgPSB2aXNpdF8oJ2tleScsIG5vZGUua2V5LCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjayA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2sgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLmtleSA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdiA9IHZpc2l0XygndmFsdWUnLCBub2RlLnZhbHVlLCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjdiA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY3YgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3RybDtcbn1cbi8qKlxuICogQXBwbHkgYW4gYXN5bmMgdmlzaXRvciB0byBhbiBBU1Qgbm9kZSBvciBkb2N1bWVudC5cbiAqXG4gKiBXYWxrcyB0aHJvdWdoIHRoZSB0cmVlIChkZXB0aC1maXJzdCkgc3RhcnRpbmcgZnJvbSBgbm9kZWAsIGNhbGxpbmcgYVxuICogYHZpc2l0b3JgIGZ1bmN0aW9uIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICogICAtIGBrZXlgOiBGb3Igc2VxdWVuY2UgdmFsdWVzIGFuZCBtYXAgYFBhaXJgLCB0aGUgbm9kZSdzIGluZGV4IGluIHRoZVxuICogICAgIGNvbGxlY3Rpb24uIFdpdGhpbiBhIGBQYWlyYCwgYCdrZXknYCBvciBgJ3ZhbHVlJ2AsIGNvcnJlc3BvbmRpbmdseS5cbiAqICAgICBgbnVsbGAgZm9yIHRoZSByb290IG5vZGUuXG4gKiAgIC0gYG5vZGVgOiBUaGUgY3VycmVudCBub2RlLlxuICogICAtIGBwYXRoYDogVGhlIGFuY2VzdHJ5IG9mIHRoZSBjdXJyZW50IG5vZGUuXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdmlzaXRvciBtYXkgYmUgdXNlZCB0byBjb250cm9sIHRoZSB0cmF2ZXJzYWw6XG4gKiAgIC0gYFByb21pc2VgOiBNdXN0IHJlc29sdmUgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzXG4gKiAgIC0gYHVuZGVmaW5lZGAgKGRlZmF1bHQpOiBEbyBub3RoaW5nIGFuZCBjb250aW51ZVxuICogICAtIGB2aXNpdC5TS0lQYDogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsIGNvbnRpbnVlIHdpdGggbmV4dFxuICogICAgIHNpYmxpbmdcbiAqICAgLSBgdmlzaXQuQlJFQUtgOiBUZXJtaW5hdGUgdHJhdmVyc2FsIGNvbXBsZXRlbHlcbiAqICAgLSBgdmlzaXQuUkVNT1ZFYDogUmVtb3ZlIHRoZSBjdXJyZW50IG5vZGUsIHRoZW4gY29udGludWUgd2l0aCB0aGUgbmV4dCBvbmVcbiAqICAgLSBgTm9kZWA6IFJlcGxhY2UgdGhlIGN1cnJlbnQgbm9kZSwgdGhlbiBjb250aW51ZSBieSB2aXNpdGluZyBpdFxuICogICAtIGBudW1iZXJgOiBXaGlsZSBpdGVyYXRpbmcgdGhlIGl0ZW1zIG9mIGEgc2VxdWVuY2Ugb3IgbWFwLCBzZXQgdGhlIGluZGV4XG4gKiAgICAgb2YgdGhlIG5leHQgc3RlcC4gVGhpcyBpcyB1c2VmdWwgZXNwZWNpYWxseSBpZiB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnRcbiAqICAgICBub2RlIGhhcyBjaGFuZ2VkLlxuICpcbiAqIElmIGB2aXNpdG9yYCBpcyBhIHNpbmdsZSBmdW5jdGlvbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbGwgdmFsdWVzXG4gKiBlbmNvdW50ZXJlZCBpbiB0aGUgdHJlZSwgaW5jbHVkaW5nIGUuZy4gYG51bGxgIHZhbHVlcy4gQWx0ZXJuYXRpdmVseSxcbiAqIHNlcGFyYXRlIHZpc2l0b3IgZnVuY3Rpb25zIG1heSBiZSBkZWZpbmVkIGZvciBlYWNoIGBNYXBgLCBgUGFpcmAsIGBTZXFgLFxuICogYEFsaWFzYCBhbmQgYFNjYWxhcmAgbm9kZS4gVG8gZGVmaW5lIHRoZSBzYW1lIHZpc2l0b3IgZnVuY3Rpb24gZm9yIG1vcmUgdGhhblxuICogb25lIG5vZGUgdHlwZSwgdXNlIHRoZSBgQ29sbGVjdGlvbmAgKG1hcCBhbmQgc2VxKSwgYFZhbHVlYCAobWFwLCBzZXEgJiBzY2FsYXIpXG4gKiBhbmQgYE5vZGVgIChhbGlhcywgbWFwLCBzZXEgJiBzY2FsYXIpIHRhcmdldHMuIE9mIGFsbCB0aGVzZSwgb25seSB0aGUgbW9zdFxuICogc3BlY2lmaWMgZGVmaW5lZCBvbmUgd2lsbCBiZSB1c2VkIGZvciBlYWNoIG5vZGUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZpc2l0QXN5bmMobm9kZSwgdmlzaXRvcikge1xuICAgIGNvbnN0IHZpc2l0b3JfID0gaW5pdFZpc2l0b3IodmlzaXRvcik7XG4gICAgaWYgKGlzRG9jdW1lbnQobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY2QgPSBhd2FpdCB2aXNpdEFzeW5jXyhudWxsLCBub2RlLmNvbnRlbnRzLCB2aXNpdG9yXywgT2JqZWN0LmZyZWV6ZShbbm9kZV0pKTtcbiAgICAgICAgaWYgKGNkID09PSBSRU1PVkUpXG4gICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gbnVsbDtcbiAgICB9XG4gICAgZWxzZVxuICAgICAgICBhd2FpdCB2aXNpdEFzeW5jXyhudWxsLCBub2RlLCB2aXNpdG9yXywgT2JqZWN0LmZyZWV6ZShbXSkpO1xufVxuLy8gV2l0aG91dCB0aGUgYGFzIHN5bWJvbGAgY2FzdHMsIFRTIGRlY2xhcmVzIHRoZXNlIGluIHRoZSBgdmlzaXRgXG4vLyBuYW1lc3BhY2UgdXNpbmcgYHZhcmAsIGJ1dCB0aGVuIGNvbXBsYWlucyBhYm91dCB0aGF0IGJlY2F1c2Vcbi8vIGB1bmlxdWUgc3ltYm9sYCBtdXN0IGJlIGBjb25zdGAuXG4vKiogVGVybWluYXRlIHZpc2l0IHRyYXZlcnNhbCBjb21wbGV0ZWx5ICovXG52aXNpdEFzeW5jLkJSRUFLID0gQlJFQUs7XG4vKiogRG8gbm90IHZpc2l0IHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBub2RlICovXG52aXNpdEFzeW5jLlNLSVAgPSBTS0lQO1xuLyoqIFJlbW92ZSB0aGUgY3VycmVudCBub2RlICovXG52aXNpdEFzeW5jLlJFTU9WRSA9IFJFTU9WRTtcbmFzeW5jIGZ1bmN0aW9uIHZpc2l0QXN5bmNfKGtleSwgbm9kZSwgdmlzaXRvciwgcGF0aCkge1xuICAgIGNvbnN0IGN0cmwgPSBhd2FpdCBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpO1xuICAgIGlmIChpc05vZGUoY3RybCkgfHwgaXNQYWlyKGN0cmwpKSB7XG4gICAgICAgIHJlcGxhY2VOb2RlKGtleSwgcGF0aCwgY3RybCk7XG4gICAgICAgIHJldHVybiB2aXNpdEFzeW5jXyhrZXksIGN0cmwsIHZpc2l0b3IsIHBhdGgpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGN0cmwgIT09ICdzeW1ib2wnKSB7XG4gICAgICAgIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgICAgIHBhdGggPSBPYmplY3QuZnJlZXplKHBhdGguY29uY2F0KG5vZGUpKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5pdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNpID0gYXdhaXQgdmlzaXRBc3luY18oaSwgbm9kZS5pdGVtc1tpXSwgdmlzaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaSA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICAgICAgICAgIGkgPSBjaSAtIDE7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2kgPT09IEJSRUFLKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUs7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2kgPT09IFJFTU9WRSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1BhaXIobm9kZSkpIHtcbiAgICAgICAgICAgIHBhdGggPSBPYmplY3QuZnJlZXplKHBhdGguY29uY2F0KG5vZGUpKTtcbiAgICAgICAgICAgIGNvbnN0IGNrID0gYXdhaXQgdmlzaXRBc3luY18oJ2tleScsIG5vZGUua2V5LCB2aXNpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChjayA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJSRUFLO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2sgPT09IFJFTU9WRSlcbiAgICAgICAgICAgICAgICBub2RlLmtleSA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdiA9IGF3YWl0IHZpc2l0QXN5bmNfKCd2YWx1ZScsIG5vZGUudmFsdWUsIHZpc2l0b3IsIHBhdGgpO1xuICAgICAgICAgICAgaWYgKGN2ID09PSBCUkVBSylcbiAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUs7XG4gICAgICAgICAgICBlbHNlIGlmIChjdiA9PT0gUkVNT1ZFKVxuICAgICAgICAgICAgICAgIG5vZGUudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjdHJsO1xufVxuZnVuY3Rpb24gaW5pdFZpc2l0b3IodmlzaXRvcikge1xuICAgIGlmICh0eXBlb2YgdmlzaXRvciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHZpc2l0b3IuQ29sbGVjdGlvbiB8fCB2aXNpdG9yLk5vZGUgfHwgdmlzaXRvci5WYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgQWxpYXM6IHZpc2l0b3IuTm9kZSxcbiAgICAgICAgICAgIE1hcDogdmlzaXRvci5Ob2RlLFxuICAgICAgICAgICAgU2NhbGFyOiB2aXNpdG9yLk5vZGUsXG4gICAgICAgICAgICBTZXE6IHZpc2l0b3IuTm9kZVxuICAgICAgICB9LCB2aXNpdG9yLlZhbHVlICYmIHtcbiAgICAgICAgICAgIE1hcDogdmlzaXRvci5WYWx1ZSxcbiAgICAgICAgICAgIFNjYWxhcjogdmlzaXRvci5WYWx1ZSxcbiAgICAgICAgICAgIFNlcTogdmlzaXRvci5WYWx1ZVxuICAgICAgICB9LCB2aXNpdG9yLkNvbGxlY3Rpb24gJiYge1xuICAgICAgICAgICAgTWFwOiB2aXNpdG9yLkNvbGxlY3Rpb24sXG4gICAgICAgICAgICBTZXE6IHZpc2l0b3IuQ29sbGVjdGlvblxuICAgICAgICB9LCB2aXNpdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2l0b3I7XG59XG5mdW5jdGlvbiBjYWxsVmlzaXRvcihrZXksIG5vZGUsIHZpc2l0b3IsIHBhdGgpIHtcbiAgICBpZiAodHlwZW9mIHZpc2l0b3IgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiB2aXNpdG9yKGtleSwgbm9kZSwgcGF0aCk7XG4gICAgaWYgKGlzTWFwKG5vZGUpKVxuICAgICAgICByZXR1cm4gdmlzaXRvci5NYXA/LihrZXksIG5vZGUsIHBhdGgpO1xuICAgIGlmIChpc1NlcShub2RlKSlcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IuU2VxPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICBpZiAoaXNQYWlyKG5vZGUpKVxuICAgICAgICByZXR1cm4gdmlzaXRvci5QYWlyPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICBpZiAoaXNTY2FsYXIobm9kZSkpXG4gICAgICAgIHJldHVybiB2aXNpdG9yLlNjYWxhcj8uKGtleSwgbm9kZSwgcGF0aCk7XG4gICAgaWYgKGlzQWxpYXMobm9kZSkpXG4gICAgICAgIHJldHVybiB2aXNpdG9yLkFsaWFzPy4oa2V5LCBub2RlLCBwYXRoKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gcmVwbGFjZU5vZGUoa2V5LCBwYXRoLCBub2RlKSB7XG4gICAgY29uc3QgcGFyZW50ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgIGlmIChpc0NvbGxlY3Rpb24ocGFyZW50KSkge1xuICAgICAgICBwYXJlbnQuaXRlbXNba2V5XSA9IG5vZGU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGFpcihwYXJlbnQpKSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdrZXknKVxuICAgICAgICAgICAgcGFyZW50LmtleSA9IG5vZGU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHBhcmVudC52YWx1ZSA9IG5vZGU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzRG9jdW1lbnQocGFyZW50KSkge1xuICAgICAgICBwYXJlbnQuY29udGVudHMgPSBub2RlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcHQgPSBpc0FsaWFzKHBhcmVudCkgPyAnYWxpYXMnIDogJ3NjYWxhcic7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlcGxhY2Ugbm9kZSB3aXRoICR7cHR9IHBhcmVudGApO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgdmlzaXQsIHZpc2l0QXN5bmMgfTtcbiIsICJpbXBvcnQgeyBpc05vZGUgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uL3Zpc2l0LmpzJztcblxuY29uc3QgZXNjYXBlQ2hhcnMgPSB7XG4gICAgJyEnOiAnJTIxJyxcbiAgICAnLCc6ICclMkMnLFxuICAgICdbJzogJyU1QicsXG4gICAgJ10nOiAnJTVEJyxcbiAgICAneyc6ICclN0InLFxuICAgICd9JzogJyU3RCdcbn07XG5jb25zdCBlc2NhcGVUYWdOYW1lID0gKHRuKSA9PiB0bi5yZXBsYWNlKC9bISxbXFxde31dL2csIGNoID0+IGVzY2FwZUNoYXJzW2NoXSk7XG5jbGFzcyBEaXJlY3RpdmVzIHtcbiAgICBjb25zdHJ1Y3Rvcih5YW1sLCB0YWdzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IG1hcmtlciBgLS0tYC4gSWYgYG51bGxgLCBhIG1hcmtlciBtYXkgc3RpbGwgYmVcbiAgICAgICAgICogaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50J3Mgc3RyaW5naWZpZWQgcmVwcmVzZW50YXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmRvY1N0YXJ0ID0gbnVsbDtcbiAgICAgICAgLyoqIFRoZSBkb2MtZW5kIG1hcmtlciBgLi4uYC4gICovXG4gICAgICAgIHRoaXMuZG9jRW5kID0gZmFsc2U7XG4gICAgICAgIHRoaXMueWFtbCA9IE9iamVjdC5hc3NpZ24oe30sIERpcmVjdGl2ZXMuZGVmYXVsdFlhbWwsIHlhbWwpO1xuICAgICAgICB0aGlzLnRhZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBEaXJlY3RpdmVzLmRlZmF1bHRUYWdzLCB0YWdzKTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgRGlyZWN0aXZlcyh0aGlzLnlhbWwsIHRoaXMudGFncyk7XG4gICAgICAgIGNvcHkuZG9jU3RhcnQgPSB0aGlzLmRvY1N0YXJ0O1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRHVyaW5nIHBhcnNpbmcsIGdldCBhIERpcmVjdGl2ZXMgaW5zdGFuY2UgZm9yIHRoZSBjdXJyZW50IGRvY3VtZW50IGFuZFxuICAgICAqIHVwZGF0ZSB0aGUgc3RyZWFtIHN0YXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCB2ZXJzaW9uJ3Mgc3BlYy5cbiAgICAgKi9cbiAgICBhdERvY3VtZW50KCkge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgRGlyZWN0aXZlcyh0aGlzLnlhbWwsIHRoaXMudGFncyk7XG4gICAgICAgIHN3aXRjaCAodGhpcy55YW1sLnZlcnNpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJzEuMSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hdE5leHREb2N1bWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcxLjInOlxuICAgICAgICAgICAgICAgIHRoaXMuYXROZXh0RG9jdW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnlhbWwgPSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0OiBEaXJlY3RpdmVzLmRlZmF1bHRZYW1sLmV4cGxpY2l0LFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiAnMS4yJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gT2JqZWN0LmFzc2lnbih7fSwgRGlyZWN0aXZlcy5kZWZhdWx0VGFncyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9uRXJyb3IgLSBNYXkgYmUgY2FsbGVkIGV2ZW4gaWYgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bFxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBvbiBzdWNjZXNzXG4gICAgICovXG4gICAgYWRkKGxpbmUsIG9uRXJyb3IpIHtcbiAgICAgICAgaWYgKHRoaXMuYXROZXh0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMueWFtbCA9IHsgZXhwbGljaXQ6IERpcmVjdGl2ZXMuZGVmYXVsdFlhbWwuZXhwbGljaXQsIHZlcnNpb246ICcxLjEnIH07XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBEaXJlY3RpdmVzLmRlZmF1bHRUYWdzKTtcbiAgICAgICAgICAgIHRoaXMuYXROZXh0RG9jdW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0cyA9IGxpbmUudHJpbSgpLnNwbGl0KC9bIFxcdF0rLyk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXJ0cy5zaGlmdCgpO1xuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJyVUQUcnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKDAsICclVEFHIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IHR3byBwYXJ0cycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgW2hhbmRsZSwgcHJlZml4XSA9IHBhcnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnc1toYW5kbGVdID0gcHJlZml4O1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnJVlBTUwnOiB7XG4gICAgICAgICAgICAgICAgdGhpcy55YW1sLmV4cGxpY2l0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoMCwgJyVZQU1MIGRpcmVjdGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IG9uZSBwYXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgW3ZlcnNpb25dID0gcGFydHM7XG4gICAgICAgICAgICAgICAgaWYgKHZlcnNpb24gPT09ICcxLjEnIHx8IHZlcnNpb24gPT09ICcxLjInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWFtbC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gL15cXGQrXFwuXFxkKyQvLnRlc3QodmVyc2lvbik7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoNiwgYFVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiAke3ZlcnNpb259YCwgaXNWYWxpZCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG9uRXJyb3IoMCwgYFVua25vd24gZGlyZWN0aXZlICR7bmFtZX1gLCB0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzb2x2ZXMgYSB0YWcsIG1hdGNoaW5nIGhhbmRsZXMgdG8gdGhvc2UgZGVmaW5lZCBpbiAlVEFHIGRpcmVjdGl2ZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBSZXNvbHZlZCB0YWcsIHdoaWNoIG1heSBhbHNvIGJlIHRoZSBub24tc3BlY2lmaWMgdGFnIGAnISdgIG9yIGFcbiAgICAgKiAgIGAnIWxvY2FsJ2AgdGFnLCBvciBgbnVsbGAgaWYgdW5yZXNvbHZhYmxlLlxuICAgICAqL1xuICAgIHRhZ05hbWUoc291cmNlLCBvbkVycm9yKSB7XG4gICAgICAgIGlmIChzb3VyY2UgPT09ICchJylcbiAgICAgICAgICAgIHJldHVybiAnISc7IC8vIG5vbi1zcGVjaWZpYyB0YWdcbiAgICAgICAgaWYgKHNvdXJjZVswXSAhPT0gJyEnKSB7XG4gICAgICAgICAgICBvbkVycm9yKGBOb3QgYSB2YWxpZCB0YWc6ICR7c291cmNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVsxXSA9PT0gJzwnKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJiYXRpbSA9IHNvdXJjZS5zbGljZSgyLCAtMSk7XG4gICAgICAgICAgICBpZiAodmVyYmF0aW0gPT09ICchJyB8fCB2ZXJiYXRpbSA9PT0gJyEhJykge1xuICAgICAgICAgICAgICAgIG9uRXJyb3IoYFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke3NvdXJjZX0gaXMgaW52YWxpZC5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzb3VyY2Vbc291cmNlLmxlbmd0aCAtIDFdICE9PSAnPicpXG4gICAgICAgICAgICAgICAgb25FcnJvcignVmVyYmF0aW0gdGFncyBtdXN0IGVuZCB3aXRoIGEgPicpO1xuICAgICAgICAgICAgcmV0dXJuIHZlcmJhdGltO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFssIGhhbmRsZSwgc3VmZml4XSA9IHNvdXJjZS5tYXRjaCgvXiguKiEpKFteIV0qKSQvcyk7XG4gICAgICAgIGlmICghc3VmZml4KVxuICAgICAgICAgICAgb25FcnJvcihgVGhlICR7c291cmNlfSB0YWcgaGFzIG5vIHN1ZmZpeGApO1xuICAgICAgICBjb25zdCBwcmVmaXggPSB0aGlzLnRhZ3NbaGFuZGxlXTtcbiAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJlZml4ICsgZGVjb2RlVVJJQ29tcG9uZW50KHN1ZmZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yKFN0cmluZyhlcnJvcikpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYW5kbGUgPT09ICchJylcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7IC8vIGxvY2FsIHRhZ1xuICAgICAgICBvbkVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSB0YWc6ICR7c291cmNlfWApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBmdWxseSByZXNvbHZlZCB0YWcsIHJldHVybnMgaXRzIHByaW50YWJsZSBzdHJpbmcgZm9ybSxcbiAgICAgKiB0YWtpbmcgaW50byBhY2NvdW50IGN1cnJlbnQgdGFnIHByZWZpeGVzIGFuZCBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICB0YWdTdHJpbmcodGFnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2hhbmRsZSwgcHJlZml4XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpKSB7XG4gICAgICAgICAgICBpZiAodGFnLnN0YXJ0c1dpdGgocHJlZml4KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlICsgZXNjYXBlVGFnTmFtZSh0YWcuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFnWzBdID09PSAnIScgPyB0YWcgOiBgITwke3RhZ30+YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoZG9jKSB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy55YW1sLmV4cGxpY2l0XG4gICAgICAgICAgICA/IFtgJVlBTUwgJHt0aGlzLnlhbWwudmVyc2lvbiB8fCAnMS4yJ31gXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgY29uc3QgdGFnRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMudGFncyk7XG4gICAgICAgIGxldCB0YWdOYW1lcztcbiAgICAgICAgaWYgKGRvYyAmJiB0YWdFbnRyaWVzLmxlbmd0aCA+IDAgJiYgaXNOb2RlKGRvYy5jb250ZW50cykpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB7fTtcbiAgICAgICAgICAgIHZpc2l0KGRvYy5jb250ZW50cywgKF9rZXksIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNOb2RlKG5vZGUpICYmIG5vZGUudGFnKVxuICAgICAgICAgICAgICAgICAgICB0YWdzW25vZGUudGFnXSA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhZ05hbWVzID0gT2JqZWN0LmtleXModGFncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGFnTmFtZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBbaGFuZGxlLCBwcmVmaXhdIG9mIHRhZ0VudHJpZXMpIHtcbiAgICAgICAgICAgIGlmIChoYW5kbGUgPT09ICchIScgJiYgcHJlZml4ID09PSAndGFnOnlhbWwub3JnLDIwMDI6JylcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICghZG9jIHx8IHRhZ05hbWVzLnNvbWUodG4gPT4gdG4uc3RhcnRzV2l0aChwcmVmaXgpKSlcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAlVEFHICR7aGFuZGxlfSAke3ByZWZpeH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG4gICAgfVxufVxuRGlyZWN0aXZlcy5kZWZhdWx0WWFtbCA9IHsgZXhwbGljaXQ6IGZhbHNlLCB2ZXJzaW9uOiAnMS4yJyB9O1xuRGlyZWN0aXZlcy5kZWZhdWx0VGFncyA9IHsgJyEhJzogJ3RhZzp5YW1sLm9yZywyMDAyOicgfTtcblxuZXhwb3J0IHsgRGlyZWN0aXZlcyB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc0NvbGxlY3Rpb24gfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uL3Zpc2l0LmpzJztcblxuLyoqXG4gKiBWZXJpZnkgdGhhdCB0aGUgaW5wdXQgc3RyaW5nIGlzIGEgdmFsaWQgYW5jaG9yLlxuICpcbiAqIFdpbGwgdGhyb3cgb24gZXJyb3JzLlxuICovXG5mdW5jdGlvbiBhbmNob3JJc1ZhbGlkKGFuY2hvcikge1xuICAgIGlmICgvW1xceDAwLVxceDE5XFxzLFtcXF17fV0vLnRlc3QoYW5jaG9yKSkge1xuICAgICAgICBjb25zdCBzYSA9IEpTT04uc3RyaW5naWZ5KGFuY2hvcik7XG4gICAgICAgIGNvbnN0IG1zZyA9IGBBbmNob3IgbXVzdCBub3QgY29udGFpbiB3aGl0ZXNwYWNlIG9yIGNvbnRyb2wgY2hhcmFjdGVyczogJHtzYX1gO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBhbmNob3JOYW1lcyhyb290KSB7XG4gICAgY29uc3QgYW5jaG9ycyA9IG5ldyBTZXQoKTtcbiAgICB2aXNpdChyb290LCB7XG4gICAgICAgIFZhbHVlKF9rZXksIG5vZGUpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmFuY2hvcilcbiAgICAgICAgICAgICAgICBhbmNob3JzLmFkZChub2RlLmFuY2hvcik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYW5jaG9ycztcbn1cbi8qKiBGaW5kIGEgbmV3IGFuY2hvciBuYW1lIHdpdGggdGhlIGdpdmVuIGBwcmVmaXhgIGFuZCBhIG9uZS1pbmRleGVkIHN1ZmZpeC4gKi9cbmZ1bmN0aW9uIGZpbmROZXdBbmNob3IocHJlZml4LCBleGNsdWRlKSB7XG4gICAgZm9yIChsZXQgaSA9IDE7IHRydWU7ICsraSkge1xuICAgICAgICBjb25zdCBuYW1lID0gYCR7cHJlZml4fSR7aX1gO1xuICAgICAgICBpZiAoIWV4Y2x1ZGUuaGFzKG5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlTm9kZUFuY2hvcnMoZG9jLCBwcmVmaXgpIHtcbiAgICBjb25zdCBhbGlhc09iamVjdHMgPSBbXTtcbiAgICBjb25zdCBzb3VyY2VPYmplY3RzID0gbmV3IE1hcCgpO1xuICAgIGxldCBwcmV2QW5jaG9ycyA9IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb25BbmNob3I6IChzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIGFsaWFzT2JqZWN0cy5wdXNoKHNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoIXByZXZBbmNob3JzKVxuICAgICAgICAgICAgICAgIHByZXZBbmNob3JzID0gYW5jaG9yTmFtZXMoZG9jKTtcbiAgICAgICAgICAgIGNvbnN0IGFuY2hvciA9IGZpbmROZXdBbmNob3IocHJlZml4LCBwcmV2QW5jaG9ycyk7XG4gICAgICAgICAgICBwcmV2QW5jaG9ycy5hZGQoYW5jaG9yKTtcbiAgICAgICAgICAgIHJldHVybiBhbmNob3I7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaXRoIGNpcmN1bGFyIHJlZmVyZW5jZXMsIHRoZSBzb3VyY2Ugbm9kZSBpcyBvbmx5IHJlc29sdmVkIGFmdGVyIGFsbFxuICAgICAgICAgKiBvZiBpdHMgY2hpbGQgbm9kZXMgYXJlLiBUaGlzIGlzIHdoeSBhbmNob3JzIGFyZSBzZXQgb25seSBhZnRlciBhbGwgb2ZcbiAgICAgICAgICogdGhlIG5vZGVzIGhhdmUgYmVlbiBjcmVhdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgc2V0QW5jaG9yczogKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgYWxpYXNPYmplY3RzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmID0gc291cmNlT2JqZWN0cy5nZXQoc291cmNlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVmLmFuY2hvciAmJlxuICAgICAgICAgICAgICAgICAgICAoaXNTY2FsYXIocmVmLm5vZGUpIHx8IGlzQ29sbGVjdGlvbihyZWYubm9kZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5ub2RlLmFuY2hvciA9IHJlZi5hbmNob3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgcmVwZWF0ZWQgb2JqZWN0ICh0aGlzIHNob3VsZCBub3QgaGFwcGVuKScpO1xuICAgICAgICAgICAgICAgICAgICBlcnJvci5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlT2JqZWN0c1xuICAgIH07XG59XG5cbmV4cG9ydCB7IGFuY2hvcklzVmFsaWQsIGFuY2hvck5hbWVzLCBjcmVhdGVOb2RlQW5jaG9ycywgZmluZE5ld0FuY2hvciB9O1xuIiwgIi8qKlxuICogQXBwbGllcyB0aGUgSlNPTi5wYXJzZSByZXZpdmVyIGFsZ29yaXRobSBhcyBkZWZpbmVkIGluIHRoZSBFQ01BLTI2MiBzcGVjLFxuICogaW4gc2VjdGlvbiAyNC41LjEuMSBcIlJ1bnRpbWUgU2VtYW50aWNzOiBJbnRlcm5hbGl6ZUpTT05Qcm9wZXJ0eVwiIG9mIHRoZVxuICogMjAyMSBlZGl0aW9uOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24ucGFyc2VcbiAqXG4gKiBJbmNsdWRlcyBleHRlbnNpb25zIGZvciBoYW5kbGluZyBNYXAgYW5kIFNldCBvYmplY3RzLlxuICovXG5mdW5jdGlvbiBhcHBseVJldml2ZXIocmV2aXZlciwgb2JqLCBrZXksIHZhbCkge1xuICAgIGlmICh2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHZhbC5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHYwID0gdmFsW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHYxID0gYXBwbHlSZXZpdmVyKHJldml2ZXIsIHZhbCwgU3RyaW5nKGkpLCB2MCk7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1hcnJheS1kZWxldGVcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbFtpXTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2MSAhPT0gdjApXG4gICAgICAgICAgICAgICAgICAgIHZhbFtpXSA9IHYxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIEFycmF5LmZyb20odmFsLmtleXMoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2MCA9IHZhbC5nZXQoayk7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCBrLCB2MCk7XG4gICAgICAgICAgICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIHZhbC5kZWxldGUoayk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodjEgIT09IHYwKVxuICAgICAgICAgICAgICAgICAgICB2YWwuc2V0KGssIHYxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdjAgb2YgQXJyYXkuZnJvbSh2YWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCB2MCwgdjApO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICB2YWwuZGVsZXRlKHYwKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2MSAhPT0gdjApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsLmRlbGV0ZSh2MCk7XG4gICAgICAgICAgICAgICAgICAgIHZhbC5hZGQodjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHYwXSBvZiBPYmplY3QuZW50cmllcyh2YWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdjEgPSBhcHBseVJldml2ZXIocmV2aXZlciwgdmFsLCBrLCB2MCk7XG4gICAgICAgICAgICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWxba107XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodjEgIT09IHYwKVxuICAgICAgICAgICAgICAgICAgICB2YWxba10gPSB2MTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV2aXZlci5jYWxsKG9iaiwga2V5LCB2YWwpO1xufVxuXG5leHBvcnQgeyBhcHBseVJldml2ZXIgfTtcbiIsICJpbXBvcnQgeyBoYXNBbmNob3IgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBjb252ZXJ0IGFueSBub2RlIG9yIGl0cyBjb250ZW50cyB0byBuYXRpdmUgSmF2YVNjcmlwdFxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbnB1dCB2YWx1ZVxuICogQHBhcmFtIGFyZyAtIElmIGB2YWx1ZWAgZGVmaW5lcyBhIGB0b0pTT04oKWAgbWV0aG9kLCB1c2UgdGhpc1xuICogICBhcyBpdHMgZmlyc3QgYXJndW1lbnRcbiAqIEBwYXJhbSBjdHggLSBDb252ZXJzaW9uIGNvbnRleHQsIG9yaWdpbmFsbHkgc2V0IGluIERvY3VtZW50I3RvSlMoKS4gSWZcbiAqICAgYHsga2VlcDogdHJ1ZSB9YCBpcyBub3Qgc2V0LCBvdXRwdXQgc2hvdWxkIGJlIHN1aXRhYmxlIGZvciBKU09OXG4gKiAgIHN0cmluZ2lmaWNhdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9KUyh2YWx1ZSwgYXJnLCBjdHgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKHYsIGkpID0+IHRvSlModiwgU3RyaW5nKGkpLCBjdHgpKTtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGlmICghY3R4IHx8ICFoYXNBbmNob3IodmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvSlNPTihhcmcsIGN0eCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IGFsaWFzQ291bnQ6IDAsIGNvdW50OiAxLCByZXM6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjdHguYW5jaG9ycy5zZXQodmFsdWUsIGRhdGEpO1xuICAgICAgICBjdHgub25DcmVhdGUgPSByZXMgPT4ge1xuICAgICAgICAgICAgZGF0YS5yZXMgPSByZXM7XG4gICAgICAgICAgICBkZWxldGUgY3R4Lm9uQ3JlYXRlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXMgPSB2YWx1ZS50b0pTT04oYXJnLCBjdHgpO1xuICAgICAgICBpZiAoY3R4Lm9uQ3JlYXRlKVxuICAgICAgICAgICAgY3R4Lm9uQ3JlYXRlKHJlcyk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnICYmICFjdHg/LmtlZXApXG4gICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IHsgdG9KUyB9O1xuIiwgImltcG9ydCB7IGFwcGx5UmV2aXZlciB9IGZyb20gJy4uL2RvYy9hcHBseVJldml2ZXIuanMnO1xuaW1wb3J0IHsgTk9ERV9UWVBFLCBpc0RvY3VtZW50IH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi90b0pTLmpzJztcblxuY2xhc3MgTm9kZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHR5cGUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIE5PREVfVFlQRSwgeyB2YWx1ZTogdHlwZSB9KTtcbiAgICB9XG4gICAgLyoqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBub2RlLiAgKi9cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgY29uc3QgY29weSA9IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlKVxuICAgICAgICAgICAgY29weS5yYW5nZSA9IHRoaXMucmFuZ2Uuc2xpY2UoKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuICAgIC8qKiBBIHBsYWluIEphdmFTY3JpcHQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBub2RlLiAqL1xuICAgIHRvSlMoZG9jLCB7IG1hcEFzTWFwLCBtYXhBbGlhc0NvdW50LCBvbkFuY2hvciwgcmV2aXZlciB9ID0ge30pIHtcbiAgICAgICAgaWYgKCFpc0RvY3VtZW50KGRvYykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRvY3VtZW50IGFyZ3VtZW50IGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFuY2hvcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgIGtlZXA6IHRydWUsXG4gICAgICAgICAgICBtYXBBc01hcDogbWFwQXNNYXAgPT09IHRydWUsXG4gICAgICAgICAgICBtYXBLZXlXYXJuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgbWF4QWxpYXNDb3VudDogdHlwZW9mIG1heEFsaWFzQ291bnQgPT09ICdudW1iZXInID8gbWF4QWxpYXNDb3VudCA6IDEwMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXMgPSB0b0pTKHRoaXMsICcnLCBjdHgpO1xuICAgICAgICBpZiAodHlwZW9mIG9uQW5jaG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgZm9yIChjb25zdCB7IGNvdW50LCByZXMgfSBvZiBjdHguYW5jaG9ycy52YWx1ZXMoKSlcbiAgICAgICAgICAgICAgICBvbkFuY2hvcihyZXMsIGNvdW50KTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGFwcGx5UmV2aXZlcihyZXZpdmVyLCB7ICcnOiByZXMgfSwgJycsIHJlcylcbiAgICAgICAgICAgIDogcmVzO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTm9kZUJhc2UgfTtcbiIsICJpbXBvcnQgeyBhbmNob3JJc1ZhbGlkIH0gZnJvbSAnLi4vZG9jL2FuY2hvcnMuanMnO1xuaW1wb3J0IHsgdmlzaXQgfSBmcm9tICcuLi92aXNpdC5qcyc7XG5pbXBvcnQgeyBBTElBUywgaXNBbGlhcywgaXNDb2xsZWN0aW9uLCBpc1BhaXIgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IE5vZGVCYXNlIH0gZnJvbSAnLi9Ob2RlLmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5jbGFzcyBBbGlhcyBleHRlbmRzIE5vZGVCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihzb3VyY2UpIHtcbiAgICAgICAgc3VwZXIoQUxJQVMpO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0YWcnLCB7XG4gICAgICAgICAgICBzZXQoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbGlhcyBub2RlcyBjYW5ub3QgaGF2ZSB0YWdzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlIHRoZSB2YWx1ZSBvZiB0aGlzIGFsaWFzIHdpdGhpbiBgZG9jYCwgZmluZGluZyB0aGUgbGFzdFxuICAgICAqIGluc3RhbmNlIG9mIHRoZSBgc291cmNlYCBhbmNob3IgYmVmb3JlIHRoaXMgbm9kZS5cbiAgICAgKi9cbiAgICByZXNvbHZlKGRvYykge1xuICAgICAgICBsZXQgZm91bmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZpc2l0KGRvYywge1xuICAgICAgICAgICAgTm9kZTogKF9rZXksIG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSA9PT0gdGhpcylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2l0LkJSRUFLO1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmFuY2hvciA9PT0gdGhpcy5zb3VyY2UpXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG4gICAgdG9KU09OKF9hcmcsIGN0eCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiB7IHNvdXJjZTogdGhpcy5zb3VyY2UgfTtcbiAgICAgICAgY29uc3QgeyBhbmNob3JzLCBkb2MsIG1heEFsaWFzQ291bnQgfSA9IGN0eDtcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5yZXNvbHZlKGRvYyk7XG4gICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBgVW5yZXNvbHZlZCBhbGlhcyAodGhlIGFuY2hvciBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGFsaWFzKTogJHt0aGlzLnNvdXJjZX1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRhdGEgPSBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIC8vIFJlc29sdmUgYW5jaG9ycyBmb3IgTm9kZS5wcm90b3R5cGUudG9KUygpXG4gICAgICAgICAgICB0b0pTKHNvdXJjZSwgbnVsbCwgY3R4KTtcbiAgICAgICAgICAgIGRhdGEgPSBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5yZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gJ1RoaXMgc2hvdWxkIG5vdCBoYXBwZW46IEFsaWFzIGFuY2hvciB3YXMgbm90IHJlc29sdmVkPyc7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IobXNnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4QWxpYXNDb3VudCA+PSAwKSB7XG4gICAgICAgICAgICBkYXRhLmNvdW50ICs9IDE7XG4gICAgICAgICAgICBpZiAoZGF0YS5hbGlhc0NvdW50ID09PSAwKVxuICAgICAgICAgICAgICAgIGRhdGEuYWxpYXNDb3VudCA9IGdldEFsaWFzQ291bnQoZG9jLCBzb3VyY2UsIGFuY2hvcnMpO1xuICAgICAgICAgICAgaWYgKGRhdGEuY291bnQgKiBkYXRhLmFsaWFzQ291bnQgPiBtYXhBbGlhc0NvdW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gJ0V4Y2Vzc2l2ZSBhbGlhcyBjb3VudCBpbmRpY2F0ZXMgYSByZXNvdXJjZSBleGhhdXN0aW9uIGF0dGFjayc7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEucmVzO1xuICAgIH1cbiAgICB0b1N0cmluZyhjdHgsIF9vbkNvbW1lbnQsIF9vbkNob21wS2VlcCkge1xuICAgICAgICBjb25zdCBzcmMgPSBgKiR7dGhpcy5zb3VyY2V9YDtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgYW5jaG9ySXNWYWxpZCh0aGlzLnNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMudmVyaWZ5QWxpYXNPcmRlciAmJiAhY3R4LmFuY2hvcnMuaGFzKHRoaXMuc291cmNlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGBVbnJlc29sdmVkIGFsaWFzICh0aGUgYW5jaG9yIG11c3QgYmUgc2V0IGJlZm9yZSB0aGUgYWxpYXMpOiAke3RoaXMuc291cmNlfWA7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3R4LmltcGxpY2l0S2V5KVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtzcmN9IGA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNyYztcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRBbGlhc0NvdW50KGRvYywgbm9kZSwgYW5jaG9ycykge1xuICAgIGlmIChpc0FsaWFzKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5vZGUucmVzb2x2ZShkb2MpO1xuICAgICAgICBjb25zdCBhbmNob3IgPSBhbmNob3JzICYmIHNvdXJjZSAmJiBhbmNob3JzLmdldChzb3VyY2UpO1xuICAgICAgICByZXR1cm4gYW5jaG9yID8gYW5jaG9yLmNvdW50ICogYW5jaG9yLmFsaWFzQ291bnQgOiAwO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG5vZGUuaXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGMgPSBnZXRBbGlhc0NvdW50KGRvYywgaXRlbSwgYW5jaG9ycyk7XG4gICAgICAgICAgICBpZiAoYyA+IGNvdW50KVxuICAgICAgICAgICAgICAgIGNvdW50ID0gYztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGFpcihub2RlKSkge1xuICAgICAgICBjb25zdCBrYyA9IGdldEFsaWFzQ291bnQoZG9jLCBub2RlLmtleSwgYW5jaG9ycyk7XG4gICAgICAgIGNvbnN0IHZjID0gZ2V0QWxpYXNDb3VudChkb2MsIG5vZGUudmFsdWUsIGFuY2hvcnMpO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgoa2MsIHZjKTtcbiAgICB9XG4gICAgcmV0dXJuIDE7XG59XG5cbmV4cG9ydCB7IEFsaWFzIH07XG4iLCAiaW1wb3J0IHsgU0NBTEFSIH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBOb2RlQmFzZSB9IGZyb20gJy4vTm9kZS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi90b0pTLmpzJztcblxuY29uc3QgaXNTY2FsYXJWYWx1ZSA9ICh2YWx1ZSkgPT4gIXZhbHVlIHx8ICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jyk7XG5jbGFzcyBTY2FsYXIgZXh0ZW5kcyBOb2RlQmFzZSB7XG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgc3VwZXIoU0NBTEFSKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICB0b0pTT04oYXJnLCBjdHgpIHtcbiAgICAgICAgcmV0dXJuIGN0eD8ua2VlcCA/IHRoaXMudmFsdWUgOiB0b0pTKHRoaXMudmFsdWUsIGFyZywgY3R4KTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuU2NhbGFyLkJMT0NLX0ZPTERFRCA9ICdCTE9DS19GT0xERUQnO1xuU2NhbGFyLkJMT0NLX0xJVEVSQUwgPSAnQkxPQ0tfTElURVJBTCc7XG5TY2FsYXIuUExBSU4gPSAnUExBSU4nO1xuU2NhbGFyLlFVT1RFX0RPVUJMRSA9ICdRVU9URV9ET1VCTEUnO1xuU2NhbGFyLlFVT1RFX1NJTkdMRSA9ICdRVU9URV9TSU5HTEUnO1xuXG5leHBvcnQgeyBTY2FsYXIsIGlzU2NhbGFyVmFsdWUgfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzTm9kZSwgaXNQYWlyLCBNQVAsIFNFUSwgaXNEb2N1bWVudCB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5cbmNvbnN0IGRlZmF1bHRUYWdQcmVmaXggPSAndGFnOnlhbWwub3JnLDIwMDI6JztcbmZ1bmN0aW9uIGZpbmRUYWdPYmplY3QodmFsdWUsIHRhZ05hbWUsIHRhZ3MpIHtcbiAgICBpZiAodGFnTmFtZSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHRhZ3MuZmlsdGVyKHQgPT4gdC50YWcgPT09IHRhZ05hbWUpO1xuICAgICAgICBjb25zdCB0YWdPYmogPSBtYXRjaC5maW5kKHQgPT4gIXQuZm9ybWF0KSA/PyBtYXRjaFswXTtcbiAgICAgICAgaWYgKCF0YWdPYmopXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhZyAke3RhZ05hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdGFnT2JqO1xuICAgIH1cbiAgICByZXR1cm4gdGFncy5maW5kKHQgPT4gdC5pZGVudGlmeT8uKHZhbHVlKSAmJiAhdC5mb3JtYXQpO1xufVxuZnVuY3Rpb24gY3JlYXRlTm9kZSh2YWx1ZSwgdGFnTmFtZSwgY3R4KSB7XG4gICAgaWYgKGlzRG9jdW1lbnQodmFsdWUpKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLmNvbnRlbnRzO1xuICAgIGlmIChpc05vZGUodmFsdWUpKVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgaWYgKGlzUGFpcih2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgbWFwID0gY3R4LnNjaGVtYVtNQVBdLmNyZWF0ZU5vZGU/LihjdHguc2NoZW1hLCBudWxsLCBjdHgpO1xuICAgICAgICBtYXAuaXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZyB8fFxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIE51bWJlciB8fFxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIEJvb2xlYW4gfHxcbiAgICAgICAgKHR5cGVvZiBCaWdJbnQgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQmlnSW50KSAvLyBub3Qgc3VwcG9ydGVkIGV2ZXJ5d2hlcmVcbiAgICApIHtcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zZXJpYWxpemVqc29ucHJvcGVydHlcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZU9mKCk7XG4gICAgfVxuICAgIGNvbnN0IHsgYWxpYXNEdXBsaWNhdGVPYmplY3RzLCBvbkFuY2hvciwgb25UYWdPYmosIHNjaGVtYSwgc291cmNlT2JqZWN0cyB9ID0gY3R4O1xuICAgIC8vIERldGVjdCBkdXBsaWNhdGUgcmVmZXJlbmNlcyB0byB0aGUgc2FtZSBvYmplY3QgJiB1c2UgQWxpYXMgbm9kZXMgZm9yIGFsbFxuICAgIC8vIGFmdGVyIGZpcnN0LiBUaGUgYHJlZmAgd3JhcHBlciBhbGxvd3MgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgdG8gcmVzb2x2ZS5cbiAgICBsZXQgcmVmID0gdW5kZWZpbmVkO1xuICAgIGlmIChhbGlhc0R1cGxpY2F0ZU9iamVjdHMgJiYgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWYgPSBzb3VyY2VPYmplY3RzLmdldCh2YWx1ZSk7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIGlmICghcmVmLmFuY2hvcilcbiAgICAgICAgICAgICAgICByZWYuYW5jaG9yID0gb25BbmNob3IodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbGlhcyhyZWYuYW5jaG9yKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlZiA9IHsgYW5jaG9yOiBudWxsLCBub2RlOiBudWxsIH07XG4gICAgICAgICAgICBzb3VyY2VPYmplY3RzLnNldCh2YWx1ZSwgcmVmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFnTmFtZT8uc3RhcnRzV2l0aCgnISEnKSlcbiAgICAgICAgdGFnTmFtZSA9IGRlZmF1bHRUYWdQcmVmaXggKyB0YWdOYW1lLnNsaWNlKDIpO1xuICAgIGxldCB0YWdPYmogPSBmaW5kVGFnT2JqZWN0KHZhbHVlLCB0YWdOYW1lLCBzY2hlbWEudGFncyk7XG4gICAgaWYgKCF0YWdPYmopIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09OKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IFNjYWxhcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAocmVmKVxuICAgICAgICAgICAgICAgIHJlZi5ub2RlID0gbm9kZTtcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICAgIHRhZ09iaiA9XG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIE1hcFxuICAgICAgICAgICAgICAgID8gc2NoZW1hW01BUF1cbiAgICAgICAgICAgICAgICA6IFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gc2NoZW1hW1NFUV1cbiAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWFbTUFQXTtcbiAgICB9XG4gICAgaWYgKG9uVGFnT2JqKSB7XG4gICAgICAgIG9uVGFnT2JqKHRhZ09iaik7XG4gICAgICAgIGRlbGV0ZSBjdHgub25UYWdPYmo7XG4gICAgfVxuICAgIGNvbnN0IG5vZGUgPSB0YWdPYmo/LmNyZWF0ZU5vZGVcbiAgICAgICAgPyB0YWdPYmouY3JlYXRlTm9kZShjdHguc2NoZW1hLCB2YWx1ZSwgY3R4KVxuICAgICAgICA6IHR5cGVvZiB0YWdPYmo/Lm5vZGVDbGFzcz8uZnJvbSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyB0YWdPYmoubm9kZUNsYXNzLmZyb20oY3R4LnNjaGVtYSwgdmFsdWUsIGN0eClcbiAgICAgICAgICAgIDogbmV3IFNjYWxhcih2YWx1ZSk7XG4gICAgaWYgKHRhZ05hbWUpXG4gICAgICAgIG5vZGUudGFnID0gdGFnTmFtZTtcbiAgICBlbHNlIGlmICghdGFnT2JqLmRlZmF1bHQpXG4gICAgICAgIG5vZGUudGFnID0gdGFnT2JqLnRhZztcbiAgICBpZiAocmVmKVxuICAgICAgICByZWYubm9kZSA9IG5vZGU7XG4gICAgcmV0dXJuIG5vZGU7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU5vZGUgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi4vZG9jL2NyZWF0ZU5vZGUuanMnO1xuaW1wb3J0IHsgaXNOb2RlLCBpc1BhaXIsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IE5vZGVCYXNlIH0gZnJvbSAnLi9Ob2RlLmpzJztcblxuZnVuY3Rpb24gY29sbGVjdGlvbkZyb21QYXRoKHNjaGVtYSwgcGF0aCwgdmFsdWUpIHtcbiAgICBsZXQgdiA9IHZhbHVlO1xuICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIGNvbnN0IGsgPSBwYXRoW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGsgPT09ICdudW1iZXInICYmIE51bWJlci5pc0ludGVnZXIoaykgJiYgayA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gW107XG4gICAgICAgICAgICBhW2tdID0gdjtcbiAgICAgICAgICAgIHYgPSBhO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdiA9IG5ldyBNYXAoW1trLCB2XV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVOb2RlKHYsIHVuZGVmaW5lZCwge1xuICAgICAgICBhbGlhc0R1cGxpY2F0ZU9iamVjdHM6IGZhbHNlLFxuICAgICAgICBrZWVwVW5kZWZpbmVkOiBmYWxzZSxcbiAgICAgICAgb25BbmNob3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgcGxlYXNlIHJlcG9ydCBhIGJ1Zy4nKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2NoZW1hLFxuICAgICAgICBzb3VyY2VPYmplY3RzOiBuZXcgTWFwKClcbiAgICB9KTtcbn1cbi8vIFR5cGUgZ3VhcmQgaXMgaW50ZW50aW9uYWxseSBhIGxpdHRsZSB3cm9uZyBzbyBhcyB0byBiZSBtb3JlIHVzZWZ1bCxcbi8vIGFzIGl0IGRvZXMgbm90IGNvdmVyIHVudHlwYWJsZSBlbXB0eSBub24tc3RyaW5nIGl0ZXJhYmxlcyAoZS5nLiBbXSkuXG5jb25zdCBpc0VtcHR5UGF0aCA9IChwYXRoKSA9PiBwYXRoID09IG51bGwgfHxcbiAgICAodHlwZW9mIHBhdGggPT09ICdvYmplY3QnICYmICEhcGF0aFtTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUpO1xuY2xhc3MgQ29sbGVjdGlvbiBleHRlbmRzIE5vZGVCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBzY2hlbWEpIHtcbiAgICAgICAgc3VwZXIodHlwZSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc2NoZW1hJywge1xuICAgICAgICAgICAgdmFsdWU6IHNjaGVtYSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjaGVtYSAtIElmIGRlZmluZWQsIG92ZXJ3cml0ZXMgdGhlIG9yaWdpbmFsJ3Mgc2NoZW1hXG4gICAgICovXG4gICAgY2xvbmUoc2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO1xuICAgICAgICBpZiAoc2NoZW1hKVxuICAgICAgICAgICAgY29weS5zY2hlbWEgPSBzY2hlbWE7XG4gICAgICAgIGNvcHkuaXRlbXMgPSBjb3B5Lml0ZW1zLm1hcChpdCA9PiBpc05vZGUoaXQpIHx8IGlzUGFpcihpdCkgPyBpdC5jbG9uZShzY2hlbWEpIDogaXQpO1xuICAgICAgICBpZiAodGhpcy5yYW5nZSlcbiAgICAgICAgICAgIGNvcHkucmFuZ2UgPSB0aGlzLnJhbmdlLnNsaWNlKCk7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgdmFsdWUgdG8gdGhlIGNvbGxlY3Rpb24uIEZvciBgISFtYXBgIGFuZCBgISFvbWFwYCB0aGUgdmFsdWUgbXVzdFxuICAgICAqIGJlIGEgUGFpciBpbnN0YW5jZSBvciBhIGB7IGtleSwgdmFsdWUgfWAgb2JqZWN0LCB3aGljaCBtYXkgbm90IGhhdmUgYSBrZXlcbiAgICAgKiB0aGF0IGFscmVhZHkgZXhpc3RzIGluIHRoZSBtYXAuXG4gICAgICovXG4gICAgYWRkSW4ocGF0aCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGlzRW1wdHlQYXRoKHBhdGgpKVxuICAgICAgICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICAgICAgaWYgKGlzQ29sbGVjdGlvbihub2RlKSlcbiAgICAgICAgICAgICAgICBub2RlLmFkZEluKHJlc3QsIHZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnNjaGVtYSlcbiAgICAgICAgICAgICAgICB0aGlzLnNldChrZXksIGNvbGxlY3Rpb25Gcm9tUGF0aCh0aGlzLnNjaGVtYSwgcmVzdCwgdmFsdWUpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2tleX0uIFJlbWFpbmluZyBwYXRoOiAke3Jlc3R9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGNvbGxlY3Rpb24uXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBpdGVtIHdhcyBmb3VuZCBhbmQgcmVtb3ZlZC5cbiAgICAgKi9cbiAgICBkZWxldGVJbihwYXRoKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICBpZiAoaXNDb2xsZWN0aW9uKG5vZGUpKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZGVsZXRlSW4ocmVzdCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7a2V5fS4gUmVtYWluaW5nIHBhdGg6ICR7cmVzdH1gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpdGVtIGF0IGBrZXlgLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuIEJ5IGRlZmF1bHQgdW53cmFwc1xuICAgICAqIHNjYWxhciB2YWx1ZXMgZnJvbSB0aGVpciBzdXJyb3VuZGluZyBub2RlOyB0byBkaXNhYmxlIHNldCBga2VlcFNjYWxhcmAgdG9cbiAgICAgKiBgdHJ1ZWAgKGNvbGxlY3Rpb25zIGFyZSBhbHdheXMgcmV0dXJuZWQgaW50YWN0KS5cbiAgICAgKi9cbiAgICBnZXRJbihwYXRoLCBrZWVwU2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0KGtleSwgdHJ1ZSk7XG4gICAgICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcihub2RlKSA/IG5vZGUudmFsdWUgOiBub2RlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKG5vZGUpID8gbm9kZS5nZXRJbihyZXN0LCBrZWVwU2NhbGFyKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFzQWxsTnVsbFZhbHVlcyhhbGxvd1NjYWxhcikge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5ldmVyeShub2RlID0+IHtcbiAgICAgICAgICAgIGlmICghaXNQYWlyKG5vZGUpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBub2RlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIChuID09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAoYWxsb3dTY2FsYXIgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNTY2FsYXIobikgJiZcbiAgICAgICAgICAgICAgICAgICAgbi52YWx1ZSA9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICFuLmNvbW1lbnRCZWZvcmUgJiZcbiAgICAgICAgICAgICAgICAgICAgIW4uY29tbWVudCAmJlxuICAgICAgICAgICAgICAgICAgICAhbi50YWcpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY29sbGVjdGlvbiBpbmNsdWRlcyBhIHZhbHVlIHdpdGggdGhlIGtleSBga2V5YC5cbiAgICAgKi9cbiAgICBoYXNJbihwYXRoKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0gcGF0aDtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzKGtleSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldChrZXksIHRydWUpO1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKG5vZGUpID8gbm9kZS5oYXNJbihyZXN0KSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgaW4gdGhpcyBjb2xsZWN0aW9uLiBGb3IgYCEhc2V0YCwgYHZhbHVlYCBuZWVkcyB0byBiZSBhXG4gICAgICogYm9vbGVhbiB0byBhZGQvcmVtb3ZlIHRoZSBpdGVtIGZyb20gdGhlIHNldC5cbiAgICAgKi9cbiAgICBzZXRJbihwYXRoLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBba2V5LCAuLi5yZXN0XSA9IHBhdGg7XG4gICAgICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5nZXQoa2V5LCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChpc0NvbGxlY3Rpb24obm9kZSkpXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRJbihyZXN0LCB2YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIGlmIChub2RlID09PSB1bmRlZmluZWQgJiYgdGhpcy5zY2hlbWEpXG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCBjb2xsZWN0aW9uRnJvbVBhdGgodGhpcy5zY2hlbWEsIHJlc3QsIHZhbHVlKSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtrZXl9LiBSZW1haW5pbmcgcGF0aDogJHtyZXN0fWApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBDb2xsZWN0aW9uLCBjb2xsZWN0aW9uRnJvbVBhdGgsIGlzRW1wdHlQYXRoIH07XG4iLCAiLyoqXG4gKiBTdHJpbmdpZmllcyBhIGNvbW1lbnQuXG4gKlxuICogRW1wdHkgY29tbWVudCBsaW5lcyBhcmUgbGVmdCBlbXB0eSxcbiAqIGxpbmVzIGNvbnNpc3Rpbmcgb2YgYSBzaW5nbGUgc3BhY2UgYXJlIHJlcGxhY2VkIGJ5IGAjYCxcbiAqIGFuZCBhbGwgb3RoZXIgbGluZXMgYXJlIHByZWZpeGVkIHdpdGggYSBgI2AuXG4gKi9cbmNvbnN0IHN0cmluZ2lmeUNvbW1lbnQgPSAoc3RyKSA9PiBzdHIucmVwbGFjZSgvXig/ISQpKD86ICQpPy9nbSwgJyMnKTtcbmZ1bmN0aW9uIGluZGVudENvbW1lbnQoY29tbWVudCwgaW5kZW50KSB7XG4gICAgaWYgKC9eXFxuKyQvLnRlc3QoY29tbWVudCkpXG4gICAgICAgIHJldHVybiBjb21tZW50LnN1YnN0cmluZygxKTtcbiAgICByZXR1cm4gaW5kZW50ID8gY29tbWVudC5yZXBsYWNlKC9eKD8hICokKS9nbSwgaW5kZW50KSA6IGNvbW1lbnQ7XG59XG5jb25zdCBsaW5lQ29tbWVudCA9IChzdHIsIGluZGVudCwgY29tbWVudCkgPT4gc3RyLmVuZHNXaXRoKCdcXG4nKVxuICAgID8gaW5kZW50Q29tbWVudChjb21tZW50LCBpbmRlbnQpXG4gICAgOiBjb21tZW50LmluY2x1ZGVzKCdcXG4nKVxuICAgICAgICA/ICdcXG4nICsgaW5kZW50Q29tbWVudChjb21tZW50LCBpbmRlbnQpXG4gICAgICAgIDogKHN0ci5lbmRzV2l0aCgnICcpID8gJycgOiAnICcpICsgY29tbWVudDtcblxuZXhwb3J0IHsgaW5kZW50Q29tbWVudCwgbGluZUNvbW1lbnQsIHN0cmluZ2lmeUNvbW1lbnQgfTtcbiIsICJjb25zdCBGT0xEX0ZMT1cgPSAnZmxvdyc7XG5jb25zdCBGT0xEX0JMT0NLID0gJ2Jsb2NrJztcbmNvbnN0IEZPTERfUVVPVEVEID0gJ3F1b3RlZCc7XG4vKipcbiAqIFRyaWVzIHRvIGtlZXAgaW5wdXQgYXQgdXAgdG8gYGxpbmVXaWR0aGAgY2hhcmFjdGVycywgc3BsaXR0aW5nIG9ubHkgb24gc3BhY2VzXG4gKiBub3QgZm9sbG93ZWQgYnkgbmV3bGluZXMgb3Igc3BhY2VzIHVubGVzcyBgbW9kZWAgaXMgYCdxdW90ZWQnYC4gTGluZXMgYXJlXG4gKiB0ZXJtaW5hdGVkIHdpdGggYFxcbmAgYW5kIHN0YXJ0ZWQgd2l0aCBgaW5kZW50YC5cbiAqL1xuZnVuY3Rpb24gZm9sZEZsb3dMaW5lcyh0ZXh0LCBpbmRlbnQsIG1vZGUgPSAnZmxvdycsIHsgaW5kZW50QXRTdGFydCwgbGluZVdpZHRoID0gODAsIG1pbkNvbnRlbnRXaWR0aCA9IDIwLCBvbkZvbGQsIG9uT3ZlcmZsb3cgfSA9IHt9KSB7XG4gICAgaWYgKCFsaW5lV2lkdGggfHwgbGluZVdpZHRoIDwgMClcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgaWYgKGxpbmVXaWR0aCA8IG1pbkNvbnRlbnRXaWR0aClcbiAgICAgICAgbWluQ29udGVudFdpZHRoID0gMDtcbiAgICBjb25zdCBlbmRTdGVwID0gTWF0aC5tYXgoMSArIG1pbkNvbnRlbnRXaWR0aCwgMSArIGxpbmVXaWR0aCAtIGluZGVudC5sZW5ndGgpO1xuICAgIGlmICh0ZXh0Lmxlbmd0aCA8PSBlbmRTdGVwKVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICBjb25zdCBmb2xkcyA9IFtdO1xuICAgIGNvbnN0IGVzY2FwZWRGb2xkcyA9IHt9O1xuICAgIGxldCBlbmQgPSBsaW5lV2lkdGggLSBpbmRlbnQubGVuZ3RoO1xuICAgIGlmICh0eXBlb2YgaW5kZW50QXRTdGFydCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGluZGVudEF0U3RhcnQgPiBsaW5lV2lkdGggLSBNYXRoLm1heCgyLCBtaW5Db250ZW50V2lkdGgpKVxuICAgICAgICAgICAgZm9sZHMucHVzaCgwKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZW5kID0gbGluZVdpZHRoIC0gaW5kZW50QXRTdGFydDtcbiAgICB9XG4gICAgbGV0IHNwbGl0ID0gdW5kZWZpbmVkO1xuICAgIGxldCBwcmV2ID0gdW5kZWZpbmVkO1xuICAgIGxldCBvdmVyZmxvdyA9IGZhbHNlO1xuICAgIGxldCBpID0gLTE7XG4gICAgbGV0IGVzY1N0YXJ0ID0gLTE7XG4gICAgbGV0IGVzY0VuZCA9IC0xO1xuICAgIGlmIChtb2RlID09PSBGT0xEX0JMT0NLKSB7XG4gICAgICAgIGkgPSBjb25zdW1lTW9yZUluZGVudGVkTGluZXModGV4dCwgaSwgaW5kZW50Lmxlbmd0aCk7XG4gICAgICAgIGlmIChpICE9PSAtMSlcbiAgICAgICAgICAgIGVuZCA9IGkgKyBlbmRTdGVwO1xuICAgIH1cbiAgICBmb3IgKGxldCBjaDsgKGNoID0gdGV4dFsoaSArPSAxKV0pOykge1xuICAgICAgICBpZiAobW9kZSA9PT0gRk9MRF9RVU9URUQgJiYgY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgZXNjU3RhcnQgPSBpO1xuICAgICAgICAgICAgc3dpdGNoICh0ZXh0W2kgKyAxXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDM7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1UnOlxuICAgICAgICAgICAgICAgICAgICBpICs9IDk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVzY0VuZCA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSAnXFxuJykge1xuICAgICAgICAgICAgaWYgKG1vZGUgPT09IEZPTERfQkxPQ0spXG4gICAgICAgICAgICAgICAgaSA9IGNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyh0ZXh0LCBpLCBpbmRlbnQubGVuZ3RoKTtcbiAgICAgICAgICAgIGVuZCA9IGkgKyBpbmRlbnQubGVuZ3RoICsgZW5kU3RlcDtcbiAgICAgICAgICAgIHNwbGl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNoID09PSAnICcgJiZcbiAgICAgICAgICAgICAgICBwcmV2ICYmXG4gICAgICAgICAgICAgICAgcHJldiAhPT0gJyAnICYmXG4gICAgICAgICAgICAgICAgcHJldiAhPT0gJ1xcbicgJiZcbiAgICAgICAgICAgICAgICBwcmV2ICE9PSAnXFx0Jykge1xuICAgICAgICAgICAgICAgIC8vIHNwYWNlIHN1cnJvdW5kZWQgYnkgbm9uLXNwYWNlIGNhbiBiZSByZXBsYWNlZCB3aXRoIG5ld2xpbmUgKyBpbmRlbnRcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gdGV4dFtpICsgMV07XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dCAhPT0gJyAnICYmIG5leHQgIT09ICdcXG4nICYmIG5leHQgIT09ICdcXHQnKVxuICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaSA+PSBlbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9sZHMucHVzaChzcGxpdCk7XG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IHNwbGl0ICsgZW5kU3RlcDtcbiAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT09IEZPTERfUVVPVEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoaXRlLXNwYWNlIGNvbGxlY3RlZCBhdCBlbmQgbWF5IHN0cmV0Y2ggcGFzdCBsaW5lV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZXYgPT09ICcgJyB8fCBwcmV2ID09PSAnXFx0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0WyhpICs9IDEpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBBY2NvdW50IGZvciBuZXdsaW5lIGVzY2FwZSwgYnV0IGRvbid0IGJyZWFrIHByZWNlZGluZyBlc2NhcGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaiA9IGkgPiBlc2NFbmQgKyAxID8gaSAtIDIgOiBlc2NTdGFydCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIC8vIEJhaWwgb3V0IGlmIGxpbmVXaWR0aCAmIG1pbkNvbnRlbnRXaWR0aCBhcmUgc2hvcnRlciB0aGFuIGFuIGVzY2FwZSBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVzY2FwZWRGb2xkc1tqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICBmb2xkcy5wdXNoKGopO1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVkRm9sZHNbal0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBlbmQgPSBqICsgZW5kU3RlcDtcbiAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHByZXYgPSBjaDtcbiAgICB9XG4gICAgaWYgKG92ZXJmbG93ICYmIG9uT3ZlcmZsb3cpXG4gICAgICAgIG9uT3ZlcmZsb3coKTtcbiAgICBpZiAoZm9sZHMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICBpZiAob25Gb2xkKVxuICAgICAgICBvbkZvbGQoKTtcbiAgICBsZXQgcmVzID0gdGV4dC5zbGljZSgwLCBmb2xkc1swXSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb2xkcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBmb2xkID0gZm9sZHNbaV07XG4gICAgICAgIGNvbnN0IGVuZCA9IGZvbGRzW2kgKyAxXSB8fCB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKGZvbGQgPT09IDApXG4gICAgICAgICAgICByZXMgPSBgXFxuJHtpbmRlbnR9JHt0ZXh0LnNsaWNlKDAsIGVuZCl9YDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gRk9MRF9RVU9URUQgJiYgZXNjYXBlZEZvbGRzW2ZvbGRdKVxuICAgICAgICAgICAgICAgIHJlcyArPSBgJHt0ZXh0W2ZvbGRdfVxcXFxgO1xuICAgICAgICAgICAgcmVzICs9IGBcXG4ke2luZGVudH0ke3RleHQuc2xpY2UoZm9sZCArIDEsIGVuZCl9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBQcmVzdW1lcyBgaSArIDFgIGlzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmVcbiAqIEByZXR1cm5zIGluZGV4IG9mIGxhc3QgbmV3bGluZSBpbiBtb3JlLWluZGVudGVkIGJsb2NrXG4gKi9cbmZ1bmN0aW9uIGNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyh0ZXh0LCBpLCBpbmRlbnQpIHtcbiAgICBsZXQgZW5kID0gaTtcbiAgICBsZXQgc3RhcnQgPSBpICsgMTtcbiAgICBsZXQgY2ggPSB0ZXh0W3N0YXJ0XTtcbiAgICB3aGlsZSAoY2ggPT09ICcgJyB8fCBjaCA9PT0gJ1xcdCcpIHtcbiAgICAgICAgaWYgKGkgPCBzdGFydCArIGluZGVudCkge1xuICAgICAgICAgICAgY2ggPSB0ZXh0WysraV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgY2ggPSB0ZXh0WysraV07XG4gICAgICAgICAgICB9IHdoaWxlIChjaCAmJiBjaCAhPT0gJ1xcbicpO1xuICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICBjaCA9IHRleHRbc3RhcnRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbmQ7XG59XG5cbmV4cG9ydCB7IEZPTERfQkxPQ0ssIEZPTERfRkxPVywgRk9MRF9RVU9URUQsIGZvbGRGbG93TGluZXMgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgZm9sZEZsb3dMaW5lcywgRk9MRF9RVU9URUQsIEZPTERfRkxPVywgRk9MRF9CTE9DSyB9IGZyb20gJy4vZm9sZEZsb3dMaW5lcy5qcyc7XG5cbmNvbnN0IGdldEZvbGRPcHRpb25zID0gKGN0eCwgaXNCbG9jaykgPT4gKHtcbiAgICBpbmRlbnRBdFN0YXJ0OiBpc0Jsb2NrID8gY3R4LmluZGVudC5sZW5ndGggOiBjdHguaW5kZW50QXRTdGFydCxcbiAgICBsaW5lV2lkdGg6IGN0eC5vcHRpb25zLmxpbmVXaWR0aCxcbiAgICBtaW5Db250ZW50V2lkdGg6IGN0eC5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aFxufSk7XG4vLyBBbHNvIGNoZWNrcyBmb3IgbGluZXMgc3RhcnRpbmcgd2l0aCAlLCBhcyBwYXJzaW5nIHRoZSBvdXRwdXQgYXMgWUFNTCAxLjEgd2lsbFxuLy8gcHJlc3VtZSB0aGF0J3Mgc3RhcnRpbmcgYSBuZXcgZG9jdW1lbnQuXG5jb25zdCBjb250YWluc0RvY3VtZW50TWFya2VyID0gKHN0cikgPT4gL14oJXwtLS18XFwuXFwuXFwuKS9tLnRlc3Qoc3RyKTtcbmZ1bmN0aW9uIGxpbmVMZW5ndGhPdmVyTGltaXQoc3RyLCBsaW5lV2lkdGgsIGluZGVudExlbmd0aCkge1xuICAgIGlmICghbGluZVdpZHRoIHx8IGxpbmVXaWR0aCA8IDApXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsaW1pdCA9IGxpbmVXaWR0aCAtIGluZGVudExlbmd0aDtcbiAgICBjb25zdCBzdHJMZW4gPSBzdHIubGVuZ3RoO1xuICAgIGlmIChzdHJMZW4gPD0gbGltaXQpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMCwgc3RhcnQgPSAwOyBpIDwgc3RyTGVuOyArK2kpIHtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIGlmIChpIC0gc3RhcnQgPiBsaW1pdClcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICBpZiAoc3RyTGVuIC0gc3RhcnQgPD0gbGltaXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZG91YmxlUXVvdGVkU3RyaW5nKHZhbHVlLCBjdHgpIHtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGlmIChjdHgub3B0aW9ucy5kb3VibGVRdW90ZWRBc0pTT04pXG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIGNvbnN0IHsgaW1wbGljaXRLZXkgfSA9IGN0eDtcbiAgICBjb25zdCBtaW5NdWx0aUxpbmVMZW5ndGggPSBjdHgub3B0aW9ucy5kb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGg7XG4gICAgY29uc3QgaW5kZW50ID0gY3R4LmluZGVudCB8fCAoY29udGFpbnNEb2N1bWVudE1hcmtlcih2YWx1ZSkgPyAnICAnIDogJycpO1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBsZXQgc3RhcnQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwLCBjaCA9IGpzb25baV07IGNoOyBjaCA9IGpzb25bKytpXSkge1xuICAgICAgICBpZiAoY2ggPT09ICcgJyAmJiBqc29uW2kgKyAxXSA9PT0gJ1xcXFwnICYmIGpzb25baSArIDJdID09PSAnbicpIHtcbiAgICAgICAgICAgIC8vIHNwYWNlIGJlZm9yZSBuZXdsaW5lIG5lZWRzIHRvIGJlIGVzY2FwZWQgdG8gbm90IGJlIGZvbGRlZFxuICAgICAgICAgICAgc3RyICs9IGpzb24uc2xpY2Uoc3RhcnQsIGkpICsgJ1xcXFwgJztcbiAgICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgICAgIHN0YXJ0ID0gaTtcbiAgICAgICAgICAgIGNoID0gJ1xcXFwnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcXFwnKVxuICAgICAgICAgICAgc3dpdGNoIChqc29uW2kgKyAxXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0ganNvbi5zbGljZShzdGFydCwgaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0ganNvbi5zdWJzdHIoaSArIDIsIDQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMDAwMCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXDAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcwMDA3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcYSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAwMGInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFx2JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMDAxYic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcwMDg1JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcTic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAwYTAnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFxfJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMjAyOCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXEwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcyMDI5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcUCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlLnN1YnN0cigwLCAyKSA9PT0gJzAwJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSAnXFxcXHgnICsgY29kZS5zdWJzdHIoMik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBqc29uLnN1YnN0cihpLCA2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbic6XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbXBsaWNpdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAganNvbltpICsgMl0gPT09ICdcIicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb24ubGVuZ3RoIDwgbWluTXVsdGlMaW5lTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb2xkaW5nIHdpbGwgZWF0IGZpcnN0IG5ld2xpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBqc29uLnNsaWNlKHN0YXJ0LCBpKSArICdcXG5cXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGpzb25baSArIDJdID09PSAnXFxcXCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uW2kgKyAzXSA9PT0gJ24nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbltpICsgNF0gIT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IGluZGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwYWNlIGFmdGVyIG5ld2xpbmUgbmVlZHMgdG8gYmUgZXNjYXBlZCB0byBub3QgYmUgZm9sZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbltpICsgMl0gPT09ICcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpICsgMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIHN0ciA9IHN0YXJ0ID8gc3RyICsganNvbi5zbGljZShzdGFydCkgOiBqc29uO1xuICAgIHJldHVybiBpbXBsaWNpdEtleVxuICAgICAgICA/IHN0clxuICAgICAgICA6IGZvbGRGbG93TGluZXMoc3RyLCBpbmRlbnQsIEZPTERfUVVPVEVELCBnZXRGb2xkT3B0aW9ucyhjdHgsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBzaW5nbGVRdW90ZWRTdHJpbmcodmFsdWUsIGN0eCkge1xuICAgIGlmIChjdHgub3B0aW9ucy5zaW5nbGVRdW90ZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgKGN0eC5pbXBsaWNpdEtleSAmJiB2YWx1ZS5pbmNsdWRlcygnXFxuJykpIHx8XG4gICAgICAgIC9bIFxcdF1cXG58XFxuWyBcXHRdLy50ZXN0KHZhbHVlKSAvLyBzaW5nbGUgcXVvdGVkIHN0cmluZyBjYW4ndCBoYXZlIGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZSBhcm91bmQgbmV3bGluZVxuICAgIClcbiAgICAgICAgcmV0dXJuIGRvdWJsZVF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KTtcbiAgICBjb25zdCBpbmRlbnQgPSBjdHguaW5kZW50IHx8IChjb250YWluc0RvY3VtZW50TWFya2VyKHZhbHVlKSA/ICcgICcgOiAnJyk7XG4gICAgY29uc3QgcmVzID0gXCInXCIgKyB2YWx1ZS5yZXBsYWNlKC8nL2csIFwiJydcIikucmVwbGFjZSgvXFxuKy9nLCBgJCZcXG4ke2luZGVudH1gKSArIFwiJ1wiO1xuICAgIHJldHVybiBjdHguaW1wbGljaXRLZXlcbiAgICAgICAgPyByZXNcbiAgICAgICAgOiBmb2xkRmxvd0xpbmVzKHJlcywgaW5kZW50LCBGT0xEX0ZMT1csIGdldEZvbGRPcHRpb25zKGN0eCwgZmFsc2UpKTtcbn1cbmZ1bmN0aW9uIHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KSB7XG4gICAgY29uc3QgeyBzaW5nbGVRdW90ZSB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgbGV0IHFzO1xuICAgIGlmIChzaW5nbGVRdW90ZSA9PT0gZmFsc2UpXG4gICAgICAgIHFzID0gZG91YmxlUXVvdGVkU3RyaW5nO1xuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBoYXNEb3VibGUgPSB2YWx1ZS5pbmNsdWRlcygnXCInKTtcbiAgICAgICAgY29uc3QgaGFzU2luZ2xlID0gdmFsdWUuaW5jbHVkZXMoXCInXCIpO1xuICAgICAgICBpZiAoaGFzRG91YmxlICYmICFoYXNTaW5nbGUpXG4gICAgICAgICAgICBxcyA9IHNpbmdsZVF1b3RlZFN0cmluZztcbiAgICAgICAgZWxzZSBpZiAoaGFzU2luZ2xlICYmICFoYXNEb3VibGUpXG4gICAgICAgICAgICBxcyA9IGRvdWJsZVF1b3RlZFN0cmluZztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcXMgPSBzaW5nbGVRdW90ZSA/IHNpbmdsZVF1b3RlZFN0cmluZyA6IGRvdWJsZVF1b3RlZFN0cmluZztcbiAgICB9XG4gICAgcmV0dXJuIHFzKHZhbHVlLCBjdHgpO1xufVxuLy8gVGhlIG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXZvaWRzIGEgcG9seW5vbWlhbCBzZWFyY2gsXG4vLyBidXQgaXNuJ3Qgc3VwcG9ydGVkIHlldCBvbiBTYWZhcmk6IGh0dHBzOi8vY2FuaXVzZS5jb20vanMtcmVnZXhwLWxvb2tiZWhpbmRcbmxldCBibG9ja0VuZE5ld2xpbmVzO1xudHJ5IHtcbiAgICBibG9ja0VuZE5ld2xpbmVzID0gbmV3IFJlZ0V4cCgnKF58KD88IVxcbikpXFxuKyg/IVxcbnwkKScsICdnJyk7XG59XG5jYXRjaCB7XG4gICAgYmxvY2tFbmROZXdsaW5lcyA9IC9cXG4rKD8hXFxufCQpL2c7XG59XG5mdW5jdGlvbiBibG9ja1N0cmluZyh7IGNvbW1lbnQsIHR5cGUsIHZhbHVlIH0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgIGNvbnN0IHsgYmxvY2tRdW90ZSwgY29tbWVudFN0cmluZywgbGluZVdpZHRoIH0gPSBjdHgub3B0aW9ucztcbiAgICAvLyAxLiBCbG9jayBjYW4ndCBlbmQgaW4gd2hpdGVzcGFjZSB1bmxlc3MgdGhlIGxhc3QgbGluZSBpcyBub24tZW1wdHkuXG4gICAgLy8gMi4gU3RyaW5ncyBjb25zaXN0aW5nIG9mIG9ubHkgd2hpdGVzcGFjZSBhcmUgYmVzdCByZW5kZXJlZCBleHBsaWNpdGx5LlxuICAgIGlmICghYmxvY2tRdW90ZSB8fCAvXFxuW1xcdCBdKyQvLnRlc3QodmFsdWUpIHx8IC9eXFxzKiQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBxdW90ZWRTdHJpbmcodmFsdWUsIGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IGluZGVudCA9IGN0eC5pbmRlbnQgfHxcbiAgICAgICAgKGN0eC5mb3JjZUJsb2NrSW5kZW50IHx8IGNvbnRhaW5zRG9jdW1lbnRNYXJrZXIodmFsdWUpID8gJyAgJyA6ICcnKTtcbiAgICBjb25zdCBsaXRlcmFsID0gYmxvY2tRdW90ZSA9PT0gJ2xpdGVyYWwnXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGJsb2NrUXVvdGUgPT09ICdmb2xkZWQnIHx8IHR5cGUgPT09IFNjYWxhci5CTE9DS19GT0xERURcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDogdHlwZSA9PT0gU2NhbGFyLkJMT0NLX0xJVEVSQUxcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6ICFsaW5lTGVuZ3RoT3ZlckxpbWl0KHZhbHVlLCBsaW5lV2lkdGgsIGluZGVudC5sZW5ndGgpO1xuICAgIGlmICghdmFsdWUpXG4gICAgICAgIHJldHVybiBsaXRlcmFsID8gJ3xcXG4nIDogJz5cXG4nO1xuICAgIC8vIGRldGVybWluZSBjaG9tcGluZyBmcm9tIHdoaXRlc3BhY2UgYXQgdmFsdWUgZW5kXG4gICAgbGV0IGNob21wO1xuICAgIGxldCBlbmRTdGFydDtcbiAgICBmb3IgKGVuZFN0YXJ0ID0gdmFsdWUubGVuZ3RoOyBlbmRTdGFydCA+IDA7IC0tZW5kU3RhcnQpIHtcbiAgICAgICAgY29uc3QgY2ggPSB2YWx1ZVtlbmRTdGFydCAtIDFdO1xuICAgICAgICBpZiAoY2ggIT09ICdcXG4nICYmIGNoICE9PSAnXFx0JyAmJiBjaCAhPT0gJyAnKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxldCBlbmQgPSB2YWx1ZS5zdWJzdHJpbmcoZW5kU3RhcnQpO1xuICAgIGNvbnN0IGVuZE5sUG9zID0gZW5kLmluZGV4T2YoJ1xcbicpO1xuICAgIGlmIChlbmRObFBvcyA9PT0gLTEpIHtcbiAgICAgICAgY2hvbXAgPSAnLSc7IC8vIHN0cmlwXG4gICAgfVxuICAgIGVsc2UgaWYgKHZhbHVlID09PSBlbmQgfHwgZW5kTmxQb3MgIT09IGVuZC5sZW5ndGggLSAxKSB7XG4gICAgICAgIGNob21wID0gJysnOyAvLyBrZWVwXG4gICAgICAgIGlmIChvbkNob21wS2VlcClcbiAgICAgICAgICAgIG9uQ2hvbXBLZWVwKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjaG9tcCA9ICcnOyAvLyBjbGlwXG4gICAgfVxuICAgIGlmIChlbmQpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtZW5kLmxlbmd0aCk7XG4gICAgICAgIGlmIChlbmRbZW5kLmxlbmd0aCAtIDFdID09PSAnXFxuJylcbiAgICAgICAgICAgIGVuZCA9IGVuZC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGVuZCA9IGVuZC5yZXBsYWNlKGJsb2NrRW5kTmV3bGluZXMsIGAkJiR7aW5kZW50fWApO1xuICAgIH1cbiAgICAvLyBkZXRlcm1pbmUgaW5kZW50IGluZGljYXRvciBmcm9tIHdoaXRlc3BhY2UgYXQgdmFsdWUgc3RhcnRcbiAgICBsZXQgc3RhcnRXaXRoU3BhY2UgPSBmYWxzZTtcbiAgICBsZXQgc3RhcnRFbmQ7XG4gICAgbGV0IHN0YXJ0TmxQb3MgPSAtMTtcbiAgICBmb3IgKHN0YXJ0RW5kID0gMDsgc3RhcnRFbmQgPCB2YWx1ZS5sZW5ndGg7ICsrc3RhcnRFbmQpIHtcbiAgICAgICAgY29uc3QgY2ggPSB2YWx1ZVtzdGFydEVuZF07XG4gICAgICAgIGlmIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgc3RhcnRXaXRoU3BhY2UgPSB0cnVlO1xuICAgICAgICBlbHNlIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICBzdGFydE5sUG9zID0gc3RhcnRFbmQ7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgc3RhcnQgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnRObFBvcyA8IHN0YXJ0RW5kID8gc3RhcnRObFBvcyArIDEgOiBzdGFydEVuZCk7XG4gICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKHN0YXJ0Lmxlbmd0aCk7XG4gICAgICAgIHN0YXJ0ID0gc3RhcnQucmVwbGFjZSgvXFxuKy9nLCBgJCYke2luZGVudH1gKTtcbiAgICB9XG4gICAgY29uc3QgaW5kZW50U2l6ZSA9IGluZGVudCA/ICcyJyA6ICcxJzsgLy8gcm9vdCBpcyBhdCAtMVxuICAgIGxldCBoZWFkZXIgPSAobGl0ZXJhbCA/ICd8JyA6ICc+JykgKyAoc3RhcnRXaXRoU3BhY2UgPyBpbmRlbnRTaXplIDogJycpICsgY2hvbXA7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgaGVhZGVyICs9ICcgJyArIGNvbW1lbnRTdHJpbmcoY29tbWVudC5yZXBsYWNlKC8gP1tcXHJcXG5dKy9nLCAnICcpKTtcbiAgICAgICAgaWYgKG9uQ29tbWVudClcbiAgICAgICAgICAgIG9uQ29tbWVudCgpO1xuICAgIH1cbiAgICBpZiAobGl0ZXJhbCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZywgYCQmJHtpbmRlbnR9YCk7XG4gICAgICAgIHJldHVybiBgJHtoZWFkZXJ9XFxuJHtpbmRlbnR9JHtzdGFydH0ke3ZhbHVlfSR7ZW5kfWA7XG4gICAgfVxuICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgLnJlcGxhY2UoL1xcbisvZywgJ1xcbiQmJylcbiAgICAgICAgLnJlcGxhY2UoLyg/Ol58XFxuKShbXFx0IF0uKikoPzooW1xcblxcdCBdKilcXG4oPyFbXFxuXFx0IF0pKT8vZywgJyQxJDInKSAvLyBtb3JlLWluZGVudGVkIGxpbmVzIGFyZW4ndCBmb2xkZWRcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgXiBtb3JlLWluZC4gXiBlbXB0eSAgICAgXiBjYXB0dXJlIG5leHQgZW1wdHkgbGluZXMgb25seSBhdCBlbmQgb2YgaW5kZW50XG4gICAgICAgIC5yZXBsYWNlKC9cXG4rL2csIGAkJiR7aW5kZW50fWApO1xuICAgIGNvbnN0IGJvZHkgPSBmb2xkRmxvd0xpbmVzKGAke3N0YXJ0fSR7dmFsdWV9JHtlbmR9YCwgaW5kZW50LCBGT0xEX0JMT0NLLCBnZXRGb2xkT3B0aW9ucyhjdHgsIHRydWUpKTtcbiAgICByZXR1cm4gYCR7aGVhZGVyfVxcbiR7aW5kZW50fSR7Ym9keX1gO1xufVxuZnVuY3Rpb24gcGxhaW5TdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gaXRlbTtcbiAgICBjb25zdCB7IGFjdHVhbFN0cmluZywgaW1wbGljaXRLZXksIGluZGVudCwgaW5kZW50U3RlcCwgaW5GbG93IH0gPSBjdHg7XG4gICAgaWYgKChpbXBsaWNpdEtleSAmJiB2YWx1ZS5pbmNsdWRlcygnXFxuJykpIHx8XG4gICAgICAgIChpbkZsb3cgJiYgL1tbXFxde30sXS8udGVzdCh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiBxdW90ZWRTdHJpbmcodmFsdWUsIGN0eCk7XG4gICAgfVxuICAgIGlmICghdmFsdWUgfHxcbiAgICAgICAgL15bXFxuXFx0ICxbXFxde30jJiohfD4nXCIlQGBdfF5bPy1dJHxeWz8tXVsgXFx0XXxbXFxuOl1bIFxcdF18WyBcXHRdXFxufFtcXG5cXHQgXSN8W1xcblxcdCA6XSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIC8vIG5vdCBhbGxvd2VkOlxuICAgICAgICAvLyAtIGVtcHR5IHN0cmluZywgJy0nIG9yICc/J1xuICAgICAgICAvLyAtIHN0YXJ0IHdpdGggYW4gaW5kaWNhdG9yIGNoYXJhY3RlciAoZXhjZXB0IFs/Oi1dKSBvciAvWz8tXSAvXG4gICAgICAgIC8vIC0gJ1xcbiAnLCAnOiAnIG9yICcgXFxuJyBhbnl3aGVyZVxuICAgICAgICAvLyAtICcjJyBub3QgcHJlY2VkZWQgYnkgYSBub24tc3BhY2UgY2hhclxuICAgICAgICAvLyAtIGVuZCB3aXRoICcgJyBvciAnOidcbiAgICAgICAgcmV0dXJuIGltcGxpY2l0S2V5IHx8IGluRmxvdyB8fCAhdmFsdWUuaW5jbHVkZXMoJ1xcbicpXG4gICAgICAgICAgICA/IHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KVxuICAgICAgICAgICAgOiBibG9ja1N0cmluZyhpdGVtLCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgIH1cbiAgICBpZiAoIWltcGxpY2l0S2V5ICYmXG4gICAgICAgICFpbkZsb3cgJiZcbiAgICAgICAgdHlwZSAhPT0gU2NhbGFyLlBMQUlOICYmXG4gICAgICAgIHZhbHVlLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICAvLyBXaGVyZSBhbGxvd2VkICYgdHlwZSBub3Qgc2V0IGV4cGxpY2l0bHksIHByZWZlciBibG9jayBzdHlsZSBmb3IgbXVsdGlsaW5lIHN0cmluZ3NcbiAgICAgICAgcmV0dXJuIGJsb2NrU3RyaW5nKGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgfVxuICAgIGlmIChjb250YWluc0RvY3VtZW50TWFya2VyKHZhbHVlKSkge1xuICAgICAgICBpZiAoaW5kZW50ID09PSAnJykge1xuICAgICAgICAgICAgY3R4LmZvcmNlQmxvY2tJbmRlbnQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGJsb2NrU3RyaW5nKGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW1wbGljaXRLZXkgJiYgaW5kZW50ID09PSBpbmRlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm4gcXVvdGVkU3RyaW5nKHZhbHVlLCBjdHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHN0ciA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZywgYCQmXFxuJHtpbmRlbnR9YCk7XG4gICAgLy8gVmVyaWZ5IHRoYXQgb3V0cHV0IHdpbGwgYmUgcGFyc2VkIGFzIGEgc3RyaW5nLCBhcyBlLmcuIHBsYWluIG51bWJlcnMgYW5kXG4gICAgLy8gYm9vbGVhbnMgZ2V0IHBhcnNlZCB3aXRoIHRob3NlIHR5cGVzIGluIHYxLjIgKGUuZy4gJzQyJywgJ3RydWUnICYgJzAuOWUtMycpLFxuICAgIC8vIGFuZCBvdGhlcnMgaW4gdjEuMS5cbiAgICBpZiAoYWN0dWFsU3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHRlc3QgPSAodGFnKSA9PiB0YWcuZGVmYXVsdCAmJiB0YWcudGFnICE9PSAndGFnOnlhbWwub3JnLDIwMDI6c3RyJyAmJiB0YWcudGVzdD8udGVzdChzdHIpO1xuICAgICAgICBjb25zdCB7IGNvbXBhdCwgdGFncyB9ID0gY3R4LmRvYy5zY2hlbWE7XG4gICAgICAgIGlmICh0YWdzLnNvbWUodGVzdCkgfHwgY29tcGF0Py5zb21lKHRlc3QpKVxuICAgICAgICAgICAgcmV0dXJuIHF1b3RlZFN0cmluZyh2YWx1ZSwgY3R4KTtcbiAgICB9XG4gICAgcmV0dXJuIGltcGxpY2l0S2V5XG4gICAgICAgID8gc3RyXG4gICAgICAgIDogZm9sZEZsb3dMaW5lcyhzdHIsIGluZGVudCwgRk9MRF9GTE9XLCBnZXRGb2xkT3B0aW9ucyhjdHgsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlTdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyBpbXBsaWNpdEtleSwgaW5GbG93IH0gPSBjdHg7XG4gICAgY29uc3Qgc3MgPSB0eXBlb2YgaXRlbS52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBpdGVtXG4gICAgICAgIDogT2JqZWN0LmFzc2lnbih7fSwgaXRlbSwgeyB2YWx1ZTogU3RyaW5nKGl0ZW0udmFsdWUpIH0pO1xuICAgIGxldCB7IHR5cGUgfSA9IGl0ZW07XG4gICAgaWYgKHR5cGUgIT09IFNjYWxhci5RVU9URV9ET1VCTEUpIHtcbiAgICAgICAgLy8gZm9yY2UgZG91YmxlIHF1b3RlcyBvbiBjb250cm9sIGNoYXJhY3RlcnMgJiB1bnBhaXJlZCBzdXJyb2dhdGVzXG4gICAgICAgIGlmICgvW1xceDAwLVxceDA4XFx4MGItXFx4MWZcXHg3Zi1cXHg5ZlxcdXtEODAwfS1cXHV7REZGRn1dL3UudGVzdChzcy52YWx1ZSkpXG4gICAgICAgICAgICB0eXBlID0gU2NhbGFyLlFVT1RFX0RPVUJMRTtcbiAgICB9XG4gICAgY29uc3QgX3N0cmluZ2lmeSA9IChfdHlwZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKF90eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5CTE9DS19GT0xERUQ6XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5CTE9DS19MSVRFUkFMOlxuICAgICAgICAgICAgICAgIHJldHVybiBpbXBsaWNpdEtleSB8fCBpbkZsb3dcbiAgICAgICAgICAgICAgICAgICAgPyBxdW90ZWRTdHJpbmcoc3MudmFsdWUsIGN0eCkgLy8gYmxvY2tzIGFyZSBub3QgdmFsaWQgaW5zaWRlIGZsb3cgY29udGFpbmVyc1xuICAgICAgICAgICAgICAgICAgICA6IGJsb2NrU3RyaW5nKHNzLCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgICAgICAgICAgY2FzZSBTY2FsYXIuUVVPVEVfRE9VQkxFOlxuICAgICAgICAgICAgICAgIHJldHVybiBkb3VibGVRdW90ZWRTdHJpbmcoc3MudmFsdWUsIGN0eCk7XG4gICAgICAgICAgICBjYXNlIFNjYWxhci5RVU9URV9TSU5HTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZVF1b3RlZFN0cmluZyhzcy52YWx1ZSwgY3R4KTtcbiAgICAgICAgICAgIGNhc2UgU2NhbGFyLlBMQUlOOlxuICAgICAgICAgICAgICAgIHJldHVybiBwbGFpblN0cmluZyhzcywgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGxldCByZXMgPSBfc3RyaW5naWZ5KHR5cGUpO1xuICAgIGlmIChyZXMgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0S2V5VHlwZSwgZGVmYXVsdFN0cmluZ1R5cGUgfSA9IGN0eC5vcHRpb25zO1xuICAgICAgICBjb25zdCB0ID0gKGltcGxpY2l0S2V5ICYmIGRlZmF1bHRLZXlUeXBlKSB8fCBkZWZhdWx0U3RyaW5nVHlwZTtcbiAgICAgICAgcmVzID0gX3N0cmluZ2lmeSh0KTtcbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke3R9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeVN0cmluZyB9O1xuIiwgImltcG9ydCB7IGFuY2hvcklzVmFsaWQgfSBmcm9tICcuLi9kb2MvYW5jaG9ycy5qcyc7XG5pbXBvcnQgeyBpc1BhaXIsIGlzQWxpYXMsIGlzTm9kZSwgaXNTY2FsYXIsIGlzQ29sbGVjdGlvbiB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeUNvbW1lbnQgfSBmcm9tICcuL3N0cmluZ2lmeUNvbW1lbnQuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5U3RyaW5nIH0gZnJvbSAnLi9zdHJpbmdpZnlTdHJpbmcuanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVTdHJpbmdpZnlDb250ZXh0KGRvYywgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBibG9ja1F1b3RlOiB0cnVlLFxuICAgICAgICBjb21tZW50U3RyaW5nOiBzdHJpbmdpZnlDb21tZW50LFxuICAgICAgICBkZWZhdWx0S2V5VHlwZTogbnVsbCxcbiAgICAgICAgZGVmYXVsdFN0cmluZ1R5cGU6ICdQTEFJTicsXG4gICAgICAgIGRpcmVjdGl2ZXM6IG51bGwsXG4gICAgICAgIGRvdWJsZVF1b3RlZEFzSlNPTjogZmFsc2UsXG4gICAgICAgIGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDogNDAsXG4gICAgICAgIGZhbHNlU3RyOiAnZmFsc2UnLFxuICAgICAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IHRydWUsXG4gICAgICAgIGluZGVudFNlcTogdHJ1ZSxcbiAgICAgICAgbGluZVdpZHRoOiA4MCxcbiAgICAgICAgbWluQ29udGVudFdpZHRoOiAyMCxcbiAgICAgICAgbnVsbFN0cjogJ251bGwnLFxuICAgICAgICBzaW1wbGVLZXlzOiBmYWxzZSxcbiAgICAgICAgc2luZ2xlUXVvdGU6IG51bGwsXG4gICAgICAgIHRydWVTdHI6ICd0cnVlJyxcbiAgICAgICAgdmVyaWZ5QWxpYXNPcmRlcjogdHJ1ZVxuICAgIH0sIGRvYy5zY2hlbWEudG9TdHJpbmdPcHRpb25zLCBvcHRpb25zKTtcbiAgICBsZXQgaW5GbG93O1xuICAgIHN3aXRjaCAob3B0LmNvbGxlY3Rpb25TdHlsZSkge1xuICAgICAgICBjYXNlICdibG9jayc6XG4gICAgICAgICAgICBpbkZsb3cgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmbG93JzpcbiAgICAgICAgICAgIGluRmxvdyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGluRmxvdyA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGFuY2hvcnM6IG5ldyBTZXQoKSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IG9wdC5mbG93Q29sbGVjdGlvblBhZGRpbmcgPyAnICcgOiAnJyxcbiAgICAgICAgaW5kZW50OiAnJyxcbiAgICAgICAgaW5kZW50U3RlcDogdHlwZW9mIG9wdC5pbmRlbnQgPT09ICdudW1iZXInID8gJyAnLnJlcGVhdChvcHQuaW5kZW50KSA6ICcgICcsXG4gICAgICAgIGluRmxvdyxcbiAgICAgICAgb3B0aW9uczogb3B0XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFRhZ09iamVjdCh0YWdzLCBpdGVtKSB7XG4gICAgaWYgKGl0ZW0udGFnKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gdGFncy5maWx0ZXIodCA9PiB0LnRhZyA9PT0gaXRlbS50YWcpO1xuICAgICAgICBpZiAobWF0Y2gubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiBtYXRjaC5maW5kKHQgPT4gdC5mb3JtYXQgPT09IGl0ZW0uZm9ybWF0KSA/PyBtYXRjaFswXTtcbiAgICB9XG4gICAgbGV0IHRhZ09iaiA9IHVuZGVmaW5lZDtcbiAgICBsZXQgb2JqO1xuICAgIGlmIChpc1NjYWxhcihpdGVtKSkge1xuICAgICAgICBvYmogPSBpdGVtLnZhbHVlO1xuICAgICAgICBsZXQgbWF0Y2ggPSB0YWdzLmZpbHRlcih0ID0+IHQuaWRlbnRpZnk/LihvYmopKTtcbiAgICAgICAgaWYgKG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RNYXRjaCA9IG1hdGNoLmZpbHRlcih0ID0+IHQudGVzdCk7XG4gICAgICAgICAgICBpZiAodGVzdE1hdGNoLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgbWF0Y2ggPSB0ZXN0TWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgdGFnT2JqID1cbiAgICAgICAgICAgIG1hdGNoLmZpbmQodCA9PiB0LmZvcm1hdCA9PT0gaXRlbS5mb3JtYXQpID8/IG1hdGNoLmZpbmQodCA9PiAhdC5mb3JtYXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb2JqID0gaXRlbTtcbiAgICAgICAgdGFnT2JqID0gdGFncy5maW5kKHQgPT4gdC5ub2RlQ2xhc3MgJiYgb2JqIGluc3RhbmNlb2YgdC5ub2RlQ2xhc3MpO1xuICAgIH1cbiAgICBpZiAoIXRhZ09iaikge1xuICAgICAgICBjb25zdCBuYW1lID0gb2JqPy5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyB0eXBlb2Ygb2JqO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhZyBub3QgcmVzb2x2ZWQgZm9yICR7bmFtZX0gdmFsdWVgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ09iajtcbn1cbi8vIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgdmFsdWUgc3RyaW5naWZpZXIgdG8gYWxsb3cgZm9yIGNpcmN1bGFyIGFuY2hvciByZWZzXG5mdW5jdGlvbiBzdHJpbmdpZnlQcm9wcyhub2RlLCB0YWdPYmosIHsgYW5jaG9ycywgZG9jIH0pIHtcbiAgICBpZiAoIWRvYy5kaXJlY3RpdmVzKVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgY29uc3QgcHJvcHMgPSBbXTtcbiAgICBjb25zdCBhbmNob3IgPSAoaXNTY2FsYXIobm9kZSkgfHwgaXNDb2xsZWN0aW9uKG5vZGUpKSAmJiBub2RlLmFuY2hvcjtcbiAgICBpZiAoYW5jaG9yICYmIGFuY2hvcklzVmFsaWQoYW5jaG9yKSkge1xuICAgICAgICBhbmNob3JzLmFkZChhbmNob3IpO1xuICAgICAgICBwcm9wcy5wdXNoKGAmJHthbmNob3J9YCk7XG4gICAgfVxuICAgIGNvbnN0IHRhZyA9IG5vZGUudGFnID8gbm9kZS50YWcgOiB0YWdPYmouZGVmYXVsdCA/IG51bGwgOiB0YWdPYmoudGFnO1xuICAgIGlmICh0YWcpXG4gICAgICAgIHByb3BzLnB1c2goZG9jLmRpcmVjdGl2ZXMudGFnU3RyaW5nKHRhZykpO1xuICAgIHJldHVybiBwcm9wcy5qb2luKCcgJyk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnkoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgaWYgKGlzUGFpcihpdGVtKSlcbiAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICBpZiAoaXNBbGlhcyhpdGVtKSkge1xuICAgICAgICBpZiAoY3R4LmRvYy5kaXJlY3RpdmVzKVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoY3R4KTtcbiAgICAgICAgaWYgKGN0eC5yZXNvbHZlZEFsaWFzZXM/LmhhcyhpdGVtKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ2Fubm90IHN0cmluZ2lmeSBjaXJjdWxhciBzdHJ1Y3R1cmUgd2l0aG91dCBhbGlhcyBub2Rlc2ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0eC5yZXNvbHZlZEFsaWFzZXMpXG4gICAgICAgICAgICAgICAgY3R4LnJlc29sdmVkQWxpYXNlcy5hZGQoaXRlbSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY3R4LnJlc29sdmVkQWxpYXNlcyA9IG5ldyBTZXQoW2l0ZW1dKTtcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlc29sdmUoY3R4LmRvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IHRhZ09iaiA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBub2RlID0gaXNOb2RlKGl0ZW0pXG4gICAgICAgID8gaXRlbVxuICAgICAgICA6IGN0eC5kb2MuY3JlYXRlTm9kZShpdGVtLCB7IG9uVGFnT2JqOiBvID0+ICh0YWdPYmogPSBvKSB9KTtcbiAgICBpZiAoIXRhZ09iailcbiAgICAgICAgdGFnT2JqID0gZ2V0VGFnT2JqZWN0KGN0eC5kb2Muc2NoZW1hLnRhZ3MsIG5vZGUpO1xuICAgIGNvbnN0IHByb3BzID0gc3RyaW5naWZ5UHJvcHMobm9kZSwgdGFnT2JqLCBjdHgpO1xuICAgIGlmIChwcm9wcy5sZW5ndGggPiAwKVxuICAgICAgICBjdHguaW5kZW50QXRTdGFydCA9IChjdHguaW5kZW50QXRTdGFydCA/PyAwKSArIHByb3BzLmxlbmd0aCArIDE7XG4gICAgY29uc3Qgc3RyID0gdHlwZW9mIHRhZ09iai5zdHJpbmdpZnkgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyB0YWdPYmouc3RyaW5naWZ5KG5vZGUsIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcClcbiAgICAgICAgOiBpc1NjYWxhcihub2RlKVxuICAgICAgICAgICAgPyBzdHJpbmdpZnlTdHJpbmcobm9kZSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKVxuICAgICAgICAgICAgOiBub2RlLnRvU3RyaW5nKGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCk7XG4gICAgaWYgKCFwcm9wcylcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICByZXR1cm4gaXNTY2FsYXIobm9kZSkgfHwgc3RyWzBdID09PSAneycgfHwgc3RyWzBdID09PSAnWydcbiAgICAgICAgPyBgJHtwcm9wc30gJHtzdHJ9YFxuICAgICAgICA6IGAke3Byb3BzfVxcbiR7Y3R4LmluZGVudH0ke3N0cn1gO1xufVxuXG5leHBvcnQgeyBjcmVhdGVTdHJpbmdpZnlDb250ZXh0LCBzdHJpbmdpZnkgfTtcbiIsICJpbXBvcnQgeyBpc0NvbGxlY3Rpb24sIGlzTm9kZSwgaXNTY2FsYXIsIGlzU2VxIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmltcG9ydCB7IGxpbmVDb21tZW50LCBpbmRlbnRDb21tZW50IH0gZnJvbSAnLi9zdHJpbmdpZnlDb21tZW50LmpzJztcblxuZnVuY3Rpb24gc3RyaW5naWZ5UGFpcih7IGtleSwgdmFsdWUgfSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgY29uc3QgeyBhbGxOdWxsVmFsdWVzLCBkb2MsIGluZGVudCwgaW5kZW50U3RlcCwgb3B0aW9uczogeyBjb21tZW50U3RyaW5nLCBpbmRlbnRTZXEsIHNpbXBsZUtleXMgfSB9ID0gY3R4O1xuICAgIGxldCBrZXlDb21tZW50ID0gKGlzTm9kZShrZXkpICYmIGtleS5jb21tZW50KSB8fCBudWxsO1xuICAgIGlmIChzaW1wbGVLZXlzKSB7XG4gICAgICAgIGlmIChrZXlDb21tZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dpdGggc2ltcGxlIGtleXMsIGtleSBub2RlcyBjYW5ub3QgaGF2ZSBjb21tZW50cycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NvbGxlY3Rpb24oa2V5KSB8fCAoIWlzTm9kZShrZXkpICYmIHR5cGVvZiBrZXkgPT09ICdvYmplY3QnKSkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gJ1dpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWUnO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IGV4cGxpY2l0S2V5ID0gIXNpbXBsZUtleXMgJiZcbiAgICAgICAgKCFrZXkgfHxcbiAgICAgICAgICAgIChrZXlDb21tZW50ICYmIHZhbHVlID09IG51bGwgJiYgIWN0eC5pbkZsb3cpIHx8XG4gICAgICAgICAgICBpc0NvbGxlY3Rpb24oa2V5KSB8fFxuICAgICAgICAgICAgKGlzU2NhbGFyKGtleSlcbiAgICAgICAgICAgICAgICA/IGtleS50eXBlID09PSBTY2FsYXIuQkxPQ0tfRk9MREVEIHx8IGtleS50eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIGtleSA9PT0gJ29iamVjdCcpKTtcbiAgICBjdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHtcbiAgICAgICAgYWxsTnVsbFZhbHVlczogZmFsc2UsXG4gICAgICAgIGltcGxpY2l0S2V5OiAhZXhwbGljaXRLZXkgJiYgKHNpbXBsZUtleXMgfHwgIWFsbE51bGxWYWx1ZXMpLFxuICAgICAgICBpbmRlbnQ6IGluZGVudCArIGluZGVudFN0ZXBcbiAgICB9KTtcbiAgICBsZXQga2V5Q29tbWVudERvbmUgPSBmYWxzZTtcbiAgICBsZXQgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgbGV0IHN0ciA9IHN0cmluZ2lmeShrZXksIGN0eCwgKCkgPT4gKGtleUNvbW1lbnREb25lID0gdHJ1ZSksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgaWYgKCFleHBsaWNpdEtleSAmJiAhY3R4LmluRmxvdyAmJiBzdHIubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICBpZiAoc2ltcGxlS2V5cylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVycycpO1xuICAgICAgICBleHBsaWNpdEtleSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChjdHguaW5GbG93KSB7XG4gICAgICAgIGlmIChhbGxOdWxsVmFsdWVzIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChrZXlDb21tZW50RG9uZSAmJiBvbkNvbW1lbnQpXG4gICAgICAgICAgICAgICAgb25Db21tZW50KCk7XG4gICAgICAgICAgICByZXR1cm4gc3RyID09PSAnJyA/ICc/JyA6IGV4cGxpY2l0S2V5ID8gYD8gJHtzdHJ9YCA6IHN0cjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICgoYWxsTnVsbFZhbHVlcyAmJiAhc2ltcGxlS2V5cykgfHwgKHZhbHVlID09IG51bGwgJiYgZXhwbGljaXRLZXkpKSB7XG4gICAgICAgIHN0ciA9IGA/ICR7c3RyfWA7XG4gICAgICAgIGlmIChrZXlDb21tZW50ICYmICFrZXlDb21tZW50RG9uZSkge1xuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyhrZXlDb21tZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2hvbXBLZWVwICYmIG9uQ2hvbXBLZWVwKVxuICAgICAgICAgICAgb25DaG9tcEtlZXAoKTtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgaWYgKGtleUNvbW1lbnREb25lKVxuICAgICAgICBrZXlDb21tZW50ID0gbnVsbDtcbiAgICBpZiAoZXhwbGljaXRLZXkpIHtcbiAgICAgICAgaWYgKGtleUNvbW1lbnQpXG4gICAgICAgICAgICBzdHIgKz0gbGluZUNvbW1lbnQoc3RyLCBjdHguaW5kZW50LCBjb21tZW50U3RyaW5nKGtleUNvbW1lbnQpKTtcbiAgICAgICAgc3RyID0gYD8gJHtzdHJ9XFxuJHtpbmRlbnR9OmA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdHIgPSBgJHtzdHJ9OmA7XG4gICAgICAgIGlmIChrZXlDb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyhrZXlDb21tZW50KSk7XG4gICAgfVxuICAgIGxldCB2c2IsIHZjYiwgdmFsdWVDb21tZW50O1xuICAgIGlmIChpc05vZGUodmFsdWUpKSB7XG4gICAgICAgIHZzYiA9ICEhdmFsdWUuc3BhY2VCZWZvcmU7XG4gICAgICAgIHZjYiA9IHZhbHVlLmNvbW1lbnRCZWZvcmU7XG4gICAgICAgIHZhbHVlQ29tbWVudCA9IHZhbHVlLmNvbW1lbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2c2IgPSBmYWxzZTtcbiAgICAgICAgdmNiID0gbnVsbDtcbiAgICAgICAgdmFsdWVDb21tZW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICB2YWx1ZSA9IGRvYy5jcmVhdGVOb2RlKHZhbHVlKTtcbiAgICB9XG4gICAgY3R4LmltcGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgaWYgKCFleHBsaWNpdEtleSAmJiAha2V5Q29tbWVudCAmJiBpc1NjYWxhcih2YWx1ZSkpXG4gICAgICAgIGN0eC5pbmRlbnRBdFN0YXJ0ID0gc3RyLmxlbmd0aCArIDE7XG4gICAgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgaWYgKCFpbmRlbnRTZXEgJiZcbiAgICAgICAgaW5kZW50U3RlcC5sZW5ndGggPj0gMiAmJlxuICAgICAgICAhY3R4LmluRmxvdyAmJlxuICAgICAgICAhZXhwbGljaXRLZXkgJiZcbiAgICAgICAgaXNTZXEodmFsdWUpICYmXG4gICAgICAgICF2YWx1ZS5mbG93ICYmXG4gICAgICAgICF2YWx1ZS50YWcgJiZcbiAgICAgICAgIXZhbHVlLmFuY2hvcikge1xuICAgICAgICAvLyBJZiBpbmRlbnRTZXEgPT09IGZhbHNlLCBjb25zaWRlciAnLSAnIGFzIHBhcnQgb2YgaW5kZW50YXRpb24gd2hlcmUgcG9zc2libGVcbiAgICAgICAgY3R4LmluZGVudCA9IGN0eC5pbmRlbnQuc3Vic3RyaW5nKDIpO1xuICAgIH1cbiAgICBsZXQgdmFsdWVDb21tZW50RG9uZSA9IGZhbHNlO1xuICAgIGNvbnN0IHZhbHVlU3RyID0gc3RyaW5naWZ5KHZhbHVlLCBjdHgsICgpID0+ICh2YWx1ZUNvbW1lbnREb25lID0gdHJ1ZSksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgbGV0IHdzID0gJyAnO1xuICAgIGlmIChrZXlDb21tZW50IHx8IHZzYiB8fCB2Y2IpIHtcbiAgICAgICAgd3MgPSB2c2IgPyAnXFxuJyA6ICcnO1xuICAgICAgICBpZiAodmNiKSB7XG4gICAgICAgICAgICBjb25zdCBjcyA9IGNvbW1lbnRTdHJpbmcodmNiKTtcbiAgICAgICAgICAgIHdzICs9IGBcXG4ke2luZGVudENvbW1lbnQoY3MsIGN0eC5pbmRlbnQpfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlU3RyID09PSAnJyAmJiAhY3R4LmluRmxvdykge1xuICAgICAgICAgICAgaWYgKHdzID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICB3cyA9ICdcXG5cXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd3MgKz0gYFxcbiR7Y3R4LmluZGVudH1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKCFleHBsaWNpdEtleSAmJiBpc0NvbGxlY3Rpb24odmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHZzMCA9IHZhbHVlU3RyWzBdO1xuICAgICAgICBjb25zdCBubDAgPSB2YWx1ZVN0ci5pbmRleE9mKCdcXG4nKTtcbiAgICAgICAgY29uc3QgaGFzTmV3bGluZSA9IG5sMCAhPT0gLTE7XG4gICAgICAgIGNvbnN0IGZsb3cgPSBjdHguaW5GbG93ID8/IHZhbHVlLmZsb3cgPz8gdmFsdWUuaXRlbXMubGVuZ3RoID09PSAwO1xuICAgICAgICBpZiAoaGFzTmV3bGluZSB8fCAhZmxvdykge1xuICAgICAgICAgICAgbGV0IGhhc1Byb3BzTGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGhhc05ld2xpbmUgJiYgKHZzMCA9PT0gJyYnIHx8IHZzMCA9PT0gJyEnKSkge1xuICAgICAgICAgICAgICAgIGxldCBzcDAgPSB2YWx1ZVN0ci5pbmRleE9mKCcgJyk7XG4gICAgICAgICAgICAgICAgaWYgKHZzMCA9PT0gJyYnICYmXG4gICAgICAgICAgICAgICAgICAgIHNwMCAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgc3AwIDwgbmwwICYmXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlU3RyW3NwMCArIDFdID09PSAnIScpIHtcbiAgICAgICAgICAgICAgICAgICAgc3AwID0gdmFsdWVTdHIuaW5kZXhPZignICcsIHNwMCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3AwID09PSAtMSB8fCBubDAgPCBzcDApXG4gICAgICAgICAgICAgICAgICAgIGhhc1Byb3BzTGluZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc1Byb3BzTGluZSlcbiAgICAgICAgICAgICAgICB3cyA9IGBcXG4ke2N0eC5pbmRlbnR9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZVN0ciA9PT0gJycgfHwgdmFsdWVTdHJbMF0gPT09ICdcXG4nKSB7XG4gICAgICAgIHdzID0gJyc7XG4gICAgfVxuICAgIHN0ciArPSB3cyArIHZhbHVlU3RyO1xuICAgIGlmIChjdHguaW5GbG93KSB7XG4gICAgICAgIGlmICh2YWx1ZUNvbW1lbnREb25lICYmIG9uQ29tbWVudClcbiAgICAgICAgICAgIG9uQ29tbWVudCgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZUNvbW1lbnQgJiYgIXZhbHVlQ29tbWVudERvbmUpIHtcbiAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgY3R4LmluZGVudCwgY29tbWVudFN0cmluZyh2YWx1ZUNvbW1lbnQpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2hvbXBLZWVwICYmIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIG9uQ2hvbXBLZWVwKCk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeVBhaXIgfTtcbiIsICJmdW5jdGlvbiBkZWJ1Zyhsb2dMZXZlbCwgLi4ubWVzc2FnZXMpIHtcbiAgICBpZiAobG9nTGV2ZWwgPT09ICdkZWJ1ZycpXG4gICAgICAgIGNvbnNvbGUubG9nKC4uLm1lc3NhZ2VzKTtcbn1cbmZ1bmN0aW9uIHdhcm4obG9nTGV2ZWwsIHdhcm5pbmcpIHtcbiAgICBpZiAobG9nTGV2ZWwgPT09ICdkZWJ1ZycgfHwgbG9nTGV2ZWwgPT09ICd3YXJuJykge1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW1pdFdhcm5pbmcpXG4gICAgICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKHdhcm5pbmcpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBkZWJ1Zywgd2FybiB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc0FsaWFzLCBpc1NlcSwgaXNNYXAgfSBmcm9tICcuLi8uLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG4vLyBJZiB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgbWVyZ2Uga2V5IGlzIGEgc2luZ2xlIG1hcHBpbmcgbm9kZSwgZWFjaCBvZlxuLy8gaXRzIGtleS92YWx1ZSBwYWlycyBpcyBpbnNlcnRlZCBpbnRvIHRoZSBjdXJyZW50IG1hcHBpbmcsIHVubGVzcyB0aGUga2V5XG4vLyBhbHJlYWR5IGV4aXN0cyBpbiBpdC4gSWYgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVyZ2Uga2V5IGlzIGFcbi8vIHNlcXVlbmNlLCB0aGVuIHRoaXMgc2VxdWVuY2UgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBtYXBwaW5nIG5vZGVzIGFuZCBlYWNoXG4vLyBvZiB0aGVzZSBub2RlcyBpcyBtZXJnZWQgaW4gdHVybiBhY2NvcmRpbmcgdG8gaXRzIG9yZGVyIGluIHRoZSBzZXF1ZW5jZS5cbi8vIEtleXMgaW4gbWFwcGluZyBub2RlcyBlYXJsaWVyIGluIHRoZSBzZXF1ZW5jZSBvdmVycmlkZSBrZXlzIHNwZWNpZmllZCBpblxuLy8gbGF0ZXIgbWFwcGluZyBub2Rlcy4gLS0gaHR0cDovL3lhbWwub3JnL3R5cGUvbWVyZ2UuaHRtbFxuY29uc3QgTUVSR0VfS0VZID0gJzw8JztcbmNvbnN0IG1lcmdlID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB2YWx1ZSA9PT0gTUVSR0VfS0VZIHx8XG4gICAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnICYmIHZhbHVlLmRlc2NyaXB0aW9uID09PSBNRVJHRV9LRVkpLFxuICAgIGRlZmF1bHQ6ICdrZXknLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJyxcbiAgICB0ZXN0OiAvXjw8JC8sXG4gICAgcmVzb2x2ZTogKCkgPT4gT2JqZWN0LmFzc2lnbihuZXcgU2NhbGFyKFN5bWJvbChNRVJHRV9LRVkpKSwge1xuICAgICAgICBhZGRUb0pTTWFwOiBhZGRNZXJnZVRvSlNNYXBcbiAgICB9KSxcbiAgICBzdHJpbmdpZnk6ICgpID0+IE1FUkdFX0tFWVxufTtcbmNvbnN0IGlzTWVyZ2VLZXkgPSAoY3R4LCBrZXkpID0+IChtZXJnZS5pZGVudGlmeShrZXkpIHx8XG4gICAgKGlzU2NhbGFyKGtleSkgJiZcbiAgICAgICAgKCFrZXkudHlwZSB8fCBrZXkudHlwZSA9PT0gU2NhbGFyLlBMQUlOKSAmJlxuICAgICAgICBtZXJnZS5pZGVudGlmeShrZXkudmFsdWUpKSkgJiZcbiAgICBjdHg/LmRvYy5zY2hlbWEudGFncy5zb21lKHRhZyA9PiB0YWcudGFnID09PSBtZXJnZS50YWcgJiYgdGFnLmRlZmF1bHQpO1xuZnVuY3Rpb24gYWRkTWVyZ2VUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSkge1xuICAgIHZhbHVlID0gY3R4ICYmIGlzQWxpYXModmFsdWUpID8gdmFsdWUucmVzb2x2ZShjdHguZG9jKSA6IHZhbHVlO1xuICAgIGlmIChpc1NlcSh2YWx1ZSkpXG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgdmFsdWUuaXRlbXMpXG4gICAgICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCBpdCk7XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgdmFsdWUpXG4gICAgICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCBpdCk7XG4gICAgZWxzZVxuICAgICAgICBtZXJnZVZhbHVlKGN0eCwgbWFwLCB2YWx1ZSk7XG59XG5mdW5jdGlvbiBtZXJnZVZhbHVlKGN0eCwgbWFwLCB2YWx1ZSkge1xuICAgIGNvbnN0IHNvdXJjZSA9IGN0eCAmJiBpc0FsaWFzKHZhbHVlKSA/IHZhbHVlLnJlc29sdmUoY3R4LmRvYykgOiB2YWx1ZTtcbiAgICBpZiAoIWlzTWFwKHNvdXJjZSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXMnKTtcbiAgICBjb25zdCBzcmNNYXAgPSBzb3VyY2UudG9KU09OKG51bGwsIGN0eCwgTWFwKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzcmNNYXApIHtcbiAgICAgICAgaWYgKG1hcCBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgaWYgKCFtYXAuaGFzKGtleSkpXG4gICAgICAgICAgICAgICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXAgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgIG1hcC5hZGQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1hcCwga2V5KSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG1hcCwga2V5LCB7XG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG59XG5cbmV4cG9ydCB7IGFkZE1lcmdlVG9KU01hcCwgaXNNZXJnZUtleSwgbWVyZ2UgfTtcbiIsICJpbXBvcnQgeyB3YXJuIH0gZnJvbSAnLi4vbG9nLmpzJztcbmltcG9ydCB7IGlzTWVyZ2VLZXksIGFkZE1lcmdlVG9KU01hcCB9IGZyb20gJy4uL3NjaGVtYS95YW1sLTEuMS9tZXJnZS5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTdHJpbmdpZnlDb250ZXh0IH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeS5qcyc7XG5pbXBvcnQgeyBpc05vZGUgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5mdW5jdGlvbiBhZGRQYWlyVG9KU01hcChjdHgsIG1hcCwgeyBrZXksIHZhbHVlIH0pIHtcbiAgICBpZiAoaXNOb2RlKGtleSkgJiYga2V5LmFkZFRvSlNNYXApXG4gICAgICAgIGtleS5hZGRUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSk7XG4gICAgLy8gVE9ETzogU2hvdWxkIGRyb3AgdGhpcyBzcGVjaWFsIGNhc2UgZm9yIGJhcmUgPDwgaGFuZGxpbmdcbiAgICBlbHNlIGlmIChpc01lcmdlS2V5KGN0eCwga2V5KSlcbiAgICAgICAgYWRkTWVyZ2VUb0pTTWFwKGN0eCwgbWFwLCB2YWx1ZSk7XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGpzS2V5ID0gdG9KUyhrZXksICcnLCBjdHgpO1xuICAgICAgICBpZiAobWFwIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBtYXAuc2V0KGpzS2V5LCB0b0pTKHZhbHVlLCBqc0tleSwgY3R4KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWFwIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgICAgICBtYXAuYWRkKGpzS2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ0tleSA9IHN0cmluZ2lmeUtleShrZXksIGpzS2V5LCBjdHgpO1xuICAgICAgICAgICAgY29uc3QganNWYWx1ZSA9IHRvSlModmFsdWUsIHN0cmluZ0tleSwgY3R4KTtcbiAgICAgICAgICAgIGlmIChzdHJpbmdLZXkgaW4gbWFwKVxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtYXAsIHN0cmluZ0tleSwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZToganNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1hcFtzdHJpbmdLZXldID0ganNWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5S2V5KGtleSwganNLZXksIGN0eCkge1xuICAgIGlmIChqc0tleSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIGlmICh0eXBlb2YganNLZXkgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gU3RyaW5nKGpzS2V5KTtcbiAgICBpZiAoaXNOb2RlKGtleSkgJiYgY3R4Py5kb2MpIHtcbiAgICAgICAgY29uc3Qgc3RyQ3R4ID0gY3JlYXRlU3RyaW5naWZ5Q29udGV4dChjdHguZG9jLCB7fSk7XG4gICAgICAgIHN0ckN0eC5hbmNob3JzID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgY3R4LmFuY2hvcnMua2V5cygpKVxuICAgICAgICAgICAgc3RyQ3R4LmFuY2hvcnMuYWRkKG5vZGUuYW5jaG9yKTtcbiAgICAgICAgc3RyQ3R4LmluRmxvdyA9IHRydWU7XG4gICAgICAgIHN0ckN0eC5pblN0cmluZ2lmeUtleSA9IHRydWU7XG4gICAgICAgIGNvbnN0IHN0cktleSA9IGtleS50b1N0cmluZyhzdHJDdHgpO1xuICAgICAgICBpZiAoIWN0eC5tYXBLZXlXYXJuZWQpIHtcbiAgICAgICAgICAgIGxldCBqc29uU3RyID0gSlNPTi5zdHJpbmdpZnkoc3RyS2V5KTtcbiAgICAgICAgICAgIGlmIChqc29uU3RyLmxlbmd0aCA+IDQwKVxuICAgICAgICAgICAgICAgIGpzb25TdHIgPSBqc29uU3RyLnN1YnN0cmluZygwLCAzNikgKyAnLi4uXCInO1xuICAgICAgICAgICAgd2FybihjdHguZG9jLm9wdGlvbnMubG9nTGV2ZWwsIGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtqc29uU3RyfS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKTtcbiAgICAgICAgICAgIGN0eC5tYXBLZXlXYXJuZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJLZXk7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShqc0tleSk7XG59XG5cbmV4cG9ydCB7IGFkZFBhaXJUb0pTTWFwIH07XG4iLCAiaW1wb3J0IHsgY3JlYXRlTm9kZSB9IGZyb20gJy4uL2RvYy9jcmVhdGVOb2RlLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeVBhaXIgfSBmcm9tICcuLi9zdHJpbmdpZnkvc3RyaW5naWZ5UGFpci5qcyc7XG5pbXBvcnQgeyBhZGRQYWlyVG9KU01hcCB9IGZyb20gJy4vYWRkUGFpclRvSlNNYXAuanMnO1xuaW1wb3J0IHsgTk9ERV9UWVBFLCBQQUlSLCBpc05vZGUgfSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuZnVuY3Rpb24gY3JlYXRlUGFpcihrZXksIHZhbHVlLCBjdHgpIHtcbiAgICBjb25zdCBrID0gY3JlYXRlTm9kZShrZXksIHVuZGVmaW5lZCwgY3R4KTtcbiAgICBjb25zdCB2ID0gY3JlYXRlTm9kZSh2YWx1ZSwgdW5kZWZpbmVkLCBjdHgpO1xuICAgIHJldHVybiBuZXcgUGFpcihrLCB2KTtcbn1cbmNsYXNzIFBhaXIge1xuICAgIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUgPSBudWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBOT0RFX1RZUEUsIHsgdmFsdWU6IFBBSVIgfSk7XG4gICAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGNsb25lKHNjaGVtYSkge1xuICAgICAgICBsZXQgeyBrZXksIHZhbHVlIH0gPSB0aGlzO1xuICAgICAgICBpZiAoaXNOb2RlKGtleSkpXG4gICAgICAgICAgICBrZXkgPSBrZXkuY2xvbmUoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzTm9kZSh2YWx1ZSkpXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmNsb25lKHNjaGVtYSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFpcihrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgdG9KU09OKF8sIGN0eCkge1xuICAgICAgICBjb25zdCBwYWlyID0gY3R4Py5tYXBBc01hcCA/IG5ldyBNYXAoKSA6IHt9O1xuICAgICAgICByZXR1cm4gYWRkUGFpclRvSlNNYXAoY3R4LCBwYWlyLCB0aGlzKTtcbiAgICB9XG4gICAgdG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIHJldHVybiBjdHg/LmRvY1xuICAgICAgICAgICAgPyBzdHJpbmdpZnlQYWlyKHRoaXMsIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcClcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkodGhpcyk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBQYWlyLCBjcmVhdGVQYWlyIH07XG4iLCAiaW1wb3J0IHsgaXNOb2RlLCBpc1BhaXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tICcuL3N0cmluZ2lmeS5qcyc7XG5pbXBvcnQgeyBsaW5lQ29tbWVudCwgaW5kZW50Q29tbWVudCB9IGZyb20gJy4vc3RyaW5naWZ5Q29tbWVudC5qcyc7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUNvbGxlY3Rpb24oY29sbGVjdGlvbiwgY3R4LCBvcHRpb25zKSB7XG4gICAgY29uc3QgZmxvdyA9IGN0eC5pbkZsb3cgPz8gY29sbGVjdGlvbi5mbG93O1xuICAgIGNvbnN0IHN0cmluZ2lmeSA9IGZsb3cgPyBzdHJpbmdpZnlGbG93Q29sbGVjdGlvbiA6IHN0cmluZ2lmeUJsb2NrQ29sbGVjdGlvbjtcbiAgICByZXR1cm4gc3RyaW5naWZ5KGNvbGxlY3Rpb24sIGN0eCwgb3B0aW9ucyk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlCbG9ja0NvbGxlY3Rpb24oeyBjb21tZW50LCBpdGVtcyB9LCBjdHgsIHsgYmxvY2tJdGVtUHJlZml4LCBmbG93Q2hhcnMsIGl0ZW1JbmRlbnQsIG9uQ2hvbXBLZWVwLCBvbkNvbW1lbnQgfSkge1xuICAgIGNvbnN0IHsgaW5kZW50LCBvcHRpb25zOiB7IGNvbW1lbnRTdHJpbmcgfSB9ID0gY3R4O1xuICAgIGNvbnN0IGl0ZW1DdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHsgaW5kZW50OiBpdGVtSW5kZW50LCB0eXBlOiBudWxsIH0pO1xuICAgIGxldCBjaG9tcEtlZXAgPSBmYWxzZTsgLy8gZmxhZyBmb3IgdGhlIHByZWNlZGluZyBub2RlJ3Mgc3RhdHVzXG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgbGV0IGNvbW1lbnQgPSBudWxsO1xuICAgICAgICBpZiAoaXNOb2RlKGl0ZW0pKSB7XG4gICAgICAgICAgICBpZiAoIWNob21wS2VlcCAmJiBpdGVtLnNwYWNlQmVmb3JlKVxuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgICAgICAgYWRkQ29tbWVudEJlZm9yZShjdHgsIGxpbmVzLCBpdGVtLmNvbW1lbnRCZWZvcmUsIGNob21wS2VlcCk7XG4gICAgICAgICAgICBpZiAoaXRlbS5jb21tZW50KVxuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpdGVtLmNvbW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNQYWlyKGl0ZW0pKSB7XG4gICAgICAgICAgICBjb25zdCBpayA9IGlzTm9kZShpdGVtLmtleSkgPyBpdGVtLmtleSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoaWspIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNob21wS2VlcCAmJiBpay5zcGFjZUJlZm9yZSlcbiAgICAgICAgICAgICAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgICAgICAgICAgYWRkQ29tbWVudEJlZm9yZShjdHgsIGxpbmVzLCBpay5jb21tZW50QmVmb3JlLCBjaG9tcEtlZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNob21wS2VlcCA9IGZhbHNlO1xuICAgICAgICBsZXQgc3RyID0gc3RyaW5naWZ5KGl0ZW0sIGl0ZW1DdHgsICgpID0+IChjb21tZW50ID0gbnVsbCksICgpID0+IChjaG9tcEtlZXAgPSB0cnVlKSk7XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgaXRlbUluZGVudCwgY29tbWVudFN0cmluZyhjb21tZW50KSk7XG4gICAgICAgIGlmIChjaG9tcEtlZXAgJiYgY29tbWVudClcbiAgICAgICAgICAgIGNob21wS2VlcCA9IGZhbHNlO1xuICAgICAgICBsaW5lcy5wdXNoKGJsb2NrSXRlbVByZWZpeCArIHN0cik7XG4gICAgfVxuICAgIGxldCBzdHI7XG4gICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzdHIgPSBmbG93Q2hhcnMuc3RhcnQgKyBmbG93Q2hhcnMuZW5kO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RyID0gbGluZXNbMF07XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbGluZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tpXTtcbiAgICAgICAgICAgIHN0ciArPSBsaW5lID8gYFxcbiR7aW5kZW50fSR7bGluZX1gIDogJ1xcbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgc3RyICs9ICdcXG4nICsgaW5kZW50Q29tbWVudChjb21tZW50U3RyaW5nKGNvbW1lbnQpLCBpbmRlbnQpO1xuICAgICAgICBpZiAob25Db21tZW50KVxuICAgICAgICAgICAgb25Db21tZW50KCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNob21wS2VlcCAmJiBvbkNob21wS2VlcClcbiAgICAgICAgb25DaG9tcEtlZXAoKTtcbiAgICByZXR1cm4gc3RyO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5Rmxvd0NvbGxlY3Rpb24oeyBpdGVtcyB9LCBjdHgsIHsgZmxvd0NoYXJzLCBpdGVtSW5kZW50IH0pIHtcbiAgICBjb25zdCB7IGluZGVudCwgaW5kZW50U3RlcCwgZmxvd0NvbGxlY3Rpb25QYWRkaW5nOiBmY1BhZGRpbmcsIG9wdGlvbnM6IHsgY29tbWVudFN0cmluZyB9IH0gPSBjdHg7XG4gICAgaXRlbUluZGVudCArPSBpbmRlbnRTdGVwO1xuICAgIGNvbnN0IGl0ZW1DdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHtcbiAgICAgICAgaW5kZW50OiBpdGVtSW5kZW50LFxuICAgICAgICBpbkZsb3c6IHRydWUsXG4gICAgICAgIHR5cGU6IG51bGxcbiAgICB9KTtcbiAgICBsZXQgcmVxTmV3bGluZSA9IGZhbHNlO1xuICAgIGxldCBsaW5lc0F0VmFsdWUgPSAwO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaV07XG4gICAgICAgIGxldCBjb21tZW50ID0gbnVsbDtcbiAgICAgICAgaWYgKGlzTm9kZShpdGVtKSkge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc3BhY2VCZWZvcmUpXG4gICAgICAgICAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgICAgICBhZGRDb21tZW50QmVmb3JlKGN0eCwgbGluZXMsIGl0ZW0uY29tbWVudEJlZm9yZSwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKGl0ZW0uY29tbWVudClcbiAgICAgICAgICAgICAgICBjb21tZW50ID0gaXRlbS5jb21tZW50O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGFpcihpdGVtKSkge1xuICAgICAgICAgICAgY29uc3QgaWsgPSBpc05vZGUoaXRlbS5rZXkpID8gaXRlbS5rZXkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGlrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlrLnNwYWNlQmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgICAgICAgICBhZGRDb21tZW50QmVmb3JlKGN0eCwgbGluZXMsIGlrLmNvbW1lbnRCZWZvcmUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoaWsuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdiA9IGlzTm9kZShpdGVtLnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGl2KSB7XG4gICAgICAgICAgICAgICAgaWYgKGl2LmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpdi5jb21tZW50O1xuICAgICAgICAgICAgICAgIGlmIChpdi5jb21tZW50QmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICByZXFOZXdsaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udmFsdWUgPT0gbnVsbCAmJiBpaz8uY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBpay5jb21tZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgIGxldCBzdHIgPSBzdHJpbmdpZnkoaXRlbSwgaXRlbUN0eCwgKCkgPT4gKGNvbW1lbnQgPSBudWxsKSk7XG4gICAgICAgIGlmIChpIDwgaXRlbXMubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgIHN0ciArPSAnLCc7XG4gICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgc3RyICs9IGxpbmVDb21tZW50KHN0ciwgaXRlbUluZGVudCwgY29tbWVudFN0cmluZyhjb21tZW50KSk7XG4gICAgICAgIGlmICghcmVxTmV3bGluZSAmJiAobGluZXMubGVuZ3RoID4gbGluZXNBdFZhbHVlIHx8IHN0ci5pbmNsdWRlcygnXFxuJykpKVxuICAgICAgICAgICAgcmVxTmV3bGluZSA9IHRydWU7XG4gICAgICAgIGxpbmVzLnB1c2goc3RyKTtcbiAgICAgICAgbGluZXNBdFZhbHVlID0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGZsb3dDaGFycztcbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFydCArIGVuZDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghcmVxTmV3bGluZSkge1xuICAgICAgICAgICAgY29uc3QgbGVuID0gbGluZXMucmVkdWNlKChzdW0sIGxpbmUpID0+IHN1bSArIGxpbmUubGVuZ3RoICsgMiwgMik7XG4gICAgICAgICAgICByZXFOZXdsaW5lID0gY3R4Lm9wdGlvbnMubGluZVdpZHRoID4gMCAmJiBsZW4gPiBjdHgub3B0aW9ucy5saW5lV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcU5ld2xpbmUpIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBzdGFydDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcylcbiAgICAgICAgICAgICAgICBzdHIgKz0gbGluZSA/IGBcXG4ke2luZGVudFN0ZXB9JHtpbmRlbnR9JHtsaW5lfWAgOiAnXFxuJztcbiAgICAgICAgICAgIHJldHVybiBgJHtzdHJ9XFxuJHtpbmRlbnR9JHtlbmR9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtzdGFydH0ke2ZjUGFkZGluZ30ke2xpbmVzLmpvaW4oJyAnKX0ke2ZjUGFkZGluZ30ke2VuZH1gO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkQ29tbWVudEJlZm9yZSh7IGluZGVudCwgb3B0aW9uczogeyBjb21tZW50U3RyaW5nIH0gfSwgbGluZXMsIGNvbW1lbnQsIGNob21wS2VlcCkge1xuICAgIGlmIChjb21tZW50ICYmIGNob21wS2VlcClcbiAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSgvXlxcbisvLCAnJyk7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWMgPSBpbmRlbnRDb21tZW50KGNvbW1lbnRTdHJpbmcoY29tbWVudCksIGluZGVudCk7XG4gICAgICAgIGxpbmVzLnB1c2goaWMudHJpbVN0YXJ0KCkpOyAvLyBBdm9pZCBkb3VibGUgaW5kZW50IG9uIGZpcnN0IGxpbmVcbiAgICB9XG59XG5cbmV4cG9ydCB7IHN0cmluZ2lmeUNvbGxlY3Rpb24gfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeUNvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgYWRkUGFpclRvSlNNYXAgfSBmcm9tICcuL2FkZFBhaXJUb0pTTWFwLmpzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgaXNQYWlyLCBpc1NjYWxhciwgTUFQIH0gZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBQYWlyLCBjcmVhdGVQYWlyIH0gZnJvbSAnLi9QYWlyLmpzJztcbmltcG9ydCB7IGlzU2NhbGFyVmFsdWUgfSBmcm9tICcuL1NjYWxhci5qcyc7XG5cbmZ1bmN0aW9uIGZpbmRQYWlyKGl0ZW1zLCBrZXkpIHtcbiAgICBjb25zdCBrID0gaXNTY2FsYXIoa2V5KSA/IGtleS52YWx1ZSA6IGtleTtcbiAgICBmb3IgKGNvbnN0IGl0IG9mIGl0ZW1zKSB7XG4gICAgICAgIGlmIChpc1BhaXIoaXQpKSB7XG4gICAgICAgICAgICBpZiAoaXQua2V5ID09PSBrZXkgfHwgaXQua2V5ID09PSBrKVxuICAgICAgICAgICAgICAgIHJldHVybiBpdDtcbiAgICAgICAgICAgIGlmIChpc1NjYWxhcihpdC5rZXkpICYmIGl0LmtleS52YWx1ZSA9PT0gaylcbiAgICAgICAgICAgICAgICByZXR1cm4gaXQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbmNsYXNzIFlBTUxNYXAgZXh0ZW5kcyBDb2xsZWN0aW9uIHtcbiAgICBzdGF0aWMgZ2V0IHRhZ05hbWUoKSB7XG4gICAgICAgIHJldHVybiAndGFnOnlhbWwub3JnLDIwMDI6bWFwJztcbiAgICB9XG4gICAgY29uc3RydWN0b3Ioc2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKE1BUCwgc2NoZW1hKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIGdlbmVyaWMgY29sbGVjdGlvbiBwYXJzaW5nIG1ldGhvZCB0aGF0IGNhbiBiZSBleHRlbmRlZFxuICAgICAqIHRvIG90aGVyIG5vZGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBZQU1MTWFwXG4gICAgICovXG4gICAgc3RhdGljIGZyb20oc2NoZW1hLCBvYmosIGN0eCkge1xuICAgICAgICBjb25zdCB7IGtlZXBVbmRlZmluZWQsIHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IGFkZCA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXIuY2FsbChvYmosIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikgJiYgIXJlcGxhY2VyLmluY2x1ZGVzKGtleSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwga2VlcFVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaChjcmVhdGVQYWlyKGtleSwgdmFsdWUsIGN0eCkpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBvYmopXG4gICAgICAgICAgICAgICAgYWRkKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSlcbiAgICAgICAgICAgICAgICBhZGQoa2V5LCBvYmpba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEuc29ydE1hcEVudHJpZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG1hcC5pdGVtcy5zb3J0KHNjaGVtYS5zb3J0TWFwRW50cmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyBhIHZhbHVlIHRvIHRoZSBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG92ZXJ3cml0ZSAtIElmIG5vdCBzZXQgYHRydWVgLCB1c2luZyBhIGtleSB0aGF0IGlzIGFscmVhZHkgaW4gdGhlXG4gICAgICogICBjb2xsZWN0aW9uIHdpbGwgdGhyb3cuIE90aGVyd2lzZSwgb3ZlcndyaXRlcyB0aGUgcHJldmlvdXMgdmFsdWUuXG4gICAgICovXG4gICAgYWRkKHBhaXIsIG92ZXJ3cml0ZSkge1xuICAgICAgICBsZXQgX3BhaXI7XG4gICAgICAgIGlmIChpc1BhaXIocGFpcikpXG4gICAgICAgICAgICBfcGFpciA9IHBhaXI7XG4gICAgICAgIGVsc2UgaWYgKCFwYWlyIHx8IHR5cGVvZiBwYWlyICE9PSAnb2JqZWN0JyB8fCAhKCdrZXknIGluIHBhaXIpKSB7XG4gICAgICAgICAgICAvLyBJbiBUeXBlU2NyaXB0LCB0aGlzIG5ldmVyIGhhcHBlbnMuXG4gICAgICAgICAgICBfcGFpciA9IG5ldyBQYWlyKHBhaXIsIHBhaXI/LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBfcGFpciA9IG5ldyBQYWlyKHBhaXIua2V5LCBwYWlyLnZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJldiA9IGZpbmRQYWlyKHRoaXMuaXRlbXMsIF9wYWlyLmtleSk7XG4gICAgICAgIGNvbnN0IHNvcnRFbnRyaWVzID0gdGhpcy5zY2hlbWE/LnNvcnRNYXBFbnRyaWVzO1xuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgaWYgKCFvdmVyd3JpdGUpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXkgJHtfcGFpci5rZXl9IGFscmVhZHkgc2V0YCk7XG4gICAgICAgICAgICAvLyBGb3Igc2NhbGFycywga2VlcCB0aGUgb2xkIG5vZGUgJiBpdHMgY29tbWVudHMgYW5kIGFuY2hvcnNcbiAgICAgICAgICAgIGlmIChpc1NjYWxhcihwcmV2LnZhbHVlKSAmJiBpc1NjYWxhclZhbHVlKF9wYWlyLnZhbHVlKSlcbiAgICAgICAgICAgICAgICBwcmV2LnZhbHVlLnZhbHVlID0gX3BhaXIudmFsdWU7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcHJldi52YWx1ZSA9IF9wYWlyLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNvcnRFbnRyaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBzb3J0RW50cmllcyhfcGFpciwgaXRlbSkgPCAwKTtcbiAgICAgICAgICAgIGlmIChpID09PSAtMSlcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goX3BhaXIpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGksIDAsIF9wYWlyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChfcGFpcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBjb25zdCBpdCA9IGZpbmRQYWlyKHRoaXMuaXRlbXMsIGtleSk7XG4gICAgICAgIGlmICghaXQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRlbCA9IHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdCksIDEpO1xuICAgICAgICByZXR1cm4gZGVsLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIGdldChrZXksIGtlZXBTY2FsYXIpIHtcbiAgICAgICAgY29uc3QgaXQgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICBjb25zdCBub2RlID0gaXQ/LnZhbHVlO1xuICAgICAgICByZXR1cm4gKCFrZWVwU2NhbGFyICYmIGlzU2NhbGFyKG5vZGUpID8gbm9kZS52YWx1ZSA6IG5vZGUpID8/IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFzKGtleSkge1xuICAgICAgICByZXR1cm4gISFmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmFkZChuZXcgUGFpcihrZXksIHZhbHVlKSwgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjdHggLSBDb252ZXJzaW9uIGNvbnRleHQsIG9yaWdpbmFsbHkgc2V0IGluIERvY3VtZW50I3RvSlMoKVxuICAgICAqIEBwYXJhbSB7Q2xhc3N9IFR5cGUgLSBJZiBzZXQsIGZvcmNlcyB0aGUgcmV0dXJuZWQgY29sbGVjdGlvbiB0eXBlXG4gICAgICogQHJldHVybnMgSW5zdGFuY2Ugb2YgVHlwZSwgTWFwLCBvciBPYmplY3RcbiAgICAgKi9cbiAgICB0b0pTT04oXywgY3R4LCBUeXBlKSB7XG4gICAgICAgIGNvbnN0IG1hcCA9IFR5cGUgPyBuZXcgVHlwZSgpIDogY3R4Py5tYXBBc01hcCA/IG5ldyBNYXAoKSA6IHt9O1xuICAgICAgICBpZiAoY3R4Py5vbkNyZWF0ZSlcbiAgICAgICAgICAgIGN0eC5vbkNyZWF0ZShtYXApO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcylcbiAgICAgICAgICAgIGFkZFBhaXJUb0pTTWFwKGN0eCwgbWFwLCBpdGVtKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgdG9TdHJpbmcoY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIGlmICghY3R4KVxuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgICAgICAgaWYgKCFpc1BhaXIoaXRlbSkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkoaXRlbSl9IGluc3RlYWRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWN0eC5hbGxOdWxsVmFsdWVzICYmIHRoaXMuaGFzQWxsTnVsbFZhbHVlcyhmYWxzZSkpXG4gICAgICAgICAgICBjdHggPSBPYmplY3QuYXNzaWduKHt9LCBjdHgsIHsgYWxsTnVsbFZhbHVlczogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUNvbGxlY3Rpb24odGhpcywgY3R4LCB7XG4gICAgICAgICAgICBibG9ja0l0ZW1QcmVmaXg6ICcnLFxuICAgICAgICAgICAgZmxvd0NoYXJzOiB7IHN0YXJ0OiAneycsIGVuZDogJ30nIH0sXG4gICAgICAgICAgICBpdGVtSW5kZW50OiBjdHguaW5kZW50IHx8ICcnLFxuICAgICAgICAgICAgb25DaG9tcEtlZXAsXG4gICAgICAgICAgICBvbkNvbW1lbnRcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBZQU1MTWFwLCBmaW5kUGFpciB9O1xuIiwgImltcG9ydCB7IGlzTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCB9IGZyb20gJy4uLy4uL25vZGVzL1lBTUxNYXAuanMnO1xuXG5jb25zdCBtYXAgPSB7XG4gICAgY29sbGVjdGlvbjogJ21hcCcsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICBub2RlQ2xhc3M6IFlBTUxNYXAsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6bWFwJyxcbiAgICByZXNvbHZlKG1hcCwgb25FcnJvcikge1xuICAgICAgICBpZiAoIWlzTWFwKG1hcCkpXG4gICAgICAgICAgICBvbkVycm9yKCdFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnJyk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSxcbiAgICBjcmVhdGVOb2RlOiAoc2NoZW1hLCBvYmosIGN0eCkgPT4gWUFNTE1hcC5mcm9tKHNjaGVtYSwgb2JqLCBjdHgpXG59O1xuXG5leHBvcnQgeyBtYXAgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi4vZG9jL2NyZWF0ZU5vZGUuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5Q29sbGVjdGlvbiB9IGZyb20gJy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24uanMnO1xuaW1wb3J0IHsgU0VRLCBpc1NjYWxhciB9IGZyb20gJy4vaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgaXNTY2FsYXJWYWx1ZSB9IGZyb20gJy4vU2NhbGFyLmpzJztcbmltcG9ydCB7IHRvSlMgfSBmcm9tICcuL3RvSlMuanMnO1xuXG5jbGFzcyBZQU1MU2VxIGV4dGVuZHMgQ29sbGVjdGlvbiB7XG4gICAgc3RhdGljIGdldCB0YWdOYW1lKCkge1xuICAgICAgICByZXR1cm4gJ3RhZzp5YW1sLm9yZywyMDAyOnNlcSc7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHNjaGVtYSkge1xuICAgICAgICBzdXBlcihTRVEsIHNjaGVtYSk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICB9XG4gICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSB2YWx1ZSBmcm9tIHRoZSBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogYGtleWAgbXVzdCBjb250YWluIGEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciBmb3IgdGhpcyB0byBzdWNjZWVkLlxuICAgICAqIEl0IG1heSBiZSB3cmFwcGVkIGluIGEgYFNjYWxhcmAuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGl0ZW0gd2FzIGZvdW5kIGFuZCByZW1vdmVkLlxuICAgICAqL1xuICAgIGRlbGV0ZShrZXkpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBkZWwgPSB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICByZXR1cm4gZGVsLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIGdldChrZXksIGtlZXBTY2FsYXIpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaXQgPSB0aGlzLml0ZW1zW2lkeF07XG4gICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcihpdCkgPyBpdC52YWx1ZSA6IGl0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGNvbGxlY3Rpb24gaW5jbHVkZXMgYSB2YWx1ZSB3aXRoIHRoZSBrZXkgYGtleWAuXG4gICAgICpcbiAgICAgKiBga2V5YCBtdXN0IGNvbnRhaW4gYSByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnRlZ2VyIGZvciB0aGlzIHRvIHN1Y2NlZWQuXG4gICAgICogSXQgbWF5IGJlIHdyYXBwZWQgaW4gYSBgU2NhbGFyYC5cbiAgICAgKi9cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IGFzSXRlbUluZGV4KGtleSk7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaWR4ID09PSAnbnVtYmVyJyAmJiBpZHggPCB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIGluIHRoaXMgY29sbGVjdGlvbi4gRm9yIGAhIXNldGAsIGB2YWx1ZWAgbmVlZHMgdG8gYmUgYVxuICAgICAqIGJvb2xlYW4gdG8gYWRkL3JlbW92ZSB0aGUgaXRlbSBmcm9tIHRoZSBzZXQuXG4gICAgICpcbiAgICAgKiBJZiBga2V5YCBkb2VzIG5vdCBjb250YWluIGEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciwgdGhpcyB3aWxsIHRocm93LlxuICAgICAqIEl0IG1heSBiZSB3cmFwcGVkIGluIGEgYFNjYWxhcmAuXG4gICAgICovXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gYXNJdGVtSW5kZXgoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZHggIT09ICdudW1iZXInKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHZhbGlkIGluZGV4LCBub3QgJHtrZXl9LmApO1xuICAgICAgICBjb25zdCBwcmV2ID0gdGhpcy5pdGVtc1tpZHhdO1xuICAgICAgICBpZiAoaXNTY2FsYXIocHJldikgJiYgaXNTY2FsYXJWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgICBwcmV2LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuaXRlbXNbaWR4XSA9IHZhbHVlO1xuICAgIH1cbiAgICB0b0pTT04oXywgY3R4KSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IFtdO1xuICAgICAgICBpZiAoY3R4Py5vbkNyZWF0ZSlcbiAgICAgICAgICAgIGN0eC5vbkNyZWF0ZShzZXEpO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKVxuICAgICAgICAgICAgc2VxLnB1c2godG9KUyhpdGVtLCBTdHJpbmcoaSsrKSwgY3R4KSk7XG4gICAgICAgIHJldHVybiBzZXE7XG4gICAgfVxuICAgIHRvU3RyaW5nKGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUNvbGxlY3Rpb24odGhpcywgY3R4LCB7XG4gICAgICAgICAgICBibG9ja0l0ZW1QcmVmaXg6ICctICcsXG4gICAgICAgICAgICBmbG93Q2hhcnM6IHsgc3RhcnQ6ICdbJywgZW5kOiAnXScgfSxcbiAgICAgICAgICAgIGl0ZW1JbmRlbnQ6IChjdHguaW5kZW50IHx8ICcnKSArICcgICcsXG4gICAgICAgICAgICBvbkNob21wS2VlcCxcbiAgICAgICAgICAgIG9uQ29tbWVudFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGZyb20oc2NoZW1hLCBvYmosIGN0eCkge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IHNlcSA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGlmIChvYmogJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChvYmopKSB7XG4gICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpdCBvZiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IG9iaiBpbnN0YW5jZW9mIFNldCA/IGl0IDogU3RyaW5nKGkrKyk7XG4gICAgICAgICAgICAgICAgICAgIGl0ID0gcmVwbGFjZXIuY2FsbChvYmosIGtleSwgaXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXEuaXRlbXMucHVzaChjcmVhdGVOb2RlKGl0LCB1bmRlZmluZWQsIGN0eCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXE7XG4gICAgfVxufVxuZnVuY3Rpb24gYXNJdGVtSW5kZXgoa2V5KSB7XG4gICAgbGV0IGlkeCA9IGlzU2NhbGFyKGtleSkgPyBrZXkudmFsdWUgOiBrZXk7XG4gICAgaWYgKGlkeCAmJiB0eXBlb2YgaWR4ID09PSAnc3RyaW5nJylcbiAgICAgICAgaWR4ID0gTnVtYmVyKGlkeCk7XG4gICAgcmV0dXJuIHR5cGVvZiBpZHggPT09ICdudW1iZXInICYmIE51bWJlci5pc0ludGVnZXIoaWR4KSAmJiBpZHggPj0gMFxuICAgICAgICA/IGlkeFxuICAgICAgICA6IG51bGw7XG59XG5cbmV4cG9ydCB7IFlBTUxTZXEgfTtcbiIsICJpbXBvcnQgeyBpc1NlcSB9IGZyb20gJy4uLy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MU2VxLmpzJztcblxuY29uc3Qgc2VxID0ge1xuICAgIGNvbGxlY3Rpb246ICdzZXEnLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgbm9kZUNsYXNzOiBZQU1MU2VxLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOnNlcScsXG4gICAgcmVzb2x2ZShzZXEsIG9uRXJyb3IpIHtcbiAgICAgICAgaWYgKCFpc1NlcShzZXEpKVxuICAgICAgICAgICAgb25FcnJvcignRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWcnKTtcbiAgICAgICAgcmV0dXJuIHNlcTtcbiAgICB9LFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIG9iaiwgY3R4KSA9PiBZQU1MU2VxLmZyb20oc2NoZW1hLCBvYmosIGN0eClcbn07XG5cbmV4cG9ydCB7IHNlcSB9O1xuIiwgImltcG9ydCB7IHN0cmluZ2lmeVN0cmluZyB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlTdHJpbmcuanMnO1xuXG5jb25zdCBzdHJpbmcgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzdHInLFxuICAgIHJlc29sdmU6IHN0ciA9PiBzdHIsXG4gICAgc3RyaW5naWZ5KGl0ZW0sIGN0eCwgb25Db21tZW50LCBvbkNob21wS2VlcCkge1xuICAgICAgICBjdHggPSBPYmplY3QuYXNzaWduKHsgYWN0dWFsU3RyaW5nOiB0cnVlIH0sIGN0eCk7XG4gICAgICAgIHJldHVybiBzdHJpbmdpZnlTdHJpbmcoaXRlbSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKTtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBzdHJpbmcgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5jb25zdCBudWxsVGFnID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB2YWx1ZSA9PSBudWxsLFxuICAgIGNyZWF0ZU5vZGU6ICgpID0+IG5ldyBTY2FsYXIobnVsbCksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpudWxsJyxcbiAgICB0ZXN0OiAvXig/On58W05uXXVsbHxOVUxMKT8kLyxcbiAgICByZXNvbHZlOiAoKSA9PiBuZXcgU2NhbGFyKG51bGwpLFxuICAgIHN0cmluZ2lmeTogKHsgc291cmNlIH0sIGN0eCkgPT4gdHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgJiYgbnVsbFRhZy50ZXN0LnRlc3Qoc291cmNlKVxuICAgICAgICA/IHNvdXJjZVxuICAgICAgICA6IGN0eC5vcHRpb25zLm51bGxTdHJcbn07XG5cbmV4cG9ydCB7IG51bGxUYWcgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5jb25zdCBib29sVGFnID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmJvb2wnLFxuICAgIHRlc3Q6IC9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLFxuICAgIHJlc29sdmU6IHN0ciA9PiBuZXcgU2NhbGFyKHN0clswXSA9PT0gJ3QnIHx8IHN0clswXSA9PT0gJ1QnKSxcbiAgICBzdHJpbmdpZnkoeyBzb3VyY2UsIHZhbHVlIH0sIGN0eCkge1xuICAgICAgICBpZiAoc291cmNlICYmIGJvb2xUYWcudGVzdC50ZXN0KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN2ID0gc291cmNlWzBdID09PSAndCcgfHwgc291cmNlWzBdID09PSAnVCc7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHN2KVxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gY3R4Lm9wdGlvbnMudHJ1ZVN0ciA6IGN0eC5vcHRpb25zLmZhbHNlU3RyO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGJvb2xUYWcgfTtcbiIsICJmdW5jdGlvbiBzdHJpbmdpZnlOdW1iZXIoeyBmb3JtYXQsIG1pbkZyYWN0aW9uRGlnaXRzLCB0YWcsIHZhbHVlIH0pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYmlnaW50JylcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIWlzRmluaXRlKG51bSkpXG4gICAgICAgIHJldHVybiBpc05hTihudW0pID8gJy5uYW4nIDogbnVtIDwgMCA/ICctLmluZicgOiAnLmluZic7XG4gICAgbGV0IG4gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKCFmb3JtYXQgJiZcbiAgICAgICAgbWluRnJhY3Rpb25EaWdpdHMgJiZcbiAgICAgICAgKCF0YWcgfHwgdGFnID09PSAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnKSAmJlxuICAgICAgICAvXlxcZC8udGVzdChuKSkge1xuICAgICAgICBsZXQgaSA9IG4uaW5kZXhPZignLicpO1xuICAgICAgICBpZiAoaSA8IDApIHtcbiAgICAgICAgICAgIGkgPSBuLmxlbmd0aDtcbiAgICAgICAgICAgIG4gKz0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkID0gbWluRnJhY3Rpb25EaWdpdHMgLSAobi5sZW5ndGggLSBpIC0gMSk7XG4gICAgICAgIHdoaWxlIChkLS0gPiAwKVxuICAgICAgICAgICAgbiArPSAnMCc7XG4gICAgfVxuICAgIHJldHVybiBuO1xufVxuXG5leHBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5TnVtYmVyIH0gZnJvbSAnLi4vLi4vc3RyaW5naWZ5L3N0cmluZ2lmeU51bWJlci5qcyc7XG5cbmNvbnN0IGZsb2F0TmFOID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eKD86Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwubmFufFxcLk5hTnxcXC5OQU4pJC8sXG4gICAgcmVzb2x2ZTogc3RyID0+IHN0ci5zbGljZSgtMykudG9Mb3dlckNhc2UoKSA9PT0gJ25hbidcbiAgICAgICAgPyBOYU5cbiAgICAgICAgOiBzdHJbMF0gPT09ICctJ1xuICAgICAgICAgICAgPyBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFlcbiAgICAgICAgICAgIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5TnVtYmVyXG59O1xuY29uc3QgZmxvYXRFeHAgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCcsXG4gICAgZm9ybWF0OiAnRVhQJyxcbiAgICB0ZXN0OiAvXlstK10/KD86XFwuWzAtOV0rfFswLTldKyg/OlxcLlswLTldKik/KVtlRV1bLStdP1swLTldKyQvLFxuICAgIHJlc29sdmU6IHN0ciA9PiBwYXJzZUZsb2F0KHN0ciksXG4gICAgc3RyaW5naWZ5KG5vZGUpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKG5vZGUudmFsdWUpO1xuICAgICAgICByZXR1cm4gaXNGaW5pdGUobnVtKSA/IG51bS50b0V4cG9uZW50aWFsKCkgOiBzdHJpbmdpZnlOdW1iZXIobm9kZSk7XG4gICAgfVxufTtcbmNvbnN0IGZsb2F0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eWy0rXT8oPzpcXC5bMC05XSt8WzAtOV0rXFwuWzAtOV0qKSQvLFxuICAgIHJlc29sdmUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgU2NhbGFyKHBhcnNlRmxvYXQoc3RyKSk7XG4gICAgICAgIGNvbnN0IGRvdCA9IHN0ci5pbmRleE9mKCcuJyk7XG4gICAgICAgIGlmIChkb3QgIT09IC0xICYmIHN0cltzdHIubGVuZ3RoIC0gMV0gPT09ICcwJylcbiAgICAgICAgICAgIG5vZGUubWluRnJhY3Rpb25EaWdpdHMgPSBzdHIubGVuZ3RoIC0gZG90IC0gMTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeU51bWJlclxufTtcblxuZXhwb3J0IHsgZmxvYXQsIGZsb2F0RXhwLCBmbG9hdE5hTiB9O1xuIiwgImltcG9ydCB7IHN0cmluZ2lmeU51bWJlciB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlOdW1iZXIuanMnO1xuXG5jb25zdCBpbnRJZGVudGlmeSA9ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyB8fCBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbmNvbnN0IGludFJlc29sdmUgPSAoc3RyLCBvZmZzZXQsIHJhZGl4LCB7IGludEFzQmlnSW50IH0pID0+IChpbnRBc0JpZ0ludCA/IEJpZ0ludChzdHIpIDogcGFyc2VJbnQoc3RyLnN1YnN0cmluZyhvZmZzZXQpLCByYWRpeCkpO1xuZnVuY3Rpb24gaW50U3RyaW5naWZ5KG5vZGUsIHJhZGl4LCBwcmVmaXgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBub2RlO1xuICAgIGlmIChpbnRJZGVudGlmeSh2YWx1ZSkgJiYgdmFsdWUgPj0gMClcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIHZhbHVlLnRvU3RyaW5nKHJhZGl4KTtcbiAgICByZXR1cm4gc3RyaW5naWZ5TnVtYmVyKG5vZGUpO1xufVxuY29uc3QgaW50T2N0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiBpbnRJZGVudGlmeSh2YWx1ZSkgJiYgdmFsdWUgPj0gMCxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmludCcsXG4gICAgZm9ybWF0OiAnT0NUJyxcbiAgICB0ZXN0OiAvXjBvWzAtN10rJC8sXG4gICAgcmVzb2x2ZTogKHN0ciwgX29uRXJyb3IsIG9wdCkgPT4gaW50UmVzb2x2ZShzdHIsIDIsIDgsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCA4LCAnMG8nKVxufTtcbmNvbnN0IGludCA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMCwgMTAsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5jb25zdCBpbnRIZXggPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IGludElkZW50aWZ5KHZhbHVlKSAmJiB2YWx1ZSA+PSAwLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdIRVgnLFxuICAgIHRlc3Q6IC9eMHhbMC05YS1mQS1GXSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMiwgMTYsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCAxNiwgJzB4Jylcbn07XG5cbmV4cG9ydCB7IGludCwgaW50SGV4LCBpbnRPY3QgfTtcbiIsICJpbXBvcnQgeyBtYXAgfSBmcm9tICcuLi9jb21tb24vbWFwLmpzJztcbmltcG9ydCB7IG51bGxUYWcgfSBmcm9tICcuLi9jb21tb24vbnVsbC5qcyc7XG5pbXBvcnQgeyBzZXEgfSBmcm9tICcuLi9jb21tb24vc2VxLmpzJztcbmltcG9ydCB7IHN0cmluZyB9IGZyb20gJy4uL2NvbW1vbi9zdHJpbmcuanMnO1xuaW1wb3J0IHsgYm9vbFRhZyB9IGZyb20gJy4vYm9vbC5qcyc7XG5pbXBvcnQgeyBmbG9hdE5hTiwgZmxvYXRFeHAsIGZsb2F0IH0gZnJvbSAnLi9mbG9hdC5qcyc7XG5pbXBvcnQgeyBpbnRPY3QsIGludCwgaW50SGV4IH0gZnJvbSAnLi9pbnQuanMnO1xuXG5jb25zdCBzY2hlbWEgPSBbXG4gICAgbWFwLFxuICAgIHNlcSxcbiAgICBzdHJpbmcsXG4gICAgbnVsbFRhZyxcbiAgICBib29sVGFnLFxuICAgIGludE9jdCxcbiAgICBpbnQsXG4gICAgaW50SGV4LFxuICAgIGZsb2F0TmFOLFxuICAgIGZsb2F0RXhwLFxuICAgIGZsb2F0XG5dO1xuXG5leHBvcnQgeyBzY2hlbWEgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi4vY29tbW9uL21hcC5qcyc7XG5pbXBvcnQgeyBzZXEgfSBmcm9tICcuLi9jb21tb24vc2VxLmpzJztcblxuZnVuY3Rpb24gaW50SWRlbnRpZnkodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyB8fCBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbn1cbmNvbnN0IHN0cmluZ2lmeUpTT04gPSAoeyB2YWx1ZSB9KSA9PiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5jb25zdCBqc29uU2NhbGFycyA9IFtcbiAgICB7XG4gICAgICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzdHInLFxuICAgICAgICByZXNvbHZlOiBzdHIgPT4gc3RyLFxuICAgICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeUpTT05cbiAgICB9LFxuICAgIHtcbiAgICAgICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlID09IG51bGwsXG4gICAgICAgIGNyZWF0ZU5vZGU6ICgpID0+IG5ldyBTY2FsYXIobnVsbCksXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOm51bGwnLFxuICAgICAgICB0ZXN0OiAvXm51bGwkLyxcbiAgICAgICAgcmVzb2x2ZTogKCkgPT4gbnVsbCxcbiAgICAgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlKU09OXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgICAgIHRlc3Q6IC9edHJ1ZXxmYWxzZSQvLFxuICAgICAgICByZXNvbHZlOiBzdHIgPT4gc3RyID09PSAndHJ1ZScsXG4gICAgICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5SlNPTlxuICAgIH0sXG4gICAge1xuICAgICAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmludCcsXG4gICAgICAgIHRlc3Q6IC9eLT8oPzowfFsxLTldWzAtOV0qKSQvLFxuICAgICAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgeyBpbnRBc0JpZ0ludCB9KSA9PiBpbnRBc0JpZ0ludCA/IEJpZ0ludChzdHIpIDogcGFyc2VJbnQoc3RyLCAxMCksXG4gICAgICAgIHN0cmluZ2lmeTogKHsgdmFsdWUgfSkgPT4gaW50SWRlbnRpZnkodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKVxuICAgIH0sXG4gICAge1xuICAgICAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgICAgICB0ZXN0OiAvXi0/KD86MHxbMS05XVswLTldKikoPzpcXC5bMC05XSopPyg/OltlRV1bLStdP1swLTldKyk/JC8sXG4gICAgICAgIHJlc29sdmU6IHN0ciA9PiBwYXJzZUZsb2F0KHN0ciksXG4gICAgICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5SlNPTlxuICAgIH1cbl07XG5jb25zdCBqc29uRXJyb3IgPSB7XG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICcnLFxuICAgIHRlc3Q6IC9eLyxcbiAgICByZXNvbHZlKHN0ciwgb25FcnJvcikge1xuICAgICAgICBvbkVycm9yKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KHN0cil9YCk7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxufTtcbmNvbnN0IHNjaGVtYSA9IFttYXAsIHNlcV0uY29uY2F0KGpzb25TY2FsYXJzLCBqc29uRXJyb3IpO1xuXG5leHBvcnQgeyBzY2hlbWEgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5U3RyaW5nIH0gZnJvbSAnLi4vLi4vc3RyaW5naWZ5L3N0cmluZ2lmeVN0cmluZy5qcyc7XG5cbmNvbnN0IGJpbmFyeSA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5LCAvLyBCdWZmZXIgaW5oZXJpdHMgZnJvbSBVaW50OEFycmF5XG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5JyxcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgQnVmZmVyIGluIG5vZGUgYW5kIGFuIFVpbnQ4QXJyYXkgaW4gYnJvd3NlcnNcbiAgICAgKlxuICAgICAqIFRvIHVzZSB0aGUgcmVzdWx0aW5nIGJ1ZmZlciBhcyBhbiBpbWFnZSwgeW91J2xsIHdhbnQgdG8gZG8gc29tZXRoaW5nIGxpa2U6XG4gICAgICpcbiAgICAgKiAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnaW1hZ2UvanBlZycgfSlcbiAgICAgKiAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwaG90bycpLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgKi9cbiAgICByZXNvbHZlKHNyYywgb25FcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNyYywgJ2Jhc2U2NCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBhdG9iID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBPbiBJRSAxMSwgYXRvYigpIGNhbid0IGhhbmRsZSBuZXdsaW5lc1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gYXRvYihzcmMucmVwbGFjZSgvW1xcblxccl0vZywgJycpKTtcbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25FcnJvcignVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYXRvYiBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIHNyYztcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc3RyaW5naWZ5KHsgY29tbWVudCwgdHlwZSwgdmFsdWUgfSwgY3R4LCBvbkNvbW1lbnQsIG9uQ2hvbXBLZWVwKSB7XG4gICAgICAgIGNvbnN0IGJ1ZiA9IHZhbHVlOyAvLyBjaGVja2VkIGVhcmxpZXIgYnkgYmluYXJ5LmlkZW50aWZ5KClcbiAgICAgICAgbGV0IHN0cjtcbiAgICAgICAgaWYgKHR5cGVvZiBCdWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0ciA9XG4gICAgICAgICAgICAgICAgYnVmIGluc3RhbmNlb2YgQnVmZmVyXG4gICAgICAgICAgICAgICAgICAgID8gYnVmLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgICAgICAgICAgICAgICA6IEJ1ZmZlci5mcm9tKGJ1Zi5idWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgYnRvYSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHMgPSAnJztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgKytpKVxuICAgICAgICAgICAgICAgIHMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pO1xuICAgICAgICAgICAgc3RyID0gYnRvYShzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYnRvYSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHR5cGUgPSBTY2FsYXIuQkxPQ0tfTElURVJBTDtcbiAgICAgICAgaWYgKHR5cGUgIT09IFNjYWxhci5RVU9URV9ET1VCTEUpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVXaWR0aCA9IE1hdGgubWF4KGN0eC5vcHRpb25zLmxpbmVXaWR0aCAtIGN0eC5pbmRlbnQubGVuZ3RoLCBjdHgub3B0aW9ucy5taW5Db250ZW50V2lkdGgpO1xuICAgICAgICAgICAgY29uc3QgbiA9IE1hdGguY2VpbChzdHIubGVuZ3RoIC8gbGluZVdpZHRoKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5KG4pO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIG8gPSAwOyBpIDwgbjsgKytpLCBvICs9IGxpbmVXaWR0aCkge1xuICAgICAgICAgICAgICAgIGxpbmVzW2ldID0gc3RyLnN1YnN0cihvLCBsaW5lV2lkdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyID0gbGluZXMuam9pbih0eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTCA/ICdcXG4nIDogJyAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyaW5naWZ5U3RyaW5nKHsgY29tbWVudCwgdHlwZSwgdmFsdWU6IHN0ciB9LCBjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGJpbmFyeSB9O1xuIiwgImltcG9ydCB7IGlzU2VxLCBpc1BhaXIsIGlzTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciwgY3JlYXRlUGFpciB9IGZyb20gJy4uLy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MU2VxLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZVBhaXJzKHNlcSwgb25FcnJvcikge1xuICAgIGlmIChpc1NlcShzZXEpKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VxLml0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9IHNlcS5pdGVtc1tpXTtcbiAgICAgICAgICAgIGlmIChpc1BhaXIoaXRlbSkpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBlbHNlIGlmIChpc01hcChpdGVtKSkge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLml0ZW1zLmxlbmd0aCA+IDEpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoJ0VhY2ggcGFpciBtdXN0IGhhdmUgaXRzIG93biBzZXF1ZW5jZSBpbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWlyID0gaXRlbS5pdGVtc1swXSB8fCBuZXcgUGFpcihuZXcgU2NhbGFyKG51bGwpKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5jb21tZW50QmVmb3JlKVxuICAgICAgICAgICAgICAgICAgICBwYWlyLmtleS5jb21tZW50QmVmb3JlID0gcGFpci5rZXkuY29tbWVudEJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtpdGVtLmNvbW1lbnRCZWZvcmV9XFxuJHtwYWlyLmtleS5jb21tZW50QmVmb3JlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5jb21tZW50QmVmb3JlO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNvbW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY24gPSBwYWlyLnZhbHVlID8/IHBhaXIua2V5O1xuICAgICAgICAgICAgICAgICAgICBjbi5jb21tZW50ID0gY24uY29tbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtpdGVtLmNvbW1lbnR9XFxuJHtjbi5jb21tZW50fWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtID0gcGFpcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlcS5pdGVtc1tpXSA9IGlzUGFpcihpdGVtKSA/IGl0ZW0gOiBuZXcgUGFpcihpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlXG4gICAgICAgIG9uRXJyb3IoJ0V4cGVjdGVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgdGFnJyk7XG4gICAgcmV0dXJuIHNlcTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBhaXJzKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgIGNvbnN0IHsgcmVwbGFjZXIgfSA9IGN0eDtcbiAgICBjb25zdCBwYWlycyA9IG5ldyBZQU1MU2VxKHNjaGVtYSk7XG4gICAgcGFpcnMudGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOnBhaXJzJztcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKGl0ZXJhYmxlICYmIFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoaXRlcmFibGUpKVxuICAgICAgICBmb3IgKGxldCBpdCBvZiBpdGVyYWJsZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgICAgICBpdCA9IHJlcGxhY2VyLmNhbGwoaXRlcmFibGUsIFN0cmluZyhpKyspLCBpdCk7XG4gICAgICAgICAgICBsZXQga2V5LCB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0KSkge1xuICAgICAgICAgICAgICAgIGlmIChpdC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5ID0gaXRbMF07XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaXRbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke2l0fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXQgJiYgaXQgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaXQpO1xuICAgICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCB0dXBsZSB3aXRoIG9uZSBrZXksIG5vdCAke2tleXMubGVuZ3RofSBrZXlzYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAga2V5ID0gaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWlycy5pdGVtcy5wdXNoKGNyZWF0ZVBhaXIoa2V5LCB2YWx1ZSwgY3R4KSk7XG4gICAgICAgIH1cbiAgICByZXR1cm4gcGFpcnM7XG59XG5jb25zdCBwYWlycyA9IHtcbiAgICBjb2xsZWN0aW9uOiAnc2VxJyxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsXG4gICAgcmVzb2x2ZTogcmVzb2x2ZVBhaXJzLFxuICAgIGNyZWF0ZU5vZGU6IGNyZWF0ZVBhaXJzXG59O1xuXG5leHBvcnQgeyBjcmVhdGVQYWlycywgcGFpcnMsIHJlc29sdmVQYWlycyB9O1xuIiwgImltcG9ydCB7IGlzU2NhbGFyLCBpc1BhaXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi4vLi4vbm9kZXMvdG9KUy5qcyc7XG5pbXBvcnQgeyBZQU1MTWFwIH0gZnJvbSAnLi4vLi4vbm9kZXMvWUFNTE1hcC5qcyc7XG5pbXBvcnQgeyBZQU1MU2VxIH0gZnJvbSAnLi4vLi4vbm9kZXMvWUFNTFNlcS5qcyc7XG5pbXBvcnQgeyByZXNvbHZlUGFpcnMsIGNyZWF0ZVBhaXJzIH0gZnJvbSAnLi9wYWlycy5qcyc7XG5cbmNsYXNzIFlBTUxPTWFwIGV4dGVuZHMgWUFNTFNlcSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYWRkID0gWUFNTE1hcC5wcm90b3R5cGUuYWRkLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZGVsZXRlID0gWUFNTE1hcC5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZ2V0ID0gWUFNTE1hcC5wcm90b3R5cGUuZ2V0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFzID0gWUFNTE1hcC5wcm90b3R5cGUuaGFzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2V0ID0gWUFNTE1hcC5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMudGFnID0gWUFNTE9NYXAudGFnO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiBgY3R4YCBpcyBnaXZlbiwgdGhlIHJldHVybiB0eXBlIGlzIGFjdHVhbGx5IGBNYXA8dW5rbm93biwgdW5rbm93bj5gLFxuICAgICAqIGJ1dCBUeXBlU2NyaXB0IHdvbid0IGFsbG93IHdpZGVuaW5nIHRoZSBzaWduYXR1cmUgb2YgYSBjaGlsZCBtZXRob2QuXG4gICAgICovXG4gICAgdG9KU09OKF8sIGN0eCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiBzdXBlci50b0pTT04oXyk7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKGN0eD8ub25DcmVhdGUpXG4gICAgICAgICAgICBjdHgub25DcmVhdGUobWFwKTtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGxldCBrZXksIHZhbHVlO1xuICAgICAgICAgICAgaWYgKGlzUGFpcihwYWlyKSkge1xuICAgICAgICAgICAgICAgIGtleSA9IHRvSlMocGFpci5rZXksICcnLCBjdHgpO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9KUyhwYWlyLnZhbHVlLCBrZXksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBrZXkgPSB0b0pTKHBhaXIsICcnLCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hcC5oYXMoa2V5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzJyk7XG4gICAgICAgICAgICBtYXAuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgICAgICBjb25zdCBwYWlycyA9IGNyZWF0ZVBhaXJzKHNjaGVtYSwgaXRlcmFibGUsIGN0eCk7XG4gICAgICAgIGNvbnN0IG9tYXAgPSBuZXcgdGhpcygpO1xuICAgICAgICBvbWFwLml0ZW1zID0gcGFpcnMuaXRlbXM7XG4gICAgICAgIHJldHVybiBvbWFwO1xuICAgIH1cbn1cbllBTUxPTWFwLnRhZyA9ICd0YWc6eWFtbC5vcmcsMjAwMjpvbWFwJztcbmNvbnN0IG9tYXAgPSB7XG4gICAgY29sbGVjdGlvbjogJ3NlcScsXG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlIGluc3RhbmNlb2YgTWFwLFxuICAgIG5vZGVDbGFzczogWUFNTE9NYXAsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsXG4gICAgcmVzb2x2ZShzZXEsIG9uRXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGFpcnMgPSByZXNvbHZlUGFpcnMoc2VxLCBvbkVycm9yKTtcbiAgICAgICAgY29uc3Qgc2VlbktleXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB7IGtleSB9IG9mIHBhaXJzLml0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXNTY2FsYXIoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWVuS2V5cy5pbmNsdWRlcyhrZXkudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoYE9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzOiAke2tleS52YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZW5LZXlzLnB1c2goa2V5LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFlBTUxPTWFwKCksIHBhaXJzKTtcbiAgICB9LFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpID0+IFlBTUxPTWFwLmZyb20oc2NoZW1hLCBpdGVyYWJsZSwgY3R4KVxufTtcblxuZXhwb3J0IHsgWUFNTE9NYXAsIG9tYXAgfTtcbiIsICJpbXBvcnQgeyBTY2FsYXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9TY2FsYXIuanMnO1xuXG5mdW5jdGlvbiBib29sU3RyaW5naWZ5KHsgdmFsdWUsIHNvdXJjZSB9LCBjdHgpIHtcbiAgICBjb25zdCBib29sT2JqID0gdmFsdWUgPyB0cnVlVGFnIDogZmFsc2VUYWc7XG4gICAgaWYgKHNvdXJjZSAmJiBib29sT2JqLnRlc3QudGVzdChzb3VyY2UpKVxuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIHJldHVybiB2YWx1ZSA/IGN0eC5vcHRpb25zLnRydWVTdHIgOiBjdHgub3B0aW9ucy5mYWxzZVN0cjtcbn1cbmNvbnN0IHRydWVUYWcgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlID09PSB0cnVlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgdGVzdDogL14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8sXG4gICAgcmVzb2x2ZTogKCkgPT4gbmV3IFNjYWxhcih0cnVlKSxcbiAgICBzdHJpbmdpZnk6IGJvb2xTdHJpbmdpZnlcbn07XG5jb25zdCBmYWxzZVRhZyA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgPT09IGZhbHNlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsXG4gICAgdGVzdDogL14oPzpOfG58W05uXW98Tk98W0ZmXWFsc2V8RkFMU0V8W09vXWZmfE9GRikkLyxcbiAgICByZXNvbHZlOiAoKSA9PiBuZXcgU2NhbGFyKGZhbHNlKSxcbiAgICBzdHJpbmdpZnk6IGJvb2xTdHJpbmdpZnlcbn07XG5cbmV4cG9ydCB7IGZhbHNlVGFnLCB0cnVlVGFnIH07XG4iLCAiaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeU51bWJlciB9IGZyb20gJy4uLy4uL3N0cmluZ2lmeS9zdHJpbmdpZnlOdW1iZXIuanMnO1xuXG5jb25zdCBmbG9hdE5hTiA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0JyxcbiAgICB0ZXN0OiAvXig/OlstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLm5hbnxcXC5OYU58XFwuTkFOKSQvLFxuICAgIHJlc29sdmU6IChzdHIpID0+IHN0ci5zbGljZSgtMykudG9Mb3dlckNhc2UoKSA9PT0gJ25hbidcbiAgICAgICAgPyBOYU5cbiAgICAgICAgOiBzdHJbMF0gPT09ICctJ1xuICAgICAgICAgICAgPyBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFlcbiAgICAgICAgICAgIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5TnVtYmVyXG59O1xuY29uc3QgZmxvYXRFeHAgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCcsXG4gICAgZm9ybWF0OiAnRVhQJyxcbiAgICB0ZXN0OiAvXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcXC5bMC05X10qKT9bZUVdWy0rXT9bMC05XSskLyxcbiAgICByZXNvbHZlOiAoc3RyKSA9PiBwYXJzZUZsb2F0KHN0ci5yZXBsYWNlKC9fL2csICcnKSksXG4gICAgc3RyaW5naWZ5KG5vZGUpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKG5vZGUudmFsdWUpO1xuICAgICAgICByZXR1cm4gaXNGaW5pdGUobnVtKSA/IG51bS50b0V4cG9uZW50aWFsKCkgOiBzdHJpbmdpZnlOdW1iZXIobm9kZSk7XG4gICAgfVxufTtcbmNvbnN0IGZsb2F0ID0ge1xuICAgIGlkZW50aWZ5OiB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLFxuICAgIHRlc3Q6IC9eWy0rXT8oPzpbMC05XVswLTlfXSopP1xcLlswLTlfXSokLyxcbiAgICByZXNvbHZlKHN0cikge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IFNjYWxhcihwYXJzZUZsb2F0KHN0ci5yZXBsYWNlKC9fL2csICcnKSkpO1xuICAgICAgICBjb25zdCBkb3QgPSBzdHIuaW5kZXhPZignLicpO1xuICAgICAgICBpZiAoZG90ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgZiA9IHN0ci5zdWJzdHJpbmcoZG90ICsgMSkucmVwbGFjZSgvXy9nLCAnJyk7XG4gICAgICAgICAgICBpZiAoZltmLmxlbmd0aCAtIDFdID09PSAnMCcpXG4gICAgICAgICAgICAgICAgbm9kZS5taW5GcmFjdGlvbkRpZ2l0cyA9IGYubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH0sXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5cbmV4cG9ydCB7IGZsb2F0LCBmbG9hdEV4cCwgZmxvYXROYU4gfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfSBmcm9tICcuLi8uLi9zdHJpbmdpZnkvc3RyaW5naWZ5TnVtYmVyLmpzJztcblxuY29uc3QgaW50SWRlbnRpZnkgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgfHwgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSk7XG5mdW5jdGlvbiBpbnRSZXNvbHZlKHN0ciwgb2Zmc2V0LCByYWRpeCwgeyBpbnRBc0JpZ0ludCB9KSB7XG4gICAgY29uc3Qgc2lnbiA9IHN0clswXTtcbiAgICBpZiAoc2lnbiA9PT0gJy0nIHx8IHNpZ24gPT09ICcrJylcbiAgICAgICAgb2Zmc2V0ICs9IDE7XG4gICAgc3RyID0gc3RyLnN1YnN0cmluZyhvZmZzZXQpLnJlcGxhY2UoL18vZywgJycpO1xuICAgIGlmIChpbnRBc0JpZ0ludCkge1xuICAgICAgICBzd2l0Y2ggKHJhZGl4KSB7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgc3RyID0gYDBiJHtzdHJ9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICBzdHIgPSBgMG8ke3N0cn1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgICAgICBzdHIgPSBgMHgke3N0cn1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSBCaWdJbnQoc3RyKTtcbiAgICAgICAgcmV0dXJuIHNpZ24gPT09ICctJyA/IEJpZ0ludCgtMSkgKiBuIDogbjtcbiAgICB9XG4gICAgY29uc3QgbiA9IHBhcnNlSW50KHN0ciwgcmFkaXgpO1xuICAgIHJldHVybiBzaWduID09PSAnLScgPyAtMSAqIG4gOiBuO1xufVxuZnVuY3Rpb24gaW50U3RyaW5naWZ5KG5vZGUsIHJhZGl4LCBwcmVmaXgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBub2RlO1xuICAgIGlmIChpbnRJZGVudGlmeSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3Qgc3RyID0gdmFsdWUudG9TdHJpbmcocmFkaXgpO1xuICAgICAgICByZXR1cm4gdmFsdWUgPCAwID8gJy0nICsgcHJlZml4ICsgc3RyLnN1YnN0cigxKSA6IHByZWZpeCArIHN0cjtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZ2lmeU51bWJlcihub2RlKTtcbn1cbmNvbnN0IGludEJpbiA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIGZvcm1hdDogJ0JJTicsXG4gICAgdGVzdDogL15bLStdPzBiWzAtMV9dKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCBvcHQpID0+IGludFJlc29sdmUoc3RyLCAyLCAyLCBvcHQpLFxuICAgIHN0cmluZ2lmeTogbm9kZSA9PiBpbnRTdHJpbmdpZnkobm9kZSwgMiwgJzBiJylcbn07XG5jb25zdCBpbnRPY3QgPSB7XG4gICAgaWRlbnRpZnk6IGludElkZW50aWZ5LFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdPQ1QnLFxuICAgIHRlc3Q6IC9eWy0rXT8wWzAtN19dKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCBvcHQpID0+IGludFJlc29sdmUoc3RyLCAxLCA4LCBvcHQpLFxuICAgIHN0cmluZ2lmeTogbm9kZSA9PiBpbnRTdHJpbmdpZnkobm9kZSwgOCwgJzAnKVxufTtcbmNvbnN0IGludCA9IHtcbiAgICBpZGVudGlmeTogaW50SWRlbnRpZnksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XVswLTlfXSokLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMCwgMTAsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlOdW1iZXJcbn07XG5jb25zdCBpbnRIZXggPSB7XG4gICAgaWRlbnRpZnk6IGludElkZW50aWZ5LFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6aW50JyxcbiAgICBmb3JtYXQ6ICdIRVgnLFxuICAgIHRlc3Q6IC9eWy0rXT8weFswLTlhLWZBLUZfXSskLyxcbiAgICByZXNvbHZlOiAoc3RyLCBfb25FcnJvciwgb3B0KSA9PiBpbnRSZXNvbHZlKHN0ciwgMiwgMTYsIG9wdCksXG4gICAgc3RyaW5naWZ5OiBub2RlID0+IGludFN0cmluZ2lmeShub2RlLCAxNiwgJzB4Jylcbn07XG5cbmV4cG9ydCB7IGludCwgaW50QmluLCBpbnRIZXgsIGludE9jdCB9O1xuIiwgImltcG9ydCB7IGlzTWFwLCBpc1BhaXIsIGlzU2NhbGFyIH0gZnJvbSAnLi4vLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciwgY3JlYXRlUGFpciB9IGZyb20gJy4uLy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCwgZmluZFBhaXIgfSBmcm9tICcuLi8uLi9ub2Rlcy9ZQU1MTWFwLmpzJztcblxuY2xhc3MgWUFNTFNldCBleHRlbmRzIFlBTUxNYXAge1xuICAgIGNvbnN0cnVjdG9yKHNjaGVtYSkge1xuICAgICAgICBzdXBlcihzY2hlbWEpO1xuICAgICAgICB0aGlzLnRhZyA9IFlBTUxTZXQudGFnO1xuICAgIH1cbiAgICBhZGQoa2V5KSB7XG4gICAgICAgIGxldCBwYWlyO1xuICAgICAgICBpZiAoaXNQYWlyKGtleSkpXG4gICAgICAgICAgICBwYWlyID0ga2V5O1xuICAgICAgICBlbHNlIGlmIChrZXkgJiZcbiAgICAgICAgICAgIHR5cGVvZiBrZXkgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAna2V5JyBpbiBrZXkgJiZcbiAgICAgICAgICAgICd2YWx1ZScgaW4ga2V5ICYmXG4gICAgICAgICAgICBrZXkudmFsdWUgPT09IG51bGwpXG4gICAgICAgICAgICBwYWlyID0gbmV3IFBhaXIoa2V5LmtleSwgbnVsbCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHBhaXIgPSBuZXcgUGFpcihrZXksIG51bGwpO1xuICAgICAgICBjb25zdCBwcmV2ID0gZmluZFBhaXIodGhpcy5pdGVtcywgcGFpci5rZXkpO1xuICAgICAgICBpZiAoIXByZXYpXG4gICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2gocGFpcik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIGBrZWVwUGFpcmAgaXMgYHRydWVgLCByZXR1cm5zIHRoZSBQYWlyIG1hdGNoaW5nIGBrZXlgLlxuICAgICAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhhdCBQYWlyJ3Mga2V5LlxuICAgICAqL1xuICAgIGdldChrZXksIGtlZXBQYWlyKSB7XG4gICAgICAgIGNvbnN0IHBhaXIgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICByZXR1cm4gIWtlZXBQYWlyICYmIGlzUGFpcihwYWlyKVxuICAgICAgICAgICAgPyBpc1NjYWxhcihwYWlyLmtleSlcbiAgICAgICAgICAgICAgICA/IHBhaXIua2V5LnZhbHVlXG4gICAgICAgICAgICAgICAgOiBwYWlyLmtleVxuICAgICAgICAgICAgOiBwYWlyO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4gdmFsdWUgZm9yIHNldChrZXksIHZhbHVlKSBpbiBhIFlBTUwgc2V0LCBub3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgICAgIGNvbnN0IHByZXYgPSBmaW5kUGFpcih0aGlzLml0ZW1zLCBrZXkpO1xuICAgICAgICBpZiAocHJldiAmJiAhdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihwcmV2KSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXByZXYgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChuZXcgUGFpcihrZXkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b0pTT04oXywgY3R4KSB7XG4gICAgICAgIHJldHVybiBzdXBlci50b0pTT04oXywgY3R4LCBTZXQpO1xuICAgIH1cbiAgICB0b1N0cmluZyhjdHgsIG9uQ29tbWVudCwgb25DaG9tcEtlZXApIHtcbiAgICAgICAgaWYgKCFjdHgpXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLmhhc0FsbE51bGxWYWx1ZXModHJ1ZSkpXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudG9TdHJpbmcoT2JqZWN0LmFzc2lnbih7fSwgY3R4LCB7IGFsbE51bGxWYWx1ZXM6IHRydWUgfSksIG9uQ29tbWVudCwgb25DaG9tcEtlZXApO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldCBpdGVtcyBtdXN0IGFsbCBoYXZlIG51bGwgdmFsdWVzJyk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHNjaGVtYSwgaXRlcmFibGUsIGN0eCkge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VyIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyB0aGlzKHNjaGVtYSk7XG4gICAgICAgIGlmIChpdGVyYWJsZSAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXJhYmxlKSlcbiAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIGl0ZXJhYmxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSByZXBsYWNlci5jYWxsKGl0ZXJhYmxlLCB2YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIHNldC5pdGVtcy5wdXNoKGNyZWF0ZVBhaXIodmFsdWUsIG51bGwsIGN0eCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0O1xuICAgIH1cbn1cbllBTUxTZXQudGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOnNldCc7XG5jb25zdCBzZXQgPSB7XG4gICAgY29sbGVjdGlvbjogJ21hcCcsXG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHZhbHVlIGluc3RhbmNlb2YgU2V0LFxuICAgIG5vZGVDbGFzczogWUFNTFNldCxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjpzZXQnLFxuICAgIGNyZWF0ZU5vZGU6IChzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpID0+IFlBTUxTZXQuZnJvbShzY2hlbWEsIGl0ZXJhYmxlLCBjdHgpLFxuICAgIHJlc29sdmUobWFwLCBvbkVycm9yKSB7XG4gICAgICAgIGlmIChpc01hcChtYXApKSB7XG4gICAgICAgICAgICBpZiAobWFwLmhhc0FsbE51bGxWYWx1ZXModHJ1ZSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFlBTUxTZXQoKSwgbWFwKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvbkVycm9yKCdTZXQgaXRlbXMgbXVzdCBhbGwgaGF2ZSBudWxsIHZhbHVlcycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIG9uRXJyb3IoJ0V4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWcnKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBZQU1MU2V0LCBzZXQgfTtcbiIsICJpbXBvcnQgeyBzdHJpbmdpZnlOdW1iZXIgfSBmcm9tICcuLi8uLi9zdHJpbmdpZnkvc3RyaW5naWZ5TnVtYmVyLmpzJztcblxuLyoqIEludGVybmFsIHR5cGVzIGhhbmRsZSBiaWdpbnQgYXMgbnVtYmVyLCBiZWNhdXNlIFRTIGNhbid0IGZpZ3VyZSBpdCBvdXQuICovXG5mdW5jdGlvbiBwYXJzZVNleGFnZXNpbWFsKHN0ciwgYXNCaWdJbnQpIHtcbiAgICBjb25zdCBzaWduID0gc3RyWzBdO1xuICAgIGNvbnN0IHBhcnRzID0gc2lnbiA9PT0gJy0nIHx8IHNpZ24gPT09ICcrJyA/IHN0ci5zdWJzdHJpbmcoMSkgOiBzdHI7XG4gICAgY29uc3QgbnVtID0gKG4pID0+IGFzQmlnSW50ID8gQmlnSW50KG4pIDogTnVtYmVyKG4pO1xuICAgIGNvbnN0IHJlcyA9IHBhcnRzXG4gICAgICAgIC5yZXBsYWNlKC9fL2csICcnKVxuICAgICAgICAuc3BsaXQoJzonKVxuICAgICAgICAucmVkdWNlKChyZXMsIHApID0+IHJlcyAqIG51bSg2MCkgKyBudW0ocCksIG51bSgwKSk7XG4gICAgcmV0dXJuIChzaWduID09PSAnLScgPyBudW0oLTEpICogcmVzIDogcmVzKTtcbn1cbi8qKlxuICogaGhoaDptbTpzcy5zc3NcbiAqXG4gKiBJbnRlcm5hbCB0eXBlcyBoYW5kbGUgYmlnaW50IGFzIG51bWJlciwgYmVjYXVzZSBUUyBjYW4ndCBmaWd1cmUgaXQgb3V0LlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlTZXhhZ2VzaW1hbChub2RlKSB7XG4gICAgbGV0IHsgdmFsdWUgfSA9IG5vZGU7XG4gICAgbGV0IG51bSA9IChuKSA9PiBuO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnKVxuICAgICAgICBudW0gPSBuID0+IEJpZ0ludChuKTtcbiAgICBlbHNlIGlmIChpc05hTih2YWx1ZSkgfHwgIWlzRmluaXRlKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeU51bWJlcihub2RlKTtcbiAgICBsZXQgc2lnbiA9ICcnO1xuICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgc2lnbiA9ICctJztcbiAgICAgICAgdmFsdWUgKj0gbnVtKC0xKTtcbiAgICB9XG4gICAgY29uc3QgXzYwID0gbnVtKDYwKTtcbiAgICBjb25zdCBwYXJ0cyA9IFt2YWx1ZSAlIF82MF07IC8vIHNlY29uZHMsIGluY2x1ZGluZyBtc1xuICAgIGlmICh2YWx1ZSA8IDYwKSB7XG4gICAgICAgIHBhcnRzLnVuc2hpZnQoMCk7IC8vIGF0IGxlYXN0IG9uZSA6IGlzIHJlcXVpcmVkXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIHBhcnRzWzBdKSAvIF82MDtcbiAgICAgICAgcGFydHMudW5zaGlmdCh2YWx1ZSAlIF82MCk7IC8vIG1pbnV0ZXNcbiAgICAgICAgaWYgKHZhbHVlID49IDYwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIHBhcnRzWzBdKSAvIF82MDtcbiAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQodmFsdWUpOyAvLyBob3Vyc1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoc2lnbiArXG4gICAgICAgIHBhcnRzXG4gICAgICAgICAgICAubWFwKG4gPT4gU3RyaW5nKG4pLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgICAgICAgICAuam9pbignOicpXG4gICAgICAgICAgICAucmVwbGFjZSgvMDAwMDAwXFxkKiQvLCAnJykgLy8gJSA2MCBtYXkgaW50cm9kdWNlIGVycm9yXG4gICAgKTtcbn1cbmNvbnN0IGludFRpbWUgPSB7XG4gICAgaWRlbnRpZnk6IHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgfHwgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSksXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB0YWc6ICd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLFxuICAgIGZvcm1hdDogJ1RJTUUnLFxuICAgIHRlc3Q6IC9eWy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pKyQvLFxuICAgIHJlc29sdmU6IChzdHIsIF9vbkVycm9yLCB7IGludEFzQmlnSW50IH0pID0+IHBhcnNlU2V4YWdlc2ltYWwoc3RyLCBpbnRBc0JpZ0ludCksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlTZXhhZ2VzaW1hbFxufTtcbmNvbnN0IGZsb2F0VGltZSA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIHRhZzogJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0JyxcbiAgICBmb3JtYXQ6ICdUSU1FJyxcbiAgICB0ZXN0OiAvXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcXC5bMC05X10qJC8sXG4gICAgcmVzb2x2ZTogc3RyID0+IHBhcnNlU2V4YWdlc2ltYWwoc3RyLCBmYWxzZSksXG4gICAgc3RyaW5naWZ5OiBzdHJpbmdpZnlTZXhhZ2VzaW1hbFxufTtcbmNvbnN0IHRpbWVzdGFtcCA9IHtcbiAgICBpZGVudGlmeTogdmFsdWUgPT4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgdGFnOiAndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJyxcbiAgICAvLyBJZiB0aGUgdGltZSB6b25lIGlzIG9taXR0ZWQsIHRoZSB0aW1lc3RhbXAgaXMgYXNzdW1lZCB0byBiZSBzcGVjaWZpZWQgaW4gVVRDLiBUaGUgdGltZSBwYXJ0XG4gICAgLy8gbWF5IGJlIG9taXR0ZWQgYWx0b2dldGhlciwgcmVzdWx0aW5nIGluIGEgZGF0ZSBmb3JtYXQuIEluIHN1Y2ggYSBjYXNlLCB0aGUgdGltZSBwYXJ0IGlzXG4gICAgLy8gYXNzdW1lZCB0byBiZSAwMDowMDowMFogKHN0YXJ0IG9mIGRheSwgVVRDKS5cbiAgICB0ZXN0OiBSZWdFeHAoJ14oWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSknICsgLy8gWVlZWS1NbS1EZFxuICAgICAgICAnKD86JyArIC8vIHRpbWUgaXMgb3B0aW9uYWxcbiAgICAgICAgJyg/OnR8VHxbIFxcXFx0XSspJyArIC8vIHQgfCBUIHwgd2hpdGVzcGFjZVxuICAgICAgICAnKFswLTldezEsMn0pOihbMC05XXsxLDJ9KTooWzAtOV17MSwyfShcXFxcLlswLTldKyk/KScgKyAvLyBIaDpNbTpTcyguc3MpP1xuICAgICAgICAnKD86WyBcXFxcdF0qKFp8Wy0rXVswMTJdP1swLTldKD86OlswLTldezJ9KT8pKT8nICsgLy8gWiB8ICs1IHwgLTAzOjMwXG4gICAgICAgICcpPyQnKSxcbiAgICByZXNvbHZlKHN0cikge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHN0ci5tYXRjaCh0aW1lc3RhbXAudGVzdCk7XG4gICAgICAgIGlmICghbWF0Y2gpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyEhdGltZXN0YW1wIGV4cGVjdHMgYSBkYXRlLCBzdGFydGluZyB3aXRoIHl5eXktbW0tZGQnKTtcbiAgICAgICAgY29uc3QgWywgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmRdID0gbWF0Y2gubWFwKE51bWJlcik7XG4gICAgICAgIGNvbnN0IG1pbGxpc2VjID0gbWF0Y2hbN10gPyBOdW1iZXIoKG1hdGNoWzddICsgJzAwJykuc3Vic3RyKDEsIDMpKSA6IDA7XG4gICAgICAgIGxldCBkYXRlID0gRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXksIGhvdXIgfHwgMCwgbWludXRlIHx8IDAsIHNlY29uZCB8fCAwLCBtaWxsaXNlYyk7XG4gICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hbOF07XG4gICAgICAgIGlmICh0eiAmJiB0eiAhPT0gJ1onKSB7XG4gICAgICAgICAgICBsZXQgZCA9IHBhcnNlU2V4YWdlc2ltYWwodHosIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkKSA8IDMwKVxuICAgICAgICAgICAgICAgIGQgKj0gNjA7XG4gICAgICAgICAgICBkYXRlIC09IDYwMDAwICogZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSxcbiAgICBzdHJpbmdpZnk6ICh7IHZhbHVlIH0pID0+IHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKChUMDA6MDApPzowMCk/XFwuMDAwWiQvLCAnJylcbn07XG5cbmV4cG9ydCB7IGZsb2F0VGltZSwgaW50VGltZSwgdGltZXN0YW1wIH07XG4iLCAiaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi4vY29tbW9uL21hcC5qcyc7XG5pbXBvcnQgeyBudWxsVGFnIH0gZnJvbSAnLi4vY29tbW9uL251bGwuanMnO1xuaW1wb3J0IHsgc2VxIH0gZnJvbSAnLi4vY29tbW9uL3NlcS5qcyc7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuLi9jb21tb24vc3RyaW5nLmpzJztcbmltcG9ydCB7IGJpbmFyeSB9IGZyb20gJy4vYmluYXJ5LmpzJztcbmltcG9ydCB7IHRydWVUYWcsIGZhbHNlVGFnIH0gZnJvbSAnLi9ib29sLmpzJztcbmltcG9ydCB7IGZsb2F0TmFOLCBmbG9hdEV4cCwgZmxvYXQgfSBmcm9tICcuL2Zsb2F0LmpzJztcbmltcG9ydCB7IGludEJpbiwgaW50T2N0LCBpbnQsIGludEhleCB9IGZyb20gJy4vaW50LmpzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnLi9tZXJnZS5qcyc7XG5pbXBvcnQgeyBvbWFwIH0gZnJvbSAnLi9vbWFwLmpzJztcbmltcG9ydCB7IHBhaXJzIH0gZnJvbSAnLi9wYWlycy5qcyc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICcuL3NldC5qcyc7XG5pbXBvcnQgeyBpbnRUaW1lLCBmbG9hdFRpbWUsIHRpbWVzdGFtcCB9IGZyb20gJy4vdGltZXN0YW1wLmpzJztcblxuY29uc3Qgc2NoZW1hID0gW1xuICAgIG1hcCxcbiAgICBzZXEsXG4gICAgc3RyaW5nLFxuICAgIG51bGxUYWcsXG4gICAgdHJ1ZVRhZyxcbiAgICBmYWxzZVRhZyxcbiAgICBpbnRCaW4sXG4gICAgaW50T2N0LFxuICAgIGludCxcbiAgICBpbnRIZXgsXG4gICAgZmxvYXROYU4sXG4gICAgZmxvYXRFeHAsXG4gICAgZmxvYXQsXG4gICAgYmluYXJ5LFxuICAgIG1lcmdlLFxuICAgIG9tYXAsXG4gICAgcGFpcnMsXG4gICAgc2V0LFxuICAgIGludFRpbWUsXG4gICAgZmxvYXRUaW1lLFxuICAgIHRpbWVzdGFtcFxuXTtcblxuZXhwb3J0IHsgc2NoZW1hIH07XG4iLCAiaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9jb21tb24vbWFwLmpzJztcbmltcG9ydCB7IG51bGxUYWcgfSBmcm9tICcuL2NvbW1vbi9udWxsLmpzJztcbmltcG9ydCB7IHNlcSB9IGZyb20gJy4vY29tbW9uL3NlcS5qcyc7XG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuL2NvbW1vbi9zdHJpbmcuanMnO1xuaW1wb3J0IHsgYm9vbFRhZyB9IGZyb20gJy4vY29yZS9ib29sLmpzJztcbmltcG9ydCB7IGZsb2F0LCBmbG9hdEV4cCwgZmxvYXROYU4gfSBmcm9tICcuL2NvcmUvZmxvYXQuanMnO1xuaW1wb3J0IHsgaW50LCBpbnRIZXgsIGludE9jdCB9IGZyb20gJy4vY29yZS9pbnQuanMnO1xuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSAnLi9jb3JlL3NjaGVtYS5qcyc7XG5pbXBvcnQgeyBzY2hlbWEgYXMgc2NoZW1hJDEgfSBmcm9tICcuL2pzb24vc2NoZW1hLmpzJztcbmltcG9ydCB7IGJpbmFyeSB9IGZyb20gJy4veWFtbC0xLjEvYmluYXJ5LmpzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnLi95YW1sLTEuMS9tZXJnZS5qcyc7XG5pbXBvcnQgeyBvbWFwIH0gZnJvbSAnLi95YW1sLTEuMS9vbWFwLmpzJztcbmltcG9ydCB7IHBhaXJzIH0gZnJvbSAnLi95YW1sLTEuMS9wYWlycy5qcyc7XG5pbXBvcnQgeyBzY2hlbWEgYXMgc2NoZW1hJDIgfSBmcm9tICcuL3lhbWwtMS4xL3NjaGVtYS5qcyc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICcuL3lhbWwtMS4xL3NldC5qcyc7XG5pbXBvcnQgeyB0aW1lc3RhbXAsIGZsb2F0VGltZSwgaW50VGltZSB9IGZyb20gJy4veWFtbC0xLjEvdGltZXN0YW1wLmpzJztcblxuY29uc3Qgc2NoZW1hcyA9IG5ldyBNYXAoW1xuICAgIFsnY29yZScsIHNjaGVtYV0sXG4gICAgWydmYWlsc2FmZScsIFttYXAsIHNlcSwgc3RyaW5nXV0sXG4gICAgWydqc29uJywgc2NoZW1hJDFdLFxuICAgIFsneWFtbDExJywgc2NoZW1hJDJdLFxuICAgIFsneWFtbC0xLjEnLCBzY2hlbWEkMl1cbl0pO1xuY29uc3QgdGFnc0J5TmFtZSA9IHtcbiAgICBiaW5hcnksXG4gICAgYm9vbDogYm9vbFRhZyxcbiAgICBmbG9hdCxcbiAgICBmbG9hdEV4cCxcbiAgICBmbG9hdE5hTixcbiAgICBmbG9hdFRpbWUsXG4gICAgaW50LFxuICAgIGludEhleCxcbiAgICBpbnRPY3QsXG4gICAgaW50VGltZSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgbnVsbDogbnVsbFRhZyxcbiAgICBvbWFwLFxuICAgIHBhaXJzLFxuICAgIHNlcSxcbiAgICBzZXQsXG4gICAgdGltZXN0YW1wXG59O1xuY29uc3QgY29yZUtub3duVGFncyA9IHtcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5JzogYmluYXJ5LFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSc6IG1lcmdlLFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjpvbWFwJzogb21hcCxcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6cGFpcnMnOiBwYWlycyxcbiAgICAndGFnOnlhbWwub3JnLDIwMDI6c2V0Jzogc2V0LFxuICAgICd0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAnOiB0aW1lc3RhbXBcbn07XG5mdW5jdGlvbiBnZXRUYWdzKGN1c3RvbVRhZ3MsIHNjaGVtYU5hbWUsIGFkZE1lcmdlVGFnKSB7XG4gICAgY29uc3Qgc2NoZW1hVGFncyA9IHNjaGVtYXMuZ2V0KHNjaGVtYU5hbWUpO1xuICAgIGlmIChzY2hlbWFUYWdzICYmICFjdXN0b21UYWdzKSB7XG4gICAgICAgIHJldHVybiBhZGRNZXJnZVRhZyAmJiAhc2NoZW1hVGFncy5pbmNsdWRlcyhtZXJnZSlcbiAgICAgICAgICAgID8gc2NoZW1hVGFncy5jb25jYXQobWVyZ2UpXG4gICAgICAgICAgICA6IHNjaGVtYVRhZ3Muc2xpY2UoKTtcbiAgICB9XG4gICAgbGV0IHRhZ3MgPSBzY2hlbWFUYWdzO1xuICAgIGlmICghdGFncykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXN0b21UYWdzKSlcbiAgICAgICAgICAgIHRhZ3MgPSBbXTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbShzY2hlbWFzLmtleXMoKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGtleSA9PiBrZXkgIT09ICd5YW1sMTEnKVxuICAgICAgICAgICAgICAgIC5tYXAoa2V5ID0+IEpTT04uc3RyaW5naWZ5KGtleSkpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hIFwiJHtzY2hlbWFOYW1lfVwiOyB1c2Ugb25lIG9mICR7a2V5c30gb3IgZGVmaW5lIGN1c3RvbVRhZ3MgYXJyYXlgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjdXN0b21UYWdzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiBjdXN0b21UYWdzKVxuICAgICAgICAgICAgdGFncyA9IHRhZ3MuY29uY2F0KHRhZyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBjdXN0b21UYWdzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRhZ3MgPSBjdXN0b21UYWdzKHRhZ3Muc2xpY2UoKSk7XG4gICAgfVxuICAgIGlmIChhZGRNZXJnZVRhZylcbiAgICAgICAgdGFncyA9IHRhZ3MuY29uY2F0KG1lcmdlKTtcbiAgICByZXR1cm4gdGFncy5yZWR1Y2UoKHRhZ3MsIHRhZykgPT4ge1xuICAgICAgICBjb25zdCB0YWdPYmogPSB0eXBlb2YgdGFnID09PSAnc3RyaW5nJyA/IHRhZ3NCeU5hbWVbdGFnXSA6IHRhZztcbiAgICAgICAgaWYgKCF0YWdPYmopIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ05hbWUgPSBKU09OLnN0cmluZ2lmeSh0YWcpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRhZ3NCeU5hbWUpXG4gICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gSlNPTi5zdHJpbmdpZnkoa2V5KSlcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7dGFnTmFtZX07IHVzZSBvbmUgb2YgJHtrZXlzfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFncy5pbmNsdWRlcyh0YWdPYmopKVxuICAgICAgICAgICAgdGFncy5wdXNoKHRhZ09iaik7XG4gICAgICAgIHJldHVybiB0YWdzO1xuICAgIH0sIFtdKTtcbn1cblxuZXhwb3J0IHsgY29yZUtub3duVGFncywgZ2V0VGFncyB9O1xuIiwgImltcG9ydCB7IE1BUCwgU0NBTEFSLCBTRVEgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICcuL2NvbW1vbi9tYXAuanMnO1xuaW1wb3J0IHsgc2VxIH0gZnJvbSAnLi9jb21tb24vc2VxLmpzJztcbmltcG9ydCB7IHN0cmluZyB9IGZyb20gJy4vY29tbW9uL3N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRUYWdzLCBjb3JlS25vd25UYWdzIH0gZnJvbSAnLi90YWdzLmpzJztcblxuY29uc3Qgc29ydE1hcEVudHJpZXNCeUtleSA9IChhLCBiKSA9PiBhLmtleSA8IGIua2V5ID8gLTEgOiBhLmtleSA+IGIua2V5ID8gMSA6IDA7XG5jbGFzcyBTY2hlbWEge1xuICAgIGNvbnN0cnVjdG9yKHsgY29tcGF0LCBjdXN0b21UYWdzLCBtZXJnZSwgcmVzb2x2ZUtub3duVGFncywgc2NoZW1hLCBzb3J0TWFwRW50cmllcywgdG9TdHJpbmdEZWZhdWx0cyB9KSB7XG4gICAgICAgIHRoaXMuY29tcGF0ID0gQXJyYXkuaXNBcnJheShjb21wYXQpXG4gICAgICAgICAgICA/IGdldFRhZ3MoY29tcGF0LCAnY29tcGF0JylcbiAgICAgICAgICAgIDogY29tcGF0XG4gICAgICAgICAgICAgICAgPyBnZXRUYWdzKG51bGwsIGNvbXBhdClcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIHRoaXMubmFtZSA9ICh0eXBlb2Ygc2NoZW1hID09PSAnc3RyaW5nJyAmJiBzY2hlbWEpIHx8ICdjb3JlJztcbiAgICAgICAgdGhpcy5rbm93blRhZ3MgPSByZXNvbHZlS25vd25UYWdzID8gY29yZUtub3duVGFncyA6IHt9O1xuICAgICAgICB0aGlzLnRhZ3MgPSBnZXRUYWdzKGN1c3RvbVRhZ3MsIHRoaXMubmFtZSwgbWVyZ2UpO1xuICAgICAgICB0aGlzLnRvU3RyaW5nT3B0aW9ucyA9IHRvU3RyaW5nRGVmYXVsdHMgPz8gbnVsbDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIE1BUCwgeyB2YWx1ZTogbWFwIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgU0NBTEFSLCB7IHZhbHVlOiBzdHJpbmcgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBTRVEsIHsgdmFsdWU6IHNlcSB9KTtcbiAgICAgICAgLy8gVXNlZCBieSBjcmVhdGVNYXAoKVxuICAgICAgICB0aGlzLnNvcnRNYXBFbnRyaWVzID1cbiAgICAgICAgICAgIHR5cGVvZiBzb3J0TWFwRW50cmllcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gc29ydE1hcEVudHJpZXNcbiAgICAgICAgICAgICAgICA6IHNvcnRNYXBFbnRyaWVzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gc29ydE1hcEVudHJpZXNCeUtleVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGNsb25lKCkge1xuICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmNyZWF0ZShTY2hlbWEucHJvdG90eXBlLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7XG4gICAgICAgIGNvcHkudGFncyA9IHRoaXMudGFncy5zbGljZSgpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFNjaGVtYSB9O1xuIiwgImltcG9ydCB7IGlzTm9kZSB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IGNyZWF0ZVN0cmluZ2lmeUNvbnRleHQsIHN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmltcG9ydCB7IGluZGVudENvbW1lbnQsIGxpbmVDb21tZW50IH0gZnJvbSAnLi9zdHJpbmdpZnlDb21tZW50LmpzJztcblxuZnVuY3Rpb24gc3RyaW5naWZ5RG9jdW1lbnQoZG9jLCBvcHRpb25zKSB7XG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBsZXQgaGFzRGlyZWN0aXZlcyA9IG9wdGlvbnMuZGlyZWN0aXZlcyA9PT0gdHJ1ZTtcbiAgICBpZiAob3B0aW9ucy5kaXJlY3RpdmVzICE9PSBmYWxzZSAmJiBkb2MuZGlyZWN0aXZlcykge1xuICAgICAgICBjb25zdCBkaXIgPSBkb2MuZGlyZWN0aXZlcy50b1N0cmluZyhkb2MpO1xuICAgICAgICBpZiAoZGlyKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGRpcik7XG4gICAgICAgICAgICBoYXNEaXJlY3RpdmVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkb2MuZGlyZWN0aXZlcy5kb2NTdGFydClcbiAgICAgICAgICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoaGFzRGlyZWN0aXZlcylcbiAgICAgICAgbGluZXMucHVzaCgnLS0tJyk7XG4gICAgY29uc3QgY3R4ID0gY3JlYXRlU3RyaW5naWZ5Q29udGV4dChkb2MsIG9wdGlvbnMpO1xuICAgIGNvbnN0IHsgY29tbWVudFN0cmluZyB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgaWYgKGRvYy5jb21tZW50QmVmb3JlKSB7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICBsaW5lcy51bnNoaWZ0KCcnKTtcbiAgICAgICAgY29uc3QgY3MgPSBjb21tZW50U3RyaW5nKGRvYy5jb21tZW50QmVmb3JlKTtcbiAgICAgICAgbGluZXMudW5zaGlmdChpbmRlbnRDb21tZW50KGNzLCAnJykpO1xuICAgIH1cbiAgICBsZXQgY2hvbXBLZWVwID0gZmFsc2U7XG4gICAgbGV0IGNvbnRlbnRDb21tZW50ID0gbnVsbDtcbiAgICBpZiAoZG9jLmNvbnRlbnRzKSB7XG4gICAgICAgIGlmIChpc05vZGUoZG9jLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgaWYgKGRvYy5jb250ZW50cy5zcGFjZUJlZm9yZSAmJiBoYXNEaXJlY3RpdmVzKVxuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgICAgICAgaWYgKGRvYy5jb250ZW50cy5jb21tZW50QmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3MgPSBjb21tZW50U3RyaW5nKGRvYy5jb250ZW50cy5jb21tZW50QmVmb3JlKTtcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGluZGVudENvbW1lbnQoY3MsICcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgYmxvY2sgc2NhbGFycyBuZWVkIHRvIGJlIGluZGVudGVkIGlmIGZvbGxvd2VkIGJ5IGEgY29tbWVudFxuICAgICAgICAgICAgY3R4LmZvcmNlQmxvY2tJbmRlbnQgPSAhIWRvYy5jb21tZW50O1xuICAgICAgICAgICAgY29udGVudENvbW1lbnQgPSBkb2MuY29udGVudHMuY29tbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvbkNob21wS2VlcCA9IGNvbnRlbnRDb21tZW50ID8gdW5kZWZpbmVkIDogKCkgPT4gKGNob21wS2VlcCA9IHRydWUpO1xuICAgICAgICBsZXQgYm9keSA9IHN0cmluZ2lmeShkb2MuY29udGVudHMsIGN0eCwgKCkgPT4gKGNvbnRlbnRDb21tZW50ID0gbnVsbCksIG9uQ2hvbXBLZWVwKTtcbiAgICAgICAgaWYgKGNvbnRlbnRDb21tZW50KVxuICAgICAgICAgICAgYm9keSArPSBsaW5lQ29tbWVudChib2R5LCAnJywgY29tbWVudFN0cmluZyhjb250ZW50Q29tbWVudCkpO1xuICAgICAgICBpZiAoKGJvZHlbMF0gPT09ICd8JyB8fCBib2R5WzBdID09PSAnPicpICYmXG4gICAgICAgICAgICBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSA9PT0gJy0tLScpIHtcbiAgICAgICAgICAgIC8vIFRvcC1sZXZlbCBibG9jayBzY2FsYXJzIHdpdGggYSBwcmVjZWRpbmcgZG9jIG1hcmtlciBvdWdodCB0byB1c2UgdGhlXG4gICAgICAgICAgICAvLyBzYW1lIGxpbmUgZm9yIHRoZWlyIGhlYWRlci5cbiAgICAgICAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdID0gYC0tLSAke2JvZHl9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBsaW5lcy5wdXNoKGJvZHkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbGluZXMucHVzaChzdHJpbmdpZnkoZG9jLmNvbnRlbnRzLCBjdHgpKTtcbiAgICB9XG4gICAgaWYgKGRvYy5kaXJlY3RpdmVzPy5kb2NFbmQpIHtcbiAgICAgICAgaWYgKGRvYy5jb21tZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjcyA9IGNvbW1lbnRTdHJpbmcoZG9jLmNvbW1lbnQpO1xuICAgICAgICAgICAgaWYgKGNzLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goJy4uLicpO1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goaW5kZW50Q29tbWVudChjcywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYC4uLiAke2NzfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnLi4uJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGxldCBkYyA9IGRvYy5jb21tZW50O1xuICAgICAgICBpZiAoZGMgJiYgY2hvbXBLZWVwKVxuICAgICAgICAgICAgZGMgPSBkYy5yZXBsYWNlKC9eXFxuKy8sICcnKTtcbiAgICAgICAgaWYgKGRjKSB7XG4gICAgICAgICAgICBpZiAoKCFjaG9tcEtlZXAgfHwgY29udGVudENvbW1lbnQpICYmIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdICE9PSAnJylcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goaW5kZW50Q29tbWVudChjb21tZW50U3RyaW5nKGRjKSwgJycpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IHsgc3RyaW5naWZ5RG9jdW1lbnQgfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzRW1wdHlQYXRoLCBjb2xsZWN0aW9uRnJvbVBhdGggfSBmcm9tICcuLi9ub2Rlcy9Db2xsZWN0aW9uLmpzJztcbmltcG9ydCB7IE5PREVfVFlQRSwgRE9DLCBpc05vZGUsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBQYWlyIH0gZnJvbSAnLi4vbm9kZXMvUGFpci5qcyc7XG5pbXBvcnQgeyB0b0pTIH0gZnJvbSAnLi4vbm9kZXMvdG9KUy5qcyc7XG5pbXBvcnQgeyBTY2hlbWEgfSBmcm9tICcuLi9zY2hlbWEvU2NoZW1hLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeURvY3VtZW50IH0gZnJvbSAnLi4vc3RyaW5naWZ5L3N0cmluZ2lmeURvY3VtZW50LmpzJztcbmltcG9ydCB7IGFuY2hvck5hbWVzLCBmaW5kTmV3QW5jaG9yLCBjcmVhdGVOb2RlQW5jaG9ycyB9IGZyb20gJy4vYW5jaG9ycy5qcyc7XG5pbXBvcnQgeyBhcHBseVJldml2ZXIgfSBmcm9tICcuL2FwcGx5UmV2aXZlci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVOb2RlIH0gZnJvbSAnLi9jcmVhdGVOb2RlLmpzJztcbmltcG9ydCB7IERpcmVjdGl2ZXMgfSBmcm9tICcuL2RpcmVjdGl2ZXMuanMnO1xuXG5jbGFzcyBEb2N1bWVudCB7XG4gICAgY29uc3RydWN0b3IodmFsdWUsIHJlcGxhY2VyLCBvcHRpb25zKSB7XG4gICAgICAgIC8qKiBBIGNvbW1lbnQgYmVmb3JlIHRoaXMgRG9jdW1lbnQgKi9cbiAgICAgICAgdGhpcy5jb21tZW50QmVmb3JlID0gbnVsbDtcbiAgICAgICAgLyoqIEEgY29tbWVudCBpbW1lZGlhdGVseSBhZnRlciB0aGlzIERvY3VtZW50ICovXG4gICAgICAgIHRoaXMuY29tbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBFcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIHBhcnNpbmcuICovXG4gICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgIC8qKiBXYXJuaW5ncyBlbmNvdW50ZXJlZCBkdXJpbmcgcGFyc2luZy4gKi9cbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTk9ERV9UWVBFLCB7IHZhbHVlOiBET0MgfSk7XG4gICAgICAgIGxldCBfcmVwbGFjZXIgPSBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nIHx8IEFycmF5LmlzQXJyYXkocmVwbGFjZXIpKSB7XG4gICAgICAgICAgICBfcmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgJiYgcmVwbGFjZXIpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSByZXBsYWNlcjtcbiAgICAgICAgICAgIHJlcGxhY2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgaW50QXNCaWdJbnQ6IGZhbHNlLFxuICAgICAgICAgICAga2VlcFNvdXJjZVRva2VuczogZmFsc2UsXG4gICAgICAgICAgICBsb2dMZXZlbDogJ3dhcm4nLFxuICAgICAgICAgICAgcHJldHR5RXJyb3JzOiB0cnVlLFxuICAgICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgICAgc3RyaW5nS2V5czogZmFsc2UsXG4gICAgICAgICAgICB1bmlxdWVLZXlzOiB0cnVlLFxuICAgICAgICAgICAgdmVyc2lvbjogJzEuMidcbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdDtcbiAgICAgICAgbGV0IHsgdmVyc2lvbiB9ID0gb3B0O1xuICAgICAgICBpZiAob3B0aW9ucz8uX2RpcmVjdGl2ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG9wdGlvbnMuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0KVxuICAgICAgICAgICAgICAgIHZlcnNpb24gPSB0aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbiB9KTtcbiAgICAgICAgdGhpcy5zZXRTY2hlbWEodmVyc2lvbiwgb3B0aW9ucyk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgIHRoaXMuY29udGVudHMgPVxuICAgICAgICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLmNyZWF0ZU5vZGUodmFsdWUsIF9yZXBsYWNlciwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGRlZXAgY29weSBvZiB0aGlzIERvY3VtZW50IGFuZCBpdHMgY29udGVudHMuXG4gICAgICpcbiAgICAgKiBDdXN0b20gTm9kZSB2YWx1ZXMgdGhhdCBpbmhlcml0IGZyb20gYE9iamVjdGAgc3RpbGwgcmVmZXIgdG8gdGhlaXIgb3JpZ2luYWwgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIGNsb25lKCkge1xuICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmNyZWF0ZShEb2N1bWVudC5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIFtOT0RFX1RZUEVdOiB7IHZhbHVlOiBET0MgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29weS5jb21tZW50QmVmb3JlID0gdGhpcy5jb21tZW50QmVmb3JlO1xuICAgICAgICBjb3B5LmNvbW1lbnQgPSB0aGlzLmNvbW1lbnQ7XG4gICAgICAgIGNvcHkuZXJyb3JzID0gdGhpcy5lcnJvcnMuc2xpY2UoKTtcbiAgICAgICAgY29weS53YXJuaW5ncyA9IHRoaXMud2FybmluZ3Muc2xpY2UoKTtcbiAgICAgICAgY29weS5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgIGNvcHkuZGlyZWN0aXZlcyA9IHRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpO1xuICAgICAgICBjb3B5LnNjaGVtYSA9IHRoaXMuc2NoZW1hLmNsb25lKCk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgIGNvcHkuY29udGVudHMgPSBpc05vZGUodGhpcy5jb250ZW50cylcbiAgICAgICAgICAgID8gdGhpcy5jb250ZW50cy5jbG9uZShjb3B5LnNjaGVtYSlcbiAgICAgICAgICAgIDogdGhpcy5jb250ZW50cztcbiAgICAgICAgaWYgKHRoaXMucmFuZ2UpXG4gICAgICAgICAgICBjb3B5LnJhbmdlID0gdGhpcy5yYW5nZS5zbGljZSgpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgLyoqIEFkZHMgYSB2YWx1ZSB0byB0aGUgZG9jdW1lbnQuICovXG4gICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIGlmIChhc3NlcnRDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpKVxuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5hZGQodmFsdWUpO1xuICAgIH1cbiAgICAvKiogQWRkcyBhIHZhbHVlIHRvIHRoZSBkb2N1bWVudC4gKi9cbiAgICBhZGRJbihwYXRoLCB2YWx1ZSkge1xuICAgICAgICBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSlcbiAgICAgICAgICAgIHRoaXMuY29udGVudHMuYWRkSW4ocGF0aCwgdmFsdWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFsaWFzYCBub2RlLCBlbnN1cmluZyB0aGF0IHRoZSB0YXJnZXQgYG5vZGVgIGhhcyB0aGUgcmVxdWlyZWQgYW5jaG9yLlxuICAgICAqXG4gICAgICogSWYgYG5vZGVgIGFscmVhZHkgaGFzIGFuIGFuY2hvciwgYG5hbWVgIGlzIGlnbm9yZWQuXG4gICAgICogT3RoZXJ3aXNlLCB0aGUgYG5vZGUuYW5jaG9yYCB2YWx1ZSB3aWxsIGJlIHNldCB0byBgbmFtZWAsXG4gICAgICogb3IgaWYgYW4gYW5jaG9yIHdpdGggdGhhdCBuYW1lIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgZG9jdW1lbnQsXG4gICAgICogYG5hbWVgIHdpbGwgYmUgdXNlZCBhcyBhIHByZWZpeCBmb3IgYSBuZXcgdW5pcXVlIGFuY2hvci5cbiAgICAgKiBJZiBgbmFtZWAgaXMgdW5kZWZpbmVkLCB0aGUgZ2VuZXJhdGVkIGFuY2hvciB3aWxsIHVzZSAnYScgYXMgYSBwcmVmaXguXG4gICAgICovXG4gICAgY3JlYXRlQWxpYXMobm9kZSwgbmFtZSkge1xuICAgICAgICBpZiAoIW5vZGUuYW5jaG9yKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gYW5jaG9yTmFtZXModGhpcyk7XG4gICAgICAgICAgICBub2RlLmFuY2hvciA9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgICAgICAgICAgIW5hbWUgfHwgcHJldi5oYXMobmFtZSkgPyBmaW5kTmV3QW5jaG9yKG5hbWUgfHwgJ2EnLCBwcmV2KSA6IG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGlhcyhub2RlLmFuY2hvcik7XG4gICAgfVxuICAgIGNyZWF0ZU5vZGUodmFsdWUsIHJlcGxhY2VyLCBvcHRpb25zKSB7XG4gICAgICAgIGxldCBfcmVwbGFjZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXIuY2FsbCh7ICcnOiB2YWx1ZSB9LCAnJywgdmFsdWUpO1xuICAgICAgICAgICAgX3JlcGxhY2VyID0gcmVwbGFjZXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleVRvU3RyID0gKHYpID0+IHR5cGVvZiB2ID09PSAnbnVtYmVyJyB8fCB2IGluc3RhbmNlb2YgU3RyaW5nIHx8IHYgaW5zdGFuY2VvZiBOdW1iZXI7XG4gICAgICAgICAgICBjb25zdCBhc1N0ciA9IHJlcGxhY2VyLmZpbHRlcihrZXlUb1N0cikubWFwKFN0cmluZyk7XG4gICAgICAgICAgICBpZiAoYXNTdHIubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICByZXBsYWNlciA9IHJlcGxhY2VyLmNvbmNhdChhc1N0cik7XG4gICAgICAgICAgICBfcmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgJiYgcmVwbGFjZXIpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSByZXBsYWNlcjtcbiAgICAgICAgICAgIHJlcGxhY2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgYWxpYXNEdXBsaWNhdGVPYmplY3RzLCBhbmNob3JQcmVmaXgsIGZsb3csIGtlZXBVbmRlZmluZWQsIG9uVGFnT2JqLCB0YWcgfSA9IG9wdGlvbnMgPz8ge307XG4gICAgICAgIGNvbnN0IHsgb25BbmNob3IsIHNldEFuY2hvcnMsIHNvdXJjZU9iamVjdHMgfSA9IGNyZWF0ZU5vZGVBbmNob3JzKHRoaXMsIFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgYW5jaG9yUHJlZml4IHx8ICdhJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFsaWFzRHVwbGljYXRlT2JqZWN0czogYWxpYXNEdXBsaWNhdGVPYmplY3RzID8/IHRydWUsXG4gICAgICAgICAgICBrZWVwVW5kZWZpbmVkOiBrZWVwVW5kZWZpbmVkID8/IGZhbHNlLFxuICAgICAgICAgICAgb25BbmNob3IsXG4gICAgICAgICAgICBvblRhZ09iaixcbiAgICAgICAgICAgIHJlcGxhY2VyOiBfcmVwbGFjZXIsXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgc291cmNlT2JqZWN0c1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBub2RlID0gY3JlYXRlTm9kZSh2YWx1ZSwgdGFnLCBjdHgpO1xuICAgICAgICBpZiAoZmxvdyAmJiBpc0NvbGxlY3Rpb24obm9kZSkpXG4gICAgICAgICAgICBub2RlLmZsb3cgPSB0cnVlO1xuICAgICAgICBzZXRBbmNob3JzKCk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEga2V5IGFuZCBhIHZhbHVlIGludG8gYSBgUGFpcmAgdXNpbmcgdGhlIGN1cnJlbnQgc2NoZW1hLFxuICAgICAqIHJlY3Vyc2l2ZWx5IHdyYXBwaW5nIGFsbCB2YWx1ZXMgYXMgYFNjYWxhcmAgb3IgYENvbGxlY3Rpb25gIG5vZGVzLlxuICAgICAqL1xuICAgIGNyZWF0ZVBhaXIoa2V5LCB2YWx1ZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGsgPSB0aGlzLmNyZWF0ZU5vZGUoa2V5LCBudWxsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlTm9kZSh2YWx1ZSwgbnVsbCwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBuZXcgUGFpcihrLCB2KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGRvY3VtZW50LlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaXRlbSB3YXMgZm91bmQgYW5kIHJlbW92ZWQuXG4gICAgICovXG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICByZXR1cm4gYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSA/IHRoaXMuY29udGVudHMuZGVsZXRlKGtleSkgOiBmYWxzZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHZhbHVlIGZyb20gdGhlIGRvY3VtZW50LlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaXRlbSB3YXMgZm91bmQgYW5kIHJlbW92ZWQuXG4gICAgICovXG4gICAgZGVsZXRlSW4ocGF0aCkge1xuICAgICAgICBpZiAoaXNFbXB0eVBhdGgocGF0aCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRzID09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQcmVzdW1lZCBpbXBvc3NpYmxlIGlmIFN0cmljdCBleHRlbmRzIGZhbHNlXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhc3NlcnRDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpXG4gICAgICAgICAgICA/IHRoaXMuY29udGVudHMuZGVsZXRlSW4ocGF0aClcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSBhdCBga2V5YCwgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGZvdW5kLiBCeSBkZWZhdWx0IHVud3JhcHNcbiAgICAgKiBzY2FsYXIgdmFsdWVzIGZyb20gdGhlaXIgc3Vycm91bmRpbmcgbm9kZTsgdG8gZGlzYWJsZSBzZXQgYGtlZXBTY2FsYXJgIHRvXG4gICAgICogYHRydWVgIChjb2xsZWN0aW9ucyBhcmUgYWx3YXlzIHJldHVybmVkIGludGFjdCkuXG4gICAgICovXG4gICAgZ2V0KGtleSwga2VlcFNjYWxhcikge1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpXG4gICAgICAgICAgICA/IHRoaXMuY29udGVudHMuZ2V0KGtleSwga2VlcFNjYWxhcilcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGl0ZW0gYXQgYHBhdGhgLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuIEJ5IGRlZmF1bHQgdW53cmFwc1xuICAgICAqIHNjYWxhciB2YWx1ZXMgZnJvbSB0aGVpciBzdXJyb3VuZGluZyBub2RlOyB0byBkaXNhYmxlIHNldCBga2VlcFNjYWxhcmAgdG9cbiAgICAgKiBgdHJ1ZWAgKGNvbGxlY3Rpb25zIGFyZSBhbHdheXMgcmV0dXJuZWQgaW50YWN0KS5cbiAgICAgKi9cbiAgICBnZXRJbihwYXRoLCBrZWVwU2NhbGFyKSB7XG4gICAgICAgIGlmIChpc0VtcHR5UGF0aChwYXRoKSlcbiAgICAgICAgICAgIHJldHVybiAha2VlcFNjYWxhciAmJiBpc1NjYWxhcih0aGlzLmNvbnRlbnRzKVxuICAgICAgICAgICAgICAgID8gdGhpcy5jb250ZW50cy52YWx1ZVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb250ZW50cztcbiAgICAgICAgcmV0dXJuIGlzQ29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKVxuICAgICAgICAgICAgPyB0aGlzLmNvbnRlbnRzLmdldEluKHBhdGgsIGtlZXBTY2FsYXIpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBkb2N1bWVudCBpbmNsdWRlcyBhIHZhbHVlIHdpdGggdGhlIGtleSBga2V5YC5cbiAgICAgKi9cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIHJldHVybiBpc0NvbGxlY3Rpb24odGhpcy5jb250ZW50cykgPyB0aGlzLmNvbnRlbnRzLmhhcyhrZXkpIDogZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgZG9jdW1lbnQgaW5jbHVkZXMgYSB2YWx1ZSBhdCBgcGF0aGAuXG4gICAgICovXG4gICAgaGFzSW4ocGF0aCkge1xuICAgICAgICBpZiAoaXNFbXB0eVBhdGgocGF0aCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50cyAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gaXNDb2xsZWN0aW9uKHRoaXMuY29udGVudHMpID8gdGhpcy5jb250ZW50cy5oYXNJbihwYXRoKSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgaW4gdGhpcyBkb2N1bWVudC4gRm9yIGAhIXNldGAsIGB2YWx1ZWAgbmVlZHMgdG8gYmUgYVxuICAgICAqIGJvb2xlYW4gdG8gYWRkL3JlbW92ZSB0aGUgaXRlbSBmcm9tIHRoZSBzZXQuXG4gICAgICovXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudHMgPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBXZSBjYW4ndCByZWFsbHkga25vdyB0aGF0IHRoaXMgbWF0Y2hlcyBDb250ZW50cy5cbiAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSBjb2xsZWN0aW9uRnJvbVBhdGgodGhpcy5zY2hlbWEsIFtrZXldLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIGluIHRoaXMgZG9jdW1lbnQuIEZvciBgISFzZXRgLCBgdmFsdWVgIG5lZWRzIHRvIGJlIGFcbiAgICAgKiBib29sZWFuIHRvIGFkZC9yZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgc2V0LlxuICAgICAqL1xuICAgIHNldEluKHBhdGgsIHZhbHVlKSB7XG4gICAgICAgIGlmIChpc0VtcHR5UGF0aChwYXRoKSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBXZSBjYW4ndCByZWFsbHkga25vdyB0aGF0IHRoaXMgbWF0Y2hlcyBDb250ZW50cy5cbiAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNvbnRlbnRzID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2FuJ3QgcmVhbGx5IGtub3cgdGhhdCB0aGlzIG1hdGNoZXMgQ29udGVudHMuXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRzID0gY29sbGVjdGlvbkZyb21QYXRoKHRoaXMuc2NoZW1hLCBBcnJheS5mcm9tKHBhdGgpLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYXNzZXJ0Q29sbGVjdGlvbih0aGlzLmNvbnRlbnRzKSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50cy5zZXRJbihwYXRoLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBZQU1MIHZlcnNpb24gYW5kIHNjaGVtYSB1c2VkIGJ5IHRoZSBkb2N1bWVudC5cbiAgICAgKiBBIGBudWxsYCB2ZXJzaW9uIGRpc2FibGVzIHN1cHBvcnQgZm9yIGRpcmVjdGl2ZXMsIGV4cGxpY2l0IHRhZ3MsIGFuY2hvcnMsIGFuZCBhbGlhc2VzLlxuICAgICAqIEl0IGFsc28gcmVxdWlyZXMgdGhlIGBzY2hlbWFgIG9wdGlvbiB0byBiZSBnaXZlbiBhcyBhIGBTY2hlbWFgIGluc3RhbmNlIHZhbHVlLlxuICAgICAqXG4gICAgICogT3ZlcnJpZGVzIGFsbCBwcmV2aW91c2x5IHNldCBzY2hlbWEgb3B0aW9ucy5cbiAgICAgKi9cbiAgICBzZXRTY2hlbWEodmVyc2lvbiwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICB2ZXJzaW9uID0gU3RyaW5nKHZlcnNpb24pO1xuICAgICAgICBsZXQgb3B0O1xuICAgICAgICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJzEuMSc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVzLnlhbWwudmVyc2lvbiA9ICcxLjEnO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVzID0gbmV3IERpcmVjdGl2ZXMoeyB2ZXJzaW9uOiAnMS4xJyB9KTtcbiAgICAgICAgICAgICAgICBvcHQgPSB7IHJlc29sdmVLbm93blRhZ3M6IGZhbHNlLCBzY2hlbWE6ICd5YW1sLTEuMScgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzEuMic6XG4gICAgICAgICAgICBjYXNlICduZXh0JzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXJlY3RpdmVzKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbiB9KTtcbiAgICAgICAgICAgICAgICBvcHQgPSB7IHJlc29sdmVLbm93blRhZ3M6IHRydWUsIHNjaGVtYTogJ2NvcmUnIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGlyZWN0aXZlcztcbiAgICAgICAgICAgICAgICBvcHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN2ID0gSlNPTi5zdHJpbmdpZnkodmVyc2lvbik7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAnMS4xJywgJzEuMicgb3IgbnVsbCBhcyBmaXJzdCBhcmd1bWVudCwgYnV0IGZvdW5kOiAke3N2fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE5vdCB1c2luZyBgaW5zdGFuY2VvZiBTY2hlbWFgIHRvIGFsbG93IGZvciBkdWNrIHR5cGluZ1xuICAgICAgICBpZiAob3B0aW9ucy5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgICAgICAgICB0aGlzLnNjaGVtYSA9IG9wdGlvbnMuc2NoZW1hO1xuICAgICAgICBlbHNlIGlmIChvcHQpXG4gICAgICAgICAgICB0aGlzLnNjaGVtYSA9IG5ldyBTY2hlbWEoT2JqZWN0LmFzc2lnbihvcHQsIG9wdGlvbnMpKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkYCk7XG4gICAgfVxuICAgIC8vIGpzb24gJiBqc29uQXJnIGFyZSBvbmx5IHVzZWQgZnJvbSB0b0pTT04oKVxuICAgIHRvSlMoeyBqc29uLCBqc29uQXJnLCBtYXBBc01hcCwgbWF4QWxpYXNDb3VudCwgb25BbmNob3IsIHJldml2ZXIgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGFuY2hvcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIGRvYzogdGhpcyxcbiAgICAgICAgICAgIGtlZXA6ICFqc29uLFxuICAgICAgICAgICAgbWFwQXNNYXA6IG1hcEFzTWFwID09PSB0cnVlLFxuICAgICAgICAgICAgbWFwS2V5V2FybmVkOiBmYWxzZSxcbiAgICAgICAgICAgIG1heEFsaWFzQ291bnQ6IHR5cGVvZiBtYXhBbGlhc0NvdW50ID09PSAnbnVtYmVyJyA/IG1heEFsaWFzQ291bnQgOiAxMDBcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzID0gdG9KUyh0aGlzLmNvbnRlbnRzLCBqc29uQXJnID8/ICcnLCBjdHgpO1xuICAgICAgICBpZiAodHlwZW9mIG9uQW5jaG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgZm9yIChjb25zdCB7IGNvdW50LCByZXMgfSBvZiBjdHguYW5jaG9ycy52YWx1ZXMoKSlcbiAgICAgICAgICAgICAgICBvbkFuY2hvcihyZXMsIGNvdW50KTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGFwcGx5UmV2aXZlcihyZXZpdmVyLCB7ICcnOiByZXMgfSwgJycsIHJlcylcbiAgICAgICAgICAgIDogcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50IGBjb250ZW50c2AuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ganNvbkFyZyBVc2VkIGJ5IGBKU09OLnN0cmluZ2lmeWAgdG8gaW5kaWNhdGUgdGhlIGFycmF5IGluZGV4IG9yXG4gICAgICogICBwcm9wZXJ0eSBuYW1lLlxuICAgICAqL1xuICAgIHRvSlNPTihqc29uQXJnLCBvbkFuY2hvcikge1xuICAgICAgICByZXR1cm4gdGhpcy50b0pTKHsganNvbjogdHJ1ZSwganNvbkFyZywgbWFwQXNNYXA6IGZhbHNlLCBvbkFuY2hvciB9KTtcbiAgICB9XG4gICAgLyoqIEEgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZG9jdW1lbnQuICovXG4gICAgdG9TdHJpbmcob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEb2N1bWVudCB3aXRoIGVycm9ycyBjYW5ub3QgYmUgc3RyaW5naWZpZWQnKTtcbiAgICAgICAgaWYgKCdpbmRlbnQnIGluIG9wdGlvbnMgJiZcbiAgICAgICAgICAgICghTnVtYmVyLmlzSW50ZWdlcihvcHRpb25zLmluZGVudCkgfHwgTnVtYmVyKG9wdGlvbnMuaW5kZW50KSA8PSAwKSkge1xuICAgICAgICAgICAgY29uc3QgcyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaW5kZW50KTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJpbmRlbnRcIiBvcHRpb24gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIG5vdCAke3N9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeURvY3VtZW50KHRoaXMsIG9wdGlvbnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFzc2VydENvbGxlY3Rpb24oY29udGVudHMpIHtcbiAgICBpZiAoaXNDb2xsZWN0aW9uKGNvbnRlbnRzKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIFlBTUwgY29sbGVjdGlvbiBhcyBkb2N1bWVudCBjb250ZW50cycpO1xufVxuXG5leHBvcnQgeyBEb2N1bWVudCB9O1xuIiwgImNsYXNzIFlBTUxFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBwb3MsIGNvZGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgfVxufVxuY2xhc3MgWUFNTFBhcnNlRXJyb3IgZXh0ZW5kcyBZQU1MRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHBvcywgY29kZSwgbWVzc2FnZSkge1xuICAgICAgICBzdXBlcignWUFNTFBhcnNlRXJyb3InLCBwb3MsIGNvZGUsIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmNsYXNzIFlBTUxXYXJuaW5nIGV4dGVuZHMgWUFNTEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcihwb3MsIGNvZGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgc3VwZXIoJ1lBTUxXYXJuaW5nJywgcG9zLCBjb2RlLCBtZXNzYWdlKTtcbiAgICB9XG59XG5jb25zdCBwcmV0dGlmeUVycm9yID0gKHNyYywgbGMpID0+IChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvci5wb3NbMF0gPT09IC0xKVxuICAgICAgICByZXR1cm47XG4gICAgZXJyb3IubGluZVBvcyA9IGVycm9yLnBvcy5tYXAocG9zID0+IGxjLmxpbmVQb3MocG9zKSk7XG4gICAgY29uc3QgeyBsaW5lLCBjb2wgfSA9IGVycm9yLmxpbmVQb3NbMF07XG4gICAgZXJyb3IubWVzc2FnZSArPSBgIGF0IGxpbmUgJHtsaW5lfSwgY29sdW1uICR7Y29sfWA7XG4gICAgbGV0IGNpID0gY29sIC0gMTtcbiAgICBsZXQgbGluZVN0ciA9IHNyY1xuICAgICAgICAuc3Vic3RyaW5nKGxjLmxpbmVTdGFydHNbbGluZSAtIDFdLCBsYy5saW5lU3RhcnRzW2xpbmVdKVxuICAgICAgICAucmVwbGFjZSgvW1xcblxccl0rJC8sICcnKTtcbiAgICAvLyBUcmltIHRvIG1heCA4MCBjaGFycywga2VlcGluZyBjb2wgcG9zaXRpb24gbmVhciB0aGUgbWlkZGxlXG4gICAgaWYgKGNpID49IDYwICYmIGxpbmVTdHIubGVuZ3RoID4gODApIHtcbiAgICAgICAgY29uc3QgdHJpbVN0YXJ0ID0gTWF0aC5taW4oY2kgLSAzOSwgbGluZVN0ci5sZW5ndGggLSA3OSk7XG4gICAgICAgIGxpbmVTdHIgPSAnXHUyMDI2JyArIGxpbmVTdHIuc3Vic3RyaW5nKHRyaW1TdGFydCk7XG4gICAgICAgIGNpIC09IHRyaW1TdGFydCAtIDE7XG4gICAgfVxuICAgIGlmIChsaW5lU3RyLmxlbmd0aCA+IDgwKVxuICAgICAgICBsaW5lU3RyID0gbGluZVN0ci5zdWJzdHJpbmcoMCwgNzkpICsgJ1x1MjAyNic7XG4gICAgLy8gSW5jbHVkZSBwcmV2aW91cyBsaW5lIGluIGNvbnRleHQgaWYgcG9pbnRpbmcgYXQgbGluZSBzdGFydFxuICAgIGlmIChsaW5lID4gMSAmJiAvXiAqJC8udGVzdChsaW5lU3RyLnN1YnN0cmluZygwLCBjaSkpKSB7XG4gICAgICAgIC8vIFJlZ2V4cCB3b24ndCBtYXRjaCBpZiBzdGFydCBpcyB0cmltbWVkXG4gICAgICAgIGxldCBwcmV2ID0gc3JjLnN1YnN0cmluZyhsYy5saW5lU3RhcnRzW2xpbmUgLSAyXSwgbGMubGluZVN0YXJ0c1tsaW5lIC0gMV0pO1xuICAgICAgICBpZiAocHJldi5sZW5ndGggPiA4MClcbiAgICAgICAgICAgIHByZXYgPSBwcmV2LnN1YnN0cmluZygwLCA3OSkgKyAnXHUyMDI2XFxuJztcbiAgICAgICAgbGluZVN0ciA9IHByZXYgKyBsaW5lU3RyO1xuICAgIH1cbiAgICBpZiAoL1teIF0vLnRlc3QobGluZVN0cikpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMTtcbiAgICAgICAgY29uc3QgZW5kID0gZXJyb3IubGluZVBvc1sxXTtcbiAgICAgICAgaWYgKGVuZCAmJiBlbmQubGluZSA9PT0gbGluZSAmJiBlbmQuY29sID4gY29sKSB7XG4gICAgICAgICAgICBjb3VudCA9IE1hdGgubWF4KDEsIE1hdGgubWluKGVuZC5jb2wgLSBjb2wsIDgwIC0gY2kpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludGVyID0gJyAnLnJlcGVhdChjaSkgKyAnXicucmVwZWF0KGNvdW50KTtcbiAgICAgICAgZXJyb3IubWVzc2FnZSArPSBgOlxcblxcbiR7bGluZVN0cn1cXG4ke3BvaW50ZXJ9XFxuYDtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBZQU1MRXJyb3IsIFlBTUxQYXJzZUVycm9yLCBZQU1MV2FybmluZywgcHJldHRpZnlFcnJvciB9O1xuIiwgImZ1bmN0aW9uIHJlc29sdmVQcm9wcyh0b2tlbnMsIHsgZmxvdywgaW5kaWNhdG9yLCBuZXh0LCBvZmZzZXQsIG9uRXJyb3IsIHBhcmVudEluZGVudCwgc3RhcnRPbk5ld2xpbmUgfSkge1xuICAgIGxldCBzcGFjZUJlZm9yZSA9IGZhbHNlO1xuICAgIGxldCBhdE5ld2xpbmUgPSBzdGFydE9uTmV3bGluZTtcbiAgICBsZXQgaGFzU3BhY2UgPSBzdGFydE9uTmV3bGluZTtcbiAgICBsZXQgY29tbWVudCA9ICcnO1xuICAgIGxldCBjb21tZW50U2VwID0gJyc7XG4gICAgbGV0IGhhc05ld2xpbmUgPSBmYWxzZTtcbiAgICBsZXQgcmVxU3BhY2UgPSBmYWxzZTtcbiAgICBsZXQgdGFiID0gbnVsbDtcbiAgICBsZXQgYW5jaG9yID0gbnVsbDtcbiAgICBsZXQgdGFnID0gbnVsbDtcbiAgICBsZXQgbmV3bGluZUFmdGVyUHJvcCA9IG51bGw7XG4gICAgbGV0IGNvbW1hID0gbnVsbDtcbiAgICBsZXQgZm91bmQgPSBudWxsO1xuICAgIGxldCBzdGFydCA9IG51bGw7XG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgaWYgKHJlcVNwYWNlKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gJ3NwYWNlJyAmJlxuICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgIT09ICduZXdsaW5lJyAmJlxuICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgIT09ICdjb21tYScpXG4gICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbi5vZmZzZXQsICdNSVNTSU5HX0NIQVInLCAnVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlJyk7XG4gICAgICAgICAgICByZXFTcGFjZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWIpIHtcbiAgICAgICAgICAgIGlmIChhdE5ld2xpbmUgJiYgdG9rZW4udHlwZSAhPT0gJ2NvbW1lbnQnICYmIHRva2VuLnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgICAgICAgICAgICAgIG9uRXJyb3IodGFiLCAnVEFCX0FTX0lOREVOVCcsICdUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFiID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAvLyBBdCB0aGUgZG9jIGxldmVsLCB0YWJzIGF0IGxpbmUgc3RhcnQgbWF5IGJlIHBhcnNlZFxuICAgICAgICAgICAgICAgIC8vIGFzIGxlYWRpbmcgd2hpdGUgc3BhY2UgcmF0aGVyIHRoYW4gaW5kZW50YXRpb24uXG4gICAgICAgICAgICAgICAgLy8gSW4gYSBmbG93IGNvbGxlY3Rpb24sIG9ubHkgdGhlIHBhcnNlciBoYW5kbGVzIGluZGVudC5cbiAgICAgICAgICAgICAgICBpZiAoIWZsb3cgJiZcbiAgICAgICAgICAgICAgICAgICAgKGluZGljYXRvciAhPT0gJ2RvYy1zdGFydCcgfHwgbmV4dD8udHlwZSAhPT0gJ2Zsb3ctY29sbGVjdGlvbicpICYmXG4gICAgICAgICAgICAgICAgICAgIHRva2VuLnNvdXJjZS5pbmNsdWRlcygnXFx0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFiID0gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGhhc1NwYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNTcGFjZSlcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ01JU1NJTkdfQ0hBUicsICdDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2IgPSB0b2tlbi5zb3VyY2Uuc3Vic3RyaW5nKDEpIHx8ICcgJztcbiAgICAgICAgICAgICAgICBpZiAoIWNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBjYjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgKz0gY29tbWVudFNlcCArIGNiO1xuICAgICAgICAgICAgICAgIGNvbW1lbnRTZXAgPSAnJztcbiAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIGlmIChhdE5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ICs9IHRva2VuLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VCZWZvcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRTZXAgKz0gdG9rZW4uc291cmNlO1xuICAgICAgICAgICAgICAgIGF0TmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaGFzTmV3bGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGFuY2hvciB8fCB0YWcpXG4gICAgICAgICAgICAgICAgICAgIG5ld2xpbmVBZnRlclByb3AgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhbmNob3InOlxuICAgICAgICAgICAgICAgIGlmIChhbmNob3IpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdNVUxUSVBMRV9BTkNIT1JTJywgJ0Egbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSBhbmNob3InKTtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4uc291cmNlLmVuZHNXaXRoKCc6JykpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4ub2Zmc2V0ICsgdG9rZW4uc291cmNlLmxlbmd0aCAtIDEsICdCQURfQUxJQVMnLCAnQW5jaG9yIGVuZGluZyBpbiA6IGlzIGFtYmlndW91cycsIHRydWUpO1xuICAgICAgICAgICAgICAgIGFuY2hvciA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0b2tlbi5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYXROZXdsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXFTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0YWcnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRhZylcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ01VTFRJUExFX1RBR1MnLCAnQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIHRhZycpO1xuICAgICAgICAgICAgICAgIHRhZyA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0b2tlbi5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYXROZXdsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXFTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIGluZGljYXRvcjpcbiAgICAgICAgICAgICAgICAvLyBDb3VsZCBoZXJlIGhhbmRsZSBwcmVjZWRpbmcgY29tbWVudHMgZGlmZmVyZW50bHlcbiAgICAgICAgICAgICAgICBpZiAoYW5jaG9yIHx8IHRhZylcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ0JBRF9QUk9QX09SREVSJywgYEFuY2hvcnMgYW5kIHRhZ3MgbXVzdCBiZSBhZnRlciB0aGUgJHt0b2tlbi5zb3VyY2V9IGluZGljYXRvcmApO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZClcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1VORVhQRUNURURfVE9LRU4nLCBgVW5leHBlY3RlZCAke3Rva2VuLnNvdXJjZX0gaW4gJHtmbG93ID8/ICdjb2xsZWN0aW9uJ31gKTtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIGF0TmV3bGluZSA9XG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvciA9PT0gJ3NlcS1pdGVtLWluZCcgfHwgaW5kaWNhdG9yID09PSAnZXhwbGljaXQta2V5LWluZCc7XG4gICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1hJzpcbiAgICAgICAgICAgICAgICBpZiAoZmxvdykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWEpXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmbG93fWApO1xuICAgICAgICAgICAgICAgICAgICBjb21tYSA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3BhY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZSBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICR7dG9rZW4udHlwZX0gdG9rZW5gKTtcbiAgICAgICAgICAgICAgICBhdE5ld2xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxhc3QgPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGVuZCA9IGxhc3QgPyBsYXN0Lm9mZnNldCArIGxhc3Quc291cmNlLmxlbmd0aCA6IG9mZnNldDtcbiAgICBpZiAocmVxU3BhY2UgJiZcbiAgICAgICAgbmV4dCAmJlxuICAgICAgICBuZXh0LnR5cGUgIT09ICdzcGFjZScgJiZcbiAgICAgICAgbmV4dC50eXBlICE9PSAnbmV3bGluZScgJiZcbiAgICAgICAgbmV4dC50eXBlICE9PSAnY29tbWEnICYmXG4gICAgICAgIChuZXh0LnR5cGUgIT09ICdzY2FsYXInIHx8IG5leHQuc291cmNlICE9PSAnJykpIHtcbiAgICAgICAgb25FcnJvcihuZXh0Lm9mZnNldCwgJ01JU1NJTkdfQ0hBUicsICdUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UnKTtcbiAgICB9XG4gICAgaWYgKHRhYiAmJlxuICAgICAgICAoKGF0TmV3bGluZSAmJiB0YWIuaW5kZW50IDw9IHBhcmVudEluZGVudCkgfHxcbiAgICAgICAgICAgIG5leHQ/LnR5cGUgPT09ICdibG9jay1tYXAnIHx8XG4gICAgICAgICAgICBuZXh0Py50eXBlID09PSAnYmxvY2stc2VxJykpXG4gICAgICAgIG9uRXJyb3IodGFiLCAnVEFCX0FTX0lOREVOVCcsICdUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvbicpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1hLFxuICAgICAgICBmb3VuZCxcbiAgICAgICAgc3BhY2VCZWZvcmUsXG4gICAgICAgIGNvbW1lbnQsXG4gICAgICAgIGhhc05ld2xpbmUsXG4gICAgICAgIGFuY2hvcixcbiAgICAgICAgdGFnLFxuICAgICAgICBuZXdsaW5lQWZ0ZXJQcm9wLFxuICAgICAgICBlbmQsXG4gICAgICAgIHN0YXJ0OiBzdGFydCA/PyBlbmRcbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNvbHZlUHJvcHMgfTtcbiIsICJmdW5jdGlvbiBjb250YWluc05ld2xpbmUoa2V5KSB7XG4gICAgaWYgKCFrZXkpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAoa2V5LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICBjYXNlICdkb3VibGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIGlmIChrZXkuc291cmNlLmluY2x1ZGVzKCdcXG4nKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChrZXkuZW5kKVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Qgb2Yga2V5LmVuZClcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0LnR5cGUgPT09ICduZXdsaW5lJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOlxuICAgICAgICAgICAgZm9yIChjb25zdCBpdCBvZiBrZXkuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN0IG9mIGl0LnN0YXJ0KVxuICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdCBvZiBpdC5zZXApXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluc05ld2xpbmUoaXQua2V5KSB8fCBjb250YWluc05ld2xpbmUoaXQudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgY29udGFpbnNOZXdsaW5lIH07XG4iLCAiaW1wb3J0IHsgY29udGFpbnNOZXdsaW5lIH0gZnJvbSAnLi91dGlsLWNvbnRhaW5zLW5ld2xpbmUuanMnO1xuXG5mdW5jdGlvbiBmbG93SW5kZW50Q2hlY2soaW5kZW50LCBmYywgb25FcnJvcikge1xuICAgIGlmIChmYz8udHlwZSA9PT0gJ2Zsb3ctY29sbGVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgZW5kID0gZmMuZW5kWzBdO1xuICAgICAgICBpZiAoZW5kLmluZGVudCA9PT0gaW5kZW50ICYmXG4gICAgICAgICAgICAoZW5kLnNvdXJjZSA9PT0gJ10nIHx8IGVuZC5zb3VyY2UgPT09ICd9JykgJiZcbiAgICAgICAgICAgIGNvbnRhaW5zTmV3bGluZShmYykpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9ICdGbG93IGVuZCBpbmRpY2F0b3Igc2hvdWxkIGJlIG1vcmUgaW5kZW50ZWQgdGhhbiBwYXJlbnQnO1xuICAgICAgICAgICAgb25FcnJvcihlbmQsICdCQURfSU5ERU5UJywgbXNnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgZmxvd0luZGVudENoZWNrIH07XG4iLCAiaW1wb3J0IHsgaXNTY2FsYXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5cbmZ1bmN0aW9uIG1hcEluY2x1ZGVzKGN0eCwgaXRlbXMsIHNlYXJjaCkge1xuICAgIGNvbnN0IHsgdW5pcXVlS2V5cyB9ID0gY3R4Lm9wdGlvbnM7XG4gICAgaWYgKHVuaXF1ZUtleXMgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgaXNFcXVhbCA9IHR5cGVvZiB1bmlxdWVLZXlzID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gdW5pcXVlS2V5c1xuICAgICAgICA6IChhLCBiKSA9PiBhID09PSBiIHx8IChpc1NjYWxhcihhKSAmJiBpc1NjYWxhcihiKSAmJiBhLnZhbHVlID09PSBiLnZhbHVlKTtcbiAgICByZXR1cm4gaXRlbXMuc29tZShwYWlyID0+IGlzRXF1YWwocGFpci5rZXksIHNlYXJjaCkpO1xufVxuXG5leHBvcnQgeyBtYXBJbmNsdWRlcyB9O1xuIiwgImltcG9ydCB7IFBhaXIgfSBmcm9tICcuLi9ub2Rlcy9QYWlyLmpzJztcbmltcG9ydCB7IFlBTUxNYXAgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MTWFwLmpzJztcbmltcG9ydCB7IHJlc29sdmVQcm9wcyB9IGZyb20gJy4vcmVzb2x2ZS1wcm9wcy5qcyc7XG5pbXBvcnQgeyBjb250YWluc05ld2xpbmUgfSBmcm9tICcuL3V0aWwtY29udGFpbnMtbmV3bGluZS5qcyc7XG5pbXBvcnQgeyBmbG93SW5kZW50Q2hlY2sgfSBmcm9tICcuL3V0aWwtZmxvdy1pbmRlbnQtY2hlY2suanMnO1xuaW1wb3J0IHsgbWFwSW5jbHVkZXMgfSBmcm9tICcuL3V0aWwtbWFwLWluY2x1ZGVzLmpzJztcblxuY29uc3Qgc3RhcnRDb2xNc2cgPSAnQWxsIG1hcHBpbmcgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW4nO1xuZnVuY3Rpb24gcmVzb2x2ZUJsb2NrTWFwKHsgY29tcG9zZU5vZGUsIGNvbXBvc2VFbXB0eU5vZGUgfSwgY3R4LCBibSwgb25FcnJvciwgdGFnKSB7XG4gICAgY29uc3QgTm9kZUNsYXNzID0gdGFnPy5ub2RlQ2xhc3MgPz8gWUFNTE1hcDtcbiAgICBjb25zdCBtYXAgPSBuZXcgTm9kZUNsYXNzKGN0eC5zY2hlbWEpO1xuICAgIGlmIChjdHguYXRSb290KVxuICAgICAgICBjdHguYXRSb290ID0gZmFsc2U7XG4gICAgbGV0IG9mZnNldCA9IGJtLm9mZnNldDtcbiAgICBsZXQgY29tbWVudEVuZCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjb2xsSXRlbSBvZiBibS5pdGVtcykge1xuICAgICAgICBjb25zdCB7IHN0YXJ0LCBrZXksIHNlcCwgdmFsdWUgfSA9IGNvbGxJdGVtO1xuICAgICAgICAvLyBrZXkgcHJvcGVydGllc1xuICAgICAgICBjb25zdCBrZXlQcm9wcyA9IHJlc29sdmVQcm9wcyhzdGFydCwge1xuICAgICAgICAgICAgaW5kaWNhdG9yOiAnZXhwbGljaXQta2V5LWluZCcsXG4gICAgICAgICAgICBuZXh0OiBrZXkgPz8gc2VwPy5bMF0sXG4gICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgcGFyZW50SW5kZW50OiBibS5pbmRlbnQsXG4gICAgICAgICAgICBzdGFydE9uTmV3bGluZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW1wbGljaXRLZXkgPSAha2V5UHJvcHMuZm91bmQ7XG4gICAgICAgIGlmIChpbXBsaWNpdEtleSkge1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGlmIChrZXkudHlwZSA9PT0gJ2Jsb2NrLXNlcScpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3Iob2Zmc2V0LCAnQkxPQ0tfQVNfSU1QTElDSVRfS0VZJywgJ0EgYmxvY2sgc2VxdWVuY2UgbWF5IG5vdCBiZSB1c2VkIGFzIGFuIGltcGxpY2l0IG1hcCBrZXknKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgnaW5kZW50JyBpbiBrZXkgJiYga2V5LmluZGVudCAhPT0gYm0uaW5kZW50KVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBzdGFydENvbE1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWtleVByb3BzLmFuY2hvciAmJiAha2V5UHJvcHMudGFnICYmICFzZXApIHtcbiAgICAgICAgICAgICAgICBjb21tZW50RW5kID0ga2V5UHJvcHMuZW5kO1xuICAgICAgICAgICAgICAgIGlmIChrZXlQcm9wcy5jb21tZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXAuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5jb21tZW50ICs9ICdcXG4nICsga2V5UHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmNvbW1lbnQgPSBrZXlQcm9wcy5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChrZXlQcm9wcy5uZXdsaW5lQWZ0ZXJQcm9wIHx8IGNvbnRhaW5zTmV3bGluZShrZXkpKSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXkgPz8gc3RhcnRbc3RhcnQubGVuZ3RoIC0gMV0sICdNVUxUSUxJTkVfSU1QTElDSVRfS0VZJywgJ0ltcGxpY2l0IGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoa2V5UHJvcHMuZm91bmQ/LmluZGVudCAhPT0gYm0uaW5kZW50KSB7XG4gICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBzdGFydENvbE1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8ga2V5IHZhbHVlXG4gICAgICAgIGN0eC5hdEtleSA9IHRydWU7XG4gICAgICAgIGNvbnN0IGtleVN0YXJ0ID0ga2V5UHJvcHMuZW5kO1xuICAgICAgICBjb25zdCBrZXlOb2RlID0ga2V5XG4gICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwga2V5LCBrZXlQcm9wcywgb25FcnJvcilcbiAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIGtleVN0YXJ0LCBzdGFydCwgbnVsbCwga2V5UHJvcHMsIG9uRXJyb3IpO1xuICAgICAgICBpZiAoY3R4LnNjaGVtYS5jb21wYXQpXG4gICAgICAgICAgICBmbG93SW5kZW50Q2hlY2soYm0uaW5kZW50LCBrZXksIG9uRXJyb3IpO1xuICAgICAgICBjdHguYXRLZXkgPSBmYWxzZTtcbiAgICAgICAgaWYgKG1hcEluY2x1ZGVzKGN0eCwgbWFwLml0ZW1zLCBrZXlOb2RlKSlcbiAgICAgICAgICAgIG9uRXJyb3Ioa2V5U3RhcnQsICdEVVBMSUNBVEVfS0VZJywgJ01hcCBrZXlzIG11c3QgYmUgdW5pcXVlJyk7XG4gICAgICAgIC8vIHZhbHVlIHByb3BlcnRpZXNcbiAgICAgICAgY29uc3QgdmFsdWVQcm9wcyA9IHJlc29sdmVQcm9wcyhzZXAgPz8gW10sIHtcbiAgICAgICAgICAgIGluZGljYXRvcjogJ21hcC12YWx1ZS1pbmQnLFxuICAgICAgICAgICAgbmV4dDogdmFsdWUsXG4gICAgICAgICAgICBvZmZzZXQ6IGtleU5vZGUucmFuZ2VbMl0sXG4gICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgcGFyZW50SW5kZW50OiBibS5pbmRlbnQsXG4gICAgICAgICAgICBzdGFydE9uTmV3bGluZTogIWtleSB8fCBrZXkudHlwZSA9PT0gJ2Jsb2NrLXNjYWxhcidcbiAgICAgICAgfSk7XG4gICAgICAgIG9mZnNldCA9IHZhbHVlUHJvcHMuZW5kO1xuICAgICAgICBpZiAodmFsdWVQcm9wcy5mb3VuZCkge1xuICAgICAgICAgICAgaWYgKGltcGxpY2l0S2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlPy50eXBlID09PSAnYmxvY2stbWFwJyAmJiAhdmFsdWVQcm9wcy5oYXNOZXdsaW5lKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JMT0NLX0FTX0lNUExJQ0lUX0tFWScsICdOZXN0ZWQgbWFwcGluZ3MgYXJlIG5vdCBhbGxvd2VkIGluIGNvbXBhY3QgbWFwcGluZ3MnKTtcbiAgICAgICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMuc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgICAgIGtleVByb3BzLnN0YXJ0IDwgdmFsdWVQcm9wcy5mb3VuZC5vZmZzZXQgLSAxMDI0KVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGtleU5vZGUucmFuZ2UsICdLRVlfT1ZFUl8xMDI0X0NIQVJTJywgJ1RoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgYmxvY2sgbWFwcGluZyBrZXknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHZhbHVlIHZhbHVlXG4gICAgICAgICAgICBjb25zdCB2YWx1ZU5vZGUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgdmFsdWVQcm9wcywgb25FcnJvcilcbiAgICAgICAgICAgICAgICA6IGNvbXBvc2VFbXB0eU5vZGUoY3R4LCBvZmZzZXQsIHNlcCwgbnVsbCwgdmFsdWVQcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBpZiAoY3R4LnNjaGVtYS5jb21wYXQpXG4gICAgICAgICAgICAgICAgZmxvd0luZGVudENoZWNrKGJtLmluZGVudCwgdmFsdWUsIG9uRXJyb3IpO1xuICAgICAgICAgICAgb2Zmc2V0ID0gdmFsdWVOb2RlLnJhbmdlWzJdO1xuICAgICAgICAgICAgY29uc3QgcGFpciA9IG5ldyBQYWlyKGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgICAgICAgICBpZiAoY3R4Lm9wdGlvbnMua2VlcFNvdXJjZVRva2VucylcbiAgICAgICAgICAgICAgICBwYWlyLnNyY1Rva2VuID0gY29sbEl0ZW07XG4gICAgICAgICAgICBtYXAuaXRlbXMucHVzaChwYWlyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGtleSB3aXRoIG5vIHZhbHVlXG4gICAgICAgICAgICBpZiAoaW1wbGljaXRLZXkpXG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXlOb2RlLnJhbmdlLCAnTUlTU0lOR19DSEFSJywgJ0ltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlcycpO1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGlmIChrZXlOb2RlLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCArPSAnXFxuJyArIHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCA9IHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhaXIgPSBuZXcgUGFpcihrZXlOb2RlKTtcbiAgICAgICAgICAgIGlmIChjdHgub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zKVxuICAgICAgICAgICAgICAgIHBhaXIuc3JjVG9rZW4gPSBjb2xsSXRlbTtcbiAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChjb21tZW50RW5kICYmIGNvbW1lbnRFbmQgPCBvZmZzZXQpXG4gICAgICAgIG9uRXJyb3IoY29tbWVudEVuZCwgJ0lNUE9TU0lCTEUnLCAnTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50Jyk7XG4gICAgbWFwLnJhbmdlID0gW2JtLm9mZnNldCwgb2Zmc2V0LCBjb21tZW50RW5kID8/IG9mZnNldF07XG4gICAgcmV0dXJuIG1hcDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUJsb2NrTWFwIH07XG4iLCAiaW1wb3J0IHsgWUFNTFNlcSB9IGZyb20gJy4uL25vZGVzL1lBTUxTZXEuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcbmltcG9ydCB7IGZsb3dJbmRlbnRDaGVjayB9IGZyb20gJy4vdXRpbC1mbG93LWluZGVudC1jaGVjay5qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVCbG9ja1NlcSh7IGNvbXBvc2VOb2RlLCBjb21wb3NlRW1wdHlOb2RlIH0sIGN0eCwgYnMsIG9uRXJyb3IsIHRhZykge1xuICAgIGNvbnN0IE5vZGVDbGFzcyA9IHRhZz8ubm9kZUNsYXNzID8/IFlBTUxTZXE7XG4gICAgY29uc3Qgc2VxID0gbmV3IE5vZGVDbGFzcyhjdHguc2NoZW1hKTtcbiAgICBpZiAoY3R4LmF0Um9vdClcbiAgICAgICAgY3R4LmF0Um9vdCA9IGZhbHNlO1xuICAgIGlmIChjdHguYXRLZXkpXG4gICAgICAgIGN0eC5hdEtleSA9IGZhbHNlO1xuICAgIGxldCBvZmZzZXQgPSBicy5vZmZzZXQ7XG4gICAgbGV0IGNvbW1lbnRFbmQgPSBudWxsO1xuICAgIGZvciAoY29uc3QgeyBzdGFydCwgdmFsdWUgfSBvZiBicy5pdGVtcykge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHJlc29sdmVQcm9wcyhzdGFydCwge1xuICAgICAgICAgICAgaW5kaWNhdG9yOiAnc2VxLWl0ZW0taW5kJyxcbiAgICAgICAgICAgIG5leHQ6IHZhbHVlLFxuICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAgIHBhcmVudEluZGVudDogYnMuaW5kZW50LFxuICAgICAgICAgICAgc3RhcnRPbk5ld2xpbmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcHJvcHMuZm91bmQpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5hbmNob3IgfHwgcHJvcHMudGFnIHx8IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnR5cGUgPT09ICdibG9jay1zZXEnKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmVuZCwgJ0JBRF9JTkRFTlQnLCAnQWxsIHNlcXVlbmNlIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uJyk7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ01JU1NJTkdfQ0hBUicsICdTZXF1ZW5jZSBpdGVtIHdpdGhvdXQgLSBpbmRpY2F0b3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbW1lbnRFbmQgPSBwcm9wcy5lbmQ7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIHNlcS5jb21tZW50ID0gcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBub2RlID0gdmFsdWVcbiAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgcHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICA6IGNvbXBvc2VFbXB0eU5vZGUoY3R4LCBwcm9wcy5lbmQsIHN0YXJ0LCBudWxsLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgIGlmIChjdHguc2NoZW1hLmNvbXBhdClcbiAgICAgICAgICAgIGZsb3dJbmRlbnRDaGVjayhicy5pbmRlbnQsIHZhbHVlLCBvbkVycm9yKTtcbiAgICAgICAgb2Zmc2V0ID0gbm9kZS5yYW5nZVsyXTtcbiAgICAgICAgc2VxLml0ZW1zLnB1c2gobm9kZSk7XG4gICAgfVxuICAgIHNlcS5yYW5nZSA9IFticy5vZmZzZXQsIG9mZnNldCwgY29tbWVudEVuZCA/PyBvZmZzZXRdO1xuICAgIHJldHVybiBzZXE7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVCbG9ja1NlcSB9O1xuIiwgImZ1bmN0aW9uIHJlc29sdmVFbmQoZW5kLCBvZmZzZXQsIHJlcVNwYWNlLCBvbkVycm9yKSB7XG4gICAgbGV0IGNvbW1lbnQgPSAnJztcbiAgICBpZiAoZW5kKSB7XG4gICAgICAgIGxldCBoYXNTcGFjZSA9IGZhbHNlO1xuICAgICAgICBsZXQgc2VwID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCB7IHNvdXJjZSwgdHlwZSB9ID0gdG9rZW47XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgICAgIGhhc1NwYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcVNwYWNlICYmICFoYXNTcGFjZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdNSVNTSU5HX0NIQVInLCAnQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYiA9IHNvdXJjZS5zdWJzdHJpbmcoMSkgfHwgJyAnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gY2I7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgKz0gc2VwICsgY2I7XG4gICAgICAgICAgICAgICAgICAgIHNlcCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21tZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VwICs9IHNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3BhY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICR7dHlwZX0gYXQgbm9kZSBlbmRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGNvbW1lbnQsIG9mZnNldCB9O1xufVxuXG5leHBvcnQgeyByZXNvbHZlRW5kIH07XG4iLCAiaW1wb3J0IHsgaXNQYWlyIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgUGFpciB9IGZyb20gJy4uL25vZGVzL1BhaXIuanMnO1xuaW1wb3J0IHsgWUFNTE1hcCB9IGZyb20gJy4uL25vZGVzL1lBTUxNYXAuanMnO1xuaW1wb3J0IHsgWUFNTFNlcSB9IGZyb20gJy4uL25vZGVzL1lBTUxTZXEuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZCB9IGZyb20gJy4vcmVzb2x2ZS1lbmQuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcbmltcG9ydCB7IGNvbnRhaW5zTmV3bGluZSB9IGZyb20gJy4vdXRpbC1jb250YWlucy1uZXdsaW5lLmpzJztcbmltcG9ydCB7IG1hcEluY2x1ZGVzIH0gZnJvbSAnLi91dGlsLW1hcC1pbmNsdWRlcy5qcyc7XG5cbmNvbnN0IGJsb2NrTXNnID0gJ0Jsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9ucyc7XG5jb25zdCBpc0Jsb2NrID0gKHRva2VuKSA9PiB0b2tlbiAmJiAodG9rZW4udHlwZSA9PT0gJ2Jsb2NrLW1hcCcgfHwgdG9rZW4udHlwZSA9PT0gJ2Jsb2NrLXNlcScpO1xuZnVuY3Rpb24gcmVzb2x2ZUZsb3dDb2xsZWN0aW9uKHsgY29tcG9zZU5vZGUsIGNvbXBvc2VFbXB0eU5vZGUgfSwgY3R4LCBmYywgb25FcnJvciwgdGFnKSB7XG4gICAgY29uc3QgaXNNYXAgPSBmYy5zdGFydC5zb3VyY2UgPT09ICd7JztcbiAgICBjb25zdCBmY05hbWUgPSBpc01hcCA/ICdmbG93IG1hcCcgOiAnZmxvdyBzZXF1ZW5jZSc7XG4gICAgY29uc3QgTm9kZUNsYXNzID0gKHRhZz8ubm9kZUNsYXNzID8/IChpc01hcCA/IFlBTUxNYXAgOiBZQU1MU2VxKSk7XG4gICAgY29uc3QgY29sbCA9IG5ldyBOb2RlQ2xhc3MoY3R4LnNjaGVtYSk7XG4gICAgY29sbC5mbG93ID0gdHJ1ZTtcbiAgICBjb25zdCBhdFJvb3QgPSBjdHguYXRSb290O1xuICAgIGlmIChhdFJvb3QpXG4gICAgICAgIGN0eC5hdFJvb3QgPSBmYWxzZTtcbiAgICBpZiAoY3R4LmF0S2V5KVxuICAgICAgICBjdHguYXRLZXkgPSBmYWxzZTtcbiAgICBsZXQgb2Zmc2V0ID0gZmMub2Zmc2V0ICsgZmMuc3RhcnQuc291cmNlLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZjLml0ZW1zLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGNvbGxJdGVtID0gZmMuaXRlbXNbaV07XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGtleSwgc2VwLCB2YWx1ZSB9ID0gY29sbEl0ZW07XG4gICAgICAgIGNvbnN0IHByb3BzID0gcmVzb2x2ZVByb3BzKHN0YXJ0LCB7XG4gICAgICAgICAgICBmbG93OiBmY05hbWUsXG4gICAgICAgICAgICBpbmRpY2F0b3I6ICdleHBsaWNpdC1rZXktaW5kJyxcbiAgICAgICAgICAgIG5leHQ6IGtleSA/PyBzZXA/LlswXSxcbiAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgIG9uRXJyb3IsXG4gICAgICAgICAgICBwYXJlbnRJbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgIHN0YXJ0T25OZXdsaW5lOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcm9wcy5mb3VuZCkge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy5hbmNob3IgJiYgIXByb3BzLnRhZyAmJiAhc2VwICYmICF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSAwICYmIHByb3BzLmNvbW1hKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmNvbW1hLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmY05hbWV9YCk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaSA8IGZjLml0ZW1zLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IocHJvcHMuc3RhcnQsICdVTkVYUEVDVEVEX1RPS0VOJywgYFVuZXhwZWN0ZWQgZW1wdHkgaXRlbSBpbiAke2ZjTmFtZX1gKTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sbC5jb21tZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbC5jb21tZW50ICs9ICdcXG4nICsgcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbC5jb21tZW50ID0gcHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvcHMuZW5kO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc01hcCAmJiBjdHgub3B0aW9ucy5zdHJpY3QgJiYgY29udGFpbnNOZXdsaW5lKGtleSkpXG4gICAgICAgICAgICAgICAgb25FcnJvcihrZXksIC8vIGNoZWNrZWQgYnkgY29udGFpbnNOZXdsaW5lKClcbiAgICAgICAgICAgICAgICAnTVVMVElMSU5FX0lNUExJQ0lUX0tFWScsICdJbXBsaWNpdCBrZXlzIG9mIGZsb3cgc2VxdWVuY2UgcGFpcnMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jb21tYSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKHByb3BzLmNvbW1hLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBVbmV4cGVjdGVkICwgaW4gJHtmY05hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXByb3BzLmNvbW1hKVxuICAgICAgICAgICAgICAgIG9uRXJyb3IocHJvcHMuc3RhcnQsICdNSVNTSU5HX0NIQVInLCBgTWlzc2luZyAsIGJldHdlZW4gJHtmY05hbWV9IGl0ZW1zYCk7XG4gICAgICAgICAgICBpZiAocHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGxldCBwcmV2SXRlbUNvbW1lbnQgPSAnJztcbiAgICAgICAgICAgICAgICBsb29wOiBmb3IgKGNvbnN0IHN0IG9mIHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tbWEnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkl0ZW1Db21tZW50ID0gc3Quc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwcmV2SXRlbUNvbW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXYgPSBjb2xsLml0ZW1zW2NvbGwuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1BhaXIocHJldikpXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gcHJldi52YWx1ZSA/PyBwcmV2LmtleTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYuY29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXYuY29tbWVudCArPSAnXFxuJyArIHByZXZJdGVtQ29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldi5jb21tZW50ID0gcHJldkl0ZW1Db21tZW50O1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb21tZW50ID0gcHJvcHMuY29tbWVudC5zdWJzdHJpbmcocHJldkl0ZW1Db21tZW50Lmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTWFwICYmICFzZXAgJiYgIXByb3BzLmZvdW5kKSB7XG4gICAgICAgICAgICAvLyBpdGVtIGlzIGEgdmFsdWUgaW4gYSBzZXFcbiAgICAgICAgICAgIC8vIFx1MjE5MiBrZXkgJiBzZXAgYXJlIGVtcHR5LCBzdGFydCBkb2VzIG5vdCBpbmNsdWRlID8gb3IgOlxuICAgICAgICAgICAgY29uc3QgdmFsdWVOb2RlID0gdmFsdWVcbiAgICAgICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwgdmFsdWUsIHByb3BzLCBvbkVycm9yKVxuICAgICAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIHByb3BzLmVuZCwgc2VwLCBudWxsLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBjb2xsLml0ZW1zLnB1c2godmFsdWVOb2RlKTtcbiAgICAgICAgICAgIG9mZnNldCA9IHZhbHVlTm9kZS5yYW5nZVsyXTtcbiAgICAgICAgICAgIGlmIChpc0Jsb2NrKHZhbHVlKSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKHZhbHVlTm9kZS5yYW5nZSwgJ0JMT0NLX0lOX0ZMT1cnLCBibG9ja01zZyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBpdGVtIGlzIGEga2V5K3ZhbHVlIHBhaXJcbiAgICAgICAgICAgIC8vIGtleSB2YWx1ZVxuICAgICAgICAgICAgY3R4LmF0S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGtleVN0YXJ0ID0gcHJvcHMuZW5kO1xuICAgICAgICAgICAgY29uc3Qga2V5Tm9kZSA9IGtleVxuICAgICAgICAgICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCBrZXksIHByb3BzLCBvbkVycm9yKVxuICAgICAgICAgICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIGtleVN0YXJ0LCBzdGFydCwgbnVsbCwgcHJvcHMsIG9uRXJyb3IpO1xuICAgICAgICAgICAgaWYgKGlzQmxvY2soa2V5KSlcbiAgICAgICAgICAgICAgICBvbkVycm9yKGtleU5vZGUucmFuZ2UsICdCTE9DS19JTl9GTE9XJywgYmxvY2tNc2cpO1xuICAgICAgICAgICAgY3R4LmF0S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB2YWx1ZSBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BzID0gcmVzb2x2ZVByb3BzKHNlcCA/PyBbXSwge1xuICAgICAgICAgICAgICAgIGZsb3c6IGZjTmFtZSxcbiAgICAgICAgICAgICAgICBpbmRpY2F0b3I6ICdtYXAtdmFsdWUtaW5kJyxcbiAgICAgICAgICAgICAgICBuZXh0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IGtleU5vZGUucmFuZ2VbMl0sXG4gICAgICAgICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAgICAgICBwYXJlbnRJbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgICAgICBzdGFydE9uTmV3bGluZTogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlUHJvcHMuZm91bmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTWFwICYmICFwcm9wcy5mb3VuZCAmJiBjdHgub3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Qgb2Ygc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0ID09PSB2YWx1ZVByb3BzLmZvdW5kKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3QudHlwZSA9PT0gJ25ld2xpbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3Ioc3QsICdNVUxUSUxJTkVfSU1QTElDSVRfS0VZJywgJ0ltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuc3RhcnQgPCB2YWx1ZVByb3BzLmZvdW5kLm9mZnNldCAtIDEwMjQpXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHZhbHVlUHJvcHMuZm91bmQsICdLRVlfT1ZFUl8xMDI0X0NIQVJTJywgJ1RoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgZmxvdyBzZXF1ZW5jZSBrZXknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICgnc291cmNlJyBpbiB2YWx1ZSAmJiB2YWx1ZS5zb3VyY2UgJiYgdmFsdWUuc291cmNlWzBdID09PSAnOicpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodmFsdWUsICdNSVNTSU5HX0NIQVInLCBgTWlzc2luZyBzcGFjZSBhZnRlciA6IGluICR7ZmNOYW1lfWApO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcih2YWx1ZVByb3BzLnN0YXJ0LCAnTUlTU0lOR19DSEFSJywgYE1pc3NpbmcgLCBvciA6IGJldHdlZW4gJHtmY05hbWV9IGl0ZW1zYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB2YWx1ZSB2YWx1ZVxuICAgICAgICAgICAgY29uc3QgdmFsdWVOb2RlID0gdmFsdWVcbiAgICAgICAgICAgICAgICA/IGNvbXBvc2VOb2RlKGN0eCwgdmFsdWUsIHZhbHVlUHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZVByb3BzLmZvdW5kXG4gICAgICAgICAgICAgICAgICAgID8gY29tcG9zZUVtcHR5Tm9kZShjdHgsIHZhbHVlUHJvcHMuZW5kLCBzZXAsIG51bGwsIHZhbHVlUHJvcHMsIG9uRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh2YWx1ZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNCbG9jayh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IodmFsdWVOb2RlLnJhbmdlLCAnQkxPQ0tfSU5fRkxPVycsIGJsb2NrTXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlUHJvcHMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGlmIChrZXlOb2RlLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCArPSAnXFxuJyArIHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGtleU5vZGUuY29tbWVudCA9IHZhbHVlUHJvcHMuY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhaXIgPSBuZXcgUGFpcihrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgICAgICAgICAgaWYgKGN0eC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMpXG4gICAgICAgICAgICAgICAgcGFpci5zcmNUb2tlbiA9IGNvbGxJdGVtO1xuICAgICAgICAgICAgaWYgKGlzTWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwID0gY29sbDtcbiAgICAgICAgICAgICAgICBpZiAobWFwSW5jbHVkZXMoY3R4LCBtYXAuaXRlbXMsIGtleU5vZGUpKVxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGtleVN0YXJ0LCAnRFVQTElDQVRFX0tFWScsICdNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZScpO1xuICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwID0gbmV3IFlBTUxNYXAoY3R4LnNjaGVtYSk7XG4gICAgICAgICAgICAgICAgbWFwLmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHBhaXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFJhbmdlID0gKHZhbHVlTm9kZSA/PyBrZXlOb2RlKS5yYW5nZTtcbiAgICAgICAgICAgICAgICBtYXAucmFuZ2UgPSBba2V5Tm9kZS5yYW5nZVswXSwgZW5kUmFuZ2VbMV0sIGVuZFJhbmdlWzJdXTtcbiAgICAgICAgICAgICAgICBjb2xsLml0ZW1zLnB1c2gobWFwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9mZnNldCA9IHZhbHVlTm9kZSA/IHZhbHVlTm9kZS5yYW5nZVsyXSA6IHZhbHVlUHJvcHMuZW5kO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGV4cGVjdGVkRW5kID0gaXNNYXAgPyAnfScgOiAnXSc7XG4gICAgY29uc3QgW2NlLCAuLi5lZV0gPSBmYy5lbmQ7XG4gICAgbGV0IGNlUG9zID0gb2Zmc2V0O1xuICAgIGlmIChjZSAmJiBjZS5zb3VyY2UgPT09IGV4cGVjdGVkRW5kKVxuICAgICAgICBjZVBvcyA9IGNlLm9mZnNldCArIGNlLnNvdXJjZS5sZW5ndGg7XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBmY05hbWVbMF0udG9VcHBlckNhc2UoKSArIGZjTmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGNvbnN0IG1zZyA9IGF0Um9vdFxuICAgICAgICAgICAgPyBgJHtuYW1lfSBtdXN0IGVuZCB3aXRoIGEgJHtleHBlY3RlZEVuZH1gXG4gICAgICAgICAgICA6IGAke25hbWV9IGluIGJsb2NrIGNvbGxlY3Rpb24gbXVzdCBiZSBzdWZmaWNpZW50bHkgaW5kZW50ZWQgYW5kIGVuZCB3aXRoIGEgJHtleHBlY3RlZEVuZH1gO1xuICAgICAgICBvbkVycm9yKG9mZnNldCwgYXRSb290ID8gJ01JU1NJTkdfQ0hBUicgOiAnQkFEX0lOREVOVCcsIG1zZyk7XG4gICAgICAgIGlmIChjZSAmJiBjZS5zb3VyY2UubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgZWUudW5zaGlmdChjZSk7XG4gICAgfVxuICAgIGlmIChlZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGVuZCA9IHJlc29sdmVFbmQoZWUsIGNlUG9zLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgICAgICBpZiAoZW5kLmNvbW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChjb2xsLmNvbW1lbnQpXG4gICAgICAgICAgICAgICAgY29sbC5jb21tZW50ICs9ICdcXG4nICsgZW5kLmNvbW1lbnQ7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY29sbC5jb21tZW50ID0gZW5kLmNvbW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29sbC5yYW5nZSA9IFtmYy5vZmZzZXQsIGNlUG9zLCBlbmQub2Zmc2V0XTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbGwucmFuZ2UgPSBbZmMub2Zmc2V0LCBjZVBvcywgY2VQb3NdO1xuICAgIH1cbiAgICByZXR1cm4gY29sbDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUZsb3dDb2xsZWN0aW9uIH07XG4iLCAiaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcbmltcG9ydCB7IFlBTUxNYXAgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MTWFwLmpzJztcbmltcG9ydCB7IFlBTUxTZXEgfSBmcm9tICcuLi9ub2Rlcy9ZQU1MU2VxLmpzJztcbmltcG9ydCB7IHJlc29sdmVCbG9ja01hcCB9IGZyb20gJy4vcmVzb2x2ZS1ibG9jay1tYXAuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUJsb2NrU2VxIH0gZnJvbSAnLi9yZXNvbHZlLWJsb2NrLXNlcS5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRmxvd0NvbGxlY3Rpb24gfSBmcm9tICcuL3Jlc29sdmUtZmxvdy1jb2xsZWN0aW9uLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUNvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZ05hbWUsIHRhZykge1xuICAgIGNvbnN0IGNvbGwgPSB0b2tlbi50eXBlID09PSAnYmxvY2stbWFwJ1xuICAgICAgICA/IHJlc29sdmVCbG9ja01hcChDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnKVxuICAgICAgICA6IHRva2VuLnR5cGUgPT09ICdibG9jay1zZXEnXG4gICAgICAgICAgICA/IHJlc29sdmVCbG9ja1NlcShDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnKVxuICAgICAgICAgICAgOiByZXNvbHZlRmxvd0NvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZyk7XG4gICAgY29uc3QgQ29sbCA9IGNvbGwuY29uc3RydWN0b3I7XG4gICAgLy8gSWYgd2UgZ290IGEgdGFnTmFtZSBtYXRjaGluZyB0aGUgY2xhc3MsIG9yIHRoZSB0YWcgbmFtZSBpcyAnIScsXG4gICAgLy8gdGhlbiB1c2UgdGhlIHRhZ05hbWUgZnJvbSB0aGUgbm9kZSBjbGFzcyB1c2VkIHRvIGNyZWF0ZSBpdC5cbiAgICBpZiAodGFnTmFtZSA9PT0gJyEnIHx8IHRhZ05hbWUgPT09IENvbGwudGFnTmFtZSkge1xuICAgICAgICBjb2xsLnRhZyA9IENvbGwudGFnTmFtZTtcbiAgICAgICAgcmV0dXJuIGNvbGw7XG4gICAgfVxuICAgIGlmICh0YWdOYW1lKVxuICAgICAgICBjb2xsLnRhZyA9IHRhZ05hbWU7XG4gICAgcmV0dXJuIGNvbGw7XG59XG5mdW5jdGlvbiBjb21wb3NlQ29sbGVjdGlvbihDTiwgY3R4LCB0b2tlbiwgcHJvcHMsIG9uRXJyb3IpIHtcbiAgICBjb25zdCB0YWdUb2tlbiA9IHByb3BzLnRhZztcbiAgICBjb25zdCB0YWdOYW1lID0gIXRhZ1Rva2VuXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGN0eC5kaXJlY3RpdmVzLnRhZ05hbWUodGFnVG9rZW4uc291cmNlLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZykpO1xuICAgIGlmICh0b2tlbi50eXBlID09PSAnYmxvY2stc2VxJykge1xuICAgICAgICBjb25zdCB7IGFuY2hvciwgbmV3bGluZUFmdGVyUHJvcDogbmwgfSA9IHByb3BzO1xuICAgICAgICBjb25zdCBsYXN0UHJvcCA9IGFuY2hvciAmJiB0YWdUb2tlblxuICAgICAgICAgICAgPyBhbmNob3Iub2Zmc2V0ID4gdGFnVG9rZW4ub2Zmc2V0XG4gICAgICAgICAgICAgICAgPyBhbmNob3JcbiAgICAgICAgICAgICAgICA6IHRhZ1Rva2VuXG4gICAgICAgICAgICA6IChhbmNob3IgPz8gdGFnVG9rZW4pO1xuICAgICAgICBpZiAobGFzdFByb3AgJiYgKCFubCB8fCBubC5vZmZzZXQgPCBsYXN0UHJvcC5vZmZzZXQpKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ01pc3NpbmcgbmV3bGluZSBhZnRlciBibG9jayBzZXF1ZW5jZSBwcm9wcyc7XG4gICAgICAgICAgICBvbkVycm9yKGxhc3RQcm9wLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZXhwVHlwZSA9IHRva2VuLnR5cGUgPT09ICdibG9jay1tYXAnXG4gICAgICAgID8gJ21hcCdcbiAgICAgICAgOiB0b2tlbi50eXBlID09PSAnYmxvY2stc2VxJ1xuICAgICAgICAgICAgPyAnc2VxJ1xuICAgICAgICAgICAgOiB0b2tlbi5zdGFydC5zb3VyY2UgPT09ICd7J1xuICAgICAgICAgICAgICAgID8gJ21hcCdcbiAgICAgICAgICAgICAgICA6ICdzZXEnO1xuICAgIC8vIHNob3J0Y3V0OiBjaGVjayBpZiBpdCdzIGEgZ2VuZXJpYyBZQU1MTWFwIG9yIFlBTUxTZXFcbiAgICAvLyBiZWZvcmUganVtcGluZyBpbnRvIHRoZSBjdXN0b20gdGFnIGxvZ2ljLlxuICAgIGlmICghdGFnVG9rZW4gfHxcbiAgICAgICAgIXRhZ05hbWUgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJyEnIHx8XG4gICAgICAgICh0YWdOYW1lID09PSBZQU1MTWFwLnRhZ05hbWUgJiYgZXhwVHlwZSA9PT0gJ21hcCcpIHx8XG4gICAgICAgICh0YWdOYW1lID09PSBZQU1MU2VxLnRhZ05hbWUgJiYgZXhwVHlwZSA9PT0gJ3NlcScpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29sbGVjdGlvbihDTiwgY3R4LCB0b2tlbiwgb25FcnJvciwgdGFnTmFtZSk7XG4gICAgfVxuICAgIGxldCB0YWcgPSBjdHguc2NoZW1hLnRhZ3MuZmluZCh0ID0+IHQudGFnID09PSB0YWdOYW1lICYmIHQuY29sbGVjdGlvbiA9PT0gZXhwVHlwZSk7XG4gICAgaWYgKCF0YWcpIHtcbiAgICAgICAgY29uc3Qga3QgPSBjdHguc2NoZW1hLmtub3duVGFnc1t0YWdOYW1lXTtcbiAgICAgICAgaWYgKGt0ICYmIGt0LmNvbGxlY3Rpb24gPT09IGV4cFR5cGUpIHtcbiAgICAgICAgICAgIGN0eC5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGt0LCB7IGRlZmF1bHQ6IGZhbHNlIH0pKTtcbiAgICAgICAgICAgIHRhZyA9IGt0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGt0Py5jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcih0YWdUb2tlbiwgJ0JBRF9DT0xMRUNUSU9OX1RZUEUnLCBgJHtrdC50YWd9IHVzZWQgZm9yICR7ZXhwVHlwZX0gY29sbGVjdGlvbiwgYnV0IGV4cGVjdHMgJHtrdC5jb2xsZWN0aW9ufWAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIGBVbnJlc29sdmVkIHRhZzogJHt0YWdOYW1lfWAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVDb2xsZWN0aW9uKENOLCBjdHgsIHRva2VuLCBvbkVycm9yLCB0YWdOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb2xsID0gcmVzb2x2ZUNvbGxlY3Rpb24oQ04sIGN0eCwgdG9rZW4sIG9uRXJyb3IsIHRhZ05hbWUsIHRhZyk7XG4gICAgY29uc3QgcmVzID0gdGFnLnJlc29sdmU/Lihjb2xsLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZyksIGN0eC5vcHRpb25zKSA/PyBjb2xsO1xuICAgIGNvbnN0IG5vZGUgPSBpc05vZGUocmVzKVxuICAgICAgICA/IHJlc1xuICAgICAgICA6IG5ldyBTY2FsYXIocmVzKTtcbiAgICBub2RlLnJhbmdlID0gY29sbC5yYW5nZTtcbiAgICBub2RlLnRhZyA9IHRhZ05hbWU7XG4gICAgaWYgKHRhZz8uZm9ybWF0KVxuICAgICAgICBub2RlLmZvcm1hdCA9IHRhZy5mb3JtYXQ7XG4gICAgcmV0dXJuIG5vZGU7XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VDb2xsZWN0aW9uIH07XG4iLCAiaW1wb3J0IHsgU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvU2NhbGFyLmpzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUJsb2NrU2NhbGFyKGN0eCwgc2NhbGFyLCBvbkVycm9yKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBzY2FsYXIub2Zmc2V0O1xuICAgIGNvbnN0IGhlYWRlciA9IHBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoc2NhbGFyLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgIGlmICghaGVhZGVyKVxuICAgICAgICByZXR1cm4geyB2YWx1ZTogJycsIHR5cGU6IG51bGwsIGNvbW1lbnQ6ICcnLCByYW5nZTogW3N0YXJ0LCBzdGFydCwgc3RhcnRdIH07XG4gICAgY29uc3QgdHlwZSA9IGhlYWRlci5tb2RlID09PSAnPicgPyBTY2FsYXIuQkxPQ0tfRk9MREVEIDogU2NhbGFyLkJMT0NLX0xJVEVSQUw7XG4gICAgY29uc3QgbGluZXMgPSBzY2FsYXIuc291cmNlID8gc3BsaXRMaW5lcyhzY2FsYXIuc291cmNlKSA6IFtdO1xuICAgIC8vIGRldGVybWluZSB0aGUgZW5kIG9mIGNvbnRlbnQgJiBzdGFydCBvZiBjaG9tcGluZ1xuICAgIGxldCBjaG9tcFN0YXJ0ID0gbGluZXMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSBsaW5lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbGluZXNbaV1bMV07XG4gICAgICAgIGlmIChjb250ZW50ID09PSAnJyB8fCBjb250ZW50ID09PSAnXFxyJylcbiAgICAgICAgICAgIGNob21wU3RhcnQgPSBpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgLy8gc2hvcnRjdXQgZm9yIGVtcHR5IGNvbnRlbnRzXG4gICAgaWYgKGNob21wU3RhcnQgPT09IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBoZWFkZXIuY2hvbXAgPT09ICcrJyAmJiBsaW5lcy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/ICdcXG4nLnJlcGVhdChNYXRoLm1heCgxLCBsaW5lcy5sZW5ndGggLSAxKSlcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgIGxldCBlbmQgPSBzdGFydCArIGhlYWRlci5sZW5ndGg7XG4gICAgICAgIGlmIChzY2FsYXIuc291cmNlKVxuICAgICAgICAgICAgZW5kICs9IHNjYWxhci5zb3VyY2UubGVuZ3RoO1xuICAgICAgICByZXR1cm4geyB2YWx1ZSwgdHlwZSwgY29tbWVudDogaGVhZGVyLmNvbW1lbnQsIHJhbmdlOiBbc3RhcnQsIGVuZCwgZW5kXSB9O1xuICAgIH1cbiAgICAvLyBmaW5kIHRoZSBpbmRlbnRhdGlvbiBsZXZlbCB0byB0cmltIGZyb20gc3RhcnRcbiAgICBsZXQgdHJpbUluZGVudCA9IHNjYWxhci5pbmRlbnQgKyBoZWFkZXIuaW5kZW50O1xuICAgIGxldCBvZmZzZXQgPSBzY2FsYXIub2Zmc2V0ICsgaGVhZGVyLmxlbmd0aDtcbiAgICBsZXQgY29udGVudFN0YXJ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob21wU3RhcnQ7ICsraSkge1xuICAgICAgICBjb25zdCBbaW5kZW50LCBjb250ZW50XSA9IGxpbmVzW2ldO1xuICAgICAgICBpZiAoY29udGVudCA9PT0gJycgfHwgY29udGVudCA9PT0gJ1xccicpIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXIuaW5kZW50ID09PSAwICYmIGluZGVudC5sZW5ndGggPiB0cmltSW5kZW50KVxuICAgICAgICAgICAgICAgIHRyaW1JbmRlbnQgPSBpbmRlbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGVudC5sZW5ndGggPCB0cmltSW5kZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdCbG9jayBzY2FsYXJzIHdpdGggbW9yZS1pbmRlbnRlZCBsZWFkaW5nIGVtcHR5IGxpbmVzIG11c3QgdXNlIGFuIGV4cGxpY2l0IGluZGVudGF0aW9uIGluZGljYXRvcic7XG4gICAgICAgICAgICAgICAgb25FcnJvcihvZmZzZXQgKyBpbmRlbnQubGVuZ3RoLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGVhZGVyLmluZGVudCA9PT0gMClcbiAgICAgICAgICAgICAgICB0cmltSW5kZW50ID0gaW5kZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnRlbnRTdGFydCA9IGk7XG4gICAgICAgICAgICBpZiAodHJpbUluZGVudCA9PT0gMCAmJiAhY3R4LmF0Um9vdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnQmxvY2sgc2NhbGFyIHZhbHVlcyBpbiBjb2xsZWN0aW9ucyBtdXN0IGJlIGluZGVudGVkJztcbiAgICAgICAgICAgICAgICBvbkVycm9yKG9mZnNldCwgJ0JBRF9JTkRFTlQnLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCArPSBpbmRlbnQubGVuZ3RoICsgY29udGVudC5sZW5ndGggKyAxO1xuICAgIH1cbiAgICAvLyBpbmNsdWRlIHRyYWlsaW5nIG1vcmUtaW5kZW50ZWQgZW1wdHkgbGluZXMgaW4gY29udGVudFxuICAgIGZvciAobGV0IGkgPSBsaW5lcy5sZW5ndGggLSAxOyBpID49IGNob21wU3RhcnQ7IC0taSkge1xuICAgICAgICBpZiAobGluZXNbaV1bMF0ubGVuZ3RoID4gdHJpbUluZGVudClcbiAgICAgICAgICAgIGNob21wU3RhcnQgPSBpICsgMTtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gJyc7XG4gICAgbGV0IHNlcCA9ICcnO1xuICAgIGxldCBwcmV2TW9yZUluZGVudGVkID0gZmFsc2U7XG4gICAgLy8gbGVhZGluZyB3aGl0ZXNwYWNlIGlzIGtlcHQgaW50YWN0XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZW50U3RhcnQ7ICsraSlcbiAgICAgICAgdmFsdWUgKz0gbGluZXNbaV1bMF0uc2xpY2UodHJpbUluZGVudCkgKyAnXFxuJztcbiAgICBmb3IgKGxldCBpID0gY29udGVudFN0YXJ0OyBpIDwgY2hvbXBTdGFydDsgKytpKSB7XG4gICAgICAgIGxldCBbaW5kZW50LCBjb250ZW50XSA9IGxpbmVzW2ldO1xuICAgICAgICBvZmZzZXQgKz0gaW5kZW50Lmxlbmd0aCArIGNvbnRlbnQubGVuZ3RoICsgMTtcbiAgICAgICAgY29uc3QgY3JsZiA9IGNvbnRlbnRbY29udGVudC5sZW5ndGggLSAxXSA9PT0gJ1xccic7XG4gICAgICAgIGlmIChjcmxmKVxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc2xpY2UoMCwgLTEpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgYWxyZWFkeSBjYXVnaHQgaW4gbGV4ZXIgKi9cbiAgICAgICAgaWYgKGNvbnRlbnQgJiYgaW5kZW50Lmxlbmd0aCA8IHRyaW1JbmRlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNyYyA9IGhlYWRlci5pbmRlbnRcbiAgICAgICAgICAgICAgICA/ICdleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3InXG4gICAgICAgICAgICAgICAgOiAnZmlyc3QgbGluZSc7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYEJsb2NrIHNjYWxhciBsaW5lcyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtzcmN9YDtcbiAgICAgICAgICAgIG9uRXJyb3Iob2Zmc2V0IC0gY29udGVudC5sZW5ndGggLSAoY3JsZiA/IDIgOiAxKSwgJ0JBRF9JTkRFTlQnLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGluZGVudCA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBTY2FsYXIuQkxPQ0tfTElURVJBTCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgaW5kZW50LnNsaWNlKHRyaW1JbmRlbnQpICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluZGVudC5sZW5ndGggPiB0cmltSW5kZW50IHx8IGNvbnRlbnRbMF0gPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAvLyBtb3JlLWluZGVudGVkIGNvbnRlbnQgd2l0aGluIGEgZm9sZGVkIGJsb2NrXG4gICAgICAgICAgICBpZiAoc2VwID09PSAnICcpXG4gICAgICAgICAgICAgICAgc2VwID0gJ1xcbic7XG4gICAgICAgICAgICBlbHNlIGlmICghcHJldk1vcmVJbmRlbnRlZCAmJiBzZXAgPT09ICdcXG4nKVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG5cXG4nO1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgaW5kZW50LnNsaWNlKHRyaW1JbmRlbnQpICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICAgICAgcHJldk1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgIC8vIGVtcHR5IGxpbmVcbiAgICAgICAgICAgIGlmIChzZXAgPT09ICdcXG4nKVxuICAgICAgICAgICAgICAgIHZhbHVlICs9ICdcXG4nO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgKz0gc2VwICsgY29udGVudDtcbiAgICAgICAgICAgIHNlcCA9ICcgJztcbiAgICAgICAgICAgIHByZXZNb3JlSW5kZW50ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2ggKGhlYWRlci5jaG9tcCkge1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBjaG9tcFN0YXJ0OyBpIDwgbGluZXMubGVuZ3RoOyArK2kpXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gJ1xcbicgKyBsaW5lc1tpXVswXS5zbGljZSh0cmltSW5kZW50KTtcbiAgICAgICAgICAgIGlmICh2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSAhPT0gJ1xcbicpXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gJ1xcbic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHZhbHVlICs9ICdcXG4nO1xuICAgIH1cbiAgICBjb25zdCBlbmQgPSBzdGFydCArIGhlYWRlci5sZW5ndGggKyBzY2FsYXIuc291cmNlLmxlbmd0aDtcbiAgICByZXR1cm4geyB2YWx1ZSwgdHlwZSwgY29tbWVudDogaGVhZGVyLmNvbW1lbnQsIHJhbmdlOiBbc3RhcnQsIGVuZCwgZW5kXSB9O1xufVxuZnVuY3Rpb24gcGFyc2VCbG9ja1NjYWxhckhlYWRlcih7IG9mZnNldCwgcHJvcHMgfSwgc3RyaWN0LCBvbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmIHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgaWYgKHByb3BzWzBdLnR5cGUgIT09ICdibG9jay1zY2FsYXItaGVhZGVyJykge1xuICAgICAgICBvbkVycm9yKHByb3BzWzBdLCAnSU1QT1NTSUJMRScsICdCbG9jayBzY2FsYXIgaGVhZGVyIG5vdCBmb3VuZCcpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IHByb3BzWzBdO1xuICAgIGNvbnN0IG1vZGUgPSBzb3VyY2VbMF07XG4gICAgbGV0IGluZGVudCA9IDA7XG4gICAgbGV0IGNob21wID0gJyc7XG4gICAgbGV0IGVycm9yID0gLTE7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzb3VyY2UubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgY2ggPSBzb3VyY2VbaV07XG4gICAgICAgIGlmICghY2hvbXAgJiYgKGNoID09PSAnLScgfHwgY2ggPT09ICcrJykpXG4gICAgICAgICAgICBjaG9tcCA9IGNoO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBOdW1iZXIoY2gpO1xuICAgICAgICAgICAgaWYgKCFpbmRlbnQgJiYgbilcbiAgICAgICAgICAgICAgICBpbmRlbnQgPSBuO1xuICAgICAgICAgICAgZWxzZSBpZiAoZXJyb3IgPT09IC0xKVxuICAgICAgICAgICAgICAgIGVycm9yID0gb2Zmc2V0ICsgaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXJyb3IgIT09IC0xKVxuICAgICAgICBvbkVycm9yKGVycm9yLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBCbG9jayBzY2FsYXIgaGVhZGVyIGluY2x1ZGVzIGV4dHJhIGNoYXJhY3RlcnM6ICR7c291cmNlfWApO1xuICAgIGxldCBoYXNTcGFjZSA9IGZhbHNlO1xuICAgIGxldCBjb21tZW50ID0gJyc7XG4gICAgbGV0IGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwcm9wcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHByb3BzW2ldO1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICBoYXNTcGFjZSA9IHRydWU7XG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgbGVuZ3RoICs9IHRva2VuLnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgICAgICBpZiAoc3RyaWN0ICYmICFoYXNTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ0NvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMnO1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnTUlTU0lOR19DSEFSJywgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxlbmd0aCArPSB0b2tlbi5zb3VyY2UubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbW1lbnQgPSB0b2tlbi5zb3VyY2Uuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgIG9uRXJyb3IodG9rZW4sICdVTkVYUEVDVEVEX1RPS0VOJywgdG9rZW4ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgbGVuZ3RoICs9IHRva2VuLnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0b2tlbiBpbiBibG9jayBzY2FsYXIgaGVhZGVyOiAke3Rva2VuLnR5cGV9YDtcbiAgICAgICAgICAgICAgICBvbkVycm9yKHRva2VuLCAnVU5FWFBFQ1RFRF9UT0tFTicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRzID0gdG9rZW4uc291cmNlO1xuICAgICAgICAgICAgICAgIGlmICh0cyAmJiB0eXBlb2YgdHMgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gdHMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IG1vZGUsIGluZGVudCwgY2hvbXAsIGNvbW1lbnQsIGxlbmd0aCB9O1xufVxuLyoqIEByZXR1cm5zIEFycmF5IG9mIGxpbmVzIHNwbGl0IHVwIGFzIGBbaW5kZW50LCBjb250ZW50XWAgKi9cbmZ1bmN0aW9uIHNwbGl0TGluZXMoc291cmNlKSB7XG4gICAgY29uc3Qgc3BsaXQgPSBzb3VyY2Uuc3BsaXQoL1xcbiggKikvKTtcbiAgICBjb25zdCBmaXJzdCA9IHNwbGl0WzBdO1xuICAgIGNvbnN0IG0gPSBmaXJzdC5tYXRjaCgvXiggKikvKTtcbiAgICBjb25zdCBsaW5lMCA9IG0/LlsxXVxuICAgICAgICA/IFttWzFdLCBmaXJzdC5zbGljZShtWzFdLmxlbmd0aCldXG4gICAgICAgIDogWycnLCBmaXJzdF07XG4gICAgY29uc3QgbGluZXMgPSBbbGluZTBdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc3BsaXQubGVuZ3RoOyBpICs9IDIpXG4gICAgICAgIGxpbmVzLnB1c2goW3NwbGl0W2ldLCBzcGxpdFtpICsgMV1dKTtcbiAgICByZXR1cm4gbGluZXM7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVCbG9ja1NjYWxhciB9O1xuIiwgImltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVGbG93U2NhbGFyKHNjYWxhciwgc3RyaWN0LCBvbkVycm9yKSB7XG4gICAgY29uc3QgeyBvZmZzZXQsIHR5cGUsIHNvdXJjZSwgZW5kIH0gPSBzY2FsYXI7XG4gICAgbGV0IF90eXBlO1xuICAgIGxldCB2YWx1ZTtcbiAgICBjb25zdCBfb25FcnJvciA9IChyZWwsIGNvZGUsIG1zZykgPT4gb25FcnJvcihvZmZzZXQgKyByZWwsIGNvZGUsIG1zZyk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgICAgICBfdHlwZSA9IFNjYWxhci5QTEFJTjtcbiAgICAgICAgICAgIHZhbHVlID0gcGxhaW5WYWx1ZShzb3VyY2UsIF9vbkVycm9yKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICBfdHlwZSA9IFNjYWxhci5RVU9URV9TSU5HTEU7XG4gICAgICAgICAgICB2YWx1ZSA9IHNpbmdsZVF1b3RlZFZhbHVlKHNvdXJjZSwgX29uRXJyb3IpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIF90eXBlID0gU2NhbGFyLlFVT1RFX0RPVUJMRTtcbiAgICAgICAgICAgIHZhbHVlID0gZG91YmxlUXVvdGVkVmFsdWUoc291cmNlLCBfb25FcnJvcik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG9uRXJyb3Ioc2NhbGFyLCAnVU5FWFBFQ1RFRF9UT0tFTicsIGBFeHBlY3RlZCBhIGZsb3cgc2NhbGFyIHZhbHVlLCBidXQgZm91bmQ6ICR7dHlwZX1gKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgICAgICAgICAgY29tbWVudDogJycsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFtvZmZzZXQsIG9mZnNldCArIHNvdXJjZS5sZW5ndGgsIG9mZnNldCArIHNvdXJjZS5sZW5ndGhdXG4gICAgICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZUVuZCA9IG9mZnNldCArIHNvdXJjZS5sZW5ndGg7XG4gICAgY29uc3QgcmUgPSByZXNvbHZlRW5kKGVuZCwgdmFsdWVFbmQsIHN0cmljdCwgb25FcnJvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHR5cGU6IF90eXBlLFxuICAgICAgICBjb21tZW50OiByZS5jb21tZW50LFxuICAgICAgICByYW5nZTogW29mZnNldCwgdmFsdWVFbmQsIHJlLm9mZnNldF1cbiAgICB9O1xufVxuZnVuY3Rpb24gcGxhaW5WYWx1ZShzb3VyY2UsIG9uRXJyb3IpIHtcbiAgICBsZXQgYmFkQ2hhciA9ICcnO1xuICAgIHN3aXRjaCAoc291cmNlWzBdKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgICAgIGNhc2UgJ1xcdCc6XG4gICAgICAgICAgICBiYWRDaGFyID0gJ2EgdGFiIGNoYXJhY3Rlcic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnLCc6XG4gICAgICAgICAgICBiYWRDaGFyID0gJ2Zsb3cgaW5kaWNhdG9yIGNoYXJhY3RlciAsJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICclJzpcbiAgICAgICAgICAgIGJhZENoYXIgPSAnZGlyZWN0aXZlIGluZGljYXRvciBjaGFyYWN0ZXIgJSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgIGNhc2UgJz4nOiB7XG4gICAgICAgICAgICBiYWRDaGFyID0gYGJsb2NrIHNjYWxhciBpbmRpY2F0b3IgJHtzb3VyY2VbMF19YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ0AnOlxuICAgICAgICBjYXNlICdgJzoge1xuICAgICAgICAgICAgYmFkQ2hhciA9IGByZXNlcnZlZCBjaGFyYWN0ZXIgJHtzb3VyY2VbMF19YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChiYWRDaGFyKVxuICAgICAgICBvbkVycm9yKDAsICdCQURfU0NBTEFSX1NUQVJUJywgYFBsYWluIHZhbHVlIGNhbm5vdCBzdGFydCB3aXRoICR7YmFkQ2hhcn1gKTtcbiAgICByZXR1cm4gZm9sZExpbmVzKHNvdXJjZSk7XG59XG5mdW5jdGlvbiBzaW5nbGVRdW90ZWRWYWx1ZShzb3VyY2UsIG9uRXJyb3IpIHtcbiAgICBpZiAoc291cmNlW3NvdXJjZS5sZW5ndGggLSAxXSAhPT0gXCInXCIgfHwgc291cmNlLmxlbmd0aCA9PT0gMSlcbiAgICAgICAgb25FcnJvcihzb3VyY2UubGVuZ3RoLCAnTUlTU0lOR19DSEFSJywgXCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlXCIpO1xuICAgIHJldHVybiBmb2xkTGluZXMoc291cmNlLnNsaWNlKDEsIC0xKSkucmVwbGFjZSgvJycvZywgXCInXCIpO1xufVxuZnVuY3Rpb24gZm9sZExpbmVzKHNvdXJjZSkge1xuICAgIC8qKlxuICAgICAqIFRoZSBuZWdhdGl2ZSBsb29rYmVoaW5kIGhlcmUgYW5kIGluIHRoZSBgcmVgIFJlZ0V4cCBpcyB0b1xuICAgICAqIHByZXZlbnQgY2F1c2luZyBhIHBvbHlub21pYWwgc2VhcmNoIHRpbWUgaW4gY2VydGFpbiBjYXNlcy5cbiAgICAgKlxuICAgICAqIFRoZSB0cnktY2F0Y2ggaXMgZm9yIFNhZmFyaSwgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHRoaXMgeWV0OlxuICAgICAqIGh0dHBzOi8vY2FuaXVzZS5jb20vanMtcmVnZXhwLWxvb2tiZWhpbmRcbiAgICAgKi9cbiAgICBsZXQgZmlyc3QsIGxpbmU7XG4gICAgdHJ5IHtcbiAgICAgICAgZmlyc3QgPSBuZXcgUmVnRXhwKCcoLio/KSg/PCFbIFxcdF0pWyBcXHRdKlxccj9cXG4nLCAnc3knKTtcbiAgICAgICAgbGluZSA9IG5ldyBSZWdFeHAoJ1sgXFx0XSooLio/KSg/Oig/PCFbIFxcdF0pWyBcXHRdKik/XFxyP1xcbicsICdzeScpO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIGZpcnN0ID0gLyguKj8pWyBcXHRdKlxccj9cXG4vc3k7XG4gICAgICAgIGxpbmUgPSAvWyBcXHRdKiguKj8pWyBcXHRdKlxccj9cXG4vc3k7XG4gICAgfVxuICAgIGxldCBtYXRjaCA9IGZpcnN0LmV4ZWMoc291cmNlKTtcbiAgICBpZiAoIW1hdGNoKVxuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIGxldCByZXMgPSBtYXRjaFsxXTtcbiAgICBsZXQgc2VwID0gJyAnO1xuICAgIGxldCBwb3MgPSBmaXJzdC5sYXN0SW5kZXg7XG4gICAgbGluZS5sYXN0SW5kZXggPSBwb3M7XG4gICAgd2hpbGUgKChtYXRjaCA9IGxpbmUuZXhlYyhzb3VyY2UpKSkge1xuICAgICAgICBpZiAobWF0Y2hbMV0gPT09ICcnKSB7XG4gICAgICAgICAgICBpZiAoc2VwID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICByZXMgKz0gc2VwO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHNlcCA9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHNlcCArIG1hdGNoWzFdO1xuICAgICAgICAgICAgc2VwID0gJyAnO1xuICAgICAgICB9XG4gICAgICAgIHBvcyA9IGxpbmUubGFzdEluZGV4O1xuICAgIH1cbiAgICBjb25zdCBsYXN0ID0gL1sgXFx0XSooLiopL3N5O1xuICAgIGxhc3QubGFzdEluZGV4ID0gcG9zO1xuICAgIG1hdGNoID0gbGFzdC5leGVjKHNvdXJjZSk7XG4gICAgcmV0dXJuIHJlcyArIHNlcCArIChtYXRjaD8uWzFdID8/ICcnKTtcbn1cbmZ1bmN0aW9uIGRvdWJsZVF1b3RlZFZhbHVlKHNvdXJjZSwgb25FcnJvcikge1xuICAgIGxldCByZXMgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHNvdXJjZS5sZW5ndGggLSAxOyArK2kpIHtcbiAgICAgICAgY29uc3QgY2ggPSBzb3VyY2VbaV07XG4gICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2kgKyAxXSA9PT0gJ1xcbicpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGNoID09PSAnXFxuJykge1xuICAgICAgICAgICAgY29uc3QgeyBmb2xkLCBvZmZzZXQgfSA9IGZvbGROZXdsaW5lKHNvdXJjZSwgaSk7XG4gICAgICAgICAgICByZXMgKz0gZm9sZDtcbiAgICAgICAgICAgIGkgPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgbGV0IG5leHQgPSBzb3VyY2VbKytpXTtcbiAgICAgICAgICAgIGNvbnN0IGNjID0gZXNjYXBlQ29kZXNbbmV4dF07XG4gICAgICAgICAgICBpZiAoY2MpXG4gICAgICAgICAgICAgICAgcmVzICs9IGNjO1xuICAgICAgICAgICAgZWxzZSBpZiAobmV4dCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAvLyBza2lwIGVzY2FwZWQgbmV3bGluZXMsIGJ1dCBzdGlsbCB0cmltIHRoZSBmb2xsb3dpbmcgbGluZVxuICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbaSArIDFdO1xuICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0ID09PSAnICcgfHwgbmV4dCA9PT0gJ1xcdCcpXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbKytpICsgMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChuZXh0ID09PSAnXFxyJyAmJiBzb3VyY2VbaSArIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIC8vIHNraXAgZXNjYXBlZCBDUkxGIG5ld2xpbmVzLCBidXQgc3RpbGwgdHJpbSB0aGUgZm9sbG93aW5nIGxpbmVcbiAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlWysraSArIDFdO1xuICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0ID09PSAnICcgfHwgbmV4dCA9PT0gJ1xcdCcpXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBzb3VyY2VbKytpICsgMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChuZXh0ID09PSAneCcgfHwgbmV4dCA9PT0gJ3UnIHx8IG5leHQgPT09ICdVJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHsgeDogMiwgdTogNCwgVTogOCB9W25leHRdO1xuICAgICAgICAgICAgICAgIHJlcyArPSBwYXJzZUNoYXJDb2RlKHNvdXJjZSwgaSArIDEsIGxlbmd0aCwgb25FcnJvcik7XG4gICAgICAgICAgICAgICAgaSArPSBsZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBzb3VyY2Uuc3Vic3RyKGkgLSAxLCAyKTtcbiAgICAgICAgICAgICAgICBvbkVycm9yKGkgLSAxLCAnQkFEX0RRX0VTQ0FQRScsIGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke3Jhd31gKTtcbiAgICAgICAgICAgICAgICByZXMgKz0gcmF3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAvLyB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2VcbiAgICAgICAgICAgIGNvbnN0IHdzU3RhcnQgPSBpO1xuICAgICAgICAgICAgbGV0IG5leHQgPSBzb3VyY2VbaSArIDFdO1xuICAgICAgICAgICAgd2hpbGUgKG5leHQgPT09ICcgJyB8fCBuZXh0ID09PSAnXFx0JylcbiAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlWysraSArIDFdO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09ICdcXG4nICYmICEobmV4dCA9PT0gJ1xccicgJiYgc291cmNlW2kgKyAyXSA9PT0gJ1xcbicpKVxuICAgICAgICAgICAgICAgIHJlcyArPSBpID4gd3NTdGFydCA/IHNvdXJjZS5zbGljZSh3c1N0YXJ0LCBpICsgMSkgOiBjaDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlcyArPSBjaDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc291cmNlW3NvdXJjZS5sZW5ndGggLSAxXSAhPT0gJ1wiJyB8fCBzb3VyY2UubGVuZ3RoID09PSAxKVxuICAgICAgICBvbkVycm9yKHNvdXJjZS5sZW5ndGgsICdNSVNTSU5HX0NIQVInLCAnTWlzc2luZyBjbG9zaW5nIFwicXVvdGUnKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBGb2xkIGEgc2luZ2xlIG5ld2xpbmUgaW50byBhIHNwYWNlLCBtdWx0aXBsZSBuZXdsaW5lcyB0byBOIC0gMSBuZXdsaW5lcy5cbiAqIFByZXN1bWVzIGBzb3VyY2Vbb2Zmc2V0XSA9PT0gJ1xcbidgXG4gKi9cbmZ1bmN0aW9uIGZvbGROZXdsaW5lKHNvdXJjZSwgb2Zmc2V0KSB7XG4gICAgbGV0IGZvbGQgPSAnJztcbiAgICBsZXQgY2ggPSBzb3VyY2Vbb2Zmc2V0ICsgMV07XG4gICAgd2hpbGUgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnIHx8IGNoID09PSAnXFxuJyB8fCBjaCA9PT0gJ1xccicpIHtcbiAgICAgICAgaWYgKGNoID09PSAnXFxyJyAmJiBzb3VyY2Vbb2Zmc2V0ICsgMl0gIT09ICdcXG4nKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICBmb2xkICs9ICdcXG4nO1xuICAgICAgICBvZmZzZXQgKz0gMTtcbiAgICAgICAgY2ggPSBzb3VyY2Vbb2Zmc2V0ICsgMV07XG4gICAgfVxuICAgIGlmICghZm9sZClcbiAgICAgICAgZm9sZCA9ICcgJztcbiAgICByZXR1cm4geyBmb2xkLCBvZmZzZXQgfTtcbn1cbmNvbnN0IGVzY2FwZUNvZGVzID0ge1xuICAgICcwJzogJ1xcMCcsIC8vIG51bGwgY2hhcmFjdGVyXG4gICAgYTogJ1xceDA3JywgLy8gYmVsbCBjaGFyYWN0ZXJcbiAgICBiOiAnXFxiJywgLy8gYmFja3NwYWNlXG4gICAgZTogJ1xceDFiJywgLy8gZXNjYXBlIGNoYXJhY3RlclxuICAgIGY6ICdcXGYnLCAvLyBmb3JtIGZlZWRcbiAgICBuOiAnXFxuJywgLy8gbGluZSBmZWVkXG4gICAgcjogJ1xccicsIC8vIGNhcnJpYWdlIHJldHVyblxuICAgIHQ6ICdcXHQnLCAvLyBob3Jpem9udGFsIHRhYlxuICAgIHY6ICdcXHYnLCAvLyB2ZXJ0aWNhbCB0YWJcbiAgICBOOiAnXFx1MDA4NScsIC8vIFVuaWNvZGUgbmV4dCBsaW5lXG4gICAgXzogJ1xcdTAwYTAnLCAvLyBVbmljb2RlIG5vbi1icmVha2luZyBzcGFjZVxuICAgIEw6ICdcXHUyMDI4JywgLy8gVW5pY29kZSBsaW5lIHNlcGFyYXRvclxuICAgIFA6ICdcXHUyMDI5JywgLy8gVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yXG4gICAgJyAnOiAnICcsXG4gICAgJ1wiJzogJ1wiJyxcbiAgICAnLyc6ICcvJyxcbiAgICAnXFxcXCc6ICdcXFxcJyxcbiAgICAnXFx0JzogJ1xcdCdcbn07XG5mdW5jdGlvbiBwYXJzZUNoYXJDb2RlKHNvdXJjZSwgb2Zmc2V0LCBsZW5ndGgsIG9uRXJyb3IpIHtcbiAgICBjb25zdCBjYyA9IHNvdXJjZS5zdWJzdHIob2Zmc2V0LCBsZW5ndGgpO1xuICAgIGNvbnN0IG9rID0gY2MubGVuZ3RoID09PSBsZW5ndGggJiYgL15bMC05YS1mQS1GXSskLy50ZXN0KGNjKTtcbiAgICBjb25zdCBjb2RlID0gb2sgPyBwYXJzZUludChjYywgMTYpIDogTmFOO1xuICAgIGlmIChpc05hTihjb2RlKSkge1xuICAgICAgICBjb25zdCByYXcgPSBzb3VyY2Uuc3Vic3RyKG9mZnNldCAtIDIsIGxlbmd0aCArIDIpO1xuICAgICAgICBvbkVycm9yKG9mZnNldCAtIDIsICdCQURfRFFfRVNDQVBFJywgYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7cmF3fWApO1xuICAgICAgICByZXR1cm4gcmF3O1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSk7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVGbG93U2NhbGFyIH07XG4iLCAiaW1wb3J0IHsgaXNTY2FsYXIsIFNDQUxBUiB9IGZyb20gJy4uL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IFNjYWxhciB9IGZyb20gJy4uL25vZGVzL1NjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlQmxvY2tTY2FsYXIgfSBmcm9tICcuL3Jlc29sdmUtYmxvY2stc2NhbGFyLmpzJztcbmltcG9ydCB7IHJlc29sdmVGbG93U2NhbGFyIH0gZnJvbSAnLi9yZXNvbHZlLWZsb3ctc2NhbGFyLmpzJztcblxuZnVuY3Rpb24gY29tcG9zZVNjYWxhcihjdHgsIHRva2VuLCB0YWdUb2tlbiwgb25FcnJvcikge1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGUsIGNvbW1lbnQsIHJhbmdlIH0gPSB0b2tlbi50eXBlID09PSAnYmxvY2stc2NhbGFyJ1xuICAgICAgICA/IHJlc29sdmVCbG9ja1NjYWxhcihjdHgsIHRva2VuLCBvbkVycm9yKVxuICAgICAgICA6IHJlc29sdmVGbG93U2NhbGFyKHRva2VuLCBjdHgub3B0aW9ucy5zdHJpY3QsIG9uRXJyb3IpO1xuICAgIGNvbnN0IHRhZ05hbWUgPSB0YWdUb2tlblxuICAgICAgICA/IGN0eC5kaXJlY3RpdmVzLnRhZ05hbWUodGFnVG9rZW4uc291cmNlLCBtc2cgPT4gb25FcnJvcih0YWdUb2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZykpXG4gICAgICAgIDogbnVsbDtcbiAgICBsZXQgdGFnO1xuICAgIGlmIChjdHgub3B0aW9ucy5zdHJpbmdLZXlzICYmIGN0eC5hdEtleSkge1xuICAgICAgICB0YWcgPSBjdHguc2NoZW1hW1NDQUxBUl07XG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ05hbWUpXG4gICAgICAgIHRhZyA9IGZpbmRTY2FsYXJUYWdCeU5hbWUoY3R4LnNjaGVtYSwgdmFsdWUsIHRhZ05hbWUsIHRhZ1Rva2VuLCBvbkVycm9yKTtcbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSAnc2NhbGFyJylcbiAgICAgICAgdGFnID0gZmluZFNjYWxhclRhZ0J5VGVzdChjdHgsIHZhbHVlLCB0b2tlbiwgb25FcnJvcik7XG4gICAgZWxzZVxuICAgICAgICB0YWcgPSBjdHguc2NoZW1hW1NDQUxBUl07XG4gICAgbGV0IHNjYWxhcjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXMgPSB0YWcucmVzb2x2ZSh2YWx1ZSwgbXNnID0+IG9uRXJyb3IodGFnVG9rZW4gPz8gdG9rZW4sICdUQUdfUkVTT0xWRV9GQUlMRUQnLCBtc2cpLCBjdHgub3B0aW9ucyk7XG4gICAgICAgIHNjYWxhciA9IGlzU2NhbGFyKHJlcykgPyByZXMgOiBuZXcgU2NhbGFyKHJlcyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBtc2cgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIG9uRXJyb3IodGFnVG9rZW4gPz8gdG9rZW4sICdUQUdfUkVTT0xWRV9GQUlMRUQnLCBtc2cpO1xuICAgICAgICBzY2FsYXIgPSBuZXcgU2NhbGFyKHZhbHVlKTtcbiAgICB9XG4gICAgc2NhbGFyLnJhbmdlID0gcmFuZ2U7XG4gICAgc2NhbGFyLnNvdXJjZSA9IHZhbHVlO1xuICAgIGlmICh0eXBlKVxuICAgICAgICBzY2FsYXIudHlwZSA9IHR5cGU7XG4gICAgaWYgKHRhZ05hbWUpXG4gICAgICAgIHNjYWxhci50YWcgPSB0YWdOYW1lO1xuICAgIGlmICh0YWcuZm9ybWF0KVxuICAgICAgICBzY2FsYXIuZm9ybWF0ID0gdGFnLmZvcm1hdDtcbiAgICBpZiAoY29tbWVudClcbiAgICAgICAgc2NhbGFyLmNvbW1lbnQgPSBjb21tZW50O1xuICAgIHJldHVybiBzY2FsYXI7XG59XG5mdW5jdGlvbiBmaW5kU2NhbGFyVGFnQnlOYW1lKHNjaGVtYSwgdmFsdWUsIHRhZ05hbWUsIHRhZ1Rva2VuLCBvbkVycm9yKSB7XG4gICAgaWYgKHRhZ05hbWUgPT09ICchJylcbiAgICAgICAgcmV0dXJuIHNjaGVtYVtTQ0FMQVJdOyAvLyBub24tc3BlY2lmaWMgdGFnXG4gICAgY29uc3QgbWF0Y2hXaXRoVGVzdCA9IFtdO1xuICAgIGZvciAoY29uc3QgdGFnIG9mIHNjaGVtYS50YWdzKSB7XG4gICAgICAgIGlmICghdGFnLmNvbGxlY3Rpb24gJiYgdGFnLnRhZyA9PT0gdGFnTmFtZSkge1xuICAgICAgICAgICAgaWYgKHRhZy5kZWZhdWx0ICYmIHRhZy50ZXN0KVxuICAgICAgICAgICAgICAgIG1hdGNoV2l0aFRlc3QucHVzaCh0YWcpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCB0YWcgb2YgbWF0Y2hXaXRoVGVzdClcbiAgICAgICAgaWYgKHRhZy50ZXN0Py50ZXN0KHZhbHVlKSlcbiAgICAgICAgICAgIHJldHVybiB0YWc7XG4gICAgY29uc3Qga3QgPSBzY2hlbWEua25vd25UYWdzW3RhZ05hbWVdO1xuICAgIGlmIChrdCAmJiAha3QuY29sbGVjdGlvbikge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUga25vd24gdGFnIGlzIGF2YWlsYWJsZSBmb3Igc3RyaW5naWZ5aW5nLFxuICAgICAgICAvLyBidXQgZG9lcyBub3QgZ2V0IHVzZWQgYnkgZGVmYXVsdC5cbiAgICAgICAgc2NoZW1hLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKHt9LCBrdCwgeyBkZWZhdWx0OiBmYWxzZSwgdGVzdDogdW5kZWZpbmVkIH0pKTtcbiAgICAgICAgcmV0dXJuIGt0O1xuICAgIH1cbiAgICBvbkVycm9yKHRhZ1Rva2VuLCAnVEFHX1JFU09MVkVfRkFJTEVEJywgYFVucmVzb2x2ZWQgdGFnOiAke3RhZ05hbWV9YCwgdGFnTmFtZSAhPT0gJ3RhZzp5YW1sLm9yZywyMDAyOnN0cicpO1xuICAgIHJldHVybiBzY2hlbWFbU0NBTEFSXTtcbn1cbmZ1bmN0aW9uIGZpbmRTY2FsYXJUYWdCeVRlc3QoeyBhdEtleSwgZGlyZWN0aXZlcywgc2NoZW1hIH0sIHZhbHVlLCB0b2tlbiwgb25FcnJvcikge1xuICAgIGNvbnN0IHRhZyA9IHNjaGVtYS50YWdzLmZpbmQodGFnID0+ICh0YWcuZGVmYXVsdCA9PT0gdHJ1ZSB8fCAoYXRLZXkgJiYgdGFnLmRlZmF1bHQgPT09ICdrZXknKSkgJiZcbiAgICAgICAgdGFnLnRlc3Q/LnRlc3QodmFsdWUpKSB8fCBzY2hlbWFbU0NBTEFSXTtcbiAgICBpZiAoc2NoZW1hLmNvbXBhdCkge1xuICAgICAgICBjb25zdCBjb21wYXQgPSBzY2hlbWEuY29tcGF0LmZpbmQodGFnID0+IHRhZy5kZWZhdWx0ICYmIHRhZy50ZXN0Py50ZXN0KHZhbHVlKSkgPz9cbiAgICAgICAgICAgIHNjaGVtYVtTQ0FMQVJdO1xuICAgICAgICBpZiAodGFnLnRhZyAhPT0gY29tcGF0LnRhZykge1xuICAgICAgICAgICAgY29uc3QgdHMgPSBkaXJlY3RpdmVzLnRhZ1N0cmluZyh0YWcudGFnKTtcbiAgICAgICAgICAgIGNvbnN0IGNzID0gZGlyZWN0aXZlcy50YWdTdHJpbmcoY29tcGF0LnRhZyk7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBgVmFsdWUgbWF5IGJlIHBhcnNlZCBhcyBlaXRoZXIgJHt0c30gb3IgJHtjc31gO1xuICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1RBR19SRVNPTFZFX0ZBSUxFRCcsIG1zZywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cblxuZXhwb3J0IHsgY29tcG9zZVNjYWxhciB9O1xuIiwgImZ1bmN0aW9uIGVtcHR5U2NhbGFyUG9zaXRpb24ob2Zmc2V0LCBiZWZvcmUsIHBvcykge1xuICAgIGlmIChiZWZvcmUpIHtcbiAgICAgICAgaWYgKHBvcyA9PT0gbnVsbClcbiAgICAgICAgICAgIHBvcyA9IGJlZm9yZS5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSBwb3MgLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgbGV0IHN0ID0gYmVmb3JlW2ldO1xuICAgICAgICAgICAgc3dpdGNoIChzdC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLT0gc3Quc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUZWNobmljYWxseSwgYW4gZW1wdHkgc2NhbGFyIGlzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IG5vbi1lbXB0eVxuICAgICAgICAgICAgLy8gbm9kZSwgYnV0IGl0J3MgbW9yZSB1c2VmdWwgdG8gcGxhY2UgaXQgYWZ0ZXIgYW55IHdoaXRlc3BhY2UuXG4gICAgICAgICAgICBzdCA9IGJlZm9yZVsrK2ldO1xuICAgICAgICAgICAgd2hpbGUgKHN0Py50eXBlID09PSAnc3BhY2UnKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHN0LnNvdXJjZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgc3QgPSBiZWZvcmVbKytpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvZmZzZXQ7XG59XG5cbmV4cG9ydCB7IGVtcHR5U2NhbGFyUG9zaXRpb24gfTtcbiIsICJpbXBvcnQgeyBBbGlhcyB9IGZyb20gJy4uL25vZGVzL0FsaWFzLmpzJztcbmltcG9ydCB7IGlzU2NhbGFyIH0gZnJvbSAnLi4vbm9kZXMvaWRlbnRpdHkuanMnO1xuaW1wb3J0IHsgY29tcG9zZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbXBvc2UtY29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgeyBjb21wb3NlU2NhbGFyIH0gZnJvbSAnLi9jb21wb3NlLXNjYWxhci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5pbXBvcnQgeyBlbXB0eVNjYWxhclBvc2l0aW9uIH0gZnJvbSAnLi91dGlsLWVtcHR5LXNjYWxhci1wb3NpdGlvbi5qcyc7XG5cbmNvbnN0IENOID0geyBjb21wb3NlTm9kZSwgY29tcG9zZUVtcHR5Tm9kZSB9O1xuZnVuY3Rpb24gY29tcG9zZU5vZGUoY3R4LCB0b2tlbiwgcHJvcHMsIG9uRXJyb3IpIHtcbiAgICBjb25zdCBhdEtleSA9IGN0eC5hdEtleTtcbiAgICBjb25zdCB7IHNwYWNlQmVmb3JlLCBjb21tZW50LCBhbmNob3IsIHRhZyB9ID0gcHJvcHM7XG4gICAgbGV0IG5vZGU7XG4gICAgbGV0IGlzU3JjVG9rZW4gPSB0cnVlO1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICBub2RlID0gY29tcG9zZUFsaWFzKGN0eCwgdG9rZW4sIG9uRXJyb3IpO1xuICAgICAgICAgICAgaWYgKGFuY2hvciB8fCB0YWcpXG4gICAgICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ0FMSUFTX1BST1BTJywgJ0FuIGFsaWFzIG5vZGUgbXVzdCBub3Qgc3BlY2lmeSBhbnkgcHJvcGVydGllcycpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICBjYXNlICdibG9jay1zY2FsYXInOlxuICAgICAgICAgICAgbm9kZSA9IGNvbXBvc2VTY2FsYXIoY3R4LCB0b2tlbiwgdGFnLCBvbkVycm9yKTtcbiAgICAgICAgICAgIGlmIChhbmNob3IpXG4gICAgICAgICAgICAgICAgbm9kZS5hbmNob3IgPSBhbmNob3Iuc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdibG9jay1tYXAnOlxuICAgICAgICBjYXNlICdibG9jay1zZXEnOlxuICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOlxuICAgICAgICAgICAgbm9kZSA9IGNvbXBvc2VDb2xsZWN0aW9uKENOLCBjdHgsIHRva2VuLCBwcm9wcywgb25FcnJvcik7XG4gICAgICAgICAgICBpZiAoYW5jaG9yKVxuICAgICAgICAgICAgICAgIG5vZGUuYW5jaG9yID0gYW5jaG9yLnNvdXJjZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRva2VuLnR5cGUgPT09ICdlcnJvcidcbiAgICAgICAgICAgICAgICA/IHRva2VuLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICA6IGBVbnN1cHBvcnRlZCB0b2tlbiAodHlwZTogJHt0b2tlbi50eXBlfSlgO1xuICAgICAgICAgICAgb25FcnJvcih0b2tlbiwgJ1VORVhQRUNURURfVE9LRU4nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIG5vZGUgPSBjb21wb3NlRW1wdHlOb2RlKGN0eCwgdG9rZW4ub2Zmc2V0LCB1bmRlZmluZWQsIG51bGwsIHByb3BzLCBvbkVycm9yKTtcbiAgICAgICAgICAgIGlzU3JjVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoYW5jaG9yICYmIG5vZGUuYW5jaG9yID09PSAnJylcbiAgICAgICAgb25FcnJvcihhbmNob3IsICdCQURfQUxJQVMnLCAnQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICBpZiAoYXRLZXkgJiZcbiAgICAgICAgY3R4Lm9wdGlvbnMuc3RyaW5nS2V5cyAmJlxuICAgICAgICAoIWlzU2NhbGFyKG5vZGUpIHx8XG4gICAgICAgICAgICB0eXBlb2Ygbm9kZS52YWx1ZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgIChub2RlLnRhZyAmJiBub2RlLnRhZyAhPT0gJ3RhZzp5YW1sLm9yZywyMDAyOnN0cicpKSkge1xuICAgICAgICBjb25zdCBtc2cgPSAnV2l0aCBzdHJpbmdLZXlzLCBhbGwga2V5cyBtdXN0IGJlIHN0cmluZ3MnO1xuICAgICAgICBvbkVycm9yKHRhZyA/PyB0b2tlbiwgJ05PTl9TVFJJTkdfS0VZJywgbXNnKTtcbiAgICB9XG4gICAgaWYgKHNwYWNlQmVmb3JlKVxuICAgICAgICBub2RlLnNwYWNlQmVmb3JlID0gdHJ1ZTtcbiAgICBpZiAoY29tbWVudCkge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3NjYWxhcicgJiYgdG9rZW4uc291cmNlID09PSAnJylcbiAgICAgICAgICAgIG5vZGUuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIG5vZGUuY29tbWVudEJlZm9yZSA9IGNvbW1lbnQ7XG4gICAgfVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSBjaGVja2luZyBtaXNzZXMgbWVhbmluZyBvZiBpc1NyY1Rva2VuXG4gICAgaWYgKGN0eC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMgJiYgaXNTcmNUb2tlbilcbiAgICAgICAgbm9kZS5zcmNUb2tlbiA9IHRva2VuO1xuICAgIHJldHVybiBub2RlO1xufVxuZnVuY3Rpb24gY29tcG9zZUVtcHR5Tm9kZShjdHgsIG9mZnNldCwgYmVmb3JlLCBwb3MsIHsgc3BhY2VCZWZvcmUsIGNvbW1lbnQsIGFuY2hvciwgdGFnLCBlbmQgfSwgb25FcnJvcikge1xuICAgIGNvbnN0IHRva2VuID0ge1xuICAgICAgICB0eXBlOiAnc2NhbGFyJyxcbiAgICAgICAgb2Zmc2V0OiBlbXB0eVNjYWxhclBvc2l0aW9uKG9mZnNldCwgYmVmb3JlLCBwb3MpLFxuICAgICAgICBpbmRlbnQ6IC0xLFxuICAgICAgICBzb3VyY2U6ICcnXG4gICAgfTtcbiAgICBjb25zdCBub2RlID0gY29tcG9zZVNjYWxhcihjdHgsIHRva2VuLCB0YWcsIG9uRXJyb3IpO1xuICAgIGlmIChhbmNob3IpIHtcbiAgICAgICAgbm9kZS5hbmNob3IgPSBhbmNob3Iuc291cmNlLnN1YnN0cmluZygxKTtcbiAgICAgICAgaWYgKG5vZGUuYW5jaG9yID09PSAnJylcbiAgICAgICAgICAgIG9uRXJyb3IoYW5jaG9yLCAnQkFEX0FMSUFTJywgJ0FuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nJyk7XG4gICAgfVxuICAgIGlmIChzcGFjZUJlZm9yZSlcbiAgICAgICAgbm9kZS5zcGFjZUJlZm9yZSA9IHRydWU7XG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgICAgbm9kZS5jb21tZW50ID0gY29tbWVudDtcbiAgICAgICAgbm9kZS5yYW5nZVsyXSA9IGVuZDtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59XG5mdW5jdGlvbiBjb21wb3NlQWxpYXMoeyBvcHRpb25zIH0sIHsgb2Zmc2V0LCBzb3VyY2UsIGVuZCB9LCBvbkVycm9yKSB7XG4gICAgY29uc3QgYWxpYXMgPSBuZXcgQWxpYXMoc291cmNlLnN1YnN0cmluZygxKSk7XG4gICAgaWYgKGFsaWFzLnNvdXJjZSA9PT0gJycpXG4gICAgICAgIG9uRXJyb3Iob2Zmc2V0LCAnQkFEX0FMSUFTJywgJ0FsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICBpZiAoYWxpYXMuc291cmNlLmVuZHNXaXRoKCc6JykpXG4gICAgICAgIG9uRXJyb3Iob2Zmc2V0ICsgc291cmNlLmxlbmd0aCAtIDEsICdCQURfQUxJQVMnLCAnQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzJywgdHJ1ZSk7XG4gICAgY29uc3QgdmFsdWVFbmQgPSBvZmZzZXQgKyBzb3VyY2UubGVuZ3RoO1xuICAgIGNvbnN0IHJlID0gcmVzb2x2ZUVuZChlbmQsIHZhbHVlRW5kLCBvcHRpb25zLnN0cmljdCwgb25FcnJvcik7XG4gICAgYWxpYXMucmFuZ2UgPSBbb2Zmc2V0LCB2YWx1ZUVuZCwgcmUub2Zmc2V0XTtcbiAgICBpZiAocmUuY29tbWVudClcbiAgICAgICAgYWxpYXMuY29tbWVudCA9IHJlLmNvbW1lbnQ7XG4gICAgcmV0dXJuIGFsaWFzO1xufVxuXG5leHBvcnQgeyBjb21wb3NlRW1wdHlOb2RlLCBjb21wb3NlTm9kZSB9O1xuIiwgImltcG9ydCB7IERvY3VtZW50IH0gZnJvbSAnLi4vZG9jL0RvY3VtZW50LmpzJztcbmltcG9ydCB7IGNvbXBvc2VOb2RlLCBjb21wb3NlRW1wdHlOb2RlIH0gZnJvbSAnLi9jb21wb3NlLW5vZGUuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZCB9IGZyb20gJy4vcmVzb2x2ZS1lbmQuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BzLmpzJztcblxuZnVuY3Rpb24gY29tcG9zZURvYyhvcHRpb25zLCBkaXJlY3RpdmVzLCB7IG9mZnNldCwgc3RhcnQsIHZhbHVlLCBlbmQgfSwgb25FcnJvcikge1xuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHsgX2RpcmVjdGl2ZXM6IGRpcmVjdGl2ZXMgfSwgb3B0aW9ucyk7XG4gICAgY29uc3QgZG9jID0gbmV3IERvY3VtZW50KHVuZGVmaW5lZCwgb3B0cyk7XG4gICAgY29uc3QgY3R4ID0ge1xuICAgICAgICBhdEtleTogZmFsc2UsXG4gICAgICAgIGF0Um9vdDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aXZlczogZG9jLmRpcmVjdGl2ZXMsXG4gICAgICAgIG9wdGlvbnM6IGRvYy5vcHRpb25zLFxuICAgICAgICBzY2hlbWE6IGRvYy5zY2hlbWFcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0gcmVzb2x2ZVByb3BzKHN0YXJ0LCB7XG4gICAgICAgIGluZGljYXRvcjogJ2RvYy1zdGFydCcsXG4gICAgICAgIG5leHQ6IHZhbHVlID8/IGVuZD8uWzBdLFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIG9uRXJyb3IsXG4gICAgICAgIHBhcmVudEluZGVudDogMCxcbiAgICAgICAgc3RhcnRPbk5ld2xpbmU6IHRydWVcbiAgICB9KTtcbiAgICBpZiAocHJvcHMuZm91bmQpIHtcbiAgICAgICAgZG9jLmRpcmVjdGl2ZXMuZG9jU3RhcnQgPSB0cnVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgICh2YWx1ZS50eXBlID09PSAnYmxvY2stbWFwJyB8fCB2YWx1ZS50eXBlID09PSAnYmxvY2stc2VxJykgJiZcbiAgICAgICAgICAgICFwcm9wcy5oYXNOZXdsaW5lKVxuICAgICAgICAgICAgb25FcnJvcihwcm9wcy5lbmQsICdNSVNTSU5HX0NIQVInLCAnQmxvY2sgY29sbGVjdGlvbiBjYW5ub3Qgc3RhcnQgb24gc2FtZSBsaW5lIHdpdGggZGlyZWN0aXZlcy1lbmQgbWFya2VyJyk7XG4gICAgfVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgSWYgQ29udGVudHMgaXMgc2V0LCBsZXQncyB0cnVzdCB0aGUgdXNlclxuICAgIGRvYy5jb250ZW50cyA9IHZhbHVlXG4gICAgICAgID8gY29tcG9zZU5vZGUoY3R4LCB2YWx1ZSwgcHJvcHMsIG9uRXJyb3IpXG4gICAgICAgIDogY29tcG9zZUVtcHR5Tm9kZShjdHgsIHByb3BzLmVuZCwgc3RhcnQsIG51bGwsIHByb3BzLCBvbkVycm9yKTtcbiAgICBjb25zdCBjb250ZW50RW5kID0gZG9jLmNvbnRlbnRzLnJhbmdlWzJdO1xuICAgIGNvbnN0IHJlID0gcmVzb2x2ZUVuZChlbmQsIGNvbnRlbnRFbmQsIGZhbHNlLCBvbkVycm9yKTtcbiAgICBpZiAocmUuY29tbWVudClcbiAgICAgICAgZG9jLmNvbW1lbnQgPSByZS5jb21tZW50O1xuICAgIGRvYy5yYW5nZSA9IFtvZmZzZXQsIGNvbnRlbnRFbmQsIHJlLm9mZnNldF07XG4gICAgcmV0dXJuIGRvYztcbn1cblxuZXhwb3J0IHsgY29tcG9zZURvYyB9O1xuIiwgImltcG9ydCB7IERpcmVjdGl2ZXMgfSBmcm9tICcuLi9kb2MvZGlyZWN0aXZlcy5qcyc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4uL2RvYy9Eb2N1bWVudC5qcyc7XG5pbXBvcnQgeyBZQU1MV2FybmluZywgWUFNTFBhcnNlRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMuanMnO1xuaW1wb3J0IHsgaXNDb2xsZWN0aW9uLCBpc1BhaXIgfSBmcm9tICcuLi9ub2Rlcy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBjb21wb3NlRG9jIH0gZnJvbSAnLi9jb21wb3NlLWRvYy5qcyc7XG5pbXBvcnQgeyByZXNvbHZlRW5kIH0gZnJvbSAnLi9yZXNvbHZlLWVuZC5qcyc7XG5cbmZ1bmN0aW9uIGdldEVycm9yUG9zKHNyYykge1xuICAgIGlmICh0eXBlb2Ygc3JjID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFtzcmMsIHNyYyArIDFdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNyYykpXG4gICAgICAgIHJldHVybiBzcmMubGVuZ3RoID09PSAyID8gc3JjIDogW3NyY1swXSwgc3JjWzFdXTtcbiAgICBjb25zdCB7IG9mZnNldCwgc291cmNlIH0gPSBzcmM7XG4gICAgcmV0dXJuIFtvZmZzZXQsIG9mZnNldCArICh0eXBlb2Ygc291cmNlID09PSAnc3RyaW5nJyA/IHNvdXJjZS5sZW5ndGggOiAxKV07XG59XG5mdW5jdGlvbiBwYXJzZVByZWx1ZGUocHJlbHVkZSkge1xuICAgIGxldCBjb21tZW50ID0gJyc7XG4gICAgbGV0IGF0Q29tbWVudCA9IGZhbHNlO1xuICAgIGxldCBhZnRlckVtcHR5TGluZSA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlbHVkZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBwcmVsdWRlW2ldO1xuICAgICAgICBzd2l0Y2ggKHNvdXJjZVswXSkge1xuICAgICAgICAgICAgY2FzZSAnIyc6XG4gICAgICAgICAgICAgICAgY29tbWVudCArPVxuICAgICAgICAgICAgICAgICAgICAoY29tbWVudCA9PT0gJycgPyAnJyA6IGFmdGVyRW1wdHlMaW5lID8gJ1xcblxcbicgOiAnXFxuJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZS5zdWJzdHJpbmcoMSkgfHwgJyAnKTtcbiAgICAgICAgICAgICAgICBhdENvbW1lbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGFmdGVyRW1wdHlMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICclJzpcbiAgICAgICAgICAgICAgICBpZiAocHJlbHVkZVtpICsgMV0/LlswXSAhPT0gJyMnKVxuICAgICAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICAgICAgYXRDb21tZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbWF5IGJlIHdyb25nIGFmdGVyIGRvYy1lbmQsIGJ1dCBpbiB0aGF0IGNhc2UgaXQgZG9lc24ndCBtYXR0ZXJcbiAgICAgICAgICAgICAgICBpZiAoIWF0Q29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgYWZ0ZXJFbXB0eUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGF0Q29tbWVudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGNvbW1lbnQsIGFmdGVyRW1wdHlMaW5lIH07XG59XG4vKipcbiAqIENvbXBvc2UgYSBzdHJlYW0gb2YgQ1NUIG5vZGVzIGludG8gYSBzdHJlYW0gb2YgWUFNTCBEb2N1bWVudHMuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbXBvc2VyLCBQYXJzZXIgfSBmcm9tICd5YW1sJ1xuICpcbiAqIGNvbnN0IHNyYzogc3RyaW5nID0gLi4uXG4gKiBjb25zdCB0b2tlbnMgPSBuZXcgUGFyc2VyKCkucGFyc2Uoc3JjKVxuICogY29uc3QgZG9jcyA9IG5ldyBDb21wb3NlcigpLmNvbXBvc2UodG9rZW5zKVxuICogYGBgXG4gKi9cbmNsYXNzIENvbXBvc2VyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5kb2MgPSBudWxsO1xuICAgICAgICB0aGlzLmF0RGlyZWN0aXZlcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZWx1ZGUgPSBbXTtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgICAgICB0aGlzLm9uRXJyb3IgPSAoc291cmNlLCBjb2RlLCBtZXNzYWdlLCB3YXJuaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSBnZXRFcnJvclBvcyhzb3VyY2UpO1xuICAgICAgICAgICAgaWYgKHdhcm5pbmcpXG4gICAgICAgICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKG5ldyBZQU1MV2FybmluZyhwb3MsIGNvZGUsIG1lc3NhZ2UpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKG5ldyBZQU1MUGFyc2VFcnJvcihwb3MsIGNvZGUsIG1lc3NhZ2UpKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgIHRoaXMuZGlyZWN0aXZlcyA9IG5ldyBEaXJlY3RpdmVzKHsgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uIHx8ICcxLjInIH0pO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICBkZWNvcmF0ZShkb2MsIGFmdGVyRG9jKSB7XG4gICAgICAgIGNvbnN0IHsgY29tbWVudCwgYWZ0ZXJFbXB0eUxpbmUgfSA9IHBhcnNlUHJlbHVkZSh0aGlzLnByZWx1ZGUpO1xuICAgICAgICAvL2NvbnNvbGUubG9nKHsgZGM6IGRvYy5jb21tZW50LCBwcmVsdWRlLCBjb21tZW50IH0pXG4gICAgICAgIGlmIChjb21tZW50KSB7XG4gICAgICAgICAgICBjb25zdCBkYyA9IGRvYy5jb250ZW50cztcbiAgICAgICAgICAgIGlmIChhZnRlckRvYykge1xuICAgICAgICAgICAgICAgIGRvYy5jb21tZW50ID0gZG9jLmNvbW1lbnQgPyBgJHtkb2MuY29tbWVudH1cXG4ke2NvbW1lbnR9YCA6IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhZnRlckVtcHR5TGluZSB8fCBkb2MuZGlyZWN0aXZlcy5kb2NTdGFydCB8fCAhZGMpIHtcbiAgICAgICAgICAgICAgICBkb2MuY29tbWVudEJlZm9yZSA9IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc0NvbGxlY3Rpb24oZGMpICYmICFkYy5mbG93ICYmIGRjLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgaXQgPSBkYy5pdGVtc1swXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNQYWlyKGl0KSlcbiAgICAgICAgICAgICAgICAgICAgaXQgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2IgPSBpdC5jb21tZW50QmVmb3JlO1xuICAgICAgICAgICAgICAgIGl0LmNvbW1lbnRCZWZvcmUgPSBjYiA/IGAke2NvbW1lbnR9XFxuJHtjYn1gIDogY29tbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNiID0gZGMuY29tbWVudEJlZm9yZTtcbiAgICAgICAgICAgICAgICBkYy5jb21tZW50QmVmb3JlID0gY2IgPyBgJHtjb21tZW50fVxcbiR7Y2J9YCA6IGNvbW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFmdGVyRG9jKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShkb2MuZXJyb3JzLCB0aGlzLmVycm9ycyk7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShkb2Mud2FybmluZ3MsIHRoaXMud2FybmluZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZG9jLmVycm9ycyA9IHRoaXMuZXJyb3JzO1xuICAgICAgICAgICAgZG9jLndhcm5pbmdzID0gdGhpcy53YXJuaW5ncztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZWx1ZGUgPSBbXTtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy53YXJuaW5ncyA9IFtdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHN0cmVhbSBzdGF0dXMgaW5mb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBNb3N0bHkgdXNlZnVsIGF0IHRoZSBlbmQgb2YgaW5wdXQgZm9yIGFuIGVtcHR5IHN0cmVhbS5cbiAgICAgKi9cbiAgICBzdHJlYW1JbmZvKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29tbWVudDogcGFyc2VQcmVsdWRlKHRoaXMucHJlbHVkZSkuY29tbWVudCxcbiAgICAgICAgICAgIGRpcmVjdGl2ZXM6IHRoaXMuZGlyZWN0aXZlcyxcbiAgICAgICAgICAgIGVycm9yczogdGhpcy5lcnJvcnMsXG4gICAgICAgICAgICB3YXJuaW5nczogdGhpcy53YXJuaW5nc1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb21wb3NlIHRva2VucyBpbnRvIGRvY3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JjZURvYyAtIElmIHRoZSBzdHJlYW0gY29udGFpbnMgbm8gZG9jdW1lbnQsIHN0aWxsIGVtaXQgYSBmaW5hbCBkb2N1bWVudCBpbmNsdWRpbmcgYW55IGNvbW1lbnRzIGFuZCBkaXJlY3RpdmVzIHRoYXQgd291bGQgYmUgYXBwbGllZCB0byBhIHN1YnNlcXVlbnQgZG9jdW1lbnQuXG4gICAgICogQHBhcmFtIGVuZE9mZnNldCAtIFNob3VsZCBiZSBzZXQgaWYgYGZvcmNlRG9jYCBpcyBhbHNvIHNldCwgdG8gc2V0IHRoZSBkb2N1bWVudCByYW5nZSBlbmQgYW5kIHRvIGluZGljYXRlIGVycm9ycyBjb3JyZWN0bHkuXG4gICAgICovXG4gICAgKmNvbXBvc2UodG9rZW5zLCBmb3JjZURvYyA9IGZhbHNlLCBlbmRPZmZzZXQgPSAtMSkge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2VucylcbiAgICAgICAgICAgIHlpZWxkKiB0aGlzLm5leHQodG9rZW4pO1xuICAgICAgICB5aWVsZCogdGhpcy5lbmQoZm9yY2VEb2MsIGVuZE9mZnNldCk7XG4gICAgfVxuICAgIC8qKiBBZHZhbmNlIHRoZSBjb21wb3NlciBieSBvbmUgQ1NUIHRva2VuLiAqL1xuICAgICpuZXh0KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGlyZWN0aXZlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZXMuYWRkKHRva2VuLnNvdXJjZSwgKG9mZnNldCwgbWVzc2FnZSwgd2FybmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBnZXRFcnJvclBvcyh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHBvc1swXSArPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcihwb3MsICdCQURfRElSRUNUSVZFJywgbWVzc2FnZSwgd2FybmluZyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVsdWRlLnB1c2godG9rZW4uc291cmNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmF0RGlyZWN0aXZlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkb2N1bWVudCc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkb2MgPSBjb21wb3NlRG9jKHRoaXMub3B0aW9ucywgdGhpcy5kaXJlY3RpdmVzLCB0b2tlbiwgdGhpcy5vbkVycm9yKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdERpcmVjdGl2ZXMgJiYgIWRvYy5kaXJlY3RpdmVzLmRvY1N0YXJ0KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IodG9rZW4sICdNSVNTSU5HX0NIQVInLCAnTWlzc2luZyBkaXJlY3RpdmVzLWVuZC9kb2Mtc3RhcnQgaW5kaWNhdG9yIGxpbmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlY29yYXRlKGRvYywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRvYylcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5kb2M7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2MgPSBkb2M7XG4gICAgICAgICAgICAgICAgdGhpcy5hdERpcmVjdGl2ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2J5dGUtb3JkZXItbWFyayc6XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIHRoaXMucHJlbHVkZS5wdXNoKHRva2VuLnNvdXJjZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSB0b2tlbi5zb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgPyBgJHt0b2tlbi5tZXNzYWdlfTogJHtKU09OLnN0cmluZ2lmeSh0b2tlbi5zb3VyY2UpfWBcbiAgICAgICAgICAgICAgICAgICAgOiB0b2tlbi5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFlBTUxQYXJzZUVycm9yKGdldEVycm9yUG9zKHRva2VuKSwgJ1VORVhQRUNURURfVE9LRU4nLCBtc2cpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF0RGlyZWN0aXZlcyB8fCAhdGhpcy5kb2MpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2MuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZG9jLWVuZCc6IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZG9jKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9ICdVbmV4cGVjdGVkIGRvYy1lbmQgd2l0aG91dCBwcmVjZWRpbmcgZG9jdW1lbnQnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ycy5wdXNoKG5ldyBZQU1MUGFyc2VFcnJvcihnZXRFcnJvclBvcyh0b2tlbiksICdVTkVYUEVDVEVEX1RPS0VOJywgbXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gcmVzb2x2ZUVuZCh0b2tlbi5lbmQsIHRva2VuLm9mZnNldCArIHRva2VuLnNvdXJjZS5sZW5ndGgsIHRoaXMuZG9jLm9wdGlvbnMuc3RyaWN0LCB0aGlzLm9uRXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVjb3JhdGUodGhpcy5kb2MsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChlbmQuY29tbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYyA9IHRoaXMuZG9jLmNvbW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jLmNvbW1lbnQgPSBkYyA/IGAke2RjfVxcbiR7ZW5kLmNvbW1lbnR9YCA6IGVuZC5jb21tZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvYy5yYW5nZVsyXSA9IGVuZC5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2gobmV3IFlBTUxQYXJzZUVycm9yKGdldEVycm9yUG9zKHRva2VuKSwgJ1VORVhQRUNURURfVE9LRU4nLCBgVW5zdXBwb3J0ZWQgdG9rZW4gJHt0b2tlbi50eXBlfWApKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsIGF0IGVuZCBvZiBpbnB1dCB0byB5aWVsZCBhbnkgcmVtYWluaW5nIGRvY3VtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcmNlRG9jIC0gSWYgdGhlIHN0cmVhbSBjb250YWlucyBubyBkb2N1bWVudCwgc3RpbGwgZW1pdCBhIGZpbmFsIGRvY3VtZW50IGluY2x1ZGluZyBhbnkgY29tbWVudHMgYW5kIGRpcmVjdGl2ZXMgdGhhdCB3b3VsZCBiZSBhcHBsaWVkIHRvIGEgc3Vic2VxdWVudCBkb2N1bWVudC5cbiAgICAgKiBAcGFyYW0gZW5kT2Zmc2V0IC0gU2hvdWxkIGJlIHNldCBpZiBgZm9yY2VEb2NgIGlzIGFsc28gc2V0LCB0byBzZXQgdGhlIGRvY3VtZW50IHJhbmdlIGVuZCBhbmQgdG8gaW5kaWNhdGUgZXJyb3JzIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICAqZW5kKGZvcmNlRG9jID0gZmFsc2UsIGVuZE9mZnNldCA9IC0xKSB7XG4gICAgICAgIGlmICh0aGlzLmRvYykge1xuICAgICAgICAgICAgdGhpcy5kZWNvcmF0ZSh0aGlzLmRvYywgdHJ1ZSk7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmRvYztcbiAgICAgICAgICAgIHRoaXMuZG9jID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmb3JjZURvYykge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oeyBfZGlyZWN0aXZlczogdGhpcy5kaXJlY3RpdmVzIH0sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBuZXcgRG9jdW1lbnQodW5kZWZpbmVkLCBvcHRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmF0RGlyZWN0aXZlcylcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZW5kT2Zmc2V0LCAnTUlTU0lOR19DSEFSJywgJ01pc3NpbmcgZGlyZWN0aXZlcy1lbmQgaW5kaWNhdG9yIGxpbmUnKTtcbiAgICAgICAgICAgIGRvYy5yYW5nZSA9IFswLCBlbmRPZmZzZXQsIGVuZE9mZnNldF07XG4gICAgICAgICAgICB0aGlzLmRlY29yYXRlKGRvYywgZmFsc2UpO1xuICAgICAgICAgICAgeWllbGQgZG9jO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBDb21wb3NlciB9O1xuIiwgImNvbnN0IEJSRUFLID0gU3ltYm9sKCdicmVhayB2aXNpdCcpO1xuY29uc3QgU0tJUCA9IFN5bWJvbCgnc2tpcCBjaGlsZHJlbicpO1xuY29uc3QgUkVNT1ZFID0gU3ltYm9sKCdyZW1vdmUgaXRlbScpO1xuLyoqXG4gKiBBcHBseSBhIHZpc2l0b3IgdG8gYSBDU1QgZG9jdW1lbnQgb3IgaXRlbS5cbiAqXG4gKiBXYWxrcyB0aHJvdWdoIHRoZSB0cmVlIChkZXB0aC1maXJzdCkgc3RhcnRpbmcgZnJvbSB0aGUgcm9vdCwgY2FsbGluZyBhXG4gKiBgdmlzaXRvcmAgZnVuY3Rpb24gd2l0aCB0d28gYXJndW1lbnRzIHdoZW4gZW50ZXJpbmcgZWFjaCBpdGVtOlxuICogICAtIGBpdGVtYDogVGhlIGN1cnJlbnQgaXRlbSwgd2hpY2ggaW5jbHVkZWQgdGhlIGZvbGxvd2luZyBtZW1iZXJzOlxuICogICAgIC0gYHN0YXJ0OiBTb3VyY2VUb2tlbltdYCBcdTIwMTMgU291cmNlIHRva2VucyBiZWZvcmUgdGhlIGtleSBvciB2YWx1ZSxcbiAqICAgICAgIHBvc3NpYmx5IGluY2x1ZGluZyBpdHMgYW5jaG9yIG9yIHRhZy5cbiAqICAgICAtIGBrZXk/OiBUb2tlbiB8IG51bGxgIFx1MjAxMyBTZXQgZm9yIHBhaXIgdmFsdWVzLiBNYXkgdGhlbiBiZSBgbnVsbGAsIGlmXG4gKiAgICAgICB0aGUga2V5IGJlZm9yZSB0aGUgYDpgIHNlcGFyYXRvciBpcyBlbXB0eS5cbiAqICAgICAtIGBzZXA/OiBTb3VyY2VUb2tlbltdYCBcdTIwMTMgU291cmNlIHRva2VucyBiZXR3ZWVuIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZSxcbiAqICAgICAgIHdoaWNoIHNob3VsZCBpbmNsdWRlIHRoZSBgOmAgbWFwIHZhbHVlIGluZGljYXRvciBpZiBgdmFsdWVgIGlzIHNldC5cbiAqICAgICAtIGB2YWx1ZT86IFRva2VuYCBcdTIwMTMgVGhlIHZhbHVlIG9mIGEgc2VxdWVuY2UgaXRlbSwgb3Igb2YgYSBtYXAgcGFpci5cbiAqICAgLSBgcGF0aGA6IFRoZSBzdGVwcyBmcm9tIHRoZSByb290IHRvIHRoZSBjdXJyZW50IG5vZGUsIGFzIGFuIGFycmF5IG9mXG4gKiAgICAgYFsna2V5JyB8ICd2YWx1ZScsIG51bWJlcl1gIHR1cGxlcy5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB2aXNpdG9yIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIHRyYXZlcnNhbDpcbiAqICAgLSBgdW5kZWZpbmVkYCAoZGVmYXVsdCk6IERvIG5vdGhpbmcgYW5kIGNvbnRpbnVlXG4gKiAgIC0gYHZpc2l0LlNLSVBgOiBEbyBub3QgdmlzaXQgdGhlIGNoaWxkcmVuIG9mIHRoaXMgdG9rZW4sIGNvbnRpbnVlIHdpdGhcbiAqICAgICAgbmV4dCBzaWJsaW5nXG4gKiAgIC0gYHZpc2l0LkJSRUFLYDogVGVybWluYXRlIHRyYXZlcnNhbCBjb21wbGV0ZWx5XG4gKiAgIC0gYHZpc2l0LlJFTU9WRWA6IFJlbW92ZSB0aGUgY3VycmVudCBpdGVtLCB0aGVuIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lXG4gKiAgIC0gYG51bWJlcmA6IFNldCB0aGUgaW5kZXggb2YgdGhlIG5leHQgc3RlcC4gVGhpcyBpcyB1c2VmdWwgZXNwZWNpYWxseSBpZlxuICogICAgIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudCB0b2tlbiBoYXMgY2hhbmdlZC5cbiAqICAgLSBgZnVuY3Rpb25gOiBEZWZpbmUgdGhlIG5leHQgdmlzaXRvciBmb3IgdGhpcyBpdGVtLiBBZnRlciB0aGUgb3JpZ2luYWxcbiAqICAgICB2aXNpdG9yIGlzIGNhbGxlZCBvbiBpdGVtIGVudHJ5LCBuZXh0IHZpc2l0b3JzIGFyZSBjYWxsZWQgYWZ0ZXIgaGFuZGxpbmdcbiAqICAgICBhIG5vbi1lbXB0eSBga2V5YCBhbmQgd2hlbiBleGl0aW5nIHRoZSBpdGVtLlxuICovXG5mdW5jdGlvbiB2aXNpdChjc3QsIHZpc2l0b3IpIHtcbiAgICBpZiAoJ3R5cGUnIGluIGNzdCAmJiBjc3QudHlwZSA9PT0gJ2RvY3VtZW50JylcbiAgICAgICAgY3N0ID0geyBzdGFydDogY3N0LnN0YXJ0LCB2YWx1ZTogY3N0LnZhbHVlIH07XG4gICAgX3Zpc2l0KE9iamVjdC5mcmVlemUoW10pLCBjc3QsIHZpc2l0b3IpO1xufVxuLy8gV2l0aG91dCB0aGUgYGFzIHN5bWJvbGAgY2FzdHMsIFRTIGRlY2xhcmVzIHRoZXNlIGluIHRoZSBgdmlzaXRgXG4vLyBuYW1lc3BhY2UgdXNpbmcgYHZhcmAsIGJ1dCB0aGVuIGNvbXBsYWlucyBhYm91dCB0aGF0IGJlY2F1c2Vcbi8vIGB1bmlxdWUgc3ltYm9sYCBtdXN0IGJlIGBjb25zdGAuXG4vKiogVGVybWluYXRlIHZpc2l0IHRyYXZlcnNhbCBjb21wbGV0ZWx5ICovXG52aXNpdC5CUkVBSyA9IEJSRUFLO1xuLyoqIERvIG5vdCB2aXNpdCB0aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgaXRlbSAqL1xudmlzaXQuU0tJUCA9IFNLSVA7XG4vKiogUmVtb3ZlIHRoZSBjdXJyZW50IGl0ZW0gKi9cbnZpc2l0LlJFTU9WRSA9IFJFTU9WRTtcbi8qKiBGaW5kIHRoZSBpdGVtIGF0IGBwYXRoYCBmcm9tIGBjc3RgIGFzIHRoZSByb290ICovXG52aXNpdC5pdGVtQXRQYXRoID0gKGNzdCwgcGF0aCkgPT4ge1xuICAgIGxldCBpdGVtID0gY3N0O1xuICAgIGZvciAoY29uc3QgW2ZpZWxkLCBpbmRleF0gb2YgcGF0aCkge1xuICAgICAgICBjb25zdCB0b2sgPSBpdGVtPy5bZmllbGRdO1xuICAgICAgICBpZiAodG9rICYmICdpdGVtcycgaW4gdG9rKSB7XG4gICAgICAgICAgICBpdGVtID0gdG9rLml0ZW1zW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn07XG4vKipcbiAqIEdldCB0aGUgaW1tZWRpYXRlIHBhcmVudCBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIGF0IGBwYXRoYCBmcm9tIGBjc3RgIGFzIHRoZSByb290LlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgY29sbGVjdGlvbiBpcyBub3QgZm91bmQsIHdoaWNoIHNob3VsZCBuZXZlciBoYXBwZW4gaWYgdGhlIGl0ZW0gaXRzZWxmIGV4aXN0cy5cbiAqL1xudmlzaXQucGFyZW50Q29sbGVjdGlvbiA9IChjc3QsIHBhdGgpID0+IHtcbiAgICBjb25zdCBwYXJlbnQgPSB2aXNpdC5pdGVtQXRQYXRoKGNzdCwgcGF0aC5zbGljZSgwLCAtMSkpO1xuICAgIGNvbnN0IGZpZWxkID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdWzBdO1xuICAgIGNvbnN0IGNvbGwgPSBwYXJlbnQ/LltmaWVsZF07XG4gICAgaWYgKGNvbGwgJiYgJ2l0ZW1zJyBpbiBjb2xsKVxuICAgICAgICByZXR1cm4gY29sbDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBjb2xsZWN0aW9uIG5vdCBmb3VuZCcpO1xufTtcbmZ1bmN0aW9uIF92aXNpdChwYXRoLCBpdGVtLCB2aXNpdG9yKSB7XG4gICAgbGV0IGN0cmwgPSB2aXNpdG9yKGl0ZW0sIHBhdGgpO1xuICAgIGlmICh0eXBlb2YgY3RybCA9PT0gJ3N5bWJvbCcpXG4gICAgICAgIHJldHVybiBjdHJsO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgWydrZXknLCAndmFsdWUnXSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGl0ZW1bZmllbGRdO1xuICAgICAgICBpZiAodG9rZW4gJiYgJ2l0ZW1zJyBpbiB0b2tlbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5pdGVtcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNpID0gX3Zpc2l0KE9iamVjdC5mcmVlemUocGF0aC5jb25jYXQoW1tmaWVsZCwgaV1dKSksIHRva2VuLml0ZW1zW2ldLCB2aXNpdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNpID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgaSA9IGNpIC0gMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gQlJFQUspXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCUkVBSztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaSA9PT0gUkVNT1ZFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3RybCA9PT0gJ2Z1bmN0aW9uJyAmJiBmaWVsZCA9PT0gJ2tleScpXG4gICAgICAgICAgICAgICAgY3RybCA9IGN0cmwoaXRlbSwgcGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBjdHJsID09PSAnZnVuY3Rpb24nID8gY3RybChpdGVtLCBwYXRoKSA6IGN0cmw7XG59XG5cbmV4cG9ydCB7IHZpc2l0IH07XG4iLCAiZXhwb3J0IHsgY3JlYXRlU2NhbGFyVG9rZW4sIHJlc29sdmVBc1NjYWxhciwgc2V0U2NhbGFyVmFsdWUgfSBmcm9tICcuL2NzdC1zY2FsYXIuanMnO1xuZXhwb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSAnLi9jc3Qtc3RyaW5naWZ5LmpzJztcbmV4cG9ydCB7IHZpc2l0IH0gZnJvbSAnLi9jc3QtdmlzaXQuanMnO1xuXG4vKiogVGhlIGJ5dGUgb3JkZXIgbWFyayAqL1xuY29uc3QgQk9NID0gJ1xcdXtGRUZGfSc7XG4vKiogU3RhcnQgb2YgZG9jLW1vZGUgKi9cbmNvbnN0IERPQ1VNRU5UID0gJ1xceDAyJzsgLy8gQzA6IFN0YXJ0IG9mIFRleHRcbi8qKiBVbmV4cGVjdGVkIGVuZCBvZiBmbG93LW1vZGUgKi9cbmNvbnN0IEZMT1dfRU5EID0gJ1xceDE4JzsgLy8gQzA6IENhbmNlbFxuLyoqIE5leHQgdG9rZW4gaXMgYSBzY2FsYXIgdmFsdWUgKi9cbmNvbnN0IFNDQUxBUiA9ICdcXHgxZic7IC8vIEMwOiBVbml0IFNlcGFyYXRvclxuLyoqIEByZXR1cm5zIGB0cnVlYCBpZiBgdG9rZW5gIGlzIGEgZmxvdyBvciBibG9jayBjb2xsZWN0aW9uICovXG5jb25zdCBpc0NvbGxlY3Rpb24gPSAodG9rZW4pID0+ICEhdG9rZW4gJiYgJ2l0ZW1zJyBpbiB0b2tlbjtcbi8qKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYHRva2VuYCBpcyBhIGZsb3cgb3IgYmxvY2sgc2NhbGFyOyBub3QgYW4gYWxpYXMgKi9cbmNvbnN0IGlzU2NhbGFyID0gKHRva2VuKSA9PiAhIXRva2VuICYmXG4gICAgKHRva2VuLnR5cGUgPT09ICdzY2FsYXInIHx8XG4gICAgICAgIHRva2VuLnR5cGUgPT09ICdzaW5nbGUtcXVvdGVkLXNjYWxhcicgfHxcbiAgICAgICAgdG9rZW4udHlwZSA9PT0gJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJyB8fFxuICAgICAgICB0b2tlbi50eXBlID09PSAnYmxvY2stc2NhbGFyJyk7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuLyoqIEdldCBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIGxleGVyIHRva2VuICovXG5mdW5jdGlvbiBwcmV0dHlUb2tlbih0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgICAgY2FzZSBCT006XG4gICAgICAgICAgICByZXR1cm4gJzxCT00+JztcbiAgICAgICAgY2FzZSBET0NVTUVOVDpcbiAgICAgICAgICAgIHJldHVybiAnPERPQz4nO1xuICAgICAgICBjYXNlIEZMT1dfRU5EOlxuICAgICAgICAgICAgcmV0dXJuICc8RkxPV19FTkQ+JztcbiAgICAgICAgY2FzZSBTQ0FMQVI6XG4gICAgICAgICAgICByZXR1cm4gJzxTQ0FMQVI+JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0b2tlbik7XG4gICAgfVxufVxuLyoqIElkZW50aWZ5IHRoZSB0eXBlIG9mIGEgbGV4ZXIgdG9rZW4uIE1heSByZXR1cm4gYG51bGxgIGZvciB1bmtub3duIHRva2Vucy4gKi9cbmZ1bmN0aW9uIHRva2VuVHlwZShzb3VyY2UpIHtcbiAgICBzd2l0Y2ggKHNvdXJjZSkge1xuICAgICAgICBjYXNlIEJPTTpcbiAgICAgICAgICAgIHJldHVybiAnYnl0ZS1vcmRlci1tYXJrJztcbiAgICAgICAgY2FzZSBET0NVTUVOVDpcbiAgICAgICAgICAgIHJldHVybiAnZG9jLW1vZGUnO1xuICAgICAgICBjYXNlIEZMT1dfRU5EOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LWVycm9yLWVuZCc7XG4gICAgICAgIGNhc2UgU0NBTEFSOlxuICAgICAgICAgICAgcmV0dXJuICdzY2FsYXInO1xuICAgICAgICBjYXNlICctLS0nOlxuICAgICAgICAgICAgcmV0dXJuICdkb2Mtc3RhcnQnO1xuICAgICAgICBjYXNlICcuLi4nOlxuICAgICAgICAgICAgcmV0dXJuICdkb2MtZW5kJztcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgY2FzZSAnXFxyXFxuJzpcbiAgICAgICAgICAgIHJldHVybiAnbmV3bGluZSc7XG4gICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgcmV0dXJuICdzZXEtaXRlbS1pbmQnO1xuICAgICAgICBjYXNlICc/JzpcbiAgICAgICAgICAgIHJldHVybiAnZXhwbGljaXQta2V5LWluZCc7XG4gICAgICAgIGNhc2UgJzonOlxuICAgICAgICAgICAgcmV0dXJuICdtYXAtdmFsdWUtaW5kJztcbiAgICAgICAgY2FzZSAneyc6XG4gICAgICAgICAgICByZXR1cm4gJ2Zsb3ctbWFwLXN0YXJ0JztcbiAgICAgICAgY2FzZSAnfSc6XG4gICAgICAgICAgICByZXR1cm4gJ2Zsb3ctbWFwLWVuZCc7XG4gICAgICAgIGNhc2UgJ1snOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LXNlcS1zdGFydCc7XG4gICAgICAgIGNhc2UgJ10nOlxuICAgICAgICAgICAgcmV0dXJuICdmbG93LXNlcS1lbmQnO1xuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgICAgIHJldHVybiAnY29tbWEnO1xuICAgIH1cbiAgICBzd2l0Y2ggKHNvdXJjZVswXSkge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgY2FzZSAnXFx0JzpcbiAgICAgICAgICAgIHJldHVybiAnc3BhY2UnO1xuICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAgIHJldHVybiAnY29tbWVudCc7XG4gICAgICAgIGNhc2UgJyUnOlxuICAgICAgICAgICAgcmV0dXJuICdkaXJlY3RpdmUtbGluZSc7XG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICAgICAgcmV0dXJuICdhbGlhcyc7XG4gICAgICAgIGNhc2UgJyYnOlxuICAgICAgICAgICAgcmV0dXJuICdhbmNob3InO1xuICAgICAgICBjYXNlICchJzpcbiAgICAgICAgICAgIHJldHVybiAndGFnJztcbiAgICAgICAgY2FzZSBcIidcIjpcbiAgICAgICAgICAgIHJldHVybiAnc2luZ2xlLXF1b3RlZC1zY2FsYXInO1xuICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICByZXR1cm4gJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJztcbiAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgcmV0dXJuICdibG9jay1zY2FsYXItaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCB7IEJPTSwgRE9DVU1FTlQsIEZMT1dfRU5ELCBTQ0FMQVIsIGlzQ29sbGVjdGlvbiwgaXNTY2FsYXIsIHByZXR0eVRva2VuLCB0b2tlblR5cGUgfTtcbiIsICJpbXBvcnQgeyBCT00sIERPQ1VNRU5ULCBGTE9XX0VORCwgU0NBTEFSIH0gZnJvbSAnLi9jc3QuanMnO1xuXG4vKlxuU1RBUlQgLT4gc3RyZWFtXG5cbnN0cmVhbVxuICBkaXJlY3RpdmUgLT4gbGluZS1lbmQgLT4gc3RyZWFtXG4gIGluZGVudCArIGxpbmUtZW5kIC0+IHN0cmVhbVxuICBbZWxzZV0gLT4gbGluZS1zdGFydFxuXG5saW5lLWVuZFxuICBjb21tZW50IC0+IGxpbmUtZW5kXG4gIG5ld2xpbmUgLT4gLlxuICBpbnB1dC1lbmQgLT4gRU5EXG5cbmxpbmUtc3RhcnRcbiAgZG9jLXN0YXJ0IC0+IGRvY1xuICBkb2MtZW5kIC0+IHN0cmVhbVxuICBbZWxzZV0gLT4gaW5kZW50IC0+IGJsb2NrLXN0YXJ0XG5cbmJsb2NrLXN0YXJ0XG4gIHNlcS1pdGVtLXN0YXJ0IC0+IGJsb2NrLXN0YXJ0XG4gIGV4cGxpY2l0LWtleS1zdGFydCAtPiBibG9jay1zdGFydFxuICBtYXAtdmFsdWUtc3RhcnQgLT4gYmxvY2stc3RhcnRcbiAgW2Vsc2VdIC0+IGRvY1xuXG5kb2NcbiAgbGluZS1lbmQgLT4gbGluZS1zdGFydFxuICBzcGFjZXMgLT4gZG9jXG4gIGFuY2hvciAtPiBkb2NcbiAgdGFnIC0+IGRvY1xuICBmbG93LXN0YXJ0IC0+IGZsb3cgLT4gZG9jXG4gIGZsb3ctZW5kIC0+IGVycm9yIC0+IGRvY1xuICBzZXEtaXRlbS1zdGFydCAtPiBlcnJvciAtPiBkb2NcbiAgZXhwbGljaXQta2V5LXN0YXJ0IC0+IGVycm9yIC0+IGRvY1xuICBtYXAtdmFsdWUtc3RhcnQgLT4gZG9jXG4gIGFsaWFzIC0+IGRvY1xuICBxdW90ZS1zdGFydCAtPiBxdW90ZWQtc2NhbGFyIC0+IGRvY1xuICBibG9jay1zY2FsYXItaGVhZGVyIC0+IGxpbmUtZW5kIC0+IGJsb2NrLXNjYWxhcihtaW4pIC0+IGxpbmUtc3RhcnRcbiAgW2Vsc2VdIC0+IHBsYWluLXNjYWxhcihmYWxzZSwgbWluKSAtPiBkb2NcblxuZmxvd1xuICBsaW5lLWVuZCAtPiBmbG93XG4gIHNwYWNlcyAtPiBmbG93XG4gIGFuY2hvciAtPiBmbG93XG4gIHRhZyAtPiBmbG93XG4gIGZsb3ctc3RhcnQgLT4gZmxvdyAtPiBmbG93XG4gIGZsb3ctZW5kIC0+IC5cbiAgc2VxLWl0ZW0tc3RhcnQgLT4gZXJyb3IgLT4gZmxvd1xuICBleHBsaWNpdC1rZXktc3RhcnQgLT4gZmxvd1xuICBtYXAtdmFsdWUtc3RhcnQgLT4gZmxvd1xuICBhbGlhcyAtPiBmbG93XG4gIHF1b3RlLXN0YXJ0IC0+IHF1b3RlZC1zY2FsYXIgLT4gZmxvd1xuICBjb21tYSAtPiBmbG93XG4gIFtlbHNlXSAtPiBwbGFpbi1zY2FsYXIodHJ1ZSwgMCkgLT4gZmxvd1xuXG5xdW90ZWQtc2NhbGFyXG4gIHF1b3RlLWVuZCAtPiAuXG4gIFtlbHNlXSAtPiBxdW90ZWQtc2NhbGFyXG5cbmJsb2NrLXNjYWxhcihtaW4pXG4gIG5ld2xpbmUgKyBwZWVrKGluZGVudCA8IG1pbikgLT4gLlxuICBbZWxzZV0gLT4gYmxvY2stc2NhbGFyKG1pbilcblxucGxhaW4tc2NhbGFyKGlzLWZsb3csIG1pbilcbiAgc2NhbGFyLWVuZChpcy1mbG93KSAtPiAuXG4gIHBlZWsobmV3bGluZSArIChpbmRlbnQgPCBtaW4pKSAtPiAuXG4gIFtlbHNlXSAtPiBwbGFpbi1zY2FsYXIobWluKVxuKi9cbmZ1bmN0aW9uIGlzRW1wdHkoY2gpIHtcbiAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgY2FzZSAnXFxyJzpcbiAgICAgICAgY2FzZSAnXFx0JzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGhleERpZ2l0cyA9IG5ldyBTZXQoJzAxMjM0NTY3ODlBQkNERUZhYmNkZWYnKTtcbmNvbnN0IHRhZ0NoYXJzID0gbmV3IFNldChcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKVwiKTtcbmNvbnN0IGZsb3dJbmRpY2F0b3JDaGFycyA9IG5ldyBTZXQoJyxbXXt9Jyk7XG5jb25zdCBpbnZhbGlkQW5jaG9yQ2hhcnMgPSBuZXcgU2V0KCcgLFtde31cXG5cXHJcXHQnKTtcbmNvbnN0IGlzTm90QW5jaG9yQ2hhciA9IChjaCkgPT4gIWNoIHx8IGludmFsaWRBbmNob3JDaGFycy5oYXMoY2gpO1xuLyoqXG4gKiBTcGxpdHMgYW4gaW5wdXQgc3RyaW5nIGludG8gbGV4aWNhbCB0b2tlbnMsIGkuZS4gc21hbGxlciBzdHJpbmdzIHRoYXQgYXJlXG4gKiBlYXNpbHkgaWRlbnRpZmlhYmxlIGJ5IGB0b2tlbnMudG9rZW5UeXBlKClgLlxuICpcbiAqIExleGluZyBzdGFydHMgYWx3YXlzIGluIGEgXCJzdHJlYW1cIiBjb250ZXh0LiBJbmNvbXBsZXRlIGlucHV0IG1heSBiZSBidWZmZXJlZFxuICogdW50aWwgYSBjb21wbGV0ZSB0b2tlbiBjYW4gYmUgZW1pdHRlZC5cbiAqXG4gKiBJbiBhZGRpdGlvbiB0byBzbGljZXMgb2YgdGhlIG9yaWdpbmFsIGlucHV0LCB0aGUgZm9sbG93aW5nIGNvbnRyb2wgY2hhcmFjdGVyc1xuICogbWF5IGFsc28gYmUgZW1pdHRlZDpcbiAqXG4gKiAtIGBcXHgwMmAgKFN0YXJ0IG9mIFRleHQpOiBBIGRvY3VtZW50IHN0YXJ0cyB3aXRoIHRoZSBuZXh0IHRva2VuXG4gKiAtIGBcXHgxOGAgKENhbmNlbCk6IFVuZXhwZWN0ZWQgZW5kIG9mIGZsb3ctbW9kZSAoaW5kaWNhdGVzIGFuIGVycm9yKVxuICogLSBgXFx4MWZgIChVbml0IFNlcGFyYXRvcik6IE5leHQgdG9rZW4gaXMgYSBzY2FsYXIgdmFsdWVcbiAqIC0gYFxcdXtGRUZGfWAgKEJ5dGUgb3JkZXIgbWFyayk6IEVtaXR0ZWQgc2VwYXJhdGVseSBvdXRzaWRlIGRvY3VtZW50c1xuICovXG5jbGFzcyBMZXhlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBtYXJrcyB0aGUgZW5kIG9mXG4gICAgICAgICAqIGFsbCBpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hdEVuZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogRXhwbGljaXQgaW5kZW50IHNldCBpbiBibG9jayBzY2FsYXIgaGVhZGVyLCBhcyBhbiBvZmZzZXQgZnJvbSB0aGUgY3VycmVudFxuICAgICAgICAgKiBtaW5pbXVtIGluZGVudCwgc28gZS5nLiBzZXQgdG8gMSBmcm9tIGEgaGVhZGVyIGB8MitgLiBTZXQgdG8gLTEgaWYgbm90XG4gICAgICAgICAqIGV4cGxpY2l0bHkgc2V0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCA9IC0xO1xuICAgICAgICAvKipcbiAgICAgICAgICogQmxvY2sgc2NhbGFycyB0aGF0IGluY2x1ZGUgYSArIChrZWVwKSBjaG9tcGluZyBpbmRpY2F0b3IgaW4gdGhlaXIgaGVhZGVyXG4gICAgICAgICAqIGluY2x1ZGUgdHJhaWxpbmcgZW1wdHkgbGluZXMsIHdoaWNoIGFyZSBvdGhlcndpc2UgZXhjbHVkZWQgZnJvbSB0aGVcbiAgICAgICAgICogc2NhbGFyJ3MgY29udGVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJsb2NrU2NhbGFyS2VlcCA9IGZhbHNlO1xuICAgICAgICAvKiogQ3VycmVudCBpbnB1dCAqL1xuICAgICAgICB0aGlzLmJ1ZmZlciA9ICcnO1xuICAgICAgICAvKipcbiAgICAgICAgICogRmxhZyBub3Rpbmcgd2hldGhlciB0aGUgbWFwIHZhbHVlIGluZGljYXRvciA6IGNhbiBpbW1lZGlhdGVseSBmb2xsb3cgdGhpc1xuICAgICAgICAgKiBub2RlIHdpdGhpbiBhIGZsb3cgY29udGV4dC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZmxvd0tleSA9IGZhbHNlO1xuICAgICAgICAvKiogQ291bnQgb2Ygc3Vycm91bmRpbmcgZmxvdyBjb2xsZWN0aW9uIGxldmVscy4gKi9cbiAgICAgICAgdGhpcy5mbG93TGV2ZWwgPSAwO1xuICAgICAgICAvKipcbiAgICAgICAgICogTWluaW11bSBsZXZlbCBvZiBpbmRlbnRhdGlvbiByZXF1aXJlZCBmb3IgbmV4dCBsaW5lcyB0byBiZSBwYXJzZWQgYXMgYVxuICAgICAgICAgKiBwYXJ0IG9mIHRoZSBjdXJyZW50IHNjYWxhciB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IDA7XG4gICAgICAgIC8qKiBJbmRlbnRhdGlvbiBsZXZlbCBvZiB0aGUgY3VycmVudCBsaW5lLiAqL1xuICAgICAgICB0aGlzLmluZGVudFZhbHVlID0gMDtcbiAgICAgICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBuZXh0IFxcbiBjaGFyYWN0ZXIuICovXG4gICAgICAgIHRoaXMubGluZUVuZFBvcyA9IG51bGw7XG4gICAgICAgIC8qKiBTdG9yZXMgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBpZiByZWFjaGluZyB0aGUgZW5kIG9mIGluY3BvbXBsZXRlIGlucHV0ICovXG4gICAgICAgIHRoaXMubmV4dCA9IG51bGw7XG4gICAgICAgIC8qKiBBIHBvaW50ZXIgdG8gYGJ1ZmZlcmA7IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBsZXhlci4gKi9cbiAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZSBZQU1MIHRva2VucyBmcm9tIHRoZSBgc291cmNlYCBzdHJpbmcuIElmIGBpbmNvbXBsZXRlYCxcbiAgICAgKiBhIHBhcnQgb2YgdGhlIGxhc3QgbGluZSBtYXkgYmUgbGVmdCBhcyBhIGJ1ZmZlciBmb3IgdGhlIG5leHQgY2FsbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgZ2VuZXJhdG9yIG9mIGxleGljYWwgdG9rZW5zXG4gICAgICovXG4gICAgKmxleChzb3VyY2UsIGluY29tcGxldGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdzb3VyY2UgaXMgbm90IGEgc3RyaW5nJyk7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyID8gdGhpcy5idWZmZXIgKyBzb3VyY2UgOiBzb3VyY2U7XG4gICAgICAgICAgICB0aGlzLmxpbmVFbmRQb3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXRFbmQgPSAhaW5jb21wbGV0ZTtcbiAgICAgICAgbGV0IG5leHQgPSB0aGlzLm5leHQgPz8gJ3N0cmVhbSc7XG4gICAgICAgIHdoaWxlIChuZXh0ICYmIChpbmNvbXBsZXRlIHx8IHRoaXMuaGFzQ2hhcnMoMSkpKVxuICAgICAgICAgICAgbmV4dCA9IHlpZWxkKiB0aGlzLnBhcnNlTmV4dChuZXh0KTtcbiAgICB9XG4gICAgYXRMaW5lRW5kKCkge1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zO1xuICAgICAgICBsZXQgY2ggPSB0aGlzLmJ1ZmZlcltpXTtcbiAgICAgICAgd2hpbGUgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKVxuICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsrK2ldO1xuICAgICAgICBpZiAoIWNoIHx8IGNoID09PSAnIycgfHwgY2ggPT09ICdcXG4nKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjaCA9PT0gJ1xccicpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWZmZXJbaSArIDFdID09PSAnXFxuJztcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjaGFyQXQobikge1xuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MgKyBuXTtcbiAgICB9XG4gICAgY29udGludWVTY2FsYXIob2Zmc2V0KSB7XG4gICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW29mZnNldF07XG4gICAgICAgIGlmICh0aGlzLmluZGVudE5leHQgPiAwKSB7XG4gICAgICAgICAgICBsZXQgaW5kZW50ID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpbmRlbnQgKyBvZmZzZXRdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnXFxyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLmJ1ZmZlcltpbmRlbnQgKyBvZmZzZXQgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gJ1xcbicgfHwgKCFuZXh0ICYmICF0aGlzLmF0RW5kKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldCArIGluZGVudCArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2ggPT09ICdcXG4nIHx8IGluZGVudCA+PSB0aGlzLmluZGVudE5leHQgfHwgKCFjaCAmJiAhdGhpcy5hdEVuZClcbiAgICAgICAgICAgICAgICA/IG9mZnNldCArIGluZGVudFxuICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSAnLScgfHwgY2ggPT09ICcuJykge1xuICAgICAgICAgICAgY29uc3QgZHQgPSB0aGlzLmJ1ZmZlci5zdWJzdHIob2Zmc2V0LCAzKTtcbiAgICAgICAgICAgIGlmICgoZHQgPT09ICctLS0nIHx8IGR0ID09PSAnLi4uJykgJiYgaXNFbXB0eSh0aGlzLmJ1ZmZlcltvZmZzZXQgKyAzXSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuICAgIGdldExpbmUoKSB7XG4gICAgICAgIGxldCBlbmQgPSB0aGlzLmxpbmVFbmRQb3M7XG4gICAgICAgIGlmICh0eXBlb2YgZW5kICE9PSAnbnVtYmVyJyB8fCAoZW5kICE9PSAtMSAmJiBlbmQgPCB0aGlzLnBvcykpIHtcbiAgICAgICAgICAgIGVuZCA9IHRoaXMuYnVmZmVyLmluZGV4T2YoJ1xcbicsIHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZUVuZFBvcyA9IGVuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5kID09PSAtMSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF0RW5kID8gdGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSA6IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlcltlbmQgLSAxXSA9PT0gJ1xccicpXG4gICAgICAgICAgICBlbmQgLT0gMTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcywgZW5kKTtcbiAgICB9XG4gICAgaGFzQ2hhcnMobikge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgKyBuIDw9IHRoaXMuYnVmZmVyLmxlbmd0aDtcbiAgICB9XG4gICAgc2V0TmV4dChzdGF0ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk7XG4gICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgdGhpcy5saW5lRW5kUG9zID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0ID0gc3RhdGU7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwZWVrKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcywgbik7XG4gICAgfVxuICAgICpwYXJzZU5leHQobmV4dCkge1xuICAgICAgICBzd2l0Y2ggKG5leHQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmVhbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlU3RyZWFtKCk7XG4gICAgICAgICAgICBjYXNlICdsaW5lLXN0YXJ0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VCbG9ja1N0YXJ0KCk7XG4gICAgICAgICAgICBjYXNlICdkb2MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZURvY3VtZW50KCk7XG4gICAgICAgICAgICBjYXNlICdmbG93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VGbG93Q29sbGVjdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAncXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlUXVvdGVkU2NhbGFyKCk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7XG4gICAgICAgICAgICBjYXNlICdwbGFpbi1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZVBsYWluU2NhbGFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnBhcnNlU3RyZWFtKCkge1xuICAgICAgICBsZXQgbGluZSA9IHRoaXMuZ2V0TGluZSgpO1xuICAgICAgICBpZiAobGluZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ3N0cmVhbScpO1xuICAgICAgICBpZiAobGluZVswXSA9PT0gQk9NKSB7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVbMF0gPT09ICclJykge1xuICAgICAgICAgICAgbGV0IGRpckVuZCA9IGxpbmUubGVuZ3RoO1xuICAgICAgICAgICAgbGV0IGNzID0gbGluZS5pbmRleE9mKCcjJyk7XG4gICAgICAgICAgICB3aGlsZSAoY3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2ggPSBsaW5lW2NzIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpckVuZCA9IGNzIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjcyA9IGxpbmUuaW5kZXhPZignIycsIGNzICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGxpbmVbZGlyRW5kIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnICcgfHwgY2ggPT09ICdcXHQnKVxuICAgICAgICAgICAgICAgICAgICBkaXJFbmQgLT0gMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbiA9ICh5aWVsZCogdGhpcy5wdXNoQ291bnQoZGlyRW5kKSkgKyAoeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKSk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBuKTsgLy8gcG9zc2libGUgY29tbWVudFxuICAgICAgICAgICAgdGhpcy5wdXNoTmV3bGluZSgpO1xuICAgICAgICAgICAgcmV0dXJuICdzdHJlYW0nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF0TGluZUVuZCgpKSB7XG4gICAgICAgICAgICBjb25zdCBzcCA9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBzcCk7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoTmV3bGluZSgpO1xuICAgICAgICAgICAgcmV0dXJuICdzdHJlYW0nO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIERPQ1VNRU5UO1xuICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICB9XG4gICAgKnBhcnNlTGluZVN0YXJ0KCkge1xuICAgICAgICBjb25zdCBjaCA9IHRoaXMuY2hhckF0KDApO1xuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnbGluZS1zdGFydCcpO1xuICAgICAgICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJy4nKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXRFbmQgJiYgIXRoaXMuaGFzQ2hhcnMoNCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnbGluZS1zdGFydCcpO1xuICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMucGVlaygzKTtcbiAgICAgICAgICAgIGlmICgocyA9PT0gJy0tLScgfHwgcyA9PT0gJy4uLicpICYmIGlzRW1wdHkodGhpcy5jaGFyQXQoMykpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaENvdW50KDMpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50VmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHMgPT09ICctLS0nID8gJ2RvYycgOiAnc3RyZWFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluZGVudFZhbHVlID0geWllbGQqIHRoaXMucHVzaFNwYWNlcyhmYWxzZSk7XG4gICAgICAgIGlmICh0aGlzLmluZGVudE5leHQgPiB0aGlzLmluZGVudFZhbHVlICYmICFpc0VtcHR5KHRoaXMuY2hhckF0KDEpKSlcbiAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IHRoaXMuaW5kZW50VmFsdWU7XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUJsb2NrU3RhcnQoKTtcbiAgICB9XG4gICAgKnBhcnNlQmxvY2tTdGFydCgpIHtcbiAgICAgICAgY29uc3QgW2NoMCwgY2gxXSA9IHRoaXMucGVlaygyKTtcbiAgICAgICAgaWYgKCFjaDEgJiYgIXRoaXMuYXRFbmQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdibG9jay1zdGFydCcpO1xuICAgICAgICBpZiAoKGNoMCA9PT0gJy0nIHx8IGNoMCA9PT0gJz8nIHx8IGNoMCA9PT0gJzonKSAmJiBpc0VtcHR5KGNoMSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSAoeWllbGQqIHRoaXMucHVzaENvdW50KDEpKSArICh5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMuaW5kZW50TmV4dCA9IHRoaXMuaW5kZW50VmFsdWUgKyAxO1xuICAgICAgICAgICAgdGhpcy5pbmRlbnRWYWx1ZSArPSBuO1xuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlQmxvY2tTdGFydCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnZG9jJztcbiAgICB9XG4gICAgKnBhcnNlRG9jdW1lbnQoKSB7XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLmdldExpbmUoKTtcbiAgICAgICAgaWYgKGxpbmUgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdkb2MnKTtcbiAgICAgICAgbGV0IG4gPSB5aWVsZCogdGhpcy5wdXNoSW5kaWNhdG9ycygpO1xuICAgICAgICBzd2l0Y2ggKGxpbmVbbl0pIHtcbiAgICAgICAgICAgIGNhc2UgJyMnOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudChsaW5lLmxlbmd0aCAtIG4pO1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hOZXdsaW5lKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnBhcnNlTGluZVN0YXJ0KCk7XG4gICAgICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgIGNhc2UgJ1snOlxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dLZXkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCA9IDE7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgY2FzZSAnXSc6XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RvYyc7XG4gICAgICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoVW50aWwoaXNOb3RBbmNob3JDaGFyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RvYyc7XG4gICAgICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICBjYXNlIFwiJ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO1xuICAgICAgICAgICAgY2FzZSAnfCc6XG4gICAgICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgICAgICAgICBuICs9IHlpZWxkKiB0aGlzLnBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoKTtcbiAgICAgICAgICAgICAgICBuICs9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaENvdW50KGxpbmUubGVuZ3RoIC0gbik7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaE5ld2xpbmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VCbG9ja1NjYWxhcigpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VQbGFpblNjYWxhcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwYXJzZUZsb3dDb2xsZWN0aW9uKCkge1xuICAgICAgICBsZXQgbmwsIHNwO1xuICAgICAgICBsZXQgaW5kZW50ID0gLTE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIG5sID0geWllbGQqIHRoaXMucHVzaE5ld2xpbmUoKTtcbiAgICAgICAgICAgIGlmIChubCA+IDApIHtcbiAgICAgICAgICAgICAgICBzcCA9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50VmFsdWUgPSBpbmRlbnQgPSBzcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNwID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwICs9IHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSk7XG4gICAgICAgIH0gd2hpbGUgKG5sICsgc3AgPiAwKTtcbiAgICAgICAgY29uc3QgbGluZSA9IHRoaXMuZ2V0TGluZSgpO1xuICAgICAgICBpZiAobGluZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ2Zsb3cnKTtcbiAgICAgICAgaWYgKChpbmRlbnQgIT09IC0xICYmIGluZGVudCA8IHRoaXMuaW5kZW50TmV4dCAmJiBsaW5lWzBdICE9PSAnIycpIHx8XG4gICAgICAgICAgICAoaW5kZW50ID09PSAwICYmXG4gICAgICAgICAgICAgICAgKGxpbmUuc3RhcnRzV2l0aCgnLS0tJykgfHwgbGluZS5zdGFydHNXaXRoKCcuLi4nKSkgJiZcbiAgICAgICAgICAgICAgICBpc0VtcHR5KGxpbmVbM10pKSkge1xuICAgICAgICAgICAgLy8gQWxsb3dpbmcgZm9yIHRoZSB0ZXJtaW5hbCBdIG9yIH0gYXQgdGhlIHNhbWUgKHJhdGhlciB0aGFuIGdyZWF0ZXIpXG4gICAgICAgICAgICAvLyBpbmRlbnQgbGV2ZWwgYXMgdGhlIGluaXRpYWwgWyBvciB7IGlzIHRlY2huaWNhbGx5IGludmFsaWQsIGJ1dFxuICAgICAgICAgICAgLy8gZmFpbGluZyBoZXJlIHdvdWxkIGJlIHN1cnByaXNpbmcgdG8gdXNlcnMuXG4gICAgICAgICAgICBjb25zdCBhdEZsb3dFbmRNYXJrZXIgPSBpbmRlbnQgPT09IHRoaXMuaW5kZW50TmV4dCAtIDEgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIChsaW5lWzBdID09PSAnXScgfHwgbGluZVswXSA9PT0gJ30nKTtcbiAgICAgICAgICAgIGlmICghYXRGbG93RW5kTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIHRoaXMuZmxvd0xldmVsID0gMDtcbiAgICAgICAgICAgICAgICB5aWVsZCBGTE9XX0VORDtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VMaW5lU3RhcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgbiA9IDA7XG4gICAgICAgIHdoaWxlIChsaW5lW25dID09PSAnLCcpIHtcbiAgICAgICAgICAgIG4gKz0geWllbGQqIHRoaXMucHVzaENvdW50KDEpO1xuICAgICAgICAgICAgbiArPSB5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbiArPSB5aWVsZCogdGhpcy5wdXNoSW5kaWNhdG9ycygpO1xuICAgICAgICBzd2l0Y2ggKGxpbmVbbl0pIHtcbiAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmxvdyc7XG4gICAgICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQobGluZS5sZW5ndGggLSBuKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Zsb3cnO1xuICAgICAgICAgICAgY2FzZSAneyc6XG4gICAgICAgICAgICBjYXNlICdbJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93TGV2ZWwgKz0gMTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Zsb3cnO1xuICAgICAgICAgICAgY2FzZSAnfSc6XG4gICAgICAgICAgICBjYXNlICddJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wdXNoQ291bnQoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dMZXZlbCAtPSAxO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dMZXZlbCA/ICdmbG93JyA6ICdkb2MnO1xuICAgICAgICAgICAgY2FzZSAnKic6XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaFVudGlsKGlzTm90QW5jaG9yQ2hhcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICAgIGNhc2UgXCInXCI6XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKTtcbiAgICAgICAgICAgIGNhc2UgJzonOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuY2hhckF0KDEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZsb3dLZXkgfHwgaXNFbXB0eShuZXh0KSB8fCBuZXh0ID09PSAnLCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgxKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdmbG93JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmZsb3dLZXkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucGFyc2VQbGFpblNjYWxhcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwYXJzZVF1b3RlZFNjYWxhcigpIHtcbiAgICAgICAgY29uc3QgcXVvdGUgPSB0aGlzLmNoYXJBdCgwKTtcbiAgICAgICAgbGV0IGVuZCA9IHRoaXMuYnVmZmVyLmluZGV4T2YocXVvdGUsIHRoaXMucG9zICsgMSk7XG4gICAgICAgIGlmIChxdW90ZSA9PT0gXCInXCIpIHtcbiAgICAgICAgICAgIHdoaWxlIChlbmQgIT09IC0xICYmIHRoaXMuYnVmZmVyW2VuZCArIDFdID09PSBcIidcIilcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmJ1ZmZlci5pbmRleE9mKFwiJ1wiLCBlbmQgKyAyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGRvdWJsZS1xdW90ZVxuICAgICAgICAgICAgd2hpbGUgKGVuZCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgbiA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuYnVmZmVyW2VuZCAtIDEgLSBuXSA9PT0gJ1xcXFwnKVxuICAgICAgICAgICAgICAgICAgICBuICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKG4gJSAyID09PSAwKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmJ1ZmZlci5pbmRleE9mKCdcIicsIGVuZCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgbG9va2luZyBmb3IgbmV3bGluZXMgd2l0aGluIHRoZSBxdW90ZXNcbiAgICAgICAgY29uc3QgcWIgPSB0aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCwgZW5kKTtcbiAgICAgICAgbGV0IG5sID0gcWIuaW5kZXhPZignXFxuJywgdGhpcy5wb3MpO1xuICAgICAgICBpZiAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICB3aGlsZSAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3MgPSB0aGlzLmNvbnRpbnVlU2NhbGFyKG5sICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKGNzID09PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgbmwgPSBxYi5pbmRleE9mKCdcXG4nLCBjcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmwgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiBlcnJvciBjYXVzZWQgYnkgYW4gdW5leHBlY3RlZCB1bmluZGVudFxuICAgICAgICAgICAgICAgIGVuZCA9IG5sIC0gKHFiW25sIC0gMV0gPT09ICdcXHInID8gMiA6IDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQgPT09IC0xKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXRFbmQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgncXVvdGVkLXNjYWxhcicpO1xuICAgICAgICAgICAgZW5kID0gdGhpcy5idWZmZXIubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hUb0luZGV4KGVuZCArIDEsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxvd0xldmVsID8gJ2Zsb3cnIDogJ2RvYyc7XG4gICAgfVxuICAgICpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkge1xuICAgICAgICB0aGlzLmJsb2NrU2NhbGFySW5kZW50ID0gLTE7XG4gICAgICAgIHRoaXMuYmxvY2tTY2FsYXJLZWVwID0gZmFsc2U7XG4gICAgICAgIGxldCBpID0gdGhpcy5wb3M7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgICAgICBpZiAoY2ggPT09ICcrJylcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrU2NhbGFyS2VlcCA9IHRydWU7XG4gICAgICAgICAgICBlbHNlIGlmIChjaCA+ICcwJyAmJiBjaCA8PSAnOScpXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCA9IE51bWJlcihjaCkgLSAxO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2ggIT09ICctJylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaFVudGlsKGNoID0+IGlzRW1wdHkoY2gpIHx8IGNoID09PSAnIycpO1xuICAgIH1cbiAgICAqcGFyc2VCbG9ja1NjYWxhcigpIHtcbiAgICAgICAgbGV0IG5sID0gdGhpcy5wb3MgLSAxOyAvLyBtYXkgYmUgLTEgaWYgdGhpcy5wb3MgPT09IDBcbiAgICAgICAgbGV0IGluZGVudCA9IDA7XG4gICAgICAgIGxldCBjaDtcbiAgICAgICAgbG9vcDogZm9yIChsZXQgaSA9IHRoaXMucG9zOyAoY2ggPSB0aGlzLmJ1ZmZlcltpXSk7ICsraSkge1xuICAgICAgICAgICAgc3dpdGNoIChjaCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcbiAgICAgICAgICAgICAgICAgICAgbmwgPSBpO1xuICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdcXHInOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLmJ1ZmZlcltpICsgMV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV4dCAmJiAhdGhpcy5hdEVuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE5leHQoJ2Jsb2NrLXNjYWxhcicpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gJ1xcbicpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgnYmxvY2stc2NhbGFyJyk7XG4gICAgICAgIGlmIChpbmRlbnQgPj0gdGhpcy5pbmRlbnROZXh0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ibG9ja1NjYWxhckluZGVudCA9PT0gLTEpXG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID0gaW5kZW50O1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja1NjYWxhckluZGVudCArICh0aGlzLmluZGVudE5leHQgPT09IDAgPyAxIDogdGhpcy5pbmRlbnROZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcyA9IHRoaXMuY29udGludWVTY2FsYXIobmwgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAoY3MgPT09IC0xKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuYnVmZmVyLmluZGV4T2YoJ1xcbicsIGNzKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKG5sICE9PSAtMSk7XG4gICAgICAgICAgICBpZiAobmwgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXROZXh0KCdibG9jay1zY2FsYXInKTtcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuYnVmZmVyLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFpbGluZyBpbnN1ZmZpY2llbnRseSBpbmRlbnRlZCB0YWJzIGFyZSBpbnZhbGlkLlxuICAgICAgICAvLyBUbyBjYXRjaCB0aGF0IGR1cmluZyBwYXJzaW5nLCB3ZSBpbmNsdWRlIHRoZW0gaW4gdGhlIGJsb2NrIHNjYWxhciB2YWx1ZS5cbiAgICAgICAgbGV0IGkgPSBubCArIDE7XG4gICAgICAgIGNoID0gdGhpcy5idWZmZXJbaV07XG4gICAgICAgIHdoaWxlIChjaCA9PT0gJyAnKVxuICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsrK2ldO1xuICAgICAgICBpZiAoY2ggPT09ICdcXHQnKSB7XG4gICAgICAgICAgICB3aGlsZSAoY2ggPT09ICdcXHQnIHx8IGNoID09PSAnICcgfHwgY2ggPT09ICdcXHInIHx8IGNoID09PSAnXFxuJylcbiAgICAgICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgICAgICBubCA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmJsb2NrU2NhbGFyS2VlcCkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGxldCBpID0gbmwgLSAxO1xuICAgICAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbLS1pXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGk7IC8vIERyb3AgdGhlIGxpbmUgaWYgbGFzdCBjaGFyIG5vdCBtb3JlIGluZGVudGVkXG4gICAgICAgICAgICAgICAgd2hpbGUgKGNoID09PSAnICcpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbLS1pXTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXG4nICYmIGkgPj0gdGhpcy5wb3MgJiYgaSArIDEgKyBpbmRlbnQgPiBsYXN0Q2hhcilcbiAgICAgICAgICAgICAgICAgICAgbmwgPSBpO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IHdoaWxlICh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBTQ0FMQVI7XG4gICAgICAgIHlpZWxkKiB0aGlzLnB1c2hUb0luZGV4KG5sICsgMSwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wYXJzZUxpbmVTdGFydCgpO1xuICAgIH1cbiAgICAqcGFyc2VQbGFpblNjYWxhcigpIHtcbiAgICAgICAgY29uc3QgaW5GbG93ID0gdGhpcy5mbG93TGV2ZWwgPiAwO1xuICAgICAgICBsZXQgZW5kID0gdGhpcy5wb3MgLSAxO1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zIC0gMTtcbiAgICAgICAgbGV0IGNoO1xuICAgICAgICB3aGlsZSAoKGNoID0gdGhpcy5idWZmZXJbKytpXSkpIHtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJzonKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuYnVmZmVyW2kgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eShuZXh0KSB8fCAoaW5GbG93ICYmIGZsb3dJbmRpY2F0b3JDaGFycy5oYXMobmV4dCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBlbmQgPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNFbXB0eShjaCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHRoaXMuYnVmZmVyW2kgKyAxXTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXHInKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAnXFxuJztcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLmJ1ZmZlcltpICsgMV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgPT09ICcjJyB8fCAoaW5GbG93ICYmIGZsb3dJbmRpY2F0b3JDaGFycy5oYXMobmV4dCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzID0gdGhpcy5jb250aW51ZVNjYWxhcihpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcyA9PT0gLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgaSA9IE1hdGgubWF4KGksIGNzIC0gMik7IC8vIHRvIGFkdmFuY2UsIGJ1dCBzdGlsbCBhY2NvdW50IGZvciAnICMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGluRmxvdyAmJiBmbG93SW5kaWNhdG9yQ2hhcnMuaGFzKGNoKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZW5kID0gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoICYmICF0aGlzLmF0RW5kKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0TmV4dCgncGxhaW4tc2NhbGFyJyk7XG4gICAgICAgIHlpZWxkIFNDQUxBUjtcbiAgICAgICAgeWllbGQqIHRoaXMucHVzaFRvSW5kZXgoZW5kICsgMSwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBpbkZsb3cgPyAnZmxvdycgOiAnZG9jJztcbiAgICB9XG4gICAgKnB1c2hDb3VudChuKSB7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgICAgeWllbGQgdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLCBuKTtcbiAgICAgICAgICAgIHRoaXMucG9zICs9IG47XG4gICAgICAgICAgICByZXR1cm4gbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgKnB1c2hUb0luZGV4KGksIGFsbG93RW1wdHkpIHtcbiAgICAgICAgY29uc3QgcyA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLCBpKTtcbiAgICAgICAgaWYgKHMpIHtcbiAgICAgICAgICAgIHlpZWxkIHM7XG4gICAgICAgICAgICB0aGlzLnBvcyArPSBzLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiBzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChhbGxvd0VtcHR5KVxuICAgICAgICAgICAgeWllbGQgJyc7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAqcHVzaEluZGljYXRvcnMoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jaGFyQXQoMCkpIHtcbiAgICAgICAgICAgIGNhc2UgJyEnOlxuICAgICAgICAgICAgICAgIHJldHVybiAoKHlpZWxkKiB0aGlzLnB1c2hUYWcoKSkgK1xuICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaFNwYWNlcyh0cnVlKSkgK1xuICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaEluZGljYXRvcnMoKSkpO1xuICAgICAgICAgICAgY2FzZSAnJic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICgoeWllbGQqIHRoaXMucHVzaFVudGlsKGlzTm90QW5jaG9yQ2hhcikpICtcbiAgICAgICAgICAgICAgICAgICAgKHlpZWxkKiB0aGlzLnB1c2hTcGFjZXModHJ1ZSkpICtcbiAgICAgICAgICAgICAgICAgICAgKHlpZWxkKiB0aGlzLnB1c2hJbmRpY2F0b3JzKCkpKTtcbiAgICAgICAgICAgIGNhc2UgJy0nOiAvLyB0aGlzIGlzIGFuIGVycm9yXG4gICAgICAgICAgICBjYXNlICc/JzogLy8gdGhpcyBpcyBhbiBlcnJvciBvdXRzaWRlIGZsb3cgY29sbGVjdGlvbnNcbiAgICAgICAgICAgIGNhc2UgJzonOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5GbG93ID0gdGhpcy5mbG93TGV2ZWwgPiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoMSA9IHRoaXMuY2hhckF0KDEpO1xuICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KGNoMSkgfHwgKGluRmxvdyAmJiBmbG93SW5kaWNhdG9yQ2hhcnMuaGFzKGNoMSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5GbG93KVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnROZXh0ID0gdGhpcy5pbmRlbnRWYWx1ZSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZmxvd0tleSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmxvd0tleSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCh5aWVsZCogdGhpcy5wdXNoQ291bnQoMSkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICh5aWVsZCogdGhpcy5wdXNoU3BhY2VzKHRydWUpKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAoeWllbGQqIHRoaXMucHVzaEluZGljYXRvcnMoKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgKnB1c2hUYWcoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJBdCgxKSA9PT0gJzwnKSB7XG4gICAgICAgICAgICBsZXQgaSA9IHRoaXMucG9zICsgMjtcbiAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgd2hpbGUgKCFpc0VtcHR5KGNoKSAmJiBjaCAhPT0gJz4nKVxuICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpXTtcbiAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wdXNoVG9JbmRleChjaCA9PT0gJz4nID8gaSArIDEgOiBpLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgaSA9IHRoaXMucG9zICsgMTtcbiAgICAgICAgICAgIGxldCBjaCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgd2hpbGUgKGNoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhZ0NoYXJzLmhhcyhjaCkpXG4gICAgICAgICAgICAgICAgICAgIGNoID0gdGhpcy5idWZmZXJbKytpXTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaCA9PT0gJyUnICYmXG4gICAgICAgICAgICAgICAgICAgIGhleERpZ2l0cy5oYXModGhpcy5idWZmZXJbaSArIDFdKSAmJlxuICAgICAgICAgICAgICAgICAgICBoZXhEaWdpdHMuaGFzKHRoaXMuYnVmZmVyW2kgKyAyXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2ggPSB0aGlzLmJ1ZmZlclsoaSArPSAzKV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaFRvSW5kZXgoaSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgICpwdXNoTmV3bGluZSgpIHtcbiAgICAgICAgY29uc3QgY2ggPSB0aGlzLmJ1ZmZlclt0aGlzLnBvc107XG4gICAgICAgIGlmIChjaCA9PT0gJ1xcbicpXG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMucHVzaENvdW50KDEpO1xuICAgICAgICBlbHNlIGlmIChjaCA9PT0gJ1xccicgJiYgdGhpcy5jaGFyQXQoMSkgPT09ICdcXG4nKVxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnB1c2hDb3VudCgyKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgICpwdXNoU3BhY2VzKGFsbG93VGFicykge1xuICAgICAgICBsZXQgaSA9IHRoaXMucG9zIC0gMTtcbiAgICAgICAgbGV0IGNoO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgIH0gd2hpbGUgKGNoID09PSAnICcgfHwgKGFsbG93VGFicyAmJiBjaCA9PT0gJ1xcdCcpKTtcbiAgICAgICAgY29uc3QgbiA9IGkgLSB0aGlzLnBvcztcbiAgICAgICAgaWYgKG4gPiAwKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsIG4pO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSBpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuO1xuICAgIH1cbiAgICAqcHVzaFVudGlsKHRlc3QpIHtcbiAgICAgICAgbGV0IGkgPSB0aGlzLnBvcztcbiAgICAgICAgbGV0IGNoID0gdGhpcy5idWZmZXJbaV07XG4gICAgICAgIHdoaWxlICghdGVzdChjaCkpXG4gICAgICAgICAgICBjaCA9IHRoaXMuYnVmZmVyWysraV07XG4gICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5wdXNoVG9JbmRleChpLCBmYWxzZSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBMZXhlciB9O1xuIiwgIi8qKlxuICogVHJhY2tzIG5ld2xpbmVzIGR1cmluZyBwYXJzaW5nIGluIG9yZGVyIHRvIHByb3ZpZGUgYW4gZWZmaWNpZW50IEFQSSBmb3JcbiAqIGRldGVybWluaW5nIHRoZSBvbmUtaW5kZXhlZCBgeyBsaW5lLCBjb2wgfWAgcG9zaXRpb24gZm9yIGFueSBvZmZzZXRcbiAqIHdpdGhpbiB0aGUgaW5wdXQuXG4gKi9cbmNsYXNzIExpbmVDb3VudGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5saW5lU3RhcnRzID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaG91bGQgYmUgY2FsbGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLCBjYWxsXG4gICAgICAgICAqIGBsaW5lQ291bnRlci5saW5lU3RhcnRzLnNvcnQoKWAgYmVmb3JlIGNhbGxpbmcgYGxpbmVQb3MoKWAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFkZE5ld0xpbmUgPSAob2Zmc2V0KSA9PiB0aGlzLmxpbmVTdGFydHMucHVzaChvZmZzZXQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogUGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoIGFuZCByZXR1cm5zIHRoZSAxLWluZGV4ZWQgeyBsaW5lLCBjb2wgfVxuICAgICAgICAgKiBwb3NpdGlvbiBvZiBgb2Zmc2V0YC4gSWYgYGxpbmUgPT09IDBgLCBgYWRkTmV3TGluZWAgaGFzIG5ldmVyIGJlZW5cbiAgICAgICAgICogY2FsbGVkIG9yIGBvZmZzZXRgIGlzIGJlZm9yZSB0aGUgZmlyc3Qga25vd24gbmV3bGluZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGluZVBvcyA9IChvZmZzZXQpID0+IHtcbiAgICAgICAgICAgIGxldCBsb3cgPSAwO1xuICAgICAgICAgICAgbGV0IGhpZ2ggPSB0aGlzLmxpbmVTdGFydHMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaWQgPSAobG93ICsgaGlnaCkgPj4gMTsgLy8gTWF0aC5mbG9vcigobG93ICsgaGlnaCkgLyAyKVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVTdGFydHNbbWlkXSA8IG9mZnNldClcbiAgICAgICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5saW5lU3RhcnRzW2xvd10gPT09IG9mZnNldClcbiAgICAgICAgICAgICAgICByZXR1cm4geyBsaW5lOiBsb3cgKyAxLCBjb2w6IDEgfTtcbiAgICAgICAgICAgIGlmIChsb3cgPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbGluZTogMCwgY29sOiBvZmZzZXQgfTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5saW5lU3RhcnRzW2xvdyAtIDFdO1xuICAgICAgICAgICAgcmV0dXJuIHsgbGluZTogbG93LCBjb2w6IG9mZnNldCAtIHN0YXJ0ICsgMSB9O1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTGluZUNvdW50ZXIgfTtcbiIsICJpbXBvcnQgeyB0b2tlblR5cGUgfSBmcm9tICcuL2NzdC5qcyc7XG5pbXBvcnQgeyBMZXhlciB9IGZyb20gJy4vbGV4ZXIuanMnO1xuXG5mdW5jdGlvbiBpbmNsdWRlc1Rva2VuKGxpc3QsIHR5cGUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpXG4gICAgICAgIGlmIChsaXN0W2ldLnR5cGUgPT09IHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBmaW5kTm9uRW1wdHlJbmRleChsaXN0KSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHN3aXRjaCAobGlzdFtpXS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ25ld2xpbmUnOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBpc0Zsb3dUb2tlbih0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4/LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgY2FzZSAnZmxvdy1jb2xsZWN0aW9uJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldFByZXZQcm9wcyhwYXJlbnQpIHtcbiAgICBzd2l0Y2ggKHBhcmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2RvY3VtZW50JzpcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQuc3RhcnQ7XG4gICAgICAgIGNhc2UgJ2Jsb2NrLW1hcCc6IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ID0gcGFyZW50Lml0ZW1zW3BhcmVudC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIHJldHVybiBpdC5zZXAgPz8gaXQuc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnYmxvY2stc2VxJzpcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQuaXRlbXNbcGFyZW50Lml0ZW1zLmxlbmd0aCAtIDFdLnN0YXJ0O1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbn1cbi8qKiBOb3RlOiBNYXkgbW9kaWZ5IGlucHV0IGFycmF5ICovXG5mdW5jdGlvbiBnZXRGaXJzdEtleVN0YXJ0UHJvcHMocHJldikge1xuICAgIGlmIChwcmV2Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIGxldCBpID0gcHJldi5sZW5ndGg7XG4gICAgbG9vcDogd2hpbGUgKC0taSA+PSAwKSB7XG4gICAgICAgIHN3aXRjaCAocHJldltpXS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkb2Mtc3RhcnQnOlxuICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgIGNhc2UgJ3NlcS1pdGVtLWluZCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBicmVhayBsb29wO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdoaWxlIChwcmV2WysraV0/LnR5cGUgPT09ICdzcGFjZScpIHtcbiAgICAgICAgLyogbG9vcCAqL1xuICAgIH1cbiAgICByZXR1cm4gcHJldi5zcGxpY2UoaSwgcHJldi5sZW5ndGgpO1xufVxuZnVuY3Rpb24gZml4Rmxvd1NlcUl0ZW1zKGZjKSB7XG4gICAgaWYgKGZjLnN0YXJ0LnR5cGUgPT09ICdmbG93LXNlcS1zdGFydCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdCBvZiBmYy5pdGVtcykge1xuICAgICAgICAgICAgaWYgKGl0LnNlcCAmJlxuICAgICAgICAgICAgICAgICFpdC52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICFpbmNsdWRlc1Rva2VuKGl0LnN0YXJ0LCAnZXhwbGljaXQta2V5LWluZCcpICYmXG4gICAgICAgICAgICAgICAgIWluY2x1ZGVzVG9rZW4oaXQuc2VwLCAnbWFwLXZhbHVlLWluZCcpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0LmtleSlcbiAgICAgICAgICAgICAgICAgICAgaXQudmFsdWUgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0LmtleTtcbiAgICAgICAgICAgICAgICBpZiAoaXNGbG93VG9rZW4oaXQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZS5lbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShpdC52YWx1ZS5lbmQsIGl0LnNlcCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlLmVuZCA9IGl0LnNlcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShpdC5zdGFydCwgaXQuc2VwKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXQuc2VwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBBIFlBTUwgY29uY3JldGUgc3ludGF4IHRyZWUgKENTVCkgcGFyc2VyXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IHNyYzogc3RyaW5nID0gLi4uXG4gKiBmb3IgKGNvbnN0IHRva2VuIG9mIG5ldyBQYXJzZXIoKS5wYXJzZShzcmMpKSB7XG4gKiAgIC8vIHRva2VuOiBUb2tlblxuICogfVxuICogYGBgXG4gKlxuICogVG8gdXNlIHRoZSBwYXJzZXIgd2l0aCBhIHVzZXItcHJvdmlkZWQgbGV4ZXI6XG4gKlxuICogYGBgdHNcbiAqIGZ1bmN0aW9uKiBwYXJzZShzb3VyY2U6IHN0cmluZywgbGV4ZXI6IExleGVyKSB7XG4gKiAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoKVxuICogICBmb3IgKGNvbnN0IGxleGVtZSBvZiBsZXhlci5sZXgoc291cmNlKSlcbiAqICAgICB5aWVsZCogcGFyc2VyLm5leHQobGV4ZW1lKVxuICogICB5aWVsZCogcGFyc2VyLmVuZCgpXG4gKiB9XG4gKlxuICogY29uc3Qgc3JjOiBzdHJpbmcgPSAuLi5cbiAqIGNvbnN0IGxleGVyID0gbmV3IExleGVyKClcbiAqIGZvciAoY29uc3QgdG9rZW4gb2YgcGFyc2Uoc3JjLCBsZXhlcikpIHtcbiAqICAgLy8gdG9rZW46IFRva2VuXG4gKiB9XG4gKiBgYGBcbiAqL1xuY2xhc3MgUGFyc2VyIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb25OZXdMaW5lIC0gSWYgZGVmaW5lZCwgY2FsbGVkIHNlcGFyYXRlbHkgd2l0aCB0aGUgc3RhcnQgcG9zaXRpb24gb2ZcbiAgICAgKiAgIGVhY2ggbmV3IGxpbmUgKGluIGBwYXJzZSgpYCwgaW5jbHVkaW5nIHRoZSBzdGFydCBvZiBpbnB1dCkuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob25OZXdMaW5lKSB7XG4gICAgICAgIC8qKiBJZiB0cnVlLCBzcGFjZSBhbmQgc2VxdWVuY2UgaW5kaWNhdG9ycyBjb3VudCBhcyBpbmRlbnRhdGlvbiAqL1xuICAgICAgICB0aGlzLmF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgIC8qKiBJZiB0cnVlLCBuZXh0IHRva2VuIGlzIGEgc2NhbGFyIHZhbHVlICovXG4gICAgICAgIHRoaXMuYXRTY2FsYXIgPSBmYWxzZTtcbiAgICAgICAgLyoqIEN1cnJlbnQgaW5kZW50YXRpb24gbGV2ZWwgKi9cbiAgICAgICAgdGhpcy5pbmRlbnQgPSAwO1xuICAgICAgICAvKiogQ3VycmVudCBvZmZzZXQgc2luY2UgdGhlIHN0YXJ0IG9mIHBhcnNpbmcgKi9cbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICAvKiogT24gdGhlIHNhbWUgbGluZSB3aXRoIGEgYmxvY2sgbWFwIGtleSAqL1xuICAgICAgICB0aGlzLm9uS2V5TGluZSA9IGZhbHNlO1xuICAgICAgICAvKiogVG9wIGluZGljYXRlcyB0aGUgbm9kZSB0aGF0J3MgY3VycmVudGx5IGJlaW5nIGJ1aWx0ICovXG4gICAgICAgIHRoaXMuc3RhY2sgPSBbXTtcbiAgICAgICAgLyoqIFRoZSBzb3VyY2Ugb2YgdGhlIGN1cnJlbnQgdG9rZW4sIHNldCBpbiBwYXJzZSgpICovXG4gICAgICAgIHRoaXMuc291cmNlID0gJyc7XG4gICAgICAgIC8qKiBUaGUgdHlwZSBvZiB0aGUgY3VycmVudCB0b2tlbiwgc2V0IGluIHBhcnNlKCkgKi9cbiAgICAgICAgdGhpcy50eXBlID0gJyc7XG4gICAgICAgIC8vIE11c3QgYmUgZGVmaW5lZCBhZnRlciBgbmV4dCgpYFxuICAgICAgICB0aGlzLmxleGVyID0gbmV3IExleGVyKCk7XG4gICAgICAgIHRoaXMub25OZXdMaW5lID0gb25OZXdMaW5lO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQYXJzZSBgc291cmNlYCBhcyBhIFlBTUwgc3RyZWFtLlxuICAgICAqIElmIGBpbmNvbXBsZXRlYCwgYSBwYXJ0IG9mIHRoZSBsYXN0IGxpbmUgbWF5IGJlIGxlZnQgYXMgYSBidWZmZXIgZm9yIHRoZSBuZXh0IGNhbGwuXG4gICAgICpcbiAgICAgKiBFcnJvcnMgYXJlIG5vdCB0aHJvd24sIGJ1dCB5aWVsZGVkIGFzIGB7IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2UgfWAgdG9rZW5zLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBnZW5lcmF0b3Igb2YgdG9rZW5zIHJlcHJlc2VudGluZyBlYWNoIGRpcmVjdGl2ZSwgZG9jdW1lbnQsIGFuZCBvdGhlciBzdHJ1Y3R1cmUuXG4gICAgICovXG4gICAgKnBhcnNlKHNvdXJjZSwgaW5jb21wbGV0ZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSAmJiB0aGlzLm9mZnNldCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMub25OZXdMaW5lKDApO1xuICAgICAgICBmb3IgKGNvbnN0IGxleGVtZSBvZiB0aGlzLmxleGVyLmxleChzb3VyY2UsIGluY29tcGxldGUpKVxuICAgICAgICAgICAgeWllbGQqIHRoaXMubmV4dChsZXhlbWUpO1xuICAgICAgICBpZiAoIWluY29tcGxldGUpXG4gICAgICAgICAgICB5aWVsZCogdGhpcy5lbmQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWR2YW5jZSB0aGUgcGFyc2VyIGJ5IHRoZSBgc291cmNlYCBvZiBvbmUgbGV4aWNhbCB0b2tlbi5cbiAgICAgKi9cbiAgICAqbmV4dChzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIGlmICh0aGlzLmF0U2NhbGFyKSB7XG4gICAgICAgICAgICB0aGlzLmF0U2NhbGFyID0gZmFsc2U7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0b2tlblR5cGUoc291cmNlKTtcbiAgICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYE5vdCBhIFlBTUwgdG9rZW46ICR7c291cmNlfWA7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoeyB0eXBlOiAnZXJyb3InLCBvZmZzZXQ6IHRoaXMub2Zmc2V0LCBtZXNzYWdlLCBzb3VyY2UgfSk7XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdzY2FsYXInKSB7XG4gICAgICAgICAgICB0aGlzLmF0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hdFNjYWxhciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSAnc2NhbGFyJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGVudCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0ICsgc291cmNlLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXROZXdMaW5lICYmIHNvdXJjZVswXSA9PT0gJyAnKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgKz0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbWFwLXZhbHVlLWluZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2VxLWl0ZW0taW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXROZXdMaW5lKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgKz0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZG9jLW1vZGUnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb3ctZXJyb3ItZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9mZnNldCArPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBDYWxsIGF0IGVuZCBvZiBpbnB1dCB0byBwdXNoIG91dCBhbnkgcmVtYWluaW5nIGNvbnN0cnVjdGlvbnMgKi9cbiAgICAqZW5kKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5zdGFjay5sZW5ndGggPiAwKVxuICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgfVxuICAgIGdldCBzb3VyY2VUb2tlbigpIHtcbiAgICAgICAgY29uc3Qgc3QgPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN0O1xuICAgIH1cbiAgICAqc3RlcCgpIHtcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy5wZWVrKDEpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnZG9jLWVuZCcgJiYgKCF0b3AgfHwgdG9wLnR5cGUgIT09ICdkb2MtZW5kJykpIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLnN0YWNrLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdkb2MtZW5kJyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdG9wKVxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLnN0cmVhbSgpO1xuICAgICAgICBzd2l0Y2ggKHRvcC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkb2N1bWVudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLmRvY3VtZW50KHRvcCk7XG4gICAgICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICAgICAgY2FzZSAnc2luZ2xlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5zY2FsYXIodG9wKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jsb2NrLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiB0aGlzLmJsb2NrU2NhbGFyKHRvcCk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1tYXAnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5ibG9ja01hcCh0b3ApO1xuICAgICAgICAgICAgY2FzZSAnYmxvY2stc2VxJzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMuYmxvY2tTZXF1ZW5jZSh0b3ApO1xuICAgICAgICAgICAgY2FzZSAnZmxvdy1jb2xsZWN0aW9uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMuZmxvd0NvbGxlY3Rpb24odG9wKTtcbiAgICAgICAgICAgIGNhc2UgJ2RvYy1lbmQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogdGhpcy5kb2N1bWVudEVuZCh0b3ApO1xuICAgICAgICB9XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IHNob3VsZCBub3QgaGFwcGVuICovXG4gICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgIH1cbiAgICBwZWVrKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSBuXTtcbiAgICB9XG4gICAgKnBvcChlcnJvcikge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVycm9yID8/IHRoaXMuc3RhY2sucG9wKCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gJ1RyaWVkIHRvIHBvcCBhbiBlbXB0eSBzdGFjayc7XG4gICAgICAgICAgICB5aWVsZCB7IHR5cGU6ICdlcnJvcicsIG9mZnNldDogdGhpcy5vZmZzZXQsIHNvdXJjZTogJycsIG1lc3NhZ2UgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnN0YWNrLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSB0aGlzLnBlZWsoMSk7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2Jsb2NrLXNjYWxhcicpIHtcbiAgICAgICAgICAgICAgICAvLyBCbG9jayBzY2FsYXJzIHVzZSB0aGVpciBwYXJlbnQgcmF0aGVyIHRoYW4gaGVhZGVyIGluZGVudFxuICAgICAgICAgICAgICAgIHRva2VuLmluZGVudCA9ICdpbmRlbnQnIGluIHRvcCA/IHRvcC5pbmRlbnQgOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gJ2Zsb3ctY29sbGVjdGlvbicgJiYgdG9wLnR5cGUgPT09ICdkb2N1bWVudCcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgYWxsIGluZGVudCBmb3IgdG9wLWxldmVsIGZsb3cgY29sbGVjdGlvbnNcbiAgICAgICAgICAgICAgICB0b2tlbi5pbmRlbnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdmbG93LWNvbGxlY3Rpb24nKVxuICAgICAgICAgICAgICAgIGZpeEZsb3dTZXFJdGVtcyh0b2tlbik7XG4gICAgICAgICAgICBzd2l0Y2ggKHRvcC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZG9jdW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICB0b3AudmFsdWUgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmxvY2stc2NhbGFyJzpcbiAgICAgICAgICAgICAgICAgICAgdG9wLnByb3BzLnB1c2godG9rZW4pOyAvLyBlcnJvclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdibG9jay1tYXAnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdG9wLml0ZW1zW3RvcC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiB0b2tlbiwgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpdC5zZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogdG9rZW4sIHNlcDogW10gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9ICFpdC5leHBsaWNpdEtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnYmxvY2stc2VxJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdCA9IHRvcC5pdGVtc1t0b3AuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcC5pdGVtcy5wdXNoKHsgc3RhcnQ6IFtdLCB2YWx1ZTogdG9rZW4gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnZhbHVlID0gdG9rZW47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdmbG93LWNvbGxlY3Rpb24nOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdG9wLml0ZW1zW3RvcC5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpdCB8fCBpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcC5pdGVtcy5wdXNoKHsgc3RhcnQ6IFtdLCBrZXk6IHRva2VuLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpdC5zZXApXG4gICAgICAgICAgICAgICAgICAgICAgICBpdC52YWx1ZSA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogdG9rZW4sIHNlcDogW10gfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgodG9wLnR5cGUgPT09ICdkb2N1bWVudCcgfHxcbiAgICAgICAgICAgICAgICB0b3AudHlwZSA9PT0gJ2Jsb2NrLW1hcCcgfHxcbiAgICAgICAgICAgICAgICB0b3AudHlwZSA9PT0gJ2Jsb2NrLXNlcScpICYmXG4gICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09ICdibG9jay1tYXAnIHx8IHRva2VuLnR5cGUgPT09ICdibG9jay1zZXEnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSB0b2tlbi5pdGVtc1t0b2tlbi5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAmJlxuICAgICAgICAgICAgICAgICAgICAhbGFzdC5zZXAgJiZcbiAgICAgICAgICAgICAgICAgICAgIWxhc3QudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgbGFzdC5zdGFydC5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbmROb25FbXB0eUluZGV4KGxhc3Quc3RhcnQpID09PSAtMSAmJlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4uaW5kZW50ID09PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0LnN0YXJ0LmV2ZXJ5KHN0ID0+IHN0LnR5cGUgIT09ICdjb21tZW50JyB8fCBzdC5pbmRlbnQgPCB0b2tlbi5pbmRlbnQpKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9wLnR5cGUgPT09ICdkb2N1bWVudCcpXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AuZW5kID0gbGFzdC5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLml0ZW1zLnB1c2goeyBzdGFydDogbGFzdC5zdGFydCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uaXRlbXMuc3BsaWNlKC0xLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnN0cmVhbSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RpcmVjdGl2ZS1saW5lJzpcbiAgICAgICAgICAgICAgICB5aWVsZCB7IHR5cGU6ICdkaXJlY3RpdmUnLCBvZmZzZXQ6IHRoaXMub2Zmc2V0LCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSAnYnl0ZS1vcmRlci1tYXJrJzpcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgeWllbGQgdGhpcy5zb3VyY2VUb2tlbjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdkb2MtbW9kZSc6XG4gICAgICAgICAgICBjYXNlICdkb2Mtc3RhcnQnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9jID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdkb2Mtc3RhcnQnKVxuICAgICAgICAgICAgICAgICAgICBkb2Muc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goZG9jKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCAke3RoaXMudHlwZX0gdG9rZW4gaW4gWUFNTCBzdHJlYW1gLFxuICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZVxuICAgICAgICB9O1xuICAgIH1cbiAgICAqZG9jdW1lbnQoZG9jKSB7XG4gICAgICAgIGlmIChkb2MudmFsdWUpXG4gICAgICAgICAgICByZXR1cm4geWllbGQqIHRoaXMubGluZUVuZChkb2MpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZG9jLXN0YXJ0Jzoge1xuICAgICAgICAgICAgICAgIGlmIChmaW5kTm9uRW1wdHlJbmRleChkb2Muc3RhcnQpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGRvYy5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FuY2hvcic6XG4gICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBkb2Muc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShkb2MpO1xuICAgICAgICBpZiAoYnYpXG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHlpZWxkIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgZG9jdW1lbnRgLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnNjYWxhcihzY2FsYXIpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ21hcC12YWx1ZS1pbmQnKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZ2V0UHJldlByb3BzKHRoaXMucGVlaygyKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGdldEZpcnN0S2V5U3RhcnRQcm9wcyhwcmV2KTtcbiAgICAgICAgICAgIGxldCBzZXA7XG4gICAgICAgICAgICBpZiAoc2NhbGFyLmVuZCkge1xuICAgICAgICAgICAgICAgIHNlcCA9IHNjYWxhci5lbmQ7XG4gICAgICAgICAgICAgICAgc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHNjYWxhci5lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgc2VwID0gW3RoaXMuc291cmNlVG9rZW5dO1xuICAgICAgICAgICAgY29uc3QgbWFwID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogc2NhbGFyLm9mZnNldCxcbiAgICAgICAgICAgICAgICBpbmRlbnQ6IHNjYWxhci5pbmRlbnQsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0LCBrZXk6IHNjYWxhciwgc2VwIH1dXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdID0gbWFwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHlpZWxkKiB0aGlzLmxpbmVFbmQoc2NhbGFyKTtcbiAgICB9XG4gICAgKmJsb2NrU2NhbGFyKHNjYWxhcikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBzY2FsYXIucHJvcHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzY2FsYXInOlxuICAgICAgICAgICAgICAgIHNjYWxhci5zb3VyY2UgPSB0aGlzLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAvLyBibG9jay1zY2FsYXIgc291cmNlIGluY2x1ZGVzIHRyYWlsaW5nIG5ld2xpbmVcbiAgICAgICAgICAgICAgICB0aGlzLmF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRlbnQgPSAwO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uTmV3TGluZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmwgPSB0aGlzLnNvdXJjZS5pbmRleE9mKCdcXG4nKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChubCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQgKyBubCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBubCA9IHRoaXMuc291cmNlLmluZGV4T2YoJ1xcbicsIG5sKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCBzaG91bGQgbm90IGhhcHBlbiAqL1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKmJsb2NrTWFwKG1hcCkge1xuICAgICAgICBjb25zdCBpdCA9IG1hcC5pdGVtc1ttYXAuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIC8vIGl0LnNlcCBpcyB0cnVlLWlzaCBpZiBwYWlyIGFscmVhZHkgaGFzIGtleSBvciA6IHNlcGFyYXRvclxuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gJ2VuZCcgaW4gaXQudmFsdWUgPyBpdC52YWx1ZS5lbmQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBBcnJheS5pc0FycmF5KGVuZCkgPyBlbmRbZW5kLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdD8udHlwZSA9PT0gJ2NvbW1lbnQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgIGlmIChpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmF0SW5kZW50ZWRDb21tZW50KGl0LnN0YXJ0LCBtYXAuaW5kZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IG1hcC5pdGVtc1ttYXAuaXRlbXMubGVuZ3RoIC0gMl07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBwcmV2Py52YWx1ZT8uZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGVuZCwgaXQuc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluZGVudCA+PSBtYXAuaW5kZW50KSB7XG4gICAgICAgICAgICBjb25zdCBhdE1hcEluZGVudCA9ICF0aGlzLm9uS2V5TGluZSAmJiB0aGlzLmluZGVudCA9PT0gbWFwLmluZGVudDtcbiAgICAgICAgICAgIGNvbnN0IGF0TmV4dEl0ZW0gPSBhdE1hcEluZGVudCAmJlxuICAgICAgICAgICAgICAgIChpdC5zZXAgfHwgaXQuZXhwbGljaXRLZXkpICYmXG4gICAgICAgICAgICAgICAgdGhpcy50eXBlICE9PSAnc2VxLWl0ZW0taW5kJztcbiAgICAgICAgICAgIC8vIEZvciBlbXB0eSBub2RlcywgYXNzaWduIG5ld2xpbmUtc2VwYXJhdGVkIG5vdCBpbmRlbnRlZCBlbXB0eSB0b2tlbnMgdG8gZm9sbG93aW5nIG5vZGVcbiAgICAgICAgICAgIGxldCBzdGFydCA9IFtdO1xuICAgICAgICAgICAgaWYgKGF0TmV4dEl0ZW0gJiYgaXQuc2VwICYmICFpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5sID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdC5zZXAubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3QgPSBpdC5zZXBbaV07XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmwucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdC5pbmRlbnQgPiBtYXAuaW5kZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubC5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBubC5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChubC5sZW5ndGggPj0gMilcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpdC5zZXAuc3BsaWNlKG5sWzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYW5jaG9yJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoYXROZXh0SXRlbSB8fCBpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQuc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2V4cGxpY2l0LWtleS1pbmQnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0LnNlcCAmJiAhaXQuZXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5leHBsaWNpdEtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXROZXh0SXRlbSB8fCBpdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQsIGV4cGxpY2l0S2V5OiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stbWFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0sIGV4cGxpY2l0S2V5OiB0cnVlIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlc1Rva2VuKGl0LnN0YXJ0LCAnbmV3bGluZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXQsIHsga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKGl0LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGluY2x1ZGVzVG9rZW4oaXQuc2VwLCAnbWFwLXZhbHVlLWluZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwga2V5OiBudWxsLCBzZXA6IFt0aGlzLnNvdXJjZVRva2VuXSB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNGbG93VG9rZW4oaXQua2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpbmNsdWRlc1Rva2VuKGl0LnNlcCwgJ25ld2xpbmUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKGl0LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBpdC5rZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VwID0gaXQuc2VwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdHlwZSBndWFyZCBpcyB3cm9uZyBoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0LmtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHR5cGUgZ3VhcmQgaXMgd3JvbmcgaGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdC5zZXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwga2V5LCBzZXAgfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYWN0dWFsbHkgYXQgbmV4dCBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQuc2VwID0gaXQuc2VwLmNvbmNhdChzdGFydCwgdGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXQuc2VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdCwgeyBrZXk6IG51bGwsIHNlcDogW3RoaXMuc291cmNlVG9rZW5dIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQudmFsdWUgfHwgYXROZXh0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmNsdWRlc1Rva2VuKGl0LnNlcCwgJ21hcC12YWx1ZS1pbmQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IHRoaXMuaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQ6IFtdLCBrZXk6IG51bGwsIHNlcDogW3RoaXMuc291cmNlVG9rZW5dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdhbGlhcyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgICAgICAgICAgICBjYXNlICdzaW5nbGUtcXVvdGVkLXNjYWxhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnZG91YmxlLXF1b3RlZC1zY2FsYXInOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZzID0gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdE5leHRJdGVtIHx8IGl0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAuaXRlbXMucHVzaCh7IHN0YXJ0LCBrZXk6IGZzLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbktleUxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXQsIHsga2V5OiBmcywgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShtYXApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdE1hcEluZGVudCAmJiBidi50eXBlICE9PSAnYmxvY2stc2VxJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5pdGVtcy5wdXNoKHsgc3RhcnQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgfVxuICAgICpibG9ja1NlcXVlbmNlKHNlcSkge1xuICAgICAgICBjb25zdCBpdCA9IHNlcS5pdGVtc1tzZXEuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gJ2VuZCcgaW4gaXQudmFsdWUgPyBpdC52YWx1ZS5lbmQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBBcnJheS5pc0FycmF5KGVuZCkgPyBlbmRbZW5kLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdD8udHlwZSA9PT0gJ2NvbW1lbnQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXEuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIHNlcS5pdGVtcy5wdXNoKHsgc3RhcnQ6IFt0aGlzLnNvdXJjZVRva2VuXSB9KTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQoaXQuc3RhcnQsIHNlcS5pbmRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gc2VxLml0ZW1zW3NlcS5pdGVtcy5sZW5ndGggLSAyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHByZXY/LnZhbHVlPy5lbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZW5kLCBpdC5zdGFydCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VxLml0ZW1zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpdC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdhbmNob3InOlxuICAgICAgICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgICAgICAgICBpZiAoaXQudmFsdWUgfHwgdGhpcy5pbmRlbnQgPD0gc2VxLmluZGVudClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlICdzZXEtaXRlbS1pbmQnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluZGVudCAhPT0gc2VxLmluZGVudClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgaWYgKGl0LnZhbHVlIHx8IGluY2x1ZGVzVG9rZW4oaXQuc3RhcnQsICdzZXEtaXRlbS1pbmQnKSlcbiAgICAgICAgICAgICAgICAgICAgc2VxLml0ZW1zLnB1c2goeyBzdGFydDogW3RoaXMuc291cmNlVG9rZW5dIH0pO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgaXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5kZW50ID4gc2VxLmluZGVudCkge1xuICAgICAgICAgICAgY29uc3QgYnYgPSB0aGlzLnN0YXJ0QmxvY2tWYWx1ZShzZXEpO1xuICAgICAgICAgICAgaWYgKGJ2KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGJ2KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgIHlpZWxkKiB0aGlzLnN0ZXAoKTtcbiAgICB9XG4gICAgKmZsb3dDb2xsZWN0aW9uKGZjKSB7XG4gICAgICAgIGNvbnN0IGl0ID0gZmMuaXRlbXNbZmMuaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdmbG93LWVycm9yLWVuZCcpIHtcbiAgICAgICAgICAgIGxldCB0b3A7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgdG9wID0gdGhpcy5wZWVrKDEpO1xuICAgICAgICAgICAgfSB3aGlsZSAodG9wICYmIHRvcC50eXBlID09PSAnZmxvdy1jb2xsZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZmMuZW5kLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb21tYSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXQgfHwgaXQuc2VwKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpdCB8fCBpdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZjLml0ZW1zLnB1c2goeyBzdGFydDogW10sIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0LCB7IGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlICdzcGFjZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbmV3bGluZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnYW5jaG9yJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0YWcnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0IHx8IGl0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0LnNlcClcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBpdC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnc2luZ2xlLXF1b3RlZC1zY2FsYXInOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmcyA9IHRoaXMuZmxvd1NjYWxhcih0aGlzLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0IHx8IGl0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgZmMuaXRlbXMucHVzaCh7IHN0YXJ0OiBbXSwga2V5OiBmcywgc2VwOiBbXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXQuc2VwKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGZzKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdCwgeyBrZXk6IGZzLCBzZXA6IFtdIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb3ctbWFwLWVuZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZmxvdy1zZXEtZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgZmMuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ2ID0gdGhpcy5zdGFydEJsb2NrVmFsdWUoZmMpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2Ugc2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICAgICAgICAgIGlmIChidilcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goYnYpO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wZWVrKDIpO1xuICAgICAgICAgICAgaWYgKHBhcmVudC50eXBlID09PSAnYmxvY2stbWFwJyAmJlxuICAgICAgICAgICAgICAgICgodGhpcy50eXBlID09PSAnbWFwLXZhbHVlLWluZCcgJiYgcGFyZW50LmluZGVudCA9PT0gZmMuaW5kZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy50eXBlID09PSAnbmV3bGluZScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFwYXJlbnQuaXRlbXNbcGFyZW50Lml0ZW1zLmxlbmd0aCAtIDFdLnNlcCkpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMucG9wKCk7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMuc3RlcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnbWFwLXZhbHVlLWluZCcgJiZcbiAgICAgICAgICAgICAgICBwYXJlbnQudHlwZSAhPT0gJ2Zsb3ctY29sbGVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gZ2V0UHJldlByb3BzKHBhcmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBnZXRGaXJzdEtleVN0YXJ0UHJvcHMocHJldik7XG4gICAgICAgICAgICAgICAgZml4Rmxvd1NlcUl0ZW1zKGZjKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXAgPSBmYy5lbmQuc3BsaWNlKDEsIGZjLmVuZC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogZmMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IGZjLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0LCBrZXk6IGZjLCBzZXAgfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMub25LZXlMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV0gPSBtYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5saW5lRW5kKGZjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbG93U2NhbGFyKHR5cGUpIHtcbiAgICAgICAgaWYgKHRoaXMub25OZXdMaW5lKSB7XG4gICAgICAgICAgICBsZXQgbmwgPSB0aGlzLnNvdXJjZS5pbmRleE9mKCdcXG4nKSArIDE7XG4gICAgICAgICAgICB3aGlsZSAobmwgIT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCArIG5sKTtcbiAgICAgICAgICAgICAgICBubCA9IHRoaXMuc291cmNlLmluZGV4T2YoJ1xcbicsIG5sKSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhcnRCbG9ja1ZhbHVlKHBhcmVudCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYWxpYXMnOlxuICAgICAgICAgICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgICAgICAgIGNhc2UgJ3NpbmdsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgIGNhc2UgJ2RvdWJsZS1xdW90ZWQtc2NhbGFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7XG4gICAgICAgICAgICBjYXNlICdibG9jay1zY2FsYXItaGVhZGVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stc2NhbGFyJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IFt0aGlzLnNvdXJjZVRva2VuXSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjYXNlICdmbG93LW1hcC1zdGFydCc6XG4gICAgICAgICAgICBjYXNlICdmbG93LXNlcS1zdGFydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Zsb3ctY29sbGVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiB0aGlzLnNvdXJjZVRva2VuLFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgICAgICAgICAgICAgIGVuZDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnc2VxLWl0ZW0taW5kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmxvY2stc2VxJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50OiB0aGlzLmluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFt7IHN0YXJ0OiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnZXhwbGljaXQta2V5LWluZCc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IGdldFByZXZQcm9wcyhwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKHByZXYpO1xuICAgICAgICAgICAgICAgIHN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jsb2NrLW1hcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluZGVudDogdGhpcy5pbmRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbeyBzdGFydCwgZXhwbGljaXRLZXk6IHRydWUgfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbWFwLXZhbHVlLWluZCc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IGdldFByZXZQcm9wcyhwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Rmlyc3RLZXlTdGFydFByb3BzKHByZXYpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdibG9jay1tYXAnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IHRoaXMuaW5kZW50LFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogW3sgc3RhcnQsIGtleTogbnVsbCwgc2VwOiBbdGhpcy5zb3VyY2VUb2tlbl0gfV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBhdEluZGVudGVkQ29tbWVudChzdGFydCwgaW5kZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdjb21tZW50JylcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5kZW50IDw9IGluZGVudClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0LmV2ZXJ5KHN0ID0+IHN0LnR5cGUgPT09ICduZXdsaW5lJyB8fCBzdC50eXBlID09PSAnc3BhY2UnKTtcbiAgICB9XG4gICAgKmRvY3VtZW50RW5kKGRvY0VuZCkge1xuICAgICAgICBpZiAodGhpcy50eXBlICE9PSAnZG9jLW1vZGUnKSB7XG4gICAgICAgICAgICBpZiAoZG9jRW5kLmVuZClcbiAgICAgICAgICAgICAgICBkb2NFbmQuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jRW5kLmVuZCA9IFt0aGlzLnNvdXJjZVRva2VuXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICduZXdsaW5lJylcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAqbGluZUVuZCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY29tbWEnOlxuICAgICAgICAgICAgY2FzZSAnZG9jLXN0YXJ0JzpcbiAgICAgICAgICAgIGNhc2UgJ2RvYy1lbmQnOlxuICAgICAgICAgICAgY2FzZSAnZmxvdy1zZXEtZW5kJzpcbiAgICAgICAgICAgIGNhc2UgJ2Zsb3ctbWFwLWVuZCc6XG4gICAgICAgICAgICBjYXNlICdtYXAtdmFsdWUtaW5kJzpcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5wb3AoKTtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy5zdGVwKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICduZXdsaW5lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uS2V5TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBhbGwgb3RoZXIgdmFsdWVzIGFyZSBlcnJvcnNcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4uZW5kKVxuICAgICAgICAgICAgICAgICAgICB0b2tlbi5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHRva2VuLmVuZCA9IFt0aGlzLnNvdXJjZVRva2VuXTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAnbmV3bGluZScpXG4gICAgICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBQYXJzZXIgfTtcbiIsICJpbXBvcnQgeyBDb21wb3NlciB9IGZyb20gJy4vY29tcG9zZS9jb21wb3Nlci5qcyc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4vZG9jL0RvY3VtZW50LmpzJztcbmltcG9ydCB7IHByZXR0aWZ5RXJyb3IsIFlBTUxQYXJzZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMuanMnO1xuaW1wb3J0IHsgd2FybiB9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB7IGlzRG9jdW1lbnQgfSBmcm9tICcuL25vZGVzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IExpbmVDb3VudGVyIH0gZnJvbSAnLi9wYXJzZS9saW5lLWNvdW50ZXIuanMnO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZS9wYXJzZXIuanMnO1xuXG5mdW5jdGlvbiBwYXJzZU9wdGlvbnMob3B0aW9ucykge1xuICAgIGNvbnN0IHByZXR0eUVycm9ycyA9IG9wdGlvbnMucHJldHR5RXJyb3JzICE9PSBmYWxzZTtcbiAgICBjb25zdCBsaW5lQ291bnRlciA9IG9wdGlvbnMubGluZUNvdW50ZXIgfHwgKHByZXR0eUVycm9ycyAmJiBuZXcgTGluZUNvdW50ZXIoKSkgfHwgbnVsbDtcbiAgICByZXR1cm4geyBsaW5lQ291bnRlciwgcHJldHR5RXJyb3JzIH07XG59XG4vKipcbiAqIFBhcnNlIHRoZSBpbnB1dCBhcyBhIHN0cmVhbSBvZiBZQU1MIGRvY3VtZW50cy5cbiAqXG4gKiBEb2N1bWVudHMgc2hvdWxkIGJlIHNlcGFyYXRlZCBmcm9tIGVhY2ggb3RoZXIgYnkgYC4uLmAgb3IgYC0tLWAgbWFya2VyIGxpbmVzLlxuICpcbiAqIEByZXR1cm5zIElmIGFuIGVtcHR5IGBkb2NzYCBhcnJheSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBvZiB0eXBlXG4gKiAgIEVtcHR5U3RyZWFtIGFuZCBjb250YWluIGFkZGl0aW9uYWwgc3RyZWFtIGluZm9ybWF0aW9uLiBJblxuICogICBUeXBlU2NyaXB0LCB5b3Ugc2hvdWxkIHVzZSBgJ2VtcHR5JyBpbiBkb2NzYCBhcyBhIHR5cGUgZ3VhcmQgZm9yIGl0LlxuICovXG5mdW5jdGlvbiBwYXJzZUFsbERvY3VtZW50cyhzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbGluZUNvdW50ZXIsIHByZXR0eUVycm9ycyB9ID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobGluZUNvdW50ZXI/LmFkZE5ld0xpbmUpO1xuICAgIGNvbnN0IGNvbXBvc2VyID0gbmV3IENvbXBvc2VyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRvY3MgPSBBcnJheS5mcm9tKGNvbXBvc2VyLmNvbXBvc2UocGFyc2VyLnBhcnNlKHNvdXJjZSkpKTtcbiAgICBpZiAocHJldHR5RXJyb3JzICYmIGxpbmVDb3VudGVyKVxuICAgICAgICBmb3IgKGNvbnN0IGRvYyBvZiBkb2NzKSB7XG4gICAgICAgICAgICBkb2MuZXJyb3JzLmZvckVhY2gocHJldHRpZnlFcnJvcihzb3VyY2UsIGxpbmVDb3VudGVyKSk7XG4gICAgICAgICAgICBkb2Mud2FybmluZ3MuZm9yRWFjaChwcmV0dGlmeUVycm9yKHNvdXJjZSwgbGluZUNvdW50ZXIpKTtcbiAgICAgICAgfVxuICAgIGlmIChkb2NzLmxlbmd0aCA+IDApXG4gICAgICAgIHJldHVybiBkb2NzO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCB7IGVtcHR5OiB0cnVlIH0sIGNvbXBvc2VyLnN0cmVhbUluZm8oKSk7XG59XG4vKiogUGFyc2UgYW4gaW5wdXQgc3RyaW5nIGludG8gYSBzaW5nbGUgWUFNTC5Eb2N1bWVudCAqL1xuZnVuY3Rpb24gcGFyc2VEb2N1bWVudChzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbGluZUNvdW50ZXIsIHByZXR0eUVycm9ycyB9ID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobGluZUNvdW50ZXI/LmFkZE5ld0xpbmUpO1xuICAgIGNvbnN0IGNvbXBvc2VyID0gbmV3IENvbXBvc2VyKG9wdGlvbnMpO1xuICAgIC8vIGBkb2NgIGlzIGFsd2F5cyBzZXQgYnkgY29tcG9zZS5lbmQodHJ1ZSkgYXQgdGhlIHZlcnkgbGF0ZXN0XG4gICAgbGV0IGRvYyA9IG51bGw7XG4gICAgZm9yIChjb25zdCBfZG9jIG9mIGNvbXBvc2VyLmNvbXBvc2UocGFyc2VyLnBhcnNlKHNvdXJjZSksIHRydWUsIHNvdXJjZS5sZW5ndGgpKSB7XG4gICAgICAgIGlmICghZG9jKVxuICAgICAgICAgICAgZG9jID0gX2RvYztcbiAgICAgICAgZWxzZSBpZiAoZG9jLm9wdGlvbnMubG9nTGV2ZWwgIT09ICdzaWxlbnQnKSB7XG4gICAgICAgICAgICBkb2MuZXJyb3JzLnB1c2gobmV3IFlBTUxQYXJzZUVycm9yKF9kb2MucmFuZ2Uuc2xpY2UoMCwgMiksICdNVUxUSVBMRV9ET0NTJywgJ1NvdXJjZSBjb250YWlucyBtdWx0aXBsZSBkb2N1bWVudHM7IHBsZWFzZSB1c2UgWUFNTC5wYXJzZUFsbERvY3VtZW50cygpJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXR0eUVycm9ycyAmJiBsaW5lQ291bnRlcikge1xuICAgICAgICBkb2MuZXJyb3JzLmZvckVhY2gocHJldHRpZnlFcnJvcihzb3VyY2UsIGxpbmVDb3VudGVyKSk7XG4gICAgICAgIGRvYy53YXJuaW5ncy5mb3JFYWNoKHByZXR0aWZ5RXJyb3Ioc291cmNlLCBsaW5lQ291bnRlcikpO1xuICAgIH1cbiAgICByZXR1cm4gZG9jO1xufVxuZnVuY3Rpb24gcGFyc2Uoc3JjLCByZXZpdmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IF9yZXZpdmVyID0gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBfcmV2aXZlciA9IHJldml2ZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCAmJiByZXZpdmVyICYmIHR5cGVvZiByZXZpdmVyID09PSAnb2JqZWN0Jykge1xuICAgICAgICBvcHRpb25zID0gcmV2aXZlcjtcbiAgICB9XG4gICAgY29uc3QgZG9jID0gcGFyc2VEb2N1bWVudChzcmMsIG9wdGlvbnMpO1xuICAgIGlmICghZG9jKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBkb2Mud2FybmluZ3MuZm9yRWFjaCh3YXJuaW5nID0+IHdhcm4oZG9jLm9wdGlvbnMubG9nTGV2ZWwsIHdhcm5pbmcpKTtcbiAgICBpZiAoZG9jLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChkb2Mub3B0aW9ucy5sb2dMZXZlbCAhPT0gJ3NpbGVudCcpXG4gICAgICAgICAgICB0aHJvdyBkb2MuZXJyb3JzWzBdO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBkb2MuZXJyb3JzID0gW107XG4gICAgfVxuICAgIHJldHVybiBkb2MudG9KUyhPYmplY3QuYXNzaWduKHsgcmV2aXZlcjogX3Jldml2ZXIgfSwgb3B0aW9ucykpO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlLCByZXBsYWNlciwgb3B0aW9ucykge1xuICAgIGxldCBfcmVwbGFjZXIgPSBudWxsO1xuICAgIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdmdW5jdGlvbicgfHwgQXJyYXkuaXNBcnJheShyZXBsYWNlcikpIHtcbiAgICAgICAgX3JlcGxhY2VyID0gcmVwbGFjZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCAmJiByZXBsYWNlcikge1xuICAgICAgICBvcHRpb25zID0gcmVwbGFjZXI7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zLmxlbmd0aDtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgucm91bmQob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMgPSBpbmRlbnQgPCAxID8gdW5kZWZpbmVkIDogaW5kZW50ID4gOCA/IHsgaW5kZW50OiA4IH0gOiB7IGluZGVudCB9O1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB7IGtlZXBVbmRlZmluZWQgfSA9IG9wdGlvbnMgPz8gcmVwbGFjZXIgPz8ge307XG4gICAgICAgIGlmICgha2VlcFVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChpc0RvY3VtZW50KHZhbHVlKSAmJiAhX3JlcGxhY2VyKVxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcob3B0aW9ucyk7XG4gICAgcmV0dXJuIG5ldyBEb2N1bWVudCh2YWx1ZSwgX3JlcGxhY2VyLCBvcHRpb25zKS50b1N0cmluZyhvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgcGFyc2UsIHBhcnNlQWxsRG9jdW1lbnRzLCBwYXJzZURvY3VtZW50LCBzdHJpbmdpZnkgfTtcbiIsICJpbXBvcnQgeyBKc29uTGluaywgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IGdldEV4dGVuc2lvbiwgZ2V0RmlsZVRpdGxlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBDYWNoZWRNZXRhZGF0YSwgRmlsZVN0YXRzLCBGcm9udE1hdHRlckNhY2hlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZVlhbWwgfSBmcm9tIFwieWFtbFwiO1xuaW1wb3J0IEJUcmVlIGZyb20gXCJzb3J0ZWQtYnRyZWVcIjtcbmltcG9ydCB7XG4gICAgSW5saW5lRmllbGQsXG4gICAgSnNvbklubGluZUZpZWxkLFxuICAgIGFzSW5saW5lRmllbGQsXG4gICAgZXh0cmFjdEZ1bGxMaW5lRmllbGQsXG4gICAgZXh0cmFjdElubGluZUZpZWxkcyxcbiAgICBqc29uSW5saW5lRmllbGQsXG59IGZyb20gXCIuL2lubGluZS1maWVsZFwiO1xuaW1wb3J0IHtcbiAgICBKc29uTWFya2Rvd25CbG9jayxcbiAgICBKc29uTWFya2Rvd25MaXN0QmxvY2ssXG4gICAgSnNvbk1hcmtkb3duTGlzdEl0ZW0sXG4gICAgSnNvbk1hcmtkb3duUGFnZSxcbiAgICBKc29uTWFya2Rvd25TZWN0aW9uLFxuICAgIEpzb25NYXJrZG93blRhc2tJdGVtLFxuICAgIEpzb25NYXJrZG93bkRhdGFibG9jayxcbiAgICBKc29uTWFya2Rvd25Db2RlYmxvY2ssXG4gICAgSnNvbkZyb250bWF0dGVyRW50cnksXG59IGZyb20gXCJpbmRleC90eXBlcy9qc29uL21hcmtkb3duXCI7XG5pbXBvcnQgeyBKc29uQ29udmVyc2lvbiB9IGZyb20gXCJpbmRleC90eXBlcy9qc29uL2NvbW1vblwiO1xuaW1wb3J0IHsgWWFtbENvbnZlcnNpb24gfSBmcm9tIFwiaW5kZXgvdHlwZXMveWFtbFwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIE1hdGNoZXMgeWFtbCBkYXRhYmxvY2tzLCB3aGljaCBzaG93IHVwIGFzIGluZGVwZW5kZW50IG9iamVjdHMgaW4gdGhlIGRhdGFjb3JlIGluZGV4LiAqL1xuY29uc3QgWUFNTF9EQVRBX1JFR0VYID0gL2BgYHlhbWw6ZGF0YS9pO1xuLyoqIE1hdGNoZXMgdGhlIHN0YXJ0IG9mIGFueSBjb2RlYmxvY2sgZmVuY2UuICovXG5jb25zdCBDT0RFQkxPQ0tfRkVOQ0VfUkVHRVggPSAvXig/OmBgYHx+fn4pKC4qKSQvaW07XG4vKiogTWF0Y2hlcyBsaXN0IGl0ZW1zIChpbmNsdWRpbmcgaW5zaWRlIHRleHQgYmxvY2tzKS4gKi9cbmNvbnN0IExJU1RfSVRFTV9SRUdFWCA9IC9eW1xccz5dKihcXGQrXFwufFxcZCtcXCl8XFwqfC18XFwrKVxccyooXFxbLnswLDF9XFxdKT9cXHMqKC4qKS9tc3U7XG5cbi8qKlxuICogR2l2ZW4gdGhlIHJhdyBzb3VyY2UgYW5kIE9ic2lkaWFuIG1ldGFkYXRhIGZvciBhIGdpdmVuIG1hcmtkb3duIGZpbGUsXG4gKiByZXR1cm4gZnVsbCBtYXJrZG93biBmaWxlIG1ldGFkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25JbXBvcnQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG1hcmtkb3duOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE6IENhY2hlZE1ldGFkYXRhLFxuICAgIHN0YXRzOiBGaWxlU3RhdHNcbik6IEpzb25NYXJrZG93blBhZ2Uge1xuICAgIGNvbnN0IHsgbGluZXMsIG1ldGFkYXRhOiBwYWdlTWV0YWRhdGEsIGZyb250bWF0dGVyLCBzZWN0aW9ucyB9ID0gbWFya2Rvd25Tb3VyY2VJbXBvcnQocGF0aCwgbWFya2Rvd24sIG1ldGFkYXRhKTtcbiAgICBjb25zdCBwYWdlID0gbmV3IFBhZ2VEYXRhKHBhdGgsIHN0YXRzLCBsaW5lcy5sZW5ndGgsIHBhZ2VNZXRhZGF0YSwgc2VjdGlvbnMsIGZyb250bWF0dGVyKTtcblxuICAgIHJldHVybiBwYWdlLmJ1aWxkKCk7XG59XG5cbi8qKiBJbXBvcnQgbWFya2Rvd24gZmlsZSBtZXRhZGF0YSwgcHJvZHVjaW5nIGFsbCByZWxldmFudCBtYXJrZG93biBkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duU291cmNlSW1wb3J0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBtYXJrZG93bjogc3RyaW5nLFxuICAgIG1ldGFkYXRhOiBDYWNoZWRNZXRhZGF0YVxuKToge1xuICAgIGxpbmVzOiBzdHJpbmdbXTtcbiAgICBtZXRhZGF0YTogTWV0YWRhdGE7XG4gICAgZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT47XG4gICAgc2VjdGlvbnM6IFNlY3Rpb25EYXRhW107XG59IHtcbiAgICBjb25zdCBmcm9udG1hdHRlcjogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+IHwgdW5kZWZpbmVkID0gbWV0YWRhdGE/LmZyb250bWF0dGVyXG4gICAgICAgID8gcGFyc2VGcm9udG1hdHRlckJsb2NrKG1ldGFkYXRhLmZyb250bWF0dGVyKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBsaW5lcyA9IG1hcmtkb3duLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pO1xuICAgIGNvbnN0IG1hcmtkb3duTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICBjb25zdCBzZWN0aW9uQXJyYXk6IFNlY3Rpb25EYXRhW10gPSBbXTtcbiAgICAvLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNlY3Rpb25zIC8vXG4gICAgLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IG1ldGFoZWFkaW5ncyA9IG1ldGFkYXRhPy5oZWFkaW5ncyA/PyBbXTtcbiAgICBtZXRhaGVhZGluZ3Muc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbi5zdGFydC5saW5lIC0gYi5wb3NpdGlvbi5zdGFydC5saW5lKTtcblxuICAgIGNvbnN0IHNlY3Rpb25zID0gbmV3IEJUcmVlPG51bWJlciwgU2VjdGlvbkRhdGE+KHVuZGVmaW5lZCwgKGEsIGIpID0+IGEgLSBiKTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWV0YWhlYWRpbmdzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBlbnRyeSA9IG1ldGFoZWFkaW5nc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZW50cnkucG9zaXRpb24uc3RhcnQubGluZTtcbiAgICAgICAgY29uc3QgZW5kID0gaW5kZXggPT0gbWV0YWhlYWRpbmdzLmxlbmd0aCAtIDEgPyBsaW5lcy5sZW5ndGggOiBtZXRhaGVhZGluZ3NbaW5kZXggKyAxXS5wb3NpdGlvbi5zdGFydC5saW5lO1xuXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSBuZXcgU2VjdGlvbkRhdGEoc3RhcnQsIGVuZCwgZW50cnkuaGVhZGluZywgZW50cnkubGV2ZWwsIGluZGV4ICsgMSk7XG4gICAgICAgIHNlY3Rpb25zLnNldChzdGFydCwgc2VjdGlvbik7XG4gICAgfVxuXG4gICAgLy8gQWRkIGFuIGltcGxpY2l0IHNlY3Rpb24gZm9yIHRoZSBcImhlYWRpbmdcIiBzZWN0aW9uIG9mIHRoZSBwYWdlIGlmIHRoZXJlIGlzIG5vdCBhbiBpbW1lZGlhdGUgaGVhZGVyIGJ1dCB0aGVyZSBpc1xuICAgIC8vIHNvbWUgY29udGVudCBpbiB0aGUgZmlsZS4gSWYgdGhlcmUgYXJlIG90aGVyIHNlY3Rpb25zLCB0aGVuIGdvIHVwIHRvIHRoYXQsIG90aGVyd2lzZSwgZ28gZm9yIHRoZSBlbnRpcmUgZmlsZS5cbiAgICBpZiAoc2VjdGlvbnMuc2l6ZSA9PSAwKSB7XG4gICAgICAgIGlmICghZW1wdHlsaW5lcyhsaW5lcywgMCwgbGluZXMubGVuZ3RoKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IG5ldyBTZWN0aW9uRGF0YSgwLCBsaW5lcy5sZW5ndGgsIGdldEZpbGVUaXRsZShwYXRoKSwgMSwgMCk7XG4gICAgICAgICAgICBzZWN0aW9ucy5zZXQoMCwgc2VjdGlvbik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGaW5kIHRoZSBzdGFydCBvZiB0aGUgZmlyc3Qgc2VjdGlvbi5cbiAgICAgICAgY29uc3QgZmlyc3QgPSBzZWN0aW9ucy5nZXRQYWlyT3JOZXh0SGlnaGVyKDApPy5bMV0hITtcblxuICAgICAgICBpZiAoZmlyc3Quc3RhcnQgPiAwICYmICFlbXB0eWxpbmVzKGxpbmVzLCAwLCBmaXJzdC5zdGFydCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBuZXcgU2VjdGlvbkRhdGEoMCwgZmlyc3Quc3RhcnQsIGdldEZpbGVUaXRsZShwYXRoKSwgMSwgMCk7XG5cbiAgICAgICAgICAgIHNlY3Rpb25zLnNldCgwLCBzZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vL1xuICAgIC8vIEJsb2NrcyAvL1xuICAgIC8vLy8vLy8vLy8vL1xuXG4gICAgLy8gQWxsIGJsb2Nrczsgd2Ugd2lsbCBhc3NpZ24gdGFncyBhbmQgb3RoZXIgbWV0YWRhdGEgdG8gYmxvY2tzIGFzIHdlIGVuY291bnRlciB0aGVtLiBBdCB0aGUgZW5kLCBvbmx5IGJsb2NrcyB0aGF0XG4gICAgLy8gaGF2ZSBhY3R1YWwgbWV0YWRhdGEgd2lsbCBiZSBzdG9yZWQgdG8gc2F2ZSBvbiBtZW1vcnkgcHJlc3N1cmUuXG4gICAgY29uc3QgYmxvY2tzID0gbmV3IEJUcmVlPG51bWJlciwgQmxvY2tEYXRhPih1bmRlZmluZWQsIChhLCBiKSA9PiBhIC0gYik7XG4gICAgbGV0IGJsb2NrT3JkaW5hbCA9IDE7XG4gICAgZm9yIChjb25zdCBibG9jayBvZiBtZXRhZGF0YT8uc2VjdGlvbnMgfHwgW10pIHtcbiAgICAgICAgLy8gU2tpcCBoZWFkaW5ncyBibG9ja3MsIHdlIGhhbmRsZSB0aGVtIHNwZWNpYWxseSBhcyBzZWN0aW9ucy5cbiAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IFwiaGVhZGluZ1wiKSBjb250aW51ZTtcblxuICAgICAgICBjb25zdCBzdGFydCA9IGJsb2NrLnBvc2l0aW9uLnN0YXJ0LmxpbmU7XG4gICAgICAgIGNvbnN0IGVuZCA9IGJsb2NrLnBvc2l0aW9uLmVuZC5saW5lICsgMTtcbiAgICAgICAgY29uc3Qgc3RhcnRMaW5lID0gbGluZXNbc3RhcnRdOyAvLyB0byB1c2UgdG8gY2hlY2sgdGhlIGNvZGVibG9jayB0eXBlXG5cbiAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IFwibGlzdFwiKSB7XG4gICAgICAgICAgICBibG9ja3Muc2V0KHN0YXJ0LCBuZXcgTGlzdEJsb2NrRGF0YShzdGFydCwgZW5kLCBibG9ja09yZGluYWwrKywgYmxvY2suaWQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChibG9jay50eXBlID09IFwiY29kZVwiICYmIFlBTUxfREFUQV9SRUdFWC50ZXN0KHN0YXJ0TGluZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHlhbWw6IHN0cmluZyA9IGxpbmVzXG4gICAgICAgICAgICAgICAgLnNsaWNlKHN0YXJ0ICsgMSwgZW5kIC0gMSlcbiAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXHQvZ20sIFwiICBcIik7XG4gICAgICAgICAgICBjb25zdCBzcGxpdDogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+ID0gcGFyc2VGcm9udG1hdHRlckJsb2NrKHBhcnNlWWFtbCh5YW1sKSk7XG5cbiAgICAgICAgICAgIGJsb2Nrcy5zZXQoc3RhcnQsIG5ldyBEYXRhYmxvY2tEYXRhKHN0YXJ0LCBlbmQsIGJsb2NrT3JkaW5hbCsrLCBzcGxpdCwgYmxvY2suaWQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChibG9jay50eXBlID09PSBcImNvZGVcIikge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGJsb2NrIGlzIGZlbmNlZC5cbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gc3RhcnRMaW5lLm1hdGNoKENPREVCTE9DS19GRU5DRV9SRUdFWCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhbiBpbmRlbnRlZC1zdHlsZSBjb2RlYmxvY2suXG4gICAgICAgICAgICAgICAgYmxvY2tzLnNldChzdGFydCwgbmV3IENvZGVibG9ja0RhdGEoc3RhcnQsIGVuZCwgYmxvY2tPcmRpbmFsKyssIFtdLCBcImluZGVudFwiLCBzdGFydCwgZW5kLCBibG9jay5pZCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSBtYXRjaC5sZW5ndGggPiAxICYmIG1hdGNoWzFdID8gbWF0Y2hbMV0uc3BsaXQoXCIsXCIpIDogW107XG4gICAgICAgICAgICAgICAgYmxvY2tzLnNldChcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIG5ldyBDb2RlYmxvY2tEYXRhKHN0YXJ0LCBlbmQsIGJsb2NrT3JkaW5hbCsrLCBsYW5ndWFnZXMsIFwiZmVuY2VkXCIsIHN0YXJ0ICsgMSwgZW5kIC0gMSwgYmxvY2suaWQpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJsb2Nrcy5zZXQoc3RhcnQsIG5ldyBCYXNlQmxvY2tEYXRhKHN0YXJ0LCBlbmQsIGJsb2NrT3JkaW5hbCsrLCBibG9jay50eXBlLCBibG9jay5pZCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGJsb2NrcyB0byBzZWN0aW9ucy5cbiAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIGJsb2Nrcy52YWx1ZXMoKSkge1xuICAgICAgICBsb29rdXAoYmxvY2suc3RhcnQsIHNlY3Rpb25zKT8uYmxvY2soYmxvY2spO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vXG4gICAgLy8gTGlzdHMgLy9cbiAgICAvLy8vLy8vLy8vL1xuXG4gICAgLy8gQWxsIGxpc3QgaXRlbXMgaW4gbGlzdHMuIFN0YXJ0IHdpdGggYSBzaW1wbGUgdHJpdmlhbCBwYXNzLlxuICAgIGNvbnN0IGNvbnRlbnRSZWdleCA9IC9eW1xcdFxcZlxcdiBdKltcXC0rXFwqXVxccyhcXFsuXFxdXFxzKT8vO1xuICAgIGNvbnN0IG1hcmtlclJlZ2V4ID0gL14oPj9cXHM/KSooXFx0fFxccykqL2c7XG4gICAgY29uc3QgbGlzdEl0ZW1zID0gbmV3IEJUcmVlPG51bWJlciwgTGlzdEl0ZW1EYXRhPih1bmRlZmluZWQsIChhLCBiKSA9PiBhIC0gYik7XG5cbiAgICBmb3IgKGNvbnN0IGxpc3Qgb2YgbWV0YWRhdGE/Lmxpc3RJdGVtcyB8fCBbXSkge1xuICAgICAgICBjb25zdCBsaW5lID0gbGluZXMuc2xpY2UobGlzdC5wb3NpdGlvbi5zdGFydC5saW5lLCBsaXN0LnBvc2l0aW9uLmVuZC5saW5lICsgMSkuam9pbihcIlxcblwiKTtcblxuICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgZmxhZyB3aGljaCBza2lwcyBpbmRleGluZyBsaXN0IGl0ZW1zLlxuICAgICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goTElTVF9JVEVNX1JFR0VYKTtcbiAgICAgICAgbGV0IHN5bWJvbCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRleHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgc3ltYm9sID0gbWF0Y2hbMV07XG4gICAgICAgICAgICB0ZXh0ID0gbWF0Y2hbM107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtID0gbmV3IExpc3RJdGVtRGF0YShcbiAgICAgICAgICAgIGxpc3QucG9zaXRpb24uc3RhcnQubGluZSxcbiAgICAgICAgICAgIGxpc3QucG9zaXRpb24uZW5kLmxpbmUgKyAxLFxuICAgICAgICAgICAgbGlzdC5wYXJlbnQsXG4gICAgICAgICAgICBzeW1ib2wsXG4gICAgICAgICAgICBsaXN0LmlkLFxuICAgICAgICAgICAgbGlzdC50YXNrLFxuICAgICAgICAgICAgdGV4dFxuICAgICAgICApO1xuICAgICAgICBsaXN0SXRlbXMuc2V0KGl0ZW0uc3RhcnQsIGl0ZW0pO1xuICAgIH1cblxuICAgIC8vIEluIHRoZSBzZWNvbmQgbGlzdCBwYXNzLCBhY3R1YWxseSBjb25zdHJ1Y3QgdGhlIGxpc3QgaGVpcmFyY2h5LlxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBsaXN0SXRlbXMudmFsdWVzKCkpIHtcbiAgICAgICAgaWYgKGl0ZW0ucGFyZW50TGluZSA8IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RCbG9jayA9IGJsb2Nrcy5nZXQoLWl0ZW0ucGFyZW50TGluZSk7XG4gICAgICAgICAgICBpZiAoIWxpc3RCbG9jayB8fCAhKGxpc3RCbG9jay50eXBlID09PSBcImxpc3RcIikpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAobGlzdEJsb2NrIGFzIExpc3RCbG9ja0RhdGEpLml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0SXRlbXMuZ2V0KGl0ZW0ucGFyZW50TGluZSk/LmVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vXG4gICAgLy8gVGFncyAvL1xuICAgIC8vLy8vLy8vLy9cblxuICAgIC8vIEZvciBlYWNoIHRhZywgYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGFuZCBibG9jayB0aGF0IGl0IGlzIGEgcGFydCBvZi5cbiAgICBmb3IgKGNvbnN0IHRhZ2RlZiBvZiBtZXRhZGF0YT8udGFncyA/PyBbXSkge1xuICAgICAgICBjb25zdCB0YWcgPSB0YWdkZWYudGFnLnN0YXJ0c1dpdGgoXCIjXCIpID8gdGFnZGVmLnRhZyA6IFwiI1wiICsgdGFnZGVmLnRhZztcbiAgICAgICAgY29uc3QgbGluZSA9IHRhZ2RlZi5wb3NpdGlvbi5zdGFydC5saW5lO1xuICAgICAgICBtYXJrZG93bk1ldGFkYXRhLnRhZyh0YWcpO1xuXG4gICAgICAgIGxvb2t1cChsaW5lLCBzZWN0aW9ucyk/Lm1ldGFkYXRhLnRhZyh0YWcpO1xuICAgICAgICBsb29rdXAobGluZSwgYmxvY2tzKT8ubWV0YWRhdGEudGFnKHRhZyk7XG4gICAgICAgIGxvb2t1cChsaW5lLCBsaXN0SXRlbXMpPy5tZXRhZGF0YS50YWcodGFnKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgZnJvbnRtYXR0ZXIgdGFncy5cbiAgICBpZiAobWV0YWRhdGE/LmZyb250bWF0dGVyKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmF3dGFnIG9mIGV4dHJhY3RUYWdzKG1ldGFkYXRhLmZyb250bWF0dGVyKSkge1xuICAgICAgICAgICAgY29uc3QgdGFnID0gcmF3dGFnLnN0YXJ0c1dpdGgoXCIjXCIpID8gcmF3dGFnIDogXCIjXCIgKyByYXd0YWc7XG4gICAgICAgICAgICBtYXJrZG93bk1ldGFkYXRhLnRhZyh0YWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy9cbiAgICAvLyBMaW5rcyAvL1xuICAgIC8vLy8vLy8vLy8vXG5cbiAgICBmb3IgKGxldCBsaW5rZGVmIG9mIG1ldGFkYXRhPy5saW5rcyA/PyBbXSkge1xuICAgICAgICBjb25zdCBsaW5rID0gTGluay5pbmZlcihsaW5rZGVmLmxpbmspO1xuICAgICAgICBjb25zdCBsaW5lID0gbGlua2RlZi5wb3NpdGlvbi5zdGFydC5saW5lO1xuICAgICAgICBtYXJrZG93bk1ldGFkYXRhLmxpbmsobGluayk7XG5cbiAgICAgICAgbG9va3VwKGxpbmUsIHNlY3Rpb25zKT8ubWV0YWRhdGEubGluayhsaW5rKTtcbiAgICAgICAgbG9va3VwKGxpbmUsIGJsb2Nrcyk/Lm1ldGFkYXRhLmxpbmsobGluayk7XG4gICAgICAgIGxvb2t1cChsaW5lLCBsaXN0SXRlbXMpPy5tZXRhZGF0YS5saW5rKGxpbmspO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRnJvbnRtYXR0ZXIgTGlua3MgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLy8gRnJvbnRtYXR0ZXIgbGlua3MgYXJlIG9ubHkgYXNzaWduZWQgdG8gdGhlIHBhZ2UuXG4gICAgZm9yIChjb25zdCBsaW5rZGVmIG9mIG1ldGFkYXRhPy5mcm9udG1hdHRlckxpbmtzID8/IFtdKSB7XG4gICAgICAgIG1hcmtkb3duTWV0YWRhdGEubGluayhMaW5rLmluZmVyKGxpbmtkZWYubGluaywgZmFsc2UsIGxpbmtkZWYuZGlzcGxheVRleHQpKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSW5saW5lIEZpZWxkcyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgaXRlcmF0ZUlubGluZUZpZWxkcyhsaW5lcykpIHtcbiAgICAgICAgY29uc3QgbGluZSA9IGZpZWxkLnBvc2l0aW9uLmxpbmU7XG4gICAgICAgIG1hcmtkb3duTWV0YWRhdGEuaW5saW5lRmllbGQoZmllbGQpO1xuXG4gICAgICAgIGxvb2t1cChsaW5lLCBzZWN0aW9ucyk/Lm1ldGFkYXRhLmlubGluZUZpZWxkKGZpZWxkKTtcbiAgICAgICAgbG9va3VwKGxpbmUsIGJsb2Nrcyk/Lm1ldGFkYXRhLmlubGluZUZpZWxkKGZpZWxkKTtcbiAgICAgICAgbG9va3VwKGxpbmUsIGxpc3RJdGVtcyk/Lm1ldGFkYXRhLmlubGluZUZpZWxkKGZpZWxkKTtcbiAgICB9XG4gICAgc2VjdGlvbkFycmF5LnB1c2goLi4uc2VjdGlvbnMudmFsdWVzKCkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxpbmVzLFxuICAgICAgICBmcm9udG1hdHRlcixcbiAgICAgICAgbWV0YWRhdGE6IG1hcmtkb3duTWV0YWRhdGEsXG4gICAgICAgIHNlY3Rpb25zOiBzZWN0aW9uQXJyYXksXG4gICAgfTtcbn1cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2luZyBBaWRzIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIENoZWNrIGlmIHRoZSBnaXZlbiBsaW5lIHJhbmdlIGlzIGFsbCBlbXB0eS4gU3RhcnQgaXMgaW5jbHVzaXZlLCBlbmQgZXhjbHVzaXZlLiAqL1xuZnVuY3Rpb24gZW1wdHlsaW5lcyhsaW5lczogc3RyaW5nW10sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaW5kZXggPSBzdGFydDsgaW5kZXggPCBlbmQ7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKGxpbmVzW2luZGV4XS50cmltKCkgIT09IFwiXCIpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBZaWVsZHMgYWxsIGlubGluZSBmaWVsZHMgZm91bmQgaW4gdGhlIGRvY3VtZW50IGJ5IHRyYXZlcnNpbmcgbGluZSBieSBsaW5lIHRocm91Z2ggdGhlIGRvY3VtZW50LiBQZXJmb3JtcyBzb21lIG9wdGltaXphdGlvbnNcbiAqIHRvIHNraXAgZXh0cmEtbGFyZ2UgbGluZXMsIGFuZCBjYW4gYmUgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiogaXRlcmF0ZUlubGluZUZpZWxkcyhjb250ZW50OiBzdHJpbmdbXSk6IEdlbmVyYXRvcjxJbmxpbmVGaWVsZD4ge1xuICAgIGZvciAobGV0IGxpbmVubyA9IDA7IGxpbmVubyA8IGNvbnRlbnQubGVuZ3RoOyBsaW5lbm8rKykge1xuICAgICAgICBjb25zdCBsaW5lID0gY29udGVudFtsaW5lbm9dO1xuXG4gICAgICAgIC8vIEZhc3QtYmFpbG91dCBmb3IgbGluZXMgdGhhdCBhcmUgdG9vIGxvbmcgb3IgZG8gbm90IGNvbnRhaW4gJzo6Jy5cbiAgICAgICAgaWYgKGxpbmUubGVuZ3RoID4gMzI3NjggfHwgIWxpbmUuaW5jbHVkZXMoXCI6OlwiKSkgY29udGludWU7XG5cbiAgICAgICAgLy8gVE9ETzogUmUtYWRkIHN1cHBvcnQgZm9yIHRob3NlIGN1c3RvbSBlbW9qaSBmaWVsZHMgb24gdGFza3MgYW5kIHNpbWlsYXIuXG4gICAgICAgIGxldCBpbmxpbmVGaWVsZHMgPSBleHRyYWN0SW5saW5lRmllbGRzKGxpbmUpO1xuICAgICAgICBpZiAoaW5saW5lRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGlmaWVsZCBvZiBpbmxpbmVGaWVsZHMpIHlpZWxkIGFzSW5saW5lRmllbGQoaWZpZWxkLCBsaW5lbm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGZ1bGxMaW5lID0gZXh0cmFjdEZ1bGxMaW5lRmllbGQobGluZSk7XG4gICAgICAgICAgICBpZiAoZnVsbExpbmUpIHlpZWxkIGFzSW5saW5lRmllbGQoZnVsbExpbmUsIGxpbmVubyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBUb3AtbGV2ZWwgZnVuY3Rpb24gd2hpY2ggbWFwcyBhIFlBTUwgYmxvY2sgLSBpbmNsdWRpbmcgZnJvbnRtYXR0ZXIgLSBpbnRvIGZyb250bWF0dGVyIGVudHJpZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9udG1hdHRlckJsb2NrKGJsb2NrOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEpzb25Gcm9udG1hdHRlckVudHJ5PiA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJsb2NrKSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGJsb2NrW2tleV07XG5cbiAgICAgICAgcmVzdWx0W2tleS50b0xvd2VyQ2FzZSgpXSA9IHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IEpzb25Db252ZXJzaW9uLmpzb24oWWFtbENvbnZlcnNpb24ubGl0ZXJhbCh2YWx1ZSkpLFxuICAgICAgICAgICAgcmF3OiB2YWx1ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogRmluZHMgYW4gZWxlbWVudCB3aGljaCBjb250YWlucyB0aGUgZ2l2ZW4gbGluZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb29rdXA8VCBleHRlbmRzIHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfT4obGluZTogbnVtYmVyLCB0cmVlOiBCVHJlZTxudW1iZXIsIFQ+KTogVCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdHJlZS5nZXRQYWlyT3JOZXh0TG93ZXIobGluZSk/LlsxXTtcbiAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5lbmQgPj0gbGluZSkgcmV0dXJuIHRhcmdldDtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKiBFeHRyYWN0IHRhZ3MgaW50ZWxsaWdlbnRseSBmcm9tIGZyb250bWF0dGVyLiBIYW5kbGVzIGFycmF5cywgbnVtYmVycywgYW5kIHN0cmluZ3MuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRhZ3MobWV0YWRhdGE6IEZyb250TWF0dGVyQ2FjaGUpOiBzdHJpbmdbXSB7XG4gICAgbGV0IHRhZ0tleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSkuZmlsdGVyKCh0KSA9PiB0LnRvTG93ZXJDYXNlKCkgPT0gXCJ0YWdzXCIgfHwgdC50b0xvd2VyQ2FzZSgpID09IFwidGFnXCIpO1xuXG4gICAgcmV0dXJuIHRhZ0tleXNcbiAgICAgICAgLm1hcCgoaykgPT4gc3BsaXRGcm9udG1hdHRlclRhZ09yQWxpYXMobWV0YWRhdGFba10sIC9bLFxcc10rLykpXG4gICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSlcbiAgICAgICAgLm1hcCgoc3RyKSA9PiAoc3RyLnN0YXJ0c1dpdGgoXCIjXCIpID8gc3RyIDogXCIjXCIgKyBzdHIpKTtcbn1cblxuLyoqIFNwbGl0IGEgZnJvbnRtYXR0ZXIgbGlzdCBpbnRvIHNlcGFyYXRlIGVsZW1lbnRzOyBoYW5kbGVzIGFjdHVhbCBsaXN0cywgY29tbWEgc2VwYXJhdGVkIGxpc3RzLCBhbmQgc2luZ2xlIGVsZW1lbnRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKGRhdGE6IGFueSwgb246IFJlZ0V4cCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsIHx8IGRhdGEgPT0gdW5kZWZpbmVkKSByZXR1cm4gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFcbiAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+ICEhcylcbiAgICAgICAgICAgIC5tYXAoKHMpID0+IHNwbGl0RnJvbnRtYXR0ZXJUYWdPckFsaWFzKHMsIG9uKSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IHAuY29uY2F0KGMpLCBbXSk7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgdG8gYSBzdHJpbmcgdG8gaGFuZGxlIG51bWJlcnMgYW5kIHNvIG9uLlxuICAgIHJldHVybiAoXCJcIiArIGRhdGEpXG4gICAgICAgIC5zcGxpdChvbilcbiAgICAgICAgLmZpbHRlcigodCkgPT4gISF0KVxuICAgICAgICAubWFwKCh0KSA9PiB0LnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcigodCkgPT4gdC5sZW5ndGggPiAwKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJ1aWxkZXIgVXRpbGl0aWVzIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKiogQ29udmllbmVudCBzaGFyZWQgdXRpbGl0eSBmb3IgdHJhY2tpbmcgbWV0YWRhdGEgLSBsaW5rcywgdGFncywgYW5kIHNvIG9uLiAqL1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhIHtcbiAgICBwdWJsaWMgdGFnczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgcHVibGljIGxpbmtzOiBMaW5rW10gPSBbXTtcbiAgICBwdWJsaWMgaW5saW5lRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD4gPSB7fTtcblxuICAgIC8qKiBBZGQgYSB0YWcgdG8gdGhlIG1ldGFkYXRhLiAqL1xuICAgIHB1YmxpYyB0YWcodGFnOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZCh0YWcpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYSBsaW5rIHRvIHRoZSBtZXRhZGF0YS4gKi9cbiAgICBwdWJsaWMgbGluayhsaW5rOiBMaW5rKSB7XG4gICAgICAgIGlmICh0aGlzLmxpbmtzLmZpbmQoKHYpID0+IHYuZXF1YWxzKGxpbmspKSkgcmV0dXJuO1xuICAgICAgICB0aGlzLmxpbmtzLnB1c2gobGluayk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhbiBpbmxpbmUgZmllbGQgdG8gdGhlIG1ldGFkYXRhLiAqL1xuICAgIHB1YmxpYyBpbmxpbmVGaWVsZChmaWVsZDogSW5saW5lRmllbGQpIHtcbiAgICAgICAgY29uc3QgbG93ZXIgPSBmaWVsZC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuaW5saW5lRmllbGRzKS5zb21lKChrZXkpID0+IGtleS50b0xvd2VyQ2FzZSgpID09IGxvd2VyKSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaW5saW5lRmllbGRzW2xvd2VyXSA9IGZpZWxkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBsaXN0IG9mIHVuaXF1ZSBhZGRlZCB0YWdzLiAqL1xuICAgIHB1YmxpYyBmaW5pc2hUYWdzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50YWdzKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIGEgbGlzdCBvZiBKU09OLXNlcmlhbGl6ZWQgbGlua3MuICovXG4gICAgcHVibGljIGZpbmlzaExpbmtzKCk6IEpzb25MaW5rW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rcy5tYXAoKGxpbmspID0+IGxpbmsudG9PYmplY3QoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIGxpc3Qgb2YgSlNPTi1zZXJpYWxpemVkIGlubGluZSBmaWVsZHMuICovXG4gICAgcHVibGljIGZpbmlzaElubGluZUZpZWxkcygpOiBSZWNvcmQ8c3RyaW5nLCBKc29uSW5saW5lRmllbGQ+IHtcbiAgICAgICAgcmV0dXJuIG1hcE9iamVjdFZhbHVlcyh0aGlzLmlubGluZUZpZWxkcywganNvbklubGluZUZpZWxkKTtcbiAgICB9XG59XG5cbi8qKiBDb252aWVuZW50IHV0aWxpdHkgZm9yIGNvbnN0cnVjdGluZyBwYWdlIG9iamVjdHMuICovXG5leHBvcnQgY2xhc3MgUGFnZURhdGEge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHN0YXRzOiBGaWxlU3RhdHMsXG4gICAgICAgIHB1YmxpYyBsZW5ndGg6IG51bWJlcixcbiAgICAgICAgcHVibGljIG1ldGFkYXRhOiBNZXRhZGF0YSxcbiAgICAgICAgcHVibGljIHNlY3Rpb25zOiBTZWN0aW9uRGF0YVtdLFxuICAgICAgICBwdWJsaWMgZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT5cbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbk1hcmtkb3duUGFnZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgJGN0aW1lOiB0aGlzLnN0YXRzLmN0aW1lLFxuICAgICAgICAgICAgJG10aW1lOiB0aGlzLnN0YXRzLm10aW1lLFxuICAgICAgICAgICAgJHNpemU6IHRoaXMuc3RhdHMuc2l6ZSxcbiAgICAgICAgICAgICRleHRlbnNpb246IGdldEV4dGVuc2lvbih0aGlzLnBhdGgpLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7IHN0YXJ0OiAwLCBlbmQ6IHRoaXMubGVuZ3RoIH0sXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICRzZWN0aW9uczogdGhpcy5zZWN0aW9ucy5tYXAoKHgpID0+IHguYnVpbGQoKSksXG4gICAgICAgICAgICAkZnJvbnRtYXR0ZXI6IHRoaXMuZnJvbnRtYXR0ZXIsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQ29udmllbmVudCB1dGlsaXR5IGZvciBjb25zdHJ1Y3RpbmcgbWFya2Rvd24gc2VjdGlvbnMuICovXG5leHBvcnQgY2xhc3MgU2VjdGlvbkRhdGEge1xuICAgIHB1YmxpYyBibG9ja3M6IEJsb2NrRGF0YVtdID0gW107XG4gICAgcHVibGljIG1ldGFkYXRhOiBNZXRhZGF0YSA9IG5ldyBNZXRhZGF0YSgpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIGVuZDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGxldmVsOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBvcmRpbmFsOiBudW1iZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYmxvY2soYmxvY2s6IEJsb2NrRGF0YSkge1xuICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbk1hcmtkb3duU2VjdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy5vcmRpbmFsLFxuICAgICAgICAgICAgJGxldmVsOiB0aGlzLmxldmVsLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLFxuICAgICAgICAgICAgJGluZmllbGRzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRibG9ja3M6IHRoaXMuYmxvY2tzLm1hcCgoYmxvY2spID0+IGJsb2NrLmJ1aWxkKCkpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIENvbnN0cnVjdHMgbWFya2Rvd24gbGlzdCBibG9ja3Mgc3BlY2lmaWNhbGx5LiAqL1xuZXhwb3J0IGNsYXNzIExpc3RCbG9ja0RhdGEge1xuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcgPSBcImxpc3RcIjtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG4gICAgcHVibGljIGl0ZW1zOiBMaXN0SXRlbURhdGFbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFydDogbnVtYmVyLCBwdWJsaWMgZW5kOiBudW1iZXIsIHB1YmxpYyBvcmRpbmFsOiBudW1iZXIsIHB1YmxpYyBibG9ja0lkPzogc3RyaW5nKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25NYXJrZG93bkxpc3RCbG9jayB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy5vcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7IHN0YXJ0OiB0aGlzLnN0YXJ0LCBlbmQ6IHRoaXMuZW5kIH0sXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICR0eXBlOiBcImxpc3RcIixcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLmJsb2NrSWQsXG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmJ1aWxkKCkpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIENvbnN0cnVjdHMgbWFya2Rvd24gY29kZWJsb2NrcyBzcGVjaWZpY2FsbHkuICovXG5leHBvcnQgY2xhc3MgQ29kZWJsb2NrRGF0YSB7XG4gICAgcHVibGljIHR5cGU6IHN0cmluZyA9IFwiY29kZWJsb2NrXCI7XG4gICAgcHVibGljIG1ldGFkYXRhOiBNZXRhZGF0YSA9IG5ldyBNZXRhZGF0YSgpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIGVuZDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgb3JkaW5hbDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgbGFuZ3VhZ2VzOiBzdHJpbmdbXSxcbiAgICAgICAgcHVibGljIHN0eWxlOiBcImluZGVudFwiIHwgXCJmZW5jZWRcIixcbiAgICAgICAgcHVibGljIGNvbnRlbnRTdGFydDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgY29udGVudEVuZDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgYmxvY2tJZD86IHN0cmluZ1xuICAgICkge31cblxuICAgIHB1YmxpYyBidWlsZCgpOiBKc29uTWFya2Rvd25Db2RlYmxvY2sge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJHR5cGU6IFwiY29kZWJsb2NrXCIsXG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy5vcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7IHN0YXJ0OiB0aGlzLnN0YXJ0LCBlbmQ6IHRoaXMuZW5kIH0sXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLmJsb2NrSWQsXG4gICAgICAgICAgICAkbGFuZ3VhZ2VzOiB0aGlzLmxhbmd1YWdlcyxcbiAgICAgICAgICAgICRzdHlsZTogdGhpcy5zdHlsZSxcbiAgICAgICAgICAgICRjb250ZW50UG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuY29udGVudFN0YXJ0LCBlbmQ6IHRoaXMuY29udGVudEVuZCB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIENvbnN0cnVjdHMgbWFya2Rvd24gZGF0YWJsb2NrcyBzcGVjaWZpY2FsbHkuICovXG5leHBvcnQgY2xhc3MgRGF0YWJsb2NrRGF0YSB7XG4gICAgcHVibGljIHR5cGU6IHN0cmluZyA9IFwiZGF0YWJsb2NrXCI7XG4gICAgcHVibGljIG1ldGFkYXRhOiBNZXRhZGF0YSA9IG5ldyBNZXRhZGF0YSgpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIGVuZDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgb3JkaW5hbDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZGF0YTogUmVjb3JkPHN0cmluZywgSnNvbkZyb250bWF0dGVyRW50cnk+LFxuICAgICAgICBwdWJsaWMgYmxvY2tJZD86IHN0cmluZ1xuICAgICkge31cblxuICAgIHB1YmxpYyBidWlsZCgpOiBKc29uTWFya2Rvd25EYXRhYmxvY2sge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJHR5cGU6IFwiZGF0YWJsb2NrXCIsXG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy5vcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7IHN0YXJ0OiB0aGlzLnN0YXJ0LCBlbmQ6IHRoaXMuZW5kIH0sXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLmJsb2NrSWQsXG4gICAgICAgICAgICAkZGF0YTogdGhpcy5kYXRhLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIEJhc2UgYmxvY2sgbWV0YWRhdGEgdXNlZCBmb3Igbm9uLXNwZWNpZmljIGJsb2Nrcy4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlQmxvY2tEYXRhIHtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBvcmRpbmFsOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBibG9ja0lkPzogc3RyaW5nXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25NYXJrZG93bkJsb2NrIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICR0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy5vcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7IHN0YXJ0OiB0aGlzLnN0YXJ0LCBlbmQ6IHRoaXMuZW5kIH0sXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLmJsb2NrSWQsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBCbG9ja0RhdGEgPSBMaXN0QmxvY2tEYXRhIHwgQ29kZWJsb2NrRGF0YSB8IERhdGFibG9ja0RhdGEgfCBCYXNlQmxvY2tEYXRhO1xuXG4vKiogVXRpbGl0eSBmb3IgY29uc3RydWN0aW5nIG1hcmtkb3duIGxpc3QgaXRlbXMuICovXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1EYXRhIHtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG4gICAgcHVibGljIGVsZW1lbnRzOiBMaXN0SXRlbURhdGFbXSA9IFtdO1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHN0YXJ0OiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBlbmQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIHBhcmVudExpbmU6IG51bWJlcixcbiAgICAgICAgcHVibGljIHN5bWJvbD86IHN0cmluZyxcbiAgICAgICAgcHVibGljIGJsb2NrSWQ/OiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBzdGF0dXM/OiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyB0ZXh0Pzogc3RyaW5nXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25NYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwYXJlbnRMaW5lOiB0aGlzLnBhcmVudExpbmUsXG4gICAgICAgICAgICAkcG9zaXRpb246IHsgc3RhcnQ6IHRoaXMuc3RhcnQsIGVuZDogdGhpcy5lbmQgfSxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLmJsb2NrSWQsXG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuZWxlbWVudHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LmJ1aWxkKCkpLFxuICAgICAgICAgICAgJHR5cGU6IHRoaXMuc3RhdHVzID8gXCJ0YXNrXCIgOiBcImxpc3RcIixcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLFxuICAgICAgICAgICAgJHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICAkc3ltYm9sOiB0aGlzLnN5bWJvbCxcbiAgICAgICAgICAgICR0ZXh0OiB0aGlzLnRleHQsXG4gICAgICAgIH0gYXMgSnNvbk1hcmtkb3duVGFza0l0ZW07XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IHtcbiAgICBCaW5hcnlPcCxcbiAgICBFeHByZXNzaW9uLFxuICAgIEV4cHJlc3Npb25zLFxuICAgIExhbWJkYUV4cHJlc3Npb24sXG4gICAgTGlzdEV4cHJlc3Npb24sXG4gICAgTGl0ZXJhbEV4cHJlc3Npb24sXG4gICAgT2JqZWN0RXhwcmVzc2lvbixcbiAgICBWYXJpYWJsZUV4cHJlc3Npb24sXG59IGZyb20gXCIuL2V4cHJlc3Npb25cIjtcbmltcG9ydCBlbW9qaVJlZ2V4IGZyb20gXCJlbW9qaS1yZWdleFwiO1xuaW1wb3J0IHtcbiAgICBJbmRleENoaWxkT2YsXG4gICAgSW5kZXhQYXRoLFxuICAgIEluZGV4SWQsXG4gICAgSW5kZXhOb3QsXG4gICAgSW5kZXhQYXJlbnRPZixcbiAgICBJbmRleFF1ZXJ5LFxuICAgIEluZGV4VGFnZ2VkLFxuICAgIEluZGV4VHlwZWQsXG4gICAgSW5kZXhMaW5rZWQsXG4gICAgSW5kZXhGaWVsZCxcbiAgICBJbmRleEV4cHJlc3Npb24sXG59IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgbm9ybWFsaXplRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2luZyBQcmltaXRpdmVzIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFByaW1pdGl2ZSBwYXJzaW5nIGZvciBjb21tb25seSBzZWVuIHR5cGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVzTGFuZ3VhZ2Uge1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIHN0cmluZzogc3RyaW5nO1xuICAgIGVzY2FwZUNoYXJhY3Rlcjogc3RyaW5nO1xuICAgIGJvb2w6IGJvb2xlYW47XG4gICAgdGFnOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGxpbms6IExpbms7XG4gICAgZW1iZWRMaW5rOiBMaW5rO1xuICAgIHJvb3REYXRlOiBEYXRlVGltZTtcbiAgICBkYXRlU2hvcnRoYW5kOiBrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTO1xuICAgIGRhdGU6IERhdGVUaW1lO1xuICAgIGRhdGVQbHVzOiBEYXRlVGltZTtcbiAgICBkdXJhdGlvblR5cGU6IGtleW9mIHR5cGVvZiBEVVJBVElPTl9UWVBFUztcbiAgICBkdXJhdGlvbjogRHVyYXRpb247XG4gICAgcmF3TnVsbDogc3RyaW5nO1xuXG4gICAgYmluYXJ5UGx1c01pbnVzOiBCaW5hcnlPcDtcbiAgICBiaW5hcnlNdWxEaXY6IEJpbmFyeU9wO1xuICAgIGJpbmFyeUNvbXBhcmVPcDogQmluYXJ5T3A7XG4gICAgYmluYXJ5QW5kT3A6IEJpbmFyeU9wO1xuICAgIGJpbmFyeU9yT3A6IEJpbmFyeU9wO1xuXG4gICAgLy8gTGl0ZXJhbCBmaWVsZCBwYXJzaW5nIGZvciBpbmdlc3RpbmcgaW5saW5lIGZpZWxkcyBhbmQgZnJvbnRtYXR0ZXIuXG4gICAgYXRvbUlubGluZUZpZWxkOiBMaXRlcmFsO1xuICAgIGlubGluZUZpZWxkTGlzdDogTGl0ZXJhbFtdO1xuICAgIGlubGluZUZpZWxkOiBMaXRlcmFsO1xufVxuXG4vKiogSW1wbGVtZW50YXRpb25zIGZvciBtYW55IHByaW1pdGl2ZXMuICovXG5leHBvcnQgY29uc3QgUFJJTUlUSVZFUyA9IFAuY3JlYXRlTGFuZ3VhZ2U8UHJpbWl0aXZlc0xhbmd1YWdlPih7XG4gICAgbnVtYmVyOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLy0/WzAtOV0rKFxcLlswLTldKyk/LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSlcbiAgICAgICAgICAgIC5kZXNjKFwibnVtYmVyXCIpLFxuXG4gICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1xcJykuXG4gICAgc3RyaW5nOiAocSkgPT5cbiAgICAgICAgUC5zdHJpbmcoJ1wiJylcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgIFAuYWx0KHEuZXNjYXBlQ2hhcmFjdGVyLCBQLm5vbmVPZignXCJcXFxcJykpXG4gICAgICAgICAgICAgICAgICAgIC5hdExlYXN0KDApXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGNoYXJzKSA9PiBjaGFycy5qb2luKFwiXCIpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnNraXAoUC5zdHJpbmcoJ1wiJykpXG4gICAgICAgICAgICAuZGVzYyhcInN0cmluZ1wiKSxcblxuICAgIGVzY2FwZUNoYXJhY3RlcjogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiXFxcXFwiKVxuICAgICAgICAgICAgLnRoZW4oUC5hbnkpXG4gICAgICAgICAgICAubWFwKChlc2NhcGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIGEgYmFja3NsYXNoIG9yIGEgcXVvdGUsIHBhc3MgaW4gb24gaW4gZXNjYXBlZCBmb3JtXG4gICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICdcIicpIHJldHVybiAnXCInO1xuICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkID09PSBcIlxcXFxcIikgcmV0dXJuIFwiXFxcXFwiO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFwiXFxcXFwiICsgZXNjYXBlZDtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuXG4gICAgYm9vbDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC90cnVlfGZhbHNlfFRydWV8RmFsc2UvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSA9PSBcInRydWVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiYm9vbGVhblwiKSxcblxuICAgIC8vIEEgdGFnIG9mIHRoZSBmb3JtICcjc3R1ZmYvaGVsbG8tdGhlcmUnLlxuICAgIHRhZzogKF8pID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCIjXCIpLFxuICAgICAgICAgICAgUC5hbHQoUC5yZWdleHAoL1teXFx1MjAwMC1cXHUyMDZGXFx1MkUwMC1cXHUyRTdGJyFcIiMkJSYoKSorLC46Ozw9Pj9AXmB7fH1+XFxbXFxdXFxcXFxcc10vKS5kZXNjKFwidGV4dFwiKSkubWFueSgpLFxuICAgICAgICAgICAgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbihcIlwiKVxuICAgICAgICApLmRlc2MoXCJ0YWdcIiksXG5cbiAgICAvLyBBIHZhcmlhYmxlIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFscGhhbnVtZXJpYyBhbmQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIG9yLi4uIGVtb2ppLlxuICAgIGlkZW50aWZpZXI6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bXFxwe0xldHRlcn0kXS91KSwgUC5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoXCJ0ZXh0XCIpKSxcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bMC05XFxwe0xldHRlcn0kXy1dL3UpLCBQLnJlZ2V4cChFTU9KSV9SRUdFWCkuZGVzYyhcInRleHRcIikpLm1hbnkoKSxcbiAgICAgICAgICAgIChmaXJzdCwgcmVzdCkgPT4gZmlyc3QgKyByZXN0LmpvaW4oXCJcIilcbiAgICAgICAgKS5kZXNjKFwidmFyaWFibGVcIiksXG5cbiAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uXG4gICAgbGluazogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXFtcXFsoW15cXFtcXF1dKj8pXFxdXFxdL3UsIDEpXG4gICAgICAgICAgICAubWFwKChsaW5rSW5uZXIpID0+IExpbmsucGFyc2VJbm5lcihsaW5rSW5uZXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBBbiBlbWJlZGRhYmxlIGxpbmsgd2hpY2ggY2FuIHN0YXJ0IHdpdGggJyEnLiBUaGlzIG92ZXJsYXBzIHdpdGggdGhlIG5vcm1hbCBuZWdhdGlvbiBvcGVyYXRvciwgc28gaXQgaXMgb25seVxuICAgIC8vIHByb3ZpZGVkIGZvciBtZXRhZGF0YSBwYXJzaW5nLlxuICAgIGVtYmVkTGluazogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiIVwiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHtcbiAgICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDApIGwuZW1iZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGw7XG4gICAgICAgIH0pLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBCaW5hcnkgcGx1cyBvciBtaW51cyBvcGVyYXRvci5cbiAgICBiaW5hcnlQbHVzTWludXM6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvXFwrfC0vKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicrJyBvciAnLSdcIiksXG5cbiAgICAvLyBCaW5hcnkgdGltZXMgb3IgZGl2aWRlIG9wZXJhdG9yLlxuICAgIGJpbmFyeU11bERpdjogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXCp8XFwvfCUvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicqJyBvciAnLycgb3IgJyUnXCIpLFxuXG4gICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuXG4gICAgYmluYXJ5Q29tcGFyZU9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLz49fDw9fCE9fD58PHw9LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gc3RyIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInPj0nIG9yICc8PScgb3IgJyE9JyBvciAnPScgb3IgJz4nIG9yICc8J1wiKSxcblxuICAgIC8vIEJpbmFyeSBib29sZWFuIGNvbWJpbmF0aW9uIG9wZXJhdG9yLlxuICAgIGJpbmFyeUFuZE9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL2FuZHwmL2kpXG4gICAgICAgICAgICAubWFwKChfc3RyKSA9PiBcIiZcIiBhcyBCaW5hcnlPcClcbiAgICAgICAgICAgIC5kZXNjKFwiJ2FuZCdcIiksXG4gICAgYmluYXJ5T3JPcDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9vcnxcXHwvaSlcbiAgICAgICAgICAgIC5tYXAoKF9zdHIpID0+IFwifFwiIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInb3InXCIpLFxuXG4gICAgLy8gQSBkYXRlIHdoaWNoIGNhbiBiZSBZWVlZLU1NWy1ERFRISDptbTpzc10uXG4gICAgcm9vdERhdGU6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChQLnJlZ2V4cCgvXFxkezR9LyksIFAuc3RyaW5nKFwiLVwiKSwgUC5yZWdleHAoL1xcZHsyfS8pLCAoeWVhciwgXywgbW9udGgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogTnVtYmVyLnBhcnNlSW50KHllYXIpLCBtb250aDogTnVtYmVyLnBhcnNlSW50KG1vbnRoKSB9KTtcbiAgICAgICAgfSkuZGVzYyhcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXVwiKSxcbiAgICBkYXRlU2hvcnRoYW5kOiAoXykgPT5cbiAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhEQVRFX1NIT1JUSEFORFMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTPixcbiAgICBkYXRlOiAocSkgPT5cbiAgICAgICAgY2hhaW5PcHQ8RGF0ZVRpbWU+KFxuICAgICAgICAgICAgcS5yb290RGF0ZSxcbiAgICAgICAgICAgICh5bTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCItXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBkYXkpID0+IHltLnNldCh7IGRheTogTnVtYmVyLnBhcnNlSW50KGRheSkgfSkpLFxuICAgICAgICAgICAgKHltZDogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCJUXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSxcbiAgICAgICAgICAgICh5bWRoOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIjpcIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIG1pbnV0ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgeW1kaC5zZXQoeyBtaW51dGU6IE51bWJlci5wYXJzZUludChtaW51dGUpIH0pXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICh5bWRobTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCI6XCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIHltZGhtLnNldCh7IHNlY29uZDogTnVtYmVyLnBhcnNlSW50KHNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHltZGhtczogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiLlwiKSwgUC5yZWdleHAoL1xcZHszfS8pLCAoXywgbWlsbGlzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB5bWRobXMuc2V0KHsgbWlsbGlzZWNvbmQ6IE51bWJlci5wYXJzZUludChtaWxsaXNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgUC5zdWNjZWVkKHltZGhtcykgLy8gcGFzc1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZHQ6IERhdGVUaW1lKSA9PlxuICAgICAgICAgICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIitcIikub3IoUC5zdHJpbmcoXCItXCIpKSwgUC5yZWdleHAoL1xcZHsxLDJ9KDpcXGR7Mn0pPy8pLCAocG0sIGhyKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZShcIlVUQ1wiICsgcG0gKyBociwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiWlwiKSwgKCkgPT4gZHQuc2V0Wm9uZShcInV0Y1wiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIltcIiksIFAucmVnZXhwKC9bMC05QS1aYS16Ky1cXC9dKy91KSwgUC5zdHJpbmcoXCJdXCIpLCAoX2EsIHpvbmUsIF9iKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAgICAgLmFzc2VydCgoZHQ6IERhdGVUaW1lKSA9PiBkdC5pc1ZhbGlkLCBcInZhbGlkIGRhdGVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXCIpLFxuXG4gICAgLy8gQSBkYXRlLCBwbHVzIHZhcmlvdXMgc2hvcnRoYW5kIHRpbWVzIG9mIGRheSBpdCBjb3VsZCBiZS5cbiAgICBkYXRlUGx1czogKHEpID0+XG4gICAgICAgIFAuYWx0PERhdGVUaW1lPihcbiAgICAgICAgICAgIHEuZGF0ZVNob3J0aGFuZC5tYXAoKGQpID0+IERBVEVfU0hPUlRIQU5EU1tkXSgpKSxcbiAgICAgICAgICAgIHEuZGF0ZVxuICAgICAgICApLmRlc2MoXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10gb3IgaW4gc2hvcnRoYW5kXCIpLFxuXG4gICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLlxuICAgIGR1cmF0aW9uVHlwZTogKF8pID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMoRFVSQVRJT05fVFlQRVMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgRFVSQVRJT05fVFlQRVM+LFxuICAgIGR1cmF0aW9uOiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAocS5udW1iZXIsIFAub3B0V2hpdGVzcGFjZSwgcS5kdXJhdGlvblR5cGUsIChjb3VudCwgXywgdCkgPT5cbiAgICAgICAgICAgIERVUkFUSU9OX1RZUEVTW3RdLm1hcFVuaXRzKCh4KSA9PiB4ICogY291bnQpXG4gICAgICAgIClcbiAgICAgICAgICAgIC5zZXBCeTEoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS5vcihQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgLm1hcCgoZHVyYXRpb25zKSA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvbiBsaWtlIDRocjJtaW5cIiksXG5cbiAgICAvLyBBIHJhdyBudWxsIHZhbHVlLlxuICAgIHJhd051bGw6IChfKSA9PiBQLnN0cmluZyhcIm51bGxcIiksXG5cbiAgICAvLyBJbmxpbmUgZmllbGQgdmFsdWUgcGFyc2luZy5cbiAgICBhdG9tSW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIHEuZGF0ZSxcbiAgICAgICAgICAgIHEuZHVyYXRpb24ubWFwKChkKSA9PiBub3JtYWxpemVEdXJhdGlvbihkKSksXG4gICAgICAgICAgICBxLnN0cmluZyxcbiAgICAgICAgICAgIHEudGFnLFxuICAgICAgICAgICAgcS5lbWJlZExpbmssXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEucmF3TnVsbFxuICAgICAgICApLFxuICAgIGlubGluZUZpZWxkTGlzdDogKHEpID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKHEuYXRvbUlubGluZUZpZWxkKSksXG4gICAgaW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIFAuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLCBxLmlubGluZUZpZWxkTGlzdCwgKGYsIF9zLCBsKSA9PlxuICAgICAgICAgICAgICAgIFtmXS5jb25jYXQobClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBxLmF0b21JbmxpbmVGaWVsZFxuICAgICAgICApLFxufSk7XG5cbi8qKiBFbW9qaSByZWdleCwgc3RycHBpbmcgYW55IHJlZ2V4IGZsYWdzIGl0IGhhcy4gKi9cbmNvbnN0IEVNT0pJX1JFR0VYID0gbmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwiXCIpO1xuXG4vKiogUHJvdmlkZXMgYSBsb29rdXAgdGFibGUgZm9yIHVuaXQgZHVyYXRpb25zIG9mIHRoZSBnaXZlbiB0eXBlLiAqL1xuZXhwb3J0IGNvbnN0IERVUkFUSU9OX1RZUEVTID0ge1xuICAgIHllYXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSxcbiAgICB5ZWFyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLFxuICAgIHlyOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG4gICAgeXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG5cbiAgICBtb250aDogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSxcbiAgICBtb250aHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW86IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW9zOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLFxuXG4gICAgd2VlazogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLFxuICAgIHdlZWtzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG4gICAgd2s6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3a3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3OiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG5cbiAgICBkYXk6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGRheXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuXG4gICAgaG91cjogRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLFxuICAgIGhvdXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG4gICAgaHI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBocnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBoOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG5cbiAgICBtaW51dGU6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbnV0ZXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbjogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbWluczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbTogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG5cbiAgICBzZWNvbmQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlY29uZHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlYzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgc2VjczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG59O1xuXG4vKiogU2hvcnRoYW5kIGZvciBjb21tb24gZGF0ZXMgKHJlbGF0aXZlIHRvIHJpZ2h0IG5vdykuICovXG5leHBvcnQgY29uc3QgREFURV9TSE9SVEhBTkRTID0ge1xuICAgIG5vdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKSxcbiAgICB0b2RheTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwiZGF5XCIpLFxuICAgIHllc3RlcmRheTogKCkgPT5cbiAgICAgICAgRGF0ZVRpbWUubG9jYWwoKVxuICAgICAgICAgICAgLnN0YXJ0T2YoXCJkYXlcIilcbiAgICAgICAgICAgIC5taW51cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgdG9tb3Jyb3c6ICgpID0+XG4gICAgICAgIERhdGVUaW1lLmxvY2FsKClcbiAgICAgICAgICAgIC5zdGFydE9mKFwiZGF5XCIpXG4gICAgICAgICAgICAucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgc293OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIFwic3RhcnQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIGVvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZihcIndlZWtcIiksXG4gICAgXCJlbmQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwid2Vla1wiKSxcbiAgICBzb3k6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgXCJzdGFydC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgZW95OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwieWVhclwiKSxcbiAgICBcImVuZC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJ5ZWFyXCIpLFxuICAgIHNvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwibW9udGhcIiksXG4gICAgXCJzdGFydC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJtb250aFwiKSxcbiAgICBlb206ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJtb250aFwiKSxcbiAgICBcImVuZC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwibW9udGhcIiksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFeHByZXNzaW9uIExhbmd1YWdlIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIFBvc3RmaXhGcmFnbWVudCA9XG4gICAgfCB7IHR5cGU6IFwiZG90XCI7IGV4cHI6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiaW5kZXhcIjsgZXhwcjogRXhwcmVzc2lvbiB9XG4gICAgfCB7IHR5cGU6IFwiZnVuY3Rpb25cIjsgZXhwcnM6IEV4cHJlc3Npb25bXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25MYW5ndWFnZSB7XG4gICAgdmFyaWFibGU6IFZhcmlhYmxlRXhwcmVzc2lvbjtcbiAgICBudW1iZXI6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGJvb2w6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIHN0cmluZzogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZGF0ZTogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZHVyYXRpb246IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGxpbms6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIG51bGw6IExpdGVyYWxFeHByZXNzaW9uO1xuXG4gICAgbGlzdDogTGlzdEV4cHJlc3Npb247XG4gICAgb2JqZWN0OiBPYmplY3RFeHByZXNzaW9uO1xuXG4gICAgbmVnYXRlZDogRXhwcmVzc2lvbjtcbiAgICBhdG9tOiBFeHByZXNzaW9uO1xuICAgIGluZGV4OiBFeHByZXNzaW9uO1xuICAgIGxhbWJkYTogTGFtYmRhRXhwcmVzc2lvbjtcblxuICAgIC8vIFBvc3RmaXggcGFyc2VycyBmb3IgZnVuY3Rpb24gY2FsbHMgJiB0aGUgbGlrZS5cbiAgICBkb3RQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgaW5kZXhQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgZnVuY3Rpb25Qb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG5cbiAgICAvLyBCaW5hcnkgb3AgcGFyc2Vycy5cbiAgICBiaW5hcnlNdWxEaXY6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5UGx1c01pbnVzOiBFeHByZXNzaW9uO1xuICAgIGJpbmFyeUNvbXBhcmU6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5Qm9vbGVhbjogRXhwcmVzc2lvbjtcbiAgICBiaW5hcnlPcDogRXhwcmVzc2lvbjtcbiAgICBwYXJlbnM6IEV4cHJlc3Npb247XG4gICAgZXhwcmVzc2lvbjogRXhwcmVzc2lvbjtcbn1cblxuLyoqXG4gKiBQYXJzZSBmb3IgdGhlIGRhdGFjb3JlIGV4cHJlc3Npb24gbGFuZ3VhZ2UsIHdoaWNoIHByb3ZpZGVzIHNpbXBsZSBhbmQgdmFndWVseSBKUy1sb29raW5nIGNvbXB1dGF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTiA9IFAuY3JlYXRlTGFuZ3VhZ2U8RXhwcmVzc2lvbkxhbmd1YWdlPih7XG4gICAgLy8gRmllbGQgcGFyc2luZy5cbiAgICB2YXJpYWJsZTogKF8pID0+IFBSSU1JVElWRVMuaWRlbnRpZmllci5tYXAoRXhwcmVzc2lvbnMudmFyaWFibGUpLmRlc2MoXCJ2YXJpYWJsZVwiKSxcbiAgICBudW1iZXI6IChfKSA9PiBQUklNSVRJVkVTLm51bWJlci5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcIm51bWJlclwiKSxcbiAgICBzdHJpbmc6IChfKSA9PiBQUklNSVRJVkVTLnN0cmluZy5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcInN0cmluZ1wiKSxcbiAgICBib29sOiAoXykgPT4gUFJJTUlUSVZFUy5ib29sLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKS5kZXNjKFwiYm9vbGVhblwiKSxcbiAgICBkYXRlOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkYXRlXCIsIFBSSU1JVElWRVMuZGF0ZVBsdXMpXG4gICAgICAgICAgICAubWFwKChbX2Z1bmMsIGRhdGVdKSA9PiBFeHByZXNzaW9ucy5saXRlcmFsKGRhdGUpKVxuICAgICAgICAgICAgLmRlc2MoXCJkYXRlXCIpLFxuICAgIGR1cmF0aW9uOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkdXJcIiwgUFJJTUlUSVZFUy5kdXJhdGlvbilcbiAgICAgICAgICAgIC5tYXAoKFtfZnVuYywgZHVyXSkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChkdXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvblwiKSxcbiAgICBudWxsOiAoXykgPT4gUFJJTUlUSVZFUy5yYXdOdWxsLm1hcCgoXykgPT4gRXhwcmVzc2lvbnMuTlVMTCksXG4gICAgbGluazogKF8pID0+IFBSSU1JVElWRVMubGluay5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCksXG4gICAgbGlzdDogKHEpID0+XG4gICAgICAgIHEuZXhwcmVzc2lvblxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIltcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIl1cIikpKVxuICAgICAgICAgICAgLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGlzdChsKSlcbiAgICAgICAgICAgIC5kZXNjKFwibGlzdFwiKSxcbiAgICBvYmplY3Q6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZyksXG4gICAgICAgICAgICBQLnN0cmluZyhcIjpcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgKG5hbWUsIF9zZXAsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIntcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIn1cIikpKVxuICAgICAgICAgICAgLm1hcCgodmFscykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgdmFscykgcmVzW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEV4cHJlc3Npb25zLm9iamVjdChyZXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5kZXNjKFwib2JqZWN0ICgneyBhOiAxLCBiOiAyIH0nKVwiKSxcblxuICAgIGF0b206IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIC8vIFBsYWNlIGVtYmVkIGxpbmtzIGFib3ZlIG5lZ2F0ZWQgZmllbGRzIGFzIHRoZXkgYXJlIHRoZSBzcGVjaWFsIHBhcnNlciBjYXNlICchW1t0aGluZ11dJyBhbmQgYXJlIGdlbmVyYWxseSB1bmFtYmlnaW91cy5cbiAgICAgICAgICAgIFBSSU1JVElWRVMuZW1iZWRMaW5rLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChsKSksXG4gICAgICAgICAgICBxLm5lZ2F0ZWQsXG4gICAgICAgICAgICBxLmxpbmssXG4gICAgICAgICAgICBxLmxpc3QsXG4gICAgICAgICAgICBxLm9iamVjdCxcbiAgICAgICAgICAgIHEubGFtYmRhLFxuICAgICAgICAgICAgcS5wYXJlbnMsXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEuc3RyaW5nLFxuICAgICAgICAgICAgcS5kYXRlLFxuICAgICAgICAgICAgcS5kdXJhdGlvbixcbiAgICAgICAgICAgIHEubnVsbCxcbiAgICAgICAgICAgIHEudmFyaWFibGVcbiAgICAgICAgKSxcbiAgICBpbmRleDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKHEuYXRvbSwgUC5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gb2JqO1xuICAgICAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZG90XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIEV4cHJlc3Npb25zLmxpdGVyYWwocG9zdC5leHByKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImluZGV4XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIHBvc3QuZXhwcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5mdW5jKHJlc3VsdCwgcG9zdC5leHBycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgIG5lZ2F0ZWQ6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIiFcIiksIHEuaW5kZXgsIChfLCBmaWVsZCkgPT4gRXhwcmVzc2lvbnMubmVnYXRlKGZpZWxkKSkuZGVzYyhcIm5lZ2F0ZWQgZmllbGRcIiksXG4gICAgcGFyZW5zOiAocSkgPT4gcS5leHByZXNzaW9uLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS53cmFwKFAuc3RyaW5nKFwiKFwiKSwgUC5zdHJpbmcoXCIpXCIpKSxcbiAgICBsYW1iZGE6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIC5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgICAgIC53cmFwKFAuc3RyaW5nKFwiKFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksIFAuc3RyaW5nKFwiKVwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCI9PlwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksXG4gICAgICAgICAgICBxLmV4cHJlc3Npb24sXG4gICAgICAgICAgICAoaWRlbnQsIF9pZ25vcmUsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsYW1iZGFcIiwgYXJndW1lbnRzOiBpZGVudCwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIGRvdFBvc3RmaXg6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIi5cIiksIFBSSU1JVElWRVMuaWRlbnRpZmllciwgKF8sIGV4cHIpID0+ICh7IHR5cGU6IFwiZG90XCIsIGV4cHIgfSkpLFxuICAgIGluZGV4UG9zdGZpeDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJbXCIpLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJdXCIpLFxuICAgICAgICAgICAgKF8sIF8yLCBleHByLCBfMywgXzQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcImluZGV4XCIsIGV4cHIgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICBmdW5jdGlvblBvc3RmaXg6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKFwiKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIHEuZXhwcmVzc2lvbi5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKVwiKSxcbiAgICAgICAgICAgIChfLCBfMSwgZXhwcnMsIF8yLCBfMykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgZXhwcnMgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLlxuICAgIGJpbmFyeU11bERpdjogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmluZGV4LCBQUklNSVRJVkVTLmJpbmFyeU11bERpdiwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeVBsdXNNaW51czogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmJpbmFyeU11bERpdiwgUFJJTUlUSVZFUy5iaW5hcnlQbHVzTWludXMsIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlDb21wYXJlOiAocSkgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzLCBQUklNSVRJVkVTLmJpbmFyeUNvbXBhcmVPcCwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeUJvb2xlYW46IChxKSA9PlxuICAgICAgICBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlDb21wYXJlLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLm9yKFBSSU1JVElWRVMuYmluYXJ5T3JPcCksIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlPcDogKHEpID0+IHEuYmluYXJ5Qm9vbGVhbixcblxuICAgIGV4cHJlc3Npb246IChxKSA9PiBxLmJpbmFyeU9wLFxufSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBRdWVyeSBMYW5ndWFnZSAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFN1cHBvcnRlZCB0eXBlcyBpbiB0aGUgZ3JhbW1hciBmb3IgaW5kZXggcXVlcmllcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlMYW5ndWFnZSB7XG4gICAgcXVlcnlUYWc6IEluZGV4VGFnZ2VkO1xuICAgIHF1ZXJ5SWQ6IEluZGV4SWQ7XG4gICAgcXVlcnlUeXBlOiBJbmRleFR5cGVkO1xuICAgIHF1ZXJ5UGF0aDogSW5kZXhQYXRoO1xuICAgIHF1ZXJ5UGFyZW50T2Y6IEluZGV4UGFyZW50T2Y7XG4gICAgcXVlcnlDaGlsZE9mOiBJbmRleENoaWxkT2Y7XG4gICAgcXVlcnlTaW1wbGVMaW5rZWQ6IEluZGV4TGlua2VkO1xuICAgIHF1ZXJ5TGlua2VkOiBJbmRleExpbmtlZDtcbiAgICBxdWVyeUV4aXN0czogSW5kZXhGaWVsZDtcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeVJhd0V4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeU5lZ2F0ZTogSW5kZXhOb3Q7XG4gICAgcXVlcnlQYXJlbnM6IEluZGV4UXVlcnk7XG4gICAgcXVlcnlBdG9tOiBJbmRleFF1ZXJ5O1xuICAgIHF1ZXJ5QW5kczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeU9yczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeTogSW5kZXhRdWVyeTtcbn1cblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBxdWVyeSBsYW5ndWFnZS4gRGlkIEkgcmVhbGx5IG5lZWQgYSBxdWVyeSBsYW5ndWFnZSBpbnN0ZWFkIG9mIGp1c3QgYSBiZXR0ZXIgVUk/IFByb2JhYmx5IG5vdC5cbiAqIEJ1dCBxdWVyeSBsYW5ndWFnZXMgYXJlIGZ1biBmb3IgdGhlIHdob2xlIGZhbWlseSBhbmQgYXQgc29tZSBwb2ludCB5b3UgZ2V0IHNvIHVzZWQgdG8gd3JpdGluZyB0aGVtIHRoYXRcbiAqIHlvdSBkb24ndCBzdG9wIHRvIHRoaW5rIGlmIHlvdSAqbmVlZCogdG8gd3JpdGUgdGhlbSBhbnltb3JlLiBJdCdzIGdvb2QgdHlwaW5nIHByYWN0aWNlIGZvciBldmVyeW9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFFVRVJZID0gUC5jcmVhdGVMYW5ndWFnZTxRdWVyeUxhbmd1YWdlPih7XG4gICAgcXVlcnlUYWc6IChfKSA9PiBQUklNSVRJVkVTLnRhZy5tYXAoKHZhbHVlKSA9PiAoeyB0eXBlOiBcInRhZ2dlZFwiLCB2YWx1ZSB9KSksXG4gICAgcXVlcnlJZDogKF8pID0+IGNyZWF0ZUZ1bmN0aW9uKFwiaWRcIiwgUFJJTUlUSVZFUy5zdHJpbmcpLm1hcCgoW18sIGlkXSkgPT4gKHsgdHlwZTogXCJpZFwiLCB2YWx1ZTogaWQgfSkpLFxuICAgIHF1ZXJ5VHlwZTogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiQFwiKVxuICAgICAgICAgICAgLnRoZW4oUFJJTUlUSVZFUy5pZGVudGlmaWVyKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7IHR5cGU6IFwidHlwZWRcIiwgdmFsdWU6IHZhbHVlIH0pKSxcblxuICAgIHF1ZXJ5UGF0aDogKF8pID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9lP3BhdGgvaSkuZGVzYyhcIltlXXBhdGhcIiksIFBSSU1JVElWRVMuc3RyaW5nKS5tYXAoKFtmdW5jLCBwYXRoXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwicGF0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHBhdGgsXG4gICAgICAgICAgICBleGFjdDogZnVuYy50b0xvd2VyQ2FzZSgpID09PSBcImVwYXRoXCIsXG4gICAgICAgIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW50T2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvcGFyZW50b2Z8c3VwZXJ0cmVlL2kpLmRlc2MoXCJwYXJlbnRvZlwiKSwgcS5xdWVyeSkubWFwKChbZnVuYywgY2hpbGRyZW5dKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJwYXJlbnQtb2ZcIixcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmdW5jLnRvTG93ZXJDYXNlKCkgPT09IFwic3VwZXJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUNoaWxkT2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvY2hpbGRvZnxzdWJ0cmVlL2kpLmRlc2MoXCJjaGlsZG9mXCIpLCBxLnF1ZXJ5KS5tYXAoKFtmdW5jLCBwYXJlbnRzXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hpbGQtb2ZcIixcbiAgICAgICAgICAgIHBhcmVudHMsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PT0gXCJzdWJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeVNpbXBsZUxpbmtlZDogKF8pID0+XG4gICAgICAgIFBSSU1JVElWRVMubGluay5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlOiB7IHR5cGU6IFwibGlua1wiLCB2YWx1ZTogbGluayB9LFxuICAgICAgICAgICAgZGlyZWN0aW9uOiBcImluY29taW5nXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUxpbmtlZDogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9saW5rc3RvfGxpbmtlZGZyb218Y29ubmVjdGVkL2kpLmRlc2MoXCJjb25uZWN0ZWRcIiksIHEucXVlcnkpLm1hcCgoW2Z1bmMsIHNvdXJjZV0pID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgZGlyZWN0aW9uOlxuICAgICAgICAgICAgICAgIGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtzdG9cIiA/IFwiaW5jb21pbmdcIiA6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtlZGZyb21cIiA/IFwib3V0Z29pbmdcIiA6IFwiYm90aFwiLFxuICAgICAgICB9KSksXG4gICAgcXVlcnlFeGlzdHM6IChfKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhpc3RzL2kpLmRlc2MoXCJleGlzdHNcIiksIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZykpLm1hcChcbiAgICAgICAgICAgIChbX2Z1bmMsIGlkZW50XSkgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZpZWxkXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhwci9pKS5kZXNjKFwiZXhwclwiKSwgRVhQUkVTU0lPTi5leHByZXNzaW9uKS5tYXAoKFtfLCBleHByXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5UmF3RXhwcmVzc2lvbjogKHEpID0+IEVYUFJFU1NJT04uYmluYXJ5Q29tcGFyZS5tYXAoKGV4cHIpID0+ICh7IHR5cGU6IFwiZXhwcmVzc2lvblwiLCBleHByZXNzaW9uOiBleHByIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW5zOiAocSkgPT4gcS5xdWVyeS50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgcXVlcnlOZWdhdGU6IChxKSA9PlxuICAgICAgICBQLnN0cmluZyhcIiFcIilcbiAgICAgICAgICAgIC5za2lwKFAub3B0V2hpdGVzcGFjZSlcbiAgICAgICAgICAgIC50aGVuKHEucXVlcnlBdG9tKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJub3RcIixcbiAgICAgICAgICAgICAgICBlbGVtZW50OiB2YWx1ZSxcbiAgICAgICAgICAgIH0pKSxcbiAgICBxdWVyeUF0b206IChxKSA9PlxuICAgICAgICBQLmFsdDxJbmRleFF1ZXJ5PihcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnMsXG4gICAgICAgICAgICBxLnF1ZXJ5TmVnYXRlLFxuICAgICAgICAgICAgcS5xdWVyeVNpbXBsZUxpbmtlZCxcbiAgICAgICAgICAgIHEucXVlcnlUYWcsXG4gICAgICAgICAgICBxLnF1ZXJ5VHlwZSxcbiAgICAgICAgICAgIHEucXVlcnlJZCxcbiAgICAgICAgICAgIHEucXVlcnlFeGlzdHMsXG4gICAgICAgICAgICBxLnF1ZXJ5Q2hpbGRPZixcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnRPZixcbiAgICAgICAgICAgIHEucXVlcnlMaW5rZWQsXG4gICAgICAgICAgICBxLnF1ZXJ5UGF0aCxcbiAgICAgICAgICAgIHEucXVlcnlRdW90ZWRFeHByZXNzaW9uLFxuICAgICAgICAgICAgLy8gRXhwcmVzc2lvbnMgYXJlIGVzc2VudGlhbGx5IHRoZSBcImNhdGNoLWFsbFwiIG9mIG90aGVyd2lzZSB1bnBhcnNlYWJsZSB0ZXJtcywgc28gdGhleSBzaG91bGQgZ28gYWJzb2x1dGUgbGFzdC5cbiAgICAgICAgICAgIHEucXVlcnlSYXdFeHByZXNzaW9uXG4gICAgICAgICksXG4gICAgcXVlcnlBbmRzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBdG9tLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLCAobGVmdCwgX29wLCByaWdodCkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiYW5kXCIsXG4gICAgICAgICAgICBlbGVtZW50czogW2xlZnQsIHJpZ2h0XSxcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5T3JzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBbmRzLCBQUklNSVRJVkVTLmJpbmFyeU9yT3AsIChsZWZ0LCBfb3AsIHJpZ2h0KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJvclwiLFxuICAgICAgICAgICAgZWxlbWVudHM6IFtsZWZ0LCByaWdodF0sXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeTogKHEpID0+IHEucXVlcnlPcnMudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxufSk7XG5cbi8qKiBSZXR1cm4gYSBuZXcgcGFyc2VyIHdoaWNoIGV4ZWN1dGVzIHRoZSB1bmRlcmx5aW5nIHBhcnNlciBhbmQgcmV0dXJucyBpdCdzIHJhdyBzdHJpbmcgcmVwcmVzZW50YXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZVJhdzxUPihiYXNlOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtULCBzdHJpbmddPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXN1bHQsIHsgdmFsdWU6IFtyZXN1bHQudmFsdWUsIGlucHV0LnN1YnN0cmluZyhpLCByZXN1bHQuaW5kZXgpXSB9KTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuLyoqIENyZWF0ZSBhIGxlZnQtYXNzb2NpYXRpdmUgYmluYXJ5IHBhcnNlciB3aGljaCBwYXJzZXMgdGhlIGdpdmVuIHN1Yi1lbGVtZW50IGFuZCBzZXBhcmF0b3IuIEhhbmRsZXMgd2hpdGVzcGFjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCaW5hcnlQYXJzZXI8VCwgVT4oXG4gICAgY2hpbGQ6IFAuUGFyc2VyPFQ+LFxuICAgIHNlcDogUC5QYXJzZXI8VT4sXG4gICAgY29tYmluZTogKGE6IFQsIGI6IFUsIGM6IFQpID0+IFRcbik6IFAuUGFyc2VyPFQ+IHtcbiAgICByZXR1cm4gUC5zZXFNYXAoY2hpbGQsIFAuc2VxKFAub3B0V2hpdGVzcGFjZSwgc2VwLCBQLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4ge1xuICAgICAgICBpZiAocmVzdC5sZW5ndGggPT0gMCkgcmV0dXJuIGZpcnN0O1xuXG4gICAgICAgIGxldCBub2RlID0gY29tYmluZShmaXJzdCwgcmVzdFswXVsxXSwgcmVzdFswXVszXSk7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgbm9kZSA9IGNvbWJpbmUobm9kZSwgcmVzdFtpbmRleF1bMV0sIHJlc3RbaW5kZXhdWzNdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXJzZXIgd2hpY2ggcGFyc2VzIFxcPGZ1bmN0aW9uXFw+KFxcPGFyZ3NcXD4pLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbjxUPihmdW5jOiBzdHJpbmcgfCBQLlBhcnNlcjxzdHJpbmc+LCBhcmdzOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtzdHJpbmcsIFRdPiB7XG4gICAgY29uc3QgcmVhbEZ1bmMgPSB0eXBlb2YgZnVuYyA9PT0gXCJzdHJpbmdcIiA/IFAuc3RyaW5nKGZ1bmMpIDogZnVuYztcbiAgICByZXR1cm4gUC5zZXFNYXAoXG4gICAgICAgIHJlYWxGdW5jLnNraXAoUC5vcHRXaGl0ZXNwYWNlKSxcbiAgICAgICAgYXJncy50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgICAgIChmLCBhKSA9PiBbZiwgYV1cbiAgICApO1xufVxuXG4vKiogQ2hhaW5zIGEgbGlzdCBvZiBwYXJzZXJzOyB0aGUgZmlyc3Qgb25lIG11c3Qgc3VjY2VlZCwgYnV0IGZvbGxvd2luZyBvbmVzIG1heSBmYWlsIHdpdGhvdXQgZmFpbGluZyB0aGUgb3ZlcmFsbCBwYXJzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbk9wdDxUPihiYXNlOiBQLlBhcnNlcjxUPiwgLi4uZnVuY3M6ICgocjogVCkgPT4gUC5QYXJzZXI8VD4pW10pOiBQLlBhcnNlcjxUPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IChmdW5jKHJlc3VsdC52YWx1ZSBhcyBUKSBhcyBhbnkpLl8oaW5wdXQsIHJlc3VsdC5pbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGV4cHJlc3Npb25zXG4gKi9cbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IHJlbmRlck1pbmltYWxEYXRlLCByZW5kZXJNaW5pbWFsRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLy8gUmUtZXhwb3J0cyBvZiB1c2VmdWwgZ2VuZXJpYyB0eXBlcy5cbmV4cG9ydCB7IExpbmsgfTtcblxuLyoqIFNob3J0aGFuZCBmb3IgYSBtYXBwaW5nIGZyb20ga2V5cyB0byB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBEYXRhT2JqZWN0ID0gUmVjb3JkPHN0cmluZywgYW55Pjtcbi8qKiBUaGUgbGl0ZXJhbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIHF1ZXJ5IGVuZ2luZS4gKi9cbmV4cG9ydCB0eXBlIExpdGVyYWxUeXBlID1cbiAgICB8IFwiYm9vbGVhblwiXG4gICAgfCBcIm51bWJlclwiXG4gICAgfCBcInN0cmluZ1wiXG4gICAgfCBcImRhdGVcIlxuICAgIHwgXCJkdXJhdGlvblwiXG4gICAgfCBcImxpbmtcIlxuICAgIHwgXCJhcnJheVwiXG4gICAgfCBcIm9iamVjdFwiXG4gICAgfCBcImZ1bmN0aW9uXCJcbiAgICB8IFwibnVsbFwiO1xuLyoqIFRoZSByYXcgdmFsdWVzIHRoYXQgYSBsaXRlcmFsIGNhbiB0YWtlIG9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbCA9XG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgRGF0ZVRpbWVcbiAgICB8IER1cmF0aW9uXG4gICAgfCBMaW5rXG4gICAgfCBBcnJheTxMaXRlcmFsPlxuICAgIHwgRGF0YU9iamVjdFxuICAgIHwgRnVuY3Rpb25cbiAgICB8IG51bGw7XG5cbi8qKiBNYXBzIHRoZSBzdHJpbmcgdHlwZSB0byBpdCdzIGV4dGVybmFsLCBBUEktZmFjaW5nIHJlcHJlc2VudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFJlcHI8VCBleHRlbmRzIExpdGVyYWxUeXBlPiA9IFQgZXh0ZW5kcyBcImJvb2xlYW5cIlxuICAgID8gYm9vbGVhblxuICAgIDogVCBleHRlbmRzIFwibnVtYmVyXCJcbiAgICA/IG51bWJlclxuICAgIDogVCBleHRlbmRzIFwic3RyaW5nXCJcbiAgICA/IHN0cmluZ1xuICAgIDogVCBleHRlbmRzIFwiZHVyYXRpb25cIlxuICAgID8gRHVyYXRpb25cbiAgICA6IFQgZXh0ZW5kcyBcImRhdGVcIlxuICAgID8gRGF0ZVRpbWVcbiAgICA6IFQgZXh0ZW5kcyBcIm51bGxcIlxuICAgID8gbnVsbFxuICAgIDogVCBleHRlbmRzIFwibGlua1wiXG4gICAgPyBMaW5rXG4gICAgOiBUIGV4dGVuZHMgXCJhcnJheVwiXG4gICAgPyBBcnJheTxMaXRlcmFsPlxuICAgIDogVCBleHRlbmRzIFwib2JqZWN0XCJcbiAgICA/IERhdGFPYmplY3RcbiAgICA6IFQgZXh0ZW5kcyBcImZ1bmN0aW9uXCJcbiAgICA/IEZ1bmN0aW9uXG4gICAgOiBhbnk7XG5cbi8qKiBBIHdyYXBwZWQgbGl0ZXJhbCB2YWx1ZSB3aGljaCBjYW4gYmUgc3dpdGNoZWQgb24uICovXG5leHBvcnQgdHlwZSBXcmFwcGVkTGl0ZXJhbCA9XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcInN0cmluZ1wiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJudW1iZXJcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYm9vbGVhblwiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJkYXRlXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImR1cmF0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImxpbmtcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYXJyYXlcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwib2JqZWN0XCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImZ1bmN0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcIm51bGxcIj47XG5cbi8qKiBDb21iaW5lcyBhIHRleHR1YWwgdHlwZSBhbmQgdmFsdWU7IHByaW1hcmlseSB1c2VmdWwgZm9yIHN3aXRjaGluZyBvbi5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsV3JhcHBlcjxUIGV4dGVuZHMgTGl0ZXJhbFR5cGU+IHtcbiAgICB0eXBlOiBUO1xuICAgIHZhbHVlOiBMaXRlcmFsUmVwcjxUPjtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiAgVXRpbGl0eSBsaWJyYXJ5IGZvciBoYW5kbGluZyBsaXRlcmFsIHZhbHVlcy4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgTGl0ZXJhbHMge1xuICAgIC8qKiBTZXR0aW5ncyB1c2VkIHdoZW4gZm9ybWF0dGluZyBsaXRlcmFsIHZhbHVlcyB0byB0ZXh0LiAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9TdHJpbmdTZXR0aW5ncyB7XG4gICAgICAgIC8qKiBXaGF0IGEgbnVsbCB3aWxsIHJlbmRlciBhcy4gKi9cbiAgICAgICAgbnVsbFJlcHJlc2VudGF0aW9uOiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUgZm9ybWF0LiAqL1xuICAgICAgICBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUtdGltZSBmb3JtYXQuICovXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqIFNhbmUsIEVuZ2xpc2gtYmFzZWQgZGVmYXVsdHMgZm9yIGRhdGUgZm9ybWF0cy4gKi9cbiAgICBleHBvcnQgY29uc3QgREVGQVVMVF9UT19TVFJJTkc6IFRvU3RyaW5nU2V0dGluZ3MgPSB7XG4gICAgICAgIG51bGxSZXByZXNlbnRhdGlvbjogXCItXCIsXG5cbiAgICAgICAgZGF0ZUZvcm1hdDogXCJNTU1NIGRkLCB5eXl5XCIsXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBcImg6bW0gYSAtIE1NTU0gZGQsIHl5eXlcIixcbiAgICB9O1xuXG4gICAgLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhbHVlIGludG8gYSByZWFzb25hYmxlLCBNYXJrZG93bi1mcmllbmRseSBzdHJpbmcgaWYgcG9zc2libGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKFxuICAgICAgICBmaWVsZDogYW55LFxuICAgICAgICBzZXR0aW5nOiBUb1N0cmluZ1NldHRpbmdzID0gREVGQVVMVF9UT19TVFJJTkcsXG4gICAgICAgIHJlY3Vyc2l2ZTogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBzZXR0aW5nLm51bGxSZXByZXNlbnRhdGlvbjtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZy5udWxsUmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiICsgd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIjxmdW5jdGlvbj5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChyZWN1cnNpdmUpIHJlc3VsdCArPSBcIltcIjtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gd3JhcHBlZC52YWx1ZS5tYXAoKGYpID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKFwiLCBcIik7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkgcmVzdWx0ICs9IFwiXVwiO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgXCJ7IFwiICtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGUpID0+IGVbMF0gKyBcIjogXCIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIiB9XCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyTWluaW1hbERhdGUod3JhcHBlZC52YWx1ZSwgc2V0dGluZy5kYXRlRm9ybWF0LCBzZXR0aW5nLmRhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRHVyYXRpb24od3JhcHBlZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogV3JhcCBhIGxpdGVyYWwgdmFsdWUgc28geW91IGNhbiBzd2l0Y2ggb24gaXQgZWFzaWx5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB3cmFwVmFsdWUodmFsOiBMaXRlcmFsKTogV3JhcHBlZExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNOdWxsKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVsbFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVtYmVyXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJzdHJpbmdcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW4odmFsKSkgcmV0dXJuIHsgdHlwZTogXCJib29sZWFuXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEdXJhdGlvbih2YWwpKSByZXR1cm4geyB0eXBlOiBcImR1cmF0aW9uXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZGF0ZVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJhcnJheVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTGluayh2YWwpKSByZXR1cm4geyB0eXBlOiBcImxpbmtcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXBMZWF2ZXModmFsOiBMaXRlcmFsLCBmdW5jOiAodDogTGl0ZXJhbCkgPT4gTGl0ZXJhbCk6IExpdGVyYWwge1xuICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdDogRGF0YU9iamVjdCA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHJlc3VsdFtrZXldID0gbWFwTGVhdmVzKHZhbHVlLCBmdW5jKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBMaXRlcmFsW10gPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbCkgcmVzdWx0LnB1c2gobWFwTGVhdmVzKHZhbHVlLCBmdW5jKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0d28gYXJiaXRyYXJ5IGxpdGVyYWxzIGFyZSBlcXVhbC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZXF1YWxzKGZpcnN0OiBMaXRlcmFsIHwgdW5kZWZpbmVkLCBzZWNvbmQ6IExpdGVyYWwgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmUoZmlyc3QsIHNlY29uZCkgPT0gMDtcbiAgICB9XG5cbiAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGFjb3JlIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKFxuICAgICAgICB2YWwxOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICB2YWwyOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICBsaW5rTm9ybWFsaXplcj86IChsaW5rOiBzdHJpbmcpID0+IHN0cmluZ1xuICAgICk6IG51bWJlciB7XG4gICAgICAgIC8vIFJlZmVyZW5jZSBlcXVhbGl0eSAtIHNob3J0IGNpcmN1aXQuXG4gICAgICAgIGlmICh2YWwxID09PSB2YWwyKSByZXR1cm4gMDtcblxuICAgICAgICAvLyBIYW5kbGUgdW5kZWZpbmVkL251bGxzIGZpcnN0LlxuICAgICAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkKSB2YWwxID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCkgdmFsMiA9IG51bGw7XG4gICAgICAgIGlmICh2YWwxID09PSBudWxsICYmIHZhbDIgPT09IG51bGwpIHJldHVybiAwO1xuICAgICAgICBlbHNlIGlmICh2YWwxID09PSBudWxsKSByZXR1cm4gLTE7XG4gICAgICAgIGVsc2UgaWYgKHZhbDIgPT09IG51bGwpIHJldHVybiAxO1xuXG4gICAgICAgIC8vIEEgbm9uLW51bGwgdmFsdWUgbm93IHdoaWNoIHdlIGNhbiB3cmFwICYgY29tcGFyZSBvbi5cbiAgICAgICAgbGV0IHdyYXAxID0gd3JhcFZhbHVlKHZhbDEpO1xuICAgICAgICBsZXQgd3JhcDIgPSB3cmFwVmFsdWUodmFsMik7XG5cbiAgICAgICAgaWYgKHdyYXAxID09PSB1bmRlZmluZWQgJiYgd3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDA7XG4gICAgICAgIGVsc2UgaWYgKHdyYXAxID09PSB1bmRlZmluZWQpIHJldHVybiAtMTtcbiAgICAgICAgZWxzZSBpZiAod3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDE7XG5cbiAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBvbiBkaWZmZXJlbnQgdHlwZXMgb3Igb24gcmVmZXJlbmNlIGVxdWFsaXR5LlxuICAgICAgICBpZiAod3JhcDEudHlwZSAhPSB3cmFwMi50eXBlKSByZXR1cm4gd3JhcDEudHlwZS5sb2NhbGVDb21wYXJlKHdyYXAyLnR5cGUpO1xuICAgICAgICBpZiAod3JhcDEudmFsdWUgPT09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXAxLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUubG9jYWxlQ29tcGFyZSh3cmFwMi52YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIGlmICh3cmFwMS52YWx1ZSA8ICh3cmFwMi52YWx1ZSBhcyBudW1iZXIpKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod3JhcDEudmFsdWUgPT0gKHdyYXAyLnZhbHVlIGFzIG51bWJlcikpIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiB3cmFwMS52YWx1ZSA/IDEgOiAtMTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsxID0gd3JhcDEudmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsyID0gd3JhcDIudmFsdWUgYXMgTGluaztcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplID0gbGlua05vcm1hbGl6ZXIgPz8gKCh4OiBzdHJpbmcpID0+IHgpO1xuXG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY29tcGFyZSBieSBmaWxlIG5hbWUgb3IgZGlzcGxheSwgc2luY2UgdGhhdCB3b3VsZCBicmVhayBsaW5rIGVxdWFsaXR5LiBDb21wYXJlIGJ5IHBhdGguXG4gICAgICAgICAgICAgICAgbGV0IHBhdGhDb21wYXJlID0gbm9ybWFsaXplKGxpbmsxLnBhdGgpLmxvY2FsZUNvbXBhcmUobm9ybWFsaXplKGxpbmsyLnBhdGgpKTtcbiAgICAgICAgICAgICAgICBpZiAocGF0aENvbXBhcmUgIT0gMCkgcmV0dXJuIHBhdGhDb21wYXJlO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlbiBjb21wYXJlIGJ5IHR5cGUuXG4gICAgICAgICAgICAgICAgbGV0IHR5cGVDb21wYXJlID0gbGluazEudHlwZS5sb2NhbGVDb21wYXJlKGxpbmsyLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tcGFyZSAhPSAwKSByZXR1cm4gdHlwZUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgc3VicGF0aCBleGlzdGVuY2UuXG4gICAgICAgICAgICAgICAgaWYgKGxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiBsaW5rMi5zdWJwYXRoKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIC8vIFNpbmNlIGJvdGggaGF2ZSBhIHN1YnBhdGgsIGNvbXBhcmUgYnkgc3VicGF0aC5cbiAgICAgICAgICAgICAgICByZXR1cm4gKGxpbmsxLnN1YnBhdGggPz8gXCJcIikubG9jYWxlQ29tcGFyZShsaW5rMi5zdWJwYXRoID8/IFwiXCIpO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICBsZXQgZjEgPSB3cmFwMS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgZjIgPSB3cmFwMi52YWx1ZSBhcyBhbnlbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wID0gY29tcGFyZShmMVtpbmRleF0sIGYyW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApIHJldHVybiBjb21wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZjEubGVuZ3RoIC0gZjIubGVuZ3RoO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGxldCBvMSA9IHdyYXAxLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGsxID0gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvMSkpO1xuICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTtcbiAgICAgICAgICAgICAgICBrMS5zb3J0KCk7XG4gICAgICAgICAgICAgICAgazIuc29ydCgpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGtleUNvbXBhcmUgPSBjb21wYXJlKGsxLCBrMik7XG4gICAgICAgICAgICAgICAgaWYgKGtleUNvbXBhcmUgIT0gMCkgcmV0dXJuIGtleUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgazEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlKG8xW2tleV0sIG8yW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKSByZXR1cm4gY29tcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgZGF0YWNvcmUgdHlwZSBmb3IgYW4gYXJiaXRyYXJ5IHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB0eXBlT2YodmFsOiBhbnkpOiBMaXRlcmFsVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3cmFwVmFsdWUodmFsKT8udHlwZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBcInRydXRoeVwiIChpLmUuLCBpcyBub24tbnVsbCBhbmQgaGFzIGRhdGEgaW4gaXQpLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1RydXRoeShmaWVsZDogTGl0ZXJhbCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhd3JhcHBlZC52YWx1ZS5wYXRoO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b01pbGxpcygpICE9IDA7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5hcyhcInNlY29uZHNcIikgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMod3JhcHBlZC52YWx1ZSkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERlZXAgY29weSBhIGZpZWxkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBkZWVwQ29weTxUIGV4dGVuZHMgTGl0ZXJhbD4oZmllbGQ6IFQpOiBUIHtcbiAgICAgICAgaWYgKGZpZWxkID09PSBudWxsIHx8IGZpZWxkID09PSB1bmRlZmluZWQpIHJldHVybiBmaWVsZDtcblxuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNBcnJheShmaWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoW10gYXMgTGl0ZXJhbFtdKS5jb25jYXQoZmllbGQubWFwKCh2KSA9PiBkZWVwQ29weSh2KSkpIGFzIFQ7XG4gICAgICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNPYmplY3QoZmllbGQpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkgcmVzdWx0W2tleV0gPSBkZWVwQ29weSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIFQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlci4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsOiBhbnkpOiB2YWwgaXMgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJudW1iZXJcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZSh2YWw6IGFueSk6IHZhbCBpcyBEYXRlVGltZSB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEYXRlVGltZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGR1cmF0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0R1cmF0aW9uKHZhbDogYW55KTogdmFsIGlzIER1cmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc051bGwodmFsOiBhbnkpOiB2YWwgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiB2YWwgaXMgYW55W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgYm9vbGVhbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbDogYW55KTogdmFsIGlzIGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCI7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYSBsaW5rLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0xpbmsodmFsOiBhbnkpOiB2YWwgaXMgTGluayB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rO1xuICAgIH1cblxuICAgIC8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIG9iamVjdCAoYW5kIG5vdCBhbnkgb3RoZXIgZGF0YWNvcmUtcmVjb2duaXplZCBvYmplY3QtbGlrZSB0eXBlKS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsOiBhbnkpOiB2YWwgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAhaXNBcnJheSh2YWwpICYmXG4gICAgICAgICAgICAhaXNEdXJhdGlvbih2YWwpICYmXG4gICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiZcbiAgICAgICAgICAgICFpc0xpbmsodmFsKSAmJlxuICAgICAgICAgICAgIWlzTnVsbCh2YWwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgamF2YXNjcmlwdCBmdW5jdGlvbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWw6IGFueSk6IHZhbCBpcyBGdW5jdGlvbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09IFwiZnVuY3Rpb25cIjtcbiAgICB9XG59XG5cbi8qKiBBIGdyb3VwaW5nIG9uIGEgdHlwZSB3aGljaCBzdXBwb3J0cyByZWN1cnNpdmVseS1uZXN0ZWQgZ3JvdXBzLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBHcm91cEVsZW1lbnQ8VD4gPSB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfTtcbi8qKlxuICogQSBncm91cGluZywgd2hpY2ggY2FuIGJlIGVpdGhlcjpcbiAqIC0gYW4gYXJyYXkgb2YgZWxlbWVudHMgb2YgdHlwZSBgVGAsIG9yXG4gKiAtIGFuIGFycmF5IG9mIHtAbGluayBHcm91cGVsZW1lbnR9c1xuICpcbiAqIEBncm91cCBDb21tb24gVHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgR3JvdXBpbmc8VD4gPSBUW10gfCBHcm91cEVsZW1lbnQ8VD5bXTtcbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgbmFtZXNwYWNlIEdyb3VwaW5ncyB7XG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGdyb3VwIGVudHJ5IGlzIGEgc3RhbmRhbG9uZSB2YWx1ZSwgb3IgYSBncm91cGluZyBvZiBzdWItZW50cmllcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50R3JvdXA8VD4oZW50cnk6IGFueSk6IGVudHJ5IGlzIEdyb3VwRWxlbWVudDxUPiB7XG4gICAgICAgIHJldHVybiBMaXRlcmFscy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmIFwia2V5XCIgaW4gZW50cnkgJiYgXCJyb3dzXCIgaW4gZW50cnk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzR3JvdXBpbmc8VD4oZW50cnk6IEdyb3VwaW5nPFQ+KTogZW50cnkgaXMgR3JvdXBFbGVtZW50PFQ+W10ge1xuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVudHJ5KSBpZiAoIWlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgbGVhZiBhbmQgaGFzIG5vIHN1Ymdyb3VwaW5ncy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNMZWFmPFQ+KGVudHJ5OiBHcm91cGluZzxUPik6IGVudHJ5IGlzIFRbXSB7XG4gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpIGlmIChpc0VsZW1lbnRHcm91cChlbGVtZW50KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBDb3VudCB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgcmVjdXJzaXZlIGdyb3VwaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihlbGVtZW50czogR3JvdXBpbmc8VD4gfCBHcm91cEVsZW1lbnQ8VD4pOiBudW1iZXIge1xuICAgICAgICBpZiAoaXNFbGVtZW50R3JvdXAoZWxlbWVudHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gY291bnQoZWxlbWVudHMucm93cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNHcm91cGluZyhlbGVtZW50cykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgc3ViZ3JvdXAgb2YgZWxlbWVudHMpIHJlc3VsdCArPSBjb3VudChzdWJncm91cC5yb3dzKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlY3Vyc2l2ZWx5IHNsaWNlIGEgZ3JvdXBpbmcsIHByZXNlcnZpbmcgdGhlIGdyb3VwIHN0cnVjdHVyZSB0aGF0IGNvbnRhaW5zIGVsZW1lbnRzIFtzdGFydC4uLmVuZCkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNsaWNlPFQ+KGVsZW1lbnRzOiBHcm91cGluZzxUPiwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBHcm91cGluZzxUPiB7XG4gICAgICAgIGlmIChlbmQgPD0gc3RhcnQpIHJldHVybiBbXTtcbiAgICAgICAgaWYgKGlzTGVhZihlbGVtZW50cykpIHJldHVybiBlbGVtZW50cy5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCBncm91cCB0aGF0IGNvbnRhaW5zIGluZGV4IGBzdGFydGAuXG4gICAgICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgICAgICBzZWVuID0gMDtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gKyBjb3VudChlbGVtZW50c1tpbmRleF0pIDw9IHN0YXJ0KSB7XG4gICAgICAgICAgICBzZWVuICs9IGNvdW50KGVsZW1lbnRzW2luZGV4XSk7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3RhcnQgd2FzIGdyZWF0ZXIgdGhhbiB0aGUgZW50aXJlIGxlbmd0aCBvZiB0aGUgZ3JvdXBpbmdzLlxuICAgICAgICBpZiAoaW5kZXggPj0gZWxlbWVudHMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfVtdID0gW107XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGVsZW1lbnRzLmxlbmd0aCAmJiBzZWVuIDwgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGVsZW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU2l6ZSA9IGNvdW50KGdyb3VwKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU3RhcnQgPSBNYXRoLm1heChzZWVuLCBzdGFydCk7XG4gICAgICAgICAgICBjb25zdCBncm91cEVuZCA9IE1hdGgubWluKGdyb3VwU2l6ZSArIHNlZW4sIGVuZCk7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXk6IGdyb3VwLmtleSxcbiAgICAgICAgICAgICAgICByb3dzOiBzbGljZShncm91cC5yb3dzLCBncm91cFN0YXJ0IC0gc2VlbiwgZ3JvdXBFbmQgLSBzZWVuKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZWVuICs9IGdyb3VwU2l6ZTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbi8qKlxuICogIEZ1bmN0aW9uYWwgcmV0dXJuIHR5cGUgZm9yIGVycm9yIGhhbmRsaW5nLlxuICogQGhpZGRlblxuICogKi9cbmV4cG9ydCBjbGFzcyBTdWNjZXNzPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogdHJ1ZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwPFU+KGY6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbGF0TWFwPFU+KGY6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gZih0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIFJlc3VsdDxULCBVPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmltYXA8VDIsIEUyPihzdWNjOiAoYTogVCkgPT4gVDIsIF9mYWlsOiAoYjogRSkgPT4gRTIpOiBSZXN1bHQ8VDIsIEUyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcChzdWNjKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZShfdmFsdWU6IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNhc3Q8VT4oKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICAgIH1cblxuICAgIHB1YmxpYyBvckVsc2VUaHJvdyhfbWVzc2FnZT86IChlOiBFKSA9PiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxufVxuXG4vKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWlsdXJlPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVycm9yOiBFKSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc2Z1bCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXA8VT4oX2Y6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIEZhaWx1cmU8VSwgRT47XG4gICAgfVxuXG4gICAgcHVibGljIGZsYXRNYXA8VT4oX2Y6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnkgYXMgRmFpbHVyZTxVLCBFPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGYodGhpcy5lcnJvcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiaW1hcDxUMiwgRTI+KF9zdWNjOiAoYTogVCkgPT4gVDIsIGZhaWw6IChiOiBFKSA9PiBFMik6IFJlc3VsdDxUMiwgRTI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwRXJyKGZhaWwpIGFzIGFueTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3JFbHNlKHZhbHVlOiBUKTogVCB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdDxVPigpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZVRocm93KG1lc3NhZ2U/OiAoZTogRSkgPT4gc3RyaW5nKTogVCB7XG4gICAgICAgIGlmIChtZXNzYWdlKSB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSh0aGlzLmVycm9yKSk7XG4gICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKFwiXCIgKyB0aGlzLmVycm9yKTtcbiAgICB9XG59XG5cbi8qKlxuICogQSBtb25hZGljIHJlc3VsdCB0eXBlIHdoaWNoIHN0b3JlcyBlaXRoZXIgXCJzdWNjZXNzXCIgb3IgXCJmYWlsdXJlXCIuIEFuIGFsdGVybmF0aXZlIGhhbmRsaW5nIGV4Y2VwdGlvbmFsIGJlaGF2aW9yXG4gKiBieSB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIGluc3RlYWQgb2YgYW4gZXhjZXB0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSZXN1bHQ8VCwgRT4gPSBTdWNjZXNzPFQsIEU+IHwgRmFpbHVyZTxULCBFPjtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBNb25hZGljICdSZXN1bHQnIHR5cGUgd2hpY2ggZW5jYXBzdWxhdGVzIHdoZXRoZXIgYSBwcm9jZWR1cmUgc3VjY2VlZGVkIG9yIGZhaWxlZCwgYXMgd2VsbCBhcyBpdCdzIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHQge1xuICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgc3VjY2VzcyByZXN1bHQgd3JhcHBpbmcgdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzdWNjZXNzPFQsIEU+KHZhbHVlOiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGZhaWx1cmUgdmFsdWUgd3JhcHBpbmcgdGhlIGdpdmVuIGVycm9yLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBmYWlsdXJlPFQsIEU+KGVycm9yOiBFKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGVycm9yKTtcbiAgICB9XG5cbiAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZsYXRNYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IFJlc3VsdDxPLCBFPlxuICAgICk6IFJlc3VsdDxPLCBFPiB7XG4gICAgICAgIGlmIChmaXJzdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBpZiAoc2Vjb25kLnN1Y2Nlc3NmdWwpIHJldHVybiBmKGZpcnN0LnZhbHVlLCBzZWNvbmQudmFsdWUpO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gZmFpbHVyZShzZWNvbmQuZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoZmlyc3QuZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEpvaW4gdHdvIHJlc3VsdHMgd2l0aCBhIGJpLWZ1bmN0aW9uIGFuZCByZXR1cm4gYSBuZXcgcmVzdWx0LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IE9cbiAgICApOiBSZXN1bHQ8TywgRT4ge1xuICAgICAgICByZXR1cm4gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgKGEsIGIpID0+IHN1Y2Nlc3MoZihhLCBiKSkpO1xuICAgIH1cblxuICAgIC8qKiBNYXAgYSBmYWlsYWJsZSBmdW5jdGlvbiBvdmVyIGFsbCBlbGVtZW50cyBpbiB0aGUgbGlzdCwgcmV0dXJuaW5nIGVhcmx5IG9uIGZhaWx1cmUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1hcEFsbDxULCBPLCBFPihpbnB1dDogSXRlcmFibGU8VD4sIGZ1bmM6IChpbnB1dDogVCkgPT4gUmVzdWx0PE8sIEU+KTogUmVzdWx0PE9bXSwgRT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IE9bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgaW5wdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGZ1bmMoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIW91dHB1dC5zdWNjZXNzZnVsKSByZXR1cm4gb3V0cHV0LmNhc3QoKTtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2gob3V0cHV0LnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBDYXRjaCBhbnkgZXJyb3JzIGluIGEgY2FsbCwgcmV0dXJuaW5nIGEgcmVzdWx0IGluc3RlYWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRyeWluZzxUPihjYWxsOiAoKSA9PiBUKTogUmVzdWx0PFQsIEVycm9yPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoY2FsbCgpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ29udmVydCBhIHByb21pc2Ugd2hpY2ggbWF5IHRocm93IGludG8gYSBwcm9taXNlIHdoaWNoIHJldHVybnMgYSByZXN1bHQgb2YgdGhlIHN1Y2Nlc3NmdWwgdmFsdWUgb3IgYW4gZXJyb3IuICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jPFQ+KHByb21pc2U6IFByb21pc2U8VD4pOiBQcm9taXNlPFJlc3VsdDxULCBFcnJvcj4+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcyhhd2FpdCBwcm9taXNlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcblxuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG5leHBvcnQgdHlwZSBFdmVyeXRoaW5nID0geyB0eXBlOiBcImV2ZXJ5dGhpbmdcIiB9O1xuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIG5vdGhpbmcuICovXG5leHBvcnQgdHlwZSBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuLyoqIFNldCB3aGljaCBtYXRjaGVzIHRoZSBuZWdhdGlvbiBvZiBhIHNldC4gKi9cbmV4cG9ydCB0eXBlIE5lZ2F0ZWQ8VD4gPSB7IHR5cGU6IFwibmVnYXRlZFwiOyB2YWx1ZTogU2V0PFQ+IH07XG4vKiogU2V0IHdoaWNoIG1hdGNoZXMgYW4gYWN0dWFsIHNldCBvZiB2YWx1ZXMuICAqL1xuZXhwb3J0IHR5cGUgQXRvbTxUPiA9IHsgdHlwZTogXCJhdG9tXCI7IHZhbHVlOiBTZXQ8VD4gfTtcblxuLyoqIEFic3RyYWN0IGZpbHRlciB0eXBlIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlc3VsdHMgb2YgYXBwbHlpbmcgZmlsdGVyIG9wZXJhdGlvbnMgdG8gdGhlIGRhdGEgc3RvcmUuICovXG5leHBvcnQgdHlwZSBGaWx0ZXI8VD4gPSBFdmVyeXRoaW5nIHwgTm90aGluZyB8IEF0b208VD4gfCBOZWdhdGVkPFQ+O1xuXG4vKiogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVmZmljaWVudGx5IG9wZXJhdGluZyBvbiBmaWx0ZXJzLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGaWx0ZXJzIHtcbiAgICAvKiogU3RhdGljIGZpbHRlciB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG4gICAgZXhwb3J0IGNvbnN0IEVWRVJZVEhJTkc6IEV2ZXJ5dGhpbmcgPSB7IHR5cGU6IFwiZXZlcnl0aGluZ1wiIH07XG4gICAgLyoqIFN0YXRpYyBmaWx0ZXIgd2hpY2ggbWF0Y2hlcyBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBjb25zdCBOT1RISU5HOiBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuICAgIC8qKiBFbXB0eSBzZXQgY29uc3RhbnQuICovXG4gICAgZXhwb3J0IGNvbnN0IEVNUFRZX1NFVDogU2V0PGFueT4gPSBuZXcgU2V0KCk7XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGF0b20gZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBhdG9tPFQ+KHNldDogU2V0PFQ+KTogRmlsdGVyPFQ+IHtcbiAgICAgICAgaWYgKHNldC5zaXplID09IDApIHJldHVybiBOT1RISU5HO1xuXG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiYXRvbVwiLCB2YWx1ZTogc2V0IH07XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIGZpbHRlciB0aGF0IG1hdGNoZXMgZXZlcnl0aGluZyBvciBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb25zdGFudDxUPih2YWx1ZTogYm9vbGVhbik6IEZpbHRlcjxUPiB7XG4gICAgICAgIGlmICh2YWx1ZSkgcmV0dXJuIEVWRVJZVEhJTkc7XG4gICAgICAgIGVsc2UgcmV0dXJuIE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5ldyBhdG9tIGZpbHRlciB3aGljaCBpcyBOT1RISU5HIGlmIHNldCBpcyB1bmRlZmluZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG51bGxhYmxlQXRvbTxUPihzZXQ6IFNldDxUPiB8IHVuZGVmaW5lZCk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBzZXQgIT09IHVuZGVmaW5lZCA/IGF0b20oc2V0KSA6IE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5lZ2F0ZWQgYXRvbSBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG5lZ2F0ZWQ8VD4oc2V0OiBTZXQ8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBpZiAoc2V0LnNpemUgPT0gMCkgcmV0dXJuIEVWRVJZVEhJTkc7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJuZWdhdGVkXCIsIHZhbHVlOiBzZXQgfTtcbiAgICB9XG5cbiAgICAvKiogUHJvZHVjZXMgdGhlIG5lZ2F0aW9uIG9mIGEgZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBuZWdhdGU8VD4oZmlsdGVyOiBGaWx0ZXI8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBOT1RISU5HO1xuICAgICAgICAgICAgY2FzZSBcIm5vdGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRVZFUllUSElORztcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0ZWQoZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0b20oZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIGZpbHRlciBpcyBkZWZpbml0aXZlbHkgY3VycmVudGx5IGVtcHR5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBlbXB0eTxUPihmaWx0ZXI6IEZpbHRlcjxUPik6IGJvb2xlYW4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBcImF0b21cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyLnZhbHVlLnNpemUgPT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVzb2x2ZSBhIHRvcC1sZXZlbCBmaWx0ZXIgd2l0aCB0aGUgc2V0IG9mIGFsbCBhdmFpbGFibGUgb2JqZWN0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZTxUPihmaWx0ZXI6IEZpbHRlcjxUPiwgZXZlcnl0aGluZzogU2V0PFQ+KTogU2V0PFQ+IHtcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImV2ZXJ5dGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlcnl0aGluZztcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZX1NFVDtcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNldEludGVyc2VjdE5lZ2F0aW9uKGV2ZXJ5dGhpbmcsIGZpbHRlci52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGFuIGl0ZXJhYmxlIG9mIGZpbHRlcnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdDxUPihlbGVtZW50czogSXRlcmFibGU8RmlsdGVyPFQ+Pik6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5SW50ZXJzZWN0KGVsZW1lbnRzLCAoeCkgPT4geCk7XG4gICAgfVxuXG4gICAgLyoqIEludGVyc2VjdCBmaWx0ZXJzIGxhemlseSwgc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgaW50ZXJzZWN0aW9uIHdvdWxkIHByb2R1Y2UgTk9USElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUludGVyc2VjdDxJLCBUPihcbiAgICAgICAgZWxlbWVudHM6IEl0ZXJhYmxlPEk+LFxuICAgICAgICBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IEZpbHRlcjxUPiB8IHVuZGVmaW5lZFxuICAgICk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGZpbHRlcnMgbGF6aWx5LCBzaG9ydC1jaXJjdWl0aW5nIGlmIHRoZSBpbnRlcnNlY3Rpb24gd291bGQgcHJvZHVjZSBOT1RISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVtcHR5IGZpbHRlcnMgd2lsbCBwcm9kdWNlIGFuIGVtcHR5IGludGVyc2VjdGlvbi5cbiAgICAgICAgICAgIGlmIChlbXB0eShmaWx0ZXIpKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoTk9USElORyk7XG4gICAgICAgICAgICAvLyBFVkVSWVRISU5HIGZpbHRlcnMgYXJlIHJlZHVuZGFudCBpbiBBTkRzLCBza2lwIHRoZW0uXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gV2lsbCBvbmx5IGJlIGxlZnQgd2l0aCBhdG9tcyBvciBuZWdhdGlvbnMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gXCJhdG9tXCIpIGF0b21zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGZpbHRlci50eXBlID09IFwibmVnYXRlZFwiKSBuZWdhdGlvbnMucHVzaChmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2Ugc3RhcnQgd2l0aCBzb21ldGhpbmcgb2YgdGhlIGZvcm0gYSAmJiBiICYmICFjICYmICFkLlxuICAgICAgICAvLyBJZiBubyB0ZXJtcywgdGhlbiBldmVyeXRoaW5nIHdhcyBFVkVSWVRISU5HIHNvIHJldHVybiB0aGF0LlxuICAgICAgICAvLyBJZiBvbmx5IGF0b21zLCBqdXN0IGludGVyc2VjdCB0aGVtIChhICYmIGIpLlxuICAgICAgICAvLyBJZiBvbmx5IG5lZ2F0aW9ucywgdGhlbiByZXdyaXRlICFjICYmICFkID0+ICEoYyB8fCBkKSBhbmQgcmV0dXJuIG5lZ2F0ZWQoYyB8fCBkKS5cbiAgICAgICAgLy8gSWYgYm90aCwgY29tcHV0ZSB4ID0gKGEgJiYgYikgYW5kIHkgPSAoYyB8fCBkKSwgYW5kIHRoZW4gY29tcHV0ZSB4ICYmICF5LlxuXG4gICAgICAgIGlmIChhdG9tcy5sZW5ndGggPT0gMCAmJiBuZWdhdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhFVkVSWVRISU5HKTtcbiAgICAgICAgfSBlbHNlIGlmIChhdG9tcy5sZW5ndGggPiAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGF0b20oc2V0SW50ZXJzZWN0KGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRVbmlvbihuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldEludGVyc2VjdE5lZ2F0aW9uKHNldEludGVyc2VjdChhdG9tcyksIHNldFVuaW9uKG5lZ2F0aW9ucykpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycywgcHJvZHVjaW5nIGEgc2luZ2xlIHJlc3VsdCBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuaW9uPFQ+KGZpbHRlcnM6IEl0ZXJhYmxlPEZpbHRlcjxUPj4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eVVuaW9uKGZpbHRlcnMsICh4KSA9PiB4KTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eVVuaW9uPEksIFQ+KGVsZW1lbnRzOiBJdGVyYWJsZTxJPiwgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBGaWx0ZXI8VD4gfCB1bmRlZmluZWQpOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eUZhaWxhYmxlVW5pb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUZhaWxhYmxlVW5pb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVWRVJZVEhJTkcgZmlsdGVycyB3aWxsIHByb2R1Y2UgZXZlcnl0aGluZyBhbHdheXMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRVZFUllUSElORyk7XG4gICAgICAgICAgICAvLyBFbXB0eSBmaWx0ZXJzIGFyZSByZWR1bmRhbnQuXG4gICAgICAgICAgICBpZiAoZW1wdHkoZmlsdGVyKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIFdpbGwgb25seSBiZSBsZWZ0IHdpdGggYXRvbXMgb3IgbmVnYXRpb25zLlxuICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlID09IFwiYXRvbVwiKSBhdG9tcy5wdXNoKGZpbHRlci52YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PSBcIm5lZ2F0ZWRcIikgbmVnYXRpb25zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9yIGlzIGEgYml0IGhhcmRlciB0aGFuIEFORCBzaW5jZSB5b3UgY2FuIGVuZCB1cCB3aXRoIHNjZW5hcmlvcyBsaWtlIGEgfHwgIWIsIHdoaWNoIGFyZVxuICAgICAgICAvLyBub3QgY29tcHV0YWJsZSBkaXJlY3RseS4gSG93ZXZlciwgd2UgY2FuIGRvIGJvb2xlYW4gbG9naWMgdG8gYWx3YXlzIHByb2R1Y2UgYSBzaW5nbGVcbiAgICAgICAgLy8gc2V0LlxuICAgICAgICAvLyBJZiBub3RoaW5nID0+IG5vdGhpbmcsIG5vIG5vbi1lbXB0eSBmaWx0ZXJzLlxuICAgICAgICAvLyBJZiBhdG9tcyBidXQgbm8gbmVnYXRpb25zIChhIHx8IGIgfHwgYykgPT4gY29tcHV0ZSB1bmlvbi5cbiAgICAgICAgLy8gSWYgbmVnYXRpb25zIGJ1dCBubyBhdG9tcyAoIWEgfHwgIWIgfHwgIWMpID0+IHJld3JpdGUgYXMgIShhICYmIGIgJiYgYykuXG4gICAgICAgIC8vIElmIGJvdGg6IChhIHx8IGIgfHwgIWMgfHwgIWQpID0+IGNvbWJpbmUgZWFjaCBwYXJ0IGludG8gKGEgfHwgYikgfHwgKCFjIHx8ICFkKSA9PiAoYSB8fCBiKSB8fCAhKGMgJiYgZCkgPT4gZSB8fCAhZiA9PiAhKCFlICYmIGYpIHdoaWNoXG4gICAgICAgIC8vIGNhbiBiZSBjb21wdXRlZCB1c2luZyBpbnRlcnNlY3Rpb24gbG9naWMuXG5cbiAgICAgICAgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKE5PVEhJTkcpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA+IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldFVuaW9uKGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5uZWdhdGVkKHNldEludGVyc2VjdChuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRJbnRlcnNlY3ROZWdhdGlvbihzZXRJbnRlcnNlY3QobmVnYXRpb25zKSwgc2V0VW5pb24oYXRvbXMpKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEVmZmljaWVudGx5IGNvbXB1dGUgdGhlIGludGVyc2VjdGlvbiBvZiBzZXRzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3Q8VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gU29ydCBieSBzaXplIGFuZCBjb21iaW5lIHNtYWxsZXN0IGFuZCBsYXJnZXN0IHNldCByZXBlYXRlZGx5LlxuICAgICAgICBsZXQgc29ydGVkID0gKFtdIGFzIFNldDxUPltdKS5jb25jYXQoc2V0cykuc29ydCgoYSwgYikgPT4gYS5zaXplIC0gYi5zaXplKTtcblxuICAgICAgICB3aGlsZSAoc29ydGVkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgICAgIGNvbnN0IGxhcmdlc3QgPSBzb3J0ZWQucG9wKCkhO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIHNvcnRlZFswXSkge1xuICAgICAgICAgICAgICAgIGlmIChsYXJnZXN0LmhhcyhlbGVtZW50KSkgcmVzdWx0LmFkZChlbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc29ydGVkWzBdID0gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNvcnRlZFswXTtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSB0aGUgdW5pb24gb2Ygc2V0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gc2V0VW5pb248VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gSSdtIG5vdCBzdXJlIGlmIHRoZXJlIGlzIGFueSB1c2VmdWwgb3B0aW1pemF0aW9uIGZvciBzZXQgdW5pb25zLCBzbyBqdXN0IGFkZCB0aGVtIGFsbCBJIGd1ZXNzLlxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGZvciAoY29uc3Qgc2V0IG9mIHNldHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBzZXQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSBhdG9tICYmICFuZWdhdGVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3ROZWdhdGlvbjxUPihhdG9tOiBTZXQ8VD4sIG5lZ2F0ZWQ6IFNldDxUPik6IFNldDxUPiB7XG4gICAgICAgIGlmIChhdG9tLnNpemUgPiBuZWdhdGVkLnNpemUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFdvdWxkIGJlIG5pY2UgdG8gYXZvaWQgdGhlIGNvcHksIHNpbmNlIEknbSBub3Qgc3VyZSBpdCdzIGFueSBmYXN0ZXIgd2l0aCB0aGUgY29weS5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQoYXRvbSk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIG5lZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IC8qIGF0b20uc2l6ZSA8IG5lZ2F0aW9uLnNpemUgKi8gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGF0b20pIHtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRlZC5oYXMoZWxlbWVudCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBGaWx0ZXJzIH0gZnJvbSBcIi4vZmlsdGVyc1wiO1xuXG4vKiogQ29tcGFyaXNvbiBvcGVyYXRvcnMgd2hpY2ggeWllbGQgdHJ1ZS9mYWxzZS4gKi9cbmV4cG9ydCB0eXBlIENvbXBhcmVPcCA9IFwiPlwiIHwgXCI+PVwiIHwgXCI8PVwiIHwgXCI8XCIgfCBcIj1cIiB8IFwiIT1cIjtcbi8qKiBBcml0aG1ldGljIG9wZXJhdG9ycyB3aGljaCB5aWVsZCBudW1iZXJzIGFuZCBvdGhlciB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBBcml0aG1ldGljT3AgPSBcIitcIiB8IFwiLVwiIHwgXCIqXCIgfCBcIi9cIiB8IFwiJVwiIHwgXCImXCIgfCBcInxcIjtcbi8qKiBJbmRleCBhIHZhbHVlIGludG8gYW5vdGhlciB2YWx1ZS4gKi9cbmV4cG9ydCB0eXBlIExvZ2ljYWxPcCA9IFwiaW5kZXhcIjtcbi8qKiBBbGwgdmFsaWQgYmluYXJ5IG9wZXJhdG9ycy4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wID0gQ29tcGFyZU9wIHwgQXJpdGhtZXRpY09wIHwgTG9naWNhbE9wO1xuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uID1cbiAgICB8IExpdGVyYWxFeHByZXNzaW9uXG4gICAgfCBWYXJpYWJsZUV4cHJlc3Npb25cbiAgICB8IExpc3RFeHByZXNzaW9uXG4gICAgfCBPYmplY3RFeHByZXNzaW9uXG4gICAgfCBCaW5hcnlPcEV4cHJlc3Npb25cbiAgICB8IEZ1bmN0aW9uRXhwcmVzc2lvblxuICAgIHwgTGFtYmRhRXhwcmVzc2lvblxuICAgIHwgTmVnYXRlZEV4cHJlc3Npb247XG5cbi8qKiBMaXRlcmFsIHJlcHJlc2VudGF0aW9uIG9mIHNvbWUgZmllbGQgdHlwZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGl0ZXJhbEV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGl0ZXJhbFwiO1xuICAgIHZhbHVlOiBMaXRlcmFsO1xufVxuXG4vKiogQSB2YXJpYWJsZSBmaWVsZCBmb3IgYSB2YXJpYWJsZSB3aXRoIGEgZ2l2ZW4gbmFtZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFibGVFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcInZhcmlhYmxlXCI7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogQSBsaXN0IGxpdGVyYWwsIHdoaWNoIGlzIGFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBmaWVsZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImxpc3RcIjtcbiAgICB2YWx1ZXM6IEV4cHJlc3Npb25bXTtcbn1cblxuLyoqIEFuIG9iamVjdCBsaXRlcmFsLCB3aGljaCBpcyBhIG1hcHBpbmcgb2YgbmFtZSB0byBmaWVsZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0RXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJvYmplY3RcIjtcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+O1xufVxuXG4vKiogQSBiaW5hcnkgb3BlcmF0b3IgZXhwcmVzc2lvbiB3aGljaCBjb21iaW5lcyB0d28gc3Vibm9kZXMgc29tZWhvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluYXJ5T3BFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImJpbmFyeW9wXCI7XG4gICAgbGVmdDogRXhwcmVzc2lvbjtcbiAgICByaWdodDogRXhwcmVzc2lvbjtcbiAgICBvcDogQmluYXJ5T3A7XG59XG5cbi8qKiBBIGZ1bmN0aW9uIGV4cHJlc3Npb24gd2hpY2ggY2FsbHMgYSBmdW5jdGlvbiBvbiAwIG9yIG1vcmUgYXJndW1lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICAvKiogRWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgb3IgYSBGdW5jdGlvbiBvYmplY3QuICovXG4gICAgZnVuYzogRXhwcmVzc2lvbjtcbiAgICAvKiogVGhlIGxpc3Qgb2YgYXJndW1lbnRzIGJlaW5nIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uICovXG4gICAgYXJndW1lbnRzOiBFeHByZXNzaW9uW107XG59XG5cbi8qKiBBbiBpbmxpbmUgZnVuY3Rpb24gYWNjZXB0aW5nIG9uZSBvciBtb3JlIGFyZ3VtZW50cyBhbmQgcHJvZHVjaW5nIGEgdmFsdWUuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGFtYmRhXCI7XG4gICAgLyoqIEFuIG9yZGVyZWQgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMuICovXG4gICAgYXJndW1lbnRzOiBzdHJpbmdbXTtcbiAgICAvKiogVGhlIGZpZWxkIHdoaWNoIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBhcmd1bWVudHMgaW4gY29udGV4dC4gKi9cbiAgICB2YWx1ZTogRXhwcmVzc2lvbjtcbn1cblxuLyoqIEFuIGV4cHJlc3Npb24gd2hpY2ggbmVnYXRlcyB0aGUgdmFsdWUgb2YgdGhlIG9yaWdpbmFsIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWdhdGVkRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJuZWdhdGVkXCI7XG5cbiAgICAvKiogVGhlIGNoaWxkIGZpZWxkIHRvIG5lZ2F0ZS4gKi9cbiAgICBjaGlsZDogRXhwcmVzc2lvbjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBFeHByZXNzaW9ucyB7XG4gICAgLyoqIFRoZSBpbXBsaWNpdCBmaWVsZCByZWZlcmVuY2luZyB0aGUgY3VycmVudCBmaWVsZC4gKi9cbiAgICBleHBvcnQgY29uc3QgUk9XOiBzdHJpbmcgPSBcIiRyb3dcIjtcblxuICAgIGV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZShuYW1lOiBzdHJpbmcpOiBWYXJpYWJsZUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcInZhcmlhYmxlXCIsIG5hbWUgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGl0ZXJhbCh2YWx1ZTogTGl0ZXJhbCk6IExpdGVyYWxFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXRlcmFsXCIsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQ6IEV4cHJlc3Npb24sIG9wOiBCaW5hcnlPcCwgcmlnaHQ6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0LCBvcCwgcmlnaHQgfSBhcyBCaW5hcnlPcEV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZGV4KG9iajogRXhwcmVzc2lvbiwgaW5kZXg6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0OiBvYmosIHJpZ2h0OiBpbmRleCwgb3A6IFwiaW5kZXhcIiB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0cyBhIHN0cmluZyBpbiBkb3Qtbm90YXRpb24tZm9ybWF0IGludG8gYSB2YXJpYWJsZSB3aGljaCBpbmRleGVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpbmRleFZhcmlhYmxlKG5hbWU6IHN0cmluZyk6IEV4cHJlc3Npb24ge1xuICAgICAgICBsZXQgcGFydHMgPSBuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgbGV0IHJlc3VsdDogRXhwcmVzc2lvbiA9IEV4cHJlc3Npb25zLnZhcmlhYmxlKHBhcnRzWzBdKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHBhcnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgcmVzdWx0ID0gRXhwcmVzc2lvbnMuaW5kZXgocmVzdWx0LCBFeHByZXNzaW9ucy5saXRlcmFsKHBhcnRzW2luZGV4XSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGFtYmRhKGFyZ3M6IHN0cmluZ1tdLCB2YWx1ZTogRXhwcmVzc2lvbik6IExhbWJkYUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImxhbWJkYVwiLCBhcmd1bWVudHM6IGFyZ3MsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZ1bmMoZnVuYzogRXhwcmVzc2lvbiwgYXJnczogRXhwcmVzc2lvbltdKTogRnVuY3Rpb25FeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJmdW5jdGlvblwiLCBmdW5jLCBhcmd1bWVudHM6IGFyZ3MgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGlzdCh2YWx1ZXM6IEV4cHJlc3Npb25bXSk6IExpc3RFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXN0XCIsIHZhbHVlcyB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBvYmplY3QodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBFeHByZXNzaW9uPik6IE9iamVjdEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZXMgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbmVnYXRlKGNoaWxkOiBFeHByZXNzaW9uKTogTmVnYXRlZEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5lZ2F0ZWRcIiwgY2hpbGQgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNDb21wYXJlT3Aob3A6IEJpbmFyeU9wKTogb3AgaXMgQ29tcGFyZU9wIHtcbiAgICAgICAgcmV0dXJuIG9wID09IFwiPD1cIiB8fCBvcCA9PSBcIjxcIiB8fCBvcCA9PSBcIj5cIiB8fCBvcCA9PSBcIj49XCIgfHwgb3AgPT0gXCIhPVwiIHx8IG9wID09IFwiPVwiO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgc2V0IG9mIGFsbCB1bmJvdW5kIHZhcmlhYmxlcyAoaS5lLiwgdmFyaWFibGVzIG5vdCBwcm92aWRlZCBieSBgcm93YCwgbGFtYmRhcywgb3Igc2ltaWxhci4pICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuYm91bmRWYXJpYWJsZXMoZXhwcjogRXhwcmVzc2lvbiwgYm91bmQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbUk9XXSkpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgYHJvd1tcIi4uLi5cIl1gLlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZXhwci5vcCA9PT0gXCJpbmRleFwiICYmXG4gICAgICAgICAgICAgICAgICAgIGV4cHIubGVmdC50eXBlID09IFwidmFyaWFibGVcIiAmJlxuICAgICAgICAgICAgICAgICAgICBleHByLmxlZnQubmFtZSA9PSBST1cgJiZcbiAgICAgICAgICAgICAgICAgICAgZXhwci5yaWdodC50eXBlID09IFwibGl0ZXJhbFwiICYmXG4gICAgICAgICAgICAgICAgICAgIExpdGVyYWxzLmlzU3RyaW5nKGV4cHIucmlnaHQudmFsdWUpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChib3VuZC5oYXMoZXhwci5yaWdodC52YWx1ZSkpIHJldHVybiBuZXcgU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIG5ldyBTZXQoW2V4cHIucmlnaHQudmFsdWVdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UganVzdCBjaGVjayBsZWZ0IGFuZCByaWdodC5cbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5zZXRVbmlvbihbdW5ib3VuZFZhcmlhYmxlcyhleHByLmxlZnQsIGJvdW5kKSwgdW5ib3VuZFZhcmlhYmxlcyhleHByLnJpZ2h0LCBib3VuZCldKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIuYXJndW1lbnRzLm1hcCgoYSkgPT4gdW5ib3VuZFZhcmlhYmxlcyhhLCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJsYW1iZGFcIjpcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdCb3VuZCA9IGJvdW5kID8/IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBleHByLmFyZ3VtZW50cykgbmV3Qm91bmQuYWRkKGFyZyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5ib3VuZFZhcmlhYmxlcyhleHByLnZhbHVlLCBuZXdCb3VuZCk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIudmFsdWVzLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuYm91bmRWYXJpYWJsZXMoZXhwci5jaGlsZCwgYm91bmQpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKE9iamVjdC52YWx1ZXMoZXhwci52YWx1ZXMpLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJ2YXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChib3VuZCAmJiBib3VuZC5oYXMoZXhwci5uYW1lKSkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBuZXcgU2V0KFtleHByLm5hbWVdKTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZW5kZXIgYW4gZXhwcmVzc2lvbiBhcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcoZXhwcjogRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5vcCA9PT0gXCJpbmRleFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfVske3RvU3RyaW5nKGV4cHIucmlnaHQpfV1gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfSAke2V4cHIub3B9ICR7dG9TdHJpbmcoZXhwci5yaWdodCl9YDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmZ1bmMpfSgke2V4cHIuYXJndW1lbnRzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfSlgO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7ZXhwci5hcmd1bWVudHMuam9pbihcIiwgXCIpfSkgPT4gJHt0b1N0cmluZyhleHByLnZhbHVlKX1gO1xuICAgICAgICAgICAgY2FzZSBcImxpc3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFske2V4cHIudmFsdWVzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfV1gO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCEke3RvU3RyaW5nKGV4cHIuY2hpbGQpfWA7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGB7JHtPYmplY3QuZW50cmllcyhleHByLnZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfTogJHt0b1N0cmluZyh2KX1gKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfX1gO1xuICAgICAgICAgICAgY2FzZSBcInZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cHIubmFtZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShleHByLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFwiJHt3cmFwcGVkLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMaXRlcmFscy50b1N0cmluZyh3cmFwcGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY29uc3QgTlVMTCA9IEV4cHJlc3Npb25zLmxpdGVyYWwobnVsbCk7XG59XG4iLCAiLyoqIFBhcnNlIGlubGluZSBmaWVsZHMgYW5kIG90aGVyIGVtYmVkZGVkIG1ldGFkYXRhIGluIGEgbGluZS4gKi9cblxuaW1wb3J0IHsgUFJJTUlUSVZFUyB9IGZyb20gXCJleHByZXNzaW9uL3BhcnNlclwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQgeyBKc29uQ29udmVyc2lvbiwgSnNvbkxpdGVyYWwgfSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9jb21tb25cIjtcblxuLyoqIEEgcGFyc2VkIGlubGluZSBmaWVsZCBmcm9tIGEgc3BlY2lmaWMgbGluZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxJbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSByYXcgcGFyc2VkIGtleS4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgZmllbGQuICovXG4gICAgdmFsdWU6IHN0cmluZztcbiAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgKnZhbHVlKiBmb3IgdGhlIGZpZWxkLiAqL1xuICAgIHN0YXJ0VmFsdWU6IG51bWJlcjtcbiAgICAvKiogVGhlIGVuZCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgIGVuZDogbnVtYmVyO1xuICAgIC8qKiBJZiB0aGlzIGlubGluZSBmaWVsZCB3YXMgZGVmaW5lZCB2aWEgYSB3cmFwcGluZyAoJ1snIG9yICcoJyBvciAnbGluaycpLCB0aGVuIHRoZSB3cmFwcGluZyB0aGF0IHdhcyB1c2VkLiAqL1xuICAgIHdyYXBwaW5nPzogc3RyaW5nO1xufVxuXG4vKiogRnVsbCBpbmxpbmUgZmllbGQgbWV0YWRhdGEgZm9yIGFuIG9iamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lRmllbGQge1xuICAgIC8qKiBUaGUgYWN0dWFsIGtleSBkZXNjcmliaW5nIHRoZSBpbmxpbmUgZmllbGQuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICByYXc6IHN0cmluZztcbiAgICAvKiogVGhlIHBhcnNlZCB2YWx1ZS4gKi9cbiAgICB2YWx1ZTogTGl0ZXJhbDtcbiAgICAvKiogRnVsbCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igd2hlcmUgdGhlIGlubGluZSBmaWVsZCBpcyBsb2NhdGVkIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBwb3NpdGlvbjoge1xuICAgICAgICAvKiogVGhlIGxpbmUgbnVtYmVyIHRoZSBpbmxpbmUgZmllbGQgYXBwZWFycyBvbi4gKi9cbiAgICAgICAgbGluZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuIEltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnOjonLiAqL1xuICAgICAgICBzdGFydFZhbHVlOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIGVuZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBKU09OLCBzZXJpYWxpemFibGUgcmVwcmVzZW50YXRpb24gb2YgYW4gaW5saW5lIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uSW5saW5lRmllbGQge1xuICAgIC8qKiBUaGUgYWN0dWFsIGtleSBkZXNjcmliaW5nIHRoZSBpbmxpbmUgZmllbGQuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICByYXc6IHN0cmluZztcbiAgICAvKiogVGhlIHBhcnNlZCB2YWx1ZS4gKi9cbiAgICB2YWx1ZTogSnNvbkxpdGVyYWw7XG4gICAgLyoqIEZ1bGwgcG9zaXRpb24gaW5mb3JtYXRpb24gZm9yIHdoZXJlIHRoZSBpbmxpbmUgZmllbGQgaXMgbG9jYXRlZCBpbiB0aGUgZG9jdW1lbnQuICovXG4gICAgcG9zaXRpb246IHtcbiAgICAgICAgLyoqIFRoZSBsaW5lIG51bWJlciB0aGUgaW5saW5lIGZpZWxkIGFwcGVhcnMgb24uICovXG4gICAgICAgIGxpbmU6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBzdGFydCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgICAgICBzdGFydDogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgKnZhbHVlKiBmb3IgdGhlIGZpZWxkLiBJbW1lZGlhdGVseSBhZnRlciB0aGUgJzo6Jy4gKi9cbiAgICAgICAgc3RhcnRWYWx1ZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIGVuZCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgICAgICBlbmQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBJZiB0aGlzIGlubGluZSBmaWVsZCB3YXMgZGVmaW5lZCB2aWEgYSB3cmFwcGluZyAoJ1snIG9yICcoJyBvciAnbGluaycpLCB0aGVuIHRoZSB3cmFwcGluZyB0aGF0IHdhcyB1c2VkLiAqL1xuICAgIHdyYXBwaW5nPzogc3RyaW5nO1xufVxuXG4vKiogQ29udmVydCBhbiBpbmxpbmUgZmllbGQgdG8gYSBKU09OIGZvcm1hdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uSW5saW5lRmllbGQoZmllbGQ6IElubGluZUZpZWxkKTogSnNvbklubGluZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZmllbGQsIHsgdmFsdWU6IEpzb25Db252ZXJzaW9uLmpzb24oZmllbGQudmFsdWUpIH0pO1xufVxuXG4vKiogQ29udmVydCBhIEpTT04gaW5saW5lIGZpZWxkIGJhY2sgdG8gYSByZWd1bGFyIGZpZWxkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlSW5saW5lRmllbGQoZmllbGQ6IEpzb25JbmxpbmVGaWVsZCk6IElubGluZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZmllbGQsIHsgdmFsdWU6IEpzb25Db252ZXJzaW9uLnZhbHVlKGZpZWxkLnZhbHVlKSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzSW5saW5lRmllbGQobG9jYWw6IExvY2FsSW5saW5lRmllbGQsIGxpbmVubzogbnVtYmVyKTogSW5saW5lRmllbGQ7XG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChsb2NhbDogTG9jYWxJbmxpbmVGaWVsZFtdLCBsaW5lbm86IG51bWJlcik6IElubGluZUZpZWxkW107XG4vKiogQ29udmVydCBhIGxvY2FsIGlubGluZSBmaWVsZCBpbnRvIGEgZnVsbCBpbmxpbmUgZmllbGQgYnkgcGVyZm9ybWluZyBwYXJzaW5nIGFuZCBhZGRpbmcgdGhlIGNvcnJlY3QgbGluZSBudW1iZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChcbiAgICBsb2NhbDogTG9jYWxJbmxpbmVGaWVsZCB8IExvY2FsSW5saW5lRmllbGRbXSxcbiAgICBsaW5lbm86IG51bWJlclxuKTogSW5saW5lRmllbGQgfCBJbmxpbmVGaWVsZFtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhbCkpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsLm1hcCgoZikgPT4gYXNJbmxpbmVGaWVsZChmLCBsaW5lbm8pKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGxvY2FsLmtleSxcbiAgICAgICAgcmF3OiBsb2NhbC52YWx1ZSxcbiAgICAgICAgdmFsdWU6IHBhcnNlSW5saW5lVmFsdWUobG9jYWwudmFsdWUpLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgbGluZTogbGluZW5vLFxuICAgICAgICAgICAgc3RhcnQ6IGxvY2FsLnN0YXJ0LFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogbG9jYWwuc3RhcnRWYWx1ZSxcbiAgICAgICAgICAgIGVuZDogbG9jYWwuZW5kLFxuICAgICAgICB9LFxuICAgICAgICB3cmFwcGluZzogbG9jYWwud3JhcHBpbmcsXG4gICAgfTtcbn1cblxuLyoqIFRoZSB3cmFwcGVyIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYW4gaW5saW5lIGZpZWxkLiAqL1xuZXhwb3J0IGNvbnN0IElOTElORV9GSUVMRF9XUkFQUEVSUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSBPYmplY3QuZnJlZXplKHtcbiAgICBcIltcIjogXCJdXCIsXG4gICAgXCIoXCI6IFwiKVwiLFxufSk7XG5cbi8qKlxuICogRmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgYnJhY2tldCB0aGF0IG9jY3VycyBhdCBvciBhZnRlciBgc3RhcnRgLCByZXNwZWN0aW5nIG5lc3RpbmcgYW5kIGVzY2FwZXMuIElmIGZvdW5kLFxuICogcmV0dXJucyB0aGUgdmFsdWUgY29udGFpbmVkIHdpdGhpbiBhbmQgdGhlIHN0cmluZyBpbmRleCBhZnRlciB0aGUgZW5kIG9mIHRoZSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZmluZENsb3NpbmcoXG4gICAgbGluZTogc3RyaW5nLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgb3Blbjogc3RyaW5nLFxuICAgIGNsb3NlOiBzdHJpbmdcbik6IHsgdmFsdWU6IHN0cmluZzsgZW5kSW5kZXg6IG51bWJlciB9IHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgbmVzdGluZyA9IDA7XG4gICAgbGV0IGVzY2FwZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0OyBpbmRleCA8IGxpbmUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGxldCBjaGFyID0gbGluZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICAgIC8vIEFsbG93cyBmb3IgZG91YmxlIGVzY2FwZXMgbGlrZSAnXFxcXCcgdG8gYmUgcmVuZGVyZWQgbm9ybWFsbHkuXG4gICAgICAgIGlmIChjaGFyID09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGVzY2FwZWQsIGlnbm9yZSB0aGUgbmV4dCBjaGFyYWN0ZXIgZm9yIGNvbXB1dGluZyBuZXN0aW5nLCByZWdhcmRsZXNzIG9mIHdoYXQgaXQgaXMuXG4gICAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFyID09IG9wZW4pIG5lc3RpbmcrKztcbiAgICAgICAgZWxzZSBpZiAoY2hhciA9PSBjbG9zZSkgbmVzdGluZy0tO1xuXG4gICAgICAgIC8vIE9ubHkgb2NjdXJzIGlmIHdlIGFyZSBvbiBhIGNsb3NlIGNoYXJhY3RlciBhbmQgdHJoZXJlIGlzIG5vIG1vcmUgbmVzdGluZy5cbiAgICAgICAgaWYgKG5lc3RpbmcgPCAwKSByZXR1cm4geyB2YWx1ZTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIGluZGV4KS50cmltKCksIGVuZEluZGV4OiBpbmRleCArIDEgfTtcblxuICAgICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIEZpbmQgdGhlICc6Oicgc2VwYXJhdG9yIGluIGFuIGlubGluZSBmaWVsZC4gKi9cbmZ1bmN0aW9uIGZpbmRTZXBhcmF0b3IobGluZTogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogeyBrZXk6IHN0cmluZzsgdmFsdWVJbmRleDogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBzZXAgPSBsaW5lLmluZGV4T2YoXCI6OlwiLCBzdGFydCk7XG4gICAgaWYgKHNlcCA8IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4geyBrZXk6IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBzZXApLnRyaW0oKSwgdmFsdWVJbmRleDogc2VwICsgMiB9O1xufVxuXG4vKiogVHJ5IHRvIGNvbXBsZXRlbHkgcGFyc2UgYW4gaW5saW5lIGZpZWxkIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gQXNzdW1lcyBgc3RhcnRgIGlzIG9uIGEgd3JhcHBpbmcgY2hhcmFjdGVyLiAqL1xuZnVuY3Rpb24gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZTogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogTG9jYWxJbmxpbmVGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IG9wZW4gPSBsaW5lLmNoYXJBdChzdGFydCk7XG5cbiAgICBsZXQga2V5ID0gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCArIDEpO1xuICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIC8vIEZhaWwgdGhlIG1hdGNoIGlmIHdlIGZpbmQgYW55IHNlcGFyYXRvciBjaGFyYWN0ZXJzIChub3QgYWxsb3dlZCBpbiBrZXlzKS5cbiAgICBmb3IgKGxldCBzZXAgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKS5jb25jYXQoT2JqZWN0LnZhbHVlcyhJTkxJTkVfRklFTERfV1JBUFBFUlMpKSkge1xuICAgICAgICBpZiAoa2V5LmtleS5pbmNsdWRlcyhzZXApKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IGZpbmRDbG9zaW5nKGxpbmUsIGtleS52YWx1ZUluZGV4LCBvcGVuLCBJTkxJTkVfRklFTERfV1JBUFBFUlNbb3Blbl0pO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBrZXkua2V5LFxuICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgc3RhcnRWYWx1ZToga2V5LnZhbHVlSW5kZXgsXG4gICAgICAgIGVuZDogdmFsdWUuZW5kSW5kZXgsXG4gICAgICAgIHdyYXBwaW5nOiBvcGVuLFxuICAgIH07XG59XG5cbi8qKiBQYXJzZSBhIHRleHR1YWwgaW5saW5lIGZpZWxkIHZhbHVlIGludG8gc29tZXRoaW5nIHdlIGNhbiB3b3JrIHdpdGguICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmxpbmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogTGl0ZXJhbCB7XG4gICAgLy8gRW1wdHkgaW5saW5lIHZhbHVlcyAoaS5lLiwgbm8gdGV4dCkgc2hvdWxkIG1hcCB0byBudWxsIHRvIG1hdGNoIGxvbmctdGVybSBEYXRhdmlldyBzZW1hbnRpY3MuXG4gICAgLy8gTnVsbCBpcyBhbHNvIGEgbW9yZSB1bml2ZXJzYWwgdHlwZSB0byBkZWFsIHdpdGggdGhhbiBzdHJpbmdzLCBzaW5jZSBhbGwgZnVuY3Rpb25zIGFjY2VwdCBudWxscy5cbiAgICBpZiAodmFsdWUudHJpbSgpID09IFwiXCIpIHJldHVybiBudWxsO1xuXG4gICAgLy8gVGhlIHN0cmlwcGVkIGxpdGVyYWwgZmllbGQgcGFyc2VyIHVuZGVyc3RhbmRzIGFsbCBvZiB0aGUgbm9uLWFycmF5L25vbi1vYmplY3QgZmllbGRzIGFuZCBjYW4gcGFyc2UgdGhlbSBmb3IgdXMuXG4gICAgLy8gSW5saW5lIGZpZWxkIG9iamVjdHMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkOyBpbmxpbmUgYXJyYXkgb2JqZWN0cyBoYXZlIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHBhcnNlclxuICAgIC8vIHNlcGFyYXRlbHkuXG4gICAgbGV0IGlubGluZSA9IFBSSU1JVElWRVMuaW5saW5lRmllbGQucGFyc2UodmFsdWUpO1xuICAgIGlmIChpbmxpbmUuc3RhdHVzKSByZXR1cm4gaW5saW5lLnZhbHVlO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xufVxuXG4vKiogRXh0cmFjdHMgaW5saW5lIGZpZWxkcyBvZiB0aGUgZm9ybSAnW2tleTo6IHZhbHVlXScgZnJvbSBhIGxpbmUgb2YgdGV4dC4gVGhpcyBpcyBkb25lIGluIGEgcmVsYXRpdmVseVxuICogXCJyb2J1c3RcIiB3YXkgdG8gYXZvaWQgZmFpbGluZyBkdWUgdG8gYmFkIG5lc3Rpbmcgb3Igb3RoZXIgaW50ZXJmZXJpbmcgTWFya2Rvd24gc3ltYm9sczpcbiAqXG4gKiAtIExvb2sgZm9yIGFueSB3cmFwcGVycyAoJ1snIGFuZCAnKCcpIGluIHRoZSBsaW5lLCB0cnlpbmcgdG8gcGFyc2Ugd2hhdGV2ZXIgY29tZXMgYWZ0ZXIgaXQgYXMgYW4gaW5saW5lIGtleTo6LlxuICogLSBJZiBzdWNjZXNzZnVsLCBzY2FuIHVudGlsIHlvdSBmaW5kIGEgbWF0Y2hpbmcgZW5kIGJyYWNrZXQsIGFuZCBwYXJzZSB3aGF0ZXZlciByZW1haW5zIGFzIGFuIGlubGluZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZTogc3RyaW5nLCBpbmNsdWRlVGFza0ZpZWxkczogYm9vbGVhbiA9IGZhbHNlKTogTG9jYWxJbmxpbmVGaWVsZFtdIHtcbiAgICBsZXQgZmllbGRzOiBMb2NhbElubGluZUZpZWxkW10gPSBbXTtcbiAgICBmb3IgKGxldCB3cmFwcGVyIG9mIE9iamVjdC5rZXlzKElOTElORV9GSUVMRF9XUkFQUEVSUykpIHtcbiAgICAgICAgbGV0IGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlcik7XG4gICAgICAgIHdoaWxlIChmb3VuZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGxldCBwYXJzZWRGaWVsZCA9IGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIGZvdW5kSW5kZXgpO1xuICAgICAgICAgICAgaWYgKCFwYXJzZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgZm91bmRJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWVsZHMucHVzaChwYXJzZWRGaWVsZCk7XG4gICAgICAgICAgICBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIsIHBhcnNlZEZpZWxkLmVuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5jbHVkZVRhc2tGaWVsZHMpIGZpZWxkcyA9IGZpZWxkcy5jb25jYXQoZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpKTtcblxuICAgIGZpZWxkcy5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0IC0gYi5zdGFydCk7XG5cbiAgICBsZXQgZmlsdGVyZWRGaWVsZHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09IDAgfHwgZmlsdGVyZWRGaWVsZHNbZmlsdGVyZWRGaWVsZHMubGVuZ3RoIC0gMV0uZW5kIDwgZmllbGRzW2ldLnN0YXJ0KSB7XG4gICAgICAgICAgICBmaWx0ZXJlZEZpZWxkcy5wdXNoKGZpZWxkc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkRmllbGRzO1xufVxuXG4vKiogVmFsaWRhdGVzIHRoYXQgYSByYXcgZmllbGQgbmFtZSBoYXMgYSB2YWxpZCBmb3JtLiAqL1xuY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJUOiBQLlBhcnNlcjxzdHJpbmc+ID0gUC5hbHQoXG4gICAgUC5yZWdleHAobmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwidVwiKSksXG4gICAgUC5yZWdleHAoL1swLTlcXHB7TGV0dGVyfVxcd1xcc18vLV0rL3UpXG4pXG4gICAgLm1hbnkoKVxuICAgIC5tYXAoKHBhcnRzKSA9PiBwYXJ0cy5qb2luKFwiXCIpKTtcblxuY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJTRVI6IFAuUGFyc2VyPHN0cmluZz4gPSBQLnJlZ2V4cCgvW14wLTlcXHdcXHB7TGV0dGVyfV0qL3UpXG4gICAgLnRoZW4oRlVMTF9MSU5FX0tFWV9QQVJUKVxuICAgIC5za2lwKFAucmVnZXhwKC9bX1xcKn5gXSovdSkpO1xuXG4vKiogQXR0ZW1wdCB0byBleHRyYWN0IGEgZnVsbC1saW5lIGZpZWxkIChLZXk6OiBWYWx1ZSBjb25zdW1pbmcgdGhlIGVudGlyZSBjb250ZW50IGxpbmUpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGdWxsTGluZUZpZWxkKHRleHQ6IHN0cmluZyk6IExvY2FsSW5saW5lRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGxldCBzZXAgPSBmaW5kU2VwYXJhdG9yKHRleHQsIDApO1xuICAgIGlmICghc2VwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gV2UgbmVlZCB0byBwb3N0LXByb2Nlc3MgdGhlIGtleSB0byBkcm9wIHVubmVjZXNzYXJ5IG9wZW5pbmcgYW5ub3RhdGlvbnMgYXMgd2VsbCBhc1xuICAgIC8vIGRyb3Agc3Vycm91bmRpbmcgTWFya2Rvd24uXG4gICAgbGV0IHJlYWxLZXkgPSBGVUxMX0xJTkVfS0VZX1BBUlNFUi5wYXJzZShzZXAua2V5KTtcbiAgICBpZiAoIXJlYWxLZXkuc3RhdHVzKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByZWFsS2V5LnZhbHVlLFxuICAgICAgICB2YWx1ZTogdGV4dC5zdWJzdHJpbmcoc2VwLnZhbHVlSW5kZXgpLnRyaW0oKSxcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIHN0YXJ0VmFsdWU6IHNlcC52YWx1ZUluZGV4LFxuICAgICAgICBlbmQ6IHRleHQubGVuZ3RoLFxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVEX0RBVEVfUkVHRVggPSAvXFx1ezI3OTV9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBEVUVfREFURV9SRUdFWCA9IC8oPzpcXHV7MUY0QzV9fFxcdXsxRjRDNn18XFx1ezFGNUQzfVxcdXtGRTBGfT8pXFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBET05FX0RBVEVfUkVHRVggPSAvXFx1ezI3MDV9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBTQ0hFRFVMRURfREFURV9SRUdFWCA9IC9bXFx1ezIzRjN9XFx1ezIzMUJ9XVxccyooXFxkezR9LVxcZHsyfS1cXGR7Mn0pL3U7XG5leHBvcnQgY29uc3QgU1RBUlRfREFURV9SRUdFWCA9IC9cXHV7MUY2RUJ9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcblxuZXhwb3J0IGNvbnN0IEVNT0pJX1JFR0VYRVMgPSBbXG4gICAgeyByZWdleDogQ1JFQVRFRF9EQVRFX1JFR0VYLCBrZXk6IFwiY3JlYXRlZFwiIH0sXG4gICAgeyByZWdleDogU1RBUlRfREFURV9SRUdFWCwga2V5OiBcInN0YXJ0XCIgfSxcbiAgICB7IHJlZ2V4OiBTQ0hFRFVMRURfREFURV9SRUdFWCwga2V5OiBcInNjaGVkdWxlZFwiIH0sXG4gICAgeyByZWdleDogRFVFX0RBVEVfUkVHRVgsIGtleTogXCJkdWVcIiB9LFxuICAgIHsgcmVnZXg6IERPTkVfREFURV9SRUdFWCwga2V5OiBcImNvbXBsZXRpb25cIiB9LFxuXTtcblxuLyoqIFBhcnNlIHNwZWNpYWwgY29tcGxldGVkL2R1ZS9kb25lIHRhc2sgZmllbGRzIHdoaWNoIGFyZSBtYXJrZWQgdmlhIGVtb2ppLiAqL1xuZnVuY3Rpb24gZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmU6IHN0cmluZyk6IExvY2FsSW5saW5lRmllbGRbXSB7XG4gICAgbGV0IHJlc3VsdHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgeyByZWdleCwga2V5IH0gb2YgRU1PSklfUkVHRVhFUykge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMobGluZSk7XG4gICAgICAgIGlmICghbWF0Y2gpIGNvbnRpbnVlO1xuXG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZTogbWF0Y2hbMV0sXG4gICAgICAgICAgICBzdGFydDogbWF0Y2guaW5kZXgsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBtYXRjaC5pbmRleCArIDEsXG4gICAgICAgICAgICBlbmQ6IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoLFxuICAgICAgICAgICAgd3JhcHBpbmc6IFwiZW1vamktc2hvcnRoYW5kXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG4vKiogU2V0cyBvciByZXBsYWNlcyB0aGUgdmFsdWUgb2YgYW4gaW5saW5lIGZpZWxkOyBpZiB0aGUgdmFsdWUgaXMgJ3VuZGVmaW5lZCcsIGRlbGV0ZXMgdGhlIGtleS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbmxpbmVGaWVsZChzb3VyY2U6IHN0cmluZywga2V5OiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBleHRyYWN0SW5saW5lRmllbGRzKHNvdXJjZSk7XG4gICAgbGV0IGV4aXN0aW5nS2V5cyA9IGV4aXN0aW5nLmZpbHRlcigoZikgPT4gZi5rZXkgPT0ga2V5KTtcblxuICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyBPUiB0aGUga2V5IGFscmVhZHkgZG9lc24ndCBleGlzdC5cbiAgICBpZiAoZXhpc3RpbmdLZXlzLmxlbmd0aCA+IDIgfHwgKGV4aXN0aW5nS2V5cy5sZW5ndGggPT0gMCAmJiAhdmFsdWUpKSByZXR1cm4gc291cmNlO1xuICAgIGxldCBleGlzdGluZ0tleSA9IGV4aXN0aW5nS2V5c1swXTtcblxuICAgIGxldCBhbm5vdGF0aW9uID0gdmFsdWUgPyBgWyR7a2V5fTo6ICR7dmFsdWV9XWAgOiBcIlwiO1xuICAgIGlmIChleGlzdGluZ0tleSkge1xuICAgICAgICBsZXQgcHJlZml4ID0gc291cmNlLnN1YnN0cmluZygwLCBleGlzdGluZ0tleS5zdGFydCk7XG4gICAgICAgIGxldCBzdWZmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKGV4aXN0aW5nS2V5LmVuZCk7XG5cbiAgICAgICAgaWYgKGFubm90YXRpb24pIHJldHVybiBgJHtwcmVmaXh9JHthbm5vdGF0aW9ufSR7c3VmZml4fWA7XG4gICAgICAgIGVsc2UgcmV0dXJuIGAke3ByZWZpeH0ke3N1ZmZpeC50cmltU3RhcnQoKX1gO1xuICAgIH0gZWxzZSBpZiAoYW5ub3RhdGlvbikge1xuICAgICAgICByZXR1cm4gYCR7c291cmNlLnRyaW1FbmQoKX0gJHthbm5vdGF0aW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVtb2ppU2hvcnRoYW5kQ29tcGxldGlvbkZpZWxkKHNvdXJjZTogc3RyaW5nLCB2YWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBleHRyYWN0SW5saW5lRmllbGRzKHNvdXJjZSwgdHJ1ZSk7XG4gICAgY29uc3QgZXhpc3RpbmdLZXlzID0gZXhpc3RpbmcuZmlsdGVyKChmKSA9PiBmLmtleSA9PT0gXCJjb21wbGV0aW9uXCIgJiYgZi53cmFwcGluZyA9PT0gXCJlbW9qaS1zaG9ydGhhbmRcIik7XG5cbiAgICAvLyBEb24ndCBkbyBhbnl0aGluZyBpZiB0aGVyZSBhcmUgZHVwbGljYXRlIGtleXMgT1IgdGhlIGtleSBhbHJlYWR5IGRvZXNuJ3QgZXhpc3QuXG4gICAgaWYgKGV4aXN0aW5nS2V5cy5sZW5ndGggPiAyIHx8IChleGlzdGluZ0tleXMubGVuZ3RoID09IDAgJiYgIXZhbHVlKSkgcmV0dXJuIHNvdXJjZTtcblxuICAgIC8qIE5vIHdyYXBwZXIsIGFkZCBvd24gc3BhY2luZyBhdCBzdGFydCAqL1xuICAgIGNvbnN0IGFubm90YXRpb24gPSB2YWx1ZSA/IGAgXHUyNzA1ICR7dmFsdWV9YCA6IFwiXCI7XG4gICAgbGV0IGV4aXN0aW5nS2V5ID0gZXhpc3RpbmdLZXlzWzBdO1xuICAgIGlmIChleGlzdGluZ0tleSkge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKDAsIGV4aXN0aW5nS2V5LnN0YXJ0KTtcbiAgICAgICAgY29uc3Qgc3VmZml4ID0gc291cmNlLnN1YnN0cmluZyhleGlzdGluZ0tleS5lbmQpO1xuICAgICAgICByZXR1cm4gYCR7cHJlZml4LnRyaW1FbmQoKX0ke2Fubm90YXRpb259JHtzdWZmaXh9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYCR7c291cmNlLnRyaW1FbmQoKX0ke2Fubm90YXRpb259YDtcbiAgICB9XG59XG4iLCAiLyoqIE1hcCB0aGUgdmFsdWVzIG9mIGFuIG9iamVjdCwgcmV0dXJuaW5nIGEgbmV3IG9iamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBPYmplY3RWYWx1ZXM8ViwgVT4ob2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBWPiwgZnVuYzogKHg6IFYpID0+IFUpOiBSZWNvcmQ8c3RyaW5nLCBVPiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBVPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBmdW5jKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIiwgImltcG9ydCB7IExpbmssIEpzb25MaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5cbi8qKiBKU09OLXNlcmlhbGl6ZWQgZXF1aXZhbGVudHMgZm9yIGxpdGVyYWxzLiAqL1xuZXhwb3J0IHR5cGUgSnNvbkxpdGVyYWwgPVxuICAgIHwgYm9vbGVhblxuICAgIHwgbnVtYmVyXG4gICAgfCBzdHJpbmdcbiAgICB8IHsgJF90eXBlOiBcImRhdGVcIjsgdmFsdWU6IHN0cmluZyB9XG4gICAgfCB7ICRfdHlwZTogXCJkdXJhdGlvblwiOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB8IHsgJF90eXBlOiBcImxpbmtcIjsgdmFsdWU6IEpzb25MaW5rIH1cbiAgICB8IEFycmF5PEpzb25MaXRlcmFsPlxuICAgIHwgUmVjb3JkPHN0cmluZywgYW55PlxuICAgIHwgbnVsbDtcblxuZXhwb3J0IG5hbWVzcGFjZSBKc29uQ29udmVyc2lvbiB7XG4gICAgZXhwb3J0IGNvbnN0IE5PT1BfTk9STUFMSVpFUjogKGlucHV0OiBMaXRlcmFsKSA9PiBMaXRlcmFsID0gKGlucHV0KSA9PiBpbnB1dDtcblxuICAgIC8qKiBDb252ZXJ0IGEgbGl0ZXJhbCB2YWx1ZSB0byBhIHNhZmUsIHBlcnNpc3RlbnQgSlNPTiBlcXVpdmFsZW50LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBqc29uKGxpdGVyYWw6IExpdGVyYWwpOiBKc29uTGl0ZXJhbCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSBMaXRlcmFscy53cmFwVmFsdWUobGl0ZXJhbCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgc3dpdGNoICh3cmFwcGVkPy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXAoSnNvbkNvbnZlcnNpb24uanNvbik7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcE9iamVjdFZhbHVlcyh3cmFwcGVkLnZhbHVlLCBKc29uQ29udmVyc2lvbi5qc29uKTtcbiAgICAgICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImRhdGVcIiwgdmFsdWU6IHdyYXBwZWQudmFsdWUudG9JU08oeyBleHRlbmRlZFpvbmU6IHRydWUsIGluY2x1ZGVPZmZzZXQ6IHRydWUgfSkgfTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImxpbmtcIiwgdmFsdWU6IHdyYXBwZWQudmFsdWUudG9PYmplY3QoKSB9O1xuICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImR1cmF0aW9uXCIsIHZhbHVlOiB3cmFwcGVkLnZhbHVlLnRvSVNPKCkgfTtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIGNhc2UgXCJudWxsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgSlNPTiBsaXRlcmFsIHRvIGl0J3MgY29ycmVzcG9uZGluZyBoeWRyYXRlZCB2YWx1ZSwgb3B0aW9uYWxseSBhcHBseWluZ1xuICAgICAqIGEgbm9ybWFsaXphdGlvbiBzdGVwIHRvIHRoZSByZXN1bHRpbmcgdmFsdWUgYW5kIGFueSBsaXRlcmFscyBjb250YWluZWQgd2l0aGluIGl0XG4gICAgICogKHN1Y2ggYXMgaWYgdGhlIGxpdGVyYWwgaXMgYSBsaXN0IG9yIG9iamVjdCkuXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHZhbHVlKGpzb246IEpzb25MaXRlcmFsLCBub3JtYWxpemVyOiAoaW5wdXQ6IExpdGVyYWwpID0+IExpdGVyYWwgPSBOT09QX05PUk1BTElaRVIpOiBMaXRlcmFsIHtcbiAgICAgICAgaWYgKGpzb24gPT09IG51bGwgfHwganNvbiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoanNvbi5tYXAoKGlucHV0KSA9PiBKc29uQ29udmVyc2lvbi52YWx1ZShpbnB1dCwgbm9ybWFsaXplcikpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YganNvbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKCEoXCIkX3R5cGVcIiBpbiBqc29uKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKGpzb24sICh2KSA9PiBKc29uQ29udmVyc2lvbi52YWx1ZSh2IGFzIEpzb25MaXRlcmFsLCBub3JtYWxpemVyKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBqc29uW1wiJF90eXBlXCJdO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoRGF0ZVRpbWUuZnJvbUlTTyhqc29uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVyKER1cmF0aW9uLmZyb21JU08oanNvbi52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVyKExpbmsuZnJvbU9iamVjdChqc29uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgc2VyaWFsaXplZCB0eXBlICcke3R5cGV9JyFgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByaW1pdGl2ZSB0eXBlLCByZXR1cm4gYXMgaXMuXG4gICAgICAgIHJldHVybiBub3JtYWxpemVyKGpzb24gYXMgTGl0ZXJhbCk7XG4gICAgfVxufVxuIiwgIi8qKlxuICogQG1vZHVsZSBpbmRleGFibGVzXG4gKi9cbi8qKiBVdGlsaXRpZXMgZm9yIGNvbnZlcnRpbmcgbGl0ZXJhbCB0eXBlcyB0byBhbmQgZnJvbSB0aGVpciBZQU1MIGZyb250bWF0dGVyIHJlcHJlc2VudGF0aW9uLiAqL1xuXG5pbXBvcnQgeyBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IFBSSU1JVElWRVMgfSBmcm9tIFwiZXhwcmVzc2lvbi9wYXJzZXJcIjtcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyBtYXBPYmplY3RWYWx1ZXMgfSBmcm9tIFwidXRpbHMvZGF0YVwiO1xuXG4vKiogWUFNTC1mcmllbmRseSByZXByZXNlbnRhdGlvbiBmb3IgYSBsaXRlcmFsLiAqL1xuZXhwb3J0IHR5cGUgWWFtbExpdGVyYWwgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IFJlY29yZDxzdHJpbmcsIGFueT4gfCBBcnJheTxZYW1sTGl0ZXJhbD47XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgbmFtZXNwYWNlIFlhbWxDb252ZXJzaW9uIHtcbiAgICAvKiogQ29udmVydCBhIGxpdGVyYWwgaW50byBhIHlhbWwgZnJpZW5kbHkgcmVwcmVzZW50YXRpb24uICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHlhbWwodmFsdWU6IExpdGVyYWwpOiBZYW1sTGl0ZXJhbCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSBMaXRlcmFscy53cmFwVmFsdWUobGl0ZXJhbCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcImFycmF5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFwKHlhbWwpO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b0lTTygpO1xuICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9IdW1hbigpO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcmtkb3duKCk7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcE9iamVjdFZhbHVlcyh3cmFwcGVkLnZhbHVlLCB5YW1sKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZWN1cnNpdmVseSBjb252ZXJ0IGEgWUFNTCBsaXRlcmFsIGludG8gYSByZWd1bGFyIGxpdGVyYWwgdmFsdWUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGxpdGVyYWwodmFsdWU6IFlhbWxMaXRlcmFsKTogTGl0ZXJhbCB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB2YWx1ZSBhcyBBcnJheTxhbnk+KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGxpdGVyYWwoY2hpbGQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZVBhcnNlID0gRGF0ZVRpbWUuZnJvbUpTRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVQYXJzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdCA9IHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4gPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbGl0ZXJhbChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBsZXQgZGF0ZVBhcnNlID0gUFJJTUlUSVZFUy5kYXRlLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChkYXRlUGFyc2Uuc3RhdHVzKSByZXR1cm4gZGF0ZVBhcnNlLnZhbHVlO1xuXG4gICAgICAgICAgICBsZXQgZHVyYXRpb25QYXJzZSA9IFBSSU1JVElWRVMuZHVyYXRpb24ucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGR1cmF0aW9uUGFyc2Uuc3RhdHVzKSByZXR1cm4gZHVyYXRpb25QYXJzZS52YWx1ZTtcblxuICAgICAgICAgICAgbGV0IGxpbmtQYXJzZSA9IFBSSU1JVElWRVMubGluay5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAobGlua1BhcnNlLnN0YXR1cykgcmV0dXJuIGxpbmtQYXJzZS52YWx1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmFja3VwIGlmIHdlIGRvbid0IHVuZGVyc3RhbmQgdGhlIHR5cGUuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBGaWxlU3RhdHMgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IGl0ZXJhdGVJbmxpbmVGaWVsZHMsIG1hcmtkb3duU291cmNlSW1wb3J0LCBNZXRhZGF0YSwgU2VjdGlvbkRhdGEgfSBmcm9tIFwiLi9tYXJrZG93blwiO1xuaW1wb3J0IHsgSnNvbkZyb250bWF0dGVyRW50cnkgfSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9tYXJrZG93blwiO1xuaW1wb3J0IHtcbiAgICBDYW52YXNNZXRhZGF0YUluZGV4LFxuICAgIEpzb25CYXNlQ2FudmFzQ2FyZCxcbiAgICBKc29uQ2FudmFzLFxuICAgIEpzb25DYW52YXNDYXJkLFxuICAgIEpzb25DYW52YXNGaWxlQ2FyZCxcbiAgICBKc29uQ2FudmFzVGV4dENhcmQsXG4gICAgSnNvbkNhbnZhc1dlYkNhcmQsXG59IGZyb20gXCJpbmRleC90eXBlcy9qc29uL2NhbnZhc1wiO1xuaW1wb3J0IHsgQ2FudmFzRmlsZURhdGEsIENhbnZhc0xpbmtEYXRhLCBDYW52YXNUZXh0RGF0YSwgQ2FudmFzRGF0YSBhcyBJQ2FudmFzIH0gZnJvbSBcIm9ic2lkaWFuL2NhbnZhc1wiO1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcblxuLyoqIEltcG9ydCBhIGNhbnZhcyBmaWxlIHVzaW5nIHRoZSBjYW52YXMgbWV0YWRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gY2FudmFzSW1wb3J0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBzb3VyY2U6IHN0cmluZyxcbiAgICBpbmRleDogQ2FudmFzTWV0YWRhdGFJbmRleFtcInN0cmluZ1wiXSxcbiAgICBzdGF0czogRmlsZVN0YXRzXG4pOiBKc29uQ2FudmFzIHtcbiAgICBjb25zdCBjYW52YXMgPSBuZXcgQ2FudmFzRGF0YShwYXRoLCBzdGF0cyk7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShzb3VyY2UpIGFzIElDYW52YXM7XG5cbiAgICBmb3IgKGNvbnN0IGMgb2YgcGFyc2VkLm5vZGVzKSB7XG4gICAgICAgIGlmIChjLnR5cGUgPT0gXCJncm91cFwiKSBjb250aW51ZTtcbiAgICAgICAgaWYgKGMudHlwZSA9PSBcInRleHRcIikge1xuICAgICAgICAgICAgY29uc3QgeyBmcm9udG1hdHRlciwgbWV0YWRhdGEsIGxpbmVzLCBzZWN0aW9ucyB9ID0gbWFya2Rvd25Tb3VyY2VJbXBvcnQocGF0aCwgYy50ZXh0LCBpbmRleD8uY2FjaGVzW2MuaWRdKTtcbiAgICAgICAgICAgIGNvbnN0IGNhcmQgPSBuZXcgQ2FudmFzQ2FyZERhdGEocGF0aCwgYy5pZCwgYywgZnJvbnRtYXR0ZXIpO1xuICAgICAgICAgICAgc2VjdGlvbnMuZm9yRWFjaCgoaSkgPT4gY2FyZC5zZWN0aW9uKGkpKTtcbiAgICAgICAgICAgIGNhbnZhcy5jYXJkKGNhcmQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgaW4gbWV0YWRhdGEudGFncykgY2FudmFzLm1ldGFkYXRhLnRhZyh0YWcpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIG1ldGFkYXRhLmxpbmtzID8/IFtdKSBjYW52YXMubWV0YWRhdGEubGluayhsaW5rKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgaXRlcmF0ZUlubGluZUZpZWxkcyhsaW5lcykpIGNhbnZhcy5tZXRhZGF0YS5pbmxpbmVGaWVsZChmaWVsZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkID0gbmV3IENhbnZhc0NhcmREYXRhKHBhdGgsIGMuaWQsIGMpO1xuICAgICAgICAgICAgY2FudmFzLmNhcmQoY2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2FudmFzLmJ1aWxkKCk7XG59XG5cbi8qKiBNZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBjYW52YXMgY2FyZC4gKi9cbmFic3RyYWN0IGNsYXNzIEFic3RyYWN0Q2FudmFzQ2FyZERhdGEge1xuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBub2RlSnNvbjogQ2FudmFzVGV4dERhdGEgfCBDYW52YXNMaW5rRGF0YSB8IENhbnZhc0ZpbGVEYXRhXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IEpzb25CYXNlQ2FudmFzQ2FyZCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkZmlsZTogdGhpcy5wYXRoLFxuICAgICAgICAgICAgJGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgeDogdGhpcy5ub2RlSnNvbi54LFxuICAgICAgICAgICAgICAgIHk6IHRoaXMubm9kZUpzb24ueSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAkZGltZW5zaW9uczoge1xuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLm5vZGVKc29uLndpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5ub2RlSnNvbi5oZWlnaHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJGNvbG9yOiB0aGlzLm5vZGVKc29uLmNvbG9yLFxuICAgICAgICAgICAgJGxpbms6IExpbmsuZmlsZSh0aGlzLnBhdGgpLndpdGhCbG9jayh0aGlzLmlkKS50b09iamVjdCgpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqIE1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGNhcmQgaW4gYSBjYW52YXMgdmlldy4gKi9cbmV4cG9ydCBjbGFzcyBDYW52YXNDYXJkRGF0YSBleHRlbmRzIEFic3RyYWN0Q2FudmFzQ2FyZERhdGEge1xuICAgIHB1YmxpYyBzZWN0aW9uczogU2VjdGlvbkRhdGFbXSA9IFtdO1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHBhdGg6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBub2RlSnNvbjogQ2FudmFzVGV4dERhdGEgfCBDYW52YXNMaW5rRGF0YSB8IENhbnZhc0ZpbGVEYXRhLFxuICAgICAgICBwdWJsaWMgZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBKc29uRnJvbnRtYXR0ZXJFbnRyeT5cbiAgICApIHtcbiAgICAgICAgc3VwZXIocGF0aCwgaWQsIG5vZGVKc29uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VjdGlvbihzZWN0aW9uOiBTZWN0aW9uRGF0YSk6IFNlY3Rpb25EYXRhIHtcbiAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgICAgICByZXR1cm4gc2VjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbkNhbnZhc0NhcmQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubm9kZUpzb24udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi4oc3VwZXIuYnVpbGQoKSBhcyBKc29uQmFzZUNhbnZhc0NhcmQpLFxuICAgICAgICAgICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksXG4gICAgICAgICAgICAgICAgICAgICRmcm9udG1hdHRlcjogdGhpcy5mcm9udG1hdHRlcixcbiAgICAgICAgICAgICAgICAgICAgJHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLm1hcCgoeCkgPT4geC5idWlsZCgpKSxcbiAgICAgICAgICAgICAgICAgICAgJHRhZ3M6IHRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLFxuICAgICAgICAgICAgICAgICAgICAkbGlua3M6IHRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSxcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6IFwidGV4dC1jYXJkXCIsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogdGhpcy5ub2RlSnNvbi5jb2xvcixcbiAgICAgICAgICAgICAgICB9IGFzIEpzb25DYW52YXNUZXh0Q2FyZDtcbiAgICAgICAgICAgIGNhc2UgXCJmaWxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3VwZXIuYnVpbGQoKSxcbiAgICAgICAgICAgICAgICAgICAgJGxpbmtlZEZpbGU6IHRoaXMubm9kZUpzb24uZmlsZSxcbiAgICAgICAgICAgICAgICB9IGFzIEpzb25DYW52YXNGaWxlQ2FyZDtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3VwZXIuYnVpbGQoKSxcbiAgICAgICAgICAgICAgICAgICAgJHVybDogdGhpcy5ub2RlSnNvbi51cmwsXG4gICAgICAgICAgICAgICAgfSBhcyBKc29uQ2FudmFzV2ViQ2FyZDtcbiAgICAgICAgICAgIC8vIHJldHVybiBuZXdcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIE1ldGFkYXRhIGZvciB0aGUgd2hvbGUgY2FudmFzIHBhZ2UgYXMgYSB3aG9sZS4gKi9cbmV4cG9ydCBjbGFzcyBDYW52YXNEYXRhIHtcbiAgICBwdWJsaWMgY2FyZHM6IENhbnZhc0NhcmREYXRhW10gPSBbXTtcbiAgICBwdWJsaWMgbWV0YWRhdGE6IE1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHBhdGg6IHN0cmluZywgcHVibGljIHN0YXRzOiBGaWxlU3RhdHMpIHt9XG5cbiAgICBwdWJsaWMgY2FyZChkOiBDYW52YXNDYXJkRGF0YSk6IENhbnZhc0NhcmREYXRhIHtcbiAgICAgICAgdGhpcy5jYXJkcy5wdXNoKGQpO1xuICAgICAgICByZXR1cm4gZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogSnNvbkNhbnZhcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkY2FyZHM6IHRoaXMuY2FyZHMubWFwKCh4KSA9PiB4LmJ1aWxkKCkpLFxuICAgICAgICAgICAgJGN0aW1lOiB0aGlzLnN0YXRzLmN0aW1lLFxuICAgICAgICAgICAgJG10aW1lOiB0aGlzLnN0YXRzLm10aW1lLFxuICAgICAgICAgICAgJGluZmllbGRzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksXG4gICAgICAgICAgICAkdGFnczogdGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksXG4gICAgICAgICAgICAkcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgJHNpemU6IHRoaXMuc3RhdHMuc2l6ZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY2FudmFzSW1wb3J0IH0gZnJvbSBcImluZGV4L2ltcG9ydC9jYW52YXNcIjtcbmltcG9ydCB7IG1hcmtkb3duSW1wb3J0IH0gZnJvbSBcImluZGV4L2ltcG9ydC9tYXJrZG93blwiO1xuaW1wb3J0IHsgQ2FudmFzSW1wb3J0UmVzdWx0LCBJbXBvcnRDb21tYW5kLCBNYXJrZG93bkltcG9ydFJlc3VsdCB9IGZyb20gXCJpbmRleC93ZWItd29ya2VyL21lc3NhZ2VcIjtcblxuLyoqIFdlYiB3b3JrZXIgZW50cnkgcG9pbnQgZm9yIGltcG9ydGluZy4gKi9cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBldmVudC5kYXRhIGFzIEltcG9ydENvbW1hbmQ7XG5cbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJtYXJrZG93blwiKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZG93biA9IG1hcmtkb3duSW1wb3J0KG1lc3NhZ2UucGF0aCwgbWVzc2FnZS5jb250ZW50cywgbWVzc2FnZS5tZXRhZGF0YSwgbWVzc2FnZS5zdGF0KTtcblxuICAgICAgICAgICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwibWFya2Rvd25cIixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IG1hcmtkb3duLFxuICAgICAgICAgICAgfSBhcyBNYXJrZG93bkltcG9ydFJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS50eXBlID09PSBcImNhbnZhc1wiKSB7XG4gICAgICAgICAgICBjb25zdCBjYW52YXMgPSBjYW52YXNJbXBvcnQobWVzc2FnZS5wYXRoLCBtZXNzYWdlLmNvbnRlbnRzLCBtZXNzYWdlLmluZGV4LCBtZXNzYWdlLnN0YXQpO1xuXG4gICAgICAgICAgICBwb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJjYW52YXNcIixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGNhbnZhcyxcbiAgICAgICAgICAgIH0gYXMgQ2FudmFzSW1wb3J0UmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlKHsgJGVycm9yOiBcIlVuc3VwcG9ydGVkIGltcG9ydCBtZXRob2QuXCIgfSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBEYXRhY29yZSBJbmRleGVyIGZhaWxlZCB0byBpbmRleCAke2V2ZW50LmRhdGEucGF0aH06ICR7ZXJyb3J9YCk7XG4gICAgICAgIHBvc3RNZXNzYWdlKHsgJGVycm9yOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiMGpEQUFBLElBQUFBLEdBQUFDLEdBQUEsQ0FBQUMsR0FBQUMsS0FBQSxFQUFDLFNBQVMsRUFBRUMsRUFBRSxDQUFXLE9BQU9GLElBQWpCLFVBQW9DLE9BQU9DLElBQWpCLFNBQXdCQSxHQUFPLFFBQVFDLEVBQUUsRUFBYyxPQUFPLFFBQW5CLFlBQTJCLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRUEsQ0FBQyxFQUFZLE9BQU9GLElBQWpCLFNBQXlCQSxHQUFRLFVBQVVFLEVBQUUsRUFBRSxFQUFFLFVBQVVBLEVBQUUsQ0FBQyxHQUFlLE9BQU8sTUFBcEIsWUFBeUIsS0FBS0YsR0FBSyxVQUFVLENBQUMsT0FBTyxTQUFTLEVBQUUsQ0FBQyxJQUFJRSxFQUFFLENBQUMsRUFBRSxTQUFTQyxFQUFFQyxFQUFFLENBQUMsR0FBR0YsRUFBRUUsQ0FBQyxFQUFFLE9BQU9GLEVBQUVFLENBQUMsRUFBRSxRQUFRLElBQUlDLEVBQUVILEVBQUVFLENBQUMsRUFBRSxDQUFDLEVBQUVBLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFQSxDQUFDLEVBQUUsS0FBS0MsRUFBRSxRQUFRQSxFQUFFQSxFQUFFLFFBQVFGLENBQUMsRUFBRUUsRUFBRSxFQUFFLEdBQUdBLEVBQUUsT0FBTyxDQUFDLE9BQU9GLEVBQUUsRUFBRSxFQUFFQSxFQUFFLEVBQUVELEVBQUVDLEVBQUUsRUFBRSxTQUFTRyxFQUFFSixFQUFFRSxFQUFFLENBQUNELEVBQUUsRUFBRUcsRUFBRUosQ0FBQyxHQUFHLE9BQU8sZUFBZUksRUFBRUosRUFBRSxDQUFDLGFBQWEsR0FBRyxXQUFXLEdBQUcsSUFBSUUsQ0FBQyxDQUFDLENBQUMsRUFBRUQsRUFBRSxFQUFFLFNBQVNHLEVBQUUsQ0FBQyxPQUFPLGVBQWVBLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRUgsRUFBRSxFQUFFLFNBQVNHLEVBQUUsQ0FBQyxJQUFJSixFQUFFSSxHQUFHQSxFQUFFLFdBQVcsVUFBVSxDQUFDLE9BQU9BLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPQSxDQUFDLEVBQUUsT0FBT0gsRUFBRSxFQUFFRCxFQUFFLElBQUlBLENBQUMsRUFBRUEsQ0FBQyxFQUFFQyxFQUFFLEVBQUUsU0FBU0csRUFBRUosRUFBRSxDQUFDLE9BQU8sT0FBTyxVQUFVLGVBQWUsS0FBS0ksRUFBRUosQ0FBQyxDQUFDLEVBQUVDLEVBQUUsRUFBRSxHQUFHQSxFQUFFQSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUVELEVBQUVDLEVBQUUsQ0FBQyxhQUFhLFNBQVNDLEVBQUVFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCRixHQUFHLE9BQU8sSUFBSUEsRUFBRUUsQ0FBQyxFQUFFLEtBQUssRUFBRUEsQ0FBQyxDQUFDLElBQUlELEVBQUVELEVBQUUsVUFBVSxTQUFTRyxFQUFFRCxFQUFFSixFQUFFLENBQUMsUUFBUUMsRUFBRSxFQUFFQSxFQUFFRyxFQUFFSCxJQUFJRCxFQUFFQyxDQUFDLENBQUMsQ0FBQyxTQUFTSyxFQUFFRixFQUFFSixFQUFFQyxFQUFFLENBQUMsT0FBTyxTQUFTRyxFQUFFSixFQUFFLENBQUNLLEVBQUVMLEVBQUUsT0FBTyxTQUFTQyxFQUFFLENBQUNHLEVBQUVKLEVBQUVDLENBQUMsRUFBRUEsRUFBRUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVNDLEVBQUVDLEVBQUVDLEVBQUUsQ0FBQ0gsRUFBRUksRUFBRUosRUFBRUMsRUFBRUMsRUFBRUMsQ0FBQyxDQUFDLEVBQUVGLENBQUMsRUFBRUQsQ0FBQyxDQUFDLFNBQVMsRUFBRUksRUFBRUosRUFBRSxDQUFDLE9BQU9NLEVBQUUsU0FBU04sRUFBRUMsRUFBRUMsRUFBRUMsRUFBRSxDQUFDLE9BQU9ILEVBQUUsT0FBTyxDQUFDSSxFQUFFSCxFQUFFQyxFQUFFQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFSCxDQUFDLENBQUMsQ0FBQyxTQUFTTyxFQUFFSCxFQUFFSixFQUFFLENBQUMsSUFBSUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJRCxDQUFDLEVBQUUsT0FBT0ssRUFBRUQsRUFBRSxVQUFVLENBQUMsSUFBSUEsRUFBRUgsRUFBRSxDQUFDLEVBQUVBLEVBQUUsR0FBRyxHQUFHRyxFQUFFSCxFQUFFLElBQUlHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxTQUFTQSxFQUFFLENBQUMsSUFBSUosRUFBRU0sRUFBRSxTQUFTRixFQUFFSixFQUFFQyxHQUFFQyxHQUFFLENBQUMsT0FBT0UsRUFBRSxPQUFPSCxLQUFJQyxHQUFFLE9BQU8sRUFBRSxPQUFPLEtBQUssQ0FBQ0YsRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRUUsR0FBRSxhQUFhRCxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRUcsQ0FBQyxFQUFFLE9BQU8sT0FBTyxLQUFLLEVBQUUsU0FBU0EsRUFBRSxDQUFDLE9BQU9BLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRUosQ0FBQyxDQUFDLENBQUMsRUFBRUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVBLENBQUMsQ0FBQyxTQUFTTyxHQUFHLENBQUMsT0FBbUIsT0FBTyxRQUFwQixXQUEwQixDQUFDLFNBQVNDLEdBQUcsQ0FBQyxHQUFHLENBQUNELEVBQUUsRUFBRSxNQUFNLElBQUksTUFBTSwrRkFBK0YsQ0FBQyxDQUFDLFNBQVNFLEVBQUVOLEVBQUUsQ0FBQ0ssRUFBRSxFQUFFLElBQUlULEVBQUVNLEVBQUUsU0FBU0YsRUFBRUosRUFBRSxDQUFDLE9BQU9JLEVBQUVKLENBQUMsRUFBRSxFQUFFSSxDQUFDLEVBQUUsR0FBR0osRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLE1BQU0sYUFBYUksRUFBRSxLQUFLLElBQUksRUFBRSxlQUFlSixFQUFFLDJFQUEyRSxFQUFFLElBQUlDLEVBQUVFLEVBQUVILEVBQUUsRUFBRUssR0FBR0osRUFBRSxTQUFTRyxFQUFFLENBQUMsT0FBT0EsRUFBRSxFQUFFLEVBQUVFLEVBQUUsU0FBU0YsRUFBRUosRUFBRSxDQUFDLE9BQU9JLElBQUlILEVBQUVELENBQUMsRUFBRUEsRUFBRUksRUFBRSxFQUFFLEtBQUtBLENBQUMsR0FBRyxHQUFHQyxFQUFFLE1BQU0sSUFBSSxNQUFNQSxFQUFFLDBEQUEwRCxFQUFFLE9BQU8sSUFBSUgsRUFBRSxTQUFTRixFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRUMsRUFBRUYsRUFBRSxPQUFPQyxFQUFFRixFQUFFLE9BQU9XLEVBQUVWLEVBQUVFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRVMsRUFBRVYsRUFBRUksRUFBRSxTQUFTRixHQUFFSixHQUFFLENBQUMsSUFBSUMsR0FBRU0sRUFBRVAsR0FBRUksR0FBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEtBQUtBLEdBQUUsS0FBSyxPQUFPSCxHQUFFLENBQUMsRUFBRSxJQUFJQSxHQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSUQsRUFBRSxNQUFNQyxFQUFFQyxDQUFDLENBQUMsRUFBRUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTUyxFQUFFVCxFQUFFSixFQUFFLENBQUMsT0FBTyxJQUFJRSxFQUFFLFNBQVNELEVBQUVDLEVBQUUsQ0FBQyxPQUFPTyxFQUFFLEVBQUVQLEVBQUVGLEVBQUVDLEVBQUUsT0FBT1UsRUFBRVQsRUFBRUYsRUFBRSxjQUFjSSxDQUFDLEVBQUVRLEVBQUVWLEVBQUVGLEVBQUVDLEVBQUUsTUFBTUMsRUFBRUEsRUFBRUYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU2MsRUFBRVYsRUFBRUosRUFBRSxDQUFDLEdBQWEsT0FBT0MsRUFBRUQsSUFBbkIsVUFBdUIsS0FBSyxNQUFNQyxDQUFDLElBQUlBLEdBQUdELEVBQUUsR0FBR0EsRUFBRSxFQUFFLE1BQU0sSUFBSSxNQUFNSSxFQUFFLDJDQUEyQyxFQUFFLElBQUlILENBQUMsQ0FBQyxTQUFTYyxFQUFFWCxFQUFFLENBQUMsT0FBT1UsRUFBRSxTQUFTVixDQUFDLEVBQUVTLEVBQUUsVUFBVVQsRUFBRSxJQUFJQSxDQUFDLEVBQUUsSUFBSSxTQUFTSixFQUFFLENBQUMsT0FBT0EsRUFBRSxXQUFXLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTWSxFQUFFWixFQUFFLENBQUMsT0FBT1UsRUFBRSxTQUFTVixDQUFDLEVBQUVTLEVBQUUsVUFBVVQsRUFBRSxJQUFJQSxDQUFDLEVBQUUsSUFBSSxTQUFTSixFQUFFLENBQUMsT0FBT0EsRUFBRSxXQUFXLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTYSxFQUFFYixFQUFFLENBQUMsT0FBT1UsRUFBRSxRQUFRVixDQUFDLEVBQUVTLEVBQUUsU0FBU1QsRUFBRSxJQUFJQSxDQUFDLEVBQUUsSUFBSSxTQUFTSixFQUFFLENBQUMsT0FBT0EsRUFBRSxVQUFVLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTYyxFQUFFZCxFQUFFLENBQUMsT0FBT1UsRUFBRSxRQUFRVixDQUFDLEVBQUVTLEVBQUUsU0FBU1QsRUFBRSxJQUFJQSxDQUFDLEVBQUUsSUFBSSxTQUFTSixFQUFFLENBQUMsT0FBT0EsRUFBRSxVQUFVLEVBQUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTZSxFQUFFZixFQUFFLENBQUMsT0FBT0EsYUFBYUYsQ0FBQyxDQUFDLFNBQVNrQixFQUFFaEIsRUFBRSxDQUFDLE1BQXlCLENBQUMsRUFBRSxTQUFTLEtBQUtBLENBQUMsSUFBckMsZ0JBQXNDLENBQUMsU0FBU2lCLEVBQUVqQixFQUFFLENBQUMsT0FBT0ksRUFBRSxHQUFHLE9BQU8sU0FBU0osQ0FBQyxDQUFDLENBQUMsU0FBU1EsRUFBRVIsRUFBRUosRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTUksRUFBRSxNQUFNSixFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU1csRUFBRVAsRUFBRUosRUFBRSxDQUFDLE9BQU9vQixFQUFFcEIsQ0FBQyxJQUFJQSxFQUFFLENBQUNBLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxNQUFNLEdBQUcsTUFBTSxLQUFLLFNBQVNJLEVBQUUsU0FBU0osQ0FBQyxDQUFDLENBQUMsU0FBU3NCLEVBQUVsQixFQUFFSixFQUFFLENBQWdCLEdBQVosQ0FBQ0EsR0FBY0ksRUFBRSxTQUFTSixFQUFFLFNBQVMsT0FBT0ksRUFBRSxJQUFJSCxFQUFFRyxFQUFFLFdBQVdKLEVBQUUsU0FBUyxTQUFTSSxFQUFFSixFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBWUUsRUFBRSxlQUFYLE9BQXdCLE9BQU9BLEVBQUUsYUFBYSxJQUFJRSxHQUFlLE9BQU8sS0FBcEIsWUFBd0IsT0FBT0YsRUFBRSxhQUFhRSxHQUFFQSxFQUFDLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRSCxFQUFFLElBQUksSUFBSUcsQ0FBQyxFQUFFRCxFQUFFLEVBQUVBLEVBQUVILEVBQUUsT0FBT0csSUFBSUYsRUFBRSxJQUFJRCxFQUFFRyxDQUFDLENBQUMsRUFBRSxJQUFJRSxFQUFFLE1BQU0sS0FBS0osQ0FBQyxFQUFFLE9BQU9JLEVBQUUsS0FBSyxFQUFFQSxDQUFDLENBQUMsUUFBUUMsR0FBRSxDQUFDLEVBQUVpQixHQUFFLEVBQUVBLEdBQUVuQixFQUFFLE9BQU9tQixLQUFJakIsR0FBRUYsRUFBRW1CLEVBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUWhCLEdBQUUsRUFBRUEsR0FBRVAsRUFBRSxPQUFPTyxLQUFJRCxHQUFFTixFQUFFTyxFQUFDLENBQUMsRUFBRSxHQUFHLElBQUlDLEdBQUUsQ0FBQyxFQUFFLFFBQVFDLE1BQUtILElBQUcsQ0FBQyxHQUFHLGVBQWUsS0FBS0EsR0FBRUcsRUFBQyxHQUFHRCxHQUFFLEtBQUtDLEVBQUMsRUFBRSxPQUFPRCxHQUFFLEtBQUssRUFBRUEsRUFBQyxFQUFFSixFQUFFLFNBQVNKLEVBQUUsUUFBUSxFQUFFQSxFQUFFLFNBQVMsTUFBTSxDQUFDLE9BQU9JLEVBQUUsT0FBTyxNQUFNQSxFQUFFLE1BQU0sTUFBTUEsRUFBRSxNQUFNLFNBQVNKLEVBQUUsU0FBUyxTQUFTQyxDQUFDLENBQUMsQ0FBQyxJQUFJdUIsRUFBRSxDQUFDLEVBQUUsU0FBU0MsRUFBRXJCLEVBQUVKLEVBQUUsQ0FBQyxHQUFHcUIsRUFBRWpCLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBT0osRUFBRSxLQUFLLEdBQUcsT0FBTyxFQUFFLEVBQUVJLEtBQUtvQixJQUFJQSxFQUFFcEIsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRSCxFQUFFdUIsRUFBRXBCLENBQUMsRUFBRUYsRUFBRSxFQUFFQyxFQUFFLEVBQUVFLEVBQUUsRUFBRUMsRUFBRU4sRUFBRU0sR0FBRyxHQUFHLENBQUMsR0FBR0EsS0FBS0wsRUFBRSxDQUFDQyxFQUFFRCxFQUFFSyxDQUFDLEVBQUUsS0FBU0QsSUFBSixJQUFRQSxFQUFFSixFQUFFSyxDQUFDLEVBQUUsV0FBVyxLQUFLLEVBQVNGLEVBQUUsT0FBT0UsQ0FBQyxJQUFqQjtBQUFBLEdBQTJCRixFQUFFLE9BQU9FLENBQUMsSUFBakIsTUFBMkJGLEVBQUUsT0FBT0UsRUFBRSxDQUFDLElBQW5CO0FBQUEsS0FBd0JILElBQVFFLElBQUosSUFBUUEsRUFBRUMsRUFBRSxJQUFJQSxHQUFHLENBQUMsSUFBSWlCLEVBQUVyQixFQUFFQyxFQUFFSSxHQUFFUCxFQUFFSyxFQUFFLE9BQU9KLEVBQUVELENBQUMsRUFBRSxDQUFDLEtBQUt1QixFQUFFLFVBQVVsQixDQUFDLEVBQUUsQ0FBQyxPQUFPTCxFQUFFLEtBQUt1QixFQUFFLEVBQUUsT0FBT2hCLEdBQUUsQ0FBQyxDQUFDLENBQUMsU0FBU21CLEVBQUV0QixFQUFFLENBQUMsR0FBRyxDQUFDZSxFQUFFZixDQUFDLEVBQUUsTUFBTSxJQUFJLE1BQU0saUJBQWlCQSxDQUFDLENBQUMsQ0FBQyxTQUFTdUIsRUFBRXZCLEVBQUVKLEVBQUUsQ0FBQyxPQUFnQixPQUFPSSxHQUFqQixTQUFtQkEsRUFBRSxPQUFPSixDQUFDLEVBQUVJLEVBQUVKLENBQUMsQ0FBQyxDQUFDLFNBQVM0QixHQUFFeEIsRUFBRSxDQUFDLEdBQWEsT0FBT0EsR0FBakIsU0FBbUIsTUFBTSxJQUFJLE1BQU0saUJBQWlCQSxDQUFDLENBQUMsQ0FBQyxTQUFTeUIsR0FBRXpCLEVBQUUsQ0FBQyxHQUFlLE9BQU9BLEdBQW5CLFdBQXFCLE1BQU0sSUFBSSxNQUFNLG1CQUFtQkEsQ0FBQyxDQUFDLENBQUMsU0FBUzBCLEVBQUUxQixFQUFFLENBQUMsR0FBYSxPQUFPQSxHQUFqQixTQUFtQixNQUFNLElBQUksTUFBTSxpQkFBaUJBLENBQUMsQ0FBQyxDQUFDLElBQUkyQixFQUFFLEVBQUVDLEVBQUUsRUFBRUMsR0FBRSxFQUFFQyxHQUFFLEVBQUVELEdBQUVFLEdBQUUsRUFBRUYsR0FBRUcsR0FBRSxLQUFLLFNBQVNDLEdBQUVqQyxFQUFFSixFQUFFLENBQUMsT0FBTyxJQUFJLE1BQU1BLEVBQUUsQ0FBQyxFQUFFLEtBQUtJLENBQUMsQ0FBQyxDQUFDLFNBQVNrQyxHQUFFbEMsRUFBRUosRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUVGLEVBQUVJLEVBQUUsT0FBTyxPQUFPRixHQUFHLEVBQUVFLEVBQUVpQyxHQUFFcEMsRUFBRUMsQ0FBQyxFQUFFRSxDQUFDLENBQUMsU0FBU21DLEdBQUVuQyxFQUFFSixFQUFFQyxFQUFFQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUtFLEVBQUVKLEVBQUUsRUFBRUksRUFBRUosRUFBRSxFQUFFLEdBQUdJLEVBQUVILEVBQUVDLEVBQUVBLEVBQUVFLEVBQUVILENBQUMsQ0FBQyxDQUFDLFNBQVN1QyxHQUFFcEMsRUFBRUosRUFBRSxDQUFDLElBQUlDLEVBQUVDLEVBQUVDLEVBQUVFLEVBQUVFLEVBQUVDLEVBQUVSLEVBQUUsTUFBTVMsR0FBRUQsRUFBRSxPQUFPRSxHQUFFLEVBQUUsR0FBR0QsS0FBSUwsRUFBRSxPQUFPLE1BQU0sMkJBQTJCLEdBQUdpQixFQUFFakIsQ0FBQyxFQUFFLENBQUMsSUFBSVMsR0FBRUosR0FBRUEsR0FBRXdCLEdBQUVuQixHQUFFTCxHQUFFSSxHQUFFRSxHQUFFd0IsR0FBRTFCLEdBQUVxQixHQUFFQyxHQUFFRixHQUFFN0IsRUFBRSxNQUFNLEVBQUVZLEdBQUUsRUFBRSxTQUFTWixHQUFFLENBQUMsT0FBTyxFQUFFLFNBQVNBLEdBQUUsQ0FBQyxPQUFPa0MsR0FBRWxDLEdBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRUEsRUFBQyxDQUFDLEVBQUUsU0FBU0EsR0FBRUosR0FBRSxDQUFDLElBQUlDLEdBQUVHLEdBQUUsT0FBT0YsR0FBRSxDQUFDLEVBQUVDLEdBQUUsRUFBRSxHQUFHRixJQUFHRCxHQUFFLE1BQU0sQ0FBQ0ksR0FBRSxNQUFNLENBQUMsRUFBRSxRQUFRQyxHQUFFLEVBQUVBLEdBQUVKLEdBQUVJLEtBQUlILEdBQUVDLEVBQUMsR0FBR0QsR0FBRSxLQUFLLENBQUMsQ0FBQyxFQUFFQSxHQUFFQyxFQUFDLEVBQUUsS0FBS0MsR0FBRUMsRUFBQyxDQUFDLEdBQUdBLEdBQUUsR0FBR0wsSUFBRyxHQUFHRyxLQUFJLE9BQU9ELEVBQUMsRUFBRUUsRUFBRSxNQUFNVyxHQUFFLEtBQUtBLEdBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLa0IsRUFBQyxDQUFDLEVBQUU1QixFQUFFLFNBQVNELEdBQUUsQ0FBQyxPQUFXQSxHQUFFLE9BQU4sR0FBZ0JBLEdBQUUsS0FBTixFQUFTLENBQUMsS0FBS0EsR0FBRSxLQUFLLEdBQUdBLEdBQUUsRUFBRSxFQUFFLENBQUMsS0FBS0EsR0FBRSxLQUFLNkIsR0FBRSxHQUFHLEtBQUssTUFBTTdCLEdBQUUsR0FBRzZCLEVBQUMsQ0FBQyxDQUFDLEVBQUVsQixFQUFDLEVBQUViLEVBQUVXLEdBQUVvQixHQUFFaEMsRUFBRSxFQUFFYSxHQUFFQSxJQUFHLElBQUliLEdBQUcsR0FBR1MsR0FBRSxFQUFFUCxFQUFFLEVBQUUsU0FBU0MsR0FBRSxDQUFDLE9BQU9BLEdBQUUsUUFBUSxFQUFFQSxHQUFFLEtBQUssR0FBRyxFQUFFQSxHQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBS0EsR0FBRSxNQUFNLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFWSxFQUFDLEdBQUdULEdBQUcsR0FBR0YsRUFBRSxHQUFHLEVBQUVBLEVBQUUsR0FBRyxFQUFFQSxFQUFFLEtBQUssU0FBUyxFQUFFLEVBQUUsUUFBUSxJQUFJRSxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUlVLEdBQUViLEVBQUUsTUFBTSx5QkFBeUIsRUFBRUgsRUFBRU8sRUFBRSxPQUFPLEVBQUVOLEVBQUVNLEVBQUUsS0FBSyxFQUFFSCxFQUFFa0MsR0FBRXJDLEVBQUU2QixFQUFFQyxFQUFFZixHQUFFLE1BQU0sRUFBRWQsRUFBRWMsR0FBRSxNQUFNWixFQUFFLEtBQUtBLEVBQUUsRUFBRSxFQUFFRSxFQUFFRixFQUFFLEdBQUcsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJYSxHQUFFaEIsRUFBRUcsRUFBRSxLQUFLLE9BQU9nQixFQUFFakIsQ0FBQyxJQUFJRyxHQUFHLEdBQUdGLEVBQUUsR0FBRyxFQUFFQSxFQUFFLEdBQUcsRUFBRUEsRUFBRSxLQUFLLFNBQVMsRUFBRSxFQUFFLFFBQVEsSUFBSUUsRUFBRSxHQUFHRCxFQUFFLFNBQVNOLEdBQUVFLEdBQUVDLEdBQUUsQ0FBQyxJQUFJRyxHQUFFaUIsR0FBRXBCLEtBQUllLEdBQUVWLEdBQUVlLEdBQUUsS0FBS2EsR0FBRSxPQUFPOUIsR0FBRWUsRUFBRWpCLENBQUMsRUFBRWtDLElBQUcsR0FBR2pDLEVBQUUsS0FBS0YsS0FBSSxTQUFTLEVBQUUsRUFBRUksRUFBRSxHQUFHLEVBQUUrQixJQUFHakMsRUFBRSxLQUFLRixHQUFFLEdBQUcsU0FBUyxFQUFFSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBT1AsR0FBRSxDQUFDUSxHQUFFRixHQUFFLE1BQU1KLEVBQUMsRUFBRXFCLEdBQUUsQ0FBQ2EsR0FBRUMsR0FBRSxJQUFJOUIsQ0FBQyxFQUFFLE1BQU0rQixHQUFFLEdBQUdyQyxFQUFFLEdBQUcsRUFBRW9DLEdBQUUsSUFBSTNCLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFUCxDQUFDLEVBQUUsS0FBSztBQUFBLENBQUksQ0FBQyxDQUFDLFNBQVNzQyxHQUFFckMsRUFBRUosRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUFBLEVBQUsscUJBQXFCcUMsR0FBRSxJQUFJLEVBQUUsRUFBRTtBQUFBO0FBQUEsRUFBT0csR0FBRXBDLEVBQUVKLENBQUMsRUFBRTtBQUFBO0FBQUEsR0FBUUMsRUFBRUQsRUFBRSxTQUFhQyxFQUFFLFNBQU4sRUFBYTtBQUFBO0FBQUEsRUFBZ0JBLEVBQUUsQ0FBQyxFQUFFO0FBQUE7QUFBQSxFQUFzQ0EsRUFBRSxLQUFLLElBQUksR0FBRztBQUFBLENBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJQSxDQUFDLENBQUMsU0FBU3lDLEdBQUV0QyxFQUFFLENBQUMsT0FBZ0JBLEVBQUUsUUFBWCxPQUFpQkEsRUFBRSxNQUFNLENBQUNBLEVBQUUsT0FBTyxJQUFJLEdBQUdBLEVBQUUsV0FBVyxJQUFJLEdBQUdBLEVBQUUsVUFBVSxJQUFJLEdBQUdBLEVBQUUsUUFBUSxJQUFJLEdBQUdBLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVN1QyxJQUFHLENBQUMsUUFBUXZDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUVKLEVBQUVJLEVBQUUsT0FBT0gsRUFBRSxFQUFFQSxFQUFFRCxFQUFFQyxHQUFHLEVBQUV5QixFQUFFdEIsRUFBRUgsQ0FBQyxDQUFDLEVBQUUsT0FBT0MsRUFBRSxTQUFTRCxFQUFFQyxFQUFFLENBQUMsUUFBUUMsRUFBRUUsRUFBRSxJQUFJLE1BQU1MLENBQUMsRUFBRU0sRUFBRSxFQUFFQSxFQUFFTixFQUFFTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUVILEVBQUVtQixFQUFFbEIsRUFBRUUsQ0FBQyxFQUFFLEVBQUVMLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxHQUFHLE9BQU8sT0FBT0EsRUFBRUUsRUFBRUMsQ0FBQyxFQUFFSCxFQUFFLE1BQU1ELEVBQUVDLEVBQUUsS0FBSyxDQUFDLE9BQU9tQixFQUFFVixFQUFFVixFQUFFRyxDQUFDLEVBQUVGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTeUMsSUFBRyxDQUFDLElBQUl4QyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFLEdBQU9BLEVBQUUsU0FBTixFQUFhLE1BQU0sSUFBSSxNQUFNLG9DQUFvQyxFQUFFLElBQUlKLEVBQUVJLEVBQUUsSUFBSSxFQUFFLE9BQU95QixHQUFFN0IsQ0FBQyxFQUFFMkMsR0FBRSxNQUFNLEtBQUt2QyxDQUFDLEVBQUUsSUFBSSxTQUFTQSxFQUFFLENBQUMsT0FBT0osRUFBRSxNQUFNLEtBQUtJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTeUMsSUFBRyxDQUFDLElBQUl6QyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFSixFQUFFSSxFQUFFLE9BQU8sR0FBT0osSUFBSixFQUFNLE9BQU84QyxHQUFFLGlCQUFpQixFQUFFLFFBQVE3QyxFQUFFLEVBQUVBLEVBQUVELEVBQUVDLEdBQUcsRUFBRXlCLEVBQUV0QixFQUFFSCxDQUFDLENBQUMsRUFBRSxPQUFPQyxFQUFFLFNBQVNGLEVBQUVDLEVBQUUsQ0FBQyxRQUFRQyxFQUFFQyxFQUFFLEVBQUVBLEVBQUVDLEVBQUUsT0FBT0QsR0FBRyxFQUFFLElBQUlELEVBQUVvQixFQUFFbEIsRUFBRUQsQ0FBQyxFQUFFLEVBQUVILEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxHQUFHLE9BQU8sT0FBT0EsRUFBRSxPQUFPQSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM2QyxHQUFFM0MsRUFBRUosRUFBRSxDQUFDLE9BQU9nRCxHQUFFNUMsRUFBRUosQ0FBQyxFQUFFLEdBQUdpRCxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTRCxHQUFFNUMsRUFBRUosRUFBRSxDQUFDLE9BQU8wQixFQUFFdEIsQ0FBQyxFQUFFc0IsRUFBRTFCLENBQUMsRUFBRTRDLEdBQUV4QyxFQUFFSixFQUFFLEtBQUtJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBU0EsRUFBRUosRUFBRSxDQUFDLE1BQU0sQ0FBQ0ksQ0FBQyxFQUFFLE9BQU9KLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTa0QsR0FBRTlDLEVBQUUsQ0FBQzBCLEVBQUUxQixDQUFDLEVBQUUsSUFBSUosRUFBRSxJQUFJSSxFQUFFLElBQUksT0FBT0YsRUFBRSxTQUFTRCxFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRUQsRUFBRUUsRUFBRSxPQUFPQyxFQUFFSixFQUFFLE1BQU1DLEVBQUVDLENBQUMsRUFBRSxPQUFPRSxJQUFJRCxFQUFFUSxFQUFFVCxFQUFFRSxDQUFDLEVBQUVNLEVBQUVULEVBQUVGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTbUQsR0FBRS9DLEVBQUVKLEVBQUUsRUFBRSxTQUFTSSxFQUFFLENBQUMsR0FBRyxFQUFFQSxhQUFhLFFBQVEsTUFBTSxJQUFJLE1BQU0saUJBQWlCQSxDQUFDLEVBQUUsUUFBUUosRUFBRTBDLEdBQUV0QyxDQUFDLEVBQUVILEVBQUUsRUFBRUEsRUFBRUQsRUFBRSxPQUFPQyxJQUFJLENBQUMsSUFBSUMsRUFBRUYsRUFBRSxPQUFPQyxDQUFDLEVBQUUsR0FBU0MsSUFBTixLQUFlQSxJQUFOLEtBQWVBLElBQU4sS0FBZUEsSUFBTixJQUFRLE1BQU0sSUFBSSxNQUFNLDRCQUE0QkEsRUFBRSxNQUFNRSxDQUFDLENBQUMsQ0FBQyxHQUFFQSxDQUFDLEVBQUUsVUFBVSxRQUFRLEVBQUV3QixHQUFFNUIsQ0FBQyxFQUFFQSxFQUFFLEVBQUUsSUFBSUMsRUFBRSxTQUFTRyxFQUFFLENBQUMsT0FBTyxPQUFPLE9BQU9BLEVBQUUsT0FBTyxJQUFJc0MsR0FBRXRDLENBQUMsQ0FBQyxDQUFDLEVBQUVBLENBQUMsRUFBRUQsRUFBRSxHQUFHQyxFQUFFLE9BQU9GLEVBQUUsU0FBU0UsRUFBRUYsRUFBRSxDQUFDLElBQUlHLEVBQUVKLEVBQUUsS0FBS0csRUFBRSxNQUFNRixDQUFDLENBQUMsRUFBRSxHQUFHRyxFQUFFLENBQUMsR0FBRyxHQUFHTCxHQUFHQSxHQUFHSyxFQUFFLE9BQU8sQ0FBQyxJQUFJQyxFQUFFRCxFQUFFLENBQUMsRUFBRWtCLEdBQUVsQixFQUFFTCxDQUFDLEVBQUUsT0FBT1ksRUFBRVYsRUFBRUksRUFBRSxPQUFPaUIsRUFBQyxDQUFDLENBQUMsT0FBT1osRUFBRVQsRUFBRSwyQkFBMkJHLEVBQUUsT0FBTyxRQUFRRixDQUFDLENBQUMsQ0FBQyxPQUFPUSxFQUFFVCxFQUFFQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzhDLEdBQUU3QyxFQUFFLENBQUMsT0FBT0YsRUFBRSxTQUFTRixFQUFFQyxFQUFFLENBQUMsT0FBT1csRUFBRVgsRUFBRUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMwQyxHQUFFMUMsRUFBRSxDQUFDLE9BQU9GLEVBQUUsU0FBU0YsRUFBRUMsRUFBRSxDQUFDLE9BQU9VLEVBQUVWLEVBQUVHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTZ0QsR0FBRWhELEVBQUUsQ0FBQyxHQUFHZSxFQUFFZixDQUFDLEVBQUUsT0FBT0YsRUFBRSxTQUFTRixFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRUUsRUFBRSxFQUFFSixFQUFFQyxDQUFDLEVBQUUsT0FBT0MsRUFBRSxNQUFNRCxFQUFFQyxFQUFFLE1BQU0sR0FBR0EsQ0FBQyxDQUFDLEVBQUUsR0FBYSxPQUFPRSxHQUFqQixTQUFtQixPQUFPZ0QsR0FBRUYsR0FBRTlDLENBQUMsQ0FBQyxFQUFFLEdBQUdBLGFBQWEsT0FBTyxPQUFPZ0QsR0FBRUQsR0FBRS9DLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxNQUFNLG9DQUFvQ0EsQ0FBQyxDQUFDLENBQUMsU0FBU2lELEdBQUVqRCxFQUFFLENBQUMsT0FBT3NCLEVBQUV0QixDQUFDLEVBQUVGLEVBQUUsU0FBU0YsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUVFLEVBQUUsRUFBRUosRUFBRUMsQ0FBQyxFQUFFRSxFQUFFSCxFQUFFLE1BQU1DLEVBQUVDLEVBQUUsS0FBSyxFQUFFLE9BQU9BLEVBQUUsT0FBT1MsRUFBRVYsRUFBRSxRQUFRRSxFQUFFLEdBQUcsRUFBRVMsRUFBRVgsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBU3FELEdBQUdsRCxFQUFFLENBQUMsT0FBT3lCLEdBQUV6QixDQUFDLEVBQUVGLEVBQUUsU0FBU0YsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUV5QixFQUFFM0IsRUFBRUMsQ0FBQyxFQUFFLE9BQU9BLEVBQUVELEVBQUUsUUFBUUksRUFBRUYsQ0FBQyxFQUFFVSxFQUFFWCxFQUFFLEVBQUVDLENBQUMsRUFBRVMsRUFBRVYsRUFBRSw2QkFBNkJHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTbUQsR0FBR25ELEVBQUVKLEVBQUUsQ0FBQyxVQUFVLE9BQU8sSUFBSUEsRUFBRUksRUFBRUEsRUFBRSxRQUFRLElBQUlILEVBQUVDLEVBQUUsU0FBU0UsRUFBRUYsRUFBRSxDQUFDLE9BQU9ELEVBQUUsRUFBRUQsRUFBRSxFQUFFLEVBQUVDLEVBQUUsRUFBRUcsRUFBRUYsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPRSxFQUFFSCxFQUFFLEtBQUtHLENBQUMsRUFBRUgsQ0FBQyxDQUFDLFNBQVN1RCxJQUFJLENBQUMsT0FBT1YsR0FBRSxvQkFBb0IsQ0FBQyxDQUFDM0MsRUFBRSxNQUFNLFNBQVNDLEVBQUUsQ0FBQyxHQUFhLE9BQU9BLEdBQWpCLFVBQW9CLENBQUNpQixFQUFFakIsQ0FBQyxFQUFFLE1BQU0sSUFBSSxNQUFNLCtEQUErRCxFQUFFLElBQUlKLEVBQUVDLEVBQUUsS0FBSyxLQUFLd0QsRUFBRSxFQUFFLEVBQUVyRCxFQUFFLENBQUMsRUFBRSxPQUFPSixFQUFFQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTUEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxPQUFPLEdBQUcsTUFBTXdCLEVBQUVyQixFQUFFSCxFQUFFLFFBQVEsRUFBRSxTQUFTQSxFQUFFLFFBQVEsRUFBRSxPQUFPdUIsRUFBRXBCLENBQUMsRUFBRUosQ0FBQyxFQUFFRyxFQUFFLFNBQVMsU0FBU0MsRUFBRSxDQUFDLElBQUlKLEVBQUUsS0FBSyxNQUFNSSxDQUFDLEVBQUUsR0FBR0osRUFBRSxPQUFPLE9BQU9BLEVBQUUsTUFBTSxJQUFJQyxFQUFFd0MsR0FBRXJDLEVBQUVKLENBQUMsRUFBRUUsRUFBRSxJQUFJLE1BQU1ELENBQUMsRUFBRSxNQUFNQyxFQUFFLEtBQUssaUJBQWlCQSxFQUFFLE9BQU9GLEVBQUVFLENBQUMsRUFBRUMsRUFBRSxPQUFPLFNBQVNDLEVBQUVKLEVBQUUsQ0FBQyxPQUFPLEtBQUssTUFBTSxTQUFTQyxFQUFFLENBQUMsT0FBT0csRUFBRUgsQ0FBQyxFQUFFZ0QsR0FBRWhELENBQUMsRUFBRTZDLEdBQUU5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVHLEVBQUUsR0FBRyxTQUFTQyxFQUFFLENBQUMsT0FBT3lDLEdBQUUsS0FBS3pDLENBQUMsQ0FBQyxFQUFFRCxFQUFFLEtBQUssU0FBU0MsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLQSxFQUFFQSxDQUFDLENBQUMsRUFBRUQsRUFBRSxLQUFLLFNBQVNDLEVBQUVKLEVBQUUsQ0FBQyxPQUFPNEMsR0FBRXhDLEVBQUUsS0FBS0osRUFBRSxTQUFTSSxFQUFFSixFQUFFLENBQUMsT0FBT0EsQ0FBQyxDQUFDLENBQUMsRUFBRUcsRUFBRSxLQUFLLFNBQVNDLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLElBQUksQ0FBQyxFQUFFRCxFQUFFLEtBQUssU0FBU0MsRUFBRSxDQUFDLE9BQU9zQixFQUFFdEIsQ0FBQyxFQUFFdUMsR0FBRSxLQUFLdkMsQ0FBQyxFQUFFLElBQUksU0FBU0EsRUFBRSxDQUFDLE9BQU9BLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFRCxFQUFFLEtBQUssVUFBVSxDQUFDLElBQUlDLEVBQUUsS0FBSyxPQUFPRixFQUFFLFNBQVNGLEVBQUVDLEVBQUUsQ0FBQyxRQUFRQyxFQUFFLENBQUMsRUFBRUMsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFQSxFQUFFbUIsRUFBRWxCLEVBQUUsRUFBRUosRUFBRUMsQ0FBQyxFQUFFRSxDQUFDLEdBQUcsT0FBTyxPQUFPbUIsRUFBRVYsRUFBRVgsRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR0YsSUFBSUUsRUFBRSxNQUFNLE1BQU0sSUFBSSxNQUFNLGdJQUFnSSxFQUFFRixFQUFFRSxFQUFFLE1BQU1ELEVBQUUsS0FBS0MsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsRUFBRSxRQUFRLFNBQVNDLEVBQUUsQ0FBQyxPQUFPMEIsRUFBRTFCLENBQUMsRUFBRSxLQUFLLElBQUksU0FBU0osRUFBRSxDQUFDLEdBQUcsU0FBU0ksRUFBRSxDQUFDLEdBQUcsQ0FBQ2dCLEVBQUVoQixDQUFDLEVBQUUsTUFBTSxJQUFJLE1BQU0saUJBQWlCQSxDQUFDLENBQUMsRUFBRUosQ0FBQyxFQUFFQSxFQUFFLE9BQU8sQ0FBQzhCLEVBQUU5QixFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVFDLEVBQUVELEVBQUUsQ0FBQyxFQUFFRSxFQUFFLEVBQUVBLEVBQUVGLEVBQUUsT0FBT0UsSUFBSTRCLEVBQUU5QixFQUFFRSxDQUFDLENBQUMsRUFBRUQsR0FBR0csRUFBRUosRUFBRUUsQ0FBQyxFQUFFLE9BQU9ELENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUVFLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDLEVBQUVBLEVBQUUsTUFBTSxTQUFTQyxFQUFFSixFQUFFLENBQUMsSUFBSUMsRUFBRSxLQUFLLE9BQU8sVUFBVSxPQUFPLElBQUlELEVBQUVJLEdBQUd3QixHQUFFeEIsQ0FBQyxFQUFFd0IsR0FBRTVCLENBQUMsRUFBRUUsRUFBRSxTQUFTQSxFQUFFQyxFQUFFLENBQUMsUUFBUUUsRUFBRSxDQUFDLEVBQUVDLEVBQUUsT0FBT2lCLEVBQUUsT0FBT2hCLEdBQUUsRUFBRUEsR0FBRUgsRUFBRUcsSUFBRyxFQUFFLENBQUMsR0FBR2dCLEVBQUVELEVBQUVoQixFQUFFTCxFQUFFLEVBQUVDLEVBQUVDLENBQUMsRUFBRW9CLENBQUMsRUFBRSxDQUFDakIsRUFBRSxPQUFPLE9BQU9pQixFQUFFcEIsRUFBRUcsRUFBRSxNQUFNRCxFQUFFLEtBQUtDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBS0MsR0FBRVAsSUFBSXVCLEVBQUVELEVBQUVoQixFQUFFTCxFQUFFLEVBQUVDLEVBQUVDLENBQUMsRUFBRW9CLENBQUMsRUFBRWpCLEVBQUUsUUFBUUMsSUFBRyxFQUFFSixFQUFFRyxFQUFFLE1BQU1ELEVBQUUsS0FBS0MsRUFBRSxLQUFLLEVBQUUsT0FBT2dCLEVBQUVWLEVBQUVULEVBQUVFLENBQUMsRUFBRWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRXBCLEVBQUUsT0FBTyxTQUFTQyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksVUFBVSxDQUFDLE9BQU9BLENBQUMsQ0FBQyxDQUFDLEVBQUVELEVBQUUsT0FBTyxTQUFTQyxFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRUEsQ0FBQyxDQUFDLEVBQUVELEVBQUUsUUFBUSxTQUFTQyxFQUFFLENBQUMsT0FBT3dDLEdBQUUsS0FBSyxNQUFNeEMsQ0FBQyxFQUFFLEtBQUssS0FBSyxFQUFFLFNBQVNBLEVBQUVKLEVBQUUsQ0FBQyxPQUFPSSxFQUFFLE9BQU9KLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUcsRUFBRSxJQUFJLFNBQVNDLEVBQUUsQ0FBQ3lCLEdBQUV6QixDQUFDLEVBQUUsSUFBSUosRUFBRSxLQUFLLE9BQU9FLEVBQUUsU0FBU0QsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUVILEVBQUUsRUFBRUMsRUFBRUMsQ0FBQyxFQUFFLE9BQU9DLEVBQUUsT0FBT21CLEVBQUVWLEVBQUVULEVBQUUsTUFBTUMsRUFBRUQsRUFBRSxLQUFLLENBQUMsRUFBRUEsQ0FBQyxFQUFFQSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxFQUFFLFVBQVUsU0FBU0MsRUFBRSxDQUFDeUIsR0FBRXpCLENBQUMsRUFBRSxJQUFJSixFQUFFLEtBQUssT0FBT0UsRUFBRSxTQUFTRCxFQUFFQyxFQUFFLENBQUMsSUFBSUMsRUFBRUgsRUFBRSxNQUFNSSxFQUFFSCxFQUFFLE1BQU1DLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBT0MsRUFBRSxPQUFPUyxFQUFFVixFQUFFRCxFQUFFLE9BQU9FLEVBQUUsS0FBSyxFQUFFQSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxFQUFFLE9BQU8sU0FBU0MsRUFBRUosRUFBRSxDQUFDLE9BQU82QixHQUFFekIsQ0FBQyxFQUFFeUIsR0FBRTdCLENBQUMsRUFBRSxLQUFLLFVBQVVJLENBQUMsRUFBRSxJQUFJSixDQUFDLENBQUMsRUFBRUcsRUFBRSxLQUFLLFNBQVNDLEVBQUUsQ0FBQyxPQUFPdUMsR0FBRSxLQUFLdkMsQ0FBQyxFQUFFLElBQUksU0FBU0EsRUFBRSxDQUFDLE9BQU9BLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFRCxFQUFFLEtBQUssVUFBVSxDQUFDLE9BQU95QyxHQUFFYyxHQUFHLEtBQUtBLEdBQUcsU0FBU3RELEVBQUVKLEVBQUVDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTUcsRUFBRSxNQUFNSixFQUFFLElBQUlDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUUsRUFBRSxLQUFLLFNBQVNDLEVBQUUsQ0FBQyxPQUFPd0MsR0FBRWMsR0FBRyxLQUFLQSxHQUFHLFNBQVMxRCxFQUFFQyxFQUFFQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUtFLEVBQUUsTUFBTUgsRUFBRSxNQUFNRCxFQUFFLElBQUlFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUMsRUFBRSxNQUFNLFNBQVNDLEVBQUUsQ0FBQyxPQUFPMkMsR0FBRSxLQUFLM0MsQ0FBQyxDQUFDLEVBQUVELEVBQUUsT0FBTyxTQUFTQyxFQUFFLENBQUMsT0FBTzRDLEdBQUUsS0FBSzVDLENBQUMsQ0FBQyxFQUFFRCxFQUFFLFVBQVUsU0FBU0MsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLZ0QsR0FBRWhELENBQUMsQ0FBQyxDQUFDLEVBQUVELEVBQUUsY0FBYyxTQUFTQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUtpRCxHQUFFakQsQ0FBQyxDQUFDLENBQUMsRUFBRUQsRUFBRSxLQUFLLFNBQVNDLEVBQUUsQ0FBQ2dCLEVBQUVoQixDQUFDLElBQUlBLEVBQUUsQ0FBQ0EsQ0FBQyxHQUFHLElBQUlKLEVBQUUsS0FBSyxPQUFPRSxFQUFFLFNBQVNELEVBQUVDLEVBQUUsQ0FBQyxJQUFJQyxFQUFFSCxFQUFFLEVBQUVDLEVBQUVDLENBQUMsRUFBRSxPQUFPQyxFQUFFLFNBQVNBLEVBQUUsU0FBU0MsR0FBR0QsQ0FBQyxDQUFDLENBQUMsRUFBRUEsRUFBRSxTQUFTLFNBQVNDLEVBQUUsQ0FBQyxPQUFPLEtBQUssR0FBRzZDLEdBQUU3QyxDQUFDLENBQUMsQ0FBQyxFQUFFRCxFQUFFLEdBQUcsU0FBU0MsRUFBRSxDQUFDLE9BQU93QyxHQUFFeEMsRUFBRSxLQUFLLFNBQVNBLEVBQUVKLEVBQUUsQ0FBQyxPQUFPSSxFQUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVHLEVBQUUsTUFBTSxTQUFTQyxFQUFFLENBQUMsSUFBSUosRUFBRSxLQUFLLE9BQU9FLEVBQUUsU0FBU0QsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUVILEVBQUUsRUFBRUMsRUFBRUMsQ0FBQyxFQUFFLE9BQU9DLEVBQUUsT0FBT21CLEVBQUVsQixFQUFFRCxFQUFFLEtBQUssRUFBRSxFQUFFRixFQUFFRSxFQUFFLEtBQUssRUFBRUEsQ0FBQyxFQUFFQSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxFQUFFLE9BQU9BLEVBQUUsR0FBR0EsRUFBRSxNQUFNcUQsR0FBR3JELEVBQUUsR0FBRzhDLEdBQUU5QyxFQUFFLGlCQUFpQixFQUFFQSxFQUFFLEdBQUdBLEVBQUUsb0JBQW9CLEVBQUVBLEVBQUUsTUFBTUEsRUFBRSxxQkFBcUIsRUFBRUEsRUFBRSxPQUFPQSxFQUFFLG9CQUFvQixFQUFFQSxFQUFFLE1BQU1BLEVBQUUsaUJBQWlCLEVBQUVBLEVBQUUsR0FBR0EsRUFBRSxrQkFBa0IsRUFBRUEsRUFBRSxJQUFJLElBQUl1RCxHQUFHeEQsRUFBRSxTQUFTRSxFQUFFSixFQUFFLENBQUMsT0FBT1ksRUFBRVosRUFBRXlCLEVBQUVyQixFQUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUyRCxHQUFHekQsRUFBRSxTQUFTRSxFQUFFSixFQUFFLENBQUMsT0FBT0EsR0FBR0ksRUFBRSxPQUFPTyxFQUFFWCxFQUFFLG9CQUFvQixFQUFFWSxFQUFFWixFQUFFLEVBQUUyQixFQUFFdkIsRUFBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFNEQsR0FBRzFELEVBQUUsU0FBU0UsRUFBRUosRUFBRSxDQUFDLE9BQU9ZLEVBQUVSLEVBQUUsT0FBT0EsRUFBRSxNQUFNSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUV5RCxHQUFHdkQsRUFBRSxTQUFTRSxFQUFFSixFQUFFLENBQUMsT0FBT0EsRUFBRUksRUFBRSxPQUFPTyxFQUFFWCxFQUFFLEtBQUssRUFBRVksRUFBRVosRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFNkQsR0FBR1YsR0FBRSxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQUVXLEdBQUdYLEdBQUUsUUFBUSxFQUFFLEtBQUssaUJBQWlCLEVBQUVZLEdBQUdaLEdBQUUsUUFBUSxFQUFFLEtBQUssVUFBVSxFQUFFYSxHQUFHYixHQUFFLFNBQVMsRUFBRSxLQUFLLGtCQUFrQixFQUFFYyxHQUFHZCxHQUFFLEtBQUssRUFBRSxLQUFLLHFCQUFxQixFQUFFZSxHQUFHZixHQUFFLEtBQUssRUFBRSxLQUFLLFlBQVksRUFBRWdCLEdBQUdqQixHQUFFLElBQUksRUFBRWtCLEdBQUdsQixHQUFFO0FBQUEsQ0FBSSxFQUFFbUIsR0FBR25CLEdBQUU7QUFBQSxDQUFNLEVBQUVvQixHQUFHekIsR0FBRXdCLEdBQUdELEdBQUdELEVBQUUsRUFBRSxLQUFLLFNBQVMsRUFBRUksR0FBRzFCLEdBQUV5QixHQUFHYixFQUFFLEVBQUV2RCxFQUFFLElBQUkwRCxHQUFHMUQsRUFBRSxJQUFJMkMsR0FBRTNDLEVBQUUsSUFBSXlELEdBQUd6RCxFQUFFLEdBQUdpRSxHQUFHakUsRUFBRSxlQUFlLFNBQVNFLEVBQUUsQ0FBQyxJQUFJSixFQUFFLENBQUMsRUFBRSxRQUFRQyxLQUFLRyxHQUFHLENBQUMsR0FBRyxlQUFlLEtBQUtBLEVBQUVILENBQUMsR0FBRyxTQUFTQSxFQUFFLENBQUNELEVBQUVDLENBQUMsRUFBRXNELEdBQUcsVUFBVSxDQUFDLE9BQU9uRCxFQUFFSCxDQUFDLEVBQUVELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLE9BQU9ELENBQUMsRUFBRUUsRUFBRSxLQUFLbUUsR0FBR25FLEVBQUUsT0FBTyxTQUFTRSxFQUFFLENBQUMsT0FBT0YsRUFBRUUsRUFBRVEsRUFBRUQsQ0FBQyxDQUFDLENBQUMsRUFBRVQsRUFBRSxNQUFNMkQsR0FBRzNELEVBQUUsT0FBTzRELEdBQUc1RCxFQUFFLE1BQU1zRCxHQUFHdEQsRUFBRSxJQUFJcUUsR0FBR3JFLEVBQUUsSUFBSXVELEdBQUd2RCxFQUFFLEtBQUs0QyxHQUFFNUMsRUFBRSxZQUFZdUMsR0FBRXZDLEVBQUUsTUFBTXdELEdBQUd4RCxFQUFFLFNBQVNpQixFQUFFakIsRUFBRSxLQUFLcUQsR0FBR3JELEVBQUUsT0FBTzZELEdBQUc3RCxFQUFFLFFBQVE4RCxHQUFHOUQsRUFBRSxHQUFHa0UsR0FBR2xFLEVBQUUsVUFBVWtELEdBQUVsRCxFQUFFLFlBQVlTLEVBQUVULEVBQUUsWUFBWVUsRUFBRVYsRUFBRSxRQUFRb0UsR0FBR3BFLEVBQUUsT0FBTyxTQUFTRSxFQUFFLENBQUMsT0FBT2tELEdBQUcsU0FBU3RELEVBQUUsQ0FBQyxPQUFPSSxFQUFFLFFBQVFKLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVlJLEVBQUUsR0FBRyxDQUFDLEVBQUVGLEVBQUUsY0FBY21ELEdBQUVuRCxFQUFFLEdBQUcrQyxHQUFFL0MsRUFBRSxNQUFNLFNBQVNFLEVBQUUsQ0FBQyxRQUFRSixFQUFFSSxFQUFFLE1BQU0sRUFBRSxFQUFFSCxFQUFFLEVBQUVBLEVBQUVELEVBQUUsT0FBT0MsSUFBSUQsRUFBRUMsQ0FBQyxFQUFFLElBQUlELEVBQUVDLENBQUMsRUFBRSxJQUFJLE9BQU9xRCxHQUFHLFNBQVN0RCxFQUFFLENBQUMsT0FBT0ksRUFBRSxRQUFRSixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBS0EsQ0FBQyxDQUFDLEVBQUVFLEVBQUUsY0FBYytELEdBQUcvRCxFQUFFLE9BQU9BLEVBQUVBLEVBQUUsTUFBTSxTQUFTRSxFQUFFSixFQUFFLENBQUMsT0FBT3NELEdBQUcsU0FBU3JELEVBQUUsQ0FBQyxPQUFPRyxHQUFHSCxHQUFHQSxHQUFHRCxDQUFDLENBQUMsRUFBRSxLQUFLSSxFQUFFLElBQUlKLENBQUMsQ0FBQyxFQUFFRSxFQUFFLE1BQU1pRCxHQUFFakQsRUFBRSxPQUFPaUQsR0FBRWpELEVBQUUsTUFBTTZDLEdBQUU3QyxFQUFFLE9BQU84QyxHQUFFOUMsRUFBRSxJQUFJeUMsR0FBRXpDLEVBQUUsT0FBTzBDLEdBQUUxQyxFQUFFLE9BQU8sVUFBVSxDQUFDLFFBQVFFLEVBQUVKLEVBQUUsQ0FBQyxFQUFFQyxFQUFFLEVBQUVFLEdBQUdDLEVBQUUsVUFBVSxNQUFNLFVBQVUsTUFBTSxLQUFLQSxDQUFDLEdBQUdDLEVBQUVGLEVBQUUsT0FBT0csRUFBRSxFQUFFQSxFQUFFRCxFQUFFQyxHQUFHLEVBQUUsQ0FBQyxJQUFJaUIsRUFBRXBCLEVBQUVHLENBQUMsRUFBRSxHQUFHLENBQUNhLEVBQUVJLENBQUMsRUFBRSxDQUFDLEdBQUdILEVBQUVHLENBQUMsR0FBT0EsRUFBRSxTQUFOLEdBQXdCLE9BQU9BLEVBQUUsQ0FBQyxHQUFwQixVQUF1QkosRUFBRUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUloQixFQUFFZ0IsRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLFVBQVUsZUFBZSxLQUFLdkIsRUFBRU8sQ0FBQyxFQUFFLE1BQU0sSUFBSSxNQUFNLHlCQUF5QkEsQ0FBQyxFQUFFUCxFQUFFTyxDQUFDLEVBQUUsR0FBR04sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLE1BQU0sbUVBQW1FLENBQUMsQ0FBQyxDQUFDLEdBQU9BLElBQUosRUFBTSxNQUFNLElBQUksTUFBTSxzREFBc0QsRUFBRSxPQUFPQyxFQUFFLFNBQVNFLEdBQUVKLEdBQUUsQ0FBQyxRQUFRQyxHQUFFQyxHQUFFLENBQUMsRUFBRUksR0FBRSxFQUFFQSxHQUFFRCxFQUFFQyxJQUFHLEVBQUUsQ0FBQyxJQUFJaUIsR0FBRWhCLEdBQUUsR0FBR2EsRUFBRWpCLEVBQUVHLEVBQUMsQ0FBQyxHQUFHaUIsR0FBRXBCLEVBQUVHLEVBQUMsRUFBRSxDQUFDLEVBQUVDLEdBQUVKLEVBQUVHLEVBQUMsRUFBRSxDQUFDLElBQUlpQixHQUFFLEtBQUtoQixHQUFFSixFQUFFRyxFQUFDLEdBQUcsRUFBRUwsR0FBRXFCLEVBQUVmLEdBQUUsRUFBRUgsR0FBRUosRUFBQyxFQUFFQyxFQUFDLEdBQUcsT0FBTyxPQUFPQSxHQUFFc0IsS0FBSXJCLEdBQUVxQixFQUFDLEVBQUV0QixHQUFFLE9BQU9ELEdBQUVDLEdBQUUsS0FBSyxDQUFDLE9BQU9xQixFQUFFVixFQUFFWixHQUFFRSxFQUFDLEVBQUVELEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUMsRUFBRSxPQUFPZ0QsR0FBRWhELEVBQUUsUUFBUStDLEdBQUUvQyxFQUFFLFVBQVUsU0FBU0UsRUFBRSxDQUFDLE9BQU95QixHQUFFekIsQ0FBQyxFQUFFRixFQUFFLFNBQVNGLEVBQUVDLEVBQUUsQ0FBQyxRQUFRQyxFQUFFRCxFQUFFQyxFQUFFRixFQUFFLFFBQVFJLEVBQUV1QixFQUFFM0IsRUFBRUUsQ0FBQyxDQUFDLEdBQUdBLElBQUksT0FBT1UsRUFBRVYsRUFBRUYsRUFBRSxNQUFNQyxFQUFFQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUEsRUFBRSxLQUFLb0QsR0FBR3BELEVBQUUsV0FBV2dFLEdBQUdoRSxFQUFFLG9CQUFvQixFQUFFc0QsR0FBR3RELEVBQUUsaUJBQWlCLEVBQUUrQyxHQUFFL0MsRUFBRSxPQUFPLENBQUMsT0FBT1EsRUFBRSxVQUFVLFNBQVNOLEVBQUUsQ0FBQ0ssRUFBRSxFQUFFLElBQUlULEVBQUUsQ0FBQyxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRSxTQUFTRSxFQUFFLENBQUMsR0FBR2dCLEVBQUVoQixDQUFDLEVBQUUsQ0FBQyxJQUFJRixFQUFFRSxFQUFFLEdBQU9GLEVBQUUsU0FBTixFQUFhLE1BQU0sSUFBSSxNQUFNLElBQUlBLEVBQUUsS0FBSyxJQUFJLEVBQUUsb0NBQW9DQSxFQUFFLE1BQU0sRUFBRSxHQUFHNEIsRUFBRTVCLEVBQUUsQ0FBQyxDQUFDLEVBQUUwQixHQUFFMUIsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLFVBQVUsZUFBZSxLQUFLRixFQUFFRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxNQUFNLCtCQUErQkEsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPRixFQUFFRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUdELElBQUlDLENBQUMsQ0FBQyxPQUFPMEIsR0FBRXhCLENBQUMsRUFBRSxDQUFDLEtBQUtBLENBQUMsQ0FBQyxFQUFFQSxDQUFDLEVBQUUsR0FBR0gsRUFBRSxFQUFFLE1BQU0sSUFBSSxNQUFNLG1EQUFtREcsRUFBRSxLQUFLLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSUQsRUFBRSxFQUFFLFNBQVNDLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLENBQUMsQ0FBQyxFQUFFRixDQUFDLEVBQUUsT0FBT1EsRUFBRSxFQUFFLFNBQVNOLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLENBQUMsQ0FBQyxFQUFFRixDQUFDLENBQUMsRUFBRSxJQUFJLFNBQVNFLEVBQUUsQ0FBQyxPQUFPRSxFQUFFLFNBQVNGLEVBQUVKLEVBQUUsQ0FBQyxPQUFjQSxFQUFFLENBQUMsSUFBVixPQUFjSSxFQUFFSixFQUFFLENBQUMsQ0FBQyxFQUFFQSxFQUFFLENBQUMsR0FBR0ksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVNKLEVBQUVDLEVBQUUsQ0FBQyxNQUFNLENBQUNELEVBQUVJLEVBQUVILENBQUMsQ0FBQyxDQUFDLEVBQUVFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBU0MsRUFBRSxDQUFDLEdBQUdLLEVBQUUsRUFBRW1CLEdBQUV4QixDQUFDLEVBQUVBLEVBQUUsSUFBSSxNQUFNLElBQUksTUFBTSx3Q0FBd0NBLEVBQUUsTUFBTUEsRUFBRSxTQUFTLEVBQUUsRUFBRSwwQ0FBMEMsRUFBRSxJQUFJSixHQUFHSSxFQUFFLEdBQUcsS0FBSyxPQUFPQSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU9GLEVBQUUsU0FBU0QsRUFBRUMsRUFBRSxDQUFDLElBQUlDLEVBQUV3QixFQUFFMUIsRUFBRUMsQ0FBQyxFQUFFLE9BQU9DLElBQUlDLEVBQUVRLEVBQUVWLEVBQUUsRUFBRUMsQ0FBQyxFQUFFUSxFQUFFVCxFQUFFRixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxTQUFTSSxFQUFFLENBQUMsT0FBT1MsRUFBRSxTQUFTVCxDQUFDLEVBQUUsSUFBSSxTQUFTQSxFQUFFLENBQUMsT0FBTyxPQUFPLEtBQUtBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLFNBQVNBLEVBQUVKLEVBQUUsQ0FBQyxPQUFPYSxFQUFFLFNBQVNiLENBQUMsRUFBRSxJQUFJLFNBQVNBLEVBQUUsQ0FBQyxPQUFPQSxFQUFFLFNBQVNJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPVyxFQUFFLFFBQVFBLEVBQUUsQ0FBQyxFQUFFLFNBQVNBLEVBQUUsQ0FBQyxFQUFFLFNBQVNBLEVBQUUsQ0FBQyxFQUFFLE9BQU9DLEVBQUUsUUFBUUEsRUFBRSxDQUFDLEVBQUUsU0FBU0EsRUFBRSxDQUFDLEVBQUUsU0FBU0EsRUFBRSxDQUFDLEVBQUUsTUFBTUMsRUFBRSxPQUFPQSxFQUFFLENBQUMsRUFBRSxR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RSxDQUFDLEVBRXJDLE1BQU9BLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBQ3hDLE9BQVFBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBQ3pDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBQ3JDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE9BQVEsQ0FBRSxDQUFDLEVBRXRDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3RDLE1BQU9BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3ZDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3BDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBRW5DLElBQUtBLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBQ3BDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLEtBQU0sQ0FBRSxDQUFDLEVBRWxDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3RDLE1BQU9BLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3ZDLEdBQUlBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3BDLElBQUtBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBQ3JDLEVBQUdBLEVBQVMsV0FBVyxDQUFFLE1BQU8sQ0FBRSxDQUFDLEVBRW5DLE9BQVFBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQzFDLFFBQVNBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQzNDLElBQUtBLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQ3ZDLEtBQU1BLEVBQVMsV0FBVyxDQUFFLFFBQVMsQ0FBRSxDQUFDLEVBQ3hDLEVBQUdB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QVEsTUFBT0EsRUFBUSxJQUFJLEVBRXZGLFlBQVksQ0FDUixLQUFNLFNBQ04sT0FBUUcsQ0FDWixDQUF1QixDQUMzQixNQUNJLFlBQVksQ0FBRSxPQUFRLDRCQUE2QixDQUFDLENBRTVELE9BQVNFLEVBQU8sQ0FDWixRQUFRLE1BQU0sb0NBQW9DTixFQUFNLEtBQUssSUFBSSxLQUFLTSxDQUFLLEVBQUUsRUFDN0UsWUFBWSxDQUFFLE9BQVFBLEVBQU0sT0FBUSxDQUFDLENBQ3pDLENBQ0oiLAogICJuYW1lcyI6IFsicmVxdWlyZV9wYXJzaW1tb25fdW1kX21pbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInQiLCAiciIsICJlIiwgInUiLCAibiIsICJvIiwgImkiLCAiZiIsICJjIiwgInMiLCAibCIsICJ4IiwgImIiLCAiaCIsICJwIiwgImQiLCAidiIsICJnIiwgIm0iLCAieSIsICJFIiwgInciLCAiQiIsICJhIiwgImoiLCAiUyIsICJfIiwgIkwiLCAiTyIsICJrIiwgIlAiLCAicSIsICJBIiwgIkkiLCAiRiIsICJNIiwgInoiLCAiUiIsICJVIiwgIlciLCAiRCIsICJOIiwgIkciLCAiQyIsICJKIiwgIlQiLCAiWSIsICJWIiwgIkgiLCAiWCIsICJLIiwgIlEiLCAiWiIsICIkIiwgIm5uIiwgInRuIiwgInJuIiwgImFuIiwgImVuIiwgInVuIiwgIm9uIiwgImZuIiwgImNuIiwgInNuIiwgImxuIiwgImhuIiwgInBuIiwgImRuIiwgInZuIiwgImduIiwgIm1uIiwgInluIiwgInJlcXVpcmVfYl90cmVlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJfX2V4dGVuZHMiLCAiZXh0ZW5kU3RhdGljcyIsICJkIiwgImIiLCAicCIsICJfXyIsICJkZWZhdWx0Q29tcGFyYXRvciIsICJhIiwgInRhIiwgInRiIiwgInNpbXBsZUNvbXBhcmF0b3IiLCAiQlRyZWUiLCAiZW50cmllcyIsICJjb21wYXJlIiwgIm1heE5vZGVTaXplIiwgIkVtcHR5TGVhZiIsICJjYWxsYmFjayIsICJ0aGlzQXJnIiwgIl90aGlzIiwgImsiLCAidiIsICJpbml0aWFsQ291bnRlciIsICJsb3ciLCAiaGlnaCIsICJrZXkiLCAiZGVmYXVsdFZhbHVlIiwgInZhbHVlIiwgIm92ZXJ3cml0ZSIsICJyZXN1bHQiLCAiQk5vZGVJbnRlcm5hbCIsICJEZWxldGVSYW5nZSIsICJudSIsICJwYWlycyIsICJrZXlzIiwgInJldHVyblRoaXNJZlVuY2hhbmdlZCIsICJjaGFuZ2VkIiwgImluY2x1ZGVIaWdoIiwgImRlbCIsICJpIiwgIkRlbGV0ZSIsICJ0bXAiLCAiaW5pdGlhbFZhbHVlIiwgIml0IiwgIlJldXNlZEFycmF5IiwgIm5leHQiLCAibG93ZXN0S2V5IiwgInJldXNlZEFycmF5IiwgImluZm8iLCAiaXRlcmF0b3IiLCAibm9kZXF1ZXVlIiwgIm5vZGVpbmRleCIsICJsZWFmIiwgInN0YXRlIiwgImp1bXAiLCAibGV2ZWwiLCAiaGlnaGVzdEtleSIsICJza2lwSGlnaGVzdCIsICJfYSIsICJjaGVjayIsICJuZXh0bm9kZSIsICJFbXB0eUFycmF5IiwgIm90aGVyIiwgIm9ubHlUaGlzIiwgIm9ubHlPdGhlciIsICJkaWZmZXJlbnQiLCAiX2NvbXBhcmUiLCAidGhpc0N1cnNvciIsICJvdGhlckN1cnNvciIsICJ0aGlzU3VjY2VzcyIsICJvdGhlclN1Y2Nlc3MiLCAicHJldkN1cnNvck9yZGVyIiwgImN1cnNvck9yZGVyIiwgInRoaXNMZWFmIiwgInRoaXNJbnRlcm5hbFNwaW5lIiwgInRoaXNMZXZlbEluZGljZXMiLCAib3RoZXJMZWFmIiwgIm90aGVySW50ZXJuYWxTcGluZSIsICJvdGhlckxldmVsSW5kaWNlcyIsICJ2YWxUaGlzIiwgInZhbE90aGVyIiwgIm90aGVyVmFsIiwgImxhc3RUaGlzIiwgImxhc3RPdGhlciIsICJub2RlVGhpcyIsICJub2RlT3RoZXIiLCAiY3Vyc29yIiwgImN1cnNvckZpbmlzaGVkIiwgImNvbXBhcmVLZXlzIiwgImNvbXBhcmVkIiwgImNhblN0ZXAiLCAibGV2ZWxJbmRpY2VzIiwgImN1cnJlbnRLZXkiLCAidHJlZSIsICJfcm9vdCIsICJoZWlnaHQiLCAic3RlcFRvTm9kZSIsICJpbnRlcm5hbFNwaW5lIiwgImxldmVsc0xlbmd0aCIsICJzcGluZUxlbmd0aCIsICJub2RlTGV2ZWxJbmRleCIsICJsZXZlbEluZGV4V2Fsa0JhY2siLCAidmFsdWVJbmRleCIsICJuZXh0TGV2ZWwiLCAiY3VycmVudExldmVsIiwgIm5vZGUiLCAiY2hpbGRyZW4iLCAiY2hpbGRJbmRleCIsICJjdXJzb3JBIiwgImN1cnNvckIiLCAiaGVpZ2h0QSIsICJjdXJyZW50S2V5QSIsICJsZXZlbEluZGljZXNBIiwgImhlaWdodEIiLCAiY3VycmVudEtleUIiLCAibGV2ZWxJbmRpY2VzQiIsICJrZXlDb21wYXJpc29uIiwgImhlaWdodE1pbiIsICJkZXB0aEFOb3JtYWxpemVkIiwgImRlcHRoQk5vcm1hbGl6ZWQiLCAiZmlyc3RLZXkiLCAibiIsICJmb3JjZSIsICJtYXhMZW5ndGgiLCAibWluIiwgIm1heCIsICJyZXN1bHRzIiwgIkJyZWFrIiwgImFkZGVkIiwgIm9uRm91bmQiLCAiciIsICJyb290IiwgImlzU2hhcmVkIiwgInQiLCAic2l6ZSIsICJhc1NldCIsICJidHJlZSIsICJCTm9kZSIsICJ2YWx1ZXMiLCAidW5kZWZWYWxzIiwgImZhaWxYb3IiLCAiY21wIiwgImxvIiwgImhpIiwgIm1pZCIsICJjIiwgImxhc3RJbmRleCIsICJpbmNsdXNpdmUiLCAiaW5kZXhPckxvd2VyIiwgImRlcHRoIiwgImJhc2VJbmRleCIsICJrTCIsICJ2TCIsICJuZXdSaWdodFNpYmxpbmciLCAidGFyZ2V0IiwgInJocyIsICJsaHMiLCAiaGFsZiIsICJlZGl0TW9kZSIsICJjb3VudCIsICJpTG93IiwgImlIaWdoIiwgIl8iLCAiX3N1cGVyIiwgImxlbmd0aCIsICJjTCIsICJjaGlsZFNpemUiLCAidG9vZmV3IiwgImNoaWxkIiwgIm1heFNpemUiLCAib2xkTGVuZ3RoIiwgInJoc0NoaWxkcmVuIiwgImZhY3QiLCAiYXJncyIsICJfaSIsICJMdXhvbkVycm9yIiwgIkludmFsaWREYXRlVGltZUVycm9yIiwgInJlYXNvbiIsICJJbnZhbGlkSW50ZXJ2YWxFcnJvciIsICJJbnZhbGlkRHVyYXRpb25FcnJvciIsICJDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciIsICJJbnZhbGlkVW5pdEVycm9yIiwgInVuaXQiLCAiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCAiWm9uZUlzQWJzdHJhY3RFcnJvciIsICJuIiwgInMiLCAibCIsICJEQVRFX1NIT1JUIiwgIkRBVEVfTUVEIiwgIkRBVEVfTUVEX1dJVEhfV0VFS0RBWSIsICJEQVRFX0ZVTEwiLCAiREFURV9IVUdFIiwgIlRJTUVfU0lNUExFIiwgIlRJTUVfV0lUSF9TRUNPTkRTIiwgIlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQiLCAiVElNRV9XSVRIX0xPTkdfT0ZGU0VUIiwgIlRJTUVfMjRfU0lNUExFIiwgIlRJTUVfMjRfV0lUSF9TRUNPTkRTIiwgIlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQiLCAiVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUIiwgIkRBVEVUSU1FX1NIT1JUIiwgIkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9NRUQiLCAiREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZIiwgIkRBVEVUSU1FX0ZVTEwiLCAiREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMiLCAiREFURVRJTUVfSFVHRSIsICJEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyIsICJpc1VuZGVmaW5lZCIsICJvIiwgImlzTnVtYmVyIiwgImlzSW50ZWdlciIsICJpc1N0cmluZyIsICJpc0RhdGUiLCAiaGFzUmVsYXRpdmUiLCAiZSIsICJtYXliZUFycmF5IiwgInRoaW5nIiwgImJlc3RCeSIsICJhcnIiLCAiYnkiLCAiY29tcGFyZSIsICJiZXN0IiwgIm5leHQiLCAicGFpciIsICJwaWNrIiwgIm9iaiIsICJrZXlzIiwgImEiLCAiayIsICJoYXNPd25Qcm9wZXJ0eSIsICJwcm9wIiwgImludGVnZXJCZXR3ZWVuIiwgImJvdHRvbSIsICJ0b3AiLCAiZmxvb3JNb2QiLCAieCIsICJuIiwgInBhZFN0YXJ0IiwgImlucHV0IiwgImlzTmVnIiwgInBhZGRlZCIsICJwYXJzZUludGVnZXIiLCAic3RyaW5nIiwgInBhcnNlRmxvYXRpbmciLCAicGFyc2VNaWxsaXMiLCAiZnJhY3Rpb24iLCAiZiIsICJyb3VuZFRvIiwgIm51bWJlciIsICJkaWdpdHMiLCAidG93YXJkWmVybyIsICJmYWN0b3IiLCAiaXNMZWFwWWVhciIsICJ5ZWFyIiwgImRheXNJblllYXIiLCAiZGF5c0luTW9udGgiLCAibW9udGgiLCAibW9kTW9udGgiLCAibW9kWWVhciIsICJvYmpUb0xvY2FsVFMiLCAiZCIsICJ3ZWVrc0luV2Vla1llYXIiLCAid2Vla1llYXIiLCAicDEiLCAibGFzdCIsICJwMiIsICJ1bnRydW5jYXRlWWVhciIsICJwYXJzZVpvbmVJbmZvIiwgInRzIiwgIm9mZnNldEZvcm1hdCIsICJsb2NhbGUiLCAidGltZVpvbmUiLCAiZGF0ZSIsICJpbnRsT3B0cyIsICJtb2RpZmllZCIsICJfX3NwcmVhZFZhbHVlcyIsICJwYXJzZWQiLCAibSIsICJzaWduZWRPZmZzZXQiLCAib2ZmSG91clN0ciIsICJvZmZNaW51dGVTdHIiLCAib2ZmSG91ciIsICJvZmZNaW4iLCAib2ZmTWluU2lnbmVkIiwgImFzTnVtYmVyIiwgInZhbHVlIiwgIm51bWVyaWNWYWx1ZSIsICJJbnZhbGlkQXJndW1lbnRFcnJvciIsICJub3JtYWxpemVPYmplY3QiLCAibm9ybWFsaXplciIsICJub3JtYWxpemVkIiwgInUiLCAidiIsICJmb3JtYXRPZmZzZXQiLCAib2Zmc2V0IiwgImZvcm1hdCIsICJob3VycyIsICJtaW51dGVzIiwgInNpZ24iLCAidGltZU9iamVjdCIsICJpYW5hUmVnZXgiLCAibW9udGhzTG9uZyIsICJtb250aHNTaG9ydCIsICJtb250aHNOYXJyb3ciLCAibW9udGhzIiwgImxlbmd0aCIsICJ3ZWVrZGF5c0xvbmciLCAid2Vla2RheXNTaG9ydCIsICJ3ZWVrZGF5c05hcnJvdyIsICJ3ZWVrZGF5cyIsICJtZXJpZGllbXMiLCAiZXJhc0xvbmciLCAiZXJhc1Nob3J0IiwgImVyYXNOYXJyb3ciLCAiZXJhcyIsICJtZXJpZGllbUZvckRhdGVUaW1lIiwgImR0IiwgIndlZWtkYXlGb3JEYXRlVGltZSIsICJtb250aEZvckRhdGVUaW1lIiwgImVyYUZvckRhdGVUaW1lIiwgImZvcm1hdFJlbGF0aXZlVGltZSIsICJ1bml0IiwgImNvdW50IiwgIm51bWVyaWMiLCAibmFycm93IiwgInVuaXRzIiwgImxhc3RhYmxlIiwgImlzRGF5IiwgImlzSW5QYXN0IiwgImZtdFZhbHVlIiwgInNpbmd1bGFyIiwgImxpbFVuaXRzIiwgImZtdFVuaXQiLCAic3RyaW5naWZ5VG9rZW5zIiwgInNwbGl0cyIsICJ0b2tlblRvU3RyaW5nIiwgInMiLCAidG9rZW4iLCAibWFjcm9Ub2tlblRvRm9ybWF0T3B0cyIsICJEQVRFX1NIT1JUIiwgIkRBVEVfTUVEIiwgIkRBVEVfRlVMTCIsICJEQVRFX0hVR0UiLCAiVElNRV9TSU1QTEUiLCAiVElNRV9XSVRIX1NFQ09ORFMiLCAiVElNRV9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FX1dJVEhfTE9OR19PRkZTRVQiLCAiVElNRV8yNF9TSU1QTEUiLCAiVElNRV8yNF9XSVRIX1NFQ09ORFMiLCAiVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCIsICJUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQiLCAiREFURVRJTUVfU0hPUlQiLCAiREFURVRJTUVfTUVEIiwgIkRBVEVUSU1FX0ZVTEwiLCAiREFURVRJTUVfSFVHRSIsICJEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMiLCAiREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyIsICJGb3JtYXR0ZXIiLCAiX0Zvcm1hdHRlciIsICJsb2NhbGUiLCAib3B0cyIsICJmbXQiLCAiY3VycmVudCIsICJjdXJyZW50RnVsbCIsICJicmFja2V0ZWQiLCAiaSIsICJjIiwgImZvcm1hdE9wdHMiLCAiZHQiLCAiX19zcHJlYWRWYWx1ZXMiLCAibiIsICJwIiwgInBhZFN0YXJ0IiwgImtub3duRW5nbGlzaCIsICJ1c2VEYXRlVGltZUZvcm1hdHRlciIsICJzdHJpbmciLCAiZXh0cmFjdCIsICJmb3JtYXRPZmZzZXQiLCAibWVyaWRpZW0iLCAibWVyaWRpZW1Gb3JEYXRlVGltZSIsICJtb250aCIsICJsZW5ndGgiLCAic3RhbmRhbG9uZSIsICJtb250aEZvckRhdGVUaW1lIiwgIndlZWtkYXkiLCAid2Vla2RheUZvckRhdGVUaW1lIiwgIm1heWJlTWFjcm8iLCAiZXJhIiwgImVyYUZvckRhdGVUaW1lIiwgImR1ciIsICJ0b2tlblRvRmllbGQiLCAibGlsZHVyIiwgIm1hcHBlZCIsICJ0b2tlbnMiLCAicmVhbFRva2VucyIsICJmb3VuZCIsICJsaXRlcmFsIiwgInZhbCIsICJjb2xsYXBzZWQiLCAidCIsICJJbnZhbGlkIiwgInJlYXNvbiIsICJleHBsYW5hdGlvbiIsICJab25lIiwgIlpvbmVJc0Fic3RyYWN0RXJyb3IiLCAidHMiLCAib3B0cyIsICJmb3JtYXQiLCAib3RoZXJab25lIiwgInNpbmdsZXRvbiIsICJTeXN0ZW1ab25lIiwgIl9TeXN0ZW1ab25lIiwgIlpvbmUiLCAidHMiLCAiZm9ybWF0IiwgImxvY2FsZSIsICJwYXJzZVpvbmVJbmZvIiwgImZvcm1hdE9mZnNldCIsICJvdGhlclpvbmUiLCAiZHRmQ2FjaGUiLCAibWFrZURURiIsICJ6b25lIiwgInR5cGVUb1BvcyIsICJoYWNreU9mZnNldCIsICJkdGYiLCAiZGF0ZSIsICJmb3JtYXR0ZWQiLCAicGFyc2VkIiwgImZNb250aCIsICJmRGF5IiwgImZZZWFyIiwgImZhZE9yQmMiLCAiZkhvdXIiLCAiZk1pbnV0ZSIsICJmU2Vjb25kIiwgInBhcnRzT2Zmc2V0IiwgImZpbGxlZCIsICJpIiwgInR5cGUiLCAidmFsdWUiLCAicG9zIiwgImlzVW5kZWZpbmVkIiwgImlhbmFab25lQ2FjaGUiLCAiSUFOQVpvbmUiLCAiX0lBTkFab25lIiwgIlpvbmUiLCAibmFtZSIsICJzIiwgImUiLCAidHMiLCAiZm9ybWF0IiwgImxvY2FsZSIsICJwYXJzZVpvbmVJbmZvIiwgImZvcm1hdE9mZnNldCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJhZE9yQmMiLCAiaG91ciIsICJtaW51dGUiLCAic2Vjb25kIiwgImFzVVRDIiwgIm9ialRvTG9jYWxUUyIsICJhc1RTIiwgIm92ZXIiLCAib3RoZXJab25lIiwgInNpbmdsZXRvbiIsICJGaXhlZE9mZnNldFpvbmUiLCAiX0ZpeGVkT2Zmc2V0Wm9uZSIsICJab25lIiwgIm9mZnNldCIsICJzIiwgInIiLCAic2lnbmVkT2Zmc2V0IiwgImZvcm1hdE9mZnNldCIsICJ0cyIsICJmb3JtYXQiLCAib3RoZXJab25lIiwgIkludmFsaWRab25lIiwgIlpvbmUiLCAiem9uZU5hbWUiLCAibm9ybWFsaXplWm9uZSIsICJpbnB1dCIsICJkZWZhdWx0Wm9uZSIsICJvZmZzZXQiLCAiaXNVbmRlZmluZWQiLCAiWm9uZSIsICJpc1N0cmluZyIsICJsb3dlcmVkIiwgIkZpeGVkT2Zmc2V0Wm9uZSIsICJJQU5BWm9uZSIsICJpc051bWJlciIsICJJbnZhbGlkWm9uZSIsICJub3ciLCAiZGVmYXVsdFpvbmUiLCAiZGVmYXVsdExvY2FsZSIsICJkZWZhdWx0TnVtYmVyaW5nU3lzdGVtIiwgImRlZmF1bHRPdXRwdXRDYWxlbmRhciIsICJ0aHJvd09uSW52YWxpZCIsICJTZXR0aW5ncyIsICJuIiwgInpvbmUiLCAibm9ybWFsaXplWm9uZSIsICJTeXN0ZW1ab25lIiwgImxvY2FsZSIsICJudW1iZXJpbmdTeXN0ZW0iLCAib3V0cHV0Q2FsZW5kYXIiLCAidCIsICJMb2NhbGUiLCAiSUFOQVpvbmUiLCAiaW50bExGQ2FjaGUiLCAiZ2V0Q2FjaGVkTEYiLCAibG9jU3RyaW5nIiwgIm9wdHMiLCAia2V5IiwgImR0ZiIsICJpbnRsRFRDYWNoZSIsICJnZXRDYWNoZWREVEYiLCAiaW50bE51bUNhY2hlIiwgImdldENhY2hlZElORiIsICJpbmYiLCAiaW50bFJlbENhY2hlIiwgImdldENhY2hlZFJURiIsICJfYSIsICJiYXNlIiwgImNhY2hlS2V5T3B0cyIsICJfX29ialJlc3QiLCAic3lzTG9jYWxlQ2FjaGUiLCAic3lzdGVtTG9jYWxlIiwgInBhcnNlTG9jYWxlU3RyaW5nIiwgImxvY2FsZVN0ciIsICJ1SW5kZXgiLCAib3B0aW9ucyIsICJzbWFsbGVyIiwgImUiLCAibnVtYmVyaW5nU3lzdGVtIiwgImNhbGVuZGFyIiwgImludGxDb25maWdTdHJpbmciLCAib3V0cHV0Q2FsZW5kYXIiLCAibWFwTW9udGhzIiwgImYiLCAibXMiLCAiaSIsICJkdCIsICJEYXRlVGltZSIsICJtYXBXZWVrZGF5cyIsICJsaXN0U3R1ZmYiLCAibG9jIiwgImxlbmd0aCIsICJkZWZhdWx0T0siLCAiZW5nbGlzaEZuIiwgImludGxGbiIsICJtb2RlIiwgInN1cHBvcnRzRmFzdE51bWJlcnMiLCAiUG9seU51bWJlckZvcm1hdHRlciIsICJpbnRsIiwgImZvcmNlU2ltcGxlIiwgInBhZFRvIiwgImZsb29yIiwgIm90aGVyT3B0cyIsICJpbnRsT3B0cyIsICJfX3NwcmVhZFZhbHVlcyIsICJmaXhlZCIsICJyb3VuZFRvIiwgInBhZFN0YXJ0IiwgIlBvbHlEYXRlRm9ybWF0dGVyIiwgInoiLCAiZ210T2Zmc2V0IiwgIm9mZnNldFoiLCAiSUFOQVpvbmUiLCAiUG9seVJlbEZvcm1hdHRlciIsICJpc0VuZ2xpc2giLCAiaGFzUmVsYXRpdmUiLCAiY291bnQiLCAidW5pdCIsICJmb3JtYXRSZWxhdGl2ZVRpbWUiLCAiTG9jYWxlIiwgIl9Mb2NhbGUiLCAibG9jYWxlIiwgImRlZmF1bHRUb0VOIiwgInNwZWNpZmllZExvY2FsZSIsICJTZXR0aW5ncyIsICJsb2NhbGVSIiwgIm51bWJlcmluZ1N5c3RlbVIiLCAib3V0cHV0Q2FsZW5kYXJSIiwgIm51bWJlcmluZyIsICJwYXJzZWRMb2NhbGUiLCAicGFyc2VkTnVtYmVyaW5nU3lzdGVtIiwgInBhcnNlZE91dHB1dENhbGVuZGFyIiwgImlzQWN0dWFsbHlFbiIsICJoYXNOb1dlaXJkbmVzcyIsICJhbHRzIiwgIl9fc3ByZWFkUHJvcHMiLCAiZm9ybWF0IiwgIm1vbnRocyIsICJmb3JtYXRTdHIiLCAid2Vla2RheXMiLCAibWVyaWRpZW1zIiwgImVyYXMiLCAiZmllbGQiLCAiZGYiLCAicmVzdWx0cyIsICJtYXRjaGluZyIsICJtIiwgIm90aGVyIiwgImNvbWJpbmVSZWdleGVzIiwgInJlZ2V4ZXMiLCAiZnVsbCIsICJmIiwgImNvbWJpbmVFeHRyYWN0b3JzIiwgImV4dHJhY3RvcnMiLCAibSIsICJtZXJnZWRWYWxzIiwgIm1lcmdlZFpvbmUiLCAiY3Vyc29yIiwgImV4IiwgInZhbCIsICJ6b25lIiwgIm5leHQiLCAiX19zcHJlYWRWYWx1ZXMiLCAicGFyc2UiLCAicyIsICJwYXR0ZXJucyIsICJyZWdleCIsICJleHRyYWN0b3IiLCAic2ltcGxlUGFyc2UiLCAia2V5cyIsICJtYXRjaCIsICJyZXQiLCAiaSIsICJwYXJzZUludGVnZXIiLCAib2Zmc2V0UmVnZXgiLCAiaXNvRXh0ZW5kZWRab25lIiwgImlhbmFSZWdleCIsICJpc29UaW1lQmFzZVJlZ2V4IiwgImlzb1RpbWVSZWdleCIsICJpc29UaW1lRXh0ZW5zaW9uUmVnZXgiLCAiaXNvWW1kUmVnZXgiLCAiaXNvV2Vla1JlZ2V4IiwgImlzb09yZGluYWxSZWdleCIsICJleHRyYWN0SVNPV2Vla0RhdGEiLCAiZXh0cmFjdElTT09yZGluYWxEYXRhIiwgInNxbFltZFJlZ2V4IiwgInNxbFRpbWVSZWdleCIsICJzcWxUaW1lRXh0ZW5zaW9uUmVnZXgiLCAiaW50IiwgInBvcyIsICJmYWxsYmFjayIsICJpc1VuZGVmaW5lZCIsICJleHRyYWN0SVNPWW1kIiwgImV4dHJhY3RJU09UaW1lIiwgInBhcnNlTWlsbGlzIiwgImV4dHJhY3RJU09PZmZzZXQiLCAibG9jYWwiLCAiZnVsbE9mZnNldCIsICJzaWduZWRPZmZzZXQiLCAiRml4ZWRPZmZzZXRab25lIiwgImV4dHJhY3RJQU5BWm9uZSIsICJJQU5BWm9uZSIsICJpc29UaW1lT25seSIsICJpc29EdXJhdGlvbiIsICJleHRyYWN0SVNPRHVyYXRpb24iLCAieWVhclN0ciIsICJtb250aFN0ciIsICJ3ZWVrU3RyIiwgImRheVN0ciIsICJob3VyU3RyIiwgIm1pbnV0ZVN0ciIsICJzZWNvbmRTdHIiLCAibWlsbGlzZWNvbmRzU3RyIiwgImhhc05lZ2F0aXZlUHJlZml4IiwgIm5lZ2F0aXZlU2Vjb25kcyIsICJtYXliZU5lZ2F0ZSIsICJudW0iLCAiZm9yY2UiLCAicGFyc2VGbG9hdGluZyIsICJvYnNPZmZzZXRzIiwgImZyb21TdHJpbmdzIiwgIndlZWtkYXlTdHIiLCAicmVzdWx0IiwgInVudHJ1bmNhdGVZZWFyIiwgIm1vbnRoc1Nob3J0IiwgIndlZWtkYXlzTG9uZyIsICJ3ZWVrZGF5c1Nob3J0IiwgInJmYzI4MjIiLCAiZXh0cmFjdFJGQzI4MjIiLCAib2JzT2Zmc2V0IiwgIm1pbE9mZnNldCIsICJvZmZIb3VyU3RyIiwgIm9mZk1pbnV0ZVN0ciIsICJvZmZzZXQiLCAicHJlcHJvY2Vzc1JGQzI4MjIiLCAicmZjMTEyMyIsICJyZmM4NTAiLCAiYXNjaWkiLCAiZXh0cmFjdFJGQzExMjNPcjg1MCIsICJleHRyYWN0QVNDSUkiLCAiaXNvWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCIsICJpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCIsICJpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCIsICJpc29UaW1lQ29tYmluZWRSZWdleCIsICJleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCIsICJleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXQiLCAiZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZSIsICJleHRyYWN0SVNPVGltZUFuZE9mZnNldCIsICJwYXJzZUlTT0RhdGUiLCAicGFyc2VSRkMyODIyRGF0ZSIsICJwYXJzZUhUVFBEYXRlIiwgInBhcnNlSVNPRHVyYXRpb24iLCAiZXh0cmFjdElTT1RpbWVPbmx5IiwgInBhcnNlSVNPVGltZU9ubHkiLCAic3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCIsICJzcWxUaW1lQ29tYmluZWRSZWdleCIsICJleHRyYWN0SVNPVGltZU9mZnNldEFuZElBTkFab25lIiwgInBhcnNlU1FMIiwgIklOVkFMSUQiLCAibG93T3JkZXJNYXRyaXgiLCAiY2FzdWFsTWF0cml4IiwgIl9fc3ByZWFkVmFsdWVzIiwgImRheXNJblllYXJBY2N1cmF0ZSIsICJkYXlzSW5Nb250aEFjY3VyYXRlIiwgImFjY3VyYXRlTWF0cml4IiwgIm9yZGVyZWRVbml0cyIsICJyZXZlcnNlVW5pdHMiLCAiY2xvbmUiLCAiZHVyIiwgImFsdHMiLCAiY2xlYXIiLCAiY29uZiIsICJEdXJhdGlvbiIsICJhbnRpVHJ1bmMiLCAiY29udmVydCIsICJtYXRyaXgiLCAiZnJvbU1hcCIsICJmcm9tVW5pdCIsICJ0b01hcCIsICJ0b1VuaXQiLCAiY29udiIsICJyYXciLCAic2FtZVNpZ24iLCAiYWRkZWQiLCAibm9ybWFsaXplVmFsdWVzIiwgInZhbHMiLCAicHJldmlvdXMiLCAiY3VycmVudCIsICJpc1VuZGVmaW5lZCIsICJfRHVyYXRpb24iLCAiY29uZmlnIiwgImFjY3VyYXRlIiwgIkxvY2FsZSIsICJjb3VudCIsICJvcHRzIiwgIm9iaiIsICJJbnZhbGlkQXJndW1lbnRFcnJvciIsICJub3JtYWxpemVPYmplY3QiLCAiZHVyYXRpb25MaWtlIiwgImlzTnVtYmVyIiwgInRleHQiLCAicGFyc2VkIiwgInBhcnNlSVNPRHVyYXRpb24iLCAicGFyc2VJU09UaW1lT25seSIsICJyZWFzb24iLCAiZXhwbGFuYXRpb24iLCAiaW52YWxpZCIsICJJbnZhbGlkIiwgIlNldHRpbmdzIiwgIkludmFsaWREdXJhdGlvbkVycm9yIiwgInVuaXQiLCAibm9ybWFsaXplZCIsICJJbnZhbGlkVW5pdEVycm9yIiwgIm8iLCAiZm10IiwgImZtdE9wdHMiLCAiX19zcHJlYWRQcm9wcyIsICJGb3JtYXR0ZXIiLCAibCIsICJ2YWwiLCAibiIsICJzIiwgInJvdW5kVG8iLCAibWlsbGlzIiwgInZhbHVlIiwgInN0ciIsICJkdXJhdGlvbiIsICJyZXN1bHQiLCAiayIsICJoYXNPd25Qcm9wZXJ0eSIsICJmbiIsICJhc051bWJlciIsICJ2YWx1ZXMiLCAibWl4ZWQiLCAibG9jYWxlIiwgIm51bWJlcmluZ1N5c3RlbSIsICJjb252ZXJzaW9uQWNjdXJhY3kiLCAibG9jIiwgInVuaXRzIiwgInUiLCAiYnVpbHQiLCAiYWNjdW11bGF0ZWQiLCAibGFzdFVuaXQiLCAib3duIiwgImFrIiwgImkiLCAiZG93biIsICJrZXkiLCAibmVnYXRlZCIsICJvdGhlciIsICJlcSIsICJ2MSIsICJ2MiIsICJJTlZBTElEIiwgInZhbGlkYXRlU3RhcnRFbmQiLCAic3RhcnQiLCAiZW5kIiwgIkludGVydmFsIiwgIl9JbnRlcnZhbCIsICJjb25maWciLCAicmVhc29uIiwgImV4cGxhbmF0aW9uIiwgIkludmFsaWRBcmd1bWVudEVycm9yIiwgImludmFsaWQiLCAiSW52YWxpZCIsICJTZXR0aW5ncyIsICJJbnZhbGlkSW50ZXJ2YWxFcnJvciIsICJidWlsdFN0YXJ0IiwgImZyaWVuZGx5RGF0ZVRpbWUiLCAiYnVpbHRFbmQiLCAidmFsaWRhdGVFcnJvciIsICJkdXJhdGlvbiIsICJkdXIiLCAiRHVyYXRpb24iLCAiZHQiLCAidGV4dCIsICJvcHRzIiwgInMiLCAiZSIsICJzdGFydElzVmFsaWQiLCAiRGF0ZVRpbWUiLCAiZW5kSXNWYWxpZCIsICJvIiwgInVuaXQiLCAiZGF0ZVRpbWUiLCAiZGF0ZVRpbWVzIiwgInNvcnRlZCIsICJkIiwgInJlc3VsdHMiLCAiYWRkZWQiLCAibmV4dCIsICJpZHgiLCAieCIsICJudW1iZXJPZlBhcnRzIiwgIm90aGVyIiwgImludGVydmFscyIsICJmb3VuZCIsICJmaW5hbCIsICJhIiwgImIiLCAic29mYXIiLCAiY3VycmVudCIsICJpdGVtIiwgImN1cnJlbnRDb3VudCIsICJlbmRzIiwgImkiLCAiZmxhdHRlbmVkIiwgImFyciIsICJkYXRlRm9ybWF0IiwgInNlcGFyYXRvciIsICJtYXBGbiIsICJJbmZvIiwgInpvbmUiLCAiU2V0dGluZ3MiLCAicHJvdG8iLCAiRGF0ZVRpbWUiLCAiSUFOQVpvbmUiLCAiaW5wdXQiLCAibm9ybWFsaXplWm9uZSIsICJsZW5ndGgiLCAibG9jYWxlIiwgIm51bWJlcmluZ1N5c3RlbSIsICJsb2NPYmoiLCAib3V0cHV0Q2FsZW5kYXIiLCAiTG9jYWxlIiwgImhhc1JlbGF0aXZlIiwgImRheURpZmYiLCAiZWFybGllciIsICJsYXRlciIsICJ1dGNEYXlTdGFydCIsICJkdCIsICJtcyIsICJEdXJhdGlvbiIsICJoaWdoT3JkZXJEaWZmcyIsICJjdXJzb3IiLCAidW5pdHMiLCAiZGlmZmVycyIsICJiIiwgImRheXMiLCAicmVzdWx0cyIsICJsb3dlc3RPcmRlciIsICJoaWdoV2F0ZXIiLCAidW5pdCIsICJkaWZmZXIiLCAiZGVsdGEiLCAiZGlmZl9kZWZhdWx0IiwgIm9wdHMiLCAicmVtYWluaW5nTWlsbGlzIiwgImxvd2VyT3JkZXJVbml0cyIsICJ1IiwgImR1cmF0aW9uIiwgIm51bWJlcmluZ1N5c3RlbXMiLCAibnVtYmVyaW5nU3lzdGVtc1VURjE2IiwgImhhbmlkZWNDaGFycyIsICJwYXJzZURpZ2l0cyIsICJzdHIiLCAidmFsdWUiLCAiaSIsICJjb2RlIiwgImtleSIsICJtaW4iLCAibWF4IiwgImRpZ2l0UmVnZXgiLCAibnVtYmVyaW5nU3lzdGVtIiwgImFwcGVuZCIsICJNSVNTSU5HX0ZUUCIsICJpbnRVbml0IiwgInJlZ2V4IiwgInBvc3QiLCAiaSIsICJzIiwgInBhcnNlRGlnaXRzIiwgIk5CU1AiLCAic3BhY2VPck5CU1AiLCAic3BhY2VPck5CU1BSZWdFeHAiLCAiZml4TGlzdFJlZ2V4IiwgInN0cmlwSW5zZW5zaXRpdml0aWVzIiwgIm9uZU9mIiwgInN0cmluZ3MiLCAic3RhcnRJbmRleCIsICJvZmZzZXQiLCAiZ3JvdXBzIiwgImgiLCAibSIsICJzaWduZWRPZmZzZXQiLCAic2ltcGxlIiwgImVzY2FwZVRva2VuIiwgInZhbHVlIiwgInVuaXRGb3JUb2tlbiIsICJ0b2tlbiIsICJsb2MiLCAib25lIiwgImRpZ2l0UmVnZXgiLCAidHdvIiwgInRocmVlIiwgImZvdXIiLCAic2l4IiwgIm9uZU9yVHdvIiwgIm9uZVRvVGhyZWUiLCAib25lVG9TaXgiLCAib25lVG9OaW5lIiwgInR3b1RvRm91ciIsICJmb3VyVG9TaXgiLCAibGl0ZXJhbCIsICJ0IiwgInVuaXQiLCAidW50cnVuY2F0ZVllYXIiLCAicGFydFR5cGVTdHlsZVRvVG9rZW5WYWwiLCAidG9rZW5Gb3JQYXJ0IiwgInBhcnQiLCAibG9jYWxlIiwgImZvcm1hdE9wdHMiLCAidHlwZSIsICJzdHlsZSIsICJ2YWwiLCAiYnVpbGRSZWdleCIsICJ1bml0cyIsICJ1IiwgImYiLCAibWF0Y2giLCAiaW5wdXQiLCAiaGFuZGxlcnMiLCAibWF0Y2hlcyIsICJhbGwiLCAibWF0Y2hJbmRleCIsICJoYXNPd25Qcm9wZXJ0eSIsICJkYXRlVGltZUZyb21NYXRjaGVzIiwgInRvRmllbGQiLCAiem9uZSIsICJzcGVjaWZpY09mZnNldCIsICJpc1VuZGVmaW5lZCIsICJJQU5BWm9uZSIsICJGaXhlZE9mZnNldFpvbmUiLCAicGFyc2VNaWxsaXMiLCAiciIsICJrIiwgImR1bW15RGF0ZVRpbWVDYWNoZSIsICJnZXREdW1teURhdGVUaW1lIiwgIkRhdGVUaW1lIiwgIm1heWJlRXhwYW5kTWFjcm9Ub2tlbiIsICJGb3JtYXR0ZXIiLCAidG9rZW5zIiwgInAiLCAiZXhwYW5kTWFjcm9Ub2tlbnMiLCAiZXhwbGFpbkZyb21Ub2tlbnMiLCAiZm9ybWF0IiwgImRpc3F1YWxpZnlpbmdVbml0IiwgInJlZ2V4U3RyaW5nIiwgInJhd01hdGNoZXMiLCAicmVzdWx0IiwgIkNvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIiwgInBhcnNlRnJvbVRva2VucyIsICJpbnZhbGlkUmVhc29uIiwgIm5vbkxlYXBMYWRkZXIiLCAibGVhcExhZGRlciIsICJ1bml0T3V0T2ZSYW5nZSIsICJ1bml0IiwgInZhbHVlIiwgIkludmFsaWQiLCAiZGF5T2ZXZWVrIiwgInllYXIiLCAibW9udGgiLCAiZGF5IiwgImQiLCAianMiLCAiY29tcHV0ZU9yZGluYWwiLCAiaXNMZWFwWWVhciIsICJ1bmNvbXB1dGVPcmRpbmFsIiwgIm9yZGluYWwiLCAidGFibGUiLCAibW9udGgwIiwgImdyZWdvcmlhblRvV2VlayIsICJncmVnT2JqIiwgIndlZWtkYXkiLCAid2Vla051bWJlciIsICJ3ZWVrWWVhciIsICJ3ZWVrc0luV2Vla1llYXIiLCAiX19zcHJlYWRWYWx1ZXMiLCAidGltZU9iamVjdCIsICJ3ZWVrVG9HcmVnb3JpYW4iLCAid2Vla0RhdGEiLCAid2Vla2RheU9mSmFuNCIsICJ5ZWFySW5EYXlzIiwgImRheXNJblllYXIiLCAiZ3JlZ29yaWFuVG9PcmRpbmFsIiwgImdyZWdEYXRhIiwgIm9yZGluYWxUb0dyZWdvcmlhbiIsICJvcmRpbmFsRGF0YSIsICJoYXNJbnZhbGlkV2Vla0RhdGEiLCAib2JqIiwgInZhbGlkWWVhciIsICJpc0ludGVnZXIiLCAidmFsaWRXZWVrIiwgImludGVnZXJCZXR3ZWVuIiwgInZhbGlkV2Vla2RheSIsICJoYXNJbnZhbGlkT3JkaW5hbERhdGEiLCAidmFsaWRPcmRpbmFsIiwgImhhc0ludmFsaWRHcmVnb3JpYW5EYXRhIiwgInZhbGlkTW9udGgiLCAidmFsaWREYXkiLCAiZGF5c0luTW9udGgiLCAiaGFzSW52YWxpZFRpbWVEYXRhIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCIsICJ2YWxpZEhvdXIiLCAidmFsaWRNaW51dGUiLCAidmFsaWRTZWNvbmQiLCAidmFsaWRNaWxsaXNlY29uZCIsICJJTlZBTElEIiwgIk1BWF9EQVRFIiwgInVuc3VwcG9ydGVkWm9uZSIsICJ6b25lIiwgIkludmFsaWQiLCAicG9zc2libHlDYWNoZWRXZWVrRGF0YSIsICJkdCIsICJncmVnb3JpYW5Ub1dlZWsiLCAiY2xvbmUiLCAiaW5zdCIsICJhbHRzIiwgImN1cnJlbnQiLCAiRGF0ZVRpbWUiLCAiX19zcHJlYWRQcm9wcyIsICJfX3NwcmVhZFZhbHVlcyIsICJmaXhPZmZzZXQiLCAibG9jYWxUUyIsICJvIiwgInR6IiwgInV0Y0d1ZXNzIiwgIm8yIiwgIm8zIiwgInRzVG9PYmoiLCAidHMiLCAib2Zmc2V0IiwgImQiLCAib2JqVG9UUyIsICJvYmoiLCAib2JqVG9Mb2NhbFRTIiwgImFkanVzdFRpbWUiLCAiZHVyIiwgIm9QcmUiLCAieWVhciIsICJtb250aCIsICJjIiwgImRheXNJbk1vbnRoIiwgIm1pbGxpc1RvQWRkIiwgIkR1cmF0aW9uIiwgInBhcnNlRGF0YVRvRGF0ZVRpbWUiLCAicGFyc2VkIiwgInBhcnNlZFpvbmUiLCAib3B0cyIsICJmb3JtYXQiLCAidGV4dCIsICJzcGVjaWZpY09mZnNldCIsICJzZXRab25lIiwgImludGVycHJldGF0aW9uWm9uZSIsICJ0b1RlY2hGb3JtYXQiLCAiYWxsb3daIiwgIkZvcm1hdHRlciIsICJMb2NhbGUiLCAidG9JU09EYXRlIiwgImV4dGVuZGVkIiwgImxvbmdGb3JtYXQiLCAicGFkU3RhcnQiLCAidG9JU09UaW1lIiwgInN1cHByZXNzU2Vjb25kcyIsICJzdXBwcmVzc01pbGxpc2Vjb25kcyIsICJpbmNsdWRlT2Zmc2V0IiwgImV4dGVuZGVkWm9uZSIsICJkZWZhdWx0VW5pdFZhbHVlcyIsICJkZWZhdWx0V2Vla1VuaXRWYWx1ZXMiLCAiZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzIiwgIm9yZGVyZWRVbml0cyIsICJvcmRlcmVkV2Vla1VuaXRzIiwgIm9yZGVyZWRPcmRpbmFsVW5pdHMiLCAibm9ybWFsaXplVW5pdCIsICJ1bml0IiwgIm5vcm1hbGl6ZWQiLCAiSW52YWxpZFVuaXRFcnJvciIsICJxdWlja0RUIiwgIm5vcm1hbGl6ZVpvbmUiLCAiU2V0dGluZ3MiLCAibG9jIiwgInRzTm93IiwgImlzVW5kZWZpbmVkIiwgInUiLCAiaW52YWxpZCIsICJoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YSIsICJoYXNJbnZhbGlkVGltZURhdGEiLCAib2Zmc2V0UHJvdmlzIiwgImRpZmZSZWxhdGl2ZSIsICJzdGFydCIsICJlbmQiLCAicm91bmQiLCAicm91bmRUbyIsICJkaWZmZXIiLCAiY291bnQiLCAibGFzdE9wdHMiLCAiYXJnTGlzdCIsICJhcmdzIiwgIl9EYXRlVGltZSIsICJjb25maWciLCAib3QiLCAiZGF5IiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJtaWxsaXNlY29uZCIsICJGaXhlZE9mZnNldFpvbmUiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzRGF0ZSIsICJ6b25lVG9Vc2UiLCAibWlsbGlzZWNvbmRzIiwgImlzTnVtYmVyIiwgIkludmFsaWRBcmd1bWVudEVycm9yIiwgInNlY29uZHMiLCAibm9ybWFsaXplT2JqZWN0IiwgImNvbnRhaW5zT3JkaW5hbCIsICJjb250YWluc0dyZWdvclllYXIiLCAiY29udGFpbnNHcmVnb3JNRCIsICJjb250YWluc0dyZWdvciIsICJkZWZpbml0ZVdlZWtEZWYiLCAiQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IiLCAidXNlV2Vla0RhdGEiLCAidW5pdHMiLCAiZGVmYXVsdFZhbHVlcyIsICJvYmpOb3ciLCAiZ3JlZ29yaWFuVG9PcmRpbmFsIiwgImZvdW5kRmlyc3QiLCAidiIsICJoaWdoZXJPcmRlckludmFsaWQiLCAiaGFzSW52YWxpZFdlZWtEYXRhIiwgImhhc0ludmFsaWRPcmRpbmFsRGF0YSIsICJncmVnb3JpYW4iLCAid2Vla1RvR3JlZ29yaWFuIiwgIm9yZGluYWxUb0dyZWdvcmlhbiIsICJ0c0ZpbmFsIiwgIm9mZnNldEZpbmFsIiwgInZhbHMiLCAicGFyc2VJU09EYXRlIiwgInBhcnNlUkZDMjgyMkRhdGUiLCAicGFyc2VIVFRQRGF0ZSIsICJmbXQiLCAibG9jYWxlIiwgIm51bWJlcmluZ1N5c3RlbSIsICJsb2NhbGVUb1VzZSIsICJwYXJzZUZyb21Ub2tlbnMiLCAicGFyc2VTUUwiLCAicmVhc29uIiwgImV4cGxhbmF0aW9uIiwgIkludmFsaWREYXRlVGltZUVycm9yIiwgIkluZm8iLCAiaXNMZWFwWWVhciIsICJkYXlzSW5ZZWFyIiwgIndlZWtzSW5XZWVrWWVhciIsICJjYWxlbmRhciIsICJrZWVwTG9jYWxUaW1lIiwgImtlZXBDYWxlbmRhclRpbWUiLCAibmV3VFMiLCAib2Zmc2V0R3Vlc3MiLCAiYXNPYmoiLCAib3V0cHV0Q2FsZW5kYXIiLCAidmFsdWVzIiwgInNldHRpbmdXZWVrU3R1ZmYiLCAibWl4ZWQiLCAiZHVyYXRpb24iLCAibm9ybWFsaXplZFVuaXQiLCAicSIsICJmb3JtYXRPcHRzIiwgIkRBVEVfU0hPUlQiLCAiZXh0IiwgImluY2x1ZGVQcmVmaXgiLCAiaW5jbHVkZVpvbmUiLCAiaW5jbHVkZU9mZnNldFNwYWNlIiwgImJhc2UiLCAib3RoZXJEYXRlVGltZSIsICJkdXJPcHRzIiwgIm1heWJlQXJyYXkiLCAib3RoZXJJc0xhdGVyIiwgImVhcmxpZXIiLCAibGF0ZXIiLCAiZGlmZmVkIiwgImRpZmZfZGVmYXVsdCIsICJJbnRlcnZhbCIsICJpbnB1dE1zIiwgImFkanVzdGVkVG9ab25lIiwgIm90aGVyIiwgInBhZGRpbmciLCAiZGF0ZVRpbWVzIiwgImJlc3RCeSIsICJpIiwgImV4cGxhaW5Gcm9tVG9rZW5zIiwgIkRBVEVfTUVEIiwgIkRBVEVfTUVEX1dJVEhfV0VFS0RBWSIsICJEQVRFX0ZVTEwiLCAiREFURV9IVUdFIiwgIlRJTUVfU0lNUExFIiwgIlRJTUVfV0lUSF9TRUNPTkRTIiwgIlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQiLCAiVElNRV9XSVRIX0xPTkdfT0ZGU0VUIiwgIlRJTUVfMjRfU0lNUExFIiwgIlRJTUVfMjRfV0lUSF9TRUNPTkRTIiwgIlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQiLCAiVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUIiwgIkRBVEVUSU1FX1NIT1JUIiwgIkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9NRUQiLCAiREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyIsICJEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZIiwgIkRBVEVUSU1FX0ZVTEwiLCAiREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMiLCAiREFURVRJTUVfSFVHRSIsICJEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyIsICJmcmllbmRseURhdGVUaW1lIiwgImRhdGVUaW1laXNoIiwgIlAiLCAiZW1vamlfcmVnZXhfZGVmYXVsdCIsICJub3JtYWxpemVEdXJhdGlvbiIsICJkdXIiLCAicmVuZGVyTWluaW1hbERhdGUiLCAidGltZSIsICJkYXRlRm9ybWF0IiwgImRhdGVUaW1lRm9ybWF0IiwgImxvY2FsZSIsICJyZW5kZXJNaW5pbWFsRHVyYXRpb24iLCAiZHVyIiwgIm5vcm1hbGl6ZUR1cmF0aW9uIiwgInJlc3VsdCIsICJnZXRGaWxlVGl0bGUiLCAicGF0aCIsICJnZXRFeHRlbnNpb24iLCAiSEVBREVSX0NBTk9OSUNBTElaRVIiLCAiZW1vamlfcmVnZXhfZGVmYXVsdCIsICJfIiwgInJlc3VsdCIsICJub3JtYWxpemVIZWFkZXJGb3JMaW5rIiwgImhlYWRlciIsICJMaW5rIiwgIl9MaW5rIiwgInBhdGgiLCAiZW1iZWQiLCAiZGlzcGxheSIsICJsaW5rcGF0aCIsICJzcGxpdCIsICJoZWFkZXIiLCAibm9ybWFsaXplSGVhZGVyRm9yTGluayIsICJibG9ja0lkIiwgIm9iamVjdCIsICJyYXdsaW5rIiwgImxpbmsiLCAic3BsaXRPblVuZXNjYXBlZFBpcGUiLCAiZmllbGRzIiwgImJsb2NrIiwgIm90aGVyIiwgInJlc3VsdCIsICJnZXRGaWxlVGl0bGUiLCAiX2EiLCAiX2IiLCAiZXNjYXBlZCIsICJwaXBlIiwgIkFMSUFTIiwgIkRPQyIsICJNQVAiLCAiUEFJUiIsICJTQ0FMQVIiLCAiU0VRIiwgIk5PREVfVFlQRSIsICJpc0FsaWFzIiwgIm5vZGUiLCAiaXNEb2N1bWVudCIsICJpc01hcCIsICJpc1BhaXIiLCAiaXNTY2FsYXIiLCAiaXNTZXEiLCAiaXNDb2xsZWN0aW9uIiwgImlzTm9kZSIsICJoYXNBbmNob3IiLCAiQlJFQUsiLCAiU0tJUCIsICJSRU1PVkUiLCAidmlzaXQiLCAibm9kZSIsICJ2aXNpdG9yIiwgInZpc2l0b3JfIiwgImluaXRWaXNpdG9yIiwgImlzRG9jdW1lbnQiLCAidmlzaXRfIiwgImtleSIsICJwYXRoIiwgImN0cmwiLCAiY2FsbFZpc2l0b3IiLCAiaXNOb2RlIiwgImlzUGFpciIsICJyZXBsYWNlTm9kZSIsICJpc0NvbGxlY3Rpb24iLCAiY2kiLCAiY2siLCAiY3YiLCAidmlzaXRBc3luYyIsICJ2aXNpdEFzeW5jXyIsICJfYSIsICJfYiIsICJfYyIsICJfZCIsICJfZSIsICJpc01hcCIsICJpc1NlcSIsICJpc1NjYWxhciIsICJpc0FsaWFzIiwgInBhcmVudCIsICJwdCIsICJlc2NhcGVDaGFycyIsICJlc2NhcGVUYWdOYW1lIiwgInRuIiwgImNoIiwgIkRpcmVjdGl2ZXMiLCAiX0RpcmVjdGl2ZXMiLCAieWFtbCIsICJ0YWdzIiwgImNvcHkiLCAicmVzIiwgImxpbmUiLCAib25FcnJvciIsICJwYXJ0cyIsICJuYW1lIiwgImhhbmRsZSIsICJwcmVmaXgiLCAidmVyc2lvbiIsICJpc1ZhbGlkIiwgInNvdXJjZSIsICJ2ZXJiYXRpbSIsICJzdWZmaXgiLCAiZXJyb3IiLCAidGFnIiwgImRvYyIsICJsaW5lcyIsICJ0YWdFbnRyaWVzIiwgInRhZ05hbWVzIiwgImlzTm9kZSIsICJ2aXNpdCIsICJfa2V5IiwgIm5vZGUiLCAiYW5jaG9ySXNWYWxpZCIsICJhbmNob3IiLCAibXNnIiwgImFuY2hvck5hbWVzIiwgInJvb3QiLCAiYW5jaG9ycyIsICJ2aXNpdCIsICJfa2V5IiwgIm5vZGUiLCAiZmluZE5ld0FuY2hvciIsICJwcmVmaXgiLCAiZXhjbHVkZSIsICJpIiwgIm5hbWUiLCAiY3JlYXRlTm9kZUFuY2hvcnMiLCAiZG9jIiwgImFsaWFzT2JqZWN0cyIsICJzb3VyY2VPYmplY3RzIiwgInByZXZBbmNob3JzIiwgInNvdXJjZSIsICJyZWYiLCAiaXNTY2FsYXIiLCAiaXNDb2xsZWN0aW9uIiwgImVycm9yIiwgImFwcGx5UmV2aXZlciIsICJyZXZpdmVyIiwgIm9iaiIsICJrZXkiLCAidmFsIiwgImkiLCAibGVuIiwgInYwIiwgInYxIiwgImsiLCAidG9KUyIsICJ2YWx1ZSIsICJhcmciLCAiY3R4IiwgInYiLCAiaSIsICJoYXNBbmNob3IiLCAiZGF0YSIsICJyZXMiLCAiTm9kZUJhc2UiLCAidHlwZSIsICJOT0RFX1RZUEUiLCAiY29weSIsICJkb2MiLCAibWFwQXNNYXAiLCAibWF4QWxpYXNDb3VudCIsICJvbkFuY2hvciIsICJyZXZpdmVyIiwgImlzRG9jdW1lbnQiLCAiY3R4IiwgInJlcyIsICJ0b0pTIiwgImNvdW50IiwgImFwcGx5UmV2aXZlciIsICJBbGlhcyIsICJOb2RlQmFzZSIsICJzb3VyY2UiLCAiQUxJQVMiLCAiZG9jIiwgImZvdW5kIiwgInZpc2l0IiwgIl9rZXkiLCAibm9kZSIsICJfYXJnIiwgImN0eCIsICJhbmNob3JzIiwgIm1heEFsaWFzQ291bnQiLCAibXNnIiwgImRhdGEiLCAidG9KUyIsICJnZXRBbGlhc0NvdW50IiwgIl9vbkNvbW1lbnQiLCAiX29uQ2hvbXBLZWVwIiwgInNyYyIsICJhbmNob3JJc1ZhbGlkIiwgImlzQWxpYXMiLCAiYW5jaG9yIiwgImlzQ29sbGVjdGlvbiIsICJjb3VudCIsICJpdGVtIiwgImMiLCAiaXNQYWlyIiwgImtjIiwgInZjIiwgImlzU2NhbGFyVmFsdWUiLCAidmFsdWUiLCAiU2NhbGFyIiwgIk5vZGVCYXNlIiwgIlNDQUxBUiIsICJhcmciLCAiY3R4IiwgInRvSlMiLCAiZGVmYXVsdFRhZ1ByZWZpeCIsICJmaW5kVGFnT2JqZWN0IiwgInZhbHVlIiwgInRhZ05hbWUiLCAidGFncyIsICJfYSIsICJtYXRjaCIsICJ0IiwgInRhZ09iaiIsICJjcmVhdGVOb2RlIiwgImN0eCIsICJfYiIsICJfYyIsICJpc0RvY3VtZW50IiwgImlzTm9kZSIsICJpc1BhaXIiLCAibWFwIiwgIk1BUCIsICJhbGlhc0R1cGxpY2F0ZU9iamVjdHMiLCAib25BbmNob3IiLCAib25UYWdPYmoiLCAic2NoZW1hIiwgInNvdXJjZU9iamVjdHMiLCAicmVmIiwgIkFsaWFzIiwgIm5vZGUiLCAiU2NhbGFyIiwgIlNFUSIsICJjb2xsZWN0aW9uRnJvbVBhdGgiLCAic2NoZW1hIiwgInBhdGgiLCAidmFsdWUiLCAidiIsICJpIiwgImsiLCAiYSIsICJjcmVhdGVOb2RlIiwgImlzRW1wdHlQYXRoIiwgIkNvbGxlY3Rpb24iLCAiTm9kZUJhc2UiLCAidHlwZSIsICJjb3B5IiwgIml0IiwgImlzTm9kZSIsICJpc1BhaXIiLCAia2V5IiwgInJlc3QiLCAibm9kZSIsICJpc0NvbGxlY3Rpb24iLCAia2VlcFNjYWxhciIsICJpc1NjYWxhciIsICJhbGxvd1NjYWxhciIsICJuIiwgInN0cmluZ2lmeUNvbW1lbnQiLCAic3RyIiwgImluZGVudENvbW1lbnQiLCAiY29tbWVudCIsICJpbmRlbnQiLCAibGluZUNvbW1lbnQiLCAiRk9MRF9GTE9XIiwgIkZPTERfQkxPQ0siLCAiRk9MRF9RVU9URUQiLCAiZm9sZEZsb3dMaW5lcyIsICJ0ZXh0IiwgImluZGVudCIsICJtb2RlIiwgImluZGVudEF0U3RhcnQiLCAibGluZVdpZHRoIiwgIm1pbkNvbnRlbnRXaWR0aCIsICJvbkZvbGQiLCAib25PdmVyZmxvdyIsICJlbmRTdGVwIiwgImZvbGRzIiwgImVzY2FwZWRGb2xkcyIsICJlbmQiLCAic3BsaXQiLCAicHJldiIsICJvdmVyZmxvdyIsICJpIiwgImVzY1N0YXJ0IiwgImVzY0VuZCIsICJjb25zdW1lTW9yZUluZGVudGVkTGluZXMiLCAiY2giLCAibmV4dCIsICJqIiwgInJlcyIsICJmb2xkIiwgInN0YXJ0IiwgImdldEZvbGRPcHRpb25zIiwgImN0eCIsICJpc0Jsb2NrIiwgImNvbnRhaW5zRG9jdW1lbnRNYXJrZXIiLCAic3RyIiwgImxpbmVMZW5ndGhPdmVyTGltaXQiLCAibGluZVdpZHRoIiwgImluZGVudExlbmd0aCIsICJsaW1pdCIsICJzdHJMZW4iLCAic3RhcnQiLCAiZG91YmxlUXVvdGVkU3RyaW5nIiwgInZhbHVlIiwgImpzb24iLCAiaW1wbGljaXRLZXkiLCAibWluTXVsdGlMaW5lTGVuZ3RoIiwgImluZGVudCIsICJpIiwgImNoIiwgImNvZGUiLCAiZm9sZEZsb3dMaW5lcyIsICJGT0xEX1FVT1RFRCIsICJzaW5nbGVRdW90ZWRTdHJpbmciLCAicmVzIiwgIkZPTERfRkxPVyIsICJxdW90ZWRTdHJpbmciLCAic2luZ2xlUXVvdGUiLCAicXMiLCAiaGFzRG91YmxlIiwgImhhc1NpbmdsZSIsICJibG9ja0VuZE5ld2xpbmVzIiwgImUiLCAiYmxvY2tTdHJpbmciLCAiY29tbWVudCIsICJ0eXBlIiwgIm9uQ29tbWVudCIsICJvbkNob21wS2VlcCIsICJibG9ja1F1b3RlIiwgImNvbW1lbnRTdHJpbmciLCAibGl0ZXJhbCIsICJTY2FsYXIiLCAiY2hvbXAiLCAiZW5kU3RhcnQiLCAiZW5kIiwgImVuZE5sUG9zIiwgInN0YXJ0V2l0aFNwYWNlIiwgInN0YXJ0RW5kIiwgInN0YXJ0TmxQb3MiLCAiaGVhZGVyIiwgImJvZHkiLCAiRk9MRF9CTE9DSyIsICJwbGFpblN0cmluZyIsICJpdGVtIiwgImFjdHVhbFN0cmluZyIsICJpbmRlbnRTdGVwIiwgImluRmxvdyIsICJ0ZXN0IiwgInRhZyIsICJfYSIsICJjb21wYXQiLCAidGFncyIsICJzdHJpbmdpZnlTdHJpbmciLCAic3MiLCAiX3N0cmluZ2lmeSIsICJfdHlwZSIsICJkZWZhdWx0S2V5VHlwZSIsICJkZWZhdWx0U3RyaW5nVHlwZSIsICJ0IiwgImNyZWF0ZVN0cmluZ2lmeUNvbnRleHQiLCAiZG9jIiwgIm9wdGlvbnMiLCAib3B0IiwgInN0cmluZ2lmeUNvbW1lbnQiLCAiaW5GbG93IiwgImdldFRhZ09iamVjdCIsICJ0YWdzIiwgIml0ZW0iLCAiX2EiLCAiX2IiLCAiX2MiLCAiX2QiLCAibWF0Y2giLCAidCIsICJ0YWdPYmoiLCAib2JqIiwgImlzU2NhbGFyIiwgInRlc3RNYXRjaCIsICJuYW1lIiwgInN0cmluZ2lmeVByb3BzIiwgIm5vZGUiLCAiYW5jaG9ycyIsICJwcm9wcyIsICJhbmNob3IiLCAiaXNDb2xsZWN0aW9uIiwgImFuY2hvcklzVmFsaWQiLCAidGFnIiwgInN0cmluZ2lmeSIsICJjdHgiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgImlzUGFpciIsICJpc0FsaWFzIiwgImlzTm9kZSIsICJvIiwgInN0ciIsICJzdHJpbmdpZnlTdHJpbmciLCAic3RyaW5naWZ5UGFpciIsICJrZXkiLCAidmFsdWUiLCAiY3R4IiwgIm9uQ29tbWVudCIsICJvbkNob21wS2VlcCIsICJfYSIsICJfYiIsICJhbGxOdWxsVmFsdWVzIiwgImRvYyIsICJpbmRlbnQiLCAiaW5kZW50U3RlcCIsICJjb21tZW50U3RyaW5nIiwgImluZGVudFNlcSIsICJzaW1wbGVLZXlzIiwgImtleUNvbW1lbnQiLCAiaXNOb2RlIiwgImlzQ29sbGVjdGlvbiIsICJtc2ciLCAiZXhwbGljaXRLZXkiLCAiaXNTY2FsYXIiLCAiU2NhbGFyIiwgImtleUNvbW1lbnREb25lIiwgImNob21wS2VlcCIsICJzdHIiLCAic3RyaW5naWZ5IiwgImxpbmVDb21tZW50IiwgInZzYiIsICJ2Y2IiLCAidmFsdWVDb21tZW50IiwgImlzU2VxIiwgInZhbHVlQ29tbWVudERvbmUiLCAidmFsdWVTdHIiLCAid3MiLCAiY3MiLCAiaW5kZW50Q29tbWVudCIsICJ2czAiLCAibmwwIiwgImhhc05ld2xpbmUiLCAiZmxvdyIsICJoYXNQcm9wc0xpbmUiLCAic3AwIiwgIndhcm4iLCAibG9nTGV2ZWwiLCAid2FybmluZyIsICJNRVJHRV9LRVkiLCAibWVyZ2UiLCAidmFsdWUiLCAiU2NhbGFyIiwgImFkZE1lcmdlVG9KU01hcCIsICJpc01lcmdlS2V5IiwgImN0eCIsICJrZXkiLCAiaXNTY2FsYXIiLCAidGFnIiwgIm1hcCIsICJpc0FsaWFzIiwgImlzU2VxIiwgIml0IiwgIm1lcmdlVmFsdWUiLCAic291cmNlIiwgImlzTWFwIiwgInNyY01hcCIsICJhZGRQYWlyVG9KU01hcCIsICJjdHgiLCAibWFwIiwgImtleSIsICJ2YWx1ZSIsICJpc05vZGUiLCAiaXNNZXJnZUtleSIsICJhZGRNZXJnZVRvSlNNYXAiLCAianNLZXkiLCAidG9KUyIsICJzdHJpbmdLZXkiLCAic3RyaW5naWZ5S2V5IiwgImpzVmFsdWUiLCAic3RyQ3R4IiwgImNyZWF0ZVN0cmluZ2lmeUNvbnRleHQiLCAibm9kZSIsICJzdHJLZXkiLCAianNvblN0ciIsICJ3YXJuIiwgImNyZWF0ZVBhaXIiLCAia2V5IiwgInZhbHVlIiwgImN0eCIsICJrIiwgImNyZWF0ZU5vZGUiLCAidiIsICJQYWlyIiwgIl9QYWlyIiwgIk5PREVfVFlQRSIsICJQQUlSIiwgInNjaGVtYSIsICJpc05vZGUiLCAiXyIsICJwYWlyIiwgImFkZFBhaXJUb0pTTWFwIiwgIm9uQ29tbWVudCIsICJvbkNob21wS2VlcCIsICJzdHJpbmdpZnlQYWlyIiwgInN0cmluZ2lmeUNvbGxlY3Rpb24iLCAiY29sbGVjdGlvbiIsICJjdHgiLCAib3B0aW9ucyIsICJfYSIsICJzdHJpbmdpZnlGbG93Q29sbGVjdGlvbiIsICJzdHJpbmdpZnlCbG9ja0NvbGxlY3Rpb24iLCAiY29tbWVudCIsICJpdGVtcyIsICJibG9ja0l0ZW1QcmVmaXgiLCAiZmxvd0NoYXJzIiwgIml0ZW1JbmRlbnQiLCAib25DaG9tcEtlZXAiLCAib25Db21tZW50IiwgImluZGVudCIsICJjb21tZW50U3RyaW5nIiwgIml0ZW1DdHgiLCAiY2hvbXBLZWVwIiwgImxpbmVzIiwgImkiLCAiaXRlbSIsICJpc05vZGUiLCAiYWRkQ29tbWVudEJlZm9yZSIsICJpc1BhaXIiLCAiaWsiLCAic3RyIiwgInN0cmluZ2lmeSIsICJsaW5lQ29tbWVudCIsICJsaW5lIiwgImluZGVudENvbW1lbnQiLCAiaW5kZW50U3RlcCIsICJmY1BhZGRpbmciLCAicmVxTmV3bGluZSIsICJsaW5lc0F0VmFsdWUiLCAiaXYiLCAic3RhcnQiLCAiZW5kIiwgImxlbiIsICJzdW0iLCAiaWMiLCAiZmluZFBhaXIiLCAiaXRlbXMiLCAia2V5IiwgImsiLCAiaXNTY2FsYXIiLCAiaXQiLCAiaXNQYWlyIiwgIllBTUxNYXAiLCAiQ29sbGVjdGlvbiIsICJzY2hlbWEiLCAiTUFQIiwgIm9iaiIsICJjdHgiLCAia2VlcFVuZGVmaW5lZCIsICJyZXBsYWNlciIsICJtYXAiLCAiYWRkIiwgInZhbHVlIiwgImNyZWF0ZVBhaXIiLCAicGFpciIsICJvdmVyd3JpdGUiLCAiX2EiLCAiX3BhaXIiLCAiUGFpciIsICJwcmV2IiwgInNvcnRFbnRyaWVzIiwgImlzU2NhbGFyVmFsdWUiLCAiaSIsICJpdGVtIiwgImtlZXBTY2FsYXIiLCAibm9kZSIsICJfIiwgIlR5cGUiLCAiYWRkUGFpclRvSlNNYXAiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgInN0cmluZ2lmeUNvbGxlY3Rpb24iLCAibWFwIiwgIllBTUxNYXAiLCAib25FcnJvciIsICJpc01hcCIsICJzY2hlbWEiLCAib2JqIiwgImN0eCIsICJZQU1MU2VxIiwgIkNvbGxlY3Rpb24iLCAic2NoZW1hIiwgIlNFUSIsICJ2YWx1ZSIsICJrZXkiLCAiaWR4IiwgImFzSXRlbUluZGV4IiwgImtlZXBTY2FsYXIiLCAiaXQiLCAiaXNTY2FsYXIiLCAicHJldiIsICJpc1NjYWxhclZhbHVlIiwgIl8iLCAiY3R4IiwgInNlcSIsICJpIiwgIml0ZW0iLCAidG9KUyIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAic3RyaW5naWZ5Q29sbGVjdGlvbiIsICJvYmoiLCAicmVwbGFjZXIiLCAiY3JlYXRlTm9kZSIsICJzZXEiLCAiWUFNTFNlcSIsICJvbkVycm9yIiwgImlzU2VxIiwgInNjaGVtYSIsICJvYmoiLCAiY3R4IiwgInN0cmluZyIsICJ2YWx1ZSIsICJzdHIiLCAiaXRlbSIsICJjdHgiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgInN0cmluZ2lmeVN0cmluZyIsICJudWxsVGFnIiwgInZhbHVlIiwgIlNjYWxhciIsICJzb3VyY2UiLCAiY3R4IiwgImJvb2xUYWciLCAidmFsdWUiLCAic3RyIiwgIlNjYWxhciIsICJzb3VyY2UiLCAiY3R4IiwgInN2IiwgInN0cmluZ2lmeU51bWJlciIsICJmb3JtYXQiLCAibWluRnJhY3Rpb25EaWdpdHMiLCAidGFnIiwgInZhbHVlIiwgIm51bSIsICJuIiwgImkiLCAiZCIsICJmbG9hdE5hTiIsICJ2YWx1ZSIsICJzdHIiLCAic3RyaW5naWZ5TnVtYmVyIiwgImZsb2F0RXhwIiwgIm5vZGUiLCAibnVtIiwgImZsb2F0IiwgIlNjYWxhciIsICJkb3QiLCAiaW50SWRlbnRpZnkiLCAidmFsdWUiLCAiaW50UmVzb2x2ZSIsICJzdHIiLCAib2Zmc2V0IiwgInJhZGl4IiwgImludEFzQmlnSW50IiwgImludFN0cmluZ2lmeSIsICJub2RlIiwgInByZWZpeCIsICJzdHJpbmdpZnlOdW1iZXIiLCAiaW50T2N0IiwgIl9vbkVycm9yIiwgIm9wdCIsICJpbnQiLCAiaW50SGV4IiwgInNjaGVtYSIsICJtYXAiLCAic2VxIiwgInN0cmluZyIsICJudWxsVGFnIiwgImJvb2xUYWciLCAiaW50T2N0IiwgImludCIsICJpbnRIZXgiLCAiZmxvYXROYU4iLCAiZmxvYXRFeHAiLCAiZmxvYXQiLCAiaW50SWRlbnRpZnkiLCAidmFsdWUiLCAic3RyaW5naWZ5SlNPTiIsICJqc29uU2NhbGFycyIsICJzdHIiLCAiU2NhbGFyIiwgIl9vbkVycm9yIiwgImludEFzQmlnSW50IiwgImpzb25FcnJvciIsICJvbkVycm9yIiwgInNjaGVtYSIsICJtYXAiLCAic2VxIiwgImJpbmFyeSIsICJ2YWx1ZSIsICJzcmMiLCAib25FcnJvciIsICJzdHIiLCAiYnVmZmVyIiwgImkiLCAiY29tbWVudCIsICJ0eXBlIiwgImN0eCIsICJvbkNvbW1lbnQiLCAib25DaG9tcEtlZXAiLCAiYnVmIiwgInMiLCAiU2NhbGFyIiwgImxpbmVXaWR0aCIsICJuIiwgImxpbmVzIiwgIm8iLCAic3RyaW5naWZ5U3RyaW5nIiwgInJlc29sdmVQYWlycyIsICJzZXEiLCAib25FcnJvciIsICJfYSIsICJpc1NlcSIsICJpIiwgIml0ZW0iLCAiaXNQYWlyIiwgImlzTWFwIiwgInBhaXIiLCAiUGFpciIsICJTY2FsYXIiLCAiY24iLCAiY3JlYXRlUGFpcnMiLCAic2NoZW1hIiwgIml0ZXJhYmxlIiwgImN0eCIsICJyZXBsYWNlciIsICJwYWlycyIsICJZQU1MU2VxIiwgIml0IiwgImtleSIsICJ2YWx1ZSIsICJrZXlzIiwgImNyZWF0ZVBhaXIiLCAiWUFNTE9NYXAiLCAiX1lBTUxPTWFwIiwgIllBTUxTZXEiLCAiWUFNTE1hcCIsICJfIiwgImN0eCIsICJtYXAiLCAicGFpciIsICJrZXkiLCAidmFsdWUiLCAiaXNQYWlyIiwgInRvSlMiLCAic2NoZW1hIiwgIml0ZXJhYmxlIiwgInBhaXJzIiwgImNyZWF0ZVBhaXJzIiwgIm9tYXAiLCAic2VxIiwgIm9uRXJyb3IiLCAicmVzb2x2ZVBhaXJzIiwgInNlZW5LZXlzIiwgImlzU2NhbGFyIiwgImJvb2xTdHJpbmdpZnkiLCAidmFsdWUiLCAic291cmNlIiwgImN0eCIsICJ0cnVlVGFnIiwgImZhbHNlVGFnIiwgIlNjYWxhciIsICJmbG9hdE5hTiIsICJ2YWx1ZSIsICJzdHIiLCAic3RyaW5naWZ5TnVtYmVyIiwgImZsb2F0RXhwIiwgIm5vZGUiLCAibnVtIiwgImZsb2F0IiwgIlNjYWxhciIsICJkb3QiLCAiZiIsICJpbnRJZGVudGlmeSIsICJ2YWx1ZSIsICJpbnRSZXNvbHZlIiwgInN0ciIsICJvZmZzZXQiLCAicmFkaXgiLCAiaW50QXNCaWdJbnQiLCAic2lnbiIsICJuIiwgImludFN0cmluZ2lmeSIsICJub2RlIiwgInByZWZpeCIsICJzdHJpbmdpZnlOdW1iZXIiLCAiaW50QmluIiwgIl9vbkVycm9yIiwgIm9wdCIsICJpbnRPY3QiLCAiaW50IiwgImludEhleCIsICJZQU1MU2V0IiwgIl9ZQU1MU2V0IiwgIllBTUxNYXAiLCAic2NoZW1hIiwgImtleSIsICJwYWlyIiwgImlzUGFpciIsICJQYWlyIiwgImZpbmRQYWlyIiwgImtlZXBQYWlyIiwgImlzU2NhbGFyIiwgInZhbHVlIiwgInByZXYiLCAiXyIsICJjdHgiLCAib25Db21tZW50IiwgIm9uQ2hvbXBLZWVwIiwgIml0ZXJhYmxlIiwgInJlcGxhY2VyIiwgInNldCIsICJjcmVhdGVQYWlyIiwgIm1hcCIsICJvbkVycm9yIiwgImlzTWFwIiwgInBhcnNlU2V4YWdlc2ltYWwiLCAic3RyIiwgImFzQmlnSW50IiwgInNpZ24iLCAicGFydHMiLCAibnVtIiwgIm4iLCAicmVzIiwgInAiLCAic3RyaW5naWZ5U2V4YWdlc2ltYWwiLCAibm9kZSIsICJ2YWx1ZSIsICJzdHJpbmdpZnlOdW1iZXIiLCAiXzYwIiwgImludFRpbWUiLCAiX29uRXJyb3IiLCAiaW50QXNCaWdJbnQiLCAiZmxvYXRUaW1lIiwgInRpbWVzdGFtcCIsICJtYXRjaCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAibWlsbGlzZWMiLCAiZGF0ZSIsICJ0eiIsICJzY2hlbWEiLCAibWFwIiwgInNlcSIsICJzdHJpbmciLCAibnVsbFRhZyIsICJ0cnVlVGFnIiwgImZhbHNlVGFnIiwgImludEJpbiIsICJpbnRPY3QiLCAiaW50IiwgImludEhleCIsICJmbG9hdE5hTiIsICJmbG9hdEV4cCIsICJmbG9hdCIsICJiaW5hcnkiLCAibWVyZ2UiLCAib21hcCIsICJwYWlycyIsICJzZXQiLCAiaW50VGltZSIsICJmbG9hdFRpbWUiLCAidGltZXN0YW1wIiwgInNjaGVtYXMiLCAic2NoZW1hIiwgIm1hcCIsICJzZXEiLCAic3RyaW5nIiwgInRhZ3NCeU5hbWUiLCAiYmluYXJ5IiwgImJvb2xUYWciLCAiZmxvYXQiLCAiZmxvYXRFeHAiLCAiZmxvYXROYU4iLCAiZmxvYXRUaW1lIiwgImludCIsICJpbnRIZXgiLCAiaW50T2N0IiwgImludFRpbWUiLCAibWVyZ2UiLCAibnVsbFRhZyIsICJvbWFwIiwgInBhaXJzIiwgInNldCIsICJ0aW1lc3RhbXAiLCAiY29yZUtub3duVGFncyIsICJnZXRUYWdzIiwgImN1c3RvbVRhZ3MiLCAic2NoZW1hTmFtZSIsICJhZGRNZXJnZVRhZyIsICJzY2hlbWFUYWdzIiwgInRhZ3MiLCAia2V5cyIsICJrZXkiLCAidGFnIiwgInRhZ09iaiIsICJ0YWdOYW1lIiwgInNvcnRNYXBFbnRyaWVzQnlLZXkiLCAiYSIsICJiIiwgIlNjaGVtYSIsICJfU2NoZW1hIiwgImNvbXBhdCIsICJjdXN0b21UYWdzIiwgIm1lcmdlIiwgInJlc29sdmVLbm93blRhZ3MiLCAic2NoZW1hIiwgInNvcnRNYXBFbnRyaWVzIiwgInRvU3RyaW5nRGVmYXVsdHMiLCAiZ2V0VGFncyIsICJjb3JlS25vd25UYWdzIiwgIk1BUCIsICJtYXAiLCAiU0NBTEFSIiwgInN0cmluZyIsICJTRVEiLCAic2VxIiwgImNvcHkiLCAic3RyaW5naWZ5RG9jdW1lbnQiLCAiZG9jIiwgIm9wdGlvbnMiLCAiX2EiLCAibGluZXMiLCAiaGFzRGlyZWN0aXZlcyIsICJkaXIiLCAiY3R4IiwgImNyZWF0ZVN0cmluZ2lmeUNvbnRleHQiLCAiY29tbWVudFN0cmluZyIsICJjcyIsICJpbmRlbnRDb21tZW50IiwgImNob21wS2VlcCIsICJjb250ZW50Q29tbWVudCIsICJpc05vZGUiLCAib25DaG9tcEtlZXAiLCAiYm9keSIsICJzdHJpbmdpZnkiLCAibGluZUNvbW1lbnQiLCAiZGMiLCAiRG9jdW1lbnQiLCAiX0RvY3VtZW50IiwgInZhbHVlIiwgInJlcGxhY2VyIiwgIm9wdGlvbnMiLCAiTk9ERV9UWVBFIiwgIkRPQyIsICJfcmVwbGFjZXIiLCAib3B0IiwgInZlcnNpb24iLCAiRGlyZWN0aXZlcyIsICJjb3B5IiwgImlzTm9kZSIsICJhc3NlcnRDb2xsZWN0aW9uIiwgInBhdGgiLCAibm9kZSIsICJuYW1lIiwgInByZXYiLCAiYW5jaG9yTmFtZXMiLCAiZmluZE5ld0FuY2hvciIsICJBbGlhcyIsICJrZXlUb1N0ciIsICJ2IiwgImFzU3RyIiwgImFsaWFzRHVwbGljYXRlT2JqZWN0cyIsICJhbmNob3JQcmVmaXgiLCAiZmxvdyIsICJrZWVwVW5kZWZpbmVkIiwgIm9uVGFnT2JqIiwgInRhZyIsICJvbkFuY2hvciIsICJzZXRBbmNob3JzIiwgInNvdXJjZU9iamVjdHMiLCAiY3JlYXRlTm9kZUFuY2hvcnMiLCAiY3R4IiwgImNyZWF0ZU5vZGUiLCAiaXNDb2xsZWN0aW9uIiwgImtleSIsICJrIiwgIlBhaXIiLCAiaXNFbXB0eVBhdGgiLCAia2VlcFNjYWxhciIsICJpc1NjYWxhciIsICJjb2xsZWN0aW9uRnJvbVBhdGgiLCAic3YiLCAiU2NoZW1hIiwgImpzb24iLCAianNvbkFyZyIsICJtYXBBc01hcCIsICJtYXhBbGlhc0NvdW50IiwgInJldml2ZXIiLCAicmVzIiwgInRvSlMiLCAiY291bnQiLCAiYXBwbHlSZXZpdmVyIiwgInMiLCAic3RyaW5naWZ5RG9jdW1lbnQiLCAiY29udGVudHMiLCAiWUFNTEVycm9yIiwgIm5hbWUiLCAicG9zIiwgImNvZGUiLCAibWVzc2FnZSIsICJZQU1MUGFyc2VFcnJvciIsICJZQU1MV2FybmluZyIsICJwcmV0dGlmeUVycm9yIiwgInNyYyIsICJsYyIsICJlcnJvciIsICJsaW5lIiwgImNvbCIsICJjaSIsICJsaW5lU3RyIiwgInRyaW1TdGFydCIsICJwcmV2IiwgImNvdW50IiwgImVuZCIsICJwb2ludGVyIiwgInJlc29sdmVQcm9wcyIsICJ0b2tlbnMiLCAiZmxvdyIsICJpbmRpY2F0b3IiLCAibmV4dCIsICJvZmZzZXQiLCAib25FcnJvciIsICJwYXJlbnRJbmRlbnQiLCAic3RhcnRPbk5ld2xpbmUiLCAic3BhY2VCZWZvcmUiLCAiYXROZXdsaW5lIiwgImhhc1NwYWNlIiwgImNvbW1lbnQiLCAiY29tbWVudFNlcCIsICJoYXNOZXdsaW5lIiwgInJlcVNwYWNlIiwgInRhYiIsICJhbmNob3IiLCAidGFnIiwgIm5ld2xpbmVBZnRlclByb3AiLCAiY29tbWEiLCAiZm91bmQiLCAic3RhcnQiLCAidG9rZW4iLCAiY2IiLCAibGFzdCIsICJlbmQiLCAiY29udGFpbnNOZXdsaW5lIiwgImtleSIsICJzdCIsICJpdCIsICJmbG93SW5kZW50Q2hlY2siLCAiaW5kZW50IiwgImZjIiwgIm9uRXJyb3IiLCAiZW5kIiwgImNvbnRhaW5zTmV3bGluZSIsICJtYXBJbmNsdWRlcyIsICJjdHgiLCAiaXRlbXMiLCAic2VhcmNoIiwgInVuaXF1ZUtleXMiLCAiaXNFcXVhbCIsICJhIiwgImIiLCAiaXNTY2FsYXIiLCAicGFpciIsICJzdGFydENvbE1zZyIsICJyZXNvbHZlQmxvY2tNYXAiLCAiY29tcG9zZU5vZGUiLCAiY29tcG9zZUVtcHR5Tm9kZSIsICJjdHgiLCAiYm0iLCAib25FcnJvciIsICJ0YWciLCAiX2EiLCAiX2IiLCAiTm9kZUNsYXNzIiwgIllBTUxNYXAiLCAibWFwIiwgIm9mZnNldCIsICJjb21tZW50RW5kIiwgImNvbGxJdGVtIiwgInN0YXJ0IiwgImtleSIsICJzZXAiLCAidmFsdWUiLCAia2V5UHJvcHMiLCAicmVzb2x2ZVByb3BzIiwgImltcGxpY2l0S2V5IiwgImNvbnRhaW5zTmV3bGluZSIsICJrZXlTdGFydCIsICJrZXlOb2RlIiwgImZsb3dJbmRlbnRDaGVjayIsICJtYXBJbmNsdWRlcyIsICJ2YWx1ZVByb3BzIiwgInZhbHVlTm9kZSIsICJwYWlyIiwgIlBhaXIiLCAicmVzb2x2ZUJsb2NrU2VxIiwgImNvbXBvc2VOb2RlIiwgImNvbXBvc2VFbXB0eU5vZGUiLCAiY3R4IiwgImJzIiwgIm9uRXJyb3IiLCAidGFnIiwgIl9hIiwgIk5vZGVDbGFzcyIsICJZQU1MU2VxIiwgInNlcSIsICJvZmZzZXQiLCAiY29tbWVudEVuZCIsICJzdGFydCIsICJ2YWx1ZSIsICJwcm9wcyIsICJyZXNvbHZlUHJvcHMiLCAibm9kZSIsICJmbG93SW5kZW50Q2hlY2siLCAicmVzb2x2ZUVuZCIsICJlbmQiLCAib2Zmc2V0IiwgInJlcVNwYWNlIiwgIm9uRXJyb3IiLCAiY29tbWVudCIsICJoYXNTcGFjZSIsICJzZXAiLCAidG9rZW4iLCAic291cmNlIiwgInR5cGUiLCAiY2IiLCAiYmxvY2tNc2ciLCAiaXNCbG9jayIsICJ0b2tlbiIsICJyZXNvbHZlRmxvd0NvbGxlY3Rpb24iLCAiY29tcG9zZU5vZGUiLCAiY29tcG9zZUVtcHR5Tm9kZSIsICJjdHgiLCAiZmMiLCAib25FcnJvciIsICJ0YWciLCAiX2EiLCAiX2IiLCAiaXNNYXAiLCAiZmNOYW1lIiwgIk5vZGVDbGFzcyIsICJZQU1MTWFwIiwgIllBTUxTZXEiLCAiY29sbCIsICJhdFJvb3QiLCAib2Zmc2V0IiwgImkiLCAiY29sbEl0ZW0iLCAic3RhcnQiLCAia2V5IiwgInNlcCIsICJ2YWx1ZSIsICJwcm9wcyIsICJyZXNvbHZlUHJvcHMiLCAiY29udGFpbnNOZXdsaW5lIiwgInByZXZJdGVtQ29tbWVudCIsICJsb29wIiwgInN0IiwgInByZXYiLCAiaXNQYWlyIiwgInZhbHVlTm9kZSIsICJrZXlTdGFydCIsICJrZXlOb2RlIiwgInZhbHVlUHJvcHMiLCAicGFpciIsICJQYWlyIiwgIm1hcCIsICJtYXBJbmNsdWRlcyIsICJlbmRSYW5nZSIsICJleHBlY3RlZEVuZCIsICJjZSIsICJlZSIsICJjZVBvcyIsICJuYW1lIiwgIm1zZyIsICJlbmQiLCAicmVzb2x2ZUVuZCIsICJyZXNvbHZlQ29sbGVjdGlvbiIsICJDTiIsICJjdHgiLCAidG9rZW4iLCAib25FcnJvciIsICJ0YWdOYW1lIiwgInRhZyIsICJjb2xsIiwgInJlc29sdmVCbG9ja01hcCIsICJyZXNvbHZlQmxvY2tTZXEiLCAicmVzb2x2ZUZsb3dDb2xsZWN0aW9uIiwgIkNvbGwiLCAiY29tcG9zZUNvbGxlY3Rpb24iLCAicHJvcHMiLCAiX2EiLCAiX2IiLCAidGFnVG9rZW4iLCAibXNnIiwgImFuY2hvciIsICJubCIsICJsYXN0UHJvcCIsICJleHBUeXBlIiwgIllBTUxNYXAiLCAiWUFNTFNlcSIsICJ0IiwgImt0IiwgInJlcyIsICJub2RlIiwgImlzTm9kZSIsICJTY2FsYXIiLCAicmVzb2x2ZUJsb2NrU2NhbGFyIiwgImN0eCIsICJzY2FsYXIiLCAib25FcnJvciIsICJzdGFydCIsICJoZWFkZXIiLCAicGFyc2VCbG9ja1NjYWxhckhlYWRlciIsICJ0eXBlIiwgIlNjYWxhciIsICJsaW5lcyIsICJzcGxpdExpbmVzIiwgImNob21wU3RhcnQiLCAiaSIsICJjb250ZW50IiwgInZhbHVlIiwgImVuZCIsICJ0cmltSW5kZW50IiwgIm9mZnNldCIsICJjb250ZW50U3RhcnQiLCAiaW5kZW50IiwgInNlcCIsICJwcmV2TW9yZUluZGVudGVkIiwgImNybGYiLCAibWVzc2FnZSIsICJwcm9wcyIsICJzdHJpY3QiLCAic291cmNlIiwgIm1vZGUiLCAiY2hvbXAiLCAiZXJyb3IiLCAiY2giLCAibiIsICJoYXNTcGFjZSIsICJjb21tZW50IiwgImxlbmd0aCIsICJ0b2tlbiIsICJ0cyIsICJzcGxpdCIsICJmaXJzdCIsICJtIiwgInJlc29sdmVGbG93U2NhbGFyIiwgInNjYWxhciIsICJzdHJpY3QiLCAib25FcnJvciIsICJvZmZzZXQiLCAidHlwZSIsICJzb3VyY2UiLCAiZW5kIiwgIl90eXBlIiwgInZhbHVlIiwgIl9vbkVycm9yIiwgInJlbCIsICJjb2RlIiwgIm1zZyIsICJTY2FsYXIiLCAicGxhaW5WYWx1ZSIsICJzaW5nbGVRdW90ZWRWYWx1ZSIsICJkb3VibGVRdW90ZWRWYWx1ZSIsICJ2YWx1ZUVuZCIsICJyZSIsICJyZXNvbHZlRW5kIiwgImJhZENoYXIiLCAiZm9sZExpbmVzIiwgIl9hIiwgImZpcnN0IiwgImxpbmUiLCAiZSIsICJtYXRjaCIsICJyZXMiLCAic2VwIiwgInBvcyIsICJsYXN0IiwgImkiLCAiY2giLCAiZm9sZCIsICJmb2xkTmV3bGluZSIsICJuZXh0IiwgImNjIiwgImVzY2FwZUNvZGVzIiwgImxlbmd0aCIsICJwYXJzZUNoYXJDb2RlIiwgInJhdyIsICJ3c1N0YXJ0IiwgImNvbXBvc2VTY2FsYXIiLCAiY3R4IiwgInRva2VuIiwgInRhZ1Rva2VuIiwgIm9uRXJyb3IiLCAidmFsdWUiLCAidHlwZSIsICJjb21tZW50IiwgInJhbmdlIiwgInJlc29sdmVCbG9ja1NjYWxhciIsICJyZXNvbHZlRmxvd1NjYWxhciIsICJ0YWdOYW1lIiwgIm1zZyIsICJ0YWciLCAiU0NBTEFSIiwgImZpbmRTY2FsYXJUYWdCeU5hbWUiLCAiZmluZFNjYWxhclRhZ0J5VGVzdCIsICJzY2FsYXIiLCAicmVzIiwgImlzU2NhbGFyIiwgIlNjYWxhciIsICJlcnJvciIsICJzY2hlbWEiLCAiX2EiLCAibWF0Y2hXaXRoVGVzdCIsICJrdCIsICJhdEtleSIsICJkaXJlY3RpdmVzIiwgImNvbXBhdCIsICJ0cyIsICJjcyIsICJlbXB0eVNjYWxhclBvc2l0aW9uIiwgIm9mZnNldCIsICJiZWZvcmUiLCAicG9zIiwgImkiLCAic3QiLCAiQ04iLCAiY29tcG9zZU5vZGUiLCAiY29tcG9zZUVtcHR5Tm9kZSIsICJjdHgiLCAidG9rZW4iLCAicHJvcHMiLCAib25FcnJvciIsICJhdEtleSIsICJzcGFjZUJlZm9yZSIsICJjb21tZW50IiwgImFuY2hvciIsICJ0YWciLCAibm9kZSIsICJpc1NyY1Rva2VuIiwgImNvbXBvc2VBbGlhcyIsICJjb21wb3NlU2NhbGFyIiwgImNvbXBvc2VDb2xsZWN0aW9uIiwgIm1lc3NhZ2UiLCAiaXNTY2FsYXIiLCAib2Zmc2V0IiwgImJlZm9yZSIsICJwb3MiLCAiZW5kIiwgImVtcHR5U2NhbGFyUG9zaXRpb24iLCAib3B0aW9ucyIsICJzb3VyY2UiLCAiYWxpYXMiLCAiQWxpYXMiLCAidmFsdWVFbmQiLCAicmUiLCAicmVzb2x2ZUVuZCIsICJjb21wb3NlRG9jIiwgIm9wdGlvbnMiLCAiZGlyZWN0aXZlcyIsICJvZmZzZXQiLCAic3RhcnQiLCAidmFsdWUiLCAiZW5kIiwgIm9uRXJyb3IiLCAib3B0cyIsICJkb2MiLCAiRG9jdW1lbnQiLCAiY3R4IiwgInByb3BzIiwgInJlc29sdmVQcm9wcyIsICJjb21wb3NlTm9kZSIsICJjb21wb3NlRW1wdHlOb2RlIiwgImNvbnRlbnRFbmQiLCAicmUiLCAicmVzb2x2ZUVuZCIsICJnZXRFcnJvclBvcyIsICJzcmMiLCAib2Zmc2V0IiwgInNvdXJjZSIsICJwYXJzZVByZWx1ZGUiLCAicHJlbHVkZSIsICJfYSIsICJjb21tZW50IiwgImF0Q29tbWVudCIsICJhZnRlckVtcHR5TGluZSIsICJDb21wb3NlciIsICJvcHRpb25zIiwgImNvZGUiLCAibWVzc2FnZSIsICJ3YXJuaW5nIiwgInBvcyIsICJZQU1MV2FybmluZyIsICJZQU1MUGFyc2VFcnJvciIsICJEaXJlY3RpdmVzIiwgImRvYyIsICJhZnRlckRvYyIsICJkYyIsICJpc0NvbGxlY3Rpb24iLCAiaXQiLCAiaXNQYWlyIiwgImNiIiwgInRva2VucyIsICJmb3JjZURvYyIsICJlbmRPZmZzZXQiLCAidG9rZW4iLCAiX195aWVsZFN0YXIiLCAiY29tcG9zZURvYyIsICJtc2ciLCAiZXJyb3IiLCAiZW5kIiwgInJlc29sdmVFbmQiLCAib3B0cyIsICJEb2N1bWVudCIsICJCUkVBSyIsICJTS0lQIiwgIlJFTU9WRSIsICJ2aXNpdCIsICJjc3QiLCAidmlzaXRvciIsICJfdmlzaXQiLCAicGF0aCIsICJpdGVtIiwgImZpZWxkIiwgImluZGV4IiwgInRvayIsICJwYXJlbnQiLCAiY29sbCIsICJjdHJsIiwgInRva2VuIiwgImkiLCAiY2kiLCAiQk9NIiwgIkRPQ1VNRU5UIiwgIkZMT1dfRU5EIiwgIlNDQUxBUiIsICJ0b2tlblR5cGUiLCAic291cmNlIiwgIkJPTSIsICJET0NVTUVOVCIsICJGTE9XX0VORCIsICJTQ0FMQVIiLCAiaXNFbXB0eSIsICJjaCIsICJoZXhEaWdpdHMiLCAidGFnQ2hhcnMiLCAiZmxvd0luZGljYXRvckNoYXJzIiwgImludmFsaWRBbmNob3JDaGFycyIsICJpc05vdEFuY2hvckNoYXIiLCAiTGV4ZXIiLCAic291cmNlIiwgImluY29tcGxldGUiLCAiX2EiLCAibmV4dCIsICJfX3lpZWxkU3RhciIsICJpIiwgIm4iLCAib2Zmc2V0IiwgImluZGVudCIsICJkdCIsICJlbmQiLCAic3RhdGUiLCAibGluZSIsICJCT00iLCAiZGlyRW5kIiwgImNzIiwgInNwIiwgIkRPQ1VNRU5UIiwgInMiLCAiY2gwIiwgImNoMSIsICJubCIsICJGTE9XX0VORCIsICJxdW90ZSIsICJxYiIsICJsb29wIiwgImxhc3RDaGFyIiwgIlNDQUxBUiIsICJpbkZsb3ciLCAiYWxsb3dFbXB0eSIsICJhbGxvd1RhYnMiLCAidGVzdCIsICJMaW5lQ291bnRlciIsICJvZmZzZXQiLCAibG93IiwgImhpZ2giLCAibWlkIiwgInN0YXJ0IiwgImluY2x1ZGVzVG9rZW4iLCAibGlzdCIsICJ0eXBlIiwgImkiLCAiZmluZE5vbkVtcHR5SW5kZXgiLCAiaXNGbG93VG9rZW4iLCAidG9rZW4iLCAiZ2V0UHJldlByb3BzIiwgInBhcmVudCIsICJfYSIsICJpdCIsICJnZXRGaXJzdEtleVN0YXJ0UHJvcHMiLCAicHJldiIsICJsb29wIiwgImZpeEZsb3dTZXFJdGVtcyIsICJmYyIsICJQYXJzZXIiLCAib25OZXdMaW5lIiwgIkxleGVyIiwgInNvdXJjZSIsICJpbmNvbXBsZXRlIiwgImxleGVtZSIsICJfX3lpZWxkU3RhciIsICJ0b2tlblR5cGUiLCAibWVzc2FnZSIsICJ0b3AiLCAibiIsICJlcnJvciIsICJsYXN0IiwgInN0IiwgImRvYyIsICJidiIsICJzY2FsYXIiLCAic3RhcnQiLCAic2VwIiwgIm1hcCIsICJubCIsICJlbmQiLCAiYXRNYXBJbmRlbnQiLCAiYXROZXh0SXRlbSIsICJrZXkiLCAiZnMiLCAic2VxIiwgImluZGVudCIsICJkb2NFbmQiLCAicGFyc2VPcHRpb25zIiwgIm9wdGlvbnMiLCAicHJldHR5RXJyb3JzIiwgIkxpbmVDb3VudGVyIiwgInBhcnNlRG9jdW1lbnQiLCAic291cmNlIiwgIm9wdGlvbnMiLCAibGluZUNvdW50ZXIiLCAicHJldHR5RXJyb3JzIiwgInBhcnNlT3B0aW9ucyIsICJwYXJzZXIiLCAiUGFyc2VyIiwgImNvbXBvc2VyIiwgIkNvbXBvc2VyIiwgImRvYyIsICJfZG9jIiwgIllBTUxQYXJzZUVycm9yIiwgInByZXR0aWZ5RXJyb3IiLCAicGFyc2UiLCAic3JjIiwgInJldml2ZXIiLCAiX3Jldml2ZXIiLCAid2FybmluZyIsICJ3YXJuIiwgImltcG9ydF9zb3J0ZWRfYnRyZWUiLCAiUCIsICJMaXRlcmFscyIsICJ0b1N0cmluZyIsICJmaWVsZCIsICJzZXR0aW5nIiwgInJlY3Vyc2l2ZSIsICJ3cmFwcGVkIiwgIndyYXBWYWx1ZSIsICJyZXN1bHQiLCAiZiIsICJlIiwgInJlbmRlck1pbmltYWxEYXRlIiwgInJlbmRlck1pbmltYWxEdXJhdGlvbiIsICJ2YWwiLCAiaXNOdWxsIiwgImlzTnVtYmVyIiwgImlzU3RyaW5nIiwgImlzQm9vbGVhbiIsICJpc0R1cmF0aW9uIiwgImlzRGF0ZSIsICJpc0FycmF5IiwgImlzTGluayIsICJpc0Z1bmN0aW9uIiwgImlzT2JqZWN0IiwgIm1hcExlYXZlcyIsICJmdW5jIiwgImtleSIsICJ2YWx1ZSIsICJlcXVhbHMiLCAiZmlyc3QiLCAic2Vjb25kIiwgImNvbXBhcmUiLCAidmFsMSIsICJ2YWwyIiwgImxpbmtOb3JtYWxpemVyIiwgIl9hIiwgIl9iIiwgIndyYXAxIiwgIndyYXAyIiwgImxpbmsxIiwgImxpbmsyIiwgIm5vcm1hbGl6ZSIsICJ4IiwgInBhdGhDb21wYXJlIiwgInR5cGVDb21wYXJlIiwgImYxIiwgImYyIiwgImluZGV4IiwgImNvbXAiLCAibzEiLCAibzIiLCAiazEiLCAiazIiLCAia2V5Q29tcGFyZSIsICJ0eXBlT2YiLCAiaXNUcnV0aHkiLCAiZGVlcENvcHkiLCAidiIsICJEYXRlVGltZSIsICJEdXJhdGlvbiIsICJMaW5rIiwgIkdyb3VwaW5ncyIsICJpc0VsZW1lbnRHcm91cCIsICJlbnRyeSIsICJpc0dyb3VwaW5nIiwgImVsZW1lbnQiLCAiaXNMZWFmIiwgImNvdW50IiwgImVsZW1lbnRzIiwgInN1Ymdyb3VwIiwgInNsaWNlIiwgInN0YXJ0IiwgImVuZCIsICJzZWVuIiwgImdyb3VwIiwgImdyb3VwU2l6ZSIsICJncm91cFN0YXJ0IiwgImdyb3VwRW5kIiwgIlN1Y2Nlc3MiLCAiX1N1Y2Nlc3MiLCAidmFsdWUiLCAiZiIsICJzdWNjIiwgIl9mYWlsIiwgIl92YWx1ZSIsICJfbWVzc2FnZSIsICJGYWlsdXJlIiwgIl9GYWlsdXJlIiwgImVycm9yIiwgIl9mIiwgIl9zdWNjIiwgImZhaWwiLCAibWVzc2FnZSIsICJSZXN1bHQiLCAic3VjY2VzcyIsICJmYWlsdXJlIiwgImZsYXRNYXAyIiwgImZpcnN0IiwgInNlY29uZCIsICJtYXAyIiwgImEiLCAiYiIsICJtYXBBbGwiLCAiaW5wdXQiLCAiZnVuYyIsICJyZXN1bHQiLCAiZWxlbWVudCIsICJvdXRwdXQiLCAidHJ5aW5nIiwgImNhbGwiLCAiYXN5bmMiLCAicHJvbWlzZSIsICJGaWx0ZXJzIiwgImF0b20iLCAic2V0IiwgImNvbnN0YW50IiwgInZhbHVlIiwgIm51bGxhYmxlQXRvbSIsICJuZWdhdGVkIiwgIm5lZ2F0ZSIsICJmaWx0ZXIiLCAiZW1wdHkiLCAicmVzb2x2ZSIsICJldmVyeXRoaW5nIiwgInNldEludGVyc2VjdE5lZ2F0aW9uIiwgImludGVyc2VjdCIsICJlbGVtZW50cyIsICJsYXp5SW50ZXJzZWN0IiwgIngiLCAicHJvZHVjZSIsICJsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb24iLCAiUmVzdWx0IiwgImF0b21zIiwgIm5lZ2F0aW9ucyIsICJlbGVtZW50IiwgIm1heWJlRmlsdGVyIiwgInNldEludGVyc2VjdCIsICJzZXRVbmlvbiIsICJ1bmlvbiIsICJmaWx0ZXJzIiwgImxhenlVbmlvbiIsICJsYXp5RmFpbGFibGVVbmlvbiIsICJzZXRzIiwgInNvcnRlZCIsICJhIiwgImIiLCAicmVzdWx0IiwgImxhcmdlc3QiLCAiRXhwcmVzc2lvbnMiLCAidmFyaWFibGUiLCAibmFtZSIsICJsaXRlcmFsIiwgInZhbHVlIiwgImJpbmFyeU9wIiwgImxlZnQiLCAib3AiLCAicmlnaHQiLCAiaW5kZXgiLCAib2JqIiwgImluZGV4VmFyaWFibGUiLCAicGFydHMiLCAicmVzdWx0IiwgImxhbWJkYSIsICJhcmdzIiwgImZ1bmMiLCAibGlzdCIsICJ2YWx1ZXMiLCAib2JqZWN0IiwgIm5lZ2F0ZSIsICJjaGlsZCIsICJpc0NvbXBhcmVPcCIsICJ1bmJvdW5kVmFyaWFibGVzIiwgImV4cHIiLCAiYm91bmQiLCAiTGl0ZXJhbHMiLCAiRmlsdGVycyIsICJhIiwgIm5ld0JvdW5kIiwgImFyZyIsICJ2IiwgInRvU3RyaW5nIiwgImsiLCAid3JhcHBlZCIsICJQUklNSVRJVkVTIiwgIl8iLCAic3RyIiwgInEiLCAiY2hhcnMiLCAiZXNjYXBlZCIsICJzdGFydCIsICJyZXN0IiwgIkVNT0pJX1JFR0VYIiwgImZpcnN0IiwgImxpbmtJbm5lciIsICJMaW5rIiwgInAiLCAibCIsICJfc3RyIiwgInllYXIiLCAibW9udGgiLCAiRGF0ZVRpbWUiLCAiREFURV9TSE9SVEhBTkRTIiwgImEiLCAiYiIsICJjaGFpbk9wdCIsICJ5bSIsICJkYXkiLCAieW1kIiwgImhvdXIiLCAieW1kaCIsICJtaW51dGUiLCAieW1kaG0iLCAic2Vjb25kIiwgInltZGhtcyIsICJtaWxsaXNlY29uZCIsICJkdCIsICJwbSIsICJociIsICJfYSIsICJ6b25lIiwgIl9iIiwgImQiLCAiRFVSQVRJT05fVFlQRVMiLCAiY291bnQiLCAidCIsICJ4IiwgImR1cmF0aW9ucyIsICJjIiwgIm5vcm1hbGl6ZUR1cmF0aW9uIiwgImYiLCAiX3MiLCAiZW1vamlfcmVnZXhfZGVmYXVsdCIsICJEdXJhdGlvbiIsICJFWFBSRVNTSU9OIiwgIkV4cHJlc3Npb25zIiwgImNyZWF0ZUZ1bmN0aW9uIiwgIl9mdW5jIiwgImRhdGUiLCAiZHVyIiwgIm5hbWUiLCAiX3NlcCIsICJ2YWx1ZSIsICJ2YWxzIiwgInJlcyIsICJlbnRyeSIsICJvYmoiLCAicG9zdGZpeGVzIiwgInJlc3VsdCIsICJwb3N0IiwgImZpZWxkIiwgImlkZW50IiwgIl9pZ25vcmUiLCAiZXhwciIsICJfMiIsICJfMyIsICJfNCIsICJfMSIsICJleHBycyIsICJjcmVhdGVCaW5hcnlQYXJzZXIiLCAiUVVFUlkiLCAiaWQiLCAiZnVuYyIsICJwYXRoIiwgImNoaWxkcmVuIiwgInBhcmVudHMiLCAibGluayIsICJzb3VyY2UiLCAibGVmdCIsICJfb3AiLCAicmlnaHQiLCAiY3JlYXRlQmluYXJ5UGFyc2VyIiwgImNoaWxkIiwgInNlcCIsICJjb21iaW5lIiwgImZpcnN0IiwgInJlc3QiLCAibm9kZSIsICJpbmRleCIsICJjcmVhdGVGdW5jdGlvbiIsICJmdW5jIiwgImFyZ3MiLCAicmVhbEZ1bmMiLCAiZiIsICJhIiwgImNoYWluT3B0IiwgImJhc2UiLCAiZnVuY3MiLCAiX3N1Y2Nlc3MiLCAiX2ZhaWx1cmUiLCAiaW5wdXQiLCAicmVzdWx0IiwgIm5leHQiLCAiUCIsICJtYXBPYmplY3RWYWx1ZXMiLCAib2JqZWN0IiwgImZ1bmMiLCAicmVzdWx0IiwgImtleSIsICJ2YWx1ZSIsICJKc29uQ29udmVyc2lvbiIsICJpbnB1dCIsICJqc29uIiwgImxpdGVyYWwiLCAid3JhcHBlZCIsICJMaXRlcmFscyIsICJtYXBPYmplY3RWYWx1ZXMiLCAidmFsdWUiLCAibm9ybWFsaXplciIsICJ2IiwgInR5cGUiLCAiRGF0ZVRpbWUiLCAiRHVyYXRpb24iLCAiTGluayIsICJqc29uSW5saW5lRmllbGQiLCAiZmllbGQiLCAiSnNvbkNvbnZlcnNpb24iLCAiYXNJbmxpbmVGaWVsZCIsICJsb2NhbCIsICJsaW5lbm8iLCAiZiIsICJwYXJzZUlubGluZVZhbHVlIiwgIklOTElORV9GSUVMRF9XUkFQUEVSUyIsICJmaW5kQ2xvc2luZyIsICJsaW5lIiwgInN0YXJ0IiwgIm9wZW4iLCAiY2xvc2UiLCAibmVzdGluZyIsICJlc2NhcGVkIiwgImluZGV4IiwgImNoYXIiLCAiZmluZFNlcGFyYXRvciIsICJzZXAiLCAiZmluZFNwZWNpZmljSW5saW5lRmllbGQiLCAia2V5IiwgInZhbHVlIiwgImlubGluZSIsICJQUklNSVRJVkVTIiwgImV4dHJhY3RJbmxpbmVGaWVsZHMiLCAiaW5jbHVkZVRhc2tGaWVsZHMiLCAiZmllbGRzIiwgIndyYXBwZXIiLCAiZm91bmRJbmRleCIsICJwYXJzZWRGaWVsZCIsICJleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMiLCAiYSIsICJiIiwgImZpbHRlcmVkRmllbGRzIiwgImkiLCAiRlVMTF9MSU5FX0tFWV9QQVJUIiwgImVtb2ppX3JlZ2V4X2RlZmF1bHQiLCAicGFydHMiLCAiRlVMTF9MSU5FX0tFWV9QQVJTRVIiLCAiZXh0cmFjdEZ1bGxMaW5lRmllbGQiLCAidGV4dCIsICJyZWFsS2V5IiwgIkNSRUFURURfREFURV9SRUdFWCIsICJEVUVfREFURV9SRUdFWCIsICJET05FX0RBVEVfUkVHRVgiLCAiU0NIRURVTEVEX0RBVEVfUkVHRVgiLCAiU1RBUlRfREFURV9SRUdFWCIsICJFTU9KSV9SRUdFWEVTIiwgInJlc3VsdHMiLCAicmVnZXgiLCAibWF0Y2giLCAiWWFtbENvbnZlcnNpb24iLCAieWFtbCIsICJ2YWx1ZSIsICJ3cmFwcGVkIiwgIkxpdGVyYWxzIiwgImxpdGVyYWwiLCAibWFwT2JqZWN0VmFsdWVzIiwgInJlc3VsdCIsICJjaGlsZCIsICJEYXRlVGltZSIsICJvYmplY3QiLCAia2V5IiwgImRhdGVQYXJzZSIsICJQUklNSVRJVkVTIiwgImR1cmF0aW9uUGFyc2UiLCAibGlua1BhcnNlIiwgIllBTUxfREFUQV9SRUdFWCIsICJDT0RFQkxPQ0tfRkVOQ0VfUkVHRVgiLCAiTElTVF9JVEVNX1JFR0VYIiwgIm1hcmtkb3duSW1wb3J0IiwgInBhdGgiLCAibWFya2Rvd24iLCAibWV0YWRhdGEiLCAic3RhdHMiLCAibGluZXMiLCAicGFnZU1ldGFkYXRhIiwgImZyb250bWF0dGVyIiwgInNlY3Rpb25zIiwgIm1hcmtkb3duU291cmNlSW1wb3J0IiwgIlBhZ2VEYXRhIiwgIl9hIiwgIl9iIiwgIl9jIiwgIl9kIiwgIl9lIiwgIl9mIiwgIl9nIiwgIl9oIiwgIl9pIiwgIl9qIiwgIl9rIiwgIl9sIiwgIl9tIiwgIl9uIiwgIl9vIiwgIl9wIiwgInBhcnNlRnJvbnRtYXR0ZXJCbG9jayIsICJtYXJrZG93bk1ldGFkYXRhIiwgIk1ldGFkYXRhIiwgInNlY3Rpb25BcnJheSIsICJtZXRhaGVhZGluZ3MiLCAiYSIsICJiIiwgIkJUcmVlIiwgImluZGV4IiwgImVudHJ5IiwgInN0YXJ0IiwgImVuZCIsICJzZWN0aW9uIiwgIlNlY3Rpb25EYXRhIiwgImVtcHR5bGluZXMiLCAiZ2V0RmlsZVRpdGxlIiwgImZpcnN0IiwgImJsb2NrcyIsICJibG9ja09yZGluYWwiLCAiYmxvY2siLCAic3RhcnRMaW5lIiwgIkxpc3RCbG9ja0RhdGEiLCAieWFtbCIsICJzcGxpdCIsICJwYXJzZSIsICJEYXRhYmxvY2tEYXRhIiwgIm1hdGNoIiwgIkNvZGVibG9ja0RhdGEiLCAibGFuZ3VhZ2VzIiwgIkJhc2VCbG9ja0RhdGEiLCAibG9va3VwIiwgImNvbnRlbnRSZWdleCIsICJtYXJrZXJSZWdleCIsICJsaXN0SXRlbXMiLCAibGlzdCIsICJzeW1ib2wiLCAidGV4dCIsICJpdGVtIiwgIkxpc3RJdGVtRGF0YSIsICJsaXN0QmxvY2siLCAidGFnZGVmIiwgInRhZyIsICJsaW5lIiwgInJhd3RhZyIsICJleHRyYWN0VGFncyIsICJsaW5rZGVmIiwgImxpbmsiLCAiTGluayIsICJmaWVsZCIsICJpdGVyYXRlSW5saW5lRmllbGRzIiwgImNvbnRlbnQiLCAibGluZW5vIiwgImlubGluZUZpZWxkcyIsICJleHRyYWN0SW5saW5lRmllbGRzIiwgImlmaWVsZCIsICJhc0lubGluZUZpZWxkIiwgImZ1bGxMaW5lIiwgImV4dHJhY3RGdWxsTGluZUZpZWxkIiwgInJlc3VsdCIsICJrZXkiLCAidmFsdWUiLCAiSnNvbkNvbnZlcnNpb24iLCAiWWFtbENvbnZlcnNpb24iLCAidHJlZSIsICJ0YXJnZXQiLCAiayIsICJzcGxpdEZyb250bWF0dGVyVGFnT3JBbGlhcyIsICJwIiwgImMiLCAic3RyIiwgImRhdGEiLCAib24iLCAicyIsICJ2IiwgImxvd2VyIiwgIm1hcE9iamVjdFZhbHVlcyIsICJqc29uSW5saW5lRmllbGQiLCAibGVuZ3RoIiwgImdldEV4dGVuc2lvbiIsICJ4IiwgInRpdGxlIiwgImxldmVsIiwgIm9yZGluYWwiLCAiYmxvY2tJZCIsICJzdHlsZSIsICJjb250ZW50U3RhcnQiLCAiY29udGVudEVuZCIsICJ0eXBlIiwgInBhcmVudExpbmUiLCAic3RhdHVzIiwgImVsZW1lbnQiLCAiY2FudmFzSW1wb3J0IiwgInBhdGgiLCAic291cmNlIiwgImluZGV4IiwgInN0YXRzIiwgIl9hIiwgImNhbnZhcyIsICJDYW52YXNEYXRhIiwgInBhcnNlZCIsICJjIiwgImZyb250bWF0dGVyIiwgIm1ldGFkYXRhIiwgImxpbmVzIiwgInNlY3Rpb25zIiwgIm1hcmtkb3duU291cmNlSW1wb3J0IiwgImNhcmQiLCAiQ2FudmFzQ2FyZERhdGEiLCAiaSIsICJ0YWciLCAibGluayIsICJmaWVsZCIsICJpdGVyYXRlSW5saW5lRmllbGRzIiwgIkFic3RyYWN0Q2FudmFzQ2FyZERhdGEiLCAiaWQiLCAibm9kZUpzb24iLCAiTWV0YWRhdGEiLCAiTGluayIsICJzZWN0aW9uIiwgIl9fc3ByZWFkUHJvcHMiLCAiX19zcHJlYWRWYWx1ZXMiLCAieCIsICJkIiwgImV2ZW50IiwgIm1lc3NhZ2UiLCAibWFya2Rvd24iLCAibWFya2Rvd25JbXBvcnQiLCAiY2FudmFzIiwgImNhbnZhc0ltcG9ydCIsICJlcnJvciJdCn0K\n'); } // src/index/web-worker/importer.ts @@ -53495,12 +50278,12 @@ var _DatacoreInitializer = class _DatacoreInitializer extends import_obsidian8.C if (!this.active || this.current.length >= _DatacoreInitializer.BATCH_SIZE) { return; } - const next2 = this.queue.pop(); - if (next2) { - this.current.push(next2); - this.init(next2).then((result) => this.handleResult(next2, result)).catch((result) => this.handleResult(next2, result)); + const next3 = this.queue.pop(); + if (next3) { + this.current.push(next3); + this.init(next3).then((result) => this.handleResult(next3, result)).catch((result) => this.handleResult(next3, result)); this.runNext(); - } else if (!next2 && this.current.length == 0) { + } else if (!next3 && this.current.length == 0) { this.active = false; this.done.resolve({ durationMs: Date.now() - this.start, @@ -53572,13 +50355,13 @@ var CUSTOM_VIEW_CONTEXT = G(void 0); function DatacoreViewSettings() { const view = x2(CUSTOM_VIEW_CONTEXT); const setViewState = T2( - () => (0, import_obsidian9.debounce)((state) => view.setState(state, { history: false }), 500), + () => (0, import_obsidian9.debounce)((state2) => view.setState(state2, { history: false }), 500), [view] ); const [localState, setLocalState] = h2(view.getState()); const setState = q2( - (state) => { - const finalState = { ...localState, ...state }; + (state2) => { + const finalState = { ...localState, ...state2 }; setLocalState(finalState); setViewState(finalState); }, @@ -53749,8 +50532,8 @@ var DatacoreQueryView = class extends import_obsidian9.ItemView { return this.internalState; } /** Update the state of this view with new metadata. Generally controlled by the settings pane. */ - async setState(state, _result) { - this.internalState = state; + async setState(state2, _result) { + this.internalState = state2; this.rerender(); } /** Swap the active view. */ @@ -54002,16 +50785,6 @@ var GeneralSettingsTab = class extends import_obsidian10.PluginSettingTab { //! Provides utilities for executing queries against the storage layer. /*! Bundled license information: -react-is/cjs/react-is.production.min.js: - (** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) - react-is/cjs/react-is.development.js: (** @license React v16.13.1 * react-is.development.js @@ -54045,6 +50818,6 @@ localforage/dist/localforage.js: * @class *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNpbW1vbi9zcmMvcGFyc2ltbW9uLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9lbW9qaS1yZWdleC9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci90b2tlbml6ZXIva2V5d29yZHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdG9rZW5pemVyL3R5cGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3Rva2VuaXplci9zdGF0ZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci91dGlsL2NoYXJjb2Rlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci90cmF2ZXJzZXIvYmFzZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci90cmF2ZXJzZXIvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci91dGlsL3doaXRlc3BhY2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdXRpbC9pZGVudGlmaWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3Rva2VuaXplci9yZWFkV29yZFRyZWUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdG9rZW5pemVyL3JlYWRXb3JkLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3Rva2VuaXplci9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3BhcnNlci9wbHVnaW5zL2pzeC94aHRtbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvZ2V0SlNYUHJhZ21hSW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9KU1hUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvZ2V0Tm9uVHlwZUlkZW50aWZpZXJzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvQ0pTSW1wb3J0UHJvY2Vzc29yLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zZXQtYXJyYXkvc3JjL3NldC1hcnJheS50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvc291cmNlbWFwLWNvZGVjL3NyYy92bHEudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9zcmMvc3RyaW5ncy50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvc291cmNlbWFwLWNvZGVjL3NyYy9zY29wZXMudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9zcmMvc291cmNlbWFwLWNvZGVjLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9yZXNvbHZlLXVyaS9zcmMvcmVzb2x2ZS11cmkudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcvc3JjL3Jlc29sdmUudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcvc3JjL3N0cmlwLWZpbGVuYW1lLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC90cmFjZS1tYXBwaW5nL3NyYy9zb3VyY2VtYXAtc2VnbWVudC50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvc29ydC50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvYmluYXJ5LXNlYXJjaC50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvYnktc291cmNlLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC90cmFjZS1tYXBwaW5nL3NyYy9hbnktbWFwLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC90cmFjZS1tYXBwaW5nL3NyYy90cmFjZS1tYXBwaW5nLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9nZW4tbWFwcGluZy9zcmMvc291cmNlbWFwLXNlZ21lbnQudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL2dlbi1tYXBwaW5nL3NyYy9nZW4tbWFwcGluZy50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2NvbXB1dGVTb3VyY2VNYXAuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9IZWxwZXJNYW5hZ2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC91dGlsL2dldElkZW50aWZpZXJOYW1lcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L05hbWVNYW5hZ2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy90cy1pbnRlcmZhY2UtY2hlY2tlci9kaXN0L3V0aWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWludGVyZmFjZS1jaGVja2VyL2Rpc3QvdHlwZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWludGVyZmFjZS1jaGVja2VyL2Rpc3QvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9PcHRpb25zLWdlbi10eXBlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L09wdGlvbnMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdHJhdmVyc2VyL2x2YWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvcGx1Z2lucy90eXBlc2NyaXB0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3BsdWdpbnMvanN4L2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3BsdWdpbnMvdHlwZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdHJhdmVyc2VyL2V4cHJlc3Npb24uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvcGx1Z2lucy9mbG93LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL3RyYXZlcnNlci9zdGF0ZW1lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9wYXJzZXIvdHJhdmVyc2VyL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvcGFyc2VyL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvdXRpbC9pc0FzeW5jT3BlcmF0aW9uLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvVG9rZW5Qcm9jZXNzb3IuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC91dGlsL2dldENsYXNzSW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvZWxpZGVJbXBvcnRFcXVhbHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC91dGlsL2dldERlY2xhcmF0aW9uSW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvaXNFeHBvcnRGcm9tLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvdXRpbC9yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC91dGlsL3Nob3VsZEVsaWRlRGVmYXVsdEV4cG9ydC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9DSlNJbXBvcnRUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9FU01JbXBvcnRUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9GbG93VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC90cmFuc2Zvcm1lcnMvSmVzdEhvaXN0VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC90cmFuc2Zvcm1lcnMvTnVtZXJpY1NlcGFyYXRvclRyYW5zZm9ybWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvdHJhbnNmb3JtZXJzL09wdGlvbmFsQ2F0Y2hCaW5kaW5nVHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC90cmFuc2Zvcm1lcnMvT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9SZWFjdERpc3BsYXlOYW1lVHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC90cmFuc2Zvcm1lcnMvUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3V0aWwvaXNJZGVudGlmaWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvdHJhbnNmb3JtZXJzL1R5cGVTY3JpcHRUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L3RyYW5zZm9ybWVycy9Sb290VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2xpbmVzLWFuZC1jb2x1bW5zL2J1aWxkL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvdXRpbC9mb3JtYXRUb2tlbnMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC91dGlsL2dldFRTSW1wb3J0ZWROYW1lcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvY29uc3RhbnRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL3V0aWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvb3B0aW9ucy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtZWxlbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jb21wb25lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvZGlmZi9wcm9wcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtY29udGV4dC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9kaWZmL2NoaWxkcmVuLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2RpZmYvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2RpZmYvY2F0Y2gtZXJyb3IuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvY2xvbmUtZWxlbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvUHVyZUNvbXBvbmVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvbWVtby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvZm9yd2FyZFJlZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvQ2hpbGRyZW4uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9jb21wYXQvc3JjL3N1c3BlbnNlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9zdXNwZW5zZS1saXN0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2NvbnN0YW50cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcG9ydGFscy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC9kaXN0L3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuY2pzLnByb2QuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QvZGlzdC91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmNqcy5kZXYuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QvZGlzdC91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmNqcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbWVtb2l6ZS1vbmUvZGlzdC9tZW1vaXplLW9uZS5janMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJpbWl0aXZlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJvcGVydHlLZXkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlUmVzdC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2V0UHJvdG90eXBlT2YuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2YuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZVN1cGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90YWdnZWRUZW1wbGF0ZUxpdGVyYWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS9pbmRleC5tanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9oYXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvY2hlY2tQcm9wVHlwZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3NvcnRlZC1idHJlZS9iK3RyZWUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2xvY2FsZm9yYWdlL2Rpc3QvbG9jYWxmb3JhZ2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BkYXRhc3RydWN0dXJlcy1qcy9xdWV1ZS9zcmMvcXVldWUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BkYXRhc3RydWN0dXJlcy1qcy9xdWV1ZS9pbmRleC5qcyIsICIuLi8uLi9zcmMvbWFpbi50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2x1eG9uLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvZXJyb3JzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9mb3JtYXRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC91dGlsLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9lbmdsaXNoLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9mb3JtYXR0ZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2ludmFsaWQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZXMvc3lzdGVtWm9uZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmVzL0lBTkFab25lLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZXMvZml4ZWRPZmZzZXRab25lLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZXMvaW52YWxpZFpvbmUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3pvbmVVdGlsLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvc2V0dGluZ3MuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2xvY2FsZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvcmVnZXhQYXJzZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9kdXJhdGlvbi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ludGVydmFsLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvZGlmZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvZGlnaXRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC90b2tlblBhcnNlci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvY29udmVyc2lvbnMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9kYXRldGltZS5qcyIsICIuLi8uLi9zcmMvdXRpbHMvbm9ybWFsaXplcnMudHMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vbGluay50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9wYXJzZXIudHMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vbGl0ZXJhbC50cyIsICIuLi8uLi9zcmMvYXBpL3Jlc3VsdC50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9maWx0ZXJzLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2V4cHJlc3Npb24udHMiLCAiLi4vLi4vc3JjL3VpL21hcmtkb3duLnRzeCIsICIuLi8uLi9zcmMvdXRpbHMvbWVkaWEudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvY29uc3RhbnRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL3V0aWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvb3B0aW9ucy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtZWxlbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jb21wb25lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvZGlmZi9wcm9wcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtY29udGV4dC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9kaWZmL2NoaWxkcmVuLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2RpZmYvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2Nsb25lLWVsZW1lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvZGlmZi9jYXRjaC1lcnJvci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvUHVyZUNvbXBvbmVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvbWVtby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvZm9yd2FyZFJlZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvQ2hpbGRyZW4uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9jb21wYXQvc3JjL3N1c3BlbnNlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9zdXNwZW5zZS1saXN0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2NvbnN0YW50cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcG9ydGFscy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2pzeC1ydW50aW1lL3NyYy91dGlscy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jb25zdGFudHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9qc3gtcnVudGltZS9zcmMvaW5kZXguanMiLCAiLi4vLi4vc3JjL2FwaS91aS9lbWJlZC50c3giLCAiLi4vLi4vc3JjL3VpL2phdmFzY3JpcHQudHN4IiwgIi4uLy4uL3NyYy91dGlscy9qYXZhc2NyaXB0LnRzIiwgIi4uLy4uL3NyYy91aS9ob29rcy50cyIsICIuLi8uLi9zcmMvdWkvbG9hZGluZy1ib3VuZGFyeS50c3giLCAiLi4vLi4vc3JjL2FwaS91aS9sYXlvdXQudHN4IiwgIi4uLy4uL3NyYy9hcGkvdWkvYmFzaWNzLnRzeCIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMvaW5kZXhhYmxlLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2ZpZWxkLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkLnRzIiwgIi4uLy4uL3NyYy91dGlscy9kYXRhLnRzIiwgIi4uLy4uL3NyYy9pbmRleC90eXBlcy9qc29uL2NvbW1vbi50cyIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMvbWFya2Rvd24udHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9QcmltaXRpdmUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJvcGVydHlLZXkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheVdpdGhIb2xlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVJlc3QuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC91c2VTdGF0ZU1hbmFnZXItN2UxZTg0ODkuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NldFByb3RvdHlwZU9mLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVTcHJlYWQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9zaGVldC9kaXN0L2Vtb3Rpb24tc2hlZXQuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL0VudW0uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVXRpbGl0eS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9Ub2tlbml6ZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvUGFyc2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1NlcmlhbGl6ZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvTWlkZGxld2FyZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vd2Vhay1tZW1vaXplL2Rpc3QvZW1vdGlvbi13ZWFrLW1lbW9pemUuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9tZW1vaXplL2Rpc3QvZW1vdGlvbi1tZW1vaXplLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vY2FjaGUvZGlzdC9lbW90aW9uLWNhY2hlLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdXRpbHMvZGlzdC9lbW90aW9uLXV0aWxzLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaGFzaC9kaXN0L2Vtb3Rpb24taGFzaC5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL3VuaXRsZXNzL2Rpc3QvZW1vdGlvbi11bml0bGVzcy5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL3NlcmlhbGl6ZS9kaXN0L2Vtb3Rpb24tc2VyaWFsaXplLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MvZGlzdC9lbW90aW9uLXVzZS1pbnNlcnRpb24tZWZmZWN0LXdpdGgtZmFsbGJhY2tzLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vcmVhY3QvZGlzdC9lbW90aW9uLWVsZW1lbnQtYjRjOGIyNjUuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9yZWFjdC9kaXN0L2Vtb3Rpb24tcmVhY3QuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90YWdnZWRUZW1wbGF0ZUxpdGVyYWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS91dGlscy9kaXN0L2Zsb2F0aW5nLXVpLnV0aWxzLm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMuZG9tLm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2RvbS9kaXN0L2Zsb2F0aW5nLXVpLmRvbS5tanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L2luZGV4LWEzMDFmNTI2LmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvU2VsZWN0LTFmZDU4OGM5LmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvcmVhY3Qtc2VsZWN0LmVzbS5qcyIsICIuLi8uLi9zcmMvdWkvZmllbGRzL2Jvb2xlYW4tZmllbGQudHN4IiwgIi4uLy4uL3NyYy91aS9maWVsZHMvcHJvZ3Jlc3MtZmllbGQudHN4IiwgIi4uLy4uL3NyYy91aS9maWVsZHMvcmF0aW5nLnRzeCIsICIuLi8uLi9zcmMvdXRpbHMvdGFzay50cyIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMveWFtbC50cyIsICIuLi8uLi9zcmMvaW5kZXgvZWRpdC9maWVsZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvZmllbGRzLnRzIiwgIi4uLy4uL3NyYy91aS9maWVsZHMvZWRpdGFibGUudHN4IiwgIi4uLy4uL3NyYy9hcGkvdWkvdmlld3MvbGlzdC50c3giLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy90YXNrLnRzeCIsICIuLi8uLi9zcmMvYXBpL3VpL3ZpZXdzL3BhZ2luZy50c3giLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucy9pbmRleC5tanMiLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy90YWJsZS50c3giLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy9jYWxsb3V0LnRzeCIsICIuLi8uLi9zcmMvYXBpL3VpL3ZpZXdzL2NhcmRzLnRzeCIsICIuLi8uLi9zcmMvYXBpL2RhdGEtYXJyYXkudHMiLCAiLi4vLi4vc3JjL2FwaS9jb2VyY2UudHMiLCAiLi4vLi4vc3JjL3V0aWxzL2RlZmVycmVkLnRzIiwgIi4uLy4uL3NyYy9hcGkvc2NyaXB0LWNhY2hlLnRzIiwgIi4uLy4uL3NyYy91aS9maWVsZHMvZWRpdGFibGUtZmllbGRzLnRzeCIsICIuLi8uLi9zcmMvYXBpL3VpL3ZpZXdzL3RyZWUtdGFibGUudHN4IiwgIi4uLy4uL3NyYy9hcGkvbG9jYWwtYXBpLnRzeCIsICIuLi8uLi9zcmMvYXBpL2FwaS50cyIsICIuLi8uLi9zcmMvaW5kZXgvc3RvcmFnZS9mb2xkZXIudHMiLCAiLi4vLi4vc3JjL2luZGV4L3N0b3JhZ2UvaW52ZXJ0ZWQudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2ZsYXRxdWV1ZS9pbmRleC5qcyIsICIuLi8uLi9zcmMvaW5kZXgvc3RvcmFnZS9maWVsZHMudHMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vYmluYXJ5b3AudHMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vZnVuY3Rpb25zLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2V2YWx1YXRvci50cyIsICIuLi8uLi9zcmMvaW5kZXgvc3RvcmFnZS9xdWVyeS1leGVjdXRvci50cyIsICIuLi8uLi9zcmMvaW5kZXgvZGF0YXN0b3JlLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9wZXJzaXN0ZXIudHMiLCAiaW5saW5lLXdvcmtlcjpfX2lubGluZS13b3JrZXIiLCAiLi4vLi4vc3JjL2luZGV4L3dlYi13b3JrZXIvaW1wb3J0ZXIud29ya2VyLnRzIiwgIi4uLy4uL3NyYy9pbmRleC93ZWItd29ya2VyL2ltcG9ydGVyLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9kYXRhY29yZS50cyIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMvZmlsZXMudHMiLCAiLi4vLi4vc3JjL2luZGV4L2VtYmVkLXF1ZXVlLnRzIiwgIi4uLy4uL3NyYy9pbmRleC90eXBlcy9jYW52YXMudHMiLCAiLi4vLi4vc3JjL3NldHRpbmdzLnRzIiwgIi4uLy4uL3NyYy91aS92aWV3LXBhZ2UudHN4IiwgIi4uLy4uL3NyYy91aS9pbmRleC1zdGF0dXMudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gUGFyc2ltbW9uKGFjdGlvbikge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUGFyc2ltbW9uKSkge1xuICAgIHJldHVybiBuZXcgUGFyc2ltbW9uKGFjdGlvbik7XG4gIH1cbiAgdGhpcy5fID0gYWN0aW9uO1xufVxuXG52YXIgXyA9IFBhcnNpbW1vbi5wcm90b3R5cGU7XG5cbmZ1bmN0aW9uIHRpbWVzKG4sIGYpIHtcbiAgdmFyIGkgPSAwO1xuICBmb3IgKGk7IGkgPCBuOyBpKyspIHtcbiAgICBmKGkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvckVhY2goZiwgYXJyKSB7XG4gIHRpbWVzKGFyci5sZW5ndGgsIGZ1bmN0aW9uKGkpIHtcbiAgICBmKGFycltpXSwgaSwgYXJyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZShmLCBzZWVkLCBhcnIpIHtcbiAgZm9yRWFjaChmdW5jdGlvbihlbGVtLCBpLCBhcnIpIHtcbiAgICBzZWVkID0gZihzZWVkLCBlbGVtLCBpLCBhcnIpO1xuICB9LCBhcnIpO1xuICByZXR1cm4gc2VlZDtcbn1cblxuZnVuY3Rpb24gbWFwKGYsIGFycikge1xuICByZXR1cm4gcmVkdWNlKFxuICAgIGZ1bmN0aW9uKGFjYywgZWxlbSwgaSwgYSkge1xuICAgICAgcmV0dXJuIGFjYy5jb25jYXQoW2YoZWxlbSwgaSwgYSldKTtcbiAgICB9LFxuICAgIFtdLFxuICAgIGFyclxuICApO1xufVxuXG5mdW5jdGlvbiBsc2hpZnRCdWZmZXIoaW5wdXQpIHtcbiAgdmFyIGFzVHdvQnl0ZXMgPSByZWR1Y2UoXG4gICAgZnVuY3Rpb24oYSwgdiwgaSwgYikge1xuICAgICAgcmV0dXJuIGEuY29uY2F0KFxuICAgICAgICBpID09PSBiLmxlbmd0aCAtIDFcbiAgICAgICAgICA/IEJ1ZmZlci5mcm9tKFt2LCAwXSkucmVhZFVJbnQxNkJFKDApXG4gICAgICAgICAgOiBiLnJlYWRVSW50MTZCRShpKVxuICAgICAgKTtcbiAgICB9LFxuICAgIFtdLFxuICAgIGlucHV0XG4gICk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICBtYXAoZnVuY3Rpb24oeCkge1xuICAgICAgcmV0dXJuICgoeCA8PCAxKSAmIDB4ZmZmZikgPj4gODtcbiAgICB9LCBhc1R3b0J5dGVzKVxuICApO1xufVxuXG5mdW5jdGlvbiBjb25zdW1lQml0c0Zyb21CdWZmZXIobiwgaW5wdXQpIHtcbiAgdmFyIHN0YXRlID0geyB2OiAwLCBidWY6IGlucHV0IH07XG4gIHRpbWVzKG4sIGZ1bmN0aW9uKCkge1xuICAgIHN0YXRlID0ge1xuICAgICAgdjogKHN0YXRlLnYgPDwgMSkgfCBiaXRQZWVrQnVmZmVyKHN0YXRlLmJ1ZiksXG4gICAgICBidWY6IGxzaGlmdEJ1ZmZlcihzdGF0ZS5idWYpXG4gICAgfTtcbiAgfSk7XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gYml0UGVla0J1ZmZlcihpbnB1dCkge1xuICByZXR1cm4gaW5wdXRbMF0gPj4gNztcbn1cblxuZnVuY3Rpb24gc3VtKG51bUFycikge1xuICByZXR1cm4gcmVkdWNlKFxuICAgIGZ1bmN0aW9uKHgsIHkpIHtcbiAgICAgIHJldHVybiB4ICsgeTtcbiAgICB9LFxuICAgIDAsXG4gICAgbnVtQXJyXG4gICk7XG59XG5cbmZ1bmN0aW9uIGZpbmQocHJlZCwgYXJyKSB7XG4gIHJldHVybiByZWR1Y2UoXG4gICAgZnVuY3Rpb24oZm91bmQsIGVsZW0pIHtcbiAgICAgIHJldHVybiBmb3VuZCB8fCAocHJlZChlbGVtKSA/IGVsZW0gOiBmb3VuZCk7XG4gICAgfSxcbiAgICBudWxsLFxuICAgIGFyclxuICApO1xufVxuXG5mdW5jdGlvbiBidWZmZXJFeGlzdHMoKSB7XG4gIHJldHVybiB0eXBlb2YgQnVmZmVyICE9PSBcInVuZGVmaW5lZFwiO1xufVxuXG5mdW5jdGlvbiBzZXRFeGlzdHMoKSB7XG4gIGlmIChQYXJzaW1tb24uX3N1cHBvcnRzU2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gUGFyc2ltbW9uLl9zdXBwb3J0c1NldDtcbiAgfVxuICB2YXIgZXhpc3RzID0gdHlwZW9mIFNldCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgUGFyc2ltbW9uLl9zdXBwb3J0c1NldCA9IGV4aXN0cztcbiAgcmV0dXJuIGV4aXN0cztcbn1cblxuZnVuY3Rpb24gZW5zdXJlQnVmZmVyKCkge1xuICBpZiAoIWJ1ZmZlckV4aXN0cygpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJCdWZmZXIgZ2xvYmFsIGRvZXMgbm90IGV4aXN0OyBwbGVhc2UgdXNlIHdlYnBhY2sgaWYgeW91IG5lZWQgdG8gcGFyc2UgQnVmZmVycyBpbiB0aGUgYnJvd3Nlci5cIlxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYml0U2VxKGFsaWdubWVudHMpIHtcbiAgZW5zdXJlQnVmZmVyKCk7XG4gIHZhciB0b3RhbEJpdHMgPSBzdW0oYWxpZ25tZW50cyk7XG4gIGlmICh0b3RhbEJpdHMgJSA4ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJUaGUgYml0cyBbXCIgK1xuICAgICAgICBhbGlnbm1lbnRzLmpvaW4oXCIsIFwiKSArXG4gICAgICAgIFwiXSBhZGQgdXAgdG8gXCIgK1xuICAgICAgICB0b3RhbEJpdHMgK1xuICAgICAgICBcIiB3aGljaCBpcyBub3QgYW4gZXZlbiBudW1iZXIgb2YgYnl0ZXM7IHRoZSB0b3RhbCBzaG91bGQgYmUgZGl2aXNpYmxlIGJ5IDhcIlxuICAgICk7XG4gIH1cbiAgdmFyIGJ5dGVzID0gdG90YWxCaXRzIC8gODtcblxuICB2YXIgdG9vQmlnUmFuZ2UgPSBmaW5kKGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4geCA+IDQ4O1xuICB9LCBhbGlnbm1lbnRzKTtcbiAgaWYgKHRvb0JpZ1JhbmdlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgdG9vQmlnUmFuZ2UgKyBcIiBiaXQgcmFuZ2UgcmVxdWVzdGVkIGV4Y2VlZHMgNDggYml0ICg2IGJ5dGUpIE51bWJlciBtYXguXCJcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQYXJzaW1tb24oZnVuY3Rpb24oaW5wdXQsIGkpIHtcbiAgICB2YXIgbmV3UG9zID0gYnl0ZXMgKyBpO1xuICAgIGlmIChuZXdQb3MgPiBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBtYWtlRmFpbHVyZShpLCBieXRlcy50b1N0cmluZygpICsgXCIgYnl0ZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBtYWtlU3VjY2VzcyhcbiAgICAgIG5ld1BvcyxcbiAgICAgIHJlZHVjZShcbiAgICAgICAgZnVuY3Rpb24oYWNjLCBiaXRzKSB7XG4gICAgICAgICAgdmFyIHN0YXRlID0gY29uc3VtZUJpdHNGcm9tQnVmZmVyKGJpdHMsIGFjYy5idWYpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xsOiBhY2MuY29sbC5jb25jYXQoc3RhdGUudiksXG4gICAgICAgICAgICBidWY6IHN0YXRlLmJ1ZlxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHsgY29sbDogW10sIGJ1ZjogaW5wdXQuc2xpY2UoaSwgbmV3UG9zKSB9LFxuICAgICAgICBhbGlnbm1lbnRzXG4gICAgICApLmNvbGxcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYml0U2VxT2JqKG5hbWVkQWxpZ25tZW50cykge1xuICBlbnN1cmVCdWZmZXIoKTtcbiAgdmFyIHNlZW5LZXlzID0ge307XG4gIHZhciB0b3RhbEtleXMgPSAwO1xuICB2YXIgZnVsbEFsaWdubWVudHMgPSBtYXAoZnVuY3Rpb24oaXRlbSkge1xuICAgIGlmIChpc0FycmF5KGl0ZW0pKSB7XG4gICAgICB2YXIgcGFpciA9IGl0ZW07XG4gICAgICBpZiAocGFpci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiW1wiICtcbiAgICAgICAgICAgIHBhaXIuam9pbihcIiwgXCIpICtcbiAgICAgICAgICAgIFwiXSBzaG91bGQgYmUgbGVuZ3RoIDIsIGdvdCBsZW5ndGggXCIgK1xuICAgICAgICAgICAgcGFpci5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGFzc2VydFN0cmluZyhwYWlyWzBdKTtcbiAgICAgIGFzc2VydE51bWJlcihwYWlyWzFdKTtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2VlbktleXMsIHBhaXJbMF0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcIiArIHBhaXJbMF0pO1xuICAgICAgfVxuICAgICAgc2VlbktleXNbcGFpclswXV0gPSB0cnVlO1xuICAgICAgdG90YWxLZXlzKys7XG4gICAgICByZXR1cm4gcGFpcjtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0TnVtYmVyKGl0ZW0pO1xuICAgICAgcmV0dXJuIFtudWxsLCBpdGVtXTtcbiAgICB9XG4gIH0sIG5hbWVkQWxpZ25tZW50cyk7XG4gIGlmICh0b3RhbEtleXMgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJiaXRTZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFpciwgZ290IFtcIiArXG4gICAgICAgIG5hbWVkQWxpZ25tZW50cy5qb2luKFwiLCBcIikgK1xuICAgICAgICBcIl1cIlxuICAgICk7XG4gIH1cbiAgdmFyIG5hbWVzT25seSA9IG1hcChmdW5jdGlvbihwYWlyKSB7XG4gICAgcmV0dXJuIHBhaXJbMF07XG4gIH0sIGZ1bGxBbGlnbm1lbnRzKTtcbiAgdmFyIGFsaWdubWVudHNPbmx5ID0gbWFwKGZ1bmN0aW9uKHBhaXIpIHtcbiAgICByZXR1cm4gcGFpclsxXTtcbiAgfSwgZnVsbEFsaWdubWVudHMpO1xuXG4gIHJldHVybiBiaXRTZXEoYWxpZ25tZW50c09ubHkpLm1hcChmdW5jdGlvbihwYXJzZWQpIHtcbiAgICB2YXIgbmFtZWRQYXJzZWQgPSBtYXAoZnVuY3Rpb24obmFtZSwgaSkge1xuICAgICAgcmV0dXJuIFtuYW1lLCBwYXJzZWRbaV1dO1xuICAgIH0sIG5hbWVzT25seSk7XG5cbiAgICByZXR1cm4gcmVkdWNlKFxuICAgICAgZnVuY3Rpb24ob2JqLCBrdikge1xuICAgICAgICBpZiAoa3ZbMF0gIT09IG51bGwpIHtcbiAgICAgICAgICBvYmpba3ZbMF1dID0ga3ZbMV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICAgIG5hbWVkUGFyc2VkXG4gICAgKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQnVmZmVyRm9yKG90aGVyLCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyBQYXJzaW1tb24oZnVuY3Rpb24oaW5wdXQsIGkpIHtcbiAgICBlbnN1cmVCdWZmZXIoKTtcbiAgICBpZiAoaSArIGxlbmd0aCA+IGlucHV0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG1ha2VGYWlsdXJlKGksIGxlbmd0aCArIFwiIGJ5dGVzIGZvciBcIiArIG90aGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VTdWNjZXNzKGkgKyBsZW5ndGgsIGlucHV0LnNsaWNlKGksIGkgKyBsZW5ndGgpKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQnVmZmVyKGxlbmd0aCkge1xuICByZXR1cm4gcGFyc2VCdWZmZXJGb3IoXCJidWZmZXJcIiwgbGVuZ3RoKS5tYXAoZnVuY3Rpb24odW5zYWZlKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHVuc2FmZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlbmNvZGVkU3RyaW5nKGVuY29kaW5nLCBsZW5ndGgpIHtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwic3RyaW5nXCIsIGxlbmd0aCkubWFwKGZ1bmN0aW9uKGJ1ZmYpIHtcbiAgICByZXR1cm4gYnVmZi50b1N0cmluZyhlbmNvZGluZyk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc0ludGVnZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBNYXRoLmZsb29yKHZhbHVlKSA9PT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFZhbGlkSW50ZWdlckJ5dGVMZW5ndGhGb3Iod2hvLCBsZW5ndGgpIHtcbiAgaWYgKCFpc0ludGVnZXIobGVuZ3RoKSB8fCBsZW5ndGggPCAwIHx8IGxlbmd0aCA+IDYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3Iod2hvICsgXCIgcmVxdWlyZXMgaW50ZWdlciBsZW5ndGggaW4gcmFuZ2UgWzAsIDZdLlwiKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1aW50QkUobGVuZ3RoKSB7XG4gIGFzc2VydFZhbGlkSW50ZWdlckJ5dGVMZW5ndGhGb3IoXCJ1aW50QkVcIiwgbGVuZ3RoKTtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwidWludEJFKFwiICsgbGVuZ3RoICsgXCIpXCIsIGxlbmd0aCkubWFwKGZ1bmN0aW9uKGJ1ZmYpIHtcbiAgICByZXR1cm4gYnVmZi5yZWFkVUludEJFKDAsIGxlbmd0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1aW50TEUobGVuZ3RoKSB7XG4gIGFzc2VydFZhbGlkSW50ZWdlckJ5dGVMZW5ndGhGb3IoXCJ1aW50TEVcIiwgbGVuZ3RoKTtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwidWludExFKFwiICsgbGVuZ3RoICsgXCIpXCIsIGxlbmd0aCkubWFwKGZ1bmN0aW9uKGJ1ZmYpIHtcbiAgICByZXR1cm4gYnVmZi5yZWFkVUludExFKDAsIGxlbmd0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnRCRShsZW5ndGgpIHtcbiAgYXNzZXJ0VmFsaWRJbnRlZ2VyQnl0ZUxlbmd0aEZvcihcImludEJFXCIsIGxlbmd0aCk7XG4gIHJldHVybiBwYXJzZUJ1ZmZlckZvcihcImludEJFKFwiICsgbGVuZ3RoICsgXCIpXCIsIGxlbmd0aCkubWFwKGZ1bmN0aW9uKGJ1ZmYpIHtcbiAgICByZXR1cm4gYnVmZi5yZWFkSW50QkUoMCwgbGVuZ3RoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGludExFKGxlbmd0aCkge1xuICBhc3NlcnRWYWxpZEludGVnZXJCeXRlTGVuZ3RoRm9yKFwiaW50TEVcIiwgbGVuZ3RoKTtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwiaW50TEUoXCIgKyBsZW5ndGggKyBcIilcIiwgbGVuZ3RoKS5tYXAoZnVuY3Rpb24oYnVmZikge1xuICAgIHJldHVybiBidWZmLnJlYWRJbnRMRSgwLCBsZW5ndGgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZmxvYXRCRSgpIHtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwiZmxvYXRCRVwiLCA0KS5tYXAoZnVuY3Rpb24oYnVmZikge1xuICAgIHJldHVybiBidWZmLnJlYWRGbG9hdEJFKDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZmxvYXRMRSgpIHtcbiAgcmV0dXJuIHBhcnNlQnVmZmVyRm9yKFwiZmxvYXRMRVwiLCA0KS5tYXAoZnVuY3Rpb24oYnVmZikge1xuICAgIHJldHVybiBidWZmLnJlYWRGbG9hdExFKDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZG91YmxlQkUoKSB7XG4gIHJldHVybiBwYXJzZUJ1ZmZlckZvcihcImRvdWJsZUJFXCIsIDgpLm1hcChmdW5jdGlvbihidWZmKSB7XG4gICAgcmV0dXJuIGJ1ZmYucmVhZERvdWJsZUJFKDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZG91YmxlTEUoKSB7XG4gIHJldHVybiBwYXJzZUJ1ZmZlckZvcihcImRvdWJsZUxFXCIsIDgpLm1hcChmdW5jdGlvbihidWZmKSB7XG4gICAgcmV0dXJuIGJ1ZmYucmVhZERvdWJsZUxFKDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheShhcnJMaWtlKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnJMaWtlKTtcbn1cbi8vIC0qLSBIZWxwZXJzIC0qLVxuXG5mdW5jdGlvbiBpc1BhcnNlcihvYmopIHtcbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFBhcnNpbW1vbjtcbn1cblxuZnVuY3Rpb24gaXNBcnJheSh4KSB7XG4gIHJldHVybiB7fS50b1N0cmluZy5jYWxsKHgpID09PSBcIltvYmplY3QgQXJyYXldXCI7XG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyKHgpIHtcbiAgLyogZ2xvYmFsIEJ1ZmZlciAqL1xuICByZXR1cm4gYnVmZmVyRXhpc3RzKCkgJiYgQnVmZmVyLmlzQnVmZmVyKHgpO1xufVxuXG5mdW5jdGlvbiBtYWtlU3VjY2VzcyhpbmRleCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXM6IHRydWUsXG4gICAgaW5kZXg6IGluZGV4LFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBmdXJ0aGVzdDogLTEsXG4gICAgZXhwZWN0ZWQ6IFtdXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1ha2VGYWlsdXJlKGluZGV4LCBleHBlY3RlZCkge1xuICBpZiAoIWlzQXJyYXkoZXhwZWN0ZWQpKSB7XG4gICAgZXhwZWN0ZWQgPSBbZXhwZWN0ZWRdO1xuICB9XG4gIHJldHVybiB7XG4gICAgc3RhdHVzOiBmYWxzZSxcbiAgICBpbmRleDogLTEsXG4gICAgdmFsdWU6IG51bGwsXG4gICAgZnVydGhlc3Q6IGluZGV4LFxuICAgIGV4cGVjdGVkOiBleHBlY3RlZFxuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZVJlcGxpZXMocmVzdWx0LCBsYXN0KSB7XG4gIGlmICghbGFzdCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKHJlc3VsdC5mdXJ0aGVzdCA+IGxhc3QuZnVydGhlc3QpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHZhciBleHBlY3RlZCA9XG4gICAgcmVzdWx0LmZ1cnRoZXN0ID09PSBsYXN0LmZ1cnRoZXN0XG4gICAgICA/IHVuaW9uKHJlc3VsdC5leHBlY3RlZCwgbGFzdC5leHBlY3RlZClcbiAgICAgIDogbGFzdC5leHBlY3RlZDtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgaW5kZXg6IHJlc3VsdC5pbmRleCxcbiAgICB2YWx1ZTogcmVzdWx0LnZhbHVlLFxuICAgIGZ1cnRoZXN0OiBsYXN0LmZ1cnRoZXN0LFxuICAgIGV4cGVjdGVkOiBleHBlY3RlZFxuICB9O1xufVxuXG4vLyBpbmRleCBvZiB7IGlucHV0ID0+IHsgaW5kZXggPT4geyBsaW5lTnVtYmVyLCBzdGFydE9mTGluZSB9IH0gfVxuLy8gd2hlbiB3ZSBzZWUgYSBuZXcgaW5kZXggd2UganVzdCB3YWxrIGJhY2t3YXJkcyB0byB0aGUgbGFzdCBzZWVuIGluZGV4IGFuZFxuLy8gY29tcHV0ZSB0aGUgbmV3IGxpbmVOdW1iZXIgYW5kIHN0YXJ0T2ZMaW5lIGZyb20gdGhlcmUgc28gd2UgZG9uJ3QgaGF2ZSB0b1xuLy8gcmVjb21wdXRlIGZyb20gdGhlIHdob2xlIGlucHV0XG52YXIgbGluZUNvbHVtbkluZGV4ID0ge307XG5mdW5jdGlvbiBtYWtlTGluZUNvbHVtbkluZGV4KGlucHV0LCBpKSB7XG4gIGlmIChpc0J1ZmZlcihpbnB1dCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiBpLFxuICAgICAgbGluZTogLTEsXG4gICAgICBjb2x1bW46IC0xXG4gICAgfTtcbiAgfVxuXG4gIC8vIGluaXRpYWxpemUgaWYgd2UgaGF2ZW4ndCBzZWVuIHRoaXMgaW5wdXQgeWV0XG4gIGlmICghKGlucHV0IGluIGxpbmVDb2x1bW5JbmRleCkpIHtcbiAgICBsaW5lQ29sdW1uSW5kZXhbaW5wdXRdID0ge307XG4gIH1cblxuICB2YXIgaW5wdXRJbmRleCA9IGxpbmVDb2x1bW5JbmRleFtpbnB1dF07XG5cbiAgdmFyIHByZXZMaW5lID0gMDtcbiAgdmFyIG5ld0xpbmVzID0gMDtcbiAgdmFyIGxpbmVTdGFydCA9IDA7XG4gIHZhciBqID0gaTtcbiAgd2hpbGUgKGogPj0gMCkge1xuICAgIGlmIChqIGluIGlucHV0SW5kZXgpIHtcbiAgICAgIHByZXZMaW5lID0gaW5wdXRJbmRleFtqXS5saW5lO1xuICAgICAgLy8gbGluZVN0YXJ0ID09PSAwIHdoZW4gd2UgaGF2ZW4ndCBmb3VuZCBhIG5ldyBsaW5lIG9uIHRoZSB3YWxrXG4gICAgICAvLyBiYWNrIGZyb20gaSwgc28gd2UgYXJlIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHByZXZpb3VzbHkgY2FjaGVkXG4gICAgICAvLyBpbmRleFxuICAgICAgaWYgKGxpbmVTdGFydCA9PT0gMCkge1xuICAgICAgICBsaW5lU3RhcnQgPSBpbnB1dEluZGV4W2pdLmxpbmVTdGFydDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIC8vIFVuaXggTEYgKFxcbikgb3IgV2luZG93cyBDUkxGIChcXHJcXG4pIGxpbmUgZW5kaW5nXG4gICAgICBpbnB1dC5jaGFyQXQoaikgPT09IFwiXFxuXCIgfHxcbiAgICAgIC8vIE9sZCBNYWMgQ1IgKFxccikgbGluZSBlbmRpbmdcbiAgICAgIChpbnB1dC5jaGFyQXQoaikgPT09IFwiXFxyXCIgJiYgaW5wdXQuY2hhckF0KGogKyAxKSAhPT0gXCJcXG5cIilcbiAgICApIHtcbiAgICAgIG5ld0xpbmVzKys7XG4gICAgICAvLyBsaW5lU3RhcnQgPT09IDAgd2hlbiB0aGlzIGlzIHRoZSBmaXJzdCBuZXcgbGluZSB3ZSBoYXZlIGZvdW5kXG4gICAgICBpZiAobGluZVN0YXJ0ID09PSAwKSB7XG4gICAgICAgIGxpbmVTdGFydCA9IGogKyAxO1xuICAgICAgfVxuICAgIH1cbiAgICBqLS07XG4gIH1cblxuICB2YXIgbGluZVdlQXJlVXBUbyA9IHByZXZMaW5lICsgbmV3TGluZXM7XG4gIHZhciBjb2x1bW5XZUFyZVVwVG8gPSBpIC0gbGluZVN0YXJ0O1xuXG4gIGlucHV0SW5kZXhbaV0gPSB7IGxpbmU6IGxpbmVXZUFyZVVwVG8sIGxpbmVTdGFydDogbGluZVN0YXJ0IH07XG5cbiAgLy8gbGluZXMgYW5kIGNvbHVtbnMgYXJlIDEtaW5kZXhlZFxuICByZXR1cm4ge1xuICAgIG9mZnNldDogaSxcbiAgICBsaW5lOiBsaW5lV2VBcmVVcFRvICsgMSxcbiAgICBjb2x1bW46IGNvbHVtbldlQXJlVXBUbyArIDFcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgc29ydGVkIHNldCB1bmlvbiBvZiB0d28gYXJyYXlzIG9mIHN0cmluZ3NcbmZ1bmN0aW9uIHVuaW9uKHhzLCB5cykge1xuICAvLyBmb3IgbmV3ZXIgYnJvd3NlcnMvbm9kZSB3ZSBjYW4gaW1wcm92ZSBwZXJmb3JtYW5jZSBieSB1c2luZ1xuICAvLyBtb2Rlcm4gSlNcbiAgaWYgKHNldEV4aXN0cygpICYmIEFycmF5LmZyb20pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICB2YXIgc2V0ID0gbmV3IFNldCh4cyk7XG4gICAgZm9yICh2YXIgeSA9IDA7IHkgPCB5cy5sZW5ndGg7IHkrKykge1xuICAgICAgc2V0LmFkZCh5c1t5XSk7XG4gICAgfVxuICAgIHZhciBhcnIgPSBBcnJheS5mcm9tKHNldCk7XG4gICAgYXJyLnNvcnQoKTtcbiAgICByZXR1cm4gYXJyO1xuICB9XG4gIHZhciBvYmogPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgIG9ialt4c1tpXV0gPSB0cnVlO1xuICB9XG4gIGZvciAodmFyIGogPSAwOyBqIDwgeXMubGVuZ3RoOyBqKyspIHtcbiAgICBvYmpbeXNbal1dID0gdHJ1ZTtcbiAgfVxuICB2YXIga2V5cyA9IFtdO1xuICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaykpIHtcbiAgICAgIGtleXMucHVzaChrKTtcbiAgICB9XG4gIH1cbiAga2V5cy5zb3J0KCk7XG4gIHJldHVybiBrZXlzO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRQYXJzZXIocCkge1xuICBpZiAoIWlzUGFyc2VyKHApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGEgcGFyc2VyOiBcIiArIHApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldChpbnB1dCwgaSkge1xuICBpZiAodHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGlucHV0LmNoYXJBdChpKTtcbiAgfVxuICByZXR1cm4gaW5wdXRbaV07XG59XG5cbi8vIFRPRE9bRVM1XTogU3dpdGNoIHRvIEFycmF5LmlzQXJyYXkgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGFzc2VydEFycmF5KHgpIHtcbiAgaWYgKCFpc0FycmF5KHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGFuIGFycmF5OiBcIiArIHgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydE51bWJlcih4KSB7XG4gIGlmICh0eXBlb2YgeCAhPT0gXCJudW1iZXJcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBhIG51bWJlcjogXCIgKyB4KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRSZWdleHAoeCkge1xuICBpZiAoISh4IGluc3RhbmNlb2YgUmVnRXhwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBhIHJlZ2V4cDogXCIgKyB4KTtcbiAgfVxuICB2YXIgZiA9IGZsYWdzKHgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGYubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IGYuY2hhckF0KGkpO1xuICAgIC8vIE9ubHkgYWxsb3cgcmVnZXhwIGZsYWdzIFtpbXVzXSBmb3Igbm93LCBzaW5jZSBbZ10gYW5kIFt5XSBzcGVjaWZpY2FsbHlcbiAgICAvLyBtZXNzIHVwIFBhcnNpbW1vbi4gSWYgbW9yZSBub24tc3RhdGVmdWwgcmVnZXhwIGZsYWdzIGFyZSBhZGRlZCBpbiB0aGVcbiAgICAvLyBmdXR1cmUsIHRoaXMgd2lsbCBuZWVkIHRvIGJlIHJldmlzaXRlZC5cbiAgICBpZiAoYyAhPT0gXCJpXCIgJiYgYyAhPT0gXCJtXCIgJiYgYyAhPT0gXCJ1XCIgJiYgYyAhPT0gXCJzXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgcmVnZXhwIGZsYWcgXCInICsgYyArICdcIjogJyArIHgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRGdW5jdGlvbih4KSB7XG4gIGlmICh0eXBlb2YgeCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGEgZnVuY3Rpb246IFwiICsgeCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U3RyaW5nKHgpIHtcbiAgaWYgKHR5cGVvZiB4ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGEgc3RyaW5nOiBcIiArIHgpO1xuICB9XG59XG5cbi8vIC0qLSBFcnJvciBGb3JtYXR0aW5nIC0qLVxuXG52YXIgbGluZXNCZWZvcmVTdHJpbmdFcnJvciA9IDI7XG52YXIgbGluZXNBZnRlclN0cmluZ0Vycm9yID0gMztcbnZhciBieXRlc1BlckxpbmUgPSA4O1xudmFyIGJ5dGVzQmVmb3JlID0gYnl0ZXNQZXJMaW5lICogNTtcbnZhciBieXRlc0FmdGVyID0gYnl0ZXNQZXJMaW5lICogNDtcbnZhciBkZWZhdWx0TGluZVByZWZpeCA9IFwiICBcIjtcblxuZnVuY3Rpb24gcmVwZWF0KHN0cmluZywgYW1vdW50KSB7XG4gIHJldHVybiBuZXcgQXJyYXkoYW1vdW50ICsgMSkuam9pbihzdHJpbmcpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRFeHBlY3RlZChleHBlY3RlZCkge1xuICBpZiAoZXhwZWN0ZWQubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIFwiRXhwZWN0ZWQ6XFxuXFxuXCIgKyBleHBlY3RlZFswXTtcbiAgfVxuICByZXR1cm4gXCJFeHBlY3RlZCBvbmUgb2YgdGhlIGZvbGxvd2luZzogXFxuXFxuXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIik7XG59XG5cbmZ1bmN0aW9uIGxlZnRQYWQoc3RyLCBwYWQsIGNoYXIpIHtcbiAgdmFyIGFkZCA9IHBhZCAtIHN0ci5sZW5ndGg7XG4gIGlmIChhZGQgPD0gMCkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcmV0dXJuIHJlcGVhdChjaGFyLCBhZGQpICsgc3RyO1xufVxuXG5mdW5jdGlvbiB0b0NodW5rcyhhcnIsIGNodW5rU2l6ZSkge1xuICB2YXIgbGVuZ3RoID0gYXJyLmxlbmd0aDtcbiAgdmFyIGNodW5rcyA9IFtdO1xuICB2YXIgY2h1bmtJbmRleCA9IDA7XG5cbiAgaWYgKGxlbmd0aCA8PSBjaHVua1NpemUpIHtcbiAgICByZXR1cm4gW2Fyci5zbGljZSgpXTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIWNodW5rc1tjaHVua0luZGV4XSkge1xuICAgICAgY2h1bmtzLnB1c2goW10pO1xuICAgIH1cblxuICAgIGNodW5rc1tjaHVua0luZGV4XS5wdXNoKGFycltpXSk7XG5cbiAgICBpZiAoKGkgKyAxKSAlIGNodW5rU2l6ZSA9PT0gMCkge1xuICAgICAgY2h1bmtJbmRleCsrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaHVua3M7XG59XG5cbi8vIEdldCBhIHJhbmdlIG9mIGluZGV4ZXMgaW5jbHVkaW5nIGBpYC10aCBlbGVtZW50IGFuZCBgYmVmb3JlYCBhbmQgYGFmdGVyYCBhbW91bnQgb2YgZWxlbWVudHMgZnJvbSBgYXJyYC5cbmZ1bmN0aW9uIHJhbmdlRnJvbUluZGV4QW5kT2Zmc2V0cyhpLCBiZWZvcmUsIGFmdGVyLCBsZW5ndGgpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBHdWFyZCBhZ2FpbnN0IHRoZSBuZWdhdGl2ZSB1cHBlciBib3VuZCBmb3IgbGluZXMgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC5cbiAgICBmcm9tOiBpIC0gYmVmb3JlID4gMCA/IGkgLSBiZWZvcmUgOiAwLFxuICAgIHRvOiBpICsgYWZ0ZXIgPiBsZW5ndGggPyBsZW5ndGggOiBpICsgYWZ0ZXJcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnl0ZVJhbmdlVG9SYW5nZShieXRlUmFuZ2UpIHtcbiAgLy8gRXhjZXB0aW9uIGZvciBpbnB1dHMgc21hbGxlciB0aGFuIGBieXRlc1BlckxpbmVgXG4gIGlmIChieXRlUmFuZ2UuZnJvbSA9PT0gMCAmJiBieXRlUmFuZ2UudG8gPT09IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogYnl0ZVJhbmdlLmZyb20sXG4gICAgICB0bzogYnl0ZVJhbmdlLnRvXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZnJvbTogYnl0ZVJhbmdlLmZyb20gLyBieXRlc1BlckxpbmUsXG4gICAgLy8gUm91bmQgYHRvYCwgc28gd2UgZG9uJ3QgZ2V0IGZsb2F0IGlmIHRoZSBhbW91bnQgb2YgYnl0ZXMgaXMgbm90IGRpdmlzaWJsZSBieSBgYnl0ZXNQZXJMaW5lYFxuICAgIHRvOiBNYXRoLmZsb29yKGJ5dGVSYW5nZS50byAvIGJ5dGVzUGVyTGluZSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0R290KGlucHV0LCBlcnJvcikge1xuICB2YXIgaW5kZXggPSBlcnJvci5pbmRleDtcbiAgdmFyIGkgPSBpbmRleC5vZmZzZXQ7XG5cbiAgdmFyIHZlcnRpY2FsTWFya2VyTGVuZ3RoID0gMTtcbiAgdmFyIGNvbHVtbjtcbiAgdmFyIGxpbmVXaXRoRXJyb3JJbmRleDtcbiAgdmFyIGxpbmVzO1xuICB2YXIgbGluZVJhbmdlO1xuICB2YXIgbGFzdExpbmVOdW1iZXJMYWJlbExlbmd0aDtcblxuICBpZiAoaSA9PT0gaW5wdXQubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFwiR290IHRoZSBlbmQgb2YgdGhlIGlucHV0XCI7XG4gIH1cblxuICBpZiAoaXNCdWZmZXIoaW5wdXQpKSB7XG4gICAgdmFyIGJ5dGVMaW5lV2l0aEVycm9ySW5kZXggPSBpIC0gKGkgJSBieXRlc1BlckxpbmUpO1xuICAgIHZhciBjb2x1bW5CeXRlSW5kZXggPSBpIC0gYnl0ZUxpbmVXaXRoRXJyb3JJbmRleDtcbiAgICB2YXIgYnl0ZVJhbmdlID0gcmFuZ2VGcm9tSW5kZXhBbmRPZmZzZXRzKFxuICAgICAgYnl0ZUxpbmVXaXRoRXJyb3JJbmRleCxcbiAgICAgIGJ5dGVzQmVmb3JlLFxuICAgICAgYnl0ZXNBZnRlciArIGJ5dGVzUGVyTGluZSxcbiAgICAgIGlucHV0Lmxlbmd0aFxuICAgICk7XG4gICAgdmFyIGJ5dGVzID0gaW5wdXQuc2xpY2UoYnl0ZVJhbmdlLmZyb20sIGJ5dGVSYW5nZS50byk7XG4gICAgdmFyIGJ5dGVzSW5DaHVua3MgPSB0b0NodW5rcyhieXRlcy50b0pTT04oKS5kYXRhLCBieXRlc1BlckxpbmUpO1xuXG4gICAgdmFyIGJ5dGVMaW5lcyA9IG1hcChmdW5jdGlvbihieXRlUm93KSB7XG4gICAgICByZXR1cm4gbWFwKGZ1bmN0aW9uKGJ5dGVWYWx1ZSkge1xuICAgICAgICAvLyBQcmVmaXggYnl0ZSB2YWx1ZXMgd2l0aCBhIGAwYCBpZiB0aGV5IGFyZSBzaG9ydGVyIHRoYW4gMiBjaGFyYWN0ZXJzLlxuICAgICAgICByZXR1cm4gbGVmdFBhZChieXRlVmFsdWUudG9TdHJpbmcoMTYpLCAyLCBcIjBcIik7XG4gICAgICB9LCBieXRlUm93KTtcbiAgICB9LCBieXRlc0luQ2h1bmtzKTtcblxuICAgIGxpbmVSYW5nZSA9IGJ5dGVSYW5nZVRvUmFuZ2UoYnl0ZVJhbmdlKTtcbiAgICBsaW5lV2l0aEVycm9ySW5kZXggPSBieXRlTGluZVdpdGhFcnJvckluZGV4IC8gYnl0ZXNQZXJMaW5lO1xuICAgIGNvbHVtbiA9IGNvbHVtbkJ5dGVJbmRleCAqIDM7XG5cbiAgICAvLyBBY2NvdW50IGZvciBhbiBleHRyYSBzcGFjZS5cbiAgICBpZiAoY29sdW1uQnl0ZUluZGV4ID49IDQpIHtcbiAgICAgIGNvbHVtbiArPSAxO1xuICAgIH1cblxuICAgIHZlcnRpY2FsTWFya2VyTGVuZ3RoID0gMjtcbiAgICBsaW5lcyA9IG1hcChmdW5jdGlvbihieXRlTGluZSkge1xuICAgICAgcmV0dXJuIGJ5dGVMaW5lLmxlbmd0aCA8PSA0XG4gICAgICAgID8gYnl0ZUxpbmUuam9pbihcIiBcIilcbiAgICAgICAgOiBieXRlTGluZS5zbGljZSgwLCA0KS5qb2luKFwiIFwiKSArIFwiICBcIiArIGJ5dGVMaW5lLnNsaWNlKDQpLmpvaW4oXCIgXCIpO1xuICAgIH0sIGJ5dGVMaW5lcyk7XG4gICAgbGFzdExpbmVOdW1iZXJMYWJlbExlbmd0aCA9IChcbiAgICAgIChsaW5lUmFuZ2UudG8gPiAwID8gbGluZVJhbmdlLnRvIC0gMSA6IGxpbmVSYW5nZS50bykgKiA4XG4gICAgKS50b1N0cmluZygxNikubGVuZ3RoO1xuXG4gICAgaWYgKGxhc3RMaW5lTnVtYmVyTGFiZWxMZW5ndGggPCAyKSB7XG4gICAgICBsYXN0TGluZU51bWJlckxhYmVsTGVuZ3RoID0gMjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGlucHV0TGluZXMgPSBpbnB1dC5zcGxpdCgvXFxyXFxufFtcXG5cXHJcXHUyMDI4XFx1MjAyOV0vKTtcbiAgICBjb2x1bW4gPSBpbmRleC5jb2x1bW4gLSAxO1xuICAgIGxpbmVXaXRoRXJyb3JJbmRleCA9IGluZGV4LmxpbmUgLSAxO1xuICAgIGxpbmVSYW5nZSA9IHJhbmdlRnJvbUluZGV4QW5kT2Zmc2V0cyhcbiAgICAgIGxpbmVXaXRoRXJyb3JJbmRleCxcbiAgICAgIGxpbmVzQmVmb3JlU3RyaW5nRXJyb3IsXG4gICAgICBsaW5lc0FmdGVyU3RyaW5nRXJyb3IsXG4gICAgICBpbnB1dExpbmVzLmxlbmd0aFxuICAgICk7XG5cbiAgICBsaW5lcyA9IGlucHV0TGluZXMuc2xpY2UobGluZVJhbmdlLmZyb20sIGxpbmVSYW5nZS50byk7XG4gICAgbGFzdExpbmVOdW1iZXJMYWJlbExlbmd0aCA9IGxpbmVSYW5nZS50by50b1N0cmluZygpLmxlbmd0aDtcbiAgfVxuXG4gIHZhciBsaW5lV2l0aEVycm9yQ3VycmVudEluZGV4ID0gbGluZVdpdGhFcnJvckluZGV4IC0gbGluZVJhbmdlLmZyb207XG5cbiAgaWYgKGlzQnVmZmVyKGlucHV0KSkge1xuICAgIGxhc3RMaW5lTnVtYmVyTGFiZWxMZW5ndGggPSAoXG4gICAgICAobGluZVJhbmdlLnRvID4gMCA/IGxpbmVSYW5nZS50byAtIDEgOiBsaW5lUmFuZ2UudG8pICogOFxuICAgICkudG9TdHJpbmcoMTYpLmxlbmd0aDtcblxuICAgIGlmIChsYXN0TGluZU51bWJlckxhYmVsTGVuZ3RoIDwgMikge1xuICAgICAgbGFzdExpbmVOdW1iZXJMYWJlbExlbmd0aCA9IDI7XG4gICAgfVxuICB9XG5cbiAgdmFyIGxpbmVzV2l0aExpbmVOdW1iZXJzID0gcmVkdWNlKFxuICAgIGZ1bmN0aW9uKGFjYywgbGluZVNvdXJjZSwgaW5kZXgpIHtcbiAgICAgIHZhciBpc0xpbmVXaXRoRXJyb3IgPSBpbmRleCA9PT0gbGluZVdpdGhFcnJvckN1cnJlbnRJbmRleDtcbiAgICAgIHZhciBwcmVmaXggPSBpc0xpbmVXaXRoRXJyb3IgPyBcIj4gXCIgOiBkZWZhdWx0TGluZVByZWZpeDtcbiAgICAgIHZhciBsaW5lTnVtYmVyTGFiZWw7XG5cbiAgICAgIGlmIChpc0J1ZmZlcihpbnB1dCkpIHtcbiAgICAgICAgbGluZU51bWJlckxhYmVsID0gbGVmdFBhZChcbiAgICAgICAgICAoKGxpbmVSYW5nZS5mcm9tICsgaW5kZXgpICogOCkudG9TdHJpbmcoMTYpLFxuICAgICAgICAgIGxhc3RMaW5lTnVtYmVyTGFiZWxMZW5ndGgsXG4gICAgICAgICAgXCIwXCJcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpbmVOdW1iZXJMYWJlbCA9IGxlZnRQYWQoXG4gICAgICAgICAgKGxpbmVSYW5nZS5mcm9tICsgaW5kZXggKyAxKS50b1N0cmluZygpLFxuICAgICAgICAgIGxhc3RMaW5lTnVtYmVyTGFiZWxMZW5ndGgsXG4gICAgICAgICAgXCIgXCJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtdLmNvbmNhdChcbiAgICAgICAgYWNjLFxuICAgICAgICBbcHJlZml4ICsgbGluZU51bWJlckxhYmVsICsgXCIgfCBcIiArIGxpbmVTb3VyY2VdLFxuICAgICAgICBpc0xpbmVXaXRoRXJyb3JcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgZGVmYXVsdExpbmVQcmVmaXggK1xuICAgICAgICAgICAgICAgIHJlcGVhdChcIiBcIiwgbGFzdExpbmVOdW1iZXJMYWJlbExlbmd0aCkgK1xuICAgICAgICAgICAgICAgIFwiIHwgXCIgK1xuICAgICAgICAgICAgICAgIGxlZnRQYWQoXCJcIiwgY29sdW1uLCBcIiBcIikgK1xuICAgICAgICAgICAgICAgIHJlcGVhdChcIl5cIiwgdmVydGljYWxNYXJrZXJMZW5ndGgpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKTtcbiAgICB9LFxuICAgIFtdLFxuICAgIGxpbmVzXG4gICk7XG5cbiAgcmV0dXJuIGxpbmVzV2l0aExpbmVOdW1iZXJzLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEVycm9yKGlucHV0LCBlcnJvcikge1xuICByZXR1cm4gW1xuICAgIFwiXFxuXCIsXG4gICAgXCItLSBQQVJTSU5HIEZBSUxFRCBcIiArIHJlcGVhdChcIi1cIiwgNTApLFxuICAgIFwiXFxuXFxuXCIsXG4gICAgZm9ybWF0R290KGlucHV0LCBlcnJvciksXG4gICAgXCJcXG5cXG5cIixcbiAgICBmb3JtYXRFeHBlY3RlZChlcnJvci5leHBlY3RlZCksXG4gICAgXCJcXG5cIlxuICBdLmpvaW4oXCJcIik7XG59XG5cbmZ1bmN0aW9uIGZsYWdzKHJlKSB7XG4gIGlmIChyZS5mbGFncyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlLmZsYWdzO1xuICB9XG4gIC8vIGxlZ2FjeSBicm93c2VyIHN1cHBvcnRcbiAgcmV0dXJuIFtcbiAgICByZS5nbG9iYWwgPyBcImdcIiA6IFwiXCIsXG4gICAgcmUuaWdub3JlQ2FzZSA/IFwiaVwiIDogXCJcIixcbiAgICByZS5tdWx0aWxpbmUgPyBcIm1cIiA6IFwiXCIsXG4gICAgcmUudW5pY29kZSA/IFwidVwiIDogXCJcIixcbiAgICByZS5zdGlja3kgPyBcInlcIiA6IFwiXCJcbiAgXS5qb2luKFwiXCIpO1xufVxuXG5mdW5jdGlvbiBhbmNob3JlZFJlZ2V4cChyZSkge1xuICByZXR1cm4gUmVnRXhwKFwiXig/OlwiICsgcmUuc291cmNlICsgXCIpXCIsIGZsYWdzKHJlKSk7XG59XG5cbi8vIC0qLSBDb21iaW5hdG9ycyAtKi1cblxuZnVuY3Rpb24gc2VxKCkge1xuICB2YXIgcGFyc2VycyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgdmFyIG51bVBhcnNlcnMgPSBwYXJzZXJzLmxlbmd0aDtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1QYXJzZXJzOyBqICs9IDEpIHtcbiAgICBhc3NlcnRQYXJzZXIocGFyc2Vyc1tqXSk7XG4gIH1cbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciByZXN1bHQ7XG4gICAgdmFyIGFjY3VtID0gbmV3IEFycmF5KG51bVBhcnNlcnMpO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbnVtUGFyc2VyczsgaiArPSAxKSB7XG4gICAgICByZXN1bHQgPSBtZXJnZVJlcGxpZXMocGFyc2Vyc1tqXS5fKGlucHV0LCBpKSwgcmVzdWx0KTtcbiAgICAgIGlmICghcmVzdWx0LnN0YXR1cykge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgYWNjdW1bal0gPSByZXN1bHQudmFsdWU7XG4gICAgICBpID0gcmVzdWx0LmluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VSZXBsaWVzKG1ha2VTdWNjZXNzKGksIGFjY3VtKSwgcmVzdWx0KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcU9iaigpIHtcbiAgdmFyIHNlZW5LZXlzID0ge307XG4gIHZhciB0b3RhbEtleXMgPSAwO1xuICB2YXIgcGFyc2VycyA9IHRvQXJyYXkoYXJndW1lbnRzKTtcbiAgdmFyIG51bVBhcnNlcnMgPSBwYXJzZXJzLmxlbmd0aDtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1QYXJzZXJzOyBqICs9IDEpIHtcbiAgICB2YXIgcCA9IHBhcnNlcnNbal07XG4gICAgaWYgKGlzUGFyc2VyKHApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkocCkpIHtcbiAgICAgIHZhciBpc1dlbGxGb3JtZWQgPVxuICAgICAgICBwLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgcFswXSA9PT0gXCJzdHJpbmdcIiAmJiBpc1BhcnNlcihwWzFdKTtcbiAgICAgIGlmIChpc1dlbGxGb3JtZWQpIHtcbiAgICAgICAgdmFyIGtleSA9IHBbMF07XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2VlbktleXMsIGtleSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZXFPYmo6IGR1cGxpY2F0ZSBrZXkgXCIgKyBrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHNlZW5LZXlzW2tleV0gPSB0cnVlO1xuICAgICAgICB0b3RhbEtleXMrKztcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwic2VxT2JqIGFyZ3VtZW50cyBtdXN0IGJlIHBhcnNlcnMgb3IgW3N0cmluZywgcGFyc2VyXSBhcnJheSBwYWlycy5cIlxuICAgICk7XG4gIH1cbiAgaWYgKHRvdGFsS2V5cyA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm9cIik7XG4gIH1cbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciByZXN1bHQ7XG4gICAgdmFyIGFjY3VtID0ge307XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1QYXJzZXJzOyBqICs9IDEpIHtcbiAgICAgIHZhciBuYW1lO1xuICAgICAgdmFyIHBhcnNlcjtcbiAgICAgIGlmIChpc0FycmF5KHBhcnNlcnNbal0pKSB7XG4gICAgICAgIG5hbWUgPSBwYXJzZXJzW2pdWzBdO1xuICAgICAgICBwYXJzZXIgPSBwYXJzZXJzW2pdWzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZSA9IG51bGw7XG4gICAgICAgIHBhcnNlciA9IHBhcnNlcnNbal07XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBtZXJnZVJlcGxpZXMocGFyc2VyLl8oaW5wdXQsIGkpLCByZXN1bHQpO1xuICAgICAgaWYgKCFyZXN1bHQuc3RhdHVzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBhY2N1bVtuYW1lXSA9IHJlc3VsdC52YWx1ZTtcbiAgICAgIH1cbiAgICAgIGkgPSByZXN1bHQuaW5kZXg7XG4gICAgfVxuICAgIHJldHVybiBtZXJnZVJlcGxpZXMobWFrZVN1Y2Nlc3MoaSwgYWNjdW0pLCByZXN1bHQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VxTWFwKCkge1xuICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwic2VxTWFwIG5lZWRzIGF0IGxlYXN0IG9uZSBhcmd1bWVudFwiKTtcbiAgfVxuICB2YXIgbWFwcGVyID0gYXJncy5wb3AoKTtcbiAgYXNzZXJ0RnVuY3Rpb24obWFwcGVyKTtcbiAgcmV0dXJuIHNlcS5hcHBseShudWxsLCBhcmdzKS5tYXAoZnVuY3Rpb24ocmVzdWx0cykge1xuICAgIHJldHVybiBtYXBwZXIuYXBwbHkobnVsbCwgcmVzdWx0cyk7XG4gIH0pO1xufVxuXG4vLyBUT0RPW0VTNV06IFJldmlzaXQgdGhpcyB3aXRoIE9iamVjdC5rZXlzIGFuZCAuYmluZC5cbmZ1bmN0aW9uIGNyZWF0ZUxhbmd1YWdlKHBhcnNlcnMpIHtcbiAgdmFyIGxhbmd1YWdlID0ge307XG4gIGZvciAodmFyIGtleSBpbiBwYXJzZXJzKSB7XG4gICAgaWYgKHt9Lmhhc093blByb3BlcnR5LmNhbGwocGFyc2Vycywga2V5KSkge1xuICAgICAgKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBwYXJzZXJzW2tleV0obGFuZ3VhZ2UpO1xuICAgICAgICB9O1xuICAgICAgICBsYW5ndWFnZVtrZXldID0gbGF6eShmdW5jKTtcbiAgICAgIH0pKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsYW5ndWFnZTtcbn1cblxuZnVuY3Rpb24gYWx0KCkge1xuICB2YXIgcGFyc2VycyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgdmFyIG51bVBhcnNlcnMgPSBwYXJzZXJzLmxlbmd0aDtcbiAgaWYgKG51bVBhcnNlcnMgPT09IDApIHtcbiAgICByZXR1cm4gZmFpbChcInplcm8gYWx0ZXJuYXRlc1wiKTtcbiAgfVxuICBmb3IgKHZhciBqID0gMDsgaiA8IG51bVBhcnNlcnM7IGogKz0gMSkge1xuICAgIGFzc2VydFBhcnNlcihwYXJzZXJzW2pdKTtcbiAgfVxuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIHJlc3VsdDtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcnNlcnMubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgIHJlc3VsdCA9IG1lcmdlUmVwbGllcyhwYXJzZXJzW2pdLl8oaW5wdXQsIGkpLCByZXN1bHQpO1xuICAgICAgaWYgKHJlc3VsdC5zdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcEJ5KHBhcnNlciwgc2VwYXJhdG9yKSB7XG4gIC8vIEFyZ3VtZW50IGFzc2VydGVkIGJ5IHNlcEJ5MVxuICByZXR1cm4gc2VwQnkxKHBhcnNlciwgc2VwYXJhdG9yKS5vcihzdWNjZWVkKFtdKSk7XG59XG5cbmZ1bmN0aW9uIHNlcEJ5MShwYXJzZXIsIHNlcGFyYXRvcikge1xuICBhc3NlcnRQYXJzZXIocGFyc2VyKTtcbiAgYXNzZXJ0UGFyc2VyKHNlcGFyYXRvcik7XG4gIHZhciBwYWlycyA9IHNlcGFyYXRvci50aGVuKHBhcnNlcikubWFueSgpO1xuICByZXR1cm4gc2VxTWFwKHBhcnNlciwgcGFpcnMsIGZ1bmN0aW9uKHIsIHJzKSB7XG4gICAgcmV0dXJuIFtyXS5jb25jYXQocnMpO1xuICB9KTtcbn1cblxuLy8gLSotIENvcmUgUGFyc2luZyBNZXRob2RzIC0qLVxuXG5fLnBhcnNlID0gZnVuY3Rpb24oaW5wdXQpIHtcbiAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gXCJzdHJpbmdcIiAmJiAhaXNCdWZmZXIoaW5wdXQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCIucGFyc2UgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIHN0cmluZyBvciBCdWZmZXIgYXMgaXRzIGFyZ3VtZW50XCJcbiAgICApO1xuICB9XG4gIHZhciBwYXJzZVJlc3VsdCA9IHRoaXMuc2tpcChlb2YpLl8oaW5wdXQsIDApO1xuXG4gIHZhciByZXN1bHQ7XG4gIGlmIChwYXJzZVJlc3VsdC5zdGF0dXMpIHtcbiAgICByZXN1bHQgPSB7XG4gICAgICBzdGF0dXM6IHRydWUsXG4gICAgICB2YWx1ZTogcGFyc2VSZXN1bHQudmFsdWVcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IHtcbiAgICAgIHN0YXR1czogZmFsc2UsXG4gICAgICBpbmRleDogbWFrZUxpbmVDb2x1bW5JbmRleChpbnB1dCwgcGFyc2VSZXN1bHQuZnVydGhlc3QpLFxuICAgICAgZXhwZWN0ZWQ6IHBhcnNlUmVzdWx0LmV4cGVjdGVkXG4gICAgfTtcbiAgfVxuXG4gIC8vIHJlbGVhc2UgbWVtb3J5IGZyb20gbGluZUNvbHVtbkluZGV4IG5vdyB3ZSBhcmUgZG9uZSBwYXJzaW5nXG4gIGRlbGV0ZSBsaW5lQ29sdW1uSW5kZXhbaW5wdXRdO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyAtKi0gT3RoZXIgTWV0aG9kcyAtKi1cblxuXy50cnlQYXJzZSA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgcmVzdWx0ID0gdGhpcy5wYXJzZShzdHIpO1xuICBpZiAocmVzdWx0LnN0YXR1cykge1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG1zZyA9IGZvcm1hdEVycm9yKHN0ciwgcmVzdWx0KTtcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKG1zZyk7XG4gICAgZXJyLnR5cGUgPSBcIlBhcnNpbW1vbkVycm9yXCI7XG4gICAgZXJyLnJlc3VsdCA9IHJlc3VsdDtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn07XG5cbl8uYXNzZXJ0ID0gZnVuY3Rpb24oY29uZGl0aW9uLCBlcnJvck1lc3NhZ2UpIHtcbiAgcmV0dXJuIHRoaXMuY2hhaW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uKHZhbHVlKSA/IHN1Y2NlZWQodmFsdWUpIDogZmFpbChlcnJvck1lc3NhZ2UpO1xuICB9KTtcbn07XG5cbl8ub3IgPSBmdW5jdGlvbihhbHRlcm5hdGl2ZSkge1xuICByZXR1cm4gYWx0KHRoaXMsIGFsdGVybmF0aXZlKTtcbn07XG5cbl8udHJpbSA9IGZ1bmN0aW9uKHBhcnNlcikge1xuICByZXR1cm4gdGhpcy53cmFwKHBhcnNlciwgcGFyc2VyKTtcbn07XG5cbl8ud3JhcCA9IGZ1bmN0aW9uKGxlZnRQYXJzZXIsIHJpZ2h0UGFyc2VyKSB7XG4gIHJldHVybiBzZXFNYXAobGVmdFBhcnNlciwgdGhpcywgcmlnaHRQYXJzZXIsIGZ1bmN0aW9uKGxlZnQsIG1pZGRsZSkge1xuICAgIHJldHVybiBtaWRkbGU7XG4gIH0pO1xufTtcblxuXy50aHJ1ID0gZnVuY3Rpb24od3JhcHBlcikge1xuICByZXR1cm4gd3JhcHBlcih0aGlzKTtcbn07XG5cbl8udGhlbiA9IGZ1bmN0aW9uKG5leHQpIHtcbiAgYXNzZXJ0UGFyc2VyKG5leHQpO1xuICByZXR1cm4gc2VxKHRoaXMsIG5leHQpLm1hcChmdW5jdGlvbihyZXN1bHRzKSB7XG4gICAgcmV0dXJuIHJlc3VsdHNbMV07XG4gIH0pO1xufTtcblxuXy5tYW55ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIGFjY3VtID0gW107XG4gICAgdmFyIHJlc3VsdCA9IHVuZGVmaW5lZDtcblxuICAgIGZvciAoOzspIHtcbiAgICAgIHJlc3VsdCA9IG1lcmdlUmVwbGllcyhzZWxmLl8oaW5wdXQsIGkpLCByZXN1bHQpO1xuICAgICAgaWYgKHJlc3VsdC5zdGF0dXMpIHtcbiAgICAgICAgaWYgKGkgPT09IHJlc3VsdC5pbmRleCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiaW5maW5pdGUgbG9vcCBkZXRlY3RlZCBpbiAubWFueSgpIHBhcnNlciAtLS0gY2FsbGluZyAubWFueSgpIG9uIFwiICtcbiAgICAgICAgICAgICAgXCJhIHBhcnNlciB3aGljaCBjYW4gYWNjZXB0IHplcm8gY2hhcmFjdGVycyBpcyB1c3VhbGx5IHRoZSBjYXVzZVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpID0gcmVzdWx0LmluZGV4O1xuICAgICAgICBhY2N1bS5wdXNoKHJlc3VsdC52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWVyZ2VSZXBsaWVzKG1ha2VTdWNjZXNzKGksIGFjY3VtKSwgcmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuXy50aWVXaXRoID0gZnVuY3Rpb24oc2VwYXJhdG9yKSB7XG4gIGFzc2VydFN0cmluZyhzZXBhcmF0b3IpO1xuICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYXJncykge1xuICAgIGFzc2VydEFycmF5KGFyZ3MpO1xuICAgIGlmIChhcmdzLmxlbmd0aCkge1xuICAgICAgYXNzZXJ0U3RyaW5nKGFyZ3NbMF0pO1xuICAgICAgdmFyIHMgPSBhcmdzWzBdO1xuICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGFzc2VydFN0cmluZyhhcmdzW2ldKTtcbiAgICAgICAgcyArPSBzZXBhcmF0b3IgKyBhcmdzW2ldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfSk7XG59O1xuXG5fLnRpZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy50aWVXaXRoKFwiXCIpO1xufTtcblxuXy50aW1lcyA9IGZ1bmN0aW9uKG1pbiwgbWF4KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgbWF4ID0gbWluO1xuICB9XG4gIGFzc2VydE51bWJlcihtaW4pO1xuICBhc3NlcnROdW1iZXIobWF4KTtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciBhY2N1bSA9IFtdO1xuICAgIHZhciByZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgdmFyIHByZXZSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgZm9yICh2YXIgdGltZXMgPSAwOyB0aW1lcyA8IG1pbjsgdGltZXMgKz0gMSkge1xuICAgICAgcmVzdWx0ID0gc2VsZi5fKGlucHV0LCBpKTtcbiAgICAgIHByZXZSZXN1bHQgPSBtZXJnZVJlcGxpZXMocmVzdWx0LCBwcmV2UmVzdWx0KTtcbiAgICAgIGlmIChyZXN1bHQuc3RhdHVzKSB7XG4gICAgICAgIGkgPSByZXN1bHQuaW5kZXg7XG4gICAgICAgIGFjY3VtLnB1c2gocmVzdWx0LnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwcmV2UmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKDsgdGltZXMgPCBtYXg7IHRpbWVzICs9IDEpIHtcbiAgICAgIHJlc3VsdCA9IHNlbGYuXyhpbnB1dCwgaSk7XG4gICAgICBwcmV2UmVzdWx0ID0gbWVyZ2VSZXBsaWVzKHJlc3VsdCwgcHJldlJlc3VsdCk7XG4gICAgICBpZiAocmVzdWx0LnN0YXR1cykge1xuICAgICAgICBpID0gcmVzdWx0LmluZGV4O1xuICAgICAgICBhY2N1bS5wdXNoKHJlc3VsdC52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlUmVwbGllcyhtYWtlU3VjY2VzcyhpLCBhY2N1bSksIHByZXZSZXN1bHQpO1xuICB9KTtcbn07XG5cbl8ucmVzdWx0ID0gZnVuY3Rpb24ocmVzKSB7XG4gIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gcmVzO1xuICB9KTtcbn07XG5cbl8uYXRNb3N0ID0gZnVuY3Rpb24obikge1xuICByZXR1cm4gdGhpcy50aW1lcygwLCBuKTtcbn07XG5cbl8uYXRMZWFzdCA9IGZ1bmN0aW9uKG4pIHtcbiAgcmV0dXJuIHNlcU1hcCh0aGlzLnRpbWVzKG4pLCB0aGlzLm1hbnkoKSwgZnVuY3Rpb24oaW5pdCwgcmVzdCkge1xuICAgIHJldHVybiBpbml0LmNvbmNhdChyZXN0KTtcbiAgfSk7XG59O1xuXG5fLm1hcCA9IGZ1bmN0aW9uKGZuKSB7XG4gIGFzc2VydEZ1bmN0aW9uKGZuKTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIHJlc3VsdCA9IHNlbGYuXyhpbnB1dCwgaSk7XG4gICAgaWYgKCFyZXN1bHQuc3RhdHVzKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VSZXBsaWVzKG1ha2VTdWNjZXNzKHJlc3VsdC5pbmRleCwgZm4ocmVzdWx0LnZhbHVlKSksIHJlc3VsdCk7XG4gIH0pO1xufTtcblxuXy5jb250cmFtYXAgPSBmdW5jdGlvbihmbikge1xuICBhc3NlcnRGdW5jdGlvbihmbik7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciByZXN1bHQgPSBzZWxmLnBhcnNlKGZuKGlucHV0LnNsaWNlKGkpKSk7XG4gICAgaWYgKCFyZXN1bHQuc3RhdHVzKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbWFrZVN1Y2Nlc3MoaSArIGlucHV0Lmxlbmd0aCwgcmVzdWx0LnZhbHVlKTtcbiAgfSk7XG59O1xuXG5fLnByb21hcCA9IGZ1bmN0aW9uKGYsIGcpIHtcbiAgYXNzZXJ0RnVuY3Rpb24oZik7XG4gIGFzc2VydEZ1bmN0aW9uKGcpO1xuICByZXR1cm4gdGhpcy5jb250cmFtYXAoZikubWFwKGcpO1xufTtcblxuXy5za2lwID0gZnVuY3Rpb24obmV4dCkge1xuICByZXR1cm4gc2VxKHRoaXMsIG5leHQpLm1hcChmdW5jdGlvbihyZXN1bHRzKSB7XG4gICAgcmV0dXJuIHJlc3VsdHNbMF07XG4gIH0pO1xufTtcblxuXy5tYXJrID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBzZXFNYXAoaW5kZXgsIHRoaXMsIGluZGV4LCBmdW5jdGlvbihzdGFydCwgdmFsdWUsIGVuZCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbmQ6IGVuZFxuICAgIH07XG4gIH0pO1xufTtcblxuXy5ub2RlID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gc2VxTWFwKGluZGV4LCB0aGlzLCBpbmRleCwgZnVuY3Rpb24oc3RhcnQsIHZhbHVlLCBlbmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogZW5kXG4gICAgfTtcbiAgfSk7XG59O1xuXG5fLnNlcEJ5ID0gZnVuY3Rpb24oc2VwYXJhdG9yKSB7XG4gIHJldHVybiBzZXBCeSh0aGlzLCBzZXBhcmF0b3IpO1xufTtcblxuXy5zZXBCeTEgPSBmdW5jdGlvbihzZXBhcmF0b3IpIHtcbiAgcmV0dXJuIHNlcEJ5MSh0aGlzLCBzZXBhcmF0b3IpO1xufTtcblxuXy5sb29rYWhlYWQgPSBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB0aGlzLnNraXAobG9va2FoZWFkKHgpKTtcbn07XG5cbl8ubm90Rm9sbG93ZWRCeSA9IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIHRoaXMuc2tpcChub3RGb2xsb3dlZEJ5KHgpKTtcbn07XG5cbl8uZGVzYyA9IGZ1bmN0aW9uKGV4cGVjdGVkKSB7XG4gIGlmICghaXNBcnJheShleHBlY3RlZCkpIHtcbiAgICBleHBlY3RlZCA9IFtleHBlY3RlZF07XG4gIH1cbiAgdmFyIHNlbGYgPSB0aGlzO1xuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIHJlcGx5ID0gc2VsZi5fKGlucHV0LCBpKTtcbiAgICBpZiAoIXJlcGx5LnN0YXR1cykge1xuICAgICAgcmVwbHkuZXhwZWN0ZWQgPSBleHBlY3RlZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcGx5O1xuICB9KTtcbn07XG5cbl8uZmFsbGJhY2sgPSBmdW5jdGlvbihyZXN1bHQpIHtcbiAgcmV0dXJuIHRoaXMub3Ioc3VjY2VlZChyZXN1bHQpKTtcbn07XG5cbl8uYXAgPSBmdW5jdGlvbihvdGhlcikge1xuICByZXR1cm4gc2VxTWFwKG90aGVyLCB0aGlzLCBmdW5jdGlvbihmLCB4KSB7XG4gICAgcmV0dXJuIGYoeCk7XG4gIH0pO1xufTtcblxuXy5jaGFpbiA9IGZ1bmN0aW9uKGYpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIHJlc3VsdCA9IHNlbGYuXyhpbnB1dCwgaSk7XG4gICAgaWYgKCFyZXN1bHQuc3RhdHVzKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICB2YXIgbmV4dFBhcnNlciA9IGYocmVzdWx0LnZhbHVlKTtcbiAgICByZXR1cm4gbWVyZ2VSZXBsaWVzKG5leHRQYXJzZXIuXyhpbnB1dCwgcmVzdWx0LmluZGV4KSwgcmVzdWx0KTtcbiAgfSk7XG59O1xuXG4vLyAtKi0gQ29uc3RydWN0b3JzIC0qLVxuXG5mdW5jdGlvbiBzdHJpbmcoc3RyKSB7XG4gIGFzc2VydFN0cmluZyhzdHIpO1xuICB2YXIgZXhwZWN0ZWQgPSBcIidcIiArIHN0ciArIFwiJ1wiO1xuICByZXR1cm4gUGFyc2ltbW9uKGZ1bmN0aW9uKGlucHV0LCBpKSB7XG4gICAgdmFyIGogPSBpICsgc3RyLmxlbmd0aDtcbiAgICB2YXIgaGVhZCA9IGlucHV0LnNsaWNlKGksIGopO1xuICAgIGlmIChoZWFkID09PSBzdHIpIHtcbiAgICAgIHJldHVybiBtYWtlU3VjY2VzcyhqLCBoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VGYWlsdXJlKGksIGV4cGVjdGVkKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBieXRlKGIpIHtcbiAgZW5zdXJlQnVmZmVyKCk7XG4gIGFzc2VydE51bWJlcihiKTtcbiAgaWYgKGIgPiAweGZmKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJWYWx1ZSBzcGVjaWZpZWQgdG8gYnl0ZSBjb25zdHJ1Y3RvciAoXCIgK1xuICAgICAgICBiICtcbiAgICAgICAgXCI9MHhcIiArXG4gICAgICAgIGIudG9TdHJpbmcoMTYpICtcbiAgICAgICAgXCIpIGlzIGxhcmdlciBpbiB2YWx1ZSB0aGFuIGEgc2luZ2xlIGJ5dGUuXCJcbiAgICApO1xuICB9XG4gIHZhciBleHBlY3RlZCA9IChiID4gMHhmID8gXCIweFwiIDogXCIweDBcIikgKyBiLnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciBoZWFkID0gZ2V0KGlucHV0LCBpKTtcbiAgICBpZiAoaGVhZCA9PT0gYikge1xuICAgICAgcmV0dXJuIG1ha2VTdWNjZXNzKGkgKyAxLCBoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VGYWlsdXJlKGksIGV4cGVjdGVkKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZWdleHAocmUsIGdyb3VwKSB7XG4gIGFzc2VydFJlZ2V4cChyZSk7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID49IDIpIHtcbiAgICBhc3NlcnROdW1iZXIoZ3JvdXApO1xuICB9IGVsc2Uge1xuICAgIGdyb3VwID0gMDtcbiAgfVxuICB2YXIgYW5jaG9yZWQgPSBhbmNob3JlZFJlZ2V4cChyZSk7XG4gIHZhciBleHBlY3RlZCA9IFwiXCIgKyByZTtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciBtYXRjaCA9IGFuY2hvcmVkLmV4ZWMoaW5wdXQuc2xpY2UoaSkpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgaWYgKDAgPD0gZ3JvdXAgJiYgZ3JvdXAgPD0gbWF0Y2gubGVuZ3RoKSB7XG4gICAgICAgIHZhciBmdWxsTWF0Y2ggPSBtYXRjaFswXTtcbiAgICAgICAgdmFyIGdyb3VwTWF0Y2ggPSBtYXRjaFtncm91cF07XG4gICAgICAgIHJldHVybiBtYWtlU3VjY2VzcyhpICsgZnVsbE1hdGNoLmxlbmd0aCwgZ3JvdXBNYXRjaCk7XG4gICAgICB9XG4gICAgICB2YXIgbWVzc2FnZSA9XG4gICAgICAgIFwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gXCIgKyBtYXRjaC5sZW5ndGggKyBcIikgaW4gXCIgKyBleHBlY3RlZDtcbiAgICAgIHJldHVybiBtYWtlRmFpbHVyZShpLCBtZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VGYWlsdXJlKGksIGV4cGVjdGVkKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN1Y2NlZWQodmFsdWUpIHtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHJldHVybiBtYWtlU3VjY2VzcyhpLCB2YWx1ZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBmYWlsKGV4cGVjdGVkKSB7XG4gIHJldHVybiBQYXJzaW1tb24oZnVuY3Rpb24oaW5wdXQsIGkpIHtcbiAgICByZXR1cm4gbWFrZUZhaWx1cmUoaSwgZXhwZWN0ZWQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbG9va2FoZWFkKHgpIHtcbiAgaWYgKGlzUGFyc2VyKHgpKSB7XG4gICAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHguXyhpbnB1dCwgaSk7XG4gICAgICByZXN1bHQuaW5kZXggPSBpO1xuICAgICAgcmVzdWx0LnZhbHVlID0gXCJcIjtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gbG9va2FoZWFkKHN0cmluZyh4KSk7XG4gIH0gZWxzZSBpZiAoeCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIHJldHVybiBsb29rYWhlYWQocmVnZXhwKHgpKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBzdHJpbmcsIHJlZ2V4cCwgb3IgcGFyc2VyOiBcIiArIHgpO1xufVxuXG5mdW5jdGlvbiBub3RGb2xsb3dlZEJ5KHBhcnNlcikge1xuICBhc3NlcnRQYXJzZXIocGFyc2VyKTtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciByZXN1bHQgPSBwYXJzZXIuXyhpbnB1dCwgaSk7XG4gICAgdmFyIHRleHQgPSBpbnB1dC5zbGljZShpLCByZXN1bHQuaW5kZXgpO1xuICAgIHJldHVybiByZXN1bHQuc3RhdHVzXG4gICAgICA/IG1ha2VGYWlsdXJlKGksICdub3QgXCInICsgdGV4dCArICdcIicpXG4gICAgICA6IG1ha2VTdWNjZXNzKGksIG51bGwpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdGVzdChwcmVkaWNhdGUpIHtcbiAgYXNzZXJ0RnVuY3Rpb24ocHJlZGljYXRlKTtcbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciBjaGFyID0gZ2V0KGlucHV0LCBpKTtcbiAgICBpZiAoaSA8IGlucHV0Lmxlbmd0aCAmJiBwcmVkaWNhdGUoY2hhcikpIHtcbiAgICAgIHJldHVybiBtYWtlU3VjY2VzcyhpICsgMSwgY2hhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtYWtlRmFpbHVyZShpLCBcImEgY2hhcmFjdGVyL2J5dGUgbWF0Y2hpbmcgXCIgKyBwcmVkaWNhdGUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9uZU9mKHN0cikge1xuICB2YXIgZXhwZWN0ZWQgPSBzdHIuc3BsaXQoXCJcIik7XG4gIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGV4cGVjdGVkLmxlbmd0aDsgaWR4KyspIHtcbiAgICBleHBlY3RlZFtpZHhdID0gXCInXCIgKyBleHBlY3RlZFtpZHhdICsgXCInXCI7XG4gIH1cbiAgcmV0dXJuIHRlc3QoZnVuY3Rpb24oY2gpIHtcbiAgICByZXR1cm4gc3RyLmluZGV4T2YoY2gpID49IDA7XG4gIH0pLmRlc2MoZXhwZWN0ZWQpO1xufVxuXG5mdW5jdGlvbiBub25lT2Yoc3RyKSB7XG4gIHJldHVybiB0ZXN0KGZ1bmN0aW9uKGNoKSB7XG4gICAgcmV0dXJuIHN0ci5pbmRleE9mKGNoKSA8IDA7XG4gIH0pLmRlc2MoXCJub25lIG9mICdcIiArIHN0ciArIFwiJ1wiKTtcbn1cblxuZnVuY3Rpb24gY3VzdG9tKHBhcnNpbmdGdW5jdGlvbikge1xuICByZXR1cm4gUGFyc2ltbW9uKHBhcnNpbmdGdW5jdGlvbihtYWtlU3VjY2VzcywgbWFrZUZhaWx1cmUpKTtcbn1cblxuLy8gVE9ET1tFUzVdOiBJbXByb3ZlIGVycm9yIG1lc3NhZ2UgdXNpbmcgSlNPTi5zdHJpbmdpZnkgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIHJhbmdlKGJlZ2luLCBlbmQpIHtcbiAgcmV0dXJuIHRlc3QoZnVuY3Rpb24oY2gpIHtcbiAgICByZXR1cm4gYmVnaW4gPD0gY2ggJiYgY2ggPD0gZW5kO1xuICB9KS5kZXNjKGJlZ2luICsgXCItXCIgKyBlbmQpO1xufVxuXG5mdW5jdGlvbiB0YWtlV2hpbGUocHJlZGljYXRlKSB7XG4gIGFzc2VydEZ1bmN0aW9uKHByZWRpY2F0ZSk7XG5cbiAgcmV0dXJuIFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHZhciBqID0gaTtcbiAgICB3aGlsZSAoaiA8IGlucHV0Lmxlbmd0aCAmJiBwcmVkaWNhdGUoZ2V0KGlucHV0LCBqKSkpIHtcbiAgICAgIGorKztcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VTdWNjZXNzKGosIGlucHV0LnNsaWNlKGksIGopKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGxhenkoZGVzYywgZikge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICBmID0gZGVzYztcbiAgICBkZXNjID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdmFyIHBhcnNlciA9IFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICAgIHBhcnNlci5fID0gZigpLl87XG4gICAgcmV0dXJuIHBhcnNlci5fKGlucHV0LCBpKTtcbiAgfSk7XG5cbiAgaWYgKGRlc2MpIHtcbiAgICByZXR1cm4gcGFyc2VyLmRlc2MoZGVzYyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcnNlcjtcbiAgfVxufVxuXG4vLyAtKi0gRmFudGFzeSBMYW5kIEV4dHJhcyAtKi1cblxuZnVuY3Rpb24gZW1wdHkoKSB7XG4gIHJldHVybiBmYWlsKFwiZmFudGFzeS1sYW5kL2VtcHR5XCIpO1xufVxuXG5fLmNvbmNhdCA9IF8ub3I7XG5fLmVtcHR5ID0gZW1wdHk7XG5fLm9mID0gc3VjY2VlZDtcbl9bXCJmYW50YXN5LWxhbmQvYXBcIl0gPSBfLmFwO1xuX1tcImZhbnRhc3ktbGFuZC9jaGFpblwiXSA9IF8uY2hhaW47XG5fW1wiZmFudGFzeS1sYW5kL2NvbmNhdFwiXSA9IF8uY29uY2F0O1xuX1tcImZhbnRhc3ktbGFuZC9lbXB0eVwiXSA9IF8uZW1wdHk7XG5fW1wiZmFudGFzeS1sYW5kL29mXCJdID0gXy5vZjtcbl9bXCJmYW50YXN5LWxhbmQvbWFwXCJdID0gXy5tYXA7XG5cbi8vIC0qLSBCYXNlIFBhcnNlcnMgLSotXG5cbnZhciBpbmRleCA9IFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICByZXR1cm4gbWFrZVN1Y2Nlc3MoaSwgbWFrZUxpbmVDb2x1bW5JbmRleChpbnB1dCwgaSkpO1xufSk7XG5cbnZhciBhbnkgPSBQYXJzaW1tb24oZnVuY3Rpb24oaW5wdXQsIGkpIHtcbiAgaWYgKGkgPj0gaW5wdXQubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG1ha2VGYWlsdXJlKGksIFwiYW55IGNoYXJhY3Rlci9ieXRlXCIpO1xuICB9XG4gIHJldHVybiBtYWtlU3VjY2VzcyhpICsgMSwgZ2V0KGlucHV0LCBpKSk7XG59KTtcblxudmFyIGFsbCA9IFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICByZXR1cm4gbWFrZVN1Y2Nlc3MoaW5wdXQubGVuZ3RoLCBpbnB1dC5zbGljZShpKSk7XG59KTtcblxudmFyIGVvZiA9IFBhcnNpbW1vbihmdW5jdGlvbihpbnB1dCwgaSkge1xuICBpZiAoaSA8IGlucHV0Lmxlbmd0aCkge1xuICAgIHJldHVybiBtYWtlRmFpbHVyZShpLCBcIkVPRlwiKTtcbiAgfVxuICByZXR1cm4gbWFrZVN1Y2Nlc3MoaSwgbnVsbCk7XG59KTtcblxudmFyIGRpZ2l0ID0gcmVnZXhwKC9bMC05XS8pLmRlc2MoXCJhIGRpZ2l0XCIpO1xudmFyIGRpZ2l0cyA9IHJlZ2V4cCgvWzAtOV0qLykuZGVzYyhcIm9wdGlvbmFsIGRpZ2l0c1wiKTtcbnZhciBsZXR0ZXIgPSByZWdleHAoL1thLXpdL2kpLmRlc2MoXCJhIGxldHRlclwiKTtcbnZhciBsZXR0ZXJzID0gcmVnZXhwKC9bYS16XSovaSkuZGVzYyhcIm9wdGlvbmFsIGxldHRlcnNcIik7XG52YXIgb3B0V2hpdGVzcGFjZSA9IHJlZ2V4cCgvXFxzKi8pLmRlc2MoXCJvcHRpb25hbCB3aGl0ZXNwYWNlXCIpO1xudmFyIHdoaXRlc3BhY2UgPSByZWdleHAoL1xccysvKS5kZXNjKFwid2hpdGVzcGFjZVwiKTtcbnZhciBjciA9IHN0cmluZyhcIlxcclwiKTtcbnZhciBsZiA9IHN0cmluZyhcIlxcblwiKTtcbnZhciBjcmxmID0gc3RyaW5nKFwiXFxyXFxuXCIpO1xudmFyIG5ld2xpbmUgPSBhbHQoY3JsZiwgbGYsIGNyKS5kZXNjKFwibmV3bGluZVwiKTtcbnZhciBlbmQgPSBhbHQobmV3bGluZSwgZW9mKTtcblxuUGFyc2ltbW9uLmFsbCA9IGFsbDtcblBhcnNpbW1vbi5hbHQgPSBhbHQ7XG5QYXJzaW1tb24uYW55ID0gYW55O1xuUGFyc2ltbW9uLmNyID0gY3I7XG5QYXJzaW1tb24uY3JlYXRlTGFuZ3VhZ2UgPSBjcmVhdGVMYW5ndWFnZTtcblBhcnNpbW1vbi5jcmxmID0gY3JsZjtcblBhcnNpbW1vbi5jdXN0b20gPSBjdXN0b207XG5QYXJzaW1tb24uZGlnaXQgPSBkaWdpdDtcblBhcnNpbW1vbi5kaWdpdHMgPSBkaWdpdHM7XG5QYXJzaW1tb24uZW1wdHkgPSBlbXB0eTtcblBhcnNpbW1vbi5lbmQgPSBlbmQ7XG5QYXJzaW1tb24uZW9mID0gZW9mO1xuUGFyc2ltbW9uLmZhaWwgPSBmYWlsO1xuUGFyc2ltbW9uLmZvcm1hdEVycm9yID0gZm9ybWF0RXJyb3I7XG5QYXJzaW1tb24uaW5kZXggPSBpbmRleDtcblBhcnNpbW1vbi5pc1BhcnNlciA9IGlzUGFyc2VyO1xuUGFyc2ltbW9uLmxhenkgPSBsYXp5O1xuUGFyc2ltbW9uLmxldHRlciA9IGxldHRlcjtcblBhcnNpbW1vbi5sZXR0ZXJzID0gbGV0dGVycztcblBhcnNpbW1vbi5sZiA9IGxmO1xuUGFyc2ltbW9uLmxvb2thaGVhZCA9IGxvb2thaGVhZDtcblBhcnNpbW1vbi5tYWtlRmFpbHVyZSA9IG1ha2VGYWlsdXJlO1xuUGFyc2ltbW9uLm1ha2VTdWNjZXNzID0gbWFrZVN1Y2Nlc3M7XG5QYXJzaW1tb24ubmV3bGluZSA9IG5ld2xpbmU7XG5QYXJzaW1tb24ubm9uZU9mID0gbm9uZU9mO1xuUGFyc2ltbW9uLm5vdEZvbGxvd2VkQnkgPSBub3RGb2xsb3dlZEJ5O1xuUGFyc2ltbW9uLm9mID0gc3VjY2VlZDtcblBhcnNpbW1vbi5vbmVPZiA9IG9uZU9mO1xuUGFyc2ltbW9uLm9wdFdoaXRlc3BhY2UgPSBvcHRXaGl0ZXNwYWNlO1xuUGFyc2ltbW9uLlBhcnNlciA9IFBhcnNpbW1vbjtcblBhcnNpbW1vbi5yYW5nZSA9IHJhbmdlO1xuUGFyc2ltbW9uLnJlZ2V4ID0gcmVnZXhwO1xuUGFyc2ltbW9uLnJlZ2V4cCA9IHJlZ2V4cDtcblBhcnNpbW1vbi5zZXBCeSA9IHNlcEJ5O1xuUGFyc2ltbW9uLnNlcEJ5MSA9IHNlcEJ5MTtcblBhcnNpbW1vbi5zZXEgPSBzZXE7XG5QYXJzaW1tb24uc2VxTWFwID0gc2VxTWFwO1xuUGFyc2ltbW9uLnNlcU9iaiA9IHNlcU9iajtcblBhcnNpbW1vbi5zdHJpbmcgPSBzdHJpbmc7XG5QYXJzaW1tb24uc3VjY2VlZCA9IHN1Y2NlZWQ7XG5QYXJzaW1tb24udGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuUGFyc2ltbW9uLnRlc3QgPSB0ZXN0O1xuUGFyc2ltbW9uLndoaXRlc3BhY2UgPSB3aGl0ZXNwYWNlO1xuUGFyc2ltbW9uW1wiZmFudGFzeS1sYW5kL2VtcHR5XCJdID0gZW1wdHk7XG5QYXJzaW1tb25bXCJmYW50YXN5LWxhbmQvb2ZcIl0gPSBzdWNjZWVkO1xuXG5QYXJzaW1tb24uQmluYXJ5ID0ge1xuICBiaXRTZXE6IGJpdFNlcSxcbiAgYml0U2VxT2JqOiBiaXRTZXFPYmosXG4gIGJ5dGU6IGJ5dGUsXG4gIGJ1ZmZlcjogcGFyc2VCdWZmZXIsXG4gIGVuY29kZWRTdHJpbmc6IGVuY29kZWRTdHJpbmcsXG4gIHVpbnRCRTogdWludEJFLFxuICB1aW50OEJFOiB1aW50QkUoMSksXG4gIHVpbnQxNkJFOiB1aW50QkUoMiksXG4gIHVpbnQzMkJFOiB1aW50QkUoNCksXG4gIHVpbnRMRTogdWludExFLFxuICB1aW50OExFOiB1aW50TEUoMSksXG4gIHVpbnQxNkxFOiB1aW50TEUoMiksXG4gIHVpbnQzMkxFOiB1aW50TEUoNCksXG4gIGludEJFOiBpbnRCRSxcbiAgaW50OEJFOiBpbnRCRSgxKSxcbiAgaW50MTZCRTogaW50QkUoMiksXG4gIGludDMyQkU6IGludEJFKDQpLFxuICBpbnRMRTogaW50TEUsXG4gIGludDhMRTogaW50TEUoMSksXG4gIGludDE2TEU6IGludExFKDIpLFxuICBpbnQzMkxFOiBpbnRMRSg0KSxcbiAgZmxvYXRCRTogZmxvYXRCRSgpLFxuICBmbG9hdExFOiBmbG9hdExFKCksXG4gIGRvdWJsZUJFOiBkb3VibGVCRSgpLFxuICBkb3VibGVMRTogZG91YmxlTEUoKVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBQYXJzaW1tb247XG4iLCAibW9kdWxlLmV4cG9ydHMgPSAoKSA9PiB7XG5cdC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuXHRyZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZFOVxcdTI2RjAtXFx1MjZGNVxcdTI2RjdcXHUyNkY4XFx1MjZGQVxcdTI3MDJcXHUyNzA4XFx1MjcwOVxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MzNcXHUyNzM0XFx1Mjc0NFxcdTI3NDdcXHUyNzU3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1NVxcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldXFx1RkUwRj98W1xcdTI2MURcXHUyNzBDXFx1MjcwRF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/fFtcXHUyNzBBXFx1MjcwQl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjNFOS1cXHUyM0VDXFx1MjNGMFxcdTIzRjNcXHUyNUZEXFx1MjY5M1xcdTI2QTFcXHUyNkFCXFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RkRcXHUyNzA1XFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjUwXXxcXHUyNkQzXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURDQTUpP3xcXHUyNkY5KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHUyNzY0XFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1RDgzRFxcdUREMjV8XFx1RDgzRVxcdURFNzkpKT98XFx1RDgzQyg/OltcXHVEQzA0XFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddXFx1RkUwRj98W1xcdURGODVcXHVERkMyXFx1REZDN10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REZDNFxcdURGQ0FdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURGQ0JcXHVERkNDXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGNDNcXHVERjQ1LVxcdURGNEFcXHVERjRDLVxcdURGN0NcXHVERjdFLVxcdURGODRcXHVERjg2LVxcdURGOTNcXHVERkEwLVxcdURGQzFcXHVERkM1XFx1REZDNlxcdURGQzhcXHVERkM5XFx1REZDRi1cXHVERkQzXFx1REZFMC1cXHVERkYwXFx1REZGOC1cXHVERkZGXXxcXHVEREU2XFx1RDgzQ1tcXHVEREU4LVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjJcXHVEREY0XFx1RERGNi1cXHVEREZBXFx1RERGQ1xcdURERkRcXHVEREZGXXxcXHVEREU3XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERThcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRVxcdURERjAtXFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERjQ0KD86XFx1MjAwRFxcdUQ4M0RcXHVERkVCKT98XFx1REY0Qig/OlxcdTIwMERcXHVEODNEXFx1REZFOSk/fFxcdURGQzMoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/fFxcdURGRjNcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHUyNkE3XFx1RkUwRj98XFx1RDgzQ1xcdURGMDgpKT98XFx1REZGNCg/OlxcdTIwMERcXHUyNjIwXFx1RkUwRj98XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2MlxcdURCNDAoPzpcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQzczXFx1REI0MFxcdURDNjNcXHVEQjQwXFx1REM3NHxcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3MylcXHVEQjQwXFx1REM3Rik/KXxcXHVEODNEKD86W1xcdURDM0ZcXHVEQ0ZEXFx1REQ0OVxcdURENEFcXHVERDZGXFx1REQ3MFxcdURENzNcXHVERDc2LVxcdURENzlcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkFcXHVERUNCXFx1REVDRC1cXHVERUNGXFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRjBcXHVERUYzXVxcdUZFMEY/fFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjZcXHVEQzY3XFx1REM2Qi1cXHVEQzZEXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNFxcdURFQjVdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURENzRcXHVERDkwXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdURDMDAtXFx1REMwN1xcdURDMDktXFx1REMxNFxcdURDMTYtXFx1REMyNVxcdURDMjctXFx1REMzQVxcdURDM0MtXFx1REMzRVxcdURDNDBcXHVEQzQ0XFx1REM0NVxcdURDNTEtXFx1REM2NVxcdURDNkFcXHVEQzc5LVxcdURDN0JcXHVEQzdELVxcdURDODBcXHVEQzg0XFx1REM4OC1cXHVEQzhFXFx1REM5MFxcdURDOTItXFx1RENBOVxcdURDQUItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREQTRcXHVEREZCLVxcdURFMkRcXHVERTJGLVxcdURFMzRcXHVERTM3LVxcdURFNDFcXHVERTQzXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMwOCg/OlxcdTIwMERcXHUyQjFCKT98XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDMjYoPzpcXHUyMDBEKD86XFx1MkIxQnxcXHVEODNEXFx1REQyNSkpP3xcXHVEQzNCKD86XFx1MjAwRFxcdTI3NDRcXHVGRTBGPyk/fFxcdURDNDFcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RERFOFxcdUZFMEY/KT98XFx1REM2OCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldXFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM10pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2OSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9bXFx1REM2OFxcdURDNjldfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/fFxcdURDNjlcXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pKXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM10pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT98XFx1REU0Mig/OlxcdTIwMERbXFx1MjE5NFxcdTIxOTVdXFx1RkUwRj8pP3xcXHVERUI2KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpPyl8XFx1RDgzRSg/OltcXHVERDBDXFx1REQwRlxcdUREMTgtXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XFx1REVDMy1cXHVERUM1XFx1REVGMFxcdURFRjItXFx1REVGOF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRFxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERERFXFx1RERERl0oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREMERcXHVERDBFXFx1REQxMC1cXHVERDE3XFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzgtXFx1RERCNFxcdUREQjdcXHVEREJBXFx1RERCQy1cXHVERENDXFx1REREMFxcdURERTAtXFx1RERGRlxcdURFNzAtXFx1REU3Q1xcdURFODAtXFx1REU4OVxcdURFOEYtXFx1REVDMlxcdURFQzZcXHVERUNFLVxcdURFRENcXHVERURGLVxcdURFRTldfFxcdUREM0MoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/fFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFxcdUREQ0UoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/fFxcdURERDEoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdURERDFcXHUyMDBEXFx1RDgzRVxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpP3xcXHVEREQyKD86XFx1MjAwRFxcdUQ4M0VcXHVEREQyKT8pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpPykpP3xcXHVERUYxKD86XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pP3xcXHVERkZDKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSk/fFxcdURGRkQoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKT98XFx1REZGRSg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pP3xcXHVERkZGKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKT8pKT8pL2c7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIENvbnRleHR1YWxLZXl3b3JkOyAoZnVuY3Rpb24gKENvbnRleHR1YWxLZXl3b3JkKSB7XG4gIGNvbnN0IE5PTkUgPSAwOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIk5PTkVcIl0gPSBOT05FXSA9IFwiTk9ORVwiO1xuICBjb25zdCBfYWJzdHJhY3QgPSBOT05FICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYWJzdHJhY3RcIl0gPSBfYWJzdHJhY3RdID0gXCJfYWJzdHJhY3RcIjtcbiAgY29uc3QgX2FjY2Vzc29yID0gX2Fic3RyYWN0ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYWNjZXNzb3JcIl0gPSBfYWNjZXNzb3JdID0gXCJfYWNjZXNzb3JcIjtcbiAgY29uc3QgX2FzID0gX2FjY2Vzc29yICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXNcIl0gPSBfYXNdID0gXCJfYXNcIjtcbiAgY29uc3QgX2Fzc2VydCA9IF9hcyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Fzc2VydFwiXSA9IF9hc3NlcnRdID0gXCJfYXNzZXJ0XCI7XG4gIGNvbnN0IF9hc3NlcnRzID0gX2Fzc2VydCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Fzc2VydHNcIl0gPSBfYXNzZXJ0c10gPSBcIl9hc3NlcnRzXCI7XG4gIGNvbnN0IF9hc3luYyA9IF9hc3NlcnRzICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXN5bmNcIl0gPSBfYXN5bmNdID0gXCJfYXN5bmNcIjtcbiAgY29uc3QgX2F3YWl0ID0gX2FzeW5jICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXdhaXRcIl0gPSBfYXdhaXRdID0gXCJfYXdhaXRcIjtcbiAgY29uc3QgX2NoZWNrcyA9IF9hd2FpdCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2NoZWNrc1wiXSA9IF9jaGVja3NdID0gXCJfY2hlY2tzXCI7XG4gIGNvbnN0IF9jb25zdHJ1Y3RvciA9IF9jaGVja3MgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9jb25zdHJ1Y3RvclwiXSA9IF9jb25zdHJ1Y3Rvcl0gPSBcIl9jb25zdHJ1Y3RvclwiO1xuICBjb25zdCBfZGVjbGFyZSA9IF9jb25zdHJ1Y3RvciArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2RlY2xhcmVcIl0gPSBfZGVjbGFyZV0gPSBcIl9kZWNsYXJlXCI7XG4gIGNvbnN0IF9lbnVtID0gX2RlY2xhcmUgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9lbnVtXCJdID0gX2VudW1dID0gXCJfZW51bVwiO1xuICBjb25zdCBfZXhwb3J0cyA9IF9lbnVtICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfZXhwb3J0c1wiXSA9IF9leHBvcnRzXSA9IFwiX2V4cG9ydHNcIjtcbiAgY29uc3QgX2Zyb20gPSBfZXhwb3J0cyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Zyb21cIl0gPSBfZnJvbV0gPSBcIl9mcm9tXCI7XG4gIGNvbnN0IF9nZXQgPSBfZnJvbSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2dldFwiXSA9IF9nZXRdID0gXCJfZ2V0XCI7XG4gIGNvbnN0IF9nbG9iYWwgPSBfZ2V0ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfZ2xvYmFsXCJdID0gX2dsb2JhbF0gPSBcIl9nbG9iYWxcIjtcbiAgY29uc3QgX2ltcGxlbWVudHMgPSBfZ2xvYmFsICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfaW1wbGVtZW50c1wiXSA9IF9pbXBsZW1lbnRzXSA9IFwiX2ltcGxlbWVudHNcIjtcbiAgY29uc3QgX2luZmVyID0gX2ltcGxlbWVudHMgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9pbmZlclwiXSA9IF9pbmZlcl0gPSBcIl9pbmZlclwiO1xuICBjb25zdCBfaW50ZXJmYWNlID0gX2luZmVyICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfaW50ZXJmYWNlXCJdID0gX2ludGVyZmFjZV0gPSBcIl9pbnRlcmZhY2VcIjtcbiAgY29uc3QgX2lzID0gX2ludGVyZmFjZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2lzXCJdID0gX2lzXSA9IFwiX2lzXCI7XG4gIGNvbnN0IF9rZXlvZiA9IF9pcyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2tleW9mXCJdID0gX2tleW9mXSA9IFwiX2tleW9mXCI7XG4gIGNvbnN0IF9taXhpbnMgPSBfa2V5b2YgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9taXhpbnNcIl0gPSBfbWl4aW5zXSA9IFwiX21peGluc1wiO1xuICBjb25zdCBfbW9kdWxlID0gX21peGlucyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX21vZHVsZVwiXSA9IF9tb2R1bGVdID0gXCJfbW9kdWxlXCI7XG4gIGNvbnN0IF9uYW1lc3BhY2UgPSBfbW9kdWxlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfbmFtZXNwYWNlXCJdID0gX25hbWVzcGFjZV0gPSBcIl9uYW1lc3BhY2VcIjtcbiAgY29uc3QgX29mID0gX25hbWVzcGFjZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX29mXCJdID0gX29mXSA9IFwiX29mXCI7XG4gIGNvbnN0IF9vcGFxdWUgPSBfb2YgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9vcGFxdWVcIl0gPSBfb3BhcXVlXSA9IFwiX29wYXF1ZVwiO1xuICBjb25zdCBfb3V0ID0gX29wYXF1ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX291dFwiXSA9IF9vdXRdID0gXCJfb3V0XCI7XG4gIGNvbnN0IF9vdmVycmlkZSA9IF9vdXQgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9vdmVycmlkZVwiXSA9IF9vdmVycmlkZV0gPSBcIl9vdmVycmlkZVwiO1xuICBjb25zdCBfcHJpdmF0ZSA9IF9vdmVycmlkZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3ByaXZhdGVcIl0gPSBfcHJpdmF0ZV0gPSBcIl9wcml2YXRlXCI7XG4gIGNvbnN0IF9wcm90ZWN0ZWQgPSBfcHJpdmF0ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3Byb3RlY3RlZFwiXSA9IF9wcm90ZWN0ZWRdID0gXCJfcHJvdGVjdGVkXCI7XG4gIGNvbnN0IF9wcm90byA9IF9wcm90ZWN0ZWQgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9wcm90b1wiXSA9IF9wcm90b10gPSBcIl9wcm90b1wiO1xuICBjb25zdCBfcHVibGljID0gX3Byb3RvICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfcHVibGljXCJdID0gX3B1YmxpY10gPSBcIl9wdWJsaWNcIjtcbiAgY29uc3QgX3JlYWRvbmx5ID0gX3B1YmxpYyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3JlYWRvbmx5XCJdID0gX3JlYWRvbmx5XSA9IFwiX3JlYWRvbmx5XCI7XG4gIGNvbnN0IF9yZXF1aXJlID0gX3JlYWRvbmx5ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfcmVxdWlyZVwiXSA9IF9yZXF1aXJlXSA9IFwiX3JlcXVpcmVcIjtcbiAgY29uc3QgX3NhdGlzZmllcyA9IF9yZXF1aXJlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfc2F0aXNmaWVzXCJdID0gX3NhdGlzZmllc10gPSBcIl9zYXRpc2ZpZXNcIjtcbiAgY29uc3QgX3NldCA9IF9zYXRpc2ZpZXMgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9zZXRcIl0gPSBfc2V0XSA9IFwiX3NldFwiO1xuICBjb25zdCBfc3RhdGljID0gX3NldCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3N0YXRpY1wiXSA9IF9zdGF0aWNdID0gXCJfc3RhdGljXCI7XG4gIGNvbnN0IF9zeW1ib2wgPSBfc3RhdGljICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfc3ltYm9sXCJdID0gX3N5bWJvbF0gPSBcIl9zeW1ib2xcIjtcbiAgY29uc3QgX3R5cGUgPSBfc3ltYm9sICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfdHlwZVwiXSA9IF90eXBlXSA9IFwiX3R5cGVcIjtcbiAgY29uc3QgX3VuaXF1ZSA9IF90eXBlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfdW5pcXVlXCJdID0gX3VuaXF1ZV0gPSBcIl91bmlxdWVcIjtcbiAgY29uc3QgX3VzaW5nID0gX3VuaXF1ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3VzaW5nXCJdID0gX3VzaW5nXSA9IFwiX3VzaW5nXCI7XG59KShDb250ZXh0dWFsS2V5d29yZCB8fCAoZXhwb3J0cy5Db250ZXh0dWFsS2V5d29yZCA9IENvbnRleHR1YWxLZXl3b3JkID0ge30pKTtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOy8vIEdlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdCEgUnVuIFwieWFybiBnZW5lcmF0ZVwiIHRvIHJlLWdlbmVyYXRlIHRoaXMgZmlsZS5cbi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIEVudW0gb2YgYWxsIHRva2VuIHR5cGVzLCB3aXRoIGJpdCBmaWVsZHMgdG8gc2lnbmlmeSBtZWFuaW5nZnVsIHByb3BlcnRpZXMuXG4gKi9cbnZhciBUb2tlblR5cGU7IChmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gIC8vIFByZWNlZGVuY2UgMCBtZWFucyBub3QgYW4gb3BlcmF0b3I7IG90aGVyd2lzZSBpdCBpcyBhIHBvc2l0aXZlIG51bWJlciB1cCB0byAxMi5cbiAgY29uc3QgUFJFQ0VERU5DRV9NQVNLID0gMHhmOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiUFJFQ0VERU5DRV9NQVNLXCJdID0gUFJFQ0VERU5DRV9NQVNLXSA9IFwiUFJFQ0VERU5DRV9NQVNLXCI7XG4gIGNvbnN0IElTX0tFWVdPUkQgPSAxIDw8IDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJJU19LRVlXT1JEXCJdID0gSVNfS0VZV09SRF0gPSBcIklTX0tFWVdPUkRcIjtcbiAgY29uc3QgSVNfQVNTSUdOID0gMSA8PCA1OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSVNfQVNTSUdOXCJdID0gSVNfQVNTSUdOXSA9IFwiSVNfQVNTSUdOXCI7XG4gIGNvbnN0IElTX1JJR0hUX0FTU09DSUFUSVZFID0gMSA8PCA2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSVNfUklHSFRfQVNTT0NJQVRJVkVcIl0gPSBJU19SSUdIVF9BU1NPQ0lBVElWRV0gPSBcIklTX1JJR0hUX0FTU09DSUFUSVZFXCI7XG4gIGNvbnN0IElTX1BSRUZJWCA9IDEgPDwgNzsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIklTX1BSRUZJWFwiXSA9IElTX1BSRUZJWF0gPSBcIklTX1BSRUZJWFwiO1xuICBjb25zdCBJU19QT1NURklYID0gMSA8PCA4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSVNfUE9TVEZJWFwiXSA9IElTX1BPU1RGSVhdID0gXCJJU19QT1NURklYXCI7XG4gIGNvbnN0IElTX0VYUFJFU1NJT05fU1RBUlQgPSAxIDw8IDk7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJJU19FWFBSRVNTSU9OX1NUQVJUXCJdID0gSVNfRVhQUkVTU0lPTl9TVEFSVF0gPSBcIklTX0VYUFJFU1NJT05fU1RBUlRcIjtcblxuICBjb25zdCBudW0gPSA1MTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJudW1cIl0gPSBudW1dID0gXCJudW1cIjsgLy8gbnVtIHN0YXJ0c0V4cHJcbiAgY29uc3QgYmlnaW50ID0gMTUzNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJpZ2ludFwiXSA9IGJpZ2ludF0gPSBcImJpZ2ludFwiOyAvLyBiaWdpbnQgc3RhcnRzRXhwclxuICBjb25zdCBkZWNpbWFsID0gMjU2MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImRlY2ltYWxcIl0gPSBkZWNpbWFsXSA9IFwiZGVjaW1hbFwiOyAvLyBkZWNpbWFsIHN0YXJ0c0V4cHJcbiAgY29uc3QgcmVnZXhwID0gMzU4NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInJlZ2V4cFwiXSA9IHJlZ2V4cF0gPSBcInJlZ2V4cFwiOyAvLyByZWdleHAgc3RhcnRzRXhwclxuICBjb25zdCBzdHJpbmcgPSA0NjA4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wic3RyaW5nXCJdID0gc3RyaW5nXSA9IFwic3RyaW5nXCI7IC8vIHN0cmluZyBzdGFydHNFeHByXG4gIGNvbnN0IG5hbWUgPSA1NjMyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibmFtZVwiXSA9IG5hbWVdID0gXCJuYW1lXCI7IC8vIG5hbWUgc3RhcnRzRXhwclxuICBjb25zdCBlb2YgPSA2MTQ0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiZW9mXCJdID0gZW9mXSA9IFwiZW9mXCI7IC8vIGVvZlxuICBjb25zdCBicmFja2V0TCA9IDc2ODA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJicmFja2V0TFwiXSA9IGJyYWNrZXRMXSA9IFwiYnJhY2tldExcIjsgLy8gWyBzdGFydHNFeHByXG4gIGNvbnN0IGJyYWNrZXRSID0gODE5MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJyYWNrZXRSXCJdID0gYnJhY2tldFJdID0gXCJicmFja2V0UlwiOyAvLyBdXG4gIGNvbnN0IGJyYWNlTCA9IDk3Mjg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJicmFjZUxcIl0gPSBicmFjZUxdID0gXCJicmFjZUxcIjsgLy8geyBzdGFydHNFeHByXG4gIGNvbnN0IGJyYWNlQmFyTCA9IDEwNzUyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYnJhY2VCYXJMXCJdID0gYnJhY2VCYXJMXSA9IFwiYnJhY2VCYXJMXCI7IC8vIHt8IHN0YXJ0c0V4cHJcbiAgY29uc3QgYnJhY2VSID0gMTEyNjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJicmFjZVJcIl0gPSBicmFjZVJdID0gXCJicmFjZVJcIjsgLy8gfVxuICBjb25zdCBicmFjZUJhclIgPSAxMjI4ODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJyYWNlQmFyUlwiXSA9IGJyYWNlQmFyUl0gPSBcImJyYWNlQmFyUlwiOyAvLyB8fVxuICBjb25zdCBwYXJlbkwgPSAxMzgyNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInBhcmVuTFwiXSA9IHBhcmVuTF0gPSBcInBhcmVuTFwiOyAvLyAoIHN0YXJ0c0V4cHJcbiAgY29uc3QgcGFyZW5SID0gMTQzMzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJwYXJlblJcIl0gPSBwYXJlblJdID0gXCJwYXJlblJcIjsgLy8gKVxuICBjb25zdCBjb21tYSA9IDE1MzYwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiY29tbWFcIl0gPSBjb21tYV0gPSBcImNvbW1hXCI7IC8vICxcbiAgY29uc3Qgc2VtaSA9IDE2Mzg0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wic2VtaVwiXSA9IHNlbWldID0gXCJzZW1pXCI7IC8vIDtcbiAgY29uc3QgY29sb24gPSAxNzQwODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImNvbG9uXCJdID0gY29sb25dID0gXCJjb2xvblwiOyAvLyA6XG4gIGNvbnN0IGRvdWJsZUNvbG9uID0gMTg0MzI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJkb3VibGVDb2xvblwiXSA9IGRvdWJsZUNvbG9uXSA9IFwiZG91YmxlQ29sb25cIjsgLy8gOjpcbiAgY29uc3QgZG90ID0gMTk0NTY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJkb3RcIl0gPSBkb3RdID0gXCJkb3RcIjsgLy8gLlxuICBjb25zdCBxdWVzdGlvbiA9IDIwNDgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wicXVlc3Rpb25cIl0gPSBxdWVzdGlvbl0gPSBcInF1ZXN0aW9uXCI7IC8vID9cbiAgY29uc3QgcXVlc3Rpb25Eb3QgPSAyMTUwNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInF1ZXN0aW9uRG90XCJdID0gcXVlc3Rpb25Eb3RdID0gXCJxdWVzdGlvbkRvdFwiOyAvLyA/LlxuICBjb25zdCBhcnJvdyA9IDIyNTI4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYXJyb3dcIl0gPSBhcnJvd10gPSBcImFycm93XCI7IC8vID0+XG4gIGNvbnN0IHRlbXBsYXRlID0gMjM1NTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJ0ZW1wbGF0ZVwiXSA9IHRlbXBsYXRlXSA9IFwidGVtcGxhdGVcIjsgLy8gdGVtcGxhdGVcbiAgY29uc3QgZWxsaXBzaXMgPSAyNDU3NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImVsbGlwc2lzXCJdID0gZWxsaXBzaXNdID0gXCJlbGxpcHNpc1wiOyAvLyAuLi5cbiAgY29uc3QgYmFja1F1b3RlID0gMjU2MDA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiYWNrUXVvdGVcIl0gPSBiYWNrUXVvdGVdID0gXCJiYWNrUXVvdGVcIjsgLy8gYFxuICBjb25zdCBkb2xsYXJCcmFjZUwgPSAyNzEzNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImRvbGxhckJyYWNlTFwiXSA9IGRvbGxhckJyYWNlTF0gPSBcImRvbGxhckJyYWNlTFwiOyAvLyAkeyBzdGFydHNFeHByXG4gIGNvbnN0IGF0ID0gMjc2NDg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJhdFwiXSA9IGF0XSA9IFwiYXRcIjsgLy8gQFxuICBjb25zdCBoYXNoID0gMjkxODQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJoYXNoXCJdID0gaGFzaF0gPSBcImhhc2hcIjsgLy8gIyBzdGFydHNFeHByXG4gIGNvbnN0IGVxID0gMjk3Mjg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJlcVwiXSA9IGVxXSA9IFwiZXFcIjsgLy8gPSBpc0Fzc2lnblxuICBjb25zdCBhc3NpZ24gPSAzMDc1MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImFzc2lnblwiXSA9IGFzc2lnbl0gPSBcImFzc2lnblwiOyAvLyBfPSBpc0Fzc2lnblxuICBjb25zdCBwcmVJbmNEZWMgPSAzMjY0MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInByZUluY0RlY1wiXSA9IHByZUluY0RlY10gPSBcInByZUluY0RlY1wiOyAvLyArKy8tLSBwcmVmaXggcG9zdGZpeCBzdGFydHNFeHByXG4gIGNvbnN0IHBvc3RJbmNEZWMgPSAzMzY2NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInBvc3RJbmNEZWNcIl0gPSBwb3N0SW5jRGVjXSA9IFwicG9zdEluY0RlY1wiOyAvLyArKy8tLSBwcmVmaXggcG9zdGZpeCBzdGFydHNFeHByXG4gIGNvbnN0IGJhbmcgPSAzNDQzMjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJhbmdcIl0gPSBiYW5nXSA9IFwiYmFuZ1wiOyAvLyAhIHByZWZpeCBzdGFydHNFeHByXG4gIGNvbnN0IHRpbGRlID0gMzU0NTY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJ0aWxkZVwiXSA9IHRpbGRlXSA9IFwidGlsZGVcIjsgLy8gfiBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCBwaXBlbGluZSA9IDM1ODQxOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wicGlwZWxpbmVcIl0gPSBwaXBlbGluZV0gPSBcInBpcGVsaW5lXCI7IC8vIHw+IHByZWM6MVxuICBjb25zdCBudWxsaXNoQ29hbGVzY2luZyA9IDM2ODY2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibnVsbGlzaENvYWxlc2NpbmdcIl0gPSBudWxsaXNoQ29hbGVzY2luZ10gPSBcIm51bGxpc2hDb2FsZXNjaW5nXCI7IC8vID8/IHByZWM6MlxuICBjb25zdCBsb2dpY2FsT1IgPSAzNzg5MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImxvZ2ljYWxPUlwiXSA9IGxvZ2ljYWxPUl0gPSBcImxvZ2ljYWxPUlwiOyAvLyB8fCBwcmVjOjJcbiAgY29uc3QgbG9naWNhbEFORCA9IDM4OTE1OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibG9naWNhbEFORFwiXSA9IGxvZ2ljYWxBTkRdID0gXCJsb2dpY2FsQU5EXCI7IC8vICYmIHByZWM6M1xuICBjb25zdCBiaXR3aXNlT1IgPSAzOTk0MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJpdHdpc2VPUlwiXSA9IGJpdHdpc2VPUl0gPSBcImJpdHdpc2VPUlwiOyAvLyB8IHByZWM6NFxuICBjb25zdCBiaXR3aXNlWE9SID0gNDA5NjU7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiaXR3aXNlWE9SXCJdID0gYml0d2lzZVhPUl0gPSBcImJpdHdpc2VYT1JcIjsgLy8gXiBwcmVjOjVcbiAgY29uc3QgYml0d2lzZUFORCA9IDQxOTkwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYml0d2lzZUFORFwiXSA9IGJpdHdpc2VBTkRdID0gXCJiaXR3aXNlQU5EXCI7IC8vICYgcHJlYzo2XG4gIGNvbnN0IGVxdWFsaXR5ID0gNDMwMTU7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJlcXVhbGl0eVwiXSA9IGVxdWFsaXR5XSA9IFwiZXF1YWxpdHlcIjsgLy8gPT0vIT0gcHJlYzo3XG4gIGNvbnN0IGxlc3NUaGFuID0gNDQwNDA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJsZXNzVGhhblwiXSA9IGxlc3NUaGFuXSA9IFwibGVzc1RoYW5cIjsgLy8gPCBwcmVjOjhcbiAgY29uc3QgZ3JlYXRlclRoYW4gPSA0NTA2NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImdyZWF0ZXJUaGFuXCJdID0gZ3JlYXRlclRoYW5dID0gXCJncmVhdGVyVGhhblwiOyAvLyA+IHByZWM6OFxuICBjb25zdCByZWxhdGlvbmFsT3JFcXVhbCA9IDQ2MDg4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wicmVsYXRpb25hbE9yRXF1YWxcIl0gPSByZWxhdGlvbmFsT3JFcXVhbF0gPSBcInJlbGF0aW9uYWxPckVxdWFsXCI7IC8vIDw9Lz49IHByZWM6OFxuICBjb25zdCBiaXRTaGlmdEwgPSA0NzExMzsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJpdFNoaWZ0TFwiXSA9IGJpdFNoaWZ0TF0gPSBcImJpdFNoaWZ0TFwiOyAvLyA8PCBwcmVjOjlcbiAgY29uc3QgYml0U2hpZnRSID0gNDgxMzc7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiaXRTaGlmdFJcIl0gPSBiaXRTaGlmdFJdID0gXCJiaXRTaGlmdFJcIjsgLy8gPj4vPj4+IHByZWM6OVxuICBjb25zdCBwbHVzID0gNDk4MDI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJwbHVzXCJdID0gcGx1c10gPSBcInBsdXNcIjsgLy8gKyBwcmVjOjEwIHByZWZpeCBzdGFydHNFeHByXG4gIGNvbnN0IG1pbnVzID0gNTA4MjY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJtaW51c1wiXSA9IG1pbnVzXSA9IFwibWludXNcIjsgLy8gLSBwcmVjOjEwIHByZWZpeCBzdGFydHNFeHByXG4gIGNvbnN0IG1vZHVsbyA9IDUxNzIzOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibW9kdWxvXCJdID0gbW9kdWxvXSA9IFwibW9kdWxvXCI7IC8vICUgcHJlYzoxMSBzdGFydHNFeHByXG4gIGNvbnN0IHN0YXIgPSA1MjIzNTsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInN0YXJcIl0gPSBzdGFyXSA9IFwic3RhclwiOyAvLyAqIHByZWM6MTFcbiAgY29uc3Qgc2xhc2ggPSA1MzI1OTsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInNsYXNoXCJdID0gc2xhc2hdID0gXCJzbGFzaFwiOyAvLyAvIHByZWM6MTFcbiAgY29uc3QgZXhwb25lbnQgPSA1NDM0ODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImV4cG9uZW50XCJdID0gZXhwb25lbnRdID0gXCJleHBvbmVudFwiOyAvLyAqKiBwcmVjOjEyIHJpZ2h0QXNzb2NpYXRpdmVcbiAgY29uc3QganN4TmFtZSA9IDU1Mjk2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wianN4TmFtZVwiXSA9IGpzeE5hbWVdID0gXCJqc3hOYW1lXCI7IC8vIGpzeE5hbWVcbiAgY29uc3QganN4VGV4dCA9IDU2MzIwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wianN4VGV4dFwiXSA9IGpzeFRleHRdID0gXCJqc3hUZXh0XCI7IC8vIGpzeFRleHRcbiAgY29uc3QganN4RW1wdHlUZXh0ID0gNTczNDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJqc3hFbXB0eVRleHRcIl0gPSBqc3hFbXB0eVRleHRdID0gXCJqc3hFbXB0eVRleHRcIjsgLy8ganN4RW1wdHlUZXh0XG4gIGNvbnN0IGpzeFRhZ1N0YXJ0ID0gNTg4ODA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJqc3hUYWdTdGFydFwiXSA9IGpzeFRhZ1N0YXJ0XSA9IFwianN4VGFnU3RhcnRcIjsgLy8ganN4VGFnU3RhcnQgc3RhcnRzRXhwclxuICBjb25zdCBqc3hUYWdFbmQgPSA1OTM5MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImpzeFRhZ0VuZFwiXSA9IGpzeFRhZ0VuZF0gPSBcImpzeFRhZ0VuZFwiOyAvLyBqc3hUYWdFbmRcbiAgY29uc3QgdHlwZVBhcmFtZXRlclN0YXJ0ID0gNjA5Mjg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJ0eXBlUGFyYW1ldGVyU3RhcnRcIl0gPSB0eXBlUGFyYW1ldGVyU3RhcnRdID0gXCJ0eXBlUGFyYW1ldGVyU3RhcnRcIjsgLy8gdHlwZVBhcmFtZXRlclN0YXJ0IHN0YXJ0c0V4cHJcbiAgY29uc3Qgbm9uTnVsbEFzc2VydGlvbiA9IDYxNDQwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibm9uTnVsbEFzc2VydGlvblwiXSA9IG5vbk51bGxBc3NlcnRpb25dID0gXCJub25OdWxsQXNzZXJ0aW9uXCI7IC8vIG5vbk51bGxBc3NlcnRpb25cbiAgY29uc3QgX2JyZWFrID0gNjI0ODA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfYnJlYWtcIl0gPSBfYnJlYWtdID0gXCJfYnJlYWtcIjsgLy8gYnJlYWsga2V5d29yZFxuICBjb25zdCBfY2FzZSA9IDYzNTA0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2Nhc2VcIl0gPSBfY2FzZV0gPSBcIl9jYXNlXCI7IC8vIGNhc2Uga2V5d29yZFxuICBjb25zdCBfY2F0Y2ggPSA2NDUyODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9jYXRjaFwiXSA9IF9jYXRjaF0gPSBcIl9jYXRjaFwiOyAvLyBjYXRjaCBrZXl3b3JkXG4gIGNvbnN0IF9jb250aW51ZSA9IDY1NTUyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2NvbnRpbnVlXCJdID0gX2NvbnRpbnVlXSA9IFwiX2NvbnRpbnVlXCI7IC8vIGNvbnRpbnVlIGtleXdvcmRcbiAgY29uc3QgX2RlYnVnZ2VyID0gNjY1NzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZGVidWdnZXJcIl0gPSBfZGVidWdnZXJdID0gXCJfZGVidWdnZXJcIjsgLy8gZGVidWdnZXIga2V5d29yZFxuICBjb25zdCBfZGVmYXVsdCA9IDY3NjAwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2RlZmF1bHRcIl0gPSBfZGVmYXVsdF0gPSBcIl9kZWZhdWx0XCI7IC8vIGRlZmF1bHQga2V5d29yZFxuICBjb25zdCBfZG8gPSA2ODYyNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9kb1wiXSA9IF9kb10gPSBcIl9kb1wiOyAvLyBkbyBrZXl3b3JkXG4gIGNvbnN0IF9lbHNlID0gNjk2NDg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZWxzZVwiXSA9IF9lbHNlXSA9IFwiX2Vsc2VcIjsgLy8gZWxzZSBrZXl3b3JkXG4gIGNvbnN0IF9maW5hbGx5ID0gNzA2NzI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZmluYWxseVwiXSA9IF9maW5hbGx5XSA9IFwiX2ZpbmFsbHlcIjsgLy8gZmluYWxseSBrZXl3b3JkXG4gIGNvbnN0IF9mb3IgPSA3MTY5NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9mb3JcIl0gPSBfZm9yXSA9IFwiX2ZvclwiOyAvLyBmb3Iga2V5d29yZFxuICBjb25zdCBfZnVuY3Rpb24gPSA3MzIzMjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9mdW5jdGlvblwiXSA9IF9mdW5jdGlvbl0gPSBcIl9mdW5jdGlvblwiOyAvLyBmdW5jdGlvbiBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2lmID0gNzM3NDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfaWZcIl0gPSBfaWZdID0gXCJfaWZcIjsgLy8gaWYga2V5d29yZFxuICBjb25zdCBfcmV0dXJuID0gNzQ3Njg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfcmV0dXJuXCJdID0gX3JldHVybl0gPSBcIl9yZXR1cm5cIjsgLy8gcmV0dXJuIGtleXdvcmRcbiAgY29uc3QgX3N3aXRjaCA9IDc1NzkyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3N3aXRjaFwiXSA9IF9zd2l0Y2hdID0gXCJfc3dpdGNoXCI7IC8vIHN3aXRjaCBrZXl3b3JkXG4gIGNvbnN0IF90aHJvdyA9IDc3NDU2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3Rocm93XCJdID0gX3Rocm93XSA9IFwiX3Rocm93XCI7IC8vIHRocm93IGtleXdvcmQgcHJlZml4IHN0YXJ0c0V4cHJcbiAgY29uc3QgX3RyeSA9IDc3ODQwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3RyeVwiXSA9IF90cnldID0gXCJfdHJ5XCI7IC8vIHRyeSBrZXl3b3JkXG4gIGNvbnN0IF92YXIgPSA3ODg2NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl92YXJcIl0gPSBfdmFyXSA9IFwiX3ZhclwiOyAvLyB2YXIga2V5d29yZFxuICBjb25zdCBfbGV0ID0gNzk4ODg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfbGV0XCJdID0gX2xldF0gPSBcIl9sZXRcIjsgLy8gbGV0IGtleXdvcmRcbiAgY29uc3QgX2NvbnN0ID0gODA5MTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfY29uc3RcIl0gPSBfY29uc3RdID0gXCJfY29uc3RcIjsgLy8gY29uc3Qga2V5d29yZFxuICBjb25zdCBfd2hpbGUgPSA4MTkzNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl93aGlsZVwiXSA9IF93aGlsZV0gPSBcIl93aGlsZVwiOyAvLyB3aGlsZSBrZXl3b3JkXG4gIGNvbnN0IF93aXRoID0gODI5NjA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfd2l0aFwiXSA9IF93aXRoXSA9IFwiX3dpdGhcIjsgLy8gd2l0aCBrZXl3b3JkXG4gIGNvbnN0IF9uZXcgPSA4NDQ5NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9uZXdcIl0gPSBfbmV3XSA9IFwiX25ld1wiOyAvLyBuZXcga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF90aGlzID0gODU1MjA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfdGhpc1wiXSA9IF90aGlzXSA9IFwiX3RoaXNcIjsgLy8gdGhpcyBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3N1cGVyID0gODY1NDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfc3VwZXJcIl0gPSBfc3VwZXJdID0gXCJfc3VwZXJcIjsgLy8gc3VwZXIga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9jbGFzcyA9IDg3NTY4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2NsYXNzXCJdID0gX2NsYXNzXSA9IFwiX2NsYXNzXCI7IC8vIGNsYXNzIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfZXh0ZW5kcyA9IDg4MDgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2V4dGVuZHNcIl0gPSBfZXh0ZW5kc10gPSBcIl9leHRlbmRzXCI7IC8vIGV4dGVuZHMga2V5d29yZFxuICBjb25zdCBfZXhwb3J0ID0gODkxMDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZXhwb3J0XCJdID0gX2V4cG9ydF0gPSBcIl9leHBvcnRcIjsgLy8gZXhwb3J0IGtleXdvcmRcbiAgY29uc3QgX2ltcG9ydCA9IDkwNjQwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2ltcG9ydFwiXSA9IF9pbXBvcnRdID0gXCJfaW1wb3J0XCI7IC8vIGltcG9ydCBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3lpZWxkID0gOTE2NjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfeWllbGRcIl0gPSBfeWllbGRdID0gXCJfeWllbGRcIjsgLy8geWllbGQga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9udWxsID0gOTI2ODg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfbnVsbFwiXSA9IF9udWxsXSA9IFwiX251bGxcIjsgLy8gbnVsbCBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3RydWUgPSA5MzcxMjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl90cnVlXCJdID0gX3RydWVdID0gXCJfdHJ1ZVwiOyAvLyB0cnVlIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfZmFsc2UgPSA5NDczNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9mYWxzZVwiXSA9IF9mYWxzZV0gPSBcIl9mYWxzZVwiOyAvLyBmYWxzZSBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2luID0gOTUyNTY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfaW5cIl0gPSBfaW5dID0gXCJfaW5cIjsgLy8gaW4gcHJlYzo4IGtleXdvcmRcbiAgY29uc3QgX2luc3RhbmNlb2YgPSA5NjI4MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9pbnN0YW5jZW9mXCJdID0gX2luc3RhbmNlb2ZdID0gXCJfaW5zdGFuY2VvZlwiOyAvLyBpbnN0YW5jZW9mIHByZWM6OCBrZXl3b3JkXG4gIGNvbnN0IF90eXBlb2YgPSA5NzkzNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl90eXBlb2ZcIl0gPSBfdHlwZW9mXSA9IFwiX3R5cGVvZlwiOyAvLyB0eXBlb2Yga2V5d29yZCBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCBfdm9pZCA9IDk4OTYwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3ZvaWRcIl0gPSBfdm9pZF0gPSBcIl92b2lkXCI7IC8vIHZvaWQga2V5d29yZCBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCBfZGVsZXRlID0gOTk5ODQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZGVsZXRlXCJdID0gX2RlbGV0ZV0gPSBcIl9kZWxldGVcIjsgLy8gZGVsZXRlIGtleXdvcmQgcHJlZml4IHN0YXJ0c0V4cHJcbiAgY29uc3QgX2FzeW5jID0gMTAwODgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2FzeW5jXCJdID0gX2FzeW5jXSA9IFwiX2FzeW5jXCI7IC8vIGFzeW5jIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfZ2V0ID0gMTAxOTA0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2dldFwiXSA9IF9nZXRdID0gXCJfZ2V0XCI7IC8vIGdldCBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3NldCA9IDEwMjkyODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9zZXRcIl0gPSBfc2V0XSA9IFwiX3NldFwiOyAvLyBzZXQga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9kZWNsYXJlID0gMTAzOTUyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2RlY2xhcmVcIl0gPSBfZGVjbGFyZV0gPSBcIl9kZWNsYXJlXCI7IC8vIGRlY2xhcmUga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9yZWFkb25seSA9IDEwNDk3NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9yZWFkb25seVwiXSA9IF9yZWFkb25seV0gPSBcIl9yZWFkb25seVwiOyAvLyByZWFkb25seSBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2Fic3RyYWN0ID0gMTA2MDAwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2Fic3RyYWN0XCJdID0gX2Fic3RyYWN0XSA9IFwiX2Fic3RyYWN0XCI7IC8vIGFic3RyYWN0IGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfc3RhdGljID0gMTA3MDI0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3N0YXRpY1wiXSA9IF9zdGF0aWNdID0gXCJfc3RhdGljXCI7IC8vIHN0YXRpYyBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3B1YmxpYyA9IDEwNzUzNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9wdWJsaWNcIl0gPSBfcHVibGljXSA9IFwiX3B1YmxpY1wiOyAvLyBwdWJsaWMga2V5d29yZFxuICBjb25zdCBfcHJpdmF0ZSA9IDEwODU2MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9wcml2YXRlXCJdID0gX3ByaXZhdGVdID0gXCJfcHJpdmF0ZVwiOyAvLyBwcml2YXRlIGtleXdvcmRcbiAgY29uc3QgX3Byb3RlY3RlZCA9IDEwOTU4NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9wcm90ZWN0ZWRcIl0gPSBfcHJvdGVjdGVkXSA9IFwiX3Byb3RlY3RlZFwiOyAvLyBwcm90ZWN0ZWQga2V5d29yZFxuICBjb25zdCBfb3ZlcnJpZGUgPSAxMTA2MDg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfb3ZlcnJpZGVcIl0gPSBfb3ZlcnJpZGVdID0gXCJfb3ZlcnJpZGVcIjsgLy8gb3ZlcnJpZGUga2V5d29yZFxuICBjb25zdCBfYXMgPSAxMTIxNDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfYXNcIl0gPSBfYXNdID0gXCJfYXNcIjsgLy8gYXMga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9lbnVtID0gMTEzMTY4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2VudW1cIl0gPSBfZW51bV0gPSBcIl9lbnVtXCI7IC8vIGVudW0ga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF90eXBlID0gMTE0MTkyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3R5cGVcIl0gPSBfdHlwZV0gPSBcIl90eXBlXCI7IC8vIHR5cGUga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9pbXBsZW1lbnRzID0gMTE1MjE2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2ltcGxlbWVudHNcIl0gPSBfaW1wbGVtZW50c10gPSBcIl9pbXBsZW1lbnRzXCI7IC8vIGltcGxlbWVudHMga2V5d29yZCBzdGFydHNFeHByXG59KShUb2tlblR5cGUgfHwgKGV4cG9ydHMuVG9rZW5UeXBlID0gVG9rZW5UeXBlID0ge30pKTtcbiBmdW5jdGlvbiBmb3JtYXRUb2tlblR5cGUodG9rZW5UeXBlKSB7XG4gIHN3aXRjaCAodG9rZW5UeXBlKSB7XG4gICAgY2FzZSBUb2tlblR5cGUubnVtOlxuICAgICAgcmV0dXJuIFwibnVtXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYmlnaW50OlxuICAgICAgcmV0dXJuIFwiYmlnaW50XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZGVjaW1hbDpcbiAgICAgIHJldHVybiBcImRlY2ltYWxcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5yZWdleHA6XG4gICAgICByZXR1cm4gXCJyZWdleHBcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5zdHJpbmc6XG4gICAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5uYW1lOlxuICAgICAgcmV0dXJuIFwibmFtZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmVvZjpcbiAgICAgIHJldHVybiBcImVvZlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNrZXRMOlxuICAgICAgcmV0dXJuIFwiW1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNrZXRSOlxuICAgICAgcmV0dXJuIFwiXVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNlTDpcbiAgICAgIHJldHVybiBcIntcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5icmFjZUJhckw6XG4gICAgICByZXR1cm4gXCJ7fFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNlUjpcbiAgICAgIHJldHVybiBcIn1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5icmFjZUJhclI6XG4gICAgICByZXR1cm4gXCJ8fVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnBhcmVuTDpcbiAgICAgIHJldHVybiBcIihcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5wYXJlblI6XG4gICAgICByZXR1cm4gXCIpXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuY29tbWE6XG4gICAgICByZXR1cm4gXCIsXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuc2VtaTpcbiAgICAgIHJldHVybiBcIjtcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5jb2xvbjpcbiAgICAgIHJldHVybiBcIjpcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5kb3VibGVDb2xvbjpcbiAgICAgIHJldHVybiBcIjo6XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZG90OlxuICAgICAgcmV0dXJuIFwiLlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnF1ZXN0aW9uOlxuICAgICAgcmV0dXJuIFwiP1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnF1ZXN0aW9uRG90OlxuICAgICAgcmV0dXJuIFwiPy5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5hcnJvdzpcbiAgICAgIHJldHVybiBcIj0+XCI7XG4gICAgY2FzZSBUb2tlblR5cGUudGVtcGxhdGU6XG4gICAgICByZXR1cm4gXCJ0ZW1wbGF0ZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmVsbGlwc2lzOlxuICAgICAgcmV0dXJuIFwiLi4uXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYmFja1F1b3RlOlxuICAgICAgcmV0dXJuIFwiYFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmRvbGxhckJyYWNlTDpcbiAgICAgIHJldHVybiBcIiR7XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYXQ6XG4gICAgICByZXR1cm4gXCJAXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuaGFzaDpcbiAgICAgIHJldHVybiBcIiNcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5lcTpcbiAgICAgIHJldHVybiBcIj1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5hc3NpZ246XG4gICAgICByZXR1cm4gXCJfPVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnByZUluY0RlYzpcbiAgICAgIHJldHVybiBcIisrLy0tXCI7XG4gICAgY2FzZSBUb2tlblR5cGUucG9zdEluY0RlYzpcbiAgICAgIHJldHVybiBcIisrLy0tXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYmFuZzpcbiAgICAgIHJldHVybiBcIiFcIjtcbiAgICBjYXNlIFRva2VuVHlwZS50aWxkZTpcbiAgICAgIHJldHVybiBcIn5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5waXBlbGluZTpcbiAgICAgIHJldHVybiBcInw+XCI7XG4gICAgY2FzZSBUb2tlblR5cGUubnVsbGlzaENvYWxlc2Npbmc6XG4gICAgICByZXR1cm4gXCI/P1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmxvZ2ljYWxPUjpcbiAgICAgIHJldHVybiBcInx8XCI7XG4gICAgY2FzZSBUb2tlblR5cGUubG9naWNhbEFORDpcbiAgICAgIHJldHVybiBcIiYmXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYml0d2lzZU9SOlxuICAgICAgcmV0dXJuIFwifFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJpdHdpc2VYT1I6XG4gICAgICByZXR1cm4gXCJeXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYml0d2lzZUFORDpcbiAgICAgIHJldHVybiBcIiZcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5lcXVhbGl0eTpcbiAgICAgIHJldHVybiBcIj09LyE9XCI7XG4gICAgY2FzZSBUb2tlblR5cGUubGVzc1RoYW46XG4gICAgICByZXR1cm4gXCI8XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZ3JlYXRlclRoYW46XG4gICAgICByZXR1cm4gXCI+XCI7XG4gICAgY2FzZSBUb2tlblR5cGUucmVsYXRpb25hbE9yRXF1YWw6XG4gICAgICByZXR1cm4gXCI8PS8+PVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJpdFNoaWZ0TDpcbiAgICAgIHJldHVybiBcIjw8XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYml0U2hpZnRSOlxuICAgICAgcmV0dXJuIFwiPj4vPj4+XCI7XG4gICAgY2FzZSBUb2tlblR5cGUucGx1czpcbiAgICAgIHJldHVybiBcIitcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5taW51czpcbiAgICAgIHJldHVybiBcIi1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5tb2R1bG86XG4gICAgICByZXR1cm4gXCIlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuc3RhcjpcbiAgICAgIHJldHVybiBcIipcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5zbGFzaDpcbiAgICAgIHJldHVybiBcIi9cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5leHBvbmVudDpcbiAgICAgIHJldHVybiBcIioqXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuanN4TmFtZTpcbiAgICAgIHJldHVybiBcImpzeE5hbWVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5qc3hUZXh0OlxuICAgICAgcmV0dXJuIFwianN4VGV4dFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmpzeEVtcHR5VGV4dDpcbiAgICAgIHJldHVybiBcImpzeEVtcHR5VGV4dFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmpzeFRhZ1N0YXJ0OlxuICAgICAgcmV0dXJuIFwianN4VGFnU3RhcnRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5qc3hUYWdFbmQ6XG4gICAgICByZXR1cm4gXCJqc3hUYWdFbmRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS50eXBlUGFyYW1ldGVyU3RhcnQ6XG4gICAgICByZXR1cm4gXCJ0eXBlUGFyYW1ldGVyU3RhcnRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5ub25OdWxsQXNzZXJ0aW9uOlxuICAgICAgcmV0dXJuIFwibm9uTnVsbEFzc2VydGlvblwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9icmVhazpcbiAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2Nhc2U6XG4gICAgICByZXR1cm4gXCJjYXNlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2NhdGNoOlxuICAgICAgcmV0dXJuIFwiY2F0Y2hcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fY29udGludWU6XG4gICAgICByZXR1cm4gXCJjb250aW51ZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9kZWJ1Z2dlcjpcbiAgICAgIHJldHVybiBcImRlYnVnZ2VyXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2RlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJkZWZhdWx0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2RvOlxuICAgICAgcmV0dXJuIFwiZG9cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZWxzZTpcbiAgICAgIHJldHVybiBcImVsc2VcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZmluYWxseTpcbiAgICAgIHJldHVybiBcImZpbmFsbHlcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZm9yOlxuICAgICAgcmV0dXJuIFwiZm9yXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2Z1bmN0aW9uOlxuICAgICAgcmV0dXJuIFwiZnVuY3Rpb25cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5faWY6XG4gICAgICByZXR1cm4gXCJpZlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9yZXR1cm46XG4gICAgICByZXR1cm4gXCJyZXR1cm5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fc3dpdGNoOlxuICAgICAgcmV0dXJuIFwic3dpdGNoXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3Rocm93OlxuICAgICAgcmV0dXJuIFwidGhyb3dcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdHJ5OlxuICAgICAgcmV0dXJuIFwidHJ5XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3ZhcjpcbiAgICAgIHJldHVybiBcInZhclwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9sZXQ6XG4gICAgICByZXR1cm4gXCJsZXRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fY29uc3Q6XG4gICAgICByZXR1cm4gXCJjb25zdFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl93aGlsZTpcbiAgICAgIHJldHVybiBcIndoaWxlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3dpdGg6XG4gICAgICByZXR1cm4gXCJ3aXRoXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX25ldzpcbiAgICAgIHJldHVybiBcIm5ld1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl90aGlzOlxuICAgICAgcmV0dXJuIFwidGhpc1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9zdXBlcjpcbiAgICAgIHJldHVybiBcInN1cGVyXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2NsYXNzOlxuICAgICAgcmV0dXJuIFwiY2xhc3NcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZXh0ZW5kczpcbiAgICAgIHJldHVybiBcImV4dGVuZHNcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZXhwb3J0OlxuICAgICAgcmV0dXJuIFwiZXhwb3J0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2ltcG9ydDpcbiAgICAgIHJldHVybiBcImltcG9ydFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl95aWVsZDpcbiAgICAgIHJldHVybiBcInlpZWxkXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX251bGw6XG4gICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3RydWU6XG4gICAgICByZXR1cm4gXCJ0cnVlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2ZhbHNlOlxuICAgICAgcmV0dXJuIFwiZmFsc2VcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5faW46XG4gICAgICByZXR1cm4gXCJpblwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9pbnN0YW5jZW9mOlxuICAgICAgcmV0dXJuIFwiaW5zdGFuY2VvZlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl90eXBlb2Y6XG4gICAgICByZXR1cm4gXCJ0eXBlb2ZcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdm9pZDpcbiAgICAgIHJldHVybiBcInZvaWRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZGVsZXRlOlxuICAgICAgcmV0dXJuIFwiZGVsZXRlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2FzeW5jOlxuICAgICAgcmV0dXJuIFwiYXN5bmNcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZ2V0OlxuICAgICAgcmV0dXJuIFwiZ2V0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3NldDpcbiAgICAgIHJldHVybiBcInNldFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9kZWNsYXJlOlxuICAgICAgcmV0dXJuIFwiZGVjbGFyZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9yZWFkb25seTpcbiAgICAgIHJldHVybiBcInJlYWRvbmx5XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2Fic3RyYWN0OlxuICAgICAgcmV0dXJuIFwiYWJzdHJhY3RcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fc3RhdGljOlxuICAgICAgcmV0dXJuIFwic3RhdGljXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3B1YmxpYzpcbiAgICAgIHJldHVybiBcInB1YmxpY1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9wcml2YXRlOlxuICAgICAgcmV0dXJuIFwicHJpdmF0ZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9wcm90ZWN0ZWQ6XG4gICAgICByZXR1cm4gXCJwcm90ZWN0ZWRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fb3ZlcnJpZGU6XG4gICAgICByZXR1cm4gXCJvdmVycmlkZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9hczpcbiAgICAgIHJldHVybiBcImFzXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2VudW06XG4gICAgICByZXR1cm4gXCJlbnVtXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3R5cGU6XG4gICAgICByZXR1cm4gXCJ0eXBlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2ltcGxlbWVudHM6XG4gICAgICByZXR1cm4gXCJpbXBsZW1lbnRzXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcIlwiO1xuICB9XG59IGV4cG9ydHMuZm9ybWF0VG9rZW5UeXBlID0gZm9ybWF0VG9rZW5UeXBlO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7XG52YXIgX2tleXdvcmRzID0gcmVxdWlyZSgnLi9rZXl3b3JkcycpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxuIGNsYXNzIFNjb3BlIHtcbiAgXG4gIFxuICBcblxuICBjb25zdHJ1Y3RvcihzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIGlzRnVuY3Rpb25TY29wZSkge1xuICAgIHRoaXMuc3RhcnRUb2tlbkluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuICAgIHRoaXMuZW5kVG9rZW5JbmRleCA9IGVuZFRva2VuSW5kZXg7XG4gICAgdGhpcy5pc0Z1bmN0aW9uU2NvcGUgPSBpc0Z1bmN0aW9uU2NvcGU7XG4gIH1cbn0gZXhwb3J0cy5TY29wZSA9IFNjb3BlO1xuXG4gY2xhc3MgU3RhdGVTbmFwc2hvdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICBwb3RlbnRpYWxBcnJvd0F0LFxuICAgICBub0Fub25GdW5jdGlvblR5cGUsXG4gICAgIGluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCxcbiAgICAgdG9rZW5zTGVuZ3RoLFxuICAgICBzY29wZXNMZW5ndGgsXG4gICAgIHBvcyxcbiAgICAgdHlwZSxcbiAgICAgY29udGV4dHVhbEtleXdvcmQsXG4gICAgIHN0YXJ0LFxuICAgICBlbmQsXG4gICAgIGlzVHlwZSxcbiAgICAgc2NvcGVEZXB0aCxcbiAgICAgZXJyb3IsXG4gICkgezt0aGlzLnBvdGVudGlhbEFycm93QXQgPSBwb3RlbnRpYWxBcnJvd0F0O3RoaXMubm9Bbm9uRnVuY3Rpb25UeXBlID0gbm9Bbm9uRnVuY3Rpb25UeXBlO3RoaXMuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O3RoaXMudG9rZW5zTGVuZ3RoID0gdG9rZW5zTGVuZ3RoO3RoaXMuc2NvcGVzTGVuZ3RoID0gc2NvcGVzTGVuZ3RoO3RoaXMucG9zID0gcG9zO3RoaXMudHlwZSA9IHR5cGU7dGhpcy5jb250ZXh0dWFsS2V5d29yZCA9IGNvbnRleHR1YWxLZXl3b3JkO3RoaXMuc3RhcnQgPSBzdGFydDt0aGlzLmVuZCA9IGVuZDt0aGlzLmlzVHlwZSA9IGlzVHlwZTt0aGlzLnNjb3BlRGVwdGggPSBzY29wZURlcHRoO3RoaXMuZXJyb3IgPSBlcnJvcjt9XG59IGV4cG9ydHMuU3RhdGVTbmFwc2hvdCA9IFN0YXRlU25hcHNob3Q7XG5cbiBjbGFzcyBTdGF0ZSB7Y29uc3RydWN0b3IoKSB7IFN0YXRlLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDQuY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0NS5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQ2LmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDcuY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0OC5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQ5LmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDEwLmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDExLmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDEyLmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDEzLmNhbGwodGhpcyk7IH1cbiAgLy8gVXNlZCB0byBzaWduaWZ5IHRoZSBzdGFydCBvZiBhIHBvdGVudGlhbCBhcnJvdyBmdW5jdGlvblxuICBfX2luaXQoKSB7dGhpcy5wb3RlbnRpYWxBcnJvd0F0ID0gLTF9XG5cbiAgLy8gVXNlZCBieSBGbG93IHRvIGhhbmRsZSBhbiBlZGdlIGNhc2UgaW52b2x2aW5nIGZ1bmN0aW9uIHR5cGUgcGFyc2luZy5cbiAgX19pbml0MigpIHt0aGlzLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IGZhbHNlfVxuXG4gIC8vIFVzZWQgYnkgVHlwZVNjcmlwdCB0byBoYW5kbGUgYW1iaWd1aXRpZXMgd2hlbiBwYXJzaW5nIGNvbmRpdGlvbmFsIHR5cGVzLlxuICBfX2luaXQzKCkge3RoaXMuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gZmFsc2V9XG5cbiAgLy8gVG9rZW4gc3RvcmUuXG4gIF9faW5pdDQoKSB7dGhpcy50b2tlbnMgPSBbXX1cblxuICAvLyBBcnJheSBvZiBhbGwgb2JzZXJ2ZWQgc2NvcGVzLCBvcmRlcmVkIGJ5IHRoZWlyIGVuZGluZyBwb3NpdGlvbi5cbiAgX19pbml0NSgpIHt0aGlzLnNjb3BlcyA9IFtdfVxuXG4gIC8vIFRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSB0b2tlbml6ZXIgaW4gdGhlIGlucHV0LlxuICBfX2luaXQ2KCkge3RoaXMucG9zID0gMH1cblxuICAvLyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB0b2tlbi5cbiAgX19pbml0NygpIHt0aGlzLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLmVvZn1cbiAgX19pbml0OCgpIHt0aGlzLmNvbnRleHR1YWxLZXl3b3JkID0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLk5PTkV9XG4gIF9faW5pdDkoKSB7dGhpcy5zdGFydCA9IDB9XG4gIF9faW5pdDEwKCkge3RoaXMuZW5kID0gMH1cblxuICBfX2luaXQxMSgpIHt0aGlzLmlzVHlwZSA9IGZhbHNlfVxuICBfX2luaXQxMigpIHt0aGlzLnNjb3BlRGVwdGggPSAwfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgcGFyc2VyIGlzIGluIGFuIGVycm9yIHN0YXRlLCB0aGVuIHRoZSB0b2tlbiBpcyBhbHdheXMgdHQuZW9mIGFuZCBhbGwgZnVuY3Rpb25zIGNhblxuICAgKiBrZWVwIGV4ZWN1dGluZyBidXQgc2hvdWxkIGJlIHdyaXR0ZW4gc28gdGhleSBkb24ndCBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIGluIHRoaXMgc2l0dWF0aW9uLlxuICAgKlxuICAgKiBUaGlzIGFwcHJvYWNoLCBjb21iaW5lZCB3aXRoIHRoZSBhYmlsaXR5IHRvIHNuYXBzaG90IGFuZCByZXN0b3JlIHN0YXRlLCBhbGxvd3MgdXMgdG8gaW1wbGVtZW50XG4gICAqIGJhY2t0cmFja2luZyB3aXRob3V0IGV4Y2VwdGlvbnMgYW5kIHdpdGhvdXQgbmVlZGluZyB0byBleHBsaWNpdGx5IHByb3BhZ2F0ZSBlcnJvciBzdGF0ZXNcbiAgICogZXZlcnl3aGVyZS5cbiAgICovXG4gIF9faW5pdDEzKCkge3RoaXMuZXJyb3IgPSBudWxsfVxuXG4gIHNuYXBzaG90KCkge1xuICAgIHJldHVybiBuZXcgU3RhdGVTbmFwc2hvdChcbiAgICAgIHRoaXMucG90ZW50aWFsQXJyb3dBdCxcbiAgICAgIHRoaXMubm9Bbm9uRnVuY3Rpb25UeXBlLFxuICAgICAgdGhpcy5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQsXG4gICAgICB0aGlzLnRva2Vucy5sZW5ndGgsXG4gICAgICB0aGlzLnNjb3Blcy5sZW5ndGgsXG4gICAgICB0aGlzLnBvcyxcbiAgICAgIHRoaXMudHlwZSxcbiAgICAgIHRoaXMuY29udGV4dHVhbEtleXdvcmQsXG4gICAgICB0aGlzLnN0YXJ0LFxuICAgICAgdGhpcy5lbmQsXG4gICAgICB0aGlzLmlzVHlwZSxcbiAgICAgIHRoaXMuc2NvcGVEZXB0aCxcbiAgICAgIHRoaXMuZXJyb3IsXG4gICAgKTtcbiAgfVxuXG4gIHJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpIHtcbiAgICB0aGlzLnBvdGVudGlhbEFycm93QXQgPSBzbmFwc2hvdC5wb3RlbnRpYWxBcnJvd0F0O1xuICAgIHRoaXMubm9Bbm9uRnVuY3Rpb25UeXBlID0gc25hcHNob3Qubm9Bbm9uRnVuY3Rpb25UeXBlO1xuICAgIHRoaXMuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gc25hcHNob3QuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICAgIHRoaXMudG9rZW5zLmxlbmd0aCA9IHNuYXBzaG90LnRva2Vuc0xlbmd0aDtcbiAgICB0aGlzLnNjb3Blcy5sZW5ndGggPSBzbmFwc2hvdC5zY29wZXNMZW5ndGg7XG4gICAgdGhpcy5wb3MgPSBzbmFwc2hvdC5wb3M7XG4gICAgdGhpcy50eXBlID0gc25hcHNob3QudHlwZTtcbiAgICB0aGlzLmNvbnRleHR1YWxLZXl3b3JkID0gc25hcHNob3QuY29udGV4dHVhbEtleXdvcmQ7XG4gICAgdGhpcy5zdGFydCA9IHNuYXBzaG90LnN0YXJ0O1xuICAgIHRoaXMuZW5kID0gc25hcHNob3QuZW5kO1xuICAgIHRoaXMuaXNUeXBlID0gc25hcHNob3QuaXNUeXBlO1xuICAgIHRoaXMuc2NvcGVEZXB0aCA9IHNuYXBzaG90LnNjb3BlRGVwdGg7XG4gICAgdGhpcy5lcnJvciA9IHNuYXBzaG90LmVycm9yO1xuICB9XG59IGV4cG9ydHMuZGVmYXVsdCA9IFN0YXRlO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIGNoYXJDb2RlczsgKGZ1bmN0aW9uIChjaGFyQ29kZXMpIHtcbiAgY29uc3QgYmFja1NwYWNlID0gODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImJhY2tTcGFjZVwiXSA9IGJhY2tTcGFjZV0gPSBcImJhY2tTcGFjZVwiO1xuICBjb25zdCBsaW5lRmVlZCA9IDEwOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibGluZUZlZWRcIl0gPSBsaW5lRmVlZF0gPSBcImxpbmVGZWVkXCI7IC8vICAnXFxuJ1xuICBjb25zdCB0YWIgPSA5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1widGFiXCJdID0gdGFiXSA9IFwidGFiXCI7IC8vICAnXFx0J1xuICBjb25zdCBjYXJyaWFnZVJldHVybiA9IDEzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiY2FycmlhZ2VSZXR1cm5cIl0gPSBjYXJyaWFnZVJldHVybl0gPSBcImNhcnJpYWdlUmV0dXJuXCI7IC8vICAnXFxyJ1xuICBjb25zdCBzaGlmdE91dCA9IDE0OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wic2hpZnRPdXRcIl0gPSBzaGlmdE91dF0gPSBcInNoaWZ0T3V0XCI7XG4gIGNvbnN0IHNwYWNlID0gMzI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJzcGFjZVwiXSA9IHNwYWNlXSA9IFwic3BhY2VcIjtcbiAgY29uc3QgZXhjbGFtYXRpb25NYXJrID0gMzM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJleGNsYW1hdGlvbk1hcmtcIl0gPSBleGNsYW1hdGlvbk1hcmtdID0gXCJleGNsYW1hdGlvbk1hcmtcIjsgLy8gICchJ1xuICBjb25zdCBxdW90YXRpb25NYXJrID0gMzQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJxdW90YXRpb25NYXJrXCJdID0gcXVvdGF0aW9uTWFya10gPSBcInF1b3RhdGlvbk1hcmtcIjsgLy8gICdcIidcbiAgY29uc3QgbnVtYmVyU2lnbiA9IDM1OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibnVtYmVyU2lnblwiXSA9IG51bWJlclNpZ25dID0gXCJudW1iZXJTaWduXCI7IC8vICAnIydcbiAgY29uc3QgZG9sbGFyU2lnbiA9IDM2OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZG9sbGFyU2lnblwiXSA9IGRvbGxhclNpZ25dID0gXCJkb2xsYXJTaWduXCI7IC8vICAnJCdcbiAgY29uc3QgcGVyY2VudFNpZ24gPSAzNzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInBlcmNlbnRTaWduXCJdID0gcGVyY2VudFNpZ25dID0gXCJwZXJjZW50U2lnblwiOyAvLyAgJyUnXG4gIGNvbnN0IGFtcGVyc2FuZCA9IDM4OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiYW1wZXJzYW5kXCJdID0gYW1wZXJzYW5kXSA9IFwiYW1wZXJzYW5kXCI7IC8vICAnJidcbiAgY29uc3QgYXBvc3Ryb3BoZSA9IDM5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiYXBvc3Ryb3BoZVwiXSA9IGFwb3N0cm9waGVdID0gXCJhcG9zdHJvcGhlXCI7IC8vICAnJydcbiAgY29uc3QgbGVmdFBhcmVudGhlc2lzID0gNDA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsZWZ0UGFyZW50aGVzaXNcIl0gPSBsZWZ0UGFyZW50aGVzaXNdID0gXCJsZWZ0UGFyZW50aGVzaXNcIjsgLy8gICcoJ1xuICBjb25zdCByaWdodFBhcmVudGhlc2lzID0gNDE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJyaWdodFBhcmVudGhlc2lzXCJdID0gcmlnaHRQYXJlbnRoZXNpc10gPSBcInJpZ2h0UGFyZW50aGVzaXNcIjsgLy8gICcpJ1xuICBjb25zdCBhc3RlcmlzayA9IDQyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiYXN0ZXJpc2tcIl0gPSBhc3Rlcmlza10gPSBcImFzdGVyaXNrXCI7IC8vICAnKidcbiAgY29uc3QgcGx1c1NpZ24gPSA0MzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInBsdXNTaWduXCJdID0gcGx1c1NpZ25dID0gXCJwbHVzU2lnblwiOyAvLyAgJysnXG4gIGNvbnN0IGNvbW1hID0gNDQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJjb21tYVwiXSA9IGNvbW1hXSA9IFwiY29tbWFcIjsgLy8gICcsJ1xuICBjb25zdCBkYXNoID0gNDU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkYXNoXCJdID0gZGFzaF0gPSBcImRhc2hcIjsgLy8gICctJ1xuICBjb25zdCBkb3QgPSA0NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRvdFwiXSA9IGRvdF0gPSBcImRvdFwiOyAvLyAgJy4nXG4gIGNvbnN0IHNsYXNoID0gNDc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJzbGFzaFwiXSA9IHNsYXNoXSA9IFwic2xhc2hcIjsgLy8gICcvJ1xuICBjb25zdCBkaWdpdDAgPSA0ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0MFwiXSA9IGRpZ2l0MF0gPSBcImRpZ2l0MFwiOyAvLyAgJzAnXG4gIGNvbnN0IGRpZ2l0MSA9IDQ5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQxXCJdID0gZGlnaXQxXSA9IFwiZGlnaXQxXCI7IC8vICAnMSdcbiAgY29uc3QgZGlnaXQyID0gNTA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDJcIl0gPSBkaWdpdDJdID0gXCJkaWdpdDJcIjsgLy8gICcyJ1xuICBjb25zdCBkaWdpdDMgPSA1MTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0M1wiXSA9IGRpZ2l0M10gPSBcImRpZ2l0M1wiOyAvLyAgJzMnXG4gIGNvbnN0IGRpZ2l0NCA9IDUyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQ0XCJdID0gZGlnaXQ0XSA9IFwiZGlnaXQ0XCI7IC8vICAnNCdcbiAgY29uc3QgZGlnaXQ1ID0gNTM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDVcIl0gPSBkaWdpdDVdID0gXCJkaWdpdDVcIjsgLy8gICc1J1xuICBjb25zdCBkaWdpdDYgPSA1NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0NlwiXSA9IGRpZ2l0Nl0gPSBcImRpZ2l0NlwiOyAvLyAgJzYnXG4gIGNvbnN0IGRpZ2l0NyA9IDU1OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQ3XCJdID0gZGlnaXQ3XSA9IFwiZGlnaXQ3XCI7IC8vICAnNydcbiAgY29uc3QgZGlnaXQ4ID0gNTY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDhcIl0gPSBkaWdpdDhdID0gXCJkaWdpdDhcIjsgLy8gICc4J1xuICBjb25zdCBkaWdpdDkgPSA1NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0OVwiXSA9IGRpZ2l0OV0gPSBcImRpZ2l0OVwiOyAvLyAgJzknXG4gIGNvbnN0IGNvbG9uID0gNTg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJjb2xvblwiXSA9IGNvbG9uXSA9IFwiY29sb25cIjsgLy8gICc6J1xuICBjb25zdCBzZW1pY29sb24gPSA1OTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInNlbWljb2xvblwiXSA9IHNlbWljb2xvbl0gPSBcInNlbWljb2xvblwiOyAvLyAgJzsnXG4gIGNvbnN0IGxlc3NUaGFuID0gNjA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsZXNzVGhhblwiXSA9IGxlc3NUaGFuXSA9IFwibGVzc1RoYW5cIjsgLy8gICc8J1xuICBjb25zdCBlcXVhbHNUbyA9IDYxOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZXF1YWxzVG9cIl0gPSBlcXVhbHNUb10gPSBcImVxdWFsc1RvXCI7IC8vICAnPSdcbiAgY29uc3QgZ3JlYXRlclRoYW4gPSA2MjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImdyZWF0ZXJUaGFuXCJdID0gZ3JlYXRlclRoYW5dID0gXCJncmVhdGVyVGhhblwiOyAvLyAgJz4nXG4gIGNvbnN0IHF1ZXN0aW9uTWFyayA9IDYzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wicXVlc3Rpb25NYXJrXCJdID0gcXVlc3Rpb25NYXJrXSA9IFwicXVlc3Rpb25NYXJrXCI7IC8vICAnPydcbiAgY29uc3QgYXRTaWduID0gNjQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJhdFNpZ25cIl0gPSBhdFNpZ25dID0gXCJhdFNpZ25cIjsgLy8gICdAJ1xuICBjb25zdCB1cHBlcmNhc2VBID0gNjU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VBXCJdID0gdXBwZXJjYXNlQV0gPSBcInVwcGVyY2FzZUFcIjsgLy8gICdBJ1xuICBjb25zdCB1cHBlcmNhc2VCID0gNjY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VCXCJdID0gdXBwZXJjYXNlQl0gPSBcInVwcGVyY2FzZUJcIjsgLy8gICdCJ1xuICBjb25zdCB1cHBlcmNhc2VDID0gNjc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VDXCJdID0gdXBwZXJjYXNlQ10gPSBcInVwcGVyY2FzZUNcIjsgLy8gICdDJ1xuICBjb25zdCB1cHBlcmNhc2VEID0gNjg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VEXCJdID0gdXBwZXJjYXNlRF0gPSBcInVwcGVyY2FzZURcIjsgLy8gICdEJ1xuICBjb25zdCB1cHBlcmNhc2VFID0gNjk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VFXCJdID0gdXBwZXJjYXNlRV0gPSBcInVwcGVyY2FzZUVcIjsgLy8gICdFJ1xuICBjb25zdCB1cHBlcmNhc2VGID0gNzA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VGXCJdID0gdXBwZXJjYXNlRl0gPSBcInVwcGVyY2FzZUZcIjsgLy8gICdGJ1xuICBjb25zdCB1cHBlcmNhc2VHID0gNzE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VHXCJdID0gdXBwZXJjYXNlR10gPSBcInVwcGVyY2FzZUdcIjsgLy8gICdHJ1xuICBjb25zdCB1cHBlcmNhc2VIID0gNzI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VIXCJdID0gdXBwZXJjYXNlSF0gPSBcInVwcGVyY2FzZUhcIjsgLy8gICdIJ1xuICBjb25zdCB1cHBlcmNhc2VJID0gNzM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VJXCJdID0gdXBwZXJjYXNlSV0gPSBcInVwcGVyY2FzZUlcIjsgLy8gICdJJ1xuICBjb25zdCB1cHBlcmNhc2VKID0gNzQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VKXCJdID0gdXBwZXJjYXNlSl0gPSBcInVwcGVyY2FzZUpcIjsgLy8gICdKJ1xuICBjb25zdCB1cHBlcmNhc2VLID0gNzU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VLXCJdID0gdXBwZXJjYXNlS10gPSBcInVwcGVyY2FzZUtcIjsgLy8gICdLJ1xuICBjb25zdCB1cHBlcmNhc2VMID0gNzY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VMXCJdID0gdXBwZXJjYXNlTF0gPSBcInVwcGVyY2FzZUxcIjsgLy8gICdMJ1xuICBjb25zdCB1cHBlcmNhc2VNID0gNzc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VNXCJdID0gdXBwZXJjYXNlTV0gPSBcInVwcGVyY2FzZU1cIjsgLy8gICdNJ1xuICBjb25zdCB1cHBlcmNhc2VOID0gNzg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VOXCJdID0gdXBwZXJjYXNlTl0gPSBcInVwcGVyY2FzZU5cIjsgLy8gICdOJ1xuICBjb25zdCB1cHBlcmNhc2VPID0gNzk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VPXCJdID0gdXBwZXJjYXNlT10gPSBcInVwcGVyY2FzZU9cIjsgLy8gICdPJ1xuICBjb25zdCB1cHBlcmNhc2VQID0gODA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VQXCJdID0gdXBwZXJjYXNlUF0gPSBcInVwcGVyY2FzZVBcIjsgLy8gICdQJ1xuICBjb25zdCB1cHBlcmNhc2VRID0gODE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VRXCJdID0gdXBwZXJjYXNlUV0gPSBcInVwcGVyY2FzZVFcIjsgLy8gICdRJ1xuICBjb25zdCB1cHBlcmNhc2VSID0gODI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VSXCJdID0gdXBwZXJjYXNlUl0gPSBcInVwcGVyY2FzZVJcIjsgLy8gICdSJ1xuICBjb25zdCB1cHBlcmNhc2VTID0gODM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VTXCJdID0gdXBwZXJjYXNlU10gPSBcInVwcGVyY2FzZVNcIjsgLy8gICdTJ1xuICBjb25zdCB1cHBlcmNhc2VUID0gODQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VUXCJdID0gdXBwZXJjYXNlVF0gPSBcInVwcGVyY2FzZVRcIjsgLy8gICdUJ1xuICBjb25zdCB1cHBlcmNhc2VVID0gODU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VVXCJdID0gdXBwZXJjYXNlVV0gPSBcInVwcGVyY2FzZVVcIjsgLy8gICdVJ1xuICBjb25zdCB1cHBlcmNhc2VWID0gODY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VWXCJdID0gdXBwZXJjYXNlVl0gPSBcInVwcGVyY2FzZVZcIjsgLy8gICdWJ1xuICBjb25zdCB1cHBlcmNhc2VXID0gODc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VXXCJdID0gdXBwZXJjYXNlV10gPSBcInVwcGVyY2FzZVdcIjsgLy8gICdXJ1xuICBjb25zdCB1cHBlcmNhc2VYID0gODg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VYXCJdID0gdXBwZXJjYXNlWF0gPSBcInVwcGVyY2FzZVhcIjsgLy8gICdYJ1xuICBjb25zdCB1cHBlcmNhc2VZID0gODk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VZXCJdID0gdXBwZXJjYXNlWV0gPSBcInVwcGVyY2FzZVlcIjsgLy8gICdZJ1xuICBjb25zdCB1cHBlcmNhc2VaID0gOTA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ1cHBlcmNhc2VaXCJdID0gdXBwZXJjYXNlWl0gPSBcInVwcGVyY2FzZVpcIjsgLy8gICdaJ1xuICBjb25zdCBsZWZ0U3F1YXJlQnJhY2tldCA9IDkxOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibGVmdFNxdWFyZUJyYWNrZXRcIl0gPSBsZWZ0U3F1YXJlQnJhY2tldF0gPSBcImxlZnRTcXVhcmVCcmFja2V0XCI7IC8vICAnWydcbiAgY29uc3QgYmFja3NsYXNoID0gOTI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJiYWNrc2xhc2hcIl0gPSBiYWNrc2xhc2hdID0gXCJiYWNrc2xhc2hcIjsgLy8gICdcXCAgICAnXG4gIGNvbnN0IHJpZ2h0U3F1YXJlQnJhY2tldCA9IDkzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wicmlnaHRTcXVhcmVCcmFja2V0XCJdID0gcmlnaHRTcXVhcmVCcmFja2V0XSA9IFwicmlnaHRTcXVhcmVCcmFja2V0XCI7IC8vICAnXSdcbiAgY29uc3QgY2FyZXQgPSA5NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImNhcmV0XCJdID0gY2FyZXRdID0gXCJjYXJldFwiOyAvLyAgJ14nXG4gIGNvbnN0IHVuZGVyc2NvcmUgPSA5NTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVuZGVyc2NvcmVcIl0gPSB1bmRlcnNjb3JlXSA9IFwidW5kZXJzY29yZVwiOyAvLyAgJ18nXG4gIGNvbnN0IGdyYXZlQWNjZW50ID0gOTY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJncmF2ZUFjY2VudFwiXSA9IGdyYXZlQWNjZW50XSA9IFwiZ3JhdmVBY2NlbnRcIjsgLy8gICdgJ1xuICBjb25zdCBsb3dlcmNhc2VBID0gOTc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VBXCJdID0gbG93ZXJjYXNlQV0gPSBcImxvd2VyY2FzZUFcIjsgLy8gICdhJ1xuICBjb25zdCBsb3dlcmNhc2VCID0gOTg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VCXCJdID0gbG93ZXJjYXNlQl0gPSBcImxvd2VyY2FzZUJcIjsgLy8gICdiJ1xuICBjb25zdCBsb3dlcmNhc2VDID0gOTk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VDXCJdID0gbG93ZXJjYXNlQ10gPSBcImxvd2VyY2FzZUNcIjsgLy8gICdjJ1xuICBjb25zdCBsb3dlcmNhc2VEID0gMTAwOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlRFwiXSA9IGxvd2VyY2FzZURdID0gXCJsb3dlcmNhc2VEXCI7IC8vICAnZCdcbiAgY29uc3QgbG93ZXJjYXNlRSA9IDEwMTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUVcIl0gPSBsb3dlcmNhc2VFXSA9IFwibG93ZXJjYXNlRVwiOyAvLyAgJ2UnXG4gIGNvbnN0IGxvd2VyY2FzZUYgPSAxMDI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VGXCJdID0gbG93ZXJjYXNlRl0gPSBcImxvd2VyY2FzZUZcIjsgLy8gICdmJ1xuICBjb25zdCBsb3dlcmNhc2VHID0gMTAzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlR1wiXSA9IGxvd2VyY2FzZUddID0gXCJsb3dlcmNhc2VHXCI7IC8vICAnZydcbiAgY29uc3QgbG93ZXJjYXNlSCA9IDEwNDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUhcIl0gPSBsb3dlcmNhc2VIXSA9IFwibG93ZXJjYXNlSFwiOyAvLyAgJ2gnXG4gIGNvbnN0IGxvd2VyY2FzZUkgPSAxMDU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VJXCJdID0gbG93ZXJjYXNlSV0gPSBcImxvd2VyY2FzZUlcIjsgLy8gICdpJ1xuICBjb25zdCBsb3dlcmNhc2VKID0gMTA2OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlSlwiXSA9IGxvd2VyY2FzZUpdID0gXCJsb3dlcmNhc2VKXCI7IC8vICAnaidcbiAgY29uc3QgbG93ZXJjYXNlSyA9IDEwNzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUtcIl0gPSBsb3dlcmNhc2VLXSA9IFwibG93ZXJjYXNlS1wiOyAvLyAgJ2snXG4gIGNvbnN0IGxvd2VyY2FzZUwgPSAxMDg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VMXCJdID0gbG93ZXJjYXNlTF0gPSBcImxvd2VyY2FzZUxcIjsgLy8gICdsJ1xuICBjb25zdCBsb3dlcmNhc2VNID0gMTA5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlTVwiXSA9IGxvd2VyY2FzZU1dID0gXCJsb3dlcmNhc2VNXCI7IC8vICAnbSdcbiAgY29uc3QgbG93ZXJjYXNlTiA9IDExMDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZU5cIl0gPSBsb3dlcmNhc2VOXSA9IFwibG93ZXJjYXNlTlwiOyAvLyAgJ24nXG4gIGNvbnN0IGxvd2VyY2FzZU8gPSAxMTE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VPXCJdID0gbG93ZXJjYXNlT10gPSBcImxvd2VyY2FzZU9cIjsgLy8gICdvJ1xuICBjb25zdCBsb3dlcmNhc2VQID0gMTEyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlUFwiXSA9IGxvd2VyY2FzZVBdID0gXCJsb3dlcmNhc2VQXCI7IC8vICAncCdcbiAgY29uc3QgbG93ZXJjYXNlUSA9IDExMzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVFcIl0gPSBsb3dlcmNhc2VRXSA9IFwibG93ZXJjYXNlUVwiOyAvLyAgJ3EnXG4gIGNvbnN0IGxvd2VyY2FzZVIgPSAxMTQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VSXCJdID0gbG93ZXJjYXNlUl0gPSBcImxvd2VyY2FzZVJcIjsgLy8gICdyJ1xuICBjb25zdCBsb3dlcmNhc2VTID0gMTE1OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlU1wiXSA9IGxvd2VyY2FzZVNdID0gXCJsb3dlcmNhc2VTXCI7IC8vICAncydcbiAgY29uc3QgbG93ZXJjYXNlVCA9IDExNjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVRcIl0gPSBsb3dlcmNhc2VUXSA9IFwibG93ZXJjYXNlVFwiOyAvLyAgJ3QnXG4gIGNvbnN0IGxvd2VyY2FzZVUgPSAxMTc7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VVXCJdID0gbG93ZXJjYXNlVV0gPSBcImxvd2VyY2FzZVVcIjsgLy8gICd1J1xuICBjb25zdCBsb3dlcmNhc2VWID0gMTE4OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlVlwiXSA9IGxvd2VyY2FzZVZdID0gXCJsb3dlcmNhc2VWXCI7IC8vICAndidcbiAgY29uc3QgbG93ZXJjYXNlVyA9IDExOTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVdcIl0gPSBsb3dlcmNhc2VXXSA9IFwibG93ZXJjYXNlV1wiOyAvLyAgJ3cnXG4gIGNvbnN0IGxvd2VyY2FzZVggPSAxMjA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VYXCJdID0gbG93ZXJjYXNlWF0gPSBcImxvd2VyY2FzZVhcIjsgLy8gICd4J1xuICBjb25zdCBsb3dlcmNhc2VZID0gMTIxOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlWVwiXSA9IGxvd2VyY2FzZVldID0gXCJsb3dlcmNhc2VZXCI7IC8vICAneSdcbiAgY29uc3QgbG93ZXJjYXNlWiA9IDEyMjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVpcIl0gPSBsb3dlcmNhc2VaXSA9IFwibG93ZXJjYXNlWlwiOyAvLyAgJ3onXG4gIGNvbnN0IGxlZnRDdXJseUJyYWNlID0gMTIzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibGVmdEN1cmx5QnJhY2VcIl0gPSBsZWZ0Q3VybHlCcmFjZV0gPSBcImxlZnRDdXJseUJyYWNlXCI7IC8vICAneydcbiAgY29uc3QgdmVydGljYWxCYXIgPSAxMjQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ2ZXJ0aWNhbEJhclwiXSA9IHZlcnRpY2FsQmFyXSA9IFwidmVydGljYWxCYXJcIjsgLy8gICd8J1xuICBjb25zdCByaWdodEN1cmx5QnJhY2UgPSAxMjU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJyaWdodEN1cmx5QnJhY2VcIl0gPSByaWdodEN1cmx5QnJhY2VdID0gXCJyaWdodEN1cmx5QnJhY2VcIjsgLy8gICd9J1xuICBjb25zdCB0aWxkZSA9IDEyNjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInRpbGRlXCJdID0gdGlsZGVdID0gXCJ0aWxkZVwiOyAvLyAgJ34nXG4gIGNvbnN0IG5vbkJyZWFraW5nU3BhY2UgPSAxNjA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJub25CcmVha2luZ1NwYWNlXCJdID0gbm9uQnJlYWtpbmdTcGFjZV0gPSBcIm5vbkJyZWFraW5nU3BhY2VcIjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWlycmVndWxhci13aGl0ZXNwYWNlXG4gIGNvbnN0IG9naGFtU3BhY2VNYXJrID0gNTc2MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcIm9naGFtU3BhY2VNYXJrXCJdID0gb2doYW1TcGFjZU1hcmtdID0gXCJvZ2hhbVNwYWNlTWFya1wiOyAvLyAnXHUxNjgwJ1xuICBjb25zdCBsaW5lU2VwYXJhdG9yID0gODIzMjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxpbmVTZXBhcmF0b3JcIl0gPSBsaW5lU2VwYXJhdG9yXSA9IFwibGluZVNlcGFyYXRvclwiO1xuICBjb25zdCBwYXJhZ3JhcGhTZXBhcmF0b3IgPSA4MjMzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wicGFyYWdyYXBoU2VwYXJhdG9yXCJdID0gcGFyYWdyYXBoU2VwYXJhdG9yXSA9IFwicGFyYWdyYXBoU2VwYXJhdG9yXCI7XG59KShjaGFyQ29kZXMgfHwgKGV4cG9ydHMuY2hhckNvZGVzID0gY2hhckNvZGVzID0ge30pKTtcblxuIGZ1bmN0aW9uIGlzRGlnaXQoY29kZSkge1xuICByZXR1cm4gKFxuICAgIChjb2RlID49IGNoYXJDb2Rlcy5kaWdpdDAgJiYgY29kZSA8PSBjaGFyQ29kZXMuZGlnaXQ5KSB8fFxuICAgIChjb2RlID49IGNoYXJDb2Rlcy5sb3dlcmNhc2VBICYmIGNvZGUgPD0gY2hhckNvZGVzLmxvd2VyY2FzZUYpIHx8XG4gICAgKGNvZGUgPj0gY2hhckNvZGVzLnVwcGVyY2FzZUEgJiYgY29kZSA8PSBjaGFyQ29kZXMudXBwZXJjYXNlRilcbiAgKTtcbn0gZXhwb3J0cy5pc0RpZ2l0ID0gaXNEaWdpdDtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfXZhciBfc3RhdGUgPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvc3RhdGUnKTsgdmFyIF9zdGF0ZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdGF0ZSk7XG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4uL3V0aWwvY2hhcmNvZGVzJyk7XG5cbiBleHBvcnRzLmlzSlNYRW5hYmxlZDtcbiBleHBvcnRzLmlzVHlwZVNjcmlwdEVuYWJsZWQ7XG4gZXhwb3J0cy5pc0Zsb3dFbmFibGVkO1xuIGV4cG9ydHMuc3RhdGU7XG4gZXhwb3J0cy5pbnB1dDtcbiBleHBvcnRzLm5leHRDb250ZXh0SWQ7XG5cbiBmdW5jdGlvbiBnZXROZXh0Q29udGV4dElkKCkge1xuICByZXR1cm4gZXhwb3J0cy5uZXh0Q29udGV4dElkKys7XG59IGV4cG9ydHMuZ2V0TmV4dENvbnRleHRJZCA9IGdldE5leHRDb250ZXh0SWQ7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gZnVuY3Rpb24gYXVnbWVudEVycm9yKGVycm9yKSB7XG4gIGlmIChcInBvc1wiIGluIGVycm9yKSB7XG4gICAgY29uc3QgbG9jID0gbG9jYXRpb25Gb3JJbmRleChlcnJvci5wb3MpO1xuICAgIGVycm9yLm1lc3NhZ2UgKz0gYCAoJHtsb2MubGluZX06JHtsb2MuY29sdW1ufSlgO1xuICAgIGVycm9yLmxvYyA9IGxvYztcbiAgfVxuICByZXR1cm4gZXJyb3I7XG59IGV4cG9ydHMuYXVnbWVudEVycm9yID0gYXVnbWVudEVycm9yO1xuXG4gY2xhc3MgTG9jIHtcbiAgXG4gIFxuICBjb25zdHJ1Y3RvcihsaW5lLCBjb2x1bW4pIHtcbiAgICB0aGlzLmxpbmUgPSBsaW5lO1xuICAgIHRoaXMuY29sdW1uID0gY29sdW1uO1xuICB9XG59IGV4cG9ydHMuTG9jID0gTG9jO1xuXG4gZnVuY3Rpb24gbG9jYXRpb25Gb3JJbmRleChwb3MpIHtcbiAgbGV0IGxpbmUgPSAxO1xuICBsZXQgY29sdW1uID0gMTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3M7IGkrKykge1xuICAgIGlmIChleHBvcnRzLmlucHV0LmNoYXJDb2RlQXQoaSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxpbmVGZWVkKSB7XG4gICAgICBsaW5lKys7XG4gICAgICBjb2x1bW4gPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2x1bW4rKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBMb2MobGluZSwgY29sdW1uKTtcbn0gZXhwb3J0cy5sb2NhdGlvbkZvckluZGV4ID0gbG9jYXRpb25Gb3JJbmRleDtcblxuIGZ1bmN0aW9uIGluaXRQYXJzZXIoXG4gIGlucHV0Q29kZSxcbiAgaXNKU1hFbmFibGVkQXJnLFxuICBpc1R5cGVTY3JpcHRFbmFibGVkQXJnLFxuICBpc0Zsb3dFbmFibGVkQXJnLFxuKSB7XG4gIGV4cG9ydHMuaW5wdXQgPSBpbnB1dENvZGU7XG4gIGV4cG9ydHMuc3RhdGUgPSBuZXcgKDAsIF9zdGF0ZTIuZGVmYXVsdCkoKTtcbiAgZXhwb3J0cy5uZXh0Q29udGV4dElkID0gMTtcbiAgZXhwb3J0cy5pc0pTWEVuYWJsZWQgPSBpc0pTWEVuYWJsZWRBcmc7XG4gIGV4cG9ydHMuaXNUeXBlU2NyaXB0RW5hYmxlZCA9IGlzVHlwZVNjcmlwdEVuYWJsZWRBcmc7XG4gIGV4cG9ydHMuaXNGbG93RW5hYmxlZCA9IGlzRmxvd0VuYWJsZWRBcmc7XG59IGV4cG9ydHMuaW5pdFBhcnNlciA9IGluaXRQYXJzZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX2luZGV4ID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL2luZGV4Jyk7XG5cbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvdHlwZXMnKTtcbnZhciBfY2hhcmNvZGVzID0gcmVxdWlyZSgnLi4vdXRpbC9jaGFyY29kZXMnKTtcbnZhciBfYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpO1xuXG4vLyAjIyBQYXJzZXIgdXRpbGl0aWVzXG5cbi8vIFRlc3RzIHdoZXRoZXIgcGFyc2VkIHRva2VuIGlzIGEgY29udGV4dHVhbCBrZXl3b3JkLlxuIGZ1bmN0aW9uIGlzQ29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICByZXR1cm4gX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IGNvbnRleHR1YWxLZXl3b3JkO1xufSBleHBvcnRzLmlzQ29udGV4dHVhbCA9IGlzQ29udGV4dHVhbDtcblxuIGZ1bmN0aW9uIGlzTG9va2FoZWFkQ29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICBjb25zdCBsID0gX2luZGV4Lmxvb2thaGVhZFR5cGVBbmRLZXl3b3JkLmNhbGwodm9pZCAwLCApO1xuICByZXR1cm4gbC50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUgJiYgbC5jb250ZXh0dWFsS2V5d29yZCA9PT0gY29udGV4dHVhbEtleXdvcmQ7XG59IGV4cG9ydHMuaXNMb29rYWhlYWRDb250ZXh0dWFsID0gaXNMb29rYWhlYWRDb250ZXh0dWFsO1xuXG4vLyBDb25zdW1lcyBjb250ZXh0dWFsIGtleXdvcmQgaWYgcG9zc2libGUuXG4gZnVuY3Rpb24gZWF0Q29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICByZXR1cm4gX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IGNvbnRleHR1YWxLZXl3b3JkICYmIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSk7XG59IGV4cG9ydHMuZWF0Q29udGV4dHVhbCA9IGVhdENvbnRleHR1YWw7XG5cbi8vIEFzc2VydHMgdGhhdCBmb2xsb3dpbmcgdG9rZW4gaXMgZ2l2ZW4gY29udGV4dHVhbCBrZXl3b3JkLlxuIGZ1bmN0aW9uIGV4cGVjdENvbnRleHR1YWwoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgaWYgKCFlYXRDb250ZXh0dWFsKGNvbnRleHR1YWxLZXl3b3JkKSkge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxufSBleHBvcnRzLmV4cGVjdENvbnRleHR1YWwgPSBleHBlY3RDb250ZXh0dWFsO1xuXG4vLyBUZXN0IHdoZXRoZXIgYSBzZW1pY29sb24gY2FuIGJlIGluc2VydGVkIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuIGZ1bmN0aW9uIGNhbkluc2VydFNlbWljb2xvbigpIHtcbiAgcmV0dXJuIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lb2YpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpIHx8IGhhc1ByZWNlZGluZ0xpbmVCcmVhaygpO1xufSBleHBvcnRzLmNhbkluc2VydFNlbWljb2xvbiA9IGNhbkluc2VydFNlbWljb2xvbjtcblxuIGZ1bmN0aW9uIGhhc1ByZWNlZGluZ0xpbmVCcmVhaygpIHtcbiAgY29uc3QgcHJldlRva2VuID0gX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXTtcbiAgY29uc3QgbGFzdFRva0VuZCA9IHByZXZUb2tlbiA/IHByZXZUb2tlbi5lbmQgOiAwO1xuICBmb3IgKGxldCBpID0gbGFzdFRva0VuZDsgaSA8IF9iYXNlLnN0YXRlLnN0YXJ0OyBpKyspIHtcbiAgICBjb25zdCBjb2RlID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5saW5lRmVlZCB8fFxuICAgICAgY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuY2FycmlhZ2VSZXR1cm4gfHxcbiAgICAgIGNvZGUgPT09IDB4MjAyOCB8fFxuICAgICAgY29kZSA9PT0gMHgyMDI5XG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSBleHBvcnRzLmhhc1ByZWNlZGluZ0xpbmVCcmVhayA9IGhhc1ByZWNlZGluZ0xpbmVCcmVhaztcblxuIGZ1bmN0aW9uIGhhc0ZvbGxvd2luZ0xpbmVCcmVhaygpIHtcbiAgY29uc3QgbmV4dFN0YXJ0ID0gX2luZGV4Lm5leHRUb2tlblN0YXJ0LmNhbGwodm9pZCAwLCApO1xuICBmb3IgKGxldCBpID0gX2Jhc2Uuc3RhdGUuZW5kOyBpIDwgbmV4dFN0YXJ0OyBpKyspIHtcbiAgICBjb25zdCBjb2RlID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5saW5lRmVlZCB8fFxuICAgICAgY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuY2FycmlhZ2VSZXR1cm4gfHxcbiAgICAgIGNvZGUgPT09IDB4MjAyOCB8fFxuICAgICAgY29kZSA9PT0gMHgyMDI5XG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSBleHBvcnRzLmhhc0ZvbGxvd2luZ0xpbmVCcmVhayA9IGhhc0ZvbGxvd2luZ0xpbmVCcmVhaztcblxuIGZ1bmN0aW9uIGlzTGluZVRlcm1pbmF0b3IoKSB7XG4gIHJldHVybiBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnNlbWkpIHx8IGNhbkluc2VydFNlbWljb2xvbigpO1xufSBleHBvcnRzLmlzTGluZVRlcm1pbmF0b3IgPSBpc0xpbmVUZXJtaW5hdG9yO1xuXG4vLyBDb25zdW1lIGEgc2VtaWNvbG9uLCBvciwgZmFpbGluZyB0aGF0LCBzZWUgaWYgd2UgYXJlIGFsbG93ZWQgdG9cbi8vIHByZXRlbmQgdGhhdCB0aGVyZSBpcyBhIHNlbWljb2xvbiBhdCB0aGlzIHBvc2l0aW9uLlxuIGZ1bmN0aW9uIHNlbWljb2xvbigpIHtcbiAgaWYgKCFpc0xpbmVUZXJtaW5hdG9yKCkpIHtcbiAgICB1bmV4cGVjdGVkKCdVbmV4cGVjdGVkIHRva2VuLCBleHBlY3RlZCBcIjtcIicpO1xuICB9XG59IGV4cG9ydHMuc2VtaWNvbG9uID0gc2VtaWNvbG9uO1xuXG4vLyBFeHBlY3QgYSB0b2tlbiBvZiBhIGdpdmVuIHR5cGUuIElmIGZvdW5kLCBjb25zdW1lIGl0LCBvdGhlcndpc2UsXG4vLyByYWlzZSBhbiB1bmV4cGVjdGVkIHRva2VuIGVycm9yIGF0IGdpdmVuIHBvcy5cbiBmdW5jdGlvbiBleHBlY3QodHlwZSkge1xuICBjb25zdCBtYXRjaGVkID0gX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgdHlwZSk7XG4gIGlmICghbWF0Y2hlZCkge1xuICAgIHVuZXhwZWN0ZWQoYFVuZXhwZWN0ZWQgdG9rZW4sIGV4cGVjdGVkIFwiJHtfdHlwZXMuZm9ybWF0VG9rZW5UeXBlLmNhbGwodm9pZCAwLCB0eXBlKX1cImApO1xuICB9XG59IGV4cG9ydHMuZXhwZWN0ID0gZXhwZWN0O1xuXG4vKipcbiAqIFRyYW5zaXRpb24gdGhlIHBhcnNlciB0byBhbiBlcnJvciBzdGF0ZS4gQWxsIGNvZGUgbmVlZHMgdG8gYmUgd3JpdHRlbiB0byBuYXR1cmFsbHkgdW53aW5kIGluIHRoaXNcbiAqIHN0YXRlLCB3aGljaCBhbGxvd3MgdXMgdG8gYmFja3RyYWNrIHdpdGhvdXQgZXhjZXB0aW9ucyBhbmQgd2l0aG91dCBlcnJvciBwbHVtYmluZyBldmVyeXdoZXJlLlxuICovXG4gZnVuY3Rpb24gdW5leHBlY3RlZChtZXNzYWdlID0gXCJVbmV4cGVjdGVkIHRva2VuXCIsIHBvcyA9IF9iYXNlLnN0YXRlLnN0YXJ0KSB7XG4gIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCBlcnIgPSBuZXcgU3ludGF4RXJyb3IobWVzc2FnZSk7XG4gIGVyci5wb3MgPSBwb3M7XG4gIF9iYXNlLnN0YXRlLmVycm9yID0gZXJyO1xuICBfYmFzZS5zdGF0ZS5wb3MgPSBfYmFzZS5pbnB1dC5sZW5ndGg7XG4gIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lb2YpO1xufSBleHBvcnRzLnVuZXhwZWN0ZWQgPSB1bmV4cGVjdGVkO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIF9jaGFyY29kZXMgPSByZXF1aXJlKCcuL2NoYXJjb2RlcycpO1xuXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy13aGl0ZS1zcGFjZVxuIGNvbnN0IFdISVRFU1BBQ0VfQ0hBUlMgPSBbXG4gIDB4MDAwOSxcbiAgMHgwMDBiLFxuICAweDAwMGMsXG4gIF9jaGFyY29kZXMuY2hhckNvZGVzLnNwYWNlLFxuICBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5ub25CcmVha2luZ1NwYWNlLFxuICBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5vZ2hhbVNwYWNlTWFyayxcbiAgMHgyMDAwLCAvLyBFTiBRVUFEXG4gIDB4MjAwMSwgLy8gRU0gUVVBRFxuICAweDIwMDIsIC8vIEVOIFNQQUNFXG4gIDB4MjAwMywgLy8gRU0gU1BBQ0VcbiAgMHgyMDA0LCAvLyBUSFJFRS1QRVItRU0gU1BBQ0VcbiAgMHgyMDA1LCAvLyBGT1VSLVBFUi1FTSBTUEFDRVxuICAweDIwMDYsIC8vIFNJWC1QRVItRU0gU1BBQ0VcbiAgMHgyMDA3LCAvLyBGSUdVUkUgU1BBQ0VcbiAgMHgyMDA4LCAvLyBQVU5DVFVBVElPTiBTUEFDRVxuICAweDIwMDksIC8vIFRISU4gU1BBQ0VcbiAgMHgyMDBhLCAvLyBIQUlSIFNQQUNFXG4gIDB4MjAyZiwgLy8gTkFSUk9XIE5PLUJSRUFLIFNQQUNFXG4gIDB4MjA1ZiwgLy8gTUVESVVNIE1BVEhFTUFUSUNBTCBTUEFDRVxuICAweDMwMDAsIC8vIElERU9HUkFQSElDIFNQQUNFXG4gIDB4ZmVmZiwgLy8gWkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRVxuXTsgZXhwb3J0cy5XSElURVNQQUNFX0NIQVJTID0gV0hJVEVTUEFDRV9DSEFSUztcblxuIGNvbnN0IHNraXBXaGl0ZVNwYWNlID0gLyg/Olxcc3xcXC9cXC8uKnxcXC9cXCpbXl0qP1xcKlxcLykqL2c7IGV4cG9ydHMuc2tpcFdoaXRlU3BhY2UgPSBza2lwV2hpdGVTcGFjZTtcblxuIGNvbnN0IElTX1dISVRFU1BBQ0UgPSBuZXcgVWludDhBcnJheSg2NTUzNik7IGV4cG9ydHMuSVNfV0hJVEVTUEFDRSA9IElTX1dISVRFU1BBQ0U7XG5mb3IgKGNvbnN0IGNoYXIgb2YgZXhwb3J0cy5XSElURVNQQUNFX0NIQVJTKSB7XG4gIGV4cG9ydHMuSVNfV0hJVEVTUEFDRVtjaGFyXSA9IDE7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4vY2hhcmNvZGVzJyk7XG52YXIgX3doaXRlc3BhY2UgPSByZXF1aXJlKCcuL3doaXRlc3BhY2UnKTtcblxuZnVuY3Rpb24gY29tcHV0ZUlzSWRlbnRpZmllckNoYXIoY29kZSkge1xuICBpZiAoY29kZSA8IDQ4KSByZXR1cm4gY29kZSA9PT0gMzY7XG4gIGlmIChjb2RlIDwgNTgpIHJldHVybiB0cnVlO1xuICBpZiAoY29kZSA8IDY1KSByZXR1cm4gZmFsc2U7XG4gIGlmIChjb2RlIDwgOTEpIHJldHVybiB0cnVlO1xuICBpZiAoY29kZSA8IDk3KSByZXR1cm4gY29kZSA9PT0gOTU7XG4gIGlmIChjb2RlIDwgMTIzKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGNvZGUgPCAxMjgpIHJldHVybiBmYWxzZTtcbiAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBub24tQVNDSUkgY2hhciBjb2RlLlwiKTtcbn1cblxuIGNvbnN0IElTX0lERU5USUZJRVJfQ0hBUiA9IG5ldyBVaW50OEFycmF5KDY1NTM2KTsgZXhwb3J0cy5JU19JREVOVElGSUVSX0NIQVIgPSBJU19JREVOVElGSUVSX0NIQVI7XG5mb3IgKGxldCBpID0gMDsgaSA8IDEyODsgaSsrKSB7XG4gIGV4cG9ydHMuSVNfSURFTlRJRklFUl9DSEFSW2ldID0gY29tcHV0ZUlzSWRlbnRpZmllckNoYXIoaSkgPyAxIDogMDtcbn1cbmZvciAobGV0IGkgPSAxMjg7IGkgPCA2NTUzNjsgaSsrKSB7XG4gIGV4cG9ydHMuSVNfSURFTlRJRklFUl9DSEFSW2ldID0gMTtcbn1cbi8vIEFzaWRlIGZyb20gd2hpdGVzcGFjZSBhbmQgbmV3bGluZXMsIGFsbCBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIEFTQ0lJIHNwYWNlIGFyZSBlaXRoZXJcbi8vIGlkZW50aWZpZXIgY2hhcmFjdGVycyBvciBpbnZhbGlkLiBTaW5jZSB3ZSdyZSBub3QgcGVyZm9ybWluZyBjb2RlIHZhbGlkYXRpb24sIHdlIGNhbiBqdXN0XG4vLyB0cmVhdCBhbGwgaW52YWxpZCBjaGFyYWN0ZXJzIGFzIGlkZW50aWZpZXIgY2hhcmFjdGVycy5cbmZvciAoY29uc3Qgd2hpdGVzcGFjZUNoYXIgb2YgX3doaXRlc3BhY2UuV0hJVEVTUEFDRV9DSEFSUykge1xuICBleHBvcnRzLklTX0lERU5USUZJRVJfQ0hBUlt3aGl0ZXNwYWNlQ2hhcl0gPSAwO1xufVxuZXhwb3J0cy5JU19JREVOVElGSUVSX0NIQVJbMHgyMDI4XSA9IDA7XG5leHBvcnRzLklTX0lERU5USUZJRVJfQ0hBUlsweDIwMjldID0gMDtcblxuIGNvbnN0IElTX0lERU5USUZJRVJfU1RBUlQgPSBleHBvcnRzLklTX0lERU5USUZJRVJfQ0hBUi5zbGljZSgpOyBleHBvcnRzLklTX0lERU5USUZJRVJfU1RBUlQgPSBJU19JREVOVElGSUVSX1NUQVJUO1xuZm9yIChsZXQgbnVtQ2hhciA9IF9jaGFyY29kZXMuY2hhckNvZGVzLmRpZ2l0MDsgbnVtQ2hhciA8PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDk7IG51bUNoYXIrKykge1xuICBleHBvcnRzLklTX0lERU5USUZJRVJfU1RBUlRbbnVtQ2hhcl0gPSAwO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7Ly8gR2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0ISBSdW4gXCJ5YXJuIGdlbmVyYXRlXCIgdG8gcmUtZ2VuZXJhdGUgdGhpcyBmaWxlLlxudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4va2V5d29yZHMnKTtcbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJyk7XG5cbi8vIHByZXR0aWVyLWlnbm9yZVxuIGNvbnN0IFJFQURfV09SRF9UUkVFID0gbmV3IEludDMyQXJyYXkoW1xuICAvLyBcIlwiXG4gIC0xLCAyNywgNzgzLCA5MTgsIDE3NTUsIDIzNzYsIDI4NjIsIDM0ODMsIC0xLCAzNjk5LCAtMSwgNDYxNywgNDc1MiwgNDgzMywgNTEzMCwgNTUwOCwgNTk0MCwgLTEsIDY0ODAsIDY5MzksIDc3NDksIDgxODEsIDg0NTEsIDg2MTMsIC0xLCA4ODI5LCAtMSxcbiAgLy8gXCJhXCJcbiAgLTEsIC0xLCA1NCwgMjQzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MzIsIC0xLCAtMSwgLTEsIDY3NSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhYlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWJzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMDgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWJzdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDEzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic3RyXCJcbiAgLTEsIDE2MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWJzdHJhXCJcbiAgLTEsIC0xLCAtMSwgMTg5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWJzdHJhY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjE2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic3RyYWN0XCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNcIlxuICAtMSwgLTEsIC0xLCAyNzAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2NcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDI5NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2NlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNjZXNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzUxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2Nlc3NcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2Nlc3NvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDA1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNjZXNzb3JcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FjY2Vzc29yIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc1wiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXMgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDU5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU5NCwgLTEsXG4gIC8vIFwiYXNzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0ODYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYXNzZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDUxMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzc2VyXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1NDAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYXNzZXJ0XCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3NlcnQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTY3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3NlcnRzXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3NlcnRzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3lcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYyMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3luXCJcbiAgLTEsIC0xLCAtMSwgNjQ4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYXN5bmNcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhd1wiXG4gIC0xLCA3MDIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImF3YVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcyOSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImF3YWlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc1NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhd2FpdFwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXdhaXQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJiclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJyZVwiXG4gIC0xLCA4NjQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJyZWFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg5MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJicmVha1wiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9icmVhayA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjXCJcbiAgLTEsIDk0NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTEwNywgLTEsIC0xLCAtMSwgMTI0MiwgLTEsIC0xLCAxMzUwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2FcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgOTcyLCAxMDI2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNhc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgOTk5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNhc2VcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fY2FzZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjYXRcIlxuICAtMSwgLTEsIC0xLCAxMDUzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2F0Y1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTA4MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjYXRjaFwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9jYXRjaCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTEzNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVcIlxuICAtMSwgLTEsIC0xLCAxMTYxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2hlY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTE4OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVja1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMjE1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVja3NcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2NoZWNrcyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2xcIlxuICAtMSwgMTI2OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2xhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDEyOTYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNsYXNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTMyMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2xhc3NcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDEzNzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE0MDQsIDE2MjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTQzMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdFwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9jb25zdCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTQ1OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNvbnN0clwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE0ODUsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJ1XCJcbiAgLTEsIC0xLCAtMSwgMTUxMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNvbnN0cnVjXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNTM5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNvbnN0cnVjdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE1NjYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJ1Y3RvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTU5MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNvbnN0cnVjdG9yXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9jb25zdHJ1Y3RvciA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29udFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE2NDcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTY3NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNzAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29udGludVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTcyOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aW51ZVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9jb250aW51ZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNzgyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyMzQ5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVcIlxuICAtMSwgLTEsIDE4MDksIDE5NzEsIC0xLCAtMSwgMjEwNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyMjQxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGViXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTgzNiwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYnVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTg2MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVidWdcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTg5MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVidWdnXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAxOTE3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYnVnZ2VcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxOTQ0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVidWdnZXJcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fZGVidWdnZXIgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVjXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTk5OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlY2xcIlxuICAtMSwgMjAyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVjbGFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyMDUyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVjbGFyXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAyMDc5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlY2xhcmVcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2RlY2xhcmUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlZlwiXG4gIC0xLCAyMTMzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWZhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjE2MCwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlZmF1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjE4NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlZmF1bFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjIxNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWZhdWx0XCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAyMjY4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlbGVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIyOTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVsZXRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDIzMjIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVsZXRlXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX2RlbGV0ZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkb1wiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9kbyA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjQwMywgLTEsIDI0ODQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI1NjUsIC0xLCAtMSxcbiAgLy8gXCJlbFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNDMwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJlbHNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDI0NTcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZWxzZVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9lbHNlIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImVuXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjUxMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImVudVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNTM4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJlbnVtXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9lbnVtIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNTkyLCAtMSwgLTEsIC0xLCAyNzI3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4cFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI2MTksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHBvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjY0NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4cG9yXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNjczLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4cG9ydFwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNzAwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHBvcnRzXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9leHBvcnRzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDI3NTQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXh0ZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjc4MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHRlblwiXG4gIC0xLCAtMSwgLTEsIC0xLCAyODA4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHRlbmRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjgzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXh0ZW5kc1wiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9leHRlbmRzIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZcIlxuICAtMSwgMjg4OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI5OTcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzE1OSwgLTEsIC0xLCAzMjEzLCAtMSwgLTEsIDMyOTQsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI5MTYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmYWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjk0MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZmFsc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjk3MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmYWxzZVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9mYWxzZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzAyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5cIlxuICAtMSwgMzA1MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZmluYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMwNzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5hbFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMxMDUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5hbGxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzEzMiwgLTEsXG4gIC8vIFwiZmluYWxseVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9maW5hbGx5IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzE4NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZvclwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9mb3IgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZnJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzMjQwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZnJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMyNjcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZyb21cIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb20gPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZ1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzMzIxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZ1blwiXG4gIC0xLCAtMSwgLTEsIDMzNDgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5jXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzMzc1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZ1bmN0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzQwMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZ1bmN0aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM0MjksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5jdGlvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNDU2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZ1bmN0aW9uXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDM1MTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM1NjQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJnZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzUzNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJnZXRcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2dldCA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZ2xcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNTkxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZ2xvXCJcbiAgLTEsIC0xLCAzNjE4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdsb2JcIlxuICAtMSwgMzY0NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZ2xvYmFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNjcyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZ2xvYmFsXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzI2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzUzLCA0MDc3LCAtMSwgLTEsIC0xLCAtMSwgNDU5MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaWZcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5faWYgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzc4MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzgwNywgLTEsIC0xLCAzOTk2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzgzNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBsZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzODYxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBsZW1cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDM4ODgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVtZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzkxNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBsZW1lblwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzk0MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBsZW1lbnRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzk2OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVtZW50c1wiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW1wbGVtZW50cyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQwMjMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBvclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDA1MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBvcnRcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX2luIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MTA0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MTg1LCA0NDAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluZlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDEzMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbmZlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDE1OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluZmVyXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbmZlciA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5zXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MjEyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RcIlxuICAtMSwgNDIzOSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5zdGFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQyNjYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5zdGFuXCJcbiAgLTEsIC0xLCAtMSwgNDI5MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhbmNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDQzMjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5zdGFuY2VcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MzQ3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5zdGFuY2VvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDM3NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhbmNlb2ZcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5faW5zdGFuY2VvZiA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ0MjgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW50ZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ0NTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ0ODIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlcmZcIlxuICAtMSwgNDUwOSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW50ZXJmYVwiXG4gIC0xLCAtMSwgLTEsIDQ1MzYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlcmZhY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDU2MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlcmZhY2VcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaXNcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2lzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJrXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0NjQ0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImtlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ2NzEsIC0xLFxuICAvLyBcImtleVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ2OTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJrZXlvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDcyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImtleW9mXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9rZXlvZiA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDc3OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJsZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDgwNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJsZXRcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fbGV0IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm1cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0ODYwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ5OTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ4ODcsIC0xLCAtMSxcbiAgLy8gXCJtaXhcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0OTE0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibWl4aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDk0MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaXhpblwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0OTY4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaXhpbnNcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX21peGlucyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibW9cIlxuICAtMSwgLTEsIC0xLCAtMSwgNTAyMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibW9kXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTA0OSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm1vZHVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MDc2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibW9kdWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDUxMDMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibW9kdWxlXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5cIlxuICAtMSwgNTE1NywgLTEsIC0xLCAtMSwgNTM3MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTQyNywgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDUxODQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hbVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTIxMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDUyMzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hbWVzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDUyNjUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hbWVzcFwiXG4gIC0xLCA1MjkyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lc3BhXCJcbiAgLTEsIC0xLCAtMSwgNTMxOSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hbWVzcGFjXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MzQ2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm5hbWVzcGFjZVwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fbmFtZXNwYWNlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTQwMCwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuZXdcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fbmV3IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm51XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTQ1NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm51bFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU0ODEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJudWxsXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX251bGwgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU1MzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU1NjIsIC0xLCAtMSwgLTEsIC0xLCA1Njk3LCA1NzUxLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvZlwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb2YgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm9wXCJcbiAgLTEsIDU1ODksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm9wYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTYxNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvcGFxXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTY0MywgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm9wYXF1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA1NjcwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm9wYXF1ZVwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb3BhcXVlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTcyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdXRcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX291dCA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDU3NzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTgwNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm92ZXJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1ODMyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlcnJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1ODU5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlcnJpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDU4ODYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm92ZXJyaWRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDU5MTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlcnJpZGVcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX292ZXJyaWRlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTk2NywgLTEsIC0xLCA2MzQ1LCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1OTk0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYxMjksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcmlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjAyMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJpdlwiXG4gIC0xLCA2MDQ4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcml2YVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjA3NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcml2YXRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDYxMDIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJpdmF0ZVwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2MTU2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInByb3RcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDYxODMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYzMTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZVwiXG4gIC0xLCAtMSwgLTEsIDYyMTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYyMzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJvdGVjdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjI2NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWN0ZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCA2MjkxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWN0ZWRcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3Byb3RlY3RlZCA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJvdG9cIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3Byb3RvIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwdVwiXG4gIC0xLCAtMSwgNjM3MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwdWJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2Mzk5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHVibFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY0MjYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwdWJsaVwiXG4gIC0xLCAtMSwgLTEsIDY0NTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwdWJsaWNcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3B1YmxpYyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjUwNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZVwiXG4gIC0xLCA2NTM0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2Njk2LCAtMSwgLTEsIDY4MzEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDY1NjEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlYWRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2NTg4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhZG9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY2MTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhZG9uXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjY0MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlYWRvbmxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjY2OSwgLTEsXG4gIC8vIFwicmVhZG9ubHlcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5IDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2NzIzLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVxdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY3NTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXF1aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY3NzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXF1aXJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDY4MDQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVxdWlyZVwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVxdWlyZSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmV0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjg1OCwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJldHVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2ODg1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmV0dXJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY5MTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmV0dXJuXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX3JldHVybiA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzXCJcbiAgLTEsIDY5NjYsIC0xLCAtMSwgLTEsIDcxODIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzIzNiwgNzM3MSwgLTEsIDc0NzksIC0xLCA3NjE0LCAtMSxcbiAgLy8gXCJzYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjk5MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MDIwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic2F0aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MDQ3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcwNzQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpc2ZcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MTAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic2F0aXNmaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzEyOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpc2ZpZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MTU1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpc2ZpZXNcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3NhdGlzZmllcyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic2VcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcyMDksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic2V0XCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9zZXQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0XCJcbiAgLTEsIDcyNjMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzI5MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdGF0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzMxNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YXRpXCJcbiAgLTEsIC0xLCAtMSwgNzM0NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YXRpY1wiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc3RhdGljIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3Mzk4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdXBcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDc0MjUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic3VwZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc0NTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdXBlclwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl9zdXBlciA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc1MDYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2lcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc1MzMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic3dpdFwiXG4gIC0xLCAtMSwgLTEsIDc1NjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2l0Y1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzU4NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2l0Y2hcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fc3dpdGNoIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN5XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc2NDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN5bVwiXG4gIC0xLCAtMSwgNzY2OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzeW1iXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzY5NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN5bWJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzcyMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN5bWJvbFwiXG4gIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc3ltYm9sIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3Nzc2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3OTM4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MDQ2LCAtMSxcbiAgLy8gXCJ0aFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc4MDMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzg1NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRoaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3ODMwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0aGlzXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX3RoaXMgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidGhyXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzg4NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRocm9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc5MTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidGhyb3dcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fdGhyb3cgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3OTY1LCAtMSwgLTEsIC0xLCA4MDE5LCAtMSxcbiAgLy8gXCJ0cnVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDc5OTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHJ1ZVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl90cnVlIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRyeVwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl90cnkgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODA3MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlwXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTAwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInR5cGVcIlxuICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTI3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlwZW9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTU0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlwZW9mXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX3R5cGVvZiA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MjA4LCAtMSwgLTEsIC0xLCAtMSwgODM0MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MjM1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidW5pXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MjYyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVuaXFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4Mjg5LCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidW5pcXVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDgzMTYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidW5pcXVlXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl91bmlxdWUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM3MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM5NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ1c2luXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg0MjQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzaW5nXCJcbiAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl91c2luZyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidlwiXG4gIC0xLCA4NDc4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODUzMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInZhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODUwNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInZhclwiXG4gIChfdHlwZXMuVG9rZW5UeXBlLl92YXIgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidm9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NTU5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidm9pXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDg1ODYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInZvaWRcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fdm9pZCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ3XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NjQwLCA4NzQ4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2hcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NjY3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2hpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODY5NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIndoaWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDg3MjEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2hpbGVcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fd2hpbGUgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2lcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg3NzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2l0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4ODAyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIndpdGhcIlxuICAoX3R5cGVzLlRva2VuVHlwZS5fd2l0aCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ5XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODg1NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA4ODgzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg5MTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ5aWVsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDg5MzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpZWxkXCJcbiAgKF90eXBlcy5Ub2tlblR5cGUuX3lpZWxkIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuXSk7IGV4cG9ydHMuUkVBRF9XT1JEX1RSRUUgPSBSRUFEX1dPUkRfVFJFRTtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO3ZhciBfYmFzZSA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci9iYXNlJyk7XG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4uL3V0aWwvY2hhcmNvZGVzJyk7XG52YXIgX2lkZW50aWZpZXIgPSByZXF1aXJlKCcuLi91dGlsL2lkZW50aWZpZXInKTtcbnZhciBfaW5kZXggPSByZXF1aXJlKCcuL2luZGV4Jyk7XG52YXIgX3JlYWRXb3JkVHJlZSA9IHJlcXVpcmUoJy4vcmVhZFdvcmRUcmVlJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi90eXBlcycpO1xuXG4vKipcbiAqIFJlYWQgYW4gaWRlbnRpZmllciwgcHJvZHVjaW5nIGVpdGhlciBhIG5hbWUgdG9rZW4gb3IgbWF0Y2hpbmcgb24gb25lIG9mIHRoZSBleGlzdGluZyBrZXl3b3Jkcy5cbiAqIEZvciBwZXJmb3JtYW5jZSwgd2UgcHJlLWdlbmVyYXRlIGJpZyBkZWNpc2lvbiB0cmVlIHRoYXQgd2UgdHJhdmVyc2UuIEVhY2ggbm9kZSByZXByZXNlbnRzIGFcbiAqIHByZWZpeCBhbmQgaGFzIDI3IHZhbHVlcywgd2hlcmUgdGhlIGZpcnN0IHZhbHVlIGlzIHRoZSB0b2tlbiBvciBjb250ZXh0dWFsIHRva2VuLCBpZiBhbnkgKC0xIGlmXG4gKiBub3QpLCBhbmQgdGhlIG90aGVyIDI2IHZhbHVlcyBhcmUgdGhlIHRyYW5zaXRpb25zIHRvIG90aGVyIG5vZGVzLCBvciAtMSB0byBzdG9wLlxuICovXG4gZnVuY3Rpb24gcmVhZFdvcmQoKSB7XG4gIGxldCB0cmVlUG9zID0gMDtcbiAgbGV0IGNvZGUgPSAwO1xuICBsZXQgcG9zID0gX2Jhc2Uuc3RhdGUucG9zO1xuICB3aGlsZSAocG9zIDwgX2Jhc2UuaW5wdXQubGVuZ3RoKSB7XG4gICAgY29kZSA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQocG9zKTtcbiAgICBpZiAoY29kZSA8IF9jaGFyY29kZXMuY2hhckNvZGVzLmxvd2VyY2FzZUEgfHwgY29kZSA+IF9jaGFyY29kZXMuY2hhckNvZGVzLmxvd2VyY2FzZVopIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBuZXh0ID0gX3JlYWRXb3JkVHJlZS5SRUFEX1dPUkRfVFJFRVt0cmVlUG9zICsgKGNvZGUgLSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sb3dlcmNhc2VBKSArIDFdO1xuICAgIGlmIChuZXh0ID09PSAtMSkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyZWVQb3MgPSBuZXh0O1xuICAgICAgcG9zKys7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qga2V5d29yZFZhbHVlID0gX3JlYWRXb3JkVHJlZS5SRUFEX1dPUkRfVFJFRVt0cmVlUG9zXTtcbiAgaWYgKGtleXdvcmRWYWx1ZSA+IC0xICYmICFfaWRlbnRpZmllci5JU19JREVOVElGSUVSX0NIQVJbY29kZV0pIHtcbiAgICBfYmFzZS5zdGF0ZS5wb3MgPSBwb3M7XG4gICAgaWYgKGtleXdvcmRWYWx1ZSAmIDEpIHtcbiAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwga2V5d29yZFZhbHVlID4+PiAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIGtleXdvcmRWYWx1ZSA+Pj4gMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHdoaWxlIChwb3MgPCBfYmFzZS5pbnB1dC5sZW5ndGgpIHtcbiAgICBjb25zdCBjaCA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQocG9zKTtcbiAgICBpZiAoX2lkZW50aWZpZXIuSVNfSURFTlRJRklFUl9DSEFSW2NoXSkge1xuICAgICAgcG9zKys7XG4gICAgfSBlbHNlIGlmIChjaCA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYmFja3NsYXNoKSB7XG4gICAgICAvLyBcXHVcbiAgICAgIHBvcyArPSAyO1xuICAgICAgaWYgKF9iYXNlLmlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGVmdEN1cmx5QnJhY2UpIHtcbiAgICAgICAgd2hpbGUgKHBvcyA8IF9iYXNlLmlucHV0Lmxlbmd0aCAmJiBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KHBvcykgIT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnJpZ2h0Q3VybHlCcmFjZSkge1xuICAgICAgICAgIHBvcysrO1xuICAgICAgICB9XG4gICAgICAgIHBvcysrO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2ggPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmF0U2lnbiAmJiBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5hdFNpZ24pIHtcbiAgICAgIHBvcyArPSAyO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgX2Jhc2Uuc3RhdGUucG9zID0gcG9zO1xuICBfaW5kZXguZmluaXNoVG9rZW4uY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IHJlYWRXb3JkO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9LyogZXNsaW50IG1heC1sZW46IDAgKi9cblxudmFyIF9iYXNlID0gcmVxdWlyZSgnLi4vdHJhdmVyc2VyL2Jhc2UnKTtcbnZhciBfdXRpbCA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci91dGlsJyk7XG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4uL3V0aWwvY2hhcmNvZGVzJyk7XG52YXIgX2lkZW50aWZpZXIgPSByZXF1aXJlKCcuLi91dGlsL2lkZW50aWZpZXInKTtcbnZhciBfd2hpdGVzcGFjZSA9IHJlcXVpcmUoJy4uL3V0aWwvd2hpdGVzcGFjZScpO1xudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4va2V5d29yZHMnKTtcbnZhciBfcmVhZFdvcmQgPSByZXF1aXJlKCcuL3JlYWRXb3JkJyk7IHZhciBfcmVhZFdvcmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhZFdvcmQpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4vdHlwZXMnKTtcblxudmFyIElkZW50aWZpZXJSb2xlOyAoZnVuY3Rpb24gKElkZW50aWZpZXJSb2xlKSB7XG4gIGNvbnN0IEFjY2VzcyA9IDA7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiQWNjZXNzXCJdID0gQWNjZXNzXSA9IFwiQWNjZXNzXCI7XG4gIGNvbnN0IEV4cG9ydEFjY2VzcyA9IEFjY2VzcyArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiRXhwb3J0QWNjZXNzXCJdID0gRXhwb3J0QWNjZXNzXSA9IFwiRXhwb3J0QWNjZXNzXCI7XG4gIGNvbnN0IFRvcExldmVsRGVjbGFyYXRpb24gPSBFeHBvcnRBY2Nlc3MgKyAxOyBJZGVudGlmaWVyUm9sZVtJZGVudGlmaWVyUm9sZVtcIlRvcExldmVsRGVjbGFyYXRpb25cIl0gPSBUb3BMZXZlbERlY2xhcmF0aW9uXSA9IFwiVG9wTGV2ZWxEZWNsYXJhdGlvblwiO1xuICBjb25zdCBGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uID0gVG9wTGV2ZWxEZWNsYXJhdGlvbiArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvblwiXSA9IEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb25dID0gXCJGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXCI7XG4gIGNvbnN0IEJsb2NrU2NvcGVkRGVjbGFyYXRpb24gPSBGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJCbG9ja1Njb3BlZERlY2xhcmF0aW9uXCJdID0gQmxvY2tTY29wZWREZWNsYXJhdGlvbl0gPSBcIkJsb2NrU2NvcGVkRGVjbGFyYXRpb25cIjtcbiAgY29uc3QgT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvbiA9IEJsb2NrU2NvcGVkRGVjbGFyYXRpb24gKyAxOyBJZGVudGlmaWVyUm9sZVtJZGVudGlmaWVyUm9sZVtcIk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb25cIl0gPSBPYmplY3RTaG9ydGhhbmRUb3BMZXZlbERlY2xhcmF0aW9uXSA9IFwiT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvblwiO1xuICBjb25zdCBPYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uID0gT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvbiArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiT2JqZWN0U2hvcnRoYW5kRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvblwiXSA9IE9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb25dID0gXCJPYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXCI7XG4gIGNvbnN0IE9iamVjdFNob3J0aGFuZEJsb2NrU2NvcGVkRGVjbGFyYXRpb24gPSBPYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJPYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXCJdID0gT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvbl0gPSBcIk9iamVjdFNob3J0aGFuZEJsb2NrU2NvcGVkRGVjbGFyYXRpb25cIjtcbiAgY29uc3QgT2JqZWN0U2hvcnRoYW5kID0gT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvbiArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiT2JqZWN0U2hvcnRoYW5kXCJdID0gT2JqZWN0U2hvcnRoYW5kXSA9IFwiT2JqZWN0U2hvcnRoYW5kXCI7XG4gIC8vIEFueSBpZGVudGlmaWVyIGJvdW5kIGluIGFuIGltcG9ydCBzdGF0ZW1lbnQsIGUuZy4gYm90aCBBIGFuZCBiIGZyb21cbiAgLy8gYGltcG9ydCBBLCAqIGFzIGIgZnJvbSAnQSc7YFxuICBjb25zdCBJbXBvcnREZWNsYXJhdGlvbiA9IE9iamVjdFNob3J0aGFuZCArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiSW1wb3J0RGVjbGFyYXRpb25cIl0gPSBJbXBvcnREZWNsYXJhdGlvbl0gPSBcIkltcG9ydERlY2xhcmF0aW9uXCI7XG4gIGNvbnN0IE9iamVjdEtleSA9IEltcG9ydERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJPYmplY3RLZXlcIl0gPSBPYmplY3RLZXldID0gXCJPYmplY3RLZXlcIjtcbiAgLy8gVGhlIGBmb29gIGluIGBpbXBvcnQge2ZvbyBhcyBiYXJ9IGZyb20gXCIuL2FiY1wiO2AuXG4gIGNvbnN0IEltcG9ydEFjY2VzcyA9IE9iamVjdEtleSArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiSW1wb3J0QWNjZXNzXCJdID0gSW1wb3J0QWNjZXNzXSA9IFwiSW1wb3J0QWNjZXNzXCI7XG59KShJZGVudGlmaWVyUm9sZSB8fCAoZXhwb3J0cy5JZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlID0ge30pKTtcblxuLyoqXG4gKiBFeHRyYSBpbmZvcm1hdGlvbiBvbiBqc3hUYWdTdGFydCB0b2tlbnMsIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZSB0aHJlZVxuICoganN4IGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGluIHRoZSBhdXRvbWF0aWMgdHJhbnNmb3JtLlxuICovXG52YXIgSlNYUm9sZTsgKGZ1bmN0aW9uIChKU1hSb2xlKSB7XG4gIC8vIFRoZSBlbGVtZW50IGlzIHNlbGYtY2xvc2luZyBvciBoYXMgYSBib2R5IHRoYXQgcmVzb2x2ZXMgdG8gZW1wdHkuIFdlXG4gIC8vIHNob3VsZG4ndCBlbWl0IGNoaWxkcmVuIGF0IGFsbCBpbiB0aGlzIGNhc2UuXG4gIGNvbnN0IE5vQ2hpbGRyZW4gPSAwOyBKU1hSb2xlW0pTWFJvbGVbXCJOb0NoaWxkcmVuXCJdID0gTm9DaGlsZHJlbl0gPSBcIk5vQ2hpbGRyZW5cIjtcbiAgLy8gVGhlIGVsZW1lbnQgaGFzIGEgc2luZ2xlIGV4cGxpY2l0IGNoaWxkLCB3aGljaCBtaWdodCBzdGlsbCBiZSBhbiBhcmJpdHJhcnlcbiAgLy8gZXhwcmVzc2lvbiBsaWtlIGFuIGFycmF5LiBXZSBzaG91bGQgZW1pdCB0aGF0IGV4cHJlc3Npb24gYXMgdGhlIGNoaWxkcmVuLlxuICBjb25zdCBPbmVDaGlsZCA9IE5vQ2hpbGRyZW4gKyAxOyBKU1hSb2xlW0pTWFJvbGVbXCJPbmVDaGlsZFwiXSA9IE9uZUNoaWxkXSA9IFwiT25lQ2hpbGRcIjtcbiAgLy8gVGhlIGVsZW1lbnQgaGFzIGF0IGxlYXN0IHR3byBleHBsaWNpdGx5LXNwZWNpZmllZCBjaGlsZHJlbiBvciBoYXMgc3ByZWFkXG4gIC8vIGNoaWxkcmVuLCBzbyBjaGlsZCBwb3NpdGlvbnMgYXJlIGFzc3VtZWQgdG8gYmUgXCJzdGF0aWNcIi4gV2Ugc2hvdWxkIHdyYXBcbiAgLy8gdGhlc2UgY2hpbGRyZW4gaW4gYW4gYXJyYXkuXG4gIGNvbnN0IFN0YXRpY0NoaWxkcmVuID0gT25lQ2hpbGQgKyAxOyBKU1hSb2xlW0pTWFJvbGVbXCJTdGF0aWNDaGlsZHJlblwiXSA9IFN0YXRpY0NoaWxkcmVuXSA9IFwiU3RhdGljQ2hpbGRyZW5cIjtcbiAgLy8gVGhlIGVsZW1lbnQgaGFzIGEgcHJvcCBuYW1lZCBcImtleVwiIGFmdGVyIGEgcHJvcCBzcHJlYWQsIHNvIHdlIHNob3VsZCBmYWxsXG4gIC8vIGJhY2sgdG8gdGhlIGNyZWF0ZUVsZW1lbnQgZnVuY3Rpb24uXG4gIGNvbnN0IEtleUFmdGVyUHJvcFNwcmVhZCA9IFN0YXRpY0NoaWxkcmVuICsgMTsgSlNYUm9sZVtKU1hSb2xlW1wiS2V5QWZ0ZXJQcm9wU3ByZWFkXCJdID0gS2V5QWZ0ZXJQcm9wU3ByZWFkXSA9IFwiS2V5QWZ0ZXJQcm9wU3ByZWFkXCI7XG59KShKU1hSb2xlIHx8IChleHBvcnRzLkpTWFJvbGUgPSBKU1hSb2xlID0ge30pKTtcblxuIGZ1bmN0aW9uIGlzRGVjbGFyYXRpb24odG9rZW4pIHtcbiAgY29uc3Qgcm9sZSA9IHRva2VuLmlkZW50aWZpZXJSb2xlO1xuICByZXR1cm4gKFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLlRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5GdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuQmxvY2tTY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvblxuICApO1xufSBleHBvcnRzLmlzRGVjbGFyYXRpb24gPSBpc0RlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gaXNOb25Ub3BMZXZlbERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIGNvbnN0IHJvbGUgPSB0b2tlbi5pZGVudGlmaWVyUm9sZTtcbiAgcmV0dXJuIChcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5GdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuQmxvY2tTY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXG4gICk7XG59IGV4cG9ydHMuaXNOb25Ub3BMZXZlbERlY2xhcmF0aW9uID0gaXNOb25Ub3BMZXZlbERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gaXNUb3BMZXZlbERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIGNvbnN0IHJvbGUgPSB0b2tlbi5pZGVudGlmaWVyUm9sZTtcbiAgcmV0dXJuIChcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5Ub3BMZXZlbERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLkltcG9ydERlY2xhcmF0aW9uXG4gICk7XG59IGV4cG9ydHMuaXNUb3BMZXZlbERlY2xhcmF0aW9uID0gaXNUb3BMZXZlbERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gaXNCbG9ja1Njb3BlZERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIGNvbnN0IHJvbGUgPSB0b2tlbi5pZGVudGlmaWVyUm9sZTtcbiAgLy8gVHJlYXQgdG9wLWxldmVsIGRlY2xhcmF0aW9ucyBhcyBibG9jayBzY29wZSBzaW5jZSB0aGUgZGlzdGluY3Rpb24gZG9lc24ndCBtYXR0ZXIgaGVyZS5cbiAgcmV0dXJuIChcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5Ub3BMZXZlbERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuQmxvY2tTY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXG4gICk7XG59IGV4cG9ydHMuaXNCbG9ja1Njb3BlZERlY2xhcmF0aW9uID0gaXNCbG9ja1Njb3BlZERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gaXNGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIGNvbnN0IHJvbGUgPSB0b2tlbi5pZGVudGlmaWVyUm9sZTtcbiAgcmV0dXJuIChcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5GdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvblxuICApO1xufSBleHBvcnRzLmlzRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbiA9IGlzRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbjtcblxuIGZ1bmN0aW9uIGlzT2JqZWN0U2hvcnRoYW5kRGVjbGFyYXRpb24odG9rZW4pIHtcbiAgcmV0dXJuIChcbiAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvbiB8fFxuICAgIHRva2VuLmlkZW50aWZpZXJSb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgdG9rZW4uaWRlbnRpZmllclJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb25cbiAgKTtcbn0gZXhwb3J0cy5pc09iamVjdFNob3J0aGFuZERlY2xhcmF0aW9uID0gaXNPYmplY3RTaG9ydGhhbmREZWNsYXJhdGlvbjtcblxuLy8gT2JqZWN0IHR5cGUgdXNlZCB0byByZXByZXNlbnQgdG9rZW5zLiBOb3RlIHRoYXQgbm9ybWFsbHksIHRva2Vuc1xuLy8gc2ltcGx5IGV4aXN0IGFzIHByb3BlcnRpZXMgb24gdGhlIHBhcnNlciBvYmplY3QuIFRoaXMgaXMgb25seVxuLy8gdXNlZCBmb3IgdGhlIG9uVG9rZW4gY2FsbGJhY2sgYW5kIHRoZSBleHRlcm5hbCB0b2tlbml6ZXIuXG4gY2xhc3MgVG9rZW4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnR5cGUgPSBfYmFzZS5zdGF0ZS50eXBlO1xuICAgIHRoaXMuY29udGV4dHVhbEtleXdvcmQgPSBfYmFzZS5zdGF0ZS5jb250ZXh0dWFsS2V5d29yZDtcbiAgICB0aGlzLnN0YXJ0ID0gX2Jhc2Uuc3RhdGUuc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBfYmFzZS5zdGF0ZS5lbmQ7XG4gICAgdGhpcy5zY29wZURlcHRoID0gX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aDtcbiAgICB0aGlzLmlzVHlwZSA9IF9iYXNlLnN0YXRlLmlzVHlwZTtcbiAgICB0aGlzLmlkZW50aWZpZXJSb2xlID0gbnVsbDtcbiAgICB0aGlzLmpzeFJvbGUgPSBudWxsO1xuICAgIHRoaXMuc2hhZG93c0dsb2JhbCA9IGZhbHNlO1xuICAgIHRoaXMuaXNBc3luY09wZXJhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuY29udGV4dElkID0gbnVsbDtcbiAgICB0aGlzLnJoc0VuZEluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmlzRXhwcmVzc2lvbiA9IGZhbHNlO1xuICAgIHRoaXMubnVtTnVsbGlzaENvYWxlc2NlU3RhcnRzID0gMDtcbiAgICB0aGlzLm51bU51bGxpc2hDb2FsZXNjZUVuZHMgPSAwO1xuICAgIHRoaXMuaXNPcHRpb25hbENoYWluU3RhcnQgPSBmYWxzZTtcbiAgICB0aGlzLmlzT3B0aW9uYWxDaGFpbkVuZCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0U3RhcnRJbmRleCA9IG51bGw7XG4gICAgdGhpcy5udWxsaXNoU3RhcnRJbmRleCA9IG51bGw7XG4gIH1cblxuICBcbiAgXG4gIFxuICBcbiAgXG4gIFxuICBcbiAgXG4gIC8vIEluaXRpYWxseSBmYWxzZSBmb3IgYWxsIHRva2VucywgdGhlbiBtYXkgYmUgY29tcHV0ZWQgaW4gYSBmb2xsb3ctdXAgc3RlcCB0aGF0IGRvZXMgc2NvcGVcbiAgLy8gYW5hbHlzaXMuXG4gIFxuICAvLyBJbml0aWFsbHkgZmFsc2UgZm9yIGFsbCB0b2tlbnMsIGJ1dCBtYXkgYmUgc2V0IGR1cmluZyB0cmFuc2Zvcm0gdG8gbWFyayBpdCBhcyBjb250YWluaW5nIGFuXG4gIC8vIGF3YWl0IG9wZXJhdGlvbi5cbiAgXG4gIFxuICAvLyBGb3IgYXNzaWdubWVudHMsIHRoZSBpbmRleCBvZiB0aGUgUkhTLiBGb3IgZXhwb3J0IHRva2VucywgdGhlIGVuZCBvZiB0aGUgZXhwb3J0LlxuICBcbiAgLy8gRm9yIGNsYXNzIHRva2VucywgcmVjb3JkcyBpZiB0aGUgY2xhc3MgaXMgYSBjbGFzcyBleHByZXNzaW9uIG9yIGEgY2xhc3Mgc3RhdGVtZW50LlxuICBcbiAgLy8gTnVtYmVyIG9mIHRpbWVzIHRvIGluc2VydCBhIGBudWxsaXNoQ29hbGVzY2UoYCBzbmlwcGV0IGJlZm9yZSB0aGlzIHRva2VuLlxuICBcbiAgLy8gTnVtYmVyIG9mIHRpbWVzIHRvIGluc2VydCBhIGApYCBzbmlwcGV0IGFmdGVyIHRoaXMgdG9rZW4uXG4gIFxuICAvLyBJZiB0cnVlLCBpbnNlcnQgYW4gYG9wdGlvbmFsQ2hhaW4oW2Agc25pcHBldCBiZWZvcmUgdGhpcyB0b2tlbi5cbiAgXG4gIC8vIElmIHRydWUsIGluc2VydCBhIGBdKWAgc25pcHBldCBhZnRlciB0aGlzIHRva2VuLlxuICBcbiAgLy8gVGFnIGZvciBgLmAsIGA/LmAsIGBbYCwgYD8uW2AsIGAoYCwgYW5kIGA/LihgIHRvIGRlbm90ZSB0aGUgXCJyb290XCIgdG9rZW4gZm9yIHRoaXNcbiAgLy8gc3Vic2NyaXB0IGNoYWluLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBpZiB0aGlzIGNoYWluIGlzIGFuIG9wdGlvbmFsIGNoYWluLlxuICBcbiAgLy8gVGFnIGZvciBgPz9gIG9wZXJhdG9ycyB0byBkZW5vdGUgdGhlIHJvb3QgdG9rZW4gZm9yIHRoaXMgbnVsbGlzaCBjb2FsZXNjaW5nIGNhbGwuXG4gIFxufSBleHBvcnRzLlRva2VuID0gVG9rZW47XG5cbi8vICMjIFRva2VuaXplclxuXG4vLyBNb3ZlIHRvIHRoZSBuZXh0IHRva2VuXG4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zLnB1c2gobmV3IFRva2VuKCkpO1xuICBuZXh0VG9rZW4oKTtcbn0gZXhwb3J0cy5uZXh0ID0gbmV4dDtcblxuLy8gQ2FsbCBpbnN0ZWFkIG9mIG5leHQgd2hlbiBpbnNpZGUgYSB0ZW1wbGF0ZSwgc2luY2UgdGhhdCBuZWVkcyB0byBiZSBoYW5kbGVkIGRpZmZlcmVudGx5LlxuIGZ1bmN0aW9uIG5leHRUZW1wbGF0ZVRva2VuKCkge1xuICBfYmFzZS5zdGF0ZS50b2tlbnMucHVzaChuZXcgVG9rZW4oKSk7XG4gIF9iYXNlLnN0YXRlLnN0YXJ0ID0gX2Jhc2Uuc3RhdGUucG9zO1xuICByZWFkVG1wbFRva2VuKCk7XG59IGV4cG9ydHMubmV4dFRlbXBsYXRlVG9rZW4gPSBuZXh0VGVtcGxhdGVUb2tlbjtcblxuLy8gVGhlIHRva2VuaXplciBuZXZlciBwYXJzZXMgcmVnZXhlcyBieSBkZWZhdWx0LiBJbnN0ZWFkLCB0aGUgcGFyc2VyIGlzIHJlc3BvbnNpYmxlIGZvclxuLy8gaW5zdHJ1Y3RpbmcgaXQgdG8gcGFyc2UgYSByZWdleCB3aGVuIHdlIHNlZSBhIHNsYXNoIGF0IHRoZSBzdGFydCBvZiBhbiBleHByZXNzaW9uLlxuIGZ1bmN0aW9uIHJldG9rZW5pemVTbGFzaEFzUmVnZXgoKSB7XG4gIGlmIChfYmFzZS5zdGF0ZS50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmFzc2lnbikge1xuICAgIC0tX2Jhc2Uuc3RhdGUucG9zO1xuICB9XG4gIHJlYWRSZWdleHAoKTtcbn0gZXhwb3J0cy5yZXRva2VuaXplU2xhc2hBc1JlZ2V4ID0gcmV0b2tlbml6ZVNsYXNoQXNSZWdleDtcblxuIGZ1bmN0aW9uIHB1c2hUeXBlQ29udGV4dChleGlzdGluZ1Rva2Vuc0luVHlwZSkge1xuICBmb3IgKGxldCBpID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIGV4aXN0aW5nVG9rZW5zSW5UeXBlOyBpIDwgX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2ldLmlzVHlwZSA9IHRydWU7XG4gIH1cbiAgY29uc3Qgb2xkSXNUeXBlID0gX2Jhc2Uuc3RhdGUuaXNUeXBlO1xuICBfYmFzZS5zdGF0ZS5pc1R5cGUgPSB0cnVlO1xuICByZXR1cm4gb2xkSXNUeXBlO1xufSBleHBvcnRzLnB1c2hUeXBlQ29udGV4dCA9IHB1c2hUeXBlQ29udGV4dDtcblxuIGZ1bmN0aW9uIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSkge1xuICBfYmFzZS5zdGF0ZS5pc1R5cGUgPSBvbGRJc1R5cGU7XG59IGV4cG9ydHMucG9wVHlwZUNvbnRleHQgPSBwb3BUeXBlQ29udGV4dDtcblxuIGZ1bmN0aW9uIGVhdCh0eXBlKSB7XG4gIGlmIChtYXRjaCh0eXBlKSkge1xuICAgIG5leHQoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0gZXhwb3J0cy5lYXQgPSBlYXQ7XG5cbiBmdW5jdGlvbiBlYXRUeXBlVG9rZW4odG9rZW5UeXBlKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9iYXNlLnN0YXRlLmlzVHlwZTtcbiAgX2Jhc2Uuc3RhdGUuaXNUeXBlID0gdHJ1ZTtcbiAgZWF0KHRva2VuVHlwZSk7XG4gIF9iYXNlLnN0YXRlLmlzVHlwZSA9IG9sZElzVHlwZTtcbn0gZXhwb3J0cy5lYXRUeXBlVG9rZW4gPSBlYXRUeXBlVG9rZW47XG5cbiBmdW5jdGlvbiBtYXRjaCh0eXBlKSB7XG4gIHJldHVybiBfYmFzZS5zdGF0ZS50eXBlID09PSB0eXBlO1xufSBleHBvcnRzLm1hdGNoID0gbWF0Y2g7XG5cbiBmdW5jdGlvbiBsb29rYWhlYWRUeXBlKCkge1xuICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG4gIG5leHQoKTtcbiAgY29uc3QgdHlwZSA9IF9iYXNlLnN0YXRlLnR5cGU7XG4gIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gdHlwZTtcbn0gZXhwb3J0cy5sb29rYWhlYWRUeXBlID0gbG9va2FoZWFkVHlwZTtcblxuIGNsYXNzIFR5cGVBbmRLZXl3b3JkIHtcbiAgXG4gIFxuICBjb25zdHJ1Y3Rvcih0eXBlLCBjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5jb250ZXh0dWFsS2V5d29yZCA9IGNvbnRleHR1YWxLZXl3b3JkO1xuICB9XG59IGV4cG9ydHMuVHlwZUFuZEtleXdvcmQgPSBUeXBlQW5kS2V5d29yZDtcblxuIGZ1bmN0aW9uIGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkKCkge1xuICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG4gIG5leHQoKTtcbiAgY29uc3QgdHlwZSA9IF9iYXNlLnN0YXRlLnR5cGU7XG4gIGNvbnN0IGNvbnRleHR1YWxLZXl3b3JkID0gX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQ7XG4gIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gbmV3IFR5cGVBbmRLZXl3b3JkKHR5cGUsIGNvbnRleHR1YWxLZXl3b3JkKTtcbn0gZXhwb3J0cy5sb29rYWhlYWRUeXBlQW5kS2V5d29yZCA9IGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkO1xuXG4gZnVuY3Rpb24gbmV4dFRva2VuU3RhcnQoKSB7XG4gIHJldHVybiBuZXh0VG9rZW5TdGFydFNpbmNlKF9iYXNlLnN0YXRlLnBvcyk7XG59IGV4cG9ydHMubmV4dFRva2VuU3RhcnQgPSBuZXh0VG9rZW5TdGFydDtcblxuIGZ1bmN0aW9uIG5leHRUb2tlblN0YXJ0U2luY2UocG9zKSB7XG4gIF93aGl0ZXNwYWNlLnNraXBXaGl0ZVNwYWNlLmxhc3RJbmRleCA9IHBvcztcbiAgY29uc3Qgc2tpcCA9IF93aGl0ZXNwYWNlLnNraXBXaGl0ZVNwYWNlLmV4ZWMoX2Jhc2UuaW5wdXQpO1xuICByZXR1cm4gcG9zICsgc2tpcFswXS5sZW5ndGg7XG59IGV4cG9ydHMubmV4dFRva2VuU3RhcnRTaW5jZSA9IG5leHRUb2tlblN0YXJ0U2luY2U7XG5cbiBmdW5jdGlvbiBsb29rYWhlYWRDaGFyQ29kZSgpIHtcbiAgcmV0dXJuIF9iYXNlLmlucHV0LmNoYXJDb2RlQXQobmV4dFRva2VuU3RhcnQoKSk7XG59IGV4cG9ydHMubG9va2FoZWFkQ2hhckNvZGUgPSBsb29rYWhlYWRDaGFyQ29kZTtcblxuLy8gUmVhZCBhIHNpbmdsZSB0b2tlbiwgdXBkYXRpbmcgdGhlIHBhcnNlciBvYmplY3QncyB0b2tlbi1yZWxhdGVkXG4vLyBwcm9wZXJ0aWVzLlxuIGZ1bmN0aW9uIG5leHRUb2tlbigpIHtcbiAgc2tpcFNwYWNlKCk7XG4gIF9iYXNlLnN0YXRlLnN0YXJ0ID0gX2Jhc2Uuc3RhdGUucG9zO1xuICBpZiAoX2Jhc2Uuc3RhdGUucG9zID49IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgIGNvbnN0IHRva2VucyA9IF9iYXNlLnN0YXRlLnRva2VucztcbiAgICAvLyBXZSBub3JtYWxseSBydW4gcGFzdCB0aGUgZW5kIGEgYml0LCBidXQgaWYgd2UncmUgd2F5IHBhc3QgdGhlIGVuZCwgYXZvaWQgYW4gaW5maW5pdGUgbG9vcC5cbiAgICAvLyBBbHNvIGNoZWNrIHRoZSB0b2tlbiBwb3NpdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHR5cGVzIHNpbmNlIHNvbWV0aW1lcyB3ZSByZXdyaXRlIHRoZSB0b2tlblxuICAgIC8vIHR5cGUgdG8gc29tZXRoaW5nIGVsc2UuXG4gICAgaWYgKFxuICAgICAgdG9rZW5zLmxlbmd0aCA+PSAyICYmXG4gICAgICB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLnN0YXJ0ID49IF9iYXNlLmlucHV0Lmxlbmd0aCAmJlxuICAgICAgdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAyXS5zdGFydCA+PSBfYmFzZS5pbnB1dC5sZW5ndGhcbiAgICApIHtcbiAgICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsIFwiVW5leHBlY3RlZGx5IHJlYWNoZWQgdGhlIGVuZCBvZiBpbnB1dC5cIik7XG4gICAgfVxuICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuZW9mKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcmVhZFRva2VuKF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKSk7XG59IGV4cG9ydHMubmV4dFRva2VuID0gbmV4dFRva2VuO1xuXG5mdW5jdGlvbiByZWFkVG9rZW4oY29kZSkge1xuICAvLyBJZGVudGlmaWVyIG9yIGtleXdvcmQuICdcXHVYWFhYJyBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgaW5cbiAgLy8gaWRlbnRpZmllcnMsIHNvICdcXCcgYWxzbyBkaXNwYXRjaGVzIHRvIHRoYXQuXG4gIGlmIChcbiAgICBfaWRlbnRpZmllci5JU19JREVOVElGSUVSX1NUQVJUW2NvZGVdIHx8XG4gICAgY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYmFja3NsYXNoIHx8XG4gICAgKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmF0U2lnbiAmJiBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5hdFNpZ24pXG4gICkge1xuICAgIF9yZWFkV29yZDIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBnZXRUb2tlbkZyb21Db2RlKGNvZGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNraXBCbG9ja0NvbW1lbnQoKSB7XG4gIHdoaWxlIChcbiAgICBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcykgIT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmFzdGVyaXNrIHx8XG4gICAgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKSAhPT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuc2xhc2hcbiAgKSB7XG4gICAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA+IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiLCBfYmFzZS5zdGF0ZS5wb3MgLSAyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgX2Jhc2Uuc3RhdGUucG9zICs9IDI7XG59XG5cbiBmdW5jdGlvbiBza2lwTGluZUNvbW1lbnQoc3RhcnRTa2lwKSB7XG4gIGxldCBjaCA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoKF9iYXNlLnN0YXRlLnBvcyArPSBzdGFydFNraXApKTtcbiAgaWYgKF9iYXNlLnN0YXRlLnBvcyA8IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgIHdoaWxlIChcbiAgICAgIGNoICE9PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5saW5lRmVlZCAmJlxuICAgICAgY2ggIT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmNhcnJpYWdlUmV0dXJuICYmXG4gICAgICBjaCAhPT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGluZVNlcGFyYXRvciAmJlxuICAgICAgY2ggIT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnBhcmFncmFwaFNlcGFyYXRvciAmJlxuICAgICAgKytfYmFzZS5zdGF0ZS5wb3MgPCBfYmFzZS5pbnB1dC5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNoID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICAgIH1cbiAgfVxufSBleHBvcnRzLnNraXBMaW5lQ29tbWVudCA9IHNraXBMaW5lQ29tbWVudDtcblxuLy8gQ2FsbGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgcGFyc2UgYW5kIGFmdGVyIGV2ZXJ5IHRva2VuLiBTa2lwc1xuLy8gd2hpdGVzcGFjZSBhbmQgY29tbWVudHMuXG4gZnVuY3Rpb24gc2tpcFNwYWNlKCkge1xuICB3aGlsZSAoX2Jhc2Uuc3RhdGUucG9zIDwgX2Jhc2UuaW5wdXQubGVuZ3RoKSB7XG4gICAgY29uc3QgY2ggPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyk7XG4gICAgc3dpdGNoIChjaCkge1xuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5jYXJyaWFnZVJldHVybjpcbiAgICAgICAgaWYgKF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxpbmVGZWVkKSB7XG4gICAgICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5saW5lRmVlZDpcbiAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGluZVNlcGFyYXRvcjpcbiAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMucGFyYWdyYXBoU2VwYXJhdG9yOlxuICAgICAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuc2xhc2g6XG4gICAgICAgIHN3aXRjaCAoX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKSkge1xuICAgICAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYXN0ZXJpc2s6XG4gICAgICAgICAgICBfYmFzZS5zdGF0ZS5wb3MgKz0gMjtcbiAgICAgICAgICAgIHNraXBCbG9ja0NvbW1lbnQoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5zbGFzaDpcbiAgICAgICAgICAgIHNraXBMaW5lQ29tbWVudCgyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKF93aGl0ZXNwYWNlLklTX1dISVRFU1BBQ0VbY2hdKSB7XG4gICAgICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59IGV4cG9ydHMuc2tpcFNwYWNlID0gc2tpcFNwYWNlO1xuXG4vLyBDYWxsZWQgYXQgdGhlIGVuZCBvZiBldmVyeSB0b2tlbi4gU2V0cyB2YXJpb3VzIGZpZWxkcywgYW5kIHNraXBzIHRoZSBzcGFjZSBhZnRlciB0aGUgdG9rZW4sIHNvXG4vLyB0aGF0IHRoZSBuZXh0IG9uZSdzIGBzdGFydGAgd2lsbCBwb2ludCBhdCB0aGUgcmlnaHQgcG9zaXRpb24uXG4gZnVuY3Rpb24gZmluaXNoVG9rZW4oXG4gIHR5cGUsXG4gIGNvbnRleHR1YWxLZXl3b3JkID0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLk5PTkUsXG4pIHtcbiAgX2Jhc2Uuc3RhdGUuZW5kID0gX2Jhc2Uuc3RhdGUucG9zO1xuICBfYmFzZS5zdGF0ZS50eXBlID0gdHlwZTtcbiAgX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPSBjb250ZXh0dWFsS2V5d29yZDtcbn0gZXhwb3J0cy5maW5pc2hUb2tlbiA9IGZpbmlzaFRva2VuO1xuXG4vLyAjIyMgVG9rZW4gcmVhZGluZ1xuXG4vLyBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB0byBmZXRjaCB0aGUgbmV4dCB0b2tlbi4gSXRcbi8vIGlzIHNvbWV3aGF0IG9ic2N1cmUsIGJlY2F1c2UgaXQgd29ya3MgaW4gY2hhcmFjdGVyIGNvZGVzIHJhdGhlclxuLy8gdGhhbiBjaGFyYWN0ZXJzLCBhbmQgYmVjYXVzZSBvcGVyYXRvciBwYXJzaW5nIGhhcyBiZWVuIGlubGluZWRcbi8vIGludG8gaXQuXG4vL1xuLy8gQWxsIGluIHRoZSBuYW1lIG9mIHNwZWVkLlxuZnVuY3Rpb24gcmVhZFRva2VuX2RvdCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpO1xuICBpZiAobmV4dENoYXIgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQwICYmIG5leHRDaGFyIDw9IF9jaGFyY29kZXMuY2hhckNvZGVzLmRpZ2l0OSkge1xuICAgIHJlYWROdW1iZXIodHJ1ZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5leHRDaGFyID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kb3QgJiYgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAyKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZG90KSB7XG4gICAgX2Jhc2Uuc3RhdGUucG9zICs9IDM7XG4gICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcyk7XG4gIH0gZWxzZSB7XG4gICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5kb3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9zbGFzaCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpO1xuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5hc3NpZ24sIDIpO1xuICB9IGVsc2Uge1xuICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuc2xhc2gsIDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9tdWx0X21vZHVsbyhjb2RlKSB7XG4gIC8vICclKidcbiAgbGV0IHRva2VuVHlwZSA9IGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmFzdGVyaXNrID8gX3R5cGVzLlRva2VuVHlwZS5zdGFyIDogX3R5cGVzLlRva2VuVHlwZS5tb2R1bG87XG4gIGxldCB3aWR0aCA9IDE7XG4gIGxldCBuZXh0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSk7XG5cbiAgLy8gRXhwb25lbnRpYXRpb24gb3BlcmF0b3IgKipcbiAgaWYgKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmFzdGVyaXNrICYmIG5leHRDaGFyID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5hc3Rlcmlzaykge1xuICAgIHdpZHRoKys7XG4gICAgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDIpO1xuICAgIHRva2VuVHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuZXhwb25lbnQ7XG4gIH1cblxuICAvLyBNYXRjaCAqPSBvciAlPSwgZGlzYWxsb3dpbmcgKj0+IHdoaWNoIGNhbiBiZSB2YWxpZCBpbiBmbG93LlxuICBpZiAoXG4gICAgbmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvICYmXG4gICAgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAyKSAhPT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZ3JlYXRlclRoYW5cbiAgKSB7XG4gICAgd2lkdGgrKztcbiAgICB0b2tlblR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLmFzc2lnbjtcbiAgfVxuXG4gIGZpbmlzaE9wKHRva2VuVHlwZSwgd2lkdGgpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fcGlwZV9hbXAoY29kZSkge1xuICAvLyAnfCYnXG4gIGNvbnN0IG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKTtcblxuICBpZiAobmV4dENoYXIgPT09IGNvZGUpIHtcbiAgICBpZiAoX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAyKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICAgIC8vIHx8PSBvciAmJj1cbiAgICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuYXNzaWduLCAzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gfHwgb3IgJiZcbiAgICAgIGZpbmlzaE9wKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnZlcnRpY2FsQmFyID8gX3R5cGVzLlRva2VuVHlwZS5sb2dpY2FsT1IgOiBfdHlwZXMuVG9rZW5UeXBlLmxvZ2ljYWxBTkQsIDIpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudmVydGljYWxCYXIpIHtcbiAgICAvLyAnfD4nXG4gICAgaWYgKG5leHRDaGFyID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5ncmVhdGVyVGhhbikge1xuICAgICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5waXBlbGluZSwgMik7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMucmlnaHRDdXJseUJyYWNlICYmIF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICAgIC8vICd8fSdcbiAgICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VCYXJSLCAyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5hc3NpZ24sIDIpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZpbmlzaE9wKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnZlcnRpY2FsQmFyID8gX3R5cGVzLlRva2VuVHlwZS5iaXR3aXNlT1IgOiBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VBTkQsIDEpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fY2FyZXQoKSB7XG4gIC8vICdeJ1xuICBjb25zdCBuZXh0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSk7XG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLmFzc2lnbiwgMik7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5iaXR3aXNlWE9SLCAxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fcGx1c19taW4oY29kZSkge1xuICAvLyAnKy0nXG4gIGNvbnN0IG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKTtcblxuICBpZiAobmV4dENoYXIgPT09IGNvZGUpIHtcbiAgICAvLyBUZW50YXRpdmVseSBjYWxsIHRoaXMgYSBwcmVmaXggb3BlcmF0b3IsIGJ1dCBpdCBtaWdodCBiZSBjaGFuZ2VkIHRvIHBvc3RmaXggbGF0ZXIuXG4gICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5wcmVJbmNEZWMsIDIpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLmFzc2lnbiwgMik7XG4gIH0gZWxzZSBpZiAoY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMucGx1c1NpZ24pIHtcbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLnBsdXMsIDEpO1xuICB9IGVsc2Uge1xuICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUubWludXMsIDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9sdCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpO1xuXG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGVzc1RoYW4pIHtcbiAgICBpZiAoX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAyKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuYXNzaWduLCAzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gV2Ugc2VlIDw8LCBidXQgbmVlZCB0byBiZSByZWFsbHkgY2FyZWZ1bCBhYm91dCB3aGV0aGVyIHRvIHRyZWF0IGl0IGFzIGFcbiAgICAvLyB0cnVlIGxlZnQtc2hpZnQgb3IgYXMgdHdvIDwgdG9rZW5zLlxuICAgIGlmIChfYmFzZS5zdGF0ZS5pc1R5cGUpIHtcbiAgICAgIC8vIFdpdGhpbiBhIHR5cGUsIDw8IG1pZ2h0IGNvbWUgdXAgaW4gYSBzbmlwcGV0IGxpa2UgYEFycmF5PDxUPigpID0+IHZvaWQ+YCxcbiAgICAgIC8vIHNvIHRyZWF0IGl0IGFzIHR3byA8IHRva2Vucy4gSW1wb3J0YW50bHksIHRoaXMgc2hvdWxkIG9ubHkgb3ZlcnJpZGUgPDxcbiAgICAgIC8vIHJhdGhlciB0aGFuIG90aGVyIHRva2VucyBsaWtlIDw9IC4gSWYgd2UgdHJlYXRlZCA8PSBhcyA8IGluIGEgdHlwZVxuICAgICAgLy8gY29udGV4dCwgdGhlbiB0aGUgc25pcHBldCBgYSBhcyBUIDw9IDFgIHdvdWxkIGluY29ycmVjdGx5IHN0YXJ0IHBhcnNpbmdcbiAgICAgIC8vIGEgdHlwZSBhcmd1bWVudCBvbiBULiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGBhIGFzIFQgPDwgMWBcbiAgICAgIC8vIGJlY2F1c2UgVHlwZVNjcmlwdCBkaXNhbGxvd3MgdGhhdCBzeW50YXguXG4gICAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3V0c2lkZSBhIHR5cGUsIHRoaXMgbWlnaHQgYmUgYSB0cnVlIGxlZnQtc2hpZnQgb3BlcmF0b3IsIG9yIGl0IG1pZ2h0XG4gICAgICAvLyBzdGlsbCBiZSB0d28gb3Blbi10eXBlLWFyZyB0b2tlbnMsIHN1Y2ggYXMgaW4gYGY8PFQ+KCkgPT4gdm9pZD4oKWAuIFdlXG4gICAgICAvLyBsb29rIGF0IHRoZSB0b2tlbiB3aGlsZSBjb25zaWRlcmluZyB0aGUgYGZgLCBzbyB3ZSBkb24ndCB5ZXQga25vdyB0aGF0XG4gICAgICAvLyB3ZSdyZSBpbiBhIHR5cGUgY29udGV4dC4gSW4gdGhpcyBjYXNlLCB3ZSBpbml0aWFsbHkgdG9rZW5pemUgYXMgYVxuICAgICAgLy8gbGVmdC1zaGlmdCBhbmQgY29ycmVjdCBhZnRlci10aGUtZmFjdCBhcyBuZWNlc3NhcnkgaW5cbiAgICAgIC8vIHRzUGFyc2VUeXBlQXJndW1lbnRzV2l0aFBvc3NpYmxlQml0c2hpZnQgLlxuICAgICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5iaXRTaGlmdEwsIDIpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgLy8gPD1cbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLnJlbGF0aW9uYWxPckVxdWFsLCAyKTtcbiAgfSBlbHNlIHtcbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuLCAxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fZ3QoKSB7XG4gIGlmIChfYmFzZS5zdGF0ZS5pc1R5cGUpIHtcbiAgICAvLyBBdm9pZCByaWdodC1zaGlmdCBmb3IgdGhpbmdzIGxpa2UgYEFycmF5PEFycmF5PHN0cmluZz4+YCBhbmRcbiAgICAvLyBncmVhdGVyLXRoYW4tb3ItZXF1YWwgZm9yIHRoaW5ncyBsaWtlIGBjb25zdCBhOiBBcnJheTxudW1iZXI+PVtdO2AuXG4gICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5ncmVhdGVyVGhhbiwgMSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpO1xuXG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICBjb25zdCBzaXplID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAyKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZ3JlYXRlclRoYW4gPyAzIDogMjtcbiAgICBpZiAoX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyBzaXplKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuYXNzaWduLCBzaXplICsgMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuYml0U2hpZnRSLCBzaXplKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgLy8gPj1cbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLnJlbGF0aW9uYWxPckVxdWFsLCAyKTtcbiAgfSBlbHNlIHtcbiAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuLCAxKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlaW50ZXJwcmV0IGEgcG9zc2libGUgPiB0b2tlbiB3aGVuIHRyYW5zaXRpb25pbmcgZnJvbSBhIHR5cGUgdG8gYSBub24tdHlwZVxuICogY29udGV4dC5cbiAqXG4gKiBUaGlzIGNvbWVzIHVwIGluIHR3byBzaXR1YXRpb25zIHdoZXJlID49IG5lZWRzIHRvIGJlIHRyZWF0ZWQgYXMgb25lIHRva2VuOlxuICogLSBBZnRlciBhbiBgYXNgIGV4cHJlc3Npb24sIGxpa2UgaW4gdGhlIGNvZGUgYGEgYXMgVCA+PSAxYC5cbiAqIC0gSW4gYSB0eXBlIGFyZ3VtZW50IGluIGFuIGV4cHJlc3Npb24gY29udGV4dCwgZS5nLiBgZihhIDwgYiwgYyA+PSBkKWAsIHdlXG4gKiAgIG5lZWQgdG8gc2VlIHRoZSB0b2tlbiBhcyA+PSBzbyB0aGF0IHdlIGdldCBhbiBlcnJvciBhbmQgYmFja3RyYWNrIHRvXG4gKiAgIG5vcm1hbCBleHByZXNzaW9uIHBhcnNpbmcuXG4gKlxuICogT3RoZXIgc2l0dWF0aW9ucyByZXF1aXJlID49IHRvIGJlIHNlZW4gYXMgdHdvIHRva2VucywgZS5nLlxuICogYGNvbnN0IHg6IEFycmF5PFQ+PVtdO2AsIHNvIGl0J3MgaW1wb3J0YW50IHRvIHRyZWF0ID4gYXMgaXRzIG93biB0b2tlbiBpblxuICogdHlwaWNhbCB0eXBlIHBhcnNpbmcgc2l0dWF0aW9ucy5cbiAqL1xuIGZ1bmN0aW9uIHJlc2Nhbl9ndCgpIHtcbiAgaWYgKF9iYXNlLnN0YXRlLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4pIHtcbiAgICBfYmFzZS5zdGF0ZS5wb3MgLT0gMTtcbiAgICByZWFkVG9rZW5fZ3QoKTtcbiAgfVxufSBleHBvcnRzLnJlc2Nhbl9ndCA9IHJlc2Nhbl9ndDtcblxuZnVuY3Rpb24gcmVhZFRva2VuX2VxX2V4Y2woY29kZSkge1xuICAvLyAnPSEnXG4gIGNvbnN0IG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKTtcbiAgaWYgKG5leHRDaGFyID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuZXF1YWxpdHksIF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMikgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvID8gMyA6IDIpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG8gJiYgbmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmdyZWF0ZXJUaGFuKSB7XG4gICAgLy8gJz0+J1xuICAgIF9iYXNlLnN0YXRlLnBvcyArPSAyO1xuICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuYXJyb3cpO1xuICAgIHJldHVybjtcbiAgfVxuICBmaW5pc2hPcChjb2RlID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5lcXVhbHNUbyA/IF90eXBlcy5Ub2tlblR5cGUuZXEgOiBfdHlwZXMuVG9rZW5UeXBlLmJhbmcsIDEpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fcXVlc3Rpb24oKSB7XG4gIC8vICc/J1xuICBjb25zdCBuZXh0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSk7XG4gIGNvbnN0IG5leHRDaGFyMiA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMik7XG4gIGlmIChcbiAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMucXVlc3Rpb25NYXJrICYmXG4gICAgLy8gSW4gRmxvdyAoYnV0IG5vdCBUeXBlU2NyaXB0KSwgPz9zdHJpbmcgaXMgYSB2YWxpZCB0eXBlIHRoYXQgc2hvdWxkIGJlXG4gICAgLy8gdG9rZW5pemVkIGFzIHR3byBpbmRpdmlkdWFsID8gdG9rZW5zLlxuICAgICEoX2Jhc2UuaXNGbG93RW5hYmxlZCAmJiBfYmFzZS5zdGF0ZS5pc1R5cGUpXG4gICkge1xuICAgIGlmIChuZXh0Q2hhcjIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgICAvLyAnPz89J1xuICAgICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5hc3NpZ24sIDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyAnPz8nXG4gICAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLm51bGxpc2hDb2FsZXNjaW5nLCAyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXG4gICAgbmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmRvdCAmJlxuICAgICEobmV4dENoYXIyID49IF9jaGFyY29kZXMuY2hhckNvZGVzLmRpZ2l0MCAmJiBuZXh0Q2hhcjIgPD0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQ5KVxuICApIHtcbiAgICAvLyAnLicgbm90IGZvbGxvd2VkIGJ5IGEgbnVtYmVyXG4gICAgX2Jhc2Uuc3RhdGUucG9zICs9IDI7XG4gICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbkRvdCk7XG4gIH0gZWxzZSB7XG4gICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbik7XG4gIH1cbn1cblxuIGZ1bmN0aW9uIGdldFRva2VuRnJvbUNvZGUoY29kZSkge1xuICBzd2l0Y2ggKGNvZGUpIHtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLm51bWJlclNpZ246XG4gICAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuaGFzaCk7XG4gICAgICByZXR1cm47XG5cbiAgICAvLyBUaGUgaW50ZXJwcmV0YXRpb24gb2YgYSBkb3QgZGVwZW5kcyBvbiB3aGV0aGVyIGl0IGlzIGZvbGxvd2VkXG4gICAgLy8gYnkgYSBkaWdpdCBvciBhbm90aGVyIHR3byBkb3RzLlxuXG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kb3Q6XG4gICAgICByZWFkVG9rZW5fZG90KCk7XG4gICAgICByZXR1cm47XG5cbiAgICAvLyBQdW5jdHVhdGlvbiB0b2tlbnMuXG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZWZ0UGFyZW50aGVzaXM6XG4gICAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLnJpZ2h0UGFyZW50aGVzaXM6XG4gICAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLnNlbWljb2xvbjpcbiAgICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5zZW1pKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmNvbW1hOlxuICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmxlZnRTcXVhcmVCcmFja2V0OlxuICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldDpcbiAgICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFja2V0Uik7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlOlxuICAgICAgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQgJiYgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MgKyAxKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudmVydGljYWxCYXIpIHtcbiAgICAgICAgZmluaXNoT3AoX3R5cGVzLlRva2VuVHlwZS5icmFjZUJhckwsIDIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMucmlnaHRDdXJseUJyYWNlOlxuICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUik7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmNvbG9uOlxuICAgICAgaWYgKF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmNvbG9uKSB7XG4gICAgICAgIGZpbmlzaE9wKF90eXBlcy5Ub2tlblR5cGUuZG91YmxlQ29sb24sIDIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuY29sb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5xdWVzdGlvbk1hcms6XG4gICAgICByZWFkVG9rZW5fcXVlc3Rpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmF0U2lnbjpcbiAgICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5hdCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmdyYXZlQWNjZW50OlxuICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJhY2tRdW90ZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmRpZ2l0MDoge1xuICAgICAgY29uc3QgbmV4dENoYXIgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyArIDEpO1xuICAgICAgLy8gJzB4JywgJzBYJywgJzBvJywgJzBPJywgJzBiJywgJzBCJ1xuICAgICAgaWYgKFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlWCB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudXBwZXJjYXNlWCB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlTyB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudXBwZXJjYXNlTyB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlQiB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudXBwZXJjYXNlQlxuICAgICAgKSB7XG4gICAgICAgIHJlYWRSYWRpeE51bWJlcigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFueXRoaW5nIGVsc2UgYmVnaW5uaW5nIHdpdGggYSBkaWdpdCBpcyBhbiBpbnRlZ2VyLCBvY3RhbFxuICAgIC8vIG51bWJlciwgb3IgZmxvYXQuXG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDE6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDI6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDM6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDQ6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDU6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDY6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDc6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDg6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDk6XG4gICAgICByZWFkTnVtYmVyKGZhbHNlKTtcbiAgICAgIHJldHVybjtcblxuICAgIC8vIFF1b3RlcyBwcm9kdWNlIHN0cmluZ3MuXG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5xdW90YXRpb25NYXJrOlxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYXBvc3Ryb3BoZTpcbiAgICAgIHJlYWRTdHJpbmcoY29kZSk7XG4gICAgICByZXR1cm47XG5cbiAgICAvLyBPcGVyYXRvcnMgYXJlIHBhcnNlZCBpbmxpbmUgaW4gdGlueSBzdGF0ZSBtYWNoaW5lcy4gJz0nIChjaGFyQ29kZXMuZXF1YWxzVG8pIGlzXG4gICAgLy8gb2Z0ZW4gcmVmZXJyZWQgdG8uIGBmaW5pc2hPcGAgc2ltcGx5IHNraXBzIHRoZSBhbW91bnQgb2ZcbiAgICAvLyBjaGFyYWN0ZXJzIGl0IGlzIGdpdmVuIGFzIHNlY29uZCBhcmd1bWVudCwgYW5kIHJldHVybnMgYSB0b2tlblxuICAgIC8vIG9mIHRoZSB0eXBlIGdpdmVuIGJ5IGl0cyBmaXJzdCBhcmd1bWVudC5cblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuc2xhc2g6XG4gICAgICByZWFkVG9rZW5fc2xhc2goKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMucGVyY2VudFNpZ246XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5hc3RlcmlzazpcbiAgICAgIHJlYWRUb2tlbl9tdWx0X21vZHVsbyhjb2RlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMudmVydGljYWxCYXI6XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5hbXBlcnNhbmQ6XG4gICAgICByZWFkVG9rZW5fcGlwZV9hbXAoY29kZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLmNhcmV0OlxuICAgICAgcmVhZFRva2VuX2NhcmV0KCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLnBsdXNTaWduOlxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGFzaDpcbiAgICAgIHJlYWRUb2tlbl9wbHVzX21pbihjb2RlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGVzc1RoYW46XG4gICAgICByZWFkVG9rZW5fbHQoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZ3JlYXRlclRoYW46XG4gICAgICByZWFkVG9rZW5fZ3QoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG86XG4gICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5leGNsYW1hdGlvbk1hcms6XG4gICAgICByZWFkVG9rZW5fZXFfZXhjbChjb2RlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMudGlsZGU6XG4gICAgICBmaW5pc2hPcChfdHlwZXMuVG9rZW5UeXBlLnRpbGRlLCAxKTtcbiAgICAgIHJldHVybjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxuXG4gIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsIGBVbmV4cGVjdGVkIGNoYXJhY3RlciAnJHtTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpfSdgLCBfYmFzZS5zdGF0ZS5wb3MpO1xufSBleHBvcnRzLmdldFRva2VuRnJvbUNvZGUgPSBnZXRUb2tlbkZyb21Db2RlO1xuXG5mdW5jdGlvbiBmaW5pc2hPcCh0eXBlLCBzaXplKSB7XG4gIF9iYXNlLnN0YXRlLnBvcyArPSBzaXplO1xuICBmaW5pc2hUb2tlbih0eXBlKTtcbn1cblxuZnVuY3Rpb24gcmVhZFJlZ2V4cCgpIHtcbiAgY29uc3Qgc3RhcnQgPSBfYmFzZS5zdGF0ZS5wb3M7XG4gIGxldCBlc2NhcGVkID0gZmFsc2U7XG4gIGxldCBpbkNsYXNzID0gZmFsc2U7XG4gIGZvciAoOzspIHtcbiAgICBpZiAoX2Jhc2Uuc3RhdGUucG9zID49IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJVbnRlcm1pbmF0ZWQgcmVndWxhciBleHByZXNzaW9uXCIsIHN0YXJ0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29kZSA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgICBpZiAoZXNjYXBlZCkge1xuICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGVmdFNxdWFyZUJyYWNrZXQpIHtcbiAgICAgICAgaW5DbGFzcyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCAmJiBpbkNsYXNzKSB7XG4gICAgICAgIGluQ2xhc3MgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuc2xhc2ggJiYgIWluQ2xhc3MpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBlc2NhcGVkID0gY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYmFja3NsYXNoO1xuICAgIH1cbiAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgfVxuICArK19iYXNlLnN0YXRlLnBvcztcbiAgLy8gTmVlZCB0byB1c2UgYHNraXBXb3JkYCBiZWNhdXNlICdcXHVYWFhYJyBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgaGVyZSAoZG9uJ3QgYXNrKS5cbiAgc2tpcFdvcmQoKTtcblxuICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnJlZ2V4cCk7XG59XG5cbi8qKlxuICogUmVhZCBhIGRlY2ltYWwgaW50ZWdlci4gTm90ZSB0aGF0IHRoaXMgY2FuJ3QgYmUgdW5pZmllZCB3aXRoIHRoZSBzaW1pbGFyIGNvZGVcbiAqIGluIHJlYWRSYWRpeE51bWJlciAod2hpY2ggYWxzbyBoYW5kbGVzIGhleCBkaWdpdHMpIGJlY2F1c2UgXCJlXCIgbmVlZHMgdG8gYmVcbiAqIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgc28gdGhhdCB3ZSBjYW4gcHJvcGVybHkgaGFuZGxlIHNjaWVudGlmaWMgbm90YXRpb24uXG4gKi9cbmZ1bmN0aW9uIHJlYWRJbnQoKSB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgY29kZSA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgICBpZiAoKGNvZGUgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQwICYmIGNvZGUgPD0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQ5KSB8fCBjb2RlID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy51bmRlcnNjb3JlKSB7XG4gICAgICBfYmFzZS5zdGF0ZS5wb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRSYWRpeE51bWJlcigpIHtcbiAgX2Jhc2Uuc3RhdGUucG9zICs9IDI7IC8vIDB4XG5cbiAgLy8gV2FsayB0byB0aGUgZW5kIG9mIHRoZSBudW1iZXIsIGFsbG93aW5nIGhleCBkaWdpdHMuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgY29kZSA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgICBpZiAoXG4gICAgICAoY29kZSA+PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDAgJiYgY29kZSA8PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDkpIHx8XG4gICAgICAoY29kZSA+PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sb3dlcmNhc2VBICYmIGNvZGUgPD0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlRikgfHxcbiAgICAgIChjb2RlID49IF9jaGFyY29kZXMuY2hhckNvZGVzLnVwcGVyY2FzZUEgJiYgY29kZSA8PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy51cHBlcmNhc2VGKSB8fFxuICAgICAgY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudW5kZXJzY29yZVxuICAgICkge1xuICAgICAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxvd2VyY2FzZU4pIHtcbiAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJpZ2ludCk7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5udW0pO1xuICB9XG59XG5cbi8vIFJlYWQgYW4gaW50ZWdlciwgb2N0YWwgaW50ZWdlciwgb3IgZmxvYXRpbmctcG9pbnQgbnVtYmVyLlxuZnVuY3Rpb24gcmVhZE51bWJlcihzdGFydHNXaXRoRG90KSB7XG4gIGxldCBpc0JpZ0ludCA9IGZhbHNlO1xuICBsZXQgaXNEZWNpbWFsID0gZmFsc2U7XG5cbiAgaWYgKCFzdGFydHNXaXRoRG90KSB7XG4gICAgcmVhZEludCgpO1xuICB9XG5cbiAgbGV0IG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICBpZiAobmV4dENoYXIgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmRvdCkge1xuICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgIHJlYWRJbnQoKTtcbiAgICBuZXh0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudXBwZXJjYXNlRSB8fCBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlRSkge1xuICAgIG5leHRDaGFyID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdCgrK19iYXNlLnN0YXRlLnBvcyk7XG4gICAgaWYgKG5leHRDaGFyID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5wbHVzU2lnbiB8fCBuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGFzaCkge1xuICAgICAgKytfYmFzZS5zdGF0ZS5wb3M7XG4gICAgfVxuICAgIHJlYWRJbnQoKTtcbiAgICBuZXh0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlTikge1xuICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgIGlzQmlnSW50ID0gdHJ1ZTtcbiAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlTSkge1xuICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgIGlzRGVjaW1hbCA9IHRydWU7XG4gIH1cblxuICBpZiAoaXNCaWdJbnQpIHtcbiAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJpZ2ludCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGlzRGVjaW1hbCkge1xuICAgIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuZGVjaW1hbCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5udW0pO1xufVxuXG5mdW5jdGlvbiByZWFkU3RyaW5nKHF1b3RlKSB7XG4gIF9iYXNlLnN0YXRlLnBvcysrO1xuICBmb3IgKDs7KSB7XG4gICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA+PSBfYmFzZS5pbnB1dC5sZW5ndGgpIHtcbiAgICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsIFwiVW50ZXJtaW5hdGVkIHN0cmluZyBjb25zdGFudFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2ggPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyk7XG4gICAgaWYgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICAgIH0gZWxzZSBpZiAoY2ggPT09IHF1b3RlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gIH1cbiAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gIGZpbmlzaFRva2VuKF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKTtcbn1cblxuLy8gUmVhZHMgdGVtcGxhdGUgc3RyaW5nIHRva2Vucy5cbmZ1bmN0aW9uIHJlYWRUbXBsVG9rZW4oKSB7XG4gIGZvciAoOzspIHtcbiAgICBpZiAoX2Jhc2Uuc3RhdGUucG9zID49IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJVbnRlcm1pbmF0ZWQgdGVtcGxhdGVcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNoID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICAgIGlmIChcbiAgICAgIGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5ncmF2ZUFjY2VudCB8fFxuICAgICAgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kb2xsYXJTaWduICYmIF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zICsgMSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlKVxuICAgICkge1xuICAgICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA9PT0gX2Jhc2Uuc3RhdGUuc3RhcnQgJiYgbWF0Y2goX3R5cGVzLlRva2VuVHlwZS50ZW1wbGF0ZSkpIHtcbiAgICAgICAgaWYgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kb2xsYXJTaWduKSB7XG4gICAgICAgICAgX2Jhc2Uuc3RhdGUucG9zICs9IDI7XG4gICAgICAgICAgZmluaXNoVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5kb2xsYXJCcmFjZUwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICArK19iYXNlLnN0YXRlLnBvcztcbiAgICAgICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJhY2tRdW90ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmaW5pc2hUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnRlbXBsYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICAgIH1cbiAgICBfYmFzZS5zdGF0ZS5wb3MrKztcbiAgfVxufVxuXG4vLyBTa2lwIHRvIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgd29yZC4gTm90ZSB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIHNuaXBwZXQgYXQgdGhlIGVuZCBvZlxuLy8gcmVhZFdvcmQsIGJ1dCBjYWxsaW5nIHNraXBXb3JkIGZyb20gcmVhZFdvcmQgc2VlbXMgdG8gc2xpZ2h0bHkgaHVydCBwZXJmb3JtYW5jZSBmcm9tIHNvbWUgcm91Z2hcbi8vIG1lYXN1cmVtZW50cy5cbiBmdW5jdGlvbiBza2lwV29yZCgpIHtcbiAgd2hpbGUgKF9iYXNlLnN0YXRlLnBvcyA8IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgIGNvbnN0IGNoID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICAgIGlmIChfaWRlbnRpZmllci5JU19JREVOVElGSUVSX0NIQVJbY2hdKSB7XG4gICAgICBfYmFzZS5zdGF0ZS5wb3MrKztcbiAgICB9IGVsc2UgaWYgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIC8vIFxcdVxuICAgICAgX2Jhc2Uuc3RhdGUucG9zICs9IDI7XG4gICAgICBpZiAoX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZWZ0Q3VybHlCcmFjZSkge1xuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgX2Jhc2Uuc3RhdGUucG9zIDwgX2Jhc2UuaW5wdXQubGVuZ3RoICYmXG4gICAgICAgICAgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpICE9PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5yaWdodEN1cmx5QnJhY2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufSBleHBvcnRzLnNraXBXb3JkID0gc2tpcFdvcmQ7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vKipcbiAqIERldGVybWluZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIG5hbWVkIGltcG9ydCBvciBuYW1lZCBleHBvcnQgc3BlY2lmaWVyLlxuICpcbiAqIFRoaXMgc3ludGF4IGlzIHRoZSBgYWAgZnJvbSBzdGF0ZW1lbnRzIGxpa2UgdGhlc2U6XG4gKiBpbXBvcnQge0F9IGZyb20gXCIuL2Zvb1wiO1xuICogZXhwb3J0IHtBfTtcbiAqIGV4cG9ydCB7QX0gZnJvbSBcIi4vZm9vXCI7XG4gKlxuICogQXMgaXQgdHVybnMgb3V0LCB3ZSBjYW4gZXhhY3RseSBjaGFyYWN0ZXJpemUgdGhlIHN5bnRheCBtZWFuaW5nIGJ5IHNpbXBseVxuICogY291bnRpbmcgdGhlIG51bWJlciBvZiB0b2tlbnMsIHdoaWNoIGNhbiBiZSBmcm9tIDEgdG8gNDpcbiAqIHtBfVxuICoge3R5cGUgQX1cbiAqIHtBIGFzIEJ9XG4gKiB7dHlwZSBBIGFzIEJ9XG4gKlxuICogSW4gdGhlIHR5cGUgY2FzZSwgd2UgbmV2ZXIgYWN0dWFsbHkgbmVlZCB0aGUgbmFtZXMgaW4gcHJhY3RpY2UsIHNvIGRvbid0IGdldFxuICogdGhlbS5cbiAqXG4gKiBUT0RPOiBUaGVyZSdzIHNvbWUgcmVkdW5kYW5jeSB3aXRoIHRoZSB0eXBlIGRldGVjdGlvbiBoZXJlIGFuZCB0aGUgaXNUeXBlXG4gKiBmbGFnIHRoYXQncyBhbHJlYWR5IHByZXNlbnQgb24gdG9rZW5zIGluIFRTIG1vZGUuIFRoaXMgZnVuY3Rpb24gY291bGRcbiAqIHBvdGVudGlhbGx5IGJlIHNpbXBsaWZpZWQgYW5kL29yIHB1c2hlZCB0byB0aGUgY2FsbCBzaXRlcyB0byBhdm9pZCB0aGUgb2JqZWN0XG4gKiBhbGxvY2F0aW9uLlxuICovXG4gZnVuY3Rpb24gZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyhcbiAgdG9rZW5zLFxuICBpbmRleCA9IHRva2Vucy5jdXJyZW50SW5kZXgoKSxcbikge1xuICBsZXQgZW5kSW5kZXggPSBpbmRleCArIDE7XG4gIGlmIChpc1NwZWNpZmllckVuZCh0b2tlbnMsIGVuZEluZGV4KSkge1xuICAgIC8vIGltcG9ydCB7QX1cbiAgICBjb25zdCBuYW1lID0gdG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVHlwZTogZmFsc2UsXG4gICAgICBsZWZ0TmFtZTogbmFtZSxcbiAgICAgIHJpZ2h0TmFtZTogbmFtZSxcbiAgICAgIGVuZEluZGV4LFxuICAgIH07XG4gIH1cbiAgZW5kSW5kZXgrKztcbiAgaWYgKGlzU3BlY2lmaWVyRW5kKHRva2VucywgZW5kSW5kZXgpKSB7XG4gICAgLy8gaW1wb3J0IHt0eXBlIEF9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVHlwZTogdHJ1ZSxcbiAgICAgIGxlZnROYW1lOiBudWxsLFxuICAgICAgcmlnaHROYW1lOiBudWxsLFxuICAgICAgZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuICBlbmRJbmRleCsrO1xuICBpZiAoaXNTcGVjaWZpZXJFbmQodG9rZW5zLCBlbmRJbmRleCkpIHtcbiAgICAvLyBpbXBvcnQge0EgYXMgQn1cbiAgICByZXR1cm4ge1xuICAgICAgaXNUeXBlOiBmYWxzZSxcbiAgICAgIGxlZnROYW1lOiB0b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4KSxcbiAgICAgIHJpZ2h0TmFtZTogdG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCArIDIpLFxuICAgICAgZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuICBlbmRJbmRleCsrO1xuICBpZiAoaXNTcGVjaWZpZXJFbmQodG9rZW5zLCBlbmRJbmRleCkpIHtcbiAgICAvLyBpbXBvcnQge3R5cGUgQSBhcyBCfVxuICAgIHJldHVybiB7XG4gICAgICBpc1R5cGU6IHRydWUsXG4gICAgICBsZWZ0TmFtZTogbnVsbCxcbiAgICAgIHJpZ2h0TmFtZTogbnVsbCxcbiAgICAgIGVuZEluZGV4LFxuICAgIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGltcG9ydC9leHBvcnQgc3BlY2lmaWVyIGF0ICR7aW5kZXh9YCk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGdldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm87XG5cbmZ1bmN0aW9uIGlzU3BlY2lmaWVyRW5kKHRva2VucywgaW5kZXgpIHtcbiAgY29uc3QgdG9rZW4gPSB0b2tlbnMudG9rZW5zW2luZGV4XTtcbiAgcmV0dXJuIHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSIHx8IHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuY29tbWE7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsvLyBVc2UgYSBNYXAgcmF0aGVyIHRoYW4gb2JqZWN0IHRvIGF2b2lkIHVuZXhwZWN0ZWQgX19wcm90b19fIGFjY2Vzcy5cbmV4cG9ydHMuIGRlZmF1bHQgPSBuZXcgTWFwKFtcbiAgW1wicXVvdFwiLCBcIlxcdTAwMjJcIl0sXG4gIFtcImFtcFwiLCBcIiZcIl0sXG4gIFtcImFwb3NcIiwgXCJcXHUwMDI3XCJdLFxuICBbXCJsdFwiLCBcIjxcIl0sXG4gIFtcImd0XCIsIFwiPlwiXSxcbiAgW1wibmJzcFwiLCBcIlxcdTAwQTBcIl0sXG4gIFtcImlleGNsXCIsIFwiXFx1MDBBMVwiXSxcbiAgW1wiY2VudFwiLCBcIlxcdTAwQTJcIl0sXG4gIFtcInBvdW5kXCIsIFwiXFx1MDBBM1wiXSxcbiAgW1wiY3VycmVuXCIsIFwiXFx1MDBBNFwiXSxcbiAgW1wieWVuXCIsIFwiXFx1MDBBNVwiXSxcbiAgW1wiYnJ2YmFyXCIsIFwiXFx1MDBBNlwiXSxcbiAgW1wic2VjdFwiLCBcIlxcdTAwQTdcIl0sXG4gIFtcInVtbFwiLCBcIlxcdTAwQThcIl0sXG4gIFtcImNvcHlcIiwgXCJcXHUwMEE5XCJdLFxuICBbXCJvcmRmXCIsIFwiXFx1MDBBQVwiXSxcbiAgW1wibGFxdW9cIiwgXCJcXHUwMEFCXCJdLFxuICBbXCJub3RcIiwgXCJcXHUwMEFDXCJdLFxuICBbXCJzaHlcIiwgXCJcXHUwMEFEXCJdLFxuICBbXCJyZWdcIiwgXCJcXHUwMEFFXCJdLFxuICBbXCJtYWNyXCIsIFwiXFx1MDBBRlwiXSxcbiAgW1wiZGVnXCIsIFwiXFx1MDBCMFwiXSxcbiAgW1wicGx1c21uXCIsIFwiXFx1MDBCMVwiXSxcbiAgW1wic3VwMlwiLCBcIlxcdTAwQjJcIl0sXG4gIFtcInN1cDNcIiwgXCJcXHUwMEIzXCJdLFxuICBbXCJhY3V0ZVwiLCBcIlxcdTAwQjRcIl0sXG4gIFtcIm1pY3JvXCIsIFwiXFx1MDBCNVwiXSxcbiAgW1wicGFyYVwiLCBcIlxcdTAwQjZcIl0sXG4gIFtcIm1pZGRvdFwiLCBcIlxcdTAwQjdcIl0sXG4gIFtcImNlZGlsXCIsIFwiXFx1MDBCOFwiXSxcbiAgW1wic3VwMVwiLCBcIlxcdTAwQjlcIl0sXG4gIFtcIm9yZG1cIiwgXCJcXHUwMEJBXCJdLFxuICBbXCJyYXF1b1wiLCBcIlxcdTAwQkJcIl0sXG4gIFtcImZyYWMxNFwiLCBcIlxcdTAwQkNcIl0sXG4gIFtcImZyYWMxMlwiLCBcIlxcdTAwQkRcIl0sXG4gIFtcImZyYWMzNFwiLCBcIlxcdTAwQkVcIl0sXG4gIFtcImlxdWVzdFwiLCBcIlxcdTAwQkZcIl0sXG4gIFtcIkFncmF2ZVwiLCBcIlxcdTAwQzBcIl0sXG4gIFtcIkFhY3V0ZVwiLCBcIlxcdTAwQzFcIl0sXG4gIFtcIkFjaXJjXCIsIFwiXFx1MDBDMlwiXSxcbiAgW1wiQXRpbGRlXCIsIFwiXFx1MDBDM1wiXSxcbiAgW1wiQXVtbFwiLCBcIlxcdTAwQzRcIl0sXG4gIFtcIkFyaW5nXCIsIFwiXFx1MDBDNVwiXSxcbiAgW1wiQUVsaWdcIiwgXCJcXHUwMEM2XCJdLFxuICBbXCJDY2VkaWxcIiwgXCJcXHUwMEM3XCJdLFxuICBbXCJFZ3JhdmVcIiwgXCJcXHUwMEM4XCJdLFxuICBbXCJFYWN1dGVcIiwgXCJcXHUwMEM5XCJdLFxuICBbXCJFY2lyY1wiLCBcIlxcdTAwQ0FcIl0sXG4gIFtcIkV1bWxcIiwgXCJcXHUwMENCXCJdLFxuICBbXCJJZ3JhdmVcIiwgXCJcXHUwMENDXCJdLFxuICBbXCJJYWN1dGVcIiwgXCJcXHUwMENEXCJdLFxuICBbXCJJY2lyY1wiLCBcIlxcdTAwQ0VcIl0sXG4gIFtcIkl1bWxcIiwgXCJcXHUwMENGXCJdLFxuICBbXCJFVEhcIiwgXCJcXHUwMEQwXCJdLFxuICBbXCJOdGlsZGVcIiwgXCJcXHUwMEQxXCJdLFxuICBbXCJPZ3JhdmVcIiwgXCJcXHUwMEQyXCJdLFxuICBbXCJPYWN1dGVcIiwgXCJcXHUwMEQzXCJdLFxuICBbXCJPY2lyY1wiLCBcIlxcdTAwRDRcIl0sXG4gIFtcIk90aWxkZVwiLCBcIlxcdTAwRDVcIl0sXG4gIFtcIk91bWxcIiwgXCJcXHUwMEQ2XCJdLFxuICBbXCJ0aW1lc1wiLCBcIlxcdTAwRDdcIl0sXG4gIFtcIk9zbGFzaFwiLCBcIlxcdTAwRDhcIl0sXG4gIFtcIlVncmF2ZVwiLCBcIlxcdTAwRDlcIl0sXG4gIFtcIlVhY3V0ZVwiLCBcIlxcdTAwREFcIl0sXG4gIFtcIlVjaXJjXCIsIFwiXFx1MDBEQlwiXSxcbiAgW1wiVXVtbFwiLCBcIlxcdTAwRENcIl0sXG4gIFtcIllhY3V0ZVwiLCBcIlxcdTAwRERcIl0sXG4gIFtcIlRIT1JOXCIsIFwiXFx1MDBERVwiXSxcbiAgW1wic3psaWdcIiwgXCJcXHUwMERGXCJdLFxuICBbXCJhZ3JhdmVcIiwgXCJcXHUwMEUwXCJdLFxuICBbXCJhYWN1dGVcIiwgXCJcXHUwMEUxXCJdLFxuICBbXCJhY2lyY1wiLCBcIlxcdTAwRTJcIl0sXG4gIFtcImF0aWxkZVwiLCBcIlxcdTAwRTNcIl0sXG4gIFtcImF1bWxcIiwgXCJcXHUwMEU0XCJdLFxuICBbXCJhcmluZ1wiLCBcIlxcdTAwRTVcIl0sXG4gIFtcImFlbGlnXCIsIFwiXFx1MDBFNlwiXSxcbiAgW1wiY2NlZGlsXCIsIFwiXFx1MDBFN1wiXSxcbiAgW1wiZWdyYXZlXCIsIFwiXFx1MDBFOFwiXSxcbiAgW1wiZWFjdXRlXCIsIFwiXFx1MDBFOVwiXSxcbiAgW1wiZWNpcmNcIiwgXCJcXHUwMEVBXCJdLFxuICBbXCJldW1sXCIsIFwiXFx1MDBFQlwiXSxcbiAgW1wiaWdyYXZlXCIsIFwiXFx1MDBFQ1wiXSxcbiAgW1wiaWFjdXRlXCIsIFwiXFx1MDBFRFwiXSxcbiAgW1wiaWNpcmNcIiwgXCJcXHUwMEVFXCJdLFxuICBbXCJpdW1sXCIsIFwiXFx1MDBFRlwiXSxcbiAgW1wiZXRoXCIsIFwiXFx1MDBGMFwiXSxcbiAgW1wibnRpbGRlXCIsIFwiXFx1MDBGMVwiXSxcbiAgW1wib2dyYXZlXCIsIFwiXFx1MDBGMlwiXSxcbiAgW1wib2FjdXRlXCIsIFwiXFx1MDBGM1wiXSxcbiAgW1wib2NpcmNcIiwgXCJcXHUwMEY0XCJdLFxuICBbXCJvdGlsZGVcIiwgXCJcXHUwMEY1XCJdLFxuICBbXCJvdW1sXCIsIFwiXFx1MDBGNlwiXSxcbiAgW1wiZGl2aWRlXCIsIFwiXFx1MDBGN1wiXSxcbiAgW1wib3NsYXNoXCIsIFwiXFx1MDBGOFwiXSxcbiAgW1widWdyYXZlXCIsIFwiXFx1MDBGOVwiXSxcbiAgW1widWFjdXRlXCIsIFwiXFx1MDBGQVwiXSxcbiAgW1widWNpcmNcIiwgXCJcXHUwMEZCXCJdLFxuICBbXCJ1dW1sXCIsIFwiXFx1MDBGQ1wiXSxcbiAgW1wieWFjdXRlXCIsIFwiXFx1MDBGRFwiXSxcbiAgW1widGhvcm5cIiwgXCJcXHUwMEZFXCJdLFxuICBbXCJ5dW1sXCIsIFwiXFx1MDBGRlwiXSxcbiAgW1wiT0VsaWdcIiwgXCJcXHUwMTUyXCJdLFxuICBbXCJvZWxpZ1wiLCBcIlxcdTAxNTNcIl0sXG4gIFtcIlNjYXJvblwiLCBcIlxcdTAxNjBcIl0sXG4gIFtcInNjYXJvblwiLCBcIlxcdTAxNjFcIl0sXG4gIFtcIll1bWxcIiwgXCJcXHUwMTc4XCJdLFxuICBbXCJmbm9mXCIsIFwiXFx1MDE5MlwiXSxcbiAgW1wiY2lyY1wiLCBcIlxcdTAyQzZcIl0sXG4gIFtcInRpbGRlXCIsIFwiXFx1MDJEQ1wiXSxcbiAgW1wiQWxwaGFcIiwgXCJcXHUwMzkxXCJdLFxuICBbXCJCZXRhXCIsIFwiXFx1MDM5MlwiXSxcbiAgW1wiR2FtbWFcIiwgXCJcXHUwMzkzXCJdLFxuICBbXCJEZWx0YVwiLCBcIlxcdTAzOTRcIl0sXG4gIFtcIkVwc2lsb25cIiwgXCJcXHUwMzk1XCJdLFxuICBbXCJaZXRhXCIsIFwiXFx1MDM5NlwiXSxcbiAgW1wiRXRhXCIsIFwiXFx1MDM5N1wiXSxcbiAgW1wiVGhldGFcIiwgXCJcXHUwMzk4XCJdLFxuICBbXCJJb3RhXCIsIFwiXFx1MDM5OVwiXSxcbiAgW1wiS2FwcGFcIiwgXCJcXHUwMzlBXCJdLFxuICBbXCJMYW1iZGFcIiwgXCJcXHUwMzlCXCJdLFxuICBbXCJNdVwiLCBcIlxcdTAzOUNcIl0sXG4gIFtcIk51XCIsIFwiXFx1MDM5RFwiXSxcbiAgW1wiWGlcIiwgXCJcXHUwMzlFXCJdLFxuICBbXCJPbWljcm9uXCIsIFwiXFx1MDM5RlwiXSxcbiAgW1wiUGlcIiwgXCJcXHUwM0EwXCJdLFxuICBbXCJSaG9cIiwgXCJcXHUwM0ExXCJdLFxuICBbXCJTaWdtYVwiLCBcIlxcdTAzQTNcIl0sXG4gIFtcIlRhdVwiLCBcIlxcdTAzQTRcIl0sXG4gIFtcIlVwc2lsb25cIiwgXCJcXHUwM0E1XCJdLFxuICBbXCJQaGlcIiwgXCJcXHUwM0E2XCJdLFxuICBbXCJDaGlcIiwgXCJcXHUwM0E3XCJdLFxuICBbXCJQc2lcIiwgXCJcXHUwM0E4XCJdLFxuICBbXCJPbWVnYVwiLCBcIlxcdTAzQTlcIl0sXG4gIFtcImFscGhhXCIsIFwiXFx1MDNCMVwiXSxcbiAgW1wiYmV0YVwiLCBcIlxcdTAzQjJcIl0sXG4gIFtcImdhbW1hXCIsIFwiXFx1MDNCM1wiXSxcbiAgW1wiZGVsdGFcIiwgXCJcXHUwM0I0XCJdLFxuICBbXCJlcHNpbG9uXCIsIFwiXFx1MDNCNVwiXSxcbiAgW1wiemV0YVwiLCBcIlxcdTAzQjZcIl0sXG4gIFtcImV0YVwiLCBcIlxcdTAzQjdcIl0sXG4gIFtcInRoZXRhXCIsIFwiXFx1MDNCOFwiXSxcbiAgW1wiaW90YVwiLCBcIlxcdTAzQjlcIl0sXG4gIFtcImthcHBhXCIsIFwiXFx1MDNCQVwiXSxcbiAgW1wibGFtYmRhXCIsIFwiXFx1MDNCQlwiXSxcbiAgW1wibXVcIiwgXCJcXHUwM0JDXCJdLFxuICBbXCJudVwiLCBcIlxcdTAzQkRcIl0sXG4gIFtcInhpXCIsIFwiXFx1MDNCRVwiXSxcbiAgW1wib21pY3JvblwiLCBcIlxcdTAzQkZcIl0sXG4gIFtcInBpXCIsIFwiXFx1MDNDMFwiXSxcbiAgW1wicmhvXCIsIFwiXFx1MDNDMVwiXSxcbiAgW1wic2lnbWFmXCIsIFwiXFx1MDNDMlwiXSxcbiAgW1wic2lnbWFcIiwgXCJcXHUwM0MzXCJdLFxuICBbXCJ0YXVcIiwgXCJcXHUwM0M0XCJdLFxuICBbXCJ1cHNpbG9uXCIsIFwiXFx1MDNDNVwiXSxcbiAgW1wicGhpXCIsIFwiXFx1MDNDNlwiXSxcbiAgW1wiY2hpXCIsIFwiXFx1MDNDN1wiXSxcbiAgW1wicHNpXCIsIFwiXFx1MDNDOFwiXSxcbiAgW1wib21lZ2FcIiwgXCJcXHUwM0M5XCJdLFxuICBbXCJ0aGV0YXN5bVwiLCBcIlxcdTAzRDFcIl0sXG4gIFtcInVwc2loXCIsIFwiXFx1MDNEMlwiXSxcbiAgW1wicGl2XCIsIFwiXFx1MDNENlwiXSxcbiAgW1wiZW5zcFwiLCBcIlxcdTIwMDJcIl0sXG4gIFtcImVtc3BcIiwgXCJcXHUyMDAzXCJdLFxuICBbXCJ0aGluc3BcIiwgXCJcXHUyMDA5XCJdLFxuICBbXCJ6d25qXCIsIFwiXFx1MjAwQ1wiXSxcbiAgW1wiendqXCIsIFwiXFx1MjAwRFwiXSxcbiAgW1wibHJtXCIsIFwiXFx1MjAwRVwiXSxcbiAgW1wicmxtXCIsIFwiXFx1MjAwRlwiXSxcbiAgW1wibmRhc2hcIiwgXCJcXHUyMDEzXCJdLFxuICBbXCJtZGFzaFwiLCBcIlxcdTIwMTRcIl0sXG4gIFtcImxzcXVvXCIsIFwiXFx1MjAxOFwiXSxcbiAgW1wicnNxdW9cIiwgXCJcXHUyMDE5XCJdLFxuICBbXCJzYnF1b1wiLCBcIlxcdTIwMUFcIl0sXG4gIFtcImxkcXVvXCIsIFwiXFx1MjAxQ1wiXSxcbiAgW1wicmRxdW9cIiwgXCJcXHUyMDFEXCJdLFxuICBbXCJiZHF1b1wiLCBcIlxcdTIwMUVcIl0sXG4gIFtcImRhZ2dlclwiLCBcIlxcdTIwMjBcIl0sXG4gIFtcIkRhZ2dlclwiLCBcIlxcdTIwMjFcIl0sXG4gIFtcImJ1bGxcIiwgXCJcXHUyMDIyXCJdLFxuICBbXCJoZWxsaXBcIiwgXCJcXHUyMDI2XCJdLFxuICBbXCJwZXJtaWxcIiwgXCJcXHUyMDMwXCJdLFxuICBbXCJwcmltZVwiLCBcIlxcdTIwMzJcIl0sXG4gIFtcIlByaW1lXCIsIFwiXFx1MjAzM1wiXSxcbiAgW1wibHNhcXVvXCIsIFwiXFx1MjAzOVwiXSxcbiAgW1wicnNhcXVvXCIsIFwiXFx1MjAzQVwiXSxcbiAgW1wib2xpbmVcIiwgXCJcXHUyMDNFXCJdLFxuICBbXCJmcmFzbFwiLCBcIlxcdTIwNDRcIl0sXG4gIFtcImV1cm9cIiwgXCJcXHUyMEFDXCJdLFxuICBbXCJpbWFnZVwiLCBcIlxcdTIxMTFcIl0sXG4gIFtcIndlaWVycFwiLCBcIlxcdTIxMThcIl0sXG4gIFtcInJlYWxcIiwgXCJcXHUyMTFDXCJdLFxuICBbXCJ0cmFkZVwiLCBcIlxcdTIxMjJcIl0sXG4gIFtcImFsZWZzeW1cIiwgXCJcXHUyMTM1XCJdLFxuICBbXCJsYXJyXCIsIFwiXFx1MjE5MFwiXSxcbiAgW1widWFyclwiLCBcIlxcdTIxOTFcIl0sXG4gIFtcInJhcnJcIiwgXCJcXHUyMTkyXCJdLFxuICBbXCJkYXJyXCIsIFwiXFx1MjE5M1wiXSxcbiAgW1wiaGFyclwiLCBcIlxcdTIxOTRcIl0sXG4gIFtcImNyYXJyXCIsIFwiXFx1MjFCNVwiXSxcbiAgW1wibEFyclwiLCBcIlxcdTIxRDBcIl0sXG4gIFtcInVBcnJcIiwgXCJcXHUyMUQxXCJdLFxuICBbXCJyQXJyXCIsIFwiXFx1MjFEMlwiXSxcbiAgW1wiZEFyclwiLCBcIlxcdTIxRDNcIl0sXG4gIFtcImhBcnJcIiwgXCJcXHUyMUQ0XCJdLFxuICBbXCJmb3JhbGxcIiwgXCJcXHUyMjAwXCJdLFxuICBbXCJwYXJ0XCIsIFwiXFx1MjIwMlwiXSxcbiAgW1wiZXhpc3RcIiwgXCJcXHUyMjAzXCJdLFxuICBbXCJlbXB0eVwiLCBcIlxcdTIyMDVcIl0sXG4gIFtcIm5hYmxhXCIsIFwiXFx1MjIwN1wiXSxcbiAgW1wiaXNpblwiLCBcIlxcdTIyMDhcIl0sXG4gIFtcIm5vdGluXCIsIFwiXFx1MjIwOVwiXSxcbiAgW1wibmlcIiwgXCJcXHUyMjBCXCJdLFxuICBbXCJwcm9kXCIsIFwiXFx1MjIwRlwiXSxcbiAgW1wic3VtXCIsIFwiXFx1MjIxMVwiXSxcbiAgW1wibWludXNcIiwgXCJcXHUyMjEyXCJdLFxuICBbXCJsb3dhc3RcIiwgXCJcXHUyMjE3XCJdLFxuICBbXCJyYWRpY1wiLCBcIlxcdTIyMUFcIl0sXG4gIFtcInByb3BcIiwgXCJcXHUyMjFEXCJdLFxuICBbXCJpbmZpblwiLCBcIlxcdTIyMUVcIl0sXG4gIFtcImFuZ1wiLCBcIlxcdTIyMjBcIl0sXG4gIFtcImFuZFwiLCBcIlxcdTIyMjdcIl0sXG4gIFtcIm9yXCIsIFwiXFx1MjIyOFwiXSxcbiAgW1wiY2FwXCIsIFwiXFx1MjIyOVwiXSxcbiAgW1wiY3VwXCIsIFwiXFx1MjIyQVwiXSxcbiAgW1wiaW50XCIsIFwiXFx1MjIyQlwiXSxcbiAgW1widGhlcmU0XCIsIFwiXFx1MjIzNFwiXSxcbiAgW1wic2ltXCIsIFwiXFx1MjIzQ1wiXSxcbiAgW1wiY29uZ1wiLCBcIlxcdTIyNDVcIl0sXG4gIFtcImFzeW1wXCIsIFwiXFx1MjI0OFwiXSxcbiAgW1wibmVcIiwgXCJcXHUyMjYwXCJdLFxuICBbXCJlcXVpdlwiLCBcIlxcdTIyNjFcIl0sXG4gIFtcImxlXCIsIFwiXFx1MjI2NFwiXSxcbiAgW1wiZ2VcIiwgXCJcXHUyMjY1XCJdLFxuICBbXCJzdWJcIiwgXCJcXHUyMjgyXCJdLFxuICBbXCJzdXBcIiwgXCJcXHUyMjgzXCJdLFxuICBbXCJuc3ViXCIsIFwiXFx1MjI4NFwiXSxcbiAgW1wic3ViZVwiLCBcIlxcdTIyODZcIl0sXG4gIFtcInN1cGVcIiwgXCJcXHUyMjg3XCJdLFxuICBbXCJvcGx1c1wiLCBcIlxcdTIyOTVcIl0sXG4gIFtcIm90aW1lc1wiLCBcIlxcdTIyOTdcIl0sXG4gIFtcInBlcnBcIiwgXCJcXHUyMkE1XCJdLFxuICBbXCJzZG90XCIsIFwiXFx1MjJDNVwiXSxcbiAgW1wibGNlaWxcIiwgXCJcXHUyMzA4XCJdLFxuICBbXCJyY2VpbFwiLCBcIlxcdTIzMDlcIl0sXG4gIFtcImxmbG9vclwiLCBcIlxcdTIzMEFcIl0sXG4gIFtcInJmbG9vclwiLCBcIlxcdTIzMEJcIl0sXG4gIFtcImxhbmdcIiwgXCJcXHUyMzI5XCJdLFxuICBbXCJyYW5nXCIsIFwiXFx1MjMyQVwiXSxcbiAgW1wibG96XCIsIFwiXFx1MjVDQVwiXSxcbiAgW1wic3BhZGVzXCIsIFwiXFx1MjY2MFwiXSxcbiAgW1wiY2x1YnNcIiwgXCJcXHUyNjYzXCJdLFxuICBbXCJoZWFydHNcIiwgXCJcXHUyNjY1XCJdLFxuICBbXCJkaWFtc1wiLCBcIlxcdTI2NjZcIl0sXG5dKTtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO1xuXG5cblxuXG5cblxuXG5cbiBmdW5jdGlvbiBnZXRKU1hQcmFnbWFJbmZvKG9wdGlvbnMpIHtcbiAgY29uc3QgW2Jhc2UsIHN1ZmZpeF0gPSBzcGxpdFByYWdtYShvcHRpb25zLmpzeFByYWdtYSB8fCBcIlJlYWN0LmNyZWF0ZUVsZW1lbnRcIik7XG4gIGNvbnN0IFtmcmFnbWVudEJhc2UsIGZyYWdtZW50U3VmZml4XSA9IHNwbGl0UHJhZ21hKG9wdGlvbnMuanN4RnJhZ21lbnRQcmFnbWEgfHwgXCJSZWFjdC5GcmFnbWVudFwiKTtcbiAgcmV0dXJuIHtiYXNlLCBzdWZmaXgsIGZyYWdtZW50QmFzZSwgZnJhZ21lbnRTdWZmaXh9O1xufSBleHBvcnRzLmRlZmF1bHQgPSBnZXRKU1hQcmFnbWFJbmZvO1xuXG5mdW5jdGlvbiBzcGxpdFByYWdtYShwcmFnbWEpIHtcbiAgbGV0IGRvdEluZGV4ID0gcHJhZ21hLmluZGV4T2YoXCIuXCIpO1xuICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgZG90SW5kZXggPSBwcmFnbWEubGVuZ3RoO1xuICB9XG4gIHJldHVybiBbcHJhZ21hLnNsaWNlKDAsIGRvdEluZGV4KSwgcHJhZ21hLnNsaWNlKGRvdEluZGV4KV07XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgY2xhc3MgVHJhbnNmb3JtZXIge1xuICAvLyBSZXR1cm4gdHJ1ZSBpZiBhbnl0aGluZyB3YXMgcHJvY2Vzc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gIFxuXG4gIGdldFByZWZpeENvZGUoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXRIb2lzdGVkQ29kZSgpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGdldFN1ZmZpeENvZGUoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gVHJhbnNmb3JtZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuXG52YXIgX3hodG1sID0gcmVxdWlyZSgnLi4vcGFyc2VyL3BsdWdpbnMvanN4L3hodG1sJyk7IHZhciBfeGh0bWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfeGh0bWwpO1xudmFyIF90b2tlbml6ZXIgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xudmFyIF9jaGFyY29kZXMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdXRpbC9jaGFyY29kZXMnKTtcblxudmFyIF9nZXRKU1hQcmFnbWFJbmZvID0gcmVxdWlyZSgnLi4vdXRpbC9nZXRKU1hQcmFnbWFJbmZvJyk7IHZhciBfZ2V0SlNYUHJhZ21hSW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRKU1hQcmFnbWFJbmZvKTtcblxudmFyIF9UcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vVHJhbnNmb3JtZXInKTsgdmFyIF9UcmFuc2Zvcm1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmFuc2Zvcm1lcik7XG5cbiBjbGFzcyBKU1hUcmFuc2Zvcm1lciBleHRlbmRzIF9UcmFuc2Zvcm1lcjIuZGVmYXVsdCB7XG4gIFxuICBcbiAgXG5cbiAgLy8gU3RhdGUgZm9yIGNhbGN1bGF0aW5nIHRoZSBsaW5lIG51bWJlciBvZiBlYWNoIEpTWCB0YWcgaW4gZGV2ZWxvcG1lbnQuXG4gIF9faW5pdCgpIHt0aGlzLmxhc3RMaW5lTnVtYmVyID0gMX1cbiAgX19pbml0MigpIHt0aGlzLmxhc3RJbmRleCA9IDB9XG5cbiAgLy8gSW4gZGV2ZWxvcG1lbnQsIHZhcmlhYmxlIG5hbWUgaG9sZGluZyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmaWxlLlxuICBfX2luaXQzKCkge3RoaXMuZmlsZW5hbWVWYXJOYW1lID0gbnVsbH1cbiAgLy8gTWFwcGluZyBvZiBjbGFpbWVkIG5hbWVzIGZvciBpbXBvcnRzIGluIHRoZSBhdXRvbWF0aWMgdHJhbnNmb3JtLCBlLGcuXG4gIC8vIHtqc3g6IFwiX2pzeFwifS4gVGhpcyBkZXRlcm1pbmVzIHdoaWNoIGltcG9ydHMgdG8gZ2VuZXJhdGUgaW4gdGhlIHByZWZpeC5cbiAgX19pbml0NCgpIHt0aGlzLmVzbUF1dG9tYXRpY0ltcG9ydE5hbWVSZXNvbHV0aW9ucyA9IHt9fVxuICAvLyBXaGVuIGF1dG9tYXRpY2FsbHkgYWRkaW5nIGltcG9ydHMgaW4gQ0pTIG1vZGUsIHdlIHN0b3JlIHRoZSB2YXJpYWJsZSBuYW1lXG4gIC8vIGhvbGRpbmcgdGhlIGltcG9ydGVkIENKUyBtb2R1bGUgc28gd2UgY2FuIHJlcXVpcmUgaXQgaW4gdGhlIHByZWZpeC5cbiAgX19pbml0NSgpIHt0aGlzLmNqc0F1dG9tYXRpY01vZHVsZU5hbWVSZXNvbHV0aW9ucyA9IHt9fVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICByb290VHJhbnNmb3JtZXIsXG4gICAgIHRva2VucyxcbiAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICAgICBuYW1lTWFuYWdlcixcbiAgICAgb3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnJvb3RUcmFuc2Zvcm1lciA9IHJvb3RUcmFuc2Zvcm1lcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLmltcG9ydFByb2Nlc3NvciA9IGltcG9ydFByb2Nlc3Nvcjt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7dGhpcy5vcHRpb25zID0gb3B0aW9ucztKU1hUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7SlNYVHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKTtKU1hUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpO0pTWFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyk7SlNYVHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKTs7XG4gICAgdGhpcy5qc3hQcmFnbWFJbmZvID0gX2dldEpTWFByYWdtYUluZm8yLmRlZmF1bHQuY2FsbCh2b2lkIDAsIG9wdGlvbnMpO1xuICAgIHRoaXMuaXNBdXRvbWF0aWNSdW50aW1lID0gb3B0aW9ucy5qc3hSdW50aW1lID09PSBcImF1dG9tYXRpY1wiO1xuICAgIHRoaXMuanN4SW1wb3J0U291cmNlID0gb3B0aW9ucy5qc3hJbXBvcnRTb3VyY2UgfHwgXCJyZWFjdFwiO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0pTWFRhZygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldFByZWZpeENvZGUoKSB7XG4gICAgbGV0IHByZWZpeCA9IFwiXCI7XG4gICAgaWYgKHRoaXMuZmlsZW5hbWVWYXJOYW1lKSB7XG4gICAgICBwcmVmaXggKz0gYGNvbnN0ICR7dGhpcy5maWxlbmFtZVZhck5hbWV9ID0gJHtKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnMuZmlsZVBhdGggfHwgXCJcIil9O2A7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQXV0b21hdGljUnVudGltZSkge1xuICAgICAgaWYgKHRoaXMuaW1wb3J0UHJvY2Vzc29yKSB7XG4gICAgICAgIC8vIENKUyBtb2RlOiBlbWl0IHJlcXVpcmUgc3RhdGVtZW50cyBmb3IgYWxsIG1vZHVsZXMgdGhhdCB3ZXJlIHJlZmVyZW5jZWQuXG4gICAgICAgIGZvciAoY29uc3QgW3BhdGgsIHJlc29sdmVkTmFtZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5janNBdXRvbWF0aWNNb2R1bGVOYW1lUmVzb2x1dGlvbnMpKSB7XG4gICAgICAgICAgcHJlZml4ICs9IGB2YXIgJHtyZXNvbHZlZE5hbWV9ID0gcmVxdWlyZShcIiR7cGF0aH1cIik7YDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRVNNIG1vZGU6IGNvbnNvbGlkYXRlIGFuZCBlbWl0IGltcG9ydCBzdGF0ZW1lbnRzIGZvciByZWZlcmVuY2VkIG5hbWVzLlxuICAgICAgICBjb25zdCB7Y3JlYXRlRWxlbWVudDogY3JlYXRlRWxlbWVudFJlc29sdXRpb24sIC4uLm90aGVyUmVzb2x1dGlvbnN9ID1cbiAgICAgICAgICB0aGlzLmVzbUF1dG9tYXRpY0ltcG9ydE5hbWVSZXNvbHV0aW9ucztcbiAgICAgICAgaWYgKGNyZWF0ZUVsZW1lbnRSZXNvbHV0aW9uKSB7XG4gICAgICAgICAgcHJlZml4ICs9IGBpbXBvcnQge2NyZWF0ZUVsZW1lbnQgYXMgJHtjcmVhdGVFbGVtZW50UmVzb2x1dGlvbn19IGZyb20gXCIke3RoaXMuanN4SW1wb3J0U291cmNlfVwiO2A7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW1wb3J0U3BlY2lmaWVycyA9IE9iamVjdC5lbnRyaWVzKG90aGVyUmVzb2x1dGlvbnMpXG4gICAgICAgICAgLm1hcCgoW25hbWUsIHJlc29sdmVkTmFtZV0pID0+IGAke25hbWV9IGFzICR7cmVzb2x2ZWROYW1lfWApXG4gICAgICAgICAgLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgaWYgKGltcG9ydFNwZWNpZmllcnMpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRQYXRoID1cbiAgICAgICAgICAgIHRoaXMuanN4SW1wb3J0U291cmNlICsgKHRoaXMub3B0aW9ucy5wcm9kdWN0aW9uID8gXCIvanN4LXJ1bnRpbWVcIiA6IFwiL2pzeC1kZXYtcnVudGltZVwiKTtcbiAgICAgICAgICBwcmVmaXggKz0gYGltcG9ydCB7JHtpbXBvcnRTcGVjaWZpZXJzfX0gZnJvbSBcIiR7aW1wb3J0UGF0aH1cIjtgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcmVmaXg7XG4gIH1cblxuICBwcm9jZXNzSlNYVGFnKCkge1xuICAgIGNvbnN0IHtqc3hSb2xlLCBzdGFydH0gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAvLyBDYWxjdWxhdGUgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYXQgdGhlIHZlcnkgc3RhcnQgKGlmIGluIGRldmVsb3BtZW50XG4gICAgLy8gbW9kZSkgc28gdGhhdCB0aGUgaW5mb3JtYXRpb24gaXMgZ3VhcmFudGVlZCB0byBiZSBxdWVyaWVkIGluIHRva2VuIG9yZGVyLlxuICAgIGNvbnN0IGVsZW1lbnRMb2NhdGlvbkNvZGUgPSB0aGlzLm9wdGlvbnMucHJvZHVjdGlvbiA/IG51bGwgOiB0aGlzLmdldEVsZW1lbnRMb2NhdGlvbkNvZGUoc3RhcnQpO1xuICAgIGlmICh0aGlzLmlzQXV0b21hdGljUnVudGltZSAmJiBqc3hSb2xlICE9PSBfdG9rZW5pemVyLkpTWFJvbGUuS2V5QWZ0ZXJQcm9wU3ByZWFkKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybVRhZ1RvSlNYRnVuYyhlbGVtZW50TG9jYXRpb25Db2RlLCBqc3hSb2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmFuc2Zvcm1UYWdUb0NyZWF0ZUVsZW1lbnQoZWxlbWVudExvY2F0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RWxlbWVudExvY2F0aW9uQ29kZShmaXJzdFRva2VuU3RhcnQpIHtcbiAgICBjb25zdCBsaW5lTnVtYmVyID0gdGhpcy5nZXRMaW5lTnVtYmVyRm9ySW5kZXgoZmlyc3RUb2tlblN0YXJ0KTtcbiAgICByZXR1cm4gYGxpbmVOdW1iZXI6ICR7bGluZU51bWJlcn1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGluZSBudW1iZXIgZm9yIHRoaXMgc291cmNlIHBvc2l0aW9uLiBUaGlzIGlzIGNhbGN1bGF0ZWQgbGF6aWx5IGFuZFxuICAgKiBtdXN0IGJlIGNhbGxlZCBpbiBpbmNyZWFzaW5nIG9yZGVyIGJ5IGluZGV4LlxuICAgKi9cbiAgZ2V0TGluZU51bWJlckZvckluZGV4KGluZGV4KSB7XG4gICAgY29uc3QgY29kZSA9IHRoaXMudG9rZW5zLmNvZGU7XG4gICAgd2hpbGUgKHRoaXMubGFzdEluZGV4IDwgaW5kZXggJiYgdGhpcy5sYXN0SW5kZXggPCBjb2RlLmxlbmd0aCkge1xuICAgICAgaWYgKGNvZGVbdGhpcy5sYXN0SW5kZXhdID09PSBcIlxcblwiKSB7XG4gICAgICAgIHRoaXMubGFzdExpbmVOdW1iZXIrKztcbiAgICAgIH1cbiAgICAgIHRoaXMubGFzdEluZGV4Kys7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhc3RMaW5lTnVtYmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIGN1cnJlbnQgSlNYIGVsZW1lbnQgdG8gYSBjYWxsIHRvIGpzeCwganN4cywgb3IganN4REVWLiBUaGlzIGlzXG4gICAqIHRoZSBwcmltYXJ5IHRyYW5zZm9ybWF0aW9uIGZvciB0aGUgYXV0b21hdGljIHRyYW5zZm9ybS5cbiAgICpcbiAgICogRXhhbXBsZTpcbiAgICogPGRpdiBhPXsxfSBrZXk9ezJ9PkhlbGxve3h9PC9kaXY+XG4gICAqIGJlY29tZXNcbiAgICoganN4cygnZGl2Jywge2E6IDEsIGNoaWxkcmVuOiBbXCJIZWxsb1wiLCB4XX0sIDIpXG4gICAqL1xuICB0cmFuc2Zvcm1UYWdUb0pTWEZ1bmMoZWxlbWVudExvY2F0aW9uQ29kZSwganN4Um9sZSkge1xuICAgIGNvbnN0IGlzU3RhdGljID0ganN4Um9sZSA9PT0gX3Rva2VuaXplci5KU1hSb2xlLlN0YXRpY0NoaWxkcmVuO1xuICAgIC8vIEZpcnN0IHRhZyBpcyBhbHdheXMganN4VGFnU3RhcnQuXG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHRoaXMuZ2V0SlNYRnVuY0ludm9jYXRpb25Db2RlKGlzU3RhdGljKSk7XG5cbiAgICBsZXQga2V5Q29kZSA9IG51bGw7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4VGFnRW5kKSkge1xuICAgICAgLy8gRnJhZ21lbnQgc3ludGF4LlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAke3RoaXMuZ2V0RnJhZ21lbnRDb2RlKCl9LCB7YCk7XG4gICAgICB0aGlzLnByb2Nlc3NBdXRvbWF0aWNDaGlsZHJlbkFuZEVuZFByb3BzKGpzeFJvbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOb3JtYWwgb3BlbiB0YWcgb3Igc2VsZi1jbG9zaW5nIHRhZy5cbiAgICAgIHRoaXMucHJvY2Vzc1RhZ0ludHJvKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiLCB7XCIpO1xuICAgICAga2V5Q29kZSA9IHRoaXMucHJvY2Vzc1Byb3BzKHRydWUpO1xuXG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5zbGFzaCwgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdFbmQpKSB7XG4gICAgICAgIC8vIFNlbGYtY2xvc2luZyB0YWcsIG5vIGNoaWxkcmVuIHRvIGFkZCwgc28gY2xvc2UgdGhlIHByb3BzLlxuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwifVwiKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdFbmQpKSB7XG4gICAgICAgIC8vIFRhZyB3aXRoIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnByb2Nlc3NBdXRvbWF0aWNDaGlsZHJlbkFuZEVuZFByb3BzKGpzeFJvbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgZWl0aGVyIC8+IG9yID4gYXQgdGhlIGVuZCBvZiB0aGUgdGFnLlwiKTtcbiAgICAgIH1cbiAgICAgIC8vIElmIGEga2V5IHdhcyBwcmVzZW50LCBtb3ZlIGl0IHRvIGl0cyBvd24gYXJnLiBOb3RlIHRoYXQgbW92aW5nIGNvZGVcbiAgICAgIC8vIGxpa2UgdGhpcyB3aWxsIGNhdXNlIGxpbmUgbnVtYmVycyB0byBnZXQgb3V0IG9mIHN5bmMgd2l0aGluIHRoZSBKU1hcbiAgICAgIC8vIGVsZW1lbnQgaWYgdGhlIGtleSBleHByZXNzaW9uIGhhcyBhIG5ld2xpbmUgaW4gaXQuIFRoaXMgaXMgdW5mb3J0dW5hdGUsXG4gICAgICAvLyBidXQgaG9wZWZ1bGx5IHNob3VsZCBiZSByYXJlLlxuICAgICAgaWYgKGtleUNvZGUpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgLCAke2tleUNvZGV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5vcHRpb25zLnByb2R1Y3Rpb24pIHtcbiAgICAgIC8vIElmIHRoZSBrZXkgd2Fzbid0IGFscmVhZHkgYWRkZWQsIGFkZCBpdCBub3cgc28gd2UgY2FuIGNvcnJlY3RseSBzZXRcbiAgICAgIC8vIHBvc2l0aW9uYWwgYXJncyBmb3IganN4REVWLlxuICAgICAgaWYgKGtleUNvZGUgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIiwgdm9pZCAwXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgLCAke2lzU3RhdGljfSwgJHt0aGlzLmdldERldlNvdXJjZShlbGVtZW50TG9jYXRpb25Db2RlKX0sIHRoaXNgKTtcbiAgICB9XG4gICAgLy8gV2UncmUgYXQgdGhlIGNsb3NlLXRhZyBvciB0aGUgZW5kIG9mIGEgc2VsZi1jbG9zaW5nIHRhZywgc28gcmVtb3ZlXG4gICAgLy8gZXZlcnl0aGluZyBlbHNlIGFuZCBjbG9zZSB0aGUgZnVuY3Rpb24gY2FsbC5cbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4VGFnRW5kKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiKVwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSBjdXJyZW50IEpTWCBlbGVtZW50IHRvIGEgY3JlYXRlRWxlbWVudCBjYWxsLiBJbiB0aGUgY2xhc3NpY1xuICAgKiBydW50aW1lLCB0aGlzIGlzIHRoZSBvbmx5IGNhc2UuIEluIHRoZSBhdXRvbWF0aWMgcnVudGltZSwgdGhpcyBpcyBjYWxsZWRcbiAgICogYXMgYSBmYWxsYmFjayBpbiBzb21lIHNpdHVhdGlvbnMuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIDxkaXYgYT17MX0ga2V5PXsyfT5IZWxsb3t4fTwvZGl2PlxuICAgKiBiZWNvbWVzXG4gICAqIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHthOiAxLCBrZXk6IDJ9LCBcIkhlbGxvXCIsIHgpXG4gICAqL1xuICB0cmFuc2Zvcm1UYWdUb0NyZWF0ZUVsZW1lbnQoZWxlbWVudExvY2F0aW9uQ29kZSkge1xuICAgIC8vIEZpcnN0IHRhZyBpcyBhbHdheXMganN4VGFnU3RhcnQuXG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHRoaXMuZ2V0Q3JlYXRlRWxlbWVudEludm9jYXRpb25Db2RlKCkpO1xuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4VGFnRW5kKSkge1xuICAgICAgLy8gRnJhZ21lbnQgc3ludGF4LlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAke3RoaXMuZ2V0RnJhZ21lbnRDb2RlKCl9LCBudWxsYCk7XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbih0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm9ybWFsIG9wZW4gdGFnIG9yIHNlbGYtY2xvc2luZyB0YWcuXG4gICAgICB0aGlzLnByb2Nlc3NUYWdJbnRybygpO1xuICAgICAgdGhpcy5wcm9jZXNzUHJvcHNPYmplY3RXaXRoRGV2SW5mbyhlbGVtZW50TG9jYXRpb25Db2RlKTtcblxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuc2xhc2gsIF90eXBlcy5Ub2tlblR5cGUuanN4VGFnRW5kKSkge1xuICAgICAgICAvLyBTZWxmLWNsb3NpbmcgdGFnOyBubyBjaGlsZHJlbiB0byBwcm9jZXNzLlxuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZCkpIHtcbiAgICAgICAgLy8gVGFnIHdpdGggY2hpbGRyZW4gYW5kIGEgY2xvc2UtdGFnOyBwcm9jZXNzIHRoZSBjaGlsZHJlbiBhcyBhcmdzLlxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbih0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGVpdGhlciAvPiBvciA+IGF0IHRoZSBlbmQgb2YgdGhlIHRhZy5cIik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFdlJ3JlIGF0IHRoZSBjbG9zZS10YWcgb3IgdGhlIGVuZCBvZiBhIHNlbGYtY2xvc2luZyB0YWcsIHNvIHJlbW92ZVxuICAgIC8vIGV2ZXJ5dGhpbmcgZWxzZSBhbmQgY2xvc2UgdGhlIGZ1bmN0aW9uIGNhbGwuXG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZCkpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIilcIik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjb2RlIGZvciB0aGUgcmVsZXZhbnQgZnVuY3Rpb24gZm9yIHRoaXMgY29udGV4dDoganN4LCBqc3hzLFxuICAgKiBvciBqc3hERVYuIFRoZSBmb2xsb3dpbmcgb3Blbi1wYXJlbiBpcyBpbmNsdWRlZCBhcyB3ZWxsLlxuICAgKlxuICAgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHkgdXNlZCBmb3IgdGhlIGF1dG9tYXRpYyBydW50aW1lLCBzbyB0aGV5IGFyZSBhbHdheXNcbiAgICogYXV0by1pbXBvcnRlZCwgYnV0IHRoZSBhdXRvLWltcG9ydCB3aWxsIGJlIGVpdGhlciBDSlMgb3IgRVNNIGJhc2VkIG9uIHRoZVxuICAgKiB0YXJnZXQgbW9kdWxlIGZvcm1hdC5cbiAgICovXG4gIGdldEpTWEZ1bmNJbnZvY2F0aW9uQ29kZShpc1N0YXRpYykge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucHJvZHVjdGlvbikge1xuICAgICAgaWYgKGlzU3RhdGljKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsYWltQXV0b0ltcG9ydGVkRnVuY0ludm9jYXRpb24oXCJqc3hzXCIsIFwiL2pzeC1ydW50aW1lXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xhaW1BdXRvSW1wb3J0ZWRGdW5jSW52b2NhdGlvbihcImpzeFwiLCBcIi9qc3gtcnVudGltZVwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2xhaW1BdXRvSW1wb3J0ZWRGdW5jSW52b2NhdGlvbihcImpzeERFVlwiLCBcIi9qc3gtZGV2LXJ1bnRpbWVcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgY29kZSB0byB1c2UgZm9yIHRoZSBjcmVhdGVFbGVtZW50IGZ1bmN0aW9uLCBlLmcuXG4gICAqIGBSZWFjdC5jcmVhdGVFbGVtZW50YCwgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmcgb3Blbi1wYXJlbi5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiB0byB1c2UgZm9yIHRoZSBjbGFzc2ljIHJ1bnRpbWUuIEZvciB0aGVcbiAgICogYXV0b21hdGljIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBhcyBhIGZhbGxiYWNrIGZ1bmN0aW9uIHRvXG4gICAqIHByZXNlcnZlIGJlaGF2aW9yIHdoZW4gdGhlcmUgaXMgYSBwcm9wIHNwcmVhZCBmb2xsb3dlZCBieSBhbiBleHBsaWNpdFxuICAgKiBrZXkuIEluIHRoYXQgYXV0b21hdGljIHJ1bnRpbWUgY2FzZSwgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5XG4gICAqIGltcG9ydGVkLlxuICAgKi9cbiAgZ2V0Q3JlYXRlRWxlbWVudEludm9jYXRpb25Db2RlKCkge1xuICAgIGlmICh0aGlzLmlzQXV0b21hdGljUnVudGltZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xhaW1BdXRvSW1wb3J0ZWRGdW5jSW52b2NhdGlvbihcImNyZWF0ZUVsZW1lbnRcIiwgXCJcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHtqc3hQcmFnbWFJbmZvfSA9IHRoaXM7XG4gICAgICBjb25zdCByZXNvbHZlZFByYWdtYUJhc2VOYW1lID0gdGhpcy5pbXBvcnRQcm9jZXNzb3JcbiAgICAgICAgPyB0aGlzLmltcG9ydFByb2Nlc3Nvci5nZXRJZGVudGlmaWVyUmVwbGFjZW1lbnQoanN4UHJhZ21hSW5mby5iYXNlKSB8fCBqc3hQcmFnbWFJbmZvLmJhc2VcbiAgICAgICAgOiBqc3hQcmFnbWFJbmZvLmJhc2U7XG4gICAgICByZXR1cm4gYCR7cmVzb2x2ZWRQcmFnbWFCYXNlTmFtZX0ke2pzeFByYWdtYUluZm8uc3VmZml4fShgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGNvZGUgdG8gdXNlIGFzIHRoZSBjb21wb25lbnQgd2hlbiBjb21waWxpbmcgYSBzaG9ydGhhbmRcbiAgICogZnJhZ21lbnQsIGUuZy4gYFJlYWN0LkZyYWdtZW50YC5cbiAgICpcbiAgICogVGhpcyBtYXkgYmUgY2FsbGVkIGZyb20gZWl0aGVyIHRoZSBjbGFzc2ljIG9yIGF1dG9tYXRpYyBydW50aW1lLCBhbmRcbiAgICogdGhlIHZhbHVlIHNob3VsZCBiZSBhdXRvLWltcG9ydGVkIGZvciB0aGUgYXV0b21hdGljIHJ1bnRpbWUuXG4gICAqL1xuICBnZXRGcmFnbWVudENvZGUoKSB7XG4gICAgaWYgKHRoaXMuaXNBdXRvbWF0aWNSdW50aW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbGFpbUF1dG9JbXBvcnRlZE5hbWUoXG4gICAgICAgIFwiRnJhZ21lbnRcIixcbiAgICAgICAgdGhpcy5vcHRpb25zLnByb2R1Y3Rpb24gPyBcIi9qc3gtcnVudGltZVwiIDogXCIvanN4LWRldi1ydW50aW1lXCIsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7anN4UHJhZ21hSW5mb30gPSB0aGlzO1xuICAgICAgY29uc3QgcmVzb2x2ZWRGcmFnbWVudFByYWdtYUJhc2VOYW1lID0gdGhpcy5pbXBvcnRQcm9jZXNzb3JcbiAgICAgICAgPyB0aGlzLmltcG9ydFByb2Nlc3Nvci5nZXRJZGVudGlmaWVyUmVwbGFjZW1lbnQoanN4UHJhZ21hSW5mby5mcmFnbWVudEJhc2UpIHx8XG4gICAgICAgICAganN4UHJhZ21hSW5mby5mcmFnbWVudEJhc2VcbiAgICAgICAgOiBqc3hQcmFnbWFJbmZvLmZyYWdtZW50QmFzZTtcbiAgICAgIHJldHVybiByZXNvbHZlZEZyYWdtZW50UHJhZ21hQmFzZU5hbWUgKyBqc3hQcmFnbWFJbmZvLmZyYWdtZW50U3VmZml4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gY29kZSB0aGF0IGludm9rZXMgdGhlIGdpdmVuIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBXaGVuIHRoZSBpbXBvcnRzIHRyYW5zZm9ybSBpcyBlbmFibGVkLCB1c2UgdGhlIENKU0ltcG9ydFRyYW5zZm9ybWVyXG4gICAqIHN0cmF0ZWd5IG9mIHVzaW5nIGAuY2FsbCh2b2lkIDAsIC4uLmAgdG8gYXZvaWQgcGFzc2luZyBhIGB0aGlzYCB2YWx1ZSBpbiBhXG4gICAqIHNpdHVhdGlvbiB0aGF0IHdvdWxkIG90aGVyd2lzZSBsb29rIGxpa2UgYSBtZXRob2QgY2FsbC5cbiAgICovXG4gIGNsYWltQXV0b0ltcG9ydGVkRnVuY0ludm9jYXRpb24oZnVuY05hbWUsIGltcG9ydFBhdGhTdWZmaXgpIHtcbiAgICBjb25zdCBmdW5jQ29kZSA9IHRoaXMuY2xhaW1BdXRvSW1wb3J0ZWROYW1lKGZ1bmNOYW1lLCBpbXBvcnRQYXRoU3VmZml4KTtcbiAgICBpZiAodGhpcy5pbXBvcnRQcm9jZXNzb3IpIHtcbiAgICAgIHJldHVybiBgJHtmdW5jQ29kZX0uY2FsbCh2b2lkIDAsIGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHtmdW5jQ29kZX0oYDtcbiAgICB9XG4gIH1cblxuICBjbGFpbUF1dG9JbXBvcnRlZE5hbWUoZnVuY05hbWUsIGltcG9ydFBhdGhTdWZmaXgpIHtcbiAgICBpZiAodGhpcy5pbXBvcnRQcm9jZXNzb3IpIHtcbiAgICAgIC8vIENKUyBtb2RlOiBjbGFpbSBhIG5hbWUgZm9yIHRoZSBtb2R1bGUgYW5kIG1hcmsgaXQgZm9yIGltcG9ydC5cbiAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmpzeEltcG9ydFNvdXJjZSArIGltcG9ydFBhdGhTdWZmaXg7XG4gICAgICBpZiAoIXRoaXMuY2pzQXV0b21hdGljTW9kdWxlTmFtZVJlc29sdXRpb25zW3BhdGhdKSB7XG4gICAgICAgIHRoaXMuY2pzQXV0b21hdGljTW9kdWxlTmFtZVJlc29sdXRpb25zW3BhdGhdID1cbiAgICAgICAgICB0aGlzLmltcG9ydFByb2Nlc3Nvci5nZXRGcmVlSWRlbnRpZmllckZvclBhdGgocGF0aCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7dGhpcy5janNBdXRvbWF0aWNNb2R1bGVOYW1lUmVzb2x1dGlvbnNbcGF0aF19LiR7ZnVuY05hbWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRVNNIG1vZGU6IGNsYWltIGEgbmFtZSBmb3IgdGhpcyBmdW5jdGlvbiBhbmQgYWRkIGl0IHRvIHRoZSBuYW1lcyB0aGF0XG4gICAgICAvLyBzaG91bGQgYmUgYXV0by1pbXBvcnRlZCB3aGVuIHRoZSBwcmVmaXggaXMgZ2VuZXJhdGVkLlxuICAgICAgaWYgKCF0aGlzLmVzbUF1dG9tYXRpY0ltcG9ydE5hbWVSZXNvbHV0aW9uc1tmdW5jTmFtZV0pIHtcbiAgICAgICAgdGhpcy5lc21BdXRvbWF0aWNJbXBvcnROYW1lUmVzb2x1dGlvbnNbZnVuY05hbWVdID0gdGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFxuICAgICAgICAgIGBfJHtmdW5jTmFtZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZXNtQXV0b21hdGljSW1wb3J0TmFtZVJlc29sdXRpb25zW2Z1bmNOYW1lXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyB0aGUgZmlyc3QgcGFydCBvZiBhIHRhZywgYmVmb3JlIGFueSBwcm9wcy5cbiAgICovXG4gIHByb2Nlc3NUYWdJbnRybygpIHtcbiAgICAvLyBXYWxrIGZvcndhcmQgdW50aWwgd2Ugc2VlIG9uZSBvZiB0aGVzZSBwYXR0ZXJuczpcbiAgICAvLyBqc3hOYW1lIHRvIHN0YXJ0IHRoZSBmaXJzdCBwcm9wLCBwcmVjZWRlZCBieSBhbm90aGVyIGpzeE5hbWUgdG8gZW5kIHRoZSB0YWcgbmFtZS5cbiAgICAvLyBqc3hOYW1lIHRvIHN0YXJ0IHRoZSBmaXJzdCBwcm9wLCBwcmVjZWRlZCBieSBncmVhdGVyVGhhbiB0byBlbmQgdGhlIHR5cGUgYXJndW1lbnQuXG4gICAgLy8gW29wZW4gYnJhY2VdIHRvIHN0YXJ0IHRoZSBmaXJzdCBwcm9wLlxuICAgIC8vIFtqc3hUYWdFbmRdIHRvIGVuZCB0aGUgb3Blbi10YWcuXG4gICAgLy8gW3NsYXNoLCBqc3hUYWdFbmRdIHRvIGVuZCB0aGUgc2VsZi1jbG9zaW5nIHRhZy5cbiAgICBsZXQgaW50cm9FbmQgPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDE7XG4gICAgd2hpbGUgKFxuICAgICAgdGhpcy50b2tlbnMudG9rZW5zW2ludHJvRW5kXS5pc1R5cGUgfHxcbiAgICAgICghdGhpcy50b2tlbnMubWF0Y2hlczJBdEluZGV4KGludHJvRW5kIC0gMSwgX3R5cGVzLlRva2VuVHlwZS5qc3hOYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW50cm9FbmQgLSAxLCBfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuLCBfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW50cm9FbmQsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSAmJlxuICAgICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGludHJvRW5kLCBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZCkgJiZcbiAgICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbnRyb0VuZCwgX3R5cGVzLlRva2VuVHlwZS5zbGFzaCwgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdFbmQpKVxuICAgICkge1xuICAgICAgaW50cm9FbmQrKztcbiAgICB9XG4gICAgaWYgKGludHJvRW5kID09PSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEpIHtcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpO1xuICAgICAgaWYgKHN0YXJ0c1dpdGhMb3dlckNhc2UodGFnTmFtZSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAnJHt0YWdOYW1lfSdgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgaW50cm9FbmQpIHtcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9wcywgYWRkIHRoZSBwcm9wcyBhcmd1bWVudCB0b1xuICAgKiBSZWFjdC5jcmVhdGVFbGVtZW50LCBpbmNsdWRpbmcgdGhlIGNvbW1hIGJlZm9yZSBpdC5cbiAgICovXG4gIHByb2Nlc3NQcm9wc09iamVjdFdpdGhEZXZJbmZvKGVsZW1lbnRMb2NhdGlvbkNvZGUpIHtcbiAgICBjb25zdCBkZXZQcm9wcyA9IHRoaXMub3B0aW9ucy5wcm9kdWN0aW9uXG4gICAgICA/IFwiXCJcbiAgICAgIDogYF9fc2VsZjogdGhpcywgX19zb3VyY2U6ICR7dGhpcy5nZXREZXZTb3VyY2UoZWxlbWVudExvY2F0aW9uQ29kZSl9YDtcbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4TmFtZSkgJiYgIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgaWYgKGRldlByb3BzKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCwgeyR7ZGV2UHJvcHN9fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgLCBudWxsYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCwge2ApO1xuICAgIHRoaXMucHJvY2Vzc1Byb3BzKGZhbHNlKTtcbiAgICBpZiAoZGV2UHJvcHMpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCAke2RldlByb3BzfX1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIn1cIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGUgY29yZSBwYXJ0IG9mIHRoZSBwcm9wcywgYXNzdW1pbmcgdGhhdCBhIHsgaGFzIGFscmVhZHkgYmVlblxuICAgKiBpbnNlcnRlZCBiZWZvcmUgdXMgYW5kIHRoYXQgYSB9IHdpbGwgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdXMuXG4gICAqXG4gICAqIElmIGV4dHJhY3RLZXlDb2RlIGlzIHRydWUgKGkuZS4gd2hlbiB1c2luZyBhbnkganN4Li4uIGZ1bmN0aW9uKSwgYW55IHByb3BcbiAgICogbmFtZWQgXCJrZXlcIiBoYXMgaXRzIGNvZGUgY2FwdHVyZWQgYW5kIHJldHVybmVkIHJhdGhlciB0aGFuIGJlaW5nIGVtaXR0ZWQgdG9cbiAgICogdGhlIG91dHB1dCBjb2RlLiBUaGlzIHNoaWZ0cyBsaW5lIG51bWJlcnMsIGFuZCBlbWl0dGluZyB0aGUgY29kZSBsYXRlciB3aWxsXG4gICAqIGNvcnJlY3QgbGluZSBudW1iZXJzIGFnYWluLiBJZiBubyBrZXkgaXMgZm91bmQgb3IgaWYgZXh0cmFjdEtleUNvZGUgaXNcbiAgICogZmFsc2UsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBudWxsLlxuICAgKi9cbiAgcHJvY2Vzc1Byb3BzKGV4dHJhY3RLZXlDb2RlKSB7XG4gICAgbGV0IGtleUNvZGUgPSBudWxsO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5qc3hOYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgcmVndWxhciBrZXk9e3ZhbHVlfSBvciBrZXk9XCJ2YWx1ZVwiIHByb3AuXG4gICAgICAgIGNvbnN0IHByb3BOYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgICAgICAgaWYgKGV4dHJhY3RLZXlDb2RlICYmIHByb3BOYW1lID09PSBcImtleVwiKSB7XG4gICAgICAgICAgaWYgKGtleUNvZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFRoZSBwcm9wcyBsaXN0IGhhcyBtdWx0aXBsZSBrZXlzLiBEaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIGFyZVxuICAgICAgICAgICAgLy8gaW5jb25zaXN0ZW50IGFib3V0IHdoYXQgdG8gZG8gaGVyZTogYXMgb2YgdGhpcyB3cml0aW5nLCBCYWJlbCBhbmRcbiAgICAgICAgICAgIC8vIHN3YyBrZWVwIHRoZSAqbGFzdCoga2V5IGFuZCBjb21wbGV0ZWx5IHJlbW92ZSB0aGUgcmVzdCwgd2hpbGVcbiAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdXNlcyB0aGUgKmZpcnN0KiBrZXkgYW5kIGxlYXZlcyB0aGUgb3RoZXJzIGFzIHJlZ3VsYXJcbiAgICAgICAgICAgIC8vIHByb3BzLiBUaGUgUmVhY3QgdGVhbSBjb2xsYWJvcmF0ZWQgd2l0aCBCYWJlbCBvbiB0aGVcbiAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgYmVoYXZpb3IsIHNvIHByZXN1bWFibHkgdGhlIEJhYmVsIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyB0aGUgb25lIHRvIHVzZS5cbiAgICAgICAgICAgIC8vIFNpbmNlIHdlIHdvbid0IGV2ZXIgYmUgZW1pdHRpbmcgdGhlIHByZXZpb3VzIGtleSBjb2RlLCB3ZSBuZWVkIHRvXG4gICAgICAgICAgICAvLyBhdCBsZWFzdCBlbWl0IGl0cyBuZXdsaW5lcyBoZXJlIHNvIHRoYXQgdGhlIGxpbmUgbnVtYmVycyBtYXRjaCB1cFxuICAgICAgICAgICAgLy8gaW4gdGhlIGxvbmcgcnVuLlxuICAgICAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShrZXlDb2RlLnJlcGxhY2UoL1teXFxuXS9nLCBcIlwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGtleVxuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgLy8gPVxuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnRva2Vucy5zbmFwc2hvdCgpO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc1Byb3BWYWx1ZSgpO1xuICAgICAgICAgIGtleUNvZGUgPSB0aGlzLnRva2Vucy5kYW5nZXJvdXNseUdldEFuZFJlbW92ZUNvZGVTaW5jZVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgICAgICAvLyBEb24ndCBhZGQgYSBjb21tYVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc1Byb3BOYW1lKHByb3BOYW1lKTtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCI6IFwiKTtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NQcm9wVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUpKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBzaG9ydGhhbmQgcHJvcCBsaWtlIDxpbnB1dCBkaXNhYmxlZCAvPi5cbiAgICAgICAgY29uc3QgcHJvcE5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpO1xuICAgICAgICB0aGlzLnByb2Nlc3NQcm9wTmFtZShwcm9wTmFtZSk7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCI6IHRydWVcIik7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgICAvLyBUaGlzIGlzIHByb3Agc3ByZWFkLCBsaWtlIDxkaXYgey4uLmdldFByb3BzKCl9Piwgd2hpY2ggd2UgY2FuIHBhc3NcbiAgICAgICAgLy8gdGhyb3VnaCBmYWlybHkgZGlyZWN0bHkgYXMgYW4gb2JqZWN0IHNwcmVhZC5cbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIixcIik7XG4gICAgfVxuICAgIHJldHVybiBrZXlDb2RlO1xuICB9XG5cbiAgcHJvY2Vzc1Byb3BOYW1lKHByb3BOYW1lKSB7XG4gICAgaWYgKHByb3BOYW1lLmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAnJHtwcm9wTmFtZX0nYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NQcm9wVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0pTWFRhZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NTdHJpbmdQcm9wVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcm9jZXNzU3RyaW5nUHJvcFZhbHVlKCkge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCk7XG4gICAgY29uc3QgdmFsdWVDb2RlID0gdGhpcy50b2tlbnMuY29kZS5zbGljZSh0b2tlbi5zdGFydCArIDEsIHRva2VuLmVuZCAtIDEpO1xuICAgIGNvbnN0IHJlcGxhY2VtZW50Q29kZSA9IGZvcm1hdEpTWFRleHRSZXBsYWNlbWVudCh2YWx1ZUNvZGUpO1xuICAgIGNvbnN0IGxpdGVyYWxDb2RlID0gZm9ybWF0SlNYU3RyaW5nVmFsdWVMaXRlcmFsKHZhbHVlQ29kZSk7XG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGxpdGVyYWxDb2RlICsgcmVwbGFjZW1lbnRDb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydGluZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwcm9wcyBvYmplY3QgbGl0ZXJhbCwgcHJvZHVjZSBhbiBhZGRpdGlvbmFsXG4gICAqIHByb3AgZm9yIHRoZSBjaGlsZHJlbiBhbmQgY2xvc2UgdGhlIG9iamVjdCBsaXRlcmFsLlxuICAgKi9cbiAgcHJvY2Vzc0F1dG9tYXRpY0NoaWxkcmVuQW5kRW5kUHJvcHMoanN4Um9sZSkge1xuICAgIGlmIChqc3hSb2xlID09PSBfdG9rZW5pemVyLkpTWFJvbGUuU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIgY2hpbGRyZW46IFtcIik7XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihmYWxzZSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiXX1cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwYXJzZXIgaW5mb3JtYXRpb24gdGVsbHMgdXMgd2hldGhlciB3ZSB3aWxsIHNlZSBhIHJlYWwgY2hpbGQgb3IgaWZcbiAgICAgIC8vIGFsbCByZW1haW5pbmcgY2hpbGRyZW4gKGlmIGFueSkgd2lsbCByZXNvbHZlIHRvIGVtcHR5LiBJZiB0aGVyZSBhcmUgbm9cbiAgICAgIC8vIG5vbi1lbXB0eSBjaGlsZHJlbiwgZG9uJ3QgZW1pdCBhIGNoaWxkcmVuIHByb3AgYXQgYWxsLCBidXQgc3RpbGxcbiAgICAgIC8vIHByb2Nlc3MgY2hpbGRyZW4gc28gdGhhdCB3ZSBwcm9wZXJseSB0cmFuc2Zvcm0gdGhlIGNvZGUgaW50byBub3RoaW5nLlxuICAgICAgaWYgKGpzeFJvbGUgPT09IF90b2tlbml6ZXIuSlNYUm9sZS5PbmVDaGlsZCkge1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiIGNoaWxkcmVuOiBcIik7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihmYWxzZSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwifVwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGNoaWxkcmVuIGludG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd2hpY2ggd2lsbCBiZSBlaXRoZXJcbiAgICogYXJndW1lbnRzIHRvIGNyZWF0ZUVsZW1lbnQgb3IgYXJyYXkgZWxlbWVudHMgb2YgYSBjaGlsZHJlbiBwcm9wLlxuICAgKi9cbiAgcHJvY2Vzc0NoaWxkcmVuKG5lZWRzSW5pdGlhbENvbW1hKSB7XG4gICAgbGV0IG5lZWRzQ29tbWEgPSBuZWVkc0luaXRpYWxDb21tYTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuanN4VGFnU3RhcnQsIF90eXBlcy5Ub2tlblR5cGUuc2xhc2gpKSB7XG4gICAgICAgIC8vIENsb3NpbmcgdGFnLCBzbyBubyBtb3JlIGNoaWxkcmVuLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGlkRW1pdEVsZW1lbnQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgICAvLyBFbXB0eSBpbnRlcnBvbGF0aW9ucyBhbmQgY29tbWVudC1vbmx5IGludGVycG9sYXRpb25zIGFyZSBhbGxvd2VkXG4gICAgICAgICAgLy8gYW5kIGRvbid0IGNyZWF0ZSBhbiBleHRyYSBjaGlsZCBhcmcuXG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJbnRlcnBvbGF0ZWQgZXhwcmVzc2lvbi5cbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4obmVlZHNDb21tYSA/IFwiLCBcIiA6IFwiXCIpO1xuICAgICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJcIik7XG4gICAgICAgICAgZGlkRW1pdEVsZW1lbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4VGFnU3RhcnQpKSB7XG4gICAgICAgIC8vIENoaWxkIEpTWCBlbGVtZW50XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUobmVlZHNDb21tYSA/IFwiLCBcIiA6IFwiXCIpO1xuICAgICAgICB0aGlzLnByb2Nlc3NKU1hUYWcoKTtcbiAgICAgICAgZGlkRW1pdEVsZW1lbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmpzeFRleHQpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuanN4RW1wdHlUZXh0KSkge1xuICAgICAgICBkaWRFbWl0RWxlbWVudCA9IHRoaXMucHJvY2Vzc0NoaWxkVGV4dEVsZW1lbnQobmVlZHNDb21tYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIHRva2VuIHdoZW4gcHJvY2Vzc2luZyBKU1ggY2hpbGRyZW4uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGRpZEVtaXRFbGVtZW50KSB7XG4gICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIGEgSlNYIHRleHQgZWxlbWVudCBpbnRvIGEgc3RyaW5nIGxpdGVyYWwsIG9yIG5vdGhpbmcgYXQgYWxsIGlmIHRoZSBKU1hcbiAgICogdGV4dCByZXNvbHZlcyB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYSBzdHJpbmcgbGl0ZXJhbCBpcyBlbWl0dGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm9jZXNzQ2hpbGRUZXh0RWxlbWVudChuZWVkc0NvbW1hKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICBjb25zdCB2YWx1ZUNvZGUgPSB0aGlzLnRva2Vucy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0LCB0b2tlbi5lbmQpO1xuICAgIGNvbnN0IHJlcGxhY2VtZW50Q29kZSA9IGZvcm1hdEpTWFRleHRSZXBsYWNlbWVudCh2YWx1ZUNvZGUpO1xuICAgIGNvbnN0IGxpdGVyYWxDb2RlID0gZm9ybWF0SlNYVGV4dExpdGVyYWwodmFsdWVDb2RlKTtcbiAgICBpZiAobGl0ZXJhbENvZGUgPT09ICdcIlwiJykge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHJlcGxhY2VtZW50Q29kZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHtuZWVkc0NvbW1hID8gXCIsIFwiIDogXCJcIn0ke2xpdGVyYWxDb2RlfSR7cmVwbGFjZW1lbnRDb2RlfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGV2U291cmNlKGVsZW1lbnRMb2NhdGlvbkNvZGUpIHtcbiAgICByZXR1cm4gYHtmaWxlTmFtZTogJHt0aGlzLmdldEZpbGVuYW1lVmFyTmFtZSgpfSwgJHtlbGVtZW50TG9jYXRpb25Db2RlfX1gO1xuICB9XG5cbiAgZ2V0RmlsZW5hbWVWYXJOYW1lKCkge1xuICAgIGlmICghdGhpcy5maWxlbmFtZVZhck5hbWUpIHtcbiAgICAgIHRoaXMuZmlsZW5hbWVWYXJOYW1lID0gdGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiX2pzeEZpbGVOYW1lXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5maWxlbmFtZVZhck5hbWU7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gSlNYVHJhbnNmb3JtZXI7XG5cbi8qKlxuICogU3BlYyBmb3IgaWRlbnRpZmllcnM6IGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jcHJvZC1JZGVudGlmaWVyU3RhcnQuXG4gKlxuICogUmVhbGx5IG9ubHkgdHJlYXQgYW55dGhpbmcgc3RhcnRpbmcgd2l0aCBhLXogYXMgdGFnIG5hbWVzLiAgYF9gLCBgJGAsIGBcdTAwRTlgXG4gKiBzaG91bGQgYmUgdHJlYXRlZCBhcyBjb21wb25lbnQgbmFtZXNcbiAqL1xuIGZ1bmN0aW9uIHN0YXJ0c1dpdGhMb3dlckNhc2Uocykge1xuICBjb25zdCBmaXJzdENoYXIgPSBzLmNoYXJDb2RlQXQoMCk7XG4gIHJldHVybiBmaXJzdENoYXIgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlQSAmJiBmaXJzdENoYXIgPD0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlWjtcbn0gZXhwb3J0cy5zdGFydHNXaXRoTG93ZXJDYXNlID0gc3RhcnRzV2l0aExvd2VyQ2FzZTtcblxuLyoqXG4gKiBUdXJuIHRoZSBnaXZlbiBqc3hUZXh0IHN0cmluZyBpbnRvIGEgSlMgc3RyaW5nIGxpdGVyYWwuIExlYWRpbmcgYW5kIHRyYWlsaW5nXG4gKiB3aGl0ZXNwYWNlIG9uIGxpbmVzIGlzIHJlbW92ZWQsIGV4Y2VwdCBpbW1lZGlhdGVseSBhZnRlciB0aGUgb3Blbi10YWcgYW5kXG4gKiBiZWZvcmUgdGhlIGNsb3NlLXRhZy4gRW1wdHkgbGluZXMgYXJlIGNvbXBsZXRlbHkgcmVtb3ZlZCwgYW5kIHNwYWNlcyBhcmVcbiAqIGFkZGVkIGJldHdlZW4gbGluZXMgYWZ0ZXIgdGhhdC5cbiAqXG4gKiBXZSB1c2UgSlNPTi5zdHJpbmdpZnkgdG8gaW50cm9kdWNlIGVzY2FwZSBjaGFyYWN0ZXJzIGFzIG5lY2Vzc2FyeSwgYW5kIHRyaW1cbiAqIHRoZSBzdGFydCBhbmQgZW5kIG9mIGVhY2ggbGluZSBhbmQgcmVtb3ZlIGJsYW5rIGxpbmVzLlxuICovXG5mdW5jdGlvbiBmb3JtYXRKU1hUZXh0TGl0ZXJhbCh0ZXh0KSB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBsZXQgd2hpdGVzcGFjZSA9IFwiXCI7XG5cbiAgbGV0IGlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UgPSBmYWxzZTtcbiAgbGV0IHNlZW5Ob25XaGl0ZXNwYWNlID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGMgPSB0ZXh0W2ldO1xuICAgIGlmIChjID09PSBcIiBcIiB8fCBjID09PSBcIlxcdFwiIHx8IGMgPT09IFwiXFxyXCIpIHtcbiAgICAgIGlmICghaXNJbkluaXRpYWxMaW5lV2hpdGVzcGFjZSkge1xuICAgICAgICB3aGl0ZXNwYWNlICs9IGM7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjID09PSBcIlxcblwiKSB7XG4gICAgICB3aGl0ZXNwYWNlID0gXCJcIjtcbiAgICAgIGlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2Vlbk5vbldoaXRlc3BhY2UgJiYgaXNJbkluaXRpYWxMaW5lV2hpdGVzcGFjZSkge1xuICAgICAgICByZXN1bHQgKz0gXCIgXCI7XG4gICAgICB9XG4gICAgICByZXN1bHQgKz0gd2hpdGVzcGFjZTtcbiAgICAgIHdoaXRlc3BhY2UgPSBcIlwiO1xuICAgICAgaWYgKGMgPT09IFwiJlwiKSB7XG4gICAgICAgIGNvbnN0IHtlbnRpdHksIG5ld0l9ID0gcHJvY2Vzc0VudGl0eSh0ZXh0LCBpICsgMSk7XG4gICAgICAgIGkgPSBuZXdJIC0gMTtcbiAgICAgICAgcmVzdWx0ICs9IGVudGl0eTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCArPSBjO1xuICAgICAgfVxuICAgICAgc2Vlbk5vbldoaXRlc3BhY2UgPSB0cnVlO1xuICAgICAgaXNJbkluaXRpYWxMaW5lV2hpdGVzcGFjZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBpZiAoIWlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UpIHtcbiAgICByZXN1bHQgKz0gd2hpdGVzcGFjZTtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbn1cblxuLyoqXG4gKiBQcm9kdWNlIHRoZSBjb2RlIHRoYXQgc2hvdWxkIGJlIHByaW50ZWQgYWZ0ZXIgdGhlIEpTWCB0ZXh0IHN0cmluZyBsaXRlcmFsLFxuICogd2l0aCBtb3N0IGNvbnRlbnQgcmVtb3ZlZCwgYnV0IGFsbCBuZXdsaW5lcyBwcmVzZXJ2ZWQgYW5kIGFsbCBzcGFjaW5nIGF0IHRoZVxuICogZW5kIHByZXNlcnZlZC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0SlNYVGV4dFJlcGxhY2VtZW50KHRleHQpIHtcbiAgbGV0IG51bU5ld2xpbmVzID0gMDtcbiAgbGV0IG51bVNwYWNlcyA9IDA7XG4gIGZvciAoY29uc3QgYyBvZiB0ZXh0KSB7XG4gICAgaWYgKGMgPT09IFwiXFxuXCIpIHtcbiAgICAgIG51bU5ld2xpbmVzKys7XG4gICAgICBudW1TcGFjZXMgPSAwO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gXCIgXCIpIHtcbiAgICAgIG51bVNwYWNlcysrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gXCJcXG5cIi5yZXBlYXQobnVtTmV3bGluZXMpICsgXCIgXCIucmVwZWF0KG51bVNwYWNlcyk7XG59XG5cbi8qKlxuICogRm9ybWF0IGEgc3RyaW5nIGluIHRoZSB2YWx1ZSBwb3NpdGlvbiBvZiBhIEpTWCBwcm9wLlxuICpcbiAqIFVzZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbiBhcyBjb252ZXJ0QXR0cmlidXRlIGZyb21cbiAqIGJhYmVsLWhlbHBlci1idWlsZGVyLXJlYWN0LWpzeC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0SlNYU3RyaW5nVmFsdWVMaXRlcmFsKHRleHQpIHtcbiAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGMgPSB0ZXh0W2ldO1xuICAgIGlmIChjID09PSBcIlxcblwiKSB7XG4gICAgICBpZiAoL1xccy8udGVzdCh0ZXh0W2kgKyAxXSkpIHtcbiAgICAgICAgcmVzdWx0ICs9IFwiIFwiO1xuICAgICAgICB3aGlsZSAoaSA8IHRleHQubGVuZ3RoICYmIC9cXHMvLnRlc3QodGV4dFtpICsgMV0pKSB7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgKz0gXCJcXG5cIjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGMgPT09IFwiJlwiKSB7XG4gICAgICBjb25zdCB7ZW50aXR5LCBuZXdJfSA9IHByb2Nlc3NFbnRpdHkodGV4dCwgaSArIDEpO1xuICAgICAgcmVzdWx0ICs9IGVudGl0eTtcbiAgICAgIGkgPSBuZXdJIC0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ICs9IGM7XG4gICAgfVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXN1bHQpO1xufVxuXG4vKipcbiAqIFN0YXJ0aW5nIGF0IGEgJiwgc2VlIGlmIHRoZXJlJ3MgYW4gSFRNTCBlbnRpdHkgKHNwZWNpZmllZCBieSBuYW1lLCBkZWNpbWFsXG4gKiBjaGFyIGNvZGUsIG9yIGhleCBjaGFyIGNvZGUpIGFuZCByZXR1cm4gaXQgaWYgc28uXG4gKlxuICogTW9kaWZpZWQgZnJvbSBqc3hSZWFkU3RyaW5nIGluIGJhYmVsLXBhcnNlci5cbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0VudGl0eSh0ZXh0LCBpbmRleEFmdGVyQW1wZXJzYW5kKSB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBsZXQgY291bnQgPSAwO1xuICBsZXQgZW50aXR5O1xuICBsZXQgaSA9IGluZGV4QWZ0ZXJBbXBlcnNhbmQ7XG5cbiAgaWYgKHRleHRbaV0gPT09IFwiI1wiKSB7XG4gICAgbGV0IHJhZGl4ID0gMTA7XG4gICAgaSsrO1xuICAgIGxldCBudW1TdGFydDtcbiAgICBpZiAodGV4dFtpXSA9PT0gXCJ4XCIpIHtcbiAgICAgIHJhZGl4ID0gMTY7XG4gICAgICBpKys7XG4gICAgICBudW1TdGFydCA9IGk7XG4gICAgICB3aGlsZSAoaSA8IHRleHQubGVuZ3RoICYmIGlzSGV4RGlnaXQodGV4dC5jaGFyQ29kZUF0KGkpKSkge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG51bVN0YXJ0ID0gaTtcbiAgICAgIHdoaWxlIChpIDwgdGV4dC5sZW5ndGggJiYgaXNEZWNpbWFsRGlnaXQodGV4dC5jaGFyQ29kZUF0KGkpKSkge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0ZXh0W2ldID09PSBcIjtcIikge1xuICAgICAgY29uc3QgbnVtU3RyID0gdGV4dC5zbGljZShudW1TdGFydCwgaSk7XG4gICAgICBpZiAobnVtU3RyKSB7XG4gICAgICAgIGkrKztcbiAgICAgICAgZW50aXR5ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQobnVtU3RyLCByYWRpeCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoaSA8IHRleHQubGVuZ3RoICYmIGNvdW50KysgPCAxMCkge1xuICAgICAgY29uc3QgY2ggPSB0ZXh0W2ldO1xuICAgICAgaSsrO1xuICAgICAgaWYgKGNoID09PSBcIjtcIikge1xuICAgICAgICBlbnRpdHkgPSBfeGh0bWwyLmRlZmF1bHQuZ2V0KHN0cik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgc3RyICs9IGNoO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZW50aXR5KSB7XG4gICAgcmV0dXJuIHtlbnRpdHk6IFwiJlwiLCBuZXdJOiBpbmRleEFmdGVyQW1wZXJzYW5kfTtcbiAgfVxuICByZXR1cm4ge2VudGl0eSwgbmV3STogaX07XG59XG5cbmZ1bmN0aW9uIGlzRGVjaW1hbERpZ2l0KGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQwICYmIGNvZGUgPD0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGlnaXQ5O1xufVxuXG5mdW5jdGlvbiBpc0hleERpZ2l0KGNvZGUpIHtcbiAgcmV0dXJuIChcbiAgICAoY29kZSA+PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDAgJiYgY29kZSA8PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kaWdpdDkpIHx8XG4gICAgKGNvZGUgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlQSAmJiBjb2RlIDw9IF9jaGFyY29kZXMuY2hhckNvZGVzLmxvd2VyY2FzZUYpIHx8XG4gICAgKGNvZGUgPj0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMudXBwZXJjYXNlQSAmJiBjb2RlIDw9IF9jaGFyY29kZXMuY2hhckNvZGVzLnVwcGVyY2FzZUYpXG4gICk7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cbnZhciBfdG9rZW5pemVyID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplcicpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxudmFyIF9KU1hUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4uL3RyYW5zZm9ybWVycy9KU1hUcmFuc2Zvcm1lcicpO1xudmFyIF9nZXRKU1hQcmFnbWFJbmZvID0gcmVxdWlyZSgnLi9nZXRKU1hQcmFnbWFJbmZvJyk7IHZhciBfZ2V0SlNYUHJhZ21hSW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRKU1hQcmFnbWFJbmZvKTtcblxuIGZ1bmN0aW9uIGdldE5vblR5cGVJZGVudGlmaWVycyh0b2tlbnMsIG9wdGlvbnMpIHtcbiAgY29uc3QganN4UHJhZ21hSW5mbyA9IF9nZXRKU1hQcmFnbWFJbmZvMi5kZWZhdWx0LmNhbGwodm9pZCAwLCBvcHRpb25zKTtcbiAgY29uc3Qgbm9uVHlwZUlkZW50aWZpZXJzID0gbmV3IFNldCgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKFxuICAgICAgdG9rZW4udHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lICYmXG4gICAgICAhdG9rZW4uaXNUeXBlICYmXG4gICAgICAodG9rZW4uaWRlbnRpZmllclJvbGUgPT09IF90b2tlbml6ZXIuSWRlbnRpZmllclJvbGUuQWNjZXNzIHx8XG4gICAgICAgIHRva2VuLmlkZW50aWZpZXJSb2xlID09PSBfdG9rZW5pemVyLklkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZCB8fFxuICAgICAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gX3Rva2VuaXplci5JZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3MpICYmXG4gICAgICAhdG9rZW4uc2hhZG93c0dsb2JhbFxuICAgICkge1xuICAgICAgbm9uVHlwZUlkZW50aWZpZXJzLmFkZCh0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbikpO1xuICAgIH1cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydCkge1xuICAgICAgbm9uVHlwZUlkZW50aWZpZXJzLmFkZChqc3hQcmFnbWFJbmZvLmJhc2UpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0b2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ1N0YXJ0ICYmXG4gICAgICBpICsgMSA8IHRva2Vucy50b2tlbnMubGVuZ3RoICYmXG4gICAgICB0b2tlbnMudG9rZW5zW2kgKyAxXS50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZFxuICAgICkge1xuICAgICAgbm9uVHlwZUlkZW50aWZpZXJzLmFkZChqc3hQcmFnbWFJbmZvLmJhc2UpO1xuICAgICAgbm9uVHlwZUlkZW50aWZpZXJzLmFkZChqc3hQcmFnbWFJbmZvLmZyYWdtZW50QmFzZSk7XG4gICAgfVxuICAgIGlmICh0b2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUgJiYgdG9rZW4uaWRlbnRpZmllclJvbGUgPT09IF90b2tlbml6ZXIuSWRlbnRpZmllclJvbGUuQWNjZXNzKSB7XG4gICAgICBjb25zdCBpZGVudGlmaWVyTmFtZSA9IHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKTtcbiAgICAgIC8vIExvd2VyLWNhc2Ugc2luZ2xlLWNvbXBvbmVudCB0YWcgbmFtZXMgbGlrZSBcImRpdlwiIGRvbid0IGNvdW50LlxuICAgICAgaWYgKCFfSlNYVHJhbnNmb3JtZXIuc3RhcnRzV2l0aExvd2VyQ2FzZS5jYWxsKHZvaWQgMCwgaWRlbnRpZmllck5hbWUpIHx8IHRva2Vucy50b2tlbnNbaSArIDFdLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuZG90KSB7XG4gICAgICAgIG5vblR5cGVJZGVudGlmaWVycy5hZGQodG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vblR5cGVJZGVudGlmaWVycztcbn0gZXhwb3J0cy5nZXROb25UeXBlSWRlbnRpZmllcnMgPSBnZXROb25UeXBlSWRlbnRpZmllcnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuXG52YXIgX3Rva2VuaXplciA9IHJlcXVpcmUoJy4vcGFyc2VyL3Rva2VuaXplcicpO1xudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4vcGFyc2VyL3Rva2VuaXplci9rZXl3b3JkcycpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG52YXIgX2dldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8gPSByZXF1aXJlKCcuL3V0aWwvZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbycpOyB2YXIgX2dldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyk7XG52YXIgX2dldE5vblR5cGVJZGVudGlmaWVycyA9IHJlcXVpcmUoJy4vdXRpbC9nZXROb25UeXBlSWRlbnRpZmllcnMnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLyoqXG4gKiBDbGFzcyByZXNwb25zaWJsZSBmb3IgcHJlcHJvY2Vzc2luZyBhbmQgYm9va2tlZXBpbmcgaW1wb3J0IGFuZCBleHBvcnQgZGVjbGFyYXRpb25zIHdpdGhpbiB0aGVcbiAqIGZpbGUuXG4gKlxuICogVHlwZVNjcmlwdCB1c2VzIGEgc2ltcGxlciBtZWNoYW5pc20gdGhhdCBkb2VzIG5vdCB1c2UgZnVuY3Rpb25zIGxpa2UgaW50ZXJvcFJlcXVpcmVEZWZhdWx0IGFuZFxuICogaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCwgc28gd2UgYWxzbyBhbGxvdyB0aGF0IG1vZGUgZm9yIGNvbXBhdGliaWxpdHkuXG4gKi9cbiBjbGFzcyBDSlNJbXBvcnRQcm9jZXNzb3Ige1xuICAgX19pbml0KCkge3RoaXMubm9uVHlwZUlkZW50aWZpZXJzID0gbmV3IFNldCgpfVxuICAgX19pbml0MigpIHt0aGlzLmltcG9ydEluZm9CeVBhdGggPSBuZXcgTWFwKCl9XG4gICBfX2luaXQzKCkge3RoaXMuaW1wb3J0c1RvUmVwbGFjZSA9IG5ldyBNYXAoKX1cbiAgIF9faW5pdDQoKSB7dGhpcy5pZGVudGlmaWVyUmVwbGFjZW1lbnRzID0gbmV3IE1hcCgpfVxuICAgX19pbml0NSgpIHt0aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUgPSBuZXcgTWFwKCl9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgIG5hbWVNYW5hZ2VyLFxuICAgICB0b2tlbnMsXG4gICAgIGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wLFxuICAgICBvcHRpb25zLFxuICAgICBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkLFxuICAgICBrZWVwVW51c2VkSW1wb3J0cyxcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgKSB7O3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wID0gZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3A7dGhpcy5vcHRpb25zID0gb3B0aW9uczt0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgPSBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkO3RoaXMua2VlcFVudXNlZEltcG9ydHMgPSBrZWVwVW51c2VkSW1wb3J0czt0aGlzLmhlbHBlck1hbmFnZXIgPSBoZWxwZXJNYW5hZ2VyO0NKU0ltcG9ydFByb2Nlc3Nvci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQ1LmNhbGwodGhpcyk7fVxuXG4gIHByZXByb2Nlc3NUb2tlbnMoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGksIF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCkgJiZcbiAgICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMzQXRJbmRleChpLCBfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5lcSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NJbXBvcnRBdEluZGV4KGkpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0KSAmJlxuICAgICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczJBdEluZGV4KGksIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5lcSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NFeHBvcnRBdEluZGV4KGkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmdlbmVyYXRlSW1wb3J0UmVwbGFjZW1lbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogSW4gVHlwZVNjcmlwdCwgaW1wb3J0IHN0YXRlbWVudHMgdGhhdCBvbmx5IGltcG9ydCB0eXBlcyBzaG91bGQgYmUgcmVtb3ZlZC5cbiAgICogVGhpcyBpbmNsdWRlcyBgaW1wb3J0IHt9IGZyb20gJ2Zvbyc7YCwgYnV0IG5vdCBgaW1wb3J0ICdmb28nO2AuXG4gICAqL1xuICBwcnVuZVR5cGVPbmx5SW1wb3J0cygpIHtcbiAgICB0aGlzLm5vblR5cGVJZGVudGlmaWVycyA9IF9nZXROb25UeXBlSWRlbnRpZmllcnMuZ2V0Tm9uVHlwZUlkZW50aWZpZXJzLmNhbGwodm9pZCAwLCB0aGlzLnRva2VucywgdGhpcy5vcHRpb25zKTtcbiAgICBmb3IgKGNvbnN0IFtwYXRoLCBpbXBvcnRJbmZvXSBvZiB0aGlzLmltcG9ydEluZm9CeVBhdGguZW50cmllcygpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGltcG9ydEluZm8uaGFzQmFyZUltcG9ydCB8fFxuICAgICAgICBpbXBvcnRJbmZvLmhhc1N0YXJFeHBvcnQgfHxcbiAgICAgICAgaW1wb3J0SW5mby5leHBvcnRTdGFyTmFtZXMubGVuZ3RoID4gMCB8fFxuICAgICAgICBpbXBvcnRJbmZvLm5hbWVkRXhwb3J0cy5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBuYW1lcyA9IFtcbiAgICAgICAgLi4uaW1wb3J0SW5mby5kZWZhdWx0TmFtZXMsXG4gICAgICAgIC4uLmltcG9ydEluZm8ud2lsZGNhcmROYW1lcyxcbiAgICAgICAgLi4uaW1wb3J0SW5mby5uYW1lZEltcG9ydHMubWFwKCh7bG9jYWxOYW1lfSkgPT4gbG9jYWxOYW1lKSxcbiAgICAgIF07XG4gICAgICBpZiAobmFtZXMuZXZlcnkoKG5hbWUpID0+IHRoaXMuc2hvdWxkQXV0b21hdGljYWxseUVsaWRlSW1wb3J0ZWROYW1lKG5hbWUpKSkge1xuICAgICAgICB0aGlzLmltcG9ydHNUb1JlcGxhY2Uuc2V0KHBhdGgsIFwiXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCAmJlxuICAgICAgIXRoaXMua2VlcFVudXNlZEltcG9ydHMgJiZcbiAgICAgICF0aGlzLm5vblR5cGVJZGVudGlmaWVycy5oYXMobmFtZSlcbiAgICApO1xuICB9XG5cbiAgIGdlbmVyYXRlSW1wb3J0UmVwbGFjZW1lbnRzKCkge1xuICAgIGZvciAoY29uc3QgW3BhdGgsIGltcG9ydEluZm9dIG9mIHRoaXMuaW1wb3J0SW5mb0J5UGF0aC5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZGVmYXVsdE5hbWVzLFxuICAgICAgICB3aWxkY2FyZE5hbWVzLFxuICAgICAgICBuYW1lZEltcG9ydHMsXG4gICAgICAgIG5hbWVkRXhwb3J0cyxcbiAgICAgICAgZXhwb3J0U3Rhck5hbWVzLFxuICAgICAgICBoYXNTdGFyRXhwb3J0LFxuICAgICAgfSA9IGltcG9ydEluZm87XG5cbiAgICAgIGlmIChcbiAgICAgICAgZGVmYXVsdE5hbWVzLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICB3aWxkY2FyZE5hbWVzLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBuYW1lZEltcG9ydHMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIG5hbWVkRXhwb3J0cy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgZXhwb3J0U3Rhck5hbWVzLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhaGFzU3RhckV4cG9ydFxuICAgICAgKSB7XG4gICAgICAgIC8vIEltcG9ydCBpcyBuZXZlciB1c2VkLCBzbyBkb24ndCBldmVuIGFzc2lnbiBhIG5hbWUuXG4gICAgICAgIHRoaXMuaW1wb3J0c1RvUmVwbGFjZS5zZXQocGF0aCwgYHJlcXVpcmUoJyR7cGF0aH0nKTtgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByaW1hcnlJbXBvcnROYW1lID0gdGhpcy5nZXRGcmVlSWRlbnRpZmllckZvclBhdGgocGF0aCk7XG4gICAgICBsZXQgc2Vjb25kYXJ5SW1wb3J0TmFtZTtcbiAgICAgIGlmICh0aGlzLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wKSB7XG4gICAgICAgIHNlY29uZGFyeUltcG9ydE5hbWUgPSBwcmltYXJ5SW1wb3J0TmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY29uZGFyeUltcG9ydE5hbWUgPVxuICAgICAgICAgIHdpbGRjYXJkTmFtZXMubGVuZ3RoID4gMCA/IHdpbGRjYXJkTmFtZXNbMF0gOiB0aGlzLmdldEZyZWVJZGVudGlmaWVyRm9yUGF0aChwYXRoKTtcbiAgICAgIH1cbiAgICAgIGxldCByZXF1aXJlQ29kZSA9IGB2YXIgJHtwcmltYXJ5SW1wb3J0TmFtZX0gPSByZXF1aXJlKCcke3BhdGh9Jyk7YDtcbiAgICAgIGlmICh3aWxkY2FyZE5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCB3aWxkY2FyZE5hbWUgb2Ygd2lsZGNhcmROYW1lcykge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZUV4cHIgPSB0aGlzLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wXG4gICAgICAgICAgICA/IHByaW1hcnlJbXBvcnROYW1lXG4gICAgICAgICAgICA6IGAke3RoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwiaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKX0oJHtwcmltYXJ5SW1wb3J0TmFtZX0pYDtcbiAgICAgICAgICByZXF1aXJlQ29kZSArPSBgIHZhciAke3dpbGRjYXJkTmFtZX0gPSAke21vZHVsZUV4cHJ9O2A7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZXhwb3J0U3Rhck5hbWVzLmxlbmd0aCA+IDAgJiYgc2Vjb25kYXJ5SW1wb3J0TmFtZSAhPT0gcHJpbWFyeUltcG9ydE5hbWUpIHtcbiAgICAgICAgcmVxdWlyZUNvZGUgKz0gYCB2YXIgJHtzZWNvbmRhcnlJbXBvcnROYW1lfSA9ICR7dGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXG4gICAgICAgICAgXCJpbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIsXG4gICAgICAgICl9KCR7cHJpbWFyeUltcG9ydE5hbWV9KTtgO1xuICAgICAgfSBlbHNlIGlmIChkZWZhdWx0TmFtZXMubGVuZ3RoID4gMCAmJiBzZWNvbmRhcnlJbXBvcnROYW1lICE9PSBwcmltYXJ5SW1wb3J0TmFtZSkge1xuICAgICAgICByZXF1aXJlQ29kZSArPSBgIHZhciAke3NlY29uZGFyeUltcG9ydE5hbWV9ID0gJHt0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcbiAgICAgICAgICBcImludGVyb3BSZXF1aXJlRGVmYXVsdFwiLFxuICAgICAgICApfSgke3ByaW1hcnlJbXBvcnROYW1lfSk7YDtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCB7aW1wb3J0ZWROYW1lLCBsb2NhbE5hbWV9IG9mIG5hbWVkRXhwb3J0cykge1xuICAgICAgICByZXF1aXJlQ29kZSArPSBgICR7dGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXG4gICAgICAgICAgXCJjcmVhdGVOYW1lZEV4cG9ydEZyb21cIixcbiAgICAgICAgKX0oJHtwcmltYXJ5SW1wb3J0TmFtZX0sICcke2xvY2FsTmFtZX0nLCAnJHtpbXBvcnRlZE5hbWV9Jyk7YDtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZXhwb3J0U3Rhck5hbWUgb2YgZXhwb3J0U3Rhck5hbWVzKSB7XG4gICAgICAgIHJlcXVpcmVDb2RlICs9IGAgZXhwb3J0cy4ke2V4cG9ydFN0YXJOYW1lfSA9ICR7c2Vjb25kYXJ5SW1wb3J0TmFtZX07YDtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNTdGFyRXhwb3J0KSB7XG4gICAgICAgIHJlcXVpcmVDb2RlICs9IGAgJHt0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcbiAgICAgICAgICBcImNyZWF0ZVN0YXJFeHBvcnRcIixcbiAgICAgICAgKX0oJHtwcmltYXJ5SW1wb3J0TmFtZX0pO2A7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaW1wb3J0c1RvUmVwbGFjZS5zZXQocGF0aCwgcmVxdWlyZUNvZGUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGRlZmF1bHROYW1lIG9mIGRlZmF1bHROYW1lcykge1xuICAgICAgICB0aGlzLmlkZW50aWZpZXJSZXBsYWNlbWVudHMuc2V0KGRlZmF1bHROYW1lLCBgJHtzZWNvbmRhcnlJbXBvcnROYW1lfS5kZWZhdWx0YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHtpbXBvcnRlZE5hbWUsIGxvY2FsTmFtZX0gb2YgbmFtZWRJbXBvcnRzKSB7XG4gICAgICAgIHRoaXMuaWRlbnRpZmllclJlcGxhY2VtZW50cy5zZXQobG9jYWxOYW1lLCBgJHtwcmltYXJ5SW1wb3J0TmFtZX0uJHtpbXBvcnRlZE5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RnJlZUlkZW50aWZpZXJGb3JQYXRoKHBhdGgpIHtcbiAgICBjb25zdCBjb21wb25lbnRzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgY29uc3QgbGFzdENvbXBvbmVudCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBiYXNlTmFtZSA9IGxhc3RDb21wb25lbnQucmVwbGFjZSgvXFxXL2csIFwiXCIpO1xuICAgIHJldHVybiB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoYF8ke2Jhc2VOYW1lfWApO1xuICB9XG5cbiAgIHByZXByb2Nlc3NJbXBvcnRBdEluZGV4KGluZGV4KSB7XG4gICAgY29uc3QgZGVmYXVsdE5hbWVzID0gW107XG4gICAgY29uc3Qgd2lsZGNhcmROYW1lcyA9IFtdO1xuICAgIGNvbnN0IG5hbWVkSW1wb3J0cyA9IFtdO1xuXG4gICAgaW5kZXgrKztcbiAgICBpZiAoXG4gICAgICAodGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KGluZGV4LCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5fdHlwZW9mKSkgJiZcbiAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggKyAxLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleChpbmRleCArIDEsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSlcbiAgICApIHtcbiAgICAgIC8vIGltcG9ydCB0eXBlIGRlY2xhcmF0aW9uLCBzbyBubyBuZWVkIHRvIHByb2Nlc3MgYW55dGhpbmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICAvLyBEeW5hbWljIGltcG9ydCwgc28gbm90aGluZyB0byBkb1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAgIGRlZmF1bHROYW1lcy5wdXNoKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkpO1xuICAgICAgaW5kZXgrKztcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKSkge1xuICAgICAgLy8gKiBhc1xuICAgICAgaW5kZXggKz0gMjtcbiAgICAgIHdpbGRjYXJkTmFtZXMucHVzaCh0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0SW5kZXgoaW5kZXgpKTtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldE5hbWVkSW1wb3J0cyhpbmRleCArIDEpO1xuICAgICAgaW5kZXggPSByZXN1bHQubmV3SW5kZXg7XG5cbiAgICAgIGZvciAoY29uc3QgbmFtZWRJbXBvcnQgb2YgcmVzdWx0Lm5hbWVkSW1wb3J0cykge1xuICAgICAgICAvLyBUcmVhdCB7ZGVmYXVsdCBhcyBYfSBhcyBhIGRlZmF1bHQgaW1wb3J0IHRvIGVuc3VyZSB1c2FnZSBvZiByZXF1aXJlIGludGVyb3AgaGVscGVyXG4gICAgICAgIGlmIChuYW1lZEltcG9ydC5pbXBvcnRlZE5hbWUgPT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgICAgZGVmYXVsdE5hbWVzLnB1c2gobmFtZWRJbXBvcnQubG9jYWxOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuYW1lZEltcG9ydHMucHVzaChuYW1lZEltcG9ydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KGluZGV4LCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pKSB7XG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN0cmluZyB0b2tlbiBhdCB0aGUgZW5kIG9mIGltcG9ydCBzdGF0ZW1lbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWVBdEluZGV4KGluZGV4KTtcbiAgICBjb25zdCBpbXBvcnRJbmZvID0gdGhpcy5nZXRJbXBvcnRJbmZvKHBhdGgpO1xuICAgIGltcG9ydEluZm8uZGVmYXVsdE5hbWVzLnB1c2goLi4uZGVmYXVsdE5hbWVzKTtcbiAgICBpbXBvcnRJbmZvLndpbGRjYXJkTmFtZXMucHVzaCguLi53aWxkY2FyZE5hbWVzKTtcbiAgICBpbXBvcnRJbmZvLm5hbWVkSW1wb3J0cy5wdXNoKC4uLm5hbWVkSW1wb3J0cyk7XG4gICAgaWYgKGRlZmF1bHROYW1lcy5sZW5ndGggPT09IDAgJiYgd2lsZGNhcmROYW1lcy5sZW5ndGggPT09IDAgJiYgbmFtZWRJbXBvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW1wb3J0SW5mby5oYXNCYXJlSW1wb3J0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAgcHJlcHJvY2Vzc0V4cG9ydEF0SW5kZXgoaW5kZXgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fdmFyKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczJBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2xldCkgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdClcbiAgICApIHtcbiAgICAgIHRoaXMucHJlcHJvY2Vzc1ZhckV4cG9ydEF0SW5kZXgoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24pIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MpXG4gICAgKSB7XG4gICAgICBjb25zdCBleHBvcnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4ICsgMik7XG4gICAgICB0aGlzLmFkZEV4cG9ydEJpbmRpbmcoZXhwb3J0TmFtZSwgZXhwb3J0TmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzM0F0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbikpIHtcbiAgICAgIGNvbnN0IGV4cG9ydE5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0SW5kZXgoaW5kZXggKyAzKTtcbiAgICAgIHRoaXMuYWRkRXhwb3J0QmluZGluZyhleHBvcnROYW1lLCBleHBvcnROYW1lKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgIHRoaXMucHJlcHJvY2Vzc05hbWVkRXhwb3J0QXRJbmRleChpbmRleCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKSkge1xuICAgICAgdGhpcy5wcmVwcm9jZXNzRXhwb3J0U3RhckF0SW5kZXgoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gICBwcmVwcm9jZXNzVmFyRXhwb3J0QXRJbmRleChpbmRleCkge1xuICAgIGxldCBkZXB0aCA9IDA7XG4gICAgLy8gSGFuZGxlIGNhc2VzIGxpa2UgYGV4cG9ydCBsZXQge3h9ID0geTtgLCBzdGFydGluZyBhdCB0aGUgb3Blbi1icmFjZSBpbiB0aGF0IGNhc2UuXG4gICAgZm9yIChsZXQgaSA9IGluZGV4ICsgMjsgOyBpKyspIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGksIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5kb2xsYXJCcmFjZUwpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKVxuICAgICAgKSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKVxuICAgICAgKSB7XG4gICAgICAgIGRlcHRoLS07XG4gICAgICB9IGVsc2UgaWYgKGRlcHRoID09PSAwICYmICF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KDEsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmIChlbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaSA9IGVuZEluZGV4IC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMudG9rZW5zW2ldO1xuICAgICAgICBpZiAoX3Rva2VuaXplci5pc0RlY2xhcmF0aW9uLmNhbGwodm9pZCAwLCB0b2tlbikpIHtcbiAgICAgICAgICBjb25zdCBleHBvcnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGkpO1xuICAgICAgICAgIHRoaXMuaWRlbnRpZmllclJlcGxhY2VtZW50cy5zZXQoZXhwb3J0TmFtZSwgYGV4cG9ydHMuJHtleHBvcnROYW1lfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhbGsgdGhpcyBleHBvcnQgc3RhdGVtZW50IGp1c3QgaW4gY2FzZSBpdCdzIGFuIGV4cG9ydC4uLmZyb20gc3RhdGVtZW50LlxuICAgKiBJZiBpdCBpcywgY29tYmluZSBpdCBpbnRvIHRoZSBpbXBvcnQgaW5mbyBmb3IgdGhhdCBwYXRoLiBPdGhlcndpc2UsIGp1c3RcbiAgICogYmFpbCBvdXQ7IGl0J2xsIGJlIGhhbmRsZWQgbGF0ZXIuXG4gICAqL1xuICAgcHJlcHJvY2Vzc05hbWVkRXhwb3J0QXRJbmRleChpbmRleCkge1xuICAgIC8vIGV4cG9ydCB7XG4gICAgaW5kZXggKz0gMjtcbiAgICBjb25zdCB7bmV3SW5kZXgsIG5hbWVkSW1wb3J0c30gPSB0aGlzLmdldE5hbWVkSW1wb3J0cyhpbmRleCk7XG4gICAgaW5kZXggPSBuZXdJbmRleDtcblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgoaW5kZXgsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlaW50ZXJwcmV0IFwiYSBhcyBiXCIgdG8gYmUgbG9jYWwvZXhwb3J0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQvbG9jYWwuXG4gICAgICBmb3IgKGNvbnN0IHtpbXBvcnRlZE5hbWU6IGxvY2FsTmFtZSwgbG9jYWxOYW1lOiBleHBvcnRlZE5hbWV9IG9mIG5hbWVkSW1wb3J0cykge1xuICAgICAgICB0aGlzLmFkZEV4cG9ydEJpbmRpbmcobG9jYWxOYW1lLCBleHBvcnRlZE5hbWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN0cmluZyB0b2tlbiBhdCB0aGUgZW5kIG9mIGltcG9ydCBzdGF0ZW1lbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWVBdEluZGV4KGluZGV4KTtcbiAgICBjb25zdCBpbXBvcnRJbmZvID0gdGhpcy5nZXRJbXBvcnRJbmZvKHBhdGgpO1xuICAgIGltcG9ydEluZm8ubmFtZWRFeHBvcnRzLnB1c2goLi4ubmFtZWRJbXBvcnRzKTtcbiAgfVxuXG4gICBwcmVwcm9jZXNzRXhwb3J0U3RhckF0SW5kZXgoaW5kZXgpIHtcbiAgICBsZXQgZXhwb3J0ZWROYW1lID0gbnVsbDtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczNBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuc3RhciwgX3R5cGVzLlRva2VuVHlwZS5fYXMpKSB7XG4gICAgICAvLyBleHBvcnQgKiBhc1xuICAgICAgaW5kZXggKz0gMztcbiAgICAgIGV4cG9ydGVkTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCk7XG4gICAgICAvLyBmb28gZnJvbVxuICAgICAgaW5kZXggKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhwb3J0ICogZnJvbVxuICAgICAgaW5kZXggKz0gMztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgc3RyaW5nIHRva2VuIGF0IHRoZSBlbmQgb2Ygc3RhciBleHBvcnQgc3RhdGVtZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IHRoaXMudG9rZW5zLnN0cmluZ1ZhbHVlQXRJbmRleChpbmRleCk7XG4gICAgY29uc3QgaW1wb3J0SW5mbyA9IHRoaXMuZ2V0SW1wb3J0SW5mbyhwYXRoKTtcbiAgICBpZiAoZXhwb3J0ZWROYW1lICE9PSBudWxsKSB7XG4gICAgICBpbXBvcnRJbmZvLmV4cG9ydFN0YXJOYW1lcy5wdXNoKGV4cG9ydGVkTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGltcG9ydEluZm8uaGFzU3RhckV4cG9ydCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgIGdldE5hbWVkSW1wb3J0cyhpbmRleCkge1xuICAgIGNvbnN0IG5hbWVkSW1wb3J0cyA9IFtdO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMsIGluZGV4KTtcbiAgICAgIGluZGV4ID0gc3BlY2lmaWVySW5mby5lbmRJbmRleDtcbiAgICAgIGlmICghc3BlY2lmaWVySW5mby5pc1R5cGUpIHtcbiAgICAgICAgbmFtZWRJbXBvcnRzLnB1c2goe1xuICAgICAgICAgIGltcG9ydGVkTmFtZTogc3BlY2lmaWVySW5mby5sZWZ0TmFtZSxcbiAgICAgICAgICBsb2NhbE5hbWU6IHNwZWNpZmllckluZm8ucmlnaHROYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIGluZGV4ICs9IDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRva2VuOiAke0pTT04uc3RyaW5naWZ5KHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleF0pfWApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge25ld0luZGV4OiBpbmRleCwgbmFtZWRJbXBvcnRzfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBtdXRhYmxlIGltcG9ydCBpbmZvIG9iamVjdCBmb3IgdGhpcyBwYXRoLCBjcmVhdGluZyBvbmUgaWYgaXQgZG9lc24ndFxuICAgKiBleGlzdCB5ZXQuXG4gICAqL1xuICAgZ2V0SW1wb3J0SW5mbyhwYXRoKSB7XG4gICAgY29uc3QgZXhpc3RpbmdJbmZvID0gdGhpcy5pbXBvcnRJbmZvQnlQYXRoLmdldChwYXRoKTtcbiAgICBpZiAoZXhpc3RpbmdJbmZvKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmdJbmZvO1xuICAgIH1cbiAgICBjb25zdCBuZXdJbmZvID0ge1xuICAgICAgZGVmYXVsdE5hbWVzOiBbXSxcbiAgICAgIHdpbGRjYXJkTmFtZXM6IFtdLFxuICAgICAgbmFtZWRJbXBvcnRzOiBbXSxcbiAgICAgIG5hbWVkRXhwb3J0czogW10sXG4gICAgICBoYXNCYXJlSW1wb3J0OiBmYWxzZSxcbiAgICAgIGV4cG9ydFN0YXJOYW1lczogW10sXG4gICAgICBoYXNTdGFyRXhwb3J0OiBmYWxzZSxcbiAgICB9O1xuICAgIHRoaXMuaW1wb3J0SW5mb0J5UGF0aC5zZXQocGF0aCwgbmV3SW5mbyk7XG4gICAgcmV0dXJuIG5ld0luZm87XG4gIH1cblxuICAgYWRkRXhwb3J0QmluZGluZyhsb2NhbE5hbWUsIGV4cG9ydGVkTmFtZSkge1xuICAgIGlmICghdGhpcy5leHBvcnRCaW5kaW5nc0J5TG9jYWxOYW1lLmhhcyhsb2NhbE5hbWUpKSB7XG4gICAgICB0aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUuc2V0KGxvY2FsTmFtZSwgW10pO1xuICAgIH1cbiAgICB0aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUuZ2V0KGxvY2FsTmFtZSkucHVzaChleHBvcnRlZE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgY29kZSB0byB1c2UgZm9yIHRoZSBpbXBvcnQgZm9yIHRoaXMgcGF0aCwgb3IgdGhlIGVtcHR5IHN0cmluZyBpZlxuICAgKiB0aGUgY29kZSBoYXMgYWxyZWFkeSBiZWVuIFwiY2xhaW1lZFwiIGJ5IGEgcHJldmlvdXMgaW1wb3J0LlxuICAgKi9cbiAgY2xhaW1JbXBvcnRDb2RlKGltcG9ydFBhdGgpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmltcG9ydHNUb1JlcGxhY2UuZ2V0KGltcG9ydFBhdGgpO1xuICAgIHRoaXMuaW1wb3J0c1RvUmVwbGFjZS5zZXQoaW1wb3J0UGF0aCwgXCJcIik7XG4gICAgcmV0dXJuIHJlc3VsdCB8fCBcIlwiO1xuICB9XG5cbiAgZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KGlkZW50aWZpZXJOYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllclJlcGxhY2VtZW50cy5nZXQoaWRlbnRpZmllck5hbWUpIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc3RyaW5nIGxpa2UgYGV4cG9ydHMuZm9vID0gZXhwb3J0cy5iYXJgLlxuICAgKi9cbiAgcmVzb2x2ZUV4cG9ydEJpbmRpbmcoYXNzaWduZWROYW1lKSB7XG4gICAgY29uc3QgZXhwb3J0ZWROYW1lcyA9IHRoaXMuZXhwb3J0QmluZGluZ3NCeUxvY2FsTmFtZS5nZXQoYXNzaWduZWROYW1lKTtcbiAgICBpZiAoIWV4cG9ydGVkTmFtZXMgfHwgZXhwb3J0ZWROYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZXhwb3J0ZWROYW1lcy5tYXAoKGV4cG9ydGVkTmFtZSkgPT4gYGV4cG9ydHMuJHtleHBvcnRlZE5hbWV9YCkuam9pbihcIiA9IFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGltcG9ydGVkL2V4cG9ydGVkIG5hbWVzIHdoZXJlIHdlIG1pZ2h0IGJlIGludGVyZXN0ZWQgaW4gd2hldGhlciB1c2FnZXMgb2YgdGhvc2VcbiAgICogbmFtZXMgYXJlIHNoYWRvd2VkLlxuICAgKi9cbiAgZ2V0R2xvYmFsTmFtZXMoKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW1xuICAgICAgLi4udGhpcy5pZGVudGlmaWVyUmVwbGFjZW1lbnRzLmtleXMoKSxcbiAgICAgIC4uLnRoaXMuZXhwb3J0QmluZGluZ3NCeUxvY2FsTmFtZS5rZXlzKCksXG4gICAgXSk7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gQ0pTSW1wb3J0UHJvY2Vzc29yO1xuIiwgInR5cGUgS2V5ID0gc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sO1xuXG4vKipcbiAqIFNldEFycmF5IGFjdHMgbGlrZSBhIGBTZXRgIChhbGxvd2luZyBvbmx5IG9uZSBvY2N1cnJlbmNlIG9mIGEgc3RyaW5nIGBrZXlgKSwgYnV0IHByb3ZpZGVzIHRoZVxuICogaW5kZXggb2YgdGhlIGBrZXlgIGluIHRoZSBiYWNraW5nIGFycmF5LlxuICpcbiAqIFRoaXMgaXMgZGVzaWduZWQgdG8gYWxsb3cgc3luY2hyb25pemluZyBhIHNlY29uZCBhcnJheSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgYmFja2luZyBhcnJheSxcbiAqIGxpa2UgaG93IGluIGEgc291cmNlbWFwIGBzb3VyY2VzQ29udGVudFtpXWAgaXMgdGhlIHNvdXJjZSBjb250ZW50IGFzc29jaWF0ZWQgd2l0aCBgc291cmNlW2ldYCxcbiAqIGFuZCB0aGVyZSBhcmUgbmV2ZXIgZHVwbGljYXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldEFycmF5PFQgZXh0ZW5kcyBLZXkgPSBLZXk+IHtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9pbmRleGVzOiBSZWNvcmQ8VCwgbnVtYmVyIHwgdW5kZWZpbmVkPjtcbiAgZGVjbGFyZSBhcnJheTogcmVhZG9ubHkgVFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2luZGV4ZXMgPSB7IF9fcHJvdG9fXzogbnVsbCB9IGFzIGFueTtcbiAgICB0aGlzLmFycmF5ID0gW107XG4gIH1cbn1cblxuaW50ZXJmYWNlIFB1YmxpY1NldDxUIGV4dGVuZHMgS2V5PiB7XG4gIGFycmF5OiBUW107XG4gIF9pbmRleGVzOiBTZXRBcnJheTxUPlsnX2luZGV4ZXMnXTtcbn1cblxuLyoqXG4gKiBUeXBlc2NyaXB0IGRvZXNuJ3QgYWxsb3cgZnJpZW5kIGFjY2VzcyB0byBwcml2YXRlIGZpZWxkcywgc28gdGhpcyBqdXN0IGNhc3RzIHRoZSBzZXQgaW50byBhIHR5cGVcbiAqIHdpdGggcHVibGljIGFjY2VzcyBtb2RpZmllcnMuXG4gKi9cbmZ1bmN0aW9uIGNhc3Q8VCBleHRlbmRzIEtleT4oc2V0OiBTZXRBcnJheTxUPik6IFB1YmxpY1NldDxUPiB7XG4gIHJldHVybiBzZXQgYXMgYW55O1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGFzc29jaWF0ZWQgd2l0aCBga2V5YCBpbiB0aGUgYmFja2luZyBhcnJheSwgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0PFQgZXh0ZW5kcyBLZXk+KHNldGFycjogU2V0QXJyYXk8VD4sIGtleTogVCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjYXN0KHNldGFycikuX2luZGV4ZXNba2V5XTtcbn1cblxuLyoqXG4gKiBQdXRzIGBrZXlgIGludG8gdGhlIGJhY2tpbmcgYXJyYXksIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByZXNlbnQuIFJldHVybnNcbiAqIHRoZSBpbmRleCBvZiB0aGUgYGtleWAgaW4gdGhlIGJhY2tpbmcgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdXQ8VCBleHRlbmRzIEtleT4oc2V0YXJyOiBTZXRBcnJheTxUPiwga2V5OiBUKTogbnVtYmVyIHtcbiAgLy8gVGhlIGtleSBtYXkgb3IgbWF5IG5vdCBiZSBwcmVzZW50LiBJZiBpdCBpcyBwcmVzZW50LCBpdCdzIGEgbnVtYmVyLlxuICBjb25zdCBpbmRleCA9IGdldChzZXRhcnIsIGtleSk7XG4gIGlmIChpbmRleCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaW5kZXg7XG5cbiAgY29uc3QgeyBhcnJheSwgX2luZGV4ZXM6IGluZGV4ZXMgfSA9IGNhc3Qoc2V0YXJyKTtcblxuICBjb25zdCBsZW5ndGggPSBhcnJheS5wdXNoKGtleSk7XG4gIHJldHVybiAoaW5kZXhlc1trZXldID0gbGVuZ3RoIC0gMSk7XG59XG5cbi8qKlxuICogUG9wcyB0aGUgbGFzdCBhZGRlZCBpdGVtIG91dCBvZiB0aGUgU2V0QXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3A8VCBleHRlbmRzIEtleT4oc2V0YXJyOiBTZXRBcnJheTxUPik6IHZvaWQge1xuICBjb25zdCB7IGFycmF5LCBfaW5kZXhlczogaW5kZXhlcyB9ID0gY2FzdChzZXRhcnIpO1xuICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgY29uc3QgbGFzdCA9IGFycmF5LnBvcCgpITtcbiAgaW5kZXhlc1tsYXN0XSA9IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBrZXksIGlmIGl0IGV4aXN0cyBpbiB0aGUgc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlPFQgZXh0ZW5kcyBLZXk+KHNldGFycjogU2V0QXJyYXk8VD4sIGtleTogVCk6IHZvaWQge1xuICBjb25zdCBpbmRleCA9IGdldChzZXRhcnIsIGtleSk7XG4gIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgY29uc3QgeyBhcnJheSwgX2luZGV4ZXM6IGluZGV4ZXMgfSA9IGNhc3Qoc2V0YXJyKTtcbiAgZm9yIChsZXQgaSA9IGluZGV4ICsgMTsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgayA9IGFycmF5W2ldO1xuICAgIGFycmF5W2kgLSAxXSA9IGs7XG4gICAgaW5kZXhlc1trXSEtLTtcbiAgfVxuICBpbmRleGVzW2tleV0gPSB1bmRlZmluZWQ7XG4gIGFycmF5LnBvcCgpO1xufVxuIiwgImltcG9ydCB0eXBlIHsgU3RyaW5nUmVhZGVyLCBTdHJpbmdXcml0ZXIgfSBmcm9tICcuL3N0cmluZ3MnO1xuXG5leHBvcnQgY29uc3QgY29tbWEgPSAnLCcuY2hhckNvZGVBdCgwKTtcbmV4cG9ydCBjb25zdCBzZW1pY29sb24gPSAnOycuY2hhckNvZGVBdCgwKTtcblxuY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG5jb25zdCBpbnRUb0NoYXIgPSBuZXcgVWludDhBcnJheSg2NCk7IC8vIDY0IHBvc3NpYmxlIGNoYXJzLlxuY29uc3QgY2hhclRvSW50ID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsgLy8geiBpcyAxMjIgaW4gQVNDSUlcblxuZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykge1xuICBjb25zdCBjID0gY2hhcnMuY2hhckNvZGVBdChpKTtcbiAgaW50VG9DaGFyW2ldID0gYztcbiAgY2hhclRvSW50W2NdID0gaTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUludGVnZXIocmVhZGVyOiBTdHJpbmdSZWFkZXIsIHJlbGF0aXZlOiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgdmFsdWUgPSAwO1xuICBsZXQgc2hpZnQgPSAwO1xuICBsZXQgaW50ZWdlciA9IDA7XG5cbiAgZG8ge1xuICAgIGNvbnN0IGMgPSByZWFkZXIubmV4dCgpO1xuICAgIGludGVnZXIgPSBjaGFyVG9JbnRbY107XG4gICAgdmFsdWUgfD0gKGludGVnZXIgJiAzMSkgPDwgc2hpZnQ7XG4gICAgc2hpZnQgKz0gNTtcbiAgfSB3aGlsZSAoaW50ZWdlciAmIDMyKTtcblxuICBjb25zdCBzaG91bGROZWdhdGUgPSB2YWx1ZSAmIDE7XG4gIHZhbHVlID4+Pj0gMTtcblxuICBpZiAoc2hvdWxkTmVnYXRlKSB7XG4gICAgdmFsdWUgPSAtMHg4MDAwMDAwMCB8IC12YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByZWxhdGl2ZSArIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlSW50ZWdlcihidWlsZGVyOiBTdHJpbmdXcml0ZXIsIG51bTogbnVtYmVyLCByZWxhdGl2ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGRlbHRhID0gbnVtIC0gcmVsYXRpdmU7XG5cbiAgZGVsdGEgPSBkZWx0YSA8IDAgPyAoLWRlbHRhIDw8IDEpIHwgMSA6IGRlbHRhIDw8IDE7XG4gIGRvIHtcbiAgICBsZXQgY2xhbXBlZCA9IGRlbHRhICYgMGIwMTExMTE7XG4gICAgZGVsdGEgPj4+PSA1O1xuICAgIGlmIChkZWx0YSA+IDApIGNsYW1wZWQgfD0gMGIxMDAwMDA7XG4gICAgYnVpbGRlci53cml0ZShpbnRUb0NoYXJbY2xhbXBlZF0pO1xuICB9IHdoaWxlIChkZWx0YSA+IDApO1xuXG4gIHJldHVybiBudW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNNb3JlVmxxKHJlYWRlcjogU3RyaW5nUmVhZGVyLCBtYXg6IG51bWJlcikge1xuICBpZiAocmVhZGVyLnBvcyA+PSBtYXgpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHJlYWRlci5wZWVrKCkgIT09IGNvbW1hO1xufVxuIiwgImNvbnN0IGJ1Zkxlbmd0aCA9IDEwMjQgKiAxNjtcblxuLy8gUHJvdmlkZSBhIGZhbGxiYWNrIGZvciBvbGRlciBlbnZpcm9ubWVudHMuXG5jb25zdCB0ZCA9XG4gIHR5cGVvZiBUZXh0RGVjb2RlciAhPT0gJ3VuZGVmaW5lZCdcbiAgICA/IC8qICNfX1BVUkVfXyAqLyBuZXcgVGV4dERlY29kZXIoKVxuICAgIDogdHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCdcbiAgICA/IHtcbiAgICAgICAgZGVjb2RlKGJ1ZjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgICAgICAgY29uc3Qgb3V0ID0gQnVmZmVyLmZyb20oYnVmLmJ1ZmZlciwgYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlTGVuZ3RoKTtcbiAgICAgICAgICByZXR1cm4gb3V0LnRvU3RyaW5nKCk7XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgOiB7XG4gICAgICAgIGRlY29kZShidWY6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgICAgICAgIGxldCBvdXQgPSAnJztcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbmV4cG9ydCBjbGFzcyBTdHJpbmdXcml0ZXIge1xuICBwb3MgPSAwO1xuICBwcml2YXRlIG91dCA9ICcnO1xuICBwcml2YXRlIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJ1Zkxlbmd0aCk7XG5cbiAgd3JpdGUodjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXM7XG4gICAgYnVmZmVyW3RoaXMucG9zKytdID0gdjtcbiAgICBpZiAodGhpcy5wb3MgPT09IGJ1Zkxlbmd0aCkge1xuICAgICAgdGhpcy5vdXQgKz0gdGQuZGVjb2RlKGJ1ZmZlcik7XG4gICAgICB0aGlzLnBvcyA9IDA7XG4gICAgfVxuICB9XG5cbiAgZmx1c2goKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgb3V0LCBwb3MgfSA9IHRoaXM7XG4gICAgcmV0dXJuIHBvcyA+IDAgPyBvdXQgKyB0ZC5kZWNvZGUoYnVmZmVyLnN1YmFycmF5KDAsIHBvcykpIDogb3V0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJpbmdSZWFkZXIge1xuICBwb3MgPSAwO1xuICBwcml2YXRlIGRlY2xhcmUgYnVmZmVyOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoYnVmZmVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJ1ZmZlciA9IGJ1ZmZlcjtcbiAgfVxuXG4gIG5leHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuY2hhckNvZGVBdCh0aGlzLnBvcysrKTtcbiAgfVxuXG4gIHBlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG4gIH1cblxuICBpbmRleE9mKGNoYXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgeyBidWZmZXIsIHBvcyB9ID0gdGhpcztcbiAgICBjb25zdCBpZHggPSBidWZmZXIuaW5kZXhPZihjaGFyLCBwb3MpO1xuICAgIHJldHVybiBpZHggPT09IC0xID8gYnVmZmVyLmxlbmd0aCA6IGlkeDtcbiAgfVxufVxuIiwgImltcG9ydCB7IFN0cmluZ1JlYWRlciwgU3RyaW5nV3JpdGVyIH0gZnJvbSAnLi9zdHJpbmdzJztcbmltcG9ydCB7IGNvbW1hLCBkZWNvZGVJbnRlZ2VyLCBlbmNvZGVJbnRlZ2VyLCBoYXNNb3JlVmxxLCBzZW1pY29sb24gfSBmcm9tICcuL3ZscSc7XG5cbmNvbnN0IEVNUFRZOiBhbnlbXSA9IFtdO1xuXG50eXBlIExpbmUgPSBudW1iZXI7XG50eXBlIENvbHVtbiA9IG51bWJlcjtcbnR5cGUgS2luZCA9IG51bWJlcjtcbnR5cGUgTmFtZSA9IG51bWJlcjtcbnR5cGUgVmFyID0gbnVtYmVyO1xudHlwZSBTb3VyY2VzSW5kZXggPSBudW1iZXI7XG50eXBlIFNjb3Blc0luZGV4ID0gbnVtYmVyO1xuXG50eXBlIE1peDxBLCBCLCBPPiA9IChBICYgTykgfCAoQiAmIE8pO1xuXG5leHBvcnQgdHlwZSBPcmlnaW5hbFNjb3BlID0gTWl4PFxuICBbTGluZSwgQ29sdW1uLCBMaW5lLCBDb2x1bW4sIEtpbmRdLFxuICBbTGluZSwgQ29sdW1uLCBMaW5lLCBDb2x1bW4sIEtpbmQsIE5hbWVdLFxuICB7IHZhcnM6IFZhcltdIH1cbj47XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlZFJhbmdlID0gTWl4PFxuICBbTGluZSwgQ29sdW1uLCBMaW5lLCBDb2x1bW5dLFxuICBbTGluZSwgQ29sdW1uLCBMaW5lLCBDb2x1bW4sIFNvdXJjZXNJbmRleCwgU2NvcGVzSW5kZXhdLFxuICB7XG4gICAgY2FsbHNpdGU6IENhbGxTaXRlIHwgbnVsbDtcbiAgICBiaW5kaW5nczogQmluZGluZ1tdO1xuICAgIGlzU2NvcGU6IGJvb2xlYW47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBDYWxsU2l0ZSA9IFtTb3VyY2VzSW5kZXgsIExpbmUsIENvbHVtbl07XG50eXBlIEJpbmRpbmcgPSBCaW5kaW5nRXhwcmVzc2lvblJhbmdlW107XG5leHBvcnQgdHlwZSBCaW5kaW5nRXhwcmVzc2lvblJhbmdlID0gW05hbWVdIHwgW05hbWUsIExpbmUsIENvbHVtbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVPcmlnaW5hbFNjb3BlcyhpbnB1dDogc3RyaW5nKTogT3JpZ2luYWxTY29wZVtdIHtcbiAgY29uc3QgeyBsZW5ndGggfSA9IGlucHV0O1xuICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTtcbiAgY29uc3Qgc2NvcGVzOiBPcmlnaW5hbFNjb3BlW10gPSBbXTtcbiAgY29uc3Qgc3RhY2s6IE9yaWdpbmFsU2NvcGVbXSA9IFtdO1xuICBsZXQgbGluZSA9IDA7XG5cbiAgZm9yICg7IHJlYWRlci5wb3MgPCBsZW5ndGg7IHJlYWRlci5wb3MrKykge1xuICAgIGxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgbGluZSk7XG4gICAgY29uc3QgY29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApO1xuXG4gICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkge1xuICAgICAgY29uc3QgbGFzdCA9IHN0YWNrLnBvcCgpITtcbiAgICAgIGxhc3RbMl0gPSBsaW5lO1xuICAgICAgbGFzdFszXSA9IGNvbHVtbjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGtpbmQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgY29uc3QgZmllbGRzID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApO1xuICAgIGNvbnN0IGhhc05hbWUgPSBmaWVsZHMgJiAwYjAwMDE7XG5cbiAgICBjb25zdCBzY29wZTogT3JpZ2luYWxTY29wZSA9IChcbiAgICAgIGhhc05hbWUgPyBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kLCBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldIDogW2xpbmUsIGNvbHVtbiwgMCwgMCwga2luZF1cbiAgICApIGFzIE9yaWdpbmFsU2NvcGU7XG5cbiAgICBsZXQgdmFyczogVmFyW10gPSBFTVBUWTtcbiAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpIHtcbiAgICAgIHZhcnMgPSBbXTtcbiAgICAgIGRvIHtcbiAgICAgICAgY29uc3QgdmFyc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApO1xuICAgICAgICB2YXJzLnB1c2godmFyc0luZGV4KTtcbiAgICAgIH0gd2hpbGUgKGhhc01vcmVWbHEocmVhZGVyLCBsZW5ndGgpKTtcbiAgICB9XG4gICAgc2NvcGUudmFycyA9IHZhcnM7XG5cbiAgICBzY29wZXMucHVzaChzY29wZSk7XG4gICAgc3RhY2sucHVzaChzY29wZSk7XG4gIH1cblxuICByZXR1cm4gc2NvcGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzOiBPcmlnaW5hbFNjb3BlW10pOiBzdHJpbmcge1xuICBjb25zdCB3cml0ZXIgPSBuZXcgU3RyaW5nV3JpdGVyKCk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY29wZXMubGVuZ3RoOyApIHtcbiAgICBpID0gX2VuY29kZU9yaWdpbmFsU2NvcGVzKHNjb3BlcywgaSwgd3JpdGVyLCBbMF0pO1xuICB9XG5cbiAgcmV0dXJuIHdyaXRlci5mbHVzaCgpO1xufVxuXG5mdW5jdGlvbiBfZW5jb2RlT3JpZ2luYWxTY29wZXMoXG4gIHNjb3BlczogT3JpZ2luYWxTY29wZVtdLFxuICBpbmRleDogbnVtYmVyLFxuICB3cml0ZXI6IFN0cmluZ1dyaXRlcixcbiAgc3RhdGU6IFtcbiAgICBudW1iZXIsIC8vIEdlbkNvbHVtblxuICBdLFxuKTogbnVtYmVyIHtcbiAgY29uc3Qgc2NvcGUgPSBzY29wZXNbaW5kZXhdO1xuICBjb25zdCB7IDA6IHN0YXJ0TGluZSwgMTogc3RhcnRDb2x1bW4sIDI6IGVuZExpbmUsIDM6IGVuZENvbHVtbiwgNDoga2luZCwgdmFycyB9ID0gc2NvcGU7XG5cbiAgaWYgKGluZGV4ID4gMCkgd3JpdGVyLndyaXRlKGNvbW1hKTtcblxuICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzdGFydExpbmUsIHN0YXRlWzBdKTtcbiAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHN0YXJ0Q29sdW1uLCAwKTtcbiAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGtpbmQsIDApO1xuXG4gIGNvbnN0IGZpZWxkcyA9IHNjb3BlLmxlbmd0aCA9PT0gNiA/IDBiMDAwMSA6IDA7XG4gIGVuY29kZUludGVnZXIod3JpdGVyLCBmaWVsZHMsIDApO1xuICBpZiAoc2NvcGUubGVuZ3RoID09PSA2KSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVbNV0sIDApO1xuXG4gIGZvciAoY29uc3QgdiBvZiB2YXJzKSB7XG4gICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHYsIDApO1xuICB9XG5cbiAgZm9yIChpbmRleCsrOyBpbmRleCA8IHNjb3Blcy5sZW5ndGg7ICkge1xuICAgIGNvbnN0IG5leHQgPSBzY29wZXNbaW5kZXhdO1xuICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDtcbiAgICBpZiAobCA+IGVuZExpbmUgfHwgKGwgPT09IGVuZExpbmUgJiYgYyA+PSBlbmRDb2x1bW4pKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaW5kZXggPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSk7XG4gIH1cblxuICB3cml0ZXIud3JpdGUoY29tbWEpO1xuICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRMaW5lLCBzdGF0ZVswXSk7XG4gIGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIDApO1xuXG4gIHJldHVybiBpbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUdlbmVyYXRlZFJhbmdlcyhpbnB1dDogc3RyaW5nKTogR2VuZXJhdGVkUmFuZ2VbXSB7XG4gIGNvbnN0IHsgbGVuZ3RoIH0gPSBpbnB1dDtcbiAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihpbnB1dCk7XG4gIGNvbnN0IHJhbmdlczogR2VuZXJhdGVkUmFuZ2VbXSA9IFtdO1xuICBjb25zdCBzdGFjazogR2VuZXJhdGVkUmFuZ2VbXSA9IFtdO1xuXG4gIGxldCBnZW5MaW5lID0gMDtcbiAgbGV0IGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSAwO1xuICBsZXQgZGVmaW5pdGlvblNjb3BlSW5kZXggPSAwO1xuICBsZXQgY2FsbHNpdGVTb3VyY2VzSW5kZXggPSAwO1xuICBsZXQgY2FsbHNpdGVMaW5lID0gMDtcbiAgbGV0IGNhbGxzaXRlQ29sdW1uID0gMDtcbiAgbGV0IGJpbmRpbmdMaW5lID0gMDtcbiAgbGV0IGJpbmRpbmdDb2x1bW4gPSAwO1xuXG4gIGRvIHtcbiAgICBjb25zdCBzZW1pID0gcmVhZGVyLmluZGV4T2YoJzsnKTtcbiAgICBsZXQgZ2VuQ29sdW1uID0gMDtcblxuICAgIGZvciAoOyByZWFkZXIucG9zIDwgc2VtaTsgcmVhZGVyLnBvcysrKSB7XG4gICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTtcblxuICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHN0YWNrLnBvcCgpITtcbiAgICAgICAgbGFzdFsyXSA9IGdlbkxpbmU7XG4gICAgICAgIGxhc3RbM10gPSBnZW5Db2x1bW47XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgICBjb25zdCBoYXNEZWZpbml0aW9uID0gZmllbGRzICYgMGIwMDAxO1xuICAgICAgY29uc3QgaGFzQ2FsbHNpdGUgPSBmaWVsZHMgJiAwYjAwMTA7XG4gICAgICBjb25zdCBoYXNTY29wZSA9IGZpZWxkcyAmIDBiMDEwMDtcblxuICAgICAgbGV0IGNhbGxzaXRlOiBDYWxsU2l0ZSB8IG51bGwgPSBudWxsO1xuICAgICAgbGV0IGJpbmRpbmdzOiBCaW5kaW5nW10gPSBFTVBUWTtcbiAgICAgIGxldCByYW5nZTogR2VuZXJhdGVkUmFuZ2U7XG4gICAgICBpZiAoaGFzRGVmaW5pdGlvbikge1xuICAgICAgICBjb25zdCBkZWZTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCk7XG4gICAgICAgIGRlZmluaXRpb25TY29wZUluZGV4ID0gZGVjb2RlSW50ZWdlcihcbiAgICAgICAgICByZWFkZXIsXG4gICAgICAgICAgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9PT0gZGVmU291cmNlc0luZGV4ID8gZGVmaW5pdGlvblNjb3BlSW5kZXggOiAwLFxuICAgICAgICApO1xuXG4gICAgICAgIGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSBkZWZTb3VyY2VzSW5kZXg7XG4gICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMCwgZGVmU291cmNlc0luZGV4LCBkZWZpbml0aW9uU2NvcGVJbmRleF0gYXMgR2VuZXJhdGVkUmFuZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByYW5nZSA9IFtnZW5MaW5lLCBnZW5Db2x1bW4sIDAsIDBdIGFzIEdlbmVyYXRlZFJhbmdlO1xuICAgICAgfVxuXG4gICAgICByYW5nZS5pc1Njb3BlID0gISFoYXNTY29wZTtcblxuICAgICAgaWYgKGhhc0NhbGxzaXRlKSB7XG4gICAgICAgIGNvbnN0IHByZXZDc2kgPSBjYWxsc2l0ZVNvdXJjZXNJbmRleDtcbiAgICAgICAgY29uc3QgcHJldkxpbmUgPSBjYWxsc2l0ZUxpbmU7XG4gICAgICAgIGNhbGxzaXRlU291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGNhbGxzaXRlU291cmNlc0luZGV4KTtcbiAgICAgICAgY29uc3Qgc2FtZVNvdXJjZSA9IHByZXZDc2kgPT09IGNhbGxzaXRlU291cmNlc0luZGV4O1xuICAgICAgICBjYWxsc2l0ZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc2FtZVNvdXJjZSA/IGNhbGxzaXRlTGluZSA6IDApO1xuICAgICAgICBjYWxsc2l0ZUNvbHVtbiA9IGRlY29kZUludGVnZXIoXG4gICAgICAgICAgcmVhZGVyLFxuICAgICAgICAgIHNhbWVTb3VyY2UgJiYgcHJldkxpbmUgPT09IGNhbGxzaXRlTGluZSA/IGNhbGxzaXRlQ29sdW1uIDogMCxcbiAgICAgICAgKTtcblxuICAgICAgICBjYWxsc2l0ZSA9IFtjYWxsc2l0ZVNvdXJjZXNJbmRleCwgY2FsbHNpdGVMaW5lLCBjYWxsc2l0ZUNvbHVtbl07XG4gICAgICB9XG4gICAgICByYW5nZS5jYWxsc2l0ZSA9IGNhbGxzaXRlO1xuXG4gICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKSB7XG4gICAgICAgIGJpbmRpbmdzID0gW107XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBiaW5kaW5nTGluZSA9IGdlbkxpbmU7XG4gICAgICAgICAgYmluZGluZ0NvbHVtbiA9IGdlbkNvbHVtbjtcbiAgICAgICAgICBjb25zdCBleHByZXNzaW9uc0NvdW50ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApO1xuICAgICAgICAgIGxldCBleHByZXNzaW9uUmFuZ2VzOiBCaW5kaW5nRXhwcmVzc2lvblJhbmdlW107XG4gICAgICAgICAgaWYgKGV4cHJlc3Npb25zQ291bnQgPCAtMSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApXV07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gLTE7IGkgPiBleHByZXNzaW9uc0NvdW50OyBpLS0pIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJldkJsID0gYmluZGluZ0xpbmU7XG4gICAgICAgICAgICAgIGJpbmRpbmdMaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGJpbmRpbmdMaW5lKTtcbiAgICAgICAgICAgICAgYmluZGluZ0NvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBiaW5kaW5nTGluZSA9PT0gcHJldkJsID8gYmluZGluZ0NvbHVtbiA6IDApO1xuICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApO1xuICAgICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzLnB1c2goW2V4cHJlc3Npb24sIGJpbmRpbmdMaW5lLCBiaW5kaW5nQ29sdW1uXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMgPSBbW2V4cHJlc3Npb25zQ291bnRdXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYmluZGluZ3MucHVzaChleHByZXNzaW9uUmFuZ2VzKTtcbiAgICAgICAgfSB3aGlsZSAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKTtcbiAgICAgIH1cbiAgICAgIHJhbmdlLmJpbmRpbmdzID0gYmluZGluZ3M7XG5cbiAgICAgIHJhbmdlcy5wdXNoKHJhbmdlKTtcbiAgICAgIHN0YWNrLnB1c2gocmFuZ2UpO1xuICAgIH1cblxuICAgIGdlbkxpbmUrKztcbiAgICByZWFkZXIucG9zID0gc2VtaSArIDE7XG4gIH0gd2hpbGUgKHJlYWRlci5wb3MgPCBsZW5ndGgpO1xuXG4gIHJldHVybiByYW5nZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzOiBHZW5lcmF0ZWRSYW5nZVtdKTogc3RyaW5nIHtcbiAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcblxuICBjb25zdCB3cml0ZXIgPSBuZXcgU3RyaW5nV3JpdGVyKCk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyApIHtcbiAgICBpID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGksIHdyaXRlciwgWzAsIDAsIDAsIDAsIDAsIDAsIDBdKTtcbiAgfVxuXG4gIHJldHVybiB3cml0ZXIuZmx1c2goKTtcbn1cblxuZnVuY3Rpb24gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhcbiAgcmFuZ2VzOiBHZW5lcmF0ZWRSYW5nZVtdLFxuICBpbmRleDogbnVtYmVyLFxuICB3cml0ZXI6IFN0cmluZ1dyaXRlcixcbiAgc3RhdGU6IFtcbiAgICBudW1iZXIsIC8vIEdlbkxpbmVcbiAgICBudW1iZXIsIC8vIEdlbkNvbHVtblxuICAgIG51bWJlciwgLy8gRGVmU291cmNlc0luZGV4XG4gICAgbnVtYmVyLCAvLyBEZWZTY29wZXNJbmRleFxuICAgIG51bWJlciwgLy8gQ2FsbFNvdXJjZXNJbmRleFxuICAgIG51bWJlciwgLy8gQ2FsbExpbmVcbiAgICBudW1iZXIsIC8vIENhbGxDb2x1bW5cbiAgXSxcbik6IG51bWJlciB7XG4gIGNvbnN0IHJhbmdlID0gcmFuZ2VzW2luZGV4XTtcbiAgY29uc3Qge1xuICAgIDA6IHN0YXJ0TGluZSxcbiAgICAxOiBzdGFydENvbHVtbixcbiAgICAyOiBlbmRMaW5lLFxuICAgIDM6IGVuZENvbHVtbixcbiAgICBpc1Njb3BlLFxuICAgIGNhbGxzaXRlLFxuICAgIGJpbmRpbmdzLFxuICB9ID0gcmFuZ2U7XG5cbiAgaWYgKHN0YXRlWzBdIDwgc3RhcnRMaW5lKSB7XG4gICAgY2F0Y2h1cExpbmUod3JpdGVyLCBzdGF0ZVswXSwgc3RhcnRMaW5lKTtcbiAgICBzdGF0ZVswXSA9IHN0YXJ0TGluZTtcbiAgICBzdGF0ZVsxXSA9IDA7XG4gIH0gZWxzZSBpZiAoaW5kZXggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlKGNvbW1hKTtcbiAgfVxuXG4gIHN0YXRlWzFdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHJhbmdlWzFdLCBzdGF0ZVsxXSk7XG5cbiAgY29uc3QgZmllbGRzID1cbiAgICAocmFuZ2UubGVuZ3RoID09PSA2ID8gMGIwMDAxIDogMCkgfCAoY2FsbHNpdGUgPyAwYjAwMTAgOiAwKSB8IChpc1Njb3BlID8gMGIwMTAwIDogMCk7XG4gIGVuY29kZUludGVnZXIod3JpdGVyLCBmaWVsZHMsIDApO1xuXG4gIGlmIChyYW5nZS5sZW5ndGggPT09IDYpIHtcbiAgICBjb25zdCB7IDQ6IHNvdXJjZXNJbmRleCwgNTogc2NvcGVzSW5kZXggfSA9IHJhbmdlO1xuICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzJdKSB7XG4gICAgICBzdGF0ZVszXSA9IDA7XG4gICAgfVxuICAgIHN0YXRlWzJdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbMl0pO1xuICAgIHN0YXRlWzNdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNjb3Blc0luZGV4LCBzdGF0ZVszXSk7XG4gIH1cblxuICBpZiAoY2FsbHNpdGUpIHtcbiAgICBjb25zdCB7IDA6IHNvdXJjZXNJbmRleCwgMTogY2FsbExpbmUsIDI6IGNhbGxDb2x1bW4gfSA9IHJhbmdlLmNhbGxzaXRlITtcbiAgICBpZiAoc291cmNlc0luZGV4ICE9PSBzdGF0ZVs0XSkge1xuICAgICAgc3RhdGVbNV0gPSAwO1xuICAgICAgc3RhdGVbNl0gPSAwO1xuICAgIH0gZWxzZSBpZiAoY2FsbExpbmUgIT09IHN0YXRlWzVdKSB7XG4gICAgICBzdGF0ZVs2XSA9IDA7XG4gICAgfVxuICAgIHN0YXRlWzRdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbNF0pO1xuICAgIHN0YXRlWzVdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGNhbGxMaW5lLCBzdGF0ZVs1XSk7XG4gICAgc3RhdGVbNl0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgY2FsbENvbHVtbiwgc3RhdGVbNl0pO1xuICB9XG5cbiAgaWYgKGJpbmRpbmdzKSB7XG4gICAgZm9yIChjb25zdCBiaW5kaW5nIG9mIGJpbmRpbmdzKSB7XG4gICAgICBpZiAoYmluZGluZy5sZW5ndGggPiAxKSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgLWJpbmRpbmcubGVuZ3RoLCAwKTtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBiaW5kaW5nWzBdWzBdO1xuICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cHJlc3Npb24sIDApO1xuICAgICAgbGV0IGJpbmRpbmdTdGFydExpbmUgPSBzdGFydExpbmU7XG4gICAgICBsZXQgYmluZGluZ1N0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGJpbmRpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZXhwUmFuZ2UgPSBiaW5kaW5nW2ldO1xuICAgICAgICBiaW5kaW5nU3RhcnRMaW5lID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzFdISwgYmluZGluZ1N0YXJ0TGluZSk7XG4gICAgICAgIGJpbmRpbmdTdGFydENvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBleHBSYW5nZVsyXSEsIGJpbmRpbmdTdGFydENvbHVtbik7XG4gICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBleHBSYW5nZVswXSEsIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvciAoaW5kZXgrKzsgaW5kZXggPCByYW5nZXMubGVuZ3RoOyApIHtcbiAgICBjb25zdCBuZXh0ID0gcmFuZ2VzW2luZGV4XTtcbiAgICBjb25zdCB7IDA6IGwsIDE6IGMgfSA9IG5leHQ7XG4gICAgaWYgKGwgPiBlbmRMaW5lIHx8IChsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGluZGV4ID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKTtcbiAgfVxuXG4gIGlmIChzdGF0ZVswXSA8IGVuZExpbmUpIHtcbiAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBlbmRMaW5lKTtcbiAgICBzdGF0ZVswXSA9IGVuZExpbmU7XG4gICAgc3RhdGVbMV0gPSAwO1xuICB9IGVsc2Uge1xuICAgIHdyaXRlci53cml0ZShjb21tYSk7XG4gIH1cbiAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kQ29sdW1uLCBzdGF0ZVsxXSk7XG5cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiBjYXRjaHVwTGluZSh3cml0ZXI6IFN0cmluZ1dyaXRlciwgbGFzdExpbmU6IG51bWJlciwgbGluZTogbnVtYmVyKSB7XG4gIGRvIHtcbiAgICB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTtcbiAgfSB3aGlsZSAoKytsYXN0TGluZSA8IGxpbmUpO1xufVxuIiwgImltcG9ydCB7IGNvbW1hLCBkZWNvZGVJbnRlZ2VyLCBlbmNvZGVJbnRlZ2VyLCBoYXNNb3JlVmxxLCBzZW1pY29sb24gfSBmcm9tICcuL3ZscSc7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZXIsIFN0cmluZ1JlYWRlciB9IGZyb20gJy4vc3RyaW5ncyc7XG5cbmV4cG9ydCB7XG4gIGRlY29kZU9yaWdpbmFsU2NvcGVzLFxuICBlbmNvZGVPcmlnaW5hbFNjb3BlcyxcbiAgZGVjb2RlR2VuZXJhdGVkUmFuZ2VzLFxuICBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMsXG59IGZyb20gJy4vc2NvcGVzJztcbmV4cG9ydCB0eXBlIHsgT3JpZ2luYWxTY29wZSwgR2VuZXJhdGVkUmFuZ2UsIENhbGxTaXRlLCBCaW5kaW5nRXhwcmVzc2lvblJhbmdlIH0gZnJvbSAnLi9zY29wZXMnO1xuXG5leHBvcnQgdHlwZSBTb3VyY2VNYXBTZWdtZW50ID1cbiAgfCBbbnVtYmVyXVxuICB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNvdXJjZU1hcExpbmUgPSBTb3VyY2VNYXBTZWdtZW50W107XG5leHBvcnQgdHlwZSBTb3VyY2VNYXBNYXBwaW5ncyA9IFNvdXJjZU1hcExpbmVbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZShtYXBwaW5nczogc3RyaW5nKTogU291cmNlTWFwTWFwcGluZ3Mge1xuICBjb25zdCB7IGxlbmd0aCB9ID0gbWFwcGluZ3M7XG4gIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIobWFwcGluZ3MpO1xuICBjb25zdCBkZWNvZGVkOiBTb3VyY2VNYXBNYXBwaW5ncyA9IFtdO1xuICBsZXQgZ2VuQ29sdW1uID0gMDtcbiAgbGV0IHNvdXJjZXNJbmRleCA9IDA7XG4gIGxldCBzb3VyY2VMaW5lID0gMDtcbiAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7XG4gIGxldCBuYW1lc0luZGV4ID0gMDtcblxuICBkbyB7XG4gICAgY29uc3Qgc2VtaSA9IHJlYWRlci5pbmRleE9mKCc7Jyk7XG4gICAgY29uc3QgbGluZTogU291cmNlTWFwTGluZSA9IFtdO1xuICAgIGxldCBzb3J0ZWQgPSB0cnVlO1xuICAgIGxldCBsYXN0Q29sID0gMDtcbiAgICBnZW5Db2x1bW4gPSAwO1xuXG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBzZW1pKSB7XG4gICAgICBsZXQgc2VnOiBTb3VyY2VNYXBTZWdtZW50O1xuXG4gICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTtcbiAgICAgIGlmIChnZW5Db2x1bW4gPCBsYXN0Q29sKSBzb3J0ZWQgPSBmYWxzZTtcbiAgICAgIGxhc3RDb2wgPSBnZW5Db2x1bW47XG5cbiAgICAgIGlmIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHtcbiAgICAgICAgc291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZXNJbmRleCk7XG4gICAgICAgIHNvdXJjZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlTGluZSk7XG4gICAgICAgIHNvdXJjZUNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VDb2x1bW4pO1xuXG4gICAgICAgIGlmIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHtcbiAgICAgICAgICBuYW1lc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIG5hbWVzSW5kZXgpO1xuICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWcgPSBbZ2VuQ29sdW1uLCBzb3VyY2VzSW5kZXgsIHNvdXJjZUxpbmUsIHNvdXJjZUNvbHVtbl07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZyA9IFtnZW5Db2x1bW5dO1xuICAgICAgfVxuXG4gICAgICBsaW5lLnB1c2goc2VnKTtcbiAgICAgIHJlYWRlci5wb3MrKztcbiAgICB9XG5cbiAgICBpZiAoIXNvcnRlZCkgc29ydChsaW5lKTtcbiAgICBkZWNvZGVkLnB1c2gobGluZSk7XG4gICAgcmVhZGVyLnBvcyA9IHNlbWkgKyAxO1xuICB9IHdoaWxlIChyZWFkZXIucG9zIDw9IGxlbmd0aCk7XG5cbiAgcmV0dXJuIGRlY29kZWQ7XG59XG5cbmZ1bmN0aW9uIHNvcnQobGluZTogU291cmNlTWFwU2VnbWVudFtdKSB7XG4gIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7XG59XG5cbmZ1bmN0aW9uIHNvcnRDb21wYXJhdG9yKGE6IFNvdXJjZU1hcFNlZ21lbnQsIGI6IFNvdXJjZU1hcFNlZ21lbnQpOiBudW1iZXIge1xuICByZXR1cm4gYVswXSAtIGJbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZDogU291cmNlTWFwTWFwcGluZ3MpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlKGRlY29kZWQ6IFJlYWRvbmx5PFNvdXJjZU1hcE1hcHBpbmdzPik6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZDogUmVhZG9ubHk8U291cmNlTWFwTWFwcGluZ3M+KTogc3RyaW5nIHtcbiAgY29uc3Qgd3JpdGVyID0gbmV3IFN0cmluZ1dyaXRlcigpO1xuICBsZXQgc291cmNlc0luZGV4ID0gMDtcbiAgbGV0IHNvdXJjZUxpbmUgPSAwO1xuICBsZXQgc291cmNlQ29sdW1uID0gMDtcbiAgbGV0IG5hbWVzSW5kZXggPSAwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmUgPSBkZWNvZGVkW2ldO1xuICAgIGlmIChpID4gMCkgd3JpdGVyLndyaXRlKHNlbWljb2xvbik7XG4gICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKSBjb250aW51ZTtcblxuICAgIGxldCBnZW5Db2x1bW4gPSAwO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBzZWdtZW50ID0gbGluZVtqXTtcbiAgICAgIGlmIChqID4gMCkgd3JpdGVyLndyaXRlKGNvbW1hKTtcblxuICAgICAgZ2VuQ29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMF0sIGdlbkNvbHVtbik7XG5cbiAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkgY29udGludWU7XG4gICAgICBzb3VyY2VzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsxXSwgc291cmNlc0luZGV4KTtcbiAgICAgIHNvdXJjZUxpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsyXSwgc291cmNlTGluZSk7XG4gICAgICBzb3VyY2VDb2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFszXSwgc291cmNlQ29sdW1uKTtcblxuICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSA0KSBjb250aW51ZTtcbiAgICAgIG5hbWVzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFs0XSwgbmFtZXNJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdyaXRlci5mbHVzaCgpO1xufVxuIiwgIi8vIE1hdGNoZXMgdGhlIHNjaGVtZSBvZiBhIFVSTCwgZWcgXCJodHRwOi8vXCJcbmNvbnN0IHNjaGVtZVJlZ2V4ID0gL15bXFx3Ky4tXSs6XFwvXFwvLztcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBwYXJ0cyBvZiBhIFVSTDpcbiAqIDEuIFNjaGVtZSwgaW5jbHVkaW5nIFwiOlwiLCBndWFyYW50ZWVkLlxuICogMi4gVXNlci9wYXNzd29yZCwgaW5jbHVkaW5nIFwiQFwiLCBvcHRpb25hbC5cbiAqIDMuIEhvc3QsIGd1YXJhbnRlZWQuXG4gKiA0LiBQb3J0LCBpbmNsdWRpbmcgXCI6XCIsIG9wdGlvbmFsLlxuICogNS4gUGF0aCwgaW5jbHVkaW5nIFwiL1wiLCBvcHRpb25hbC5cbiAqIDYuIFF1ZXJ5LCBpbmNsdWRpbmcgXCI/XCIsIG9wdGlvbmFsLlxuICogNy4gSGFzaCwgaW5jbHVkaW5nIFwiI1wiLCBvcHRpb25hbC5cbiAqL1xuY29uc3QgdXJsUmVnZXggPSAvXihbXFx3Ky4tXSs6KVxcL1xcLyhbXkAvIz9dKkApPyhbXjovIz9dKikoOlxcZCspPyhcXC9bXiM/XSopPyhcXD9bXiNdKik/KCMuKik/LztcblxuLyoqXG4gKiBGaWxlIFVSTHMgYXJlIHdlaXJkLiBUaGV5IGRvbnQnIG5lZWQgdGhlIHJlZ3VsYXIgYC8vYCBpbiB0aGUgc2NoZW1lLCB0aGV5IG1heSBvciBtYXkgbm90IHN0YXJ0XG4gKiB3aXRoIGEgbGVhZGluZyBgL2AsIHRoZXkgY2FuIGhhdmUgYSBkb21haW4gKGJ1dCBvbmx5IGlmIHRoZXkgZG9uJ3Qgc3RhcnQgd2l0aCBhIFdpbmRvd3MgZHJpdmUpLlxuICpcbiAqIDEuIEhvc3QsIG9wdGlvbmFsLlxuICogMi4gUGF0aCwgd2hpY2ggbWF5IGluY2x1ZGUgXCIvXCIsIGd1YXJhbnRlZWQuXG4gKiAzLiBRdWVyeSwgaW5jbHVkaW5nIFwiP1wiLCBvcHRpb25hbC5cbiAqIDQuIEhhc2gsIGluY2x1ZGluZyBcIiNcIiwgb3B0aW9uYWwuXG4gKi9cbmNvbnN0IGZpbGVSZWdleCA9IC9eZmlsZTooPzpcXC9cXC8oKD8hW2Etel06KVteLyM/XSopPyk/KFxcLz9bXiM/XSopKFxcP1teI10qKT8oIy4qKT8vaTtcblxudHlwZSBVcmwgPSB7XG4gIHNjaGVtZTogc3RyaW5nO1xuICB1c2VyOiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbiAgdHlwZTogVXJsVHlwZTtcbn07XG5cbmNvbnN0IGVudW0gVXJsVHlwZSB7XG4gIEVtcHR5ID0gMSxcbiAgSGFzaCA9IDIsXG4gIFF1ZXJ5ID0gMyxcbiAgUmVsYXRpdmVQYXRoID0gNCxcbiAgQWJzb2x1dGVQYXRoID0gNSxcbiAgU2NoZW1lUmVsYXRpdmUgPSA2LFxuICBBYnNvbHV0ZSA9IDcsXG59XG5cbmZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwoaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc2NoZW1lUmVnZXgudGVzdChpbnB1dCk7XG59XG5cbmZ1bmN0aW9uIGlzU2NoZW1lUmVsYXRpdmVVcmwoaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaW5wdXQuc3RhcnRzV2l0aCgnLy8nKTtcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZVBhdGgoaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaW5wdXQuc3RhcnRzV2l0aCgnLycpO1xufVxuXG5mdW5jdGlvbiBpc0ZpbGVVcmwoaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaW5wdXQuc3RhcnRzV2l0aCgnZmlsZTonKTtcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZShpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXlsuPyNdLy50ZXN0KGlucHV0KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VBYnNvbHV0ZVVybChpbnB1dDogc3RyaW5nKTogVXJsIHtcbiAgY29uc3QgbWF0Y2ggPSB1cmxSZWdleC5leGVjKGlucHV0KSE7XG4gIHJldHVybiBtYWtlVXJsKFxuICAgIG1hdGNoWzFdLFxuICAgIG1hdGNoWzJdIHx8ICcnLFxuICAgIG1hdGNoWzNdLFxuICAgIG1hdGNoWzRdIHx8ICcnLFxuICAgIG1hdGNoWzVdIHx8ICcvJyxcbiAgICBtYXRjaFs2XSB8fCAnJyxcbiAgICBtYXRjaFs3XSB8fCAnJyxcbiAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VGaWxlVXJsKGlucHV0OiBzdHJpbmcpOiBVcmwge1xuICBjb25zdCBtYXRjaCA9IGZpbGVSZWdleC5leGVjKGlucHV0KSE7XG4gIGNvbnN0IHBhdGggPSBtYXRjaFsyXTtcbiAgcmV0dXJuIG1ha2VVcmwoXG4gICAgJ2ZpbGU6JyxcbiAgICAnJyxcbiAgICBtYXRjaFsxXSB8fCAnJyxcbiAgICAnJyxcbiAgICBpc0Fic29sdXRlUGF0aChwYXRoKSA/IHBhdGggOiAnLycgKyBwYXRoLFxuICAgIG1hdGNoWzNdIHx8ICcnLFxuICAgIG1hdGNoWzRdIHx8ICcnLFxuICApO1xufVxuXG5mdW5jdGlvbiBtYWtlVXJsKFxuICBzY2hlbWU6IHN0cmluZyxcbiAgdXNlcjogc3RyaW5nLFxuICBob3N0OiBzdHJpbmcsXG4gIHBvcnQ6IHN0cmluZyxcbiAgcGF0aDogc3RyaW5nLFxuICBxdWVyeTogc3RyaW5nLFxuICBoYXNoOiBzdHJpbmcsXG4pOiBVcmwge1xuICByZXR1cm4ge1xuICAgIHNjaGVtZSxcbiAgICB1c2VyLFxuICAgIGhvc3QsXG4gICAgcG9ydCxcbiAgICBwYXRoLFxuICAgIHF1ZXJ5LFxuICAgIGhhc2gsXG4gICAgdHlwZTogVXJsVHlwZS5BYnNvbHV0ZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VVcmwoaW5wdXQ6IHN0cmluZyk6IFVybCB7XG4gIGlmIChpc1NjaGVtZVJlbGF0aXZlVXJsKGlucHV0KSkge1xuICAgIGNvbnN0IHVybCA9IHBhcnNlQWJzb2x1dGVVcmwoJ2h0dHA6JyArIGlucHV0KTtcbiAgICB1cmwuc2NoZW1lID0gJyc7XG4gICAgdXJsLnR5cGUgPSBVcmxUeXBlLlNjaGVtZVJlbGF0aXZlO1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBpZiAoaXNBYnNvbHV0ZVBhdGgoaW5wdXQpKSB7XG4gICAgY29uc3QgdXJsID0gcGFyc2VBYnNvbHV0ZVVybCgnaHR0cDovL2Zvby5jb20nICsgaW5wdXQpO1xuICAgIHVybC5zY2hlbWUgPSAnJztcbiAgICB1cmwuaG9zdCA9ICcnO1xuICAgIHVybC50eXBlID0gVXJsVHlwZS5BYnNvbHV0ZVBhdGg7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGlmIChpc0ZpbGVVcmwoaW5wdXQpKSByZXR1cm4gcGFyc2VGaWxlVXJsKGlucHV0KTtcblxuICBpZiAoaXNBYnNvbHV0ZVVybChpbnB1dCkpIHJldHVybiBwYXJzZUFic29sdXRlVXJsKGlucHV0KTtcblxuICBjb25zdCB1cmwgPSBwYXJzZUFic29sdXRlVXJsKCdodHRwOi8vZm9vLmNvbS8nICsgaW5wdXQpO1xuICB1cmwuc2NoZW1lID0gJyc7XG4gIHVybC5ob3N0ID0gJyc7XG4gIHVybC50eXBlID0gaW5wdXRcbiAgICA/IGlucHV0LnN0YXJ0c1dpdGgoJz8nKVxuICAgICAgPyBVcmxUeXBlLlF1ZXJ5XG4gICAgICA6IGlucHV0LnN0YXJ0c1dpdGgoJyMnKVxuICAgICAgPyBVcmxUeXBlLkhhc2hcbiAgICAgIDogVXJsVHlwZS5SZWxhdGl2ZVBhdGhcbiAgICA6IFVybFR5cGUuRW1wdHk7XG4gIHJldHVybiB1cmw7XG59XG5cbmZ1bmN0aW9uIHN0cmlwUGF0aEZpbGVuYW1lKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIElmIGEgcGF0aCBlbmRzIHdpdGggYSBwYXJlbnQgZGlyZWN0b3J5IFwiLi5cIiwgdGhlbiBpdCdzIGEgcmVsYXRpdmUgcGF0aCB3aXRoIGV4Y2VzcyBwYXJlbnRcbiAgLy8gcGF0aHMuIEl0J3Mgbm90IGEgZmlsZSwgc28gd2UgY2FuJ3Qgc3RyaXAgaXQuXG4gIGlmIChwYXRoLmVuZHNXaXRoKCcvLi4nKSkgcmV0dXJuIHBhdGg7XG4gIGNvbnN0IGluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpO1xuICByZXR1cm4gcGF0aC5zbGljZSgwLCBpbmRleCArIDEpO1xufVxuXG5mdW5jdGlvbiBtZXJnZVBhdGhzKHVybDogVXJsLCBiYXNlOiBVcmwpIHtcbiAgbm9ybWFsaXplUGF0aChiYXNlLCBiYXNlLnR5cGUpO1xuXG4gIC8vIElmIHRoZSBwYXRoIGlzIGp1c3QgYSBcIi9cIiwgdGhlbiBpdCB3YXMgYW4gZW1wdHkgcGF0aCB0byBiZWdpbiB3aXRoIChyZW1lbWJlciwgd2UncmUgYSByZWxhdGl2ZVxuICAvLyBwYXRoKS5cbiAgaWYgKHVybC5wYXRoID09PSAnLycpIHtcbiAgICB1cmwucGF0aCA9IGJhc2UucGF0aDtcbiAgfSBlbHNlIHtcbiAgICAvLyBSZXNvbHV0aW9uIGhhcHBlbnMgcmVsYXRpdmUgdG8gdGhlIGJhc2UgcGF0aCdzIGRpcmVjdG9yeSwgbm90IHRoZSBmaWxlLlxuICAgIHVybC5wYXRoID0gc3RyaXBQYXRoRmlsZW5hbWUoYmFzZS5wYXRoKSArIHVybC5wYXRoO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHBhdGggY2FuIGhhdmUgZW1wdHkgZGlyZWN0b3JpZXMgXCIvL1wiLCB1bm5lZWRlZCBwYXJlbnRzIFwiZm9vLy4uXCIsIG9yIGN1cnJlbnQgZGlyZWN0b3J5XG4gKiBcImZvby8uXCIuIFdlIG5lZWQgdG8gbm9ybWFsaXplIHRvIGEgc3RhbmRhcmQgcmVwcmVzZW50YXRpb24uXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgodXJsOiBVcmwsIHR5cGU6IFVybFR5cGUpIHtcbiAgY29uc3QgcmVsID0gdHlwZSA8PSBVcmxUeXBlLlJlbGF0aXZlUGF0aDtcbiAgY29uc3QgcGllY2VzID0gdXJsLnBhdGguc3BsaXQoJy8nKTtcblxuICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIHRoZSBmaXJzdCBwaWVjZSBhbHdheXMsIHNvIHRoYXQgd2Ugb3V0cHV0IGEgbGVhZGluZyBzbGFzaC4gVGhlIGl0ZW0gYXRcbiAgLy8gcGllY2VzWzBdIGlzIGFuIGVtcHR5IHN0cmluZy5cbiAgbGV0IHBvaW50ZXIgPSAxO1xuXG4gIC8vIFBvc2l0aXZlIGlzIHRoZSBudW1iZXIgb2YgcmVhbCBkaXJlY3RvcmllcyB3ZSd2ZSBvdXRwdXQsIHVzZWQgZm9yIHBvcHBpbmcgYSBwYXJlbnQgZGlyZWN0b3J5LlxuICAvLyBFZywgXCJmb28vYmFyLy4uXCIgd2lsbCBoYXZlIGEgcG9zaXRpdmUgMiwgYW5kIHdlIGNhbiBkZWNyZW1lbnQgdG8gYmUgbGVmdCB3aXRoIGp1c3QgXCJmb29cIi5cbiAgbGV0IHBvc2l0aXZlID0gMDtcblxuICAvLyBXZSBuZWVkIHRvIGtlZXAgYSB0cmFpbGluZyBzbGFzaCBpZiB3ZSBlbmNvdW50ZXIgYW4gZW1wdHkgZGlyZWN0b3J5IChlZywgc3BsaXR0aW5nIFwiZm9vL1wiIHdpbGxcbiAgLy8gZ2VuZXJhdGUgYFtcImZvb1wiLCBcIlwiXWAgcGllY2VzKS4gQW5kLCBpZiB3ZSBwb3AgYSBwYXJlbnQgZGlyZWN0b3J5LiBCdXQgb25jZSB3ZSBlbmNvdW50ZXIgYVxuICAvLyByZWFsIGRpcmVjdG9yeSwgd2Ugd29uJ3QgbmVlZCB0byBhcHBlbmQsIHVubGVzcyB0aGUgb3RoZXIgY29uZGl0aW9ucyBoYXBwZW4gYWdhaW4uXG4gIGxldCBhZGRUcmFpbGluZ1NsYXNoID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBwaWVjZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwaWVjZSA9IHBpZWNlc1tpXTtcblxuICAgIC8vIEFuIGVtcHR5IGRpcmVjdG9yeSwgY291bGQgYmUgYSB0cmFpbGluZyBzbGFzaCwgb3IganVzdCBhIGRvdWJsZSBcIi8vXCIgaW4gdGhlIHBhdGguXG4gICAgaWYgKCFwaWVjZSkge1xuICAgICAgYWRkVHJhaWxpbmdTbGFzaCA9IHRydWU7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYSByZWFsIGRpcmVjdG9yeSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGFwcGVuZCBhbnltb3JlLlxuICAgIGFkZFRyYWlsaW5nU2xhc2ggPSBmYWxzZTtcblxuICAgIC8vIEEgY3VycmVudCBkaXJlY3RvcnksIHdoaWNoIHdlIGNhbiBhbHdheXMgZHJvcC5cbiAgICBpZiAocGllY2UgPT09ICcuJykgY29udGludWU7XG5cbiAgICAvLyBBIHBhcmVudCBkaXJlY3RvcnksIHdlIG5lZWQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgcmVhbCBkaXJlY3RvcmllcyB3ZSBjYW4gcG9wLiBFbHNlLCB3ZVxuICAgIC8vIGhhdmUgYW4gZXhjZXNzIG9mIHBhcmVudHMsIGFuZCB3ZSdsbCBuZWVkIHRvIGtlZXAgdGhlIFwiLi5cIi5cbiAgICBpZiAocGllY2UgPT09ICcuLicpIHtcbiAgICAgIGlmIChwb3NpdGl2ZSkge1xuICAgICAgICBhZGRUcmFpbGluZ1NsYXNoID0gdHJ1ZTtcbiAgICAgICAgcG9zaXRpdmUtLTtcbiAgICAgICAgcG9pbnRlci0tO1xuICAgICAgfSBlbHNlIGlmIChyZWwpIHtcbiAgICAgICAgLy8gSWYgd2UncmUgaW4gYSByZWxhdGl2ZVBhdGgsIHRoZW4gd2UgbmVlZCB0byBrZWVwIHRoZSBleGNlc3MgcGFyZW50cy4gRWxzZSwgaW4gYW4gYWJzb2x1dGVcbiAgICAgICAgLy8gVVJMLCBwcm90b2NvbCByZWxhdGl2ZSBVUkwsIG9yIGFuIGFic29sdXRlIHBhdGgsIHdlIGRvbid0IG5lZWQgdG8ga2VlcCBleGNlc3MuXG4gICAgICAgIHBpZWNlc1twb2ludGVyKytdID0gcGllY2U7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBXZSd2ZSBlbmNvdW50ZXJlZCBhIHJlYWwgZGlyZWN0b3J5LiBNb3ZlIGl0IHRvIHRoZSBuZXh0IGluc2VydGlvbiBwb2ludGVyLCB3aGljaCBhY2NvdW50cyBmb3JcbiAgICAvLyBhbnkgcG9wcGVkIG9yIGRyb3BwZWQgZGlyZWN0b3JpZXMuXG4gICAgcGllY2VzW3BvaW50ZXIrK10gPSBwaWVjZTtcbiAgICBwb3NpdGl2ZSsrO1xuICB9XG5cbiAgbGV0IHBhdGggPSAnJztcbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBwb2ludGVyOyBpKyspIHtcbiAgICBwYXRoICs9ICcvJyArIHBpZWNlc1tpXTtcbiAgfVxuICBpZiAoIXBhdGggfHwgKGFkZFRyYWlsaW5nU2xhc2ggJiYgIXBhdGguZW5kc1dpdGgoJy8uLicpKSkge1xuICAgIHBhdGggKz0gJy8nO1xuICB9XG4gIHVybC5wYXRoID0gcGF0aDtcbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byByZXNvbHZlIGBpbnB1dGAgVVJML3BhdGggcmVsYXRpdmUgdG8gYGJhc2VgLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlKGlucHV0OiBzdHJpbmcsIGJhc2U6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmICghaW5wdXQgJiYgIWJhc2UpIHJldHVybiAnJztcblxuICBjb25zdCB1cmwgPSBwYXJzZVVybChpbnB1dCk7XG4gIGxldCBpbnB1dFR5cGUgPSB1cmwudHlwZTtcblxuICBpZiAoYmFzZSAmJiBpbnB1dFR5cGUgIT09IFVybFR5cGUuQWJzb2x1dGUpIHtcbiAgICBjb25zdCBiYXNlVXJsID0gcGFyc2VVcmwoYmFzZSk7XG4gICAgY29uc3QgYmFzZVR5cGUgPSBiYXNlVXJsLnR5cGU7XG5cbiAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgY2FzZSBVcmxUeXBlLkVtcHR5OlxuICAgICAgICB1cmwuaGFzaCA9IGJhc2VVcmwuaGFzaDtcbiAgICAgIC8vIGZhbGwgdGhyb3VnaFxuXG4gICAgICBjYXNlIFVybFR5cGUuSGFzaDpcbiAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZVVybC5xdWVyeTtcbiAgICAgIC8vIGZhbGwgdGhyb3VnaFxuXG4gICAgICBjYXNlIFVybFR5cGUuUXVlcnk6XG4gICAgICBjYXNlIFVybFR5cGUuUmVsYXRpdmVQYXRoOlxuICAgICAgICBtZXJnZVBhdGhzKHVybCwgYmFzZVVybCk7XG4gICAgICAvLyBmYWxsIHRocm91Z2hcblxuICAgICAgY2FzZSBVcmxUeXBlLkFic29sdXRlUGF0aDpcbiAgICAgICAgLy8gVGhlIGhvc3QsIHVzZXIsIGFuZCBwb3J0IGFyZSBqb2luZWQsIHlvdSBjYW4ndCBjb3B5IG9uZSB3aXRob3V0IHRoZSBvdGhlcnMuXG4gICAgICAgIHVybC51c2VyID0gYmFzZVVybC51c2VyO1xuICAgICAgICB1cmwuaG9zdCA9IGJhc2VVcmwuaG9zdDtcbiAgICAgICAgdXJsLnBvcnQgPSBiYXNlVXJsLnBvcnQ7XG4gICAgICAvLyBmYWxsIHRocm91Z2hcblxuICAgICAgY2FzZSBVcmxUeXBlLlNjaGVtZVJlbGF0aXZlOlxuICAgICAgICAvLyBUaGUgaW5wdXQgZG9lc24ndCBoYXZlIGEgc2NoZW1hIGF0IGxlYXN0LCBzbyB3ZSBuZWVkIHRvIGNvcHkgYXQgbGVhc3QgdGhhdCBvdmVyLlxuICAgICAgICB1cmwuc2NoZW1lID0gYmFzZVVybC5zY2hlbWU7XG4gICAgfVxuICAgIGlmIChiYXNlVHlwZSA+IGlucHV0VHlwZSkgaW5wdXRUeXBlID0gYmFzZVR5cGU7XG4gIH1cblxuICBub3JtYWxpemVQYXRoKHVybCwgaW5wdXRUeXBlKTtcblxuICBjb25zdCBxdWVyeUhhc2ggPSB1cmwucXVlcnkgKyB1cmwuaGFzaDtcbiAgc3dpdGNoIChpbnB1dFR5cGUpIHtcbiAgICAvLyBUaGlzIGlzIGltcG9zc2libGUsIGJlY2F1c2Ugb2YgdGhlIGVtcHR5IGNoZWNrcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgIC8vIGNhc2UgVXJsVHlwZS5FbXB0eTpcblxuICAgIGNhc2UgVXJsVHlwZS5IYXNoOlxuICAgIGNhc2UgVXJsVHlwZS5RdWVyeTpcbiAgICAgIHJldHVybiBxdWVyeUhhc2g7XG5cbiAgICBjYXNlIFVybFR5cGUuUmVsYXRpdmVQYXRoOiB7XG4gICAgICAvLyBUaGUgZmlyc3QgY2hhciBpcyBhbHdheXMgYSBcIi9cIiwgYW5kIHdlIG5lZWQgaXQgdG8gYmUgcmVsYXRpdmUuXG4gICAgICBjb25zdCBwYXRoID0gdXJsLnBhdGguc2xpY2UoMSk7XG5cbiAgICAgIGlmICghcGF0aCkgcmV0dXJuIHF1ZXJ5SGFzaCB8fCAnLic7XG5cbiAgICAgIGlmIChpc1JlbGF0aXZlKGJhc2UgfHwgaW5wdXQpICYmICFpc1JlbGF0aXZlKHBhdGgpKSB7XG4gICAgICAgIC8vIElmIGJhc2Ugc3RhcnRlZCB3aXRoIGEgbGVhZGluZyBcIi5cIiwgb3IgdGhlcmUgaXMgbm8gYmFzZSBhbmQgaW5wdXQgc3RhcnRlZCB3aXRoIGEgXCIuXCIsXG4gICAgICAgIC8vIHRoZW4gd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgcmVsYXRpdmUgcGF0aCBzdGFydHMgd2l0aCBhIFwiLlwiLiBXZSBkb24ndCBrbm93IGlmXG4gICAgICAgIC8vIHJlbGF0aXZlIHN0YXJ0cyB3aXRoIGEgXCIuLlwiLCB0aG91Z2gsIHNvIGNoZWNrIGJlZm9yZSBwcmVwZW5kaW5nLlxuICAgICAgICByZXR1cm4gJy4vJyArIHBhdGggKyBxdWVyeUhhc2g7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXRoICsgcXVlcnlIYXNoO1xuICAgIH1cblxuICAgIGNhc2UgVXJsVHlwZS5BYnNvbHV0ZVBhdGg6XG4gICAgICByZXR1cm4gdXJsLnBhdGggKyBxdWVyeUhhc2g7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVybC5zY2hlbWUgKyAnLy8nICsgdXJsLnVzZXIgKyB1cmwuaG9zdCArIHVybC5wb3J0ICsgdXJsLnBhdGggKyBxdWVyeUhhc2g7XG4gIH1cbn1cbiIsICJpbXBvcnQgcmVzb2x2ZVVyaSBmcm9tICdAanJpZGdld2VsbC9yZXNvbHZlLXVyaSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmUoaW5wdXQ6IHN0cmluZywgYmFzZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgLy8gVGhlIGJhc2UgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBkaXJlY3RvcnksIGlmIGl0J3Mgbm90IGVtcHR5LlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2Jsb2IvOGNiM2VlNTcvbGliL3V0aWwuanMjTDMyN1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0vY2hyb21pdW0vYmxvYi9kYTRhZGJiMy90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9kZXZ0b29scy9mcm9udF9lbmQvc2RrL1NvdXJjZU1hcC5qcyNMNDAwLUw0MDFcbiAgaWYgKGJhc2UgJiYgIWJhc2UuZW5kc1dpdGgoJy8nKSkgYmFzZSArPSAnLyc7XG5cbiAgcmV0dXJuIHJlc29sdmVVcmkoaW5wdXQsIGJhc2UpO1xufVxuIiwgIi8qKlxuICogUmVtb3ZlcyBldmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0IFwiL1wiLCBidXQgbGVhdmVzIHRoZSBzbGFzaC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RyaXBGaWxlbmFtZShwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCFwYXRoKSByZXR1cm4gJyc7XG4gIGNvbnN0IGluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpO1xuICByZXR1cm4gcGF0aC5zbGljZSgwLCBpbmRleCArIDEpO1xufVxuIiwgInR5cGUgR2VuZXJhdGVkQ29sdW1uID0gbnVtYmVyO1xudHlwZSBTb3VyY2VzSW5kZXggPSBudW1iZXI7XG50eXBlIFNvdXJjZUxpbmUgPSBudW1iZXI7XG50eXBlIFNvdXJjZUNvbHVtbiA9IG51bWJlcjtcbnR5cGUgTmFtZXNJbmRleCA9IG51bWJlcjtcblxudHlwZSBHZW5lcmF0ZWRMaW5lID0gbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBTb3VyY2VNYXBTZWdtZW50ID1cbiAgfCBbR2VuZXJhdGVkQ29sdW1uXVxuICB8IFtHZW5lcmF0ZWRDb2x1bW4sIFNvdXJjZXNJbmRleCwgU291cmNlTGluZSwgU291cmNlQ29sdW1uXVxuICB8IFtHZW5lcmF0ZWRDb2x1bW4sIFNvdXJjZXNJbmRleCwgU291cmNlTGluZSwgU291cmNlQ29sdW1uLCBOYW1lc0luZGV4XTtcblxuZXhwb3J0IHR5cGUgUmV2ZXJzZVNlZ21lbnQgPSBbU291cmNlQ29sdW1uLCBHZW5lcmF0ZWRMaW5lLCBHZW5lcmF0ZWRDb2x1bW5dO1xuXG5leHBvcnQgY29uc3QgQ09MVU1OID0gMDtcbmV4cG9ydCBjb25zdCBTT1VSQ0VTX0lOREVYID0gMTtcbmV4cG9ydCBjb25zdCBTT1VSQ0VfTElORSA9IDI7XG5leHBvcnQgY29uc3QgU09VUkNFX0NPTFVNTiA9IDM7XG5leHBvcnQgY29uc3QgTkFNRVNfSU5ERVggPSA0O1xuXG5leHBvcnQgY29uc3QgUkVWX0dFTkVSQVRFRF9MSU5FID0gMTtcbmV4cG9ydCBjb25zdCBSRVZfR0VORVJBVEVEX0NPTFVNTiA9IDI7XG4iLCAiaW1wb3J0IHsgQ09MVU1OIH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5cbmltcG9ydCB0eXBlIHsgU291cmNlTWFwU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYXliZVNvcnQoXG4gIG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSxcbiAgb3duZWQ6IGJvb2xlYW4sXG4pOiBTb3VyY2VNYXBTZWdtZW50W11bXSB7XG4gIGNvbnN0IHVuc29ydGVkSW5kZXggPSBuZXh0VW5zb3J0ZWRTZWdtZW50TGluZShtYXBwaW5ncywgMCk7XG4gIGlmICh1bnNvcnRlZEluZGV4ID09PSBtYXBwaW5ncy5sZW5ndGgpIHJldHVybiBtYXBwaW5ncztcblxuICAvLyBJZiB3ZSBvd24gdGhlIGFycmF5IChtZWFuaW5nIHdlIHBhcnNlZCBpdCBmcm9tIEpTT04pLCB0aGVuIHdlJ3JlIGZyZWUgdG8gZGlyZWN0bHkgbXV0YXRlIGl0LiBJZlxuICAvLyBub3QsIHdlIGRvIG5vdCB3YW50IHRvIG1vZGlmeSB0aGUgY29uc3VtZXIncyBpbnB1dCBhcnJheS5cbiAgaWYgKCFvd25lZCkgbWFwcGluZ3MgPSBtYXBwaW5ncy5zbGljZSgpO1xuXG4gIGZvciAobGV0IGkgPSB1bnNvcnRlZEluZGV4OyBpIDwgbWFwcGluZ3MubGVuZ3RoOyBpID0gbmV4dFVuc29ydGVkU2VnbWVudExpbmUobWFwcGluZ3MsIGkgKyAxKSkge1xuICAgIG1hcHBpbmdzW2ldID0gc29ydFNlZ21lbnRzKG1hcHBpbmdzW2ldLCBvd25lZCk7XG4gIH1cbiAgcmV0dXJuIG1hcHBpbmdzO1xufVxuXG5mdW5jdGlvbiBuZXh0VW5zb3J0ZWRTZWdtZW50TGluZShtYXBwaW5nczogU291cmNlTWFwU2VnbWVudFtdW10sIHN0YXJ0OiBudW1iZXIpOiBudW1iZXIge1xuICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBtYXBwaW5ncy5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaXNTb3J0ZWQobWFwcGluZ3NbaV0pKSByZXR1cm4gaTtcbiAgfVxuICByZXR1cm4gbWFwcGluZ3MubGVuZ3RoO1xufVxuXG5mdW5jdGlvbiBpc1NvcnRlZChsaW5lOiBTb3VyY2VNYXBTZWdtZW50W10pOiBib29sZWFuIHtcbiAgZm9yIChsZXQgaiA9IDE7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgaWYgKGxpbmVbal1bQ09MVU1OXSA8IGxpbmVbaiAtIDFdW0NPTFVNTl0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHNvcnRTZWdtZW50cyhsaW5lOiBTb3VyY2VNYXBTZWdtZW50W10sIG93bmVkOiBib29sZWFuKTogU291cmNlTWFwU2VnbWVudFtdIHtcbiAgaWYgKCFvd25lZCkgbGluZSA9IGxpbmUuc2xpY2UoKTtcbiAgcmV0dXJuIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7XG59XG5cbmZ1bmN0aW9uIHNvcnRDb21wYXJhdG9yKGE6IFNvdXJjZU1hcFNlZ21lbnQsIGI6IFNvdXJjZU1hcFNlZ21lbnQpOiBudW1iZXIge1xuICByZXR1cm4gYVtDT0xVTU5dIC0gYltDT0xVTU5dO1xufVxuIiwgImltcG9ydCB0eXBlIHsgU291cmNlTWFwU2VnbWVudCwgUmV2ZXJzZVNlZ21lbnQgfSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcbmltcG9ydCB7IENPTFVNTiB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG5leHBvcnQgdHlwZSBNZW1vU3RhdGUgPSB7XG4gIGxhc3RLZXk6IG51bWJlcjtcbiAgbGFzdE5lZWRsZTogbnVtYmVyO1xuICBsYXN0SW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBsZXQgZm91bmQgPSBmYWxzZTtcblxuLyoqXG4gKiBBIGJpbmFyeSBzZWFyY2ggaW1wbGVtZW50YXRpb24gdGhhdCByZXR1cm5zIHRoZSBpbmRleCBpZiBhIG1hdGNoIGlzIGZvdW5kLlxuICogSWYgbm8gbWF0Y2ggaXMgZm91bmQsIHRoZW4gdGhlIGxlZnQtaW5kZXggKHRoZSBpbmRleCBhc3NvY2lhdGVkIHdpdGggdGhlIGl0ZW0gdGhhdCBjb21lcyBqdXN0XG4gKiBiZWZvcmUgdGhlIGRlc2lyZWQgaW5kZXgpIGlzIHJldHVybmVkLiBUbyBtYWludGFpbiBwcm9wZXIgc29ydCBvcmRlciwgYSBzcGxpY2Ugd291bGQgaGFwcGVuIGF0XG4gKiB0aGUgbmV4dCBpbmRleDpcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgYXJyYXkgPSBbMSwgM107XG4gKiBjb25zdCBuZWVkbGUgPSAyO1xuICogY29uc3QgaW5kZXggPSBiaW5hcnlTZWFyY2goYXJyYXksIG5lZWRsZSwgKGl0ZW0sIG5lZWRsZSkgPT4gaXRlbSAtIG5lZWRsZSk7XG4gKlxuICogYXNzZXJ0LmVxdWFsKGluZGV4LCAwKTtcbiAqIGFycmF5LnNwbGljZShpbmRleCArIDEsIDAsIG5lZWRsZSk7XG4gKiBhc3NlcnQuZGVlcEVxdWFsKGFycmF5LCBbMSwgMiwgM10pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaW5hcnlTZWFyY2goXG4gIGhheXN0YWNrOiBTb3VyY2VNYXBTZWdtZW50W10gfCBSZXZlcnNlU2VnbWVudFtdLFxuICBuZWVkbGU6IG51bWJlcixcbiAgbG93OiBudW1iZXIsXG4gIGhpZ2g6IG51bWJlcixcbik6IG51bWJlciB7XG4gIHdoaWxlIChsb3cgPD0gaGlnaCkge1xuICAgIGNvbnN0IG1pZCA9IGxvdyArICgoaGlnaCAtIGxvdykgPj4gMSk7XG4gICAgY29uc3QgY21wID0gaGF5c3RhY2tbbWlkXVtDT0xVTU5dIC0gbmVlZGxlO1xuXG4gICAgaWYgKGNtcCA9PT0gMCkge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9XG5cbiAgICBpZiAoY21wIDwgMCkge1xuICAgICAgbG93ID0gbWlkICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGlnaCA9IG1pZCAtIDE7XG4gICAgfVxuICB9XG5cbiAgZm91bmQgPSBmYWxzZTtcbiAgcmV0dXJuIGxvdyAtIDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHBlckJvdW5kKFxuICBoYXlzdGFjazogU291cmNlTWFwU2VnbWVudFtdIHwgUmV2ZXJzZVNlZ21lbnRbXSxcbiAgbmVlZGxlOiBudW1iZXIsXG4gIGluZGV4OiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyBpIDwgaGF5c3RhY2subGVuZ3RoOyBpbmRleCA9IGkrKykge1xuICAgIGlmIChoYXlzdGFja1tpXVtDT0xVTU5dICE9PSBuZWVkbGUpIGJyZWFrO1xuICB9XG4gIHJldHVybiBpbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvd2VyQm91bmQoXG4gIGhheXN0YWNrOiBTb3VyY2VNYXBTZWdtZW50W10gfCBSZXZlcnNlU2VnbWVudFtdLFxuICBuZWVkbGU6IG51bWJlcixcbiAgaW5kZXg6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGZvciAobGV0IGkgPSBpbmRleCAtIDE7IGkgPj0gMDsgaW5kZXggPSBpLS0pIHtcbiAgICBpZiAoaGF5c3RhY2tbaV1bQ09MVU1OXSAhPT0gbmVlZGxlKSBicmVhaztcbiAgfVxuICByZXR1cm4gaW5kZXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZFN0YXRlKCk6IE1lbW9TdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgbGFzdEtleTogLTEsXG4gICAgbGFzdE5lZWRsZTogLTEsXG4gICAgbGFzdEluZGV4OiAtMSxcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIG92ZXJseSBjb21wbGljYXRlZCBiZWFzdCBpcyBqdXN0IHRvIHJlY29yZCB0aGUgbGFzdCB0ZXN0ZWQgbGluZS9jb2x1bW4gYW5kIHRoZSByZXN1bHRpbmdcbiAqIGluZGV4LCBhbGxvd2luZyB1cyB0byBza2lwIGEgZmV3IHRlc3RzIGlmIG1hcHBpbmdzIGFyZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZEJpbmFyeVNlYXJjaChcbiAgaGF5c3RhY2s6IFNvdXJjZU1hcFNlZ21lbnRbXSB8IFJldmVyc2VTZWdtZW50W10sXG4gIG5lZWRsZTogbnVtYmVyLFxuICBzdGF0ZTogTWVtb1N0YXRlLFxuICBrZXk6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IHsgbGFzdEtleSwgbGFzdE5lZWRsZSwgbGFzdEluZGV4IH0gPSBzdGF0ZTtcblxuICBsZXQgbG93ID0gMDtcbiAgbGV0IGhpZ2ggPSBoYXlzdGFjay5sZW5ndGggLSAxO1xuICBpZiAoa2V5ID09PSBsYXN0S2V5KSB7XG4gICAgaWYgKG5lZWRsZSA9PT0gbGFzdE5lZWRsZSkge1xuICAgICAgZm91bmQgPSBsYXN0SW5kZXggIT09IC0xICYmIGhheXN0YWNrW2xhc3RJbmRleF1bQ09MVU1OXSA9PT0gbmVlZGxlO1xuICAgICAgcmV0dXJuIGxhc3RJbmRleDtcbiAgICB9XG5cbiAgICBpZiAobmVlZGxlID49IGxhc3ROZWVkbGUpIHtcbiAgICAgIC8vIGxhc3RJbmRleCBtYXkgYmUgLTEgaWYgdGhlIHByZXZpb3VzIG5lZWRsZSB3YXMgbm90IGZvdW5kLlxuICAgICAgbG93ID0gbGFzdEluZGV4ID09PSAtMSA/IDAgOiBsYXN0SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2ggPSBsYXN0SW5kZXg7XG4gICAgfVxuICB9XG4gIHN0YXRlLmxhc3RLZXkgPSBrZXk7XG4gIHN0YXRlLmxhc3ROZWVkbGUgPSBuZWVkbGU7XG5cbiAgcmV0dXJuIChzdGF0ZS5sYXN0SW5kZXggPSBiaW5hcnlTZWFyY2goaGF5c3RhY2ssIG5lZWRsZSwgbG93LCBoaWdoKSk7XG59XG4iLCAiaW1wb3J0IHsgQ09MVU1OLCBTT1VSQ0VTX0lOREVYLCBTT1VSQ0VfTElORSwgU09VUkNFX0NPTFVNTiB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuaW1wb3J0IHsgbWVtb2l6ZWRCaW5hcnlTZWFyY2gsIHVwcGVyQm91bmQgfSBmcm9tICcuL2JpbmFyeS1zZWFyY2gnO1xuXG5pbXBvcnQgdHlwZSB7IFJldmVyc2VTZWdtZW50LCBTb3VyY2VNYXBTZWdtZW50IH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5pbXBvcnQgdHlwZSB7IE1lbW9TdGF0ZSB9IGZyb20gJy4vYmluYXJ5LXNlYXJjaCc7XG5cbmV4cG9ydCB0eXBlIFNvdXJjZSA9IHtcbiAgX19wcm90b19fOiBudWxsO1xuICBbbGluZTogbnVtYmVyXTogRXhjbHVkZTxSZXZlcnNlU2VnbWVudCwgW251bWJlcl0+W107XG59O1xuXG4vLyBSZWJ1aWxkcyB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLCB3aXRoIG1hcHBpbmdzIHRoYXQgYXJlIG9yZGVyZWQgYnkgc291cmNlIGxpbmUvY29sdW1uIGluc3RlYWRcbi8vIG9mIGdlbmVyYXRlZCBsaW5lL2NvbHVtbi5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkQnlTb3VyY2VzKFxuICBkZWNvZGVkOiByZWFkb25seSBTb3VyY2VNYXBTZWdtZW50W11bXSxcbiAgbWVtb3M6IE1lbW9TdGF0ZVtdLFxuKTogU291cmNlW10ge1xuICBjb25zdCBzb3VyY2VzOiBTb3VyY2VbXSA9IG1lbW9zLm1hcChidWlsZE51bGxBcnJheSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBzZWcgPSBsaW5lW2pdO1xuICAgICAgaWYgKHNlZy5sZW5ndGggPT09IDEpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBzb3VyY2VJbmRleCA9IHNlZ1tTT1VSQ0VTX0lOREVYXTtcbiAgICAgIGNvbnN0IHNvdXJjZUxpbmUgPSBzZWdbU09VUkNFX0xJTkVdO1xuICAgICAgY29uc3Qgc291cmNlQ29sdW1uID0gc2VnW1NPVVJDRV9DT0xVTU5dO1xuICAgICAgY29uc3Qgb3JpZ2luYWxTb3VyY2UgPSBzb3VyY2VzW3NvdXJjZUluZGV4XTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IChvcmlnaW5hbFNvdXJjZVtzb3VyY2VMaW5lXSB8fD0gW10pO1xuICAgICAgY29uc3QgbWVtbyA9IG1lbW9zW3NvdXJjZUluZGV4XTtcblxuICAgICAgLy8gVGhlIGJpbmFyeSBzZWFyY2ggZWl0aGVyIGZvdW5kIGEgbWF0Y2gsIG9yIGl0IGZvdW5kIHRoZSBsZWZ0LWluZGV4IGp1c3QgYmVmb3JlIHdoZXJlIHRoZVxuICAgICAgLy8gc2VnbWVudCBzaG91bGQgZ28uIEVpdGhlciB3YXksIHdlIHdhbnQgdG8gaW5zZXJ0IGFmdGVyIHRoYXQuIEFuZCB0aGVyZSBtYXkgYmUgbXVsdGlwbGVcbiAgICAgIC8vIGdlbmVyYXRlZCBzZWdtZW50cyBhc3NvY2lhdGVkIHdpdGggYW4gb3JpZ2luYWwgbG9jYXRpb24sIHNvIHRoZXJlIG1heSBuZWVkIHRvIG1vdmUgc2V2ZXJhbFxuICAgICAgLy8gaW5kZXhlcyBiZWZvcmUgd2UgZmluZCB3aGVyZSB3ZSBuZWVkIHRvIGluc2VydC5cbiAgICAgIGxldCBpbmRleCA9IHVwcGVyQm91bmQoXG4gICAgICAgIG9yaWdpbmFsTGluZSxcbiAgICAgICAgc291cmNlQ29sdW1uLFxuICAgICAgICBtZW1vaXplZEJpbmFyeVNlYXJjaChvcmlnaW5hbExpbmUsIHNvdXJjZUNvbHVtbiwgbWVtbywgc291cmNlTGluZSksXG4gICAgICApO1xuXG4gICAgICBtZW1vLmxhc3RJbmRleCA9ICsraW5kZXg7XG4gICAgICBpbnNlcnQob3JpZ2luYWxMaW5lLCBpbmRleCwgW3NvdXJjZUNvbHVtbiwgaSwgc2VnW0NPTFVNTl1dKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc291cmNlcztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0PFQ+KGFycmF5OiBUW10sIGluZGV4OiBudW1iZXIsIHZhbHVlOiBUKSB7XG4gIGZvciAobGV0IGkgPSBhcnJheS5sZW5ndGg7IGkgPiBpbmRleDsgaS0tKSB7XG4gICAgYXJyYXlbaV0gPSBhcnJheVtpIC0gMV07XG4gIH1cbiAgYXJyYXlbaW5kZXhdID0gdmFsdWU7XG59XG5cbi8vIE51bGwgYXJyYXlzIGFsbG93IHVzIHRvIHVzZSBvcmRlcmVkIGluZGV4IGtleXMgd2l0aG91dCBhY3R1YWxseSBhbGxvY2F0aW5nIGNvbnRpZ3VvdXMgbWVtb3J5IGxpa2Vcbi8vIGEgcmVhbCBhcnJheS4gV2UgdXNlIGEgbnVsbC1wcm90b3R5cGUgb2JqZWN0IHRvIGF2b2lkIHByb3RvdHlwZSBwb2xsdXRpb24gYW5kIGRlb3B0aW1pemF0aW9ucy5cbi8vIE51bWVyaWMgcHJvcGVydGllcyBvbiBvYmplY3RzIGFyZSBtYWdpY2FsbHkgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSB0aGUgZW5naW5lIHJlZ2FyZGxlc3Mgb2Zcbi8vIHRoZSBpbnNlcnRpb24gb3JkZXIuIFNvLCBieSBzZXR0aW5nIGFueSBudW1lcmljIGtleXMsIGV2ZW4gb3V0IG9mIG9yZGVyLCB3ZSdsbCBnZXQgYXNjZW5kaW5nXG4vLyBvcmRlciB3aGVuIGl0ZXJhdGluZyB3aXRoIGZvci1pbi5cbmZ1bmN0aW9uIGJ1aWxkTnVsbEFycmF5PFQgZXh0ZW5kcyB7IF9fcHJvdG9fXzogbnVsbCB9PigpOiBUIHtcbiAgcmV0dXJuIHsgX19wcm90b19fOiBudWxsIH0gYXMgVDtcbn1cbiIsICJpbXBvcnQgeyBUcmFjZU1hcCwgcHJlc29ydGVkRGVjb2RlZE1hcCwgZGVjb2RlZE1hcHBpbmdzIH0gZnJvbSAnLi90cmFjZS1tYXBwaW5nJztcbmltcG9ydCB7XG4gIENPTFVNTixcbiAgU09VUkNFU19JTkRFWCxcbiAgU09VUkNFX0xJTkUsXG4gIFNPVVJDRV9DT0xVTU4sXG4gIE5BTUVTX0lOREVYLFxufSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcblxuaW1wb3J0IHR5cGUge1xuICBEZWNvZGVkU291cmNlTWFwLFxuICBEZWNvZGVkU291cmNlTWFwWElucHV0LFxuICBFbmNvZGVkU291cmNlTWFwWElucHV0LFxuICBTZWN0aW9uZWRTb3VyY2VNYXBYSW5wdXQsXG4gIFNlY3Rpb25lZFNvdXJjZU1hcElucHV0LFxuICBTZWN0aW9uWElucHV0LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgU291cmNlTWFwU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG50eXBlIEFueU1hcCA9IHtcbiAgbmV3IChtYXA6IFNlY3Rpb25lZFNvdXJjZU1hcElucHV0LCBtYXBVcmw/OiBzdHJpbmcgfCBudWxsKTogVHJhY2VNYXA7XG4gIChtYXA6IFNlY3Rpb25lZFNvdXJjZU1hcElucHV0LCBtYXBVcmw/OiBzdHJpbmcgfCBudWxsKTogVHJhY2VNYXA7XG59O1xuXG5leHBvcnQgY29uc3QgQW55TWFwOiBBbnlNYXAgPSBmdW5jdGlvbiAobWFwLCBtYXBVcmwpIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2UobWFwKTtcblxuICBpZiAoISgnc2VjdGlvbnMnIGluIHBhcnNlZCkpIHtcbiAgICByZXR1cm4gbmV3IFRyYWNlTWFwKHBhcnNlZCBhcyBEZWNvZGVkU291cmNlTWFwWElucHV0IHwgRW5jb2RlZFNvdXJjZU1hcFhJbnB1dCwgbWFwVXJsKTtcbiAgfVxuXG4gIGNvbnN0IG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSA9IFtdO1xuICBjb25zdCBzb3VyY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzb3VyY2VzQ29udGVudDogKHN0cmluZyB8IG51bGwpW10gPSBbXTtcbiAgY29uc3QgbmFtZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGlnbm9yZUxpc3Q6IG51bWJlcltdID0gW107XG5cbiAgcmVjdXJzZShcbiAgICBwYXJzZWQsXG4gICAgbWFwVXJsLFxuICAgIG1hcHBpbmdzLFxuICAgIHNvdXJjZXMsXG4gICAgc291cmNlc0NvbnRlbnQsXG4gICAgbmFtZXMsXG4gICAgaWdub3JlTGlzdCxcbiAgICAwLFxuICAgIDAsXG4gICAgSW5maW5pdHksXG4gICAgSW5maW5pdHksXG4gICk7XG5cbiAgY29uc3Qgam9pbmVkOiBEZWNvZGVkU291cmNlTWFwID0ge1xuICAgIHZlcnNpb246IDMsXG4gICAgZmlsZTogcGFyc2VkLmZpbGUsXG4gICAgbmFtZXMsXG4gICAgc291cmNlcyxcbiAgICBzb3VyY2VzQ29udGVudCxcbiAgICBtYXBwaW5ncyxcbiAgICBpZ25vcmVMaXN0LFxuICB9O1xuXG4gIHJldHVybiBwcmVzb3J0ZWREZWNvZGVkTWFwKGpvaW5lZCk7XG59IGFzIEFueU1hcDtcblxuZnVuY3Rpb24gcGFyc2U8VD4obWFwOiBUKTogRXhjbHVkZTxULCBzdHJpbmc+IHtcbiAgcmV0dXJuIHR5cGVvZiBtYXAgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShtYXApIDogbWFwO1xufVxuXG5mdW5jdGlvbiByZWN1cnNlKFxuICBpbnB1dDogU2VjdGlvbmVkU291cmNlTWFwWElucHV0LFxuICBtYXBVcmw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSxcbiAgc291cmNlczogc3RyaW5nW10sXG4gIHNvdXJjZXNDb250ZW50OiAoc3RyaW5nIHwgbnVsbClbXSxcbiAgbmFtZXM6IHN0cmluZ1tdLFxuICBpZ25vcmVMaXN0OiBudW1iZXJbXSxcbiAgbGluZU9mZnNldDogbnVtYmVyLFxuICBjb2x1bW5PZmZzZXQ6IG51bWJlcixcbiAgc3RvcExpbmU6IG51bWJlcixcbiAgc3RvcENvbHVtbjogbnVtYmVyLFxuKSB7XG4gIGNvbnN0IHsgc2VjdGlvbnMgfSA9IGlucHV0O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgeyBtYXAsIG9mZnNldCB9ID0gc2VjdGlvbnNbaV07XG5cbiAgICBsZXQgc2wgPSBzdG9wTGluZTtcbiAgICBsZXQgc2MgPSBzdG9wQ29sdW1uO1xuICAgIGlmIChpICsgMSA8IHNlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3QgbmV4dE9mZnNldCA9IHNlY3Rpb25zW2kgKyAxXS5vZmZzZXQ7XG4gICAgICBzbCA9IE1hdGgubWluKHN0b3BMaW5lLCBsaW5lT2Zmc2V0ICsgbmV4dE9mZnNldC5saW5lKTtcblxuICAgICAgaWYgKHNsID09PSBzdG9wTGluZSkge1xuICAgICAgICBzYyA9IE1hdGgubWluKHN0b3BDb2x1bW4sIGNvbHVtbk9mZnNldCArIG5leHRPZmZzZXQuY29sdW1uKTtcbiAgICAgIH0gZWxzZSBpZiAoc2wgPCBzdG9wTGluZSkge1xuICAgICAgICBzYyA9IGNvbHVtbk9mZnNldCArIG5leHRPZmZzZXQuY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFkZFNlY3Rpb24oXG4gICAgICBtYXAsXG4gICAgICBtYXBVcmwsXG4gICAgICBtYXBwaW5ncyxcbiAgICAgIHNvdXJjZXMsXG4gICAgICBzb3VyY2VzQ29udGVudCxcbiAgICAgIG5hbWVzLFxuICAgICAgaWdub3JlTGlzdCxcbiAgICAgIGxpbmVPZmZzZXQgKyBvZmZzZXQubGluZSxcbiAgICAgIGNvbHVtbk9mZnNldCArIG9mZnNldC5jb2x1bW4sXG4gICAgICBzbCxcbiAgICAgIHNjLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU2VjdGlvbihcbiAgaW5wdXQ6IFNlY3Rpb25YSW5wdXRbJ21hcCddLFxuICBtYXBVcmw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSxcbiAgc291cmNlczogc3RyaW5nW10sXG4gIHNvdXJjZXNDb250ZW50OiAoc3RyaW5nIHwgbnVsbClbXSxcbiAgbmFtZXM6IHN0cmluZ1tdLFxuICBpZ25vcmVMaXN0OiBudW1iZXJbXSxcbiAgbGluZU9mZnNldDogbnVtYmVyLFxuICBjb2x1bW5PZmZzZXQ6IG51bWJlcixcbiAgc3RvcExpbmU6IG51bWJlcixcbiAgc3RvcENvbHVtbjogbnVtYmVyLFxuKSB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlKGlucHV0KTtcbiAgaWYgKCdzZWN0aW9ucycgaW4gcGFyc2VkKSByZXR1cm4gcmVjdXJzZSguLi4oYXJndW1lbnRzIGFzIHVua25vd24gYXMgUGFyYW1ldGVyczx0eXBlb2YgcmVjdXJzZT4pKTtcblxuICBjb25zdCBtYXAgPSBuZXcgVHJhY2VNYXAocGFyc2VkLCBtYXBVcmwpO1xuICBjb25zdCBzb3VyY2VzT2Zmc2V0ID0gc291cmNlcy5sZW5ndGg7XG4gIGNvbnN0IG5hbWVzT2Zmc2V0ID0gbmFtZXMubGVuZ3RoO1xuICBjb25zdCBkZWNvZGVkID0gZGVjb2RlZE1hcHBpbmdzKG1hcCk7XG4gIGNvbnN0IHsgcmVzb2x2ZWRTb3VyY2VzLCBzb3VyY2VzQ29udGVudDogY29udGVudHMsIGlnbm9yZUxpc3Q6IGlnbm9yZXMgfSA9IG1hcDtcblxuICBhcHBlbmQoc291cmNlcywgcmVzb2x2ZWRTb3VyY2VzKTtcbiAgYXBwZW5kKG5hbWVzLCBtYXAubmFtZXMpO1xuXG4gIGlmIChjb250ZW50cykgYXBwZW5kKHNvdXJjZXNDb250ZW50LCBjb250ZW50cyk7XG4gIGVsc2UgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvbHZlZFNvdXJjZXMubGVuZ3RoOyBpKyspIHNvdXJjZXNDb250ZW50LnB1c2gobnVsbCk7XG5cbiAgaWYgKGlnbm9yZXMpIGZvciAobGV0IGkgPSAwOyBpIDwgaWdub3Jlcy5sZW5ndGg7IGkrKykgaWdub3JlTGlzdC5wdXNoKGlnbm9yZXNbaV0gKyBzb3VyY2VzT2Zmc2V0KTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlY29kZWQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBsaW5lSSA9IGxpbmVPZmZzZXQgKyBpO1xuXG4gICAgLy8gV2UgY2FuIG9ubHkgYWRkIHNvIG1hbnkgbGluZXMgYmVmb3JlIHdlIHN0ZXAgaW50byB0aGUgcmFuZ2UgdGhhdCB0aGUgbmV4dCBzZWN0aW9uJ3MgbWFwXG4gICAgLy8gY29udHJvbHMuIFdoZW4gd2UgZ2V0IHRvIHRoZSBsYXN0IGxpbmUsIHRoZW4gd2UnbGwgc3RhcnQgY2hlY2tpbmcgdGhlIHNlZ21lbnRzIHRvIHNlZSBpZlxuICAgIC8vIHRoZXkndmUgY3Jvc3NlZCBpbnRvIHRoZSBjb2x1bW4gcmFuZ2UuIEJ1dCBpdCBtYXkgbm90IGhhdmUgYW55IGNvbHVtbnMgdGhhdCBvdmVyc3RlcCwgc28gd2VcbiAgICAvLyBzdGlsbCBuZWVkIHRvIGNoZWNrIHRoYXQgd2UgZG9uJ3Qgb3ZlcnN0ZXAgbGluZXMsIHRvby5cbiAgICBpZiAobGluZUkgPiBzdG9wTGluZSkgcmV0dXJuO1xuXG4gICAgLy8gVGhlIG91dCBsaW5lIG1heSBhbHJlYWR5IGV4aXN0IGluIG1hcHBpbmdzIChpZiB3ZSdyZSBjb250aW51aW5nIHRoZSBsaW5lIHN0YXJ0ZWQgYnkgYVxuICAgIC8vIHByZXZpb3VzIHNlY3Rpb24pLiBPciwgd2UgbWF5IGhhdmUganVtcGVkIGFoZWFkIHNldmVyYWwgbGluZXMgdG8gc3RhcnQgdGhpcyBzZWN0aW9uLlxuICAgIGNvbnN0IG91dCA9IGdldExpbmUobWFwcGluZ3MsIGxpbmVJKTtcbiAgICAvLyBPbiB0aGUgMHRoIGxvb3AsIHRoZSBzZWN0aW9uJ3MgY29sdW1uIG9mZnNldCBzaGlmdHMgdXMgZm9yd2FyZC4gT24gYWxsIG90aGVyIGxpbmVzIChzaW5jZSB0aGVcbiAgICAvLyBtYXAgY2FuIGJlIG11bHRpcGxlIGxpbmVzKSwgaXQgZG9lc24ndC5cbiAgICBjb25zdCBjT2Zmc2V0ID0gaSA9PT0gMCA/IGNvbHVtbk9mZnNldCA6IDA7XG5cbiAgICBjb25zdCBsaW5lID0gZGVjb2RlZFtpXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpbmUubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHNlZyA9IGxpbmVbal07XG4gICAgICBjb25zdCBjb2x1bW4gPSBjT2Zmc2V0ICsgc2VnW0NPTFVNTl07XG5cbiAgICAgIC8vIElmIHRoaXMgc2VnbWVudCBzdGVwcyBpbnRvIHRoZSBjb2x1bW4gcmFuZ2UgdGhhdCB0aGUgbmV4dCBzZWN0aW9uJ3MgbWFwIGNvbnRyb2xzLCB3ZSBuZWVkXG4gICAgICAvLyB0byBzdG9wIGVhcmx5LlxuICAgICAgaWYgKGxpbmVJID09PSBzdG9wTGluZSAmJiBjb2x1bW4gPj0gc3RvcENvbHVtbikgcmV0dXJuO1xuXG4gICAgICBpZiAoc2VnLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBvdXQucHVzaChbY29sdW1uXSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb3VyY2VzSW5kZXggPSBzb3VyY2VzT2Zmc2V0ICsgc2VnW1NPVVJDRVNfSU5ERVhdO1xuICAgICAgY29uc3Qgc291cmNlTGluZSA9IHNlZ1tTT1VSQ0VfTElORV07XG4gICAgICBjb25zdCBzb3VyY2VDb2x1bW4gPSBzZWdbU09VUkNFX0NPTFVNTl07XG4gICAgICBvdXQucHVzaChcbiAgICAgICAgc2VnLmxlbmd0aCA9PT0gNFxuICAgICAgICAgID8gW2NvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW5dXG4gICAgICAgICAgOiBbY29sdW1uLCBzb3VyY2VzSW5kZXgsIHNvdXJjZUxpbmUsIHNvdXJjZUNvbHVtbiwgbmFtZXNPZmZzZXQgKyBzZWdbTkFNRVNfSU5ERVhdXSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGVuZDxUPihhcnI6IFRbXSwgb3RoZXI6IFRbXSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG90aGVyLmxlbmd0aDsgaSsrKSBhcnIucHVzaChvdGhlcltpXSk7XG59XG5cbmZ1bmN0aW9uIGdldExpbmU8VD4oYXJyOiBUW11bXSwgaW5kZXg6IG51bWJlcik6IFRbXSB7XG4gIGZvciAobGV0IGkgPSBhcnIubGVuZ3RoOyBpIDw9IGluZGV4OyBpKyspIGFycltpXSA9IFtdO1xuICByZXR1cm4gYXJyW2luZGV4XTtcbn1cbiIsICJpbXBvcnQgeyBlbmNvZGUsIGRlY29kZSB9IGZyb20gJ0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYyc7XG5cbmltcG9ydCByZXNvbHZlIGZyb20gJy4vcmVzb2x2ZSc7XG5pbXBvcnQgc3RyaXBGaWxlbmFtZSBmcm9tICcuL3N0cmlwLWZpbGVuYW1lJztcbmltcG9ydCBtYXliZVNvcnQgZnJvbSAnLi9zb3J0JztcbmltcG9ydCBidWlsZEJ5U291cmNlcyBmcm9tICcuL2J5LXNvdXJjZSc7XG5pbXBvcnQge1xuICBtZW1vaXplZFN0YXRlLFxuICBtZW1vaXplZEJpbmFyeVNlYXJjaCxcbiAgdXBwZXJCb3VuZCxcbiAgbG93ZXJCb3VuZCxcbiAgZm91bmQgYXMgYnNGb3VuZCxcbn0gZnJvbSAnLi9iaW5hcnktc2VhcmNoJztcbmltcG9ydCB7XG4gIENPTFVNTixcbiAgU09VUkNFU19JTkRFWCxcbiAgU09VUkNFX0xJTkUsXG4gIFNPVVJDRV9DT0xVTU4sXG4gIE5BTUVTX0lOREVYLFxuICBSRVZfR0VORVJBVEVEX0xJTkUsXG4gIFJFVl9HRU5FUkFURURfQ09MVU1OLFxufSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcblxuaW1wb3J0IHR5cGUgeyBTb3VyY2VNYXBTZWdtZW50LCBSZXZlcnNlU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuaW1wb3J0IHR5cGUge1xuICBTb3VyY2VNYXBWMyxcbiAgRGVjb2RlZFNvdXJjZU1hcCxcbiAgRW5jb2RlZFNvdXJjZU1hcCxcbiAgSW52YWxpZE9yaWdpbmFsTWFwcGluZyxcbiAgT3JpZ2luYWxNYXBwaW5nLFxuICBJbnZhbGlkR2VuZXJhdGVkTWFwcGluZyxcbiAgR2VuZXJhdGVkTWFwcGluZyxcbiAgU291cmNlTWFwSW5wdXQsXG4gIE5lZWRsZSxcbiAgU291cmNlTmVlZGxlLFxuICBTb3VyY2VNYXAsXG4gIEVhY2hNYXBwaW5nLFxuICBCaWFzLFxuICBYSW5wdXQsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2UgfSBmcm9tICcuL2J5LXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IE1lbW9TdGF0ZSB9IGZyb20gJy4vYmluYXJ5LXNlYXJjaCc7XG5cbmV4cG9ydCB0eXBlIHsgU291cmNlTWFwU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBTb3VyY2VNYXAsXG4gIERlY29kZWRTb3VyY2VNYXAsXG4gIEVuY29kZWRTb3VyY2VNYXAsXG4gIFNlY3Rpb24sXG4gIFNlY3Rpb25lZFNvdXJjZU1hcCxcbiAgU291cmNlTWFwVjMsXG4gIEJpYXMsXG4gIEVhY2hNYXBwaW5nLFxuICBHZW5lcmF0ZWRNYXBwaW5nLFxuICBJbnZhbGlkR2VuZXJhdGVkTWFwcGluZyxcbiAgSW52YWxpZE9yaWdpbmFsTWFwcGluZyxcbiAgTmVlZGxlLFxuICBPcmlnaW5hbE1hcHBpbmcsXG4gIE9yaWdpbmFsTWFwcGluZyBhcyBNYXBwaW5nLFxuICBTZWN0aW9uZWRTb3VyY2VNYXBJbnB1dCxcbiAgU291cmNlTWFwSW5wdXQsXG4gIFNvdXJjZU5lZWRsZSxcbiAgWElucHV0LFxuICBFbmNvZGVkU291cmNlTWFwWElucHV0LFxuICBEZWNvZGVkU291cmNlTWFwWElucHV0LFxuICBTZWN0aW9uZWRTb3VyY2VNYXBYSW5wdXQsXG4gIFNlY3Rpb25YSW5wdXQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgUHVibGljTWFwIHtcbiAgX2VuY29kZWQ6IFRyYWNlTWFwWydfZW5jb2RlZCddO1xuICBfZGVjb2RlZDogVHJhY2VNYXBbJ19kZWNvZGVkJ107XG4gIF9kZWNvZGVkTWVtbzogVHJhY2VNYXBbJ19kZWNvZGVkTWVtbyddO1xuICBfYnlTb3VyY2VzOiBUcmFjZU1hcFsnX2J5U291cmNlcyddO1xuICBfYnlTb3VyY2VNZW1vczogVHJhY2VNYXBbJ19ieVNvdXJjZU1lbW9zJ107XG59XG5cbmNvbnN0IExJTkVfR1RSX1pFUk8gPSAnYGxpbmVgIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgKGxpbmVzIHN0YXJ0IGF0IGxpbmUgMSknO1xuY29uc3QgQ09MX0dUUl9FUV9aRVJPID0gJ2Bjb2x1bW5gIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAgKGNvbHVtbnMgc3RhcnQgYXQgY29sdW1uIDApJztcblxuZXhwb3J0IGNvbnN0IExFQVNUX1VQUEVSX0JPVU5EID0gLTE7XG5leHBvcnQgY29uc3QgR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuXG5leHBvcnQgeyBBbnlNYXAgfSBmcm9tICcuL2FueS1tYXAnO1xuXG5leHBvcnQgY2xhc3MgVHJhY2VNYXAgaW1wbGVtZW50cyBTb3VyY2VNYXAge1xuICBkZWNsYXJlIHZlcnNpb246IFNvdXJjZU1hcFYzWyd2ZXJzaW9uJ107XG4gIGRlY2xhcmUgZmlsZTogU291cmNlTWFwVjNbJ2ZpbGUnXTtcbiAgZGVjbGFyZSBuYW1lczogU291cmNlTWFwVjNbJ25hbWVzJ107XG4gIGRlY2xhcmUgc291cmNlUm9vdDogU291cmNlTWFwVjNbJ3NvdXJjZVJvb3QnXTtcbiAgZGVjbGFyZSBzb3VyY2VzOiBTb3VyY2VNYXBWM1snc291cmNlcyddO1xuICBkZWNsYXJlIHNvdXJjZXNDb250ZW50OiBTb3VyY2VNYXBWM1snc291cmNlc0NvbnRlbnQnXTtcbiAgZGVjbGFyZSBpZ25vcmVMaXN0OiBTb3VyY2VNYXBWM1snaWdub3JlTGlzdCddO1xuXG4gIGRlY2xhcmUgcmVzb2x2ZWRTb3VyY2VzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9lbmNvZGVkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBkZWNsYXJlIF9kZWNvZGVkOiBTb3VyY2VNYXBTZWdtZW50W11bXSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9kZWNvZGVkTWVtbzogTWVtb1N0YXRlO1xuXG4gIHByaXZhdGUgZGVjbGFyZSBfYnlTb3VyY2VzOiBTb3VyY2VbXSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9ieVNvdXJjZU1lbW9zOiBNZW1vU3RhdGVbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihtYXA6IFNvdXJjZU1hcElucHV0LCBtYXBVcmw/OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgaXNTdHJpbmcgPSB0eXBlb2YgbWFwID09PSAnc3RyaW5nJztcblxuICAgIGlmICghaXNTdHJpbmcgJiYgKG1hcCBhcyB1bmtub3duIGFzIHsgX2RlY29kZWRNZW1vOiBhbnkgfSkuX2RlY29kZWRNZW1vKSByZXR1cm4gbWFwIGFzIFRyYWNlTWFwO1xuXG4gICAgY29uc3QgcGFyc2VkID0gKGlzU3RyaW5nID8gSlNPTi5wYXJzZShtYXApIDogbWFwKSBhcyBEZWNvZGVkU291cmNlTWFwIHwgRW5jb2RlZFNvdXJjZU1hcDtcblxuICAgIGNvbnN0IHsgdmVyc2lvbiwgZmlsZSwgbmFtZXMsIHNvdXJjZVJvb3QsIHNvdXJjZXMsIHNvdXJjZXNDb250ZW50IH0gPSBwYXJzZWQ7XG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xuICAgIHRoaXMubmFtZXMgPSBuYW1lcyB8fCBbXTtcbiAgICB0aGlzLnNvdXJjZVJvb3QgPSBzb3VyY2VSb290O1xuICAgIHRoaXMuc291cmNlcyA9IHNvdXJjZXM7XG4gICAgdGhpcy5zb3VyY2VzQ29udGVudCA9IHNvdXJjZXNDb250ZW50O1xuICAgIHRoaXMuaWdub3JlTGlzdCA9IHBhcnNlZC5pZ25vcmVMaXN0IHx8IChwYXJzZWQgYXMgWElucHV0KS54X2dvb2dsZV9pZ25vcmVMaXN0IHx8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZyb20gPSByZXNvbHZlKHNvdXJjZVJvb3QgfHwgJycsIHN0cmlwRmlsZW5hbWUobWFwVXJsKSk7XG4gICAgdGhpcy5yZXNvbHZlZFNvdXJjZXMgPSBzb3VyY2VzLm1hcCgocykgPT4gcmVzb2x2ZShzIHx8ICcnLCBmcm9tKSk7XG5cbiAgICBjb25zdCB7IG1hcHBpbmdzIH0gPSBwYXJzZWQ7XG4gICAgaWYgKHR5cGVvZiBtYXBwaW5ncyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2VuY29kZWQgPSBtYXBwaW5ncztcbiAgICAgIHRoaXMuX2RlY29kZWQgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VuY29kZWQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9kZWNvZGVkID0gbWF5YmVTb3J0KG1hcHBpbmdzLCBpc1N0cmluZyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVjb2RlZE1lbW8gPSBtZW1vaXplZFN0YXRlKCk7XG4gICAgdGhpcy5fYnlTb3VyY2VzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2J5U291cmNlTWVtb3MgPSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBUeXBlc2NyaXB0IGRvZXNuJ3QgYWxsb3cgZnJpZW5kIGFjY2VzcyB0byBwcml2YXRlIGZpZWxkcywgc28gdGhpcyBqdXN0IGNhc3RzIHRoZSBtYXAgaW50byBhIHR5cGVcbiAqIHdpdGggcHVibGljIGFjY2VzcyBtb2RpZmllcnMuXG4gKi9cbmZ1bmN0aW9uIGNhc3QobWFwOiB1bmtub3duKTogUHVibGljTWFwIHtcbiAgcmV0dXJuIG1hcCBhcyBhbnk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZW5jb2RlZCAoVkxRIHN0cmluZykgZm9ybSBvZiB0aGUgU291cmNlTWFwJ3MgbWFwcGluZ3MgZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVkTWFwcGluZ3MobWFwOiBUcmFjZU1hcCk6IEVuY29kZWRTb3VyY2VNYXBbJ21hcHBpbmdzJ10ge1xuICByZXR1cm4gKGNhc3QobWFwKS5fZW5jb2RlZCA/Pz0gZW5jb2RlKGNhc3QobWFwKS5fZGVjb2RlZCEpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWNvZGVkIChhcnJheSBvZiBsaW5lcyBvZiBzZWdtZW50cykgZm9ybSBvZiB0aGUgU291cmNlTWFwJ3MgbWFwcGluZ3MgZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVkTWFwcGluZ3MobWFwOiBUcmFjZU1hcCk6IFJlYWRvbmx5PERlY29kZWRTb3VyY2VNYXBbJ21hcHBpbmdzJ10+IHtcbiAgcmV0dXJuIChjYXN0KG1hcCkuX2RlY29kZWQgfHw9IGRlY29kZShjYXN0KG1hcCkuX2VuY29kZWQhKSk7XG59XG5cbi8qKlxuICogQSBsb3ctbGV2ZWwgQVBJIHRvIGZpbmQgdGhlIHNlZ21lbnQgYXNzb2NpYXRlZCB3aXRoIGEgZ2VuZXJhdGVkIGxpbmUvY29sdW1uICh0aGluaywgZnJvbSBhXG4gKiBzdGFjayB0cmFjZSkuIExpbmUgYW5kIGNvbHVtbiBoZXJlIGFyZSAwLWJhc2VkLCB1bmxpa2UgYG9yaWdpbmFsUG9zaXRpb25Gb3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VTZWdtZW50KFxuICBtYXA6IFRyYWNlTWFwLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuKTogUmVhZG9ubHk8U291cmNlTWFwU2VnbWVudD4gfCBudWxsIHtcbiAgY29uc3QgZGVjb2RlZCA9IGRlY29kZWRNYXBwaW5ncyhtYXApO1xuXG4gIC8vIEl0J3MgY29tbW9uIGZvciBwYXJlbnQgc291cmNlIG1hcHMgdG8gaGF2ZSBwb2ludGVycyB0byBsaW5lcyB0aGF0IGhhdmUgbm9cbiAgLy8gbWFwcGluZyAobGlrZSBhIFwiLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIpIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIGZpbGUuXG4gIGlmIChsaW5lID49IGRlY29kZWQubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzZWdtZW50cyA9IGRlY29kZWRbbGluZV07XG4gIGNvbnN0IGluZGV4ID0gdHJhY2VTZWdtZW50SW50ZXJuYWwoXG4gICAgc2VnbWVudHMsXG4gICAgY2FzdChtYXApLl9kZWNvZGVkTWVtbyxcbiAgICBsaW5lLFxuICAgIGNvbHVtbixcbiAgICBHUkVBVEVTVF9MT1dFUl9CT1VORCxcbiAgKTtcblxuICByZXR1cm4gaW5kZXggPT09IC0xID8gbnVsbCA6IHNlZ21lbnRzW2luZGV4XTtcbn1cblxuLyoqXG4gKiBBIGhpZ2hlci1sZXZlbCBBUEkgdG8gZmluZCB0aGUgc291cmNlL2xpbmUvY29sdW1uIGFzc29jaWF0ZWQgd2l0aCBhIGdlbmVyYXRlZCBsaW5lL2NvbHVtblxuICogKHRoaW5rLCBmcm9tIGEgc3RhY2sgdHJhY2UpLiBMaW5lIGlzIDEtYmFzZWQsIGJ1dCBjb2x1bW4gaXMgMC1iYXNlZCwgZHVlIHRvIGxlZ2FjeSBiZWhhdmlvciBpblxuICogYHNvdXJjZS1tYXBgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcmlnaW5hbFBvc2l0aW9uRm9yKFxuICBtYXA6IFRyYWNlTWFwLFxuICBuZWVkbGU6IE5lZWRsZSxcbik6IE9yaWdpbmFsTWFwcGluZyB8IEludmFsaWRPcmlnaW5hbE1hcHBpbmcge1xuICBsZXQgeyBsaW5lLCBjb2x1bW4sIGJpYXMgfSA9IG5lZWRsZTtcbiAgbGluZS0tO1xuICBpZiAobGluZSA8IDApIHRocm93IG5ldyBFcnJvcihMSU5FX0dUUl9aRVJPKTtcbiAgaWYgKGNvbHVtbiA8IDApIHRocm93IG5ldyBFcnJvcihDT0xfR1RSX0VRX1pFUk8pO1xuXG4gIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVkTWFwcGluZ3MobWFwKTtcblxuICAvLyBJdCdzIGNvbW1vbiBmb3IgcGFyZW50IHNvdXJjZSBtYXBzIHRvIGhhdmUgcG9pbnRlcnMgdG8gbGluZXMgdGhhdCBoYXZlIG5vXG4gIC8vIG1hcHBpbmcgKGxpa2UgYSBcIi8vIyBzb3VyY2VNYXBwaW5nVVJMPVwiKSBhdCB0aGUgZW5kIG9mIHRoZSBjaGlsZCBmaWxlLlxuICBpZiAobGluZSA+PSBkZWNvZGVkLmxlbmd0aCkgcmV0dXJuIE9NYXBwaW5nKG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IHNlZ21lbnRzID0gZGVjb2RlZFtsaW5lXTtcbiAgY29uc3QgaW5kZXggPSB0cmFjZVNlZ21lbnRJbnRlcm5hbChcbiAgICBzZWdtZW50cyxcbiAgICBjYXN0KG1hcCkuX2RlY29kZWRNZW1vLFxuICAgIGxpbmUsXG4gICAgY29sdW1uLFxuICAgIGJpYXMgfHwgR1JFQVRFU1RfTE9XRVJfQk9VTkQsXG4gICk7XG5cbiAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIE9NYXBwaW5nKG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG4gIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkgcmV0dXJuIE9NYXBwaW5nKG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IHsgbmFtZXMsIHJlc29sdmVkU291cmNlcyB9ID0gbWFwO1xuICByZXR1cm4gT01hcHBpbmcoXG4gICAgcmVzb2x2ZWRTb3VyY2VzW3NlZ21lbnRbU09VUkNFU19JTkRFWF1dLFxuICAgIHNlZ21lbnRbU09VUkNFX0xJTkVdICsgMSxcbiAgICBzZWdtZW50W1NPVVJDRV9DT0xVTU5dLFxuICAgIHNlZ21lbnQubGVuZ3RoID09PSA1ID8gbmFtZXNbc2VnbWVudFtOQU1FU19JTkRFWF1dIDogbnVsbCxcbiAgKTtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgZ2VuZXJhdGVkIGxpbmUvY29sdW1uIHBvc2l0aW9uIG9mIHRoZSBwcm92aWRlZCBzb3VyY2UvbGluZS9jb2x1bW4gc291cmNlIHBvc2l0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVkUG9zaXRpb25Gb3IoXG4gIG1hcDogVHJhY2VNYXAsXG4gIG5lZWRsZTogU291cmNlTmVlZGxlLFxuKTogR2VuZXJhdGVkTWFwcGluZyB8IEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nIHtcbiAgY29uc3QgeyBzb3VyY2UsIGxpbmUsIGNvbHVtbiwgYmlhcyB9ID0gbmVlZGxlO1xuICByZXR1cm4gZ2VuZXJhdGVkUG9zaXRpb24obWFwLCBzb3VyY2UsIGxpbmUsIGNvbHVtbiwgYmlhcyB8fCBHUkVBVEVTVF9MT1dFUl9CT1VORCwgZmFsc2UpO1xufVxuXG4vKipcbiAqIEZpbmRzIGFsbCBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gcG9zaXRpb25zIG9mIHRoZSBwcm92aWRlZCBzb3VyY2UvbGluZS9jb2x1bW4gc291cmNlIHBvc2l0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKG1hcDogVHJhY2VNYXAsIG5lZWRsZTogU291cmNlTmVlZGxlKTogR2VuZXJhdGVkTWFwcGluZ1tdIHtcbiAgY29uc3QgeyBzb3VyY2UsIGxpbmUsIGNvbHVtbiwgYmlhcyB9ID0gbmVlZGxlO1xuICAvLyBTb3VyY2VNYXBDb25zdW1lciB1c2VzIExFQVNUX1VQUEVSX0JPVU5EIGZvciBzb21lIHJlYXNvbiwgc28gd2UgZm9sbG93IHN1aXQuXG4gIHJldHVybiBnZW5lcmF0ZWRQb3NpdGlvbihtYXAsIHNvdXJjZSwgbGluZSwgY29sdW1uLCBiaWFzIHx8IExFQVNUX1VQUEVSX0JPVU5ELCB0cnVlKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyBlYWNoIG1hcHBpbmcgaW4gZ2VuZXJhdGVkIHBvc2l0aW9uIG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWFjaE1hcHBpbmcobWFwOiBUcmFjZU1hcCwgY2I6IChtYXBwaW5nOiBFYWNoTWFwcGluZykgPT4gdm9pZCk6IHZvaWQge1xuICBjb25zdCBkZWNvZGVkID0gZGVjb2RlZE1hcHBpbmdzKG1hcCk7XG4gIGNvbnN0IHsgbmFtZXMsIHJlc29sdmVkU291cmNlcyB9ID0gbWFwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmUgPSBkZWNvZGVkW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3Qgc2VnID0gbGluZVtqXTtcblxuICAgICAgY29uc3QgZ2VuZXJhdGVkTGluZSA9IGkgKyAxO1xuICAgICAgY29uc3QgZ2VuZXJhdGVkQ29sdW1uID0gc2VnWzBdO1xuICAgICAgbGV0IHNvdXJjZSA9IG51bGw7XG4gICAgICBsZXQgb3JpZ2luYWxMaW5lID0gbnVsbDtcbiAgICAgIGxldCBvcmlnaW5hbENvbHVtbiA9IG51bGw7XG4gICAgICBsZXQgbmFtZSA9IG51bGw7XG4gICAgICBpZiAoc2VnLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICBzb3VyY2UgPSByZXNvbHZlZFNvdXJjZXNbc2VnWzFdXTtcbiAgICAgICAgb3JpZ2luYWxMaW5lID0gc2VnWzJdICsgMTtcbiAgICAgICAgb3JpZ2luYWxDb2x1bW4gPSBzZWdbM107XG4gICAgICB9XG4gICAgICBpZiAoc2VnLmxlbmd0aCA9PT0gNSkgbmFtZSA9IG5hbWVzW3NlZ1s0XV07XG5cbiAgICAgIGNiKHtcbiAgICAgICAgZ2VuZXJhdGVkTGluZSxcbiAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIG9yaWdpbmFsTGluZSxcbiAgICAgICAgb3JpZ2luYWxDb2x1bW4sXG4gICAgICAgIG5hbWUsXG4gICAgICB9IGFzIEVhY2hNYXBwaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc291cmNlSW5kZXgobWFwOiBUcmFjZU1hcCwgc291cmNlOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCB7IHNvdXJjZXMsIHJlc29sdmVkU291cmNlcyB9ID0gbWFwO1xuICBsZXQgaW5kZXggPSBzb3VyY2VzLmluZGV4T2Yoc291cmNlKTtcbiAgaWYgKGluZGV4ID09PSAtMSkgaW5kZXggPSByZXNvbHZlZFNvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuICByZXR1cm4gaW5kZXg7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBwYXJ0aWN1bGFyIHNvdXJjZSwgaWYgaXRzIGZvdW5kLiBSZXR1cm5zIG51bGwgaWYgbm90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc291cmNlQ29udGVudEZvcihtYXA6IFRyYWNlTWFwLCBzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB7IHNvdXJjZXNDb250ZW50IH0gPSBtYXA7XG4gIGlmIChzb3VyY2VzQ29udGVudCA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgaW5kZXggPSBzb3VyY2VJbmRleChtYXAsIHNvdXJjZSk7XG4gIHJldHVybiBpbmRleCA9PT0gLTEgPyBudWxsIDogc291cmNlc0NvbnRlbnRbaW5kZXhdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIHNvdXJjZSBpcyBtYXJrZWQgdG8gaWdub3JlIGJ5IHRoZSBzb3VyY2UgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJZ25vcmVkKG1hcDogVHJhY2VNYXAsIHNvdXJjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgaWdub3JlTGlzdCB9ID0gbWFwO1xuICBpZiAoaWdub3JlTGlzdCA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGluZGV4ID0gc291cmNlSW5kZXgobWFwLCBzb3VyY2UpO1xuICByZXR1cm4gaW5kZXggPT09IC0xID8gZmFsc2UgOiBpZ25vcmVMaXN0LmluY2x1ZGVzKGluZGV4KTtcbn1cblxuLyoqXG4gKiBBIGhlbHBlciB0aGF0IHNraXBzIHNvcnRpbmcgb2YgdGhlIGlucHV0IG1hcCdzIG1hcHBpbmdzIGFycmF5LCB3aGljaCBjYW4gYmUgZXhwZW5zaXZlIGZvciBsYXJnZXJcbiAqIG1hcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVzb3J0ZWREZWNvZGVkTWFwKG1hcDogRGVjb2RlZFNvdXJjZU1hcCwgbWFwVXJsPzogc3RyaW5nKTogVHJhY2VNYXAge1xuICBjb25zdCB0cmFjZXIgPSBuZXcgVHJhY2VNYXAoY2xvbmUobWFwLCBbXSksIG1hcFVybCk7XG4gIGNhc3QodHJhY2VyKS5fZGVjb2RlZCA9IG1hcC5tYXBwaW5ncztcbiAgcmV0dXJuIHRyYWNlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc291cmNlbWFwIG9iamVjdCAod2l0aCBkZWNvZGVkIG1hcHBpbmdzKSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhIGxpYnJhcnkgdGhhdCBleHBlY3RzXG4gKiBhIHNvdXJjZW1hcCwgb3IgdG8gSlNPTi5zdHJpbmdpZnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVkTWFwKFxuICBtYXA6IFRyYWNlTWFwLFxuKTogT21pdDxEZWNvZGVkU291cmNlTWFwLCAnbWFwcGluZ3MnPiAmIHsgbWFwcGluZ3M6IHJlYWRvbmx5IFNvdXJjZU1hcFNlZ21lbnRbXVtdIH0ge1xuICByZXR1cm4gY2xvbmUobWFwLCBkZWNvZGVkTWFwcGluZ3MobWFwKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHNvdXJjZW1hcCBvYmplY3QgKHdpdGggZW5jb2RlZCBtYXBwaW5ncykgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gYSBsaWJyYXJ5IHRoYXQgZXhwZWN0c1xuICogYSBzb3VyY2VtYXAsIG9yIHRvIEpTT04uc3RyaW5naWZ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlZE1hcChtYXA6IFRyYWNlTWFwKTogRW5jb2RlZFNvdXJjZU1hcCB7XG4gIHJldHVybiBjbG9uZShtYXAsIGVuY29kZWRNYXBwaW5ncyhtYXApKTtcbn1cblxuZnVuY3Rpb24gY2xvbmU8VCBleHRlbmRzIHN0cmluZyB8IHJlYWRvbmx5IFNvdXJjZU1hcFNlZ21lbnRbXVtdPihcbiAgbWFwOiBUcmFjZU1hcCB8IERlY29kZWRTb3VyY2VNYXAsXG4gIG1hcHBpbmdzOiBULFxuKTogVCBleHRlbmRzIHN0cmluZyA/IEVuY29kZWRTb3VyY2VNYXAgOiBEZWNvZGVkU291cmNlTWFwIHtcbiAgcmV0dXJuIHtcbiAgICB2ZXJzaW9uOiBtYXAudmVyc2lvbixcbiAgICBmaWxlOiBtYXAuZmlsZSxcbiAgICBuYW1lczogbWFwLm5hbWVzLFxuICAgIHNvdXJjZVJvb3Q6IG1hcC5zb3VyY2VSb290LFxuICAgIHNvdXJjZXM6IG1hcC5zb3VyY2VzLFxuICAgIHNvdXJjZXNDb250ZW50OiBtYXAuc291cmNlc0NvbnRlbnQsXG4gICAgbWFwcGluZ3MsXG4gICAgaWdub3JlTGlzdDogbWFwLmlnbm9yZUxpc3QgfHwgKG1hcCBhcyBYSW5wdXQpLnhfZ29vZ2xlX2lnbm9yZUxpc3QsXG4gIH0gYXMgYW55O1xufVxuXG5mdW5jdGlvbiBPTWFwcGluZyhzb3VyY2U6IG51bGwsIGxpbmU6IG51bGwsIGNvbHVtbjogbnVsbCwgbmFtZTogbnVsbCk6IEludmFsaWRPcmlnaW5hbE1hcHBpbmc7XG5mdW5jdGlvbiBPTWFwcGluZyhcbiAgc291cmNlOiBzdHJpbmcsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIG5hbWU6IHN0cmluZyB8IG51bGwsXG4pOiBPcmlnaW5hbE1hcHBpbmc7XG5mdW5jdGlvbiBPTWFwcGluZyhcbiAgc291cmNlOiBzdHJpbmcgfCBudWxsLFxuICBsaW5lOiBudW1iZXIgfCBudWxsLFxuICBjb2x1bW46IG51bWJlciB8IG51bGwsXG4gIG5hbWU6IHN0cmluZyB8IG51bGwsXG4pOiBPcmlnaW5hbE1hcHBpbmcgfCBJbnZhbGlkT3JpZ2luYWxNYXBwaW5nIHtcbiAgcmV0dXJuIHsgc291cmNlLCBsaW5lLCBjb2x1bW4sIG5hbWUgfSBhcyBhbnk7XG59XG5cbmZ1bmN0aW9uIEdNYXBwaW5nKGxpbmU6IG51bGwsIGNvbHVtbjogbnVsbCk6IEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nO1xuZnVuY3Rpb24gR01hcHBpbmcobGluZTogbnVtYmVyLCBjb2x1bW46IG51bWJlcik6IEdlbmVyYXRlZE1hcHBpbmc7XG5mdW5jdGlvbiBHTWFwcGluZyhcbiAgbGluZTogbnVtYmVyIHwgbnVsbCxcbiAgY29sdW1uOiBudW1iZXIgfCBudWxsLFxuKTogR2VuZXJhdGVkTWFwcGluZyB8IEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nIHtcbiAgcmV0dXJuIHsgbGluZSwgY29sdW1uIH0gYXMgYW55O1xufVxuXG5mdW5jdGlvbiB0cmFjZVNlZ21lbnRJbnRlcm5hbChcbiAgc2VnbWVudHM6IFNvdXJjZU1hcFNlZ21lbnRbXSxcbiAgbWVtbzogTWVtb1N0YXRlLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuICBiaWFzOiBCaWFzLFxuKTogbnVtYmVyO1xuZnVuY3Rpb24gdHJhY2VTZWdtZW50SW50ZXJuYWwoXG4gIHNlZ21lbnRzOiBSZXZlcnNlU2VnbWVudFtdLFxuICBtZW1vOiBNZW1vU3RhdGUsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIGJpYXM6IEJpYXMsXG4pOiBudW1iZXI7XG5mdW5jdGlvbiB0cmFjZVNlZ21lbnRJbnRlcm5hbChcbiAgc2VnbWVudHM6IFNvdXJjZU1hcFNlZ21lbnRbXSB8IFJldmVyc2VTZWdtZW50W10sXG4gIG1lbW86IE1lbW9TdGF0ZSxcbiAgbGluZTogbnVtYmVyLFxuICBjb2x1bW46IG51bWJlcixcbiAgYmlhczogQmlhcyxcbik6IG51bWJlciB7XG4gIGxldCBpbmRleCA9IG1lbW9pemVkQmluYXJ5U2VhcmNoKHNlZ21lbnRzLCBjb2x1bW4sIG1lbW8sIGxpbmUpO1xuICBpZiAoYnNGb3VuZCkge1xuICAgIGluZGV4ID0gKGJpYXMgPT09IExFQVNUX1VQUEVSX0JPVU5EID8gdXBwZXJCb3VuZCA6IGxvd2VyQm91bmQpKHNlZ21lbnRzLCBjb2x1bW4sIGluZGV4KTtcbiAgfSBlbHNlIGlmIChiaWFzID09PSBMRUFTVF9VUFBFUl9CT1VORCkgaW5kZXgrKztcblxuICBpZiAoaW5kZXggPT09IC0xIHx8IGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGgpIHJldHVybiAtMTtcbiAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiBzbGljZUdlbmVyYXRlZFBvc2l0aW9ucyhcbiAgc2VnbWVudHM6IFJldmVyc2VTZWdtZW50W10sXG4gIG1lbW86IE1lbW9TdGF0ZSxcbiAgbGluZTogbnVtYmVyLFxuICBjb2x1bW46IG51bWJlcixcbiAgYmlhczogQmlhcyxcbik6IEdlbmVyYXRlZE1hcHBpbmdbXSB7XG4gIGxldCBtaW4gPSB0cmFjZVNlZ21lbnRJbnRlcm5hbChzZWdtZW50cywgbWVtbywgbGluZSwgY29sdW1uLCBHUkVBVEVTVF9MT1dFUl9CT1VORCk7XG5cbiAgLy8gV2UgaWdub3JlZCB0aGUgYmlhcyB3aGVuIHRyYWNpbmcgdGhlIHNlZ21lbnQgc28gdGhhdCB3ZSdyZSBndWFybmF0ZWVkIHRvIGZpbmQgdGhlIGZpcnN0IChpblxuICAvLyBpbnNlcnRpb24gb3JkZXIpIHNlZ21lbnQgdGhhdCBtYXRjaGVkLiBFdmVuIGlmIHdlIGRpZCByZXNwZWN0IHRoZSBiaWFzIHdoZW4gdHJhY2luZywgd2Ugd291bGRcbiAgLy8gc3RpbGwgbmVlZCB0byBjYWxsIGBsb3dlckJvdW5kKClgIHRvIGZpbmQgdGhlIGZpcnN0IHNlZ21lbnQsIHdoaWNoIGlzIHNsb3dlciB0aGFuIGp1c3QgbG9va2luZ1xuICAvLyBmb3IgdGhlIEdSRUFURVNUX0xPV0VSX0JPVU5EIHRvIGJlZ2luIHdpdGguIFRoZSBvbmx5IGRpZmZlcmVuY2UgdGhhdCBtYXR0ZXJzIGZvciB1cyBpcyB3aGVuIHRoZVxuICAvLyBiaW5hcnkgc2VhcmNoIGRpZG4ndCBtYXRjaCwgaW4gd2hpY2ggY2FzZSBHUkVBVEVTVF9MT1dFUl9CT1VORCBqdXN0IG5lZWRzIHRvIGluY3JlbWVudCB0b1xuICAvLyBtYXRjaCBMRUFTVF9VUFBFUl9CT1VORC5cbiAgaWYgKCFic0ZvdW5kICYmIGJpYXMgPT09IExFQVNUX1VQUEVSX0JPVU5EKSBtaW4rKztcblxuICBpZiAobWluID09PSAtMSB8fCBtaW4gPT09IHNlZ21lbnRzLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gIC8vIFdlIG1heSBoYXZlIGZvdW5kIHRoZSBzZWdtZW50IHRoYXQgc3RhcnRlZCBhdCBhbiBlYXJsaWVyIGNvbHVtbi4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlbiB3ZVxuICAvLyBuZWVkIHRvIHNsaWNlIGFsbCBnZW5lcmF0ZWQgc2VnbWVudHMgdGhhdCBtYXRjaCBfdGhhdF8gY29sdW1uLCBiZWNhdXNlIGFsbCBzdWNoIHNlZ21lbnRzIHNwYW5cbiAgLy8gdG8gb3VyIGRlc2lyZWQgY29sdW1uLlxuICBjb25zdCBtYXRjaGVkQ29sdW1uID0gYnNGb3VuZCA/IGNvbHVtbiA6IHNlZ21lbnRzW21pbl1bQ09MVU1OXTtcblxuICAvLyBUaGUgYmluYXJ5IHNlYXJjaCBpcyBub3QgZ3VhcmFudGVlZCB0byBmaW5kIHRoZSBsb3dlciBib3VuZCB3aGVuIGEgbWF0Y2ggd2Fzbid0IGZvdW5kLlxuICBpZiAoIWJzRm91bmQpIG1pbiA9IGxvd2VyQm91bmQoc2VnbWVudHMsIG1hdGNoZWRDb2x1bW4sIG1pbik7XG4gIGNvbnN0IG1heCA9IHVwcGVyQm91bmQoc2VnbWVudHMsIG1hdGNoZWRDb2x1bW4sIG1pbik7XG5cbiAgY29uc3QgcmVzdWx0ID0gW107XG4gIGZvciAoOyBtaW4gPD0gbWF4OyBtaW4rKykge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1ttaW5dO1xuICAgIHJlc3VsdC5wdXNoKEdNYXBwaW5nKHNlZ21lbnRbUkVWX0dFTkVSQVRFRF9MSU5FXSArIDEsIHNlZ21lbnRbUkVWX0dFTkVSQVRFRF9DT0xVTU5dKSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVkUG9zaXRpb24oXG4gIG1hcDogVHJhY2VNYXAsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuICBiaWFzOiBCaWFzLFxuICBhbGw6IGZhbHNlLFxuKTogR2VuZXJhdGVkTWFwcGluZyB8IEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nO1xuZnVuY3Rpb24gZ2VuZXJhdGVkUG9zaXRpb24oXG4gIG1hcDogVHJhY2VNYXAsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuICBiaWFzOiBCaWFzLFxuICBhbGw6IHRydWUsXG4pOiBHZW5lcmF0ZWRNYXBwaW5nW107XG5mdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbihcbiAgbWFwOiBUcmFjZU1hcCxcbiAgc291cmNlOiBzdHJpbmcsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIGJpYXM6IEJpYXMsXG4gIGFsbDogYm9vbGVhbixcbik6IEdlbmVyYXRlZE1hcHBpbmcgfCBJbnZhbGlkR2VuZXJhdGVkTWFwcGluZyB8IEdlbmVyYXRlZE1hcHBpbmdbXSB7XG4gIGxpbmUtLTtcbiAgaWYgKGxpbmUgPCAwKSB0aHJvdyBuZXcgRXJyb3IoTElORV9HVFJfWkVSTyk7XG4gIGlmIChjb2x1bW4gPCAwKSB0aHJvdyBuZXcgRXJyb3IoQ09MX0dUUl9FUV9aRVJPKTtcblxuICBjb25zdCB7IHNvdXJjZXMsIHJlc29sdmVkU291cmNlcyB9ID0gbWFwO1xuICBsZXQgc291cmNlSW5kZXggPSBzb3VyY2VzLmluZGV4T2Yoc291cmNlKTtcbiAgaWYgKHNvdXJjZUluZGV4ID09PSAtMSkgc291cmNlSW5kZXggPSByZXNvbHZlZFNvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuICBpZiAoc291cmNlSW5kZXggPT09IC0xKSByZXR1cm4gYWxsID8gW10gOiBHTWFwcGluZyhudWxsLCBudWxsKTtcblxuICBjb25zdCBnZW5lcmF0ZWQgPSAoY2FzdChtYXApLl9ieVNvdXJjZXMgfHw9IGJ1aWxkQnlTb3VyY2VzKFxuICAgIGRlY29kZWRNYXBwaW5ncyhtYXApLFxuICAgIChjYXN0KG1hcCkuX2J5U291cmNlTWVtb3MgPSBzb3VyY2VzLm1hcChtZW1vaXplZFN0YXRlKSksXG4gICkpO1xuXG4gIGNvbnN0IHNlZ21lbnRzID0gZ2VuZXJhdGVkW3NvdXJjZUluZGV4XVtsaW5lXTtcbiAgaWYgKHNlZ21lbnRzID09IG51bGwpIHJldHVybiBhbGwgPyBbXSA6IEdNYXBwaW5nKG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IG1lbW8gPSBjYXN0KG1hcCkuX2J5U291cmNlTWVtb3MhW3NvdXJjZUluZGV4XTtcblxuICBpZiAoYWxsKSByZXR1cm4gc2xpY2VHZW5lcmF0ZWRQb3NpdGlvbnMoc2VnbWVudHMsIG1lbW8sIGxpbmUsIGNvbHVtbiwgYmlhcyk7XG5cbiAgY29uc3QgaW5kZXggPSB0cmFjZVNlZ21lbnRJbnRlcm5hbChzZWdtZW50cywgbWVtbywgbGluZSwgY29sdW1uLCBiaWFzKTtcbiAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIEdNYXBwaW5nKG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG4gIHJldHVybiBHTWFwcGluZyhzZWdtZW50W1JFVl9HRU5FUkFURURfTElORV0gKyAxLCBzZWdtZW50W1JFVl9HRU5FUkFURURfQ09MVU1OXSk7XG59XG4iLCAidHlwZSBHZW5lcmF0ZWRDb2x1bW4gPSBudW1iZXI7XG50eXBlIFNvdXJjZXNJbmRleCA9IG51bWJlcjtcbnR5cGUgU291cmNlTGluZSA9IG51bWJlcjtcbnR5cGUgU291cmNlQ29sdW1uID0gbnVtYmVyO1xudHlwZSBOYW1lc0luZGV4ID0gbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBTb3VyY2VNYXBTZWdtZW50ID1cbiAgfCBbR2VuZXJhdGVkQ29sdW1uXVxuICB8IFtHZW5lcmF0ZWRDb2x1bW4sIFNvdXJjZXNJbmRleCwgU291cmNlTGluZSwgU291cmNlQ29sdW1uXVxuICB8IFtHZW5lcmF0ZWRDb2x1bW4sIFNvdXJjZXNJbmRleCwgU291cmNlTGluZSwgU291cmNlQ29sdW1uLCBOYW1lc0luZGV4XTtcblxuZXhwb3J0IGNvbnN0IENPTFVNTiA9IDA7XG5leHBvcnQgY29uc3QgU09VUkNFU19JTkRFWCA9IDE7XG5leHBvcnQgY29uc3QgU09VUkNFX0xJTkUgPSAyO1xuZXhwb3J0IGNvbnN0IFNPVVJDRV9DT0xVTU4gPSAzO1xuZXhwb3J0IGNvbnN0IE5BTUVTX0lOREVYID0gNDtcbiIsICJpbXBvcnQgeyBTZXRBcnJheSwgcHV0LCByZW1vdmUgfSBmcm9tICdAanJpZGdld2VsbC9zZXQtYXJyYXknO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnQGpyaWRnZXdlbGwvc291cmNlbWFwLWNvZGVjJztcbmltcG9ydCB7IFRyYWNlTWFwLCBkZWNvZGVkTWFwcGluZ3MgfSBmcm9tICdAanJpZGdld2VsbC90cmFjZS1tYXBwaW5nJztcblxuaW1wb3J0IHtcbiAgQ09MVU1OLFxuICBTT1VSQ0VTX0lOREVYLFxuICBTT1VSQ0VfTElORSxcbiAgU09VUkNFX0NPTFVNTixcbiAgTkFNRVNfSU5ERVgsXG59IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFNvdXJjZU1hcElucHV0IH0gZnJvbSAnQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZyc7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZU1hcFNlZ21lbnQgfSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcbmltcG9ydCB0eXBlIHsgRGVjb2RlZFNvdXJjZU1hcCwgRW5jb2RlZFNvdXJjZU1hcCwgUG9zLCBNYXBwaW5nIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIHsgRGVjb2RlZFNvdXJjZU1hcCwgRW5jb2RlZFNvdXJjZU1hcCwgTWFwcGluZyB9O1xuXG5leHBvcnQgdHlwZSBPcHRpb25zID0ge1xuICBmaWxlPzogc3RyaW5nIHwgbnVsbDtcbiAgc291cmNlUm9vdD86IHN0cmluZyB8IG51bGw7XG59O1xuXG5jb25zdCBOT19OQU1FID0gLTE7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIHN0YXRlIHRvIGdlbmVyYXRlIGEgc291cmNlbWFwLlxuICovXG5leHBvcnQgY2xhc3MgR2VuTWFwcGluZyB7XG4gIHByaXZhdGUgZGVjbGFyZSBfbmFtZXM6IFNldEFycmF5PHN0cmluZz47XG4gIHByaXZhdGUgZGVjbGFyZSBfc291cmNlczogU2V0QXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9zb3VyY2VzQ29udGVudDogKHN0cmluZyB8IG51bGwpW107XG4gIHByaXZhdGUgZGVjbGFyZSBfbWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdO1xuICBwcml2YXRlIGRlY2xhcmUgX2lnbm9yZUxpc3Q6IFNldEFycmF5PG51bWJlcj47XG4gIGRlY2xhcmUgZmlsZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBzb3VyY2VSb290OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHsgZmlsZSwgc291cmNlUm9vdCB9OiBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9uYW1lcyA9IG5ldyBTZXRBcnJheSgpO1xuICAgIHRoaXMuX3NvdXJjZXMgPSBuZXcgU2V0QXJyYXkoKTtcbiAgICB0aGlzLl9zb3VyY2VzQ29udGVudCA9IFtdO1xuICAgIHRoaXMuX21hcHBpbmdzID0gW107XG4gICAgdGhpcy5maWxlID0gZmlsZTtcbiAgICB0aGlzLnNvdXJjZVJvb3QgPSBzb3VyY2VSb290O1xuICAgIHRoaXMuX2lnbm9yZUxpc3QgPSBuZXcgU2V0QXJyYXkoKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgUHVibGljTWFwIHtcbiAgX25hbWVzOiBHZW5NYXBwaW5nWydfbmFtZXMnXTtcbiAgX3NvdXJjZXM6IEdlbk1hcHBpbmdbJ19zb3VyY2VzJ107XG4gIF9zb3VyY2VzQ29udGVudDogR2VuTWFwcGluZ1snX3NvdXJjZXNDb250ZW50J107XG4gIF9tYXBwaW5nczogR2VuTWFwcGluZ1snX21hcHBpbmdzJ107XG4gIF9pZ25vcmVMaXN0OiBHZW5NYXBwaW5nWydfaWdub3JlTGlzdCddO1xufVxuXG4vKipcbiAqIFR5cGVzY3JpcHQgZG9lc24ndCBhbGxvdyBmcmllbmQgYWNjZXNzIHRvIHByaXZhdGUgZmllbGRzLCBzbyB0aGlzIGp1c3QgY2FzdHMgdGhlIG1hcCBpbnRvIGEgdHlwZVxuICogd2l0aCBwdWJsaWMgYWNjZXNzIG1vZGlmaWVycy5cbiAqL1xuZnVuY3Rpb24gY2FzdChtYXA6IHVua25vd24pOiBQdWJsaWNNYXAge1xuICByZXR1cm4gbWFwIGFzIGFueTtcbn1cblxuLyoqXG4gKiBBIGxvdy1sZXZlbCBBUEkgdG8gYXNzb2NpYXRlIGEgZ2VuZXJhdGVkIHBvc2l0aW9uIHdpdGggYW4gb3JpZ2luYWwgc291cmNlIHBvc2l0aW9uLiBMaW5lIGFuZFxuICogY29sdW1uIGhlcmUgYXJlIDAtYmFzZWQsIHVubGlrZSBgYWRkTWFwcGluZ2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWdtZW50KFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIGdlbkxpbmU6IG51bWJlcixcbiAgZ2VuQ29sdW1uOiBudW1iZXIsXG4gIHNvdXJjZT86IG51bGwsXG4gIHNvdXJjZUxpbmU/OiBudWxsLFxuICBzb3VyY2VDb2x1bW4/OiBudWxsLFxuICBuYW1lPzogbnVsbCxcbiAgY29udGVudD86IG51bGwsXG4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlZ21lbnQoXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgZ2VuTGluZTogbnVtYmVyLFxuICBnZW5Db2x1bW46IG51bWJlcixcbiAgc291cmNlOiBzdHJpbmcsXG4gIHNvdXJjZUxpbmU6IG51bWJlcixcbiAgc291cmNlQ29sdW1uOiBudW1iZXIsXG4gIG5hbWU/OiBudWxsLFxuICBjb250ZW50Pzogc3RyaW5nIHwgbnVsbCxcbik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gYWRkU2VnbWVudChcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBnZW5MaW5lOiBudW1iZXIsXG4gIGdlbkNvbHVtbjogbnVtYmVyLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgc291cmNlTGluZTogbnVtYmVyLFxuICBzb3VyY2VDb2x1bW46IG51bWJlcixcbiAgbmFtZTogc3RyaW5nLFxuICBjb250ZW50Pzogc3RyaW5nIHwgbnVsbCxcbik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gYWRkU2VnbWVudChcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBnZW5MaW5lOiBudW1iZXIsXG4gIGdlbkNvbHVtbjogbnVtYmVyLFxuICBzb3VyY2U/OiBzdHJpbmcgfCBudWxsLFxuICBzb3VyY2VMaW5lPzogbnVtYmVyIHwgbnVsbCxcbiAgc291cmNlQ29sdW1uPzogbnVtYmVyIHwgbnVsbCxcbiAgbmFtZT86IHN0cmluZyB8IG51bGwsXG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBudWxsLFxuKTogdm9pZCB7XG4gIHJldHVybiBhZGRTZWdtZW50SW50ZXJuYWwoXG4gICAgZmFsc2UsXG4gICAgbWFwLFxuICAgIGdlbkxpbmUsXG4gICAgZ2VuQ29sdW1uLFxuICAgIHNvdXJjZSxcbiAgICBzb3VyY2VMaW5lLFxuICAgIHNvdXJjZUNvbHVtbixcbiAgICBuYW1lLFxuICAgIGNvbnRlbnQsXG4gICk7XG59XG5cbi8qKlxuICogQSBoaWdoLWxldmVsIEFQSSB0byBhc3NvY2lhdGUgYSBnZW5lcmF0ZWQgcG9zaXRpb24gd2l0aCBhbiBvcmlnaW5hbCBzb3VyY2UgcG9zaXRpb24uIExpbmUgaXNcbiAqIDEtYmFzZWQsIGJ1dCBjb2x1bW4gaXMgMC1iYXNlZCwgZHVlIHRvIGxlZ2FjeSBiZWhhdmlvciBpbiBgc291cmNlLW1hcGAgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hcHBpbmcoXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgbWFwcGluZzoge1xuICAgIGdlbmVyYXRlZDogUG9zO1xuICAgIHNvdXJjZT86IG51bGw7XG4gICAgb3JpZ2luYWw/OiBudWxsO1xuICAgIG5hbWU/OiBudWxsO1xuICAgIGNvbnRlbnQ/OiBudWxsO1xuICB9LFxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBhZGRNYXBwaW5nKFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIG1hcHBpbmc6IHtcbiAgICBnZW5lcmF0ZWQ6IFBvcztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBvcmlnaW5hbDogUG9zO1xuICAgIG5hbWU/OiBudWxsO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICB9LFxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBhZGRNYXBwaW5nKFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIG1hcHBpbmc6IHtcbiAgICBnZW5lcmF0ZWQ6IFBvcztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBvcmlnaW5hbDogUG9zO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjb250ZW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgfSxcbik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gYWRkTWFwcGluZyhcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBtYXBwaW5nOiB7XG4gICAgZ2VuZXJhdGVkOiBQb3M7XG4gICAgc291cmNlPzogc3RyaW5nIHwgbnVsbDtcbiAgICBvcmlnaW5hbD86IFBvcyB8IG51bGw7XG4gICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgY29udGVudD86IHN0cmluZyB8IG51bGw7XG4gIH0sXG4pOiB2b2lkIHtcbiAgcmV0dXJuIGFkZE1hcHBpbmdJbnRlcm5hbChmYWxzZSwgbWFwLCBtYXBwaW5nIGFzIFBhcmFtZXRlcnM8dHlwZW9mIGFkZE1hcHBpbmdJbnRlcm5hbD5bMl0pO1xufVxuXG4vKipcbiAqIFNhbWUgYXMgYGFkZFNlZ21lbnRgLCBidXQgd2lsbCBvbmx5IGFkZCB0aGUgc2VnbWVudCBpZiBpdCBnZW5lcmF0ZXMgdXNlZnVsIGluZm9ybWF0aW9uIGluIHRoZVxuICogcmVzdWx0aW5nIG1hcC4gVGhpcyBvbmx5IHdvcmtzIGNvcnJlY3RseSBpZiBzZWdtZW50cyBhcmUgYWRkZWQgKippbiBvcmRlcioqLCBtZWFuaW5nIHlvdSBzaG91bGRcbiAqIG5vdCBhZGQgYSBzZWdtZW50IHdpdGggYSBsb3dlciBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gdGhhbiBvbmUgdGhhdCBjYW1lIGJlZm9yZS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1heWJlQWRkU2VnbWVudDogdHlwZW9mIGFkZFNlZ21lbnQgPSAoXG4gIG1hcCxcbiAgZ2VuTGluZSxcbiAgZ2VuQ29sdW1uLFxuICBzb3VyY2UsXG4gIHNvdXJjZUxpbmUsXG4gIHNvdXJjZUNvbHVtbixcbiAgbmFtZSxcbiAgY29udGVudCxcbikgPT4ge1xuICByZXR1cm4gYWRkU2VnbWVudEludGVybmFsKFxuICAgIHRydWUsXG4gICAgbWFwLFxuICAgIGdlbkxpbmUsXG4gICAgZ2VuQ29sdW1uLFxuICAgIHNvdXJjZSxcbiAgICBzb3VyY2VMaW5lLFxuICAgIHNvdXJjZUNvbHVtbixcbiAgICBuYW1lLFxuICAgIGNvbnRlbnQsXG4gICk7XG59O1xuXG4vKipcbiAqIFNhbWUgYXMgYGFkZE1hcHBpbmdgLCBidXQgd2lsbCBvbmx5IGFkZCB0aGUgbWFwcGluZyBpZiBpdCBnZW5lcmF0ZXMgdXNlZnVsIGluZm9ybWF0aW9uIGluIHRoZVxuICogcmVzdWx0aW5nIG1hcC4gVGhpcyBvbmx5IHdvcmtzIGNvcnJlY3RseSBpZiBtYXBwaW5ncyBhcmUgYWRkZWQgKippbiBvcmRlcioqLCBtZWFuaW5nIHlvdSBzaG91bGRcbiAqIG5vdCBhZGQgYSBtYXBwaW5nIHdpdGggYSBsb3dlciBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gdGhhbiBvbmUgdGhhdCBjYW1lIGJlZm9yZS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1heWJlQWRkTWFwcGluZzogdHlwZW9mIGFkZE1hcHBpbmcgPSAobWFwLCBtYXBwaW5nKSA9PiB7XG4gIHJldHVybiBhZGRNYXBwaW5nSW50ZXJuYWwodHJ1ZSwgbWFwLCBtYXBwaW5nIGFzIFBhcmFtZXRlcnM8dHlwZW9mIGFkZE1hcHBpbmdJbnRlcm5hbD5bMl0pO1xufTtcblxuLyoqXG4gKiBBZGRzL3JlbW92ZXMgdGhlIGNvbnRlbnQgb2YgdGhlIHNvdXJjZSBmaWxlIHRvIHRoZSBzb3VyY2UgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0U291cmNlQ29udGVudChtYXA6IEdlbk1hcHBpbmcsIHNvdXJjZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gIGNvbnN0IHsgX3NvdXJjZXM6IHNvdXJjZXMsIF9zb3VyY2VzQ29udGVudDogc291cmNlc0NvbnRlbnQgfSA9IGNhc3QobWFwKTtcbiAgY29uc3QgaW5kZXggPSBwdXQoc291cmNlcywgc291cmNlKTtcbiAgc291cmNlc0NvbnRlbnRbaW5kZXhdID0gY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldElnbm9yZShtYXA6IEdlbk1hcHBpbmcsIHNvdXJjZTogc3RyaW5nLCBpZ25vcmUgPSB0cnVlKSB7XG4gIGNvbnN0IHsgX3NvdXJjZXM6IHNvdXJjZXMsIF9zb3VyY2VzQ29udGVudDogc291cmNlc0NvbnRlbnQsIF9pZ25vcmVMaXN0OiBpZ25vcmVMaXN0IH0gPSBjYXN0KG1hcCk7XG4gIGNvbnN0IGluZGV4ID0gcHV0KHNvdXJjZXMsIHNvdXJjZSk7XG4gIGlmIChpbmRleCA9PT0gc291cmNlc0NvbnRlbnQubGVuZ3RoKSBzb3VyY2VzQ29udGVudFtpbmRleF0gPSBudWxsO1xuICBpZiAoaWdub3JlKSBwdXQoaWdub3JlTGlzdCwgaW5kZXgpO1xuICBlbHNlIHJlbW92ZShpZ25vcmVMaXN0LCBpbmRleCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHNvdXJjZW1hcCBvYmplY3QgKHdpdGggZGVjb2RlZCBtYXBwaW5ncykgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gYSBsaWJyYXJ5IHRoYXQgZXhwZWN0c1xuICogYSBzb3VyY2VtYXAsIG9yIHRvIEpTT04uc3RyaW5naWZ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EZWNvZGVkTWFwKG1hcDogR2VuTWFwcGluZyk6IERlY29kZWRTb3VyY2VNYXAge1xuICBjb25zdCB7XG4gICAgX21hcHBpbmdzOiBtYXBwaW5ncyxcbiAgICBfc291cmNlczogc291cmNlcyxcbiAgICBfc291cmNlc0NvbnRlbnQ6IHNvdXJjZXNDb250ZW50LFxuICAgIF9uYW1lczogbmFtZXMsXG4gICAgX2lnbm9yZUxpc3Q6IGlnbm9yZUxpc3QsXG4gIH0gPSBjYXN0KG1hcCk7XG4gIHJlbW92ZUVtcHR5RmluYWxMaW5lcyhtYXBwaW5ncyk7XG5cbiAgcmV0dXJuIHtcbiAgICB2ZXJzaW9uOiAzLFxuICAgIGZpbGU6IG1hcC5maWxlIHx8IHVuZGVmaW5lZCxcbiAgICBuYW1lczogbmFtZXMuYXJyYXksXG4gICAgc291cmNlUm9vdDogbWFwLnNvdXJjZVJvb3QgfHwgdW5kZWZpbmVkLFxuICAgIHNvdXJjZXM6IHNvdXJjZXMuYXJyYXksXG4gICAgc291cmNlc0NvbnRlbnQsXG4gICAgbWFwcGluZ3MsXG4gICAgaWdub3JlTGlzdDogaWdub3JlTGlzdC5hcnJheSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc291cmNlbWFwIG9iamVjdCAod2l0aCBlbmNvZGVkIG1hcHBpbmdzKSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhIGxpYnJhcnkgdGhhdCBleHBlY3RzXG4gKiBhIHNvdXJjZW1hcCwgb3IgdG8gSlNPTi5zdHJpbmdpZnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0VuY29kZWRNYXAobWFwOiBHZW5NYXBwaW5nKTogRW5jb2RlZFNvdXJjZU1hcCB7XG4gIGNvbnN0IGRlY29kZWQgPSB0b0RlY29kZWRNYXAobWFwKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZWNvZGVkLFxuICAgIG1hcHBpbmdzOiBlbmNvZGUoZGVjb2RlZC5tYXBwaW5ncyBhcyBTb3VyY2VNYXBTZWdtZW50W11bXSksXG4gIH07XG59XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBHZW5NYXBwaW5nLCB1c2luZyB0aGUgYWxyZWFkeSBwcmVzZW50IG1hcHBpbmdzIG9mIHRoZSBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21NYXAoaW5wdXQ6IFNvdXJjZU1hcElucHV0KTogR2VuTWFwcGluZyB7XG4gIGNvbnN0IG1hcCA9IG5ldyBUcmFjZU1hcChpbnB1dCk7XG4gIGNvbnN0IGdlbiA9IG5ldyBHZW5NYXBwaW5nKHsgZmlsZTogbWFwLmZpbGUsIHNvdXJjZVJvb3Q6IG1hcC5zb3VyY2VSb290IH0pO1xuXG4gIHB1dEFsbChjYXN0KGdlbikuX25hbWVzLCBtYXAubmFtZXMpO1xuICBwdXRBbGwoY2FzdChnZW4pLl9zb3VyY2VzLCBtYXAuc291cmNlcyBhcyBzdHJpbmdbXSk7XG4gIGNhc3QoZ2VuKS5fc291cmNlc0NvbnRlbnQgPSBtYXAuc291cmNlc0NvbnRlbnQgfHwgbWFwLnNvdXJjZXMubWFwKCgpID0+IG51bGwpO1xuICBjYXN0KGdlbikuX21hcHBpbmdzID0gZGVjb2RlZE1hcHBpbmdzKG1hcCkgYXMgR2VuTWFwcGluZ1snX21hcHBpbmdzJ107XG4gIGlmIChtYXAuaWdub3JlTGlzdCkgcHV0QWxsKGNhc3QoZ2VuKS5faWdub3JlTGlzdCwgbWFwLmlnbm9yZUxpc3QpO1xuXG4gIHJldHVybiBnZW47XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBoaWdoLWxldmVsIG1hcHBpbmcgb2JqZWN0cyBmb3IgZXZlcnkgcmVjb3JkZWQgc2VnbWVudCwgd2hpY2ggY291bGQgdGhlbiBiZVxuICogcGFzc2VkIHRvIHRoZSBgc291cmNlLW1hcGAgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFsbE1hcHBpbmdzKG1hcDogR2VuTWFwcGluZyk6IE1hcHBpbmdbXSB7XG4gIGNvbnN0IG91dDogTWFwcGluZ1tdID0gW107XG4gIGNvbnN0IHsgX21hcHBpbmdzOiBtYXBwaW5ncywgX3NvdXJjZXM6IHNvdXJjZXMsIF9uYW1lczogbmFtZXMgfSA9IGNhc3QobWFwKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IG1hcHBpbmdzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3Qgc2VnID0gbGluZVtqXTtcblxuICAgICAgY29uc3QgZ2VuZXJhdGVkID0geyBsaW5lOiBpICsgMSwgY29sdW1uOiBzZWdbQ09MVU1OXSB9O1xuICAgICAgbGV0IHNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IG9yaWdpbmFsOiBQb3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoc2VnLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICBzb3VyY2UgPSBzb3VyY2VzLmFycmF5W3NlZ1tTT1VSQ0VTX0lOREVYXV07XG4gICAgICAgIG9yaWdpbmFsID0geyBsaW5lOiBzZWdbU09VUkNFX0xJTkVdICsgMSwgY29sdW1uOiBzZWdbU09VUkNFX0NPTFVNTl0gfTtcblxuICAgICAgICBpZiAoc2VnLmxlbmd0aCA9PT0gNSkgbmFtZSA9IG5hbWVzLmFycmF5W3NlZ1tOQU1FU19JTkRFWF1dO1xuICAgICAgfVxuXG4gICAgICBvdXQucHVzaCh7IGdlbmVyYXRlZCwgc291cmNlLCBvcmlnaW5hbCwgbmFtZSB9IGFzIE1hcHBpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59XG5cbi8vIFRoaXMgc3BsaXQgZGVjbGFyYXRpb24gaXMgb25seSBzbyB0aGF0IHRlcnNlciBjYW4gZWxtaW5pYXRlIHRoZSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gYmxvY2suXG5mdW5jdGlvbiBhZGRTZWdtZW50SW50ZXJuYWw8UyBleHRlbmRzIHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KFxuICBza2lwYWJsZTogYm9vbGVhbixcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBnZW5MaW5lOiBudW1iZXIsXG4gIGdlbkNvbHVtbjogbnVtYmVyLFxuICBzb3VyY2U6IFMsXG4gIHNvdXJjZUxpbmU6IFMgZXh0ZW5kcyBzdHJpbmcgPyBudW1iZXIgOiBudWxsIHwgdW5kZWZpbmVkLFxuICBzb3VyY2VDb2x1bW46IFMgZXh0ZW5kcyBzdHJpbmcgPyBudW1iZXIgOiBudWxsIHwgdW5kZWZpbmVkLFxuICBuYW1lOiBTIGV4dGVuZHMgc3RyaW5nID8gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA6IG51bGwgfCB1bmRlZmluZWQsXG4gIGNvbnRlbnQ6IFMgZXh0ZW5kcyBzdHJpbmcgPyBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIDogbnVsbCB8IHVuZGVmaW5lZCxcbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgX21hcHBpbmdzOiBtYXBwaW5ncyxcbiAgICBfc291cmNlczogc291cmNlcyxcbiAgICBfc291cmNlc0NvbnRlbnQ6IHNvdXJjZXNDb250ZW50LFxuICAgIF9uYW1lczogbmFtZXMsXG4gIH0gPSBjYXN0KG1hcCk7XG4gIGNvbnN0IGxpbmUgPSBnZXRMaW5lKG1hcHBpbmdzLCBnZW5MaW5lKTtcbiAgY29uc3QgaW5kZXggPSBnZXRDb2x1bW5JbmRleChsaW5lLCBnZW5Db2x1bW4pO1xuXG4gIGlmICghc291cmNlKSB7XG4gICAgaWYgKHNraXBhYmxlICYmIHNraXBTb3VyY2VsZXNzKGxpbmUsIGluZGV4KSkgcmV0dXJuO1xuICAgIHJldHVybiBpbnNlcnQobGluZSwgaW5kZXgsIFtnZW5Db2x1bW5dKTtcbiAgfVxuXG4gIC8vIFNpZ2gsIFR5cGVTY3JpcHQgY2FuJ3QgZmlndXJlIG91dCBzb3VyY2VMaW5lIGFuZCBzb3VyY2VDb2x1bW4gYXJlbid0IG51bGxpc2ggaWYgc291cmNlXG4gIC8vIGlzbid0IG51bGxpc2guXG4gIGFzc2VydDxudW1iZXI+KHNvdXJjZUxpbmUpO1xuICBhc3NlcnQ8bnVtYmVyPihzb3VyY2VDb2x1bW4pO1xuXG4gIGNvbnN0IHNvdXJjZXNJbmRleCA9IHB1dChzb3VyY2VzLCBzb3VyY2UpO1xuICBjb25zdCBuYW1lc0luZGV4ID0gbmFtZSA/IHB1dChuYW1lcywgbmFtZSkgOiBOT19OQU1FO1xuICBpZiAoc291cmNlc0luZGV4ID09PSBzb3VyY2VzQ29udGVudC5sZW5ndGgpIHNvdXJjZXNDb250ZW50W3NvdXJjZXNJbmRleF0gPSBjb250ZW50ID8/IG51bGw7XG5cbiAgaWYgKHNraXBhYmxlICYmIHNraXBTb3VyY2UobGluZSwgaW5kZXgsIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBpbnNlcnQoXG4gICAgbGluZSxcbiAgICBpbmRleCxcbiAgICBuYW1lXG4gICAgICA/IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XVxuICAgICAgOiBbZ2VuQ29sdW1uLCBzb3VyY2VzSW5kZXgsIHNvdXJjZUxpbmUsIHNvdXJjZUNvbHVtbl0sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGFzc2VydDxUPihfdmFsOiB1bmtub3duKTogYXNzZXJ0cyBfdmFsIGlzIFQge1xuICAvLyBub29wLlxufVxuXG5mdW5jdGlvbiBnZXRMaW5lKG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSwgaW5kZXg6IG51bWJlcik6IFNvdXJjZU1hcFNlZ21lbnRbXSB7XG4gIGZvciAobGV0IGkgPSBtYXBwaW5ncy5sZW5ndGg7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgIG1hcHBpbmdzW2ldID0gW107XG4gIH1cbiAgcmV0dXJuIG1hcHBpbmdzW2luZGV4XTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29sdW1uSW5kZXgobGluZTogU291cmNlTWFwU2VnbWVudFtdLCBnZW5Db2x1bW46IG51bWJlcik6IG51bWJlciB7XG4gIGxldCBpbmRleCA9IGxpbmUubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gaW5kZXggLSAxOyBpID49IDA7IGluZGV4ID0gaS0tKSB7XG4gICAgY29uc3QgY3VycmVudCA9IGxpbmVbaV07XG4gICAgaWYgKGdlbkNvbHVtbiA+PSBjdXJyZW50W0NPTFVNTl0pIGJyZWFrO1xuICB9XG4gIHJldHVybiBpbmRleDtcbn1cblxuZnVuY3Rpb24gaW5zZXJ0PFQ+KGFycmF5OiBUW10sIGluZGV4OiBudW1iZXIsIHZhbHVlOiBUKSB7XG4gIGZvciAobGV0IGkgPSBhcnJheS5sZW5ndGg7IGkgPiBpbmRleDsgaS0tKSB7XG4gICAgYXJyYXlbaV0gPSBhcnJheVtpIC0gMV07XG4gIH1cbiAgYXJyYXlbaW5kZXhdID0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUVtcHR5RmluYWxMaW5lcyhtYXBwaW5nczogU291cmNlTWFwU2VnbWVudFtdW10pIHtcbiAgY29uc3QgeyBsZW5ndGggfSA9IG1hcHBpbmdzO1xuICBsZXQgbGVuID0gbGVuZ3RoO1xuICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBsZW4gPSBpLCBpLS0pIHtcbiAgICBpZiAobWFwcGluZ3NbaV0ubGVuZ3RoID4gMCkgYnJlYWs7XG4gIH1cbiAgaWYgKGxlbiA8IGxlbmd0aCkgbWFwcGluZ3MubGVuZ3RoID0gbGVuO1xufVxuXG5mdW5jdGlvbiBwdXRBbGw8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4oc2V0YXJyOiBTZXRBcnJheTxUPiwgYXJyYXk6IFRbXSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSBwdXQoc2V0YXJyLCBhcnJheVtpXSk7XG59XG5cbmZ1bmN0aW9uIHNraXBTb3VyY2VsZXNzKGxpbmU6IFNvdXJjZU1hcFNlZ21lbnRbXSwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAvLyBUaGUgc3RhcnQgb2YgYSBsaW5lIGlzIGFscmVhZHkgc291cmNlbGVzcywgc28gYWRkaW5nIGEgc291cmNlbGVzcyBzZWdtZW50IHRvIHRoZSBiZWdpbm5pbmdcbiAgLy8gZG9lc24ndCBnZW5lcmF0ZSBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLlxuICBpZiAoaW5kZXggPT09IDApIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IHByZXYgPSBsaW5lW2luZGV4IC0gMV07XG4gIC8vIElmIHRoZSBwcmV2aW91cyBzZWdtZW50IGlzIGFsc28gc291cmNlbGVzcywgdGhlbiBhZGRpbmcgYW5vdGhlciBzb3VyY2VsZXNzIHNlZ21lbnQgZG9lc24ndFxuICAvLyBnZW5yYXRlIGFueSBuZXcgaW5mb3JtYXRpb24uIEVsc2UsIHRoaXMgc2VnbWVudCB3aWxsIGVuZCB0aGUgc291cmNlL25hbWVkIHNlZ21lbnQgYW5kIHBvaW50IHRvXG4gIC8vIGEgc291cmNlbGVzcyBwb3NpdGlvbiwgd2hpY2ggaXMgdXNlZnVsLlxuICByZXR1cm4gcHJldi5sZW5ndGggPT09IDE7XG59XG5cbmZ1bmN0aW9uIHNraXBTb3VyY2UoXG4gIGxpbmU6IFNvdXJjZU1hcFNlZ21lbnRbXSxcbiAgaW5kZXg6IG51bWJlcixcbiAgc291cmNlc0luZGV4OiBudW1iZXIsXG4gIHNvdXJjZUxpbmU6IG51bWJlcixcbiAgc291cmNlQ29sdW1uOiBudW1iZXIsXG4gIG5hbWVzSW5kZXg6IG51bWJlcixcbik6IGJvb2xlYW4ge1xuICAvLyBBIHNvdXJjZS9uYW1lZCBzZWdtZW50IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUgZ2l2ZXMgcG9zaXRpb24gYXQgdGhhdCBnZW5Db2x1bW5cbiAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgcHJldiA9IGxpbmVbaW5kZXggLSAxXTtcblxuICAvLyBJZiB0aGUgcHJldmlvdXMgc2VnbWVudCBpcyBzb3VyY2VsZXNzLCB0aGVuIHdlJ3JlIHRyYW5zaXRpb25pbmcgdG8gYSBzb3VyY2UuXG4gIGlmIChwcmV2Lmxlbmd0aCA9PT0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZSBwcmV2aW91cyBzZWdtZW50IG1hcHMgdG8gdGhlIGV4YWN0IHNhbWUgc291cmNlIHBvc2l0aW9uLCB0aGVuIHRoaXMgc2VnbWVudCBkb2Vzbid0XG4gIC8vIHByb3ZpZGUgYW55IG5ldyBwb3NpdGlvbiBpbmZvcm1hdGlvbi5cbiAgcmV0dXJuIChcbiAgICBzb3VyY2VzSW5kZXggPT09IHByZXZbU09VUkNFU19JTkRFWF0gJiZcbiAgICBzb3VyY2VMaW5lID09PSBwcmV2W1NPVVJDRV9MSU5FXSAmJlxuICAgIHNvdXJjZUNvbHVtbiA9PT0gcHJldltTT1VSQ0VfQ09MVU1OXSAmJlxuICAgIG5hbWVzSW5kZXggPT09IChwcmV2Lmxlbmd0aCA9PT0gNSA/IHByZXZbTkFNRVNfSU5ERVhdIDogTk9fTkFNRSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gYWRkTWFwcGluZ0ludGVybmFsPFMgZXh0ZW5kcyBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihcbiAgc2tpcGFibGU6IGJvb2xlYW4sXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgbWFwcGluZzoge1xuICAgIGdlbmVyYXRlZDogUG9zO1xuICAgIHNvdXJjZTogUztcbiAgICBvcmlnaW5hbDogUyBleHRlbmRzIHN0cmluZyA/IFBvcyA6IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgbmFtZTogUyBleHRlbmRzIHN0cmluZyA/IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgOiBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGNvbnRlbnQ6IFMgZXh0ZW5kcyBzdHJpbmcgPyBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIDogbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSxcbikge1xuICBjb25zdCB7IGdlbmVyYXRlZCwgc291cmNlLCBvcmlnaW5hbCwgbmFtZSwgY29udGVudCB9ID0gbWFwcGluZztcbiAgaWYgKCFzb3VyY2UpIHtcbiAgICByZXR1cm4gYWRkU2VnbWVudEludGVybmFsKFxuICAgICAgc2tpcGFibGUsXG4gICAgICBtYXAsXG4gICAgICBnZW5lcmF0ZWQubGluZSAtIDEsXG4gICAgICBnZW5lcmF0ZWQuY29sdW1uLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgKTtcbiAgfVxuICBhc3NlcnQ8UG9zPihvcmlnaW5hbCk7XG4gIHJldHVybiBhZGRTZWdtZW50SW50ZXJuYWwoXG4gICAgc2tpcGFibGUsXG4gICAgbWFwLFxuICAgIGdlbmVyYXRlZC5saW5lIC0gMSxcbiAgICBnZW5lcmF0ZWQuY29sdW1uLFxuICAgIHNvdXJjZSBhcyBzdHJpbmcsXG4gICAgb3JpZ2luYWwubGluZSAtIDEsXG4gICAgb3JpZ2luYWwuY29sdW1uLFxuICAgIG5hbWUsXG4gICAgY29udGVudCxcbiAgKTtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO3ZhciBfZ2VubWFwcGluZyA9IHJlcXVpcmUoJ0BqcmlkZ2V3ZWxsL2dlbi1tYXBwaW5nJyk7XG5cblxuXG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4vcGFyc2VyL3V0aWwvY2hhcmNvZGVzJyk7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vKipcbiAqIEdlbmVyYXRlIGEgc291cmNlIG1hcCBpbmRpY2F0aW5nIHRoYXQgZWFjaCBsaW5lIG1hcHMgZGlyZWN0bHkgdG8gdGhlIG9yaWdpbmFsIGxpbmUsXG4gKiB3aXRoIHRoZSB0b2tlbnMgaW4gdGhlaXIgbmV3IHBvc2l0aW9ucy5cbiAqL1xuIGZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VNYXAoXG4gIHtjb2RlOiBnZW5lcmF0ZWRDb2RlLCBtYXBwaW5nczogcmF3TWFwcGluZ3N9LFxuICBmaWxlUGF0aCxcbiAgb3B0aW9ucyxcbiAgc291cmNlLFxuICB0b2tlbnMsXG4pIHtcbiAgY29uc3Qgc291cmNlQ29sdW1ucyA9IGNvbXB1dGVTb3VyY2VDb2x1bW5zKHNvdXJjZSwgdG9rZW5zKTtcbiAgY29uc3QgbWFwID0gbmV3ICgwLCBfZ2VubWFwcGluZy5HZW5NYXBwaW5nKSh7ZmlsZTogb3B0aW9ucy5jb21waWxlZEZpbGVuYW1lfSk7XG4gIGxldCB0b2tlbkluZGV4ID0gMDtcbiAgLy8gY3VycmVudE1hcHBpbmcgaXMgdGhlIG91dHB1dCBzb3VyY2UgaW5kZXggZm9yIHRoZSBjdXJyZW50IGlucHV0IHRva2VuIGJlaW5nXG4gIC8vIGNvbnNpZGVyZWQuXG4gIGxldCBjdXJyZW50TWFwcGluZyA9IHJhd01hcHBpbmdzWzBdO1xuICB3aGlsZSAoY3VycmVudE1hcHBpbmcgPT09IHVuZGVmaW5lZCAmJiB0b2tlbkluZGV4IDwgcmF3TWFwcGluZ3MubGVuZ3RoIC0gMSkge1xuICAgIHRva2VuSW5kZXgrKztcbiAgICBjdXJyZW50TWFwcGluZyA9IHJhd01hcHBpbmdzW3Rva2VuSW5kZXhdO1xuICB9XG4gIGxldCBsaW5lID0gMDtcbiAgbGV0IGxpbmVTdGFydCA9IDA7XG4gIGlmIChjdXJyZW50TWFwcGluZyAhPT0gbGluZVN0YXJ0KSB7XG4gICAgX2dlbm1hcHBpbmcubWF5YmVBZGRTZWdtZW50LmNhbGwodm9pZCAwLCBtYXAsIGxpbmUsIDAsIGZpbGVQYXRoLCBsaW5lLCAwKTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGdlbmVyYXRlZENvZGUubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaSA9PT0gY3VycmVudE1hcHBpbmcpIHtcbiAgICAgIGNvbnN0IGdlbkNvbHVtbiA9IGN1cnJlbnRNYXBwaW5nIC0gbGluZVN0YXJ0O1xuICAgICAgY29uc3Qgc291cmNlQ29sdW1uID0gc291cmNlQ29sdW1uc1t0b2tlbkluZGV4XTtcbiAgICAgIF9nZW5tYXBwaW5nLm1heWJlQWRkU2VnbWVudC5jYWxsKHZvaWQgMCwgbWFwLCBsaW5lLCBnZW5Db2x1bW4sIGZpbGVQYXRoLCBsaW5lLCBzb3VyY2VDb2x1bW4pO1xuICAgICAgd2hpbGUgKFxuICAgICAgICAoY3VycmVudE1hcHBpbmcgPT09IGkgfHwgY3VycmVudE1hcHBpbmcgPT09IHVuZGVmaW5lZCkgJiZcbiAgICAgICAgdG9rZW5JbmRleCA8IHJhd01hcHBpbmdzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICB0b2tlbkluZGV4Kys7XG4gICAgICAgIGN1cnJlbnRNYXBwaW5nID0gcmF3TWFwcGluZ3NbdG9rZW5JbmRleF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChnZW5lcmF0ZWRDb2RlLmNoYXJDb2RlQXQoaSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxpbmVGZWVkKSB7XG4gICAgICBsaW5lKys7XG4gICAgICBsaW5lU3RhcnQgPSBpICsgMTtcbiAgICAgIGlmIChjdXJyZW50TWFwcGluZyAhPT0gbGluZVN0YXJ0KSB7XG4gICAgICAgIF9nZW5tYXBwaW5nLm1heWJlQWRkU2VnbWVudC5jYWxsKHZvaWQgMCwgbWFwLCBsaW5lLCAwLCBmaWxlUGF0aCwgbGluZSwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IHtzb3VyY2VSb290LCBzb3VyY2VzQ29udGVudCwgLi4uc291cmNlTWFwfSA9IF9nZW5tYXBwaW5nLnRvRW5jb2RlZE1hcC5jYWxsKHZvaWQgMCwgbWFwKTtcbiAgcmV0dXJuIHNvdXJjZU1hcCA7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGNvbXB1dGVTb3VyY2VNYXA7XG5cbi8qKlxuICogQ3JlYXRlIGFuIGFycmF5IG1hcHBpbmcgZWFjaCB0b2tlbiBpbmRleCB0byB0aGUgMC1iYXNlZCBjb2x1bW4gb2YgdGhlIHN0YXJ0XG4gKiBwb3NpdGlvbiBvZiB0aGUgdG9rZW4uXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VDb2x1bW5zKGNvZGUsIHRva2Vucykge1xuICBjb25zdCBzb3VyY2VDb2x1bW5zID0gbmV3IEFycmF5KHRva2Vucy5sZW5ndGgpO1xuICBsZXQgdG9rZW5JbmRleCA9IDA7XG4gIGxldCBjdXJyZW50TWFwcGluZyA9IHRva2Vuc1t0b2tlbkluZGV4XS5zdGFydDtcbiAgbGV0IGxpbmVTdGFydCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29kZS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID09PSBjdXJyZW50TWFwcGluZykge1xuICAgICAgc291cmNlQ29sdW1uc1t0b2tlbkluZGV4XSA9IGN1cnJlbnRNYXBwaW5nIC0gbGluZVN0YXJ0O1xuICAgICAgdG9rZW5JbmRleCsrO1xuICAgICAgY3VycmVudE1hcHBpbmcgPSB0b2tlbnNbdG9rZW5JbmRleF0uc3RhcnQ7XG4gICAgfVxuICAgIGlmIChjb2RlLmNoYXJDb2RlQXQoaSkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxpbmVGZWVkKSB7XG4gICAgICBsaW5lU3RhcnQgPSBpICsgMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNvdXJjZUNvbHVtbnM7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTtcblxuY29uc3QgSEVMUEVSUyA9IHtcbiAgcmVxdWlyZTogYFxuICAgIGltcG9ydCB7Y3JlYXRlUmVxdWlyZSBhcyBDUkVBVEVfUkVRVUlSRV9OQU1FfSBmcm9tIFwibW9kdWxlXCI7XG4gICAgY29uc3QgcmVxdWlyZSA9IENSRUFURV9SRVFVSVJFX05BTUUoaW1wb3J0Lm1ldGEudXJsKTtcbiAgYCxcbiAgaW50ZXJvcFJlcXVpcmVXaWxkY2FyZDogYFxuICAgIGZ1bmN0aW9uIGludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgbmV3T2JqID0ge307XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgICAgICByZXR1cm4gbmV3T2JqO1xuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgaW50ZXJvcFJlcXVpcmVEZWZhdWx0OiBgXG4gICAgZnVuY3Rpb24gaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07XG4gICAgfVxuICBgLFxuICBjcmVhdGVOYW1lZEV4cG9ydEZyb206IGBcbiAgICBmdW5jdGlvbiBjcmVhdGVOYW1lZEV4cG9ydEZyb20ob2JqLCBsb2NhbE5hbWUsIGltcG9ydGVkTmFtZSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGxvY2FsTmFtZSwge2VudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZ2V0OiAoKSA9PiBvYmpbaW1wb3J0ZWROYW1lXX0pO1xuICAgIH1cbiAgYCxcbiAgLy8gTm90ZSB0aGF0IFR5cGVTY3JpcHQgYW5kIEJhYmVsIGRvIHRoaXMgZGlmZmVyZW50bHk7IFR5cGVTY3JpcHQgZG9lcyBhIHNpbXBsZSBleGlzdGVuY2VcbiAgLy8gY2hlY2sgaW4gdGhlIGV4cG9ydHMgb2JqZWN0IGFuZCBkb2VzIGEgcGxhaW4gYXNzaWdubWVudCwgd2hlcmVhcyBCYWJlbCB1c2VzXG4gIC8vIGRlZmluZVByb3BlcnR5IGFuZCBidWlsZHMgYW4gb2JqZWN0IG9mIGV4cGxpY2l0bHktZXhwb3J0ZWQgbmFtZXMgc28gdGhhdCBzdGFyIGV4cG9ydHMgY2FuXG4gIC8vIGFsd2F5cyB0YWtlIGxvd2VyIHByZWNlZGVuY2UuIEZvciBub3csIHdlIGRvIHRoZSBlYXNpZXIgVHlwZVNjcmlwdCB0aGluZy5cbiAgY3JlYXRlU3RhckV4cG9ydDogYFxuICAgIGZ1bmN0aW9uIGNyZWF0ZVN0YXJFeHBvcnQob2JqKSB7XG4gICAgICBPYmplY3Qua2V5cyhvYmopXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSBcImRlZmF1bHRcIiAmJiBrZXkgIT09IFwiX19lc01vZHVsZVwiKVxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGV4cG9ydHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7ZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBnZXQ6ICgpID0+IG9ialtrZXldfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgYCxcbiAgbnVsbGlzaENvYWxlc2NlOiBgXG4gICAgZnVuY3Rpb24gbnVsbGlzaENvYWxlc2NlKGxocywgcmhzRm4pIHtcbiAgICAgIGlmIChsaHMgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbGhzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJoc0ZuKCk7XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBhc3luY051bGxpc2hDb2FsZXNjZTogYFxuICAgIGFzeW5jIGZ1bmN0aW9uIGFzeW5jTnVsbGlzaENvYWxlc2NlKGxocywgcmhzRm4pIHtcbiAgICAgIGlmIChsaHMgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbGhzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJoc0ZuKCk7XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBvcHRpb25hbENoYWluOiBgXG4gICAgZnVuY3Rpb24gb3B0aW9uYWxDaGFpbihvcHMpIHtcbiAgICAgIGxldCBsYXN0QWNjZXNzTEhTID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IHZhbHVlID0gb3BzWzBdO1xuICAgICAgbGV0IGkgPSAxO1xuICAgICAgd2hpbGUgKGkgPCBvcHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG9wID0gb3BzW2ldO1xuICAgICAgICBjb25zdCBmbiA9IG9wc1tpICsgMV07XG4gICAgICAgIGkgKz0gMjtcbiAgICAgICAgaWYgKChvcCA9PT0gJ29wdGlvbmFsQWNjZXNzJyB8fCBvcCA9PT0gJ29wdGlvbmFsQ2FsbCcpICYmIHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcCA9PT0gJ2FjY2VzcycgfHwgb3AgPT09ICdvcHRpb25hbEFjY2VzcycpIHtcbiAgICAgICAgICBsYXN0QWNjZXNzTEhTID0gdmFsdWU7XG4gICAgICAgICAgdmFsdWUgPSBmbih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAob3AgPT09ICdjYWxsJyB8fCBvcCA9PT0gJ29wdGlvbmFsQ2FsbCcpIHtcbiAgICAgICAgICB2YWx1ZSA9IGZuKCguLi5hcmdzKSA9PiB2YWx1ZS5jYWxsKGxhc3RBY2Nlc3NMSFMsIC4uLmFyZ3MpKTtcbiAgICAgICAgICBsYXN0QWNjZXNzTEhTID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICBgLFxuICBhc3luY09wdGlvbmFsQ2hhaW46IGBcbiAgICBhc3luYyBmdW5jdGlvbiBhc3luY09wdGlvbmFsQ2hhaW4ob3BzKSB7XG4gICAgICBsZXQgbGFzdEFjY2Vzc0xIUyA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCB2YWx1ZSA9IG9wc1swXTtcbiAgICAgIGxldCBpID0gMTtcbiAgICAgIHdoaWxlIChpIDwgb3BzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBvcCA9IG9wc1tpXTtcbiAgICAgICAgY29uc3QgZm4gPSBvcHNbaSArIDFdO1xuICAgICAgICBpICs9IDI7XG4gICAgICAgIGlmICgob3AgPT09ICdvcHRpb25hbEFjY2VzcycgfHwgb3AgPT09ICdvcHRpb25hbENhbGwnKSAmJiB2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3AgPT09ICdhY2Nlc3MnIHx8IG9wID09PSAnb3B0aW9uYWxBY2Nlc3MnKSB7XG4gICAgICAgICAgbGFzdEFjY2Vzc0xIUyA9IHZhbHVlO1xuICAgICAgICAgIHZhbHVlID0gYXdhaXQgZm4odmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wID09PSAnY2FsbCcgfHwgb3AgPT09ICdvcHRpb25hbENhbGwnKSB7XG4gICAgICAgICAgdmFsdWUgPSBhd2FpdCBmbigoLi4uYXJncykgPT4gdmFsdWUuY2FsbChsYXN0QWNjZXNzTEhTLCAuLi5hcmdzKSk7XG4gICAgICAgICAgbGFzdEFjY2Vzc0xIUyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgYCxcbiAgb3B0aW9uYWxDaGFpbkRlbGV0ZTogYFxuICAgIGZ1bmN0aW9uIG9wdGlvbmFsQ2hhaW5EZWxldGUob3BzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBPUFRJT05BTF9DSEFJTl9OQU1FKG9wcyk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09IG51bGwgPyB0cnVlIDogcmVzdWx0O1xuICAgIH1cbiAgYCxcbiAgYXN5bmNPcHRpb25hbENoYWluRGVsZXRlOiBgXG4gICAgYXN5bmMgZnVuY3Rpb24gYXN5bmNPcHRpb25hbENoYWluRGVsZXRlKG9wcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgQVNZTkNfT1BUSU9OQUxfQ0hBSU5fTkFNRShvcHMpO1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PSBudWxsID8gdHJ1ZSA6IHJlc3VsdDtcbiAgICB9XG4gIGAsXG59O1xuXG4gY2xhc3MgSGVscGVyTWFuYWdlciB7XG4gIF9faW5pdCgpIHt0aGlzLmhlbHBlck5hbWVzID0ge319XG4gIF9faW5pdDIoKSB7dGhpcy5jcmVhdGVSZXF1aXJlTmFtZSA9IG51bGx9XG4gIGNvbnN0cnVjdG9yKCBuYW1lTWFuYWdlcikgezt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7SGVscGVyTWFuYWdlci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7SGVscGVyTWFuYWdlci5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpO31cblxuICBnZXRIZWxwZXJOYW1lKGJhc2VOYW1lKSB7XG4gICAgbGV0IGhlbHBlck5hbWUgPSB0aGlzLmhlbHBlck5hbWVzW2Jhc2VOYW1lXTtcbiAgICBpZiAoaGVscGVyTmFtZSkge1xuICAgICAgcmV0dXJuIGhlbHBlck5hbWU7XG4gICAgfVxuICAgIGhlbHBlck5hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoYF8ke2Jhc2VOYW1lfWApO1xuICAgIHRoaXMuaGVscGVyTmFtZXNbYmFzZU5hbWVdID0gaGVscGVyTmFtZTtcbiAgICByZXR1cm4gaGVscGVyTmFtZTtcbiAgfVxuXG4gIGVtaXRIZWxwZXJzKCkge1xuICAgIGxldCByZXN1bHRDb2RlID0gXCJcIjtcbiAgICBpZiAodGhpcy5oZWxwZXJOYW1lcy5vcHRpb25hbENoYWluRGVsZXRlKSB7XG4gICAgICB0aGlzLmdldEhlbHBlck5hbWUoXCJvcHRpb25hbENoYWluXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwZXJOYW1lcy5hc3luY09wdGlvbmFsQ2hhaW5EZWxldGUpIHtcbiAgICAgIHRoaXMuZ2V0SGVscGVyTmFtZShcImFzeW5jT3B0aW9uYWxDaGFpblwiKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBbYmFzZU5hbWUsIGhlbHBlckNvZGVUZW1wbGF0ZV0gb2YgT2JqZWN0LmVudHJpZXMoSEVMUEVSUykpIHtcbiAgICAgIGNvbnN0IGhlbHBlck5hbWUgPSB0aGlzLmhlbHBlck5hbWVzW2Jhc2VOYW1lXTtcbiAgICAgIGxldCBoZWxwZXJDb2RlID0gaGVscGVyQ29kZVRlbXBsYXRlO1xuICAgICAgaWYgKGJhc2VOYW1lID09PSBcIm9wdGlvbmFsQ2hhaW5EZWxldGVcIikge1xuICAgICAgICBoZWxwZXJDb2RlID0gaGVscGVyQ29kZS5yZXBsYWNlKFwiT1BUSU9OQUxfQ0hBSU5fTkFNRVwiLCB0aGlzLmhlbHBlck5hbWVzLm9wdGlvbmFsQ2hhaW4pO1xuICAgICAgfSBlbHNlIGlmIChiYXNlTmFtZSA9PT0gXCJhc3luY09wdGlvbmFsQ2hhaW5EZWxldGVcIikge1xuICAgICAgICBoZWxwZXJDb2RlID0gaGVscGVyQ29kZS5yZXBsYWNlKFxuICAgICAgICAgIFwiQVNZTkNfT1BUSU9OQUxfQ0hBSU5fTkFNRVwiLFxuICAgICAgICAgIHRoaXMuaGVscGVyTmFtZXMuYXN5bmNPcHRpb25hbENoYWluLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChiYXNlTmFtZSA9PT0gXCJyZXF1aXJlXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlUmVxdWlyZU5hbWUgPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZVJlcXVpcmVOYW1lID0gdGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiX2NyZWF0ZVJlcXVpcmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaGVscGVyQ29kZSA9IGhlbHBlckNvZGUucmVwbGFjZSgvQ1JFQVRFX1JFUVVJUkVfTkFNRS9nLCB0aGlzLmNyZWF0ZVJlcXVpcmVOYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChoZWxwZXJOYW1lKSB7XG4gICAgICAgIHJlc3VsdENvZGUgKz0gXCIgXCI7XG4gICAgICAgIHJlc3VsdENvZGUgKz0gaGVscGVyQ29kZS5yZXBsYWNlKGJhc2VOYW1lLCBoZWxwZXJOYW1lKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKS50cmltKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRDb2RlO1xuICB9XG59IGV4cG9ydHMuSGVscGVyTWFuYWdlciA9IEhlbHBlck1hbmFnZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTtcblxuXG5cbnZhciBfdG9rZW5pemVyID0gcmVxdWlyZSgnLi9wYXJzZXIvdG9rZW5pemVyJyk7XG5cbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxuXG4vKipcbiAqIFRyYXZlcnNlIHRoZSBnaXZlbiB0b2tlbnMgYW5kIG1vZGlmeSB0aGVtIGlmIG5lY2Vzc2FyeSB0byBpbmRpY2F0ZSB0aGF0IHNvbWUgbmFtZXMgc2hhZG93IGdsb2JhbFxuICogdmFyaWFibGVzLlxuICovXG4gZnVuY3Rpb24gaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMoXG4gIHRva2VucyxcbiAgc2NvcGVzLFxuICBnbG9iYWxOYW1lcyxcbikge1xuICBpZiAoIWhhc1NoYWRvd2VkR2xvYmFscyh0b2tlbnMsIGdsb2JhbE5hbWVzKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBtYXJrU2hhZG93ZWRHbG9iYWxzKHRva2Vucywgc2NvcGVzLCBnbG9iYWxOYW1lcyk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGlkZW50aWZ5U2hhZG93ZWRHbG9iYWxzO1xuXG4vKipcbiAqIFdlIGNhbiBkbyBhIGZhc3QgdXAtZnJvbnQgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgZGVjbGFyYXRpb25zIHRvIGdsb2JhbCBuYW1lcy4gSWYgbm90LFxuICogdGhlbiB0aGVyZSdzIG5vIHBvaW50IGluIGNvbXB1dGluZyBzY29wZSBhc3NpZ25tZW50cy5cbiAqL1xuLy8gRXhwb3J0ZWQgZm9yIHRlc3RpbmcuXG4gZnVuY3Rpb24gaGFzU2hhZG93ZWRHbG9iYWxzKHRva2VucywgZ2xvYmFsTmFtZXMpIHtcbiAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMudG9rZW5zKSB7XG4gICAgaWYgKFxuICAgICAgdG9rZW4udHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lICYmXG4gICAgICAhdG9rZW4uaXNUeXBlICYmXG4gICAgICBfdG9rZW5pemVyLmlzTm9uVG9wTGV2ZWxEZWNsYXJhdGlvbi5jYWxsKHZvaWQgMCwgdG9rZW4pICYmXG4gICAgICBnbG9iYWxOYW1lcy5oYXModG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn0gZXhwb3J0cy5oYXNTaGFkb3dlZEdsb2JhbHMgPSBoYXNTaGFkb3dlZEdsb2JhbHM7XG5cbmZ1bmN0aW9uIG1hcmtTaGFkb3dlZEdsb2JhbHMoXG4gIHRva2VucyxcbiAgc2NvcGVzLFxuICBnbG9iYWxOYW1lcyxcbikge1xuICBjb25zdCBzY29wZVN0YWNrID0gW107XG4gIGxldCBzY29wZUluZGV4ID0gc2NvcGVzLmxlbmd0aCAtIDE7XG4gIC8vIFNjb3BlcyB3ZXJlIGdlbmVyYXRlZCBhdCBjb21wbGV0aW9uIHRpbWUsIHNvIHRoZXkncmUgc29ydGVkIGJ5IGVuZCBpbmRleCwgc28gd2UgY2FuIG1haW50YWluIGFcbiAgLy8gZ29vZCBzdGFjayBieSBnb2luZyBiYWNrd2FyZHMgdGhyb3VnaCB0aGVtLlxuICBmb3IgKGxldCBpID0gdG9rZW5zLnRva2Vucy5sZW5ndGggLSAxOyA7IGktLSkge1xuICAgIHdoaWxlIChzY29wZVN0YWNrLmxlbmd0aCA+IDAgJiYgc2NvcGVTdGFja1tzY29wZVN0YWNrLmxlbmd0aCAtIDFdLnN0YXJ0VG9rZW5JbmRleCA9PT0gaSArIDEpIHtcbiAgICAgIHNjb3BlU3RhY2sucG9wKCk7XG4gICAgfVxuICAgIHdoaWxlIChzY29wZUluZGV4ID49IDAgJiYgc2NvcGVzW3Njb3BlSW5kZXhdLmVuZFRva2VuSW5kZXggPT09IGkgKyAxKSB7XG4gICAgICBzY29wZVN0YWNrLnB1c2goc2NvcGVzW3Njb3BlSW5kZXhdKTtcbiAgICAgIHNjb3BlSW5kZXgtLTtcbiAgICB9XG4gICAgLy8gUHJvY2VzcyBzY29wZXMgYWZ0ZXIgdGhlIGxhc3QgaXRlcmF0aW9uIHNvIHdlIGNhbiBtYWtlIHN1cmUgd2UgcG9wIGFsbCBvZiB0aGVtLlxuICAgIGlmIChpIDwgMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnMudG9rZW5zW2ldO1xuICAgIGNvbnN0IG5hbWUgPSB0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbik7XG4gICAgaWYgKHNjb3BlU3RhY2subGVuZ3RoID4gMSAmJiAhdG9rZW4uaXNUeXBlICYmIHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSAmJiBnbG9iYWxOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgIGlmIChfdG9rZW5pemVyLmlzQmxvY2tTY29wZWREZWNsYXJhdGlvbi5jYWxsKHZvaWQgMCwgdG9rZW4pKSB7XG4gICAgICAgIG1hcmtTaGFkb3dlZEZvclNjb3BlKHNjb3BlU3RhY2tbc2NvcGVTdGFjay5sZW5ndGggLSAxXSwgdG9rZW5zLCBuYW1lKTtcbiAgICAgIH0gZWxzZSBpZiAoX3Rva2VuaXplci5pc0Z1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsIHRva2VuKSkge1xuICAgICAgICBsZXQgc3RhY2tJbmRleCA9IHNjb3BlU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKHN0YWNrSW5kZXggPiAwICYmICFzY29wZVN0YWNrW3N0YWNrSW5kZXhdLmlzRnVuY3Rpb25TY29wZSkge1xuICAgICAgICAgIHN0YWNrSW5kZXgtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhY2tJbmRleCA8IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEaWQgbm90IGZpbmQgcGFyZW50IGZ1bmN0aW9uIHNjb3BlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBtYXJrU2hhZG93ZWRGb3JTY29wZShzY29wZVN0YWNrW3N0YWNrSW5kZXhdLCB0b2tlbnMsIG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoc2NvcGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgZW1wdHkgc2NvcGUgc3RhY2sgYWZ0ZXIgcHJvY2Vzc2luZyBmaWxlLlwiKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU2hhZG93ZWRGb3JTY29wZShzY29wZSwgdG9rZW5zLCBuYW1lKSB7XG4gIGZvciAobGV0IGkgPSBzY29wZS5zdGFydFRva2VuSW5kZXg7IGkgPCBzY29wZS5lbmRUb2tlbkluZGV4OyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKFxuICAgICAgKHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSB8fCB0b2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUpICYmXG4gICAgICB0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbikgPT09IG5hbWVcbiAgICApIHtcbiAgICAgIHRva2VuLnNoYWRvd3NHbG9iYWwgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG4vKipcbiAqIEdldCBhbGwgaWRlbnRpZmllciBuYW1lcyBpbiB0aGUgY29kZSwgaW4gb3JkZXIsIGluY2x1ZGluZyBkdXBsaWNhdGVzLlxuICovXG4gZnVuY3Rpb24gZ2V0SWRlbnRpZmllck5hbWVzKGNvZGUsIHRva2Vucykge1xuICBjb25zdCBuYW1lcyA9IFtdO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgIGlmICh0b2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHtcbiAgICAgIG5hbWVzLnB1c2goY29kZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuYW1lcztcbn0gZXhwb3J0cy5kZWZhdWx0ID0gZ2V0SWRlbnRpZmllck5hbWVzO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG52YXIgX2dldElkZW50aWZpZXJOYW1lcyA9IHJlcXVpcmUoJy4vdXRpbC9nZXRJZGVudGlmaWVyTmFtZXMnKTsgdmFyIF9nZXRJZGVudGlmaWVyTmFtZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0SWRlbnRpZmllck5hbWVzKTtcblxuIGNsYXNzIE5hbWVNYW5hZ2VyIHtcbiAgICBfX2luaXQoKSB7dGhpcy51c2VkTmFtZXMgPSBuZXcgU2V0KCl9XG5cbiAgY29uc3RydWN0b3IoY29kZSwgdG9rZW5zKSB7O05hbWVNYW5hZ2VyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtcbiAgICB0aGlzLnVzZWROYW1lcyA9IG5ldyBTZXQoX2dldElkZW50aWZpZXJOYW1lczIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgY29kZSwgdG9rZW5zKSk7XG4gIH1cblxuICBjbGFpbUZyZWVOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBuZXdOYW1lID0gdGhpcy5maW5kRnJlZU5hbWUobmFtZSk7XG4gICAgdGhpcy51c2VkTmFtZXMuYWRkKG5ld05hbWUpO1xuICAgIHJldHVybiBuZXdOYW1lO1xuICB9XG5cbiAgZmluZEZyZWVOYW1lKG5hbWUpIHtcbiAgICBpZiAoIXRoaXMudXNlZE5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfVxuICAgIGxldCBzdWZmaXhOdW0gPSAyO1xuICAgIHdoaWxlICh0aGlzLnVzZWROYW1lcy5oYXMobmFtZSArIFN0cmluZyhzdWZmaXhOdW0pKSkge1xuICAgICAgc3VmZml4TnVtKys7XG4gICAgfVxuICAgIHJldHVybiBuYW1lICsgU3RyaW5nKHN1ZmZpeE51bSk7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gTmFtZU1hbmFnZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGV0YWlsQ29udGV4dCA9IGV4cG9ydHMuTm9vcENvbnRleHQgPSBleHBvcnRzLlZFcnJvciA9IHZvaWQgMDtcbi8qKlxuICogRXJyb3IgdGhyb3duIGJ5IHZhbGlkYXRpb24uIEJlc2lkZXMgYW4gaW5mb3JtYXRpdmUgbWVzc2FnZSwgaXQgaW5jbHVkZXMgdGhlIHBhdGggdG8gdGhlXG4gKiBwcm9wZXJ0eSB3aGljaCB0cmlnZ2VyZWQgdGhlIGZhaWx1cmUuXG4gKi9cbnZhciBWRXJyb3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZFcnJvciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBWRXJyb3IocGF0aCwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBtZXNzYWdlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrIGZvciBpbmZvIGFib3V0IHRoaXMgd29ya2Fyb3VuZC5cbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKF90aGlzLCBWRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICByZXR1cm4gVkVycm9yO1xufShFcnJvcikpO1xuZXhwb3J0cy5WRXJyb3IgPSBWRXJyb3I7XG4vKipcbiAqIEZhc3QgaW1wbGVtZW50YXRpb24gb2YgSUNvbnRleHQgdXNlZCBmb3IgZmlyc3QtcGFzcyB2YWxpZGF0aW9uLiBJZiB0aGF0IGZhaWxzLCB3ZSBjYW4gdmFsaWRhdGVcbiAqIHVzaW5nIERldGFpbENvbnRleHQgdG8gY29sbGVjdCBlcnJvciBtZXNzYWdlcy4gVGhhdCdzIGZhc3RlciBmb3IgdGhlIGNvbW1vbiBjYXNlIHdoZW4gbWVzc2FnZXNcbiAqIG5vcm1hbGx5IHBhc3MgdmFsaWRhdGlvbi5cbiAqL1xudmFyIE5vb3BDb250ZXh0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE5vb3BDb250ZXh0KCkge1xuICAgIH1cbiAgICBOb29wQ29udGV4dC5wcm90b3R5cGUuZmFpbCA9IGZ1bmN0aW9uIChyZWxQYXRoLCBtZXNzYWdlLCBzY29yZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBOb29wQ29udGV4dC5wcm90b3R5cGUudW5pb25SZXNvbHZlciA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG4gICAgTm9vcENvbnRleHQucHJvdG90eXBlLmNyZWF0ZUNvbnRleHQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuICAgIE5vb3BDb250ZXh0LnByb3RvdHlwZS5yZXNvbHZlVW5pb24gPSBmdW5jdGlvbiAodXIpIHsgfTtcbiAgICByZXR1cm4gTm9vcENvbnRleHQ7XG59KCkpO1xuZXhwb3J0cy5Ob29wQ29udGV4dCA9IE5vb3BDb250ZXh0O1xuLyoqXG4gKiBDb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBJQ29udGV4dCB0aGF0IGNvbGxlY3RzIG1lYW5pbmdmdWxsIGVycm9ycy5cbiAqL1xudmFyIERldGFpbENvbnRleHQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGV0YWlsQ29udGV4dCgpIHtcbiAgICAgICAgLy8gU3RhY2sgb2YgcHJvcGVydHkgbmFtZXMgYW5kIGFzc29jaWF0ZWQgbWVzc2FnZXMgZm9yIHJlcG9ydGluZyBoZWxwZnVsIGVycm9yIG1lc3NhZ2VzLlxuICAgICAgICB0aGlzLl9wcm9wTmFtZXMgPSBbXCJcIl07XG4gICAgICAgIHRoaXMuX21lc3NhZ2VzID0gW251bGxdO1xuICAgICAgICAvLyBTY29yZSBpcyB1c2VkIHRvIGNob29zZSB0aGUgYmVzdCB1bmlvbiBtZW1iZXIgd2hvc2UgRGV0YWlsQ29udGV4dCB0byB1c2UgZm9yIHJlcG9ydGluZy5cbiAgICAgICAgLy8gSGlnaGVyIHNjb3JlIG1lYW5zIGJldHRlciBtYXRjaCAob3IgcmF0aGVyIGxlc3Mgc2V2ZXJlIG1pc21hdGNoKS5cbiAgICAgICAgdGhpcy5fc2NvcmUgPSAwO1xuICAgIH1cbiAgICBEZXRhaWxDb250ZXh0LnByb3RvdHlwZS5mYWlsID0gZnVuY3Rpb24gKHJlbFBhdGgsIG1lc3NhZ2UsIHNjb3JlKSB7XG4gICAgICAgIHRoaXMuX3Byb3BOYW1lcy5wdXNoKHJlbFBhdGgpO1xuICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLl9zY29yZSArPSBzY29yZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgRGV0YWlsQ29udGV4dC5wcm90b3R5cGUudW5pb25SZXNvbHZlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEZXRhaWxVbmlvblJlc29sdmVyKCk7XG4gICAgfTtcbiAgICBEZXRhaWxDb250ZXh0LnByb3RvdHlwZS5yZXNvbHZlVW5pb24gPSBmdW5jdGlvbiAodW5pb25SZXNvbHZlcikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICB2YXIgdSA9IHVuaW9uUmVzb2x2ZXI7XG4gICAgICAgIHZhciBiZXN0ID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYyA9IHUuY29udGV4dHM7IF9pIDwgX2MubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgY3R4ID0gX2NbX2ldO1xuICAgICAgICAgICAgaWYgKCFiZXN0IHx8IGN0eC5fc2NvcmUgPj0gYmVzdC5fc2NvcmUpIHtcbiAgICAgICAgICAgICAgICBiZXN0ID0gY3R4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChiZXN0ICYmIGJlc3QuX3Njb3JlID4gMCkge1xuICAgICAgICAgICAgKF9hID0gdGhpcy5fcHJvcE5hbWVzKS5wdXNoLmFwcGx5KF9hLCBiZXN0Ll9wcm9wTmFtZXMpO1xuICAgICAgICAgICAgKF9iID0gdGhpcy5fbWVzc2FnZXMpLnB1c2guYXBwbHkoX2IsIGJlc3QuX21lc3NhZ2VzKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgRGV0YWlsQ29udGV4dC5wcm90b3R5cGUuZ2V0RXJyb3IgPSBmdW5jdGlvbiAocGF0aCkge1xuICAgICAgICB2YXIgbXNnUGFydHMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuX3Byb3BOYW1lcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgdmFyIHAgPSB0aGlzLl9wcm9wTmFtZXNbaV07XG4gICAgICAgICAgICBwYXRoICs9ICh0eXBlb2YgcCA9PT0gXCJudW1iZXJcIikgPyBcIltcIiArIHAgKyBcIl1cIiA6IChwID8gXCIuXCIgKyBwIDogXCJcIik7XG4gICAgICAgICAgICB2YXIgbSA9IHRoaXMuX21lc3NhZ2VzW2ldO1xuICAgICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgICAgICBtc2dQYXJ0cy5wdXNoKHBhdGggKyBcIiBcIiArIG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVkVycm9yKHBhdGgsIG1zZ1BhcnRzLmpvaW4oXCI7IFwiKSk7XG4gICAgfTtcbiAgICBEZXRhaWxDb250ZXh0LnByb3RvdHlwZS5nZXRFcnJvckRldGFpbCA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gICAgICAgIHZhciBkZXRhaWxzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSB0aGlzLl9wcm9wTmFtZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIHZhciBwID0gdGhpcy5fcHJvcE5hbWVzW2ldO1xuICAgICAgICAgICAgcGF0aCArPSAodHlwZW9mIHAgPT09IFwibnVtYmVyXCIpID8gXCJbXCIgKyBwICsgXCJdXCIgOiAocCA/IFwiLlwiICsgcCA6IFwiXCIpO1xuICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSB0aGlzLl9tZXNzYWdlc1tpXTtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgZGV0YWlscy5wdXNoKHsgcGF0aDogcGF0aCwgbWVzc2FnZTogbWVzc2FnZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgZGV0YWlsID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIgaSA9IGRldGFpbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChkZXRhaWwpIHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzW2ldLm5lc3RlZCA9IFtkZXRhaWxdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGV0YWlsID0gZGV0YWlsc1tpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGV0YWlsO1xuICAgIH07XG4gICAgcmV0dXJuIERldGFpbENvbnRleHQ7XG59KCkpO1xuZXhwb3J0cy5EZXRhaWxDb250ZXh0ID0gRGV0YWlsQ29udGV4dDtcbnZhciBEZXRhaWxVbmlvblJlc29sdmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIERldGFpbFVuaW9uUmVzb2x2ZXIoKSB7XG4gICAgICAgIHRoaXMuY29udGV4dHMgPSBbXTtcbiAgICB9XG4gICAgRGV0YWlsVW5pb25SZXNvbHZlci5wcm90b3R5cGUuY3JlYXRlQ29udGV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGN0eCA9IG5ldyBEZXRhaWxDb250ZXh0KCk7XG4gICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjdHgpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgIH07XG4gICAgcmV0dXJuIERldGFpbFVuaW9uUmVzb2x2ZXI7XG59KCkpO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIG5vZGVzIHVzZWQgdG8gZGVmaW5lIHR5cGVzIGFuZCB2YWxpZGF0aW9ucyBmb3Igb2JqZWN0cyBhbmQgaW50ZXJmYWNlcy5cbiAqL1xuLy8gdHNsaW50OmRpc2FibGU6bm8tc2hhZG93ZWQtdmFyaWFibGUgcHJlZmVyLWZvci1vZlxudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmJhc2ljVHlwZXMgPSBleHBvcnRzLkJhc2ljVHlwZSA9IGV4cG9ydHMuVFBhcmFtTGlzdCA9IGV4cG9ydHMuVFBhcmFtID0gZXhwb3J0cy5wYXJhbSA9IGV4cG9ydHMuVEZ1bmMgPSBleHBvcnRzLmZ1bmMgPSBleHBvcnRzLlRQcm9wID0gZXhwb3J0cy5UT3B0aW9uYWwgPSBleHBvcnRzLm9wdCA9IGV4cG9ydHMuVElmYWNlID0gZXhwb3J0cy5pZmFjZSA9IGV4cG9ydHMuVEVudW1MaXRlcmFsID0gZXhwb3J0cy5lbnVtbGl0ID0gZXhwb3J0cy5URW51bVR5cGUgPSBleHBvcnRzLmVudW10eXBlID0gZXhwb3J0cy5USW50ZXJzZWN0aW9uID0gZXhwb3J0cy5pbnRlcnNlY3Rpb24gPSBleHBvcnRzLlRVbmlvbiA9IGV4cG9ydHMudW5pb24gPSBleHBvcnRzLlRUdXBsZSA9IGV4cG9ydHMudHVwbGUgPSBleHBvcnRzLlRBcnJheSA9IGV4cG9ydHMuYXJyYXkgPSBleHBvcnRzLlRMaXRlcmFsID0gZXhwb3J0cy5saXQgPSBleHBvcnRzLlROYW1lID0gZXhwb3J0cy5uYW1lID0gZXhwb3J0cy5UVHlwZSA9IHZvaWQgMDtcbnZhciB1dGlsXzEgPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuLyoqIE5vZGUgdGhhdCByZXByZXNlbnRzIGEgdHlwZS4gKi9cbnZhciBUVHlwZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUVHlwZSgpIHtcbiAgICB9XG4gICAgcmV0dXJuIFRUeXBlO1xufSgpKTtcbmV4cG9ydHMuVFR5cGUgPSBUVHlwZTtcbi8qKiBQYXJzZXMgYSB0eXBlIHNwZWMgaW50byBhIFRUeXBlIG5vZGUuICovXG5mdW5jdGlvbiBwYXJzZVNwZWModHlwZVNwZWMpIHtcbiAgICByZXR1cm4gdHlwZW9mIHR5cGVTcGVjID09PSBcInN0cmluZ1wiID8gbmFtZSh0eXBlU3BlYykgOiB0eXBlU3BlYztcbn1cbmZ1bmN0aW9uIGdldE5hbWVkVHlwZShzdWl0ZSwgbmFtZSkge1xuICAgIHZhciB0dHlwZSA9IHN1aXRlW25hbWVdO1xuICAgIGlmICghdHR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biB0eXBlIFwiICsgbmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB0dHlwZTtcbn1cbi8qKlxuICogRGVmaW5lcyBhIHR5cGUgbmFtZSwgZWl0aGVyIGJ1aWx0LWluLCBvciBkZWZpbmVkIGluIHRoaXMgc3VpdGUuIEl0IGNhbiB0eXBpY2FsbHkgYmUgaW5jbHVkZWQgaW5cbiAqIHRoZSBzcGVjcyBhcyBqdXN0IGEgcGxhaW4gc3RyaW5nLlxuICovXG5mdW5jdGlvbiBuYW1lKHZhbHVlKSB7IHJldHVybiBuZXcgVE5hbWUodmFsdWUpOyB9XG5leHBvcnRzLm5hbWUgPSBuYW1lO1xudmFyIFROYW1lID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUTmFtZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUTmFtZShuYW1lKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICBfdGhpcy5fZmFpbE1zZyA9IFwiaXMgbm90IGEgXCIgKyBuYW1lO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFROYW1lLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QsIGFsbG93ZWRQcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgdHR5cGUgPSBnZXROYW1lZFR5cGUoc3VpdGUsIHRoaXMubmFtZSk7XG4gICAgICAgIHZhciBjaGVja2VyID0gdHR5cGUuZ2V0Q2hlY2tlcihzdWl0ZSwgc3RyaWN0LCBhbGxvd2VkUHJvcHMpO1xuICAgICAgICBpZiAodHR5cGUgaW5zdGFuY2VvZiBCYXNpY1R5cGUgfHwgdHR5cGUgaW5zdGFuY2VvZiBUTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNoZWNrZXI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9yIGNvbXBsZXggdHlwZXMsIGFkZCBhbiBhZGRpdGlvbmFsIFwiaXMgbm90IGEgPFR5cGU+XCIgbWVzc2FnZSBvbiBmYWlsdXJlLlxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHsgcmV0dXJuIGNoZWNrZXIodmFsdWUsIGN0eCkgPyB0cnVlIDogY3R4LmZhaWwobnVsbCwgX3RoaXMuX2ZhaWxNc2csIDApOyB9O1xuICAgIH07XG4gICAgcmV0dXJuIFROYW1lO1xufShUVHlwZSkpO1xuZXhwb3J0cy5UTmFtZSA9IFROYW1lO1xuLyoqXG4gKiBEZWZpbmVzIGEgbGl0ZXJhbCB2YWx1ZSwgZS5nLiBsaXQoJ2hlbGxvJykgb3IgbGl0KDEyMykuXG4gKi9cbmZ1bmN0aW9uIGxpdCh2YWx1ZSkgeyByZXR1cm4gbmV3IFRMaXRlcmFsKHZhbHVlKTsgfVxuZXhwb3J0cy5saXQgPSBsaXQ7XG52YXIgVExpdGVyYWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRMaXRlcmFsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRMaXRlcmFsKHZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIF90aGlzLm5hbWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIF90aGlzLl9mYWlsTXNnID0gXCJpcyBub3QgXCIgKyBfdGhpcy5uYW1lO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRMaXRlcmFsLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7IHJldHVybiAodmFsdWUgPT09IF90aGlzLnZhbHVlKSA/IHRydWUgOiBjdHguZmFpbChudWxsLCBfdGhpcy5fZmFpbE1zZywgLTEpOyB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRMaXRlcmFsO1xufShUVHlwZSkpO1xuZXhwb3J0cy5UTGl0ZXJhbCA9IFRMaXRlcmFsO1xuLyoqXG4gKiBEZWZpbmVzIGFuIGFycmF5IHR5cGUsIGUuZy4gYXJyYXkoJ251bWJlcicpLlxuICovXG5mdW5jdGlvbiBhcnJheSh0eXBlU3BlYykgeyByZXR1cm4gbmV3IFRBcnJheShwYXJzZVNwZWModHlwZVNwZWMpKTsgfVxuZXhwb3J0cy5hcnJheSA9IGFycmF5O1xudmFyIFRBcnJheSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVEFycmF5LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRBcnJheSh0dHlwZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy50dHlwZSA9IHR0eXBlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRBcnJheS5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpdGVtQ2hlY2tlciA9IHRoaXMudHR5cGUuZ2V0Q2hlY2tlcihzdWl0ZSwgc3RyaWN0KTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG51bGwsIFwiaXMgbm90IGFuIGFycmF5XCIsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBvayA9IGl0ZW1DaGVja2VyKHZhbHVlW2ldLCBjdHgpO1xuICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKGksIG51bGwsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRBcnJheTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVEFycmF5ID0gVEFycmF5O1xuLyoqXG4gKiBEZWZpbmVzIGEgdHVwbGUgdHlwZSwgZS5nLiB0dXBsZSgnc3RyaW5nJywgJ251bWJlcicpLlxuICovXG5mdW5jdGlvbiB0dXBsZSgpIHtcbiAgICB2YXIgdHlwZVNwZWMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICB0eXBlU3BlY1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFRUdXBsZSh0eXBlU3BlYy5tYXAoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHBhcnNlU3BlYyh0KTsgfSkpO1xufVxuZXhwb3J0cy50dXBsZSA9IHR1cGxlO1xudmFyIFRUdXBsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVFR1cGxlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRUdXBsZSh0dHlwZXMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMudHR5cGVzID0gdHR5cGVzO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRUdXBsZS5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpdGVtQ2hlY2tlcnMgPSB0aGlzLnR0eXBlcy5tYXAoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHQuZ2V0Q2hlY2tlcihzdWl0ZSwgc3RyaWN0KTsgfSk7XG4gICAgICAgIHZhciBjaGVja2VyID0gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwobnVsbCwgXCJpcyBub3QgYW4gYXJyYXlcIiwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1DaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBvayA9IGl0ZW1DaGVja2Vyc1tpXSh2YWx1ZVtpXSwgY3R4KTtcbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChpLCBudWxsLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVja2VyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgaWYgKCFjaGVja2VyKHZhbHVlLCBjdHgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8PSBpdGVtQ2hlY2tlcnMubGVuZ3RoID8gdHJ1ZSA6XG4gICAgICAgICAgICAgICAgY3R4LmZhaWwoaXRlbUNoZWNrZXJzLmxlbmd0aCwgXCJpcyBleHRyYW5lb3VzXCIsIDIpO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRUdXBsZTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVFR1cGxlID0gVFR1cGxlO1xuLyoqXG4gKiBEZWZpbmVzIGEgdW5pb24gdHlwZSwgZS5nLiB1bmlvbignbnVtYmVyJywgJ251bGwnKS5cbiAqL1xuZnVuY3Rpb24gdW5pb24oKSB7XG4gICAgdmFyIHR5cGVTcGVjID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdHlwZVNwZWNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUVW5pb24odHlwZVNwZWMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiBwYXJzZVNwZWModCk7IH0pKTtcbn1cbmV4cG9ydHMudW5pb24gPSB1bmlvbjtcbnZhciBUVW5pb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRVbmlvbiwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUVW5pb24odHR5cGVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnR0eXBlcyA9IHR0eXBlcztcbiAgICAgICAgdmFyIG5hbWVzID0gdHR5cGVzLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gdCBpbnN0YW5jZW9mIFROYW1lIHx8IHQgaW5zdGFuY2VvZiBUTGl0ZXJhbCA/IHQubmFtZSA6IG51bGw7IH0pXG4gICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9KTtcbiAgICAgICAgdmFyIG90aGVyVHlwZXMgPSB0dHlwZXMubGVuZ3RoIC0gbmFtZXMubGVuZ3RoO1xuICAgICAgICBpZiAobmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAob3RoZXJUeXBlcyA+IDApIHtcbiAgICAgICAgICAgICAgICBuYW1lcy5wdXNoKG90aGVyVHlwZXMgKyBcIiBtb3JlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXMuX2ZhaWxNc2cgPSBcImlzIG5vbmUgb2YgXCIgKyBuYW1lcy5qb2luKFwiLCBcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5fZmFpbE1zZyA9IFwiaXMgbm9uZSBvZiBcIiArIG90aGVyVHlwZXMgKyBcIiB0eXBlc1wiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVFVuaW9uLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGl0ZW1DaGVja2VycyA9IHRoaXMudHR5cGVzLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gdC5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QpOyB9KTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICB2YXIgdXIgPSBjdHgudW5pb25SZXNvbHZlcigpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtQ2hlY2tlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgb2sgPSBpdGVtQ2hlY2tlcnNbaV0odmFsdWUsIHVyLmNyZWF0ZUNvbnRleHQoKSk7XG4gICAgICAgICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN0eC5yZXNvbHZlVW5pb24odXIpO1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG51bGwsIF90aGlzLl9mYWlsTXNnLCAwKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUVW5pb247XG59KFRUeXBlKSk7XG5leHBvcnRzLlRVbmlvbiA9IFRVbmlvbjtcbi8qKlxuICogRGVmaW5lcyBhbiBpbnRlcnNlY3Rpb24gdHlwZSwgZS5nLiBpbnRlcnNlY3Rpb24oJ251bWJlcicsICdudWxsJykuXG4gKi9cbmZ1bmN0aW9uIGludGVyc2VjdGlvbigpIHtcbiAgICB2YXIgdHlwZVNwZWMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICB0eXBlU3BlY1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFRJbnRlcnNlY3Rpb24odHlwZVNwZWMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiBwYXJzZVNwZWModCk7IH0pKTtcbn1cbmV4cG9ydHMuaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9uO1xudmFyIFRJbnRlcnNlY3Rpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRJbnRlcnNlY3Rpb24sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVEludGVyc2VjdGlvbih0dHlwZXMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMudHR5cGVzID0gdHR5cGVzO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRJbnRlcnNlY3Rpb24ucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgYWxsb3dlZFByb3BzID0gbmV3IFNldCgpO1xuICAgICAgICB2YXIgaXRlbUNoZWNrZXJzID0gdGhpcy50dHlwZXMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiB0LmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCwgYWxsb3dlZFByb3BzKTsgfSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgdmFyIG9rID0gaXRlbUNoZWNrZXJzLmV2ZXJ5KGZ1bmN0aW9uIChjaGVja2VyKSB7IHJldHVybiBjaGVja2VyKHZhbHVlLCBjdHgpOyB9KTtcbiAgICAgICAgICAgIGlmIChvaykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG51bGwsIG51bGwsIDApO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRJbnRlcnNlY3Rpb247XG59KFRUeXBlKSk7XG5leHBvcnRzLlRJbnRlcnNlY3Rpb24gPSBUSW50ZXJzZWN0aW9uO1xuLyoqXG4gKiBEZWZpbmVzIGFuIGVudW0gdHlwZSwgZS5nLiBlbnVtKHsnQSc6IDEsICdCJzogMn0pLlxuICovXG5mdW5jdGlvbiBlbnVtdHlwZSh2YWx1ZXMpIHtcbiAgICByZXR1cm4gbmV3IFRFbnVtVHlwZSh2YWx1ZXMpO1xufVxuZXhwb3J0cy5lbnVtdHlwZSA9IGVudW10eXBlO1xudmFyIFRFbnVtVHlwZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVEVudW1UeXBlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRFbnVtVHlwZShtZW1iZXJzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLm1lbWJlcnMgPSBtZW1iZXJzO1xuICAgICAgICBfdGhpcy52YWxpZFZhbHVlcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgX3RoaXMuX2ZhaWxNc2cgPSBcImlzIG5vdCBhIHZhbGlkIGVudW0gdmFsdWVcIjtcbiAgICAgICAgX3RoaXMudmFsaWRWYWx1ZXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKG1lbWJlcnMpLm1hcChmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbWVtYmVyc1tuYW1lXTsgfSkpO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRFbnVtVHlwZS5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgcmV0dXJuIChfdGhpcy52YWxpZFZhbHVlcy5oYXModmFsdWUpID8gdHJ1ZSA6IGN0eC5mYWlsKG51bGwsIF90aGlzLl9mYWlsTXNnLCAwKSk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gVEVudW1UeXBlO1xufShUVHlwZSkpO1xuZXhwb3J0cy5URW51bVR5cGUgPSBURW51bVR5cGU7XG4vKipcbiAqIERlZmluZXMgYSBsaXRlcmFsIGVudW0gdmFsdWUsIHN1Y2ggYXMgRGlyZWN0aW9uLlVwLCBzcGVjaWZpZWQgYXMgZW51bWxpdChcIkRpcmVjdGlvblwiLCBcIlVwXCIpLlxuICovXG5mdW5jdGlvbiBlbnVtbGl0KG5hbWUsIHByb3ApIHtcbiAgICByZXR1cm4gbmV3IFRFbnVtTGl0ZXJhbChuYW1lLCBwcm9wKTtcbn1cbmV4cG9ydHMuZW51bWxpdCA9IGVudW1saXQ7XG52YXIgVEVudW1MaXRlcmFsID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhURW51bUxpdGVyYWwsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVEVudW1MaXRlcmFsKGVudW1OYW1lLCBwcm9wKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmVudW1OYW1lID0gZW51bU5hbWU7XG4gICAgICAgIF90aGlzLnByb3AgPSBwcm9wO1xuICAgICAgICBfdGhpcy5fZmFpbE1zZyA9IFwiaXMgbm90IFwiICsgZW51bU5hbWUgKyBcIi5cIiArIHByb3A7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVEVudW1MaXRlcmFsLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHR0eXBlID0gZ2V0TmFtZWRUeXBlKHN1aXRlLCB0aGlzLmVudW1OYW1lKTtcbiAgICAgICAgaWYgKCEodHR5cGUgaW5zdGFuY2VvZiBURW51bVR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUeXBlIFwiICsgdGhpcy5lbnVtTmFtZSArIFwiIHVzZWQgaW4gZW51bWxpdCBpcyBub3QgYW4gZW51bSB0eXBlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YWwgPSB0dHlwZS5tZW1iZXJzW3RoaXMucHJvcF07XG4gICAgICAgIGlmICghdHR5cGUubWVtYmVycy5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByb3ApKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHZhbHVlIFwiICsgdGhpcy5lbnVtTmFtZSArIFwiLlwiICsgdGhpcy5wcm9wICsgXCIgdXNlZCBpbiBlbnVtbGl0XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkgeyByZXR1cm4gKHZhbHVlID09PSB2YWwpID8gdHJ1ZSA6IGN0eC5mYWlsKG51bGwsIF90aGlzLl9mYWlsTXNnLCAtMSk7IH07XG4gICAgfTtcbiAgICByZXR1cm4gVEVudW1MaXRlcmFsO1xufShUVHlwZSkpO1xuZXhwb3J0cy5URW51bUxpdGVyYWwgPSBURW51bUxpdGVyYWw7XG5mdW5jdGlvbiBtYWtlSWZhY2VQcm9wcyhwcm9wcykge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhwcm9wcykubWFwKGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBtYWtlSWZhY2VQcm9wKG5hbWUsIHByb3BzW25hbWVdKTsgfSk7XG59XG5mdW5jdGlvbiBtYWtlSWZhY2VQcm9wKG5hbWUsIHByb3ApIHtcbiAgICByZXR1cm4gcHJvcCBpbnN0YW5jZW9mIFRPcHRpb25hbCA/XG4gICAgICAgIG5ldyBUUHJvcChuYW1lLCBwcm9wLnR0eXBlLCB0cnVlKSA6XG4gICAgICAgIG5ldyBUUHJvcChuYW1lLCBwYXJzZVNwZWMocHJvcCksIGZhbHNlKTtcbn1cbi8qKlxuICogRGVmaW5lcyBhbiBpbnRlcmZhY2UuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBhcnJheSBvZiBpbnRlcmZhY2VzIHRoYXQgaXQgZXh0ZW5kcywgYW5kIHRoZVxuICogc2Vjb25kIGlzIGFuIGFycmF5IG9mIHByb3BlcnRpZXMuXG4gKi9cbmZ1bmN0aW9uIGlmYWNlKGJhc2VzLCBwcm9wcykge1xuICAgIHJldHVybiBuZXcgVElmYWNlKGJhc2VzLCBtYWtlSWZhY2VQcm9wcyhwcm9wcykpO1xufVxuZXhwb3J0cy5pZmFjZSA9IGlmYWNlO1xudmFyIFRJZmFjZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVElmYWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRJZmFjZShiYXNlcywgcHJvcHMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYmFzZXMgPSBiYXNlcztcbiAgICAgICAgX3RoaXMucHJvcHMgPSBwcm9wcztcbiAgICAgICAgX3RoaXMucHJvcFNldCA9IG5ldyBTZXQocHJvcHMubWFwKGZ1bmN0aW9uIChwKSB7IHJldHVybiBwLm5hbWU7IH0pKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUSWZhY2UucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCwgYWxsb3dlZFByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBiYXNlQ2hlY2tlcnMgPSB0aGlzLmJhc2VzLm1hcChmdW5jdGlvbiAoYikgeyByZXR1cm4gZ2V0TmFtZWRUeXBlKHN1aXRlLCBiKS5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QpOyB9KTtcbiAgICAgICAgdmFyIHByb3BDaGVja2VycyA9IHRoaXMucHJvcHMubWFwKGZ1bmN0aW9uIChwcm9wKSB7IHJldHVybiBwcm9wLnR0eXBlLmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCk7IH0pO1xuICAgICAgICB2YXIgdGVzdEN0eCA9IG5ldyB1dGlsXzEuTm9vcENvbnRleHQoKTtcbiAgICAgICAgLy8gQ29uc2lkZXIgYSBwcm9wIHJlcXVpcmVkIGlmIGl0J3Mgbm90IG9wdGlvbmFsIEFORCBkb2VzIG5vdCBhbGxvdyBmb3IgdW5kZWZpbmVkIGFzIGEgdmFsdWUuXG4gICAgICAgIHZhciBpc1Byb3BSZXF1aXJlZCA9IHRoaXMucHJvcHMubWFwKGZ1bmN0aW9uIChwcm9wLCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gIXByb3AuaXNPcHQgJiYgIXByb3BDaGVja2Vyc1tpXSh1bmRlZmluZWQsIHRlc3RDdHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChudWxsLCBcImlzIG5vdCBhbiBvYmplY3RcIiwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJhc2VDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghYmFzZUNoZWNrZXJzW2ldKHZhbHVlLCBjdHgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBuYW1lXzEgPSBfdGhpcy5wcm9wc1tpXS5uYW1lO1xuICAgICAgICAgICAgICAgIHZhciB2ID0gdmFsdWVbbmFtZV8xXTtcbiAgICAgICAgICAgICAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb3BSZXF1aXJlZFtpXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG5hbWVfMSwgXCJpcyBtaXNzaW5nXCIsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgb2sgPSBwcm9wQ2hlY2tlcnNbaV0odiwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG5hbWVfMSwgbnVsbCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVja2VyO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcm9wU2V0ID0gdGhpcy5wcm9wU2V0O1xuICAgICAgICBpZiAoYWxsb3dlZFByb3BzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BTZXQuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkgeyByZXR1cm4gYWxsb3dlZFByb3BzLmFkZChwcm9wKTsgfSk7XG4gICAgICAgICAgICBwcm9wU2V0ID0gYWxsb3dlZFByb3BzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEluIHN0cmljdCBtb2RlLCBjaGVjayBhbHNvIGZvciB1bmtub3duIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICBpZiAoIWNoZWNrZXIodmFsdWUsIGN0eCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9wU2V0Lmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwocHJvcCwgXCJpcyBleHRyYW5lb3VzXCIsIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRJZmFjZTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVElmYWNlID0gVElmYWNlO1xuLyoqXG4gKiBEZWZpbmVzIGFuIG9wdGlvbmFsIHByb3BlcnR5IG9uIGFuIGludGVyZmFjZS5cbiAqL1xuZnVuY3Rpb24gb3B0KHR5cGVTcGVjKSB7IHJldHVybiBuZXcgVE9wdGlvbmFsKHBhcnNlU3BlYyh0eXBlU3BlYykpOyB9XG5leHBvcnRzLm9wdCA9IG9wdDtcbnZhciBUT3B0aW9uYWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRPcHRpb25hbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUT3B0aW9uYWwodHR5cGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMudHR5cGUgPSB0dHlwZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUT3B0aW9uYWwucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgaXRlbUNoZWNrZXIgPSB0aGlzLnR0eXBlLmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgaXRlbUNoZWNrZXIodmFsdWUsIGN0eCk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gVE9wdGlvbmFsO1xufShUVHlwZSkpO1xuZXhwb3J0cy5UT3B0aW9uYWwgPSBUT3B0aW9uYWw7XG4vKipcbiAqIERlZmluZXMgYSBwcm9wZXJ0eSBpbiBhbiBpbnRlcmZhY2UuXG4gKi9cbnZhciBUUHJvcCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUUHJvcChuYW1lLCB0dHlwZSwgaXNPcHQpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy50dHlwZSA9IHR0eXBlO1xuICAgICAgICB0aGlzLmlzT3B0ID0gaXNPcHQ7XG4gICAgfVxuICAgIHJldHVybiBUUHJvcDtcbn0oKSk7XG5leHBvcnRzLlRQcm9wID0gVFByb3A7XG4vKipcbiAqIERlZmluZXMgYSBmdW5jdGlvbi4gVGhlIGZpcnN0IGFyZ3VtZW50IGRlY2xhcmVzIHRoZSBmdW5jdGlvbidzIHJldHVybiB0eXBlLCB0aGUgcmVzdCBkZWNsYXJlXG4gKiBpdHMgcGFyYW1ldGVycy5cbiAqL1xuZnVuY3Rpb24gZnVuYyhyZXN1bHRTcGVjKSB7XG4gICAgdmFyIHBhcmFtcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHBhcmFtc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBURnVuYyhuZXcgVFBhcmFtTGlzdChwYXJhbXMpLCBwYXJzZVNwZWMocmVzdWx0U3BlYykpO1xufVxuZXhwb3J0cy5mdW5jID0gZnVuYztcbnZhciBURnVuYyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVEZ1bmMsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVEZ1bmMocGFyYW1MaXN0LCByZXN1bHQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMucGFyYW1MaXN0ID0gcGFyYW1MaXN0O1xuICAgICAgICBfdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVEZ1bmMucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiA/IHRydWUgOiBjdHguZmFpbChudWxsLCBcImlzIG5vdCBhIGZ1bmN0aW9uXCIsIDApO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRGdW5jO1xufShUVHlwZSkpO1xuZXhwb3J0cy5URnVuYyA9IFRGdW5jO1xuLyoqXG4gKiBEZWZpbmVzIGEgZnVuY3Rpb24gcGFyYW1ldGVyLlxuICovXG5mdW5jdGlvbiBwYXJhbShuYW1lLCB0eXBlU3BlYywgaXNPcHQpIHtcbiAgICByZXR1cm4gbmV3IFRQYXJhbShuYW1lLCBwYXJzZVNwZWModHlwZVNwZWMpLCBCb29sZWFuKGlzT3B0KSk7XG59XG5leHBvcnRzLnBhcmFtID0gcGFyYW07XG52YXIgVFBhcmFtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRQYXJhbShuYW1lLCB0dHlwZSwgaXNPcHQpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy50dHlwZSA9IHR0eXBlO1xuICAgICAgICB0aGlzLmlzT3B0ID0gaXNPcHQ7XG4gICAgfVxuICAgIHJldHVybiBUUGFyYW07XG59KCkpO1xuZXhwb3J0cy5UUGFyYW0gPSBUUGFyYW07XG4vKipcbiAqIERlZmluZXMgYSBmdW5jdGlvbiBwYXJhbWV0ZXIgbGlzdC5cbiAqL1xudmFyIFRQYXJhbUxpc3QgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRQYXJhbUxpc3QsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVFBhcmFtTGlzdChwYXJhbXMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRQYXJhbUxpc3QucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgaXRlbUNoZWNrZXJzID0gdGhpcy5wYXJhbXMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiB0LnR0eXBlLmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCk7IH0pO1xuICAgICAgICB2YXIgdGVzdEN0eCA9IG5ldyB1dGlsXzEuTm9vcENvbnRleHQoKTtcbiAgICAgICAgdmFyIGlzUGFyYW1SZXF1aXJlZCA9IHRoaXMucGFyYW1zLm1hcChmdW5jdGlvbiAocGFyYW0sIGkpIHtcbiAgICAgICAgICAgIHJldHVybiAhcGFyYW0uaXNPcHQgJiYgIWl0ZW1DaGVja2Vyc1tpXSh1bmRlZmluZWQsIHRlc3RDdHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChudWxsLCBcImlzIG5vdCBhbiBhcnJheVwiLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHAgPSBfdGhpcy5wYXJhbXNbaV07XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlW2ldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGFyYW1SZXF1aXJlZFtpXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKHAubmFtZSwgXCJpcyBtaXNzaW5nXCIsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgb2sgPSBpdGVtQ2hlY2tlcnNbaV0odmFsdWVbaV0sIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChwLm5hbWUsIG51bGwsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGlmICghc3RyaWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2hlY2tlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tlcih2YWx1ZSwgY3R4KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPD0gaXRlbUNoZWNrZXJzLmxlbmd0aCA/IHRydWUgOlxuICAgICAgICAgICAgICAgIGN0eC5mYWlsKGl0ZW1DaGVja2Vycy5sZW5ndGgsIFwiaXMgZXh0cmFuZW91c1wiLCAyKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUUGFyYW1MaXN0O1xufShUVHlwZSkpO1xuZXhwb3J0cy5UUGFyYW1MaXN0ID0gVFBhcmFtTGlzdDtcbi8qKlxuICogU2luZ2xlIFRUeXBlIGltcGxlbWVudGF0aW9uIGZvciBhbGwgYmFzaWMgYnVpbHQtaW4gdHlwZXMuXG4gKi9cbnZhciBCYXNpY1R5cGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEJhc2ljVHlwZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBCYXNpY1R5cGUodmFsaWRhdG9yLCBtZXNzYWdlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnZhbGlkYXRvciA9IHZhbGlkYXRvcjtcbiAgICAgICAgX3RoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQmFzaWNUeXBlLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7IHJldHVybiBfdGhpcy52YWxpZGF0b3IodmFsdWUpID8gdHJ1ZSA6IGN0eC5mYWlsKG51bGwsIF90aGlzLm1lc3NhZ2UsIDApOyB9O1xuICAgIH07XG4gICAgcmV0dXJuIEJhc2ljVHlwZTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuQmFzaWNUeXBlID0gQmFzaWNUeXBlO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBzdWl0ZSBvZiBiYXNpYyB0eXBlcy5cbiAqL1xuZXhwb3J0cy5iYXNpY1R5cGVzID0ge1xuICAgIGFueTogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gdHJ1ZTsgfSwgXCJpcyBpbnZhbGlkXCIpLFxuICAgIG51bWJlcjogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHR5cGVvZiB2ID09PSBcIm51bWJlclwiKTsgfSwgXCJpcyBub3QgYSBudW1iZXJcIiksXG4gICAgb2JqZWN0OiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiYgdik7IH0sIFwiaXMgbm90IGFuIG9iamVjdFwiKSxcbiAgICBib29sZWFuOiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodHlwZW9mIHYgPT09IFwiYm9vbGVhblwiKTsgfSwgXCJpcyBub3QgYSBib29sZWFuXCIpLFxuICAgIHN0cmluZzogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKTsgfSwgXCJpcyBub3QgYSBzdHJpbmdcIiksXG4gICAgc3ltYm9sOiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodHlwZW9mIHYgPT09IFwic3ltYm9sXCIpOyB9LCBcImlzIG5vdCBhIHN5bWJvbFwiKSxcbiAgICB2b2lkOiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodiA9PSBudWxsKTsgfSwgXCJpcyBub3Qgdm9pZFwiKSxcbiAgICB1bmRlZmluZWQ6IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICh2ID09PSB1bmRlZmluZWQpOyB9LCBcImlzIG5vdCB1bmRlZmluZWRcIiksXG4gICAgbnVsbDogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHYgPT09IG51bGwpOyB9LCBcImlzIG5vdCBudWxsXCIpLFxuICAgIG5ldmVyOiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiBmYWxzZTsgfSwgXCJpcyB1bmV4cGVjdGVkXCIpLFxuICAgIERhdGU6IG5ldyBCYXNpY1R5cGUoZ2V0SXNOYXRpdmVDaGVja2VyKFwiW29iamVjdCBEYXRlXVwiKSwgXCJpcyBub3QgYSBEYXRlXCIpLFxuICAgIFJlZ0V4cDogbmV3IEJhc2ljVHlwZShnZXRJc05hdGl2ZUNoZWNrZXIoXCJbb2JqZWN0IFJlZ0V4cF1cIiksIFwiaXMgbm90IGEgUmVnRXhwXCIpLFxufTtcbi8vIFRoaXMgYXBwcm9hY2ggZm9yIGNoZWNraW5nIG5hdGl2ZSBvYmplY3QgdHlwZXMgbWlycm9ycyB0aGF0IG9mIGxvZGFzaC4gSXRzIGFkdmFudGFnZSBvdmVyXG4vLyBgaXNpbnN0YW5jZWAgaXMgdGhhdCBpdCBjYW4gc3RpbGwgcmV0dXJuIHRydWUgZm9yIG5hdGl2ZSBvYmplY3RzIGNyZWF0ZWQgaW4gZGlmZmVyZW50IEpTXG4vLyBleGVjdXRpb24gZW52aXJvbm1lbnRzLlxudmFyIG5hdGl2ZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbmZ1bmN0aW9uIGdldElzTmF0aXZlQ2hlY2tlcih0YWcpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYgJiYgbmF0aXZlVG9TdHJpbmcuY2FsbCh2KSA9PT0gdGFnOyB9O1xufVxuaWYgKHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBleHBvcnRzLmJhc2ljVHlwZXMuQnVmZmVyID0gbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHYpOyB9LCBcImlzIG5vdCBhIEJ1ZmZlclwiKTtcbn1cbnZhciBfbG9vcF8xID0gZnVuY3Rpb24gKGFycmF5XzEpIHtcbiAgICBleHBvcnRzLmJhc2ljVHlwZXNbYXJyYXlfMS5uYW1lXSA9IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICh2IGluc3RhbmNlb2YgYXJyYXlfMSk7IH0sIFwiaXMgbm90IGEgXCIgKyBhcnJheV8xLm5hbWUpO1xufTtcbi8vIFN1cHBvcnQgdHlwZWQgYXJyYXlzIG9mIHZhcmlvdXMgZmxhdm9yc1xuZm9yICh2YXIgX2kgPSAwLCBfYSA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4Q2xhbXBlZEFycmF5LCBJbnQxNkFycmF5LCBVaW50MTZBcnJheSxcbiAgICBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXksIEFycmF5QnVmZmVyXTsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgYXJyYXlfMSA9IF9hW19pXTtcbiAgICBfbG9vcF8xKGFycmF5XzEpO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fc3ByZWFkQXJyYXlzID0gKHRoaXMgJiYgdGhpcy5fX3NwcmVhZEFycmF5cykgfHwgZnVuY3Rpb24gKCkge1xuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcbiAgICByZXR1cm4gcjtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNoZWNrZXIgPSBleHBvcnRzLmNyZWF0ZUNoZWNrZXJzID0gdm9pZCAwO1xudmFyIHR5cGVzXzEgPSByZXF1aXJlKFwiLi90eXBlc1wiKTtcbnZhciB1dGlsXzEgPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuLyoqXG4gKiBFeHBvcnQgZnVuY3Rpb25zIHVzZWQgdG8gZGVmaW5lIGludGVyZmFjZXMuXG4gKi9cbnZhciB0eXBlc18yID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUQXJyYXlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVEFycmF5OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVEVudW1UeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlRFbnVtVHlwZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRFbnVtTGl0ZXJhbFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5URW51bUxpdGVyYWw7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJURnVuY1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5URnVuYzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRJZmFjZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5USWZhY2U7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUTGl0ZXJhbFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UTGl0ZXJhbDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlROYW1lXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlROYW1lOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVE9wdGlvbmFsXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlRPcHRpb25hbDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRQYXJhbVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UUGFyYW07IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUUGFyYW1MaXN0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlRQYXJhbUxpc3Q7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUUHJvcFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UUHJvcDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRUdXBsZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UVHVwbGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUVHlwZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UVHlwZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRVbmlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UVW5pb247IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUSW50ZXJzZWN0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlRJbnRlcnNlY3Rpb247IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJhcnJheVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5hcnJheTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImVudW1saXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuZW51bWxpdDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImVudW10eXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLmVudW10eXBlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnVuY1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5mdW5jOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaWZhY2VcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuaWZhY2U7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJsaXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIubGl0OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibmFtZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5uYW1lOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwib3B0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLm9wdDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcmFtXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLnBhcmFtOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidHVwbGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIudHVwbGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ1bmlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi51bmlvbjsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyc2VjdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5pbnRlcnNlY3Rpb247IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXNpY1R5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuQmFzaWNUeXBlOyB9IH0pO1xudmFyIHV0aWxfMiA9IHJlcXVpcmUoXCIuL3V0aWxcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJWRXJyb3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxfMi5WRXJyb3I7IH0gfSk7XG4vKipcbiAqIFRha2VzIG9uZSBvZiBtb3JlIHR5cGUgc3VpdGVzIChlLmcuIGEgbW9kdWxlIGdlbmVyYXRlZCBieSBgdHMtaW50ZXJmYWNlLWJ1aWxkZXJgKSwgYW5kIGNvbWJpbmVzXG4gKiB0aGVtIGludG8gYSBzdWl0ZSBvZiBpbnRlcmZhY2UgY2hlY2tlcnMuIElmIGEgdHlwZSBpcyB1c2VkIGJ5IG5hbWUsIHRoYXQgbmFtZSBzaG91bGQgYmUgcHJlc2VudFxuICogYW1vbmcgdGhlIHBhc3NlZC1pbiB0eXBlIHN1aXRlcy5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgb2JqZWN0IG1hcHMgdHlwZSBuYW1lcyB0byBDaGVja2VyIG9iamVjdHMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNoZWNrZXJzKCkge1xuICAgIHZhciB0eXBlU3VpdGUgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICB0eXBlU3VpdGVbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgdmFyIGZ1bGxTdWl0ZSA9IE9iamVjdC5hc3NpZ24uYXBwbHkoT2JqZWN0LCBfX3NwcmVhZEFycmF5cyhbe30sIHR5cGVzXzEuYmFzaWNUeXBlc10sIHR5cGVTdWl0ZSkpO1xuICAgIHZhciBjaGVja2VycyA9IHt9O1xuICAgIGZvciAodmFyIF9hID0gMCwgdHlwZVN1aXRlXzEgPSB0eXBlU3VpdGU7IF9hIDwgdHlwZVN1aXRlXzEubGVuZ3RoOyBfYSsrKSB7XG4gICAgICAgIHZhciBzdWl0ZV8xID0gdHlwZVN1aXRlXzFbX2FdO1xuICAgICAgICBmb3IgKHZhciBfYiA9IDAsIF9jID0gT2JqZWN0LmtleXMoc3VpdGVfMSk7IF9iIDwgX2MubGVuZ3RoOyBfYisrKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IF9jW19iXTtcbiAgICAgICAgICAgIGNoZWNrZXJzW25hbWVdID0gbmV3IENoZWNrZXIoZnVsbFN1aXRlLCBzdWl0ZV8xW25hbWVdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hlY2tlcnM7XG59XG5leHBvcnRzLmNyZWF0ZUNoZWNrZXJzID0gY3JlYXRlQ2hlY2tlcnM7XG4vKipcbiAqIENoZWNrZXIgaW1wbGVtZW50cyB2YWxpZGF0aW9uIG9mIG9iamVjdHMsIGFuZCBhbHNvIGluY2x1ZGVzIGFjY2Vzc29ycyB0byB2YWxpZGF0ZSBtZXRob2QgY2FsbHMuXG4gKiBDaGVja2VycyBzaG91bGQgYmUgY3JlYXRlZCB1c2luZyBgY3JlYXRlQ2hlY2tlcnMoKWAuXG4gKi9cbnZhciBDaGVja2VyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIC8vIENyZWF0ZSBjaGVja2VycyBieSB1c2luZyBgY3JlYXRlQ2hlY2tlcnMoKWAgZnVuY3Rpb24uXG4gICAgZnVuY3Rpb24gQ2hlY2tlcihzdWl0ZSwgdHR5cGUsIF9wYXRoKSB7XG4gICAgICAgIGlmIChfcGF0aCA9PT0gdm9pZCAwKSB7IF9wYXRoID0gJ3ZhbHVlJzsgfVxuICAgICAgICB0aGlzLnN1aXRlID0gc3VpdGU7XG4gICAgICAgIHRoaXMudHR5cGUgPSB0dHlwZTtcbiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoO1xuICAgICAgICB0aGlzLnByb3BzID0gbmV3IE1hcCgpO1xuICAgICAgICBpZiAodHR5cGUgaW5zdGFuY2VvZiB0eXBlc18xLlRJZmFjZSkge1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHR0eXBlLnByb3BzOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBwID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuc2V0KHAubmFtZSwgcC50dHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja2VyUGxhaW4gPSB0aGlzLnR0eXBlLmdldENoZWNrZXIoc3VpdGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5jaGVja2VyU3RyaWN0ID0gdGhpcy50dHlwZS5nZXRDaGVja2VyKHN1aXRlLCB0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBwYXRoIHRvIHJlcG9ydCBpbiBlcnJvcnMsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgXCJ2YWx1ZVwiLiAoRS5nLiBpZiB0aGUgQ2hlY2tlciBpcyBmb3JcbiAgICAgKiBhIFwicGVyc29uXCIgaW50ZXJmYWNlLCBzZXQgcGF0aCB0byBcInBlcnNvblwiIHRvIHJlcG9ydCBlLmcuIFwicGVyc29uLm5hbWUgaXMgbm90IGEgc3RyaW5nXCIuKVxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLnNldFJlcG9ydGVkUGF0aCA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gICAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQ2hlY2sgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgc2F0aXNmaWVzIHRoaXMgY2hlY2tlcidzIHR5cGUsIG9yIHRocm93IEVycm9yLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLmNoZWNrID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9kb0NoZWNrKHRoaXMuY2hlY2tlclBsYWluLCB2YWx1ZSk7IH07XG4gICAgLyoqXG4gICAgICogQSBmYXN0IGNoZWNrIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdmFsdWUgc2F0aXNmaWVzIHRoaXMgQ2hlY2tlcidzIHR5cGUuIFRoaXMgcmV0dXJuc1xuICAgICAqIHRydWUgb3IgZmFsc2UsIGRvZXMgbm90IHByb2R1Y2UgYW4gZXJyb3IgbWVzc2FnZSwgYW5kIGlzIGZhc3QgYm90aCBvbiBzdWNjZXNzIGFuZCBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlclBsYWluKHZhbHVlLCBuZXcgdXRpbF8xLk5vb3BDb250ZXh0KCkpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBlcnJvciBvYmplY3QgZGVzY3JpYmluZyB0aGUgZXJyb3JzIGlmIHRoZSBnaXZlbiB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoaXNcbiAgICAgKiBDaGVja2VyJ3MgdHlwZSwgb3IgbnVsbCBpZiBpdCBkb2VzLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kb1ZhbGlkYXRlKHRoaXMuY2hlY2tlclBsYWluLCB2YWx1ZSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDaGVjayB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBzYXRpc2ZpZXMgdGhpcyBjaGVja2VyJ3MgdHlwZSBzdHJpY3RseS4gVGhpcyBjaGVja3MgdGhhdCBvYmplY3RzXG4gICAgICogYW5kIHR1cGxlcyBoYXZlIG5vIGV4dHJhIG1lbWJlcnMuIE5vdGUgdGhhdCB0aGlzIHByZXZlbnRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHNvIHVzdWFsbHlcbiAgICAgKiBhIHBsYWluIGNoZWNrKCkgaXMgbW9yZSBhcHByb3ByaWF0ZS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5zdHJpY3RDaGVjayA9IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gdGhpcy5fZG9DaGVjayh0aGlzLmNoZWNrZXJTdHJpY3QsIHZhbHVlKTsgfTtcbiAgICAvKipcbiAgICAgKiBBIGZhc3Qgc3RyaWN0IGNoZWNrIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdmFsdWUgc2F0aXNmaWVzIHRoaXMgQ2hlY2tlcidzIHR5cGUuIFJldHVybnNcbiAgICAgKiB0cnVlIG9yIGZhbHNlLCBkb2VzIG5vdCBwcm9kdWNlIGFuIGVycm9yIG1lc3NhZ2UsIGFuZCBpcyBmYXN0IGJvdGggb24gc3VjY2VzcyBhbmQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5zdHJpY3RUZXN0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZXJTdHJpY3QodmFsdWUsIG5ldyB1dGlsXzEuTm9vcENvbnRleHQoKSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGVycm9yIG9iamVjdCBkZXNjcmliaW5nIHRoZSBlcnJvcnMgaWYgdGhlIGdpdmVuIHZhbHVlIGRvZXMgbm90IHNhdGlzZnkgdGhpc1xuICAgICAqIENoZWNrZXIncyB0eXBlIHN0cmljdGx5LCBvciBudWxsIGlmIGl0IGRvZXMuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuc3RyaWN0VmFsaWRhdGUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvVmFsaWRhdGUodGhpcy5jaGVja2VyU3RyaWN0LCB2YWx1ZSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGNoZWNrZXIgaXMgZm9yIGFuIGludGVyZmFjZSwgcmV0dXJucyBhIENoZWNrZXIgZm9yIHRoZSB0eXBlIHJlcXVpcmVkIGZvciB0aGUgZ2l2ZW5cbiAgICAgKiBwcm9wZXJ0eSBvZiB0aGlzIGludGVyZmFjZS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5nZXRQcm9wID0gZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgdmFyIHR0eXBlID0gdGhpcy5wcm9wcy5nZXQocHJvcCk7XG4gICAgICAgIGlmICghdHR5cGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlR5cGUgaGFzIG5vIHByb3BlcnR5IFwiICsgcHJvcCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja2VyKHRoaXMuc3VpdGUsIHR0eXBlLCB0aGlzLl9wYXRoICsgXCIuXCIgKyBwcm9wKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIElmIHRoaXMgY2hlY2tlciBpcyBmb3IgYW4gaW50ZXJmYWNlLCByZXR1cm5zIGEgQ2hlY2tlciBmb3IgdGhlIGFyZ3VtZW50LWxpc3QgcmVxdWlyZWQgdG8gY2FsbFxuICAgICAqIHRoZSBnaXZlbiBtZXRob2Qgb2YgdGhpcyBpbnRlcmZhY2UuIEUuZy4gaWYgdGhpcyBDaGVja2VyIGlzIGZvciB0aGUgaW50ZXJmYWNlOlxuICAgICAqICAgIGludGVyZmFjZSBGb28ge1xuICAgICAqICAgICAgZmluZChzOiBzdHJpbmcsIHBvcz86IG51bWJlcik6IG51bWJlcjtcbiAgICAgKiAgICB9XG4gICAgICogVGhlbiBtZXRob2RBcmdzKFwiZmluZFwiKS5jaGVjayguLi4pIHdpbGwgc3VjY2VlZCBmb3IgW1wiZm9vXCJdIGFuZCBbXCJmb29cIiwgM10sIGJ1dCBub3QgZm9yIFsxN10uXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUubWV0aG9kQXJncyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lKSB7XG4gICAgICAgIHZhciB0ZnVuYyA9IHRoaXMuX2dldE1ldGhvZChtZXRob2ROYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja2VyKHRoaXMuc3VpdGUsIHRmdW5jLnBhcmFtTGlzdCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGNoZWNrZXIgaXMgZm9yIGFuIGludGVyZmFjZSwgcmV0dXJucyBhIENoZWNrZXIgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGdpdmVuXG4gICAgICogbWV0aG9kIG9mIHRoaXMgaW50ZXJmYWNlLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLm1ldGhvZFJlc3VsdCA9IGZ1bmN0aW9uIChtZXRob2ROYW1lKSB7XG4gICAgICAgIHZhciB0ZnVuYyA9IHRoaXMuX2dldE1ldGhvZChtZXRob2ROYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja2VyKHRoaXMuc3VpdGUsIHRmdW5jLnJlc3VsdCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGNoZWNrZXIgaXMgZm9yIGEgZnVuY3Rpb24sIHJldHVybnMgYSBDaGVja2VyIGZvciBpdHMgYXJndW1lbnQtbGlzdC5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5nZXRBcmdzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoISh0aGlzLnR0eXBlIGluc3RhbmNlb2YgdHlwZXNfMS5URnVuYykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdldEFyZ3MoKSBhcHBsaWVkIHRvIG5vbi1mdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IENoZWNrZXIodGhpcy5zdWl0ZSwgdGhpcy50dHlwZS5wYXJhbUxpc3QpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBjaGVja2VyIGlzIGZvciBhIGZ1bmN0aW9uLCByZXR1cm5zIGEgQ2hlY2tlciBmb3IgaXRzIHJlc3VsdC5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5nZXRSZXN1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghKHRoaXMudHR5cGUgaW5zdGFuY2VvZiB0eXBlc18xLlRGdW5jKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2V0UmVzdWx0KCkgYXBwbGllZCB0byBub24tZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja2VyKHRoaXMuc3VpdGUsIHRoaXMudHR5cGUucmVzdWx0KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgdHlwZSBmb3Igd2hpY2ggdGhpcyBpcyBhIGNoZWNrZXIuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuZ2V0VHlwZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHR5cGU7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBBY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgY2hlY2soKSBhbmQgc3RyaWN0Q2hlY2soKS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5fZG9DaGVjayA9IGZ1bmN0aW9uIChjaGVja2VyRnVuYywgdmFsdWUpIHtcbiAgICAgICAgdmFyIG5vb3BDdHggPSBuZXcgdXRpbF8xLk5vb3BDb250ZXh0KCk7XG4gICAgICAgIGlmICghY2hlY2tlckZ1bmModmFsdWUsIG5vb3BDdHgpKSB7XG4gICAgICAgICAgICB2YXIgZGV0YWlsQ3R4ID0gbmV3IHV0aWxfMS5EZXRhaWxDb250ZXh0KCk7XG4gICAgICAgICAgICBjaGVja2VyRnVuYyh2YWx1ZSwgZGV0YWlsQ3R4KTtcbiAgICAgICAgICAgIHRocm93IGRldGFpbEN0eC5nZXRFcnJvcih0aGlzLl9wYXRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ2hlY2tlci5wcm90b3R5cGUuX2RvVmFsaWRhdGUgPSBmdW5jdGlvbiAoY2hlY2tlckZ1bmMsIHZhbHVlKSB7XG4gICAgICAgIHZhciBub29wQ3R4ID0gbmV3IHV0aWxfMS5Ob29wQ29udGV4dCgpO1xuICAgICAgICBpZiAoY2hlY2tlckZ1bmModmFsdWUsIG5vb3BDdHgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGV0YWlsQ3R4ID0gbmV3IHV0aWxfMS5EZXRhaWxDb250ZXh0KCk7XG4gICAgICAgIGNoZWNrZXJGdW5jKHZhbHVlLCBkZXRhaWxDdHgpO1xuICAgICAgICByZXR1cm4gZGV0YWlsQ3R4LmdldEVycm9yRGV0YWlsKHRoaXMuX3BhdGgpO1xuICAgIH07XG4gICAgQ2hlY2tlci5wcm90b3R5cGUuX2dldE1ldGhvZCA9IGZ1bmN0aW9uIChtZXRob2ROYW1lKSB7XG4gICAgICAgIHZhciB0dHlwZSA9IHRoaXMucHJvcHMuZ2V0KG1ldGhvZE5hbWUpO1xuICAgICAgICBpZiAoIXR0eXBlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUeXBlIGhhcyBubyBwcm9wZXJ0eSBcIiArIG1ldGhvZE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHR0eXBlIGluc3RhbmNlb2YgdHlwZXNfMS5URnVuYykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3BlcnR5IFwiICsgbWV0aG9kTmFtZSArIFwiIGlzIG5vdCBhIG1ldGhvZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHR5cGU7XG4gICAgfTtcbiAgICByZXR1cm4gQ2hlY2tlcjtcbn0oKSk7XG5leHBvcnRzLkNoZWNrZXIgPSBDaGVja2VyO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gZWxzZSB7IHZhciBuZXdPYmogPSB7fTsgaWYgKG9iaiAhPSBudWxsKSB7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqLmRlZmF1bHQgPSBvYmo7IHJldHVybiBuZXdPYmo7IH0gfS8qKlxuICogVGhpcyBtb2R1bGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGB0cy1pbnRlcmZhY2UtYnVpbGRlcmBcbiAqL1xudmFyIF90c2ludGVyZmFjZWNoZWNrZXIgPSByZXF1aXJlKCd0cy1pbnRlcmZhY2UtY2hlY2tlcicpOyB2YXIgdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKF90c2ludGVyZmFjZWNoZWNrZXIpO1xuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG4gY29uc3QgVHJhbnNmb3JtID0gdC51bmlvbihcbiAgdC5saXQoXCJqc3hcIiksXG4gIHQubGl0KFwidHlwZXNjcmlwdFwiKSxcbiAgdC5saXQoXCJmbG93XCIpLFxuICB0LmxpdChcImltcG9ydHNcIiksXG4gIHQubGl0KFwicmVhY3QtaG90LWxvYWRlclwiKSxcbiAgdC5saXQoXCJqZXN0XCIpLFxuKTsgZXhwb3J0cy5UcmFuc2Zvcm0gPSBUcmFuc2Zvcm07XG5cbiBjb25zdCBTb3VyY2VNYXBPcHRpb25zID0gdC5pZmFjZShbXSwge1xuICBjb21waWxlZEZpbGVuYW1lOiBcInN0cmluZ1wiLFxufSk7IGV4cG9ydHMuU291cmNlTWFwT3B0aW9ucyA9IFNvdXJjZU1hcE9wdGlvbnM7XG5cbiBjb25zdCBPcHRpb25zID0gdC5pZmFjZShbXSwge1xuICB0cmFuc2Zvcm1zOiB0LmFycmF5KFwiVHJhbnNmb3JtXCIpLFxuICBkaXNhYmxlRVNUcmFuc2Zvcm1zOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGpzeFJ1bnRpbWU6IHQub3B0KHQudW5pb24odC5saXQoXCJjbGFzc2ljXCIpLCB0LmxpdChcImF1dG9tYXRpY1wiKSwgdC5saXQoXCJwcmVzZXJ2ZVwiKSkpLFxuICBwcm9kdWN0aW9uOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGpzeEltcG9ydFNvdXJjZTogdC5vcHQoXCJzdHJpbmdcIiksXG4gIGpzeFByYWdtYTogdC5vcHQoXCJzdHJpbmdcIiksXG4gIGpzeEZyYWdtZW50UHJhZ21hOiB0Lm9wdChcInN0cmluZ1wiKSxcbiAga2VlcFVudXNlZEltcG9ydHM6IHQub3B0KFwiYm9vbGVhblwiKSxcbiAgcHJlc2VydmVEeW5hbWljSW1wb3J0OiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGluamVjdENyZWF0ZVJlcXVpcmVGb3JJbXBvcnRSZXF1aXJlOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3A6IHQub3B0KFwiYm9vbGVhblwiKSxcbiAgc291cmNlTWFwT3B0aW9uczogdC5vcHQoXCJTb3VyY2VNYXBPcHRpb25zXCIpLFxuICBmaWxlUGF0aDogdC5vcHQoXCJzdHJpbmdcIiksXG59KTsgZXhwb3J0cy5PcHRpb25zID0gT3B0aW9ucztcblxuY29uc3QgZXhwb3J0ZWRUeXBlU3VpdGUgPSB7XG4gIFRyYW5zZm9ybTogZXhwb3J0cy5UcmFuc2Zvcm0sXG4gIFNvdXJjZU1hcE9wdGlvbnM6IGV4cG9ydHMuU291cmNlTWFwT3B0aW9ucyxcbiAgT3B0aW9uczogZXhwb3J0cy5PcHRpb25zLFxufTtcbmV4cG9ydHMuIGRlZmF1bHQgPSBleHBvcnRlZFR5cGVTdWl0ZTtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfXZhciBfdHNpbnRlcmZhY2VjaGVja2VyID0gcmVxdWlyZSgndHMtaW50ZXJmYWNlLWNoZWNrZXInKTtcblxudmFyIF9PcHRpb25zZ2VudHlwZXMgPSByZXF1aXJlKCcuL09wdGlvbnMtZ2VuLXR5cGVzJyk7IHZhciBfT3B0aW9uc2dlbnR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX09wdGlvbnNnZW50eXBlcyk7XG5cbmNvbnN0IHtPcHRpb25zOiBPcHRpb25zQ2hlY2tlcn0gPSBfdHNpbnRlcmZhY2VjaGVja2VyLmNyZWF0ZUNoZWNrZXJzLmNhbGwodm9pZCAwLCBfT3B0aW9uc2dlbnR5cGVzMi5kZWZhdWx0KTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiBmdW5jdGlvbiB2YWxpZGF0ZU9wdGlvbnMob3B0aW9ucykge1xuICBPcHRpb25zQ2hlY2tlci5zdHJpY3RDaGVjayhvcHRpb25zKTtcbn0gZXhwb3J0cy52YWxpZGF0ZU9wdGlvbnMgPSB2YWxpZGF0ZU9wdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX2Zsb3cgPSByZXF1aXJlKCcuLi9wbHVnaW5zL2Zsb3cnKTtcbnZhciBfdHlwZXNjcmlwdCA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvdHlwZXNjcmlwdCcpO1xuXG5cblxuXG5cblxuXG52YXIgX2luZGV4ID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL2luZGV4Jyk7XG52YXIgX2tleXdvcmRzID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL3R5cGVzJyk7XG52YXIgX2Jhc2UgPSByZXF1aXJlKCcuL2Jhc2UnKTtcbnZhciBfZXhwcmVzc2lvbiA9IHJlcXVpcmUoJy4vZXhwcmVzc2lvbicpO1xudmFyIF91dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbiBmdW5jdGlvbiBwYXJzZVNwcmVhZCgpIHtcbiAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIF9leHByZXNzaW9uLnBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIGZhbHNlKTtcbn0gZXhwb3J0cy5wYXJzZVNwcmVhZCA9IHBhcnNlU3ByZWFkO1xuXG4gZnVuY3Rpb24gcGFyc2VSZXN0KGlzQmxvY2tTY29wZSkge1xuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgcGFyc2VCaW5kaW5nQXRvbShpc0Jsb2NrU2NvcGUpO1xufSBleHBvcnRzLnBhcnNlUmVzdCA9IHBhcnNlUmVzdDtcblxuIGZ1bmN0aW9uIHBhcnNlQmluZGluZ0lkZW50aWZpZXIoaXNCbG9ja1Njb3BlKSB7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgbWFya1ByaW9yQmluZGluZ0lkZW50aWZpZXIoaXNCbG9ja1Njb3BlKTtcbn0gZXhwb3J0cy5wYXJzZUJpbmRpbmdJZGVudGlmaWVyID0gcGFyc2VCaW5kaW5nSWRlbnRpZmllcjtcblxuIGZ1bmN0aW9uIHBhcnNlSW1wb3J0ZWRJZGVudGlmaWVyKCkge1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuSW1wb3J0RGVjbGFyYXRpb247XG59IGV4cG9ydHMucGFyc2VJbXBvcnRlZElkZW50aWZpZXIgPSBwYXJzZUltcG9ydGVkSWRlbnRpZmllcjtcblxuIGZ1bmN0aW9uIG1hcmtQcmlvckJpbmRpbmdJZGVudGlmaWVyKGlzQmxvY2tTY29wZSkge1xuICBsZXQgaWRlbnRpZmllclJvbGU7XG4gIGlmIChfYmFzZS5zdGF0ZS5zY29wZURlcHRoID09PSAwKSB7XG4gICAgaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuVG9wTGV2ZWxEZWNsYXJhdGlvbjtcbiAgfSBlbHNlIGlmIChpc0Jsb2NrU2NvcGUpIHtcbiAgICBpZGVudGlmaWVyUm9sZSA9IF9pbmRleC5JZGVudGlmaWVyUm9sZS5CbG9ja1Njb3BlZERlY2xhcmF0aW9uO1xuICB9IGVsc2Uge1xuICAgIGlkZW50aWZpZXJSb2xlID0gX2luZGV4LklkZW50aWZpZXJSb2xlLkZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb247XG4gIH1cbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IGlkZW50aWZpZXJSb2xlO1xufSBleHBvcnRzLm1hcmtQcmlvckJpbmRpbmdJZGVudGlmaWVyID0gbWFya1ByaW9yQmluZGluZ0lkZW50aWZpZXI7XG5cbi8vIFBhcnNlcyBsdmFsdWUgKGFzc2lnbmFibGUpIGF0b20uXG4gZnVuY3Rpb24gcGFyc2VCaW5kaW5nQXRvbShpc0Jsb2NrU2NvcGUpIHtcbiAgc3dpdGNoIChfYmFzZS5zdGF0ZS50eXBlKSB7XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl90aGlzOiB7XG4gICAgICAvLyBJbiBUeXBlU2NyaXB0LCBcInRoaXNcIiBtYXkgYmUgdGhlIG5hbWUgb2YgYSBwYXJhbWV0ZXIsIHNvIGFsbG93IGl0LlxuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMCk7XG4gICAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3lpZWxkOlxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5uYW1lOiB7XG4gICAgICBfYmFzZS5zdGF0ZS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5uYW1lO1xuICAgICAgcGFyc2VCaW5kaW5nSWRlbnRpZmllcihpc0Jsb2NrU2NvcGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TDoge1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBwYXJzZUJpbmRpbmdMaXN0KF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldFIsIGlzQmxvY2tTY29wZSwgdHJ1ZSAvKiBhbGxvd0VtcHR5ICovKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMOlxuICAgICAgX2V4cHJlc3Npb24ucGFyc2VPYmouY2FsbCh2b2lkIDAsIHRydWUsIGlzQmxvY2tTY29wZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufSBleHBvcnRzLnBhcnNlQmluZGluZ0F0b20gPSBwYXJzZUJpbmRpbmdBdG9tO1xuXG4gZnVuY3Rpb24gcGFyc2VCaW5kaW5nTGlzdChcbiAgY2xvc2UsXG4gIGlzQmxvY2tTY29wZSxcbiAgYWxsb3dFbXB0eSA9IGZhbHNlLFxuICBhbGxvd01vZGlmaWVycyA9IGZhbHNlLFxuICBjb250ZXh0SWQgPSAwLFxuKSB7XG4gIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgbGV0IGhhc1JlbW92ZWRDb21tYSA9IGZhbHNlO1xuICBjb25zdCBmaXJzdEl0ZW1Ub2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcblxuICB3aGlsZSAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIGNsb3NlKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbiAgICAgIC8vIEFmdGVyIGEgXCJ0aGlzXCIgdHlwZSBpbiBUeXBlU2NyaXB0LCB3ZSBuZWVkIHRvIHNldCB0aGUgZm9sbG93aW5nIGNvbW1hIChpZiBhbnkpIHRvIGFsc28gYmVcbiAgICAgIC8vIGEgdHlwZSB0b2tlbiBzbyB0aGF0IGl0IHdpbGwgYmUgcmVtb3ZlZC5cbiAgICAgIGlmICghaGFzUmVtb3ZlZENvbW1hICYmIF9iYXNlLnN0YXRlLnRva2Vuc1tmaXJzdEl0ZW1Ub2tlbkluZGV4XS5pc1R5cGUpIHtcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICAgICAgICBoYXNSZW1vdmVkQ29tbWEgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxsb3dFbXB0eSAmJiBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICAvLyBFbXB0eSBpdGVtOyBub3RoaW5nIGZ1cnRoZXIgdG8gcGFyc2UgZm9yIHRoaXMgaXRlbS5cbiAgICB9IGVsc2UgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIGNsb3NlKSkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpKSB7XG4gICAgICBwYXJzZVJlc3QoaXNCbG9ja1Njb3BlKTtcbiAgICAgIHBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKTtcbiAgICAgIC8vIFN1cHBvcnQgcmVzdCBlbGVtZW50IHRyYWlsaW5nIGNvbW1hcyBhbGxvd2VkIGJ5IFR5cGVTY3JpcHQgPDIuOS5cbiAgICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBjbG9zZSk7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW0oYWxsb3dNb2RpZmllcnMsIGlzQmxvY2tTY29wZSk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMucGFyc2VCaW5kaW5nTGlzdCA9IHBhcnNlQmluZGluZ0xpc3Q7XG5cbmZ1bmN0aW9uIHBhcnNlQXNzaWduYWJsZUxpc3RJdGVtKGFsbG93TW9kaWZpZXJzLCBpc0Jsb2NrU2NvcGUpIHtcbiAgaWYgKGFsbG93TW9kaWZpZXJzKSB7XG4gICAgX3R5cGVzY3JpcHQudHNQYXJzZU1vZGlmaWVycy5jYWxsKHZvaWQgMCwgW1xuICAgICAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9wdWJsaWMsXG4gICAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3Byb3RlY3RlZCxcbiAgICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZSxcbiAgICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHksXG4gICAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX292ZXJyaWRlLFxuICAgIF0pO1xuICB9XG5cbiAgcGFyc2VNYXliZURlZmF1bHQoaXNCbG9ja1Njb3BlKTtcbiAgcGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcygpO1xuICBwYXJzZU1heWJlRGVmYXVsdChpc0Jsb2NrU2NvcGUsIHRydWUgLyogbGVmdEFscmVhZHlQYXJzZWQgKi8pO1xufVxuXG5mdW5jdGlvbiBwYXJzZUFzc2lnbmFibGVMaXN0SXRlbVR5cGVzKCkge1xuICBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIF9mbG93LmZsb3dQYXJzZUFzc2lnbmFibGVMaXN0SXRlbVR5cGVzLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuLy8gUGFyc2VzIGFzc2lnbm1lbnQgcGF0dGVybiBhcm91bmQgZ2l2ZW4gYXRvbSBpZiBwb3NzaWJsZS5cbiBmdW5jdGlvbiBwYXJzZU1heWJlRGVmYXVsdChpc0Jsb2NrU2NvcGUsIGxlZnRBbHJlYWR5UGFyc2VkID0gZmFsc2UpIHtcbiAgaWYgKCFsZWZ0QWxyZWFkeVBhcnNlZCkge1xuICAgIHBhcnNlQmluZGluZ0F0b20oaXNCbG9ja1Njb3BlKTtcbiAgfVxuICBpZiAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGVxSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMTtcbiAgX2V4cHJlc3Npb24ucGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW2VxSW5kZXhdLnJoc0VuZEluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbn0gZXhwb3J0cy5wYXJzZU1heWJlRGVmYXVsdCA9IHBhcnNlTWF5YmVEZWZhdWx0O1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7XG5cblxuXG5cblxuXG5cblxuXG5cblxudmFyIF9pbmRleCA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9pbmRleCcpO1xudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9rZXl3b3JkcycpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci90eXBlcycpO1xudmFyIF9iYXNlID0gcmVxdWlyZSgnLi4vdHJhdmVyc2VyL2Jhc2UnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfZXhwcmVzc2lvbiA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci9leHByZXNzaW9uJyk7XG52YXIgX2x2YWwgPSByZXF1aXJlKCcuLi90cmF2ZXJzZXIvbHZhbCcpO1xuXG5cblxuXG5cblxuXG5cbnZhciBfc3RhdGVtZW50ID0gcmVxdWlyZSgnLi4vdHJhdmVyc2VyL3N0YXRlbWVudCcpO1xuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfdXRpbCA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci91dGlsJyk7XG52YXIgX2pzeCA9IHJlcXVpcmUoJy4vanN4Jyk7XG5cbmZ1bmN0aW9uIHRzSXNJZGVudGlmaWVyKCkge1xuICAvLyBUT0RPOiBhY3R1YWxseSBhIGJpdCBtb3JlIGNvbXBsZXggaW4gVHlwZVNjcmlwdCwgYnV0IHNob3VsZG4ndCBtYXR0ZXIuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzE1MDA4XG4gIHJldHVybiBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSk7XG59XG5cbmZ1bmN0aW9uIGlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpIHtcbiAgcmV0dXJuIChcbiAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgfHxcbiAgICBCb29sZWFuKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMuVG9rZW5UeXBlLklTX0tFWVdPUkQpIHx8XG4gICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykgfHxcbiAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubnVtKSB8fFxuICAgIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iaWdpbnQpIHx8XG4gICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmRlY2ltYWwpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHRzTmV4dFRva2VuQ2FuRm9sbG93TW9kaWZpZXIoKSB7XG4gIC8vIE5vdGU6IFR5cGVTY3JpcHQncyBpbXBsZW1lbnRhdGlvbiBpcyBtdWNoIG1vcmUgY29tcGxpY2F0ZWQgYmVjYXVzZVxuICAvLyBtb3JlIHRoaW5ncyBhcmUgY29uc2lkZXJlZCBtb2RpZmllcnMgdGhlcmUuXG4gIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gb25seSBoYW5kbGVzIG1vZGlmaWVycyBub3QgaGFuZGxlZCBieSBiYWJ5bG9uIGl0c2VsZi4gQW5kIFwic3RhdGljXCIuXG4gIC8vIFRPRE86IFdvdWxkIGJlIG5pY2UgdG8gYXZvaWQgbG9va2FoZWFkLiBXYW50IGEgaGFzTGluZUJyZWFrVXBOZXh0KCkgbWV0aG9kLi4uXG4gIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcblxuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgY29uc3QgY2FuRm9sbG93TW9kaWZpZXIgPVxuICAgIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpIHx8XG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fFxuICAgICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpIHx8XG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpIHx8XG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuaGFzaCkgfHxcbiAgICAgIGlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpKSAmJlxuICAgICFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICk7XG5cbiAgaWYgKGNhbkZvbGxvd01vZGlmaWVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbiBmdW5jdGlvbiB0c1BhcnNlTW9kaWZpZXJzKGFsbG93ZWRNb2RpZmllcnMpIHtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBtb2RpZmllciA9IHRzUGFyc2VNb2RpZmllcihhbGxvd2VkTW9kaWZpZXJzKTtcbiAgICBpZiAobW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufSBleHBvcnRzLnRzUGFyc2VNb2RpZmllcnMgPSB0c1BhcnNlTW9kaWZpZXJzO1xuXG4vKiogUGFyc2VzIGEgbW9kaWZpZXIgbWF0Y2hpbmcgb25lIHRoZSBnaXZlbiBtb2RpZmllciBuYW1lcy4gKi9cbiBmdW5jdGlvbiB0c1BhcnNlTW9kaWZpZXIoXG4gIGFsbG93ZWRNb2RpZmllcnMsXG4pIHtcbiAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVyID0gX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQ7XG4gIGlmIChhbGxvd2VkTW9kaWZpZXJzLmluZGV4T2YobW9kaWZpZXIpICE9PSAtMSAmJiB0c05leHRUb2tlbkNhbkZvbGxvd01vZGlmaWVyKCkpIHtcbiAgICBzd2l0Y2ggKG1vZGlmaWVyKSB7XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHk6XG4gICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX3JlYWRvbmx5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdDpcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYzpcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fc3RhdGljO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9wdWJsaWM6XG4gICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX3B1YmxpYztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZTpcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fcHJpdmF0ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJvdGVjdGVkOlxuICAgICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9wcm90ZWN0ZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX292ZXJyaWRlOlxuICAgICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9vdmVycmlkZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZGVjbGFyZTpcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fZGVjbGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIG1vZGlmaWVyO1xuICB9XG4gIHJldHVybiBudWxsO1xufSBleHBvcnRzLnRzUGFyc2VNb2RpZmllciA9IHRzUGFyc2VNb2RpZmllcjtcblxuZnVuY3Rpb24gdHNQYXJzZUVudGl0eU5hbWUoKSB7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgd2hpbGUgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVJlZmVyZW5jZSgpIHtcbiAgdHNQYXJzZUVudGl0eU5hbWUoKTtcbiAgaWYgKCFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkgJiYgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIHRzUGFyc2VUeXBlQXJndW1lbnRzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZVRoaXNUeXBlUHJlZGljYXRlKCkge1xuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgdHNQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUaGlzVHlwZU5vZGUoKSB7XG4gIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVF1ZXJ5KCkge1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX3R5cGVvZik7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCkpIHtcbiAgICB0c1BhcnNlSW1wb3J0VHlwZSgpO1xuICB9IGVsc2Uge1xuICAgIHRzUGFyc2VFbnRpdHlOYW1lKCk7XG4gIH1cbiAgaWYgKCFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkgJiYgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIHRzUGFyc2VUeXBlQXJndW1lbnRzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUltcG9ydFR5cGUoKSB7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0KTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgIHRzUGFyc2VFbnRpdHlOYW1lKCk7XG4gIH1cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUeXBlUGFyYW1ldGVyKCkge1xuICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdCk7XG4gIGNvbnN0IGhhZEluID0gX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5faW4pO1xuICBjb25zdCBoYWRPdXQgPSBfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX291dCk7XG4gIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2NvbnN0KTtcbiAgaWYgKChoYWRJbiB8fCBoYWRPdXQpICYmICFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAvLyBUaGUgXCJpblwiIG9yIFwib3V0XCIga2V5d29yZCBtdXN0IGhhdmUgYWN0dWFsbHkgYmVlbiB0aGUgdHlwZSBwYXJhbWV0ZXJcbiAgICAvLyBuYW1lLCBzbyBzZXQgaXQgYXMgdGhlIG5hbWUuXG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5uYW1lO1xuICB9IGVsc2Uge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuXG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9leHRlbmRzKSkge1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gIH1cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgdHNQYXJzZVR5cGUoKTtcbiAgfVxufVxuXG4gZnVuY3Rpb24gdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIHRzUGFyc2VUeXBlUGFyYW1ldGVycygpO1xuICB9XG59IGV4cG9ydHMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzID0gdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzO1xuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVBhcmFtZXRlcnMoKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUudHlwZVBhcmFtZXRlclN0YXJ0KSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2Uge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cblxuICB3aGlsZSAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4pICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIHRzUGFyc2VUeXBlUGFyYW1ldGVyKCk7XG4gICAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gIH1cbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufVxuXG4vLyBOb3RlOiBJbiBUeXBlU2NyaXB0IGltcGxlbWVudGF0aW9uIHdlIG11c3QgcHJvdmlkZSBgeWllbGRDb250ZXh0YCBhbmQgYGF3YWl0Q29udGV4dGAsXG4vLyBidXQgaGVyZSBpdCdzIGFsd2F5cyBmYWxzZSwgYmVjYXVzZSB0aGlzIGlzIG9ubHkgdXNlZCBmb3IgdHlwZXMuXG5mdW5jdGlvbiB0c0ZpbGxTaWduYXR1cmUocmV0dXJuVG9rZW4pIHtcbiAgLy8gQXJyb3cgZm5zICptdXN0KiBoYXZlIHJldHVybiB0b2tlbiAoYD0+YCkuIE5vcm1hbCBmdW5jdGlvbnMgY2FuIG9taXQgaXQuXG4gIGNvbnN0IHJldHVyblRva2VuUmVxdWlyZWQgPSByZXR1cm5Ub2tlbiA9PT0gX3R5cGVzLlRva2VuVHlwZS5hcnJvdztcbiAgdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAvLyBDcmVhdGUgYSBzY29wZSBldmVuIHRob3VnaCB3ZSdyZSBkb2luZyB0eXBlIHBhcnNpbmcgc28gd2UgZG9uJ3QgYWNjaWRlbnRhbGx5XG4gIC8vIHRyZWF0IHBhcmFtcyBhcyB0b3AtbGV2ZWwgYmluZGluZ3MuXG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgdHNQYXJzZUJpbmRpbmdMaXN0Rm9yU2lnbmF0dXJlKGZhbHNlIC8qIGlzQmxvY2tTY29wZSAqLyk7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgtLTtcbiAgaWYgKHJldHVyblRva2VuUmVxdWlyZWQpIHtcbiAgICB0c1BhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24ocmV0dXJuVG9rZW4pO1xuICB9IGVsc2UgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgcmV0dXJuVG9rZW4pKSB7XG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKHJldHVyblRva2VuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlQmluZGluZ0xpc3RGb3JTaWduYXR1cmUoaXNCbG9ja1Njb3BlKSB7XG4gIF9sdmFsLnBhcnNlQmluZGluZ0xpc3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SLCBpc0Jsb2NrU2NvcGUpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpIHtcbiAgaWYgKCFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlU2lnbmF0dXJlTWVtYmVyKCkge1xuICB0c0ZpbGxTaWduYXR1cmUoX3R5cGVzLlRva2VuVHlwZS5jb2xvbik7XG4gIHRzUGFyc2VUeXBlTWVtYmVyU2VtaWNvbG9uKCk7XG59XG5cbmZ1bmN0aW9uIHRzSXNVbmFtYmlndW91c2x5SW5kZXhTaWduYXR1cmUoKSB7XG4gIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7IC8vIFNraXAgJ3snXG4gIGNvbnN0IGlzSW5kZXhTaWduYXR1cmUgPSBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbik7XG4gIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gaXNJbmRleFNpZ25hdHVyZTtcbn1cblxuZnVuY3Rpb24gdHNUcnlQYXJzZUluZGV4U2lnbmF0dXJlKCkge1xuICBpZiAoIShfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpICYmIHRzSXNVbmFtYmlndW91c2x5SW5kZXhTaWduYXR1cmUoKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcblxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpO1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIHRzUGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldFIpO1xuXG4gIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICB0c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpO1xuXG4gIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VQcm9wZXJ0eU9yTWV0aG9kU2lnbmF0dXJlKGlzUmVhZG9ubHkpIHtcbiAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbik7XG5cbiAgaWYgKCFpc1JlYWRvbmx5ICYmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSkge1xuICAgIHRzRmlsbFNpZ25hdHVyZShfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbiAgICB0c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpO1xuICB9IGVsc2Uge1xuICAgIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICAgIHRzUGFyc2VUeXBlTWVtYmVyU2VtaWNvbG9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZVR5cGVNZW1iZXIoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSB7XG4gICAgLy8gY2FsbCBzaWduYXR1cmVcbiAgICB0c1BhcnNlU2lnbmF0dXJlTWVtYmVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX25ldykpIHtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgICAgLy8gY29uc3RydWN0b3Igc2lnbmF0dXJlXG4gICAgICB0c1BhcnNlU2lnbmF0dXJlTWVtYmVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRzUGFyc2VQcm9wZXJ0eU9yTWV0aG9kU2lnbmF0dXJlKGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHJlYWRvbmx5ID0gISF0c1BhcnNlTW9kaWZpZXIoW19rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHldKTtcblxuICBjb25zdCBmb3VuZCA9IHRzVHJ5UGFyc2VJbmRleFNpZ25hdHVyZSgpO1xuICBpZiAoZm91bmQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKFxuICAgIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZ2V0KSB8fCBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc2V0KSkgJiZcbiAgICB0c05leHRUb2tlbkNhbkZvbGxvd01vZGlmaWVyKClcbiAgKSB7XG4gICAgLy8gVGhpcyBpcyBhIGdldHRlci9zZXR0ZXIgb24gYSB0eXBlLiBUaGUgdHNOZXh0VG9rZW5DYW5Gb2xsb3dNb2RpZmllclxuICAgIC8vIGZ1bmN0aW9uIGFscmVhZHkgY2FsbGVkIG5leHQoKSBmb3IgdXMsIHNvIGNvbnRpbnVlIHBhcnNpbmcgdGhlIG5hbWUuXG4gIH1cbiAgX2V4cHJlc3Npb24ucGFyc2VQcm9wZXJ0eU5hbWUuY2FsbCh2b2lkIDAsIC0xIC8qIFR5cGVzIGRvbid0IG5lZWQgY29udGV4dCBJRHMuICovKTtcbiAgdHNQYXJzZVByb3BlcnR5T3JNZXRob2RTaWduYXR1cmUocmVhZG9ubHkpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZUxpdGVyYWwoKSB7XG4gIHRzUGFyc2VPYmplY3RUeXBlTWVtYmVycygpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlT2JqZWN0VHlwZU1lbWJlcnMoKSB7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICB3aGlsZSAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlVHlwZU1lbWJlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzTG9va2FoZWFkSXNTdGFydE9mTWFwcGVkVHlwZSgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuICBjb25zdCBpc1N0YXJ0T2ZNYXBwZWRUeXBlID0gdHNJc1N0YXJ0T2ZNYXBwZWRUeXBlKCk7XG4gIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gaXNTdGFydE9mTWFwcGVkVHlwZTtcbn1cblxuZnVuY3Rpb24gdHNJc1N0YXJ0T2ZNYXBwZWRUeXBlKCkge1xuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGx1cykgfHwgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5taW51cykpIHtcbiAgICByZXR1cm4gX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5KTtcbiAgfVxuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5KSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9XG4gIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKCF0c0lzSWRlbnRpZmllcigpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICByZXR1cm4gX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9pbik7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNYXBwZWRUeXBlUGFyYW1ldGVyKCkge1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5faW4pO1xuICB0c1BhcnNlVHlwZSgpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlTWFwcGVkVHlwZSgpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGx1cykgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm1pbnVzKSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHkpO1xuICB9IGVsc2Uge1xuICAgIF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHkpO1xuICB9XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TCk7XG4gIHRzUGFyc2VNYXBwZWRUeXBlUGFyYW1ldGVyKCk7XG4gIGlmIChfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wbHVzKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubWludXMpKSB7XG4gICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgfVxuICB0c1RyeVBhcnNlVHlwZSgpO1xuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHVwbGVUeXBlKCkge1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpO1xuICB3aGlsZSAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldFIpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIC8vIERvIG5vdCB2YWxpZGF0ZSBwcmVzZW5jZSBvZiBlaXRoZXIgbm9uZSBvciBvbmx5IGxhYmVsZWQgZWxlbWVudHNcbiAgICB0c1BhcnNlVHVwbGVFbGVtZW50VHlwZSgpO1xuICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUdXBsZUVsZW1lbnRUeXBlKCkge1xuICAvLyBwYXJzZXMgYC4uLlRzVHlwZVtdYFxuICBpZiAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcykpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9IGVsc2Uge1xuICAgIC8vIHBhcnNlcyBgVHNUeXBlP2BcbiAgICB0c1BhcnNlVHlwZSgpO1xuICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pO1xuICB9XG5cbiAgLy8gVGhlIHR5cGUgd2UgcGFyc2VkIGFib3ZlIHdhcyBhY3R1YWxseSBhIGxhYmVsXG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSkge1xuICAgIC8vIExhYmVsZWQgdHVwbGUgdHlwZXMgbXVzdCBhZmZpeCB0aGUgbGFiZWwgd2l0aCBgLi4uYCBvciBgP2AsIHNvIG5vIG5lZWQgdG8gaGFuZGxlIHRob3NlIGhlcmVcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VQYXJlbnRoZXNpemVkVHlwZSgpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG4gIHRzUGFyc2VUeXBlKCk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVGVtcGxhdGVMaXRlcmFsVHlwZSgpIHtcbiAgLy8gRmluaXNoIGAsIHJlYWQgcXVhc2lcbiAgX2luZGV4Lm5leHRUZW1wbGF0ZVRva2VuLmNhbGwodm9pZCAwLCApO1xuICAvLyBGaW5pc2ggcXVhc2ksIHJlYWQgJHtcbiAgX2luZGV4Lm5leHRUZW1wbGF0ZVRva2VuLmNhbGwodm9pZCAwLCApO1xuICB3aGlsZSAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iYWNrUXVvdGUpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5kb2xsYXJCcmFjZUwpO1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gICAgLy8gRmluaXNoIH0sIHJlYWQgcXVhc2lcbiAgICBfaW5kZXgubmV4dFRlbXBsYXRlVG9rZW4uY2FsbCh2b2lkIDAsICk7XG4gICAgLy8gRmluaXNoIHF1YXNpLCByZWFkIGVpdGhlciAkeyBvciBgXG4gICAgX2luZGV4Lm5leHRUZW1wbGF0ZVRva2VuLmNhbGwodm9pZCAwLCApO1xuICB9XG4gIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xufVxuXG52YXIgRnVuY3Rpb25UeXBlOyAoZnVuY3Rpb24gKEZ1bmN0aW9uVHlwZSkge1xuICBjb25zdCBUU0Z1bmN0aW9uVHlwZSA9IDA7IEZ1bmN0aW9uVHlwZVtGdW5jdGlvblR5cGVbXCJUU0Z1bmN0aW9uVHlwZVwiXSA9IFRTRnVuY3Rpb25UeXBlXSA9IFwiVFNGdW5jdGlvblR5cGVcIjtcbiAgY29uc3QgVFNDb25zdHJ1Y3RvclR5cGUgPSBUU0Z1bmN0aW9uVHlwZSArIDE7IEZ1bmN0aW9uVHlwZVtGdW5jdGlvblR5cGVbXCJUU0NvbnN0cnVjdG9yVHlwZVwiXSA9IFRTQ29uc3RydWN0b3JUeXBlXSA9IFwiVFNDb25zdHJ1Y3RvclR5cGVcIjtcbiAgY29uc3QgVFNBYnN0cmFjdENvbnN0cnVjdG9yVHlwZSA9IFRTQ29uc3RydWN0b3JUeXBlICsgMTsgRnVuY3Rpb25UeXBlW0Z1bmN0aW9uVHlwZVtcIlRTQWJzdHJhY3RDb25zdHJ1Y3RvclR5cGVcIl0gPSBUU0Fic3RyYWN0Q29uc3RydWN0b3JUeXBlXSA9IFwiVFNBYnN0cmFjdENvbnN0cnVjdG9yVHlwZVwiO1xufSkoRnVuY3Rpb25UeXBlIHx8IChGdW5jdGlvblR5cGUgPSB7fSkpO1xuXG5mdW5jdGlvbiB0c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09PSBGdW5jdGlvblR5cGUuVFNBYnN0cmFjdENvbnN0cnVjdG9yVHlwZSkge1xuICAgIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYWJzdHJhY3QpO1xuICB9XG4gIGlmICh0eXBlID09PSBGdW5jdGlvblR5cGUuVFNDb25zdHJ1Y3RvclR5cGUgfHwgdHlwZSA9PT0gRnVuY3Rpb25UeXBlLlRTQWJzdHJhY3RDb25zdHJ1Y3RvclR5cGUpIHtcbiAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX25ldyk7XG4gIH1cbiAgY29uc3Qgb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gX2Jhc2Uuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICBfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBmYWxzZTtcbiAgdHNGaWxsU2lnbmF0dXJlKF90eXBlcy5Ub2tlblR5cGUuYXJyb3cpO1xuICBfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBvbGRJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VOb25BcnJheVR5cGUoKSB7XG4gIHN3aXRjaCAoX2Jhc2Uuc3RhdGUudHlwZSkge1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5uYW1lOlxuICAgICAgdHNQYXJzZVR5cGVSZWZlcmVuY2UoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3ZvaWQ6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9udWxsOlxuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZzpcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUubnVtOlxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5iaWdpbnQ6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLmRlY2ltYWw6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl90cnVlOlxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fZmFsc2U6XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZUxpdGVyYWwuY2FsbCh2b2lkIDAsICk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLm1pbnVzOlxuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZUxpdGVyYWwuY2FsbCh2b2lkIDAsICk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl90aGlzOiB7XG4gICAgICB0c1BhcnNlVGhpc1R5cGVOb2RlKCk7XG4gICAgICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2lzKSAmJiAhX3V0aWwuaGFzUHJlY2VkaW5nTGluZUJyZWFrLmNhbGwodm9pZCAwLCApKSB7XG4gICAgICAgIHRzUGFyc2VUaGlzVHlwZVByZWRpY2F0ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3R5cGVvZjpcbiAgICAgIHRzUGFyc2VUeXBlUXVlcnkoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydDpcbiAgICAgIHRzUGFyc2VJbXBvcnRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTDpcbiAgICAgIGlmICh0c0xvb2thaGVhZElzU3RhcnRPZk1hcHBlZFR5cGUoKSkge1xuICAgICAgICB0c1BhcnNlTWFwcGVkVHlwZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHNQYXJzZVR5cGVMaXRlcmFsKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMOlxuICAgICAgdHNQYXJzZVR1cGxlVHlwZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkw6XG4gICAgICB0c1BhcnNlUGFyZW50aGVzaXplZFR5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuYmFja1F1b3RlOlxuICAgICAgdHNQYXJzZVRlbXBsYXRlTGl0ZXJhbFR5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMuVG9rZW5UeXBlLklTX0tFWVdPUkQpIHtcbiAgICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUubmFtZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cblxuICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlQXJyYXlUeXBlT3JIaWdoZXIoKSB7XG4gIHRzUGFyc2VOb25BcnJheVR5cGUoKTtcbiAgd2hpbGUgKCFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkgJiYgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TCkpIHtcbiAgICBpZiAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldFIpKSB7XG4gICAgICAvLyBJZiB3ZSBoaXQgXSBpbW1lZGlhdGVseSwgdGhpcyBpcyBhbiBhcnJheSB0eXBlLCBvdGhlcndpc2UgaXQncyBhbiBpbmRleGVkIGFjY2VzcyB0eXBlLlxuICAgICAgdHNQYXJzZVR5cGUoKTtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0Uik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbmZlclR5cGUoKSB7XG4gIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW5mZXIpO1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4dGVuZHMpKSB7XG4gICAgLy8gSW5mZXIgdHlwZSBjb25zdHJhaW50cyBpbnRyb2R1Y2UgYW4gYW1iaWd1aXR5IGFib3V0IHdoZXRoZXIgdGhlIFwiZXh0ZW5kc1wiXG4gICAgLy8gaXMgYSBjb25zdHJhaW50IGZvciB0aGlzIGluZmVyIHR5cGUgb3IgaXMgYW5vdGhlciBjb25kaXRpb25hbCB0eXBlLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4dGVuZHMpO1xuICAgIGNvbnN0IG9sZEluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IF9iYXNlLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dDtcbiAgICBfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSB0cnVlO1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gICAgX2Jhc2Uuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICAgIGlmIChfYmFzZS5zdGF0ZS5lcnJvciB8fCAoIV9iYXNlLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCAmJiBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pKSkge1xuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpIHtcbiAgaWYgKFxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9rZXlvZikgfHxcbiAgICBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdW5pcXVlKSB8fFxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9yZWFkb25seSlcbiAgKSB7XG4gICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgdHNQYXJzZVR5cGVPcGVyYXRvck9ySGlnaGVyKCk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2luZmVyKSkge1xuICAgIHRzUGFyc2VJbmZlclR5cGUoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBvbGRJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7XG4gICAgX2Jhc2Uuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gZmFsc2U7XG4gICAgdHNQYXJzZUFycmF5VHlwZU9ySGlnaGVyKCk7XG4gICAgX2Jhc2Uuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbnRlcnNlY3Rpb25UeXBlT3JIaWdoZXIoKSB7XG4gIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYml0d2lzZUFORCk7XG4gIHRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VBTkQpKSB7XG4gICAgd2hpbGUgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYml0d2lzZUFORCkpIHtcbiAgICAgIHRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVW5pb25UeXBlT3JIaWdoZXIoKSB7XG4gIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYml0d2lzZU9SKTtcbiAgdHNQYXJzZUludGVyc2VjdGlvblR5cGVPckhpZ2hlcigpO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VPUikpIHtcbiAgICB3aGlsZSAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iaXR3aXNlT1IpKSB7XG4gICAgICB0c1BhcnNlSW50ZXJzZWN0aW9uVHlwZU9ySGlnaGVyKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRzSXNTdGFydE9mRnVuY3Rpb25UeXBlKCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSAmJiB0c0xvb2thaGVhZElzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGUoKTtcbn1cblxuZnVuY3Rpb24gdHNTa2lwUGFyYW1ldGVyU3RhcnQoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl90aGlzKSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmIHRoaXMgaXMgYSBwb3NzaWJsZSBhcnJheS9vYmplY3QgZGVzdHJ1Y3R1cmUsIHdhbGsgdG8gdGhlIG1hdGNoaW5nIGJyYWNrZXQvYnJhY2UuXG4gIC8vIFRoZSBuZXh0IHRva2VuIGFmdGVyIHdpbGwgdGVsbCB1cyBkZWZpbml0aXZlbHkgd2hldGhlciB0aGlzIGlzIGEgZnVuY3Rpb24gcGFyYW0uXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpKSB7XG4gICAgbGV0IGRlcHRoID0gMTtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICB3aGlsZSAoZGVwdGggPiAwICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TCkpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH0gZWxzZSBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKSkge1xuICAgICAgICBkZXB0aC0tO1xuICAgICAgfVxuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHNMb29rYWhlYWRJc1VuYW1iaWd1b3VzbHlTdGFydE9mRnVuY3Rpb25UeXBlKCkge1xuICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG4gIGNvbnN0IGlzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGUgPSB0c0lzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGUoKTtcbiAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gIHJldHVybiBpc1VuYW1iaWd1b3VzbHlTdGFydE9mRnVuY3Rpb25UeXBlO1xufVxuXG5mdW5jdGlvbiB0c0lzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGUoKSB7XG4gIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUikgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVsbGlwc2lzKSkge1xuICAgIC8vICggKVxuICAgIC8vICggLi4uXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHRzU2tpcFBhcmFtZXRlclN0YXJ0KCkpIHtcbiAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbikgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgLy8gKCB4eHggOlxuICAgICAgLy8gKCB4eHggLFxuICAgICAgLy8gKCB4eHggP1xuICAgICAgLy8gKCB4eHggPVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKSkge1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmFycm93KSkge1xuICAgICAgICAvLyAoIHh4eCApID0+XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbihyZXR1cm5Ub2tlbikge1xuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCByZXR1cm5Ub2tlbik7XG4gIGNvbnN0IGZpbmlzaGVkUmV0dXJuID0gdHNQYXJzZVR5cGVQcmVkaWNhdGVPckFzc2VydHNQcmVmaXgoKTtcbiAgaWYgKCFmaW5pc2hlZFJldHVybikge1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gIH1cbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufVxuXG5mdW5jdGlvbiB0c1RyeVBhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24oKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKF90eXBlcy5Ub2tlblR5cGUuY29sb24pO1xuICB9XG59XG5cbiBmdW5jdGlvbiB0c1RyeVBhcnNlVHlwZUFubm90YXRpb24oKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgdHNQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIH1cbn0gZXhwb3J0cy50c1RyeVBhcnNlVHlwZUFubm90YXRpb24gPSB0c1RyeVBhcnNlVHlwZUFubm90YXRpb247XG5cbmZ1bmN0aW9uIHRzVHJ5UGFyc2VUeXBlKCkge1xuICBpZiAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZWN0IGEgZmV3IHNwZWNpYWwgcmV0dXJuIHN5bnRheCBjYXNlczogYHggaXMgVGAsIGBhc3NlcnRzIHhgLCBgYXNzZXJ0cyB4IGlzIFRgLFxuICogYGFzc2VydHMgdGhpcyBpcyBUYC5cbiAqXG4gKiBSZXR1cm5zIHRydWUgaWYgd2UgcGFyc2VkIHRoZSByZXR1cm4gdHlwZSwgZmFsc2UgaWYgdGhlcmUncyBzdGlsbCBhIHR5cGUgdG8gYmUgcGFyc2VkLlxuICovXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVByZWRpY2F0ZU9yQXNzZXJ0c1ByZWZpeCgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Fzc2VydHMpKSB7XG4gICAgLy8gTm9ybWFsbHkgdGhpcyBpcyBgYXNzZXJ0cyB4IGlzIFRgLCBidXQgYXQgdGhpcyBwb2ludCwgaXQgbWlnaHQgYmUgYGFzc2VydHMgaXMgVGAgKGEgdXNlci1cbiAgICAvLyBkZWZpbmVkIHR5cGUgZ3VhcmQgb24gdGhlIGBhc3NlcnRzYCB2YXJpYWJsZSkgb3IganVzdCBhIHR5cGUgY2FsbGVkIGBhc3NlcnRzYC5cbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoX3V0aWwuZWF0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pcykpIHtcbiAgICAgIC8vIElmIHdlIHNlZSBgYXNzZXJ0cyBpc2AsIHRoZW4gdGhpcyBtdXN0IGJlIG9mIHRoZSBmb3JtIGBhc3NlcnRzIGlzIFRgLCBzaW5jZVxuICAgICAgLy8gYGFzc2VydHMgaXMgaXMgVGAgaXNuJ3QgdmFsaWQuXG4gICAgICB0c1BhcnNlVHlwZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0c0lzSWRlbnRpZmllcigpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fdGhpcykpIHtcbiAgICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgaWYgKF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faXMpKSB7XG4gICAgICAgIC8vIElmIHdlIHNlZSBgaXNgLCB0aGVuIHRoaXMgaXMgYGFzc2VydHMgeCBpcyBUYC4gT3RoZXJ3aXNlLCBpdCdzIGBhc3NlcnRzIHhgLlxuICAgICAgICB0c1BhcnNlVHlwZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlZ3VsYXIgdHlwZSwgc28gYmFpbCBvdXQgYW5kIHN0YXJ0IHR5cGUgcGFyc2luZyBmcm9tIHNjcmF0Y2guXG4gICAgICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHNJc0lkZW50aWZpZXIoKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX3RoaXMpKSB7XG4gICAgLy8gVGhpcyBpcyBhIHJlZ3VsYXIgaWRlbnRpZmllciwgd2hpY2ggbWF5IG9yIG1heSBub3QgaGF2ZSBcImlzXCIgYWZ0ZXIgaXQuXG4gICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pcykgJiYgIV91dGlsLmhhc1ByZWNlZGluZ0xpbmVCcmVhay5jYWxsKHZvaWQgMCwgKSkge1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICB0c1BhcnNlVHlwZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlZ3VsYXIgdHlwZSwgc28gYmFpbCBvdXQgYW5kIHN0YXJ0IHR5cGUgcGFyc2luZyBmcm9tIHNjcmF0Y2guXG4gICAgICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4gZnVuY3Rpb24gdHNQYXJzZVR5cGVBbm5vdGF0aW9uKCkge1xuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbiAgdHNQYXJzZVR5cGUoKTtcbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufSBleHBvcnRzLnRzUGFyc2VUeXBlQW5ub3RhdGlvbiA9IHRzUGFyc2VUeXBlQW5ub3RhdGlvbjtcblxuIGZ1bmN0aW9uIHRzUGFyc2VUeXBlKCkge1xuICB0c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlKCk7XG4gIGlmIChfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgfHwgX3V0aWwuaGFzUHJlY2VkaW5nTGluZUJyZWFrLmNhbGwodm9pZCAwLCApIHx8ICFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9leHRlbmRzKSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBleHRlbmRzIHR5cGVcbiAgY29uc3Qgb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gX2Jhc2Uuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICBfYmFzZS5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSB0cnVlO1xuICB0c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlKCk7XG4gIF9iYXNlLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IG9sZEluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dDtcblxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pO1xuICAvLyB0cnVlIHR5cGVcbiAgdHNQYXJzZVR5cGUoKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbiAgLy8gZmFsc2UgdHlwZVxuICB0c1BhcnNlVHlwZSgpO1xufSBleHBvcnRzLnRzUGFyc2VUeXBlID0gdHNQYXJzZVR5cGU7XG5cbmZ1bmN0aW9uIGlzQWJzdHJhY3RDb25zdHJ1Y3RvclNpZ25hdHVyZSgpIHtcbiAgcmV0dXJuIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCkgJiYgX2luZGV4Lmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICkgPT09IF90eXBlcy5Ub2tlblR5cGUuX25ldztcbn1cblxuIGZ1bmN0aW9uIHRzUGFyc2VOb25Db25kaXRpb25hbFR5cGUoKSB7XG4gIGlmICh0c0lzU3RhcnRPZkZ1bmN0aW9uVHlwZSgpKSB7XG4gICAgdHNQYXJzZUZ1bmN0aW9uT3JDb25zdHJ1Y3RvclR5cGUoRnVuY3Rpb25UeXBlLlRTRnVuY3Rpb25UeXBlKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fbmV3KSkge1xuICAgIC8vIEFzIGluIGBuZXcgKCkgPT4gRGF0ZWBcbiAgICB0c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZShGdW5jdGlvblR5cGUuVFNDb25zdHJ1Y3RvclR5cGUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmIChpc0Fic3RyYWN0Q29uc3RydWN0b3JTaWduYXR1cmUoKSkge1xuICAgIC8vIEFzIGluIGBhYnN0cmFjdCBuZXcgKCkgPT4gRGF0ZWBcbiAgICB0c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZShGdW5jdGlvblR5cGUuVFNBYnN0cmFjdENvbnN0cnVjdG9yVHlwZSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRzUGFyc2VVbmlvblR5cGVPckhpZ2hlcigpO1xufSBleHBvcnRzLnRzUGFyc2VOb25Db25kaXRpb25hbFR5cGUgPSB0c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlO1xuXG4gZnVuY3Rpb24gdHNQYXJzZVR5cGVBc3NlcnRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICB0c1BhcnNlVHlwZSgpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4pO1xuICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIF9leHByZXNzaW9uLnBhcnNlTWF5YmVVbmFyeS5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy50c1BhcnNlVHlwZUFzc2VydGlvbiA9IHRzUGFyc2VUeXBlQXNzZXJ0aW9uO1xuXG4gZnVuY3Rpb24gdHNUcnlQYXJzZUpTWFR5cGVBcmd1bWVudCgpIHtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuanN4VGFnU3RhcnQpKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgd2hpbGUgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4pICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgdHNQYXJzZVR5cGUoKTtcbiAgICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICAgIH1cbiAgICAvLyBQcm9jZXNzID4sIGJ1dCB0aGUgb25lIGFmdGVyIG5lZWRzIHRvIGJlIHBhcnNlZCBKU1gtc3R5bGUuXG4gICAgX2pzeC5uZXh0SlNYVGFnVG9rZW4uY2FsbCh2b2lkIDAsICk7XG4gICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICB9XG59IGV4cG9ydHMudHNUcnlQYXJzZUpTWFR5cGVBcmd1bWVudCA9IHRzVHJ5UGFyc2VKU1hUeXBlQXJndW1lbnQ7XG5cbmZ1bmN0aW9uIHRzUGFyc2VIZXJpdGFnZUNsYXVzZSgpIHtcbiAgd2hpbGUgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzKCk7XG4gICAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUV4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50cygpIHtcbiAgLy8gTm90ZTogVFMgdXNlcyBwYXJzZUxlZnRIYW5kU2lkZUV4cHJlc3Npb25PckhpZ2hlcixcbiAgLy8gdGhlbiBoYXMgZ3JhbW1hciBlcnJvcnMgbGF0ZXIgaWYgaXQncyBub3QgYW4gRW50aXR5TmFtZS5cbiAgdHNQYXJzZUVudGl0eU5hbWUoKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbnRlcmZhY2VEZWNsYXJhdGlvbigpIHtcbiAgX2x2YWwucGFyc2VCaW5kaW5nSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgZmFsc2UpO1xuICB0c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4dGVuZHMpKSB7XG4gICAgdHNQYXJzZUhlcml0YWdlQ2xhdXNlKCk7XG4gIH1cbiAgdHNQYXJzZU9iamVjdFR5cGVNZW1iZXJzKCk7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUeXBlQWxpYXNEZWNsYXJhdGlvbigpIHtcbiAgX2x2YWwucGFyc2VCaW5kaW5nSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgZmFsc2UpO1xuICB0c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVxKTtcbiAgdHNQYXJzZVR5cGUoKTtcbiAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlRW51bU1lbWJlcigpIHtcbiAgLy8gQ29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgYXJlIGdyYW1tYXIgZXJyb3JzIGluIGFuIGVudW0sIHNvIGFjY2VwdCBqdXN0IHN0cmluZyBsaXRlcmFsIG9yIGlkZW50aWZpZXIuXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlTGl0ZXJhbC5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgY29uc3QgZXFJbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxO1xuICAgIF9leHByZXNzaW9uLnBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsICk7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2VxSW5kZXhdLnJoc0VuZEluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlRW51bURlY2xhcmF0aW9uKCkge1xuICBfbHZhbC5wYXJzZUJpbmRpbmdJZGVudGlmaWVyLmNhbGwodm9pZCAwLCBmYWxzZSk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICB3aGlsZSAoIV9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlRW51bU1lbWJlcigpO1xuICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNb2R1bGVCbG9jaygpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gIF9zdGF0ZW1lbnQucGFyc2VCbG9ja0JvZHkuY2FsbCh2b2lkIDAsIC8qIGVuZCAqLyBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUik7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNb2R1bGVPck5hbWVzcGFjZURlY2xhcmF0aW9uKCkge1xuICBfbHZhbC5wYXJzZUJpbmRpbmdJZGVudGlmaWVyLmNhbGwodm9pZCAwLCBmYWxzZSk7XG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICB0c1BhcnNlTW9kdWxlT3JOYW1lc3BhY2VEZWNsYXJhdGlvbigpO1xuICB9IGVsc2Uge1xuICAgIHRzUGFyc2VNb2R1bGVCbG9jaygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VBbWJpZW50RXh0ZXJuYWxNb2R1bGVEZWNsYXJhdGlvbigpIHtcbiAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2UgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByQXRvbS5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICB9XG5cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgdHNQYXJzZU1vZHVsZUJsb2NrKCk7XG4gIH0gZWxzZSB7XG4gICAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbiBmdW5jdGlvbiB0c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24oKSB7XG4gIF9sdmFsLnBhcnNlSW1wb3J0ZWRJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpO1xuICB0c1BhcnNlTW9kdWxlUmVmZXJlbmNlKCk7XG4gIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy50c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24gPSB0c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb247XG5cbmZ1bmN0aW9uIHRzSXNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpIHtcbiAgcmV0dXJuIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9yZXF1aXJlKSAmJiBfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKSA9PT0gX3R5cGVzLlRva2VuVHlwZS5wYXJlbkw7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNb2R1bGVSZWZlcmVuY2UoKSB7XG4gIGlmICh0c0lzRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2UoKSkge1xuICAgIHRzUGFyc2VFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpO1xuICB9IGVsc2Uge1xuICAgIHRzUGFyc2VFbnRpdHlOYW1lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUV4dGVybmFsTW9kdWxlUmVmZXJlbmNlKCkge1xuICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3JlcXVpcmUpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKTtcbiAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgX2V4cHJlc3Npb24ucGFyc2VMaXRlcmFsLmNhbGwodm9pZCAwLCApO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbn1cblxuLy8gVXRpbGl0aWVzXG5cbi8vIFJldHVybnMgdHJ1ZSBpZiBhIHN0YXRlbWVudCBtYXRjaGVkLlxuZnVuY3Rpb24gdHNUcnlQYXJzZURlY2xhcmUoKSB7XG4gIGlmIChfdXRpbC5pc0xpbmVUZXJtaW5hdG9yLmNhbGwodm9pZCAwLCApKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAoX2Jhc2Uuc3RhdGUudHlwZSkge1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb246IHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHByZWNpc2VseSBnZXQgdGhlIGZ1bmN0aW9uIHN0YXJ0IGhlcmUsIHNpbmNlIGl0J3Mgb25seSB1c2VkIHRvIG1hcmtcbiAgICAgIC8vIHRoZSBmdW5jdGlvbiBhcyBhIHR5cGUgaWYgaXQncyBib2RpbGVzcywgYW5kIGl0J3MgYWxyZWFkeSBhIHR5cGUgaGVyZS5cbiAgICAgIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBfYmFzZS5zdGF0ZS5zdGFydDtcbiAgICAgIF9zdGF0ZW1lbnQucGFyc2VGdW5jdGlvbi5jYWxsKHZvaWQgMCwgZnVuY3Rpb25TdGFydCwgLyogaXNTdGF0ZW1lbnQgKi8gdHJ1ZSk7XG4gICAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzczoge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgICBfc3RhdGVtZW50LnBhcnNlQ2xhc3MuY2FsbCh2b2lkIDAsIC8qIGlzU3RhdGVtZW50ICovIHRydWUsIC8qIG9wdGlvbmFsSWQgKi8gZmFsc2UpO1xuICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fY29uc3Q6IHtcbiAgICAgIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2NvbnN0KSAmJiBfdXRpbC5pc0xvb2thaGVhZENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bSkpIHtcbiAgICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgICAgIC8vIGBjb25zdCBlbnVtID0gMDtgIG5vdCBhbGxvd2VkIGJlY2F1c2UgXCJlbnVtXCIgaXMgYSBzdHJpY3QgbW9kZSByZXNlcnZlZCB3b3JkLlxuICAgICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2NvbnN0KTtcbiAgICAgICAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9lbnVtKTtcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fZW51bTtcbiAgICAgICAgdHNQYXJzZUVudW1EZWNsYXJhdGlvbigpO1xuICAgICAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl92YXI6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9sZXQ6IHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICAgICAgX3N0YXRlbWVudC5wYXJzZVZhclN0YXRlbWVudC5jYWxsKHZvaWQgMCwgX2Jhc2Uuc3RhdGUudHlwZSAhPT0gX3R5cGVzLlRva2VuVHlwZS5fdmFyKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUubmFtZToge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgICBjb25zdCBjb250ZXh0dWFsS2V5d29yZCA9IF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkO1xuICAgICAgbGV0IG1hdGNoZWQgPSBmYWxzZTtcbiAgICAgIGlmIChjb250ZXh0dWFsS2V5d29yZCA9PT0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwpIHtcbiAgICAgICAgdHNQYXJzZUFtYmllbnRFeHRlcm5hbE1vZHVsZURlY2xhcmF0aW9uKCk7XG4gICAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWF0Y2hlZCA9IHRzUGFyc2VEZWNsYXJhdGlvbihjb250ZXh0dWFsS2V5d29yZCwgLyogaXNCZWZvcmVUb2tlbiAqLyB0cnVlKTtcbiAgICAgIH1cbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIE5vdGU6IHRoaXMgd29uJ3QgYmUgY2FsbGVkIHVubGVzcyB0aGUga2V5d29yZCBpcyBhbGxvd2VkIGluIGBzaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uYC5cbi8vIFJldHVybnMgdHJ1ZSBpZiBpdCBtYXRjaGVkIGEgZGVjbGFyYXRpb24uXG5mdW5jdGlvbiB0c1RyeVBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSB7XG4gIHJldHVybiB0c1BhcnNlRGVjbGFyYXRpb24oX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQsIC8qIGlzQmVmb3JlVG9rZW4gKi8gdHJ1ZSk7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiBpdCBtYXRjaGVkIGEgc3RhdGVtZW50LlxuZnVuY3Rpb24gdHNQYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgc3dpdGNoIChjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlOiB7XG4gICAgICBjb25zdCBkZWNsYXJlVG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxO1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IHRzVHJ5UGFyc2VEZWNsYXJlKCk7XG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbZGVjbGFyZVRva2VuSW5kZXhdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9kZWNsYXJlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZ2xvYmFsOlxuICAgICAgLy8gYGdsb2JhbCB7IH1gICh3aXRoIG5vIGBkZWNsYXJlYCkgbWF5IGFwcGVhciBpbnNpZGUgYW4gYW1iaWVudCBtb2R1bGUgZGVjbGFyYXRpb24uXG4gICAgICAvLyBXb3VsZCBsaWtlIHRvIHVzZSB0c1BhcnNlQW1iaWVudEV4dGVybmFsTW9kdWxlRGVjbGFyYXRpb24gaGVyZSwgYnV0IGFscmVhZHkgcmFuIHBhc3QgXCJnbG9iYWxcIi5cbiAgICAgIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgICB0c1BhcnNlTW9kdWxlQmxvY2soKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdHNQYXJzZURlY2xhcmF0aW9uKGNvbnRleHR1YWxLZXl3b3JkLCAvKiBpc0JlZm9yZVRva2VuICovIGZhbHNlKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ29tbW9uIGNvZGUgZm9yIHBhcnNpbmcgYSBkZWNsYXJhdGlvbi5cbiAqXG4gKiBpc0JlZm9yZVRva2VuIGluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IHBhcnNlciBzdGF0ZSBpcyBhdCB0aGUgY29udGV4dHVhbFxuICoga2V5d29yZCAoYW5kIHRoYXQgaXQgaXMgbm90IHlldCBlbWl0dGVkKSByYXRoZXIgdGhhbiByZWFkaW5nIHRoZSB0b2tlbiBhZnRlclxuICogaXQuIFdoZW4gaXNCZWZvcmVUb2tlbiBpcyB0cnVlLCB3ZSBtYXkgYmUgcHJlY2VkZWQgYnkgYW4gYGV4cG9ydGAgdG9rZW4gYW5kXG4gKiBzaG91bGQgaW5jbHVkZSB0aGF0IHRva2VuIGluIGEgdHlwZSBjb250ZXh0IHdlIGNyZWF0ZSwgZS5nLiB0byBoYW5kbGVcbiAqIGBleHBvcnQgaW50ZXJmYWNlYCBvciBgZXhwb3J0IHR5cGVgLiAoVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgYW5kIHNob3VsZCBiZVxuICogY2xlYW5lZCB1cCBhdCBzb21lIHBvaW50LilcbiAqXG4gKiBSZXR1cm5zIHRydWUgaWYgaXQgbWF0Y2hlZCBhIGRlY2xhcmF0aW9uLlxuICovXG5mdW5jdGlvbiB0c1BhcnNlRGVjbGFyYXRpb24oY29udGV4dHVhbEtleXdvcmQsIGlzQmVmb3JlVG9rZW4pIHtcbiAgc3dpdGNoIChjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdDpcbiAgICAgIGlmICh0c0NoZWNrTGluZVRlcm1pbmF0b3IoaXNCZWZvcmVUb2tlbikgJiYgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcykpIHtcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3Q7XG4gICAgICAgIF9zdGF0ZW1lbnQucGFyc2VDbGFzcy5jYWxsKHZvaWQgMCwgLyogaXNTdGF0ZW1lbnQgKi8gdHJ1ZSwgLyogb3B0aW9uYWxJZCAqLyBmYWxzZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bTpcbiAgICAgIGlmICh0c0NoZWNrTGluZVRlcm1pbmF0b3IoaXNCZWZvcmVUb2tlbikgJiYgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX2VudW07XG4gICAgICAgIHRzUGFyc2VFbnVtRGVjbGFyYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2U6XG4gICAgICBpZiAodHNDaGVja0xpbmVUZXJtaW5hdG9yKGlzQmVmb3JlVG9rZW4pICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgICAgICAvLyBgbmV4dGAgaXMgdHJ1ZSBpbiBcImV4cG9ydFwiIGFuZCBcImRlY2xhcmVcIiBjb250ZXh0cywgc28gd2Ugd2FudCB0byByZW1vdmUgdGhhdCB0b2tlblxuICAgICAgICAvLyBhcyB3ZWxsLlxuICAgICAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBpc0JlZm9yZVRva2VuID8gMiA6IDEpO1xuICAgICAgICB0c1BhcnNlSW50ZXJmYWNlRGVjbGFyYXRpb24oKTtcbiAgICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX21vZHVsZTpcbiAgICAgIGlmICh0c0NoZWNrTGluZVRlcm1pbmF0b3IoaXNCZWZvcmVUb2tlbikpIHtcbiAgICAgICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpKSB7XG4gICAgICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgaXNCZWZvcmVUb2tlbiA/IDIgOiAxKTtcbiAgICAgICAgICB0c1BhcnNlQW1iaWVudEV4dGVybmFsTW9kdWxlRGVjbGFyYXRpb24oKTtcbiAgICAgICAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgaXNCZWZvcmVUb2tlbiA/IDIgOiAxKTtcbiAgICAgICAgICB0c1BhcnNlTW9kdWxlT3JOYW1lc3BhY2VEZWNsYXJhdGlvbigpO1xuICAgICAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fbmFtZXNwYWNlOlxuICAgICAgaWYgKHRzQ2hlY2tMaW5lVGVybWluYXRvcihpc0JlZm9yZVRva2VuKSAmJiBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgaXNCZWZvcmVUb2tlbiA/IDIgOiAxKTtcbiAgICAgICAgdHNQYXJzZU1vZHVsZU9yTmFtZXNwYWNlRGVjbGFyYXRpb24oKTtcbiAgICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGU6XG4gICAgICBpZiAodHNDaGVja0xpbmVUZXJtaW5hdG9yKGlzQmVmb3JlVG9rZW4pICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgICAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBpc0JlZm9yZVRva2VuID8gMiA6IDEpO1xuICAgICAgICB0c1BhcnNlVHlwZUFsaWFzRGVjbGFyYXRpb24oKTtcbiAgICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHNDaGVja0xpbmVUZXJtaW5hdG9yKGlzQmVmb3JlVG9rZW4pIHtcbiAgaWYgKGlzQmVmb3JlVG9rZW4pIHtcbiAgICAvLyBCYWJlbCBjaGVja3MgaGFzRm9sbG93aW5nTGluZUJyZWFrIGhlcmUgYW5kIHJldHVybnMgZmFsc2UsIGJ1dCB0aGlzXG4gICAgLy8gZG9lc24ndCBhY3R1YWxseSBjb21lIHVwLCBlLmcuIGBleHBvcnQgaW50ZXJmYWNlYCBjYW4gbmV2ZXIgYmUgb24gaXRzIG93blxuICAgIC8vIGxpbmUgaW4gdmFsaWQgY29kZS5cbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gIV91dGlsLmlzTGluZVRlcm1pbmF0b3IuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIHdhcyBhIGdlbmVyaWMgYXN5bmMgYXJyb3cgZnVuY3Rpb24uXG5mdW5jdGlvbiB0c1RyeVBhcnNlR2VuZXJpY0FzeW5jQXJyb3dGdW5jdGlvbigpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuXG4gIHRzUGFyc2VUeXBlUGFyYW1ldGVycygpO1xuICBfc3RhdGVtZW50LnBhcnNlRnVuY3Rpb25QYXJhbXMuY2FsbCh2b2lkIDAsICk7XG4gIHRzVHJ5UGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbigpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYXJyb3cpO1xuXG4gIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIF9leHByZXNzaW9uLnBhcnNlRnVuY3Rpb25Cb2R5LmNhbGwodm9pZCAwLCB0cnVlKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogSWYgbmVjZXNzYXJ5LCBoYWNrIHRoZSB0b2tlbml6ZXIgc3RhdGUgc28gdGhhdCB0aGlzIGJpdHNoaWZ0IHdhcyBhY3R1YWxseSBhXG4gKiBsZXNzLXRoYW4gdG9rZW4sIHRoZW4ga2VlcCBwYXJzaW5nLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gc2l0dWF0aW9uc1xuICogd2hlcmUgd2UgcmVzdG9yZSBmcm9tIHNuYXBzaG90IG9uIGVycm9yICh3aGljaCByZXZlcnRzIHRoaXMgY2hhbmdlKSBvclxuICogd2hlcmUgYml0c2hpZnQgd291bGQgYmUgaWxsZWdhbCBhbnl3YXkgKGUuZy4gaW4gYSBjbGFzcyBcImV4dGVuZHNcIiBjbGF1c2UpLlxuICpcbiAqIFRoaXMgaGFjayBpcyB1c2VmdWwgdG8gaGFuZGxlIHNpdHVhdGlvbnMgbGlrZSBmb288PFQ+KCkgPT4gdm9pZD4oKSB3aGVyZVxuICogdGhlcmUgY2FuIGxlZ2l0aW1hdGVseSBiZSB0d28gb3Blbi1hbmdsZS1icmFja2V0cyBpbiBhIHJvdyBpbiBUUy5cbiAqL1xuZnVuY3Rpb24gdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpIHtcbiAgaWYgKF9iYXNlLnN0YXRlLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuYml0U2hpZnRMKSB7XG4gICAgX2Jhc2Uuc3RhdGUucG9zIC09IDE7XG4gICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKTtcbiAgfVxuICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZUFyZ3VtZW50cygpIHtcbiAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMCk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbik7XG4gIHdoaWxlICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICB9XG4gIGlmICghb2xkSXNUeXBlKSB7XG4gICAgLy8gSWYgdGhlIHR5cGUgYXJndW1lbnRzIGFyZSBwcmVzZW50IGluIGFuIGV4cHJlc3Npb24gY29udGV4dCwgZS5nLlxuICAgIC8vIGY8bnVtYmVyPigpLCB0aGVuIHRoZSA+IHNpZ24gc2hvdWxkIGJlIHRva2VuaXplZCBhcyBhIG5vbi10eXBlIHRva2VuLlxuICAgIC8vIEluIHBhcnRpY3VsYXIsIGYoYSA8IGIsIGMgPj0gZCkgc2hvdWxkIHBhcnNlIHRoZSA+PSBhcyBhIHNpbmdsZSB0b2tlbixcbiAgICAvLyByZXN1bHRpbmcgaW4gYSBzeW50YXggZXJyb3IgYW5kIGZhbGxiYWNrIHRvIHRoZSBub24tdHlwZS1hcmdzXG4gICAgLy8gaW50ZXJwcmV0YXRpb24uIEluIHRoZSBzdWNjZXNzIGNhc2UsIGV2ZW4gdGhvdWdoIHRoZSA+IGlzIHRva2VuaXplZCBhcyBhXG4gICAgLy8gbm9uLXR5cGUgdG9rZW4sIGl0IHN0aWxsIG11c3QgYmUgbWFya2VkIGFzIGEgdHlwZSB0b2tlbiBzbyB0aGF0IGl0IGlzXG4gICAgLy8gZXJhc2VkLlxuICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICBfaW5kZXgucmVzY2FuX2d0LmNhbGwodm9pZCAwLCApO1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5ncmVhdGVyVGhhbik7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5ncmVhdGVyVGhhbik7XG4gICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICB9XG59XG5cbiBmdW5jdGlvbiB0c0lzRGVjbGFyYXRpb25TdGFydCgpIHtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgIHN3aXRjaCAoX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQpIHtcbiAgICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdDpcbiAgICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlOlxuICAgICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2VudW06XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlOlxuICAgICAgY2FzZSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX21vZHVsZTpcbiAgICAgIGNhc2UgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9uYW1lc3BhY2U6XG4gICAgICBjYXNlIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZTpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59IGV4cG9ydHMudHNJc0RlY2xhcmF0aW9uU3RhcnQgPSB0c0lzRGVjbGFyYXRpb25TdGFydDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPVkVSUklERVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gZnVuY3Rpb24gdHNQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jdGlvblN0YXJ0LCBmdW5jQ29udGV4dElkKSB7XG4gIC8vIEZvciBhcnJvdyBmdW5jdGlvbnMsIGBwYXJzZUFycm93YCBoYW5kbGVzIHRoZSByZXR1cm4gdHlwZSBpdHNlbGYuXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKF90eXBlcy5Ub2tlblR5cGUuY29sb24pO1xuICB9XG5cbiAgLy8gVGhlIG9yaWdpbmFsIGNvZGUgY2hlY2tlZCB0aGUgbm9kZSB0eXBlIHRvIG1ha2Ugc3VyZSB0aGlzIGZ1bmN0aW9uIHR5cGUgYWxsb3dzIGEgbWlzc2luZ1xuICAvLyBib2R5LCBidXQgd2Ugc2tpcCB0aGF0IHRvIGF2b2lkIHNlbmRpbmcgYXJvdW5kIHRoZSBub2RlIHR5cGUuIFdlIGluc3RlYWQganVzdCB1c2UgdGhlXG4gIC8vIGFsbG93RXhwcmVzc2lvbkJvZHkgYm9vbGVhbiB0byBtYWtlIHN1cmUgaXQncyBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkgJiYgX3V0aWwuaXNMaW5lVGVybWluYXRvci5jYWxsKHZvaWQgMCwgKSkge1xuICAgIC8vIFJldHJvYWN0aXZlbHkgbWFyayB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gYXMgYSB0eXBlLlxuICAgIGxldCBpID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKFxuICAgICAgaSA+PSAwICYmXG4gICAgICAoX2Jhc2Uuc3RhdGUudG9rZW5zW2ldLnN0YXJ0ID49IGZ1bmN0aW9uU3RhcnQgfHxcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2ldLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQgfHxcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2ldLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydClcbiAgICApIHtcbiAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tpXS5pc1R5cGUgPSB0cnVlO1xuICAgICAgaS0tO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBfZXhwcmVzc2lvbi5wYXJzZUZ1bmN0aW9uQm9keS5jYWxsKHZvaWQgMCwgZmFsc2UsIGZ1bmNDb250ZXh0SWQpO1xufSBleHBvcnRzLnRzUGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2ggPSB0c1BhcnNlRnVuY3Rpb25Cb2R5QW5kRmluaXNoO1xuXG4gZnVuY3Rpb24gdHNQYXJzZVN1YnNjcmlwdChcbiAgc3RhcnRUb2tlbkluZGV4LFxuICBub0NhbGxzLFxuICBzdG9wU3RhdGUsXG4pIHtcbiAgaWYgKCFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkgJiYgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iYW5nKSkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUubm9uTnVsbEFzc2VydGlvbjtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYml0U2hpZnRMKSkge1xuICAgIC8vIFRoZXJlIGFyZSBudW1iZXIgb2YgdGhpbmdzIHdlIGFyZSBnb2luZyB0byBcIm1heWJlXCIgcGFyc2UsIGxpa2UgdHlwZSBhcmd1bWVudHMgb25cbiAgICAvLyB0YWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbnMuIElmIGFueSBvZiB0aGVtIGZhaWwsIHdhbGsgaXQgYmFjayBhbmQgY29udGludWUuXG4gICAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuXG4gICAgaWYgKCFub0NhbGxzICYmIF9leHByZXNzaW9uLmF0UG9zc2libGVBc3luYy5jYWxsKHZvaWQgMCwgKSkge1xuICAgICAgLy8gQWxtb3N0IGNlcnRhaW5seSB0aGlzIGlzIGEgZ2VuZXJpYyBhc3luYyBmdW5jdGlvbiBgYXN5bmMgPFQ+KCkgPT4gLi4uXG4gICAgICAvLyBCdXQgaXQgbWlnaHQgYmUgYSBjYWxsIHdpdGggYSB0eXBlIGFyZ3VtZW50IGBhc3luYzxUPigpO2BcbiAgICAgIGNvbnN0IGFzeW5jQXJyb3dGbiA9IHRzVHJ5UGFyc2VHZW5lcmljQXN5bmNBcnJvd0Z1bmN0aW9uKCk7XG4gICAgICBpZiAoYXN5bmNBcnJvd0ZuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpO1xuICAgIGlmICghbm9DYWxscyAmJiBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgIC8vIFdpdGggZjxUPigpLCB0aGUgc3Vic2NyaXB0U3RhcnRJbmRleCBtYXJrZXIgaXMgb24gdGhlICggdG9rZW4uXG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnN1YnNjcmlwdFN0YXJ0SW5kZXggPSBzdGFydFRva2VuSW5kZXg7XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzLmNhbGwodm9pZCAwLCApO1xuICAgIH0gZWxzZSBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJhY2tRdW90ZSkpIHtcbiAgICAgIC8vIFRhZ2dlZCB0ZW1wbGF0ZSB3aXRoIGEgdHlwZSBhcmd1bWVudC5cbiAgICAgIF9leHByZXNzaW9uLnBhcnNlVGVtcGxhdGUuY2FsbCh2b2lkIDAsICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIC8vIFRoZSByZW1haW5pbmcgcG9zc2libGUgY2FzZSBpcyBhbiBpbnN0YW50aWF0aW9uIGV4cHJlc3Npb24sIGUuZy5cbiAgICAgIC8vIEFycmF5PG51bWJlcj4gLiBDaGVjayBmb3IgYSBmZXcgY2FzZXMgdGhhdCB3b3VsZCBkaXNxdWFsaWZ5IGl0IGFuZFxuICAgICAgLy8gY2F1c2UgdXMgdG8gYmFpbCBvdXQuXG4gICAgICAvLyBhPGI+PmMgaXMgbm90IChhPGI+KT5jLCBidXQgYTwoYj4+YylcbiAgICAgIF9iYXNlLnN0YXRlLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4gfHxcbiAgICAgIC8vIGE8Yj5jIGlzIChhPGIpPmNcbiAgICAgIChfYmFzZS5zdGF0ZS50eXBlICE9PSBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCAmJlxuICAgICAgICBCb29sZWFuKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMuVG9rZW5UeXBlLklTX0VYUFJFU1NJT05fU1RBUlQpICYmXG4gICAgICAgICFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkpXG4gICAgKSB7XG4gICAgICAvLyBCYWlsIG91dC4gV2UgaGF2ZSBzb21ldGhpbmcgbGlrZSBhPGI+Yywgd2hpY2ggaXMgbm90IGFuIGV4cHJlc3Npb24gd2l0aFxuICAgICAgLy8gdHlwZSBhcmd1bWVudHMgYnV0IGFuIChhIDwgYikgPiBjIGNvbXBhcmlzb24uXG4gICAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICAgIH1cblxuICAgIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoIW5vQ2FsbHMgJiYgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uRG90KSAmJiBfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKSA9PT0gX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikge1xuICAgIC8vIElmIHdlIHNlZSBmPy48LCB0aGVuIHRoaXMgbXVzdCBiZSBhbiBvcHRpb25hbCBjYWxsIHdpdGggYSB0eXBlIGFyZ3VtZW50LlxuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tzdGFydFRva2VuSW5kZXhdLmlzT3B0aW9uYWxDaGFpblN0YXJ0ID0gdHJ1ZTtcbiAgICAvLyBXaXRoIGY/LjxUPigpLCB0aGUgc3Vic2NyaXB0U3RhcnRJbmRleCBtYXJrZXIgaXMgb24gdGhlID8uIHRva2VuLlxuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uc3Vic2NyaXB0U3RhcnRJbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcblxuICAgIHRzUGFyc2VUeXBlQXJndW1lbnRzKCk7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cy5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICBfZXhwcmVzc2lvbi5iYXNlUGFyc2VTdWJzY3JpcHQuY2FsbCh2b2lkIDAsIHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbn0gZXhwb3J0cy50c1BhcnNlU3Vic2NyaXB0ID0gdHNQYXJzZVN1YnNjcmlwdDtcblxuIGZ1bmN0aW9uIHRzVHJ5UGFyc2VFeHBvcnQoKSB7XG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQpKSB7XG4gICAgLy8gT25lIG9mIHRoZXNlIGNhc2VzOlxuICAgIC8vIGV4cG9ydCBpbXBvcnQgQSA9IEI7XG4gICAgLy8gZXhwb3J0IGltcG9ydCB0eXBlIEEgPSByZXF1aXJlKFwiQVwiKTtcbiAgICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpICYmIF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApICE9PSBfdHlwZXMuVG9rZW5UeXBlLmVxKSB7XG4gICAgICAvLyBFYXQgYSBgdHlwZWAgdG9rZW4sIHVubGVzcyBpdCdzIGFjdHVhbGx5IGFuIGlkZW50aWZpZXIgbmFtZS5cbiAgICAgIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSk7XG4gICAgfVxuICAgIHRzUGFyc2VJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgLy8gYGV4cG9ydCA9IHg7YFxuICAgIF9leHByZXNzaW9uLnBhcnNlRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAoX3V0aWwuZWF0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hcykpIHtcbiAgICAvLyBgZXhwb3J0IGFzIG5hbWVzcGFjZSBBO2BcbiAgICAvLyBTZWUgYHBhcnNlTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb25gIGluIFR5cGVTY3JpcHQncyBvd24gcGFyc2VyXG4gICAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9uYW1lc3BhY2UpO1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSkge1xuICAgICAgY29uc3QgbmV4dFR5cGUgPSBfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIC8vIGV4cG9ydCB0eXBlIHtmb299IGZyb20gJ2EnO1xuICAgICAgLy8gZXhwb3J0IHR5cGUgKiBmcm9tICdhJzsnXG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGFzIG5zIGZyb20gJ2EnOydcbiAgICAgIGlmIChuZXh0VHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5icmFjZUwgfHwgbmV4dFR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuc3Rhcikge1xuICAgICAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59IGV4cG9ydHMudHNUcnlQYXJzZUV4cG9ydCA9IHRzVHJ5UGFyc2VFeHBvcnQ7XG5cbi8qKlxuICogUGFyc2UgYSBUUyBpbXBvcnQgc3BlY2lmaWVyLCB3aGljaCBtYXkgYmUgcHJlZml4ZWQgd2l0aCBcInR5cGVcIiBhbmQgbWF5IGJlIG9mXG4gKiB0aGUgZm9ybSBgZm9vIGFzIGJhcmAuXG4gKlxuICogVGhlIG51bWJlciBvZiBpZGVudGlmaWVyLWxpa2UgdG9rZW5zIHdlIHNlZSBoYXBwZW5zIHRvIGJlIGVub3VnaCB0byB1bmlxdWVseVxuICogaWRlbnRpZnkgdGhlIGZvcm0sIHNvIHNpbXBseSBjb3VudCB0aGUgbnVtYmVyIG9mIGlkZW50aWZpZXJzIHJhdGhlciB0aGFuXG4gKiBtYXRjaGluZyB0aGUgd29yZHMgYHR5cGVgIG9yIGBhc2AuIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBiZWNhdXNlXG4gKiBgdHlwZWAgYW5kIGBhc2AgY291bGQgZWFjaCBhY3R1YWxseSBiZSBwbGFpbiBpZGVudGlmaWVycyByYXRoZXIgdGhhblxuICoga2V5d29yZHMuXG4gKi9cbiBmdW5jdGlvbiB0c1BhcnNlSW1wb3J0U3BlY2lmaWVyKCkge1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgLy8gaW1wb3J0IHtmb299XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IF9pbmRleC5JZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICByZXR1cm47XG4gIH1cbiAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgIC8vIGltcG9ydCB7dHlwZSBmb299XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IF9pbmRleC5JZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDJdLmlzVHlwZSA9IHRydWU7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICAgIHJldHVybjtcbiAgfVxuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgLy8gaW1wb3J0IHtmb28gYXMgYmFyfVxuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuSW1wb3J0QWNjZXNzO1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuSW1wb3J0RGVjbGFyYXRpb247XG4gICAgcmV0dXJuO1xuICB9XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgLy8gaW1wb3J0IHt0eXBlIGZvbyBhcyBiYXJ9XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuSW1wb3J0QWNjZXNzO1xuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gX2luZGV4LklkZW50aWZpZXJSb2xlLkltcG9ydERlY2xhcmF0aW9uO1xuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDRdLmlzVHlwZSA9IHRydWU7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaXNUeXBlID0gdHJ1ZTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAyXS5pc1R5cGUgPSB0cnVlO1xuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlzVHlwZSA9IHRydWU7XG59IGV4cG9ydHMudHNQYXJzZUltcG9ydFNwZWNpZmllciA9IHRzUGFyc2VJbXBvcnRTcGVjaWZpZXI7XG5cbi8qKlxuICogSnVzdCBsaWtlIG5hbWVkIGltcG9ydCBzcGVjaWZpZXJzLCBleHBvcnQgc3BlY2lmaWVycyBjYW4gaGF2ZSBmcm9tIDEgdG8gNFxuICogdG9rZW5zLCBpbmNsdXNpdmUsIGFuZCB0aGUgbnVtYmVyIG9mIHRva2VucyBkZXRlcm1pbmVzIHRoZSByb2xlIG9mIGVhY2ggdG9rZW4uXG4gKi9cbiBmdW5jdGlvbiB0c1BhcnNlRXhwb3J0U3BlY2lmaWVyKCkge1xuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgLy8gZXhwb3J0IHtmb299XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IF9pbmRleC5JZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gICAgcmV0dXJuO1xuICB9XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAvLyBleHBvcnQge3R5cGUgZm9vfVxuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuRXhwb3J0QWNjZXNzO1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMl0uaXNUeXBlID0gdHJ1ZTtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlzVHlwZSA9IHRydWU7XG4gICAgcmV0dXJuO1xuICB9XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAvLyBleHBvcnQge2ZvbyBhcyBiYXJ9XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAzXS5pZGVudGlmaWVyUm9sZSA9IF9pbmRleC5JZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gICAgcmV0dXJuO1xuICB9XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgLy8gZXhwb3J0IHt0eXBlIGZvbyBhcyBiYXJ9XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBfaW5kZXguSWRlbnRpZmllclJvbGUuRXhwb3J0QWNjZXNzO1xuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDRdLmlzVHlwZSA9IHRydWU7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaXNUeXBlID0gdHJ1ZTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAyXS5pc1R5cGUgPSB0cnVlO1xuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlzVHlwZSA9IHRydWU7XG59IGV4cG9ydHMudHNQYXJzZUV4cG9ydFNwZWNpZmllciA9IHRzUGFyc2VFeHBvcnRTcGVjaWZpZXI7XG5cbiBmdW5jdGlvbiB0c1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKSB7XG4gIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYWJzdHJhY3QpICYmIF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApID09PSBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcykge1xuICAgIF9iYXNlLnN0YXRlLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9hYnN0cmFjdDtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTsgLy8gU2tpcCBcImFic3RyYWN0XCJcbiAgICBfc3RhdGVtZW50LnBhcnNlQ2xhc3MuY2FsbCh2b2lkIDAsIHRydWUsIHRydWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlKSkge1xuICAgIC8vIE1ha2Ugc3VyZSBcImV4cG9ydCBkZWZhdWx0XCIgYXJlIGNvbnNpZGVyZWQgdHlwZSB0b2tlbnMgc28gdGhlIHdob2xlIHRoaW5nIGlzIHJlbW92ZWQuXG4gICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMik7XG4gICAgdHNQYXJzZURlY2xhcmF0aW9uKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlLCB0cnVlKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSBleHBvcnRzLnRzVHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbiA9IHRzVHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbjtcblxuIGZ1bmN0aW9uIHRzVHJ5UGFyc2VTdGF0ZW1lbnRDb250ZW50KCkge1xuICBpZiAoX2Jhc2Uuc3RhdGUudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5fY29uc3QpIHtcbiAgICBjb25zdCBhaGVhZCA9IF9pbmRleC5sb29rYWhlYWRUeXBlQW5kS2V5d29yZC5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoYWhlYWQudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lICYmIGFoZWFkLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2VudW0pIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fY29uc3QpO1xuICAgICAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9lbnVtKTtcbiAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX2VudW07XG4gICAgICB0c1BhcnNlRW51bURlY2xhcmF0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSBleHBvcnRzLnRzVHJ5UGFyc2VTdGF0ZW1lbnRDb250ZW50ID0gdHNUcnlQYXJzZVN0YXRlbWVudENvbnRlbnQ7XG5cbiBmdW5jdGlvbiB0c1RyeVBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMoaXNTdGF0aWMpIHtcbiAgY29uc3QgbWVtYmVyU3RhcnRJbmRleEFmdGVyU3RhdGljID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgdHNQYXJzZU1vZGlmaWVycyhbXG4gICAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCxcbiAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5LFxuICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZGVjbGFyZSxcbiAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYyxcbiAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX292ZXJyaWRlLFxuICBdKTtcblxuICBjb25zdCBtb2RpZmllcnNFbmRJbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIGNvbnN0IGZvdW5kID0gdHNUcnlQYXJzZUluZGV4U2lnbmF0dXJlKCk7XG4gIGlmIChmb3VuZCkge1xuICAgIC8vIEluZGV4IHNpZ25hdHVyZXMgYXJlIHR5cGUgZGVjbGFyYXRpb25zLCBzbyBzZXQgdGhlIG1vZGlmaWVyIHRva2VucyBhc1xuICAgIC8vIHR5cGUgdG9rZW5zLiBNb3N0IHRva2VucyBjb3VsZCBiZSBhc3N1bWVkIHRvIGJlIHR5cGUgdG9rZW5zLCBidXQgYHN0YXRpY2BcbiAgICAvLyBpcyBhbWJpZ3VvdXMgdW5sZXNzIHdlIHNldCBpdCBleHBsaWNpdGx5IGhlcmUuXG4gICAgY29uc3QgbWVtYmVyU3RhcnRJbmRleCA9IGlzU3RhdGljXG4gICAgICA/IG1lbWJlclN0YXJ0SW5kZXhBZnRlclN0YXRpYyAtIDFcbiAgICAgIDogbWVtYmVyU3RhcnRJbmRleEFmdGVyU3RhdGljO1xuICAgIGZvciAobGV0IGkgPSBtZW1iZXJTdGFydEluZGV4OyBpIDwgbW9kaWZpZXJzRW5kSW5kZXg7IGkrKykge1xuICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2ldLmlzVHlwZSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0gZXhwb3J0cy50c1RyeVBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMgPSB0c1RyeVBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWM7XG5cbi8vIE5vdGU6IFRoZSByZWFzb24gd2UgZG8gdGhpcyBpbiBgcGFyc2VJZGVudGlmaWVyU3RhdGVtZW50YCBhbmQgbm90IGBwYXJzZVN0YXRlbWVudGBcbi8vIGlzIHRoYXQgZS5nLiBgdHlwZSgpYCBpcyB2YWxpZCBKUywgc28gd2UgbXVzdCB0cnkgcGFyc2luZyB0aGF0IGZpcnN0LlxuLy8gSWYgaXQncyByZWFsbHkgYSB0eXBlLCB3ZSB3aWxsIHBhcnNlIGB0eXBlYCBhcyB0aGUgc3RhdGVtZW50LCBhbmQgY2FuIGNvcnJlY3QgaXQgaGVyZVxuLy8gYnkgcGFyc2luZyB0aGUgcmVzdC5cbiBmdW5jdGlvbiB0c1BhcnNlSWRlbnRpZmllclN0YXRlbWVudChjb250ZXh0dWFsS2V5d29yZCkge1xuICBjb25zdCBtYXRjaGVkID0gdHNQYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpO1xuICBpZiAoIW1hdGNoZWQpIHtcbiAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gIH1cbn0gZXhwb3J0cy50c1BhcnNlSWRlbnRpZmllclN0YXRlbWVudCA9IHRzUGFyc2VJZGVudGlmaWVyU3RhdGVtZW50O1xuXG4gZnVuY3Rpb24gdHNQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICAvLyBcImV4cG9ydCBkZWNsYXJlXCIgaXMgZXF1aXZhbGVudCB0byBqdXN0IFwiZXhwb3J0XCIuXG4gIGNvbnN0IGlzRGVjbGFyZSA9IF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZGVjbGFyZSk7XG4gIGlmIChpc0RlY2xhcmUpIHtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9kZWNsYXJlO1xuICB9XG5cbiAgbGV0IG1hdGNoZWREZWNsYXJhdGlvbiA9IGZhbHNlO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgaWYgKGlzRGVjbGFyZSkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMik7XG4gICAgICBtYXRjaGVkRGVjbGFyYXRpb24gPSB0c1RyeVBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWF0Y2hlZERlY2xhcmF0aW9uID0gdHNUcnlQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCk7XG4gICAgfVxuICB9XG4gIGlmICghbWF0Y2hlZERlY2xhcmF0aW9uKSB7XG4gICAgaWYgKGlzRGVjbGFyZSkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMik7XG4gICAgICBfc3RhdGVtZW50LnBhcnNlU3RhdGVtZW50LmNhbGwodm9pZCAwLCB0cnVlKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3N0YXRlbWVudC5wYXJzZVN0YXRlbWVudC5jYWxsKHZvaWQgMCwgdHJ1ZSk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMudHNQYXJzZUV4cG9ydERlY2xhcmF0aW9uID0gdHNQYXJzZUV4cG9ydERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gdHNBZnRlclBhcnNlQ2xhc3NTdXBlcihoYXNTdXBlcikge1xuICBpZiAoaGFzU3VwZXIgJiYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikgfHwgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdFNoaWZ0TCkpKSB7XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpO1xuICB9XG4gIGlmIChfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ltcGxlbWVudHMpKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5faW1wbGVtZW50cztcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAxKTtcbiAgICB0c1BhcnNlSGVyaXRhZ2VDbGF1c2UoKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH1cbn0gZXhwb3J0cy50c0FmdGVyUGFyc2VDbGFzc1N1cGVyID0gdHNBZnRlclBhcnNlQ2xhc3NTdXBlcjtcblxuIGZ1bmN0aW9uIHRzU3RhcnRQYXJzZU9ialByb3BWYWx1ZSgpIHtcbiAgdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG59IGV4cG9ydHMudHNTdGFydFBhcnNlT2JqUHJvcFZhbHVlID0gdHNTdGFydFBhcnNlT2JqUHJvcFZhbHVlO1xuXG4gZnVuY3Rpb24gdHNTdGFydFBhcnNlRnVuY3Rpb25QYXJhbXMoKSB7XG4gIHRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycygpO1xufSBleHBvcnRzLnRzU3RhcnRQYXJzZUZ1bmN0aW9uUGFyYW1zID0gdHNTdGFydFBhcnNlRnVuY3Rpb25QYXJhbXM7XG5cbi8vIGBsZXQgeDogbnVtYmVyO2BcbiBmdW5jdGlvbiB0c0FmdGVyUGFyc2VWYXJIZWFkKCkge1xuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgaWYgKCFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkpIHtcbiAgICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJhbmcpO1xuICB9XG4gIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG59IGV4cG9ydHMudHNBZnRlclBhcnNlVmFySGVhZCA9IHRzQWZ0ZXJQYXJzZVZhckhlYWQ7XG5cbi8vIHBhcnNlIHRoZSByZXR1cm4gdHlwZSBvZiBhbiBhc3luYyBhcnJvdyBmdW5jdGlvbiAtIGxldCBmb28gPSAoYXN5bmMgKCk6IG51bWJlciA9PiB7fSk7XG4gZnVuY3Rpb24gdHNTdGFydFBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbigpIHtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfVxufSBleHBvcnRzLnRzU3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24gPSB0c1N0YXJ0UGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uO1xuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gd2FzIGFuIGFycm93IGZ1bmN0aW9uLlxuIGZ1bmN0aW9uIHRzUGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucykge1xuICAvLyBOb3RlOiBXaGVuIHRoZSBKU1ggcGx1Z2luIGlzIG9uLCB0eXBlIGFzc2VydGlvbnMgKGA8VD4geGApIGFyZW4ndCB2YWxpZCBzeW50YXguXG4gIGlmIChfYmFzZS5pc0pTWEVuYWJsZWQpIHtcbiAgICByZXR1cm4gdHNQYXJzZU1heWJlQXNzaWduV2l0aEpTWChub0luLCBpc1dpdGhpblBhcmVucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRzUGFyc2VNYXliZUFzc2lnbldpdGhvdXRKU1gobm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9XG59IGV4cG9ydHMudHNQYXJzZU1heWJlQXNzaWduID0gdHNQYXJzZU1heWJlQXNzaWduO1xuXG4gZnVuY3Rpb24gdHNQYXJzZU1heWJlQXNzaWduV2l0aEpTWChub0luLCBpc1dpdGhpblBhcmVucykge1xuICBpZiAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICByZXR1cm4gX2V4cHJlc3Npb24uYmFzZVBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgfVxuXG4gIC8vIFByZWZlciB0byBwYXJzZSBKU1ggaWYgcG9zc2libGUuIEJ1dCBtYXkgYmUgYW4gYXJyb3cgZm4uXG4gIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgbGV0IHdhc0Fycm93ID0gX2V4cHJlc3Npb24uYmFzZVBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgaWYgKF9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHdhc0Fycm93O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB0cnkgYXMgdHlwZS1wYXJhbWV0ZXJpemVkIGFycm93IGZ1bmN0aW9uLlxuICBfYmFzZS5zdGF0ZS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gIC8vIFRoaXMgaXMgc2ltaWxhciB0byBUeXBlU2NyaXB0J3MgYHRyeVBhcnNlUGFyZW50aGVzaXplZEFycm93RnVuY3Rpb25FeHByZXNzaW9uYC5cbiAgdHNQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG4gIHdhc0Fycm93ID0gX2V4cHJlc3Npb24uYmFzZVBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgaWYgKCF3YXNBcnJvdykge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cblxuICByZXR1cm4gd2FzQXJyb3c7XG59IGV4cG9ydHMudHNQYXJzZU1heWJlQXNzaWduV2l0aEpTWCA9IHRzUGFyc2VNYXliZUFzc2lnbldpdGhKU1g7XG5cbiBmdW5jdGlvbiB0c1BhcnNlTWF5YmVBc3NpZ25XaXRob3V0SlNYKG5vSW4sIGlzV2l0aGluUGFyZW5zKSB7XG4gIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIHJldHVybiBfZXhwcmVzc2lvbi5iYXNlUGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgbm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9XG5cbiAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuICAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gVHlwZVNjcmlwdCdzIGB0cnlQYXJzZVBhcmVudGhlc2l6ZWRBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbmAuXG4gIHRzUGFyc2VUeXBlUGFyYW1ldGVycygpO1xuICBjb25zdCB3YXNBcnJvdyA9IF9leHByZXNzaW9uLmJhc2VQYXJzZU1heWJlQXNzaWduLmNhbGwodm9pZCAwLCBub0luLCBpc1dpdGhpblBhcmVucyk7XG4gIGlmICghd2FzQXJyb3cpIHtcbiAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICB9XG4gIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB3YXNBcnJvdztcbiAgfVxuXG4gIC8vIFRyeSBwYXJzaW5nIGEgdHlwZSBjYXN0IGluc3RlYWQgb2YgYW4gYXJyb3cgZnVuY3Rpb24uXG4gIC8vIFRoaXMgd2lsbCBzdGFydCB3aXRoIGEgdHlwZSBhc3NlcnRpb24gKHZpYSBwYXJzZU1heWJlVW5hcnkpLlxuICAvLyBCdXQgZG9uJ3QgZGlyZWN0bHkgY2FsbCBgdHNQYXJzZVR5cGVBc3NlcnRpb25gIGJlY2F1c2Ugd2Ugd2FudCB0byBoYW5kbGUgYW55IGJpbmFyeSBhZnRlciBpdC5cbiAgcmV0dXJuIF9leHByZXNzaW9uLmJhc2VQYXJzZU1heWJlQXNzaWduLmNhbGwodm9pZCAwLCBub0luLCBpc1dpdGhpblBhcmVucyk7XG59IGV4cG9ydHMudHNQYXJzZU1heWJlQXNzaWduV2l0aG91dEpTWCA9IHRzUGFyc2VNYXliZUFzc2lnbldpdGhvdXRKU1g7XG5cbiBmdW5jdGlvbiB0c1BhcnNlQXJyb3coKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgLy8gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBob3cgdGhlIFRTIHBhcnNlciBkb2VzIGl0LlxuICAgIC8vIFRTIHVzZXMgbG9va2FoZWFkLiBCYWJ5bG9uIHBhcnNlcyBpdCBhcyBhIHBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiBhbmQgY29udmVydHMuXG4gICAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuXG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKF90eXBlcy5Ub2tlblR5cGUuY29sb24pO1xuICAgIGlmIChfdXRpbC5jYW5JbnNlcnRTZW1pY29sb24uY2FsbCh2b2lkIDAsICkpIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gICAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYXJyb3cpKSBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuXG4gICAgaWYgKF9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYXJyb3cpO1xufSBleHBvcnRzLnRzUGFyc2VBcnJvdyA9IHRzUGFyc2VBcnJvdztcblxuLy8gQWxsb3cgdHlwZSBhbm5vdGF0aW9ucyBpbnNpZGUgb2YgYSBwYXJhbWV0ZXIgbGlzdC5cbiBmdW5jdGlvbiB0c1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgdHNUcnlQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbn0gZXhwb3J0cy50c1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMgPSB0c1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXM7XG5cbiBmdW5jdGlvbiB0c1BhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iaXRTaGlmdEwpKSB7XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpO1xuICB9XG4gIF9zdGF0ZW1lbnQuYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMuY2FsbCh2b2lkIDAsICk7XG59IGV4cG9ydHMudHNQYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzID0gdHNQYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7XG5cblxuXG5cblxuXG5cblxuXG52YXIgX2luZGV4ID0gcmVxdWlyZSgnLi4vLi4vdG9rZW5pemVyL2luZGV4Jyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vLi4vdG9rZW5pemVyL3R5cGVzJyk7XG52YXIgX2Jhc2UgPSByZXF1aXJlKCcuLi8uLi90cmF2ZXJzZXIvYmFzZScpO1xudmFyIF9leHByZXNzaW9uID0gcmVxdWlyZSgnLi4vLi4vdHJhdmVyc2VyL2V4cHJlc3Npb24nKTtcbnZhciBfdXRpbCA9IHJlcXVpcmUoJy4uLy4uL3RyYXZlcnNlci91dGlsJyk7XG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWwvY2hhcmNvZGVzJyk7XG52YXIgX2lkZW50aWZpZXIgPSByZXF1aXJlKCcuLi8uLi91dGlsL2lkZW50aWZpZXInKTtcbnZhciBfdHlwZXNjcmlwdCA9IHJlcXVpcmUoJy4uL3R5cGVzY3JpcHQnKTtcblxuLyoqXG4gKiBSZWFkIHRva2VuIHdpdGggSlNYIGNvbnRlbnRzLlxuICpcbiAqIEluIGFkZGl0aW9uIHRvIGRldGVjdGluZyBqc3hUYWdTdGFydCBhbmQgYWxzbyByZWd1bGFyIHRva2VucyB0aGF0IG1pZ2h0IGJlXG4gKiBwYXJ0IG9mIGFuIGV4cHJlc3Npb24sIHRoaXMgY29kZSBkZXRlY3RzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRleHQgcmFuZ2VzXG4gKiB3aXRoaW4gSlNYIGNoaWxkcmVuLiBJbiBvcmRlciB0byBwcm9wZXJseSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuLCB3ZVxuICogZGlzdGluZ3Vpc2gganN4VGV4dCBmcm9tIGpzeEVtcHR5VGV4dCwgd2hpY2ggaXMgYSB0ZXh0IHJhbmdlIHRoYXQgc2ltcGxpZmllc1xuICogdG8gdGhlIGVtcHR5IHN0cmluZyBhZnRlciBKU1ggd2hpdGVzcGFjZSB0cmltbWluZy5cbiAqXG4gKiBJdCB0dXJucyBvdXQgdGhhdCBhIEpTWCB0ZXh0IHJhbmdlIHdpbGwgc2ltcGxpZnkgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBhbmRcbiAqIG9ubHkgaWYgYm90aCBvZiB0aGVzZSBjb25kaXRpb25zIGhvbGQ6XG4gKiAtIFRoZSByYW5nZSBjb25zaXN0cyBlbnRpcmVseSBvZiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKG9ubHkgY291bnRpbmcgc3BhY2UsXG4gKiAgIHRhYiwgXFxyLCBhbmQgXFxuKS5cbiAqIC0gVGhlIHJhbmdlIGhhcyBhdCBsZWFzdCBvbmUgbmV3bGluZS5cbiAqIFRoaXMgY2FuIGJlIHByb3ZlbiBieSBhbmFseXppbmcgYW55IGltcGxlbWVudGF0aW9uIG9mIHdoaXRlc3BhY2UgdHJpbW1pbmcsXG4gKiBlLmcuIGZvcm1hdEpTWFRleHRMaXRlcmFsIGluIFN1Y3Jhc2Ugb3IgY2xlYW5KU1hFbGVtZW50TGl0ZXJhbENoaWxkIGluIEJhYmVsLlxuICovXG5mdW5jdGlvbiBqc3hSZWFkVG9rZW4oKSB7XG4gIGxldCBzYXdOZXdsaW5lID0gZmFsc2U7XG4gIGxldCBzYXdOb25XaGl0ZXNwYWNlID0gZmFsc2U7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA+PSBfYmFzZS5pbnB1dC5sZW5ndGgpIHtcbiAgICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsIFwiVW50ZXJtaW5hdGVkIEpTWCBjb250ZW50c1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoX2Jhc2Uuc3RhdGUucG9zKTtcbiAgICBpZiAoY2ggPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxlc3NUaGFuIHx8IGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZWZ0Q3VybHlCcmFjZSkge1xuICAgICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA9PT0gX2Jhc2Uuc3RhdGUuc3RhcnQpIHtcbiAgICAgICAgaWYgKGNoID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZXNzVGhhbikge1xuICAgICAgICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICAgICAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIF9pbmRleC5nZXRUb2tlbkZyb21Db2RlLmNhbGwodm9pZCAwLCBjaCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzYXdOZXdsaW5lICYmICFzYXdOb25XaGl0ZXNwYWNlKSB7XG4gICAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5qc3hFbXB0eVRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmpzeFRleHQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgcGFydCBvZiBKU1ggdGV4dC5cbiAgICBpZiAoY2ggPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxpbmVGZWVkKSB7XG4gICAgICBzYXdOZXdsaW5lID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNoICE9PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5zcGFjZSAmJiBjaCAhPT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuY2FycmlhZ2VSZXR1cm4gJiYgY2ggIT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnRhYikge1xuICAgICAgc2F3Tm9uV2hpdGVzcGFjZSA9IHRydWU7XG4gICAgfVxuICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICB9XG59XG5cbmZ1bmN0aW9uIGpzeFJlYWRTdHJpbmcocXVvdGUpIHtcbiAgX2Jhc2Uuc3RhdGUucG9zKys7XG4gIGZvciAoOzspIHtcbiAgICBpZiAoX2Jhc2Uuc3RhdGUucG9zID49IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNoID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5wb3MpO1xuICAgIGlmIChjaCA9PT0gcXVvdGUpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIF9iYXNlLnN0YXRlLnBvcysrO1xuICB9XG4gIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpO1xufVxuXG4vLyBSZWFkIGEgSlNYIGlkZW50aWZpZXIgKHZhbGlkIHRhZyBvciBhdHRyaWJ1dGUgbmFtZSkuXG4vL1xuLy8gT3B0aW1pemVkIHZlcnNpb24gc2luY2UgSlNYIGlkZW50aWZpZXJzIGNhbid0IGNvbnRhaW5cbi8vIGVzY2FwZSBjaGFyYWN0ZXJzIGFuZCBzbyBjYW4gYmUgcmVhZCBhcyBzaW5nbGUgc2xpY2UuXG4vLyBBbHNvIGFzc3VtZXMgdGhhdCBmaXJzdCBjaGFyYWN0ZXIgd2FzIGFscmVhZHkgY2hlY2tlZFxuLy8gYnkgaXNJZGVudGlmaWVyU3RhcnQgaW4gcmVhZFRva2VuLlxuXG5mdW5jdGlvbiBqc3hSZWFkV29yZCgpIHtcbiAgbGV0IGNoO1xuICBkbyB7XG4gICAgaWYgKF9iYXNlLnN0YXRlLnBvcyA+IF9iYXNlLmlucHV0Lmxlbmd0aCkge1xuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJVbmV4cGVjdGVkbHkgcmVhY2hlZCB0aGUgZW5kIG9mIGlucHV0LlwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2ggPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KCsrX2Jhc2Uuc3RhdGUucG9zKTtcbiAgfSB3aGlsZSAoX2lkZW50aWZpZXIuSVNfSURFTlRJRklFUl9DSEFSW2NoXSB8fCBjaCA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZGFzaCk7XG4gIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5qc3hOYW1lKTtcbn1cblxuLy8gUGFyc2UgbmV4dCB0b2tlbiBhcyBKU1ggaWRlbnRpZmllclxuZnVuY3Rpb24ganN4UGFyc2VJZGVudGlmaWVyKCkge1xuICBuZXh0SlNYVGFnVG9rZW4oKTtcbn1cblxuLy8gUGFyc2UgbmFtZXNwYWNlZCBpZGVudGlmaWVyLlxuZnVuY3Rpb24ganN4UGFyc2VOYW1lc3BhY2VkTmFtZShpZGVudGlmaWVyUm9sZSkge1xuICBqc3hQYXJzZUlkZW50aWZpZXIoKTtcbiAgaWYgKCFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSkge1xuICAgIC8vIFBsYWluIGlkZW50aWZpZXIsIHNvIHRoaXMgaXMgYW4gYWNjZXNzLlxuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBpZGVudGlmaWVyUm9sZTtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gUHJvY2VzcyB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIG5hbWVzcGFjZWQgbmFtZS5cbiAganN4UGFyc2VJZGVudGlmaWVyKCk7XG59XG5cbi8vIFBhcnNlcyBlbGVtZW50IG5hbWUgaW4gYW55IGZvcm0gLSBuYW1lc3BhY2VkLCBtZW1iZXJcbi8vIG9yIHNpbmdsZSBpZGVudGlmaWVyLlxuZnVuY3Rpb24ganN4UGFyc2VFbGVtZW50TmFtZSgpIHtcbiAgY29uc3QgZmlyc3RUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAganN4UGFyc2VOYW1lc3BhY2VkTmFtZShfaW5kZXguSWRlbnRpZmllclJvbGUuQWNjZXNzKTtcbiAgbGV0IGhhZERvdCA9IGZhbHNlO1xuICB3aGlsZSAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICBoYWREb3QgPSB0cnVlO1xuICAgIG5leHRKU1hUYWdUb2tlbigpO1xuICAgIGpzeFBhcnNlSWRlbnRpZmllcigpO1xuICB9XG4gIC8vIEZvciB0YWdzIGxpa2UgPGRpdj4gd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgYW5kIG5vIGRvdHMsIHRoZSBuYW1lIGlzXG4gIC8vIGFjdHVhbGx5ICpub3QqIGFuIGlkZW50aWZpZXIgYWNjZXNzLCBzaW5jZSBpdCdzIHJlZmVycmluZyB0byBhIGJ1aWx0LWluXG4gIC8vIHRhZyBuYW1lLiBSZW1vdmUgdGhlIGlkZW50aWZpZXIgcm9sZSBpbiB0aGlzIGNhc2Ugc28gdGhhdCBpdCdzIG5vdFxuICAvLyBhY2NpZGVudGFsbHkgdHJhbnNmb3JtZWQgYnkgdGhlIGltcG9ydHMgdHJhbnNmb3JtIHdoZW4gcHJlc2VydmluZyBKU1guXG4gIGlmICghaGFkRG90KSB7XG4gICAgY29uc3QgZmlyc3RUb2tlbiA9IF9iYXNlLnN0YXRlLnRva2Vuc1tmaXJzdFRva2VuSW5kZXhdO1xuICAgIGNvbnN0IGZpcnN0Q2hhciA9IF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoZmlyc3RUb2tlbi5zdGFydCk7XG4gICAgaWYgKGZpcnN0Q2hhciA+PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sb3dlcmNhc2VBICYmIGZpcnN0Q2hhciA8PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sb3dlcmNhc2VaKSB7XG4gICAgICBmaXJzdFRva2VuLmlkZW50aWZpZXJSb2xlID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFyc2VzIGFueSB0eXBlIG9mIEpTWCBhdHRyaWJ1dGUgdmFsdWUuXG5mdW5jdGlvbiBqc3hQYXJzZUF0dHJpYnV0ZVZhbHVlKCkge1xuICBzd2l0Y2ggKF9iYXNlLnN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMOlxuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZUV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gICAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydDpcbiAgICAgIGpzeFBhcnNlRWxlbWVudCgpO1xuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nOlxuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgXCJKU1ggdmFsdWUgc2hvdWxkIGJlIGVpdGhlciBhbiBleHByZXNzaW9uIG9yIGEgcXVvdGVkIEpTWCB0ZXh0XCIpO1xuICB9XG59XG5cbi8vIFBhcnNlIEpTWCBzcHJlYWQgY2hpbGQsIGFmdGVyIGFscmVhZHkgcHJvY2Vzc2luZyB0aGUge1xuLy8gRG9lcyBub3QgcGFyc2UgdGhlIGNsb3NpbmcgfVxuZnVuY3Rpb24ganN4UGFyc2VTcHJlYWRDaGlsZCgpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVsbGlwc2lzKTtcbiAgX2V4cHJlc3Npb24ucGFyc2VFeHByZXNzaW9uLmNhbGwodm9pZCAwLCApO1xufVxuXG4vLyBQYXJzZXMgSlNYIG9wZW5pbmcgdGFnIHN0YXJ0aW5nIGFmdGVyIFwiPFwiLlxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB0YWcgd2FzIHNlbGYtY2xvc2luZy5cbi8vIERvZXMgbm90IHBhcnNlIHRoZSBsYXN0IHRva2VuLlxuZnVuY3Rpb24ganN4UGFyc2VPcGVuaW5nRWxlbWVudChpbml0aWFsVG9rZW5JbmRleCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZCkpIHtcbiAgICAvLyBUaGlzIGlzIGFuIG9wZW4tZnJhZ21lbnQuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGpzeFBhcnNlRWxlbWVudE5hbWUoKTtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1RyeVBhcnNlSlNYVHlwZUFyZ3VtZW50LmNhbGwodm9pZCAwLCApO1xuICB9XG4gIGxldCBoYXNTZWVuUHJvcFNwcmVhZCA9IGZhbHNlO1xuICB3aGlsZSAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zbGFzaCkgJiYgIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdFbmQpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgIGhhc1NlZW5Qcm9wU3ByZWFkID0gdHJ1ZTtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcyk7XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZU1heWJlQXNzaWduLmNhbGwodm9pZCAwLCApO1xuICAgICAgLy8gfVxuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgaGFzU2VlblByb3BTcHJlYWQgJiZcbiAgICAgIF9iYXNlLnN0YXRlLmVuZCAtIF9iYXNlLnN0YXRlLnN0YXJ0ID09PSAzICYmXG4gICAgICBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnN0YXJ0KSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubG93ZXJjYXNlSyAmJlxuICAgICAgX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfYmFzZS5zdGF0ZS5zdGFydCArIDEpID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sb3dlcmNhc2VFICYmXG4gICAgICBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnN0YXJ0ICsgMikgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmxvd2VyY2FzZVlcbiAgICApIHtcbiAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tpbml0aWFsVG9rZW5JbmRleF0uanN4Um9sZSA9IF9pbmRleC5KU1hSb2xlLktleUFmdGVyUHJvcFNwcmVhZDtcbiAgICB9XG4gICAganN4UGFyc2VOYW1lc3BhY2VkTmFtZShfaW5kZXguSWRlbnRpZmllclJvbGUuT2JqZWN0S2V5KTtcbiAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICBqc3hQYXJzZUF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGlzU2VsZkNsb3NpbmcgPSBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc2xhc2gpO1xuICBpZiAoaXNTZWxmQ2xvc2luZykge1xuICAgIC8vIC9cbiAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgfVxuICByZXR1cm4gaXNTZWxmQ2xvc2luZztcbn1cblxuLy8gUGFyc2VzIEpTWCBjbG9zaW5nIHRhZyBzdGFydGluZyBhZnRlciBcIjwvXCIuXG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgbGFzdCB0b2tlbi5cbmZ1bmN0aW9uIGpzeFBhcnNlQ2xvc2luZ0VsZW1lbnQoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuanN4VGFnRW5kKSkge1xuICAgIC8vIEZyYWdtZW50IHN5bnRheCwgc28gd2UgaW1tZWRpYXRlbHkgaGF2ZSBhIHRhZyBlbmQuXG4gICAgcmV0dXJuO1xuICB9XG4gIGpzeFBhcnNlRWxlbWVudE5hbWUoKTtcbn1cblxuLy8gUGFyc2VzIGVudGlyZSBKU1ggZWxlbWVudCwgaW5jbHVkaW5nIGl0cyBvcGVuaW5nIHRhZ1xuLy8gKHN0YXJ0aW5nIGFmdGVyIFwiPFwiKSwgYXR0cmlidXRlcywgY29udGVudHMgYW5kIGNsb3NpbmcgdGFnLlxuLy8gRG9lcyBub3QgcGFyc2UgdGhlIGxhc3QgdG9rZW4uXG5mdW5jdGlvbiBqc3hQYXJzZUVsZW1lbnRBdCgpIHtcbiAgY29uc3QgaW5pdGlhbFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW2luaXRpYWxUb2tlbkluZGV4XS5qc3hSb2xlID0gX2luZGV4LkpTWFJvbGUuTm9DaGlsZHJlbjtcbiAgbGV0IG51bUV4cGxpY2l0Q2hpbGRyZW4gPSAwO1xuICBjb25zdCBpc1NlbGZDbG9zaW5nID0ganN4UGFyc2VPcGVuaW5nRWxlbWVudChpbml0aWFsVG9rZW5JbmRleCk7XG4gIGlmICghaXNTZWxmQ2xvc2luZykge1xuICAgIG5leHRKU1hFeHByVG9rZW4oKTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgc3dpdGNoIChfYmFzZS5zdGF0ZS50eXBlKSB7XG4gICAgICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5qc3hUYWdTdGFydDpcbiAgICAgICAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgICAgICAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnNsYXNoKSkge1xuICAgICAgICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICBqc3hQYXJzZUNsb3NpbmdFbGVtZW50KCk7XG4gICAgICAgICAgICAvLyBLZXkgYWZ0ZXIgcHJvcCBzcHJlYWQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG51bWJlciBvZiBjaGlsZHJlbixcbiAgICAgICAgICAgIC8vIHNpbmNlIGl0IG1lYW5zIHdlIHN3aXRjaCB0byBjcmVhdGVFbGVtZW50LCB3aGljaCBkb2Vzbid0IGNhcmVcbiAgICAgICAgICAgIC8vIGFib3V0IG51bWJlciBvZiBjaGlsZHJlbi5cbiAgICAgICAgICAgIGlmIChfYmFzZS5zdGF0ZS50b2tlbnNbaW5pdGlhbFRva2VuSW5kZXhdLmpzeFJvbGUgIT09IF9pbmRleC5KU1hSb2xlLktleUFmdGVyUHJvcFNwcmVhZCkge1xuICAgICAgICAgICAgICBpZiAobnVtRXhwbGljaXRDaGlsZHJlbiA9PT0gMSkge1xuICAgICAgICAgICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tpbml0aWFsVG9rZW5JbmRleF0uanN4Um9sZSA9IF9pbmRleC5KU1hSb2xlLk9uZUNoaWxkO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bUV4cGxpY2l0Q2hpbGRyZW4gPiAxKSB7XG4gICAgICAgICAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2luaXRpYWxUb2tlbkluZGV4XS5qc3hSb2xlID0gX2luZGV4LkpTWFJvbGUuU3RhdGljQ2hpbGRyZW47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbnVtRXhwbGljaXRDaGlsZHJlbisrO1xuICAgICAgICAgIGpzeFBhcnNlRWxlbWVudEF0KCk7XG4gICAgICAgICAgbmV4dEpTWEV4cHJUb2tlbigpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5qc3hUZXh0OlxuICAgICAgICAgIG51bUV4cGxpY2l0Q2hpbGRyZW4rKztcbiAgICAgICAgICBuZXh0SlNYRXhwclRva2VuKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLmpzeEVtcHR5VGV4dDpcbiAgICAgICAgICBuZXh0SlNYRXhwclRva2VuKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTDpcbiAgICAgICAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVsbGlwc2lzKSkge1xuICAgICAgICAgICAganN4UGFyc2VTcHJlYWRDaGlsZCgpO1xuICAgICAgICAgICAgbmV4dEpTWEV4cHJUb2tlbigpO1xuICAgICAgICAgICAgLy8gU3ByZWFkIGNoaWxkcmVuIGFyZSBhIG1lY2hhbmlzbSB0byBleHBsaWNpdGx5IG1hcmsgY2hpbGRyZW4gYXNcbiAgICAgICAgICAgIC8vIHN0YXRpYywgc28gY291bnQgaXQgYXMgMiBjaGlsZHJlbiB0byBzYXRpc2Z5IHRoZSBcIm1vcmUgdGhhbiBvbmVcbiAgICAgICAgICAgIC8vIGNoaWxkXCIgY29uZGl0aW9uLlxuICAgICAgICAgICAgbnVtRXhwbGljaXRDaGlsZHJlbiArPSAyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBzZWUge30sIHRoaXMgaXMgYW4gZW1wdHkgcHNldWRvLWV4cHJlc3Npb24gdGhhdCBkb2Vzbid0XG4gICAgICAgICAgICAvLyBjb3VudCBhcyBhIGNoaWxkLlxuICAgICAgICAgICAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgICAgICAgICBudW1FeHBsaWNpdENoaWxkcmVuKys7XG4gICAgICAgICAgICAgIF9leHByZXNzaW9uLnBhcnNlRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRKU1hFeHByVG9rZW4oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHNob3VsZCBuZXZlciBoYXBwZW5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gUGFyc2VzIGVudGlyZSBKU1ggZWxlbWVudCBmcm9tIGN1cnJlbnQgcG9zaXRpb24uXG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgbGFzdCB0b2tlbi5cbiBmdW5jdGlvbiBqc3hQYXJzZUVsZW1lbnQoKSB7XG4gIG5leHRKU1hUYWdUb2tlbigpO1xuICBqc3hQYXJzZUVsZW1lbnRBdCgpO1xufSBleHBvcnRzLmpzeFBhcnNlRWxlbWVudCA9IGpzeFBhcnNlRWxlbWVudDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3ZlcnJpZGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiBmdW5jdGlvbiBuZXh0SlNYVGFnVG9rZW4oKSB7XG4gIF9iYXNlLnN0YXRlLnRva2Vucy5wdXNoKG5ldyAoMCwgX2luZGV4LlRva2VuKSgpKTtcbiAgX2luZGV4LnNraXBTcGFjZS5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUuc3RhcnQgPSBfYmFzZS5zdGF0ZS5wb3M7XG4gIGNvbnN0IGNvZGUgPSBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KF9iYXNlLnN0YXRlLnBvcyk7XG5cbiAgaWYgKF9pZGVudGlmaWVyLklTX0lERU5USUZJRVJfU1RBUlRbY29kZV0pIHtcbiAgICBqc3hSZWFkV29yZCgpO1xuICB9IGVsc2UgaWYgKGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLnF1b3RhdGlvbk1hcmsgfHwgY29kZSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMuYXBvc3Ryb3BoZSkge1xuICAgIGpzeFJlYWRTdHJpbmcoY29kZSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIGZvbGxvd2luZyB0b2tlbnMgYXJlIGp1c3Qgb25lIGNoYXJhY3RlciBlYWNoLlxuICAgICsrX2Jhc2Uuc3RhdGUucG9zO1xuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5ncmVhdGVyVGhhbjpcbiAgICAgICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ0VuZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZXNzVGhhbjpcbiAgICAgICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmpzeFRhZ1N0YXJ0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIF9jaGFyY29kZXMuY2hhckNvZGVzLnNsYXNoOlxuICAgICAgICBfaW5kZXguZmluaXNoVG9rZW4uY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc2xhc2gpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuZXF1YWxzVG86XG4gICAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lcSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5sZWZ0Q3VybHlCcmFjZTpcbiAgICAgICAgX2luZGV4LmZpbmlzaFRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5kb3Q6XG4gICAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5kb3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgX2NoYXJjb2Rlcy5jaGFyQ29kZXMuY29sb246XG4gICAgICAgIF9pbmRleC5maW5pc2hUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgICB9XG4gIH1cbn0gZXhwb3J0cy5uZXh0SlNYVGFnVG9rZW4gPSBuZXh0SlNYVGFnVG9rZW47XG5cbmZ1bmN0aW9uIG5leHRKU1hFeHByVG9rZW4oKSB7XG4gIF9iYXNlLnN0YXRlLnRva2Vucy5wdXNoKG5ldyAoMCwgX2luZGV4LlRva2VuKSgpKTtcbiAgX2Jhc2Uuc3RhdGUuc3RhcnQgPSBfYmFzZS5zdGF0ZS5wb3M7XG4gIGpzeFJlYWRUb2tlbigpO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIF9pbmRleCA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9pbmRleCcpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci90eXBlcycpO1xudmFyIF9iYXNlID0gcmVxdWlyZSgnLi4vdHJhdmVyc2VyL2Jhc2UnKTtcbnZhciBfZXhwcmVzc2lvbiA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci9leHByZXNzaW9uJyk7XG52YXIgX2Zsb3cgPSByZXF1aXJlKCcuL2Zsb3cnKTtcbnZhciBfdHlwZXNjcmlwdCA9IHJlcXVpcmUoJy4vdHlwZXNjcmlwdCcpO1xuXG4vKipcbiAqIENvbW1vbiBwYXJzZXIgY29kZSBmb3IgVHlwZVNjcmlwdCBhbmQgRmxvdy5cbiAqL1xuXG4vLyBBbiBhcHBhcmVudCBjb25kaXRpb25hbCBleHByZXNzaW9uIGNvdWxkIGFjdHVhbGx5IGJlIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiBhbiBhcnJvdyBmdW5jdGlvbi5cbiBmdW5jdGlvbiB0eXBlZFBhcnNlQ29uZGl0aW9uYWwobm9Jbikge1xuICAvLyBJZiB3ZSBzZWUgPzosIHRoaXMgY2FuJ3QgcG9zc2libHkgYmUgYSB2YWxpZCBjb25kaXRpb25hbC4gdHlwZWRQYXJzZVBhcmVuSXRlbSB3aWxsIGJlIGNhbGxlZFxuICAvLyBsYXRlciB0byBmaW5pc2ggb2ZmIHRoZSBhcnJvdyBwYXJhbWV0ZXIuIFdlIGFsc28gbmVlZCB0byBoYW5kbGUgYmFyZSA/IHRva2VucyBmb3Igb3B0aW9uYWxcbiAgLy8gcGFyYW1ldGVycyB3aXRob3V0IHR5cGUgYW5ub3RhdGlvbnMsIGkuZS4gPywgYW5kID8pIC5cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbikpIHtcbiAgICBjb25zdCBuZXh0VHlwZSA9IF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApO1xuICAgIGlmIChuZXh0VHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5jb2xvbiB8fCBuZXh0VHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5jb21tYSB8fCBuZXh0VHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgX2V4cHJlc3Npb24uYmFzZVBhcnNlQ29uZGl0aW9uYWwuY2FsbCh2b2lkIDAsIG5vSW4pO1xufSBleHBvcnRzLnR5cGVkUGFyc2VDb25kaXRpb25hbCA9IHR5cGVkUGFyc2VDb25kaXRpb25hbDtcblxuLy8gTm90ZTogVGhlc2UgXCJ0eXBlIGNhc3RzXCIgYXJlICpub3QqIHZhbGlkIFRTIGV4cHJlc3Npb25zLlxuLy8gQnV0IHdlIHBhcnNlIHRoZW0gaGVyZSBhbmQgY2hhbmdlIHRoZW0gd2hlbiBjb21wbGV0aW5nIHRoZSBhcnJvdyBmdW5jdGlvbi5cbiBmdW5jdGlvbiB0eXBlZFBhcnNlUGFyZW5JdGVtKCkge1xuICBfaW5kZXguZWF0VHlwZVRva2VuLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgICAgX3R5cGVzY3JpcHQudHNQYXJzZVR5cGVBbm5vdGF0aW9uLmNhbGwodm9pZCAwLCApO1xuICAgIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgICAgX2Zsb3cuZmxvd1BhcnNlVHlwZUFubm90YXRpb24uY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMudHlwZWRQYXJzZVBhcmVuSXRlbSA9IHR5cGVkUGFyc2VQYXJlbkl0ZW07XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsvKiBlc2xpbnQgbWF4LWxlbjogMCAqL1xuXG4vLyBBIHJlY3Vyc2l2ZSBkZXNjZW50IHBhcnNlciBvcGVyYXRlcyBieSBkZWZpbmluZyBmdW5jdGlvbnMgZm9yIGFsbFxuLy8gc3ludGFjdGljIGVsZW1lbnRzLCBhbmQgcmVjdXJzaXZlbHkgY2FsbGluZyB0aG9zZSwgZWFjaCBmdW5jdGlvblxuLy8gYWR2YW5jaW5nIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHJldHVybmluZyBhbiBBU1Qgbm9kZS4gUHJlY2VkZW5jZVxuLy8gb2YgY29uc3RydWN0cyAoZm9yIGV4YW1wbGUsIHRoZSBmYWN0IHRoYXQgYCF4WzFdYCBtZWFucyBgISh4WzFdKWBcbi8vIGluc3RlYWQgb2YgYCgheClbMV1gIGlzIGhhbmRsZWQgYnkgdGhlIGZhY3QgdGhhdCB0aGUgcGFyc2VyXG4vLyBmdW5jdGlvbiB0aGF0IHBhcnNlcyB1bmFyeSBwcmVmaXggb3BlcmF0b3JzIGlzIGNhbGxlZCBmaXJzdCwgYW5kXG4vLyBpbiB0dXJuIGNhbGxzIHRoZSBmdW5jdGlvbiB0aGF0IHBhcnNlcyBgW11gIHN1YnNjcmlwdHMgXHUyMDE0IHRoYXRcbi8vIHdheSwgaXQnbGwgcmVjZWl2ZSB0aGUgbm9kZSBmb3IgYHhbMV1gIGFscmVhZHkgcGFyc2VkLCBhbmQgd3JhcHNcbi8vICp0aGF0KiBpbiB0aGUgdW5hcnkgb3BlcmF0b3Igbm9kZS5cbi8vXG4vLyBBY29ybiB1c2VzIGFuIFtvcGVyYXRvciBwcmVjZWRlbmNlIHBhcnNlcl1bb3BwXSB0byBoYW5kbGUgYmluYXJ5XG4vLyBvcGVyYXRvciBwcmVjZWRlbmNlLCBiZWNhdXNlIGl0IGlzIG11Y2ggbW9yZSBjb21wYWN0IHRoYW4gdXNpbmdcbi8vIHRoZSB0ZWNobmlxdWUgb3V0bGluZWQgYWJvdmUsIHdoaWNoIHVzZXMgZGlmZmVyZW50LCBuZXN0aW5nXG4vLyBmdW5jdGlvbnMgdG8gc3BlY2lmeSBwcmVjZWRlbmNlLCBmb3IgYWxsIG9mIHRoZSB0ZW4gYmluYXJ5XG4vLyBwcmVjZWRlbmNlIGxldmVscyB0aGF0IEphdmFTY3JpcHQgZGVmaW5lcy5cbi8vXG4vLyBbb3BwXTogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9PcGVyYXRvci1wcmVjZWRlbmNlX3BhcnNlclxuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfZmxvdyA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvZmxvdycpO1xudmFyIF9pbmRleCA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvanN4L2luZGV4Jyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGx1Z2lucy90eXBlcycpO1xuXG5cblxuXG5cblxuXG5cblxudmFyIF90eXBlc2NyaXB0ID0gcmVxdWlyZSgnLi4vcGx1Z2lucy90eXBlc2NyaXB0Jyk7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG52YXIgX2luZGV4MyA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9pbmRleCcpO1xudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9rZXl3b3JkcycpO1xudmFyIF9zdGF0ZSA9IHJlcXVpcmUoJy4uL3Rva2VuaXplci9zdGF0ZScpO1xudmFyIF90eXBlczMgPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvdHlwZXMnKTtcbnZhciBfY2hhcmNvZGVzID0gcmVxdWlyZSgnLi4vdXRpbC9jaGFyY29kZXMnKTtcbnZhciBfaWRlbnRpZmllciA9IHJlcXVpcmUoJy4uL3V0aWwvaWRlbnRpZmllcicpO1xudmFyIF9iYXNlID0gcmVxdWlyZSgnLi9iYXNlJyk7XG5cblxuXG5cblxuXG52YXIgX2x2YWwgPSByZXF1aXJlKCcuL2x2YWwnKTtcblxuXG5cblxuXG5cblxudmFyIF9zdGF0ZW1lbnQgPSByZXF1aXJlKCcuL3N0YXRlbWVudCcpO1xuXG5cblxuXG5cblxuXG5cblxudmFyIF91dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbiBjbGFzcyBTdG9wU3RhdGUge1xuICBcbiAgY29uc3RydWN0b3Ioc3RvcCkge1xuICAgIHRoaXMuc3RvcCA9IHN0b3A7XG4gIH1cbn0gZXhwb3J0cy5TdG9wU3RhdGUgPSBTdG9wU3RhdGU7XG5cbi8vICMjIyBFeHByZXNzaW9uIHBhcnNpbmdcblxuLy8gVGhlc2UgbmVzdCwgZnJvbSB0aGUgbW9zdCBnZW5lcmFsIGV4cHJlc3Npb24gdHlwZSBhdCB0aGUgdG9wIHRvXG4vLyAnYXRvbWljJywgbm9uZGl2aXNpYmxlIGV4cHJlc3Npb24gdHlwZXMgYXQgdGhlIGJvdHRvbS4gTW9zdCBvZlxuLy8gdGhlIGZ1bmN0aW9ucyB3aWxsIHNpbXBseSBsZXQgdGhlIGZ1bmN0aW9uIChzKSBiZWxvdyB0aGVtIHBhcnNlLFxuLy8gYW5kLCAqaWYqIHRoZSBzeW50YWN0aWMgY29uc3RydWN0IHRoZXkgaGFuZGxlIGlzIHByZXNlbnQsIHdyYXBcbi8vIHRoZSBBU1Qgbm9kZSB0aGF0IHRoZSBpbm5lciBwYXJzZXIgZ2F2ZSB0aGVtIGluIGFub3RoZXIgbm9kZS5cbiBmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24obm9JbiA9IGZhbHNlKSB7XG4gIHBhcnNlTWF5YmVBc3NpZ24obm9Jbik7XG4gIGlmIChfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICB3aGlsZSAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgICAgcGFyc2VNYXliZUFzc2lnbihub0luKTtcbiAgICB9XG4gIH1cbn0gZXhwb3J0cy5wYXJzZUV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb247XG5cbi8qKlxuICogbm9JbiBpcyB1c2VkIHdoZW4gcGFyc2luZyBhIGZvciBsb29wIHNvIHRoYXQgd2UgZG9uJ3QgaW50ZXJwcmV0IGEgZm9sbG93aW5nIFwiaW5cIiBhcyB0aGUgYmluYXJ5XG4gKiBvcGVyYXRpb3IuXG4gKiBpc1dpdGhpblBhcmVucyBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgd2UncmUgcGFyc2luZyBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSBhIGNvbW1hIGV4cHJlc3Npb25cbiAqIG9yIG1pZ2h0IGJlIGFuIGFycm93IGZ1bmN0aW9uIG9yIG1pZ2h0IGJlIGEgRmxvdyB0eXBlIGFzc2VydGlvbiAod2hpY2ggcmVxdWlyZXMgZXhwbGljaXQgcGFyZW5zKS5cbiAqIEluIHRoZXNlIGNhc2VzLCB3ZSBzaG91bGQgYWxsb3cgOiBhbmQgPzogYWZ0ZXIgdGhlIGluaXRpYWwgXCJsZWZ0XCIgcGFydC5cbiAqL1xuIGZ1bmN0aW9uIHBhcnNlTWF5YmVBc3NpZ24obm9JbiA9IGZhbHNlLCBpc1dpdGhpblBhcmVucyA9IGZhbHNlKSB7XG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgcmV0dXJuIF90eXBlc2NyaXB0LnRzUGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgbm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICByZXR1cm4gX2Zsb3cuZmxvd1BhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9XG59IGV4cG9ydHMucGFyc2VNYXliZUFzc2lnbiA9IHBhcnNlTWF5YmVBc3NpZ247XG5cbi8vIFBhcnNlIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbi4gVGhpcyBpbmNsdWRlcyBhcHBsaWNhdGlvbnMgb2Zcbi8vIG9wZXJhdG9ycyBsaWtlIGArPWAuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gd2FzIGFuIGFycm93IGZ1bmN0aW9uLlxuIGZ1bmN0aW9uIGJhc2VQYXJzZU1heWJlQXNzaWduKG5vSW4sIGlzV2l0aGluUGFyZW5zKSB7XG4gIGlmIChfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5feWllbGQpKSB7XG4gICAgcGFyc2VZaWVsZCgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlbkwpIHx8IF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLm5hbWUpIHx8IF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLl95aWVsZCkpIHtcbiAgICBfYmFzZS5zdGF0ZS5wb3RlbnRpYWxBcnJvd0F0ID0gX2Jhc2Uuc3RhdGUuc3RhcnQ7XG4gIH1cblxuICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlTWF5YmVDb25kaXRpb25hbChub0luKTtcbiAgaWYgKGlzV2l0aGluUGFyZW5zKSB7XG4gICAgcGFyc2VQYXJlbkl0ZW0oKTtcbiAgfVxuICBpZiAoX2Jhc2Uuc3RhdGUudHlwZSAmIF90eXBlczMuVG9rZW5UeXBlLklTX0FTU0lHTikge1xuICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBwYXJzZU1heWJlQXNzaWduKG5vSW4pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gd2FzQXJyb3c7XG59IGV4cG9ydHMuYmFzZVBhcnNlTWF5YmVBc3NpZ24gPSBiYXNlUGFyc2VNYXliZUFzc2lnbjtcblxuLy8gUGFyc2UgYSB0ZXJuYXJ5IGNvbmRpdGlvbmFsIChgPzpgKSBvcGVyYXRvci5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiB3YXMgYW4gYXJyb3cgZnVuY3Rpb24uXG5mdW5jdGlvbiBwYXJzZU1heWJlQ29uZGl0aW9uYWwobm9Jbikge1xuICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlRXhwck9wcyhub0luKTtcbiAgaWYgKHdhc0Fycm93KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcGFyc2VDb25kaXRpb25hbChub0luKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbmRpdGlvbmFsKG5vSW4pIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgfHwgX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIF90eXBlcy50eXBlZFBhcnNlQ29uZGl0aW9uYWwuY2FsbCh2b2lkIDAsIG5vSW4pO1xuICB9IGVsc2Uge1xuICAgIGJhc2VQYXJzZUNvbmRpdGlvbmFsKG5vSW4pO1xuICB9XG59XG5cbiBmdW5jdGlvbiBiYXNlUGFyc2VDb25kaXRpb25hbChub0luKSB7XG4gIGlmIChfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucXVlc3Rpb24pKSB7XG4gICAgcGFyc2VNYXliZUFzc2lnbigpO1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuY29sb24pO1xuICAgIHBhcnNlTWF5YmVBc3NpZ24obm9Jbik7XG4gIH1cbn0gZXhwb3J0cy5iYXNlUGFyc2VDb25kaXRpb25hbCA9IGJhc2VQYXJzZUNvbmRpdGlvbmFsO1xuXG4vLyBTdGFydCB0aGUgcHJlY2VkZW5jZSBwYXJzZXIuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgYW4gYXJyb3cgZnVuY3Rpb25cbmZ1bmN0aW9uIHBhcnNlRXhwck9wcyhub0luKSB7XG4gIGNvbnN0IHN0YXJ0VG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIGNvbnN0IHdhc0Fycm93ID0gcGFyc2VNYXliZVVuYXJ5KCk7XG4gIGlmICh3YXNBcnJvdykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHBhcnNlRXhwck9wKHN0YXJ0VG9rZW5JbmRleCwgLTEsIG5vSW4pO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIFBhcnNlIGJpbmFyeSBvcGVyYXRvcnMgd2l0aCB0aGUgb3BlcmF0b3IgcHJlY2VkZW5jZSBwYXJzaW5nXG4vLyBhbGdvcml0aG0uIGBsZWZ0YCBpcyB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgdGhlIG9wZXJhdG9yLlxuLy8gYG1pblByZWNgIHByb3ZpZGVzIGNvbnRleHQgdGhhdCBhbGxvd3MgdGhlIGZ1bmN0aW9uIHRvIHN0b3AgYW5kXG4vLyBkZWZlciBmdXJ0aGVyIHBhcnNlciB0byBvbmUgb2YgaXRzIGNhbGxlcnMgd2hlbiBpdCBlbmNvdW50ZXJzIGFuXG4vLyBvcGVyYXRvciB0aGF0IGhhcyBhIGxvd2VyIHByZWNlZGVuY2UgdGhhbiB0aGUgc2V0IGl0IGlzIHBhcnNpbmcuXG5mdW5jdGlvbiBwYXJzZUV4cHJPcChzdGFydFRva2VuSW5kZXgsIG1pblByZWMsIG5vSW4pIHtcbiAgaWYgKFxuICAgIF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgJiZcbiAgICAoX3R5cGVzMy5Ub2tlblR5cGUuX2luICYgX3R5cGVzMy5Ub2tlblR5cGUuUFJFQ0VERU5DRV9NQVNLKSA+IG1pblByZWMgJiZcbiAgICAhX3V0aWwuaGFzUHJlY2VkaW5nTGluZUJyZWFrLmNhbGwodm9pZCAwLCApICYmXG4gICAgKF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXMpIHx8IF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc2F0aXNmaWVzKSlcbiAgKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4My5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICAgIF90eXBlc2NyaXB0LnRzUGFyc2VUeXBlLmNhbGwodm9pZCAwLCApO1xuICAgIF9pbmRleDMucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgX2luZGV4My5yZXNjYW5fZ3QuY2FsbCh2b2lkIDAsICk7XG4gICAgcGFyc2VFeHByT3Aoc3RhcnRUb2tlbkluZGV4LCBtaW5QcmVjLCBub0luKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcmVjID0gX2Jhc2Uuc3RhdGUudHlwZSAmIF90eXBlczMuVG9rZW5UeXBlLlBSRUNFREVOQ0VfTUFTSztcbiAgaWYgKHByZWMgPiAwICYmICghbm9JbiB8fCAhX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuX2luKSkpIHtcbiAgICBpZiAocHJlYyA+IG1pblByZWMpIHtcbiAgICAgIGNvbnN0IG9wID0gX2Jhc2Uuc3RhdGUudHlwZTtcbiAgICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIGlmIChvcCA9PT0gX3R5cGVzMy5Ub2tlblR5cGUubnVsbGlzaENvYWxlc2NpbmcpIHtcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5udWxsaXNoU3RhcnRJbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmhzU3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgICAgIHBhcnNlTWF5YmVVbmFyeSgpO1xuICAgICAgLy8gRXh0ZW5kIHRoZSByaWdodCBvcGVyYW5kIG9mIHRoaXMgb3BlcmF0b3IgaWYgcG9zc2libGUuXG4gICAgICBwYXJzZUV4cHJPcChyaHNTdGFydFRva2VuSW5kZXgsIG9wICYgX3R5cGVzMy5Ub2tlblR5cGUuSVNfUklHSFRfQVNTT0NJQVRJVkUgPyBwcmVjIC0gMSA6IHByZWMsIG5vSW4pO1xuICAgICAgaWYgKG9wID09PSBfdHlwZXMzLlRva2VuVHlwZS5udWxsaXNoQ29hbGVzY2luZykge1xuICAgICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbc3RhcnRUb2tlbkluZGV4XS5udW1OdWxsaXNoQ29hbGVzY2VTdGFydHMrKztcbiAgICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5udW1OdWxsaXNoQ29hbGVzY2VFbmRzKys7XG4gICAgICB9XG4gICAgICAvLyBDb250aW51ZSB3aXRoIGFueSBmdXR1cmUgb3BlcmF0b3IgaG9sZGluZyB0aGlzIGV4cHJlc3Npb24gYXMgdGhlIGxlZnQgb3BlcmFuZC5cbiAgICAgIHBhcnNlRXhwck9wKHN0YXJ0VG9rZW5JbmRleCwgbWluUHJlYywgbm9Jbik7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhcnNlIHVuYXJ5IG9wZXJhdG9ycywgYm90aCBwcmVmaXggYW5kIHBvc3RmaXguXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgYW4gYXJyb3cgZnVuY3Rpb24uXG4gZnVuY3Rpb24gcGFyc2VNYXliZVVuYXJ5KCkge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCAmJiAhX2Jhc2UuaXNKU1hFbmFibGVkICYmIF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlVHlwZUFzc2VydGlvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKFxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpICYmXG4gICAgX2luZGV4My5sb29rYWhlYWRDaGFyQ29kZS5jYWxsKHZvaWQgMCwgKSA9PT0gX2NoYXJjb2Rlcy5jaGFyQ29kZXMubGVmdEN1cmx5QnJhY2UgJiZcbiAgICAhX3V0aWwuaGFzRm9sbG93aW5nTGluZUJyZWFrLmNhbGwodm9pZCAwLCApXG4gICkge1xuICAgIHBhcnNlTW9kdWxlRXhwcmVzc2lvbigpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoX2Jhc2Uuc3RhdGUudHlwZSAmIF90eXBlczMuVG9rZW5UeXBlLklTX1BSRUZJWCkge1xuICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBwYXJzZU1heWJlVW5hcnkoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlRXhwclN1YnNjcmlwdHMoKTtcbiAgaWYgKHdhc0Fycm93KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgd2hpbGUgKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMzLlRva2VuVHlwZS5JU19QT1NURklYICYmICFfdXRpbC5jYW5JbnNlcnRTZW1pY29sb24uY2FsbCh2b2lkIDAsICkpIHtcbiAgICAvLyBUaGUgdG9rZW5pemVyIGNhbGxzIGV2ZXJ5dGhpbmcgYSBwcmVpbmNyZW1lbnQsIHNvIG1ha2UgaXQgYSBwb3N0aW5jcmVtZW50IHdoZW5cbiAgICAvLyB3ZSBzZWUgaXQgaW4gdGhhdCBjb250ZXh0LlxuICAgIGlmIChfYmFzZS5zdGF0ZS50eXBlID09PSBfdHlwZXMzLlRva2VuVHlwZS5wcmVJbmNEZWMpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnR5cGUgPSBfdHlwZXMzLlRva2VuVHlwZS5wb3N0SW5jRGVjO1xuICAgIH1cbiAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSBleHBvcnRzLnBhcnNlTWF5YmVVbmFyeSA9IHBhcnNlTWF5YmVVbmFyeTtcblxuLy8gUGFyc2UgY2FsbCwgZG90LCBhbmQgYFtdYC1zdWJzY3JpcHQgZXhwcmVzc2lvbnMuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgYW4gYXJyb3cgZnVuY3Rpb24uXG4gZnVuY3Rpb24gcGFyc2VFeHByU3Vic2NyaXB0cygpIHtcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgY29uc3Qgd2FzQXJyb3cgPSBwYXJzZUV4cHJBdG9tKCk7XG4gIGlmICh3YXNBcnJvdykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHBhcnNlU3Vic2NyaXB0cyhzdGFydFRva2VuSW5kZXgpO1xuICAvLyBJZiB0aGVyZSB3YXMgYW55IG9wdGlvbmFsIGNoYWluIG9wZXJhdGlvbiwgdGhlIHN0YXJ0IHRva2VuIHdvdWxkIGJlIG1hcmtlZFxuICAvLyBhcyBzdWNoLCBzbyBhbHNvIG1hcmsgdGhlIGVuZCBub3cuXG4gIGlmIChfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoID4gc3RhcnRUb2tlbkluZGV4ICYmIF9iYXNlLnN0YXRlLnRva2Vuc1tzdGFydFRva2VuSW5kZXhdLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc09wdGlvbmFsQ2hhaW5FbmQgPSB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0gZXhwb3J0cy5wYXJzZUV4cHJTdWJzY3JpcHRzID0gcGFyc2VFeHByU3Vic2NyaXB0cztcblxuZnVuY3Rpb24gcGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscyA9IGZhbHNlKSB7XG4gIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1BhcnNlU3Vic2NyaXB0cy5jYWxsKHZvaWQgMCwgc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzKTtcbiAgfSBlbHNlIHtcbiAgICBiYXNlUGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscyk7XG4gIH1cbn1cblxuIGZ1bmN0aW9uIGJhc2VQYXJzZVN1YnNjcmlwdHMoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzID0gZmFsc2UpIHtcbiAgY29uc3Qgc3RvcFN0YXRlID0gbmV3IFN0b3BTdGF0ZShmYWxzZSk7XG4gIGRvIHtcbiAgICBwYXJzZVN1YnNjcmlwdChzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMsIHN0b3BTdGF0ZSk7XG4gIH0gd2hpbGUgKCFzdG9wU3RhdGUuc3RvcCAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpO1xufSBleHBvcnRzLmJhc2VQYXJzZVN1YnNjcmlwdHMgPSBiYXNlUGFyc2VTdWJzY3JpcHRzO1xuXG5mdW5jdGlvbiBwYXJzZVN1YnNjcmlwdChzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMsIHN0b3BTdGF0ZSkge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIF90eXBlc2NyaXB0LnRzUGFyc2VTdWJzY3JpcHQuY2FsbCh2b2lkIDAsIHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbiAgfSBlbHNlIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1BhcnNlU3Vic2NyaXB0LmNhbGwodm9pZCAwLCBzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMsIHN0b3BTdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlU3Vic2NyaXB0KHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbiAgfVxufVxuXG4vKiogU2V0ICdzdGF0ZS5zdG9wID0gdHJ1ZScgdG8gaW5kaWNhdGUgdGhhdCB3ZSBzaG91bGQgc3RvcCBwYXJzaW5nIHN1YnNjcmlwdHMuICovXG4gZnVuY3Rpb24gYmFzZVBhcnNlU3Vic2NyaXB0KFxuICBzdGFydFRva2VuSW5kZXgsXG4gIG5vQ2FsbHMsXG4gIHN0b3BTdGF0ZSxcbikge1xuICBpZiAoIW5vQ2FsbHMgJiYgX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmRvdWJsZUNvbG9uKSkge1xuICAgIHBhcnNlTm9DYWxsRXhwcigpO1xuICAgIHN0b3BTdGF0ZS5zdG9wID0gdHJ1ZTtcbiAgICAvLyBQcm9wYWdhdGUgc3RhcnRUb2tlbkluZGV4IHNvIHRoYXQgYGE6OmI/LigpYCB3aWxsIGtlZXAgYGFgIGFzIHRoZSBmaXJzdCB0b2tlbi4gV2UgbWF5IHdhbnRcbiAgICAvLyB0byByZXZpc2l0IHRoaXMgaW4gdGhlIGZ1dHVyZSB3aGVuIGZ1bGx5IHN1cHBvcnRpbmcgYmluZCBzeW50YXguXG4gICAgcGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscyk7XG4gIH0gZWxzZSBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucXVlc3Rpb25Eb3QpKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW3N0YXJ0VG9rZW5JbmRleF0uaXNPcHRpb25hbENoYWluU3RhcnQgPSB0cnVlO1xuICAgIGlmIChub0NhbGxzICYmIF9pbmRleDMubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKSA9PT0gX3R5cGVzMy5Ub2tlblR5cGUucGFyZW5MKSB7XG4gICAgICBzdG9wU3RhdGUuc3RvcCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnN1YnNjcmlwdFN0YXJ0SW5kZXggPSBzdGFydFRva2VuSW5kZXg7XG5cbiAgICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgICAgcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJyYWNrZXRSKTtcbiAgICB9IGVsc2UgaWYgKF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlTWF5YmVQcml2YXRlTmFtZSgpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuZG90KSkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uc3Vic2NyaXB0U3RhcnRJbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcbiAgICBwYXJzZU1heWJlUHJpdmF0ZU5hbWUoKTtcbiAgfSBlbHNlIGlmIChfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2tldEwpKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2tldFIpO1xuICB9IGVsc2UgaWYgKCFub0NhbGxzICYmIF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICBpZiAoYXRQb3NzaWJsZUFzeW5jKCkpIHtcbiAgICAgIC8vIFdlIHNlZSBcImFzeW5jXCIsIGJ1dCBpdCdzIHBvc3NpYmxlIGl0J3MgYSB1c2FnZSBvZiB0aGUgbmFtZSBcImFzeW5jXCIuIFBhcnNlIGFzIGlmIGl0J3MgYVxuICAgICAgLy8gZnVuY3Rpb24gY2FsbCwgYW5kIGlmIHdlIHNlZSBhbiBhcnJvdyBsYXRlciwgYmFja3RyYWNrIGFuZCByZS1wYXJzZSBhcyBhIHBhcmFtZXRlciBsaXN0LlxuICAgICAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuICAgICAgY29uc3QgYXN5bmNTdGFydFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuXG4gICAgICBjb25zdCBjYWxsQ29udGV4dElkID0gX2Jhc2UuZ2V0TmV4dENvbnRleHRJZC5jYWxsKHZvaWQgMCwgKTtcblxuICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjYWxsQ29udGV4dElkO1xuICAgICAgcGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygpO1xuICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjYWxsQ29udGV4dElkO1xuXG4gICAgICBpZiAoc2hvdWxkUGFyc2VBc3luY0Fycm93KCkpIHtcbiAgICAgICAgLy8gV2UgaGl0IGFuIGFycm93LCBzbyBiYWNrdHJhY2sgYW5kIHN0YXJ0IGFnYWluIHBhcnNpbmcgZnVuY3Rpb24gcGFyYW1ldGVycy5cbiAgICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICAgIHN0b3BTdGF0ZS5zdG9wID0gdHJ1ZTtcbiAgICAgICAgX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aCsrO1xuXG4gICAgICAgIF9zdGF0ZW1lbnQucGFyc2VGdW5jdGlvblBhcmFtcy5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgcGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uKGFzeW5jU3RhcnRUb2tlbkluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuICAgICAgY29uc3QgY2FsbENvbnRleHRJZCA9IF9iYXNlLmdldE5leHRDb250ZXh0SWQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNhbGxDb250ZXh0SWQ7XG4gICAgICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCk7XG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNhbGxDb250ZXh0SWQ7XG4gICAgfVxuICB9IGVsc2UgaWYgKF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJhY2tRdW90ZSkpIHtcbiAgICAvLyBUYWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbi5cbiAgICBwYXJzZVRlbXBsYXRlKCk7XG4gIH0gZWxzZSB7XG4gICAgc3RvcFN0YXRlLnN0b3AgPSB0cnVlO1xuICB9XG59IGV4cG9ydHMuYmFzZVBhcnNlU3Vic2NyaXB0ID0gYmFzZVBhcnNlU3Vic2NyaXB0O1xuXG4gZnVuY3Rpb24gYXRQb3NzaWJsZUFzeW5jKCkge1xuICAvLyBUaGlzIHdhcyBtYWRlIGxlc3Mgc3RyaWN0IHRoYW4gdGhlIG9yaWdpbmFsIHZlcnNpb24gdG8gYXZvaWQgcGFzc2luZyBhcm91bmQgbm9kZXMsIGJ1dCBpdFxuICAvLyBzaG91bGQgYmUgc2FmZSB0byBoYXZlIHJhcmUgZmFsc2UgcG9zaXRpdmVzIGhlcmUuXG4gIHJldHVybiAoXG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0dWFsS2V5d29yZCA9PT0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3luYyAmJlxuICAgICFfdXRpbC5jYW5JbnNlcnRTZW1pY29sb24uY2FsbCh2b2lkIDAsIClcbiAgKTtcbn0gZXhwb3J0cy5hdFBvc3NpYmxlQXN5bmMgPSBhdFBvc3NpYmxlQXN5bmM7XG5cbiBmdW5jdGlvbiBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCkge1xuICBsZXQgZmlyc3QgPSB0cnVlO1xuICB3aGlsZSAoIV9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlblIpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnBhcmVuUikpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VFeHByTGlzdEl0ZW0oZmFsc2UpO1xuICB9XG59IGV4cG9ydHMucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cyA9IHBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHM7XG5cbmZ1bmN0aW9uIHNob3VsZFBhcnNlQXN5bmNBcnJvdygpIHtcbiAgcmV0dXJuIF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmNvbG9uKSB8fCBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5hcnJvdyk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbihzdGFydFRva2VuSW5kZXgpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1N0YXJ0UGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBfZmxvdy5mbG93U3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5hcnJvdyk7XG4gIHBhcnNlQXJyb3dFeHByZXNzaW9uKHN0YXJ0VG9rZW5JbmRleCk7XG59XG5cbi8vIFBhcnNlIGEgbm8tY2FsbCBleHByZXNzaW9uIChsaWtlIGFyZ3VtZW50IG9mIGBuZXdgIG9yIGA6OmAgb3BlcmF0b3JzKS5cblxuZnVuY3Rpb24gcGFyc2VOb0NhbGxFeHByKCkge1xuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBwYXJzZUV4cHJBdG9tKCk7XG4gIHBhcnNlU3Vic2NyaXB0cyhzdGFydFRva2VuSW5kZXgsIHRydWUpO1xufVxuXG4vLyBQYXJzZSBhbiBhdG9taWMgZXhwcmVzc2lvbiBcdTIwMTQgZWl0aGVyIGEgc2luZ2xlIHRva2VuIHRoYXQgaXMgYW5cbi8vIGV4cHJlc3Npb24sIGFuIGV4cHJlc3Npb24gc3RhcnRlZCBieSBhIGtleXdvcmQgbGlrZSBgZnVuY3Rpb25gIG9yXG4vLyBgbmV3YCwgb3IgYW4gZXhwcmVzc2lvbiB3cmFwcGVkIGluIHB1bmN0dWF0aW9uIGxpa2UgYCgpYCwgYFtdYCxcbi8vIG9yIGB7fWAuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBhcnNlZCBleHByZXNzaW9uIHdhcyBhbiBhcnJvdyBmdW5jdGlvbi5cbiBmdW5jdGlvbiBwYXJzZUV4cHJBdG9tKCkge1xuICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLm1vZHVsbykpIHtcbiAgICAvLyBWOCBpbnRyaW5zaWMgZXhwcmVzc2lvbi4gSnVzdCBwYXJzZSB0aGUgaWRlbnRpZmllciwgYW5kIHRoZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGlzIHBhcnNlZFxuICAgIC8vIG5hdHVyYWxseS5cbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuanN4VGV4dCkgfHwgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuanN4RW1wdHlUZXh0KSkge1xuICAgIHBhcnNlTGl0ZXJhbCgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5sZXNzVGhhbikgJiYgX2Jhc2UuaXNKU1hFbmFibGVkKSB7XG4gICAgX2Jhc2Uuc3RhdGUudHlwZSA9IF90eXBlczMuVG9rZW5UeXBlLmpzeFRhZ1N0YXJ0O1xuICAgIF9pbmRleC5qc3hQYXJzZUVsZW1lbnQuY2FsbCh2b2lkIDAsICk7XG4gICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNhbkJlQXJyb3cgPSBfYmFzZS5zdGF0ZS5wb3RlbnRpYWxBcnJvd0F0ID09PSBfYmFzZS5zdGF0ZS5zdGFydDtcbiAgc3dpdGNoIChfYmFzZS5zdGF0ZS50eXBlKSB7XG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5zbGFzaDpcbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLmFzc2lnbjpcbiAgICAgIF9pbmRleDMucmV0b2tlbml6ZVNsYXNoQXNSZWdleC5jYWxsKHZvaWQgMCwgKTtcbiAgICAvLyBGYWxsIHRocm91Z2guXG5cbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLl9zdXBlcjpcbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLl90aGlzOlxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUucmVnZXhwOlxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUubnVtOlxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuYmlnaW50OlxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuZGVjaW1hbDpcbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLnN0cmluZzpcbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLl9udWxsOlxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuX3RydWU6XG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5fZmFsc2U6XG4gICAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLl9pbXBvcnQ6XG4gICAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgICAvLyBpbXBvcnQubWV0YVxuICAgICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMzLlRva2VuVHlwZS5uYW1lO1xuICAgICAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5uYW1lOiB7XG4gICAgICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgY29uc3QgZnVuY3Rpb25TdGFydCA9IF9iYXNlLnN0YXRlLnN0YXJ0O1xuICAgICAgY29uc3QgY29udGV4dHVhbEtleXdvcmQgPSBfYmFzZS5zdGF0ZS5jb250ZXh0dWFsS2V5d29yZDtcbiAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgICAgaWYgKGNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2F3YWl0KSB7XG4gICAgICAgIHBhcnNlQXdhaXQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXN5bmMgJiZcbiAgICAgICAgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuX2Z1bmN0aW9uKSAmJlxuICAgICAgICAhX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApXG4gICAgICApIHtcbiAgICAgICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgICBfc3RhdGVtZW50LnBhcnNlRnVuY3Rpb24uY2FsbCh2b2lkIDAsIGZ1bmN0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgY2FuQmVBcnJvdyAmJlxuICAgICAgICBjb250ZXh0dWFsS2V5d29yZCA9PT0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3luYyAmJlxuICAgICAgICAhX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApICYmXG4gICAgICAgIF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLm5hbWUpXG4gICAgICApIHtcbiAgICAgICAgX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aCsrO1xuICAgICAgICBfbHZhbC5wYXJzZUJpbmRpbmdJZGVudGlmaWVyLmNhbGwodm9pZCAwLCBmYWxzZSk7XG4gICAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYXJyb3cpO1xuICAgICAgICAvLyBsZXQgZm9vID0gYXN5bmMgYmFyID0+IHt9O1xuICAgICAgICBwYXJzZUFycm93RXhwcmVzc2lvbihzdGFydFRva2VuSW5kZXgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuX2RvKSAmJiAhX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApKSB7XG4gICAgICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgX3N0YXRlbWVudC5wYXJzZUJsb2NrLmNhbGwodm9pZCAwLCApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChjYW5CZUFycm93ICYmICFfdXRpbC5jYW5JbnNlcnRTZW1pY29sb24uY2FsbCh2b2lkIDAsICkgJiYgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYXJyb3cpKSB7XG4gICAgICAgIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgICAgICAgX2x2YWwubWFya1ByaW9yQmluZGluZ0lkZW50aWZpZXIuY2FsbCh2b2lkIDAsIGZhbHNlKTtcbiAgICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5hcnJvdyk7XG4gICAgICAgIHBhcnNlQXJyb3dFeHByZXNzaW9uKHN0YXJ0VG9rZW5JbmRleCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gX2luZGV4My5JZGVudGlmaWVyUm9sZS5BY2Nlc3M7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5fZG86IHtcbiAgICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIF9zdGF0ZW1lbnQucGFyc2VCbG9jay5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLnBhcmVuTDoge1xuICAgICAgY29uc3Qgd2FzQXJyb3cgPSBwYXJzZVBhcmVuQW5kRGlzdGluZ3Vpc2hFeHByZXNzaW9uKGNhbkJlQXJyb3cpO1xuICAgICAgcmV0dXJuIHdhc0Fycm93O1xuICAgIH1cblxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2tldEw6XG4gICAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBwYXJzZUV4cHJMaXN0KF90eXBlczMuVG9rZW5UeXBlLmJyYWNrZXRSLCB0cnVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2VMOlxuICAgICAgcGFyc2VPYmooZmFsc2UsIGZhbHNlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuX2Z1bmN0aW9uOlxuICAgICAgcGFyc2VGdW5jdGlvbkV4cHJlc3Npb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuYXQ6XG4gICAgICBfc3RhdGVtZW50LnBhcnNlRGVjb3JhdG9ycy5jYWxsKHZvaWQgMCwgKTtcbiAgICAvLyBGYWxsIHRocm91Z2guXG5cbiAgICBjYXNlIF90eXBlczMuVG9rZW5UeXBlLl9jbGFzczpcbiAgICAgIF9zdGF0ZW1lbnQucGFyc2VDbGFzcy5jYWxsKHZvaWQgMCwgZmFsc2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5fbmV3OlxuICAgICAgcGFyc2VOZXcoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNhc2UgX3R5cGVzMy5Ub2tlblR5cGUuYmFja1F1b3RlOlxuICAgICAgcGFyc2VUZW1wbGF0ZSgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5kb3VibGVDb2xvbjoge1xuICAgICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgcGFyc2VOb0NhbGxFeHByKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY2FzZSBfdHlwZXMzLlRva2VuVHlwZS5oYXNoOiB7XG4gICAgICBjb25zdCBjb2RlID0gX2luZGV4My5sb29rYWhlYWRDaGFyQ29kZS5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIGlmIChfaWRlbnRpZmllci5JU19JREVOVElGSUVSX1NUQVJUW2NvZGVdIHx8IGNvZGUgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmJhY2tzbGFzaCkge1xuICAgICAgICBwYXJzZU1heWJlUHJpdmF0ZU5hbWUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIH1cbiAgICAgIC8vIFNtYXJ0IHBpcGVsaW5lIHRvcGljIHJlZmVyZW5jZS5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSBleHBvcnRzLnBhcnNlRXhwckF0b20gPSBwYXJzZUV4cHJBdG9tO1xuXG5mdW5jdGlvbiBwYXJzZU1heWJlUHJpdmF0ZU5hbWUoKSB7XG4gIF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5oYXNoKTtcbiAgcGFyc2VJZGVudGlmaWVyKCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCkge1xuICBjb25zdCBmdW5jdGlvblN0YXJ0ID0gX2Jhc2Uuc3RhdGUuc3RhcnQ7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICAvLyBmdW5jdGlvbi5zZW50XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIH1cbiAgX3N0YXRlbWVudC5wYXJzZUZ1bmN0aW9uLmNhbGwodm9pZCAwLCBmdW5jdGlvblN0YXJ0LCBmYWxzZSk7XG59XG5cbiBmdW5jdGlvbiBwYXJzZUxpdGVyYWwoKSB7XG4gIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy5wYXJzZUxpdGVyYWwgPSBwYXJzZUxpdGVyYWw7XG5cbiBmdW5jdGlvbiBwYXJzZVBhcmVuRXhwcmVzc2lvbigpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlbkwpO1xuICBwYXJzZUV4cHJlc3Npb24oKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlblIpO1xufSBleHBvcnRzLnBhcnNlUGFyZW5FeHByZXNzaW9uID0gcGFyc2VQYXJlbkV4cHJlc3Npb247XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBhcnJvdyBleHByZXNzaW9uLlxuZnVuY3Rpb24gcGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbihjYW5CZUFycm93KSB7XG4gIC8vIEFzc3VtZSB0aGlzIGlzIGEgbm9ybWFsIHBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiwgYnV0IGlmIHdlIHNlZSBhbiBhcnJvdywgd2UnbGwgYmFpbCBhbmRcbiAgLy8gc3RhcnQgb3ZlciBhcyBhIHBhcmFtZXRlciBsaXN0LlxuICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG5cbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlbkwpO1xuXG4gIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgd2hpbGUgKCFfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlblIpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucGFyZW5SKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuZWxsaXBzaXMpKSB7XG4gICAgICBfbHZhbC5wYXJzZVJlc3QuY2FsbCh2b2lkIDAsIGZhbHNlIC8qIGlzQmxvY2tTY29wZSAqLyk7XG4gICAgICBwYXJzZVBhcmVuSXRlbSgpO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlTWF5YmVBc3NpZ24oZmFsc2UsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucGFyZW5SKTtcblxuICBpZiAoY2FuQmVBcnJvdyAmJiBzaG91bGRQYXJzZUFycm93KCkpIHtcbiAgICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlQXJyb3coKTtcbiAgICBpZiAod2FzQXJyb3cpIHtcbiAgICAgIC8vIEl0IHdhcyBhbiBhcnJvdyBmdW5jdGlvbiB0aGlzIHdob2xlIHRpbWUsIHNvIHN0YXJ0IG92ZXIgYW5kIHBhcnNlIGl0IGFzIHBhcmFtcyBzbyB0aGF0IHdlXG4gICAgICAvLyBnZXQgcHJvcGVyIHRva2VuIGFubm90YXRpb25zLlxuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoKys7XG4gICAgICAvLyBEb24ndCBzcGVjaWZ5IGEgY29udGV4dCBJRCBiZWNhdXNlIGFycm93IGZ1bmN0aW9ucyBkb24ndCBuZWVkIGEgY29udGV4dCBJRC5cbiAgICAgIF9zdGF0ZW1lbnQucGFyc2VGdW5jdGlvblBhcmFtcy5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIHBhcnNlQXJyb3coKTtcbiAgICAgIHBhcnNlQXJyb3dFeHByZXNzaW9uKHN0YXJ0VG9rZW5JbmRleCk7XG4gICAgICBpZiAoX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgLy8gTmV2ZXJtaW5kISBUaGlzIG11c3QgaGF2ZSBiZWVuIHNvbWV0aGluZyB0aGF0IGxvb2tzIHZlcnkgbXVjaCBsaWtlIGFuXG4gICAgICAgIC8vIGFycm93IGZ1bmN0aW9uIGJ1dCB3aGVyZSBpdHMgXCJwYXJhbWV0ZXIgbGlzdFwiIGlzbid0IGFjdHVhbGx5IGEgdmFsaWRcbiAgICAgICAgLy8gcGFyYW1ldGVyIGxpc3QuIEZvcmNlIG5vbi1hcnJvdyBwYXJzaW5nLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FsYW5ncGllcmNlL3N1Y3Jhc2UvaXNzdWVzLzY2NiBmb3IgYW4gZXhhbXBsZS5cbiAgICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICAgIHBhcnNlUGFyZW5BbmREaXN0aW5ndWlzaEV4cHJlc3Npb24oZmFsc2UpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFBhcnNlQXJyb3coKSB7XG4gIHJldHVybiBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5jb2xvbikgfHwgIV91dGlsLmNhbkluc2VydFNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbn1cblxuLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIHdhcyBhbiBhcnJvdyB0b2tlbi5cbiBmdW5jdGlvbiBwYXJzZUFycm93KCkge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHJldHVybiBfdHlwZXNjcmlwdC50c1BhcnNlQXJyb3cuY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIHJldHVybiBfZmxvdy5mbG93UGFyc2VBcnJvdy5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmFycm93KTtcbiAgfVxufSBleHBvcnRzLnBhcnNlQXJyb3cgPSBwYXJzZUFycm93O1xuXG5mdW5jdGlvbiBwYXJzZVBhcmVuSXRlbSgpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgfHwgX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIF90eXBlcy50eXBlZFBhcnNlUGFyZW5JdGVtLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbi8vIE5ldydzIHByZWNlZGVuY2UgaXMgc2xpZ2h0bHkgdHJpY2t5LiBJdCBtdXN0IGFsbG93IGl0cyBhcmd1bWVudCB0b1xuLy8gYmUgYSBgW11gIG9yIGRvdCBzdWJzY3JpcHQgZXhwcmVzc2lvbiwgYnV0IG5vdCBhIGNhbGwgXHUyMDE0IGF0IGxlYXN0LFxuLy8gbm90IHdpdGhvdXQgd3JhcHBpbmcgaXQgaW4gcGFyZW50aGVzZXMuIFRodXMsIGl0IHVzZXMgdGhlIG5vQ2FsbHNcbi8vIGFyZ3VtZW50IHRvIHBhcnNlU3Vic2NyaXB0cyB0byBwcmV2ZW50IGl0IGZyb20gY29uc3VtaW5nIHRoZVxuLy8gYXJndW1lbnQgbGlzdC5cbmZ1bmN0aW9uIHBhcnNlTmV3KCkge1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLl9uZXcpO1xuICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICAvLyBuZXcudGFyZ2V0XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHBhcnNlTmV3Q2FsbGVlKCk7XG4gIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1N0YXJ0UGFyc2VOZXdBcmd1bWVudHMuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgaWYgKF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgcGFyc2VFeHByTGlzdChfdHlwZXMzLlRva2VuVHlwZS5wYXJlblIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlTmV3Q2FsbGVlKCkge1xuICBwYXJzZU5vQ2FsbEV4cHIoKTtcbiAgX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnF1ZXN0aW9uRG90KTtcbn1cblxuIGZ1bmN0aW9uIHBhcnNlVGVtcGxhdGUoKSB7XG4gIC8vIEZpbmlzaCBgLCByZWFkIHF1YXNpXG4gIF9pbmRleDMubmV4dFRlbXBsYXRlVG9rZW4uY2FsbCh2b2lkIDAsICk7XG4gIC8vIEZpbmlzaCBxdWFzaSwgcmVhZCAke1xuICBfaW5kZXgzLm5leHRUZW1wbGF0ZVRva2VuLmNhbGwodm9pZCAwLCApO1xuICB3aGlsZSAoIV9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJhY2tRdW90ZSkgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5kb2xsYXJCcmFjZUwpO1xuICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgIC8vIEZpbmlzaCB9LCByZWFkIHF1YXNpXG4gICAgX2luZGV4My5uZXh0VGVtcGxhdGVUb2tlbi5jYWxsKHZvaWQgMCwgKTtcbiAgICAvLyBGaW5pc2ggcXVhc2ksIHJlYWQgZWl0aGVyICR7IG9yIGBcbiAgICBfaW5kZXgzLm5leHRUZW1wbGF0ZVRva2VuLmNhbGwodm9pZCAwLCApO1xuICB9XG4gIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy5wYXJzZVRlbXBsYXRlID0gcGFyc2VUZW1wbGF0ZTtcblxuLy8gUGFyc2UgYW4gb2JqZWN0IGxpdGVyYWwgb3IgYmluZGluZyBwYXR0ZXJuLlxuIGZ1bmN0aW9uIHBhcnNlT2JqKGlzUGF0dGVybiwgaXNCbG9ja1Njb3BlKSB7XG4gIC8vIEF0dGFjaCBhIGNvbnRleHQgSUQgdG8gdGhlIG9iamVjdCBvcGVuIGFuZCBjbG9zZSBicmFjZSBhbmQgZWFjaCBvYmplY3Qga2V5LlxuICBjb25zdCBjb250ZXh0SWQgPSBfYmFzZS5nZXROZXh0Q29udGV4dElkLmNhbGwodm9pZCAwLCApO1xuICBsZXQgZmlyc3QgPSB0cnVlO1xuXG4gIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG5cbiAgd2hpbGUgKCFfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2VSKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuY29tbWEpO1xuICAgICAgaWYgKF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBpc0dlbmVyYXRvciA9IGZhbHNlO1xuICAgIGlmIChfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5lbGxpcHNpcykpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgX2x2YWwucGFyc2VTcHJlYWQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBpZiAoaXNQYXR0ZXJuKSB7XG4gICAgICAgIC8vIE1hcmsgcm9sZSB3aGVuIHRoZSBvbmx5IHRoaW5nIGJlaW5nIHNwcmVhZCBvdmVyIGlzIGFuIGlkZW50aWZpZXIuXG4gICAgICAgIGlmIChfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoID09PSBwcmV2aW91c0luZGV4ICsgMikge1xuICAgICAgICAgIF9sdmFsLm1hcmtQcmlvckJpbmRpbmdJZGVudGlmaWVyLmNhbGwodm9pZCAwLCBpc0Jsb2NrU2NvcGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzUGF0dGVybikge1xuICAgICAgaXNHZW5lcmF0b3IgPSBfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuc3Rhcik7XG4gICAgfVxuXG4gICAgaWYgKCFpc1BhdHRlcm4gJiYgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSkge1xuICAgICAgaWYgKGlzR2VuZXJhdG9yKSBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuXG4gICAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICAgIGlmIChcbiAgICAgICAgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuY29sb24pIHx8XG4gICAgICAgIF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnBhcmVuTCkgfHxcbiAgICAgICAgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2VSKSB8fFxuICAgICAgICBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5lcSkgfHxcbiAgICAgICAgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuY29tbWEpXG4gICAgICApIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIGtleSBjYWxsZWQgXCJhc3luY1wiIHJhdGhlciB0aGFuIGFuIGFzeW5jIGZ1bmN0aW9uLlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnN0YXIpKSB7XG4gICAgICAgICAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgICAgIGlzR2VuZXJhdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZVByb3BlcnR5TmFtZShjb250ZXh0SWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZVByb3BlcnR5TmFtZShjb250ZXh0SWQpO1xuICAgIH1cblxuICAgIHBhcnNlT2JqUHJvcFZhbHVlKGlzUGF0dGVybiwgaXNCbG9ja1Njb3BlLCBjb250ZXh0SWQpO1xuICB9XG5cbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG59IGV4cG9ydHMucGFyc2VPYmogPSBwYXJzZU9iajtcblxuZnVuY3Rpb24gaXNHZXR0ZXJPclNldHRlck1ldGhvZChpc1BhdHRlcm4pIHtcbiAgLy8gV2UgZ28gb2ZmIG9mIHRoZSBuZXh0IGFuZCBkb24ndCBib3RoZXIgY2hlY2tpbmcgaWYgdGhlIG5vZGUga2V5IGlzIGFjdHVhbGx5IFwiZ2V0XCIgb3IgXCJzZXRcIi5cbiAgLy8gVGhpcyBsZXRzIHVzIGF2b2lkIGdlbmVyYXRpbmcgYSBub2RlLCBhbmQgc2hvdWxkIG9ubHkgbWFrZSB0aGUgdmFsaWRhdGlvbiB3b3JzZS5cbiAgcmV0dXJuIChcbiAgICAhaXNQYXR0ZXJuICYmXG4gICAgKF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnN0cmluZykgfHwgLy8gZ2V0IFwic3RyaW5nXCIoKSB7fVxuICAgICAgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUubnVtKSB8fCAvLyBnZXQgMSgpIHt9XG4gICAgICBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5icmFja2V0TCkgfHwgLy8gZ2V0IFtcInN0cmluZ1wiXSgpIHt9XG4gICAgICBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5uYW1lKSB8fCAvLyBnZXQgZm9vKCkge31cbiAgICAgICEhKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMzLlRva2VuVHlwZS5JU19LRVlXT1JEKSkgLy8gZ2V0IGRlYnVnZ2VyKCkge31cbiAgKTtcbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgd2FzIGEgbWV0aG9kLlxuZnVuY3Rpb24gcGFyc2VPYmplY3RNZXRob2QoaXNQYXR0ZXJuLCBvYmplY3RDb250ZXh0SWQpIHtcbiAgLy8gV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBtb2RpZmllcnMgYmVjYXVzZSBvYmplY3QgbWV0aG9kcyBjYW4ndCBoYXZlIG9wdGlvbmFsIGJvZGllcywgc29cbiAgLy8gdGhlIHN0YXJ0IHdpbGwgbmV2ZXIgYmUgdXNlZC5cbiAgY29uc3QgZnVuY3Rpb25TdGFydCA9IF9iYXNlLnN0YXRlLnN0YXJ0O1xuICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucGFyZW5MKSkge1xuICAgIGlmIChpc1BhdHRlcm4pIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gICAgcGFyc2VNZXRob2QoZnVuY3Rpb25TdGFydCwgLyogaXNDb25zdHJ1Y3RvciAqLyBmYWxzZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNHZXR0ZXJPclNldHRlck1ldGhvZChpc1BhdHRlcm4pKSB7XG4gICAgcGFyc2VQcm9wZXJ0eU5hbWUob2JqZWN0Q29udGV4dElkKTtcbiAgICBwYXJzZU1ldGhvZChmdW5jdGlvblN0YXJ0LCAvKiBpc0NvbnN0cnVjdG9yICovIGZhbHNlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0UHJvcGVydHkoaXNQYXR0ZXJuLCBpc0Jsb2NrU2NvcGUpIHtcbiAgaWYgKF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICBpZiAoaXNQYXR0ZXJuKSB7XG4gICAgICBfbHZhbC5wYXJzZU1heWJlRGVmYXVsdC5jYWxsKHZvaWQgMCwgaXNCbG9ja1Njb3BlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VNYXliZUFzc2lnbihmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFNpbmNlIHRoZXJlJ3Mgbm8gY29sb24sIHdlIGFzc3VtZSB0aGlzIGlzIGFuIG9iamVjdCBzaG9ydGhhbmQuXG5cbiAgLy8gSWYgd2UncmUgaW4gYSBkZXN0cnVjdHVyaW5nLCB3ZSd2ZSBub3cgZGlzY292ZXJlZCB0aGF0IHRoZSBrZXkgd2FzIGFjdHVhbGx5IGFuIGFzc2lnbmVlLCBzb1xuICAvLyB3ZSBuZWVkIHRvIHRhZyBpdCBhcyBhIGRlY2xhcmF0aW9uIHdpdGggdGhlIGFwcHJvcHJpYXRlIHNjb3BlLiBPdGhlcndpc2UsIHdlIG1pZ2h0IG5lZWQgdG9cbiAgLy8gdHJhbnNmb3JtIGl0IG9uIGFjY2Vzcywgc28gbWFyayBpdCBhcyBhIG5vcm1hbCBvYmplY3Qgc2hvcnRoYW5kLlxuICBsZXQgaWRlbnRpZmllclJvbGU7XG4gIGlmIChpc1BhdHRlcm4pIHtcbiAgICBpZiAoX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgaWRlbnRpZmllclJvbGUgPSBfaW5kZXgzLklkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmIChpc0Jsb2NrU2NvcGUpIHtcbiAgICAgIGlkZW50aWZpZXJSb2xlID0gX2luZGV4My5JZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZGVudGlmaWVyUm9sZSA9IF9pbmRleDMuSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWRlbnRpZmllclJvbGUgPSBfaW5kZXgzLklkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZDtcbiAgfVxuICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gaWRlbnRpZmllclJvbGU7XG5cbiAgLy8gUmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGtub3cgdGhpcyB0byBiZSBhIHBhdHRlcm4gb3IgaWYgd2UncmUgaW4gYW4gYW1iaWd1b3VzIGNvbnRleHQsIGFsbG93XG4gIC8vIHBhcnNpbmcgYXMgaWYgdGhlcmUncyBhIGRlZmF1bHQgdmFsdWUuXG4gIF9sdmFsLnBhcnNlTWF5YmVEZWZhdWx0LmNhbGwodm9pZCAwLCBpc0Jsb2NrU2NvcGUsIHRydWUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9ialByb3BWYWx1ZShcbiAgaXNQYXR0ZXJuLFxuICBpc0Jsb2NrU2NvcGUsXG4gIG9iamVjdENvbnRleHRJZCxcbikge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIF90eXBlc2NyaXB0LnRzU3RhcnRQYXJzZU9ialByb3BWYWx1ZS5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1N0YXJ0UGFyc2VPYmpQcm9wVmFsdWUuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgY29uc3Qgd2FzTWV0aG9kID0gcGFyc2VPYmplY3RNZXRob2QoaXNQYXR0ZXJuLCBvYmplY3RDb250ZXh0SWQpO1xuICBpZiAoIXdhc01ldGhvZCkge1xuICAgIHBhcnNlT2JqZWN0UHJvcGVydHkoaXNQYXR0ZXJuLCBpc0Jsb2NrU2NvcGUpO1xuICB9XG59XG5cbiBmdW5jdGlvbiBwYXJzZVByb3BlcnR5TmFtZShvYmplY3RDb250ZXh0SWQpIHtcbiAgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBfZmxvdy5mbG93UGFyc2VWYXJpYW5jZS5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICBpZiAoX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gb2JqZWN0Q29udGV4dElkO1xuICAgIHBhcnNlTWF5YmVBc3NpZ24oKTtcbiAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJyYWNrZXRSKTtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IG9iamVjdENvbnRleHRJZDtcbiAgfSBlbHNlIHtcbiAgICBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUubnVtKSB8fCBfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5zdHJpbmcpIHx8IF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJpZ2ludCkgfHwgX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuZGVjaW1hbCkpIHtcbiAgICAgIHBhcnNlRXhwckF0b20oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VNYXliZVByaXZhdGVOYW1lKCk7XG4gICAgfVxuXG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IF9pbmRleDMuSWRlbnRpZmllclJvbGUuT2JqZWN0S2V5O1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gb2JqZWN0Q29udGV4dElkO1xuICB9XG59IGV4cG9ydHMucGFyc2VQcm9wZXJ0eU5hbWUgPSBwYXJzZVByb3BlcnR5TmFtZTtcblxuLy8gUGFyc2Ugb2JqZWN0IG9yIGNsYXNzIG1ldGhvZC5cbiBmdW5jdGlvbiBwYXJzZU1ldGhvZChmdW5jdGlvblN0YXJ0LCBpc0NvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IGZ1bmNDb250ZXh0SWQgPSBfYmFzZS5nZXROZXh0Q29udGV4dElkLmNhbGwodm9pZCAwLCApO1xuXG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgY29uc3QgYWxsb3dNb2RpZmllcnMgPSBpc0NvbnN0cnVjdG9yOyAvLyBGb3IgVHlwZVNjcmlwdCBwYXJhbWV0ZXIgcHJvcGVydGllc1xuICBfc3RhdGVtZW50LnBhcnNlRnVuY3Rpb25QYXJhbXMuY2FsbCh2b2lkIDAsIGFsbG93TW9kaWZpZXJzLCBmdW5jQ29udGV4dElkKTtcbiAgcGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2goZnVuY3Rpb25TdGFydCwgZnVuY0NvbnRleHRJZCk7XG4gIGNvbnN0IGVuZFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBfYmFzZS5zdGF0ZS5zY29wZXMucHVzaChuZXcgKDAsIF9zdGF0ZS5TY29wZSkoc3RhcnRUb2tlbkluZGV4LCBlbmRUb2tlbkluZGV4LCB0cnVlKSk7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgtLTtcbn0gZXhwb3J0cy5wYXJzZU1ldGhvZCA9IHBhcnNlTWV0aG9kO1xuXG4vLyBQYXJzZSBhcnJvdyBmdW5jdGlvbiBleHByZXNzaW9uLlxuLy8gSWYgdGhlIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkLCB0aGV5IHdpbGwgYmUgY29udmVydGVkIHRvIGFuXG4vLyBhc3NpZ25hYmxlIGxpc3QuXG4gZnVuY3Rpb24gcGFyc2VBcnJvd0V4cHJlc3Npb24oc3RhcnRUb2tlbkluZGV4KSB7XG4gIHBhcnNlRnVuY3Rpb25Cb2R5KHRydWUpO1xuICBjb25zdCBlbmRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgX2Jhc2Uuc3RhdGUuc2NvcGVzLnB1c2gobmV3ICgwLCBfc3RhdGUuU2NvcGUpKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgdHJ1ZSkpO1xuICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoLS07XG59IGV4cG9ydHMucGFyc2VBcnJvd0V4cHJlc3Npb24gPSBwYXJzZUFycm93RXhwcmVzc2lvbjtcblxuIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Cb2R5QW5kRmluaXNoKGZ1bmN0aW9uU3RhcnQsIGZ1bmNDb250ZXh0SWQgPSAwKSB7XG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgX3R5cGVzY3JpcHQudHNQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaC5jYWxsKHZvaWQgMCwgZnVuY3Rpb25TdGFydCwgZnVuY0NvbnRleHRJZCk7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIF9mbG93LmZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaC5jYWxsKHZvaWQgMCwgZnVuY0NvbnRleHRJZCk7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VGdW5jdGlvbkJvZHkoZmFsc2UsIGZ1bmNDb250ZXh0SWQpO1xuICB9XG59IGV4cG9ydHMucGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2ggPSBwYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaDtcblxuIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Cb2R5KGFsbG93RXhwcmVzc2lvbiwgZnVuY0NvbnRleHRJZCA9IDApIHtcbiAgY29uc3QgaXNFeHByZXNzaW9uID0gYWxsb3dFeHByZXNzaW9uICYmICFfaW5kZXgzLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMzLlRva2VuVHlwZS5icmFjZUwpO1xuXG4gIGlmIChpc0V4cHJlc3Npb24pIHtcbiAgICBwYXJzZU1heWJlQXNzaWduKCk7XG4gIH0gZWxzZSB7XG4gICAgX3N0YXRlbWVudC5wYXJzZUJsb2NrLmNhbGwodm9pZCAwLCB0cnVlIC8qIGlzRnVuY3Rpb25TY29wZSAqLywgZnVuY0NvbnRleHRJZCk7XG4gIH1cbn0gZXhwb3J0cy5wYXJzZUZ1bmN0aW9uQm9keSA9IHBhcnNlRnVuY3Rpb25Cb2R5O1xuXG4vLyBQYXJzZXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBleHByZXNzaW9ucywgYW5kIHJldHVybnMgdGhlbSBhc1xuLy8gYW4gYXJyYXkuIGBjbG9zZWAgaXMgdGhlIHRva2VuIHR5cGUgdGhhdCBlbmRzIHRoZSBsaXN0LCBhbmRcbi8vIGBhbGxvd0VtcHR5YCBjYW4gYmUgdHVybmVkIG9uIHRvIGFsbG93IHN1YnNlcXVlbnQgY29tbWFzIHdpdGhcbi8vIG5vdGhpbmcgaW4gYmV0d2VlbiB0aGVtIHRvIGJlIHBhcnNlZCBhcyBgbnVsbGAgKHdoaWNoIGlzIG5lZWRlZFxuLy8gZm9yIGFycmF5IGxpdGVyYWxzKS5cblxuZnVuY3Rpb24gcGFyc2VFeHByTGlzdChjbG9zZSwgYWxsb3dFbXB0eSA9IGZhbHNlKSB7XG4gIGxldCBmaXJzdCA9IHRydWU7XG4gIHdoaWxlICghX2luZGV4My5lYXQuY2FsbCh2b2lkIDAsIGNsb3NlKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuY29tbWEpO1xuICAgICAgaWYgKF9pbmRleDMuZWF0LmNhbGwodm9pZCAwLCBjbG9zZSkpIGJyZWFrO1xuICAgIH1cbiAgICBwYXJzZUV4cHJMaXN0SXRlbShhbGxvd0VtcHR5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUV4cHJMaXN0SXRlbShhbGxvd0VtcHR5KSB7XG4gIGlmIChhbGxvd0VtcHR5ICYmIF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgIC8vIEVtcHR5IGl0ZW07IG5vdGhpbmcgbW9yZSB0byBwYXJzZSBmb3IgdGhpcyBpdGVtLlxuICB9IGVsc2UgaWYgKF9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmVsbGlwc2lzKSkge1xuICAgIF9sdmFsLnBhcnNlU3ByZWFkLmNhbGwodm9pZCAwLCApO1xuICAgIHBhcnNlUGFyZW5JdGVtKCk7XG4gIH0gZWxzZSBpZiAoX2luZGV4My5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUucXVlc3Rpb24pKSB7XG4gICAgLy8gUGFydGlhbCBmdW5jdGlvbiBhcHBsaWNhdGlvbiBwcm9wb3NhbC5cbiAgICBfaW5kZXgzLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VNYXliZUFzc2lnbihmYWxzZSwgdHJ1ZSk7XG4gIH1cbn1cblxuLy8gUGFyc2UgdGhlIG5leHQgdG9rZW4gYXMgYW4gaWRlbnRpZmllci5cbiBmdW5jdGlvbiBwYXJzZUlkZW50aWZpZXIoKSB7XG4gIF9pbmRleDMubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzMy5Ub2tlblR5cGUubmFtZTtcbn0gZXhwb3J0cy5wYXJzZUlkZW50aWZpZXIgPSBwYXJzZUlkZW50aWZpZXI7XG5cbi8vIFBhcnNlcyBhd2FpdCBleHByZXNzaW9uIGluc2lkZSBhc3luYyBmdW5jdGlvbi5cbmZ1bmN0aW9uIHBhcnNlQXdhaXQoKSB7XG4gIHBhcnNlTWF5YmVVbmFyeSgpO1xufVxuXG4vLyBQYXJzZXMgeWllbGQgZXhwcmVzc2lvbiBpbnNpZGUgZ2VuZXJhdG9yLlxuZnVuY3Rpb24gcGFyc2VZaWVsZCgpIHtcbiAgX2luZGV4My5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBpZiAoIV9pbmRleDMubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLnNlbWkpICYmICFfdXRpbC5jYW5JbnNlcnRTZW1pY29sb24uY2FsbCh2b2lkIDAsICkpIHtcbiAgICBfaW5kZXgzLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuc3Rhcik7XG4gICAgcGFyc2VNYXliZUFzc2lnbigpO1xuICB9XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWpzLW1vZHVsZS1ibG9ja3NcbmZ1bmN0aW9uIHBhcnNlTW9kdWxlRXhwcmVzc2lvbigpIHtcbiAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlczMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gIC8vIEZvciBub3csIGp1c3QgY2FsbCBwYXJzZUJsb2NrQm9keSB0byBwYXJzZSB0aGUgYmxvY2suIEluIHRoZSBmdXR1cmUgd2hlbiB3ZVxuICAvLyBpbXBsZW1lbnQgZnVsbCBzdXBwb3J0LCB3ZSdsbCB3YW50IHRvIGVtaXQgc2NvcGVzIGFuZCBwb3NzaWJseSBvdGhlclxuICAvLyBpbmZvcm1hdGlvbi5cbiAgX3N0YXRlbWVudC5wYXJzZUJsb2NrQm9keS5jYWxsKHZvaWQgMCwgX3R5cGVzMy5Ub2tlblR5cGUuYnJhY2VSKTtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOy8qIGVzbGludCBtYXgtbGVuOiAwICovXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfaW5kZXggPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvaW5kZXgnKTtcbnZhciBfa2V5d29yZHMgPSByZXF1aXJlKCcuLi90b2tlbml6ZXIva2V5d29yZHMnKTtcbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvdHlwZXMnKTtcbnZhciBfYmFzZSA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci9iYXNlJyk7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfZXhwcmVzc2lvbiA9IHJlcXVpcmUoJy4uL3RyYXZlcnNlci9leHByZXNzaW9uJyk7XG5cblxuXG5cblxuXG5cblxudmFyIF9zdGF0ZW1lbnQgPSByZXF1aXJlKCcuLi90cmF2ZXJzZXIvc3RhdGVtZW50Jyk7XG5cblxuXG5cblxuXG5cblxuXG52YXIgX3V0aWwgPSByZXF1aXJlKCcuLi90cmF2ZXJzZXIvdXRpbCcpO1xuXG5mdW5jdGlvbiBpc01heWJlRGVmYXVsdEltcG9ydChsb29rYWhlYWQpIHtcbiAgcmV0dXJuIChcbiAgICAobG9va2FoZWFkLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSB8fCAhIShsb29rYWhlYWQudHlwZSAmIF90eXBlcy5Ub2tlblR5cGUuSVNfS0VZV09SRCkpICYmXG4gICAgbG9va2FoZWFkLmNvbnRleHR1YWxLZXl3b3JkICE9PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb21cbiAgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKHRvaykge1xuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCB0b2sgfHwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbik7XG4gIGZsb3dQYXJzZVR5cGUoKTtcbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VQcmVkaWNhdGUoKSB7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5tb2R1bG8pO1xuICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2NoZWNrcyk7XG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZUFuZFByZWRpY2F0ZUluaXRpYWxpc2VyKCkge1xuICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5tb2R1bG8pKSB7XG4gICAgZmxvd1BhcnNlUHJlZGljYXRlKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubW9kdWxvKSkge1xuICAgICAgZmxvd1BhcnNlUHJlZGljYXRlKCk7XG4gICAgfVxuICB9XG4gIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZUNsYXNzKCkge1xuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgZmxvd1BhcnNlSW50ZXJmYWNlaXNoKC8qIGlzQ2xhc3MgKi8gdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmVGdW5jdGlvbigpIHtcbiAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcblxuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO1xuICB9XG5cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG4gIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtcygpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcblxuICBmbG93UGFyc2VUeXBlQW5kUHJlZGljYXRlSW5pdGlhbGlzZXIoKTtcblxuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmUoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzKSkge1xuICAgIGZsb3dQYXJzZURlY2xhcmVDbGFzcygpO1xuICB9IGVsc2UgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24pKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZUZ1bmN0aW9uKCk7XG4gIH0gZWxzZSBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl92YXIpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZVZhcmlhYmxlKCk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuZWF0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpKSB7XG4gICAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZU1vZHVsZUV4cG9ydHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZU1vZHVsZSgpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSkpIHtcbiAgICBmbG93UGFyc2VEZWNsYXJlVHlwZUFsaWFzKCk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29wYXF1ZSkpIHtcbiAgICBmbG93UGFyc2VEZWNsYXJlT3BhcXVlVHlwZSgpO1xuICB9IGVsc2UgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZUludGVyZmFjZSgpO1xuICB9IGVsc2UgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0KSkge1xuICAgIGZsb3dQYXJzZURlY2xhcmVFeHBvcnREZWNsYXJhdGlvbigpO1xuICB9IGVsc2Uge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZVZhcmlhYmxlKCkge1xuICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgZmxvd1BhcnNlVHlwZUFubm90YXRhYmxlSWRlbnRpZmllcigpO1xuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmVNb2R1bGUoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlRXhwckF0b20uY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICB9XG5cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gIHdoaWxlICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0KSkge1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBfc3RhdGVtZW50LnBhcnNlSW1wb3J0LmNhbGwodm9pZCAwLCApO1xuICAgIH0gZWxzZSB7XG4gICAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICAgIH1cbiAgfVxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCk7XG5cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQpKSB7XG4gICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24pIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MpKSB7XG4gICAgICAvLyBkZWNsYXJlIGV4cG9ydCBkZWZhdWx0IGNsYXNzIC4uLlxuICAgICAgLy8gZGVjbGFyZSBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAuLi5cbiAgICAgIGZsb3dQYXJzZURlY2xhcmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZGVjbGFyZSBleHBvcnQgZGVmYXVsdCBbdHlwZV07XG4gICAgICBmbG93UGFyc2VUeXBlKCk7XG4gICAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICB9IGVsc2UgaWYgKFxuICAgIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fdmFyKSB8fCAvLyBkZWNsYXJlIGV4cG9ydCB2YXIgLi4uXG4gICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbikgfHwgLy8gZGVjbGFyZSBleHBvcnQgZnVuY3Rpb24gLi4uXG4gICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcykgfHwgLy8gZGVjbGFyZSBleHBvcnQgY2xhc3MgLi4uXG4gICAgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29wYXF1ZSkgLy8gZGVjbGFyZSBleHBvcnQgb3BhcXVlIC4uXG4gICkge1xuICAgIGZsb3dQYXJzZURlY2xhcmUoKTtcbiAgfSBlbHNlIGlmIChcbiAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3RhcikgfHwgLy8gZGVjbGFyZSBleHBvcnQgKiBmcm9tICcnXG4gICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkgfHwgLy8gZGVjbGFyZSBleHBvcnQge30gLi4uXG4gICAgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSkgfHwgLy8gZGVjbGFyZSBleHBvcnQgaW50ZXJmYWNlIC4uLlxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSB8fCAvLyBkZWNsYXJlIGV4cG9ydCB0eXBlIC4uLlxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUpIC8vIGRlY2xhcmUgZXhwb3J0IG9wYXF1ZSB0eXBlIC4uLlxuICApIHtcbiAgICBfc3RhdGVtZW50LnBhcnNlRXhwb3J0LmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2Uge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZU1vZHVsZUV4cG9ydHMoKSB7XG4gIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZXhwb3J0cyk7XG4gIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZVR5cGVBbGlhcygpIHtcbiAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIGZsb3dQYXJzZVR5cGVBbGlhcygpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlT3BhcXVlVHlwZSgpIHtcbiAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIGZsb3dQYXJzZU9wYXF1ZVR5cGUodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmVJbnRlcmZhY2UoKSB7XG4gIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBmbG93UGFyc2VJbnRlcmZhY2Vpc2goKTtcbn1cblxuLy8gSW50ZXJmYWNlc1xuXG5mdW5jdGlvbiBmbG93UGFyc2VJbnRlcmZhY2Vpc2goaXNDbGFzcyA9IGZhbHNlKSB7XG4gIGZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCk7XG5cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgfVxuXG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9leHRlbmRzKSkge1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKTtcbiAgICB9IHdoaWxlICghaXNDbGFzcyAmJiBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSk7XG4gIH1cblxuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX21peGlucykpIHtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBkbyB7XG4gICAgICBmbG93UGFyc2VJbnRlcmZhY2VFeHRlbmRzKCk7XG4gICAgfSB3aGlsZSAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpO1xuICB9XG5cbiAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbXBsZW1lbnRzKSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKTtcbiAgICB9IHdoaWxlIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSk7XG4gIH1cblxuICBmbG93UGFyc2VPYmplY3RUeXBlKGlzQ2xhc3MsIGZhbHNlLCBpc0NsYXNzKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpIHtcbiAgZmxvd1BhcnNlUXVhbGlmaWVkVHlwZUlkZW50aWZpZXIoZmFsc2UpO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlSW50ZXJmYWNlKCkge1xuICBmbG93UGFyc2VJbnRlcmZhY2Vpc2goKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoKSB7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZUFsaWFzKCkge1xuICBmbG93UGFyc2VSZXN0cmljdGVkSWRlbnRpZmllcigpO1xuXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSB7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gIH1cblxuICBmbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoX3R5cGVzLlRva2VuVHlwZS5lcSk7XG4gIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlT3BhcXVlVHlwZShkZWNsYXJlKSB7XG4gIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSk7XG4gIGZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCk7XG5cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgfVxuXG4gIC8vIFBhcnNlIHRoZSBzdXBlcnR5cGVcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICBmbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoX3R5cGVzLlRva2VuVHlwZS5jb2xvbik7XG4gIH1cblxuICBpZiAoIWRlY2xhcmUpIHtcbiAgICBmbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoX3R5cGVzLlRva2VuVHlwZS5lcSk7XG4gIH1cbiAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VUeXBlUGFyYW1ldGVyKCkge1xuICBmbG93UGFyc2VWYXJpYW5jZSgpO1xuICBmbG93UGFyc2VUeXBlQW5ub3RhdGFibGVJZGVudGlmaWVyKCk7XG5cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbiBmdW5jdGlvbiBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogdGhpcyBjb25kaXRpb24gaXMgYWxyZWFkeSBjaGVja2VkIGF0IGFsbCBjYWxsIHNpdGVzXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS50eXBlUGFyYW1ldGVyU3RhcnQpKSB7XG4gICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSB7XG4gICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuXG4gIGRvIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyKCk7XG4gICAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZ3JlYXRlclRoYW4pKSB7XG4gICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICAgIH1cbiAgfSB3aGlsZSAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5ncmVhdGVyVGhhbikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuKTtcbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufSBleHBvcnRzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbiA9IGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbjtcblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pO1xuICB3aGlsZSAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5ncmVhdGVyVGhhbikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuKSkge1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKTtcbiAgICB9XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmdyZWF0ZXJUaGFuKTtcbiAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VJbnRlcmZhY2VUeXBlKCkge1xuICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSk7XG4gIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9leHRlbmRzKSkge1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKTtcbiAgICB9IHdoaWxlIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSk7XG4gIH1cbiAgZmxvd1BhcnNlT2JqZWN0VHlwZShmYWxzZSwgZmFsc2UsIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlT2JqZWN0UHJvcGVydHlLZXkoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubnVtKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlRXhwckF0b20uY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9iamVjdFR5cGVJbmRleGVyKCkge1xuICAvLyBOb3RlOiBicmFja2V0TCBoYXMgYWxyZWFkeSBiZWVuIGNvbnN1bWVkXG4gIGlmIChfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKSA9PT0gX3R5cGVzLlRva2VuVHlwZS5jb2xvbikge1xuICAgIGZsb3dQYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICB9XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0Uik7XG4gIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VPYmplY3RUeXBlSW50ZXJuYWxTbG90KCkge1xuICAvLyBOb3RlOiBib3RoIGJyYWNrZXRMIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkXG4gIGZsb3dQYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0Uik7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0Uik7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgZmxvd1BhcnNlT2JqZWN0VHlwZU1ldGhvZGlzaCgpO1xuICB9IGVsc2Uge1xuICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pO1xuICAgIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9iamVjdFR5cGVNZXRob2Rpc2goKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSB7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gIH1cblxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKTtcbiAgd2hpbGUgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKSAmJiAhX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVsbGlwc2lzKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBmbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbSgpO1xuICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUikpIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpKSB7XG4gICAgZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKTtcbiAgfVxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9iamVjdFR5cGVDYWxsUHJvcGVydHkoKSB7XG4gIGZsb3dQYXJzZU9iamVjdFR5cGVNZXRob2Rpc2goKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlT2JqZWN0VHlwZShhbGxvd1N0YXRpYywgYWxsb3dFeGFjdCwgYWxsb3dQcm90bykge1xuICBsZXQgZW5kRGVsaW07XG4gIGlmIChhbGxvd0V4YWN0ICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUJhckwpKSB7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlQmFyTCk7XG4gICAgZW5kRGVsaW0gPSBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlQmFyUjtcbiAgfSBlbHNlIHtcbiAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKTtcbiAgICBlbmREZWxpbSA9IF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSO1xuICB9XG5cbiAgd2hpbGUgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIGVuZERlbGltKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoYWxsb3dQcm90byAmJiBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJvdG8pKSB7XG4gICAgICBjb25zdCBsb29rYWhlYWQgPSBfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIGlmIChsb29rYWhlYWQgIT09IF90eXBlcy5Ub2tlblR5cGUuY29sb24gJiYgbG9va2FoZWFkICE9PSBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKSB7XG4gICAgICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgICBhbGxvd1N0YXRpYyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxsb3dTdGF0aWMgJiYgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYykpIHtcbiAgICAgIGNvbnN0IGxvb2thaGVhZCA9IF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApO1xuICAgICAgaWYgKGxvb2thaGVhZCAhPT0gX3R5cGVzLlRva2VuVHlwZS5jb2xvbiAmJiBsb29rYWhlYWQgIT09IF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pIHtcbiAgICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmxvd1BhcnNlVmFyaWFuY2UoKTtcblxuICAgIGlmIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgICAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpKSB7XG4gICAgICAgIGZsb3dQYXJzZU9iamVjdFR5cGVJbnRlcm5hbFNsb3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZsb3dQYXJzZU9iamVjdFR5cGVJbmRleGVyKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSB7XG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlQ2FsbFByb3BlcnR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZ2V0KSB8fCBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc2V0KSkge1xuICAgICAgICBjb25zdCBsb29rYWhlYWQgPSBfaW5kZXgubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgaWYgKGxvb2thaGVhZCA9PT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lIHx8IGxvb2thaGVhZCA9PT0gX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcgfHwgbG9va2FoZWFkID09PSBfdHlwZXMuVG9rZW5UeXBlLm51bSkge1xuICAgICAgICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZsb3dQYXJzZU9iamVjdFR5cGVQcm9wZXJ0eSgpO1xuICAgIH1cblxuICAgIGZsb3dPYmplY3RUeXBlU2VtaWNvbG9uKCk7XG4gIH1cblxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIGVuZERlbGltKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlT2JqZWN0VHlwZVByb3BlcnR5KCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmVsbGlwc2lzKSkge1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcyk7XG4gICAgaWYgKCFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgICAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zZW1pKTtcbiAgICB9XG4gICAgLy8gRXhwbGljaXQgaW5leGFjdCBvYmplY3Qgc3ludGF4LlxuICAgIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmbG93UGFyc2VUeXBlKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSB8fCBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIG1ldGhvZCBwcm9wZXJ0eVxuICAgICAgZmxvd1BhcnNlT2JqZWN0VHlwZU1ldGhvZGlzaCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgICAgIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93T2JqZWN0VHlwZVNlbWljb2xvbigpIHtcbiAgaWYgKCFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnNlbWkpICYmICFfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSAmJiAhX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgJiYgIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUJhclIpKSB7XG4gICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VRdWFsaWZpZWRUeXBlSWRlbnRpZmllcihpbml0aWFsSWRBbHJlYWR5UGFyc2VkKSB7XG4gIGlmICghaW5pdGlhbElkQWxyZWFkeVBhcnNlZCkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICB3aGlsZSAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5kb3QpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUdlbmVyaWNUeXBlKCkge1xuICBmbG93UGFyc2VRdWFsaWZpZWRUeXBlSWRlbnRpZmllcih0cnVlKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZVR5cGVvZlR5cGUoKSB7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fdHlwZW9mKTtcbiAgZmxvd1BhcnNlUHJpbWFyeVR5cGUoKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHVwbGVUeXBlKCkge1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpO1xuICAvLyBXZSBhbGxvdyB0cmFpbGluZyBjb21tYXNcbiAgd2hpbGUgKF9iYXNlLnN0YXRlLnBvcyA8IF9iYXNlLmlucHV0Lmxlbmd0aCAmJiAhX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKSkge1xuICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKSB7XG4gIGNvbnN0IGxvb2thaGVhZCA9IF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApO1xuICBpZiAobG9va2FoZWFkID09PSBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uIHx8IGxvb2thaGVhZCA9PT0gX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbikge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgICBmbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoKTtcbiAgfSBlbHNlIHtcbiAgICBmbG93UGFyc2VUeXBlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW1zKCkge1xuICB3aGlsZSAoIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpICYmICFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtKCk7XG4gICAgaWYgKCFfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKSkge1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKTtcbiAgICB9XG4gIH1cbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpKSB7XG4gICAgZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKTtcbiAgfVxufVxuXG4vLyBUaGUgcGFyc2luZyBvZiB0eXBlcyByb3VnaGx5IHBhcmFsbGVscyB0aGUgcGFyc2luZyBvZiBleHByZXNzaW9ucywgYW5kXG4vLyBwcmltYXJ5IHR5cGVzIGFyZSBraW5kIG9mIGxpa2UgcHJpbWFyeSBleHByZXNzaW9ucy4uLnRoZXkncmUgdGhlXG4vLyBwcmltaXRpdmVzIHdpdGggd2hpY2ggb3RoZXIgdHlwZXMgYXJlIGNvbnN0cnVjdGVkLlxuZnVuY3Rpb24gZmxvd1BhcnNlUHJpbWFyeVR5cGUoKSB7XG4gIGxldCBpc0dyb3VwZWRUeXBlID0gZmFsc2U7XG4gIGNvbnN0IG9sZE5vQW5vbkZ1bmN0aW9uVHlwZSA9IF9iYXNlLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZTtcblxuICBzd2l0Y2ggKF9iYXNlLnN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUubmFtZToge1xuICAgICAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpKSB7XG4gICAgICAgIGZsb3dQYXJzZUludGVyZmFjZVR5cGUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICAgICAgZmxvd1BhcnNlR2VuZXJpY1R5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMOlxuICAgICAgZmxvd1BhcnNlT2JqZWN0VHlwZShmYWxzZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5icmFjZUJhckw6XG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlKGZhbHNlLCB0cnVlLCBmYWxzZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEw6XG4gICAgICBmbG93UGFyc2VUdXBsZVR5cGUoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbjpcbiAgICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG4gICAgICBmbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbXMoKTtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpO1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmFycm93KTtcbiAgICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkw6XG4gICAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcblxuICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoaXMgaXMgYWN0dWFsbHkgYSBncm91cGVkIHR5cGVcbiAgICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUikgJiYgIV9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcykpIHtcbiAgICAgICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgICAgICAgIGNvbnN0IHRva2VuID0gX2luZGV4Lmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICk7XG4gICAgICAgICAgaXNHcm91cGVkVHlwZSA9IHRva2VuICE9PSBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uICYmIHRva2VuICE9PSBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzR3JvdXBlZFR5cGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0dyb3VwZWRUeXBlKSB7XG4gICAgICAgIF9iYXNlLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IGZhbHNlO1xuICAgICAgICBmbG93UGFyc2VUeXBlKCk7XG4gICAgICAgIF9iYXNlLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IG9sZE5vQW5vbkZ1bmN0aW9uVHlwZTtcblxuICAgICAgICAvLyBBIGAsYCBvciBhIGApID0+YCBtZWFucyB0aGlzIGlzIGFuIGFub255bW91cyBmdW5jdGlvbiB0eXBlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBfYmFzZS5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgfHxcbiAgICAgICAgICAhKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkgfHwgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpICYmIF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApID09PSBfdHlwZXMuVG9rZW5UeXBlLmFycm93KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVhdCBhIGNvbW1hIGlmIHRoZXJlIGlzIG9uZVxuICAgICAgICAgIF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtcygpO1xuXG4gICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5hcnJvdyk7XG4gICAgICBmbG93UGFyc2VUeXBlKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUubWludXM6XG4gICAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIF9leHByZXNzaW9uLnBhcnNlTGl0ZXJhbC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmc6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLm51bTpcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3RydWU6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9mYWxzZTpcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX251bGw6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl90aGlzOlxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fdm9pZDpcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuc3RhcjpcbiAgICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgICAgcmV0dXJuO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmIChfYmFzZS5zdGF0ZS50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLl90eXBlb2YpIHtcbiAgICAgICAgZmxvd1BhcnNlVHlwZW9mVHlwZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKF9iYXNlLnN0YXRlLnR5cGUgJiBfdHlwZXMuVG9rZW5UeXBlLklTX0tFWVdPUkQpIHtcbiAgICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUubmFtZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG5cbiAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlUG9zdGZpeFR5cGUoKSB7XG4gIGZsb3dQYXJzZVByaW1hcnlUeXBlKCk7XG4gIHdoaWxlICghX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApICYmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbkRvdCkpKSB7XG4gICAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbkRvdCk7XG4gICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKTtcbiAgICBpZiAoX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFja2V0UikpIHtcbiAgICAgIC8vIEFycmF5IHR5cGVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSW5kZXhlZCBhY2Nlc3MgdHlwZVxuICAgICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlUHJlZml4VHlwZSgpIHtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pKSB7XG4gICAgZmxvd1BhcnNlUHJlZml4VHlwZSgpO1xuICB9IGVsc2Uge1xuICAgIGZsb3dQYXJzZVBvc3RmaXhUeXBlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlQW5vbkZ1bmN0aW9uV2l0aG91dFBhcmVucygpIHtcbiAgZmxvd1BhcnNlUHJlZml4VHlwZSgpO1xuICBpZiAoIV9iYXNlLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSAmJiBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmFycm93KSkge1xuICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VJbnRlcnNlY3Rpb25UeXBlKCkge1xuICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VBTkQpO1xuICBmbG93UGFyc2VBbm9uRnVuY3Rpb25XaXRob3V0UGFyZW5zKCk7XG4gIHdoaWxlIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VBTkQpKSB7XG4gICAgZmxvd1BhcnNlQW5vbkZ1bmN0aW9uV2l0aG91dFBhcmVucygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZVVuaW9uVHlwZSgpIHtcbiAgX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iaXR3aXNlT1IpO1xuICBmbG93UGFyc2VJbnRlcnNlY3Rpb25UeXBlKCk7XG4gIHdoaWxlIChfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJpdHdpc2VPUikpIHtcbiAgICBmbG93UGFyc2VJbnRlcnNlY3Rpb25UeXBlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZSgpIHtcbiAgZmxvd1BhcnNlVW5pb25UeXBlKCk7XG59XG5cbiBmdW5jdGlvbiBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbigpIHtcbiAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG59IGV4cG9ydHMuZmxvd1BhcnNlVHlwZUFubm90YXRpb24gPSBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbjtcblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZUFubm90YXRhYmxlSWRlbnRpZmllcigpIHtcbiAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSkge1xuICAgIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIH1cbn1cblxuIGZ1bmN0aW9uIGZsb3dQYXJzZVZhcmlhbmNlKCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBsdXMpIHx8IF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5taW51cykpIHtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlzVHlwZSA9IHRydWU7XG4gIH1cbn0gZXhwb3J0cy5mbG93UGFyc2VWYXJpYW5jZSA9IGZsb3dQYXJzZVZhcmlhbmNlO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPdmVycmlkZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuIGZ1bmN0aW9uIGZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jQ29udGV4dElkKSB7XG4gIC8vIEZvciBhcnJvdyBmdW5jdGlvbnMsIGBwYXJzZUFycm93YCBoYW5kbGVzIHRoZSByZXR1cm4gdHlwZSBpdHNlbGYuXG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgZmxvd1BhcnNlVHlwZUFuZFByZWRpY2F0ZUluaXRpYWxpc2VyKCk7XG4gIH1cblxuICBfZXhwcmVzc2lvbi5wYXJzZUZ1bmN0aW9uQm9keS5jYWxsKHZvaWQgMCwgZmFsc2UsIGZ1bmNDb250ZXh0SWQpO1xufSBleHBvcnRzLmZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaCA9IGZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaDtcblxuIGZ1bmN0aW9uIGZsb3dQYXJzZVN1YnNjcmlwdChcbiAgc3RhcnRUb2tlbkluZGV4LFxuICBub0NhbGxzLFxuICBzdG9wU3RhdGUsXG4pIHtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5xdWVzdGlvbkRvdCkgJiYgX2luZGV4Lmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICkgPT09IF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pIHtcbiAgICBpZiAobm9DYWxscykge1xuICAgICAgc3RvcFN0YXRlLnN0b3AgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAgIF9leHByZXNzaW9uLnBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMuY2FsbCh2b2lkIDAsICk7XG4gICAgcmV0dXJuO1xuICB9IGVsc2UgaWYgKCFub0NhbGxzICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKTtcbiAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKTtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzLmNhbGwodm9pZCAwLCApO1xuICAgIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgX2V4cHJlc3Npb24uYmFzZVBhcnNlU3Vic2NyaXB0LmNhbGwodm9pZCAwLCBzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMsIHN0b3BTdGF0ZSk7XG59IGV4cG9ydHMuZmxvd1BhcnNlU3Vic2NyaXB0ID0gZmxvd1BhcnNlU3Vic2NyaXB0O1xuXG4gZnVuY3Rpb24gZmxvd1N0YXJ0UGFyc2VOZXdBcmd1bWVudHMoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pKSB7XG4gICAgY29uc3Qgc25hcHNob3QgPSBfYmFzZS5zdGF0ZS5zbmFwc2hvdCgpO1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKCk7XG4gICAgaWYgKF9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICB9XG4gIH1cbn0gZXhwb3J0cy5mbG93U3RhcnRQYXJzZU5ld0FyZ3VtZW50cyA9IGZsb3dTdGFydFBhcnNlTmV3QXJndW1lbnRzO1xuXG4vLyBpbnRlcmZhY2VzXG4gZnVuY3Rpb24gZmxvd1RyeVBhcnNlU3RhdGVtZW50KCkge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmIF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIGZsb3dQYXJzZUludGVyZmFjZSgpO1xuICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bSkpIHtcbiAgICBmbG93UGFyc2VFbnVtRGVjbGFyYXRpb24oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59IGV4cG9ydHMuZmxvd1RyeVBhcnNlU3RhdGVtZW50ID0gZmxvd1RyeVBhcnNlU3RhdGVtZW50O1xuXG4gZnVuY3Rpb24gZmxvd1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKSB7XG4gIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bSkpIHtcbiAgICBmbG93UGFyc2VFbnVtRGVjbGFyYXRpb24oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59IGV4cG9ydHMuZmxvd1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24gPSBmbG93VHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbjtcblxuLy8gZGVjbGFyZXMsIGludGVyZmFjZXMgYW5kIHR5cGUgYWxpYXNlc1xuIGZ1bmN0aW9uIGZsb3dQYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgaWYgKGNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2RlY2xhcmUpIHtcbiAgICBpZiAoXG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzKSB8fFxuICAgICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8XG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uKSB8fFxuICAgICAgX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl92YXIpIHx8XG4gICAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydClcbiAgICApIHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZSgpO1xuICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlKSB7XG4gICAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAxKTtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZSgpO1xuICAgICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgICBmbG93UGFyc2VUeXBlQWxpYXMoKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29wYXF1ZSkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgICBmbG93UGFyc2VPcGFxdWVUeXBlKGZhbHNlKTtcbiAgICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgICB9XG4gIH1cbiAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xufSBleHBvcnRzLmZsb3dQYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQgPSBmbG93UGFyc2VJZGVudGlmaWVyU3RhdGVtZW50O1xuXG4vLyBleHBvcnQgdHlwZVxuIGZ1bmN0aW9uIGZsb3dTaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICByZXR1cm4gKFxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSB8fFxuICAgIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpIHx8XG4gICAgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29wYXF1ZSkgfHxcbiAgICBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bSlcbiAgKTtcbn0gZXhwb3J0cy5mbG93U2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbiA9IGZsb3dTaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gZmxvd1Nob3VsZERpc2FsbG93RXhwb3J0RGVmYXVsdFNwZWNpZmllcigpIHtcbiAgcmV0dXJuIChcbiAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgJiZcbiAgICAoX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSB8fFxuICAgICAgX2Jhc2Uuc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlIHx8XG4gICAgICBfYmFzZS5zdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUgfHxcbiAgICAgIF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2VudW0pXG4gICk7XG59IGV4cG9ydHMuZmxvd1Nob3VsZERpc2FsbG93RXhwb3J0RGVmYXVsdFNwZWNpZmllciA9IGZsb3dTaG91bGREaXNhbGxvd0V4cG9ydERlZmF1bHRTcGVjaWZpZXI7XG5cbiBmdW5jdGlvbiBmbG93UGFyc2VFeHBvcnREZWNsYXJhdGlvbigpIHtcbiAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDEpO1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuXG4gICAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICAvLyBleHBvcnQgdHlwZSB7IGZvbywgYmFyIH07XG4gICAgICBfc3RhdGVtZW50LnBhcnNlRXhwb3J0U3BlY2lmaWVycy5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIF9zdGF0ZW1lbnQucGFyc2VFeHBvcnRGcm9tLmNhbGwodm9pZCAwLCApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBleHBvcnQgdHlwZSBGb28gPSBCYXI7XG4gICAgICBmbG93UGFyc2VUeXBlQWxpYXMoKTtcbiAgICB9XG4gICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICB9IGVsc2UgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUpKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gX2luZGV4LnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMSk7XG4gICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgLy8gZXhwb3J0IG9wYXF1ZSB0eXBlIEZvbyA9IEJhcjtcbiAgICBmbG93UGFyc2VPcGFxdWVUeXBlKGZhbHNlKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSkpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAxKTtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBmbG93UGFyc2VJbnRlcmZhY2UoKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgX3N0YXRlbWVudC5wYXJzZVN0YXRlbWVudC5jYWxsKHZvaWQgMCwgdHJ1ZSk7XG4gIH1cbn0gZXhwb3J0cy5mbG93UGFyc2VFeHBvcnREZWNsYXJhdGlvbiA9IGZsb3dQYXJzZUV4cG9ydERlY2xhcmF0aW9uO1xuXG4gZnVuY3Rpb24gZmxvd1Nob3VsZFBhcnNlRXhwb3J0U3RhcigpIHtcbiAgcmV0dXJuIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKSB8fCAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpICYmIF9pbmRleC5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApID09PSBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpO1xufSBleHBvcnRzLmZsb3dTaG91bGRQYXJzZUV4cG9ydFN0YXIgPSBmbG93U2hvdWxkUGFyc2VFeHBvcnRTdGFyO1xuXG4gZnVuY3Rpb24gZmxvd1BhcnNlRXhwb3J0U3RhcigpIHtcbiAgaWYgKF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSkpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAyKTtcbiAgICBfc3RhdGVtZW50LmJhc2VQYXJzZUV4cG9ydFN0YXIuY2FsbCh2b2lkIDAsICk7XG4gICAgX2luZGV4LnBvcFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCBvbGRJc1R5cGUpO1xuICB9IGVsc2Uge1xuICAgIF9zdGF0ZW1lbnQuYmFzZVBhcnNlRXhwb3J0U3Rhci5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufSBleHBvcnRzLmZsb3dQYXJzZUV4cG9ydFN0YXIgPSBmbG93UGFyc2VFeHBvcnRTdGFyO1xuXG4vLyBwYXJzZSBhIHRoZSBzdXBlciBjbGFzcyB0eXBlIHBhcmFtZXRlcnMgYW5kIGltcGxlbWVudHNcbiBmdW5jdGlvbiBmbG93QWZ0ZXJQYXJzZUNsYXNzU3VwZXIoaGFzU3VwZXIpIHtcbiAgaWYgKGhhc1N1cGVyICYmIF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICB9XG4gIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW1wbGVtZW50cykpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9pbXBsZW1lbnRzO1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCk7XG4gICAgICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgICAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH1cbn0gZXhwb3J0cy5mbG93QWZ0ZXJQYXJzZUNsYXNzU3VwZXIgPSBmbG93QWZ0ZXJQYXJzZUNsYXNzU3VwZXI7XG5cbi8vIHBhcnNlIHR5cGUgcGFyYW1ldGVycyBmb3Igb2JqZWN0IG1ldGhvZCBzaG9ydGhhbmRcbiBmdW5jdGlvbiBmbG93U3RhcnRQYXJzZU9ialByb3BWYWx1ZSgpIHtcbiAgLy8gbWV0aG9kIHNob3J0aGFuZFxuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO1xuICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn0gZXhwb3J0cy5mbG93U3RhcnRQYXJzZU9ialByb3BWYWx1ZSA9IGZsb3dTdGFydFBhcnNlT2JqUHJvcFZhbHVlO1xuXG4gZnVuY3Rpb24gZmxvd1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IF9pbmRleC5wdXNoVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIDApO1xuICBfaW5kZXguZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uKTtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICB9XG4gIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbn0gZXhwb3J0cy5mbG93UGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcyA9IGZsb3dQYXJzZUFzc2lnbmFibGVMaXN0SXRlbVR5cGVzO1xuXG4vLyBwYXJzZSB0eXBlb2YgYW5kIHR5cGUgaW1wb3J0c1xuIGZ1bmN0aW9uIGZsb3dTdGFydFBhcnNlSW1wb3J0U3BlY2lmaWVycygpIHtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fdHlwZW9mKSB8fCBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSkpIHtcbiAgICBjb25zdCBsaCA9IF9pbmRleC5sb29rYWhlYWRUeXBlQW5kS2V5d29yZC5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoaXNNYXliZURlZmF1bHRJbXBvcnQobGgpIHx8IGxoLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMIHx8IGxoLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuc3Rhcikge1xuICAgICAgX2luZGV4Lm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMuZmxvd1N0YXJ0UGFyc2VJbXBvcnRTcGVjaWZpZXJzID0gZmxvd1N0YXJ0UGFyc2VJbXBvcnRTcGVjaWZpZXJzO1xuXG4vLyBwYXJzZSBpbXBvcnQtdHlwZS90eXBlb2Ygc2hvcnRoYW5kXG4gZnVuY3Rpb24gZmxvd1BhcnNlSW1wb3J0U3BlY2lmaWVyKCkge1xuICBjb25zdCBpc1R5cGVLZXl3b3JkID1cbiAgICBfYmFzZS5zdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlIHx8IF9iYXNlLnN0YXRlLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuX3R5cGVvZjtcbiAgaWYgKGlzVHlwZUtleXdvcmQpIHtcbiAgICBfaW5kZXgubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIH1cblxuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKSAmJiAhX3V0aWwuaXNMb29rYWhlYWRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoaXNUeXBlS2V5d29yZCAmJiAhX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmICEoX2Jhc2Uuc3RhdGUudHlwZSAmIF90eXBlcy5Ub2tlblR5cGUuSVNfS0VZV09SRCkpIHtcbiAgICAgIC8vIGBpbXBvcnQge3R5cGUgYXMgLGAgb3IgYGltcG9ydCB7dHlwZSBhcyB9YFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBgaW1wb3J0IHt0eXBlIGFzIGZvb2BcbiAgICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKGlzVHlwZUtleXdvcmQgJiYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB8fCAhIShfYmFzZS5zdGF0ZS50eXBlICYgX3R5cGVzLlRva2VuVHlwZS5JU19LRVlXT1JEKSkpIHtcbiAgICAgIC8vIGBpbXBvcnQge3R5cGUgZm9vYFxuICAgICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICAgIH1cbiAgICBpZiAoX3V0aWwuZWF0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hcykpIHtcbiAgICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICB9XG4gIH1cbn0gZXhwb3J0cy5mbG93UGFyc2VJbXBvcnRTcGVjaWZpZXIgPSBmbG93UGFyc2VJbXBvcnRTcGVjaWZpZXI7XG5cbi8vIHBhcnNlIGZ1bmN0aW9uIHR5cGUgcGFyYW1ldGVycyAtIGZ1bmN0aW9uIGZvbzxUPigpIHt9XG4gZnVuY3Rpb24gZmxvd1N0YXJ0UGFyc2VGdW5jdGlvblBhcmFtcygpIHtcbiAgLy8gT3JpZ2luYWxseSB0aGlzIGNoZWNrZWQgaWYgdGhlIG1ldGhvZCBpcyBhIGdldHRlci9zZXR0ZXIsIGJ1dCBpZiBpdCB3YXMsIHdlJ2QgY3Jhc2ggc29vblxuICAvLyBhbnl3YXksIHNvIGRvbid0IHRyeSB0byBwcm9wYWdhdGUgdGhhdCBpbmZvcm1hdGlvbi5cbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH1cbn0gZXhwb3J0cy5mbG93U3RhcnRQYXJzZUZ1bmN0aW9uUGFyYW1zID0gZmxvd1N0YXJ0UGFyc2VGdW5jdGlvblBhcmFtcztcblxuLy8gcGFyc2UgZmxvdyB0eXBlIGFubm90YXRpb25zIG9uIHZhcmlhYmxlIGRlY2xhcmF0b3IgaGVhZHMgLSBsZXQgZm9vOiBzdHJpbmcgPSBiYXJcbiBmdW5jdGlvbiBmbG93QWZ0ZXJQYXJzZVZhckhlYWQoKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfVxufSBleHBvcnRzLmZsb3dBZnRlclBhcnNlVmFySGVhZCA9IGZsb3dBZnRlclBhcnNlVmFySGVhZDtcblxuLy8gcGFyc2UgdGhlIHJldHVybiB0eXBlIG9mIGFuIGFzeW5jIGFycm93IGZ1bmN0aW9uIC0gbGV0IGZvbyA9IChhc3luYyAoKTogbnVtYmVyID0+IHt9KTtcbiBmdW5jdGlvbiBmbG93U3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oKSB7XG4gIGlmIChfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgY29uc3Qgb2xkTm9Bbm9uRnVuY3Rpb25UeXBlID0gX2Jhc2Uuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlO1xuICAgIF9iYXNlLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IHRydWU7XG4gICAgZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgICBfYmFzZS5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgPSBvbGROb0Fub25GdW5jdGlvblR5cGU7XG4gIH1cbn0gZXhwb3J0cy5mbG93U3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24gPSBmbG93U3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb247XG5cbi8vIFdlIG5lZWQgdG8gc3VwcG9ydCB0eXBlIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgZm9yIGFycm93IGZ1bmN0aW9ucy4gVGhpc1xuLy8gaXMgdHJpY2t5LiBUaGVyZSBhcmUgdGhyZWUgc2l0dWF0aW9ucyB3ZSBuZWVkIHRvIGhhbmRsZVxuLy9cbi8vIDEuIFRoaXMgaXMgZWl0aGVyIEpTWCBvciBhbiBhcnJvdyBmdW5jdGlvbi4gV2UnbGwgdHJ5IEpTWCBmaXJzdC4gSWYgdGhhdFxuLy8gICAgZmFpbHMsIHdlJ2xsIHRyeSBhbiBhcnJvdyBmdW5jdGlvbi4gSWYgdGhhdCBmYWlscywgd2UnbGwgdGhyb3cgdGhlIEpTWFxuLy8gICAgZXJyb3IuXG4vLyAyLiBUaGlzIGlzIGFuIGFycm93IGZ1bmN0aW9uLiBXZSdsbCBwYXJzZSB0aGUgdHlwZSBwYXJhbWV0ZXIgZGVjbGFyYXRpb24sXG4vLyAgICBwYXJzZSB0aGUgcmVzdCwgbWFrZSBzdXJlIHRoZSByZXN0IGlzIGFuIGFycm93IGZ1bmN0aW9uLCBhbmQgZ28gZnJvbVxuLy8gICAgdGhlcmVcbi8vIDMuIFRoaXMgaXMgbmVpdGhlci4gSnVzdCBjYWxsIHRoZSBzdXBlciBtZXRob2RcbiBmdW5jdGlvbiBmbG93UGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucykge1xuICBpZiAoX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgICBsZXQgd2FzQXJyb3cgPSBfZXhwcmVzc2lvbi5iYXNlUGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgbm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICAgIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICBfYmFzZS5zdGF0ZS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3YXNBcnJvdztcbiAgICB9XG5cbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgICBfaW5kZXgucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gICAgd2FzQXJyb3cgPSBfZXhwcmVzc2lvbi5iYXNlUGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgbm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICAgIGlmICh3YXNBcnJvdykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cblxuICByZXR1cm4gX2V4cHJlc3Npb24uYmFzZVBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsIG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbn0gZXhwb3J0cy5mbG93UGFyc2VNYXliZUFzc2lnbiA9IGZsb3dQYXJzZU1heWJlQXNzaWduO1xuXG4vLyBoYW5kbGUgcmV0dXJuIHR5cGVzIGZvciBhcnJvdyBmdW5jdGlvbnNcbiBmdW5jdGlvbiBmbG93UGFyc2VBcnJvdygpIHtcbiAgaWYgKF9pbmRleC5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb2xvbikpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfaW5kZXgucHVzaFR5cGVDb250ZXh0LmNhbGwodm9pZCAwLCAwKTtcbiAgICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG5cbiAgICBjb25zdCBvbGROb0Fub25GdW5jdGlvblR5cGUgPSBfYmFzZS5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU7XG4gICAgX2Jhc2Uuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlID0gdHJ1ZTtcbiAgICBmbG93UGFyc2VUeXBlQW5kUHJlZGljYXRlSW5pdGlhbGlzZXIoKTtcbiAgICBfYmFzZS5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgPSBvbGROb0Fub25GdW5jdGlvblR5cGU7XG5cbiAgICBpZiAoX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApKSBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmFycm93KSkgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcblxuICAgIGlmIChfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfVxuICAgIF9pbmRleC5wb3BUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgb2xkSXNUeXBlKTtcbiAgfVxuICByZXR1cm4gX2luZGV4LmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5hcnJvdyk7XG59IGV4cG9ydHMuZmxvd1BhcnNlQXJyb3cgPSBmbG93UGFyc2VBcnJvdztcblxuIGZ1bmN0aW9uIGZsb3dQYXJzZVN1YnNjcmlwdHMoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzID0gZmFsc2UpIHtcbiAgaWYgKFxuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXN5bmMgJiZcbiAgICBfaW5kZXgubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pXG4gICkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlQXN5bmNBcnJvd1dpdGhUeXBlUGFyYW1ldGVycygpO1xuICAgIGlmICh3YXNBcnJvdyAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gIH1cblxuICBfZXhwcmVzc2lvbi5iYXNlUGFyc2VTdWJzY3JpcHRzLmNhbGwodm9pZCAwLCBzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMpO1xufSBleHBvcnRzLmZsb3dQYXJzZVN1YnNjcmlwdHMgPSBmbG93UGFyc2VTdWJzY3JpcHRzO1xuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgd2FzIGFuIGFycm93IGZ1bmN0aW9uIGhlcmUuXG5mdW5jdGlvbiBwYXJzZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtZXRlcnMoKSB7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgX3N0YXRlbWVudC5wYXJzZUZ1bmN0aW9uUGFyYW1zLmNhbGwodm9pZCAwLCApO1xuICBpZiAoIV9leHByZXNzaW9uLnBhcnNlQXJyb3cuY2FsbCh2b2lkIDAsICkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgX2V4cHJlc3Npb24ucGFyc2VBcnJvd0V4cHJlc3Npb24uY2FsbCh2b2lkIDAsIHN0YXJ0VG9rZW5JbmRleCk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VFbnVtRGVjbGFyYXRpb24oKSB7XG4gIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZW51bSk7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX2VudW07XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgZmxvd1BhcnNlRW51bUJvZHkoKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRW51bUJvZHkoKSB7XG4gIGlmIChfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29mKSkge1xuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICBmbG93UGFyc2VFbnVtTWVtYmVycygpO1xuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRW51bU1lbWJlcnMoKSB7XG4gIHdoaWxlICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZWxsaXBzaXMpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZmxvd1BhcnNlRW51bU1lbWJlcigpO1xuICAgIGlmICghX2luZGV4Lm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUVudW1NZW1iZXIoKSB7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKF9pbmRleC5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgLy8gRmxvdyBlbnVtIHZhbHVlcyBhcmUgYWx3YXlzIGp1c3Qgb25lIHRva2VuIChhIHN0cmluZywgbnVtYmVyLCBvciBib29sZWFuIGxpdGVyYWwpLlxuICAgIF9pbmRleC5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsvKiBlc2xpbnQgbWF4LWxlbjogMCAqL1xuXG52YXIgX2luZGV4ID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxudmFyIF9mbG93ID0gcmVxdWlyZSgnLi4vcGx1Z2lucy9mbG93Jyk7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG52YXIgX3R5cGVzY3JpcHQgPSByZXF1aXJlKCcuLi9wbHVnaW5zL3R5cGVzY3JpcHQnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfdG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyJyk7XG52YXIgX2tleXdvcmRzID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3N0YXRlID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL3N0YXRlJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyL3R5cGVzJyk7XG52YXIgX2NoYXJjb2RlcyA9IHJlcXVpcmUoJy4uL3V0aWwvY2hhcmNvZGVzJyk7XG52YXIgX2Jhc2UgPSByZXF1aXJlKCcuL2Jhc2UnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cbnZhciBfZXhwcmVzc2lvbiA9IHJlcXVpcmUoJy4vZXhwcmVzc2lvbicpO1xuXG5cblxuXG5cbnZhciBfbHZhbCA9IHJlcXVpcmUoJy4vbHZhbCcpO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxudmFyIF91dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbiBmdW5jdGlvbiBwYXJzZVRvcExldmVsKCkge1xuICBwYXJzZUJsb2NrQm9keShfdHlwZXMuVG9rZW5UeXBlLmVvZik7XG4gIF9iYXNlLnN0YXRlLnNjb3Blcy5wdXNoKG5ldyAoMCwgX3N0YXRlLlNjb3BlKSgwLCBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoLCB0cnVlKSk7XG4gIGlmIChfYmFzZS5zdGF0ZS5zY29wZURlcHRoICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjb3BlIGRlcHRoIGF0IGVuZCBvZiBmaWxlOiAke19iYXNlLnN0YXRlLnNjb3BlRGVwdGh9YCk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoMCwgX2luZGV4LkZpbGUpKF9iYXNlLnN0YXRlLnRva2VucywgX2Jhc2Uuc3RhdGUuc2NvcGVzKTtcbn0gZXhwb3J0cy5wYXJzZVRvcExldmVsID0gcGFyc2VUb3BMZXZlbDtcblxuLy8gUGFyc2UgYSBzaW5nbGUgc3RhdGVtZW50LlxuLy9cbi8vIElmIGV4cGVjdGluZyBhIHN0YXRlbWVudCBhbmQgZmluZGluZyBhIHNsYXNoIG9wZXJhdG9yLCBwYXJzZSBhXG4vLyByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbC4gVGhpcyBpcyB0byBoYW5kbGUgY2FzZXMgbGlrZVxuLy8gYGlmIChmb28pIC9ibGFoLy5leGVjKGZvbylgLCB3aGVyZSBsb29raW5nIGF0IHRoZSBwcmV2aW91cyB0b2tlblxuLy8gZG9lcyBub3QgaGVscC5cblxuIGZ1bmN0aW9uIHBhcnNlU3RhdGVtZW50KGRlY2xhcmF0aW9uKSB7XG4gIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgaWYgKF9mbG93LmZsb3dUcnlQYXJzZVN0YXRlbWVudC5jYWxsKHZvaWQgMCwgKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5hdCkpIHtcbiAgICBwYXJzZURlY29yYXRvcnMoKTtcbiAgfVxuICBwYXJzZVN0YXRlbWVudENvbnRlbnQoZGVjbGFyYXRpb24pO1xufSBleHBvcnRzLnBhcnNlU3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnQ7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhdGVtZW50Q29udGVudChkZWNsYXJhdGlvbikge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIGlmIChfdHlwZXNjcmlwdC50c1RyeVBhcnNlU3RhdGVtZW50Q29udGVudC5jYWxsKHZvaWQgMCwgKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0YXJ0dHlwZSA9IF9iYXNlLnN0YXRlLnR5cGU7XG5cbiAgLy8gTW9zdCB0eXBlcyBvZiBzdGF0ZW1lbnRzIGFyZSByZWNvZ25pemVkIGJ5IHRoZSBrZXl3b3JkIHRoZXlcbiAgLy8gc3RhcnQgd2l0aC4gTWFueSBhcmUgdHJpdmlhbCB0byBwYXJzZSwgc29tZSByZXF1aXJlIGEgYml0IG9mXG4gIC8vIGNvbXBsZXhpdHkuXG5cbiAgc3dpdGNoIChzdGFydHR5cGUpIHtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX2JyZWFrOlxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fY29udGludWU6XG4gICAgICBwYXJzZUJyZWFrQ29udGludWVTdGF0ZW1lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX2RlYnVnZ2VyOlxuICAgICAgcGFyc2VEZWJ1Z2dlclN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fZG86XG4gICAgICBwYXJzZURvU3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9mb3I6XG4gICAgICBwYXJzZUZvclN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb246XG4gICAgICBpZiAoX3Rva2VuaXplci5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApID09PSBfdHlwZXMuVG9rZW5UeXBlLmRvdCkgYnJlYWs7XG4gICAgICBpZiAoIWRlY2xhcmF0aW9uKSBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICAgICAgcGFyc2VGdW5jdGlvblN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzczpcbiAgICAgIGlmICghZGVjbGFyYXRpb24pIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBwYXJzZUNsYXNzKHRydWUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9pZjpcbiAgICAgIHBhcnNlSWZTdGF0ZW1lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3JldHVybjpcbiAgICAgIHBhcnNlUmV0dXJuU3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9zd2l0Y2g6XG4gICAgICBwYXJzZVN3aXRjaFN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5fdGhyb3c6XG4gICAgICBwYXJzZVRocm93U3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl90cnk6XG4gICAgICBwYXJzZVRyeVN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9sZXQ6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdDpcbiAgICAgIGlmICghZGVjbGFyYXRpb24pIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7IC8vIE5PVEU6IGZhbGxzIHRocm91Z2ggdG8gX3ZhclxuXG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl92YXI6XG4gICAgICBwYXJzZVZhclN0YXRlbWVudChzdGFydHR5cGUgIT09IF90eXBlcy5Ub2tlblR5cGUuX3Zhcik7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIF90eXBlcy5Ub2tlblR5cGUuX3doaWxlOlxuICAgICAgcGFyc2VXaGlsZVN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5icmFjZUw6XG4gICAgICBwYXJzZUJsb2NrKCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLnNlbWk6XG4gICAgICBwYXJzZUVtcHR5U3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQ6XG4gICAgY2FzZSBfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQ6IHtcbiAgICAgIGNvbnN0IG5leHRUeXBlID0gX3Rva2VuaXplci5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApO1xuICAgICAgaWYgKG5leHRUeXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCB8fCBuZXh0VHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5kb3QpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgICBpZiAoc3RhcnR0eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQpIHtcbiAgICAgICAgcGFyc2VJbXBvcnQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlRXhwb3J0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhc2UgX3R5cGVzLlRva2VuVHlwZS5uYW1lOlxuICAgICAgaWYgKF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSB7XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBfYmFzZS5zdGF0ZS5zdGFydDtcbiAgICAgICAgLy8gcGVlayBhaGVhZCBhbmQgc2VlIGlmIG5leHQgdG9rZW4gaXMgYSBmdW5jdGlvblxuICAgICAgICBjb25zdCBzbmFwc2hvdCA9IF9iYXNlLnN0YXRlLnNuYXBzaG90KCk7XG4gICAgICAgIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgICAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uKSAmJiAhX3V0aWwuY2FuSW5zZXJ0U2VtaWNvbG9uLmNhbGwodm9pZCAwLCApKSB7XG4gICAgICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbik7XG4gICAgICAgICAgcGFyc2VGdW5jdGlvbihmdW5jdGlvblN0YXJ0LCB0cnVlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3VzaW5nICYmXG4gICAgICAgICFfdXRpbC5oYXNGb2xsb3dpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkgJiZcbiAgICAgICAgLy8gU3RhdGVtZW50cyBsaWtlIGB1c2luZ1swXWAgYW5kIGB1c2luZyBpbiBmb29gIGFyZW4ndCBhY3R1YWwgdXNpbmdcbiAgICAgICAgLy8gZGVjbGFyYXRpb25zLlxuICAgICAgICBfdG9rZW5pemVyLmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICkgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZVxuICAgICAgKSB7XG4gICAgICAgIHBhcnNlVmFyU3RhdGVtZW50KHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHN0YXJ0c0F3YWl0VXNpbmcoKSkge1xuICAgICAgICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2F3YWl0KTtcbiAgICAgICAgcGFyc2VWYXJTdGF0ZW1lbnQodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gRG8gbm90aGluZy5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gSWYgdGhlIHN0YXRlbWVudCBkb2VzIG5vdCBzdGFydCB3aXRoIGEgc3RhdGVtZW50IGtleXdvcmQgb3IgYVxuICAvLyBicmFjZSwgaXQncyBhbiBFeHByZXNzaW9uU3RhdGVtZW50IG9yIExhYmVsZWRTdGF0ZW1lbnQuIFdlXG4gIC8vIHNpbXBseSBzdGFydCBwYXJzaW5nIGFuIGV4cHJlc3Npb24sIGFuZCBhZnRlcndhcmRzLCBpZiB0aGVcbiAgLy8gbmV4dCB0b2tlbiBpcyBhIGNvbG9uIGFuZCB0aGUgZXhwcmVzc2lvbiB3YXMgYSBzaW1wbGVcbiAgLy8gSWRlbnRpZmllciBub2RlLCB3ZSBzd2l0Y2ggdG8gaW50ZXJwcmV0aW5nIGl0IGFzIGEgbGFiZWwuXG4gIGNvbnN0IGluaXRpYWxUb2tlbnNMZW5ndGggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBfZXhwcmVzc2lvbi5wYXJzZUV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIGxldCBzaW1wbGVOYW1lID0gbnVsbDtcbiAgaWYgKF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggPT09IGluaXRpYWxUb2tlbnNMZW5ndGggKyAxKSB7XG4gICAgY29uc3QgdG9rZW4gPSBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgIGlmICh0b2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHtcbiAgICAgIHNpbXBsZU5hbWUgPSB0b2tlbi5jb250ZXh0dWFsS2V5d29yZDtcbiAgICB9XG4gIH1cbiAgaWYgKHNpbXBsZU5hbWUgPT0gbnVsbCkge1xuICAgIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKF90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSkge1xuICAgIHBhcnNlTGFiZWxlZFN0YXRlbWVudCgpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgd2FzIGFuIGlkZW50aWZpZXIsIHNvIHdlIG1pZ2h0IHdhbnQgdG8gaGFuZGxlIGZsb3cvdHlwZXNjcmlwdC1zcGVjaWZpYyBjYXNlcy5cbiAgICBwYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQoc2ltcGxlTmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgd2UncmUgcG9zaXRpb25lZCBhdCBhbiBgYXdhaXQgdXNpbmdgIGRlY2xhcmF0aW9uLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGNhbiBoYXBwZW4gZWl0aGVyIGluIHBsYWNlIG9mIGEgcmVndWxhciB2YXJpYWJsZSBkZWNsYXJhdGlvblxuICogb3IgaW4gYSBsb29wIGJvZHksIGFuZCBpbiBib3RoIHBsYWNlcywgdGhlcmUgYXJlIHNpbWlsYXItbG9va2luZyBjYXNlcyB3aGVyZVxuICogd2UgbmVlZCB0byByZXR1cm4gZmFsc2UuXG4gKlxuICogRXhhbXBsZXMgcmV0dXJuaW5nIHRydWU6XG4gKiBhd2FpdCB1c2luZyBmb28gPSBiYXIoKTtcbiAqIGZvciAoYXdhaXQgdXNpbmcgYSBvZiBiKSB7fVxuICpcbiAqIEV4YW1wbGVzIHJldHVybmluZyBmYWxzZTpcbiAqIGF3YWl0IHVzaW5nXG4gKiBhd2FpdCB1c2luZyArIDFcbiAqIGF3YWl0IHVzaW5nIGluc3RhbmNlb2YgVFxuICogZm9yIChhd2FpdCB1c2luZzs7KSB7fVxuICpcbiAqIEZvciBub3csIHdlIGVhcmx5IHJldHVybiBpZiB3ZSBkb24ndCBzZWUgYGF3YWl0YCwgdGhlbiBkbyBhIHNpbXBsZVxuICogYmFja3RyYWNraW5nLWJhc2VkIGxvb2thaGVhZCBmb3IgdGhlIGB1c2luZ2AgYW5kIGlkZW50aWZpZXIgdG9rZW5zLiBJbiB0aGVcbiAqIGZ1dHVyZSwgdGhpcyBjb3VsZCBiZSBvcHRpbWl6ZWQgd2l0aCBhIGNoYXJhY3Rlci1iYXNlZCBhcHByb2FjaC5cbiAqL1xuZnVuY3Rpb24gc3RhcnRzQXdhaXRVc2luZygpIHtcbiAgaWYgKCFfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXdhaXQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgLy8gYXdhaXRcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBpZiAoIV91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl91c2luZykgfHwgX3V0aWwuaGFzUHJlY2VkaW5nTGluZUJyZWFrLmNhbGwodm9pZCAwLCApKSB7XG4gICAgX2Jhc2Uuc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIHVzaW5nXG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgaWYgKCFfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8IF91dGlsLmhhc1ByZWNlZGluZ0xpbmVCcmVhay5jYWxsKHZvaWQgMCwgKSkge1xuICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbiBmdW5jdGlvbiBwYXJzZURlY29yYXRvcnMoKSB7XG4gIHdoaWxlIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmF0KSkge1xuICAgIHBhcnNlRGVjb3JhdG9yKCk7XG4gIH1cbn0gZXhwb3J0cy5wYXJzZURlY29yYXRvcnMgPSBwYXJzZURlY29yYXRvcnM7XG5cbmZ1bmN0aW9uIHBhcnNlRGVjb3JhdG9yKCkge1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByZXNzaW9uLmNhbGwodm9pZCAwLCApO1xuICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpO1xuICB9IGVsc2Uge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICB3aGlsZSAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICAgIH1cbiAgICBwYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VNYXliZURlY29yYXRvckFyZ3VtZW50cygpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMuY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKTtcbiAgfVxufVxuXG4gZnVuY3Rpb24gYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKSB7XG4gIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cy5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufSBleHBvcnRzLmJhc2VQYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzID0gYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHM7XG5cbmZ1bmN0aW9uIHBhcnNlQnJlYWtDb250aW51ZVN0YXRlbWVudCgpIHtcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBpZiAoIV91dGlsLmlzTGluZVRlcm1pbmF0b3IuY2FsbCh2b2lkIDAsICkpIHtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gICAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQoKSB7XG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiBwYXJzZURvU3RhdGVtZW50KCkge1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl93aGlsZSk7XG4gIF9leHByZXNzaW9uLnBhcnNlUGFyZW5FeHByZXNzaW9uLmNhbGwodm9pZCAwLCApO1xuICBfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zZW1pKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VGb3JTdGF0ZW1lbnQoKSB7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgcGFyc2VBbWJpZ3VvdXNGb3JTdGF0ZW1lbnQoKTtcbiAgY29uc3QgZW5kVG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIF9iYXNlLnN0YXRlLnNjb3Blcy5wdXNoKG5ldyAoMCwgX3N0YXRlLlNjb3BlKShzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIGZhbHNlKSk7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgtLTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhpcyB0b2tlbiBpcyBhIGB1c2luZ2AgZGVjbGFyYXRpb24gKGV4cGxpY2l0IHJlc291cmNlXG4gKiBtYW5hZ2VtZW50KSBhcyBwYXJ0IG9mIGEgbG9vcC5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWV4cGxpY2l0LXJlc291cmNlLW1hbmFnZW1lbnRcbiAqL1xuZnVuY3Rpb24gaXNVc2luZ0luTG9vcCgpIHtcbiAgaWYgKCFfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdXNpbmcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoaXMgbXVzdCBiZSBgZm9yICh1c2luZyBvZmAsIHdoZXJlIGB1c2luZ2AgaXMgdGhlIG5hbWUgb2YgdGhlIGxvb3BcbiAgLy8gdmFyaWFibGUuXG4gIGlmIChfdXRpbC5pc0xvb2thaGVhZENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb2YpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vLyBEaXNhbWJpZ3VhdGluZyBiZXR3ZWVuIGEgYGZvcmAgYW5kIGEgYGZvcmAvYGluYCBvciBgZm9yYC9gb2ZgXG4vLyBsb29wIGlzIG5vbi10cml2aWFsLiBCYXNpY2FsbHksIHdlIGhhdmUgdG8gcGFyc2UgdGhlIGluaXQgYHZhcmBcbi8vIHN0YXRlbWVudCBvciBleHByZXNzaW9uLCBkaXNhbGxvd2luZyB0aGUgYGluYCBvcGVyYXRvciAoc2VlXG4vLyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byBgcGFyc2VFeHByZXNzaW9uYCksIGFuZCB0aGVuIGNoZWNrXG4vLyB3aGV0aGVyIHRoZSBuZXh0IHRva2VuIGlzIGBpbmAgb3IgYG9mYC4gV2hlbiB0aGVyZSBpcyBubyBpbml0XG4vLyBwYXJ0IChzZW1pY29sb24gaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIG9wZW5pbmcgcGFyZW50aGVzaXMpLCBpdFxuLy8gaXMgYSByZWd1bGFyIGBmb3JgIGxvb3AuXG5mdW5jdGlvbiBwYXJzZUFtYmlndW91c0ZvclN0YXRlbWVudCgpIHtcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuXG4gIGxldCBmb3JBd2FpdCA9IGZhbHNlO1xuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2F3YWl0KSkge1xuICAgIGZvckF3YWl0ID0gdHJ1ZTtcbiAgICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCk7XG5cbiAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpIHtcbiAgICBpZiAoZm9yQXdhaXQpIHtcbiAgICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICAgIHBhcnNlRm9yKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaXNBd2FpdFVzaW5nID0gc3RhcnRzQXdhaXRVc2luZygpO1xuICBpZiAoaXNBd2FpdFVzaW5nIHx8IF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX3ZhcikgfHwgX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fbGV0KSB8fCBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdCkgfHwgaXNVc2luZ0luTG9vcCgpKSB7XG4gICAgaWYgKGlzQXdhaXRVc2luZykge1xuICAgICAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hd2FpdCk7XG4gICAgfVxuICAgIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBwYXJzZVZhcih0cnVlLCBfYmFzZS5zdGF0ZS50eXBlICE9PSBfdHlwZXMuVG9rZW5UeXBlLl92YXIpO1xuICAgIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9pbikgfHwgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX29mKSkge1xuICAgICAgcGFyc2VGb3JJbihmb3JBd2FpdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHBhcnNlRm9yKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgX2V4cHJlc3Npb24ucGFyc2VFeHByZXNzaW9uLmNhbGwodm9pZCAwLCB0cnVlKTtcbiAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2luKSB8fCBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb2YpKSB7XG4gICAgcGFyc2VGb3JJbihmb3JBd2FpdCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChmb3JBd2FpdCkge1xuICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgcGFyc2VGb3IoKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VGdW5jdGlvblN0YXRlbWVudCgpIHtcbiAgY29uc3QgZnVuY3Rpb25TdGFydCA9IF9iYXNlLnN0YXRlLnN0YXJ0O1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSWZTdGF0ZW1lbnQoKSB7XG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2V4cHJlc3Npb24ucGFyc2VQYXJlbkV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbiAgaWYgKF90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9lbHNlKSkge1xuICAgIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVJldHVyblN0YXRlbWVudCgpIHtcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuXG4gIC8vIEluIGByZXR1cm5gIChhbmQgYGJyZWFrYC9gY29udGludWVgKSwgdGhlIGtleXdvcmRzIHdpdGhcbiAgLy8gb3B0aW9uYWwgYXJndW1lbnRzLCB3ZSBlYWdlcmx5IGxvb2sgZm9yIGEgc2VtaWNvbG9uIG9yIHRoZVxuICAvLyBwb3NzaWJpbGl0eSB0byBpbnNlcnQgb25lLlxuXG4gIGlmICghX3V0aWwuaXNMaW5lVGVybWluYXRvci5jYWxsKHZvaWQgMCwgKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VTd2l0Y2hTdGF0ZW1lbnQoKSB7XG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2V4cHJlc3Npb24ucGFyc2VQYXJlbkV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG5cbiAgLy8gRG9uJ3QgYm90aGVyIHZhbGlkYXRpb247IGp1c3QgZ28gdGhyb3VnaCBhbnkgc2VxdWVuY2Ugb2YgY2FzZXMsIGRlZmF1bHRzLCBhbmQgc3RhdGVtZW50cy5cbiAgd2hpbGUgKCFfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2Nhc2UpIHx8IF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQpKSB7XG4gICAgICBjb25zdCBpc0Nhc2UgPSBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9jYXNlKTtcbiAgICAgIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICAgIGlmIChpc0Nhc2UpIHtcbiAgICAgICAgX2V4cHJlc3Npb24ucGFyc2VFeHByZXNzaW9uLmNhbGwodm9pZCAwLCApO1xuICAgICAgfVxuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VTdGF0ZW1lbnQodHJ1ZSk7XG4gICAgfVxuICB9XG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTsgLy8gQ2xvc2luZyBicmFjZVxuICBjb25zdCBlbmRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgX2Jhc2Uuc3RhdGUuc2NvcGVzLnB1c2gobmV3ICgwLCBfc3RhdGUuU2NvcGUpKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgZmFsc2UpKTtcbiAgX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aC0tO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRocm93U3RhdGVtZW50KCkge1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIF9leHByZXNzaW9uLnBhcnNlRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNhdGNoQ2xhdXNlUGFyYW0oKSB7XG4gIF9sdmFsLnBhcnNlQmluZGluZ0F0b20uY2FsbCh2b2lkIDAsIHRydWUgLyogaXNCbG9ja1Njb3BlICovKTtcblxuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIF90eXBlc2NyaXB0LnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbi5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVRyeVN0YXRlbWVudCgpIHtcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuXG4gIHBhcnNlQmxvY2soKTtcblxuICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fY2F0Y2gpKSB7XG4gICAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIGxldCBjYXRjaEJpbmRpbmdTdGFydFRva2VuSW5kZXggPSBudWxsO1xuICAgIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgICAgIGNhdGNoQmluZGluZ1N0YXJ0VG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKTtcbiAgICAgIHBhcnNlQ2F0Y2hDbGF1c2VQYXJhbSgpO1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgfVxuICAgIHBhcnNlQmxvY2soKTtcbiAgICBpZiAoY2F0Y2hCaW5kaW5nU3RhcnRUb2tlbkluZGV4ICE9IG51bGwpIHtcbiAgICAgIC8vIFdlIG5lZWQgYSBzcGVjaWFsIHNjb3BlIGZvciB0aGUgY2F0Y2ggYmluZGluZyB3aGljaCBpbmNsdWRlcyB0aGUgYmluZGluZyBpdHNlbGYgYW5kIHRoZVxuICAgICAgLy8gY2F0Y2ggYmxvY2suXG4gICAgICBjb25zdCBlbmRUb2tlbkluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgICAgIF9iYXNlLnN0YXRlLnNjb3Blcy5wdXNoKG5ldyAoMCwgX3N0YXRlLlNjb3BlKShjYXRjaEJpbmRpbmdTdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIGZhbHNlKSk7XG4gICAgICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoLS07XG4gICAgfVxuICB9XG4gIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fZmluYWxseSkpIHtcbiAgICBwYXJzZUJsb2NrKCk7XG4gIH1cbn1cblxuIGZ1bmN0aW9uIHBhcnNlVmFyU3RhdGVtZW50KGlzQmxvY2tTY29wZSkge1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gIHBhcnNlVmFyKGZhbHNlLCBpc0Jsb2NrU2NvcGUpO1xuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG59IGV4cG9ydHMucGFyc2VWYXJTdGF0ZW1lbnQgPSBwYXJzZVZhclN0YXRlbWVudDtcblxuZnVuY3Rpb24gcGFyc2VXaGlsZVN0YXRlbWVudCgpIHtcbiAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICBfZXhwcmVzc2lvbi5wYXJzZVBhcmVuRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgcGFyc2VTdGF0ZW1lbnQoZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUVtcHR5U3RhdGVtZW50KCkge1xuICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTGFiZWxlZFN0YXRlbWVudCgpIHtcbiAgcGFyc2VTdGF0ZW1lbnQodHJ1ZSk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBzdGF0ZW1lbnQgc3RhcnRpbmcgd2l0aCBhbiBpZGVudGlmaWVyIG9mIHRoZSBnaXZlbiBuYW1lLiBTdWJjbGFzc2VzIG1hdGNoIG9uIHRoZSBuYW1lXG4gKiB0byBoYW5kbGUgc3RhdGVtZW50cyBsaWtlIFwiZGVjbGFyZVwiLlxuICovXG5mdW5jdGlvbiBwYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlSWRlbnRpZmllclN0YXRlbWVudC5jYWxsKHZvaWQgMCwgY29udGV4dHVhbEtleXdvcmQpO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBfZmxvdy5mbG93UGFyc2VJZGVudGlmaWVyU3RhdGVtZW50LmNhbGwodm9pZCAwLCBjb250ZXh0dWFsS2V5d29yZCk7XG4gIH0gZWxzZSB7XG4gICAgX3V0aWwuc2VtaWNvbG9uLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbi8vIFBhcnNlIGEgc2VtaWNvbG9uLWVuY2xvc2VkIGJsb2NrIG9mIHN0YXRlbWVudHMuXG4gZnVuY3Rpb24gcGFyc2VCbG9jayhpc0Z1bmN0aW9uU2NvcGUgPSBmYWxzZSwgY29udGV4dElkID0gMCkge1xuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoKys7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICBpZiAoY29udGV4dElkKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gIH1cbiAgcGFyc2VCbG9ja0JvZHkoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpO1xuICBpZiAoY29udGV4dElkKSB7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gIH1cbiAgY29uc3QgZW5kVG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIF9iYXNlLnN0YXRlLnNjb3Blcy5wdXNoKG5ldyAoMCwgX3N0YXRlLlNjb3BlKShzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIGlzRnVuY3Rpb25TY29wZSkpO1xuICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoLS07XG59IGV4cG9ydHMucGFyc2VCbG9jayA9IHBhcnNlQmxvY2s7XG5cbiBmdW5jdGlvbiBwYXJzZUJsb2NrQm9keShlbmQpIHtcbiAgd2hpbGUgKCFfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgZW5kKSAmJiAhX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICBwYXJzZVN0YXRlbWVudCh0cnVlKTtcbiAgfVxufSBleHBvcnRzLnBhcnNlQmxvY2tCb2R5ID0gcGFyc2VCbG9ja0JvZHk7XG5cbi8vIFBhcnNlIGEgcmVndWxhciBgZm9yYCBsb29wLiBUaGUgZGlzYW1iaWd1YXRpb24gY29kZSBpblxuLy8gYHBhcnNlU3RhdGVtZW50YCB3aWxsIGFscmVhZHkgaGF2ZSBwYXJzZWQgdGhlIGluaXQgc3RhdGVtZW50IG9yXG4vLyBleHByZXNzaW9uLlxuXG5mdW5jdGlvbiBwYXJzZUZvcigpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnNlbWkpO1xuICBpZiAoIV90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpIHtcbiAgICBfZXhwcmVzc2lvbi5wYXJzZUV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIH1cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnNlbWkpO1xuICBpZiAoIV90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKSkge1xuICAgIF9leHByZXNzaW9uLnBhcnNlRXhwcmVzc2lvbi5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgcGFyc2VTdGF0ZW1lbnQoZmFsc2UpO1xufVxuXG4vLyBQYXJzZSBhIGBmb3JgL2BpbmAgYW5kIGBmb3JgL2BvZmAgbG9vcCwgd2hpY2ggYXJlIGFsbW9zdFxuLy8gc2FtZSBmcm9tIHBhcnNlcidzIHBlcnNwZWN0aXZlLlxuXG5mdW5jdGlvbiBwYXJzZUZvckluKGZvckF3YWl0KSB7XG4gIGlmIChmb3JBd2FpdCkge1xuICAgIF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb2YpO1xuICB9IGVsc2Uge1xuICAgIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICBfZXhwcmVzc2lvbi5wYXJzZUV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICk7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpO1xuICBwYXJzZVN0YXRlbWVudChmYWxzZSk7XG59XG5cbi8vIFBhcnNlIGEgbGlzdCBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuXG5cbmZ1bmN0aW9uIHBhcnNlVmFyKGlzRm9yLCBpc0Jsb2NrU2NvcGUpIHtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBwYXJzZVZhckhlYWQoaXNCbG9ja1Njb3BlKTtcbiAgICBpZiAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgICBjb25zdCBlcUluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDE7XG4gICAgICBfZXhwcmVzc2lvbi5wYXJzZU1heWJlQXNzaWduLmNhbGwodm9pZCAwLCBpc0Zvcik7XG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbZXFJbmRleF0ucmhzRW5kSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoIV90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlVmFySGVhZChpc0Jsb2NrU2NvcGUpIHtcbiAgX2x2YWwucGFyc2VCaW5kaW5nQXRvbS5jYWxsKHZvaWQgMCwgaXNCbG9ja1Njb3BlKTtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c0FmdGVyUGFyc2VWYXJIZWFkLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBfZmxvdy5mbG93QWZ0ZXJQYXJzZVZhckhlYWQuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuLy8gUGFyc2UgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvciBsaXRlcmFsIChkZXBlbmRpbmcgb24gdGhlXG4vLyBgaXNTdGF0ZW1lbnRgIHBhcmFtZXRlcikuXG5cbiBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uKFxuICBmdW5jdGlvblN0YXJ0LFxuICBpc1N0YXRlbWVudCxcbiAgb3B0aW9uYWxJZCA9IGZhbHNlLFxuKSB7XG4gIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpKSB7XG4gICAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9XG5cbiAgaWYgKGlzU3RhdGVtZW50ICYmICFvcHRpb25hbElkICYmICFfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmICFfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl95aWVsZCkpIHtcbiAgICBfdXRpbC51bmV4cGVjdGVkLmNhbGwodm9pZCAwLCApO1xuICB9XG5cbiAgbGV0IG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAvLyBFeHByZXNzaW9uLXN0eWxlIGZ1bmN0aW9ucyBzaG91bGQgbGltaXQgdGhlaXIgbmFtZSdzIHNjb3BlIHRvIHRoZSBmdW5jdGlvbiBib2R5LCBzbyB3ZSBtYWtlXG4gICAgLy8gYSBuZXcgZnVuY3Rpb24gc2NvcGUgdG8gZW5mb3JjZSB0aGF0LlxuICAgIGlmICghaXNTdGF0ZW1lbnQpIHtcbiAgICAgIG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoKys7XG4gICAgfVxuICAgIF9sdmFsLnBhcnNlQmluZGluZ0lkZW50aWZpZXIuY2FsbCh2b2lkIDAsIGZhbHNlKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0VG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICBfZXhwcmVzc2lvbi5wYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaC5jYWxsKHZvaWQgMCwgZnVuY3Rpb25TdGFydCk7XG4gIGNvbnN0IGVuZFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAvLyBJbiBhZGRpdGlvbiB0byB0aGUgYmxvY2sgc2NvcGUgb2YgdGhlIGZ1bmN0aW9uIGJvZHksIHdlIG5lZWQgYSBzZXBhcmF0ZSBmdW5jdGlvbi1zdHlsZSBzY29wZVxuICAvLyB0aGF0IGluY2x1ZGVzIHRoZSBwYXJhbXMuXG4gIF9iYXNlLnN0YXRlLnNjb3Blcy5wdXNoKG5ldyAoMCwgX3N0YXRlLlNjb3BlKShzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIHRydWUpKTtcbiAgX2Jhc2Uuc3RhdGUuc2NvcGVEZXB0aC0tO1xuICBpZiAobmFtZVNjb3BlU3RhcnRUb2tlbkluZGV4ICE9PSBudWxsKSB7XG4gICAgX2Jhc2Uuc3RhdGUuc2NvcGVzLnB1c2gobmV3ICgwLCBfc3RhdGUuU2NvcGUpKG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgdHJ1ZSkpO1xuICAgIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgtLTtcbiAgfVxufSBleHBvcnRzLnBhcnNlRnVuY3Rpb24gPSBwYXJzZUZ1bmN0aW9uO1xuXG4gZnVuY3Rpb24gcGFyc2VGdW5jdGlvblBhcmFtcyhcbiAgYWxsb3dNb2RpZmllcnMgPSBmYWxzZSxcbiAgZnVuY0NvbnRleHRJZCA9IDAsXG4pIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1N0YXJ0UGFyc2VGdW5jdGlvblBhcmFtcy5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1N0YXJ0UGFyc2VGdW5jdGlvblBhcmFtcy5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuXG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICBpZiAoZnVuY0NvbnRleHRJZCkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gZnVuY0NvbnRleHRJZDtcbiAgfVxuICBfbHZhbC5wYXJzZUJpbmRpbmdMaXN0LmNhbGwodm9pZCAwLCBcbiAgICBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUixcbiAgICBmYWxzZSAvKiBpc0Jsb2NrU2NvcGUgKi8sXG4gICAgZmFsc2UgLyogYWxsb3dFbXB0eSAqLyxcbiAgICBhbGxvd01vZGlmaWVycyxcbiAgICBmdW5jQ29udGV4dElkLFxuICApO1xuICBpZiAoZnVuY0NvbnRleHRJZCkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gZnVuY0NvbnRleHRJZDtcbiAgfVxufSBleHBvcnRzLnBhcnNlRnVuY3Rpb25QYXJhbXMgPSBwYXJzZUZ1bmN0aW9uUGFyYW1zO1xuXG4vLyBQYXJzZSBhIGNsYXNzIGRlY2xhcmF0aW9uIG9yIGxpdGVyYWwgKGRlcGVuZGluZyBvbiB0aGVcbi8vIGBpc1N0YXRlbWVudGAgcGFyYW1ldGVyKS5cblxuIGZ1bmN0aW9uIHBhcnNlQ2xhc3MoaXNTdGF0ZW1lbnQsIG9wdGlvbmFsSWQgPSBmYWxzZSkge1xuICAvLyBQdXQgYSBjb250ZXh0IElEIG9uIHRoZSBjbGFzcyBrZXl3b3JkLCB0aGUgb3Blbi1icmFjZSwgYW5kIHRoZSBjbG9zZS1icmFjZSwgc28gdGhhdCBsYXRlclxuICAvLyBjb2RlIGNhbiBlYXNpbHkgbmF2aWdhdGUgdG8gbWVhbmluZ2Z1bCBwb2ludHMgb24gdGhlIGNsYXNzLlxuICBjb25zdCBjb250ZXh0SWQgPSBfYmFzZS5nZXROZXh0Q29udGV4dElkLmNhbGwodm9pZCAwLCApO1xuXG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaXNFeHByZXNzaW9uID0gIWlzU3RhdGVtZW50O1xuICAvLyBMaWtlIHdpdGggZnVuY3Rpb25zLCB3ZSBkZWNsYXJlIGEgc3BlY2lhbCBcIm5hbWUgc2NvcGVcIiBmcm9tIHRoZSBzdGFydCBvZiB0aGUgbmFtZSB0byB0aGUgZW5kXG4gIC8vIG9mIHRoZSBjbGFzcywgYnV0IG9ubHkgd2l0aCBleHByZXNzaW9uLXN0eWxlIGNsYXNzZXMsIHRvIHJlcHJlc2VudCB0aGUgZmFjdCB0aGF0IHRoZSBuYW1lIGlzXG4gIC8vIGF2YWlsYWJsZSB0byB0aGUgYm9keSBvZiB0aGUgY2xhc3MgYnV0IG5vdCBhbiBvdXRlciBkZWNsYXJhdGlvbi5cbiAgbGV0IG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCA9IG51bGw7XG4gIGlmICghaXNTdGF0ZW1lbnQpIHtcbiAgICBuYW1lU2NvcGVTdGFydFRva2VuSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgIF9iYXNlLnN0YXRlLnNjb3BlRGVwdGgrKztcbiAgfVxuICBwYXJzZUNsYXNzSWQoaXNTdGF0ZW1lbnQsIG9wdGlvbmFsSWQpO1xuICBwYXJzZUNsYXNzU3VwZXIoKTtcbiAgY29uc3Qgb3BlbkJyYWNlSW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBwYXJzZUNsYXNzQm9keShjb250ZXh0SWQpO1xuICBpZiAoX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW29wZW5CcmFjZUluZGV4XS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gY29udGV4dElkO1xuICBpZiAobmFtZVNjb3BlU3RhcnRUb2tlbkluZGV4ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW5kVG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgX2Jhc2Uuc3RhdGUuc2NvcGVzLnB1c2gobmV3ICgwLCBfc3RhdGUuU2NvcGUpKG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgZmFsc2UpKTtcbiAgICBfYmFzZS5zdGF0ZS5zY29wZURlcHRoLS07XG4gIH1cbn0gZXhwb3J0cy5wYXJzZUNsYXNzID0gcGFyc2VDbGFzcztcblxuZnVuY3Rpb24gaXNDbGFzc1Byb3BlcnR5KCkge1xuICByZXR1cm4gX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5lcSkgfHwgX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zZW1pKSB8fCBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgfHwgX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iYW5nKSB8fCBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKTtcbn1cblxuZnVuY3Rpb24gaXNDbGFzc01ldGhvZCgpIHtcbiAgcmV0dXJuIF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSB8fCBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDbGFzc0JvZHkoY2xhc3NDb250ZXh0SWQpIHtcbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG5cbiAgd2hpbGUgKCFfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zZW1pKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYXQpKSB7XG4gICAgICBwYXJzZURlY29yYXRvcigpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IG1lbWJlclN0YXJ0ID0gX2Jhc2Uuc3RhdGUuc3RhcnQ7XG4gICAgcGFyc2VDbGFzc01lbWJlcihtZW1iZXJTdGFydCwgY2xhc3NDb250ZXh0SWQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2xhc3NNZW1iZXIobWVtYmVyU3RhcnQsIGNsYXNzQ29udGV4dElkKSB7XG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgX3R5cGVzY3JpcHQudHNQYXJzZU1vZGlmaWVycy5jYWxsKHZvaWQgMCwgW1xuICAgICAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlLFxuICAgICAgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9wdWJsaWMsXG4gICAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3Byb3RlY3RlZCxcbiAgICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZSxcbiAgICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fb3ZlcnJpZGUsXG4gICAgXSk7XG4gIH1cbiAgbGV0IGlzU3RhdGljID0gZmFsc2U7XG4gIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmIF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYykge1xuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTsgLy8gZWF0cyAnc3RhdGljJ1xuICAgIGlmIChpc0NsYXNzTWV0aG9kKCkpIHtcbiAgICAgIHBhcnNlQ2xhc3NNZXRob2QobWVtYmVyU3RhcnQsIC8qIGlzQ29uc3RydWN0b3IgKi8gZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoaXNDbGFzc1Byb3BlcnR5KCkpIHtcbiAgICAgIHBhcnNlQ2xhc3NQcm9wZXJ0eSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBvdGhlcndpc2Ugc29tZXRoaW5nIHN0YXRpY1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX3N0YXRpYztcbiAgICBpc1N0YXRpYyA9IHRydWU7XG5cbiAgICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgc3RhdGljIGJsb2NrLiBNYXJrIHRoZSB3b3JkIFwic3RhdGljXCIgd2l0aCB0aGUgY2xhc3MgY29udGV4dCBJRCBmb3IgY2xhc3MgZWxlbWVudFxuICAgICAgLy8gZGV0ZWN0aW9uIGFuZCBwYXJzZSBhcyBhIHJlZ3VsYXIgYmxvY2suXG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNsYXNzQ29udGV4dElkO1xuICAgICAgcGFyc2VCbG9jaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMobWVtYmVyU3RhcnQsIGlzU3RhdGljLCBjbGFzc0NvbnRleHRJZCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMoXG4gIG1lbWJlclN0YXJ0LFxuICBpc1N0YXRpYyxcbiAgY2xhc3NDb250ZXh0SWQsXG4pIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBpZiAoX3R5cGVzY3JpcHQudHNUcnlQYXJzZUNsYXNzTWVtYmVyV2l0aElzU3RhdGljLmNhbGwodm9pZCAwLCBpc1N0YXRpYykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgaWYgKF90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpKSB7XG4gICAgLy8gYSBnZW5lcmF0b3JcbiAgICBwYXJzZUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzQ29udGV4dElkKTtcbiAgICBwYXJzZUNsYXNzTWV0aG9kKG1lbWJlclN0YXJ0LCAvKiBpc0NvbnN0cnVjdG9yICovIGZhbHNlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBHZXQgdGhlIGlkZW50aWZpZXIgbmFtZSBzbyB3ZSBjYW4gdGVsbCBpZiBpdCdzIGFjdHVhbGx5IGEga2V5d29yZCBsaWtlIFwiYXN5bmNcIiwgXCJnZXRcIiwgb3JcbiAgLy8gXCJzZXRcIi5cbiAgcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCk7XG4gIGxldCBpc0NvbnN0cnVjdG9yID0gZmFsc2U7XG4gIGNvbnN0IHRva2VuID0gX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXTtcbiAgLy8gV2UgYWxsb3cgXCJjb25zdHJ1Y3RvclwiIGFzIGVpdGhlciBhbiBpZGVudGlmaWVyIG9yIGEgc3RyaW5nLlxuICBpZiAodG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fY29uc3RydWN0b3IpIHtcbiAgICBpc0NvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgfVxuICBwYXJzZVBvc3RNZW1iZXJOYW1lTW9kaWZpZXJzKCk7XG5cbiAgaWYgKGlzQ2xhc3NNZXRob2QoKSkge1xuICAgIHBhcnNlQ2xhc3NNZXRob2QobWVtYmVyU3RhcnQsIGlzQ29uc3RydWN0b3IpO1xuICB9IGVsc2UgaWYgKGlzQ2xhc3NQcm9wZXJ0eSgpKSB7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gIH0gZWxzZSBpZiAodG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXN5bmMgJiYgIV91dGlsLmlzTGluZVRlcm1pbmF0b3IuY2FsbCh2b2lkIDAsICkpIHtcbiAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9hc3luYztcbiAgICAvLyBhbiBhc3luYyBtZXRob2RcbiAgICBjb25zdCBpc0dlbmVyYXRvciA9IF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3Rhcik7XG4gICAgaWYgKGlzR2VuZXJhdG9yKSB7XG4gICAgICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuXG4gICAgLy8gVGhlIHNvLWNhbGxlZCBwYXJzZWQgbmFtZSB3b3VsZCBoYXZlIGJlZW4gXCJhc3luY1wiOiBnZXQgdGhlIHJlYWwgbmFtZS5cbiAgICBwYXJzZUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzQ29udGV4dElkKTtcbiAgICBwYXJzZVBvc3RNZW1iZXJOYW1lTW9kaWZpZXJzKCk7XG4gICAgcGFyc2VDbGFzc01ldGhvZChtZW1iZXJTdGFydCwgZmFsc2UgLyogaXNDb25zdHJ1Y3RvciAqLyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgKHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2dldCB8fFxuICAgICAgdG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fc2V0KSAmJlxuICAgICEoX3V0aWwuaXNMaW5lVGVybWluYXRvci5jYWxsKHZvaWQgMCwgKSAmJiBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpKVxuICApIHtcbiAgICBpZiAodG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZ2V0KSB7XG4gICAgICBfYmFzZS5zdGF0ZS50b2tlbnNbX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSBfdHlwZXMuVG9rZW5UeXBlLl9nZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IF90eXBlcy5Ub2tlblR5cGUuX3NldDtcbiAgICB9XG4gICAgLy8gYGdldFxcbipgIGlzIGFuIHVuaW5pdGlhbGl6ZWQgcHJvcGVydHkgbmFtZWQgJ2dldCcgZm9sbG93ZWQgYnkgYSBnZW5lcmF0b3IuXG4gICAgLy8gYSBnZXR0ZXIgb3Igc2V0dGVyXG4gICAgLy8gVGhlIHNvLWNhbGxlZCBwYXJzZWQgbmFtZSB3b3VsZCBoYXZlIGJlZW4gXCJnZXQvc2V0XCI6IGdldCB0aGUgcmVhbCBuYW1lLlxuICAgIHBhcnNlQ2xhc3NQcm9wZXJ0eU5hbWUoY2xhc3NDb250ZXh0SWQpO1xuICAgIHBhcnNlQ2xhc3NNZXRob2QobWVtYmVyU3RhcnQsIC8qIGlzQ29uc3RydWN0b3IgKi8gZmFsc2UpO1xuICB9IGVsc2UgaWYgKHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FjY2Vzc29yICYmICFfdXRpbC5pc0xpbmVUZXJtaW5hdG9yLmNhbGwodm9pZCAwLCApKSB7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCk7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuaXNMaW5lVGVybWluYXRvci5jYWxsKHZvaWQgMCwgKSkge1xuICAgIC8vIGFuIHVuaW5pdGlhbGl6ZWQgY2xhc3MgcHJvcGVydHkgKGR1ZSB0byBBU0ksIHNpbmNlIHdlIGRvbid0IG90aGVyd2lzZSByZWNvZ25pemUgdGhlIG5leHQgdG9rZW4pXG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gIH0gZWxzZSB7XG4gICAgX3V0aWwudW5leHBlY3RlZC5jYWxsKHZvaWQgMCwgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUNsYXNzTWV0aG9kKGZ1bmN0aW9uU3RhcnQsIGlzQ29uc3RydWN0b3IpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMuY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKSkge1xuICAgICAgX2Zsb3cuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uLmNhbGwodm9pZCAwLCApO1xuICAgIH1cbiAgfVxuICBfZXhwcmVzc2lvbi5wYXJzZU1ldGhvZC5jYWxsKHZvaWQgMCwgZnVuY3Rpb25TdGFydCwgaXNDb25zdHJ1Y3Rvcik7XG59XG5cbi8vIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgcHJvcGVydHksIGlmIGl0IGlzIGEgc2ltcGxlIGlkZW50aWZpZXIuXG4gZnVuY3Rpb24gcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCkge1xuICBfZXhwcmVzc2lvbi5wYXJzZVByb3BlcnR5TmFtZS5jYWxsKHZvaWQgMCwgY2xhc3NDb250ZXh0SWQpO1xufSBleHBvcnRzLnBhcnNlQ2xhc3NQcm9wZXJ0eU5hbWUgPSBwYXJzZUNsYXNzUHJvcGVydHlOYW1lO1xuXG4gZnVuY3Rpb24gcGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycygpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBfdG9rZW5pemVyLnB1c2hUeXBlQ29udGV4dC5jYWxsKHZvaWQgMCwgMCk7XG4gICAgX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb24pO1xuICAgIF90b2tlbml6ZXIucG9wVHlwZUNvbnRleHQuY2FsbCh2b2lkIDAsIG9sZElzVHlwZSk7XG4gIH1cbn0gZXhwb3J0cy5wYXJzZVBvc3RNZW1iZXJOYW1lTW9kaWZpZXJzID0gcGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycztcblxuIGZ1bmN0aW9uIHBhcnNlQ2xhc3NQcm9wZXJ0eSgpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdG9rZW5pemVyLmVhdFR5cGVUb2tlbi5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5iYW5nKTtcbiAgICBfdHlwZXNjcmlwdC50c1RyeVBhcnNlVHlwZUFubm90YXRpb24uY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSkge1xuICAgICAgX2Zsb3cuZmxvd1BhcnNlVHlwZUFubm90YXRpb24uY2FsbCh2b2lkIDAsICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgY29uc3QgZXF1YWxzVG9rZW5JbmRleCA9IF9iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIF9leHByZXNzaW9uLnBhcnNlTWF5YmVBc3NpZ24uY2FsbCh2b2lkIDAsICk7XG4gICAgX2Jhc2Uuc3RhdGUudG9rZW5zW2VxdWFsc1Rva2VuSW5kZXhdLnJoc0VuZEluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgfVxuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG59IGV4cG9ydHMucGFyc2VDbGFzc1Byb3BlcnR5ID0gcGFyc2VDbGFzc1Byb3BlcnR5O1xuXG5mdW5jdGlvbiBwYXJzZUNsYXNzSWQoaXNTdGF0ZW1lbnQsIG9wdGlvbmFsSWQgPSBmYWxzZSkge1xuICBpZiAoXG4gICAgX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCAmJlxuICAgICghaXNTdGF0ZW1lbnQgfHwgb3B0aW9uYWxJZCkgJiZcbiAgICBfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5faW1wbGVtZW50cylcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICBfbHZhbC5wYXJzZUJpbmRpbmdJZGVudGlmaWVyLmNhbGwodm9pZCAwLCB0cnVlKTtcbiAgfVxuXG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgX3R5cGVzY3JpcHQudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2UgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbikpIHtcbiAgICAgIF9mbG93LmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbi5jYWxsKHZvaWQgMCwgKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIHdhcyBhIHN1cGVyY2xhc3MuXG5mdW5jdGlvbiBwYXJzZUNsYXNzU3VwZXIoKSB7XG4gIGxldCBoYXNTdXBlciA9IGZhbHNlO1xuICBpZiAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2V4dGVuZHMpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByU3Vic2NyaXB0cy5jYWxsKHZvaWQgMCwgKTtcbiAgICBoYXNTdXBlciA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaGFzU3VwZXIgPSBmYWxzZTtcbiAgfVxuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIF90eXBlc2NyaXB0LnRzQWZ0ZXJQYXJzZUNsYXNzU3VwZXIuY2FsbCh2b2lkIDAsIGhhc1N1cGVyKTtcbiAgfSBlbHNlIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd0FmdGVyUGFyc2VDbGFzc1N1cGVyLmNhbGwodm9pZCAwLCBoYXNTdXBlcik7XG4gIH1cbn1cblxuLy8gUGFyc2VzIG1vZHVsZSBleHBvcnQgZGVjbGFyYXRpb24uXG5cbiBmdW5jdGlvbiBwYXJzZUV4cG9ydCgpIHtcbiAgY29uc3QgZXhwb3J0SW5kZXggPSBfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMTtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBpZiAoX3R5cGVzY3JpcHQudHNUcnlQYXJzZUV4cG9ydC5jYWxsKHZvaWQgMCwgKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvLyBleHBvcnQgKiBmcm9tICcuLi4nXG4gIGlmIChzaG91bGRQYXJzZUV4cG9ydFN0YXIoKSkge1xuICAgIHBhcnNlRXhwb3J0U3RhcigpO1xuICB9IGVsc2UgaWYgKGlzRXhwb3J0RGVmYXVsdFNwZWNpZmllcigpKSB7XG4gICAgLy8gZXhwb3J0IGRlZmF1bHQgZnJvbVxuICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkgJiYgX3Rva2VuaXplci5sb29rYWhlYWRUeXBlLmNhbGwodm9pZCAwLCApID09PSBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpIHtcbiAgICAgIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSk7XG4gICAgICBfdXRpbC5leHBlY3QuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuc3Rhcik7XG4gICAgICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKTtcbiAgICAgIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VFeHBvcnRTcGVjaWZpZXJzTWF5YmUoKTtcbiAgICB9XG4gICAgcGFyc2VFeHBvcnRGcm9tKCk7XG4gIH0gZWxzZSBpZiAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQpKSB7XG4gICAgLy8gZXhwb3J0IGRlZmF1bHQgLi4uXG4gICAgcGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbigpO1xuICB9IGVsc2UgaWYgKHNob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSkge1xuICAgIHBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBleHBvcnQgeyB4LCB5IGFzIHogfSBbZnJvbSAnLi4uJ11cbiAgICBwYXJzZUV4cG9ydFNwZWNpZmllcnMoKTtcbiAgICBwYXJzZUV4cG9ydEZyb20oKTtcbiAgfVxuICBfYmFzZS5zdGF0ZS50b2tlbnNbZXhwb3J0SW5kZXhdLnJoc0VuZEluZGV4ID0gX2Jhc2Uuc3RhdGUudG9rZW5zLmxlbmd0aDtcbn0gZXhwb3J0cy5wYXJzZUV4cG9ydCA9IHBhcnNlRXhwb3J0O1xuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCkge1xuICBpZiAoX2Jhc2UuaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIGlmIChfdHlwZXNjcmlwdC50c1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBpZiAoX2Zsb3cuZmxvd1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24uY2FsbCh2b2lkIDAsICkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgY29uc3QgZnVuY3Rpb25TdGFydCA9IF9iYXNlLnN0YXRlLnN0YXJ0O1xuICBpZiAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uKSkge1xuICAgIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgdHJ1ZSwgdHJ1ZSk7XG4gIH0gZWxzZSBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSAmJiBfdG9rZW5pemVyLmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICkgPT09IF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uKSB7XG4gICAgLy8gYXN5bmMgZnVuY3Rpb24gZGVjbGFyYXRpb25cbiAgICBfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKTtcbiAgICBfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24pO1xuICAgIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgdHJ1ZSwgdHJ1ZSk7XG4gIH0gZWxzZSBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MpKSB7XG4gICAgcGFyc2VDbGFzcyh0cnVlLCB0cnVlKTtcbiAgfSBlbHNlIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmF0KSkge1xuICAgIHBhcnNlRGVjb3JhdG9ycygpO1xuICAgIHBhcnNlQ2xhc3ModHJ1ZSwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VNYXliZUFzc2lnbi5jYWxsKHZvaWQgMCwgKTtcbiAgICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlRXhwb3J0RGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsICk7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCkge1xuICAgIF9mbG93LmZsb3dQYXJzZUV4cG9ydERlY2xhcmF0aW9uLmNhbGwodm9pZCAwLCApO1xuICB9IGVsc2Uge1xuICAgIHBhcnNlU3RhdGVtZW50KHRydWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzRXhwb3J0RGVmYXVsdFNwZWNpZmllcigpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgJiYgX3R5cGVzY3JpcHQudHNJc0RlY2xhcmF0aW9uU3RhcnQuY2FsbCh2b2lkIDAsICkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAoX2Jhc2UuaXNGbG93RW5hYmxlZCAmJiBfZmxvdy5mbG93U2hvdWxkRGlzYWxsb3dFeHBvcnREZWZhdWx0U3BlY2lmaWVyLmNhbGwodm9pZCAwLCApKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgcmV0dXJuIF9iYXNlLnN0YXRlLmNvbnRleHR1YWxLZXl3b3JkICE9PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jO1xuICB9XG5cbiAgaWYgKCFfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLl9kZWZhdWx0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IF9uZXh0ID0gX3Rva2VuaXplci5uZXh0VG9rZW5TdGFydC5jYWxsKHZvaWQgMCwgKTtcbiAgY29uc3QgbG9va2FoZWFkID0gX3Rva2VuaXplci5sb29rYWhlYWRUeXBlQW5kS2V5d29yZC5jYWxsKHZvaWQgMCwgKTtcbiAgY29uc3QgaGFzRnJvbSA9XG4gICAgbG9va2FoZWFkLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSAmJiBsb29rYWhlYWQuY29udGV4dHVhbEtleXdvcmQgPT09IF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbTtcbiAgaWYgKGxvb2thaGVhZC50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gbG9va2FoZWFkIGFnYWluIHdoZW4gYGV4cG9ydCBkZWZhdWx0IGZyb21gIGlzIHNlZW5cbiAgaWYgKGhhc0Zyb20pIHtcbiAgICBjb25zdCBuZXh0QWZ0ZXJGcm9tID0gX2Jhc2UuaW5wdXQuY2hhckNvZGVBdChfdG9rZW5pemVyLm5leHRUb2tlblN0YXJ0U2luY2UuY2FsbCh2b2lkIDAsIF9uZXh0ICsgNCkpO1xuICAgIHJldHVybiBuZXh0QWZ0ZXJGcm9tID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5xdW90YXRpb25NYXJrIHx8IG5leHRBZnRlckZyb20gPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLmFwb3N0cm9waGU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydFNwZWNpZmllcnNNYXliZSgpIHtcbiAgaWYgKF90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgIHBhcnNlRXhwb3J0U3BlY2lmaWVycygpO1xuICB9XG59XG5cbiBmdW5jdGlvbiBwYXJzZUV4cG9ydEZyb20oKSB7XG4gIGlmIChfdXRpbC5lYXRDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByQXRvbS5jYWxsKHZvaWQgMCwgKTtcbiAgICBtYXliZVBhcnNlSW1wb3J0QXR0cmlidXRlcygpO1xuICB9XG4gIF91dGlsLnNlbWljb2xvbi5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy5wYXJzZUV4cG9ydEZyb20gPSBwYXJzZUV4cG9ydEZyb207XG5cbmZ1bmN0aW9uIHNob3VsZFBhcnNlRXhwb3J0U3RhcigpIHtcbiAgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICByZXR1cm4gX2Zsb3cuZmxvd1Nob3VsZFBhcnNlRXhwb3J0U3Rhci5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydFN0YXIoKSB7XG4gIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1BhcnNlRXhwb3J0U3Rhci5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBiYXNlUGFyc2VFeHBvcnRTdGFyKCk7XG4gIH1cbn1cblxuIGZ1bmN0aW9uIGJhc2VQYXJzZUV4cG9ydFN0YXIoKSB7XG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKTtcblxuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIHBhcnNlRXhwb3J0TmFtZXNwYWNlKCk7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VFeHBvcnRGcm9tKCk7XG4gIH1cbn0gZXhwb3J0cy5iYXNlUGFyc2VFeHBvcnRTdGFyID0gYmFzZVBhcnNlRXhwb3J0U3RhcjtcblxuZnVuY3Rpb24gcGFyc2VFeHBvcnROYW1lc3BhY2UoKSB7XG4gIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgX2Jhc2Uuc3RhdGUudG9rZW5zW19iYXNlLnN0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gX3R5cGVzLlRva2VuVHlwZS5fYXM7XG4gIF9leHByZXNzaW9uLnBhcnNlSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgcGFyc2VFeHBvcnRTcGVjaWZpZXJzTWF5YmUoKTtcbiAgcGFyc2VFeHBvcnRGcm9tKCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSB7XG4gIHJldHVybiAoXG4gICAgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgJiYgX3R5cGVzY3JpcHQudHNJc0RlY2xhcmF0aW9uU3RhcnQuY2FsbCh2b2lkIDAsICkpIHx8XG4gICAgKF9iYXNlLmlzRmxvd0VuYWJsZWQgJiYgX2Zsb3cuZmxvd1Nob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsICkpIHx8XG4gICAgX2Jhc2Uuc3RhdGUudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5fdmFyIHx8XG4gICAgX2Jhc2Uuc3RhdGUudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5fY29uc3QgfHxcbiAgICBfYmFzZS5zdGF0ZS50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLl9sZXQgfHxcbiAgICBfYmFzZS5zdGF0ZS50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbiB8fFxuICAgIF9iYXNlLnN0YXRlLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzIHx8XG4gICAgX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSB8fFxuICAgIF90b2tlbml6ZXIubWF0Y2guY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuYXQpXG4gICk7XG59XG5cbi8vIFBhcnNlcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1vZHVsZSBleHBvcnRzLlxuIGZ1bmN0aW9uIHBhcnNlRXhwb3J0U3BlY2lmaWVycygpIHtcbiAgbGV0IGZpcnN0ID0gdHJ1ZTtcblxuICAvLyBleHBvcnQgeyB4LCB5IGFzIHogfSBbZnJvbSAnLi4uJ11cbiAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG5cbiAgd2hpbGUgKCFfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpICYmICFfYmFzZS5zdGF0ZS5lcnJvcikge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKTtcbiAgICAgIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBwYXJzZUV4cG9ydFNwZWNpZmllcigpO1xuICB9XG59IGV4cG9ydHMucGFyc2VFeHBvcnRTcGVjaWZpZXJzID0gcGFyc2VFeHBvcnRTcGVjaWZpZXJzO1xuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydFNwZWNpZmllcigpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlRXhwb3J0U3BlY2lmaWVyLmNhbGwodm9pZCAwLCApO1xuICAgIHJldHVybjtcbiAgfVxuICBfZXhwcmVzc2lvbi5wYXJzZUlkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBfdG9rZW5pemVyLklkZW50aWZpZXJSb2xlLkV4cG9ydEFjY2VzcztcbiAgaWYgKF91dGlsLmVhdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXMpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbi8qKlxuICogU3RhcnRpbmcgYXQgdGhlIGBtb2R1bGVgIHRva2VuIGluIGFuIGltcG9ydCwgZGV0ZXJtaW5lIGlmIGl0IHdhcyB0cnVseSBhblxuICogaW1wb3J0IHJlZmxlY3Rpb24gdG9rZW4gb3IganVzdCBsb29rcyBsaWtlIG9uZS5cbiAqXG4gKiBSZXR1cm5zIHRydWUgZm9yOlxuICogaW1wb3J0IG1vZHVsZSBmb28gZnJvbSBcImZvb1wiO1xuICogaW1wb3J0IG1vZHVsZSBmcm9tIGZyb20gXCJmb29cIjtcbiAqXG4gKiBSZXR1cm5zIGZhbHNlIGZvcjpcbiAqIGltcG9ydCBtb2R1bGUgZnJvbSBcImZvb1wiO1xuICogaW1wb3J0IG1vZHVsZSwge2Jhcn0gZnJvbSBcImZvb1wiO1xuICovXG5mdW5jdGlvbiBpc0ltcG9ydFJlZmxlY3Rpb24oKSB7XG4gIGNvbnN0IHNuYXBzaG90ID0gX2Jhc2Uuc3RhdGUuc25hcHNob3QoKTtcbiAgX3V0aWwuZXhwZWN0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpO1xuICBpZiAoX3V0aWwuZWF0Q29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSkge1xuICAgIGlmIChfdXRpbC5pc0NvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgIF9iYXNlLnN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBfYmFzZS5zdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEVhdCB0aGUgXCJtb2R1bGVcIiB0b2tlbiBmcm9tIHRoZSBpbXBvcnQgcmVmbGVjdGlvbiBwcm9wb3NhbC5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWltcG9ydC1yZWZsZWN0aW9uXG4gKi9cbmZ1bmN0aW9uIHBhcnNlTWF5YmVJbXBvcnRSZWZsZWN0aW9uKCkge1xuICAvLyBpc0ltcG9ydFJlZmxlY3Rpb24gZG9lcyBzbmFwc2hvdC9yZXN0b3JlLCBzbyBvbmx5IHJ1biBpdCBpZiB3ZSBzZWUgdGhlIHdvcmRcbiAgLy8gXCJtb2R1bGVcIi5cbiAgaWYgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpICYmIGlzSW1wb3J0UmVmbGVjdGlvbigpKSB7XG4gICAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICB9XG59XG5cbi8vIFBhcnNlcyBpbXBvcnQgZGVjbGFyYXRpb24uXG5cbiBmdW5jdGlvbiBwYXJzZUltcG9ydCgpIHtcbiAgaWYgKF9iYXNlLmlzVHlwZVNjcmlwdEVuYWJsZWQgJiYgX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSAmJiBfdG9rZW5pemVyLmxvb2thaGVhZFR5cGUuY2FsbCh2b2lkIDAsICkgPT09IF90eXBlcy5Ub2tlblR5cGUuZXEpIHtcbiAgICBfdHlwZXNjcmlwdC50c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsICk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkICYmIF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSkge1xuICAgIGNvbnN0IGxvb2thaGVhZCA9IF90b2tlbml6ZXIubG9va2FoZWFkVHlwZUFuZEtleXdvcmQuY2FsbCh2b2lkIDAsICk7XG4gICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUgJiYgbG9va2FoZWFkLmNvbnRleHR1YWxLZXl3b3JkICE9PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pIHtcbiAgICAgIC8vIE9uZSBvZiB0aGVzZSBgaW1wb3J0IHR5cGVgIGNhc2VzOlxuICAgICAgLy8gaW1wb3J0IHR5cGUgVCA9IHJlcXVpcmUoJ1QnKTtcbiAgICAgIC8vIGltcG9ydCB0eXBlIEEgZnJvbSAnQSc7XG4gICAgICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpO1xuICAgICAgaWYgKF90b2tlbml6ZXIubG9va2FoZWFkVHlwZS5jYWxsKHZvaWQgMCwgKSA9PT0gX3R5cGVzLlRva2VuVHlwZS5lcSkge1xuICAgICAgICBfdHlwZXNjcmlwdC50c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoaXMgaXMgYW4gYGltcG9ydCB0eXBlLi4uZnJvbWAgc3RhdGVtZW50LCB0aGVuIHdlIGFscmVhZHkgYXRlIHRoZVxuICAgICAgLy8gdHlwZSB0b2tlbiwgc28gcHJvY2VlZCB0byB0aGUgcmVndWxhciBpbXBvcnQgcGFyc2VyLlxuICAgIH0gZWxzZSBpZiAobG9va2FoZWFkLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuc3RhciB8fCBsb29rYWhlYWQudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpIHtcbiAgICAgIC8vIE9uZSBvZiB0aGVzZSBgaW1wb3J0IHR5cGVgIGNhc2VzLCBpbiB3aGljaCBjYXNlIHdlIGNhbiBlYXQgdGhlIHR5cGUgdG9rZW5cbiAgICAgIC8vIGFuZCBwcm9jZWVkIGFzIG5vcm1hbDpcbiAgICAgIC8vIGltcG9ydCB0eXBlICogYXMgQSBmcm9tICdBJztcbiAgICAgIC8vIGltcG9ydCB0eXBlIHthfSBmcm9tICdBJztcbiAgICAgIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSk7XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIGltcG9ydGluZyB0aGUgbmFtZSBcInR5cGVcIi5cbiAgfVxuXG4gIC8vIGltcG9ydCAnLi4uJ1xuICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpKSB7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByQXRvbS5jYWxsKHZvaWQgMCwgKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZU1heWJlSW1wb3J0UmVmbGVjdGlvbigpO1xuICAgIHBhcnNlSW1wb3J0U3BlY2lmaWVycygpO1xuICAgIF91dGlsLmV4cGVjdENvbnRleHR1YWwuY2FsbCh2b2lkIDAsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSk7XG4gICAgX2V4cHJlc3Npb24ucGFyc2VFeHByQXRvbS5jYWxsKHZvaWQgMCwgKTtcbiAgfVxuICBtYXliZVBhcnNlSW1wb3J0QXR0cmlidXRlcygpO1xuICBfdXRpbC5zZW1pY29sb24uY2FsbCh2b2lkIDAsICk7XG59IGV4cG9ydHMucGFyc2VJbXBvcnQgPSBwYXJzZUltcG9ydDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5mdW5jdGlvbiBzaG91bGRQYXJzZURlZmF1bHRJbXBvcnQoKSB7XG4gIHJldHVybiBfdG9rZW5pemVyLm1hdGNoLmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUltcG9ydFNwZWNpZmllckxvY2FsKCkge1xuICBfbHZhbC5wYXJzZUltcG9ydGVkSWRlbnRpZmllci5jYWxsKHZvaWQgMCwgKTtcbn1cblxuLy8gUGFyc2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbW9kdWxlIGltcG9ydHMuXG5mdW5jdGlvbiBwYXJzZUltcG9ydFNwZWNpZmllcnMoKSB7XG4gIGlmIChfYmFzZS5pc0Zsb3dFbmFibGVkKSB7XG4gICAgX2Zsb3cuZmxvd1N0YXJ0UGFyc2VJbXBvcnRTcGVjaWZpZXJzLmNhbGwodm9pZCAwLCApO1xuICB9XG5cbiAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgaWYgKHNob3VsZFBhcnNlRGVmYXVsdEltcG9ydCgpKSB7XG4gICAgLy8gaW1wb3J0IGRlZmF1bHRPYmosIHsgeCwgeSBhcyB6IH0gZnJvbSAnLi4uJ1xuICAgIHBhcnNlSW1wb3J0U3BlY2lmaWVyTG9jYWwoKTtcblxuICAgIGlmICghX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSByZXR1cm47XG4gIH1cblxuICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5zdGFyKSkge1xuICAgIF90b2tlbml6ZXIubmV4dC5jYWxsKHZvaWQgMCwgKTtcbiAgICBfdXRpbC5leHBlY3RDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKTtcblxuICAgIHBhcnNlSW1wb3J0U3BlY2lmaWVyTG9jYWwoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIF91dGlsLmV4cGVjdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICB3aGlsZSAoIV90b2tlbml6ZXIuZWF0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikgJiYgIV9iYXNlLnN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZXRlY3QgYW4gYXR0ZW1wdCB0byBkZWVwIGRlc3RydWN0dXJlXG4gICAgICBpZiAoX3Rva2VuaXplci5lYXQuY2FsbCh2b2lkIDAsIF90eXBlcy5Ub2tlblR5cGUuY29sb24pKSB7XG4gICAgICAgIF91dGlsLnVuZXhwZWN0ZWQuY2FsbCh2b2lkIDAsIFxuICAgICAgICAgIFwiRVMyMDE1IG5hbWVkIGltcG9ydHMgZG8gbm90IGRlc3RydWN0dXJlLiBVc2UgYW5vdGhlciBzdGF0ZW1lbnQgZm9yIGRlc3RydWN0dXJpbmcgYWZ0ZXIgdGhlIGltcG9ydC5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgX3V0aWwuZXhwZWN0LmNhbGwodm9pZCAwLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKTtcbiAgICAgIGlmIChfdG9rZW5pemVyLmVhdC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnNlSW1wb3J0U3BlY2lmaWVyKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VJbXBvcnRTcGVjaWZpZXIoKSB7XG4gIGlmIChfYmFzZS5pc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgX3R5cGVzY3JpcHQudHNQYXJzZUltcG9ydFNwZWNpZmllci5jYWxsKHZvaWQgMCwgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKF9iYXNlLmlzRmxvd0VuYWJsZWQpIHtcbiAgICBfZmxvdy5mbG93UGFyc2VJbXBvcnRTcGVjaWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gICAgcmV0dXJuO1xuICB9XG4gIF9sdmFsLnBhcnNlSW1wb3J0ZWRJZGVudGlmaWVyLmNhbGwodm9pZCAwLCApO1xuICBpZiAoX3V0aWwuaXNDb250ZXh0dWFsLmNhbGwodm9pZCAwLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIF9iYXNlLnN0YXRlLnRva2Vuc1tfYmFzZS5zdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBfdG9rZW5pemVyLklkZW50aWZpZXJSb2xlLkltcG9ydEFjY2VzcztcbiAgICBfdG9rZW5pemVyLm5leHQuY2FsbCh2b2lkIDAsICk7XG4gICAgX2x2YWwucGFyc2VJbXBvcnRlZElkZW50aWZpZXIuY2FsbCh2b2lkIDAsICk7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBpbXBvcnQgYXR0cmlidXRlcyBsaWtlIGB3aXRoIHt0eXBlOiBcImpzb25cIn1gLCBvciB0aGUgbGVnYWN5IGZvcm1cbiAqIGBhc3NlcnQge3R5cGU6IFwianNvblwifWAuXG4gKlxuICogSW1wb3J0IGF0dHJpYnV0ZXMgdGVjaG5pY2FsbHkgaGF2ZSB0aGVpciBvd24gc3ludGF4LCBidXQgYXJlIGFsd2F5cyBwYXJzZWFibGVcbiAqIGFzIGEgcGxhaW4gSlMgb2JqZWN0LCBzbyBqdXN0IGRvIHRoYXQgZm9yIHNpbXBsaWNpdHkuXG4gKi9cbmZ1bmN0aW9uIG1heWJlUGFyc2VJbXBvcnRBdHRyaWJ1dGVzKCkge1xuICBpZiAoX3Rva2VuaXplci5tYXRjaC5jYWxsKHZvaWQgMCwgX3R5cGVzLlRva2VuVHlwZS5fd2l0aCkgfHwgKF91dGlsLmlzQ29udGV4dHVhbC5jYWxsKHZvaWQgMCwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3NlcnQpICYmICFfdXRpbC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsuY2FsbCh2b2lkIDAsICkpKSB7XG4gICAgX3Rva2VuaXplci5uZXh0LmNhbGwodm9pZCAwLCApO1xuICAgIF9leHByZXNzaW9uLnBhcnNlT2JqLmNhbGwodm9pZCAwLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTtcbnZhciBfaW5kZXggPSByZXF1aXJlKCcuLi90b2tlbml6ZXIvaW5kZXgnKTtcbnZhciBfY2hhcmNvZGVzID0gcmVxdWlyZSgnLi4vdXRpbC9jaGFyY29kZXMnKTtcbnZhciBfYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpO1xudmFyIF9zdGF0ZW1lbnQgPSByZXF1aXJlKCcuL3N0YXRlbWVudCcpO1xuXG4gZnVuY3Rpb24gcGFyc2VGaWxlKCkge1xuICAvLyBJZiBlbmFibGVkLCBza2lwIGxlYWRpbmcgaGFzaGJhbmcgbGluZS5cbiAgaWYgKFxuICAgIF9iYXNlLnN0YXRlLnBvcyA9PT0gMCAmJlxuICAgIF9iYXNlLmlucHV0LmNoYXJDb2RlQXQoMCkgPT09IF9jaGFyY29kZXMuY2hhckNvZGVzLm51bWJlclNpZ24gJiZcbiAgICBfYmFzZS5pbnB1dC5jaGFyQ29kZUF0KDEpID09PSBfY2hhcmNvZGVzLmNoYXJDb2Rlcy5leGNsYW1hdGlvbk1hcmtcbiAgKSB7XG4gICAgX2luZGV4LnNraXBMaW5lQ29tbWVudC5jYWxsKHZvaWQgMCwgMik7XG4gIH1cbiAgX2luZGV4Lm5leHRUb2tlbi5jYWxsKHZvaWQgMCwgKTtcbiAgcmV0dXJuIF9zdGF0ZW1lbnQucGFyc2VUb3BMZXZlbC5jYWxsKHZvaWQgMCwgKTtcbn0gZXhwb3J0cy5wYXJzZUZpbGUgPSBwYXJzZUZpbGU7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTtcblxudmFyIF9iYXNlID0gcmVxdWlyZSgnLi90cmF2ZXJzZXIvYmFzZScpO1xudmFyIF9pbmRleCA9IHJlcXVpcmUoJy4vdHJhdmVyc2VyL2luZGV4Jyk7XG5cbiBjbGFzcyBGaWxlIHtcbiAgXG4gIFxuXG4gIGNvbnN0cnVjdG9yKHRva2Vucywgc2NvcGVzKSB7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy5zY29wZXMgPSBzY29wZXM7XG4gIH1cbn0gZXhwb3J0cy5GaWxlID0gRmlsZTtcblxuIGZ1bmN0aW9uIHBhcnNlKFxuICBpbnB1dCxcbiAgaXNKU1hFbmFibGVkLFxuICBpc1R5cGVTY3JpcHRFbmFibGVkLFxuICBpc0Zsb3dFbmFibGVkLFxuKSB7XG4gIGlmIChpc0Zsb3dFbmFibGVkICYmIGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29tYmluZSBmbG93IGFuZCB0eXBlc2NyaXB0IHBsdWdpbnMuXCIpO1xuICB9XG4gIF9iYXNlLmluaXRQYXJzZXIuY2FsbCh2b2lkIDAsIGlucHV0LCBpc0pTWEVuYWJsZWQsIGlzVHlwZVNjcmlwdEVuYWJsZWQsIGlzRmxvd0VuYWJsZWQpO1xuICBjb25zdCByZXN1bHQgPSBfaW5kZXgucGFyc2VGaWxlLmNhbGwodm9pZCAwLCApO1xuICBpZiAoX2Jhc2Uuc3RhdGUuZXJyb3IpIHtcbiAgICB0aHJvdyBfYmFzZS5hdWdtZW50RXJyb3IuY2FsbCh2b2lkIDAsIF9iYXNlLnN0YXRlLmVycm9yKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufSBleHBvcnRzLnBhcnNlID0gcGFyc2U7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX2tleXdvcmRzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci9rZXl3b3JkcycpO1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBvcHRpb25hbCBjaGFpbiBvciBudWxsaXNoIGNvYWxlc2Npbmcgb3BlcmF0aW9uIGhhcyBhbnkgYXdhaXQgc3RhdGVtZW50cyBpblxuICogaXQuIElmIHNvLCB3ZSdsbCBuZWVkIHRvIHRyYW5zcGlsZSB0byBhbiBhc3luYyBvcGVyYXRpb24uXG4gKlxuICogV2UgY29tcHV0ZSB0aGlzIGJ5IHdhbGtpbmcgdGhlIGxlbmd0aCBvZiB0aGUgb3BlcmF0aW9uIGFuZCByZXR1cm5pbmcgdHJ1ZSBpZiB3ZSBzZWUgYW4gYXdhaXRcbiAqIGtleXdvcmQgdXNlZCBhcyBhIHJlYWwgYXdhaXQgKHJhdGhlciB0aGFuIGFuIG9iamVjdCBrZXkgb3IgcHJvcGVydHkgYWNjZXNzKS4gTmVzdGVkIG9wdGlvbmFsXG4gKiBjaGFpbi9udWxsaXNoIG9wZXJhdGlvbnMgbmVlZCB0byBiZSB0cmFja2VkIGJ1dCBkb24ndCBzaWxlbmNlIGF3YWl0LCBidXQgYSBuZXN0ZWQgYXN5bmMgZnVuY3Rpb25cbiAqIChvciBhbnkgb3RoZXIgbmVzdGVkIHNjb3BlKSB3aWxsIG1ha2UgdGhlIGF3YWl0IG5vdCBjb3VudC5cbiAqL1xuIGZ1bmN0aW9uIGlzQXN5bmNPcGVyYXRpb24odG9rZW5zKSB7XG4gIGxldCBpbmRleCA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgbGV0IGRlcHRoID0gMDtcbiAgY29uc3Qgc3RhcnRUb2tlbiA9IHRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgZG8ge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zLnRva2Vuc1tpbmRleF07XG4gICAgaWYgKHRva2VuLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICBkZXB0aCsrO1xuICAgIH1cbiAgICBpZiAodG9rZW4uaXNPcHRpb25hbENoYWluRW5kKSB7XG4gICAgICBkZXB0aC0tO1xuICAgIH1cbiAgICBkZXB0aCArPSB0b2tlbi5udW1OdWxsaXNoQ29hbGVzY2VTdGFydHM7XG4gICAgZGVwdGggLT0gdG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlRW5kcztcblxuICAgIGlmIChcbiAgICAgIHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2F3YWl0ICYmXG4gICAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PSBudWxsICYmXG4gICAgICB0b2tlbi5zY29wZURlcHRoID09PSBzdGFydFRva2VuLnNjb3BlRGVwdGhcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpbmRleCArPSAxO1xuICB9IHdoaWxlIChkZXB0aCA+IDAgJiYgaW5kZXggPCB0b2tlbnMudG9rZW5zLmxlbmd0aCk7XG4gIHJldHVybiBmYWxzZTtcbn0gZXhwb3J0cy5kZWZhdWx0ID0gaXNBc3luY09wZXJhdGlvbjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5cbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcbnZhciBfaXNBc3luY09wZXJhdGlvbiA9IHJlcXVpcmUoJy4vdXRpbC9pc0FzeW5jT3BlcmF0aW9uJyk7IHZhciBfaXNBc3luY09wZXJhdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pc0FzeW5jT3BlcmF0aW9uKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG4gY2xhc3MgVG9rZW5Qcm9jZXNzb3Ige1xuICAgX19pbml0KCkge3RoaXMucmVzdWx0Q29kZSA9IFwiXCJ9XG4gIC8vIEFycmF5IG1hcHBpbmcgaW5wdXQgdG9rZW4gaW5kZXggdG8gb3B0aW9uYWwgc3RyaW5nIGluZGV4IHBvc2l0aW9uIGluIHRoZVxuICAvLyBvdXRwdXQgY29kZS5cbiAgIF9faW5pdDIoKSB7dGhpcy5yZXN1bHRNYXBwaW5ncyA9IG5ldyBBcnJheSh0aGlzLnRva2Vucy5sZW5ndGgpfVxuICAgX19pbml0MygpIHt0aGlzLnRva2VuSW5kZXggPSAwfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICBjb2RlLFxuICAgICB0b2tlbnMsXG4gICAgIGlzRmxvd0VuYWJsZWQsXG4gICAgIGRpc2FibGVFU1RyYW5zZm9ybXMsXG4gICAgIGhlbHBlck1hbmFnZXIsXG4gICkgezt0aGlzLmNvZGUgPSBjb2RlO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuaXNGbG93RW5hYmxlZCA9IGlzRmxvd0VuYWJsZWQ7dGhpcy5kaXNhYmxlRVNUcmFuc2Zvcm1zID0gZGlzYWJsZUVTVHJhbnNmb3Jtczt0aGlzLmhlbHBlck1hbmFnZXIgPSBoZWxwZXJNYW5hZ2VyO1Rva2VuUHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtUb2tlblByb2Nlc3Nvci5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpO1Rva2VuUHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7fVxuXG4gIC8qKlxuICAgKiBTbmFwc2hvdCB0aGUgdG9rZW4gc3RhdGUgaW4gYSB3YXkgdGhhdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIsIHVzZWZ1bCBmb3JcbiAgICogdGhpbmdzIGxpa2UgbG9va2FoZWFkLlxuICAgKlxuICAgKiByZXN1bHRNYXBwaW5ncyBkbyBub3QgbmVlZCB0byBiZSBjb3BpZWQgc2luY2UgaW4gYWxsIHVzZSBjYXNlcywgdGhleSB3aWxsXG4gICAqIGJlIG92ZXJ3cml0dGVuIGFueXdheSBhZnRlciByZXN0b3JlLlxuICAgKi9cbiAgc25hcHNob3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3VsdENvZGU6IHRoaXMucmVzdWx0Q29kZSxcbiAgICAgIHRva2VuSW5kZXg6IHRoaXMudG9rZW5JbmRleCxcbiAgICB9O1xuICB9XG5cbiAgcmVzdG9yZVRvU25hcHNob3Qoc25hcHNob3QpIHtcbiAgICB0aGlzLnJlc3VsdENvZGUgPSBzbmFwc2hvdC5yZXN1bHRDb2RlO1xuICAgIHRoaXMudG9rZW5JbmRleCA9IHNuYXBzaG90LnRva2VuSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuZCByZXR1cm4gdGhlIGNvZGUgZ2VuZXJhdGVkIHNpbmNlIHRoZSBzbmFwc2hvdCwgbGVhdmluZyB0aGVcbiAgICogY3VycmVudCB0b2tlbiBwb3NpdGlvbiBpbi1wbGFjZS4gVW5saWtlIG1vc3QgVG9rZW5Qcm9jZXNzb3Igb3BlcmF0aW9ucyxcbiAgICogdGhpcyBvcGVyYXRpb24gY2FuIHJlc3VsdCBpbiBpbnB1dC9vdXRwdXQgbGluZSBudW1iZXIgbWlzbWF0Y2hlcyBiZWNhdXNlXG4gICAqIHRoZSByZW1vdmVkIGNvZGUgbWF5IGNvbnRhaW4gbmV3bGluZXMsIHNvIHRoaXMgb3BlcmF0aW9uIHNob3VsZCBiZSB1c2VkXG4gICAqIHNwYXJpbmdseS5cbiAgICovXG4gIGRhbmdlcm91c2x5R2V0QW5kUmVtb3ZlQ29kZVNpbmNlU25hcHNob3Qoc25hcHNob3QpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnJlc3VsdENvZGUuc2xpY2Uoc25hcHNob3QucmVzdWx0Q29kZS5sZW5ndGgpO1xuICAgIHRoaXMucmVzdWx0Q29kZSA9IHNuYXBzaG90LnJlc3VsdENvZGU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMucmVzdWx0Q29kZSA9IFwiXCI7XG4gICAgdGhpcy5yZXN1bHRNYXBwaW5ncyA9IG5ldyBBcnJheSh0aGlzLnRva2Vucy5sZW5ndGgpO1xuICAgIHRoaXMudG9rZW5JbmRleCA9IDA7XG4gIH1cblxuICBtYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgoaW5kZXgsIGNvbnRleHR1YWxLZXl3b3JkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpICYmXG4gICAgICB0aGlzLnRva2Vuc1tpbmRleF0uY29udGV4dHVhbEtleXdvcmQgPT09IGNvbnRleHR1YWxLZXl3b3JkXG4gICAgKTtcbiAgfVxuXG4gIGlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkge1xuICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gcHJvY2VzcyBlc2NhcGVzIHNpbmNlIHRlY2huaWNhbGx5IHlvdSBjYW4gaGF2ZSB1bmljb2RlIGVzY2FwZXMgaW4gdmFyaWFibGVcbiAgICAvLyBuYW1lcy5cbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRoaXMudG9rZW5zW2luZGV4XSk7XG4gIH1cblxuICBpZGVudGlmaWVyTmFtZUF0UmVsYXRpdmVJbmRleChyZWxhdGl2ZUluZGV4KSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0aGlzLnRva2VuQXRSZWxhdGl2ZUluZGV4KHJlbGF0aXZlSW5kZXgpKTtcbiAgfVxuXG4gIGlkZW50aWZpZXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odGhpcy5jdXJyZW50VG9rZW4oKSk7XG4gIH1cblxuICBpZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgfVxuXG4gIHJhd0NvZGVGb3JUb2tlbih0b2tlbikge1xuICAgIHJldHVybiB0aGlzLmNvZGUuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCk7XG4gIH1cblxuICBzdHJpbmdWYWx1ZUF0SW5kZXgoaW5kZXgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdWYWx1ZUZvclRva2VuKHRoaXMudG9rZW5zW2luZGV4XSk7XG4gIH1cblxuICBzdHJpbmdWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdWYWx1ZUZvclRva2VuKHRoaXMuY3VycmVudFRva2VuKCkpO1xuICB9XG5cbiAgc3RyaW5nVmFsdWVGb3JUb2tlbih0b2tlbikge1xuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBpZGVudGlmeSB3aGVuIHR3byBpbXBvcnRzIGFyZSB0aGUgc2FtZSBhbmQgdG8gcmVzb2x2ZSBUeXBlU2NyaXB0IGVudW0ga2V5cy5cbiAgICAvLyBJZGVhbGx5IHdlJ2QgcHJvY2VzcyBlc2NhcGVzIHdpdGhpbiB0aGUgc3RyaW5ncywgYnV0IGZvciBub3cgd2UgcHJldHR5IG11Y2ggdGFrZSB0aGUgcmF3XG4gICAgLy8gY29kZS5cbiAgICByZXR1cm4gdGhpcy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0ICsgMSwgdG9rZW4uZW5kIC0gMSk7XG4gIH1cblxuICBtYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHQxKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MTtcbiAgfVxuXG4gIG1hdGNoZXMyQXRJbmRleChpbmRleCwgdDEsIHQyKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MSAmJiB0aGlzLnRva2Vuc1tpbmRleCArIDFdLnR5cGUgPT09IHQyO1xuICB9XG5cbiAgbWF0Y2hlczNBdEluZGV4KGluZGV4LCB0MSwgdDIsIHQzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MSAmJlxuICAgICAgdGhpcy50b2tlbnNbaW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbaW5kZXggKyAyXS50eXBlID09PSB0M1xuICAgICk7XG4gIH1cblxuICBtYXRjaGVzMSh0MSkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxO1xuICB9XG5cbiAgbWF0Y2hlczIodDEsIHQyKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0udHlwZSA9PT0gdDEgJiYgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMV0udHlwZSA9PT0gdDI7XG4gIH1cblxuICBtYXRjaGVzMyh0MSwgdDIsIHQzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0udHlwZSA9PT0gdDEgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDFdLnR5cGUgPT09IHQyICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAyXS50eXBlID09PSB0M1xuICAgICk7XG4gIH1cblxuICBtYXRjaGVzNCh0MSwgdDIsIHQzLCB0NCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMl0udHlwZSA9PT0gdDMgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDNdLnR5cGUgPT09IHQ0XG4gICAgKTtcbiAgfVxuXG4gIG1hdGNoZXM1KHQxLCB0MiwgdDMsIHQ0LCB0NSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMl0udHlwZSA9PT0gdDMgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDNdLnR5cGUgPT09IHQ0ICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyA0XS50eXBlID09PSB0NVxuICAgICk7XG4gIH1cblxuICBtYXRjaGVzQ29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIHJldHVybiB0aGlzLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2VuSW5kZXgsIGNvbnRleHR1YWxLZXl3b3JkKTtcbiAgfVxuXG4gIG1hdGNoZXNDb250ZXh0SWRBbmRMYWJlbCh0eXBlLCBjb250ZXh0SWQpIHtcbiAgICByZXR1cm4gdGhpcy5tYXRjaGVzMSh0eXBlKSAmJiB0aGlzLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZCA9PT0gY29udGV4dElkO1xuICB9XG5cbiAgcHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKSB7XG4gICAgbGV0IHdoaXRlc3BhY2VBbmRDb21tZW50cyA9IHRoaXMuY29kZS5zbGljZShcbiAgICAgIHRoaXMudG9rZW5JbmRleCA+IDAgPyB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggLSAxXS5lbmQgOiAwLFxuICAgICAgdGhpcy50b2tlbkluZGV4IDwgdGhpcy50b2tlbnMubGVuZ3RoID8gdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS5zdGFydCA6IHRoaXMuY29kZS5sZW5ndGgsXG4gICAgKTtcbiAgICBpZiAodGhpcy5pc0Zsb3dFbmFibGVkKSB7XG4gICAgICB3aGl0ZXNwYWNlQW5kQ29tbWVudHMgPSB3aGl0ZXNwYWNlQW5kQ29tbWVudHMucmVwbGFjZSgvQGZsb3cvZywgXCJcIik7XG4gICAgfVxuICAgIHJldHVybiB3aGl0ZXNwYWNlQW5kQ29tbWVudHM7XG4gIH1cblxuICByZXBsYWNlVG9rZW4obmV3Q29kZSkge1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLnByZXZpb3VzV2hpdGVzcGFjZUFuZENvbW1lbnRzKCk7XG4gICAgdGhpcy5hcHBlbmRUb2tlblByZWZpeCgpO1xuICAgIHRoaXMucmVzdWx0TWFwcGluZ3NbdGhpcy50b2tlbkluZGV4XSA9IHRoaXMucmVzdWx0Q29kZS5sZW5ndGg7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IG5ld0NvZGU7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgcmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShuZXdDb2RlKSB7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMucHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKS5yZXBsYWNlKC9bXlxcclxcbl0vZywgXCJcIik7XG4gICAgdGhpcy5hcHBlbmRUb2tlblByZWZpeCgpO1xuICAgIHRoaXMucmVzdWx0TWFwcGluZ3NbdGhpcy50b2tlbkluZGV4XSA9IHRoaXMucmVzdWx0Q29kZS5sZW5ndGg7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IG5ld0NvZGU7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgcmVtb3ZlSW5pdGlhbFRva2VuKCkge1xuICAgIHRoaXMucmVwbGFjZVRva2VuKFwiXCIpO1xuICB9XG5cbiAgcmVtb3ZlVG9rZW4oKSB7XG4gICAgdGhpcy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKFwiXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgY29kZSB1bnRpbCB0aGUgbmV4dCB9LCBhY2NvdW50aW5nIGZvciBiYWxhbmNlZCBicmFjZXMuXG4gICAqL1xuICByZW1vdmVCYWxhbmNlZENvZGUoKSB7XG4gICAgbGV0IGJyYWNlRGVwdGggPSAwO1xuICAgIHdoaWxlICghdGhpcy5pc0F0RW5kKCkpIHtcbiAgICAgIGlmICh0aGlzLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgICBicmFjZURlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIGlmIChicmFjZURlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJyYWNlRGVwdGgtLTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gIH1cblxuICBjb3B5RXhwZWN0ZWRUb2tlbih0b2tlblR5cGUpIHtcbiAgICBpZiAodGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS50eXBlICE9PSB0b2tlblR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdG9rZW4gJHt0b2tlblR5cGV9YCk7XG4gICAgfVxuICAgIHRoaXMuY29weVRva2VuKCk7XG4gIH1cblxuICBjb3B5VG9rZW4oKSB7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMucHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKTtcbiAgICB0aGlzLmFwcGVuZFRva2VuUHJlZml4KCk7XG4gICAgdGhpcy5yZXN1bHRNYXBwaW5nc1t0aGlzLnRva2VuSW5kZXhdID0gdGhpcy5yZXN1bHRDb2RlLmxlbmd0aDtcbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5jb2RlLnNsaWNlKFxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS5zdGFydCxcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0uZW5kLFxuICAgICk7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgY29weVRva2VuV2l0aFByZWZpeChwcmVmaXgpIHtcbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5wcmV2aW91c1doaXRlc3BhY2VBbmRDb21tZW50cygpO1xuICAgIHRoaXMuYXBwZW5kVG9rZW5QcmVmaXgoKTtcbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gcHJlZml4O1xuICAgIHRoaXMucmVzdWx0TWFwcGluZ3NbdGhpcy50b2tlbkluZGV4XSA9IHRoaXMucmVzdWx0Q29kZS5sZW5ndGg7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuY29kZS5zbGljZShcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0uc3RhcnQsXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLmVuZCxcbiAgICApO1xuICAgIHRoaXMuYXBwZW5kVG9rZW5TdWZmaXgoKTtcbiAgICB0aGlzLnRva2VuSW5kZXgrKztcbiAgfVxuXG4gICBhcHBlbmRUb2tlblByZWZpeCgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuKCk7XG4gICAgaWYgKHRva2VuLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0cyB8fCB0b2tlbi5pc09wdGlvbmFsQ2hhaW5TdGFydCkge1xuICAgICAgdG9rZW4uaXNBc3luY09wZXJhdGlvbiA9IF9pc0FzeW5jT3BlcmF0aW9uMi5kZWZhdWx0LmNhbGwodm9pZCAwLCB0aGlzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzYWJsZUVTVHJhbnNmb3Jtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlU3RhcnRzKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0czsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5pc0FzeW5jT3BlcmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IFwiYXdhaXQgXCI7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwiYXN5bmNOdWxsaXNoQ29hbGVzY2VcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwibnVsbGlzaENvYWxlc2NlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSBcIihcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRva2VuLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICBpZiAodG9rZW4uaXNBc3luY09wZXJhdGlvbikge1xuICAgICAgICB0aGlzLnJlc3VsdENvZGUgKz0gXCJhd2FpdCBcIjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2VuSW5kZXggPiAwICYmIHRoaXMudG9rZW5BdFJlbGF0aXZlSW5kZXgoLTEpLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuX2RlbGV0ZSkge1xuICAgICAgICBpZiAodG9rZW4uaXNBc3luY09wZXJhdGlvbikge1xuICAgICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcImFzeW5jT3B0aW9uYWxDaGFpbkRlbGV0ZVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXCJvcHRpb25hbENoYWluRGVsZXRlXCIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLmlzQXN5bmNPcGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwiYXN5bmNPcHRpb25hbENoYWluXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwib3B0aW9uYWxDaGFpblwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVzdWx0Q29kZSArPSBcIihbXCI7XG4gICAgfVxuICB9XG5cbiAgIGFwcGVuZFRva2VuU3VmZml4KCkge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW4oKTtcbiAgICBpZiAodG9rZW4uaXNPcHRpb25hbENoYWluRW5kICYmICF0aGlzLmRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAgIHRoaXMucmVzdWx0Q29kZSArPSBcIl0pXCI7XG4gICAgfVxuICAgIGlmICh0b2tlbi5udW1OdWxsaXNoQ29hbGVzY2VFbmRzICYmICF0aGlzLmRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlRW5kczsgaSsrKSB7XG4gICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSBcIikpXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXBwZW5kQ29kZShjb2RlKSB7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IGNvZGU7XG4gIH1cblxuICBjdXJyZW50VG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF07XG4gIH1cblxuICBjdXJyZW50VG9rZW5Db2RlKCkge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW4oKTtcbiAgICByZXR1cm4gdGhpcy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0LCB0b2tlbi5lbmQpO1xuICB9XG5cbiAgdG9rZW5BdFJlbGF0aXZlSW5kZXgocmVsYXRpdmVJbmRleCkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyByZWxhdGl2ZUluZGV4XTtcbiAgfVxuXG4gIGN1cnJlbnRJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdG8gdGhlIG5leHQgdG9rZW4uIE9ubHkgc3VpdGFibGUgaW4gcHJlcHJvY2Vzc2luZyBzdGVwcy4gV2hlblxuICAgKiBnZW5lcmF0aW5nIG5ldyBjb2RlLCB5b3Ugc2hvdWxkIHVzZSBjb3B5VG9rZW4gb3IgcmVtb3ZlVG9rZW4uXG4gICAqL1xuICBuZXh0VG9rZW4oKSB7XG4gICAgaWYgKHRoaXMudG9rZW5JbmRleCA9PT0gdGhpcy50b2tlbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkbHkgcmVhY2hlZCBlbmQgb2YgaW5wdXQuXCIpO1xuICAgIH1cbiAgICB0aGlzLnRva2VuSW5kZXgrKztcbiAgfVxuXG4gIHByZXZpb3VzVG9rZW4oKSB7XG4gICAgdGhpcy50b2tlbkluZGV4LS07XG4gIH1cblxuICBmaW5pc2goKSB7XG4gICAgaWYgKHRoaXMudG9rZW5JbmRleCAhPT0gdGhpcy50b2tlbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmllZCB0byBmaW5pc2ggcHJvY2Vzc2luZyB0b2tlbnMgYmVmb3JlIHJlYWNoaW5nIHRoZSBlbmQuXCIpO1xuICAgIH1cbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5wcmV2aW91c1doaXRlc3BhY2VBbmRDb21tZW50cygpO1xuICAgIHJldHVybiB7Y29kZTogdGhpcy5yZXN1bHRDb2RlLCBtYXBwaW5nczogdGhpcy5yZXN1bHRNYXBwaW5nc307XG4gIH1cblxuICBpc0F0RW5kKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuSW5kZXggPT09IHRoaXMudG9rZW5zLmxlbmd0aDtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBUb2tlblByb2Nlc3NvcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO1xuXG52YXIgX2tleXdvcmRzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci9rZXl3b3JkcycpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8qKlxuICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjbGFzcyBmaWVsZHMgZm9yIHRoaXMgY2xhc3MsIGdpdmVuIGEgdG9rZW4gcHJvY2Vzc29yIHBvaW50aW5nIHRvIHRoZVxuICogb3Blbi1icmFjZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGNsYXNzLlxuICovXG4gZnVuY3Rpb24gZ2V0Q2xhc3NJbmZvKFxuICByb290VHJhbnNmb3JtZXIsXG4gIHRva2VucyxcbiAgbmFtZU1hbmFnZXIsXG4gIGRpc2FibGVFU1RyYW5zZm9ybXMsXG4pIHtcbiAgY29uc3Qgc25hcHNob3QgPSB0b2tlbnMuc25hcHNob3QoKTtcblxuICBjb25zdCBoZWFkZXJJbmZvID0gcHJvY2Vzc0NsYXNzSGVhZGVyKHRva2Vucyk7XG5cbiAgbGV0IGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzID0gW107XG4gIGNvbnN0IGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyA9IFtdO1xuICBjb25zdCBzdGF0aWNJbml0aWFsaXplck5hbWVzID0gW107XG4gIGxldCBjb25zdHJ1Y3Rvckluc2VydFBvcyA9IG51bGw7XG4gIGNvbnN0IGZpZWxkcyA9IFtdO1xuICBjb25zdCByYW5nZXNUb1JlbW92ZSA9IFtdO1xuXG4gIGNvbnN0IGNsYXNzQ29udGV4dElkID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZDtcbiAgaWYgKGNsYXNzQ29udGV4dElkID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBub24tbnVsbCBjbGFzcyBjb250ZXh0IElEIG9uIGNsYXNzIG9wZW4tYnJhY2UuXCIpO1xuICB9XG5cbiAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIsIGNsYXNzQ29udGV4dElkKSkge1xuICAgIGlmICh0b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9jb25zdHJ1Y3RvcikgJiYgIXRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgICh7Y29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsIGNvbnN0cnVjdG9ySW5zZXJ0UG9zfSA9IHByb2Nlc3NDb25zdHJ1Y3Rvcih0b2tlbnMpKTtcbiAgICB9IGVsc2UgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnNlbWkpKSB7XG4gICAgICBpZiAoIWRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAgICAgcmFuZ2VzVG9SZW1vdmUucHVzaCh7c3RhcnQ6IHRva2Vucy5jdXJyZW50SW5kZXgoKSwgZW5kOiB0b2tlbnMuY3VycmVudEluZGV4KCkgKyAxfSk7XG4gICAgICB9XG4gICAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gICAgfSBlbHNlIGlmICh0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVpdGhlciBhIG1ldGhvZCBvciBhIGZpZWxkLiBTa2lwIHRvIHRoZSBpZGVudGlmaWVyIHBhcnQuXG4gICAgICBjb25zdCBzdGF0ZW1lbnRTdGFydEluZGV4ID0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgICAgbGV0IGlzU3RhdGljID0gZmFsc2U7XG4gICAgICBsZXQgaXNFU1ByaXZhdGUgPSBmYWxzZTtcbiAgICAgIGxldCBpc0RlY2xhcmVPckFic3RyYWN0ID0gZmFsc2U7XG4gICAgICB3aGlsZSAoaXNBY2Nlc3NNb2RpZmllcih0b2tlbnMuY3VycmVudFRva2VuKCkpKSB7XG4gICAgICAgIGlmICh0b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fc3RhdGljKSkge1xuICAgICAgICAgIGlzU3RhdGljID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuaGFzaCkpIHtcbiAgICAgICAgICBpc0VTUHJpdmF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9kZWNsYXJlKSB8fCB0b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QpKSB7XG4gICAgICAgICAgaXNEZWNsYXJlT3JBYnN0cmFjdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3RhdGljICYmIHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHN0YXRpYyBibG9jaywgc28gZG9uJ3QgcHJvY2VzcyBpdCBpbiBhbnkgc3BlY2lhbCB3YXkuXG4gICAgICAgIHNraXBUb05leHRDbGFzc0VsZW1lbnQodG9rZW5zLCBjbGFzc0NvbnRleHRJZCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzRVNQcml2YXRlKSB7XG4gICAgICAgIC8vIFN1Y3Jhc2UgZG9lc24ndCBhdHRlbXB0IHRvIHRyYW5zcGlsZSBwcml2YXRlIGZpZWxkczsganVzdCBsZWF2ZSB0aGVtIGFzLWlzLlxuICAgICAgICBza2lwVG9OZXh0Q2xhc3NFbGVtZW50KHRva2VucywgY2xhc3NDb250ZXh0SWQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fY29uc3RydWN0b3IpICYmXG4gICAgICAgICF0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlXG4gICAgICApIHtcbiAgICAgICAgKHtjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cywgY29uc3RydWN0b3JJbnNlcnRQb3N9ID0gcHJvY2Vzc0NvbnN0cnVjdG9yKHRva2VucykpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZVN0YXJ0SW5kZXggPSB0b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgICBza2lwRmllbGROYW1lKHRva2Vucyk7XG4gICAgICBpZiAodG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUubGVzc1RoYW4pIHx8IHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIG1ldGhvZCwgc28gbm90aGluZyB0byBwcm9jZXNzLlxuICAgICAgICBza2lwVG9OZXh0Q2xhc3NFbGVtZW50KHRva2VucywgY2xhc3NDb250ZXh0SWQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIFRoZXJlIG1pZ2h0IGJlIGEgdHlwZSBhbm5vdGF0aW9uIHRoYXQgd2UgbmVlZCB0byBza2lwLlxuICAgICAgd2hpbGUgKHRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgfVxuICAgICAgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgICBjb25zdCBlcXVhbHNJbmRleCA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhbiBpbml0aWFsaXplciwgc28gd2UgbmVlZCB0byB3cmFwIGluIGFuIGluaXRpYWxpemVyIG1ldGhvZC5cbiAgICAgICAgY29uc3QgdmFsdWVFbmQgPSB0b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmICh2YWx1ZUVuZCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgcmhzRW5kSW5kZXggb24gY2xhc3MgZmllbGQgYXNzaWdubWVudC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgICB3aGlsZSAodG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgdmFsdWVFbmQpIHtcbiAgICAgICAgICByb290VHJhbnNmb3JtZXIucHJvY2Vzc1Rva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluaXRpYWxpemVyTmFtZTtcbiAgICAgICAgaWYgKGlzU3RhdGljKSB7XG4gICAgICAgICAgaW5pdGlhbGl6ZXJOYW1lID0gbmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9faW5pdFN0YXRpY1wiKTtcbiAgICAgICAgICBzdGF0aWNJbml0aWFsaXplck5hbWVzLnB1c2goaW5pdGlhbGl6ZXJOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbml0aWFsaXplck5hbWUgPSBuYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiX19pbml0XCIpO1xuICAgICAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcy5wdXNoKGluaXRpYWxpemVyTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmllbGRzIHN0YXJ0IGF0IHRoZSBuYW1lLCBzbyBgc3RhdGljIHggPSAxO2AgaGFzIGEgZmllbGQgcmFuZ2Ugb2YgYHggPSAxO2AuXG4gICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICBpbml0aWFsaXplck5hbWUsXG4gICAgICAgICAgZXF1YWxzSW5kZXgsXG4gICAgICAgICAgc3RhcnQ6IG5hbWVTdGFydEluZGV4LFxuICAgICAgICAgIGVuZDogdG9rZW5zLmN1cnJlbnRJbmRleCgpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIWRpc2FibGVFU1RyYW5zZm9ybXMgfHwgaXNEZWNsYXJlT3JBYnN0cmFjdCkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgcmVndWxhciBmaWVsZCBkZWNsYXJhdGlvbiwgbGlrZSBgeDtgLiBXaXRoIHRoZSBjbGFzcyB0cmFuc2Zvcm0gZW5hYmxlZCwgd2UganVzdFxuICAgICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc28gdGhhdCBubyBvdXRwdXQgaXMgcHJvZHVjZWQuIFdpdGggdGhlIGNsYXNzIHRyYW5zZm9ybSBkaXNhYmxlZCwgd2VcbiAgICAgICAgLy8gdXN1YWxseSB3YW50IHRvIHByZXNlcnZlIHRoZSBkZWNsYXJhdGlvbiAoYnV0IHN0aWxsIHN0cmlwIHR5cGVzKSwgYnV0IGlmIHRoZSBgZGVjbGFyZWBcbiAgICAgICAgLy8gb3IgYGFic3RyYWN0YCBrZXl3b3JkIGlzIHNwZWNpZmllZCwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgbGluZSB0byBhdm9pZCBpbml0aWFsaXppbmcgdGhlXG4gICAgICAgIC8vIHZhbHVlIHRvIHVuZGVmaW5lZC5cbiAgICAgICAgcmFuZ2VzVG9SZW1vdmUucHVzaCh7c3RhcnQ6IHN0YXRlbWVudFN0YXJ0SW5kZXgsIGVuZDogdG9rZW5zLmN1cnJlbnRJbmRleCgpfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9rZW5zLnJlc3RvcmVUb1NuYXBzaG90KHNuYXBzaG90KTtcbiAgaWYgKGRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAvLyBXaXRoIEVTIHRyYW5zZm9ybXMgZGlzYWJsZWQsIHdlIGRvbid0IHdhbnQgdG8gdHJhbnNmb3JtIHJlZ3VsYXIgY2xhc3NcbiAgICAvLyBmaWVsZCBkZWNsYXJhdGlvbnMsIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBhZGRpdGlvbmFsIHRyaWNrcyB0b1xuICAgIC8vIHJlZmVyZW5jZSB0aGUgY29uc3RydWN0b3IgZm9yIHN0YXRpYyBpbml0LCBidXQgd2Ugc3RpbGwgbmVlZCB0byB0cmFuc2Zvcm1cbiAgICAvLyBUeXBlU2NyaXB0IGZpZWxkIGluaXRpYWxpemVycyBkZWZpbmVkIGFzIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgYW5kIHdlXG4gICAgLy8gc3RpbGwgbmVlZCB0byByZW1vdmUgYGRlY2xhcmVgIGZpZWxkcy4gRm9yIG5vdywgd2UgcnVuIHRoZSBzYW1lIGNvZGVcbiAgICAvLyBwYXRoIGJ1dCBvbWl0IGFueSBmaWVsZCBpbmZvcm1hdGlvbiwgYXMgaWYgdGhlIGNsYXNzIGhhZCBubyBmaWVsZFxuICAgIC8vIGRlY2xhcmF0aW9ucy4gSW4gdGhlIGZ1dHVyZSwgd2hlbiB3ZSBmdWxseSBkcm9wIHRoZSBjbGFzcyBmaWVsZHNcbiAgICAvLyB0cmFuc2Zvcm0sIHdlIGNhbiBzaW1wbGlmeSB0aGlzIGNvZGUgc2lnbmlmaWNhbnRseS5cbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVySW5mbyxcbiAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgaW5zdGFuY2VJbml0aWFsaXplck5hbWVzOiBbXSxcbiAgICAgIHN0YXRpY0luaXRpYWxpemVyTmFtZXM6IFtdLFxuICAgICAgY29uc3RydWN0b3JJbnNlcnRQb3MsXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgcmFuZ2VzVG9SZW1vdmUsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVySW5mbyxcbiAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgaW5zdGFuY2VJbml0aWFsaXplck5hbWVzLFxuICAgICAgc3RhdGljSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgIGNvbnN0cnVjdG9ySW5zZXJ0UG9zLFxuICAgICAgZmllbGRzLFxuICAgICAgcmFuZ2VzVG9SZW1vdmUsXG4gICAgfTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBnZXRDbGFzc0luZm87XG5cbi8qKlxuICogTW92ZSB0aGUgdG9rZW4gcHJvY2Vzc29yIHRvIHRoZSBuZXh0IG1ldGhvZC9maWVsZCBpbiB0aGUgY2xhc3MuXG4gKlxuICogVG8gZG8gdGhhdCwgd2Ugc2VlayBmb3J3YXJkIHRvIHRoZSBuZXh0IHN0YXJ0IG9mIGEgY2xhc3MgbmFtZSAoZWl0aGVyIGFuIG9wZW5cbiAqIGJyYWNrZXQgb3IgYW4gaWRlbnRpZmllciwgb3IgdGhlIGNsb3NpbmcgY3VybHkgYnJhY2UpLCB0aGVuIHNlZWsgYmFja3dhcmQgdG9cbiAqIGluY2x1ZGUgYW55IGFjY2VzcyBtb2RpZmllcnMuXG4gKi9cbmZ1bmN0aW9uIHNraXBUb05leHRDbGFzc0VsZW1lbnQodG9rZW5zLCBjbGFzc0NvbnRleHRJZCkge1xuICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIHdoaWxlICh0b2tlbnMuY3VycmVudFRva2VuKCkuY29udGV4dElkICE9PSBjbGFzc0NvbnRleHRJZCkge1xuICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgfVxuICB3aGlsZSAoaXNBY2Nlc3NNb2RpZmllcih0b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoLTEpKSkge1xuICAgIHRva2Vucy5wcmV2aW91c1Rva2VuKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0NsYXNzSGVhZGVyKHRva2Vucykge1xuICBjb25zdCBjbGFzc1Rva2VuID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICBjb25zdCBjb250ZXh0SWQgPSBjbGFzc1Rva2VuLmNvbnRleHRJZDtcbiAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY29udGV4dCBJRCBvbiBjbGFzcyB0b2tlbi5cIik7XG4gIH1cbiAgY29uc3QgaXNFeHByZXNzaW9uID0gY2xhc3NUb2tlbi5pc0V4cHJlc3Npb247XG4gIGlmIChpc0V4cHJlc3Npb24gPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGlzRXhwcmVzc2lvbiBvbiBjbGFzcyB0b2tlbi5cIik7XG4gIH1cbiAgbGV0IGNsYXNzTmFtZSA9IG51bGw7XG4gIGxldCBoYXNTdXBlcmNsYXNzID0gZmFsc2U7XG4gIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgY2xhc3NOYW1lID0gdG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gIH1cbiAgd2hpbGUgKCF0b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMLCBjb250ZXh0SWQpKSB7XG4gICAgLy8gSWYgdGhpcyBoYXMgYSBzdXBlcmNsYXNzLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhbiBgZXh0ZW5kc2AgdG9rZW4uIElmIGl0IGRvZXNuJ3QgaGF2ZSBhXG4gICAgLy8gc3VwZXJjbGFzcywgb25seSB0eXBlIHBhcmFtZXRlcnMgYW5kIGBpbXBsZW1lbnRzYCBjbGF1c2VzIGNhbiBzaG93IHVwIGhlcmUsIGFsbCBvZiB3aGljaFxuICAgIC8vIGNvbnNpc3Qgb25seSBvZiB0eXBlIHRva2Vucy4gQSBkZWNsYXJhdGlvbiBsaWtlIGBjbGFzcyBBPEIgZXh0ZW5kcyBDPiB7YCBzaG91bGQgKm5vdCogY291bnRcbiAgICAvLyBhcyBoYXZpbmcgYSBzdXBlcmNsYXNzLlxuICAgIGlmICh0b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fZXh0ZW5kcykgJiYgIXRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgIGhhc1N1cGVyY2xhc3MgPSB0cnVlO1xuICAgIH1cbiAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIH1cbiAgcmV0dXJuIHtpc0V4cHJlc3Npb24sIGNsYXNzTmFtZSwgaGFzU3VwZXJjbGFzc307XG59XG5cbi8qKlxuICogRXh0cmFjdCB1c2VmdWwgaW5mb3JtYXRpb24gb3V0IG9mIGEgY29uc3RydWN0b3IsIHN0YXJ0aW5nIGF0IHRoZSBcImNvbnN0cnVjdG9yXCIgbmFtZS5cbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0NvbnN0cnVjdG9yKHRva2VucylcblxuXG4ge1xuICBjb25zdCBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cyA9IFtdO1xuXG4gIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgY29uc3QgY29uc3RydWN0b3JDb250ZXh0SWQgPSB0b2tlbnMuY3VycmVudFRva2VuKCkuY29udGV4dElkO1xuICBpZiAoY29uc3RydWN0b3JDb250ZXh0SWQgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGNvbnRleHQgSUQgb24gb3Blbi1wYXJlbiBzdGFydGluZyBjb25zdHJ1Y3RvciBwYXJhbXMuXCIpO1xuICB9XG4gIC8vIEFkdmFuY2UgdGhyb3VnaCBwYXJhbWV0ZXJzIGxvb2tpbmcgZm9yIGFjY2VzcyBtb2RpZmllcnMuXG4gIHdoaWxlICghdG9rZW5zLm1hdGNoZXNDb250ZXh0SWRBbmRMYWJlbChfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUiwgY29uc3RydWN0b3JDb250ZXh0SWQpKSB7XG4gICAgaWYgKHRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQgPT09IGNvbnN0cnVjdG9yQ29udGV4dElkKSB7XG4gICAgICAvLyBDdXJyZW50IHRva2VuIGlzIGFuIG9wZW4gcGFyZW4gb3IgY29tbWEganVzdCBiZWZvcmUgYSBwYXJhbSwgc28gY2hlY2tcbiAgICAgIC8vIHRoYXQgcGFyYW0gZm9yIGFjY2VzcyBtb2RpZmllcnMuXG4gICAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gICAgICBpZiAoaXNBY2Nlc3NNb2RpZmllcih0b2tlbnMuY3VycmVudFRva2VuKCkpKSB7XG4gICAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgICAgd2hpbGUgKGlzQWNjZXNzTW9kaWZpZXIodG9rZW5zLmN1cnJlbnRUb2tlbigpKSkge1xuICAgICAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b2tlbiA9IHRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGlkZW50aWZpZXIgYWZ0ZXIgYWNjZXNzIG1vZGlmaWVycyBpbiBjb25zdHJ1Y3RvciBhcmcuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbik7XG4gICAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLnB1c2goYHRoaXMuJHtuYW1lfSA9ICR7bmFtZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgIH1cbiAgfVxuICAvLyApXG4gIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgLy8gQ29uc3RydWN0b3IgdHlwZSBhbm5vdGF0aW9ucyBhcmUgaW52YWxpZCwgYnV0IHNraXAgdGhlbSBhbnl3YXkgc2luY2VcbiAgLy8gdGhleSdyZSBlYXN5IHRvIHNraXAuXG4gIHdoaWxlICh0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9XG4gIGxldCBjb25zdHJ1Y3Rvckluc2VydFBvcyA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcblxuICAvLyBBZHZhbmNlIHRocm91Z2ggYm9keSBsb29raW5nIGZvciBhIHN1cGVyIGNhbGwuXG4gIGxldCBmb3VuZFN1cGVyQ2FsbCA9IGZhbHNlO1xuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIsIGNvbnN0cnVjdG9yQ29udGV4dElkKSkge1xuICAgIGlmICghZm91bmRTdXBlckNhbGwgJiYgdG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX3N1cGVyLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgIGNvbnN0IHN1cGVyQ2FsbENvbnRleHRJZCA9IHRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQ7XG4gICAgICBpZiAoc3VwZXJDYWxsQ29udGV4dElkID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYSBjb250ZXh0IElEIG9uIHRoZSBzdXBlciBjYWxsXCIpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCF0b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SLCBzdXBlckNhbGxDb250ZXh0SWQpKSB7XG4gICAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0cnVjdG9ySW5zZXJ0UG9zID0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgICAgZm91bmRTdXBlckNhbGwgPSB0cnVlO1xuICAgIH1cbiAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIH1cbiAgLy8gfVxuICB0b2tlbnMubmV4dFRva2VuKCk7XG5cbiAgcmV0dXJuIHtjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cywgY29uc3RydWN0b3JJbnNlcnRQb3N9O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGlzIGlzIGFueSB0b2tlbiB0aGF0IGNhbiBnbyBiZWZvcmUgdGhlIG5hbWUgaW4gYSBtZXRob2QvZmllbGQuXG4gKi9cbmZ1bmN0aW9uIGlzQWNjZXNzTW9kaWZpZXIodG9rZW4pIHtcbiAgcmV0dXJuIFtcbiAgICBfdHlwZXMuVG9rZW5UeXBlLl9hc3luYyxcbiAgICBfdHlwZXMuVG9rZW5UeXBlLl9nZXQsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5fc2V0LFxuICAgIF90eXBlcy5Ub2tlblR5cGUucGx1cyxcbiAgICBfdHlwZXMuVG9rZW5UeXBlLm1pbnVzLFxuICAgIF90eXBlcy5Ub2tlblR5cGUuX3JlYWRvbmx5LFxuICAgIF90eXBlcy5Ub2tlblR5cGUuX3N0YXRpYyxcbiAgICBfdHlwZXMuVG9rZW5UeXBlLl9wdWJsaWMsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5fcHJpdmF0ZSxcbiAgICBfdHlwZXMuVG9rZW5UeXBlLl9wcm90ZWN0ZWQsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5fb3ZlcnJpZGUsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5zdGFyLFxuICAgIF90eXBlcy5Ub2tlblR5cGUuX2RlY2xhcmUsXG4gICAgX3R5cGVzLlRva2VuVHlwZS5oYXNoLFxuICBdLmluY2x1ZGVzKHRva2VuLnR5cGUpO1xufVxuXG4vKipcbiAqIFRoZSBuZXh0IHRva2VuIG9yIHNldCBvZiB0b2tlbnMgaXMgZWl0aGVyIGFuIGlkZW50aWZpZXIgb3IgYW4gZXhwcmVzc2lvbiBpbiBzcXVhcmUgYnJhY2tldHMsIGZvclxuICogYSBtZXRob2Qgb3IgZmllbGQgbmFtZS5cbiAqL1xuZnVuY3Rpb24gc2tpcEZpZWxkTmFtZSh0b2tlbnMpIHtcbiAgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgIGNvbnN0IHN0YXJ0VG9rZW4gPSB0b2tlbnMuY3VycmVudFRva2VuKCk7XG4gICAgY29uc3QgY2xhc3NDb250ZXh0SWQgPSBzdGFydFRva2VuLmNvbnRleHRJZDtcbiAgICBpZiAoY2xhc3NDb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY2xhc3MgY29udGV4dCBJRCBvbiBjb21wdXRlZCBuYW1lIG9wZW4gYnJhY2tldC5cIik7XG4gICAgfVxuICAgIHdoaWxlICghdG9rZW5zLm1hdGNoZXNDb250ZXh0SWRBbmRMYWJlbChfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRSLCBjbGFzc0NvbnRleHRJZCkpIHtcbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICB9XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9IGVsc2Uge1xuICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgfVxufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxuXG4gZnVuY3Rpb24gZWxpZGVJbXBvcnRFcXVhbHModG9rZW5zKSB7XG4gIC8vIGltcG9ydFxuICB0b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gIC8vIG5hbWVcbiAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gIC8vID1cbiAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gIC8vIG5hbWUgb3IgcmVxdWlyZVxuICB0b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgLy8gSGFuZGxlIGVpdGhlciBgaW1wb3J0IEEgPSByZXF1aXJlKCdBJylgIG9yIGBpbXBvcnQgQSA9IEIuQy5EYC5cbiAgaWYgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAvLyAoXG4gICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgLy8gcGF0aCBzdHJpbmdcbiAgICB0b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAvLyApXG4gICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICAgIC8vIC5cbiAgICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgLy8gbmFtZVxuICAgICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMuZGVmYXVsdCA9IGVsaWRlSW1wb3J0RXF1YWxzO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7dmFyIF90b2tlbml6ZXIgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cblxuXG5cblxuXG4gY29uc3QgRU1QVFlfREVDTEFSQVRJT05fSU5GTyA9IHtcbiAgdHlwZURlY2xhcmF0aW9uczogbmV3IFNldCgpLFxuICB2YWx1ZURlY2xhcmF0aW9uczogbmV3IFNldCgpLFxufTsgZXhwb3J0cy5FTVBUWV9ERUNMQVJBVElPTl9JTkZPID0gRU1QVFlfREVDTEFSQVRJT05fSU5GTztcblxuLyoqXG4gKiBHZXQgYWxsIHRvcC1sZXZlbCBpZGVudGlmaWVycyB0aGF0IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBleHBvcnRlZCBpbiBUeXBlU2NyaXB0LlxuICpcbiAqIEV4YW1wbGVzOlxuICogLSBJZiBhbiBpZGVudGlmaWVyIGlzIGRlY2xhcmVkIGFzIGBjb25zdCB4YCwgdGhlbiBgZXhwb3J0IHt4fWAgc2hvdWxkIGJlIHByZXNlcnZlZC5cbiAqIC0gSWYgaXQncyBkZWNsYXJlZCBhcyBgdHlwZSB4YCwgdGhlbiBgZXhwb3J0IHt4fWAgc2hvdWxkIGJlIHJlbW92ZWQuXG4gKiAtIElmIGl0J3MgZGVjbGFyZWQgYXMgYm90aCBgY29uc3QgeGAgYW5kIGB0eXBlIHhgLCB0aGVuIHRoZSBleHBvcnQgc2hvdWxkIGJlIHByZXNlcnZlZC5cbiAqIC0gQ2xhc3NlcyBhbmQgZW51bXMgc2hvdWxkIGJlIHByZXNlcnZlZCAoZXZlbiB0aG91Z2ggdGhleSBhbHNvIGludHJvZHVjZSB0eXBlcykuXG4gKiAtIEltcG9ydGVkIGlkZW50aWZpZXJzIHNob3VsZCBiZSBwcmVzZXJ2ZWQgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG9cbiAqICAgcnVsZSB0aGVtIG91dC4gLS1pc29sYXRlZE1vZHVsZXMgZGlzYWxsb3dzIHJlLWV4cG9ydHMsIHdoaWNoIGNhdGNoZXMgZXJyb3JzIGhlcmUuXG4gKi9cbiBmdW5jdGlvbiBnZXREZWNsYXJhdGlvbkluZm8odG9rZW5zKSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvbnMgPSBuZXcgU2V0KCk7XG4gIGNvbnN0IHZhbHVlRGVjbGFyYXRpb25zID0gbmV3IFNldCgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUubmFtZSAmJiBfdG9rZW5pemVyLmlzVG9wTGV2ZWxEZWNsYXJhdGlvbi5jYWxsKHZvaWQgMCwgdG9rZW4pKSB7XG4gICAgICBpZiAodG9rZW4uaXNUeXBlKSB7XG4gICAgICAgIHR5cGVEZWNsYXJhdGlvbnMuYWRkKHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZURlY2xhcmF0aW9ucy5hZGQodG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHt0eXBlRGVjbGFyYXRpb25zLCB2YWx1ZURlY2xhcmF0aW9uc307XG59IGV4cG9ydHMuZGVmYXVsdCA9IGdldERlY2xhcmF0aW9uSW5mbztcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO3ZhciBfa2V5d29yZHMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cbi8qKlxuICogU3RhcnRpbmcgYXQgYGV4cG9ydCB7YCwgbG9vayBhaGVhZCBhbmQgcmV0dXJuIGB0cnVlYCBpZiB0aGlzIGlzIGFuXG4gKiBgZXhwb3J0IHsuLi59IGZyb21gIHN0YXRlbWVudCBhbmQgYGZhbHNlYCBpZiB0aGlzIGlzIGEgcGxhaW4gbXVsdGktZXhwb3J0LlxuICovXG4gZnVuY3Rpb24gaXNFeHBvcnRGcm9tKHRva2Vucykge1xuICBsZXQgY2xvc2VCcmFjZUluZGV4ID0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzMUF0SW5kZXgoY2xvc2VCcmFjZUluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICBjbG9zZUJyYWNlSW5kZXgrKztcbiAgfVxuICByZXR1cm4gKFxuICAgIHRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgoY2xvc2VCcmFjZUluZGV4ICsgMSwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSAmJlxuICAgIHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoY2xvc2VCcmFjZUluZGV4ICsgMiwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpXG4gICk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGlzRXhwb3J0RnJvbTtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO3ZhciBfa2V5d29yZHMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cbi8qKlxuICogU3RhcnRpbmcgYXQgYSBwb3RlbnRpYWwgYHdpdGhgIG9yIChsZWdhY3kpIGBhc3NlcnRgIHRva2VuLCByZW1vdmUgdGhlIGltcG9ydFxuICogYXR0cmlidXRlcyBpZiB0aGV5IGV4aXN0LlxuICovXG4gZnVuY3Rpb24gcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzKHRva2Vucykge1xuICBpZiAoXG4gICAgdG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX3dpdGgsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fFxuICAgICh0b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkgJiYgdG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXNzZXJ0KSlcbiAgKSB7XG4gICAgLy8gYXNzZXJ0XG4gICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgLy8ge1xuICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIHRva2Vucy5yZW1vdmVCYWxhbmNlZENvZGUoKTtcbiAgICAvLyB9XG4gICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gIH1cbn0gZXhwb3J0cy5yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMgPSByZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTt2YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cblxuLyoqXG4gKiBDb21tb24gbWV0aG9kIHNoYXJpbmcgY29kZSBiZXR3ZWVuIENKUyBhbmQgRVNNIGNhc2VzLCBzaW5jZSB0aGV5J3JlIHRoZSBzYW1lIGhlcmUuXG4gKi9cbiBmdW5jdGlvbiBzaG91bGRFbGlkZURlZmF1bHRFeHBvcnQoXG4gIGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQsXG4gIGtlZXBVbnVzZWRJbXBvcnRzLFxuICB0b2tlbnMsXG4gIGRlY2xhcmF0aW9uSW5mbyxcbikge1xuICBpZiAoIWlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgfHwga2VlcFVudXNlZEltcG9ydHMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgZXhwb3J0VG9rZW4gPSB0b2tlbnMuY3VycmVudFRva2VuKCk7XG4gIGlmIChleHBvcnRUb2tlbi5yaHNFbmRJbmRleCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbm9uLW51bGwgcmhzRW5kSW5kZXggb24gZXhwb3J0IHRva2VuLlwiKTtcbiAgfVxuICAvLyBUaGUgZXhwb3J0IG11c3QgYmUgb2YgdGhlIGZvcm0gYGV4cG9ydCBkZWZhdWx0IGFgIG9yIGBleHBvcnQgZGVmYXVsdCBhO2AuXG4gIGNvbnN0IG51bVRva2VucyA9IGV4cG9ydFRva2VuLnJoc0VuZEluZGV4IC0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICBpZiAoXG4gICAgbnVtVG9rZW5zICE9PSAzICYmXG4gICAgIShudW1Ub2tlbnMgPT09IDQgJiYgdG9rZW5zLm1hdGNoZXMxQXRJbmRleChleHBvcnRUb2tlbi5yaHNFbmRJbmRleCAtIDEsIF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBpZGVudGlmaWVyVG9rZW4gPSB0b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoMik7XG4gIGlmIChpZGVudGlmaWVyVG9rZW4udHlwZSAhPT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGV4cG9ydGVkTmFtZSA9IHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbik7XG4gIHJldHVybiAoXG4gICAgZGVjbGFyYXRpb25JbmZvLnR5cGVEZWNsYXJhdGlvbnMuaGFzKGV4cG9ydGVkTmFtZSkgJiZcbiAgICAhZGVjbGFyYXRpb25JbmZvLnZhbHVlRGVjbGFyYXRpb25zLmhhcyhleHBvcnRlZE5hbWUpXG4gICk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IHNob3VsZEVsaWRlRGVmYXVsdEV4cG9ydDtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5cbnZhciBfdG9rZW5pemVyID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplcicpO1xudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHMnKTtcbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzJyk7XG5cbnZhciBfZWxpZGVJbXBvcnRFcXVhbHMgPSByZXF1aXJlKCcuLi91dGlsL2VsaWRlSW1wb3J0RXF1YWxzJyk7IHZhciBfZWxpZGVJbXBvcnRFcXVhbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZWxpZGVJbXBvcnRFcXVhbHMpO1xuXG5cblxudmFyIF9nZXREZWNsYXJhdGlvbkluZm8gPSByZXF1aXJlKCcuLi91dGlsL2dldERlY2xhcmF0aW9uSW5mbycpOyB2YXIgX2dldERlY2xhcmF0aW9uSW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXREZWNsYXJhdGlvbkluZm8pO1xudmFyIF9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvID0gcmVxdWlyZSgnLi4vdXRpbC9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvJyk7IHZhciBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvKTtcbnZhciBfaXNFeHBvcnRGcm9tID0gcmVxdWlyZSgnLi4vdXRpbC9pc0V4cG9ydEZyb20nKTsgdmFyIF9pc0V4cG9ydEZyb20yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaXNFeHBvcnRGcm9tKTtcbnZhciBfcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzID0gcmVxdWlyZSgnLi4vdXRpbC9yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMnKTtcbnZhciBfc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0ID0gcmVxdWlyZSgnLi4vdXRpbC9zaG91bGRFbGlkZURlZmF1bHRFeHBvcnQnKTsgdmFyIF9zaG91bGRFbGlkZURlZmF1bHRFeHBvcnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0KTtcblxuXG52YXIgX1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9UcmFuc2Zvcm1lcicpOyB2YXIgX1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyYW5zZm9ybWVyKTtcblxuLyoqXG4gKiBDbGFzcyBmb3IgZWRpdGluZyBpbXBvcnQgc3RhdGVtZW50cyB3aGVuIHdlIGFyZSB0cmFuc2Zvcm1pbmcgdG8gY29tbW9uanMuXG4gKi9cbiBjbGFzcyBDSlNJbXBvcnRUcmFuc2Zvcm1lciBleHRlbmRzIF9UcmFuc2Zvcm1lcjIuZGVmYXVsdCB7XG4gICBfX2luaXQoKSB7dGhpcy5oYWRFeHBvcnQgPSBmYWxzZX1cbiAgIF9faW5pdDIoKSB7dGhpcy5oYWROYW1lZEV4cG9ydCA9IGZhbHNlfVxuICAgX19pbml0MygpIHt0aGlzLmhhZERlZmF1bHRFeHBvcnQgPSBmYWxzZX1cbiAgXG5cbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBpbXBvcnRQcm9jZXNzb3IsXG4gICAgIG5hbWVNYW5hZ2VyLFxuICAgICBoZWxwZXJNYW5hZ2VyLFxuICAgICByZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyLFxuICAgICBlbmFibGVMZWdhY3lCYWJlbDVNb2R1bGVJbnRlcm9wLFxuICAgICBlbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCxcbiAgICAgaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAgaXNGbG93VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAgcHJlc2VydmVEeW5hbWljSW1wb3J0LFxuICAgICBrZWVwVW51c2VkSW1wb3J0cyxcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnJvb3RUcmFuc2Zvcm1lciA9IHJvb3RUcmFuc2Zvcm1lcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLmltcG9ydFByb2Nlc3NvciA9IGltcG9ydFByb2Nlc3Nvcjt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7dGhpcy5oZWxwZXJNYW5hZ2VyID0gaGVscGVyTWFuYWdlcjt0aGlzLnJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSByZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyO3RoaXMuZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCA9IGVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3A7dGhpcy5lbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCA9IGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wO3RoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCA9IGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQ7dGhpcy5pc0Zsb3dUcmFuc2Zvcm1FbmFibGVkID0gaXNGbG93VHJhbnNmb3JtRW5hYmxlZDt0aGlzLnByZXNlcnZlRHluYW1pY0ltcG9ydCA9IHByZXNlcnZlRHluYW1pY0ltcG9ydDt0aGlzLmtlZXBVbnVzZWRJbXBvcnRzID0ga2VlcFVudXNlZEltcG9ydHM7Q0pTSW1wb3J0VHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpO0NKU0ltcG9ydFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7Q0pTSW1wb3J0VHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdDMuY2FsbCh0aGlzKTs7XG4gICAgdGhpcy5kZWNsYXJhdGlvbkluZm8gPSBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkXG4gICAgICA/IF9nZXREZWNsYXJhdGlvbkluZm8yLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRva2VucylcbiAgICAgIDogX2dldERlY2xhcmF0aW9uSW5mby5FTVBUWV9ERUNMQVJBVElPTl9JTkZPO1xuICB9XG5cbiAgZ2V0UHJlZml4Q29kZSgpIHtcbiAgICBsZXQgcHJlZml4ID0gXCJcIjtcbiAgICBpZiAodGhpcy5oYWRFeHBvcnQpIHtcbiAgICAgIHByZWZpeCArPSAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsnO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgZ2V0U3VmZml4Q29kZSgpIHtcbiAgICBpZiAodGhpcy5lbmFibGVMZWdhY3lCYWJlbDVNb2R1bGVJbnRlcm9wICYmIHRoaXMuaGFkRGVmYXVsdEV4cG9ydCAmJiAhdGhpcy5oYWROYW1lZEV4cG9ydCkge1xuICAgICAgcmV0dXJuIFwiXFxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XFxuXCI7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICAvLyBUeXBlU2NyaXB0IGBpbXBvcnQgZm9vID0gcmVxdWlyZSgnZm9vJyk7YCBzaG91bGQgYWx3YXlzIGp1c3QgYmUgdHJhbnNsYXRlZCB0byBwbGFpbiByZXF1aXJlLlxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMyhfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5lcSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJbXBvcnRFcXVhbHMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0ltcG9ydCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJtb2R1bGUuZXhwb3J0c1wiKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0KSAmJiAhdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICB0aGlzLmhhZEV4cG9ydCA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRXhwb3J0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUucG9zdEluY0RlYykpIHtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBub3JtYWwgaWRlbnRpZmllciBtYXRjaGluZyBpZiB0aGlzIGRvZXNuJ3QgYXBwbHkuXG4gICAgICBpZiAodGhpcy5wcm9jZXNzUG9zdEluY0RlYygpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB8fCB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmpzeE5hbWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzSWRlbnRpZmllcigpO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5lcSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBc3NpZ25tZW50KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmFzc2lnbikpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb21wbGV4QXNzaWdubWVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5wcmVJbmNEZWMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUHJlSW5jRGVjKCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICBwcm9jZXNzSW1wb3J0RXF1YWxzKCkge1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxKTtcbiAgICBpZiAodGhpcy5pbXBvcnRQcm9jZXNzb3Iuc2hvdWxkQXV0b21hdGljYWxseUVsaWRlSW1wb3J0ZWROYW1lKGltcG9ydE5hbWUpKSB7XG4gICAgICAvLyBJZiB0aGlzIG5hbWUgaXMgb25seSB1c2VkIGFzIGEgdHlwZSwgZWxpZGUgdGhlIHdob2xlIGltcG9ydC5cbiAgICAgIF9lbGlkZUltcG9ydEVxdWFsczIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UsIHN3aXRjaCBgaW1wb3J0YCB0byBgY29uc3RgLlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGlzOlxuICAgKiBpbXBvcnQgZm9vLCB7YmFyfSBmcm9tICdiYXonO1xuICAgKiBpbnRvXG4gICAqIHZhciBfYmF6ID0gcmVxdWlyZSgnYmF6Jyk7IHZhciBfYmF6MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Jheik7XG4gICAqXG4gICAqIFRoZSBpbXBvcnQgY29kZSB3YXMgYWxyZWFkeSBnZW5lcmF0ZWQgaW4gdGhlIGltcG9ydCBwcmVwcm9jZXNzaW5nIHN0ZXAsIHNvXG4gICAqIHdlIGp1c3QgbmVlZCB0byBsb29rIGl0IHVwLlxuICAgKi9cbiAgIHByb2Nlc3NJbXBvcnQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICBpZiAodGhpcy5wcmVzZXJ2ZUR5bmFtaWNJbXBvcnQpIHtcbiAgICAgICAgLy8gQmFpbCBvdXQsIG9ubHkgbWFraW5nIHByb2dyZXNzIGZvciB0aGlzIG9uZSB0b2tlbi5cbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcXVpcmVXcmFwcGVyID0gdGhpcy5lbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcFxuICAgICAgICA/IFwiXCJcbiAgICAgICAgOiBgJHt0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcImludGVyb3BSZXF1aXJlV2lsZGNhcmRcIil9KGA7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oYFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gJHtyZXF1aXJlV3JhcHBlcn1yZXF1aXJlYCk7XG4gICAgICBjb25zdCBjb250ZXh0SWQgPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQ7XG4gICAgICBpZiAoY29udGV4dElkID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY29udGV4dCBJRCBvbiBkeW5hbWljIGltcG9ydCBpbnZvY2F0aW9uLlwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwoX3R5cGVzLlRva2VuVHlwZS5wYXJlblIsIGNvbnRleHRJZCkpIHtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Rva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4ocmVxdWlyZVdyYXBwZXIgPyBcIikpKVwiIDogXCIpKVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRFbGlkZUltcG9ydCA9IHRoaXMucmVtb3ZlSW1wb3J0QW5kRGV0ZWN0SWZTaG91bGRFbGlkZSgpO1xuICAgIGlmIChzaG91bGRFbGlkZUltcG9ydCkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IHRoaXMudG9rZW5zLnN0cmluZ1ZhbHVlKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKHRoaXMuaW1wb3J0UHJvY2Vzc29yLmNsYWltSW1wb3J0Q29kZShwYXRoKSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKHRoaXMuaW1wb3J0UHJvY2Vzc29yLmNsYWltSW1wb3J0Q29kZShwYXRoKSk7XG4gICAgfVxuICAgIF9yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMucmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzLmNhbGwodm9pZCAwLCB0aGlzLnRva2Vucyk7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVyYXNlIHRoaXMgaW1wb3J0IChzaW5jZSBhbnkgQ0pTIG91dHB1dCB3b3VsZCBiZSBjb21wbGV0ZWx5IGRpZmZlcmVudCksIGFuZFxuICAgKiByZXR1cm4gdHJ1ZSBpZiB0aGlzIGltcG9ydCBpcyBzaG91bGQgYmUgZWxpZGVkIGR1ZSB0byBiZWluZyBhIHR5cGUtb25seVxuICAgKiBpbXBvcnQuIFN1Y2ggaW1wb3J0cyB3aWxsIG5vdCBiZSBlbWl0dGVkIGF0IGFsbCB0byBhdm9pZCBzaWRlIGVmZmVjdHMuXG4gICAqXG4gICAqIEltcG9ydCBlbGlzaW9uIG9ubHkgaGFwcGVucyB3aXRoIHRoZSBUeXBlU2NyaXB0IG9yIEZsb3cgdHJhbnNmb3JtcyBlbmFibGVkLlxuICAgKlxuICAgKiBUT0RPOiBUaGlzIGZ1bmN0aW9uIGhhcyBzb21lIGF3a3dhcmQgb3ZlcmxhcCB3aXRoXG4gICAqICBDSlNJbXBvcnRQcm9jZXNzb3IucHJ1bmVUeXBlT25seUltcG9ydHMgLCBhbmQgdGhlIHR3byBzaG91bGQgYmUgdW5pZmllZC5cbiAgICogIFRoYXQgZnVuY3Rpb24gaGFuZGxlcyBUeXBlU2NyaXB0IGltcGxpY2l0IGltcG9ydCBuYW1lIGVsaXNpb24sIGFuZCByZW1vdmVzXG4gICAqICBhbiBpbXBvcnQgaWYgYWxsIHR5cGljYWwgaW1wb3J0ZWQgbmFtZXMgKHdpdGhvdXQgYHR5cGVgKSBhcmUgcmVtb3ZlZCBkdWVcbiAgICogIHRvIGJlaW5nIHR5cGUtb25seSBpbXBvcnRzLiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgRmxvdyBpbXBvcnQgcmVtb3ZhbCBhbmRcbiAgICogIHByb3Blcmx5IGRpc3Rpbmd1aXNoZXMgYGltcG9ydCAnZm9vJ2AgZnJvbSBgaW1wb3J0IHt9IGZyb20gJ2ZvbydgIGZvciBUU1xuICAgKiAgcHVycG9zZXMuXG4gICAqXG4gICAqIFRoZSBwb3NpdGlvbiBzaG91bGQgZW5kIGF0IHRoZSBpbXBvcnQgc3RyaW5nLlxuICAgKi9cbiAgIHJlbW92ZUltcG9ydEFuZERldGVjdElmU2hvdWxkRWxpZGUoKSB7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9mcm9tKVxuICAgICkge1xuICAgICAgLy8gVGhpcyBpcyBhbiBcImltcG9ydCB0eXBlXCIgc3RhdGVtZW50LCBzbyBleGl0IGVhcmx5LlxuICAgICAgdGhpcy5yZW1vdmVSZW1haW5pbmdJbXBvcnQoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc3RhcikpIHtcbiAgICAgIC8vIFdlIGhhdmUgYSBkZWZhdWx0IGltcG9ydCBvciBuYW1lc3BhY2UgaW1wb3J0LCBzbyB0aGVyZSBtdXN0IGJlIHNvbWVcbiAgICAgIC8vIG5vbi10eXBlIGltcG9ydC5cbiAgICAgIHRoaXMucmVtb3ZlUmVtYWluaW5nSW1wb3J0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJhcmUgaW1wb3J0LCBzbyB3ZSBzaG91bGQgcHJvY2VlZCB3aXRoIHRoZSBpbXBvcnQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGZvdW5kTm9uVHlwZUltcG9ydCA9IGZhbHNlO1xuICAgIGxldCBmb3VuZEFueU5hbWVkSW1wb3J0ID0gZmFsc2U7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykpIHtcbiAgICAgIC8vIENoZWNrIGlmIGFueSBuYW1lZCBpbXBvcnRzIGFyZSBvZiB0aGUgZm9ybSBcImZvb1wiIG9yIFwiZm9vIGFzIGJhclwiLCB3aXRoXG4gICAgICAvLyBubyBsZWFkaW5nIFwidHlwZVwiLlxuICAgICAgaWYgKFxuICAgICAgICAoIWZvdW5kTm9uVHlwZUltcG9ydCAmJiB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuY29tbWEpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgICBmb3VuZEFueU5hbWVkSW1wb3J0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSB8fFxuICAgICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpIHx8XG4gICAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczQoX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkgfHxcbiAgICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNChfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUilcbiAgICAgICAgKSB7XG4gICAgICAgICAgZm91bmROb25UeXBlSW1wb3J0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMua2VlcFVudXNlZEltcG9ydHMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCkge1xuICAgICAgcmV0dXJuICFmb3VuZE5vblR5cGVJbXBvcnQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRmxvd1RyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIC8vIEluIEZsb3csIHVubGlrZSBUUywgYGltcG9ydCB7fSBmcm9tICdmb28nO2AgcHJlc2VydmVzIHRoZSBpbXBvcnQuXG4gICAgICByZXR1cm4gZm91bmRBbnlOYW1lZEltcG9ydCAmJiAhZm91bmROb25UeXBlSW1wb3J0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgIHJlbW92ZVJlbWFpbmluZ0ltcG9ydCgpIHtcbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gIH1cblxuICAgcHJvY2Vzc0lkZW50aWZpZXIoKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICBpZiAodG9rZW4uc2hhZG93c0dsb2JhbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gX3Rva2VuaXplci5JZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NPYmplY3RTaG9ydGhhbmQoKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4uaWRlbnRpZmllclJvbGUgIT09IF90b2tlbml6ZXIuSWRlbnRpZmllclJvbGUuQWNjZXNzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KFxuICAgICAgdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbiksXG4gICAgKTtcbiAgICBpZiAoIXJlcGxhY2VtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFRvbGVyYXRlIGFueSBudW1iZXIgb2YgY2xvc2luZyBwYXJlbnMgd2hpbGUgbG9va2luZyBmb3IgYW4gb3BlbmluZyBwYXJlblxuICAgIC8vIHRoYXQgaW5kaWNhdGVzIGEgZnVuY3Rpb24gY2FsbC5cbiAgICBsZXQgcG9zc2libGVPcGVuUGFyZW5JbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMTtcbiAgICB3aGlsZSAoXG4gICAgICBwb3NzaWJsZU9wZW5QYXJlbkluZGV4IDwgdGhpcy50b2tlbnMudG9rZW5zLmxlbmd0aCAmJlxuICAgICAgdGhpcy50b2tlbnMudG9rZW5zW3Bvc3NpYmxlT3BlblBhcmVuSW5kZXhdLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUucGFyZW5SXG4gICAgKSB7XG4gICAgICBwb3NzaWJsZU9wZW5QYXJlbkluZGV4Kys7XG4gICAgfVxuICAgIC8vIEF2b2lkIHRyZWF0aW5nIGltcG9ydGVkIGZ1bmN0aW9ucyBhcyBtZXRob2RzIG9mIHRoZWlyIGBleHBvcnRzYCBvYmplY3RcbiAgICAvLyBieSB1c2luZyBgKDAsIGYpYCB3aGVuIHRoZSBpZGVudGlmaWVyIGlzIGluIGEgcGFyZW4gZXhwcmVzc2lvbi4gRWxzZVxuICAgIC8vIHVzZSBgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGxgIHdoZW4gdGhlIGlkZW50aWZpZXIgaXMgYSBndWFyYW50ZWVkXG4gICAgLy8gZnVuY3Rpb24gY2FsbC4gV2hlbiB1c2luZyBgY2FsbGAsIHBhc3MgdW5kZWZpbmVkIGFzIHRoZSBjb250ZXh0LlxuICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbcG9zc2libGVPcGVuUGFyZW5JbmRleF0udHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoMSkudHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwgJiZcbiAgICAgICAgdGhpcy50b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoLTEpLnR5cGUgIT09IF90eXBlcy5Ub2tlblR5cGUuX25ld1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHtyZXBsYWNlbWVudH0uY2FsbCh2b2lkIDAsIGApO1xuICAgICAgICAvLyBSZW1vdmUgdGhlIG9sZCBwYXJlbi5cbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgLy8gQmFsYW5jZSBvdXQgdGhlIG5ldyBwYXJlbi5cbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTZWUgaGVyZTogaHR0cDovLzJhbGl0eS5jb20vMjAxNS8xMi9yZWZlcmVuY2VzLmh0bWxcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAoMCwgJHtyZXBsYWNlbWVudH0pYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihyZXBsYWNlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvY2Vzc09iamVjdFNob3J0aGFuZCgpIHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgICBjb25zdCByZXBsYWNlbWVudCA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLmdldElkZW50aWZpZXJSZXBsYWNlbWVudChpZGVudGlmaWVyKTtcbiAgICBpZiAoIXJlcGxhY2VtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHtpZGVudGlmaWVyfTogJHtyZXBsYWNlbWVudH1gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb2Nlc3NFeHBvcnQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9lbnVtKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczMoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdCwgX3R5cGVzLlRva2VuVHlwZS5fZW51bSlcbiAgICApIHtcbiAgICAgIHRoaXMuaGFkTmFtZWRFeHBvcnQgPSB0cnVlO1xuICAgICAgLy8gTGV0IHRoZSBUeXBlU2NyaXB0IHRyYW5zZm9ybSBoYW5kbGUgaXQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQpKSB7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczMoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9kZWZhdWx0LCBfdHlwZXMuVG9rZW5UeXBlLl9lbnVtKSkge1xuICAgICAgICB0aGlzLmhhZERlZmF1bHRFeHBvcnQgPSB0cnVlO1xuICAgICAgICAvLyBGbG93IGV4cG9ydCBkZWZhdWx0IGVudW1zIG5lZWQgc29tZSBzcGVjaWFsIGhhbmRsaW5nLCBzbyBoYW5kbGUgdGhlbVxuICAgICAgICAvLyBpbiB0aGF0IHRyYW5mb3JtIHJhdGhlciB0aGFuIHRoaXMgb25lLlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnRCaW5kaW5ncygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSAmJlxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl90eXBlKVxuICAgICkge1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2F9O1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2EgYXMgYn07XG4gICAgICAvLyBleHBvcnQgdHlwZSB7YX0gZnJvbSAnLi9iJztcbiAgICAgIC8vIGV4cG9ydCB0eXBlICogZnJvbSAnLi9iJztcbiAgICAgIC8vIGV4cG9ydCB0eXBlICogYXMgbnMgZnJvbSAnLi9iJztcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAqXG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9hcykpIHtcbiAgICAgICAgICAvLyBhc1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgLy8gbnNcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBSZW1vdmUgdHlwZSByZS1leHBvcnQgYC4uLiB9IGZyb20gJy4vVCdgXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSkgJiZcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgX3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcy5yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMuY2FsbCh2b2lkIDAsIHRoaXMudG9rZW5zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmhhZE5hbWVkRXhwb3J0ID0gdHJ1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX3ZhcikgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fbGV0KSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9jb25zdClcbiAgICApIHtcbiAgICAgIHRoaXMucHJvY2Vzc0V4cG9ydFZhcigpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24pIHx8XG4gICAgICAvLyBleHBvcnQgYXN5bmMgZnVuY3Rpb25cbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbilcbiAgICApIHtcbiAgICAgIHRoaXMucHJvY2Vzc0V4cG9ydEZ1bmN0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcykgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QsIF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLmF0KVxuICAgICkge1xuICAgICAgdGhpcy5wcm9jZXNzRXhwb3J0Q2xhc3MoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLnN0YXIpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnRTdGFyKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5yZWNvZ25pemVkIGV4cG9ydCBzeW50YXguXCIpO1xuICAgIH1cbiAgfVxuXG4gICBwcm9jZXNzQXNzaWdubWVudCgpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIGNvbnN0IGlkZW50aWZpZXJUb2tlbiA9IHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCAtIDFdO1xuICAgIC8vIElmIHRoZSBMSFMgaXMgYSB0eXBlIGlkZW50aWZpZXIsIHRoaXMgbXVzdCBiZSBhIGRlY2xhcmF0aW9uIGxpa2UgYGxldCBhOiBiID0gYztgLFxuICAgIC8vIHdpdGggYGJgIGFzIHRoZSBpZGVudGlmaWVyLCBzbyBub3RoaW5nIG5lZWRzIHRvIGJlIGRvbmUgaW4gdGhhdCBjYXNlLlxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uaXNUeXBlIHx8IGlkZW50aWZpZXJUb2tlbi50eXBlICE9PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi5zaGFkb3dzR2xvYmFsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpbmRleCA+PSAyICYmIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCAtIDIsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPj0gMiAmJiBbX3R5cGVzLlRva2VuVHlwZS5fdmFyLCBfdHlwZXMuVG9rZW5UeXBlLl9sZXQsIF90eXBlcy5Ub2tlblR5cGUuX2NvbnN0XS5pbmNsdWRlcyh0aGlzLnRva2Vucy50b2tlbnNbaW5kZXggLSAyXS50eXBlKSkge1xuICAgICAgLy8gRGVjbGFyYXRpb25zIGRvbid0IG5lZWQgYW4gZXh0cmEgYXNzaWdubWVudC4gVGhpcyBkb2Vzbid0IGF2b2lkIHRoZVxuICAgICAgLy8gYXNzaWdubWVudCBmb3IgY29tbWEtc2VwYXJhdGVkIGRlY2xhcmF0aW9ucywgYnV0IGl0J3Mgc3RpbGwgY29ycmVjdFxuICAgICAgLy8gc2luY2UgdGhlIGFzc2lnbm1lbnQgaXMganVzdCByZWR1bmRhbnQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFzc2lnbm1lbnRTbmlwcGV0ID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IucmVzb2x2ZUV4cG9ydEJpbmRpbmcoXG4gICAgICB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbiksXG4gICAgKTtcbiAgICBpZiAoIWFzc2lnbm1lbnRTbmlwcGV0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCAke2Fzc2lnbm1lbnRTbmlwcGV0fSA9YCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBzb21ldGhpbmcgbGlrZSBgYSArPSAzYCwgd2hlcmUgYGFgIG1pZ2h0IGJlIGFuIGV4cG9ydGVkIHZhbHVlLlxuICAgKi9cbiAgIHByb2Nlc3NDb21wbGV4QXNzaWdubWVudCgpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIGNvbnN0IGlkZW50aWZpZXJUb2tlbiA9IHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCAtIDFdO1xuICAgIGlmIChpZGVudGlmaWVyVG9rZW4udHlwZSAhPT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uc2hhZG93c0dsb2JhbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPj0gMiAmJiB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggLSAyLCBfdHlwZXMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgYXNzaWdubWVudFNuaXBwZXQgPSB0aGlzLmltcG9ydFByb2Nlc3Nvci5yZXNvbHZlRXhwb3J0QmluZGluZyhcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4oaWRlbnRpZmllclRva2VuKSxcbiAgICApO1xuICAgIGlmICghYXNzaWdubWVudFNuaXBwZXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgID0gJHthc3NpZ25tZW50U25pcHBldH1gKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIHNvbWV0aGluZyBsaWtlIGArK2FgLCB3aGVyZSBgYWAgbWlnaHQgYmUgYW4gZXhwb3J0ZWQgdmFsdWUuXG4gICAqL1xuICAgcHJvY2Vzc1ByZUluY0RlYygpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIGNvbnN0IGlkZW50aWZpZXJUb2tlbiA9IHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCArIDFdO1xuICAgIGlmIChpZGVudGlmaWVyVG9rZW4udHlwZSAhPT0gX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uc2hhZG93c0dsb2JhbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBJZ25vcmUgdGhpbmdzIGxpa2UgKythLmIgYW5kICsrYVtiXSBhbmQgKythKCkuYi5cbiAgICBpZiAoXG4gICAgICBpbmRleCArIDIgPCB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoICYmXG4gICAgICAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4ICsgMiwgX3R5cGVzLlRva2VuVHlwZS5kb3QpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCArIDIsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldEwpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCArIDIsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaWRlbnRpZmllck5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbik7XG4gICAgY29uc3QgYXNzaWdubWVudFNuaXBwZXQgPSB0aGlzLmltcG9ydFByb2Nlc3Nvci5yZXNvbHZlRXhwb3J0QmluZGluZyhpZGVudGlmaWVyTmFtZSk7XG4gICAgaWYgKCFhc3NpZ25tZW50U25pcHBldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAke2Fzc2lnbm1lbnRTbmlwcGV0fSA9IGApO1xuICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3Mgc29tZXRoaW5nIGxpa2UgYGErK2AsIHdoZXJlIGBhYCBtaWdodCBiZSBhbiBleHBvcnRlZCB2YWx1ZS5cbiAgICogVGhpcyBzdGFydHMgYXQgdGhlIGBhYCwgbm90IGF0IHRoZSBgKytgLlxuICAgKi9cbiAgIHByb2Nlc3NQb3N0SW5jRGVjKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgY29uc3QgaWRlbnRpZmllclRva2VuID0gdGhpcy50b2tlbnMudG9rZW5zW2luZGV4XTtcbiAgICBjb25zdCBvcGVyYXRvclRva2VuID0gdGhpcy50b2tlbnMudG9rZW5zW2luZGV4ICsgMV07XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi50eXBlICE9PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi5zaGFkb3dzR2xvYmFsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpbmRleCA+PSAxICYmIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCAtIDEsIF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpZGVudGlmaWVyTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4oaWRlbnRpZmllclRva2VuKTtcbiAgICBjb25zdCBhc3NpZ25tZW50U25pcHBldCA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLnJlc29sdmVFeHBvcnRCaW5kaW5nKGlkZW50aWZpZXJOYW1lKTtcbiAgICBpZiAoIWFzc2lnbm1lbnRTbmlwcGV0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG9wZXJhdG9yQ29kZSA9IHRoaXMudG9rZW5zLnJhd0NvZGVGb3JUb2tlbihvcGVyYXRvclRva2VuKTtcbiAgICAvLyBXZSBtaWdodCBhbHNvIHJlcGxhY2UgdGhlIGlkZW50aWZpZXIgd2l0aCBzb21ldGhpbmcgbGlrZSBleHBvcnRzLngsIHNvXG4gICAgLy8gZG8gdGhhdCByZXBsYWNlbWVudCBoZXJlIGFzIHdlbGwuXG4gICAgY29uc3QgYmFzZSA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLmdldElkZW50aWZpZXJSZXBsYWNlbWVudChpZGVudGlmaWVyTmFtZSkgfHwgaWRlbnRpZmllck5hbWU7XG4gICAgaWYgKG9wZXJhdG9yQ29kZSA9PT0gXCIrK1wiKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oYCgke2Jhc2V9ID0gJHthc3NpZ25tZW50U25pcHBldH0gPSAke2Jhc2V9ICsgMSwgJHtiYXNlfSAtIDEpYCk7XG4gICAgfSBlbHNlIGlmIChvcGVyYXRvckNvZGUgPT09IFwiLS1cIikge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAoJHtiYXNlfSA9ICR7YXNzaWdubWVudFNuaXBwZXR9ID0gJHtiYXNlfSAtIDEsICR7YmFzZX0gKyAxKWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgb3BlcmF0b3I6ICR7b3BlcmF0b3JDb2RlfWApO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgIHByb2Nlc3NFeHBvcnREZWZhdWx0KCkge1xuICAgIGxldCBleHBvcnRlZFJ1bnRpbWVWYWx1ZSA9IHRydWU7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczQoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9kZWZhdWx0LCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbiwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSB8fFxuICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb25cbiAgICAgICh0aGlzLnRva2Vucy5tYXRjaGVzNShfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5fZnVuY3Rpb24sIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgJiZcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KFxuICAgICAgICAgIHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMixcbiAgICAgICAgICBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jLFxuICAgICAgICApKVxuICAgICkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgLy8gTmFtZWQgZnVuY3Rpb24gZXhwb3J0IGNhc2U6IGNoYW5nZSBpdCB0byBhIHRvcC1sZXZlbCBmdW5jdGlvblxuICAgICAgLy8gZGVjbGFyYXRpb24gZm9sbG93ZWQgYnkgZXhwb3J0cyBzdGF0ZW1lbnQuXG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5wcm9jZXNzTmFtZWRGdW5jdGlvbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydHMuZGVmYXVsdCA9ICR7bmFtZX07YCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM0KF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZGVmYXVsdCwgX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM1KF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZGVmYXVsdCwgX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QsIF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyhfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQsIF90eXBlcy5Ub2tlblR5cGUuYXQpXG4gICAgKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB0aGlzLmNvcHlEZWNvcmF0b3JzKCk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc05hbWVkQ2xhc3MoKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnRzLmRlZmF1bHQgPSAke25hbWV9O2ApO1xuICAgICAgLy8gQWZ0ZXIgdGhpcyBwb2ludCwgdGhpcyBpcyBhIHBsYWluIFwiZXhwb3J0IGRlZmF1bHQgRVwiIHN0YXRlbWVudC5cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgX3Nob3VsZEVsaWRlRGVmYXVsdEV4cG9ydDIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgXG4gICAgICAgIHRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAgICAgdGhpcy5rZWVwVW51c2VkSW1wb3J0cyxcbiAgICAgICAgdGhpcy50b2tlbnMsXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25JbmZvLFxuICAgICAgKVxuICAgICkge1xuICAgICAgLy8gSWYgdGhlIGV4cG9ydGVkIHZhbHVlIGlzIGp1c3QgYW4gaWRlbnRpZmllciBhbmQgc2hvdWxkIGJlIGVsaWRlZCBieSBUeXBlU2NyaXB0XG4gICAgICAvLyBydWxlcywgdGhlbiByZW1vdmUgaXQgZW50aXJlbHkuIEl0IHdpbGwgYWx3YXlzIGhhdmUgdGhlIGZvcm0gYGV4cG9ydCBkZWZhdWx0IGVgLFxuICAgICAgLy8gd2hlcmUgYGVgIGlzIGFuIGlkZW50aWZpZXIuXG4gICAgICBleHBvcnRlZFJ1bnRpbWVWYWx1ZSA9IGZhbHNlO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcikge1xuICAgICAgLy8gV2UgbmVlZCB0byBhc3NpZ24gRSB0byBhIHZhcmlhYmxlLiBDaGFuZ2UgXCJleHBvcnQgZGVmYXVsdCBFXCIgdG9cbiAgICAgIC8vIFwibGV0IF9kZWZhdWx0OyBleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdCA9IEVcIlxuICAgICAgY29uc3QgZGVmYXVsdFZhck5hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfZGVmYXVsdFwiKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgbGV0ICR7ZGVmYXVsdFZhck5hbWV9OyBleHBvcnRzLmApO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgPSAke2RlZmF1bHRWYXJOYW1lfSA9YCk7XG4gICAgICB0aGlzLnJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIuc2V0RXh0cmFjdGVkRGVmYXVsdEV4cG9ydE5hbWUoZGVmYXVsdFZhck5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDaGFuZ2UgXCJleHBvcnQgZGVmYXVsdCBFXCIgdG8gXCJleHBvcnRzLmRlZmF1bHQgPSBFXCJcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcImV4cG9ydHMuXCIpO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiID1cIik7XG4gICAgfVxuICAgIGlmIChleHBvcnRlZFJ1bnRpbWVWYWx1ZSkge1xuICAgICAgdGhpcy5oYWREZWZhdWx0RXhwb3J0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAgY29weURlY29yYXRvcnMoKSB7XG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYXQpKSB7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKF90eXBlcy5Ub2tlblR5cGUubmFtZSk7XG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmRvdCkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmRvdCk7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAgICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgZGVjbGFyYXRpb24gbGlrZSBgZXhwb3J0IHZhcmAsIGBleHBvcnQgbGV0YCwgb3IgYGV4cG9ydCBjb25zdGAuXG4gICAqL1xuICAgcHJvY2Vzc0V4cG9ydFZhcigpIHtcbiAgICBpZiAodGhpcy5pc1NpbXBsZUV4cG9ydFZhcigpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NTaW1wbGVFeHBvcnRWYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzQ29tcGxleEV4cG9ydFZhcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGV4cG9ydCBpcyBvZiB0aGUgZm9ybTpcbiAgICogZXhwb3J0IHZhci9sZXQvY29uc3QgW3Zhck5hbWVdID0gW2V4cHJdO1xuICAgKiBJbiBvdGhlciB3b3JkcywgZGV0ZXJtaW5lIGlmIGZ1bmN0aW9uIG5hbWUgaW5mZXJlbmNlIG1pZ2h0IGFwcGx5LlxuICAgKi9cbiAgIGlzU2ltcGxlRXhwb3J0VmFyKCkge1xuICAgIGxldCB0b2tlbkluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgLy8gZXhwb3J0XG4gICAgdG9rZW5JbmRleCsrO1xuICAgIC8vIHZhci9sZXQvY29uc3RcbiAgICB0b2tlbkluZGV4Kys7XG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgodG9rZW5JbmRleCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0b2tlbkluZGV4Kys7XG4gICAgd2hpbGUgKHRva2VuSW5kZXggPCB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoICYmIHRoaXMudG9rZW5zLnRva2Vuc1t0b2tlbkluZGV4XS5pc1R5cGUpIHtcbiAgICAgIHRva2VuSW5kZXgrKztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgodG9rZW5JbmRleCwgX3R5cGVzLlRva2VuVHlwZS5lcSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGFuIGBleHBvcnQgdmFyYCBkZWNsYXJhdGlvbiBpbml0aWFsaXppbmcgYSBzaW5nbGUgdmFyaWFibGUuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCB0aGlzOlxuICAgKiBleHBvcnQgY29uc3QgZiA9ICgpID0+IHt9O1xuICAgKiBiZWNvbWVzIHRoaXM6XG4gICAqIGNvbnN0IGYgPSAoKSA9PiB7fTsgZXhwb3J0cy5mID0gZjtcbiAgICpcbiAgICogVGhlIHZhcmlhYmxlIGlzIHVudXNlZCAoZS5nLiBleHBvcnRzLmYgaGFzIHRoZSB0cnVlIHZhbHVlIG9mIHRoZSBleHBvcnQpLlxuICAgKiBXZSBuZWVkIHRvIHByb2R1Y2UgYW4gYXNzaWdubWVudCBvZiB0aGlzIGZvcm0gc28gdGhhdCB0aGUgZnVuY3Rpb24gd2lsbFxuICAgKiBoYXZlIGFuIGluZmVycmVkIG5hbWUgb2YgXCJmXCIsIHdoaWNoIHdvdWxkbid0IGhhcHBlbiBpbiB0aGUgbW9yZSBnZW5lcmFsXG4gICAqIGNhc2UgYmVsb3cuXG4gICAqL1xuICAgcHJvY2Vzc1NpbXBsZUV4cG9ydFZhcigpIHtcbiAgICAvLyBleHBvcnRcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAvLyB2YXIvbGV0L2NvbnN0XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgY29uc3QgdmFyTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgLy8geDogbnVtYmVyICAtPiAgeFxuICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5lcSkpIHtcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NUb2tlbigpO1xuICAgIH1cbiAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLnJoc0VuZEluZGV4O1xuICAgIGlmIChlbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCA9IHRva2VuIHdpdGggYW4gZW5kIGluZGV4LlwiKTtcbiAgICB9XG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgZW5kSW5kZXgpIHtcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NUb2tlbigpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGA7IGV4cG9ydHMuJHt2YXJOYW1lfSA9ICR7dmFyTmFtZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gbm9ybWFsIGRlY2xhcmF0aW9uIGV4cG9ydHMsIGluY2x1ZGluZyBoYW5kbGluZyBkZXN0cnVjdHVyaW5nLlxuICAgKiBGb3IgZXhhbXBsZSwgdGhpczpcbiAgICogZXhwb3J0IGNvbnN0IHt4OiBbYSA9IDIsIGJdLCBjfSA9IGQ7XG4gICAqIGJlY29tZXMgdGhpczpcbiAgICogKHt4OiBbZXhwb3J0cy5hID0gMiwgZXhwb3J0cy5iXSwgYzogZXhwb3J0cy5jfSA9IGQ7KVxuICAgKi9cbiAgIHByb2Nlc3NDb21wbGV4RXhwb3J0VmFyKCkge1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgY29uc3QgbmVlZHNQYXJlbnMgPSB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gICAgaWYgKG5lZWRzUGFyZW5zKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiKFwiKTtcbiAgICB9XG5cbiAgICBsZXQgZGVwdGggPSAwO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmRvbGxhckJyYWNlTCkgfHxcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TClcbiAgICAgICkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2tldFIpKSB7XG4gICAgICAgIGRlcHRoLS07XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZGVwdGggPT09IDAgJiZcbiAgICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUubmFtZSkgJiZcbiAgICAgICAgIXRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZVxuICAgICAgKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgICAvLyBEZWZhdWx0IHZhbHVlcyBtaWdodCBoYXZlIGFzc2lnbm1lbnRzIGluIHRoZSBSSFMgdGhhdCB3ZSB3YW50IHRvIGlnbm9yZSwgc28gc2tpcCBwYXN0XG4gICAgICAgIC8vIHRoZW0uXG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmIChlbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgZW5kSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAgICAgaWYgKF90b2tlbml6ZXIuaXNEZWNsYXJhdGlvbi5jYWxsKHZvaWQgMCwgdG9rZW4pKSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KG5hbWUpO1xuICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHJlcGxhY2VtZW50IGZvciAke25hbWV9IGluIFxcYGV4cG9ydCB2YXJcXGAgc3ludGF4LmApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoX3Rva2VuaXplci5pc09iamVjdFNob3J0aGFuZERlY2xhcmF0aW9uLmNhbGwodm9pZCAwLCB0b2tlbikpIHtcbiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gYCR7bmFtZX06ICR7cmVwbGFjZW1lbnR9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHJlcGxhY2VtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWVkc1BhcmVucykge1xuICAgICAgLy8gU2VlayB0byB0aGUgZW5kIG9mIHRoZSBSSFMuXG4gICAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLnJoc0VuZEluZGV4O1xuICAgICAgaWYgKGVuZEluZGV4ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICB9XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBlbmRJbmRleCkge1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIpXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhpczpcbiAgICogZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHt9XG4gICAqIGludG8gdGhpczpcbiAgICogZnVuY3Rpb24gZm9vKCkge30gZXhwb3J0cy5mb28gPSBmb287XG4gICAqL1xuICAgcHJvY2Vzc0V4cG9ydEZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5wcm9jZXNzTmFtZWRGdW5jdGlvbigpO1xuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnRzLiR7bmFtZX0gPSAke25hbWV9O2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgcGFzdCBhIGZ1bmN0aW9uIHdpdGggYSBuYW1lIGFuZCByZXR1cm4gdGhhdCBuYW1lLlxuICAgKi9cbiAgIHByb2Nlc3NOYW1lZEZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbikpIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbikpIHtcbiAgICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9hc3luYykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYXN5bmMga2V5d29yZCBpbiBmdW5jdGlvbiBleHBvcnQuXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc3RhcikpIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGlkZW50aWZpZXIgZm9yIGV4cG9ydGVkIGZ1bmN0aW9uIG5hbWUuXCIpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICBpZiAodGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Bvc3NpYmxlVHlwZVJhbmdlKCk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUik7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoaXM6XG4gICAqIGV4cG9ydCBjbGFzcyBBIHt9XG4gICAqIGludG8gdGhpczpcbiAgICogY2xhc3MgQSB7fSBleHBvcnRzLkEgPSBBO1xuICAgKi9cbiAgIHByb2Nlc3NFeHBvcnRDbGFzcygpIHtcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICB0aGlzLmNvcHlEZWNvcmF0b3JzKCk7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2Fic3RyYWN0KSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NOYW1lZENsYXNzKCk7XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydHMuJHtuYW1lfSA9ICR7bmFtZX07YCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoaXM6XG4gICAqIGV4cG9ydCB7YSwgYiBhcyBjfTtcbiAgICogaW50byB0aGlzOlxuICAgKiBleHBvcnRzLmEgPSBhOyBleHBvcnRzLmMgPSBiO1xuICAgKlxuICAgKiBPUlxuICAgKlxuICAgKiBUcmFuc2Zvcm0gdGhpczpcbiAgICogZXhwb3J0IHthLCBiIGFzIGN9IGZyb20gJy4vZm9vJztcbiAgICogaW50byB0aGUgcHJlLWdlbmVyYXRlZCBPYmplY3QuZGVmaW5lUHJvcGVydHkgY29kZSBmcm9tIHRoZSBJbXBvcnRQcm9jZXNzb3IuXG4gICAqXG4gICAqIEZvciB0aGUgZmlyc3QgY2FzZSwgaWYgdGhlIFR5cGVTY3JpcHQgdHJhbnNmb3JtIGlzIGVuYWJsZWQsIHdlIG5lZWQgdG8gc2tpcFxuICAgKiBleHBvcnRzIHRoYXQgYXJlIG9ubHkgZGVmaW5lZCBhcyB0eXBlcy5cbiAgICovXG4gICBwcm9jZXNzRXhwb3J0QmluZGluZ3MoKSB7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcblxuICAgIGNvbnN0IGlzUmVFeHBvcnQgPSBfaXNFeHBvcnRGcm9tMi5kZWZhdWx0LmNhbGwodm9pZCAwLCB0aGlzLnRva2Vucyk7XG5cbiAgICBjb25zdCBleHBvcnRTdGF0ZW1lbnRzID0gW107XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMpO1xuXG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBzcGVjaWZpZXJJbmZvLmVuZEluZGV4KSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNob3VsZFJlbW92ZUV4cG9ydCA9XG4gICAgICAgIHNwZWNpZmllckluZm8uaXNUeXBlIHx8XG4gICAgICAgICghaXNSZUV4cG9ydCAmJiB0aGlzLnNob3VsZEVsaWRlRXhwb3J0ZWRJZGVudGlmaWVyKHNwZWNpZmllckluZm8ubGVmdE5hbWUpKTtcbiAgICAgIGlmICghc2hvdWxkUmVtb3ZlRXhwb3J0KSB7XG4gICAgICAgIGNvbnN0IGV4cG9ydGVkTmFtZSA9IHNwZWNpZmllckluZm8ucmlnaHROYW1lO1xuICAgICAgICBpZiAoZXhwb3J0ZWROYW1lID09PSBcImRlZmF1bHRcIikge1xuICAgICAgICAgIHRoaXMuaGFkRGVmYXVsdEV4cG9ydCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYWROYW1lZEV4cG9ydCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9jYWxOYW1lID0gc3BlY2lmaWVySW5mby5sZWZ0TmFtZTtcbiAgICAgICAgY29uc3QgbmV3TG9jYWxOYW1lID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KGxvY2FsTmFtZSk7XG4gICAgICAgIGV4cG9ydFN0YXRlbWVudHMucHVzaChgZXhwb3J0cy4ke2V4cG9ydGVkTmFtZX0gPSAke25ld0xvY2FsTmFtZSB8fCBsb2NhbE5hbWV9O2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuY29tbWEsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB0b2tlbjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKSl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYW4gZXhwb3J0Li4uZnJvbSwgc28gdGhyb3cgYXdheSB0aGUgbm9ybWFsIG5hbWVkIGV4cG9ydCBjb2RlXG4gICAgICAvLyBhbmQgdXNlIHRoZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgY29kZSBmcm9tIEltcG9ydFByb2Nlc3Nvci5cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWUoKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UodGhpcy5pbXBvcnRQcm9jZXNzb3IuY2xhaW1JbXBvcnRDb2RlKHBhdGgpKTtcbiAgICAgIF9yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMucmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzLmNhbGwodm9pZCAwLCB0aGlzLnRva2Vucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBub3JtYWwgbmFtZWQgZXhwb3J0LCBzbyB1c2UgdGhhdC5cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoZXhwb3J0U3RhdGVtZW50cy5qb2luKFwiIFwiKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICB9XG5cbiAgIHByb2Nlc3NFeHBvcnRTdGFyKCkge1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5zdHJpbmcpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWUoKTtcbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKHRoaXMuaW1wb3J0UHJvY2Vzc29yLmNsYWltSW1wb3J0Q29kZShwYXRoKSk7XG4gICAgX3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcy5yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMuY2FsbCh2b2lkIDAsIHRoaXMudG9rZW5zKTtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5zZW1pKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gIH1cblxuICAgc2hvdWxkRWxpZGVFeHBvcnRlZElkZW50aWZpZXIobmFtZSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiZcbiAgICAgICF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmXG4gICAgICAhdGhpcy5kZWNsYXJhdGlvbkluZm8udmFsdWVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBDSlNJbXBvcnRUcmFuc2Zvcm1lcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5cbnZhciBfa2V5d29yZHMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG52YXIgX2VsaWRlSW1wb3J0RXF1YWxzID0gcmVxdWlyZSgnLi4vdXRpbC9lbGlkZUltcG9ydEVxdWFscycpOyB2YXIgX2VsaWRlSW1wb3J0RXF1YWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VsaWRlSW1wb3J0RXF1YWxzKTtcblxuXG5cbnZhciBfZ2V0RGVjbGFyYXRpb25JbmZvID0gcmVxdWlyZSgnLi4vdXRpbC9nZXREZWNsYXJhdGlvbkluZm8nKTsgdmFyIF9nZXREZWNsYXJhdGlvbkluZm8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0RGVjbGFyYXRpb25JbmZvKTtcbnZhciBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyA9IHJlcXVpcmUoJy4uL3V0aWwvZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbycpOyB2YXIgX2dldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyk7XG52YXIgX2dldE5vblR5cGVJZGVudGlmaWVycyA9IHJlcXVpcmUoJy4uL3V0aWwvZ2V0Tm9uVHlwZUlkZW50aWZpZXJzJyk7XG52YXIgX2lzRXhwb3J0RnJvbSA9IHJlcXVpcmUoJy4uL3V0aWwvaXNFeHBvcnRGcm9tJyk7IHZhciBfaXNFeHBvcnRGcm9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2lzRXhwb3J0RnJvbSk7XG52YXIgX3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcyA9IHJlcXVpcmUoJy4uL3V0aWwvcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzJyk7XG52YXIgX3Nob3VsZEVsaWRlRGVmYXVsdEV4cG9ydCA9IHJlcXVpcmUoJy4uL3V0aWwvc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0Jyk7IHZhciBfc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Nob3VsZEVsaWRlRGVmYXVsdEV4cG9ydCk7XG5cbnZhciBfVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL1RyYW5zZm9ybWVyJyk7IHZhciBfVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJhbnNmb3JtZXIpO1xuXG4vKipcbiAqIENsYXNzIGZvciBlZGl0aW5nIGltcG9ydCBzdGF0ZW1lbnRzIHdoZW4gd2UgYXJlIGtlZXBpbmcgdGhlIGNvZGUgYXMgRVNNLiBXZSBzdGlsbCBuZWVkIHRvIHJlbW92ZVxuICogdHlwZS1vbmx5IGltcG9ydHMgaW4gVHlwZVNjcmlwdCBhbmQgRmxvdy5cbiAqL1xuIGNsYXNzIEVTTUltcG9ydFRyYW5zZm9ybWVyIGV4dGVuZHMgX1RyYW5zZm9ybWVyMi5kZWZhdWx0IHtcbiAgXG4gIFxuICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgdG9rZW5zLFxuICAgICBuYW1lTWFuYWdlcixcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgICAgcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcixcbiAgICAgaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAgaXNGbG93VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAga2VlcFVudXNlZEltcG9ydHMsXG4gICAgb3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7dGhpcy5oZWxwZXJNYW5hZ2VyID0gaGVscGVyTWFuYWdlcjt0aGlzLnJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSByZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyO3RoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCA9IGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQ7dGhpcy5pc0Zsb3dUcmFuc2Zvcm1FbmFibGVkID0gaXNGbG93VHJhbnNmb3JtRW5hYmxlZDt0aGlzLmtlZXBVbnVzZWRJbXBvcnRzID0ga2VlcFVudXNlZEltcG9ydHM7O1xuICAgIHRoaXMubm9uVHlwZUlkZW50aWZpZXJzID1cbiAgICAgIGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiYgIWtlZXBVbnVzZWRJbXBvcnRzXG4gICAgICAgID8gX2dldE5vblR5cGVJZGVudGlmaWVycy5nZXROb25UeXBlSWRlbnRpZmllcnMuY2FsbCh2b2lkIDAsIHRva2Vucywgb3B0aW9ucylcbiAgICAgICAgOiBuZXcgU2V0KCk7XG4gICAgdGhpcy5kZWNsYXJhdGlvbkluZm8gPVxuICAgICAgaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCAmJiAha2VlcFVudXNlZEltcG9ydHNcbiAgICAgICAgPyBfZ2V0RGVjbGFyYXRpb25JbmZvMi5kZWZhdWx0LmNhbGwodm9pZCAwLCB0b2tlbnMpXG4gICAgICAgIDogX2dldERlY2xhcmF0aW9uSW5mby5FTVBUWV9ERUNMQVJBVElPTl9JTkZPO1xuICAgIHRoaXMuaW5qZWN0Q3JlYXRlUmVxdWlyZUZvckltcG9ydFJlcXVpcmUgPSBCb29sZWFuKG9wdGlvbnMuaW5qZWN0Q3JlYXRlUmVxdWlyZUZvckltcG9ydFJlcXVpcmUpO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICAvLyBUeXBlU2NyaXB0IGBpbXBvcnQgZm9vID0gcmVxdWlyZSgnZm9vJyk7YCBzaG91bGQgYWx3YXlzIGp1c3QgYmUgdHJhbnNsYXRlZCB0byBwbGFpbiByZXF1aXJlLlxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMyhfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5lcSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJbXBvcnRFcXVhbHMoKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczQoX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0LCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5lcSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSlcbiAgICApIHtcbiAgICAgIC8vIGltcG9ydCB0eXBlIFQgPSByZXF1aXJlKCdUJylcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgLy8gVGhpcyBjb25zdHJ1Y3QgaXMgYWx3YXlzIGV4YWN0bHkgOCB0b2tlbnMgbG9uZywgc28gcmVtb3ZlIHRoZSA3IHJlbWFpbmluZyB0b2tlbnMuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuZXEpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJtb2R1bGUuZXhwb3J0c1wiKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNShfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUuZXEpICYmXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAyLCBfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpXG4gICAgKSB7XG4gICAgICAvLyBleHBvcnQgaW1wb3J0IHR5cGUgVCA9IHJlcXVpcmUoJ1QnKVxuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICAvLyBUaGlzIGNvbnN0cnVjdCBpcyBhbHdheXMgZXhhY3RseSA5IHRva2VucyBsb25nLCBzbyByZW1vdmUgdGhlIDggcmVtYWluaW5nIHRva2Vucy5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJbXBvcnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZGVmYXVsdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NFeHBvcnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc05hbWVkRXhwb3J0cygpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSlcbiAgICApIHtcbiAgICAgIC8vIGV4cG9ydCB0eXBlIHthfTtcbiAgICAgIC8vIGV4cG9ydCB0eXBlIHthIGFzIGJ9O1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2F9IGZyb20gJy4vYic7XG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGZyb20gJy4vYic7XG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGFzIG5zIGZyb20gJy4vYic7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gKlxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fYXMpKSB7XG4gICAgICAgICAgLy8gYXNcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAgIC8vIG5zXG4gICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gUmVtb3ZlIHR5cGUgcmUtZXhwb3J0IGAuLi4gfSBmcm9tICcuL1QnYFxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pICYmXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIF9yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMucmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzLmNhbGwodm9pZCAwLCB0aGlzLnRva2Vucyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgIHByb2Nlc3NJbXBvcnRFcXVhbHMoKSB7XG4gICAgY29uc3QgaW1wb3J0TmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEpO1xuICAgIGlmICh0aGlzLnNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZShpbXBvcnROYW1lKSkge1xuICAgICAgLy8gSWYgdGhpcyBuYW1lIGlzIG9ubHkgdXNlZCBhcyBhIHR5cGUsIGVsaWRlIHRoZSB3aG9sZSBpbXBvcnQuXG4gICAgICBfZWxpZGVJbXBvcnRFcXVhbHMyLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRoaXMudG9rZW5zKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5qZWN0Q3JlYXRlUmVxdWlyZUZvckltcG9ydFJlcXVpcmUpIHtcbiAgICAgIC8vIFdlJ3JlIHVzaW5nIHJlcXVpcmUgaW4gYW4gZW52aXJvbm1lbnQgKE5vZGUgRVNNKSB0aGF0IGRvZXNuJ3QgcHJvdmlkZVxuICAgICAgLy8gaXQgYXMgYSBnbG9iYWwsIHNvIGdlbmVyYXRlIGEgaGVscGVyIHRvIGltcG9ydCBpdC5cbiAgICAgIC8vIGltcG9ydCAtPiBjb25zdFxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgICAvLyBGb29cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgLy8gPVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAvLyByZXF1aXJlXG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4odGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXCJyZXF1aXJlXCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3RoZXJ3aXNlLCBqdXN0IHN3aXRjaCBgaW1wb3J0YCB0byBgY29uc3RgLlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgIHByb2Nlc3NJbXBvcnQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2ltcG9ydCwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICAvLyBEeW5hbWljIGltcG9ydHMgZG9uJ3QgbmVlZCB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMudG9rZW5zLnNuYXBzaG90KCk7XG4gICAgY29uc3QgYWxsSW1wb3J0c1JlbW92ZWQgPSB0aGlzLnJlbW92ZUltcG9ydFR5cGVCaW5kaW5ncygpO1xuICAgIGlmIChhbGxJbXBvcnRzUmVtb3ZlZCkge1xuICAgICAgdGhpcy50b2tlbnMucmVzdG9yZVRvU25hcHNob3Qoc25hcHNob3QpO1xuICAgICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBfcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzLnJlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcy5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMpO1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuc2VtaSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHR5cGUgYmluZGluZ3MgZnJvbSB0aGlzIGltcG9ydCwgbGVhdmluZyB0aGUgcmVzdCBvZiB0aGUgaW1wb3J0IGludGFjdC5cbiAgICpcbiAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBpbXBvcnQgd2FzIE9OTFkgdHlwZXMsIGFuZCB0aHVzIGlzIGVsaWdpYmxlIGZvciByZW1vdmFsLiBUaGlzIHdpbGwgYmFpbCBvdXRcbiAgICogb2YgdGhlIHJlcGxhY2VtZW50IG9wZXJhdGlvbiwgc28gd2UgY2FuIHJldHVybiBlYXJseSBoZXJlLlxuICAgKi9cbiAgIHJlbW92ZUltcG9ydFR5cGVCaW5kaW5ncygpIHtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLl9pbXBvcnQpO1xuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fdHlwZSkgJiZcbiAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSlcbiAgICApIHtcbiAgICAgIC8vIFRoaXMgaXMgYW4gXCJpbXBvcnQgdHlwZVwiIHN0YXRlbWVudCwgc28gZXhpdCBlYXJseS5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiYXJlIGltcG9ydCwgc28gd2Ugc2hvdWxkIHByb2NlZWQgd2l0aCB0aGUgaW1wb3J0LlxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2tpcCB0aGUgXCJtb2R1bGVcIiB0b2tlbiBpbiBpbXBvcnQgcmVmbGVjdGlvbi5cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX21vZHVsZSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDIsIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fZnJvbSlcbiAgICApIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cblxuICAgIGxldCBmb3VuZE5vblR5cGVJbXBvcnQgPSBmYWxzZTtcbiAgICBsZXQgZm91bmRBbnlOYW1lZEltcG9ydCA9IGZhbHNlO1xuICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7XG5cbiAgICAvLyBIYW5kbGUgZGVmYXVsdCBpbXBvcnQuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZSh0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3VuZE5vblR5cGVJbXBvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICAgICAgLy8gV2UncmUgaW4gYSBzdGF0ZW1lbnQgbGlrZTpcbiAgICAgICAgICAvLyBpbXBvcnQgQSwgKiBhcyBCIGZyb20gJy4vQSc7XG4gICAgICAgICAgLy8gb3JcbiAgICAgICAgICAvLyBpbXBvcnQgQSwge2Zvb30gZnJvbSAnLi9BJztcbiAgICAgICAgICAvLyB3aGVyZSB0aGUgYEFgIGlzIGJlaW5nIGtlcHQuIFRoZSBjb21tYSBzaG91bGQgYmUgcmVtb3ZlZCBpZiBhbiBvbmx5XG4gICAgICAgICAgLy8gaWYgdGhlIG5leHQgcGFydCBvZiB0aGUgaW1wb3J0IHN0YXRlbWVudCBpcyBlbGlkZWQsIGJ1dCB0aGF0J3MgaGFyZFxuICAgICAgICAgIC8vIHRvIGRldGVybWluZSBhdCB0aGlzIHBvaW50IGluIHRoZSBjb2RlLiBJbnN0ZWFkLCBhbHdheXMgcmVtb3ZlIGl0XG4gICAgICAgICAgLy8gYW5kIHNldCBhIGZsYWcgdG8gYWRkIGl0IGJhY2sgaWYgbmVjZXNzYXJ5LlxuICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5zdGFyKSkge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkQXV0b21hdGljYWxseUVsaWRlSW1wb3J0ZWROYW1lKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRSZWxhdGl2ZUluZGV4KDIpKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG5lZWRzQ29tbWEpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiLFwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3VuZE5vblR5cGVJbXBvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnN0YXIpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLm5hbWUpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpKSB7XG4gICAgICBpZiAobmVlZHNDb21tYSkge1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiLFwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgZm91bmRBbnlOYW1lZEltcG9ydCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc3BlY2lmaWVySW5mby5pc1R5cGUgfHxcbiAgICAgICAgICB0aGlzLnNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZShzcGVjaWZpZXJJbmZvLnJpZ2h0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgc3BlY2lmaWVySW5mby5lbmRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZE5vblR5cGVJbXBvcnQgPSB0cnVlO1xuICAgICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHNwZWNpZmllckluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmtlZXBVbnVzZWRJbXBvcnRzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiAhZm91bmROb25UeXBlSW1wb3J0O1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zsb3dUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICAvLyBJbiBGbG93LCB1bmxpa2UgVFMsIGBpbXBvcnQge30gZnJvbSAnZm9vJztgIHByZXNlcnZlcyB0aGUgaW1wb3J0LlxuICAgICAgcmV0dXJuIGZvdW5kQW55TmFtZWRJbXBvcnQgJiYgIWZvdW5kTm9uVHlwZUltcG9ydDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gICBzaG91bGRBdXRvbWF0aWNhbGx5RWxpZGVJbXBvcnRlZE5hbWUobmFtZSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiZcbiAgICAgICF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmXG4gICAgICAhdGhpcy5ub25UeXBlSWRlbnRpZmllcnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxuXG4gICBwcm9jZXNzRXhwb3J0RGVmYXVsdCgpIHtcbiAgICBpZiAoXG4gICAgICBfc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0Mi5kZWZhdWx0LmNhbGwodm9pZCAwLCBcbiAgICAgICAgdGhpcy5pc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkLFxuICAgICAgICB0aGlzLmtlZXBVbnVzZWRJbXBvcnRzLFxuICAgICAgICB0aGlzLnRva2VucyxcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkluZm8sXG4gICAgICApXG4gICAgKSB7XG4gICAgICAvLyBJZiB0aGUgZXhwb3J0ZWQgdmFsdWUgaXMganVzdCBhbiBpZGVudGlmaWVyIGFuZCBzaG91bGQgYmUgZWxpZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICAgIC8vIHJ1bGVzLCB0aGVuIHJlbW92ZSBpdCBlbnRpcmVseS4gSXQgd2lsbCBhbHdheXMgaGF2ZSB0aGUgZm9ybSBgZXhwb3J0IGRlZmF1bHQgZWAsXG4gICAgICAvLyB3aGVyZSBgZWAgaXMgYW4gaWRlbnRpZmllci5cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhbHJlYWR5SGFzTmFtZSA9XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNChfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQsIF90eXBlcy5Ub2tlblR5cGUuX2Z1bmN0aW9uLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8XG4gICAgICAvLyBleHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvblxuICAgICAgKHRoaXMudG9rZW5zLm1hdGNoZXM1KF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZGVmYXVsdCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLl9mdW5jdGlvbiwgX3R5cGVzLlRva2VuVHlwZS5uYW1lKSAmJlxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgoXG4gICAgICAgICAgdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAyLFxuICAgICAgICAgIF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXN5bmMsXG4gICAgICAgICkpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNChfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQsIF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNShfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2RlZmF1bHQsIF90eXBlcy5Ub2tlblR5cGUuX2Fic3RyYWN0LCBfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcywgX3R5cGVzLlRva2VuVHlwZS5uYW1lKTtcblxuICAgIGlmICghYWxyZWFkeUhhc05hbWUgJiYgdGhpcy5yZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgcGxhaW4gXCJleHBvcnQgZGVmYXVsdCBFXCIgc3RhdGVtZW50IGFuZCB3ZSBuZWVkIHRvIGFzc2lnbiBFIHRvIGEgdmFyaWFibGUuXG4gICAgICAvLyBDaGFuZ2UgXCJleHBvcnQgZGVmYXVsdCBFXCIgdG8gXCJsZXQgX2RlZmF1bHQ7IGV4cG9ydCBkZWZhdWx0IF9kZWZhdWx0ID0gRVwiXG4gICAgICBjb25zdCBkZWZhdWx0VmFyTmFtZSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9kZWZhdWx0XCIpO1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGBsZXQgJHtkZWZhdWx0VmFyTmFtZX07IGV4cG9ydGApO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgJHtkZWZhdWx0VmFyTmFtZX0gPWApO1xuICAgICAgdGhpcy5yZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyLnNldEV4dHJhY3RlZERlZmF1bHRFeHBvcnROYW1lKGRlZmF1bHRWYXJOYW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGEgc3RhdGVtZW50IHdpdGggb25lIG9mIHRoZXNlIGZvcm1zOlxuICAgKiBleHBvcnQge2EsIHR5cGUgYn07XG4gICAqIGV4cG9ydCB7YywgdHlwZSBkfSBmcm9tICdmb28nO1xuICAgKlxuICAgKiBJbiBib3RoIGNhc2VzLCBhbnkgZXhwbGljaXQgdHlwZSBleHBvcnRzIHNob3VsZCBiZSByZW1vdmVkLiBJbiB0aGUgZmlyc3RcbiAgICogY2FzZSwgd2UgYWxzbyBuZWVkIHRvIGhhbmRsZSBpbXBsaWNpdCBleHBvcnQgZWxpc2lvbiBmb3IgbmFtZXMgZGVjbGFyZWQgYXNcbiAgICogdHlwZXMuIEluIHRoZSBzZWNvbmQgY2FzZSwgd2UgbXVzdCBOT1QgZG8gaW1wbGljaXQgbmFtZWQgZXhwb3J0IGVsaXNpb24sXG4gICAqIGJ1dCB3ZSBtdXN0IHJlbW92ZSB0aGUgcnVudGltZSBpbXBvcnQgaWYgYWxsIGV4cG9ydHMgYXJlIHR5cGUgZXhwb3J0cy5cbiAgICovXG4gICBwcm9jZXNzTmFtZWRFeHBvcnRzKCkge1xuICAgIGlmICghdGhpcy5pc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuXG4gICAgY29uc3QgaXNSZUV4cG9ydCA9IF9pc0V4cG9ydEZyb20yLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRoaXMudG9rZW5zKTtcbiAgICBsZXQgZm91bmROb25UeXBlRXhwb3J0ID0gZmFsc2U7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcy50b2tlbnMpO1xuICAgICAgaWYgKFxuICAgICAgICBzcGVjaWZpZXJJbmZvLmlzVHlwZSB8fFxuICAgICAgICAoIWlzUmVFeHBvcnQgJiYgdGhpcy5zaG91bGRFbGlkZUV4cG9ydGVkTmFtZShzcGVjaWZpZXJJbmZvLmxlZnROYW1lKSlcbiAgICAgICkge1xuICAgICAgICAvLyBUeXBlIGV4cG9ydCwgc28gcmVtb3ZlIGFsbCB0b2tlbnMsIGluY2x1ZGluZyBhbnkgY29tbWEuXG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHNwZWNpZmllckluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vbi10eXBlIGV4cG9ydCwgc28gY29weSBhbGwgdG9rZW5zLCBpbmNsdWRpbmcgYW55IGNvbW1hLlxuICAgICAgICBmb3VuZE5vblR5cGVFeHBvcnQgPSB0cnVlO1xuICAgICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBzcGVjaWZpZXJJbmZvLmVuZEluZGV4KSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpO1xuXG4gICAgaWYgKCF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmIGlzUmVFeHBvcnQgJiYgIWZvdW5kTm9uVHlwZUV4cG9ydCkge1xuICAgICAgLy8gVGhpcyBpcyBhIHR5cGUtb25seSByZS1leHBvcnQsIHNvIHNraXAgZXZhbHVhdGluZyB0aGUgb3RoZXIgbW9kdWxlLiBUZWNobmljYWxseSB0aGlzXG4gICAgICAvLyBsZWF2ZXMgdGhlIHN0YXRlbWVudCBhcyBgZXhwb3J0IHt9YCwgYnV0IHRoYXQncyBvayBzaW5jZSB0aGF0J3MgYSBuby1vcC5cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgX3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcy5yZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXMuY2FsbCh2b2lkIDAsIHRoaXMudG9rZW5zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFU00gZWxpZGVzIGFsbCBpbXBvcnRzIHdpdGggdGhlIHJ1bGUgdGhhdCB3ZSBvbmx5IGVsaWRlIGlmIHdlIHNlZSB0aGF0IGl0J3NcbiAgICogYSB0eXBlIGFuZCBuZXZlciBzZWUgaXQgYXMgYSB2YWx1ZS4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBDSlMsIHdoaWNoXG4gICAqIGVsaWRlcyBpbXBvcnRzIHRoYXQgYXJlIGNvbXBsZXRlbHkgdW5rbm93bi5cbiAgICovXG4gICBzaG91bGRFbGlkZUV4cG9ydGVkTmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCAmJlxuICAgICAgIXRoaXMua2VlcFVudXNlZEltcG9ydHMgJiZcbiAgICAgIHRoaXMuZGVjbGFyYXRpb25JbmZvLnR5cGVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpICYmXG4gICAgICAhdGhpcy5kZWNsYXJhdGlvbkluZm8udmFsdWVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBFU01JbXBvcnRUcmFuc2Zvcm1lcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfXZhciBfa2V5d29yZHMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzJyk7XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cbnZhciBfVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL1RyYW5zZm9ybWVyJyk7IHZhciBfVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJhbnNmb3JtZXIpO1xuXG4gY2xhc3MgRmxvd1RyYW5zZm9ybWVyIGV4dGVuZHMgX1RyYW5zZm9ybWVyMi5kZWZhdWx0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBpc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkLFxuICApIHtcbiAgICBzdXBlcigpO3RoaXMucm9vdFRyYW5zZm9ybWVyID0gcm9vdFRyYW5zZm9ybWVyO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuaXNJbXBvcnRzVHJhbnNmb3JtRW5hYmxlZCA9IGlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQ7O1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzUG9zc2libGVBcnJvd1BhcmFtRW5kKCkgfHxcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NQb3NzaWJsZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtcygpIHx8XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzUG9zc2libGVUeXBlUmFuZ2UoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9lbnVtKSkge1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLl9leHBvcnQsIF90eXBlcy5Ub2tlblR5cGUuX2VudW0pKSB7XG4gICAgICB0aGlzLnByb2Nlc3NOYW1lZEV4cG9ydEVudW0oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczMoX3R5cGVzLlRva2VuVHlwZS5fZXhwb3J0LCBfdHlwZXMuVG9rZW5UeXBlLl9kZWZhdWx0LCBfdHlwZXMuVG9rZW5UeXBlLl9lbnVtKSkge1xuICAgICAgdGhpcy5wcm9jZXNzRGVmYXVsdEV4cG9ydEVudW0oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGEgZGVjbGFyYXRpb24gbGlrZTpcbiAgICogZXhwb3J0IGVudW0gRSAuLi5cbiAgICpcbiAgICogV2l0aCB0aGlzIGltcG9ydHMgdHJhbnNmb3JtLCB0aGlzIGJlY29tZXM6XG4gICAqIGNvbnN0IEUgPSBbW2VudW1dXTsgZXhwb3J0cy5FID0gRTtcbiAgICpcbiAgICogb3RoZXJ3aXNlLCBpdCBiZWNvbWVzOlxuICAgKiBleHBvcnQgY29uc3QgRSA9IFtbZW51bV1dO1xuICAgKi9cbiAgcHJvY2Vzc05hbWVkRXhwb3J0RW51bSgpIHtcbiAgICBpZiAodGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICAvLyBleHBvcnRcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgY29uc3QgZW51bU5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0UmVsYXRpdmVJbmRleCgxKTtcbiAgICAgIHRoaXMucHJvY2Vzc0VudW0oKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnRzLiR7ZW51bU5hbWV9ID0gJHtlbnVtTmFtZX07YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBkZWNsYXJhdGlvbiBsaWtlOlxuICAgKiBleHBvcnQgZGVmYXVsdCBlbnVtIEVcbiAgICpcbiAgICogV2l0aCB0aGUgaW1wb3J0cyB0cmFuc2Zvcm0sIHRoaXMgYmVjb21lczpcbiAgICogY29uc3QgRSA9IFtbZW51bV1dOyBleHBvcnRzLmRlZmF1bHQgPSBFO1xuICAgKlxuICAgKiBvdGhlcndpc2UsIGl0IGJlY29tZXM6XG4gICAqIGNvbnN0IEUgPSBbW2VudW1dXTsgZXhwb3J0IGRlZmF1bHQgRTtcbiAgICovXG4gIHByb2Nlc3NEZWZhdWx0RXhwb3J0RW51bSgpIHtcbiAgICAvLyBleHBvcnRcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAvLyBkZWZhdWx0XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICBjb25zdCBlbnVtTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRSZWxhdGl2ZUluZGV4KDEpO1xuICAgIHRoaXMucHJvY2Vzc0VudW0oKTtcbiAgICBpZiAodGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgZXhwb3J0cy5kZWZhdWx0ID0gJHtlbnVtTmFtZX07YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnQgZGVmYXVsdCAke2VudW1OYW1lfTtgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNwaWxlIGZsb3cgZW51bXMgdG8gaW52b2tlIHRoZSBcImZsb3ctZW51bXMtcnVudGltZVwiIGxpYnJhcnkuXG4gICAqXG4gICAqIEN1cnJlbnRseSwgdGhlIHRyYW5zcGlsZWQgY29kZSBhbHdheXMgdXNlcyBgcmVxdWlyZShcImZsb3ctZW51bXMtcnVudGltZVwiKWAsXG4gICAqIGJ1dCBpZiBmdXR1cmUgZmxleGliaWxpdHkgaXMgbmVlZGVkLCB3ZSBjb3VsZCBleHBvc2UgYSBjb25maWcgb3B0aW9uIGZvclxuICAgKiB0aGlzIHN0cmluZyAoc2ltaWxhciB0byBjb25maWd1cmFibGUgSlNYKS4gRXZlbiB3aGVuIHRhcmdldGluZyBFU00sIHRoZVxuICAgKiBkZWZhdWx0IGJlaGF2aW9yIG9mIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZmxvdy1lbnVtcyBpcyB0byB1c2UgcmVxdWlyZVxuICAgKiByYXRoZXIgdGhhbiBpbmplY3RpbmcgYW4gaW1wb3J0LlxuICAgKlxuICAgKiBGbG93IGVudW1zIGFyZSBxdWl0ZSBhIGJpdCBzaW1wbGVyIHRoYW4gVFMgZW51bXMgYW5kIGhhdmUgc29tZSBjb252ZW5pZW50XG4gICAqIGNvbnN0cmFpbnRzOlxuICAgKiAtIEVsZW1lbnQgaW5pdGlhbGl6ZXJzIG11c3QgYmUgZWl0aGVyIGFsd2F5cyBwcmVzZW50IG9yIGFsd2F5cyBhYnNlbnQuIFRoYXRcbiAgICogICBtZWFucyB0aGF0IHdlIGNhbiB1c2UgZml4ZWQgbG9va2FoZWFkIG9uIHRoZSBmaXJzdCBlbGVtZW50IChpZiBhbnkpIGFuZFxuICAgKiAgIGFzc3VtZSB0aGF0IGFsbCBlbGVtZW50cyBhcmUgbGlrZSB0aGF0LlxuICAgKiAtIFRoZSByaWdodC1oYW5kIHNpZGUgb2YgYW4gZWxlbWVudCBpbml0aWFsaXplciBtdXN0IGJlIGEgbGl0ZXJhbCB2YWx1ZSxcbiAgICogICBub3QgYSBjb21wbGV4IGV4cHJlc3Npb24gYW5kIG5vdCByZWZlcmVuY2luZyBvdGhlciBlbGVtZW50cy4gVGhhdCBtZWFuc1xuICAgKiAgIHdlIGNhbiBzaW1wbHkgY29weSBhIHNpbmdsZSB0b2tlbi5cbiAgICpcbiAgICogRW51bXMgY2FuIGJlIGJyb2tlbiB1cCBpbnRvIHRocmVlIGJhc2ljIGNhc2VzOlxuICAgKlxuICAgKiBNaXJyb3JlZCBlbnVtczpcbiAgICogZW51bSBFIHtBLCBCfVxuICAgKiAgIC0+XG4gICAqIGNvbnN0IEUgPSByZXF1aXJlKFwiZmxvdy1lbnVtcy1ydW50aW1lXCIpLk1pcnJvcmVkKFtcIkFcIiwgXCJCXCJdKTtcbiAgICpcbiAgICogSW5pdGlhbGl6ZXIgZW51bXM6XG4gICAqIGVudW0gRSB7QSA9IDEsIEIgPSAyfVxuICAgKiAgIC0+XG4gICAqIGNvbnN0IEUgPSByZXF1aXJlKFwiZmxvdy1lbnVtcy1ydW50aW1lXCIpKHtBOiAxLCBCOiAyfSk7XG4gICAqXG4gICAqIFN5bWJvbCBlbnVtczpcbiAgICogZW51bSBFIG9mIHN5bWJvbCB7QSwgQn1cbiAgICogICAtPlxuICAgKiBjb25zdCBFID0gcmVxdWlyZShcImZsb3ctZW51bXMtcnVudGltZVwiKSh7QTogU3ltYm9sKFwiQVwiKSwgQjogU3ltYm9sKFwiQlwiKX0pO1xuICAgKlxuICAgKiBXZSBjYW4gc3RhdGljYWxseSBkZXRlY3Qgd2hpY2ggb2YgdGhlIHRocmVlIGNhc2VzIHRoaXMgaXMgYnkgbG9va2luZyBhdCB0aGVcbiAgICogXCJvZlwiIGRlY2xhcmF0aW9uIChpZiBhbnkpIGFuZCBzZWVpbmcgaWYgdGhlIGZpcnN0IGVsZW1lbnQgaGFzIGFuIGluaXRpYWxpemVyLlxuICAgKiBTaW5jZSB0aGUgb3RoZXIgdHJhbnNmb3JtIGRldGFpbHMgYXJlIHNvIHNpbWlsYXIgYmV0d2VlbiB0aGUgdGhyZWUgY2FzZXMsIHdlXG4gICAqIHVzZSBhIHNpbmdsZSBpbXBsZW1lbnRhdGlvbiBhbmQgdmFyeSB0aGUgdHJhbnNmb3JtIHdpdGhpbiBwcm9jZXNzRW51bUVsZW1lbnRcbiAgICogYmFzZWQgb24gY2FzZS5cbiAgICovXG4gIHByb2Nlc3NFbnVtKCkge1xuICAgIC8vIGVudW0gRSAtPiBjb25zdCBFXG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5uYW1lKTtcblxuICAgIGxldCBpc1N5bWJvbEVudW0gPSBmYWxzZTtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoX2tleXdvcmRzLkNvbnRleHR1YWxLZXl3b3JkLl9vZikpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBpc1N5bWJvbEVudW0gPSB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChfa2V5d29yZHMuQ29udGV4dHVhbEtleXdvcmQuX3N5bWJvbCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgICBjb25zdCBoYXNJbml0aWFsaXplcnMgPSB0aGlzLnRva2Vucy5tYXRjaGVzMyhfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmVxKTtcbiAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKCcgPSByZXF1aXJlKFwiZmxvdy1lbnVtcy1ydW50aW1lXCIpJyk7XG5cbiAgICBjb25zdCBpc01pcnJvcmVkID0gIWlzU3ltYm9sRW51bSAmJiAhaGFzSW5pdGlhbGl6ZXJzO1xuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoaXNNaXJyb3JlZCA/IFwiLk1pcnJvcmVkKFtcIiA6IFwiKHtcIik7XG5cbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgLy8gLi4uIGlzIGFsbG93ZWQgYXQgdGhlIGVuZCBhbmQgaGFzIG5vIHJ1bnRpbWUgYmVoYXZpb3IuXG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5lbGxpcHNpcykpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2Nlc3NFbnVtRWxlbWVudChpc1N5bWJvbEVudW0sIGhhc0luaXRpYWxpemVycyk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGlzTWlycm9yZWQgPyBcIl0pO1wiIDogXCJ9KTtcIik7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhbiBpbmRpdmlkdWFsIGVudW0gZWxlbWVudCwgcHJvZHVjaW5nIGVpdGhlciBhbiBhcnJheSBlbGVtZW50IG9yIGFuXG4gICAqIG9iamVjdCBlbGVtZW50IGJhc2VkIG9uIHdoYXQgdHlwZSBvZiBlbnVtIHRoaXMgaXMuXG4gICAqL1xuICBwcm9jZXNzRW51bUVsZW1lbnQoaXNTeW1ib2xFbnVtLCBoYXNJbml0aWFsaXplcnMpIHtcbiAgICBpZiAoaXNTeW1ib2xFbnVtKSB7XG4gICAgICAvLyBTeW1ib2wgZW51bXMgbmV2ZXIgaGF2ZSBpbml0aWFsaXplcnMgYW5kIGFyZSBleHBhbmRlZCB0byBvYmplY3QgZWxlbWVudHMuXG4gICAgICAvLyBBLCAtPiBBOiBTeW1ib2woXCJBXCIpLFxuICAgICAgY29uc3QgZWxlbWVudE5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGA6IFN5bWJvbChcIiR7ZWxlbWVudE5hbWV9XCIpYCk7XG4gICAgfSBlbHNlIGlmIChoYXNJbml0aWFsaXplcnMpIHtcbiAgICAgIC8vIEluaXRpYWxpemVycyBhcmUgZXhwYW5kZWQgdG8gb2JqZWN0IGVsZW1lbnRzLlxuICAgICAgLy8gQSA9IDEsIC0+IEE6IDEsXG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoXCI6XCIpO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVudW0gZWxlbWVudHMgd2l0aG91dCBpbml0aWFsaXplcnMgYmVjb21lIHN0cmluZyBsaXRlcmFsIGFycmF5IGVsZW1lbnRzLlxuICAgICAgLy8gQSwgLT4gXCJBXCIsXG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oYFwiJHt0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpfVwiYCk7XG4gICAgfVxuICB9XG59IGV4cG9ydHMuZGVmYXVsdCA9IEZsb3dUcmFuc2Zvcm1lcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfSBmdW5jdGlvbiBfb3B0aW9uYWxDaGFpbihvcHMpIHsgbGV0IGxhc3RBY2Nlc3NMSFMgPSB1bmRlZmluZWQ7IGxldCB2YWx1ZSA9IG9wc1swXTsgbGV0IGkgPSAxOyB3aGlsZSAoaSA8IG9wcy5sZW5ndGgpIHsgY29uc3Qgb3AgPSBvcHNbaV07IGNvbnN0IGZuID0gb3BzW2kgKyAxXTsgaSArPSAyOyBpZiAoKG9wID09PSAnb3B0aW9uYWxBY2Nlc3MnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykgJiYgdmFsdWUgPT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGlmIChvcCA9PT0gJ2FjY2VzcycgfHwgb3AgPT09ICdvcHRpb25hbEFjY2VzcycpIHsgbGFzdEFjY2Vzc0xIUyA9IHZhbHVlOyB2YWx1ZSA9IGZuKHZhbHVlKTsgfSBlbHNlIGlmIChvcCA9PT0gJ2NhbGwnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykgeyB2YWx1ZSA9IGZuKCguLi5hcmdzKSA9PiB2YWx1ZS5jYWxsKGxhc3RBY2Nlc3NMSFMsIC4uLmFyZ3MpKTsgbGFzdEFjY2Vzc0xIUyA9IHVuZGVmaW5lZDsgfSB9IHJldHVybiB2YWx1ZTsgfVxuXG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG5cbnZhciBfVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL1RyYW5zZm9ybWVyJyk7IHZhciBfVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJhbnNmb3JtZXIpO1xuXG5jb25zdCBKRVNUX0dMT0JBTF9OQU1FID0gXCJqZXN0XCI7XG5jb25zdCBIT0lTVEVEX01FVEhPRFMgPSBbXCJtb2NrXCIsIFwidW5tb2NrXCIsIFwiZW5hYmxlQXV0b21vY2tcIiwgXCJkaXNhYmxlQXV0b21vY2tcIl07XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgYmFiZWwtcGx1Z2luLWplc3QtaG9pc3QsIHdoaWNoIGhvaXN0cyB1cCBzb21lIGplc3QgbWV0aG9kXG4gKiBjYWxscyBhYm92ZSB0aGUgaW1wb3J0cyB0byBhbGxvdyB0aGVtIHRvIG92ZXJyaWRlIG90aGVyIGltcG9ydHMuXG4gKlxuICogVG8gcHJlc2VydmUgbGluZSBudW1iZXJzLCByYXRoZXIgdGhhbiBkaXJlY3RseSBtb3ZpbmcgdGhlIGplc3QubW9jayBjb2RlLCB3ZVxuICogd3JhcCBlYWNoIGludm9jYXRpb24gaW4gYSBmdW5jdGlvbiBzdGF0ZW1lbnQgYW5kIHRoZW4gY2FsbCB0aGUgZnVuY3Rpb24gZnJvbVxuICogdGhlIHRvcCBvZiB0aGUgZmlsZS5cbiAqL1xuIGNsYXNzIEplc3RIb2lzdFRyYW5zZm9ybWVyIGV4dGVuZHMgX1RyYW5zZm9ybWVyMi5kZWZhdWx0IHtcbiAgICBfX2luaXQoKSB7dGhpcy5ob2lzdGVkRnVuY3Rpb25OYW1lcyA9IFtdfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICByb290VHJhbnNmb3JtZXIsXG4gICAgIHRva2VucyxcbiAgICAgbmFtZU1hbmFnZXIsXG4gICAgIGltcG9ydFByb2Nlc3NvcixcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnJvb3RUcmFuc2Zvcm1lciA9IHJvb3RUcmFuc2Zvcm1lcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7dGhpcy5pbXBvcnRQcm9jZXNzb3IgPSBpbXBvcnRQcm9jZXNzb3I7SmVzdEhvaXN0VHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuc2NvcGVEZXB0aCA9PT0gMCAmJlxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczQoX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmRvdCwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkgJiZcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCkgPT09IEpFU1RfR0xPQkFMX05BTUVcbiAgICApIHtcbiAgICAgIC8vIFRPRE86IFRoaXMgb25seSB3b3JrcyBpZiBpbXBvcnRzIHRyYW5zZm9ybSBpcyBhY3RpdmUsIHdoaWNoIGl0IHdpbGwgYmUgZm9yIGplc3QuXG4gICAgICAvLyAgICAgICBCdXQgaWYgamVzdCBhZGRzIG1vZHVsZSBzdXBwb3J0IGFuZCB3ZSBubyBsb25nZXIgbmVlZCB0aGUgaW1wb3J0IHRyYW5zZm9ybSwgdGhpcyBuZWVkcyBmaXhpbmcuXG4gICAgICBpZiAoX29wdGlvbmFsQ2hhaW4oW3RoaXMsICdhY2Nlc3MnLCBfID0+IF8uaW1wb3J0UHJvY2Vzc29yLCAnb3B0aW9uYWxBY2Nlc3MnLCBfMiA9PiBfMi5nZXRHbG9iYWxOYW1lcywgJ2NhbGwnLCBfMyA9PiBfMygpLCAnb3B0aW9uYWxBY2Nlc3MnLCBfNCA9PiBfNC5oYXMsICdjYWxsJywgXzUgPT4gXzUoSkVTVF9HTE9CQUxfTkFNRSldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0SG9pc3RlZENhbGxzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0SG9pc3RlZENvZGUoKSB7XG4gICAgaWYgKHRoaXMuaG9pc3RlZEZ1bmN0aW9uTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gVGhpcyB3aWxsIGJlIHBsYWNlZCBiZWZvcmUgbW9kdWxlIGludGVyb3AgY29kZSwgYnV0IHRoYXQncyBmaW5lIHNpbmNlXG4gICAgICAvLyBpbXBvcnRzIGFyZW4ndCBhbGxvd2VkIGluIG1vZHVsZSBtb2NrIGZhY3Rvcmllcy5cbiAgICAgIHJldHVybiB0aGlzLmhvaXN0ZWRGdW5jdGlvbk5hbWVzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX0oKTtgKS5qb2luKFwiXCIpO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhbnkgbWV0aG9kcyBjYWxscyBvbiB0aGUgamVzdC1vYmplY3QgdGhhdCBzaG91bGQgYmUgaG9pc3RlZC5cbiAgICpcbiAgICogQWNjb3JkaW5nIHRvIHRoZSBqZXN0IGRvY3MsIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvZW4vamVzdC1vYmplY3QjamVzdG1vY2ttb2R1bGVuYW1lLWZhY3Rvcnktb3B0aW9ucyxcbiAgICogbW9jaywgdW5tb2NrLCBlbmFibGVBdXRvbW9jaywgZGlzYWJsZUF1dG9tb2NrLCBhcmUgdGhlIG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgaG9pc3RlZC5cbiAgICpcbiAgICogV2UgZG8gbm90IGFwcGx5IHRoZSBzYW1lIGNoZWNrcyBvZiB0aGUgYXJndW1lbnRzIGFzIGJhYmVsLXBsdWdpbi1qZXN0LWhvaXN0IGRvZXMuXG4gICAqL1xuICAgZXh0cmFjdEhvaXN0ZWRDYWxscygpIHtcbiAgICAvLyBXZSdyZSBoYW5kbGluZyBhIGNoYWluIG9mIGNhbGxzIHdoZXJlIGBqZXN0YCBtYXkgb3IgbWF5IG5vdCBuZWVkIHRvIGJlIGluc2VydGVkIGZvciBlYWNoIGNhbGxcbiAgICAvLyBpbiB0aGUgY2hhaW4sIHNvIHJlbW92ZSB0aGUgaW5pdGlhbCBgamVzdGAgdG8gbWFrZSB0aGUgbG9vcCBpbXBsZW1lbnRhdGlvbiBjbGVhbmVyLlxuICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgLy8gVHJhY2sgc29tZSBzdGF0ZSBzbyB0aGF0IG11bHRpcGxlIG5vbi1ob2lzdGVkIGNoYWluZWQgY2FsbHMgaW4gYSByb3cga2VlcCB0aGVpciBjaGFpbmluZ1xuICAgIC8vIHN5bnRheC5cbiAgICBsZXQgZm9sbG93c05vbkhvaXN0ZWRKZXN0Q2FsbCA9IGZhbHNlO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBjaGFpbmVkIGNhbGxzIG9uIHRoZSBqZXN0IG9iamVjdC5cbiAgICB3aGlsZSAodGhpcy50b2tlbnMubWF0Y2hlczMoX3R5cGVzLlRva2VuVHlwZS5kb3QsIF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpKSB7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSk7XG4gICAgICBjb25zdCBzaG91bGRIb2lzdCA9IEhPSVNURURfTUVUSE9EUy5pbmNsdWRlcyhtZXRob2ROYW1lKTtcbiAgICAgIGlmIChzaG91bGRIb2lzdCkge1xuICAgICAgICAvLyBXZSd2ZSBtYXRjaGVkIGUuZy4gYC5tb2NrKC4uLilgIG9yIHNpbWlsYXIgY2FsbC5cbiAgICAgICAgLy8gUmVwbGFjZSB0aGUgaW5pdGlhbCBgLmAgd2l0aCBgZnVuY3Rpb24gX19qZXN0SG9pc3QoKXtqZXN0LmBcbiAgICAgICAgY29uc3QgaG9pc3RlZEZ1bmN0aW9uTmFtZSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9famVzdEhvaXN0XCIpO1xuICAgICAgICB0aGlzLmhvaXN0ZWRGdW5jdGlvbk5hbWVzLnB1c2goaG9pc3RlZEZ1bmN0aW9uTmFtZSk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgZnVuY3Rpb24gJHtob2lzdGVkRnVuY3Rpb25OYW1lfSgpeyR7SkVTVF9HTE9CQUxfTkFNRX0uYCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCI7fVwiKTtcbiAgICAgICAgZm9sbG93c05vbkhvaXN0ZWRKZXN0Q2FsbCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIG5vbi1ob2lzdGVkIG1ldGhvZCwgc28ganVzdCB0cmFuc2Zvcm0gdGhlIGNvZGUgYXMgdXN1YWwuXG4gICAgICAgIGlmIChmb2xsb3dzTm9uSG9pc3RlZEplc3RDYWxsKSB7XG4gICAgICAgICAgLy8gSWYgd2UgZGlkbid0IGhvaXN0IHRoZSBwcmV2aW91cyBjYWxsLCB3ZSBjYW4gbGVhdmUgdGhlIGNvZGUgYXMtaXMgdG8gY2hhaW4gb2ZmIG9mIHRoZVxuICAgICAgICAgIC8vIHByZXZpb3VzIG1ldGhvZCBjYWxsLiBJdCdzIGltcG9ydGFudCB0byBwcmVzZXJ2ZSB0aGUgY29kZSBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3Qga25vd1xuICAgICAgICAgIC8vIGZvciBzdXJlIHRoYXQgdGhlIG1ldGhvZCBhY3R1YWxseSByZXR1cm5lZCB0aGUgamVzdCBvYmplY3QgZm9yIGNoYWluaW5nLlxuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHdlIGhvaXN0ZWQgdGhlIHByZXZpb3VzIGNhbGwsIHdlIGtub3cgaXQgcmV0dXJucyB0aGUgamVzdCBvYmplY3QgYmFjaywgc28gd2UgaW5zZXJ0XG4gICAgICAgICAgLy8gdGhlIGlkZW50aWZpZXIgYGplc3RgIHRvIGNvbnRpbnVlIHRoZSBjaGFpbi5cbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oYCR7SkVTVF9HTE9CQUxfTkFNRX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKTtcbiAgICAgICAgZm9sbG93c05vbkhvaXN0ZWRKZXN0Q2FsbCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gSmVzdEhvaXN0VHJhbnNmb3JtZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH12YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG52YXIgX1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9UcmFuc2Zvcm1lcicpOyB2YXIgX1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyYW5zZm9ybWVyKTtcblxuIGNsYXNzIE51bWVyaWNTZXBhcmF0b3JUcmFuc2Zvcm1lciBleHRlbmRzIF9UcmFuc2Zvcm1lcjIuZGVmYXVsdCB7XG4gIGNvbnN0cnVjdG9yKCB0b2tlbnMpIHtcbiAgICBzdXBlcigpO3RoaXMudG9rZW5zID0gdG9rZW5zOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUubnVtKSkge1xuICAgICAgY29uc3QgY29kZSA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbkNvZGUoKTtcbiAgICAgIGlmIChjb2RlLmluY2x1ZGVzKFwiX1wiKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oY29kZS5yZXBsYWNlKC9fL2csIFwiXCIpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBOdW1lcmljU2VwYXJhdG9yVHJhbnNmb3JtZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzJyk7XG5cbnZhciBfVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL1RyYW5zZm9ybWVyJyk7IHZhciBfVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJhbnNmb3JtZXIpO1xuXG4gY2xhc3MgT3B0aW9uYWxDYXRjaEJpbmRpbmdUcmFuc2Zvcm1lciBleHRlbmRzIF9UcmFuc2Zvcm1lcjIuZGVmYXVsdCB7XG4gIGNvbnN0cnVjdG9yKCB0b2tlbnMsICBuYW1lTWFuYWdlcikge1xuICAgIHN1cGVyKCk7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5uYW1lTWFuYWdlciA9IG5hbWVNYW5hZ2VyOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2NhdGNoLCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgICgke3RoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcImVcIil9KWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBPcHRpb25hbENhdGNoQmluZGluZ1RyYW5zZm9ybWVyO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG52YXIgX3R5cGVzID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplci90eXBlcycpO1xuXG52YXIgX1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9UcmFuc2Zvcm1lcicpOyB2YXIgX1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyYW5zZm9ybWVyKTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1lciBzdXBwb3J0aW5nIHRoZSBvcHRpb25hbCBjaGFpbmluZyBhbmQgbnVsbGlzaCBjb2FsZXNjaW5nIG9wZXJhdG9ycy5cbiAqXG4gKiBUZWNoIHBsYW4gaGVyZTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGFuZ3BpZXJjZS9zdWNyYXNlL3dpa2kvU3VjcmFzZS1PcHRpb25hbC1DaGFpbmluZy1hbmQtTnVsbGlzaC1Db2FsZXNjaW5nLVRlY2huaWNhbC1QbGFuXG4gKlxuICogVGhlIHByZWZpeCBhbmQgc3VmZml4IGNvZGUgc25pcHBldHMgYXJlIGhhbmRsZWQgYnkgVG9rZW5Qcm9jZXNzb3IsIGFuZCB0aGlzIHRyYW5zZm9ybWVyIGhhbmRsZXNcbiAqIHRoZSBvcGVyYXRvcnMgdGhlbXNlbHZlcy5cbiAqL1xuIGNsYXNzIE9wdGlvbmFsQ2hhaW5pbmdOdWxsaXNoVHJhbnNmb3JtZXIgZXh0ZW5kcyBfVHJhbnNmb3JtZXIyLmRlZmF1bHQge1xuICBjb25zdHJ1Y3RvciggdG9rZW5zLCAgbmFtZU1hbmFnZXIpIHtcbiAgICBzdXBlcigpO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjs7XG4gIH1cblxuICBwcm9jZXNzKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLm51bGxpc2hDb2FsZXNjaW5nKSkge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbdG9rZW4ubnVsbGlzaFN0YXJ0SW5kZXhdLmlzQXN5bmNPcGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShcIiwgYXN5bmMgKCkgPT4gKFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoXCIsICgpID0+IChcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2RlbGV0ZSkpIHtcbiAgICAgIGNvbnN0IG5leHRUb2tlbiA9IHRoaXMudG9rZW5zLnRva2VuQXRSZWxhdGl2ZUluZGV4KDEpO1xuICAgICAgaWYgKG5leHRUb2tlbi5pc09wdGlvbmFsQ2hhaW5TdGFydCkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCk7XG4gICAgY29uc3QgY2hhaW5TdGFydCA9IHRva2VuLnN1YnNjcmlwdFN0YXJ0SW5kZXg7XG4gICAgaWYgKFxuICAgICAgY2hhaW5TdGFydCAhPSBudWxsICYmXG4gICAgICB0aGlzLnRva2Vucy50b2tlbnNbY2hhaW5TdGFydF0uaXNPcHRpb25hbENoYWluU3RhcnQgJiZcbiAgICAgIC8vIFN1cGVyIHN1YnNjcmlwdHMgY2FuJ3QgYmUgb3B0aW9uYWwgKHNpbmNlIHN1cGVyIGlzIG5ldmVyIG51bGwvdW5kZWZpbmVkKSwgYW5kIHRoZSBzeW50YXhcbiAgICAgIC8vIHJlbGllcyBvbiB0aGUgc3Vic2NyaXB0IGJlaW5nIGludGFjdCwgc28gbGVhdmUgdGhpcyB0b2tlbiBhbG9uZS5cbiAgICAgIHRoaXMudG9rZW5zLnRva2VuQXRSZWxhdGl2ZUluZGV4KC0xKS50eXBlICE9PSBfdHlwZXMuVG9rZW5UeXBlLl9zdXBlclxuICAgICkge1xuICAgICAgY29uc3QgcGFyYW0gPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfXCIpO1xuICAgICAgbGV0IGFycm93U3RhcnRTbmlwcGV0O1xuICAgICAgaWYgKFxuICAgICAgICBjaGFpblN0YXJ0ID4gMCAmJlxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoY2hhaW5TdGFydCAtIDEsIF90eXBlcy5Ub2tlblR5cGUuX2RlbGV0ZSkgJiZcbiAgICAgICAgdGhpcy5pc0xhc3RTdWJzY3JpcHRJbkNoYWluKClcbiAgICAgICkge1xuICAgICAgICAvLyBEZWxldGUgb3BlcmF0aW9ucyBhcmUgc3BlY2lhbDogd2UgYWxyZWFkeSByZW1vdmVkIHRoZSBkZWxldGUga2V5d29yZCwgYW5kIHRvIHN0aWxsXG4gICAgICAgIC8vIHBlcmZvcm0gYSBkZWxldGUsIHdlIG5lZWQgdG8gaW5zZXJ0IGEgZGVsZXRlIGluIHRoZSB2ZXJ5IGxhc3QgcGFydCBvZiB0aGUgY2hhaW4sIHdoaWNoXG4gICAgICAgIC8vIGluIGNvcnJlY3QgY29kZSB3aWxsIGFsd2F5cyBiZSBhIHByb3BlcnR5IGFjY2Vzcy5cbiAgICAgICAgYXJyb3dTdGFydFNuaXBwZXQgPSBgJHtwYXJhbX0gPT4gZGVsZXRlICR7cGFyYW19YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFycm93U3RhcnRTbmlwcGV0ID0gYCR7cGFyYW19ID0+ICR7cGFyYW19YDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbY2hhaW5TdGFydF0uaXNBc3luY09wZXJhdGlvbikge1xuICAgICAgICBhcnJvd1N0YXJ0U25pcHBldCA9IGBhc3luYyAke2Fycm93U3RhcnRTbmlwcGV0fWA7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb25Eb3QsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uRG90LCBfdHlwZXMuVG9rZW5UeXBlLmxlc3NUaGFuKVxuICAgICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmp1c3RTa2lwcGVkU3VwZXIoKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIuYmluZCh0aGlzKVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGAsICdvcHRpb25hbENhbGwnLCAke2Fycm93U3RhcnRTbmlwcGV0fWApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMihfdHlwZXMuVG9rZW5UeXBlLnF1ZXN0aW9uRG90LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNrZXRMKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGAsICdvcHRpb25hbEFjY2VzcycsICR7YXJyb3dTdGFydFNuaXBwZXR9YCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUucXVlc3Rpb25Eb3QpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoYCwgJ29wdGlvbmFsQWNjZXNzJywgJHthcnJvd1N0YXJ0U25pcHBldH0uYCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuZG90KSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGAsICdhY2Nlc3MnLCAke2Fycm93U3RhcnRTbmlwcGV0fS5gKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TCkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShgLCAnYWNjZXNzJywgJHthcnJvd1N0YXJ0U25pcHBldH1bYCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSkge1xuICAgICAgICBpZiAodGhpcy5qdXN0U2tpcHBlZFN1cGVyKCkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiLmJpbmQodGhpcylcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShgLCAnY2FsbCcsICR7YXJyb3dTdGFydFNuaXBwZXR9KGApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBzdWJzY3JpcHQgb3BlcmF0b3IgaW4gb3B0aW9uYWwgY2hhaW4uXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgdG9rZW4gaXMgdGhlIGxhc3Qgb2YgaXRzIGNoYWluLCBzbyB0aGF0IHdlIGtub3cgd2hldGhlciBpdCdzIGVsaWdpYmxlXG4gICAqIHRvIGhhdmUgYSBkZWxldGUgb3AgaW5zZXJ0ZWQuXG4gICAqXG4gICAqIFdlIGNhbiBkbyB0aGlzIGJ5IHdhbGtpbmcgZm9yd2FyZCB1bnRpbCB3ZSBkZXRlcm1pbmUgb25lIHdheSBvciBhbm90aGVyLiBFYWNoXG4gICAqIGlzT3B0aW9uYWxDaGFpblN0YXJ0IHRva2VuIG11c3QgYmUgcGFpcmVkIHdpdGggZXhhY3RseSBvbmUgaXNPcHRpb25hbENoYWluRW5kIHRva2VuIGFmdGVyIGl0IGluXG4gICAqIGEgbmVzdGluZyB3YXksIHNvIHdlIGNhbiB0cmFjayBkZXB0aCBhbmQgd2FsayB0byB0aGUgZW5kIG9mIHRoZSBjaGFpbiAodGhlIHBvaW50IHdoZXJlIHRoZVxuICAgKiBkZXB0aCBnb2VzIG5lZ2F0aXZlKSBhbmQgc2VlIGlmIGFueSBvdGhlciBzdWJzY3JpcHQgdG9rZW4gaXMgYWZ0ZXIgdXMgaW4gdGhlIGNoYWluLlxuICAgKi9cbiAgaXNMYXN0U3Vic2NyaXB0SW5DaGFpbigpIHtcbiAgICBsZXQgZGVwdGggPSAwO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDE7IDsgaSsrKSB7XG4gICAgICBpZiAoaSA+PSB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgY29kZSB3aGlsZSBmaW5kaW5nIHRoZSBlbmQgb2YgdGhlIGFjY2VzcyBjaGFpbi5cIik7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50b2tlbnMudG9rZW5zW2ldLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLnRva2Vuc1tpXS5pc09wdGlvbmFsQ2hhaW5FbmQpIHtcbiAgICAgICAgZGVwdGgtLTtcbiAgICAgIH1cbiAgICAgIGlmIChkZXB0aCA8IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFRoaXMgc3Vic2NyaXB0IHRva2VuIGlzIGEgbGF0ZXIgb25lIGluIHRoZSBzYW1lIGNoYWluLlxuICAgICAgaWYgKGRlcHRoID09PSAwICYmIHRoaXMudG9rZW5zLnRva2Vuc1tpXS5zdWJzY3JpcHRTdGFydEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgd2UgYXJlIHRoZSBvcGVuLXBhcmVuIGluIGFuIGV4cHJlc3Npb24gbGlrZSBzdXBlci5hKCk/LmIuXG4gICAqXG4gICAqIFdlIGNhbiBkbyB0aGlzIGJ5IHdhbGtpbmcgYmFja3dhcmQgdG8gZmluZCB0aGUgcHJldmlvdXMgc3Vic2NyaXB0LiBJZiB0aGF0IHN1YnNjcmlwdCB3YXNcbiAgICogcHJlY2VkZWQgYnkgYSBzdXBlciwgdGhlbiB3ZSBtdXN0IGJlIHRoZSBzdWJzY3JpcHQgYWZ0ZXIgaXQsIHNvIGlmIHRoaXMgaXMgYSBjYWxsIGV4cHJlc3Npb24sXG4gICAqIHdlJ2xsIG5lZWQgdG8gYXR0YWNoIHRoZSByaWdodCBjb250ZXh0LlxuICAgKi9cbiAganVzdFNraXBwZWRTdXBlcigpIHtcbiAgICBsZXQgZGVwdGggPSAwO1xuICAgIGxldCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIC0gMTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJSZWFjaGVkIHRoZSBzdGFydCBvZiB0aGUgY29kZSB3aGlsZSBmaW5kaW5nIHRoZSBzdGFydCBvZiB0aGUgYWNjZXNzIGNoYWluLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleF0uaXNPcHRpb25hbENoYWluU3RhcnQpIHtcbiAgICAgICAgZGVwdGgtLTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMudG9rZW5zW2luZGV4XS5pc09wdGlvbmFsQ2hhaW5FbmQpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICAgIGlmIChkZXB0aCA8IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGlzIHN1YnNjcmlwdCB0b2tlbiBpcyBhIGxhdGVyIG9uZSBpbiB0aGUgc2FtZSBjaGFpbi5cbiAgICAgIGlmIChkZXB0aCA9PT0gMCAmJiB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdLnN1YnNjcmlwdFN0YXJ0SW5kZXggIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMudG9rZW5zW2luZGV4IC0gMV0udHlwZSA9PT0gX3R5cGVzLlRva2VuVHlwZS5fc3VwZXI7XG4gICAgICB9XG4gICAgICBpbmRleC0tO1xuICAgIH1cbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBPcHRpb25hbENoYWluaW5nTnVsbGlzaFRyYW5zZm9ybWVyO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbnZhciBfdG9rZW5pemVyID0gcmVxdWlyZSgnLi4vcGFyc2VyL3Rva2VuaXplcicpO1xudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxuXG52YXIgX1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9UcmFuc2Zvcm1lcicpOyB2YXIgX1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyYW5zZm9ybWVyKTtcblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWRpc3BsYXktbmFtZSwgd2hpY2ggYWRkcyBhXG4gKiBkaXNwbGF5IG5hbWUgdG8gdXNhZ2VzIG9mIFJlYWN0LmNyZWF0ZUNsYXNzIGFuZCBjcmVhdGVSZWFjdENsYXNzLlxuICovXG4gY2xhc3MgUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyIGV4dGVuZHMgX1RyYW5zZm9ybWVyMi5kZWZhdWx0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBpbXBvcnRQcm9jZXNzb3IsXG4gICAgIG9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7dGhpcy5yb290VHJhbnNmb3JtZXIgPSByb290VHJhbnNmb3JtZXI7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5pbXBvcnRQcm9jZXNzb3IgPSBpbXBvcnRQcm9jZXNzb3I7dGhpcy5vcHRpb25zID0gb3B0aW9uczs7XG4gIH1cblxuICBwcm9jZXNzKCkge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICBpZiAodGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKSA9PT0gXCJjcmVhdGVSZWFjdENsYXNzXCIpIHtcbiAgICAgIGNvbnN0IG5ld05hbWUgPVxuICAgICAgICB0aGlzLmltcG9ydFByb2Nlc3NvciAmJiB0aGlzLmltcG9ydFByb2Nlc3Nvci5nZXRJZGVudGlmaWVyUmVwbGFjZW1lbnQoXCJjcmVhdGVSZWFjdENsYXNzXCIpO1xuICAgICAgaWYgKG5ld05hbWUpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAoMCwgJHtuZXdOYW1lfSlgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy50cnlQcm9jZXNzQ3JlYXRlQ2xhc3NDYWxsKHN0YXJ0SW5kZXgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKF90eXBlcy5Ub2tlblR5cGUubmFtZSwgX3R5cGVzLlRva2VuVHlwZS5kb3QsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCkgPT09IFwiUmVhY3RcIiAmJlxuICAgICAgdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMikgPT09IFwiY3JlYXRlQ2xhc3NcIlxuICAgICkge1xuICAgICAgY29uc3QgbmV3TmFtZSA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yXG4gICAgICAgID8gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KFwiUmVhY3RcIikgfHwgXCJSZWFjdFwiXG4gICAgICAgIDogXCJSZWFjdFwiO1xuICAgICAgaWYgKG5ld05hbWUpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKG5ld05hbWUpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy50cnlQcm9jZXNzQ3JlYXRlQ2xhc3NDYWxsKHN0YXJ0SW5kZXgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGNhbGxlZCB3aXRoIHRoZSB0b2tlbiBwb3NpdGlvbiBhdCB0aGUgb3Blbi1wYXJlbi5cbiAgICovXG4gICB0cnlQcm9jZXNzQ3JlYXRlQ2xhc3NDYWxsKHN0YXJ0SW5kZXgpIHtcbiAgICBjb25zdCBkaXNwbGF5TmFtZSA9IHRoaXMuZmluZERpc3BsYXlOYW1lKHN0YXJ0SW5kZXgpO1xuICAgIGlmICghZGlzcGxheU5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGFzc05lZWRzRGlzcGxheU5hbWUoKSkge1xuICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwpO1xuICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgZGlzcGxheU5hbWU6ICcke2Rpc3BsYXlOYW1lfScsYCk7XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUik7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUik7XG4gICAgfVxuICB9XG5cbiAgIGZpbmREaXNwbGF5TmFtZShzdGFydEluZGV4KSB7XG4gICAgaWYgKHN0YXJ0SW5kZXggPCAyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChzdGFydEluZGV4IC0gMiwgX3R5cGVzLlRva2VuVHlwZS5uYW1lLCBfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgLy8gVGhpcyBpcyBhbiBhc3NpZ25tZW50IChvciBkZWNsYXJhdGlvbikgYW5kIHRoZSBMSFMgaXMgZWl0aGVyIGFuIGlkZW50aWZpZXIgb3IgYSBtZW1iZXJcbiAgICAgIC8vIGV4cHJlc3Npb24gZW5kaW5nIGluIGFuIGlkZW50aWZpZXIsIHNvIHVzZSB0aGF0IGlkZW50aWZpZXIgbmFtZS5cbiAgICAgIHJldHVybiB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0SW5kZXgoc3RhcnRJbmRleCAtIDIpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBzdGFydEluZGV4ID49IDIgJiZcbiAgICAgIHRoaXMudG9rZW5zLnRva2Vuc1tzdGFydEluZGV4IC0gMl0uaWRlbnRpZmllclJvbGUgPT09IF90b2tlbml6ZXIuSWRlbnRpZmllclJvbGUuT2JqZWN0S2V5XG4gICAgKSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIG9iamVjdCBsaXRlcmFsIHZhbHVlLlxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChzdGFydEluZGV4IC0gMik7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoc3RhcnRJbmRleCAtIDIsIF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZGVmYXVsdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlOYW1lRnJvbUZpbGVuYW1lKCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgIGdldERpc3BsYXlOYW1lRnJvbUZpbGVuYW1lKCkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5vcHRpb25zLmZpbGVQYXRoIHx8IFwidW5rbm93blwiO1xuICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IGZpbGVQYXRoLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGhTZWdtZW50c1twYXRoU2VnbWVudHMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgZG90SW5kZXggPSBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XG4gICAgY29uc3QgYmFzZUZpbGVuYW1lID0gZG90SW5kZXggPT09IC0xID8gZmlsZW5hbWUgOiBmaWxlbmFtZS5zbGljZSgwLCBkb3RJbmRleCk7XG4gICAgaWYgKGJhc2VGaWxlbmFtZSA9PT0gXCJpbmRleFwiICYmIHBhdGhTZWdtZW50c1twYXRoU2VnbWVudHMubGVuZ3RoIC0gMl0pIHtcbiAgICAgIHJldHVybiBwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDJdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYmFzZUZpbGVuYW1lO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBvbmx5IHdhbnQgdG8gYWRkIGEgZGlzcGxheSBuYW1lIHdoZW4gdGhpcyBpcyBhIGZ1bmN0aW9uIGNhbGwgY29udGFpbmluZ1xuICAgKiBvbmUgYXJndW1lbnQsIHdoaWNoIGlzIGFuIG9iamVjdCBsaXRlcmFsIHdpdGhvdXQgYGRpc3BsYXlOYW1lYCBhcyBhblxuICAgKiBleGlzdGluZyBrZXkuXG4gICAqL1xuICAgY2xhc3NOZWVkc0Rpc3BsYXlOYW1lKCkge1xuICAgIGxldCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlczIoX3R5cGVzLlRva2VuVHlwZS5wYXJlbkwsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBUaGUgYmxvY2sgc3RhcnRzIG9uIHRoZSB7LCBhbmQgd2UgZXhwZWN0IGFueSBkaXNwbGF5TmFtZSBrZXkgdG8gYmUgaW5cbiAgICAvLyB0aGF0IGNvbnRleHQuIFdlIG5lZWQgdG8gaWdub3JlIG90aGVyIG90aGVyIGNvbnRleHRzIHRvIGF2b2lkIG1hdGNoaW5nXG4gICAgLy8gbmVzdGVkIGRpc3BsYXlOYW1lIGtleXMuXG4gICAgY29uc3Qgb2JqZWN0U3RhcnRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBjb25zdCBvYmplY3RDb250ZXh0SWQgPSB0aGlzLnRva2Vucy50b2tlbnNbb2JqZWN0U3RhcnRJbmRleF0uY29udGV4dElkO1xuICAgIGlmIChvYmplY3RDb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbm9uLW51bGwgY29udGV4dCBJRCBvbiBvYmplY3Qgb3Blbi1icmFjZS5cIik7XG4gICAgfVxuXG4gICAgZm9yICg7IGluZGV4IDwgdGhpcy50b2tlbnMudG9rZW5zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdO1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSICYmIHRva2VuLmNvbnRleHRJZCA9PT0gb2JqZWN0Q29udGV4dElkKSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkgPT09IFwiZGlzcGxheU5hbWVcIiAmJlxuICAgICAgICB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdLmlkZW50aWZpZXJSb2xlID09PSBfdG9rZW5pemVyLklkZW50aWZpZXJSb2xlLk9iamVjdEtleSAmJlxuICAgICAgICB0b2tlbi5jb250ZXh0SWQgPT09IG9iamVjdENvbnRleHRJZFxuICAgICAgKSB7XG4gICAgICAgIC8vIFdlIGZvdW5kIGEgZGlzcGxheU5hbWUga2V5LCBzbyBiYWlsIG91dC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpbmRleCA9PT0gdGhpcy50b2tlbnMudG9rZW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgd2hlbiBwcm9jZXNzaW5nIFJlYWN0IGNsYXNzLlwiKTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgdGhpcyBmYXIsIHdlIGtub3cgd2UgaGF2ZSBjcmVhdGVDbGFzcyB3aXRoIGFuIG9iamVjdCB3aXRoIG5vXG4gICAgLy8gZGlzcGxheSBuYW1lLCBzbyB3ZSB3YW50IHRvIHByb2NlZWQgYXMgbG9uZyBhcyB0aGF0IHdhcyB0aGUgb25seSBhcmd1bWVudC5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuUikgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSwgX3R5cGVzLlRva2VuVHlwZS5wYXJlblIpXG4gICAgKTtcbiAgfVxufSBleHBvcnRzLmRlZmF1bHQgPSBSZWFjdERpc3BsYXlOYW1lVHJhbnNmb3JtZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH12YXIgX3Rva2VuaXplciA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXInKTtcblxudmFyIF9UcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vVHJhbnNmb3JtZXInKTsgdmFyIF9UcmFuc2Zvcm1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmFuc2Zvcm1lcik7XG5cbiBjbGFzcyBSZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyIGV4dGVuZHMgX1RyYW5zZm9ybWVyMi5kZWZhdWx0IHtcbiAgIF9faW5pdCgpIHt0aGlzLmV4dHJhY3RlZERlZmF1bHRFeHBvcnROYW1lID0gbnVsbH1cblxuICBjb25zdHJ1Y3RvciggdG9rZW5zLCAgZmlsZVBhdGgpIHtcbiAgICBzdXBlcigpO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuZmlsZVBhdGggPSBmaWxlUGF0aDtSZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTs7XG4gIH1cblxuICBzZXRFeHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZShleHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZSkge1xuICAgIHRoaXMuZXh0cmFjdGVkRGVmYXVsdEV4cG9ydE5hbWUgPSBleHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZTtcbiAgfVxuXG4gIGdldFByZWZpeENvZGUoKSB7XG4gICAgcmV0dXJuIGBcbiAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlbnRlck1vZHVsZSA9IHJlcXVpcmUoJ3JlYWN0LWhvdC1sb2FkZXInKS5lbnRlck1vZHVsZTtcbiAgICAgICAgZW50ZXJNb2R1bGUgJiYgZW50ZXJNb2R1bGUobW9kdWxlKTtcbiAgICAgIH0pKCk7YFxuICAgICAgLnJlcGxhY2UoL1xccysvZywgXCIgXCIpXG4gICAgICAudHJpbSgpO1xuICB9XG5cbiAgZ2V0U3VmZml4Q29kZSgpIHtcbiAgICBjb25zdCB0b3BMZXZlbE5hbWVzID0gbmV3IFNldCgpO1xuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMudG9rZW5zKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0b2tlbi5pc1R5cGUgJiZcbiAgICAgICAgX3Rva2VuaXplci5pc1RvcExldmVsRGVjbGFyYXRpb24uY2FsbCh2b2lkIDAsIHRva2VuKSAmJlxuICAgICAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSAhPT0gX3Rva2VuaXplci5JZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvblxuICAgICAgKSB7XG4gICAgICAgIHRvcExldmVsTmFtZXMuYWRkKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmFtZXNUb1JlZ2lzdGVyID0gQXJyYXkuZnJvbSh0b3BMZXZlbE5hbWVzKS5tYXAoKG5hbWUpID0+ICh7XG4gICAgICB2YXJpYWJsZU5hbWU6IG5hbWUsXG4gICAgICB1bmlxdWVMb2NhbE5hbWU6IG5hbWUsXG4gICAgfSkpO1xuICAgIGlmICh0aGlzLmV4dHJhY3RlZERlZmF1bHRFeHBvcnROYW1lKSB7XG4gICAgICBuYW1lc1RvUmVnaXN0ZXIucHVzaCh7XG4gICAgICAgIHZhcmlhYmxlTmFtZTogdGhpcy5leHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZSxcbiAgICAgICAgdW5pcXVlTG9jYWxOYW1lOiBcImRlZmF1bHRcIixcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYFxuOyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZWFjdEhvdExvYWRlciA9IHJlcXVpcmUoJ3JlYWN0LWhvdC1sb2FkZXInKS5kZWZhdWx0O1xuICB2YXIgbGVhdmVNb2R1bGUgPSByZXF1aXJlKCdyZWFjdC1ob3QtbG9hZGVyJykubGVhdmVNb2R1bGU7XG4gIGlmICghcmVhY3RIb3RMb2FkZXIpIHtcbiAgICByZXR1cm47XG4gIH1cbiR7bmFtZXNUb1JlZ2lzdGVyXG4gIC5tYXAoXG4gICAgKHt2YXJpYWJsZU5hbWUsIHVuaXF1ZUxvY2FsTmFtZX0pID0+XG4gICAgICBgICByZWFjdEhvdExvYWRlci5yZWdpc3Rlcigke3ZhcmlhYmxlTmFtZX0sIFwiJHt1bmlxdWVMb2NhbE5hbWV9XCIsICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHRoaXMuZmlsZVBhdGggfHwgXCJcIixcbiAgICAgICl9KTtgLFxuICApXG4gIC5qb2luKFwiXFxuXCIpfVxuICBsZWF2ZU1vZHVsZShtb2R1bGUpO1xufSkoKTtgO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pO3ZhciBfaWRlbnRpZmllciA9IHJlcXVpcmUoJy4uL3BhcnNlci91dGlsL2lkZW50aWZpZXInKTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvTGV4aWNhbF9ncmFtbWFyXG4vLyBIYXJkLWNvZGUgYSBsaXN0IG9mIHJlc2VydmVkIHdvcmRzIHJhdGhlciB0aGFuIHRyeWluZyB0byB1c2Uga2V5d29yZHMgb3IgY29udGV4dHVhbCBrZXl3b3Jkc1xuLy8gZnJvbSB0aGUgcGFyc2VyLCBzaW5jZSBjdXJyZW50bHkgdGhlcmUgYXJlIHZhcmlvdXMgZXhjZXB0aW9ucywgbGlrZSBgcGFja2FnZWAgYmVpbmcgcmVzZXJ2ZWRcbi8vIGJ1dCB1bnVzZWQgYW5kIHZhcmlvdXMgY29udGV4dHVhbCBrZXl3b3JkcyBiZWluZyByZXNlcnZlZC4gTm90ZSB0aGF0IHdlIGFzc3VtZSB0aGF0IGFsbCBjb2RlXG4vLyBjb21waWxlZCBieSBTdWNyYXNlIGlzIGluIGEgbW9kdWxlLCBzbyBzdHJpY3QgbW9kZSB3b3JkcyBhbmQgYXdhaXQgYXJlIGFsbCBjb25zaWRlcmVkIHJlc2VydmVkXG4vLyBoZXJlLlxuY29uc3QgUkVTRVJWRURfV09SRFMgPSBuZXcgU2V0KFtcbiAgLy8gUmVzZXJ2ZWQga2V5d29yZHMgYXMgb2YgRUNNQVNjcmlwdCAyMDE1XG4gIFwiYnJlYWtcIixcbiAgXCJjYXNlXCIsXG4gIFwiY2F0Y2hcIixcbiAgXCJjbGFzc1wiLFxuICBcImNvbnN0XCIsXG4gIFwiY29udGludWVcIixcbiAgXCJkZWJ1Z2dlclwiLFxuICBcImRlZmF1bHRcIixcbiAgXCJkZWxldGVcIixcbiAgXCJkb1wiLFxuICBcImVsc2VcIixcbiAgXCJleHBvcnRcIixcbiAgXCJleHRlbmRzXCIsXG4gIFwiZmluYWxseVwiLFxuICBcImZvclwiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwiaWZcIixcbiAgXCJpbXBvcnRcIixcbiAgXCJpblwiLFxuICBcImluc3RhbmNlb2ZcIixcbiAgXCJuZXdcIixcbiAgXCJyZXR1cm5cIixcbiAgXCJzdXBlclwiLFxuICBcInN3aXRjaFwiLFxuICBcInRoaXNcIixcbiAgXCJ0aHJvd1wiLFxuICBcInRyeVwiLFxuICBcInR5cGVvZlwiLFxuICBcInZhclwiLFxuICBcInZvaWRcIixcbiAgXCJ3aGlsZVwiLFxuICBcIndpdGhcIixcbiAgXCJ5aWVsZFwiLFxuICAvLyBGdXR1cmUgcmVzZXJ2ZWQga2V5d29yZHNcbiAgXCJlbnVtXCIsXG4gIFwiaW1wbGVtZW50c1wiLFxuICBcImludGVyZmFjZVwiLFxuICBcImxldFwiLFxuICBcInBhY2thZ2VcIixcbiAgXCJwcml2YXRlXCIsXG4gIFwicHJvdGVjdGVkXCIsXG4gIFwicHVibGljXCIsXG4gIFwic3RhdGljXCIsXG4gIFwiYXdhaXRcIixcbiAgLy8gTGl0ZXJhbHMgdGhhdCBjYW5ub3QgYmUgdXNlZCBhcyBpZGVudGlmaWVyc1xuICBcImZhbHNlXCIsXG4gIFwibnVsbFwiLFxuICBcInRydWVcIixcbl0pO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgZ2l2ZW4gbmFtZSBpcyBhIGxlZ2FsIHZhcmlhYmxlIG5hbWUuXG4gKlxuICogVGhpcyBpcyBuZWVkZWQgd2hlbiB0cmFuc2Zvcm1pbmcgVHlwZVNjcmlwdCBlbnVtczsgaWYgYW4gZW51bSBrZXkgaXMgYSB2YWxpZFxuICogdmFyaWFibGUgbmFtZSwgaXQgbWlnaHQgYmUgcmVmZXJlbmNlZCBsYXRlciBpbiB0aGUgZW51bSwgc28gd2UgbmVlZCB0b1xuICogZGVjbGFyZSBhIHZhcmlhYmxlLlxuICovXG4gZnVuY3Rpb24gaXNJZGVudGlmaWVyKG5hbWUpIHtcbiAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghX2lkZW50aWZpZXIuSVNfSURFTlRJRklFUl9TVEFSVFtuYW1lLmNoYXJDb2RlQXQoMCldKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghX2lkZW50aWZpZXIuSVNfSURFTlRJRklFUl9DSEFSW25hbWUuY2hhckNvZGVBdChpKV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICFSRVNFUlZFRF9XT1JEUy5oYXMobmFtZSk7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGlzSWRlbnRpZmllcjtcbiIsICJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHt2YWx1ZTogdHJ1ZX0pOyBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxudmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxudmFyIF9pc0lkZW50aWZpZXIgPSByZXF1aXJlKCcuLi91dGlsL2lzSWRlbnRpZmllcicpOyB2YXIgX2lzSWRlbnRpZmllcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pc0lkZW50aWZpZXIpO1xuXG52YXIgX1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9UcmFuc2Zvcm1lcicpOyB2YXIgX1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyYW5zZm9ybWVyKTtcblxuIGNsYXNzIFR5cGVTY3JpcHRUcmFuc2Zvcm1lciBleHRlbmRzIF9UcmFuc2Zvcm1lcjIuZGVmYXVsdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICByb290VHJhbnNmb3JtZXIsXG4gICAgIHRva2VucyxcbiAgICAgaXNJbXBvcnRzVHJhbnNmb3JtRW5hYmxlZCxcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnJvb3RUcmFuc2Zvcm1lciA9IHJvb3RUcmFuc2Zvcm1lcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQgPSBpc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Bvc3NpYmxlQXJyb3dQYXJhbUVuZCgpIHx8XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzUG9zc2libGVBc3luY0Fycm93V2l0aFR5cGVQYXJhbXMoKSB8fFxuICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Bvc3NpYmxlVHlwZVJhbmdlKClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9wdWJsaWMpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9wcm90ZWN0ZWQpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9wcml2YXRlKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fYWJzdHJhY3QpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLl9yZWFkb25seSkgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX292ZXJyaWRlKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5ub25OdWxsQXNzZXJ0aW9uKVxuICAgICkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2VudW0pIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2NvbnN0LCBfdHlwZXMuVG9rZW5UeXBlLl9lbnVtKSkge1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fZW51bSkgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKF90eXBlcy5Ub2tlblR5cGUuX2V4cG9ydCwgX3R5cGVzLlRva2VuVHlwZS5fY29uc3QsIF90eXBlcy5Ub2tlblR5cGUuX2VudW0pXG4gICAgKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFbnVtKHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb2Nlc3NFbnVtKGlzRXhwb3J0ID0gZmFsc2UpIHtcbiAgICAvLyBXZSBtaWdodCBoYXZlIFwiZXhwb3J0IGNvbnN0IGVudW1cIiwgc28ganVzdCByZW1vdmUgYWxsIHJlbGV2YW50IHRva2Vucy5cbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICB3aGlsZSAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fY29uc3QpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuX2VudW0pKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgICBjb25zdCBlbnVtTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICBpZiAoaXNFeHBvcnQgJiYgIXRoaXMuaXNJbXBvcnRzVHJhbnNmb3JtRW5hYmxlZCkge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcImV4cG9ydCBcIik7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYHZhciAke2VudW1OYW1lfTsgKGZ1bmN0aW9uICgke2VudW1OYW1lfSlgKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCk7XG4gICAgdGhpcy5wcm9jZXNzRW51bUJvZHkoZW51bU5hbWUpO1xuICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKTtcbiAgICBpZiAoaXNFeHBvcnQgJiYgdGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGApKCR7ZW51bU5hbWV9IHx8IChleHBvcnRzLiR7ZW51bU5hbWV9ID0gJHtlbnVtTmFtZX0gPSB7fSkpO2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGApKCR7ZW51bU5hbWV9IHx8ICgke2VudW1OYW1lfSA9IHt9KSk7YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhbiBlbnVtIGludG8gZXF1aXZhbGVudCBKUy4gVGhpcyBoYXMgY29tcGxleGl0eSBpbiBhIGZldyBwbGFjZXM6XG4gICAqIC0gVFMgYWxsb3dzIHN0cmluZyBlbnVtcywgbnVtZXJpYyBlbnVtcywgYW5kIGEgbWl4IG9mIHRoZSB0d28gc3R5bGVzIHdpdGhpbiBhbiBlbnVtLlxuICAgKiAtIEVudW0ga2V5cyBhcmUgYWxsb3dlZCB0byBiZSByZWZlcmVuY2VkIGluIGxhdGVyIGVudW0gdmFsdWVzLlxuICAgKiAtIEVudW0ga2V5cyBhcmUgYWxsb3dlZCB0byBiZSBzdHJpbmdzLlxuICAgKiAtIFdoZW4gZW51bSB2YWx1ZXMgYXJlIG9taXR0ZWQsIHRoZXkgc2hvdWxkIGZvbGxvdyBhbiBhdXRvLWluY3JlbWVudCBiZWhhdmlvci5cbiAgICovXG4gIHByb2Nlc3NFbnVtQm9keShlbnVtTmFtZSkge1xuICAgIC8vIENvZGUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlIHByZXZpb3VzIGVudW0gbWVtYmVyLCBvciBudWxsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG4gICAgLy8gZW51bSBtZW1iZXIuXG4gICAgbGV0IHByZXZpb3VzVmFsdWVDb2RlID0gbnVsbDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtuYW1lU3RyaW5nQ29kZSwgdmFyaWFibGVOYW1lfSA9IHRoaXMuZXh0cmFjdEVudW1LZXlJbmZvKHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKF90eXBlcy5Ub2tlblR5cGUuZXEsIF90eXBlcy5Ub2tlblR5cGUuc3RyaW5nLCBfdHlwZXMuVG9rZW5UeXBlLmNvbW1hKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyhfdHlwZXMuVG9rZW5UeXBlLmVxLCBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZywgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RyaW5nTGl0ZXJhbEVudW1NZW1iZXIoZW51bU5hbWUsIG5hbWVTdHJpbmdDb2RlLCB2YXJpYWJsZU5hbWUpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmVxKSkge1xuICAgICAgICB0aGlzLnByb2Nlc3NFeHBsaWNpdFZhbHVlRW51bU1lbWJlcihlbnVtTmFtZSwgbmFtZVN0cmluZ0NvZGUsIHZhcmlhYmxlTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb2Nlc3NJbXBsaWNpdFZhbHVlRW51bU1lbWJlcihcbiAgICAgICAgICBlbnVtTmFtZSxcbiAgICAgICAgICBuYW1lU3RyaW5nQ29kZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUsXG4gICAgICAgICAgcHJldmlvdXNWYWx1ZUNvZGUsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhcmlhYmxlTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHByZXZpb3VzVmFsdWVDb2RlID0gdmFyaWFibGVOYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldmlvdXNWYWx1ZUNvZGUgPSBgJHtlbnVtTmFtZX1bJHtuYW1lU3RyaW5nQ29kZX1dYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IG5hbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBlbnVtIGtleSwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB3aGljaCBjb2RlIHRvIGVtaXRcbiAgICogYW5kIHdoZXRoZXIgd2Ugc2hvdWxkIGRlY2xhcmUgYSB2YXJpYWJsZSBhcyBwYXJ0IG9mIHRoaXMgZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIFNvbWUgY2FzZXMgdG8ga2VlcCBpbiBtaW5kOlxuICAgKiAtIEVudW0ga2V5cyBjYW4gYmUgaW1wbGljaXRseSByZWZlcmVuY2VkIGxhdGVyLCBlLmcuIGBYID0gMSwgWSA9IFhgLiBJbiBTdWNyYXNlLCB3ZSBpbXBsZW1lbnRcbiAgICogICB0aGlzIGJ5IGRlY2xhcmluZyBhIHZhcmlhYmxlIGBYYCBzbyB0aGF0IGxhdGVyIGV4cHJlc3Npb25zIGNhbiB1c2UgaXQuXG4gICAqIC0gSW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGlkZW50aWZpZXIga2V5IHN5bnRheCwgZW51bSBrZXlzIGFyZSBhbGxvd2VkIHRvIGJlIHN0cmluZyBsaXRlcmFscyxcbiAgICogICBlLmcuIGBcImhlbGxvIHdvcmxkXCIgPSAzLGAuIFRlbXBsYXRlIGxpdGVyYWwgc3ludGF4IGlzIE5PVCBhbGxvd2VkLlxuICAgKiAtIEV2ZW4gaWYgdGhlIGVudW0ga2V5IGlzIGRlZmluZWQgYXMgYSBzdHJpbmcgbGl0ZXJhbCwgaXQgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWQgYnkgaWRlbnRpZmllclxuICAgKiAgIGxhdGVyLCBlLmcuIGBcIlhcIiA9IDEsIFkgPSBYYC4gVGhhdCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZGV0ZWN0IHdoZXRoZXIgb3Igbm90IGEgc3RyaW5nXG4gICAqICAgbGl0ZXJhbCBpcyBpZGVudGlmaWVyLWxpa2UgYW5kIGVtaXQgYSB2YXJpYWJsZSBpZiBzbywgZXZlbiBpZiB0aGUgZGVjbGFyYXRpb24gZGlkIG5vdCB1c2UgYW5cbiAgICogICBpZGVudGlmaWVyLlxuICAgKiAtIFJlc2VydmVkIGtleXdvcmRzIGxpa2UgYGJyZWFrYCBhcmUgdmFsaWQgZW51bSBrZXlzLCBidXQgYXJlIG5vdCB2YWxpZCB0byBiZSByZWZlcmVuY2VkIGxhdGVyXG4gICAqICAgYW5kIHdvdWxkIGJlIGEgc3ludGF4IGVycm9yIGlmIHdlIGVtaXR0ZWQgYSB2YXJpYWJsZSwgc28gd2UgbmVlZCB0byBza2lwIHRoZSB2YXJpYWJsZVxuICAgKiAgIGRlY2xhcmF0aW9uIGluIHRob3NlIGNhc2VzLlxuICAgKlxuICAgKiBUaGUgdmFyaWFibGVOYW1lIHJldHVybiB2YWx1ZSBjYXB0dXJlcyB0aGVzZSBudWFuY2VzOiBpZiBub24tbnVsbCwgd2UgY2FuIGFuZCBtdXN0IGVtaXQgYVxuICAgKiB2YXJpYWJsZSBkZWNsYXJhdGlvbiwgYW5kIGlmIG51bGwsIHdlIGNhbid0IGFuZCBzaG91bGRuJ3QuXG4gICAqL1xuICBleHRyYWN0RW51bUtleUluZm8obmFtZVRva2VuKSB7XG4gICAgaWYgKG5hbWVUb2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKG5hbWVUb2tlbik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lU3RyaW5nQ29kZTogYFwiJHtuYW1lfVwiYCxcbiAgICAgICAgdmFyaWFibGVOYW1lOiBfaXNJZGVudGlmaWVyMi5kZWZhdWx0LmNhbGwodm9pZCAwLCBuYW1lKSA/IG5hbWUgOiBudWxsLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKG5hbWVUb2tlbi50eXBlID09PSBfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLnN0cmluZ1ZhbHVlRm9yVG9rZW4obmFtZVRva2VuKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWVTdHJpbmdDb2RlOiB0aGlzLnRva2Vucy5jb2RlLnNsaWNlKG5hbWVUb2tlbi5zdGFydCwgbmFtZVRva2VuLmVuZCksXG4gICAgICAgIHZhcmlhYmxlTmFtZTogX2lzSWRlbnRpZmllcjIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgbmFtZSkgPyBuYW1lIDogbnVsbCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5hbWUgb3Igc3RyaW5nIGF0IGJlZ2lubmluZyBvZiBlbnVtIGVsZW1lbnQuXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYW4gZW51bSBtZW1iZXIgd2hlcmUgdGhlIFJIUyBpcyBqdXN0IGEgc3RyaW5nIGxpdGVyYWwgKG5vdCBvbWl0dGVkLCBub3QgYSBudW1iZXIsIGFuZFxuICAgKiBub3QgYSBjb21wbGV4IGV4cHJlc3Npb24pLiBUaGlzIGlzIHRoZSB0eXBpY2FsIGZvcm0gZm9yIFRTIHN0cmluZyBlbnVtcywgYW5kIGluIHRoaXMgY2FzZSwgd2VcbiAgICogZG8gKm5vdCogY3JlYXRlIGEgcmV2ZXJzZSBtYXBwaW5nLlxuICAgKlxuICAgKiBUaGlzIGlzIGNhbGxlZCBhZnRlciBkZWxldGluZyB0aGUga2V5IHRva2VuLCB3aGVuIHRoZSB0b2tlbiBwcm9jZXNzb3IgaXMgYXQgdGhlIGVxdWFscyBzaWduLlxuICAgKlxuICAgKiBFeGFtcGxlIDE6XG4gICAqIHNvbWVLZXkgPSBcInNvbWUgdmFsdWVcIlxuICAgKiAtPlxuICAgKiBjb25zdCBzb21lS2V5ID0gXCJzb21lIHZhbHVlXCI7IE15RW51bVtcInNvbWVLZXlcIl0gPSBzb21lS2V5O1xuICAgKlxuICAgKiBFeGFtcGxlIDI6XG4gICAqIFwic29tZSBrZXlcIiA9IFwic29tZSB2YWx1ZVwiXG4gICAqIC0+XG4gICAqIE15RW51bVtcInNvbWUga2V5XCJdID0gXCJzb21lIHZhbHVlXCI7XG4gICAqL1xuICBwcm9jZXNzU3RyaW5nTGl0ZXJhbEVudW1NZW1iZXIoXG4gICAgZW51bU5hbWUsXG4gICAgbmFtZVN0cmluZ0NvZGUsXG4gICAgdmFyaWFibGVOYW1lLFxuICApIHtcbiAgICBpZiAodmFyaWFibGVOYW1lICE9IG51bGwpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYGNvbnN0ICR7dmFyaWFibGVOYW1lfWApO1xuICAgICAgLy8gPVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAvLyB2YWx1ZSBzdHJpbmdcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgOyAke2VudW1OYW1lfVske25hbWVTdHJpbmdDb2RlfV0gPSAke3ZhcmlhYmxlTmFtZX07YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCR7ZW51bU5hbWV9WyR7bmFtZVN0cmluZ0NvZGV9XWApO1xuICAgICAgLy8gPVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAvLyB2YWx1ZSBzdHJpbmdcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIjtcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhbiBlbnVtIG1lbWJlciBpbml0aWFsaXplZCB3aXRoIGFuIGV4cHJlc3Npb24gb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSAob3RoZXIgdGhhbiBhXG4gICAqIHN0cmluZyBsaXRlcmFsKS4gSW4gdGhlc2UgY2FzZXMsIHdlIHNob3VsZCB0cmFuc2Zvcm0gdGhlIGV4cHJlc3Npb24gYW5kIGVtaXQgY29kZSB0aGF0IHNldHMgdXBcbiAgICogYSByZXZlcnNlIG1hcHBpbmcuXG4gICAqXG4gICAqIFRoZSBUeXBlU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgb3BlcmF0aW9uIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBleHByZXNzaW9ucyB0aGF0IGNhbiBiZVxuICAgKiBcImNvbnN0YW50IGZvbGRlZFwiIGF0IGNvbXBpbGUgdGltZSAoaS5lLiBjb25zaXN0IG9mIG51bWJlciBsaXRlcmFscyBhbmQgc2ltcGxlIG1hdGggb3BlcmF0aW9uc1xuICAgKiBvbiB0aG9zZSBudW1iZXJzKSBhbmQgb25lcyB0aGF0IGFyZSBkeW5hbWljLiBGb3IgY29uc3RhbnQgZXhwcmVzc2lvbnMsIGl0IGVtaXRzIHRoZSByZXNvbHZlZFxuICAgKiBudW1lcmljIHZhbHVlLCBhbmQgYXV0by1pbmNyZW1lbnRpbmcgaXMgb25seSBhbGxvd2VkIGluIHRoYXQgY2FzZS4gRXZhbHVhdGluZyBleHByZXNzaW9ucyBhdFxuICAgKiBjb21waWxlIHRpbWUgd291bGQgYWRkIHNpZ25pZmljYW50IGNvbXBsZXhpdHkgdG8gU3VjcmFzZSwgc28gU3VjcmFzZSBpbnN0ZWFkIGxlYXZlcyB0aGVcbiAgICogZXhwcmVzc2lvbiBhcy1pcywgYW5kIHdpbGwgbGF0ZXIgZW1pdCBzb21ldGhpbmcgbGlrZSBgTXlFbnVtW1wicHJldmlvdXNLZXlcIl0gKyAxYCB0byBpbXBsZW1lbnRcbiAgICogYXV0by1pbmNyZW1lbnRpbmcuXG4gICAqXG4gICAqIFRoaXMgaXMgY2FsbGVkIGFmdGVyIGRlbGV0aW5nIHRoZSBrZXkgdG9rZW4sIHdoZW4gdGhlIHRva2VuIHByb2Nlc3NvciBpcyBhdCB0aGUgZXF1YWxzIHNpZ24uXG4gICAqXG4gICAqIEV4YW1wbGUgMTpcbiAgICogc29tZUtleSA9IDEgKyAxXG4gICAqIC0+XG4gICAqIGNvbnN0IHNvbWVLZXkgPSAxICsgMTsgTXlFbnVtW015RW51bVtcInNvbWVLZXlcIl0gPSBzb21lS2V5XSA9IFwic29tZUtleVwiO1xuICAgKlxuICAgKiBFeGFtcGxlIDI6XG4gICAqIFwic29tZSBrZXlcIiA9IDEgKyAxXG4gICAqIC0+XG4gICAqIE15RW51bVtNeUVudW1bXCJzb21lIGtleVwiXSA9IDEgKyAxXSA9IFwic29tZSBrZXlcIjtcbiAgICovXG4gIHByb2Nlc3NFeHBsaWNpdFZhbHVlRW51bU1lbWJlcihcbiAgICBlbnVtTmFtZSxcbiAgICBuYW1lU3RyaW5nQ29kZSxcbiAgICB2YXJpYWJsZU5hbWUsXG4gICkge1xuICAgIGNvbnN0IHJoc0VuZEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgaWYgKHJoc0VuZEluZGV4ID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHJoc0VuZEluZGV4IG9uIGVudW0gYXNzaWduLlwiKTtcbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGVOYW1lICE9IG51bGwpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYGNvbnN0ICR7dmFyaWFibGVOYW1lfWApO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCByaHNFbmRJbmRleCkge1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXG4gICAgICAgIGA7ICR7ZW51bU5hbWV9WyR7ZW51bU5hbWV9WyR7bmFtZVN0cmluZ0NvZGV9XSA9ICR7dmFyaWFibGVOYW1lfV0gPSAke25hbWVTdHJpbmdDb2RlfTtgLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgJHtlbnVtTmFtZX1bJHtlbnVtTmFtZX1bJHtuYW1lU3RyaW5nQ29kZX1dYCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHJoc0VuZEluZGV4KSB7XG4gICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgXSA9ICR7bmFtZVN0cmluZ0NvZGV9O2ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYW4gZW51bSBtZW1iZXIgd2l0aCBubyByaWdodC1oYW5kIHNpZGUgZXhwcmVzc2lvbi4gSW4gdGhpcyBjYXNlLCB0aGUgdmFsdWUgaXMgdGhlXG4gICAqIHByZXZpb3VzIHZhbHVlIHBsdXMgMSwgb3IgMCBpZiB0aGVyZSB3YXMgbm8gcHJldmlvdXMgdmFsdWUuIFdlIHNob3VsZCBhbHNvIGFsd2F5cyBlbWl0IGFcbiAgICogcmV2ZXJzZSBtYXBwaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlIDE6XG4gICAqIHNvbWVLZXkyXG4gICAqIC0+XG4gICAqIGNvbnN0IHNvbWVLZXkyID0gc29tZUtleTEgKyAxOyBNeUVudW1bTXlFbnVtW1wic29tZUtleTJcIl0gPSBzb21lS2V5Ml0gPSBcInNvbWVLZXkyXCI7XG4gICAqXG4gICAqIEV4YW1wbGUgMjpcbiAgICogXCJzb21lIGtleSAyXCJcbiAgICogLT5cbiAgICogTXlFbnVtW015RW51bVtcInNvbWUga2V5IDJcIl0gPSBzb21lS2V5MSArIDFdID0gXCJzb21lIGtleSAyXCI7XG4gICAqL1xuICBwcm9jZXNzSW1wbGljaXRWYWx1ZUVudW1NZW1iZXIoXG4gICAgZW51bU5hbWUsXG4gICAgbmFtZVN0cmluZ0NvZGUsXG4gICAgdmFyaWFibGVOYW1lLFxuICAgIHByZXZpb3VzVmFsdWVDb2RlLFxuICApIHtcbiAgICBsZXQgdmFsdWVDb2RlID0gcHJldmlvdXNWYWx1ZUNvZGUgIT0gbnVsbCA/IGAke3ByZXZpb3VzVmFsdWVDb2RlfSArIDFgIDogXCIwXCI7XG4gICAgaWYgKHZhcmlhYmxlTmFtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGBjb25zdCAke3ZhcmlhYmxlTmFtZX0gPSAke3ZhbHVlQ29kZX07IGApO1xuICAgICAgdmFsdWVDb2RlID0gdmFyaWFibGVOYW1lO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgYCR7ZW51bU5hbWV9WyR7ZW51bU5hbWV9WyR7bmFtZVN0cmluZ0NvZGV9XSA9ICR7dmFsdWVDb2RlfV0gPSAke25hbWVTdHJpbmdDb2RlfTtgLFxuICAgICk7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gVHlwZVNjcmlwdFRyYW5zZm9ybWVyO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cblxudmFyIF9rZXl3b3JkcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHMnKTtcbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzJyk7XG5cbnZhciBfZ2V0Q2xhc3NJbmZvID0gcmVxdWlyZSgnLi4vdXRpbC9nZXRDbGFzc0luZm8nKTsgdmFyIF9nZXRDbGFzc0luZm8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0Q2xhc3NJbmZvKTtcbnZhciBfQ0pTSW1wb3J0VHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL0NKU0ltcG9ydFRyYW5zZm9ybWVyJyk7IHZhciBfQ0pTSW1wb3J0VHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ0pTSW1wb3J0VHJhbnNmb3JtZXIpO1xudmFyIF9FU01JbXBvcnRUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vRVNNSW1wb3J0VHJhbnNmb3JtZXInKTsgdmFyIF9FU01JbXBvcnRUcmFuc2Zvcm1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9FU01JbXBvcnRUcmFuc2Zvcm1lcik7XG52YXIgX0Zsb3dUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vRmxvd1RyYW5zZm9ybWVyJyk7IHZhciBfRmxvd1RyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0Zsb3dUcmFuc2Zvcm1lcik7XG52YXIgX0plc3RIb2lzdFRyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9KZXN0SG9pc3RUcmFuc2Zvcm1lcicpOyB2YXIgX0plc3RIb2lzdFRyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0plc3RIb2lzdFRyYW5zZm9ybWVyKTtcbnZhciBfSlNYVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL0pTWFRyYW5zZm9ybWVyJyk7IHZhciBfSlNYVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSlNYVHJhbnNmb3JtZXIpO1xudmFyIF9OdW1lcmljU2VwYXJhdG9yVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL051bWVyaWNTZXBhcmF0b3JUcmFuc2Zvcm1lcicpOyB2YXIgX051bWVyaWNTZXBhcmF0b3JUcmFuc2Zvcm1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9OdW1lcmljU2VwYXJhdG9yVHJhbnNmb3JtZXIpO1xudmFyIF9PcHRpb25hbENhdGNoQmluZGluZ1RyYW5zZm9ybWVyID0gcmVxdWlyZSgnLi9PcHRpb25hbENhdGNoQmluZGluZ1RyYW5zZm9ybWVyJyk7IHZhciBfT3B0aW9uYWxDYXRjaEJpbmRpbmdUcmFuc2Zvcm1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9PcHRpb25hbENhdGNoQmluZGluZ1RyYW5zZm9ybWVyKTtcbnZhciBfT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lcicpOyB2YXIgX09wdGlvbmFsQ2hhaW5pbmdOdWxsaXNoVHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lcik7XG52YXIgX1JlYWN0RGlzcGxheU5hbWVUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyJyk7IHZhciBfUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1JlYWN0RGlzcGxheU5hbWVUcmFuc2Zvcm1lcik7XG52YXIgX1JlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL1JlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXInKTsgdmFyIF9SZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1JlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIpO1xuXG52YXIgX1R5cGVTY3JpcHRUcmFuc2Zvcm1lciA9IHJlcXVpcmUoJy4vVHlwZVNjcmlwdFRyYW5zZm9ybWVyJyk7IHZhciBfVHlwZVNjcmlwdFRyYW5zZm9ybWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1R5cGVTY3JpcHRUcmFuc2Zvcm1lcik7XG5cblxuXG5cblxuXG5cblxuIGNsYXNzIFJvb3RUcmFuc2Zvcm1lciB7XG4gICBfX2luaXQoKSB7dGhpcy50cmFuc2Zvcm1lcnMgPSBbXX1cbiAgXG4gIFxuICAgX19pbml0MigpIHt0aGlzLmdlbmVyYXRlZFZhcmlhYmxlcyA9IFtdfVxuICBcbiAgXG4gIFxuICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdWNyYXNlQ29udGV4dCxcbiAgICB0cmFuc2Zvcm1zLFxuICAgIGVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3AsXG4gICAgb3B0aW9ucyxcbiAgKSB7O1Jvb3RUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7Um9vdFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7XG4gICAgdGhpcy5uYW1lTWFuYWdlciA9IHN1Y3Jhc2VDb250ZXh0Lm5hbWVNYW5hZ2VyO1xuICAgIHRoaXMuaGVscGVyTWFuYWdlciA9IHN1Y3Jhc2VDb250ZXh0LmhlbHBlck1hbmFnZXI7XG4gICAgY29uc3Qge3Rva2VuUHJvY2Vzc29yLCBpbXBvcnRQcm9jZXNzb3J9ID0gc3VjcmFzZUNvbnRleHQ7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlblByb2Nlc3NvcjtcbiAgICB0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQgPSB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiaW1wb3J0c1wiKTtcbiAgICB0aGlzLmlzUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1FbmFibGVkID0gdHJhbnNmb3Jtcy5pbmNsdWRlcyhcInJlYWN0LWhvdC1sb2FkZXJcIik7XG4gICAgdGhpcy5kaXNhYmxlRVNUcmFuc2Zvcm1zID0gQm9vbGVhbihvcHRpb25zLmRpc2FibGVFU1RyYW5zZm9ybXMpO1xuXG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgIG5ldyAoMCwgX09wdGlvbmFsQ2hhaW5pbmdOdWxsaXNoVHJhbnNmb3JtZXIyLmRlZmF1bHQpKHRva2VuUHJvY2Vzc29yLCB0aGlzLm5hbWVNYW5hZ2VyKSxcbiAgICAgICk7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKG5ldyAoMCwgX051bWVyaWNTZXBhcmF0b3JUcmFuc2Zvcm1lcjIuZGVmYXVsdCkodG9rZW5Qcm9jZXNzb3IpKTtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2gobmV3ICgwLCBfT3B0aW9uYWxDYXRjaEJpbmRpbmdUcmFuc2Zvcm1lcjIuZGVmYXVsdCkodG9rZW5Qcm9jZXNzb3IsIHRoaXMubmFtZU1hbmFnZXIpKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmb3Jtcy5pbmNsdWRlcyhcImpzeFwiKSkge1xuICAgICAgaWYgKG9wdGlvbnMuanN4UnVudGltZSAhPT0gXCJwcmVzZXJ2ZVwiKSB7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgICAgbmV3ICgwLCBfSlNYVHJhbnNmb3JtZXIyLmRlZmF1bHQpKHRoaXMsIHRva2VuUHJvY2Vzc29yLCBpbXBvcnRQcm9jZXNzb3IsIHRoaXMubmFtZU1hbmFnZXIsIG9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3ICgwLCBfUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyMi5kZWZhdWx0KSh0aGlzLCB0b2tlblByb2Nlc3NvciwgaW1wb3J0UHJvY2Vzc29yLCBvcHRpb25zKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSBudWxsO1xuICAgIGlmICh0cmFuc2Zvcm1zLmluY2x1ZGVzKFwicmVhY3QtaG90LWxvYWRlclwiKSkge1xuICAgICAgaWYgKCFvcHRpb25zLmZpbGVQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbGVQYXRoIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIHJlYWN0LWhvdC1sb2FkZXIgdHJhbnNmb3JtLlwiKTtcbiAgICAgIH1cbiAgICAgIHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSBuZXcgKDAsIF9SZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyMi5kZWZhdWx0KSh0b2tlblByb2Nlc3Nvciwgb3B0aW9ucy5maWxlUGF0aCk7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIC8vIE5vdGUgdGhhdCB3ZSBhbHdheXMgd2FudCB0byBlbmFibGUgdGhlIGltcG9ydHMgdHJhbnNmb3JtZXIsIGV2ZW4gd2hlbiB0aGUgaW1wb3J0IHRyYW5zZm9ybVxuICAgIC8vIGl0c2VsZiBpc24ndCBlbmFibGVkLCBzaW5jZSB3ZSBuZWVkIHRvIGRvIHR5cGUtb25seSBpbXBvcnQgcHJ1bmluZyBmb3IgYm90aCBGbG93IGFuZFxuICAgIC8vIFR5cGVTY3JpcHQuXG4gICAgaWYgKHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJpbXBvcnRzXCIpKSB7XG4gICAgICBpZiAoaW1wb3J0UHJvY2Vzc29yID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5vbi1udWxsIGltcG9ydFByb2Nlc3NvciB3aXRoIGltcG9ydHMgdHJhbnNmb3JtIGVuYWJsZWQuXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3ICgwLCBfQ0pTSW1wb3J0VHJhbnNmb3JtZXIyLmRlZmF1bHQpKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdG9rZW5Qcm9jZXNzb3IsXG4gICAgICAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICAgICAgICAgIHRoaXMubmFtZU1hbmFnZXIsXG4gICAgICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyLFxuICAgICAgICAgIHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIsXG4gICAgICAgICAgZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCxcbiAgICAgICAgICBCb29sZWFuKG9wdGlvbnMuZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3ApLFxuICAgICAgICAgIHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpLFxuICAgICAgICAgIHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJmbG93XCIpLFxuICAgICAgICAgIEJvb2xlYW4ob3B0aW9ucy5wcmVzZXJ2ZUR5bmFtaWNJbXBvcnQpLFxuICAgICAgICAgIEJvb2xlYW4ob3B0aW9ucy5rZWVwVW51c2VkSW1wb3J0cyksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKFxuICAgICAgICBuZXcgKDAsIF9FU01JbXBvcnRUcmFuc2Zvcm1lcjIuZGVmYXVsdCkoXG4gICAgICAgICAgdG9rZW5Qcm9jZXNzb3IsXG4gICAgICAgICAgdGhpcy5uYW1lTWFuYWdlcixcbiAgICAgICAgICB0aGlzLmhlbHBlck1hbmFnZXIsXG4gICAgICAgICAgcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcixcbiAgICAgICAgICB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwidHlwZXNjcmlwdFwiKSxcbiAgICAgICAgICB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiZmxvd1wiKSxcbiAgICAgICAgICBCb29sZWFuKG9wdGlvbnMua2VlcFVudXNlZEltcG9ydHMpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiZmxvd1wiKSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3ICgwLCBfRmxvd1RyYW5zZm9ybWVyMi5kZWZhdWx0KSh0aGlzLCB0b2tlblByb2Nlc3NvciwgdHJhbnNmb3Jtcy5pbmNsdWRlcyhcImltcG9ydHNcIikpLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKFxuICAgICAgICBuZXcgKDAsIF9UeXBlU2NyaXB0VHJhbnNmb3JtZXIyLmRlZmF1bHQpKHRoaXMsIHRva2VuUHJvY2Vzc29yLCB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiaW1wb3J0c1wiKSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodHJhbnNmb3Jtcy5pbmNsdWRlcyhcImplc3RcIikpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgIG5ldyAoMCwgX0plc3RIb2lzdFRyYW5zZm9ybWVyMi5kZWZhdWx0KSh0aGlzLCB0b2tlblByb2Nlc3NvciwgdGhpcy5uYW1lTWFuYWdlciwgaW1wb3J0UHJvY2Vzc29yKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdHJhbnNmb3JtKCkge1xuICAgIHRoaXMudG9rZW5zLnJlc2V0KCk7XG4gICAgdGhpcy5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgY29uc3Qgc2hvdWxkQWRkVXNlU3RyaWN0ID0gdGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkO1xuICAgIC8vIFwidXNlIHN0cmljdFwiIGFsd2F5cyBuZWVkcyB0byBiZSBmaXJzdCwgc28gb3ZlcnJpZGUgdGhlIG5vcm1hbCB0cmFuc2Zvcm1lciBvcmRlci5cbiAgICBsZXQgcHJlZml4ID0gc2hvdWxkQWRkVXNlU3RyaWN0ID8gJ1widXNlIHN0cmljdFwiOycgOiBcIlwiO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdGhpcy50cmFuc2Zvcm1lcnMpIHtcbiAgICAgIHByZWZpeCArPSB0cmFuc2Zvcm1lci5nZXRQcmVmaXhDb2RlKCk7XG4gICAgfVxuICAgIHByZWZpeCArPSB0aGlzLmhlbHBlck1hbmFnZXIuZW1pdEhlbHBlcnMoKTtcbiAgICBwcmVmaXggKz0gdGhpcy5nZW5lcmF0ZWRWYXJpYWJsZXMubWFwKCh2KSA9PiBgIHZhciAke3Z9O2ApLmpvaW4oXCJcIik7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0aGlzLnRyYW5zZm9ybWVycykge1xuICAgICAgcHJlZml4ICs9IHRyYW5zZm9ybWVyLmdldEhvaXN0ZWRDb2RlKCk7XG4gICAgfVxuICAgIGxldCBzdWZmaXggPSBcIlwiO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdGhpcy50cmFuc2Zvcm1lcnMpIHtcbiAgICAgIHN1ZmZpeCArPSB0cmFuc2Zvcm1lci5nZXRTdWZmaXhDb2RlKCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9rZW5zLmZpbmlzaCgpO1xuICAgIGxldCB7Y29kZX0gPSByZXN1bHQ7XG4gICAgaWYgKGNvZGUuc3RhcnRzV2l0aChcIiMhXCIpKSB7XG4gICAgICBsZXQgbmV3bGluZUluZGV4ID0gY29kZS5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5ld2xpbmVJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgbmV3bGluZUluZGV4ID0gY29kZS5sZW5ndGg7XG4gICAgICAgIGNvZGUgKz0gXCJcXG5cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IGNvZGUuc2xpY2UoMCwgbmV3bGluZUluZGV4ICsgMSkgKyBwcmVmaXggKyBjb2RlLnNsaWNlKG5ld2xpbmVJbmRleCArIDEpICsgc3VmZml4LFxuICAgICAgICAvLyBUaGUgaGFzaGJhbmcgbGluZSBoYXMgbm8gdG9rZW5zLCBzbyBzaGlmdGluZyB0aGUgdG9rZW5zIHRvIGFjY291bnRcbiAgICAgICAgLy8gZm9yIHByZWZpeCBjYW4gaGFwcGVuIG5vcm1hbGx5LlxuICAgICAgICBtYXBwaW5nczogdGhpcy5zaGlmdE1hcHBpbmdzKHJlc3VsdC5tYXBwaW5ncywgcHJlZml4Lmxlbmd0aCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiBwcmVmaXggKyBjb2RlICsgc3VmZml4LFxuICAgICAgICBtYXBwaW5nczogdGhpcy5zaGlmdE1hcHBpbmdzKHJlc3VsdC5tYXBwaW5ncywgcHJlZml4Lmxlbmd0aCksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NCYWxhbmNlZENvZGUoKSB7XG4gICAgbGV0IGJyYWNlRGVwdGggPSAwO1xuICAgIGxldCBwYXJlbkRlcHRoID0gMDtcbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLmlzQXRFbmQoKSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUuYnJhY2VMKSB8fCB0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmRvbGxhckJyYWNlTCkpIHtcbiAgICAgICAgYnJhY2VEZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgICAgaWYgKGJyYWNlRGVwdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJhY2VEZXB0aC0tO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSkge1xuICAgICAgICBwYXJlbkRlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SKSkge1xuICAgICAgICBpZiAocGFyZW5EZXB0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbkRlcHRoLS07XG4gICAgICB9XG4gICAgICB0aGlzLnByb2Nlc3NUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NUb2tlbigpIHtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fY2xhc3MpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NDbGFzcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHRyYW5zZm9ybWVyIG9mIHRoaXMudHJhbnNmb3JtZXJzKSB7XG4gICAgICBjb25zdCB3YXNQcm9jZXNzZWQgPSB0cmFuc2Zvcm1lci5wcm9jZXNzKCk7XG4gICAgICBpZiAod2FzUHJvY2Vzc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogU2tpcCBwYXN0IGEgY2xhc3Mgd2l0aCBhIG5hbWUgYW5kIHJldHVybiB0aGF0IG5hbWUuXG4gICAqL1xuICBwcm9jZXNzTmFtZWRDbGFzcygpIHtcbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUuX2NsYXNzLCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBleHBvcnRlZCBjbGFzcyBuYW1lLlwiKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEpO1xuICAgIHRoaXMucHJvY2Vzc0NsYXNzKCk7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cblxuICBwcm9jZXNzQ2xhc3MoKSB7XG4gICAgY29uc3QgY2xhc3NJbmZvID0gX2dldENsYXNzSW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdGhpcywgdGhpcy50b2tlbnMsIHRoaXMubmFtZU1hbmFnZXIsIHRoaXMuZGlzYWJsZUVTVHJhbnNmb3Jtcyk7XG5cbiAgICAvLyBCb3RoIHN0YXRpYyBhbmQgaW5zdGFuY2UgaW5pdGlhbGl6ZXJzIG5lZWQgYSBjbGFzcyBuYW1lIHRvIHVzZSB0byBpbnZva2UgdGhlIGluaXRpYWxpemVyLCBzb1xuICAgIC8vIGFzc2lnbiB0byBvbmUgaWYgbmVjZXNzYXJ5LlxuICAgIGNvbnN0IG5lZWRzQ29tbWFFeHByZXNzaW9uID1cbiAgICAgIChjbGFzc0luZm8uaGVhZGVySW5mby5pc0V4cHJlc3Npb24gfHwgIWNsYXNzSW5mby5oZWFkZXJJbmZvLmNsYXNzTmFtZSkgJiZcbiAgICAgIGNsYXNzSW5mby5zdGF0aWNJbml0aWFsaXplck5hbWVzLmxlbmd0aCArIGNsYXNzSW5mby5pbnN0YW5jZUluaXRpYWxpemVyTmFtZXMubGVuZ3RoID4gMDtcblxuICAgIGxldCBjbGFzc05hbWUgPSBjbGFzc0luZm8uaGVhZGVySW5mby5jbGFzc05hbWU7XG4gICAgaWYgKG5lZWRzQ29tbWFFeHByZXNzaW9uKSB7XG4gICAgICBjbGFzc05hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfY2xhc3NcIik7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZhcmlhYmxlcy5wdXNoKGNsYXNzTmFtZSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgKCR7Y2xhc3NOYW1lfSA9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NUb2tlbiA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IGNsYXNzVG9rZW4uY29udGV4dElkO1xuICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY2xhc3MgdG8gaGF2ZSBhIGNvbnRleHQgSUQuXCIpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLl9jbGFzcyk7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwoX3R5cGVzLlRva2VuVHlwZS5icmFjZUwsIGNvbnRleHRJZCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1Rva2VuKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9jZXNzQ2xhc3NCb2R5KGNsYXNzSW5mbywgY2xhc3NOYW1lKTtcblxuICAgIGNvbnN0IHN0YXRpY0luaXRpYWxpemVyU3RhdGVtZW50cyA9IGNsYXNzSW5mby5zdGF0aWNJbml0aWFsaXplck5hbWVzLm1hcChcbiAgICAgIChuYW1lKSA9PiBgJHtjbGFzc05hbWV9LiR7bmFtZX0oKWAsXG4gICAgKTtcbiAgICBpZiAobmVlZHNDb21tYUV4cHJlc3Npb24pIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXG4gICAgICAgIGAsICR7c3RhdGljSW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLm1hcCgocykgPT4gYCR7c30sIGApLmpvaW4oXCJcIil9JHtjbGFzc05hbWV9KWAsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY2xhc3NJbmZvLnN0YXRpY0luaXRpYWxpemVyTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgICR7c3RhdGljSW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLm1hcCgocykgPT4gYCR7c307YCkuam9pbihcIiBcIil9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdlIHdhbnQgdG8ganVzdCBoYW5kbGUgY2xhc3MgZmllbGRzIGluIGFsbCBjb250ZXh0cywgc2luY2UgVHlwZVNjcmlwdCBzdXBwb3J0cyB0aGVtLiBMYXRlcixcbiAgICogd2hlbiBzb21lIEpTIGltcGxlbWVudGF0aW9ucyBzdXBwb3J0IGNsYXNzIGZpZWxkcywgdGhpcyBzaG91bGQgYmUgbWFkZSBvcHRpb25hbC5cbiAgICovXG4gIHByb2Nlc3NDbGFzc0JvZHkoY2xhc3NJbmZvLCBjbGFzc05hbWUpIHtcbiAgICBjb25zdCB7XG4gICAgICBoZWFkZXJJbmZvLFxuICAgICAgY29uc3RydWN0b3JJbnNlcnRQb3MsXG4gICAgICBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgIHJhbmdlc1RvUmVtb3ZlLFxuICAgIH0gPSBjbGFzc0luZm87XG4gICAgbGV0IGZpZWxkSW5kZXggPSAwO1xuICAgIGxldCByYW5nZVRvUmVtb3ZlSW5kZXggPSAwO1xuICAgIGNvbnN0IGNsYXNzQ29udGV4dElkID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuY29udGV4dElkO1xuICAgIGlmIChjbGFzc0NvbnRleHRJZCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBub24tbnVsbCBjb250ZXh0IElEIG9uIGNsYXNzLlwiKTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4oX3R5cGVzLlRva2VuVHlwZS5icmFjZUwpO1xuICAgIGlmICh0aGlzLmlzUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICBcIl9fcmVhY3RzdGFuZGluX19yZWdlbmVyYXRlQnlFdmFsKGtleSwgY29kZSkge3RoaXNba2V5XSA9IGV2YWwoY29kZSk7fVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZWVkc0NvbnN0cnVjdG9ySW5pdCA9XG4gICAgICBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cy5sZW5ndGggKyBpbnN0YW5jZUluaXRpYWxpemVyTmFtZXMubGVuZ3RoID4gMDtcblxuICAgIGlmIChjb25zdHJ1Y3Rvckluc2VydFBvcyA9PT0gbnVsbCAmJiBuZWVkc0NvbnN0cnVjdG9ySW5pdCkge1xuICAgICAgY29uc3QgY29uc3RydWN0b3JJbml0aWFsaXplcnNDb2RlID0gdGhpcy5tYWtlQ29uc3RydWN0b3JJbml0Q29kZShcbiAgICAgICAgY29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsXG4gICAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKTtcbiAgICAgIGlmIChoZWFkZXJJbmZvLmhhc1N1cGVyY2xhc3MpIHtcbiAgICAgICAgY29uc3QgYXJnc05hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJhcmdzXCIpO1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICAgIGBjb25zdHJ1Y3RvciguLi4ke2FyZ3NOYW1lfSkgeyBzdXBlciguLi4ke2FyZ3NOYW1lfSk7ICR7Y29uc3RydWN0b3JJbml0aWFsaXplcnNDb2RlfTsgfWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGBjb25zdHJ1Y3RvcigpIHsgJHtjb25zdHJ1Y3RvckluaXRpYWxpemVyc0NvZGV9OyB9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwoX3R5cGVzLlRva2VuVHlwZS5icmFjZVIsIGNsYXNzQ29udGV4dElkKSkge1xuICAgICAgaWYgKGZpZWxkSW5kZXggPCBmaWVsZHMubGVuZ3RoICYmIHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpID09PSBmaWVsZHNbZmllbGRJbmRleF0uc3RhcnQpIHtcbiAgICAgICAgbGV0IG5lZWRzQ2xvc2VCcmFjZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5icmFja2V0TCkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW5XaXRoUHJlZml4KGAke2ZpZWxkc1tmaWVsZEluZGV4XS5pbml0aWFsaXplck5hbWV9KCkge3RoaXNgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMShfdHlwZXMuVG9rZW5UeXBlLnN0cmluZykgfHwgdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5udW0pKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuV2l0aFByZWZpeChgJHtmaWVsZHNbZmllbGRJbmRleF0uaW5pdGlhbGl6ZXJOYW1lfSgpIHt0aGlzW2ApO1xuICAgICAgICAgIG5lZWRzQ2xvc2VCcmFjZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuV2l0aFByZWZpeChgJHtmaWVsZHNbZmllbGRJbmRleF0uaW5pdGlhbGl6ZXJOYW1lfSgpIHt0aGlzLmApO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IGZpZWxkc1tmaWVsZEluZGV4XS5lbmQpIHtcbiAgICAgICAgICBpZiAobmVlZHNDbG9zZUJyYWNlICYmIHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpID09PSBmaWVsZHNbZmllbGRJbmRleF0uZXF1YWxzSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCJdXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByb2Nlc3NUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCJ9XCIpO1xuICAgICAgICBmaWVsZEluZGV4Kys7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICByYW5nZVRvUmVtb3ZlSW5kZXggPCByYW5nZXNUb1JlbW92ZS5sZW5ndGggJiZcbiAgICAgICAgdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPj0gcmFuZ2VzVG9SZW1vdmVbcmFuZ2VUb1JlbW92ZUluZGV4XS5zdGFydFxuICAgICAgKSB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHJhbmdlc1RvUmVtb3ZlW3JhbmdlVG9SZW1vdmVJbmRleF0uZW5kKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgcmFuZ2VzVG9SZW1vdmVbcmFuZ2VUb1JlbW92ZUluZGV4XS5lbmQpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHJhbmdlVG9SZW1vdmVJbmRleCsrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA9PT0gY29uc3RydWN0b3JJbnNlcnRQb3MpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIGlmIChuZWVkc0NvbnN0cnVjdG9ySW5pdCkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXG4gICAgICAgICAgICBgOyR7dGhpcy5tYWtlQ29uc3RydWN0b3JJbml0Q29kZShcbiAgICAgICAgICAgICAgY29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsXG4gICAgICAgICAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgKX07YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvY2Vzc1Rva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb2Nlc3NUb2tlbigpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbihfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUik7XG4gIH1cblxuICBtYWtlQ29uc3RydWN0b3JJbml0Q29kZShcbiAgICBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cyxcbiAgICBpbnN0YW5jZUluaXRpYWxpemVyTmFtZXMsXG4gICAgY2xhc3NOYW1lLFxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uY29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsXG4gICAgICAuLi5pbnN0YW5jZUluaXRpYWxpemVyTmFtZXMubWFwKChuYW1lKSA9PiBgJHtjbGFzc05hbWV9LnByb3RvdHlwZS4ke25hbWV9LmNhbGwodGhpcylgKSxcbiAgICBdLmpvaW4oXCI7XCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vcm1hbGx5IGl0J3Mgb2sgdG8gc2ltcGx5IHJlbW92ZSB0eXBlIHRva2VucywgYnV0IHdlIG5lZWQgdG8gYmUgbW9yZSBjYXJlZnVsIHdoZW4gZGVhbGluZyB3aXRoXG4gICAqIGFycm93IGZ1bmN0aW9uIHJldHVybiB0eXBlcyBzaW5jZSB0aGV5IGNhbiBjb25mdXNlIHRoZSBwYXJzZXIuIEluIHRoYXQgY2FzZSwgd2Ugd2FudCB0byBtb3ZlXG4gICAqIHRoZSBjbG9zZS1wYXJlbiB0byB0aGUgc2FtZSBsaW5lIGFzIHRoZSBhcnJvdy5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGFuZ3BpZXJjZS9zdWNyYXNlL2lzc3Vlcy8zOTEgZm9yIG1vcmUgZGV0YWlscy5cbiAgICovXG4gIHByb2Nlc3NQb3NzaWJsZUFycm93UGFyYW1FbmQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKF90eXBlcy5Ub2tlblR5cGUucGFyZW5SLCBfdHlwZXMuVG9rZW5UeXBlLmNvbG9uKSAmJiB0aGlzLnRva2Vucy50b2tlbkF0UmVsYXRpdmVJbmRleCgxKS5pc1R5cGUpIHtcbiAgICAgIGxldCBuZXh0Tm9uVHlwZUluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxO1xuICAgICAgLy8gTG9vayBhaGVhZCB0byBzZWUgaWYgdGhpcyBpcyBhbiBhcnJvdyBmdW5jdGlvbiBvciBzb21ldGhpbmcgZWxzZS5cbiAgICAgIHdoaWxlICh0aGlzLnRva2Vucy50b2tlbnNbbmV4dE5vblR5cGVJbmRleF0uaXNUeXBlKSB7XG4gICAgICAgIG5leHROb25UeXBlSW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgobmV4dE5vblR5cGVJbmRleCwgX3R5cGVzLlRva2VuVHlwZS5hcnJvdykpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IG5leHROb25UeXBlSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoXCIpID0+XCIpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGFzeW5jIGFycm93IGZ1bmN0aW9uIG1pZ2h0IGJlIG9mIHRoZSBmb3JtOlxuICAgKlxuICAgKiBhc3luYyA8XG4gICAqICAgVFxuICAgKiA+KCkgPT4ge31cbiAgICpcbiAgICogaW4gd2hpY2ggY2FzZSwgcmVtb3ZpbmcgdGhlIHR5cGUgcGFyYW1ldGVycyB3aWxsIGNhdXNlIGEgc3ludGF4IGVycm9yLiBEZXRlY3QgdGhpcyBjYXNlIGFuZFxuICAgKiBtb3ZlIHRoZSBvcGVuLXBhcmVuIGVhcmxpZXIuXG4gICAqL1xuICBwcm9jZXNzUG9zc2libGVBc3luY0Fycm93V2l0aFR5cGVQYXJhbXMoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKF9rZXl3b3Jkcy5Db250ZXh0dWFsS2V5d29yZC5fYXN5bmMpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczEoX3R5cGVzLlRva2VuVHlwZS5fYXN5bmMpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG5leHRUb2tlbiA9IHRoaXMudG9rZW5zLnRva2VuQXRSZWxhdGl2ZUluZGV4KDEpO1xuICAgIGlmIChuZXh0VG9rZW4udHlwZSAhPT0gX3R5cGVzLlRva2VuVHlwZS5sZXNzVGhhbiB8fCAhbmV4dFRva2VuLmlzVHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBuZXh0Tm9uVHlwZUluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxO1xuICAgIC8vIExvb2sgYWhlYWQgdG8gc2VlIGlmIHRoaXMgaXMgYW4gYXJyb3cgZnVuY3Rpb24gb3Igc29tZXRoaW5nIGVsc2UuXG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLnRva2Vuc1tuZXh0Tm9uVHlwZUluZGV4XS5pc1R5cGUpIHtcbiAgICAgIG5leHROb25UeXBlSW5kZXgrKztcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChuZXh0Tm9uVHlwZUluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLnBhcmVuTCkpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcImFzeW5jIChcIik7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IG5leHROb25UeXBlSW5kZXgpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAvLyBXZSBhdGUgYSAoIHRva2VuLCBzbyB3ZSBuZWVkIHRvIHByb2Nlc3MgdGhlIHRva2VucyBpbiBiZXR3ZWVuIGFuZCB0aGVuIHRoZSApIHRva2VuIHNvIHRoYXRcbiAgICAgIC8vIHdlIHJlbWFpbiBiYWxhbmNlZC5cbiAgICAgIHRoaXMucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgdGhpcy5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm9jZXNzUG9zc2libGVUeXBlUmFuZ2UoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2hpZnRNYXBwaW5ncyhcbiAgICBtYXBwaW5ncyxcbiAgICBwcmVmaXhMZW5ndGgsXG4gICkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFwcGluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBtYXBwaW5nc1tpXTtcbiAgICAgIGlmIChtYXBwaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbWFwcGluZ3NbaV0gPSBtYXBwaW5nICsgcHJlZml4TGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWFwcGluZ3M7XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gUm9vdFRyYW5zZm9ybWVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuTGluZXNBbmRDb2x1bW5zID0gdm9pZCAwO1xudmFyIExGID0gJ1xcbic7XG52YXIgQ1IgPSAnXFxyJztcbnZhciBMaW5lc0FuZENvbHVtbnMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTGluZXNBbmRDb2x1bW5zKHN0cmluZykge1xuICAgICAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICAgICAgdmFyIG9mZnNldHMgPSBbMF07XG4gICAgICAgIGZvciAodmFyIG9mZnNldCA9IDA7IG9mZnNldCA8IHN0cmluZy5sZW5ndGg7KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0cmluZ1tvZmZzZXRdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBMRjpcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IExGLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXNoKG9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ1I6XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBDUi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmdbb2Zmc2V0XSA9PT0gTEYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBMRi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXNoKG9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCsrO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldHMgPSBvZmZzZXRzO1xuICAgIH1cbiAgICBMaW5lc0FuZENvbHVtbnMucHJvdG90eXBlLmxvY2F0aW9uRm9ySW5kZXggPSBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuc3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxpbmUgPSAwO1xuICAgICAgICB2YXIgb2Zmc2V0cyA9IHRoaXMub2Zmc2V0cztcbiAgICAgICAgd2hpbGUgKG9mZnNldHNbbGluZSArIDFdIDw9IGluZGV4KSB7XG4gICAgICAgICAgICBsaW5lKys7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbHVtbiA9IGluZGV4IC0gb2Zmc2V0c1tsaW5lXTtcbiAgICAgICAgcmV0dXJuIHsgbGluZTogbGluZSwgY29sdW1uOiBjb2x1bW4gfTtcbiAgICB9O1xuICAgIExpbmVzQW5kQ29sdW1ucy5wcm90b3R5cGUuaW5kZXhGb3JMb2NhdGlvbiA9IGZ1bmN0aW9uIChsb2NhdGlvbikge1xuICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmUsIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbjtcbiAgICAgICAgaWYgKGxpbmUgPCAwIHx8IGxpbmUgPj0gdGhpcy5vZmZzZXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbHVtbiA8IDAgfHwgY29sdW1uID4gdGhpcy5sZW5ndGhPZkxpbmUobGluZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9mZnNldHNbbGluZV0gKyBjb2x1bW47XG4gICAgfTtcbiAgICBMaW5lc0FuZENvbHVtbnMucHJvdG90eXBlLmxlbmd0aE9mTGluZSA9IGZ1bmN0aW9uIChsaW5lKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSB0aGlzLm9mZnNldHNbbGluZV07XG4gICAgICAgIHZhciBuZXh0T2Zmc2V0ID0gbGluZSA9PT0gdGhpcy5vZmZzZXRzLmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gdGhpcy5zdHJpbmcubGVuZ3RoXG4gICAgICAgICAgICA6IHRoaXMub2Zmc2V0c1tsaW5lICsgMV07XG4gICAgICAgIHJldHVybiBuZXh0T2Zmc2V0IC0gb2Zmc2V0O1xuICAgIH07XG4gICAgcmV0dXJuIExpbmVzQW5kQ29sdW1ucztcbn0oKSk7XG5leHBvcnRzLkxpbmVzQW5kQ29sdW1ucyA9IExpbmVzQW5kQ29sdW1ucztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTGluZXNBbmRDb2x1bW5zO1xuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9dmFyIF9saW5lc2FuZGNvbHVtbnMgPSByZXF1aXJlKCdsaW5lcy1hbmQtY29sdW1ucycpOyB2YXIgX2xpbmVzYW5kY29sdW1uczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9saW5lc2FuZGNvbHVtbnMpO1xuXG5cbnZhciBfdHlwZXMgPSByZXF1aXJlKCcuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzJyk7XG5cbiBmdW5jdGlvbiBmb3JtYXRUb2tlbnMoY29kZSwgdG9rZW5zKSB7XG4gIGlmICh0b2tlbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBjb25zdCB0b2tlbktleXMgPSBPYmplY3Qua2V5cyh0b2tlbnNbMF0pLmZpbHRlcihcbiAgICAoaykgPT4gayAhPT0gXCJ0eXBlXCIgJiYgayAhPT0gXCJ2YWx1ZVwiICYmIGsgIT09IFwic3RhcnRcIiAmJiBrICE9PSBcImVuZFwiICYmIGsgIT09IFwibG9jXCIsXG4gICk7XG4gIGNvbnN0IHR5cGVLZXlzID0gT2JqZWN0LmtleXModG9rZW5zWzBdLnR5cGUpLmZpbHRlcigoaykgPT4gayAhPT0gXCJsYWJlbFwiICYmIGsgIT09IFwia2V5d29yZFwiKTtcblxuICBjb25zdCBoZWFkaW5ncyA9IFtcIkxvY2F0aW9uXCIsIFwiTGFiZWxcIiwgXCJSYXdcIiwgLi4udG9rZW5LZXlzLCAuLi50eXBlS2V5c107XG5cbiAgY29uc3QgbGluZXMgPSBuZXcgKDAsIF9saW5lc2FuZGNvbHVtbnMyLmRlZmF1bHQpKGNvZGUpO1xuICBjb25zdCByb3dzID0gW2hlYWRpbmdzLCAuLi50b2tlbnMubWFwKGdldFRva2VuQ29tcG9uZW50cyldO1xuICBjb25zdCBwYWRkaW5nID0gaGVhZGluZ3MubWFwKCgpID0+IDApO1xuICBmb3IgKGNvbnN0IGNvbXBvbmVudHMgb2Ygcm93cykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgcGFkZGluZ1tpXSA9IE1hdGgubWF4KHBhZGRpbmdbaV0sIGNvbXBvbmVudHNbaV0ubGVuZ3RoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJvd3NcbiAgICAubWFwKChjb21wb25lbnRzKSA9PiBjb21wb25lbnRzLm1hcCgoY29tcG9uZW50LCBpKSA9PiBjb21wb25lbnQucGFkRW5kKHBhZGRpbmdbaV0pKS5qb2luKFwiIFwiKSlcbiAgICAuam9pbihcIlxcblwiKTtcblxuICBmdW5jdGlvbiBnZXRUb2tlbkNvbXBvbmVudHModG9rZW4pIHtcbiAgICBjb25zdCByYXcgPSBjb2RlLnNsaWNlKHRva2VuLnN0YXJ0LCB0b2tlbi5lbmQpO1xuICAgIHJldHVybiBbXG4gICAgICBmb3JtYXRSYW5nZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKSxcbiAgICAgIF90eXBlcy5mb3JtYXRUb2tlblR5cGUuY2FsbCh2b2lkIDAsIHRva2VuLnR5cGUpLFxuICAgICAgdHJ1bmNhdGUoU3RyaW5nKHJhdyksIDE0KSxcbiAgICAgIC8vIEB0cy1pZ25vcmU6IEludGVudGlvbmFsIGR5bmFtaWMgYWNjZXNzIGJ5IGtleS5cbiAgICAgIC4uLnRva2VuS2V5cy5tYXAoKGtleSkgPT4gZm9ybWF0VmFsdWUodG9rZW5ba2V5XSwga2V5KSksXG4gICAgICAvLyBAdHMtaWdub3JlOiBJbnRlbnRpb25hbCBkeW5hbWljIGFjY2VzcyBieSBrZXkuXG4gICAgICAuLi50eXBlS2V5cy5tYXAoKGtleSkgPT4gZm9ybWF0VmFsdWUodG9rZW4udHlwZVtrZXldLCBrZXkpKSxcbiAgICBdO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZnVuY3Rpb24gZm9ybWF0VmFsdWUodmFsdWUsIGtleSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdFJhbmdlKHN0YXJ0LCBlbmQpIHtcbiAgICByZXR1cm4gYCR7Zm9ybWF0UG9zKHN0YXJ0KX0tJHtmb3JtYXRQb3MoZW5kKX1gO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UG9zKHBvcykge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gbGluZXMubG9jYXRpb25Gb3JJbmRleChwb3MpO1xuICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgIHJldHVybiBcIlVua25vd25cIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke2xvY2F0aW9uLmxpbmUgKyAxfToke2xvY2F0aW9uLmNvbHVtbiArIDF9YDtcbiAgICB9XG4gIH1cbn0gZXhwb3J0cy5kZWZhdWx0ID0gZm9ybWF0VG9rZW5zO1xuXG5mdW5jdGlvbiB0cnVuY2F0ZShzLCBsZW5ndGgpIHtcbiAgaWYgKHMubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGAke3Muc2xpY2UoMCwgbGVuZ3RoIC0gMyl9Li4uYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcztcbiAgfVxufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9dmFyIF90eXBlcyA9IHJlcXVpcmUoJy4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXMnKTtcblxudmFyIF9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvID0gcmVxdWlyZSgnLi9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvJyk7IHZhciBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvKTtcblxuLyoqXG4gKiBTcGVjaWFsIGNhc2UgY29kZSB0byBzY2FuIGZvciBpbXBvcnRlZCBuYW1lcyBpbiBFU00gVHlwZVNjcmlwdC4gV2UgbmVlZCB0byBkbyB0aGlzIHNvIHdlIGNhblxuICogcHJvcGVybHkgZ2V0IGdsb2JhbHMgc28gd2UgY2FuIGNvbXB1dGUgc2hhZG93ZWQgZ2xvYmFscy5cbiAqXG4gKiBUaGlzIGlzIHNpbWlsYXIgdG8gbG9naWMgaW4gQ0pTSW1wb3J0UHJvY2Vzc29yLCBidXQgdHJpbW1lZCBkb3duIHRvIGF2b2lkIGxvZ2ljIHdpdGggQ0pTXG4gKiByZXBsYWNlbWVudCBhbmQgZmxvdyB0eXBlIGltcG9ydHMuXG4gKi9cbiBmdW5jdGlvbiBnZXRUU0ltcG9ydGVkTmFtZXModG9rZW5zKSB7XG4gIGNvbnN0IGltcG9ydGVkTmFtZXMgPSBuZXcgU2V0KCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLnRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChcbiAgICAgIHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0KSAmJlxuICAgICAgIXRva2Vucy5tYXRjaGVzM0F0SW5kZXgoaSwgX3R5cGVzLlRva2VuVHlwZS5faW1wb3J0LCBfdHlwZXMuVG9rZW5UeXBlLm5hbWUsIF90eXBlcy5Ub2tlblR5cGUuZXEpXG4gICAgKSB7XG4gICAgICBjb2xsZWN0TmFtZXNGb3JJbXBvcnQodG9rZW5zLCBpLCBpbXBvcnRlZE5hbWVzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGltcG9ydGVkTmFtZXM7XG59IGV4cG9ydHMuZGVmYXVsdCA9IGdldFRTSW1wb3J0ZWROYW1lcztcblxuZnVuY3Rpb24gY29sbGVjdE5hbWVzRm9ySW1wb3J0KFxuICB0b2tlbnMsXG4gIGluZGV4LFxuICBpbXBvcnRlZE5hbWVzLFxuKSB7XG4gIGluZGV4Kys7XG5cbiAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUucGFyZW5MKSkge1xuICAgIC8vIER5bmFtaWMgaW1wb3J0LCBzbyBub3RoaW5nIHRvIGRvXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUubmFtZSkpIHtcbiAgICBpbXBvcnRlZE5hbWVzLmFkZCh0b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4KSk7XG4gICAgaW5kZXgrKztcbiAgICBpZiAodG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSkpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuc3RhcikpIHtcbiAgICAvLyAqIGFzXG4gICAgaW5kZXggKz0gMjtcbiAgICBpbXBvcnRlZE5hbWVzLmFkZCh0b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4KSk7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmICh0b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlTCkpIHtcbiAgICBpbmRleCsrO1xuICAgIGNvbGxlY3ROYW1lc0Zvck5hbWVkSW1wb3J0KHRva2VucywgaW5kZXgsIGltcG9ydGVkTmFtZXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3ROYW1lc0Zvck5hbWVkSW1wb3J0KFxuICB0b2tlbnMsXG4gIGluZGV4LFxuICBpbXBvcnRlZE5hbWVzLFxuKSB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuYnJhY2VSKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBfZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbzIuZGVmYXVsdC5jYWxsKHZvaWQgMCwgdG9rZW5zLCBpbmRleCk7XG4gICAgaW5kZXggPSBzcGVjaWZpZXJJbmZvLmVuZEluZGV4O1xuICAgIGlmICghc3BlY2lmaWVySW5mby5pc1R5cGUpIHtcbiAgICAgIGltcG9ydGVkTmFtZXMuYWRkKHNwZWNpZmllckluZm8ucmlnaHROYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgX3R5cGVzLlRva2VuVHlwZS5jb21tYSwgX3R5cGVzLlRva2VuVHlwZS5icmFjZVIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCBfdHlwZXMuVG9rZW5UeXBlLmJyYWNlUikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIF90eXBlcy5Ub2tlblR5cGUuY29tbWEpKSB7XG4gICAgICBpbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdG9rZW46ICR7SlNPTi5zdHJpbmdpZnkodG9rZW5zLnRva2Vuc1tpbmRleF0pfWApO1xuICAgIH1cbiAgfVxufVxuIiwgIlwidXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge3ZhbHVlOiB0cnVlfSk7IGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9dmFyIF9DSlNJbXBvcnRQcm9jZXNzb3IgPSByZXF1aXJlKCcuL0NKU0ltcG9ydFByb2Nlc3NvcicpOyB2YXIgX0NKU0ltcG9ydFByb2Nlc3NvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DSlNJbXBvcnRQcm9jZXNzb3IpO1xudmFyIF9jb21wdXRlU291cmNlTWFwID0gcmVxdWlyZSgnLi9jb21wdXRlU291cmNlTWFwJyk7IHZhciBfY29tcHV0ZVNvdXJjZU1hcDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb21wdXRlU291cmNlTWFwKTtcbnZhciBfSGVscGVyTWFuYWdlciA9IHJlcXVpcmUoJy4vSGVscGVyTWFuYWdlcicpO1xudmFyIF9pZGVudGlmeVNoYWRvd2VkR2xvYmFscyA9IHJlcXVpcmUoJy4vaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMnKTsgdmFyIF9pZGVudGlmeVNoYWRvd2VkR2xvYmFsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pZGVudGlmeVNoYWRvd2VkR2xvYmFscyk7XG52YXIgX05hbWVNYW5hZ2VyID0gcmVxdWlyZSgnLi9OYW1lTWFuYWdlcicpOyB2YXIgX05hbWVNYW5hZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX05hbWVNYW5hZ2VyKTtcbnZhciBfT3B0aW9ucyA9IHJlcXVpcmUoJy4vT3B0aW9ucycpO1xuXG52YXIgX3BhcnNlciA9IHJlcXVpcmUoJy4vcGFyc2VyJyk7XG5cbnZhciBfVG9rZW5Qcm9jZXNzb3IgPSByZXF1aXJlKCcuL1Rva2VuUHJvY2Vzc29yJyk7IHZhciBfVG9rZW5Qcm9jZXNzb3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVG9rZW5Qcm9jZXNzb3IpO1xudmFyIF9Sb290VHJhbnNmb3JtZXIgPSByZXF1aXJlKCcuL3RyYW5zZm9ybWVycy9Sb290VHJhbnNmb3JtZXInKTsgdmFyIF9Sb290VHJhbnNmb3JtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUm9vdFRyYW5zZm9ybWVyKTtcbnZhciBfZm9ybWF0VG9rZW5zID0gcmVxdWlyZSgnLi91dGlsL2Zvcm1hdFRva2VucycpOyB2YXIgX2Zvcm1hdFRva2VuczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9mb3JtYXRUb2tlbnMpO1xudmFyIF9nZXRUU0ltcG9ydGVkTmFtZXMgPSByZXF1aXJlKCcuL3V0aWwvZ2V0VFNJbXBvcnRlZE5hbWVzJyk7IHZhciBfZ2V0VFNJbXBvcnRlZE5hbWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dldFRTSW1wb3J0ZWROYW1lcyk7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuO1xuXG4gZnVuY3Rpb24gZ2V0VmVyc2lvbigpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIFwiMy4zNS4wXCI7XG59IGV4cG9ydHMuZ2V0VmVyc2lvbiA9IGdldFZlcnNpb247XG5cbiBmdW5jdGlvbiB0cmFuc2Zvcm0oY29kZSwgb3B0aW9ucykge1xuICBfT3B0aW9ucy52YWxpZGF0ZU9wdGlvbnMuY2FsbCh2b2lkIDAsIG9wdGlvbnMpO1xuICB0cnkge1xuICAgIGNvbnN0IHN1Y3Jhc2VDb250ZXh0ID0gZ2V0U3VjcmFzZUNvbnRleHQoY29kZSwgb3B0aW9ucyk7XG4gICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgKDAsIF9Sb290VHJhbnNmb3JtZXIyLmRlZmF1bHQpKFxuICAgICAgc3VjcmFzZUNvbnRleHQsXG4gICAgICBvcHRpb25zLnRyYW5zZm9ybXMsXG4gICAgICBCb29sZWFuKG9wdGlvbnMuZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCksXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgY29uc3QgdHJhbnNmb3JtZXJSZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oKTtcbiAgICBsZXQgcmVzdWx0ID0ge2NvZGU6IHRyYW5zZm9ybWVyUmVzdWx0LmNvZGV9O1xuICAgIGlmIChvcHRpb25zLnNvdXJjZU1hcE9wdGlvbnMpIHtcbiAgICAgIGlmICghb3B0aW9ucy5maWxlUGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWxlUGF0aCBtdXN0IGJlIHNwZWNpZmllZCB3aGVuIGdlbmVyYXRpbmcgYSBzb3VyY2UgbWFwLlwiKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICBzb3VyY2VNYXA6IF9jb21wdXRlU291cmNlTWFwMi5kZWZhdWx0LmNhbGwodm9pZCAwLCBcbiAgICAgICAgICB0cmFuc2Zvcm1lclJlc3VsdCxcbiAgICAgICAgICBvcHRpb25zLmZpbGVQYXRoLFxuICAgICAgICAgIG9wdGlvbnMuc291cmNlTWFwT3B0aW9ucyxcbiAgICAgICAgICBjb2RlLFxuICAgICAgICAgIHN1Y3Jhc2VDb250ZXh0LnRva2VuUHJvY2Vzc29yLnRva2VucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChvcHRpb25zLmZpbGVQYXRoKSB7XG4gICAgICBlLm1lc3NhZ2UgPSBgRXJyb3IgdHJhbnNmb3JtaW5nICR7b3B0aW9ucy5maWxlUGF0aH06ICR7ZS5tZXNzYWdlfWA7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn0gZXhwb3J0cy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG5cbi8qKlxuICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdWNyYXNlIHRva2VucywgbW9zdGx5IHVzZWZ1bCBmb3JcbiAqIGRpYWdub3N0aWMgcHVycG9zZXMuXG4gKi9cbiBmdW5jdGlvbiBnZXRGb3JtYXR0ZWRUb2tlbnMoY29kZSwgb3B0aW9ucykge1xuICBjb25zdCB0b2tlbnMgPSBnZXRTdWNyYXNlQ29udGV4dChjb2RlLCBvcHRpb25zKS50b2tlblByb2Nlc3Nvci50b2tlbnM7XG4gIHJldHVybiBfZm9ybWF0VG9rZW5zMi5kZWZhdWx0LmNhbGwodm9pZCAwLCBjb2RlLCB0b2tlbnMpO1xufSBleHBvcnRzLmdldEZvcm1hdHRlZFRva2VucyA9IGdldEZvcm1hdHRlZFRva2VucztcblxuLyoqXG4gKiBDYWxsIGludG8gdGhlIHBhcnNlci90b2tlbml6ZXIgYW5kIGRvIHNvbWUgZnVydGhlciBwcmVwcm9jZXNzaW5nOlxuICogLSBDb21lIHVwIHdpdGggYSBzZXQgb2YgdXNlZCBuYW1lcyBzbyB0aGF0IHdlIGNhbiBhc3NpZ24gbmV3IG5hbWVzLlxuICogLSBQcmVwcm9jZXNzIGFsbCBpbXBvcnQvZXhwb3J0IHN0YXRlbWVudHMgc28gd2Uga25vdyB3aGljaCBnbG9iYWxzIHdlIGFyZSBpbnRlcmVzdGVkIGluLlxuICogLSBDb21wdXRlIHNpdHVhdGlvbnMgd2hlcmUgYW55IG9mIHRob3NlIGdsb2JhbHMgYXJlIHNoYWRvd2VkLlxuICpcbiAqIEluIHRoZSBmdXR1cmUsIHNvbWUgb2YgdGhlc2UgcHJlcHJvY2Vzc2luZyBzdGVwcyBjYW4gYmUgc2tpcHBlZCBiYXNlZCBvbiB3aGF0IGFjdHVhbCB3b3JrIGlzXG4gKiBiZWluZyBkb25lLlxuICovXG5mdW5jdGlvbiBnZXRTdWNyYXNlQ29udGV4dChjb2RlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGlzSlNYRW5hYmxlZCA9IG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcImpzeFwiKTtcbiAgY29uc3QgaXNUeXBlU2NyaXB0RW5hYmxlZCA9IG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcInR5cGVzY3JpcHRcIik7XG4gIGNvbnN0IGlzRmxvd0VuYWJsZWQgPSBvcHRpb25zLnRyYW5zZm9ybXMuaW5jbHVkZXMoXCJmbG93XCIpO1xuICBjb25zdCBkaXNhYmxlRVNUcmFuc2Zvcm1zID0gb3B0aW9ucy5kaXNhYmxlRVNUcmFuc2Zvcm1zID09PSB0cnVlO1xuICBjb25zdCBmaWxlID0gX3BhcnNlci5wYXJzZS5jYWxsKHZvaWQgMCwgY29kZSwgaXNKU1hFbmFibGVkLCBpc1R5cGVTY3JpcHRFbmFibGVkLCBpc0Zsb3dFbmFibGVkKTtcbiAgY29uc3QgdG9rZW5zID0gZmlsZS50b2tlbnM7XG4gIGNvbnN0IHNjb3BlcyA9IGZpbGUuc2NvcGVzO1xuXG4gIGNvbnN0IG5hbWVNYW5hZ2VyID0gbmV3ICgwLCBfTmFtZU1hbmFnZXIyLmRlZmF1bHQpKGNvZGUsIHRva2Vucyk7XG4gIGNvbnN0IGhlbHBlck1hbmFnZXIgPSBuZXcgKDAsIF9IZWxwZXJNYW5hZ2VyLkhlbHBlck1hbmFnZXIpKG5hbWVNYW5hZ2VyKTtcbiAgY29uc3QgdG9rZW5Qcm9jZXNzb3IgPSBuZXcgKDAsIF9Ub2tlblByb2Nlc3NvcjIuZGVmYXVsdCkoXG4gICAgY29kZSxcbiAgICB0b2tlbnMsXG4gICAgaXNGbG93RW5hYmxlZCxcbiAgICBkaXNhYmxlRVNUcmFuc2Zvcm1zLFxuICAgIGhlbHBlck1hbmFnZXIsXG4gICk7XG4gIGNvbnN0IGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wID0gQm9vbGVhbihvcHRpb25zLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wKTtcblxuICBsZXQgaW1wb3J0UHJvY2Vzc29yID0gbnVsbDtcbiAgaWYgKG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcImltcG9ydHNcIikpIHtcbiAgICBpbXBvcnRQcm9jZXNzb3IgPSBuZXcgKDAsIF9DSlNJbXBvcnRQcm9jZXNzb3IyLmRlZmF1bHQpKFxuICAgICAgbmFtZU1hbmFnZXIsXG4gICAgICB0b2tlblByb2Nlc3NvcixcbiAgICAgIGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcInR5cGVzY3JpcHRcIiksXG4gICAgICBCb29sZWFuKG9wdGlvbnMua2VlcFVudXNlZEltcG9ydHMpLFxuICAgICAgaGVscGVyTWFuYWdlcixcbiAgICApO1xuICAgIGltcG9ydFByb2Nlc3Nvci5wcmVwcm9jZXNzVG9rZW5zKCk7XG4gICAgLy8gV2UgbmVlZCB0byBtYXJrIHNoYWRvd2VkIGdsb2JhbHMgYWZ0ZXIgcHJvY2Vzc2luZyBpbXBvcnRzIHNvIHdlIGtub3cgdGhhdCB0aGUgZ2xvYmFscyBhcmUsXG4gICAgLy8gYnV0IGJlZm9yZSB0eXBlLW9ubHkgaW1wb3J0IHBydW5pbmcsIHNpbmNlIHRoYXQgcmVsaWVzIG9uIHNoYWRvd2luZyBpbmZvcm1hdGlvbi5cbiAgICBfaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMyLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRva2VuUHJvY2Vzc29yLCBzY29wZXMsIGltcG9ydFByb2Nlc3Nvci5nZXRHbG9iYWxOYW1lcygpKTtcbiAgICBpZiAob3B0aW9ucy50cmFuc2Zvcm1zLmluY2x1ZGVzKFwidHlwZXNjcmlwdFwiKSAmJiAhb3B0aW9ucy5rZWVwVW51c2VkSW1wb3J0cykge1xuICAgICAgaW1wb3J0UHJvY2Vzc29yLnBydW5lVHlwZU9ubHlJbXBvcnRzKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcInR5cGVzY3JpcHRcIikgJiYgIW9wdGlvbnMua2VlcFVudXNlZEltcG9ydHMpIHtcbiAgICAvLyBTaGFkb3dlZCBnbG9iYWwgZGV0ZWN0aW9uIGlzIG5lZWRlZCBmb3IgVFMgaW1wbGljaXQgZWxpc2lvbiBvZiBpbXBvcnRlZCBuYW1lcy5cbiAgICBfaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMyLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRva2VuUHJvY2Vzc29yLCBzY29wZXMsIF9nZXRUU0ltcG9ydGVkTmFtZXMyLmRlZmF1bHQuY2FsbCh2b2lkIDAsIHRva2VuUHJvY2Vzc29yKSk7XG4gIH1cbiAgcmV0dXJuIHt0b2tlblByb2Nlc3Nvciwgc2NvcGVzLCBuYW1lTWFuYWdlciwgaW1wb3J0UHJvY2Vzc29yLCBoZWxwZXJNYW5hZ2VyfTtcbn1cbiIsICIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO3ZhciBiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsYz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLGQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LGU9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsZj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxnPWI/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LGg9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksaz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLGw9Yj9TeW1ib2wuZm9yKFwicmVhY3QuYXN5bmNfbW9kZVwiKTo2MDExMSxtPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbmN1cnJlbnRfbW9kZVwiKTo2MDExMSxuPWI/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHA9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMscT1iP1xuU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIik6NjAxMjAscj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOjYwMTE1LHQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNix2PWI/U3ltYm9sLmZvcihcInJlYWN0LmJsb2NrXCIpOjYwMTIxLHc9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik6NjAxMTcseD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5yZXNwb25kZXJcIik6NjAxMTgseT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTo2MDExOTtcbmZ1bmN0aW9uIHooYSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIHU9YS4kJHR5cGVvZjtzd2l0Y2godSl7Y2FzZSBjOnN3aXRjaChhPWEudHlwZSxhKXtjYXNlIGw6Y2FzZSBtOmNhc2UgZTpjYXNlIGc6Y2FzZSBmOmNhc2UgcDpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2YsYSl7Y2FzZSBrOmNhc2UgbjpjYXNlIHQ6Y2FzZSByOmNhc2UgaDpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB1fX1jYXNlIGQ6cmV0dXJuIHV9fX1mdW5jdGlvbiBBKGEpe3JldHVybiB6KGEpPT09bX1leHBvcnRzLkFzeW5jTW9kZT1sO2V4cG9ydHMuQ29uY3VycmVudE1vZGU9bTtleHBvcnRzLkNvbnRleHRDb25zdW1lcj1rO2V4cG9ydHMuQ29udGV4dFByb3ZpZGVyPWg7ZXhwb3J0cy5FbGVtZW50PWM7ZXhwb3J0cy5Gb3J3YXJkUmVmPW47ZXhwb3J0cy5GcmFnbWVudD1lO2V4cG9ydHMuTGF6eT10O2V4cG9ydHMuTWVtbz1yO2V4cG9ydHMuUG9ydGFsPWQ7XG5leHBvcnRzLlByb2ZpbGVyPWc7ZXhwb3J0cy5TdHJpY3RNb2RlPWY7ZXhwb3J0cy5TdXNwZW5zZT1wO2V4cG9ydHMuaXNBc3luY01vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIEEoYSl8fHooYSk9PT1sfTtleHBvcnRzLmlzQ29uY3VycmVudE1vZGU9QTtleHBvcnRzLmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09a307ZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWh9O2V4cG9ydHMuaXNFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1jfTtleHBvcnRzLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PW59O2V4cG9ydHMuaXNGcmFnbWVudD1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWV9O2V4cG9ydHMuaXNMYXp5PWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09dH07XG5leHBvcnRzLmlzTWVtbz1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXJ9O2V4cG9ydHMuaXNQb3J0YWw9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1kfTtleHBvcnRzLmlzUHJvZmlsZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1nfTtleHBvcnRzLmlzU3RyaWN0TW9kZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWZ9O2V4cG9ydHMuaXNTdXNwZW5zZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXB9O1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYXx8YT09PWV8fGE9PT1tfHxhPT09Z3x8YT09PWZ8fGE9PT1wfHxhPT09cXx8XCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmKGEuJCR0eXBlb2Y9PT10fHxhLiQkdHlwZW9mPT09cnx8YS4kJHR5cGVvZj09PWh8fGEuJCR0eXBlb2Y9PT1rfHxhLiQkdHlwZW9mPT09bnx8YS4kJHR5cGVvZj09PXd8fGEuJCR0eXBlb2Y9PT14fHxhLiQkdHlwZW9mPT09eXx8YS4kJHR5cGVvZj09PXYpfTtleHBvcnRzLnR5cGVPZj16O1xuIiwgIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3I7XG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIDogMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJykgOiAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50JykgOiAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJykgOiAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJykgOiAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJykgOiAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpIDogMHhlYWNlOyAvLyBUT0RPOiBXZSBkb24ndCB1c2UgQXN5bmNNb2RlIG9yIENvbmN1cnJlbnRNb2RlIGFueW1vcmUuIFRoZXkgd2VyZSB0ZW1wb3Jhcnlcbi8vICh1bnN0YWJsZSkgQVBJcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkLiBDYW4gd2UgcmVtb3ZlIHRoZSBzeW1ib2xzP1xuXG52YXIgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuYXN5bmNfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29uY3VycmVudF9tb2RlJykgOiAweGVhY2Y7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJykgOiAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJykgOiAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpIDogMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKSA6IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5JykgOiAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmJsb2NrJykgOiAweGVhZDk7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJykgOiAweGVhZDU7XG52YXIgUkVBQ1RfUkVTUE9OREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5yZXNwb25kZXInKSA6IDB4ZWFkNjtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc2NvcGUnKSA6IDB4ZWFkNztcblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCAvLyBOb3RlOiBpdHMgdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgaWYgaXQncyBhIHBvbHlmaWxsLlxuICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUkVTUE9OREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0NPUEVfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFKTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59IC8vIEFzeW5jTW9kZSBpcyBkZXByZWNhdGVkIGFsb25nIHdpdGggaXNBc3luY01vZGVcblxudmFyIEFzeW5jTW9kZSA9IFJFQUNUX0FTWU5DX01PREVfVFlQRTtcbnZhciBDb25jdXJyZW50TW9kZSA9IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxNysuIFVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlICcgKyAnUmVhY3RJcy5pc0NvbmN1cnJlbnRNb2RlKCkgaW5zdGVhZC4gSXQgaGFzIHRoZSBleGFjdCBzYW1lIEFQSS4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHx8IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRNb2RlKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuXG5leHBvcnRzLkFzeW5jTW9kZSA9IEFzeW5jTW9kZTtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGUgPSBDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5Db250ZXh0UHJvdmlkZXIgPSBDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50O1xuZXhwb3J0cy5Gb3J3YXJkUmVmID0gRm9yd2FyZFJlZjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBGcmFnbWVudDtcbmV4cG9ydHMuTGF6eSA9IExhenk7XG5leHBvcnRzLk1lbW8gPSBNZW1vO1xuZXhwb3J0cy5Qb3J0YWwgPSBQb3J0YWw7XG5leHBvcnRzLlByb2ZpbGVyID0gUHJvZmlsZXI7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBTdHJpY3RNb2RlO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFN1c3BlbnNlO1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1LCBZYWhvbyEgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG52YXIgUkVBQ1RfU1RBVElDUyA9IHtcbiAgY2hpbGRDb250ZXh0VHlwZXM6IHRydWUsXG4gIGNvbnRleHRUeXBlOiB0cnVlLFxuICBjb250ZXh0VHlwZXM6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIGdldERlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM6IHRydWUsXG4gIG1peGluczogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIEtOT1dOX1NUQVRJQ1MgPSB7XG4gIG5hbWU6IHRydWUsXG4gIGxlbmd0aDogdHJ1ZSxcbiAgcHJvdG90eXBlOiB0cnVlLFxuICBjYWxsZXI6IHRydWUsXG4gIGNhbGxlZTogdHJ1ZSxcbiAgYXJndW1lbnRzOiB0cnVlLFxuICBhcml0eTogdHJ1ZVxufTtcbnZhciBGT1JXQVJEX1JFRl9TVEFUSUNTID0ge1xuICAnJCR0eXBlb2YnOiB0cnVlLFxuICByZW5kZXI6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZVxufTtcbnZhciBNRU1PX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIGNvbXBhcmU6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBUWVBFX1NUQVRJQ1MgPSB7fTtcblRZUEVfU1RBVElDU1tyZWFjdElzLkZvcndhcmRSZWZdID0gRk9SV0FSRF9SRUZfU1RBVElDUztcblRZUEVfU1RBVElDU1tyZWFjdElzLk1lbW9dID0gTUVNT19TVEFUSUNTO1xuXG5mdW5jdGlvbiBnZXRTdGF0aWNzKGNvbXBvbmVudCkge1xuICAvLyBSZWFjdCB2MTYuMTEgYW5kIGJlbG93XG4gIGlmIChyZWFjdElzLmlzTWVtbyhjb21wb25lbnQpKSB7XG4gICAgcmV0dXJuIE1FTU9fU1RBVElDUztcbiAgfSAvLyBSZWFjdCB2MTYuMTIgYW5kIGFib3ZlXG5cblxuICByZXR1cm4gVFlQRV9TVEFUSUNTW2NvbXBvbmVudFsnJCR0eXBlb2YnXV0gfHwgUkVBQ1RfU1RBVElDUztcbn1cblxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgb2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbmZ1bmN0aW9uIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgc291cmNlQ29tcG9uZW50LCBibGFja2xpc3QpIHtcbiAgaWYgKHR5cGVvZiBzb3VyY2VDb21wb25lbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgaG9pc3Qgb3ZlciBzdHJpbmcgKGh0bWwpIGNvbXBvbmVudHNcbiAgICBpZiAob2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICB2YXIgaW5oZXJpdGVkQ29tcG9uZW50ID0gZ2V0UHJvdG90eXBlT2Yoc291cmNlQ29tcG9uZW50KTtcblxuICAgICAgaWYgKGluaGVyaXRlZENvbXBvbmVudCAmJiBpbmhlcml0ZWRDb21wb25lbnQgIT09IG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgICBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIGluaGVyaXRlZENvbXBvbmVudCwgYmxhY2tsaXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cyA9IGdldE93blByb3BlcnR5TmFtZXMoc291cmNlQ29tcG9uZW50KTtcblxuICAgIGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgIGtleXMgPSBrZXlzLmNvbmNhdChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlQ29tcG9uZW50KSk7XG4gICAgfVxuXG4gICAgdmFyIHRhcmdldFN0YXRpY3MgPSBnZXRTdGF0aWNzKHRhcmdldENvbXBvbmVudCk7XG4gICAgdmFyIHNvdXJjZVN0YXRpY3MgPSBnZXRTdGF0aWNzKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoIUtOT1dOX1NUQVRJQ1Nba2V5XSAmJiAhKGJsYWNrbGlzdCAmJiBibGFja2xpc3Rba2V5XSkgJiYgIShzb3VyY2VTdGF0aWNzICYmIHNvdXJjZVN0YXRpY3Nba2V5XSkgJiYgISh0YXJnZXRTdGF0aWNzICYmIHRhcmdldFN0YXRpY3Nba2V5XSkpIHtcbiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlQ29tcG9uZW50LCBrZXkpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gQXZvaWQgZmFpbHVyZXMgZnJvbSByZWFkLW9ubHkgcHJvcGVydGllc1xuICAgICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldENvbXBvbmVudCwga2V5LCBkZXNjcmlwdG9yKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0Q29tcG9uZW50O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhvaXN0Tm9uUmVhY3RTdGF0aWNzO1xuIiwgImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gbW9kdWxlLmV4cG9ydHMgPSBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uIChuKSB7XG4gICAgZm9yICh2YXIgZSA9IDE7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspIHtcbiAgICAgIHZhciB0ID0gYXJndW1lbnRzW2VdO1xuICAgICAgZm9yICh2YXIgciBpbiB0KSAoe30pLmhhc093blByb3BlcnR5LmNhbGwodCwgcikgJiYgKG5bcl0gPSB0W3JdKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgX2V4dGVuZHMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiLyoqIE5vcm1hbCBoeWRyYXRpb24gdGhhdCBhdHRhY2hlcyB0byBhIERPTSB0cmVlIGJ1dCBkb2VzIG5vdCBkaWZmIGl0LiAqL1xuZXhwb3J0IGNvbnN0IE1PREVfSFlEUkFURSA9IDEgPDwgNTtcbi8qKiBTaWduaWZpZXMgdGhpcyBWTm9kZSBzdXNwZW5kZWQgb24gdGhlIHByZXZpb3VzIHJlbmRlciAqL1xuZXhwb3J0IGNvbnN0IE1PREVfU1VTUEVOREVEID0gMSA8PCA3O1xuLyoqIEluZGljYXRlcyB0aGF0IHRoaXMgbm9kZSBuZWVkcyB0byBiZSBpbnNlcnRlZCB3aGlsZSBwYXRjaGluZyBjaGlsZHJlbiAqL1xuZXhwb3J0IGNvbnN0IElOU0VSVF9WTk9ERSA9IDEgPDwgMTY7XG4vKiogSW5kaWNhdGVzIGEgVk5vZGUgaGFzIGJlZW4gbWF0Y2hlZCB3aXRoIGFub3RoZXIgVk5vZGUgaW4gdGhlIGRpZmYgKi9cbmV4cG9ydCBjb25zdCBNQVRDSEVEID0gMSA8PCAxNztcblxuLyoqIFJlc2V0IGFsbCBtb2RlIGZsYWdzICovXG5leHBvcnQgY29uc3QgUkVTRVRfTU9ERSA9IH4oTU9ERV9IWURSQVRFIHwgTU9ERV9TVVNQRU5ERUQpO1xuXG5leHBvcnQgY29uc3QgRU1QVFlfT0JKID0gLyoqIEB0eXBlIHthbnl9ICovICh7fSk7XG5leHBvcnQgY29uc3QgRU1QVFlfQVJSID0gW107XG5leHBvcnQgY29uc3QgSVNfTk9OX0RJTUVOU0lPTkFMID1cblx0L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaTtcbiIsICJpbXBvcnQgeyBFTVBUWV9BUlIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuLyoqXG4gKiBBc3NpZ24gcHJvcGVydGllcyBmcm9tIGBwcm9wc2AgdG8gYG9iamBcbiAqIEB0ZW1wbGF0ZSBPLCBQIFRoZSBvYmogYW5kIHByb3BzIHR5cGVzXG4gKiBAcGFyYW0ge099IG9iaiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0b1xuICogQHBhcmFtIHtQfSBwcm9wcyBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcmV0dXJucyB7TyAmIFB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24ob2JqLCBwcm9wcykge1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIFdlIGNoYW5nZSB0aGUgdHlwZSBvZiBgb2JqYCB0byBiZSBgTyAmIFBgXG5cdGZvciAobGV0IGkgaW4gcHJvcHMpIG9ialtpXSA9IHByb3BzW2ldO1xuXHRyZXR1cm4gLyoqIEB0eXBlIHtPICYgUH0gKi8gKG9iaik7XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgY2hpbGQgbm9kZSBmcm9tIGl0cyBwYXJlbnQgaWYgYXR0YWNoZWQuIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvclxuICogSUUxMSB3aGljaCBkb2Vzbid0IHN1cHBvcnQgYEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSgpYC4gVXNpbmcgdGhpcyBmdW5jdGlvblxuICogaXMgc21hbGxlciB0aGFuIGluY2x1ZGluZyBhIGRlZGljYXRlZCBwb2x5ZmlsbC5cbiAqIEBwYXJhbSB7cHJlYWN0LkNvbnRhaW5lck5vZGV9IG5vZGUgVGhlIG5vZGUgdG8gcmVtb3ZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVOb2RlKG5vZGUpIHtcblx0aWYgKG5vZGUgJiYgbm9kZS5wYXJlbnROb2RlKSBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG59XG5cbmV4cG9ydCBjb25zdCBzbGljZSA9IEVNUFRZX0FSUi5zbGljZTtcbiIsICJpbXBvcnQgeyBfY2F0Y2hFcnJvciB9IGZyb20gJy4vZGlmZi9jYXRjaC1lcnJvcic7XG5cbi8qKlxuICogVGhlIGBvcHRpb25gIG9iamVjdCBjYW4gcG90ZW50aWFsbHkgY29udGFpbiBjYWxsYmFjayBmdW5jdGlvbnNcbiAqIHRoYXQgYXJlIGNhbGxlZCBkdXJpbmcgdmFyaW91cyBzdGFnZXMgb2Ygb3VyIHJlbmRlcmVyLiBUaGlzIGlzIHRoZVxuICogZm91bmRhdGlvbiBvbiB3aGljaCBhbGwgb3VyIGFkZG9ucyBsaWtlIGBwcmVhY3QvZGVidWdgLCBgcHJlYWN0L2NvbXBhdGAsXG4gKiBhbmQgYHByZWFjdC9ob29rc2AgYXJlIGJhc2VkIG9uLiBTZWUgdGhlIGBPcHRpb25zYCB0eXBlIGluIGBpbnRlcm5hbC5kLnRzYFxuICogZm9yIGEgZnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb24gaG9va3MgKG1vc3QgZWRpdG9ycy9JREVzIGFsbG93IHlvdSB0b1xuICogY3RybCtjbGljayBvciBjbWQrY2xpY2sgb24gbWFjIHRoZSB0eXBlIGRlZmluaXRpb24gYmVsb3cpLlxuICogQHR5cGUge09wdGlvbnN9XG4gKi9cbmNvbnN0IG9wdGlvbnMgPSB7XG5cdF9jYXRjaEVycm9yXG59O1xuXG5leHBvcnQgZGVmYXVsdCBvcHRpb25zO1xuIiwgImltcG9ydCB7IHNsaWNlIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4vb3B0aW9ucyc7XG5cbmxldCB2bm9kZUlkID0gMDtcblxuLyoqXG4gKiBDcmVhdGUgYW4gdmlydHVhbCBub2RlICh1c2VkIGZvciBKU1gpXG4gKiBAcGFyYW0ge1ZOb2RlW1widHlwZVwiXX0gdHlwZSBUaGUgbm9kZSBuYW1lIG9yIENvbXBvbmVudCBjb25zdHJ1Y3RvciBmb3IgdGhpc1xuICogdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge29iamVjdCB8IG51bGwgfCB1bmRlZmluZWR9IFtwcm9wc10gVGhlIHByb3BlcnRpZXMgb2YgdGhlIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtBcnJheTxpbXBvcnQoJy4nKS5Db21wb25lbnRDaGlsZHJlbj59IFtjaGlsZHJlbl0gVGhlIGNoaWxkcmVuIG9mIHRoZVxuICogdmlydHVhbCBub2RlXG4gKiBAcmV0dXJucyB7Vk5vZGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuXHRsZXQgbm9ybWFsaXplZFByb3BzID0ge30sXG5cdFx0a2V5LFxuXHRcdHJlZixcblx0XHRpO1xuXHRmb3IgKGkgaW4gcHJvcHMpIHtcblx0XHRpZiAoaSA9PSAna2V5Jykga2V5ID0gcHJvcHNbaV07XG5cdFx0ZWxzZSBpZiAoaSA9PSAncmVmJykgcmVmID0gcHJvcHNbaV07XG5cdFx0ZWxzZSBub3JtYWxpemVkUHJvcHNbaV0gPSBwcm9wc1tpXTtcblx0fVxuXG5cdGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy5jaGlsZHJlbiA9XG5cdFx0XHRhcmd1bWVudHMubGVuZ3RoID4gMyA/IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKSA6IGNoaWxkcmVuO1xuXHR9XG5cblx0Ly8gSWYgYSBDb21wb25lbnQgVk5vZGUsIGNoZWNrIGZvciBhbmQgYXBwbHkgZGVmYXVsdFByb3BzXG5cdC8vIE5vdGU6IHR5cGUgbWF5IGJlIHVuZGVmaW5lZCBpbiBkZXZlbG9wbWVudCwgbXVzdCBuZXZlciBlcnJvciBoZXJlLlxuXHRpZiAodHlwZW9mIHR5cGUgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlLmRlZmF1bHRQcm9wcyAhPSBudWxsKSB7XG5cdFx0Zm9yIChpIGluIHR5cGUuZGVmYXVsdFByb3BzKSB7XG5cdFx0XHRpZiAobm9ybWFsaXplZFByb3BzW2ldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gdHlwZS5kZWZhdWx0UHJvcHNbaV07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGNyZWF0ZVZOb2RlKHR5cGUsIG5vcm1hbGl6ZWRQcm9wcywga2V5LCByZWYsIG51bGwpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIFZOb2RlICh1c2VkIGludGVybmFsbHkgYnkgUHJlYWN0KVxuICogQHBhcmFtIHtWTm9kZVtcInR5cGVcIl19IHR5cGUgVGhlIG5vZGUgbmFtZSBvciBDb21wb25lbnRcbiAqIENvbnN0cnVjdG9yIGZvciB0aGlzIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtvYmplY3QgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsfSBwcm9wcyBUaGUgcHJvcGVydGllcyBvZiB0aGlzIHZpcnR1YWwgbm9kZS5cbiAqIElmIHRoaXMgdmlydHVhbCBub2RlIHJlcHJlc2VudHMgYSB0ZXh0IG5vZGUsIHRoaXMgaXMgdGhlIHRleHQgb2YgdGhlIG5vZGUgKHN0cmluZyBvciBudW1iZXIpLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXIgfCBudWxsfSBrZXkgVGhlIGtleSBmb3IgdGhpcyB2aXJ0dWFsIG5vZGUsIHVzZWQgd2hlblxuICogZGlmZmluZyBpdCBhZ2FpbnN0IGl0cyBjaGlsZHJlblxuICogQHBhcmFtIHtWTm9kZVtcInJlZlwiXX0gcmVmIFRoZSByZWYgcHJvcGVydHkgdGhhdCB3aWxsXG4gKiByZWNlaXZlIGEgcmVmZXJlbmNlIHRvIGl0cyBjcmVhdGVkIGNoaWxkXG4gKiBAcmV0dXJucyB7Vk5vZGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWTm9kZSh0eXBlLCBwcm9wcywga2V5LCByZWYsIG9yaWdpbmFsKSB7XG5cdC8vIFY4IHNlZW1zIHRvIGJlIGJldHRlciBhdCBkZXRlY3RpbmcgdHlwZSBzaGFwZXMgaWYgdGhlIG9iamVjdCBpcyBhbGxvY2F0ZWQgZnJvbSB0aGUgc2FtZSBjYWxsIHNpdGVcblx0Ly8gRG8gbm90IGlubGluZSBpbnRvIGNyZWF0ZUVsZW1lbnQgYW5kIGNvZXJjZVRvVk5vZGUhXG5cdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdGNvbnN0IHZub2RlID0ge1xuXHRcdHR5cGUsXG5cdFx0cHJvcHMsXG5cdFx0a2V5LFxuXHRcdHJlZixcblx0XHRfY2hpbGRyZW46IG51bGwsXG5cdFx0X3BhcmVudDogbnVsbCxcblx0XHRfZGVwdGg6IDAsXG5cdFx0X2RvbTogbnVsbCxcblx0XHQvLyBfbmV4dERvbSBtdXN0IGJlIGluaXRpYWxpemVkIHRvIHVuZGVmaW5lZCBiL2MgaXQgd2lsbCBldmVudHVhbGx5XG5cdFx0Ly8gYmUgc2V0IHRvIGRvbS5uZXh0U2libGluZyB3aGljaCBjYW4gcmV0dXJuIGBudWxsYCBhbmQgaXQgaXMgaW1wb3J0YW50XG5cdFx0Ly8gdG8gYmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIHVuaW5pdGlhbGl6ZWQgX25leHREb20gYW5kXG5cdFx0Ly8gYSBfbmV4dERvbSB0aGF0IGhhcyBiZWVuIHNldCB0byBgbnVsbGBcblx0XHRfbmV4dERvbTogdW5kZWZpbmVkLFxuXHRcdF9jb21wb25lbnQ6IG51bGwsXG5cdFx0Y29uc3RydWN0b3I6IHVuZGVmaW5lZCxcblx0XHRfb3JpZ2luYWw6IG9yaWdpbmFsID09IG51bGwgPyArK3Zub2RlSWQgOiBvcmlnaW5hbCxcblx0XHRfaW5kZXg6IC0xLFxuXHRcdF9mbGFnczogMFxuXHR9O1xuXG5cdC8vIE9ubHkgaW52b2tlIHRoZSB2bm9kZSBob29rIGlmIHRoaXMgd2FzICpub3QqIGEgZGlyZWN0IGNvcHk6XG5cdGlmIChvcmlnaW5hbCA9PSBudWxsICYmIG9wdGlvbnMudm5vZGUgIT0gbnVsbCkgb3B0aW9ucy52bm9kZSh2bm9kZSk7XG5cblx0cmV0dXJuIHZub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVmKCkge1xuXHRyZXR1cm4geyBjdXJyZW50OiBudWxsIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGcmFnbWVudChwcm9wcykge1xuXHRyZXR1cm4gcHJvcHMuY2hpbGRyZW47XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB0aGUgYXJndW1lbnQgaXMgYSB2YWxpZCBQcmVhY3QgVk5vZGUuXG4gKiBAcGFyYW0geyp9IHZub2RlXG4gKiBAcmV0dXJucyB7dm5vZGUgaXMgVk5vZGV9XG4gKi9cbmV4cG9ydCBjb25zdCBpc1ZhbGlkRWxlbWVudCA9IHZub2RlID0+XG5cdHZub2RlICE9IG51bGwgJiYgdm5vZGUuY29uc3RydWN0b3IgPT0gdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzc2lnbiB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBkaWZmLCBjb21taXRSb290IH0gZnJvbSAnLi9kaWZmL2luZGV4JztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJy4vY3JlYXRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgTU9ERV9IWURSQVRFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIEJhc2UgQ29tcG9uZW50IGNsYXNzLiBQcm92aWRlcyBgc2V0U3RhdGUoKWAgYW5kIGBmb3JjZVVwZGF0ZSgpYCwgd2hpY2hcbiAqIHRyaWdnZXIgcmVuZGVyaW5nXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgVGhlIGluaXRpYWwgY29tcG9uZW50IHByb3BzXG4gKiBAcGFyYW0ge29iamVjdH0gY29udGV4dCBUaGUgaW5pdGlhbCBjb250ZXh0IGZyb20gcGFyZW50IGNvbXBvbmVudHMnXG4gKiBnZXRDaGlsZENvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJhc2VDb21wb25lbnQocHJvcHMsIGNvbnRleHQpIHtcblx0dGhpcy5wcm9wcyA9IHByb3BzO1xuXHR0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xufVxuXG4vKipcbiAqIFVwZGF0ZSBjb21wb25lbnQgc3RhdGUgYW5kIHNjaGVkdWxlIGEgcmUtcmVuZGVyLlxuICogQHRoaXMge0NvbXBvbmVudH1cbiAqIEBwYXJhbSB7b2JqZWN0IHwgKChzOiBvYmplY3QsIHA6IG9iamVjdCkgPT4gb2JqZWN0KX0gdXBkYXRlIEEgaGFzaCBvZiBzdGF0ZVxuICogcHJvcGVydGllcyB0byB1cGRhdGUgd2l0aCBuZXcgdmFsdWVzIG9yIGEgZnVuY3Rpb24gdGhhdCBnaXZlbiB0aGUgY3VycmVudFxuICogc3RhdGUgYW5kIHByb3BzIHJldHVybnMgYSBuZXcgcGFydGlhbCBzdGF0ZVxuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBbY2FsbGJhY2tdIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uY2UgY29tcG9uZW50IHN0YXRlIGlzXG4gKiB1cGRhdGVkXG4gKi9cbkJhc2VDb21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHVwZGF0ZSwgY2FsbGJhY2spIHtcblx0Ly8gb25seSBjbG9uZSBzdGF0ZSB3aGVuIGNvcHlpbmcgdG8gbmV4dFN0YXRlIHRoZSBmaXJzdCB0aW1lLlxuXHRsZXQgcztcblx0aWYgKHRoaXMuX25leHRTdGF0ZSAhPSBudWxsICYmIHRoaXMuX25leHRTdGF0ZSAhPT0gdGhpcy5zdGF0ZSkge1xuXHRcdHMgPSB0aGlzLl9uZXh0U3RhdGU7XG5cdH0gZWxzZSB7XG5cdFx0cyA9IHRoaXMuX25leHRTdGF0ZSA9IGFzc2lnbih7fSwgdGhpcy5zdGF0ZSk7XG5cdH1cblxuXHRpZiAodHlwZW9mIHVwZGF0ZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0Ly8gU29tZSBsaWJyYXJpZXMgbGlrZSBgaW1tZXJgIG1hcmsgdGhlIGN1cnJlbnQgc3RhdGUgYXMgcmVhZG9ubHksXG5cdFx0Ly8gcHJldmVudGluZyB1cyBmcm9tIG11dGF0aW5nIGl0LCBzbyB3ZSBuZWVkIHRvIGNsb25lIGl0LiBTZWUgIzI3MTZcblx0XHR1cGRhdGUgPSB1cGRhdGUoYXNzaWduKHt9LCBzKSwgdGhpcy5wcm9wcyk7XG5cdH1cblxuXHRpZiAodXBkYXRlKSB7XG5cdFx0YXNzaWduKHMsIHVwZGF0ZSk7XG5cdH1cblxuXHQvLyBTa2lwIHVwZGF0ZSBpZiB1cGRhdGVyIGZ1bmN0aW9uIHJldHVybmVkIG51bGxcblx0aWYgKHVwZGF0ZSA9PSBudWxsKSByZXR1cm47XG5cblx0aWYgKHRoaXMuX3Zub2RlKSB7XG5cdFx0aWYgKGNhbGxiYWNrKSB7XG5cdFx0XHR0aGlzLl9zdGF0ZUNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblx0XHR9XG5cdFx0ZW5xdWV1ZVJlbmRlcih0aGlzKTtcblx0fVxufTtcblxuLyoqXG4gKiBJbW1lZGlhdGVseSBwZXJmb3JtIGEgc3luY2hyb25vdXMgcmUtcmVuZGVyIG9mIHRoZSBjb21wb25lbnRcbiAqIEB0aGlzIHtDb21wb25lbnR9XG4gKiBAcGFyYW0geygpID0+IHZvaWR9IFtjYWxsYmFja10gQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzXG4gKiByZS1yZW5kZXJlZFxuICovXG5CYXNlQ29tcG9uZW50LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuXHRpZiAodGhpcy5fdm5vZGUpIHtcblx0XHQvLyBTZXQgcmVuZGVyIG1vZGUgc28gdGhhdCB3ZSBjYW4gZGlmZmVyZW50aWF0ZSB3aGVyZSB0aGUgcmVuZGVyIHJlcXVlc3Rcblx0XHQvLyBpcyBjb21pbmcgZnJvbS4gV2UgbmVlZCB0aGlzIGJlY2F1c2UgZm9yY2VVcGRhdGUgc2hvdWxkIG5ldmVyIGNhbGxcblx0XHQvLyBzaG91bGRDb21wb25lbnRVcGRhdGVcblx0XHR0aGlzLl9mb3JjZSA9IHRydWU7XG5cdFx0aWYgKGNhbGxiYWNrKSB0aGlzLl9yZW5kZXJDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG5cdFx0ZW5xdWV1ZVJlbmRlcih0aGlzKTtcblx0fVxufTtcblxuLyoqXG4gKiBBY2NlcHRzIGBwcm9wc2AgYW5kIGBzdGF0ZWAsIGFuZCByZXR1cm5zIGEgbmV3IFZpcnR1YWwgRE9NIHRyZWUgdG8gYnVpbGQuXG4gKiBWaXJ0dWFsIERPTSBpcyBnZW5lcmFsbHkgY29uc3RydWN0ZWQgdmlhIFtKU1hdKGh0dHA6Ly9qYXNvbmZvcm1hdC5jb20vd3RmLWlzLWpzeCkuXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgUHJvcHMgKGVnOiBKU1ggYXR0cmlidXRlcykgcmVjZWl2ZWQgZnJvbSBwYXJlbnRcbiAqIGVsZW1lbnQvY29tcG9uZW50XG4gKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgVGhlIGNvbXBvbmVudCdzIGN1cnJlbnQgc3RhdGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0IENvbnRleHQgb2JqZWN0LCBhcyByZXR1cm5lZCBieSB0aGUgbmVhcmVzdFxuICogYW5jZXN0b3IncyBgZ2V0Q2hpbGRDb250ZXh0KClgXG4gKiBAcmV0dXJucyB7Q29tcG9uZW50Q2hpbGRyZW4gfCB2b2lkfVxuICovXG5CYXNlQ29tcG9uZW50LnByb3RvdHlwZS5yZW5kZXIgPSBGcmFnbWVudDtcblxuLyoqXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZVxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsfSBbY2hpbGRJbmRleF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERvbVNpYmxpbmcodm5vZGUsIGNoaWxkSW5kZXgpIHtcblx0aWYgKGNoaWxkSW5kZXggPT0gbnVsbCkge1xuXHRcdC8vIFVzZSBjaGlsZEluZGV4PT1udWxsIGFzIGEgc2lnbmFsIHRvIHJlc3VtZSB0aGUgc2VhcmNoIGZyb20gdGhlIHZub2RlJ3Mgc2libGluZ1xuXHRcdHJldHVybiB2bm9kZS5fcGFyZW50XG5cdFx0XHQ/IGdldERvbVNpYmxpbmcodm5vZGUuX3BhcmVudCwgdm5vZGUuX2luZGV4ICsgMSlcblx0XHRcdDogbnVsbDtcblx0fVxuXG5cdGxldCBzaWJsaW5nO1xuXHRmb3IgKDsgY2hpbGRJbmRleCA8IHZub2RlLl9jaGlsZHJlbi5sZW5ndGg7IGNoaWxkSW5kZXgrKykge1xuXHRcdHNpYmxpbmcgPSB2bm9kZS5fY2hpbGRyZW5bY2hpbGRJbmRleF07XG5cblx0XHRpZiAoc2libGluZyAhPSBudWxsICYmIHNpYmxpbmcuX2RvbSAhPSBudWxsKSB7XG5cdFx0XHQvLyBTaW5jZSB1cGRhdGVQYXJlbnREb21Qb2ludGVycyBrZWVwcyBfZG9tIHBvaW50ZXIgY29ycmVjdCxcblx0XHRcdC8vIHdlIGNhbiByZWx5IG9uIF9kb20gdG8gdGVsbCB1cyBpZiB0aGlzIHN1YnRyZWUgY29udGFpbnMgYVxuXHRcdFx0Ly8gcmVuZGVyZWQgRE9NIG5vZGUsIGFuZCB3aGF0IHRoZSBmaXJzdCByZW5kZXJlZCBET00gbm9kZSBpc1xuXHRcdFx0cmV0dXJuIHNpYmxpbmcuX2RvbTtcblx0XHR9XG5cdH1cblxuXHQvLyBJZiB3ZSBnZXQgaGVyZSwgd2UgaGF2ZSBub3QgZm91bmQgYSBET00gbm9kZSBpbiB0aGlzIHZub2RlJ3MgY2hpbGRyZW4uXG5cdC8vIFdlIG11c3QgcmVzdW1lIGZyb20gdGhpcyB2bm9kZSdzIHNpYmxpbmcgKGluIGl0J3MgcGFyZW50IF9jaGlsZHJlbiBhcnJheSlcblx0Ly8gT25seSBjbGltYiB1cCBhbmQgc2VhcmNoIHRoZSBwYXJlbnQgaWYgd2UgYXJlbid0IHNlYXJjaGluZyB0aHJvdWdoIGEgRE9NXG5cdC8vIFZOb2RlIChtZWFuaW5nIHdlIHJlYWNoZWQgdGhlIERPTSBwYXJlbnQgb2YgdGhlIG9yaWdpbmFsIHZub2RlIHRoYXQgYmVnYW5cblx0Ly8gdGhlIHNlYXJjaClcblx0cmV0dXJuIHR5cGVvZiB2bm9kZS50eXBlID09ICdmdW5jdGlvbicgPyBnZXREb21TaWJsaW5nKHZub2RlKSA6IG51bGw7XG59XG5cbi8qKlxuICogVHJpZ2dlciBpbi1wbGFjZSByZS1yZW5kZXJpbmcgb2YgYSBjb21wb25lbnQuXG4gKiBAcGFyYW0ge0NvbXBvbmVudH0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gcmVyZW5kZXJcbiAqL1xuZnVuY3Rpb24gcmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCkge1xuXHRsZXQgb2xkVk5vZGUgPSBjb21wb25lbnQuX3Zub2RlLFxuXHRcdG9sZERvbSA9IG9sZFZOb2RlLl9kb20sXG5cdFx0Y29tbWl0UXVldWUgPSBbXSxcblx0XHRyZWZRdWV1ZSA9IFtdO1xuXG5cdGlmIChjb21wb25lbnQuX3BhcmVudERvbSkge1xuXHRcdGNvbnN0IG5ld1ZOb2RlID0gYXNzaWduKHt9LCBvbGRWTm9kZSk7XG5cdFx0bmV3Vk5vZGUuX29yaWdpbmFsID0gb2xkVk5vZGUuX29yaWdpbmFsICsgMTtcblx0XHRpZiAob3B0aW9ucy52bm9kZSkgb3B0aW9ucy52bm9kZShuZXdWTm9kZSk7XG5cblx0XHRkaWZmKFxuXHRcdFx0Y29tcG9uZW50Ll9wYXJlbnREb20sXG5cdFx0XHRuZXdWTm9kZSxcblx0XHRcdG9sZFZOb2RlLFxuXHRcdFx0Y29tcG9uZW50Ll9nbG9iYWxDb250ZXh0LFxuXHRcdFx0Y29tcG9uZW50Ll9wYXJlbnREb20ubmFtZXNwYWNlVVJJLFxuXHRcdFx0b2xkVk5vZGUuX2ZsYWdzICYgTU9ERV9IWURSQVRFID8gW29sZERvbV0gOiBudWxsLFxuXHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRvbGREb20gPT0gbnVsbCA/IGdldERvbVNpYmxpbmcob2xkVk5vZGUpIDogb2xkRG9tLFxuXHRcdFx0ISEob2xkVk5vZGUuX2ZsYWdzICYgTU9ERV9IWURSQVRFKSxcblx0XHRcdHJlZlF1ZXVlXG5cdFx0KTtcblxuXHRcdG5ld1ZOb2RlLl9vcmlnaW5hbCA9IG9sZFZOb2RlLl9vcmlnaW5hbDtcblx0XHRuZXdWTm9kZS5fcGFyZW50Ll9jaGlsZHJlbltuZXdWTm9kZS5faW5kZXhdID0gbmV3Vk5vZGU7XG5cdFx0Y29tbWl0Um9vdChjb21taXRRdWV1ZSwgbmV3Vk5vZGUsIHJlZlF1ZXVlKTtcblxuXHRcdGlmIChuZXdWTm9kZS5fZG9tICE9IG9sZERvbSkge1xuXHRcdFx0dXBkYXRlUGFyZW50RG9tUG9pbnRlcnMobmV3Vk5vZGUpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZVBhcmVudERvbVBvaW50ZXJzKHZub2RlKSB7XG5cdGlmICgodm5vZGUgPSB2bm9kZS5fcGFyZW50KSAhPSBudWxsICYmIHZub2RlLl9jb21wb25lbnQgIT0gbnVsbCkge1xuXHRcdHZub2RlLl9kb20gPSB2bm9kZS5fY29tcG9uZW50LmJhc2UgPSBudWxsO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdm5vZGUuX2NoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgY2hpbGQgPSB2bm9kZS5fY2hpbGRyZW5baV07XG5cdFx0XHRpZiAoY2hpbGQgIT0gbnVsbCAmJiBjaGlsZC5fZG9tICE9IG51bGwpIHtcblx0XHRcdFx0dm5vZGUuX2RvbSA9IHZub2RlLl9jb21wb25lbnQuYmFzZSA9IGNoaWxkLl9kb207XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB1cGRhdGVQYXJlbnREb21Qb2ludGVycyh2bm9kZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGUgcmVuZGVyIHF1ZXVlXG4gKiBAdHlwZSB7QXJyYXk8Q29tcG9uZW50Pn1cbiAqL1xubGV0IHJlcmVuZGVyUXVldWUgPSBbXTtcblxuLypcbiAqIFRoZSB2YWx1ZSBvZiBgQ29tcG9uZW50LmRlYm91bmNlYCBtdXN0IGFzeW5jaHJvbm91c2x5IGludm9rZSB0aGUgcGFzc2VkIGluIGNhbGxiYWNrLiBJdCBpc1xuICogaW1wb3J0YW50IHRoYXQgY29udHJpYnV0b3JzIHRvIFByZWFjdCBjYW4gY29uc2lzdGVudGx5IHJlYXNvbiBhYm91dCB3aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAsIGV0Yy5cbiAqIGRvLCBhbmQgd2hlbiB0aGVpciBlZmZlY3RzIHdpbGwgYmUgYXBwbGllZC4gU2VlIHRoZSBsaW5rcyBiZWxvdyBmb3Igc29tZSBmdXJ0aGVyIHJlYWRpbmcgb24gZGVzaWduaW5nXG4gKiBhc3luY2hyb25vdXMgQVBJcy5cbiAqICogW0Rlc2lnbmluZyBBUElzIGZvciBBc3luY2hyb255XShodHRwczovL2Jsb2cuaXpzLm1lLzIwMTMvMDgvZGVzaWduaW5nLWFwaXMtZm9yLWFzeW5jaHJvbnkpXG4gKiAqIFtDYWxsYmFja3Mgc3luY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91c10oaHR0cHM6Ly9ibG9nLm9tZXRlci5jb20vMjAxMS8wNy8yNC9jYWxsYmFja3Mtc3luY2hyb25vdXMtYW5kLWFzeW5jaHJvbm91cy8pXG4gKi9cblxubGV0IHByZXZEZWJvdW5jZTtcblxuY29uc3QgZGVmZXIgPVxuXHR0eXBlb2YgUHJvbWlzZSA9PSAnZnVuY3Rpb24nXG5cdFx0PyBQcm9taXNlLnByb3RvdHlwZS50aGVuLmJpbmQoUHJvbWlzZS5yZXNvbHZlKCkpXG5cdFx0OiBzZXRUaW1lb3V0O1xuXG4vKipcbiAqIEVucXVldWUgYSByZXJlbmRlciBvZiBhIGNvbXBvbmVudFxuICogQHBhcmFtIHtDb21wb25lbnR9IGMgVGhlIGNvbXBvbmVudCB0byByZXJlbmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5xdWV1ZVJlbmRlcihjKSB7XG5cdGlmIChcblx0XHQoIWMuX2RpcnR5ICYmXG5cdFx0XHQoYy5fZGlydHkgPSB0cnVlKSAmJlxuXHRcdFx0cmVyZW5kZXJRdWV1ZS5wdXNoKGMpICYmXG5cdFx0XHQhcHJvY2Vzcy5fcmVyZW5kZXJDb3VudCsrKSB8fFxuXHRcdHByZXZEZWJvdW5jZSAhPT0gb3B0aW9ucy5kZWJvdW5jZVJlbmRlcmluZ1xuXHQpIHtcblx0XHRwcmV2RGVib3VuY2UgPSBvcHRpb25zLmRlYm91bmNlUmVuZGVyaW5nO1xuXHRcdChwcmV2RGVib3VuY2UgfHwgZGVmZXIpKHByb2Nlc3MpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21wb25lbnR9IGFcbiAqIEBwYXJhbSB7Q29tcG9uZW50fSBiXG4gKi9cbmNvbnN0IGRlcHRoU29ydCA9IChhLCBiKSA9PiBhLl92bm9kZS5fZGVwdGggLSBiLl92bm9kZS5fZGVwdGg7XG5cbi8qKiBGbHVzaCB0aGUgcmVuZGVyIHF1ZXVlIGJ5IHJlcmVuZGVyaW5nIGFsbCBxdWV1ZWQgY29tcG9uZW50cyAqL1xuZnVuY3Rpb24gcHJvY2VzcygpIHtcblx0bGV0IGM7XG5cdHJlcmVuZGVyUXVldWUuc29ydChkZXB0aFNvcnQpO1xuXHQvLyBEb24ndCB1cGRhdGUgYHJlbmRlckNvdW50YCB5ZXQuIEtlZXAgaXRzIHZhbHVlIG5vbi16ZXJvIHRvIHByZXZlbnQgdW5uZWNlc3Nhcnlcblx0Ly8gcHJvY2VzcygpIGNhbGxzIGZyb20gZ2V0dGluZyBzY2hlZHVsZWQgd2hpbGUgYHF1ZXVlYCBpcyBzdGlsbCBiZWluZyBjb25zdW1lZC5cblx0d2hpbGUgKChjID0gcmVyZW5kZXJRdWV1ZS5zaGlmdCgpKSkge1xuXHRcdGlmIChjLl9kaXJ0eSkge1xuXHRcdFx0bGV0IHJlbmRlclF1ZXVlTGVuZ3RoID0gcmVyZW5kZXJRdWV1ZS5sZW5ndGg7XG5cdFx0XHRyZW5kZXJDb21wb25lbnQoYyk7XG5cdFx0XHRpZiAocmVyZW5kZXJRdWV1ZS5sZW5ndGggPiByZW5kZXJRdWV1ZUxlbmd0aCkge1xuXHRcdFx0XHQvLyBXaGVuIGkuZS4gcmVyZW5kZXJpbmcgYSBwcm92aWRlciBhZGRpdGlvbmFsIG5ldyBpdGVtcyBjYW4gYmUgaW5qZWN0ZWQsIHdlIHdhbnQgdG9cblx0XHRcdFx0Ly8ga2VlcCB0aGUgb3JkZXIgZnJvbSB0b3AgdG8gYm90dG9tIHdpdGggdGhvc2UgbmV3IGl0ZW1zIHNvIHdlIGNhbiBoYW5kbGUgdGhlbSBpbiBhXG5cdFx0XHRcdC8vIHNpbmdsZSBwYXNzXG5cdFx0XHRcdHJlcmVuZGVyUXVldWUuc29ydChkZXB0aFNvcnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRwcm9jZXNzLl9yZXJlbmRlckNvdW50ID0gMDtcbn1cblxucHJvY2Vzcy5fcmVyZW5kZXJDb3VudCA9IDA7XG4iLCAiaW1wb3J0IHsgSVNfTk9OX0RJTUVOU0lPTkFMIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4uL29wdGlvbnMnO1xuXG5mdW5jdGlvbiBzZXRTdHlsZShzdHlsZSwga2V5LCB2YWx1ZSkge1xuXHRpZiAoa2V5WzBdID09PSAnLScpIHtcblx0XHRzdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlKTtcblx0fSBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKSB7XG5cdFx0c3R5bGVba2V5XSA9ICcnO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnbnVtYmVyJyB8fCBJU19OT05fRElNRU5TSU9OQUwudGVzdChrZXkpKSB7XG5cdFx0c3R5bGVba2V5XSA9IHZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdHN0eWxlW2tleV0gPSB2YWx1ZSArICdweCc7XG5cdH1cbn1cblxuLy8gQSBsb2dpY2FsIGNsb2NrIHRvIHNvbHZlIGlzc3VlcyBsaWtlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmVhY3Rqcy9wcmVhY3QvaXNzdWVzLzM5MjcuXG4vLyBXaGVuIHRoZSBET00gcGVyZm9ybXMgYW4gZXZlbnQgaXQgbGVhdmVzIG1pY3JvLXRpY2tzIGluIGJldHdlZW4gYnViYmxpbmcgdXAgd2hpY2ggbWVhbnMgdGhhdFxuLy8gYW4gZXZlbnQgY2FuIHRyaWdnZXIgb24gYSBuZXdseSByZWF0ZWQgRE9NLW5vZGUgd2hpbGUgdGhlIGV2ZW50IGJ1YmJsZXMgdXAuXG4vL1xuLy8gT3JpZ2luYWxseSBpbnNwaXJlZCBieSBWdWVcbi8vIChodHRwczovL2dpdGh1Yi5jb20vdnVlanMvY29yZS9ibG9iL2NhZWI4YTY4ODExYTFiMGY3OS9wYWNrYWdlcy9ydW50aW1lLWRvbS9zcmMvbW9kdWxlcy9ldmVudHMudHMjTDkwLUwxMDEpLFxuLy8gYnV0IG1vZGlmaWVkIHRvIHVzZSBhIGxvZ2ljYWwgY2xvY2sgaW5zdGVhZCBvZiBEYXRlLm5vdygpIGluIGNhc2UgZXZlbnQgaGFuZGxlcnMgZ2V0IGF0dGFjaGVkXG4vLyBhbmQgZXZlbnRzIGdldCBkaXNwYXRjaGVkIGR1cmluZyB0aGUgc2FtZSBtaWxsaXNlY29uZC5cbi8vXG4vLyBUaGUgY2xvY2sgaXMgaW5jcmVtZW50ZWQgYWZ0ZXIgZWFjaCBuZXcgZXZlbnQgZGlzcGF0Y2guIFRoaXMgYWxsb3dzIDEgMDAwIDAwMCBuZXcgZXZlbnRzXG4vLyBwZXIgc2Vjb25kIGZvciBvdmVyIDI4MCB5ZWFycyBiZWZvcmUgdGhlIHZhbHVlIHJlYWNoZXMgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgKDIqKjUzIC0gMSkuXG5sZXQgZXZlbnRDbG9jayA9IDA7XG5cbi8qKlxuICogU2V0IGEgcHJvcGVydHkgdmFsdWUgb24gYSBET00gbm9kZVxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBkb20gVGhlIERPTSBub2RlIHRvIG1vZGlmeVxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHNldFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0b1xuICogQHBhcmFtIHsqfSBvbGRWYWx1ZSBUaGUgb2xkIHZhbHVlIHRoZSBwcm9wZXJ0eSBoYWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgV2hldGhlciBvciBub3QgdGhpcyBET00gbm9kZSBpcyBhbiBTVkcgbm9kZSBvciBub3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFByb3BlcnR5KGRvbSwgbmFtZSwgdmFsdWUsIG9sZFZhbHVlLCBuYW1lc3BhY2UpIHtcblx0bGV0IHVzZUNhcHR1cmU7XG5cblx0bzogaWYgKG5hbWUgPT09ICdzdHlsZScpIHtcblx0XHRpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0XHRkb20uc3R5bGUuY3NzVGV4dCA9IHZhbHVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAodHlwZW9mIG9sZFZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGRvbS5zdHlsZS5jc3NUZXh0ID0gb2xkVmFsdWUgPSAnJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKG9sZFZhbHVlKSB7XG5cdFx0XHRcdGZvciAobmFtZSBpbiBvbGRWYWx1ZSkge1xuXHRcdFx0XHRcdGlmICghKHZhbHVlICYmIG5hbWUgaW4gdmFsdWUpKSB7XG5cdFx0XHRcdFx0XHRzZXRTdHlsZShkb20uc3R5bGUsIG5hbWUsICcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdGZvciAobmFtZSBpbiB2YWx1ZSkge1xuXHRcdFx0XHRcdGlmICghb2xkVmFsdWUgfHwgdmFsdWVbbmFtZV0gIT09IG9sZFZhbHVlW25hbWVdKSB7XG5cdFx0XHRcdFx0XHRzZXRTdHlsZShkb20uc3R5bGUsIG5hbWUsIHZhbHVlW25hbWVdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly8gQmVuY2htYXJrIGZvciBjb21wYXJpc29uOiBodHRwczovL2VzYmVuY2guY29tL2JlbmNoLzU3NGM5NTRiZGI5NjViOWEwMDk2NWFjNlxuXHRlbHNlIGlmIChuYW1lWzBdID09PSAnbycgJiYgbmFtZVsxXSA9PT0gJ24nKSB7XG5cdFx0dXNlQ2FwdHVyZSA9XG5cdFx0XHRuYW1lICE9PSAobmFtZSA9IG5hbWUucmVwbGFjZSgvKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvaSwgJyQxJykpO1xuXG5cdFx0Ly8gSW5mZXIgY29ycmVjdCBjYXNpbmcgZm9yIERPTSBidWlsdC1pbiBldmVudHM6XG5cdFx0aWYgKFxuXHRcdFx0bmFtZS50b0xvd2VyQ2FzZSgpIGluIGRvbSB8fFxuXHRcdFx0bmFtZSA9PT0gJ29uRm9jdXNPdXQnIHx8XG5cdFx0XHRuYW1lID09PSAnb25Gb2N1c0luJ1xuXHRcdClcblx0XHRcdG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik7XG5cdFx0ZWxzZSBuYW1lID0gbmFtZS5zbGljZSgyKTtcblxuXHRcdGlmICghZG9tLl9saXN0ZW5lcnMpIGRvbS5fbGlzdGVuZXJzID0ge307XG5cdFx0ZG9tLl9saXN0ZW5lcnNbbmFtZSArIHVzZUNhcHR1cmVdID0gdmFsdWU7XG5cblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdGlmICghb2xkVmFsdWUpIHtcblx0XHRcdFx0dmFsdWUuX2F0dGFjaGVkID0gZXZlbnRDbG9jaztcblx0XHRcdFx0ZG9tLmFkZEV2ZW50TGlzdGVuZXIoXG5cdFx0XHRcdFx0bmFtZSxcblx0XHRcdFx0XHR1c2VDYXB0dXJlID8gZXZlbnRQcm94eUNhcHR1cmUgOiBldmVudFByb3h5LFxuXHRcdFx0XHRcdHVzZUNhcHR1cmVcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHZhbHVlLl9hdHRhY2hlZCA9IG9sZFZhbHVlLl9hdHRhY2hlZDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0ZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdHVzZUNhcHR1cmUgPyBldmVudFByb3h5Q2FwdHVyZSA6IGV2ZW50UHJveHksXG5cdFx0XHRcdHVzZUNhcHR1cmVcblx0XHRcdCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGlmIChuYW1lc3BhY2UgPT0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJykge1xuXHRcdFx0Ly8gTm9ybWFsaXplIGluY29ycmVjdCBwcm9wIHVzYWdlIGZvciBTVkc6XG5cdFx0XHQvLyAtIHhsaW5rOmhyZWYgLyB4bGlua0hyZWYgLS0+IGhyZWYgKHhsaW5rOmhyZWYgd2FzIHJlbW92ZWQgZnJvbSBTVkcgYW5kIGlzbid0IG5lZWRlZClcblx0XHRcdC8vIC0gY2xhc3NOYW1lIC0tPiBjbGFzc1xuXHRcdFx0bmFtZSA9IG5hbWUucmVwbGFjZSgveGxpbmsoSHw6aCkvLCAnaCcpLnJlcGxhY2UoL3NOYW1lJC8sICdzJyk7XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdG5hbWUgIT0gJ3dpZHRoJyAmJlxuXHRcdFx0bmFtZSAhPSAnaGVpZ2h0JyAmJlxuXHRcdFx0bmFtZSAhPSAnaHJlZicgJiZcblx0XHRcdG5hbWUgIT0gJ2xpc3QnICYmXG5cdFx0XHRuYW1lICE9ICdmb3JtJyAmJlxuXHRcdFx0Ly8gRGVmYXVsdCB2YWx1ZSBpbiBicm93c2VycyBpcyBgLTFgIGFuZCBhbiBlbXB0eSBzdHJpbmcgaXNcblx0XHRcdC8vIGNhc3QgdG8gYDBgIGluc3RlYWRcblx0XHRcdG5hbWUgIT0gJ3RhYkluZGV4JyAmJlxuXHRcdFx0bmFtZSAhPSAnZG93bmxvYWQnICYmXG5cdFx0XHRuYW1lICE9ICdyb3dTcGFuJyAmJlxuXHRcdFx0bmFtZSAhPSAnY29sU3BhbicgJiZcblx0XHRcdG5hbWUgIT0gJ3JvbGUnICYmXG5cdFx0XHRuYW1lICE9ICdwb3BvdmVyJyAmJlxuXHRcdFx0bmFtZSBpbiBkb21cblx0XHQpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGRvbVtuYW1lXSA9IHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlO1xuXHRcdFx0XHQvLyBsYWJlbGxlZCBicmVhayBpcyAxYiBzbWFsbGVyIGhlcmUgdGhhbiBhIHJldHVybiBzdGF0ZW1lbnQgKHNvcnJ5KVxuXHRcdFx0XHRicmVhayBvO1xuXHRcdFx0fSBjYXRjaCAoZSkge31cblx0XHR9XG5cblx0XHQvLyBhcmlhLSBhbmQgZGF0YS0gYXR0cmlidXRlcyBoYXZlIG5vIGJvb2xlYW4gcmVwcmVzZW50YXRpb24uXG5cdFx0Ly8gQSBgZmFsc2VgIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBhdHRyaWJ1dGUgbm90IGJlaW5nXG5cdFx0Ly8gcHJlc2VudCwgc28gd2UgY2FuJ3QgcmVtb3ZlIGl0LiBGb3Igbm9uLWJvb2xlYW4gYXJpYVxuXHRcdC8vIGF0dHJpYnV0ZXMgd2UgY291bGQgdHJlYXQgZmFsc2UgYXMgYSByZW1vdmFsLCBidXQgdGhlXG5cdFx0Ly8gYW1vdW50IG9mIGV4Y2VwdGlvbnMgd291bGQgY29zdCB0b28gbWFueSBieXRlcy4gT24gdG9wIG9mXG5cdFx0Ly8gdGhhdCBvdGhlciBmcmFtZXdvcmtzIGdlbmVyYWxseSBzdHJpbmdpZnkgYGZhbHNlYC5cblxuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Ly8gbmV2ZXIgc2VyaWFsaXplIGZ1bmN0aW9ucyBhcyBhdHRyaWJ1dGUgdmFsdWVzXG5cdFx0fSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsICYmICh2YWx1ZSAhPT0gZmFsc2UgfHwgbmFtZVs0XSA9PT0gJy0nKSkge1xuXHRcdFx0ZG9tLnNldEF0dHJpYnV0ZShuYW1lLCBuYW1lID09ICdwb3BvdmVyJyAmJiB2YWx1ZSA9PSB0cnVlID8gJycgOiB2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvbS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV2ZW50IHByb3h5IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSB1c2VDYXB0dXJlIElzIHRoZSBldmVudCBoYW5kbGVyIGZvciB0aGUgY2FwdHVyZSBwaGFzZS5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50UHJveHkodXNlQ2FwdHVyZSkge1xuXHQvKipcblx0ICogUHJveHkgYW4gZXZlbnQgdG8gaG9va2VkIGV2ZW50IGhhbmRsZXJzXG5cdCAqIEBwYXJhbSB7UHJlYWN0RXZlbnR9IGUgVGhlIGV2ZW50IG9iamVjdCBmcm9tIHRoZSBicm93c2VyXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRyZXR1cm4gZnVuY3Rpb24gKGUpIHtcblx0XHRpZiAodGhpcy5fbGlzdGVuZXJzKSB7XG5cdFx0XHRjb25zdCBldmVudEhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbZS50eXBlICsgdXNlQ2FwdHVyZV07XG5cdFx0XHRpZiAoZS5fZGlzcGF0Y2hlZCA9PSBudWxsKSB7XG5cdFx0XHRcdGUuX2Rpc3BhdGNoZWQgPSBldmVudENsb2NrKys7XG5cblx0XHRcdFx0Ly8gV2hlbiBgZS5fZGlzcGF0Y2hlZGAgaXMgc21hbGxlciB0aGFuIHRoZSB0aW1lIHdoZW4gdGhlIHRhcmdldGVkIGV2ZW50XG5cdFx0XHRcdC8vIGhhbmRsZXIgd2FzIGF0dGFjaGVkIHdlIGtub3cgd2UgaGF2ZSBidWJibGVkIHVwIHRvIGFuIGVsZW1lbnQgdGhhdCB3YXMgYWRkZWRcblx0XHRcdFx0Ly8gZHVyaW5nIHBhdGNoaW5nIHRoZSBET00uXG5cdFx0XHR9IGVsc2UgaWYgKGUuX2Rpc3BhdGNoZWQgPCBldmVudEhhbmRsZXIuX2F0dGFjaGVkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHJldHVybiBldmVudEhhbmRsZXIob3B0aW9ucy5ldmVudCA/IG9wdGlvbnMuZXZlbnQoZSkgOiBlKTtcblx0XHR9XG5cdH07XG59XG5cbmNvbnN0IGV2ZW50UHJveHkgPSBjcmVhdGVFdmVudFByb3h5KGZhbHNlKTtcbmNvbnN0IGV2ZW50UHJveHlDYXB0dXJlID0gY3JlYXRlRXZlbnRQcm94eSh0cnVlKTtcbiIsICJpbXBvcnQgeyBlbnF1ZXVlUmVuZGVyIH0gZnJvbSAnLi9jb21wb25lbnQnO1xuXG5leHBvcnQgbGV0IGkgPSAwO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUsIGNvbnRleHRJZCkge1xuXHRjb250ZXh0SWQgPSAnX19jQycgKyBpKys7XG5cblx0Y29uc3QgY29udGV4dCA9IHtcblx0XHRfaWQ6IGNvbnRleHRJZCxcblx0XHRfZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWUsXG5cdFx0LyoqIEB0eXBlIHtGdW5jdGlvbkNvbXBvbmVudH0gKi9cblx0XHRDb25zdW1lcihwcm9wcywgY29udGV4dFZhbHVlKSB7XG5cdFx0XHQvLyByZXR1cm4gcHJvcHMuY2hpbGRyZW4oXG5cdFx0XHQvLyBcdGNvbnRleHRbY29udGV4dElkXSA/IGNvbnRleHRbY29udGV4dElkXS5wcm9wcy52YWx1ZSA6IGRlZmF1bHRWYWx1ZVxuXHRcdFx0Ly8gKTtcblx0XHRcdHJldHVybiBwcm9wcy5jaGlsZHJlbihjb250ZXh0VmFsdWUpO1xuXHRcdH0sXG5cdFx0LyoqIEB0eXBlIHtGdW5jdGlvbkNvbXBvbmVudH0gKi9cblx0XHRQcm92aWRlcihwcm9wcykge1xuXHRcdFx0aWYgKCF0aGlzLmdldENoaWxkQ29udGV4dCkge1xuXHRcdFx0XHQvKiogQHR5cGUge1NldDxDb21wb25lbnQ+IHwgbnVsbH0gKi9cblx0XHRcdFx0bGV0IHN1YnMgPSBuZXcgU2V0KCk7XG5cdFx0XHRcdGxldCBjdHggPSB7fTtcblx0XHRcdFx0Y3R4W2NvbnRleHRJZF0gPSB0aGlzO1xuXG5cdFx0XHRcdHRoaXMuZ2V0Q2hpbGRDb250ZXh0ID0gKCkgPT4gY3R4O1xuXG5cdFx0XHRcdHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQgPSAoKSA9PiB7XG5cdFx0XHRcdFx0c3VicyA9IG51bGw7XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiAoX3Byb3BzKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucHJvcHMudmFsdWUgIT09IF9wcm9wcy52YWx1ZSkge1xuXHRcdFx0XHRcdFx0c3Vicy5mb3JFYWNoKGMgPT4ge1xuXHRcdFx0XHRcdFx0XHRjLl9mb3JjZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdGVucXVldWVSZW5kZXIoYyk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5zdWIgPSBjID0+IHtcblx0XHRcdFx0XHRzdWJzLmFkZChjKTtcblx0XHRcdFx0XHRsZXQgb2xkID0gYy5jb21wb25lbnRXaWxsVW5tb3VudDtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHN1YnMpIHtcblx0XHRcdFx0XHRcdFx0c3Vicy5kZWxldGUoYyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAob2xkKSBvbGQuY2FsbChjKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcHJvcHMuY2hpbGRyZW47XG5cdFx0fVxuXHR9O1xuXG5cdC8vIERldnRvb2xzIG5lZWRzIGFjY2VzcyB0byB0aGUgY29udGV4dCBvYmplY3Qgd2hlbiBpdFxuXHQvLyBlbmNvdW50ZXJzIGEgUHJvdmlkZXIuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnRcblx0Ly8gc2V0dGluZyBgZGlzcGxheU5hbWVgIG9uIHRoZSBjb250ZXh0IG9iamVjdCBpbnN0ZWFkXG5cdC8vIG9mIG9uIHRoZSBjb21wb25lbnQgaXRzZWxmLiBTZWU6XG5cdC8vIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9jb250ZXh0Lmh0bWwjY29udGV4dGRpc3BsYXluYW1lXG5cblx0cmV0dXJuIChjb250ZXh0LlByb3ZpZGVyLl9jb250ZXh0UmVmID0gY29udGV4dC5Db25zdW1lci5jb250ZXh0VHlwZSA9XG5cdFx0Y29udGV4dCk7XG59XG4iLCAiaW1wb3J0IHsgZGlmZiwgdW5tb3VudCwgYXBwbHlSZWYgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IGNyZWF0ZVZOb2RlLCBGcmFnbWVudCB9IGZyb20gJy4uL2NyZWF0ZS1lbGVtZW50JztcbmltcG9ydCB7IEVNUFRZX09CSiwgRU1QVFlfQVJSLCBJTlNFUlRfVk5PREUsIE1BVENIRUQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgZ2V0RG9tU2libGluZyB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5cbi8qKlxuICogRGlmZiB0aGUgY2hpbGRyZW4gb2YgYSB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gcGFyZW50RG9tIFRoZSBET00gZWxlbWVudCB3aG9zZSBjaGlsZHJlbiBhcmUgYmVpbmdcbiAqIGRpZmZlZFxuICogQHBhcmFtIHtDb21wb25lbnRDaGlsZHJlbltdfSByZW5kZXJSZXN1bHRcbiAqIEBwYXJhbSB7Vk5vZGV9IG5ld1BhcmVudFZOb2RlIFRoZSBuZXcgdmlydHVhbCBub2RlIHdob3NlIGNoaWxkcmVuIHNob3VsZCBiZVxuICogZGlmZidlZCBhZ2FpbnN0IG9sZFBhcmVudFZOb2RlXG4gKiBAcGFyYW0ge1ZOb2RlfSBvbGRQYXJlbnRWTm9kZSBUaGUgb2xkIHZpcnR1YWwgbm9kZSB3aG9zZSBjaGlsZHJlbiBzaG91bGQgYmVcbiAqIGRpZmYnZWQgYWdhaW5zdCBuZXdQYXJlbnRWTm9kZVxuICogQHBhcmFtIHtvYmplY3R9IGdsb2JhbENvbnRleHQgVGhlIGN1cnJlbnQgY29udGV4dCBvYmplY3QgLSBtb2RpZmllZCBieVxuICogZ2V0Q2hpbGRDb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZXNwYWNlIEN1cnJlbnQgbmFtZXNwYWNlIG9mIHRoZSBET00gbm9kZSAoSFRNTCwgU1ZHLCBvciBNYXRoTUwpXG4gKiBAcGFyYW0ge0FycmF5PFByZWFjdEVsZW1lbnQ+fSBleGNlc3NEb21DaGlsZHJlblxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSBjYWxsYmFja3NcbiAqIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IG9sZERvbSBUaGUgY3VycmVudCBhdHRhY2hlZCBET00gZWxlbWVudCBhbnkgbmV3IGRvbVxuICogZWxlbWVudHMgc2hvdWxkIGJlIHBsYWNlZCBhcm91bmQuIExpa2VseSBgbnVsbGAgb24gZmlyc3QgcmVuZGVyIChleGNlcHQgd2hlblxuICogaHlkcmF0aW5nKS4gQ2FuIGJlIGEgc2libGluZyBET00gZWxlbWVudCB3aGVuIGRpZmZpbmcgRnJhZ21lbnRzIHRoYXQgaGF2ZVxuICogc2libGluZ3MuIEluIG1vc3QgY2FzZXMsIGl0IHN0YXJ0cyBvdXQgYXMgYG9sZENoaWxkcmVuWzBdLl9kb21gLlxuICogQHBhcmFtIHtib29sZWFufSBpc0h5ZHJhdGluZyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgaW4gaHlkcmF0aW9uXG4gKiBAcGFyYW0ge2FueVtdfSByZWZRdWV1ZSBhbiBhcnJheSBvZiBlbGVtZW50cyBuZWVkZWQgdG8gaW52b2tlIHJlZnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGlsZHJlbihcblx0cGFyZW50RG9tLFxuXHRyZW5kZXJSZXN1bHQsXG5cdG5ld1BhcmVudFZOb2RlLFxuXHRvbGRQYXJlbnRWTm9kZSxcblx0Z2xvYmFsQ29udGV4dCxcblx0bmFtZXNwYWNlLFxuXHRleGNlc3NEb21DaGlsZHJlbixcblx0Y29tbWl0UXVldWUsXG5cdG9sZERvbSxcblx0aXNIeWRyYXRpbmcsXG5cdHJlZlF1ZXVlXG4pIHtcblx0bGV0IGksXG5cdFx0LyoqIEB0eXBlIHtWTm9kZX0gKi9cblx0XHRvbGRWTm9kZSxcblx0XHQvKiogQHR5cGUge1ZOb2RlfSAqL1xuXHRcdGNoaWxkVk5vZGUsXG5cdFx0LyoqIEB0eXBlIHtQcmVhY3RFbGVtZW50fSAqL1xuXHRcdG5ld0RvbSxcblx0XHQvKiogQHR5cGUge1ByZWFjdEVsZW1lbnR9ICovXG5cdFx0Zmlyc3RDaGlsZERvbTtcblxuXHQvLyBUaGlzIGlzIGEgY29tcHJlc3Npb24gb2Ygb2xkUGFyZW50Vk5vZGUhPW51bGwgJiYgb2xkUGFyZW50Vk5vZGUgIT0gRU1QVFlfT0JKICYmIG9sZFBhcmVudFZOb2RlLl9jaGlsZHJlbiB8fCBFTVBUWV9BUlJcblx0Ly8gYXMgRU1QVFlfT0JKLl9jaGlsZHJlbiBzaG91bGQgYmUgYHVuZGVmaW5lZGAuXG5cdC8qKiBAdHlwZSB7Vk5vZGVbXX0gKi9cblx0bGV0IG9sZENoaWxkcmVuID0gKG9sZFBhcmVudFZOb2RlICYmIG9sZFBhcmVudFZOb2RlLl9jaGlsZHJlbikgfHwgRU1QVFlfQVJSO1xuXG5cdGxldCBuZXdDaGlsZHJlbkxlbmd0aCA9IHJlbmRlclJlc3VsdC5sZW5ndGg7XG5cblx0bmV3UGFyZW50Vk5vZGUuX25leHREb20gPSBvbGREb207XG5cdGNvbnN0cnVjdE5ld0NoaWxkcmVuQXJyYXkobmV3UGFyZW50Vk5vZGUsIHJlbmRlclJlc3VsdCwgb2xkQ2hpbGRyZW4pO1xuXHRvbGREb20gPSBuZXdQYXJlbnRWTm9kZS5fbmV4dERvbTtcblxuXHRmb3IgKGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW5MZW5ndGg7IGkrKykge1xuXHRcdGNoaWxkVk5vZGUgPSBuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW5baV07XG5cdFx0aWYgKGNoaWxkVk5vZGUgPT0gbnVsbCkgY29udGludWU7XG5cblx0XHQvLyBBdCB0aGlzIHBvaW50LCBjb25zdHJ1Y3ROZXdDaGlsZHJlbkFycmF5IGhhcyBhc3NpZ25lZCBfaW5kZXggdG8gYmUgdGhlXG5cdFx0Ly8gbWF0Y2hpbmdJbmRleCBmb3IgdGhpcyBWTm9kZSdzIG9sZFZOb2RlIChvciAtMSBpZiB0aGVyZSBpcyBubyBvbGRWTm9kZSkuXG5cdFx0aWYgKGNoaWxkVk5vZGUuX2luZGV4ID09PSAtMSkge1xuXHRcdFx0b2xkVk5vZGUgPSBFTVBUWV9PQko7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5bY2hpbGRWTm9kZS5faW5kZXhdIHx8IEVNUFRZX09CSjtcblx0XHR9XG5cblx0XHQvLyBVcGRhdGUgY2hpbGRWTm9kZS5faW5kZXggdG8gaXRzIGZpbmFsIGluZGV4XG5cdFx0Y2hpbGRWTm9kZS5faW5kZXggPSBpO1xuXG5cdFx0Ly8gTW9ycGggdGhlIG9sZCBlbGVtZW50IGludG8gdGhlIG5ldyBvbmUsIGJ1dCBkb24ndCBhcHBlbmQgaXQgdG8gdGhlIGRvbSB5ZXRcblx0XHRkaWZmKFxuXHRcdFx0cGFyZW50RG9tLFxuXHRcdFx0Y2hpbGRWTm9kZSxcblx0XHRcdG9sZFZOb2RlLFxuXHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdG5hbWVzcGFjZSxcblx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRvbGREb20sXG5cdFx0XHRpc0h5ZHJhdGluZyxcblx0XHRcdHJlZlF1ZXVlXG5cdFx0KTtcblxuXHRcdC8vIEFkanVzdCBET00gbm9kZXNcblx0XHRuZXdEb20gPSBjaGlsZFZOb2RlLl9kb207XG5cdFx0aWYgKGNoaWxkVk5vZGUucmVmICYmIG9sZFZOb2RlLnJlZiAhPSBjaGlsZFZOb2RlLnJlZikge1xuXHRcdFx0aWYgKG9sZFZOb2RlLnJlZikge1xuXHRcdFx0XHRhcHBseVJlZihvbGRWTm9kZS5yZWYsIG51bGwsIGNoaWxkVk5vZGUpO1xuXHRcdFx0fVxuXHRcdFx0cmVmUXVldWUucHVzaChcblx0XHRcdFx0Y2hpbGRWTm9kZS5yZWYsXG5cdFx0XHRcdGNoaWxkVk5vZGUuX2NvbXBvbmVudCB8fCBuZXdEb20sXG5cdFx0XHRcdGNoaWxkVk5vZGVcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0aWYgKGZpcnN0Q2hpbGREb20gPT0gbnVsbCAmJiBuZXdEb20gIT0gbnVsbCkge1xuXHRcdFx0Zmlyc3RDaGlsZERvbSA9IG5ld0RvbTtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHRjaGlsZFZOb2RlLl9mbGFncyAmIElOU0VSVF9WTk9ERSB8fFxuXHRcdFx0b2xkVk5vZGUuX2NoaWxkcmVuID09PSBjaGlsZFZOb2RlLl9jaGlsZHJlblxuXHRcdCkge1xuXHRcdFx0b2xkRG9tID0gaW5zZXJ0KGNoaWxkVk5vZGUsIG9sZERvbSwgcGFyZW50RG9tKTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUudHlwZSA9PSAnZnVuY3Rpb24nICYmXG5cdFx0XHRjaGlsZFZOb2RlLl9uZXh0RG9tICE9PSB1bmRlZmluZWRcblx0XHQpIHtcblx0XHRcdC8vIFNpbmNlIEZyYWdtZW50cyBvciBjb21wb25lbnRzIHRoYXQgcmV0dXJuIEZyYWdtZW50IGxpa2UgVk5vZGVzIGNhblxuXHRcdFx0Ly8gY29udGFpbiBtdWx0aXBsZSBET00gbm9kZXMgYXMgdGhlIHNhbWUgbGV2ZWwsIGNvbnRpbnVlIHRoZSBkaWZmIGZyb21cblx0XHRcdC8vIHRoZSBzaWJsaW5nIG9mIGxhc3QgRE9NIGNoaWxkIG9mIHRoaXMgY2hpbGQgVk5vZGVcblx0XHRcdG9sZERvbSA9IGNoaWxkVk5vZGUuX25leHREb207XG5cdFx0fSBlbHNlIGlmIChuZXdEb20pIHtcblx0XHRcdG9sZERvbSA9IG5ld0RvbS5uZXh0U2libGluZztcblx0XHR9XG5cblx0XHQvLyBFYWdlcmx5IGNsZWFudXAgX25leHREb20uIFdlIGRvbid0IG5lZWQgdG8gcGVyc2lzdCB0aGUgdmFsdWUgYmVjYXVzZSBpdFxuXHRcdC8vIGlzIG9ubHkgdXNlZCBieSBgZGlmZkNoaWxkcmVuYCB0byBkZXRlcm1pbmUgd2hlcmUgdG8gcmVzdW1lIHRoZSBkaWZmXG5cdFx0Ly8gYWZ0ZXIgZGlmZmluZyBDb21wb25lbnRzIGFuZCBGcmFnbWVudHMuIE9uY2Ugd2Ugc3RvcmUgaXQgdGhlIG5leHRET01cblx0XHQvLyBsb2NhbCB2YXIsIHdlIGNhbiBjbGVhbiB1cCB0aGUgcHJvcGVydHkuIEFsc28gcHJldmVudHMgdXMgaGFuZ2luZyBvbiB0b1xuXHRcdC8vIERPTSBub2RlcyB0aGF0IG1heSBoYXZlIGJlZW4gdW5tb3VudGVkLlxuXHRcdGNoaWxkVk5vZGUuX25leHREb20gPSB1bmRlZmluZWQ7XG5cblx0XHQvLyBVbnNldCBkaWZmaW5nIGZsYWdzXG5cdFx0Y2hpbGRWTm9kZS5fZmxhZ3MgJj0gfihJTlNFUlRfVk5PREUgfCBNQVRDSEVEKTtcblx0fVxuXG5cdC8vIFRPRE86IFdpdGggbmV3IGNoaWxkIGRpZmZpbmcgYWxnbywgY29uc2lkZXIgYWx0IHdheXMgdG8gZGlmZiBGcmFnbWVudHMuXG5cdC8vIFN1Y2ggYXMgZHJvcHBpbmcgb2xkRG9tIGFuZCBtb3ZpbmcgZnJhZ21lbnRzIGluIHBsYWNlXG5cdC8vXG5cdC8vIEJlY2F1c2UgdGhlIG5ld1BhcmVudFZOb2RlIGlzIEZyYWdtZW50LWxpa2UsIHdlIG5lZWQgdG8gc2V0IGl0J3Ncblx0Ly8gX25leHREb20gcHJvcGVydHkgdG8gdGhlIG5leHRTaWJsaW5nIG9mIGl0cyBsYXN0IGNoaWxkIERPTSBub2RlLlxuXHQvL1xuXHQvLyBgb2xkRG9tYCBjb250YWlucyB0aGUgY29ycmVjdCB2YWx1ZSBoZXJlIGJlY2F1c2UgaWYgdGhlIGxhc3QgY2hpbGRcblx0Ly8gaXMgYSBGcmFnbWVudC1saWtlLCB0aGVuIG9sZERvbSBoYXMgYWxyZWFkeSBiZWVuIHNldCB0byB0aGF0IGNoaWxkJ3MgX25leHREb20uXG5cdC8vIElmIHRoZSBsYXN0IGNoaWxkIGlzIGEgRE9NIFZOb2RlLCB0aGVuIG9sZERvbSB3aWxsIGJlIHNldCB0byB0aGF0IERPTVxuXHQvLyBub2RlJ3MgbmV4dFNpYmxpbmcuXG5cdG5ld1BhcmVudFZOb2RlLl9uZXh0RG9tID0gb2xkRG9tO1xuXHRuZXdQYXJlbnRWTm9kZS5fZG9tID0gZmlyc3RDaGlsZERvbTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1ZOb2RlfSBuZXdQYXJlbnRWTm9kZVxuICogQHBhcmFtIHtDb21wb25lbnRDaGlsZHJlbltdfSByZW5kZXJSZXN1bHRcbiAqIEBwYXJhbSB7Vk5vZGVbXX0gb2xkQ2hpbGRyZW5cbiAqL1xuZnVuY3Rpb24gY29uc3RydWN0TmV3Q2hpbGRyZW5BcnJheShuZXdQYXJlbnRWTm9kZSwgcmVuZGVyUmVzdWx0LCBvbGRDaGlsZHJlbikge1xuXHQvKiogQHR5cGUge251bWJlcn0gKi9cblx0bGV0IGk7XG5cdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdGxldCBjaGlsZFZOb2RlO1xuXHQvKiogQHR5cGUge1ZOb2RlfSAqL1xuXHRsZXQgb2xkVk5vZGU7XG5cblx0Y29uc3QgbmV3Q2hpbGRyZW5MZW5ndGggPSByZW5kZXJSZXN1bHQubGVuZ3RoO1xuXHRsZXQgb2xkQ2hpbGRyZW5MZW5ndGggPSBvbGRDaGlsZHJlbi5sZW5ndGgsXG5cdFx0cmVtYWluaW5nT2xkQ2hpbGRyZW4gPSBvbGRDaGlsZHJlbkxlbmd0aDtcblxuXHRsZXQgc2tldyA9IDA7XG5cblx0bmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuID0gW107XG5cdGZvciAoaSA9IDA7IGkgPCBuZXdDaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBXZSBhcmUgcmV1c2luZyB0aGUgY2hpbGRWTm9kZSB2YXJpYWJsZSB0byBob2xkIGJvdGggdGhlXG5cdFx0Ly8gcHJlIGFuZCBwb3N0IG5vcm1hbGl6ZWQgY2hpbGRWTm9kZVxuXHRcdGNoaWxkVk5vZGUgPSByZW5kZXJSZXN1bHRbaV07XG5cblx0XHRpZiAoXG5cdFx0XHRjaGlsZFZOb2RlID09IG51bGwgfHxcblx0XHRcdHR5cGVvZiBjaGlsZFZOb2RlID09ICdib29sZWFuJyB8fFxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ2Z1bmN0aW9uJ1xuXHRcdCkge1xuXHRcdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXSA9IG51bGw7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0Ly8gSWYgdGhpcyBuZXdWTm9kZSBpcyBiZWluZyByZXVzZWQgKGUuZy4gPGRpdj57cmV1c2V9e3JldXNlfTwvZGl2PikgaW4gdGhlIHNhbWUgZGlmZixcblx0XHQvLyBvciB3ZSBhcmUgcmVuZGVyaW5nIGEgY29tcG9uZW50IChlLmcuIHNldFN0YXRlKSBjb3B5IHRoZSBvbGRWTm9kZXMgc28gaXQgY2FuIGhhdmVcblx0XHQvLyBpdCdzIG93biBET00gJiBldGMuIHBvaW50ZXJzXG5cdFx0ZWxzZSBpZiAoXG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZSA9PSAnc3RyaW5nJyB8fFxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ251bWJlcicgfHxcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB2YWxpZC10eXBlb2Zcblx0XHRcdHR5cGVvZiBjaGlsZFZOb2RlID09ICdiaWdpbnQnIHx8XG5cdFx0XHRjaGlsZFZOb2RlLmNvbnN0cnVjdG9yID09IFN0cmluZ1xuXHRcdCkge1xuXHRcdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXSA9IGNyZWF0ZVZOb2RlKFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHRjaGlsZFZOb2RlLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHRudWxsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAoaXNBcnJheShjaGlsZFZOb2RlKSkge1xuXHRcdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXSA9IGNyZWF0ZVZOb2RlKFxuXHRcdFx0XHRGcmFnbWVudCxcblx0XHRcdFx0eyBjaGlsZHJlbjogY2hpbGRWTm9kZSB9LFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHRudWxsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAoY2hpbGRWTm9kZS5jb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkICYmIGNoaWxkVk5vZGUuX2RlcHRoID4gMCkge1xuXHRcdFx0Ly8gVk5vZGUgaXMgYWxyZWFkeSBpbiB1c2UsIGNsb25lIGl0LiBUaGlzIGNhbiBoYXBwZW4gaW4gdGhlIGZvbGxvd2luZ1xuXHRcdFx0Ly8gc2NlbmFyaW86XG5cdFx0XHQvLyAgIGNvbnN0IHJldXNlID0gPGRpdiAvPlxuXHRcdFx0Ly8gICA8ZGl2PntyZXVzZX08c3BhbiAvPntyZXVzZX08L2Rpdj5cblx0XHRcdGNoaWxkVk5vZGUgPSBuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW5baV0gPSBjcmVhdGVWTm9kZShcblx0XHRcdFx0Y2hpbGRWTm9kZS50eXBlLFxuXHRcdFx0XHRjaGlsZFZOb2RlLnByb3BzLFxuXHRcdFx0XHRjaGlsZFZOb2RlLmtleSxcblx0XHRcdFx0Y2hpbGRWTm9kZS5yZWYgPyBjaGlsZFZOb2RlLnJlZiA6IG51bGwsXG5cdFx0XHRcdGNoaWxkVk5vZGUuX29yaWdpbmFsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gY2hpbGRWTm9kZTtcblx0XHR9XG5cblx0XHRjb25zdCBza2V3ZWRJbmRleCA9IGkgKyBza2V3O1xuXHRcdGNoaWxkVk5vZGUuX3BhcmVudCA9IG5ld1BhcmVudFZOb2RlO1xuXHRcdGNoaWxkVk5vZGUuX2RlcHRoID0gbmV3UGFyZW50Vk5vZGUuX2RlcHRoICsgMTtcblxuXHRcdC8vIFRlbXBvcmFyaWx5IHN0b3JlIHRoZSBtYXRjaGluZ0luZGV4IG9uIHRoZSBfaW5kZXggcHJvcGVydHkgc28gd2UgY2FuIHB1bGxcblx0XHQvLyBvdXQgdGhlIG9sZFZOb2RlIGluIGRpZmZDaGlsZHJlbi4gV2UnbGwgb3ZlcnJpZGUgdGhpcyB0byB0aGUgVk5vZGUnc1xuXHRcdC8vIGZpbmFsIGluZGV4IGFmdGVyIHVzaW5nIHRoaXMgcHJvcGVydHkgdG8gZ2V0IHRoZSBvbGRWTm9kZVxuXHRcdGNvbnN0IG1hdGNoaW5nSW5kZXggPSAoY2hpbGRWTm9kZS5faW5kZXggPSBmaW5kTWF0Y2hpbmdJbmRleChcblx0XHRcdGNoaWxkVk5vZGUsXG5cdFx0XHRvbGRDaGlsZHJlbixcblx0XHRcdHNrZXdlZEluZGV4LFxuXHRcdFx0cmVtYWluaW5nT2xkQ2hpbGRyZW5cblx0XHQpKTtcblxuXHRcdG9sZFZOb2RlID0gbnVsbDtcblx0XHRpZiAobWF0Y2hpbmdJbmRleCAhPT0gLTEpIHtcblx0XHRcdG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5bbWF0Y2hpbmdJbmRleF07XG5cdFx0XHRyZW1haW5pbmdPbGRDaGlsZHJlbi0tO1xuXHRcdFx0aWYgKG9sZFZOb2RlKSB7XG5cdFx0XHRcdG9sZFZOb2RlLl9mbGFncyB8PSBNQVRDSEVEO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEhlcmUsIHdlIGRlZmluZSBpc01vdW50aW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGhlIHNrZXcgZGlmZmluZ1xuXHRcdC8vIGFsZ29yaXRobS4gTm9kZXMgdGhhdCBhcmUgdW5zdXNwZW5kaW5nIGFyZSBjb25zaWRlcmVkIG1vdW50aW5nIGFuZCB3ZSBkZXRlY3Rcblx0XHQvLyB0aGlzIGJ5IGNoZWNraW5nIGlmIG9sZFZOb2RlLl9vcmlnaW5hbCA9PT0gbnVsbFxuXHRcdGNvbnN0IGlzTW91bnRpbmcgPSBvbGRWTm9kZSA9PSBudWxsIHx8IG9sZFZOb2RlLl9vcmlnaW5hbCA9PT0gbnVsbDtcblxuXHRcdGlmIChpc01vdW50aW5nKSB7XG5cdFx0XHRpZiAobWF0Y2hpbmdJbmRleCA9PSAtMSkge1xuXHRcdFx0XHRza2V3LS07XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHdlIGFyZSBtb3VudGluZyBhIERPTSBWTm9kZSwgbWFyayBpdCBmb3IgaW5zZXJ0aW9uXG5cdFx0XHRpZiAodHlwZW9mIGNoaWxkVk5vZGUudHlwZSAhPSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGNoaWxkVk5vZGUuX2ZsYWdzIHw9IElOU0VSVF9WTk9ERTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKG1hdGNoaW5nSW5kZXggIT09IHNrZXdlZEluZGV4KSB7XG5cdFx0XHQvLyBXaGVuIHdlIG1vdmUgZWxlbWVudHMgYXJvdW5kIGkuZS4gWzAsIDEsIDJdIC0tPiBbMSwgMCwgMl1cblx0XHRcdC8vIC0tPiB3ZSBkaWZmIDEsIHdlIGZpbmQgaXQgYXQgcG9zaXRpb24gMSB3aGlsZSBvdXIgc2tld2VkIGluZGV4IGlzIDAgYW5kIG91ciBza2V3IGlzIDBcblx0XHRcdC8vICAgICB3ZSBzZXQgdGhlIHNrZXcgdG8gMSBhcyB3ZSBmb3VuZCBhbiBvZmZzZXQuXG5cdFx0XHQvLyAtLT4gd2UgZGlmZiAwLCB3ZSBmaW5kIGl0IGF0IHBvc2l0aW9uIDAgd2hpbGUgb3VyIHNrZXdlZCBpbmRleCBpcyBhdCAyIGFuZCBvdXIgc2tldyBpcyAxXG5cdFx0XHQvLyAgICAgdGhpcyBtYWtlcyB1cyBpbmNyZWFzZSB0aGUgc2tldyBhZ2Fpbi5cblx0XHRcdC8vIC0tPiB3ZSBkaWZmIDIsIHdlIGZpbmQgaXQgYXQgcG9zaXRpb24gMiB3aGlsZSBvdXIgc2tld2VkIGluZGV4IGlzIGF0IDQgYW5kIG91ciBza2V3IGlzIDJcblx0XHRcdC8vXG5cdFx0XHQvLyB0aGlzIGJlY29tZXMgYW4gb3B0aW1pemF0aW9uIHF1ZXN0aW9uIHdoZXJlIGN1cnJlbnRseSB3ZSBzZWUgYSAxIGVsZW1lbnQgb2Zmc2V0IGFzIGFuIGluc2VydGlvblxuXHRcdFx0Ly8gb3IgZGVsZXRpb24gaS5lLiB3ZSBvcHRpbWl6ZSBmb3IgWzAsIDEsIDJdIC0tPiBbOSwgMCwgMSwgMl1cblx0XHRcdC8vIHdoaWxlIGEgbW9yZSB0aGFuIDEgb2Zmc2V0IHdlIHNlZSBhcyBhIHN3YXAuXG5cdFx0XHQvLyBXZSBjb3VsZCBwcm9iYWJseSBidWlsZCBoZXVyaXN0aWNzIGZvciBoYXZpbmcgYW4gb3B0aW1pemVkIGNvdXJzZSBvZiBhY3Rpb24gaGVyZSBhcyB3ZWxsLCBidXRcblx0XHRcdC8vIG1pZ2h0IGdvIGF0IHRoZSBjb3N0IG9mIHNvbWUgYnl0ZXMuXG5cdFx0XHQvL1xuXHRcdFx0Ly8gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBpLmUuIG9ubHkgc3dhcHMgd2UnZCBqdXN0IGRvIHRoZSBsYXN0IHR3byBjb2RlLWJyYW5jaGVzIGFuZCBoYXZlXG5cdFx0XHQvLyBvbmx5IHRoZSBmaXJzdCBpdGVtIGJlIGEgcmUtc2NvdXRpbmcgYW5kIGFsbCB0aGUgb3RoZXJzIGZhbGwgaW4gdGhlaXIgc2tld2VkIGNvdW50ZXItcGFydC5cblx0XHRcdC8vIFdlIGNvdWxkIGFsc28gZnVydGhlciBvcHRpbWl6ZSBmb3Igc3dhcHNcblx0XHRcdGlmIChtYXRjaGluZ0luZGV4ID09IHNrZXdlZEluZGV4IC0gMSkge1xuXHRcdFx0XHRza2V3LS07XG5cdFx0XHR9IGVsc2UgaWYgKG1hdGNoaW5nSW5kZXggPT0gc2tld2VkSW5kZXggKyAxKSB7XG5cdFx0XHRcdHNrZXcrKztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChtYXRjaGluZ0luZGV4ID4gc2tld2VkSW5kZXgpIHtcblx0XHRcdFx0XHRza2V3LS07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c2tldysrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gTW92ZSB0aGlzIFZOb2RlJ3MgRE9NIGlmIHRoZSBvcmlnaW5hbCBpbmRleCAobWF0Y2hpbmdJbmRleCkgZG9lc24ndFxuXHRcdFx0XHQvLyBtYXRjaCB0aGUgbmV3IHNrZXcgaW5kZXggKGkgKyBuZXcgc2tldylcblx0XHRcdFx0Ly8gSW4gdGhlIGZvcm1lciB0d28gYnJhbmNoZXMgd2Uga25vdyB0aGF0IGl0IG1hdGNoZXMgYWZ0ZXIgc2tld2luZ1xuXHRcdFx0XHRjaGlsZFZOb2RlLl9mbGFncyB8PSBJTlNFUlRfVk5PREU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmVtb3ZlIHJlbWFpbmluZyBvbGRDaGlsZHJlbiBpZiB0aGVyZSBhcmUgYW55LiBMb29wIGZvcndhcmRzIHNvIHRoYXQgYXMgd2Vcblx0Ly8gdW5tb3VudCBET00gZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBvbGRDaGlsZHJlbiwgd2UgY2FuIGFkanVzdCBvbGREb20gdG9cblx0Ly8gcG9pbnQgdG8gdGhlIG5leHQgY2hpbGQsIHdoaWNoIG5lZWRzIHRvIGJlIHRoZSBmaXJzdCBET00gbm9kZSB0aGF0IHdvbid0IGJlXG5cdC8vIHVubW91bnRlZC5cblx0aWYgKHJlbWFpbmluZ09sZENoaWxkcmVuKSB7XG5cdFx0Zm9yIChpID0gMDsgaSA8IG9sZENoaWxkcmVuTGVuZ3RoOyBpKyspIHtcblx0XHRcdG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5baV07XG5cdFx0XHRpZiAob2xkVk5vZGUgIT0gbnVsbCAmJiAob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDApIHtcblx0XHRcdFx0aWYgKG9sZFZOb2RlLl9kb20gPT0gbmV3UGFyZW50Vk5vZGUuX25leHREb20pIHtcblx0XHRcdFx0XHRuZXdQYXJlbnRWTm9kZS5fbmV4dERvbSA9IGdldERvbVNpYmxpbmcob2xkVk5vZGUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dW5tb3VudChvbGRWTm9kZSwgb2xkVk5vZGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IHBhcmVudFZOb2RlXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IG9sZERvbVxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBwYXJlbnREb21cbiAqIEByZXR1cm5zIHtQcmVhY3RFbGVtZW50fVxuICovXG5mdW5jdGlvbiBpbnNlcnQocGFyZW50Vk5vZGUsIG9sZERvbSwgcGFyZW50RG9tKSB7XG5cdC8vIE5vdGU6IFZOb2RlcyBpbiBuZXN0ZWQgc3VzcGVuZGVkIHRyZWVzIG1heSBiZSBtaXNzaW5nIF9jaGlsZHJlbi5cblxuXHRpZiAodHlwZW9mIHBhcmVudFZOb2RlLnR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdGxldCBjaGlsZHJlbiA9IHBhcmVudFZOb2RlLl9jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoY2hpbGRyZW5baV0pIHtcblx0XHRcdFx0Ly8gSWYgd2UgZW50ZXIgdGhpcyBjb2RlIHBhdGggb24gc0NVIGJhaWxvdXQsIHdoZXJlIHdlIGNvcHlcblx0XHRcdFx0Ly8gb2xkVk5vZGUuX2NoaWxkcmVuIHRvIG5ld1ZOb2RlLl9jaGlsZHJlbiwgd2UgbmVlZCB0byB1cGRhdGUgdGhlIG9sZFxuXHRcdFx0XHQvLyBjaGlsZHJlbidzIF9wYXJlbnQgcG9pbnRlciB0byBwb2ludCB0byB0aGUgbmV3Vk5vZGUgKHBhcmVudFZOb2RlXG5cdFx0XHRcdC8vIGhlcmUpLlxuXHRcdFx0XHRjaGlsZHJlbltpXS5fcGFyZW50ID0gcGFyZW50Vk5vZGU7XG5cdFx0XHRcdG9sZERvbSA9IGluc2VydChjaGlsZHJlbltpXSwgb2xkRG9tLCBwYXJlbnREb20pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBvbGREb207XG5cdH0gZWxzZSBpZiAocGFyZW50Vk5vZGUuX2RvbSAhPSBvbGREb20pIHtcblx0XHRpZiAob2xkRG9tICYmIHBhcmVudFZOb2RlLnR5cGUgJiYgIXBhcmVudERvbS5jb250YWlucyhvbGREb20pKSB7XG5cdFx0XHRvbGREb20gPSBnZXREb21TaWJsaW5nKHBhcmVudFZOb2RlKTtcblx0XHR9XG5cdFx0cGFyZW50RG9tLmluc2VydEJlZm9yZShwYXJlbnRWTm9kZS5fZG9tLCBvbGREb20gfHwgbnVsbCk7XG5cdFx0b2xkRG9tID0gcGFyZW50Vk5vZGUuX2RvbTtcblx0fVxuXG5cdGRvIHtcblx0XHRvbGREb20gPSBvbGREb20gJiYgb2xkRG9tLm5leHRTaWJsaW5nO1xuXHR9IHdoaWxlIChvbGREb20gIT0gbnVsbCAmJiBvbGREb20ubm9kZVR5cGUgPT09IDgpO1xuXG5cdHJldHVybiBvbGREb207XG59XG5cbi8qKlxuICogRmxhdHRlbiBhbmQgbG9vcCB0aHJvdWdoIHRoZSBjaGlsZHJlbiBvZiBhIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtDb21wb25lbnRDaGlsZHJlbn0gY2hpbGRyZW4gVGhlIHVuZmxhdHRlbmVkIGNoaWxkcmVuIG9mIGEgdmlydHVhbFxuICogbm9kZVxuICogQHJldHVybnMge1ZOb2RlW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0NoaWxkQXJyYXkoY2hpbGRyZW4sIG91dCkge1xuXHRvdXQgPSBvdXQgfHwgW107XG5cdGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IHR5cGVvZiBjaGlsZHJlbiA9PSAnYm9vbGVhbicpIHtcblx0fSBlbHNlIGlmIChpc0FycmF5KGNoaWxkcmVuKSkge1xuXHRcdGNoaWxkcmVuLnNvbWUoY2hpbGQgPT4ge1xuXHRcdFx0dG9DaGlsZEFycmF5KGNoaWxkLCBvdXQpO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdG91dC5wdXNoKGNoaWxkcmVuKTtcblx0fVxuXHRyZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IGNoaWxkVk5vZGVcbiAqIEBwYXJhbSB7Vk5vZGVbXX0gb2xkQ2hpbGRyZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBza2V3ZWRJbmRleFxuICogQHBhcmFtIHtudW1iZXJ9IHJlbWFpbmluZ09sZENoaWxkcmVuXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBmaW5kTWF0Y2hpbmdJbmRleChcblx0Y2hpbGRWTm9kZSxcblx0b2xkQ2hpbGRyZW4sXG5cdHNrZXdlZEluZGV4LFxuXHRyZW1haW5pbmdPbGRDaGlsZHJlblxuKSB7XG5cdGNvbnN0IGtleSA9IGNoaWxkVk5vZGUua2V5O1xuXHRjb25zdCB0eXBlID0gY2hpbGRWTm9kZS50eXBlO1xuXHRsZXQgeCA9IHNrZXdlZEluZGV4IC0gMTtcblx0bGV0IHkgPSBza2V3ZWRJbmRleCArIDE7XG5cdGxldCBvbGRWTm9kZSA9IG9sZENoaWxkcmVuW3NrZXdlZEluZGV4XTtcblxuXHQvLyBXZSBvbmx5IG5lZWQgdG8gcGVyZm9ybSBhIHNlYXJjaCBpZiB0aGVyZSBhcmUgbW9yZSBjaGlsZHJlblxuXHQvLyAocmVtYWluaW5nT2xkQ2hpbGRyZW4pIHRvIHNlYXJjaC4gSG93ZXZlciwgaWYgdGhlIG9sZFZOb2RlIHdlIGp1c3QgbG9va2VkXG5cdC8vIGF0IHNrZXdlZEluZGV4IHdhcyBub3QgYWxyZWFkeSB1c2VkIGluIHRoaXMgZGlmZiwgdGhlbiB0aGVyZSBtdXN0IGJlIGF0XG5cdC8vIGxlYXN0IDEgb3RoZXIgKHNvIGdyZWF0ZXIgdGhhbiAxKSByZW1haW5pbmdPbGRDaGlsZHJlbiB0byBhdHRlbXB0IHRvIG1hdGNoXG5cdC8vIGFnYWluc3QuIFNvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGNoZWNrcyB0aGF0IGVuc3VyaW5nXG5cdC8vIHJlbWFpbmluZ09sZENoaWxkcmVuID4gMSBpZiB0aGUgb2xkVk5vZGUgaXMgbm90IGFscmVhZHkgdXNlZC9tYXRjaGVkLiBFbHNlXG5cdC8vIGlmIHRoZSBvbGRWTm9kZSB3YXMgbnVsbCBvciBtYXRjaGVkLCB0aGVuIHRoZXJlIGNvdWxkIG5lZWRzIHRvIGJlIGF0IGxlYXN0XG5cdC8vIDEgKGFrYSBgcmVtYWluaW5nT2xkQ2hpbGRyZW4gPiAwYCkgY2hpbGRyZW4gdG8gZmluZCBhbmQgY29tcGFyZSBhZ2FpbnN0LlxuXHRsZXQgc2hvdWxkU2VhcmNoID1cblx0XHRyZW1haW5pbmdPbGRDaGlsZHJlbiA+XG5cdFx0KG9sZFZOb2RlICE9IG51bGwgJiYgKG9sZFZOb2RlLl9mbGFncyAmIE1BVENIRUQpID09PSAwID8gMSA6IDApO1xuXG5cdGlmIChcblx0XHRvbGRWTm9kZSA9PT0gbnVsbCB8fFxuXHRcdChvbGRWTm9kZSAmJlxuXHRcdFx0a2V5ID09IG9sZFZOb2RlLmtleSAmJlxuXHRcdFx0dHlwZSA9PT0gb2xkVk5vZGUudHlwZSAmJlxuXHRcdFx0KG9sZFZOb2RlLl9mbGFncyAmIE1BVENIRUQpID09PSAwKVxuXHQpIHtcblx0XHRyZXR1cm4gc2tld2VkSW5kZXg7XG5cdH0gZWxzZSBpZiAoc2hvdWxkU2VhcmNoKSB7XG5cdFx0d2hpbGUgKHggPj0gMCB8fCB5IDwgb2xkQ2hpbGRyZW4ubGVuZ3RoKSB7XG5cdFx0XHRpZiAoeCA+PSAwKSB7XG5cdFx0XHRcdG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5beF07XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRvbGRWTm9kZSAmJlxuXHRcdFx0XHRcdChvbGRWTm9kZS5fZmxhZ3MgJiBNQVRDSEVEKSA9PT0gMCAmJlxuXHRcdFx0XHRcdGtleSA9PSBvbGRWTm9kZS5rZXkgJiZcblx0XHRcdFx0XHR0eXBlID09PSBvbGRWTm9kZS50eXBlXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHgtLTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHkgPCBvbGRDaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlblt5XTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9sZFZOb2RlICYmXG5cdFx0XHRcdFx0KG9sZFZOb2RlLl9mbGFncyAmIE1BVENIRUQpID09PSAwICYmXG5cdFx0XHRcdFx0a2V5ID09IG9sZFZOb2RlLmtleSAmJlxuXHRcdFx0XHRcdHR5cGUgPT09IG9sZFZOb2RlLnR5cGVcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHk7XG5cdFx0XHRcdH1cblx0XHRcdFx0eSsrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiAtMTtcbn1cbiIsICJpbXBvcnQge1xuXHRFTVBUWV9PQkosXG5cdE1PREVfSFlEUkFURSxcblx0TU9ERV9TVVNQRU5ERUQsXG5cdFJFU0VUX01PREVcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIGdldERvbVNpYmxpbmcgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgRnJhZ21lbnQgfSBmcm9tICcuLi9jcmVhdGUtZWxlbWVudCc7XG5pbXBvcnQgeyBkaWZmQ2hpbGRyZW4gfSBmcm9tICcuL2NoaWxkcmVuJztcbmltcG9ydCB7IHNldFByb3BlcnR5IH0gZnJvbSAnLi9wcm9wcyc7XG5pbXBvcnQgeyBhc3NpZ24sIGlzQXJyYXksIHJlbW92ZU5vZGUsIHNsaWNlIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgb3B0aW9ucyBmcm9tICcuLi9vcHRpb25zJztcblxuLyoqXG4gKiBEaWZmIHR3byB2aXJ0dWFsIG5vZGVzIGFuZCBhcHBseSBwcm9wZXIgY2hhbmdlcyB0byB0aGUgRE9NXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbSBUaGUgcGFyZW50IG9mIHRoZSBET00gZWxlbWVudFxuICogQHBhcmFtIHtWTm9kZX0gbmV3Vk5vZGUgVGhlIG5ldyB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7Vk5vZGV9IG9sZFZOb2RlIFRoZSBvbGQgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge29iamVjdH0gZ2xvYmFsQ29udGV4dCBUaGUgY3VycmVudCBjb250ZXh0IG9iamVjdC4gTW9kaWZpZWQgYnlcbiAqIGdldENoaWxkQ29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVzcGFjZSBDdXJyZW50IG5hbWVzcGFjZSBvZiB0aGUgRE9NIG5vZGUgKEhUTUwsIFNWRywgb3IgTWF0aE1MKVxuICogQHBhcmFtIHtBcnJheTxQcmVhY3RFbGVtZW50Pn0gZXhjZXNzRG9tQ2hpbGRyZW5cbiAqIEBwYXJhbSB7QXJyYXk8Q29tcG9uZW50Pn0gY29tbWl0UXVldWUgTGlzdCBvZiBjb21wb25lbnRzIHdoaWNoIGhhdmUgY2FsbGJhY2tzXG4gKiB0byBpbnZva2UgaW4gY29tbWl0Um9vdFxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBvbGREb20gVGhlIGN1cnJlbnQgYXR0YWNoZWQgRE9NIGVsZW1lbnQgYW55IG5ldyBkb21cbiAqIGVsZW1lbnRzIHNob3VsZCBiZSBwbGFjZWQgYXJvdW5kLiBMaWtlbHkgYG51bGxgIG9uIGZpcnN0IHJlbmRlciAoZXhjZXB0IHdoZW5cbiAqIGh5ZHJhdGluZykuIENhbiBiZSBhIHNpYmxpbmcgRE9NIGVsZW1lbnQgd2hlbiBkaWZmaW5nIEZyYWdtZW50cyB0aGF0IGhhdmVcbiAqIHNpYmxpbmdzLiBJbiBtb3N0IGNhc2VzLCBpdCBzdGFydHMgb3V0IGFzIGBvbGRDaGlsZHJlblswXS5fZG9tYC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNIeWRyYXRpbmcgV2hldGhlciBvciBub3Qgd2UgYXJlIGluIGh5ZHJhdGlvblxuICogQHBhcmFtIHthbnlbXX0gcmVmUXVldWUgYW4gYXJyYXkgb2YgZWxlbWVudHMgbmVlZGVkIHRvIGludm9rZSByZWZzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmKFxuXHRwYXJlbnREb20sXG5cdG5ld1ZOb2RlLFxuXHRvbGRWTm9kZSxcblx0Z2xvYmFsQ29udGV4dCxcblx0bmFtZXNwYWNlLFxuXHRleGNlc3NEb21DaGlsZHJlbixcblx0Y29tbWl0UXVldWUsXG5cdG9sZERvbSxcblx0aXNIeWRyYXRpbmcsXG5cdHJlZlF1ZXVlXG4pIHtcblx0LyoqIEB0eXBlIHthbnl9ICovXG5cdGxldCB0bXAsXG5cdFx0bmV3VHlwZSA9IG5ld1ZOb2RlLnR5cGU7XG5cblx0Ly8gV2hlbiBwYXNzaW5nIHRocm91Z2ggY3JlYXRlRWxlbWVudCBpdCBhc3NpZ25zIHRoZSBvYmplY3Rcblx0Ly8gY29uc3RydWN0b3IgYXMgdW5kZWZpbmVkLiBUaGlzIHRvIHByZXZlbnQgSlNPTi1pbmplY3Rpb24uXG5cdGlmIChuZXdWTm9kZS5jb25zdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcblxuXHQvLyBJZiB0aGUgcHJldmlvdXMgZGlmZiBiYWlsZWQgb3V0LCByZXN1bWUgY3JlYXRpbmcvaHlkcmF0aW5nLlxuXHRpZiAob2xkVk5vZGUuX2ZsYWdzICYgTU9ERV9TVVNQRU5ERUQpIHtcblx0XHRpc0h5ZHJhdGluZyA9ICEhKG9sZFZOb2RlLl9mbGFncyAmIE1PREVfSFlEUkFURSk7XG5cdFx0b2xkRG9tID0gbmV3Vk5vZGUuX2RvbSA9IG9sZFZOb2RlLl9kb207XG5cdFx0ZXhjZXNzRG9tQ2hpbGRyZW4gPSBbb2xkRG9tXTtcblx0fVxuXG5cdGlmICgodG1wID0gb3B0aW9ucy5fZGlmZikpIHRtcChuZXdWTm9kZSk7XG5cblx0b3V0ZXI6IGlmICh0eXBlb2YgbmV3VHlwZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGxldCBjLCBpc05ldywgb2xkUHJvcHMsIG9sZFN0YXRlLCBzbmFwc2hvdCwgY2xlYXJQcm9jZXNzaW5nRXhjZXB0aW9uO1xuXHRcdFx0bGV0IG5ld1Byb3BzID0gbmV3Vk5vZGUucHJvcHM7XG5cdFx0XHRjb25zdCBpc0NsYXNzQ29tcG9uZW50ID1cblx0XHRcdFx0J3Byb3RvdHlwZScgaW4gbmV3VHlwZSAmJiBuZXdUeXBlLnByb3RvdHlwZS5yZW5kZXI7XG5cblx0XHRcdC8vIE5lY2Vzc2FyeSBmb3IgY3JlYXRlQ29udGV4dCBhcGkuIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSB3aWxsIHBhc3Ncblx0XHRcdC8vIHRoZSBjb250ZXh0IHZhbHVlIGFzIGB0aGlzLmNvbnRleHRgIGp1c3QgZm9yIHRoaXMgY29tcG9uZW50LlxuXHRcdFx0dG1wID0gbmV3VHlwZS5jb250ZXh0VHlwZTtcblx0XHRcdGxldCBwcm92aWRlciA9IHRtcCAmJiBnbG9iYWxDb250ZXh0W3RtcC5faWRdO1xuXHRcdFx0bGV0IGNvbXBvbmVudENvbnRleHQgPSB0bXBcblx0XHRcdFx0PyBwcm92aWRlclxuXHRcdFx0XHRcdD8gcHJvdmlkZXIucHJvcHMudmFsdWVcblx0XHRcdFx0XHQ6IHRtcC5fZGVmYXVsdFZhbHVlXG5cdFx0XHRcdDogZ2xvYmFsQ29udGV4dDtcblxuXHRcdFx0Ly8gR2V0IGNvbXBvbmVudCBhbmQgc2V0IGl0IHRvIGBjYFxuXHRcdFx0aWYgKG9sZFZOb2RlLl9jb21wb25lbnQpIHtcblx0XHRcdFx0YyA9IG5ld1ZOb2RlLl9jb21wb25lbnQgPSBvbGRWTm9kZS5fY29tcG9uZW50O1xuXHRcdFx0XHRjbGVhclByb2Nlc3NpbmdFeGNlcHRpb24gPSBjLl9wcm9jZXNzaW5nRXhjZXB0aW9uID0gYy5fcGVuZGluZ0Vycm9yO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gSW5zdGFudGlhdGUgdGhlIG5ldyBjb21wb25lbnRcblx0XHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQpIHtcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRoZSBjaGVjayBhYm92ZSB2ZXJpZmllcyB0aGF0IG5ld1R5cGUgaXMgc3VwcG9zZSB0byBiZSBjb25zdHJ1Y3RlZFxuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jb21wb25lbnQgPSBjID0gbmV3IG5ld1R5cGUobmV3UHJvcHMsIGNvbXBvbmVudENvbnRleHQpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRydXN0IG1lLCBDb21wb25lbnQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlIHdlIHdhbnRcblx0XHRcdFx0XHRuZXdWTm9kZS5fY29tcG9uZW50ID0gYyA9IG5ldyBCYXNlQ29tcG9uZW50KFxuXHRcdFx0XHRcdFx0bmV3UHJvcHMsXG5cdFx0XHRcdFx0XHRjb21wb25lbnRDb250ZXh0XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRjLmNvbnN0cnVjdG9yID0gbmV3VHlwZTtcblx0XHRcdFx0XHRjLnJlbmRlciA9IGRvUmVuZGVyO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChwcm92aWRlcikgcHJvdmlkZXIuc3ViKGMpO1xuXG5cdFx0XHRcdGMucHJvcHMgPSBuZXdQcm9wcztcblx0XHRcdFx0aWYgKCFjLnN0YXRlKSBjLnN0YXRlID0ge307XG5cdFx0XHRcdGMuY29udGV4dCA9IGNvbXBvbmVudENvbnRleHQ7XG5cdFx0XHRcdGMuX2dsb2JhbENvbnRleHQgPSBnbG9iYWxDb250ZXh0O1xuXHRcdFx0XHRpc05ldyA9IGMuX2RpcnR5ID0gdHJ1ZTtcblx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzID0gW107XG5cdFx0XHRcdGMuX3N0YXRlQ2FsbGJhY2tzID0gW107XG5cdFx0XHR9XG5cblx0XHRcdC8vIEludm9rZSBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcblx0XHRcdGlmIChpc0NsYXNzQ29tcG9uZW50ICYmIGMuX25leHRTdGF0ZSA9PSBudWxsKSB7XG5cdFx0XHRcdGMuX25leHRTdGF0ZSA9IGMuc3RhdGU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChpc0NsYXNzQ29tcG9uZW50ICYmIG5ld1R5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICE9IG51bGwpIHtcblx0XHRcdFx0aWYgKGMuX25leHRTdGF0ZSA9PSBjLnN0YXRlKSB7XG5cdFx0XHRcdFx0Yy5fbmV4dFN0YXRlID0gYXNzaWduKHt9LCBjLl9uZXh0U3RhdGUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YXNzaWduKFxuXHRcdFx0XHRcdGMuX25leHRTdGF0ZSxcblx0XHRcdFx0XHRuZXdUeXBlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXdQcm9wcywgYy5fbmV4dFN0YXRlKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRvbGRQcm9wcyA9IGMucHJvcHM7XG5cdFx0XHRvbGRTdGF0ZSA9IGMuc3RhdGU7XG5cdFx0XHRjLl92bm9kZSA9IG5ld1ZOb2RlO1xuXG5cdFx0XHQvLyBJbnZva2UgcHJlLXJlbmRlciBsaWZlY3ljbGUgbWV0aG9kc1xuXHRcdFx0aWYgKGlzTmV3KSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRpc0NsYXNzQ29tcG9uZW50ICYmXG5cdFx0XHRcdFx0bmV3VHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT0gbnVsbCAmJlxuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbE1vdW50ICE9IG51bGxcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Yy5jb21wb25lbnRXaWxsTW91bnQoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChpc0NsYXNzQ29tcG9uZW50ICYmIGMuY29tcG9uZW50RGlkTW91bnQgIT0gbnVsbCkge1xuXHRcdFx0XHRcdGMuX3JlbmRlckNhbGxiYWNrcy5wdXNoKGMuY29tcG9uZW50RGlkTW91bnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0aXNDbGFzc0NvbXBvbmVudCAmJlxuXHRcdFx0XHRcdG5ld1R5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09IG51bGwgJiZcblx0XHRcdFx0XHRuZXdQcm9wcyAhPT0gb2xkUHJvcHMgJiZcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgIT0gbnVsbFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIGNvbXBvbmVudENvbnRleHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdCFjLl9mb3JjZSAmJlxuXHRcdFx0XHRcdCgoYy5zaG91bGRDb21wb25lbnRVcGRhdGUgIT0gbnVsbCAmJlxuXHRcdFx0XHRcdFx0Yy5zaG91bGRDb21wb25lbnRVcGRhdGUoXG5cdFx0XHRcdFx0XHRcdG5ld1Byb3BzLFxuXHRcdFx0XHRcdFx0XHRjLl9uZXh0U3RhdGUsXG5cdFx0XHRcdFx0XHRcdGNvbXBvbmVudENvbnRleHRcblx0XHRcdFx0XHRcdCkgPT09IGZhbHNlKSB8fFxuXHRcdFx0XHRcdFx0bmV3Vk5vZGUuX29yaWdpbmFsID09PSBvbGRWTm9kZS5fb3JpZ2luYWwpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdC8vIE1vcmUgaW5mbyBhYm91dCB0aGlzIGhlcmU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0pvdmlEZUNyb29jay9iZWM1ZjJjZTkzNTQ0ZDJlNjA3MGVmOGUwMDM2ZTRlOFxuXHRcdFx0XHRcdGlmIChuZXdWTm9kZS5fb3JpZ2luYWwgIT09IG9sZFZOb2RlLl9vcmlnaW5hbCkge1xuXHRcdFx0XHRcdFx0Ly8gV2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgYmFpbCBiZWNhdXNlIG9mIHNDVSB3ZSBoYXZlIHRvIHVwZGF0ZVxuXHRcdFx0XHRcdFx0Ly8gdGhlIHByb3BzLCBzdGF0ZSBhbmQgZGlydHktc3RhdGUuXG5cdFx0XHRcdFx0XHQvLyB3aGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggc3RyaWN0LWVxdWFsaXR5IHdlIGRvbid0IGFzIHRoZSBjaGlsZCBjb3VsZCBzdGlsbFxuXHRcdFx0XHRcdFx0Ly8gYmUgZGlydGllZCBzZWUgIzM4ODNcblx0XHRcdFx0XHRcdGMucHJvcHMgPSBuZXdQcm9wcztcblx0XHRcdFx0XHRcdGMuc3RhdGUgPSBjLl9uZXh0U3RhdGU7XG5cdFx0XHRcdFx0XHRjLl9kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG5ld1ZOb2RlLl9kb20gPSBvbGRWTm9kZS5fZG9tO1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IG9sZFZOb2RlLl9jaGlsZHJlbjtcblx0XHRcdFx0XHRuZXdWTm9kZS5fY2hpbGRyZW4uc29tZSh2bm9kZSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAodm5vZGUpIHZub2RlLl9wYXJlbnQgPSBuZXdWTm9kZTtcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYy5fc3RhdGVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdGMuX3JlbmRlckNhbGxiYWNrcy5wdXNoKGMuX3N0YXRlQ2FsbGJhY2tzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Yy5fc3RhdGVDYWxsYmFja3MgPSBbXTtcblxuXHRcdFx0XHRcdGlmIChjLl9yZW5kZXJDYWxsYmFja3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRjb21taXRRdWV1ZS5wdXNoKGMpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGJyZWFrIG91dGVyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGMuY29tcG9uZW50V2lsbFVwZGF0ZSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Yy5jb21wb25lbnRXaWxsVXBkYXRlKG5ld1Byb3BzLCBjLl9uZXh0U3RhdGUsIGNvbXBvbmVudENvbnRleHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgYy5jb21wb25lbnREaWRVcGRhdGUgIT0gbnVsbCkge1xuXHRcdFx0XHRcdGMuX3JlbmRlckNhbGxiYWNrcy5wdXNoKCgpID0+IHtcblx0XHRcdFx0XHRcdGMuY29tcG9uZW50RGlkVXBkYXRlKG9sZFByb3BzLCBvbGRTdGF0ZSwgc25hcHNob3QpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGMuY29udGV4dCA9IGNvbXBvbmVudENvbnRleHQ7XG5cdFx0XHRjLnByb3BzID0gbmV3UHJvcHM7XG5cdFx0XHRjLl9wYXJlbnREb20gPSBwYXJlbnREb207XG5cdFx0XHRjLl9mb3JjZSA9IGZhbHNlO1xuXG5cdFx0XHRsZXQgcmVuZGVySG9vayA9IG9wdGlvbnMuX3JlbmRlcixcblx0XHRcdFx0Y291bnQgPSAwO1xuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQpIHtcblx0XHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblx0XHRcdFx0Yy5fZGlydHkgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAocmVuZGVySG9vaykgcmVuZGVySG9vayhuZXdWTm9kZSk7XG5cblx0XHRcdFx0dG1wID0gYy5yZW5kZXIoYy5wcm9wcywgYy5zdGF0ZSwgYy5jb250ZXh0KTtcblxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGMuX3N0YXRlQ2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goYy5fc3RhdGVDYWxsYmFja3NbaV0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGMuX3N0YXRlQ2FsbGJhY2tzID0gW107XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0Yy5fZGlydHkgPSBmYWxzZTtcblx0XHRcdFx0XHRpZiAocmVuZGVySG9vaykgcmVuZGVySG9vayhuZXdWTm9kZSk7XG5cblx0XHRcdFx0XHR0bXAgPSBjLnJlbmRlcihjLnByb3BzLCBjLnN0YXRlLCBjLmNvbnRleHQpO1xuXG5cdFx0XHRcdFx0Ly8gSGFuZGxlIHNldFN0YXRlIGNhbGxlZCBpbiByZW5kZXIsIHNlZSAjMjU1M1xuXHRcdFx0XHRcdGMuc3RhdGUgPSBjLl9uZXh0U3RhdGU7XG5cdFx0XHRcdH0gd2hpbGUgKGMuX2RpcnR5ICYmICsrY291bnQgPCAyNSk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEhhbmRsZSBzZXRTdGF0ZSBjYWxsZWQgaW4gcmVuZGVyLCBzZWUgIzI1NTNcblx0XHRcdGMuc3RhdGUgPSBjLl9uZXh0U3RhdGU7XG5cblx0XHRcdGlmIChjLmdldENoaWxkQ29udGV4dCAhPSBudWxsKSB7XG5cdFx0XHRcdGdsb2JhbENvbnRleHQgPSBhc3NpZ24oYXNzaWduKHt9LCBnbG9iYWxDb250ZXh0KSwgYy5nZXRDaGlsZENvbnRleHQoKSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChpc0NsYXNzQ29tcG9uZW50ICYmICFpc05ldyAmJiBjLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlICE9IG51bGwpIHtcblx0XHRcdFx0c25hcHNob3QgPSBjLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKG9sZFByb3BzLCBvbGRTdGF0ZSk7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBpc1RvcExldmVsRnJhZ21lbnQgPVxuXHRcdFx0XHR0bXAgIT0gbnVsbCAmJiB0bXAudHlwZSA9PT0gRnJhZ21lbnQgJiYgdG1wLmtleSA9PSBudWxsO1xuXHRcdFx0bGV0IHJlbmRlclJlc3VsdCA9IGlzVG9wTGV2ZWxGcmFnbWVudCA/IHRtcC5wcm9wcy5jaGlsZHJlbiA6IHRtcDtcblxuXHRcdFx0ZGlmZkNoaWxkcmVuKFxuXHRcdFx0XHRwYXJlbnREb20sXG5cdFx0XHRcdGlzQXJyYXkocmVuZGVyUmVzdWx0KSA/IHJlbmRlclJlc3VsdCA6IFtyZW5kZXJSZXN1bHRdLFxuXHRcdFx0XHRuZXdWTm9kZSxcblx0XHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRcdGdsb2JhbENvbnRleHQsXG5cdFx0XHRcdG5hbWVzcGFjZSxcblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdFx0XHRcdGNvbW1pdFF1ZXVlLFxuXHRcdFx0XHRvbGREb20sXG5cdFx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0XHRyZWZRdWV1ZVxuXHRcdFx0KTtcblxuXHRcdFx0Yy5iYXNlID0gbmV3Vk5vZGUuX2RvbTtcblxuXHRcdFx0Ly8gV2Ugc3VjY2Vzc2Z1bGx5IHJlbmRlcmVkIHRoaXMgVk5vZGUsIHVuc2V0IGFueSBzdG9yZWQgaHlkcmF0aW9uL2JhaWxvdXQgc3RhdGU6XG5cdFx0XHRuZXdWTm9kZS5fZmxhZ3MgJj0gUkVTRVRfTU9ERTtcblxuXHRcdFx0aWYgKGMuX3JlbmRlckNhbGxiYWNrcy5sZW5ndGgpIHtcblx0XHRcdFx0Y29tbWl0UXVldWUucHVzaChjKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGNsZWFyUHJvY2Vzc2luZ0V4Y2VwdGlvbikge1xuXHRcdFx0XHRjLl9wZW5kaW5nRXJyb3IgPSBjLl9wcm9jZXNzaW5nRXhjZXB0aW9uID0gbnVsbDtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRuZXdWTm9kZS5fb3JpZ2luYWwgPSBudWxsO1xuXHRcdFx0Ly8gaWYgaHlkcmF0aW5nIG9yIGNyZWF0aW5nIGluaXRpYWwgdHJlZSwgYmFpbG91dCBwcmVzZXJ2ZXMgRE9NOlxuXHRcdFx0aWYgKGlzSHlkcmF0aW5nIHx8IGV4Y2Vzc0RvbUNoaWxkcmVuICE9IG51bGwpIHtcblx0XHRcdFx0bmV3Vk5vZGUuX2ZsYWdzIHw9IGlzSHlkcmF0aW5nXG5cdFx0XHRcdFx0PyBNT0RFX0hZRFJBVEUgfCBNT0RFX1NVU1BFTkRFRFxuXHRcdFx0XHRcdDogTU9ERV9TVVNQRU5ERUQ7XG5cblx0XHRcdFx0d2hpbGUgKG9sZERvbSAmJiBvbGREb20ubm9kZVR5cGUgPT09IDggJiYgb2xkRG9tLm5leHRTaWJsaW5nKSB7XG5cdFx0XHRcdFx0b2xkRG9tID0gb2xkRG9tLm5leHRTaWJsaW5nO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuW2V4Y2Vzc0RvbUNoaWxkcmVuLmluZGV4T2Yob2xkRG9tKV0gPSBudWxsO1xuXHRcdFx0XHRuZXdWTm9kZS5fZG9tID0gb2xkRG9tO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bmV3Vk5vZGUuX2RvbSA9IG9sZFZOb2RlLl9kb207XG5cdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IG9sZFZOb2RlLl9jaGlsZHJlbjtcblx0XHRcdH1cblx0XHRcdG9wdGlvbnMuX2NhdGNoRXJyb3IoZSwgbmV3Vk5vZGUsIG9sZFZOb2RlKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoXG5cdFx0ZXhjZXNzRG9tQ2hpbGRyZW4gPT0gbnVsbCAmJlxuXHRcdG5ld1ZOb2RlLl9vcmlnaW5hbCA9PT0gb2xkVk5vZGUuX29yaWdpbmFsXG5cdCkge1xuXHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IG9sZFZOb2RlLl9jaGlsZHJlbjtcblx0XHRuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0fSBlbHNlIHtcblx0XHRuZXdWTm9kZS5fZG9tID0gZGlmZkVsZW1lbnROb2Rlcyhcblx0XHRcdG9sZFZOb2RlLl9kb20sXG5cdFx0XHRuZXdWTm9kZSxcblx0XHRcdG9sZFZOb2RlLFxuXHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdG5hbWVzcGFjZSxcblx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRpc0h5ZHJhdGluZyxcblx0XHRcdHJlZlF1ZXVlXG5cdFx0KTtcblx0fVxuXG5cdGlmICgodG1wID0gb3B0aW9ucy5kaWZmZWQpKSB0bXAobmV3Vk5vZGUpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8Q29tcG9uZW50Pn0gY29tbWl0UXVldWUgTGlzdCBvZiBjb21wb25lbnRzXG4gKiB3aGljaCBoYXZlIGNhbGxiYWNrcyB0byBpbnZva2UgaW4gY29tbWl0Um9vdFxuICogQHBhcmFtIHtWTm9kZX0gcm9vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWl0Um9vdChjb21taXRRdWV1ZSwgcm9vdCwgcmVmUXVldWUpIHtcblx0cm9vdC5fbmV4dERvbSA9IHVuZGVmaW5lZDtcblxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHJlZlF1ZXVlLmxlbmd0aDsgaSsrKSB7XG5cdFx0YXBwbHlSZWYocmVmUXVldWVbaV0sIHJlZlF1ZXVlWysraV0sIHJlZlF1ZXVlWysraV0pO1xuXHR9XG5cblx0aWYgKG9wdGlvbnMuX2NvbW1pdCkgb3B0aW9ucy5fY29tbWl0KHJvb3QsIGNvbW1pdFF1ZXVlKTtcblxuXHRjb21taXRRdWV1ZS5zb21lKGMgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFJldXNlIHRoZSBjb21taXRRdWV1ZSB2YXJpYWJsZSBoZXJlIHNvIHRoZSB0eXBlIGNoYW5nZXNcblx0XHRcdGNvbW1pdFF1ZXVlID0gYy5fcmVuZGVyQ2FsbGJhY2tzO1xuXHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzID0gW107XG5cdFx0XHRjb21taXRRdWV1ZS5zb21lKGNiID0+IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBTZWUgYWJvdmUgY29tbWVudCBvbiBjb21taXRRdWV1ZVxuXHRcdFx0XHRjYi5jYWxsKGMpO1xuXHRcdFx0fSk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBjLl92bm9kZSk7XG5cdFx0fVxuXHR9KTtcbn1cblxuLyoqXG4gKiBEaWZmIHR3byB2aXJ0dWFsIG5vZGVzIHJlcHJlc2VudGluZyBET00gZWxlbWVudFxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBkb20gVGhlIERPTSBlbGVtZW50IHJlcHJlc2VudGluZyB0aGUgdmlydHVhbCBub2Rlc1xuICogYmVpbmcgZGlmZmVkXG4gKiBAcGFyYW0ge1ZOb2RlfSBuZXdWTm9kZSBUaGUgbmV3IHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtWTm9kZX0gb2xkVk5vZGUgVGhlIG9sZCB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBnbG9iYWxDb250ZXh0IFRoZSBjdXJyZW50IGNvbnRleHQgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZXNwYWNlIEN1cnJlbnQgbmFtZXNwYWNlIG9mIHRoZSBET00gbm9kZSAoSFRNTCwgU1ZHLCBvciBNYXRoTUwpXG4gKiBAcGFyYW0ge0FycmF5PFByZWFjdEVsZW1lbnQ+fSBleGNlc3NEb21DaGlsZHJlblxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSBjYWxsYmFja3NcbiAqIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzSHlkcmF0aW5nIFdoZXRoZXIgb3Igbm90IHdlIGFyZSBpbiBoeWRyYXRpb25cbiAqIEBwYXJhbSB7YW55W119IHJlZlF1ZXVlIGFuIGFycmF5IG9mIGVsZW1lbnRzIG5lZWRlZCB0byBpbnZva2UgcmVmc1xuICogQHJldHVybnMge1ByZWFjdEVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIGRpZmZFbGVtZW50Tm9kZXMoXG5cdGRvbSxcblx0bmV3Vk5vZGUsXG5cdG9sZFZOb2RlLFxuXHRnbG9iYWxDb250ZXh0LFxuXHRuYW1lc3BhY2UsXG5cdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRjb21taXRRdWV1ZSxcblx0aXNIeWRyYXRpbmcsXG5cdHJlZlF1ZXVlXG4pIHtcblx0bGV0IG9sZFByb3BzID0gb2xkVk5vZGUucHJvcHM7XG5cdGxldCBuZXdQcm9wcyA9IG5ld1ZOb2RlLnByb3BzO1xuXHRsZXQgbm9kZVR5cGUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKG5ld1ZOb2RlLnR5cGUpO1xuXHQvKiogQHR5cGUge2FueX0gKi9cblx0bGV0IGk7XG5cdC8qKiBAdHlwZSB7eyBfX2h0bWw/OiBzdHJpbmcgfX0gKi9cblx0bGV0IG5ld0h0bWw7XG5cdC8qKiBAdHlwZSB7eyBfX2h0bWw/OiBzdHJpbmcgfX0gKi9cblx0bGV0IG9sZEh0bWw7XG5cdC8qKiBAdHlwZSB7Q29tcG9uZW50Q2hpbGRyZW59ICovXG5cdGxldCBuZXdDaGlsZHJlbjtcblx0bGV0IHZhbHVlO1xuXHRsZXQgaW5wdXRWYWx1ZTtcblx0bGV0IGNoZWNrZWQ7XG5cblx0Ly8gVHJhY2tzIGVudGVyaW5nIGFuZCBleGl0aW5nIG5hbWVzcGFjZXMgd2hlbiBkZXNjZW5kaW5nIHRocm91Z2ggdGhlIHRyZWUuXG5cdGlmIChub2RlVHlwZSA9PT0gJ3N2ZycpIG5hbWVzcGFjZSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG5cdGVsc2UgaWYgKG5vZGVUeXBlID09PSAnbWF0aCcpXG5cdFx0bmFtZXNwYWNlID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnO1xuXHRlbHNlIGlmICghbmFtZXNwYWNlKSBuYW1lc3BhY2UgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc7XG5cblx0aWYgKGV4Y2Vzc0RvbUNoaWxkcmVuICE9IG51bGwpIHtcblx0XHRmb3IgKGkgPSAwOyBpIDwgZXhjZXNzRG9tQ2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhbHVlID0gZXhjZXNzRG9tQ2hpbGRyZW5baV07XG5cblx0XHRcdC8vIGlmIG5ld1ZOb2RlIG1hdGNoZXMgYW4gZWxlbWVudCBpbiBleGNlc3NEb21DaGlsZHJlbiBvciB0aGUgYGRvbWBcblx0XHRcdC8vIGFyZ3VtZW50IG1hdGNoZXMgYW4gZWxlbWVudCBpbiBleGNlc3NEb21DaGlsZHJlbiwgcmVtb3ZlIGl0IGZyb21cblx0XHRcdC8vIGV4Y2Vzc0RvbUNoaWxkcmVuIHNvIGl0IGlzbid0IGxhdGVyIHJlbW92ZWQgaW4gZGlmZkNoaWxkcmVuXG5cdFx0XHRpZiAoXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdCdzZXRBdHRyaWJ1dGUnIGluIHZhbHVlID09PSAhIW5vZGVUeXBlICYmXG5cdFx0XHRcdChub2RlVHlwZSA/IHZhbHVlLmxvY2FsTmFtZSA9PT0gbm9kZVR5cGUgOiB2YWx1ZS5ub2RlVHlwZSA9PT0gMylcblx0XHRcdCkge1xuXHRcdFx0XHRkb20gPSB2YWx1ZTtcblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW5baV0gPSBudWxsO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoZG9tID09IG51bGwpIHtcblx0XHRpZiAobm9kZVR5cGUgPT09IG51bGwpIHtcblx0XHRcdHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuZXdQcm9wcyk7XG5cdFx0fVxuXG5cdFx0ZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuXHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0bm9kZVR5cGUsXG5cdFx0XHRuZXdQcm9wcy5pcyAmJiBuZXdQcm9wc1xuXHRcdCk7XG5cblx0XHQvLyB3ZSBhcmUgY3JlYXRpbmcgYSBuZXcgbm9kZSwgc28gd2UgY2FuIGFzc3VtZSB0aGlzIGlzIGEgbmV3IHN1YnRyZWUgKGluXG5cdFx0Ly8gY2FzZSB3ZSBhcmUgaHlkcmF0aW5nKSwgdGhpcyBkZW9wdHMgdGhlIGh5ZHJhdGVcblx0XHRpZiAoaXNIeWRyYXRpbmcpIHtcblx0XHRcdGlmIChvcHRpb25zLl9oeWRyYXRpb25NaXNtYXRjaClcblx0XHRcdFx0b3B0aW9ucy5faHlkcmF0aW9uTWlzbWF0Y2gobmV3Vk5vZGUsIGV4Y2Vzc0RvbUNoaWxkcmVuKTtcblx0XHRcdGlzSHlkcmF0aW5nID0gZmFsc2U7XG5cdFx0fVxuXHRcdC8vIHdlIGNyZWF0ZWQgYSBuZXcgcGFyZW50LCBzbyBub25lIG9mIHRoZSBwcmV2aW91c2x5IGF0dGFjaGVkIGNoaWxkcmVuIGNhbiBiZSByZXVzZWQ6XG5cdFx0ZXhjZXNzRG9tQ2hpbGRyZW4gPSBudWxsO1xuXHR9XG5cblx0aWYgKG5vZGVUeXBlID09PSBudWxsKSB7XG5cdFx0Ly8gRHVyaW5nIGh5ZHJhdGlvbiwgd2Ugc3RpbGwgaGF2ZSB0byBzcGxpdCBtZXJnZWQgdGV4dCBmcm9tIFNTUidkIEhUTUwuXG5cdFx0aWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyAmJiAoIWlzSHlkcmF0aW5nIHx8IGRvbS5kYXRhICE9PSBuZXdQcm9wcykpIHtcblx0XHRcdGRvbS5kYXRhID0gbmV3UHJvcHM7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIElmIGV4Y2Vzc0RvbUNoaWxkcmVuIHdhcyBub3QgbnVsbCwgcmVwb3B1bGF0ZSBpdCB3aXRoIHRoZSBjdXJyZW50IGVsZW1lbnQncyBjaGlsZHJlbjpcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9IGV4Y2Vzc0RvbUNoaWxkcmVuICYmIHNsaWNlLmNhbGwoZG9tLmNoaWxkTm9kZXMpO1xuXG5cdFx0b2xkUHJvcHMgPSBvbGRWTm9kZS5wcm9wcyB8fCBFTVBUWV9PQko7XG5cblx0XHQvLyBJZiB3ZSBhcmUgaW4gYSBzaXR1YXRpb24gd2hlcmUgd2UgYXJlIG5vdCBoeWRyYXRpbmcgYnV0IGFyZSB1c2luZ1xuXHRcdC8vIGV4aXN0aW5nIERPTSAoZS5nLiByZXBsYWNlTm9kZSkgd2Ugc2hvdWxkIHJlYWQgdGhlIGV4aXN0aW5nIERPTVxuXHRcdC8vIGF0dHJpYnV0ZXMgdG8gZGlmZiB0aGVtXG5cdFx0aWYgKCFpc0h5ZHJhdGluZyAmJiBleGNlc3NEb21DaGlsZHJlbiAhPSBudWxsKSB7XG5cdFx0XHRvbGRQcm9wcyA9IHt9O1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGRvbS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHZhbHVlID0gZG9tLmF0dHJpYnV0ZXNbaV07XG5cdFx0XHRcdG9sZFByb3BzW3ZhbHVlLm5hbWVdID0gdmFsdWUudmFsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpIGluIG9sZFByb3BzKSB7XG5cdFx0XHR2YWx1ZSA9IG9sZFByb3BzW2ldO1xuXHRcdFx0aWYgKGkgPT0gJ2NoaWxkcmVuJykge1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcpIHtcblx0XHRcdFx0b2xkSHRtbCA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmICghKGkgaW4gbmV3UHJvcHMpKSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHQoaSA9PSAndmFsdWUnICYmICdkZWZhdWx0VmFsdWUnIGluIG5ld1Byb3BzKSB8fFxuXHRcdFx0XHRcdChpID09ICdjaGVja2VkJyAmJiAnZGVmYXVsdENoZWNrZWQnIGluIG5ld1Byb3BzKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIG51bGwsIHZhbHVlLCBuYW1lc3BhY2UpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIER1cmluZyBoeWRyYXRpb24sIHByb3BzIGFyZSBub3QgZGlmZmVkIGF0IGFsbCAoaW5jbHVkaW5nIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKVxuXHRcdC8vIEBUT0RPIHdlIHNob3VsZCB3YXJuIGluIGRlYnVnIG1vZGUgd2hlbiBwcm9wcyBkb24ndCBtYXRjaCBoZXJlLlxuXHRcdGZvciAoaSBpbiBuZXdQcm9wcykge1xuXHRcdFx0dmFsdWUgPSBuZXdQcm9wc1tpXTtcblx0XHRcdGlmIChpID09ICdjaGlsZHJlbicpIHtcblx0XHRcdFx0bmV3Q2hpbGRyZW4gPSB2YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAoaSA9PSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnKSB7XG5cdFx0XHRcdG5ld0h0bWwgPSB2YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAoaSA9PSAndmFsdWUnKSB7XG5cdFx0XHRcdGlucHV0VmFsdWUgPSB2YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAoaSA9PSAnY2hlY2tlZCcpIHtcblx0XHRcdFx0Y2hlY2tlZCA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0KCFpc0h5ZHJhdGluZyB8fCB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykgJiZcblx0XHRcdFx0b2xkUHJvcHNbaV0gIT09IHZhbHVlXG5cdFx0XHQpIHtcblx0XHRcdFx0c2V0UHJvcGVydHkoZG9tLCBpLCB2YWx1ZSwgb2xkUHJvcHNbaV0sIG5hbWVzcGFjZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gSWYgdGhlIG5ldyB2bm9kZSBkaWRuJ3QgaGF2ZSBkYW5nZXJvdXNseVNldElubmVySFRNTCwgZGlmZiBpdHMgY2hpbGRyZW5cblx0XHRpZiAobmV3SHRtbCkge1xuXHRcdFx0Ly8gQXZvaWQgcmUtYXBwbHlpbmcgdGhlIHNhbWUgJ19faHRtbCcgaWYgaXQgZGlkIG5vdCBjaGFuZ2VkIGJldHdlZW4gcmUtcmVuZGVyXG5cdFx0XHRpZiAoXG5cdFx0XHRcdCFpc0h5ZHJhdGluZyAmJlxuXHRcdFx0XHQoIW9sZEh0bWwgfHxcblx0XHRcdFx0XHQobmV3SHRtbC5fX2h0bWwgIT09IG9sZEh0bWwuX19odG1sICYmXG5cdFx0XHRcdFx0XHRuZXdIdG1sLl9faHRtbCAhPT0gZG9tLmlubmVySFRNTCkpXG5cdFx0XHQpIHtcblx0XHRcdFx0ZG9tLmlubmVySFRNTCA9IG5ld0h0bWwuX19odG1sO1xuXHRcdFx0fVxuXG5cdFx0XHRuZXdWTm9kZS5fY2hpbGRyZW4gPSBbXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKG9sZEh0bWwpIGRvbS5pbm5lckhUTUwgPSAnJztcblxuXHRcdFx0ZGlmZkNoaWxkcmVuKFxuXHRcdFx0XHRkb20sXG5cdFx0XHRcdGlzQXJyYXkobmV3Q2hpbGRyZW4pID8gbmV3Q2hpbGRyZW4gOiBbbmV3Q2hpbGRyZW5dLFxuXHRcdFx0XHRuZXdWTm9kZSxcblx0XHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRcdGdsb2JhbENvbnRleHQsXG5cdFx0XHRcdG5vZGVUeXBlID09PSAnZm9yZWlnbk9iamVjdCdcblx0XHRcdFx0XHQ/ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJ1xuXHRcdFx0XHRcdDogbmFtZXNwYWNlLFxuXHRcdFx0XHRleGNlc3NEb21DaGlsZHJlbixcblx0XHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuXG5cdFx0XHRcdFx0PyBleGNlc3NEb21DaGlsZHJlblswXVxuXHRcdFx0XHRcdDogb2xkVk5vZGUuX2NoaWxkcmVuICYmIGdldERvbVNpYmxpbmcob2xkVk5vZGUsIDApLFxuXHRcdFx0XHRpc0h5ZHJhdGluZyxcblx0XHRcdFx0cmVmUXVldWVcblx0XHRcdCk7XG5cblx0XHRcdC8vIFJlbW92ZSBjaGlsZHJlbiB0aGF0IGFyZSBub3QgcGFydCBvZiBhbnkgdm5vZGUuXG5cdFx0XHRpZiAoZXhjZXNzRG9tQ2hpbGRyZW4gIT0gbnVsbCkge1xuXHRcdFx0XHRmb3IgKGkgPSBleGNlc3NEb21DaGlsZHJlbi5sZW5ndGg7IGktLTsgKSB7XG5cdFx0XHRcdFx0cmVtb3ZlTm9kZShleGNlc3NEb21DaGlsZHJlbltpXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBcyBhYm92ZSwgZG9uJ3QgZGlmZiBwcm9wcyBkdXJpbmcgaHlkcmF0aW9uXG5cdFx0aWYgKCFpc0h5ZHJhdGluZykge1xuXHRcdFx0aSA9ICd2YWx1ZSc7XG5cdFx0XHRpZiAobm9kZVR5cGUgPT09ICdwcm9ncmVzcycgJiYgaW5wdXRWYWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRcdGRvbS5yZW1vdmVBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRpbnB1dFZhbHVlICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdFx0Ly8gIzI3NTYgRm9yIHRoZSA8cHJvZ3Jlc3M+LWVsZW1lbnQgdGhlIGluaXRpYWwgdmFsdWUgaXMgMCxcblx0XHRcdFx0Ly8gZGVzcGl0ZSB0aGUgYXR0cmlidXRlIG5vdCBiZWluZyBwcmVzZW50LiBXaGVuIHRoZSBhdHRyaWJ1dGVcblx0XHRcdFx0Ly8gaXMgbWlzc2luZyB0aGUgcHJvZ3Jlc3MgYmFyIGlzIHRyZWF0ZWQgYXMgaW5kZXRlcm1pbmF0ZS5cblx0XHRcdFx0Ly8gVG8gZml4IHRoYXQgd2UnbGwgYWx3YXlzIHVwZGF0ZSBpdCB3aGVuIGl0IGlzIDAgZm9yIHByb2dyZXNzIGVsZW1lbnRzXG5cdFx0XHRcdChpbnB1dFZhbHVlICE9PSBkb21baV0gfHxcblx0XHRcdFx0XHQobm9kZVR5cGUgPT09ICdwcm9ncmVzcycgJiYgIWlucHV0VmFsdWUpIHx8XG5cdFx0XHRcdFx0Ly8gVGhpcyBpcyBvbmx5IGZvciBJRSAxMSB0byBmaXggPHNlbGVjdD4gdmFsdWUgbm90IGJlaW5nIHVwZGF0ZWQuXG5cdFx0XHRcdFx0Ly8gVG8gYXZvaWQgYSBzdGFsZSBzZWxlY3QgdmFsdWUgd2UgbmVlZCB0byBzZXQgdGhlIG9wdGlvbi52YWx1ZVxuXHRcdFx0XHRcdC8vIGFnYWluLCB3aGljaCB0cmlnZ2VycyBJRTExIHRvIHJlLWV2YWx1YXRlIHRoZSBzZWxlY3QgdmFsdWVcblx0XHRcdFx0XHQobm9kZVR5cGUgPT09ICdvcHRpb24nICYmIGlucHV0VmFsdWUgIT09IG9sZFByb3BzW2ldKSlcblx0XHRcdCkge1xuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIGlucHV0VmFsdWUsIG9sZFByb3BzW2ldLCBuYW1lc3BhY2UpO1xuXHRcdFx0fVxuXG5cdFx0XHRpID0gJ2NoZWNrZWQnO1xuXHRcdFx0aWYgKGNoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiBjaGVja2VkICE9PSBkb21baV0pIHtcblx0XHRcdFx0c2V0UHJvcGVydHkoZG9tLCBpLCBjaGVja2VkLCBvbGRQcm9wc1tpXSwgbmFtZXNwYWNlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZG9tO1xufVxuXG4vKipcbiAqIEludm9rZSBvciB1cGRhdGUgYSByZWYsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGlzIGEgZnVuY3Rpb24gb3Igb2JqZWN0IHJlZi5cbiAqIEBwYXJhbSB7UmVmPGFueT4gJiB7IF91bm1vdW50PzogdW5rbm93biB9fSByZWZcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHBhcmFtIHtWTm9kZX0gdm5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UmVmKHJlZiwgdmFsdWUsIHZub2RlKSB7XG5cdHRyeSB7XG5cdFx0aWYgKHR5cGVvZiByZWYgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0bGV0IGhhc1JlZlVubW91bnQgPSB0eXBlb2YgcmVmLl91bm1vdW50ID09ICdmdW5jdGlvbic7XG5cdFx0XHRpZiAoaGFzUmVmVW5tb3VudCkge1xuXHRcdFx0XHQvLyBAdHMtaWdub3JlIFRTIGRvZXNuJ3QgbGlrZSBtb3ZpbmcgbmFycm93aW5nIGNoZWNrcyBpbnRvIHZhcmlhYmxlc1xuXHRcdFx0XHRyZWYuX3VubW91bnQoKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFoYXNSZWZVbm1vdW50IHx8IHZhbHVlICE9IG51bGwpIHtcblx0XHRcdFx0Ly8gU3RvcmUgdGhlIGNsZWFudXAgZnVuY3Rpb24gb24gdGhlIGZ1bmN0aW9uXG5cdFx0XHRcdC8vIGluc3RhbmNlIG9iamVjdCBpdHNlbGYgdG8gYXZvaWQgc2hhcGVcblx0XHRcdFx0Ly8gdHJhbnNpdGlvbmluZyB2bm9kZVxuXHRcdFx0XHRyZWYuX3VubW91bnQgPSByZWYodmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSByZWYuY3VycmVudCA9IHZhbHVlO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCB2bm9kZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBVbm1vdW50IGEgdmlydHVhbCBub2RlIGZyb20gdGhlIHRyZWUgYW5kIGFwcGx5IERPTSBjaGFuZ2VzXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZSBUaGUgdmlydHVhbCBub2RlIHRvIHVubW91bnRcbiAqIEBwYXJhbSB7Vk5vZGV9IHBhcmVudFZOb2RlIFRoZSBwYXJlbnQgb2YgdGhlIFZOb2RlIHRoYXQgaW5pdGlhdGVkIHRoZSB1bm1vdW50XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtza2lwUmVtb3ZlXSBGbGFnIHRoYXQgaW5kaWNhdGVzIHRoYXQgYSBwYXJlbnQgbm9kZSBvZiB0aGVcbiAqIGN1cnJlbnQgZWxlbWVudCBpcyBhbHJlYWR5IGRldGFjaGVkIGZyb20gdGhlIERPTS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVubW91bnQodm5vZGUsIHBhcmVudFZOb2RlLCBza2lwUmVtb3ZlKSB7XG5cdGxldCByO1xuXHRpZiAob3B0aW9ucy51bm1vdW50KSBvcHRpb25zLnVubW91bnQodm5vZGUpO1xuXG5cdGlmICgociA9IHZub2RlLnJlZikpIHtcblx0XHRpZiAoIXIuY3VycmVudCB8fCByLmN1cnJlbnQgPT09IHZub2RlLl9kb20pIHtcblx0XHRcdGFwcGx5UmVmKHIsIG51bGwsIHBhcmVudFZOb2RlKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoKHIgPSB2bm9kZS5fY29tcG9uZW50KSAhPSBudWxsKSB7XG5cdFx0aWYgKHIuY29tcG9uZW50V2lsbFVubW91bnQpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHIuY29tcG9uZW50V2lsbFVubW91bnQoKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBwYXJlbnRWTm9kZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ci5iYXNlID0gci5fcGFyZW50RG9tID0gbnVsbDtcblx0fVxuXG5cdGlmICgociA9IHZub2RlLl9jaGlsZHJlbikpIHtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHIubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChyW2ldKSB7XG5cdFx0XHRcdHVubW91bnQoXG5cdFx0XHRcdFx0cltpXSxcblx0XHRcdFx0XHRwYXJlbnRWTm9kZSxcblx0XHRcdFx0XHRza2lwUmVtb3ZlIHx8IHR5cGVvZiB2bm9kZS50eXBlICE9ICdmdW5jdGlvbidcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIXNraXBSZW1vdmUpIHtcblx0XHRyZW1vdmVOb2RlKHZub2RlLl9kb20pO1xuXHR9XG5cblx0Ly8gTXVzdCBiZSBzZXQgdG8gYHVuZGVmaW5lZGAgdG8gcHJvcGVybHkgY2xlYW4gdXAgYF9uZXh0RG9tYFxuXHQvLyBmb3Igd2hpY2ggYG51bGxgIGlzIGEgdmFsaWQgdmFsdWUuIFNlZSBjb21tZW50IGluIGBjcmVhdGUtZWxlbWVudC5qc2Bcblx0dm5vZGUuX2NvbXBvbmVudCA9IHZub2RlLl9wYXJlbnQgPSB2bm9kZS5fZG9tID0gdm5vZGUuX25leHREb20gPSB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGUgYC5yZW5kZXIoKWAgbWV0aG9kIGZvciBhIFBGQyBiYWNraW5nIGluc3RhbmNlLiAqL1xuZnVuY3Rpb24gZG9SZW5kZXIocHJvcHMsIHN0YXRlLCBjb250ZXh0KSB7XG5cdHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KTtcbn1cbiIsICJpbXBvcnQgeyBFTVBUWV9PQkogfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjb21taXRSb290LCBkaWZmIH0gZnJvbSAnLi9kaWZmL2luZGV4JztcbmltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIEZyYWdtZW50IH0gZnJvbSAnLi9jcmVhdGUtZWxlbWVudCc7XG5pbXBvcnQgb3B0aW9ucyBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgc2xpY2UgfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIFJlbmRlciBhIFByZWFjdCB2aXJ0dWFsIG5vZGUgaW50byBhIERPTSBlbGVtZW50XG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkfSB2bm9kZSBUaGUgdmlydHVhbCBub2RlIHRvIHJlbmRlclxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBwYXJlbnREb20gVGhlIERPTSBlbGVtZW50IHRvIHJlbmRlciBpbnRvXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnQgfCBvYmplY3R9IFtyZXBsYWNlTm9kZV0gT3B0aW9uYWw6IEF0dGVtcHQgdG8gcmUtdXNlIGFuXG4gKiBleGlzdGluZyBET00gdHJlZSByb290ZWQgYXQgYHJlcGxhY2VOb2RlYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKHZub2RlLCBwYXJlbnREb20sIHJlcGxhY2VOb2RlKSB7XG5cdGlmIChvcHRpb25zLl9yb290KSBvcHRpb25zLl9yb290KHZub2RlLCBwYXJlbnREb20pO1xuXG5cdC8vIFdlIGFidXNlIHRoZSBgcmVwbGFjZU5vZGVgIHBhcmFtZXRlciBpbiBgaHlkcmF0ZSgpYCB0byBzaWduYWwgaWYgd2UgYXJlIGluXG5cdC8vIGh5ZHJhdGlvbiBtb2RlIG9yIG5vdCBieSBwYXNzaW5nIHRoZSBgaHlkcmF0ZWAgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIERPTVxuXHQvLyBlbGVtZW50Li5cblx0bGV0IGlzSHlkcmF0aW5nID0gdHlwZW9mIHJlcGxhY2VOb2RlID09ICdmdW5jdGlvbic7XG5cblx0Ly8gVG8gYmUgYWJsZSB0byBzdXBwb3J0IGNhbGxpbmcgYHJlbmRlcigpYCBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZVxuXHQvLyBET00gbm9kZSwgd2UgbmVlZCB0byBvYnRhaW4gYSByZWZlcmVuY2UgdG8gdGhlIHByZXZpb3VzIHRyZWUuIFdlIGRvXG5cdC8vIHRoaXMgYnkgYXNzaWduaW5nIGEgbmV3IGBfY2hpbGRyZW5gIHByb3BlcnR5IHRvIERPTSBub2RlcyB3aGljaCBwb2ludHNcblx0Ly8gdG8gdGhlIGxhc3QgcmVuZGVyZWQgdHJlZS4gQnkgZGVmYXVsdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50LCB3aGljaFxuXHQvLyBtZWFucyB0aGF0IHdlIGFyZSBtb3VudGluZyBhIG5ldyB0cmVlIGZvciB0aGUgZmlyc3QgdGltZS5cblx0bGV0IG9sZFZOb2RlID0gaXNIeWRyYXRpbmdcblx0XHQ/IG51bGxcblx0XHQ6IChyZXBsYWNlTm9kZSAmJiByZXBsYWNlTm9kZS5fY2hpbGRyZW4pIHx8IHBhcmVudERvbS5fY2hpbGRyZW47XG5cblx0dm5vZGUgPSAoKCFpc0h5ZHJhdGluZyAmJiByZXBsYWNlTm9kZSkgfHwgcGFyZW50RG9tKS5fY2hpbGRyZW4gPVxuXHRcdGNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIFt2bm9kZV0pO1xuXG5cdC8vIExpc3Qgb2YgZWZmZWN0cyB0aGF0IG5lZWQgdG8gYmUgY2FsbGVkIGFmdGVyIGRpZmZpbmcuXG5cdGxldCBjb21taXRRdWV1ZSA9IFtdLFxuXHRcdHJlZlF1ZXVlID0gW107XG5cdGRpZmYoXG5cdFx0cGFyZW50RG9tLFxuXHRcdC8vIERldGVybWluZSB0aGUgbmV3IHZub2RlIHRyZWUgYW5kIHN0b3JlIGl0IG9uIHRoZSBET00gZWxlbWVudCBvblxuXHRcdC8vIG91ciBjdXN0b20gYF9jaGlsZHJlbmAgcHJvcGVydHkuXG5cdFx0dm5vZGUsXG5cdFx0b2xkVk5vZGUgfHwgRU1QVFlfT0JKLFxuXHRcdEVNUFRZX09CSixcblx0XHRwYXJlbnREb20ubmFtZXNwYWNlVVJJLFxuXHRcdCFpc0h5ZHJhdGluZyAmJiByZXBsYWNlTm9kZVxuXHRcdFx0PyBbcmVwbGFjZU5vZGVdXG5cdFx0XHQ6IG9sZFZOb2RlXG5cdFx0XHRcdD8gbnVsbFxuXHRcdFx0XHQ6IHBhcmVudERvbS5maXJzdENoaWxkXG5cdFx0XHRcdFx0PyBzbGljZS5jYWxsKHBhcmVudERvbS5jaGlsZE5vZGVzKVxuXHRcdFx0XHRcdDogbnVsbCxcblx0XHRjb21taXRRdWV1ZSxcblx0XHQhaXNIeWRyYXRpbmcgJiYgcmVwbGFjZU5vZGVcblx0XHRcdD8gcmVwbGFjZU5vZGVcblx0XHRcdDogb2xkVk5vZGVcblx0XHRcdFx0PyBvbGRWTm9kZS5fZG9tXG5cdFx0XHRcdDogcGFyZW50RG9tLmZpcnN0Q2hpbGQsXG5cdFx0aXNIeWRyYXRpbmcsXG5cdFx0cmVmUXVldWVcblx0KTtcblxuXHQvLyBGbHVzaCBhbGwgcXVldWVkIGVmZmVjdHNcblx0Y29tbWl0Um9vdChjb21taXRRdWV1ZSwgdm5vZGUsIHJlZlF1ZXVlKTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYW4gZXhpc3RpbmcgRE9NIGVsZW1lbnQgd2l0aCBkYXRhIGZyb20gYSBQcmVhY3QgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkfSB2bm9kZSBUaGUgdmlydHVhbCBub2RlIHRvIHJlbmRlclxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBwYXJlbnREb20gVGhlIERPTSBlbGVtZW50IHRvIHVwZGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHlkcmF0ZSh2bm9kZSwgcGFyZW50RG9tKSB7XG5cdHJlbmRlcih2bm9kZSwgcGFyZW50RG9tLCBoeWRyYXRlKTtcbn1cbiIsICIvKipcbiAqIEZpbmQgdGhlIGNsb3Nlc3QgZXJyb3IgYm91bmRhcnkgdG8gYSB0aHJvd24gZXJyb3IgYW5kIGNhbGwgaXRcbiAqIEBwYXJhbSB7b2JqZWN0fSBlcnJvciBUaGUgdGhyb3duIHZhbHVlXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZSBUaGUgdm5vZGUgdGhhdCB0aHJldyB0aGUgZXJyb3IgdGhhdCB3YXMgY2F1Z2h0IChleGNlcHRcbiAqIGZvciB1bm1vdW50aW5nIHdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgdGhlIGhpZ2hlc3QgcGFyZW50IHRoYXQgd2FzIGJlaW5nXG4gKiB1bm1vdW50ZWQpXG4gKiBAcGFyYW0ge1ZOb2RlfSBbb2xkVk5vZGVdXG4gKiBAcGFyYW0ge0Vycm9ySW5mb30gW2Vycm9ySW5mb11cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9jYXRjaEVycm9yKGVycm9yLCB2bm9kZSwgb2xkVk5vZGUsIGVycm9ySW5mbykge1xuXHQvKiogQHR5cGUge0NvbXBvbmVudH0gKi9cblx0bGV0IGNvbXBvbmVudCxcblx0XHQvKiogQHR5cGUge0NvbXBvbmVudFR5cGV9ICovXG5cdFx0Y3Rvcixcblx0XHQvKiogQHR5cGUge2Jvb2xlYW59ICovXG5cdFx0aGFuZGxlZDtcblxuXHRmb3IgKDsgKHZub2RlID0gdm5vZGUuX3BhcmVudCk7ICkge1xuXHRcdGlmICgoY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudCkgJiYgIWNvbXBvbmVudC5fcHJvY2Vzc2luZ0V4Y2VwdGlvbikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y3RvciA9IGNvbXBvbmVudC5jb25zdHJ1Y3RvcjtcblxuXHRcdFx0XHRpZiAoY3RvciAmJiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50LnNldFN0YXRlKGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoY29tcG9uZW50LmNvbXBvbmVudERpZENhdGNoICE9IG51bGwpIHtcblx0XHRcdFx0XHRjb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbyB8fCB7fSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaGlzIGlzIGFuIGVycm9yIGJvdW5kYXJ5LiBNYXJrIGl0IGFzIGhhdmluZyBiYWlsZWQgb3V0LCBhbmQgd2hldGhlciBpdCB3YXMgbWlkLWh5ZHJhdGlvbi5cblx0XHRcdFx0aWYgKGhhbmRsZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gKGNvbXBvbmVudC5fcGVuZGluZ0Vycm9yID0gY29tcG9uZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRlcnJvciA9IGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dGhyb3cgZXJyb3I7XG59XG4iLCAiaW1wb3J0IHsgYXNzaWduLCBzbGljZSB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBjcmVhdGVWTm9kZSB9IGZyb20gJy4vY3JlYXRlLWVsZW1lbnQnO1xuXG4vKipcbiAqIENsb25lcyB0aGUgZ2l2ZW4gVk5vZGUsIG9wdGlvbmFsbHkgYWRkaW5nIGF0dHJpYnV0ZXMvcHJvcHMgYW5kIHJlcGxhY2luZyBpdHNcbiAqIGNoaWxkcmVuLlxuICogQHBhcmFtIHtWTm9kZX0gdm5vZGUgVGhlIHZpcnR1YWwgRE9NIGVsZW1lbnQgdG8gY2xvbmVcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBBdHRyaWJ1dGVzL3Byb3BzIHRvIGFkZCB3aGVuIGNsb25pbmdcbiAqIEBwYXJhbSB7QXJyYXk8Q29tcG9uZW50Q2hpbGRyZW4+fSByZXN0IEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyB3aWxsIGJlIHVzZWRcbiAqIGFzIHJlcGxhY2VtZW50IGNoaWxkcmVuLlxuICogQHJldHVybnMge1ZOb2RlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVFbGVtZW50KHZub2RlLCBwcm9wcywgY2hpbGRyZW4pIHtcblx0bGV0IG5vcm1hbGl6ZWRQcm9wcyA9IGFzc2lnbih7fSwgdm5vZGUucHJvcHMpLFxuXHRcdGtleSxcblx0XHRyZWYsXG5cdFx0aTtcblxuXHRsZXQgZGVmYXVsdFByb3BzO1xuXG5cdGlmICh2bm9kZS50eXBlICYmIHZub2RlLnR5cGUuZGVmYXVsdFByb3BzKSB7XG5cdFx0ZGVmYXVsdFByb3BzID0gdm5vZGUudHlwZS5kZWZhdWx0UHJvcHM7XG5cdH1cblxuXHRmb3IgKGkgaW4gcHJvcHMpIHtcblx0XHRpZiAoaSA9PSAna2V5Jykga2V5ID0gcHJvcHNbaV07XG5cdFx0ZWxzZSBpZiAoaSA9PSAncmVmJykgcmVmID0gcHJvcHNbaV07XG5cdFx0ZWxzZSBpZiAocHJvcHNbaV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gZGVmYXVsdFByb3BzW2ldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRub3JtYWxpemVkUHJvcHNbaV0gPSBwcm9wc1tpXTtcblx0XHR9XG5cdH1cblxuXHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcblx0XHRub3JtYWxpemVkUHJvcHMuY2hpbGRyZW4gPVxuXHRcdFx0YXJndW1lbnRzLmxlbmd0aCA+IDMgPyBzbGljZS5jYWxsKGFyZ3VtZW50cywgMikgOiBjaGlsZHJlbjtcblx0fVxuXG5cdHJldHVybiBjcmVhdGVWTm9kZShcblx0XHR2bm9kZS50eXBlLFxuXHRcdG5vcm1hbGl6ZWRQcm9wcyxcblx0XHRrZXkgfHwgdm5vZGUua2V5LFxuXHRcdHJlZiB8fCB2bm9kZS5yZWYsXG5cdFx0bnVsbFxuXHQpO1xufVxuIiwgImltcG9ydCB7IG9wdGlvbnMgYXMgX29wdGlvbnMgfSBmcm9tICdwcmVhY3QnO1xuXG4vKiogQHR5cGUge251bWJlcn0gKi9cbmxldCBjdXJyZW50SW5kZXg7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50fSAqL1xubGV0IGN1cnJlbnRDb21wb25lbnQ7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50fSAqL1xubGV0IHByZXZpb3VzQ29tcG9uZW50O1xuXG4vKiogQHR5cGUge251bWJlcn0gKi9cbmxldCBjdXJyZW50SG9vayA9IDA7XG5cbi8qKiBAdHlwZSB7QXJyYXk8aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50Pn0gKi9cbmxldCBhZnRlclBhaW50RWZmZWN0cyA9IFtdO1xuXG4vLyBDYXN0IHRvIHVzZSBpbnRlcm5hbCBPcHRpb25zIHR5cGVcbmNvbnN0IG9wdGlvbnMgPSAvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLk9wdGlvbnN9ICovIChfb3B0aW9ucyk7XG5cbmxldCBvbGRCZWZvcmVEaWZmID0gb3B0aW9ucy5fZGlmZjtcbmxldCBvbGRCZWZvcmVSZW5kZXIgPSBvcHRpb25zLl9yZW5kZXI7XG5sZXQgb2xkQWZ0ZXJEaWZmID0gb3B0aW9ucy5kaWZmZWQ7XG5sZXQgb2xkQ29tbWl0ID0gb3B0aW9ucy5fY29tbWl0O1xubGV0IG9sZEJlZm9yZVVubW91bnQgPSBvcHRpb25zLnVubW91bnQ7XG5sZXQgb2xkUm9vdCA9IG9wdGlvbnMuX3Jvb3Q7XG5cbmNvbnN0IFJBRl9USU1FT1VUID0gMTAwO1xubGV0IHByZXZSYWY7XG5cbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMuX2RpZmYgPSB2bm9kZSA9PiB7XG5cdGN1cnJlbnRDb21wb25lbnQgPSBudWxsO1xuXHRpZiAob2xkQmVmb3JlRGlmZikgb2xkQmVmb3JlRGlmZih2bm9kZSk7XG59O1xuXG5vcHRpb25zLl9yb290ID0gKHZub2RlLCBwYXJlbnREb20pID0+IHtcblx0aWYgKHZub2RlICYmIHBhcmVudERvbS5fY2hpbGRyZW4gJiYgcGFyZW50RG9tLl9jaGlsZHJlbi5fbWFzaykge1xuXHRcdHZub2RlLl9tYXNrID0gcGFyZW50RG9tLl9jaGlsZHJlbi5fbWFzaztcblx0fVxuXG5cdGlmIChvbGRSb290KSBvbGRSb290KHZub2RlLCBwYXJlbnREb20pO1xufTtcblxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlKSA9PiB2b2lkfSAqL1xub3B0aW9ucy5fcmVuZGVyID0gdm5vZGUgPT4ge1xuXHRpZiAob2xkQmVmb3JlUmVuZGVyKSBvbGRCZWZvcmVSZW5kZXIodm5vZGUpO1xuXG5cdGN1cnJlbnRDb21wb25lbnQgPSB2bm9kZS5fY29tcG9uZW50O1xuXHRjdXJyZW50SW5kZXggPSAwO1xuXG5cdGNvbnN0IGhvb2tzID0gY3VycmVudENvbXBvbmVudC5fX2hvb2tzO1xuXHRpZiAoaG9va3MpIHtcblx0XHRpZiAocHJldmlvdXNDb21wb25lbnQgPT09IGN1cnJlbnRDb21wb25lbnQpIHtcblx0XHRcdGhvb2tzLl9wZW5kaW5nRWZmZWN0cyA9IFtdO1xuXHRcdFx0Y3VycmVudENvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzID0gW107XG5cdFx0XHRob29rcy5fbGlzdC5mb3JFYWNoKGhvb2tJdGVtID0+IHtcblx0XHRcdFx0aWYgKGhvb2tJdGVtLl9uZXh0VmFsdWUpIHtcblx0XHRcdFx0XHRob29rSXRlbS5fdmFsdWUgPSBob29rSXRlbS5fbmV4dFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGhvb2tJdGVtLl9wZW5kaW5nQXJncyA9IGhvb2tJdGVtLl9uZXh0VmFsdWUgPSB1bmRlZmluZWQ7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aG9va3MuX3BlbmRpbmdFZmZlY3RzLmZvckVhY2goaW52b2tlQ2xlYW51cCk7XG5cdFx0XHRob29rcy5fcGVuZGluZ0VmZmVjdHMuZm9yRWFjaChpbnZva2VFZmZlY3QpO1xuXHRcdFx0aG9va3MuX3BlbmRpbmdFZmZlY3RzID0gW107XG5cdFx0XHRjdXJyZW50SW5kZXggPSAwO1xuXHRcdH1cblx0fVxuXHRwcmV2aW91c0NvbXBvbmVudCA9IGN1cnJlbnRDb21wb25lbnQ7XG59O1xuXG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUpID0+IHZvaWR9ICovXG5vcHRpb25zLmRpZmZlZCA9IHZub2RlID0+IHtcblx0aWYgKG9sZEFmdGVyRGlmZikgb2xkQWZ0ZXJEaWZmKHZub2RlKTtcblxuXHRjb25zdCBjID0gdm5vZGUuX2NvbXBvbmVudDtcblx0aWYgKGMgJiYgYy5fX2hvb2tzKSB7XG5cdFx0aWYgKGMuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMubGVuZ3RoKSBhZnRlclBhaW50KGFmdGVyUGFpbnRFZmZlY3RzLnB1c2goYykpO1xuXHRcdGMuX19ob29rcy5fbGlzdC5mb3JFYWNoKGhvb2tJdGVtID0+IHtcblx0XHRcdGlmIChob29rSXRlbS5fcGVuZGluZ0FyZ3MpIHtcblx0XHRcdFx0aG9va0l0ZW0uX2FyZ3MgPSBob29rSXRlbS5fcGVuZGluZ0FyZ3M7XG5cdFx0XHR9XG5cdFx0XHRob29rSXRlbS5fcGVuZGluZ0FyZ3MgPSB1bmRlZmluZWQ7XG5cdFx0fSk7XG5cdH1cblx0cHJldmlvdXNDb21wb25lbnQgPSBjdXJyZW50Q29tcG9uZW50ID0gbnVsbDtcbn07XG5cbi8vIFRPRE86IEltcHJvdmUgdHlwaW5nIG9mIGNvbW1pdFF1ZXVlIHBhcmFtZXRlclxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlLCBjb21taXRRdWV1ZTogYW55KSA9PiB2b2lkfSAqL1xub3B0aW9ucy5fY29tbWl0ID0gKHZub2RlLCBjb21taXRRdWV1ZSkgPT4ge1xuXHRjb21taXRRdWV1ZS5zb21lKGNvbXBvbmVudCA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzLmZvckVhY2goaW52b2tlQ2xlYW51cCk7XG5cdFx0XHRjb21wb25lbnQuX3JlbmRlckNhbGxiYWNrcyA9IGNvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzLmZpbHRlcihjYiA9PlxuXHRcdFx0XHRjYi5fdmFsdWUgPyBpbnZva2VFZmZlY3QoY2IpIDogdHJ1ZVxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRjb21taXRRdWV1ZS5zb21lKGMgPT4ge1xuXHRcdFx0XHRpZiAoYy5fcmVuZGVyQ2FsbGJhY2tzKSBjLl9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdH0pO1xuXHRcdFx0Y29tbWl0UXVldWUgPSBbXTtcblx0XHRcdG9wdGlvbnMuX2NhdGNoRXJyb3IoZSwgY29tcG9uZW50Ll92bm9kZSk7XG5cdFx0fVxuXHR9KTtcblxuXHRpZiAob2xkQ29tbWl0KSBvbGRDb21taXQodm5vZGUsIGNvbW1pdFF1ZXVlKTtcbn07XG5cbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMudW5tb3VudCA9IHZub2RlID0+IHtcblx0aWYgKG9sZEJlZm9yZVVubW91bnQpIG9sZEJlZm9yZVVubW91bnQodm5vZGUpO1xuXG5cdGNvbnN0IGMgPSB2bm9kZS5fY29tcG9uZW50O1xuXHRpZiAoYyAmJiBjLl9faG9va3MpIHtcblx0XHRsZXQgaGFzRXJyb3JlZDtcblx0XHRjLl9faG9va3MuX2xpc3QuZm9yRWFjaChzID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGludm9rZUNsZWFudXAocyk7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGhhc0Vycm9yZWQgPSBlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGMuX19ob29rcyA9IHVuZGVmaW5lZDtcblx0XHRpZiAoaGFzRXJyb3JlZCkgb3B0aW9ucy5fY2F0Y2hFcnJvcihoYXNFcnJvcmVkLCBjLl92bm9kZSk7XG5cdH1cbn07XG5cbi8qKlxuICogR2V0IGEgaG9vaydzIHN0YXRlIGZyb20gdGhlIGN1cnJlbnRDb21wb25lbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGhvb2sgdG8gZ2V0XG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgaW5kZXggb2YgdGhlIGhvb2sgdG8gZ2V0XG4gKiBAcmV0dXJucyB7YW55fVxuICovXG5mdW5jdGlvbiBnZXRIb29rU3RhdGUoaW5kZXgsIHR5cGUpIHtcblx0aWYgKG9wdGlvbnMuX2hvb2spIHtcblx0XHRvcHRpb25zLl9ob29rKGN1cnJlbnRDb21wb25lbnQsIGluZGV4LCBjdXJyZW50SG9vayB8fCB0eXBlKTtcblx0fVxuXHRjdXJyZW50SG9vayA9IDA7XG5cblx0Ly8gTGFyZ2VseSBpbnNwaXJlZCBieTpcblx0Ly8gKiBodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbC1rbGVpbi9mdW5jeS5qcy9ibG9iL2Y2YmU3MzQ2OGU2ZWM0NmIwZmY1YWEzY2M0YzliYWY3MmEyOTAyNWEvc3JjL2hvb2tzL2NvcmVfaG9va3MubWpzXG5cdC8vICogaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWwta2xlaW4vZnVuY3kuanMvYmxvYi82NTBiZWFhNThjNDNjMzNhNzQ4MjBhM2M5OGIzYzcwNzljZjJlMzMzL3NyYy9yZW5kZXJlci5tanNcblx0Ly8gT3RoZXIgaW1wbGVtZW50YXRpb25zIHRvIGxvb2sgYXQ6XG5cdC8vICogaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL21ub3gwNXFwOFxuXHRjb25zdCBob29rcyA9XG5cdFx0Y3VycmVudENvbXBvbmVudC5fX2hvb2tzIHx8XG5cdFx0KGN1cnJlbnRDb21wb25lbnQuX19ob29rcyA9IHtcblx0XHRcdF9saXN0OiBbXSxcblx0XHRcdF9wZW5kaW5nRWZmZWN0czogW11cblx0XHR9KTtcblxuXHRpZiAoaW5kZXggPj0gaG9va3MuX2xpc3QubGVuZ3RoKSB7XG5cdFx0aG9va3MuX2xpc3QucHVzaCh7fSk7XG5cdH1cblxuXHRyZXR1cm4gaG9va3MuX2xpc3RbaW5kZXhdO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gU1xuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5EaXNwYXRjaDxpbXBvcnQoJy4vaW5kZXgnKS5TdGF0ZVVwZGF0ZXI8Uz4+fSBbaW5pdGlhbFN0YXRlXVxuICogQHJldHVybnMge1tTLCAoc3RhdGU6IFMpID0+IHZvaWRdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG5cdGN1cnJlbnRIb29rID0gMTtcblx0cmV0dXJuIHVzZVJlZHVjZXIoaW52b2tlT3JSZXR1cm4sIGluaXRpYWxTdGF0ZSk7XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBTXG4gKiBAdGVtcGxhdGUge3Vua25vd259IEFcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2luZGV4JykuUmVkdWNlcjxTLCBBPn0gcmVkdWNlclxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5EaXNwYXRjaDxpbXBvcnQoJy4vaW5kZXgnKS5TdGF0ZVVwZGF0ZXI8Uz4+fSBpbml0aWFsU3RhdGVcbiAqIEBwYXJhbSB7KGluaXRpYWxTdGF0ZTogYW55KSA9PiB2b2lkfSBbaW5pdF1cbiAqIEByZXR1cm5zIHtbIFMsIChzdGF0ZTogUykgPT4gdm9pZCBdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsU3RhdGUsIGluaXQpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5SZWR1Y2VySG9va1N0YXRlfSAqL1xuXHRjb25zdCBob29rU3RhdGUgPSBnZXRIb29rU3RhdGUoY3VycmVudEluZGV4KyssIDIpO1xuXHRob29rU3RhdGUuX3JlZHVjZXIgPSByZWR1Y2VyO1xuXHRpZiAoIWhvb2tTdGF0ZS5fY29tcG9uZW50KSB7XG5cdFx0aG9va1N0YXRlLl92YWx1ZSA9IFtcblx0XHRcdCFpbml0ID8gaW52b2tlT3JSZXR1cm4odW5kZWZpbmVkLCBpbml0aWFsU3RhdGUpIDogaW5pdChpbml0aWFsU3RhdGUpLFxuXG5cdFx0XHRhY3Rpb24gPT4ge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50VmFsdWUgPSBob29rU3RhdGUuX25leHRWYWx1ZVxuXHRcdFx0XHRcdD8gaG9va1N0YXRlLl9uZXh0VmFsdWVbMF1cblx0XHRcdFx0XHQ6IGhvb2tTdGF0ZS5fdmFsdWVbMF07XG5cdFx0XHRcdGNvbnN0IG5leHRWYWx1ZSA9IGhvb2tTdGF0ZS5fcmVkdWNlcihjdXJyZW50VmFsdWUsIGFjdGlvbik7XG5cblx0XHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSAhPT0gbmV4dFZhbHVlKSB7XG5cdFx0XHRcdFx0aG9va1N0YXRlLl9uZXh0VmFsdWUgPSBbbmV4dFZhbHVlLCBob29rU3RhdGUuX3ZhbHVlWzFdXTtcblx0XHRcdFx0XHRob29rU3RhdGUuX2NvbXBvbmVudC5zZXRTdGF0ZSh7fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRdO1xuXG5cdFx0aG9va1N0YXRlLl9jb21wb25lbnQgPSBjdXJyZW50Q29tcG9uZW50O1xuXG5cdFx0aWYgKCFjdXJyZW50Q29tcG9uZW50Ll9oYXNTY3VGcm9tSG9va3MpIHtcblx0XHRcdGN1cnJlbnRDb21wb25lbnQuX2hhc1NjdUZyb21Ib29rcyA9IHRydWU7XG5cdFx0XHRsZXQgcHJldlNjdSA9IGN1cnJlbnRDb21wb25lbnQuc2hvdWxkQ29tcG9uZW50VXBkYXRlO1xuXHRcdFx0Y29uc3QgcHJldkNXVSA9IGN1cnJlbnRDb21wb25lbnQuY29tcG9uZW50V2lsbFVwZGF0ZTtcblxuXHRcdFx0Ly8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgZm9yY2VkIHVwZGF0ZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCB3aWxsXG5cdFx0XHQvLyBub3QgYmUgY2FsbGVkLiBCdXQgd2UgdXNlIHRoYXQgdG8gdXBkYXRlIHRoZSBob29rIHZhbHVlcywgc28gd2Vcblx0XHRcdC8vIG5lZWQgdG8gY2FsbCBpdC5cblx0XHRcdGN1cnJlbnRDb21wb25lbnQuY29tcG9uZW50V2lsbFVwZGF0ZSA9IGZ1bmN0aW9uIChwLCBzLCBjKSB7XG5cdFx0XHRcdGlmICh0aGlzLl9mb3JjZSkge1xuXHRcdFx0XHRcdGxldCB0bXAgPSBwcmV2U2N1O1xuXHRcdFx0XHRcdC8vIENsZWFyIHRvIGF2b2lkIG90aGVyIHNDVSBob29rcyBmcm9tIGJlaW5nIGNhbGxlZFxuXHRcdFx0XHRcdHByZXZTY3UgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0dXBkYXRlSG9va1N0YXRlKHAsIHMsIGMpO1xuXHRcdFx0XHRcdHByZXZTY3UgPSB0bXA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAocHJldkNXVSkgcHJldkNXVS5jYWxsKHRoaXMsIHAsIHMsIGMpO1xuXHRcdFx0fTtcblxuXHRcdFx0Ly8gVGhpcyBTQ1UgaGFzIHRoZSBwdXJwb3NlIG9mIGJhaWxpbmcgb3V0IGFmdGVyIHJlcGVhdGVkIHVwZGF0ZXNcblx0XHRcdC8vIHRvIHN0YXRlZnVsIGhvb2tzLlxuXHRcdFx0Ly8gd2Ugc3RvcmUgdGhlIG5leHQgdmFsdWUgaW4gX25leHRWYWx1ZVswXSBhbmQga2VlcCBkb2luZyB0aGF0IGZvciBhbGxcblx0XHRcdC8vIHN0YXRlIHNldHRlcnMsIGlmIHdlIGhhdmUgbmV4dCBzdGF0ZXMgYW5kXG5cdFx0XHQvLyBhbGwgbmV4dCBzdGF0ZXMgd2l0aGluIGEgY29tcG9uZW50IGVuZCB1cCBiZWluZyBlcXVhbCB0byB0aGVpciBvcmlnaW5hbCBzdGF0ZVxuXHRcdFx0Ly8gd2UgYXJlIHNhZmUgdG8gYmFpbCBvdXQgZm9yIHRoaXMgc3BlY2lmaWMgY29tcG9uZW50LlxuXHRcdFx0LyoqXG5cdFx0XHQgKlxuXHRcdFx0ICogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudFtcInNob3VsZENvbXBvbmVudFVwZGF0ZVwiXX1cblx0XHRcdCAqL1xuXHRcdFx0Ly8gQHRzLWlnbm9yZSAtIFdlIGRvbid0IHVzZSBUUyB0byBkb3dudHJhbnNwaWxlXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW5uZXItZGVjbGFyYXRpb25zXG5cdFx0XHRmdW5jdGlvbiB1cGRhdGVIb29rU3RhdGUocCwgcywgYykge1xuXHRcdFx0XHRpZiAoIWhvb2tTdGF0ZS5fY29tcG9uZW50Ll9faG9va3MpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdC8qKiBAdHlwZSB7KHg6IGltcG9ydCgnLi9pbnRlcm5hbCcpLkhvb2tTdGF0ZSkgPT4geCBpcyBpbXBvcnQoJy4vaW50ZXJuYWwnKS5SZWR1Y2VySG9va1N0YXRlfSAqL1xuXHRcdFx0XHRjb25zdCBpc1N0YXRlSG9vayA9IHggPT4gISF4Ll9jb21wb25lbnQ7XG5cdFx0XHRcdGNvbnN0IHN0YXRlSG9va3MgPVxuXHRcdFx0XHRcdGhvb2tTdGF0ZS5fY29tcG9uZW50Ll9faG9va3MuX2xpc3QuZmlsdGVyKGlzU3RhdGVIb29rKTtcblxuXHRcdFx0XHRjb25zdCBhbGxIb29rc0VtcHR5ID0gc3RhdGVIb29rcy5ldmVyeSh4ID0+ICF4Ll9uZXh0VmFsdWUpO1xuXHRcdFx0XHQvLyBXaGVuIHdlIGhhdmUgbm8gdXBkYXRlZCBob29rcyBpbiB0aGUgY29tcG9uZW50IHdlIGludm9rZSB0aGUgcHJldmlvdXMgU0NVIG9yXG5cdFx0XHRcdC8vIHRyYXZlcnNlIHRoZSBWRE9NIHRyZWUgZnVydGhlci5cblx0XHRcdFx0aWYgKGFsbEhvb2tzRW1wdHkpIHtcblx0XHRcdFx0XHRyZXR1cm4gcHJldlNjdSA/IHByZXZTY3UuY2FsbCh0aGlzLCBwLCBzLCBjKSA6IHRydWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBXZSBjaGVjayB3aGV0aGVyIHdlIGhhdmUgY29tcG9uZW50cyB3aXRoIGEgbmV4dFZhbHVlIHNldCB0aGF0XG5cdFx0XHRcdC8vIGhhdmUgdmFsdWVzIHRoYXQgYXJlbid0IGVxdWFsIHRvIG9uZSBhbm90aGVyIHRoaXMgcHVzaGVzXG5cdFx0XHRcdC8vIHVzIHRvIHVwZGF0ZSBmdXJ0aGVyIGRvd24gdGhlIHRyZWVcblx0XHRcdFx0bGV0IHNob3VsZFVwZGF0ZSA9IGZhbHNlO1xuXHRcdFx0XHRzdGF0ZUhvb2tzLmZvckVhY2goaG9va0l0ZW0gPT4ge1xuXHRcdFx0XHRcdGlmIChob29rSXRlbS5fbmV4dFZhbHVlKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50VmFsdWUgPSBob29rSXRlbS5fdmFsdWVbMF07XG5cdFx0XHRcdFx0XHRob29rSXRlbS5fdmFsdWUgPSBob29rSXRlbS5fbmV4dFZhbHVlO1xuXHRcdFx0XHRcdFx0aG9va0l0ZW0uX25leHRWYWx1ZSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50VmFsdWUgIT09IGhvb2tJdGVtLl92YWx1ZVswXSkgc2hvdWxkVXBkYXRlID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHJldHVybiBzaG91bGRVcGRhdGUgfHwgaG9va1N0YXRlLl9jb21wb25lbnQucHJvcHMgIT09IHBcblx0XHRcdFx0XHQ/IHByZXZTY3Vcblx0XHRcdFx0XHRcdD8gcHJldlNjdS5jYWxsKHRoaXMsIHAsIHMsIGMpXG5cdFx0XHRcdFx0XHQ6IHRydWVcblx0XHRcdFx0XHQ6IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRjdXJyZW50Q29tcG9uZW50LnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IHVwZGF0ZUhvb2tTdGF0ZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gaG9va1N0YXRlLl9uZXh0VmFsdWUgfHwgaG9va1N0YXRlLl92YWx1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdH0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBhcmdzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVmZmVjdChjYWxsYmFjaywgYXJncykge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdEhvb2tTdGF0ZX0gKi9cblx0Y29uc3Qgc3RhdGUgPSBnZXRIb29rU3RhdGUoY3VycmVudEluZGV4KyssIDMpO1xuXHRpZiAoIW9wdGlvbnMuX3NraXBFZmZlY3RzICYmIGFyZ3NDaGFuZ2VkKHN0YXRlLl9hcmdzLCBhcmdzKSkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IGNhbGxiYWNrO1xuXHRcdHN0YXRlLl9wZW5kaW5nQXJncyA9IGFyZ3M7XG5cblx0XHRjdXJyZW50Q29tcG9uZW50Ll9faG9va3MuX3BlbmRpbmdFZmZlY3RzLnB1c2goc3RhdGUpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5FZmZlY3R9IGNhbGxiYWNrXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY2FsbGJhY2ssIGFyZ3MpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5FZmZlY3RIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCA0KTtcblx0aWYgKCFvcHRpb25zLl9za2lwRWZmZWN0cyAmJiBhcmdzQ2hhbmdlZChzdGF0ZS5fYXJncywgYXJncykpIHtcblx0XHRzdGF0ZS5fdmFsdWUgPSBjYWxsYmFjaztcblx0XHRzdGF0ZS5fcGVuZGluZ0FyZ3MgPSBhcmdzO1xuXG5cdFx0Y3VycmVudENvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goc3RhdGUpO1xuXHR9XG59XG5cbi8qKiBAdHlwZSB7KGluaXRpYWxWYWx1ZTogdW5rbm93bikgPT4gdW5rbm93bn0gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG5cdGN1cnJlbnRIb29rID0gNTtcblx0cmV0dXJuIHVzZU1lbW8oKCkgPT4gKHsgY3VycmVudDogaW5pdGlhbFZhbHVlIH0pLCBbXSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJlZlxuICogQHBhcmFtIHsoKSA9PiBvYmplY3R9IGNyZWF0ZUhhbmRsZVxuICogQHBhcmFtIHt1bmtub3duW119IGFyZ3NcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZUhhbmRsZSwgYXJncykge1xuXHRjdXJyZW50SG9vayA9IDY7XG5cdHVzZUxheW91dEVmZmVjdChcblx0XHQoKSA9PiB7XG5cdFx0XHRpZiAodHlwZW9mIHJlZiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdHJlZihjcmVhdGVIYW5kbGUoKSk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiByZWYobnVsbCk7XG5cdFx0XHR9IGVsc2UgaWYgKHJlZikge1xuXHRcdFx0XHRyZWYuY3VycmVudCA9IGNyZWF0ZUhhbmRsZSgpO1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4gKHJlZi5jdXJyZW50ID0gbnVsbCk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRhcmdzID09IG51bGwgPyBhcmdzIDogYXJncy5jb25jYXQocmVmKVxuXHQpO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gVFxuICogQHBhcmFtIHsoKSA9PiBUfSBmYWN0b3J5XG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMge1R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZW1vKGZhY3RvcnksIGFyZ3MpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5NZW1vSG9va1N0YXRlPFQ+fSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgNyk7XG5cdGlmIChhcmdzQ2hhbmdlZChzdGF0ZS5fYXJncywgYXJncykpIHtcblx0XHRzdGF0ZS5fdmFsdWUgPSBmYWN0b3J5KCk7XG5cdFx0c3RhdGUuX2FyZ3MgPSBhcmdzO1xuXHRcdHN0YXRlLl9mYWN0b3J5ID0gZmFjdG9yeTtcblx0fVxuXG5cdHJldHVybiBzdGF0ZS5fdmFsdWU7XG59XG5cbi8qKlxuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBjYWxsYmFja1xuICogQHBhcmFtIHt1bmtub3duW119IGFyZ3NcbiAqIEByZXR1cm5zIHsoKSA9PiB2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2FsbGJhY2soY2FsbGJhY2ssIGFyZ3MpIHtcblx0Y3VycmVudEhvb2sgPSA4O1xuXHRyZXR1cm4gdXNlTWVtbygoKSA9PiBjYWxsYmFjaywgYXJncyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5QcmVhY3RDb250ZXh0fSBjb250ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb250ZXh0KGNvbnRleHQpIHtcblx0Y29uc3QgcHJvdmlkZXIgPSBjdXJyZW50Q29tcG9uZW50LmNvbnRleHRbY29udGV4dC5faWRdO1xuXHQvLyBXZSBjb3VsZCBza2lwIHRoaXMgY2FsbCBoZXJlLCBidXQgdGhhbiB3ZSdkIG5vdCBjYWxsXG5cdC8vIGBvcHRpb25zLl9ob29rYC4gV2UgbmVlZCB0byBkbyB0aGF0IGluIG9yZGVyIHRvIG1ha2Vcblx0Ly8gdGhlIGRldnRvb2xzIGF3YXJlIG9mIHRoaXMgaG9vay5cblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db250ZXh0SG9va1N0YXRlfSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgOSk7XG5cdC8vIFRoZSBkZXZ0b29scyBuZWVkcyBhY2Nlc3MgdG8gdGhlIGNvbnRleHQgb2JqZWN0IHRvXG5cdC8vIGJlIGFibGUgdG8gcHVsbCBvZiB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIG5vIHByb3ZpZGVyXG5cdC8vIGlzIHByZXNlbnQgaW4gdGhlIHRyZWUuXG5cdHN0YXRlLl9jb250ZXh0ID0gY29udGV4dDtcblx0aWYgKCFwcm92aWRlcikgcmV0dXJuIGNvbnRleHQuX2RlZmF1bHRWYWx1ZTtcblx0Ly8gVGhpcyBpcyBwcm9iYWJseSBub3Qgc2FmZSB0byBjb252ZXJ0IHRvIFwiIVwiXG5cdGlmIChzdGF0ZS5fdmFsdWUgPT0gbnVsbCkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IHRydWU7XG5cdFx0cHJvdmlkZXIuc3ViKGN1cnJlbnRDb21wb25lbnQpO1xuXHR9XG5cdHJldHVybiBwcm92aWRlci5wcm9wcy52YWx1ZTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5IGEgY3VzdG9tIGxhYmVsIGZvciBhIGN1c3RvbSBob29rIGZvciB0aGUgZGV2dG9vbHMgcGFuZWxcbiAqIEB0eXBlIHs8VD4odmFsdWU6IFQsIGNiPzogKHZhbHVlOiBUKSA9PiBzdHJpbmcgfCBudW1iZXIpID0+IHZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXIpIHtcblx0aWYgKG9wdGlvbnMudXNlRGVidWdWYWx1ZSkge1xuXHRcdG9wdGlvbnMudXNlRGVidWdWYWx1ZShcblx0XHRcdGZvcm1hdHRlciA/IGZvcm1hdHRlcih2YWx1ZSkgOiAvKiogQHR5cGUge2FueX0qLyAodmFsdWUpXG5cdFx0KTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7KGVycm9yOiB1bmtub3duLCBlcnJvckluZm86IGltcG9ydCgncHJlYWN0JykuRXJyb3JJbmZvKSA9PiB2b2lkfSBjYlxuICogQHJldHVybnMge1t1bmtub3duLCAoKSA9PiB2b2lkXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVycm9yQm91bmRhcnkoY2IpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5FcnJvckJvdW5kYXJ5SG9va1N0YXRlfSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMTApO1xuXHRjb25zdCBlcnJTdGF0ZSA9IHVzZVN0YXRlKCk7XG5cdHN0YXRlLl92YWx1ZSA9IGNiO1xuXHRpZiAoIWN1cnJlbnRDb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2gpIHtcblx0XHRjdXJyZW50Q29tcG9uZW50LmNvbXBvbmVudERpZENhdGNoID0gKGVyciwgZXJyb3JJbmZvKSA9PiB7XG5cdFx0XHRpZiAoc3RhdGUuX3ZhbHVlKSBzdGF0ZS5fdmFsdWUoZXJyLCBlcnJvckluZm8pO1xuXHRcdFx0ZXJyU3RhdGVbMV0oZXJyKTtcblx0XHR9O1xuXHR9XG5cdHJldHVybiBbXG5cdFx0ZXJyU3RhdGVbMF0sXG5cdFx0KCkgPT4ge1xuXHRcdFx0ZXJyU3RhdGVbMV0odW5kZWZpbmVkKTtcblx0XHR9XG5cdF07XG59XG5cbi8qKiBAdHlwZSB7KCkgPT4gc3RyaW5nfSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUlkKCkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLklkSG9va1N0YXRlfSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMTEpO1xuXHRpZiAoIXN0YXRlLl92YWx1ZSkge1xuXHRcdC8vIEdyYWIgZWl0aGVyIHRoZSByb290IG5vZGUgb3IgdGhlIG5lYXJlc3QgYXN5bmMgYm91bmRhcnkgbm9kZS5cblx0XHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbC5kJykuVk5vZGV9ICovXG5cdFx0bGV0IHJvb3QgPSBjdXJyZW50Q29tcG9uZW50Ll92bm9kZTtcblx0XHR3aGlsZSAocm9vdCAhPT0gbnVsbCAmJiAhcm9vdC5fbWFzayAmJiByb290Ll9wYXJlbnQgIT09IG51bGwpIHtcblx0XHRcdHJvb3QgPSByb290Ll9wYXJlbnQ7XG5cdFx0fVxuXG5cdFx0bGV0IG1hc2sgPSByb290Ll9tYXNrIHx8IChyb290Ll9tYXNrID0gWzAsIDBdKTtcblx0XHRzdGF0ZS5fdmFsdWUgPSAnUCcgKyBtYXNrWzBdICsgJy0nICsgbWFza1sxXSsrO1xuXHR9XG5cblx0cmV0dXJuIHN0YXRlLl92YWx1ZTtcbn1cblxuLyoqXG4gKiBBZnRlciBwYWludCBlZmZlY3RzIGNvbnN1bWVyLlxuICovXG5mdW5jdGlvbiBmbHVzaEFmdGVyUGFpbnRFZmZlY3RzKCkge1xuXHRsZXQgY29tcG9uZW50O1xuXHR3aGlsZSAoKGNvbXBvbmVudCA9IGFmdGVyUGFpbnRFZmZlY3RzLnNoaWZ0KCkpKSB7XG5cdFx0aWYgKCFjb21wb25lbnQuX3BhcmVudERvbSB8fCAhY29tcG9uZW50Ll9faG9va3MpIGNvbnRpbnVlO1xuXHRcdHRyeSB7XG5cdFx0XHRjb21wb25lbnQuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMuZm9yRWFjaChpbnZva2VDbGVhbnVwKTtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cy5mb3JFYWNoKGludm9rZUVmZmVjdCk7XG5cdFx0XHRjb21wb25lbnQuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMgPSBbXTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRjb21wb25lbnQuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMgPSBbXTtcblx0XHRcdG9wdGlvbnMuX2NhdGNoRXJyb3IoZSwgY29tcG9uZW50Ll92bm9kZSk7XG5cdFx0fVxuXHR9XG59XG5cbmxldCBIQVNfUkFGID0gdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSA9PSAnZnVuY3Rpb24nO1xuXG4vKipcbiAqIFNjaGVkdWxlIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCBhZnRlciB0aGUgYnJvd3NlciBoYXMgYSBjaGFuY2UgdG8gcGFpbnQgYSBuZXcgZnJhbWUuXG4gKiBEbyB0aGlzIGJ5IGNvbWJpbmluZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKHJBRikgKyBzZXRUaW1lb3V0IHRvIGludm9rZSBhIGNhbGxiYWNrIGFmdGVyXG4gKiB0aGUgbmV4dCBicm93c2VyIGZyYW1lLlxuICpcbiAqIEFsc28sIHNjaGVkdWxlIGEgdGltZW91dCBpbiBwYXJhbGxlbCB0byB0aGUgdGhlIHJBRiB0byBlbnN1cmUgdGhlIGNhbGxiYWNrIGlzIGludm9rZWRcbiAqIGV2ZW4gaWYgUkFGIGRvZXNuJ3QgZmlyZSAoZm9yIGV4YW1wbGUgaWYgdGhlIGJyb3dzZXIgdGFiIGlzIG5vdCB2aXNpYmxlKVxuICpcbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gY2FsbGJhY2tcbiAqL1xuZnVuY3Rpb24gYWZ0ZXJOZXh0RnJhbWUoY2FsbGJhY2spIHtcblx0Y29uc3QgZG9uZSA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG5cdFx0aWYgKEhBU19SQUYpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZik7XG5cdFx0c2V0VGltZW91dChjYWxsYmFjayk7XG5cdH07XG5cdGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KGRvbmUsIFJBRl9USU1FT1VUKTtcblxuXHRsZXQgcmFmO1xuXHRpZiAoSEFTX1JBRikge1xuXHRcdHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShkb25lKTtcblx0fVxufVxuXG4vLyBOb3RlOiBpZiBzb21lb25lIHVzZWQgb3B0aW9ucy5kZWJvdW5jZVJlbmRlcmluZyA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSxcbi8vIHRoZW4gZWZmZWN0cyB3aWxsIEFMV0FZUyBydW4gb24gdGhlIE5FWFQgZnJhbWUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBvbmUsIGluY3VycmluZyBhIH4xNm1zIGRlbGF5LlxuLy8gUGVyaGFwcyB0aGlzIGlzIG5vdCBzdWNoIGEgYmlnIGRlYWwuXG4vKipcbiAqIFNjaGVkdWxlIGFmdGVyUGFpbnRFZmZlY3RzIGZsdXNoIGFmdGVyIHRoZSBicm93c2VyIHBhaW50c1xuICogQHBhcmFtIHtudW1iZXJ9IG5ld1F1ZXVlTGVuZ3RoXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYWZ0ZXJQYWludChuZXdRdWV1ZUxlbmd0aCkge1xuXHRpZiAobmV3UXVldWVMZW5ndGggPT09IDEgfHwgcHJldlJhZiAhPT0gb3B0aW9ucy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHtcblx0XHRwcmV2UmFmID0gb3B0aW9ucy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG5cdFx0KHByZXZSYWYgfHwgYWZ0ZXJOZXh0RnJhbWUpKGZsdXNoQWZ0ZXJQYWludEVmZmVjdHMpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Ib29rU3RhdGV9IGhvb2tcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBpbnZva2VDbGVhbnVwKGhvb2spIHtcblx0Ly8gQSBob29rIGNsZWFudXAgY2FuIGludHJvZHVjZSBhIGNhbGwgdG8gcmVuZGVyIHdoaWNoIGNyZWF0ZXMgYSBuZXcgcm9vdCwgdGhpcyB3aWxsIGNhbGwgb3B0aW9ucy52bm9kZVxuXHQvLyBhbmQgbW92ZSB0aGUgY3VycmVudENvbXBvbmVudCBhd2F5LlxuXHRjb25zdCBjb21wID0gY3VycmVudENvbXBvbmVudDtcblx0bGV0IGNsZWFudXAgPSBob29rLl9jbGVhbnVwO1xuXHRpZiAodHlwZW9mIGNsZWFudXAgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdGhvb2suX2NsZWFudXAgPSB1bmRlZmluZWQ7XG5cdFx0Y2xlYW51cCgpO1xuXHR9XG5cblx0Y3VycmVudENvbXBvbmVudCA9IGNvbXA7XG59XG5cbi8qKlxuICogSW52b2tlIGEgSG9vaydzIGVmZmVjdFxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5FZmZlY3RIb29rU3RhdGV9IGhvb2tcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBpbnZva2VFZmZlY3QoaG9vaykge1xuXHQvLyBBIGhvb2sgY2FsbCBjYW4gaW50cm9kdWNlIGEgY2FsbCB0byByZW5kZXIgd2hpY2ggY3JlYXRlcyBhIG5ldyByb290LCB0aGlzIHdpbGwgY2FsbCBvcHRpb25zLnZub2RlXG5cdC8vIGFuZCBtb3ZlIHRoZSBjdXJyZW50Q29tcG9uZW50IGF3YXkuXG5cdGNvbnN0IGNvbXAgPSBjdXJyZW50Q29tcG9uZW50O1xuXHRob29rLl9jbGVhbnVwID0gaG9vay5fdmFsdWUoKTtcblx0Y3VycmVudENvbXBvbmVudCA9IGNvbXA7XG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3duW119IG9sZEFyZ3NcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBuZXdBcmdzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gYXJnc0NoYW5nZWQob2xkQXJncywgbmV3QXJncykge1xuXHRyZXR1cm4gKFxuXHRcdCFvbGRBcmdzIHx8XG5cdFx0b2xkQXJncy5sZW5ndGggIT09IG5ld0FyZ3MubGVuZ3RoIHx8XG5cdFx0bmV3QXJncy5zb21lKChhcmcsIGluZGV4KSA9PiBhcmcgIT09IG9sZEFyZ3NbaW5kZXhdKVxuXHQpO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSBBcmdcbiAqIEBwYXJhbSB7QXJnfSBhcmdcbiAqIEBwYXJhbSB7KGFyZzogQXJnKSA9PiBhbnl9IGZcbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmZ1bmN0aW9uIGludm9rZU9yUmV0dXJuKGFyZywgZikge1xuXHRyZXR1cm4gdHlwZW9mIGYgPT0gJ2Z1bmN0aW9uJyA/IGYoYXJnKSA6IGY7XG59XG4iLCAiLyoqXG4gKiBBc3NpZ24gcHJvcGVydGllcyBmcm9tIGBwcm9wc2AgdG8gYG9iamBcbiAqIEB0ZW1wbGF0ZSBPLCBQIFRoZSBvYmogYW5kIHByb3BzIHR5cGVzXG4gKiBAcGFyYW0ge099IG9iaiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0b1xuICogQHBhcmFtIHtQfSBwcm9wcyBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcmV0dXJucyB7TyAmIFB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24ob2JqLCBwcm9wcykge1xuXHRmb3IgKGxldCBpIGluIHByb3BzKSBvYmpbaV0gPSBwcm9wc1tpXTtcblx0cmV0dXJuIC8qKiBAdHlwZSB7TyAmIFB9ICovIChvYmopO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHR3byBvYmplY3RzIGhhdmUgYSBkaWZmZXJlbnQgc2hhcGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBhXG4gKiBAcGFyYW0ge29iamVjdH0gYlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGFsbG93RGlmZmVycyhhLCBiKSB7XG5cdGZvciAobGV0IGkgaW4gYSkgaWYgKGkgIT09ICdfX3NvdXJjZScgJiYgIShpIGluIGIpKSByZXR1cm4gdHJ1ZTtcblx0Zm9yIChsZXQgaSBpbiBiKSBpZiAoaSAhPT0gJ19fc291cmNlJyAmJiBhW2ldICE9PSBiW2ldKSByZXR1cm4gdHJ1ZTtcblx0cmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHR3byB2YWx1ZXMgYXJlIHRoZSBzYW1lIHZhbHVlXG4gKiBAcGFyYW0geyp9IHhcbiAqIEBwYXJhbSB7Kn0geVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpcyh4LCB5KSB7XG5cdHJldHVybiAoeCA9PT0geSAmJiAoeCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHkpKSB8fCAoeCAhPT0geCAmJiB5ICE9PSB5KTtcbn1cbiIsICJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvd0RpZmZlcnMgfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIENvbXBvbmVudCBjbGFzcyB3aXRoIGEgcHJlZGVmaW5lZCBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCBpbXBsZW1lbnRhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gUHVyZUNvbXBvbmVudChwLCBjKSB7XG5cdHRoaXMucHJvcHMgPSBwO1xuXHR0aGlzLmNvbnRleHQgPSBjO1xufVxuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUgPSBuZXcgQ29tcG9uZW50KCk7XG4vLyBTb21lIHRoaXJkLXBhcnR5IGxpYnJhcmllcyBjaGVjayBpZiB0aGlzIHByb3BlcnR5IGlzIHByZXNlbnRcblB1cmVDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblB1cmVDb21wb25lbnQucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIChwcm9wcywgc3RhdGUpIHtcblx0cmV0dXJuIHNoYWxsb3dEaWZmZXJzKHRoaXMucHJvcHMsIHByb3BzKSB8fCBzaGFsbG93RGlmZmVycyh0aGlzLnN0YXRlLCBzdGF0ZSk7XG59O1xuIiwgImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvd0RpZmZlcnMgfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIE1lbW9pemUgYSBjb21wb25lbnQsIHNvIHRoYXQgaXQgb25seSB1cGRhdGVzIHdoZW4gdGhlIHByb3BzIGFjdHVhbGx5IGhhdmVcbiAqIGNoYW5nZWQuIFRoaXMgd2FzIHByZXZpb3VzbHkga25vd24gYXMgYFJlYWN0LnB1cmVgLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5GdW5jdGlvbkNvbXBvbmVudH0gYyBmdW5jdGlvbmFsIGNvbXBvbmVudFxuICogQHBhcmFtIHsocHJldjogb2JqZWN0LCBuZXh0OiBvYmplY3QpID0+IGJvb2xlYW59IFtjb21wYXJlcl0gQ3VzdG9tIGVxdWFsaXR5IGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuRnVuY3Rpb25Db21wb25lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW1vKGMsIGNvbXBhcmVyKSB7XG5cdGZ1bmN0aW9uIHNob3VsZFVwZGF0ZShuZXh0UHJvcHMpIHtcblx0XHRsZXQgcmVmID0gdGhpcy5wcm9wcy5yZWY7XG5cdFx0bGV0IHVwZGF0ZVJlZiA9IHJlZiA9PSBuZXh0UHJvcHMucmVmO1xuXHRcdGlmICghdXBkYXRlUmVmICYmIHJlZikge1xuXHRcdFx0cmVmLmNhbGwgPyByZWYobnVsbCkgOiAocmVmLmN1cnJlbnQgPSBudWxsKTtcblx0XHR9XG5cblx0XHRpZiAoIWNvbXBhcmVyKSB7XG5cdFx0XHRyZXR1cm4gc2hhbGxvd0RpZmZlcnModGhpcy5wcm9wcywgbmV4dFByb3BzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gIWNvbXBhcmVyKHRoaXMucHJvcHMsIG5leHRQcm9wcykgfHwgIXVwZGF0ZVJlZjtcblx0fVxuXG5cdGZ1bmN0aW9uIE1lbW9lZChwcm9wcykge1xuXHRcdHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gc2hvdWxkVXBkYXRlO1xuXHRcdHJldHVybiBjcmVhdGVFbGVtZW50KGMsIHByb3BzKTtcblx0fVxuXHRNZW1vZWQuZGlzcGxheU5hbWUgPSAnTWVtbygnICsgKGMuZGlzcGxheU5hbWUgfHwgYy5uYW1lKSArICcpJztcblx0TWVtb2VkLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblx0TWVtb2VkLl9mb3J3YXJkZWQgPSB0cnVlO1xuXHRyZXR1cm4gTWVtb2VkO1xufVxuIiwgImltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICdwcmVhY3QnO1xuXG5sZXQgb2xkRGlmZkhvb2sgPSBvcHRpb25zLl9kaWZmO1xub3B0aW9ucy5fZGlmZiA9IHZub2RlID0+IHtcblx0aWYgKHZub2RlLnR5cGUgJiYgdm5vZGUudHlwZS5fZm9yd2FyZGVkICYmIHZub2RlLnJlZikge1xuXHRcdHZub2RlLnByb3BzLnJlZiA9IHZub2RlLnJlZjtcblx0XHR2bm9kZS5yZWYgPSBudWxsO1xuXHR9XG5cdGlmIChvbGREaWZmSG9vaykgb2xkRGlmZkhvb2sodm5vZGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IFJFQUNUX0ZPUldBUkRfU1lNQk9MID1cblx0KHR5cGVvZiBTeW1ib2wgIT0gJ3VuZGVmaW5lZCcgJiZcblx0XHRTeW1ib2wuZm9yICYmXG5cdFx0U3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKSkgfHxcblx0MHhmNDc7XG5cbi8qKlxuICogUGFzcyByZWYgZG93biB0byBhIGNoaWxkLiBUaGlzIGlzIG1haW5seSB1c2VkIGluIGxpYnJhcmllcyB3aXRoIEhPQ3MgdGhhdFxuICogd3JhcCBjb21wb25lbnRzLiBVc2luZyBgZm9yd2FyZFJlZmAgdGhlcmUgaXMgYW4gZWFzeSB3YXkgdG8gZ2V0IGEgcmVmZXJlbmNlXG4gKiBvZiB0aGUgd3JhcHBlZCBjb21wb25lbnQgaW5zdGVhZCBvZiBvbmUgb2YgdGhlIHdyYXBwZXIgaXRzZWxmLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5Gb3J3YXJkRm59IGZuXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuRnVuY3Rpb25Db21wb25lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkUmVmKGZuKSB7XG5cdGZ1bmN0aW9uIEZvcndhcmRlZChwcm9wcykge1xuXHRcdGlmICghKCdyZWYnIGluIHByb3BzKSkgcmV0dXJuIGZuKHByb3BzLCBudWxsKTtcblxuXHRcdGxldCByZWYgPSBwcm9wcy5yZWY7XG5cdFx0ZGVsZXRlIHByb3BzLnJlZjtcblx0XHRjb25zdCByZXN1bHQgPSBmbihwcm9wcywgcmVmKTtcblx0XHRwcm9wcy5yZWYgPSByZWY7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdC8vIG1vYngtcmVhY3QgY2hlY2tzIGZvciB0aGlzIGJlaW5nIHByZXNlbnRcblx0Rm9yd2FyZGVkLiQkdHlwZW9mID0gUkVBQ1RfRk9SV0FSRF9TWU1CT0w7XG5cdC8vIG1vYngtcmVhY3QgaGVhdmlseSByZWxpZXMgb24gaW1wbGVtZW50YXRpb24gZGV0YWlscy5cblx0Ly8gSXQgZXhwZWN0cyBhbiBvYmplY3QgaGVyZSB3aXRoIGEgYHJlbmRlcmAgcHJvcGVydHksXG5cdC8vIGFuZCBwcm90b3R5cGUucmVuZGVyIHdpbGwgZmFpbC4gV2l0aG91dCB0aGlzXG5cdC8vIG1vYngtcmVhY3QgdGhyb3dzLlxuXHRGb3J3YXJkZWQucmVuZGVyID0gRm9yd2FyZGVkO1xuXG5cdEZvcndhcmRlZC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IEZvcndhcmRlZC5fZm9yd2FyZGVkID0gdHJ1ZTtcblx0Rm9yd2FyZGVkLmRpc3BsYXlOYW1lID0gJ0ZvcndhcmRSZWYoJyArIChmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lKSArICcpJztcblx0cmV0dXJuIEZvcndhcmRlZDtcbn1cbiIsICJpbXBvcnQgeyB0b0NoaWxkQXJyYXkgfSBmcm9tICdwcmVhY3QnO1xuXG5jb25zdCBtYXBGbiA9IChjaGlsZHJlbiwgZm4pID0+IHtcblx0aWYgKGNoaWxkcmVuID09IG51bGwpIHJldHVybiBudWxsO1xuXHRyZXR1cm4gdG9DaGlsZEFycmF5KHRvQ2hpbGRBcnJheShjaGlsZHJlbikubWFwKGZuKSk7XG59O1xuXG4vLyBUaGlzIEFQSSBpcyBjb21wbGV0ZWx5IHVubmVjZXNzYXJ5IGZvciBQcmVhY3QsIHNvIGl0J3MgYmFzaWNhbGx5IHBhc3N0aHJvdWdoLlxuZXhwb3J0IGNvbnN0IENoaWxkcmVuID0ge1xuXHRtYXA6IG1hcEZuLFxuXHRmb3JFYWNoOiBtYXBGbixcblx0Y291bnQoY2hpbGRyZW4pIHtcblx0XHRyZXR1cm4gY2hpbGRyZW4gPyB0b0NoaWxkQXJyYXkoY2hpbGRyZW4pLmxlbmd0aCA6IDA7XG5cdH0sXG5cdG9ubHkoY2hpbGRyZW4pIHtcblx0XHRjb25zdCBub3JtYWxpemVkID0gdG9DaGlsZEFycmF5KGNoaWxkcmVuKTtcblx0XHRpZiAobm9ybWFsaXplZC5sZW5ndGggIT09IDEpIHRocm93ICdDaGlsZHJlbi5vbmx5Jztcblx0XHRyZXR1cm4gbm9ybWFsaXplZFswXTtcblx0fSxcblx0dG9BcnJheTogdG9DaGlsZEFycmF5XG59O1xuIiwgImltcG9ydCB7IENvbXBvbmVudCwgY3JlYXRlRWxlbWVudCwgb3B0aW9ucywgRnJhZ21lbnQgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgTU9ERV9IWURSQVRFIH0gZnJvbSAnLi4vLi4vc3JjL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBvbGRDYXRjaEVycm9yID0gb3B0aW9ucy5fY2F0Y2hFcnJvcjtcbm9wdGlvbnMuX2NhdGNoRXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IsIG5ld1ZOb2RlLCBvbGRWTm9kZSwgZXJyb3JJbmZvKSB7XG5cdGlmIChlcnJvci50aGVuKSB7XG5cdFx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5cdFx0bGV0IGNvbXBvbmVudDtcblx0XHRsZXQgdm5vZGUgPSBuZXdWTm9kZTtcblxuXHRcdGZvciAoOyAodm5vZGUgPSB2bm9kZS5fcGFyZW50KTsgKSB7XG5cdFx0XHRpZiAoKGNvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQpICYmIGNvbXBvbmVudC5fY2hpbGREaWRTdXNwZW5kKSB7XG5cdFx0XHRcdGlmIChuZXdWTm9kZS5fZG9tID09IG51bGwpIHtcblx0XHRcdFx0XHRuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0XHRcdFx0XHRuZXdWTm9kZS5fY2hpbGRyZW4gPSBvbGRWTm9kZS5fY2hpbGRyZW47XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gRG9uJ3QgY2FsbCBvbGRDYXRjaEVycm9yIGlmIHdlIGZvdW5kIGEgU3VzcGVuc2Vcblx0XHRcdFx0cmV0dXJuIGNvbXBvbmVudC5fY2hpbGREaWRTdXNwZW5kKGVycm9yLCBuZXdWTm9kZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdG9sZENhdGNoRXJyb3IoZXJyb3IsIG5ld1ZOb2RlLCBvbGRWTm9kZSwgZXJyb3JJbmZvKTtcbn07XG5cbmNvbnN0IG9sZFVubW91bnQgPSBvcHRpb25zLnVubW91bnQ7XG5vcHRpb25zLnVubW91bnQgPSBmdW5jdGlvbiAodm5vZGUpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5cdGNvbnN0IGNvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQ7XG5cdGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50Ll9vblJlc29sdmUpIHtcblx0XHRjb21wb25lbnQuX29uUmVzb2x2ZSgpO1xuXHR9XG5cblx0Ly8gaWYgdGhlIGNvbXBvbmVudCBpcyBzdGlsbCBoeWRyYXRpbmdcblx0Ly8gbW9zdCBsaWtlbHkgaXQgaXMgYmVjYXVzZSB0aGUgY29tcG9uZW50IGlzIHN1c3BlbmRlZFxuXHQvLyB3ZSBzZXQgdGhlIHZub2RlLnR5cGUgYXMgYG51bGxgIHNvIHRoYXQgaXQgaXMgbm90IGEgdHlwZW9mIGZ1bmN0aW9uXG5cdC8vIHNvIHRoZSB1bm1vdW50IHdpbGwgcmVtb3ZlIHRoZSB2bm9kZS5fZG9tXG5cdGlmIChjb21wb25lbnQgJiYgdm5vZGUuX2ZsYWdzICYgTU9ERV9IWURSQVRFKSB7XG5cdFx0dm5vZGUudHlwZSA9IG51bGw7XG5cdH1cblxuXHRpZiAob2xkVW5tb3VudCkgb2xkVW5tb3VudCh2bm9kZSk7XG59O1xuXG5mdW5jdGlvbiBkZXRhY2hlZENsb25lKHZub2RlLCBkZXRhY2hlZFBhcmVudCwgcGFyZW50RG9tKSB7XG5cdGlmICh2bm9kZSkge1xuXHRcdGlmICh2bm9kZS5fY29tcG9uZW50ICYmIHZub2RlLl9jb21wb25lbnQuX19ob29rcykge1xuXHRcdFx0dm5vZGUuX2NvbXBvbmVudC5fX2hvb2tzLl9saXN0LmZvckVhY2goZWZmZWN0ID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBlZmZlY3QuX2NsZWFudXAgPT0gJ2Z1bmN0aW9uJykgZWZmZWN0Ll9jbGVhbnVwKCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dm5vZGUuX2NvbXBvbmVudC5fX2hvb2tzID0gbnVsbDtcblx0XHR9XG5cblx0XHR2bm9kZSA9IGFzc2lnbih7fSwgdm5vZGUpO1xuXHRcdGlmICh2bm9kZS5fY29tcG9uZW50ICE9IG51bGwpIHtcblx0XHRcdGlmICh2bm9kZS5fY29tcG9uZW50Ll9wYXJlbnREb20gPT09IHBhcmVudERvbSkge1xuXHRcdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9wYXJlbnREb20gPSBkZXRhY2hlZFBhcmVudDtcblx0XHRcdH1cblx0XHRcdHZub2RlLl9jb21wb25lbnQgPSBudWxsO1xuXHRcdH1cblxuXHRcdHZub2RlLl9jaGlsZHJlbiA9XG5cdFx0XHR2bm9kZS5fY2hpbGRyZW4gJiZcblx0XHRcdHZub2RlLl9jaGlsZHJlbi5tYXAoY2hpbGQgPT5cblx0XHRcdFx0ZGV0YWNoZWRDbG9uZShjaGlsZCwgZGV0YWNoZWRQYXJlbnQsIHBhcmVudERvbSlcblx0XHRcdCk7XG5cdH1cblxuXHRyZXR1cm4gdm5vZGU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZU9yaWdpbmFsKHZub2RlLCBkZXRhY2hlZFBhcmVudCwgb3JpZ2luYWxQYXJlbnQpIHtcblx0aWYgKHZub2RlICYmIG9yaWdpbmFsUGFyZW50KSB7XG5cdFx0dm5vZGUuX29yaWdpbmFsID0gbnVsbDtcblx0XHR2bm9kZS5fY2hpbGRyZW4gPVxuXHRcdFx0dm5vZGUuX2NoaWxkcmVuICYmXG5cdFx0XHR2bm9kZS5fY2hpbGRyZW4ubWFwKGNoaWxkID0+XG5cdFx0XHRcdHJlbW92ZU9yaWdpbmFsKGNoaWxkLCBkZXRhY2hlZFBhcmVudCwgb3JpZ2luYWxQYXJlbnQpXG5cdFx0XHQpO1xuXG5cdFx0aWYgKHZub2RlLl9jb21wb25lbnQpIHtcblx0XHRcdGlmICh2bm9kZS5fY29tcG9uZW50Ll9wYXJlbnREb20gPT09IGRldGFjaGVkUGFyZW50KSB7XG5cdFx0XHRcdGlmICh2bm9kZS5fZG9tKSB7XG5cdFx0XHRcdFx0b3JpZ2luYWxQYXJlbnQuYXBwZW5kQ2hpbGQodm5vZGUuX2RvbSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dm5vZGUuX2NvbXBvbmVudC5fZm9yY2UgPSB0cnVlO1xuXHRcdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9wYXJlbnREb20gPSBvcmlnaW5hbFBhcmVudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdm5vZGU7XG59XG5cbi8vIGhhdmluZyBjdXN0b20gaW5oZXJpdGFuY2UgaW5zdGVhZCBvZiBhIGNsYXNzIGhlcmUgc2F2ZXMgYSBsb3Qgb2YgYnl0ZXNcbmV4cG9ydCBmdW5jdGlvbiBTdXNwZW5zZSgpIHtcblx0Ly8gd2UgZG8gbm90IGNhbGwgc3VwZXIgaGVyZSB0byBnb2xmIHNvbWUgYnl0ZXMuLi5cblx0dGhpcy5fcGVuZGluZ1N1c3BlbnNpb25Db3VudCA9IDA7XG5cdHRoaXMuX3N1c3BlbmRlcnMgPSBudWxsO1xuXHR0aGlzLl9kZXRhY2hPbk5leHRSZW5kZXIgPSBudWxsO1xufVxuXG4vLyBUaGluZ3Mgd2UgZG8gaGVyZSB0byBzYXZlIHNvbWUgYnl0ZXMgYnV0IGFyZSBub3QgcHJvcGVyIEpTIGluaGVyaXRhbmNlOlxuLy8gLSBjYWxsIGBuZXcgQ29tcG9uZW50KClgIGFzIHRoZSBwcm90b3R5cGVcbi8vIC0gZG8gbm90IHNldCBgU3VzcGVuc2UucHJvdG90eXBlLmNvbnN0cnVjdG9yYCB0byBgU3VzcGVuc2VgXG5TdXNwZW5zZS5wcm90b3R5cGUgPSBuZXcgQ29tcG9uZW50KCk7XG5cbi8qKlxuICogQHRoaXMge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlQ29tcG9uZW50fVxuICogQHBhcmFtIHtQcm9taXNlfSBwcm9taXNlIFRoZSB0aHJvd24gcHJvbWlzZVxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZTxhbnksIGFueT59IHN1c3BlbmRpbmdWTm9kZSBUaGUgc3VzcGVuZGluZyBjb21wb25lbnRcbiAqL1xuU3VzcGVuc2UucHJvdG90eXBlLl9jaGlsZERpZFN1c3BlbmQgPSBmdW5jdGlvbiAocHJvbWlzZSwgc3VzcGVuZGluZ1ZOb2RlKSB7XG5cdGNvbnN0IHN1c3BlbmRpbmdDb21wb25lbnQgPSBzdXNwZW5kaW5nVk5vZGUuX2NvbXBvbmVudDtcblxuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlQ29tcG9uZW50fSAqL1xuXHRjb25zdCBjID0gdGhpcztcblxuXHRpZiAoYy5fc3VzcGVuZGVycyA9PSBudWxsKSB7XG5cdFx0Yy5fc3VzcGVuZGVycyA9IFtdO1xuXHR9XG5cdGMuX3N1c3BlbmRlcnMucHVzaChzdXNwZW5kaW5nQ29tcG9uZW50KTtcblxuXHRjb25zdCByZXNvbHZlID0gc3VzcGVuZGVkKGMuX3Zub2RlKTtcblxuXHRsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcblx0Y29uc3Qgb25SZXNvbHZlZCA9ICgpID0+IHtcblx0XHRpZiAocmVzb2x2ZWQpIHJldHVybjtcblxuXHRcdHJlc29sdmVkID0gdHJ1ZTtcblx0XHRzdXNwZW5kaW5nQ29tcG9uZW50Ll9vblJlc29sdmUgPSBudWxsO1xuXG5cdFx0aWYgKHJlc29sdmUpIHtcblx0XHRcdHJlc29sdmUob25TdXNwZW5zaW9uQ29tcGxldGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvblN1c3BlbnNpb25Db21wbGV0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHRzdXNwZW5kaW5nQ29tcG9uZW50Ll9vblJlc29sdmUgPSBvblJlc29sdmVkO1xuXG5cdGNvbnN0IG9uU3VzcGVuc2lvbkNvbXBsZXRlID0gKCkgPT4ge1xuXHRcdGlmICghLS1jLl9wZW5kaW5nU3VzcGVuc2lvbkNvdW50KSB7XG5cdFx0XHQvLyBJZiB0aGUgc3VzcGVuc2lvbiB3YXMgZHVyaW5nIGh5ZHJhdGlvbiB3ZSBkb24ndCBuZWVkIHRvIHJlc3RvcmUgdGhlXG5cdFx0XHQvLyBzdXNwZW5kZWQgY2hpbGRyZW4gaW50byB0aGUgX2NoaWxkcmVuIGFycmF5XG5cdFx0XHRpZiAoYy5zdGF0ZS5fc3VzcGVuZGVkKSB7XG5cdFx0XHRcdGNvbnN0IHN1c3BlbmRlZFZOb2RlID0gYy5zdGF0ZS5fc3VzcGVuZGVkO1xuXHRcdFx0XHRjLl92bm9kZS5fY2hpbGRyZW5bMF0gPSByZW1vdmVPcmlnaW5hbChcblx0XHRcdFx0XHRzdXNwZW5kZWRWTm9kZSxcblx0XHRcdFx0XHRzdXNwZW5kZWRWTm9kZS5fY29tcG9uZW50Ll9wYXJlbnREb20sXG5cdFx0XHRcdFx0c3VzcGVuZGVkVk5vZGUuX2NvbXBvbmVudC5fb3JpZ2luYWxQYXJlbnREb21cblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0Yy5zZXRTdGF0ZSh7IF9zdXNwZW5kZWQ6IChjLl9kZXRhY2hPbk5leHRSZW5kZXIgPSBudWxsKSB9KTtcblxuXHRcdFx0bGV0IHN1c3BlbmRlZDtcblx0XHRcdHdoaWxlICgoc3VzcGVuZGVkID0gYy5fc3VzcGVuZGVycy5wb3AoKSkpIHtcblx0XHRcdFx0c3VzcGVuZGVkLmZvcmNlVXBkYXRlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBXZSBkbyBub3Qgc2V0IGBzdXNwZW5kZWQ6IHRydWVgIGR1cmluZyBoeWRyYXRpb24gYmVjYXVzZSB3ZSB3YW50IHRoZSBhY3R1YWwgbWFya3VwXG5cdCAqIHRvIHJlbWFpbiBvbiBzY3JlZW4gYW5kIGh5ZHJhdGUgaXQgd2hlbiB0aGUgc3VzcGVuc2UgYWN0dWFsbHkgZ2V0cyByZXNvbHZlZC5cblx0ICogV2hpbGUgaW4gbm9uLWh5ZHJhdGlvbiBjYXNlcyB0aGUgdXN1YWwgZmFsbGJhY2sgLT4gY29tcG9uZW50IGZsb3cgd291bGQgb2Njb3VyLlxuXHQgKi9cblx0aWYgKFxuXHRcdCFjLl9wZW5kaW5nU3VzcGVuc2lvbkNvdW50KysgJiZcblx0XHQhKHN1c3BlbmRpbmdWTm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUpXG5cdCkge1xuXHRcdGMuc2V0U3RhdGUoeyBfc3VzcGVuZGVkOiAoYy5fZGV0YWNoT25OZXh0UmVuZGVyID0gYy5fdm5vZGUuX2NoaWxkcmVuWzBdKSB9KTtcblx0fVxuXHRwcm9taXNlLnRoZW4ob25SZXNvbHZlZCwgb25SZXNvbHZlZCk7XG59O1xuXG5TdXNwZW5zZS5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG5cdHRoaXMuX3N1c3BlbmRlcnMgPSBbXTtcbn07XG5cbi8qKlxuICogQHRoaXMge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlQ29tcG9uZW50fVxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5TdXNwZW5zZUNvbXBvbmVudFtcInByb3BzXCJdfSBwcm9wc1xuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5TdXNwZW5zZVN0YXRlfSBzdGF0ZVxuICovXG5TdXNwZW5zZS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKHByb3BzLCBzdGF0ZSkge1xuXHRpZiAodGhpcy5fZGV0YWNoT25OZXh0UmVuZGVyKSB7XG5cdFx0Ly8gV2hlbiB0aGUgU3VzcGVuc2UncyBfdm5vZGUgd2FzIGNyZWF0ZWQgYnkgYSBjYWxsIHRvIGNyZWF0ZVZOb2RlXG5cdFx0Ly8gKGkuZS4gZHVlIHRvIGEgc2V0U3RhdGUgZnVydGhlciB1cCBpbiB0aGUgdHJlZSlcblx0XHQvLyBpdCdzIF9jaGlsZHJlbiBwcm9wIGlzIG51bGwsIGluIHRoaXMgY2FzZSB3ZSBcImZvcmdldFwiIGFib3V0IHRoZSBwYXJrZWQgdm5vZGVzIHRvIGRldGFjaFxuXHRcdGlmICh0aGlzLl92bm9kZS5fY2hpbGRyZW4pIHtcblx0XHRcdGNvbnN0IGRldGFjaGVkUGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHRjb25zdCBkZXRhY2hlZENvbXBvbmVudCA9IHRoaXMuX3Zub2RlLl9jaGlsZHJlblswXS5fY29tcG9uZW50O1xuXHRcdFx0dGhpcy5fdm5vZGUuX2NoaWxkcmVuWzBdID0gZGV0YWNoZWRDbG9uZShcblx0XHRcdFx0dGhpcy5fZGV0YWNoT25OZXh0UmVuZGVyLFxuXHRcdFx0XHRkZXRhY2hlZFBhcmVudCxcblx0XHRcdFx0KGRldGFjaGVkQ29tcG9uZW50Ll9vcmlnaW5hbFBhcmVudERvbSA9IGRldGFjaGVkQ29tcG9uZW50Ll9wYXJlbnREb20pXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2RldGFjaE9uTmV4dFJlbmRlciA9IG51bGw7XG5cdH1cblxuXHQvLyBXcmFwIGZhbGxiYWNrIHRyZWUgaW4gYSBWTm9kZSB0aGF0IHByZXZlbnRzIGl0c2VsZiBmcm9tIGJlaW5nIG1hcmtlZCBhcyBhYm9ydGluZyBtaWQtaHlkcmF0aW9uOlxuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlfSAqL1xuXHRjb25zdCBmYWxsYmFjayA9XG5cdFx0c3RhdGUuX3N1c3BlbmRlZCAmJiBjcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCBwcm9wcy5mYWxsYmFjayk7XG5cdGlmIChmYWxsYmFjaykgZmFsbGJhY2suX2ZsYWdzICY9IH5NT0RFX0hZRFJBVEU7XG5cblx0cmV0dXJuIFtcblx0XHRjcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCBzdGF0ZS5fc3VzcGVuZGVkID8gbnVsbCA6IHByb3BzLmNoaWxkcmVuKSxcblx0XHRmYWxsYmFja1xuXHRdO1xufTtcblxuLyoqXG4gKiBDaGVja3MgYW5kIGNhbGxzIHRoZSBwYXJlbnQgY29tcG9uZW50J3MgX3N1c3BlbmRlZCBtZXRob2QsIHBhc3NpbmcgaW4gdGhlXG4gKiBzdXNwZW5kZWQgdm5vZGUuIFRoaXMgaXMgYSB3YXkgZm9yIGEgcGFyZW50IChlLmcuIFN1c3BlbnNlTGlzdCkgdG8gZ2V0IG5vdGlmaWVkXG4gKiB0aGF0IG9uZSBvZiBpdHMgY2hpbGRyZW4vZGVzY2VuZGFudHMgc3VzcGVuZGVkLlxuICpcbiAqIFRoZSBwYXJlbnQgTUFZIHJldHVybiBhIGNhbGxiYWNrLiBUaGUgY2FsbGJhY2sgd2lsbCBnZXQgY2FsbGVkIHdoZW4gdGhlXG4gKiBzdXNwZW5zaW9uIHJlc29sdmVzLCBub3RpZnlpbmcgdGhlIHBhcmVudCBvZiB0aGUgZmFjdC5cbiAqIE1vcmVvdmVyLCB0aGUgY2FsbGJhY2sgZ2V0cyBmdW5jdGlvbiBgdW5zdXNwZW5kYCBhcyBhIHBhcmFtZXRlci4gVGhlIHJlc29sdmVkXG4gKiBjaGlsZCBkZXNjZW5kYW50IHdpbGwgbm90IGFjdHVhbGx5IGdldCB1bnN1c3BlbmRlZCB1bnRpbCBgdW5zdXNwZW5kYCBnZXRzIGNhbGxlZC5cbiAqIFRoaXMgaXMgYSB3YXkgZm9yIHRoZSBwYXJlbnQgdG8gZGVsYXkgdW5zdXNwZW5kaW5nLlxuICpcbiAqIElmIHRoZSBwYXJlbnQgZG9lcyBub3QgcmV0dXJuIGEgY2FsbGJhY2sgdGhlbiB0aGUgcmVzb2x2ZWQgdm5vZGVcbiAqIGdldHMgdW5zdXNwZW5kZWQgaW1tZWRpYXRlbHkgd2hlbiBpdCByZXNvbHZlcy5cbiAqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlfSB2bm9kZVxuICogQHJldHVybnMgeygodW5zdXNwZW5kOiAoKSA9PiB2b2lkKSA9PiB2b2lkKT99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdXNwZW5kZWQodm5vZGUpIHtcblx0LyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5cdGxldCBjb21wb25lbnQgPSB2bm9kZS5fcGFyZW50Ll9jb21wb25lbnQ7XG5cdHJldHVybiBjb21wb25lbnQgJiYgY29tcG9uZW50Ll9zdXNwZW5kZWQgJiYgY29tcG9uZW50Ll9zdXNwZW5kZWQodm5vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGF6eShsb2FkZXIpIHtcblx0bGV0IHByb207XG5cdGxldCBjb21wb25lbnQ7XG5cdGxldCBlcnJvcjtcblxuXHRmdW5jdGlvbiBMYXp5KHByb3BzKSB7XG5cdFx0aWYgKCFwcm9tKSB7XG5cdFx0XHRwcm9tID0gbG9hZGVyKCk7XG5cdFx0XHRwcm9tLnRoZW4oXG5cdFx0XHRcdGV4cG9ydHMgPT4ge1xuXHRcdFx0XHRcdGNvbXBvbmVudCA9IGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRlID0+IHtcblx0XHRcdFx0XHRlcnJvciA9IGU7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0aWYgKGVycm9yKSB7XG5cdFx0XHR0aHJvdyBlcnJvcjtcblx0XHR9XG5cblx0XHRpZiAoIWNvbXBvbmVudCkge1xuXHRcdFx0dGhyb3cgcHJvbTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIHByb3BzKTtcblx0fVxuXG5cdExhenkuZGlzcGxheU5hbWUgPSAnTGF6eSc7XG5cdExhenkuX2ZvcndhcmRlZCA9IHRydWU7XG5cdHJldHVybiBMYXp5O1xufVxuIiwgImltcG9ydCB7IENvbXBvbmVudCwgdG9DaGlsZEFycmF5IH0gZnJvbSAncHJlYWN0JztcbmltcG9ydCB7IHN1c3BlbmRlZCB9IGZyb20gJy4vc3VzcGVuc2UuanMnO1xuXG4vLyBJbmRleGVzIHRvIGxpbmtlZCBsaXN0IG5vZGVzIChub2RlcyBhcmUgc3RvcmVkIGFzIGFycmF5cyB0byBzYXZlIGJ5dGVzKS5cbmNvbnN0IFNVU1BFTkRFRF9DT1VOVCA9IDA7XG5jb25zdCBSRVNPTFZFRF9DT1VOVCA9IDE7XG5jb25zdCBORVhUX05PREUgPSAyO1xuXG4vLyBIYXZpbmcgY3VzdG9tIGluaGVyaXRhbmNlIGluc3RlYWQgb2YgYSBjbGFzcyBoZXJlIHNhdmVzIGEgbG90IG9mIGJ5dGVzLlxuZXhwb3J0IGZ1bmN0aW9uIFN1c3BlbnNlTGlzdCgpIHtcblx0dGhpcy5fbmV4dCA9IG51bGw7XG5cdHRoaXMuX21hcCA9IG51bGw7XG59XG5cbi8vIE1hcmsgb25lIG9mIGNoaWxkJ3MgZWFybGllciBzdXNwZW5zaW9ucyBhcyByZXNvbHZlZC5cbi8vIFNvbWUgcGVuZGluZyBjYWxsYmFja3MgbWF5IGJlY29tZSBjYWxsYWJsZSBkdWUgdG8gdGhpc1xuLy8gKGUuZy4gdGhlIGxhc3Qgc3VzcGVuZGVkIGRlc2NlbmRhbnQgZ2V0cyByZXNvbHZlZCB3aGVuXG4vLyByZXZlYWxPcmRlciA9PT0gJ3RvZ2V0aGVyJykuIFByb2Nlc3MgdGhvc2UgY2FsbGJhY2tzIGFzIHdlbGwuXG5jb25zdCByZXNvbHZlID0gKGxpc3QsIGNoaWxkLCBub2RlKSA9PiB7XG5cdGlmICgrK25vZGVbUkVTT0xWRURfQ09VTlRdID09PSBub2RlW1NVU1BFTkRFRF9DT1VOVF0pIHtcblx0XHQvLyBUaGUgbnVtYmVyIGEgY2hpbGQgKG9yIGFueSBvZiBpdHMgZGVzY2VuZGFudHMpIGhhcyBiZWVuIHN1c3BlbmRlZFxuXHRcdC8vIG1hdGNoZXMgdGhlIG51bWJlciBvZiB0aW1lcyBpdCdzIGJlZW4gcmVzb2x2ZWQuIFRoZXJlZm9yZSB3ZVxuXHRcdC8vIG1hcmsgdGhlIGNoaWxkIGFzIGNvbXBsZXRlbHkgcmVzb2x2ZWQgYnkgZGVsZXRpbmcgaXQgZnJvbSAuX21hcC5cblx0XHQvLyBUaGlzIGlzIHVzZWQgdG8gZmlndXJlIG91dCB3aGVuICphbGwqIGNoaWxkcmVuIGhhdmUgYmVlbiBjb21wbGV0ZWx5XG5cdFx0Ly8gcmVzb2x2ZWQgd2hlbiByZXZlYWxPcmRlciBpcyAndG9nZXRoZXInLlxuXHRcdGxpc3QuX21hcC5kZWxldGUoY2hpbGQpO1xuXHR9XG5cblx0Ly8gSWYgcmV2ZWFsT3JkZXIgaXMgZmFsc3kgdGhlbiB3ZSBjYW4gZG8gYW4gZWFybHkgZXhpdCwgYXMgdGhlXG5cdC8vIGNhbGxiYWNrcyB3b24ndCBnZXQgcXVldWVkIGluIHRoZSBub2RlIGFueXdheS5cblx0Ly8gSWYgcmV2ZWFsT3JkZXIgaXMgJ3RvZ2V0aGVyJyB0aGVuIGFsc28gZG8gYW4gZWFybHkgZXhpdFxuXHQvLyBpZiBhbGwgc3VzcGVuZGVkIGRlc2NlbmRhbnRzIGhhdmUgbm90IHlldCBiZWVuIHJlc29sdmVkLlxuXHRpZiAoXG5cdFx0IWxpc3QucHJvcHMucmV2ZWFsT3JkZXIgfHxcblx0XHQobGlzdC5wcm9wcy5yZXZlYWxPcmRlclswXSA9PT0gJ3QnICYmIGxpc3QuX21hcC5zaXplKVxuXHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBXYWxrIHRoZSBjdXJyZW50bHkgc3VzcGVuZGVkIGNoaWxkcmVuIGluIG9yZGVyLCBjYWxsaW5nIHRoZWlyXG5cdC8vIHN0b3JlZCBjYWxsYmFja3Mgb24gdGhlIHdheS4gU3RvcCBpZiB3ZSBlbmNvdW50ZXIgYSBjaGlsZCB0aGF0XG5cdC8vIGhhcyBub3QgYmVlbiBjb21wbGV0ZWx5IHJlc29sdmVkIHlldC5cblx0bm9kZSA9IGxpc3QuX25leHQ7XG5cdHdoaWxlIChub2RlKSB7XG5cdFx0d2hpbGUgKG5vZGUubGVuZ3RoID4gMykge1xuXHRcdFx0bm9kZS5wb3AoKSgpO1xuXHRcdH1cblx0XHRpZiAobm9kZVtSRVNPTFZFRF9DT1VOVF0gPCBub2RlW1NVU1BFTkRFRF9DT1VOVF0pIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRsaXN0Ll9uZXh0ID0gbm9kZSA9IG5vZGVbTkVYVF9OT0RFXTtcblx0fVxufTtcblxuLy8gVGhpbmdzIHdlIGRvIGhlcmUgdG8gc2F2ZSBzb21lIGJ5dGVzIGJ1dCBhcmUgbm90IHByb3BlciBKUyBpbmhlcml0YW5jZTpcbi8vIC0gY2FsbCBgbmV3IENvbXBvbmVudCgpYCBhcyB0aGUgcHJvdG90eXBlXG4vLyAtIGRvIG5vdCBzZXQgYFN1c3BlbnNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvcmAgdG8gYFN1c3BlbnNlYFxuU3VzcGVuc2VMaXN0LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnQoKTtcblxuU3VzcGVuc2VMaXN0LnByb3RvdHlwZS5fc3VzcGVuZGVkID0gZnVuY3Rpb24gKGNoaWxkKSB7XG5cdGNvbnN0IGxpc3QgPSB0aGlzO1xuXHRjb25zdCBkZWxlZ2F0ZWQgPSBzdXNwZW5kZWQobGlzdC5fdm5vZGUpO1xuXG5cdGxldCBub2RlID0gbGlzdC5fbWFwLmdldChjaGlsZCk7XG5cdG5vZGVbU1VTUEVOREVEX0NPVU5UXSsrO1xuXG5cdHJldHVybiB1bnN1c3BlbmQgPT4ge1xuXHRcdGNvbnN0IHdyYXBwZWRVbnN1c3BlbmQgPSAoKSA9PiB7XG5cdFx0XHRpZiAoIWxpc3QucHJvcHMucmV2ZWFsT3JkZXIpIHtcblx0XHRcdFx0Ly8gU3BlY2lhbCBjYXNlIHRoZSB1bmRlZmluZWQgKGZhbHN5KSByZXZlYWxPcmRlciwgYXMgdGhlcmVcblx0XHRcdFx0Ly8gaXMgbm8gbmVlZCB0byBjb29yZGluYXRlIGEgc3BlY2lmaWMgb3JkZXIgb3IgdW5zdXNwZW5kcy5cblx0XHRcdFx0dW5zdXNwZW5kKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRub2RlLnB1c2godW5zdXNwZW5kKTtcblx0XHRcdFx0cmVzb2x2ZShsaXN0LCBjaGlsZCwgbm9kZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRpZiAoZGVsZWdhdGVkKSB7XG5cdFx0XHRkZWxlZ2F0ZWQod3JhcHBlZFVuc3VzcGVuZCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHdyYXBwZWRVbnN1c3BlbmQoKTtcblx0XHR9XG5cdH07XG59O1xuXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIChwcm9wcykge1xuXHR0aGlzLl9uZXh0ID0gbnVsbDtcblx0dGhpcy5fbWFwID0gbmV3IE1hcCgpO1xuXG5cdGNvbnN0IGNoaWxkcmVuID0gdG9DaGlsZEFycmF5KHByb3BzLmNoaWxkcmVuKTtcblx0aWYgKHByb3BzLnJldmVhbE9yZGVyICYmIHByb3BzLnJldmVhbE9yZGVyWzBdID09PSAnYicpIHtcblx0XHQvLyBJZiBvcmRlciA9PT0gJ2JhY2t3YXJkcycgKG9yLCB3ZWxsLCBhbnl0aGluZyBzdGFydGluZyB3aXRoIGEgJ2InKVxuXHRcdC8vIHRoZW4gZmxpcCB0aGUgY2hpbGQgbGlzdCBhcm91bmQgc28gdGhhdCB0aGUgbGFzdCBjaGlsZCB3aWxsIGJlXG5cdFx0Ly8gdGhlIGZpcnN0IGluIHRoZSBsaW5rZWQgbGlzdC5cblx0XHRjaGlsZHJlbi5yZXZlcnNlKCk7XG5cdH1cblx0Ly8gQnVpbGQgdGhlIGxpbmtlZCBsaXN0LiBJdGVyYXRlIHRocm91Z2ggdGhlIGNoaWxkcmVuIGluIHJldmVyc2Ugb3JkZXJcblx0Ly8gc28gdGhhdCBgX25leHRgIHBvaW50cyB0byB0aGUgZmlyc3QgbGlua2VkIGxpc3Qgbm9kZSB0byBiZSByZXNvbHZlZC5cblx0Zm9yIChsZXQgaSA9IGNoaWxkcmVuLmxlbmd0aDsgaS0tOyApIHtcblx0XHQvLyBDcmVhdGUgYSBuZXcgbGlua2VkIGxpc3Qgbm9kZSBhcyBhbiBhcnJheSBvZiBmb3JtOlxuXHRcdC8vIFx0W3N1c3BlbmRlZF9jb3VudCwgcmVzb2x2ZWRfY291bnQsIG5leHRfbm9kZV1cblx0XHQvLyB3aGVyZSBzdXNwZW5kZWRfY291bnQgYW5kIHJlc29sdmVkX2NvdW50IGFyZSBudW1lcmljIGNvdW50ZXJzIGZvclxuXHRcdC8vIGtlZXBpbmcgdHJhY2sgaG93IG1hbnkgdGltZXMgYSBub2RlIGhhcyBiZWVuIHN1c3BlbmRlZCBhbmQgcmVzb2x2ZWQuXG5cdFx0Ly9cblx0XHQvLyBOb3RlIHRoYXQgc3VzcGVuZGVkX2NvdW50IHN0YXJ0cyBmcm9tIDEgaW5zdGVhZCBvZiAwLCBzbyB3ZSBjYW4gYmxvY2tcblx0XHQvLyBwcm9jZXNzaW5nIGNhbGxiYWNrcyB1bnRpbCBjb21wb25lbnREaWRNb3VudCBoYXMgYmVlbiBjYWxsZWQuIEluIGEgc2Vuc2Vcblx0XHQvLyBub2RlIGlzIHN1c3BlbmRlZCBhdCBsZWFzdCB1bnRpbCBjb21wb25lbnREaWRNb3VudCBnZXRzIGNhbGxlZCFcblx0XHQvL1xuXHRcdC8vIFBlbmRpbmcgY2FsbGJhY2tzIGFyZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBub2RlOlxuXHRcdC8vIFx0W3N1c3BlbmRlZF9jb3VudCwgcmVzb2x2ZWRfY291bnQsIG5leHRfbm9kZSwgY2FsbGJhY2tfMCwgY2FsbGJhY2tfMSwgLi4uXVxuXHRcdHRoaXMuX21hcC5zZXQoY2hpbGRyZW5baV0sICh0aGlzLl9uZXh0ID0gWzEsIDAsIHRoaXMuX25leHRdKSk7XG5cdH1cblx0cmV0dXJuIHByb3BzLmNoaWxkcmVuO1xufTtcblxuU3VzcGVuc2VMaXN0LnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGUgPVxuXHRTdXNwZW5zZUxpc3QucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gKCkge1xuXHRcdC8vIEl0ZXJhdGUgdGhyb3VnaCBhbGwgY2hpbGRyZW4gYWZ0ZXIgbW91bnRpbmcgZm9yIHR3byByZWFzb25zOlxuXHRcdC8vIDEuIEFzIGVhY2ggbm9kZVtTVVNQRU5ERURfQ09VTlRdIHN0YXJ0cyBmcm9tIDEsIHRoaXMgaXRlcmF0aW9uIGluY3JlYXNlc1xuXHRcdC8vICAgIGVhY2ggbm9kZVtSRUxFQVNFRF9DT1VOVF0gYnkgMSwgdGhlcmVmb3JlIGJhbGFuY2luZyB0aGUgY291bnRlcnMuXG5cdFx0Ly8gICAgVGhlIG5vZGVzIGNhbiBub3cgYmUgY29tcGxldGVseSBjb25zdW1lZCBmcm9tIHRoZSBsaW5rZWQgbGlzdC5cblx0XHQvLyAyLiBIYW5kbGUgbm9kZXMgdGhhdCBtaWdodCBoYXZlIGdvdHRlbiByZXNvbHZlZCBiZXR3ZWVuIHJlbmRlciBhbmRcblx0XHQvLyAgICBjb21wb25lbnREaWRNb3VudC5cblx0XHR0aGlzLl9tYXAuZm9yRWFjaCgobm9kZSwgY2hpbGQpID0+IHtcblx0XHRcdHJlc29sdmUodGhpcywgY2hpbGQsIG5vZGUpO1xuXHRcdH0pO1xuXHR9O1xuIiwgIi8qKiBOb3JtYWwgaHlkcmF0aW9uIHRoYXQgYXR0YWNoZXMgdG8gYSBET00gdHJlZSBidXQgZG9lcyBub3QgZGlmZiBpdC4gKi9cbmV4cG9ydCBjb25zdCBNT0RFX0hZRFJBVEUgPSAxIDw8IDU7XG4vKiogU2lnbmlmaWVzIHRoaXMgVk5vZGUgc3VzcGVuZGVkIG9uIHRoZSBwcmV2aW91cyByZW5kZXIgKi9cbmV4cG9ydCBjb25zdCBNT0RFX1NVU1BFTkRFRCA9IDEgPDwgNztcbi8qKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIG5vZGUgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgd2hpbGUgcGF0Y2hpbmcgY2hpbGRyZW4gKi9cbmV4cG9ydCBjb25zdCBJTlNFUlRfVk5PREUgPSAxIDw8IDE2O1xuLyoqIEluZGljYXRlcyBhIFZOb2RlIGhhcyBiZWVuIG1hdGNoZWQgd2l0aCBhbm90aGVyIFZOb2RlIGluIHRoZSBkaWZmICovXG5leHBvcnQgY29uc3QgTUFUQ0hFRCA9IDEgPDwgMTc7XG5cbi8qKiBSZXNldCBhbGwgbW9kZSBmbGFncyAqL1xuZXhwb3J0IGNvbnN0IFJFU0VUX01PREUgPSB+KE1PREVfSFlEUkFURSB8IE1PREVfU1VTUEVOREVEKTtcblxuZXhwb3J0IGNvbnN0IEVNUFRZX09CSiA9IC8qKiBAdHlwZSB7YW55fSAqLyAoe30pO1xuZXhwb3J0IGNvbnN0IEVNUFRZX0FSUiA9IFtdO1xuZXhwb3J0IGNvbnN0IElTX05PTl9ESU1FTlNJT05BTCA9XG5cdC9hY2l0fGV4KD86c3xnfG58cHwkKXxycGh8Z3JpZHxvd3N8bW5jfG50d3xpbmVbY2hdfHpvb3xeb3JkfGl0ZXJhL2k7XG4iLCAiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgcmVuZGVyIH0gZnJvbSAncHJlYWN0JztcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi4vLi4vc3JjL2luZGV4JykuUmVuZGVyYWJsZVByb3BzPHsgY29udGV4dDogYW55IH0+fSBwcm9wc1xuICovXG5mdW5jdGlvbiBDb250ZXh0UHJvdmlkZXIocHJvcHMpIHtcblx0dGhpcy5nZXRDaGlsZENvbnRleHQgPSAoKSA9PiBwcm9wcy5jb250ZXh0O1xuXHRyZXR1cm4gcHJvcHMuY2hpbGRyZW47XG59XG5cbi8qKlxuICogUG9ydGFsIGNvbXBvbmVudFxuICogQHRoaXMge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH1cbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZH0gcHJvcHNcbiAqXG4gKiBUT0RPOiB1c2UgY3JlYXRlUm9vdCgpIGluc3RlYWQgb2YgZmFrZSByb290XG4gKi9cbmZ1bmN0aW9uIFBvcnRhbChwcm9wcykge1xuXHRjb25zdCBfdGhpcyA9IHRoaXM7XG5cdGxldCBjb250YWluZXIgPSBwcm9wcy5fY29udGFpbmVyO1xuXG5cdF90aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gKCkge1xuXHRcdHJlbmRlcihudWxsLCBfdGhpcy5fdGVtcCk7XG5cdFx0X3RoaXMuX3RlbXAgPSBudWxsO1xuXHRcdF90aGlzLl9jb250YWluZXIgPSBudWxsO1xuXHR9O1xuXG5cdC8vIFdoZW4gd2UgY2hhbmdlIGNvbnRhaW5lciB3ZSBzaG91bGQgY2xlYXIgb3VyIG9sZCBjb250YWluZXIgYW5kXG5cdC8vIGluZGljYXRlIGEgbmV3IG1vdW50LlxuXHRpZiAoX3RoaXMuX2NvbnRhaW5lciAmJiBfdGhpcy5fY29udGFpbmVyICE9PSBjb250YWluZXIpIHtcblx0XHRfdGhpcy5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuXHR9XG5cblx0aWYgKCFfdGhpcy5fdGVtcCkge1xuXHRcdF90aGlzLl9jb250YWluZXIgPSBjb250YWluZXI7XG5cblx0XHQvLyBDcmVhdGUgYSBmYWtlIERPTSBwYXJlbnQgbm9kZSB0aGF0IG1hbmFnZXMgYSBzdWJzZXQgb2YgYGNvbnRhaW5lcmAncyBjaGlsZHJlbjpcblx0XHRfdGhpcy5fdGVtcCA9IHtcblx0XHRcdG5vZGVUeXBlOiAxLFxuXHRcdFx0cGFyZW50Tm9kZTogY29udGFpbmVyLFxuXHRcdFx0Y2hpbGROb2RlczogW10sXG5cdFx0XHRjb250YWluczogKCkgPT4gdHJ1ZSxcblx0XHRcdGFwcGVuZENoaWxkKGNoaWxkKSB7XG5cdFx0XHRcdHRoaXMuY2hpbGROb2Rlcy5wdXNoKGNoaWxkKTtcblx0XHRcdFx0X3RoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChjaGlsZCk7XG5cdFx0XHR9LFxuXHRcdFx0aW5zZXJ0QmVmb3JlKGNoaWxkLCBiZWZvcmUpIHtcblx0XHRcdFx0dGhpcy5jaGlsZE5vZGVzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRfdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTtcblx0XHRcdH0sXG5cdFx0XHRyZW1vdmVDaGlsZChjaGlsZCkge1xuXHRcdFx0XHR0aGlzLmNoaWxkTm9kZXMuc3BsaWNlKHRoaXMuY2hpbGROb2Rlcy5pbmRleE9mKGNoaWxkKSA+Pj4gMSwgMSk7XG5cdFx0XHRcdF90aGlzLl9jb250YWluZXIucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvLyBSZW5kZXIgb3VyIHdyYXBwaW5nIGVsZW1lbnQgaW50byB0ZW1wLlxuXHRyZW5kZXIoXG5cdFx0Y3JlYXRlRWxlbWVudChDb250ZXh0UHJvdmlkZXIsIHsgY29udGV4dDogX3RoaXMuY29udGV4dCB9LCBwcm9wcy5fdm5vZGUpLFxuXHRcdF90aGlzLl90ZW1wXG5cdCk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYFBvcnRhbGAgdG8gY29udGludWUgcmVuZGVyaW5nIHRoZSB2bm9kZSB0cmVlIGF0IGEgZGlmZmVyZW50IERPTSBub2RlXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlfSB2bm9kZSBUaGUgdm5vZGUgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdEVsZW1lbnR9IGNvbnRhaW5lciBUaGUgRE9NIG5vZGUgdG8gY29udGludWUgcmVuZGVyaW5nIGluIHRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUG9ydGFsKHZub2RlLCBjb250YWluZXIpIHtcblx0Y29uc3QgZWwgPSBjcmVhdGVFbGVtZW50KFBvcnRhbCwgeyBfdm5vZGU6IHZub2RlLCBfY29udGFpbmVyOiBjb250YWluZXIgfSk7XG5cdGVsLmNvbnRhaW5lckluZm8gPSBjb250YWluZXI7XG5cdHJldHVybiBlbDtcbn1cbiIsICJpbXBvcnQge1xuXHRyZW5kZXIgYXMgcHJlYWN0UmVuZGVyLFxuXHRoeWRyYXRlIGFzIHByZWFjdEh5ZHJhdGUsXG5cdG9wdGlvbnMsXG5cdHRvQ2hpbGRBcnJheSxcblx0Q29tcG9uZW50XG59IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQge1xuXHR1c2VDYWxsYmFjayxcblx0dXNlQ29udGV4dCxcblx0dXNlRGVidWdWYWx1ZSxcblx0dXNlRWZmZWN0LFxuXHR1c2VJZCxcblx0dXNlSW1wZXJhdGl2ZUhhbmRsZSxcblx0dXNlTGF5b3V0RWZmZWN0LFxuXHR1c2VNZW1vLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VSZWYsXG5cdHVzZVN0YXRlXG59IGZyb20gJ3ByZWFjdC9ob29rcyc7XG5pbXBvcnQge1xuXHR1c2VEZWZlcnJlZFZhbHVlLFxuXHR1c2VJbnNlcnRpb25FZmZlY3QsXG5cdHVzZVN5bmNFeHRlcm5hbFN0b3JlLFxuXHR1c2VUcmFuc2l0aW9uXG59IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgY29uc3QgUkVBQ1RfRUxFTUVOVF9UWVBFID1cblx0KHR5cGVvZiBTeW1ib2wgIT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLmZvciAmJiBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykpIHx8XG5cdDB4ZWFjNztcblxuY29uc3QgQ0FNRUxfUFJPUFMgPVxuXHQvXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlKCFTKXxsZXR0ZXJ8bGlnaHRpbmd8bWFya2VyKD8hSHxXfFUpfG92ZXJsaW5lfHBhaW50fHBvaW50ZXJ8c2hhcGV8c3RvcHxzdHJpa2V0aHJvdWdofHN0cm9rZXx0ZXh0KD8hTCl8dHJhbnNmb3JtfHVuZGVybGluZXx1bmljb2RlfHVuaXRzfHZ8dmVjdG9yfHZlcnR8d29yZHx3cml0aW5nfHgoPyFDKSlbQS1aXS87XG5jb25zdCBPTl9BTkkgPSAvXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvO1xuY29uc3QgQ0FNRUxfUkVQTEFDRSA9IC9bQS1aMC05XS9nO1xuY29uc3QgSVNfRE9NID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxuLy8gSW5wdXQgdHlwZXMgZm9yIHdoaWNoIG9uY2hhbmdlIHNob3VsZCBub3QgYmUgY29udmVydGVkIHRvIG9uaW5wdXQuXG4vLyB0eXBlPVwiZmlsZXxjaGVja2JveHxyYWRpb1wiLCBwbHVzIFwicmFuZ2VcIiBpbiBJRTExLlxuLy8gKElFMTEgZG9lc24ndCBzdXBwb3J0IFN5bWJvbCwgd2hpY2ggd2UgdXNlIGhlcmUgdG8gdHVybiBgcmFkYCBpbnRvIGByYWAgd2hpY2ggbWF0Y2hlcyBcInJhbmdlXCIpXG5jb25zdCBvbkNoYW5nZUlucHV0VHlwZSA9IHR5cGUgPT5cblx0KHR5cGVvZiBTeW1ib2wgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIFN5bWJvbCgpID09ICdzeW1ib2wnXG5cdFx0PyAvZmlsfGNoZXxyYWQvXG5cdFx0OiAvZmlsfGNoZXxyYS9cblx0KS50ZXN0KHR5cGUpO1xuXG4vLyBTb21lIGxpYnJhcmllcyBsaWtlIGByZWFjdC12aXJ0dWFsaXplZGAgZXhwbGljaXRseSBjaGVjayBmb3IgdGhpcy5cbkNvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IHt9O1xuXG4vLyBgVU5TQUZFXypgIGxpZmVjeWNsZSBob29rc1xuLy8gUHJlYWN0IG9ubHkgZXZlciBpbnZva2VzIHRoZSB1bnByZWZpeGVkIG1ldGhvZHMuXG4vLyBIZXJlIHdlIHByb3ZpZGUgYSBiYXNlIFwiZmFsbGJhY2tcIiBpbXBsZW1lbnRhdGlvbiB0aGF0IGNhbGxzIGFueSBkZWZpbmVkIFVOU0FGRV8gcHJlZml4ZWQgbWV0aG9kLlxuLy8gLSBJZiBhIGNvbXBvbmVudCBkZWZpbmVzIGl0cyBvd24gYGNvbXBvbmVudERpZE1vdW50KClgIChpbmNsdWRpbmcgdmlhIGRlZmluZVByb3BlcnR5KSwgdXNlIHRoYXQuXG4vLyAtIElmIGEgY29tcG9uZW50IGRlZmluZXMgYFVOU0FGRV9jb21wb25lbnREaWRNb3VudCgpYCwgYGNvbXBvbmVudERpZE1vdW50YCBpcyB0aGUgYWxpYXMgZ2V0dGVyL3NldHRlci5cbi8vIC0gSWYgYW55dGhpbmcgYXNzaWducyB0byBhbiBgVU5TQUZFXypgIHByb3BlcnR5LCB0aGUgYXNzaWdubWVudCBpcyBmb3J3YXJkZWQgdG8gdGhlIHVucHJlZml4ZWQgcHJvcGVydHkuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3ByZWFjdGpzL3ByZWFjdC9pc3N1ZXMvMTk0MVxuW1xuXHQnY29tcG9uZW50V2lsbE1vdW50Jyxcblx0J2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnLFxuXHQnY29tcG9uZW50V2lsbFVwZGF0ZSdcbl0uZm9yRWFjaChrZXkgPT4ge1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29tcG9uZW50LnByb3RvdHlwZSwga2V5LCB7XG5cdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdGdldCgpIHtcblx0XHRcdHJldHVybiB0aGlzWydVTlNBRkVfJyArIGtleV07XG5cdFx0fSxcblx0XHRzZXQodikge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGtleSwge1xuXHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdHdyaXRhYmxlOiB0cnVlLFxuXHRcdFx0XHR2YWx1ZTogdlxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KTtcbn0pO1xuXG4vKipcbiAqIFByb3h5IHJlbmRlcigpIHNpbmNlIFJlYWN0IHJldHVybnMgYSBDb21wb25lbnQgcmVmZXJlbmNlLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZX0gdm5vZGUgVk5vZGUgdHJlZSB0byByZW5kZXJcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuUHJlYWN0RWxlbWVudH0gcGFyZW50IERPTSBub2RlIHRvIHJlbmRlciB2bm9kZSB0cmVlIGludG9cbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gW2NhbGxiYWNrXSBPcHRpb25hbCBjYWxsYmFjayB0aGF0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHJlbmRlcmluZ1xuICogQHJldHVybnMge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudCB8IG51bGx9IFRoZSByb290IGNvbXBvbmVudCByZWZlcmVuY2Ugb3IgbnVsbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKHZub2RlLCBwYXJlbnQsIGNhbGxiYWNrKSB7XG5cdC8vIFJlYWN0IGRlc3Ryb3lzIGFueSBleGlzdGluZyBET00gbm9kZXMsIHNlZSAjMTcyN1xuXHQvLyAuLi5idXQgb25seSBvbiB0aGUgZmlyc3QgcmVuZGVyLCBzZWUgIzE4Mjhcblx0aWYgKHBhcmVudC5fY2hpbGRyZW4gPT0gbnVsbCkge1xuXHRcdHBhcmVudC50ZXh0Q29udGVudCA9ICcnO1xuXHR9XG5cblx0cHJlYWN0UmVuZGVyKHZub2RlLCBwYXJlbnQpO1xuXHRpZiAodHlwZW9mIGNhbGxiYWNrID09ICdmdW5jdGlvbicpIGNhbGxiYWNrKCk7XG5cblx0cmV0dXJuIHZub2RlID8gdm5vZGUuX2NvbXBvbmVudCA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoeWRyYXRlKHZub2RlLCBwYXJlbnQsIGNhbGxiYWNrKSB7XG5cdHByZWFjdEh5ZHJhdGUodm5vZGUsIHBhcmVudCk7XG5cdGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgY2FsbGJhY2soKTtcblxuXHRyZXR1cm4gdm5vZGUgPyB2bm9kZS5fY29tcG9uZW50IDogbnVsbDtcbn1cblxubGV0IG9sZEV2ZW50SG9vayA9IG9wdGlvbnMuZXZlbnQ7XG5vcHRpb25zLmV2ZW50ID0gZSA9PiB7XG5cdGlmIChvbGRFdmVudEhvb2spIGUgPSBvbGRFdmVudEhvb2soZSk7XG5cblx0ZS5wZXJzaXN0ID0gZW1wdHk7XG5cdGUuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBpc1Byb3BhZ2F0aW9uU3RvcHBlZDtcblx0ZS5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBpc0RlZmF1bHRQcmV2ZW50ZWQ7XG5cdHJldHVybiAoZS5uYXRpdmVFdmVudCA9IGUpO1xufTtcblxuZnVuY3Rpb24gZW1wdHkoKSB7fVxuXG5mdW5jdGlvbiBpc1Byb3BhZ2F0aW9uU3RvcHBlZCgpIHtcblx0cmV0dXJuIHRoaXMuY2FuY2VsQnViYmxlO1xufVxuXG5mdW5jdGlvbiBpc0RlZmF1bHRQcmV2ZW50ZWQoKSB7XG5cdHJldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ7XG59XG5cbmNvbnN0IGNsYXNzTmFtZURlc2NyaXB0b3JOb25FbnVtYmVyYWJsZSA9IHtcblx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0Z2V0KCkge1xuXHRcdHJldHVybiB0aGlzLmNsYXNzO1xuXHR9XG59O1xuXG5mdW5jdGlvbiBoYW5kbGVEb21WTm9kZSh2bm9kZSkge1xuXHRsZXQgcHJvcHMgPSB2bm9kZS5wcm9wcyxcblx0XHR0eXBlID0gdm5vZGUudHlwZSxcblx0XHRub3JtYWxpemVkUHJvcHMgPSB7fTtcblxuXHRsZXQgaXNOb25EYXNoZWRUeXBlID0gdHlwZS5pbmRleE9mKCctJykgPT09IC0xO1xuXHRmb3IgKGxldCBpIGluIHByb3BzKSB7XG5cdFx0bGV0IHZhbHVlID0gcHJvcHNbaV07XG5cblx0XHRpZiAoXG5cdFx0XHQoaSA9PT0gJ3ZhbHVlJyAmJiAnZGVmYXVsdFZhbHVlJyBpbiBwcm9wcyAmJiB2YWx1ZSA9PSBudWxsKSB8fFxuXHRcdFx0Ly8gRW11bGF0ZSBSZWFjdCdzIGJlaGF2aW9yIG9mIG5vdCByZW5kZXJpbmcgdGhlIGNvbnRlbnRzIG9mIG5vc2NyaXB0IHRhZ3Mgb24gdGhlIGNsaWVudC5cblx0XHRcdChJU19ET00gJiYgaSA9PT0gJ2NoaWxkcmVuJyAmJiB0eXBlID09PSAnbm9zY3JpcHQnKSB8fFxuXHRcdFx0aSA9PT0gJ2NsYXNzJyB8fFxuXHRcdFx0aSA9PT0gJ2NsYXNzTmFtZSdcblx0XHQpIHtcblx0XHRcdC8vIFNraXAgYXBwbHlpbmcgdmFsdWUgaWYgaXQgaXMgbnVsbC91bmRlZmluZWQgYW5kIHdlIGFscmVhZHkgc2V0XG5cdFx0XHQvLyBhIGRlZmF1bHQgdmFsdWVcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCBsb3dlckNhc2VkID0gaS50b0xvd2VyQ2FzZSgpO1xuXHRcdGlmIChpID09PSAnZGVmYXVsdFZhbHVlJyAmJiAndmFsdWUnIGluIHByb3BzICYmIHByb3BzLnZhbHVlID09IG51bGwpIHtcblx0XHRcdC8vIGBkZWZhdWx0VmFsdWVgIGlzIHRyZWF0ZWQgYXMgYSBmYWxsYmFjayBgdmFsdWVgIHdoZW4gYSB2YWx1ZSBwcm9wIGlzIHByZXNlbnQgYnV0IG51bGwvdW5kZWZpbmVkLlxuXHRcdFx0Ly8gYGRlZmF1bHRWYWx1ZWAgZm9yIEVsZW1lbnRzIHdpdGggbm8gdmFsdWUgcHJvcCBpcyB0aGUgc2FtZSBhcyB0aGUgRE9NIGRlZmF1bHRWYWx1ZSBwcm9wZXJ0eS5cblx0XHRcdGkgPSAndmFsdWUnO1xuXHRcdH0gZWxzZSBpZiAoaSA9PT0gJ2Rvd25sb2FkJyAmJiB2YWx1ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0Ly8gQ2FsbGluZyBgc2V0QXR0cmlidXRlYCB3aXRoIGEgdHJ1dGh5IHZhbHVlIHdpbGwgbGVhZCB0byBpdCBiZWluZ1xuXHRcdFx0Ly8gcGFzc2VkIGFzIGEgc3RyaW5naWZpZWQgdmFsdWUsIGUuZy4gYGRvd25sb2FkPVwidHJ1ZVwiYC4gUmVhY3Rcblx0XHRcdC8vIGNvbnZlcnRzIGl0IHRvIGFuIGVtcHR5IHN0cmluZyBpbnN0ZWFkLCBvdGhlcndpc2UgdGhlIGF0dHJpYnV0ZVxuXHRcdFx0Ly8gdmFsdWUgd2lsbCBiZSB1c2VkIGFzIHRoZSBmaWxlIG5hbWUgYW5kIHRoZSBmaWxlIHdpbGwgYmUgY2FsbGVkXG5cdFx0XHQvLyBcInRydWVcIiB1cG9uIGRvd25sb2FkaW5nIGl0LlxuXHRcdFx0dmFsdWUgPSAnJztcblx0XHR9IGVsc2UgaWYgKGxvd2VyQ2FzZWQgPT09ICd0cmFuc2xhdGUnICYmIHZhbHVlID09PSAnbm8nKSB7XG5cdFx0XHR2YWx1ZSA9IGZhbHNlO1xuXHRcdH0gZWxzZSBpZiAobG93ZXJDYXNlZFswXSA9PT0gJ28nICYmIGxvd2VyQ2FzZWRbMV0gPT09ICduJykge1xuXHRcdFx0aWYgKGxvd2VyQ2FzZWQgPT09ICdvbmRvdWJsZWNsaWNrJykge1xuXHRcdFx0XHRpID0gJ29uZGJsY2xpY2snO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0bG93ZXJDYXNlZCA9PT0gJ29uY2hhbmdlJyAmJlxuXHRcdFx0XHQodHlwZSA9PT0gJ2lucHV0JyB8fCB0eXBlID09PSAndGV4dGFyZWEnKSAmJlxuXHRcdFx0XHQhb25DaGFuZ2VJbnB1dFR5cGUocHJvcHMudHlwZSlcblx0XHRcdCkge1xuXHRcdFx0XHRsb3dlckNhc2VkID0gaSA9ICdvbmlucHV0Jztcblx0XHRcdH0gZWxzZSBpZiAobG93ZXJDYXNlZCA9PT0gJ29uZm9jdXMnKSB7XG5cdFx0XHRcdGkgPSAnb25mb2N1c2luJztcblx0XHRcdH0gZWxzZSBpZiAobG93ZXJDYXNlZCA9PT0gJ29uYmx1cicpIHtcblx0XHRcdFx0aSA9ICdvbmZvY3Vzb3V0Jztcblx0XHRcdH0gZWxzZSBpZiAoT05fQU5JLnRlc3QoaSkpIHtcblx0XHRcdFx0aSA9IGxvd2VyQ2FzZWQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpc05vbkRhc2hlZFR5cGUgJiYgQ0FNRUxfUFJPUFMudGVzdChpKSkge1xuXHRcdFx0aSA9IGkucmVwbGFjZShDQU1FTF9SRVBMQUNFLCAnLSQmJykudG9Mb3dlckNhc2UoKTtcblx0XHR9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHR2YWx1ZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBBZGQgc3VwcG9ydCBmb3Igb25JbnB1dCBhbmQgb25DaGFuZ2UsIHNlZSAjMzU2MVxuXHRcdC8vIGlmIHdlIGhhdmUgYW4gb25pbnB1dCBwcm9wIGFscmVhZHkgY2hhbmdlIGl0IHRvIG9uaW5wdXRDYXB0dXJlXG5cdFx0aWYgKGxvd2VyQ2FzZWQgPT09ICdvbmlucHV0Jykge1xuXHRcdFx0aSA9IGxvd2VyQ2FzZWQ7XG5cdFx0XHRpZiAobm9ybWFsaXplZFByb3BzW2ldKSB7XG5cdFx0XHRcdGkgPSAnb25pbnB1dENhcHR1cmUnO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdG5vcm1hbGl6ZWRQcm9wc1tpXSA9IHZhbHVlO1xuXHR9XG5cblx0Ly8gQWRkIHN1cHBvcnQgZm9yIGFycmF5IHNlbGVjdCB2YWx1ZXM6IDxzZWxlY3QgbXVsdGlwbGUgdmFsdWU9e1tdfSAvPlxuXHRpZiAoXG5cdFx0dHlwZSA9PSAnc2VsZWN0JyAmJlxuXHRcdG5vcm1hbGl6ZWRQcm9wcy5tdWx0aXBsZSAmJlxuXHRcdEFycmF5LmlzQXJyYXkobm9ybWFsaXplZFByb3BzLnZhbHVlKVxuXHQpIHtcblx0XHQvLyBmb3JFYWNoKCkgYWx3YXlzIHJldHVybnMgdW5kZWZpbmVkLCB3aGljaCB3ZSBhYnVzZSBoZXJlIHRvIHVuc2V0IHRoZSB2YWx1ZSBwcm9wLlxuXHRcdG5vcm1hbGl6ZWRQcm9wcy52YWx1ZSA9IHRvQ2hpbGRBcnJheShwcm9wcy5jaGlsZHJlbikuZm9yRWFjaChjaGlsZCA9PiB7XG5cdFx0XHRjaGlsZC5wcm9wcy5zZWxlY3RlZCA9XG5cdFx0XHRcdG5vcm1hbGl6ZWRQcm9wcy52YWx1ZS5pbmRleE9mKGNoaWxkLnByb3BzLnZhbHVlKSAhPSAtMTtcblx0XHR9KTtcblx0fVxuXG5cdC8vIEFkZGluZyBzdXBwb3J0IGZvciBkZWZhdWx0VmFsdWUgaW4gc2VsZWN0IHRhZ1xuXHRpZiAodHlwZSA9PSAnc2VsZWN0JyAmJiBub3JtYWxpemVkUHJvcHMuZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcblx0XHRub3JtYWxpemVkUHJvcHMudmFsdWUgPSB0b0NoaWxkQXJyYXkocHJvcHMuY2hpbGRyZW4pLmZvckVhY2goY2hpbGQgPT4ge1xuXHRcdFx0aWYgKG5vcm1hbGl6ZWRQcm9wcy5tdWx0aXBsZSkge1xuXHRcdFx0XHRjaGlsZC5wcm9wcy5zZWxlY3RlZCA9XG5cdFx0XHRcdFx0bm9ybWFsaXplZFByb3BzLmRlZmF1bHRWYWx1ZS5pbmRleE9mKGNoaWxkLnByb3BzLnZhbHVlKSAhPSAtMTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNoaWxkLnByb3BzLnNlbGVjdGVkID1cblx0XHRcdFx0XHRub3JtYWxpemVkUHJvcHMuZGVmYXVsdFZhbHVlID09IGNoaWxkLnByb3BzLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHByb3BzLmNsYXNzICYmICFwcm9wcy5jbGFzc05hbWUpIHtcblx0XHRub3JtYWxpemVkUHJvcHMuY2xhc3MgPSBwcm9wcy5jbGFzcztcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoXG5cdFx0XHRub3JtYWxpemVkUHJvcHMsXG5cdFx0XHQnY2xhc3NOYW1lJyxcblx0XHRcdGNsYXNzTmFtZURlc2NyaXB0b3JOb25FbnVtYmVyYWJsZVxuXHRcdCk7XG5cdH0gZWxzZSBpZiAocHJvcHMuY2xhc3NOYW1lICYmICFwcm9wcy5jbGFzcykge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy5jbGFzcyA9IG5vcm1hbGl6ZWRQcm9wcy5jbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG5cdH0gZWxzZSBpZiAocHJvcHMuY2xhc3MgJiYgcHJvcHMuY2xhc3NOYW1lKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNsYXNzID0gbm9ybWFsaXplZFByb3BzLmNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcblx0fVxuXG5cdHZub2RlLnByb3BzID0gbm9ybWFsaXplZFByb3BzO1xufVxuXG5sZXQgb2xkVk5vZGVIb29rID0gb3B0aW9ucy52bm9kZTtcbm9wdGlvbnMudm5vZGUgPSB2bm9kZSA9PiB7XG5cdC8vIG9ubHkgbm9ybWFsaXplIHByb3BzIG9uIEVsZW1lbnQgbm9kZXNcblx0aWYgKHR5cGVvZiB2bm9kZS50eXBlID09PSAnc3RyaW5nJykge1xuXHRcdGhhbmRsZURvbVZOb2RlKHZub2RlKTtcblx0fVxuXG5cdHZub2RlLiQkdHlwZW9mID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xuXG5cdGlmIChvbGRWTm9kZUhvb2spIG9sZFZOb2RlSG9vayh2bm9kZSk7XG59O1xuXG4vLyBPbmx5IG5lZWRlZCBmb3IgcmVhY3QtcmVsYXlcbmxldCBjdXJyZW50Q29tcG9uZW50O1xuY29uc3Qgb2xkQmVmb3JlUmVuZGVyID0gb3B0aW9ucy5fcmVuZGVyO1xub3B0aW9ucy5fcmVuZGVyID0gZnVuY3Rpb24gKHZub2RlKSB7XG5cdGlmIChvbGRCZWZvcmVSZW5kZXIpIHtcblx0XHRvbGRCZWZvcmVSZW5kZXIodm5vZGUpO1xuXHR9XG5cdGN1cnJlbnRDb21wb25lbnQgPSB2bm9kZS5fY29tcG9uZW50O1xufTtcblxuY29uc3Qgb2xkRGlmZmVkID0gb3B0aW9ucy5kaWZmZWQ7XG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUpID0+IHZvaWR9ICovXG5vcHRpb25zLmRpZmZlZCA9IGZ1bmN0aW9uICh2bm9kZSkge1xuXHRpZiAob2xkRGlmZmVkKSB7XG5cdFx0b2xkRGlmZmVkKHZub2RlKTtcblx0fVxuXG5cdGNvbnN0IHByb3BzID0gdm5vZGUucHJvcHM7XG5cdGNvbnN0IGRvbSA9IHZub2RlLl9kb207XG5cblx0aWYgKFxuXHRcdGRvbSAhPSBudWxsICYmXG5cdFx0dm5vZGUudHlwZSA9PT0gJ3RleHRhcmVhJyAmJlxuXHRcdCd2YWx1ZScgaW4gcHJvcHMgJiZcblx0XHRwcm9wcy52YWx1ZSAhPT0gZG9tLnZhbHVlXG5cdCkge1xuXHRcdGRvbS52YWx1ZSA9IHByb3BzLnZhbHVlID09IG51bGwgPyAnJyA6IHByb3BzLnZhbHVlO1xuXHR9XG5cblx0Y3VycmVudENvbXBvbmVudCA9IG51bGw7XG59O1xuXG4vLyBUaGlzIGlzIGEgdmVyeSB2ZXJ5IHByaXZhdGUgaW50ZXJuYWwgZnVuY3Rpb24gZm9yIFJlYWN0IGl0XG4vLyBpcyB1c2VkIHRvIHNvcnQtb2YgZG8gcnVudGltZSBkZXBlbmRlbmN5IGluamVjdGlvbi5cbmV4cG9ydCBjb25zdCBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCA9IHtcblx0UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjoge1xuXHRcdGN1cnJlbnQ6IHtcblx0XHRcdHJlYWRDb250ZXh0KGNvbnRleHQpIHtcblx0XHRcdFx0cmV0dXJuIGN1cnJlbnRDb21wb25lbnQuX2dsb2JhbENvbnRleHRbY29udGV4dC5faWRdLnByb3BzLnZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdHVzZUNhbGxiYWNrLFxuXHRcdFx0dXNlQ29udGV4dCxcblx0XHRcdHVzZURlYnVnVmFsdWUsXG5cdFx0XHR1c2VEZWZlcnJlZFZhbHVlLFxuXHRcdFx0dXNlRWZmZWN0LFxuXHRcdFx0dXNlSWQsXG5cdFx0XHR1c2VJbXBlcmF0aXZlSGFuZGxlLFxuXHRcdFx0dXNlSW5zZXJ0aW9uRWZmZWN0LFxuXHRcdFx0dXNlTGF5b3V0RWZmZWN0LFxuXHRcdFx0dXNlTWVtbyxcblx0XHRcdC8vIHVzZU11dGFibGVTb3VyY2UsIC8vIGV4cGVyaW1lbnRhbC1vbmx5IGFuZCByZXBsYWNlZCBieSB1U0VTLCBsaWtlbHkgbm90IHdvcnRoIHN1cHBvcnRpbmdcblx0XHRcdHVzZVJlZHVjZXIsXG5cdFx0XHR1c2VSZWYsXG5cdFx0XHR1c2VTdGF0ZSxcblx0XHRcdHVzZVN5bmNFeHRlcm5hbFN0b3JlLFxuXHRcdFx0dXNlVHJhbnNpdGlvblxuXHRcdH1cblx0fVxufTtcbiIsICJpbXBvcnQge1xuXHRjcmVhdGVFbGVtZW50LFxuXHRyZW5kZXIgYXMgcHJlYWN0UmVuZGVyLFxuXHRjbG9uZUVsZW1lbnQgYXMgcHJlYWN0Q2xvbmVFbGVtZW50LFxuXHRjcmVhdGVSZWYsXG5cdENvbXBvbmVudCxcblx0Y3JlYXRlQ29udGV4dCxcblx0RnJhZ21lbnRcbn0gZnJvbSAncHJlYWN0JztcbmltcG9ydCB7XG5cdHVzZVN0YXRlLFxuXHR1c2VJZCxcblx0dXNlUmVkdWNlcixcblx0dXNlRWZmZWN0LFxuXHR1c2VMYXlvdXRFZmZlY3QsXG5cdHVzZVJlZixcblx0dXNlSW1wZXJhdGl2ZUhhbmRsZSxcblx0dXNlTWVtbyxcblx0dXNlQ2FsbGJhY2ssXG5cdHVzZUNvbnRleHQsXG5cdHVzZURlYnVnVmFsdWVcbn0gZnJvbSAncHJlYWN0L2hvb2tzJztcbmltcG9ydCB7IFB1cmVDb21wb25lbnQgfSBmcm9tICcuL1B1cmVDb21wb25lbnQnO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJy4vbWVtbyc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAnLi9mb3J3YXJkUmVmJztcbmltcG9ydCB7IENoaWxkcmVuIH0gZnJvbSAnLi9DaGlsZHJlbic7XG5pbXBvcnQgeyBTdXNwZW5zZSwgbGF6eSB9IGZyb20gJy4vc3VzcGVuc2UnO1xuaW1wb3J0IHsgU3VzcGVuc2VMaXN0IH0gZnJvbSAnLi9zdXNwZW5zZS1saXN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJy4vcG9ydGFscyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQge1xuXHRoeWRyYXRlLFxuXHRyZW5kZXIsXG5cdFJFQUNUX0VMRU1FTlRfVFlQRSxcblx0X19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRURcbn0gZnJvbSAnLi9yZW5kZXInO1xuXG5jb25zdCB2ZXJzaW9uID0gJzE4LjMuMSc7IC8vIHRyaWNrIGxpYnJhcmllcyB0byB0aGluayB3ZSBhcmUgcmVhY3RcblxuLyoqXG4gKiBMZWdhY3kgdmVyc2lvbiBvZiBjcmVhdGVFbGVtZW50LlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZVtcInR5cGVcIl19IHR5cGUgVGhlIG5vZGUgbmFtZSBvciBDb21wb25lbnQgY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeSh0eXBlKSB7XG5cdHJldHVybiBjcmVhdGVFbGVtZW50LmJpbmQobnVsbCwgdHlwZSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHBhc3NlZCBlbGVtZW50IGlzIGEgdmFsaWQgKHApcmVhY3Qgbm9kZS5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KGVsZW1lbnQpIHtcblx0cmV0dXJuICEhZWxlbWVudCAmJiBlbGVtZW50LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHBhc3NlZCBlbGVtZW50IGlzIGEgRnJhZ21lbnQgbm9kZS5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzRnJhZ21lbnQoZWxlbWVudCkge1xuXHRyZXR1cm4gaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC50eXBlID09PSBGcmFnbWVudDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSBNZW1vIG5vZGUuXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc01lbW8oZWxlbWVudCkge1xuXHRyZXR1cm4gKFxuXHRcdCEhZWxlbWVudCAmJlxuXHRcdCEhZWxlbWVudC5kaXNwbGF5TmFtZSAmJlxuXHRcdCh0eXBlb2YgZWxlbWVudC5kaXNwbGF5TmFtZSA9PT0gJ3N0cmluZycgfHxcblx0XHRcdGVsZW1lbnQuZGlzcGxheU5hbWUgaW5zdGFuY2VvZiBTdHJpbmcpICYmXG5cdFx0ZWxlbWVudC5kaXNwbGF5TmFtZS5zdGFydHNXaXRoKCdNZW1vKCcpXG5cdCk7XG59XG5cbi8qKlxuICogV3JhcCBgY2xvbmVFbGVtZW50YCB0byBhYm9ydCBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgbm90IGEgdmFsaWQgZWxlbWVudCBhbmQgYXBwbHlcbiAqIGFsbCB2bm9kZSBub3JtYWxpemF0aW9ucy5cbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9IGVsZW1lbnQgVGhlIHZub2RlIHRvIGNsb25lXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgUHJvcHMgdG8gYWRkIHdoZW4gY2xvbmluZ1xuICogQHBhcmFtIHtBcnJheTxpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnRDaGlsZHJlbj59IHJlc3QgT3B0aW9uYWwgY29tcG9uZW50IGNoaWxkcmVuXG4gKi9cbmZ1bmN0aW9uIGNsb25lRWxlbWVudChlbGVtZW50KSB7XG5cdGlmICghaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkpIHJldHVybiBlbGVtZW50O1xuXHRyZXR1cm4gcHJlYWN0Q2xvbmVFbGVtZW50LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgY29tcG9uZW50IHRyZWUgZnJvbSB0aGUgRE9NLCBpbmNsdWRpbmcgc3RhdGUgYW5kIGV2ZW50IGhhbmRsZXJzLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5QcmVhY3RFbGVtZW50fSBjb250YWluZXJcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiB1bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcikge1xuXHRpZiAoY29udGFpbmVyLl9jaGlsZHJlbikge1xuXHRcdHByZWFjdFJlbmRlcihudWxsLCBjb250YWluZXIpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cdHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG1hdGNoaW5nIERPTSBub2RlIGZvciBhIGNvbXBvbmVudFxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9IGNvbXBvbmVudFxuICogQHJldHVybnMge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdEVsZW1lbnQgfCBudWxsfVxuICovXG5mdW5jdGlvbiBmaW5kRE9NTm9kZShjb21wb25lbnQpIHtcblx0cmV0dXJuIChcblx0XHQoY29tcG9uZW50ICYmXG5cdFx0XHQoY29tcG9uZW50LmJhc2UgfHwgKGNvbXBvbmVudC5ub2RlVHlwZSA9PT0gMSAmJiBjb21wb25lbnQpKSkgfHxcblx0XHRudWxsXG5cdCk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZCB3YXkgdG8gY29udHJvbCBiYXRjaGVkIHJlbmRlcmluZyBpbnNpZGUgdGhlIHJlY29uY2lsZXIsIGJ1dCB3ZVxuICogYWxyZWFkeSBzY2hlZHVsZSBpbiBiYXRjaGVzIGluc2lkZSBvdXIgcmVuZGVyaW5nIGNvZGVcbiAqIEB0ZW1wbGF0ZSBBcmdcbiAqIEBwYXJhbSB7KGFyZzogQXJnKSA9PiB2b2lkfSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIHRoZSB1cGRhdGVkXG4gKiBAcGFyYW0ge0FyZ30gW2FyZ10gT3B0aW9uYWwgYXJndW1lbnQgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjYWxsYmFja1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5jb25zdCB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyA9IChjYWxsYmFjaywgYXJnKSA9PiBjYWxsYmFjayhhcmcpO1xuXG4vKipcbiAqIEluIFJlYWN0LCBgZmx1c2hTeW5jYCBmbHVzaGVzIHRoZSBlbnRpcmUgdHJlZSBhbmQgZm9yY2VzIGEgcmVyZW5kZXIuIEl0J3NcbiAqIGltcGxtZW50ZWQgaGVyZSBhcyBhIG5vLW9wLlxuICogQHRlbXBsYXRlIEFyZ1xuICogQHRlbXBsYXRlIFJlc3VsdFxuICogQHBhcmFtIHsoYXJnOiBBcmcpID0+IFJlc3VsdH0gY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBydW5zIGJlZm9yZSB0aGUgZmx1c2hcbiAqIEBwYXJhbSB7QXJnfSBbYXJnXSBPcHRpb25hbCBhcmd1bWVudCB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrXG4gKiBAcmV0dXJuc1xuICovXG5jb25zdCBmbHVzaFN5bmMgPSAoY2FsbGJhY2ssIGFyZykgPT4gY2FsbGJhY2soYXJnKTtcblxuLyoqXG4gKiBTdHJpY3QgTW9kZSBpcyBub3QgaW1wbGVtZW50ZWQgaW4gUHJlYWN0LCBzbyB3ZSBwcm92aWRlIGEgc3RhbmQtaW4gZm9yIGl0XG4gKiB0aGF0IGp1c3QgcmVuZGVycyBpdHMgY2hpbGRyZW4gd2l0aG91dCBpbXBvc2luZyBhbnkgcmVzdHJpY3Rpb25zLlxuICovXG5jb25zdCBTdHJpY3RNb2RlID0gRnJhZ21lbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oY2IpIHtcblx0Y2IoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZURlZmVycmVkVmFsdWUodmFsKSB7XG5cdHJldHVybiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VUcmFuc2l0aW9uKCkge1xuXHRyZXR1cm4gW2ZhbHNlLCBzdGFydFRyYW5zaXRpb25dO1xufVxuXG4vLyBUT0RPOiBpbiB0aGVvcnkgdGhpcyBzaG91bGQgYmUgZG9uZSBhZnRlciBhIFZOb2RlIGlzIGRpZmZlZCBhcyB3ZSB3YW50IHRvIGluc2VydFxuLy8gc3R5bGVzLy4uLiBiZWZvcmUgaXQgYXR0YWNoZXNcbmV4cG9ydCBjb25zdCB1c2VJbnNlcnRpb25FZmZlY3QgPSB1c2VMYXlvdXRFZmZlY3Q7XG5cbi8vIGNvbXBhdCB0byByZWFjdC1pc1xuZXhwb3J0IGNvbnN0IGlzRWxlbWVudCA9IGlzVmFsaWRFbGVtZW50O1xuXG4vKipcbiAqIFRoaXMgaXMgdGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9tYWluL3BhY2thZ2VzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3NyYy91c2VTeW5jRXh0ZXJuYWxTdG9yZVNoaW1DbGllbnQuanMjTDg0XG4gKiBvbiBhIGhpZ2ggbGV2ZWwgdGhpcyBjdXRzIG91dCB0aGUgd2FybmluZ3MsIC4uLiBhbmQgYXR0ZW1wdHMgYSBzbWFsbGVyIGltcGxlbWVudGF0aW9uXG4gKiBAdHlwZWRlZiB7eyBfdmFsdWU6IGFueTsgX2dldFNuYXBzaG90OiAoKSA9PiBhbnkgfX0gU3RvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QpIHtcblx0Y29uc3QgdmFsdWUgPSBnZXRTbmFwc2hvdCgpO1xuXG5cdC8qKlxuXHQgKiBAdHlwZWRlZiB7eyBfaW5zdGFuY2U6IFN0b3JlIH19IFN0b3JlUmVmXG5cdCAqIEB0eXBlIHtbU3RvcmVSZWYsIChzdG9yZTogU3RvcmVSZWYpID0+IHZvaWRdfVxuXHQgKi9cblx0Y29uc3QgW3sgX2luc3RhbmNlIH0sIGZvcmNlVXBkYXRlXSA9IHVzZVN0YXRlKHtcblx0XHRfaW5zdGFuY2U6IHsgX3ZhbHVlOiB2YWx1ZSwgX2dldFNuYXBzaG90OiBnZXRTbmFwc2hvdCB9XG5cdH0pO1xuXG5cdHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG5cdFx0X2luc3RhbmNlLl92YWx1ZSA9IHZhbHVlO1xuXHRcdF9pbnN0YW5jZS5fZ2V0U25hcHNob3QgPSBnZXRTbmFwc2hvdDtcblxuXHRcdGlmIChkaWRTbmFwc2hvdENoYW5nZShfaW5zdGFuY2UpKSB7XG5cdFx0XHRmb3JjZVVwZGF0ZSh7IF9pbnN0YW5jZSB9KTtcblx0XHR9XG5cdH0sIFtzdWJzY3JpYmUsIHZhbHVlLCBnZXRTbmFwc2hvdF0pO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKGRpZFNuYXBzaG90Q2hhbmdlKF9pbnN0YW5jZSkpIHtcblx0XHRcdGZvcmNlVXBkYXRlKHsgX2luc3RhbmNlIH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBzdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0aWYgKGRpZFNuYXBzaG90Q2hhbmdlKF9pbnN0YW5jZSkpIHtcblx0XHRcdFx0Zm9yY2VVcGRhdGUoeyBfaW5zdGFuY2UgfSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sIFtzdWJzY3JpYmVdKTtcblxuXHRyZXR1cm4gdmFsdWU7XG59XG5cbi8qKiBAdHlwZSB7KGluc3Q6IFN0b3JlKSA9PiBib29sZWFufSAqL1xuZnVuY3Rpb24gZGlkU25hcHNob3RDaGFuZ2UoaW5zdCkge1xuXHRjb25zdCBsYXRlc3RHZXRTbmFwc2hvdCA9IGluc3QuX2dldFNuYXBzaG90O1xuXHRjb25zdCBwcmV2VmFsdWUgPSBpbnN0Ll92YWx1ZTtcblx0dHJ5IHtcblx0XHRjb25zdCBuZXh0VmFsdWUgPSBsYXRlc3RHZXRTbmFwc2hvdCgpO1xuXHRcdHJldHVybiAhaXMocHJldlZhbHVlLCBuZXh0VmFsdWUpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbmV4cG9ydCAqIGZyb20gJ3ByZWFjdC9ob29rcyc7XG5leHBvcnQge1xuXHR2ZXJzaW9uLFxuXHRDaGlsZHJlbixcblx0cmVuZGVyLFxuXHRoeWRyYXRlLFxuXHR1bm1vdW50Q29tcG9uZW50QXROb2RlLFxuXHRjcmVhdGVQb3J0YWwsXG5cdGNyZWF0ZUVsZW1lbnQsXG5cdGNyZWF0ZUNvbnRleHQsXG5cdGNyZWF0ZUZhY3RvcnksXG5cdGNsb25lRWxlbWVudCxcblx0Y3JlYXRlUmVmLFxuXHRGcmFnbWVudCxcblx0aXNWYWxpZEVsZW1lbnQsXG5cdGlzRnJhZ21lbnQsXG5cdGlzTWVtbyxcblx0ZmluZERPTU5vZGUsXG5cdENvbXBvbmVudCxcblx0UHVyZUNvbXBvbmVudCxcblx0bWVtbyxcblx0Zm9yd2FyZFJlZixcblx0Zmx1c2hTeW5jLFxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5cdHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLFxuXHRTdHJpY3RNb2RlLFxuXHRTdXNwZW5zZSxcblx0U3VzcGVuc2VMaXN0LFxuXHRsYXp5LFxuXHRfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRFxufTtcblxuLy8gUmVhY3QgY29waWVzIHRoZSBuYW1lZCBleHBvcnRzIHRvIHRoZSBkZWZhdWx0IG9uZS5cbmV4cG9ydCBkZWZhdWx0IHtcblx0dXNlU3RhdGUsXG5cdHVzZUlkLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VFZmZlY3QsXG5cdHVzZUxheW91dEVmZmVjdCxcblx0dXNlSW5zZXJ0aW9uRWZmZWN0LFxuXHR1c2VUcmFuc2l0aW9uLFxuXHR1c2VEZWZlcnJlZFZhbHVlLFxuXHR1c2VTeW5jRXh0ZXJuYWxTdG9yZSxcblx0c3RhcnRUcmFuc2l0aW9uLFxuXHR1c2VSZWYsXG5cdHVzZUltcGVyYXRpdmVIYW5kbGUsXG5cdHVzZU1lbW8sXG5cdHVzZUNhbGxiYWNrLFxuXHR1c2VDb250ZXh0LFxuXHR1c2VEZWJ1Z1ZhbHVlLFxuXHR2ZXJzaW9uLFxuXHRDaGlsZHJlbixcblx0cmVuZGVyLFxuXHRoeWRyYXRlLFxuXHR1bm1vdW50Q29tcG9uZW50QXROb2RlLFxuXHRjcmVhdGVQb3J0YWwsXG5cdGNyZWF0ZUVsZW1lbnQsXG5cdGNyZWF0ZUNvbnRleHQsXG5cdGNyZWF0ZUZhY3RvcnksXG5cdGNsb25lRWxlbWVudCxcblx0Y3JlYXRlUmVmLFxuXHRGcmFnbWVudCxcblx0aXNWYWxpZEVsZW1lbnQsXG5cdGlzRWxlbWVudCxcblx0aXNGcmFnbWVudCxcblx0aXNNZW1vLFxuXHRmaW5kRE9NTm9kZSxcblx0Q29tcG9uZW50LFxuXHRQdXJlQ29tcG9uZW50LFxuXHRtZW1vLFxuXHRmb3J3YXJkUmVmLFxuXHRmbHVzaFN5bmMsXG5cdHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLFxuXHRTdHJpY3RNb2RlLFxuXHRTdXNwZW5zZSxcblx0U3VzcGVuc2VMaXN0LFxuXHRsYXp5LFxuXHRfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRFxufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiAhMFxufSk7XG5cbnZhciByZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKSwgaW5kZXggPSBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBkb2N1bWVudCA/IHJlYWN0LnVzZUxheW91dEVmZmVjdCA6IHJlYWN0LnVzZUVmZmVjdDtcblxuZXhwb3J0cy5kZWZhdWx0ID0gaW5kZXg7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG52YXIgcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgaW5kZXggPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gcmVhY3QudXNlTGF5b3V0RWZmZWN0IDogcmVhY3QudXNlRWZmZWN0O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBpbmRleDtcbiIsICIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmNqcy5wcm9kLmpzXCIpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmNqcy5kZXYuanNcIik7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2FmZUlzTmFOID0gTnVtYmVyLmlzTmFOIHx8XG4gICAgZnVuY3Rpb24gcG9ueWZpbGwodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IHZhbHVlO1xuICAgIH07XG5mdW5jdGlvbiBpc0VxdWFsKGZpcnN0LCBzZWNvbmQpIHtcbiAgICBpZiAoZmlyc3QgPT09IHNlY29uZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHNhZmVJc05hTihmaXJzdCkgJiYgc2FmZUlzTmFOKHNlY29uZCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFyZUlucHV0c0VxdWFsKG5ld0lucHV0cywgbGFzdElucHV0cykge1xuICAgIGlmIChuZXdJbnB1dHMubGVuZ3RoICE9PSBsYXN0SW5wdXRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3SW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghaXNFcXVhbChuZXdJbnB1dHNbaV0sIGxhc3RJbnB1dHNbaV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIG1lbW9pemVPbmUocmVzdWx0Rm4sIGlzRXF1YWwpIHtcbiAgICBpZiAoaXNFcXVhbCA9PT0gdm9pZCAwKSB7IGlzRXF1YWwgPSBhcmVJbnB1dHNFcXVhbDsgfVxuICAgIHZhciBjYWNoZSA9IG51bGw7XG4gICAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgICAgIHZhciBuZXdBcmdzID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBuZXdBcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhY2hlICYmIGNhY2hlLmxhc3RUaGlzID09PSB0aGlzICYmIGlzRXF1YWwobmV3QXJncywgY2FjaGUubGFzdEFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGUubGFzdFJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IHJlc3VsdEZuLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xuICAgICAgICBjYWNoZSA9IHtcbiAgICAgICAgICAgIGxhc3RSZXN1bHQ6IGxhc3RSZXN1bHQsXG4gICAgICAgICAgICBsYXN0QXJnczogbmV3QXJncyxcbiAgICAgICAgICAgIGxhc3RUaGlzOiB0aGlzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbGFzdFJlc3VsdDtcbiAgICB9XG4gICAgbWVtb2l6ZWQuY2xlYXIgPSBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgY2FjaGUgPSBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1lbW9pemVPbmU7XG4iLCAiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIF90eXBlb2Yobyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gdG9QcmltaXRpdmUsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZShcIi4vdG9QcmltaXRpdmUuanNcIik7XG5mdW5jdGlvbiB0b1Byb3BlcnR5S2V5KHQpIHtcbiAgdmFyIGkgPSB0b1ByaW1pdGl2ZSh0LCBcInN0cmluZ1wiKTtcbiAgcmV0dXJuIFwic3ltYm9sXCIgPT0gX3R5cGVvZihpKSA/IGkgOiBpICsgXCJcIjtcbn1cbm1vZHVsZS5leHBvcnRzID0gdG9Qcm9wZXJ0eUtleSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoXCIuL3RvUHJvcGVydHlLZXkuanNcIik7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHksIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAidmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4vZGVmaW5lUHJvcGVydHkuanNcIik7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHtcbiAgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTtcbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7XG4gICAgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pO1xuICB9XG4gIHJldHVybiB0O1xufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSkge1xuICBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykge1xuICAgIHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTtcbiAgICByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikge1xuICAgICAgZGVmaW5lUHJvcGVydHkoZSwgciwgdFtyXSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9vYmplY3RTcHJlYWQyLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aEhvbGVzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBsKSB7XG4gIHZhciB0ID0gbnVsbCA9PSByID8gbnVsbCA6IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiByW1N5bWJvbC5pdGVyYXRvcl0gfHwgcltcIkBAaXRlcmF0b3JcIl07XG4gIGlmIChudWxsICE9IHQpIHtcbiAgICB2YXIgZSxcbiAgICAgIG4sXG4gICAgICBpLFxuICAgICAgdSxcbiAgICAgIGEgPSBbXSxcbiAgICAgIGYgPSAhMCxcbiAgICAgIG8gPSAhMTtcbiAgICB0cnkge1xuICAgICAgaWYgKGkgPSAodCA9IHQuY2FsbChyKSkubmV4dCwgMCA9PT0gbCkge1xuICAgICAgICBpZiAoT2JqZWN0KHQpICE9PSB0KSByZXR1cm47XG4gICAgICAgIGYgPSAhMTtcbiAgICAgIH0gZWxzZSBmb3IgKDsgIShmID0gKGUgPSBpLmNhbGwodCkpLmRvbmUpICYmIChhLnB1c2goZS52YWx1ZSksIGEubGVuZ3RoICE9PSBsKTsgZiA9ICEwKTtcbiAgICB9IGNhdGNoIChyKSB7XG4gICAgICBvID0gITAsIG4gPSByO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIWYgJiYgbnVsbCAhPSB0W1wicmV0dXJuXCJdICYmICh1ID0gdFtcInJldHVyblwiXSgpLCBPYmplY3QodSkgIT09IHUpKSByZXR1cm47XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAobykgdGhyb3cgbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gX2l0ZXJhYmxlVG9BcnJheUxpbWl0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KHIsIGEpIHtcbiAgKG51bGwgPT0gYSB8fCBhID4gci5sZW5ndGgpICYmIChhID0gci5sZW5ndGgpO1xuICBmb3IgKHZhciBlID0gMCwgbiA9IEFycmF5KGEpOyBlIDwgYTsgZSsrKSBuW2VdID0gcltlXTtcbiAgcmV0dXJuIG47XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9hcnJheUxpa2VUb0FycmF5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyLCBhKSB7XG4gIGlmIChyKSB7XG4gICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KHIsIGEpO1xuICAgIHZhciB0ID0ge30udG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LCAtMSk7XG4gICAgcmV0dXJuIFwiT2JqZWN0XCIgPT09IHQgJiYgci5jb25zdHJ1Y3RvciAmJiAodCA9IHIuY29uc3RydWN0b3IubmFtZSksIFwiTWFwXCIgPT09IHQgfHwgXCJTZXRcIiA9PT0gdCA/IEFycmF5LmZyb20ocikgOiBcIkFyZ3VtZW50c1wiID09PSB0IHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpID8gYXJyYXlMaWtlVG9BcnJheShyLCBhKSA6IHZvaWQgMDtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXksIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX25vbkl0ZXJhYmxlUmVzdCwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgYXJyYXlXaXRoSG9sZXMgPSByZXF1aXJlKFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiKTtcbnZhciBpdGVyYWJsZVRvQXJyYXlMaW1pdCA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCIpO1xudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG52YXIgbm9uSXRlcmFibGVSZXN0ID0gcmVxdWlyZShcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCIpO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9zbGljZWRUb0FycmF5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHIsIGUpIHtcbiAgaWYgKG51bGwgPT0gcikgcmV0dXJuIHt9O1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBuIGluIHIpIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIG4pKSB7XG4gICAgaWYgKGUuaW5jbHVkZXMobikpIGNvbnRpbnVlO1xuICAgIHRbbl0gPSByW25dO1xuICB9XG4gIHJldHVybiB0O1xufVxubW9kdWxlLmV4cG9ydHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSA9IHJlcXVpcmUoXCIuL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanNcIik7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBzLmxlbmd0aDsgcisrKSBvID0gc1tyXSwgdC5pbmNsdWRlcyhvKSB8fCB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoXCIuL3RvUHJvcGVydHlLZXkuanNcIik7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLCByKSB7XG4gIGZvciAodmFyIHQgPSAwOyB0IDwgci5sZW5ndGg7IHQrKykge1xuICAgIHZhciBvID0gclt0XTtcbiAgICBvLmVudW1lcmFibGUgPSBvLmVudW1lcmFibGUgfHwgITEsIG8uY29uZmlndXJhYmxlID0gITAsIFwidmFsdWVcIiBpbiBvICYmIChvLndyaXRhYmxlID0gITApLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfY3JlYXRlQ2xhc3MsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHQsIGUpIHtcbiAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBfc2V0UHJvdG90eXBlT2YodCwgZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcbmZ1bmN0aW9uIF9pbmhlcml0cyh0LCBlKSB7XG4gIGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoZSAmJiBlLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogdCxcbiAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICB9XG4gIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiAhMVxuICB9KSwgZSAmJiBzZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2luaGVyaXRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZih0KSB7XG4gIHJldHVybiBtb2R1bGUuZXhwb3J0cyA9IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgX2dldFByb3RvdHlwZU9mKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgdCA9ICFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gIH0gY2F0Y2ggKHQpIHt9XG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgICByZXR1cm4gISF0O1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpKCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xudmFyIGFzc2VydFRoaXNJbml0aWFsaXplZCA9IHJlcXVpcmUoXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiKTtcbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHQsIGUpIHtcbiAgaWYgKGUgJiYgKFwib2JqZWN0XCIgPT0gX3R5cGVvZihlKSB8fCBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGUpKSByZXR1cm4gZTtcbiAgaWYgKHZvaWQgMCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcbnZhciBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIik7XG52YXIgcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiA9IHJlcXVpcmUoXCIuL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanNcIik7XG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIodCkge1xuICB2YXIgciA9IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBlLFxuICAgICAgbyA9IGdldFByb3RvdHlwZU9mKHQpO1xuICAgIGlmIChyKSB7XG4gICAgICB2YXIgcyA9IGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICAgICAgZSA9IFJlZmxlY3QuY29uc3RydWN0KG8sIGFyZ3VtZW50cywgcyk7XG4gICAgfSBlbHNlIGUgPSBvLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgZSk7XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVTdXBlciwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJ2YXIgYXJyYXlMaWtlVG9BcnJheSA9IHJlcXVpcmUoXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIik7XG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMocikge1xuICBpZiAoQXJyYXkuaXNBcnJheShyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkocik7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9hcnJheVdpdGhvdXRIb2xlcywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KHIpIHtcbiAgaWYgKFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiBudWxsICE9IHJbU3ltYm9sLml0ZXJhdG9yXSB8fCBudWxsICE9IHJbXCJAQGl0ZXJhdG9yXCJdKSByZXR1cm4gQXJyYXkuZnJvbShyKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2l0ZXJhYmxlVG9BcnJheSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyIsICJmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVTcHJlYWQsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIik7XG52YXIgaXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vaXRlcmFibGVUb0FycmF5LmpzXCIpO1xudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiKTtcbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhyKSB8fCBpdGVyYWJsZVRvQXJyYXkocikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkocikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwgImZ1bmN0aW9uIF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwoZSwgdCkge1xuICByZXR1cm4gdCB8fCAodCA9IGUuc2xpY2UoMCkpLCBPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIHtcbiAgICByYXc6IHtcbiAgICAgIHZhbHVlOiBPYmplY3QuZnJlZXplKHQpXG4gICAgfVxuICB9KSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCAiY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5sZXQgX1dJTkRPVyA9IHt9O1xubGV0IF9ET0NVTUVOVCA9IHt9O1xubGV0IF9NVVRBVElPTl9PQlNFUlZFUiA9IG51bGw7XG5sZXQgX1BFUkZPUk1BTkNFID0ge1xuICBtYXJrOiBub29wLFxuICBtZWFzdXJlOiBub29wXG59O1xuXG50cnkge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIF9XSU5ET1cgPSB3aW5kb3c7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSBfRE9DVU1FTlQgPSBkb2N1bWVudDtcbiAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJykgX01VVEFUSU9OX09CU0VSVkVSID0gTXV0YXRpb25PYnNlcnZlcjtcbiAgaWYgKHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCcpIF9QRVJGT1JNQU5DRSA9IHBlcmZvcm1hbmNlO1xufSBjYXRjaCAoZSkge31cblxuY29uc3Qge1xuICB1c2VyQWdlbnQgPSAnJ1xufSA9IF9XSU5ET1cubmF2aWdhdG9yIHx8IHt9O1xuY29uc3QgV0lORE9XID0gX1dJTkRPVztcbmNvbnN0IERPQ1VNRU5UID0gX0RPQ1VNRU5UO1xuY29uc3QgTVVUQVRJT05fT0JTRVJWRVIgPSBfTVVUQVRJT05fT0JTRVJWRVI7XG5jb25zdCBQRVJGT1JNQU5DRSA9IF9QRVJGT1JNQU5DRTtcbmNvbnN0IElTX0JST1dTRVIgPSAhIVdJTkRPVy5kb2N1bWVudDtcbmNvbnN0IElTX0RPTSA9ICEhRE9DVU1FTlQuZG9jdW1lbnRFbGVtZW50ICYmICEhRE9DVU1FTlQuaGVhZCAmJiB0eXBlb2YgRE9DVU1FTlQuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgRE9DVU1FTlQuY3JlYXRlRWxlbWVudCA9PT0gJ2Z1bmN0aW9uJztcbmNvbnN0IElTX0lFID0gfnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykgfHwgfnVzZXJBZ2VudC5pbmRleE9mKCdUcmlkZW50LycpO1xuXG52YXIgYSA9IFwiY2xhc3NpY1wiLFxuICAgIHQgPSBcImR1b3RvbmVcIixcbiAgICByID0gXCJzaGFycFwiLFxuICAgIG8gPSBcInNoYXJwLWR1b3RvbmVcIixcbiAgICBjID0gW2EsIHQsIHIsIG9dO1xuXG52YXIgZXQkMSA9IHtcbiAgY2xhc3NpYzoge1xuICAgIDkwMDogXCJmYXNcIixcbiAgICA0MDA6IFwiZmFyXCIsXG4gICAgbm9ybWFsOiBcImZhclwiLFxuICAgIDMwMDogXCJmYWxcIixcbiAgICAxMDA6IFwiZmF0XCJcbiAgfSxcbiAgc2hhcnA6IHtcbiAgICA5MDA6IFwiZmFzc1wiLFxuICAgIDQwMDogXCJmYXNyXCIsXG4gICAgMzAwOiBcImZhc2xcIixcbiAgICAxMDA6IFwiZmFzdFwiXG4gIH0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgOTAwOiBcImZhc2RzXCJcbiAgfVxufTtcbnZhciBidCA9IHtcbiAga2l0OiB7XG4gICAgZmFrOiBcImtpdFwiLFxuICAgIFwiZmEta2l0XCI6IFwia2l0XCJcbiAgfSxcbiAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgZmFrZDogXCJraXQtZHVvdG9uZVwiLFxuICAgIFwiZmEta2l0LWR1b3RvbmVcIjogXCJraXQtZHVvdG9uZVwiXG4gIH1cbn0sXG4gICAgQ3QgPSBbXCJraXRcIl07XG52YXIgRHQgPSAvZmEoc3xyfGx8dHxkfGJ8a3xrZHxzc3xzcnxzbHxzdHxzZHMpP1tcXC1cXCBdLyxcbiAgICBLdCA9IC9Gb250ID9Bd2Vzb21lID8oWzU2IF0qKShTb2xpZHxSZWd1bGFyfExpZ2h0fFRoaW58RHVvdG9uZXxCcmFuZHN8RnJlZXxQcm98U2hhcnAgRHVvdG9uZXxTaGFycHxLaXQpPy4qL2k7XG52YXIgYW8gPSB7XG4gIFwiRm9udCBBd2Vzb21lIDUgRnJlZVwiOiB7XG4gICAgOTAwOiBcImZhc1wiLFxuICAgIDQwMDogXCJmYXJcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA1IFByb1wiOiB7XG4gICAgOTAwOiBcImZhc1wiLFxuICAgIDQwMDogXCJmYXJcIixcbiAgICBub3JtYWw6IFwiZmFyXCIsXG4gICAgMzAwOiBcImZhbFwiXG4gIH0sXG4gIFwiRm9udCBBd2Vzb21lIDUgQnJhbmRzXCI6IHtcbiAgICA0MDA6IFwiZmFiXCIsXG4gICAgbm9ybWFsOiBcImZhYlwiXG4gIH0sXG4gIFwiRm9udCBBd2Vzb21lIDUgRHVvdG9uZVwiOiB7XG4gICAgOTAwOiBcImZhZFwiXG4gIH1cbn07XG52YXIgZW8gPSB7XG4gIFwiRm9udCBBd2Vzb21lIDYgRnJlZVwiOiB7XG4gICAgOTAwOiBcImZhc1wiLFxuICAgIDQwMDogXCJmYXJcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA2IFByb1wiOiB7XG4gICAgOTAwOiBcImZhc1wiLFxuICAgIDQwMDogXCJmYXJcIixcbiAgICBub3JtYWw6IFwiZmFyXCIsXG4gICAgMzAwOiBcImZhbFwiLFxuICAgIDEwMDogXCJmYXRcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1wiOiB7XG4gICAgNDAwOiBcImZhYlwiLFxuICAgIG5vcm1hbDogXCJmYWJcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA2IER1b3RvbmVcIjoge1xuICAgIDkwMDogXCJmYWRcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA2IFNoYXJwXCI6IHtcbiAgICA5MDA6IFwiZmFzc1wiLFxuICAgIDQwMDogXCJmYXNyXCIsXG4gICAgbm9ybWFsOiBcImZhc3JcIixcbiAgICAzMDA6IFwiZmFzbFwiLFxuICAgIDEwMDogXCJmYXN0XCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNiBTaGFycCBEdW90b25lXCI6IHtcbiAgICA5MDA6IFwiZmFzZHNcIlxuICB9XG59LFxuICAgIGxvID0ge1xuICBjbGFzc2ljOiB7XG4gICAgXCJmYS1icmFuZHNcIjogXCJmYWJcIixcbiAgICBcImZhLWR1b3RvbmVcIjogXCJmYWRcIixcbiAgICBcImZhLWxpZ2h0XCI6IFwiZmFsXCIsXG4gICAgXCJmYS1yZWd1bGFyXCI6IFwiZmFyXCIsXG4gICAgXCJmYS1zb2xpZFwiOiBcImZhc1wiLFxuICAgIFwiZmEtdGhpblwiOiBcImZhdFwiXG4gIH0sXG4gIHNoYXJwOiB7XG4gICAgXCJmYS1zb2xpZFwiOiBcImZhc3NcIixcbiAgICBcImZhLXJlZ3VsYXJcIjogXCJmYXNyXCIsXG4gICAgXCJmYS1saWdodFwiOiBcImZhc2xcIixcbiAgICBcImZhLXRoaW5cIjogXCJmYXN0XCJcbiAgfSxcbiAgXCJzaGFycC1kdW90b25lXCI6IHtcbiAgICBcImZhLXNvbGlkXCI6IFwiZmFzZHNcIlxuICB9XG59LFxuICAgIHkgPSB7XG4gIGNsYXNzaWM6IFtcImZhc1wiLCBcImZhclwiLCBcImZhbFwiLCBcImZhdFwiXSxcbiAgc2hhcnA6IFtcImZhc3NcIiwgXCJmYXNyXCIsIFwiZmFzbFwiLCBcImZhc3RcIl0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiBbXCJmYXNkc1wiXVxufSxcbiAgICBubyA9IHtcbiAgY2xhc3NpYzoge1xuICAgIGZhYjogXCJmYS1icmFuZHNcIixcbiAgICBmYWQ6IFwiZmEtZHVvdG9uZVwiLFxuICAgIGZhbDogXCJmYS1saWdodFwiLFxuICAgIGZhcjogXCJmYS1yZWd1bGFyXCIsXG4gICAgZmFzOiBcImZhLXNvbGlkXCIsXG4gICAgZmF0OiBcImZhLXRoaW5cIlxuICB9LFxuICBzaGFycDoge1xuICAgIGZhc3M6IFwiZmEtc29saWRcIixcbiAgICBmYXNyOiBcImZhLXJlZ3VsYXJcIixcbiAgICBmYXNsOiBcImZhLWxpZ2h0XCIsXG4gICAgZmFzdDogXCJmYS10aGluXCJcbiAgfSxcbiAgXCJzaGFycC1kdW90b25lXCI6IHtcbiAgICBmYXNkczogXCJmYS1zb2xpZFwiXG4gIH1cbn0sXG4gICAgZm8gPSB7XG4gIGNsYXNzaWM6IHtcbiAgICBzb2xpZDogXCJmYXNcIixcbiAgICByZWd1bGFyOiBcImZhclwiLFxuICAgIGxpZ2h0OiBcImZhbFwiLFxuICAgIHRoaW46IFwiZmF0XCIsXG4gICAgZHVvdG9uZTogXCJmYWRcIixcbiAgICBicmFuZHM6IFwiZmFiXCJcbiAgfSxcbiAgc2hhcnA6IHtcbiAgICBzb2xpZDogXCJmYXNzXCIsXG4gICAgcmVndWxhcjogXCJmYXNyXCIsXG4gICAgbGlnaHQ6IFwiZmFzbFwiLFxuICAgIHRoaW46IFwiZmFzdFwiXG4gIH0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgc29saWQ6IFwiZmFzZHNcIlxuICB9XG59LFxuICAgIGhvID0ge1xuICBjbGFzc2ljOiB7XG4gICAgZmE6IFwic29saWRcIixcbiAgICBmYXM6IFwic29saWRcIixcbiAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIixcbiAgICBmYXI6IFwicmVndWxhclwiLFxuICAgIFwiZmEtcmVndWxhclwiOiBcInJlZ3VsYXJcIixcbiAgICBmYWw6IFwibGlnaHRcIixcbiAgICBcImZhLWxpZ2h0XCI6IFwibGlnaHRcIixcbiAgICBmYXQ6IFwidGhpblwiLFxuICAgIFwiZmEtdGhpblwiOiBcInRoaW5cIixcbiAgICBmYWQ6IFwiZHVvdG9uZVwiLFxuICAgIFwiZmEtZHVvdG9uZVwiOiBcImR1b3RvbmVcIixcbiAgICBmYWI6IFwiYnJhbmRzXCIsXG4gICAgXCJmYS1icmFuZHNcIjogXCJicmFuZHNcIlxuICB9LFxuICBzaGFycDoge1xuICAgIGZhOiBcInNvbGlkXCIsXG4gICAgZmFzczogXCJzb2xpZFwiLFxuICAgIFwiZmEtc29saWRcIjogXCJzb2xpZFwiLFxuICAgIGZhc3I6IFwicmVndWxhclwiLFxuICAgIFwiZmEtcmVndWxhclwiOiBcInJlZ3VsYXJcIixcbiAgICBmYXNsOiBcImxpZ2h0XCIsXG4gICAgXCJmYS1saWdodFwiOiBcImxpZ2h0XCIsXG4gICAgZmFzdDogXCJ0aGluXCIsXG4gICAgXCJmYS10aGluXCI6IFwidGhpblwiXG4gIH0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgZmE6IFwic29saWRcIixcbiAgICBmYXNkczogXCJzb2xpZFwiLFxuICAgIFwiZmEtc29saWRcIjogXCJzb2xpZFwiXG4gIH1cbn0sXG4gICAgeCQxID0gW1wic29saWRcIiwgXCJyZWd1bGFyXCIsIFwibGlnaHRcIiwgXCJ0aGluXCIsIFwiZHVvdG9uZVwiLCBcImJyYW5kc1wiXSxcbiAgICB1JDEgPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdLFxuICAgIG0kMSA9IHUkMS5jb25jYXQoWzExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSksXG4gICAgdCQxID0ge1xuICBHUk9VUDogXCJkdW90b25lLWdyb3VwXCIsXG4gIFNXQVBfT1BBQ0lUWTogXCJzd2FwLW9wYWNpdHlcIixcbiAgUFJJTUFSWTogXCJwcmltYXJ5XCIsXG4gIFNFQ09OREFSWTogXCJzZWNvbmRhcnlcIlxufSxcbiAgICB5byA9IFsuLi5PYmplY3Qua2V5cyh5KSwgLi4ueCQxLCBcIjJ4c1wiLCBcInhzXCIsIFwic21cIiwgXCJsZ1wiLCBcInhsXCIsIFwiMnhsXCIsIFwiYmVhdFwiLCBcImJvcmRlclwiLCBcImZhZGVcIiwgXCJiZWF0LWZhZGVcIiwgXCJib3VuY2VcIiwgXCJmbGlwLWJvdGhcIiwgXCJmbGlwLWhvcml6b250YWxcIiwgXCJmbGlwLXZlcnRpY2FsXCIsIFwiZmxpcFwiLCBcImZ3XCIsIFwiaW52ZXJzZVwiLCBcImxheWVycy1jb3VudGVyXCIsIFwibGF5ZXJzLXRleHRcIiwgXCJsYXllcnNcIiwgXCJsaVwiLCBcInB1bGwtbGVmdFwiLCBcInB1bGwtcmlnaHRcIiwgXCJwdWxzZVwiLCBcInJvdGF0ZS0xODBcIiwgXCJyb3RhdGUtMjcwXCIsIFwicm90YXRlLTkwXCIsIFwicm90YXRlLWJ5XCIsIFwic2hha2VcIiwgXCJzcGluLXB1bHNlXCIsIFwic3Bpbi1yZXZlcnNlXCIsIFwic3BpblwiLCBcInN0YWNrLTF4XCIsIFwic3RhY2stMnhcIiwgXCJzdGFja1wiLCBcInVsXCIsIHQkMS5HUk9VUCwgdCQxLlNXQVBfT1BBQ0lUWSwgdCQxLlBSSU1BUlksIHQkMS5TRUNPTkRBUlldLmNvbmNhdCh1JDEubWFwKG8gPT4gXCJcIi5jb25jYXQobywgXCJ4XCIpKSkuY29uY2F0KG0kMS5tYXAobyA9PiBcInctXCIuY29uY2F0KG8pKSk7XG52YXIgbW8gPSB7XG4gIFwiRm9udCBBd2Vzb21lIEtpdFwiOiB7XG4gICAgNDAwOiBcImZha1wiLFxuICAgIG5vcm1hbDogXCJmYWtcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSBLaXQgRHVvdG9uZVwiOiB7XG4gICAgNDAwOiBcImZha2RcIixcbiAgICBub3JtYWw6IFwiZmFrZFwiXG4gIH1cbn0sXG4gICAgSW8gPSB7XG4gIGtpdDoge1xuICAgIFwiZmEta2l0XCI6IFwiZmFrXCJcbiAgfSxcbiAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgXCJmYS1raXQtZHVvdG9uZVwiOiBcImZha2RcIlxuICB9XG59LFxuICAgIEZvID0ge1xuICBraXQ6IHtcbiAgICBmYWs6IFwiZmEta2l0XCJcbiAgfSxcbiAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgZmFrZDogXCJmYS1raXQtZHVvdG9uZVwiXG4gIH1cbn0sXG4gICAgU28gPSB7XG4gIGtpdDoge1xuICAgIGtpdDogXCJmYWtcIlxuICB9LFxuICBcImtpdC1kdW90b25lXCI6IHtcbiAgICBcImtpdC1kdW90b25lXCI6IFwiZmFrZFwiXG4gIH1cbn07XG5cbmNvbnN0IE5BTUVTUEFDRV9JREVOVElGSUVSID0gJ19fX0ZPTlRfQVdFU09NRV9fXyc7XG5jb25zdCBVTklUU19JTl9HUklEID0gMTY7XG5jb25zdCBERUZBVUxUX0NTU19QUkVGSVggPSAnZmEnO1xuY29uc3QgREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUyA9ICdzdmctaW5saW5lLS1mYSc7XG5jb25zdCBEQVRBX0ZBX0kyU1ZHID0gJ2RhdGEtZmEtaTJzdmcnO1xuY29uc3QgREFUQV9GQV9QU0VVRE9fRUxFTUVOVCA9ICdkYXRhLWZhLXBzZXVkby1lbGVtZW50JztcbmNvbnN0IERBVEFfRkFfUFNFVURPX0VMRU1FTlRfUEVORElORyA9ICdkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmcnO1xuY29uc3QgREFUQV9QUkVGSVggPSAnZGF0YS1wcmVmaXgnO1xuY29uc3QgREFUQV9JQ09OID0gJ2RhdGEtaWNvbic7XG5jb25zdCBIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MgPSAnZm9udGF3ZXNvbWUtaTJzdmcnO1xuY29uc3QgTVVUQVRJT05fQVBQUk9BQ0hfQVNZTkMgPSAnYXN5bmMnO1xuY29uc3QgVEFHTkFNRVNfVE9fU0tJUF9GT1JfUFNFVURPRUxFTUVOVFMgPSBbJ0hUTUwnLCAnSEVBRCcsICdTVFlMRScsICdTQ1JJUFQnXTtcbmNvbnN0IFBST0RVQ1RJT04gPSAoKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nO1xuICB9IGNhdGNoIChlJCQxKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59KSgpO1xuY29uc3QgRkFNSUxJRVMgPSBbYSwgciwgb107XG5cbmZ1bmN0aW9uIGZhbWlseVByb3h5KG9iaikge1xuICAvLyBEZWZhdWx0cyB0byB0aGUgY2xhc3NpYyBmYW1pbHkgaWYgZmFtaWx5IGlzIG5vdCBhdmFpbGFibGVcbiAgcmV0dXJuIG5ldyBQcm94eShvYmosIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gcHJvcCBpbiB0YXJnZXQgPyB0YXJnZXRbcHJvcF0gOiB0YXJnZXRbYV07XG4gICAgfVxuXG4gIH0pO1xufVxuXG5jb25zdCBfUFJFRklYX1RPX1NUWUxFID0geyAuLi5ob1xufTtcbl9QUkVGSVhfVE9fU1RZTEVbYV0gPSB7IC4uLmhvW2FdLFxuICAuLi5idFsna2l0J10sXG4gIC4uLmJ0WydraXQtZHVvdG9uZSddXG59O1xuY29uc3QgUFJFRklYX1RPX1NUWUxFID0gZmFtaWx5UHJveHkoX1BSRUZJWF9UT19TVFlMRSk7XG5jb25zdCBfU1RZTEVfVE9fUFJFRklYID0geyAuLi5mb1xufTtcbl9TVFlMRV9UT19QUkVGSVhbYV0gPSB7IC4uLl9TVFlMRV9UT19QUkVGSVhbYV0sXG4gIC4uLlNvWydraXQnXSxcbiAgLi4uU29bJ2tpdC1kdW90b25lJ11cbn07XG5jb25zdCBTVFlMRV9UT19QUkVGSVggPSBmYW1pbHlQcm94eShfU1RZTEVfVE9fUFJFRklYKTtcbmNvbnN0IF9QUkVGSVhfVE9fTE9OR19TVFlMRSA9IHsgLi4ubm9cbn07XG5fUFJFRklYX1RPX0xPTkdfU1RZTEVbYV0gPSB7IC4uLl9QUkVGSVhfVE9fTE9OR19TVFlMRVthXSxcbiAgLi4uRm9bJ2tpdCddXG59O1xuY29uc3QgUFJFRklYX1RPX0xPTkdfU1RZTEUgPSBmYW1pbHlQcm94eShfUFJFRklYX1RPX0xPTkdfU1RZTEUpO1xuY29uc3QgX0xPTkdfU1RZTEVfVE9fUFJFRklYID0geyAuLi5sb1xufTtcbl9MT05HX1NUWUxFX1RPX1BSRUZJWFthXSA9IHsgLi4uX0xPTkdfU1RZTEVfVE9fUFJFRklYW2FdLFxuICAuLi5Jb1sna2l0J11cbn07XG5jb25zdCBMT05HX1NUWUxFX1RPX1BSRUZJWCA9IGZhbWlseVByb3h5KF9MT05HX1NUWUxFX1RPX1BSRUZJWCk7XG5jb25zdCBJQ09OX1NFTEVDVElPTl9TWU5UQVhfUEFUVEVSTiA9IER0OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG5cbmNvbnN0IExBWUVSU19URVhUX0NMQVNTTkFNRSA9ICdmYS1sYXllcnMtdGV4dCc7XG5jb25zdCBGT05UX0ZBTUlMWV9QQVRURVJOID0gS3Q7XG5jb25zdCBfRk9OVF9XRUlHSFRfVE9fUFJFRklYID0geyAuLi5ldCQxXG59O1xuY29uc3QgRk9OVF9XRUlHSFRfVE9fUFJFRklYID0gZmFtaWx5UHJveHkoX0ZPTlRfV0VJR0hUX1RPX1BSRUZJWCk7XG5jb25zdCBBVFRSSUJVVEVTX1dBVENIRURfRk9SX01VVEFUSU9OID0gWydjbGFzcycsICdkYXRhLXByZWZpeCcsICdkYXRhLWljb24nLCAnZGF0YS1mYS10cmFuc2Zvcm0nLCAnZGF0YS1mYS1tYXNrJ107XG5jb25zdCBEVU9UT05FX0NMQVNTRVMgPSB0JDE7XG5jb25zdCBwcmVmaXhlcyA9IG5ldyBTZXQoKTtcbk9iamVjdC5rZXlzKFNUWUxFX1RPX1BSRUZJWFthXSkubWFwKHByZWZpeGVzLmFkZC5iaW5kKHByZWZpeGVzKSk7XG5PYmplY3Qua2V5cyhTVFlMRV9UT19QUkVGSVhbcl0pLm1hcChwcmVmaXhlcy5hZGQuYmluZChwcmVmaXhlcykpO1xuT2JqZWN0LmtleXMoU1RZTEVfVE9fUFJFRklYW29dKS5tYXAocHJlZml4ZXMuYWRkLmJpbmQocHJlZml4ZXMpKTtcbmNvbnN0IFJFU0VSVkVEX0NMQVNTRVMgPSBbLi4uQ3QsIC4uLnlvXTtcblxuY29uc3QgaW5pdGlhbCA9IFdJTkRPVy5Gb250QXdlc29tZUNvbmZpZyB8fCB7fTtcblxuZnVuY3Rpb24gZ2V0QXR0ckNvbmZpZyhhdHRyKSB7XG4gIHZhciBlbGVtZW50ID0gRE9DVU1FTlQucXVlcnlTZWxlY3Rvcignc2NyaXB0WycgKyBhdHRyICsgJ10nKTtcblxuICBpZiAoZWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIC8vIEdldHRpbmcgYW4gZW1wdHkgc3RyaW5nIHdpbGwgb2NjdXIgaWYgdGhlIGF0dHJpYnV0ZSBpcyBzZXQgb24gdGhlIEhUTUwgdGFnIGJ1dCB3aXRob3V0IGEgdmFsdWVcbiAgLy8gV2UnbGwgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgaXQgc2hvdWxkIGJlIHRvZ2dsZWQgdG8gdHJ1ZVxuICBpZiAodmFsID09PSAnJykgcmV0dXJuIHRydWU7XG4gIGlmICh2YWwgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgaWYgKHZhbCA9PT0gJ3RydWUnKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIHZhbDtcbn1cblxuaWYgKERPQ1VNRU5UICYmIHR5cGVvZiBET0NVTUVOVC5xdWVyeVNlbGVjdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gIGNvbnN0IGF0dHJzID0gW1snZGF0YS1mYW1pbHktcHJlZml4JywgJ2ZhbWlseVByZWZpeCddLCBbJ2RhdGEtY3NzLXByZWZpeCcsICdjc3NQcmVmaXgnXSwgWydkYXRhLWZhbWlseS1kZWZhdWx0JywgJ2ZhbWlseURlZmF1bHQnXSwgWydkYXRhLXN0eWxlLWRlZmF1bHQnLCAnc3R5bGVEZWZhdWx0J10sIFsnZGF0YS1yZXBsYWNlbWVudC1jbGFzcycsICdyZXBsYWNlbWVudENsYXNzJ10sIFsnZGF0YS1hdXRvLXJlcGxhY2Utc3ZnJywgJ2F1dG9SZXBsYWNlU3ZnJ10sIFsnZGF0YS1hdXRvLWFkZC1jc3MnLCAnYXV0b0FkZENzcyddLCBbJ2RhdGEtYXV0by1hMTF5JywgJ2F1dG9BMTF5J10sIFsnZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzJywgJ3NlYXJjaFBzZXVkb0VsZW1lbnRzJ10sIFsnZGF0YS1vYnNlcnZlLW11dGF0aW9ucycsICdvYnNlcnZlTXV0YXRpb25zJ10sIFsnZGF0YS1tdXRhdGUtYXBwcm9hY2gnLCAnbXV0YXRlQXBwcm9hY2gnXSwgWydkYXRhLWtlZXAtb3JpZ2luYWwtc291cmNlJywgJ2tlZXBPcmlnaW5hbFNvdXJjZSddLCBbJ2RhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZScsICdtZWFzdXJlUGVyZm9ybWFuY2UnXSwgWydkYXRhLXNob3ctbWlzc2luZy1pY29ucycsICdzaG93TWlzc2luZ0ljb25zJ11dO1xuICBhdHRycy5mb3JFYWNoKF9yZWYgPT4ge1xuICAgIGxldCBbYXR0ciwga2V5XSA9IF9yZWY7XG4gICAgY29uc3QgdmFsID0gY29lcmNlKGdldEF0dHJDb25maWcoYXR0cikpO1xuXG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCkge1xuICAgICAgaW5pdGlhbFtrZXldID0gdmFsO1xuICAgIH1cbiAgfSk7XG59XG5cbmNvbnN0IF9kZWZhdWx0ID0ge1xuICBzdHlsZURlZmF1bHQ6ICdzb2xpZCcsXG4gIGZhbWlseURlZmF1bHQ6ICdjbGFzc2ljJyxcbiAgY3NzUHJlZml4OiBERUZBVUxUX0NTU19QUkVGSVgsXG4gIHJlcGxhY2VtZW50Q2xhc3M6IERFRkFVTFRfUkVQTEFDRU1FTlRfQ0xBU1MsXG4gIGF1dG9SZXBsYWNlU3ZnOiB0cnVlLFxuICBhdXRvQWRkQ3NzOiB0cnVlLFxuICBhdXRvQTExeTogdHJ1ZSxcbiAgc2VhcmNoUHNldWRvRWxlbWVudHM6IGZhbHNlLFxuICBvYnNlcnZlTXV0YXRpb25zOiB0cnVlLFxuICBtdXRhdGVBcHByb2FjaDogJ2FzeW5jJyxcbiAga2VlcE9yaWdpbmFsU291cmNlOiB0cnVlLFxuICBtZWFzdXJlUGVyZm9ybWFuY2U6IGZhbHNlLFxuICBzaG93TWlzc2luZ0ljb25zOiB0cnVlXG59OyAvLyBmYW1pbHlQcmVmaXggaXMgZGVwcmVjYXRlZCBidXQgd2UgbXVzdCBzdGlsbCBzdXBwb3J0IGl0IGlmIHByZXNlbnRcblxuaWYgKGluaXRpYWwuZmFtaWx5UHJlZml4KSB7XG4gIGluaXRpYWwuY3NzUHJlZml4ID0gaW5pdGlhbC5mYW1pbHlQcmVmaXg7XG59XG5cbmNvbnN0IF9jb25maWcgPSB7IC4uLl9kZWZhdWx0LFxuICAuLi5pbml0aWFsXG59O1xuaWYgKCFfY29uZmlnLmF1dG9SZXBsYWNlU3ZnKSBfY29uZmlnLm9ic2VydmVNdXRhdGlvbnMgPSBmYWxzZTtcbmNvbnN0IGNvbmZpZyA9IHt9O1xuT2JqZWN0LmtleXMoX2RlZmF1bHQpLmZvckVhY2goa2V5ID0+IHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywga2V5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBzZXQ6IGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIF9jb25maWdba2V5XSA9IHZhbDtcblxuICAgICAgX29uQ2hhbmdlQ2IuZm9yRWFjaChjYiA9PiBjYihjb25maWcpKTtcbiAgICB9LFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF9jb25maWdba2V5XTtcbiAgICB9XG4gIH0pO1xufSk7IC8vIGZhbWlseVByZWZpeCBpcyBkZXByZWNhdGVkIGFzIG9mIDYuMi4wIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCBpbiA3LjAuMFxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCAnZmFtaWx5UHJlZml4Jywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBzZXQ6IGZ1bmN0aW9uICh2YWwpIHtcbiAgICBfY29uZmlnLmNzc1ByZWZpeCA9IHZhbDtcblxuICAgIF9vbkNoYW5nZUNiLmZvckVhY2goY2IgPT4gY2IoY29uZmlnKSk7XG4gIH0sXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfY29uZmlnLmNzc1ByZWZpeDtcbiAgfVxufSk7XG5XSU5ET1cuRm9udEF3ZXNvbWVDb25maWcgPSBjb25maWc7XG5jb25zdCBfb25DaGFuZ2VDYiA9IFtdO1xuZnVuY3Rpb24gb25DaGFuZ2UoY2IpIHtcbiAgX29uQ2hhbmdlQ2IucHVzaChjYik7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBfb25DaGFuZ2VDYi5zcGxpY2UoX29uQ2hhbmdlQ2IuaW5kZXhPZihjYiksIDEpO1xuICB9O1xufVxuXG5jb25zdCBkJDIgPSBVTklUU19JTl9HUklEO1xuY29uc3QgbWVhbmluZ2xlc3NUcmFuc2Zvcm0gPSB7XG4gIHNpemU6IDE2LFxuICB4OiAwLFxuICB5OiAwLFxuICByb3RhdGU6IDAsXG4gIGZsaXBYOiBmYWxzZSxcbiAgZmxpcFk6IGZhbHNlXG59O1xuZnVuY3Rpb24gaW5zZXJ0Q3NzKGNzcykge1xuICBpZiAoIWNzcyB8fCAhSVNfRE9NKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc3R5bGUgPSBET0NVTUVOVC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgc3R5bGUuaW5uZXJIVE1MID0gY3NzO1xuICBjb25zdCBoZWFkQ2hpbGRyZW4gPSBET0NVTUVOVC5oZWFkLmNoaWxkTm9kZXM7XG4gIGxldCBiZWZvcmVDaGlsZCA9IG51bGw7XG5cbiAgZm9yIChsZXQgaSA9IGhlYWRDaGlsZHJlbi5sZW5ndGggLSAxOyBpID4gLTE7IGktLSkge1xuICAgIGNvbnN0IGNoaWxkID0gaGVhZENoaWxkcmVuW2ldO1xuICAgIGNvbnN0IHRhZ05hbWUgPSAoY2hpbGQudGFnTmFtZSB8fCAnJykudG9VcHBlckNhc2UoKTtcblxuICAgIGlmIChbJ1NUWUxFJywgJ0xJTksnXS5pbmRleE9mKHRhZ05hbWUpID4gLTEpIHtcbiAgICAgIGJlZm9yZUNoaWxkID0gY2hpbGQ7XG4gICAgfVxuICB9XG5cbiAgRE9DVU1FTlQuaGVhZC5pbnNlcnRCZWZvcmUoc3R5bGUsIGJlZm9yZUNoaWxkKTtcbiAgcmV0dXJuIGNzcztcbn1cbmNvbnN0IGlkUG9vbCA9ICcwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XG5mdW5jdGlvbiBuZXh0VW5pcXVlSWQoKSB7XG4gIGxldCBzaXplID0gMTI7XG4gIGxldCBpZCA9ICcnO1xuXG4gIHdoaWxlIChzaXplLS0gPiAwKSB7XG4gICAgaWQgKz0gaWRQb29sW01hdGgucmFuZG9tKCkgKiA2MiB8IDBdO1xuICB9XG5cbiAgcmV0dXJuIGlkO1xufVxuZnVuY3Rpb24gdG9BcnJheShvYmopIHtcbiAgY29uc3QgYXJyYXkgPSBbXTtcblxuICBmb3IgKGxldCBpID0gKG9iaiB8fCBbXSkubGVuZ3RoID4+PiAwOyBpLS07KSB7XG4gICAgYXJyYXlbaV0gPSBvYmpbaV07XG4gIH1cblxuICByZXR1cm4gYXJyYXk7XG59XG5mdW5jdGlvbiBjbGFzc0FycmF5KG5vZGUpIHtcbiAgaWYgKG5vZGUuY2xhc3NMaXN0KSB7XG4gICAgcmV0dXJuIHRvQXJyYXkobm9kZS5jbGFzc0xpc3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpLnNwbGl0KCcgJykuZmlsdGVyKGkgPT4gaSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XG4gIHJldHVybiBcIlwiLmNvbmNhdChzdHIpLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvXCIvZywgJyZxdW90OycpLnJlcGxhY2UoLycvZywgJyYjMzk7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbn1cbmZ1bmN0aW9uIGpvaW5BdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMgfHwge30pLnJlZHVjZSgoYWNjLCBhdHRyaWJ1dGVOYW1lKSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIFwiXCIuY29uY2F0KGF0dHJpYnV0ZU5hbWUsIFwiPVxcXCJcIikuY29uY2F0KGh0bWxFc2NhcGUoYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSksIFwiXFxcIiBcIik7XG4gIH0sICcnKS50cmltKCk7XG59XG5mdW5jdGlvbiBqb2luU3R5bGVzKHN0eWxlcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMoc3R5bGVzIHx8IHt9KS5yZWR1Y2UoKGFjYywgc3R5bGVOYW1lKSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIFwiXCIuY29uY2F0KHN0eWxlTmFtZSwgXCI6IFwiKS5jb25jYXQoc3R5bGVzW3N0eWxlTmFtZV0udHJpbSgpLCBcIjtcIik7XG4gIH0sICcnKTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybUlzTWVhbmluZ2Z1bCh0cmFuc2Zvcm0pIHtcbiAgcmV0dXJuIHRyYW5zZm9ybS5zaXplICE9PSBtZWFuaW5nbGVzc1RyYW5zZm9ybS5zaXplIHx8IHRyYW5zZm9ybS54ICE9PSBtZWFuaW5nbGVzc1RyYW5zZm9ybS54IHx8IHRyYW5zZm9ybS55ICE9PSBtZWFuaW5nbGVzc1RyYW5zZm9ybS55IHx8IHRyYW5zZm9ybS5yb3RhdGUgIT09IG1lYW5pbmdsZXNzVHJhbnNmb3JtLnJvdGF0ZSB8fCB0cmFuc2Zvcm0uZmxpcFggfHwgdHJhbnNmb3JtLmZsaXBZO1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtRm9yU3ZnKF9yZWYpIHtcbiAgbGV0IHtcbiAgICB0cmFuc2Zvcm0sXG4gICAgY29udGFpbmVyV2lkdGgsXG4gICAgaWNvbldpZHRoXG4gIH0gPSBfcmVmO1xuICBjb25zdCBvdXRlciA9IHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKFwiLmNvbmNhdChjb250YWluZXJXaWR0aCAvIDIsIFwiIDI1NilcIilcbiAgfTtcbiAgY29uc3QgaW5uZXJUcmFuc2xhdGUgPSBcInRyYW5zbGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnggKiAzMiwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnkgKiAzMiwgXCIpIFwiKTtcbiAgY29uc3QgaW5uZXJTY2FsZSA9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICBjb25zdCBpbm5lclJvdGF0ZSA9IFwicm90YXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ucm90YXRlLCBcIiAwIDApXCIpO1xuICBjb25zdCBpbm5lciA9IHtcbiAgICB0cmFuc2Zvcm06IFwiXCIuY29uY2F0KGlubmVyVHJhbnNsYXRlLCBcIiBcIikuY29uY2F0KGlubmVyU2NhbGUsIFwiIFwiKS5jb25jYXQoaW5uZXJSb3RhdGUpXG4gIH07XG4gIGNvbnN0IHBhdGggPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoaWNvbldpZHRoIC8gMiAqIC0xLCBcIiAtMjU2KVwiKVxuICB9O1xuICByZXR1cm4ge1xuICAgIG91dGVyLFxuICAgIGlubmVyLFxuICAgIHBhdGhcbiAgfTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybUZvckNzcyhfcmVmMikge1xuICBsZXQge1xuICAgIHRyYW5zZm9ybSxcbiAgICB3aWR0aCA9IFVOSVRTX0lOX0dSSUQsXG4gICAgaGVpZ2h0ID0gVU5JVFNfSU5fR1JJRCxcbiAgICBzdGFydENlbnRlcmVkID0gZmFsc2VcbiAgfSA9IF9yZWYyO1xuICBsZXQgdmFsID0gJyc7XG5cbiAgaWYgKHN0YXJ0Q2VudGVyZWQgJiYgSVNfSUUpIHtcbiAgICB2YWwgKz0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54IC8gZCQyIC0gd2lkdGggLyAyLCBcImVtLCBcIikuY29uY2F0KHRyYW5zZm9ybS55IC8gZCQyIC0gaGVpZ2h0IC8gMiwgXCJlbSkgXCIpO1xuICB9IGVsc2UgaWYgKHN0YXJ0Q2VudGVyZWQpIHtcbiAgICB2YWwgKz0gXCJ0cmFuc2xhdGUoY2FsYygtNTAlICsgXCIuY29uY2F0KHRyYW5zZm9ybS54IC8gZCQyLCBcImVtKSwgY2FsYygtNTAlICsgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQkMiwgXCJlbSkpIFwiKTtcbiAgfSBlbHNlIHtcbiAgICB2YWwgKz0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54IC8gZCQyLCBcImVtLCBcIikuY29uY2F0KHRyYW5zZm9ybS55IC8gZCQyLCBcImVtKSBcIik7XG4gIH1cblxuICB2YWwgKz0gXCJzY2FsZShcIi5jb25jYXQodHJhbnNmb3JtLnNpemUgLyBkJDIgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyBkJDIgKiAodHJhbnNmb3JtLmZsaXBZID8gLTEgOiAxKSwgXCIpIFwiKTtcbiAgdmFsICs9IFwicm90YXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ucm90YXRlLCBcImRlZykgXCIpO1xuICByZXR1cm4gdmFsO1xufVxuXG52YXIgYmFzZVN0eWxlcyA9IFwiOnJvb3QsIDpob3N0IHtcXG4gIC0tZmEtZm9udC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgRnJlZVxcXCI7XFxuICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgRnJlZVxcXCI7XFxuICAtLWZhLWZvbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IFByb1xcXCI7XFxuICAtLWZhLWZvbnQtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgUHJvXFxcIjtcXG4gIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBEdW90b25lXFxcIjtcXG4gIC0tZmEtZm9udC1icmFuZHM6IG5vcm1hbCA0MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1xcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IFNoYXJwXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IFNoYXJwXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgU2hhcnAgRHVvdG9uZVxcXCI7XFxufVxcblxcbnN2Zzpub3QoOnJvb3QpLnN2Zy1pbmxpbmUtLWZhLCBzdmc6bm90KDpob3N0KS5zdmctaW5saW5lLS1mYSB7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEge1xcbiAgZGlzcGxheTogdmFyKC0tZmEtZGlzcGxheSwgaW5saW5lLWJsb2NrKTtcXG4gIGhlaWdodDogMWVtO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS0yeHMge1xcbiAgdmVydGljYWwtYWxpZ246IDAuMWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEteHMge1xcbiAgdmVydGljYWwtYWxpZ246IDBlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXNtIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4wNzE0Mjg1NzA1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1sZyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEteGwge1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS0yeGwge1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjMxMjVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7XFxuICB3aWR0aDogYXV0bztcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7XFxuICB3aWR0aDogYXV0bztcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLWxpIHtcXG4gIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTtcXG4gIHRvcDogMC4yNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtZncge1xcbiAgd2lkdGg6IHZhcigtLWZhLWZ3LXdpZHRoLCAxLjI1ZW0pO1xcbn1cXG5cXG4uZmEtbGF5ZXJzIHN2Zy5zdmctaW5saW5lLS1mYSB7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgbWFyZ2luOiBhdXRvO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxufVxcblxcbi5mYS1sYXllcnMtY291bnRlciwgLmZhLWxheWVycy10ZXh0IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLmZhLWxheWVycyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBoZWlnaHQ6IDFlbTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcXG4gIHdpZHRoOiAxZW07XFxufVxcbi5mYS1sYXllcnMgc3ZnLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XFxufVxcblxcbi5mYS1sYXllcnMtdGV4dCB7XFxuICBsZWZ0OiA1MCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG59XFxuXFxuLmZhLWxheWVycy1jb3VudGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZhLWNvdW50ZXItYmFja2dyb3VuZC1jb2xvciwgI2ZmMjUzYSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1jb3VudGVyLWJvcmRlci1yYWRpdXMsIDFlbSk7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpO1xcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZhLWNvdW50ZXItbGluZS1oZWlnaHQsIDEpO1xcbiAgbWF4LXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1heC13aWR0aCwgNWVtKTtcXG4gIG1pbi13aWR0aDogdmFyKC0tZmEtY291bnRlci1taW4td2lkdGgsIDEuNWVtKTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwYWRkaW5nOiB2YXIoLS1mYS1jb3VudGVyLXBhZGRpbmcsIDAuMjVlbSAwLjVlbSk7XFxuICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7XFxuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWNvdW50ZXItc2NhbGUsIDAuMjUpKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcXG59XFxuXFxuLmZhLWxheWVycy1ib3R0b20tcmlnaHQge1xcbiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApO1xcbiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTtcXG4gIHRvcDogYXV0bztcXG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7XFxufVxcblxcbi5mYS1sYXllcnMtYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApO1xcbiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogYXV0bztcXG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcXG59XFxuXFxuLmZhLWxheWVycy10b3AtcmlnaHQge1xcbiAgdG9wOiB2YXIoLS1mYS10b3AsIDApO1xcbiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTtcXG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XFxufVxcblxcbi5mYS1sYXllcnMtdG9wLWxlZnQge1xcbiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogdmFyKC0tZmEtdG9wLCAwKTtcXG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG59XFxuXFxuLmZhLTF4IHtcXG4gIGZvbnQtc2l6ZTogMWVtO1xcbn1cXG5cXG4uZmEtMngge1xcbiAgZm9udC1zaXplOiAyZW07XFxufVxcblxcbi5mYS0zeCB7XFxuICBmb250LXNpemU6IDNlbTtcXG59XFxuXFxuLmZhLTR4IHtcXG4gIGZvbnQtc2l6ZTogNGVtO1xcbn1cXG5cXG4uZmEtNXgge1xcbiAgZm9udC1zaXplOiA1ZW07XFxufVxcblxcbi5mYS02eCB7XFxuICBmb250LXNpemU6IDZlbTtcXG59XFxuXFxuLmZhLTd4IHtcXG4gIGZvbnQtc2l6ZTogN2VtO1xcbn1cXG5cXG4uZmEtOHgge1xcbiAgZm9udC1zaXplOiA4ZW07XFxufVxcblxcbi5mYS05eCB7XFxuICBmb250LXNpemU6IDllbTtcXG59XFxuXFxuLmZhLTEweCB7XFxuICBmb250LXNpemU6IDEwZW07XFxufVxcblxcbi5mYS0yeHMge1xcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuMWVtO1xcbiAgdmVydGljYWwtYWxpZ246IDAuMjI1ZW07XFxufVxcblxcbi5mYS14cyB7XFxuICBmb250LXNpemU6IDAuNzVlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjA4MzMzMzMzMzdlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAwLjEyNWVtO1xcbn1cXG5cXG4uZmEtc20ge1xcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuMDcxNDI4NTcxOGVtO1xcbiAgdmVydGljYWwtYWxpZ246IDAuMDUzNTcxNDI5NWVtO1xcbn1cXG5cXG4uZmEtbGcge1xcbiAgZm9udC1zaXplOiAxLjI1ZW07XFxuICBsaW5lLWhlaWdodDogMC4wNWVtO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjA3NWVtO1xcbn1cXG5cXG4uZmEteGwge1xcbiAgZm9udC1zaXplOiAxLjVlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjA0MTY2NjY2ODJlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcXG59XFxuXFxuLmZhLTJ4bCB7XFxuICBmb250LXNpemU6IDJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjAzMTI1ZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTg3NWVtO1xcbn1cXG5cXG4uZmEtZncge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgd2lkdGg6IDEuMjVlbTtcXG59XFxuXFxuLmZhLXVsIHtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1mYS1saS1tYXJnaW4sIDIuNWVtKTtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG59XFxuLmZhLXVsID4gbGkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZmEtbGkge1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG5cXG4uZmEtYm9yZGVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWJvcmRlci1yYWRpdXMsIDAuMWVtKTtcXG4gIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wOGVtKTtcXG4gIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjJlbSAwLjI1ZW0gMC4xNWVtKTtcXG59XFxuXFxuLmZhLXB1bGwtbGVmdCB7XFxuICBmbG9hdDogbGVmdDtcXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTtcXG59XFxuXFxuLmZhLXB1bGwtcmlnaHQge1xcbiAgZmxvYXQ6IHJpZ2h0O1xcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7XFxufVxcblxcbi5mYS1iZWF0IHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0O1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpO1xcbn1cXG5cXG4uZmEtYm91bmNlIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1ib3VuY2U7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC4yOCwgMC44NCwgMC40MiwgMSkpO1xcbn1cXG5cXG4uZmEtZmFkZSB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtZmFkZTtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpO1xcbn1cXG5cXG4uZmEtYmVhdC1mYWRlIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0LWZhZGU7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTtcXG59XFxuXFxuLmZhLWZsaXAge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZsaXA7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7XFxufVxcblxcbi5mYS1zaGFrZSB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtc2hha2U7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpO1xcbn1cXG5cXG4uZmEtc3BpbiB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDJzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7XFxufVxcblxcbi5mYS1zcGluLXJldmVyc2Uge1xcbiAgLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xcbn1cXG5cXG4uZmEtcHVsc2UsXFxuLmZhLXNwaW4tcHVsc2Uge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIHN0ZXBzKDgpKTtcXG59XFxuXFxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcXG4gIC5mYS1iZWF0LFxcbi5mYS1ib3VuY2UsXFxuLmZhLWZhZGUsXFxuLmZhLWJlYXQtZmFkZSxcXG4uZmEtZmxpcCxcXG4uZmEtcHVsc2UsXFxuLmZhLXNoYWtlLFxcbi5mYS1zcGluLFxcbi5mYS1zcGluLXB1bHNlIHtcXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zO1xcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFtcztcXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcXG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZhLWJlYXQge1xcbiAgMCUsIDkwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA0NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsIDEuMjUpKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1ib3VuY2Uge1xcbiAgMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICAxMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS14LCAxLjEpLCB2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteSwgMC45KSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteCwgMC45KSwgdmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteSwgMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtaGVpZ2h0LCAtMC41ZW0pKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteCwgMS4wNSksIHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXksIDAuOTUpKSB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNTclIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1yZWJvdW5kLCAtMC4xMjVlbSkpO1xcbiAgfVxcbiAgNjQlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1mYWRlIHtcXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IHZhcigtLWZhLWZhZGUtb3BhY2l0eSwgMC40KTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1iZWF0LWZhZGUge1xcbiAgMCUsIDEwMCUge1xcbiAgICBvcGFjaXR5OiB2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwgMC40KTtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1mYWRlLXNjYWxlLCAxLjEyNSkpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZhLWZsaXAge1xcbiAgNTAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsIDApLCB2YXIoLS1mYS1mbGlwLXksIDEpLCB2YXIoLS1mYS1mbGlwLXosIDApLCB2YXIoLS1mYS1mbGlwLWFuZ2xlLCAtMTgwZGVnKSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtc2hha2Uge1xcbiAgMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpO1xcbiAgfVxcbiAgNCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7XFxuICB9XFxuICA4JSwgMjQlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4ZGVnKTtcXG4gIH1cXG4gIDEyJSwgMjglIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMThkZWcpO1xcbiAgfVxcbiAgMTYlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyZGVnKTtcXG4gIH1cXG4gIDIwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTtcXG4gIH1cXG4gIDMyJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7XFxuICB9XFxuICAzNiUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7XFxuICB9XFxuICA0MCUsIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1zcGluIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuLmZhLXJvdGF0ZS05MCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxufVxcblxcbi5mYS1yb3RhdGUtMTgwIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxufVxcblxcbi5mYS1yb3RhdGUtMjcwIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XFxufVxcblxcbi5mYS1mbGlwLWhvcml6b250YWwge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxufVxcblxcbi5mYS1mbGlwLXZlcnRpY2FsIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbn1cXG5cXG4uZmEtZmxpcC1ib3RoLFxcbi5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbCB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7XFxufVxcblxcbi5mYS1yb3RhdGUtYnkge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLCAwKSk7XFxufVxcblxcbi5mYS1zdGFjayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgaGVpZ2h0OiAyZW07XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMi41ZW07XFxufVxcblxcbi5mYS1zdGFjay0xeCxcXG4uZmEtc3RhY2stMngge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG1hcmdpbjogYXV0bztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogdmFyKC0tZmEtc3RhY2stei1pbmRleCwgYXV0byk7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7XFxuICBoZWlnaHQ6IDFlbTtcXG4gIHdpZHRoOiAxLjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7XFxuICBoZWlnaHQ6IDJlbTtcXG4gIHdpZHRoOiAyLjVlbTtcXG59XFxuXFxuLmZhLWludmVyc2Uge1xcbiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpO1xcbn1cXG5cXG4uc3Itb25seSxcXG4uZmEtc3Itb25seSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAtMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbn1cXG5cXG4uc3Itb25seS1mb2N1c2FibGU6bm90KDpmb2N1cyksXFxuLmZhLXNyLW9ubHktZm9jdXNhYmxlOm5vdCg6Zm9jdXMpIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IC0xcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYSAuZmEtcHJpbWFyeSB7XFxuICBmaWxsOiB2YXIoLS1mYS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpO1xcbiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhIC5mYS1zZWNvbmRhcnkge1xcbiAgZmlsbDogdmFyKC0tZmEtc2Vjb25kYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpO1xcbiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXByaW1hcnkge1xcbiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXNlY29uZGFyeSB7XFxuICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSxcXG4uc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtc2Vjb25kYXJ5IHtcXG4gIGZpbGw6IGJsYWNrO1xcbn1cXG5cXG4uZmFkLmZhLWludmVyc2UsXFxuLmZhLWR1b3RvbmUuZmEtaW52ZXJzZSB7XFxuICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7XFxufVwiO1xuXG5mdW5jdGlvbiBjc3MoKSB7XG4gIGNvbnN0IGRjcCA9IERFRkFVTFRfQ1NTX1BSRUZJWDtcbiAgY29uc3QgZHJjID0gREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUztcbiAgY29uc3QgZnAgPSBjb25maWcuY3NzUHJlZml4O1xuICBjb25zdCByYyA9IGNvbmZpZy5yZXBsYWNlbWVudENsYXNzO1xuICBsZXQgcyA9IGJhc2VTdHlsZXM7XG5cbiAgaWYgKGZwICE9PSBkY3AgfHwgcmMgIT09IGRyYykge1xuICAgIGNvbnN0IGRQYXR0ID0gbmV3IFJlZ0V4cChcIlxcXFwuXCIuY29uY2F0KGRjcCwgXCJcXFxcLVwiKSwgJ2cnKTtcbiAgICBjb25zdCBjdXN0b21Qcm9wUGF0dCA9IG5ldyBSZWdFeHAoXCJcXFxcLS1cIi5jb25jYXQoZGNwLCBcIlxcXFwtXCIpLCAnZycpO1xuICAgIGNvbnN0IHJQYXR0ID0gbmV3IFJlZ0V4cChcIlxcXFwuXCIuY29uY2F0KGRyYyksICdnJyk7XG4gICAgcyA9IHMucmVwbGFjZShkUGF0dCwgXCIuXCIuY29uY2F0KGZwLCBcIi1cIikpLnJlcGxhY2UoY3VzdG9tUHJvcFBhdHQsIFwiLS1cIi5jb25jYXQoZnAsIFwiLVwiKSkucmVwbGFjZShyUGF0dCwgXCIuXCIuY29uY2F0KHJjKSk7XG4gIH1cblxuICByZXR1cm4gcztcbn1cblxubGV0IF9jc3NJbnNlcnRlZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBlbnN1cmVDc3MoKSB7XG4gIGlmIChjb25maWcuYXV0b0FkZENzcyAmJiAhX2Nzc0luc2VydGVkKSB7XG4gICAgaW5zZXJ0Q3NzKGNzcygpKTtcbiAgICBfY3NzSW5zZXJ0ZWQgPSB0cnVlO1xuICB9XG59XG5cbnZhciBJbmplY3RDU1MgPSB7XG4gIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tOiB7XG4gICAgICAgIGNzcyxcbiAgICAgICAgaW5zZXJ0Q3NzOiBlbnN1cmVDc3NcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuXG4gIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWZvcmVET01FbGVtZW50Q3JlYXRpb24oKSB7XG4gICAgICAgIGVuc3VyZUNzcygpO1xuICAgICAgfSxcblxuICAgICAgYmVmb3JlSTJzdmcoKSB7XG4gICAgICAgIGVuc3VyZUNzcygpO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfVxuXG59O1xuXG5jb25zdCB3JDEgPSBXSU5ET1cgfHwge307XG5pZiAoIXckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0pIHckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0gPSB7fTtcbmlmICghdyQxW05BTUVTUEFDRV9JREVOVElGSUVSXS5zdHlsZXMpIHckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uc3R5bGVzID0ge307XG5pZiAoIXckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uaG9va3MpIHckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uaG9va3MgPSB7fTtcbmlmICghdyQxW05BTUVTUEFDRV9JREVOVElGSUVSXS5zaGltcykgdyQxW05BTUVTUEFDRV9JREVOVElGSUVSXS5zaGltcyA9IFtdO1xudmFyIG5hbWVzcGFjZSA9IHckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl07XG5cbmNvbnN0IGZ1bmN0aW9ucyA9IFtdO1xuXG5jb25zdCBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgRE9DVU1FTlQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGxpc3RlbmVyKTtcbiAgbG9hZGVkID0gMTtcbiAgZnVuY3Rpb25zLm1hcChmbiA9PiBmbigpKTtcbn07XG5cbmxldCBsb2FkZWQgPSBmYWxzZTtcblxuaWYgKElTX0RPTSkge1xuICBsb2FkZWQgPSAoRE9DVU1FTlQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsID8gL15sb2FkZWR8XmMvIDogL15sb2FkZWR8Xml8XmMvKS50ZXN0KERPQ1VNRU5ULnJlYWR5U3RhdGUpO1xuICBpZiAoIWxvYWRlZCkgRE9DVU1FTlQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGxpc3RlbmVyKTtcbn1cblxuZnVuY3Rpb24gZG9tcmVhZHkgKGZuKSB7XG4gIGlmICghSVNfRE9NKSByZXR1cm47XG4gIGxvYWRlZCA/IHNldFRpbWVvdXQoZm4sIDApIDogZnVuY3Rpb25zLnB1c2goZm4pO1xufVxuXG5mdW5jdGlvbiB0b0h0bWwoYWJzdHJhY3ROb2Rlcykge1xuICBjb25zdCB7XG4gICAgdGFnLFxuICAgIGF0dHJpYnV0ZXMgPSB7fSxcbiAgICBjaGlsZHJlbiA9IFtdXG4gIH0gPSBhYnN0cmFjdE5vZGVzO1xuXG4gIGlmICh0eXBlb2YgYWJzdHJhY3ROb2RlcyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaHRtbEVzY2FwZShhYnN0cmFjdE5vZGVzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCI8XCIuY29uY2F0KHRhZywgXCIgXCIpLmNvbmNhdChqb2luQXR0cmlidXRlcyhhdHRyaWJ1dGVzKSwgXCI+XCIpLmNvbmNhdChjaGlsZHJlbi5tYXAodG9IdG1sKS5qb2luKCcnKSwgXCI8L1wiKS5jb25jYXQodGFnLCBcIj5cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gaWNvbkZyb21NYXBwaW5nKG1hcHBpbmcsIHByZWZpeCwgaWNvbk5hbWUpIHtcbiAgaWYgKG1hcHBpbmcgJiYgbWFwcGluZ1twcmVmaXhdICYmIG1hcHBpbmdbcHJlZml4XVtpY29uTmFtZV0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4LFxuICAgICAgaWNvbk5hbWUsXG4gICAgICBpY29uOiBtYXBwaW5nW3ByZWZpeF1baWNvbk5hbWVdXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVybmFsIGhlbHBlciB0byBiaW5kIGEgZnVuY3Rpb24ga25vd24gdG8gaGF2ZSA0IGFyZ3VtZW50c1xuICogdG8gYSBnaXZlbiBjb250ZXh0LlxuICovXG5cbnZhciBiaW5kSW50ZXJuYWw0ID0gZnVuY3Rpb24gYmluZEludGVybmFsNChmdW5jLCB0aGlzQ29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNDb250ZXh0LCBhLCBiLCBjLCBkKTtcbiAgfTtcbn07XG5cbi8qKlxuICogIyBSZWR1Y2VcbiAqXG4gKiBBIGZhc3Qgb2JqZWN0IGAucmVkdWNlKClgIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSAge09iamVjdH0gICBzdWJqZWN0ICAgICAgVGhlIG9iamVjdCB0byByZWR1Y2Ugb3Zlci5cbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmbiAgICAgICAgICAgVGhlIHJlZHVjZXIgZnVuY3Rpb24uXG4gKiBAcGFyYW0gIHttaXhlZH0gICAgaW5pdGlhbFZhbHVlIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgcmVkdWNlciwgZGVmYXVsdHMgdG8gc3ViamVjdFswXS5cbiAqIEBwYXJhbSAge09iamVjdH0gICB0aGlzQ29udGV4dCAgVGhlIGNvbnRleHQgZm9yIHRoZSByZWR1Y2VyLlxuICogQHJldHVybiB7bWl4ZWR9ICAgICAgICAgICAgICAgICBUaGUgZmluYWwgcmVzdWx0LlxuICovXG5cblxudmFyIHJlZHVjZSA9IGZ1bmN0aW9uIGZhc3RSZWR1Y2VPYmplY3Qoc3ViamVjdCwgZm4sIGluaXRpYWxWYWx1ZSwgdGhpc0NvbnRleHQpIHtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzdWJqZWN0KSxcbiAgICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoLFxuICAgICAgaXRlcmF0b3IgPSB0aGlzQ29udGV4dCAhPT0gdW5kZWZpbmVkID8gYmluZEludGVybmFsNChmbiwgdGhpc0NvbnRleHQpIDogZm4sXG4gICAgICBpLFxuICAgICAga2V5LFxuICAgICAgcmVzdWx0O1xuXG4gIGlmIChpbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGkgPSAxO1xuICAgIHJlc3VsdCA9IHN1YmplY3Rba2V5c1swXV07XG4gIH0gZWxzZSB7XG4gICAgaSA9IDA7XG4gICAgcmVzdWx0ID0gaW5pdGlhbFZhbHVlO1xuICB9XG5cbiAgZm9yICg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGtleSA9IGtleXNbaV07XG4gICAgcmVzdWx0ID0gaXRlcmF0b3IocmVzdWx0LCBzdWJqZWN0W2tleV0sIGtleSwgc3ViamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiB1Y3MyZGVjb2RlKCkgYW5kIGNvZGVQb2ludEF0KCkgYXJlIGJvdGggd29ya3Mgb2YgTWF0aGlhcyBCeW5lbnMgYW5kIGxpY2Vuc2VkIHVuZGVyIE1JVFxuICpcbiAqIENvcHlyaWdodCBNYXRoaWFzIEJ5bmVucyA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlLz5cblxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuZnVuY3Rpb24gdWNzMmRlY29kZShzdHJpbmcpIHtcbiAgY29uc3Qgb3V0cHV0ID0gW107XG4gIGxldCBjb3VudGVyID0gMDtcbiAgY29uc3QgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcblxuICB3aGlsZSAoY291bnRlciA8IGxlbmd0aCkge1xuICAgIGNvbnN0IHZhbHVlID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcblxuICAgIGlmICh2YWx1ZSA+PSAweEQ4MDAgJiYgdmFsdWUgPD0gMHhEQkZGICYmIGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IGV4dHJhID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcblxuICAgICAgaWYgKChleHRyYSAmIDB4RkMwMCkgPT0gMHhEQzAwKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZXFlcWVxXG4gICAgICAgIG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQucHVzaCh2YWx1ZSk7XG4gICAgICAgIGNvdW50ZXItLTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIHRvSGV4KHVuaWNvZGUpIHtcbiAgY29uc3QgZGVjb2RlZCA9IHVjczJkZWNvZGUodW5pY29kZSk7XG4gIHJldHVybiBkZWNvZGVkLmxlbmd0aCA9PT0gMSA/IGRlY29kZWRbMF0udG9TdHJpbmcoMTYpIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgaW5kZXgpIHtcbiAgY29uc3Qgc2l6ZSA9IHN0cmluZy5sZW5ndGg7XG4gIGxldCBmaXJzdCA9IHN0cmluZy5jaGFyQ29kZUF0KGluZGV4KTtcbiAgbGV0IHNlY29uZDtcblxuICBpZiAoZmlyc3QgPj0gMHhEODAwICYmIGZpcnN0IDw9IDB4REJGRiAmJiBzaXplID4gaW5kZXggKyAxKSB7XG4gICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQoaW5kZXggKyAxKTtcblxuICAgIGlmIChzZWNvbmQgPj0gMHhEQzAwICYmIHNlY29uZCA8PSAweERGRkYpIHtcbiAgICAgIHJldHVybiAoZmlyc3QgLSAweEQ4MDApICogMHg0MDAgKyBzZWNvbmQgLSAweERDMDAgKyAweDEwMDAwO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmaXJzdDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSWNvbnMoaWNvbnMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGljb25zKS5yZWR1Y2UoKGFjYywgaWNvbk5hbWUpID0+IHtcbiAgICBjb25zdCBpY29uID0gaWNvbnNbaWNvbk5hbWVdO1xuICAgIGNvbnN0IGV4cGFuZGVkID0gISFpY29uLmljb247XG5cbiAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgIGFjY1tpY29uLmljb25OYW1lXSA9IGljb24uaWNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW2ljb25OYW1lXSA9IGljb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVJY29ucyhwcmVmaXgsIGljb25zKSB7XG4gIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICBjb25zdCB7XG4gICAgc2tpcEhvb2tzID0gZmFsc2VcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUljb25zKGljb25zKTtcblxuICBpZiAodHlwZW9mIG5hbWVzcGFjZS5ob29rcy5hZGRQYWNrID09PSAnZnVuY3Rpb24nICYmICFza2lwSG9va3MpIHtcbiAgICBuYW1lc3BhY2UuaG9va3MuYWRkUGFjayhwcmVmaXgsIG5vcm1hbGl6ZUljb25zKGljb25zKSk7XG4gIH0gZWxzZSB7XG4gICAgbmFtZXNwYWNlLnN0eWxlc1twcmVmaXhdID0geyAuLi4obmFtZXNwYWNlLnN0eWxlc1twcmVmaXhdIHx8IHt9KSxcbiAgICAgIC4uLm5vcm1hbGl6ZWRcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBGb250IEF3ZXNvbWUgNCB1c2VkIHRoZSBwcmVmaXggb2YgYGZhYCBmb3IgYWxsIGljb25zLiBXaXRoIHRoZSBpbnRyb2R1Y3Rpb25cbiAgICogb2YgbmV3IHN0eWxlcyB3ZSBuZWVkZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoZW0uIFByZWZpeCBgZmFgIGlzIG5vdyBhbiBhbGlhc1xuICAgKiBmb3IgYGZhc2Agc28gd2UnbGwgZWFzZSB0aGUgdXBncmFkZSBwcm9jZXNzIGZvciBvdXIgdXNlcnMgYnkgYXV0b21hdGljYWxseSBkZWZpbmluZ1xuICAgKiB0aGlzIGFzIHdlbGwuXG4gICAqL1xuXG5cbiAgaWYgKHByZWZpeCA9PT0gJ2ZhcycpIHtcbiAgICBkZWZpbmVJY29ucygnZmEnLCBpY29ucyk7XG4gIH1cbn1cblxuY29uc3Qge1xuICBzdHlsZXMsXG4gIHNoaW1zXG59ID0gbmFtZXNwYWNlO1xuY29uc3QgTE9OR19TVFlMRSA9IHtcbiAgW2FdOiBPYmplY3QudmFsdWVzKFBSRUZJWF9UT19MT05HX1NUWUxFW2FdKSxcbiAgW3JdOiBPYmplY3QudmFsdWVzKFBSRUZJWF9UT19MT05HX1NUWUxFW3JdKSxcbiAgW29dOiBPYmplY3QudmFsdWVzKFBSRUZJWF9UT19MT05HX1NUWUxFW29dKVxufTtcbmxldCBfZGVmYXVsdFVzYWJsZVByZWZpeCA9IG51bGw7XG5sZXQgX2J5VW5pY29kZSA9IHt9O1xubGV0IF9ieUxpZ2F0dXJlID0ge307XG5sZXQgX2J5T2xkTmFtZSA9IHt9O1xubGV0IF9ieU9sZFVuaWNvZGUgPSB7fTtcbmxldCBfYnlBbGlhcyA9IHt9O1xuY29uc3QgUFJFRklYRVMgPSB7XG4gIFthXTogT2JqZWN0LmtleXMoUFJFRklYX1RPX1NUWUxFW2FdKSxcbiAgW3JdOiBPYmplY3Qua2V5cyhQUkVGSVhfVE9fU1RZTEVbcl0pLFxuICBbb106IE9iamVjdC5rZXlzKFBSRUZJWF9UT19TVFlMRVtvXSlcbn07XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWQobmFtZSkge1xuICByZXR1cm4gflJFU0VSVkVEX0NMQVNTRVMuaW5kZXhPZihuYW1lKTtcbn1cblxuZnVuY3Rpb24gZ2V0SWNvbk5hbWUoY3NzUHJlZml4LCBjbHMpIHtcbiAgY29uc3QgcGFydHMgPSBjbHMuc3BsaXQoJy0nKTtcbiAgY29uc3QgcHJlZml4ID0gcGFydHNbMF07XG4gIGNvbnN0IGljb25OYW1lID0gcGFydHMuc2xpY2UoMSkuam9pbignLScpO1xuXG4gIGlmIChwcmVmaXggPT09IGNzc1ByZWZpeCAmJiBpY29uTmFtZSAhPT0gJycgJiYgIWlzUmVzZXJ2ZWQoaWNvbk5hbWUpKSB7XG4gICAgcmV0dXJuIGljb25OYW1lO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5jb25zdCBidWlsZCA9ICgpID0+IHtcbiAgY29uc3QgbG9va3VwID0gcmVkdWNlciA9PiB7XG4gICAgcmV0dXJuIHJlZHVjZShzdHlsZXMsIChvJCQxLCBzdHlsZSwgcHJlZml4KSA9PiB7XG4gICAgICBvJCQxW3ByZWZpeF0gPSByZWR1Y2Uoc3R5bGUsIHJlZHVjZXIsIHt9KTtcbiAgICAgIHJldHVybiBvJCQxO1xuICAgIH0sIHt9KTtcbiAgfTtcblxuICBfYnlVbmljb2RlID0gbG9va3VwKChhY2MsIGljb24sIGljb25OYW1lKSA9PiB7XG4gICAgaWYgKGljb25bM10pIHtcbiAgICAgIGFjY1tpY29uWzNdXSA9IGljb25OYW1lO1xuICAgIH1cblxuICAgIGlmIChpY29uWzJdKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gaWNvblsyXS5maWx0ZXIoYSQkMSA9PiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgYSQkMSA9PT0gJ251bWJlcic7XG4gICAgICB9KTtcbiAgICAgIGFsaWFzZXMuZm9yRWFjaChhbGlhcyA9PiB7XG4gICAgICAgIGFjY1thbGlhcy50b1N0cmluZygxNildID0gaWNvbk5hbWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9KTtcbiAgX2J5TGlnYXR1cmUgPSBsb29rdXAoKGFjYywgaWNvbiwgaWNvbk5hbWUpID0+IHtcbiAgICBhY2NbaWNvbk5hbWVdID0gaWNvbk5hbWU7XG5cbiAgICBpZiAoaWNvblsyXSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IGljb25bMl0uZmlsdGVyKGEkJDEgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGEkJDEgPT09ICdzdHJpbmcnO1xuICAgICAgfSk7XG4gICAgICBhbGlhc2VzLmZvckVhY2goYWxpYXMgPT4ge1xuICAgICAgICBhY2NbYWxpYXNdID0gaWNvbk5hbWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9KTtcbiAgX2J5QWxpYXMgPSBsb29rdXAoKGFjYywgaWNvbiwgaWNvbk5hbWUpID0+IHtcbiAgICBjb25zdCBhbGlhc2VzID0gaWNvblsyXTtcbiAgICBhY2NbaWNvbk5hbWVdID0gaWNvbk5hbWU7XG4gICAgYWxpYXNlcy5mb3JFYWNoKGFsaWFzID0+IHtcbiAgICAgIGFjY1thbGlhc10gPSBpY29uTmFtZTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWNjO1xuICB9KTsgLy8gSWYgd2UgaGF2ZSBhIEtpdCwgd2UgY2FuJ3QgZGV0ZXJtaW5lIGlmIHJlZ3VsYXIgaXMgYXZhaWxhYmxlIHNpbmNlIHdlXG4gIC8vIGNvdWxkIGJlIGF1dG8tZmV0Y2hpbmcgaXQuIFdlJ2xsIGhhdmUgdG8gYXNzdW1lIHRoYXQgaXQgaXMgYXZhaWxhYmxlLlxuXG4gIGNvbnN0IGhhc1JlZ3VsYXIgPSAnZmFyJyBpbiBzdHlsZXMgfHwgY29uZmlnLmF1dG9GZXRjaFN2ZztcbiAgY29uc3Qgc2hpbUxvb2t1cHMgPSByZWR1Y2Uoc2hpbXMsIChhY2MsIHNoaW0pID0+IHtcbiAgICBjb25zdCBtYXliZU5hbWVNYXliZVVuaWNvZGUgPSBzaGltWzBdO1xuICAgIGxldCBwcmVmaXggPSBzaGltWzFdO1xuICAgIGNvbnN0IGljb25OYW1lID0gc2hpbVsyXTtcblxuICAgIGlmIChwcmVmaXggPT09ICdmYXInICYmICFoYXNSZWd1bGFyKSB7XG4gICAgICBwcmVmaXggPSAnZmFzJztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1heWJlTmFtZU1heWJlVW5pY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGFjYy5uYW1lc1ttYXliZU5hbWVNYXliZVVuaWNvZGVdID0ge1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGljb25OYW1lXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWF5YmVOYW1lTWF5YmVVbmljb2RlID09PSAnbnVtYmVyJykge1xuICAgICAgYWNjLnVuaWNvZGVzW21heWJlTmFtZU1heWJlVW5pY29kZS50b1N0cmluZygxNildID0ge1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGljb25OYW1lXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHtcbiAgICBuYW1lczoge30sXG4gICAgdW5pY29kZXM6IHt9XG4gIH0pO1xuICBfYnlPbGROYW1lID0gc2hpbUxvb2t1cHMubmFtZXM7XG4gIF9ieU9sZFVuaWNvZGUgPSBzaGltTG9va3Vwcy51bmljb2RlcztcbiAgX2RlZmF1bHRVc2FibGVQcmVmaXggPSBnZXRDYW5vbmljYWxQcmVmaXgoY29uZmlnLnN0eWxlRGVmYXVsdCwge1xuICAgIGZhbWlseTogY29uZmlnLmZhbWlseURlZmF1bHRcbiAgfSk7XG59O1xub25DaGFuZ2UoYyQkMSA9PiB7XG4gIF9kZWZhdWx0VXNhYmxlUHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KGMkJDEuc3R5bGVEZWZhdWx0LCB7XG4gICAgZmFtaWx5OiBjb25maWcuZmFtaWx5RGVmYXVsdFxuICB9KTtcbn0pO1xuYnVpbGQoKTtcbmZ1bmN0aW9uIGJ5VW5pY29kZShwcmVmaXgsIHVuaWNvZGUpIHtcbiAgcmV0dXJuIChfYnlVbmljb2RlW3ByZWZpeF0gfHwge30pW3VuaWNvZGVdO1xufVxuZnVuY3Rpb24gYnlMaWdhdHVyZShwcmVmaXgsIGxpZ2F0dXJlKSB7XG4gIHJldHVybiAoX2J5TGlnYXR1cmVbcHJlZml4XSB8fCB7fSlbbGlnYXR1cmVdO1xufVxuZnVuY3Rpb24gYnlBbGlhcyhwcmVmaXgsIGFsaWFzKSB7XG4gIHJldHVybiAoX2J5QWxpYXNbcHJlZml4XSB8fCB7fSlbYWxpYXNdO1xufVxuZnVuY3Rpb24gYnlPbGROYW1lKG5hbWUpIHtcbiAgcmV0dXJuIF9ieU9sZE5hbWVbbmFtZV0gfHwge1xuICAgIHByZWZpeDogbnVsbCxcbiAgICBpY29uTmFtZTogbnVsbFxuICB9O1xufVxuZnVuY3Rpb24gYnlPbGRVbmljb2RlKHVuaWNvZGUpIHtcbiAgY29uc3Qgb2xkVW5pY29kZSA9IF9ieU9sZFVuaWNvZGVbdW5pY29kZV07XG4gIGNvbnN0IG5ld1VuaWNvZGUgPSBieVVuaWNvZGUoJ2ZhcycsIHVuaWNvZGUpO1xuICByZXR1cm4gb2xkVW5pY29kZSB8fCAobmV3VW5pY29kZSA/IHtcbiAgICBwcmVmaXg6ICdmYXMnLFxuICAgIGljb25OYW1lOiBuZXdVbmljb2RlXG4gIH0gOiBudWxsKSB8fCB7XG4gICAgcHJlZml4OiBudWxsLFxuICAgIGljb25OYW1lOiBudWxsXG4gIH07XG59XG5mdW5jdGlvbiBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCkge1xuICByZXR1cm4gX2RlZmF1bHRVc2FibGVQcmVmaXg7XG59XG5jb25zdCBlbXB0eUNhbm9uaWNhbEljb24gPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgcHJlZml4OiBudWxsLFxuICAgIGljb25OYW1lOiBudWxsLFxuICAgIHJlc3Q6IFtdXG4gIH07XG59O1xuZnVuY3Rpb24gZ2V0Q2Fub25pY2FsUHJlZml4KHN0eWxlT3JQcmVmaXgpIHtcbiAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIGNvbnN0IHtcbiAgICBmYW1pbHkgPSBhXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHN0eWxlID0gUFJFRklYX1RPX1NUWUxFW2ZhbWlseV1bc3R5bGVPclByZWZpeF07XG4gIGNvbnN0IHByZWZpeCA9IFNUWUxFX1RPX1BSRUZJWFtmYW1pbHldW3N0eWxlT3JQcmVmaXhdIHx8IFNUWUxFX1RPX1BSRUZJWFtmYW1pbHldW3N0eWxlXTtcbiAgY29uc3QgZGVmaW5lZCA9IHN0eWxlT3JQcmVmaXggaW4gbmFtZXNwYWNlLnN0eWxlcyA/IHN0eWxlT3JQcmVmaXggOiBudWxsO1xuICBjb25zdCByZXN1bHQgPSBwcmVmaXggfHwgZGVmaW5lZCB8fCBudWxsO1xuICByZXR1cm4gcmVzdWx0O1xufVxuY29uc3QgUFJFRklYRVNfRk9SX0ZBTUlMWSA9IHtcbiAgW2FdOiBPYmplY3Qua2V5cyhQUkVGSVhfVE9fTE9OR19TVFlMRVthXSksXG4gIFtyXTogT2JqZWN0LmtleXMoUFJFRklYX1RPX0xPTkdfU1RZTEVbcl0pLFxuICBbb106IE9iamVjdC5rZXlzKFBSRUZJWF9UT19MT05HX1NUWUxFW29dKVxufTtcbmZ1bmN0aW9uIGdldENhbm9uaWNhbEljb24odmFsdWVzKSB7XG4gIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICBjb25zdCB7XG4gICAgc2tpcExvb2t1cHMgPSBmYWxzZVxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBmYW1Qcm9wcyA9IHtcbiAgICBbYV06IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoYSksXG4gICAgW3JdOiBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KHIpLFxuICAgIFtvXTogXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChvKVxuICB9O1xuICBsZXQgZ2l2ZW5QcmVmaXggPSBudWxsO1xuICBsZXQgZmFtaWx5ID0gYTtcbiAgY29uc3Qgbm9uRHVvdG9uZUZhbWlseUlkcyA9IGMuZmlsdGVyKGZhbWlseUlkID0+IGZhbWlseUlkICE9PSB0KTtcbiAgbm9uRHVvdG9uZUZhbWlseUlkcy5mb3JFYWNoKGZhbWlseUlkID0+IHtcbiAgICBpZiAodmFsdWVzLmluY2x1ZGVzKGZhbVByb3BzW2ZhbWlseUlkXSkgfHwgdmFsdWVzLnNvbWUodiQkMSA9PiBQUkVGSVhFU19GT1JfRkFNSUxZW2ZhbWlseUlkXS5pbmNsdWRlcyh2JCQxKSkpIHtcbiAgICAgIGZhbWlseSA9IGZhbWlseUlkO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGNhbm9uaWNhbCA9IHZhbHVlcy5yZWR1Y2UoKGFjYywgY2xzKSA9PiB7XG4gICAgY29uc3QgaWNvbk5hbWUgPSBnZXRJY29uTmFtZShjb25maWcuY3NzUHJlZml4LCBjbHMpO1xuXG4gICAgaWYgKHN0eWxlc1tjbHNdKSB7XG4gICAgICBjbHMgPSBMT05HX1NUWUxFW2ZhbWlseV0uaW5jbHVkZXMoY2xzKSA/IExPTkdfU1RZTEVfVE9fUFJFRklYW2ZhbWlseV1bY2xzXSA6IGNscztcbiAgICAgIGdpdmVuUHJlZml4ID0gY2xzO1xuICAgICAgYWNjLnByZWZpeCA9IGNscztcbiAgICB9IGVsc2UgaWYgKFBSRUZJWEVTW2ZhbWlseV0uaW5kZXhPZihjbHMpID4gLTEpIHtcbiAgICAgIGdpdmVuUHJlZml4ID0gY2xzO1xuICAgICAgYWNjLnByZWZpeCA9IGdldENhbm9uaWNhbFByZWZpeChjbHMsIHtcbiAgICAgICAgZmFtaWx5XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGljb25OYW1lKSB7XG4gICAgICBhY2MuaWNvbk5hbWUgPSBpY29uTmFtZTtcbiAgICB9IGVsc2UgaWYgKGNscyAhPT0gY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MgJiYgIW5vbkR1b3RvbmVGYW1pbHlJZHMuc29tZShmYW1pbHlOYW1lID0+IGNscyA9PT0gZmFtUHJvcHNbZmFtaWx5TmFtZV0pKSB7XG4gICAgICBhY2MucmVzdC5wdXNoKGNscyk7XG4gICAgfVxuXG4gICAgaWYgKCFza2lwTG9va3VwcyAmJiBhY2MucHJlZml4ICYmIGFjYy5pY29uTmFtZSkge1xuICAgICAgY29uc3Qgc2hpbSA9IGdpdmVuUHJlZml4ID09PSAnZmEnID8gYnlPbGROYW1lKGFjYy5pY29uTmFtZSkgOiB7fTtcbiAgICAgIGNvbnN0IGFsaWFzSWNvbk5hbWUgPSBieUFsaWFzKGFjYy5wcmVmaXgsIGFjYy5pY29uTmFtZSk7XG5cbiAgICAgIGlmIChzaGltLnByZWZpeCkge1xuICAgICAgICBnaXZlblByZWZpeCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGFjYy5pY29uTmFtZSA9IHNoaW0uaWNvbk5hbWUgfHwgYWxpYXNJY29uTmFtZSB8fCBhY2MuaWNvbk5hbWU7XG4gICAgICBhY2MucHJlZml4ID0gc2hpbS5wcmVmaXggfHwgYWNjLnByZWZpeDtcblxuICAgICAgaWYgKGFjYy5wcmVmaXggPT09ICdmYXInICYmICFzdHlsZXNbJ2ZhciddICYmIHN0eWxlc1snZmFzJ10gJiYgIWNvbmZpZy5hdXRvRmV0Y2hTdmcpIHtcbiAgICAgICAgLy8gQWxsb3cgYSBmYWxsYmFjayBmcm9tIHRoZSByZWd1bGFyIHN0eWxlIHRvIHNvbGlkIGlmIHJlZ3VsYXIgaXMgbm90IGF2YWlsYWJsZVxuICAgICAgICAvLyBidXQgb25seSBpZiB3ZSBhcmVuJ3QgYXV0by1mZXRjaGluZyBTVkdzXG4gICAgICAgIGFjYy5wcmVmaXggPSAnZmFzJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCBlbXB0eUNhbm9uaWNhbEljb24oKSk7XG5cbiAgaWYgKHZhbHVlcy5pbmNsdWRlcygnZmEtYnJhbmRzJykgfHwgdmFsdWVzLmluY2x1ZGVzKCdmYWInKSkge1xuICAgIGNhbm9uaWNhbC5wcmVmaXggPSAnZmFiJztcbiAgfVxuXG4gIGlmICh2YWx1ZXMuaW5jbHVkZXMoJ2ZhLWR1b3RvbmUnKSB8fCB2YWx1ZXMuaW5jbHVkZXMoJ2ZhZCcpKSB7XG4gICAgY2Fub25pY2FsLnByZWZpeCA9ICdmYWQnO1xuICB9XG5cbiAgaWYgKCFjYW5vbmljYWwucHJlZml4ICYmIGZhbWlseSA9PT0gciAmJiAoc3R5bGVzWydmYXNzJ10gfHwgY29uZmlnLmF1dG9GZXRjaFN2ZykpIHtcbiAgICBjYW5vbmljYWwucHJlZml4ID0gJ2Zhc3MnO1xuICAgIGNhbm9uaWNhbC5pY29uTmFtZSA9IGJ5QWxpYXMoY2Fub25pY2FsLnByZWZpeCwgY2Fub25pY2FsLmljb25OYW1lKSB8fCBjYW5vbmljYWwuaWNvbk5hbWU7XG4gIH1cblxuICBpZiAoIWNhbm9uaWNhbC5wcmVmaXggJiYgZmFtaWx5ID09PSBvICYmIChzdHlsZXNbJ2Zhc2RzJ10gfHwgY29uZmlnLmF1dG9GZXRjaFN2ZykpIHtcbiAgICBjYW5vbmljYWwucHJlZml4ID0gJ2Zhc2RzJztcbiAgICBjYW5vbmljYWwuaWNvbk5hbWUgPSBieUFsaWFzKGNhbm9uaWNhbC5wcmVmaXgsIGNhbm9uaWNhbC5pY29uTmFtZSkgfHwgY2Fub25pY2FsLmljb25OYW1lO1xuICB9XG5cbiAgaWYgKGNhbm9uaWNhbC5wcmVmaXggPT09ICdmYScgfHwgZ2l2ZW5QcmVmaXggPT09ICdmYScpIHtcbiAgICAvLyBUaGUgZmEgcHJlZml4IGlzIG5vdCBjYW5vbmljYWwuIFNvIGlmIGl0IGhhcyBtYWRlIGl0IHRocm91Z2ggdW50aWwgdGhpcyBwb2ludFxuICAgIC8vIHdlIHdpbGwgc2hpZnQgaXQgdG8gdGhlIGNvcnJlY3QgcHJlZml4LlxuICAgIGNhbm9uaWNhbC5wcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCkgfHwgJ2Zhcyc7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuXG5jbGFzcyBMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZWZpbml0aW9ucyA9IHt9O1xuICB9XG5cbiAgYWRkKCkge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBkZWZpbml0aW9ucyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGRlZmluaXRpb25zW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIGNvbnN0IGFkZGl0aW9ucyA9IGRlZmluaXRpb25zLnJlZHVjZSh0aGlzLl9wdWxsRGVmaW5pdGlvbnMsIHt9KTtcbiAgICBPYmplY3Qua2V5cyhhZGRpdGlvbnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRoaXMuZGVmaW5pdGlvbnNba2V5XSA9IHsgLi4uKHRoaXMuZGVmaW5pdGlvbnNba2V5XSB8fCB7fSksXG4gICAgICAgIC4uLmFkZGl0aW9uc1trZXldXG4gICAgICB9O1xuICAgICAgZGVmaW5lSWNvbnMoa2V5LCBhZGRpdGlvbnNba2V5XSk7IC8vIFRPRE8gY2FuIHdlIHN0b3AgZG9pbmcgdGhpcz8gV2UgY2FuJ3QgZ2V0IHRoZSBpY29ucyBieSAnZmEtc29saWQnIGFueSBsb25nZXIgc28gdGhpcyBwcm9iYWJseSBuZWVkcyB0byBjaGFuZ2VcblxuICAgICAgY29uc3QgbG9uZ1ByZWZpeCA9IFBSRUZJWF9UT19MT05HX1NUWUxFW2FdW2tleV07XG4gICAgICBpZiAobG9uZ1ByZWZpeCkgZGVmaW5lSWNvbnMobG9uZ1ByZWZpeCwgYWRkaXRpb25zW2tleV0pO1xuICAgICAgYnVpbGQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZGVmaW5pdGlvbnMgPSB7fTtcbiAgfVxuXG4gIF9wdWxsRGVmaW5pdGlvbnMoYWRkaXRpb25zLCBkZWZpbml0aW9uKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IGRlZmluaXRpb24ucHJlZml4ICYmIGRlZmluaXRpb24uaWNvbk5hbWUgJiYgZGVmaW5pdGlvbi5pY29uID8ge1xuICAgICAgMDogZGVmaW5pdGlvblxuICAgIH0gOiBkZWZpbml0aW9uO1xuICAgIE9iamVjdC5rZXlzKG5vcm1hbGl6ZWQpLm1hcChrZXkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGljb25OYW1lLFxuICAgICAgICBpY29uXG4gICAgICB9ID0gbm9ybWFsaXplZFtrZXldO1xuICAgICAgY29uc3QgYWxpYXNlcyA9IGljb25bMl07XG4gICAgICBpZiAoIWFkZGl0aW9uc1twcmVmaXhdKSBhZGRpdGlvbnNbcHJlZml4XSA9IHt9O1xuXG4gICAgICBpZiAoYWxpYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFsaWFzZXMuZm9yRWFjaChhbGlhcyA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhbGlhcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGFkZGl0aW9uc1twcmVmaXhdW2FsaWFzXSA9IGljb247XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgYWRkaXRpb25zW3ByZWZpeF1baWNvbk5hbWVdID0gaWNvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gYWRkaXRpb25zO1xuICB9XG5cbn1cblxubGV0IF9wbHVnaW5zID0gW107XG5sZXQgX2hvb2tzID0ge307XG5jb25zdCBwcm92aWRlcnMgPSB7fTtcbmNvbnN0IGRlZmF1bHRQcm92aWRlcktleXMgPSBPYmplY3Qua2V5cyhwcm92aWRlcnMpO1xuZnVuY3Rpb24gcmVnaXN0ZXJQbHVnaW5zKG5leHRQbHVnaW5zLCBfcmVmKSB7XG4gIGxldCB7XG4gICAgbWl4b3V0c1RvOiBvYmpcbiAgfSA9IF9yZWY7XG4gIF9wbHVnaW5zID0gbmV4dFBsdWdpbnM7XG4gIF9ob29rcyA9IHt9O1xuICBPYmplY3Qua2V5cyhwcm92aWRlcnMpLmZvckVhY2goayA9PiB7XG4gICAgaWYgKGRlZmF1bHRQcm92aWRlcktleXMuaW5kZXhPZihrKSA9PT0gLTEpIHtcbiAgICAgIGRlbGV0ZSBwcm92aWRlcnNba107XG4gICAgfVxuICB9KTtcblxuICBfcGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgY29uc3QgbWl4b3V0ID0gcGx1Z2luLm1peG91dCA/IHBsdWdpbi5taXhvdXQoKSA6IHt9O1xuICAgIE9iamVjdC5rZXlzKG1peG91dCkuZm9yRWFjaCh0ayA9PiB7XG4gICAgICBpZiAodHlwZW9mIG1peG91dFt0a10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb2JqW3RrXSA9IG1peG91dFt0a107XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbWl4b3V0W3RrXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgT2JqZWN0LmtleXMobWl4b3V0W3RrXSkuZm9yRWFjaChzayA9PiB7XG4gICAgICAgICAgaWYgKCFvYmpbdGtdKSB7XG4gICAgICAgICAgICBvYmpbdGtdID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2JqW3RrXVtza10gPSBtaXhvdXRbdGtdW3NrXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGx1Z2luLmhvb2tzKSB7XG4gICAgICBjb25zdCBob29rcyA9IHBsdWdpbi5ob29rcygpO1xuICAgICAgT2JqZWN0LmtleXMoaG9va3MpLmZvckVhY2goaG9vayA9PiB7XG4gICAgICAgIGlmICghX2hvb2tzW2hvb2tdKSB7XG4gICAgICAgICAgX2hvb2tzW2hvb2tdID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBfaG9va3NbaG9va10ucHVzaChob29rc1tob29rXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocGx1Z2luLnByb3ZpZGVzKSB7XG4gICAgICBwbHVnaW4ucHJvdmlkZXMocHJvdmlkZXJzKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBvYmo7XG59XG5mdW5jdGlvbiBjaGFpbkhvb2tzKGhvb2ssIGFjY3VtdWxhdG9yKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAyID8gX2xlbiAtIDIgOiAwKSwgX2tleSA9IDI7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXkgLSAyXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIGNvbnN0IGhvb2tGbnMgPSBfaG9va3NbaG9va10gfHwgW107XG4gIGhvb2tGbnMuZm9yRWFjaChob29rRm4gPT4ge1xuICAgIGFjY3VtdWxhdG9yID0gaG9va0ZuLmFwcGx5KG51bGwsIFthY2N1bXVsYXRvciwgLi4uYXJnc10pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtY2FsbFxuICB9KTtcbiAgcmV0dXJuIGFjY3VtdWxhdG9yO1xufVxuZnVuY3Rpb24gY2FsbEhvb2tzKGhvb2spIHtcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICB9XG5cbiAgY29uc3QgaG9va0ZucyA9IF9ob29rc1tob29rXSB8fCBbXTtcbiAgaG9va0Zucy5mb3JFYWNoKGhvb2tGbiA9PiB7XG4gICAgaG9va0ZuLmFwcGx5KG51bGwsIGFyZ3MpO1xuICB9KTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGNhbGxQcm92aWRlZCgpIHtcbiAgY29uc3QgaG9vayA9IGFyZ3VtZW50c1swXTtcbiAgY29uc3QgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gIHJldHVybiBwcm92aWRlcnNbaG9va10gPyBwcm92aWRlcnNbaG9va10uYXBwbHkobnVsbCwgYXJncykgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGZpbmRJY29uRGVmaW5pdGlvbihpY29uTG9va3VwKSB7XG4gIGlmIChpY29uTG9va3VwLnByZWZpeCA9PT0gJ2ZhJykge1xuICAgIGljb25Mb29rdXAucHJlZml4ID0gJ2Zhcyc7XG4gIH1cblxuICBsZXQge1xuICAgIGljb25OYW1lXG4gIH0gPSBpY29uTG9va3VwO1xuICBjb25zdCBwcmVmaXggPSBpY29uTG9va3VwLnByZWZpeCB8fCBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gIGlmICghaWNvbk5hbWUpIHJldHVybjtcbiAgaWNvbk5hbWUgPSBieUFsaWFzKHByZWZpeCwgaWNvbk5hbWUpIHx8IGljb25OYW1lO1xuICByZXR1cm4gaWNvbkZyb21NYXBwaW5nKGxpYnJhcnkuZGVmaW5pdGlvbnMsIHByZWZpeCwgaWNvbk5hbWUpIHx8IGljb25Gcm9tTWFwcGluZyhuYW1lc3BhY2Uuc3R5bGVzLCBwcmVmaXgsIGljb25OYW1lKTtcbn1cbmNvbnN0IGxpYnJhcnkgPSBuZXcgTGlicmFyeSgpO1xuY29uc3Qgbm9BdXRvID0gKCkgPT4ge1xuICBjb25maWcuYXV0b1JlcGxhY2VTdmcgPSBmYWxzZTtcbiAgY29uZmlnLm9ic2VydmVNdXRhdGlvbnMgPSBmYWxzZTtcbiAgY2FsbEhvb2tzKCdub0F1dG8nKTtcbn07XG5jb25zdCBkb20gPSB7XG4gIGkyc3ZnOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG5cbiAgICBpZiAoSVNfRE9NKSB7XG4gICAgICBjYWxsSG9va3MoJ2JlZm9yZUkyc3ZnJywgcGFyYW1zKTtcbiAgICAgIGNhbGxQcm92aWRlZCgncHNldWRvRWxlbWVudHMyc3ZnJywgcGFyYW1zKTtcbiAgICAgIHJldHVybiBjYWxsUHJvdmlkZWQoJ2kyc3ZnJywgcGFyYW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignT3BlcmF0aW9uIHJlcXVpcmVzIGEgRE9NIG9mIHNvbWUga2luZC4nKSk7XG4gICAgfVxuICB9LFxuICB3YXRjaDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGF1dG9SZXBsYWNlU3ZnUm9vdFxuICAgIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoY29uZmlnLmF1dG9SZXBsYWNlU3ZnID09PSBmYWxzZSkge1xuICAgICAgY29uZmlnLmF1dG9SZXBsYWNlU3ZnID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25maWcub2JzZXJ2ZU11dGF0aW9ucyA9IHRydWU7XG4gICAgZG9tcmVhZHkoKCkgPT4ge1xuICAgICAgYXV0b1JlcGxhY2Uoe1xuICAgICAgICBhdXRvUmVwbGFjZVN2Z1Jvb3RcbiAgICAgIH0pO1xuICAgICAgY2FsbEhvb2tzKCd3YXRjaCcsIHBhcmFtcyk7XG4gICAgfSk7XG4gIH1cbn07XG5jb25zdCBwYXJzZSA9IHtcbiAgaWNvbjogaWNvbiA9PiB7XG4gICAgaWYgKGljb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaWNvbiA9PT0gJ29iamVjdCcgJiYgaWNvbi5wcmVmaXggJiYgaWNvbi5pY29uTmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4OiBpY29uLnByZWZpeCxcbiAgICAgICAgaWNvbk5hbWU6IGJ5QWxpYXMoaWNvbi5wcmVmaXgsIGljb24uaWNvbk5hbWUpIHx8IGljb24uaWNvbk5hbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWNvbikgJiYgaWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgIGNvbnN0IGljb25OYW1lID0gaWNvblsxXS5pbmRleE9mKCdmYS0nKSA9PT0gMCA/IGljb25bMV0uc2xpY2UoMykgOiBpY29uWzFdO1xuICAgICAgY29uc3QgcHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KGljb25bMF0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhwcmVmaXgsIGljb25OYW1lKSB8fCBpY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdzdHJpbmcnICYmIChpY29uLmluZGV4T2YoXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpKSA+IC0xIHx8IGljb24ubWF0Y2goSUNPTl9TRUxFQ1RJT05fU1lOVEFYX1BBVFRFUk4pKSkge1xuICAgICAgY29uc3QgY2Fub25pY2FsSWNvbiA9IGdldENhbm9uaWNhbEljb24oaWNvbi5zcGxpdCgnICcpLCB7XG4gICAgICAgIHNraXBMb29rdXBzOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeDogY2Fub25pY2FsSWNvbi5wcmVmaXggfHwgZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpLFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhjYW5vbmljYWxJY29uLnByZWZpeCwgY2Fub25pY2FsSWNvbi5pY29uTmFtZSkgfHwgY2Fub25pY2FsSWNvbi5pY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGljb25OYW1lOiBieUFsaWFzKHByZWZpeCwgaWNvbikgfHwgaWNvblxuICAgICAgfTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCBhcGkgPSB7XG4gIG5vQXV0byxcbiAgY29uZmlnLFxuICBkb20sXG4gIHBhcnNlLFxuICBsaWJyYXJ5LFxuICBmaW5kSWNvbkRlZmluaXRpb24sXG4gIHRvSHRtbFxufTtcblxuY29uc3QgYXV0b1JlcGxhY2UgPSBmdW5jdGlvbiAoKSB7XG4gIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICBjb25zdCB7XG4gICAgYXV0b1JlcGxhY2VTdmdSb290ID0gRE9DVU1FTlRcbiAgfSA9IHBhcmFtcztcbiAgaWYgKChPYmplY3Qua2V5cyhuYW1lc3BhY2Uuc3R5bGVzKS5sZW5ndGggPiAwIHx8IGNvbmZpZy5hdXRvRmV0Y2hTdmcpICYmIElTX0RPTSAmJiBjb25maWcuYXV0b1JlcGxhY2VTdmcpIGFwaS5kb20uaTJzdmcoe1xuICAgIG5vZGU6IGF1dG9SZXBsYWNlU3ZnUm9vdFxuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGRvbVZhcmlhbnRzKHZhbCwgYWJzdHJhY3RDcmVhdG9yKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdhYnN0cmFjdCcsIHtcbiAgICBnZXQ6IGFic3RyYWN0Q3JlYXRvclxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbCwgJ2h0bWwnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdmFsLmFic3RyYWN0Lm1hcChhID0+IHRvSHRtbChhKSk7XG4gICAgfVxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbCwgJ25vZGUnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gRE9DVU1FTlQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gdmFsLmh0bWw7XG4gICAgICByZXR1cm4gY29udGFpbmVyLmNoaWxkcmVuO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGFzSWNvbiAoX3JlZikge1xuICBsZXQge1xuICAgIGNoaWxkcmVuLFxuICAgIG1haW4sXG4gICAgbWFzayxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIHN0eWxlcyxcbiAgICB0cmFuc2Zvcm1cbiAgfSA9IF9yZWY7XG5cbiAgaWYgKHRyYW5zZm9ybUlzTWVhbmluZ2Z1bCh0cmFuc2Zvcm0pICYmIG1haW4uZm91bmQgJiYgIW1hc2suZm91bmQpIHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodFxuICAgIH0gPSBtYWluO1xuICAgIGNvbnN0IG9mZnNldCA9IHtcbiAgICAgIHg6IHdpZHRoIC8gaGVpZ2h0IC8gMixcbiAgICAgIHk6IDAuNVxuICAgIH07XG4gICAgYXR0cmlidXRlc1snc3R5bGUnXSA9IGpvaW5TdHlsZXMoeyAuLi5zdHlsZXMsXG4gICAgICAndHJhbnNmb3JtLW9yaWdpbic6IFwiXCIuY29uY2F0KG9mZnNldC54ICsgdHJhbnNmb3JtLnggLyAxNiwgXCJlbSBcIikuY29uY2F0KG9mZnNldC55ICsgdHJhbnNmb3JtLnkgLyAxNiwgXCJlbVwiKVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFt7XG4gICAgdGFnOiAnc3ZnJyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGNoaWxkcmVuXG4gIH1dO1xufVxuXG5mdW5jdGlvbiBhc1N5bWJvbCAoX3JlZikge1xuICBsZXQge1xuICAgIHByZWZpeCxcbiAgICBpY29uTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBhdHRyaWJ1dGVzLFxuICAgIHN5bWJvbFxuICB9ID0gX3JlZjtcbiAgY29uc3QgaWQgPSBzeW1ib2wgPT09IHRydWUgPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLVwiKS5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChpY29uTmFtZSkgOiBzeW1ib2w7XG4gIHJldHVybiBbe1xuICAgIHRhZzogJ3N2ZycsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgc3R5bGU6ICdkaXNwbGF5OiBub25lOydcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBbe1xuICAgICAgdGFnOiAnc3ltYm9sJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uYXR0cmlidXRlcyxcbiAgICAgICAgaWRcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlblxuICAgIH1dXG4gIH1dO1xufVxuXG5mdW5jdGlvbiBtYWtlSW5saW5lU3ZnQWJzdHJhY3QocGFyYW1zKSB7XG4gIGNvbnN0IHtcbiAgICBpY29uczoge1xuICAgICAgbWFpbixcbiAgICAgIG1hc2tcbiAgICB9LFxuICAgIHByZWZpeCxcbiAgICBpY29uTmFtZSxcbiAgICB0cmFuc2Zvcm0sXG4gICAgc3ltYm9sLFxuICAgIHRpdGxlLFxuICAgIG1hc2tJZCxcbiAgICB0aXRsZUlkLFxuICAgIGV4dHJhLFxuICAgIHdhdGNoYWJsZSA9IGZhbHNlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IG1hc2suZm91bmQgPyBtYXNrIDogbWFpbjtcbiAgY29uc3QgaXNVcGxvYWRlZEljb24gPSBwcmVmaXggPT09ICdmYWsnO1xuICBjb25zdCBhdHRyQ2xhc3MgPSBbY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MsIGljb25OYW1lID8gXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChpY29uTmFtZSkgOiAnJ10uZmlsdGVyKGMgPT4gZXh0cmEuY2xhc3Nlcy5pbmRleE9mKGMpID09PSAtMSkuZmlsdGVyKGMgPT4gYyAhPT0gJycgfHwgISFjKS5jb25jYXQoZXh0cmEuY2xhc3Nlcykuam9pbignICcpO1xuICBsZXQgY29udGVudCA9IHtcbiAgICBjaGlsZHJlbjogW10sXG4gICAgYXR0cmlidXRlczogeyAuLi5leHRyYS5hdHRyaWJ1dGVzLFxuICAgICAgJ2RhdGEtcHJlZml4JzogcHJlZml4LFxuICAgICAgJ2RhdGEtaWNvbic6IGljb25OYW1lLFxuICAgICAgJ2NsYXNzJzogYXR0ckNsYXNzLFxuICAgICAgJ3JvbGUnOiBleHRyYS5hdHRyaWJ1dGVzLnJvbGUgfHwgJ2ltZycsXG4gICAgICAneG1sbnMnOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICAgICAgJ3ZpZXdCb3gnOiBcIjAgMCBcIi5jb25jYXQod2lkdGgsIFwiIFwiKS5jb25jYXQoaGVpZ2h0KVxuICAgIH1cbiAgfTtcbiAgY29uc3QgdXBsb2FkZWRJY29uV2lkdGhTdHlsZSA9IGlzVXBsb2FkZWRJY29uICYmICF+ZXh0cmEuY2xhc3Nlcy5pbmRleE9mKCdmYS1mdycpID8ge1xuICAgIHdpZHRoOiBcIlwiLmNvbmNhdCh3aWR0aCAvIGhlaWdodCAqIDE2ICogMC4wNjI1LCBcImVtXCIpXG4gIH0gOiB7fTtcblxuICBpZiAod2F0Y2hhYmxlKSB7XG4gICAgY29udGVudC5hdHRyaWJ1dGVzW0RBVEFfRkFfSTJTVkddID0gJyc7XG4gIH1cblxuICBpZiAodGl0bGUpIHtcbiAgICBjb250ZW50LmNoaWxkcmVuLnB1c2goe1xuICAgICAgdGFnOiAndGl0bGUnLFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBpZDogY29udGVudC5hdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSB8fCBcInRpdGxlLVwiLmNvbmNhdCh0aXRsZUlkIHx8IG5leHRVbmlxdWVJZCgpKVxuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbdGl0bGVdXG4gICAgfSk7XG4gICAgZGVsZXRlIGNvbnRlbnQuYXR0cmlidXRlcy50aXRsZTtcbiAgfVxuXG4gIGNvbnN0IGFyZ3MgPSB7IC4uLmNvbnRlbnQsXG4gICAgcHJlZml4LFxuICAgIGljb25OYW1lLFxuICAgIG1haW4sXG4gICAgbWFzayxcbiAgICBtYXNrSWQsXG4gICAgdHJhbnNmb3JtLFxuICAgIHN5bWJvbCxcbiAgICBzdHlsZXM6IHsgLi4udXBsb2FkZWRJY29uV2lkdGhTdHlsZSxcbiAgICAgIC4uLmV4dHJhLnN0eWxlc1xuICAgIH1cbiAgfTtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGF0dHJpYnV0ZXNcbiAgfSA9IG1hc2suZm91bmQgJiYgbWFpbi5mb3VuZCA/IGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVBYnN0cmFjdE1hc2snLCBhcmdzKSB8fCB7XG4gICAgY2hpbGRyZW46IFtdLFxuICAgIGF0dHJpYnV0ZXM6IHt9XG4gIH0gOiBjYWxsUHJvdmlkZWQoJ2dlbmVyYXRlQWJzdHJhY3RJY29uJywgYXJncykgfHwge1xuICAgIGNoaWxkcmVuOiBbXSxcbiAgICBhdHRyaWJ1dGVzOiB7fVxuICB9O1xuICBhcmdzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIGFyZ3MuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgaWYgKHN5bWJvbCkge1xuICAgIHJldHVybiBhc1N5bWJvbChhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXNJY29uKGFyZ3MpO1xuICB9XG59XG5mdW5jdGlvbiBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHBhcmFtcykge1xuICBjb25zdCB7XG4gICAgY29udGVudCxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgdHJhbnNmb3JtLFxuICAgIHRpdGxlLFxuICAgIGV4dHJhLFxuICAgIHdhdGNoYWJsZSA9IGZhbHNlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7IC4uLmV4dHJhLmF0dHJpYnV0ZXMsXG4gICAgLi4uKHRpdGxlID8ge1xuICAgICAgJ3RpdGxlJzogdGl0bGVcbiAgICB9IDoge30pLFxuICAgICdjbGFzcyc6IGV4dHJhLmNsYXNzZXMuam9pbignICcpXG4gIH07XG5cbiAgaWYgKHdhdGNoYWJsZSkge1xuICAgIGF0dHJpYnV0ZXNbREFUQV9GQV9JMlNWR10gPSAnJztcbiAgfVxuXG4gIGNvbnN0IHN0eWxlcyA9IHsgLi4uZXh0cmEuc3R5bGVzXG4gIH07XG5cbiAgaWYgKHRyYW5zZm9ybUlzTWVhbmluZ2Z1bCh0cmFuc2Zvcm0pKSB7XG4gICAgc3R5bGVzWyd0cmFuc2Zvcm0nXSA9IHRyYW5zZm9ybUZvckNzcyh7XG4gICAgICB0cmFuc2Zvcm0sXG4gICAgICBzdGFydENlbnRlcmVkOiB0cnVlLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9KTtcbiAgICBzdHlsZXNbJy13ZWJraXQtdHJhbnNmb3JtJ10gPSBzdHlsZXNbJ3RyYW5zZm9ybSddO1xuICB9XG5cbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSBqb2luU3R5bGVzKHN0eWxlcyk7XG5cbiAgaWYgKHN0eWxlU3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gc3R5bGVTdHJpbmc7XG4gIH1cblxuICBjb25zdCB2YWwgPSBbXTtcbiAgdmFsLnB1c2goe1xuICAgIHRhZzogJ3NwYW4nLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgY2hpbGRyZW46IFtjb250ZW50XVxuICB9KTtcblxuICBpZiAodGl0bGUpIHtcbiAgICB2YWwucHVzaCh7XG4gICAgICB0YWc6ICdzcGFuJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2xhc3M6ICdzci1vbmx5J1xuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbdGl0bGVdXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdmFsO1xufVxuZnVuY3Rpb24gbWFrZUxheWVyc0NvdW50ZXJBYnN0cmFjdChwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIGNvbnRlbnQsXG4gICAgdGl0bGUsXG4gICAgZXh0cmFcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgYXR0cmlidXRlcyA9IHsgLi4uZXh0cmEuYXR0cmlidXRlcyxcbiAgICAuLi4odGl0bGUgPyB7XG4gICAgICAndGl0bGUnOiB0aXRsZVxuICAgIH0gOiB7fSksXG4gICAgJ2NsYXNzJzogZXh0cmEuY2xhc3Nlcy5qb2luKCcgJylcbiAgfTtcbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSBqb2luU3R5bGVzKGV4dHJhLnN0eWxlcyk7XG5cbiAgaWYgKHN0eWxlU3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gc3R5bGVTdHJpbmc7XG4gIH1cblxuICBjb25zdCB2YWwgPSBbXTtcbiAgdmFsLnB1c2goe1xuICAgIHRhZzogJ3NwYW4nLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgY2hpbGRyZW46IFtjb250ZW50XVxuICB9KTtcblxuICBpZiAodGl0bGUpIHtcbiAgICB2YWwucHVzaCh7XG4gICAgICB0YWc6ICdzcGFuJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2xhc3M6ICdzci1vbmx5J1xuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbdGl0bGVdXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdmFsO1xufVxuXG5jb25zdCB7XG4gIHN0eWxlczogc3R5bGVzJDFcbn0gPSBuYW1lc3BhY2U7XG5mdW5jdGlvbiBhc0ZvdW5kSWNvbihpY29uKSB7XG4gIGNvbnN0IHdpZHRoID0gaWNvblswXTtcbiAgY29uc3QgaGVpZ2h0ID0gaWNvblsxXTtcbiAgY29uc3QgW3ZlY3RvckRhdGFdID0gaWNvbi5zbGljZSg0KTtcbiAgbGV0IGVsZW1lbnQgPSBudWxsO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHZlY3RvckRhdGEpKSB7XG4gICAgZWxlbWVudCA9IHtcbiAgICAgIHRhZzogJ2cnLFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBjbGFzczogXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChEVU9UT05FX0NMQVNTRVMuR1JPVVApXG4gICAgICB9LFxuICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgY2xhc3M6IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoRFVPVE9ORV9DTEFTU0VTLlNFQ09OREFSWSksXG4gICAgICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICAgICAgZDogdmVjdG9yRGF0YVswXVxuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgY2xhc3M6IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoRFVPVE9ORV9DTEFTU0VTLlBSSU1BUlkpLFxuICAgICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgICAgIGQ6IHZlY3RvckRhdGFbMV1cbiAgICAgICAgfVxuICAgICAgfV1cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGVsZW1lbnQgPSB7XG4gICAgICB0YWc6ICdwYXRoJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICAgIGQ6IHZlY3RvckRhdGFcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmb3VuZDogdHJ1ZSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgaWNvbjogZWxlbWVudFxuICB9O1xufVxuY29uc3QgbWlzc2luZ0ljb25SZXNvbHV0aW9uTWl4aW4gPSB7XG4gIGZvdW5kOiBmYWxzZSxcbiAgd2lkdGg6IDUxMixcbiAgaGVpZ2h0OiA1MTJcbn07XG5cbmZ1bmN0aW9uIG1heWJlTm90aWZ5TWlzc2luZyhpY29uTmFtZSwgcHJlZml4KSB7XG4gIGlmICghUFJPRFVDVElPTiAmJiAhY29uZmlnLnNob3dNaXNzaW5nSWNvbnMgJiYgaWNvbk5hbWUpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiSWNvbiB3aXRoIG5hbWUgXFxcIlwiLmNvbmNhdChpY29uTmFtZSwgXCJcXFwiIGFuZCBwcmVmaXggXFxcIlwiKS5jb25jYXQocHJlZml4LCBcIlxcXCIgaXMgbWlzc2luZy5cIikpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpIHtcbiAgbGV0IGdpdmVuUHJlZml4ID0gcHJlZml4O1xuXG4gIGlmIChwcmVmaXggPT09ICdmYScgJiYgY29uZmlnLnN0eWxlRGVmYXVsdCAhPT0gbnVsbCkge1xuICAgIHByZWZpeCA9IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKGdpdmVuUHJlZml4ID09PSAnZmEnKSB7XG4gICAgICBjb25zdCBzaGltID0gYnlPbGROYW1lKGljb25OYW1lKSB8fCB7fTtcbiAgICAgIGljb25OYW1lID0gc2hpbS5pY29uTmFtZSB8fCBpY29uTmFtZTtcbiAgICAgIHByZWZpeCA9IHNoaW0ucHJlZml4IHx8IHByZWZpeDtcbiAgICB9XG5cbiAgICBpZiAoaWNvbk5hbWUgJiYgcHJlZml4ICYmIHN0eWxlcyQxW3ByZWZpeF0gJiYgc3R5bGVzJDFbcHJlZml4XVtpY29uTmFtZV0pIHtcbiAgICAgIGNvbnN0IGljb24gPSBzdHlsZXMkMVtwcmVmaXhdW2ljb25OYW1lXTtcbiAgICAgIHJldHVybiByZXNvbHZlKGFzRm91bmRJY29uKGljb24pKTtcbiAgICB9XG5cbiAgICBtYXliZU5vdGlmeU1pc3NpbmcoaWNvbk5hbWUsIHByZWZpeCk7XG4gICAgcmVzb2x2ZSh7IC4uLm1pc3NpbmdJY29uUmVzb2x1dGlvbk1peGluLFxuICAgICAgaWNvbjogY29uZmlnLnNob3dNaXNzaW5nSWNvbnMgJiYgaWNvbk5hbWUgPyBjYWxsUHJvdmlkZWQoJ21pc3NpbmdJY29uQWJzdHJhY3QnKSB8fCB7fSA6IHt9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5jb25zdCBub29wJDEgPSAoKSA9PiB7fTtcblxuY29uc3QgcCQyID0gY29uZmlnLm1lYXN1cmVQZXJmb3JtYW5jZSAmJiBQRVJGT1JNQU5DRSAmJiBQRVJGT1JNQU5DRS5tYXJrICYmIFBFUkZPUk1BTkNFLm1lYXN1cmUgPyBQRVJGT1JNQU5DRSA6IHtcbiAgbWFyazogbm9vcCQxLFxuICBtZWFzdXJlOiBub29wJDFcbn07XG5jb25zdCBwcmVhbWJsZSA9IFwiRkEgXFxcIjYuNi4wXFxcIlwiO1xuXG5jb25zdCBiZWdpbiA9IG5hbWUgPT4ge1xuICBwJDIubWFyayhcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBiZWdpbnNcIikpO1xuICByZXR1cm4gKCkgPT4gZW5kKG5hbWUpO1xufTtcblxuY29uc3QgZW5kID0gbmFtZSA9PiB7XG4gIHAkMi5tYXJrKFwiXCIuY29uY2F0KHByZWFtYmxlLCBcIiBcIikuY29uY2F0KG5hbWUsIFwiIGVuZHNcIikpO1xuICBwJDIubWVhc3VyZShcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lKSwgXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSwgXCIgYmVnaW5zXCIpLCBcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBlbmRzXCIpKTtcbn07XG5cbnZhciBwZXJmID0ge1xuICBiZWdpbixcbiAgZW5kXG59O1xuXG5jb25zdCBub29wJDIgPSAoKSA9PiB7fTtcblxuZnVuY3Rpb24gaXNXYXRjaGVkKG5vZGUpIHtcbiAgY29uc3QgaTJzdmcgPSBub2RlLmdldEF0dHJpYnV0ZSA/IG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcpIDogbnVsbDtcbiAgcmV0dXJuIHR5cGVvZiBpMnN2ZyA9PT0gJ3N0cmluZyc7XG59XG5cbmZ1bmN0aW9uIGhhc1ByZWZpeEFuZEljb24obm9kZSkge1xuICBjb25zdCBwcmVmaXggPSBub2RlLmdldEF0dHJpYnV0ZSA/IG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfUFJFRklYKSA6IG51bGw7XG4gIGNvbnN0IGljb24gPSBub2RlLmdldEF0dHJpYnV0ZSA/IG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfSUNPTikgOiBudWxsO1xuICByZXR1cm4gcHJlZml4ICYmIGljb247XG59XG5cbmZ1bmN0aW9uIGhhc0JlZW5SZXBsYWNlZChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUuY2xhc3NMaXN0ICYmIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zICYmIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKGNvbmZpZy5yZXBsYWNlbWVudENsYXNzKTtcbn1cblxuZnVuY3Rpb24gZ2V0TXV0YXRvcigpIHtcbiAgaWYgKGNvbmZpZy5hdXRvUmVwbGFjZVN2ZyA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBtdXRhdG9ycy5yZXBsYWNlO1xuICB9XG5cbiAgY29uc3QgbXV0YXRvciA9IG11dGF0b3JzW2NvbmZpZy5hdXRvUmVwbGFjZVN2Z107XG4gIHJldHVybiBtdXRhdG9yIHx8IG11dGF0b3JzLnJlcGxhY2U7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyh0YWcpIHtcbiAgcmV0dXJuIERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCB0YWcpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHRhZykge1xuICByZXR1cm4gRE9DVU1FTlQuY3JlYXRlRWxlbWVudCh0YWcpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0U1ZHKGFic3RyYWN0T2JqKSB7XG4gIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICBjb25zdCB7XG4gICAgY2VGbiA9IGFic3RyYWN0T2JqLnRhZyA9PT0gJ3N2ZycgPyBjcmVhdGVFbGVtZW50TlMgOiBjcmVhdGVFbGVtZW50XG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKHR5cGVvZiBhYnN0cmFjdE9iaiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gRE9DVU1FTlQuY3JlYXRlVGV4dE5vZGUoYWJzdHJhY3RPYmopO1xuICB9XG5cbiAgY29uc3QgdGFnID0gY2VGbihhYnN0cmFjdE9iai50YWcpO1xuICBPYmplY3Qua2V5cyhhYnN0cmFjdE9iai5hdHRyaWJ1dGVzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0YWcuc2V0QXR0cmlidXRlKGtleSwgYWJzdHJhY3RPYmouYXR0cmlidXRlc1trZXldKTtcbiAgfSk7XG4gIGNvbnN0IGNoaWxkcmVuID0gYWJzdHJhY3RPYmouY2hpbGRyZW4gfHwgW107XG4gIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgdGFnLmFwcGVuZENoaWxkKGNvbnZlcnRTVkcoY2hpbGQsIHtcbiAgICAgIGNlRm5cbiAgICB9KSk7XG4gIH0pO1xuICByZXR1cm4gdGFnO1xufVxuXG5mdW5jdGlvbiBub2RlQXNDb21tZW50KG5vZGUpIHtcbiAgbGV0IGNvbW1lbnQgPSBcIiBcIi5jb25jYXQobm9kZS5vdXRlckhUTUwsIFwiIFwiKTtcbiAgLyogQkVHSU4uQVRUUklCVVRJT04gKi9cblxuICBjb21tZW50ID0gXCJcIi5jb25jYXQoY29tbWVudCwgXCJGb250IEF3ZXNvbWUgZm9udGF3ZXNvbWUuY29tIFwiKTtcbiAgLyogRU5ELkFUVFJJQlVUSU9OICovXG5cbiAgcmV0dXJuIGNvbW1lbnQ7XG59XG5cbmNvbnN0IG11dGF0b3JzID0ge1xuICByZXBsYWNlOiBmdW5jdGlvbiAobXV0YXRpb24pIHtcbiAgICBjb25zdCBub2RlID0gbXV0YXRpb25bMF07XG5cbiAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICBtdXRhdGlvblsxXS5mb3JFYWNoKGFic3RyYWN0ID0+IHtcbiAgICAgICAgbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb252ZXJ0U1ZHKGFic3RyYWN0KSwgbm9kZSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcpID09PSBudWxsICYmIGNvbmZpZy5rZWVwT3JpZ2luYWxTb3VyY2UpIHtcbiAgICAgICAgbGV0IGNvbW1lbnQgPSBET0NVTUVOVC5jcmVhdGVDb21tZW50KG5vZGVBc0NvbW1lbnQobm9kZSkpO1xuICAgICAgICBub2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGNvbW1lbnQsIG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIG5lc3Q6IGZ1bmN0aW9uIChtdXRhdGlvbikge1xuICAgIGNvbnN0IG5vZGUgPSBtdXRhdGlvblswXTtcbiAgICBjb25zdCBhYnN0cmFjdCA9IG11dGF0aW9uWzFdOyAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSByZXBsYWNlZCBub2RlIHdlIGRvIG5vdCB3YW50IHRvIGNvbnRpbnVlIG5lc3Rpbmcgd2l0aGluIGl0LlxuICAgIC8vIFNob3J0LWNpcmN1aXQgdG8gdGhlIHN0YW5kYXJkIHJlcGxhY2VtZW50XG5cbiAgICBpZiAofmNsYXNzQXJyYXkobm9kZSkuaW5kZXhPZihjb25maWcucmVwbGFjZW1lbnRDbGFzcykpIHtcbiAgICAgIHJldHVybiBtdXRhdG9ycy5yZXBsYWNlKG11dGF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JTdmcgPSBuZXcgUmVnRXhwKFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLS4qXCIpKTtcbiAgICBkZWxldGUgYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5pZDtcblxuICAgIGlmIChhYnN0cmFjdFswXS5hdHRyaWJ1dGVzLmNsYXNzKSB7XG4gICAgICBjb25zdCBzcGxpdENsYXNzZXMgPSBhYnN0cmFjdFswXS5hdHRyaWJ1dGVzLmNsYXNzLnNwbGl0KCcgJykucmVkdWNlKChhY2MsIGNscykgPT4ge1xuICAgICAgICBpZiAoY2xzID09PSBjb25maWcucmVwbGFjZW1lbnRDbGFzcyB8fCBjbHMubWF0Y2goZm9yU3ZnKSkge1xuICAgICAgICAgIGFjYy50b1N2Zy5wdXNoKGNscyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnRvTm9kZS5wdXNoKGNscyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge1xuICAgICAgICB0b05vZGU6IFtdLFxuICAgICAgICB0b1N2ZzogW11cbiAgICAgIH0pO1xuICAgICAgYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5jbGFzcyA9IHNwbGl0Q2xhc3Nlcy50b1N2Zy5qb2luKCcgJyk7XG5cbiAgICAgIGlmIChzcGxpdENsYXNzZXMudG9Ob2RlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIHNwbGl0Q2xhc3Nlcy50b05vZGUuam9pbignICcpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdJbm5lckhUTUwgPSBhYnN0cmFjdC5tYXAoYSA9PiB0b0h0bWwoYSkpLmpvaW4oJ1xcbicpO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcsICcnKTtcbiAgICBub2RlLmlubmVySFRNTCA9IG5ld0lubmVySFRNTDtcbiAgfVxufTtcblxuZnVuY3Rpb24gcGVyZm9ybU9wZXJhdGlvblN5bmMob3ApIHtcbiAgb3AoKTtcbn1cblxuZnVuY3Rpb24gcGVyZm9ybShtdXRhdGlvbnMsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGNhbGxiYWNrRnVuY3Rpb24gPSB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicgPyBjYWxsYmFjayA6IG5vb3AkMjtcblxuICBpZiAobXV0YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIGNhbGxiYWNrRnVuY3Rpb24oKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgZnJhbWUgPSBwZXJmb3JtT3BlcmF0aW9uU3luYztcblxuICAgIGlmIChjb25maWcubXV0YXRlQXBwcm9hY2ggPT09IE1VVEFUSU9OX0FQUFJPQUNIX0FTWU5DKSB7XG4gICAgICBmcmFtZSA9IFdJTkRPVy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwgcGVyZm9ybU9wZXJhdGlvblN5bmM7XG4gICAgfVxuXG4gICAgZnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3QgbXV0YXRvciA9IGdldE11dGF0b3IoKTtcbiAgICAgIGNvbnN0IG1hcmsgPSBwZXJmLmJlZ2luKCdtdXRhdGUnKTtcbiAgICAgIG11dGF0aW9ucy5tYXAobXV0YXRvcik7XG4gICAgICBtYXJrKCk7XG4gICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7XG4gICAgfSk7XG4gIH1cbn1cbmxldCBkaXNhYmxlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZGlzYWJsZU9ic2VydmF0aW9uKCkge1xuICBkaXNhYmxlZCA9IHRydWU7XG59XG5mdW5jdGlvbiBlbmFibGVPYnNlcnZhdGlvbigpIHtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbn1cbmxldCBtbyQxID0gbnVsbDtcbmZ1bmN0aW9uIG9ic2VydmUob3B0aW9ucykge1xuICBpZiAoIU1VVEFUSU9OX09CU0VSVkVSKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFjb25maWcub2JzZXJ2ZU11dGF0aW9ucykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICB0cmVlQ2FsbGJhY2sgPSBub29wJDIsXG4gICAgbm9kZUNhbGxiYWNrID0gbm9vcCQyLFxuICAgIHBzZXVkb0VsZW1lbnRzQ2FsbGJhY2sgPSBub29wJDIsXG4gICAgb2JzZXJ2ZU11dGF0aW9uc1Jvb3QgPSBET0NVTUVOVFxuICB9ID0gb3B0aW9ucztcbiAgbW8kMSA9IG5ldyBNVVRBVElPTl9PQlNFUlZFUihvYmplY3RzID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBkZWZhdWx0UHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICAgIHRvQXJyYXkob2JqZWN0cykuZm9yRWFjaChtdXRhdGlvblJlY29yZCA9PiB7XG4gICAgICBpZiAobXV0YXRpb25SZWNvcmQudHlwZSA9PT0gJ2NoaWxkTGlzdCcgJiYgbXV0YXRpb25SZWNvcmQuYWRkZWROb2Rlcy5sZW5ndGggPiAwICYmICFpc1dhdGNoZWQobXV0YXRpb25SZWNvcmQuYWRkZWROb2Rlc1swXSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5zZWFyY2hQc2V1ZG9FbGVtZW50cykge1xuICAgICAgICAgIHBzZXVkb0VsZW1lbnRzQ2FsbGJhY2sobXV0YXRpb25SZWNvcmQudGFyZ2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyZWVDYWxsYmFjayhtdXRhdGlvblJlY29yZC50YXJnZXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAobXV0YXRpb25SZWNvcmQudHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uUmVjb3JkLnRhcmdldC5wYXJlbnROb2RlICYmIGNvbmZpZy5zZWFyY2hQc2V1ZG9FbGVtZW50cykge1xuICAgICAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldC5wYXJlbnROb2RlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBpc1dhdGNoZWQobXV0YXRpb25SZWNvcmQudGFyZ2V0KSAmJiB+QVRUUklCVVRFU19XQVRDSEVEX0ZPUl9NVVRBVElPTi5pbmRleE9mKG11dGF0aW9uUmVjb3JkLmF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgIGlmIChtdXRhdGlvblJlY29yZC5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnICYmIGhhc1ByZWZpeEFuZEljb24obXV0YXRpb25SZWNvcmQudGFyZ2V0KSkge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIGljb25OYW1lXG4gICAgICAgICAgfSA9IGdldENhbm9uaWNhbEljb24oY2xhc3NBcnJheShtdXRhdGlvblJlY29yZC50YXJnZXQpKTtcbiAgICAgICAgICBtdXRhdGlvblJlY29yZC50YXJnZXQuc2V0QXR0cmlidXRlKERBVEFfUFJFRklYLCBwcmVmaXggfHwgZGVmYXVsdFByZWZpeCk7XG4gICAgICAgICAgaWYgKGljb25OYW1lKSBtdXRhdGlvblJlY29yZC50YXJnZXQuc2V0QXR0cmlidXRlKERBVEFfSUNPTiwgaWNvbk5hbWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhc0JlZW5SZXBsYWNlZChtdXRhdGlvblJlY29yZC50YXJnZXQpKSB7XG4gICAgICAgICAgbm9kZUNhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGlmICghSVNfRE9NKSByZXR1cm47XG4gIG1vJDEub2JzZXJ2ZShvYnNlcnZlTXV0YXRpb25zUm9vdCwge1xuICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgIGNoYXJhY3RlckRhdGE6IHRydWUsXG4gICAgc3VidHJlZTogdHJ1ZVxuICB9KTtcbn1cbmZ1bmN0aW9uIGRpc2Nvbm5lY3QoKSB7XG4gIGlmICghbW8kMSkgcmV0dXJuO1xuICBtbyQxLmRpc2Nvbm5lY3QoKTtcbn1cblxuZnVuY3Rpb24gc3R5bGVQYXJzZXIgKG5vZGUpIHtcbiAgY29uc3Qgc3R5bGUgPSBub2RlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgbGV0IHZhbCA9IFtdO1xuXG4gIGlmIChzdHlsZSkge1xuICAgIHZhbCA9IHN0eWxlLnNwbGl0KCc7JykucmVkdWNlKChhY2MsIHN0eWxlKSA9PiB7XG4gICAgICBjb25zdCBzdHlsZXMgPSBzdHlsZS5zcGxpdCgnOicpO1xuICAgICAgY29uc3QgcHJvcCA9IHN0eWxlc1swXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gc3R5bGVzLnNsaWNlKDEpO1xuXG4gICAgICBpZiAocHJvcCAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFjY1twcm9wXSA9IHZhbHVlLmpvaW4oJzonKS50cmltKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxuZnVuY3Rpb24gY2xhc3NQYXJzZXIgKG5vZGUpIHtcbiAgY29uc3QgZXhpc3RpbmdQcmVmaXggPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1wcmVmaXgnKTtcbiAgY29uc3QgZXhpc3RpbmdJY29uTmFtZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWljb24nKTtcbiAgY29uc3QgaW5uZXJUZXh0ID0gbm9kZS5pbm5lclRleHQgIT09IHVuZGVmaW5lZCA/IG5vZGUuaW5uZXJUZXh0LnRyaW0oKSA6ICcnO1xuICBsZXQgdmFsID0gZ2V0Q2Fub25pY2FsSWNvbihjbGFzc0FycmF5KG5vZGUpKTtcblxuICBpZiAoIXZhbC5wcmVmaXgpIHtcbiAgICB2YWwucHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nUHJlZml4ICYmIGV4aXN0aW5nSWNvbk5hbWUpIHtcbiAgICB2YWwucHJlZml4ID0gZXhpc3RpbmdQcmVmaXg7XG4gICAgdmFsLmljb25OYW1lID0gZXhpc3RpbmdJY29uTmFtZTtcbiAgfVxuXG4gIGlmICh2YWwuaWNvbk5hbWUgJiYgdmFsLnByZWZpeCkge1xuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBpZiAodmFsLnByZWZpeCAmJiBpbm5lclRleHQubGVuZ3RoID4gMCkge1xuICAgIHZhbC5pY29uTmFtZSA9IGJ5TGlnYXR1cmUodmFsLnByZWZpeCwgbm9kZS5pbm5lclRleHQpIHx8IGJ5VW5pY29kZSh2YWwucHJlZml4LCB0b0hleChub2RlLmlubmVyVGV4dCkpO1xuICB9XG5cbiAgaWYgKCF2YWwuaWNvbk5hbWUgJiYgY29uZmlnLmF1dG9GZXRjaFN2ZyAmJiBub2RlLmZpcnN0Q2hpbGQgJiYgbm9kZS5maXJzdENoaWxkLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgIHZhbC5pY29uTmFtZSA9IG5vZGUuZmlyc3RDaGlsZC5kYXRhO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxuZnVuY3Rpb24gYXR0cmlidXRlc1BhcnNlciAobm9kZSkge1xuICBjb25zdCBleHRyYUF0dHJpYnV0ZXMgPSB0b0FycmF5KG5vZGUuYXR0cmlidXRlcykucmVkdWNlKChhY2MsIGF0dHIpID0+IHtcbiAgICBpZiAoYWNjLm5hbWUgIT09ICdjbGFzcycgJiYgYWNjLm5hbWUgIT09ICdzdHlsZScpIHtcbiAgICAgIGFjY1thdHRyLm5hbWVdID0gYXR0ci52YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIGNvbnN0IHRpdGxlID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XG4gIGNvbnN0IHRpdGxlSWQgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS10aXRsZS1pZCcpO1xuXG4gIGlmIChjb25maWcuYXV0b0ExMXkpIHtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlc1snYXJpYS1sYWJlbGxlZGJ5J10gPSBcIlwiLmNvbmNhdChjb25maWcucmVwbGFjZW1lbnRDbGFzcywgXCItdGl0bGUtXCIpLmNvbmNhdCh0aXRsZUlkIHx8IG5leHRVbmlxdWVJZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzWydmb2N1c2FibGUnXSA9ICdmYWxzZSc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dHJhQXR0cmlidXRlcztcbn1cblxuZnVuY3Rpb24gYmxhbmtNZXRhKCkge1xuICByZXR1cm4ge1xuICAgIGljb25OYW1lOiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRpdGxlSWQ6IG51bGwsXG4gICAgcHJlZml4OiBudWxsLFxuICAgIHRyYW5zZm9ybTogbWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgc3ltYm9sOiBmYWxzZSxcbiAgICBtYXNrOiB7XG4gICAgICBpY29uTmFtZTogbnVsbCxcbiAgICAgIHByZWZpeDogbnVsbCxcbiAgICAgIHJlc3Q6IFtdXG4gICAgfSxcbiAgICBtYXNrSWQ6IG51bGwsXG4gICAgZXh0cmE6IHtcbiAgICAgIGNsYXNzZXM6IFtdLFxuICAgICAgc3R5bGVzOiB7fSxcbiAgICAgIGF0dHJpYnV0ZXM6IHt9XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gcGFyc2VNZXRhKG5vZGUpIHtcbiAgbGV0IHBhcnNlciA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgIHN0eWxlUGFyc2VyOiB0cnVlXG4gIH07XG4gIGNvbnN0IHtcbiAgICBpY29uTmFtZSxcbiAgICBwcmVmaXgsXG4gICAgcmVzdDogZXh0cmFDbGFzc2VzXG4gIH0gPSBjbGFzc1BhcnNlcihub2RlKTtcbiAgY29uc3QgZXh0cmFBdHRyaWJ1dGVzID0gYXR0cmlidXRlc1BhcnNlcihub2RlKTtcbiAgY29uc3QgcGx1Z2luTWV0YSA9IGNoYWluSG9va3MoJ3BhcnNlTm9kZUF0dHJpYnV0ZXMnLCB7fSwgbm9kZSk7XG4gIGxldCBleHRyYVN0eWxlcyA9IHBhcnNlci5zdHlsZVBhcnNlciA/IHN0eWxlUGFyc2VyKG5vZGUpIDogW107XG4gIHJldHVybiB7XG4gICAgaWNvbk5hbWUsXG4gICAgdGl0bGU6IG5vZGUuZ2V0QXR0cmlidXRlKCd0aXRsZScpLFxuICAgIHRpdGxlSWQ6IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWZhLXRpdGxlLWlkJyksXG4gICAgcHJlZml4LFxuICAgIHRyYW5zZm9ybTogbWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgbWFzazoge1xuICAgICAgaWNvbk5hbWU6IG51bGwsXG4gICAgICBwcmVmaXg6IG51bGwsXG4gICAgICByZXN0OiBbXVxuICAgIH0sXG4gICAgbWFza0lkOiBudWxsLFxuICAgIHN5bWJvbDogZmFsc2UsXG4gICAgZXh0cmE6IHtcbiAgICAgIGNsYXNzZXM6IGV4dHJhQ2xhc3NlcyxcbiAgICAgIHN0eWxlczogZXh0cmFTdHlsZXMsXG4gICAgICBhdHRyaWJ1dGVzOiBleHRyYUF0dHJpYnV0ZXNcbiAgICB9LFxuICAgIC4uLnBsdWdpbk1ldGFcbiAgfTtcbn1cblxuY29uc3Qge1xuICBzdHlsZXM6IHN0eWxlcyQyXG59ID0gbmFtZXNwYWNlO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZU11dGF0aW9uKG5vZGUpIHtcbiAgY29uc3Qgbm9kZU1ldGEgPSBjb25maWcuYXV0b1JlcGxhY2VTdmcgPT09ICduZXN0JyA/IHBhcnNlTWV0YShub2RlLCB7XG4gICAgc3R5bGVQYXJzZXI6IGZhbHNlXG4gIH0pIDogcGFyc2VNZXRhKG5vZGUpO1xuXG4gIGlmICh+bm9kZU1ldGEuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKExBWUVSU19URVhUX0NMQVNTTkFNRSkpIHtcbiAgICByZXR1cm4gY2FsbFByb3ZpZGVkKCdnZW5lcmF0ZUxheWVyc1RleHQnLCBub2RlLCBub2RlTWV0YSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uJywgbm9kZSwgbm9kZU1ldGEpO1xuICB9XG59XG5cbmxldCBrbm93blByZWZpeGVzID0gbmV3IFNldCgpO1xuRkFNSUxJRVMubWFwKGZhbWlseSA9PiB7XG4gIGtub3duUHJlZml4ZXMuYWRkKFwiZmEtXCIuY29uY2F0KGZhbWlseSkpO1xufSk7XG5PYmplY3Qua2V5cyhQUkVGSVhfVE9fU1RZTEVbYV0pLm1hcChrbm93blByZWZpeGVzLmFkZC5iaW5kKGtub3duUHJlZml4ZXMpKTtcbk9iamVjdC5rZXlzKFBSRUZJWF9UT19TVFlMRVtyXSkubWFwKGtub3duUHJlZml4ZXMuYWRkLmJpbmQoa25vd25QcmVmaXhlcykpO1xuT2JqZWN0LmtleXMoUFJFRklYX1RPX1NUWUxFW29dKS5tYXAoa25vd25QcmVmaXhlcy5hZGQuYmluZChrbm93blByZWZpeGVzKSk7XG5rbm93blByZWZpeGVzID0gWy4uLmtub3duUHJlZml4ZXNdO1xuXG5mdW5jdGlvbiBvblRyZWUocm9vdCkge1xuICBsZXQgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG51bGw7XG4gIGlmICghSVNfRE9NKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIGNvbnN0IGh0bWxDbGFzc0xpc3QgPSBET0NVTUVOVC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0O1xuXG4gIGNvbnN0IGhjbEFkZCA9IHN1ZmZpeCA9PiBodG1sQ2xhc3NMaXN0LmFkZChcIlwiLmNvbmNhdChIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MsIFwiLVwiKS5jb25jYXQoc3VmZml4KSk7XG5cbiAgY29uc3QgaGNsUmVtb3ZlID0gc3VmZml4ID0+IGh0bWxDbGFzc0xpc3QucmVtb3ZlKFwiXCIuY29uY2F0KEhUTUxfQ0xBU1NfSTJTVkdfQkFTRV9DTEFTUywgXCItXCIpLmNvbmNhdChzdWZmaXgpKTtcblxuICBjb25zdCBwcmVmaXhlcyA9IGNvbmZpZy5hdXRvRmV0Y2hTdmcgPyBrbm93blByZWZpeGVzIDogRkFNSUxJRVMubWFwKGYkJDEgPT4gXCJmYS1cIi5jb25jYXQoZiQkMSkpLmNvbmNhdChPYmplY3Qua2V5cyhzdHlsZXMkMikpO1xuXG4gIGlmICghcHJlZml4ZXMuaW5jbHVkZXMoJ2ZhJykpIHtcbiAgICBwcmVmaXhlcy5wdXNoKCdmYScpO1xuICB9XG5cbiAgY29uc3QgcHJlZml4ZXNEb21RdWVyeSA9IFtcIi5cIi5jb25jYXQoTEFZRVJTX1RFWFRfQ0xBU1NOQU1FLCBcIjpub3QoW1wiKS5jb25jYXQoREFUQV9GQV9JMlNWRywgXCJdKVwiKV0uY29uY2F0KHByZWZpeGVzLm1hcChwJCQxID0+IFwiLlwiLmNvbmNhdChwJCQxLCBcIjpub3QoW1wiKS5jb25jYXQoREFUQV9GQV9JMlNWRywgXCJdKVwiKSkpLmpvaW4oJywgJyk7XG5cbiAgaWYgKHByZWZpeGVzRG9tUXVlcnkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgbGV0IGNhbmRpZGF0ZXMgPSBbXTtcblxuICB0cnkge1xuICAgIGNhbmRpZGF0ZXMgPSB0b0FycmF5KHJvb3QucXVlcnlTZWxlY3RvckFsbChwcmVmaXhlc0RvbVF1ZXJ5KSk7XG4gIH0gY2F0Y2ggKGUkJDEpIHsvLyBub29wXG4gIH1cblxuICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgaGNsQWRkKCdwZW5kaW5nJyk7XG4gICAgaGNsUmVtb3ZlKCdjb21wbGV0ZScpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGNvbnN0IG1hcmsgPSBwZXJmLmJlZ2luKCdvblRyZWUnKTtcbiAgY29uc3QgbXV0YXRpb25zID0gY2FuZGlkYXRlcy5yZWR1Y2UoKGFjYywgbm9kZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtdXRhdGlvbiA9IGdlbmVyYXRlTXV0YXRpb24obm9kZSk7XG5cbiAgICAgIGlmIChtdXRhdGlvbikge1xuICAgICAgICBhY2MucHVzaChtdXRhdGlvbik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSQkMSkge1xuICAgICAgaWYgKCFQUk9EVUNUSU9OKSB7XG4gICAgICAgIGlmIChlJCQxLm5hbWUgPT09ICdNaXNzaW5nSWNvbicpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUkJDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIFByb21pc2UuYWxsKG11dGF0aW9ucykudGhlbihyZXNvbHZlZE11dGF0aW9ucyA9PiB7XG4gICAgICBwZXJmb3JtKHJlc29sdmVkTXV0YXRpb25zLCAoKSA9PiB7XG4gICAgICAgIGhjbEFkZCgnYWN0aXZlJyk7XG4gICAgICAgIGhjbEFkZCgnY29tcGxldGUnKTtcbiAgICAgICAgaGNsUmVtb3ZlKCdwZW5kaW5nJyk7XG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIGNhbGxiYWNrKCk7XG4gICAgICAgIG1hcmsoKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goZSQkMSA9PiB7XG4gICAgICBtYXJrKCk7XG4gICAgICByZWplY3QoZSQkMSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbk5vZGUobm9kZSkge1xuICBsZXQgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG51bGw7XG4gIGdlbmVyYXRlTXV0YXRpb24obm9kZSkudGhlbihtdXRhdGlvbiA9PiB7XG4gICAgaWYgKG11dGF0aW9uKSB7XG4gICAgICBwZXJmb3JtKFttdXRhdGlvbl0sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSWNvbnMobmV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gKG1heWJlSWNvbkRlZmluaXRpb24pIHtcbiAgICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICBjb25zdCBpY29uRGVmaW5pdGlvbiA9IChtYXliZUljb25EZWZpbml0aW9uIHx8IHt9KS5pY29uID8gbWF5YmVJY29uRGVmaW5pdGlvbiA6IGZpbmRJY29uRGVmaW5pdGlvbihtYXliZUljb25EZWZpbml0aW9uIHx8IHt9KTtcbiAgICBsZXQge1xuICAgICAgbWFza1xuICAgIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAobWFzaykge1xuICAgICAgbWFzayA9IChtYXNrIHx8IHt9KS5pY29uID8gbWFzayA6IGZpbmRJY29uRGVmaW5pdGlvbihtYXNrIHx8IHt9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChpY29uRGVmaW5pdGlvbiwgeyAuLi5wYXJhbXMsXG4gICAgICBtYXNrXG4gICAgfSk7XG4gIH07XG59XG5cbmNvbnN0IHJlbmRlciA9IGZ1bmN0aW9uIChpY29uRGVmaW5pdGlvbikge1xuICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgY29uc3Qge1xuICAgIHRyYW5zZm9ybSA9IG1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgIHN5bWJvbCA9IGZhbHNlLFxuICAgIG1hc2sgPSBudWxsLFxuICAgIG1hc2tJZCA9IG51bGwsXG4gICAgdGl0bGUgPSBudWxsLFxuICAgIHRpdGxlSWQgPSBudWxsLFxuICAgIGNsYXNzZXMgPSBbXSxcbiAgICBhdHRyaWJ1dGVzID0ge30sXG4gICAgc3R5bGVzID0ge31cbiAgfSA9IHBhcmFtcztcbiAgaWYgKCFpY29uRGVmaW5pdGlvbikgcmV0dXJuO1xuICBjb25zdCB7XG4gICAgcHJlZml4LFxuICAgIGljb25OYW1lLFxuICAgIGljb25cbiAgfSA9IGljb25EZWZpbml0aW9uO1xuICByZXR1cm4gZG9tVmFyaWFudHMoe1xuICAgIHR5cGU6ICdpY29uJyxcbiAgICAuLi5pY29uRGVmaW5pdGlvblxuICB9LCAoKSA9PiB7XG4gICAgY2FsbEhvb2tzKCdiZWZvcmVET01FbGVtZW50Q3JlYXRpb24nLCB7XG4gICAgICBpY29uRGVmaW5pdGlvbixcbiAgICAgIHBhcmFtc1xuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZy5hdXRvQTExeSkge1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FyaWEtbGFiZWxsZWRieSddID0gXCJcIi5jb25jYXQoY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MsIFwiLXRpdGxlLVwiKS5jb25jYXQodGl0bGVJZCB8fCBuZXh0VW5pcXVlSWQoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICAgICAgICBhdHRyaWJ1dGVzWydmb2N1c2FibGUnXSA9ICdmYWxzZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ha2VJbmxpbmVTdmdBYnN0cmFjdCh7XG4gICAgICBpY29uczoge1xuICAgICAgICBtYWluOiBhc0ZvdW5kSWNvbihpY29uKSxcbiAgICAgICAgbWFzazogbWFzayA/IGFzRm91bmRJY29uKG1hc2suaWNvbikgOiB7XG4gICAgICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiBudWxsLFxuICAgICAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgICAgICBpY29uOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJlZml4LFxuICAgICAgaWNvbk5hbWUsXG4gICAgICB0cmFuc2Zvcm06IHsgLi4ubWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgICAgIC4uLnRyYW5zZm9ybVxuICAgICAgfSxcbiAgICAgIHN5bWJvbCxcbiAgICAgIHRpdGxlLFxuICAgICAgbWFza0lkLFxuICAgICAgdGl0bGVJZCxcbiAgICAgIGV4dHJhOiB7XG4gICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgY2xhc3Nlc1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG52YXIgUmVwbGFjZUVsZW1lbnRzID0ge1xuICBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246IHJlc29sdmVJY29ucyhyZW5kZXIpXG4gICAgfTtcbiAgfSxcblxuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyhhY2N1bXVsYXRvcikge1xuICAgICAgICBhY2N1bXVsYXRvci50cmVlQ2FsbGJhY2sgPSBvblRyZWU7XG4gICAgICAgIGFjY3VtdWxhdG9yLm5vZGVDYWxsYmFjayA9IG9uTm9kZTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfSxcblxuICBwcm92aWRlcyhwcm92aWRlcnMkJDEpIHtcbiAgICBwcm92aWRlcnMkJDEuaTJzdmcgPSBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG5vZGUgPSBET0NVTUVOVCxcbiAgICAgICAgY2FsbGJhY2sgPSAoKSA9PiB7fVxuICAgICAgfSA9IHBhcmFtcztcbiAgICAgIHJldHVybiBvblRyZWUobm9kZSwgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBwcm92aWRlcnMkJDEuZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uID0gZnVuY3Rpb24gKG5vZGUsIG5vZGVNZXRhKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGljb25OYW1lLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgdGl0bGVJZCxcbiAgICAgICAgcHJlZml4LFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIHN5bWJvbCxcbiAgICAgICAgbWFzayxcbiAgICAgICAgbWFza0lkLFxuICAgICAgICBleHRyYVxuICAgICAgfSA9IG5vZGVNZXRhO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgUHJvbWlzZS5hbGwoW2ZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpLCBtYXNrLmljb25OYW1lID8gZmluZEljb24obWFzay5pY29uTmFtZSwgbWFzay5wcmVmaXgpIDogUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICBmb3VuZDogZmFsc2UsXG4gICAgICAgICAgd2lkdGg6IDUxMixcbiAgICAgICAgICBoZWlnaHQ6IDUxMixcbiAgICAgICAgICBpY29uOiB7fVxuICAgICAgICB9KV0pLnRoZW4oX3JlZiA9PiB7XG4gICAgICAgICAgbGV0IFttYWluLCBtYXNrXSA9IF9yZWY7XG4gICAgICAgICAgcmVzb2x2ZShbbm9kZSwgbWFrZUlubGluZVN2Z0Fic3RyYWN0KHtcbiAgICAgICAgICAgIGljb25zOiB7XG4gICAgICAgICAgICAgIG1haW4sXG4gICAgICAgICAgICAgIG1hc2tcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSxcbiAgICAgICAgICAgIHN5bWJvbCxcbiAgICAgICAgICAgIG1hc2tJZCxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgdGl0bGVJZCxcbiAgICAgICAgICAgIGV4dHJhLFxuICAgICAgICAgICAgd2F0Y2hhYmxlOiB0cnVlXG4gICAgICAgICAgfSldKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcm92aWRlcnMkJDEuZ2VuZXJhdGVBYnN0cmFjdEljb24gPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIGxldCB7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICBtYWluLFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIHN0eWxlc1xuICAgICAgfSA9IF9yZWYyO1xuICAgICAgY29uc3Qgc3R5bGVTdHJpbmcgPSBqb2luU3R5bGVzKHN0eWxlcyk7XG5cbiAgICAgIGlmIChzdHlsZVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF0dHJpYnV0ZXNbJ3N0eWxlJ10gPSBzdHlsZVN0cmluZztcbiAgICAgIH1cblxuICAgICAgbGV0IG5leHRDaGlsZDtcblxuICAgICAgaWYgKHRyYW5zZm9ybUlzTWVhbmluZ2Z1bCh0cmFuc2Zvcm0pKSB7XG4gICAgICAgIG5leHRDaGlsZCA9IGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nJywge1xuICAgICAgICAgIG1haW4sXG4gICAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBtYWluLndpZHRoLFxuICAgICAgICAgIGljb25XaWR0aDogbWFpbi53aWR0aFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2hpbGRyZW4ucHVzaChuZXh0Q2hpbGQgfHwgbWFpbi5pY29uKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzXG4gICAgICB9O1xuICAgIH07XG4gIH1cblxufTtcblxudmFyIExheWVycyA9IHtcbiAgbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBsYXllcihhc3NlbWJsZXIpIHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBjbGFzc2VzID0gW11cbiAgICAgICAgfSA9IHBhcmFtcztcbiAgICAgICAgcmV0dXJuIGRvbVZhcmlhbnRzKHtcbiAgICAgICAgICB0eXBlOiAnbGF5ZXInXG4gICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICBjYWxsSG9va3MoJ2JlZm9yZURPTUVsZW1lbnRDcmVhdGlvbicsIHtcbiAgICAgICAgICAgIGFzc2VtYmxlcixcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICAgIGFzc2VtYmxlcihhcmdzID0+IHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoYXJncykgPyBhcmdzLm1hcChhID0+IHtcbiAgICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoYS5hYnN0cmFjdCk7XG4gICAgICAgICAgICB9KSA6IGNoaWxkcmVuID0gY2hpbGRyZW4uY29uY2F0KGFyZ3MuYWJzdHJhY3QpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBbe1xuICAgICAgICAgICAgdGFnOiAnc3BhbicsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgIGNsYXNzOiBbXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItbGF5ZXJzXCIpLCAuLi5jbGFzc2VzXS5qb2luKCcgJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgIH1dO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgIH07XG4gIH1cblxufTtcblxudmFyIExheWVyc0NvdW50ZXIgPSB7XG4gIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY291bnRlcihjb250ZW50KSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgdGl0bGUgPSBudWxsLFxuICAgICAgICAgIGNsYXNzZXMgPSBbXSxcbiAgICAgICAgICBhdHRyaWJ1dGVzID0ge30sXG4gICAgICAgICAgc3R5bGVzID0ge31cbiAgICAgICAgfSA9IHBhcmFtcztcbiAgICAgICAgcmV0dXJuIGRvbVZhcmlhbnRzKHtcbiAgICAgICAgICB0eXBlOiAnY291bnRlcicsXG4gICAgICAgICAgY29udGVudFxuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgY2FsbEhvb2tzKCdiZWZvcmVET01FbGVtZW50Q3JlYXRpb24nLCB7XG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIG1ha2VMYXllcnNDb3VudGVyQWJzdHJhY3Qoe1xuICAgICAgICAgICAgY29udGVudDogY29udGVudC50b1N0cmluZygpLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICBzdHlsZXMsXG4gICAgICAgICAgICAgIGNsYXNzZXM6IFtcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1sYXllcnMtY291bnRlclwiKSwgLi4uY2xhc3Nlc11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG5cbn07XG5cbnZhciBMYXllcnNUZXh0ID0ge1xuICBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQoY29udGVudCkge1xuICAgICAgICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRyYW5zZm9ybSA9IG1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgICAgICAgIHRpdGxlID0gbnVsbCxcbiAgICAgICAgICBjbGFzc2VzID0gW10sXG4gICAgICAgICAgYXR0cmlidXRlcyA9IHt9LFxuICAgICAgICAgIHN0eWxlcyA9IHt9XG4gICAgICAgIH0gPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiBkb21WYXJpYW50cyh7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIGNhbGxIb29rcygnYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uJywge1xuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHtcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHsgLi4ubWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgICAgICAgICAgIC4uLnRyYW5zZm9ybVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgc3R5bGVzLFxuICAgICAgICAgICAgICBjbGFzc2VzOiBbXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItbGF5ZXJzLXRleHRcIiksIC4uLmNsYXNzZXNdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfSxcblxuICBwcm92aWRlcyhwcm92aWRlcnMkJDEpIHtcbiAgICBwcm92aWRlcnMkJDEuZ2VuZXJhdGVMYXllcnNUZXh0ID0gZnVuY3Rpb24gKG5vZGUsIG5vZGVNZXRhKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHRpdGxlLFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIGV4dHJhXG4gICAgICB9ID0gbm9kZU1ldGE7XG4gICAgICBsZXQgd2lkdGggPSBudWxsO1xuICAgICAgbGV0IGhlaWdodCA9IG51bGw7XG5cbiAgICAgIGlmIChJU19JRSkge1xuICAgICAgICBjb25zdCBjb21wdXRlZEZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5mb250U2l6ZSwgMTApO1xuICAgICAgICBjb25zdCBib3VuZGluZ0NsaWVudFJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB3aWR0aCA9IGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCAvIGNvbXB1dGVkRm9udFNpemU7XG4gICAgICAgIGhlaWdodCA9IGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQgLyBjb21wdXRlZEZvbnRTaXplO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnLmF1dG9BMTF5ICYmICF0aXRsZSkge1xuICAgICAgICBleHRyYS5hdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtub2RlLCBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHtcbiAgICAgICAgY29udGVudDogbm9kZS5pbm5lckhUTUwsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHRyYW5zZm9ybSxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICB3YXRjaGFibGU6IHRydWVcbiAgICAgIH0pXSk7XG4gICAgfTtcbiAgfVxuXG59O1xuXG5jb25zdCBDTEVBTl9DT05URU5UX1BBVFRFUk4gPSBuZXcgUmVnRXhwKCdcXHV7MjJ9JywgJ3VnJyk7XG5jb25zdCBTRUNPTkRBUllfVU5JQ09ERV9SQU5HRSA9IFsxMTA1OTIwLCAxMTEyMzE5XTtcbmNvbnN0IF9GT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYID0geyAuLi57XG4gICAgRm9udEF3ZXNvbWU6IHtcbiAgICAgIG5vcm1hbDogJ2ZhcycsXG4gICAgICA0MDA6ICdmYXMnXG4gICAgfVxuICB9LFxuICAuLi5lbyxcbiAgLi4uYW8sXG4gIC4uLm1vXG59O1xuY29uc3QgRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCA9IE9iamVjdC5rZXlzKF9GT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gIGFjY1trZXkudG9Mb3dlckNhc2UoKV0gPSBfRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWFtrZXldO1xuICByZXR1cm4gYWNjO1xufSwge30pO1xuY29uc3QgRk9OVF9GQU1JTFlfV0VJR0hUX0ZBTExCQUNLID0gT2JqZWN0LmtleXMoRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCkucmVkdWNlKChhY2MsIGZvbnRGYW1pbHkpID0+IHtcbiAgY29uc3Qgd2VpZ2h0cyA9IEZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVhbZm9udEZhbWlseV07XG4gIGFjY1tmb250RmFtaWx5XSA9IHdlaWdodHNbOTAwXSB8fCBbLi4uT2JqZWN0LmVudHJpZXMod2VpZ2h0cyldWzBdWzFdO1xuICByZXR1cm4gYWNjO1xufSwge30pO1xuZnVuY3Rpb24gaGV4VmFsdWVGcm9tQ29udGVudChjb250ZW50KSB7XG4gIGNvbnN0IGNsZWFuZWQgPSBjb250ZW50LnJlcGxhY2UoQ0xFQU5fQ09OVEVOVF9QQVRURVJOLCAnJyk7XG4gIGNvbnN0IGNvZGVQb2ludCA9IGNvZGVQb2ludEF0KGNsZWFuZWQsIDApO1xuICBjb25zdCBpc1ByZXBlbmRUZW4gPSBjb2RlUG9pbnQgPj0gU0VDT05EQVJZX1VOSUNPREVfUkFOR0VbMF0gJiYgY29kZVBvaW50IDw9IFNFQ09OREFSWV9VTklDT0RFX1JBTkdFWzFdO1xuICBjb25zdCBpc0RvdWJsZWQgPSBjbGVhbmVkLmxlbmd0aCA9PT0gMiA/IGNsZWFuZWRbMF0gPT09IGNsZWFuZWRbMV0gOiBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogaXNEb3VibGVkID8gdG9IZXgoY2xlYW5lZFswXSkgOiB0b0hleChjbGVhbmVkKSxcbiAgICBpc1NlY29uZGFyeTogaXNQcmVwZW5kVGVuIHx8IGlzRG91YmxlZFxuICB9O1xufVxuZnVuY3Rpb24gZ2V0UHJlZml4KGZvbnRGYW1pbHksIGZvbnRXZWlnaHQpIHtcbiAgY29uc3QgZm9udEZhbWlseVNhbml0aXplZCA9IGZvbnRGYW1pbHkucmVwbGFjZSgvXlsnXCJdfFsnXCJdJC9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgZm9udFdlaWdodEludGVnZXIgPSBwYXJzZUludChmb250V2VpZ2h0KTtcbiAgY29uc3QgZm9udFdlaWdodFNhbml0aXplZCA9IGlzTmFOKGZvbnRXZWlnaHRJbnRlZ2VyKSA/ICdub3JtYWwnIDogZm9udFdlaWdodEludGVnZXI7XG4gIHJldHVybiAoRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWFtmb250RmFtaWx5U2FuaXRpemVkXSB8fCB7fSlbZm9udFdlaWdodFNhbml0aXplZF0gfHwgRk9OVF9GQU1JTFlfV0VJR0hUX0ZBTExCQUNLW2ZvbnRGYW1pbHlTYW5pdGl6ZWRdO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgcG9zaXRpb24pIHtcbiAgY29uc3QgcGVuZGluZ0F0dHJpYnV0ZSA9IFwiXCIuY29uY2F0KERBVEFfRkFfUFNFVURPX0VMRU1FTlRfUEVORElORykuY29uY2F0KHBvc2l0aW9uLnJlcGxhY2UoJzonLCAnLScpKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSkgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgbm9kZSBpcyBhbHJlYWR5IGJlaW5nIHByb2Nlc3NlZFxuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IHRvQXJyYXkobm9kZS5jaGlsZHJlbik7XG4gICAgY29uc3QgYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQgPSBjaGlsZHJlbi5maWx0ZXIoYyA9PiBjLmdldEF0dHJpYnV0ZShEQVRBX0ZBX1BTRVVET19FTEVNRU5UKSA9PT0gcG9zaXRpb24pWzBdO1xuICAgIGNvbnN0IHN0eWxlcyA9IFdJTkRPVy5nZXRDb21wdXRlZFN0eWxlKG5vZGUsIHBvc2l0aW9uKTtcbiAgICBjb25zdCBmb250RmFtaWx5ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5Jyk7XG4gICAgY29uc3QgZm9udEZhbWlseU1hdGNoID0gZm9udEZhbWlseS5tYXRjaChGT05UX0ZBTUlMWV9QQVRURVJOKTtcbiAgICBjb25zdCBmb250V2VpZ2h0ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtd2VpZ2h0Jyk7XG4gICAgY29uc3QgY29udGVudCA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdjb250ZW50Jyk7XG5cbiAgICBpZiAoYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQgJiYgIWZvbnRGYW1pbHlNYXRjaCkge1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwcm9jZXNzZWQgaXQgYnV0IHRoZSBjdXJyZW50IGNvbXB1dGVkIHN0eWxlIGRvZXMgbm90IHJlc3VsdCBpbiBhIGZvbnQtZmFtaWx5LFxuICAgICAgLy8gdGhhdCBwcm9iYWJseSBtZWFucyB0aGF0IGEgY2xhc3MgbmFtZSB0aGF0IHdhcyBwcmV2aW91c2x5IHByZXNlbnQgdG8gbWFrZSB0aGUgaWNvbiBoYXMgYmVlblxuICAgICAgLy8gcmVtb3ZlZC4gU28gd2Ugbm93IHNob3VsZCBkZWxldGUgdGhlIGljb24uXG4gICAgICBub2RlLnJlbW92ZUNoaWxkKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50KTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSBlbHNlIGlmIChmb250RmFtaWx5TWF0Y2ggJiYgY29udGVudCAhPT0gJ25vbmUnICYmIGNvbnRlbnQgIT09ICcnKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKTtcbiAgICAgIGxldCBwcmVmaXggPSBnZXRQcmVmaXgoZm9udEZhbWlseSwgZm9udFdlaWdodCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHZhbHVlOiBoZXhWYWx1ZSxcbiAgICAgICAgaXNTZWNvbmRhcnlcbiAgICAgIH0gPSBoZXhWYWx1ZUZyb21Db250ZW50KGNvbnRlbnQpO1xuICAgICAgY29uc3QgaXNWNCA9IGZvbnRGYW1pbHlNYXRjaFswXS5zdGFydHNXaXRoKCdGb250QXdlc29tZScpO1xuICAgICAgbGV0IGljb25OYW1lID0gYnlVbmljb2RlKHByZWZpeCwgaGV4VmFsdWUpO1xuICAgICAgbGV0IGljb25JZGVudGlmaWVyID0gaWNvbk5hbWU7XG5cbiAgICAgIGlmIChpc1Y0KSB7XG4gICAgICAgIGNvbnN0IGljb25OYW1lNCA9IGJ5T2xkVW5pY29kZShoZXhWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGljb25OYW1lNC5pY29uTmFtZSAmJiBpY29uTmFtZTQucHJlZml4KSB7XG4gICAgICAgICAgaWNvbk5hbWUgPSBpY29uTmFtZTQuaWNvbk5hbWU7XG4gICAgICAgICAgcHJlZml4ID0gaWNvbk5hbWU0LnByZWZpeDtcbiAgICAgICAgfVxuICAgICAgfSAvLyBPbmx5IGNvbnZlcnQgdGhlIHBzZXVkbyBlbGVtZW50IGluIHRoaXMgOjpiZWZvcmUvOjphZnRlciBwb3NpdGlvbiBpbnRvIGFuIGljb24gaWYgd2UgaGF2ZW4ndFxuICAgICAgLy8gYWxyZWFkeSBkb25lIHNvIHdpdGggdGhlIHNhbWUgcHJlZml4IGFuZCBpY29uTmFtZVxuXG5cbiAgICAgIGlmIChpY29uTmFtZSAmJiAhaXNTZWNvbmRhcnkgJiYgKCFhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCB8fCBhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudC5nZXRBdHRyaWJ1dGUoREFUQV9QUkVGSVgpICE9PSBwcmVmaXggfHwgYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQuZ2V0QXR0cmlidXRlKERBVEFfSUNPTikgIT09IGljb25JZGVudGlmaWVyKSkge1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShwZW5kaW5nQXR0cmlidXRlLCBpY29uSWRlbnRpZmllcik7XG5cbiAgICAgICAgaWYgKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50KSB7XG4gICAgICAgICAgLy8gRGVsZXRlIHRoZSBvbGQgb25lLCBzaW5jZSB3ZSdyZSByZXBsYWNpbmcgaXQgd2l0aCBhIG5ldyBvbmVcbiAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1ldGEgPSBibGFua01ldGEoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGV4dHJhXG4gICAgICAgIH0gPSBtZXRhO1xuICAgICAgICBleHRyYS5hdHRyaWJ1dGVzW0RBVEFfRkFfUFNFVURPX0VMRU1FTlRdID0gcG9zaXRpb247XG4gICAgICAgIGZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpLnRoZW4obWFpbiA9PiB7XG4gICAgICAgICAgY29uc3QgYWJzdHJhY3QgPSBtYWtlSW5saW5lU3ZnQWJzdHJhY3QoeyAuLi5tZXRhLFxuICAgICAgICAgICAgaWNvbnM6IHtcbiAgICAgICAgICAgICAgbWFpbixcbiAgICAgICAgICAgICAgbWFzazogZW1wdHlDYW5vbmljYWxJY29uKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZTogaWNvbklkZW50aWZpZXIsXG4gICAgICAgICAgICBleHRyYSxcbiAgICAgICAgICAgIHdhdGNoYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBET0NVTUVOVC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3N2ZycpO1xuXG4gICAgICAgICAgaWYgKHBvc2l0aW9uID09PSAnOjpiZWZvcmUnKSB7XG4gICAgICAgICAgICBub2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlLmZpcnN0Q2hpbGQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVsZW1lbnQub3V0ZXJIVE1MID0gYWJzdHJhY3QubWFwKGEgPT4gdG9IdG1sKGEpKS5qb2luKCdcXG4nKTtcbiAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShwZW5kaW5nQXR0cmlidXRlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pLmNhdGNoKHJlamVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlKG5vZGUpIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKFtyZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgJzo6YmVmb3JlJyksIHJlcGxhY2VGb3JQb3NpdGlvbihub2RlLCAnOjphZnRlcicpXSk7XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NhYmxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZSAhPT0gZG9jdW1lbnQuaGVhZCAmJiAhflRBR05BTUVTX1RPX1NLSVBfRk9SX1BTRVVET0VMRU1FTlRTLmluZGV4T2Yobm9kZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpICYmICFub2RlLmdldEF0dHJpYnV0ZShEQVRBX0ZBX1BTRVVET19FTEVNRU5UKSAmJiAoIW5vZGUucGFyZW50Tm9kZSB8fCBub2RlLnBhcmVudE5vZGUudGFnTmFtZSAhPT0gJ3N2ZycpO1xufVxuXG5mdW5jdGlvbiBzZWFyY2hQc2V1ZG9FbGVtZW50cyhyb290KSB7XG4gIGlmICghSVNfRE9NKSByZXR1cm47XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRvQXJyYXkocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcqJykpLmZpbHRlcihwcm9jZXNzYWJsZSkubWFwKHJlcGxhY2UpO1xuICAgIGNvbnN0IGVuZCA9IHBlcmYuYmVnaW4oJ3NlYXJjaFBzZXVkb0VsZW1lbnRzJyk7XG4gICAgZGlzYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgUHJvbWlzZS5hbGwob3BlcmF0aW9ucykudGhlbigoKSA9PiB7XG4gICAgICBlbmQoKTtcbiAgICAgIGVuYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgZW5kKCk7XG4gICAgICBlbmFibGVPYnNlcnZhdGlvbigpO1xuICAgICAgcmVqZWN0KCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG52YXIgUHNldWRvRWxlbWVudHMgPSB7XG4gIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzKGFjY3VtdWxhdG9yKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2sgPSBzZWFyY2hQc2V1ZG9FbGVtZW50cztcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfSxcblxuICBwcm92aWRlcyhwcm92aWRlcnMpIHtcbiAgICBwcm92aWRlcnMucHNldWRvRWxlbWVudHMyc3ZnID0gZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBub2RlID0gRE9DVU1FTlRcbiAgICAgIH0gPSBwYXJhbXM7XG5cbiAgICAgIGlmIChjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgc2VhcmNoUHNldWRvRWxlbWVudHMobm9kZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG59O1xuXG5sZXQgX3Vud2F0Y2hlZCA9IGZhbHNlO1xudmFyIE11dGF0aW9uT2JzZXJ2ZXIkMSA9IHtcbiAgbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBkb206IHtcbiAgICAgICAgdW53YXRjaCgpIHtcbiAgICAgICAgICBkaXNhYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgICAgICBfdW53YXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfTtcbiAgfSxcblxuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm9vdHN0cmFwKCkge1xuICAgICAgICBvYnNlcnZlKGNoYWluSG9va3MoJ211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MnLCB7fSkpO1xuICAgICAgfSxcblxuICAgICAgbm9BdXRvKCkge1xuICAgICAgICBkaXNjb25uZWN0KCk7XG4gICAgICB9LFxuXG4gICAgICB3YXRjaChwYXJhbXMpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIG9ic2VydmVNdXRhdGlvbnNSb290XG4gICAgICAgIH0gPSBwYXJhbXM7XG5cbiAgICAgICAgaWYgKF91bndhdGNoZWQpIHtcbiAgICAgICAgICBlbmFibGVPYnNlcnZhdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmUoY2hhaW5Ib29rcygnbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcycsIHtcbiAgICAgICAgICAgIG9ic2VydmVNdXRhdGlvbnNSb290XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG5cbn07XG5cbmNvbnN0IHBhcnNlVHJhbnNmb3JtU3RyaW5nID0gdHJhbnNmb3JtU3RyaW5nID0+IHtcbiAgbGV0IHRyYW5zZm9ybSA9IHtcbiAgICBzaXplOiAxNixcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgZmxpcFg6IGZhbHNlLFxuICAgIGZsaXBZOiBmYWxzZSxcbiAgICByb3RhdGU6IDBcbiAgfTtcbiAgcmV0dXJuIHRyYW5zZm9ybVN0cmluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykucmVkdWNlKChhY2MsIG4pID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IG4udG9Mb3dlckNhc2UoKS5zcGxpdCgnLScpO1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF07XG4gICAgbGV0IHJlc3QgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCctJyk7XG5cbiAgICBpZiAoZmlyc3QgJiYgcmVzdCA9PT0gJ2gnKSB7XG4gICAgICBhY2MuZmxpcFggPSB0cnVlO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICBpZiAoZmlyc3QgJiYgcmVzdCA9PT0gJ3YnKSB7XG4gICAgICBhY2MuZmxpcFkgPSB0cnVlO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICByZXN0ID0gcGFyc2VGbG9hdChyZXN0KTtcblxuICAgIGlmIChpc05hTihyZXN0KSkge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpcnN0KSB7XG4gICAgICBjYXNlICdncm93JzpcbiAgICAgICAgYWNjLnNpemUgPSBhY2Muc2l6ZSArIHJlc3Q7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzaHJpbmsnOlxuICAgICAgICBhY2Muc2l6ZSA9IGFjYy5zaXplIC0gcmVzdDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBhY2MueCA9IGFjYy54IC0gcmVzdDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgYWNjLnggPSBhY2MueCArIHJlc3Q7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICd1cCc6XG4gICAgICAgIGFjYy55ID0gYWNjLnkgLSByZXN0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGFjYy55ID0gYWNjLnkgKyByZXN0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncm90YXRlJzpcbiAgICAgICAgYWNjLnJvdGF0ZSA9IGFjYy5yb3RhdGUgKyByZXN0O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB0cmFuc2Zvcm0pO1xufTtcbnZhciBQb3dlclRyYW5zZm9ybXMgPSB7XG4gIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyc2U6IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm1TdHJpbmcgPT4ge1xuICAgICAgICAgIHJldHVybiBwYXJzZVRyYW5zZm9ybVN0cmluZyh0cmFuc2Zvcm1TdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcblxuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyc2VOb2RlQXR0cmlidXRlcyhhY2N1bXVsYXRvciwgbm9kZSkge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1TdHJpbmcgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS10cmFuc2Zvcm0nKTtcblxuICAgICAgICBpZiAodHJhbnNmb3JtU3RyaW5nKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IudHJhbnNmb3JtID0gcGFyc2VUcmFuc2Zvcm1TdHJpbmcodHJhbnNmb3JtU3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cblxuICAgIH07XG4gIH0sXG5cbiAgcHJvdmlkZXMocHJvdmlkZXJzKSB7XG4gICAgcHJvdmlkZXJzLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICBsZXQge1xuICAgICAgICBtYWluLFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIGNvbnRhaW5lcldpZHRoLFxuICAgICAgICBpY29uV2lkdGhcbiAgICAgIH0gPSBfcmVmO1xuICAgICAgY29uc3Qgb3V0ZXIgPSB7XG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoXCIuY29uY2F0KGNvbnRhaW5lcldpZHRoIC8gMiwgXCIgMjU2KVwiKVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGlubmVyVHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54ICogMzIsIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS55ICogMzIsIFwiKSBcIik7XG4gICAgICBjb25zdCBpbm5lclNjYWxlID0gXCJzY2FsZShcIi5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFggPyAtMSA6IDEpLCBcIiwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0uc2l6ZSAvIDE2ICogKHRyYW5zZm9ybS5mbGlwWSA/IC0xIDogMSksIFwiKSBcIik7XG4gICAgICBjb25zdCBpbm5lclJvdGF0ZSA9IFwicm90YXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ucm90YXRlLCBcIiAwIDApXCIpO1xuICAgICAgY29uc3QgaW5uZXIgPSB7XG4gICAgICAgIHRyYW5zZm9ybTogXCJcIi5jb25jYXQoaW5uZXJUcmFuc2xhdGUsIFwiIFwiKS5jb25jYXQoaW5uZXJTY2FsZSwgXCIgXCIpLmNvbmNhdChpbm5lclJvdGF0ZSlcbiAgICAgIH07XG4gICAgICBjb25zdCBwYXRoID0ge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKFwiLmNvbmNhdChpY29uV2lkdGggLyAyICogLTEsIFwiIC0yNTYpXCIpXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3BlcmF0aW9ucyA9IHtcbiAgICAgICAgb3V0ZXIsXG4gICAgICAgIGlubmVyLFxuICAgICAgICBwYXRoXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGFnOiAnZycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4ub3BlcmF0aW9ucy5vdXRlclxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLm9wZXJhdGlvbnMuaW5uZXJcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgICAgdGFnOiBtYWluLmljb24udGFnLFxuICAgICAgICAgICAgY2hpbGRyZW46IG1haW4uaWNvbi5jaGlsZHJlbixcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4ubWFpbi5pY29uLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgIC4uLm9wZXJhdGlvbnMucGF0aFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH07XG4gIH1cblxufTtcblxuY29uc3QgQUxMX1NQQUNFID0ge1xuICB4OiAwLFxuICB5OiAwLFxuICB3aWR0aDogJzEwMCUnLFxuICBoZWlnaHQ6ICcxMDAlJ1xufTtcblxuZnVuY3Rpb24gZmlsbEJsYWNrKGFic3RyYWN0KSB7XG4gIGxldCBmb3JjZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcblxuICBpZiAoYWJzdHJhY3QuYXR0cmlidXRlcyAmJiAoYWJzdHJhY3QuYXR0cmlidXRlcy5maWxsIHx8IGZvcmNlKSkge1xuICAgIGFic3RyYWN0LmF0dHJpYnV0ZXMuZmlsbCA9ICdibGFjayc7XG4gIH1cblxuICByZXR1cm4gYWJzdHJhY3Q7XG59XG5cbmZ1bmN0aW9uIGRlR3JvdXAoYWJzdHJhY3QpIHtcbiAgaWYgKGFic3RyYWN0LnRhZyA9PT0gJ2cnKSB7XG4gICAgcmV0dXJuIGFic3RyYWN0LmNoaWxkcmVuO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbYWJzdHJhY3RdO1xuICB9XG59XG5cbnZhciBNYXNrcyA9IHtcbiAgaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnNlTm9kZUF0dHJpYnV0ZXMoYWNjdW11bGF0b3IsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgbWFza0RhdGEgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS1tYXNrJyk7XG4gICAgICAgIGNvbnN0IG1hc2sgPSAhbWFza0RhdGEgPyBlbXB0eUNhbm9uaWNhbEljb24oKSA6IGdldENhbm9uaWNhbEljb24obWFza0RhdGEuc3BsaXQoJyAnKS5tYXAoaSA9PiBpLnRyaW0oKSkpO1xuXG4gICAgICAgIGlmICghbWFzay5wcmVmaXgpIHtcbiAgICAgICAgICBtYXNrLnByZWZpeCA9IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFjY3VtdWxhdG9yLm1hc2sgPSBtYXNrO1xuICAgICAgICBhY2N1bXVsYXRvci5tYXNrSWQgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS1tYXNrLWlkJyk7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cblxuICAgIH07XG4gIH0sXG5cbiAgcHJvdmlkZXMocHJvdmlkZXJzKSB7XG4gICAgcHJvdmlkZXJzLmdlbmVyYXRlQWJzdHJhY3RNYXNrID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIGxldCB7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICBtYWluLFxuICAgICAgICBtYXNrLFxuICAgICAgICBtYXNrSWQ6IGV4cGxpY2l0TWFza0lkLFxuICAgICAgICB0cmFuc2Zvcm1cbiAgICAgIH0gPSBfcmVmO1xuICAgICAgY29uc3Qge1xuICAgICAgICB3aWR0aDogbWFpbldpZHRoLFxuICAgICAgICBpY29uOiBtYWluUGF0aFxuICAgICAgfSA9IG1haW47XG4gICAgICBjb25zdCB7XG4gICAgICAgIHdpZHRoOiBtYXNrV2lkdGgsXG4gICAgICAgIGljb246IG1hc2tQYXRoXG4gICAgICB9ID0gbWFzaztcbiAgICAgIGNvbnN0IHRyYW5zID0gdHJhbnNmb3JtRm9yU3ZnKHtcbiAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICBjb250YWluZXJXaWR0aDogbWFza1dpZHRoLFxuICAgICAgICBpY29uV2lkdGg6IG1haW5XaWR0aFxuICAgICAgfSk7XG4gICAgICBjb25zdCBtYXNrUmVjdCA9IHtcbiAgICAgICAgdGFnOiAncmVjdCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uQUxMX1NQQUNFLFxuICAgICAgICAgIGZpbGw6ICd3aGl0ZSdcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hc2tJbm5lckdyb3VwQ2hpbGRyZW5NaXhpbiA9IG1haW5QYXRoLmNoaWxkcmVuID8ge1xuICAgICAgICBjaGlsZHJlbjogbWFpblBhdGguY2hpbGRyZW4ubWFwKGZpbGxCbGFjaylcbiAgICAgIH0gOiB7fTtcbiAgICAgIGNvbnN0IG1hc2tJbm5lckdyb3VwID0ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczogeyAuLi50cmFucy5pbm5lclxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW2ZpbGxCbGFjayh7XG4gICAgICAgICAgdGFnOiBtYWluUGF0aC50YWcsXG4gICAgICAgICAgYXR0cmlidXRlczogeyAuLi5tYWluUGF0aC5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgLi4udHJhbnMucGF0aFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4ubWFza0lubmVyR3JvdXBDaGlsZHJlbk1peGluXG4gICAgICAgIH0pXVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hc2tPdXRlckdyb3VwID0ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczogeyAuLi50cmFucy5vdXRlclxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW21hc2tJbm5lckdyb3VwXVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hc2tJZCA9IFwibWFzay1cIi5jb25jYXQoZXhwbGljaXRNYXNrSWQgfHwgbmV4dFVuaXF1ZUlkKCkpO1xuICAgICAgY29uc3QgY2xpcElkID0gXCJjbGlwLVwiLmNvbmNhdChleHBsaWNpdE1hc2tJZCB8fCBuZXh0VW5pcXVlSWQoKSk7XG4gICAgICBjb25zdCBtYXNrVGFnID0ge1xuICAgICAgICB0YWc6ICdtYXNrJyxcbiAgICAgICAgYXR0cmlidXRlczogeyAuLi5BTExfU1BBQ0UsXG4gICAgICAgICAgaWQ6IG1hc2tJZCxcbiAgICAgICAgICBtYXNrVW5pdHM6ICd1c2VyU3BhY2VPblVzZScsXG4gICAgICAgICAgbWFza0NvbnRlbnRVbml0czogJ3VzZXJTcGFjZU9uVXNlJ1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW21hc2tSZWN0LCBtYXNrT3V0ZXJHcm91cF1cbiAgICAgIH07XG4gICAgICBjb25zdCBkZWZzID0ge1xuICAgICAgICB0YWc6ICdkZWZzJyxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdGFnOiAnY2xpcFBhdGgnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIGlkOiBjbGlwSWRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBkZUdyb3VwKG1hc2tQYXRoKVxuICAgICAgICB9LCBtYXNrVGFnXVxuICAgICAgfTtcbiAgICAgIGNoaWxkcmVuLnB1c2goZGVmcywge1xuICAgICAgICB0YWc6ICdyZWN0JyxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgICAgICdjbGlwLXBhdGgnOiBcInVybCgjXCIuY29uY2F0KGNsaXBJZCwgXCIpXCIpLFxuICAgICAgICAgIG1hc2s6IFwidXJsKCNcIi5jb25jYXQobWFza0lkLCBcIilcIiksXG4gICAgICAgICAgLi4uQUxMX1NQQUNFXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIGF0dHJpYnV0ZXNcbiAgICAgIH07XG4gICAgfTtcbiAgfVxuXG59O1xuXG52YXIgTWlzc2luZ0ljb25JbmRpY2F0b3IgPSB7XG4gIHByb3ZpZGVzKHByb3ZpZGVycykge1xuICAgIGxldCByZWR1Y2VNb3Rpb24gPSBmYWxzZTtcblxuICAgIGlmIChXSU5ET1cubWF0Y2hNZWRpYSkge1xuICAgICAgcmVkdWNlTW90aW9uID0gV0lORE9XLm1hdGNoTWVkaWEoJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJykubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcm92aWRlcnMubWlzc2luZ0ljb25BYnN0cmFjdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGdDaGlsZHJlbiA9IFtdO1xuICAgICAgY29uc3QgRklMTCA9IHtcbiAgICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcidcbiAgICAgIH07XG4gICAgICBjb25zdCBBTklNQVRJT05fQkFTRSA9IHtcbiAgICAgICAgYXR0cmlidXRlVHlwZTogJ1hNTCcsXG4gICAgICAgIHJlcGVhdENvdW50OiAnaW5kZWZpbml0ZScsXG4gICAgICAgIGR1cjogJzJzJ1xuICAgICAgfTsgLy8gUmluZ1xuXG4gICAgICBnQ2hpbGRyZW4ucHVzaCh7XG4gICAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkZJTEwsXG4gICAgICAgICAgZDogJ00xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHonXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc3QgT1BBQ0lUWV9BTklNQVRFID0geyAuLi5BTklNQVRJT05fQkFTRSxcbiAgICAgICAgYXR0cmlidXRlTmFtZTogJ29wYWNpdHknXG4gICAgICB9O1xuICAgICAgY29uc3QgZG90ID0ge1xuICAgICAgICB0YWc6ICdjaXJjbGUnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkZJTEwsXG4gICAgICAgICAgY3g6ICcyNTYnLFxuICAgICAgICAgIGN5OiAnMzY0JyxcbiAgICAgICAgICByOiAnMjgnXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgfTtcblxuICAgICAgaWYgKCFyZWR1Y2VNb3Rpb24pIHtcbiAgICAgICAgZG90LmNoaWxkcmVuLnB1c2goe1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uQU5JTUFUSU9OX0JBU0UsXG4gICAgICAgICAgICBhdHRyaWJ1dGVOYW1lOiAncicsXG4gICAgICAgICAgICB2YWx1ZXM6ICcyODsxNDsyODsyODsxNDsyODsnXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgICAgICAgYXR0cmlidXRlczogeyAuLi5PUEFDSVRZX0FOSU1BVEUsXG4gICAgICAgICAgICB2YWx1ZXM6ICcxOzA7MTsxOzA7MTsnXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZ0NoaWxkcmVuLnB1c2goZG90KTtcbiAgICAgIGdDaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uRklMTCxcbiAgICAgICAgICBvcGFjaXR5OiAnMScsXG4gICAgICAgICAgZDogJ00yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnonXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiByZWR1Y2VNb3Rpb24gPyBbXSA6IFt7XG4gICAgICAgICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgICAgICAgYXR0cmlidXRlczogeyAuLi5PUEFDSVRZX0FOSU1BVEUsXG4gICAgICAgICAgICB2YWx1ZXM6ICcxOzA7MDswOzA7MTsnXG4gICAgICAgICAgfVxuICAgICAgICB9XVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVkdWNlTW90aW9uKSB7XG4gICAgICAgIC8vIEV4Y2xhbWF0aW9uXG4gICAgICAgIGdDaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkZJTEwsXG4gICAgICAgICAgICBvcGFjaXR5OiAnMCcsXG4gICAgICAgICAgICBkOiAnTTIzMi41LDEzNC41bDcsMTY4YzAuMyw2LjQsNS42LDExLjUsMTIsMTEuNWg5YzYuNCwwLDExLjctNS4xLDEyLTExLjVsNy0xNjhjMC4zLTYuOC01LjItMTIuNS0xMi0xMi41aC0yMyBDMjM3LjcsMTIyLDIzMi4yLDEyNy43LDIzMi41LDEzNC41eidcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLk9QQUNJVFlfQU5JTUFURSxcbiAgICAgICAgICAgICAgdmFsdWVzOiAnMDswOzE7MTswOzA7J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICdjbGFzcyc6ICdtaXNzaW5nJ1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogZ0NoaWxkcmVuXG4gICAgICB9O1xuICAgIH07XG4gIH1cblxufTtcblxudmFyIFN2Z1N5bWJvbHMgPSB7XG4gIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJzZU5vZGVBdHRyaWJ1dGVzKGFjY3VtdWxhdG9yLCBub2RlKSB7XG4gICAgICAgIGNvbnN0IHN5bWJvbERhdGEgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS1zeW1ib2wnKTtcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gc3ltYm9sRGF0YSA9PT0gbnVsbCA/IGZhbHNlIDogc3ltYm9sRGF0YSA9PT0gJycgPyB0cnVlIDogc3ltYm9sRGF0YTtcbiAgICAgICAgYWNjdW11bGF0b3JbJ3N5bWJvbCddID0gc3ltYm9sO1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG5cbn07XG5cbnZhciBwbHVnaW5zID0gW0luamVjdENTUywgUmVwbGFjZUVsZW1lbnRzLCBMYXllcnMsIExheWVyc0NvdW50ZXIsIExheWVyc1RleHQsIFBzZXVkb0VsZW1lbnRzLCBNdXRhdGlvbk9ic2VydmVyJDEsIFBvd2VyVHJhbnNmb3JtcywgTWFza3MsIE1pc3NpbmdJY29uSW5kaWNhdG9yLCBTdmdTeW1ib2xzXTtcblxucmVnaXN0ZXJQbHVnaW5zKHBsdWdpbnMsIHtcbiAgbWl4b3V0c1RvOiBhcGlcbn0pO1xuY29uc3Qgbm9BdXRvJDEgPSBhcGkubm9BdXRvO1xuY29uc3QgY29uZmlnJDEgPSBhcGkuY29uZmlnO1xuY29uc3QgbGlicmFyeSQxID0gYXBpLmxpYnJhcnk7XG5jb25zdCBkb20kMSA9IGFwaS5kb207XG5jb25zdCBwYXJzZSQxID0gYXBpLnBhcnNlO1xuY29uc3QgZmluZEljb25EZWZpbml0aW9uJDEgPSBhcGkuZmluZEljb25EZWZpbml0aW9uO1xuY29uc3QgdG9IdG1sJDEgPSBhcGkudG9IdG1sO1xuY29uc3QgaWNvbiA9IGFwaS5pY29uO1xuY29uc3QgbGF5ZXIgPSBhcGkubGF5ZXI7XG5jb25zdCB0ZXh0ID0gYXBpLnRleHQ7XG5jb25zdCBjb3VudGVyID0gYXBpLmNvdW50ZXI7XG5cbmV4cG9ydCB7IG5vQXV0byQxIGFzIG5vQXV0bywgY29uZmlnJDEgYXMgY29uZmlnLCBsaWJyYXJ5JDEgYXMgbGlicmFyeSwgZG9tJDEgYXMgZG9tLCBwYXJzZSQxIGFzIHBhcnNlLCBmaW5kSWNvbkRlZmluaXRpb24kMSBhcyBmaW5kSWNvbkRlZmluaXRpb24sIHRvSHRtbCQxIGFzIHRvSHRtbCwgaWNvbiwgbGF5ZXIsIHRleHQsIGNvdW50ZXIsIGFwaSB9O1xuIiwgIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCAiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG4iLCAiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuICB2YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG4gIHZhciBoYXMgPSByZXF1aXJlKCcuL2xpYi9oYXMnKTtcblxuICBwcmludFdhcm5pbmcgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIHRleHQ7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkgeyAvKiovIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCB0aGUgdmFsdWVzIG1hdGNoIHdpdGggdGhlIHR5cGUgc3BlY3MuXG4gKiBFcnJvciBtZXNzYWdlcyBhcmUgbWVtb3JpemVkIGFuZCB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdHlwZVNwZWNzIE1hcCBvZiBuYW1lIHRvIGEgUmVhY3RQcm9wVHlwZVxuICogQHBhcmFtIHtvYmplY3R9IHZhbHVlcyBSdW50aW1lIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmUgdHlwZS1jaGVja2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gKiBAcGFyYW0ge3N0cmluZ30gY29tcG9uZW50TmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHs/RnVuY3Rpb259IGdldFN0YWNrIFJldHVybnMgdGhlIGNvbXBvbmVudCBzdGFjay5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZ2V0U3RhY2spIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3I7XG4gICAgICAgIC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cbiAgICAgICAgICBpZiAodHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoXG4gICAgICAgICAgICAgIChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArXG4gICAgICAgICAgICAgICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgK1xuICAgICAgICAgICAgICAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iLCAiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9saWIvaGFzJyk7XG52YXIgY2hlY2tQcm9wVHlwZXMgPSByZXF1aXJlKCcuL2NoZWNrUHJvcFR5cGVzJyk7XG5cbnZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBwcmludFdhcm5pbmcgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIHRleHQ7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcbn1cblxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXNWYWxpZEVsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpIHtcbiAgLyogZ2xvYmFsIFN5bWJvbCAqL1xuICB2YXIgSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG4gIHZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJzsgLy8gQmVmb3JlIFN5bWJvbCBzcGVjLlxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpdGVyYXRvciBtZXRob2QgZnVuY3Rpb24gY29udGFpbmVkIG9uIHRoZSBpdGVyYWJsZSBvYmplY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBpdGVyYWJsZSBhcyBjb250ZXh0OlxuICAgKlxuICAgKiAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG15SXRlcmFibGUpO1xuICAgKiAgICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICogICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG15SXRlcmFibGUpO1xuICAgKiAgICAgICAuLi5cbiAgICogICAgIH1cbiAgICpcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBtYXliZUl0ZXJhYmxlXG4gICAqIEByZXR1cm4gez9mdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gbWF5YmVJdGVyYWJsZSAmJiAoSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXSk7XG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaXRlcmF0b3JGbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdGlvbiBvZiBtZXRob2RzIHRoYXQgYWxsb3cgZGVjbGFyYXRpb24gYW5kIHZhbGlkYXRpb24gb2YgcHJvcHMgdGhhdCBhcmVcbiAgICogc3VwcGxpZWQgdG8gUmVhY3QgY29tcG9uZW50cy4gRXhhbXBsZSB1c2FnZTpcbiAgICpcbiAgICogICB2YXIgUHJvcHMgPSByZXF1aXJlKCdSZWFjdFByb3BUeXBlcycpO1xuICAgKiAgIHZhciBNeUFydGljbGUgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIHByb3AgbmFtZWQgXCJkZXNjcmlwdGlvblwiLlxuICAgKiAgICAgICBkZXNjcmlwdGlvbjogUHJvcHMuc3RyaW5nLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHJlcXVpcmVkIGVudW0gcHJvcCBuYW1lZCBcImNhdGVnb3J5XCIuXG4gICAqICAgICAgIGNhdGVnb3J5OiBQcm9wcy5vbmVPZihbJ05ld3MnLCdQaG90b3MnXSkuaXNSZXF1aXJlZCxcbiAgICpcbiAgICogICAgICAgLy8gQSBwcm9wIG5hbWVkIFwiZGlhbG9nXCIgdGhhdCByZXF1aXJlcyBhbiBpbnN0YW5jZSBvZiBEaWFsb2cuXG4gICAqICAgICAgIGRpYWxvZzogUHJvcHMuaW5zdGFuY2VPZihEaWFsb2cpLmlzUmVxdWlyZWRcbiAgICogICAgIH0sXG4gICAqICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeyAuLi4gfVxuICAgKiAgIH0pO1xuICAgKlxuICAgKiBBIG1vcmUgZm9ybWFsIHNwZWNpZmljYXRpb24gb2YgaG93IHRoZXNlIG1ldGhvZHMgYXJlIHVzZWQ6XG4gICAqXG4gICAqICAgdHlwZSA6PSBhcnJheXxib29sfGZ1bmN8b2JqZWN0fG51bWJlcnxzdHJpbmd8b25lT2YoWy4uLl0pfGluc3RhbmNlT2YoLi4uKVxuICAgKiAgIGRlY2wgOj0gUmVhY3RQcm9wVHlwZXMue3R5cGV9KC5pc1JlcXVpcmVkKT9cbiAgICpcbiAgICogRWFjaCBhbmQgZXZlcnkgZGVjbGFyYXRpb24gcHJvZHVjZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZS4gVGhpc1xuICAgKiBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGN1c3RvbSB2YWxpZGF0aW9uIGZ1bmN0aW9ucy4gRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqICB2YXIgTXlMaW5rID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICBwcm9wVHlwZXM6IHtcbiAgICogICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgb3IgVVJJIHByb3AgbmFtZWQgXCJocmVmXCIuXG4gICAqICAgICAgaHJlZjogZnVuY3Rpb24ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gICAqICAgICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgKiAgICAgICAgaWYgKHByb3BWYWx1ZSAhPSBudWxsICYmIHR5cGVvZiBwcm9wVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAqICAgICAgICAgICAgIShwcm9wVmFsdWUgaW5zdGFuY2VvZiBVUkkpKSB7XG4gICAqICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoXG4gICAqICAgICAgICAgICAgJ0V4cGVjdGVkIGEgc3RyaW5nIG9yIGFuIFVSSSBmb3IgJyArIHByb3BOYW1lICsgJyBpbiAnICtcbiAgICogICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAqICAgICAgICAgICk7XG4gICAqICAgICAgICB9XG4gICAqICAgICAgfVxuICAgKiAgICB9LFxuICAgKiAgICByZW5kZXI6IGZ1bmN0aW9uKCkgey4uLn1cbiAgICogIH0pO1xuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cbiAgdmFyIEFOT05ZTU9VUyA9ICc8PGFub255bW91cz4+JztcblxuICAvLyBJbXBvcnRhbnQhXG4gIC8vIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBwcm9kdWN0aW9uIHZlcnNpb24gaW4gYC4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYXJyYXknKSxcbiAgICBiaWdpbnQ6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdiaWdpbnQnKSxcbiAgICBib29sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYm9vbGVhbicpLFxuICAgIGZ1bmM6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdmdW5jdGlvbicpLFxuICAgIG51bWJlcjogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ251bWJlcicpLFxuICAgIG9iamVjdDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ29iamVjdCcpLFxuICAgIHN0cmluZzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N0cmluZycpLFxuICAgIHN5bWJvbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ3N5bWJvbCcpLFxuXG4gICAgYW55OiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpLFxuICAgIGFycmF5T2Y6IGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcixcbiAgICBlbGVtZW50OiBjcmVhdGVFbGVtZW50VHlwZUNoZWNrZXIoKSxcbiAgICBlbGVtZW50VHlwZTogY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpLFxuICAgIGluc3RhbmNlT2Y6IGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIsXG4gICAgbm9kZTogY3JlYXRlTm9kZUNoZWNrZXIoKSxcbiAgICBvYmplY3RPZjogY3JlYXRlT2JqZWN0T2ZUeXBlQ2hlY2tlcixcbiAgICBvbmVPZjogY3JlYXRlRW51bVR5cGVDaGVja2VyLFxuICAgIG9uZU9mVHlwZTogY3JlYXRlVW5pb25UeXBlQ2hlY2tlcixcbiAgICBzaGFwZTogY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcixcbiAgICBleGFjdDogY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcixcbiAgfTtcblxuICAvKipcbiAgICogaW5saW5lZCBPYmplY3QuaXMgcG9seWZpbGwgdG8gYXZvaWQgcmVxdWlyaW5nIGNvbnN1bWVycyBzaGlwIHRoZWlyIG93blxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAgICovXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlKi9cbiAgZnVuY3Rpb24gaXMoeCwgeSkge1xuICAgIC8vIFNhbWVWYWx1ZSBhbGdvcml0aG1cbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgICAvLyBTdGVwcyA2LmItNi5lOiArMCAhPSAtMFxuICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTdGVwIDYuYTogTmFOID09IE5hTlxuICAgICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgICB9XG4gIH1cbiAgLyplc2xpbnQtZW5hYmxlIG5vLXNlbGYtY29tcGFyZSovXG5cbiAgLyoqXG4gICAqIFdlIHVzZSBhbiBFcnJvci1saWtlIG9iamVjdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBhcyBwZW9wbGUgbWF5IGNhbGxcbiAgICogUHJvcFR5cGVzIGRpcmVjdGx5IGFuZCBpbnNwZWN0IHRoZWlyIG91dHB1dC4gSG93ZXZlciwgd2UgZG9uJ3QgdXNlIHJlYWxcbiAgICogRXJyb3JzIGFueW1vcmUuIFdlIGRvbid0IGluc3BlY3QgdGhlaXIgc3RhY2sgYW55d2F5LCBhbmQgY3JlYXRpbmcgdGhlbVxuICAgKiBpcyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZSBpZiB0aGV5IGFyZSBjcmVhdGVkIHRvbyBvZnRlbiwgc3VjaCBhcyB3aGF0XG4gICAqIGhhcHBlbnMgaW4gb25lT2ZUeXBlKCkgZm9yIGFueSB0eXBlIGJlZm9yZSB0aGUgb25lIHRoYXQgbWF0Y2hlZC5cbiAgICovXG4gIGZ1bmN0aW9uIFByb3BUeXBlRXJyb3IobWVzc2FnZSwgZGF0YSkge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5kYXRhID0gZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgPyBkYXRhOiB7fTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSArICdgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSA9IHRydWU7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCAnICsgKCdpbiBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgbnVsbGAuJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkIGluICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGB1bmRlZmluZWRgLicpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjaGFpbmVkQ2hlY2tUeXBlID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgZmFsc2UpO1xuICAgIGNoYWluZWRDaGVja1R5cGUuaXNSZXF1aXJlZCA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIHRydWUpO1xuXG4gICAgcmV0dXJuIGNoYWluZWRDaGVja1R5cGU7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcihleHBlY3RlZFR5cGUpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09IGV4cGVjdGVkVHlwZSkge1xuICAgICAgICAvLyBgcHJvcFZhbHVlYCBiZWluZyBpbnN0YW5jZSBvZiwgc2F5LCBkYXRlL3JlZ2V4cCwgcGFzcyB0aGUgJ29iamVjdCdcbiAgICAgICAgLy8gY2hlY2ssIGJ1dCB3ZSBjYW4gb2ZmZXIgYSBtb3JlIHByZWNpc2UgZXJyb3IgbWVzc2FnZSBoZXJlIHJhdGhlciB0aGFuXG4gICAgICAgIC8vICdvZiB0eXBlIGBvYmplY3RgJy5cbiAgICAgICAgdmFyIHByZWNpc2VUeXBlID0gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcmVjaXNlVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCAnKSArICgnYCcgKyBleHBlY3RlZFR5cGUgKyAnYC4nKSxcbiAgICAgICAgICB7ZXhwZWN0ZWRUeXBlOiBleHBlY3RlZFR5cGV9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFueVR5cGVDaGVja2VyKCkge1xuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcihlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghUmVhY3RJcy5pc1ZhbGlkRWxlbWVudFR5cGUocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQgdHlwZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIoZXhwZWN0ZWRDbGFzcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCEocHJvcHNbcHJvcE5hbWVdIGluc3RhbmNlb2YgZXhwZWN0ZWRDbGFzcykpIHtcbiAgICAgICAgdmFyIGV4cGVjdGVkQ2xhc3NOYW1lID0gZXhwZWN0ZWRDbGFzcy5uYW1lIHx8IEFOT05ZTU9VUztcbiAgICAgICAgdmFyIGFjdHVhbENsYXNzTmFtZSA9IGdldENsYXNzTmFtZShwcm9wc1twcm9wTmFtZV0pO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBhY3R1YWxDbGFzc05hbWUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2luc3RhbmNlIG9mIGAnICsgZXhwZWN0ZWRDbGFzc05hbWUgKyAnYC4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVudW1UeXBlQ2hlY2tlcihleHBlY3RlZFZhbHVlcykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShleHBlY3RlZFZhbHVlcykpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50cyBzdXBwbGllZCB0byBvbmVPZiwgZXhwZWN0ZWQgYW4gYXJyYXksIGdvdCAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgYXJndW1lbnRzLiAnICtcbiAgICAgICAgICAgICdBIGNvbW1vbiBtaXN0YWtlIGlzIHRvIHdyaXRlIG9uZU9mKHgsIHksIHopIGluc3RlYWQgb2Ygb25lT2YoW3gsIHksIHpdKS4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpcyhwcm9wVmFsdWUsIGV4cGVjdGVkVmFsdWVzW2ldKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciB2YWx1ZXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShleHBlY3RlZFZhbHVlcywgZnVuY3Rpb24gcmVwbGFjZXIoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YXIgdHlwZSA9IGdldFByZWNpc2VUeXBlKHZhbHVlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHZhbHVlIGAnICsgU3RyaW5nKHByb3BWYWx1ZSkgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKGhhcyhwcm9wVmFsdWUsIGtleSkpIHtcbiAgICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIoYXJyYXlPZlR5cGVDaGVja2Vycykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnJheU9mVHlwZUNoZWNrZXJzKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHByaW50V2FybmluZygnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheU9mVHlwZUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICBpZiAodHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mVHlwZS4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgY2hlY2sgZnVuY3Rpb25zLCBidXQgJyArXG4gICAgICAgICAgJ3JlY2VpdmVkICcgKyBnZXRQb3N0Zml4Rm9yVHlwZVdhcm5pbmcoY2hlY2tlcikgKyAnIGF0IGluZGV4ICcgKyBpICsgJy4nXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIHZhciBjaGVja2VyUmVzdWx0ID0gY2hlY2tlcihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGNoZWNrZXJSZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGVja2VyUmVzdWx0LmRhdGEgJiYgaGFzKGNoZWNrZXJSZXN1bHQuZGF0YSwgJ2V4cGVjdGVkVHlwZScpKSB7XG4gICAgICAgICAgZXhwZWN0ZWRUeXBlcy5wdXNoKGNoZWNrZXJSZXN1bHQuZGF0YS5leHBlY3RlZFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgPSAoZXhwZWN0ZWRUeXBlcy5sZW5ndGggPiAwKSA/ICcsIGV4cGVjdGVkIG9uZSBvZiB0eXBlIFsnICsgZXhwZWN0ZWRUeXBlcy5qb2luKCcsICcpICsgJ10nOiAnJztcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agc3VwcGxpZWQgdG8gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AnICsgZXhwZWN0ZWRUeXBlc01lc3NhZ2UgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGludmFsaWRWYWxpZGF0b3JFcnJvcihjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBrZXksIHR5cGUpIHtcbiAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHByb3BGdWxsTmFtZSArICcuJyArIGtleSArICdgIGlzIGludmFsaWQ7ICcgK1xuICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZSArICdgLidcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHNoYXBlVHlwZXMpIHtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBzaGFwZVR5cGVzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgY2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsaWRhdG9yRXJyb3IoY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwga2V5LCBnZXRQcmVjaXNlVHlwZShjaGVja2VyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlU3RyaWN0U2hhcGVUeXBlQ2hlY2tlcihzaGFwZVR5cGVzKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgICAgfVxuICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBhbGwga2V5cyBpbiBjYXNlIHNvbWUgYXJlIHJlcXVpcmVkIGJ1dCBtaXNzaW5nIGZyb20gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoaGFzKHNoYXBlVHlwZXMsIGtleSkgJiYgdHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbGlkYXRvckVycm9yKGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIGtleSwgZ2V0UHJlY2lzZVR5cGUoY2hlY2tlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tlcikge1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcihcbiAgICAgICAgICAgICdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBrZXkgYCcgKyBrZXkgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYC4nICtcbiAgICAgICAgICAgICdcXG5CYWQgb2JqZWN0OiAnICsgSlNPTi5zdHJpbmdpZnkocHJvcHNbcHJvcE5hbWVdLCBudWxsLCAnICAnKSArXG4gICAgICAgICAgICAnXFxuVmFsaWQga2V5czogJyArIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHNoYXBlVHlwZXMpLCBudWxsLCAnICAnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yID0gY2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGZhbHN5IHZhbHVlIGNhbid0IGJlIGEgU3ltYm9sXG4gICAgaWYgKCFwcm9wVmFsdWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddID09PSAnU3ltYm9sJ1xuICAgIGlmIChwcm9wVmFsdWVbJ0BAdG9TdHJpbmdUYWcnXSA9PT0gJ1N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIGZvciBub24tc3BlYyBjb21wbGlhbnQgU3ltYm9scyB3aGljaCBhcmUgcG9seWZpbGxlZC5cbiAgICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBwcm9wVmFsdWUgaW5zdGFuY2VvZiBTeW1ib2wpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEVxdWl2YWxlbnQgb2YgYHR5cGVvZmAgYnV0IHdpdGggc3BlY2lhbCBoYW5kbGluZyBmb3IgYXJyYXkgYW5kIHJlZ2V4cC5cbiAgZnVuY3Rpb24gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKSB7XG4gICAgdmFyIHByb3BUeXBlID0gdHlwZW9mIHByb3BWYWx1ZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ2FycmF5JztcbiAgICB9XG4gICAgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgLy8gT2xkIHdlYmtpdHMgKGF0IGxlYXN0IHVudGlsIEFuZHJvaWQgNC4wKSByZXR1cm4gJ2Z1bmN0aW9uJyByYXRoZXIgdGhhblxuICAgICAgLy8gJ29iamVjdCcgZm9yIHR5cGVvZiBhIFJlZ0V4cC4gV2UnbGwgbm9ybWFsaXplIHRoaXMgaGVyZSBzbyB0aGF0IC9ibGEvXG4gICAgICAvLyBwYXNzZXMgUHJvcFR5cGVzLm9iamVjdC5cbiAgICAgIHJldHVybiAnb2JqZWN0JztcbiAgICB9XG4gICAgaWYgKGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ3N5bWJvbCc7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFRoaXMgaGFuZGxlcyBtb3JlIHR5cGVzIHRoYW4gYGdldFByb3BUeXBlYC4gT25seSB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy5cbiAgLy8gU2VlIGBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcmAuXG4gIGZ1bmN0aW9uIGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSAndW5kZWZpbmVkJyB8fCBwcm9wVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJyArIHByb3BWYWx1ZTtcbiAgICB9XG4gICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICBpZiAocHJvcFR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfSBlbHNlIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmV0dXJuICdyZWdleHAnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvcFR5cGU7XG4gIH1cblxuICAvLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcG9zdGZpeGVkIHRvIGEgd2FybmluZyBhYm91dCBhbiBpbnZhbGlkIHR5cGUuXG4gIC8vIEZvciBleGFtcGxlLCBcInVuZGVmaW5lZFwiIG9yIFwib2YgdHlwZSBhcnJheVwiXG4gIGZ1bmN0aW9uIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyh2YWx1ZSkge1xuICAgIHZhciB0eXBlID0gZ2V0UHJlY2lzZVR5cGUodmFsdWUpO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgcmV0dXJuICdhbiAnICsgdHlwZTtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICBjYXNlICdyZWdleHAnOlxuICAgICAgICByZXR1cm4gJ2EgJyArIHR5cGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm5zIGNsYXNzIG5hbWUgb2YgdGhlIG9iamVjdCwgaWYgYW55LlxuICBmdW5jdGlvbiBnZXRDbGFzc05hbWUocHJvcFZhbHVlKSB7XG4gICAgaWYgKCFwcm9wVmFsdWUuY29uc3RydWN0b3IgfHwgIXByb3BWYWx1ZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgICByZXR1cm4gQU5PTllNT1VTO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBSZWFjdFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyA9IGNoZWNrUHJvcFR5cGVzO1xuICBSZWFjdFByb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGNoZWNrUHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlO1xuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwgIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uKCkge31cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQoKSB7fVxuZW1wdHlGdW5jdGlvbldpdGhSZXNldC5yZXNldFdhcm5pbmdDYWNoZSA9IGVtcHR5RnVuY3Rpb247XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIHNoaW0ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICBpZiAoc2VjcmV0ID09PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgLy8gSXQgaXMgc3RpbGwgc2FmZSB3aGVuIGNhbGxlZCBmcm9tIFJlYWN0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB0aHJvdyBlcnI7XG4gIH07XG4gIHNoaW0uaXNSZXF1aXJlZCA9IHNoaW07XG4gIGZ1bmN0aW9uIGdldFNoaW0oKSB7XG4gICAgcmV0dXJuIHNoaW07XG4gIH07XG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogc2hpbSxcbiAgICBiaWdpbnQ6IHNoaW0sXG4gICAgYm9vbDogc2hpbSxcbiAgICBmdW5jOiBzaGltLFxuICAgIG51bWJlcjogc2hpbSxcbiAgICBvYmplY3Q6IHNoaW0sXG4gICAgc3RyaW5nOiBzaGltLFxuICAgIHN5bWJvbDogc2hpbSxcblxuICAgIGFueTogc2hpbSxcbiAgICBhcnJheU9mOiBnZXRTaGltLFxuICAgIGVsZW1lbnQ6IHNoaW0sXG4gICAgZWxlbWVudFR5cGU6IHNoaW0sXG4gICAgaW5zdGFuY2VPZjogZ2V0U2hpbSxcbiAgICBub2RlOiBzaGltLFxuICAgIG9iamVjdE9mOiBnZXRTaGltLFxuICAgIG9uZU9mOiBnZXRTaGltLFxuICAgIG9uZU9mVHlwZTogZ2V0U2hpbSxcbiAgICBzaGFwZTogZ2V0U2hpbSxcbiAgICBleGFjdDogZ2V0U2hpbSxcblxuICAgIGNoZWNrUHJvcFR5cGVzOiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LFxuICAgIHJlc2V0V2FybmluZ0NhY2hlOiBlbXB0eUZ1bmN0aW9uXG4gIH07XG5cbiAgUmVhY3RQcm9wVHlwZXMuUHJvcFR5cGVzID0gUmVhY3RQcm9wVHlwZXM7XG5cbiAgcmV0dXJuIFJlYWN0UHJvcFR5cGVzO1xufTtcbiIsICIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBkZXZlbG9wbWVudCBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICB2YXIgdGhyb3dPbkRpcmVjdEFjY2VzcyA9IHRydWU7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFR5cGVDaGVja2VycycpKFJlYWN0SXMuaXNFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcycpKCk7XG59XG4iLCAiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gZmFjdG9yeShleHBvcnRzLCByZXF1aXJlKCdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnKSwgcmVxdWlyZSgncHJvcC10eXBlcycpLCByZXF1aXJlKCdyZWFjdCcpKSA6XG4gIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJ2V4cG9ydHMnLCAnQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlJywgJ3Byb3AtdHlwZXMnLCAncmVhY3QnXSwgZmFjdG9yeSkgOlxuICAoZ2xvYmFsID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsVGhpcyA6IGdsb2JhbCB8fCBzZWxmLCBmYWN0b3J5KGdsb2JhbFtcInJlYWN0LWZvbnRhd2Vzb21lXCJdID0ge30sIGdsb2JhbC5Gb250QXdlc29tZSwgZ2xvYmFsLlByb3BUeXBlcywgZ2xvYmFsLlJlYWN0KSk7XG59KSh0aGlzLCAoZnVuY3Rpb24gKGV4cG9ydHMsIGZvbnRhd2Vzb21lU3ZnQ29yZSwgUHJvcFR5cGVzLCBSZWFjdCkgeyAndXNlIHN0cmljdCc7XG5cbiAgZnVuY3Rpb24gX2ludGVyb3BEZWZhdWx0TGVnYWN5IChlKSB7IHJldHVybiBlICYmIHR5cGVvZiBlID09PSAnb2JqZWN0JyAmJiAnZGVmYXVsdCcgaW4gZSA/IGUgOiB7ICdkZWZhdWx0JzogZSB9OyB9XG5cbiAgdmFyIFByb3BUeXBlc19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9faW50ZXJvcERlZmF1bHRMZWdhY3koUHJvcFR5cGVzKTtcbiAgdmFyIFJlYWN0X19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShSZWFjdCk7XG5cbiAgZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuICAgICAgZW51bWVyYWJsZU9ubHkgJiYgKHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlO1xuICAgICAgfSkpLCBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGtleXM7XG4gIH1cblxuICBmdW5jdGlvbiBfb2JqZWN0U3ByZWFkMih0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IG51bGwgIT0gYXJndW1lbnRzW2ldID8gYXJndW1lbnRzW2ldIDoge307XG4gICAgICBpICUgMiA/IG93bktleXMoT2JqZWN0KHNvdXJjZSksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKSA6IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICAgIHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfSA6IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfSwgX3R5cGVvZihvYmopO1xuICB9XG5cbiAgZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICAgIHZhciB0YXJnZXQgPSB7fTtcbiAgICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgdmFyIGtleSwgaTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG5cbiAgICB2YXIgdGFyZ2V0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7XG5cbiAgICB2YXIga2V5LCBpO1xuXG4gICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldO1xuICAgICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlO1xuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gICAgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkoYXJyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGl0ZXJbU3ltYm9sLml0ZXJhdG9yXSAhPSBudWxsIHx8IGl0ZXJbXCJAQGl0ZXJhdG9yXCJdICE9IG51bGwpIHJldHVybiBBcnJheS5mcm9tKGl0ZXIpO1xuICB9XG5cbiAgZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICAgIGlmICghbykgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gICAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICAgIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gICAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB9XG5cbiAgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICAgIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykgYXJyMltpXSA9IGFycltpXTtcblxuICAgIHJldHVybiBhcnIyO1xuICB9XG5cbiAgZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xuICB9XG5cbiAgLy8gR2V0IENTUyBjbGFzcyBsaXN0IGZyb20gYSBwcm9wcyBvYmplY3RcbiAgZnVuY3Rpb24gY2xhc3NMaXN0KHByb3BzKSB7XG4gICAgdmFyIF9jbGFzc2VzO1xuXG4gICAgdmFyIGJlYXQgPSBwcm9wcy5iZWF0LFxuICAgICAgICBmYWRlID0gcHJvcHMuZmFkZSxcbiAgICAgICAgYmVhdEZhZGUgPSBwcm9wcy5iZWF0RmFkZSxcbiAgICAgICAgYm91bmNlID0gcHJvcHMuYm91bmNlLFxuICAgICAgICBzaGFrZSA9IHByb3BzLnNoYWtlLFxuICAgICAgICBmbGFzaCA9IHByb3BzLmZsYXNoLFxuICAgICAgICBzcGluID0gcHJvcHMuc3BpbixcbiAgICAgICAgc3BpblB1bHNlID0gcHJvcHMuc3BpblB1bHNlLFxuICAgICAgICBzcGluUmV2ZXJzZSA9IHByb3BzLnNwaW5SZXZlcnNlLFxuICAgICAgICBwdWxzZSA9IHByb3BzLnB1bHNlLFxuICAgICAgICBmaXhlZFdpZHRoID0gcHJvcHMuZml4ZWRXaWR0aCxcbiAgICAgICAgaW52ZXJzZSA9IHByb3BzLmludmVyc2UsXG4gICAgICAgIGJvcmRlciA9IHByb3BzLmJvcmRlcixcbiAgICAgICAgbGlzdEl0ZW0gPSBwcm9wcy5saXN0SXRlbSxcbiAgICAgICAgZmxpcCA9IHByb3BzLmZsaXAsXG4gICAgICAgIHNpemUgPSBwcm9wcy5zaXplLFxuICAgICAgICByb3RhdGlvbiA9IHByb3BzLnJvdGF0aW9uLFxuICAgICAgICBwdWxsID0gcHJvcHMucHVsbDsgLy8gbWFwIG9mIENTUyBjbGFzcyBuYW1lcyB0byBwcm9wZXJ0aWVzXG5cbiAgICB2YXIgY2xhc3NlcyA9IChfY2xhc3NlcyA9IHtcbiAgICAgICdmYS1iZWF0JzogYmVhdCxcbiAgICAgICdmYS1mYWRlJzogZmFkZSxcbiAgICAgICdmYS1iZWF0LWZhZGUnOiBiZWF0RmFkZSxcbiAgICAgICdmYS1ib3VuY2UnOiBib3VuY2UsXG4gICAgICAnZmEtc2hha2UnOiBzaGFrZSxcbiAgICAgICdmYS1mbGFzaCc6IGZsYXNoLFxuICAgICAgJ2ZhLXNwaW4nOiBzcGluLFxuICAgICAgJ2ZhLXNwaW4tcmV2ZXJzZSc6IHNwaW5SZXZlcnNlLFxuICAgICAgJ2ZhLXNwaW4tcHVsc2UnOiBzcGluUHVsc2UsXG4gICAgICAnZmEtcHVsc2UnOiBwdWxzZSxcbiAgICAgICdmYS1mdyc6IGZpeGVkV2lkdGgsXG4gICAgICAnZmEtaW52ZXJzZSc6IGludmVyc2UsXG4gICAgICAnZmEtYm9yZGVyJzogYm9yZGVyLFxuICAgICAgJ2ZhLWxpJzogbGlzdEl0ZW0sXG4gICAgICAnZmEtZmxpcCc6IGZsaXAgPT09IHRydWUsXG4gICAgICAnZmEtZmxpcC1ob3Jpem9udGFsJzogZmxpcCA9PT0gJ2hvcml6b250YWwnIHx8IGZsaXAgPT09ICdib3RoJyxcbiAgICAgICdmYS1mbGlwLXZlcnRpY2FsJzogZmxpcCA9PT0gJ3ZlcnRpY2FsJyB8fCBmbGlwID09PSAnYm90aCdcbiAgICB9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsIFwiZmEtXCIuY29uY2F0KHNpemUpLCB0eXBlb2Ygc2l6ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc2l6ZSAhPT0gbnVsbCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NlcywgXCJmYS1yb3RhdGUtXCIuY29uY2F0KHJvdGF0aW9uKSwgdHlwZW9mIHJvdGF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiByb3RhdGlvbiAhPT0gbnVsbCAmJiByb3RhdGlvbiAhPT0gMCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NlcywgXCJmYS1wdWxsLVwiLmNvbmNhdChwdWxsKSwgdHlwZW9mIHB1bGwgIT09ICd1bmRlZmluZWQnICYmIHB1bGwgIT09IG51bGwpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsICdmYS1zd2FwLW9wYWNpdHknLCBwcm9wcy5zd2FwT3BhY2l0eSksIF9jbGFzc2VzKTsgLy8gbWFwIG92ZXIgYWxsIHRoZSBrZXlzIGluIHRoZSBjbGFzc2VzIG9iamVjdFxuICAgIC8vIHJldHVybiBhbiBhcnJheSBvZiB0aGUga2V5cyB3aGVyZSB0aGUgdmFsdWUgZm9yIHRoZSBrZXkgaXMgbm90IG51bGxcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhjbGFzc2VzKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIGNsYXNzZXNba2V5XSA/IGtleSA6IG51bGw7XG4gICAgfSkuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBDYW1lbGl6ZSB0YWtlbiBmcm9tIGh1bXBzXG4gIC8vIGh1bXBzIGlzIGNvcHlyaWdodCBcdTAwQTkgMjAxMisgRG9tIENocmlzdGllXG4gIC8vIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAgLy8gUGVyZm9ybWFudCB3YXkgdG8gZGV0ZXJtaW5lIGlmIG9iamVjdCBjb2VyY2VzIHRvIGEgbnVtYmVyXG4gIGZ1bmN0aW9uIF9pc051bWVyaWNhbChvYmopIHtcbiAgICBvYmogPSBvYmogLSAwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG5cbiAgICByZXR1cm4gb2JqID09PSBvYmo7XG4gIH1cblxuICBmdW5jdGlvbiBjYW1lbGl6ZShzdHJpbmcpIHtcbiAgICBpZiAoX2lzTnVtZXJpY2FsKHN0cmluZykpIHtcbiAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcblxuXG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1tcXC1fXFxzXSsoLik/L2csIGZ1bmN0aW9uIChtYXRjaCwgY2hyKSB7XG4gICAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAnJztcbiAgICB9KTsgLy8gRW5zdXJlIDFzdCBjaGFyIGlzIGFsd2F5cyBsb3dlcmNhc2VcblxuICAgIHJldHVybiBzdHJpbmcuc3Vic3RyKDAsIDEpLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc3Vic3RyKDEpO1xuICB9XG5cbiAgdmFyIF9leGNsdWRlZCA9IFtcInN0eWxlXCJdO1xuXG4gIGZ1bmN0aW9uIGNhcGl0YWxpemUodmFsKSB7XG4gICAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0eWxlVG9PYmplY3Qoc3R5bGUpIHtcbiAgICByZXR1cm4gc3R5bGUuc3BsaXQoJzsnKS5tYXAoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzLnRyaW0oKTtcbiAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH0pLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwYWlyKSB7XG4gICAgICB2YXIgaSA9IHBhaXIuaW5kZXhPZignOicpO1xuICAgICAgdmFyIHByb3AgPSBjYW1lbGl6ZShwYWlyLnNsaWNlKDAsIGkpKTtcbiAgICAgIHZhciB2YWx1ZSA9IHBhaXIuc2xpY2UoaSArIDEpLnRyaW0oKTtcbiAgICAgIHByb3Auc3RhcnRzV2l0aCgnd2Via2l0JykgPyBhY2NbY2FwaXRhbGl6ZShwcm9wKV0gPSB2YWx1ZSA6IGFjY1twcm9wXSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICBmdW5jdGlvbiBjb252ZXJ0KGNyZWF0ZUVsZW1lbnQsIGVsZW1lbnQpIHtcbiAgICB2YXIgZXh0cmFQcm9wcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICB2YXIgY2hpbGRyZW4gPSAoZWxlbWVudC5jaGlsZHJlbiB8fCBbXSkubWFwKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgcmV0dXJuIGNvbnZlcnQoY3JlYXRlRWxlbWVudCwgY2hpbGQpO1xuICAgIH0pO1xuICAgIC8qIGVzbGludC1kaXNhYmxlIGRvdC1ub3RhdGlvbiAqL1xuXG4gICAgdmFyIG1peGlucyA9IE9iamVjdC5rZXlzKGVsZW1lbnQuYXR0cmlidXRlcyB8fCB7fSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgICAgdmFyIHZhbCA9IGVsZW1lbnQuYXR0cmlidXRlc1trZXldO1xuXG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgYWNjLmF0dHJzWydjbGFzc05hbWUnXSA9IHZhbDtcbiAgICAgICAgICBkZWxldGUgZWxlbWVudC5hdHRyaWJ1dGVzWydjbGFzcyddO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgICAgICBhY2MuYXR0cnNbJ3N0eWxlJ10gPSBzdHlsZVRvT2JqZWN0KHZhbCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ2FyaWEtJykgPT09IDAgfHwga2V5LmluZGV4T2YoJ2RhdGEtJykgPT09IDApIHtcbiAgICAgICAgICAgIGFjYy5hdHRyc1trZXkudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjYy5hdHRyc1tjYW1lbGl6ZShrZXkpXSA9IHZhbDtcbiAgICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7XG4gICAgICBhdHRyczoge31cbiAgICB9KTtcblxuICAgIHZhciBfZXh0cmFQcm9wcyRzdHlsZSA9IGV4dHJhUHJvcHMuc3R5bGUsXG4gICAgICAgIGV4aXN0aW5nU3R5bGUgPSBfZXh0cmFQcm9wcyRzdHlsZSA9PT0gdm9pZCAwID8ge30gOiBfZXh0cmFQcm9wcyRzdHlsZSxcbiAgICAgICAgcmVtYWluaW5nID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGV4dHJhUHJvcHMsIF9leGNsdWRlZCk7XG5cbiAgICBtaXhpbnMuYXR0cnNbJ3N0eWxlJ10gPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbWl4aW5zLmF0dHJzWydzdHlsZSddKSwgZXhpc3RpbmdTdHlsZSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLCBbZWxlbWVudC50YWcsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBtaXhpbnMuYXR0cnMpLCByZW1haW5pbmcpXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNoaWxkcmVuKSkpO1xuICB9XG5cbiAgdmFyIFBST0RVQ1RJT04gPSBmYWxzZTtcblxuICB0cnkge1xuICAgIFBST0RVQ1RJT04gPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIGZ1bmN0aW9uIGxvZyAoKSB7XG4gICAgaWYgKCFQUk9EVUNUSU9OICYmIGNvbnNvbGUgJiYgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfY29uc29sZTtcblxuICAgICAgKF9jb25zb2xlID0gY29uc29sZSkuZXJyb3IuYXBwbHkoX2NvbnNvbGUsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplSWNvbkFyZ3MoaWNvbikge1xuICAgIC8vIHRoaXMgaGFzIGV2ZXJ5dGhpbmcgdGhhdCBpdCBuZWVkcyB0byBiZSByZW5kZXJlZCB3aGljaCBtZWFucyBpdCB3YXMgcHJvYmFibHkgaW1wb3J0ZWRcbiAgICAvLyBkaXJlY3RseSBmcm9tIGFuIGljb24gc3ZnIHBhY2thZ2VcbiAgICBpZiAoaWNvbiAmJiBfdHlwZW9mKGljb24pID09PSAnb2JqZWN0JyAmJiBpY29uLnByZWZpeCAmJiBpY29uLmljb25OYW1lICYmIGljb24uaWNvbikge1xuICAgICAgcmV0dXJuIGljb247XG4gICAgfVxuXG4gICAgaWYgKGZvbnRhd2Vzb21lU3ZnQ29yZS5wYXJzZS5pY29uKSB7XG4gICAgICByZXR1cm4gZm9udGF3ZXNvbWVTdmdDb3JlLnBhcnNlLmljb24oaWNvbik7XG4gICAgfSAvLyBpZiB0aGUgaWNvbiBpcyBudWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG9cblxuXG4gICAgaWYgKGljb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gLy8gaWYgdGhlIGljb24gaXMgYW4gb2JqZWN0IGFuZCBoYXMgYSBwcmVmaXggYW5kIGFuIGljb24gbmFtZSwgcmV0dXJuIGl0XG5cblxuICAgIGlmIChpY29uICYmIF90eXBlb2YoaWNvbikgPT09ICdvYmplY3QnICYmIGljb24ucHJlZml4ICYmIGljb24uaWNvbk5hbWUpIHtcbiAgICAgIHJldHVybiBpY29uO1xuICAgIH0gLy8gaWYgaXQncyBhbiBhcnJheSB3aXRoIGxlbmd0aCBvZiB0d29cblxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWNvbikgJiYgaWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgIC8vIHVzZSB0aGUgZmlyc3QgaXRlbSBhcyBwcmVmaXgsIHNlY29uZCBhcyBpY29uIG5hbWVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeDogaWNvblswXSxcbiAgICAgICAgaWNvbk5hbWU6IGljb25bMV1cbiAgICAgIH07XG4gICAgfSAvLyBpZiBpdCdzIGEgc3RyaW5nLCB1c2UgaXQgYXMgdGhlIGljb24gbmFtZVxuXG5cbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmVmaXg6ICdmYXMnLFxuICAgICAgICBpY29uTmFtZTogaWNvblxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIGEga2V5IG9mIGtleVxuICAvLyBhbmQgYSB2YWx1ZSBvZiB2YWx1ZVxuICAvLyBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgYXJlIG1ldFxuICBmdW5jdGlvbiBvYmplY3RXaXRoS2V5KGtleSwgdmFsdWUpIHtcbiAgICAvLyBpZiB0aGUgdmFsdWUgaXMgYSBub24tZW1wdHkgYXJyYXlcbiAgICAvLyBvciBpdCdzIG5vdCBhbiBhcnJheSBidXQgaXQgaXMgdHJ1dGh5XG4gICAgLy8gdGhlbiBjcmVhdGUgdGhlIG9iamVjdCB3aXRoIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZVxuICAgIC8vIGlmIG5vdCwgcmV0dXJuIGFuIGVtcHR5IGFycmF5XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDAgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlID8gX2RlZmluZVByb3BlcnR5KHt9LCBrZXksIHZhbHVlKSA6IHt9O1xuICB9XG5cbiAgdmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBib3JkZXI6IGZhbHNlLFxuICAgIGNsYXNzTmFtZTogJycsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrSWQ6IG51bGwsXG4gICAgZml4ZWRXaWR0aDogZmFsc2UsXG4gICAgaW52ZXJzZTogZmFsc2UsXG4gICAgZmxpcDogZmFsc2UsXG4gICAgaWNvbjogbnVsbCxcbiAgICBsaXN0SXRlbTogZmFsc2UsXG4gICAgcHVsbDogbnVsbCxcbiAgICBwdWxzZTogZmFsc2UsXG4gICAgcm90YXRpb246IG51bGwsXG4gICAgc2l6ZTogbnVsbCxcbiAgICBzcGluOiBmYWxzZSxcbiAgICBzcGluUHVsc2U6IGZhbHNlLFxuICAgIHNwaW5SZXZlcnNlOiBmYWxzZSxcbiAgICBiZWF0OiBmYWxzZSxcbiAgICBmYWRlOiBmYWxzZSxcbiAgICBiZWF0RmFkZTogZmFsc2UsXG4gICAgYm91bmNlOiBmYWxzZSxcbiAgICBzaGFrZTogZmFsc2UsXG4gICAgc3ltYm9sOiBmYWxzZSxcbiAgICB0aXRsZTogJycsXG4gICAgdGl0bGVJZDogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgc3dhcE9wYWNpdHk6IGZhbHNlXG4gIH07XG4gIHZhciBGb250QXdlc29tZUljb24gPSAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgYWxsUHJvcHMgPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgZGVmYXVsdFByb3BzKSwgcHJvcHMpO1xuXG4gICAgdmFyIGljb25BcmdzID0gYWxsUHJvcHMuaWNvbixcbiAgICAgICAgbWFza0FyZ3MgPSBhbGxQcm9wcy5tYXNrLFxuICAgICAgICBzeW1ib2wgPSBhbGxQcm9wcy5zeW1ib2wsXG4gICAgICAgIGNsYXNzTmFtZSA9IGFsbFByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgdGl0bGUgPSBhbGxQcm9wcy50aXRsZSxcbiAgICAgICAgdGl0bGVJZCA9IGFsbFByb3BzLnRpdGxlSWQsXG4gICAgICAgIG1hc2tJZCA9IGFsbFByb3BzLm1hc2tJZDtcbiAgICB2YXIgaWNvbkxvb2t1cCA9IG5vcm1hbGl6ZUljb25BcmdzKGljb25BcmdzKTtcbiAgICB2YXIgY2xhc3NlcyA9IG9iamVjdFdpdGhLZXkoJ2NsYXNzZXMnLCBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNsYXNzTGlzdChhbGxQcm9wcykpLCBfdG9Db25zdW1hYmxlQXJyYXkoKGNsYXNzTmFtZSB8fCAnJykuc3BsaXQoJyAnKSkpKTtcbiAgICB2YXIgdHJhbnNmb3JtID0gb2JqZWN0V2l0aEtleSgndHJhbnNmb3JtJywgdHlwZW9mIGFsbFByb3BzLnRyYW5zZm9ybSA9PT0gJ3N0cmluZycgPyBmb250YXdlc29tZVN2Z0NvcmUucGFyc2UudHJhbnNmb3JtKGFsbFByb3BzLnRyYW5zZm9ybSkgOiBhbGxQcm9wcy50cmFuc2Zvcm0pO1xuICAgIHZhciBtYXNrID0gb2JqZWN0V2l0aEtleSgnbWFzaycsIG5vcm1hbGl6ZUljb25BcmdzKG1hc2tBcmdzKSk7XG4gICAgdmFyIHJlbmRlcmVkSWNvbiA9IGZvbnRhd2Vzb21lU3ZnQ29yZS5pY29uKGljb25Mb29rdXAsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBjbGFzc2VzKSwgdHJhbnNmb3JtKSwgbWFzayksIHt9LCB7XG4gICAgICBzeW1ib2w6IHN5bWJvbCxcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIHRpdGxlSWQ6IHRpdGxlSWQsXG4gICAgICBtYXNrSWQ6IG1hc2tJZFxuICAgIH0pKTtcblxuICAgIGlmICghcmVuZGVyZWRJY29uKSB7XG4gICAgICBsb2coJ0NvdWxkIG5vdCBmaW5kIGljb24nLCBpY29uTG9va3VwKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBhYnN0cmFjdCA9IHJlbmRlcmVkSWNvbi5hYnN0cmFjdDtcbiAgICB2YXIgZXh0cmFQcm9wcyA9IHtcbiAgICAgIHJlZjogcmVmXG4gICAgfTtcbiAgICBPYmplY3Qua2V5cyhhbGxQcm9wcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICBpZiAoIWRlZmF1bHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGV4dHJhUHJvcHNba2V5XSA9IGFsbFByb3BzW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnZlcnRDdXJyeShhYnN0cmFjdFswXSwgZXh0cmFQcm9wcyk7XG4gIH0pO1xuICBGb250QXdlc29tZUljb24uZGlzcGxheU5hbWUgPSAnRm9udEF3ZXNvbWVJY29uJztcbiAgRm9udEF3ZXNvbWVJY29uLnByb3BUeXBlcyA9IHtcbiAgICBiZWF0OiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmJvb2wsXG4gICAgYm9yZGVyOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmJvb2wsXG4gICAgYmVhdEZhZGU6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICBib3VuY2U6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uc3RyaW5nLFxuICAgIGZhZGU6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICBmbGFzaDogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5ib29sLFxuICAgIG1hc2s6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0ub25lT2ZUeXBlKFtQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLm9iamVjdCwgUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5hcnJheSwgUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5zdHJpbmddKSxcbiAgICBtYXNrSWQ6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uc3RyaW5nLFxuICAgIGZpeGVkV2lkdGg6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICBpbnZlcnNlOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmJvb2wsXG4gICAgZmxpcDogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5vbmVPZihbdHJ1ZSwgZmFsc2UsICdob3Jpem9udGFsJywgJ3ZlcnRpY2FsJywgJ2JvdGgnXSksXG4gICAgaWNvbjogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5vbmVPZlR5cGUoW1Byb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0ub2JqZWN0LCBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmFycmF5LCBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnN0cmluZ10pLFxuICAgIGxpc3RJdGVtOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmJvb2wsXG4gICAgcHVsbDogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5vbmVPZihbJ3JpZ2h0JywgJ2xlZnQnXSksXG4gICAgcHVsc2U6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICByb3RhdGlvbjogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5vbmVPZihbMCwgOTAsIDE4MCwgMjcwXSksXG4gICAgc2hha2U6IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0uYm9vbCxcbiAgICBzaXplOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLm9uZU9mKFsnMnhzJywgJ3hzJywgJ3NtJywgJ2xnJywgJ3hsJywgJzJ4bCcsICcxeCcsICcyeCcsICczeCcsICc0eCcsICc1eCcsICc2eCcsICc3eCcsICc4eCcsICc5eCcsICcxMHgnXSksXG4gICAgc3BpbjogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5ib29sLFxuICAgIHNwaW5QdWxzZTogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5ib29sLFxuICAgIHNwaW5SZXZlcnNlOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmJvb2wsXG4gICAgc3ltYm9sOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLm9uZU9mVHlwZShbUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5ib29sLCBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnN0cmluZ10pLFxuICAgIHRpdGxlOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnN0cmluZyxcbiAgICB0aXRsZUlkOiBQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnN0cmluZyxcbiAgICB0cmFuc2Zvcm06IFByb3BUeXBlc19fZGVmYXVsdFtcImRlZmF1bHRcIl0ub25lT2ZUeXBlKFtQcm9wVHlwZXNfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnN0cmluZywgUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5vYmplY3RdKSxcbiAgICBzd2FwT3BhY2l0eTogUHJvcFR5cGVzX19kZWZhdWx0W1wiZGVmYXVsdFwiXS5ib29sXG4gIH07XG4gIHZhciBjb252ZXJ0Q3VycnkgPSBjb252ZXJ0LmJpbmQobnVsbCwgUmVhY3RfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQpO1xuXG4gIGV4cG9ydHMuRm9udEF3ZXNvbWVJY29uID0gRm9udEF3ZXNvbWVJY29uO1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG5cbn0pKTtcbiIsICJcInVzZSBzdHJpY3RcIjtcclxudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xyXG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xyXG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxuICAgIH07XHJcbn0pKCk7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5FbXB0eUJUcmVlID0gZXhwb3J0cy5hc1NldCA9IGV4cG9ydHMuc2ltcGxlQ29tcGFyYXRvciA9IGV4cG9ydHMuZGVmYXVsdENvbXBhcmF0b3IgPSB2b2lkIDA7XHJcbi8qKlxyXG4gKiBDb21wYXJlcyBEZWZhdWx0Q29tcGFyYWJsZXMgdG8gZm9ybSBhIHN0cmljdCBwYXJ0aWFsIG9yZGVyaW5nLlxyXG4gKlxyXG4gKiBIYW5kbGVzICsvLTAgYW5kIE5hTiBsaWtlIE1hcDogTmFOIGlzIGVxdWFsIHRvIE5hTiwgYW5kIC0wIGlzIGVxdWFsIHRvICswLlxyXG4gKlxyXG4gKiBBcnJheXMgYXJlIGNvbXBhcmVkIHVzaW5nICc8JyBhbmQgJz4nLCB3aGljaCBtYXkgY2F1c2UgdW5leHBlY3RlZCBlcXVhbGl0eTpcclxuICogZm9yIGV4YW1wbGUgWzFdIHdpbGwgYmUgY29uc2lkZXJlZCBlcXVhbCB0byBbJzEnXS5cclxuICpcclxuICogVHdvIG9iamVjdHMgd2l0aCBlcXVhbCB2YWx1ZU9mIGNvbXBhcmUgdGhlIHNhbWUsIGJ1dCBjb21wYXJlIHVuZXF1YWwgdG9cclxuICogcHJpbWl0aXZlcyB0aGF0IGhhdmUgdGhlIHNhbWUgdmFsdWUuXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWZhdWx0Q29tcGFyYXRvcihhLCBiKSB7XHJcbiAgICAvLyBTcGVjaWFsIGNhc2UgZmluaXRlIG51bWJlcnMgZmlyc3QgZm9yIHBlcmZvcm1hbmNlLlxyXG4gICAgLy8gTm90ZSB0aGF0IHRoZSB0cmljayBvZiB1c2luZyAnYSAtIGInIGFuZCBjaGVja2luZyBmb3IgTmFOIHRvIGRldGVjdCBub24tbnVtYmVyc1xyXG4gICAgLy8gZG9lcyBub3Qgd29yayBpZiB0aGUgc3RyaW5ncyBhcmUgbnVtZXJpYyAoZXg6IFwiNVwiKS4gVGhpcyB3b3VsZCBsZWFkaW5nIG1vc3QgXHJcbiAgICAvLyBjb21wYXJpc29uIGZ1bmN0aW9ucyB1c2luZyB0aGF0IGFwcHJvYWNoIHRvIGZhaWwgdG8gaGF2ZSB0cmFuc2l0aXZpdHkuXHJcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKGEpICYmIE51bWJlci5pc0Zpbml0ZShiKSkge1xyXG4gICAgICAgIHJldHVybiBhIC0gYjtcclxuICAgIH1cclxuICAgIC8vIFRoZSBkZWZhdWx0IDwgYW5kID4gb3BlcmF0b3JzIGFyZSBub3QgdG90YWxseSBvcmRlcmVkLiBUbyBhbGxvdyB0eXBlcyB0byBiZSBtaXhlZFxyXG4gICAgLy8gaW4gYSBzaW5nbGUgY29sbGVjdGlvbiwgY29tcGFyZSB0eXBlcyBhbmQgb3JkZXIgdmFsdWVzIG9mIGRpZmZlcmVudCB0eXBlcyBieSB0eXBlLlxyXG4gICAgdmFyIHRhID0gdHlwZW9mIGE7XHJcbiAgICB2YXIgdGIgPSB0eXBlb2YgYjtcclxuICAgIGlmICh0YSAhPT0gdGIpIHtcclxuICAgICAgICByZXR1cm4gdGEgPCB0YiA/IC0xIDogMTtcclxuICAgIH1cclxuICAgIGlmICh0YSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAvLyBzdGFuZGFyZGl6ZWQgSmF2YVNjcmlwdCBidWc6IG51bGwgaXMgbm90IGFuIG9iamVjdCwgYnV0IHR5cGVvZiBzYXlzIGl0IGlzXHJcbiAgICAgICAgaWYgKGEgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiBiID09PSBudWxsID8gMCA6IC0xO1xyXG4gICAgICAgIGVsc2UgaWYgKGIgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIGEgPSBhLnZhbHVlT2YoKTtcclxuICAgICAgICBiID0gYi52YWx1ZU9mKCk7XHJcbiAgICAgICAgdGEgPSB0eXBlb2YgYTtcclxuICAgICAgICB0YiA9IHR5cGVvZiBiO1xyXG4gICAgICAgIC8vIERlYWwgd2l0aCB0aGUgdHdvIHZhbHVlT2YoKXMgcHJvZHVjaW5nIGRpZmZlcmVudCB0eXBlc1xyXG4gICAgICAgIGlmICh0YSAhPT0gdGIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRhIDwgdGIgPyAtMSA6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gYSBhbmQgYiBhcmUgbm93IHRoZSBzYW1lIHR5cGUsIGFuZCB3aWxsIGJlIGEgbnVtYmVyLCBzdHJpbmcgb3IgYXJyYXkgXHJcbiAgICAvLyAod2hpY2ggd2UgYXNzdW1lIGhvbGRzIG51bWJlcnMgb3Igc3RyaW5ncyksIG9yIHNvbWV0aGluZyB1bnN1cHBvcnRlZC5cclxuICAgIGlmIChhIDwgYilcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICBpZiAoYSA+IGIpXHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICBpZiAoYSA9PT0gYilcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIC8vIE9yZGVyIE5hTiBsZXNzIHRoYW4gb3RoZXIgbnVtYmVyc1xyXG4gICAgaWYgKE51bWJlci5pc05hTihhKSlcclxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGIpID8gMCA6IC0xO1xyXG4gICAgZWxzZSBpZiAoTnVtYmVyLmlzTmFOKGIpKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgLy8gVGhpcyBjb3VsZCBiZSB0d28gb2JqZWN0cyAoZS5nLiBbN10gYW5kIFsnNyddKSB0aGF0IGFyZW4ndCBvcmRlcmVkXHJcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhKSA/IDAgOiBOdW1iZXIuTmFOO1xyXG59XHJcbmV4cG9ydHMuZGVmYXVsdENvbXBhcmF0b3IgPSBkZWZhdWx0Q29tcGFyYXRvcjtcclxuO1xyXG5mdW5jdGlvbiBzaW1wbGVDb21wYXJhdG9yKGEsIGIpIHtcclxuICAgIHJldHVybiBhID4gYiA/IDEgOiBhIDwgYiA/IC0xIDogMDtcclxufVxyXG5leHBvcnRzLnNpbXBsZUNvbXBhcmF0b3IgPSBzaW1wbGVDb21wYXJhdG9yO1xyXG47XHJcbi8qKlxyXG4gKiBBIHJlYXNvbmFibHkgZmFzdCBjb2xsZWN0aW9uIG9mIGtleS12YWx1ZSBwYWlycyB3aXRoIGEgcG93ZXJmdWwgQVBJLlxyXG4gKiBMYXJnZWx5IGNvbXBhdGlibGUgd2l0aCB0aGUgc3RhbmRhcmQgTWFwLiBCVHJlZSBpcyBhIEIrIHRyZWUgZGF0YSBzdHJ1Y3R1cmUsXHJcbiAqIHNvIHRoZSBjb2xsZWN0aW9uIGlzIHNvcnRlZCBieSBrZXkuXHJcbiAqXHJcbiAqIEIrIHRyZWVzIHRlbmQgdG8gdXNlIG1lbW9yeSBtb3JlIGVmZmljaWVudGx5IHRoYW4gaGFzaHRhYmxlcyBzdWNoIGFzIHRoZVxyXG4gKiBzdGFuZGFyZCBNYXAsIGVzcGVjaWFsbHkgd2hlbiB0aGUgY29sbGVjdGlvbiBjb250YWlucyBhIGxhcmdlIG51bWJlciBvZlxyXG4gKiBpdGVtcy4gSG93ZXZlciwgbWFpbnRhaW5pbmcgdGhlIHNvcnQgb3JkZXIgbWFrZXMgdGhlbSBtb2Rlc3RseSBzbG93ZXI6XHJcbiAqIE8obG9nIHNpemUpIHJhdGhlciB0aGFuIE8oMSkuIFRoaXMgQisgdHJlZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBPKDEpXHJcbiAqIGZhc3QgY2xvbmluZy4gSXQgYWxzbyBzdXBwb3J0cyBmcmVlemUoKSwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZW5zdXJlIHRoYXRcclxuICogYSBCVHJlZSBpcyBub3QgY2hhbmdlZCBhY2NpZGVudGFsbHkuXHJcbiAqXHJcbiAqIENvbmZ1c2luZ2x5LCB0aGUgRVM2IE1hcC5mb3JFYWNoKGMpIG1ldGhvZCBjYWxscyBjKHZhbHVlLGtleSkgaW5zdGVhZCBvZlxyXG4gKiBjKGtleSx2YWx1ZSksIGluIGNvbnRyYXN0IHRvIG90aGVyIG1ldGhvZHMgc3VjaCBhcyBzZXQoKSBhbmQgZW50cmllcygpXHJcbiAqIHdoaWNoIHB1dCB0aGUga2V5IGZpcnN0LiBJIGNhbiBvbmx5IGFzc3VtZSB0aGF0IHRoZSBvcmRlciB3YXMgcmV2ZXJzZWQgb25cclxuICogdGhlIHRoZW9yeSB0aGF0IHVzZXJzIHdvdWxkIHVzdWFsbHkgd2FudCB0byBleGFtaW5lIHZhbHVlcyBhbmQgaWdub3JlIGtleXMuXHJcbiAqIEJUcmVlJ3MgZm9yRWFjaCgpIHRoZXJlZm9yZSB3b3JrcyB0aGUgc2FtZSB3YXksIGJ1dCBhIHNlY29uZCBtZXRob2RcclxuICogYC5mb3JFYWNoUGFpcigoa2V5LHZhbHVlKT0+ey4uLn0pYCBpcyBwcm92aWRlZCB3aGljaCBzZW5kcyB5b3UgdGhlIGtleVxyXG4gKiBmaXJzdCBhbmQgdGhlIHZhbHVlIHNlY29uZDsgdGhpcyBtZXRob2QgaXMgc2xpZ2h0bHkgZmFzdGVyIGJlY2F1c2UgaXQgaXNcclxuICogdGhlIFwibmF0aXZlXCIgZm9yLWVhY2ggbWV0aG9kIGZvciB0aGlzIGNsYXNzLlxyXG4gKlxyXG4gKiBPdXQgb2YgdGhlIGJveCwgQlRyZWUgc3VwcG9ydHMga2V5cyB0aGF0IGFyZSBudW1iZXJzLCBzdHJpbmdzLCBhcnJheXMgb2ZcclxuICogbnVtYmVycy9zdHJpbmdzLCBEYXRlLCBhbmQgb2JqZWN0cyB0aGF0IGhhdmUgYSB2YWx1ZU9mKCkgbWV0aG9kIHJldHVybmluZyBhXHJcbiAqIG51bWJlciBvciBzdHJpbmcuIE90aGVyIGRhdGEgdHlwZXMsIHN1Y2ggYXMgYXJyYXlzIG9mIERhdGUgb3IgY3VzdG9tXHJcbiAqIG9iamVjdHMsIHJlcXVpcmUgYSBjdXN0b20gY29tcGFyYXRvciwgd2hpY2ggeW91IG11c3QgcGFzcyBhcyB0aGUgc2Vjb25kXHJcbiAqIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvciAodGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIG9wdGlvbmFsIGxpc3Qgb2ZcclxuICogaW5pdGlhbCBpdGVtcykuIFN5bWJvbHMgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBiZWNhdXNlIHRoZXkgYXJlIHVub3JkZXJlZFxyXG4gKiAob25lIFN5bWJvbCBpcyBuZXZlciBcImdyZWF0ZXJcIiBvciBcImxlc3NcIiB0aGFuIGFub3RoZXIpLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBHaXZlbiBhIHtuYW1lOiBzdHJpbmcsIGFnZTogbnVtYmVyfSBvYmplY3QsIHlvdSBjYW4gY3JlYXRlIGEgdHJlZSBzb3J0ZWQgYnlcclxuICogbmFtZSBhbmQgdGhlbiBieSBhZ2UgbGlrZSB0aGlzOlxyXG4gKlxyXG4gKiAgICAgdmFyIHRyZWUgPSBuZXcgQlRyZWUodW5kZWZpbmVkLCAoYSwgYikgPT4ge1xyXG4gKiAgICAgICBpZiAoYS5uYW1lID4gYi5uYW1lKVxyXG4gKiAgICAgICAgIHJldHVybiAxOyAvLyBSZXR1cm4gYSBudW1iZXIgPjAgd2hlbiBhID4gYlxyXG4gKiAgICAgICBlbHNlIGlmIChhLm5hbWUgPCBiLm5hbWUpXHJcbiAqICAgICAgICAgcmV0dXJuIC0xOyAvLyBSZXR1cm4gYSBudW1iZXIgPDAgd2hlbiBhIDwgYlxyXG4gKiAgICAgICBlbHNlIC8vIG5hbWVzIGFyZSBlcXVhbCAob3IgaW5jb21wYXJhYmxlKVxyXG4gKiAgICAgICAgIHJldHVybiBhLmFnZSAtIGIuYWdlOyAvLyBSZXR1cm4gPjAgd2hlbiBhLmFnZSA+IGIuYWdlXHJcbiAqICAgICB9KTtcclxuICpcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiQmlsbFwiLCBhZ2U6MTd9LCBcImhhcHB5XCIpO1xyXG4gKiAgICAgdHJlZS5zZXQoe25hbWU6XCJGcmFuXCIsIGFnZTo0MH0sIFwiYnVzeSAmIHN0cmVzc2VkXCIpO1xyXG4gKiAgICAgdHJlZS5zZXQoe25hbWU6XCJCaWxsXCIsIGFnZTo1NX0sIFwicmVjZW50bHkgbGFpZCBvZmZcIik7XHJcbiAqICAgICB0cmVlLmZvckVhY2hQYWlyKChrLCB2KSA9PiB7XHJcbiAqICAgICAgIGNvbnNvbGUubG9nKGBOYW1lOiAke2submFtZX0gQWdlOiAke2suYWdlfSBTdGF0dXM6ICR7dn1gKTtcclxuICogICAgIH0pO1xyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVGhlIFwicmFuZ2VcIiBtZXRob2RzIChgZm9yRWFjaCwgZm9yUmFuZ2UsIGVkaXRSYW5nZWApIHdpbGwgcmV0dXJuIHRoZSBudW1iZXJcclxuICogb2YgZWxlbWVudHMgdGhhdCB3ZXJlIHNjYW5uZWQuIEluIGFkZGl0aW9uLCB0aGUgY2FsbGJhY2sgY2FuIHJldHVybiB7YnJlYWs6Un1cclxuICogdG8gc3RvcCBlYXJseSBhbmQgcmV0dXJuIFIgZnJvbSB0aGUgb3V0ZXIgZnVuY3Rpb24uXHJcbiAqXHJcbiAqIC0gVE9ETzogVGVzdCBwZXJmb3JtYW5jZSBvZiBwcmVhbGxvY2F0aW5nIHZhbHVlcyBhcnJheSBhdCBtYXggc2l6ZVxyXG4gKiAtIFRPRE86IEFkZCBmYXN0IGluaXRpYWxpemF0aW9uIHdoZW4gYSBzb3J0ZWQgYXJyYXkgaXMgcHJvdmlkZWQgdG8gY29uc3RydWN0b3JcclxuICpcclxuICogRm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3F3ZXJ0aWUvYnRyZWUtdHlwZXNjcmlwdFxyXG4gKlxyXG4gKiBBcmUgeW91IGEgQyMgZGV2ZWxvcGVyPyBZb3UgbWlnaHQgbGlrZSB0aGUgc2ltaWxhciBkYXRhIHN0cnVjdHVyZXMgSSBtYWRlIGZvciBDIzpcclxuICogQkRpY3Rpb25hcnksIEJMaXN0LCBldGMuIFNlZSBodHRwOi8vY29yZS5sb3ljLm5ldC9jb2xsZWN0aW9ucy9cclxuICpcclxuICogQGF1dGhvciBEYXZpZCBQaWVwZ3Jhc3NcclxuICovXHJcbnZhciBCVHJlZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gZW1wdHkgQisgdHJlZS5cclxuICAgICAqIEBwYXJhbSBjb21wYXJlIEN1c3RvbSBmdW5jdGlvbiB0byBjb21wYXJlIHBhaXJzIG9mIGVsZW1lbnRzIGluIHRoZSB0cmVlLlxyXG4gICAgICogICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0Q29tcGFyYXRvciB3aWxsIGJlIHVzZWQgd2hpY2ggaXMgdmFsaWQgYXMgbG9uZyBhcyBLIGV4dGVuZHMgRGVmYXVsdENvbXBhcmFibGUuXHJcbiAgICAgKiBAcGFyYW0gZW50cmllcyBBIHNldCBvZiBrZXktdmFsdWUgcGFpcnMgdG8gaW5pdGlhbGl6ZSB0aGUgdHJlZVxyXG4gICAgICogQHBhcmFtIG1heE5vZGVTaXplIEJyYW5jaGluZyBmYWN0b3IgKG1heGltdW0gaXRlbXMgb3IgY2hpbGRyZW4gcGVyIG5vZGUpXHJcbiAgICAgKiAgIE11c3QgYmUgaW4gcmFuZ2UgNC4uMjU2LiBJZiB1bmRlZmluZWQgb3IgPDQgdGhlbiBkZWZhdWx0IGlzIHVzZWQ7IGlmID4yNTYgdGhlbiAyNTYuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIEJUcmVlKGVudHJpZXMsIGNvbXBhcmUsIG1heE5vZGVTaXplKSB7XHJcbiAgICAgICAgdGhpcy5fcm9vdCA9IEVtcHR5TGVhZjtcclxuICAgICAgICB0aGlzLl9zaXplID0gMDtcclxuICAgICAgICB0aGlzLl9tYXhOb2RlU2l6ZSA9IG1heE5vZGVTaXplID49IDQgPyBNYXRoLm1pbihtYXhOb2RlU2l6ZSwgMjU2KSA6IDMyO1xyXG4gICAgICAgIHRoaXMuX2NvbXBhcmUgPSBjb21wYXJlIHx8IGRlZmF1bHRDb21wYXJhdG9yO1xyXG4gICAgICAgIGlmIChlbnRyaWVzKVxyXG4gICAgICAgICAgICB0aGlzLnNldFBhaXJzKGVudHJpZXMpO1xyXG4gICAgfVxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgIC8vIEVTNiBNYXA8SyxWPiBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgLyoqIEdldHMgdGhlIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHRyZWUuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImxlbmd0aFwiLCB7XHJcbiAgICAgICAgLyoqIEdldHMgdGhlIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHRyZWUuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImlzRW1wdHlcIiwge1xyXG4gICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWZmIHRoZSB0cmVlIGNvbnRhaW5zIG5vIGtleS12YWx1ZSBwYWlycy4gKi9cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3NpemUgPT09IDA7IH0sXHJcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIC8qKiBSZWxlYXNlcyB0aGUgdHJlZSBzbyB0aGF0IGl0cyBzaXplIGlzIDAuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5fcm9vdCA9IEVtcHR5TGVhZjtcclxuICAgICAgICB0aGlzLl9zaXplID0gMDtcclxuICAgIH07XHJcbiAgICAvKiogUnVucyBhIGZ1bmN0aW9uIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLCBpbiBvcmRlciBmcm9tIHNtYWxsZXN0IHRvXHJcbiAgICAgKiAgbGFyZ2VzdCBrZXkuIEZvciBjb21wYXRpYmlsaXR5IHdpdGggRVM2IE1hcCwgdGhlIGFyZ3VtZW50IG9yZGVyIHRvXHJcbiAgICAgKiAgdGhlIGNhbGxiYWNrIGlzIGJhY2t3YXJkczogdmFsdWUgZmlyc3QsIHRoZW4ga2V5LiBDYWxsIGZvckVhY2hQYWlyXHJcbiAgICAgKiAgaW5zdGVhZCB0byByZWNlaXZlIHRoZSBrZXkgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LlxyXG4gICAgICogQHBhcmFtIHRoaXNBcmcgSWYgcHJvdmlkZWQsIHRoaXMgcGFyYW1ldGVyIGlzIGFzc2lnbmVkIGFzIHRoZSBgdGhpc2BcclxuICAgICAqICAgICAgICB2YWx1ZSBmb3IgZWFjaCBjYWxsYmFjay5cclxuICAgICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgdmFsdWVzIHRoYXQgd2VyZSBzZW50IHRvIHRoZSBjYWxsYmFjayxcclxuICAgICAqICAgICAgICBvciB0aGUgUiB2YWx1ZSBpZiB0aGUgY2FsbGJhY2sgcmV0dXJuZWQge2JyZWFrOlJ9LiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbiAoY2FsbGJhY2ssIHRoaXNBcmcpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlmICh0aGlzQXJnICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2suYmluZCh0aGlzQXJnKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JFYWNoUGFpcihmdW5jdGlvbiAoaywgdikgeyByZXR1cm4gY2FsbGJhY2sodiwgaywgX3RoaXMpOyB9KTtcclxuICAgIH07XHJcbiAgICAvKiogUnVucyBhIGZ1bmN0aW9uIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLCBpbiBvcmRlciBmcm9tIHNtYWxsZXN0IHRvXHJcbiAgICAgKiAgbGFyZ2VzdCBrZXkuIFRoZSBjYWxsYmFjayBjYW4gcmV0dXJuIHticmVhazpSfSAod2hlcmUgUiBpcyBhbnkgdmFsdWVcclxuICAgICAqICBleGNlcHQgdW5kZWZpbmVkKSB0byBzdG9wIGltbWVkaWF0ZWx5IGFuZCByZXR1cm4gUiBmcm9tIGZvckVhY2hQYWlyLlxyXG4gICAgICogQHBhcmFtIG9uRm91bmQgQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBmb3IgZWFjaCBrZXktdmFsdWUgcGFpci4gVGhpc1xyXG4gICAgICogICAgICAgIGZ1bmN0aW9uIGNhbiByZXR1cm4ge2JyZWFrOlJ9IHRvIHN0b3AgZWFybHkgd2l0aCByZXN1bHQgUi5cclxuICAgICAqICAgICAgICBUaGUgcmVhc29uIHRoYXQgeW91IG11c3QgcmV0dXJuIHticmVhazpSfSBpbnN0ZWFkIG9mIHNpbXBseSBSXHJcbiAgICAgKiAgICAgICAgaXRzZWxmIGlzIGZvciBjb25zaXN0ZW5jeSB3aXRoIGVkaXRSYW5nZSgpLCB3aGljaCBhbGxvd3NcclxuICAgICAqICAgICAgICBtdWx0aXBsZSBhY3Rpb25zLCBub3QganVzdCBicmVha2luZy5cclxuICAgICAqIEBwYXJhbSBpbml0aWFsQ291bnRlciBUaGlzIGlzIHRoZSB2YWx1ZSBvZiB0aGUgdGhpcmQgYXJndW1lbnQgb2ZcclxuICAgICAqICAgICAgICBgb25Gb3VuZGAgdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLiBUaGUgY291bnRlciBpbmNyZWFzZXNcclxuICAgICAqICAgICAgICBieSBvbmUgZWFjaCB0aW1lIGBvbkZvdW5kYCBpcyBjYWxsZWQuIERlZmF1bHQgdmFsdWU6IDBcclxuICAgICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFpcnMgc2VudCB0byB0aGUgY2FsbGJhY2sgKHBsdXMgaW5pdGlhbENvdW50ZXIsXHJcbiAgICAgKiAgICAgICAgaWYgeW91IHByb3ZpZGVkIG9uZSkuIElmIHRoZSBjYWxsYmFjayByZXR1cm5lZCB7YnJlYWs6Un0gdGhlblxyXG4gICAgICogICAgICAgIHRoZSBSIHZhbHVlIGlzIHJldHVybmVkIGluc3RlYWQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZm9yRWFjaFBhaXIgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGluaXRpYWxDb3VudGVyKSB7XHJcbiAgICAgICAgdmFyIGxvdyA9IHRoaXMubWluS2V5KCksIGhpZ2ggPSB0aGlzLm1heEtleSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvclJhbmdlKGxvdywgaGlnaCwgdHJ1ZSwgY2FsbGJhY2ssIGluaXRpYWxDb3VudGVyKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgcGFpciBpbiB0aGUgdHJlZSBhbmQgcmV0dXJucyB0aGUgYXNzb2NpYXRlZCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgYSB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIGtleSB3YXMgbm90IGZvdW5kLlxyXG4gICAgICogQHJldHVybnMgdGhlIHZhbHVlLCBvciBkZWZhdWx0VmFsdWUgaWYgdGhlIGtleSB3YXMgbm90IGZvdW5kLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldChrZXksIGRlZmF1bHRWYWx1ZSwgdGhpcyk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIG9yIG92ZXJ3cml0ZXMgYSBrZXktdmFsdWUgcGFpciBpbiB0aGUgQisgdHJlZS5cclxuICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc29ydCBvcmRlciBvZlxyXG4gICAgICogICAgICAgIGRhdGEgaW4gdGhlIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgZGF0YSB0byBhc3NvY2lhdGUgd2l0aCB0aGUga2V5IChvcHRpb25hbClcclxuICAgICAqIEBwYXJhbSBvdmVyd3JpdGUgV2hldGhlciB0byBvdmVyd3JpdGUgYW4gZXhpc3Rpbmcga2V5LXZhbHVlIHBhaXJcclxuICAgICAqICAgICAgICAoZGVmYXVsdDogdHJ1ZSkuIElmIHRoaXMgaXMgZmFsc2UgYW5kIHRoZXJlIGlzIGFuIGV4aXN0aW5nXHJcbiAgICAgKiAgICAgICAga2V5LXZhbHVlIHBhaXIgdGhlbiB0aGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0LlxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBhIG5ldyBrZXktdmFsdWUgcGFpciB3YXMgYWRkZWQuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKGxvZyBzaXplKVxyXG4gICAgICogTm90ZTogd2hlbiBvdmVyd3JpdGluZyBhIHByZXZpb3VzIGVudHJ5LCB0aGUga2V5IGlzIHVwZGF0ZWRcclxuICAgICAqIGFzIHdlbGwgYXMgdGhlIHZhbHVlLiBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzIHRoZSBuZXcga2V5XHJcbiAgICAgKiBoYXMgZGF0YSB0aGF0IGRvZXMgbm90IGFmZmVjdCBpdHMgc29ydCBvcmRlci5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICBpZiAodGhpcy5fcm9vdC5pc1NoYXJlZClcclxuICAgICAgICAgICAgdGhpcy5fcm9vdCA9IHRoaXMuX3Jvb3QuY2xvbmUoKTtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fcm9vdC5zZXQoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlLCB0aGlzKTtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSB0cnVlIHx8IHJlc3VsdCA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgLy8gUm9vdCBub2RlIGhhcyBzcGxpdCwgc28gY3JlYXRlIGEgbmV3IHJvb3Qgbm9kZS5cclxuICAgICAgICB0aGlzLl9yb290ID0gbmV3IEJOb2RlSW50ZXJuYWwoW3RoaXMuX3Jvb3QsIHJlc3VsdF0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBrZXkgZXhpc3RzIGluIHRoZSBCKyB0cmVlLCBmYWxzZSBpZiBub3QuXHJcbiAgICAgKiBVc2UgZ2V0KCkgZm9yIGJlc3QgcGVyZm9ybWFuY2U7IHVzZSBoYXMoKSBpZiB5b3UgbmVlZCB0b1xyXG4gICAgICogZGlzdGluZ3Vpc2ggYmV0d2VlbiBcInVuZGVmaW5lZCB2YWx1ZVwiIGFuZCBcImtleSBub3QgcHJlc2VudFwiLlxyXG4gICAgICogQHBhcmFtIGtleSBLZXkgdG8gZGV0ZWN0XHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKGxvZyBzaXplKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvclJhbmdlKGtleSwga2V5LCB0cnVlLCB1bmRlZmluZWQpICE9PSAwO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIHNpbmdsZSBrZXktdmFsdWUgcGFpciBmcm9tIHRoZSBCKyB0cmVlLlxyXG4gICAgICogQHBhcmFtIGtleSBLZXkgdG8gZmluZFxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBhIHBhaXIgd2FzIGZvdW5kIGFuZCByZW1vdmVkLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKGxvZyBzaXplKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGVsZXRlID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShrZXksIGtleSwgdHJ1ZSwgRGVsZXRlUmFuZ2UpICE9PSAwO1xyXG4gICAgfTtcclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRoID0gZnVuY3Rpb24gKGtleSwgdmFsdWUsIG92ZXJ3cml0ZSkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKTtcclxuICAgICAgICByZXR1cm4gbnUuc2V0KGtleSwgdmFsdWUsIG92ZXJ3cml0ZSkgfHwgb3ZlcndyaXRlID8gbnUgOiB0aGlzO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdHJlZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5LXZhbHVlIHBhaXJzIHNldC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRoUGFpcnMgPSBmdW5jdGlvbiAocGFpcnMsIG92ZXJ3cml0ZSkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKTtcclxuICAgICAgICByZXR1cm4gbnUuc2V0UGFpcnMocGFpcnMsIG92ZXJ3cml0ZSkgIT09IDAgfHwgb3ZlcndyaXRlID8gbnUgOiB0aGlzO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdHJlZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5cyBwcmVzZW50LlxyXG4gICAgICogIEBwYXJhbSBrZXlzIFRoZSBrZXlzIHRvIGFkZC4gSWYgYSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSB0cmVlLFxyXG4gICAgICogICAgICAgICBuZWl0aGVyIHRoZSBleGlzdGluZyBrZXkgbm9yIHRoZSBleGlzdGluZyB2YWx1ZSBpcyBtb2RpZmllZC5cclxuICAgICAqICBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiBhbGwga2V5cyBhbHJlYWR5XHJcbiAgICAgKiAgZXhpc3RlZC4gUGVyZm9ybWFuY2Ugbm90ZTogZHVlIHRvIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBjbGFzcywgYWxsXHJcbiAgICAgKiAgbm9kZShzKSBsZWFkaW5nIHRvIGV4aXN0aW5nIGtleXMgYXJlIGNsb25lZCBldmVuIGlmIHRoZSBjb2xsZWN0aW9uIGlzXHJcbiAgICAgKiAgdWx0aW1hdGVseSB1bmNoYW5nZWQuXHJcbiAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLndpdGhLZXlzID0gZnVuY3Rpb24gKGtleXMsIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKSwgY2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgY2hhbmdlZCA9IG51LnNldChrZXlzW2ldLCB1bmRlZmluZWQsIGZhbHNlKSB8fCBjaGFuZ2VkO1xyXG4gICAgICAgIHJldHVybiByZXR1cm5UaGlzSWZVbmNoYW5nZWQgJiYgIWNoYW5nZWQgPyB0aGlzIDogbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXkgcmVtb3ZlZC5cclxuICAgICAqIEBwYXJhbSByZXR1cm5UaGlzSWZVbmNoYW5nZWQgaWYgdHJ1ZSwgcmV0dXJucyB0aGlzIGlmIHRoZSBrZXkgZGlkbid0IGV4aXN0LlxyXG4gICAgICogIFBlcmZvcm1hbmNlIG5vdGU6IGR1ZSB0byB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgY2xhc3MsIG5vZGUocykgbGVhZGluZ1xyXG4gICAgICogIHRvIHdoZXJlIHRoZSBrZXkgd291bGQgaGF2ZSBiZWVuIHN0b3JlZCBhcmUgY2xvbmVkIGV2ZW4gd2hlbiB0aGUga2V5XHJcbiAgICAgKiAgdHVybnMgb3V0IG5vdCB0byBleGlzdCBhbmQgdGhlIGNvbGxlY3Rpb24gaXMgdW5jaGFuZ2VkLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dCA9IGZ1bmN0aW9uIChrZXksIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLndpdGhvdXRSYW5nZShrZXksIGtleSwgdHJ1ZSwgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleXMgcmVtb3ZlZC5cclxuICAgICAqIEBwYXJhbSByZXR1cm5UaGlzSWZVbmNoYW5nZWQgaWYgdHJ1ZSwgcmV0dXJucyB0aGlzIGlmIG5vbmUgb2YgdGhlIGtleXNcclxuICAgICAqICBleGlzdGVkLiBQZXJmb3JtYW5jZSBub3RlOiBkdWUgdG8gdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNsYXNzLFxyXG4gICAgICogIG5vZGUocykgbGVhZGluZyB0byB3aGVyZSB0aGUga2V5IHdvdWxkIGhhdmUgYmVlbiBzdG9yZWQgYXJlIGNsb25lZFxyXG4gICAgICogIGV2ZW4gd2hlbiB0aGUga2V5IHR1cm5zIG91dCBub3QgdG8gZXhpc3QuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRob3V0S2V5cyA9IGZ1bmN0aW9uIChrZXlzLCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LmRlbGV0ZUtleXMoa2V5cykgfHwgIXJldHVyblRoaXNJZlVuY2hhbmdlZCA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGtleXMgcmVtb3ZlZC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRob3V0UmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKSB7XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5jbG9uZSgpO1xyXG4gICAgICAgIGlmIChudS5kZWxldGVSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoKSA9PT0gMCAmJiByZXR1cm5UaGlzSWZVbmNoYW5nZWQpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCBwYWlycyByZW1vdmVkIHdoZW5ldmVyIHRoZSBjYWxsYmFja1xyXG4gICAgICogIGZ1bmN0aW9uIHJldHVybnMgZmFsc2UuIGB3aGVyZSgpYCBpcyBhIHN5bm9ueW0gZm9yIHRoaXMgbWV0aG9kLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZpbHRlciA9IGZ1bmN0aW9uIChjYWxsYmFjaywgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKSB7XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5ncmVlZHlDbG9uZSgpO1xyXG4gICAgICAgIHZhciBkZWw7XHJcbiAgICAgICAgbnUuZWRpdEFsbChmdW5jdGlvbiAoaywgdiwgaSkge1xyXG4gICAgICAgICAgICBpZiAoIWNhbGxiYWNrKGssIHYsIGkpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlbCA9IERlbGV0ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIWRlbCAmJiByZXR1cm5UaGlzSWZVbmNoYW5nZWQpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCBhbGwgdmFsdWVzIGFsdGVyZWQgYnkgYSBjYWxsYmFjayBmdW5jdGlvbi4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5tYXBWYWx1ZXMgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgdG1wID0ge307XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5ncmVlZHlDbG9uZSgpO1xyXG4gICAgICAgIG51LmVkaXRBbGwoZnVuY3Rpb24gKGssIHYsIGkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRtcC52YWx1ZSA9IGNhbGxiYWNrKHYsIGssIGkpLCB0bXA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG51O1xyXG4gICAgfTtcclxuICAgIEJUcmVlLnByb3RvdHlwZS5yZWR1Y2UgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xyXG4gICAgICAgIHZhciBpID0gMCwgcCA9IGluaXRpYWxWYWx1ZTtcclxuICAgICAgICB2YXIgaXQgPSB0aGlzLmVudHJpZXModGhpcy5taW5LZXkoKSwgUmV1c2VkQXJyYXkpLCBuZXh0O1xyXG4gICAgICAgIHdoaWxlICghKG5leHQgPSBpdC5uZXh0KCkpLmRvbmUpXHJcbiAgICAgICAgICAgIHAgPSBjYWxsYmFjayhwLCBuZXh0LnZhbHVlLCBpKyssIHRoaXMpO1xyXG4gICAgICAgIHJldHVybiBwO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJdGVyYXRvciBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLyoqIFJldHVybnMgYW4gaXRlcmF0b3IgdGhhdCBwcm92aWRlcyBpdGVtcyBpbiBvcmRlciAoYXNjZW5kaW5nIG9yZGVyIGlmXHJcbiAgICAgKiAgdGhlIGNvbGxlY3Rpb24ncyBjb21wYXJhdG9yIHVzZXMgYXNjZW5kaW5nIG9yZGVyLCBhcyBpcyB0aGUgZGVmYXVsdC4pXHJcbiAgICAgKiAgQHBhcmFtIGxvd2VzdEtleSBGaXJzdCBrZXkgdG8gYmUgaXRlcmF0ZWQsIG9yIHVuZGVmaW5lZCB0byBzdGFydCBhdFxyXG4gICAgICogICAgICAgICBtaW5LZXkoKS4gSWYgdGhlIHNwZWNpZmllZCBrZXkgZG9lc24ndCBleGlzdCB0aGVuIGl0ZXJhdGlvblxyXG4gICAgICogICAgICAgICBzdGFydHMgYXQgdGhlIG5leHQgaGlnaGVyIGtleSAoYWNjb3JkaW5nIHRvIHRoZSBjb21wYXJhdG9yKS5cclxuICAgICAqICBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZVxyXG4gICAgICogICAgICAgICBwYWlycywgdG8gYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgb24gZXZlcnkgaXRlcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uIChsb3dlc3RLZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgdmFyIGluZm8gPSB0aGlzLmZpbmRQYXRoKGxvd2VzdEtleSk7XHJcbiAgICAgICAgaWYgKGluZm8gPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7XHJcbiAgICAgICAgdmFyIG5vZGVxdWV1ZSA9IGluZm8ubm9kZXF1ZXVlLCBub2RlaW5kZXggPSBpbmZvLm5vZGVpbmRleCwgbGVhZiA9IGluZm8ubGVhZjtcclxuICAgICAgICB2YXIgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgdmFyIGkgPSAobG93ZXN0S2V5ID09PSB1bmRlZmluZWQgPyAtMSA6IGxlYWYuaW5kZXhPZihsb3dlc3RLZXksIDAsIHRoaXMuX2NvbXBhcmUpIC0gMSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAganVtcDogZm9yICg7Oykge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsraSA8IGxlYWYua2V5cy5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IFtsZWFmLmtleXNbaV0sIGxlYWYudmFsdWVzW2ldXSB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsraSA8IGxlYWYua2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldXNlZEFycmF5WzBdID0gbGVhZi5rZXlzW2ldLCByZXVzZWRBcnJheVsxXSA9IGxlYWYudmFsdWVzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiByZXVzZWRBcnJheSB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMjtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgbGVhZiBub2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGxldmVsID0gLTE7Oykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrbGV2ZWwgPj0gbm9kZXF1ZXVlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBqdW1wO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrbm9kZWluZGV4W2xldmVsXSA8IG5vZGVxdWV1ZVtsZXZlbF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyBsZXZlbCA+IDA7IGxldmVsLS0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVxdWV1ZVtsZXZlbCAtIDFdID0gbm9kZXF1ZXVlW2xldmVsXVtub2RlaW5kZXhbbGV2ZWxdXS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVpbmRleFtsZXZlbCAtIDFdID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFmID0gbm9kZXF1ZXVlWzBdW25vZGVpbmRleFswXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYW4gaXRlcmF0b3IgdGhhdCBwcm92aWRlcyBpdGVtcyBpbiByZXZlcnNlZCBvcmRlci5cclxuICAgICAqICBAcGFyYW0gaGlnaGVzdEtleSBLZXkgYXQgd2hpY2ggdG8gc3RhcnQgaXRlcmF0aW5nLCBvciB1bmRlZmluZWQgdG9cclxuICAgICAqICAgICAgICAgc3RhcnQgYXQgbWF4S2V5KCkuIElmIHRoZSBzcGVjaWZpZWQga2V5IGRvZXNuJ3QgZXhpc3QgdGhlbiBpdGVyYXRpb25cclxuICAgICAqICAgICAgICAgc3RhcnRzIGF0IHRoZSBuZXh0IGxvd2VyIGtleSAoYWNjb3JkaW5nIHRvIHRoZSBjb21wYXJhdG9yKS5cclxuICAgICAqICBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZVxyXG4gICAgICogICAgICAgICBwYWlycywgdG8gYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgb24gZXZlcnkgaXRlcmF0aW9uLlxyXG4gICAgICogIEBwYXJhbSBza2lwSGlnaGVzdCBJZmYgdGhpcyBmbGFnIGlzIHRydWUgYW5kIHRoZSBoaWdoZXN0S2V5IGV4aXN0cyBpbiB0aGVcclxuICAgICAqICAgICAgICAgY29sbGVjdGlvbiwgdGhlIHBhaXIgbWF0Y2hpbmcgaGlnaGVzdEtleSBpcyBza2lwcGVkLCBub3QgaXRlcmF0ZWQuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5lbnRyaWVzUmV2ZXJzZWQgPSBmdW5jdGlvbiAoaGlnaGVzdEtleSwgcmV1c2VkQXJyYXksIHNraXBIaWdoZXN0KSB7XHJcbiAgICAgICAgaWYgKGhpZ2hlc3RLZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBoaWdoZXN0S2V5ID0gdGhpcy5tYXhLZXkoKTtcclxuICAgICAgICAgICAgc2tpcEhpZ2hlc3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGlmIChoaWdoZXN0S2V5ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoKTsgLy8gY29sbGVjdGlvbiBpcyBlbXB0eVxyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgX2EgPSB0aGlzLmZpbmRQYXRoKGhpZ2hlc3RLZXkpIHx8IHRoaXMuZmluZFBhdGgodGhpcy5tYXhLZXkoKSksIG5vZGVxdWV1ZSA9IF9hLm5vZGVxdWV1ZSwgbm9kZWluZGV4ID0gX2Eubm9kZWluZGV4LCBsZWFmID0gX2EubGVhZjtcclxuICAgICAgICBjaGVjayghbm9kZXF1ZXVlWzBdIHx8IGxlYWYgPT09IG5vZGVxdWV1ZVswXVtub2RlaW5kZXhbMF1dLCBcIndhdCFcIik7XHJcbiAgICAgICAgdmFyIGkgPSBsZWFmLmluZGV4T2YoaGlnaGVzdEtleSwgMCwgdGhpcy5fY29tcGFyZSk7XHJcbiAgICAgICAgaWYgKCFza2lwSGlnaGVzdCAmJiBpIDwgbGVhZi5rZXlzLmxlbmd0aCAmJiB0aGlzLl9jb21wYXJlKGxlYWYua2V5c1tpXSwgaGlnaGVzdEtleSkgPD0gMClcclxuICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgIHZhciBzdGF0ZSA9IHJldXNlZEFycmF5ICE9PSB1bmRlZmluZWQgPyAxIDogMDtcclxuICAgICAgICByZXR1cm4gaXRlcmF0b3IoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBqdW1wOiBmb3IgKDs7KSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1pID49IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IFtsZWFmLmtleXNbaV0sIGxlYWYudmFsdWVzW2ldXSB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0taSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGxlYWYua2V5c1tpXSwgcmV1c2VkQXJyYXlbMV0gPSBsZWFmLnZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogcmV1c2VkQXJyYXkgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBuZXh0IGxlYWYgbm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsZXZlbCA9IC0xOzspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2xldmVsID49IG5vZGVxdWV1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUganVtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLW5vZGVpbmRleFtsZXZlbF0gPj0gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbGV2ZWwgPiAwOyBsZXZlbC0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlcXVldWVbbGV2ZWwgLSAxXSA9IG5vZGVxdWV1ZVtsZXZlbF1bbm9kZWluZGV4W2xldmVsXV0uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlaW5kZXhbbGV2ZWwgLSAxXSA9IG5vZGVxdWV1ZVtsZXZlbCAtIDFdLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiA9IG5vZGVxdWV1ZVswXVtub2RlaW5kZXhbMF1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gbGVhZi5rZXlzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLyogVXNlZCBieSBlbnRyaWVzKCkgYW5kIGVudHJpZXNSZXZlcnNlZCgpIHRvIHByZXBhcmUgdG8gc3RhcnQgaXRlcmF0aW5nLlxyXG4gICAgICogSXQgZGV2ZWxvcHMgYSBcIm5vZGUgcXVldWVcIiBmb3IgZWFjaCBub24tbGVhZiBsZXZlbCBvZiB0aGUgdHJlZS5cclxuICAgICAqIExldmVscyBhcmUgbnVtYmVyZWQgXCJib3R0b20tdXBcIiBzbyB0aGF0IGxldmVsIDAgaXMgYSBsaXN0IG9mIGxlYWZcclxuICAgICAqIG5vZGVzIGZyb20gYSBsb3ctbGV2ZWwgbm9uLWxlYWYgbm9kZS4gVGhlIHF1ZXVlIGF0IGEgZ2l2ZW4gbGV2ZWwgTFxyXG4gICAgICogY29uc2lzdHMgb2Ygbm9kZXF1ZXVlW0xdIHdoaWNoIGlzIHRoZSBjaGlsZHJlbiBvZiBhIEJOb2RlSW50ZXJuYWwsXHJcbiAgICAgKiBhbmQgbm9kZWluZGV4W0xdLCB0aGUgY3VycmVudCBpbmRleCB3aXRoaW4gdGhhdCBjaGlsZCBsaXN0LCBzdWNoXHJcbiAgICAgKiBzdWNoIHRoYXQgbm9kZXF1ZXVlW0wtMV0gPT09IG5vZGVxdWV1ZVtMXVtub2RlaW5kZXhbTF1dLmNoaWxkcmVuLlxyXG4gICAgICogKEhvd2V2ZXIgaW5zaWRlIHRoaXMgZnVuY3Rpb24gdGhlIG9yZGVyIGlzIHJldmVyc2VkLilcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZpbmRQYXRoID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHZhciBuZXh0bm9kZSA9IHRoaXMuX3Jvb3Q7XHJcbiAgICAgICAgdmFyIG5vZGVxdWV1ZSwgbm9kZWluZGV4O1xyXG4gICAgICAgIGlmIChuZXh0bm9kZS5pc0xlYWYpIHtcclxuICAgICAgICAgICAgbm9kZXF1ZXVlID0gRW1wdHlBcnJheSwgbm9kZWluZGV4ID0gRW1wdHlBcnJheTsgLy8gYXZvaWQgYWxsb2NhdGlvbnNcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG5vZGVxdWV1ZSA9IFtdLCBub2RlaW5kZXggPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgZCA9IDA7ICFuZXh0bm9kZS5pc0xlYWY7IGQrKykge1xyXG4gICAgICAgICAgICAgICAgbm9kZXF1ZXVlW2RdID0gbmV4dG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICBub2RlaW5kZXhbZF0gPSBrZXkgPT09IHVuZGVmaW5lZCA/IDAgOiBuZXh0bm9kZS5pbmRleE9mKGtleSwgMCwgdGhpcy5fY29tcGFyZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZWluZGV4W2RdID49IG5vZGVxdWV1ZVtkXS5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBmaXJzdCBrZXkgPiBtYXhLZXkoKVxyXG4gICAgICAgICAgICAgICAgbmV4dG5vZGUgPSBub2RlcXVldWVbZF1bbm9kZWluZGV4W2RdXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBub2RlcXVldWUucmV2ZXJzZSgpO1xyXG4gICAgICAgICAgICBub2RlaW5kZXgucmV2ZXJzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyBub2RlcXVldWU6IG5vZGVxdWV1ZSwgbm9kZWluZGV4OiBub2RlaW5kZXgsIGxlYWY6IG5leHRub2RlIH07XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wdXRlcyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgdGhpc2AgYW5kIGBvdGhlcmAuXHJcbiAgICAgKiBGb3IgZWZmaWNpZW5jeSwgdGhlIGRpZmYgaXMgcmV0dXJuZWQgdmlhIGludm9jYXRpb25zIG9mIHN1cHBsaWVkIGhhbmRsZXJzLlxyXG4gICAgICogVGhlIGNvbXB1dGF0aW9uIGlzIG9wdGltaXplZCBmb3IgdGhlIGNhc2UgaW4gd2hpY2ggdGhlIHR3byB0cmVlcyBoYXZlIGxhcmdlIGFtb3VudHNcclxuICAgICAqIG9mIHNoYXJlZCBkYXRhIChvYnRhaW5lZCBieSBjYWxsaW5nIHRoZSBgY2xvbmVgIG9yIGB3aXRoYCBBUElzKSBhbmQgd2lsbCBhdm9pZFxyXG4gICAgICogYW55IGl0ZXJhdGlvbiBvZiBzaGFyZWQgc3RhdGUuXHJcbiAgICAgKiBUaGUgaGFuZGxlcnMgY2FuIGNhdXNlIGNvbXB1dGF0aW9uIHRvIGVhcmx5IGV4aXQgYnkgcmV0dXJuaW5nIHticmVhazogUn0uXHJcbiAgICAgKiBOZWl0aGVyIG9mIHRoZSBjb2xsZWN0aW9ucyBzaG91bGQgYmUgY2hhbmdlZCBkdXJpbmcgdGhlIGNvbXBhcmlzb24gcHJvY2VzcyAoaW4geW91ciBjYWxsYmFja3MpLCBhcyB0aGlzIG1ldGhvZCBhc3N1bWVzIHRoZXkgd2lsbCBub3QgYmUgbXV0YXRlZC5cclxuICAgICAqIEBwYXJhbSBvdGhlciBUaGUgdHJlZSB0byBjb21wdXRlIGEgZGlmZiBhZ2FpbnN0LlxyXG4gICAgICogQHBhcmFtIG9ubHlUaGlzIENhbGxiYWNrIGludm9rZWQgZm9yIGFsbCBrZXlzIG9ubHkgcHJlc2VudCBpbiBgdGhpc2AuXHJcbiAgICAgKiBAcGFyYW0gb25seU90aGVyIENhbGxiYWNrIGludm9rZWQgZm9yIGFsbCBrZXlzIG9ubHkgcHJlc2VudCBpbiBgb3RoZXJgLlxyXG4gICAgICogQHBhcmFtIGRpZmZlcmVudCBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyB3aXRoIGRpZmZlcmluZyB2YWx1ZXMuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5kaWZmQWdhaW5zdCA9IGZ1bmN0aW9uIChvdGhlciwgb25seVRoaXMsIG9ubHlPdGhlciwgZGlmZmVyZW50KSB7XHJcbiAgICAgICAgaWYgKG90aGVyLl9jb21wYXJlICE9PSB0aGlzLl9jb21wYXJlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRyZWUgY29tcGFyYXRvcnMgYXJlIG5vdCB0aGUgc2FtZS5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmlzRW1wdHkgfHwgb3RoZXIuaXNFbXB0eSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0VtcHR5ICYmIG90aGVyLmlzRW1wdHkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAvLyBJZiBvbmUgdHJlZSBpcyBlbXB0eSwgZXZlcnl0aGluZyB3aWxsIGJlIGFuIG9ubHlUaGlzL29ubHlPdGhlci5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBvbmx5T3RoZXIgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEJUcmVlLnN0ZXBUb0VuZChCVHJlZS5tYWtlRGlmZkN1cnNvcihvdGhlciksIG9ubHlPdGhlcik7XHJcbiAgICAgICAgICAgIHJldHVybiBvbmx5VGhpcyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogQlRyZWUuc3RlcFRvRW5kKEJUcmVlLm1ha2VEaWZmQ3Vyc29yKHRoaXMpLCBvbmx5VGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEN1cnNvci1iYXNlZCBkaWZmIGFsZ29yaXRobSBpcyBhcyBmb2xsb3dzOlxyXG4gICAgICAgIC8vIC0gVW50aWwgbmVpdGhlciBjdXJzb3IgaGFzIG5hdmlnYXRlZCB0byB0aGUgZW5kIG9mIHRoZSB0cmVlLCBkbyB0aGUgZm9sbG93aW5nOlxyXG4gICAgICAgIC8vICAtIElmIHRoZSBgdGhpc2AgY3Vyc29yIGlzIFwiYmVoaW5kXCIgdGhlIGBvdGhlcmAgY3Vyc29yIChzdHJpY3RseSA8LCB2aWEgY29tcGFyZSksIGFkdmFuY2UgaXQuXHJcbiAgICAgICAgLy8gIC0gT3RoZXJ3aXNlLCBhZHZhbmNlIHRoZSBgb3RoZXJgIGN1cnNvci5cclxuICAgICAgICAvLyAgLSBBbnkgdGltZSBhIGN1cnNvciBpcyBzdGVwcGVkLCBwZXJmb3JtIHRoZSBmb2xsb3dpbmc6XHJcbiAgICAgICAgLy8gICAgLSBJZiBlaXRoZXIgY3Vyc29yIHBvaW50cyB0byBhIGtleS92YWx1ZSBwYWlyOlxyXG4gICAgICAgIC8vICAgICAgLSBJZiB0aGlzQ3Vyc29yID09PSBvdGhlckN1cnNvciBhbmQgdGhlIHZhbHVlcyBkaWZmZXIsIGl0IGlzIGEgRGlmZmVyZW50LlxyXG4gICAgICAgIC8vICAgICAgLSBJZiB0aGlzQ3Vyc29yID4gb3RoZXJDdXJzb3IgYW5kIG90aGVyQ3Vyc29yIGlzIGF0IGEga2V5L3ZhbHVlIHBhaXIsIGl0IGlzIGFuIE9ubHlPdGhlci5cclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA8IG90aGVyQ3Vyc29yIGFuZCB0aGlzQ3Vyc29yIGlzIGF0IGEga2V5L3ZhbHVlIHBhaXIsIGl0IGlzIGFuIE9ubHlUaGlzIGFzIGxvbmcgYXMgdGhlIG1vc3QgcmVjZW50IFxyXG4gICAgICAgIC8vICAgICAgICBjdXJzb3Igc3RlcCB3YXMgKm5vdCogb3RoZXJDdXJzb3IgYWR2YW5jaW5nIGZyb20gYSB0aWUuIFRoZSBleHRyYSBjb25kaXRpb24gYXZvaWRzIGVycm9uZW91cyBPbmx5T3RoZXIgY2FsbHMgXHJcbiAgICAgICAgLy8gICAgICAgIHRoYXQgd291bGQgb2NjdXIgZHVlIHRvIG90aGVyQ3Vyc29yIGJlaW5nIHRoZSBcImxlYWRlclwiLlxyXG4gICAgICAgIC8vICAgIC0gT3RoZXJ3aXNlLCBpZiBib3RoIGN1cnNvcnMgcG9pbnQgdG8gbm9kZXMsIGNvbXBhcmUgdGhlbS4gSWYgdGhleSBhcmUgZXF1YWwgYnkgcmVmZXJlbmNlIChzaGFyZWQpLCBza2lwXHJcbiAgICAgICAgLy8gICAgICBib3RoIGN1cnNvcnMgdG8gdGhlIG5leHQgbm9kZSBpbiB0aGUgd2Fsay5cclxuICAgICAgICAvLyAtIE9uY2Ugb25lIGN1cnNvciBoYXMgZmluaXNoZWQgc3RlcHBpbmcsIGFueSByZW1haW5pbmcgc3RlcHMgKGlmIGFueSkgYXJlIHRha2VuIGFuZCBrZXkvdmFsdWUgcGFpcnMgYXJlIGxvZ2dlZFxyXG4gICAgICAgIC8vICAgYXMgT25seU90aGVyIChpZiBvdGhlckN1cnNvciBpcyBzdGVwcGluZykgb3IgT25seVRoaXMgKGlmIHRoaXNDdXJzb3IgaXMgc3RlcHBpbmcpLlxyXG4gICAgICAgIC8vIFRoaXMgYWxnb3JpdGhtIGdpdmVzIHRoZSBjcml0aWNhbCBndWFyYW50ZWUgdGhhdCBhbGwgbG9jYXRpb25zIChib3RoIG5vZGVzIGFuZCBrZXkvdmFsdWUgcGFpcnMpIGluIGJvdGggdHJlZXMgdGhhdCBcclxuICAgICAgICAvLyBhcmUgaWRlbnRpY2FsIGJ5IHZhbHVlIChhbmQgcG9zc2libHkgYnkgcmVmZXJlbmNlKSB3aWxsIGJlIHZpc2l0ZWQgKmF0IHRoZSBzYW1lIHRpbWUqIGJ5IHRoZSBjdXJzb3JzLlxyXG4gICAgICAgIC8vIFRoaXMgcmVtb3ZlcyB0aGUgcG9zc2liaWxpdHkgb2YgZW1pdHRpbmcgaW5jb3JyZWN0IGRpZmZzLCBhcyB3ZWxsIGFzIGFsbG93aW5nIGZvciBza2lwcGluZyBzaGFyZWQgbm9kZXMuXHJcbiAgICAgICAgdmFyIF9jb21wYXJlID0gdGhpcy5fY29tcGFyZTtcclxuICAgICAgICB2YXIgdGhpc0N1cnNvciA9IEJUcmVlLm1ha2VEaWZmQ3Vyc29yKHRoaXMpO1xyXG4gICAgICAgIHZhciBvdGhlckN1cnNvciA9IEJUcmVlLm1ha2VEaWZmQ3Vyc29yKG90aGVyKTtcclxuICAgICAgICAvLyBJdCBkb2Vzbid0IG1hdHRlciBob3cgdGhpc1N0ZXBwZWRMYXN0IGlzIGluaXRpYWxpemVkLlxyXG4gICAgICAgIC8vIFN0ZXAgb3JkZXIgaXMgb25seSB1c2VkIHdoZW4gZWl0aGVyIGN1cnNvciBpcyBhdCBhIGxlYWYsIGFuZCBjdXJzb3JzIGFsd2F5cyBzdGFydCBhdCBhIG5vZGUuXHJcbiAgICAgICAgdmFyIHRoaXNTdWNjZXNzID0gdHJ1ZSwgb3RoZXJTdWNjZXNzID0gdHJ1ZSwgcHJldkN1cnNvck9yZGVyID0gQlRyZWUuY29tcGFyZSh0aGlzQ3Vyc29yLCBvdGhlckN1cnNvciwgX2NvbXBhcmUpO1xyXG4gICAgICAgIHdoaWxlICh0aGlzU3VjY2VzcyAmJiBvdGhlclN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdmFyIGN1cnNvck9yZGVyID0gQlRyZWUuY29tcGFyZSh0aGlzQ3Vyc29yLCBvdGhlckN1cnNvciwgX2NvbXBhcmUpO1xyXG4gICAgICAgICAgICB2YXIgdGhpc0xlYWYgPSB0aGlzQ3Vyc29yLmxlYWYsIHRoaXNJbnRlcm5hbFNwaW5lID0gdGhpc0N1cnNvci5pbnRlcm5hbFNwaW5lLCB0aGlzTGV2ZWxJbmRpY2VzID0gdGhpc0N1cnNvci5sZXZlbEluZGljZXM7XHJcbiAgICAgICAgICAgIHZhciBvdGhlckxlYWYgPSBvdGhlckN1cnNvci5sZWFmLCBvdGhlckludGVybmFsU3BpbmUgPSBvdGhlckN1cnNvci5pbnRlcm5hbFNwaW5lLCBvdGhlckxldmVsSW5kaWNlcyA9IG90aGVyQ3Vyc29yLmxldmVsSW5kaWNlcztcclxuICAgICAgICAgICAgaWYgKHRoaXNMZWFmIHx8IG90aGVyTGVhZikge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnNvcnMgd2VyZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBsYXN0IHN0ZXAsIHRoZW4gdGhlcmUgaXMgbm8gd29yayB0byBiZSBkb25lLlxyXG4gICAgICAgICAgICAgICAgaWYgKHByZXZDdXJzb3JPcmRlciAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JPcmRlciA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc0xlYWYgJiYgb3RoZXJMZWFmICYmIGRpZmZlcmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXF1YWwga2V5cywgY2hlY2sgZm9yIG1vZGlmaWNhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWxUaGlzID0gdGhpc0xlYWYudmFsdWVzW3RoaXNMZXZlbEluZGljZXNbdGhpc0xldmVsSW5kaWNlcy5sZW5ndGggLSAxXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsT3RoZXIgPSBvdGhlckxlYWYudmFsdWVzW290aGVyTGV2ZWxJbmRpY2VzW290aGVyTGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmlzKHZhbFRoaXMsIHZhbE90aGVyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBkaWZmZXJlbnQodGhpc0N1cnNvci5jdXJyZW50S2V5LCB2YWxUaGlzLCB2YWxPdGhlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuYnJlYWspXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3Vyc29yT3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2UsIHdlIGtub3cgdGhhdCBlaXRoZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEuIG90aGVyQ3Vyc29yIHN0ZXBwZWQgbGFzdCBmcm9tIGEgc3RhcnRpbmcgcG9zaXRpb24gdGhhdCB0cmFpbGVkIHRoaXNDdXJzb3IsIGFuZCBpcyBzdGlsbCBiZWhpbmQsIG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIDIuIHRoaXNDdXJzb3Igc3RlcHBlZCBsYXN0IGFuZCBsZWFwZnJvZ2dlZCBvdGhlckN1cnNvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIgb2YgdGhlc2UgY2FzZXMgaXMgYW4gXCJvbmx5IG90aGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyTGVhZiAmJiBvbmx5T3RoZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvdGhlclZhbCA9IG90aGVyTGVhZi52YWx1ZXNbb3RoZXJMZXZlbEluZGljZXNbb3RoZXJMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9ubHlPdGhlcihvdGhlckN1cnNvci5jdXJyZW50S2V5LCBvdGhlclZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9ubHlUaGlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzTGVhZiAmJiBwcmV2Q3Vyc29yT3JkZXIgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWxUaGlzID0gdGhpc0xlYWYudmFsdWVzW3RoaXNMZXZlbEluZGljZXNbdGhpc0xldmVsSW5kaWNlcy5sZW5ndGggLSAxXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gb25seVRoaXModGhpc0N1cnNvci5jdXJyZW50S2V5LCB2YWxUaGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmJyZWFrKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXNMZWFmICYmICFvdGhlckxlYWYgJiYgY3Vyc29yT3JkZXIgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBsYXN0VGhpcyA9IHRoaXNJbnRlcm5hbFNwaW5lLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgbGFzdE90aGVyID0gb3RoZXJJbnRlcm5hbFNwaW5lLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgbm9kZVRoaXMgPSB0aGlzSW50ZXJuYWxTcGluZVtsYXN0VGhpc11bdGhpc0xldmVsSW5kaWNlc1tsYXN0VGhpc11dO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5vZGVPdGhlciA9IG90aGVySW50ZXJuYWxTcGluZVtsYXN0T3RoZXJdW290aGVyTGV2ZWxJbmRpY2VzW2xhc3RPdGhlcl1dO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGVPdGhlciA9PT0gbm9kZVRoaXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2Q3Vyc29yT3JkZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNTdWNjZXNzID0gQlRyZWUuc3RlcCh0aGlzQ3Vyc29yLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICBvdGhlclN1Y2Nlc3MgPSBCVHJlZS5zdGVwKG90aGVyQ3Vyc29yLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwcmV2Q3Vyc29yT3JkZXIgPSBjdXJzb3JPcmRlcjtcclxuICAgICAgICAgICAgaWYgKGN1cnNvck9yZGVyIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpc1N1Y2Nlc3MgPSBCVHJlZS5zdGVwKHRoaXNDdXJzb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb3RoZXJTdWNjZXNzID0gQlRyZWUuc3RlcChvdGhlckN1cnNvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNTdWNjZXNzICYmIG9ubHlUaGlzKVxyXG4gICAgICAgICAgICByZXR1cm4gQlRyZWUuZmluaXNoQ3Vyc29yV2Fsayh0aGlzQ3Vyc29yLCBvdGhlckN1cnNvciwgX2NvbXBhcmUsIG9ubHlUaGlzKTtcclxuICAgICAgICBpZiAob3RoZXJTdWNjZXNzICYmIG9ubHlPdGhlcilcclxuICAgICAgICAgICAgcmV0dXJuIEJUcmVlLmZpbmlzaEN1cnNvcldhbGsob3RoZXJDdXJzb3IsIHRoaXNDdXJzb3IsIF9jb21wYXJlLCBvbmx5T3RoZXIpO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGRpZmZBZ2FpbnN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBCVHJlZS5maW5pc2hDdXJzb3JXYWxrID0gZnVuY3Rpb24gKGN1cnNvciwgY3Vyc29yRmluaXNoZWQsIGNvbXBhcmVLZXlzLCBjYWxsYmFjaykge1xyXG4gICAgICAgIHZhciBjb21wYXJlZCA9IEJUcmVlLmNvbXBhcmUoY3Vyc29yLCBjdXJzb3JGaW5pc2hlZCwgY29tcGFyZUtleXMpO1xyXG4gICAgICAgIGlmIChjb21wYXJlZCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpZiAoIUJUcmVlLnN0ZXAoY3Vyc29yKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGNvbXBhcmVkIDwgMCkge1xyXG4gICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJjdXJzb3Igd2FsayB0ZXJtaW5hdGVkIGVhcmx5XCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gQlRyZWUuc3RlcFRvRW5kKGN1cnNvciwgY2FsbGJhY2spO1xyXG4gICAgfTtcclxuICAgIEJUcmVlLnN0ZXBUb0VuZCA9IGZ1bmN0aW9uIChjdXJzb3IsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIGNhblN0ZXAgPSB0cnVlO1xyXG4gICAgICAgIHdoaWxlIChjYW5TdGVwKSB7XHJcbiAgICAgICAgICAgIHZhciBsZWFmID0gY3Vyc29yLmxlYWYsIGxldmVsSW5kaWNlcyA9IGN1cnNvci5sZXZlbEluZGljZXMsIGN1cnJlbnRLZXkgPSBjdXJzb3IuY3VycmVudEtleTtcclxuICAgICAgICAgICAgaWYgKGxlYWYpIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGxlYWYudmFsdWVzW2xldmVsSW5kaWNlc1tsZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGNhbGxiYWNrKGN1cnJlbnRLZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmJyZWFrKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FuU3RlcCA9IEJUcmVlLnN0ZXAoY3Vyc29yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCVHJlZS5tYWtlRGlmZkN1cnNvciA9IGZ1bmN0aW9uICh0cmVlKSB7XHJcbiAgICAgICAgdmFyIF9yb290ID0gdHJlZS5fcm9vdCwgaGVpZ2h0ID0gdHJlZS5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHsgaGVpZ2h0OiBoZWlnaHQsIGludGVybmFsU3BpbmU6IFtbX3Jvb3RdXSwgbGV2ZWxJbmRpY2VzOiBbMF0sIGxlYWY6IHVuZGVmaW5lZCwgY3VycmVudEtleTogX3Jvb3QubWF4S2V5KCkgfTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEFkdmFuY2VzIHRoZSBjdXJzb3IgdG8gdGhlIG5leHQgc3RlcCBpbiB0aGUgd2FsayBvZiBpdHMgdHJlZS5cclxuICAgICAqIEN1cnNvcnMgYXJlIHdhbGtlZCBiYWNrd2FyZHMgaW4gc29ydCBvcmRlciwgYXMgdGhpcyBhbGxvd3MgdGhlbSB0byBsZXZlcmFnZSBtYXhLZXkoKSBpbiBvcmRlciB0byBiZSBjb21wYXJlZCBpbiBPKDEpLlxyXG4gICAgICogQHBhcmFtIGN1cnNvciBUaGUgY3Vyc29yIHRvIHN0ZXBcclxuICAgICAqIEBwYXJhbSBzdGVwVG9Ob2RlIElmIHRydWUsIHRoZSBjdXJzb3Igd2lsbCBiZSBhZHZhbmNlZCB0byB0aGUgbmV4dCBub2RlIChza2lwcGluZyB2YWx1ZXMpXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBzdGVwIHdhcyBjb21wbGV0ZWQgYW5kIGZhbHNlIGlmIHRoZSBzdGVwIHdvdWxkIGhhdmUgY2F1c2VkIHRoZSBjdXJzb3IgdG8gbW92ZSBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdHJlZS5cclxuICAgICAqL1xyXG4gICAgQlRyZWUuc3RlcCA9IGZ1bmN0aW9uIChjdXJzb3IsIHN0ZXBUb05vZGUpIHtcclxuICAgICAgICB2YXIgaW50ZXJuYWxTcGluZSA9IGN1cnNvci5pbnRlcm5hbFNwaW5lLCBsZXZlbEluZGljZXMgPSBjdXJzb3IubGV2ZWxJbmRpY2VzLCBsZWFmID0gY3Vyc29yLmxlYWY7XHJcbiAgICAgICAgaWYgKHN0ZXBUb05vZGUgPT09IHRydWUgfHwgbGVhZikge1xyXG4gICAgICAgICAgICB2YXIgbGV2ZWxzTGVuZ3RoID0gbGV2ZWxJbmRpY2VzLmxlbmd0aDtcclxuICAgICAgICAgICAgLy8gU3RlcCB0byB0aGUgbmV4dCBub2RlIG9ubHkgaWY6XHJcbiAgICAgICAgICAgIC8vIC0gV2UgYXJlIGV4cGxpY2l0bHkgZGlyZWN0ZWQgdG8gdmlhIHN0ZXBUb05vZGUsIG9yXHJcbiAgICAgICAgICAgIC8vIC0gVGhlcmUgYXJlIG5vIGtleS92YWx1ZSBwYWlycyBsZWZ0IHRvIHN0ZXAgdG8gaW4gdGhpcyBsZWFmXHJcbiAgICAgICAgICAgIGlmIChzdGVwVG9Ob2RlID09PSB0cnVlIHx8IGxldmVsSW5kaWNlc1tsZXZlbHNMZW5ndGggLSAxXSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHNwaW5lTGVuZ3RoID0gaW50ZXJuYWxTcGluZS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAvLyBSb290IGlzIGxlYWZcclxuICAgICAgICAgICAgICAgIGlmIChzcGluZUxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvLyBXYWxrIGJhY2sgdXAgdGhlIHRyZWUgdW50aWwgd2UgZmluZCBhIG5ldyBzdWJ0cmVlIHRvIGRlc2NlbmQgaW50b1xyXG4gICAgICAgICAgICAgICAgdmFyIG5vZGVMZXZlbEluZGV4ID0gc3BpbmVMZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIGxldmVsSW5kZXhXYWxrQmFjayA9IG5vZGVMZXZlbEluZGV4O1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxldmVsSW5kZXhXYWxrQmFjayA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxldmVsSW5kaWNlc1tsZXZlbEluZGV4V2Fsa0JhY2tdID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmRleFdhbGtCYWNrIDwgbGV2ZWxzTGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGxlYWYgc3RhdGUgZnJvbSBjdXJzb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5sZWFmID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxJbmRpY2VzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHdhbGtlZCB1cHdhcmRzIHBhc3QgYW55IGludGVybmFsIG5vZGUsIHNsaWNlIHRoZW0gb3V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZXZlbEluZGV4V2Fsa0JhY2sgPCBub2RlTGV2ZWxJbmRleClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5pbnRlcm5hbFNwaW5lID0gaW50ZXJuYWxTcGluZS5zbGljZSgwLCBsZXZlbEluZGV4V2Fsa0JhY2sgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSB0byBuZXcgaW50ZXJuYWwgbm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY3VycmVudEtleSA9IGludGVybmFsU3BpbmVbbGV2ZWxJbmRleFdhbGtCYWNrXVstLWxldmVsSW5kaWNlc1tsZXZlbEluZGV4V2Fsa0JhY2tdXS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5kZXhXYWxrQmFjay0tO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gQ3Vyc29yIGlzIGluIHRoZSBmYXIgbGVmdCBsZWFmIG9mIHRoZSB0cmVlLCBubyBtb3JlIG5vZGVzIHRvIGVudW1lcmF0ZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gTW92ZSB0byBuZXcgbGVhZiB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlSW5kZXggPSAtLWxldmVsSW5kaWNlc1tsZXZlbHNMZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgICAgIGN1cnNvci5jdXJyZW50S2V5ID0gbGVhZi5rZXlzW3ZhbHVlSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIEN1cnNvciBkb2VzIG5vdCBwb2ludCB0byBhIHZhbHVlIGluIGEgbGVhZiwgc28gbW92ZSBkb3dud2FyZHNcclxuICAgICAgICAgICAgdmFyIG5leHRMZXZlbCA9IGludGVybmFsU3BpbmUubGVuZ3RoO1xyXG4gICAgICAgICAgICB2YXIgY3VycmVudExldmVsID0gbmV4dExldmVsIC0gMTtcclxuICAgICAgICAgICAgdmFyIG5vZGUgPSBpbnRlcm5hbFNwaW5lW2N1cnJlbnRMZXZlbF1bbGV2ZWxJbmRpY2VzW2N1cnJlbnRMZXZlbF1dO1xyXG4gICAgICAgICAgICBpZiAobm9kZS5pc0xlYWYpIHtcclxuICAgICAgICAgICAgICAgIC8vIEVudGVyaW5nIGludG8gYSBsZWFmLiBTZXQgdGhlIGN1cnNvciB0byBwb2ludCBhdCB0aGUgbGFzdCBrZXkvdmFsdWUgcGFpci5cclxuICAgICAgICAgICAgICAgIGN1cnNvci5sZWFmID0gbm9kZTtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gbGV2ZWxJbmRpY2VzW25leHRMZXZlbF0gPSBub2RlLnZhbHVlcy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBub2RlLmtleXNbdmFsdWVJbmRleF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgaW50ZXJuYWxTcGluZVtuZXh0TGV2ZWxdID0gY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICB2YXIgY2hpbGRJbmRleCA9IGNoaWxkcmVuLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICBsZXZlbEluZGljZXNbbmV4dExldmVsXSA9IGNoaWxkSW5kZXg7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3IuY3VycmVudEtleSA9IGNoaWxkcmVuW2NoaWxkSW5kZXhdLm1heEtleSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmVzIHRoZSB0d28gY3Vyc29ycy4gUmV0dXJucyBhIHZhbHVlIGluZGljYXRpbmcgd2hpY2ggY3Vyc29yIGlzIGFoZWFkIGluIGEgd2Fsay5cclxuICAgICAqIE5vdGUgdGhhdCBjdXJzb3JzIGFyZSBhZHZhbmNlZCBpbiByZXZlcnNlIHNvcnRpbmcgb3JkZXIuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLmNvbXBhcmUgPSBmdW5jdGlvbiAoY3Vyc29yQSwgY3Vyc29yQiwgY29tcGFyZUtleXMpIHtcclxuICAgICAgICB2YXIgaGVpZ2h0QSA9IGN1cnNvckEuaGVpZ2h0LCBjdXJyZW50S2V5QSA9IGN1cnNvckEuY3VycmVudEtleSwgbGV2ZWxJbmRpY2VzQSA9IGN1cnNvckEubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgIHZhciBoZWlnaHRCID0gY3Vyc29yQi5oZWlnaHQsIGN1cnJlbnRLZXlCID0gY3Vyc29yQi5jdXJyZW50S2V5LCBsZXZlbEluZGljZXNCID0gY3Vyc29yQi5sZXZlbEluZGljZXM7XHJcbiAgICAgICAgLy8gUmV2ZXJzZSB0aGUgY29tcGFyaXNvbiBvcmRlciwgYXMgY3Vyc29ycyBhcmUgYWR2YW5jZWQgaW4gcmV2ZXJzZSBzb3J0aW5nIG9yZGVyXHJcbiAgICAgICAgdmFyIGtleUNvbXBhcmlzb24gPSBjb21wYXJlS2V5cyhjdXJyZW50S2V5QiwgY3VycmVudEtleUEpO1xyXG4gICAgICAgIGlmIChrZXlDb21wYXJpc29uICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBrZXlDb21wYXJpc29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBOb3JtYWxpemUgZGVwdGggdmFsdWVzIHJlbGF0aXZlIHRvIHRoZSBzaG9ydGVzdCB0cmVlLlxyXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGNvbmN1cnJlbnQgY3Vyc29yIHdhbGtzIG9mIHRyZWVzIG9mIGRpZmZlcmluZyBoZWlnaHRzIGNhbiByZWxpYWJseSBsYW5kIG9uIHNoYXJlZCBub2RlcyBhdCB0aGUgc2FtZSB0aW1lLlxyXG4gICAgICAgIC8vIFRvIGFjY29tcGxpc2ggdGhpcywgYSBjdXJzb3IgdGhhdCBpcyBvbiBhbiBpbnRlcm5hbCBub2RlIGF0IGRlcHRoIEQxIHdpdGggbWF4S2V5IFggaXMgY29uc2lkZXJlZCBcImJlaGluZFwiIGEgY3Vyc29yIG9uIGFuXHJcbiAgICAgICAgLy8gaW50ZXJuYWwgbm9kZSBhdCBkZXB0aCBEMiB3aXRoIG1heEtleSBZLCB3aGVuIEQxIDwgRDIuIFRodXMsIGFsd2F5cyB3YWxraW5nIHRoZSBjdXJzb3IgdGhhdCBpcyBcImJlaGluZFwiIHdpbGwgYWxsb3cgdGhlIGN1cnNvclxyXG4gICAgICAgIC8vIGF0IHNoYWxsb3dlciBkZXB0aCAoYnV0IGVxdWFsIG1heEtleSkgdG8gXCJjYXRjaCB1cFwiIGFuZCBsYW5kIG9uIHNoYXJlZCBub2Rlcy5cclxuICAgICAgICB2YXIgaGVpZ2h0TWluID0gaGVpZ2h0QSA8IGhlaWdodEIgPyBoZWlnaHRBIDogaGVpZ2h0QjtcclxuICAgICAgICB2YXIgZGVwdGhBTm9ybWFsaXplZCA9IGxldmVsSW5kaWNlc0EubGVuZ3RoIC0gKGhlaWdodEEgLSBoZWlnaHRNaW4pO1xyXG4gICAgICAgIHZhciBkZXB0aEJOb3JtYWxpemVkID0gbGV2ZWxJbmRpY2VzQi5sZW5ndGggLSAoaGVpZ2h0QiAtIGhlaWdodE1pbik7XHJcbiAgICAgICAgcmV0dXJuIGRlcHRoQU5vcm1hbGl6ZWQgLSBkZXB0aEJOb3JtYWxpemVkO1xyXG4gICAgfTtcclxuICAgIC8vIEVuZCBvZiBoZWxwZXIgbWV0aG9kcyBmb3IgZGlmZkFnYWluc3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvKiogUmV0dXJucyBhIG5ldyBpdGVyYXRvciBmb3IgaXRlcmF0aW5nIHRoZSBrZXlzIG9mIGVhY2ggcGFpciBpbiBhc2NlbmRpbmcgb3JkZXIuXHJcbiAgICAgKiAgQHBhcmFtIGZpcnN0S2V5OiBNaW5pbXVtIGtleSB0byBpbmNsdWRlIGluIHRoZSBvdXRwdXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uIChmaXJzdEtleSkge1xyXG4gICAgICAgIHZhciBpdCA9IHRoaXMuZW50cmllcyhmaXJzdEtleSwgUmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIHJldHVybiBpdGVyYXRvcihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBuID0gaXQubmV4dCgpO1xyXG4gICAgICAgICAgICBpZiAobi52YWx1ZSlcclxuICAgICAgICAgICAgICAgIG4udmFsdWUgPSBuLnZhbHVlWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gbjtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIG5ldyBpdGVyYXRvciBmb3IgaXRlcmF0aW5nIHRoZSB2YWx1ZXMgb2YgZWFjaCBwYWlyIGluIG9yZGVyIGJ5IGtleS5cclxuICAgICAqICBAcGFyYW0gZmlyc3RLZXk6IE1pbmltdW0ga2V5IHdob3NlIGFzc29jaWF0ZWQgdmFsdWUgaXMgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS52YWx1ZXMgPSBmdW5jdGlvbiAoZmlyc3RLZXkpIHtcclxuICAgICAgICB2YXIgaXQgPSB0aGlzLmVudHJpZXMoZmlyc3RLZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gaXRlcmF0b3IoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgbiA9IGl0Lm5leHQoKTtcclxuICAgICAgICAgICAgaWYgKG4udmFsdWUpXHJcbiAgICAgICAgICAgICAgICBuLnZhbHVlID0gbi52YWx1ZVsxXTtcclxuICAgICAgICAgICAgcmV0dXJuIG47XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJtYXhOb2RlU2l6ZVwiLCB7XHJcbiAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvLyBBZGRpdGlvbmFsIG1ldGhvZHMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgIC8qKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGlsZHJlbi92YWx1ZXMgYmVmb3JlIG5vZGVzIHdpbGwgc3BsaXQuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXhOb2RlU2l6ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvKiogR2V0cyB0aGUgbG93ZXN0IGtleSBpbiB0aGUgdHJlZS4gQ29tcGxleGl0eTogTyhsb2cgc2l6ZSkgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5taW5LZXkgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9yb290Lm1pbktleSgpOyB9O1xyXG4gICAgLyoqIEdldHMgdGhlIGhpZ2hlc3Qga2V5IGluIHRoZSB0cmVlLiBDb21wbGV4aXR5OiBPKDEpICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWF4S2V5ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcm9vdC5tYXhLZXkoKTsgfTtcclxuICAgIC8qKiBRdWlja2x5IGNsb25lcyB0aGUgdHJlZSBieSBtYXJraW5nIHRoZSByb290IG5vZGUgYXMgc2hhcmVkLlxyXG4gICAgICogIEJvdGggY29waWVzIHJlbWFpbiBlZGl0YWJsZS4gV2hlbiB5b3UgbW9kaWZ5IGVpdGhlciBjb3B5LCBhbnlcclxuICAgICAqICBub2RlcyB0aGF0IGFyZSBzaGFyZWQgKG9yIHBvdGVudGlhbGx5IHNoYXJlZCkgYmV0d2VlbiB0aGUgdHdvXHJcbiAgICAgKiAgY29waWVzIGFyZSBjbG9uZWQgc28gdGhhdCB0aGUgY2hhbmdlcyBkbyBub3QgYWZmZWN0IG90aGVyIGNvcGllcy5cclxuICAgICAqICBUaGlzIGlzIGtub3duIGFzIGNvcHktb24td3JpdGUgYmVoYXZpb3IsIG9yIFwibGF6eSBjb3B5aW5nXCIuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5fcm9vdC5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBCVHJlZSh1bmRlZmluZWQsIHRoaXMuX2NvbXBhcmUsIHRoaXMuX21heE5vZGVTaXplKTtcclxuICAgICAgICByZXN1bHQuX3Jvb3QgPSB0aGlzLl9yb290O1xyXG4gICAgICAgIHJlc3VsdC5fc2l6ZSA9IHRoaXMuX3NpemU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgICAvKiogUGVyZm9ybXMgYSBncmVlZHkgY2xvbmUsIGltbWVkaWF0ZWx5IGR1cGxpY2F0aW5nIGFueSBub2RlcyB0aGF0IGFyZVxyXG4gICAgICogIG5vdCBjdXJyZW50bHkgbWFya2VkIGFzIHNoYXJlZCwgaW4gb3JkZXIgdG8gYXZvaWQgbWFya2luZyBhbnlcclxuICAgICAqICBhZGRpdGlvbmFsIG5vZGVzIGFzIHNoYXJlZC5cclxuICAgICAqICBAcGFyYW0gZm9yY2UgQ2xvbmUgYWxsIG5vZGVzLCBldmVuIHNoYXJlZCBvbmVzLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ3JlZWR5Q2xvbmUgPSBmdW5jdGlvbiAoZm9yY2UpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IEJUcmVlKHVuZGVmaW5lZCwgdGhpcy5fY29tcGFyZSwgdGhpcy5fbWF4Tm9kZVNpemUpO1xyXG4gICAgICAgIHJlc3VsdC5fcm9vdCA9IHRoaXMuX3Jvb3QuZ3JlZWR5Q2xvbmUoZm9yY2UpO1xyXG4gICAgICAgIHJlc3VsdC5fc2l6ZSA9IHRoaXMuX3NpemU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgICAvKiogR2V0cyBhbiBhcnJheSBmaWxsZWQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIHRyZWUsIHNvcnRlZCBieSBrZXkgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKG1heExlbmd0aCkge1xyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAweDdGRkZGRkZGOyB9XHJcbiAgICAgICAgdmFyIG1pbiA9IHRoaXMubWluS2V5KCksIG1heCA9IHRoaXMubWF4S2V5KCk7XHJcbiAgICAgICAgaWYgKG1pbiAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSYW5nZShtaW4sIG1heCwgdHJ1ZSwgbWF4TGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYW4gYXJyYXkgb2YgYWxsIGtleXMsIHNvcnRlZCAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmtleXNBcnJheSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7IHJlc3VsdHMucHVzaChrKTsgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYW4gYXJyYXkgb2YgYWxsIHZhbHVlcywgc29ydGVkIGJ5IGtleSAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLnZhbHVlc0FycmF5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciByZXN1bHRzID0gW107XHJcbiAgICAgICAgdGhpcy5fcm9vdC5mb3JSYW5nZSh0aGlzLm1pbktleSgpLCB0aGlzLm1heEtleSgpLCB0cnVlLCBmYWxzZSwgdGhpcywgMCwgZnVuY3Rpb24gKGssIHYpIHsgcmVzdWx0cy5wdXNoKHYpOyB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH07XHJcbiAgICAvKiogR2V0cyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHRyZWUncyBkYXRhIGJhc2VkIG9uIHRvQXJyYXkoKS4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0FycmF5KCkudG9TdHJpbmcoKTtcclxuICAgIH07XHJcbiAgICAvKiogU3RvcmVzIGEga2V5LXZhbHVlIHBhaXIgb25seSBpZiB0aGUga2V5IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgdHJlZS5cclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBuZXcga2V5IHdhcyBhZGRlZFxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5zZXRJZk5vdFByZXNlbnQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldChrZXksIHZhbHVlLCBmYWxzZSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQgcGFpciB3aG9zZSBrZXkgaXMgbGFyZ2VyIHRoYW4gdGhlIHNwZWNpZmllZCBrZXkgKG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBub25lKS5cclxuICAgICAqIElmIGtleSA9PT0gdW5kZWZpbmVkLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxvd2VzdCBwYWlyLlxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycywgdG9cclxuICAgICAqIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm5leHRIaWdoZXJQYWlyID0gZnVuY3Rpb24gKGtleSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXVzZWRBcnJheSA9IHJldXNlZEFycmF5IHx8IFtdO1xyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5taW5QYWlyKHJldXNlZEFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIHRoaXMuX2NvbXBhcmUsIGZhbHNlLCByZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQga2V5IGxhcmdlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5LCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZS5cclxuICAgICAqICBBbHNvLCBuZXh0SGlnaGVyS2V5KHVuZGVmaW5lZCkgcmV0dXJucyB0aGUgbG93ZXN0IGtleS5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm5leHRIaWdoZXJLZXkgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgdmFyIHAgPSB0aGlzLm5leHRIaWdoZXJQYWlyKGtleSwgUmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIHJldHVybiBwICYmIHBbMF07XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQgcGFpciB3aG9zZSBrZXkgaXMgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5IChvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZSkuXHJcbiAgICAgKiAgSWYga2V5ID09PSB1bmRlZmluZWQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgaGlnaGVzdCBwYWlyLlxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycywgdG9cclxuICAgICAqICAgICAgICBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBlYWNoIHRpbWUgeW91IGNhbGwgdGhpcyBtZXRob2QuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0TG93ZXJQYWlyID0gZnVuY3Rpb24gKGtleSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXVzZWRBcnJheSA9IHJldXNlZEFycmF5IHx8IFtdO1xyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5tYXhQYWlyKHJldXNlZEFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dExvd2VyKGtleSwgdGhpcy5fY29tcGFyZSwgZmFsc2UsIHJldXNlZEFycmF5KTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyB0aGUgbmV4dCBrZXkgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5LCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZS5cclxuICAgICAqICBBbHNvLCBuZXh0TG93ZXJLZXkodW5kZWZpbmVkKSByZXR1cm5zIHRoZSBoaWdoZXN0IGtleS5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm5leHRMb3dlcktleSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICB2YXIgcCA9IHRoaXMubmV4dExvd2VyUGFpcihrZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gcCAmJiBwWzBdO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cHBsaWVkIGtleSBpZiBpdCBleGlzdHNcclxuICAgICAqICBvciB0aGUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIG5leHQgbG93ZXIgcGFpciBvdGhlcndpc2UuIElmIHRoZXJlIGlzIG5vXHJcbiAgICAgKiAgbmV4dCBsb3dlciBwYWlyLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXHJcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgICAqIEBwYXJhbSByZXVzZWRBcnJheSBPcHRpb25hbCBhcnJheSB1c2VkIHJlcGVhdGVkbHkgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLCB0b1xyXG4gICAgICogICAgICAgIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IGVhY2ggdGltZSB5b3UgY2FsbCB0aGlzIG1ldGhvZC5cclxuICAgICAqICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0TG93ZXIoa2V5LCB0aGlzLl9jb21wYXJlLCB0cnVlLCByZXVzZWRBcnJheSB8fCBbXSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlyIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3VwcGxpZWQga2V5IGlmIGl0IGV4aXN0c1xyXG4gICAgICogIG9yIHRoZSBwYWlyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV4dCBsb3dlciBwYWlyIG90aGVyd2lzZS4gSWYgdGhlcmUgaXMgbm9cclxuICAgICAqICBuZXh0IGxvd2VyIHBhaXIsIHVuZGVmaW5lZCBpcyByZXR1cm5lZC5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiAgICAgICAgYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgZWFjaCB0aW1lIHlvdSBjYWxsIHRoaXMgbWV0aG9kLlxyXG4gICAgICogKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0SGlnaGVyID0gZnVuY3Rpb24gKGtleSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0SGlnaGVyKGtleSwgdGhpcy5fY29tcGFyZSwgdHJ1ZSwgcmV1c2VkQXJyYXkgfHwgW10pO1xyXG4gICAgfTtcclxuICAgIC8qKiBFZGl0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEga2V5IGluIHRoZSB0cmVlLCBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGtleSBleGlzdGVkLCBmYWxzZSBpZiBub3QuXHJcbiAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNoYW5nZUlmUHJlc2VudCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFJhbmdlKGtleSwga2V5LCB0cnVlLCBmdW5jdGlvbiAoaywgdikgeyByZXR1cm4gKHsgdmFsdWU6IHZhbHVlIH0pOyB9KSAhPT0gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEJ1aWxkcyBhbiBhcnJheSBvZiBwYWlycyBmcm9tIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2Yga2V5cywgc29ydGVkIGJ5IGtleS5cclxuICAgICAqIEVhY2ggcmV0dXJuZWQgcGFpciBpcyBhbHNvIGFuIGFycmF5OiBwYWlyWzBdIGlzIHRoZSBrZXksIHBhaXJbMV0gaXMgdGhlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IGluIHRoZSBhcnJheSB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFRoaXMgbWV0aG9kIHJldHVybnMgd2hlbiBhIGtleSBsYXJnZXIgdGhhbiB0aGlzIGlzIHJlYWNoZWQuXHJcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUhpZ2ggSWYgdGhlIGBoaWdoYCBrZXkgaXMgcHJlc2VudCwgaXRzIHBhaXIgd2lsbCBiZSBpbmNsdWRlZFxyXG4gICAgICogICAgICAgIGluIHRoZSBvdXRwdXQgaWYgYW5kIG9ubHkgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgdHJ1ZS4gTm90ZTogaWYgdGhlXHJcbiAgICAgKiAgICAgICAgYGxvd2Aga2V5IGlzIHByZXNlbnQsIGl0IGlzIGFsd2F5cyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LlxyXG4gICAgICogQHBhcmFtIG1heExlbmd0aCBMZW5ndGggbGltaXQuIGdldFJhbmdlIHdpbGwgc3RvcCBzY2FubmluZyB0aGUgdHJlZSB3aGVuXHJcbiAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBhcnJheSByZWFjaGVzIHRoaXMgc2l6ZS5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8ocmVzdWx0Lmxlbmd0aCArIGxvZyBzaXplKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ2V0UmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgbWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKG1heExlbmd0aCA9PT0gdm9pZCAwKSB7IG1heExlbmd0aCA9IDB4M0ZGRkZGRjsgfVxyXG4gICAgICAgIHZhciByZXN1bHRzID0gW107XHJcbiAgICAgICAgdGhpcy5fcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBmYWxzZSwgdGhpcywgMCwgZnVuY3Rpb24gKGssIHYpIHtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKFtrLCB2XSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzLmxlbmd0aCA+IG1heExlbmd0aCA/IEJyZWFrIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfTtcclxuICAgIC8qKiBBZGRzIGFsbCBwYWlycyBmcm9tIGEgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMuXHJcbiAgICAgKiBAcGFyYW0gcGFpcnMgUGFpcnMgdG8gYWRkIHRvIHRoaXMgdHJlZS4gSWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBrZXlzLFxyXG4gICAgICogICAgICAgIGxhdGVyIHBhaXJzIGN1cnJlbnRseSBvdmVyd3JpdGUgZWFybGllciBvbmVzIChlLmcuIFtbMCwxXSxbMCw3XV1cclxuICAgICAqICAgICAgICBhc3NvY2lhdGVzIDAgd2l0aCA3LilcclxuICAgICAqIEBwYXJhbSBvdmVyd3JpdGUgV2hldGhlciB0byBvdmVyd3JpdGUgcGFpcnMgdGhhdCBhbHJlYWR5IGV4aXN0IChpZiBmYWxzZSxcclxuICAgICAqICAgICAgICBwYWlyc1tpXSBpcyBpZ25vcmVkIHdoZW4gdGhlIGtleSBwYWlyc1tpXVswXSBhbHJlYWR5IGV4aXN0cy4pXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIHBhaXJzIGFkZGVkIHRvIHRoZSBjb2xsZWN0aW9uLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhwYWlycy5sZW5ndGggKiBsb2coc2l6ZSArIHBhaXJzLmxlbmd0aCkpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5zZXRQYWlycyA9IGZ1bmN0aW9uIChwYWlycywgb3ZlcndyaXRlKSB7XHJcbiAgICAgICAgdmFyIGFkZGVkID0gMDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXQocGFpcnNbaV1bMF0sIHBhaXJzW2ldWzFdLCBvdmVyd3JpdGUpKVxyXG4gICAgICAgICAgICAgICAgYWRkZWQrKztcclxuICAgICAgICByZXR1cm4gYWRkZWQ7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGtleXMsIGluIGFzY2VuZGluZyBvcmRlciBieSBrZXkuXHJcbiAgICAgKiBOb3RlOiB0aGUgY2FsbGJhY2sgYG9uRm91bmRgIG11c3Qgbm90IGluc2VydCBvciByZW1vdmUgaXRlbXMgaW4gdGhlXHJcbiAgICAgKiBjb2xsZWN0aW9uLiBEb2luZyBzbyBtYXkgY2F1c2UgaW5jb3JyZWN0IGRhdGEgdG8gYmUgc2VudCB0byB0aGVcclxuICAgICAqIGNhbGxiYWNrIGFmdGVyd2FyZC5cclxuICAgICAqIEBwYXJhbSBsb3cgVGhlIGZpcnN0IGtleSBzY2FubmVkIHdpbGwgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBsb3dgLlxyXG4gICAgICogQHBhcmFtIGhpZ2ggU2Nhbm5pbmcgc3RvcHMgd2hlbiBhIGtleSBsYXJnZXIgdGhhbiB0aGlzIGlzIHJlYWNoZWQuXHJcbiAgICAgKiBAcGFyYW0gaW5jbHVkZUhpZ2ggSWYgdGhlIGBoaWdoYCBrZXkgaXMgcHJlc2VudCwgYG9uRm91bmRgIGlzIGNhbGxlZCBmb3JcclxuICAgICAqICAgICAgICB0aGF0IGZpbmFsIHBhaXIgaWYgYW5kIG9ubHkgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgdHJ1ZS5cclxuICAgICAqIEBwYXJhbSBvbkZvdW5kIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2gga2V5LXZhbHVlIHBhaXIuIFRoaXNcclxuICAgICAqICAgICAgICBmdW5jdGlvbiBjYW4gcmV0dXJuIHticmVhazpSfSB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIuXHJcbiAgICAgKiBAcGFyYW0gaW5pdGlhbENvdW50ZXIgSW5pdGlhbCB0aGlyZCBhcmd1bWVudCBvZiBvbkZvdW5kLiBUaGlzIHZhbHVlXHJcbiAgICAgKiAgICAgICAgaW5jcmVhc2VzIGJ5IG9uZSBlYWNoIHRpbWUgYG9uRm91bmRgIGlzIGNhbGxlZC4gRGVmYXVsdDogMFxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiB2YWx1ZXMgZm91bmQsIG9yIFIgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkXHJcbiAgICAgKiAgICAgICAgYHticmVhazpSfWAgdG8gc3RvcCBlYXJseS5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIGl0ZW1zIHNjYW5uZWQgKyBsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZvclJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIG9uRm91bmQsIGluaXRpYWxDb3VudGVyKSB7XHJcbiAgICAgICAgdmFyIHIgPSB0aGlzLl9yb290LmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGZhbHNlLCB0aGlzLCBpbml0aWFsQ291bnRlciB8fCAwLCBvbkZvdW5kKTtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHIgPT09IFwibnVtYmVyXCIgPyByIDogci5icmVhaztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFNjYW5zIGFuZCBwb3RlbnRpYWxseSBtb2RpZmllcyB2YWx1ZXMgZm9yIGEgc3Vic2VxdWVuY2Ugb2Yga2V5cy5cclxuICAgICAqIE5vdGU6IHRoZSBjYWxsYmFjayBgb25Gb3VuZGAgc2hvdWxkIGlkZWFsbHkgYmUgYSBwdXJlIGZ1bmN0aW9uLlxyXG4gICAgICogICBTcGVjZmljYWxseSwgaXQgbXVzdCBub3QgaW5zZXJ0IGl0ZW1zLCBjYWxsIGNsb25lKCksIG9yIGNoYW5nZVxyXG4gICAgICogICB0aGUgY29sbGVjdGlvbiBleGNlcHQgdmlhIHJldHVybiB2YWx1ZTsgb3V0LW9mLWJhbmQgZWRpdGluZyBtYXlcclxuICAgICAqICAgY2F1c2UgYW4gZXhjZXB0aW9uIG9yIG1heSBjYXVzZSBpbmNvcnJlY3QgZGF0YSB0byBiZSBzZW50IHRvXHJcbiAgICAgKiAgIHRoZSBjYWxsYmFjayAoZHVwbGljYXRlIG9yIG1pc3NlZCBpdGVtcykuIEl0IG11c3Qgbm90IGNhdXNlIGFcclxuICAgICAqICAgY2xvbmUoKSBvZiB0aGUgY29sbGVjdGlvbiwgb3RoZXJ3aXNlIHRoZSBjbG9uZSBjb3VsZCBiZSBtb2RpZmllZFxyXG4gICAgICogICBieSBjaGFuZ2VzIHJlcXVlc3RlZCBieSB0aGUgY2FsbGJhY2suXHJcbiAgICAgKiBAcGFyYW0gbG93IFRoZSBmaXJzdCBrZXkgc2Nhbm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFNjYW5uaW5nIHN0b3BzIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGBvbkZvdW5kYCBpcyBjYWxsZWQgZm9yXHJcbiAgICAgKiAgICAgICAgdGhhdCBmaW5hbCBwYWlyIGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuXHJcbiAgICAgKiBAcGFyYW0gb25Gb3VuZCBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLiBUaGlzXHJcbiAgICAgKiAgICAgICAgZnVuY3Rpb24gY2FuIHJldHVybiBge3ZhbHVlOnZ9YCB0byBjaGFuZ2UgdGhlIHZhbHVlIGFzc29jaWF0ZWRcclxuICAgICAqICAgICAgICB3aXRoIHRoZSBjdXJyZW50IGtleSwgYHtkZWxldGU6dHJ1ZX1gIHRvIGRlbGV0ZSB0aGUgY3VycmVudCBwYWlyLFxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIHRvIHN0b3AgZWFybHkgd2l0aCByZXN1bHQgUiwgb3IgaXQgY2FuIHJldHVybiBub3RoaW5nXHJcbiAgICAgKiAgICAgICAgKHVuZGVmaW5lZCBvciB7fSkgdG8gY2F1c2Ugbm8gZWZmZWN0IGFuZCBjb250aW51ZSBpdGVyYXRpbmcuXHJcbiAgICAgKiAgICAgICAgYHticmVhazpSfWAgY2FuIGJlIGNvbWJpbmVkIHdpdGggb25lIG9mIHRoZSBvdGhlciB0d28gY29tbWFuZHMuXHJcbiAgICAgKiAgICAgICAgVGhlIHRoaXJkIGFyZ3VtZW50IGBjb3VudGVyYCBpcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGl0ZXJhdGVkXHJcbiAgICAgKiAgICAgICAgcHJldmlvdXNseTsgaXQgZXF1YWxzIDAgd2hlbiBgb25Gb3VuZGAgaXMgY2FsbGVkIHRoZSBmaXJzdCB0aW1lLlxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiB2YWx1ZXMgc2Nhbm5lZCwgb3IgUiBpZiB0aGUgY2FsbGJhY2sgcmV0dXJuZWRcclxuICAgICAqICAgICAgICBge2JyZWFrOlJ9YCB0byBzdG9wIGVhcmx5LlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiAgIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhudW1iZXIgb2YgaXRlbXMgc2Nhbm5lZCArIGxvZyBzaXplKVxyXG4gICAgICogICBOb3RlOiBpZiB0aGUgdHJlZSBoYXMgYmVlbiBjbG9uZWQgd2l0aCBjbG9uZSgpLCBhbnkgc2hhcmVkXHJcbiAgICAgKiAgIG5vZGVzIGFyZSBjb3BpZWQgYmVmb3JlIGBvbkZvdW5kYCBpcyBjYWxsZWQuIFRoaXMgdGFrZXMgTyhuKSB0aW1lXHJcbiAgICAgKiAgIHdoZXJlIG4gaXMgcHJvcG9ydGlvbmFsIHRvIHRoZSBhbW91bnQgb2Ygc2hhcmVkIGRhdGEgc2Nhbm5lZC5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVkaXRSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBvbkZvdW5kLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciByb290ID0gdGhpcy5fcm9vdDtcclxuICAgICAgICBpZiAocm9vdC5pc1NoYXJlZClcclxuICAgICAgICAgICAgdGhpcy5fcm9vdCA9IHJvb3QgPSByb290LmNsb25lKCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIHIgPSByb290LmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIHRydWUsIHRoaXMsIGluaXRpYWxDb3VudGVyIHx8IDAsIG9uRm91bmQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHIgPT09IFwibnVtYmVyXCIgPyByIDogci5icmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHZhciBpc1NoYXJlZCA9IHZvaWQgMDtcclxuICAgICAgICAgICAgd2hpbGUgKHJvb3Qua2V5cy5sZW5ndGggPD0gMSAmJiAhcm9vdC5pc0xlYWYpIHtcclxuICAgICAgICAgICAgICAgIGlzU2hhcmVkIHx8IChpc1NoYXJlZCA9IHJvb3QuaXNTaGFyZWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcm9vdCA9IHJvb3QgPSByb290LmtleXMubGVuZ3RoID09PSAwID8gRW1wdHlMZWFmIDpcclxuICAgICAgICAgICAgICAgICAgICByb290LmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIElmIGFueSBhbmNlc3RvciBvZiB0aGUgbmV3IHJvb3Qgd2FzIHNoYXJlZCwgdGhlIG5ldyByb290IG11c3QgYWxzbyBiZSBzaGFyZWRcclxuICAgICAgICAgICAgaWYgKGlzU2hhcmVkKSB7XHJcbiAgICAgICAgICAgICAgICByb290LmlzU2hhcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKiogU2FtZSBhcyBgZWRpdFJhbmdlYCBleGNlcHQgdGhhdCB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIGZvciBhbGwgcGFpcnMuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZWRpdEFsbCA9IGZ1bmN0aW9uIChvbkZvdW5kLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZSh0aGlzLm1pbktleSgpLCB0aGlzLm1heEtleSgpLCB0cnVlLCBvbkZvdW5kLCBpbml0aWFsQ291bnRlcik7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGEgcmFuZ2Ugb2Yga2V5LXZhbHVlIHBhaXJzIGZyb20gdGhlIEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gbG93IFRoZSBmaXJzdCBrZXkgc2Nhbm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFNjYW5uaW5nIHN0b3BzIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBgaGlnaGAga2V5LCBpZiBwcmVzZW50LCBpcyBkZWxldGVkLlxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMgdGhhdCB3ZXJlIGRlbGV0ZWQuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKGxvZyBzaXplICsgbnVtYmVyIG9mIGl0ZW1zIGRlbGV0ZWQpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5kZWxldGVSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIERlbGV0ZVJhbmdlKTtcclxuICAgIH07XHJcbiAgICAvKiogRGVsZXRlcyBhIHNlcmllcyBvZiBrZXlzIGZyb20gdGhlIGNvbGxlY3Rpb24uICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGVsZXRlS2V5cyA9IGZ1bmN0aW9uIChrZXlzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHIgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVsZXRlKGtleXNbaV0pKVxyXG4gICAgICAgICAgICAgICAgcisrO1xyXG4gICAgICAgIHJldHVybiByO1xyXG4gICAgfTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwiaGVpZ2h0XCIsIHtcclxuICAgICAgICAvKiogR2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSB0cmVlOiB0aGUgbnVtYmVyIG9mIGludGVybmFsIG5vZGVzIGJldHdlZW4gdGhlXHJcbiAgICAgICAgICogIEJUcmVlIG9iamVjdCBhbmQgaXRzIGxlYWYgbm9kZXMgKHplcm8gaWYgdGhlcmUgYXJlIG5vIGludGVybmFsIG5vZGVzKS4gKi9cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9yb290O1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gLTE7XHJcbiAgICAgICAgICAgIHdoaWxlIChub2RlKSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQrKztcclxuICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLmlzTGVhZiA/IHVuZGVmaW5lZCA6IG5vZGUuY2hpbGRyZW5bMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGhlaWdodDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvKiogTWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkgdG8gZW5zdXJlIGl0IGlzIG5vdCBhY2NpZGVudGFsbHkgbW9kaWZpZWQuXHJcbiAgICAgKiAgRnJlZXppbmcgZG9lcyBub3QgaGF2ZSB0byBiZSBwZXJtYW5lbnQ7IHVuZnJlZXplKCkgcmV2ZXJzZXMgdGhlIGVmZmVjdC5cclxuICAgICAqICBUaGlzIGlzIGFjY29tcGxpc2hlZCBieSByZXBsYWNpbmcgbXV0YXRvciBmdW5jdGlvbnMgd2l0aCBhIGZ1bmN0aW9uXHJcbiAgICAgKiAgdGhhdCB0aHJvd3MgYW4gRXJyb3IuIENvbXBhcmVkIHRvIHVzaW5nIGEgcHJvcGVydHkgKGUuZy4gdGhpcy5pc0Zyb3plbilcclxuICAgICAqICB0aGlzIGltcGxlbWVudGF0aW9uIGdpdmVzIGJldHRlciBwZXJmb3JtYW5jZSBpbiBub24tZnJvemVuIEJUcmVlcy5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZyZWV6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgdCA9IHRoaXM7XHJcbiAgICAgICAgLy8gTm90ZTogYWxsIG90aGVyIG11dGF0b3JzIHVsdGltYXRlbHkgY2FsbCBzZXQoKSBvciBlZGl0UmFuZ2UoKSBcclxuICAgICAgICAvLyAgICAgICBzbyB3ZSBkb24ndCBuZWVkIHRvIG92ZXJyaWRlIHRob3NlIG90aGVycy5cclxuICAgICAgICB0LmNsZWFyID0gdC5zZXQgPSB0LmVkaXRSYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIG1vZGlmeSBhIGZyb3plbiBCVHJlZVwiKTtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIC8qKiBFbnN1cmVzIG11dGF0aW9ucyBhcmUgYWxsb3dlZCwgcmV2ZXJzaW5nIHRoZSBlZmZlY3Qgb2YgZnJlZXplKCkuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudW5mcmVlemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZSBcIlRoZSBvcGVyYW5kIG9mIGEgJ2RlbGV0ZScgb3BlcmF0b3IgbXVzdCBiZSBvcHRpb25hbC5cIlxyXG4gICAgICAgIC8vICAgICAgICAgICAgKHdyb25nOiBkZWxldGUgZG9lcyBub3QgYWZmZWN0IHRoZSBwcm90b3R5cGUuKVxyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNsZWFyO1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBkZWxldGUgdGhpcy5zZXQ7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmVkaXRSYW5nZTtcclxuICAgIH07XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImlzRnJvemVuXCIsIHtcclxuICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB0cmVlIGFwcGVhcnMgdG8gYmUgZnJvemVuLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eSgnZWRpdFJhbmdlJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIFNjYW5zIHRoZSB0cmVlIGZvciBzaWducyBvZiBzZXJpb3VzIGJ1Z3MgKGUuZy4gdGhpcy5zaXplIGRvZXNuJ3QgbWF0Y2hcclxuICAgICAqICBudW1iZXIgb2YgZWxlbWVudHMsIGludGVybmFsIG5vZGVzIG5vdCBjYWNoaW5nIG1heCBlbGVtZW50IHByb3Blcmx5Li4uKVxyXG4gICAgICogIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhudW1iZXIgb2Ygbm9kZXMpLCBpLmUuIE8oc2l6ZSkuIFRoaXMgbWV0aG9kXHJcbiAgICAgKiAgc2tpcHMgdGhlIG1vc3QgZXhwZW5zaXZlIHRlc3QgLSB3aGV0aGVyIGFsbCBrZXlzIGFyZSBzb3J0ZWQgLSBidXQgaXRcclxuICAgICAqICBkb2VzIGNoZWNrIHRoYXQgbWF4S2V5KCkgb2YgdGhlIGNoaWxkcmVuIG9mIGludGVybmFsIG5vZGVzIGFyZSBzb3J0ZWQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuY2hlY2tWYWxpZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgc2l6ZSA9IHRoaXMuX3Jvb3QuY2hlY2tWYWxpZCgwLCB0aGlzLCAwKTtcclxuICAgICAgICBjaGVjayhzaXplID09PSB0aGlzLnNpemUsIFwic2l6ZSBtaXNtYXRjaDogY291bnRlZCBcIiwgc2l6ZSwgXCJidXQgc3RvcmVkXCIsIHRoaXMuc2l6ZSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIEJUcmVlO1xyXG59KCkpO1xyXG5leHBvcnRzLmRlZmF1bHQgPSBCVHJlZTtcclxuLyoqIEEgVHlwZVNjcmlwdCBoZWxwZXIgZnVuY3Rpb24gdGhhdCBzaW1wbHkgcmV0dXJucyBpdHMgYXJndW1lbnQsIHR5cGVkIGFzXHJcbiAqICBgSVNvcnRlZFNldDxLPmAgaWYgdGhlIEJUcmVlIGltcGxlbWVudHMgaXQsIGFzIGl0IGRvZXMgaWYgYFYgZXh0ZW5kcyB1bmRlZmluZWRgLlxyXG4gKiAgSWYgYFZgIGNhbm5vdCBiZSBgdW5kZWZpbmVkYCwgaXQgcmV0dXJucyBgdW5rbm93bmAgaW5zdGVhZC4gT3IgYXQgbGVhc3QsIHRoYXRcclxuICogIHdhcyB0aGUgaW50ZW50aW9uLCBidXQgVHlwZVNjcmlwdCBpcyBhY3Rpbmcgd2VpcmQgYW5kIG1heSByZXR1cm4gYElTb3J0ZWRTZXQ8Sz5gXHJcbiAqICBldmVuIGlmIGBWYCBjYW4ndCBiZSBgdW5kZWZpbmVkYCAoZGlzY3Vzc2lvbjogYnRyZWUtdHlwZXNjcmlwdCBpc3N1ZSAjMTQpICovXHJcbmZ1bmN0aW9uIGFzU2V0KGJ0cmVlKSB7XHJcbiAgICByZXR1cm4gYnRyZWU7XHJcbn1cclxuZXhwb3J0cy5hc1NldCA9IGFzU2V0O1xyXG5pZiAoU3ltYm9sICYmIFN5bWJvbC5pdGVyYXRvcikgLy8gaXRlcmF0b3IgaXMgZXF1aXZhbGVudCB0byBlbnRyaWVzKClcclxuICAgIEJUcmVlLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gQlRyZWUucHJvdG90eXBlLmVudHJpZXM7XHJcbkJUcmVlLnByb3RvdHlwZS53aGVyZSA9IEJUcmVlLnByb3RvdHlwZS5maWx0ZXI7XHJcbkJUcmVlLnByb3RvdHlwZS5zZXRSYW5nZSA9IEJUcmVlLnByb3RvdHlwZS5zZXRQYWlycztcclxuQlRyZWUucHJvdG90eXBlLmFkZCA9IEJUcmVlLnByb3RvdHlwZS5zZXQ7IC8vIGZvciBjb21wYXRpYmlsaXR5IHdpdGggSVNldFNpbms8Sz5cclxuZnVuY3Rpb24gaXRlcmF0b3IobmV4dCkge1xyXG4gICAgaWYgKG5leHQgPT09IHZvaWQgMCkgeyBuZXh0ID0gKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfSk7IH0pOyB9XHJcbiAgICB2YXIgcmVzdWx0ID0geyBuZXh0OiBuZXh0IH07XHJcbiAgICBpZiAoU3ltYm9sICYmIFN5bWJvbC5pdGVyYXRvcilcclxuICAgICAgICByZXN1bHRbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKiBMZWFmIG5vZGUgLyBiYXNlIGNsYXNzLiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxudmFyIEJOb2RlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQk5vZGUoa2V5cywgdmFsdWVzKSB7XHJcbiAgICAgICAgaWYgKGtleXMgPT09IHZvaWQgMCkgeyBrZXlzID0gW107IH1cclxuICAgICAgICB0aGlzLmtleXMgPSBrZXlzO1xyXG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzIHx8IHVuZGVmVmFscztcclxuICAgICAgICB0aGlzLmlzU2hhcmVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJOb2RlLnByb3RvdHlwZSwgXCJpc0xlYWZcIiwge1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5jaGlsZHJlbiA9PT0gdW5kZWZpbmVkOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIFNoYXJlZCBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGUucHJvdG90eXBlLm1heEtleSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5rZXlzW3RoaXMua2V5cy5sZW5ndGggLSAxXTtcclxuICAgIH07XHJcbiAgICAvLyBJZiBrZXkgbm90IGZvdW5kLCByZXR1cm5zIGleZmFpbFhvciB3aGVyZSBpIGlzIHRoZSBpbnNlcnRpb24gaW5kZXguXHJcbiAgICAvLyBDYWxsZXJzIHRoYXQgZG9uJ3QgY2FyZSB3aGV0aGVyIHRoZXJlIHdhcyBhIG1hdGNoIHdpbGwgc2V0IGZhaWxYb3I9MC5cclxuICAgIEJOb2RlLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gKGtleSwgZmFpbFhvciwgY21wKSB7XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXM7XHJcbiAgICAgICAgdmFyIGxvID0gMCwgaGkgPSBrZXlzLmxlbmd0aCwgbWlkID0gaGkgPj4gMTtcclxuICAgICAgICB3aGlsZSAobG8gPCBoaSkge1xyXG4gICAgICAgICAgICB2YXIgYyA9IGNtcChrZXlzW21pZF0sIGtleSk7XHJcbiAgICAgICAgICAgIGlmIChjIDwgMClcclxuICAgICAgICAgICAgICAgIGxvID0gbWlkICsgMTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoYyA+IDApIC8vIGtleSA8IGtleXNbbWlkXVxyXG4gICAgICAgICAgICAgICAgaGkgPSBtaWQ7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IDApXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWlkO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGMgaXMgTmFOIG9yIG90aGVyd2lzZSBpbnZhbGlkXHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBrZXkpIC8vIGF0IGxlYXN0IHRoZSBzZWFyY2gga2V5IGlzIG5vdCBOYU5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQlRyZWU6IE5hTiB3YXMgdXNlZCBhcyBhIGtleVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtaWQgPSAobG8gKyBoaSkgPj4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1pZCBeIGZhaWxYb3I7XHJcbiAgICAgICAgLy8gVW5yb2xsZWQgdmVyc2lvbjogYmVuY2htYXJrcyBzaG93IHNhbWUgc3BlZWQsIG5vdCB3b3J0aCB1c2luZ1xyXG4gICAgICAgIC8qdmFyIGkgPSAxLCBjOiBudW1iZXIgPSAwLCBzdW0gPSAwO1xyXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA+PSA0KSB7XHJcbiAgICAgICAgICBpID0gMztcclxuICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+PSA4KSB7XHJcbiAgICAgICAgICAgIGkgPSA3O1xyXG4gICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gMTYpIHtcclxuICAgICAgICAgICAgICBpID0gMTU7XHJcbiAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDMyKSB7XHJcbiAgICAgICAgICAgICAgICBpID0gMzE7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gNjQpIHtcclxuICAgICAgICAgICAgICAgICAgaSA9IDEyNztcclxuICAgICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gNjQgOiAtNjQ7XHJcbiAgICAgICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAzMiA6IC0zMjtcclxuICAgICAgICAgICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAxNiA6IC0xNjtcclxuICAgICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyA4IDogLTg7XHJcbiAgICAgICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gNCA6IC00O1xyXG4gICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDIgOiAtMjtcclxuICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAxIDogLTE7XHJcbiAgICAgICAgYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMTtcclxuICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICBpZiAoYyA8IDApIHtcclxuICAgICAgICAgICsraTtcclxuICAgICAgICAgIGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDE7XHJcbiAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHN1bSAhPT0gc3VtKSB7XHJcbiAgICAgICAgICBpZiAoa2V5ID09PSBrZXkpIC8vIGF0IGxlYXN0IHRoZSBzZWFyY2gga2V5IGlzIG5vdCBOYU5cclxuICAgICAgICAgICAgcmV0dXJuIGtleXMubGVuZ3RoIF4gZmFpbFhvcjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQlRyZWU6IE5hTiB3YXMgdXNlZCBhcyBhIGtleVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGMgPT09IDAgPyBpIDogaSBeIGZhaWxYb3I7Ki9cclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBtaXNjIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5taW5LZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5c1swXTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWluUGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzBdID0gdGhpcy5rZXlzWzBdO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzFdID0gdGhpcy52YWx1ZXNbMF07XHJcbiAgICAgICAgcmV0dXJuIHJldXNlZEFycmF5O1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5tYXhQYWlyID0gZnVuY3Rpb24gKHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMua2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdmFyIGxhc3RJbmRleCA9IHRoaXMua2V5cy5sZW5ndGggLSAxO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzBdID0gdGhpcy5rZXlzW2xhc3RJbmRleF07XHJcbiAgICAgICAgcmV1c2VkQXJyYXlbMV0gPSB0aGlzLnZhbHVlc1tsYXN0SW5kZXhdO1xyXG4gICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlcztcclxuICAgICAgICByZXR1cm4gbmV3IEJOb2RlKHRoaXMua2V5cy5zbGljZSgwKSwgdiA9PT0gdW5kZWZWYWxzID8gdiA6IHYuc2xpY2UoMCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5ncmVlZHlDbG9uZSA9IGZ1bmN0aW9uIChmb3JjZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzU2hhcmVkICYmICFmb3JjZSA/IHRoaXMgOiB0aGlzLmNsb25lKCk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgLTEsIHRyZWUuX2NvbXBhcmUpO1xyXG4gICAgICAgIHJldHVybiBpIDwgMCA/IGRlZmF1bHRWYWx1ZSA6IHRoaXMudmFsdWVzW2ldO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXIgPSBmdW5jdGlvbiAoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAtMSwgY29tcGFyZSk7XHJcbiAgICAgICAgdmFyIGluZGV4T3JMb3dlciA9IGkgPCAwID8gfmkgLSAxIDogKGluY2x1c2l2ZSA/IGkgOiBpIC0gMSk7XHJcbiAgICAgICAgaWYgKGluZGV4T3JMb3dlciA+PSAwKSB7XHJcbiAgICAgICAgICAgIHJldXNlZEFycmF5WzBdID0gdGhpcy5rZXlzW2luZGV4T3JMb3dlcl07XHJcbiAgICAgICAgICAgIHJldXNlZEFycmF5WzFdID0gdGhpcy52YWx1ZXNbaW5kZXhPckxvd2VyXTtcclxuICAgICAgICAgICAgcmV0dXJuIHJldXNlZEFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0SGlnaGVyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgLTEsIGNvbXBhcmUpO1xyXG4gICAgICAgIHZhciBpbmRleE9yTG93ZXIgPSBpIDwgMCA/IH5pIDogKGluY2x1c2l2ZSA/IGkgOiBpICsgMSk7XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXM7XHJcbiAgICAgICAgaWYgKGluZGV4T3JMb3dlciA8IGtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldXNlZEFycmF5WzBdID0ga2V5c1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzW2luZGV4T3JMb3dlcl07XHJcbiAgICAgICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuY2hlY2tWYWxpZCA9IGZ1bmN0aW9uIChkZXB0aCwgdHJlZSwgYmFzZUluZGV4KSB7XHJcbiAgICAgICAgdmFyIGtMID0gdGhpcy5rZXlzLmxlbmd0aCwgdkwgPSB0aGlzLnZhbHVlcy5sZW5ndGg7XHJcbiAgICAgICAgY2hlY2sodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscyA/IGtMIDw9IHZMIDoga0wgPT09IHZMLCBcImtleXMvdmFsdWVzIGxlbmd0aCBtaXNtYXRjaDogZGVwdGhcIiwgZGVwdGgsIFwid2l0aCBsZW5ndGhzXCIsIGtMLCB2TCwgXCJhbmQgYmFzZUluZGV4XCIsIGJhc2VJbmRleCk7XHJcbiAgICAgICAgLy8gTm90ZTogd2UgZG9uJ3QgY2hlY2sgZm9yIFwibm9kZSB0b28gc21hbGxcIiBiZWNhdXNlIHNvbWV0aW1lcyBhIG5vZGVcclxuICAgICAgICAvLyBjYW4gbGVnaXRpbWF0ZWx5IGhhdmUgc2l6ZSAxLiBUaGlzIG9jY3VycyBpZiB0aGVyZSBpcyBhIGJhdGNoIFxyXG4gICAgICAgIC8vIGRlbGV0aW9uLCBsZWF2aW5nIGEgbm9kZSBvZiBzaXplIDEsIGFuZCB0aGUgc2libGluZ3MgYXJlIGZ1bGwgc29cclxuICAgICAgICAvLyBpdCBjYW4ndCBiZSBtZXJnZWQgd2l0aCBhZGphY2VudCBub2Rlcy4gSG93ZXZlciwgdGhlIHBhcmVudCB3aWxsXHJcbiAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIGF2ZXJhZ2Ugbm9kZSBzaXplIGlzIGF0IGxlYXN0IGhhbGYgb2YgdGhlIG1heGltdW0uXHJcbiAgICAgICAgY2hlY2soZGVwdGggPT0gMCB8fCBrTCA+IDAsIFwiZW1wdHkgbGVhZiBhdCBkZXB0aFwiLCBkZXB0aCwgXCJhbmQgYmFzZUluZGV4XCIsIGJhc2VJbmRleCk7XHJcbiAgICAgICAgcmV0dXJuIGtMO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBMZWFmIE5vZGU6IHNldCAmIG5vZGUgc3BsaXR0aW5nIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGUucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlLCBvdmVyd3JpdGUsIHRyZWUpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCB0cmVlLl9jb21wYXJlKTtcclxuICAgICAgICBpZiAoaSA8IDApIHtcclxuICAgICAgICAgICAgLy8ga2V5IGRvZXMgbm90IGV4aXN0IHlldFxyXG4gICAgICAgICAgICBpID0gfmk7XHJcbiAgICAgICAgICAgIHRyZWUuX3NpemUrKztcclxuICAgICAgICAgICAgaWYgKHRoaXMua2V5cy5sZW5ndGggPCB0cmVlLl9tYXhOb2RlU2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0SW5MZWFmKGksIGtleSwgdmFsdWUsIHRyZWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBsZWFmIG5vZGUgaXMgZnVsbCBhbmQgbXVzdCBzcGxpdFxyXG4gICAgICAgICAgICAgICAgdmFyIG5ld1JpZ2h0U2libGluZyA9IHRoaXMuc3BsaXRPZmZSaWdodFNpZGUoKSwgdGFyZ2V0ID0gdGhpcztcclxuICAgICAgICAgICAgICAgIGlmIChpID4gdGhpcy5rZXlzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGkgLT0gdGhpcy5rZXlzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuaW5zZXJ0SW5MZWFmKGksIGtleSwgdmFsdWUsIHRyZWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld1JpZ2h0U2libGluZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gS2V5IGFscmVhZHkgZXhpc3RzXHJcbiAgICAgICAgICAgIGlmIChvdmVyd3JpdGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlaWZ5VmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAvLyB1c3VhbGx5IHRoaXMgaXMgYSBuby1vcCwgYnV0IHNvbWUgdXNlcnMgbWF5IHdpc2ggdG8gZWRpdCB0aGUga2V5XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXNbaV0gPSBrZXk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlc1tpXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLnJlaWZ5VmFsdWVzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMgPSB0aGlzLnZhbHVlcy5zbGljZSgwLCB0aGlzLmtleXMubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXM7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmluc2VydEluTGVhZiA9IGZ1bmN0aW9uIChpLCBrZXksIHZhbHVlLCB0cmVlKSB7XHJcbiAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAwLCBrZXkpO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIHdoaWxlICh1bmRlZlZhbHMubGVuZ3RoIDwgdHJlZS5fbWF4Tm9kZVNpemUpXHJcbiAgICAgICAgICAgICAgICB1bmRlZlZhbHMucHVzaCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcyA9IHVuZGVmVmFscy5zbGljZSgwLCB0aGlzLmtleXMubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWx1ZXMuc3BsaWNlKGksIDAsIHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUudGFrZUZyb21SaWdodCA9IGZ1bmN0aW9uIChyaHMpIHtcclxuICAgICAgICAvLyBSZW1pbmRlcjogcGFyZW50IG5vZGUgbXVzdCB1cGRhdGUgaXRzIGNvcHkgb2Yga2V5IGZvciB0aGlzIG5vZGVcclxuICAgICAgICAvLyBhc3NlcnQ6IG5laXRoZXIgbm9kZSBpcyBzaGFyZWRcclxuICAgICAgICAvLyBhc3NlcnQgcmhzLmtleXMubGVuZ3RoID4gKG1heE5vZGVTaXplLzIgJiYgdGhpcy5rZXlzLmxlbmd0aDxtYXhOb2RlU2l6ZSlcclxuICAgICAgICB2YXIgdiA9IHRoaXMudmFsdWVzO1xyXG4gICAgICAgIGlmIChyaHMudmFsdWVzID09PSB1bmRlZlZhbHMpIHtcclxuICAgICAgICAgICAgaWYgKHYgIT09IHVuZGVmVmFscylcclxuICAgICAgICAgICAgICAgIHYucHVzaCh1bmRlZmluZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdiA9IHRoaXMucmVpZnlWYWx1ZXMoKTtcclxuICAgICAgICAgICAgdi5wdXNoKHJocy52YWx1ZXMuc2hpZnQoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoKHJocy5rZXlzLnNoaWZ0KCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS50YWtlRnJvbUxlZnQgPSBmdW5jdGlvbiAobGhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlcztcclxuICAgICAgICBpZiAobGhzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmICh2ICE9PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICB2LnVuc2hpZnQodW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHYgPSB0aGlzLnJlaWZ5VmFsdWVzKCk7XHJcbiAgICAgICAgICAgIHYudW5zaGlmdChsaHMudmFsdWVzLnBvcCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5rZXlzLnVuc2hpZnQobGhzLmtleXMucG9wKCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5zcGxpdE9mZlJpZ2h0U2lkZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBSZW1pbmRlcjogcGFyZW50IG5vZGUgbXVzdCB1cGRhdGUgaXRzIGNvcHkgb2Yga2V5IGZvciB0aGlzIG5vZGVcclxuICAgICAgICB2YXIgaGFsZiA9IHRoaXMua2V5cy5sZW5ndGggPj4gMSwga2V5cyA9IHRoaXMua2V5cy5zcGxpY2UoaGFsZik7XHJcbiAgICAgICAgdmFyIHZhbHVlcyA9IHRoaXMudmFsdWVzID09PSB1bmRlZlZhbHMgPyB1bmRlZlZhbHMgOiB0aGlzLnZhbHVlcy5zcGxpY2UoaGFsZik7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZShrZXlzLCB2YWx1ZXMpO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBMZWFmIE5vZGU6IHNjYW5uaW5nICYgZGVsZXRpb25zIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmZvclJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGVkaXRNb2RlLCB0cmVlLCBjb3VudCwgb25Gb3VuZCkge1xyXG4gICAgICAgIHZhciBjbXAgPSB0cmVlLl9jb21wYXJlO1xyXG4gICAgICAgIHZhciBpTG93LCBpSGlnaDtcclxuICAgICAgICBpZiAoaGlnaCA9PT0gbG93KSB7XHJcbiAgICAgICAgICAgIGlmICghaW5jbHVkZUhpZ2gpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICAgICAgICAgIGlIaWdoID0gKGlMb3cgPSB0aGlzLmluZGV4T2YobG93LCAtMSwgY21wKSkgKyAxO1xyXG4gICAgICAgICAgICBpZiAoaUxvdyA8IDApXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpTG93ID0gdGhpcy5pbmRleE9mKGxvdywgMCwgY21wKTtcclxuICAgICAgICAgICAgaUhpZ2ggPSB0aGlzLmluZGV4T2YoaGlnaCwgLTEsIGNtcCk7XHJcbiAgICAgICAgICAgIGlmIChpSGlnaCA8IDApXHJcbiAgICAgICAgICAgICAgICBpSGlnaCA9IH5pSGlnaDtcclxuICAgICAgICAgICAgZWxzZSBpZiAoaW5jbHVkZUhpZ2ggPT09IHRydWUpXHJcbiAgICAgICAgICAgICAgICBpSGlnaCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIga2V5cyA9IHRoaXMua2V5cywgdmFsdWVzID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgaWYgKG9uRm91bmQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gaUxvdzsgaSA8IGlIaWdoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9uRm91bmQoa2V5LCB2YWx1ZXNbaV0sIGNvdW50KyspO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVkaXRNb2RlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgIT09IGtleXNbaV0gfHwgdGhpcy5pc1NoYXJlZCA9PT0gdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlIGlsbGVnYWxseSBjaGFuZ2VkIG9yIGNsb25lZCBpbiBlZGl0UmFuZ2VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGVsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWVzICE9PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZS5fc2l6ZS0tO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaUhpZ2gtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1tpXSA9IHJlc3VsdC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjb3VudCArPSBpSGlnaCAtIGlMb3c7XHJcbiAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgfTtcclxuICAgIC8qKiBBZGRzIGVudGlyZSBjb250ZW50cyBvZiByaWdodC1oYW5kIHNpYmxpbmcgKHJocyBpcyBsZWZ0IHVuY2hhbmdlZCkgKi9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5tZXJnZVNpYmxpbmcgPSBmdW5jdGlvbiAocmhzLCBfKSB7XHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLCByaHMua2V5cyk7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzID09PSB1bmRlZlZhbHMpIHtcclxuICAgICAgICAgICAgaWYgKHJocy52YWx1ZXMgPT09IHVuZGVmVmFscylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB0aGlzLnZhbHVlcy5zbGljZSgwLCB0aGlzLmtleXMubGVuZ3RoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcywgcmhzLnJlaWZ5VmFsdWVzKCkpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCTm9kZTtcclxufSgpKTtcclxuLyoqIEludGVybmFsIG5vZGUgKG5vbi1sZWFmIG5vZGUpICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG52YXIgQk5vZGVJbnRlcm5hbCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgIF9fZXh0ZW5kcyhCTm9kZUludGVybmFsLCBfc3VwZXIpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGRvZXMgbm90IG1hcmsgYGNoaWxkcmVuYCBhcyBzaGFyZWQsIHNvIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyXHJcbiAgICAgKiB0byBlbnN1cmUgY2hpbGRyZW4gYXJlIGVpdGhlciBtYXJrZWQgc2hhcmVkLCBvciBhcmVuJ3QgaW5jbHVkZWQgaW4gYW5vdGhlciB0cmVlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBCTm9kZUludGVybmFsKGNoaWxkcmVuLCBrZXlzKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAoIWtleXMpIHtcclxuICAgICAgICAgICAga2V5cyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAga2V5c1tpXSA9IGNoaWxkcmVuW2ldLm1heEtleSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGtleXMpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICB9XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLnNsaWNlKDApO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGNoaWxkcmVuW2ldLmlzU2hhcmVkID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gbmV3IEJOb2RlSW50ZXJuYWwoY2hpbGRyZW4sIHRoaXMua2V5cy5zbGljZSgwKSk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZ3JlZWR5Q2xvbmUgPSBmdW5jdGlvbiAoZm9yY2UpIHtcclxuICAgICAgICBpZiAodGhpcy5pc1NoYXJlZCAmJiAhZm9yY2UpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIHZhciBudSA9IG5ldyBCTm9kZUludGVybmFsKHRoaXMuY2hpbGRyZW4uc2xpY2UoMCksIHRoaXMua2V5cy5zbGljZSgwKSk7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudS5jaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgbnUuY2hpbGRyZW5baV0gPSBudS5jaGlsZHJlbltpXS5ncmVlZHlDbG9uZShmb3JjZSk7XHJcbiAgICAgICAgcmV0dXJuIG51O1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLm1pbktleSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblswXS5taW5LZXkoKTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5taW5QYWlyID0gZnVuY3Rpb24gKHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluUGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWF4UGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV0ubWF4UGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSwgZGVmYXVsdFZhbHVlLCB0cmVlKSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAwLCB0cmVlLl9jb21wYXJlKSwgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xyXG4gICAgICAgIHJldHVybiBpIDwgY2hpbGRyZW4ubGVuZ3RoID8gY2hpbGRyZW5baV0uZ2V0KGtleSwgZGVmYXVsdFZhbHVlLCB0cmVlKSA6IHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXIgPSBmdW5jdGlvbiAoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAwLCBjb21wYXJlKSwgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xyXG4gICAgICAgIGlmIChpID49IGNoaWxkcmVuLmxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF4UGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkcmVuW2ldLmdldFBhaXJPck5leHRMb3dlcihrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBpID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baSAtIDFdLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdldFBhaXJPck5leHRIaWdoZXIgPSBmdW5jdGlvbiAoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAwLCBjb21wYXJlKSwgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLCBsZW5ndGggPSBjaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgaWYgKGkgPj0gbGVuZ3RoKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5nZXRQYWlyT3JOZXh0SGlnaGVyKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkICYmIGkgPCBsZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbltpICsgMV0ubWluUGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuY2hlY2tWYWxpZCA9IGZ1bmN0aW9uIChkZXB0aCwgdHJlZSwgYmFzZUluZGV4KSB7XHJcbiAgICAgICAgdmFyIGtMID0gdGhpcy5rZXlzLmxlbmd0aCwgY0wgPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICBjaGVjayhrTCA9PT0gY0wsIFwia2V5cy9jaGlsZHJlbiBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXCIsIGRlcHRoLCBcImxlbmd0aHNcIiwga0wsIGNMLCBcImJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIGNoZWNrKGtMID4gMSB8fCBkZXB0aCA+IDAsIFwiaW50ZXJuYWwgbm9kZSBoYXMgbGVuZ3RoXCIsIGtMLCBcImF0IGRlcHRoXCIsIGRlcHRoLCBcImJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHZhciBzaXplID0gMCwgYyA9IHRoaXMuY2hpbGRyZW4sIGsgPSB0aGlzLmtleXMsIGNoaWxkU2l6ZSA9IDA7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjTDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHNpemUgKz0gY1tpXS5jaGVja1ZhbGlkKGRlcHRoICsgMSwgdHJlZSwgYmFzZUluZGV4ICsgc2l6ZSk7XHJcbiAgICAgICAgICAgIGNoaWxkU2l6ZSArPSBjW2ldLmtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjaGVjayhzaXplID49IGNoaWxkU2l6ZSwgXCJ3dGZcIiwgYmFzZUluZGV4KTsgLy8gbm8gd2F5IHRoaXMgd2lsbCBldmVyIGZhaWxcclxuICAgICAgICAgICAgY2hlY2soaSA9PT0gMCB8fCBjW2kgLSAxXS5jb25zdHJ1Y3RvciA9PT0gY1tpXS5jb25zdHJ1Y3RvciwgXCJ0eXBlIG1pc21hdGNoLCBiYXNlSW5kZXg6XCIsIGJhc2VJbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChjW2ldLm1heEtleSgpICE9IGtbaV0pXHJcbiAgICAgICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJrZXlzW1wiLCBpLCBcIl0gPVwiLCBrW2ldLCBcImlzIHdyb25nLCBzaG91bGQgYmUgXCIsIGNbaV0ubWF4S2V5KCksIFwiYXQgZGVwdGhcIiwgZGVwdGgsIFwiYmFzZUluZGV4XCIsIGJhc2VJbmRleCk7XHJcbiAgICAgICAgICAgIGlmICghKGkgPT09IDAgfHwgdHJlZS5fY29tcGFyZShrW2kgLSAxXSwga1tpXSkgPCAwKSlcclxuICAgICAgICAgICAgICAgIGNoZWNrKGZhbHNlLCBcInNvcnQgdmlvbGF0aW9uIGF0IGRlcHRoXCIsIGRlcHRoLCBcImluZGV4XCIsIGksIFwia2V5c1wiLCBrW2kgLSAxXSwga1tpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIDIwMjAvMDg6IEJUcmVlIGRvZXNuJ3QgYWx3YXlzIGF2b2lkIGdyb3NzbHkgdW5kZXJzaXplZCBub2RlcyxcclxuICAgICAgICAvLyBidXQgQUZBSUsgc3VjaCBub2RlcyBhcmUgcHJldHR5IGhhcm1sZXNzLCBzbyBhY2NlcHQgdGhlbS5cclxuICAgICAgICB2YXIgdG9vZmV3ID0gY2hpbGRTaXplID09PSAwOyAvLyBjaGlsZFNpemUgPCAodHJlZS5tYXhOb2RlU2l6ZSA+PiAxKSpjTDtcclxuICAgICAgICBpZiAodG9vZmV3IHx8IGNoaWxkU2l6ZSA+IHRyZWUubWF4Tm9kZVNpemUgKiBjTClcclxuICAgICAgICAgICAgY2hlY2soZmFsc2UsIHRvb2ZldyA/IFwidG9vIGZld1wiIDogXCJ0b28gbWFueVwiLCBcImNoaWxkcmVuIChcIiwgY2hpbGRTaXplLCBzaXplLCBcIikgYXQgZGVwdGhcIiwgZGVwdGgsIFwibWF4Tm9kZVNpemU6XCIsIHRyZWUubWF4Tm9kZVNpemUsIFwiY2hpbGRyZW4ubGVuZ3RoOlwiLCBjTCwgXCJiYXNlSW5kZXg6XCIsIGJhc2VJbmRleCk7XHJcbiAgICAgICAgcmV0dXJuIHNpemU7XHJcbiAgICB9O1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIEludGVybmFsIE5vZGU6IHNldCAmIG5vZGUgc3BsaXR0aW5nIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlLCB0cmVlKSB7XHJcbiAgICAgICAgdmFyIGMgPSB0aGlzLmNoaWxkcmVuLCBtYXggPSB0cmVlLl9tYXhOb2RlU2l6ZSwgY21wID0gdHJlZS5fY29tcGFyZTtcclxuICAgICAgICB2YXIgaSA9IE1hdGgubWluKHRoaXMuaW5kZXhPZihrZXksIDAsIGNtcCksIGMubGVuZ3RoIC0gMSksIGNoaWxkID0gY1tpXTtcclxuICAgICAgICBpZiAoY2hpbGQuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIGNbaV0gPSBjaGlsZCA9IGNoaWxkLmNsb25lKCk7XHJcbiAgICAgICAgaWYgKGNoaWxkLmtleXMubGVuZ3RoID49IG1heCkge1xyXG4gICAgICAgICAgICAvLyBjaGlsZCBpcyBmdWxsOyBpbnNlcnRpbmcgYW55dGhpbmcgZWxzZSB3aWxsIGNhdXNlIGEgc3BsaXQuXHJcbiAgICAgICAgICAgIC8vIFNoaWZ0aW5nIGFuIGl0ZW0gdG8gdGhlIGxlZnQgb3IgcmlnaHQgc2libGluZyBtYXkgYXZvaWQgYSBzcGxpdC5cclxuICAgICAgICAgICAgLy8gV2UgY2FuIGRvIGEgc2hpZnQgaWYgdGhlIGFkamFjZW50IG5vZGUgaXMgbm90IGZ1bGwgYW5kIGlmIHRoZVxyXG4gICAgICAgICAgICAvLyBjdXJyZW50IGtleSBjYW4gc3RpbGwgYmUgcGxhY2VkIGluIHRoZSBzYW1lIG5vZGUgYWZ0ZXIgdGhlIHNoaWZ0LlxyXG4gICAgICAgICAgICB2YXIgb3RoZXI7XHJcbiAgICAgICAgICAgIGlmIChpID4gMCAmJiAob3RoZXIgPSBjW2kgLSAxXSkua2V5cy5sZW5ndGggPCBtYXggJiYgY21wKGNoaWxkLmtleXNbMF0sIGtleSkgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3RoZXIuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgY1tpIC0gMV0gPSBvdGhlciA9IG90aGVyLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBvdGhlci50YWtlRnJvbVJpZ2h0KGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpIC0gMV0gPSBvdGhlci5tYXhLZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgob3RoZXIgPSBjW2kgKyAxXSkgIT09IHVuZGVmaW5lZCAmJiBvdGhlci5rZXlzLmxlbmd0aCA8IG1heCAmJiBjbXAoY2hpbGQubWF4S2V5KCksIGtleSkgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3RoZXIuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgY1tpICsgMV0gPSBvdGhlciA9IG90aGVyLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBvdGhlci50YWtlRnJvbUxlZnQoY2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXlzW2ldID0gY1tpXS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgcmVzdWx0ID0gY2hpbGQuc2V0KGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdHJlZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB0aGlzLmtleXNbaV0gPSBjaGlsZC5tYXhLZXkoKTtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSB0cnVlKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvLyBUaGUgY2hpbGQgaGFzIHNwbGl0IGFuZCBgcmVzdWx0YCBpcyBhIG5ldyByaWdodCBjaGlsZC4uLiBkb2VzIGl0IGZpdD9cclxuICAgICAgICBpZiAodGhpcy5rZXlzLmxlbmd0aCA8IG1heCkgeyAvLyB5ZXNcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnQoaSArIDEsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHsgLy8gbm8sIHdlIG11c3Qgc3BsaXQgYWxzb1xyXG4gICAgICAgICAgICB2YXIgbmV3UmlnaHRTaWJsaW5nID0gdGhpcy5zcGxpdE9mZlJpZ2h0U2lkZSgpLCB0YXJnZXQgPSB0aGlzO1xyXG4gICAgICAgICAgICBpZiAoY21wKHJlc3VsdC5tYXhLZXkoKSwgdGhpcy5tYXhLZXkoKSkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgICAgICAgICBpIC09IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGFyZ2V0Lmluc2VydChpICsgMSwgcmVzdWx0KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ld1JpZ2h0U2libGluZztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcnRzIGBjaGlsZGAgYXQgaW5kZXggYGlgLlxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBtYXJrIGBjaGlsZGAgYXMgc2hhcmVkLCBzbyBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlclxyXG4gICAgICogdG8gZW5zdXJlIHRoYXQgZWl0aGVyIGNoaWxkIGlzIG1hcmtlZCBzaGFyZWQsIG9yIGl0IGlzIG5vdCBpbmNsdWRlZCBpbiBhbm90aGVyIHRyZWUuXHJcbiAgICAgKi9cclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmluc2VydCA9IGZ1bmN0aW9uIChpLCBjaGlsZCkge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGksIDAsIGNoaWxkKTtcclxuICAgICAgICB0aGlzLmtleXMuc3BsaWNlKGksIDAsIGNoaWxkLm1heEtleSgpKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFNwbGl0IHRoaXMgbm9kZS5cclxuICAgICAqIE1vZGlmaWVzIHRoaXMgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgaXRlbXMsIHJldHVybmluZyBhIHNlcGFyYXRlIG5vZGUgY29udGFpbmluZyB0aGVtLlxyXG4gICAgICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5zcGxpdE9mZlJpZ2h0U2lkZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBhc3NlcnQgIXRoaXMuaXNTaGFyZWQ7XHJcbiAgICAgICAgdmFyIGhhbGYgPSB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+PiAxO1xyXG4gICAgICAgIHJldHVybiBuZXcgQk5vZGVJbnRlcm5hbCh0aGlzLmNoaWxkcmVuLnNwbGljZShoYWxmKSwgdGhpcy5rZXlzLnNwbGljZShoYWxmKSk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUudGFrZUZyb21SaWdodCA9IGZ1bmN0aW9uIChyaHMpIHtcclxuICAgICAgICAvLyBSZW1pbmRlcjogcGFyZW50IG5vZGUgbXVzdCB1cGRhdGUgaXRzIGNvcHkgb2Yga2V5IGZvciB0aGlzIG5vZGVcclxuICAgICAgICAvLyBhc3NlcnQ6IG5laXRoZXIgbm9kZSBpcyBzaGFyZWRcclxuICAgICAgICAvLyBhc3NlcnQgcmhzLmtleXMubGVuZ3RoID4gKG1heE5vZGVTaXplLzIgJiYgdGhpcy5rZXlzLmxlbmd0aDxtYXhOb2RlU2l6ZSlcclxuICAgICAgICB0aGlzLmtleXMucHVzaChyaHMua2V5cy5zaGlmdCgpKTtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLnB1c2gocmhzLmNoaWxkcmVuLnNoaWZ0KCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLnRha2VGcm9tTGVmdCA9IGZ1bmN0aW9uIChsaHMpIHtcclxuICAgICAgICAvLyBSZW1pbmRlcjogcGFyZW50IG5vZGUgbXVzdCB1cGRhdGUgaXRzIGNvcHkgb2Yga2V5IGZvciB0aGlzIG5vZGVcclxuICAgICAgICAvLyBhc3NlcnQ6IG5laXRoZXIgbm9kZSBpcyBzaGFyZWRcclxuICAgICAgICAvLyBhc3NlcnQgcmhzLmtleXMubGVuZ3RoID4gKG1heE5vZGVTaXplLzIgJiYgdGhpcy5rZXlzLmxlbmd0aDxtYXhOb2RlU2l6ZSlcclxuICAgICAgICB0aGlzLmtleXMudW5zaGlmdChsaHMua2V5cy5wb3AoKSk7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGxocy5jaGlsZHJlbi5wb3AoKSk7XHJcbiAgICB9O1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIEludGVybmFsIE5vZGU6IHNjYW5uaW5nICYgZGVsZXRpb25zIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBOb3RlOiBgY291bnRgIGlzIHRoZSBuZXh0IHZhbHVlIG9mIHRoZSB0aGlyZCBhcmd1bWVudCB0byBgb25Gb3VuZGAuIFxyXG4gICAgLy8gICAgICAgQSBsZWFmIG5vZGUncyBgZm9yUmFuZ2VgIGZ1bmN0aW9uIHJldHVybnMgYSBuZXcgdmFsdWUgZm9yIHRoaXMgY291bnRlcixcclxuICAgIC8vICAgICAgIHVubGVzcyB0aGUgb3BlcmF0aW9uIGlzIHRvIHN0b3AgZWFybHkuXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpIHtcclxuICAgICAgICB2YXIgY21wID0gdHJlZS5fY29tcGFyZTtcclxuICAgICAgICB2YXIga2V5cyA9IHRoaXMua2V5cywgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xyXG4gICAgICAgIHZhciBpTG93ID0gdGhpcy5pbmRleE9mKGxvdywgMCwgY21wKSwgaSA9IGlMb3c7XHJcbiAgICAgICAgdmFyIGlIaWdoID0gTWF0aC5taW4oaGlnaCA9PT0gbG93ID8gaUxvdyA6IHRoaXMuaW5kZXhPZihoaWdoLCAwLCBjbXApLCBrZXlzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgIGlmICghZWRpdE1vZGUpIHtcclxuICAgICAgICAgICAgLy8gU2ltcGxlIGNhc2VcclxuICAgICAgICAgICAgZm9yICg7IGkgPD0gaUhpZ2g7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkcmVuW2ldLmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGVkaXRNb2RlLCB0cmVlLCBjb3VudCwgb25Gb3VuZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGkgPD0gaUhpZ2gpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGZvciAoOyBpIDw9IGlIaWdoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0uaXNTaGFyZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuW2ldID0gY2hpbGRyZW5baV0uY2xvbmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gY2hpbGRyZW5baV0uZm9yUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZWRpdE1vZGUsIHRyZWUsIGNvdW50LCBvbkZvdW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBpZiBjaGlsZHJlbltpXSBpcyBlbXB0eSB0aGVuIGtleXNbaV09dW5kZWZpbmVkLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgIFRoaXMgaXMgYW4gaW52YWxpZCBzdGF0ZSwgYnV0IGl0IGlzIGZpeGVkIGJlbG93LlxyXG4gICAgICAgICAgICAgICAgICAgIGtleXNbaV0gPSBjaGlsZHJlbltpXS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGlvbnMgbWF5IGhhdmUgb2NjdXJyZWQsIHNvIGxvb2sgZm9yIG9wcG9ydHVuaXRpZXMgdG8gbWVyZ2Ugbm9kZXMuXHJcbiAgICAgICAgICAgICAgICB2YXIgaGFsZiA9IHRyZWUuX21heE5vZGVTaXplID4+IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAoaUxvdyA+IDApXHJcbiAgICAgICAgICAgICAgICAgICAgaUxvdy0tO1xyXG4gICAgICAgICAgICAgICAgZm9yIChpID0gaUhpZ2g7IGkgPj0gaUxvdzsgaS0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmtleXMubGVuZ3RoIDw9IGhhbGYpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmtleXMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyeU1lcmdlKGksIHRyZWUuX21heE5vZGVTaXplKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gY2hpbGQgaXMgZW1wdHkhIGRlbGV0ZSBpdCFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCAhPT0gMCAmJiBjaGlsZHJlblswXS5rZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJlbXB0aW5lc3MgYnVnXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb3VudDtcclxuICAgIH07XHJcbiAgICAvKiogTWVyZ2VzIGNoaWxkIGkgd2l0aCBjaGlsZCBpKzEgaWYgdGhlaXIgY29tYmluZWQgc2l6ZSBpcyBub3QgdG9vIGxhcmdlICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS50cnlNZXJnZSA9IGZ1bmN0aW9uIChpLCBtYXhTaXplKSB7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICBpZiAoaSA+PSAwICYmIGkgKyAxIDwgY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCArIGNoaWxkcmVuW2kgKyAxXS5rZXlzLmxlbmd0aCA8PSBtYXhTaXplKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0uaXNTaGFyZWQpIC8vIGNsb25lZCBhbHJlYWR5IFVOTEVTUyBpIGlzIG91dHNpZGUgc2NhbiByYW5nZVxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuW2ldID0gY2hpbGRyZW5baV0uY2xvbmUoKTtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuW2ldLm1lcmdlU2libGluZyhjaGlsZHJlbltpICsgMV0sIG1heFNpemUpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW4uc3BsaWNlKGkgKyAxLCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5cy5zcGxpY2UoaSArIDEsIDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXlzW2ldID0gY2hpbGRyZW5baV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBNb3ZlIGNoaWxkcmVuIGZyb20gYHJoc2AgaW50byB0aGlzLlxyXG4gICAgICogYHJoc2AgbXVzdCBiZSBwYXJ0IG9mIHRoaXMgdHJlZSwgYW5kIGJlIHJlbW92ZWQgZnJvbSBpdCBhZnRlciB0aGlzIGNhbGxcclxuICAgICAqIChvdGhlcndpc2UgaXNTaGFyZWQgZm9yIGl0cyBjaGlsZHJlbiBjb3VsZCBiZSBpbmNvcnJlY3QpLlxyXG4gICAgICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5tZXJnZVNpYmxpbmcgPSBmdW5jdGlvbiAocmhzLCBtYXhOb2RlU2l6ZSkge1xyXG4gICAgICAgIC8vIGFzc2VydCAhdGhpcy5pc1NoYXJlZDtcclxuICAgICAgICB2YXIgb2xkTGVuZ3RoID0gdGhpcy5rZXlzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmtleXMucHVzaC5hcHBseSh0aGlzLmtleXMsIHJocy5rZXlzKTtcclxuICAgICAgICB2YXIgcmhzQ2hpbGRyZW4gPSByaHMuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoLmFwcGx5KHRoaXMuY2hpbGRyZW4sIHJoc0NoaWxkcmVuKTtcclxuICAgICAgICBpZiAocmhzLmlzU2hhcmVkICYmICF0aGlzLmlzU2hhcmVkKSB7XHJcbiAgICAgICAgICAgIC8vIEFsbCBjaGlsZHJlbiBvZiBhIHNoYXJlZCBub2RlIGFyZSBpbXBsaWNpdGx5IHNoYXJlZCwgYW5kIHNpbmNlIHRoZWlyIG5ld1xyXG4gICAgICAgICAgICAvLyBwYXJlbnQgaXMgbm90IHNoYXJlZCwgdGhleSBtdXN0IG5vdyBiZSBleHBsaWNpdGx5IG1hcmtlZCBhcyBzaGFyZWQuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmhzQ2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgICAgICByaHNDaGlsZHJlbltpXS5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIG91ciBjaGlsZHJlbiBhcmUgdGhlbXNlbHZlcyBhbG1vc3QgZW1wdHkgZHVlIHRvIGEgbWFzcy1kZWxldGUsXHJcbiAgICAgICAgLy8gdGhleSBtYXkgbmVlZCB0byBiZSBtZXJnZWQgdG9vIChidXQgb25seSB0aGUgb2xkTGVuZ3RoLTEgYW5kIGl0c1xyXG4gICAgICAgIC8vIHJpZ2h0IHNpYmxpbmcgc2hvdWxkIG5lZWQgdGhpcykuXHJcbiAgICAgICAgdGhpcy50cnlNZXJnZShvbGRMZW5ndGggLSAxLCBtYXhOb2RlU2l6ZSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIEJOb2RlSW50ZXJuYWw7XHJcbn0oQk5vZGUpKTtcclxuLy8gT3B0aW1pemF0aW9uOiB0aGlzIGFycmF5IG9mIGB1bmRlZmluZWRgcyBpcyB1c2VkIGluc3RlYWQgb2YgYSBub3JtYWxcclxuLy8gYXJyYXkgb2YgdmFsdWVzIGluIG5vZGVzIHdoZXJlIGB1bmRlZmluZWRgIGlzIHRoZSBvbmx5IHZhbHVlLlxyXG4vLyBJdHMgbGVuZ3RoIGlzIGV4dGVuZGVkIHRvIG1heCBub2RlIHNpemUgb24gZmlyc3QgdXNlOyBzaW5jZSBpdCBjYW5cclxuLy8gYmUgc2hhcmVkIGJldHdlZW4gdHJlZXMgd2l0aCBkaWZmZXJlbnQgbWF4aW11bXMsIGl0cyBsZW5ndGggY2FuIG9ubHlcclxuLy8gaW5jcmVhc2UsIG5ldmVyIGRlY3JlYXNlLiBJdHMgdHlwZSBzaG91bGQgYmUgdW5kZWZpbmVkW10gYnV0IHN0cmFuZ2VseVxyXG4vLyBUeXBlU2NyaXB0IHdvbid0IGFsbG93IHRoZSBjb21wYXJpc29uIFZbXSA9PT0gdW5kZWZpbmVkW10uIFRvIHByZXZlbnRcclxuLy8gdXNlcnMgZnJvbSBtYWtpbmcgdGhpcyBhcnJheSB0b28gbGFyZ2UsIEJUcmVlIGhhcyBhIG1heGltdW0gbm9kZSBzaXplLlxyXG4vL1xyXG4vLyBGQVE6IHVuZGVmVmFsc1tpXSBpcyBhbHJlYWR5IHVuZGVmaW5lZCwgc28gd2h5IGluY3JlYXNlIHRoZSBhcnJheSBzaXplP1xyXG4vLyBSZWFkaW5nIG91dHNpZGUgdGhlIGJvdW5kcyBvZiBhbiBhcnJheSBpcyByZWxhdGl2ZWx5IHNsb3cgYmVjYXVzZSBpdFxyXG4vLyBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIHNjYW5uaW5nIHRoZSBwcm90b3R5cGUgY2hhaW4uXHJcbnZhciB1bmRlZlZhbHMgPSBbXTtcclxudmFyIERlbGV0ZSA9IHsgZGVsZXRlOiB0cnVlIH0sIERlbGV0ZVJhbmdlID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gRGVsZXRlOyB9O1xyXG52YXIgQnJlYWsgPSB7IGJyZWFrOiB0cnVlIH07XHJcbnZhciBFbXB0eUxlYWYgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG4gPSBuZXcgQk5vZGUoKTtcclxuICAgIG4uaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIG47XHJcbn0pKCk7XHJcbnZhciBFbXB0eUFycmF5ID0gW107XHJcbnZhciBSZXVzZWRBcnJheSA9IFtdOyAvLyBhc3N1bWVkIHRocmVhZC1sb2NhbFxyXG5mdW5jdGlvbiBjaGVjayhmYWN0KSB7XHJcbiAgICB2YXIgYXJncyA9IFtdO1xyXG4gICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICBhcmdzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xyXG4gICAgfVxyXG4gICAgaWYgKCFmYWN0KSB7XHJcbiAgICAgICAgYXJncy51bnNoaWZ0KCdCKyB0cmVlJyk7IC8vIGF0IGJlZ2lubmluZyBvZiBtZXNzYWdlXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGFyZ3Muam9pbignICcpKTtcclxuICAgIH1cclxufVxyXG4vKiogQSBCVHJlZSBmcm96ZW4gaW4gdGhlIGVtcHR5IHN0YXRlLiAqL1xyXG5leHBvcnRzLkVtcHR5QlRyZWUgPSAoZnVuY3Rpb24gKCkgeyB2YXIgdCA9IG5ldyBCVHJlZSgpOyB0LmZyZWV6ZSgpOyByZXR1cm4gdDsgfSkoKTtcclxuIiwgIi8qIVxuICAgIGxvY2FsRm9yYWdlIC0tIE9mZmxpbmUgU3RvcmFnZSwgSW1wcm92ZWRcbiAgICBWZXJzaW9uIDEuMTAuMFxuICAgIGh0dHBzOi8vbG9jYWxmb3JhZ2UuZ2l0aHViLmlvL2xvY2FsRm9yYWdlXG4gICAgKGMpIDIwMTMtMjAxNyBNb3ppbGxhLCBBcGFjaGUgTGljZW5zZSAyLjBcbiovXG4oZnVuY3Rpb24oZil7aWYodHlwZW9mIGV4cG9ydHM9PT1cIm9iamVjdFwiJiZ0eXBlb2YgbW9kdWxlIT09XCJ1bmRlZmluZWRcIil7bW9kdWxlLmV4cG9ydHM9ZigpfWVsc2UgaWYodHlwZW9mIGRlZmluZT09PVwiZnVuY3Rpb25cIiYmZGVmaW5lLmFtZCl7ZGVmaW5lKFtdLGYpfWVsc2V7dmFyIGc7aWYodHlwZW9mIHdpbmRvdyE9PVwidW5kZWZpbmVkXCIpe2c9d2luZG93fWVsc2UgaWYodHlwZW9mIGdsb2JhbCE9PVwidW5kZWZpbmVkXCIpe2c9Z2xvYmFsfWVsc2UgaWYodHlwZW9mIHNlbGYhPT1cInVuZGVmaW5lZFwiKXtnPXNlbGZ9ZWxzZXtnPXRoaXN9Zy5sb2NhbGZvcmFnZSA9IGYoKX19KShmdW5jdGlvbigpe3ZhciBkZWZpbmUsbW9kdWxlLGV4cG9ydHM7cmV0dXJuIChmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyAoZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLCBmKX12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pKHsxOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbihmdW5jdGlvbiAoZ2xvYmFsKXtcbid1c2Ugc3RyaWN0JztcbnZhciBNdXRhdGlvbiA9IGdsb2JhbC5NdXRhdGlvbk9ic2VydmVyIHx8IGdsb2JhbC5XZWJLaXRNdXRhdGlvbk9ic2VydmVyO1xuXG52YXIgc2NoZWR1bGVEcmFpbjtcblxue1xuICBpZiAoTXV0YXRpb24pIHtcbiAgICB2YXIgY2FsbGVkID0gMDtcbiAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb24obmV4dFRpY2spO1xuICAgIHZhciBlbGVtZW50ID0gZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHtcbiAgICAgIGNoYXJhY3RlckRhdGE6IHRydWVcbiAgICB9KTtcbiAgICBzY2hlZHVsZURyYWluID0gZnVuY3Rpb24gKCkge1xuICAgICAgZWxlbWVudC5kYXRhID0gKGNhbGxlZCA9ICsrY2FsbGVkICUgMik7XG4gICAgfTtcbiAgfSBlbHNlIGlmICghZ2xvYmFsLnNldEltbWVkaWF0ZSAmJiB0eXBlb2YgZ2xvYmFsLk1lc3NhZ2VDaGFubmVsICE9PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBjaGFubmVsID0gbmV3IGdsb2JhbC5NZXNzYWdlQ2hhbm5lbCgpO1xuICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gbmV4dFRpY2s7XG4gICAgc2NoZWR1bGVEcmFpbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UoMCk7XG4gICAgfTtcbiAgfSBlbHNlIGlmICgnZG9jdW1lbnQnIGluIGdsb2JhbCAmJiAnb25yZWFkeXN0YXRlY2hhbmdlJyBpbiBnbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykpIHtcbiAgICBzY2hlZHVsZURyYWluID0gZnVuY3Rpb24gKCkge1xuXG4gICAgICAvLyBDcmVhdGUgYSA8c2NyaXB0PiBlbGVtZW50OyBpdHMgcmVhZHlzdGF0ZWNoYW5nZSBldmVudCB3aWxsIGJlIGZpcmVkIGFzeW5jaHJvbm91c2x5IG9uY2UgaXQgaXMgaW5zZXJ0ZWRcbiAgICAgIC8vIGludG8gdGhlIGRvY3VtZW50LiBEbyBzbywgdGh1cyBxdWV1aW5nIHVwIHRoZSB0YXNrLiBSZW1lbWJlciB0byBjbGVhbiB1cCBvbmNlIGl0J3MgYmVlbiBjYWxsZWQuXG4gICAgICB2YXIgc2NyaXB0RWwgPSBnbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHRFbC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIG5leHRUaWNrKCk7XG5cbiAgICAgICAgc2NyaXB0RWwub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcbiAgICAgICAgc2NyaXB0RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHRFbCk7XG4gICAgICAgIHNjcmlwdEVsID0gbnVsbDtcbiAgICAgIH07XG4gICAgICBnbG9iYWwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdEVsKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHNjaGVkdWxlRHJhaW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzZXRUaW1lb3V0KG5leHRUaWNrLCAwKTtcbiAgICB9O1xuICB9XG59XG5cbnZhciBkcmFpbmluZztcbnZhciBxdWV1ZSA9IFtdO1xuLy9uYW1lZCBuZXh0VGljayBmb3IgbGVzcyBjb25mdXNpbmcgc3RhY2sgdHJhY2VzXG5mdW5jdGlvbiBuZXh0VGljaygpIHtcbiAgZHJhaW5pbmcgPSB0cnVlO1xuICB2YXIgaSwgb2xkUXVldWU7XG4gIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gIHdoaWxlIChsZW4pIHtcbiAgICBvbGRRdWV1ZSA9IHF1ZXVlO1xuICAgIHF1ZXVlID0gW107XG4gICAgaSA9IC0xO1xuICAgIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICAgIG9sZFF1ZXVlW2ldKCk7XG4gICAgfVxuICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgfVxuICBkcmFpbmluZyA9IGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGltbWVkaWF0ZTtcbmZ1bmN0aW9uIGltbWVkaWF0ZSh0YXNrKSB7XG4gIGlmIChxdWV1ZS5wdXNoKHRhc2spID09PSAxICYmICFkcmFpbmluZykge1xuICAgIHNjaGVkdWxlRHJhaW4oKTtcbiAgfVxufVxuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbn0se31dLDI6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpe1xuJ3VzZSBzdHJpY3QnO1xudmFyIGltbWVkaWF0ZSA9IF9kZXJlcV8oMSk7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBJTlRFUk5BTCgpIHt9XG5cbnZhciBoYW5kbGVycyA9IHt9O1xuXG52YXIgUkVKRUNURUQgPSBbJ1JFSkVDVEVEJ107XG52YXIgRlVMRklMTEVEID0gWydGVUxGSUxMRUQnXTtcbnZhciBQRU5ESU5HID0gWydQRU5ESU5HJ107XG5cbm1vZHVsZS5leHBvcnRzID0gUHJvbWlzZTtcblxuZnVuY3Rpb24gUHJvbWlzZShyZXNvbHZlcikge1xuICBpZiAodHlwZW9mIHJlc29sdmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cbiAgdGhpcy5zdGF0ZSA9IFBFTkRJTkc7XG4gIHRoaXMucXVldWUgPSBbXTtcbiAgdGhpcy5vdXRjb21lID0gdm9pZCAwO1xuICBpZiAocmVzb2x2ZXIgIT09IElOVEVSTkFMKSB7XG4gICAgc2FmZWx5UmVzb2x2ZVRoZW5hYmxlKHRoaXMsIHJlc29sdmVyKTtcbiAgfVxufVxuXG5Qcm9taXNlLnByb3RvdHlwZVtcImNhdGNoXCJdID0gZnVuY3Rpb24gKG9uUmVqZWN0ZWQpIHtcbiAgcmV0dXJuIHRoaXMudGhlbihudWxsLCBvblJlamVjdGVkKTtcbn07XG5Qcm9taXNlLnByb3RvdHlwZS50aGVuID0gZnVuY3Rpb24gKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gIGlmICh0eXBlb2Ygb25GdWxmaWxsZWQgIT09ICdmdW5jdGlvbicgJiYgdGhpcy5zdGF0ZSA9PT0gRlVMRklMTEVEIHx8XG4gICAgdHlwZW9mIG9uUmVqZWN0ZWQgIT09ICdmdW5jdGlvbicgJiYgdGhpcy5zdGF0ZSA9PT0gUkVKRUNURUQpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB2YXIgcHJvbWlzZSA9IG5ldyB0aGlzLmNvbnN0cnVjdG9yKElOVEVSTkFMKTtcbiAgaWYgKHRoaXMuc3RhdGUgIT09IFBFTkRJTkcpIHtcbiAgICB2YXIgcmVzb2x2ZXIgPSB0aGlzLnN0YXRlID09PSBGVUxGSUxMRUQgPyBvbkZ1bGZpbGxlZCA6IG9uUmVqZWN0ZWQ7XG4gICAgdW53cmFwKHByb21pc2UsIHJlc29sdmVyLCB0aGlzLm91dGNvbWUpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMucXVldWUucHVzaChuZXcgUXVldWVJdGVtKHByb21pc2UsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSk7XG4gIH1cblxuICByZXR1cm4gcHJvbWlzZTtcbn07XG5mdW5jdGlvbiBRdWV1ZUl0ZW0ocHJvbWlzZSwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpIHtcbiAgdGhpcy5wcm9taXNlID0gcHJvbWlzZTtcbiAgaWYgKHR5cGVvZiBvbkZ1bGZpbGxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMub25GdWxmaWxsZWQgPSBvbkZ1bGZpbGxlZDtcbiAgICB0aGlzLmNhbGxGdWxmaWxsZWQgPSB0aGlzLm90aGVyQ2FsbEZ1bGZpbGxlZDtcbiAgfVxuICBpZiAodHlwZW9mIG9uUmVqZWN0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLm9uUmVqZWN0ZWQgPSBvblJlamVjdGVkO1xuICAgIHRoaXMuY2FsbFJlamVjdGVkID0gdGhpcy5vdGhlckNhbGxSZWplY3RlZDtcbiAgfVxufVxuUXVldWVJdGVtLnByb3RvdHlwZS5jYWxsRnVsZmlsbGVkID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIGhhbmRsZXJzLnJlc29sdmUodGhpcy5wcm9taXNlLCB2YWx1ZSk7XG59O1xuUXVldWVJdGVtLnByb3RvdHlwZS5vdGhlckNhbGxGdWxmaWxsZWQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdW53cmFwKHRoaXMucHJvbWlzZSwgdGhpcy5vbkZ1bGZpbGxlZCwgdmFsdWUpO1xufTtcblF1ZXVlSXRlbS5wcm90b3R5cGUuY2FsbFJlamVjdGVkID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIGhhbmRsZXJzLnJlamVjdCh0aGlzLnByb21pc2UsIHZhbHVlKTtcbn07XG5RdWV1ZUl0ZW0ucHJvdG90eXBlLm90aGVyQ2FsbFJlamVjdGVkID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHVud3JhcCh0aGlzLnByb21pc2UsIHRoaXMub25SZWplY3RlZCwgdmFsdWUpO1xufTtcblxuZnVuY3Rpb24gdW53cmFwKHByb21pc2UsIGZ1bmMsIHZhbHVlKSB7XG4gIGltbWVkaWF0ZShmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJldHVyblZhbHVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm5WYWx1ZSA9IGZ1bmModmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBoYW5kbGVycy5yZWplY3QocHJvbWlzZSwgZSk7XG4gICAgfVxuICAgIGlmIChyZXR1cm5WYWx1ZSA9PT0gcHJvbWlzZSkge1xuICAgICAgaGFuZGxlcnMucmVqZWN0KHByb21pc2UsIG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCByZXNvbHZlIHByb21pc2Ugd2l0aCBpdHNlbGYnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZXJzLnJlc29sdmUocHJvbWlzZSwgcmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmhhbmRsZXJzLnJlc29sdmUgPSBmdW5jdGlvbiAoc2VsZiwgdmFsdWUpIHtcbiAgdmFyIHJlc3VsdCA9IHRyeUNhdGNoKGdldFRoZW4sIHZhbHVlKTtcbiAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gaGFuZGxlcnMucmVqZWN0KHNlbGYsIHJlc3VsdC52YWx1ZSk7XG4gIH1cbiAgdmFyIHRoZW5hYmxlID0gcmVzdWx0LnZhbHVlO1xuXG4gIGlmICh0aGVuYWJsZSkge1xuICAgIHNhZmVseVJlc29sdmVUaGVuYWJsZShzZWxmLCB0aGVuYWJsZSk7XG4gIH0gZWxzZSB7XG4gICAgc2VsZi5zdGF0ZSA9IEZVTEZJTExFRDtcbiAgICBzZWxmLm91dGNvbWUgPSB2YWx1ZTtcbiAgICB2YXIgaSA9IC0xO1xuICAgIHZhciBsZW4gPSBzZWxmLnF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgICBzZWxmLnF1ZXVlW2ldLmNhbGxGdWxmaWxsZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2VsZjtcbn07XG5oYW5kbGVycy5yZWplY3QgPSBmdW5jdGlvbiAoc2VsZiwgZXJyb3IpIHtcbiAgc2VsZi5zdGF0ZSA9IFJFSkVDVEVEO1xuICBzZWxmLm91dGNvbWUgPSBlcnJvcjtcbiAgdmFyIGkgPSAtMTtcbiAgdmFyIGxlbiA9IHNlbGYucXVldWUubGVuZ3RoO1xuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgc2VsZi5xdWV1ZVtpXS5jYWxsUmVqZWN0ZWQoZXJyb3IpO1xuICB9XG4gIHJldHVybiBzZWxmO1xufTtcblxuZnVuY3Rpb24gZ2V0VGhlbihvYmopIHtcbiAgLy8gTWFrZSBzdXJlIHdlIG9ubHkgYWNjZXNzIHRoZSBhY2Nlc3NvciBvbmNlIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjXG4gIHZhciB0aGVuID0gb2JqICYmIG9iai50aGVuO1xuICBpZiAob2JqICYmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJiB0eXBlb2YgdGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBmdW5jdGlvbiBhcHB5VGhlbigpIHtcbiAgICAgIHRoZW4uYXBwbHkob2JqLCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gc2FmZWx5UmVzb2x2ZVRoZW5hYmxlKHNlbGYsIHRoZW5hYmxlKSB7XG4gIC8vIEVpdGhlciBmdWxmaWxsLCByZWplY3Qgb3IgcmVqZWN0IHdpdGggZXJyb3JcbiAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBvbkVycm9yKHZhbHVlKSB7XG4gICAgaWYgKGNhbGxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjYWxsZWQgPSB0cnVlO1xuICAgIGhhbmRsZXJzLnJlamVjdChzZWxmLCB2YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBvblN1Y2Nlc3ModmFsdWUpIHtcbiAgICBpZiAoY2FsbGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhbGxlZCA9IHRydWU7XG4gICAgaGFuZGxlcnMucmVzb2x2ZShzZWxmLCB2YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiB0cnlUb1Vud3JhcCgpIHtcbiAgICB0aGVuYWJsZShvblN1Y2Nlc3MsIG9uRXJyb3IpO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IHRyeUNhdGNoKHRyeVRvVW53cmFwKTtcbiAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICBvbkVycm9yKHJlc3VsdC52YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJ5Q2F0Y2goZnVuYywgdmFsdWUpIHtcbiAgdmFyIG91dCA9IHt9O1xuICB0cnkge1xuICAgIG91dC52YWx1ZSA9IGZ1bmModmFsdWUpO1xuICAgIG91dC5zdGF0dXMgPSAnc3VjY2Vzcyc7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBvdXQuc3RhdHVzID0gJ2Vycm9yJztcbiAgICBvdXQudmFsdWUgPSBlO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cblByb21pc2UucmVzb2x2ZSA9IHJlc29sdmU7XG5mdW5jdGlvbiByZXNvbHZlKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHRoaXMpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGhhbmRsZXJzLnJlc29sdmUobmV3IHRoaXMoSU5URVJOQUwpLCB2YWx1ZSk7XG59XG5cblByb21pc2UucmVqZWN0ID0gcmVqZWN0O1xuZnVuY3Rpb24gcmVqZWN0KHJlYXNvbikge1xuICB2YXIgcHJvbWlzZSA9IG5ldyB0aGlzKElOVEVSTkFMKTtcbiAgcmV0dXJuIGhhbmRsZXJzLnJlamVjdChwcm9taXNlLCByZWFzb24pO1xufVxuXG5Qcm9taXNlLmFsbCA9IGFsbDtcbmZ1bmN0aW9uIGFsbChpdGVyYWJsZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaXRlcmFibGUpICE9PSAnW29iamVjdCBBcnJheV0nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ211c3QgYmUgYW4gYXJyYXknKSk7XG4gIH1cblxuICB2YXIgbGVuID0gaXRlcmFibGUubGVuZ3RoO1xuICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gIGlmICghbGVuKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZShbXSk7XG4gIH1cblxuICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KGxlbik7XG4gIHZhciByZXNvbHZlZCA9IDA7XG4gIHZhciBpID0gLTE7XG4gIHZhciBwcm9taXNlID0gbmV3IHRoaXMoSU5URVJOQUwpO1xuXG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBhbGxSZXNvbHZlcihpdGVyYWJsZVtpXSwgaSk7XG4gIH1cbiAgcmV0dXJuIHByb21pc2U7XG4gIGZ1bmN0aW9uIGFsbFJlc29sdmVyKHZhbHVlLCBpKSB7XG4gICAgc2VsZi5yZXNvbHZlKHZhbHVlKS50aGVuKHJlc29sdmVGcm9tQWxsLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmICghY2FsbGVkKSB7XG4gICAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICAgIGhhbmRsZXJzLnJlamVjdChwcm9taXNlLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUZyb21BbGwob3V0VmFsdWUpIHtcbiAgICAgIHZhbHVlc1tpXSA9IG91dFZhbHVlO1xuICAgICAgaWYgKCsrcmVzb2x2ZWQgPT09IGxlbiAmJiAhY2FsbGVkKSB7XG4gICAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICAgIGhhbmRsZXJzLnJlc29sdmUocHJvbWlzZSwgdmFsdWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuUHJvbWlzZS5yYWNlID0gcmFjZTtcbmZ1bmN0aW9uIHJhY2UoaXRlcmFibGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGl0ZXJhYmxlKSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgIHJldHVybiB0aGlzLnJlamVjdChuZXcgVHlwZUVycm9yKCdtdXN0IGJlIGFuIGFycmF5JykpO1xuICB9XG5cbiAgdmFyIGxlbiA9IGl0ZXJhYmxlLmxlbmd0aDtcbiAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICBpZiAoIWxlbikge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoW10pO1xuICB9XG5cbiAgdmFyIGkgPSAtMTtcbiAgdmFyIHByb21pc2UgPSBuZXcgdGhpcyhJTlRFUk5BTCk7XG5cbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIHJlc29sdmVyKGl0ZXJhYmxlW2ldKTtcbiAgfVxuICByZXR1cm4gcHJvbWlzZTtcbiAgZnVuY3Rpb24gcmVzb2x2ZXIodmFsdWUpIHtcbiAgICBzZWxmLnJlc29sdmUodmFsdWUpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgICBoYW5kbGVycy5yZXNvbHZlKHByb21pc2UsIHJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmICghY2FsbGVkKSB7XG4gICAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICAgIGhhbmRsZXJzLnJlamVjdChwcm9taXNlLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxufSx7XCIxXCI6MX1dLDM6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpe1xuKGZ1bmN0aW9uIChnbG9iYWwpe1xuJ3VzZSBzdHJpY3QnO1xuaWYgKHR5cGVvZiBnbG9iYWwuUHJvbWlzZSAhPT0gJ2Z1bmN0aW9uJykge1xuICBnbG9iYWwuUHJvbWlzZSA9IF9kZXJlcV8oMik7XG59XG5cbn0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9KVxufSx7XCIyXCI6Mn1dLDQ6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpe1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIGdldElEQigpIHtcbiAgICAvKiBnbG9iYWwgaW5kZXhlZERCLHdlYmtpdEluZGV4ZWREQixtb3pJbmRleGVkREIsT0luZGV4ZWREQixtc0luZGV4ZWREQiAqL1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5kZXhlZERCICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4ZWREQjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHdlYmtpdEluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWJraXRJbmRleGVkREI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBtb3pJbmRleGVkREIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbW96SW5kZXhlZERCO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgT0luZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPSW5kZXhlZERCO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbXNJbmRleGVkREIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbXNJbmRleGVkREI7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5cbnZhciBpZGIgPSBnZXRJREIoKTtcblxuZnVuY3Rpb24gaXNJbmRleGVkREJWYWxpZCgpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJbml0aWFsaXplIEluZGV4ZWREQjsgZmFsbCBiYWNrIHRvIHZlbmRvci1wcmVmaXhlZCB2ZXJzaW9uc1xuICAgICAgICAvLyBpZiBuZWVkZWQuXG4gICAgICAgIGlmICghaWRiIHx8ICFpZGIub3Blbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIG1pbWljIFBvdWNoREIgaGVyZTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gV2UgdGVzdCBmb3Igb3BlbkRhdGFiYXNlIGJlY2F1c2UgSUUgTW9iaWxlIGlkZW50aWZpZXMgaXRzZWxmXG4gICAgICAgIC8vIGFzIFNhZmFyaS4gT2ggdGhlIGx1bHouLi5cbiAgICAgICAgdmFyIGlzU2FmYXJpID0gdHlwZW9mIG9wZW5EYXRhYmFzZSAhPT0gJ3VuZGVmaW5lZCcgJiYgLyhTYWZhcml8aVBob25lfGlQYWR8aVBvZCkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIS9DaHJvbWUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIS9CbGFja0JlcnJ5Ly50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk7XG5cbiAgICAgICAgdmFyIGhhc0ZldGNoID0gdHlwZW9mIGZldGNoID09PSAnZnVuY3Rpb24nICYmIGZldGNoLnRvU3RyaW5nKCkuaW5kZXhPZignW25hdGl2ZSBjb2RlJykgIT09IC0xO1xuXG4gICAgICAgIC8vIFNhZmFyaSA8MTAuMSBkb2VzIG5vdCBtZWV0IG91ciByZXF1aXJlbWVudHMgZm9yIElEQiBzdXBwb3J0XG4gICAgICAgIC8vIChzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wb3VjaGRiL3BvdWNoZGIvaXNzdWVzLzU1NzIpLlxuICAgICAgICAvLyBTYWZhcmkgMTAuMSBzaGlwcGVkIHdpdGggZmV0Y2gsIHdlIGNhbiB1c2UgdGhhdCB0byBkZXRlY3QgaXQuXG4gICAgICAgIC8vIE5vdGU6IHRoaXMgY3JlYXRlcyBpc3N1ZXMgd2l0aCBgd2luZG93LmZldGNoYCBwb2x5ZmlsbHMgYW5kXG4gICAgICAgIC8vIG92ZXJyaWRlczsgc2VlOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbG9jYWxGb3JhZ2UvbG9jYWxGb3JhZ2UvaXNzdWVzLzg1NlxuICAgICAgICByZXR1cm4gKCFpc1NhZmFyaSB8fCBoYXNGZXRjaCkgJiYgdHlwZW9mIGluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgLy8gc29tZSBvdXRkYXRlZCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIHRoYXQgYXBwZWFyIG9uIFNhbXN1bmdcbiAgICAgICAgLy8gYW5kIEhUQyBBbmRyb2lkIGRldmljZXMgPDQuNCBhcmUgbWlzc2luZyBJREJLZXlSYW5nZVxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2xvY2FsRm9yYWdlL2lzc3Vlcy8xMjhcbiAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9sb2NhbEZvcmFnZS9pc3N1ZXMvMjcyXG4gICAgICAgIHR5cGVvZiBJREJLZXlSYW5nZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyBBYnN0cmFjdHMgY29uc3RydWN0aW5nIGEgQmxvYiBvYmplY3QsIHNvIGl0IGFsc28gd29ya3MgaW4gb2xkZXJcbi8vIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgbmF0aXZlIEJsb2IgY29uc3RydWN0b3IuIChpLmUuXG4vLyBvbGQgUXRXZWJLaXQgdmVyc2lvbnMsIGF0IGxlYXN0KS5cbi8vIEFic3RyYWN0cyBjb25zdHJ1Y3RpbmcgYSBCbG9iIG9iamVjdCwgc28gaXQgYWxzbyB3b3JrcyBpbiBvbGRlclxuLy8gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBuYXRpdmUgQmxvYiBjb25zdHJ1Y3Rvci4gKGkuZS5cbi8vIG9sZCBRdFdlYktpdCB2ZXJzaW9ucywgYXQgbGVhc3QpLlxuZnVuY3Rpb24gY3JlYXRlQmxvYihwYXJ0cywgcHJvcGVydGllcykge1xuICAgIC8qIGdsb2JhbCBCbG9iQnVpbGRlcixNU0Jsb2JCdWlsZGVyLE1vekJsb2JCdWlsZGVyLFdlYktpdEJsb2JCdWlsZGVyICovXG4gICAgcGFydHMgPSBwYXJ0cyB8fCBbXTtcbiAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllcyB8fCB7fTtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IEJsb2IocGFydHMsIHByb3BlcnRpZXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKGUubmFtZSAhPT0gJ1R5cGVFcnJvcicpIHtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIEJ1aWxkZXIgPSB0eXBlb2YgQmxvYkJ1aWxkZXIgIT09ICd1bmRlZmluZWQnID8gQmxvYkJ1aWxkZXIgOiB0eXBlb2YgTVNCbG9iQnVpbGRlciAhPT0gJ3VuZGVmaW5lZCcgPyBNU0Jsb2JCdWlsZGVyIDogdHlwZW9mIE1vekJsb2JCdWlsZGVyICE9PSAndW5kZWZpbmVkJyA/IE1vekJsb2JCdWlsZGVyIDogV2ViS2l0QmxvYkJ1aWxkZXI7XG4gICAgICAgIHZhciBidWlsZGVyID0gbmV3IEJ1aWxkZXIoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFydHNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWlsZGVyLmdldEJsb2IocHJvcGVydGllcy50eXBlKTtcbiAgICB9XG59XG5cbi8vIFRoaXMgaXMgQ29tbW9uSlMgYmVjYXVzZSBsaWUgaXMgYW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSwgc28gUm9sbHVwXG4vLyBjYW4ganVzdCBpZ25vcmUgaXQuXG5pZiAodHlwZW9mIFByb21pc2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gSW4gdGhlIFwibm9wcm9taXNlc1wiIGJ1aWxkIHRoaXMgd2lsbCBqdXN0IHRocm93IGlmIHlvdSBkb24ndCBoYXZlXG4gICAgLy8gYSBnbG9iYWwgcHJvbWlzZSBvYmplY3QsIGJ1dCBpdCB3b3VsZCB0aHJvdyBhbnl3YXkgbGF0ZXIuXG4gICAgX2RlcmVxXygzKTtcbn1cbnZhciBQcm9taXNlJDEgPSBQcm9taXNlO1xuXG5mdW5jdGlvbiBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spIHtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVUd29DYWxsYmFja3MocHJvbWlzZSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByb21pc2UudGhlbihjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBlcnJvckNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByb21pc2VbXCJjYXRjaFwiXShlcnJvckNhbGxiYWNrKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUtleShrZXkpIHtcbiAgICAvLyBDYXN0IHRoZSBrZXkgdG8gYSBzdHJpbmcsIGFzIHRoYXQncyBhbGwgd2UgY2FuIHNldCBhcyBhIGtleS5cbiAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGtleSArICcgdXNlZCBhcyBhIGtleSwgYnV0IGl0IGlzIG5vdCBhIHN0cmluZy4nKTtcbiAgICAgICAga2V5ID0gU3RyaW5nKGtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGtleTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FsbGJhY2soKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggJiYgdHlwZW9mIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgfVxufVxuXG4vLyBTb21lIGNvZGUgb3JpZ2luYWxseSBmcm9tIGFzeW5jX3N0b3JhZ2UuanMgaW5cbi8vIFtHYWlhXShodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS1iMmcvZ2FpYSkuXG5cbnZhciBERVRFQ1RfQkxPQl9TVVBQT1JUX1NUT1JFID0gJ2xvY2FsLWZvcmFnZS1kZXRlY3QtYmxvYi1zdXBwb3J0JztcbnZhciBzdXBwb3J0c0Jsb2JzID0gdm9pZCAwO1xudmFyIGRiQ29udGV4dHMgPSB7fTtcbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8vIFRyYW5zYWN0aW9uIE1vZGVzXG52YXIgUkVBRF9PTkxZID0gJ3JlYWRvbmx5JztcbnZhciBSRUFEX1dSSVRFID0gJ3JlYWR3cml0ZSc7XG5cbi8vIFRyYW5zZm9ybSBhIGJpbmFyeSBzdHJpbmcgdG8gYW4gYXJyYXkgYnVmZmVyLCBiZWNhdXNlIG90aGVyd2lzZVxuLy8gd2VpcmQgc3R1ZmYgaGFwcGVucyB3aGVuIHlvdSB0cnkgdG8gd29yayB3aXRoIHRoZSBiaW5hcnkgc3RyaW5nIGRpcmVjdGx5LlxuLy8gSXQgaXMga25vd24uXG4vLyBGcm9tIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTQ5Njc2NDcvIChjb250aW51ZXMgb24gbmV4dCBsaW5lKVxuLy8gZW5jb2RlLWRlY29kZS1pbWFnZS13aXRoLWJhc2U2NC1icmVha3MtaW1hZ2UgKDIwMTMtMDQtMjEpXG5mdW5jdGlvbiBfYmluU3RyaW5nVG9BcnJheUJ1ZmZlcihiaW4pIHtcbiAgICB2YXIgbGVuZ3RoID0gYmluLmxlbmd0aDtcbiAgICB2YXIgYnVmID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7XG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBhcnJbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1Zjtcbn1cblxuLy9cbi8vIEJsb2JzIGFyZSBub3Qgc3VwcG9ydGVkIGluIGFsbCB2ZXJzaW9ucyBvZiBJbmRleGVkREIsIG5vdGFibHlcbi8vIENocm9tZSA8MzcgYW5kIEFuZHJvaWQgPDUuIEluIHRob3NlIHZlcnNpb25zLCBzdG9yaW5nIGEgYmxvYiB3aWxsIHRocm93LlxuLy9cbi8vIFZhcmlvdXMgb3RoZXIgYmxvYiBidWdzIGV4aXN0IGluIENocm9tZSB2MzctNDIgKGluY2x1c2l2ZSkuXG4vLyBEZXRlY3RpbmcgdGhlbSBpcyBleHBlbnNpdmUgYW5kIGNvbmZ1c2luZyB0byB1c2VycywgYW5kIENocm9tZSAzNy00MlxuLy8gaXMgYXQgdmVyeSBsb3cgdXNhZ2Ugd29ybGR3aWRlLCBzbyB3ZSBkbyBhIGhhY2t5IHVzZXJBZ2VudCBjaGVjayBpbnN0ZWFkLlxuLy9cbi8vIGNvbnRlbnQtdHlwZSBidWc6IGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00MDgxMjBcbi8vIDQwNCBidWc6IGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDc5MTZcbi8vIEZpbGVSZWFkZXIgYnVnOiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ3ODM2XG4vL1xuLy8gQ29kZSBib3Jyb3dlZCBmcm9tIFBvdWNoREIuIFNlZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3VjaGRiL3BvdWNoZGIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvbm9kZV9tb2R1bGVzL3BvdWNoZGItYWRhcHRlci1pZGIvc3JjL2Jsb2JTdXBwb3J0LmpzXG4vL1xuZnVuY3Rpb24gX2NoZWNrQmxvYlN1cHBvcnRXaXRob3V0Q2FjaGluZyhpZGIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICB2YXIgdHhuID0gaWRiLnRyYW5zYWN0aW9uKERFVEVDVF9CTE9CX1NVUFBPUlRfU1RPUkUsIFJFQURfV1JJVEUpO1xuICAgICAgICB2YXIgYmxvYiA9IGNyZWF0ZUJsb2IoWycnXSk7XG4gICAgICAgIHR4bi5vYmplY3RTdG9yZShERVRFQ1RfQkxPQl9TVVBQT1JUX1NUT1JFKS5wdXQoYmxvYiwgJ2tleScpO1xuXG4gICAgICAgIHR4bi5vbmFib3J0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSB0cmFuc2FjdGlvbiBhYm9ydHMgbm93IGl0cyBkdWUgdG8gbm90IGJlaW5nIGFibGUgdG9cbiAgICAgICAgICAgIC8vIHdyaXRlIHRvIHRoZSBkYXRhYmFzZSwgbGlrZWx5IGR1ZSB0byB0aGUgZGlzayBiZWluZyBmdWxsXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdHhuLm9uY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgbWF0Y2hlZENocm9tZSA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tZVxcLyhcXGQrKS8pO1xuICAgICAgICAgICAgdmFyIG1hdGNoZWRFZGdlID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRWRnZVxcLy8pO1xuICAgICAgICAgICAgLy8gTVMgRWRnZSBwcmV0ZW5kcyB0byBiZSBDaHJvbWUgNDI6XG4gICAgICAgICAgICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2hoODY5MzAxJTI4dj12cy44NSUyOS5hc3B4XG4gICAgICAgICAgICByZXNvbHZlKG1hdGNoZWRFZGdlIHx8ICFtYXRjaGVkQ2hyb21lIHx8IHBhcnNlSW50KG1hdGNoZWRDaHJvbWVbMV0sIDEwKSA+PSA0Myk7XG4gICAgICAgIH07XG4gICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTsgLy8gZXJyb3IsIHNvIGFzc3VtZSB1bnN1cHBvcnRlZFxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBfY2hlY2tCbG9iU3VwcG9ydChpZGIpIHtcbiAgICBpZiAodHlwZW9mIHN1cHBvcnRzQmxvYnMgPT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoc3VwcG9ydHNCbG9icyk7XG4gICAgfVxuICAgIHJldHVybiBfY2hlY2tCbG9iU3VwcG9ydFdpdGhvdXRDYWNoaW5nKGlkYikudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgc3VwcG9ydHNCbG9icyA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gc3VwcG9ydHNCbG9icztcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gX2RlZmVyUmVhZGluZXNzKGRiSW5mbykge1xuICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW2RiSW5mby5uYW1lXTtcblxuICAgIC8vIENyZWF0ZSBhIGRlZmVycmVkIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgZGF0YWJhc2Ugb3BlcmF0aW9uLlxuICAgIHZhciBkZWZlcnJlZE9wZXJhdGlvbiA9IHt9O1xuXG4gICAgZGVmZXJyZWRPcGVyYXRpb24ucHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBkZWZlcnJlZE9wZXJhdGlvbi5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgZGVmZXJyZWRPcGVyYXRpb24ucmVqZWN0ID0gcmVqZWN0O1xuICAgIH0pO1xuXG4gICAgLy8gRW5xdWV1ZSB0aGUgZGVmZXJyZWQgb3BlcmF0aW9uLlxuICAgIGRiQ29udGV4dC5kZWZlcnJlZE9wZXJhdGlvbnMucHVzaChkZWZlcnJlZE9wZXJhdGlvbik7XG5cbiAgICAvLyBDaGFpbiBpdHMgcHJvbWlzZSB0byB0aGUgZGF0YWJhc2UgcmVhZGluZXNzLlxuICAgIGlmICghZGJDb250ZXh0LmRiUmVhZHkpIHtcbiAgICAgICAgZGJDb250ZXh0LmRiUmVhZHkgPSBkZWZlcnJlZE9wZXJhdGlvbi5wcm9taXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGRiQ29udGV4dC5kYlJlYWR5ID0gZGJDb250ZXh0LmRiUmVhZHkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmZXJyZWRPcGVyYXRpb24ucHJvbWlzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfYWR2YW5jZVJlYWRpbmVzcyhkYkluZm8pIHtcbiAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tkYkluZm8ubmFtZV07XG5cbiAgICAvLyBEZXF1ZXVlIGEgZGVmZXJyZWQgb3BlcmF0aW9uLlxuICAgIHZhciBkZWZlcnJlZE9wZXJhdGlvbiA9IGRiQ29udGV4dC5kZWZlcnJlZE9wZXJhdGlvbnMucG9wKCk7XG5cbiAgICAvLyBSZXNvbHZlIGl0cyBwcm9taXNlICh3aGljaCBpcyBwYXJ0IG9mIHRoZSBkYXRhYmFzZSByZWFkaW5lc3NcbiAgICAvLyBjaGFpbiBvZiBwcm9taXNlcykuXG4gICAgaWYgKGRlZmVycmVkT3BlcmF0aW9uKSB7XG4gICAgICAgIGRlZmVycmVkT3BlcmF0aW9uLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIGRlZmVycmVkT3BlcmF0aW9uLnByb21pc2U7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfcmVqZWN0UmVhZGluZXNzKGRiSW5mbywgZXJyKSB7XG4gICAgdmFyIGRiQ29udGV4dCA9IGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdO1xuXG4gICAgLy8gRGVxdWV1ZSBhIGRlZmVycmVkIG9wZXJhdGlvbi5cbiAgICB2YXIgZGVmZXJyZWRPcGVyYXRpb24gPSBkYkNvbnRleHQuZGVmZXJyZWRPcGVyYXRpb25zLnBvcCgpO1xuXG4gICAgLy8gUmVqZWN0IGl0cyBwcm9taXNlICh3aGljaCBpcyBwYXJ0IG9mIHRoZSBkYXRhYmFzZSByZWFkaW5lc3NcbiAgICAvLyBjaGFpbiBvZiBwcm9taXNlcykuXG4gICAgaWYgKGRlZmVycmVkT3BlcmF0aW9uKSB7XG4gICAgICAgIGRlZmVycmVkT3BlcmF0aW9uLnJlamVjdChlcnIpO1xuICAgICAgICByZXR1cm4gZGVmZXJyZWRPcGVyYXRpb24ucHJvbWlzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIF9nZXRDb25uZWN0aW9uKGRiSW5mbywgdXBncmFkZU5lZWRlZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZGJDb250ZXh0c1tkYkluZm8ubmFtZV0gPSBkYkNvbnRleHRzW2RiSW5mby5uYW1lXSB8fCBjcmVhdGVEYkNvbnRleHQoKTtcblxuICAgICAgICBpZiAoZGJJbmZvLmRiKSB7XG4gICAgICAgICAgICBpZiAodXBncmFkZU5lZWRlZCkge1xuICAgICAgICAgICAgICAgIF9kZWZlclJlYWRpbmVzcyhkYkluZm8pO1xuICAgICAgICAgICAgICAgIGRiSW5mby5kYi5jbG9zZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShkYkluZm8uZGIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRiQXJncyA9IFtkYkluZm8ubmFtZV07XG5cbiAgICAgICAgaWYgKHVwZ3JhZGVOZWVkZWQpIHtcbiAgICAgICAgICAgIGRiQXJncy5wdXNoKGRiSW5mby52ZXJzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvcGVucmVxID0gaWRiLm9wZW4uYXBwbHkoaWRiLCBkYkFyZ3MpO1xuXG4gICAgICAgIGlmICh1cGdyYWRlTmVlZGVkKSB7XG4gICAgICAgICAgICBvcGVucmVxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRiID0gb3BlbnJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLm9sZFZlcnNpb24gPD0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkZWQgd2hlbiBzdXBwb3J0IGZvciBibG9iIHNoaW1zIHdhcyBhZGRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoREVURUNUX0JMT0JfU1VQUE9SVF9TVE9SRSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXgubmFtZSA9PT0gJ0NvbnN0cmFpbnRFcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlIGRhdGFiYXNlIFwiJyArIGRiSW5mby5uYW1lICsgJ1wiJyArICcgaGFzIGJlZW4gdXBncmFkZWQgZnJvbSB2ZXJzaW9uICcgKyBlLm9sZFZlcnNpb24gKyAnIHRvIHZlcnNpb24gJyArIGUubmV3VmVyc2lvbiArICcsIGJ1dCB0aGUgc3RvcmFnZSBcIicgKyBkYkluZm8uc3RvcmVOYW1lICsgJ1wiIGFscmVhZHkgZXhpc3RzLicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3BlbnJlcS5vbmVycm9yID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJlamVjdChvcGVucmVxLmVycm9yKTtcbiAgICAgICAgfTtcblxuICAgICAgICBvcGVucmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYiA9IG9wZW5yZXEucmVzdWx0O1xuICAgICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyZWQgd2hlbiB0aGUgZGF0YWJhc2UgaXMgbW9kaWZpZWQgKGUuZy4gYWRkaW5nIGFuIG9iamVjdFN0b3JlKSBvclxuICAgICAgICAgICAgICAgIC8vIGRlbGV0ZWQgKGV2ZW4gd2hlbiBpbml0aWF0ZWQgYnkgb3RoZXIgc2Vzc2lvbnMgaW4gZGlmZmVyZW50IHRhYnMpLlxuICAgICAgICAgICAgICAgIC8vIENsb3NpbmcgdGhlIGNvbm5lY3Rpb24gaGVyZSBwcmV2ZW50cyB0aG9zZSBvcGVyYXRpb25zIGZyb20gYmVpbmcgYmxvY2tlZC5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGF0YWJhc2UgaXMgYWNjZXNzZWQgYWdhaW4gbGF0ZXIgYnkgdGhpcyBpbnN0YW5jZSwgdGhlIGNvbm5lY3Rpb25cbiAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIHJlb3BlbmVkIG9yIHRoZSBkYXRhYmFzZSByZWNyZWF0ZWQgYXMgbmVlZGVkLlxuICAgICAgICAgICAgICAgIGUudGFyZ2V0LmNsb3NlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZShkYik7XG4gICAgICAgICAgICBfYWR2YW5jZVJlYWRpbmVzcyhkYkluZm8pO1xuICAgICAgICB9O1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBfZ2V0T3JpZ2luYWxDb25uZWN0aW9uKGRiSW5mbykge1xuICAgIHJldHVybiBfZ2V0Q29ubmVjdGlvbihkYkluZm8sIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gX2dldFVwZ3JhZGVkQ29ubmVjdGlvbihkYkluZm8pIHtcbiAgICByZXR1cm4gX2dldENvbm5lY3Rpb24oZGJJbmZvLCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gX2lzVXBncmFkZU5lZWRlZChkYkluZm8sIGRlZmF1bHRWZXJzaW9uKSB7XG4gICAgaWYgKCFkYkluZm8uZGIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGlzTmV3U3RvcmUgPSAhZGJJbmZvLmRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgdmFyIGlzRG93bmdyYWRlID0gZGJJbmZvLnZlcnNpb24gPCBkYkluZm8uZGIudmVyc2lvbjtcbiAgICB2YXIgaXNVcGdyYWRlID0gZGJJbmZvLnZlcnNpb24gPiBkYkluZm8uZGIudmVyc2lvbjtcblxuICAgIGlmIChpc0Rvd25ncmFkZSkge1xuICAgICAgICAvLyBJZiB0aGUgdmVyc2lvbiBpcyBub3QgdGhlIGRlZmF1bHQgb25lXG4gICAgICAgIC8vIHRoZW4gd2FybiBmb3IgaW1wb3NzaWJsZSBkb3duZ3JhZGUuXG4gICAgICAgIGlmIChkYkluZm8udmVyc2lvbiAhPT0gZGVmYXVsdFZlcnNpb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlIGRhdGFiYXNlIFwiJyArIGRiSW5mby5uYW1lICsgJ1wiJyArIFwiIGNhbid0IGJlIGRvd25ncmFkZWQgZnJvbSB2ZXJzaW9uIFwiICsgZGJJbmZvLmRiLnZlcnNpb24gKyAnIHRvIHZlcnNpb24gJyArIGRiSW5mby52ZXJzaW9uICsgJy4nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBbGlnbiB0aGUgdmVyc2lvbnMgdG8gcHJldmVudCBlcnJvcnMuXG4gICAgICAgIGRiSW5mby52ZXJzaW9uID0gZGJJbmZvLmRiLnZlcnNpb247XG4gICAgfVxuXG4gICAgaWYgKGlzVXBncmFkZSB8fCBpc05ld1N0b3JlKSB7XG4gICAgICAgIC8vIElmIHRoZSBzdG9yZSBpcyBuZXcgdGhlbiBpbmNyZW1lbnQgdGhlIHZlcnNpb24gKGlmIG5lZWRlZCkuXG4gICAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGFuIFwidXBncmFkZW5lZWRlZFwiIGV2ZW50IHdoaWNoIGlzIHJlcXVpcmVkXG4gICAgICAgIC8vIGZvciBjcmVhdGluZyBhIHN0b3JlLlxuICAgICAgICBpZiAoaXNOZXdTdG9yZSkge1xuICAgICAgICAgICAgdmFyIGluY1ZlcnNpb24gPSBkYkluZm8uZGIudmVyc2lvbiArIDE7XG4gICAgICAgICAgICBpZiAoaW5jVmVyc2lvbiA+IGRiSW5mby52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgZGJJbmZvLnZlcnNpb24gPSBpbmNWZXJzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBlbmNvZGUgYSBibG9iIGZvciBpbmRleGVkZGIgZW5naW5lcyB0aGF0IGRvbid0IHN1cHBvcnQgYmxvYnNcbmZ1bmN0aW9uIF9lbmNvZGVCbG9iKGJsb2IpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YXIgYmFzZTY0ID0gYnRvYShlLnRhcmdldC5yZXN1bHQgfHwgJycpO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgX19sb2NhbF9mb3JhZ2VfZW5jb2RlZF9ibG9iOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGE6IGJhc2U2NCxcbiAgICAgICAgICAgICAgICB0eXBlOiBibG9iLnR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGJsb2IpO1xuICAgIH0pO1xufVxuXG4vLyBkZWNvZGUgYW4gZW5jb2RlZCBibG9iXG5mdW5jdGlvbiBfZGVjb2RlQmxvYihlbmNvZGVkQmxvYikge1xuICAgIHZhciBhcnJheUJ1ZmYgPSBfYmluU3RyaW5nVG9BcnJheUJ1ZmZlcihhdG9iKGVuY29kZWRCbG9iLmRhdGEpKTtcbiAgICByZXR1cm4gY3JlYXRlQmxvYihbYXJyYXlCdWZmXSwgeyB0eXBlOiBlbmNvZGVkQmxvYi50eXBlIH0pO1xufVxuXG4vLyBpcyB0aGlzIG9uZSBvZiBvdXIgZmFuY3kgZW5jb2RlZCBibG9icz9cbmZ1bmN0aW9uIF9pc0VuY29kZWRCbG9iKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLl9fbG9jYWxfZm9yYWdlX2VuY29kZWRfYmxvYjtcbn1cblxuLy8gU3BlY2lhbGl6ZSB0aGUgZGVmYXVsdCBgcmVhZHkoKWAgZnVuY3Rpb24gYnkgbWFraW5nIGl0IGRlcGVuZGVudFxuLy8gb24gdGhlIGN1cnJlbnQgZGF0YWJhc2Ugb3BlcmF0aW9ucy4gVGh1cywgdGhlIGRyaXZlciB3aWxsIGJlIGFjdHVhbGx5XG4vLyByZWFkeSB3aGVuIGl0J3MgYmVlbiBpbml0aWFsaXplZCAoZGVmYXVsdCkgKmFuZCogdGhlcmUgYXJlIG5vIHBlbmRpbmdcbi8vIG9wZXJhdGlvbnMgb24gdGhlIGRhdGFiYXNlIChpbml0aWF0ZWQgYnkgc29tZSBvdGhlciBpbnN0YW5jZXMpLlxuZnVuY3Rpb24gX2Z1bGx5UmVhZHkoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYuX2luaXRSZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tzZWxmLl9kYkluZm8ubmFtZV07XG5cbiAgICAgICAgaWYgKGRiQ29udGV4dCAmJiBkYkNvbnRleHQuZGJSZWFkeSkge1xuICAgICAgICAgICAgcmV0dXJuIGRiQ29udGV4dC5kYlJlYWR5O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleGVjdXRlVHdvQ2FsbGJhY2tzKHByb21pc2UsIGNhbGxiYWNrLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIFRyeSB0byBlc3RhYmxpc2ggYSBuZXcgZGIgY29ubmVjdGlvbiB0byByZXBsYWNlIHRoZVxuLy8gY3VycmVudCBvbmUgd2hpY2ggaXMgYnJva2VuIChpLmUuIGV4cGVyaWVuY2luZ1xuLy8gSW52YWxpZFN0YXRlRXJyb3Igd2hpbGUgY3JlYXRpbmcgYSB0cmFuc2FjdGlvbikuXG5mdW5jdGlvbiBfdHJ5UmVjb25uZWN0KGRiSW5mbykge1xuICAgIF9kZWZlclJlYWRpbmVzcyhkYkluZm8pO1xuXG4gICAgdmFyIGRiQ29udGV4dCA9IGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdO1xuICAgIHZhciBmb3JhZ2VzID0gZGJDb250ZXh0LmZvcmFnZXM7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGZvcmFnZSA9IGZvcmFnZXNbaV07XG4gICAgICAgIGlmIChmb3JhZ2UuX2RiSW5mby5kYikge1xuICAgICAgICAgICAgZm9yYWdlLl9kYkluZm8uZGIuY2xvc2UoKTtcbiAgICAgICAgICAgIGZvcmFnZS5fZGJJbmZvLmRiID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkYkluZm8uZGIgPSBudWxsO1xuXG4gICAgcmV0dXJuIF9nZXRPcmlnaW5hbENvbm5lY3Rpb24oZGJJbmZvKS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICBkYkluZm8uZGIgPSBkYjtcbiAgICAgICAgaWYgKF9pc1VwZ3JhZGVOZWVkZWQoZGJJbmZvKSkge1xuICAgICAgICAgICAgLy8gUmVvcGVuIHRoZSBkYXRhYmFzZSBmb3IgdXBncmFkaW5nLlxuICAgICAgICAgICAgcmV0dXJuIF9nZXRVcGdyYWRlZENvbm5lY3Rpb24oZGJJbmZvKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGI7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgLy8gc3RvcmUgdGhlIGxhdGVzdCBkYiByZWZlcmVuY2VcbiAgICAgICAgLy8gaW4gY2FzZSB0aGUgZGIgd2FzIHVwZ3JhZGVkXG4gICAgICAgIGRiSW5mby5kYiA9IGRiQ29udGV4dC5kYiA9IGRiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvcmFnZXNbaV0uX2RiSW5mby5kYiA9IGRiO1xuICAgICAgICB9XG4gICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIF9yZWplY3RSZWFkaW5lc3MoZGJJbmZvLCBlcnIpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5cbi8vIEZGIGRvZXNuJ3QgbGlrZSBQcm9taXNlcyAobWljcm8tdGFza3MpIGFuZCBJRERCIHN0b3JlIG9wZXJhdGlvbnMsXG4vLyBzbyB3ZSBoYXZlIHRvIGRvIGl0IHdpdGggY2FsbGJhY2tzXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbihkYkluZm8sIG1vZGUsIGNhbGxiYWNrLCByZXRyaWVzKSB7XG4gICAgaWYgKHJldHJpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXRyaWVzID0gMTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgICB2YXIgdHggPSBkYkluZm8uZGIudHJhbnNhY3Rpb24oZGJJbmZvLnN0b3JlTmFtZSwgbW9kZSk7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIHR4KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKHJldHJpZXMgPiAwICYmICghZGJJbmZvLmRiIHx8IGVyci5uYW1lID09PSAnSW52YWxpZFN0YXRlRXJyb3InIHx8IGVyci5uYW1lID09PSAnTm90Rm91bmRFcnJvcicpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRiSW5mby5kYiB8fCBlcnIubmFtZSA9PT0gJ05vdEZvdW5kRXJyb3InICYmICFkYkluZm8uZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhkYkluZm8uc3RvcmVOYW1lKSAmJiBkYkluZm8udmVyc2lvbiA8PSBkYkluZm8uZGIudmVyc2lvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZWFzZSB0aGUgZGIgdmVyc2lvbiwgdG8gY3JlYXRlIHRoZSBuZXcgT2JqZWN0U3RvcmVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRiSW5mby5kYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGJJbmZvLnZlcnNpb24gPSBkYkluZm8uZGIudmVyc2lvbiArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gUmVvcGVuIHRoZSBkYXRhYmFzZSBmb3IgdXBncmFkaW5nLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2dldFVwZ3JhZGVkQ29ubmVjdGlvbihkYkluZm8pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdHJ5UmVjb25uZWN0KGRiSW5mbykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKGRiSW5mbywgbW9kZSwgY2FsbGJhY2ssIHJldHJpZXMgLSAxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pW1wiY2F0Y2hcIl0oY2FsbGJhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURiQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBSdW5uaW5nIGxvY2FsRm9yYWdlcyBzaGFyaW5nIGEgZGF0YWJhc2UuXG4gICAgICAgIGZvcmFnZXM6IFtdLFxuICAgICAgICAvLyBTaGFyZWQgZGF0YWJhc2UuXG4gICAgICAgIGRiOiBudWxsLFxuICAgICAgICAvLyBEYXRhYmFzZSByZWFkaW5lc3MgKHByb21pc2UpLlxuICAgICAgICBkYlJlYWR5OiBudWxsLFxuICAgICAgICAvLyBEZWZlcnJlZCBvcGVyYXRpb25zIG9uIHRoZSBkYXRhYmFzZS5cbiAgICAgICAgZGVmZXJyZWRPcGVyYXRpb25zOiBbXVxuICAgIH07XG59XG5cbi8vIE9wZW4gdGhlIEluZGV4ZWREQiBkYXRhYmFzZSAoYXV0b21hdGljYWxseSBjcmVhdGVzIG9uZSBpZiBvbmUgZGlkbid0XG4vLyBwcmV2aW91c2x5IGV4aXN0KSwgdXNpbmcgYW55IG9wdGlvbnMgc2V0IGluIHRoZSBjb25maWcuXG5mdW5jdGlvbiBfaW5pdFN0b3JhZ2Uob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZGJJbmZvID0ge1xuICAgICAgICBkYjogbnVsbFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgICBmb3IgKHZhciBpIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGRiSW5mb1tpXSA9IG9wdGlvbnNbaV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgY29udGV4dCBvZiB0aGUgZGF0YWJhc2U7XG4gICAgdmFyIGRiQ29udGV4dCA9IGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdO1xuXG4gICAgLy8gLi4ub3IgY3JlYXRlIGEgbmV3IGNvbnRleHQuXG4gICAgaWYgKCFkYkNvbnRleHQpIHtcbiAgICAgICAgZGJDb250ZXh0ID0gY3JlYXRlRGJDb250ZXh0KCk7XG4gICAgICAgIC8vIFJlZ2lzdGVyIHRoZSBuZXcgY29udGV4dCBpbiB0aGUgZ2xvYmFsIGNvbnRhaW5lci5cbiAgICAgICAgZGJDb250ZXh0c1tkYkluZm8ubmFtZV0gPSBkYkNvbnRleHQ7XG4gICAgfVxuXG4gICAgLy8gUmVnaXN0ZXIgaXRzZWxmIGFzIGEgcnVubmluZyBsb2NhbEZvcmFnZSBpbiB0aGUgY3VycmVudCBjb250ZXh0LlxuICAgIGRiQ29udGV4dC5mb3JhZ2VzLnB1c2goc2VsZik7XG5cbiAgICAvLyBSZXBsYWNlIHRoZSBkZWZhdWx0IGByZWFkeSgpYCBmdW5jdGlvbiB3aXRoIHRoZSBzcGVjaWFsaXplZCBvbmUuXG4gICAgaWYgKCFzZWxmLl9pbml0UmVhZHkpIHtcbiAgICAgICAgc2VsZi5faW5pdFJlYWR5ID0gc2VsZi5yZWFkeTtcbiAgICAgICAgc2VsZi5yZWFkeSA9IF9mdWxseVJlYWR5O1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBpbml0aWFsaXphdGlvbiBzdGF0ZXMgb2YgdGhlIHJlbGF0ZWQgbG9jYWxGb3JhZ2VzLlxuICAgIHZhciBpbml0UHJvbWlzZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGlnbm9yZUVycm9ycygpIHtcbiAgICAgICAgLy8gRG9uJ3QgaGFuZGxlIGVycm9ycyBoZXJlLFxuICAgICAgICAvLyBqdXN0IG1ha2VzIHN1cmUgcmVsYXRlZCBsb2NhbEZvcmFnZXMgYXJlbid0IHBlbmRpbmcuXG4gICAgICAgIHJldHVybiBQcm9taXNlJDEucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGJDb250ZXh0LmZvcmFnZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIGZvcmFnZSA9IGRiQ29udGV4dC5mb3JhZ2VzW2pdO1xuICAgICAgICBpZiAoZm9yYWdlICE9PSBzZWxmKSB7XG4gICAgICAgICAgICAvLyBEb24ndCB3YWl0IGZvciBpdHNlbGYuLi5cbiAgICAgICAgICAgIGluaXRQcm9taXNlcy5wdXNoKGZvcmFnZS5faW5pdFJlYWR5KClbXCJjYXRjaFwiXShpZ25vcmVFcnJvcnMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRha2UgYSBzbmFwc2hvdCBvZiB0aGUgcmVsYXRlZCBsb2NhbEZvcmFnZXMuXG4gICAgdmFyIGZvcmFnZXMgPSBkYkNvbnRleHQuZm9yYWdlcy5zbGljZSgwKTtcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbm5lY3Rpb24gcHJvY2VzcyBvbmx5IHdoZW5cbiAgICAvLyBhbGwgdGhlIHJlbGF0ZWQgbG9jYWxGb3JhZ2VzIGFyZW4ndCBwZW5kaW5nLlxuICAgIHJldHVybiBQcm9taXNlJDEuYWxsKGluaXRQcm9taXNlcykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRiSW5mby5kYiA9IGRiQ29udGV4dC5kYjtcbiAgICAgICAgLy8gR2V0IHRoZSBjb25uZWN0aW9uIG9yIG9wZW4gYSBuZXcgb25lIHdpdGhvdXQgdXBncmFkZS5cbiAgICAgICAgcmV0dXJuIF9nZXRPcmlnaW5hbENvbm5lY3Rpb24oZGJJbmZvKTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICBkYkluZm8uZGIgPSBkYjtcbiAgICAgICAgaWYgKF9pc1VwZ3JhZGVOZWVkZWQoZGJJbmZvLCBzZWxmLl9kZWZhdWx0Q29uZmlnLnZlcnNpb24pKSB7XG4gICAgICAgICAgICAvLyBSZW9wZW4gdGhlIGRhdGFiYXNlIGZvciB1cGdyYWRpbmcuXG4gICAgICAgICAgICByZXR1cm4gX2dldFVwZ3JhZGVkQ29ubmVjdGlvbihkYkluZm8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYjtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICBkYkluZm8uZGIgPSBkYkNvbnRleHQuZGIgPSBkYjtcbiAgICAgICAgc2VsZi5fZGJJbmZvID0gZGJJbmZvO1xuICAgICAgICAvLyBTaGFyZSB0aGUgZmluYWwgY29ubmVjdGlvbiBhbW9uZ3N0IHJlbGF0ZWQgbG9jYWxGb3JhZ2VzLlxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGZvcmFnZXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIHZhciBmb3JhZ2UgPSBmb3JhZ2VzW2tdO1xuICAgICAgICAgICAgaWYgKGZvcmFnZSAhPT0gc2VsZikge1xuICAgICAgICAgICAgICAgIC8vIFNlbGYgaXMgYWxyZWFkeSB1cC10by1kYXRlLlxuICAgICAgICAgICAgICAgIGZvcmFnZS5fZGJJbmZvLmRiID0gZGJJbmZvLmRiO1xuICAgICAgICAgICAgICAgIGZvcmFnZS5fZGJJbmZvLnZlcnNpb24gPSBkYkluZm8udmVyc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRJdGVtKGtleSwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9PTkxZLCBmdW5jdGlvbiAoZXJyLCB0cmFuc2FjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHNlbGYuX2RiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUuZ2V0KGtleSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNFbmNvZGVkQmxvYih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IF9kZWNvZGVCbG9iKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlcS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIEl0ZXJhdGUgb3ZlciBhbGwgaXRlbXMgc3RvcmVkIGluIGRhdGFiYXNlLlxuZnVuY3Rpb24gaXRlcmF0ZShpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfT05MWSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLm9wZW5DdXJzb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZXJhdGlvbk51bWJlciA9IDE7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSByZXEucmVzdWx0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gY3Vyc29yLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNFbmNvZGVkQmxvYih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBfZGVjb2RlQmxvYih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBpdGVyYXRvcih2YWx1ZSwgY3Vyc29yLmtleSwgaXRlcmF0aW9uTnVtYmVyKyspO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgaXRlcmF0b3IgY2FsbGJhY2sgcmV0dXJucyBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAobm9uLWB1bmRlZmluZWRgKSB2YWx1ZSwgdGhlbiB3ZSBzdG9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGl0ZXJhdGlvbiBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yW1wiY29udGludWVcIl0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXEuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIHNldEl0ZW0oa2V5LCB2YWx1ZSwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHZhciBkYkluZm87XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGlmICh0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQmxvYl0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jaGVja0Jsb2JTdXBwb3J0KGRiSW5mby5kYikudGhlbihmdW5jdGlvbiAoYmxvYlN1cHBvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2JTdXBwb3J0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lbmNvZGVCbG9iKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9XUklURSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVhc29uIHdlIGRvbid0IF9zYXZlXyBudWxsIGlzIGJlY2F1c2UgSUUgMTAgZG9lc1xuICAgICAgICAgICAgICAgICAgICAvLyBub3Qgc3VwcG9ydCBzYXZpbmcgdGhlIGBudWxsYCB0eXBlIGluIEluZGV4ZWREQi4gSG93XG4gICAgICAgICAgICAgICAgICAgIC8vIGlyb25pYywgZ2l2ZW4gdGhlIGJ1ZyBiZWxvdyFcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9sb2NhbEZvcmFnZS9pc3N1ZXMvMTYxXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUucHV0KHZhbHVlLCBrZXkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYXN0IHRvIHVuZGVmaW5lZCBzbyB0aGUgdmFsdWUgcGFzc2VkIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxsYmFjay9wcm9taXNlIGlzIHRoZSBzYW1lIGFzIHdoYXQgb25lIHdvdWxkIGdldCBvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIGBnZXRJdGVtKClgIGxhdGVyLiBUaGlzIGxlYWRzIHRvIHNvbWUgd2VpcmRuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAoc2V0SXRlbSgnZm9vJywgdW5kZWZpbmVkKSB3aWxsIHJldHVybiBgbnVsbGApLCBidXRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3Mgbm90IG15IGZhdWx0IGxvY2FsU3RvcmFnZSBpcyBvdXIgYmFzZWxpbmUgYW5kIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3Mgd2VpcmQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVyciA9IHJlcS5lcnJvciA/IHJlcS5lcnJvciA6IHJlcS50cmFuc2FjdGlvbi5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJdGVtKGtleSwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9XUklURSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgdXNlIGEgR3J1bnQgdGFzayB0byBtYWtlIHRoaXMgc2FmZSBmb3IgSUUgYW5kIHNvbWVcbiAgICAgICAgICAgICAgICAgICAgLy8gdmVyc2lvbnMgb2YgQW5kcm9pZCAoaW5jbHVkaW5nIHRob3NlIHVzZWQgYnkgQ29yZG92YSkuXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbGx5IElFIHdvbid0IGxpa2UgYC5kZWxldGUoKWAgYW5kIHdpbGwgaW5zaXN0IG9uXG4gICAgICAgICAgICAgICAgICAgIC8vIHVzaW5nIGBbJ2RlbGV0ZSddKClgLCBidXQgd2UgaGF2ZSBhIGJ1aWxkIHN0ZXAgdGhhdFxuICAgICAgICAgICAgICAgICAgICAvLyBmaXhlcyB0aGlzIGZvciB1cyBub3cuXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZVtcImRlbGV0ZVwiXShrZXkpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVxdWVzdCB3aWxsIGJlIGFsc28gYmUgYWJvcnRlZCBpZiB3ZSd2ZSBleGNlZWRlZCBvdXIgc3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAvLyBzcGFjZS5cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXEuZXJyb3IgPyByZXEuZXJyb3IgOiByZXEudHJhbnNhY3Rpb24uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gY2xlYXIoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfV1JJVEUsIGZ1bmN0aW9uIChlcnIsIHRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc2VsZi5fZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZS5jbGVhcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJyID0gcmVxLmVycm9yID8gcmVxLmVycm9yIDogcmVxLnRyYW5zYWN0aW9uLmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIGxlbmd0aChjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9PTkxZLCBmdW5jdGlvbiAoZXJyLCB0cmFuc2FjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHNlbGYuX2RiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUuY291bnQoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXEucmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXEuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBrZXkobiwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBpZiAobiA8IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9PTkxZLCBmdW5jdGlvbiAoZXJyLCB0cmFuc2FjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHNlbGYuX2RiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWR2YW5jZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLm9wZW5LZXlDdXJzb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWVhbnMgdGhlcmUgd2VyZW4ndCBlbm91Z2gga2V5c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0aGUgZmlyc3Qga2V5LCByZXR1cm4gaXQgaWYgdGhhdCdzIHdoYXQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhbnRlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGN1cnNvci5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFkdmFuY2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgYXNrIHRoZSBjdXJzb3IgdG8gc2tpcCBhaGVhZCBuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlY29yZHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2Uobik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBnZXQgaGVyZSwgd2UndmUgZ290IHRoZSBudGgga2V5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGN1cnNvci5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXEuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBrZXlzKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY3JlYXRlVHJhbnNhY3Rpb24oc2VsZi5fZGJJbmZvLCBSRUFEX09OTFksIGZ1bmN0aW9uIChlcnIsIHRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc2VsZi5fZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZS5vcGVuS2V5Q3Vyc29yKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSByZXEucmVzdWx0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoa2V5cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goY3Vyc29yLmtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JbXCJjb250aW51ZVwiXSgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlcS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIGRyb3BJbnN0YW5jZShvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGNhbGxiYWNrID0gZ2V0Q2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIHZhciBjdXJyZW50Q29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnMgIT09ICdmdW5jdGlvbicgJiYgb3B0aW9ucyB8fCB7fTtcbiAgICBpZiAoIW9wdGlvbnMubmFtZSkge1xuICAgICAgICBvcHRpb25zLm5hbWUgPSBvcHRpb25zLm5hbWUgfHwgY3VycmVudENvbmZpZy5uYW1lO1xuICAgICAgICBvcHRpb25zLnN0b3JlTmFtZSA9IG9wdGlvbnMuc3RvcmVOYW1lIHx8IGN1cnJlbnRDb25maWcuc3RvcmVOYW1lO1xuICAgIH1cblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZTtcbiAgICBpZiAoIW9wdGlvbnMubmFtZSkge1xuICAgICAgICBwcm9taXNlID0gUHJvbWlzZSQxLnJlamVjdCgnSW52YWxpZCBhcmd1bWVudHMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaXNDdXJyZW50RGIgPSBvcHRpb25zLm5hbWUgPT09IGN1cnJlbnRDb25maWcubmFtZSAmJiBzZWxmLl9kYkluZm8uZGI7XG5cbiAgICAgICAgdmFyIGRiUHJvbWlzZSA9IGlzQ3VycmVudERiID8gUHJvbWlzZSQxLnJlc29sdmUoc2VsZi5fZGJJbmZvLmRiKSA6IF9nZXRPcmlnaW5hbENvbm5lY3Rpb24ob3B0aW9ucykudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW29wdGlvbnMubmFtZV07XG4gICAgICAgICAgICB2YXIgZm9yYWdlcyA9IGRiQ29udGV4dC5mb3JhZ2VzO1xuICAgICAgICAgICAgZGJDb250ZXh0LmRiID0gZGI7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBmb3JhZ2VzW2ldLl9kYkluZm8uZGIgPSBkYjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnN0b3JlTmFtZSkge1xuICAgICAgICAgICAgcHJvbWlzZSA9IGRiUHJvbWlzZS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICAgICAgICAgIF9kZWZlclJlYWRpbmVzcyhvcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW29wdGlvbnMubmFtZV07XG4gICAgICAgICAgICAgICAgdmFyIGZvcmFnZXMgPSBkYkNvbnRleHQuZm9yYWdlcztcblxuICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3JhZ2UgPSBmb3JhZ2VzW2ldO1xuICAgICAgICAgICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby5kYiA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGRyb3BEQlByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IGlkYi5kZWxldGVEYXRhYmFzZShvcHRpb25zLm5hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRiID0gcmVxLnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25ibG9ja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2luZyBhbGwgb3BlbiBjb25uZWN0aW9ucyBpbiBvbnZlcnNpb25jaGFuZ2UgaGFuZGxlciBzaG91bGQgcHJldmVudCB0aGlzIHNpdHVhdGlvbiwgYnV0IGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkbyBnZXQgaGVyZSwgaXQganVzdCBtZWFucyB0aGUgcmVxdWVzdCByZW1haW5zIHBlbmRpbmcgLSBldmVudHVhbGx5IGl0IHdpbGwgc3VjY2VlZCBvciBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdkcm9wSW5zdGFuY2UgYmxvY2tlZCBmb3IgZGF0YWJhc2UgXCInICsgb3B0aW9ucy5uYW1lICsgJ1wiIHVudGlsIGFsbCBvcGVuIGNvbm5lY3Rpb25zIGFyZSBjbG9zZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRiID0gcmVxLnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRiKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBkcm9wREJQcm9taXNlLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRiQ29udGV4dC5kYiA9IGRiO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcmFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfZm9yYWdlID0gZm9yYWdlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hZHZhbmNlUmVhZGluZXNzKF9mb3JhZ2UuX2RiSW5mbyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVtcImNhdGNoXCJdKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgKF9yZWplY3RSZWFkaW5lc3Mob3B0aW9ucywgZXJyKSB8fCBQcm9taXNlJDEucmVzb2x2ZSgpKVtcImNhdGNoXCJdKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9taXNlID0gZGJQcm9taXNlLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKG9wdGlvbnMuc3RvcmVOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIG5ld1ZlcnNpb24gPSBkYi52ZXJzaW9uICsgMTtcblxuICAgICAgICAgICAgICAgIF9kZWZlclJlYWRpbmVzcyhvcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW29wdGlvbnMubmFtZV07XG4gICAgICAgICAgICAgICAgdmFyIGZvcmFnZXMgPSBkYkNvbnRleHQuZm9yYWdlcztcblxuICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3JhZ2UgPSBmb3JhZ2VzW2ldO1xuICAgICAgICAgICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby5kYiA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGZvcmFnZS5fZGJJbmZvLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBkcm9wT2JqZWN0UHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gaWRiLm9wZW4ob3B0aW9ucy5uYW1lLCBuZXdWZXJzaW9uKTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYiA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYiA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZShvcHRpb25zLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYiA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZHJvcE9iamVjdFByb21pc2UudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGJDb250ZXh0LmRiID0gZGI7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZm9yYWdlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9mb3JhZ2UyID0gZm9yYWdlc1tqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9mb3JhZ2UyLl9kYkluZm8uZGIgPSBkYjtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hZHZhbmNlUmVhZGluZXNzKF9mb3JhZ2UyLl9kYkluZm8pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIChfcmVqZWN0UmVhZGluZXNzKG9wdGlvbnMsIGVycikgfHwgUHJvbWlzZSQxLnJlc29sdmUoKSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxudmFyIGFzeW5jU3RvcmFnZSA9IHtcbiAgICBfZHJpdmVyOiAnYXN5bmNTdG9yYWdlJyxcbiAgICBfaW5pdFN0b3JhZ2U6IF9pbml0U3RvcmFnZSxcbiAgICBfc3VwcG9ydDogaXNJbmRleGVkREJWYWxpZCgpLFxuICAgIGl0ZXJhdGU6IGl0ZXJhdGUsXG4gICAgZ2V0SXRlbTogZ2V0SXRlbSxcbiAgICBzZXRJdGVtOiBzZXRJdGVtLFxuICAgIHJlbW92ZUl0ZW06IHJlbW92ZUl0ZW0sXG4gICAgY2xlYXI6IGNsZWFyLFxuICAgIGxlbmd0aDogbGVuZ3RoLFxuICAgIGtleToga2V5LFxuICAgIGtleXM6IGtleXMsXG4gICAgZHJvcEluc3RhbmNlOiBkcm9wSW5zdGFuY2Vcbn07XG5cbmZ1bmN0aW9uIGlzV2ViU1FMVmFsaWQoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvcGVuRGF0YWJhc2UgPT09ICdmdW5jdGlvbic7XG59XG5cbi8vIFNhZGx5LCB0aGUgYmVzdCB3YXkgdG8gc2F2ZSBiaW5hcnkgZGF0YSBpbiBXZWJTUUwvbG9jYWxTdG9yYWdlIGlzIHNlcmlhbGl6aW5nXG4vLyBpdCB0byBCYXNlNjQsIHNvIHRoaXMgaXMgaG93IHdlIHN0b3JlIGl0IHRvIHByZXZlbnQgdmVyeSBzdHJhbmdlIGVycm9ycyB3aXRoIGxlc3Ncbi8vIHZlcmJvc2Ugd2F5cyBvZiBiaW5hcnkgPC0+IHN0cmluZyBkYXRhIHN0b3JhZ2UuXG52YXIgQkFTRV9DSEFSUyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcblxudmFyIEJMT0JfVFlQRV9QUkVGSVggPSAnfn5sb2NhbF9mb3JhZ2VfdHlwZX4nO1xudmFyIEJMT0JfVFlQRV9QUkVGSVhfUkVHRVggPSAvXn5+bG9jYWxfZm9yYWdlX3R5cGV+KFtefl0rKX4vO1xuXG52YXIgU0VSSUFMSVpFRF9NQVJLRVIgPSAnX19sZnNjX186JztcbnZhciBTRVJJQUxJWkVEX01BUktFUl9MRU5HVEggPSBTRVJJQUxJWkVEX01BUktFUi5sZW5ndGg7XG5cbi8vIE9NRyB0aGUgc2VyaWFsaXphdGlvbnMhXG52YXIgVFlQRV9BUlJBWUJVRkZFUiA9ICdhcmJmJztcbnZhciBUWVBFX0JMT0IgPSAnYmxvYic7XG52YXIgVFlQRV9JTlQ4QVJSQVkgPSAnc2kwOCc7XG52YXIgVFlQRV9VSU5UOEFSUkFZID0gJ3VpMDgnO1xudmFyIFRZUEVfVUlOVDhDTEFNUEVEQVJSQVkgPSAndWljOCc7XG52YXIgVFlQRV9JTlQxNkFSUkFZID0gJ3NpMTYnO1xudmFyIFRZUEVfSU5UMzJBUlJBWSA9ICdzaTMyJztcbnZhciBUWVBFX1VJTlQxNkFSUkFZID0gJ3VyMTYnO1xudmFyIFRZUEVfVUlOVDMyQVJSQVkgPSAndWkzMic7XG52YXIgVFlQRV9GTE9BVDMyQVJSQVkgPSAnZmwzMic7XG52YXIgVFlQRV9GTE9BVDY0QVJSQVkgPSAnZmw2NCc7XG52YXIgVFlQRV9TRVJJQUxJWkVEX01BUktFUl9MRU5HVEggPSBTRVJJQUxJWkVEX01BUktFUl9MRU5HVEggKyBUWVBFX0FSUkFZQlVGRkVSLmxlbmd0aDtcblxudmFyIHRvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiBzdHJpbmdUb0J1ZmZlcihzZXJpYWxpemVkU3RyaW5nKSB7XG4gICAgLy8gRmlsbCB0aGUgc3RyaW5nIGludG8gYSBBcnJheUJ1ZmZlci5cbiAgICB2YXIgYnVmZmVyTGVuZ3RoID0gc2VyaWFsaXplZFN0cmluZy5sZW5ndGggKiAwLjc1O1xuICAgIHZhciBsZW4gPSBzZXJpYWxpemVkU3RyaW5nLmxlbmd0aDtcbiAgICB2YXIgaTtcbiAgICB2YXIgcCA9IDA7XG4gICAgdmFyIGVuY29kZWQxLCBlbmNvZGVkMiwgZW5jb2RlZDMsIGVuY29kZWQ0O1xuXG4gICAgaWYgKHNlcmlhbGl6ZWRTdHJpbmdbc2VyaWFsaXplZFN0cmluZy5sZW5ndGggLSAxXSA9PT0gJz0nKSB7XG4gICAgICAgIGJ1ZmZlckxlbmd0aC0tO1xuICAgICAgICBpZiAoc2VyaWFsaXplZFN0cmluZ1tzZXJpYWxpemVkU3RyaW5nLmxlbmd0aCAtIDJdID09PSAnPScpIHtcbiAgICAgICAgICAgIGJ1ZmZlckxlbmd0aC0tO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihidWZmZXJMZW5ndGgpO1xuICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICAgICAgZW5jb2RlZDEgPSBCQVNFX0NIQVJTLmluZGV4T2Yoc2VyaWFsaXplZFN0cmluZ1tpXSk7XG4gICAgICAgIGVuY29kZWQyID0gQkFTRV9DSEFSUy5pbmRleE9mKHNlcmlhbGl6ZWRTdHJpbmdbaSArIDFdKTtcbiAgICAgICAgZW5jb2RlZDMgPSBCQVNFX0NIQVJTLmluZGV4T2Yoc2VyaWFsaXplZFN0cmluZ1tpICsgMl0pO1xuICAgICAgICBlbmNvZGVkNCA9IEJBU0VfQ0hBUlMuaW5kZXhPZihzZXJpYWxpemVkU3RyaW5nW2kgKyAzXSk7XG5cbiAgICAgICAgLypqc2xpbnQgYml0d2lzZTogdHJ1ZSAqL1xuICAgICAgICBieXRlc1twKytdID0gZW5jb2RlZDEgPDwgMiB8IGVuY29kZWQyID4+IDQ7XG4gICAgICAgIGJ5dGVzW3ArK10gPSAoZW5jb2RlZDIgJiAxNSkgPDwgNCB8IGVuY29kZWQzID4+IDI7XG4gICAgICAgIGJ5dGVzW3ArK10gPSAoZW5jb2RlZDMgJiAzKSA8PCA2IHwgZW5jb2RlZDQgJiA2MztcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbn1cblxuLy8gQ29udmVydHMgYSBidWZmZXIgdG8gYSBzdHJpbmcgdG8gc3RvcmUsIHNlcmlhbGl6ZWQsIGluIHRoZSBiYWNrZW5kXG4vLyBzdG9yYWdlIGxpYnJhcnkuXG5mdW5jdGlvbiBidWZmZXJUb1N0cmluZyhidWZmZXIpIHtcbiAgICAvLyBiYXNlNjQtYXJyYXlidWZmZXJcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgIHZhciBiYXNlNjRTdHJpbmcgPSAnJztcbiAgICB2YXIgaTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMykge1xuICAgICAgICAvKmpzbGludCBiaXR3aXNlOiB0cnVlICovXG4gICAgICAgIGJhc2U2NFN0cmluZyArPSBCQVNFX0NIQVJTW2J5dGVzW2ldID4+IDJdO1xuICAgICAgICBiYXNlNjRTdHJpbmcgKz0gQkFTRV9DSEFSU1soYnl0ZXNbaV0gJiAzKSA8PCA0IHwgYnl0ZXNbaSArIDFdID4+IDRdO1xuICAgICAgICBiYXNlNjRTdHJpbmcgKz0gQkFTRV9DSEFSU1soYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpICsgMl0gPj4gNl07XG4gICAgICAgIGJhc2U2NFN0cmluZyArPSBCQVNFX0NIQVJTW2J5dGVzW2kgKyAyXSAmIDYzXTtcbiAgICB9XG5cbiAgICBpZiAoYnl0ZXMubGVuZ3RoICUgMyA9PT0gMikge1xuICAgICAgICBiYXNlNjRTdHJpbmcgPSBiYXNlNjRTdHJpbmcuc3Vic3RyaW5nKDAsIGJhc2U2NFN0cmluZy5sZW5ndGggLSAxKSArICc9JztcbiAgICB9IGVsc2UgaWYgKGJ5dGVzLmxlbmd0aCAlIDMgPT09IDEpIHtcbiAgICAgICAgYmFzZTY0U3RyaW5nID0gYmFzZTY0U3RyaW5nLnN1YnN0cmluZygwLCBiYXNlNjRTdHJpbmcubGVuZ3RoIC0gMikgKyAnPT0nO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlNjRTdHJpbmc7XG59XG5cbi8vIFNlcmlhbGl6ZSBhIHZhbHVlLCBhZnRlcndhcmRzIGV4ZWN1dGluZyBhIGNhbGxiYWNrICh3aGljaCB1c3VhbGx5XG4vLyBpbnN0cnVjdHMgdGhlIGBzZXRJdGVtKClgIGNhbGxiYWNrL3Byb21pc2UgdG8gYmUgZXhlY3V0ZWQpLiBUaGlzIGlzIGhvd1xuLy8gd2Ugc3RvcmUgYmluYXJ5IGRhdGEgd2l0aCBsb2NhbFN0b3JhZ2UuXG5mdW5jdGlvbiBzZXJpYWxpemUodmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHZhbHVlVHlwZSA9ICcnO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZVR5cGUgPSB0b1N0cmluZyQxLmNhbGwodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIENhbm5vdCB1c2UgYHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJgIG9yIHN1Y2ggaGVyZSwgYXMgdGhlc2VcbiAgICAvLyBjaGVja3MgZmFpbCB3aGVuIHJ1bm5pbmcgdGhlIHRlc3RzIHVzaW5nIGNhc3Blci5qcy4uLlxuICAgIC8vXG4gICAgLy8gVE9ETzogU2VlIHdoeSB0aG9zZSB0ZXN0cyBmYWlsIGFuZCB1c2UgYSBiZXR0ZXIgc29sdXRpb24uXG4gICAgaWYgKHZhbHVlICYmICh2YWx1ZVR5cGUgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScgfHwgdmFsdWUuYnVmZmVyICYmIHRvU3RyaW5nJDEuY2FsbCh2YWx1ZS5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nKSkge1xuICAgICAgICAvLyBDb252ZXJ0IGJpbmFyeSBhcnJheXMgdG8gYSBzdHJpbmcgYW5kIHByZWZpeCB0aGUgc3RyaW5nIHdpdGhcbiAgICAgICAgLy8gYSBzcGVjaWFsIG1hcmtlci5cbiAgICAgICAgdmFyIGJ1ZmZlcjtcbiAgICAgICAgdmFyIG1hcmtlciA9IFNFUklBTElaRURfTUFSS0VSO1xuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgICBidWZmZXIgPSB2YWx1ZTtcbiAgICAgICAgICAgIG1hcmtlciArPSBUWVBFX0FSUkFZQlVGRkVSO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnVmZmVyID0gdmFsdWUuYnVmZmVyO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBJbnQ4QXJyYXldJykge1xuICAgICAgICAgICAgICAgIG1hcmtlciArPSBUWVBFX0lOVDhBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBVaW50OEFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9VSU5UOEFSUkFZO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9VSU5UOENMQU1QRURBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBJbnQxNkFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9JTlQxNkFSUkFZO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdbb2JqZWN0IFVpbnQxNkFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9VSU5UMTZBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBJbnQzMkFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9JTlQzMkFSUkFZO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdbb2JqZWN0IFVpbnQzMkFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9VSU5UMzJBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBGbG9hdDMyQXJyYXldJykge1xuICAgICAgICAgICAgICAgIG1hcmtlciArPSBUWVBFX0ZMT0FUMzJBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBGbG9hdDY0QXJyYXldJykge1xuICAgICAgICAgICAgICAgIG1hcmtlciArPSBUWVBFX0ZMT0FUNjRBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IHR5cGUgZm9yIEJpbmFyeUFycmF5JykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sobWFya2VyICsgYnVmZmVyVG9TdHJpbmcoYnVmZmVyKSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUgPT09ICdbb2JqZWN0IEJsb2JdJykge1xuICAgICAgICAvLyBDb252ZXIgdGhlIGJsb2IgdG8gYSBiaW5hcnlBcnJheSBhbmQgdGhlbiB0byBhIHN0cmluZy5cbiAgICAgICAgdmFyIGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gQmFja3dhcmRzLWNvbXBhdGlibGUgcHJlZml4IGZvciB0aGUgYmxvYiB0eXBlLlxuICAgICAgICAgICAgdmFyIHN0ciA9IEJMT0JfVFlQRV9QUkVGSVggKyB2YWx1ZS50eXBlICsgJ34nICsgYnVmZmVyVG9TdHJpbmcodGhpcy5yZXN1bHQpO1xuXG4gICAgICAgICAgICBjYWxsYmFjayhTRVJJQUxJWkVEX01BUktFUiArIFRZUEVfQkxPQiArIHN0cik7XG4gICAgICAgIH07XG5cbiAgICAgICAgZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcih2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNhbGxiYWNrKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDb3VsZG4ndCBjb252ZXJ0IHZhbHVlIGludG8gYSBKU09OIHN0cmluZzogXCIsIHZhbHVlKTtcblxuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIERlc2VyaWFsaXplIGRhdGEgd2UndmUgaW5zZXJ0ZWQgaW50byBhIHZhbHVlIGNvbHVtbi9maWVsZC4gV2UgcGxhY2Vcbi8vIHNwZWNpYWwgbWFya2VycyBpbnRvIG91ciBzdHJpbmdzIHRvIG1hcmsgdGhlbSBhcyBlbmNvZGVkOyB0aGlzIGlzbid0XG4vLyBhcyBuaWNlIGFzIGEgbWV0YSBmaWVsZCwgYnV0IGl0J3MgdGhlIG9ubHkgc2FuZSB0aGluZyB3ZSBjYW4gZG8gd2hpbHN0XG4vLyBrZWVwaW5nIGxvY2FsU3RvcmFnZSBzdXBwb3J0IGludGFjdC5cbi8vXG4vLyBPZnRlbnRpbWVzIHRoaXMgd2lsbCBqdXN0IGRlc2VyaWFsaXplIEpTT04gY29udGVudCwgYnV0IGlmIHdlIGhhdmUgYVxuLy8gc3BlY2lhbCBtYXJrZXIgKFNFUklBTElaRURfTUFSS0VSLCBkZWZpbmVkIGFib3ZlKSwgd2Ugd2lsbCBleHRyYWN0XG4vLyBzb21lIGtpbmQgb2YgYXJyYXlidWZmZXIvYmluYXJ5IGRhdGEvdHlwZWQgYXJyYXkgb3V0IG9mIHRoZSBzdHJpbmcuXG5mdW5jdGlvbiBkZXNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgIC8vIElmIHdlIGhhdmVuJ3QgbWFya2VkIHRoaXMgc3RyaW5nIGFzIGJlaW5nIHNwZWNpYWxseSBzZXJpYWxpemVkIChpLmUuXG4gICAgLy8gc29tZXRoaW5nIG90aGVyIHRoYW4gc2VyaWFsaXplZCBKU09OKSwgd2UgY2FuIGp1c3QgcmV0dXJuIGl0IGFuZCBiZVxuICAgIC8vIGRvbmUgd2l0aCBpdC5cbiAgICBpZiAodmFsdWUuc3Vic3RyaW5nKDAsIFNFUklBTElaRURfTUFSS0VSX0xFTkdUSCkgIT09IFNFUklBTElaRURfTUFSS0VSKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgZGVhbHMgd2l0aCBkZXNlcmlhbGl6aW5nIHNvbWUga2luZCBvZiBCbG9iIG9yXG4gICAgLy8gVHlwZWRBcnJheS4gRmlyc3Qgd2Ugc2VwYXJhdGUgb3V0IHRoZSB0eXBlIG9mIGRhdGEgd2UncmUgZGVhbGluZ1xuICAgIC8vIHdpdGggZnJvbSB0aGUgZGF0YSBpdHNlbGYuXG4gICAgdmFyIHNlcmlhbGl6ZWRTdHJpbmcgPSB2YWx1ZS5zdWJzdHJpbmcoVFlQRV9TRVJJQUxJWkVEX01BUktFUl9MRU5HVEgpO1xuICAgIHZhciB0eXBlID0gdmFsdWUuc3Vic3RyaW5nKFNFUklBTElaRURfTUFSS0VSX0xFTkdUSCwgVFlQRV9TRVJJQUxJWkVEX01BUktFUl9MRU5HVEgpO1xuXG4gICAgdmFyIGJsb2JUeXBlO1xuICAgIC8vIEJhY2t3YXJkcy1jb21wYXRpYmxlIGJsb2IgdHlwZSBzZXJpYWxpemF0aW9uIHN0cmF0ZWd5LlxuICAgIC8vIERCcyBjcmVhdGVkIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbG9jYWxGb3JhZ2Ugd2lsbCBzaW1wbHkgbm90IGhhdmUgdGhlIGJsb2IgdHlwZS5cbiAgICBpZiAodHlwZSA9PT0gVFlQRV9CTE9CICYmIEJMT0JfVFlQRV9QUkVGSVhfUkVHRVgudGVzdChzZXJpYWxpemVkU3RyaW5nKSkge1xuICAgICAgICB2YXIgbWF0Y2hlciA9IHNlcmlhbGl6ZWRTdHJpbmcubWF0Y2goQkxPQl9UWVBFX1BSRUZJWF9SRUdFWCk7XG4gICAgICAgIGJsb2JUeXBlID0gbWF0Y2hlclsxXTtcbiAgICAgICAgc2VyaWFsaXplZFN0cmluZyA9IHNlcmlhbGl6ZWRTdHJpbmcuc3Vic3RyaW5nKG1hdGNoZXJbMF0ubGVuZ3RoKTtcbiAgICB9XG4gICAgdmFyIGJ1ZmZlciA9IHN0cmluZ1RvQnVmZmVyKHNlcmlhbGl6ZWRTdHJpbmcpO1xuXG4gICAgLy8gUmV0dXJuIHRoZSByaWdodCB0eXBlIGJhc2VkIG9uIHRoZSBjb2RlL3R5cGUgc2V0IGR1cmluZ1xuICAgIC8vIHNlcmlhbGl6YXRpb24uXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgVFlQRV9BUlJBWUJVRkZFUjpcbiAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgIGNhc2UgVFlQRV9CTE9COlxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogYmxvYlR5cGUgfSk7XG4gICAgICAgIGNhc2UgVFlQRV9JTlQ4QVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IEludDhBcnJheShidWZmZXIpO1xuICAgICAgICBjYXNlIFRZUEVfVUlOVDhBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgICAgICBjYXNlIFRZUEVfVUlOVDhDTEFNUEVEQVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGNhc2UgVFlQRV9JTlQxNkFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGNhc2UgVFlQRV9VSU5UMTZBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX0lOVDMyQVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IEludDMyQXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX1VJTlQzMkFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MzJBcnJheShidWZmZXIpO1xuICAgICAgICBjYXNlIFRZUEVfRkxPQVQzMkFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX0ZMT0FUNjRBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua293biB0eXBlOiAnICsgdHlwZSk7XG4gICAgfVxufVxuXG52YXIgbG9jYWxmb3JhZ2VTZXJpYWxpemVyID0ge1xuICAgIHNlcmlhbGl6ZTogc2VyaWFsaXplLFxuICAgIGRlc2VyaWFsaXplOiBkZXNlcmlhbGl6ZSxcbiAgICBzdHJpbmdUb0J1ZmZlcjogc3RyaW5nVG9CdWZmZXIsXG4gICAgYnVmZmVyVG9TdHJpbmc6IGJ1ZmZlclRvU3RyaW5nXG59O1xuXG4vKlxuICogSW5jbHVkZXMgY29kZSBmcm9tOlxuICpcbiAqIGJhc2U2NC1hcnJheWJ1ZmZlclxuICogaHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlclxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiBOaWtsYXMgdm9uIEhlcnR6ZW5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVEYlRhYmxlKHQsIGRiSW5mbywgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spIHtcbiAgICB0LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTICcgKyBkYkluZm8uc3RvcmVOYW1lICsgJyAnICsgJyhpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLCBrZXkgdW5pcXVlLCB2YWx1ZSknLCBbXSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xufVxuXG4vLyBPcGVuIHRoZSBXZWJTUUwgZGF0YWJhc2UgKGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBvbmUgaWYgb25lIGRpZG4ndFxuLy8gcHJldmlvdXNseSBleGlzdCksIHVzaW5nIGFueSBvcHRpb25zIHNldCBpbiB0aGUgY29uZmlnLlxuZnVuY3Rpb24gX2luaXRTdG9yYWdlJDEob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZGJJbmZvID0ge1xuICAgICAgICBkYjogbnVsbFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgICBmb3IgKHZhciBpIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGRiSW5mb1tpXSA9IHR5cGVvZiBvcHRpb25zW2ldICE9PSAnc3RyaW5nJyA/IG9wdGlvbnNbaV0udG9TdHJpbmcoKSA6IG9wdGlvbnNbaV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGJJbmZvUHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAvLyBPcGVuIHRoZSBkYXRhYmFzZTsgdGhlIG9wZW5EYXRhYmFzZSBBUEkgd2lsbCBhdXRvbWF0aWNhbGx5XG4gICAgICAgIC8vIGNyZWF0ZSBpdCBmb3IgdXMgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRiSW5mby5kYiA9IG9wZW5EYXRhYmFzZShkYkluZm8ubmFtZSwgU3RyaW5nKGRiSW5mby52ZXJzaW9uKSwgZGJJbmZvLmRlc2NyaXB0aW9uLCBkYkluZm8uc2l6ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgb3VyIGtleS92YWx1ZSB0YWJsZSBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuICAgICAgICBkYkluZm8uZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgIGNyZWF0ZURiVGFibGUodCwgZGJJbmZvLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5fZGJJbmZvID0gZGJJbmZvO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgcmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGRiSW5mby5zZXJpYWxpemVyID0gbG9jYWxmb3JhZ2VTZXJpYWxpemVyO1xuICAgIHJldHVybiBkYkluZm9Qcm9taXNlO1xufVxuXG5mdW5jdGlvbiB0cnlFeGVjdXRlU3FsKHQsIGRiSW5mbywgc3FsU3RhdGVtZW50LCBhcmdzLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaykge1xuICAgIHQuZXhlY3V0ZVNxbChzcWxTdGF0ZW1lbnQsIGFyZ3MsIGNhbGxiYWNrLCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09IGVycm9yLlNZTlRBWF9FUlIpIHtcbiAgICAgICAgICAgIHQuZXhlY3V0ZVNxbCgnU0VMRUNUIG5hbWUgRlJPTSBzcWxpdGVfbWFzdGVyICcgKyBcIldIRVJFIHR5cGU9J3RhYmxlJyBBTkQgbmFtZSA9ID9cIiwgW2RiSW5mby5zdG9yZU5hbWVdLCBmdW5jdGlvbiAodCwgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0cy5yb3dzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgdGFibGUgaXMgbWlzc2luZyAod2FzIGRlbGV0ZWQpXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlLWNyZWF0ZSBpdCB0YWJsZSBhbmQgcmV0cnlcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRGJUYWJsZSh0LCBkYkluZm8sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHQuZXhlY3V0ZVNxbChzcWxTdGF0ZW1lbnQsIGFyZ3MsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgZXJyb3JDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh0LCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3JDYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvckNhbGxiYWNrKHQsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH0sIGVycm9yQ2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBnZXRJdGVtJDEoa2V5LCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIGtleSA9IG5vcm1hbGl6ZUtleShrZXkpO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGRiSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnU0VMRUNUICogRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSArICcgV0hFUkUga2V5ID0gPyBMSU1JVCAxJywgW2tleV0sIGZ1bmN0aW9uICh0LCByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXN1bHRzLnJvd3MubGVuZ3RoID8gcmVzdWx0cy5yb3dzLml0ZW0oMCkudmFsdWUgOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIHNlcmlhbGl6ZWQgY29udGVudCB3ZSBuZWVkIHRvXG4gICAgICAgICAgICAgICAgICAgIC8vIHVucGFjay5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGJJbmZvLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBpdGVyYXRlJDEoaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcblxuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sICdTRUxFQ1QgKiBGUk9NICcgKyBkYkluZm8uc3RvcmVOYW1lLCBbXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJvd3MgPSByZXN1bHRzLnJvd3M7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsZW5ndGggPSByb3dzLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHJvd3MuaXRlbShpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBpdGVtLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhpcyBpcyBzZXJpYWxpemVkIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gdW5wYWNrLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRiSW5mby5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGl0ZXJhdG9yKHJlc3VsdCwgaXRlbS5rZXksIGkgKyAxKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdm9pZCgwKSBwcmV2ZW50cyBwcm9ibGVtcyB3aXRoIHJlZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgYHVuZGVmaW5lZGAuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIF9zZXRJdGVtKGtleSwgdmFsdWUsIGNhbGxiYWNrLCByZXRyaWVzTGVmdCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIGtleSA9IG5vcm1hbGl6ZUtleShrZXkpO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gVGhlIGxvY2FsU3RvcmFnZSBBUEkgZG9lc24ndCByZXR1cm4gdW5kZWZpbmVkIHZhbHVlcyBpbiBhblxuICAgICAgICAgICAgLy8gXCJleHBlY3RlZFwiIHdheSwgc28gdW5kZWZpbmVkIGlzIGFsd2F5cyBjYXN0IHRvIG51bGwgaW4gYWxsXG4gICAgICAgICAgICAvLyBkcml2ZXJzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2xvY2FsRm9yYWdlL3B1bGwvNDJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTYXZlIHRoZSBvcmlnaW5hbCB2YWx1ZSB0byBwYXNzIHRvIHRoZSBjYWxsYmFjay5cbiAgICAgICAgICAgIHZhciBvcmlnaW5hbFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBkYkluZm8uc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUsIGZ1bmN0aW9uICh2YWx1ZSwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYkluZm8uZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyAnICsgZGJJbmZvLnN0b3JlTmFtZSArICcgJyArICcoa2V5LCB2YWx1ZSkgVkFMVUVTICg/LCA/KScsIFtrZXksIHZhbHVlXSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUob3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChzcWxFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHRyYW5zYWN0aW9uIGZhaWxlZDsgY2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHNlZSBpZiBpdCdzIGEgcXVvdGEgZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3FsRXJyb3IuY29kZSA9PT0gc3FsRXJyb3IuUVVPVEFfRVJSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcmVqZWN0IHRoZSBjYWxsYmFjayBvdXRyaWdodCBmb3Igbm93LCBidXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHdvcnRoIHRyeWluZyB0byByZS1ydW4gdGhlIHRyYW5zYWN0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV2ZW4gaWYgdGhlIHVzZXIgYWNjZXB0cyB0aGUgcHJvbXB0IHRvIHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vcmUgc3RvcmFnZSBvbiBTYWZhcmksIHRoaXMgZXJyb3Igd2lsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIGNhbGxlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byByZS1ydW4gdGhlIHRyYW5zYWN0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXRyaWVzTGVmdCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShfc2V0SXRlbS5hcHBseShzZWxmLCBba2V5LCBvcmlnaW5hbFZhbHVlLCBjYWxsYmFjaywgcmV0cmllc0xlZnQgLSAxXSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChzcWxFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBzZXRJdGVtJDEoa2V5LCB2YWx1ZSwgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gX3NldEl0ZW0uYXBwbHkodGhpcywgW2tleSwgdmFsdWUsIGNhbGxiYWNrLCAxXSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUl0ZW0kMShrZXksIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sICdERUxFVEUgRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSArICcgV0hFUkUga2V5ID0gPycsIFtrZXldLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBEZWxldGVzIGV2ZXJ5IGl0ZW0gaW4gdGhlIHRhYmxlLlxuLy8gVE9ETzogRmluZCBvdXQgaWYgdGhpcyByZXNldHMgdGhlIEFVVE9fSU5DUkVNRU5UIG51bWJlci5cbmZ1bmN0aW9uIGNsZWFyJDEoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sICdERUxFVEUgRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSwgW10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIERvZXMgYSBzaW1wbGUgYENPVU5UKGtleSlgIHRvIGdldCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHN0b3JlZCBpblxuLy8gbG9jYWxGb3JhZ2UuXG5mdW5jdGlvbiBsZW5ndGgkMShjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBkYkluZm8uZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICAvLyBBaGhoLCBTUUwgbWFrZXMgdGhpcyBvbmUgc29vb29vbyBlYXN5LlxuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnU0VMRUNUIENPVU5UKGtleSkgYXMgYyBGUk9NICcgKyBkYkluZm8uc3RvcmVOYW1lLCBbXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHJlc3VsdHMucm93cy5pdGVtKDApLmM7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBSZXR1cm4gdGhlIGtleSBsb2NhdGVkIGF0IGtleSBpbmRleCBYOyBlc3NlbnRpYWxseSBnZXRzIHRoZSBrZXkgZnJvbSBhXG4vLyBgV0hFUkUgaWQgPSA/YC4gVGhpcyBpcyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IEkgY2FuIHRoaW5rIHRvIGltcGxlbWVudFxuLy8gdGhpcyByYXJlbHktdXNlZCAoaW4gbXkgZXhwZXJpZW5jZSkgcGFydCBvZiB0aGUgQVBJLCBidXQgaXQgY2FuIHNlZW1cbi8vIGluY29uc2lzdGVudCwgYmVjYXVzZSB3ZSBkbyBgSU5TRVJUIE9SIFJFUExBQ0UgSU5UT2Agb24gYHNldEl0ZW0oKWAsIHNvXG4vLyB0aGUgSUQgb2YgZWFjaCBrZXkgd2lsbCBjaGFuZ2UgZXZlcnkgdGltZSBpdCdzIHVwZGF0ZWQuIFBlcmhhcHMgYSBzdG9yZWRcbi8vIHByb2NlZHVyZSBmb3IgdGhlIGBzZXRJdGVtKClgIFNRTCB3b3VsZCBzb2x2ZSB0aGlzIHByb2JsZW0/XG4vLyBUT0RPOiBEb24ndCBjaGFuZ2UgSUQgb24gYHNldEl0ZW0oKWAuXG5mdW5jdGlvbiBrZXkkMShuLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBkYkluZm8uZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICB0cnlFeGVjdXRlU3FsKHQsIGRiSW5mbywgJ1NFTEVDVCBrZXkgRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSArICcgV0hFUkUgaWQgPSA/IExJTUlUIDEnLCBbbiArIDFdLCBmdW5jdGlvbiAodCwgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzdWx0cy5yb3dzLmxlbmd0aCA/IHJlc3VsdHMucm93cy5pdGVtKDApLmtleSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBrZXlzJDEoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sICdTRUxFQ1Qga2V5IEZST00gJyArIGRiSW5mby5zdG9yZU5hbWUsIFtdLCBmdW5jdGlvbiAodCwgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2gocmVzdWx0cy5yb3dzLml0ZW0oaSkua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoa2V5cyk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRhdGFiYXNlLyNkYXRhYmFzZXNcbi8vID4gVGhlcmUgaXMgbm8gd2F5IHRvIGVudW1lcmF0ZSBvciBkZWxldGUgdGhlIGRhdGFiYXNlcyBhdmFpbGFibGUgZm9yIGFuIG9yaWdpbiBmcm9tIHRoaXMgQVBJLlxuZnVuY3Rpb24gZ2V0QWxsU3RvcmVOYW1lcyhkYikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgIHQuZXhlY3V0ZVNxbCgnU0VMRUNUIG5hbWUgRlJPTSBzcWxpdGVfbWFzdGVyICcgKyBcIldIRVJFIHR5cGU9J3RhYmxlJyBBTkQgbmFtZSA8PiAnX19XZWJLaXREYXRhYmFzZUluZm9UYWJsZV9fJ1wiLCBbXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RvcmVOYW1lcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLnJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVOYW1lcy5wdXNoKHJlc3VsdHMucm93cy5pdGVtKGkpLm5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBkYjogZGIsXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlTmFtZXM6IHN0b3JlTmFtZXNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHNxbEVycm9yKSB7XG4gICAgICAgICAgICByZWplY3Qoc3FsRXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZHJvcEluc3RhbmNlJDEob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjayA9IGdldENhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICB2YXIgY3VycmVudENvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zICE9PSAnZnVuY3Rpb24nICYmIG9wdGlvbnMgfHwge307XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgb3B0aW9ucy5uYW1lID0gb3B0aW9ucy5uYW1lIHx8IGN1cnJlbnRDb25maWcubmFtZTtcbiAgICAgICAgb3B0aW9ucy5zdG9yZU5hbWUgPSBvcHRpb25zLnN0b3JlTmFtZSB8fCBjdXJyZW50Q29uZmlnLnN0b3JlTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHByb21pc2U7XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgcHJvbWlzZSA9IFByb21pc2UkMS5yZWplY3QoJ0ludmFsaWQgYXJndW1lbnRzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIHZhciBkYjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLm5hbWUgPT09IGN1cnJlbnRDb25maWcubmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIHVzZSB0aGUgZGIgcmVmZXJlbmNlIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlXG4gICAgICAgICAgICAgICAgZGIgPSBzZWxmLl9kYkluZm8uZGI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRiID0gb3BlbkRhdGFiYXNlKG9wdGlvbnMubmFtZSwgJycsICcnLCAwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLnN0b3JlTmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIGRyb3AgYWxsIGRhdGFiYXNlIHRhYmxlc1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZ2V0QWxsU3RvcmVOYW1lcyhkYikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgZGI6IGRiLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZU5hbWVzOiBbb3B0aW9ucy5zdG9yZU5hbWVdXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKG9wZXJhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRpb25JbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRyb3BUYWJsZShzdG9yZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmV4ZWN1dGVTcWwoJ0RST1AgVEFCTEUgSUYgRVhJU1RTICcgKyBzdG9yZU5hbWUsIFtdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wZXJhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG9wZXJhdGlvbkluZm8uc3RvcmVOYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucy5wdXNoKGRyb3BUYWJsZShvcGVyYXRpb25JbmZvLnN0b3JlTmFtZXNbaV0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIFByb21pc2UkMS5hbGwob3BlcmF0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHNxbEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChzcWxFcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxudmFyIHdlYlNRTFN0b3JhZ2UgPSB7XG4gICAgX2RyaXZlcjogJ3dlYlNRTFN0b3JhZ2UnLFxuICAgIF9pbml0U3RvcmFnZTogX2luaXRTdG9yYWdlJDEsXG4gICAgX3N1cHBvcnQ6IGlzV2ViU1FMVmFsaWQoKSxcbiAgICBpdGVyYXRlOiBpdGVyYXRlJDEsXG4gICAgZ2V0SXRlbTogZ2V0SXRlbSQxLFxuICAgIHNldEl0ZW06IHNldEl0ZW0kMSxcbiAgICByZW1vdmVJdGVtOiByZW1vdmVJdGVtJDEsXG4gICAgY2xlYXI6IGNsZWFyJDEsXG4gICAgbGVuZ3RoOiBsZW5ndGgkMSxcbiAgICBrZXk6IGtleSQxLFxuICAgIGtleXM6IGtleXMkMSxcbiAgICBkcm9wSW5zdGFuY2U6IGRyb3BJbnN0YW5jZSQxXG59O1xuXG5mdW5jdGlvbiBpc0xvY2FsU3RvcmFnZVZhbGlkKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJyAmJiAnc2V0SXRlbScgaW4gbG9jYWxTdG9yYWdlICYmXG4gICAgICAgIC8vIGluIElFOCB0eXBlb2YgbG9jYWxTdG9yYWdlLnNldEl0ZW0gPT09ICdvYmplY3QnXG4gICAgICAgICEhbG9jYWxTdG9yYWdlLnNldEl0ZW07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfZ2V0S2V5UHJlZml4KG9wdGlvbnMsIGRlZmF1bHRDb25maWcpIHtcbiAgICB2YXIga2V5UHJlZml4ID0gb3B0aW9ucy5uYW1lICsgJy8nO1xuXG4gICAgaWYgKG9wdGlvbnMuc3RvcmVOYW1lICE9PSBkZWZhdWx0Q29uZmlnLnN0b3JlTmFtZSkge1xuICAgICAgICBrZXlQcmVmaXggKz0gb3B0aW9ucy5zdG9yZU5hbWUgKyAnLyc7XG4gICAgfVxuICAgIHJldHVybiBrZXlQcmVmaXg7XG59XG5cbi8vIENoZWNrIGlmIGxvY2FsU3RvcmFnZSB0aHJvd3Mgd2hlbiBzYXZpbmcgYW4gaXRlbVxuZnVuY3Rpb24gY2hlY2tJZkxvY2FsU3RvcmFnZVRocm93cygpIHtcbiAgICB2YXIgbG9jYWxTdG9yYWdlVGVzdEtleSA9ICdfbG9jYWxmb3JhZ2Vfc3VwcG9ydF90ZXN0JztcblxuICAgIHRyeSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU3RvcmFnZVRlc3RLZXksIHRydWUpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShsb2NhbFN0b3JhZ2VUZXN0S2V5KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbi8vIENoZWNrIGlmIGxvY2FsU3RvcmFnZSBpcyB1c2FibGUgYW5kIGFsbG93cyB0byBzYXZlIGFuIGl0ZW1cbi8vIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiBsb2NhbFN0b3JhZ2UgaXMgdXNhYmxlIGluIFNhZmFyaSBQcml2YXRlIEJyb3dzaW5nXG4vLyBtb2RlLCBvciBpbiBhbnkgb3RoZXIgY2FzZSB3aGVyZSB0aGUgYXZhaWxhYmxlIHF1b3RhIGZvciBsb2NhbFN0b3JhZ2Vcbi8vIGlzIDAgYW5kIHRoZXJlIHdhc24ndCBhbnkgc2F2ZWQgaXRlbXMgeWV0LlxuZnVuY3Rpb24gX2lzTG9jYWxTdG9yYWdlVXNhYmxlKCkge1xuICAgIHJldHVybiAhY2hlY2tJZkxvY2FsU3RvcmFnZVRocm93cygpIHx8IGxvY2FsU3RvcmFnZS5sZW5ndGggPiAwO1xufVxuXG4vLyBDb25maWcgdGhlIGxvY2FsU3RvcmFnZSBiYWNrZW5kLCB1c2luZyBvcHRpb25zIHNldCBpbiB0aGUgY29uZmlnLlxuZnVuY3Rpb24gX2luaXRTdG9yYWdlJDIob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZGJJbmZvID0ge307XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgICBkYkluZm9baV0gPSBvcHRpb25zW2ldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGJJbmZvLmtleVByZWZpeCA9IF9nZXRLZXlQcmVmaXgob3B0aW9ucywgc2VsZi5fZGVmYXVsdENvbmZpZyk7XG5cbiAgICBpZiAoIV9pc0xvY2FsU3RvcmFnZVVzYWJsZSgpKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlJDEucmVqZWN0KCk7XG4gICAgfVxuXG4gICAgc2VsZi5fZGJJbmZvID0gZGJJbmZvO1xuICAgIGRiSW5mby5zZXJpYWxpemVyID0gbG9jYWxmb3JhZ2VTZXJpYWxpemVyO1xuXG4gICAgcmV0dXJuIFByb21pc2UkMS5yZXNvbHZlKCk7XG59XG5cbi8vIFJlbW92ZSBhbGwga2V5cyBmcm9tIHRoZSBkYXRhc3RvcmUsIGVmZmVjdGl2ZWx5IGRlc3Ryb3lpbmcgYWxsIGRhdGEgaW5cbi8vIHRoZSBhcHAncyBrZXkvdmFsdWUgc3RvcmUhXG5mdW5jdGlvbiBjbGVhciQyKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBwcm9taXNlID0gc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIga2V5UHJlZml4ID0gc2VsZi5fZGJJbmZvLmtleVByZWZpeDtcblxuICAgICAgICBmb3IgKHZhciBpID0gbG9jYWxTdG9yYWdlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gbG9jYWxTdG9yYWdlLmtleShpKTtcblxuICAgICAgICAgICAgaWYgKGtleS5pbmRleE9mKGtleVByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBSZXRyaWV2ZSBhbiBpdGVtIGZyb20gdGhlIHN0b3JlLiBVbmxpa2UgdGhlIG9yaWdpbmFsIGFzeW5jX3N0b3JhZ2Vcbi8vIGxpYnJhcnkgaW4gR2FpYSwgd2UgZG9uJ3QgbW9kaWZ5IHJldHVybiB2YWx1ZXMgYXQgYWxsLiBJZiBhIGtleSdzIHZhbHVlXG4vLyBpcyBgdW5kZWZpbmVkYCwgd2UgcGFzcyB0aGF0IHZhbHVlIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbmZ1bmN0aW9uIGdldEl0ZW0kMihrZXksIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgdmFyIHJlc3VsdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGRiSW5mby5rZXlQcmVmaXggKyBrZXkpO1xuXG4gICAgICAgIC8vIElmIGEgcmVzdWx0IHdhcyBmb3VuZCwgcGFyc2UgaXQgZnJvbSB0aGUgc2VyaWFsaXplZFxuICAgICAgICAvLyBzdHJpbmcgaW50byBhIEpTIG9iamVjdC4gSWYgcmVzdWx0IGlzbid0IHRydXRoeSwgdGhlIGtleVxuICAgICAgICAvLyBpcyBsaWtlbHkgdW5kZWZpbmVkIGFuZCB3ZSdsbCBwYXNzIGl0IHN0cmFpZ2h0IHRvIHRoZVxuICAgICAgICAvLyBjYWxsYmFjay5cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZGJJbmZvLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBJdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRoZSBzdG9yZS5cbmZ1bmN0aW9uIGl0ZXJhdGUkMihpdGVyYXRvciwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgdmFyIGtleVByZWZpeCA9IGRiSW5mby5rZXlQcmVmaXg7XG4gICAgICAgIHZhciBrZXlQcmVmaXhMZW5ndGggPSBrZXlQcmVmaXgubGVuZ3RoO1xuICAgICAgICB2YXIgbGVuZ3RoID0gbG9jYWxTdG9yYWdlLmxlbmd0aDtcblxuICAgICAgICAvLyBXZSB1c2UgYSBkZWRpY2F0ZWQgaXRlcmF0b3IgaW5zdGVhZCBvZiB0aGUgYGlgIHZhcmlhYmxlIGJlbG93XG4gICAgICAgIC8vIHNvIG90aGVyIGtleXMgd2UgZmV0Y2ggaW4gbG9jYWxTdG9yYWdlIGFyZW4ndCBjb3VudGVkIGluXG4gICAgICAgIC8vIHRoZSBgaXRlcmF0aW9uTnVtYmVyYCBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGBpdGVyYXRlKClgXG4gICAgICAgIC8vIGNhbGxiYWNrLlxuICAgICAgICAvL1xuICAgICAgICAvLyBTZWU6IGdpdGh1Yi5jb20vbW96aWxsYS9sb2NhbEZvcmFnZS9wdWxsLzQzNSNkaXNjdXNzaW9uX3IzODA2MTUzMFxuICAgICAgICB2YXIgaXRlcmF0aW9uTnVtYmVyID0gMTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gbG9jYWxTdG9yYWdlLmtleShpKTtcbiAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZihrZXlQcmVmaXgpICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgICAgICAvLyBJZiBhIHJlc3VsdCB3YXMgZm91bmQsIHBhcnNlIGl0IGZyb20gdGhlIHNlcmlhbGl6ZWRcbiAgICAgICAgICAgIC8vIHN0cmluZyBpbnRvIGEgSlMgb2JqZWN0LiBJZiByZXN1bHQgaXNuJ3QgdHJ1dGh5LCB0aGVcbiAgICAgICAgICAgIC8vIGtleSBpcyBsaWtlbHkgdW5kZWZpbmVkIGFuZCB3ZSdsbCBwYXNzIGl0IHN0cmFpZ2h0XG4gICAgICAgICAgICAvLyB0byB0aGUgaXRlcmF0b3IuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGRiSW5mby5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFsdWUgPSBpdGVyYXRvcih2YWx1ZSwga2V5LnN1YnN0cmluZyhrZXlQcmVmaXhMZW5ndGgpLCBpdGVyYXRpb25OdW1iZXIrKyk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBTYW1lIGFzIGxvY2FsU3RvcmFnZSdzIGtleSgpIG1ldGhvZCwgZXhjZXB0IHRha2VzIGEgY2FsbGJhY2suXG5mdW5jdGlvbiBrZXkkMihuLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgdmFyIHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGxvY2FsU3RvcmFnZS5rZXkobik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUga2V5LCBpZiBhIGtleSBpcyBmb3VuZC5cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZyhkYkluZm8ua2V5UHJlZml4Lmxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24ga2V5cyQyKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBwcm9taXNlID0gc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICB2YXIgbGVuZ3RoID0gbG9jYWxTdG9yYWdlLmxlbmd0aDtcbiAgICAgICAgdmFyIGtleXMgPSBbXTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgaXRlbUtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoaXRlbUtleS5pbmRleE9mKGRiSW5mby5rZXlQcmVmaXgpID09PSAwKSB7XG4gICAgICAgICAgICAgICAga2V5cy5wdXNoKGl0ZW1LZXkuc3Vic3RyaW5nKGRiSW5mby5rZXlQcmVmaXgubGVuZ3RoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ga2V5cztcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIFN1cHBseSB0aGUgbnVtYmVyIG9mIGtleXMgaW4gdGhlIGRhdGFzdG9yZSB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG5mdW5jdGlvbiBsZW5ndGgkMihjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYua2V5cygpLnRoZW4oZnVuY3Rpb24gKGtleXMpIHtcbiAgICAgICAgcmV0dXJuIGtleXMubGVuZ3RoO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gUmVtb3ZlIGFuIGl0ZW0gZnJvbSB0aGUgc3RvcmUsIG5pY2UgYW5kIHNpbXBsZS5cbmZ1bmN0aW9uIHJlbW92ZUl0ZW0kMihrZXksIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZGJJbmZvLmtleVByZWZpeCArIGtleSk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBTZXQgYSBrZXkncyB2YWx1ZSBhbmQgcnVuIGFuIG9wdGlvbmFsIGNhbGxiYWNrIG9uY2UgdGhlIHZhbHVlIGlzIHNldC5cbi8vIFVubGlrZSBHYWlhJ3MgaW1wbGVtZW50YXRpb24sIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIHZhbHVlLFxuLy8gaW4gY2FzZSB5b3Ugd2FudCB0byBvcGVyYXRlIG9uIHRoYXQgdmFsdWUgb25seSBhZnRlciB5b3UncmUgc3VyZSBpdFxuLy8gc2F2ZWQsIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuXG5mdW5jdGlvbiBzZXRJdGVtJDIoa2V5LCB2YWx1ZSwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDb252ZXJ0IHVuZGVmaW5lZCB2YWx1ZXMgdG8gbnVsbC5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvbG9jYWxGb3JhZ2UvcHVsbC80MlxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgdmFsdWUgdG8gcGFzcyB0byB0aGUgY2FsbGJhY2suXG4gICAgICAgIHZhciBvcmlnaW5hbFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGRiSW5mby5zZXJpYWxpemVyLnNlcmlhbGl6ZSh2YWx1ZSwgZnVuY3Rpb24gKHZhbHVlLCBlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShkYkluZm8ua2V5UHJlZml4ICsga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbFN0b3JhZ2UgY2FwYWNpdHkgZXhjZWVkZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBNYWtlIHRoaXMgYSBzcGVjaWZpYyBlcnJvci9ldmVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLm5hbWUgPT09ICdRdW90YUV4Y2VlZGVkRXJyb3InIHx8IGUubmFtZSA9PT0gJ05TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIGRyb3BJbnN0YW5jZSQyKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgY2FsbGJhY2sgPSBnZXRDYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zICE9PSAnZnVuY3Rpb24nICYmIG9wdGlvbnMgfHwge307XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgdmFyIGN1cnJlbnRDb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgICAgICBvcHRpb25zLm5hbWUgPSBvcHRpb25zLm5hbWUgfHwgY3VycmVudENvbmZpZy5uYW1lO1xuICAgICAgICBvcHRpb25zLnN0b3JlTmFtZSA9IG9wdGlvbnMuc3RvcmVOYW1lIHx8IGN1cnJlbnRDb25maWcuc3RvcmVOYW1lO1xuICAgIH1cblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZTtcbiAgICBpZiAoIW9wdGlvbnMubmFtZSkge1xuICAgICAgICBwcm9taXNlID0gUHJvbWlzZSQxLnJlamVjdCgnSW52YWxpZCBhcmd1bWVudHMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgaWYgKCFvcHRpb25zLnN0b3JlTmFtZSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUob3B0aW9ucy5uYW1lICsgJy8nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShfZ2V0S2V5UHJlZml4KG9wdGlvbnMsIHNlbGYuX2RlZmF1bHRDb25maWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoa2V5UHJlZml4KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gbG9jYWxTdG9yYWdlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoa2V5LmluZGV4T2Yoa2V5UHJlZml4KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxudmFyIGxvY2FsU3RvcmFnZVdyYXBwZXIgPSB7XG4gICAgX2RyaXZlcjogJ2xvY2FsU3RvcmFnZVdyYXBwZXInLFxuICAgIF9pbml0U3RvcmFnZTogX2luaXRTdG9yYWdlJDIsXG4gICAgX3N1cHBvcnQ6IGlzTG9jYWxTdG9yYWdlVmFsaWQoKSxcbiAgICBpdGVyYXRlOiBpdGVyYXRlJDIsXG4gICAgZ2V0SXRlbTogZ2V0SXRlbSQyLFxuICAgIHNldEl0ZW06IHNldEl0ZW0kMixcbiAgICByZW1vdmVJdGVtOiByZW1vdmVJdGVtJDIsXG4gICAgY2xlYXI6IGNsZWFyJDIsXG4gICAgbGVuZ3RoOiBsZW5ndGgkMixcbiAgICBrZXk6IGtleSQyLFxuICAgIGtleXM6IGtleXMkMixcbiAgICBkcm9wSW5zdGFuY2U6IGRyb3BJbnN0YW5jZSQyXG59O1xuXG52YXIgc2FtZVZhbHVlID0gZnVuY3Rpb24gc2FtZVZhbHVlKHgsIHkpIHtcbiAgICByZXR1cm4geCA9PT0geSB8fCB0eXBlb2YgeCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHkgPT09ICdudW1iZXInICYmIGlzTmFOKHgpICYmIGlzTmFOKHkpO1xufTtcblxudmFyIGluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXksIHNlYXJjaEVsZW1lbnQpIHtcbiAgICB2YXIgbGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IGxlbikge1xuICAgICAgICBpZiAoc2FtZVZhbHVlKGFycmF5W2ldLCBzZWFyY2hFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAoYXJnKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmcpID09PSAnW29iamVjdCBBcnJheV0nO1xufTtcblxuLy8gRHJpdmVycyBhcmUgc3RvcmVkIGhlcmUgd2hlbiBgZGVmaW5lRHJpdmVyKClgIGlzIGNhbGxlZC5cbi8vIFRoZXkgYXJlIHNoYXJlZCBhY3Jvc3MgYWxsIGluc3RhbmNlcyBvZiBsb2NhbEZvcmFnZS5cbnZhciBEZWZpbmVkRHJpdmVycyA9IHt9O1xuXG52YXIgRHJpdmVyU3VwcG9ydCA9IHt9O1xuXG52YXIgRGVmYXVsdERyaXZlcnMgPSB7XG4gICAgSU5ERVhFRERCOiBhc3luY1N0b3JhZ2UsXG4gICAgV0VCU1FMOiB3ZWJTUUxTdG9yYWdlLFxuICAgIExPQ0FMU1RPUkFHRTogbG9jYWxTdG9yYWdlV3JhcHBlclxufTtcblxudmFyIERlZmF1bHREcml2ZXJPcmRlciA9IFtEZWZhdWx0RHJpdmVycy5JTkRFWEVEREIuX2RyaXZlciwgRGVmYXVsdERyaXZlcnMuV0VCU1FMLl9kcml2ZXIsIERlZmF1bHREcml2ZXJzLkxPQ0FMU1RPUkFHRS5fZHJpdmVyXTtcblxudmFyIE9wdGlvbmFsRHJpdmVyTWV0aG9kcyA9IFsnZHJvcEluc3RhbmNlJ107XG5cbnZhciBMaWJyYXJ5TWV0aG9kcyA9IFsnY2xlYXInLCAnZ2V0SXRlbScsICdpdGVyYXRlJywgJ2tleScsICdrZXlzJywgJ2xlbmd0aCcsICdyZW1vdmVJdGVtJywgJ3NldEl0ZW0nXS5jb25jYXQoT3B0aW9uYWxEcml2ZXJNZXRob2RzKTtcblxudmFyIERlZmF1bHRDb25maWcgPSB7XG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGRyaXZlcjogRGVmYXVsdERyaXZlck9yZGVyLnNsaWNlKCksXG4gICAgbmFtZTogJ2xvY2FsZm9yYWdlJyxcbiAgICAvLyBEZWZhdWx0IERCIHNpemUgaXMgX0pVU1QgVU5ERVJfIDVNQiwgYXMgaXQncyB0aGUgaGlnaGVzdCBzaXplXG4gICAgLy8gd2UgY2FuIHVzZSB3aXRob3V0IGEgcHJvbXB0LlxuICAgIHNpemU6IDQ5ODA3MzYsXG4gICAgc3RvcmVOYW1lOiAna2V5dmFsdWVwYWlycycsXG4gICAgdmVyc2lvbjogMS4wXG59O1xuXG5mdW5jdGlvbiBjYWxsV2hlblJlYWR5KGxvY2FsRm9yYWdlSW5zdGFuY2UsIGxpYnJhcnlNZXRob2QpIHtcbiAgICBsb2NhbEZvcmFnZUluc3RhbmNlW2xpYnJhcnlNZXRob2RdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX2FyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBsb2NhbEZvcmFnZUluc3RhbmNlLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxGb3JhZ2VJbnN0YW5jZVtsaWJyYXJ5TWV0aG9kXS5hcHBseShsb2NhbEZvcmFnZUluc3RhbmNlLCBfYXJncyk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICAgIGlmIChhcmcpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9rZXkgaW4gYXJnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFyZy5oYXNPd25Qcm9wZXJ0eShfa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShhcmdbX2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMF1bX2tleV0gPSBhcmdbX2tleV0uc2xpY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1swXVtfa2V5XSA9IGFyZ1tfa2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhcmd1bWVudHNbMF07XG59XG5cbnZhciBMb2NhbEZvcmFnZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMb2NhbEZvcmFnZShvcHRpb25zKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2NhbEZvcmFnZSk7XG5cbiAgICAgICAgZm9yICh2YXIgZHJpdmVyVHlwZUtleSBpbiBEZWZhdWx0RHJpdmVycykge1xuICAgICAgICAgICAgaWYgKERlZmF1bHREcml2ZXJzLmhhc093blByb3BlcnR5KGRyaXZlclR5cGVLZXkpKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRyaXZlciA9IERlZmF1bHREcml2ZXJzW2RyaXZlclR5cGVLZXldO1xuICAgICAgICAgICAgICAgIHZhciBkcml2ZXJOYW1lID0gZHJpdmVyLl9kcml2ZXI7XG4gICAgICAgICAgICAgICAgdGhpc1tkcml2ZXJUeXBlS2V5XSA9IGRyaXZlck5hbWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoIURlZmluZWREcml2ZXJzW2RyaXZlck5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gd2FpdCBmb3IgdGhlIHByb21pc2UsXG4gICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBkZWZhdWx0IGRyaXZlcnMgY2FuIGJlIGRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gYSBibG9ja2luZyBtYW5uZXJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZpbmVEcml2ZXIoZHJpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kZWZhdWx0Q29uZmlnID0gZXh0ZW5kKHt9LCBEZWZhdWx0Q29uZmlnKTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gZXh0ZW5kKHt9LCB0aGlzLl9kZWZhdWx0Q29uZmlnLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5fZHJpdmVyU2V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5faW5pdERyaXZlciA9IG51bGw7XG4gICAgICAgIHRoaXMuX3JlYWR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2RiSW5mbyA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fd3JhcExpYnJhcnlNZXRob2RzV2l0aFJlYWR5KCk7XG4gICAgICAgIHRoaXMuc2V0RHJpdmVyKHRoaXMuX2NvbmZpZy5kcml2ZXIpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKCkge30pO1xuICAgIH1cblxuICAgIC8vIFNldCBhbnkgY29uZmlnIHZhbHVlcyBmb3IgbG9jYWxGb3JhZ2U7IGNhbiBiZSBjYWxsZWQgYW55dGltZSBiZWZvcmVcbiAgICAvLyB0aGUgZmlyc3QgQVBJIGNhbGwgKGUuZy4gYGdldEl0ZW1gLCBgc2V0SXRlbWApLlxuICAgIC8vIFdlIGxvb3AgdGhyb3VnaCBvcHRpb25zIHNvIHdlIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBjb25maWdcbiAgICAvLyB2YWx1ZXMuXG5cblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5jb25maWcgPSBmdW5jdGlvbiBjb25maWcob3B0aW9ucykge1xuICAgICAgICAvLyBJZiB0aGUgb3B0aW9ucyBhcmd1bWVudCBpcyBhbiBvYmplY3QsIHdlIHVzZSBpdCB0byBzZXQgdmFsdWVzLlxuICAgICAgICAvLyBPdGhlcndpc2UsIHdlIHJldHVybiBlaXRoZXIgYSBzcGVjaWZpZWQgY29uZmlnIHZhbHVlIG9yIGFsbFxuICAgICAgICAvLyBjb25maWcgdmFsdWVzLlxuICAgICAgICBpZiAoKHR5cGVvZiBvcHRpb25zID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZihvcHRpb25zKSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAvLyBJZiBsb2NhbGZvcmFnZSBpcyByZWFkeSBhbmQgZnVsbHkgaW5pdGlhbGl6ZWQsIHdlIGNhbid0IHNldFxuICAgICAgICAgICAgLy8gYW55IG5ldyBjb25maWd1cmF0aW9uIHZhbHVlcy4gSW5zdGVhZCwgd2UgcmV0dXJuIGFuIGVycm9yLlxuICAgICAgICAgICAgaWYgKHRoaXMuX3JlYWR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcIkNhbid0IGNhbGwgY29uZmlnKCkgYWZ0ZXIgbG9jYWxmb3JhZ2UgXCIgKyAnaGFzIGJlZW4gdXNlZC4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPT09ICdzdG9yZU5hbWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0gPSBvcHRpb25zW2ldLnJlcGxhY2UoL1xcVy9nLCAnXycpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpID09PSAndmVyc2lvbicgJiYgdHlwZW9mIG9wdGlvbnNbaV0gIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoJ0RhdGFiYXNlIHZlcnNpb24gbXVzdCBiZSBhIG51bWJlci4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maWdbaV0gPSBvcHRpb25zW2ldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZnRlciBhbGwgY29uZmlnIG9wdGlvbnMgYXJlIHNldCBhbmRcbiAgICAgICAgICAgIC8vIHRoZSBkcml2ZXIgb3B0aW9uIGlzIHVzZWQsIHRyeSBzZXR0aW5nIGl0XG4gICAgICAgICAgICBpZiAoJ2RyaXZlcicgaW4gb3B0aW9ucyAmJiBvcHRpb25zLmRyaXZlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldERyaXZlcih0aGlzLl9jb25maWcuZHJpdmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnW29wdGlvbnNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBVc2VkIHRvIGRlZmluZSBhIGN1c3RvbSBkcml2ZXIsIHNoYXJlZCBhY3Jvc3MgYWxsIGluc3RhbmNlcyBvZlxuICAgIC8vIGxvY2FsRm9yYWdlLlxuXG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuZGVmaW5lRHJpdmVyID0gZnVuY3Rpb24gZGVmaW5lRHJpdmVyKGRyaXZlck9iamVjdCwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIGRyaXZlck5hbWUgPSBkcml2ZXJPYmplY3QuX2RyaXZlcjtcbiAgICAgICAgICAgICAgICB2YXIgY29tcGxpYW5jZUVycm9yID0gbmV3IEVycm9yKCdDdXN0b20gZHJpdmVyIG5vdCBjb21wbGlhbnQ7IHNlZSAnICsgJ2h0dHBzOi8vbW96aWxsYS5naXRodWIuaW8vbG9jYWxGb3JhZ2UvI2RlZmluZWRyaXZlcicpO1xuXG4gICAgICAgICAgICAgICAgLy8gQSBkcml2ZXIgbmFtZSBzaG91bGQgYmUgZGVmaW5lZCBhbmQgbm90IG92ZXJsYXAgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAvLyBsaWJyYXJ5LWRlZmluZWQsIGRlZmF1bHQgZHJpdmVycy5cbiAgICAgICAgICAgICAgICBpZiAoIWRyaXZlck9iamVjdC5fZHJpdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChjb21wbGlhbmNlRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGRyaXZlck1ldGhvZHMgPSBMaWJyYXJ5TWV0aG9kcy5jb25jYXQoJ19pbml0U3RvcmFnZScpO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkcml2ZXJNZXRob2RzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkcml2ZXJNZXRob2ROYW1lID0gZHJpdmVyTWV0aG9kc1tpXTtcblxuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyB0aGVyZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgc2hvdWxkIGJlIGEgbWV0aG9kIGV2ZW4gd2hlbiBvcHRpb25hbFxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNSZXF1aXJlZCA9ICFpbmNsdWRlcyhPcHRpb25hbERyaXZlck1ldGhvZHMsIGRyaXZlck1ldGhvZE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoKGlzUmVxdWlyZWQgfHwgZHJpdmVyT2JqZWN0W2RyaXZlck1ldGhvZE5hbWVdKSAmJiB0eXBlb2YgZHJpdmVyT2JqZWN0W2RyaXZlck1ldGhvZE5hbWVdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoY29tcGxpYW5jZUVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBjb25maWd1cmVNaXNzaW5nTWV0aG9kcyA9IGZ1bmN0aW9uIGNvbmZpZ3VyZU1pc3NpbmdNZXRob2RzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWV0aG9kTm90SW1wbGVtZW50ZWRGYWN0b3J5ID0gZnVuY3Rpb24gbWV0aG9kTm90SW1wbGVtZW50ZWRGYWN0b3J5KG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKCdNZXRob2QgJyArIG1ldGhvZE5hbWUgKyAnIGlzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGUgY3VycmVudCBkcml2ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IFByb21pc2UkMS5yZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfbGVuID0gT3B0aW9uYWxEcml2ZXJNZXRob2RzLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3B0aW9uYWxEcml2ZXJNZXRob2QgPSBPcHRpb25hbERyaXZlck1ldGhvZHNbX2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkcml2ZXJPYmplY3Rbb3B0aW9uYWxEcml2ZXJNZXRob2RdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJpdmVyT2JqZWN0W29wdGlvbmFsRHJpdmVyTWV0aG9kXSA9IG1ldGhvZE5vdEltcGxlbWVudGVkRmFjdG9yeShvcHRpb25hbERyaXZlck1ldGhvZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uZmlndXJlTWlzc2luZ01ldGhvZHMoKTtcblxuICAgICAgICAgICAgICAgIHZhciBzZXREcml2ZXJTdXBwb3J0ID0gZnVuY3Rpb24gc2V0RHJpdmVyU3VwcG9ydChzdXBwb3J0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChEZWZpbmVkRHJpdmVyc1tkcml2ZXJOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdSZWRlZmluaW5nIExvY2FsRm9yYWdlIGRyaXZlcjogJyArIGRyaXZlck5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIERlZmluZWREcml2ZXJzW2RyaXZlck5hbWVdID0gZHJpdmVyT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBEcml2ZXJTdXBwb3J0W2RyaXZlck5hbWVdID0gc3VwcG9ydDtcbiAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgdXNlIGEgdGhlbiwgc28gdGhhdCB3ZSBjYW4gZGVmaW5lXG4gICAgICAgICAgICAgICAgICAgIC8vIGRyaXZlcnMgdGhhdCBoYXZlIHNpbXBsZSBfc3VwcG9ydCBtZXRob2RzXG4gICAgICAgICAgICAgICAgICAgIC8vIGluIGEgYmxvY2tpbmcgbWFubmVyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKCdfc3VwcG9ydCcgaW4gZHJpdmVyT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkcml2ZXJPYmplY3QuX3N1cHBvcnQgJiYgdHlwZW9mIGRyaXZlck9iamVjdC5fc3VwcG9ydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZHJpdmVyT2JqZWN0Ll9zdXBwb3J0KCkudGhlbihzZXREcml2ZXJTdXBwb3J0LCByZWplY3QpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0RHJpdmVyU3VwcG9ydCghIWRyaXZlck9iamVjdC5fc3VwcG9ydCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXREcml2ZXJTdXBwb3J0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4ZWN1dGVUd29DYWxsYmFja3MocHJvbWlzZSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9O1xuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLmRyaXZlciA9IGZ1bmN0aW9uIGRyaXZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RyaXZlciB8fCBudWxsO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuZ2V0RHJpdmVyID0gZnVuY3Rpb24gZ2V0RHJpdmVyKGRyaXZlck5hbWUsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBnZXREcml2ZXJQcm9taXNlID0gRGVmaW5lZERyaXZlcnNbZHJpdmVyTmFtZV0gPyBQcm9taXNlJDEucmVzb2x2ZShEZWZpbmVkRHJpdmVyc1tkcml2ZXJOYW1lXSkgOiBQcm9taXNlJDEucmVqZWN0KG5ldyBFcnJvcignRHJpdmVyIG5vdCBmb3VuZC4nKSk7XG5cbiAgICAgICAgZXhlY3V0ZVR3b0NhbGxiYWNrcyhnZXREcml2ZXJQcm9taXNlLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7XG4gICAgICAgIHJldHVybiBnZXREcml2ZXJQcm9taXNlO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuZ2V0U2VyaWFsaXplciA9IGZ1bmN0aW9uIGdldFNlcmlhbGl6ZXIoY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHNlcmlhbGl6ZXJQcm9taXNlID0gUHJvbWlzZSQxLnJlc29sdmUobG9jYWxmb3JhZ2VTZXJpYWxpemVyKTtcbiAgICAgICAgZXhlY3V0ZVR3b0NhbGxiYWNrcyhzZXJpYWxpemVyUHJvbWlzZSwgY2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplclByb21pc2U7XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5yZWFkeSA9IGZ1bmN0aW9uIHJlYWR5KGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgICB2YXIgcHJvbWlzZSA9IHNlbGYuX2RyaXZlclNldC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChzZWxmLl9yZWFkeSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNlbGYuX3JlYWR5ID0gc2VsZi5faW5pdERyaXZlcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZHk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4ZWN1dGVUd29DYWxsYmFja3MocHJvbWlzZSwgY2FsbGJhY2ssIGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5zZXREcml2ZXIgPSBmdW5jdGlvbiBzZXREcml2ZXIoZHJpdmVycywgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICAgIGlmICghaXNBcnJheShkcml2ZXJzKSkge1xuICAgICAgICAgICAgZHJpdmVycyA9IFtkcml2ZXJzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzdXBwb3J0ZWREcml2ZXJzID0gdGhpcy5fZ2V0U3VwcG9ydGVkRHJpdmVycyhkcml2ZXJzKTtcblxuICAgICAgICBmdW5jdGlvbiBzZXREcml2ZXJUb0NvbmZpZygpIHtcbiAgICAgICAgICAgIHNlbGYuX2NvbmZpZy5kcml2ZXIgPSBzZWxmLmRyaXZlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZldpdGhEcml2ZXIoZHJpdmVyKSB7XG4gICAgICAgICAgICBzZWxmLl9leHRlbmQoZHJpdmVyKTtcbiAgICAgICAgICAgIHNldERyaXZlclRvQ29uZmlnKCk7XG5cbiAgICAgICAgICAgIHNlbGYuX3JlYWR5ID0gc2VsZi5faW5pdFN0b3JhZ2Uoc2VsZi5fY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZWFkeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXREcml2ZXIoc3VwcG9ydGVkRHJpdmVycykge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudERyaXZlckluZGV4ID0gMDtcblxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRyaXZlclByb21pc2VMb29wKCkge1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudERyaXZlckluZGV4IDwgc3VwcG9ydGVkRHJpdmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkcml2ZXJOYW1lID0gc3VwcG9ydGVkRHJpdmVyc1tjdXJyZW50RHJpdmVySW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudERyaXZlckluZGV4Kys7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RiSW5mbyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkeSA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldERyaXZlcihkcml2ZXJOYW1lKS50aGVuKGV4dGVuZFNlbGZXaXRoRHJpdmVyKVtcImNhdGNoXCJdKGRyaXZlclByb21pc2VMb29wKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldERyaXZlclRvQ29uZmlnKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcignTm8gYXZhaWxhYmxlIHN0b3JhZ2UgbWV0aG9kIGZvdW5kLicpO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLl9kcml2ZXJTZXQgPSBQcm9taXNlJDEucmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlclNldDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZHJpdmVyUHJvbWlzZUxvb3AoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBhIGRyaXZlciBpbml0aWFsaXphdGlvbiBpbiBwcm9ncmVzc1xuICAgICAgICAvLyBzbyB3YWl0IGZvciBpdCB0byBmaW5pc2ggaW4gb3JkZXIgdG8gYXZvaWQgYSBwb3NzaWJsZVxuICAgICAgICAvLyByYWNlIGNvbmRpdGlvbiB0byBzZXQgX2RiSW5mb1xuICAgICAgICB2YXIgb2xkRHJpdmVyU2V0RG9uZSA9IHRoaXMuX2RyaXZlclNldCAhPT0gbnVsbCA/IHRoaXMuX2RyaXZlclNldFtcImNhdGNoXCJdKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEucmVzb2x2ZSgpO1xuICAgICAgICB9KSA6IFByb21pc2UkMS5yZXNvbHZlKCk7XG5cbiAgICAgICAgdGhpcy5fZHJpdmVyU2V0ID0gb2xkRHJpdmVyU2V0RG9uZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkcml2ZXJOYW1lID0gc3VwcG9ydGVkRHJpdmVyc1swXTtcbiAgICAgICAgICAgIHNlbGYuX2RiSW5mbyA9IG51bGw7XG4gICAgICAgICAgICBzZWxmLl9yZWFkeSA9IG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiBzZWxmLmdldERyaXZlcihkcml2ZXJOYW1lKS50aGVuKGZ1bmN0aW9uIChkcml2ZXIpIHtcbiAgICAgICAgICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2ZXIuX2RyaXZlcjtcbiAgICAgICAgICAgICAgICBzZXREcml2ZXJUb0NvbmZpZygpO1xuICAgICAgICAgICAgICAgIHNlbGYuX3dyYXBMaWJyYXJ5TWV0aG9kc1dpdGhSZWFkeSgpO1xuICAgICAgICAgICAgICAgIHNlbGYuX2luaXREcml2ZXIgPSBpbml0RHJpdmVyKHN1cHBvcnRlZERyaXZlcnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2V0RHJpdmVyVG9Db25maWcoKTtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcignTm8gYXZhaWxhYmxlIHN0b3JhZ2UgbWV0aG9kIGZvdW5kLicpO1xuICAgICAgICAgICAgc2VsZi5fZHJpdmVyU2V0ID0gUHJvbWlzZSQxLnJlamVjdChlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyU2V0O1xuICAgICAgICB9KTtcblxuICAgICAgICBleGVjdXRlVHdvQ2FsbGJhY2tzKHRoaXMuX2RyaXZlclNldCwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJpdmVyU2V0O1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuc3VwcG9ydHMgPSBmdW5jdGlvbiBzdXBwb3J0cyhkcml2ZXJOYW1lKSB7XG4gICAgICAgIHJldHVybiAhIURyaXZlclN1cHBvcnRbZHJpdmVyTmFtZV07XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5fZXh0ZW5kID0gZnVuY3Rpb24gX2V4dGVuZChsaWJyYXJ5TWV0aG9kc0FuZFByb3BlcnRpZXMpIHtcbiAgICAgICAgZXh0ZW5kKHRoaXMsIGxpYnJhcnlNZXRob2RzQW5kUHJvcGVydGllcyk7XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5fZ2V0U3VwcG9ydGVkRHJpdmVycyA9IGZ1bmN0aW9uIF9nZXRTdXBwb3J0ZWREcml2ZXJzKGRyaXZlcnMpIHtcbiAgICAgICAgdmFyIHN1cHBvcnRlZERyaXZlcnMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGRyaXZlcnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBkcml2ZXJOYW1lID0gZHJpdmVyc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1cHBvcnRzKGRyaXZlck5hbWUpKSB7XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkRHJpdmVycy5wdXNoKGRyaXZlck5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWREcml2ZXJzO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuX3dyYXBMaWJyYXJ5TWV0aG9kc1dpdGhSZWFkeSA9IGZ1bmN0aW9uIF93cmFwTGlicmFyeU1ldGhvZHNXaXRoUmVhZHkoKSB7XG4gICAgICAgIC8vIEFkZCBhIHN0dWIgZm9yIGVhY2ggZHJpdmVyIEFQSSBtZXRob2QgdGhhdCBkZWxheXMgdGhlIGNhbGwgdG8gdGhlXG4gICAgICAgIC8vIGNvcnJlc3BvbmRpbmcgZHJpdmVyIG1ldGhvZCB1bnRpbCBsb2NhbEZvcmFnZSBpcyByZWFkeS4gVGhlc2Ugc3R1YnNcbiAgICAgICAgLy8gd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZHJpdmVyIG1ldGhvZHMgYXMgc29vbiBhcyB0aGUgZHJpdmVyIGlzXG4gICAgICAgIC8vIGxvYWRlZCwgc28gdGhlcmUgaXMgbm8gcGVyZm9ybWFuY2UgaW1wYWN0LlxuICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gTGlicmFyeU1ldGhvZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGNhbGxXaGVuUmVhZHkodGhpcywgTGlicmFyeU1ldGhvZHNbaV0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5jcmVhdGVJbnN0YW5jZSA9IGZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMb2NhbEZvcmFnZShvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIExvY2FsRm9yYWdlO1xufSgpO1xuXG4vLyBUaGUgYWN0dWFsIGxvY2FsRm9yYWdlIG9iamVjdCB0aGF0IHdlIGV4cG9zZSBhcyBhIG1vZHVsZSBvciB2aWEgYVxuLy8gZ2xvYmFsLiBJdCdzIGV4dGVuZGVkIGJ5IHB1bGxpbmcgaW4gb25lIG9mIG91ciBvdGhlciBsaWJyYXJpZXMuXG5cblxudmFyIGxvY2FsZm9yYWdlX2pzID0gbmV3IExvY2FsRm9yYWdlKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYWxmb3JhZ2VfanM7XG5cbn0se1wiM1wiOjN9XX0se30sWzRdKSg0KVxufSk7XG4iLCAiLyoqXG4gKiBAbGljZW5zZSBNSVRcbiAqIEBjb3B5cmlnaHQgMjAyMCBFeWFzIFJhbmpvdXMgPGV5YXMucmFuam91c0BnbWFpbC5jb20+XG4gKlxuICogQGNsYXNzXG4gKi9cbmNsYXNzIFF1ZXVlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBxdWV1ZS5cbiAgICogQHBhcmFtIHthcnJheX0gW2VsZW1lbnRzXVxuICAgKi9cbiAgY29uc3RydWN0b3IoZWxlbWVudHMpIHtcbiAgICB0aGlzLl9lbGVtZW50cyA9IEFycmF5LmlzQXJyYXkoZWxlbWVudHMpID8gZWxlbWVudHMgOiBbXTtcbiAgICB0aGlzLl9vZmZzZXQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZWxlbWVudCB0byB0aGUgYmFjayBvZiB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfG9iamVjdH0gZWxlbWVudFxuICAgKi9cbiAgZW5xdWV1ZShlbGVtZW50KSB7XG4gICAgdGhpcy5fZWxlbWVudHMucHVzaChlbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGVsZW1lbnQgdG8gdGhlIGJhY2sgb2YgdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ3xvYmplY3R9IGVsZW1lbnRcbiAgICovXG4gIHB1c2goZWxlbWVudCkge1xuICAgIHJldHVybiB0aGlzLmVucXVldWUoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGVxdWV1ZXMgdGhlIGZyb250IGVsZW1lbnQgaW4gdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtudW1iZXJ8c3RyaW5nfG9iamVjdH1cbiAgICovXG4gIGRlcXVldWUoKSB7XG4gICAgaWYgKHRoaXMuc2l6ZSgpID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5mcm9udCgpO1xuICAgIHRoaXMuX29mZnNldCArPSAxO1xuXG4gICAgaWYgKHRoaXMuX29mZnNldCAqIDIgPCB0aGlzLl9lbGVtZW50cy5sZW5ndGgpIHJldHVybiBmaXJzdDtcblxuICAgIC8vIG9ubHkgcmVtb3ZlIGRlcXVldWVkIGVsZW1lbnRzIHdoZW4gcmVhY2hpbmcgaGFsZiBzaXplXG4gICAgLy8gdG8gZGVjcmVhc2UgbGF0ZW5jeSBvZiBzaGlmdGluZyBlbGVtZW50cy5cbiAgICB0aGlzLl9lbGVtZW50cyA9IHRoaXMuX2VsZW1lbnRzLnNsaWNlKHRoaXMuX29mZnNldCk7XG4gICAgdGhpcy5fb2Zmc2V0ID0gMDtcbiAgICByZXR1cm4gZmlyc3Q7XG4gIH1cblxuICAvKipcbiAgICogRGVxdWV1ZXMgdGhlIGZyb250IGVsZW1lbnQgaW4gdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtudW1iZXJ8c3RyaW5nfG9iamVjdH1cbiAgICovXG4gIHBvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXF1ZXVlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZnJvbnQgZWxlbWVudCBvZiB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMge251bWJlcnxzdHJpbmd8b2JqZWN0fVxuICAgKi9cbiAgZnJvbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSgpID4gMCA/IHRoaXMuX2VsZW1lbnRzW3RoaXMuX29mZnNldF0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGJhY2sgZWxlbWVudCBvZiB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMge251bWJlcnxzdHJpbmd8b2JqZWN0fVxuICAgKi9cbiAgYmFjaygpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplKCkgPiAwID8gdGhpcy5fZWxlbWVudHNbdGhpcy5fZWxlbWVudHMubGVuZ3RoIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIHRoaXMuX29mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplKCkgPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGluIHRoZSBxdWV1ZSBhcyBhbiBhcnJheS5cbiAgICogQHB1YmxpY1xuICAgKiBAcmV0dXJucyB7YXJyYXl9XG4gICAqL1xuICB0b0FycmF5KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50cy5zbGljZSh0aGlzLl9vZmZzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX2VsZW1lbnRzID0gW107XG4gICAgdGhpcy5fb2Zmc2V0ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBxdWV1ZS5cbiAgICogQHB1YmxpY1xuICAgKiBAcmV0dXJuIHtRdWV1ZX1cbiAgICovXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgUXVldWUodGhpcy5fZWxlbWVudHMuc2xpY2UodGhpcy5fb2Zmc2V0KSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHF1ZXVlIGZyb20gYW4gZXhpc3RpbmcgYXJyYXkuXG4gICAqIEBwdWJsaWNcbiAgICogQHN0YXRpY1xuICAgKiBAcGFyYW0ge2FycmF5fSBlbGVtZW50c1xuICAgKiBAcmV0dXJuIHtRdWV1ZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tQXJyYXkoZWxlbWVudHMpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXVlKGVsZW1lbnRzKTtcbiAgfVxufVxuXG5leHBvcnRzLlF1ZXVlID0gUXVldWU7XG4iLCAiY29uc3QgeyBRdWV1ZSB9ID0gcmVxdWlyZSgnLi9zcmMvcXVldWUnKTtcblxuZXhwb3J0cy5RdWV1ZSA9IFF1ZXVlO1xuIiwgImltcG9ydCB7IERhdGFjb3JlQXBpIH0gZnJvbSBcImFwaS9hcGlcIjtcbmltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgQXBwLCBQbHVnaW4sIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIHJlbmRlciB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IERFRkFVTFRfU0VUVElOR1MsIFNldHRpbmdzIH0gZnJvbSBcInNldHRpbmdzXCI7XG5pbXBvcnQgeyBEYXRhY29yZVF1ZXJ5VmlldyBhcyBEYXRhY29yZUpTVmlldywgVklFV19UWVBFX0RBVEFDT1JFSlMgfSBmcm9tIFwidWkvdmlldy1wYWdlXCI7XG5pbXBvcnQgeyBJbmRleFN0YXR1c0JhciB9IGZyb20gXCJ1aS9pbmRleC1zdGF0dXNcIjtcblxuLyoqIFJlYWN0aXZlIGRhdGEgZW5naW5lIGZvciB5b3VyIE9ic2lkaWFuLm1kIHZhdWx0LiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YWNvcmVQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICAgIC8qKiBQbHVnaW4td2lkZSBkZWZhdWx0IHNldHRpbmdzLiAqL1xuICAgIHB1YmxpYyBzZXR0aW5nczogU2V0dGluZ3M7XG5cbiAgICAvKiogQ2VudHJhbCBpbnRlcm5hbCBzdGF0ZS4gKi9cbiAgICBwdWJsaWMgY29yZTogRGF0YWNvcmU7XG4gICAgLyoqIEV4dGVybmFsbHkgdmlzaWJsZSBBUEkgZm9yIHF1ZXJ5aW5nLiAqL1xuICAgIHB1YmxpYyBhcGk6IERhdGFjb3JlQXBpO1xuXG4gICAgYXN5bmMgb25sb2FkKCkge1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgKGF3YWl0IHRoaXMubG9hZERhdGEoKSkgPz8ge30pO1xuICAgICAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IEdlbmVyYWxTZXR0aW5nc1RhYih0aGlzLmFwcCwgdGhpcykpO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGNvcmUgQVBJIGZvciB1c2FnZSBpbiBhbGwgdmlld3MgYW5kIGRvd25zdHJlYW0gYXBwcy5cbiAgICAgICAgdGhpcy5hZGRDaGlsZCgodGhpcy5jb3JlID0gbmV3IERhdGFjb3JlKHRoaXMuYXBwLCB0aGlzLm1hbmlmZXN0LnZlcnNpb24sIHRoaXMuc2V0dGluZ3MpKSk7XG4gICAgICAgIHRoaXMuYXBpID0gbmV3IERhdGFjb3JlQXBpKHRoaXMuY29yZSk7XG5cbiAgICAgICAgLy8gQWRkIGEgdmlzdWFsIGFpZCBmb3Igd2hhdCBkYXRhY29yZSBpcyBjdXJyZW50bHkgZG9pbmcuXG4gICAgICAgIHRoaXMubW91bnRJbmRleFN0YXRlKHRoaXMuYWRkU3RhdHVzQmFySXRlbSgpLCB0aGlzLmNvcmUpO1xuXG4gICAgICAgIC8vIFByaW1hcnkgdmlzdWFsIGVsZW1lbnRzIChEYXRhY29yZUpTIGFuZCBEYXRhY29yZSBibG9ja3MpLlxuICAgICAgICB0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoXG4gICAgICAgICAgICBcImRhdGFjb3JlanNcIixcbiAgICAgICAgICAgIGFzeW5jIChzb3VyY2U6IHN0cmluZywgZWwsIGN0eCkgPT4gdGhpcy5hcGkuZXhlY3V0ZUpzKHNvdXJjZSwgZWwsIGN0eCwgY3R4LnNvdXJjZVBhdGgpLFxuICAgICAgICAgICAgLTEwMFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvcihcbiAgICAgICAgICAgIFwiZGF0YWNvcmVqc3hcIixcbiAgICAgICAgICAgIGFzeW5jIChzb3VyY2U6IHN0cmluZywgZWwsIGN0eCkgPT4gdGhpcy5hcGkuZXhlY3V0ZUpzeChzb3VyY2UsIGVsLCBjdHgsIGN0eC5zb3VyY2VQYXRoKSxcbiAgICAgICAgICAgIC0xMDBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoXG4gICAgICAgICAgICBcImRhdGFjb3JldHNcIixcbiAgICAgICAgICAgIGFzeW5jIChzb3VyY2U6IHN0cmluZywgZWwsIGN0eCkgPT4gdGhpcy5hcGkuZXhlY3V0ZVRzKHNvdXJjZSwgZWwsIGN0eCwgY3R4LnNvdXJjZVBhdGgpLFxuICAgICAgICAgICAgLTEwMFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvcihcbiAgICAgICAgICAgIFwiZGF0YWNvcmV0c3hcIixcbiAgICAgICAgICAgIGFzeW5jIChzb3VyY2U6IHN0cmluZywgZWwsIGN0eCkgPT4gdGhpcy5hcGkuZXhlY3V0ZVRzeChzb3VyY2UsIGVsLCBjdHgsIGN0eC5zb3VyY2VQYXRoKSxcbiAgICAgICAgICAgIC0xMDBcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBWaWV3czogRGF0YWNvcmVKUyB2aWV3LlxuICAgICAgICAvLyBAdHMtaWdub3JlIGJlIHF1aWV0XG4gICAgICAgIHRoaXMucmVnaXN0ZXJWaWV3KFZJRVdfVFlQRV9EQVRBQ09SRUpTLCAobGVhZikgPT4gbmV3IERhdGFjb3JlSlNWaWV3KGxlYWYsIHRoaXMuYXBpKSk7XG5cbiAgICAgICAgLy8gQWRkIGEgY29tbWFuZCBmb3IgY3JlYXRpbmcgYSBuZXcgdmlldyBwYWdlLlxuICAgICAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgICAgICAgaWQ6IFwiZGF0YWNvcmUtYWRkLXZpZXctcGFnZVwiLFxuICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgVmlldyBQYWdlXCIsXG4gICAgICAgICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xlYWYgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhZihcInRhYlwiKTtcbiAgICAgICAgICAgICAgICBuZXdMZWFmLnNldFZpZXdTdGF0ZSh7IHR5cGU6IFZJRVdfVFlQRV9EQVRBQ09SRUpTLCBhY3RpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHAud29ya3NwYWNlLnNldEFjdGl2ZUxlYWYobmV3TGVhZiwgeyBmb2N1czogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIEpTIGhpZ2hsaWdodGluZyBmb3IgY29kZWJsb2Nrcy5cbiAgICAgICAgdGhpcy5yZWdpc3Rlcih0aGlzLnJlZ2lzdGVyQ29kZWJsb2NrSGlnaGxpZ2h0aW5nKCkpO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgYXMgc29vbiBhcyB0aGUgd29ya3NwYWNlIGlzIHJlYWR5LlxuICAgICAgICBpZiAoIXRoaXMuYXBwLndvcmtzcGFjZS5sYXlvdXRSZWFkeSkge1xuICAgICAgICAgICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoYXN5bmMgKCkgPT4gdGhpcy5jb3JlLmluaXRpYWxpemUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvcmUuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSB0aGUgQVBJIGdsb2JhbGx5IGFjY2Vzc2libGUgZnJvbSBhbnkgY29udGV4dC5cbiAgICAgICAgd2luZG93LmRhdGFjb3JlID0gdGhpcy5hcGk7XG5cbiAgICAgICAgLy8gYm9uIGFwcGV0aXRcbiAgICAgICAgY29uc29sZS5sb2coYERhdGFjb3JlOiB2ZXJzaW9uICR7dGhpcy5tYW5pZmVzdC52ZXJzaW9ufSAocmVxdWlyZXMgb2JzaWRpYW4gJHt0aGlzLm1hbmlmZXN0Lm1pbkFwcFZlcnNpb259KWApO1xuICAgIH1cblxuICAgIG9udW5sb2FkKCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRGF0YWNvcmU6IHZlcnNpb24gJHt0aGlzLm1hbmlmZXN0LnZlcnNpb259IHVubG9hZGVkLmApO1xuICAgIH1cblxuICAgIC8qKiBSZWdpc3RlciBjb2RlYmxvY2sgaGlnaGxpZ2h0aW5nIGFuZCByZXR1cm4gYSBjbG9zdXJlIHdoaWNoIHVucmVnaXN0ZXJzLiAqL1xuICAgIHJlZ2lzdGVyQ29kZWJsb2NrSGlnaGxpZ2h0aW5nKCk6ICgpID0+IHZvaWQge1xuICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmVqc1wiLCAoY29uZmlnKSA9PiB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgXCJqYXZhc2NyaXB0XCIpKTtcbiAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JlanN4XCIsIChjb25maWcpID0+IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcImpzeFwiKSk7XG4gICAgICAgIHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJkYXRhY29yZXRzXCIsIChjb25maWcpID0+IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcImphdmFzY3JpcHRcIikpO1xuICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmV0c3hcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwianN4XCIpKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JlanNcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwibnVsbFwiKSk7XG4gICAgICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmVqc3hcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwibnVsbFwiKSk7XG4gICAgICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmV0c1wiLCAoY29uZmlnKSA9PiB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgXCJudWxsXCIpKTtcbiAgICAgICAgICAgIHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJkYXRhY29yZXRzeFwiLCAoY29uZmlnKSA9PiB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgXCJudWxsXCIpKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIHRoZSBnaXZlbiBzZXR0aW5ncyB0byBuZXcgdmFsdWVzLiAqL1xuICAgIGFzeW5jIHVwZGF0ZVNldHRpbmdzKHNldHRpbmdzOiBQYXJ0aWFsPFNldHRpbmdzPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2V0dGluZ3MsIHNldHRpbmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvKiogUmVuZGVyIGRhdGFjb3JlIGluZGV4aW5nIHN0YXR1cyB1c2luZyB0aGUgaW5kZXguICovXG4gICAgcHJpdmF0ZSBtb3VudEluZGV4U3RhdGUocm9vdDogSFRNTEVsZW1lbnQsIGNvcmU6IERhdGFjb3JlKTogdm9pZCB7XG4gICAgICAgIHJlbmRlcihjcmVhdGVFbGVtZW50KEluZGV4U3RhdHVzQmFyLCB7IGRhdGFjb3JlOiBjb3JlIH0pLCByb290KTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHJlbmRlcihudWxsLCByb290KSk7XG4gICAgfVxufVxuXG4vKiogRGF0YWNvcmUgU2V0dGluZ3MgVGFiLiAqL1xuY2xhc3MgR2VuZXJhbFNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gICAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHByaXZhdGUgcGx1Z2luOiBEYXRhY29yZVBsdWdpbikge1xuICAgICAgICBzdXBlcihhcHAsIHBsdWdpbik7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3BsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyRWwuZW1wdHkoKTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwgeyB0ZXh0OiBcIlZpZXdzXCIgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiUGFnaW5hdGlvblwiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJJZiBlbmFibGVkLCBzcGxpdHMgdXAgdmlld3MgaW50byBwYWdlcyBvZiByZXN1bHRzIHdoaWNoIGNhbiBiZSB0cmF2ZXJzZWQgXCIgK1xuICAgICAgICAgICAgICAgICAgICBcInZpYSBidXR0b25zIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiB0aGUgdmlldy4gVGhpcyBzdWJzdGFudGlhbGx5IGltcHJvdmVzIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJ0aGUgcGVyZm9ybWFuY2Ugb2YgbGFyZ2Ugdmlld3MsIGFuZCBjYW4gaGVscCB3aXRoIHZpc3VhbCBjbHV0dGVyLiBOb3RlIHRoYXQgXCIgK1xuICAgICAgICAgICAgICAgICAgICBcInRoaXMgc2V0dGluZyBjYW4gYWxzbyBiZSBzZXQgb24gYSBwZXItdmlldyBiYXNpcy5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRlZmF1bHRQYWdpbmdFbmFibGVkKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBkZWZhdWx0UGFnaW5nRW5hYmxlZDogdmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJEZWZhdWx0IFBhZ2UgU2l6ZVwiKVxuICAgICAgICAgICAgLnNldERlc2MoXCJUaGUgbnVtYmVyIG9mIGVudHJpZXMgdG8gc2hvdyBwZXIgcGFnZSwgYnkgZGVmYXVsdC4gVGhpcyBjYW4gYmUgb3ZlcnJpZGVuIG9uIGEgcGVyLXZpZXcgYmFzaXMuXCIpXG4gICAgICAgICAgICAuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgT1BUSU9OUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICAgICAgXCIyNVwiOiBcIjI1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiNTBcIjogXCI1MFwiLFxuICAgICAgICAgICAgICAgICAgICBcIjEwMFwiOiBcIjEwMFwiLFxuICAgICAgICAgICAgICAgICAgICBcIjIwMFwiOiBcIjIwMFwiLFxuICAgICAgICAgICAgICAgICAgICBcIjUwMFwiOiBcIjUwMFwiLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IFwiXCIgKyB0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWZhdWx0UGFnZVNpemU7XG4gICAgICAgICAgICAgICAgaWYgKCEoY3VycmVudCBpbiBPUFRJT05TKSkgT1BUSU9OU1tjdXJyZW50XSA9IGN1cnJlbnQ7XG5cbiAgICAgICAgICAgICAgICBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAuYWRkT3B0aW9ucyhPUFRJT05TKVxuICAgICAgICAgICAgICAgICAgICAuc2V0VmFsdWUoY3VycmVudClcbiAgICAgICAgICAgICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IGRlZmF1bHRQYWdlU2l6ZTogcGFyc2VkIHwgMCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJTY3JvbGwgb24gUGFnZSBDaGFuZ2VcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFxuICAgICAgICAgICAgICAgIFwiSWYgZW5hYmxlZCwgdGFibGUgdGhhdCBhcmUgcGFnZWQgd2lsbCBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgdGFibGUgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzLiBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwiVGhpcyBjYW4gYmUgb3ZlcnJpZGVuIG9uIGEgcGVyLXZpZXcgYmFzaXMuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zY3JvbGxPblBhZ2VDaGFuZ2UpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IHNjcm9sbE9uUGFnZUNoYW5nZTogdmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiRW5hYmxlIEphdmFzY3JpcHRcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiV2hldGhlciBKYXZhc2NyaXB0IGNvZGVibG9ja3Mgd2lsbCBiZSBldmFsdWF0ZWQuXCIpXG4gICAgICAgICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZW5hYmxlSnMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IGVuYWJsZUpzOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7IHRleHQ6IFwiRm9ybWF0dGluZ1wiIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkVtcHR5IFZhbHVlc1wiKVxuICAgICAgICAgICAgLnNldERlc2MoXCJXaGF0IHRvIHNob3cgZm9yIHVuc2V0L2VtcHR5IHByb3BlcnRpZXMuXCIpXG4gICAgICAgICAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRleHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVuZGVyTnVsbEFzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyByZW5kZXJOdWxsQXM6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiRGVmYXVsdCBEYXRlIEZvcm1hdFwiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJUaGUgZGVmYXVsdCBmb3JtYXQgdGhhdCBkYXRlcyBhcmUgcmVuZGVyZWQgaW4uIFVzZXMgbHV4b24gZGF0ZSBmb3JtYXR0aW5nIChodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L2x1eG9uL2Jsb2IvbWFzdGVyL2RvY3MvZm9ybWF0dGluZy5tZCNmb3JtYXR0aW5nLXdpdGgtdG9rZW5zLXN0cmluZ3MtZm9yLWN0aHVsaHUpLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRleHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiBkYXRlIGZvcm1hdCBpcyB2YWxpZFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUuZnJvbU1pbGxpcyhEYXRlLm5vdygpKS50b0Zvcm1hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgZGVmYXVsdERhdGVGb3JtYXQ6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiRGVmYXVsdCBEYXRlLVRpbWUgZm9ybWF0XCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcbiAgICAgICAgICAgICAgICBcIlRoZSBkZWZhdWx0IGZvcm1hdCB0aGF0IGRhdGUtdGltZXMgYXJlIHJlbmRlcmVkIGluLiBVc2VzIGx1eG9uIGRhdGUgZm9ybWF0dGluZyAoaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9sdXhvbi9ibG9iL21hc3Rlci9kb2NzL2Zvcm1hdHRpbmcubWQjZm9ybWF0dGluZy13aXRoLXRva2Vucy1zdHJpbmdzLWZvci1jdGh1bGh1KS5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRlZmF1bHREYXRlVGltZUZvcm1hdCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZS5mcm9tTWlsbGlzKERhdGUubm93KCkpLnRvRm9ybWF0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHsgdGV4dDogXCJQZXJmb3JtYW5jZSBUdW5pbmdcIiB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJJbmxpbmUgRmllbGRzXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcbiAgICAgICAgICAgICAgICBcIklmIGVuYWJsZWQsIGlubGluZSBmaWVsZHMgd2lsbCBiZSBwYXJzZWQgaW4gYWxsIGRvY3VtZW50cy4gRmluZGluZyBpbmxpbmUgZmllbGRzIHJlcXVpcmVzIGEgZnVsbCB0ZXh0IHNjYW4gdGhyb3VnaCBlYWNoIGRvY3VtZW50LCBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwid2hpY2ggbm90aWNhYmx5IHNsb3dzIGRvd24gaW5kZXhpbmcgZm9yIGxhcmdlIHZhdWx0cy4gRGlzYWJsaW5nIHRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIG1lYW4gbWV0YWRhdGEgd2lsbCBvbmx5IGNvbWUgZnJvbSB0YWdzLCBsaW5rcywgYW5kIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzIC8gZnJvbnRtYXR0ZXJcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmluZGV4SW5saW5lRmllbGRzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBpbmRleElubGluZUZpZWxkczogdmFsdWUgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogUmVxdWVzdCBhIGZ1bGwgaW5kZXggZHJvcCArIHJlaW5kZXggZm9yIGNvcnJlY3RuZXNzLlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiSW1wb3J0ZXIgVGhyZWFkc1wiKVxuICAgICAgICAgICAgLnNldERlc2MoXCJUaGUgbnVtYmVyIG9mIGltcG9ydGVyIHRocmVhZHMgdG8gdXNlIGZvciBwYXJzaW5nIG1ldGFkYXRhLlwiKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKFwiXCIgKyB0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbXBvcnRlck51bVRocmVhZHMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBpbXBvcnRlck51bVRocmVhZHM6IHBhcnNlZCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkltcG9ydGVyIFV0aWxpemF0aW9uXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcIkhvdyBtdWNoIENQVSB0aW1lIGVhY2ggaW1wb3J0ZXIgdGhyZWFkIHNob3VsZCB1c2UsIGFzIGEgZnJhY3Rpb24gKDAuMSAtIDEuMCkuXCIpXG4gICAgICAgICAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRleHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1wb3J0ZXJVdGlsaXphdGlvbi50b0ZpeGVkKDIpKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGltaXRlZCA9IE1hdGgubWF4KDAuMSwgTWF0aC5taW4oMS4wLCBwYXJzZWQpKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBpbXBvcnRlclV0aWxpemF0aW9uOiBsaW1pdGVkIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiTWF4aW11bSBSZWN1cnNpdmUgUmVuZGVyIERlcHRoXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcbiAgICAgICAgICAgICAgICBcIk1heGltdW0gZGVwdGggdGhhdCBvYmplY3RzIHdpbGwgYmUgcmVuZGVyZWQgdG8gKGkuZS4sIGhvdyBtYW55IGxldmVscyBvZiBzdWJwcm9wZXJ0aWVzXCIgK1xuICAgICAgICAgICAgICAgICAgICBcIndpbGwgYmUgcmVuZGVyZWQgYnkgZGVmYXVsdCkuIFRoaXMgYXZvaWRzIGluZmluaXRlIHJlY3Vyc2lvbiBkdWUgdG8gc2VsZi1yZWZlcmVudGlhbCBvYmplY3RzXCIgK1xuICAgICAgICAgICAgICAgICAgICBcImFuZCBlbnN1cmVzIHRoYXQgcmVuZGVyaW5nIG9iamVjdHMgaXMgYWNjZXB0YWJseSBwZXJmb3JtYW50LlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRleHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubWF4UmVjdXJzaXZlUmVuZGVyRGVwdGgudG9TdHJpbmcoKSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKHBhcnNlZCkpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBtYXhSZWN1cnNpdmVSZW5kZXJEZXB0aDogcGFyc2VkIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIlJlY3Vyc2l2ZSBzdWJ0YXNrIGNvbXBsZXRpb25cIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiV2hldGhlciBvciBub3Qgc3VidGFza3Mgc2hvdWxkIGJlIGNvbXBsZXRlZCBhbG9uZyB3aXRoIHRoZWlyIHBhcmVudCBpbiBkYXRhY29yZSB0YXNrIHZpZXdzXCIpXG4gICAgICAgICAgICAuYWRkVG9nZ2xlKCh0YikgPT4ge1xuICAgICAgICAgICAgICAgIHRiLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnJlY3Vyc2l2ZVRhc2tDb21wbGV0aW9uKS5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgcmVjdXJzaXZlVGFza0NvbXBsZXRpb246IHZhbCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7IHRleHQ6IFwiVGFza3NcIiB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJUYXNrIENvbXBsZXRpb24gVGV4dFwiKVxuICAgICAgICAgICAgLnNldERlc2MoXCJOYW1lIG9mIGlubGluZSBmaWVsZCBpbiB3aGljaCB0byBzdG9yZSB0YXNrIGNvbXBsZXRpb24gZGF0ZS90aW1lXCIpXG4gICAgICAgICAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRleHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGFza0NvbXBsZXRpb25UZXh0KS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyB0YXNrQ29tcGxldGlvblRleHQ6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiVXNlIEVtb2ppIFNob3J0aGFuZCBmb3IgVGFzayBDb21wbGV0aW9uXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcbiAgICAgICAgICAgICAgICBcIklmIGVuYWJsZWQsIGF1dG9tYXRpYyBjb21wbGV0aW9uIHdpbGwgdXNlIGFuIGVtb2ppIHNob3J0aGFuZCBcdTI3MDUgWVlZWS1NTS1ERFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJpbnN0ZWFkIG9mIFtjb21wbGV0aW9uOjogZGF0ZV0uXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRUb2dnbGUoKHRiKSA9PiB7XG4gICAgICAgICAgICAgICAgdGIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGFza0NvbXBsZXRpb25Vc2VFbW9qaVNob3J0aGFuZCkub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IHRhc2tDb21wbGV0aW9uVXNlRW1vamlTaG9ydGhhbmQ6IHZhbCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgRGF0ZVRpbWUgZnJvbSBcIi4vZGF0ZXRpbWUuanNcIjtcbmltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuaW1wb3J0IEludGVydmFsIGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQgSW5mbyBmcm9tIFwiLi9pbmZvLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi96b25lLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuL3pvbmVzL0lBTkFab25lLmpzXCI7XG5pbXBvcnQgSW52YWxpZFpvbmUgZnJvbSBcIi4vem9uZXMvaW52YWxpZFpvbmUuanNcIjtcbmltcG9ydCBTeXN0ZW1ab25lIGZyb20gXCIuL3pvbmVzL3N5c3RlbVpvbmUuanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuXG5jb25zdCBWRVJTSU9OID0gXCIyLjUuMlwiO1xuXG5leHBvcnQge1xuICBWRVJTSU9OLFxuICBEYXRlVGltZSxcbiAgRHVyYXRpb24sXG4gIEludGVydmFsLFxuICBJbmZvLFxuICBab25lLFxuICBGaXhlZE9mZnNldFpvbmUsXG4gIElBTkFab25lLFxuICBJbnZhbGlkWm9uZSxcbiAgU3lzdGVtWm9uZSxcbiAgU2V0dGluZ3MsXG59O1xuIiwgIi8vIHRoZXNlIGFyZW4ndCByZWFsbHkgcHJpdmF0ZSwgYnV0IG5vciBhcmUgdGhleSByZWFsbHkgdXNlZnVsIHRvIGRvY3VtZW50XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgTHV4b25FcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREYXRlVGltZUVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIERhdGVUaW1lOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSW50ZXJ2YWxFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZER1cmF0aW9uRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgRHVyYXRpb246ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkVW5pdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHVuaXQpIHtcbiAgICBzdXBlcihgSW52YWxpZCB1bml0ICR7dW5pdH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgWm9uZUlzQWJzdHJhY3RFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlpvbmUgaXMgYW4gYWJzdHJhY3QgY2xhc3NcIik7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY29uc3QgbiA9IFwibnVtZXJpY1wiLFxuICBzID0gXCJzaG9ydFwiLFxuICBsID0gXCJsb25nXCI7XG5cbmV4cG9ydCBjb25zdCBEQVRFX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEX1dJVEhfV0VFS0RBWSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgd2Vla2RheTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX0ZVTEwgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0VDT05EUyA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG4iLCAiLypcbiAgVGhpcyBpcyBqdXN0IGEganVuayBkcmF3ZXIsIGNvbnRhaW5pbmcgYW55dGhpbmcgdXNlZCBhY3Jvc3MgbXVsdGlwbGUgY2xhc3Nlcy5cbiAgQmVjYXVzZSBMdXhvbiBpcyBzbWFsbChpc2gpLCB0aGlzIHNob3VsZCBzdGF5IHNtYWxsIGFuZCB3ZSB3b24ndCB3b3JyeSBhYm91dCBzcGxpdHRpbmdcbiAgaXQgdXAgaW50bywgc2F5LCBwYXJzaW5nVXRpbC5qcyBhbmQgYmFzaWNVdGlsLmpzIGFuZCBzbyBvbi4gQnV0IHRoZXkgYXJlIGRpdmlkZWQgdXAgYnkgZmVhdHVyZSBhcmVhLlxuKi9cblxuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG4vLyBUWVBFU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwidW5kZWZpbmVkXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIiAmJiBvICUgMSA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKG8pIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gXCJbb2JqZWN0IERhdGVdXCI7XG59XG5cbi8vIENBUEFCSUxJVElFU1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVsYXRpdmUoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiBJbnRsICE9PSBcInVuZGVmaW5lZFwiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gT0JKRUNUUyBBTkQgQVJSQVlTXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZUFycmF5KHRoaW5nKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHRoaW5nKSA/IHRoaW5nIDogW3RoaW5nXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJlc3RCeShhcnIsIGJ5LCBjb21wYXJlKSB7XG4gIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gYXJyLnJlZHVjZSgoYmVzdCwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHBhaXIgPSBbYnkobmV4dCksIG5leHRdO1xuICAgIGlmICghYmVzdCkge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfSBlbHNlIGlmIChjb21wYXJlKGJlc3RbMF0sIHBhaXJbMF0pID09PSBiZXN0WzBdKSB7XG4gICAgICByZXR1cm4gYmVzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfVxuICB9LCBudWxsKVsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgoYSwgaykgPT4ge1xuICAgIGFba10gPSBvYmpba107XG4gICAgcmV0dXJuIGE7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG5cbi8vIE5VTUJFUlMgQU5EIFNUUklOR1NcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVnZXJCZXR3ZWVuKHRoaW5nLCBib3R0b20sIHRvcCkge1xuICByZXR1cm4gaXNJbnRlZ2VyKHRoaW5nKSAmJiB0aGluZyA+PSBib3R0b20gJiYgdGhpbmcgPD0gdG9wO1xufVxuXG4vLyB4ICUgbiBidXQgdGFrZXMgdGhlIHNpZ24gb2YgbiBpbnN0ZWFkIG9mIHhcbmV4cG9ydCBmdW5jdGlvbiBmbG9vck1vZCh4LCBuKSB7XG4gIHJldHVybiB4IC0gbiAqIE1hdGguZmxvb3IoeCAvIG4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFkU3RhcnQoaW5wdXQsIG4gPSAyKSB7XG4gIGNvbnN0IGlzTmVnID0gaW5wdXQgPCAwO1xuICBsZXQgcGFkZGVkO1xuICBpZiAoaXNOZWcpIHtcbiAgICBwYWRkZWQgPSBcIi1cIiArIChcIlwiICsgLWlucHV0KS5wYWRTdGFydChuLCBcIjBcIik7XG4gIH0gZWxzZSB7XG4gICAgcGFkZGVkID0gKFwiXCIgKyBpbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9XG4gIHJldHVybiBwYWRkZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVnZXIoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUludChzdHJpbmcsIDEwKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGbG9hdGluZyhzdHJpbmcpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyaW5nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNaWxsaXMoZnJhY3Rpb24pIHtcbiAgLy8gUmV0dXJuIHVuZGVmaW5lZCAoaW5zdGVhZCBvZiAwKSBpbiB0aGVzZSBjYXNlcywgd2hlcmUgZnJhY3Rpb24gaXMgbm90IHNldFxuICBpZiAoaXNVbmRlZmluZWQoZnJhY3Rpb24pIHx8IGZyYWN0aW9uID09PSBudWxsIHx8IGZyYWN0aW9uID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmID0gcGFyc2VGbG9hdChcIjAuXCIgKyBmcmFjdGlvbikgKiAxMDAwO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGYpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZFRvKG51bWJlciwgZGlnaXRzLCB0b3dhcmRaZXJvID0gZmFsc2UpIHtcbiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzLFxuICAgIHJvdW5kZXIgPSB0b3dhcmRaZXJvID8gTWF0aC50cnVuYyA6IE1hdGgucm91bmQ7XG4gIHJldHVybiByb3VuZGVyKG51bWJlciAqIGZhY3RvcikgLyBmYWN0b3I7XG59XG5cbi8vIERBVEUgQkFTSUNTXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0ID09PSAwICYmICh5ZWFyICUgMTAwICE9PSAwIHx8IHllYXIgJSA0MDAgPT09IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luTW9udGgoeWVhciwgbW9udGgpIHtcbiAgY29uc3QgbW9kTW9udGggPSBmbG9vck1vZChtb250aCAtIDEsIDEyKSArIDEsXG4gICAgbW9kWWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjtcblxuICBpZiAobW9kTW9udGggPT09IDIpIHtcbiAgICByZXR1cm4gaXNMZWFwWWVhcihtb2RZZWFyKSA/IDI5IDogMjg7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFszMSwgbnVsbCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdW21vZE1vbnRoIC0gMV07XG4gIH1cbn1cblxuLy8gY292ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgbG9jYWwgdGltZXN0YW1wIChlcG9jaCwgYnV0IHdpdGggdGhlIG9mZnNldCBiYWtlZCBpbilcbmV4cG9ydCBmdW5jdGlvbiBvYmpUb0xvY2FsVFMob2JqKSB7XG4gIGxldCBkID0gRGF0ZS5VVEMoXG4gICAgb2JqLnllYXIsXG4gICAgb2JqLm1vbnRoIC0gMSxcbiAgICBvYmouZGF5LFxuICAgIG9iai5ob3VyLFxuICAgIG9iai5taW51dGUsXG4gICAgb2JqLnNlY29uZCxcbiAgICBvYmoubWlsbGlzZWNvbmRcbiAgKTtcblxuICAvLyBmb3IgbGVnYWN5IHJlYXNvbnMsIHllYXJzIGJldHdlZW4gMCBhbmQgOTkgYXJlIGludGVycHJldGVkIGFzIDE5WFg7IHJldmVydCB0aGF0XG4gIGlmIChvYmoueWVhciA8IDEwMCAmJiBvYmoueWVhciA+PSAwKSB7XG4gICAgZCA9IG5ldyBEYXRlKGQpO1xuICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7XG4gIH1cbiAgcmV0dXJuICtkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NJbldlZWtZZWFyKHdlZWtZZWFyKSB7XG4gIGNvbnN0IHAxID1cbiAgICAgICh3ZWVrWWVhciArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0KSAtXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyAxMDApICtcbiAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICVcbiAgICAgIDcsXG4gICAgbGFzdCA9IHdlZWtZZWFyIC0gMSxcbiAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3O1xuICByZXR1cm4gcDEgPT09IDQgfHwgcDIgPT09IDMgPyA1MyA6IDUyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhcikge1xuICBpZiAoeWVhciA+IDk5KSB7XG4gICAgcmV0dXJuIHllYXI7XG4gIH0gZWxzZSByZXR1cm4geWVhciA+IDYwID8gMTkwMCArIHllYXIgOiAyMDAwICsgeWVhcjtcbn1cblxuLy8gUEFSU0lOR1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Vab25lSW5mbyh0cywgb2Zmc2V0Rm9ybWF0LCBsb2NhbGUsIHRpbWVab25lID0gbnVsbCkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpLFxuICAgIGludGxPcHRzID0ge1xuICAgICAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgIH07XG5cbiAgaWYgKHRpbWVab25lKSB7XG4gICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTtcbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVkID0geyB0aW1lWm9uZU5hbWU6IG9mZnNldEZvcm1hdCwgLi4uaW50bE9wdHMgfTtcblxuICBjb25zdCBwYXJzZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG1vZGlmaWVkKVxuICAgIC5mb3JtYXRUb1BhcnRzKGRhdGUpXG4gICAgLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBcInRpbWV6b25lbmFtZVwiKTtcbiAgcmV0dXJuIHBhcnNlZCA/IHBhcnNlZC52YWx1ZSA6IG51bGw7XG59XG5cbi8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwXG5leHBvcnQgZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikge1xuICBsZXQgb2ZmSG91ciA9IHBhcnNlSW50KG9mZkhvdXJTdHIsIDEwKTtcblxuICAvLyBkb24ndCB8fCB0aGlzIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmVzZXJ2ZSAtMFxuICBpZiAoTnVtYmVyLmlzTmFOKG9mZkhvdXIpKSB7XG4gICAgb2ZmSG91ciA9IDA7XG4gIH1cblxuICBjb25zdCBvZmZNaW4gPSBwYXJzZUludChvZmZNaW51dGVTdHIsIDEwKSB8fCAwLFxuICAgIG9mZk1pblNpZ25lZCA9IG9mZkhvdXIgPCAwIHx8IE9iamVjdC5pcyhvZmZIb3VyLCAtMCkgPyAtb2ZmTWluIDogb2ZmTWluO1xuICByZXR1cm4gb2ZmSG91ciAqIDYwICsgb2ZmTWluU2lnbmVkO1xufVxuXG4vLyBDT0VSQ0lPTlxuXG5leHBvcnQgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWUpIHtcbiAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIgfHwgdmFsdWUgPT09IFwiXCIgfHwgTnVtYmVyLmlzTmFOKG51bWVyaWNWYWx1ZSkpXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJbnZhbGlkIHVuaXQgdmFsdWUgJHt2YWx1ZX1gKTtcbiAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHt9O1xuICBmb3IgKGNvbnN0IHUgaW4gb2JqKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHtcbiAgICAgIGNvbnN0IHYgPSBvYmpbdV07XG4gICAgICBpZiAodiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVyKHUpXSA9IGFzTnVtYmVyKHYpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvZmZzZXQsIGZvcm1hdCkge1xuICBjb25zdCBob3VycyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0IC8gNjApKSxcbiAgICBtaW51dGVzID0gTWF0aC50cnVuYyhNYXRoLmFicyhvZmZzZXQgJSA2MCkpLFxuICAgIHNpZ24gPSBvZmZzZXQgPj0gMCA/IFwiK1wiIDogXCItXCI7XG5cbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7cGFkU3RhcnQoaG91cnMsIDIpfToke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtob3Vyc30ke21pbnV0ZXMgPiAwID8gYDoke21pbnV0ZXN9YCA6IFwiXCJ9YDtcbiAgICBjYXNlIFwidGVjaGllXCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX0ke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBWYWx1ZSBmb3JtYXQgJHtmb3JtYXR9IGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7XG4gIHJldHVybiBwaWNrKG9iaiwgW1wiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlhbmFSZWdleCA9XG4gIC9bQS1aYS16XystXXsxLDI1Nn0oPzo6P1xcL1tBLVphLXowLTlfKy1dezEsMjU2fSg/OlxcL1tBLVphLXowLTlfKy1dezEsMjU2fSk/KT8vO1xuIiwgImltcG9ydCAqIGFzIEZvcm1hdHMgZnJvbSBcIi4vZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHsgcGljayB9IGZyb20gXCIuL3V0aWwuanNcIjtcblxuZnVuY3Rpb24gc3RyaW5naWZ5KG9iaikge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCBPYmplY3Qua2V5cyhvYmopLnNvcnQoKSk7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgY29uc3QgbW9udGhzTG9uZyA9IFtcbiAgXCJKYW51YXJ5XCIsXG4gIFwiRmVicnVhcnlcIixcbiAgXCJNYXJjaFwiLFxuICBcIkFwcmlsXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuZVwiLFxuICBcIkp1bHlcIixcbiAgXCJBdWd1c3RcIixcbiAgXCJTZXB0ZW1iZXJcIixcbiAgXCJPY3RvYmVyXCIsXG4gIFwiTm92ZW1iZXJcIixcbiAgXCJEZWNlbWJlclwiLFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vbnRoc1Nob3J0ID0gW1xuICBcIkphblwiLFxuICBcIkZlYlwiLFxuICBcIk1hclwiLFxuICBcIkFwclwiLFxuICBcIk1heVwiLFxuICBcIkp1blwiLFxuICBcIkp1bFwiLFxuICBcIkF1Z1wiLFxuICBcIlNlcFwiLFxuICBcIk9jdFwiLFxuICBcIk5vdlwiLFxuICBcIkRlY1wiLFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vbnRoc05hcnJvdyA9IFtcIkpcIiwgXCJGXCIsIFwiTVwiLCBcIkFcIiwgXCJNXCIsIFwiSlwiLCBcIkpcIiwgXCJBXCIsIFwiU1wiLCBcIk9cIiwgXCJOXCIsIFwiRFwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vbnRocyhsZW5ndGgpIHtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIFwibmFycm93XCI6XG4gICAgICByZXR1cm4gWy4uLm1vbnRoc05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLm1vbnRoc1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNMb25nXTtcbiAgICBjYXNlIFwibnVtZXJpY1wiOlxuICAgICAgcmV0dXJuIFtcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCIsIFwiNlwiLCBcIjdcIiwgXCI4XCIsIFwiOVwiLCBcIjEwXCIsIFwiMTFcIiwgXCIxMlwiXTtcbiAgICBjYXNlIFwiMi1kaWdpdFwiOlxuICAgICAgcmV0dXJuIFtcIjAxXCIsIFwiMDJcIiwgXCIwM1wiLCBcIjA0XCIsIFwiMDVcIiwgXCIwNlwiLCBcIjA3XCIsIFwiMDhcIiwgXCIwOVwiLCBcIjEwXCIsIFwiMTFcIiwgXCIxMlwiXTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdlZWtkYXlzTG9uZyA9IFtcbiAgXCJNb25kYXlcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiV2VkbmVzZGF5XCIsXG4gIFwiVGh1cnNkYXlcIixcbiAgXCJGcmlkYXlcIixcbiAgXCJTYXR1cmRheVwiLFxuICBcIlN1bmRheVwiLFxuXTtcblxuZXhwb3J0IGNvbnN0IHdlZWtkYXlzU2hvcnQgPSBbXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIiwgXCJTdW5cIl07XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c05hcnJvdyA9IFtcIk1cIiwgXCJUXCIsIFwiV1wiLCBcIlRcIiwgXCJGXCIsIFwiU1wiLCBcIlNcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrZGF5cyhsZW5ndGgpIHtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIFwibmFycm93XCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4ud2Vla2RheXNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4ud2Vla2RheXNMb25nXTtcbiAgICBjYXNlIFwibnVtZXJpY1wiOlxuICAgICAgcmV0dXJuIFtcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCIsIFwiNlwiLCBcIjdcIl07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtZXJpZGllbXMgPSBbXCJBTVwiLCBcIlBNXCJdO1xuXG5leHBvcnQgY29uc3QgZXJhc0xvbmcgPSBbXCJCZWZvcmUgQ2hyaXN0XCIsIFwiQW5ubyBEb21pbmlcIl07XG5cbmV4cG9ydCBjb25zdCBlcmFzU2hvcnQgPSBbXCJCQ1wiLCBcIkFEXCJdO1xuXG5leHBvcnQgY29uc3QgZXJhc05hcnJvdyA9IFtcIkJcIiwgXCJBXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gZXJhcyhsZW5ndGgpIHtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIFwibmFycm93XCI6XG4gICAgICByZXR1cm4gWy4uLmVyYXNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLmVyYXNMb25nXTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpIHtcbiAgcmV0dXJuIG1lcmlkaWVtc1tkdC5ob3VyIDwgMTIgPyAwIDogMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gd2Vla2RheXMobGVuZ3RoKVtkdC53ZWVrZGF5IC0gMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIG1vbnRocyhsZW5ndGgpW2R0Lm1vbnRoIC0gMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiBlcmFzKGxlbmd0aClbZHQueWVhciA8IDAgPyAwIDogMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIG51bWVyaWMgPSBcImFsd2F5c1wiLCBuYXJyb3cgPSBmYWxzZSkge1xuICBjb25zdCB1bml0cyA9IHtcbiAgICB5ZWFyczogW1wieWVhclwiLCBcInlyLlwiXSxcbiAgICBxdWFydGVyczogW1wicXVhcnRlclwiLCBcInF0ci5cIl0sXG4gICAgbW9udGhzOiBbXCJtb250aFwiLCBcIm1vLlwiXSxcbiAgICB3ZWVrczogW1wid2Vla1wiLCBcIndrLlwiXSxcbiAgICBkYXlzOiBbXCJkYXlcIiwgXCJkYXlcIiwgXCJkYXlzXCJdLFxuICAgIGhvdXJzOiBbXCJob3VyXCIsIFwiaHIuXCJdLFxuICAgIG1pbnV0ZXM6IFtcIm1pbnV0ZVwiLCBcIm1pbi5cIl0sXG4gICAgc2Vjb25kczogW1wic2Vjb25kXCIsIFwic2VjLlwiXSxcbiAgfTtcblxuICBjb25zdCBsYXN0YWJsZSA9IFtcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIl0uaW5kZXhPZih1bml0KSA9PT0gLTE7XG5cbiAgaWYgKG51bWVyaWMgPT09IFwiYXV0b1wiICYmIGxhc3RhYmxlKSB7XG4gICAgY29uc3QgaXNEYXkgPSB1bml0ID09PSBcImRheXNcIjtcbiAgICBzd2l0Y2ggKGNvdW50KSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBpc0RheSA/IFwidG9tb3Jyb3dcIiA6IGBuZXh0ICR7dW5pdHNbdW5pdF1bMF19YDtcbiAgICAgIGNhc2UgLTE6XG4gICAgICAgIHJldHVybiBpc0RheSA/IFwieWVzdGVyZGF5XCIgOiBgbGFzdCAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHJldHVybiBpc0RheSA/IFwidG9kYXlcIiA6IGB0aGlzICR7dW5pdHNbdW5pdF1bMF19YDtcbiAgICAgIGRlZmF1bHQ6IC8vIGZhbGwgdGhyb3VnaFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlzSW5QYXN0ID0gT2JqZWN0LmlzKGNvdW50LCAtMCkgfHwgY291bnQgPCAwLFxuICAgIGZtdFZhbHVlID0gTWF0aC5hYnMoY291bnQpLFxuICAgIHNpbmd1bGFyID0gZm10VmFsdWUgPT09IDEsXG4gICAgbGlsVW5pdHMgPSB1bml0c1t1bml0XSxcbiAgICBmbXRVbml0ID0gbmFycm93XG4gICAgICA/IHNpbmd1bGFyXG4gICAgICAgID8gbGlsVW5pdHNbMV1cbiAgICAgICAgOiBsaWxVbml0c1syXSB8fCBsaWxVbml0c1sxXVxuICAgICAgOiBzaW5ndWxhclxuICAgICAgPyB1bml0c1t1bml0XVswXVxuICAgICAgOiB1bml0O1xuICByZXR1cm4gaXNJblBhc3QgPyBgJHtmbXRWYWx1ZX0gJHtmbXRVbml0fSBhZ29gIDogYGluICR7Zm10VmFsdWV9ICR7Zm10VW5pdH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U3RyaW5nKGtub3duRm9ybWF0KSB7XG4gIC8vIHRoZXNlIGFsbCBoYXZlIHRoZSBvZmZzZXRzIHJlbW92ZWQgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGVtXG4gIC8vIHdpdGhvdXQgYWxsIHRoZSBpbnRsIHN0dWZmIHRoaXMgaXMgYmFja2ZpbGxpbmdcbiAgY29uc3QgZmlsdGVyZWQgPSBwaWNrKGtub3duRm9ybWF0LCBbXG4gICAgICBcIndlZWtkYXlcIixcbiAgICAgIFwiZXJhXCIsXG4gICAgICBcInllYXJcIixcbiAgICAgIFwibW9udGhcIixcbiAgICAgIFwiZGF5XCIsXG4gICAgICBcImhvdXJcIixcbiAgICAgIFwibWludXRlXCIsXG4gICAgICBcInNlY29uZFwiLFxuICAgICAgXCJ0aW1lWm9uZU5hbWVcIixcbiAgICAgIFwiaG91ckN5Y2xlXCIsXG4gICAgXSksXG4gICAga2V5ID0gc3RyaW5naWZ5KGZpbHRlcmVkKSxcbiAgICBkYXRlVGltZUh1Z2UgPSBcIkVFRUUsIExMTEwgZCwgeXl5eSwgaDptbSBhXCI7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX1NIT1JUKTpcbiAgICAgIHJldHVybiBcIk0vZC95eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX01FRCk6XG4gICAgICByZXR1cm4gXCJMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9NRURfV0lUSF9XRUVLREFZKTpcbiAgICAgIHJldHVybiBcIkVFRSwgTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfRlVMTCk6XG4gICAgICByZXR1cm4gXCJMTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfSFVHRSk6XG4gICAgICByZXR1cm4gXCJFRUVFLCBMTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfU0lNUExFKTpcbiAgICAgIHJldHVybiBcImg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1dJVEhfU0hPUlRfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcImg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9XSVRIX0xPTkdfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcImg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9TSU1QTEUpOlxuICAgICAgcmV0dXJuIFwiSEg6bW1cIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkhIOm1tOnNzXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1dJVEhfTE9OR19PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiSEg6bW1cIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX1NIT1JUKTpcbiAgICAgIHJldHVybiBcIk0vZC95eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRCk6XG4gICAgICByZXR1cm4gXCJMTEwgZCwgeXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9GVUxMKTpcbiAgICAgIHJldHVybiBcIkxMTEwgZCwgeXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9IVUdFKTpcbiAgICAgIHJldHVybiBkYXRlVGltZUh1Z2U7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTS9kL3l5eXksIGg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9XRUVLREFZKTpcbiAgICAgIHJldHVybiBcIkVFRSwgZCBMTEwgeXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJMTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiRUVFRSwgTExMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGRhdGVUaW1lSHVnZTtcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9mb3JtYXRzLmpzXCI7XG5pbXBvcnQgeyBwYWRTdGFydCB9IGZyb20gXCIuL3V0aWwuanNcIjtcblxuZnVuY3Rpb24gc3RyaW5naWZ5VG9rZW5zKHNwbGl0cywgdG9rZW5Ub1N0cmluZykge1xuICBsZXQgcyA9IFwiXCI7XG4gIGZvciAoY29uc3QgdG9rZW4gb2Ygc3BsaXRzKSB7XG4gICAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICAgIHMgKz0gdG9rZW4udmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBzICs9IHRva2VuVG9TdHJpbmcodG9rZW4udmFsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHM7XG59XG5cbmNvbnN0IG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHMgPSB7XG4gIEQ6IEZvcm1hdHMuREFURV9TSE9SVCxcbiAgREQ6IEZvcm1hdHMuREFURV9NRUQsXG4gIERERDogRm9ybWF0cy5EQVRFX0ZVTEwsXG4gIEREREQ6IEZvcm1hdHMuREFURV9IVUdFLFxuICB0OiBGb3JtYXRzLlRJTUVfU0lNUExFLFxuICB0dDogRm9ybWF0cy5USU1FX1dJVEhfU0VDT05EUyxcbiAgdHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQsXG4gIHR0dHQ6IEZvcm1hdHMuVElNRV9XSVRIX0xPTkdfT0ZGU0VULFxuICBUOiBGb3JtYXRzLlRJTUVfMjRfU0lNUExFLFxuICBUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUyxcbiAgVFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQsXG4gIFRUVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VULFxuICBmOiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JULFxuICBmZjogRm9ybWF0cy5EQVRFVElNRV9NRUQsXG4gIGZmZjogRm9ybWF0cy5EQVRFVElNRV9GVUxMLFxuICBmZmZmOiBGb3JtYXRzLkRBVEVUSU1FX0hVR0UsXG4gIEY6IEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTLFxuICBGRjogRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTLFxuICBGRkY6IEZvcm1hdHMuREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMsXG4gIEZGRkY6IEZvcm1hdHMuREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMsXG59O1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9ybWF0dGVyIHtcbiAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBuZXcgRm9ybWF0dGVyKGxvY2FsZSwgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VGb3JtYXQoZm10KSB7XG4gICAgbGV0IGN1cnJlbnQgPSBudWxsLFxuICAgICAgY3VycmVudEZ1bGwgPSBcIlwiLFxuICAgICAgYnJhY2tldGVkID0gZmFsc2U7XG4gICAgY29uc3Qgc3BsaXRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSBmbXQuY2hhckF0KGkpO1xuICAgICAgaWYgKGMgPT09IFwiJ1wiKSB7XG4gICAgICAgIGlmIChjdXJyZW50RnVsbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc3BsaXRzLnB1c2goeyBsaXRlcmFsOiBicmFja2V0ZWQsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgICAgIGN1cnJlbnRGdWxsID0gXCJcIjtcbiAgICAgICAgYnJhY2tldGVkID0gIWJyYWNrZXRlZDtcbiAgICAgIH0gZWxzZSBpZiAoYnJhY2tldGVkKSB7XG4gICAgICAgIGN1cnJlbnRGdWxsICs9IGM7XG4gICAgICB9IGVsc2UgaWYgKGMgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgY3VycmVudEZ1bGwgKz0gYztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjdXJyZW50RnVsbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc3BsaXRzLnB1c2goeyBsaXRlcmFsOiBmYWxzZSwgdmFsOiBjdXJyZW50RnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50RnVsbCA9IGM7XG4gICAgICAgIGN1cnJlbnQgPSBjO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50RnVsbC5sZW5ndGggPiAwKSB7XG4gICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCwgdmFsOiBjdXJyZW50RnVsbCB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3BsaXRzO1xuICB9XG5cbiAgc3RhdGljIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pIHtcbiAgICByZXR1cm4gbWFjcm9Ub2tlblRvRm9ybWF0T3B0c1t0b2tlbl07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihsb2NhbGUsIGZvcm1hdE9wdHMpIHtcbiAgICB0aGlzLm9wdHMgPSBmb3JtYXRPcHRzO1xuICAgIHRoaXMubG9jID0gbG9jYWxlO1xuICAgIHRoaXMuc3lzdGVtTG9jID0gbnVsbDtcbiAgfVxuXG4gIGZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBvcHRzKSB7XG4gICAgaWYgKHRoaXMuc3lzdGVtTG9jID09PSBudWxsKSB7XG4gICAgICB0aGlzLnN5c3RlbUxvYyA9IHRoaXMubG9jLnJlZGVmYXVsdFRvU3lzdGVtKCk7XG4gICAgfVxuICAgIGNvbnN0IGRmID0gdGhpcy5zeXN0ZW1Mb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5mb3JtYXQoKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lKGR0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBkZiA9IHRoaXMubG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYuZm9ybWF0KCk7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZVBhcnRzKGR0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBkZiA9IHRoaXMubG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYuZm9ybWF0VG9QYXJ0cygpO1xuICB9XG5cbiAgcmVzb2x2ZWRPcHRpb25zKGR0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBkZiA9IHRoaXMubG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cblxuICBudW0obiwgcCA9IDApIHtcbiAgICAvLyB3ZSBnZXQgc29tZSBwZXJmIG91dCBvZiBkb2luZyB0aGlzIGhlcmUsIGFubm95aW5nbHlcbiAgICBpZiAodGhpcy5vcHRzLmZvcmNlU2ltcGxlKSB7XG4gICAgICByZXR1cm4gcGFkU3RhcnQobiwgcCk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG5cbiAgICBpZiAocCA+IDApIHtcbiAgICAgIG9wdHMucGFkVG8gPSBwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIob3B0cykuZm9ybWF0KG4pO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKGR0LCBmbXQpIHtcbiAgICBjb25zdCBrbm93bkVuZ2xpc2ggPSB0aGlzLmxvYy5saXN0aW5nTW9kZSgpID09PSBcImVuXCIsXG4gICAgICB1c2VEYXRlVGltZUZvcm1hdHRlciA9IHRoaXMubG9jLm91dHB1dENhbGVuZGFyICYmIHRoaXMubG9jLm91dHB1dENhbGVuZGFyICE9PSBcImdyZWdvcnlcIixcbiAgICAgIHN0cmluZyA9IChvcHRzLCBleHRyYWN0KSA9PiB0aGlzLmxvYy5leHRyYWN0KGR0LCBvcHRzLCBleHRyYWN0KSxcbiAgICAgIGZvcm1hdE9mZnNldCA9IChvcHRzKSA9PiB7XG4gICAgICAgIGlmIChkdC5pc09mZnNldEZpeGVkICYmIGR0Lm9mZnNldCA9PT0gMCAmJiBvcHRzLmFsbG93Wikge1xuICAgICAgICAgIHJldHVybiBcIlpcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkdC5pc1ZhbGlkID8gZHQuem9uZS5mb3JtYXRPZmZzZXQoZHQudHMsIG9wdHMuZm9ybWF0KSA6IFwiXCI7XG4gICAgICB9LFxuICAgICAgbWVyaWRpZW0gPSAoKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gubWVyaWRpZW1Gb3JEYXRlVGltZShkdClcbiAgICAgICAgICA6IHN0cmluZyh7IGhvdXI6IFwibnVtZXJpY1wiLCBob3VyQ3ljbGU6IFwiaDEyXCIgfSwgXCJkYXlwZXJpb2RcIiksXG4gICAgICBtb250aCA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC5tb250aEZvckRhdGVUaW1lKGR0LCBsZW5ndGgpXG4gICAgICAgICAgOiBzdHJpbmcoc3RhbmRhbG9uZSA/IHsgbW9udGg6IGxlbmd0aCB9IDogeyBtb250aDogbGVuZ3RoLCBkYXk6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIiksXG4gICAgICB3ZWVrZGF5ID0gKGxlbmd0aCwgc3RhbmRhbG9uZSkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLndlZWtkYXlGb3JEYXRlVGltZShkdCwgbGVuZ3RoKVxuICAgICAgICAgIDogc3RyaW5nKFxuICAgICAgICAgICAgICBzdGFuZGFsb25lID8geyB3ZWVrZGF5OiBsZW5ndGggfSA6IHsgd2Vla2RheTogbGVuZ3RoLCBtb250aDogXCJsb25nXCIsIGRheTogXCJudW1lcmljXCIgfSxcbiAgICAgICAgICAgICAgXCJ3ZWVrZGF5XCJcbiAgICAgICAgICAgICksXG4gICAgICBtYXliZU1hY3JvID0gKHRva2VuKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdE9wdHMgPSBGb3JtYXR0ZXIubWFjcm9Ub2tlblRvRm9ybWF0T3B0cyh0b2tlbik7XG4gICAgICAgIGlmIChmb3JtYXRPcHRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIGZvcm1hdE9wdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVyYSA9IChsZW5ndGgpID0+XG4gICAgICAgIGtub3duRW5nbGlzaCA/IEVuZ2xpc2guZXJhRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkgOiBzdHJpbmcoeyBlcmE6IGxlbmd0aCB9LCBcImVyYVwiKSxcbiAgICAgIHRva2VuVG9TdHJpbmcgPSAodG9rZW4pID0+IHtcbiAgICAgICAgLy8gV2hlcmUgcG9zc2libGU6IGh0dHA6Ly9jbGRyLnVuaWNvZGUub3JnL3RyYW5zbGF0aW9uL2RhdGUtdGltZS0xL2RhdGUtdGltZSNUT0MtU3RhbmRhbG9uZS12cy4tRm9ybWF0LVN0eWxlc1xuICAgICAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAgICAgLy8gbXNcbiAgICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kKTtcbiAgICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgICAgICBjYXNlIFwiU1NTXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWlsbGlzZWNvbmQsIDMpO1xuICAgICAgICAgIC8vIHNlY29uZHNcbiAgICAgICAgICBjYXNlIFwic1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnNlY29uZCk7XG4gICAgICAgICAgY2FzZSBcInNzXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuc2Vjb25kLCAyKTtcbiAgICAgICAgICAvLyBmcmFjdGlvbmFsIHNlY29uZHNcbiAgICAgICAgICBjYXNlIFwidXVcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTApLCAyKTtcbiAgICAgICAgICBjYXNlIFwidXV1XCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwMCkpO1xuICAgICAgICAgIC8vIG1pbnV0ZXNcbiAgICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSk7XG4gICAgICAgICAgY2FzZSBcIm1tXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWludXRlLCAyKTtcbiAgICAgICAgICAvLyBob3Vyc1xuICAgICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciAlIDEyID09PSAwID8gMTIgOiBkdC5ob3VyICUgMTIpO1xuICAgICAgICAgIGNhc2UgXCJoaFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyLCAyKTtcbiAgICAgICAgICBjYXNlIFwiSFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIpO1xuICAgICAgICAgIGNhc2UgXCJISFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIsIDIpO1xuICAgICAgICAgIC8vIG9mZnNldFxuICAgICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgICAgICAvLyBsaWtlICs2XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiBcIm5hcnJvd1wiLCBhbGxvd1o6IHRoaXMub3B0cy5hbGxvd1ogfSk7XG4gICAgICAgICAgY2FzZSBcIlpaXCI6XG4gICAgICAgICAgICAvLyBsaWtlICswNjowMFxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogXCJzaG9ydFwiLCBhbGxvd1o6IHRoaXMub3B0cy5hbGxvd1ogfSk7XG4gICAgICAgICAgY2FzZSBcIlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArMDYwMFxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogXCJ0ZWNoaWVcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpaXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEVTVFxuICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgeyBmb3JtYXQ6IFwic2hvcnRcIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7XG4gICAgICAgICAgY2FzZSBcIlpaWlpaXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEVhc3Rlcm4gU3RhbmRhcmQgVGltZVxuICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmUub2Zmc2V0TmFtZShkdC50cywgeyBmb3JtYXQ6IFwibG9uZ1wiLCBsb2NhbGU6IHRoaXMubG9jLmxvY2FsZSB9KTtcbiAgICAgICAgICAvLyB6b25lXG4gICAgICAgICAgY2FzZSBcInpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgQW1lcmljYS9OZXdfWW9ya1xuICAgICAgICAgICAgcmV0dXJuIGR0LnpvbmVOYW1lO1xuICAgICAgICAgIC8vIG1lcmlkaWVtc1xuICAgICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgICAgICByZXR1cm4gbWVyaWRpZW0oKTtcbiAgICAgICAgICAvLyBkYXRlc1xuICAgICAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6IFwibnVtZXJpY1wiIH0sIFwiZGF5XCIpIDogdGhpcy5udW0oZHQuZGF5KTtcbiAgICAgICAgICBjYXNlIFwiZGRcIjpcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IGRheTogXCIyLWRpZ2l0XCIgfSwgXCJkYXlcIikgOiB0aGlzLm51bShkdC5kYXksIDIpO1xuICAgICAgICAgIC8vIHdlZWtkYXlzIC0gc3RhbmRhbG9uZVxuICAgICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrZGF5KTtcbiAgICAgICAgICBjYXNlIFwiY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJzaG9ydFwiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiY2NjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlc2RheSdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibG9uZ1wiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiY2NjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1QnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcIm5hcnJvd1wiLCB0cnVlKTtcbiAgICAgICAgICAvLyB3ZWVrZGF5cyAtIGZvcm1hdFxuICAgICAgICAgIGNhc2UgXCJFXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrZGF5KTtcbiAgICAgICAgICBjYXNlIFwiRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJzaG9ydFwiLCBmYWxzZSk7XG4gICAgICAgICAgY2FzZSBcIkVFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcImxvbmdcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJFRUVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVCdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibmFycm93XCIsIGZhbHNlKTtcbiAgICAgICAgICAvLyBtb250aHMgLSBzdGFuZGFsb25lXG4gICAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwibnVtZXJpY1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCk7XG4gICAgICAgICAgY2FzZSBcIkxMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAxLCBkb2Vzbid0IHNlZW0gdG8gd29ya1xuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwiMi1kaWdpdFwiLCBkYXk6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCwgMik7XG4gICAgICAgICAgY2FzZSBcIkxMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW5cbiAgICAgICAgICAgIHJldHVybiBtb250aChcInNob3J0XCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJMTExMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphbnVhcnlcbiAgICAgICAgICAgIHJldHVybiBtb250aChcImxvbmdcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcIkxMTExMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEpcbiAgICAgICAgICAgIHJldHVybiBtb250aChcIm5hcnJvd1wiLCB0cnVlKTtcbiAgICAgICAgICAvLyBtb250aHMgLSBmb3JtYXRcbiAgICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoKTtcbiAgICAgICAgICBjYXNlIFwiTU1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIjItZGlnaXRcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgsIDIpO1xuICAgICAgICAgIGNhc2UgXCJNTU1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFuXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJzaG9ydFwiLCBmYWxzZSk7XG4gICAgICAgICAgY2FzZSBcIk1NTU1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFudWFyeVxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibG9uZ1wiLCBmYWxzZSk7XG4gICAgICAgICAgY2FzZSBcIk1NTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEpcbiAgICAgICAgICAgIHJldHVybiBtb250aChcIm5hcnJvd1wiLCBmYWxzZSk7XG4gICAgICAgICAgLy8geWVhcnNcbiAgICAgICAgICBjYXNlIFwieVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAyMDE0XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyB5ZWFyOiBcIm51bWVyaWNcIiB9LCBcInllYXJcIikgOiB0aGlzLm51bShkdC55ZWFyKTtcbiAgICAgICAgICBjYXNlIFwieXlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMTRcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6IFwiMi1kaWdpdFwiIH0sIFwieWVhclwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIudG9TdHJpbmcoKS5zbGljZSgtMiksIDIpO1xuICAgICAgICAgIGNhc2UgXCJ5eXl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAwMTJcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6IFwibnVtZXJpY1wiIH0sIFwieWVhclwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDQpO1xuICAgICAgICAgIGNhc2UgXCJ5eXl5eXlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDAwMDEyXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIm51bWVyaWNcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLCA2KTtcbiAgICAgICAgICAvLyBlcmFzXG4gICAgICAgICAgY2FzZSBcIkdcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgQURcbiAgICAgICAgICAgIHJldHVybiBlcmEoXCJzaG9ydFwiKTtcbiAgICAgICAgICBjYXNlIFwiR0dcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgQW5ubyBEb21pbmlcbiAgICAgICAgICAgIHJldHVybiBlcmEoXCJsb25nXCIpO1xuICAgICAgICAgIGNhc2UgXCJHR0dHR1wiOlxuICAgICAgICAgICAgcmV0dXJuIGVyYShcIm5hcnJvd1wiKTtcbiAgICAgICAgICBjYXNlIFwia2tcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrWWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwgMik7XG4gICAgICAgICAgY2FzZSBcImtra2tcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrWWVhciwgNCk7XG4gICAgICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrTnVtYmVyKTtcbiAgICAgICAgICBjYXNlIFwiV1dcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC53ZWVrTnVtYmVyLCAyKTtcbiAgICAgICAgICBjYXNlIFwib1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm9yZGluYWwpO1xuICAgICAgICAgIGNhc2UgXCJvb29cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5vcmRpbmFsLCAzKTtcbiAgICAgICAgICBjYXNlIFwicVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQucXVhcnRlcik7XG4gICAgICAgICAgY2FzZSBcInFxXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQucXVhcnRlciwgMik7XG4gICAgICAgICAgY2FzZSBcIlhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0LnRzIC8gMTAwMCkpO1xuICAgICAgICAgIGNhc2UgXCJ4XCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQudHMpO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbWF5YmVNYWNybyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKEZvcm1hdHRlci5wYXJzZUZvcm1hdChmbXQpLCB0b2tlblRvU3RyaW5nKTtcbiAgfVxuXG4gIGZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhkdXIsIGZtdCkge1xuICAgIGNvbnN0IHRva2VuVG9GaWVsZCA9ICh0b2tlbikgPT4ge1xuICAgICAgICBzd2l0Y2ggKHRva2VuWzBdKSB7XG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiBcIm1pbGxpc2Vjb25kXCI7XG4gICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgIHJldHVybiBcInNlY29uZFwiO1xuICAgICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtaW51dGVcIjtcbiAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiaG91clwiO1xuICAgICAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJkYXlcIjtcbiAgICAgICAgICBjYXNlIFwid1wiOlxuICAgICAgICAgICAgcmV0dXJuIFwid2Vla1wiO1xuICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtb250aFwiO1xuICAgICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5Ub1N0cmluZyA9IChsaWxkdXIpID0+ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBtYXBwZWQgPSB0b2tlblRvRmllbGQodG9rZW4pO1xuICAgICAgICBpZiAobWFwcGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGxpbGR1ci5nZXQobWFwcGVkKSwgdG9rZW4ubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0b2tlbnMgPSBGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSxcbiAgICAgIHJlYWxUb2tlbnMgPSB0b2tlbnMucmVkdWNlKFxuICAgICAgICAoZm91bmQsIHsgbGl0ZXJhbCwgdmFsIH0pID0+IChsaXRlcmFsID8gZm91bmQgOiBmb3VuZC5jb25jYXQodmFsKSksXG4gICAgICAgIFtdXG4gICAgICApLFxuICAgICAgY29sbGFwc2VkID0gZHVyLnNoaWZ0VG8oLi4ucmVhbFRva2Vucy5tYXAodG9rZW5Ub0ZpZWxkKS5maWx0ZXIoKHQpID0+IHQpKTtcbiAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKHRva2VucywgdG9rZW5Ub1N0cmluZyhjb2xsYXBzZWQpKTtcbiAgfVxufVxuIiwgImV4cG9ydCBkZWZhdWx0IGNsYXNzIEludmFsaWQge1xuICBjb25zdHJ1Y3RvcihyZWFzb24sIGV4cGxhbmF0aW9uKSB7XG4gICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgdGhpcy5leHBsYW5hdGlvbiA9IGV4cGxhbmF0aW9uO1xuICB9XG5cbiAgdG9NZXNzYWdlKCkge1xuICAgIGlmICh0aGlzLmV4cGxhbmF0aW9uKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5yZWFzb259OiAke3RoaXMuZXhwbGFuYXRpb259YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVhc29uO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IFpvbmVJc0Fic3RyYWN0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcblxuLyoqXG4gKiBAaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpvbmUge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB0eXBlKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB6b25lLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBuYW1lKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICBnZXQgaWFuYU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG9mZnNldCBpcyBrbm93biB0byBiZSBmaXhlZCBmb3IgdGhlIHdob2xlIHllYXIuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9mZnNldCdzIGNvbW1vbiBuYW1lIChzdWNoIGFzIEVTVCkgYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXBcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyB0byBhZmZlY3QgdGhlIGZvcm1hdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5mb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uIEFjY2VwdHMgJ2xvbmcnIG9yICdzaG9ydCcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLmxvY2FsZSAtIFdoYXQgbG9jYWxlIHRvIHJldHVybiB0aGUgb2Zmc2V0IG5hbWUgaW4uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIG9mZnNldE5hbWUodHMsIG9wdHMpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9mZnNldCdzIHZhbHVlIGFzIGEgc3RyaW5nXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgb2Zmc2V0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBXaGF0IHN0eWxlIG9mIG9mZnNldCB0byByZXR1cm4uXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRzICduYXJyb3cnLCAnc2hvcnQnLCBvciAndGVjaGllJy4gUmV0dXJuaW5nICcrNicsICcrMDY6MDAnLCBvciAnKzA2MDAnIHJlc3BlY3RpdmVseVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvZmZzZXQgaW4gbWludXRlcyBmb3IgdGhpcyB6b25lIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBjb21wdXRlIHRoZSBvZmZzZXRcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgZXF1YWwgdG8gYW5vdGhlciB6b25lXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge1pvbmV9IG90aGVyWm9uZSAtIHRoZSB6b25lIHRvIGNvbXBhcmVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgWm9uZSBpcyB2YWxpZC5cbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbyB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBzaW5nbGV0b24gPSBudWxsO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGxvY2FsIHpvbmUgZm9yIHRoaXMgSmF2YVNjcmlwdCBlbnZpcm9ubWVudC5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTeXN0ZW1ab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGxvY2FsIHpvbmVcbiAgICogQHJldHVybiB7U3lzdGVtWm9uZX1cbiAgICovXG4gIHN0YXRpYyBnZXQgaW5zdGFuY2UoKSB7XG4gICAgaWYgKHNpbmdsZXRvbiA9PT0gbnVsbCkge1xuICAgICAgc2luZ2xldG9uID0gbmV3IFN5c3RlbVpvbmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbmdsZXRvbjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcInN5c3RlbVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGZvcm1hdE9mZnNldCh0cywgZm9ybWF0KSB7XG4gICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLm9mZnNldCh0cyksIGZvcm1hdCk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQodHMpIHtcbiAgICByZXR1cm4gLW5ldyBEYXRlKHRzKS5nZXRUaW1lem9uZU9mZnNldCgpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZXF1YWxzKG90aGVyWm9uZSkge1xuICAgIHJldHVybiBvdGhlclpvbmUudHlwZSA9PT0gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgZm9ybWF0T2Zmc2V0LCBwYXJzZVpvbmVJbmZvLCBpc1VuZGVmaW5lZCwgb2JqVG9Mb2NhbFRTIH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxubGV0IGR0ZkNhY2hlID0ge307XG5mdW5jdGlvbiBtYWtlRFRGKHpvbmUpIHtcbiAgaWYgKCFkdGZDYWNoZVt6b25lXSkge1xuICAgIGR0ZkNhY2hlW3pvbmVdID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7XG4gICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgdGltZVpvbmU6IHpvbmUsXG4gICAgICB5ZWFyOiBcIm51bWVyaWNcIixcbiAgICAgIG1vbnRoOiBcIjItZGlnaXRcIixcbiAgICAgIGRheTogXCIyLWRpZ2l0XCIsXG4gICAgICBob3VyOiBcIjItZGlnaXRcIixcbiAgICAgIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG4gICAgICBzZWNvbmQ6IFwiMi1kaWdpdFwiLFxuICAgICAgZXJhOiBcInNob3J0XCIsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGR0ZkNhY2hlW3pvbmVdO1xufVxuXG5jb25zdCB0eXBlVG9Qb3MgPSB7XG4gIHllYXI6IDAsXG4gIG1vbnRoOiAxLFxuICBkYXk6IDIsXG4gIGVyYTogMyxcbiAgaG91cjogNCxcbiAgbWludXRlOiA1LFxuICBzZWNvbmQ6IDYsXG59O1xuXG5mdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHtcbiAgY29uc3QgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cXHUyMDBFL2csIFwiXCIpLFxuICAgIHBhcnNlZCA9IC8oXFxkKylcXC8oXFxkKylcXC8oXFxkKykgKEFEfEJDKSw/IChcXGQrKTooXFxkKyk6KFxcZCspLy5leGVjKGZvcm1hdHRlZCksXG4gICAgWywgZk1vbnRoLCBmRGF5LCBmWWVhciwgZmFkT3JCYywgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdID0gcGFyc2VkO1xuICByZXR1cm4gW2ZZZWFyLCBmTW9udGgsIGZEYXksIGZhZE9yQmMsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXTtcbn1cblxuZnVuY3Rpb24gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpO1xuICBjb25zdCBmaWxsZWQgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBmb3JtYXR0ZWRbaV07XG4gICAgY29uc3QgcG9zID0gdHlwZVRvUG9zW3R5cGVdO1xuXG4gICAgaWYgKHR5cGUgPT09IFwiZXJhXCIpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQocG9zKSkge1xuICAgICAgZmlsbGVkW3Bvc10gPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmlsbGVkO1xufVxuXG5sZXQgaWFuYVpvbmVDYWNoZSA9IHt9O1xuLyoqXG4gKiBBIHpvbmUgaWRlbnRpZmllZCBieSBhbiBJQU5BIGlkZW50aWZpZXIsIGxpa2UgQW1lcmljYS9OZXdfWW9ya1xuICogQGltcGxlbWVudHMge1pvbmV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElBTkFab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFpvbmUgbmFtZVxuICAgKiBAcmV0dXJuIHtJQU5BWm9uZX1cbiAgICovXG4gIHN0YXRpYyBjcmVhdGUobmFtZSkge1xuICAgIGlmICghaWFuYVpvbmVDYWNoZVtuYW1lXSkge1xuICAgICAgaWFuYVpvbmVDYWNoZVtuYW1lXSA9IG5ldyBJQU5BWm9uZShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGlhbmFab25lQ2FjaGVbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgbG9jYWwgY2FjaGVzLiBTaG91bGQgb25seSBiZSBuZWNlc3NhcnkgaW4gdGVzdGluZyBzY2VuYXJpb3MuXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgcmVzZXRDYWNoZSgpIHtcbiAgICBpYW5hWm9uZUNhY2hlID0ge307XG4gICAgZHRmQ2FjaGUgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIHZhbGlkIHNwZWNpZmllci4gVGhpcyBvbmx5IGNoZWNrcyB0aGUgc3RyaW5nJ3MgZm9ybWF0LCBub3QgdGhhdCB0aGUgc3BlY2lmaWVyIGlkZW50aWZpZXMgYSBrbm93biB6b25lOyBzZWUgaXNWYWxpZFpvbmUgZm9yIHRoYXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIHN0cmluZyB0byBjaGVjayB2YWxpZGl0eSBvblxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkU3BlY2lmaWVyKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UgZm9yIHNvbWUgdmFsaWQgSUFOQSBuYW1lcy4gVXNlIGlzVmFsaWRab25lIGluc3RlYWQuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFNwZWNpZmllcihzKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFpvbmUocyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaWRlbnRpZmllcyBhIHJlYWwgem9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFRoZSBzdHJpbmcgdG8gY2hlY2tcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJBbWVyaWNhL05ld19Zb3JrXCIpIC8vPT4gdHJ1ZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIkZhbnRhc2lhL0Nhc3RsZVwiKSAvLz0+IGZhbHNlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiU3BvcnR+fmJsb3JwXCIpIC8vPT4gZmFsc2VcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkWm9uZSh6b25lKSB7XG4gICAgaWYgKCF6b25lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLVVTXCIsIHsgdGltZVpvbmU6IHpvbmUgfSkuZm9ybWF0KCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IobmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcml2YXRlICoqL1xuICAgIHRoaXMuem9uZU5hbWUgPSBuYW1lO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnZhbGlkID0gSUFOQVpvbmUuaXNWYWxpZFpvbmUobmFtZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJpYW5hXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy56b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKHRzLCB7IGZvcm1hdCwgbG9jYWxlIH0pIHtcbiAgICByZXR1cm4gcGFyc2Vab25lSW5mbyh0cywgZm9ybWF0LCBsb2NhbGUsIHRoaXMubmFtZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRzKTtcblxuICAgIGlmIChpc05hTihkYXRlKSkgcmV0dXJuIE5hTjtcblxuICAgIGNvbnN0IGR0ZiA9IG1ha2VEVEYodGhpcy5uYW1lKTtcbiAgICBsZXQgW3llYXIsIG1vbnRoLCBkYXksIGFkT3JCYywgaG91ciwgbWludXRlLCBzZWNvbmRdID0gZHRmLmZvcm1hdFRvUGFydHNcbiAgICAgID8gcGFydHNPZmZzZXQoZHRmLCBkYXRlKVxuICAgICAgOiBoYWNreU9mZnNldChkdGYsIGRhdGUpO1xuXG4gICAgaWYgKGFkT3JCYyA9PT0gXCJCQ1wiKSB7XG4gICAgICB5ZWFyID0gLU1hdGguYWJzKHllYXIpICsgMTtcbiAgICB9XG5cbiAgICAvLyBiZWNhdXNlIHdlJ3JlIHVzaW5nIGhvdXIxMiBhbmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTAyNTU2NCZjYW49MiZxPSUyMjI0JTNBMDAlMjIlMjBkYXRldGltZWZvcm1hdFxuICAgIGNvbnN0IGFkanVzdGVkSG91ciA9IGhvdXIgPT09IDI0ID8gMCA6IGhvdXI7XG5cbiAgICBjb25zdCBhc1VUQyA9IG9ialRvTG9jYWxUUyh7XG4gICAgICB5ZWFyLFxuICAgICAgbW9udGgsXG4gICAgICBkYXksXG4gICAgICBob3VyOiBhZGp1c3RlZEhvdXIsXG4gICAgICBtaW51dGUsXG4gICAgICBzZWNvbmQsXG4gICAgICBtaWxsaXNlY29uZDogMCxcbiAgICB9KTtcblxuICAgIGxldCBhc1RTID0gK2RhdGU7XG4gICAgY29uc3Qgb3ZlciA9IGFzVFMgJSAxMDAwO1xuICAgIGFzVFMgLT0gb3ZlciA+PSAwID8gb3ZlciA6IDEwMDAgKyBvdmVyO1xuICAgIHJldHVybiAoYXNVVEMgLSBhc1RTKSAvICg2MCAqIDEwMDApO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZXF1YWxzKG90aGVyWm9uZSkge1xuICAgIHJldHVybiBvdGhlclpvbmUudHlwZSA9PT0gXCJpYW5hXCIgJiYgb3RoZXJab25lLm5hbWUgPT09IHRoaXMubmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnZhbGlkO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgZm9ybWF0T2Zmc2V0LCBzaWduZWRPZmZzZXQgfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBBIHpvbmUgd2l0aCBhIGZpeGVkIG9mZnNldCAobWVhbmluZyBubyBEU1QpXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRml4ZWRPZmZzZXRab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgVVRDXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBnZXQgdXRjSW5zdGFuY2UoKSB7XG4gICAgaWYgKHNpbmdsZXRvbiA9PT0gbnVsbCkge1xuICAgICAgc2luZ2xldG9uID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZSgwKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbmdsZXRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBvZmZzZXRcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldCAtIFRoZSBvZmZzZXQgaW4gbWludXRlc1xuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgaW5zdGFuY2Uob2Zmc2V0KSB7XG4gICAgcmV0dXJuIG9mZnNldCA9PT0gMCA/IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZSA6IG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gaW5zdGFuY2Ugb2YgRml4ZWRPZmZzZXRab25lIGZyb20gYSBVVEMgb2Zmc2V0IHN0cmluZywgbGlrZSBcIlVUQys2XCJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHMgLSBUaGUgb2Zmc2V0IHN0cmluZyB0byBwYXJzZVxuICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoXCJVVEMrNlwiKVxuICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoXCJVVEMrMDZcIilcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDLTY6MDBcIilcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIHBhcnNlU3BlY2lmaWVyKHMpIHtcbiAgICBpZiAocykge1xuICAgICAgY29uc3QgciA9IHMubWF0Y2goL151dGMoPzooWystXVxcZHsxLDJ9KSg/OjooXFxkezJ9KSk/KT8kL2kpO1xuICAgICAgaWYgKHIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaXhlZE9mZnNldFpvbmUoc2lnbmVkT2Zmc2V0KHJbMV0sIHJbMl0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvZmZzZXQpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLmZpeGVkID0gb2Zmc2V0O1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiZml4ZWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZpeGVkID09PSAwID8gXCJVVENcIiA6IGBVVEMke2Zvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCBcIm5hcnJvd1wiKX1gO1xuICB9XG5cbiAgZ2V0IGlhbmFOYW1lKCkge1xuICAgIGlmICh0aGlzLmZpeGVkID09PSAwKSB7XG4gICAgICByZXR1cm4gXCJFdGMvVVRDXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgRXRjL0dNVCR7Zm9ybWF0T2Zmc2V0KC10aGlzLmZpeGVkLCBcIm5hcnJvd1wiKX1gO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGZvcm1hdE9mZnNldCh0cywgZm9ybWF0KSB7XG4gICAgcmV0dXJuIGZvcm1hdE9mZnNldCh0aGlzLmZpeGVkLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KCkge1xuICAgIHJldHVybiB0aGlzLmZpeGVkO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZXF1YWxzKG90aGVyWm9uZSkge1xuICAgIHJldHVybiBvdGhlclpvbmUudHlwZSA9PT0gXCJmaXhlZFwiICYmIG90aGVyWm9uZS5maXhlZCA9PT0gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCAiaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxuLyoqXG4gKiBBIHpvbmUgdGhhdCBmYWlsZWQgdG8gcGFyc2UuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGlzLlxuICogQGltcGxlbWVudHMge1pvbmV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEludmFsaWRab25lIGV4dGVuZHMgWm9uZSB7XG4gIGNvbnN0cnVjdG9yKHpvbmVOYW1lKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogIEBwcml2YXRlICovXG4gICAgdGhpcy56b25lTmFtZSA9IHpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaW52YWxpZFwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGZvcm1hdE9mZnNldCgpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gTmFOO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZXF1YWxzKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwgIi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgSW52YWxpZFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ludmFsaWRab25lLmpzXCI7XG5cbmltcG9ydCB7IGlzVW5kZWZpbmVkLCBpc1N0cmluZywgaXNOdW1iZXIgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVab25lKGlucHV0LCBkZWZhdWx0Wm9uZSkge1xuICBsZXQgb2Zmc2V0O1xuICBpZiAoaXNVbmRlZmluZWQoaW5wdXQpIHx8IGlucHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRab25lO1xuICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgWm9uZSkge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfSBlbHNlIGlmIChpc1N0cmluZyhpbnB1dCkpIHtcbiAgICBjb25zdCBsb3dlcmVkID0gaW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobG93ZXJlZCA9PT0gXCJsb2NhbFwiIHx8IGxvd2VyZWQgPT09IFwic3lzdGVtXCIpIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgICBlbHNlIGlmIChsb3dlcmVkID09PSBcInV0Y1wiIHx8IGxvd2VyZWQgPT09IFwiZ210XCIpIHJldHVybiBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2U7XG4gICAgZWxzZSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKGxvd2VyZWQpIHx8IElBTkFab25lLmNyZWF0ZShpbnB1dCk7XG4gIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShpbnB1dCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSBcIm9iamVjdFwiICYmIGlucHV0Lm9mZnNldCAmJiB0eXBlb2YgaW5wdXQub2Zmc2V0ID09PSBcIm51bWJlclwiKSB7XG4gICAgLy8gVGhpcyBpcyBkdW1iLCBidXQgdGhlIGluc3RhbmNlb2YgY2hlY2sgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHJlYWxseSB3b3JrXG4gICAgLy8gc28gd2UncmUgZHVjayBjaGVja2luZyBpdFxuICAgIHJldHVybiBpbnB1dDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEludmFsaWRab25lKGlucHV0KTtcbiAgfVxufVxuIiwgImltcG9ydCBTeXN0ZW1ab25lIGZyb20gXCIuL3pvbmVzL3N5c3RlbVpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuXG5pbXBvcnQgeyBub3JtYWxpemVab25lIH0gZnJvbSBcIi4vaW1wbC96b25lVXRpbC5qc1wiO1xuXG5sZXQgbm93ID0gKCkgPT4gRGF0ZS5ub3coKSxcbiAgZGVmYXVsdFpvbmUgPSBcInN5c3RlbVwiLFxuICBkZWZhdWx0TG9jYWxlID0gbnVsbCxcbiAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bGwsXG4gIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG51bGwsXG4gIHRocm93T25JbnZhbGlkO1xuXG4vKipcbiAqIFNldHRpbmdzIGNvbnRhaW5zIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHRoYXQgY29udHJvbCBMdXhvbidzIG92ZXJhbGwgYmVoYXZpb3IuIEx1eG9uIGlzIGEgc2ltcGxlIGxpYnJhcnkgd2l0aCBmZXcgb3B0aW9ucywgYnV0IHRoZSBvbmVzIGl0IGRvZXMgaGF2ZSBsaXZlIGhlcmUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEdldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgbm93KCkge1xuICAgIHJldHVybiBub3c7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjYWxsYmFjayBmb3IgcmV0dXJuaW5nIHRoZSBjdXJyZW50IHRpbWVzdGFtcC5cbiAgICogVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBudW1iZXIsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gRXBvY2ggbWlsbGlzZWNvbmQgY291bnRcbiAgICogQHR5cGUge2Z1bmN0aW9ufVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiBEYXRlLm5vdygpICsgMzAwMCAvLyBwcmV0ZW5kIGl0IGlzIDMgc2Vjb25kcyBpbiB0aGUgZnV0dXJlXG4gICAqIEBleGFtcGxlIFNldHRpbmdzLm5vdyA9ICgpID0+IDAgLy8gYWx3YXlzIHByZXRlbmQgaXQncyBKYW4gMSwgMTk3MCBhdCBtaWRuaWdodCBpbiBVVEMgdGltZVxuICAgKi9cbiAgc3RhdGljIHNldCBub3cobikge1xuICAgIG5vdyA9IG47XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IHRpbWUgem9uZSB0byBjcmVhdGUgRGF0ZVRpbWVzIGluLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBVc2UgdGhlIHZhbHVlIFwic3lzdGVtXCIgdG8gcmVzZXQgdGhpcyB2YWx1ZSB0byB0aGUgc3lzdGVtJ3MgdGltZSB6b25lLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIHNldCBkZWZhdWx0Wm9uZSh6b25lKSB7XG4gICAgZGVmYXVsdFpvbmUgPSB6b25lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgb2JqZWN0IGN1cnJlbnRseSB1c2VkIHRvIGNyZWF0ZSBEYXRlVGltZXMuIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUgKHRoZSBvbmUgc2V0IG9uIHRoZSBtYWNoaW5lIHRoYXQgcnVucyB0aGlzIGNvZGUpLlxuICAgKiBAdHlwZSB7Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdFpvbmUoKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVpvbmUoZGVmYXVsdFpvbmUsIFN5c3RlbVpvbmUuaW5zdGFuY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIGdldCBkZWZhdWx0TG9jYWxlKCkge1xuICAgIHJldHVybiBkZWZhdWx0TG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIHNldCBkZWZhdWx0TG9jYWxlKGxvY2FsZSkge1xuICAgIGRlZmF1bHRMb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IG51bWJlcmluZyBzeXN0ZW0gdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIGdldCBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbShudW1iZXJpbmdTeXN0ZW0pIHtcbiAgICBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtID0gbnVtYmVyaW5nU3lzdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBvdXRwdXQgY2FsZW5kYXIgdG8gY3JlYXRlIERhdGVUaW1lcyB3aXRoLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgc3RhdGljIGdldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRPdXRwdXRDYWxlbmRhcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKG91dHB1dENhbGVuZGFyKSB7XG4gICAgZGVmYXVsdE91dHB1dENhbGVuZGFyID0gb3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdoZXRoZXIgTHV4b24gd2lsbCB0aHJvdyB3aGVuIGl0IGVuY291bnRlcnMgaW52YWxpZCBEYXRlVGltZXMsIER1cmF0aW9ucywgb3IgSW50ZXJ2YWxzXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGdldCB0aHJvd09uSW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhyb3dPbkludmFsaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHdoZXRoZXIgTHV4b24gd2lsbCB0aHJvdyB3aGVuIGl0IGVuY291bnRlcnMgaW52YWxpZCBEYXRlVGltZXMsIER1cmF0aW9ucywgb3IgSW50ZXJ2YWxzXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIHNldCB0aHJvd09uSW52YWxpZCh0KSB7XG4gICAgdGhyb3dPbkludmFsaWQgPSB0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IEx1eG9uJ3MgZ2xvYmFsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGVzKCkge1xuICAgIExvY2FsZS5yZXNldENhY2hlKCk7XG4gICAgSUFOQVpvbmUucmVzZXRDYWNoZSgpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgcGFkU3RhcnQsIHJvdW5kVG8sIGhhc1JlbGF0aXZlIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0ICogYXMgRW5nbGlzaCBmcm9tIFwiLi9lbmdsaXNoLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4uL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSBcIi4uL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4uL3pvbmVzL0lBTkFab25lLmpzXCI7XG5cbi8vIHRvZG8gLSByZW1hcCBjYWNoaW5nXG5cbmxldCBpbnRsTEZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkTEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bExGQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5MaXN0Rm9ybWF0KGxvY1N0cmluZywgb3B0cyk7XG4gICAgaW50bExGQ2FjaGVba2V5XSA9IGR0ZjtcbiAgfVxuICByZXR1cm4gZHRmO1xufVxuXG5sZXQgaW50bERUQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZERURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBvcHRzXSk7XG4gIGxldCBkdGYgPSBpbnRsRFRDYWNoZVtrZXldO1xuICBpZiAoIWR0Zikge1xuICAgIGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY1N0cmluZywgb3B0cyk7XG4gICAgaW50bERUQ2FjaGVba2V5XSA9IGR0ZjtcbiAgfVxuICByZXR1cm4gZHRmO1xufVxuXG5sZXQgaW50bE51bUNhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWRJTkYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgaW5mID0gaW50bE51bUNhY2hlW2tleV07XG4gIGlmICghaW5mKSB7XG4gICAgaW5mID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY1N0cmluZywgb3B0cyk7XG4gICAgaW50bE51bUNhY2hlW2tleV0gPSBpbmY7XG4gIH1cbiAgcmV0dXJuIGluZjtcbn1cblxubGV0IGludGxSZWxDYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkUlRGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgYmFzZSwgLi4uY2FjaGVLZXlPcHRzIH0gPSBvcHRzOyAvLyBleGNsdWRlIGBiYXNlYCBmcm9tIHRoZSBvcHRpb25zXG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIGNhY2hlS2V5T3B0c10pO1xuICBsZXQgaW5mID0gaW50bFJlbENhY2hlW2tleV07XG4gIGlmICghaW5mKSB7XG4gICAgaW5mID0gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KGxvY1N0cmluZywgb3B0cyk7XG4gICAgaW50bFJlbENhY2hlW2tleV0gPSBpbmY7XG4gIH1cbiAgcmV0dXJuIGluZjtcbn1cblxubGV0IHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbmZ1bmN0aW9uIHN5c3RlbUxvY2FsZSgpIHtcbiAgaWYgKHN5c0xvY2FsZUNhY2hlKSB7XG4gICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlO1xuICB9IGVsc2Uge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7XG4gICAgcmV0dXJuIHN5c0xvY2FsZUNhY2hlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlTG9jYWxlU3RyaW5nKGxvY2FsZVN0cikge1xuICAvLyBJIHJlYWxseSB3YW50IHRvIGF2b2lkIHdyaXRpbmcgYSBCQ1AgNDcgcGFyc2VyXG4gIC8vIHNlZSwgZS5nLiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL2JjcC00N1xuICAvLyBJbnN0ZWFkLCB3ZSdsbCBkbyB0aGlzOlxuXG4gIC8vIGEpIGlmIHRoZSBzdHJpbmcgaGFzIG5vIC11IGV4dGVuc2lvbnMsIGp1c3QgbGVhdmUgaXQgYWxvbmVcbiAgLy8gYikgaWYgaXQgZG9lcywgdXNlIEludGwgdG8gcmVzb2x2ZSBldmVyeXRoaW5nXG4gIC8vIGMpIGlmIEludGwgZmFpbHMsIHRyeSBhZ2FpbiB3aXRob3V0IHRoZSAtdVxuXG4gIGNvbnN0IHVJbmRleCA9IGxvY2FsZVN0ci5pbmRleE9mKFwiLXUtXCIpO1xuICBpZiAodUluZGV4ID09PSAtMSkge1xuICAgIHJldHVybiBbbG9jYWxlU3RyXTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgb3B0aW9ucztcbiAgICBjb25zdCBzbWFsbGVyID0gbG9jYWxlU3RyLnN1YnN0cmluZygwLCB1SW5kZXgpO1xuICAgIHRyeSB7XG4gICAgICBvcHRpb25zID0gZ2V0Q2FjaGVkRFRGKGxvY2FsZVN0cikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihzbWFsbGVyKS5yZXNvbHZlZE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG51bWJlcmluZ1N5c3RlbSwgY2FsZW5kYXIgfSA9IG9wdGlvbnM7XG4gICAgLy8gcmV0dXJuIHRoZSBzbWFsbGVyIG9uZSBzbyB0aGF0IHdlIGNhbiBhcHBlbmQgdGhlIGNhbGVuZGFyIGFuZCBudW1iZXJpbmcgb3ZlcnJpZGVzIHRvIGl0XG4gICAgcmV0dXJuIFtzbWFsbGVyLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnRsQ29uZmlnU3RyaW5nKGxvY2FsZVN0ciwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikge1xuICBpZiAob3V0cHV0Q2FsZW5kYXIgfHwgbnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgbG9jYWxlU3RyICs9IFwiLXVcIjtcblxuICAgIGlmIChvdXRwdXRDYWxlbmRhcikge1xuICAgICAgbG9jYWxlU3RyICs9IGAtY2EtJHtvdXRwdXRDYWxlbmRhcn1gO1xuICAgIH1cblxuICAgIGlmIChudW1iZXJpbmdTeXN0ZW0pIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLW51LSR7bnVtYmVyaW5nU3lzdGVtfWA7XG4gICAgfVxuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxvY2FsZVN0cjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXBNb250aHMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMjsgaSsrKSB7XG4gICAgY29uc3QgZHQgPSBEYXRlVGltZS51dGMoMjAxNiwgaSwgMSk7XG4gICAgbXMucHVzaChmKGR0KSk7XG4gIH1cbiAgcmV0dXJuIG1zO1xufVxuXG5mdW5jdGlvbiBtYXBXZWVrZGF5cyhmKSB7XG4gIGNvbnN0IG1zID0gW107XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IDc7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMyArIGkpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbGlzdFN0dWZmKGxvYywgbGVuZ3RoLCBkZWZhdWx0T0ssIGVuZ2xpc2hGbiwgaW50bEZuKSB7XG4gIGNvbnN0IG1vZGUgPSBsb2MubGlzdGluZ01vZGUoZGVmYXVsdE9LKTtcblxuICBpZiAobW9kZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAobW9kZSA9PT0gXCJlblwiKSB7XG4gICAgcmV0dXJuIGVuZ2xpc2hGbihsZW5ndGgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBpbnRsRm4obGVuZ3RoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdXBwb3J0c0Zhc3ROdW1iZXJzKGxvYykge1xuICBpZiAobG9jLm51bWJlcmluZ1N5c3RlbSAmJiBsb2MubnVtYmVyaW5nU3lzdGVtICE9PSBcImxhdG5cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKFxuICAgICAgbG9jLm51bWJlcmluZ1N5c3RlbSA9PT0gXCJsYXRuXCIgfHxcbiAgICAgICFsb2MubG9jYWxlIHx8XG4gICAgICBsb2MubG9jYWxlLnN0YXJ0c1dpdGgoXCJlblwiKSB8fFxuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jLmludGwpLnJlc29sdmVkT3B0aW9ucygpLm51bWJlcmluZ1N5c3RlbSA9PT0gXCJsYXRuXCJcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5TnVtYmVyRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgZm9yY2VTaW1wbGUsIG9wdHMpIHtcbiAgICB0aGlzLnBhZFRvID0gb3B0cy5wYWRUbyB8fCAwO1xuICAgIHRoaXMuZmxvb3IgPSBvcHRzLmZsb29yIHx8IGZhbHNlO1xuXG4gICAgY29uc3QgeyBwYWRUbywgZmxvb3IsIC4uLm90aGVyT3B0cyB9ID0gb3B0cztcblxuICAgIGlmICghZm9yY2VTaW1wbGUgfHwgT2JqZWN0LmtleXMob3RoZXJPcHRzKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpbnRsT3B0cyA9IHsgdXNlR3JvdXBpbmc6IGZhbHNlLCAuLi5vcHRzIH07XG4gICAgICBpZiAob3B0cy5wYWRUbyA+IDApIGludGxPcHRzLm1pbmltdW1JbnRlZ2VyRGlnaXRzID0gb3B0cy5wYWRUbztcbiAgICAgIHRoaXMuaW5mID0gZ2V0Q2FjaGVkSU5GKGludGwsIGludGxPcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoaSkge1xuICAgIGlmICh0aGlzLmluZikge1xuICAgICAgY29uc3QgZml4ZWQgPSB0aGlzLmZsb29yID8gTWF0aC5mbG9vcihpKSA6IGk7XG4gICAgICByZXR1cm4gdGhpcy5pbmYuZm9ybWF0KGZpeGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdG8gbWF0Y2ggdGhlIGJyb3dzZXIncyBudW1iZXJmb3JtYXR0ZXIgZGVmYXVsdHNcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiByb3VuZFRvKGksIDMpO1xuICAgICAgcmV0dXJuIHBhZFN0YXJ0KGZpeGVkLCB0aGlzLnBhZFRvKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmNsYXNzIFBvbHlEYXRlRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoZHQsIGludGwsIG9wdHMpIHtcbiAgICB0aGlzLm9wdHMgPSBvcHRzO1xuXG4gICAgbGV0IHo7XG4gICAgaWYgKGR0LnpvbmUuaXNVbml2ZXJzYWwpIHtcbiAgICAgIC8vIFVUQy04IG9yIEV0Yy9VVEMtOCBhcmUgbm90IHBhcnQgb2YgdHpkYXRhLCBvbmx5IEV0Yy9HTVQrOCBhbmQgdGhlIGxpa2UuXG4gICAgICAvLyBUaGF0IGlzIHdoeSBmaXhlZC1vZmZzZXQgVFogaXMgc2V0IHRvIHRoYXQgdW5sZXNzIGl0IGlzOlxuICAgICAgLy8gMS4gUmVwcmVzZW50aW5nIG9mZnNldCAwIHdoZW4gVVRDIGlzIHVzZWQgdG8gbWFpbnRhaW4gcHJldmlvdXMgYmVoYXZpb3IgYW5kIGRvZXMgbm90IGJlY29tZSBHTVQuXG4gICAgICAvLyAyLiBVbnN1cHBvcnRlZCBieSB0aGUgYnJvd3NlcjpcbiAgICAgIC8vICAgIC0gc29tZSBkbyBub3Qgc3VwcG9ydCBFdGMvXG4gICAgICAvLyAgICAtIDwgRXRjL0dNVC0xNCwgPiBFdGMvR01UKzEyLCBhbmQgMzAtbWludXRlIG9yIDQ1LW1pbnV0ZSBvZmZzZXRzIGFyZSBub3QgcGFydCBvZiB0emRhdGFcbiAgICAgIGNvbnN0IGdtdE9mZnNldCA9IC0xICogKGR0Lm9mZnNldCAvIDYwKTtcbiAgICAgIGNvbnN0IG9mZnNldFogPSBnbXRPZmZzZXQgPj0gMCA/IGBFdGMvR01UKyR7Z210T2Zmc2V0fWAgOiBgRXRjL0dNVCR7Z210T2Zmc2V0fWA7XG4gICAgICBpZiAoZHQub2Zmc2V0ICE9PSAwICYmIElBTkFab25lLmNyZWF0ZShvZmZzZXRaKS52YWxpZCkge1xuICAgICAgICB6ID0gb2Zmc2V0WjtcbiAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm90IGFsbCBmaXhlZC1vZmZzZXQgem9uZXMgbGlrZSBFdGMvKzQ6MzAgYXJlIHByZXNlbnQgaW4gdHpkYXRhLlxuICAgICAgICAvLyBTbyB3ZSBoYXZlIHRvIG1ha2UgZG8uIFR3byBjYXNlczpcbiAgICAgICAgLy8gMS4gVGhlIGZvcm1hdCBvcHRpb25zIHRlbGwgdXMgdG8gc2hvdyB0aGUgem9uZS4gV2UgY2FuJ3QgZG8gdGhhdCwgc28gdGhlIGJlc3RcbiAgICAgICAgLy8gd2UgY2FuIGRvIGlzIGZvcm1hdCB0aGUgZGF0ZSBpbiBVVEMuXG4gICAgICAgIC8vIDIuIFRoZSBmb3JtYXQgb3B0aW9ucyBkb24ndCB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFRoZW4gd2UgY2FuIGFkanVzdCB0aGVtXG4gICAgICAgIC8vIHRoZSB0aW1lIGFuZCB0ZWxsIHRoZSBmb3JtYXR0ZXIgdG8gc2hvdyBpdCB0byB1cyBpbiBVVEMsIHNvIHRoYXQgdGhlIHRpbWUgaXMgcmlnaHRcbiAgICAgICAgLy8gYW5kIHRoZSBiYWQgem9uZSBkb2Vzbid0IHNob3cgdXAuXG4gICAgICAgIHogPSBcIlVUQ1wiO1xuICAgICAgICBpZiAob3B0cy50aW1lWm9uZU5hbWUpIHtcbiAgICAgICAgICB0aGlzLmR0ID0gZHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0Lm9mZnNldCA9PT0gMCA/IGR0IDogRGF0ZVRpbWUuZnJvbU1pbGxpcyhkdC50cyArIGR0Lm9mZnNldCAqIDYwICogMTAwMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGR0LnpvbmUudHlwZSA9PT0gXCJzeXN0ZW1cIikge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmR0ID0gZHQ7XG4gICAgICB6ID0gZHQuem9uZS5uYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IGludGxPcHRzID0geyAuLi50aGlzLm9wdHMgfTtcbiAgICBpZiAoeikge1xuICAgICAgaW50bE9wdHMudGltZVpvbmUgPSB6O1xuICAgIH1cbiAgICB0aGlzLmR0ZiA9IGdldENhY2hlZERURihpbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICBmb3JtYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdCh0aGlzLmR0LnRvSlNEYXRlKCkpO1xuICB9XG5cbiAgZm9ybWF0VG9QYXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYuZm9ybWF0VG9QYXJ0cyh0aGlzLmR0LnRvSlNEYXRlKCkpO1xuICB9XG5cbiAgcmVzb2x2ZWRPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5yZXNvbHZlZE9wdGlvbnMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFBvbHlSZWxGb3JtYXR0ZXIge1xuICBjb25zdHJ1Y3RvcihpbnRsLCBpc0VuZ2xpc2gsIG9wdHMpIHtcbiAgICB0aGlzLm9wdHMgPSB7IHN0eWxlOiBcImxvbmdcIiwgLi4ub3B0cyB9O1xuICAgIGlmICghaXNFbmdsaXNoICYmIGhhc1JlbGF0aXZlKCkpIHtcbiAgICAgIHRoaXMucnRmID0gZ2V0Q2FjaGVkUlRGKGludGwsIG9wdHMpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdChjb3VudCwgdW5pdCkge1xuICAgIGlmICh0aGlzLnJ0Zikge1xuICAgICAgcmV0dXJuIHRoaXMucnRmLmZvcm1hdChjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBFbmdsaXNoLmZvcm1hdFJlbGF0aXZlVGltZSh1bml0LCBjb3VudCwgdGhpcy5vcHRzLm51bWVyaWMsIHRoaXMub3B0cy5zdHlsZSAhPT0gXCJsb25nXCIpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxlIHtcbiAgc3RhdGljIGZyb21PcHRzKG9wdHMpIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShvcHRzLmxvY2FsZSwgb3B0cy5udW1iZXJpbmdTeXN0ZW0sIG9wdHMub3V0cHV0Q2FsZW5kYXIsIG9wdHMuZGVmYXVsdFRvRU4pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIsIGRlZmF1bHRUb0VOID0gZmFsc2UpIHtcbiAgICBjb25zdCBzcGVjaWZpZWRMb2NhbGUgPSBsb2NhbGUgfHwgU2V0dGluZ3MuZGVmYXVsdExvY2FsZTtcbiAgICAvLyB0aGUgc3lzdGVtIGxvY2FsZSBpcyB1c2VmdWwgZm9yIGh1bWFuIHJlYWRhYmxlIHN0cmluZ3MgYnV0IGFubm95aW5nIGZvciBwYXJzaW5nL2Zvcm1hdHRpbmcga25vd24gZm9ybWF0c1xuICAgIGNvbnN0IGxvY2FsZVIgPSBzcGVjaWZpZWRMb2NhbGUgfHwgKGRlZmF1bHRUb0VOID8gXCJlbi1VU1wiIDogc3lzdGVtTG9jYWxlKCkpO1xuICAgIGNvbnN0IG51bWJlcmluZ1N5c3RlbVIgPSBudW1iZXJpbmdTeXN0ZW0gfHwgU2V0dGluZ3MuZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgICBjb25zdCBvdXRwdXRDYWxlbmRhclIgPSBvdXRwdXRDYWxlbmRhciB8fCBTZXR0aW5ncy5kZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gICAgcmV0dXJuIG5ldyBMb2NhbGUobG9jYWxlUiwgbnVtYmVyaW5nU3lzdGVtUiwgb3V0cHV0Q2FsZW5kYXJSLCBzcGVjaWZpZWRMb2NhbGUpO1xuICB9XG5cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgc3lzTG9jYWxlQ2FjaGUgPSBudWxsO1xuICAgIGludGxEVENhY2hlID0ge307XG4gICAgaW50bE51bUNhY2hlID0ge307XG4gICAgaW50bFJlbENhY2hlID0ge307XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdCh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhciB9ID0ge30pIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpO1xuICB9XG5cbiAgY29uc3RydWN0b3IobG9jYWxlLCBudW1iZXJpbmcsIG91dHB1dENhbGVuZGFyLCBzcGVjaWZpZWRMb2NhbGUpIHtcbiAgICBjb25zdCBbcGFyc2VkTG9jYWxlLCBwYXJzZWROdW1iZXJpbmdTeXN0ZW0sIHBhcnNlZE91dHB1dENhbGVuZGFyXSA9IHBhcnNlTG9jYWxlU3RyaW5nKGxvY2FsZSk7XG5cbiAgICB0aGlzLmxvY2FsZSA9IHBhcnNlZExvY2FsZTtcbiAgICB0aGlzLm51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZyB8fCBwYXJzZWROdW1iZXJpbmdTeXN0ZW0gfHwgbnVsbDtcbiAgICB0aGlzLm91dHB1dENhbGVuZGFyID0gb3V0cHV0Q2FsZW5kYXIgfHwgcGFyc2VkT3V0cHV0Q2FsZW5kYXIgfHwgbnVsbDtcbiAgICB0aGlzLmludGwgPSBpbnRsQ29uZmlnU3RyaW5nKHRoaXMubG9jYWxlLCB0aGlzLm51bWJlcmluZ1N5c3RlbSwgdGhpcy5vdXRwdXRDYWxlbmRhcik7XG5cbiAgICB0aGlzLndlZWtkYXlzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tb250aHNDYWNoZSA9IHsgZm9ybWF0OiB7fSwgc3RhbmRhbG9uZToge30gfTtcbiAgICB0aGlzLm1lcmlkaWVtQ2FjaGUgPSBudWxsO1xuICAgIHRoaXMuZXJhQ2FjaGUgPSB7fTtcblxuICAgIHRoaXMuc3BlY2lmaWVkTG9jYWxlID0gc3BlY2lmaWVkTG9jYWxlO1xuICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGZhc3ROdW1iZXJzKCkge1xuICAgIGlmICh0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID09IG51bGwpIHtcbiAgICAgIHRoaXMuZmFzdE51bWJlcnNDYWNoZWQgPSBzdXBwb3J0c0Zhc3ROdW1iZXJzKHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkO1xuICB9XG5cbiAgbGlzdGluZ01vZGUoKSB7XG4gICAgY29uc3QgaXNBY3R1YWxseUVuID0gdGhpcy5pc0VuZ2xpc2goKTtcbiAgICBjb25zdCBoYXNOb1dlaXJkbmVzcyA9XG4gICAgICAodGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG51bGwgfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiKSAmJlxuICAgICAgKHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IG51bGwgfHwgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gXCJncmVnb3J5XCIpO1xuICAgIHJldHVybiBpc0FjdHVhbGx5RW4gJiYgaGFzTm9XZWlyZG5lc3MgPyBcImVuXCIgOiBcImludGxcIjtcbiAgfVxuXG4gIGNsb25lKGFsdHMpIHtcbiAgICBpZiAoIWFsdHMgfHwgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYWx0cykubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIExvY2FsZS5jcmVhdGUoXG4gICAgICAgIGFsdHMubG9jYWxlIHx8IHRoaXMuc3BlY2lmaWVkTG9jYWxlLFxuICAgICAgICBhbHRzLm51bWJlcmluZ1N5c3RlbSB8fCB0aGlzLm51bWJlcmluZ1N5c3RlbSxcbiAgICAgICAgYWx0cy5vdXRwdXRDYWxlbmRhciB8fCB0aGlzLm91dHB1dENhbGVuZGFyLFxuICAgICAgICBhbHRzLmRlZmF1bHRUb0VOIHx8IGZhbHNlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJlZGVmYXVsdFRvRU4oYWx0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoeyAuLi5hbHRzLCBkZWZhdWx0VG9FTjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlZGVmYXVsdFRvU3lzdGVtKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IGZhbHNlIH0pO1xuICB9XG5cbiAgbW9udGhzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLm1vbnRocywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IGZvcm1hdCA/IHsgbW9udGg6IGxlbmd0aCwgZGF5OiBcIm51bWVyaWNcIiB9IDogeyBtb250aDogbGVuZ3RoIH0sXG4gICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/IFwiZm9ybWF0XCIgOiBcInN0YW5kYWxvbmVcIjtcbiAgICAgIGlmICghdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5tb250aHNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0gPSBtYXBNb250aHMoKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwibW9udGhcIikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgd2Vla2RheXMobGVuZ3RoLCBmb3JtYXQgPSBmYWxzZSwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2gud2Vla2RheXMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXRcbiAgICAgICAgICA/IHsgd2Vla2RheTogbGVuZ3RoLCB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH1cbiAgICAgICAgICA6IHsgd2Vla2RheTogbGVuZ3RoIH0sXG4gICAgICAgIGZvcm1hdFN0ciA9IGZvcm1hdCA/IFwiZm9ybWF0XCIgOiBcInN0YW5kYWxvbmVcIjtcbiAgICAgIGlmICghdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSkge1xuICAgICAgICB0aGlzLndlZWtkYXlzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwV2Vla2RheXMoKGR0KSA9PlxuICAgICAgICAgIHRoaXMuZXh0cmFjdChkdCwgaW50bCwgXCJ3ZWVrZGF5XCIpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIG1lcmlkaWVtcyhkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZihcbiAgICAgIHRoaXMsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0T0ssXG4gICAgICAoKSA9PiBFbmdsaXNoLm1lcmlkaWVtcyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gSW4gdGhlb3J5IHRoZXJlIGNvdWxkIGJlIGFyaWJpdHJhcnkgZGF5IHBlcmlvZHMuIFdlJ3JlIGdvbm5hIGFzc3VtZSB0aGVyZSBhcmUgZXhhY3RseSB0d29cbiAgICAgICAgLy8gZm9yIEFNIGFuZCBQTS4gVGhpcyBpcyBwcm9iYWJseSB3cm9uZywgYnV0IGl0J3MgbWFrZXMgcGFyc2luZyB3YXkgZWFzaWVyLlxuICAgICAgICBpZiAoIXRoaXMubWVyaWRpZW1DYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGludGwgPSB7IGhvdXI6IFwibnVtZXJpY1wiLCBob3VyQ3ljbGU6IFwiaDEyXCIgfTtcbiAgICAgICAgICB0aGlzLm1lcmlkaWVtQ2FjaGUgPSBbRGF0ZVRpbWUudXRjKDIwMTYsIDExLCAxMywgOSksIERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDE5KV0ubWFwKFxuICAgICAgICAgICAgKGR0KSA9PiB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwiZGF5cGVyaW9kXCIpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1lcmlkaWVtQ2FjaGU7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGVyYXMobGVuZ3RoLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5lcmFzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0geyBlcmE6IGxlbmd0aCB9O1xuXG4gICAgICAvLyBUaGlzIGlzIHByb2JsZW1hdGljLiBEaWZmZXJlbnQgY2FsZW5kYXJzIGFyZSBnb2luZyB0byBkZWZpbmUgZXJhcyB0b3RhbGx5IGRpZmZlcmVudGx5LiBXaGF0IEkgbmVlZCBpcyB0aGUgbWluaW11bSBzZXQgb2YgZGF0ZXNcbiAgICAgIC8vIHRvIGRlZmluaXRlbHkgZW51bWVyYXRlIHRoZW0uXG4gICAgICBpZiAoIXRoaXMuZXJhQ2FjaGVbbGVuZ3RoXSkge1xuICAgICAgICB0aGlzLmVyYUNhY2hlW2xlbmd0aF0gPSBbRGF0ZVRpbWUudXRjKC00MCwgMSwgMSksIERhdGVUaW1lLnV0YygyMDE3LCAxLCAxKV0ubWFwKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwiZXJhXCIpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmVyYUNhY2hlW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBleHRyYWN0KGR0LCBpbnRsT3B0cywgZmllbGQpIHtcbiAgICBjb25zdCBkZiA9IHRoaXMuZHRGb3JtYXR0ZXIoZHQsIGludGxPcHRzKSxcbiAgICAgIHJlc3VsdHMgPSBkZi5mb3JtYXRUb1BhcnRzKCksXG4gICAgICBtYXRjaGluZyA9IHJlc3VsdHMuZmluZCgobSkgPT4gbS50eXBlLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkKTtcbiAgICByZXR1cm4gbWF0Y2hpbmcgPyBtYXRjaGluZy52YWx1ZSA6IG51bGw7XG4gIH1cblxuICBudW1iZXJGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgLy8gdGhpcyBmb3JjZXNpbXBsZSBvcHRpb24gaXMgbmV2ZXIgdXNlZCAodGhlIG9ubHkgY2FsbGVyIHNob3J0LWNpcmN1aXRzIG9uIGl0LCBidXQgaXQgc2VlbXMgc2FmZXIgdG8gbGVhdmUpXG4gICAgLy8gKGluIGNvbnRyYXN0LCB0aGUgcmVzdCBvZiB0aGUgY29uZGl0aW9uIGlzIHVzZWQgaGVhdmlseSlcbiAgICByZXR1cm4gbmV3IFBvbHlOdW1iZXJGb3JtYXR0ZXIodGhpcy5pbnRsLCBvcHRzLmZvcmNlU2ltcGxlIHx8IHRoaXMuZmFzdE51bWJlcnMsIG9wdHMpO1xuICB9XG5cbiAgZHRGb3JtYXR0ZXIoZHQsIGludGxPcHRzID0ge30pIHtcbiAgICByZXR1cm4gbmV3IFBvbHlEYXRlRm9ybWF0dGVyKGR0LCB0aGlzLmludGwsIGludGxPcHRzKTtcbiAgfVxuXG4gIHJlbEZvcm1hdHRlcihvcHRzID0ge30pIHtcbiAgICByZXR1cm4gbmV3IFBvbHlSZWxGb3JtYXR0ZXIodGhpcy5pbnRsLCB0aGlzLmlzRW5nbGlzaCgpLCBvcHRzKTtcbiAgfVxuXG4gIGxpc3RGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIGdldENhY2hlZExGKHRoaXMuaW50bCwgb3B0cyk7XG4gIH1cblxuICBpc0VuZ2xpc2goKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubG9jYWxlID09PSBcImVuXCIgfHxcbiAgICAgIHRoaXMubG9jYWxlLnRvTG93ZXJDYXNlKCkgPT09IFwiZW4tdXNcIiB8fFxuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGUuc3RhcnRzV2l0aChcImVuLXVzXCIpXG4gICAgKTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gb3RoZXIubG9jYWxlICYmXG4gICAgICB0aGlzLm51bWJlcmluZ1N5c3RlbSA9PT0gb3RoZXIubnVtYmVyaW5nU3lzdGVtICYmXG4gICAgICB0aGlzLm91dHB1dENhbGVuZGFyID09PSBvdGhlci5vdXRwdXRDYWxlbmRhclxuICAgICk7XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICB1bnRydW5jYXRlWWVhcixcbiAgc2lnbmVkT2Zmc2V0LFxuICBwYXJzZUludGVnZXIsXG4gIHBhcnNlTWlsbGlzLFxuICBpYW5hUmVnZXgsXG4gIGlzVW5kZWZpbmVkLFxuICBwYXJzZUZsb2F0aW5nXG59IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4uL3pvbmVzL0lBTkFab25lLmpzXCI7XG5cbi8qXG4gKiBUaGlzIGZpbGUgaGFuZGxlcyBwYXJzaW5nIGZvciB3ZWxsLXNwZWNpZmllZCBmb3JtYXRzLiBIZXJlJ3MgaG93IGl0IHdvcmtzOlxuICogVHdvIHRoaW5ncyBnbyBpbnRvIHBhcnNpbmc6IGEgcmVnZXggdG8gbWF0Y2ggd2l0aCBhbmQgYW4gZXh0cmFjdG9yIHRvIHRha2UgYXBhcnQgdGhlIGdyb3VwcyBpbiB0aGUgbWF0Y2guXG4gKiBBbiBleHRyYWN0b3IgaXMganVzdCBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSByZWdleCBtYXRjaCBhcnJheSBhbmQgcmV0dXJucyBhIHsgeWVhcjogLi4uLCBtb250aDogLi4uIH0gb2JqZWN0XG4gKiBwYXJzZSgpIGRvZXMgdGhlIHdvcmsgb2YgZXhlY3V0aW5nIHRoZSByZWdleCBhbmQgYXBwbHlpbmcgdGhlIGV4dHJhY3Rvci4gSXQgdGFrZXMgbXVsdGlwbGUgcmVnZXgvZXh0cmFjdG9yIHBhaXJzIHRvIHRyeSBpbiBzZXF1ZW5jZS5cbiAqIEV4dHJhY3RvcnMgY2FuIHRha2UgYSBcImN1cnNvclwiIHJlcHJlc2VudGluZyB0aGUgb2Zmc2V0IGluIHRoZSBtYXRjaCB0byBsb29rIGF0LiBUaGlzIG1ha2VzIGl0IGVhc3kgdG8gY29tYmluZSBleHRyYWN0b3JzLlxuICogY29tYmluZUV4dHJhY3RvcnMoKSBkb2VzIHRoZSB3b3JrIG9mIGNvbWJpbmluZyB0aGVtLCBrZWVwaW5nIHRyYWNrIG9mIHRoZSBjdXJzb3IgdGhyb3VnaCBtdWx0aXBsZSBleHRyYWN0aW9ucy5cbiAqIFNvbWUgZXh0cmFjdGlvbnMgYXJlIHN1cGVyIGR1bWIgYW5kIHNpbXBsZVBhcnNlIGFuZCBmcm9tU3RyaW5ncyBoZWxwIERSWSB0aGVtLlxuICovXG5cbmZ1bmN0aW9uIGNvbWJpbmVSZWdleGVzKC4uLnJlZ2V4ZXMpIHtcbiAgY29uc3QgZnVsbCA9IHJlZ2V4ZXMucmVkdWNlKChmLCByKSA9PiBmICsgci5zb3VyY2UsIFwiXCIpO1xuICByZXR1cm4gUmVnRXhwKGBeJHtmdWxsfSRgKTtcbn1cblxuZnVuY3Rpb24gY29tYmluZUV4dHJhY3RvcnMoLi4uZXh0cmFjdG9ycykge1xuICByZXR1cm4gbSA9PlxuICAgIGV4dHJhY3RvcnNcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChbbWVyZ2VkVmFscywgbWVyZ2VkWm9uZSwgY3Vyc29yXSwgZXgpID0+IHtcbiAgICAgICAgICBjb25zdCBbdmFsLCB6b25lLCBuZXh0XSA9IGV4KG0sIGN1cnNvcik7XG4gICAgICAgICAgcmV0dXJuIFt7IC4uLm1lcmdlZFZhbHMsIC4uLnZhbCB9LCB6b25lIHx8IG1lcmdlZFpvbmUsIG5leHRdO1xuICAgICAgICB9LFxuICAgICAgICBbe30sIG51bGwsIDFdXG4gICAgICApXG4gICAgICAuc2xpY2UoMCwgMik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlKHMsIC4uLnBhdHRlcm5zKSB7XG4gIGlmIChzID09IG51bGwpIHtcbiAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICB9XG5cbiAgZm9yIChjb25zdCBbcmVnZXgsIGV4dHJhY3Rvcl0gb2YgcGF0dGVybnMpIHtcbiAgICBjb25zdCBtID0gcmVnZXguZXhlYyhzKTtcbiAgICBpZiAobSkge1xuICAgICAgcmV0dXJuIGV4dHJhY3RvcihtKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtudWxsLCBudWxsXTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlUGFyc2UoLi4ua2V5cykge1xuICByZXR1cm4gKG1hdGNoLCBjdXJzb3IpID0+IHtcbiAgICBjb25zdCByZXQgPSB7fTtcbiAgICBsZXQgaTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXRba2V5c1tpXV0gPSBwYXJzZUludGVnZXIobWF0Y2hbY3Vyc29yICsgaV0pO1xuICAgIH1cbiAgICByZXR1cm4gW3JldCwgbnVsbCwgY3Vyc29yICsgaV07XG4gIH07XG59XG5cbi8vIElTTyBhbmQgU1FMIHBhcnNpbmdcbmNvbnN0IG9mZnNldFJlZ2V4ID0gLyg/OihaKXwoWystXVxcZFxcZCkoPzo6PyhcXGRcXGQpKT8pLztcbmNvbnN0IGlzb0V4dGVuZGVkWm9uZSA9IGAoPzoke29mZnNldFJlZ2V4LnNvdXJjZX0/KD86XFxcXFsoJHtpYW5hUmVnZXguc291cmNlfSlcXFxcXSk/KT9gO1xuY29uc3QgaXNvVGltZUJhc2VSZWdleCA9IC8oXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Wy4sXShcXGR7MSwzMH0pKT8pPyk/LztcbmNvbnN0IGlzb1RpbWVSZWdleCA9IFJlZ0V4cChgJHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0ke2lzb0V4dGVuZGVkWm9uZX1gKTtcbmNvbnN0IGlzb1RpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86VCR7aXNvVGltZVJlZ2V4LnNvdXJjZX0pP2ApO1xuY29uc3QgaXNvWW1kUmVnZXggPSAvKFsrLV1cXGR7Nn18XFxkezR9KSg/Oi0/KFxcZFxcZCkoPzotPyhcXGRcXGQpKT8pPy87XG5jb25zdCBpc29XZWVrUmVnZXggPSAvKFxcZHs0fSktP1coXFxkXFxkKSg/Oi0/KFxcZCkpPy87XG5jb25zdCBpc29PcmRpbmFsUmVnZXggPSAvKFxcZHs0fSktPyhcXGR7M30pLztcbmNvbnN0IGV4dHJhY3RJU09XZWVrRGF0YSA9IHNpbXBsZVBhcnNlKFwid2Vla1llYXJcIiwgXCJ3ZWVrTnVtYmVyXCIsIFwid2Vla0RheVwiKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0YSA9IHNpbXBsZVBhcnNlKFwieWVhclwiLCBcIm9yZGluYWxcIik7XG5jb25zdCBzcWxZbWRSZWdleCA9IC8oXFxkezR9KS0oXFxkXFxkKS0oXFxkXFxkKS87IC8vIGR1bWJlZC1kb3duIHZlcnNpb24gb2YgdGhlIElTTyBvbmVcbmNvbnN0IHNxbFRpbWVSZWdleCA9IFJlZ0V4cChcbiAgYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9ID8oPzoke29mZnNldFJlZ2V4LnNvdXJjZX18KCR7aWFuYVJlZ2V4LnNvdXJjZX0pKT9gXG4pO1xuY29uc3Qgc3FsVGltZUV4dGVuc2lvblJlZ2V4ID0gUmVnRXhwKGAoPzogJHtzcWxUaW1lUmVnZXguc291cmNlfSk/YCk7XG5cbmZ1bmN0aW9uIGludChtYXRjaCwgcG9zLCBmYWxsYmFjaykge1xuICBjb25zdCBtID0gbWF0Y2hbcG9zXTtcbiAgcmV0dXJuIGlzVW5kZWZpbmVkKG0pID8gZmFsbGJhY2sgOiBwYXJzZUludGVnZXIobSk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJU09ZbWQobWF0Y2gsIGN1cnNvcikge1xuICBjb25zdCBpdGVtID0ge1xuICAgIHllYXI6IGludChtYXRjaCwgY3Vyc29yKSxcbiAgICBtb250aDogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAxKSxcbiAgICBkYXk6IGludChtYXRjaCwgY3Vyc29yICsgMiwgMSlcbiAgfTtcblxuICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDNdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPVGltZShtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgaG91cnM6IGludChtYXRjaCwgY3Vyc29yLCAwKSxcbiAgICBtaW51dGVzOiBpbnQobWF0Y2gsIGN1cnNvciArIDEsIDApLFxuICAgIHNlY29uZHM6IGludChtYXRjaCwgY3Vyc29yICsgMiwgMCksXG4gICAgbWlsbGlzZWNvbmRzOiBwYXJzZU1pbGxpcyhtYXRjaFtjdXJzb3IgKyAzXSlcbiAgfTtcblxuICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDRdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPT2Zmc2V0KG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3QgbG9jYWwgPSAhbWF0Y2hbY3Vyc29yXSAmJiAhbWF0Y2hbY3Vyc29yICsgMV0sXG4gICAgZnVsbE9mZnNldCA9IHNpZ25lZE9mZnNldChtYXRjaFtjdXJzb3IgKyAxXSwgbWF0Y2hbY3Vyc29yICsgMl0pLFxuICAgIHpvbmUgPSBsb2NhbCA/IG51bGwgOiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoZnVsbE9mZnNldCk7XG4gIHJldHVybiBbe30sIHpvbmUsIGN1cnNvciArIDNdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SUFOQVpvbmUobWF0Y2gsIGN1cnNvcikge1xuICBjb25zdCB6b25lID0gbWF0Y2hbY3Vyc29yXSA/IElBTkFab25lLmNyZWF0ZShtYXRjaFtjdXJzb3JdKSA6IG51bGw7XG4gIHJldHVybiBbe30sIHpvbmUsIGN1cnNvciArIDFdO1xufVxuXG4vLyBJU08gdGltZSBwYXJzaW5nXG5cbmNvbnN0IGlzb1RpbWVPbmx5ID0gUmVnRXhwKGBeVD8ke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSRgKTtcblxuLy8gSVNPIGR1cmF0aW9uIHBhcnNpbmdcblxuY29uc3QgaXNvRHVyYXRpb24gPSAvXi0/UCg/Oig/OigtP1xcZHsxLDIwfSg/OlxcLlxcZHsxLDIwfSk/KVkpPyg/OigtP1xcZHsxLDIwfSg/OlxcLlxcZHsxLDIwfSk/KU0pPyg/OigtP1xcZHsxLDIwfSg/OlxcLlxcZHsxLDIwfSk/KVcpPyg/OigtP1xcZHsxLDIwfSg/OlxcLlxcZHsxLDIwfSk/KUQpPyg/OlQoPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylIKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylNKT8oPzooLT9cXGR7MSwyMH0pKD86Wy4sXSgtP1xcZHsxLDIwfSkpP1MpPyk/KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0SVNPRHVyYXRpb24obWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgIHMsXG4gICAgeWVhclN0cixcbiAgICBtb250aFN0cixcbiAgICB3ZWVrU3RyLFxuICAgIGRheVN0cixcbiAgICBob3VyU3RyLFxuICAgIG1pbnV0ZVN0cixcbiAgICBzZWNvbmRTdHIsXG4gICAgbWlsbGlzZWNvbmRzU3RyXG4gIF0gPSBtYXRjaDtcblxuICBjb25zdCBoYXNOZWdhdGl2ZVByZWZpeCA9IHNbMF0gPT09IFwiLVwiO1xuICBjb25zdCBuZWdhdGl2ZVNlY29uZHMgPSBzZWNvbmRTdHIgJiYgc2Vjb25kU3RyWzBdID09PSBcIi1cIjtcblxuICBjb25zdCBtYXliZU5lZ2F0ZSA9IChudW0sIGZvcmNlID0gZmFsc2UpID0+XG4gICAgbnVtICE9PSB1bmRlZmluZWQgJiYgKGZvcmNlIHx8IChudW0gJiYgaGFzTmVnYXRpdmVQcmVmaXgpKSA/IC1udW0gOiBudW07XG5cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB5ZWFyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh5ZWFyU3RyKSksXG4gICAgICBtb250aHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobW9udGhTdHIpKSxcbiAgICAgIHdlZWtzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHdlZWtTdHIpKSxcbiAgICAgIGRheXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoZGF5U3RyKSksXG4gICAgICBob3VyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhob3VyU3RyKSksXG4gICAgICBtaW51dGVzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1pbnV0ZVN0cikpLFxuICAgICAgc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhzZWNvbmRTdHIpLCBzZWNvbmRTdHIgPT09IFwiLTBcIiksXG4gICAgICBtaWxsaXNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlTWlsbGlzKG1pbGxpc2Vjb25kc1N0ciksIG5lZ2F0aXZlU2Vjb25kcylcbiAgICB9XG4gIF07XG59XG5cbi8vIFRoZXNlIGFyZSBhIGxpdHRsZSBicmFpbmRlYWQuIEVEVCAqc2hvdWxkKiB0ZWxsIHVzIHRoYXQgd2UncmUgaW4sIHNheSwgQW1lcmljYS9OZXdfWW9ya1xuLy8gYW5kIG5vdCBqdXN0IHRoYXQgd2UncmUgaW4gLTI0MCAqcmlnaHQgbm93Ki4gQnV0IHNpbmNlIEkgZG9uJ3QgdGhpbmsgdGhlc2UgYXJlIHVzZWQgdGhhdCBvZnRlblxuLy8gSSdtIGp1c3QgZ29pbmcgdG8gaWdub3JlIHRoYXRcbmNvbnN0IG9ic09mZnNldHMgPSB7XG4gIEdNVDogMCxcbiAgRURUOiAtNCAqIDYwLFxuICBFU1Q6IC01ICogNjAsXG4gIENEVDogLTUgKiA2MCxcbiAgQ1NUOiAtNiAqIDYwLFxuICBNRFQ6IC02ICogNjAsXG4gIE1TVDogLTcgKiA2MCxcbiAgUERUOiAtNyAqIDYwLFxuICBQU1Q6IC04ICogNjBcbn07XG5cbmZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB5ZWFyOiB5ZWFyU3RyLmxlbmd0aCA9PT0gMiA/IHVudHJ1bmNhdGVZZWFyKHBhcnNlSW50ZWdlcih5ZWFyU3RyKSkgOiBwYXJzZUludGVnZXIoeWVhclN0ciksXG4gICAgbW9udGg6IEVuZ2xpc2gubW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0cikgKyAxLFxuICAgIGRheTogcGFyc2VJbnRlZ2VyKGRheVN0ciksXG4gICAgaG91cjogcGFyc2VJbnRlZ2VyKGhvdXJTdHIpLFxuICAgIG1pbnV0ZTogcGFyc2VJbnRlZ2VyKG1pbnV0ZVN0cilcbiAgfTtcblxuICBpZiAoc2Vjb25kU3RyKSByZXN1bHQuc2Vjb25kID0gcGFyc2VJbnRlZ2VyKHNlY29uZFN0cik7XG4gIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgcmVzdWx0LndlZWtkYXkgPVxuICAgICAgd2Vla2RheVN0ci5sZW5ndGggPiAzXG4gICAgICAgID8gRW5nbGlzaC53ZWVrZGF5c0xvbmcuaW5kZXhPZih3ZWVrZGF5U3RyKSArIDFcbiAgICAgICAgOiBFbmdsaXNoLndlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKSArIDE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBSRkMgMjgyMi81MzIyXG5jb25zdCByZmMyODIyID0gL14oPzooTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSxcXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KD86KFsrLV1cXGRcXGQpKFxcZFxcZCkpKSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0UkZDMjgyMihtYXRjaCkge1xuICBjb25zdCBbXG4gICAgICAsXG4gICAgICB3ZWVrZGF5U3RyLFxuICAgICAgZGF5U3RyLFxuICAgICAgbW9udGhTdHIsXG4gICAgICB5ZWFyU3RyLFxuICAgICAgaG91clN0cixcbiAgICAgIG1pbnV0ZVN0cixcbiAgICAgIHNlY29uZFN0cixcbiAgICAgIG9ic09mZnNldCxcbiAgICAgIG1pbE9mZnNldCxcbiAgICAgIG9mZkhvdXJTdHIsXG4gICAgICBvZmZNaW51dGVTdHJcbiAgICBdID0gbWF0Y2gsXG4gICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpO1xuXG4gIGxldCBvZmZzZXQ7XG4gIGlmIChvYnNPZmZzZXQpIHtcbiAgICBvZmZzZXQgPSBvYnNPZmZzZXRzW29ic09mZnNldF07XG4gIH0gZWxzZSBpZiAobWlsT2Zmc2V0KSB7XG4gICAgb2Zmc2V0ID0gMDtcbiAgfSBlbHNlIHtcbiAgICBvZmZzZXQgPSBzaWduZWRPZmZzZXQob2ZmSG91clN0ciwgb2ZmTWludXRlU3RyKTtcbiAgfVxuXG4gIHJldHVybiBbcmVzdWx0LCBuZXcgRml4ZWRPZmZzZXRab25lKG9mZnNldCldO1xufVxuXG5mdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7XG4gIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gIHJldHVybiBzXG4gICAgLnJlcGxhY2UoL1xcKFteKCldKlxcKXxbXFxuXFx0XS9nLCBcIiBcIilcbiAgICAucmVwbGFjZSgvKFxcc1xccyspL2csIFwiIFwiKVxuICAgIC50cmltKCk7XG59XG5cbi8vIGh0dHAgZGF0ZVxuXG5jb25zdCByZmMxMTIzID0gL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSwgKFxcZFxcZCkgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoXFxkezR9KSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgcmZjODUwID0gL14oTW9uZGF5fFR1ZXNkYXl8V2VkbmVzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXFxkXFxkKS0oSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpLShcXGRcXGQpIChcXGRcXGQpOihcXGRcXGQpOihcXGRcXGQpIEdNVCQvLFxuICBhc2NpaSA9IC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1bikgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoIFxcZHxcXGRcXGQpIChcXGRcXGQpOihcXGRcXGQpOihcXGRcXGQpIChcXGR7NH0pJC87XG5cbmZ1bmN0aW9uIGV4dHJhY3RSRkMxMTIzT3I4NTAobWF0Y2gpIHtcbiAgY29uc3QgWywgd2Vla2RheVN0ciwgZGF5U3RyLCBtb250aFN0ciwgeWVhclN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHJdID0gbWF0Y2gsXG4gICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpO1xuICByZXR1cm4gW3Jlc3VsdCwgRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFTQ0lJKG1hdGNoKSB7XG4gIGNvbnN0IFssIHdlZWtkYXlTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyLCB5ZWFyU3RyXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcbiAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07XG59XG5cbmNvbnN0IGlzb1ltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29ZbWRSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvV2Vla1JlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvT3JkaW5hbFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29PcmRpbmFsUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29UaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1RpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoXG4gIGV4dHJhY3RJU09ZbWQsXG4gIGV4dHJhY3RJU09UaW1lLFxuICBleHRyYWN0SVNPT2Zmc2V0LFxuICBleHRyYWN0SUFOQVpvbmVcbik7XG5jb25zdCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1dlZWtEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZSA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPT3JkaW5hbERhdGEsXG4gIGV4dHJhY3RJU09UaW1lLFxuICBleHRyYWN0SVNPT2Zmc2V0LFxuICBleHRyYWN0SUFOQVpvbmVcbik7XG5jb25zdCBleHRyYWN0SVNPVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuXG4vKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09EYXRlKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW2lzb1ltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSxcbiAgICBbaXNvV2Vla1dpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09XZWVrVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPT3JkaW5hbERhdGVBbmRUaW1lXSxcbiAgICBbaXNvVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0XVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSRkMyODIyRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShwcmVwcm9jZXNzUkZDMjgyMihzKSwgW3JmYzI4MjIsIGV4dHJhY3RSRkMyODIyXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUhUVFBEYXRlKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3JmYzExMjMsIGV4dHJhY3RSRkMxMTIzT3I4NTBdLFxuICAgIFtyZmM4NTAsIGV4dHJhY3RSRkMxMTIzT3I4NTBdLFxuICAgIFthc2NpaSwgZXh0cmFjdEFTQ0lJXVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09EdXJhdGlvbihzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvRHVyYXRpb24sIGV4dHJhY3RJU09EdXJhdGlvbl0pO1xufVxuXG5jb25zdCBleHRyYWN0SVNPVGltZU9ubHkgPSBjb21iaW5lRXh0cmFjdG9ycyhleHRyYWN0SVNPVGltZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlTT1RpbWVPbmx5KHMpIHtcbiAgcmV0dXJuIHBhcnNlKHMsIFtpc29UaW1lT25seSwgZXh0cmFjdElTT1RpbWVPbmx5XSk7XG59XG5cbmNvbnN0IHNxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhzcWxZbWRSZWdleCwgc3FsVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IHNxbFRpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsVGltZVJlZ2V4KTtcblxuY29uc3QgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZSA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTUUwocykge1xuICByZXR1cm4gcGFyc2UoXG4gICAgcyxcbiAgICBbc3FsWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT1ltZFRpbWVBbmRPZmZzZXRdLFxuICAgIFtzcWxUaW1lQ29tYmluZWRSZWdleCwgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZV1cbiAgKTtcbn1cbiIsICJpbXBvcnQgeyBJbnZhbGlkQXJndW1lbnRFcnJvciwgSW52YWxpZER1cmF0aW9uRXJyb3IsIEludmFsaWRVbml0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ltcGwvaW52YWxpZC5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VJU09EdXJhdGlvbiwgcGFyc2VJU09UaW1lT25seSB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7XG4gIGFzTnVtYmVyLFxuICBoYXNPd25Qcm9wZXJ0eSxcbiAgaXNOdW1iZXIsXG4gIGlzVW5kZWZpbmVkLFxuICBub3JtYWxpemVPYmplY3QsXG4gIHJvdW5kVG8sXG59IGZyb20gXCIuL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgRHVyYXRpb25cIjtcblxuLy8gdW5pdCBjb252ZXJzaW9uIGNvbnN0YW50c1xuZXhwb3J0IGNvbnN0IGxvd09yZGVyTWF0cml4ID0ge1xuICAgIHdlZWtzOiB7XG4gICAgICBkYXlzOiA3LFxuICAgICAgaG91cnM6IDcgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDcgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogNyAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogNyAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBkYXlzOiB7XG4gICAgICBob3VyczogMjQsXG4gICAgICBtaW51dGVzOiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgaG91cnM6IHsgbWludXRlczogNjAsIHNlY29uZHM6IDYwICogNjAsIG1pbGxpc2Vjb25kczogNjAgKiA2MCAqIDEwMDAgfSxcbiAgICBtaW51dGVzOiB7IHNlY29uZHM6IDYwLCBtaWxsaXNlY29uZHM6IDYwICogMTAwMCB9LFxuICAgIHNlY29uZHM6IHsgbWlsbGlzZWNvbmRzOiAxMDAwIH0sXG4gIH0sXG4gIGNhc3VhbE1hdHJpeCA9IHtcbiAgICB5ZWFyczoge1xuICAgICAgcXVhcnRlcnM6IDQsXG4gICAgICBtb250aHM6IDEyLFxuICAgICAgd2Vla3M6IDUyLFxuICAgICAgZGF5czogMzY1LFxuICAgICAgaG91cnM6IDM2NSAqIDI0LFxuICAgICAgbWludXRlczogMzY1ICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDM2NSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMzY1ICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIHF1YXJ0ZXJzOiB7XG4gICAgICBtb250aHM6IDMsXG4gICAgICB3ZWVrczogMTMsXG4gICAgICBkYXlzOiA5MSxcbiAgICAgIGhvdXJzOiA5MSAqIDI0LFxuICAgICAgbWludXRlczogOTEgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIG1vbnRoczoge1xuICAgICAgd2Vla3M6IDQsXG4gICAgICBkYXlzOiAzMCxcbiAgICAgIGhvdXJzOiAzMCAqIDI0LFxuICAgICAgbWludXRlczogMzAgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuXG4gICAgLi4ubG93T3JkZXJNYXRyaXgsXG4gIH0sXG4gIGRheXNJblllYXJBY2N1cmF0ZSA9IDE0NjA5Ny4wIC8gNDAwLFxuICBkYXlzSW5Nb250aEFjY3VyYXRlID0gMTQ2MDk3LjAgLyA0ODAwLFxuICBhY2N1cmF0ZU1hdHJpeCA9IHtcbiAgICB5ZWFyczoge1xuICAgICAgcXVhcnRlcnM6IDQsXG4gICAgICBtb250aHM6IDEyLFxuICAgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDcsXG4gICAgICBkYXlzOiBkYXlzSW5ZZWFyQWNjdXJhdGUsXG4gICAgICBob3VyczogZGF5c0luWWVhckFjY3VyYXRlICogMjQsXG4gICAgICBtaW51dGVzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgcXVhcnRlcnM6IHtcbiAgICAgIG1vbnRoczogMyxcbiAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyAyOCxcbiAgICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSAvIDQsXG4gICAgICBob3VyczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0KSAvIDQsXG4gICAgICBtaW51dGVzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCkgLyA0LFxuICAgICAgc2Vjb25kczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCkgLyA0LFxuICAgICAgbWlsbGlzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCkgLyA0LFxuICAgIH0sXG4gICAgbW9udGhzOiB7XG4gICAgICB3ZWVrczogZGF5c0luTW9udGhBY2N1cmF0ZSAvIDcsXG4gICAgICBkYXlzOiBkYXlzSW5Nb250aEFjY3VyYXRlLFxuICAgICAgaG91cnM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICAuLi5sb3dPcmRlck1hdHJpeCxcbiAgfTtcblxuLy8gdW5pdHMgb3JkZXJlZCBieSBzaXplXG5jb25zdCBvcmRlcmVkVW5pdHMgPSBbXG4gIFwieWVhcnNcIixcbiAgXCJxdWFydGVyc1wiLFxuICBcIm1vbnRoc1wiLFxuICBcIndlZWtzXCIsXG4gIFwiZGF5c1wiLFxuICBcImhvdXJzXCIsXG4gIFwibWludXRlc1wiLFxuICBcInNlY29uZHNcIixcbiAgXCJtaWxsaXNlY29uZHNcIixcbl07XG5cbmNvbnN0IHJldmVyc2VVbml0cyA9IG9yZGVyZWRVbml0cy5zbGljZSgwKS5yZXZlcnNlKCk7XG5cbi8vIGNsb25lIHJlYWxseSBtZWFucyBcImNyZWF0ZSBhbm90aGVyIGluc3RhbmNlIGp1c3QgbGlrZSB0aGlzIG9uZSwgYnV0IHdpdGggdGhlc2UgY2hhbmdlc1wiXG5mdW5jdGlvbiBjbG9uZShkdXIsIGFsdHMsIGNsZWFyID0gZmFsc2UpIHtcbiAgLy8gZGVlcCBtZXJnZSBmb3IgdmFsc1xuICBjb25zdCBjb25mID0ge1xuICAgIHZhbHVlczogY2xlYXIgPyBhbHRzLnZhbHVlcyA6IHsgLi4uZHVyLnZhbHVlcywgLi4uKGFsdHMudmFsdWVzIHx8IHt9KSB9LFxuICAgIGxvYzogZHVyLmxvYy5jbG9uZShhbHRzLmxvYyksXG4gICAgY29udmVyc2lvbkFjY3VyYWN5OiBhbHRzLmNvbnZlcnNpb25BY2N1cmFjeSB8fCBkdXIuY29udmVyc2lvbkFjY3VyYWN5LFxuICB9O1xuICByZXR1cm4gbmV3IER1cmF0aW9uKGNvbmYpO1xufVxuXG5mdW5jdGlvbiBhbnRpVHJ1bmMobikge1xuICByZXR1cm4gbiA8IDAgPyBNYXRoLmZsb29yKG4pIDogTWF0aC5jZWlsKG4pO1xufVxuXG4vLyBOQjogbXV0YXRlcyBwYXJhbWV0ZXJzXG5mdW5jdGlvbiBjb252ZXJ0KG1hdHJpeCwgZnJvbU1hcCwgZnJvbVVuaXQsIHRvTWFwLCB0b1VuaXQpIHtcbiAgY29uc3QgY29udiA9IG1hdHJpeFt0b1VuaXRdW2Zyb21Vbml0XSxcbiAgICByYXcgPSBmcm9tTWFwW2Zyb21Vbml0XSAvIGNvbnYsXG4gICAgc2FtZVNpZ24gPSBNYXRoLnNpZ24ocmF3KSA9PT0gTWF0aC5zaWduKHRvTWFwW3RvVW5pdF0pLFxuICAgIC8vIG9rLCBzbyB0aGlzIGlzIHdpbGQsIGJ1dCBzZWUgdGhlIG1hdHJpeCBpbiB0aGUgdGVzdHNcbiAgICBhZGRlZCA9XG4gICAgICAhc2FtZVNpZ24gJiYgdG9NYXBbdG9Vbml0XSAhPT0gMCAmJiBNYXRoLmFicyhyYXcpIDw9IDEgPyBhbnRpVHJ1bmMocmF3KSA6IE1hdGgudHJ1bmMocmF3KTtcbiAgdG9NYXBbdG9Vbml0XSArPSBhZGRlZDtcbiAgZnJvbU1hcFtmcm9tVW5pdF0gLT0gYWRkZWQgKiBjb252O1xufVxuXG4vLyBOQjogbXV0YXRlcyBwYXJhbWV0ZXJzXG5mdW5jdGlvbiBub3JtYWxpemVWYWx1ZXMobWF0cml4LCB2YWxzKSB7XG4gIHJldmVyc2VVbml0cy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgaWYgKCFpc1VuZGVmaW5lZCh2YWxzW2N1cnJlbnRdKSkge1xuICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgIGNvbnZlcnQobWF0cml4LCB2YWxzLCBwcmV2aW91cywgdmFscywgY3VycmVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgIH1cbiAgfSwgbnVsbCk7XG59XG5cbi8qKlxuICogQSBEdXJhdGlvbiBvYmplY3QgcmVwcmVzZW50cyBhIHBlcmlvZCBvZiB0aW1lLCBsaWtlIFwiMiBtb250aHNcIiBvciBcIjEgZGF5LCAxIGhvdXJcIi4gQ29uY2VwdHVhbGx5LCBpdCdzIGp1c3QgYSBtYXAgb2YgdW5pdHMgdG8gdGhlaXIgcXVhbnRpdGllcywgYWNjb21wYW5pZWQgYnkgc29tZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gYW5kIG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uIFRoZXkgY2FuIGJlIHVzZWQgb24gdGhlaXIgb3duIG9yIGluIGNvbmp1bmN0aW9uIHdpdGggb3RoZXIgTHV4b24gdHlwZXM7IGZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSB7QGxpbmsgRGF0ZVRpbWUjcGx1c30gdG8gYWRkIGEgRHVyYXRpb24gb2JqZWN0IHRvIGEgRGF0ZVRpbWUsIHByb2R1Y2luZyBhbm90aGVyIERhdGVUaW1lLlxuICpcbiAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiBjb21tb25seSB1c2VkIG1ldGhvZHMgYW5kIGdldHRlcnMgaW4gRHVyYXRpb246XG4gKlxuICogKiAqKkNyZWF0aW9uKiogVG8gY3JlYXRlIGEgRHVyYXRpb24sIHVzZSB7QGxpbmsgRHVyYXRpb24jZnJvbU1pbGxpc30sIHtAbGluayBEdXJhdGlvbiNmcm9tT2JqZWN0fSwgb3Ige0BsaW5rIER1cmF0aW9uI2Zyb21JU099LlxuICogKiAqKlVuaXQgdmFsdWVzKiogU2VlIHRoZSB7QGxpbmsgRHVyYXRpb24jeWVhcnN9LCB7QGxpbmsgRHVyYXRpb24jbW9udGhzfSwge0BsaW5rIER1cmF0aW9uI3dlZWtzfSwge0BsaW5rIER1cmF0aW9uI2RheXN9LCB7QGxpbmsgRHVyYXRpb24jaG91cnN9LCB7QGxpbmsgRHVyYXRpb24jbWludXRlc30sIHtAbGluayBEdXJhdGlvbiNzZWNvbmRzfSwge0BsaW5rIER1cmF0aW9uI21pbGxpc2Vjb25kc30gYWNjZXNzb3JzLlxuICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgIHtAbGluayBEdXJhdGlvbiNsb2NhbGV9IGFuZCB7QGxpbmsgRHVyYXRpb24jbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgbmV3IER1cmF0aW9ucyBvdXQgb2Ygb2xkIG9uZXMgdXNlIHtAbGluayBEdXJhdGlvbiNwbHVzfSwge0BsaW5rIER1cmF0aW9uI21pbnVzfSwge0BsaW5rIER1cmF0aW9uI25vcm1hbGl6ZX0sIHtAbGluayBEdXJhdGlvbiNzZXR9LCB7QGxpbmsgRHVyYXRpb24jcmVjb25maWd1cmV9LCB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30sIGFuZCB7QGxpbmsgRHVyYXRpb24jbmVnYXRlfS5cbiAqICogKipPdXRwdXQqKiBUbyBjb252ZXJ0IHRoZSBEdXJhdGlvbiBpbnRvIG90aGVyIHJlcHJlc2VudGF0aW9ucywgc2VlIHtAbGluayBEdXJhdGlvbiNhc30sIHtAbGluayBEdXJhdGlvbiN0b0lTT30sIHtAbGluayBEdXJhdGlvbiN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgRHVyYXRpb24jdG9KU09OfVxuICpcbiAqIFRoZXJlJ3MgYXJlIG1vcmUgbWV0aG9kcyBkb2N1bWVudGVkIGJlbG93LiBJbiBhZGRpdGlvbiwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gc3VidGxlciB0b3BpY3MgbGlrZSBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgdmFsaWRpdHksIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHVyYXRpb24ge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIGNvbnN0IGFjY3VyYXRlID0gY29uZmlnLmNvbnZlcnNpb25BY2N1cmFjeSA9PT0gXCJsb25ndGVybVwiIHx8IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMudmFsdWVzID0gY29uZmlnLnZhbHVlcztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuY29udmVyc2lvbkFjY3VyYWN5ID0gYWNjdXJhdGUgPyBcImxvbmd0ZXJtXCIgOiBcImNhc3VhbFwiO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5tYXRyaXggPSBhY2N1cmF0ZSA/IGFjY3VyYXRlTWF0cml4IDogY2FzdWFsTWF0cml4O1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkR1cmF0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRHVyYXRpb24gZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudCBvZiBtaWxsaXNlY29uZHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21NaWxsaXMoY291bnQsIG9wdHMpIHtcbiAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbGxpc2Vjb25kczogY291bnQgfSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuXG4gICAqIElmIHRoaXMgb2JqZWN0IGlzIGVtcHR5IHRoZW4gYSB6ZXJvIG1pbGxpc2Vjb25kcyBkdXJhdGlvbiBpcyByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gY3JlYXRlIHRoZSBEYXRlVGltZSBmcm9tXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhcnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5xdWFydGVyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1vbnRoc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLndlZWtzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5c1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmhvdXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWludXRlc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taWxsaXNlY29uZHNcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPVtdXSAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbU9iamVjdChvYmosIG9wdHMgPSB7fSkge1xuICAgIGlmIChvYmogPT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBEdXJhdGlvbi5mcm9tT2JqZWN0OiBhcmd1bWVudCBleHBlY3RlZCB0byBiZSBhbiBvYmplY3QsIGdvdCAke1xuICAgICAgICAgIG9iaiA9PT0gbnVsbCA/IFwibnVsbFwiIDogdHlwZW9mIG9ialxuICAgICAgICB9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IER1cmF0aW9uKHtcbiAgICAgIHZhbHVlczogbm9ybWFsaXplT2JqZWN0KG9iaiwgRHVyYXRpb24ubm9ybWFsaXplVW5pdCksXG4gICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdHMpLFxuICAgICAgY29udmVyc2lvbkFjY3VyYWN5OiBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIER1cmF0aW9uTGlrZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QgfCBudW1iZXIgfCBEdXJhdGlvbn0gZHVyYXRpb25MaWtlXG4gICAqIE9uZSBvZjpcbiAgICogLSBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy5cbiAgICogLSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbGxpc2Vjb25kc1xuICAgKiAtIER1cmF0aW9uIGluc3RhbmNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb25MaWtlKSB7XG4gICAgaWYgKGlzTnVtYmVyKGR1cmF0aW9uTGlrZSkpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tTWlsbGlzKGR1cmF0aW9uTGlrZSk7XG4gICAgfSBlbHNlIGlmIChEdXJhdGlvbi5pc0R1cmF0aW9uKGR1cmF0aW9uTGlrZSkpIHtcbiAgICAgIHJldHVybiBkdXJhdGlvbkxpa2U7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZHVyYXRpb25MaWtlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChkdXJhdGlvbkxpa2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBVbmtub3duIGR1cmF0aW9uIGFyZ3VtZW50ICR7ZHVyYXRpb25MaWtlfSBvZiB0eXBlICR7dHlwZW9mIGR1cmF0aW9uTGlrZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGFuIElTTyA4NjAxIGR1cmF0aW9uIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0ZXh0IHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQM1k2TTFXNERUMTJIMzBNNVMnKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMywgbW9udGhzOiA2LCB3ZWVrczogMSwgZGF5czogNCwgaG91cnM6IDEyLCBtaW51dGVzOiAzMCwgc2Vjb25kczogNSB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1BUMjNIJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDIzIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDVZM00nKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogNSwgbW9udGhzOiAzIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3BhcnNlZF0gPSBwYXJzZUlTT0R1cmF0aW9uKHRleHQpO1xuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwidW5wYXJzYWJsZVwiLCBgdGhlIGlucHV0IFwiJHt0ZXh0fVwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGFuIElTTyA4NjAxIHRpbWUgc3RyaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjIyOjMzLjQ0NCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMjIsIHNlY29uZHM6IDMzLCBtaWxsaXNlY29uZHM6IDQ0NCB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCdUMTEwMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21JU09UaW1lKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcGFyc2VkXSA9IHBhcnNlSVNPVGltZU9ubHkodGV4dCk7XG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QocGFyc2VkLCBvcHRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnZhbGlkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBkYXRldGltZSBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb25cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkge1xuICAgIGlmICghcmVhc29uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIER1cmF0aW9uIGlzIGludmFsaWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTtcblxuICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWREdXJhdGlvbkVycm9yKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IER1cmF0aW9uKHsgaW52YWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHN0YXRpYyBub3JtYWxpemVVbml0KHVuaXQpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgICAgeWVhcjogXCJ5ZWFyc1wiLFxuICAgICAgeWVhcnM6IFwieWVhcnNcIixcbiAgICAgIHF1YXJ0ZXI6IFwicXVhcnRlcnNcIixcbiAgICAgIHF1YXJ0ZXJzOiBcInF1YXJ0ZXJzXCIsXG4gICAgICBtb250aDogXCJtb250aHNcIixcbiAgICAgIG1vbnRoczogXCJtb250aHNcIixcbiAgICAgIHdlZWs6IFwid2Vla3NcIixcbiAgICAgIHdlZWtzOiBcIndlZWtzXCIsXG4gICAgICBkYXk6IFwiZGF5c1wiLFxuICAgICAgZGF5czogXCJkYXlzXCIsXG4gICAgICBob3VyOiBcImhvdXJzXCIsXG4gICAgICBob3VyczogXCJob3Vyc1wiLFxuICAgICAgbWludXRlOiBcIm1pbnV0ZXNcIixcbiAgICAgIG1pbnV0ZXM6IFwibWludXRlc1wiLFxuICAgICAgc2Vjb25kOiBcInNlY29uZHNcIixcbiAgICAgIHNlY29uZHM6IFwic2Vjb25kc1wiLFxuICAgICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRzXCIsXG4gICAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRzXCIsXG4gICAgfVt1bml0ID8gdW5pdC50b0xvd2VyQ2FzZSgpIDogdW5pdF07XG5cbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpO1xuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGEgRHVyYXRpb24uIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0R1cmF0aW9uKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRHVyYXRpb24pIHx8IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCAgdGhlIGxvY2FsZSBvZiBhIER1cmF0aW9uLCBzdWNoICdlbi1HQidcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLmxvY2FsZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRHVyYXRpb25cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBudW1iZXJpbmdTeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLiBZb3UgbWF5IHVzZSB0aGVzZSB0b2tlbnM6XG4gICAqICogYFNgIGZvciBtaWxsaXNlY29uZHNcbiAgICogKiBgc2AgZm9yIHNlY29uZHNcbiAgICogKiBgbWAgZm9yIG1pbnV0ZXNcbiAgICogKiBgaGAgZm9yIGhvdXJzXG4gICAqICogYGRgIGZvciBkYXlzXG4gICAqICogYHdgIGZvciB3ZWVrc1xuICAgKiAqIGBNYCBmb3IgbW9udGhzXG4gICAqICogYHlgIGZvciB5ZWFyc1xuICAgKiBOb3RlczpcbiAgICogKiBBZGQgcGFkZGluZyBieSByZXBlYXRpbmcgdGhlIHRva2VuLCBlLmcuIFwieXlcIiBwYWRzIHRoZSB5ZWFycyB0byB0d28gZGlnaXRzLCBcImhoaGhcIiBwYWRzIHRoZSBob3VycyBvdXQgdG8gZm91ciBkaWdpdHNcbiAgICogKiBUb2tlbnMgY2FuIGJlIGVzY2FwZWQgYnkgd3JhcHBpbmcgd2l0aCBzaW5nbGUgcXVvdGVzLlxuICAgKiAqIFRoZSBkdXJhdGlvbiB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgc2V0IG9mIHVuaXRzIGluIHRoZSBmb3JtYXQgc3RyaW5nIHVzaW5nIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSBhbmQgdGhlIER1cmF0aW9ucydzIGNvbnZlcnNpb24gYWNjdXJhY3kgc2V0dGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgc3RyaW5nXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsb29yPXRydWVdIC0gZmxvb3IgbnVtZXJpY2FsIHZhbHVlc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoXCJ5IGQgc1wiKSAvLz0+IFwiMSA2IDJcIlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoXCJ5eSBkZCBzc3NcIikgLy89PiBcIjAxIDA2IDAwMlwiXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdChcIk0gU1wiKSAvLz0+IFwiMTIgNTE4NDAyMDAwXCJcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9Gb3JtYXQoZm10LCBvcHRzID0ge30pIHtcbiAgICAvLyByZXZlcnNlLWNvbXBhdCBzaW5jZSAxLjI7IHdlIGFsd2F5cyByb3VuZCBkb3duIG5vdywgbmV2ZXIgdXAsIGFuZCB3ZSBkbyBpdCBieSBkZWZhdWx0XG4gICAgY29uc3QgZm10T3B0cyA9IHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICBmbG9vcjogb3B0cy5yb3VuZCAhPT0gZmFsc2UgJiYgb3B0cy5mbG9vciAhPT0gZmFsc2UsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MsIGZtdE9wdHMpLmZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyh0aGlzLCBmbXQpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIER1cmF0aW9uIHdpdGggYWxsIHVuaXRzIGluY2x1ZGVkLlxuICAgKiBUbyBtb2RpZnkgaXRzIGJlaGF2aW9yIHVzZSB0aGUgYGxpc3RTdHlsZWAgYW5kIGFueSBJbnRsLk51bWJlckZvcm1hdCBvcHRpb24sIHRob3VnaCBgdW5pdERpc3BsYXlgIGlzIGVzcGVjaWFsbHkgcmVsZXZhbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9OdW1iZXJGb3JtYXRcbiAgICogQHBhcmFtIG9wdHMgLSBPbiBvcHRpb24gb2JqZWN0IHRvIG92ZXJyaWRlIHRoZSBmb3JtYXR0aW5nLiBBY2NlcHRzIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIG9mIHRoZSBuYXRpdmUgYEludC5OdW1iZXJGb3JtYXRgIGNvbnN0cnVjdG9yLCBhcyB3ZWxsIGFzIGBsaXN0U3R5bGVgLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBqc1xuICAgKiB2YXIgZHVyID0gRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEsIGhvdXJzOiA1LCBtaW51dGVzOiA2IH0pXG4gICAqIGR1ci50b0h1bWFuKCkgLy89PiAnMSBkYXksIDUgaG91cnMsIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyBsaXN0U3R5bGU6IFwibG9uZ1wiIH0pIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCBhbmQgNiBtaW51dGVzJ1xuICAgKiBkdXIudG9IdW1hbih7IHVuaXREaXNwbGF5OiBcInNob3J0XCIgfSkgLy89PiAnMSBkYXksIDUgaHIsIDYgbWluJ1xuICAgKiBgYGBcbiAgICovXG4gIHRvSHVtYW4ob3B0cyA9IHt9KSB7XG4gICAgY29uc3QgbCA9IG9yZGVyZWRVbml0c1xuICAgICAgLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlc1t1bml0XTtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2NcbiAgICAgICAgICAubnVtYmVyRm9ybWF0dGVyKHsgc3R5bGU6IFwidW5pdFwiLCB1bml0RGlzcGxheTogXCJsb25nXCIsIC4uLm9wdHMsIHVuaXQ6IHVuaXQuc2xpY2UoMCwgLTEpIH0pXG4gICAgICAgICAgLmZvcm1hdCh2YWwpO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKG4pID0+IG4pO1xuXG4gICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAubGlzdEZvcm1hdHRlcih7IHR5cGU6IFwiY29uanVuY3Rpb25cIiwgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8IFwibmFycm93XCIsIC4uLm9wdHMgfSlcbiAgICAgIC5mb3JtYXQobCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEdXJhdGlvbidzIHZhbHVlcy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3QoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcbiAgICByZXR1cm4geyAuLi50aGlzLnZhbHVlcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDMsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDNZVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNCwgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQNE1UNDVTJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiA1IH0pLnRvSVNPKCkgLy89PiAnUDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogNSB9KS50b0lTTygpIC8vPT4gJ1BUNU0nXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDYgfSkudG9JU08oKSAvLz0+ICdQVDAuMDA2UydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08oKSB7XG4gICAgLy8gd2UgY291bGQgdXNlIHRoZSBmb3JtYXR0ZXIsIGJ1dCB0aGlzIGlzIGFuIGVhc2llciB3YXkgdG8gZ2V0IHRoZSBtaW5pbXVtIHN0cmluZ1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzID0gXCJQXCI7XG4gICAgaWYgKHRoaXMueWVhcnMgIT09IDApIHMgKz0gdGhpcy55ZWFycyArIFwiWVwiO1xuICAgIGlmICh0aGlzLm1vbnRocyAhPT0gMCB8fCB0aGlzLnF1YXJ0ZXJzICE9PSAwKSBzICs9IHRoaXMubW9udGhzICsgdGhpcy5xdWFydGVycyAqIDMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy53ZWVrcyAhPT0gMCkgcyArPSB0aGlzLndlZWtzICsgXCJXXCI7XG4gICAgaWYgKHRoaXMuZGF5cyAhPT0gMCkgcyArPSB0aGlzLmRheXMgKyBcIkRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCB8fCB0aGlzLm1pbnV0ZXMgIT09IDAgfHwgdGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgcyArPSBcIlRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCkgcyArPSB0aGlzLmhvdXJzICsgXCJIXCI7XG4gICAgaWYgKHRoaXMubWludXRlcyAhPT0gMCkgcyArPSB0aGlzLm1pbnV0ZXMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgLy8gdGhpcyB3aWxsIGhhbmRsZSBcImZsb2F0aW5nIHBvaW50IG1hZG5lc3NcIiBieSByZW1vdmluZyBleHRyYSBkZWNpbWFsIHBsYWNlc1xuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTg4MDA0L2lzLWZsb2F0aW5nLXBvaW50LW1hdGgtYnJva2VuXG4gICAgICBzICs9IHJvdW5kVG8odGhpcy5zZWNvbmRzICsgdGhpcy5taWxsaXNlY29uZHMgLyAxMDAwLCAzKSArIFwiU1wiO1xuICAgIGlmIChzID09PSBcIlBcIikgcyArPSBcIlQwU1wiO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLCBmb3JtYXR0ZWQgYXMgYSB0aW1lIG9mIGRheS5cbiAgICogTm90ZSB0aGF0IHRoaXMgd2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgZHVyYXRpb24gaXMgaW52YWxpZCwgbmVnYXRpdmUsIG9yIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAyNCBob3Vycy5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSgpIC8vPT4gJzExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc01pbGxpc2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMDowMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMTE6MDA6MDAuMDAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxMTAwMDAuMDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbWlsbGlzID0gdGhpcy50b01pbGxpcygpO1xuICAgIGlmIChtaWxsaXMgPCAwIHx8IG1pbGxpcyA+PSA4NjQwMDAwMCkgcmV0dXJuIG51bGw7XG5cbiAgICBvcHRzID0ge1xuICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHM6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NTZWNvbmRzOiBmYWxzZSxcbiAgICAgIGluY2x1ZGVQcmVmaXg6IGZhbHNlLFxuICAgICAgZm9ybWF0OiBcImV4dGVuZGVkXCIsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2hpZnRUbyhcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIiwgXCJtaWxsaXNlY29uZHNcIik7XG5cbiAgICBsZXQgZm10ID0gb3B0cy5mb3JtYXQgPT09IFwiYmFzaWNcIiA/IFwiaGhtbVwiIDogXCJoaDptbVwiO1xuXG4gICAgaWYgKCFvcHRzLnN1cHByZXNzU2Vjb25kcyB8fCB2YWx1ZS5zZWNvbmRzICE9PSAwIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgZm10ICs9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcInNzXCIgOiBcIjpzc1wiO1xuICAgICAgaWYgKCFvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgICBmbXQgKz0gXCIuU1NTXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHN0ciA9IHZhbHVlLnRvRm9ybWF0KGZtdCk7XG5cbiAgICBpZiAob3B0cy5pbmNsdWRlUHJlZml4KSB7XG4gICAgICBzdHIgPSBcIlRcIiArIHN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0lTTygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5hcyhcIm1pbGxpc2Vjb25kc1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLiBBbGlhcyBvZiB7QGxpbmsgdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoaXMgRHVyYXRpb24gbG9uZ2VyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHBsdXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGR1ci52YWx1ZXMsIGspIHx8IGhhc093blByb3BlcnR5KHRoaXMudmFsdWVzLCBrKSkge1xuICAgICAgICByZXN1bHRba10gPSBkdXIuZ2V0KGspICsgdGhpcy5nZXQoayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIHNob3J0ZXIgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBtaW51cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiB0aGlzLnBsdXMoZHVyLm5lZ2F0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB1bml0LiBBcml0eSBpcyAxIG9yIDI6IHRoZSB2YWx1ZSBvZiB0aGUgdW5pdCBhbmQsIG9wdGlvbmFsbHksIHRoZSB1bml0IG5hbWUuIE11c3QgcmV0dXJuIGEgbnVtYmVyLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKHggPT4geCAqIDIpIC8vPT4geyBob3VyczogMiwgbWludXRlczogNjAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSBcImhvdXJcIiA/IHggKiAyIDogeCkgLy89PiB7IGhvdXJzOiAyLCBtaW51dGVzOiAzMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWFwVW5pdHMoZm4pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCd5ZWFycycpIC8vPT4gMlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnbW9udGhzJykgLy89PiAwXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCdkYXlzJykgLy89PiAzXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1bml0KV07XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVyc1xuICAgKiBAZXhhbXBsZSBkdXIuc2V0KHsgeWVhcnM6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IGhvdXJzOiA4LCBtaW51dGVzOiAzMCB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBtaXhlZCA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLm5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpIH07XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBtaXhlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUgYW5kL29yIG51bWJlcmluZ1N5c3RlbS4gIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgZHVyLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgY29udmVyc2lvbkFjY3VyYWN5IH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0gfSksXG4gICAgICBvcHRzID0geyBsb2MgfTtcblxuICAgIGlmIChjb252ZXJzaW9uQWNjdXJhY3kpIHtcbiAgICAgIG9wdHMuY29udmVyc2lvbkFjY3VyYWN5ID0gY29udmVyc2lvbkFjY3VyYWN5O1xuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZHVyYXRpb24gaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGVzJyBvciAnZGF5cydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnZGF5cycpIC8vPT4gMzY1XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ21vbnRocycpIC8vPT4gMTJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7aG91cnM6IDYwfSkuYXMoJ2RheXMnKSAvLz0+IDIuNVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBhcyh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuc2hpZnRUbyh1bml0KS5nZXQodW5pdCkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmVkdWNlIHRoaXMgRHVyYXRpb24gdG8gaXRzIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiBpbiBpdHMgY3VycmVudCB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAyLCBkYXlzOiA1MDAwIH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxNSwgZGF5czogMjU1IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMiwgbWludXRlczogLTQ1IH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMTUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5vcm1hbGl6ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudG9PYmplY3QoKTtcbiAgICBub3JtYWxpemVWYWx1ZXModGhpcy5tYXRyaXgsIHZhbHMpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgRHVyYXRpb24gaW50byBpdHMgcmVwcmVzZW50YXRpb24gaW4gYSBkaWZmZXJlbnQgc2V0IG9mIHVuaXRzLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIHNlY29uZHM6IDMwIH0pLnNoaWZ0VG8oJ21pbnV0ZXMnLCAnbWlsbGlzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgbWludXRlczogNjAsIG1pbGxpc2Vjb25kczogMzAwMDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNoaWZ0VG8oLi4udW5pdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAodW5pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1bml0cyA9IHVuaXRzLm1hcCgodSkgPT4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KSk7XG5cbiAgICBjb25zdCBidWlsdCA9IHt9LFxuICAgICAgYWNjdW11bGF0ZWQgPSB7fSxcbiAgICAgIHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbGV0IGxhc3RVbml0O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKHVuaXRzLmluZGV4T2YoaykgPj0gMCkge1xuICAgICAgICBsYXN0VW5pdCA9IGs7XG5cbiAgICAgICAgbGV0IG93biA9IDA7XG5cbiAgICAgICAgLy8gYW55dGhpbmcgd2UgaGF2ZW4ndCBib2lsZWQgZG93biB5ZXQgc2hvdWxkIGdldCBib2lsZWQgdG8gdGhpcyB1bml0XG4gICAgICAgIGZvciAoY29uc3QgYWsgaW4gYWNjdW11bGF0ZWQpIHtcbiAgICAgICAgICBvd24gKz0gdGhpcy5tYXRyaXhbYWtdW2tdICogYWNjdW11bGF0ZWRbYWtdO1xuICAgICAgICAgIGFjY3VtdWxhdGVkW2FrXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwbHVzIGFueXRoaW5nIHRoYXQncyBhbHJlYWR5IGluIHRoaXMgdW5pdFxuICAgICAgICBpZiAoaXNOdW1iZXIodmFsc1trXSkpIHtcbiAgICAgICAgICBvd24gKz0gdmFsc1trXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLnRydW5jKG93bik7XG4gICAgICAgIGJ1aWx0W2tdID0gaTtcbiAgICAgICAgYWNjdW11bGF0ZWRba10gPSAob3duICogMTAwMCAtIGkgKiAxMDAwKSAvIDEwMDA7XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyBmdXJ0aGVyIGRvd24gdGhlIGNoYWluIHRoYXQgc2hvdWxkIGJlIHJvbGxlZCB1cCBpbiB0byB0aGlzXG4gICAgICAgIGZvciAoY29uc3QgZG93biBpbiB2YWxzKSB7XG4gICAgICAgICAgaWYgKG9yZGVyZWRVbml0cy5pbmRleE9mKGRvd24pID4gb3JkZXJlZFVuaXRzLmluZGV4T2YoaykpIHtcbiAgICAgICAgICAgIGNvbnZlcnQodGhpcy5tYXRyaXgsIHZhbHMsIGRvd24sIGJ1aWx0LCBrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyXG4gICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gdmFsc1trXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbnl0aGluZyBsZWZ0b3ZlciBiZWNvbWVzIHRoZSBkZWNpbWFsIGZvciB0aGUgbGFzdCB1bml0XG4gICAgLy8gbGFzdFVuaXQgbXVzdCBiZSBkZWZpbmVkIHNpbmNlIHVuaXRzIGlzIG5vdCBlbXB0eVxuICAgIGZvciAoY29uc3Qga2V5IGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICBpZiAoYWNjdW11bGF0ZWRba2V5XSAhPT0gMCkge1xuICAgICAgICBidWlsdFtsYXN0VW5pdF0gKz1cbiAgICAgICAgICBrZXkgPT09IGxhc3RVbml0ID8gYWNjdW11bGF0ZWRba2V5XSA6IGFjY3VtdWxhdGVkW2tleV0gLyB0aGlzLm1hdHJpeFtsYXN0VW5pdF1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IGJ1aWx0IH0sIHRydWUpLm5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbmVnYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBuZWdhdGVkID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgbmVnYXRlZFtrXSA9IHRoaXMudmFsdWVzW2tdID09PSAwID8gMCA6IC10aGlzLnZhbHVlc1trXTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBuZWdhdGVkIH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnllYXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVycy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBxdWFydGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMucXVhcnRlcnMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRocy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtb250aHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1vbnRocyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2Vla3NcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMud2Vla3MgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheXMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5cygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuZGF5cyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91cnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmhvdXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGVzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbnV0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbnV0ZXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5zZWNvbmRzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBtaWxsaXNlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbGxpc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgRHVyYXRpb24gaXMgaW52YWxpZC4gSW52YWxpZCBkdXJhdGlvbnMgYXJlIHJldHVybmVkIGJ5IGRpZmYgb3BlcmF0aW9uc1xuICAgKiBvbiBpbnZhbGlkIERhdGVUaW1lcyBvciBJbnRlcnZhbHMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIER1cmF0aW9uIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEdXJhdGlvbiBpcyB2YWxpZFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRXF1YWxpdHkgY2hlY2tcbiAgICogVHdvIER1cmF0aW9ucyBhcmUgZXF1YWwgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSB1bml0cyBhbmQgdGhlIHNhbWUgdmFsdWVzIGZvciBlYWNoIHVuaXQuXG4gICAqIEBwYXJhbSB7RHVyYXRpb259IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXIuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5sb2MuZXF1YWxzKG90aGVyLmxvYykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcSh2MSwgdjIpIHtcbiAgICAgIC8vIENvbnNpZGVyIDAgYW5kIHVuZGVmaW5lZCBhcyBlcXVhbFxuICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQgfHwgdjEgPT09IDApIHJldHVybiB2MiA9PT0gdW5kZWZpbmVkIHx8IHYyID09PSAwO1xuICAgICAgcmV0dXJuIHYxID09PSB2MjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHUgb2Ygb3JkZXJlZFVuaXRzKSB7XG4gICAgICBpZiAoIWVxKHRoaXMudmFsdWVzW3VdLCBvdGhlci52YWx1ZXNbdV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsICJpbXBvcnQgRGF0ZVRpbWUsIHsgZnJpZW5kbHlEYXRlVGltZSB9IGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWRJbnRlcnZhbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBJbnRlcnZhbFwiO1xuXG4vLyBjaGVja3MgaWYgdGhlIHN0YXJ0IGlzIGVxdWFsIHRvIG9yIGJlZm9yZSB0aGUgZW5kXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXJ0RW5kKHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCB8fCAhc3RhcnQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIHN0YXJ0XCIpO1xuICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJtaXNzaW5nIG9yIGludmFsaWQgZW5kXCIpO1xuICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXG4gICAgICBcImVuZCBiZWZvcmUgc3RhcnRcIixcbiAgICAgIGBUaGUgZW5kIG9mIGFuIGludGVydmFsIG11c3QgYmUgYWZ0ZXIgaXRzIHN0YXJ0LCBidXQgeW91IGhhZCBzdGFydD0ke3N0YXJ0LnRvSVNPKCl9IGFuZCBlbmQ9JHtlbmQudG9JU08oKX1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIEFuIEludGVydmFsIG9iamVjdCByZXByZXNlbnRzIGEgaGFsZi1vcGVuIGludGVydmFsIG9mIHRpbWUsIHdoZXJlIGVhY2ggZW5kcG9pbnQgaXMgYSB7QGxpbmsgRGF0ZVRpbWV9LiBDb25jZXB0dWFsbHksIGl0J3MgYSBjb250YWluZXIgZm9yIHRob3NlIHR3byBlbmRwb2ludHMsIGFjY29tcGFuaWVkIGJ5IG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCBjb21wYXJpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIEludGVydmFsOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhbiBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNmcm9tRGF0ZVRpbWVzfSwge0BsaW5rIEludGVydmFsI2FmdGVyfSwge0BsaW5rIEludGVydmFsI2JlZm9yZX0sIG9yIHtAbGluayBJbnRlcnZhbCNmcm9tSVNPfS5cbiAqICogKipBY2Nlc3NvcnMqKiBVc2Uge0BsaW5rIEludGVydmFsI3N0YXJ0fSBhbmQge0BsaW5rIEludGVydmFsI2VuZH0gdG8gZ2V0IHRoZSBzdGFydCBhbmQgZW5kLlxuICogKiAqKkludGVycm9nYXRpb24qKiBUbyBhbmFseXplIHRoZSBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNjb3VudH0sIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9LCB7QGxpbmsgSW50ZXJ2YWwjaGFzU2FtZX0sIHtAbGluayBJbnRlcnZhbCNjb250YWluc30sIHtAbGluayBJbnRlcnZhbCNpc0FmdGVyfSwgb3Ige0BsaW5rIEludGVydmFsI2lzQmVmb3JlfS5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBvdGhlciBJbnRlcnZhbHMgb3V0IG9mIHRoaXMgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI3NldH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEF0fSwge0BsaW5rIEludGVydmFsI3NwbGl0Qnl9LCB7QGxpbmsgSW50ZXJ2YWwjZGl2aWRlRXF1YWxseX0sIHtAbGluayBJbnRlcnZhbCNtZXJnZX0sIHtAbGluayBJbnRlcnZhbCN4b3J9LCB7QGxpbmsgSW50ZXJ2YWwjdW5pb259LCB7QGxpbmsgSW50ZXJ2YWwjaW50ZXJzZWN0aW9ufSwgb3Ige0BsaW5rIEludGVydmFsI2RpZmZlcmVuY2V9LlxuICogKiAqKkNvbXBhcmlzb24qKiBUbyBjb21wYXJlIHRoaXMgSW50ZXJ2YWwgdG8gYW5vdGhlciBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZXF1YWxzfSwge0BsaW5rIEludGVydmFsI292ZXJsYXBzfSwge0BsaW5rIEludGVydmFsI2FidXRzU3RhcnR9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNFbmR9LCB7QGxpbmsgSW50ZXJ2YWwjZW5ndWxmc31cbiAqICogKipPdXRwdXQqKiBUbyBjb252ZXJ0IHRoZSBJbnRlcnZhbCBpbnRvIG90aGVyIHJlcHJlc2VudGF0aW9ucywgc2VlIHtAbGluayBJbnRlcnZhbCN0b1N0cmluZ30sIHtAbGluayBJbnRlcnZhbCN0b0lTT30sIHtAbGluayBJbnRlcnZhbCN0b0lTT0RhdGV9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09UaW1lfSwge0BsaW5rIEludGVydmFsI3RvRm9ybWF0fSwgYW5kIHtAbGluayBJbnRlcnZhbCN0b0R1cmF0aW9ufS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW50ZXJ2YWwge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMucyA9IGNvbmZpZy5zdGFydDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmUgPSBjb25maWcuZW5kO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pc0x1eG9uSW50ZXJ2YWwgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnZhbGlkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb25cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkge1xuICAgIGlmICghcmVhc29uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIEludGVydmFsIGlzIGludmFsaWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTtcblxuICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRJbnRlcnZhbEVycm9yKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IEludGVydmFsKHsgaW52YWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYW4gZW5kIERhdGVUaW1lLiBJbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IGJ1dCBub3QgdGhlIGVuZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gZW5kXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCkge1xuICAgIGNvbnN0IGJ1aWx0U3RhcnQgPSBmcmllbmRseURhdGVUaW1lKHN0YXJ0KSxcbiAgICAgIGJ1aWx0RW5kID0gZnJpZW5kbHlEYXRlVGltZShlbmQpO1xuXG4gICAgY29uc3QgdmFsaWRhdGVFcnJvciA9IHZhbGlkYXRlU3RhcnRFbmQoYnVpbHRTdGFydCwgYnVpbHRFbmQpO1xuXG4gICAgaWYgKHZhbGlkYXRlRXJyb3IgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7XG4gICAgICAgIHN0YXJ0OiBidWlsdFN0YXJ0LFxuICAgICAgICBlbmQ6IGJ1aWx0RW5kLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWxpZGF0ZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gSW50ZXJ2YWwgZnJvbSBhIHN0YXJ0IERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCB0by5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBhZnRlcihzdGFydCwgZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQsIGR0LnBsdXMoZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gZW5kIERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCBiYWNrd2FyZHMgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGJlZm9yZShlbmQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdC5taW51cyhkdXIpLCBkdCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gSVNPIDg2MDEgc3RyaW5nLlxuICAgKiBBY2NlcHRzIGA8c3RhcnQ+LzxlbmQ+YCwgYDxzdGFydD4vPGR1cmF0aW9uPmAsIGFuZCBgPGR1cmF0aW9uPi88ZW5kPmAgZm9ybWF0cy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gb3B0aW9ucyB0byBwYXNzIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSBhbmQgb3B0aW9uYWxseSB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT31cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcywgZV0gPSAodGV4dCB8fCBcIlwiKS5zcGxpdChcIi9cIiwgMik7XG4gICAgaWYgKHMgJiYgZSkge1xuICAgICAgbGV0IHN0YXJ0LCBzdGFydElzVmFsaWQ7XG4gICAgICB0cnkge1xuICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IHN0YXJ0LmlzVmFsaWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBsZXQgZW5kLCBlbmRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGVuZC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQgJiYgZW5kSXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCwgZW5kKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXJ0SXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKGUsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZW5kSXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYmVmb3JlKGVuZCwgZHVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gSW50ZXJ2YWwuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0ludGVydmFsKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwpIHx8IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgc3RhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZW5kIG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgZW5kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGF0IGxlYXN0IGl0cyBzdGFydCwgbWVhbmluZyB0aGF0IHRoZSBJbnRlcnZhbCBpc24ndCAnYmFja3dhcmRzJy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIEludGVydmFsIGlzIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBJbnRlcnZhbCBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgSW50ZXJ2YWwgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbCBpbiB0aGUgc3BlY2lmaWVkIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIHJldHVybiB0aGUgbGVuZ3RoIGluLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBsZW5ndGgodW5pdCA9IFwibWlsbGlzZWNvbmRzXCIpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50b0R1cmF0aW9uKC4uLlt1bml0XSkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvdW50IG9mIG1pbnV0ZXMsIGhvdXJzLCBkYXlzLCBtb250aHMsIG9yIHllYXJzIGluY2x1ZGVkIGluIHRoZSBJbnRlcnZhbCwgZXZlbiBpbiBwYXJ0LlxuICAgKiBVbmxpa2Uge0BsaW5rIEludGVydmFsI2xlbmd0aH0gdGhpcyBjb3VudHMgc2VjdGlvbnMgb2YgdGhlIGNhbGVuZGFyLCBub3QgcGVyaW9kcyBvZiB0aW1lLCBlLmcuIHNwZWNpZnlpbmcgJ2RheSdcbiAgICogYXNrcyAnd2hhdCBkYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcnZhbD8nLCBub3QgJ2hvdyBtYW55IGRheXMgbG9uZyBpcyB0aGlzIGludGVydmFsPydcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt1bml0PSdtaWxsaXNlY29uZHMnXSAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY291bnQuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGNvdW50KHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBOYU47XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LnN0YXJ0T2YodW5pdCksXG4gICAgICBlbmQgPSB0aGlzLmVuZC5zdGFydE9mKHVuaXQpO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCkpICsgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGFuZCBlbmQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvblxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzU2FtZSh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuaXNFbXB0eSgpIHx8IHRoaXMuZS5taW51cygxKS5oYXNTYW1lKHRoaXMucywgdW5pdCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGhhcyB0aGUgc2FtZSBzdGFydCBhbmQgZW5kIERhdGVUaW1lcy5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMucy52YWx1ZU9mKCkgPT09IHRoaXMuZS52YWx1ZU9mKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0FmdGVyKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zID4gZGF0ZVRpbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzQmVmb3JlKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5lIDw9IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgY29udGFpbnMgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGNvbnRhaW5zKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IGRhdGVUaW1lICYmIHRoaXMuZSA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0c1wiIHRoZSBzdGFydCBhbmQvb3IgZW5kIGRhdGVzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIHRvIHNldFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuc3RhcnQgLSB0aGUgc3RhcnRpbmcgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLmVuZCAtIHRoZSBlbmRpbmcgRGF0ZVRpbWVcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzZXQoeyBzdGFydCwgZW5kIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCB8fCB0aGlzLnMsIGVuZCB8fCB0aGlzLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgYXQgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIERhdGVUaW1lc1xuICAgKiBAcGFyYW0gey4uLkRhdGVUaW1lfSBkYXRlVGltZXMgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QXQoLi4uZGF0ZVRpbWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBbXTtcbiAgICBjb25zdCBzb3J0ZWQgPSBkYXRlVGltZXNcbiAgICAgICAgLm1hcChmcmllbmRseURhdGVUaW1lKVxuICAgICAgICAuZmlsdGVyKChkKSA9PiB0aGlzLmNvbnRhaW5zKGQpKVxuICAgICAgICAuc29ydCgpLFxuICAgICAgcmVzdWx0cyA9IFtdO1xuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpID0gMDtcblxuICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7XG4gICAgICBjb25zdCBhZGRlZCA9IHNvcnRlZFtpXSB8fCB0aGlzLmUsXG4gICAgICAgIG5leHQgPSArYWRkZWQgPiArdGhpcy5lID8gdGhpcy5lIDogYWRkZWQ7XG4gICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7XG4gICAgICBzID0gbmV4dDtcbiAgICAgIGkgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gc21hbGxlciBJbnRlcnZhbHMsIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguXG4gICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWxcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBsZW5ndGggb2YgZWFjaCByZXN1bHRpbmcgaW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3BsaXRCeShkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIWR1ci5pc1ZhbGlkIHx8IGR1ci5hcyhcIm1pbGxpc2Vjb25kc1wiKSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpZHggPSAxLFxuICAgICAgbmV4dDtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0YXJ0LnBsdXMoZHVyLm1hcFVuaXRzKCh4KSA9PiB4ICogaWR4KSk7XG4gICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpZHggKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc21hbGxlciBpbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZlBhcnRzIC0gVGhlIG51bWJlciBvZiBJbnRlcnZhbHMgdG8gZGl2aWRlIHRoZSBJbnRlcnZhbCBpbnRvLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpdmlkZUVxdWFsbHkobnVtYmVyT2ZQYXJ0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRCeSh0aGlzLmxlbmd0aCgpIC8gbnVtYmVyT2ZQYXJ0cykuc2xpY2UoMCwgbnVtYmVyT2ZQYXJ0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxcbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIG92ZXJsYXBzKG90aGVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZSA+IG90aGVyLnMgJiYgdGhpcy5zIDwgb3RoZXIuZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBzdGFydC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzU3RhcnQob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiArdGhpcy5lID09PSArb3RoZXIucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWRqYWNlbnQgdG8gdGhlIHNwZWNpZmllZCBJbnRlcnZhbCdzIGVuZC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzRW5kKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK290aGVyLmUgPT09ICt0aGlzLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBlbmd1bGZzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlbmd1bGZzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IG90aGVyLnMgJiYgdGhpcy5lID49IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zLmVxdWFscyhvdGhlci5zKSAmJiB0aGlzLmUuZXF1YWxzKG90aGVyLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIGludGVyc2VjdGlvbiBvZiB0aGlzIEludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtYXhpbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtaW5pbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgaW50ZXJzZWN0aW9uKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMgPiBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucyxcbiAgICAgIGUgPSB0aGlzLmUgPCBvdGhlci5lID8gdGhpcy5lIDogb3RoZXIuZTtcblxuICAgIGlmIChzID49IGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgdW5pb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWluaW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWF4aW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICB1bmlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zIDwgb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lID4gb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIGludG8gYSBlcXVpdmFsZW50IG1pbmltYWwgc2V0IG9mIEludGVydmFscy5cbiAgICogQ29tYmluZXMgb3ZlcmxhcHBpbmcgYW5kIGFkamFjZW50IEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1lcmdlKGludGVydmFscykge1xuICAgIGNvbnN0IFtmb3VuZCwgZmluYWxdID0gaW50ZXJ2YWxzXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5zIC0gYi5zKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKFtzb2ZhciwgY3VycmVudF0sIGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGl0ZW1dO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5vdmVybGFwcyhpdGVtKSB8fCBjdXJyZW50LmFidXRzU3RhcnQoaXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGN1cnJlbnQudW5pb24oaXRlbSldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLmNvbmNhdChbY3VycmVudF0pLCBpdGVtXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtbXSwgbnVsbF1cbiAgICAgICk7XG4gICAgaWYgKGZpbmFsKSB7XG4gICAgICBmb3VuZC5wdXNoKGZpbmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBJbnRlcnZhbHMgcmVwcmVzZW50aW5nIHRoZSBzcGFucyBvZiB0aW1lIHRoYXQgb25seSBhcHBlYXIgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHNcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgeG9yKGludGVydmFscykge1xuICAgIGxldCBzdGFydCA9IG51bGwsXG4gICAgICBjdXJyZW50Q291bnQgPSAwO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXSxcbiAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKChpKSA9PiBbXG4gICAgICAgIHsgdGltZTogaS5zLCB0eXBlOiBcInNcIiB9LFxuICAgICAgICB7IHRpbWU6IGkuZSwgdHlwZTogXCJlXCIgfSxcbiAgICAgIF0pLFxuICAgICAgZmxhdHRlbmVkID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5lbmRzKSxcbiAgICAgIGFyciA9IGZsYXR0ZW5lZC5zb3J0KChhLCBiKSA9PiBhLnRpbWUgLSBiLnRpbWUpO1xuXG4gICAgZm9yIChjb25zdCBpIG9mIGFycikge1xuICAgICAgY3VycmVudENvdW50ICs9IGkudHlwZSA9PT0gXCJzXCIgPyAxIDogLTE7XG5cbiAgICAgIGlmIChjdXJyZW50Q291bnQgPT09IDEpIHtcbiAgICAgICAgc3RhcnQgPSBpLnRpbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhcnQgJiYgK3N0YXJ0ICE9PSAraS50aW1lKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGkudGltZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBJbnRlcnZhbC5tZXJnZShyZXN1bHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHsuLi5JbnRlcnZhbH0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgZGlmZmVyZW5jZSguLi5pbnRlcnZhbHMpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwueG9yKFt0aGlzXS5jb25jYXQoaW50ZXJ2YWxzKSlcbiAgICAgIC5tYXAoKGkpID0+IHRoaXMuaW50ZXJzZWN0aW9uKGkpKVxuICAgICAgLmZpbHRlcigoaSkgPT4gaSAmJiAhaS5pc0VtcHR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1N0cmluZygpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGBbJHt0aGlzLnMudG9JU08oKX0gXHUyMDEzICR7dGhpcy5lLnRvSVNPKCl9KWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08ob3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPKG9wdHMpfS8ke3RoaXMuZS50b0lTTyhvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSB0aW1lIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPRGF0ZSgpfS8ke3RoaXMuZS50b0lTT0RhdGUoKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aW1lIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSBkYXRlIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT1RpbWUob3B0cyl9LyR7dGhpcy5lLnRvSVNPVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVGb3JtYXQgLSB0aGUgZm9ybWF0IHN0cmluZy4gVGhpcyBzdHJpbmcgZm9ybWF0cyB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lLiBTZWUge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSBmb3IgZGV0YWlscy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5zZXBhcmF0b3IgPSAgJyBcdTIwMTMgJ10gLSBhIHNlcGFyYXRvciB0byBwbGFjZSBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHJlcHJlc2VudGF0aW9uc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChkYXRlRm9ybWF0LCB7IHNlcGFyYXRvciA9IFwiIFx1MjAxMyBcIiB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0Zvcm1hdChkYXRlRm9ybWF0KX0ke3NlcGFyYXRvcn0ke3RoaXMuZS50b0Zvcm1hdChkYXRlRm9ybWF0KX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIER1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBzcGFubmVkIGJ5IHRoaXMgaW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDg4NDg5MjU3IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQuODIwOTUgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQsIHNlY29uZHM6IDQ5LjI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHRvRHVyYXRpb24odW5pdCwgb3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZCh0aGlzLmludmFsaWRSZWFzb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lLmRpZmYodGhpcy5zLCB1bml0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gbWFwRm4gb24gdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQsIHJldHVybmluZyBhIG5ldyBJbnRlcnZhbCBmcm9tIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG1hcEZuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS5tYXBFbmRwb2ludHMoZW5kcG9pbnQgPT4gZW5kcG9pbnQudG9VVEMoKSlcbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnBsdXMoeyBob3VyczogMiB9KSlcbiAgICovXG4gIG1hcEVuZHBvaW50cyhtYXBGbikge1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKG1hcEZuKHRoaXMucyksIG1hcEZuKHRoaXMuZSkpO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxuaW1wb3J0IHsgaGFzUmVsYXRpdmUgfSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcblxuLyoqXG4gKiBUaGUgSW5mbyBjbGFzcyBjb250YWlucyBzdGF0aWMgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBnZW5lcmFsIHRpbWUgYW5kIGRhdGUgcmVsYXRlZCBkYXRhLiBGb3IgZXhhbXBsZSwgaXQgaGFzIG1ldGhvZHMgZm9yIGZpbmRpbmcgb3V0IGlmIGEgdGltZSB6b25lIGhhcyBhIERTVCwgZm9yIGxpc3RpbmcgdGhlIG1vbnRocyBpbiBhbnkgc3VwcG9ydGVkIGxvY2FsZSwgYW5kIGZvciBkaXNjb3ZlcmluZyB3aGljaCBvZiBMdXhvbiBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBjb250YWlucyBhIERTVC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW3pvbmU9J2xvY2FsJ10gLSBab25lIHRvIGNoZWNrLiBEZWZhdWx0cyB0byB0aGUgZW52aXJvbm1lbnQncyBsb2NhbCB6b25lLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGhhc0RTVCh6b25lID0gU2V0dGluZ3MuZGVmYXVsdFpvbmUpIHtcbiAgICBjb25zdCBwcm90byA9IERhdGVUaW1lLm5vdygpLnNldFpvbmUoem9uZSkuc2V0KHsgbW9udGg6IDEyIH0pO1xuXG4gICAgcmV0dXJuICF6b25lLmlzVW5pdmVyc2FsICYmIHByb3RvLm9mZnNldCAhPT0gcHJvdG8uc2V0KHsgbW9udGg6IDYgfSkub2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBpcyBhIHZhbGlkIElBTkEgc3BlY2lmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFpvbmUgdG8gY2hlY2tcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkSUFOQVpvbmUoem9uZSkge1xuICAgIHJldHVybiBJQU5BWm9uZS5pc1ZhbGlkWm9uZSh6b25lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgaW5wdXQgaW50byBhIHtAbGluayBab25lfSBpbnN0YW5jZS5cbiAgICpcbiAgICogKiBJZiBgaW5wdXRgIGlzIGFscmVhZHkgYSBab25lIGluc3RhbmNlLCBpdCBpcyByZXR1cm5lZCB1bmNoYW5nZWQuXG4gICAqICogSWYgYGlucHV0YCBpcyBhIHN0cmluZyBjb250YWluaW5nIGEgdmFsaWQgdGltZSB6b25lIG5hbWUsIGEgWm9uZSBpbnN0YW5jZVxuICAgKiAgIHdpdGggdGhhdCBuYW1lIGlzIHJldHVybmVkLlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYSBzdHJpbmcgdGhhdCBkb2Vzbid0IHJlZmVyIHRvIGEga25vd24gdGltZSB6b25lLCBhIFpvbmVcbiAgICogICBpbnN0YW5jZSB3aXRoIHtAbGluayBab25lI2lzVmFsaWR9ID09IGZhbHNlIGlzIHJldHVybmVkLlxuICAgKiAqIElmIGBpbnB1dCBpcyBhIG51bWJlciwgYSBab25lIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBmaXhlZCBvZmZzZXRcbiAgICogICBpbiBtaW51dGVzIGlzIHJldHVybmVkLlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLCB0aGUgZGVmYXVsdCB6b25lIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfG51bWJlcn0gW2lucHV0XSAtIHRoZSB2YWx1ZSB0byBiZSBjb252ZXJ0ZWRcbiAgICogQHJldHVybiB7Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBub3JtYWxpemVab25lKGlucHV0KSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVpvbmUoaW5wdXQsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSBtb250aCBuYW1lcy5cbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlVGltZUZvcm1hdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgbW9udGggcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJudW1lcmljXCIsIFwiMi1kaWdpdFwiLCBcIm5hcnJvd1wiLCBcInNob3J0XCIsIFwibG9uZ1wiXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKClbMF0gLy89PiAnSmFudWFyeSdcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ3Nob3J0JylbMF0gLy89PiAnSmFuJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycpWzBdIC8vPT4gJzEnXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0gKVswXSAvLz0+ICdqYW52LidcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICdcdTA2NjEnXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdsb25nJywgeyBvdXRwdXRDYWxlbmRhcjogJ2lzbGFtaWMnIH0pWzBdIC8vPT4gJ1JhYmlcdTAyQkIgSSdcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgbW9udGhzKFxuICAgIGxlbmd0aCA9IFwibG9uZ1wiLFxuICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCwgb3V0cHV0Q2FsZW5kYXIgPSBcImdyZWdvcnlcIiB9ID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZm9ybWF0IG1vbnRoIG5hbWVzLlxuICAgKiBGb3JtYXQgbW9udGhzIGRpZmZlciBmcm9tIHN0YW5kYWxvbmUgbW9udGhzIGluIHRoYXQgdGhleSdyZSBtZWFudCB0byBhcHBlYXIgbmV4dCB0byB0aGUgZGF5IG9mIHRoZSBtb250aC4gSW4gc29tZSBsYW5ndWFnZXMsIHRoYXRcbiAgICogY2hhbmdlcyB0aGUgc3RyaW5nLlxuICAgKiBTZWUge0BsaW5rIEluZm8jbW9udGhzfVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgbW9udGggcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJudW1lcmljXCIsIFwiMi1kaWdpdFwiLCBcIm5hcnJvd1wiLCBcInNob3J0XCIsIFwibG9uZ1wiXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcj0nZ3JlZ29yeSddIC0gdGhlIGNhbGVuZGFyXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1vbnRoc0Zvcm1hdChcbiAgICBsZW5ndGggPSBcImxvbmdcIixcbiAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gXCJncmVnb3J5XCIgfSA9IHt9XG4gICkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgd2VlayBuYW1lcy5cbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlVGltZUZvcm1hdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgd2Vla2RheSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm5hcnJvd1wiLCBcInNob3J0XCIsIFwibG9uZ1wiLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKClbMF0gLy89PiAnTW9uZGF5J1xuICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcpWzBdIC8vPT4gJ01vbidcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9KVswXSAvLz0+ICdsdW4uJ1xuICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcsIHsgbG9jYWxlOiAnYXInIH0pWzBdIC8vPT4gJ1x1MDYyN1x1MDY0NFx1MDYyN1x1MDYyQlx1MDY0Nlx1MDY0QVx1MDY0NidcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgd2Vla2RheXMobGVuZ3RoID0gXCJsb25nXCIsIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCB9ID0ge30pIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZm9ybWF0IHdlZWsgbmFtZXMuXG4gICAqIEZvcm1hdCB3ZWVrZGF5cyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIHdlZWtkYXlzIGluIHRoYXQgdGhleSdyZSBtZWFudCB0byBhcHBlYXIgbmV4dCB0byBtb3JlIGRhdGUgaW5mb3JtYXRpb24uIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0XG4gICAqIGNoYW5nZXMgdGhlIHN0cmluZy5cbiAgICogU2VlIHtAbGluayBJbmZvI3dlZWtkYXlzfVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nbG9uZyddIC0gdGhlIGxlbmd0aCBvZiB0aGUgbW9udGggcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9bnVsbF0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyB3ZWVrZGF5c0Zvcm1hdChcbiAgICBsZW5ndGggPSBcImxvbmdcIixcbiAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwgfSA9IHt9XG4gICkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBtZXJpZGllbXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAZXhhbXBsZSBJbmZvLm1lcmlkaWVtcygpIC8vPT4gWyAnQU0nLCAnUE0nIF1cbiAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoeyBsb2NhbGU6ICdteScgfSkgLy89PiBbICdcdTEwMTRcdTEwMzZcdTEwMTRcdTEwMDBcdTEwM0EnLCAnXHUxMDBBXHUxMDE0XHUxMDMxJyBdXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1lcmlkaWVtcyh7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlKS5tZXJpZGllbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgZXJhcywgc3VjaCBhcyBbJ0JDJywgJ0FEJ10uIFRoZSBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCwgYnV0IHRoZSBjYWxlbmRhciBzeXN0ZW0gaXMgYWx3YXlzIEdyZWdvcmlhbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J3Nob3J0J10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBlcmEgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJzaG9ydFwiIG9yIFwibG9uZ1wiLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQGV4YW1wbGUgSW5mby5lcmFzKCkgLy89PiBbICdCQycsICdBRCcgXVxuICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnKSAvLz0+IFsgJ0JlZm9yZSBDaHJpc3QnLCAnQW5ubyBEb21pbmknIF1cbiAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJywgeyBsb2NhbGU6ICdmcicgfSkgLy89PiBbICdhdmFudCBKXHUwMEU5c3VzLUNocmlzdCcsICdhcHJcdTAwRThzIEpcdTAwRTlzdXMtQ2hyaXN0JyBdXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIGVyYXMobGVuZ3RoID0gXCJzaG9ydFwiLCB7IGxvY2FsZSA9IG51bGwgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudWxsLCBcImdyZWdvcnlcIikuZXJhcyhsZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBpbiB0aGlzIGVudmlyb25tZW50LlxuICAgKiBTb21lIGZlYXR1cmVzIG9mIEx1eG9uIGFyZSBub3QgYXZhaWxhYmxlIGluIGFsbCBlbnZpcm9ubWVudHMuIEZvciBleGFtcGxlLCBvbiBvbGRlciBicm93c2VycywgcmVsYXRpdmUgdGltZSBmb3JtYXR0aW5nIHN1cHBvcnQgaXMgbm90IGF2YWlsYWJsZS4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZmlndXJlIG91dCBpZiB0aGF0J3MgdGhlIGNhc2UuXG4gICAqIEtleXM6XG4gICAqICogYHJlbGF0aXZlYDogd2hldGhlciB0aGlzIGVudmlyb25tZW50IHN1cHBvcnRzIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZ1xuICAgKiBAZXhhbXBsZSBJbmZvLmZlYXR1cmVzKCkgLy89PiB7IHJlbGF0aXZlOiBmYWxzZSB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4geyByZWxhdGl2ZTogaGFzUmVsYXRpdmUoKSB9O1xuICB9XG59XG4iLCAiaW1wb3J0IER1cmF0aW9uIGZyb20gXCIuLi9kdXJhdGlvbi5qc1wiO1xuXG5mdW5jdGlvbiBkYXlEaWZmKGVhcmxpZXIsIGxhdGVyKSB7XG4gIGNvbnN0IHV0Y0RheVN0YXJ0ID0gKGR0KSA9PiBkdC50b1VUQygwLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkuc3RhcnRPZihcImRheVwiKS52YWx1ZU9mKCksXG4gICAgbXMgPSB1dGNEYXlTdGFydChsYXRlcikgLSB1dGNEYXlTdGFydChlYXJsaWVyKTtcbiAgcmV0dXJuIE1hdGguZmxvb3IoRHVyYXRpb24uZnJvbU1pbGxpcyhtcykuYXMoXCJkYXlzXCIpKTtcbn1cblxuZnVuY3Rpb24gaGlnaE9yZGVyRGlmZnMoY3Vyc29yLCBsYXRlciwgdW5pdHMpIHtcbiAgY29uc3QgZGlmZmVycyA9IFtcbiAgICBbXCJ5ZWFyc1wiLCAoYSwgYikgPT4gYi55ZWFyIC0gYS55ZWFyXSxcbiAgICBbXCJxdWFydGVyc1wiLCAoYSwgYikgPT4gYi5xdWFydGVyIC0gYS5xdWFydGVyXSxcbiAgICBbXCJtb250aHNcIiwgKGEsIGIpID0+IGIubW9udGggLSBhLm1vbnRoICsgKGIueWVhciAtIGEueWVhcikgKiAxMl0sXG4gICAgW1xuICAgICAgXCJ3ZWVrc1wiLFxuICAgICAgKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgZGF5cyA9IGRheURpZmYoYSwgYik7XG4gICAgICAgIHJldHVybiAoZGF5cyAtIChkYXlzICUgNykpIC8gNztcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbXCJkYXlzXCIsIGRheURpZmZdLFxuICBdO1xuXG4gIGNvbnN0IHJlc3VsdHMgPSB7fTtcbiAgbGV0IGxvd2VzdE9yZGVyLCBoaWdoV2F0ZXI7XG5cbiAgZm9yIChjb25zdCBbdW5pdCwgZGlmZmVyXSBvZiBkaWZmZXJzKSB7XG4gICAgaWYgKHVuaXRzLmluZGV4T2YodW5pdCkgPj0gMCkge1xuICAgICAgbG93ZXN0T3JkZXIgPSB1bml0O1xuXG4gICAgICBsZXQgZGVsdGEgPSBkaWZmZXIoY3Vyc29yLCBsYXRlcik7XG4gICAgICBoaWdoV2F0ZXIgPSBjdXJzb3IucGx1cyh7IFt1bml0XTogZGVsdGEgfSk7XG5cbiAgICAgIGlmIChoaWdoV2F0ZXIgPiBsYXRlcikge1xuICAgICAgICBjdXJzb3IgPSBjdXJzb3IucGx1cyh7IFt1bml0XTogZGVsdGEgLSAxIH0pO1xuICAgICAgICBkZWx0YSAtPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3Vyc29yID0gaGlnaFdhdGVyO1xuICAgICAgfVxuXG4gICAgICByZXN1bHRzW3VuaXRdID0gZGVsdGE7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFtjdXJzb3IsIHJlc3VsdHMsIGhpZ2hXYXRlciwgbG93ZXN0T3JkZXJdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBvcHRzKSB7XG4gIGxldCBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXSA9IGhpZ2hPcmRlckRpZmZzKGVhcmxpZXIsIGxhdGVyLCB1bml0cyk7XG5cbiAgY29uc3QgcmVtYWluaW5nTWlsbGlzID0gbGF0ZXIgLSBjdXJzb3I7XG5cbiAgY29uc3QgbG93ZXJPcmRlclVuaXRzID0gdW5pdHMuZmlsdGVyKFxuICAgICh1KSA9PiBbXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCIsIFwibWlsbGlzZWNvbmRzXCJdLmluZGV4T2YodSkgPj0gMFxuICApO1xuXG4gIGlmIChsb3dlck9yZGVyVW5pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGhpZ2hXYXRlciA8IGxhdGVyKSB7XG4gICAgICBoaWdoV2F0ZXIgPSBjdXJzb3IucGx1cyh7IFtsb3dlc3RPcmRlcl06IDEgfSk7XG4gICAgfVxuXG4gICAgaWYgKGhpZ2hXYXRlciAhPT0gY3Vyc29yKSB7XG4gICAgICByZXN1bHRzW2xvd2VzdE9yZGVyXSA9IChyZXN1bHRzW2xvd2VzdE9yZGVyXSB8fCAwKSArIHJlbWFpbmluZ01pbGxpcyAvIChoaWdoV2F0ZXIgLSBjdXJzb3IpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24uZnJvbU9iamVjdChyZXN1bHRzLCBvcHRzKTtcblxuICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhyZW1haW5pbmdNaWxsaXMsIG9wdHMpXG4gICAgICAuc2hpZnRUbyguLi5sb3dlck9yZGVyVW5pdHMpXG4gICAgICAucGx1cyhkdXJhdGlvbik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGR1cmF0aW9uO1xuICB9XG59XG4iLCAiY29uc3QgbnVtYmVyaW5nU3lzdGVtcyA9IHtcbiAgYXJhYjogXCJbXFx1MDY2MC1cXHUwNjY5XVwiLFxuICBhcmFiZXh0OiBcIltcXHUwNkYwLVxcdTA2RjldXCIsXG4gIGJhbGk6IFwiW1xcdTFCNTAtXFx1MUI1OV1cIixcbiAgYmVuZzogXCJbXFx1MDlFNi1cXHUwOUVGXVwiLFxuICBkZXZhOiBcIltcXHUwOTY2LVxcdTA5NkZdXCIsXG4gIGZ1bGx3aWRlOiBcIltcXHVGRjEwLVxcdUZGMTldXCIsXG4gIGd1anI6IFwiW1xcdTBBRTYtXFx1MEFFRl1cIixcbiAgaGFuaWRlYzogXCJbXHUzMDA3fFx1NEUwMHxcdTRFOEN8XHU0RTA5fFx1NTZEQnxcdTRFOTR8XHU1MTZEfFx1NEUwM3xcdTUxNkJ8XHU0RTVEXVwiLFxuICBraG1yOiBcIltcXHUxN0UwLVxcdTE3RTldXCIsXG4gIGtuZGE6IFwiW1xcdTBDRTYtXFx1MENFRl1cIixcbiAgbGFvbzogXCJbXFx1MEVEMC1cXHUwRUQ5XVwiLFxuICBsaW1iOiBcIltcXHUxOTQ2LVxcdTE5NEZdXCIsXG4gIG1seW06IFwiW1xcdTBENjYtXFx1MEQ2Rl1cIixcbiAgbW9uZzogXCJbXFx1MTgxMC1cXHUxODE5XVwiLFxuICBteW1yOiBcIltcXHUxMDQwLVxcdTEwNDldXCIsXG4gIG9yeWE6IFwiW1xcdTBCNjYtXFx1MEI2Rl1cIixcbiAgdGFtbGRlYzogXCJbXFx1MEJFNi1cXHUwQkVGXVwiLFxuICB0ZWx1OiBcIltcXHUwQzY2LVxcdTBDNkZdXCIsXG4gIHRoYWk6IFwiW1xcdTBFNTAtXFx1MEU1OV1cIixcbiAgdGlidDogXCJbXFx1MEYyMC1cXHUwRjI5XVwiLFxuICBsYXRuOiBcIlxcXFxkXCIsXG59O1xuXG5jb25zdCBudW1iZXJpbmdTeXN0ZW1zVVRGMTYgPSB7XG4gIGFyYWI6IFsxNjMyLCAxNjQxXSxcbiAgYXJhYmV4dDogWzE3NzYsIDE3ODVdLFxuICBiYWxpOiBbNjk5MiwgNzAwMV0sXG4gIGJlbmc6IFsyNTM0LCAyNTQzXSxcbiAgZGV2YTogWzI0MDYsIDI0MTVdLFxuICBmdWxsd2lkZTogWzY1Mjk2LCA2NTMwM10sXG4gIGd1anI6IFsyNzkwLCAyNzk5XSxcbiAga2htcjogWzYxMTIsIDYxMjFdLFxuICBrbmRhOiBbMzMwMiwgMzMxMV0sXG4gIGxhb286IFszNzkyLCAzODAxXSxcbiAgbGltYjogWzY0NzAsIDY0NzldLFxuICBtbHltOiBbMzQzMCwgMzQzOV0sXG4gIG1vbmc6IFs2MTYwLCA2MTY5XSxcbiAgbXltcjogWzQxNjAsIDQxNjldLFxuICBvcnlhOiBbMjkxOCwgMjkyN10sXG4gIHRhbWxkZWM6IFszMDQ2LCAzMDU1XSxcbiAgdGVsdTogWzMxNzQsIDMxODNdLFxuICB0aGFpOiBbMzY2NCwgMzY3M10sXG4gIHRpYnQ6IFszODcyLCAzODgxXSxcbn07XG5cbmNvbnN0IGhhbmlkZWNDaGFycyA9IG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYy5yZXBsYWNlKC9bXFxbfFxcXV0vZywgXCJcIikuc3BsaXQoXCJcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURpZ2l0cyhzdHIpIHtcbiAgbGV0IHZhbHVlID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICB2YWx1ZSA9IFwiXCI7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBzdHIuY2hhckNvZGVBdChpKTtcblxuICAgICAgaWYgKHN0cltpXS5zZWFyY2gobnVtYmVyaW5nU3lzdGVtcy5oYW5pZGVjKSAhPT0gLTEpIHtcbiAgICAgICAgdmFsdWUgKz0gaGFuaWRlY0NoYXJzLmluZGV4T2Yoc3RyW2ldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG51bWJlcmluZ1N5c3RlbXNVVEYxNikge1xuICAgICAgICAgIGNvbnN0IFttaW4sIG1heF0gPSBudW1iZXJpbmdTeXN0ZW1zVVRGMTZba2V5XTtcbiAgICAgICAgICBpZiAoY29kZSA+PSBtaW4gJiYgY29kZSA8PSBtYXgpIHtcbiAgICAgICAgICAgIHZhbHVlICs9IGNvZGUgLSBtaW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlnaXRSZWdleCh7IG51bWJlcmluZ1N5c3RlbSB9LCBhcHBlbmQgPSBcIlwiKSB7XG4gIHJldHVybiBuZXcgUmVnRXhwKGAke251bWJlcmluZ1N5c3RlbXNbbnVtYmVyaW5nU3lzdGVtIHx8IFwibGF0blwiXX0ke2FwcGVuZH1gKTtcbn1cbiIsICJpbXBvcnQgeyBwYXJzZU1pbGxpcywgaXNVbmRlZmluZWQsIHVudHJ1bmNhdGVZZWFyLCBzaWduZWRPZmZzZXQsIGhhc093blByb3BlcnR5IH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0IEZvcm1hdHRlciBmcm9tIFwiLi9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IHsgZGlnaXRSZWdleCwgcGFyc2VEaWdpdHMgfSBmcm9tIFwiLi9kaWdpdHMuanNcIjtcbmltcG9ydCB7IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy5qc1wiO1xuXG5jb25zdCBNSVNTSU5HX0ZUUCA9IFwibWlzc2luZyBJbnRsLkRhdGVUaW1lRm9ybWF0LmZvcm1hdFRvUGFydHMgc3VwcG9ydFwiO1xuXG5mdW5jdGlvbiBpbnRVbml0KHJlZ2V4LCBwb3N0ID0gKGkpID0+IGkpIHtcbiAgcmV0dXJuIHsgcmVnZXgsIGRlc2VyOiAoW3NdKSA9PiBwb3N0KHBhcnNlRGlnaXRzKHMpKSB9O1xufVxuXG5jb25zdCBOQlNQID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApO1xuY29uc3Qgc3BhY2VPck5CU1AgPSBgWyAke05CU1B9XWA7XG5jb25zdCBzcGFjZU9yTkJTUFJlZ0V4cCA9IG5ldyBSZWdFeHAoc3BhY2VPck5CU1AsIFwiZ1wiKTtcblxuZnVuY3Rpb24gZml4TGlzdFJlZ2V4KHMpIHtcbiAgLy8gbWFrZSBkb3RzIG9wdGlvbmFsIGFuZCBhbHNvIG1ha2UgdGhlbSBsaXRlcmFsXG4gIC8vIG1ha2Ugc3BhY2UgYW5kIG5vbiBicmVha2FibGUgc3BhY2UgY2hhcmFjdGVycyBpbnRlcmNoYW5nZWFibGVcbiAgcmV0dXJuIHMucmVwbGFjZSgvXFwuL2csIFwiXFxcXC4/XCIpLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIHNwYWNlT3JOQlNQKTtcbn1cblxuZnVuY3Rpb24gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykge1xuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXC4vZywgXCJcIikgLy8gaWdub3JlIGRvdHMgdGhhdCB3ZXJlIG1hZGUgb3B0aW9uYWxcbiAgICAucmVwbGFjZShzcGFjZU9yTkJTUFJlZ0V4cCwgXCIgXCIpIC8vIGludGVyY2hhbmdlIHNwYWNlIGFuZCBuYnNwXG4gICAgLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIG9uZU9mKHN0cmluZ3MsIHN0YXJ0SW5kZXgpIHtcbiAgaWYgKHN0cmluZ3MgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVnZXg6IFJlZ0V4cChzdHJpbmdzLm1hcChmaXhMaXN0UmVnZXgpLmpvaW4oXCJ8XCIpKSxcbiAgICAgIGRlc2VyOiAoW3NdKSA9PlxuICAgICAgICBzdHJpbmdzLmZpbmRJbmRleCgoaSkgPT4gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykgPT09IHN0cmlwSW5zZW5zaXRpdml0aWVzKGkpKSArIHN0YXJ0SW5kZXgsXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvZmZzZXQocmVnZXgsIGdyb3Vwcykge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbLCBoLCBtXSkgPT4gc2lnbmVkT2Zmc2V0KGgsIG0pLCBncm91cHMgfTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlKHJlZ2V4KSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcyB9O1xufVxuXG5mdW5jdGlvbiBlc2NhcGVUb2tlbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcLVxcW1xcXXt9KCkqKz8uLFxcXFxcXF4kfCNcXHNdL2csIFwiXFxcXCQmXCIpO1xufVxuXG5mdW5jdGlvbiB1bml0Rm9yVG9rZW4odG9rZW4sIGxvYykge1xuICBjb25zdCBvbmUgPSBkaWdpdFJlZ2V4KGxvYyksXG4gICAgdHdvID0gZGlnaXRSZWdleChsb2MsIFwiezJ9XCIpLFxuICAgIHRocmVlID0gZGlnaXRSZWdleChsb2MsIFwiezN9XCIpLFxuICAgIGZvdXIgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7NH1cIiksXG4gICAgc2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezZ9XCIpLFxuICAgIG9uZU9yVHdvID0gZGlnaXRSZWdleChsb2MsIFwiezEsMn1cIiksXG4gICAgb25lVG9UaHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDN9XCIpLFxuICAgIG9uZVRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezEsNn1cIiksXG4gICAgb25lVG9OaW5lID0gZGlnaXRSZWdleChsb2MsIFwiezEsOX1cIiksXG4gICAgdHdvVG9Gb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezIsNH1cIiksXG4gICAgZm91clRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezQsNn1cIiksXG4gICAgbGl0ZXJhbCA9ICh0KSA9PiAoeyByZWdleDogUmVnRXhwKGVzY2FwZVRva2VuKHQudmFsKSksIGRlc2VyOiAoW3NdKSA9PiBzLCBsaXRlcmFsOiB0cnVlIH0pLFxuICAgIHVuaXRhdGUgPSAodCkgPT4ge1xuICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHQudmFsKSB7XG4gICAgICAgIC8vIGVyYVxuICAgICAgICBjYXNlIFwiR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcInNob3J0XCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcImxvbmdcIiwgZmFsc2UpLCAwKTtcbiAgICAgICAgLy8geWVhcnNcbiAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1NpeCk7XG4gICAgICAgIGNhc2UgXCJ5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpO1xuICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwieXl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoc2l4KTtcbiAgICAgICAgLy8gbW9udGhzXG4gICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiTU1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTU1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIkxMXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkxMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJMTExMXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJsb25nXCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBkYXRlc1xuICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgLy8gb3JkaW5hbHNcbiAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1RocmVlKTtcbiAgICAgICAgY2FzZSBcIm9vb1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHRocmVlKTtcbiAgICAgICAgLy8gdGltZVxuICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiSFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImhoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwicVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFxXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJTU1NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpO1xuICAgICAgICBjYXNlIFwidXVcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIC8vIG1lcmlkaWVtXG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tZXJpZGllbXMoKSwgMCk7XG4gICAgICAgIC8vIHdlZWtZZWFyIChrKVxuICAgICAgICBjYXNlIFwia2tra1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwia2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgLy8gd2Vla051bWJlciAoVylcbiAgICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJXV1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIHdlZWtkYXlzXG4gICAgICAgIGNhc2UgXCJFXCI6XG4gICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTtcbiAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkVFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiY2NjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJsb25nXCIsIHRydWUsIGZhbHNlKSwgMSk7XG4gICAgICAgIC8vIG9mZnNldC96b25lXG4gICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKD86Oigke3R3by5zb3VyY2V9KSk/YCksIDIpO1xuICAgICAgICBjYXNlIFwiWlpaXCI6XG4gICAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKGAoWystXSR7b25lT3JUd28uc291cmNlfSkoJHt0d28uc291cmNlfSk/YCksIDIpO1xuICAgICAgICAvLyB3ZSBkb24ndCBzdXBwb3J0IFpaWlogKFBTVCkgb3IgWlpaWlogKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkgaW4gcGFyc2luZ1xuICAgICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYW55IHdheSB0byBmaWd1cmUgb3V0IHdoYXQgdGhleSBhcmVcbiAgICAgICAgY2FzZSBcInpcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKC9bYS16XystL117MSwyNTZ9Py9pKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbGl0ZXJhbCh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGNvbnN0IHVuaXQgPSB1bml0YXRlKHRva2VuKSB8fCB7XG4gICAgaW52YWxpZFJlYXNvbjogTUlTU0lOR19GVFAsXG4gIH07XG5cbiAgdW5pdC50b2tlbiA9IHRva2VuO1xuXG4gIHJldHVybiB1bml0O1xufVxuXG5jb25zdCBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbCA9IHtcbiAgeWVhcjoge1xuICAgIFwiMi1kaWdpdFwiOiBcInl5XCIsXG4gICAgbnVtZXJpYzogXCJ5eXl5eVwiLFxuICB9LFxuICBtb250aDoge1xuICAgIG51bWVyaWM6IFwiTVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIk1NXCIsXG4gICAgc2hvcnQ6IFwiTU1NXCIsXG4gICAgbG9uZzogXCJNTU1NXCIsXG4gIH0sXG4gIGRheToge1xuICAgIG51bWVyaWM6IFwiZFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImRkXCIsXG4gIH0sXG4gIHdlZWtkYXk6IHtcbiAgICBzaG9ydDogXCJFRUVcIixcbiAgICBsb25nOiBcIkVFRUVcIixcbiAgfSxcbiAgZGF5cGVyaW9kOiBcImFcIixcbiAgZGF5UGVyaW9kOiBcImFcIixcbiAgaG91cjoge1xuICAgIG51bWVyaWM6IFwiaFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImhoXCIsXG4gIH0sXG4gIG1pbnV0ZToge1xuICAgIG51bWVyaWM6IFwibVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIm1tXCIsXG4gIH0sXG4gIHNlY29uZDoge1xuICAgIG51bWVyaWM6IFwic1wiLFxuICAgIFwiMi1kaWdpdFwiOiBcInNzXCIsXG4gIH0sXG59O1xuXG5mdW5jdGlvbiB0b2tlbkZvclBhcnQocGFydCwgbG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gIGNvbnN0IHsgdHlwZSwgdmFsdWUgfSA9IHBhcnQ7XG5cbiAgaWYgKHR5cGUgPT09IFwibGl0ZXJhbFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IHRydWUsXG4gICAgICB2YWw6IHZhbHVlLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBzdHlsZSA9IGZvcm1hdE9wdHNbdHlwZV07XG5cbiAgbGV0IHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW3R5cGVdO1xuICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIikge1xuICAgIHZhbCA9IHZhbFtzdHlsZV07XG4gIH1cblxuICBpZiAodmFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IGZhbHNlLFxuICAgICAgdmFsLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBidWlsZFJlZ2V4KHVuaXRzKSB7XG4gIGNvbnN0IHJlID0gdW5pdHMubWFwKCh1KSA9PiB1LnJlZ2V4KS5yZWR1Y2UoKGYsIHIpID0+IGAke2Z9KCR7ci5zb3VyY2V9KWAsIFwiXCIpO1xuICByZXR1cm4gW2BeJHtyZX0kYCwgdW5pdHNdO1xufVxuXG5mdW5jdGlvbiBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChyZWdleCk7XG5cbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBjb25zdCBhbGwgPSB7fTtcbiAgICBsZXQgbWF0Y2hJbmRleCA9IDE7XG4gICAgZm9yIChjb25zdCBpIGluIGhhbmRsZXJzKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkoaGFuZGxlcnMsIGkpKSB7XG4gICAgICAgIGNvbnN0IGggPSBoYW5kbGVyc1tpXSxcbiAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7XG4gICAgICAgIGlmICghaC5saXRlcmFsICYmIGgudG9rZW4pIHtcbiAgICAgICAgICBhbGxbaC50b2tlbi52YWxbMF1dID0gaC5kZXNlcihtYXRjaGVzLnNsaWNlKG1hdGNoSW5kZXgsIG1hdGNoSW5kZXggKyBncm91cHMpKTtcbiAgICAgICAgfVxuICAgICAgICBtYXRjaEluZGV4ICs9IGdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFttYXRjaGVzLCBhbGxdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbWF0Y2hlcywge31dO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcykge1xuICBjb25zdCB0b0ZpZWxkID0gKHRva2VuKSA9PiB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgcmV0dXJuIFwibWlsbGlzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgIHJldHVybiBcInNlY29uZFwiO1xuICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICBjYXNlIFwiaFwiOlxuICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgcmV0dXJuIFwiaG91clwiO1xuICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICBjYXNlIFwib1wiOlxuICAgICAgICByZXR1cm4gXCJvcmRpbmFsXCI7XG4gICAgICBjYXNlIFwiTFwiOlxuICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgIHJldHVybiBcInllYXJcIjtcbiAgICAgIGNhc2UgXCJFXCI6XG4gICAgICBjYXNlIFwiY1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrZGF5XCI7XG4gICAgICBjYXNlIFwiV1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrTnVtYmVyXCI7XG4gICAgICBjYXNlIFwia1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrWWVhclwiO1xuICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgcmV0dXJuIFwicXVhcnRlclwiO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGxldCB6b25lID0gbnVsbDtcbiAgbGV0IHNwZWNpZmljT2Zmc2V0O1xuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMueikpIHtcbiAgICB6b25lID0gSUFOQVpvbmUuY3JlYXRlKG1hdGNoZXMueik7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHtcbiAgICBpZiAoIXpvbmUpIHtcbiAgICAgIHpvbmUgPSBuZXcgRml4ZWRPZmZzZXRab25lKG1hdGNoZXMuWik7XG4gICAgfVxuICAgIHNwZWNpZmljT2Zmc2V0ID0gbWF0Y2hlcy5aO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnEpKSB7XG4gICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuaCkpIHtcbiAgICBpZiAobWF0Y2hlcy5oIDwgMTIgJiYgbWF0Y2hlcy5hID09PSAxKSB7XG4gICAgICBtYXRjaGVzLmggKz0gMTI7XG4gICAgfSBlbHNlIGlmIChtYXRjaGVzLmggPT09IDEyICYmIG1hdGNoZXMuYSA9PT0gMCkge1xuICAgICAgbWF0Y2hlcy5oID0gMDtcbiAgICB9XG4gIH1cblxuICBpZiAobWF0Y2hlcy5HID09PSAwICYmIG1hdGNoZXMueSkge1xuICAgIG1hdGNoZXMueSA9IC1tYXRjaGVzLnk7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHtcbiAgICBtYXRjaGVzLlMgPSBwYXJzZU1pbGxpcyhtYXRjaGVzLnUpO1xuICB9XG5cbiAgY29uc3QgdmFscyA9IE9iamVjdC5rZXlzKG1hdGNoZXMpLnJlZHVjZSgociwgaykgPT4ge1xuICAgIGNvbnN0IGYgPSB0b0ZpZWxkKGspO1xuICAgIGlmIChmKSB7XG4gICAgICByW2ZdID0gbWF0Y2hlc1trXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcjtcbiAgfSwge30pO1xuXG4gIHJldHVybiBbdmFscywgem9uZSwgc3BlY2lmaWNPZmZzZXRdO1xufVxuXG5sZXQgZHVtbXlEYXRlVGltZUNhY2hlID0gbnVsbDtcblxuZnVuY3Rpb24gZ2V0RHVtbXlEYXRlVGltZSgpIHtcbiAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHtcbiAgICBkdW1teURhdGVUaW1lQ2FjaGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpO1xuICB9XG5cbiAgcmV0dXJuIGR1bW15RGF0ZVRpbWVDYWNoZTtcbn1cblxuZnVuY3Rpb24gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHRva2VuLCBsb2NhbGUpIHtcbiAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4udmFsKTtcblxuICBpZiAoIWZvcm1hdE9wdHMpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7XG4gIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdERhdGVUaW1lUGFydHMoZ2V0RHVtbXlEYXRlVGltZSgpKTtcblxuICBjb25zdCB0b2tlbnMgPSBwYXJ0cy5tYXAoKHApID0+IHRva2VuRm9yUGFydChwLCBsb2NhbGUsIGZvcm1hdE9wdHMpKTtcblxuICBpZiAodG9rZW5zLmluY2x1ZGVzKHVuZGVmaW5lZCkpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5mdW5jdGlvbiBleHBhbmRNYWNyb1Rva2Vucyh0b2tlbnMsIGxvY2FsZSkge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi50b2tlbnMubWFwKCh0KSA9PiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKSkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB0b2tlbnMgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm9ybWF0KSwgbG9jYWxlKSxcbiAgICB1bml0cyA9IHRva2Vucy5tYXAoKHQpID0+IHVuaXRGb3JUb2tlbih0LCBsb2NhbGUpKSxcbiAgICBkaXNxdWFsaWZ5aW5nVW5pdCA9IHVuaXRzLmZpbmQoKHQpID0+IHQuaW52YWxpZFJlYXNvbik7XG5cbiAgaWYgKGRpc3F1YWxpZnlpbmdVbml0KSB7XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgaW52YWxpZFJlYXNvbjogZGlzcXVhbGlmeWluZ1VuaXQuaW52YWxpZFJlYXNvbiB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFtyZWdleFN0cmluZywgaGFuZGxlcnNdID0gYnVpbGRSZWdleCh1bml0cyksXG4gICAgICByZWdleCA9IFJlZ0V4cChyZWdleFN0cmluZywgXCJpXCIpLFxuICAgICAgW3Jhd01hdGNoZXMsIG1hdGNoZXNdID0gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycyksXG4gICAgICBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldF0gPSBtYXRjaGVzXG4gICAgICAgID8gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKVxuICAgICAgICA6IFtudWxsLCBudWxsLCB1bmRlZmluZWRdO1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCBcImFcIikgJiYgaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJIXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXG4gICAgICAgIFwiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgcmVnZXgsIHJhd01hdGNoZXMsIG1hdGNoZXMsIHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB7IHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb24gfSA9IGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCk7XG4gIHJldHVybiBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZFJlYXNvbl07XG59XG4iLCAiaW1wb3J0IHtcbiAgaW50ZWdlckJldHdlZW4sXG4gIGlzTGVhcFllYXIsXG4gIHRpbWVPYmplY3QsXG4gIGRheXNJblllYXIsXG4gIGRheXNJbk1vbnRoLFxuICB3ZWVrc0luV2Vla1llYXIsXG4gIGlzSW50ZWdlcixcbn0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW52YWxpZC5qc1wiO1xuXG5jb25zdCBub25MZWFwTGFkZGVyID0gWzAsIDMxLCA1OSwgOTAsIDEyMCwgMTUxLCAxODEsIDIxMiwgMjQzLCAyNzMsIDMwNCwgMzM0XSxcbiAgbGVhcExhZGRlciA9IFswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNV07XG5cbmZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7XG4gIHJldHVybiBuZXcgSW52YWxpZChcbiAgICBcInVuaXQgb3V0IG9mIHJhbmdlXCIsXG4gICAgYHlvdSBzcGVjaWZpZWQgJHt2YWx1ZX0gKG9mIHR5cGUgJHt0eXBlb2YgdmFsdWV9KSBhcyBhICR7dW5pdH0sIHdoaWNoIGlzIGludmFsaWRgXG4gICk7XG59XG5cbmZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCAtIDEsIGRheSkpO1xuXG4gIGlmICh5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7XG4gIH1cblxuICBjb25zdCBqcyA9IGQuZ2V0VVRDRGF5KCk7XG5cbiAgcmV0dXJuIGpzID09PSAwID8gNyA6IGpzO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIHJldHVybiBkYXkgKyAoaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyKVttb250aCAtIDFdO1xufVxuXG5mdW5jdGlvbiB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpIHtcbiAgY29uc3QgdGFibGUgPSBpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIsXG4gICAgbW9udGgwID0gdGFibGUuZmluZEluZGV4KChpKSA9PiBpIDwgb3JkaW5hbCksXG4gICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07XG4gIHJldHVybiB7IG1vbnRoOiBtb250aDAgKyAxLCBkYXkgfTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdPYmosXG4gICAgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpLFxuICAgIHdlZWtkYXkgPSBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgbGV0IHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLFxuICAgIHdlZWtZZWFyO1xuXG4gIGlmICh3ZWVrTnVtYmVyIDwgMSkge1xuICAgIHdlZWtZZWFyID0geWVhciAtIDE7XG4gICAgd2Vla051bWJlciA9IHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAod2Vla051bWJlciA+IHdlZWtzSW5XZWVrWWVhcih5ZWFyKSkge1xuICAgIHdlZWtZZWFyID0geWVhciArIDE7XG4gICAgd2Vla051bWJlciA9IDE7XG4gIH0gZWxzZSB7XG4gICAgd2Vla1llYXIgPSB5ZWFyO1xuICB9XG5cbiAgcmV0dXJuIHsgd2Vla1llYXIsIHdlZWtOdW1iZXIsIHdlZWtkYXksIC4uLnRpbWVPYmplY3QoZ3JlZ09iaikgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtUb0dyZWdvcmlhbih3ZWVrRGF0YSkge1xuICBjb25zdCB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5IH0gPSB3ZWVrRGF0YSxcbiAgICB3ZWVrZGF5T2ZKYW40ID0gZGF5T2ZXZWVrKHdlZWtZZWFyLCAxLCA0KSxcbiAgICB5ZWFySW5EYXlzID0gZGF5c0luWWVhcih3ZWVrWWVhcik7XG5cbiAgbGV0IG9yZGluYWwgPSB3ZWVrTnVtYmVyICogNyArIHdlZWtkYXkgLSB3ZWVrZGF5T2ZKYW40IC0gMyxcbiAgICB5ZWFyO1xuXG4gIGlmIChvcmRpbmFsIDwgMSkge1xuICAgIHllYXIgPSB3ZWVrWWVhciAtIDE7XG4gICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpO1xuICB9IGVsc2UgaWYgKG9yZGluYWwgPiB5ZWFySW5EYXlzKSB7XG4gICAgeWVhciA9IHdlZWtZZWFyICsgMTtcbiAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpO1xuICB9IGVsc2Uge1xuICAgIHllYXIgPSB3ZWVrWWVhcjtcbiAgfVxuXG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdCh3ZWVrRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyZWdvcmlhblRvT3JkaW5hbChncmVnRGF0YSkge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdEYXRhO1xuICBjb25zdCBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSk7XG4gIHJldHVybiB7IHllYXIsIG9yZGluYWwsIC4uLnRpbWVPYmplY3QoZ3JlZ0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcmRpbmFsVG9HcmVnb3JpYW4ob3JkaW5hbERhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBvcmRpbmFsIH0gPSBvcmRpbmFsRGF0YTtcbiAgY29uc3QgeyBtb250aCwgZGF5IH0gPSB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpO1xuICByZXR1cm4geyB5ZWFyLCBtb250aCwgZGF5LCAuLi50aW1lT2JqZWN0KG9yZGluYWxEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZFdlZWtEYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLndlZWtZZWFyKSxcbiAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLFxuICAgIHZhbGlkV2Vla2RheSA9IGludGVnZXJCZXR3ZWVuKG9iai53ZWVrZGF5LCAxLCA3KTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtZZWFyXCIsIG9iai53ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkV2Vlaykge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtcIiwgb2JqLndlZWspO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWtkYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrZGF5XCIsIG9iai53ZWVrZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRPcmRpbmFsRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai55ZWFyKSxcbiAgICB2YWxpZE9yZGluYWwgPSBpbnRlZ2VyQmV0d2VlbihvYmoub3JkaW5hbCwgMSwgZGF5c0luWWVhcihvYmoueWVhcikpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkT3JkaW5hbCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm9yZGluYWxcIiwgb2JqLm9yZGluYWwpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRNb250aCA9IGludGVnZXJCZXR3ZWVuKG9iai5tb250aCwgMSwgMTIpLFxuICAgIHZhbGlkRGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLmRheSwgMSwgZGF5c0luTW9udGgob2JqLnllYXIsIG9iai5tb250aCkpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkTW9udGgpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtb250aFwiLCBvYmoubW9udGgpO1xuICB9IGVsc2UgaWYgKCF2YWxpZERheSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcImRheVwiLCBvYmouZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHtcbiAgY29uc3QgeyBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSA9IG9iajtcbiAgY29uc3QgdmFsaWRIb3VyID1cbiAgICAgIGludGVnZXJCZXR3ZWVuKGhvdXIsIDAsIDIzKSB8fFxuICAgICAgKGhvdXIgPT09IDI0ICYmIG1pbnV0ZSA9PT0gMCAmJiBzZWNvbmQgPT09IDAgJiYgbWlsbGlzZWNvbmQgPT09IDApLFxuICAgIHZhbGlkTWludXRlID0gaW50ZWdlckJldHdlZW4obWludXRlLCAwLCA1OSksXG4gICAgdmFsaWRTZWNvbmQgPSBpbnRlZ2VyQmV0d2VlbihzZWNvbmQsIDAsIDU5KSxcbiAgICB2YWxpZE1pbGxpc2Vjb25kID0gaW50ZWdlckJldHdlZW4obWlsbGlzZWNvbmQsIDAsIDk5OSk7XG5cbiAgaWYgKCF2YWxpZEhvdXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJob3VyXCIsIGhvdXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbnV0ZSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbnV0ZVwiLCBtaW51dGUpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInNlY29uZFwiLCBzZWNvbmQpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbGxpc2Vjb25kKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibWlsbGlzZWNvbmRcIiwgbWlsbGlzZWNvbmQpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuaW1wb3J0IEludGVydmFsIGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBJbmZvIGZyb20gXCIuL2luZm8uanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQge1xuICBpc1VuZGVmaW5lZCxcbiAgbWF5YmVBcnJheSxcbiAgaXNEYXRlLFxuICBpc051bWJlcixcbiAgYmVzdEJ5LFxuICBkYXlzSW5Nb250aCxcbiAgZGF5c0luWWVhcixcbiAgaXNMZWFwWWVhcixcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBub3JtYWxpemVPYmplY3QsXG4gIHJvdW5kVG8sXG4gIG9ialRvTG9jYWxUUyxcbiAgcGFkU3RhcnQsXG59IGZyb20gXCIuL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcbmltcG9ydCBkaWZmIGZyb20gXCIuL2ltcGwvZGlmZi5qc1wiO1xuaW1wb3J0IHsgcGFyc2VSRkMyODIyRGF0ZSwgcGFyc2VJU09EYXRlLCBwYXJzZUhUVFBEYXRlLCBwYXJzZVNRTCB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7IHBhcnNlRnJvbVRva2VucywgZXhwbGFpbkZyb21Ub2tlbnMgfSBmcm9tIFwiLi9pbXBsL3Rva2VuUGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBncmVnb3JpYW5Ub1dlZWssXG4gIHdlZWtUb0dyZWdvcmlhbixcbiAgZ3JlZ29yaWFuVG9PcmRpbmFsLFxuICBvcmRpbmFsVG9HcmVnb3JpYW4sXG4gIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhLFxuICBoYXNJbnZhbGlkV2Vla0RhdGEsXG4gIGhhc0ludmFsaWRPcmRpbmFsRGF0YSxcbiAgaGFzSW52YWxpZFRpbWVEYXRhLFxufSBmcm9tIFwiLi9pbXBsL2NvbnZlcnNpb25zLmpzXCI7XG5pbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2ltcGwvZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yLFxuICBJbnZhbGlkVW5pdEVycm9yLFxuICBJbnZhbGlkRGF0ZVRpbWVFcnJvcixcbn0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBEYXRlVGltZVwiO1xuY29uc3QgTUFYX0RBVEUgPSA4LjY0ZTE1O1xuXG5mdW5jdGlvbiB1bnN1cHBvcnRlZFpvbmUoem9uZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXCJ1bnN1cHBvcnRlZCB6b25lXCIsIGB0aGUgem9uZSBcIiR7em9uZS5uYW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbn1cblxuLy8gd2UgY2FjaGUgd2VlayBkYXRhIG9uIHRoZSBEVCBvYmplY3QgYW5kIHRoaXMgaW50ZXJtZWRpYXRlcyB0aGUgY2FjaGVcbmZ1bmN0aW9uIHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEoZHQpIHtcbiAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7XG4gICAgZHQud2Vla0RhdGEgPSBncmVnb3JpYW5Ub1dlZWsoZHQuYyk7XG4gIH1cbiAgcmV0dXJuIGR0LndlZWtEYXRhO1xufVxuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMsIFwibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zXCIuIGFsbCBcInNldHRlcnNcIiByZWFsbHkgdXNlIHRoaXNcbi8vIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hpbGUgb25seSBjaGFuZ2luZyBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzXG5mdW5jdGlvbiBjbG9uZShpbnN0LCBhbHRzKSB7XG4gIGNvbnN0IGN1cnJlbnQgPSB7XG4gICAgdHM6IGluc3QudHMsXG4gICAgem9uZTogaW5zdC56b25lLFxuICAgIGM6IGluc3QuYyxcbiAgICBvOiBpbnN0Lm8sXG4gICAgbG9jOiBpbnN0LmxvYyxcbiAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQsXG4gIH07XG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyAuLi5jdXJyZW50LCAuLi5hbHRzLCBvbGQ6IGN1cnJlbnQgfSk7XG59XG5cbi8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaFxuLy8gb2Zmc2V0IHdlJ2xsIHBpY2sgaW4gYW1iaWd1b3VzIGNhc2VzIChlLmcuIHRoZXJlIGFyZSB0d28gMyBBTXMgYi9jIEZhbGxiYWNrIERTVClcbmZ1bmN0aW9uIGZpeE9mZnNldChsb2NhbFRTLCBvLCB0eikge1xuICAvLyBPdXIgVVRDIHRpbWUgaXMganVzdCBhIGd1ZXNzIGJlY2F1c2Ugb3VyIG9mZnNldCBpcyBqdXN0IGEgZ3Vlc3NcbiAgbGV0IHV0Y0d1ZXNzID0gbG9jYWxUUyAtIG8gKiA2MCAqIDEwMDA7XG5cbiAgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0c1xuICBjb25zdCBvMiA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG5cbiAgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlIGFuZCB3ZSdyZSBkb25lXG4gIGlmIChvID09PSBvMikge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG9dO1xuICB9XG5cbiAgLy8gSWYgbm90LCBjaGFuZ2UgdGhlIHRzIGJ5IHRoZSBkaWZmZXJlbmNlIGluIHRoZSBvZmZzZXRcbiAgdXRjR3Vlc3MgLT0gKG8yIC0gbykgKiA2MCAqIDEwMDA7XG5cbiAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lXG4gIGNvbnN0IG8zID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTtcbiAgaWYgKG8yID09PSBvMykge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG8yXTtcbiAgfVxuXG4gIC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHRoZSB3ZSBkb24ndCBhZGp1c3QgdGhlIHRpbWVcbiAgcmV0dXJuIFtsb2NhbFRTIC0gTWF0aC5taW4obzIsIG8zKSAqIDYwICogMTAwMCwgTWF0aC5tYXgobzIsIG8zKV07XG59XG5cbi8vIGNvbnZlcnQgYW4gZXBvY2ggdGltZXN0YW1wIGludG8gYSBjYWxlbmRhciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0XG5mdW5jdGlvbiB0c1RvT2JqKHRzLCBvZmZzZXQpIHtcbiAgdHMgKz0gb2Zmc2V0ICogNjAgKiAxMDAwO1xuXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgcmV0dXJuIHtcbiAgICB5ZWFyOiBkLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgbW9udGg6IGQuZ2V0VVRDTW9udGgoKSArIDEsXG4gICAgZGF5OiBkLmdldFVUQ0RhdGUoKSxcbiAgICBob3VyOiBkLmdldFVUQ0hvdXJzKCksXG4gICAgbWludXRlOiBkLmdldFVUQ01pbnV0ZXMoKSxcbiAgICBzZWNvbmQ6IGQuZ2V0VVRDU2Vjb25kcygpLFxuICAgIG1pbGxpc2Vjb25kOiBkLmdldFVUQ01pbGxpc2Vjb25kcygpLFxuICB9O1xufVxuXG4vLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgZXBvY2ggdGltZXN0YW1wXG5mdW5jdGlvbiBvYmpUb1RTKG9iaiwgb2Zmc2V0LCB6b25lKSB7XG4gIHJldHVybiBmaXhPZmZzZXQob2JqVG9Mb2NhbFRTKG9iaiksIG9mZnNldCwgem9uZSk7XG59XG5cbi8vIGNyZWF0ZSBhIG5ldyBEVCBpbnN0YW5jZSBieSBhZGRpbmcgYSBkdXJhdGlvbiwgYWRqdXN0aW5nIGZvciBEU1RzXG5mdW5jdGlvbiBhZGp1c3RUaW1lKGluc3QsIGR1cikge1xuICBjb25zdCBvUHJlID0gaW5zdC5vLFxuICAgIHllYXIgPSBpbnN0LmMueWVhciArIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLFxuICAgIGMgPSB7XG4gICAgICAuLi5pbnN0LmMsXG4gICAgICB5ZWFyLFxuICAgICAgbW9udGgsXG4gICAgICBkYXk6XG4gICAgICAgIE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci5kYXlzKSArXG4gICAgICAgIE1hdGgudHJ1bmMoZHVyLndlZWtzKSAqIDcsXG4gICAgfSxcbiAgICBtaWxsaXNUb0FkZCA9IER1cmF0aW9uLmZyb21PYmplY3Qoe1xuICAgICAgeWVhcnM6IGR1ci55ZWFycyAtIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICAgIHF1YXJ0ZXJzOiBkdXIucXVhcnRlcnMgLSBNYXRoLnRydW5jKGR1ci5xdWFydGVycyksXG4gICAgICBtb250aHM6IGR1ci5tb250aHMgLSBNYXRoLnRydW5jKGR1ci5tb250aHMpLFxuICAgICAgd2Vla3M6IGR1ci53ZWVrcyAtIE1hdGgudHJ1bmMoZHVyLndlZWtzKSxcbiAgICAgIGRheXM6IGR1ci5kYXlzIC0gTWF0aC50cnVuYyhkdXIuZGF5cyksXG4gICAgICBob3VyczogZHVyLmhvdXJzLFxuICAgICAgbWludXRlczogZHVyLm1pbnV0ZXMsXG4gICAgICBzZWNvbmRzOiBkdXIuc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kczogZHVyLm1pbGxpc2Vjb25kcyxcbiAgICB9KS5hcyhcIm1pbGxpc2Vjb25kc1wiKSxcbiAgICBsb2NhbFRTID0gb2JqVG9Mb2NhbFRTKGMpO1xuXG4gIGxldCBbdHMsIG9dID0gZml4T2Zmc2V0KGxvY2FsVFMsIG9QcmUsIGluc3Quem9uZSk7XG5cbiAgaWYgKG1pbGxpc1RvQWRkICE9PSAwKSB7XG4gICAgdHMgKz0gbWlsbGlzVG9BZGQ7XG4gICAgLy8gdGhhdCBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIG9mZnNldCBieSBnb2luZyBvdmVyIGEgRFNULCBidXQgd2Ugd2FudCB0byBrZWVwIHRoZSB0cyB0aGUgc2FtZVxuICAgIG8gPSBpbnN0LnpvbmUub2Zmc2V0KHRzKTtcbiAgfVxuXG4gIHJldHVybiB7IHRzLCBvIH07XG59XG5cbi8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlc1xuLy8gYnkgaGFuZGxpbmcgdGhlIHpvbmUgb3B0aW9uc1xuZnVuY3Rpb24gcGFyc2VEYXRhVG9EYXRlVGltZShwYXJzZWQsIHBhcnNlZFpvbmUsIG9wdHMsIGZvcm1hdCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpIHtcbiAgY29uc3QgeyBzZXRab25lLCB6b25lIH0gPSBvcHRzO1xuICBpZiAocGFyc2VkICYmIE9iamVjdC5rZXlzKHBhcnNlZCkubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3QgaW50ZXJwcmV0YXRpb25ab25lID0gcGFyc2VkWm9uZSB8fCB6b25lLFxuICAgICAgaW5zdCA9IERhdGVUaW1lLmZyb21PYmplY3QocGFyc2VkLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHpvbmU6IGludGVycHJldGF0aW9uWm9uZSxcbiAgICAgICAgc3BlY2lmaWNPZmZzZXQsXG4gICAgICB9KTtcbiAgICByZXR1cm4gc2V0Wm9uZSA/IGluc3QgOiBpbnN0LnNldFpvbmUoem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoXG4gICAgICBuZXcgSW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgJHtmb3JtYXR9YClcbiAgICApO1xuICB9XG59XG5cbi8vIGlmIHlvdSB3YW50IHRvIG91dHB1dCBhIHRlY2huaWNhbCBmb3JtYXQgKGUuZy4gUkZDIDI4MjIpLCB0aGlzIGhlbHBlclxuLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzXG5mdW5jdGlvbiB0b1RlY2hGb3JtYXQoZHQsIGZvcm1hdCwgYWxsb3daID0gdHJ1ZSkge1xuICByZXR1cm4gZHQuaXNWYWxpZFxuICAgID8gRm9ybWF0dGVyLmNyZWF0ZShMb2NhbGUuY3JlYXRlKFwiZW4tVVNcIiksIHtcbiAgICAgICAgYWxsb3daLFxuICAgICAgICBmb3JjZVNpbXBsZTogdHJ1ZSxcbiAgICAgIH0pLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm9ybWF0KVxuICAgIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gdG9JU09EYXRlKG8sIGV4dGVuZGVkKSB7XG4gIGNvbnN0IGxvbmdGb3JtYXQgPSBvLmMueWVhciA+IDk5OTkgfHwgby5jLnllYXIgPCAwO1xuICBsZXQgYyA9IFwiXCI7XG4gIGlmIChsb25nRm9ybWF0ICYmIG8uYy55ZWFyID49IDApIGMgKz0gXCIrXCI7XG4gIGMgKz0gcGFkU3RhcnQoby5jLnllYXIsIGxvbmdGb3JtYXQgPyA2IDogNCk7XG5cbiAgaWYgKGV4dGVuZGVkKSB7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9IGVsc2Uge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG5mdW5jdGlvbiB0b0lTT1RpbWUoXG4gIG8sXG4gIGV4dGVuZGVkLFxuICBzdXBwcmVzc1NlY29uZHMsXG4gIHN1cHByZXNzTWlsbGlzZWNvbmRzLFxuICBpbmNsdWRlT2Zmc2V0LFxuICBleHRlbmRlZFpvbmVcbikge1xuICBsZXQgYyA9IHBhZFN0YXJ0KG8uYy5ob3VyKTtcbiAgaWYgKGV4dGVuZGVkKSB7XG4gICAgYyArPSBcIjpcIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICAgIGlmIChvLmMuc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc1NlY29uZHMpIHtcbiAgICAgIGMgKz0gXCI6XCI7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbnV0ZSk7XG4gIH1cblxuICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgYyArPSBwYWRTdGFydChvLmMuc2Vjb25kKTtcblxuICAgIGlmIChvLmMubWlsbGlzZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzTWlsbGlzZWNvbmRzKSB7XG4gICAgICBjICs9IFwiLlwiO1xuICAgICAgYyArPSBwYWRTdGFydChvLmMubWlsbGlzZWNvbmQsIDMpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChpbmNsdWRlT2Zmc2V0KSB7XG4gICAgaWYgKG8uaXNPZmZzZXRGaXhlZCAmJiBvLm9mZnNldCA9PT0gMCAmJiAhZXh0ZW5kZWRab25lKSB7XG4gICAgICBjICs9IFwiWlwiO1xuICAgIH0gZWxzZSBpZiAoby5vIDwgMCkge1xuICAgICAgYyArPSBcIi1cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYygtby5vIC8gNjApKTtcbiAgICAgIGMgKz0gXCI6XCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAlIDYwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGMgKz0gXCIrXCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoby5vIC8gNjApKTtcbiAgICAgIGMgKz0gXCI6XCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoby5vICUgNjApKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXh0ZW5kZWRab25lKSB7XG4gICAgYyArPSBcIltcIiArIG8uem9uZS5pYW5hTmFtZSArIFwiXVwiO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG4vLyBkZWZhdWx0cyBmb3IgdW5zcGVjaWZpZWQgdW5pdHMgaW4gdGhlIHN1cHBvcnRlZCBjYWxlbmRhcnNcbmNvbnN0IGRlZmF1bHRVbml0VmFsdWVzID0ge1xuICAgIG1vbnRoOiAxLFxuICAgIGRheTogMSxcbiAgICBob3VyOiAwLFxuICAgIG1pbnV0ZTogMCxcbiAgICBzZWNvbmQ6IDAsXG4gICAgbWlsbGlzZWNvbmQ6IDAsXG4gIH0sXG4gIGRlZmF1bHRXZWVrVW5pdFZhbHVlcyA9IHtcbiAgICB3ZWVrTnVtYmVyOiAxLFxuICAgIHdlZWtkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXMgPSB7XG4gICAgb3JkaW5hbDogMSxcbiAgICBob3VyOiAwLFxuICAgIG1pbnV0ZTogMCxcbiAgICBzZWNvbmQ6IDAsXG4gICAgbWlsbGlzZWNvbmQ6IDAsXG4gIH07XG5cbi8vIFVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzLCBzb3J0ZWQgYnkgYmlnbmVzc1xuY29uc3Qgb3JkZXJlZFVuaXRzID0gW1wieWVhclwiLCBcIm1vbnRoXCIsIFwiZGF5XCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdLFxuICBvcmRlcmVkV2Vla1VuaXRzID0gW1xuICAgIFwid2Vla1llYXJcIixcbiAgICBcIndlZWtOdW1iZXJcIixcbiAgICBcIndlZWtkYXlcIixcbiAgICBcImhvdXJcIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwic2Vjb25kXCIsXG4gICAgXCJtaWxsaXNlY29uZFwiLFxuICBdLFxuICBvcmRlcmVkT3JkaW5hbFVuaXRzID0gW1wieWVhclwiLCBcIm9yZGluYWxcIiwgXCJob3VyXCIsIFwibWludXRlXCIsIFwic2Vjb25kXCIsIFwibWlsbGlzZWNvbmRcIl07XG5cbi8vIHN0YW5kYXJkaXplIGNhc2UgYW5kIHBsdXJhbGl0eSBpbiB1bml0c1xuZnVuY3Rpb24gbm9ybWFsaXplVW5pdCh1bml0KSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB7XG4gICAgeWVhcjogXCJ5ZWFyXCIsXG4gICAgeWVhcnM6IFwieWVhclwiLFxuICAgIG1vbnRoOiBcIm1vbnRoXCIsXG4gICAgbW9udGhzOiBcIm1vbnRoXCIsXG4gICAgZGF5OiBcImRheVwiLFxuICAgIGRheXM6IFwiZGF5XCIsXG4gICAgaG91cjogXCJob3VyXCIsXG4gICAgaG91cnM6IFwiaG91clwiLFxuICAgIG1pbnV0ZTogXCJtaW51dGVcIixcbiAgICBtaW51dGVzOiBcIm1pbnV0ZVwiLFxuICAgIHF1YXJ0ZXI6IFwicXVhcnRlclwiLFxuICAgIHF1YXJ0ZXJzOiBcInF1YXJ0ZXJcIixcbiAgICBzZWNvbmQ6IFwic2Vjb25kXCIsXG4gICAgc2Vjb25kczogXCJzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZDogXCJtaWxsaXNlY29uZFwiLFxuICAgIG1pbGxpc2Vjb25kczogXCJtaWxsaXNlY29uZFwiLFxuICAgIHdlZWtkYXk6IFwid2Vla2RheVwiLFxuICAgIHdlZWtkYXlzOiBcIndlZWtkYXlcIixcbiAgICB3ZWVrbnVtYmVyOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVrc251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla251bWJlcnM6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWt5ZWFyOiBcIndlZWtZZWFyXCIsXG4gICAgd2Vla3llYXJzOiBcIndlZWtZZWFyXCIsXG4gICAgb3JkaW5hbDogXCJvcmRpbmFsXCIsXG4gIH1bdW5pdC50b0xvd2VyQ2FzZSgpXTtcblxuICBpZiAoIW5vcm1hbGl6ZWQpIHRocm93IG5ldyBJbnZhbGlkVW5pdEVycm9yKHVuaXQpO1xuXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG4vLyB0aGlzIGlzIGEgZHVtYmVkIGRvd24gdmVyc2lvbiBvZiBmcm9tT2JqZWN0KCkgdGhhdCBydW5zIGFib3V0IDYwJSBmYXN0ZXJcbi8vIGJ1dCBkb2Vzbid0IGRvIGFueSB2YWxpZGF0aW9uLCBtYWtlcyBhIGJ1bmNoIG9mIGFzc3VtcHRpb25zIGFib3V0IHdoYXQgdW5pdHNcbi8vIGFyZSBwcmVzZW50LCBhbmQgc28gb24uXG5mdW5jdGlvbiBxdWlja0RUKG9iaiwgb3B0cykge1xuICBjb25zdCB6b25lID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICB0c05vdyA9IFNldHRpbmdzLm5vdygpO1xuXG4gIGxldCB0cywgbztcblxuICAvLyBhc3N1bWUgd2UgaGF2ZSB0aGUgaGlnaGVyLW9yZGVyIHVuaXRzXG4gIGlmICghaXNVbmRlZmluZWQob2JqLnllYXIpKSB7XG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKG9ialt1XSkpIHtcbiAgICAgICAgb2JqW3VdID0gZGVmYXVsdFVuaXRWYWx1ZXNbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG9iaik7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldFByb3ZpcyA9IHpvbmUub2Zmc2V0KHRzTm93KTtcbiAgICBbdHMsIG9dID0gb2JqVG9UUyhvYmosIG9mZnNldFByb3Zpcywgem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgdHMgPSB0c05vdztcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyB0cywgem9uZSwgbG9jLCBvIH0pO1xufVxuXG5mdW5jdGlvbiBkaWZmUmVsYXRpdmUoc3RhcnQsIGVuZCwgb3B0cykge1xuICBjb25zdCByb3VuZCA9IGlzVW5kZWZpbmVkKG9wdHMucm91bmQpID8gdHJ1ZSA6IG9wdHMucm91bmQsXG4gICAgZm9ybWF0ID0gKGMsIHVuaXQpID0+IHtcbiAgICAgIGMgPSByb3VuZFRvKGMsIHJvdW5kIHx8IG9wdHMuY2FsZW5kYXJ5ID8gMCA6IDIsIHRydWUpO1xuICAgICAgY29uc3QgZm9ybWF0dGVyID0gZW5kLmxvYy5jbG9uZShvcHRzKS5yZWxGb3JtYXR0ZXIob3B0cyk7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChjLCB1bml0KTtcbiAgICB9LFxuICAgIGRpZmZlciA9ICh1bml0KSA9PiB7XG4gICAgICBpZiAob3B0cy5jYWxlbmRhcnkpIHtcbiAgICAgICAgaWYgKCFlbmQuaGFzU2FtZShzdGFydCwgdW5pdCkpIHtcbiAgICAgICAgICByZXR1cm4gZW5kLnN0YXJ0T2YodW5pdCkuZGlmZihzdGFydC5zdGFydE9mKHVuaXQpLCB1bml0KS5nZXQodW5pdCk7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgaWYgKG9wdHMudW5pdCkge1xuICAgIHJldHVybiBmb3JtYXQoZGlmZmVyKG9wdHMudW5pdCksIG9wdHMudW5pdCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHVuaXQgb2Ygb3B0cy51bml0cykge1xuICAgIGNvbnN0IGNvdW50ID0gZGlmZmVyKHVuaXQpO1xuICAgIGlmIChNYXRoLmFicyhjb3VudCkgPj0gMSkge1xuICAgICAgcmV0dXJuIGZvcm1hdChjb3VudCwgdW5pdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtYXQoc3RhcnQgPiBlbmQgPyAtMCA6IDAsIG9wdHMudW5pdHNbb3B0cy51bml0cy5sZW5ndGggLSAxXSk7XG59XG5cbmZ1bmN0aW9uIGxhc3RPcHRzKGFyZ0xpc3QpIHtcbiAgbGV0IG9wdHMgPSB7fSxcbiAgICBhcmdzO1xuICBpZiAoYXJnTGlzdC5sZW5ndGggPiAwICYmIHR5cGVvZiBhcmdMaXN0W2FyZ0xpc3QubGVuZ3RoIC0gMV0gPT09IFwib2JqZWN0XCIpIHtcbiAgICBvcHRzID0gYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdO1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpLnNsaWNlKDAsIGFyZ0xpc3QubGVuZ3RoIC0gMSk7XG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCk7XG4gIH1cbiAgcmV0dXJuIFtvcHRzLCBhcmdzXTtcbn1cblxuLyoqXG4gKiBBIERhdGVUaW1lIGlzIGFuIGltbXV0YWJsZSBkYXRhIHN0cnVjdHVyZSByZXByZXNlbnRpbmcgYSBzcGVjaWZpYyBkYXRlIGFuZCB0aW1lIGFuZCBhY2NvbXBhbnlpbmcgbWV0aG9kcy4gSXQgY29udGFpbnMgY2xhc3MgYW5kIGluc3RhbmNlIG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogQSBEYXRlVGltZSBjb21wcmlzZXMgb2Y6XG4gKiAqIEEgdGltZXN0YW1wLiBFYWNoIERhdGVUaW1lIGluc3RhbmNlIHJlZmVycyB0byBhIHNwZWNpZmljIG1pbGxpc2Vjb25kIG9mIHRoZSBVbml4IGVwb2NoLlxuICogKiBBIHRpbWUgem9uZS4gRWFjaCBpbnN0YW5jZSBpcyBjb25zaWRlcmVkIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lmaWMgem9uZSAoYnkgZGVmYXVsdCB0aGUgbG9jYWwgc3lzdGVtJ3Mgem9uZSkuXG4gKiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0aGF0IGVmZmVjdCBob3cgb3V0cHV0IHN0cmluZ3MgYXJlIGZvcm1hdHRlZCwgc3VjaCBhcyBgbG9jYWxlYCwgYG51bWJlcmluZ1N5c3RlbWAsIGFuZCBgb3V0cHV0Q2FsZW5kYXJgLlxuICpcbiAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiB0aGUgbW9zdCBjb21tb25seSB1c2VkIGZ1bmN0aW9uYWxpdHkgaXQgcHJvdmlkZXM6XG4gKlxuICogKiAqKkNyZWF0aW9uKio6IFRvIGNyZWF0ZSBhIERhdGVUaW1lIGZyb20gaXRzIGNvbXBvbmVudHMsIHVzZSBvbmUgb2YgaXRzIGZhY3RvcnkgY2xhc3MgbWV0aG9kczoge0BsaW5rIERhdGVUaW1lI2xvY2FsfSwge0BsaW5rIERhdGVUaW1lI3V0Y30sIGFuZCAobW9zdCBmbGV4aWJseSkge0BsaW5rIERhdGVUaW1lI2Zyb21PYmplY3R9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBzdGFuZGFyZCBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21JU099LCB7QGxpbmsgRGF0ZVRpbWUjZnJvbUhUVFB9LCBhbmQge0BsaW5rIERhdGVUaW1lI2Zyb21SRkMyODIyfS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgY3VzdG9tIHN0cmluZyBmb3JtYXQsIHVzZSB7QGxpbmsgRGF0ZVRpbWUjZnJvbUZvcm1hdH0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIG5hdGl2ZSBKUyBkYXRlLCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21KU0RhdGV9LlxuICogKiAqKkdyZWdvcmlhbiBjYWxlbmRhciBhbmQgdGltZSoqOiBUbyBleGFtaW5lIHRoZSBHcmVnb3JpYW4gcHJvcGVydGllcyBvZiBhIERhdGVUaW1lIGluZGl2aWR1YWxseSAoaS5lIGFzIG9wcG9zZWQgdG8gY29sbGVjdGl2ZWx5IHRocm91Z2gge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSksIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjbW9udGh9LFxuICoge0BsaW5rIERhdGVUaW1lI2RheX0sIHtAbGluayBEYXRlVGltZSNob3VyfSwge0BsaW5rIERhdGVUaW1lI21pbnV0ZX0sIHtAbGluayBEYXRlVGltZSNzZWNvbmR9LCB7QGxpbmsgRGF0ZVRpbWUjbWlsbGlzZWNvbmR9IGFjY2Vzc29ycy5cbiAqICogKipXZWVrIGNhbGVuZGFyKio6IEZvciBJU08gd2VlayBjYWxlbmRhciBhdHRyaWJ1dGVzLCBzZWUgdGhlIHtAbGluayBEYXRlVGltZSN3ZWVrWWVhcn0sIHtAbGluayBEYXRlVGltZSN3ZWVrTnVtYmVyfSwgYW5kIHtAbGluayBEYXRlVGltZSN3ZWVrZGF5fSBhY2Nlc3NvcnMuXG4gKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSB0aGUge0BsaW5rIERhdGVUaW1lI2xvY2FsZX0gYW5kIHtAbGluayBEYXRlVGltZSNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqOiBUbyB0cmFuc2Zvcm0gdGhlIERhdGVUaW1lIGludG8gb3RoZXIgRGF0ZVRpbWVzLCB1c2Uge0BsaW5rIERhdGVUaW1lI3NldH0sIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0sIHtAbGluayBEYXRlVGltZSNzZXRab25lfSwge0BsaW5rIERhdGVUaW1lI3NldExvY2FsZX0sIHtAbGluayBEYXRlVGltZS5wbHVzfSwge0BsaW5rIERhdGVUaW1lI21pbnVzfSwge0BsaW5rIERhdGVUaW1lI2VuZE9mfSwge0BsaW5rIERhdGVUaW1lI3N0YXJ0T2Z9LCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9LCBhbmQge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9LlxuICogKiAqKk91dHB1dCoqOiBUbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmV9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SZWxhdGl2ZUNhbGVuZGFyfSwge0BsaW5rIERhdGVUaW1lI3RvSlNPTn0sIHtAbGluayBEYXRlVGltZSN0b0lTT30sIHtAbGluayBEYXRlVGltZSN0b0hUVFB9LCB7QGxpbmsgRGF0ZVRpbWUjdG9PYmplY3R9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SRkMyODIyfSwge0BsaW5rIERhdGVUaW1lI3RvU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSwge0BsaW5rIERhdGVUaW1lI3RvTWlsbGlzfSBhbmQge0BsaW5rIERhdGVUaW1lI3RvSlNEYXRlfS5cbiAqXG4gKiBUaGVyZSdzIHBsZW50eSBvdGhlcnMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRpbWUgem9uZXMsIGFsdGVybmF0aXZlIGNhbGVuZGFycywgdmFsaWRpdHksIGFuZCBzbyBvbiwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRlVGltZSB7XG4gIC8qKlxuICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIGNvbnN0IHpvbmUgPSBjb25maWcuem9uZSB8fCBTZXR0aW5ncy5kZWZhdWx0Wm9uZTtcblxuICAgIGxldCBpbnZhbGlkID1cbiAgICAgIGNvbmZpZy5pbnZhbGlkIHx8XG4gICAgICAoTnVtYmVyLmlzTmFOKGNvbmZpZy50cykgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsKSB8fFxuICAgICAgKCF6b25lLmlzVmFsaWQgPyB1bnN1cHBvcnRlZFpvbmUoem9uZSkgOiBudWxsKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnRzID0gaXNVbmRlZmluZWQoY29uZmlnLnRzKSA/IFNldHRpbmdzLm5vdygpIDogY29uZmlnLnRzO1xuXG4gICAgbGV0IGMgPSBudWxsLFxuICAgICAgbyA9IG51bGw7XG4gICAgaWYgKCFpbnZhbGlkKSB7XG4gICAgICBjb25zdCB1bmNoYW5nZWQgPSBjb25maWcub2xkICYmIGNvbmZpZy5vbGQudHMgPT09IHRoaXMudHMgJiYgY29uZmlnLm9sZC56b25lLmVxdWFscyh6b25lKTtcblxuICAgICAgaWYgKHVuY2hhbmdlZCkge1xuICAgICAgICBbYywgb10gPSBbY29uZmlnLm9sZC5jLCBjb25maWcub2xkLm9dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3QgPSB6b25lLm9mZnNldCh0aGlzLnRzKTtcbiAgICAgICAgYyA9IHRzVG9PYmoodGhpcy50cywgb3QpO1xuICAgICAgICBpbnZhbGlkID0gTnVtYmVyLmlzTmFOKGMueWVhcikgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsO1xuICAgICAgICBjID0gaW52YWxpZCA/IG51bGwgOiBjO1xuICAgICAgICBvID0gaW52YWxpZCA/IG51bGwgOiBvdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLl96b25lID0gem9uZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy53ZWVrRGF0YSA9IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5jID0gYztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLm8gPSBvO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkRhdGVUaW1lID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIENPTlNUUlVDVFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICpcbiAgICogVXNlIFNldHRpbmdzIHRvIG92ZXJyaWRlIHRoZXNlIGRlZmF1bHQgdmFsdWVzIGlmIG5lZWRlZC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBub3coKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbG9jYWwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgbG9jYWwoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW21vbnRoPTFdIC0gVGhlIG1vbnRoLCAxLWluZGV4ZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKHsgem9uZTogXCJBbWVyaWNhL05ld19Zb3JrXCIgfSkgICAgICAvL34+IG5vdywgaW4gVVMgZWFzdCBjb2FzdCB0aW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDAsIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCB7IHpvbmU6IFwidXRjXCIgfSkgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDAsIGluIFVUQ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwLCA3NjUpICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbG9jYWwoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBpbiBVVENcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgdXRjKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtob3VyPTBdIC0gVGhlIGhvdXIgb2YgdGhlIGRheSwgaW4gMjQtaG91ciB0aW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc2Vjb25kPTBdIC0gVGhlIHNlY29uZCBvZiB0aGUgbWludXRlLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaWxsaXNlY29uZD0wXSAtIFRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgOTk5XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFogd2l0aCBhIEZyZW5jaCBsb2NhbGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1LCB7IGxvY2FsZTogXCJmclwiIH0pIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIHV0YygpIHtcbiAgICBjb25zdCBbb3B0cywgYXJnc10gPSBsYXN0T3B0cyhhcmd1bWVudHMpLFxuICAgICAgW3llYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF0gPSBhcmdzO1xuXG4gICAgb3B0cy56b25lID0gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIHJldHVybiBxdWlja0RUKHsgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0LiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNEYXRlKGRhdGUsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHRzID0gaXNEYXRlKGRhdGUpID8gZGF0ZS52YWx1ZU9mKCkgOiBOYU47XG4gICAgaWYgKE51bWJlci5pc05hTih0cykpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiaW52YWxpZCBpbnB1dFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB6b25lVG9Vc2UgPSBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lVG9Vc2UpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVUaW1lKHtcbiAgICAgIHRzOiB0cyxcbiAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG1pbGxpc2Vjb25kcyAtIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKG1pbGxpc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihtaWxsaXNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBtaWxsaXNlY29uZHN9IHdpdGggdmFsdWUgJHttaWxsaXNlY29uZHN9YFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKG1pbGxpc2Vjb25kcyA8IC1NQVhfREFURSB8fCBtaWxsaXNlY29uZHMgPiBNQVhfREFURSkge1xuICAgICAgLy8gdGhpcyBpc24ndCBwZXJmZWN0IGJlY2F1c2UgYmVjYXVzZSB3ZSBjYW4gc3RpbGwgZW5kIHVwIG91dCBvZiByYW5nZSBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgc2hpZnRpbmcsIGJ1dCBpdCdzIGEgc3RhcnRcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiVGltZXN0YW1wIG91dCBvZiByYW5nZVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBtaWxsaXNlY29uZHMsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzZWNvbmRzIC0gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tU2Vjb25kcyhzZWNvbmRzLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIWlzTnVtYmVyKHNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBzZWNvbmRzICogMTAwMCxcbiAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRpb25zKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXInIGFuZCAnaG91cicgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb21cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFyIC0gYSB5ZWFyLCBzdWNoIGFzIDE5ODdcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aCAtIGEgbW9udGgsIDEtMTJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXkgLSBhIGRheSBvZiB0aGUgbW9udGgsIDEtMzEsIGRlcGVuZGluZyBvbiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5vcmRpbmFsIC0gZGF5IG9mIHRoZSB5ZWFyLCAxLTM2NSBvciAzNjZcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrWWVhciAtIGFuIElTTyB3ZWVrIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrTnVtYmVyIC0gYW4gSVNPIHdlZWsgbnVtYmVyLCBiZXR3ZWVuIDEgYW5kIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrZGF5IC0gYW4gSVNPIHdlZWtkYXksIDEtNywgd2hlcmUgMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouaG91ciAtIGhvdXIgb2YgdGhlIGRheSwgMC0yM1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZSAtIG1pbnV0ZSBvZiB0aGUgaG91ciwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZCAtIHNlY29uZCBvZiB0aGUgbWludXRlLCAwLTU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmQgLSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCAwLTk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGludGVycHJldCB0aGUgbnVtYmVycyBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXIgem9uZS4gQ2FuIHRha2UgYW55IHZhbHVlIHRha2VuIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBzZXRab25lKClcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIsIG1vbnRoOiA1LCBkYXk6IDI1fSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIgfSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSkgLy9+PiB0b2RheSBhdCAxMDoyNjowNlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICd1dGMnIH0pLFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdsb2NhbCcgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnQW1lcmljYS9OZXdfWW9yaycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHdlZWtZZWFyOiAyMDE2LCB3ZWVrTnVtYmVyOiAyLCB3ZWVrZGF5OiAzIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzIwMTYtMDEtMTMnXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBvYmogPSBvYmogfHwge307XG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHNOb3cgPSBTZXR0aW5ncy5ub3coKSxcbiAgICAgIG9mZnNldFByb3ZpcyA9ICFpc1VuZGVmaW5lZChvcHRzLnNwZWNpZmljT2Zmc2V0KVxuICAgICAgICA/IG9wdHMuc3BlY2lmaWNPZmZzZXRcbiAgICAgICAgOiB6b25lVG9Vc2Uub2Zmc2V0KHRzTm93KSxcbiAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVVbml0KSxcbiAgICAgIGNvbnRhaW5zT3JkaW5hbCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpLFxuICAgICAgY29udGFpbnNHcmVnb3JZZWFyID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQueWVhciksXG4gICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksXG4gICAgICBjb250YWluc0dyZWdvciA9IGNvbnRhaW5zR3JlZ29yWWVhciB8fCBjb250YWluc0dyZWdvck1ELFxuICAgICAgZGVmaW5pdGVXZWVrRGVmID0gbm9ybWFsaXplZC53ZWVrWWVhciB8fCBub3JtYWxpemVkLndlZWtOdW1iZXIsXG4gICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKTtcblxuICAgIC8vIGNhc2VzOlxuICAgIC8vIGp1c3QgYSB3ZWVrZGF5IC0+IHRoaXMgd2VlaydzIGluc3RhbmNlIG9mIHRoYXQgd2Vla2RheSwgbm8gd29ycmllc1xuICAgIC8vIChncmVnb3JpYW4gZGF0YSBvciBvcmRpbmFsKSArICh3ZWVrWWVhciBvciB3ZWVrTnVtYmVyKSAtPiBlcnJvclxuICAgIC8vIChncmVnb3JpYW4gbW9udGggb3IgZGF5KSArIG9yZGluYWwgLT4gZXJyb3JcbiAgICAvLyBvdGhlcndpc2UganVzdCB1c2Ugd2Vla3Mgb3Igb3JkaW5hbHMgb3IgZ3JlZ29yaWFuLCBkZXBlbmRpbmcgb24gd2hhdCdzIHNwZWNpZmllZFxuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZVdlZWtEYXRhID0gZGVmaW5pdGVXZWVrRGVmIHx8IChub3JtYWxpemVkLndlZWtkYXkgJiYgIWNvbnRhaW5zR3JlZ29yKTtcblxuICAgIC8vIGNvbmZpZ3VyZSBvdXJzZWx2ZXMgdG8gZGVhbCB3aXRoIGdyZWdvcmlhbiBkYXRlcyBvciB3ZWVrIHN0dWZmXG4gICAgbGV0IHVuaXRzLFxuICAgICAgZGVmYXVsdFZhbHVlcyxcbiAgICAgIG9iak5vdyA9IHRzVG9PYmoodHNOb3csIG9mZnNldFByb3Zpcyk7XG4gICAgaWYgKHVzZVdlZWtEYXRhKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRXZWVrVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFdlZWtVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9XZWVrKG9iak5vdyk7XG4gICAgfSBlbHNlIGlmIChjb250YWluc09yZGluYWwpIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZE9yZGluYWxVbml0cztcbiAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXM7XG4gICAgICBvYmpOb3cgPSBncmVnb3JpYW5Ub09yZGluYWwob2JqTm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFVuaXRWYWx1ZXM7XG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBtaXNzaW5nIHN0dWZmXG4gICAgbGV0IGZvdW5kRmlyc3QgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHUgb2YgdW5pdHMpIHtcbiAgICAgIGNvbnN0IHYgPSBub3JtYWxpemVkW3VdO1xuICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkge1xuICAgICAgICBmb3VuZEZpcnN0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoZm91bmRGaXJzdCkge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vcm1hbGl6ZWRbdV0gPSBvYmpOb3dbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHRoZSB2YWx1ZXMgd2UgaGF2ZSBhcmUgaW4gcmFuZ2VcbiAgICBjb25zdCBoaWdoZXJPcmRlckludmFsaWQgPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IGhhc0ludmFsaWRXZWVrRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IGhhc0ludmFsaWRPcmRpbmFsRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG5vcm1hbGl6ZWQpLFxuICAgICAgaW52YWxpZCA9IGhpZ2hlck9yZGVySW52YWxpZCB8fCBoYXNJbnZhbGlkVGltZURhdGEobm9ybWFsaXplZCk7XG5cbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfVxuXG4gICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHRpbWVcbiAgICBjb25zdCBncmVnb3JpYW4gPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IHdlZWtUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IG9yZGluYWxUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IG5vcm1hbGl6ZWQsXG4gICAgICBbdHNGaW5hbCwgb2Zmc2V0RmluYWxdID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSxcbiAgICAgIGluc3QgPSBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogdHNGaW5hbCxcbiAgICAgICAgem9uZTogem9uZVRvVXNlLFxuICAgICAgICBvOiBvZmZzZXRGaW5hbCxcbiAgICAgICAgbG9jLFxuICAgICAgfSk7XG5cbiAgICAvLyBncmVnb3JpYW4gZGF0YSArIHdlZWtkYXkgc2VydmVzIG9ubHkgdG8gdmFsaWRhdGVcbiAgICBpZiAobm9ybWFsaXplZC53ZWVrZGF5ICYmIGNvbnRhaW5zR3JlZ29yICYmIG9iai53ZWVrZGF5ICE9PSBpbnN0LndlZWtkYXkpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgICBcIm1pc21hdGNoZWQgd2Vla2RheVwiLFxuICAgICAgICBgeW91IGNhbid0IHNwZWNpZnkgYm90aCBhIHdlZWtkYXkgb2YgJHtub3JtYWxpemVkLndlZWtkYXl9IGFuZCBhIGRhdGUgb2YgJHtpbnN0LnRvSVNPKCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIElTTyA4NjAxIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBJU08gc3RyaW5nXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW1dIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzKzA2OjAwJywge3NldFpvbmU6IHRydWV9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMycsIHt6b25lOiAndXRjJ30pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtVzA1LTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IFt2YWxzLCBwYXJzZWRab25lXSA9IHBhcnNlSVNPRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIklTTyA4NjAxXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gUkZDIDI4MjIgc3RyaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUuIFNpbmNlIHRoZSBvZmZzZXQgaXMgYWx3YXlzIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzOjEyIEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCdGcmksIDI1IE5vdiAyMDE2IDEzOjIzOjEyICswNjAwJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUkZDMjgyMih0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVJGQzI4MjJEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiUkZDIDI4MjJcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIEhUVFAgaGVhZGVyIGRhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCB0aGUgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcuIEZvciBIVFRQIGRhdGVzLCB0aGlzIGlzIGFsd2F5cyBVVEMsIHNvIHRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYHpvbmVgIG9wdGlvbiB0byAndXRjJywgYnV0IHRoaXMgb3B0aW9uIGlzIGluY2x1ZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNpbWlsYXIgbWV0aG9kcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1biwgMDYgTm92IDE5OTQgMDg6NDk6MzcgR01UJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4gTm92ICA2IDA4OjQ5OjM3IDE5OTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSFRUUCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUhUVFBEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiSFRUUFwiLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9wYXJzaW5nP2lkPXRhYmxlLW9mLXRva2VucykuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKHRleHQpIHx8IGlzVW5kZWZpbmVkKGZtdCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcImZyb21Gb3JtYXQgcmVxdWlyZXMgYW4gaW5wdXQgc3RyaW5nIGFuZCBhIGZvcm1hdFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwgfSA9IG9wdHMsXG4gICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbnVtYmVyaW5nU3lzdGVtLFxuICAgICAgICBkZWZhdWx0VG9FTjogdHJ1ZSxcbiAgICAgIH0pLFxuICAgICAgW3ZhbHMsIHBhcnNlZFpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkXSA9IHBhcnNlRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KTtcbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIGBmb3JtYXQgJHtmbXR9YCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdCBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIFNRTCBkYXRlLCB0aW1lLCBvciBkYXRldGltZVxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gYSBsb2NhbGUgc3RyaW5nIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIERhdGVUaW1lIHRvIHRoaXMgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyIEFtZXJpY2EvTG9zX0FuZ2VsZXMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJywgeyB6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMDk6MTI6MzQuMzQyJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNRTCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVNRTCh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlNRTFwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEYXRlVGltZSBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZVRpbWVFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlVGltZS4gV29ya3MgYWNyb3NzIGNvbnRleHQgYm91bmRhcmllc1xuICAgKiBAcGFyYW0ge29iamVjdH0gb1xuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzRGF0ZVRpbWUobykge1xuICAgIHJldHVybiAobyAmJiBvLmlzTHV4b25EYXRlVGltZSkgfHwgZmFsc2U7XG4gIH1cblxuICAvLyBJTkZPXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA3LCA0KS5nZXQoJ21vbnRoJyk7IC8vPT4gN1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA3LCA0KS5nZXQoJ2RheScpOyAvLz0+IDRcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0KHVuaXQpIHtcbiAgICByZXR1cm4gdGhpc1t1bml0XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIERhdGVUaW1lIGlzIHZhbGlkLiBJbnZhbGlkIERhdGVUaW1lcyBvY2N1ciB3aGVuOlxuICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBmcm9tIGludmFsaWQgY2FsZW5kYXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIDEzdGggbW9udGggb3IgRmVicnVhcnkgMzBcbiAgICogKiBUaGUgRGF0ZVRpbWUgd2FzIGNyZWF0ZWQgYnkgYW4gb3BlcmF0aW9uIG9uIGFub3RoZXIgaW52YWxpZCBkYXRlXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRGF0ZVRpbWUgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIERhdGVUaW1lIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9jYWxlIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2VuLUdCJy4gVGhlIGxvY2FsZSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWVcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLmxvY2FsZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXJpbmcgc3lzdGVtIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2JlbmcnLiBUaGUgbnVtYmVyaW5nIHN5c3RlbSBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWVcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBudW1iZXJpbmdTeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBvdXRwdXQgY2FsZW5kYXIgb2YgYSBEYXRlVGltZSwgc3VjaCAnaXNsYW1pYycuIFRoZSBvdXRwdXQgY2FsZW5kYXIgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgb3V0cHV0Q2FsZW5kYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMubG9jLm91dHB1dENhbGVuZGFyIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgem9uZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBEYXRlVGltZS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBnZXQgem9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB6b25lTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy56b25lLm5hbWUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhclxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkueWVhciAvLz0+IDIwMTdcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB5ZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMueWVhciA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHF1YXJ0ZXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnF1YXJ0ZXIgLy89PiAyXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgcXVhcnRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gTWF0aC5jZWlsKHRoaXMuYy5tb250aCAvIDMpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbW9udGggKDEtMTIpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkubW9udGggLy89PiA1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbW9udGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5tb250aCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggKDEtMzBpc2gpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkuZGF5IC8vPT4gMjVcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBkYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5kYXkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBob3VyIG9mIHRoZSBkYXkgKDAtMjMpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSkuaG91ciAvLz0+IDlcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBob3VyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuaG91ciA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1pbnV0ZSBvZiB0aGUgaG91ciAoMC01OSkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCkubWludXRlIC8vPT4gMzBcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaW51dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5taW51dGUgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSAoMC01OSkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIpLnNlY29uZCAvLz0+IDUyXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgc2Vjb25kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuc2Vjb25kIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCAoMC05OTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyLCA2NTQpLm1pbGxpc2Vjb25kIC8vPT4gNjU0XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWlsbGlzZWNvbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5taWxsaXNlY29uZCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlZWsgeWVhclxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTIsIDMxKS53ZWVrWWVhciAvLz0+IDIwMTVcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrWWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrWWVhciA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlZWsgbnVtYmVyIG9mIHRoZSB3ZWVrIHllYXIgKDEtNTJpc2gpLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLndlZWtOdW1iZXIgLy89PiAyMVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla051bWJlciA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgd2Vlay5cbiAgICogMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5XG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAxMSwgMzEpLndlZWtkYXkgLy89PiA0XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla2RheSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrZGF5IDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgb3JkaW5hbCAobWVhbmluZyB0aGUgZGF5IG9mIHRoZSB5ZWFyKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkub3JkaW5hbCAvLz0+IDE0NVxuICAgKiBAdHlwZSB7bnVtYmVyfERhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IG9yZGluYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLm9yZGluYWwgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCBtb250aCBuYW1lLCBzdWNoIGFzICdPY3QnLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aFNob3J0IC8vPT4gT2N0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbW9udGhTaG9ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoXCJzaG9ydFwiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0b2JlcicuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAxMCwgMzApLm1vbnRoTG9uZyAvLz0+IE9jdG9iZXJcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBtb250aExvbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKFwibG9uZ1wiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy5tb250aCAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IHdlZWtkYXksIHN1Y2ggYXMgJ01vbicuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAxMCwgMzApLndlZWtkYXlTaG9ydCAvLz0+IE1vblxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXlTaG9ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cyhcInNob3J0XCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIHdlZWtkYXksIHN1Y2ggYXMgJ01vbmRheScuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAxMCwgMzApLndlZWtkYXlMb25nIC8vPT4gTW9uZGF5XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgd2Vla2RheUxvbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoXCJsb25nXCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLndlZWtkYXkgLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBVVEMgb2Zmc2V0IG9mIHRoaXMgRGF0ZVRpbWUgaW4gbWludXRlc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5vZmZzZXQgLy89PiAtMjQwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLm9mZnNldCAvLz0+IDBcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/ICt0aGlzLm8gOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzaG9ydCBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSBcIkVTVFwiIG9yIFwiRURUXCIuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG9mZnNldE5hbWVTaG9ydCgpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywge1xuICAgICAgICBmb3JtYXQ6IFwic2hvcnRcIixcbiAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsb25nIGh1bWFuIG5hbWUgZm9yIHRoZSB6b25lJ3MgY3VycmVudCBvZmZzZXQsIGZvciBleGFtcGxlIFwiRWFzdGVybiBTdGFuZGFyZCBUaW1lXCIgb3IgXCJFYXN0ZXJuIERheWxpZ2h0IFRpbWVcIi5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgb2Zmc2V0TmFtZUxvbmcoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHtcbiAgICAgICAgZm9ybWF0OiBcImxvbmdcIixcbiAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdoZXRoZXIgdGhpcyB6b25lJ3Mgb2Zmc2V0IGV2ZXIgY2hhbmdlcywgYXMgaW4gYSBEU1QuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzT2Zmc2V0Rml4ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5pc1VuaXZlcnNhbCA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdoZXRoZXIgdGhlIERhdGVUaW1lIGlzIGluIGEgRFNULlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc0luRFNUKCkge1xuICAgIGlmICh0aGlzLmlzT2Zmc2V0Rml4ZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5vZmZzZXQgPiB0aGlzLnNldCh7IG1vbnRoOiAxLCBkYXk6IDEgfSkub2Zmc2V0IHx8XG4gICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogNSB9KS5vZmZzZXRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERhdGVUaW1lIGlzIGluIGEgbGVhcCB5ZWFyLCBmYWxzZSBvdGhlcndpc2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuaXNJbkxlYXBZZWFyIC8vPT4gdHJ1ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5pc0luTGVhcFllYXIgLy89PiBmYWxzZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc0luTGVhcFllYXIoKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGlzIERhdGVUaW1lJ3MgbW9udGhcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMikuZGF5c0luTW9udGggLy89PiAyOVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2LCAzKS5kYXlzSW5Nb250aCAvLz0+IDMxXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luTW9udGgoKSB7XG4gICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuZGF5c0luWWVhciAvLz0+IDM2NlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5kYXlzSW5ZZWFyIC8vPT4gMzY1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luWWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZGF5c0luWWVhcih0aGlzLnllYXIpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiB0aGlzIERhdGVUaW1lJ3MgeWVhclxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAwNCkud2Vla3NJbldlZWtZZWFyIC8vPT4gNTNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykud2Vla3NJbldlZWtZZWFyIC8vPT4gNTJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrc0luV2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHdlZWtzSW5XZWVrWWVhcih0aGlzLndlZWtZZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBJbnRsIG9wdGlvbnMgZm9yIHRoaXMgRGF0ZVRpbWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJlaGF2aW9yIG9mIGZvcm1hdHRpbmcgbWV0aG9kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIHRoZSBzYW1lIG9wdGlvbnMgYXMgdG9Mb2NhbGVTdHJpbmdcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgcmVzb2x2ZWRMb2NhbGVPcHRpb25zKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBGb3JtYXR0ZXIuY3JlYXRlKFxuICAgICAgdGhpcy5sb2MuY2xvbmUob3B0cyksXG4gICAgICBvcHRzXG4gICAgKS5yZXNvbHZlZE9wdGlvbnModGhpcyk7XG4gICAgcmV0dXJuIHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyOiBjYWxlbmRhciB9O1xuICB9XG5cbiAgLy8gVFJBTlNGT1JNXG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBVVEMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gb3B0aW9uYWxseSwgYW4gb2Zmc2V0IGZyb20gVVRDIGluIG1pbnV0ZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPXt9XSAtIG9wdGlvbnMgdG8gcGFzcyB0byBgc2V0Wm9uZSgpYFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHRvVVRDKG9mZnNldCA9IDAsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byB0aGUgaG9zdCdzIGxvY2FsIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byBgc2V0Wm9uZSgnbG9jYWwnKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b0xvY2FsKCkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgc2V0dGVyIGtlZXBzIHRoZSB1bmRlcmx5aW5nIHRpbWUgdGhlIHNhbWUgKGFzIGluLCB0aGUgc2FtZSB0aW1lc3RhbXApLCBidXQgdGhlIG5ldyBpbnN0YW5jZSB3aWxsIHJlcG9ydCBkaWZmZXJlbnQgbG9jYWwgdGltZXMgYW5kIGNvbnNpZGVyIERTVHMgd2hlbiBtYWtpbmcgY29tcHV0YXRpb25zLCBhcyB3aXRoIHtAbGluayBEYXRlVGltZSNwbHVzfS4gWW91IG1heSB3aXNoIHRvIHVzZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbH0gYW5kIHtAbGluayBEYXRlVGltZSN0b1VUQ30gd2hpY2ggcHJvdmlkZSBzaW1wbGUgY29udmVuaWVuY2Ugd3JhcHBlcnMgZm9yIGNvbW1vbmx5IHVzZWQgem9uZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5rZWVwTG9jYWxUaW1lPWZhbHNlXSAtIElmIHRydWUsIGFkanVzdCB0aGUgdW5kZXJseWluZyB0aW1lIHNvIHRoYXQgdGhlIGxvY2FsIHRpbWUgc3RheXMgdGhlIHNhbWUsIGJ1dCBpbiB0aGUgdGFyZ2V0IHpvbmUuIFlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdGhpcy5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZSA9IGZhbHNlLCBrZWVwQ2FsZW5kYXJUaW1lID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgem9uZSA9IG5vcm1hbGl6ZVpvbmUoem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICh6b25lLmVxdWFscyh0aGlzLnpvbmUpKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXdUUyA9IHRoaXMudHM7XG4gICAgICBpZiAoa2VlcExvY2FsVGltZSB8fCBrZWVwQ2FsZW5kYXJUaW1lKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldEd1ZXNzID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGNvbnN0IGFzT2JqID0gdGhpcy50b09iamVjdCgpO1xuICAgICAgICBbbmV3VFNdID0gb2JqVG9UUyhhc09iaiwgb2Zmc2V0R3Vlc3MsIHpvbmUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdHM6IG5ld1RTLCB6b25lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3Igb3V0cHV0Q2FsZW5kYXIuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXMgLSB0aGUgcHJvcGVydGllcyB0byBzZXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgY29uc3QgbG9jID0gdGhpcy5sb2MuY2xvbmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgbG9jIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIGxvY2FsZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBKdXN0IGEgY29udmVuaWVudCBhbGlhcyBmb3IgcmVjb25maWd1cmUoeyBsb2NhbGUgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnNldExvY2FsZSgnZW4tR0InKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGUpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvbmZpZ3VyZSh7IGxvY2FsZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSB2YWx1ZXMgb2Ygc3BlY2lmaWVkIHVuaXRzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIFlvdSBjYW4gb25seSBzZXQgdW5pdHMgd2l0aCB0aGlzIG1ldGhvZDsgZm9yIFwic2V0dGluZ1wiIG1ldGFkYXRhLCBzZWUge0BsaW5rIERhdGVUaW1lI3JlY29uZmlndXJlfSBhbmQge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9LlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAxNyB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyBob3VyOiA4LCBtaW51dGU6IDMwIH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHdlZWtkYXk6IDUgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAwNSwgb3JkaW5hbDogMjM0IH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0KHZhbHVlcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3QodmFsdWVzLCBub3JtYWxpemVVbml0KSxcbiAgICAgIHNldHRpbmdXZWVrU3R1ZmYgPVxuICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrWWVhcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla051bWJlcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla2RheSksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyO1xuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGxldCBtaXhlZDtcbiAgICBpZiAoc2V0dGluZ1dlZWtTdHVmZikge1xuICAgICAgbWl4ZWQgPSB3ZWVrVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub1dlZWsodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7XG4gICAgICBtaXhlZCA9IG9yZGluYWxUb0dyZWdvcmlhbih7IC4uLmdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLCAuLi5ub3JtYWxpemVkIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBtaXhlZCA9IHsgLi4udGhpcy50b09iamVjdCgpLCAuLi5ub3JtYWxpemVkIH07XG5cbiAgICAgIC8vIGlmIHdlIGRpZG4ndCBzZXQgdGhlIGRheSBidXQgd2UgZW5kZWQgdXAgb24gYW4gb3ZlcmZsb3cgZGF0ZSxcbiAgICAgIC8vIHVzZSB0aGUgbGFzdCBkYXkgb2YgdGhlIHJpZ2h0IG1vbnRoXG4gICAgICBpZiAoaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpKSB7XG4gICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBbdHMsIG9dID0gb2JqVG9UUyhtaXhlZCwgdGhpcy5vLCB0aGlzLnpvbmUpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzLCBvIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqXG4gICAqIEFkZGluZyBob3VycywgbWludXRlcywgc2Vjb25kcywgb3IgbWlsbGlzZWNvbmRzIGluY3JlYXNlcyB0aGUgdGltZXN0YW1wIGJ5IHRoZSByaWdodCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLiBBZGRpbmcgZGF5cywgbW9udGhzLCBvciB5ZWFycyBzaGlmdHMgdGhlIGNhbGVuZGFyLCBhY2NvdW50aW5nIGZvciBEU1RzIGFuZCBsZWFwIHllYXJzIGFsb25nIHRoZSB3YXkuIFRodXMsIGBkdC5wbHVzKHsgaG91cnM6IDI0IH0pYCBtYXkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHRpbWUgdGhhbiBgZHQucGx1cyh7IGRheXM6IDEgfSlgIGlmIHRoZXJlJ3MgYSBEU1Qgc2hpZnQgaW4gYmV0d2Vlbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKDEyMykgLy9+PiBpbiAxMjMgbWlsbGlzZWNvbmRzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBtaW51dGVzOiAxNSB9KSAvL34+IGluIDE1IG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkgLy9+PiB0aGlzIHRpbWUgdG9tb3Jyb3dcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IC0xIH0pIC8vfj4gdGhpcyB0aW1lIHllc3RlcmRheVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgaG91cnM6IDMsIG1pbnV0ZXM6IDEzIH0pIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSkgLy9+PiBpbiAzIGhyLCAxMyBtaW5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0IGEgcGVyaW9kIG9mIHRpbWUgdG8gdGhpcyBEYXRlVGltZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVcbiAgICogU2VlIHtAbGluayBEYXRlVGltZSNwbHVzfVxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbikubmVnYXRlKCk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSB1bml0IG9mIHRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGJlZ2lubmluZyBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignbW9udGgnKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMy0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZigneWVhcicpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAxLTAxJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCd3ZWVrJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDMnLCB3ZWVrcyBhbHdheXMgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuc3RhcnRPZignZGF5JykudG9JU09UaW1lKCk7IC8vPT4gJzAwOjAwLjAwMC0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2hvdXInKS50b0lTT1RpbWUoKTsgLy89PiAnMDU6MDA6MDAuMDAwLTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXJ0T2YodW5pdCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBvID0ge30sXG4gICAgICBub3JtYWxpemVkVW5pdCA9IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCk7XG4gICAgc3dpdGNoIChub3JtYWxpemVkVW5pdCkge1xuICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgIG8ubW9udGggPSAxO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInF1YXJ0ZXJzXCI6XG4gICAgICBjYXNlIFwibW9udGhzXCI6XG4gICAgICAgIG8uZGF5ID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJ3ZWVrc1wiOlxuICAgICAgY2FzZSBcImRheXNcIjpcbiAgICAgICAgby5ob3VyID0gMDtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJob3Vyc1wiOlxuICAgICAgICBvLm1pbnV0ZSA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwibWludXRlc1wiOlxuICAgICAgICBvLnNlY29uZCA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICBvLm1pbGxpc2Vjb25kID0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gbm8gZGVmYXVsdCwgaW52YWxpZCB1bml0cyB0aHJvdyBpbiBub3JtYWxpemVVbml0KClcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwid2Vla3NcIikge1xuICAgICAgby53ZWVrZGF5ID0gMTtcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwicXVhcnRlcnNcIikge1xuICAgICAgY29uc3QgcSA9IE1hdGguY2VpbCh0aGlzLm1vbnRoIC8gMyk7XG4gICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNldChvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoaXMgRGF0ZVRpbWUgdG8gdGhlIGVuZCAobWVhbmluZyB0aGUgbGFzdCBtaWxsaXNlY29uZCkgb2YgYSB1bml0IG9mIHRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBUaGUgdW5pdCB0byBnbyB0byB0aGUgZW5kIG9mLiBDYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCBvciAnbWlsbGlzZWNvbmQnLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignbW9udGgnKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3llYXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTEyLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3dlZWsnKS50b0lTTygpOyAvLyA9PiAnMjAxNC0wMy0wOVQyMzo1OTo1OS45OTktMDU6MDAnLCB3ZWVrcyBzdGFydCBvbiBNb25kYXlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignZGF5JykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0wM1QyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignaG91cicpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMDU6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIGVuZE9mKHVuaXQpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IHRoaXMucGx1cyh7IFt1bml0XTogMSB9KVxuICAgICAgICAgIC5zdGFydE9mKHVuaXQpXG4gICAgICAgICAgLm1pbnVzKDEpXG4gICAgICA6IHRoaXM7XG4gIH1cblxuICAvLyBPVVRQVVRcblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLlxuICAgKiAqKllvdSBtYXkgbm90IHdhbnQgdGhpcy4qKiBTZWUge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3IgYSBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgdG9vbC4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgQXByIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2ZyJykudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJykgLy89PiAnMjAxNyBhdnIuIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnLCB7IGxvY2FsZTogXCJmclwiIH0pIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoXCJISCAnaG91cnMgYW5kJyBtbSAnbWludXRlcydcIikgLy89PiAnMjAgaG91cnMgYW5kIDU1IG1pbnV0ZXMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLnJlZGVmYXVsdFRvRU4ob3B0cykpLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyh0aGlzLCBmbXQpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvY2FsaXplZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoaXMgZGF0ZS4gQWNjZXB0cyB0aGUgc2FtZSBvcHRpb25zIGFzIHRoZSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIGFuZCBhbnkgcHJlc2V0cyBkZWZpbmVkIGJ5IEx1eG9uLCBzdWNoIGFzIGBEYXRlVGltZS5EQVRFX0ZVTExgIG9yIGBEYXRlVGltZS5USU1FX1NJTVBMRWAuXG4gICAqIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCBpcyBicm93c2VyLXNwZWNpZmljLCBidXQgaW4gZ2VuZXJhbCBpdCB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSByZXByZXNlbnRhdGlvblxuICAgKiBvZiB0aGUgRGF0ZVRpbWUgaW4gdGhlIGFzc2lnbmVkIGxvY2FsZS5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIGZvcm1hdE9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKCk7IC8vPT4gNC8yMC8yMDE3XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZW4tZ2InKS50b0xvY2FsZVN0cmluZygpOyAvLz0+ICcyMC8wNC8yMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGxvY2FsZTogJ2VuLWdiJyB9KTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9GVUxMKTsgLy89PiAnQXByaWwgMjAsIDIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLlRJTUVfU0lNUExFKTsgLy89PiAnMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVUSU1FX1NIT1JUKTsgLy89PiAnNC8yMC8yMDE3LCAxMTozMiBBTSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyB3ZWVrZGF5OiAnbG9uZycsIG1vbnRoOiAnbG9uZycsIGRheTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHVyc2RheSwgQXByaWwgMjAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ3Nob3J0JywgbW9udGg6ICdzaG9ydCcsIGRheTogJzItZGlnaXQnLCBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHUsIEFwciAyMCwgMTE6MjcgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgaG91ckN5Y2xlOiAnaDIzJyB9KTsgLy89PiAnMTE6MzInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvTG9jYWxlU3RyaW5nKGZvcm1hdE9wdHMgPSBGb3JtYXRzLkRBVEVfU0hPUlQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0RGF0ZVRpbWUodGhpcylcbiAgICAgIDogSU5WQUxJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZvcm1hdCBcInBhcnRzXCIsIG1lYW5pbmcgaW5kaXZpZHVhbCB0b2tlbnMgYWxvbmcgd2l0aCBtZXRhZGF0YS4gVGhpcyBpcyBhbGxvd3MgY2FsbGVycyB0byBwb3N0LXByb2Nlc3MgaW5kaXZpZHVhbCBzZWN0aW9ucyBvZiB0aGUgZm9ybWF0dGVkIG91dHB1dC5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQvZm9ybWF0VG9QYXJ0c1xuICAgKiBAcGFyYW0gb3B0cyB7T2JqZWN0fSAtIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3Igb3B0aW9ucywgc2FtZSBhcyBgdG9Mb2NhbGVTdHJpbmdgLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVBhcnRzKCk7IC8vPT4gW1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2RheScsIHZhbHVlOiAnMjUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdtb250aCcsIHZhbHVlOiAnMDUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICd5ZWFyJywgdmFsdWU6ICcxOTgyJyB9XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+IF1cbiAgICovXG4gIHRvTG9jYWxlUGFydHMob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT10cnVlXSAtIGFkZCB0aGUgdGltZSB6b25lIGZvcm1hdCBleHRlbnNpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgzLCA1LCAyNSkudG9JU08oKSAvLz0+ICcxOTgyLTA1LTI1VDAwOjAwOjAwLjAwMFonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUtMDQ6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNy0wNC0yMlQyMDo0NzowNS4zMzUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzIwMTcwNDIyVDIwNDcwNS4zMzUtMDQwMCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08oe1xuICAgIGZvcm1hdCA9IFwiZXh0ZW5kZWRcIixcbiAgICBzdXBwcmVzc1NlY29uZHMgPSBmYWxzZSxcbiAgICBzdXBwcmVzc01pbGxpc2Vjb25kcyA9IGZhbHNlLFxuICAgIGluY2x1ZGVPZmZzZXQgPSB0cnVlLFxuICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLFxuICB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZXh0ID0gZm9ybWF0ID09PSBcImV4dGVuZGVkXCI7XG5cbiAgICBsZXQgYyA9IHRvSVNPRGF0ZSh0aGlzLCBleHQpO1xuICAgIGMgKz0gXCJUXCI7XG4gICAgYyArPSB0b0lTT1RpbWUodGhpcywgZXh0LCBzdXBwcmVzc1NlY29uZHMsIHN1cHByZXNzTWlsbGlzZWNvbmRzLCBpbmNsdWRlT2Zmc2V0LCBleHRlbmRlZFpvbmUpO1xuICAgIHJldHVybiBjO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3MgZGF0ZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzE5ODIwNTI1J1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT0RhdGUoeyBmb3JtYXQgPSBcImV4dGVuZGVkXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0b0lTT0RhdGUodGhpcywgZm9ybWF0ID09PSBcImV4dGVuZGVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3Mgd2VlayBkYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09XZWVrRGF0ZSgpIC8vPT4gJzE5ODItVzIxLTInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPV2Vla0RhdGUoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcImtra2stJ1cnV1ctY1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHRpbWUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmV4dGVuZGVkWm9uZT10cnVlXSAtIGFkZCB0aGUgdGltZSB6b25lIGZvcm1hdCBleHRlbnNpb25cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlUHJlZml4PWZhbHNlXSAtIGluY2x1ZGUgdGhlIGBUYCBwcmVmaXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmZvcm1hdD0nZXh0ZW5kZWQnXSAtIGNob29zZSBiZXR3ZWVuIHRoZSBiYXNpYyBhbmQgZXh0ZW5kZWQgZm9ybWF0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKCkgLy89PiAnMDc6MzQ6MTkuMzYxWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCwgc2Vjb25kczogMCwgbWlsbGlzZWNvbmRzOiAwIH0pLnRvSVNPVGltZSh7IHN1cHByZXNzU2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcwNzozNFonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzA3MzQxOS4zNjFaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGluY2x1ZGVQcmVmaXg6IHRydWUgfSkgLy89PiAnVDA3OjM0OjE5LjM2MVonXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPVGltZSh7XG4gICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSxcbiAgICBzdXBwcmVzc1NlY29uZHMgPSBmYWxzZSxcbiAgICBpbmNsdWRlT2Zmc2V0ID0gdHJ1ZSxcbiAgICBpbmNsdWRlUHJlZml4ID0gZmFsc2UsXG4gICAgZXh0ZW5kZWRab25lID0gZmFsc2UsXG4gICAgZm9ybWF0ID0gXCJleHRlbmRlZFwiLFxuICB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGMgPSBpbmNsdWRlUHJlZml4ID8gXCJUXCIgOiBcIlwiO1xuICAgIHJldHVybiAoXG4gICAgICBjICtcbiAgICAgIHRvSVNPVGltZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgZm9ybWF0ID09PSBcImV4dGVuZGVkXCIsXG4gICAgICAgIHN1cHByZXNzU2Vjb25kcyxcbiAgICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHMsXG4gICAgICAgIGluY2x1ZGVPZmZzZXQsXG4gICAgICAgIGV4dGVuZGVkWm9uZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBSRkMgMjgyMi1jb21wYXRpYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9SRkMyODIyKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCArMDAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgLTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvUkZDMjgyMigpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIFwiRUVFLCBkZCBMTEwgeXl5eSBISDptbTpzcyBaWlpcIiwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEhUVFAgaGVhZGVycy4gVGhlIG91dHB1dCBpcyBhbHdheXMgZXhwcmVzc2VkIGluIEdNVC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgc3RyaW5nIGNvbmZvcm1zIHRvIFJGQyAxMTIzLlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvSFRUUCgpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgR01UJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMsIDE5KS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDE5OjAwOjAwIEdNVCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9IVFRQKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcy50b1VUQygpLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgJ0dNVCdcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTERhdGUoKSAvLz0+ICcyMDE0LTA3LTEzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1NRTERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVab25lPWZhbHNlXSAtIGluY2x1ZGUgdGhlIHpvbmUsIHN1Y2ggYXMgJ0FtZXJpY2EvTmV3X1lvcmsnLiBPdmVycmlkZXMgaW5jbHVkZU9mZnNldC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXRTcGFjZT10cnVlXSAtIGluY2x1ZGUgdGhlIHNwYWNlIGJldHdlZW4gdGhlIHRpbWUgYW5kIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJzA1OjE1OjE2LjM0NSAtMDQ6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnRvU1FMKCkgLy89PiAnMDU6MTU6MTYuMzQ1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSAtMDQ6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVab25lOiBmYWxzZSB9KSAvLz0+ICcwNToxNToxNi4zNDUgQW1lcmljYS9OZXdfWW9yaydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUxUaW1lKHsgaW5jbHVkZU9mZnNldCA9IHRydWUsIGluY2x1ZGVab25lID0gZmFsc2UsIGluY2x1ZGVPZmZzZXRTcGFjZSA9IHRydWUgfSA9IHt9KSB7XG4gICAgbGV0IGZtdCA9IFwiSEg6bW06c3MuU1NTXCI7XG5cbiAgICBpZiAoaW5jbHVkZVpvbmUgfHwgaW5jbHVkZU9mZnNldCkge1xuICAgICAgaWYgKGluY2x1ZGVPZmZzZXRTcGFjZSkge1xuICAgICAgICBmbXQgKz0gXCIgXCI7XG4gICAgICB9XG4gICAgICBpZiAoaW5jbHVkZVpvbmUpIHtcbiAgICAgICAgZm10ICs9IFwielwiO1xuICAgICAgfSBlbHNlIGlmIChpbmNsdWRlT2Zmc2V0KSB7XG4gICAgICAgIGZtdCArPSBcIlpaXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBmbXQsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IHRydWUgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgQW1lcmljYS9OZXdfWW9yaydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUwob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLnRvU1FMRGF0ZSgpfSAke3RoaXMudG9TUUxUaW1lKG9wdHMpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9JU08oKSA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuIEFsaWFzIG9mIHtAbGluayBEYXRlVGltZSN0b01pbGxpc31cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdmFsdWVPZigpIHtcbiAgICByZXR1cm4gdGhpcy50b01pbGxpcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHRvU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyAvIDEwMDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyAoYXMgYSB3aG9sZSBudW1iZXIpIG9mIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHRvVW5peEludGVnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguZmxvb3IodGhpcy50cyAvIDEwMDApIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0lTTygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBCU09OIHNlcmlhbGl6YWJsZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge0RhdGV9XG4gICAqL1xuICB0b0JTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU0RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGlzIERhdGVUaW1lJ3MgeWVhciwgbW9udGgsIGRheSwgYW5kIHNvIG9uLlxuICAgKiBAcGFyYW0gb3B0cyAtIG9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGhlIG9iamVjdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVDb25maWc9ZmFsc2VdIC0gaW5jbHVkZSBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgaW4gdGhlIG91dHB1dFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b09iamVjdCgpIC8vPT4geyB5ZWFyOiAyMDE3LCBtb250aDogNCwgZGF5OiAyMiwgaG91cjogMjAsIG1pbnV0ZTogNDksIHNlY29uZDogNDIsIG1pbGxpc2Vjb25kOiAyNjggfVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICB0b09iamVjdChvcHRzID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHt9O1xuXG4gICAgY29uc3QgYmFzZSA9IHsgLi4udGhpcy5jIH07XG5cbiAgICBpZiAob3B0cy5pbmNsdWRlQ29uZmlnKSB7XG4gICAgICBiYXNlLm91dHB1dENhbGVuZGFyID0gdGhpcy5vdXRwdXRDYWxlbmRhcjtcbiAgICAgIGJhc2UubnVtYmVyaW5nU3lzdGVtID0gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtO1xuICAgICAgYmFzZS5sb2NhbGUgPSB0aGlzLmxvYy5sb2NhbGU7XG4gICAgfVxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IERhdGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtEYXRlfVxuICAgKi9cbiAgdG9KU0RhdGUoKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU4pO1xuICB9XG5cbiAgLy8gQ09NUEFSRVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gRGF0ZVRpbWVzIGFzIGEgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgRGF0ZVRpbWUgdG8gY29tcGFyZSB0aGlzIG9uZSB0b1xuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciBhcnJheSBvZiB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgaTEgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgyLTA1LTI1VDA5OjQ1JyksXG4gICAqICAgICBpMiA9IERhdGVUaW1lLmZyb21JU08oJzE5ODMtMTAtMTRUMTA6MzAnKTtcbiAgICogaTIuZGlmZihpMSkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA0MzgwNzUwMDAwMCB9XG4gICAqIGkyLmRpZmYoaTEsICdob3VycycpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMjE2OC43NSB9XG4gICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTkuMDMxMjUgfVxuICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJywgJ2hvdXJzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LCBob3VyczogMC43NSB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgZGlmZihvdGhlckRhdGVUaW1lLCB1bml0ID0gXCJtaWxsaXNlY29uZHNcIiwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyRGF0ZVRpbWUuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoXCJjcmVhdGVkIGJ5IGRpZmZpbmcgYW4gaW52YWxpZCBEYXRlVGltZVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkdXJPcHRzID0geyBsb2NhbGU6IHRoaXMubG9jYWxlLCBudW1iZXJpbmdTeXN0ZW06IHRoaXMubnVtYmVyaW5nU3lzdGVtLCAuLi5vcHRzIH07XG5cbiAgICBjb25zdCB1bml0cyA9IG1heWJlQXJyYXkodW5pdCkubWFwKER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLFxuICAgICAgb3RoZXJJc0xhdGVyID0gb3RoZXJEYXRlVGltZS52YWx1ZU9mKCkgPiB0aGlzLnZhbHVlT2YoKSxcbiAgICAgIGVhcmxpZXIgPSBvdGhlcklzTGF0ZXIgPyB0aGlzIDogb3RoZXJEYXRlVGltZSxcbiAgICAgIGxhdGVyID0gb3RoZXJJc0xhdGVyID8gb3RoZXJEYXRlVGltZSA6IHRoaXMsXG4gICAgICBkaWZmZWQgPSBkaWZmKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgZHVyT3B0cyk7XG5cbiAgICByZXR1cm4gb3RoZXJJc0xhdGVyID8gZGlmZmVkLm5lZ2F0ZSgpIDogZGlmZmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIHJpZ2h0IG5vdy5cbiAgICogU2VlIHtAbGluayBEYXRlVGltZSNkaWZmfVxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciB1bml0cyB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb25cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgZGlmZk5vdyh1bml0ID0gXCJtaWxsaXNlY29uZHNcIiwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlmZihEYXRlVGltZS5ub3coKSwgdW5pdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHNwYW5uaW5nIGJldHdlZW4gdGhpcyBEYXRlVGltZSBhbmQgYW5vdGhlciBEYXRlVGltZVxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIGVuZCBwb2ludCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICB1bnRpbChvdGhlckRhdGVUaW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEludGVydmFsLmZyb21EYXRlVGltZXModGhpcywgb3RoZXJEYXRlVGltZSkgOiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgRGF0ZVRpbWUgaXMgaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lIGFzIGFub3RoZXIgRGF0ZVRpbWUuXG4gICAqIEhpZ2hlci1vcmRlciB1bml0cyBtdXN0IGFsc28gYmUgaWRlbnRpY2FsIGZvciB0aGlzIGZ1bmN0aW9uIHRvIHJldHVybiBgdHJ1ZWAuXG4gICAqIE5vdGUgdGhhdCB0aW1lIHpvbmVzIGFyZSAqKmlnbm9yZWQqKiBpbiB0aGlzIGNvbXBhcmlzb24sIHdoaWNoIGNvbXBhcmVzIHRoZSAqKmxvY2FsKiogY2FsZW5kYXIgdGltZS4gVXNlIHtAbGluayBEYXRlVGltZSNzZXRab25lfSB0byBjb252ZXJ0IG9uZSBvZiB0aGUgZGF0ZXMgaWYgbmVlZGVkLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIG90aGVyIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvblxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5oYXNTYW1lKG90aGVyRFQsICdkYXknKTsgLy9+PiB0cnVlIGlmIG90aGVyRFQgaXMgaW4gdGhlIHNhbWUgY3VycmVudCBjYWxlbmRhciBkYXlcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc1NhbWUob3RoZXJEYXRlVGltZSwgdW5pdCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBpbnB1dE1zID0gb3RoZXJEYXRlVGltZS52YWx1ZU9mKCk7XG4gICAgY29uc3QgYWRqdXN0ZWRUb1pvbmUgPSB0aGlzLnNldFpvbmUob3RoZXJEYXRlVGltZS56b25lLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSk7XG4gICAgcmV0dXJuIGFkanVzdGVkVG9ab25lLnN0YXJ0T2YodW5pdCkgPD0gaW5wdXRNcyAmJiBpbnB1dE1zIDw9IGFkanVzdGVkVG9ab25lLmVuZE9mKHVuaXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWFsaXR5IGNoZWNrXG4gICAqIFR3byBEYXRlVGltZXMgYXJlIGVxdWFsIGlmZiB0aGV5IHJlcHJlc2VudCB0aGUgc2FtZSBtaWxsaXNlY29uZCwgaGF2ZSB0aGUgc2FtZSB6b25lIGFuZCBsb2NhdGlvbiwgYW5kIGFyZSBib3RoIHZhbGlkLlxuICAgKiBUbyBjb21wYXJlIGp1c3QgdGhlIG1pbGxpc2Vjb25kIHZhbHVlcywgdXNlIGArZHQxID09PSArZHQyYC5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXIgLSB0aGUgb3RoZXIgRGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVmFsaWQgJiZcbiAgICAgIG90aGVyLmlzVmFsaWQgJiZcbiAgICAgIHRoaXMudmFsdWVPZigpID09PSBvdGhlci52YWx1ZU9mKCkgJiZcbiAgICAgIHRoaXMuem9uZS5lcXVhbHMob3RoZXIuem9uZSkgJiZcbiAgICAgIHRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdGhpcyB0aW1lIHJlbGF0aXZlIHRvIG5vdywgc3VjaCBhcyBcImluIHR3byBkYXlzXCIuIENhbiBvbmx5IGludGVybmF0aW9uYWxpemUgaWYgeW91clxuICAgKiBwbGF0Zm9ybSBzdXBwb3J0cyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC4gUm91bmRzIGRvd24gYnkgZGVmYXVsdC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXRcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gW29wdGlvbnMuYmFzZT1EYXRlVGltZS5ub3coKV0gLSB0aGUgRGF0ZVRpbWUgdG8gdXNlIGFzIHRoZSBiYXNpcyB0byB3aGljaCB0aGlzIHRpbWUgaXMgY29tcGFyZWQuIERlZmF1bHRzIHRvIG5vdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnN0eWxlPVwibG9uZ1wiXSAtIHRoZSBzdHlsZSBvZiB1bml0cywgbXVzdCBiZSBcImxvbmdcIiwgXCJzaG9ydFwiLCBvciBcIm5hcnJvd1wiXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBvcHRpb25zLnVuaXQgLSB1c2UgYSBzcGVjaWZpYyB1bml0IG9yIGFycmF5IG9mIHVuaXRzOyBpZiBvbWl0dGVkLCBvciBhbiBhcnJheSwgdGhlIG1ldGhvZCB3aWxsIHBpY2sgdGhlIGJlc3QgdW5pdC4gVXNlIGFuIGFycmF5IG9yIG9uZSBvZiBcInllYXJzXCIsIFwicXVhcnRlcnNcIiwgXCJtb250aHNcIiwgXCJ3ZWVrc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgb3IgXCJzZWNvbmRzXCJcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5yb3VuZD10cnVlXSAtIHdoZXRoZXIgdG8gcm91bmQgdGhlIG51bWJlcnMgaW4gdGhlIG91dHB1dC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnBhZGRpbmc9MF0gLSBwYWRkaW5nIGluIG1pbGxpc2Vjb25kcy4gVGhpcyBhbGxvd3MgeW91IHRvIHJvdW5kIHVwIHRoZSByZXN1bHQgaWYgaXQgZml0cyBpbnNpZGUgdGhlIHRocmVzaG9sZC4gRG9uJ3QgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGgge3JvdW5kOiBmYWxzZX0gYmVjYXVzZSB0aGUgZGVjaW1hbCBvdXRwdXQgd2lsbCBpbmNsdWRlIHRoZSBwYWRkaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiBcImluIDEgZGF5XCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKFwiZXNcIikudG9SZWxhdGl2ZSh7IGRheXM6IDEgfSkgLy89PiBcImRlbnRybyBkZSAxIGRcdTAwRURhXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSh7IGxvY2FsZTogXCJmclwiIH0pIC8vPT4gXCJkYW5zIDIzIGhldXJlc1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKCkgLy89PiBcIjIgZGF5cyBhZ29cIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSh7IHVuaXQ6IFwiaG91cnNcIiB9KSAvLz0+IFwiNDggaG91cnMgYWdvXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBob3VyczogMzYgfSkudG9SZWxhdGl2ZSh7IHJvdW5kOiBmYWxzZSB9KSAvLz0+IFwiMS41IGRheXMgYWdvXCJcbiAgICovXG4gIHRvUmVsYXRpdmUob3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGJhc2UgPSBvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgeyB6b25lOiB0aGlzLnpvbmUgfSksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nID8gKHRoaXMgPCBiYXNlID8gLW9wdGlvbnMucGFkZGluZyA6IG9wdGlvbnMucGFkZGluZykgOiAwO1xuICAgIGxldCB1bml0cyA9IFtcInllYXJzXCIsIFwibW9udGhzXCIsIFwiZGF5c1wiLCBcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIl07XG4gICAgbGV0IHVuaXQgPSBvcHRpb25zLnVuaXQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy51bml0KSkge1xuICAgICAgdW5pdHMgPSBvcHRpb25zLnVuaXQ7XG4gICAgICB1bml0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZGlmZlJlbGF0aXZlKGJhc2UsIHRoaXMucGx1cyhwYWRkaW5nKSwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG51bWVyaWM6IFwiYWx3YXlzXCIsXG4gICAgICB1bml0cyxcbiAgICAgIHVuaXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGRhdGUgcmVsYXRpdmUgdG8gdG9kYXksIHN1Y2ggYXMgXCJ5ZXN0ZXJkYXlcIiBvciBcIm5leHQgbW9udGhcIi5cbiAgICogT25seSBpbnRlcm5hdGlvbmFsaXplcyBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0cyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBvdXRwdXRcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gW29wdGlvbnMuYmFzZT1EYXRlVGltZS5ub3coKV0gLSB0aGUgRGF0ZVRpbWUgdG8gdXNlIGFzIHRoZSBiYXNpcyB0byB3aGljaCB0aGlzIHRpbWUgaXMgY29tcGFyZWQuIERlZmF1bHRzIHRvIG5vdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnVuaXQgLSB1c2UgYSBzcGVjaWZpYyB1bml0OyBpZiBvbWl0dGVkLCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgdW5pdC4gVXNlIG9uZSBvZiBcInllYXJzXCIsIFwicXVhcnRlcnNcIiwgXCJtb250aHNcIiwgXCJ3ZWVrc1wiLCBvciBcImRheXNcIlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSBvdmVycmlkZSB0aGUgbnVtYmVyaW5nU3lzdGVtIG9mIHRoaXMgRGF0ZVRpbWUuIFRoZSBJbnRsIHN5c3RlbSBtYXkgY2hvb3NlIG5vdCB0byBob25vciB0aGlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gXCJ0b21vcnJvd1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZShcImVzXCIpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+IFwiXCJtYVx1MDBGMWFuYVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmVDYWxlbmRhcih7IGxvY2FsZTogXCJmclwiIH0pIC8vPT4gXCJkZW1haW5cIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKCkgLy89PiBcIjIgZGF5cyBhZ29cIlxuICAgKi9cbiAgdG9SZWxhdGl2ZUNhbGVuZGFyKG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBkaWZmUmVsYXRpdmUob3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLCB0aGlzLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbnVtZXJpYzogXCJhdXRvXCIsXG4gICAgICB1bml0czogW1wieWVhcnNcIiwgXCJtb250aHNcIiwgXCJkYXlzXCJdLFxuICAgICAgY2FsZW5kYXJ5OiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbWluIG9mIHNldmVyYWwgZGF0ZSB0aW1lc1xuICAgKiBAcGFyYW0gey4uLkRhdGVUaW1lfSBkYXRlVGltZXMgLSB0aGUgRGF0ZVRpbWVzIGZyb20gd2hpY2ggdG8gY2hvb3NlIHRoZSBtaW5pbXVtXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfSB0aGUgbWluIERhdGVUaW1lLCBvciB1bmRlZmluZWQgaWYgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRcbiAgICovXG4gIHN0YXRpYyBtaW4oLi4uZGF0ZVRpbWVzKSB7XG4gICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm1pbiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIChpKSA9PiBpLnZhbHVlT2YoKSwgTWF0aC5taW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbWF4IG9mIHNldmVyYWwgZGF0ZSB0aW1lc1xuICAgKiBAcGFyYW0gey4uLkRhdGVUaW1lfSBkYXRlVGltZXMgLSB0aGUgRGF0ZVRpbWVzIGZyb20gd2hpY2ggdG8gY2hvb3NlIHRoZSBtYXhpbXVtXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfSB0aGUgbWF4IERhdGVUaW1lLCBvciB1bmRlZmluZWQgaWYgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRcbiAgICovXG4gIHN0YXRpYyBtYXgoLi4uZGF0ZVRpbWVzKSB7XG4gICAgaWYgKCFkYXRlVGltZXMuZXZlcnkoRGF0ZVRpbWUuaXNEYXRlVGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm1heCByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIGJlc3RCeShkYXRlVGltZXMsIChpKSA9PiBpLnZhbHVlT2YoKSwgTWF0aC5tYXgpO1xuICB9XG5cbiAgLy8gTUlTQ1xuXG4gIC8qKlxuICAgKiBFeHBsYWluIGhvdyBhIHN0cmluZyB3b3VsZCBiZSBwYXJzZWQgYnkgZnJvbUZvcm1hdCgpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgZGVzY3JpcHRpb24pXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0YWtlbiBieSBmcm9tRm9ybWF0KClcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRpb25zLFxuICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoe1xuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG51bWJlcmluZ1N5c3RlbSxcbiAgICAgICAgZGVmYXVsdFRvRU46IHRydWUsXG4gICAgICB9KTtcbiAgICByZXR1cm4gZXhwbGFpbkZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXRFeHBsYWluIGluc3RlYWRcbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nRXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0RXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gRk9STUFUIFBSRVNFVFNcblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAxMC8xNC8xOTgzXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfU0hPUlQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9TSE9SVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfTUVEKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfTUVEO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgT2N0IDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX01FRF9XSVRIX1dFRUtEQVkoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9NRURfV0lUSF9XRUVLREFZO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfRlVMTCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX0ZVTEw7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnVHVlc2RheSwgT2N0b2JlciAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9IVUdFKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfSFVHRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FX1NJTVBMRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FX1NJTVBMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NIT1JUX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FX1dJVEhfU0hPUlRfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FX1dJVEhfTE9OR19PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX0xPTkdfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwJywgYWx3YXlzIDI0LWhvdXIuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfMjRfU0lNUExFKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfMjRfU0lNUExFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzJywgYWx3YXlzIDI0LWhvdXIuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVEVCcsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgRWFzdGVybiBEYXlsaWdodCBUaW1lJywgYWx3YXlzIDI0LWhvdXIuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfTE9OR19PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMTAvMTQvMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9TSE9SVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9TSE9SVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwOjMzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0IDE0LCAxOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX01FRCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9NRUQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0IDE0LCAxOTgzLCA5OjMwOjMzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIDE0IE9jdCAxOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9GVUxMKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0ZVTEw7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpZGF5LCBPY3RvYmVyIDE0LCAxOTgzLCA5OjMwIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9IVUdFKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0hVR0U7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpZGF5LCBPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUztcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcmllbmRseURhdGVUaW1lKGRhdGVUaW1laXNoKSB7XG4gIGlmIChEYXRlVGltZS5pc0RhdGVUaW1lKGRhdGVUaW1laXNoKSkge1xuICAgIHJldHVybiBkYXRlVGltZWlzaDtcbiAgfSBlbHNlIGlmIChkYXRlVGltZWlzaCAmJiBkYXRlVGltZWlzaC52YWx1ZU9mICYmIGlzTnVtYmVyKGRhdGVUaW1laXNoLnZhbHVlT2YoKSkpIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUpTRGF0ZShkYXRlVGltZWlzaCk7XG4gIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgdHlwZW9mIGRhdGVUaW1laXNoID09PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoZGF0ZVRpbWVpc2gpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgIGBVbmtub3duIGRhdGV0aW1lIGFyZ3VtZW50OiAke2RhdGVUaW1laXNofSwgb2YgdHlwZSAke3R5cGVvZiBkYXRlVGltZWlzaH1gXG4gICAgKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0ICogYXMgUCBmcm9tIFwicGFyc2ltbW9uXCI7XG5pbXBvcnQgZW1vamlSZWdleCBmcm9tIFwiZW1vamktcmVnZXhcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5cbi8qKiBUZXN0LWVudmlyb25tZW50LWZyaWVuZGx5IGZ1bmN0aW9uIHdoaWNoIGZldGNoZXMgdGhlIGN1cnJlbnQgc3lzdGVtIGxvY2FsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBcImVuLVVTXCI7XG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2U7XG59XG5cbi8vIERhdGUvVGltZSBSZW5kZXJpbmdcblxuLyoqIE5vcm1hbGl6ZSBhIGR1cmF0aW9uIHRvIGFsbCBvZiB0aGUgcHJvcGVyIHVuaXRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUR1cmF0aW9uKGR1cjogRHVyYXRpb24pIHtcbiAgICBpZiAoZHVyID09PSB1bmRlZmluZWQgfHwgZHVyID09PSBudWxsKSByZXR1cm4gZHVyO1xuXG4gICAgcmV0dXJuIGR1ci5zaGlmdFRvKFwieWVhcnNcIiwgXCJtb250aHNcIiwgXCJ3ZWVrc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCIsIFwibWlsbGlzZWNvbmRzXCIpLm5vcm1hbGl6ZSgpO1xufVxuXG4vKiogU3RyaXAgdGhlIHRpbWUgY29tcG9uZW50cyBvZiBhIGRhdGUgdGltZSBvYmplY3QuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBUaW1lKGR0OiBEYXRlVGltZSk6IERhdGVUaW1lIHtcbiAgICBpZiAoZHQgPT09IG51bGwgfHwgZHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGR0O1xuXG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3Qoe1xuICAgICAgICB5ZWFyOiBkdC55ZWFyLFxuICAgICAgICBtb250aDogZHQubW9udGgsXG4gICAgICAgIGRheTogZHQuZGF5LFxuICAgIH0pO1xufVxuXG4vKiogVHJ5IHRvIGV4dHJhY3QgYSBZWVlZTU1ERCBkYXRlIGZyb20gYSBzdHJpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERhdGUoc3RyOiBzdHJpbmcpOiBEYXRlVGltZSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGRhdGVNYXRjaCA9IC8oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KS8uZXhlYyhzdHIpO1xuICAgIGlmICghZGF0ZU1hdGNoKSBkYXRlTWF0Y2ggPSAvKFxcZHs0fSkoXFxkezJ9KShcXGR7Mn0pLy5leGVjKHN0cik7XG4gICAgaWYgKGRhdGVNYXRjaCkge1xuICAgICAgICBsZXQgeWVhciA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbMV0pO1xuICAgICAgICBsZXQgbW9udGggPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzJdKTtcbiAgICAgICAgbGV0IGRheSA9IE51bWJlci5wYXJzZUludChkYXRlTWF0Y2hbM10pO1xuICAgICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXIsIG1vbnRoLCBkYXkgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIFJlbmRlciBhIERhdGVUaW1lIGluIGEgbWluaW1hbCBmb3JtYXQgdG8gc2F2ZSBzcGFjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJNaW5pbWFsRGF0ZSh0aW1lOiBEYXRlVGltZSwgZGF0ZUZvcm1hdDogc3RyaW5nLCBkYXRlVGltZUZvcm1hdDogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIHJlbGV2YW50IHRpbWUgc3BlY2lmaWVkLCBmYWxsIGJhY2sgdG8ganVzdCByZW5kZXJpbmcgdGhlIGRhdGUuXG4gICAgaWYgKHRpbWUuc2Vjb25kID09IDAgJiYgdGltZS5taW51dGUgPT0gMCAmJiB0aW1lLmhvdXIgPT0gMCkge1xuICAgICAgICByZXR1cm4gdGltZS50b0xvY2FsKCkudG9Gb3JtYXQoZGF0ZUZvcm1hdCwgeyBsb2NhbGUgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRpbWUudG9Mb2NhbCgpLnRvRm9ybWF0KGRhdGVUaW1lRm9ybWF0LCB7IGxvY2FsZSB9KTtcbn1cblxuLyoqIFJlbmRlciBhIGR1cmF0aW9uIGluIGEgbWluaW1hbCBmb3JtYXQgdG8gc2F2ZSBzcGFjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJNaW5pbWFsRHVyYXRpb24oZHVyOiBEdXJhdGlvbik6IHN0cmluZyB7XG4gICAgZHVyID0gbm9ybWFsaXplRHVyYXRpb24oZHVyKTtcblxuICAgIC8vIFRPRE86IEx1eG9uIGRvZXMgbm90IGhhdmUgbXVsdGktbGluZ3VhbC9sb2NhbGUtYXdhcmUgZHVyYXRpb24gcmVuZGVyaW5nLlxuICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgIGlmIChkdXIueWVhcnMpIHJlc3VsdCArPSBgJHtkdXIueWVhcnN9IHllYXJzLCBgO1xuICAgIGlmIChkdXIubW9udGhzKSByZXN1bHQgKz0gYCR7ZHVyLm1vbnRoc30gbW9udGhzLCBgO1xuICAgIGlmIChkdXIud2Vla3MpIHJlc3VsdCArPSBgJHtkdXIud2Vla3N9IHdlZWtzLCBgO1xuICAgIGlmIChkdXIuZGF5cykgcmVzdWx0ICs9IGAke2R1ci5kYXlzfSBkYXlzLCBgO1xuICAgIGlmIChkdXIuaG91cnMpIHJlc3VsdCArPSBgJHtkdXIuaG91cnN9IGhvdXJzLCBgO1xuICAgIGlmIChkdXIubWludXRlcykgcmVzdWx0ICs9IGAke2R1ci5taW51dGVzfSBtaW51dGVzLCBgO1xuICAgIGlmIChkdXIuc2Vjb25kcykgcmVzdWx0ICs9IGAke01hdGgucm91bmQoZHVyLnNlY29uZHMpfSBzZWNvbmRzLCBgO1xuICAgIGlmIChkdXIubWlsbGlzZWNvbmRzKSByZXN1bHQgKz0gYCR7TWF0aC5yb3VuZChkdXIubWlsbGlzZWNvbmRzKX0gbXMsIGA7XG5cbiAgICBpZiAocmVzdWx0LmVuZHNXaXRoKFwiLCBcIikpIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgcmVzdWx0Lmxlbmd0aCAtIDIpO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFBhdGggdXRpbGl0aWVzLlxuXG4vKiogR2V0IHRoZSBmb2xkZXIgY29udGFpbmluZyB0aGUgZ2l2ZW4gcGF0aCAoaS5lLiwgbGlrZSBjb21wdXRpbmcgJ3BhdGgvLi4nKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJlbnRGb2xkZXIocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdChcIi9cIikuc2xpY2UoMCwgLTEpLmpvaW4oXCIvXCIpO1xufVxuXG4vKiogR2V0IHRoZSBmaWxlIG5hbWUgZm9yIHRoZSBmaWxlIHJlZmVyZW5jZWQgaW4gdGhlIGdpdmVuIHBhdGgsIGJ5IHN0cmlwcGluZyB0aGUgcGFyZW50IGZvbGRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZU5hbWUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5pbmNsdWRlcyhcIi9cIikgPyBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKFwiL1wiKSArIDEpIDogcGF0aDtcbn1cblxuLyoqIEdldCB0aGUgXCJ0aXRsZVwiIGZvciBhIGZpbGUsIGJ5IHN0cmlwcGluZyBvdGhlciBwYXJ0cyBvZiB0aGUgcGF0aCBhcyB3ZWxsIGFzIHRoZSBleHRlbnNpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVRpdGxlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHBhdGguaW5jbHVkZXMoXCIvXCIpKSBwYXRoID0gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKTtcbiAgICBpZiAocGF0aC5lbmRzV2l0aChcIi5tZFwiKSkgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGVuZ3RoIC0gMyk7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5cbi8qKiBHZXQgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSB0aGUgZmlsZSBwYXRoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvbihwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcGF0aC5pbmNsdWRlcyhcIi5cIikpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKFwiLlwiKSArIDEpO1xufVxuXG4vLyBUYWcgZXh0cmFjdGlvbi5cblxuLyoqIFBhcnNlIGFsbCBzdWJ0YWdzIG91dCBvZiB0aGUgZ2l2ZW4gdGFnLiBJLmUuLCAjaGVsbG8vaS9hbSB3b3VsZCB5aWVsZCBbI2hlbGxvL2kvYW0sICNoZWxsby9pLCAjaGVsbG9dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTdWJ0YWdzKHRhZ3M6IHN0cmluZyB8IEl0ZXJhYmxlPHN0cmluZz4pOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IHRhZyBvZiB0eXBlb2YgdGFncyA9PT0gXCJzdHJpbmdcIiA/IFt0YWdzXSA6IHRhZ3MpIHtcbiAgICAgICAgcmVzdWx0LnB1c2godGFnKTtcbiAgICAgICAgd2hpbGUgKHRhZy5pbmNsdWRlcyhcIi9cIikpIHtcbiAgICAgICAgICAgIHRhZyA9IHRhZy5zdWJzdHJpbmcoMCwgdGFnLmxhc3RJbmRleE9mKFwiL1wiKSk7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0YWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqIFNwbGl0IGVhY2ggYmxvY2sgYW5kIHNlY3Rpb24gbGluayBpbnRvIHRoZSBvcmlnaW5hbCBsaW5rIGFuZCBhIGNvcnJlc3BvbmRpbmcgZmlsZSBsaW5rLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWxlTGlua3MoZWxpbmtzOiBMaW5rW10pOiBMaW5rW10ge1xuICAgIGNvbnN0IHJlc3VsdDogTGlua1tdID0gW107XG4gICAgZm9yIChjb25zdCBsaW5rIG9mIGVsaW5rcykge1xuICAgICAgICByZXN1bHQucHVzaChsaW5rKTtcblxuICAgICAgICBjb25zdCBmaWxlTGluayA9IGxpbmsudG9GaWxlKCk7XG4gICAgICAgIGlmIChsaW5rLnR5cGUgIT0gXCJmaWxlXCIgJiYgIXJlc3VsdC5maW5kKChleGlzdGluZykgPT4gZXhpc3RpbmcuZXF1YWxzKGZpbGVMaW5rKSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGVMaW5rKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFN0cmluZyBlc2NhcGluZyBhbmQgY2Fub25pY2FsaXphdGlvbi5cblxuLyoqXG4gKiBFc2NhcGUgcmVnZXggY2hhcmFjdGVycyBpbiBhIHN0cmluZy5cbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdleChzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xufVxuXG5jb25zdCBIRUFERVJfQ0FOT05JQ0FMSVpFUjogUC5QYXJzZXI8c3RyaW5nPiA9IFAuYWx0KFxuICAgIFAucmVnZXgobmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwiXCIpKSxcbiAgICBQLnJlZ2V4KC9bMC05XFxwe0xldHRlcn1fLV0rL3UpLFxuICAgIFAud2hpdGVzcGFjZS5tYXAoKF8pID0+IFwiIFwiKSxcbiAgICBQLmFueS5tYXAoKF8pID0+IFwiIFwiKVxuKVxuICAgIC5tYW55KClcbiAgICAubWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKFwiXCIpLnNwbGl0KC9cXHMrLykuam9pbihcIiBcIikudHJpbSgpO1xuICAgIH0pO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRleHQgaW4gYSBoZWFkZXIgdG8gYmUgc29tZXRoaW5nIHRoYXQgaXMgYWN0dWFsbHkgbGlua2FibGUgdG8uIFRoaXMgbWltaWNzXG4gKiBob3cgT2JzaWRpYW4gZG9lcyBpdCdzIG5vcm1hbGl6YXRpb24sIGNvbGxhcHNpbmcgcmVwZWF0ZWQgc3BhY2VzIGFuZCBzdHJpcHBpbmcgb3V0IGNvbnRyb2wgY2hhcmFjdGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsoaGVhZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBIRUFERVJfQ0FOT05JQ0FMSVpFUi50cnlQYXJzZShoZWFkZXIpO1xufVxuXG4vLyBGYXN0IGV4dHJhY3Rpb24gb2YgbGluZSByYW5nZXMgZnJvbSBsYXJnZSBwaWVjZXMgb2YgdGV4dC5cblxuLyoqIFVwZGF0ZSB0aGUgbGluZSByYW5nZSBmcm9tIFtzdGFydCwgZW5kKSB3aXRoIHRoZSBnaXZlbiBmdW5jdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lUmVwbGFjZSh0ZXh0OiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyLCBmdW5jOiAobGluZTogc3RyaW5nKSA9PiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtkYXRhLCBvZmZzZXRdID0gbGluZVNwYW4odGV4dCwgc3RhcnQsIGVuZCk7XG4gICAgaWYgKCFvZmZzZXQpIHJldHVybiB0ZXh0O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgZGF0YS5zdWJzdHJpbmcoMCwgb2Zmc2V0LnN0YXJ0KSArIGZ1bmMoZGF0YS5zdWJzdHJpbmcob2Zmc2V0LnN0YXJ0LCBvZmZzZXQuZW5kKSkgKyBkYXRhLnN1YnN0cmluZyhvZmZzZXQuZW5kKVxuICAgICk7XG59XG5cbi8qKiBFeHRyYWN0IHRoZSBsaW5lcyBpbiB0aGUgcmFuZ2UgW3N0YXJ0LCBlbmQpLCBhcyB3ZWxsIGFzIHRoZSBhY3R1YWwgb2Zmc2V0cyBvZiB0aGUgc3RhcnQgYW5kIGVuZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lU3BhbihcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBlbmQ6IG51bWJlclxuKTogW3N0cmluZywgeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9IHwgdW5kZWZpbmVkXSB7XG4gICAgc3RhcnQgPSBNYXRoLm1heChzdGFydCwgMCk7XG4gICAgZW5kID0gTWF0aC5tYXgoZW5kLCAwKTtcblxuICAgIGlmIChzdGFydCA+PSBlbmQpIHJldHVybiBbXCJcIiwgdW5kZWZpbmVkXTtcblxuICAgIC8vIFN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHN0YXJ0aW5nIGxpbmUgb2Zmc2V0LlxuICAgIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gc2tpcE5ld2xpbmVzKHRleHQsIDAsIHN0YXJ0KTtcbiAgICBpZiAoc3RhcnRPZmZzZXQgPT0gLTEpIHJldHVybiBbXCJcIiwgdW5kZWZpbmVkXTtcblxuICAgIGNvbnN0IGVuZE9mZnNldCA9IHNraXBOZXdsaW5lcyh0ZXh0LCBzdGFydE9mZnNldCwgZW5kIC0gc3RhcnQpO1xuICAgIGlmIChlbmRPZmZzZXQgPT0gLTEpIHJldHVybiBbdGV4dC5zdWJzdHJpbmcoc3RhcnRPZmZzZXQpLCB7IHN0YXJ0OiBzdGFydE9mZnNldCwgZW5kOiB0ZXh0Lmxlbmd0aCB9XTtcbiAgICBlbHNlIHJldHVybiBbdGV4dC5zdWJzdHJpbmcoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCAtIDEpLCB7IHN0YXJ0OiBzdGFydE9mZnNldCwgZW5kOiBlbmRPZmZzZXQgLSAxIH1dO1xufVxuXG4vKiogRXh0cmFjdCB0aGUgbGluZXMgaW4gdGhlIHJhbmdlIFtzdGFydCwgZW5kKS4gU3RhcnQgaXMgaW5jbHVzaXZlLCBlbmQgaXMgZXhjbHVzaXZlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbmVSYW5nZSh0ZXh0OiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbGluZVNwYW4odGV4dCwgc3RhcnQsIGVuZClbMF07XG59XG5cbi8qKiBTa2lwIHtjb3VudH0gdG90YWwgbmV3bGluZXMsIHJldHVybmluZyB0aGUgc3RhcnQgb2YgdGhlIGxpbmUge2NvdW50fSBsaW5lcyBhZnRlciB0aGUgY3VycmVudCBsaW5lLiBJZiBjb3VudCBpcyAwLCB0aGUgaW5pdGlhbCBvZmZzZXQgaXMgcmV0dXJuZWQuICovXG5leHBvcnQgZnVuY3Rpb24gc2tpcE5ld2xpbmVzKHRleHQ6IHN0cmluZywgc3RhcnQ6IG51bWJlciwgY291bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGNvdW50ID09IDApIHJldHVybiBzdGFydDtcblxuICAgIGxldCBwb3NpdGlvbiA9IHN0YXJ0O1xuICAgIHdoaWxlIChjb3VudCA+IDApIHtcbiAgICAgICAgcG9zaXRpb24gPSB0ZXh0LmluZGV4T2YoXCJcXG5cIiwgcG9zaXRpb24pO1xuICAgICAgICBpZiAocG9zaXRpb24gPT0gLTEpIHJldHVybiAtMTtcblxuICAgICAgICBjb3VudC0tO1xuICAgICAgICBwb3NpdGlvbiArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBwb3NpdGlvbjtcbn1cbiIsICJpbXBvcnQgeyBnZXRGaWxlVGl0bGUsIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLyoqIFRoZSBPYnNpZGlhbiAnbGluaycsIHVzZWQgZm9yIHVuaXF1ZWx5IGRlc2NyaWJpbmcgYSBmaWxlLCBoZWFkZXIsIG9yIGJsb2NrLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgY2xhc3MgTGluayB7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBwdWJsaWMgZGlzcGxheT86IHN0cmluZztcbiAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqL1xuICAgIHB1YmxpYyBzdWJwYXRoPzogc3RyaW5nO1xuICAgIC8qKiBJcyB0aGlzIGxpbmsgYW4gZW1iZWRkZWQgbGluayAob2YgZm9ybSAnIVtbaGVsbG9dXScpPyAqL1xuICAgIHB1YmxpYyBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgcHVibGljIHR5cGU6IFwiZmlsZVwiIHwgXCJoZWFkZXJcIiB8IFwiYmxvY2tcIjtcblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgc3BlY2lmaWMgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbGUocGF0aDogc3RyaW5nLCBlbWJlZDogYm9vbGVhbiA9IGZhbHNlLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgZW1iZWQsXG4gICAgICAgICAgICBkaXNwbGF5LFxuICAgICAgICAgICAgc3VicGF0aDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHlwZTogXCJmaWxlXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbmZlciB0aGUgdHlwZSBvZiB0aGUgbGluayBmcm9tIHRoZSBmdWxsIGludGVybmFsIGxpbmsgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGluZmVyKGxpbmtwYXRoOiBzdHJpbmcsIGVtYmVkOiBib29sZWFuID0gZmFsc2UsIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgaWYgKGxpbmtwYXRoLmluY2x1ZGVzKFwiI15cIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI15cIik7XG4gICAgICAgICAgICByZXR1cm4gTGluay5ibG9jayhzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rcGF0aC5pbmNsdWRlcyhcIiNcIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovXG4gICAgcHVibGljIHN0YXRpYyBoZWFkZXIocGF0aDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgZW1iZWQ/OiBib29sZWFuLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIC8vIEhlYWRlcnMgbmVlZCB0byBiZSBub3JtYWxpemVkIHRvIGFscGhhLW51bWVyaWMgJiB3aXRoIGV4dHJhIHNwYWNpbmcgcmVtb3ZlZC5cbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlciksXG4gICAgICAgICAgICB0eXBlOiBcImhlYWRlclwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGJsb2NrIGluIHRoYXQgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGJsb2NrKHBhdGg6IHN0cmluZywgYmxvY2tJZDogc3RyaW5nLCBlbWJlZD86IGJvb2xlYW4sIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBibG9ja0lkLFxuICAgICAgICAgICAgdHlwZTogXCJibG9ja1wiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBhIGxpbmsgZnJvbSBpdCdzIHJhdyBKU09OIHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IEpzb25MaW5rKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIGJ5IHBhcnNpbmcgaXQncyBpbnRlcmlvciBwYXJ0IChpbnNpZGUgb2YgdGhlICdbW11dJykuICovXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZUlubmVyKHJhd2xpbms6IHN0cmluZyk6IExpbmsge1xuICAgICAgICBsZXQgW2xpbmssIGRpc3BsYXldID0gc3BsaXRPblVuZXNjYXBlZFBpcGUocmF3bGluayk7XG4gICAgICAgIHJldHVybiBMaW5rLmluZmVyKGxpbmssIGZhbHNlLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGZpZWxkczogUGFydGlhbDxMaW5rPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGlzIGxpbmsgd2l0aCBhIG5ldyBwYXRoLiAqL1xuICAgIHB1YmxpYyB3aXRoUGF0aChwYXRoOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHsgcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIG5ldyBsaW5rIHdoaWNoIHBvaW50cyB0byB0aGUgc2FtZSBsb2NhdGlvbiBidXQgd2l0aCBhIG5ldyBkaXNwbGF5IHZhbHVlLiAqL1xuICAgIHB1YmxpYyB3aXRoRGlzcGxheShkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBuZXcgbGluayB3aGljaCBoYXMgdGhlIGdpdmVuIGVtYmVkZGVkIHN0YXR1cy4gKi9cbiAgICBwdWJsaWMgd2l0aEVtYmVkKGVtYmVkOiBib29sZWFuKTogTGluayB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkID09IGVtYmVkKSByZXR1cm4gdGhpcztcblxuICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBlbWJlZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgYSBmaWxlIGxpbmsgaW50byBhIGxpbmsgdG8gYSBzcGVjaWZpYyBoZWFkZXIuICovXG4gICAgcHVibGljIHdpdGhIZWFkZXIoaGVhZGVyOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWNiIGxvY2suICovXG4gICAgcHVibGljIHdpdGhCbG9jayhibG9jazogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHRoaXMucGF0aCwgYmxvY2ssIHRoaXMuZW1iZWQsIHRoaXMuZGlzcGxheSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBmb3IgbGluayBlcXVhbGl0eSAoaS5lLiwgdGhhdCB0aGUgbGlua3MgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGV4YWN0IGxvY2F0aW9uKS4gKi9cbiAgICBwdWJsaWMgZXF1YWxzKG90aGVyOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gb3RoZXIucGF0aCAmJiB0aGlzLnR5cGUgPT0gb3RoZXIudHlwZSAmJiB0aGlzLnN1YnBhdGggPT0gb3RoZXIuc3VicGF0aDtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gaXQncyBtYXJrZG93biByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovXG4gICAgcHVibGljIHRvT2JqZWN0KCk6IEpzb25MaW5rIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHN1YnBhdGg6IHRoaXMuc3VicGF0aCxcbiAgICAgICAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgICAgICAgIGVtYmVkOiB0aGlzLmVtYmVkLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqL1xuICAgIHB1YmxpYyB0b0ZpbGUoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy5wYXRoLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayBpbnRvIGFuIGVtYmVkZGVkIGxpbmsuICovXG4gICAgcHVibGljIHRvRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhIG5vbi1lbWJlZGRlZCBsaW5rLiAqL1xuICAgIHB1YmxpYyBmcm9tRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIG1hcmtkb3duIHNvIGl0IGNhbiBiZSByZW5kZXJlZC4gKi9cbiAgICBwdWJsaWMgbWFya2Rvd24oKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICh0aGlzLmVtYmVkID8gXCIhXCIgOiBcIlwiKSArIFwiW1tcIiArIHRoaXMub2JzaWRpYW5MaW5rKCk7XG4gICAgICAgIHJlc3VsdCArPSBcInxcIjtcbiAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGlzcGxheU9yRGVmYXVsdCgpO1xuICAgICAgICByZXN1bHQgKz0gXCJdXVwiO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIGRpc3BsYXkgZm9yIHRoaXMgbGluayBpZiBwcmVzZW50LCBvciByZXR1cm4gYSBzaW1wbGUgZGVmYXVsdCBkaXNwbGF5LiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5T3JEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcImhlYWRlclwiIHx8IHRoaXMudHlwZSA9PSBcImJsb2NrXCIpIHJlc3VsdCArPSBcIiA+IFwiICsgdGhpcy5zdWJwYXRoO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhlIGlubmVyIHBhcnQgb2YgdGhlIGxpbmsgdG8gc29tZXRoaW5nIHRoYXQgT2JzaWRpYW4gY2FuIG9wZW4gLyB1bmRlcnN0YW5kLiAqL1xuICAgIHB1YmxpYyBvYnNpZGlhbkxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlKFwifFwiLCBcIlxcXFx8XCIpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09IFwiaGVhZGVyXCIpIHJldHVybiBlc2NhcGVkICsgXCIjXCIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2UoXCJ8XCIsIFwiXFxcXHxcIik7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJibG9ja1wiKSByZXR1cm4gZXNjYXBlZCArIFwiI15cIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZShcInxcIiwgXCJcXFxcfFwiKTtcbiAgICAgICAgZWxzZSByZXR1cm4gZXNjYXBlZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIHN0cmlwcGVkIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgZmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgIH1cbn1cblxuLyoqIFNlcmlhbGl6ZWQgZm9ybSBvZiBhIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkxpbmsge1xuICAgIC8qKiBUaGUgZmlsZSBwYXRoIHRoaXMgbGluayBwb2ludHMgdG8uICovXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBkaXNwbGF5Pzogc3RyaW5nO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb3IgaGVhZGVyIHRoaXMgbGluayBwb2ludHMgdG8gd2l0aGluIGEgZmlsZSwgaWYgcmVsZXZhbnQuICovXG4gICAgc3VicGF0aD86IHN0cmluZztcbiAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKG9mIGZvcm0gJyFbW2hlbGxvXV0nKT8gKi9cbiAgICBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgdHlwZTogXCJmaWxlXCIgfCBcImhlYWRlclwiIHwgXCJibG9ja1wiO1xufVxuXG4vKiogU3BsaXQgb24gdW5lc2NhcGVkIHBpcGVzIGluIGFuIGlubmVyIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdE9uVW5lc2NhcGVkUGlwZShsaW5rOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdIHtcbiAgICBsZXQgcGlwZSA9IC0xO1xuICAgIHdoaWxlICgocGlwZSA9IGxpbmsuaW5kZXhPZihcInxcIiwgcGlwZSArIDEpKSA+PSAwKSB7XG4gICAgICAgIGlmIChwaXBlID4gMCAmJiBsaW5rW3BpcGUgLSAxXSA9PSBcIlxcXFxcIikgY29udGludWU7XG4gICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcXFxcfC9nLCBcInxcIiksIGxpbmsuc3Vic3RyaW5nKHBpcGUgKyAxKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtsaW5rLnJlcGxhY2UoL1xcXFxcXHwvZywgXCJ8XCIpLCB1bmRlZmluZWRdO1xufVxuIiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IHtcbiAgICBCaW5hcnlPcCxcbiAgICBFeHByZXNzaW9uLFxuICAgIEV4cHJlc3Npb25zLFxuICAgIExhbWJkYUV4cHJlc3Npb24sXG4gICAgTGlzdEV4cHJlc3Npb24sXG4gICAgTGl0ZXJhbEV4cHJlc3Npb24sXG4gICAgT2JqZWN0RXhwcmVzc2lvbixcbiAgICBWYXJpYWJsZUV4cHJlc3Npb24sXG59IGZyb20gXCIuL2V4cHJlc3Npb25cIjtcbmltcG9ydCBlbW9qaVJlZ2V4IGZyb20gXCJlbW9qaS1yZWdleFwiO1xuaW1wb3J0IHtcbiAgICBJbmRleENoaWxkT2YsXG4gICAgSW5kZXhQYXRoLFxuICAgIEluZGV4SWQsXG4gICAgSW5kZXhOb3QsXG4gICAgSW5kZXhQYXJlbnRPZixcbiAgICBJbmRleFF1ZXJ5LFxuICAgIEluZGV4VGFnZ2VkLFxuICAgIEluZGV4VHlwZWQsXG4gICAgSW5kZXhMaW5rZWQsXG4gICAgSW5kZXhGaWVsZCxcbiAgICBJbmRleEV4cHJlc3Npb24sXG59IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgbm9ybWFsaXplRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2luZyBQcmltaXRpdmVzIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFByaW1pdGl2ZSBwYXJzaW5nIGZvciBjb21tb25seSBzZWVuIHR5cGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVzTGFuZ3VhZ2Uge1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIHN0cmluZzogc3RyaW5nO1xuICAgIGVzY2FwZUNoYXJhY3Rlcjogc3RyaW5nO1xuICAgIGJvb2w6IGJvb2xlYW47XG4gICAgdGFnOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGxpbms6IExpbms7XG4gICAgZW1iZWRMaW5rOiBMaW5rO1xuICAgIHJvb3REYXRlOiBEYXRlVGltZTtcbiAgICBkYXRlU2hvcnRoYW5kOiBrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTO1xuICAgIGRhdGU6IERhdGVUaW1lO1xuICAgIGRhdGVQbHVzOiBEYXRlVGltZTtcbiAgICBkdXJhdGlvblR5cGU6IGtleW9mIHR5cGVvZiBEVVJBVElPTl9UWVBFUztcbiAgICBkdXJhdGlvbjogRHVyYXRpb247XG4gICAgcmF3TnVsbDogc3RyaW5nO1xuXG4gICAgYmluYXJ5UGx1c01pbnVzOiBCaW5hcnlPcDtcbiAgICBiaW5hcnlNdWxEaXY6IEJpbmFyeU9wO1xuICAgIGJpbmFyeUNvbXBhcmVPcDogQmluYXJ5T3A7XG4gICAgYmluYXJ5QW5kT3A6IEJpbmFyeU9wO1xuICAgIGJpbmFyeU9yT3A6IEJpbmFyeU9wO1xuXG4gICAgLy8gTGl0ZXJhbCBmaWVsZCBwYXJzaW5nIGZvciBpbmdlc3RpbmcgaW5saW5lIGZpZWxkcyBhbmQgZnJvbnRtYXR0ZXIuXG4gICAgYXRvbUlubGluZUZpZWxkOiBMaXRlcmFsO1xuICAgIGlubGluZUZpZWxkTGlzdDogTGl0ZXJhbFtdO1xuICAgIGlubGluZUZpZWxkOiBMaXRlcmFsO1xufVxuXG4vKiogSW1wbGVtZW50YXRpb25zIGZvciBtYW55IHByaW1pdGl2ZXMuICovXG5leHBvcnQgY29uc3QgUFJJTUlUSVZFUyA9IFAuY3JlYXRlTGFuZ3VhZ2U8UHJpbWl0aXZlc0xhbmd1YWdlPih7XG4gICAgbnVtYmVyOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLy0/WzAtOV0rKFxcLlswLTldKyk/LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSlcbiAgICAgICAgICAgIC5kZXNjKFwibnVtYmVyXCIpLFxuXG4gICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1xcJykuXG4gICAgc3RyaW5nOiAocSkgPT5cbiAgICAgICAgUC5zdHJpbmcoJ1wiJylcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgIFAuYWx0KHEuZXNjYXBlQ2hhcmFjdGVyLCBQLm5vbmVPZignXCJcXFxcJykpXG4gICAgICAgICAgICAgICAgICAgIC5hdExlYXN0KDApXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGNoYXJzKSA9PiBjaGFycy5qb2luKFwiXCIpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnNraXAoUC5zdHJpbmcoJ1wiJykpXG4gICAgICAgICAgICAuZGVzYyhcInN0cmluZ1wiKSxcblxuICAgIGVzY2FwZUNoYXJhY3RlcjogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiXFxcXFwiKVxuICAgICAgICAgICAgLnRoZW4oUC5hbnkpXG4gICAgICAgICAgICAubWFwKChlc2NhcGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIGEgYmFja3NsYXNoIG9yIGEgcXVvdGUsIHBhc3MgaW4gb24gaW4gZXNjYXBlZCBmb3JtXG4gICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICdcIicpIHJldHVybiAnXCInO1xuICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkID09PSBcIlxcXFxcIikgcmV0dXJuIFwiXFxcXFwiO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFwiXFxcXFwiICsgZXNjYXBlZDtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuXG4gICAgYm9vbDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC90cnVlfGZhbHNlfFRydWV8RmFsc2UvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSA9PSBcInRydWVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiYm9vbGVhblwiKSxcblxuICAgIC8vIEEgdGFnIG9mIHRoZSBmb3JtICcjc3R1ZmYvaGVsbG8tdGhlcmUnLlxuICAgIHRhZzogKF8pID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCIjXCIpLFxuICAgICAgICAgICAgUC5hbHQoUC5yZWdleHAoL1teXFx1MjAwMC1cXHUyMDZGXFx1MkUwMC1cXHUyRTdGJyFcIiMkJSYoKSorLC46Ozw9Pj9AXmB7fH1+XFxbXFxdXFxcXFxcc10vKS5kZXNjKFwidGV4dFwiKSkubWFueSgpLFxuICAgICAgICAgICAgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbihcIlwiKVxuICAgICAgICApLmRlc2MoXCJ0YWdcIiksXG5cbiAgICAvLyBBIHZhcmlhYmxlIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFscGhhbnVtZXJpYyBhbmQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIG9yLi4uIGVtb2ppLlxuICAgIGlkZW50aWZpZXI6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bXFxwe0xldHRlcn0kXS91KSwgUC5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoXCJ0ZXh0XCIpKSxcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bMC05XFxwe0xldHRlcn0kXy1dL3UpLCBQLnJlZ2V4cChFTU9KSV9SRUdFWCkuZGVzYyhcInRleHRcIikpLm1hbnkoKSxcbiAgICAgICAgICAgIChmaXJzdCwgcmVzdCkgPT4gZmlyc3QgKyByZXN0LmpvaW4oXCJcIilcbiAgICAgICAgKS5kZXNjKFwidmFyaWFibGVcIiksXG5cbiAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uXG4gICAgbGluazogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXFtcXFsoW15cXFtcXF1dKj8pXFxdXFxdL3UsIDEpXG4gICAgICAgICAgICAubWFwKChsaW5rSW5uZXIpID0+IExpbmsucGFyc2VJbm5lcihsaW5rSW5uZXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBBbiBlbWJlZGRhYmxlIGxpbmsgd2hpY2ggY2FuIHN0YXJ0IHdpdGggJyEnLiBUaGlzIG92ZXJsYXBzIHdpdGggdGhlIG5vcm1hbCBuZWdhdGlvbiBvcGVyYXRvciwgc28gaXQgaXMgb25seVxuICAgIC8vIHByb3ZpZGVkIGZvciBtZXRhZGF0YSBwYXJzaW5nLlxuICAgIGVtYmVkTGluazogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiIVwiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHtcbiAgICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDApIGwuZW1iZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGw7XG4gICAgICAgIH0pLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBCaW5hcnkgcGx1cyBvciBtaW51cyBvcGVyYXRvci5cbiAgICBiaW5hcnlQbHVzTWludXM6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvXFwrfC0vKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicrJyBvciAnLSdcIiksXG5cbiAgICAvLyBCaW5hcnkgdGltZXMgb3IgZGl2aWRlIG9wZXJhdG9yLlxuICAgIGJpbmFyeU11bERpdjogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXCp8XFwvfCUvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicqJyBvciAnLycgb3IgJyUnXCIpLFxuXG4gICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuXG4gICAgYmluYXJ5Q29tcGFyZU9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLz49fDw9fCE9fD58PHw9LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gc3RyIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInPj0nIG9yICc8PScgb3IgJyE9JyBvciAnPScgb3IgJz4nIG9yICc8J1wiKSxcblxuICAgIC8vIEJpbmFyeSBib29sZWFuIGNvbWJpbmF0aW9uIG9wZXJhdG9yLlxuICAgIGJpbmFyeUFuZE9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL2FuZHwmL2kpXG4gICAgICAgICAgICAubWFwKChfc3RyKSA9PiBcIiZcIiBhcyBCaW5hcnlPcClcbiAgICAgICAgICAgIC5kZXNjKFwiJ2FuZCdcIiksXG4gICAgYmluYXJ5T3JPcDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9vcnxcXHwvaSlcbiAgICAgICAgICAgIC5tYXAoKF9zdHIpID0+IFwifFwiIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInb3InXCIpLFxuXG4gICAgLy8gQSBkYXRlIHdoaWNoIGNhbiBiZSBZWVlZLU1NWy1ERFRISDptbTpzc10uXG4gICAgcm9vdERhdGU6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChQLnJlZ2V4cCgvXFxkezR9LyksIFAuc3RyaW5nKFwiLVwiKSwgUC5yZWdleHAoL1xcZHsyfS8pLCAoeWVhciwgXywgbW9udGgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogTnVtYmVyLnBhcnNlSW50KHllYXIpLCBtb250aDogTnVtYmVyLnBhcnNlSW50KG1vbnRoKSB9KTtcbiAgICAgICAgfSkuZGVzYyhcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXVwiKSxcbiAgICBkYXRlU2hvcnRoYW5kOiAoXykgPT5cbiAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhEQVRFX1NIT1JUSEFORFMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTPixcbiAgICBkYXRlOiAocSkgPT5cbiAgICAgICAgY2hhaW5PcHQ8RGF0ZVRpbWU+KFxuICAgICAgICAgICAgcS5yb290RGF0ZSxcbiAgICAgICAgICAgICh5bTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCItXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBkYXkpID0+IHltLnNldCh7IGRheTogTnVtYmVyLnBhcnNlSW50KGRheSkgfSkpLFxuICAgICAgICAgICAgKHltZDogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCJUXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSxcbiAgICAgICAgICAgICh5bWRoOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIjpcIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIG1pbnV0ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgeW1kaC5zZXQoeyBtaW51dGU6IE51bWJlci5wYXJzZUludChtaW51dGUpIH0pXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICh5bWRobTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCI6XCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIHltZGhtLnNldCh7IHNlY29uZDogTnVtYmVyLnBhcnNlSW50KHNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHltZGhtczogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiLlwiKSwgUC5yZWdleHAoL1xcZHszfS8pLCAoXywgbWlsbGlzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB5bWRobXMuc2V0KHsgbWlsbGlzZWNvbmQ6IE51bWJlci5wYXJzZUludChtaWxsaXNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgUC5zdWNjZWVkKHltZGhtcykgLy8gcGFzc1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZHQ6IERhdGVUaW1lKSA9PlxuICAgICAgICAgICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIitcIikub3IoUC5zdHJpbmcoXCItXCIpKSwgUC5yZWdleHAoL1xcZHsxLDJ9KDpcXGR7Mn0pPy8pLCAocG0sIGhyKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZShcIlVUQ1wiICsgcG0gKyBociwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiWlwiKSwgKCkgPT4gZHQuc2V0Wm9uZShcInV0Y1wiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIltcIiksIFAucmVnZXhwKC9bMC05QS1aYS16Ky1cXC9dKy91KSwgUC5zdHJpbmcoXCJdXCIpLCAoX2EsIHpvbmUsIF9iKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAgICAgLmFzc2VydCgoZHQ6IERhdGVUaW1lKSA9PiBkdC5pc1ZhbGlkLCBcInZhbGlkIGRhdGVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXCIpLFxuXG4gICAgLy8gQSBkYXRlLCBwbHVzIHZhcmlvdXMgc2hvcnRoYW5kIHRpbWVzIG9mIGRheSBpdCBjb3VsZCBiZS5cbiAgICBkYXRlUGx1czogKHEpID0+XG4gICAgICAgIFAuYWx0PERhdGVUaW1lPihcbiAgICAgICAgICAgIHEuZGF0ZVNob3J0aGFuZC5tYXAoKGQpID0+IERBVEVfU0hPUlRIQU5EU1tkXSgpKSxcbiAgICAgICAgICAgIHEuZGF0ZVxuICAgICAgICApLmRlc2MoXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10gb3IgaW4gc2hvcnRoYW5kXCIpLFxuXG4gICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLlxuICAgIGR1cmF0aW9uVHlwZTogKF8pID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMoRFVSQVRJT05fVFlQRVMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgRFVSQVRJT05fVFlQRVM+LFxuICAgIGR1cmF0aW9uOiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAocS5udW1iZXIsIFAub3B0V2hpdGVzcGFjZSwgcS5kdXJhdGlvblR5cGUsIChjb3VudCwgXywgdCkgPT5cbiAgICAgICAgICAgIERVUkFUSU9OX1RZUEVTW3RdLm1hcFVuaXRzKCh4KSA9PiB4ICogY291bnQpXG4gICAgICAgIClcbiAgICAgICAgICAgIC5zZXBCeTEoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS5vcihQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgLm1hcCgoZHVyYXRpb25zKSA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvbiBsaWtlIDRocjJtaW5cIiksXG5cbiAgICAvLyBBIHJhdyBudWxsIHZhbHVlLlxuICAgIHJhd051bGw6IChfKSA9PiBQLnN0cmluZyhcIm51bGxcIiksXG5cbiAgICAvLyBJbmxpbmUgZmllbGQgdmFsdWUgcGFyc2luZy5cbiAgICBhdG9tSW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIHEuZGF0ZSxcbiAgICAgICAgICAgIHEuZHVyYXRpb24ubWFwKChkKSA9PiBub3JtYWxpemVEdXJhdGlvbihkKSksXG4gICAgICAgICAgICBxLnN0cmluZyxcbiAgICAgICAgICAgIHEudGFnLFxuICAgICAgICAgICAgcS5lbWJlZExpbmssXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEucmF3TnVsbFxuICAgICAgICApLFxuICAgIGlubGluZUZpZWxkTGlzdDogKHEpID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKHEuYXRvbUlubGluZUZpZWxkKSksXG4gICAgaW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIFAuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLCBxLmlubGluZUZpZWxkTGlzdCwgKGYsIF9zLCBsKSA9PlxuICAgICAgICAgICAgICAgIFtmXS5jb25jYXQobClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBxLmF0b21JbmxpbmVGaWVsZFxuICAgICAgICApLFxufSk7XG5cbi8qKiBFbW9qaSByZWdleCwgc3RycHBpbmcgYW55IHJlZ2V4IGZsYWdzIGl0IGhhcy4gKi9cbmNvbnN0IEVNT0pJX1JFR0VYID0gbmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwiXCIpO1xuXG4vKiogUHJvdmlkZXMgYSBsb29rdXAgdGFibGUgZm9yIHVuaXQgZHVyYXRpb25zIG9mIHRoZSBnaXZlbiB0eXBlLiAqL1xuZXhwb3J0IGNvbnN0IERVUkFUSU9OX1RZUEVTID0ge1xuICAgIHllYXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSxcbiAgICB5ZWFyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLFxuICAgIHlyOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG4gICAgeXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG5cbiAgICBtb250aDogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSxcbiAgICBtb250aHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW86IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW9zOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLFxuXG4gICAgd2VlazogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLFxuICAgIHdlZWtzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG4gICAgd2s6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3a3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3OiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG5cbiAgICBkYXk6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGRheXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuXG4gICAgaG91cjogRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLFxuICAgIGhvdXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG4gICAgaHI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBocnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBoOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG5cbiAgICBtaW51dGU6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbnV0ZXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbjogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbWluczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbTogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG5cbiAgICBzZWNvbmQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlY29uZHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlYzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgc2VjczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG59O1xuXG4vKiogU2hvcnRoYW5kIGZvciBjb21tb24gZGF0ZXMgKHJlbGF0aXZlIHRvIHJpZ2h0IG5vdykuICovXG5leHBvcnQgY29uc3QgREFURV9TSE9SVEhBTkRTID0ge1xuICAgIG5vdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKSxcbiAgICB0b2RheTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwiZGF5XCIpLFxuICAgIHllc3RlcmRheTogKCkgPT5cbiAgICAgICAgRGF0ZVRpbWUubG9jYWwoKVxuICAgICAgICAgICAgLnN0YXJ0T2YoXCJkYXlcIilcbiAgICAgICAgICAgIC5taW51cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgdG9tb3Jyb3c6ICgpID0+XG4gICAgICAgIERhdGVUaW1lLmxvY2FsKClcbiAgICAgICAgICAgIC5zdGFydE9mKFwiZGF5XCIpXG4gICAgICAgICAgICAucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgc293OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIFwic3RhcnQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIGVvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZihcIndlZWtcIiksXG4gICAgXCJlbmQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwid2Vla1wiKSxcbiAgICBzb3k6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgXCJzdGFydC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgZW95OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwieWVhclwiKSxcbiAgICBcImVuZC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJ5ZWFyXCIpLFxuICAgIHNvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwibW9udGhcIiksXG4gICAgXCJzdGFydC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJtb250aFwiKSxcbiAgICBlb206ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJtb250aFwiKSxcbiAgICBcImVuZC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwibW9udGhcIiksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFeHByZXNzaW9uIExhbmd1YWdlIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIFBvc3RmaXhGcmFnbWVudCA9XG4gICAgfCB7IHR5cGU6IFwiZG90XCI7IGV4cHI6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiaW5kZXhcIjsgZXhwcjogRXhwcmVzc2lvbiB9XG4gICAgfCB7IHR5cGU6IFwiZnVuY3Rpb25cIjsgZXhwcnM6IEV4cHJlc3Npb25bXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25MYW5ndWFnZSB7XG4gICAgdmFyaWFibGU6IFZhcmlhYmxlRXhwcmVzc2lvbjtcbiAgICBudW1iZXI6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGJvb2w6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIHN0cmluZzogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZGF0ZTogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZHVyYXRpb246IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGxpbms6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIG51bGw6IExpdGVyYWxFeHByZXNzaW9uO1xuXG4gICAgbGlzdDogTGlzdEV4cHJlc3Npb247XG4gICAgb2JqZWN0OiBPYmplY3RFeHByZXNzaW9uO1xuXG4gICAgbmVnYXRlZDogRXhwcmVzc2lvbjtcbiAgICBhdG9tOiBFeHByZXNzaW9uO1xuICAgIGluZGV4OiBFeHByZXNzaW9uO1xuICAgIGxhbWJkYTogTGFtYmRhRXhwcmVzc2lvbjtcblxuICAgIC8vIFBvc3RmaXggcGFyc2VycyBmb3IgZnVuY3Rpb24gY2FsbHMgJiB0aGUgbGlrZS5cbiAgICBkb3RQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgaW5kZXhQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgZnVuY3Rpb25Qb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG5cbiAgICAvLyBCaW5hcnkgb3AgcGFyc2Vycy5cbiAgICBiaW5hcnlNdWxEaXY6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5UGx1c01pbnVzOiBFeHByZXNzaW9uO1xuICAgIGJpbmFyeUNvbXBhcmU6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5Qm9vbGVhbjogRXhwcmVzc2lvbjtcbiAgICBiaW5hcnlPcDogRXhwcmVzc2lvbjtcbiAgICBwYXJlbnM6IEV4cHJlc3Npb247XG4gICAgZXhwcmVzc2lvbjogRXhwcmVzc2lvbjtcbn1cblxuLyoqXG4gKiBQYXJzZSBmb3IgdGhlIGRhdGFjb3JlIGV4cHJlc3Npb24gbGFuZ3VhZ2UsIHdoaWNoIHByb3ZpZGVzIHNpbXBsZSBhbmQgdmFndWVseSBKUy1sb29raW5nIGNvbXB1dGF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTiA9IFAuY3JlYXRlTGFuZ3VhZ2U8RXhwcmVzc2lvbkxhbmd1YWdlPih7XG4gICAgLy8gRmllbGQgcGFyc2luZy5cbiAgICB2YXJpYWJsZTogKF8pID0+IFBSSU1JVElWRVMuaWRlbnRpZmllci5tYXAoRXhwcmVzc2lvbnMudmFyaWFibGUpLmRlc2MoXCJ2YXJpYWJsZVwiKSxcbiAgICBudW1iZXI6IChfKSA9PiBQUklNSVRJVkVTLm51bWJlci5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcIm51bWJlclwiKSxcbiAgICBzdHJpbmc6IChfKSA9PiBQUklNSVRJVkVTLnN0cmluZy5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcInN0cmluZ1wiKSxcbiAgICBib29sOiAoXykgPT4gUFJJTUlUSVZFUy5ib29sLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKS5kZXNjKFwiYm9vbGVhblwiKSxcbiAgICBkYXRlOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkYXRlXCIsIFBSSU1JVElWRVMuZGF0ZVBsdXMpXG4gICAgICAgICAgICAubWFwKChbX2Z1bmMsIGRhdGVdKSA9PiBFeHByZXNzaW9ucy5saXRlcmFsKGRhdGUpKVxuICAgICAgICAgICAgLmRlc2MoXCJkYXRlXCIpLFxuICAgIGR1cmF0aW9uOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkdXJcIiwgUFJJTUlUSVZFUy5kdXJhdGlvbilcbiAgICAgICAgICAgIC5tYXAoKFtfZnVuYywgZHVyXSkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChkdXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvblwiKSxcbiAgICBudWxsOiAoXykgPT4gUFJJTUlUSVZFUy5yYXdOdWxsLm1hcCgoXykgPT4gRXhwcmVzc2lvbnMuTlVMTCksXG4gICAgbGluazogKF8pID0+IFBSSU1JVElWRVMubGluay5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCksXG4gICAgbGlzdDogKHEpID0+XG4gICAgICAgIHEuZXhwcmVzc2lvblxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIltcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIl1cIikpKVxuICAgICAgICAgICAgLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGlzdChsKSlcbiAgICAgICAgICAgIC5kZXNjKFwibGlzdFwiKSxcbiAgICBvYmplY3Q6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZyksXG4gICAgICAgICAgICBQLnN0cmluZyhcIjpcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgKG5hbWUsIF9zZXAsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIntcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIn1cIikpKVxuICAgICAgICAgICAgLm1hcCgodmFscykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgdmFscykgcmVzW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEV4cHJlc3Npb25zLm9iamVjdChyZXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5kZXNjKFwib2JqZWN0ICgneyBhOiAxLCBiOiAyIH0nKVwiKSxcblxuICAgIGF0b206IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIC8vIFBsYWNlIGVtYmVkIGxpbmtzIGFib3ZlIG5lZ2F0ZWQgZmllbGRzIGFzIHRoZXkgYXJlIHRoZSBzcGVjaWFsIHBhcnNlciBjYXNlICchW1t0aGluZ11dJyBhbmQgYXJlIGdlbmVyYWxseSB1bmFtYmlnaW91cy5cbiAgICAgICAgICAgIFBSSU1JVElWRVMuZW1iZWRMaW5rLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChsKSksXG4gICAgICAgICAgICBxLm5lZ2F0ZWQsXG4gICAgICAgICAgICBxLmxpbmssXG4gICAgICAgICAgICBxLmxpc3QsXG4gICAgICAgICAgICBxLm9iamVjdCxcbiAgICAgICAgICAgIHEubGFtYmRhLFxuICAgICAgICAgICAgcS5wYXJlbnMsXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEuc3RyaW5nLFxuICAgICAgICAgICAgcS5kYXRlLFxuICAgICAgICAgICAgcS5kdXJhdGlvbixcbiAgICAgICAgICAgIHEubnVsbCxcbiAgICAgICAgICAgIHEudmFyaWFibGVcbiAgICAgICAgKSxcbiAgICBpbmRleDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKHEuYXRvbSwgUC5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gb2JqO1xuICAgICAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZG90XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIEV4cHJlc3Npb25zLmxpdGVyYWwocG9zdC5leHByKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImluZGV4XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIHBvc3QuZXhwcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5mdW5jKHJlc3VsdCwgcG9zdC5leHBycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgIG5lZ2F0ZWQ6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIiFcIiksIHEuaW5kZXgsIChfLCBmaWVsZCkgPT4gRXhwcmVzc2lvbnMubmVnYXRlKGZpZWxkKSkuZGVzYyhcIm5lZ2F0ZWQgZmllbGRcIiksXG4gICAgcGFyZW5zOiAocSkgPT4gcS5leHByZXNzaW9uLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS53cmFwKFAuc3RyaW5nKFwiKFwiKSwgUC5zdHJpbmcoXCIpXCIpKSxcbiAgICBsYW1iZGE6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIC5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgICAgIC53cmFwKFAuc3RyaW5nKFwiKFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksIFAuc3RyaW5nKFwiKVwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCI9PlwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksXG4gICAgICAgICAgICBxLmV4cHJlc3Npb24sXG4gICAgICAgICAgICAoaWRlbnQsIF9pZ25vcmUsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsYW1iZGFcIiwgYXJndW1lbnRzOiBpZGVudCwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIGRvdFBvc3RmaXg6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIi5cIiksIFBSSU1JVElWRVMuaWRlbnRpZmllciwgKF8sIGV4cHIpID0+ICh7IHR5cGU6IFwiZG90XCIsIGV4cHIgfSkpLFxuICAgIGluZGV4UG9zdGZpeDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJbXCIpLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJdXCIpLFxuICAgICAgICAgICAgKF8sIF8yLCBleHByLCBfMywgXzQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcImluZGV4XCIsIGV4cHIgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICBmdW5jdGlvblBvc3RmaXg6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKFwiKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIHEuZXhwcmVzc2lvbi5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKVwiKSxcbiAgICAgICAgICAgIChfLCBfMSwgZXhwcnMsIF8yLCBfMykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgZXhwcnMgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLlxuICAgIGJpbmFyeU11bERpdjogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmluZGV4LCBQUklNSVRJVkVTLmJpbmFyeU11bERpdiwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeVBsdXNNaW51czogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmJpbmFyeU11bERpdiwgUFJJTUlUSVZFUy5iaW5hcnlQbHVzTWludXMsIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlDb21wYXJlOiAocSkgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzLCBQUklNSVRJVkVTLmJpbmFyeUNvbXBhcmVPcCwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeUJvb2xlYW46IChxKSA9PlxuICAgICAgICBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlDb21wYXJlLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLm9yKFBSSU1JVElWRVMuYmluYXJ5T3JPcCksIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlPcDogKHEpID0+IHEuYmluYXJ5Qm9vbGVhbixcblxuICAgIGV4cHJlc3Npb246IChxKSA9PiBxLmJpbmFyeU9wLFxufSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBRdWVyeSBMYW5ndWFnZSAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFN1cHBvcnRlZCB0eXBlcyBpbiB0aGUgZ3JhbW1hciBmb3IgaW5kZXggcXVlcmllcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlMYW5ndWFnZSB7XG4gICAgcXVlcnlUYWc6IEluZGV4VGFnZ2VkO1xuICAgIHF1ZXJ5SWQ6IEluZGV4SWQ7XG4gICAgcXVlcnlUeXBlOiBJbmRleFR5cGVkO1xuICAgIHF1ZXJ5UGF0aDogSW5kZXhQYXRoO1xuICAgIHF1ZXJ5UGFyZW50T2Y6IEluZGV4UGFyZW50T2Y7XG4gICAgcXVlcnlDaGlsZE9mOiBJbmRleENoaWxkT2Y7XG4gICAgcXVlcnlTaW1wbGVMaW5rZWQ6IEluZGV4TGlua2VkO1xuICAgIHF1ZXJ5TGlua2VkOiBJbmRleExpbmtlZDtcbiAgICBxdWVyeUV4aXN0czogSW5kZXhGaWVsZDtcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeVJhd0V4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeU5lZ2F0ZTogSW5kZXhOb3Q7XG4gICAgcXVlcnlQYXJlbnM6IEluZGV4UXVlcnk7XG4gICAgcXVlcnlBdG9tOiBJbmRleFF1ZXJ5O1xuICAgIHF1ZXJ5QW5kczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeU9yczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeTogSW5kZXhRdWVyeTtcbn1cblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBxdWVyeSBsYW5ndWFnZS4gRGlkIEkgcmVhbGx5IG5lZWQgYSBxdWVyeSBsYW5ndWFnZSBpbnN0ZWFkIG9mIGp1c3QgYSBiZXR0ZXIgVUk/IFByb2JhYmx5IG5vdC5cbiAqIEJ1dCBxdWVyeSBsYW5ndWFnZXMgYXJlIGZ1biBmb3IgdGhlIHdob2xlIGZhbWlseSBhbmQgYXQgc29tZSBwb2ludCB5b3UgZ2V0IHNvIHVzZWQgdG8gd3JpdGluZyB0aGVtIHRoYXRcbiAqIHlvdSBkb24ndCBzdG9wIHRvIHRoaW5rIGlmIHlvdSAqbmVlZCogdG8gd3JpdGUgdGhlbSBhbnltb3JlLiBJdCdzIGdvb2QgdHlwaW5nIHByYWN0aWNlIGZvciBldmVyeW9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFFVRVJZID0gUC5jcmVhdGVMYW5ndWFnZTxRdWVyeUxhbmd1YWdlPih7XG4gICAgcXVlcnlUYWc6IChfKSA9PiBQUklNSVRJVkVTLnRhZy5tYXAoKHZhbHVlKSA9PiAoeyB0eXBlOiBcInRhZ2dlZFwiLCB2YWx1ZSB9KSksXG4gICAgcXVlcnlJZDogKF8pID0+IGNyZWF0ZUZ1bmN0aW9uKFwiaWRcIiwgUFJJTUlUSVZFUy5zdHJpbmcpLm1hcCgoW18sIGlkXSkgPT4gKHsgdHlwZTogXCJpZFwiLCB2YWx1ZTogaWQgfSkpLFxuICAgIHF1ZXJ5VHlwZTogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiQFwiKVxuICAgICAgICAgICAgLnRoZW4oUFJJTUlUSVZFUy5pZGVudGlmaWVyKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7IHR5cGU6IFwidHlwZWRcIiwgdmFsdWU6IHZhbHVlIH0pKSxcblxuICAgIHF1ZXJ5UGF0aDogKF8pID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9lP3BhdGgvaSkuZGVzYyhcIltlXXBhdGhcIiksIFBSSU1JVElWRVMuc3RyaW5nKS5tYXAoKFtmdW5jLCBwYXRoXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwicGF0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHBhdGgsXG4gICAgICAgICAgICBleGFjdDogZnVuYy50b0xvd2VyQ2FzZSgpID09PSBcImVwYXRoXCIsXG4gICAgICAgIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW50T2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvcGFyZW50b2Z8c3VwZXJ0cmVlL2kpLmRlc2MoXCJwYXJlbnRvZlwiKSwgcS5xdWVyeSkubWFwKChbZnVuYywgY2hpbGRyZW5dKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJwYXJlbnQtb2ZcIixcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmdW5jLnRvTG93ZXJDYXNlKCkgPT09IFwic3VwZXJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUNoaWxkT2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvY2hpbGRvZnxzdWJ0cmVlL2kpLmRlc2MoXCJjaGlsZG9mXCIpLCBxLnF1ZXJ5KS5tYXAoKFtmdW5jLCBwYXJlbnRzXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hpbGQtb2ZcIixcbiAgICAgICAgICAgIHBhcmVudHMsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PT0gXCJzdWJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeVNpbXBsZUxpbmtlZDogKF8pID0+XG4gICAgICAgIFBSSU1JVElWRVMubGluay5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlOiB7IHR5cGU6IFwibGlua1wiLCB2YWx1ZTogbGluayB9LFxuICAgICAgICAgICAgZGlyZWN0aW9uOiBcImluY29taW5nXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUxpbmtlZDogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9saW5rc3RvfGxpbmtlZGZyb218Y29ubmVjdGVkL2kpLmRlc2MoXCJjb25uZWN0ZWRcIiksIHEucXVlcnkpLm1hcCgoW2Z1bmMsIHNvdXJjZV0pID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgZGlyZWN0aW9uOlxuICAgICAgICAgICAgICAgIGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtzdG9cIiA/IFwiaW5jb21pbmdcIiA6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtlZGZyb21cIiA/IFwib3V0Z29pbmdcIiA6IFwiYm90aFwiLFxuICAgICAgICB9KSksXG4gICAgcXVlcnlFeGlzdHM6IChfKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhpc3RzL2kpLmRlc2MoXCJleGlzdHNcIiksIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZykpLm1hcChcbiAgICAgICAgICAgIChbX2Z1bmMsIGlkZW50XSkgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZpZWxkXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhwci9pKS5kZXNjKFwiZXhwclwiKSwgRVhQUkVTU0lPTi5leHByZXNzaW9uKS5tYXAoKFtfLCBleHByXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5UmF3RXhwcmVzc2lvbjogKHEpID0+IEVYUFJFU1NJT04uYmluYXJ5Q29tcGFyZS5tYXAoKGV4cHIpID0+ICh7IHR5cGU6IFwiZXhwcmVzc2lvblwiLCBleHByZXNzaW9uOiBleHByIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW5zOiAocSkgPT4gcS5xdWVyeS50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgcXVlcnlOZWdhdGU6IChxKSA9PlxuICAgICAgICBQLnN0cmluZyhcIiFcIilcbiAgICAgICAgICAgIC5za2lwKFAub3B0V2hpdGVzcGFjZSlcbiAgICAgICAgICAgIC50aGVuKHEucXVlcnlBdG9tKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJub3RcIixcbiAgICAgICAgICAgICAgICBlbGVtZW50OiB2YWx1ZSxcbiAgICAgICAgICAgIH0pKSxcbiAgICBxdWVyeUF0b206IChxKSA9PlxuICAgICAgICBQLmFsdDxJbmRleFF1ZXJ5PihcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnMsXG4gICAgICAgICAgICBxLnF1ZXJ5TmVnYXRlLFxuICAgICAgICAgICAgcS5xdWVyeVNpbXBsZUxpbmtlZCxcbiAgICAgICAgICAgIHEucXVlcnlUYWcsXG4gICAgICAgICAgICBxLnF1ZXJ5VHlwZSxcbiAgICAgICAgICAgIHEucXVlcnlJZCxcbiAgICAgICAgICAgIHEucXVlcnlFeGlzdHMsXG4gICAgICAgICAgICBxLnF1ZXJ5Q2hpbGRPZixcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnRPZixcbiAgICAgICAgICAgIHEucXVlcnlMaW5rZWQsXG4gICAgICAgICAgICBxLnF1ZXJ5UGF0aCxcbiAgICAgICAgICAgIHEucXVlcnlRdW90ZWRFeHByZXNzaW9uLFxuICAgICAgICAgICAgLy8gRXhwcmVzc2lvbnMgYXJlIGVzc2VudGlhbGx5IHRoZSBcImNhdGNoLWFsbFwiIG9mIG90aGVyd2lzZSB1bnBhcnNlYWJsZSB0ZXJtcywgc28gdGhleSBzaG91bGQgZ28gYWJzb2x1dGUgbGFzdC5cbiAgICAgICAgICAgIHEucXVlcnlSYXdFeHByZXNzaW9uXG4gICAgICAgICksXG4gICAgcXVlcnlBbmRzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBdG9tLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLCAobGVmdCwgX29wLCByaWdodCkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiYW5kXCIsXG4gICAgICAgICAgICBlbGVtZW50czogW2xlZnQsIHJpZ2h0XSxcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5T3JzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBbmRzLCBQUklNSVRJVkVTLmJpbmFyeU9yT3AsIChsZWZ0LCBfb3AsIHJpZ2h0KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJvclwiLFxuICAgICAgICAgICAgZWxlbWVudHM6IFtsZWZ0LCByaWdodF0sXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeTogKHEpID0+IHEucXVlcnlPcnMudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxufSk7XG5cbi8qKiBSZXR1cm4gYSBuZXcgcGFyc2VyIHdoaWNoIGV4ZWN1dGVzIHRoZSB1bmRlcmx5aW5nIHBhcnNlciBhbmQgcmV0dXJucyBpdCdzIHJhdyBzdHJpbmcgcmVwcmVzZW50YXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZVJhdzxUPihiYXNlOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtULCBzdHJpbmddPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXN1bHQsIHsgdmFsdWU6IFtyZXN1bHQudmFsdWUsIGlucHV0LnN1YnN0cmluZyhpLCByZXN1bHQuaW5kZXgpXSB9KTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuLyoqIENyZWF0ZSBhIGxlZnQtYXNzb2NpYXRpdmUgYmluYXJ5IHBhcnNlciB3aGljaCBwYXJzZXMgdGhlIGdpdmVuIHN1Yi1lbGVtZW50IGFuZCBzZXBhcmF0b3IuIEhhbmRsZXMgd2hpdGVzcGFjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCaW5hcnlQYXJzZXI8VCwgVT4oXG4gICAgY2hpbGQ6IFAuUGFyc2VyPFQ+LFxuICAgIHNlcDogUC5QYXJzZXI8VT4sXG4gICAgY29tYmluZTogKGE6IFQsIGI6IFUsIGM6IFQpID0+IFRcbik6IFAuUGFyc2VyPFQ+IHtcbiAgICByZXR1cm4gUC5zZXFNYXAoY2hpbGQsIFAuc2VxKFAub3B0V2hpdGVzcGFjZSwgc2VwLCBQLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4ge1xuICAgICAgICBpZiAocmVzdC5sZW5ndGggPT0gMCkgcmV0dXJuIGZpcnN0O1xuXG4gICAgICAgIGxldCBub2RlID0gY29tYmluZShmaXJzdCwgcmVzdFswXVsxXSwgcmVzdFswXVszXSk7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgbm9kZSA9IGNvbWJpbmUobm9kZSwgcmVzdFtpbmRleF1bMV0sIHJlc3RbaW5kZXhdWzNdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXJzZXIgd2hpY2ggcGFyc2VzIFxcPGZ1bmN0aW9uXFw+KFxcPGFyZ3NcXD4pLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbjxUPihmdW5jOiBzdHJpbmcgfCBQLlBhcnNlcjxzdHJpbmc+LCBhcmdzOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtzdHJpbmcsIFRdPiB7XG4gICAgY29uc3QgcmVhbEZ1bmMgPSB0eXBlb2YgZnVuYyA9PT0gXCJzdHJpbmdcIiA/IFAuc3RyaW5nKGZ1bmMpIDogZnVuYztcbiAgICByZXR1cm4gUC5zZXFNYXAoXG4gICAgICAgIHJlYWxGdW5jLnNraXAoUC5vcHRXaGl0ZXNwYWNlKSxcbiAgICAgICAgYXJncy50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgICAgIChmLCBhKSA9PiBbZiwgYV1cbiAgICApO1xufVxuXG4vKiogQ2hhaW5zIGEgbGlzdCBvZiBwYXJzZXJzOyB0aGUgZmlyc3Qgb25lIG11c3Qgc3VjY2VlZCwgYnV0IGZvbGxvd2luZyBvbmVzIG1heSBmYWlsIHdpdGhvdXQgZmFpbGluZyB0aGUgb3ZlcmFsbCBwYXJzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbk9wdDxUPihiYXNlOiBQLlBhcnNlcjxUPiwgLi4uZnVuY3M6ICgocjogVCkgPT4gUC5QYXJzZXI8VD4pW10pOiBQLlBhcnNlcjxUPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IChmdW5jKHJlc3VsdC52YWx1ZSBhcyBUKSBhcyBhbnkpLl8oaW5wdXQsIHJlc3VsdC5pbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGV4cHJlc3Npb25zXG4gKi9cbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IHJlbmRlck1pbmltYWxEYXRlLCByZW5kZXJNaW5pbWFsRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLy8gUmUtZXhwb3J0cyBvZiB1c2VmdWwgZ2VuZXJpYyB0eXBlcy5cbmV4cG9ydCB7IExpbmsgfTtcblxuLyoqIFNob3J0aGFuZCBmb3IgYSBtYXBwaW5nIGZyb20ga2V5cyB0byB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBEYXRhT2JqZWN0ID0gUmVjb3JkPHN0cmluZywgYW55Pjtcbi8qKiBUaGUgbGl0ZXJhbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIHF1ZXJ5IGVuZ2luZS4gKi9cbmV4cG9ydCB0eXBlIExpdGVyYWxUeXBlID1cbiAgICB8IFwiYm9vbGVhblwiXG4gICAgfCBcIm51bWJlclwiXG4gICAgfCBcInN0cmluZ1wiXG4gICAgfCBcImRhdGVcIlxuICAgIHwgXCJkdXJhdGlvblwiXG4gICAgfCBcImxpbmtcIlxuICAgIHwgXCJhcnJheVwiXG4gICAgfCBcIm9iamVjdFwiXG4gICAgfCBcImZ1bmN0aW9uXCJcbiAgICB8IFwibnVsbFwiO1xuLyoqIFRoZSByYXcgdmFsdWVzIHRoYXQgYSBsaXRlcmFsIGNhbiB0YWtlIG9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbCA9XG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgRGF0ZVRpbWVcbiAgICB8IER1cmF0aW9uXG4gICAgfCBMaW5rXG4gICAgfCBBcnJheTxMaXRlcmFsPlxuICAgIHwgRGF0YU9iamVjdFxuICAgIHwgRnVuY3Rpb25cbiAgICB8IG51bGw7XG5cbi8qKiBNYXBzIHRoZSBzdHJpbmcgdHlwZSB0byBpdCdzIGV4dGVybmFsLCBBUEktZmFjaW5nIHJlcHJlc2VudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFJlcHI8VCBleHRlbmRzIExpdGVyYWxUeXBlPiA9IFQgZXh0ZW5kcyBcImJvb2xlYW5cIlxuICAgID8gYm9vbGVhblxuICAgIDogVCBleHRlbmRzIFwibnVtYmVyXCJcbiAgICA/IG51bWJlclxuICAgIDogVCBleHRlbmRzIFwic3RyaW5nXCJcbiAgICA/IHN0cmluZ1xuICAgIDogVCBleHRlbmRzIFwiZHVyYXRpb25cIlxuICAgID8gRHVyYXRpb25cbiAgICA6IFQgZXh0ZW5kcyBcImRhdGVcIlxuICAgID8gRGF0ZVRpbWVcbiAgICA6IFQgZXh0ZW5kcyBcIm51bGxcIlxuICAgID8gbnVsbFxuICAgIDogVCBleHRlbmRzIFwibGlua1wiXG4gICAgPyBMaW5rXG4gICAgOiBUIGV4dGVuZHMgXCJhcnJheVwiXG4gICAgPyBBcnJheTxMaXRlcmFsPlxuICAgIDogVCBleHRlbmRzIFwib2JqZWN0XCJcbiAgICA/IERhdGFPYmplY3RcbiAgICA6IFQgZXh0ZW5kcyBcImZ1bmN0aW9uXCJcbiAgICA/IEZ1bmN0aW9uXG4gICAgOiBhbnk7XG5cbi8qKiBBIHdyYXBwZWQgbGl0ZXJhbCB2YWx1ZSB3aGljaCBjYW4gYmUgc3dpdGNoZWQgb24uICovXG5leHBvcnQgdHlwZSBXcmFwcGVkTGl0ZXJhbCA9XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcInN0cmluZ1wiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJudW1iZXJcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYm9vbGVhblwiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJkYXRlXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImR1cmF0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImxpbmtcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYXJyYXlcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwib2JqZWN0XCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImZ1bmN0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcIm51bGxcIj47XG5cbi8qKiBDb21iaW5lcyBhIHRleHR1YWwgdHlwZSBhbmQgdmFsdWU7IHByaW1hcmlseSB1c2VmdWwgZm9yIHN3aXRjaGluZyBvbi5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsV3JhcHBlcjxUIGV4dGVuZHMgTGl0ZXJhbFR5cGU+IHtcbiAgICB0eXBlOiBUO1xuICAgIHZhbHVlOiBMaXRlcmFsUmVwcjxUPjtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiAgVXRpbGl0eSBsaWJyYXJ5IGZvciBoYW5kbGluZyBsaXRlcmFsIHZhbHVlcy4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgTGl0ZXJhbHMge1xuICAgIC8qKiBTZXR0aW5ncyB1c2VkIHdoZW4gZm9ybWF0dGluZyBsaXRlcmFsIHZhbHVlcyB0byB0ZXh0LiAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9TdHJpbmdTZXR0aW5ncyB7XG4gICAgICAgIC8qKiBXaGF0IGEgbnVsbCB3aWxsIHJlbmRlciBhcy4gKi9cbiAgICAgICAgbnVsbFJlcHJlc2VudGF0aW9uOiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUgZm9ybWF0LiAqL1xuICAgICAgICBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUtdGltZSBmb3JtYXQuICovXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqIFNhbmUsIEVuZ2xpc2gtYmFzZWQgZGVmYXVsdHMgZm9yIGRhdGUgZm9ybWF0cy4gKi9cbiAgICBleHBvcnQgY29uc3QgREVGQVVMVF9UT19TVFJJTkc6IFRvU3RyaW5nU2V0dGluZ3MgPSB7XG4gICAgICAgIG51bGxSZXByZXNlbnRhdGlvbjogXCItXCIsXG5cbiAgICAgICAgZGF0ZUZvcm1hdDogXCJNTU1NIGRkLCB5eXl5XCIsXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBcImg6bW0gYSAtIE1NTU0gZGQsIHl5eXlcIixcbiAgICB9O1xuXG4gICAgLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhbHVlIGludG8gYSByZWFzb25hYmxlLCBNYXJrZG93bi1mcmllbmRseSBzdHJpbmcgaWYgcG9zc2libGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKFxuICAgICAgICBmaWVsZDogYW55LFxuICAgICAgICBzZXR0aW5nOiBUb1N0cmluZ1NldHRpbmdzID0gREVGQVVMVF9UT19TVFJJTkcsXG4gICAgICAgIHJlY3Vyc2l2ZTogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBzZXR0aW5nLm51bGxSZXByZXNlbnRhdGlvbjtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZy5udWxsUmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiICsgd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIjxmdW5jdGlvbj5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChyZWN1cnNpdmUpIHJlc3VsdCArPSBcIltcIjtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gd3JhcHBlZC52YWx1ZS5tYXAoKGYpID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKFwiLCBcIik7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkgcmVzdWx0ICs9IFwiXVwiO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgXCJ7IFwiICtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGUpID0+IGVbMF0gKyBcIjogXCIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIiB9XCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyTWluaW1hbERhdGUod3JhcHBlZC52YWx1ZSwgc2V0dGluZy5kYXRlRm9ybWF0LCBzZXR0aW5nLmRhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRHVyYXRpb24od3JhcHBlZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogV3JhcCBhIGxpdGVyYWwgdmFsdWUgc28geW91IGNhbiBzd2l0Y2ggb24gaXQgZWFzaWx5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB3cmFwVmFsdWUodmFsOiBMaXRlcmFsKTogV3JhcHBlZExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNOdWxsKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVsbFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVtYmVyXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJzdHJpbmdcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW4odmFsKSkgcmV0dXJuIHsgdHlwZTogXCJib29sZWFuXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEdXJhdGlvbih2YWwpKSByZXR1cm4geyB0eXBlOiBcImR1cmF0aW9uXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZGF0ZVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJhcnJheVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTGluayh2YWwpKSByZXR1cm4geyB0eXBlOiBcImxpbmtcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXBMZWF2ZXModmFsOiBMaXRlcmFsLCBmdW5jOiAodDogTGl0ZXJhbCkgPT4gTGl0ZXJhbCk6IExpdGVyYWwge1xuICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdDogRGF0YU9iamVjdCA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHJlc3VsdFtrZXldID0gbWFwTGVhdmVzKHZhbHVlLCBmdW5jKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBMaXRlcmFsW10gPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbCkgcmVzdWx0LnB1c2gobWFwTGVhdmVzKHZhbHVlLCBmdW5jKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0d28gYXJiaXRyYXJ5IGxpdGVyYWxzIGFyZSBlcXVhbC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZXF1YWxzKGZpcnN0OiBMaXRlcmFsIHwgdW5kZWZpbmVkLCBzZWNvbmQ6IExpdGVyYWwgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmUoZmlyc3QsIHNlY29uZCkgPT0gMDtcbiAgICB9XG5cbiAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGFjb3JlIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKFxuICAgICAgICB2YWwxOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICB2YWwyOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICBsaW5rTm9ybWFsaXplcj86IChsaW5rOiBzdHJpbmcpID0+IHN0cmluZ1xuICAgICk6IG51bWJlciB7XG4gICAgICAgIC8vIFJlZmVyZW5jZSBlcXVhbGl0eSAtIHNob3J0IGNpcmN1aXQuXG4gICAgICAgIGlmICh2YWwxID09PSB2YWwyKSByZXR1cm4gMDtcblxuICAgICAgICAvLyBIYW5kbGUgdW5kZWZpbmVkL251bGxzIGZpcnN0LlxuICAgICAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkKSB2YWwxID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCkgdmFsMiA9IG51bGw7XG4gICAgICAgIGlmICh2YWwxID09PSBudWxsICYmIHZhbDIgPT09IG51bGwpIHJldHVybiAwO1xuICAgICAgICBlbHNlIGlmICh2YWwxID09PSBudWxsKSByZXR1cm4gLTE7XG4gICAgICAgIGVsc2UgaWYgKHZhbDIgPT09IG51bGwpIHJldHVybiAxO1xuXG4gICAgICAgIC8vIEEgbm9uLW51bGwgdmFsdWUgbm93IHdoaWNoIHdlIGNhbiB3cmFwICYgY29tcGFyZSBvbi5cbiAgICAgICAgbGV0IHdyYXAxID0gd3JhcFZhbHVlKHZhbDEpO1xuICAgICAgICBsZXQgd3JhcDIgPSB3cmFwVmFsdWUodmFsMik7XG5cbiAgICAgICAgaWYgKHdyYXAxID09PSB1bmRlZmluZWQgJiYgd3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDA7XG4gICAgICAgIGVsc2UgaWYgKHdyYXAxID09PSB1bmRlZmluZWQpIHJldHVybiAtMTtcbiAgICAgICAgZWxzZSBpZiAod3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDE7XG5cbiAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBvbiBkaWZmZXJlbnQgdHlwZXMgb3Igb24gcmVmZXJlbmNlIGVxdWFsaXR5LlxuICAgICAgICBpZiAod3JhcDEudHlwZSAhPSB3cmFwMi50eXBlKSByZXR1cm4gd3JhcDEudHlwZS5sb2NhbGVDb21wYXJlKHdyYXAyLnR5cGUpO1xuICAgICAgICBpZiAod3JhcDEudmFsdWUgPT09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXAxLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUubG9jYWxlQ29tcGFyZSh3cmFwMi52YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIGlmICh3cmFwMS52YWx1ZSA8ICh3cmFwMi52YWx1ZSBhcyBudW1iZXIpKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod3JhcDEudmFsdWUgPT0gKHdyYXAyLnZhbHVlIGFzIG51bWJlcikpIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiB3cmFwMS52YWx1ZSA/IDEgOiAtMTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsxID0gd3JhcDEudmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsyID0gd3JhcDIudmFsdWUgYXMgTGluaztcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplID0gbGlua05vcm1hbGl6ZXIgPz8gKCh4OiBzdHJpbmcpID0+IHgpO1xuXG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY29tcGFyZSBieSBmaWxlIG5hbWUgb3IgZGlzcGxheSwgc2luY2UgdGhhdCB3b3VsZCBicmVhayBsaW5rIGVxdWFsaXR5LiBDb21wYXJlIGJ5IHBhdGguXG4gICAgICAgICAgICAgICAgbGV0IHBhdGhDb21wYXJlID0gbm9ybWFsaXplKGxpbmsxLnBhdGgpLmxvY2FsZUNvbXBhcmUobm9ybWFsaXplKGxpbmsyLnBhdGgpKTtcbiAgICAgICAgICAgICAgICBpZiAocGF0aENvbXBhcmUgIT0gMCkgcmV0dXJuIHBhdGhDb21wYXJlO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlbiBjb21wYXJlIGJ5IHR5cGUuXG4gICAgICAgICAgICAgICAgbGV0IHR5cGVDb21wYXJlID0gbGluazEudHlwZS5sb2NhbGVDb21wYXJlKGxpbmsyLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tcGFyZSAhPSAwKSByZXR1cm4gdHlwZUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgc3VicGF0aCBleGlzdGVuY2UuXG4gICAgICAgICAgICAgICAgaWYgKGxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiBsaW5rMi5zdWJwYXRoKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIC8vIFNpbmNlIGJvdGggaGF2ZSBhIHN1YnBhdGgsIGNvbXBhcmUgYnkgc3VicGF0aC5cbiAgICAgICAgICAgICAgICByZXR1cm4gKGxpbmsxLnN1YnBhdGggPz8gXCJcIikubG9jYWxlQ29tcGFyZShsaW5rMi5zdWJwYXRoID8/IFwiXCIpO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICBsZXQgZjEgPSB3cmFwMS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgZjIgPSB3cmFwMi52YWx1ZSBhcyBhbnlbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wID0gY29tcGFyZShmMVtpbmRleF0sIGYyW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApIHJldHVybiBjb21wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZjEubGVuZ3RoIC0gZjIubGVuZ3RoO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGxldCBvMSA9IHdyYXAxLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGsxID0gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvMSkpO1xuICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTtcbiAgICAgICAgICAgICAgICBrMS5zb3J0KCk7XG4gICAgICAgICAgICAgICAgazIuc29ydCgpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGtleUNvbXBhcmUgPSBjb21wYXJlKGsxLCBrMik7XG4gICAgICAgICAgICAgICAgaWYgKGtleUNvbXBhcmUgIT0gMCkgcmV0dXJuIGtleUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgazEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlKG8xW2tleV0sIG8yW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKSByZXR1cm4gY29tcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgZGF0YWNvcmUgdHlwZSBmb3IgYW4gYXJiaXRyYXJ5IHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB0eXBlT2YodmFsOiBhbnkpOiBMaXRlcmFsVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3cmFwVmFsdWUodmFsKT8udHlwZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBcInRydXRoeVwiIChpLmUuLCBpcyBub24tbnVsbCBhbmQgaGFzIGRhdGEgaW4gaXQpLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1RydXRoeShmaWVsZDogTGl0ZXJhbCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhd3JhcHBlZC52YWx1ZS5wYXRoO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b01pbGxpcygpICE9IDA7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5hcyhcInNlY29uZHNcIikgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMod3JhcHBlZC52YWx1ZSkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERlZXAgY29weSBhIGZpZWxkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBkZWVwQ29weTxUIGV4dGVuZHMgTGl0ZXJhbD4oZmllbGQ6IFQpOiBUIHtcbiAgICAgICAgaWYgKGZpZWxkID09PSBudWxsIHx8IGZpZWxkID09PSB1bmRlZmluZWQpIHJldHVybiBmaWVsZDtcblxuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNBcnJheShmaWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoW10gYXMgTGl0ZXJhbFtdKS5jb25jYXQoZmllbGQubWFwKCh2KSA9PiBkZWVwQ29weSh2KSkpIGFzIFQ7XG4gICAgICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNPYmplY3QoZmllbGQpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkgcmVzdWx0W2tleV0gPSBkZWVwQ29weSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIFQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlci4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsOiBhbnkpOiB2YWwgaXMgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJudW1iZXJcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZSh2YWw6IGFueSk6IHZhbCBpcyBEYXRlVGltZSB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEYXRlVGltZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGR1cmF0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0R1cmF0aW9uKHZhbDogYW55KTogdmFsIGlzIER1cmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc051bGwodmFsOiBhbnkpOiB2YWwgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiB2YWwgaXMgYW55W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgYm9vbGVhbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbDogYW55KTogdmFsIGlzIGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCI7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYSBsaW5rLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0xpbmsodmFsOiBhbnkpOiB2YWwgaXMgTGluayB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rO1xuICAgIH1cblxuICAgIC8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIG9iamVjdCAoYW5kIG5vdCBhbnkgb3RoZXIgZGF0YWNvcmUtcmVjb2duaXplZCBvYmplY3QtbGlrZSB0eXBlKS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsOiBhbnkpOiB2YWwgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAhaXNBcnJheSh2YWwpICYmXG4gICAgICAgICAgICAhaXNEdXJhdGlvbih2YWwpICYmXG4gICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiZcbiAgICAgICAgICAgICFpc0xpbmsodmFsKSAmJlxuICAgICAgICAgICAgIWlzTnVsbCh2YWwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgamF2YXNjcmlwdCBmdW5jdGlvbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWw6IGFueSk6IHZhbCBpcyBGdW5jdGlvbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09IFwiZnVuY3Rpb25cIjtcbiAgICB9XG59XG5cbi8qKiBBIGdyb3VwaW5nIG9uIGEgdHlwZSB3aGljaCBzdXBwb3J0cyByZWN1cnNpdmVseS1uZXN0ZWQgZ3JvdXBzLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBHcm91cEVsZW1lbnQ8VD4gPSB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfTtcbi8qKlxuICogQSBncm91cGluZywgd2hpY2ggY2FuIGJlIGVpdGhlcjpcbiAqIC0gYW4gYXJyYXkgb2YgZWxlbWVudHMgb2YgdHlwZSBgVGAsIG9yXG4gKiAtIGFuIGFycmF5IG9mIHtAbGluayBHcm91cGVsZW1lbnR9c1xuICpcbiAqIEBncm91cCBDb21tb24gVHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgR3JvdXBpbmc8VD4gPSBUW10gfCBHcm91cEVsZW1lbnQ8VD5bXTtcbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgbmFtZXNwYWNlIEdyb3VwaW5ncyB7XG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGdyb3VwIGVudHJ5IGlzIGEgc3RhbmRhbG9uZSB2YWx1ZSwgb3IgYSBncm91cGluZyBvZiBzdWItZW50cmllcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50R3JvdXA8VD4oZW50cnk6IGFueSk6IGVudHJ5IGlzIEdyb3VwRWxlbWVudDxUPiB7XG4gICAgICAgIHJldHVybiBMaXRlcmFscy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmIFwia2V5XCIgaW4gZW50cnkgJiYgXCJyb3dzXCIgaW4gZW50cnk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzR3JvdXBpbmc8VD4oZW50cnk6IEdyb3VwaW5nPFQ+KTogZW50cnkgaXMgR3JvdXBFbGVtZW50PFQ+W10ge1xuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVudHJ5KSBpZiAoIWlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgbGVhZiBhbmQgaGFzIG5vIHN1Ymdyb3VwaW5ncy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNMZWFmPFQ+KGVudHJ5OiBHcm91cGluZzxUPik6IGVudHJ5IGlzIFRbXSB7XG4gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpIGlmIChpc0VsZW1lbnRHcm91cChlbGVtZW50KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBDb3VudCB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgcmVjdXJzaXZlIGdyb3VwaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihlbGVtZW50czogR3JvdXBpbmc8VD4gfCBHcm91cEVsZW1lbnQ8VD4pOiBudW1iZXIge1xuICAgICAgICBpZiAoaXNFbGVtZW50R3JvdXAoZWxlbWVudHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gY291bnQoZWxlbWVudHMucm93cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNHcm91cGluZyhlbGVtZW50cykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgc3ViZ3JvdXAgb2YgZWxlbWVudHMpIHJlc3VsdCArPSBjb3VudChzdWJncm91cC5yb3dzKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlY3Vyc2l2ZWx5IHNsaWNlIGEgZ3JvdXBpbmcsIHByZXNlcnZpbmcgdGhlIGdyb3VwIHN0cnVjdHVyZSB0aGF0IGNvbnRhaW5zIGVsZW1lbnRzIFtzdGFydC4uLmVuZCkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNsaWNlPFQ+KGVsZW1lbnRzOiBHcm91cGluZzxUPiwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBHcm91cGluZzxUPiB7XG4gICAgICAgIGlmIChlbmQgPD0gc3RhcnQpIHJldHVybiBbXTtcbiAgICAgICAgaWYgKGlzTGVhZihlbGVtZW50cykpIHJldHVybiBlbGVtZW50cy5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCBncm91cCB0aGF0IGNvbnRhaW5zIGluZGV4IGBzdGFydGAuXG4gICAgICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgICAgICBzZWVuID0gMDtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gKyBjb3VudChlbGVtZW50c1tpbmRleF0pIDw9IHN0YXJ0KSB7XG4gICAgICAgICAgICBzZWVuICs9IGNvdW50KGVsZW1lbnRzW2luZGV4XSk7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3RhcnQgd2FzIGdyZWF0ZXIgdGhhbiB0aGUgZW50aXJlIGxlbmd0aCBvZiB0aGUgZ3JvdXBpbmdzLlxuICAgICAgICBpZiAoaW5kZXggPj0gZWxlbWVudHMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfVtdID0gW107XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGVsZW1lbnRzLmxlbmd0aCAmJiBzZWVuIDwgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGVsZW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU2l6ZSA9IGNvdW50KGdyb3VwKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU3RhcnQgPSBNYXRoLm1heChzZWVuLCBzdGFydCk7XG4gICAgICAgICAgICBjb25zdCBncm91cEVuZCA9IE1hdGgubWluKGdyb3VwU2l6ZSArIHNlZW4sIGVuZCk7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXk6IGdyb3VwLmtleSxcbiAgICAgICAgICAgICAgICByb3dzOiBzbGljZShncm91cC5yb3dzLCBncm91cFN0YXJ0IC0gc2VlbiwgZ3JvdXBFbmQgLSBzZWVuKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZWVuICs9IGdyb3VwU2l6ZTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbi8qKlxuICogIEZ1bmN0aW9uYWwgcmV0dXJuIHR5cGUgZm9yIGVycm9yIGhhbmRsaW5nLlxuICogQGhpZGRlblxuICogKi9cbmV4cG9ydCBjbGFzcyBTdWNjZXNzPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogdHJ1ZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwPFU+KGY6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbGF0TWFwPFU+KGY6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gZih0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIFJlc3VsdDxULCBVPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmltYXA8VDIsIEUyPihzdWNjOiAoYTogVCkgPT4gVDIsIF9mYWlsOiAoYjogRSkgPT4gRTIpOiBSZXN1bHQ8VDIsIEUyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcChzdWNjKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZShfdmFsdWU6IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNhc3Q8VT4oKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICAgIH1cblxuICAgIHB1YmxpYyBvckVsc2VUaHJvdyhfbWVzc2FnZT86IChlOiBFKSA9PiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxufVxuXG4vKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWlsdXJlPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVycm9yOiBFKSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc2Z1bCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXA8VT4oX2Y6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIEZhaWx1cmU8VSwgRT47XG4gICAgfVxuXG4gICAgcHVibGljIGZsYXRNYXA8VT4oX2Y6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnkgYXMgRmFpbHVyZTxVLCBFPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGYodGhpcy5lcnJvcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiaW1hcDxUMiwgRTI+KF9zdWNjOiAoYTogVCkgPT4gVDIsIGZhaWw6IChiOiBFKSA9PiBFMik6IFJlc3VsdDxUMiwgRTI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwRXJyKGZhaWwpIGFzIGFueTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3JFbHNlKHZhbHVlOiBUKTogVCB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdDxVPigpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZVRocm93KG1lc3NhZ2U/OiAoZTogRSkgPT4gc3RyaW5nKTogVCB7XG4gICAgICAgIGlmIChtZXNzYWdlKSB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSh0aGlzLmVycm9yKSk7XG4gICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKFwiXCIgKyB0aGlzLmVycm9yKTtcbiAgICB9XG59XG5cbi8qKlxuICogQSBtb25hZGljIHJlc3VsdCB0eXBlIHdoaWNoIHN0b3JlcyBlaXRoZXIgXCJzdWNjZXNzXCIgb3IgXCJmYWlsdXJlXCIuIEFuIGFsdGVybmF0aXZlIGhhbmRsaW5nIGV4Y2VwdGlvbmFsIGJlaGF2aW9yXG4gKiBieSB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIGluc3RlYWQgb2YgYW4gZXhjZXB0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSZXN1bHQ8VCwgRT4gPSBTdWNjZXNzPFQsIEU+IHwgRmFpbHVyZTxULCBFPjtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBNb25hZGljICdSZXN1bHQnIHR5cGUgd2hpY2ggZW5jYXBzdWxhdGVzIHdoZXRoZXIgYSBwcm9jZWR1cmUgc3VjY2VlZGVkIG9yIGZhaWxlZCwgYXMgd2VsbCBhcyBpdCdzIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHQge1xuICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgc3VjY2VzcyByZXN1bHQgd3JhcHBpbmcgdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzdWNjZXNzPFQsIEU+KHZhbHVlOiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGZhaWx1cmUgdmFsdWUgd3JhcHBpbmcgdGhlIGdpdmVuIGVycm9yLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBmYWlsdXJlPFQsIEU+KGVycm9yOiBFKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGVycm9yKTtcbiAgICB9XG5cbiAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZsYXRNYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IFJlc3VsdDxPLCBFPlxuICAgICk6IFJlc3VsdDxPLCBFPiB7XG4gICAgICAgIGlmIChmaXJzdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBpZiAoc2Vjb25kLnN1Y2Nlc3NmdWwpIHJldHVybiBmKGZpcnN0LnZhbHVlLCBzZWNvbmQudmFsdWUpO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gZmFpbHVyZShzZWNvbmQuZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoZmlyc3QuZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEpvaW4gdHdvIHJlc3VsdHMgd2l0aCBhIGJpLWZ1bmN0aW9uIGFuZCByZXR1cm4gYSBuZXcgcmVzdWx0LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IE9cbiAgICApOiBSZXN1bHQ8TywgRT4ge1xuICAgICAgICByZXR1cm4gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgKGEsIGIpID0+IHN1Y2Nlc3MoZihhLCBiKSkpO1xuICAgIH1cblxuICAgIC8qKiBNYXAgYSBmYWlsYWJsZSBmdW5jdGlvbiBvdmVyIGFsbCBlbGVtZW50cyBpbiB0aGUgbGlzdCwgcmV0dXJuaW5nIGVhcmx5IG9uIGZhaWx1cmUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1hcEFsbDxULCBPLCBFPihpbnB1dDogSXRlcmFibGU8VD4sIGZ1bmM6IChpbnB1dDogVCkgPT4gUmVzdWx0PE8sIEU+KTogUmVzdWx0PE9bXSwgRT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IE9bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgaW5wdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGZ1bmMoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIW91dHB1dC5zdWNjZXNzZnVsKSByZXR1cm4gb3V0cHV0LmNhc3QoKTtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2gob3V0cHV0LnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBDYXRjaCBhbnkgZXJyb3JzIGluIGEgY2FsbCwgcmV0dXJuaW5nIGEgcmVzdWx0IGluc3RlYWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRyeWluZzxUPihjYWxsOiAoKSA9PiBUKTogUmVzdWx0PFQsIEVycm9yPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoY2FsbCgpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ29udmVydCBhIHByb21pc2Ugd2hpY2ggbWF5IHRocm93IGludG8gYSBwcm9taXNlIHdoaWNoIHJldHVybnMgYSByZXN1bHQgb2YgdGhlIHN1Y2Nlc3NmdWwgdmFsdWUgb3IgYW4gZXJyb3IuICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jPFQ+KHByb21pc2U6IFByb21pc2U8VD4pOiBQcm9taXNlPFJlc3VsdDxULCBFcnJvcj4+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcyhhd2FpdCBwcm9taXNlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcblxuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG5leHBvcnQgdHlwZSBFdmVyeXRoaW5nID0geyB0eXBlOiBcImV2ZXJ5dGhpbmdcIiB9O1xuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIG5vdGhpbmcuICovXG5leHBvcnQgdHlwZSBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuLyoqIFNldCB3aGljaCBtYXRjaGVzIHRoZSBuZWdhdGlvbiBvZiBhIHNldC4gKi9cbmV4cG9ydCB0eXBlIE5lZ2F0ZWQ8VD4gPSB7IHR5cGU6IFwibmVnYXRlZFwiOyB2YWx1ZTogU2V0PFQ+IH07XG4vKiogU2V0IHdoaWNoIG1hdGNoZXMgYW4gYWN0dWFsIHNldCBvZiB2YWx1ZXMuICAqL1xuZXhwb3J0IHR5cGUgQXRvbTxUPiA9IHsgdHlwZTogXCJhdG9tXCI7IHZhbHVlOiBTZXQ8VD4gfTtcblxuLyoqIEFic3RyYWN0IGZpbHRlciB0eXBlIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlc3VsdHMgb2YgYXBwbHlpbmcgZmlsdGVyIG9wZXJhdGlvbnMgdG8gdGhlIGRhdGEgc3RvcmUuICovXG5leHBvcnQgdHlwZSBGaWx0ZXI8VD4gPSBFdmVyeXRoaW5nIHwgTm90aGluZyB8IEF0b208VD4gfCBOZWdhdGVkPFQ+O1xuXG4vKiogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVmZmljaWVudGx5IG9wZXJhdGluZyBvbiBmaWx0ZXJzLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGaWx0ZXJzIHtcbiAgICAvKiogU3RhdGljIGZpbHRlciB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG4gICAgZXhwb3J0IGNvbnN0IEVWRVJZVEhJTkc6IEV2ZXJ5dGhpbmcgPSB7IHR5cGU6IFwiZXZlcnl0aGluZ1wiIH07XG4gICAgLyoqIFN0YXRpYyBmaWx0ZXIgd2hpY2ggbWF0Y2hlcyBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBjb25zdCBOT1RISU5HOiBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuICAgIC8qKiBFbXB0eSBzZXQgY29uc3RhbnQuICovXG4gICAgZXhwb3J0IGNvbnN0IEVNUFRZX1NFVDogU2V0PGFueT4gPSBuZXcgU2V0KCk7XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGF0b20gZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBhdG9tPFQ+KHNldDogU2V0PFQ+KTogRmlsdGVyPFQ+IHtcbiAgICAgICAgaWYgKHNldC5zaXplID09IDApIHJldHVybiBOT1RISU5HO1xuXG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiYXRvbVwiLCB2YWx1ZTogc2V0IH07XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIGZpbHRlciB0aGF0IG1hdGNoZXMgZXZlcnl0aGluZyBvciBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb25zdGFudDxUPih2YWx1ZTogYm9vbGVhbik6IEZpbHRlcjxUPiB7XG4gICAgICAgIGlmICh2YWx1ZSkgcmV0dXJuIEVWRVJZVEhJTkc7XG4gICAgICAgIGVsc2UgcmV0dXJuIE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5ldyBhdG9tIGZpbHRlciB3aGljaCBpcyBOT1RISU5HIGlmIHNldCBpcyB1bmRlZmluZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG51bGxhYmxlQXRvbTxUPihzZXQ6IFNldDxUPiB8IHVuZGVmaW5lZCk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBzZXQgIT09IHVuZGVmaW5lZCA/IGF0b20oc2V0KSA6IE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5lZ2F0ZWQgYXRvbSBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG5lZ2F0ZWQ8VD4oc2V0OiBTZXQ8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBpZiAoc2V0LnNpemUgPT0gMCkgcmV0dXJuIEVWRVJZVEhJTkc7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJuZWdhdGVkXCIsIHZhbHVlOiBzZXQgfTtcbiAgICB9XG5cbiAgICAvKiogUHJvZHVjZXMgdGhlIG5lZ2F0aW9uIG9mIGEgZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBuZWdhdGU8VD4oZmlsdGVyOiBGaWx0ZXI8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBOT1RISU5HO1xuICAgICAgICAgICAgY2FzZSBcIm5vdGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRVZFUllUSElORztcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0ZWQoZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0b20oZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIGZpbHRlciBpcyBkZWZpbml0aXZlbHkgY3VycmVudGx5IGVtcHR5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBlbXB0eTxUPihmaWx0ZXI6IEZpbHRlcjxUPik6IGJvb2xlYW4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBcImF0b21cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyLnZhbHVlLnNpemUgPT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVzb2x2ZSBhIHRvcC1sZXZlbCBmaWx0ZXIgd2l0aCB0aGUgc2V0IG9mIGFsbCBhdmFpbGFibGUgb2JqZWN0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZTxUPihmaWx0ZXI6IEZpbHRlcjxUPiwgZXZlcnl0aGluZzogU2V0PFQ+KTogU2V0PFQ+IHtcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImV2ZXJ5dGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlcnl0aGluZztcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZX1NFVDtcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNldEludGVyc2VjdE5lZ2F0aW9uKGV2ZXJ5dGhpbmcsIGZpbHRlci52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGFuIGl0ZXJhYmxlIG9mIGZpbHRlcnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdDxUPihlbGVtZW50czogSXRlcmFibGU8RmlsdGVyPFQ+Pik6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5SW50ZXJzZWN0KGVsZW1lbnRzLCAoeCkgPT4geCk7XG4gICAgfVxuXG4gICAgLyoqIEludGVyc2VjdCBmaWx0ZXJzIGxhemlseSwgc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgaW50ZXJzZWN0aW9uIHdvdWxkIHByb2R1Y2UgTk9USElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUludGVyc2VjdDxJLCBUPihcbiAgICAgICAgZWxlbWVudHM6IEl0ZXJhYmxlPEk+LFxuICAgICAgICBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IEZpbHRlcjxUPiB8IHVuZGVmaW5lZFxuICAgICk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGZpbHRlcnMgbGF6aWx5LCBzaG9ydC1jaXJjdWl0aW5nIGlmIHRoZSBpbnRlcnNlY3Rpb24gd291bGQgcHJvZHVjZSBOT1RISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVtcHR5IGZpbHRlcnMgd2lsbCBwcm9kdWNlIGFuIGVtcHR5IGludGVyc2VjdGlvbi5cbiAgICAgICAgICAgIGlmIChlbXB0eShmaWx0ZXIpKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoTk9USElORyk7XG4gICAgICAgICAgICAvLyBFVkVSWVRISU5HIGZpbHRlcnMgYXJlIHJlZHVuZGFudCBpbiBBTkRzLCBza2lwIHRoZW0uXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gV2lsbCBvbmx5IGJlIGxlZnQgd2l0aCBhdG9tcyBvciBuZWdhdGlvbnMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gXCJhdG9tXCIpIGF0b21zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGZpbHRlci50eXBlID09IFwibmVnYXRlZFwiKSBuZWdhdGlvbnMucHVzaChmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2Ugc3RhcnQgd2l0aCBzb21ldGhpbmcgb2YgdGhlIGZvcm0gYSAmJiBiICYmICFjICYmICFkLlxuICAgICAgICAvLyBJZiBubyB0ZXJtcywgdGhlbiBldmVyeXRoaW5nIHdhcyBFVkVSWVRISU5HIHNvIHJldHVybiB0aGF0LlxuICAgICAgICAvLyBJZiBvbmx5IGF0b21zLCBqdXN0IGludGVyc2VjdCB0aGVtIChhICYmIGIpLlxuICAgICAgICAvLyBJZiBvbmx5IG5lZ2F0aW9ucywgdGhlbiByZXdyaXRlICFjICYmICFkID0+ICEoYyB8fCBkKSBhbmQgcmV0dXJuIG5lZ2F0ZWQoYyB8fCBkKS5cbiAgICAgICAgLy8gSWYgYm90aCwgY29tcHV0ZSB4ID0gKGEgJiYgYikgYW5kIHkgPSAoYyB8fCBkKSwgYW5kIHRoZW4gY29tcHV0ZSB4ICYmICF5LlxuXG4gICAgICAgIGlmIChhdG9tcy5sZW5ndGggPT0gMCAmJiBuZWdhdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhFVkVSWVRISU5HKTtcbiAgICAgICAgfSBlbHNlIGlmIChhdG9tcy5sZW5ndGggPiAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGF0b20oc2V0SW50ZXJzZWN0KGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRVbmlvbihuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldEludGVyc2VjdE5lZ2F0aW9uKHNldEludGVyc2VjdChhdG9tcyksIHNldFVuaW9uKG5lZ2F0aW9ucykpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycywgcHJvZHVjaW5nIGEgc2luZ2xlIHJlc3VsdCBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuaW9uPFQ+KGZpbHRlcnM6IEl0ZXJhYmxlPEZpbHRlcjxUPj4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eVVuaW9uKGZpbHRlcnMsICh4KSA9PiB4KTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eVVuaW9uPEksIFQ+KGVsZW1lbnRzOiBJdGVyYWJsZTxJPiwgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBGaWx0ZXI8VD4gfCB1bmRlZmluZWQpOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eUZhaWxhYmxlVW5pb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUZhaWxhYmxlVW5pb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVWRVJZVEhJTkcgZmlsdGVycyB3aWxsIHByb2R1Y2UgZXZlcnl0aGluZyBhbHdheXMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRVZFUllUSElORyk7XG4gICAgICAgICAgICAvLyBFbXB0eSBmaWx0ZXJzIGFyZSByZWR1bmRhbnQuXG4gICAgICAgICAgICBpZiAoZW1wdHkoZmlsdGVyKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIFdpbGwgb25seSBiZSBsZWZ0IHdpdGggYXRvbXMgb3IgbmVnYXRpb25zLlxuICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlID09IFwiYXRvbVwiKSBhdG9tcy5wdXNoKGZpbHRlci52YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PSBcIm5lZ2F0ZWRcIikgbmVnYXRpb25zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9yIGlzIGEgYml0IGhhcmRlciB0aGFuIEFORCBzaW5jZSB5b3UgY2FuIGVuZCB1cCB3aXRoIHNjZW5hcmlvcyBsaWtlIGEgfHwgIWIsIHdoaWNoIGFyZVxuICAgICAgICAvLyBub3QgY29tcHV0YWJsZSBkaXJlY3RseS4gSG93ZXZlciwgd2UgY2FuIGRvIGJvb2xlYW4gbG9naWMgdG8gYWx3YXlzIHByb2R1Y2UgYSBzaW5nbGVcbiAgICAgICAgLy8gc2V0LlxuICAgICAgICAvLyBJZiBub3RoaW5nID0+IG5vdGhpbmcsIG5vIG5vbi1lbXB0eSBmaWx0ZXJzLlxuICAgICAgICAvLyBJZiBhdG9tcyBidXQgbm8gbmVnYXRpb25zIChhIHx8IGIgfHwgYykgPT4gY29tcHV0ZSB1bmlvbi5cbiAgICAgICAgLy8gSWYgbmVnYXRpb25zIGJ1dCBubyBhdG9tcyAoIWEgfHwgIWIgfHwgIWMpID0+IHJld3JpdGUgYXMgIShhICYmIGIgJiYgYykuXG4gICAgICAgIC8vIElmIGJvdGg6IChhIHx8IGIgfHwgIWMgfHwgIWQpID0+IGNvbWJpbmUgZWFjaCBwYXJ0IGludG8gKGEgfHwgYikgfHwgKCFjIHx8ICFkKSA9PiAoYSB8fCBiKSB8fCAhKGMgJiYgZCkgPT4gZSB8fCAhZiA9PiAhKCFlICYmIGYpIHdoaWNoXG4gICAgICAgIC8vIGNhbiBiZSBjb21wdXRlZCB1c2luZyBpbnRlcnNlY3Rpb24gbG9naWMuXG5cbiAgICAgICAgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKE5PVEhJTkcpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA+IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldFVuaW9uKGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5uZWdhdGVkKHNldEludGVyc2VjdChuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRJbnRlcnNlY3ROZWdhdGlvbihzZXRJbnRlcnNlY3QobmVnYXRpb25zKSwgc2V0VW5pb24oYXRvbXMpKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEVmZmljaWVudGx5IGNvbXB1dGUgdGhlIGludGVyc2VjdGlvbiBvZiBzZXRzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3Q8VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gU29ydCBieSBzaXplIGFuZCBjb21iaW5lIHNtYWxsZXN0IGFuZCBsYXJnZXN0IHNldCByZXBlYXRlZGx5LlxuICAgICAgICBsZXQgc29ydGVkID0gKFtdIGFzIFNldDxUPltdKS5jb25jYXQoc2V0cykuc29ydCgoYSwgYikgPT4gYS5zaXplIC0gYi5zaXplKTtcblxuICAgICAgICB3aGlsZSAoc29ydGVkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgICAgIGNvbnN0IGxhcmdlc3QgPSBzb3J0ZWQucG9wKCkhO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIHNvcnRlZFswXSkge1xuICAgICAgICAgICAgICAgIGlmIChsYXJnZXN0LmhhcyhlbGVtZW50KSkgcmVzdWx0LmFkZChlbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc29ydGVkWzBdID0gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNvcnRlZFswXTtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSB0aGUgdW5pb24gb2Ygc2V0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gc2V0VW5pb248VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gSSdtIG5vdCBzdXJlIGlmIHRoZXJlIGlzIGFueSB1c2VmdWwgb3B0aW1pemF0aW9uIGZvciBzZXQgdW5pb25zLCBzbyBqdXN0IGFkZCB0aGVtIGFsbCBJIGd1ZXNzLlxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGZvciAoY29uc3Qgc2V0IG9mIHNldHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBzZXQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSBhdG9tICYmICFuZWdhdGVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3ROZWdhdGlvbjxUPihhdG9tOiBTZXQ8VD4sIG5lZ2F0ZWQ6IFNldDxUPik6IFNldDxUPiB7XG4gICAgICAgIGlmIChhdG9tLnNpemUgPiBuZWdhdGVkLnNpemUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFdvdWxkIGJlIG5pY2UgdG8gYXZvaWQgdGhlIGNvcHksIHNpbmNlIEknbSBub3Qgc3VyZSBpdCdzIGFueSBmYXN0ZXIgd2l0aCB0aGUgY29weS5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQoYXRvbSk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIG5lZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IC8qIGF0b20uc2l6ZSA8IG5lZ2F0aW9uLnNpemUgKi8gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGF0b20pIHtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRlZC5oYXMoZWxlbWVudCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBGaWx0ZXJzIH0gZnJvbSBcIi4vZmlsdGVyc1wiO1xuXG4vKiogQ29tcGFyaXNvbiBvcGVyYXRvcnMgd2hpY2ggeWllbGQgdHJ1ZS9mYWxzZS4gKi9cbmV4cG9ydCB0eXBlIENvbXBhcmVPcCA9IFwiPlwiIHwgXCI+PVwiIHwgXCI8PVwiIHwgXCI8XCIgfCBcIj1cIiB8IFwiIT1cIjtcbi8qKiBBcml0aG1ldGljIG9wZXJhdG9ycyB3aGljaCB5aWVsZCBudW1iZXJzIGFuZCBvdGhlciB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBBcml0aG1ldGljT3AgPSBcIitcIiB8IFwiLVwiIHwgXCIqXCIgfCBcIi9cIiB8IFwiJVwiIHwgXCImXCIgfCBcInxcIjtcbi8qKiBJbmRleCBhIHZhbHVlIGludG8gYW5vdGhlciB2YWx1ZS4gKi9cbmV4cG9ydCB0eXBlIExvZ2ljYWxPcCA9IFwiaW5kZXhcIjtcbi8qKiBBbGwgdmFsaWQgYmluYXJ5IG9wZXJhdG9ycy4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wID0gQ29tcGFyZU9wIHwgQXJpdGhtZXRpY09wIHwgTG9naWNhbE9wO1xuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uID1cbiAgICB8IExpdGVyYWxFeHByZXNzaW9uXG4gICAgfCBWYXJpYWJsZUV4cHJlc3Npb25cbiAgICB8IExpc3RFeHByZXNzaW9uXG4gICAgfCBPYmplY3RFeHByZXNzaW9uXG4gICAgfCBCaW5hcnlPcEV4cHJlc3Npb25cbiAgICB8IEZ1bmN0aW9uRXhwcmVzc2lvblxuICAgIHwgTGFtYmRhRXhwcmVzc2lvblxuICAgIHwgTmVnYXRlZEV4cHJlc3Npb247XG5cbi8qKiBMaXRlcmFsIHJlcHJlc2VudGF0aW9uIG9mIHNvbWUgZmllbGQgdHlwZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGl0ZXJhbEV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGl0ZXJhbFwiO1xuICAgIHZhbHVlOiBMaXRlcmFsO1xufVxuXG4vKiogQSB2YXJpYWJsZSBmaWVsZCBmb3IgYSB2YXJpYWJsZSB3aXRoIGEgZ2l2ZW4gbmFtZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFibGVFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcInZhcmlhYmxlXCI7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogQSBsaXN0IGxpdGVyYWwsIHdoaWNoIGlzIGFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBmaWVsZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImxpc3RcIjtcbiAgICB2YWx1ZXM6IEV4cHJlc3Npb25bXTtcbn1cblxuLyoqIEFuIG9iamVjdCBsaXRlcmFsLCB3aGljaCBpcyBhIG1hcHBpbmcgb2YgbmFtZSB0byBmaWVsZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0RXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJvYmplY3RcIjtcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+O1xufVxuXG4vKiogQSBiaW5hcnkgb3BlcmF0b3IgZXhwcmVzc2lvbiB3aGljaCBjb21iaW5lcyB0d28gc3Vibm9kZXMgc29tZWhvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluYXJ5T3BFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImJpbmFyeW9wXCI7XG4gICAgbGVmdDogRXhwcmVzc2lvbjtcbiAgICByaWdodDogRXhwcmVzc2lvbjtcbiAgICBvcDogQmluYXJ5T3A7XG59XG5cbi8qKiBBIGZ1bmN0aW9uIGV4cHJlc3Npb24gd2hpY2ggY2FsbHMgYSBmdW5jdGlvbiBvbiAwIG9yIG1vcmUgYXJndW1lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICAvKiogRWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgb3IgYSBGdW5jdGlvbiBvYmplY3QuICovXG4gICAgZnVuYzogRXhwcmVzc2lvbjtcbiAgICAvKiogVGhlIGxpc3Qgb2YgYXJndW1lbnRzIGJlaW5nIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uICovXG4gICAgYXJndW1lbnRzOiBFeHByZXNzaW9uW107XG59XG5cbi8qKiBBbiBpbmxpbmUgZnVuY3Rpb24gYWNjZXB0aW5nIG9uZSBvciBtb3JlIGFyZ3VtZW50cyBhbmQgcHJvZHVjaW5nIGEgdmFsdWUuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGFtYmRhXCI7XG4gICAgLyoqIEFuIG9yZGVyZWQgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMuICovXG4gICAgYXJndW1lbnRzOiBzdHJpbmdbXTtcbiAgICAvKiogVGhlIGZpZWxkIHdoaWNoIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBhcmd1bWVudHMgaW4gY29udGV4dC4gKi9cbiAgICB2YWx1ZTogRXhwcmVzc2lvbjtcbn1cblxuLyoqIEFuIGV4cHJlc3Npb24gd2hpY2ggbmVnYXRlcyB0aGUgdmFsdWUgb2YgdGhlIG9yaWdpbmFsIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWdhdGVkRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJuZWdhdGVkXCI7XG5cbiAgICAvKiogVGhlIGNoaWxkIGZpZWxkIHRvIG5lZ2F0ZS4gKi9cbiAgICBjaGlsZDogRXhwcmVzc2lvbjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBFeHByZXNzaW9ucyB7XG4gICAgLyoqIFRoZSBpbXBsaWNpdCBmaWVsZCByZWZlcmVuY2luZyB0aGUgY3VycmVudCBmaWVsZC4gKi9cbiAgICBleHBvcnQgY29uc3QgUk9XOiBzdHJpbmcgPSBcIiRyb3dcIjtcblxuICAgIGV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZShuYW1lOiBzdHJpbmcpOiBWYXJpYWJsZUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcInZhcmlhYmxlXCIsIG5hbWUgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGl0ZXJhbCh2YWx1ZTogTGl0ZXJhbCk6IExpdGVyYWxFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXRlcmFsXCIsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQ6IEV4cHJlc3Npb24sIG9wOiBCaW5hcnlPcCwgcmlnaHQ6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0LCBvcCwgcmlnaHQgfSBhcyBCaW5hcnlPcEV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZGV4KG9iajogRXhwcmVzc2lvbiwgaW5kZXg6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0OiBvYmosIHJpZ2h0OiBpbmRleCwgb3A6IFwiaW5kZXhcIiB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0cyBhIHN0cmluZyBpbiBkb3Qtbm90YXRpb24tZm9ybWF0IGludG8gYSB2YXJpYWJsZSB3aGljaCBpbmRleGVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpbmRleFZhcmlhYmxlKG5hbWU6IHN0cmluZyk6IEV4cHJlc3Npb24ge1xuICAgICAgICBsZXQgcGFydHMgPSBuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgbGV0IHJlc3VsdDogRXhwcmVzc2lvbiA9IEV4cHJlc3Npb25zLnZhcmlhYmxlKHBhcnRzWzBdKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHBhcnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgcmVzdWx0ID0gRXhwcmVzc2lvbnMuaW5kZXgocmVzdWx0LCBFeHByZXNzaW9ucy5saXRlcmFsKHBhcnRzW2luZGV4XSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGFtYmRhKGFyZ3M6IHN0cmluZ1tdLCB2YWx1ZTogRXhwcmVzc2lvbik6IExhbWJkYUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImxhbWJkYVwiLCBhcmd1bWVudHM6IGFyZ3MsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZ1bmMoZnVuYzogRXhwcmVzc2lvbiwgYXJnczogRXhwcmVzc2lvbltdKTogRnVuY3Rpb25FeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJmdW5jdGlvblwiLCBmdW5jLCBhcmd1bWVudHM6IGFyZ3MgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGlzdCh2YWx1ZXM6IEV4cHJlc3Npb25bXSk6IExpc3RFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXN0XCIsIHZhbHVlcyB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBvYmplY3QodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBFeHByZXNzaW9uPik6IE9iamVjdEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZXMgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbmVnYXRlKGNoaWxkOiBFeHByZXNzaW9uKTogTmVnYXRlZEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5lZ2F0ZWRcIiwgY2hpbGQgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNDb21wYXJlT3Aob3A6IEJpbmFyeU9wKTogb3AgaXMgQ29tcGFyZU9wIHtcbiAgICAgICAgcmV0dXJuIG9wID09IFwiPD1cIiB8fCBvcCA9PSBcIjxcIiB8fCBvcCA9PSBcIj5cIiB8fCBvcCA9PSBcIj49XCIgfHwgb3AgPT0gXCIhPVwiIHx8IG9wID09IFwiPVwiO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgc2V0IG9mIGFsbCB1bmJvdW5kIHZhcmlhYmxlcyAoaS5lLiwgdmFyaWFibGVzIG5vdCBwcm92aWRlZCBieSBgcm93YCwgbGFtYmRhcywgb3Igc2ltaWxhci4pICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuYm91bmRWYXJpYWJsZXMoZXhwcjogRXhwcmVzc2lvbiwgYm91bmQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbUk9XXSkpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgYHJvd1tcIi4uLi5cIl1gLlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZXhwci5vcCA9PT0gXCJpbmRleFwiICYmXG4gICAgICAgICAgICAgICAgICAgIGV4cHIubGVmdC50eXBlID09IFwidmFyaWFibGVcIiAmJlxuICAgICAgICAgICAgICAgICAgICBleHByLmxlZnQubmFtZSA9PSBST1cgJiZcbiAgICAgICAgICAgICAgICAgICAgZXhwci5yaWdodC50eXBlID09IFwibGl0ZXJhbFwiICYmXG4gICAgICAgICAgICAgICAgICAgIExpdGVyYWxzLmlzU3RyaW5nKGV4cHIucmlnaHQudmFsdWUpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChib3VuZC5oYXMoZXhwci5yaWdodC52YWx1ZSkpIHJldHVybiBuZXcgU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIG5ldyBTZXQoW2V4cHIucmlnaHQudmFsdWVdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UganVzdCBjaGVjayBsZWZ0IGFuZCByaWdodC5cbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5zZXRVbmlvbihbdW5ib3VuZFZhcmlhYmxlcyhleHByLmxlZnQsIGJvdW5kKSwgdW5ib3VuZFZhcmlhYmxlcyhleHByLnJpZ2h0LCBib3VuZCldKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIuYXJndW1lbnRzLm1hcCgoYSkgPT4gdW5ib3VuZFZhcmlhYmxlcyhhLCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJsYW1iZGFcIjpcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdCb3VuZCA9IGJvdW5kID8/IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBleHByLmFyZ3VtZW50cykgbmV3Qm91bmQuYWRkKGFyZyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5ib3VuZFZhcmlhYmxlcyhleHByLnZhbHVlLCBuZXdCb3VuZCk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIudmFsdWVzLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuYm91bmRWYXJpYWJsZXMoZXhwci5jaGlsZCwgYm91bmQpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKE9iamVjdC52YWx1ZXMoZXhwci52YWx1ZXMpLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJ2YXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChib3VuZCAmJiBib3VuZC5oYXMoZXhwci5uYW1lKSkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBuZXcgU2V0KFtleHByLm5hbWVdKTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZW5kZXIgYW4gZXhwcmVzc2lvbiBhcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcoZXhwcjogRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5vcCA9PT0gXCJpbmRleFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfVske3RvU3RyaW5nKGV4cHIucmlnaHQpfV1gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfSAke2V4cHIub3B9ICR7dG9TdHJpbmcoZXhwci5yaWdodCl9YDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmZ1bmMpfSgke2V4cHIuYXJndW1lbnRzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfSlgO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7ZXhwci5hcmd1bWVudHMuam9pbihcIiwgXCIpfSkgPT4gJHt0b1N0cmluZyhleHByLnZhbHVlKX1gO1xuICAgICAgICAgICAgY2FzZSBcImxpc3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFske2V4cHIudmFsdWVzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfV1gO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCEke3RvU3RyaW5nKGV4cHIuY2hpbGQpfWA7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGB7JHtPYmplY3QuZW50cmllcyhleHByLnZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfTogJHt0b1N0cmluZyh2KX1gKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfX1gO1xuICAgICAgICAgICAgY2FzZSBcInZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cHIubmFtZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShleHByLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFwiJHt3cmFwcGVkLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMaXRlcmFscy50b1N0cmluZyh3cmFwcGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY29uc3QgTlVMTCA9IEV4cHJlc3Npb25zLmxpdGVyYWwobnVsbCk7XG59XG4iLCAiLyoqIFByb3ZpZGVzIGNvcmUgcHJlYWN0IC8gcmVuZGVyaW5nIHV0aWxpdGllcyBmb3IgYWxsIHZpZXcgdHlwZXMuXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IEFwcCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBMaW5rLCBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3VycmVudExvY2FsZSwgcmVuZGVyTWluaW1hbERhdGUsIHJlbmRlck1pbmltYWxEdXJhdGlvbiB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuaW1wb3J0IHsgZXh0cmFjdEltYWdlRGltZW5zaW9ucywgaXNJbWFnZUVtYmVkIH0gZnJvbSBcInV0aWxzL21lZGlhXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIEZyYWdtZW50LCByZW5kZXIgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUVycm9yQm91bmRhcnkgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzLCBQcm9wc1dpdGhDaGlsZHJlbiwgbWVtbyB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyBFbWJlZCB9IGZyb20gXCJhcGkvdWkvZW1iZWRcIjtcblxuaW1wb3J0IFwiLi9lcnJvcnMuY3NzXCI7XG5cbmV4cG9ydCBjb25zdCBDT01QT05FTlRfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8Q29tcG9uZW50Pih1bmRlZmluZWQhKTtcbmV4cG9ydCBjb25zdCBBUFBfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8QXBwPih1bmRlZmluZWQhKTtcbmV4cG9ydCBjb25zdCBEQVRBQ09SRV9DT05URVhUID0gY3JlYXRlQ29udGV4dDxEYXRhY29yZT4odW5kZWZpbmVkISk7XG5leHBvcnQgY29uc3QgU0VUVElOR1NfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8U2V0dGluZ3M+KHVuZGVmaW5lZCEpO1xuZXhwb3J0IGNvbnN0IENVUlJFTlRfRklMRV9DT05URVhUID0gY3JlYXRlQ29udGV4dDxzdHJpbmc+KFwiXCIpO1xuXG4vKiogTW9yZSBjb21wYWN0IHByb3ZpZGVyIGZvciBhbGwgb2YgdGhlIGRhdGFjb3JlIHJlYWN0IGNvbnRleHRzLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERhdGFjb3JlQ29udGV4dFByb3ZpZGVyKHtcbiAgICBjaGlsZHJlbixcbiAgICBhcHAsXG4gICAgY29tcG9uZW50LFxuICAgIGRhdGFjb3JlLFxuICAgIHNldHRpbmdzLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48e1xuICAgIGFwcDogQXBwO1xuICAgIGNvbXBvbmVudDogQ29tcG9uZW50O1xuICAgIGRhdGFjb3JlOiBEYXRhY29yZTtcbiAgICBzZXR0aW5nczogU2V0dGluZ3M7XG59Pikge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxDT01QT05FTlRfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17Y29tcG9uZW50fT5cbiAgICAgICAgICAgIDxBUFBfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17YXBwfT5cbiAgICAgICAgICAgICAgICA8REFUQUNPUkVfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17ZGF0YWNvcmV9PlxuICAgICAgICAgICAgICAgICAgICA8U0VUVElOR1NfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17c2V0dGluZ3N9PntjaGlsZHJlbn08L1NFVFRJTkdTX0NPTlRFWFQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9EQVRBQ09SRV9DT05URVhULlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9BUFBfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICAgICAgPC9DT01QT05FTlRfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICApO1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd0xpbmsoeyBsaW5rLCBzb3VyY2VQYXRoOiBtYXliZVNvdXJjZVBhdGggfTogeyBsaW5rOiBMaW5rIHwgc3RyaW5nOyBzb3VyY2VQYXRoPzogc3RyaW5nIH0pIHtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKT8ud29ya3NwYWNlO1xuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IG1heWJlU291cmNlUGF0aCA/PyBjdXJyZW50UGF0aCA/PyBcIlwiO1xuICAgIGNvbnN0IHBhcnNlZCA9IHVzZU1lbW8oKCkgPT4gKExpdGVyYWxzLmlzTGluayhsaW5rKSA/IGxpbmsgOiBMaW5rLmluZmVyKGxpbmspKSwgW2xpbmtdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXd0YWIgPSBldmVudC5zaGlmdEtleTtcbiAgICAgICAgICAgIHdvcmtzcGFjZT8ub3BlbkxpbmtUZXh0KHBhcnNlZC5vYnNpZGlhbkxpbmsoKSwgc291cmNlUGF0aCwgbmV3dGFiKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3BhcnNlZCwgc291cmNlUGF0aF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGFcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3BhcnNlZC5kaXNwbGF5T3JEZWZhdWx0KCl9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW50ZXJuYWwtbGlua1wiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIGRhdGEtaHJlZj17cGFyc2VkLm9ic2lkaWFuTGluaygpfVxuICAgICAgICA+XG4gICAgICAgICAgICB7cGFyc2VkLmRpc3BsYXlPckRlZmF1bHQoKX1cbiAgICAgICAgPC9hPlxuICAgICk7XG59XG5cbi8qKlxuICogQ29waWVzIGhvdyBhbiBPYnNpZGlhbiBsaW5rIGlzIHJlbmRlcmVkIGJ1dCBpcyBhYm91dCBhbiBvcmRlciBvZiBtYWduaXR1ZGUgZmFzdGVyIHRvIHJlbmRlciB0aGFuIHZpYSBtYXJrZG93biByZW5kZXJpbmcuICovXG5leHBvcnQgY29uc3QgT2JzaWRpYW5MaW5rID0gbWVtbyhSYXdMaW5rKTtcblxuLyoqQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd01hcmtkb3duKHtcbiAgICBjb250ZW50LFxuICAgIHNvdXJjZVBhdGg6IG1heWJlU291cmNlUGF0aCxcbiAgICBpbmxpbmUgPSB0cnVlLFxuICAgIHN0eWxlLFxuICAgIGNscyxcbiAgICBvbkNsaWNrLFxufToge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICAgIGNscz86IHN0cmluZztcbiAgICBvbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiBhbnk7XG59KSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdXNlQ29udGV4dChDT01QT05FTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgZGVmYXVsdFBhdGggPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcblxuICAgIGNvbnN0IHNvdXJjZVBhdGggPSBtYXliZVNvdXJjZVBhdGggPz8gZGVmYXVsdFBhdGg7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbnRhaW5lci5jdXJyZW50KSByZXR1cm47XG5cbiAgICAgICAgY29udGFpbmVyLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAgICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXIoYXBwLCBjb250ZW50LCBjb250YWluZXIuY3VycmVudCwgc291cmNlUGF0aCwgY29tcG9uZW50KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmN1cnJlbnQgfHwgIWlubGluZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAvLyBVbndyYXAgYW55IGNyZWF0ZWQgcGFyYWdyYXBoIGVsZW1lbnRzIGlmIHdlIGFyZSBpbmxpbmUuXG4gICAgICAgICAgICBsZXQgcGFyYWdyYXBoID0gY29udGFpbmVyLmN1cnJlbnQucXVlcnlTZWxlY3RvcihcInBcIik7XG4gICAgICAgICAgICB3aGlsZSAocGFyYWdyYXBoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gcGFyYWdyYXBoLmNoaWxkTm9kZXM7XG4gICAgICAgICAgICAgICAgcGFyYWdyYXBoLnJlcGxhY2VXaXRoKC4uLkFycmF5LmZyb20oY2hpbGRyZW4pKTtcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGggPSBjb250YWluZXIuY3VycmVudC5xdWVyeVNlbGVjdG9yKFwicFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaGF2ZSBlbWJlZHMgYWN0dWFsbHkgbG9hZCBpbnN0ZWFkIG9mIGRpc3BsYXlpbmcgYXMgcGxhaW4gdGV4dC5cbiAgICAgICAgICAgIGxldCBlbWJlZCA9IGNvbnRhaW5lci5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXCJzcGFuLmludGVybmFsLWVtYmVkOm5vdCguaXMtbG9hZGVkKVwiKTtcbiAgICAgICAgICAgIHdoaWxlIChlbWJlZCkge1xuICAgICAgICAgICAgICAgIGVtYmVkLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgICAgICA8QVBQX0NPTlRFWFQuUHJvdmlkZXIgdmFsdWU9e2FwcH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rPXtMaW5rLnBhcnNlSW5uZXIoZW1iZWQuZ2V0QXR0cmlidXRlKFwic3JjXCIpID8/IFwiXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9BUFBfQ09OVEVYVC5Qcm92aWRlcj4sXG4gICAgICAgICAgICAgICAgICAgIGVtYmVkXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBlbWJlZC5hZGRDbGFzcyhcImlzLWxvYWRlZFwiKTtcbiAgICAgICAgICAgICAgICBlbWJlZCA9IGNvbnRhaW5lci5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXCJzcGFuLmludGVybmFsLWVtYmVkOm5vdCguaXMtbG9hZGVkKVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgW2NvbnRlbnQsIHNvdXJjZVBhdGgsIGlubGluZSwgY29udGFpbmVyLmN1cnJlbnRdKTtcblxuICAgIHJldHVybiA8c3BhbiByZWY9e2NvbnRhaW5lcn0gc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2Nsc30gb25DbGljaz17b25DbGlja30+PC9zcGFuPjtcbn1cblxuLyoqXG4gKiBIYWNreSBwcmVhY3QgY29tcG9uZW50IHdoaWNoIHdyYXBzIE9ic2lkaWFuJ3MgbWFya2Rvd24gcmVuZGVyZXIgaW50byBhIG5lYXQgY29tcG9uZW50LiAqL1xuZXhwb3J0IGNvbnN0IE1hcmtkb3duID0gbWVtbyhSYXdNYXJrZG93bik7XG5cbi8qKlxuICogQGhpZGRlblxuICogIEludGVsbGlnZW50bHkgcmVuZGVyIGFuIGFyYml0cmFyeSBsaXRlcmFsIHZhbHVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd0xpdCh7XG4gICAgdmFsdWUsXG4gICAgc291cmNlUGF0aDogbWF5YmVTb3VyY2VQYXRoLFxuICAgIGlubGluZSA9IGZhbHNlLFxuICAgIGRlcHRoID0gMCxcbn06IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgICB2YWx1ZTogTGl0ZXJhbCB8IHVuZGVmaW5lZDtcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgZGVwdGg/OiBudW1iZXI7XG59Pikge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdXNlQ29udGV4dChTRVRUSU5HU19DT05URVhUKTtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9IHVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuXG4gICAgY29uc3Qgc291cmNlUGF0aCA9IG1heWJlU291cmNlUGF0aCA/PyBkZWZhdWx0UGF0aDtcblxuICAgIC8vIFNob3J0LWNpcmN1aXQgaWYgYmV5b25kIHRoZSBtYXhpbXVtIHJlbmRlciBkZXB0aC5cbiAgICBpZiAoZGVwdGggPj0gc2V0dGluZ3MubWF4UmVjdXJzaXZlUmVuZGVyRGVwdGgpIHJldHVybiA8RnJhZ21lbnQ+Li4uPC9GcmFnbWVudD47XG5cbiAgICBpZiAoTGl0ZXJhbHMuaXNOdWxsKHZhbHVlKSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiA8TWFya2Rvd24gaW5saW5lPXtpbmxpbmV9IGNvbnRlbnQ9e3NldHRpbmdzLnJlbmRlck51bGxBc30gc291cmNlUGF0aD17c291cmNlUGF0aH0gLz47XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxNYXJrZG93biBpbmxpbmU9e2lubGluZX0gY29udGVudD17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IC8+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiA8RnJhZ21lbnQ+e1wiXCIgKyB2YWx1ZX08L0ZyYWdtZW50PjtcbiAgICB9IGVsc2UgaWYgKExpdGVyYWxzLmlzQm9vbGVhbih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD57XCJcIiArIHZhbHVlfTwvRnJhZ21lbnQ+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNEYXRlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgIHtyZW5kZXJNaW5pbWFsRGF0ZSh2YWx1ZSwgc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQsIHNldHRpbmdzLmRlZmF1bHREYXRlVGltZUZvcm1hdCwgY3VycmVudExvY2FsZSgpKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc0R1cmF0aW9uKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gPEZyYWdtZW50PntyZW5kZXJNaW5pbWFsRHVyYXRpb24odmFsdWUpfTwvRnJhZ21lbnQ+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNMaW5rKHZhbHVlKSkge1xuICAgICAgICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxpbmcgb2YgaW1hZ2UvdmlkZW8vZXRjIGVtYmVkZGluZ3MgdG8gYnlwYXNzIHRoZSBPYnNpZGlhbiBBUEkgbm90IHdvcmtpbmcuXG4gICAgICAgIGlmIChpc0ltYWdlRW1iZWQodmFsdWUpKSB7XG4gICAgICAgICAgICBsZXQgcmVhbEZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCh2YWx1ZS5wYXRoLCBzb3VyY2VQYXRoKTtcbiAgICAgICAgICAgIGlmICghcmVhbEZpbGUpIHJldHVybiA8TWFya2Rvd24gY29udGVudD17dmFsdWUubWFya2Rvd24oKX0gc291cmNlUGF0aD17c291cmNlUGF0aH0gLz47XG5cbiAgICAgICAgICAgIGxldCBkaW1lbnNpb25zID0gZXh0cmFjdEltYWdlRGltZW5zaW9ucyh2YWx1ZSk7XG4gICAgICAgICAgICBsZXQgcmVzb3VyY2VQYXRoID0gYXBwLnZhdWx0LmdldFJlc291cmNlUGF0aChyZWFsRmlsZSk7XG5cbiAgICAgICAgICAgIGlmIChkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMubGVuZ3RoID09IDIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxpbWcgYWx0PXt2YWx1ZS5wYXRofSBzcmM9e3Jlc291cmNlUGF0aH0gd2lkdGg9e2RpbWVuc2lvbnNbMF19IGhlaWdodD17ZGltZW5zaW9uc1sxXX0gLz47XG4gICAgICAgICAgICBlbHNlIGlmIChkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMubGVuZ3RoID09IDEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxpbWcgYWx0PXt2YWx1ZS5wYXRofSBzcmM9e3Jlc291cmNlUGF0aH0gd2lkdGg9e2RpbWVuc2lvbnNbMF19IC8+O1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gPGltZyBhbHQ9e3ZhbHVlLnBhdGh9IHNyYz17cmVzb3VyY2VQYXRofSAvPjtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5lbWJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIDxFbWJlZCBsaW5rPXt2YWx1ZX0gc291cmNlUGF0aD17c291cmNlUGF0aH0gaW5saW5lPXtpbmxpbmV9IC8+O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxPYnNpZGlhbkxpbmsgbGluaz17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IC8+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD4mbHQ7ZnVuY3Rpb24mZ3Q7PC9GcmFnbWVudD47XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBpZiAoIWlubGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtcImRhdGF2aWV3IGRhdGF2aWV3LXVsIGRhdGF2aWV3LXJlc3VsdC1saXN0LXVsXCJ9PlxuICAgICAgICAgICAgICAgICAgICB7dmFsdWUubWFwKChzdWJ2YWx1ZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImRhdGF2aWV3LXJlc3VsdC1saXN0LWxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpdCB2YWx1ZT17c3VidmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiA8RnJhZ21lbnQ+Jmx0O0VtcHR5IExpc3QmZ3Q7PC9GcmFnbWVudD47XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0YXZpZXcgZGF0YXZpZXctcmVzdWx0LWxpc3Qtc3BhblwiPlxuICAgICAgICAgICAgICAgICAgICB7dmFsdWUubWFwKChzdWJ2YWx1ZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5kZXggPT0gMCA/IFwiXCIgOiBcIiwgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpdCB2YWx1ZT17c3VidmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIC8vIERvbid0IHJlbmRlciBjbGFzc2VzIGluIGNhc2UgdGhleSBoYXZlIHJlY3Vyc2l2ZSByZWZlcmVuY2VzOyBzcG9vcHkuXG4gICAgICAgIGlmICh2YWx1ZT8uY29uc3RydWN0b3I/Lm5hbWUgJiYgdmFsdWU/LmNvbnN0cnVjdG9yPy5uYW1lICE9IFwiT2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiA8RnJhZ21lbnQ+Jmx0O3t2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lfSZndDs8L0ZyYWdtZW50PjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW5saW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJkYXRhdmlldyBkYXRhdmlldy11bCBkYXRhdmlldy1yZXN1bHQtb2JqZWN0LXVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKChba2V5LCB2YWx1ZV0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkYXRhdmlldyBkYXRhdmlldy1saSBkYXRhdmlldy1yZXN1bHQtb2JqZWN0LWxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2tleX06IDxMaXQgdmFsdWU9e3ZhbHVlfSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSBpbmxpbmU9e2lubGluZX0gZGVwdGg9e2RlcHRoICsgMX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT0gMCkgcmV0dXJuIDxGcmFnbWVudD4mbHQ7RW1wdHkgT2JqZWN0Jmd0OzwvRnJhZ21lbnQ+O1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGF2aWV3IGRhdGF2aWV3LXJlc3VsdC1vYmplY3Qtc3BhblwiPlxuICAgICAgICAgICAgICAgICAgICB7T2JqZWN0LmVudHJpZXModmFsdWUpLm1hcCgoW2tleSwgdmFsdWVdLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbmRleCA9PSAwID8gXCJcIiA6IFwiLCBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7a2V5fTogPExpdCB2YWx1ZT17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiA8RnJhZ21lbnQ+Jmx0O1VucmVjb2duaXplZDoge0pTT04uc3RyaW5naWZ5KHZhbHVlKX0mZ3Q7PC9GcmFnbWVudD47XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogSW50ZWxsaWdlbnRseSByZW5kZXIgYW4gYXJiaXRyYXJ5IGxpdGVyYWwgdmFsdWUuICovXG5leHBvcnQgY29uc3QgTGl0ID0gbWVtbyhSYXdMaXQpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIFJlbmRlciBhIHByZXR0eSBjZW50ZXJlZCBlcnJvciBtZXNzYWdlIGluIGEgYm94LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVycm9yTWVzc2FnZSh7XG4gICAgdGl0bGUsXG4gICAgbWVzc2FnZSxcbiAgICBlcnJvcixcbiAgICByZXNldCxcbn06IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIHJlc2V0PzogKCkgPT4gdm9pZDtcbn0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWVycm9yLWJveFwiPlxuICAgICAgICAgICAge3RpdGxlICYmIDxoNCBjbGFzc05hbWU9XCJkYXRhY29yZS1lcnJvci10aXRsZVwiPnt0aXRsZX08L2g0Pn1cbiAgICAgICAgICAgIHttZXNzYWdlICYmIDxwIGNsYXNzTmFtZT1cImRhdGFjb3JlLWVycm9yLW1lc3NhZ2VcIj57bWVzc2FnZX08L3A+fVxuICAgICAgICAgICAge2Vycm9yICYmIDxwcmUgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZXJyb3ItcHJlXCI+e2Vycm9yfTwvcHJlPn1cbiAgICAgICAgICAgIHtyZXNldCAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJkYXRhY29yZS1lcnJvci1yZXRyeVwiIG9uQ2xpY2s9e3Jlc2V0fT5cbiAgICAgICAgICAgICAgICAgICAgUmVydW5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8qKiBBIHNpbXBsZSBlcnJvciBib3VuZGFyeSB3aGljaCByZW5kZXJzIGEgbWVzc2FnZSBvbiBmYWlsdXJlLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpbXBsZUVycm9yQm91bmRhcnkoe1xuICAgIHRpdGxlLFxuICAgIG1lc3NhZ2UsXG4gICAgY2hpbGRyZW4sXG59OiBQcm9wc1dpdGhDaGlsZHJlbjx7IHRpdGxlPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0+KSB7XG4gICAgY29uc3QgW2Vycm9yLCByZXNldF0gPSB1c2VFcnJvckJvdW5kYXJ5KCk7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgdGl0bGU9e3RpdGxlfSBtZXNzYWdlPXttZXNzYWdlfSBlcnJvcj17ZXJyb3Iuc3RhY2t9IHJlc2V0PXtyZXNldH0gLz47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD57Y2hpbGRyZW59PC9GcmFnbWVudD47XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5cbmV4cG9ydCBjb25zdCBJTUFHRV9FWFRFTlNJT05TID0gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgU2V0KFtcbiAgICAgICAgXCIudGlmXCIsXG4gICAgICAgIFwiLnRpZmZcIixcbiAgICAgICAgXCIuZ2lmXCIsXG4gICAgICAgIFwiLnBuZ1wiLFxuICAgICAgICBcIi5hcG5nXCIsXG4gICAgICAgIFwiLmF2aWZcIixcbiAgICAgICAgXCIuanBnXCIsXG4gICAgICAgIFwiLmpwZWdcIixcbiAgICAgICAgXCIuamZpZlwiLFxuICAgICAgICBcIi5wamVwZ1wiLFxuICAgICAgICBcIi5wanBcIixcbiAgICAgICAgXCIuc3ZnXCIsXG4gICAgICAgIFwiLndlYnBcIixcbiAgICAgICAgXCIuYm1wXCIsXG4gICAgICAgIFwiLmljb1wiLFxuICAgICAgICBcIi5jdXJcIixcbiAgICBdKVxuKTtcblxuLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGxpbmsgcG9pbnRzIHRvIGFuIGVtYmVkZGVkIGltYWdlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW1hZ2VFbWJlZChsaW5rOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgaWYgKCFsaW5rLnBhdGguY29udGFpbnMoXCIuXCIpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgZXh0ZW5zaW9uID0gbGluay5wYXRoLnN1YnN0cmluZyhsaW5rLnBhdGgubGFzdEluZGV4T2YoXCIuXCIpKTtcbiAgICByZXR1cm4gbGluay50eXBlID09IFwiZmlsZVwiICYmIGxpbmsuZW1iZWQgJiYgSU1BR0VfRVhURU5TSU9OUy5oYXMoZXh0ZW5zaW9uKTtcbn1cblxuLyoqIEV4dHJhY3QgdGV4dCBvZiB0aGUgZm9ybSAnV3hIJyBvciAnVycgZnJvbSB0aGUgZGlzcGxheSBvZiBhIGxpbmsuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEltYWdlRGltZW5zaW9ucyhsaW5rOiBMaW5rKTogW251bWJlciwgbnVtYmVyXSB8IFtudW1iZXJdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWxpbmsuZGlzcGxheSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCBtYXRjaCA9IC9eKFxcZCspeChcXGQrKSQvaXUuZXhlYyhsaW5rLmRpc3BsYXkpO1xuICAgIGlmIChtYXRjaCkgcmV0dXJuIFtwYXJzZUludChtYXRjaFsxXSksIHBhcnNlSW50KG1hdGNoWzJdKV07XG5cbiAgICBsZXQgbWF0Y2gyID0gL14oXFxkKykvLmV4ZWMobGluay5kaXNwbGF5KTtcbiAgICBpZiAobWF0Y2gyKSByZXR1cm4gW3BhcnNlSW50KG1hdGNoMlsxXSldO1xuXG4gICAgLy8gTm8gbWF0Y2guXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiIsICIvKiogTm9ybWFsIGh5ZHJhdGlvbiB0aGF0IGF0dGFjaGVzIHRvIGEgRE9NIHRyZWUgYnV0IGRvZXMgbm90IGRpZmYgaXQuICovXG5leHBvcnQgY29uc3QgTU9ERV9IWURSQVRFID0gMSA8PCA1O1xuLyoqIFNpZ25pZmllcyB0aGlzIFZOb2RlIHN1c3BlbmRlZCBvbiB0aGUgcHJldmlvdXMgcmVuZGVyICovXG5leHBvcnQgY29uc3QgTU9ERV9TVVNQRU5ERUQgPSAxIDw8IDc7XG4vKiogSW5kaWNhdGVzIHRoYXQgdGhpcyBub2RlIG5lZWRzIHRvIGJlIGluc2VydGVkIHdoaWxlIHBhdGNoaW5nIGNoaWxkcmVuICovXG5leHBvcnQgY29uc3QgSU5TRVJUX1ZOT0RFID0gMSA8PCAxNjtcbi8qKiBJbmRpY2F0ZXMgYSBWTm9kZSBoYXMgYmVlbiBtYXRjaGVkIHdpdGggYW5vdGhlciBWTm9kZSBpbiB0aGUgZGlmZiAqL1xuZXhwb3J0IGNvbnN0IE1BVENIRUQgPSAxIDw8IDE3O1xuXG4vKiogUmVzZXQgYWxsIG1vZGUgZmxhZ3MgKi9cbmV4cG9ydCBjb25zdCBSRVNFVF9NT0RFID0gfihNT0RFX0hZRFJBVEUgfCBNT0RFX1NVU1BFTkRFRCk7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9PQkogPSAvKiogQHR5cGUge2FueX0gKi8gKHt9KTtcbmV4cG9ydCBjb25zdCBFTVBUWV9BUlIgPSBbXTtcbmV4cG9ydCBjb25zdCBJU19OT05fRElNRU5TSU9OQUwgPVxuXHQvYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pO1xuIiwgImltcG9ydCB7IEVNUFRZX0FSUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIEFzc2lnbiBwcm9wZXJ0aWVzIGZyb20gYHByb3BzYCB0byBgb2JqYFxuICogQHRlbXBsYXRlIE8sIFAgVGhlIG9iaiBhbmQgcHJvcHMgdHlwZXNcbiAqIEBwYXJhbSB7T30gb2JqIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvXG4gKiBAcGFyYW0ge1B9IHByb3BzIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEByZXR1cm5zIHtPICYgUH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihvYmosIHByb3BzKSB7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2hhbmdlIHRoZSB0eXBlIG9mIGBvYmpgIHRvIGJlIGBPICYgUGBcblx0Zm9yIChsZXQgaSBpbiBwcm9wcykgb2JqW2ldID0gcHJvcHNbaV07XG5cdHJldHVybiAvKiogQHR5cGUge08gJiBQfSAqLyAob2JqKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBjaGlsZCBub2RlIGZyb20gaXRzIHBhcmVudCBpZiBhdHRhY2hlZC4gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yXG4gKiBJRTExIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlKClgLiBVc2luZyB0aGlzIGZ1bmN0aW9uXG4gKiBpcyBzbWFsbGVyIHRoYW4gaW5jbHVkaW5nIGEgZGVkaWNhdGVkIHBvbHlmaWxsLlxuICogQHBhcmFtIHtwcmVhY3QuQ29udGFpbmVyTm9kZX0gbm9kZSBUaGUgbm9kZSB0byByZW1vdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU5vZGUobm9kZSkge1xuXHRpZiAobm9kZSAmJiBub2RlLnBhcmVudE5vZGUpIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNsaWNlID0gRU1QVFlfQVJSLnNsaWNlO1xuIiwgImltcG9ydCB7IF9jYXRjaEVycm9yIH0gZnJvbSAnLi9kaWZmL2NhdGNoLWVycm9yJztcblxuLyoqXG4gKiBUaGUgYG9wdGlvbmAgb2JqZWN0IGNhbiBwb3RlbnRpYWxseSBjb250YWluIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICogdGhhdCBhcmUgY2FsbGVkIGR1cmluZyB2YXJpb3VzIHN0YWdlcyBvZiBvdXIgcmVuZGVyZXIuIFRoaXMgaXMgdGhlXG4gKiBmb3VuZGF0aW9uIG9uIHdoaWNoIGFsbCBvdXIgYWRkb25zIGxpa2UgYHByZWFjdC9kZWJ1Z2AsIGBwcmVhY3QvY29tcGF0YCxcbiAqIGFuZCBgcHJlYWN0L2hvb2tzYCBhcmUgYmFzZWQgb24uIFNlZSB0aGUgYE9wdGlvbnNgIHR5cGUgaW4gYGludGVybmFsLmQudHNgXG4gKiBmb3IgYSBmdWxsIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbiBob29rcyAobW9zdCBlZGl0b3JzL0lERXMgYWxsb3cgeW91IHRvXG4gKiBjdHJsK2NsaWNrIG9yIGNtZCtjbGljayBvbiBtYWMgdGhlIHR5cGUgZGVmaW5pdGlvbiBiZWxvdykuXG4gKiBAdHlwZSB7T3B0aW9uc31cbiAqL1xuY29uc3Qgb3B0aW9ucyA9IHtcblx0X2NhdGNoRXJyb3Jcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG9wdGlvbnM7XG4iLCAiaW1wb3J0IHsgc2xpY2UgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi9vcHRpb25zJztcblxubGV0IHZub2RlSWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZSBhbiB2aXJ0dWFsIG5vZGUgKHVzZWQgZm9yIEpTWClcbiAqIEBwYXJhbSB7Vk5vZGVbXCJ0eXBlXCJdfSB0eXBlIFRoZSBub2RlIG5hbWUgb3IgQ29tcG9uZW50IGNvbnN0cnVjdG9yIGZvciB0aGlzXG4gKiB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BzXSBUaGUgcHJvcGVydGllcyBvZiB0aGUgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge0FycmF5PGltcG9ydCgnLicpLkNvbXBvbmVudENoaWxkcmVuPn0gW2NoaWxkcmVuXSBUaGUgY2hpbGRyZW4gb2YgdGhlXG4gKiB2aXJ0dWFsIG5vZGVcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSB7fSxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdGk7XG5cdGZvciAoaSBpbiBwcm9wcykge1xuXHRcdGlmIChpID09ICdrZXknKSBrZXkgPSBwcm9wc1tpXTtcblx0XHRlbHNlIGlmIChpID09ICdyZWYnKSByZWYgPSBwcm9wc1tpXTtcblx0XHRlbHNlIG5vcm1hbGl6ZWRQcm9wc1tpXSA9IHByb3BzW2ldO1xuXHR9XG5cblx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNoaWxkcmVuID1cblx0XHRcdGFyZ3VtZW50cy5sZW5ndGggPiAzID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpIDogY2hpbGRyZW47XG5cdH1cblxuXHQvLyBJZiBhIENvbXBvbmVudCBWTm9kZSwgY2hlY2sgZm9yIGFuZCBhcHBseSBkZWZhdWx0UHJvcHNcblx0Ly8gTm90ZTogdHlwZSBtYXkgYmUgdW5kZWZpbmVkIGluIGRldmVsb3BtZW50LCBtdXN0IG5ldmVyIGVycm9yIGhlcmUuXG5cdGlmICh0eXBlb2YgdHlwZSA9PSAnZnVuY3Rpb24nICYmIHR5cGUuZGVmYXVsdFByb3BzICE9IG51bGwpIHtcblx0XHRmb3IgKGkgaW4gdHlwZS5kZWZhdWx0UHJvcHMpIHtcblx0XHRcdGlmIChub3JtYWxpemVkUHJvcHNbaV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRub3JtYWxpemVkUHJvcHNbaV0gPSB0eXBlLmRlZmF1bHRQcm9wc1tpXTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gY3JlYXRlVk5vZGUodHlwZSwgbm9ybWFsaXplZFByb3BzLCBrZXksIHJlZiwgbnVsbCk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgVk5vZGUgKHVzZWQgaW50ZXJuYWxseSBieSBQcmVhY3QpXG4gKiBAcGFyYW0ge1ZOb2RlW1widHlwZVwiXX0gdHlwZSBUaGUgbm9kZSBuYW1lIG9yIENvbXBvbmVudFxuICogQ29uc3RydWN0b3IgZm9yIHRoaXMgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge29iamVjdCB8IHN0cmluZyB8IG51bWJlciB8IG51bGx9IHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgdmlydHVhbCBub2RlLlxuICogSWYgdGhpcyB2aXJ0dWFsIG5vZGUgcmVwcmVzZW50cyBhIHRleHQgbm9kZSwgdGhpcyBpcyB0aGUgdGV4dCBvZiB0aGUgbm9kZSAoc3RyaW5nIG9yIG51bWJlcikuXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IG51bGx9IGtleSBUaGUga2V5IGZvciB0aGlzIHZpcnR1YWwgbm9kZSwgdXNlZCB3aGVuXG4gKiBkaWZmaW5nIGl0IGFnYWluc3QgaXRzIGNoaWxkcmVuXG4gKiBAcGFyYW0ge1ZOb2RlW1wicmVmXCJdfSByZWYgVGhlIHJlZiBwcm9wZXJ0eSB0aGF0IHdpbGxcbiAqIHJlY2VpdmUgYSByZWZlcmVuY2UgdG8gaXRzIGNyZWF0ZWQgY2hpbGRcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZOb2RlKHR5cGUsIHByb3BzLCBrZXksIHJlZiwgb3JpZ2luYWwpIHtcblx0Ly8gVjggc2VlbXMgdG8gYmUgYmV0dGVyIGF0IGRldGVjdGluZyB0eXBlIHNoYXBlcyBpZiB0aGUgb2JqZWN0IGlzIGFsbG9jYXRlZCBmcm9tIHRoZSBzYW1lIGNhbGwgc2l0ZVxuXHQvLyBEbyBub3QgaW5saW5lIGludG8gY3JlYXRlRWxlbWVudCBhbmQgY29lcmNlVG9WTm9kZSFcblx0LyoqIEB0eXBlIHtWTm9kZX0gKi9cblx0Y29uc3Qgdm5vZGUgPSB7XG5cdFx0dHlwZSxcblx0XHRwcm9wcyxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdF9jaGlsZHJlbjogbnVsbCxcblx0XHRfcGFyZW50OiBudWxsLFxuXHRcdF9kZXB0aDogMCxcblx0XHRfZG9tOiBudWxsLFxuXHRcdC8vIF9uZXh0RG9tIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gdW5kZWZpbmVkIGIvYyBpdCB3aWxsIGV2ZW50dWFsbHlcblx0XHQvLyBiZSBzZXQgdG8gZG9tLm5leHRTaWJsaW5nIHdoaWNoIGNhbiByZXR1cm4gYG51bGxgIGFuZCBpdCBpcyBpbXBvcnRhbnRcblx0XHQvLyB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYW4gdW5pbml0aWFsaXplZCBfbmV4dERvbSBhbmRcblx0XHQvLyBhIF9uZXh0RG9tIHRoYXQgaGFzIGJlZW4gc2V0IHRvIGBudWxsYFxuXHRcdF9uZXh0RG9tOiB1bmRlZmluZWQsXG5cdFx0X2NvbXBvbmVudDogbnVsbCxcblx0XHRjb25zdHJ1Y3RvcjogdW5kZWZpbmVkLFxuXHRcdF9vcmlnaW5hbDogb3JpZ2luYWwgPT0gbnVsbCA/ICsrdm5vZGVJZCA6IG9yaWdpbmFsLFxuXHRcdF9pbmRleDogLTEsXG5cdFx0X2ZsYWdzOiAwXG5cdH07XG5cblx0Ly8gT25seSBpbnZva2UgdGhlIHZub2RlIGhvb2sgaWYgdGhpcyB3YXMgKm5vdCogYSBkaXJlY3QgY29weTpcblx0aWYgKG9yaWdpbmFsID09IG51bGwgJiYgb3B0aW9ucy52bm9kZSAhPSBudWxsKSBvcHRpb25zLnZub2RlKHZub2RlKTtcblxuXHRyZXR1cm4gdm5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWYoKSB7XG5cdHJldHVybiB7IGN1cnJlbnQ6IG51bGwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZyYWdtZW50KHByb3BzKSB7XG5cdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHRoZSBhcmd1bWVudCBpcyBhIHZhbGlkIFByZWFjdCBWTm9kZS5cbiAqIEBwYXJhbSB7Kn0gdm5vZGVcbiAqIEByZXR1cm5zIHt2bm9kZSBpcyBWTm9kZX1cbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWRFbGVtZW50ID0gdm5vZGUgPT5cblx0dm5vZGUgIT0gbnVsbCAmJiB2bm9kZS5jb25zdHJ1Y3RvciA9PSB1bmRlZmluZWQ7XG4iLCAiaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGRpZmYsIGNvbW1pdFJvb3QgfSBmcm9tICcuL2RpZmYvaW5kZXgnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSAnLi9jcmVhdGUtZWxlbWVudCc7XG5pbXBvcnQgeyBNT0RFX0hZRFJBVEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQmFzZSBDb21wb25lbnQgY2xhc3MuIFByb3ZpZGVzIGBzZXRTdGF0ZSgpYCBhbmQgYGZvcmNlVXBkYXRlKClgLCB3aGljaFxuICogdHJpZ2dlciByZW5kZXJpbmdcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBUaGUgaW5pdGlhbCBjb21wb25lbnQgcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0IFRoZSBpbml0aWFsIGNvbnRleHQgZnJvbSBwYXJlbnQgY29tcG9uZW50cydcbiAqIGdldENoaWxkQ29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gQmFzZUNvbXBvbmVudChwcm9wcywgY29udGV4dCkge1xuXHR0aGlzLnByb3BzID0gcHJvcHM7XG5cdHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG59XG5cbi8qKlxuICogVXBkYXRlIGNvbXBvbmVudCBzdGF0ZSBhbmQgc2NoZWR1bGUgYSByZS1yZW5kZXIuXG4gKiBAdGhpcyB7Q29tcG9uZW50fVxuICogQHBhcmFtIHtvYmplY3QgfCAoKHM6IG9iamVjdCwgcDogb2JqZWN0KSA9PiBvYmplY3QpfSB1cGRhdGUgQSBoYXNoIG9mIHN0YXRlXG4gKiBwcm9wZXJ0aWVzIHRvIHVwZGF0ZSB3aXRoIG5ldyB2YWx1ZXMgb3IgYSBmdW5jdGlvbiB0aGF0IGdpdmVuIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSBhbmQgcHJvcHMgcmV0dXJucyBhIG5ldyBwYXJ0aWFsIHN0YXRlXG4gKiBAcGFyYW0geygpID0+IHZvaWR9IFtjYWxsYmFja10gQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb25jZSBjb21wb25lbnQgc3RhdGUgaXNcbiAqIHVwZGF0ZWRcbiAqL1xuQmFzZUNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAodXBkYXRlLCBjYWxsYmFjaykge1xuXHQvLyBvbmx5IGNsb25lIHN0YXRlIHdoZW4gY29weWluZyB0byBuZXh0U3RhdGUgdGhlIGZpcnN0IHRpbWUuXG5cdGxldCBzO1xuXHRpZiAodGhpcy5fbmV4dFN0YXRlICE9IG51bGwgJiYgdGhpcy5fbmV4dFN0YXRlICE9PSB0aGlzLnN0YXRlKSB7XG5cdFx0cyA9IHRoaXMuX25leHRTdGF0ZTtcblx0fSBlbHNlIHtcblx0XHRzID0gdGhpcy5fbmV4dFN0YXRlID0gYXNzaWduKHt9LCB0aGlzLnN0YXRlKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgdXBkYXRlID09ICdmdW5jdGlvbicpIHtcblx0XHQvLyBTb21lIGxpYnJhcmllcyBsaWtlIGBpbW1lcmAgbWFyayB0aGUgY3VycmVudCBzdGF0ZSBhcyByZWFkb25seSxcblx0XHQvLyBwcmV2ZW50aW5nIHVzIGZyb20gbXV0YXRpbmcgaXQsIHNvIHdlIG5lZWQgdG8gY2xvbmUgaXQuIFNlZSAjMjcxNlxuXHRcdHVwZGF0ZSA9IHVwZGF0ZShhc3NpZ24oe30sIHMpLCB0aGlzLnByb3BzKTtcblx0fVxuXG5cdGlmICh1cGRhdGUpIHtcblx0XHRhc3NpZ24ocywgdXBkYXRlKTtcblx0fVxuXG5cdC8vIFNraXAgdXBkYXRlIGlmIHVwZGF0ZXIgZnVuY3Rpb24gcmV0dXJuZWQgbnVsbFxuXHRpZiAodXBkYXRlID09IG51bGwpIHJldHVybjtcblxuXHRpZiAodGhpcy5fdm5vZGUpIHtcblx0XHRpZiAoY2FsbGJhY2spIHtcblx0XHRcdHRoaXMuX3N0YXRlQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuXHRcdH1cblx0XHRlbnF1ZXVlUmVuZGVyKHRoaXMpO1xuXHR9XG59O1xuXG4vKipcbiAqIEltbWVkaWF0ZWx5IHBlcmZvcm0gYSBzeW5jaHJvbm91cyByZS1yZW5kZXIgb2YgdGhlIGNvbXBvbmVudFxuICogQHRoaXMge0NvbXBvbmVudH1cbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gW2NhbGxiYWNrXSBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciBjb21wb25lbnQgaXNcbiAqIHJlLXJlbmRlcmVkXG4gKi9cbkJhc2VDb21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG5cdGlmICh0aGlzLl92bm9kZSkge1xuXHRcdC8vIFNldCByZW5kZXIgbW9kZSBzbyB0aGF0IHdlIGNhbiBkaWZmZXJlbnRpYXRlIHdoZXJlIHRoZSByZW5kZXIgcmVxdWVzdFxuXHRcdC8vIGlzIGNvbWluZyBmcm9tLiBXZSBuZWVkIHRoaXMgYmVjYXVzZSBmb3JjZVVwZGF0ZSBzaG91bGQgbmV2ZXIgY2FsbFxuXHRcdC8vIHNob3VsZENvbXBvbmVudFVwZGF0ZVxuXHRcdHRoaXMuX2ZvcmNlID0gdHJ1ZTtcblx0XHRpZiAoY2FsbGJhY2spIHRoaXMuX3JlbmRlckNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblx0XHRlbnF1ZXVlUmVuZGVyKHRoaXMpO1xuXHR9XG59O1xuXG4vKipcbiAqIEFjY2VwdHMgYHByb3BzYCBhbmQgYHN0YXRlYCwgYW5kIHJldHVybnMgYSBuZXcgVmlydHVhbCBET00gdHJlZSB0byBidWlsZC5cbiAqIFZpcnR1YWwgRE9NIGlzIGdlbmVyYWxseSBjb25zdHJ1Y3RlZCB2aWEgW0pTWF0oaHR0cDovL2phc29uZm9ybWF0LmNvbS93dGYtaXMtanN4KS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBQcm9wcyAoZWc6IEpTWCBhdHRyaWJ1dGVzKSByZWNlaXZlZCBmcm9tIHBhcmVudFxuICogZWxlbWVudC9jb21wb25lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSBUaGUgY29tcG9uZW50J3MgY3VycmVudCBzdGF0ZVxuICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHQgQ29udGV4dCBvYmplY3QsIGFzIHJldHVybmVkIGJ5IHRoZSBuZWFyZXN0XG4gKiBhbmNlc3RvcidzIGBnZXRDaGlsZENvbnRleHQoKWBcbiAqIEByZXR1cm5zIHtDb21wb25lbnRDaGlsZHJlbiB8IHZvaWR9XG4gKi9cbkJhc2VDb21wb25lbnQucHJvdG90eXBlLnJlbmRlciA9IEZyYWdtZW50O1xuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGx9IFtjaGlsZEluZGV4XVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9tU2libGluZyh2bm9kZSwgY2hpbGRJbmRleCkge1xuXHRpZiAoY2hpbGRJbmRleCA9PSBudWxsKSB7XG5cdFx0Ly8gVXNlIGNoaWxkSW5kZXg9PW51bGwgYXMgYSBzaWduYWwgdG8gcmVzdW1lIHRoZSBzZWFyY2ggZnJvbSB0aGUgdm5vZGUncyBzaWJsaW5nXG5cdFx0cmV0dXJuIHZub2RlLl9wYXJlbnRcblx0XHRcdD8gZ2V0RG9tU2libGluZyh2bm9kZS5fcGFyZW50LCB2bm9kZS5faW5kZXggKyAxKVxuXHRcdFx0OiBudWxsO1xuXHR9XG5cblx0bGV0IHNpYmxpbmc7XG5cdGZvciAoOyBjaGlsZEluZGV4IDwgdm5vZGUuX2NoaWxkcmVuLmxlbmd0aDsgY2hpbGRJbmRleCsrKSB7XG5cdFx0c2libGluZyA9IHZub2RlLl9jaGlsZHJlbltjaGlsZEluZGV4XTtcblxuXHRcdGlmIChzaWJsaW5nICE9IG51bGwgJiYgc2libGluZy5fZG9tICE9IG51bGwpIHtcblx0XHRcdC8vIFNpbmNlIHVwZGF0ZVBhcmVudERvbVBvaW50ZXJzIGtlZXBzIF9kb20gcG9pbnRlciBjb3JyZWN0LFxuXHRcdFx0Ly8gd2UgY2FuIHJlbHkgb24gX2RvbSB0byB0ZWxsIHVzIGlmIHRoaXMgc3VidHJlZSBjb250YWlucyBhXG5cdFx0XHQvLyByZW5kZXJlZCBET00gbm9kZSwgYW5kIHdoYXQgdGhlIGZpcnN0IHJlbmRlcmVkIERPTSBub2RlIGlzXG5cdFx0XHRyZXR1cm4gc2libGluZy5fZG9tO1xuXHRcdH1cblx0fVxuXG5cdC8vIElmIHdlIGdldCBoZXJlLCB3ZSBoYXZlIG5vdCBmb3VuZCBhIERPTSBub2RlIGluIHRoaXMgdm5vZGUncyBjaGlsZHJlbi5cblx0Ly8gV2UgbXVzdCByZXN1bWUgZnJvbSB0aGlzIHZub2RlJ3Mgc2libGluZyAoaW4gaXQncyBwYXJlbnQgX2NoaWxkcmVuIGFycmF5KVxuXHQvLyBPbmx5IGNsaW1iIHVwIGFuZCBzZWFyY2ggdGhlIHBhcmVudCBpZiB3ZSBhcmVuJ3Qgc2VhcmNoaW5nIHRocm91Z2ggYSBET01cblx0Ly8gVk5vZGUgKG1lYW5pbmcgd2UgcmVhY2hlZCB0aGUgRE9NIHBhcmVudCBvZiB0aGUgb3JpZ2luYWwgdm5vZGUgdGhhdCBiZWdhblxuXHQvLyB0aGUgc2VhcmNoKVxuXHRyZXR1cm4gdHlwZW9mIHZub2RlLnR5cGUgPT0gJ2Z1bmN0aW9uJyA/IGdldERvbVNpYmxpbmcodm5vZGUpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBUcmlnZ2VyIGluLXBsYWNlIHJlLXJlbmRlcmluZyBvZiBhIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7Q29tcG9uZW50fSBjb21wb25lbnQgVGhlIGNvbXBvbmVudCB0byByZXJlbmRlclxuICovXG5mdW5jdGlvbiByZW5kZXJDb21wb25lbnQoY29tcG9uZW50KSB7XG5cdGxldCBvbGRWTm9kZSA9IGNvbXBvbmVudC5fdm5vZGUsXG5cdFx0b2xkRG9tID0gb2xkVk5vZGUuX2RvbSxcblx0XHRjb21taXRRdWV1ZSA9IFtdLFxuXHRcdHJlZlF1ZXVlID0gW107XG5cblx0aWYgKGNvbXBvbmVudC5fcGFyZW50RG9tKSB7XG5cdFx0Y29uc3QgbmV3Vk5vZGUgPSBhc3NpZ24oe30sIG9sZFZOb2RlKTtcblx0XHRuZXdWTm9kZS5fb3JpZ2luYWwgPSBvbGRWTm9kZS5fb3JpZ2luYWwgKyAxO1xuXHRcdGlmIChvcHRpb25zLnZub2RlKSBvcHRpb25zLnZub2RlKG5ld1ZOb2RlKTtcblxuXHRcdGRpZmYoXG5cdFx0XHRjb21wb25lbnQuX3BhcmVudERvbSxcblx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRjb21wb25lbnQuX2dsb2JhbENvbnRleHQsXG5cdFx0XHRjb21wb25lbnQuX3BhcmVudERvbS5uYW1lc3BhY2VVUkksXG5cdFx0XHRvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUgPyBbb2xkRG9tXSA6IG51bGwsXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdG9sZERvbSA9PSBudWxsID8gZ2V0RG9tU2libGluZyhvbGRWTm9kZSkgOiBvbGREb20sXG5cdFx0XHQhIShvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUpLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXG5cdFx0bmV3Vk5vZGUuX29yaWdpbmFsID0gb2xkVk5vZGUuX29yaWdpbmFsO1xuXHRcdG5ld1ZOb2RlLl9wYXJlbnQuX2NoaWxkcmVuW25ld1ZOb2RlLl9pbmRleF0gPSBuZXdWTm9kZTtcblx0XHRjb21taXRSb290KGNvbW1pdFF1ZXVlLCBuZXdWTm9kZSwgcmVmUXVldWUpO1xuXG5cdFx0aWYgKG5ld1ZOb2RlLl9kb20gIT0gb2xkRG9tKSB7XG5cdFx0XHR1cGRhdGVQYXJlbnREb21Qb2ludGVycyhuZXdWTm9kZSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gdm5vZGVcbiAqL1xuZnVuY3Rpb24gdXBkYXRlUGFyZW50RG9tUG9pbnRlcnModm5vZGUpIHtcblx0aWYgKCh2bm9kZSA9IHZub2RlLl9wYXJlbnQpICE9IG51bGwgJiYgdm5vZGUuX2NvbXBvbmVudCAhPSBudWxsKSB7XG5cdFx0dm5vZGUuX2RvbSA9IHZub2RlLl9jb21wb25lbnQuYmFzZSA9IG51bGw7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2bm9kZS5fY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBjaGlsZCA9IHZub2RlLl9jaGlsZHJlbltpXTtcblx0XHRcdGlmIChjaGlsZCAhPSBudWxsICYmIGNoaWxkLl9kb20gIT0gbnVsbCkge1xuXHRcdFx0XHR2bm9kZS5fZG9tID0gdm5vZGUuX2NvbXBvbmVudC5iYXNlID0gY2hpbGQuX2RvbTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHVwZGF0ZVBhcmVudERvbVBvaW50ZXJzKHZub2RlKTtcblx0fVxufVxuXG4vKipcbiAqIFRoZSByZW5kZXIgcXVldWVcbiAqIEB0eXBlIHtBcnJheTxDb21wb25lbnQ+fVxuICovXG5sZXQgcmVyZW5kZXJRdWV1ZSA9IFtdO1xuXG4vKlxuICogVGhlIHZhbHVlIG9mIGBDb21wb25lbnQuZGVib3VuY2VgIG11c3QgYXN5bmNocm9ub3VzbHkgaW52b2tlIHRoZSBwYXNzZWQgaW4gY2FsbGJhY2suIEl0IGlzXG4gKiBpbXBvcnRhbnQgdGhhdCBjb250cmlidXRvcnMgdG8gUHJlYWN0IGNhbiBjb25zaXN0ZW50bHkgcmVhc29uIGFib3V0IHdoYXQgY2FsbHMgdG8gYHNldFN0YXRlYCwgZXRjLlxuICogZG8sIGFuZCB3aGVuIHRoZWlyIGVmZmVjdHMgd2lsbCBiZSBhcHBsaWVkLiBTZWUgdGhlIGxpbmtzIGJlbG93IGZvciBzb21lIGZ1cnRoZXIgcmVhZGluZyBvbiBkZXNpZ25pbmdcbiAqIGFzeW5jaHJvbm91cyBBUElzLlxuICogKiBbRGVzaWduaW5nIEFQSXMgZm9yIEFzeW5jaHJvbnldKGh0dHBzOi8vYmxvZy5penMubWUvMjAxMy8wOC9kZXNpZ25pbmctYXBpcy1mb3ItYXN5bmNocm9ueSlcbiAqICogW0NhbGxiYWNrcyBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzXShodHRwczovL2Jsb2cub21ldGVyLmNvbS8yMDExLzA3LzI0L2NhbGxiYWNrcy1zeW5jaHJvbm91cy1hbmQtYXN5bmNocm9ub3VzLylcbiAqL1xuXG5sZXQgcHJldkRlYm91bmNlO1xuXG5jb25zdCBkZWZlciA9XG5cdHR5cGVvZiBQcm9taXNlID09ICdmdW5jdGlvbidcblx0XHQ/IFByb21pc2UucHJvdG90eXBlLnRoZW4uYmluZChQcm9taXNlLnJlc29sdmUoKSlcblx0XHQ6IHNldFRpbWVvdXQ7XG5cbi8qKlxuICogRW5xdWV1ZSBhIHJlcmVuZGVyIG9mIGEgY29tcG9uZW50XG4gKiBAcGFyYW0ge0NvbXBvbmVudH0gYyBUaGUgY29tcG9uZW50IHRvIHJlcmVuZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnF1ZXVlUmVuZGVyKGMpIHtcblx0aWYgKFxuXHRcdCghYy5fZGlydHkgJiZcblx0XHRcdChjLl9kaXJ0eSA9IHRydWUpICYmXG5cdFx0XHRyZXJlbmRlclF1ZXVlLnB1c2goYykgJiZcblx0XHRcdCFwcm9jZXNzLl9yZXJlbmRlckNvdW50KyspIHx8XG5cdFx0cHJldkRlYm91bmNlICE9PSBvcHRpb25zLmRlYm91bmNlUmVuZGVyaW5nXG5cdCkge1xuXHRcdHByZXZEZWJvdW5jZSA9IG9wdGlvbnMuZGVib3VuY2VSZW5kZXJpbmc7XG5cdFx0KHByZXZEZWJvdW5jZSB8fCBkZWZlcikocHJvY2Vzcyk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBvbmVudH0gYVxuICogQHBhcmFtIHtDb21wb25lbnR9IGJcbiAqL1xuY29uc3QgZGVwdGhTb3J0ID0gKGEsIGIpID0+IGEuX3Zub2RlLl9kZXB0aCAtIGIuX3Zub2RlLl9kZXB0aDtcblxuLyoqIEZsdXNoIHRoZSByZW5kZXIgcXVldWUgYnkgcmVyZW5kZXJpbmcgYWxsIHF1ZXVlZCBjb21wb25lbnRzICovXG5mdW5jdGlvbiBwcm9jZXNzKCkge1xuXHRsZXQgYztcblx0cmVyZW5kZXJRdWV1ZS5zb3J0KGRlcHRoU29ydCk7XG5cdC8vIERvbid0IHVwZGF0ZSBgcmVuZGVyQ291bnRgIHlldC4gS2VlcCBpdHMgdmFsdWUgbm9uLXplcm8gdG8gcHJldmVudCB1bm5lY2Vzc2FyeVxuXHQvLyBwcm9jZXNzKCkgY2FsbHMgZnJvbSBnZXR0aW5nIHNjaGVkdWxlZCB3aGlsZSBgcXVldWVgIGlzIHN0aWxsIGJlaW5nIGNvbnN1bWVkLlxuXHR3aGlsZSAoKGMgPSByZXJlbmRlclF1ZXVlLnNoaWZ0KCkpKSB7XG5cdFx0aWYgKGMuX2RpcnR5KSB7XG5cdFx0XHRsZXQgcmVuZGVyUXVldWVMZW5ndGggPSByZXJlbmRlclF1ZXVlLmxlbmd0aDtcblx0XHRcdHJlbmRlckNvbXBvbmVudChjKTtcblx0XHRcdGlmIChyZXJlbmRlclF1ZXVlLmxlbmd0aCA+IHJlbmRlclF1ZXVlTGVuZ3RoKSB7XG5cdFx0XHRcdC8vIFdoZW4gaS5lLiByZXJlbmRlcmluZyBhIHByb3ZpZGVyIGFkZGl0aW9uYWwgbmV3IGl0ZW1zIGNhbiBiZSBpbmplY3RlZCwgd2Ugd2FudCB0b1xuXHRcdFx0XHQvLyBrZWVwIHRoZSBvcmRlciBmcm9tIHRvcCB0byBib3R0b20gd2l0aCB0aG9zZSBuZXcgaXRlbXMgc28gd2UgY2FuIGhhbmRsZSB0aGVtIGluIGFcblx0XHRcdFx0Ly8gc2luZ2xlIHBhc3Ncblx0XHRcdFx0cmVyZW5kZXJRdWV1ZS5zb3J0KGRlcHRoU29ydCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHByb2Nlc3MuX3JlcmVuZGVyQ291bnQgPSAwO1xufVxuXG5wcm9jZXNzLl9yZXJlbmRlckNvdW50ID0gMDtcbiIsICJpbXBvcnQgeyBJU19OT05fRElNRU5TSU9OQUwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi4vb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIHNldFN0eWxlKHN0eWxlLCBrZXksIHZhbHVlKSB7XG5cdGlmIChrZXlbMF0gPT09ICctJykge1xuXHRcdHN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWUpO1xuXHR9IGVsc2UgaWYgKHZhbHVlID09IG51bGwpIHtcblx0XHRzdHlsZVtrZXldID0gJyc7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlICE9ICdudW1iZXInIHx8IElTX05PTl9ESU1FTlNJT05BTC50ZXN0KGtleSkpIHtcblx0XHRzdHlsZVtrZXldID0gdmFsdWU7XG5cdH0gZWxzZSB7XG5cdFx0c3R5bGVba2V5XSA9IHZhbHVlICsgJ3B4Jztcblx0fVxufVxuXG4vLyBBIGxvZ2ljYWwgY2xvY2sgdG8gc29sdmUgaXNzdWVzIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL3ByZWFjdGpzL3ByZWFjdC9pc3N1ZXMvMzkyNy5cbi8vIFdoZW4gdGhlIERPTSBwZXJmb3JtcyBhbiBldmVudCBpdCBsZWF2ZXMgbWljcm8tdGlja3MgaW4gYmV0d2VlbiBidWJibGluZyB1cCB3aGljaCBtZWFucyB0aGF0XG4vLyBhbiBldmVudCBjYW4gdHJpZ2dlciBvbiBhIG5ld2x5IHJlYXRlZCBET00tbm9kZSB3aGlsZSB0aGUgZXZlbnQgYnViYmxlcyB1cC5cbi8vXG4vLyBPcmlnaW5hbGx5IGluc3BpcmVkIGJ5IFZ1ZVxuLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy9jb3JlL2Jsb2IvY2FlYjhhNjg4MTFhMWIwZjc5L3BhY2thZ2VzL3J1bnRpbWUtZG9tL3NyYy9tb2R1bGVzL2V2ZW50cy50cyNMOTAtTDEwMSksXG4vLyBidXQgbW9kaWZpZWQgdG8gdXNlIGEgbG9naWNhbCBjbG9jayBpbnN0ZWFkIG9mIERhdGUubm93KCkgaW4gY2FzZSBldmVudCBoYW5kbGVycyBnZXQgYXR0YWNoZWRcbi8vIGFuZCBldmVudHMgZ2V0IGRpc3BhdGNoZWQgZHVyaW5nIHRoZSBzYW1lIG1pbGxpc2Vjb25kLlxuLy9cbi8vIFRoZSBjbG9jayBpcyBpbmNyZW1lbnRlZCBhZnRlciBlYWNoIG5ldyBldmVudCBkaXNwYXRjaC4gVGhpcyBhbGxvd3MgMSAwMDAgMDAwIG5ldyBldmVudHNcbi8vIHBlciBzZWNvbmQgZm9yIG92ZXIgMjgwIHllYXJzIGJlZm9yZSB0aGUgdmFsdWUgcmVhY2hlcyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAoMioqNTMgLSAxKS5cbmxldCBldmVudENsb2NrID0gMDtcblxuLyoqXG4gKiBTZXQgYSBwcm9wZXJ0eSB2YWx1ZSBvbiBhIERPTSBub2RlXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IGRvbSBUaGUgRE9NIG5vZGUgdG8gbW9kaWZ5XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0XG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHByb3BlcnR5IHRvXG4gKiBAcGFyYW0geyp9IG9sZFZhbHVlIFRoZSBvbGQgdmFsdWUgdGhlIHByb3BlcnR5IGhhZFxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVzcGFjZSBXaGV0aGVyIG9yIG5vdCB0aGlzIERPTSBub2RlIGlzIGFuIFNWRyBub2RlIG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvcGVydHkoZG9tLCBuYW1lLCB2YWx1ZSwgb2xkVmFsdWUsIG5hbWVzcGFjZSkge1xuXHRsZXQgdXNlQ2FwdHVyZTtcblxuXHRvOiBpZiAobmFtZSA9PT0gJ3N0eWxlJykge1xuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHRcdGRvbS5zdHlsZS5jc3NUZXh0ID0gdmFsdWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICh0eXBlb2Ygb2xkVmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0ZG9tLnN0eWxlLmNzc1RleHQgPSBvbGRWYWx1ZSA9ICcnO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob2xkVmFsdWUpIHtcblx0XHRcdFx0Zm9yIChuYW1lIGluIG9sZFZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKCEodmFsdWUgJiYgbmFtZSBpbiB2YWx1ZSkpIHtcblx0XHRcdFx0XHRcdHNldFN0eWxlKGRvbS5zdHlsZSwgbmFtZSwgJycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAodmFsdWUpIHtcblx0XHRcdFx0Zm9yIChuYW1lIGluIHZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKCFvbGRWYWx1ZSB8fCB2YWx1ZVtuYW1lXSAhPT0gb2xkVmFsdWVbbmFtZV0pIHtcblx0XHRcdFx0XHRcdHNldFN0eWxlKGRvbS5zdHlsZSwgbmFtZSwgdmFsdWVbbmFtZV0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQvLyBCZW5jaG1hcmsgZm9yIGNvbXBhcmlzb246IGh0dHBzOi8vZXNiZW5jaC5jb20vYmVuY2gvNTc0Yzk1NGJkYjk2NWI5YTAwOTY1YWM2XG5cdGVsc2UgaWYgKG5hbWVbMF0gPT09ICdvJyAmJiBuYW1lWzFdID09PSAnbicpIHtcblx0XHR1c2VDYXB0dXJlID1cblx0XHRcdG5hbWUgIT09IChuYW1lID0gbmFtZS5yZXBsYWNlKC8oUG9pbnRlckNhcHR1cmUpJHxDYXB0dXJlJC9pLCAnJDEnKSk7XG5cblx0XHQvLyBJbmZlciBjb3JyZWN0IGNhc2luZyBmb3IgRE9NIGJ1aWx0LWluIGV2ZW50czpcblx0XHRpZiAoXG5cdFx0XHRuYW1lLnRvTG93ZXJDYXNlKCkgaW4gZG9tIHx8XG5cdFx0XHRuYW1lID09PSAnb25Gb2N1c091dCcgfHxcblx0XHRcdG5hbWUgPT09ICdvbkZvY3VzSW4nXG5cdFx0KVxuXHRcdFx0bmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgyKTtcblx0XHRlbHNlIG5hbWUgPSBuYW1lLnNsaWNlKDIpO1xuXG5cdFx0aWYgKCFkb20uX2xpc3RlbmVycykgZG9tLl9saXN0ZW5lcnMgPSB7fTtcblx0XHRkb20uX2xpc3RlbmVyc1tuYW1lICsgdXNlQ2FwdHVyZV0gPSB2YWx1ZTtcblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0aWYgKCFvbGRWYWx1ZSkge1xuXHRcdFx0XHR2YWx1ZS5fYXR0YWNoZWQgPSBldmVudENsb2NrO1xuXHRcdFx0XHRkb20uYWRkRXZlbnRMaXN0ZW5lcihcblx0XHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRcdHVzZUNhcHR1cmUgPyBldmVudFByb3h5Q2FwdHVyZSA6IGV2ZW50UHJveHksXG5cdFx0XHRcdFx0dXNlQ2FwdHVyZVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFsdWUuX2F0dGFjaGVkID0gb2xkVmFsdWUuX2F0dGFjaGVkO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0dXNlQ2FwdHVyZSA/IGV2ZW50UHJveHlDYXB0dXJlIDogZXZlbnRQcm94eSxcblx0XHRcdFx0dXNlQ2FwdHVyZVxuXHRcdFx0KTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0aWYgKG5hbWVzcGFjZSA9PSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnKSB7XG5cdFx0XHQvLyBOb3JtYWxpemUgaW5jb3JyZWN0IHByb3AgdXNhZ2UgZm9yIFNWRzpcblx0XHRcdC8vIC0geGxpbms6aHJlZiAvIHhsaW5rSHJlZiAtLT4gaHJlZiAoeGxpbms6aHJlZiB3YXMgcmVtb3ZlZCBmcm9tIFNWRyBhbmQgaXNuJ3QgbmVlZGVkKVxuXHRcdFx0Ly8gLSBjbGFzc05hbWUgLS0+IGNsYXNzXG5cdFx0XHRuYW1lID0gbmFtZS5yZXBsYWNlKC94bGluayhIfDpoKS8sICdoJykucmVwbGFjZSgvc05hbWUkLywgJ3MnKTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0bmFtZSAhPSAnd2lkdGgnICYmXG5cdFx0XHRuYW1lICE9ICdoZWlnaHQnICYmXG5cdFx0XHRuYW1lICE9ICdocmVmJyAmJlxuXHRcdFx0bmFtZSAhPSAnbGlzdCcgJiZcblx0XHRcdG5hbWUgIT0gJ2Zvcm0nICYmXG5cdFx0XHQvLyBEZWZhdWx0IHZhbHVlIGluIGJyb3dzZXJzIGlzIGAtMWAgYW5kIGFuIGVtcHR5IHN0cmluZyBpc1xuXHRcdFx0Ly8gY2FzdCB0byBgMGAgaW5zdGVhZFxuXHRcdFx0bmFtZSAhPSAndGFiSW5kZXgnICYmXG5cdFx0XHRuYW1lICE9ICdkb3dubG9hZCcgJiZcblx0XHRcdG5hbWUgIT0gJ3Jvd1NwYW4nICYmXG5cdFx0XHRuYW1lICE9ICdjb2xTcGFuJyAmJlxuXHRcdFx0bmFtZSAhPSAncm9sZScgJiZcblx0XHRcdG5hbWUgIT0gJ3BvcG92ZXInICYmXG5cdFx0XHRuYW1lIGluIGRvbVxuXHRcdCkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZG9tW25hbWVdID0gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XG5cdFx0XHRcdC8vIGxhYmVsbGVkIGJyZWFrIGlzIDFiIHNtYWxsZXIgaGVyZSB0aGFuIGEgcmV0dXJuIHN0YXRlbWVudCAoc29ycnkpXG5cdFx0XHRcdGJyZWFrIG87XG5cdFx0XHR9IGNhdGNoIChlKSB7fVxuXHRcdH1cblxuXHRcdC8vIGFyaWEtIGFuZCBkYXRhLSBhdHRyaWJ1dGVzIGhhdmUgbm8gYm9vbGVhbiByZXByZXNlbnRhdGlvbi5cblx0XHQvLyBBIGBmYWxzZWAgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIGF0dHJpYnV0ZSBub3QgYmVpbmdcblx0XHQvLyBwcmVzZW50LCBzbyB3ZSBjYW4ndCByZW1vdmUgaXQuIEZvciBub24tYm9vbGVhbiBhcmlhXG5cdFx0Ly8gYXR0cmlidXRlcyB3ZSBjb3VsZCB0cmVhdCBmYWxzZSBhcyBhIHJlbW92YWwsIGJ1dCB0aGVcblx0XHQvLyBhbW91bnQgb2YgZXhjZXB0aW9ucyB3b3VsZCBjb3N0IHRvbyBtYW55IGJ5dGVzLiBPbiB0b3Agb2Zcblx0XHQvLyB0aGF0IG90aGVyIGZyYW1ld29ya3MgZ2VuZXJhbGx5IHN0cmluZ2lmeSBgZmFsc2VgLlxuXG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHQvLyBuZXZlciBzZXJpYWxpemUgZnVuY3Rpb25zIGFzIGF0dHJpYnV0ZSB2YWx1ZXNcblx0XHR9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwgJiYgKHZhbHVlICE9PSBmYWxzZSB8fCBuYW1lWzRdID09PSAnLScpKSB7XG5cdFx0XHRkb20uc2V0QXR0cmlidXRlKG5hbWUsIG5hbWUgPT0gJ3BvcG92ZXInICYmIHZhbHVlID09IHRydWUgPyAnJyA6IHZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZG9tLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXZlbnQgcHJveHkgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHVzZUNhcHR1cmUgSXMgdGhlIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBjYXB0dXJlIHBoYXNlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXZlbnRQcm94eSh1c2VDYXB0dXJlKSB7XG5cdC8qKlxuXHQgKiBQcm94eSBhbiBldmVudCB0byBob29rZWQgZXZlbnQgaGFuZGxlcnNcblx0ICogQHBhcmFtIHtQcmVhY3RFdmVudH0gZSBUaGUgZXZlbnQgb2JqZWN0IGZyb20gdGhlIGJyb3dzZXJcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHJldHVybiBmdW5jdGlvbiAoZSkge1xuXHRcdGlmICh0aGlzLl9saXN0ZW5lcnMpIHtcblx0XHRcdGNvbnN0IGV2ZW50SGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1tlLnR5cGUgKyB1c2VDYXB0dXJlXTtcblx0XHRcdGlmIChlLl9kaXNwYXRjaGVkID09IG51bGwpIHtcblx0XHRcdFx0ZS5fZGlzcGF0Y2hlZCA9IGV2ZW50Q2xvY2srKztcblxuXHRcdFx0XHQvLyBXaGVuIGBlLl9kaXNwYXRjaGVkYCBpcyBzbWFsbGVyIHRoYW4gdGhlIHRpbWUgd2hlbiB0aGUgdGFyZ2V0ZWQgZXZlbnRcblx0XHRcdFx0Ly8gaGFuZGxlciB3YXMgYXR0YWNoZWQgd2Uga25vdyB3ZSBoYXZlIGJ1YmJsZWQgdXAgdG8gYW4gZWxlbWVudCB0aGF0IHdhcyBhZGRlZFxuXHRcdFx0XHQvLyBkdXJpbmcgcGF0Y2hpbmcgdGhlIERPTS5cblx0XHRcdH0gZWxzZSBpZiAoZS5fZGlzcGF0Y2hlZCA8IGV2ZW50SGFuZGxlci5fYXR0YWNoZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGV2ZW50SGFuZGxlcihvcHRpb25zLmV2ZW50ID8gb3B0aW9ucy5ldmVudChlKSA6IGUpO1xuXHRcdH1cblx0fTtcbn1cblxuY29uc3QgZXZlbnRQcm94eSA9IGNyZWF0ZUV2ZW50UHJveHkoZmFsc2UpO1xuY29uc3QgZXZlbnRQcm94eUNhcHR1cmUgPSBjcmVhdGVFdmVudFByb3h5KHRydWUpO1xuIiwgImltcG9ydCB7IGVucXVldWVSZW5kZXIgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5cbmV4cG9ydCBsZXQgaSA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250ZXh0KGRlZmF1bHRWYWx1ZSwgY29udGV4dElkKSB7XG5cdGNvbnRleHRJZCA9ICdfX2NDJyArIGkrKztcblxuXHRjb25zdCBjb250ZXh0ID0ge1xuXHRcdF9pZDogY29udGV4dElkLFxuXHRcdF9kZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSxcblx0XHQvKiogQHR5cGUge0Z1bmN0aW9uQ29tcG9uZW50fSAqL1xuXHRcdENvbnN1bWVyKHByb3BzLCBjb250ZXh0VmFsdWUpIHtcblx0XHRcdC8vIHJldHVybiBwcm9wcy5jaGlsZHJlbihcblx0XHRcdC8vIFx0Y29udGV4dFtjb250ZXh0SWRdID8gY29udGV4dFtjb250ZXh0SWRdLnByb3BzLnZhbHVlIDogZGVmYXVsdFZhbHVlXG5cdFx0XHQvLyApO1xuXHRcdFx0cmV0dXJuIHByb3BzLmNoaWxkcmVuKGNvbnRleHRWYWx1ZSk7XG5cdFx0fSxcblx0XHQvKiogQHR5cGUge0Z1bmN0aW9uQ29tcG9uZW50fSAqL1xuXHRcdFByb3ZpZGVyKHByb3BzKSB7XG5cdFx0XHRpZiAoIXRoaXMuZ2V0Q2hpbGRDb250ZXh0KSB7XG5cdFx0XHRcdC8qKiBAdHlwZSB7U2V0PENvbXBvbmVudD4gfCBudWxsfSAqL1xuXHRcdFx0XHRsZXQgc3VicyA9IG5ldyBTZXQoKTtcblx0XHRcdFx0bGV0IGN0eCA9IHt9O1xuXHRcdFx0XHRjdHhbY29udGV4dElkXSA9IHRoaXM7XG5cblx0XHRcdFx0dGhpcy5nZXRDaGlsZENvbnRleHQgPSAoKSA9PiBjdHg7XG5cblx0XHRcdFx0dGhpcy5jb21wb25lbnRXaWxsVW5tb3VudCA9ICgpID0+IHtcblx0XHRcdFx0XHRzdWJzID0gbnVsbDtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIChfcHJvcHMpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gX3Byb3BzLnZhbHVlKSB7XG5cdFx0XHRcdFx0XHRzdWJzLmZvckVhY2goYyA9PiB7XG5cdFx0XHRcdFx0XHRcdGMuX2ZvcmNlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0ZW5xdWV1ZVJlbmRlcihjKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLnN1YiA9IGMgPT4ge1xuXHRcdFx0XHRcdHN1YnMuYWRkKGMpO1xuXHRcdFx0XHRcdGxldCBvbGQgPSBjLmNvbXBvbmVudFdpbGxVbm1vdW50O1xuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFVubW91bnQgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc3Vicykge1xuXHRcdFx0XHRcdFx0XHRzdWJzLmRlbGV0ZShjKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChvbGQpIG9sZC5jYWxsKGMpO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcblx0XHR9XG5cdH07XG5cblx0Ly8gRGV2dG9vbHMgbmVlZHMgYWNjZXNzIHRvIHRoZSBjb250ZXh0IG9iamVjdCB3aGVuIGl0XG5cdC8vIGVuY291bnRlcnMgYSBQcm92aWRlci4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydFxuXHQvLyBzZXR0aW5nIGBkaXNwbGF5TmFtZWAgb24gdGhlIGNvbnRleHQgb2JqZWN0IGluc3RlYWRcblx0Ly8gb2Ygb24gdGhlIGNvbXBvbmVudCBpdHNlbGYuIFNlZTpcblx0Ly8gaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2NvbnRleHQuaHRtbCNjb250ZXh0ZGlzcGxheW5hbWVcblxuXHRyZXR1cm4gKGNvbnRleHQuUHJvdmlkZXIuX2NvbnRleHRSZWYgPSBjb250ZXh0LkNvbnN1bWVyLmNvbnRleHRUeXBlID1cblx0XHRjb250ZXh0KTtcbn1cbiIsICJpbXBvcnQgeyBkaWZmLCB1bm1vdW50LCBhcHBseVJlZiB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgY3JlYXRlVk5vZGUsIEZyYWdtZW50IH0gZnJvbSAnLi4vY3JlYXRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgRU1QVFlfT0JKLCBFTVBUWV9BUlIsIElOU0VSVF9WTk9ERSwgTUFUQ0hFRCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBnZXREb21TaWJsaW5nIH0gZnJvbSAnLi4vY29tcG9uZW50JztcblxuLyoqXG4gKiBEaWZmIHRoZSBjaGlsZHJlbiBvZiBhIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBwYXJlbnREb20gVGhlIERPTSBlbGVtZW50IHdob3NlIGNoaWxkcmVuIGFyZSBiZWluZ1xuICogZGlmZmVkXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVuW119IHJlbmRlclJlc3VsdFxuICogQHBhcmFtIHtWTm9kZX0gbmV3UGFyZW50Vk5vZGUgVGhlIG5ldyB2aXJ0dWFsIG5vZGUgd2hvc2UgY2hpbGRyZW4gc2hvdWxkIGJlXG4gKiBkaWZmJ2VkIGFnYWluc3Qgb2xkUGFyZW50Vk5vZGVcbiAqIEBwYXJhbSB7Vk5vZGV9IG9sZFBhcmVudFZOb2RlIFRoZSBvbGQgdmlydHVhbCBub2RlIHdob3NlIGNoaWxkcmVuIHNob3VsZCBiZVxuICogZGlmZidlZCBhZ2FpbnN0IG5ld1BhcmVudFZOb2RlXG4gKiBAcGFyYW0ge29iamVjdH0gZ2xvYmFsQ29udGV4dCBUaGUgY3VycmVudCBjb250ZXh0IG9iamVjdCAtIG1vZGlmaWVkIGJ5XG4gKiBnZXRDaGlsZENvbnRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgQ3VycmVudCBuYW1lc3BhY2Ugb2YgdGhlIERPTSBub2RlIChIVE1MLCBTVkcsIG9yIE1hdGhNTClcbiAqIEBwYXJhbSB7QXJyYXk8UHJlYWN0RWxlbWVudD59IGV4Y2Vzc0RvbUNoaWxkcmVuXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudD59IGNvbW1pdFF1ZXVlIExpc3Qgb2YgY29tcG9uZW50cyB3aGljaCBoYXZlIGNhbGxiYWNrc1xuICogdG8gaW52b2tlIGluIGNvbW1pdFJvb3RcbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gb2xkRG9tIFRoZSBjdXJyZW50IGF0dGFjaGVkIERPTSBlbGVtZW50IGFueSBuZXcgZG9tXG4gKiBlbGVtZW50cyBzaG91bGQgYmUgcGxhY2VkIGFyb3VuZC4gTGlrZWx5IGBudWxsYCBvbiBmaXJzdCByZW5kZXIgKGV4Y2VwdCB3aGVuXG4gKiBoeWRyYXRpbmcpLiBDYW4gYmUgYSBzaWJsaW5nIERPTSBlbGVtZW50IHdoZW4gZGlmZmluZyBGcmFnbWVudHMgdGhhdCBoYXZlXG4gKiBzaWJsaW5ncy4gSW4gbW9zdCBjYXNlcywgaXQgc3RhcnRzIG91dCBhcyBgb2xkQ2hpbGRyZW5bMF0uX2RvbWAuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzSHlkcmF0aW5nIFdoZXRoZXIgb3Igbm90IHdlIGFyZSBpbiBoeWRyYXRpb25cbiAqIEBwYXJhbSB7YW55W119IHJlZlF1ZXVlIGFuIGFycmF5IG9mIGVsZW1lbnRzIG5lZWRlZCB0byBpbnZva2UgcmVmc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNoaWxkcmVuKFxuXHRwYXJlbnREb20sXG5cdHJlbmRlclJlc3VsdCxcblx0bmV3UGFyZW50Vk5vZGUsXG5cdG9sZFBhcmVudFZOb2RlLFxuXHRnbG9iYWxDb250ZXh0LFxuXHRuYW1lc3BhY2UsXG5cdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRjb21taXRRdWV1ZSxcblx0b2xkRG9tLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHRsZXQgaSxcblx0XHQvKiogQHR5cGUge1ZOb2RlfSAqL1xuXHRcdG9sZFZOb2RlLFxuXHRcdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdFx0Y2hpbGRWTm9kZSxcblx0XHQvKiogQHR5cGUge1ByZWFjdEVsZW1lbnR9ICovXG5cdFx0bmV3RG9tLFxuXHRcdC8qKiBAdHlwZSB7UHJlYWN0RWxlbWVudH0gKi9cblx0XHRmaXJzdENoaWxkRG9tO1xuXG5cdC8vIFRoaXMgaXMgYSBjb21wcmVzc2lvbiBvZiBvbGRQYXJlbnRWTm9kZSE9bnVsbCAmJiBvbGRQYXJlbnRWTm9kZSAhPSBFTVBUWV9PQkogJiYgb2xkUGFyZW50Vk5vZGUuX2NoaWxkcmVuIHx8IEVNUFRZX0FSUlxuXHQvLyBhcyBFTVBUWV9PQkouX2NoaWxkcmVuIHNob3VsZCBiZSBgdW5kZWZpbmVkYC5cblx0LyoqIEB0eXBlIHtWTm9kZVtdfSAqL1xuXHRsZXQgb2xkQ2hpbGRyZW4gPSAob2xkUGFyZW50Vk5vZGUgJiYgb2xkUGFyZW50Vk5vZGUuX2NoaWxkcmVuKSB8fCBFTVBUWV9BUlI7XG5cblx0bGV0IG5ld0NoaWxkcmVuTGVuZ3RoID0gcmVuZGVyUmVzdWx0Lmxlbmd0aDtcblxuXHRuZXdQYXJlbnRWTm9kZS5fbmV4dERvbSA9IG9sZERvbTtcblx0Y29uc3RydWN0TmV3Q2hpbGRyZW5BcnJheShuZXdQYXJlbnRWTm9kZSwgcmVuZGVyUmVzdWx0LCBvbGRDaGlsZHJlbik7XG5cdG9sZERvbSA9IG5ld1BhcmVudFZOb2RlLl9uZXh0RG9tO1xuXG5cdGZvciAoaSA9IDA7IGkgPCBuZXdDaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG5cdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXTtcblx0XHRpZiAoY2hpbGRWTm9kZSA9PSBudWxsKSBjb250aW51ZTtcblxuXHRcdC8vIEF0IHRoaXMgcG9pbnQsIGNvbnN0cnVjdE5ld0NoaWxkcmVuQXJyYXkgaGFzIGFzc2lnbmVkIF9pbmRleCB0byBiZSB0aGVcblx0XHQvLyBtYXRjaGluZ0luZGV4IGZvciB0aGlzIFZOb2RlJ3Mgb2xkVk5vZGUgKG9yIC0xIGlmIHRoZXJlIGlzIG5vIG9sZFZOb2RlKS5cblx0XHRpZiAoY2hpbGRWTm9kZS5faW5kZXggPT09IC0xKSB7XG5cdFx0XHRvbGRWTm9kZSA9IEVNUFRZX09CSjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlbltjaGlsZFZOb2RlLl9pbmRleF0gfHwgRU1QVFlfT0JKO1xuXHRcdH1cblxuXHRcdC8vIFVwZGF0ZSBjaGlsZFZOb2RlLl9pbmRleCB0byBpdHMgZmluYWwgaW5kZXhcblx0XHRjaGlsZFZOb2RlLl9pbmRleCA9IGk7XG5cblx0XHQvLyBNb3JwaCB0aGUgb2xkIGVsZW1lbnQgaW50byB0aGUgbmV3IG9uZSwgYnV0IGRvbid0IGFwcGVuZCBpdCB0byB0aGUgZG9tIHlldFxuXHRcdGRpZmYoXG5cdFx0XHRwYXJlbnREb20sXG5cdFx0XHRjaGlsZFZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRnbG9iYWxDb250ZXh0LFxuXHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdG9sZERvbSxcblx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXG5cdFx0Ly8gQWRqdXN0IERPTSBub2Rlc1xuXHRcdG5ld0RvbSA9IGNoaWxkVk5vZGUuX2RvbTtcblx0XHRpZiAoY2hpbGRWTm9kZS5yZWYgJiYgb2xkVk5vZGUucmVmICE9IGNoaWxkVk5vZGUucmVmKSB7XG5cdFx0XHRpZiAob2xkVk5vZGUucmVmKSB7XG5cdFx0XHRcdGFwcGx5UmVmKG9sZFZOb2RlLnJlZiwgbnVsbCwgY2hpbGRWTm9kZSk7XG5cdFx0XHR9XG5cdFx0XHRyZWZRdWV1ZS5wdXNoKFxuXHRcdFx0XHRjaGlsZFZOb2RlLnJlZixcblx0XHRcdFx0Y2hpbGRWTm9kZS5fY29tcG9uZW50IHx8IG5ld0RvbSxcblx0XHRcdFx0Y2hpbGRWTm9kZVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRpZiAoZmlyc3RDaGlsZERvbSA9PSBudWxsICYmIG5ld0RvbSAhPSBudWxsKSB7XG5cdFx0XHRmaXJzdENoaWxkRG9tID0gbmV3RG9tO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdGNoaWxkVk5vZGUuX2ZsYWdzICYgSU5TRVJUX1ZOT0RFIHx8XG5cdFx0XHRvbGRWTm9kZS5fY2hpbGRyZW4gPT09IGNoaWxkVk5vZGUuX2NoaWxkcmVuXG5cdFx0KSB7XG5cdFx0XHRvbGREb20gPSBpbnNlcnQoY2hpbGRWTm9kZSwgb2xkRG9tLCBwYXJlbnREb20pO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZS50eXBlID09ICdmdW5jdGlvbicgJiZcblx0XHRcdGNoaWxkVk5vZGUuX25leHREb20gIT09IHVuZGVmaW5lZFxuXHRcdCkge1xuXHRcdFx0Ly8gU2luY2UgRnJhZ21lbnRzIG9yIGNvbXBvbmVudHMgdGhhdCByZXR1cm4gRnJhZ21lbnQgbGlrZSBWTm9kZXMgY2FuXG5cdFx0XHQvLyBjb250YWluIG11bHRpcGxlIERPTSBub2RlcyBhcyB0aGUgc2FtZSBsZXZlbCwgY29udGludWUgdGhlIGRpZmYgZnJvbVxuXHRcdFx0Ly8gdGhlIHNpYmxpbmcgb2YgbGFzdCBET00gY2hpbGQgb2YgdGhpcyBjaGlsZCBWTm9kZVxuXHRcdFx0b2xkRG9tID0gY2hpbGRWTm9kZS5fbmV4dERvbTtcblx0XHR9IGVsc2UgaWYgKG5ld0RvbSkge1xuXHRcdFx0b2xkRG9tID0gbmV3RG9tLm5leHRTaWJsaW5nO1xuXHRcdH1cblxuXHRcdC8vIEVhZ2VybHkgY2xlYW51cCBfbmV4dERvbS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJzaXN0IHRoZSB2YWx1ZSBiZWNhdXNlIGl0XG5cdFx0Ly8gaXMgb25seSB1c2VkIGJ5IGBkaWZmQ2hpbGRyZW5gIHRvIGRldGVybWluZSB3aGVyZSB0byByZXN1bWUgdGhlIGRpZmZcblx0XHQvLyBhZnRlciBkaWZmaW5nIENvbXBvbmVudHMgYW5kIEZyYWdtZW50cy4gT25jZSB3ZSBzdG9yZSBpdCB0aGUgbmV4dERPTVxuXHRcdC8vIGxvY2FsIHZhciwgd2UgY2FuIGNsZWFuIHVwIHRoZSBwcm9wZXJ0eS4gQWxzbyBwcmV2ZW50cyB1cyBoYW5naW5nIG9uIHRvXG5cdFx0Ly8gRE9NIG5vZGVzIHRoYXQgbWF5IGhhdmUgYmVlbiB1bm1vdW50ZWQuXG5cdFx0Y2hpbGRWTm9kZS5fbmV4dERvbSA9IHVuZGVmaW5lZDtcblxuXHRcdC8vIFVuc2V0IGRpZmZpbmcgZmxhZ3Ncblx0XHRjaGlsZFZOb2RlLl9mbGFncyAmPSB+KElOU0VSVF9WTk9ERSB8IE1BVENIRUQpO1xuXHR9XG5cblx0Ly8gVE9ETzogV2l0aCBuZXcgY2hpbGQgZGlmZmluZyBhbGdvLCBjb25zaWRlciBhbHQgd2F5cyB0byBkaWZmIEZyYWdtZW50cy5cblx0Ly8gU3VjaCBhcyBkcm9wcGluZyBvbGREb20gYW5kIG1vdmluZyBmcmFnbWVudHMgaW4gcGxhY2Vcblx0Ly9cblx0Ly8gQmVjYXVzZSB0aGUgbmV3UGFyZW50Vk5vZGUgaXMgRnJhZ21lbnQtbGlrZSwgd2UgbmVlZCB0byBzZXQgaXQnc1xuXHQvLyBfbmV4dERvbSBwcm9wZXJ0eSB0byB0aGUgbmV4dFNpYmxpbmcgb2YgaXRzIGxhc3QgY2hpbGQgRE9NIG5vZGUuXG5cdC8vXG5cdC8vIGBvbGREb21gIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHZhbHVlIGhlcmUgYmVjYXVzZSBpZiB0aGUgbGFzdCBjaGlsZFxuXHQvLyBpcyBhIEZyYWdtZW50LWxpa2UsIHRoZW4gb2xkRG9tIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHRvIHRoYXQgY2hpbGQncyBfbmV4dERvbS5cblx0Ly8gSWYgdGhlIGxhc3QgY2hpbGQgaXMgYSBET00gVk5vZGUsIHRoZW4gb2xkRG9tIHdpbGwgYmUgc2V0IHRvIHRoYXQgRE9NXG5cdC8vIG5vZGUncyBuZXh0U2libGluZy5cblx0bmV3UGFyZW50Vk5vZGUuX25leHREb20gPSBvbGREb207XG5cdG5ld1BhcmVudFZOb2RlLl9kb20gPSBmaXJzdENoaWxkRG9tO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IG5ld1BhcmVudFZOb2RlXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVuW119IHJlbmRlclJlc3VsdFxuICogQHBhcmFtIHtWTm9kZVtdfSBvbGRDaGlsZHJlblxuICovXG5mdW5jdGlvbiBjb25zdHJ1Y3ROZXdDaGlsZHJlbkFycmF5KG5ld1BhcmVudFZOb2RlLCByZW5kZXJSZXN1bHQsIG9sZENoaWxkcmVuKSB7XG5cdC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuXHRsZXQgaTtcblx0LyoqIEB0eXBlIHtWTm9kZX0gKi9cblx0bGV0IGNoaWxkVk5vZGU7XG5cdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdGxldCBvbGRWTm9kZTtcblxuXHRjb25zdCBuZXdDaGlsZHJlbkxlbmd0aCA9IHJlbmRlclJlc3VsdC5sZW5ndGg7XG5cdGxldCBvbGRDaGlsZHJlbkxlbmd0aCA9IG9sZENoaWxkcmVuLmxlbmd0aCxcblx0XHRyZW1haW5pbmdPbGRDaGlsZHJlbiA9IG9sZENoaWxkcmVuTGVuZ3RoO1xuXG5cdGxldCBza2V3ID0gMDtcblxuXHRuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW4gPSBbXTtcblx0Zm9yIChpID0gMDsgaSA8IG5ld0NoaWxkcmVuTGVuZ3RoOyBpKyspIHtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFdlIGFyZSByZXVzaW5nIHRoZSBjaGlsZFZOb2RlIHZhcmlhYmxlIHRvIGhvbGQgYm90aCB0aGVcblx0XHQvLyBwcmUgYW5kIHBvc3Qgbm9ybWFsaXplZCBjaGlsZFZOb2RlXG5cdFx0Y2hpbGRWTm9kZSA9IHJlbmRlclJlc3VsdFtpXTtcblxuXHRcdGlmIChcblx0XHRcdGNoaWxkVk5vZGUgPT0gbnVsbCB8fFxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ2Jvb2xlYW4nIHx8XG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZSA9PSAnZnVuY3Rpb24nXG5cdFx0KSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gbnVsbDtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHQvLyBJZiB0aGlzIG5ld1ZOb2RlIGlzIGJlaW5nIHJldXNlZCAoZS5nLiA8ZGl2PntyZXVzZX17cmV1c2V9PC9kaXY+KSBpbiB0aGUgc2FtZSBkaWZmLFxuXHRcdC8vIG9yIHdlIGFyZSByZW5kZXJpbmcgYSBjb21wb25lbnQgKGUuZy4gc2V0U3RhdGUpIGNvcHkgdGhlIG9sZFZOb2RlcyBzbyBpdCBjYW4gaGF2ZVxuXHRcdC8vIGl0J3Mgb3duIERPTSAmIGV0Yy4gcG9pbnRlcnNcblx0XHRlbHNlIGlmIChcblx0XHRcdHR5cGVvZiBjaGlsZFZOb2RlID09ICdzdHJpbmcnIHx8XG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZSA9PSAnbnVtYmVyJyB8fFxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZhbGlkLXR5cGVvZlxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ2JpZ2ludCcgfHxcblx0XHRcdGNoaWxkVk5vZGUuY29uc3RydWN0b3IgPT0gU3RyaW5nXG5cdFx0KSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gY3JlYXRlVk5vZGUoXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdGNoaWxkVk5vZGUsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChpc0FycmF5KGNoaWxkVk5vZGUpKSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gY3JlYXRlVk5vZGUoXG5cdFx0XHRcdEZyYWdtZW50LFxuXHRcdFx0XHR7IGNoaWxkcmVuOiBjaGlsZFZOb2RlIH0sXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChjaGlsZFZOb2RlLmNvbnN0cnVjdG9yID09PSB1bmRlZmluZWQgJiYgY2hpbGRWTm9kZS5fZGVwdGggPiAwKSB7XG5cdFx0XHQvLyBWTm9kZSBpcyBhbHJlYWR5IGluIHVzZSwgY2xvbmUgaXQuIFRoaXMgY2FuIGhhcHBlbiBpbiB0aGUgZm9sbG93aW5nXG5cdFx0XHQvLyBzY2VuYXJpbzpcblx0XHRcdC8vICAgY29uc3QgcmV1c2UgPSA8ZGl2IC8+XG5cdFx0XHQvLyAgIDxkaXY+e3JldXNlfTxzcGFuIC8+e3JldXNlfTwvZGl2PlxuXHRcdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXSA9IGNyZWF0ZVZOb2RlKFxuXHRcdFx0XHRjaGlsZFZOb2RlLnR5cGUsXG5cdFx0XHRcdGNoaWxkVk5vZGUucHJvcHMsXG5cdFx0XHRcdGNoaWxkVk5vZGUua2V5LFxuXHRcdFx0XHRjaGlsZFZOb2RlLnJlZiA/IGNoaWxkVk5vZGUucmVmIDogbnVsbCxcblx0XHRcdFx0Y2hpbGRWTm9kZS5fb3JpZ2luYWxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNoaWxkVk5vZGUgPSBuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW5baV0gPSBjaGlsZFZOb2RlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNrZXdlZEluZGV4ID0gaSArIHNrZXc7XG5cdFx0Y2hpbGRWTm9kZS5fcGFyZW50ID0gbmV3UGFyZW50Vk5vZGU7XG5cdFx0Y2hpbGRWTm9kZS5fZGVwdGggPSBuZXdQYXJlbnRWTm9kZS5fZGVwdGggKyAxO1xuXG5cdFx0Ly8gVGVtcG9yYXJpbHkgc3RvcmUgdGhlIG1hdGNoaW5nSW5kZXggb24gdGhlIF9pbmRleCBwcm9wZXJ0eSBzbyB3ZSBjYW4gcHVsbFxuXHRcdC8vIG91dCB0aGUgb2xkVk5vZGUgaW4gZGlmZkNoaWxkcmVuLiBXZSdsbCBvdmVycmlkZSB0aGlzIHRvIHRoZSBWTm9kZSdzXG5cdFx0Ly8gZmluYWwgaW5kZXggYWZ0ZXIgdXNpbmcgdGhpcyBwcm9wZXJ0eSB0byBnZXQgdGhlIG9sZFZOb2RlXG5cdFx0Y29uc3QgbWF0Y2hpbmdJbmRleCA9IChjaGlsZFZOb2RlLl9pbmRleCA9IGZpbmRNYXRjaGluZ0luZGV4KFxuXHRcdFx0Y2hpbGRWTm9kZSxcblx0XHRcdG9sZENoaWxkcmVuLFxuXHRcdFx0c2tld2VkSW5kZXgsXG5cdFx0XHRyZW1haW5pbmdPbGRDaGlsZHJlblxuXHRcdCkpO1xuXG5cdFx0b2xkVk5vZGUgPSBudWxsO1xuXHRcdGlmIChtYXRjaGluZ0luZGV4ICE9PSAtMSkge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlblttYXRjaGluZ0luZGV4XTtcblx0XHRcdHJlbWFpbmluZ09sZENoaWxkcmVuLS07XG5cdFx0XHRpZiAob2xkVk5vZGUpIHtcblx0XHRcdFx0b2xkVk5vZGUuX2ZsYWdzIHw9IE1BVENIRUQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gSGVyZSwgd2UgZGVmaW5lIGlzTW91bnRpbmcgZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgc2tldyBkaWZmaW5nXG5cdFx0Ly8gYWxnb3JpdGhtLiBOb2RlcyB0aGF0IGFyZSB1bnN1c3BlbmRpbmcgYXJlIGNvbnNpZGVyZWQgbW91bnRpbmcgYW5kIHdlIGRldGVjdFxuXHRcdC8vIHRoaXMgYnkgY2hlY2tpbmcgaWYgb2xkVk5vZGUuX29yaWdpbmFsID09PSBudWxsXG5cdFx0Y29uc3QgaXNNb3VudGluZyA9IG9sZFZOb2RlID09IG51bGwgfHwgb2xkVk5vZGUuX29yaWdpbmFsID09PSBudWxsO1xuXG5cdFx0aWYgKGlzTW91bnRpbmcpIHtcblx0XHRcdGlmIChtYXRjaGluZ0luZGV4ID09IC0xKSB7XG5cdFx0XHRcdHNrZXctLTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgd2UgYXJlIG1vdW50aW5nIGEgRE9NIFZOb2RlLCBtYXJrIGl0IGZvciBpbnNlcnRpb25cblx0XHRcdGlmICh0eXBlb2YgY2hpbGRWTm9kZS50eXBlICE9ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0Y2hpbGRWTm9kZS5fZmxhZ3MgfD0gSU5TRVJUX1ZOT0RFO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobWF0Y2hpbmdJbmRleCAhPT0gc2tld2VkSW5kZXgpIHtcblx0XHRcdC8vIFdoZW4gd2UgbW92ZSBlbGVtZW50cyBhcm91bmQgaS5lLiBbMCwgMSwgMl0gLS0+IFsxLCAwLCAyXVxuXHRcdFx0Ly8gLS0+IHdlIGRpZmYgMSwgd2UgZmluZCBpdCBhdCBwb3NpdGlvbiAxIHdoaWxlIG91ciBza2V3ZWQgaW5kZXggaXMgMCBhbmQgb3VyIHNrZXcgaXMgMFxuXHRcdFx0Ly8gICAgIHdlIHNldCB0aGUgc2tldyB0byAxIGFzIHdlIGZvdW5kIGFuIG9mZnNldC5cblx0XHRcdC8vIC0tPiB3ZSBkaWZmIDAsIHdlIGZpbmQgaXQgYXQgcG9zaXRpb24gMCB3aGlsZSBvdXIgc2tld2VkIGluZGV4IGlzIGF0IDIgYW5kIG91ciBza2V3IGlzIDFcblx0XHRcdC8vICAgICB0aGlzIG1ha2VzIHVzIGluY3JlYXNlIHRoZSBza2V3IGFnYWluLlxuXHRcdFx0Ly8gLS0+IHdlIGRpZmYgMiwgd2UgZmluZCBpdCBhdCBwb3NpdGlvbiAyIHdoaWxlIG91ciBza2V3ZWQgaW5kZXggaXMgYXQgNCBhbmQgb3VyIHNrZXcgaXMgMlxuXHRcdFx0Ly9cblx0XHRcdC8vIHRoaXMgYmVjb21lcyBhbiBvcHRpbWl6YXRpb24gcXVlc3Rpb24gd2hlcmUgY3VycmVudGx5IHdlIHNlZSBhIDEgZWxlbWVudCBvZmZzZXQgYXMgYW4gaW5zZXJ0aW9uXG5cdFx0XHQvLyBvciBkZWxldGlvbiBpLmUuIHdlIG9wdGltaXplIGZvciBbMCwgMSwgMl0gLS0+IFs5LCAwLCAxLCAyXVxuXHRcdFx0Ly8gd2hpbGUgYSBtb3JlIHRoYW4gMSBvZmZzZXQgd2Ugc2VlIGFzIGEgc3dhcC5cblx0XHRcdC8vIFdlIGNvdWxkIHByb2JhYmx5IGJ1aWxkIGhldXJpc3RpY3MgZm9yIGhhdmluZyBhbiBvcHRpbWl6ZWQgY291cnNlIG9mIGFjdGlvbiBoZXJlIGFzIHdlbGwsIGJ1dFxuXHRcdFx0Ly8gbWlnaHQgZ28gYXQgdGhlIGNvc3Qgb2Ygc29tZSBieXRlcy5cblx0XHRcdC8vXG5cdFx0XHQvLyBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgZm9yIGkuZS4gb25seSBzd2FwcyB3ZSdkIGp1c3QgZG8gdGhlIGxhc3QgdHdvIGNvZGUtYnJhbmNoZXMgYW5kIGhhdmVcblx0XHRcdC8vIG9ubHkgdGhlIGZpcnN0IGl0ZW0gYmUgYSByZS1zY291dGluZyBhbmQgYWxsIHRoZSBvdGhlcnMgZmFsbCBpbiB0aGVpciBza2V3ZWQgY291bnRlci1wYXJ0LlxuXHRcdFx0Ly8gV2UgY291bGQgYWxzbyBmdXJ0aGVyIG9wdGltaXplIGZvciBzd2Fwc1xuXHRcdFx0aWYgKG1hdGNoaW5nSW5kZXggPT0gc2tld2VkSW5kZXggLSAxKSB7XG5cdFx0XHRcdHNrZXctLTtcblx0XHRcdH0gZWxzZSBpZiAobWF0Y2hpbmdJbmRleCA9PSBza2V3ZWRJbmRleCArIDEpIHtcblx0XHRcdFx0c2tldysrO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKG1hdGNoaW5nSW5kZXggPiBza2V3ZWRJbmRleCkge1xuXHRcdFx0XHRcdHNrZXctLTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRza2V3Kys7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBNb3ZlIHRoaXMgVk5vZGUncyBET00gaWYgdGhlIG9yaWdpbmFsIGluZGV4IChtYXRjaGluZ0luZGV4KSBkb2Vzbid0XG5cdFx0XHRcdC8vIG1hdGNoIHRoZSBuZXcgc2tldyBpbmRleCAoaSArIG5ldyBza2V3KVxuXHRcdFx0XHQvLyBJbiB0aGUgZm9ybWVyIHR3byBicmFuY2hlcyB3ZSBrbm93IHRoYXQgaXQgbWF0Y2hlcyBhZnRlciBza2V3aW5nXG5cdFx0XHRcdGNoaWxkVk5vZGUuX2ZsYWdzIHw9IElOU0VSVF9WTk9ERTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZW1vdmUgcmVtYWluaW5nIG9sZENoaWxkcmVuIGlmIHRoZXJlIGFyZSBhbnkuIExvb3AgZm9yd2FyZHMgc28gdGhhdCBhcyB3ZVxuXHQvLyB1bm1vdW50IERPTSBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG9sZENoaWxkcmVuLCB3ZSBjYW4gYWRqdXN0IG9sZERvbSB0b1xuXHQvLyBwb2ludCB0byB0aGUgbmV4dCBjaGlsZCwgd2hpY2ggbmVlZHMgdG8gYmUgdGhlIGZpcnN0IERPTSBub2RlIHRoYXQgd29uJ3QgYmVcblx0Ly8gdW5tb3VudGVkLlxuXHRpZiAocmVtYWluaW5nT2xkQ2hpbGRyZW4pIHtcblx0XHRmb3IgKGkgPSAwOyBpIDwgb2xkQ2hpbGRyZW5MZW5ndGg7IGkrKykge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlbltpXTtcblx0XHRcdGlmIChvbGRWTm9kZSAhPSBudWxsICYmIChvbGRWTm9kZS5fZmxhZ3MgJiBNQVRDSEVEKSA9PT0gMCkge1xuXHRcdFx0XHRpZiAob2xkVk5vZGUuX2RvbSA9PSBuZXdQYXJlbnRWTm9kZS5fbmV4dERvbSkge1xuXHRcdFx0XHRcdG5ld1BhcmVudFZOb2RlLl9uZXh0RG9tID0gZ2V0RG9tU2libGluZyhvbGRWTm9kZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bm1vdW50KG9sZFZOb2RlLCBvbGRWTm9kZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gcGFyZW50Vk5vZGVcbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gb2xkRG9tXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbVxuICogQHJldHVybnMge1ByZWFjdEVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIGluc2VydChwYXJlbnRWTm9kZSwgb2xkRG9tLCBwYXJlbnREb20pIHtcblx0Ly8gTm90ZTogVk5vZGVzIGluIG5lc3RlZCBzdXNwZW5kZWQgdHJlZXMgbWF5IGJlIG1pc3NpbmcgX2NoaWxkcmVuLlxuXG5cdGlmICh0eXBlb2YgcGFyZW50Vk5vZGUudHlwZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0bGV0IGNoaWxkcmVuID0gcGFyZW50Vk5vZGUuX2NoaWxkcmVuO1xuXHRcdGZvciAobGV0IGkgPSAwOyBjaGlsZHJlbiAmJiBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChjaGlsZHJlbltpXSkge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbnRlciB0aGlzIGNvZGUgcGF0aCBvbiBzQ1UgYmFpbG91dCwgd2hlcmUgd2UgY29weVxuXHRcdFx0XHQvLyBvbGRWTm9kZS5fY2hpbGRyZW4gdG8gbmV3Vk5vZGUuX2NoaWxkcmVuLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgb2xkXG5cdFx0XHRcdC8vIGNoaWxkcmVuJ3MgX3BhcmVudCBwb2ludGVyIHRvIHBvaW50IHRvIHRoZSBuZXdWTm9kZSAocGFyZW50Vk5vZGVcblx0XHRcdFx0Ly8gaGVyZSkuXG5cdFx0XHRcdGNoaWxkcmVuW2ldLl9wYXJlbnQgPSBwYXJlbnRWTm9kZTtcblx0XHRcdFx0b2xkRG9tID0gaW5zZXJ0KGNoaWxkcmVuW2ldLCBvbGREb20sIHBhcmVudERvbSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9sZERvbTtcblx0fSBlbHNlIGlmIChwYXJlbnRWTm9kZS5fZG9tICE9IG9sZERvbSkge1xuXHRcdGlmIChvbGREb20gJiYgcGFyZW50Vk5vZGUudHlwZSAmJiAhcGFyZW50RG9tLmNvbnRhaW5zKG9sZERvbSkpIHtcblx0XHRcdG9sZERvbSA9IGdldERvbVNpYmxpbmcocGFyZW50Vk5vZGUpO1xuXHRcdH1cblx0XHRwYXJlbnREb20uaW5zZXJ0QmVmb3JlKHBhcmVudFZOb2RlLl9kb20sIG9sZERvbSB8fCBudWxsKTtcblx0XHRvbGREb20gPSBwYXJlbnRWTm9kZS5fZG9tO1xuXHR9XG5cblx0ZG8ge1xuXHRcdG9sZERvbSA9IG9sZERvbSAmJiBvbGREb20ubmV4dFNpYmxpbmc7XG5cdH0gd2hpbGUgKG9sZERvbSAhPSBudWxsICYmIG9sZERvbS5ub2RlVHlwZSA9PT0gOCk7XG5cblx0cmV0dXJuIG9sZERvbTtcbn1cblxuLyoqXG4gKiBGbGF0dGVuIGFuZCBsb29wIHRocm91Z2ggdGhlIGNoaWxkcmVuIG9mIGEgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVufSBjaGlsZHJlbiBUaGUgdW5mbGF0dGVuZWQgY2hpbGRyZW4gb2YgYSB2aXJ0dWFsXG4gKiBub2RlXG4gKiBAcmV0dXJucyB7Vk5vZGVbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hpbGRBcnJheShjaGlsZHJlbiwgb3V0KSB7XG5cdG91dCA9IG91dCB8fCBbXTtcblx0aWYgKGNoaWxkcmVuID09IG51bGwgfHwgdHlwZW9mIGNoaWxkcmVuID09ICdib29sZWFuJykge1xuXHR9IGVsc2UgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG5cdFx0Y2hpbGRyZW4uc29tZShjaGlsZCA9PiB7XG5cdFx0XHR0b0NoaWxkQXJyYXkoY2hpbGQsIG91dCk7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0b3V0LnB1c2goY2hpbGRyZW4pO1xuXHR9XG5cdHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gY2hpbGRWTm9kZVxuICogQHBhcmFtIHtWTm9kZVtdfSBvbGRDaGlsZHJlblxuICogQHBhcmFtIHtudW1iZXJ9IHNrZXdlZEluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gcmVtYWluaW5nT2xkQ2hpbGRyZW5cbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGZpbmRNYXRjaGluZ0luZGV4KFxuXHRjaGlsZFZOb2RlLFxuXHRvbGRDaGlsZHJlbixcblx0c2tld2VkSW5kZXgsXG5cdHJlbWFpbmluZ09sZENoaWxkcmVuXG4pIHtcblx0Y29uc3Qga2V5ID0gY2hpbGRWTm9kZS5rZXk7XG5cdGNvbnN0IHR5cGUgPSBjaGlsZFZOb2RlLnR5cGU7XG5cdGxldCB4ID0gc2tld2VkSW5kZXggLSAxO1xuXHRsZXQgeSA9IHNrZXdlZEluZGV4ICsgMTtcblx0bGV0IG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5bc2tld2VkSW5kZXhdO1xuXG5cdC8vIFdlIG9ubHkgbmVlZCB0byBwZXJmb3JtIGEgc2VhcmNoIGlmIHRoZXJlIGFyZSBtb3JlIGNoaWxkcmVuXG5cdC8vIChyZW1haW5pbmdPbGRDaGlsZHJlbikgdG8gc2VhcmNoLiBIb3dldmVyLCBpZiB0aGUgb2xkVk5vZGUgd2UganVzdCBsb29rZWRcblx0Ly8gYXQgc2tld2VkSW5kZXggd2FzIG5vdCBhbHJlYWR5IHVzZWQgaW4gdGhpcyBkaWZmLCB0aGVuIHRoZXJlIG11c3QgYmUgYXRcblx0Ly8gbGVhc3QgMSBvdGhlciAoc28gZ3JlYXRlciB0aGFuIDEpIHJlbWFpbmluZ09sZENoaWxkcmVuIHRvIGF0dGVtcHQgdG8gbWF0Y2hcblx0Ly8gYWdhaW5zdC4gU28gdGhlIGZvbGxvd2luZyBjb25kaXRpb24gY2hlY2tzIHRoYXQgZW5zdXJpbmdcblx0Ly8gcmVtYWluaW5nT2xkQ2hpbGRyZW4gPiAxIGlmIHRoZSBvbGRWTm9kZSBpcyBub3QgYWxyZWFkeSB1c2VkL21hdGNoZWQuIEVsc2Vcblx0Ly8gaWYgdGhlIG9sZFZOb2RlIHdhcyBudWxsIG9yIG1hdGNoZWQsIHRoZW4gdGhlcmUgY291bGQgbmVlZHMgdG8gYmUgYXQgbGVhc3Rcblx0Ly8gMSAoYWthIGByZW1haW5pbmdPbGRDaGlsZHJlbiA+IDBgKSBjaGlsZHJlbiB0byBmaW5kIGFuZCBjb21wYXJlIGFnYWluc3QuXG5cdGxldCBzaG91bGRTZWFyY2ggPVxuXHRcdHJlbWFpbmluZ09sZENoaWxkcmVuID5cblx0XHQob2xkVk5vZGUgIT0gbnVsbCAmJiAob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDAgPyAxIDogMCk7XG5cblx0aWYgKFxuXHRcdG9sZFZOb2RlID09PSBudWxsIHx8XG5cdFx0KG9sZFZOb2RlICYmXG5cdFx0XHRrZXkgPT0gb2xkVk5vZGUua2V5ICYmXG5cdFx0XHR0eXBlID09PSBvbGRWTm9kZS50eXBlICYmXG5cdFx0XHQob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDApXG5cdCkge1xuXHRcdHJldHVybiBza2V3ZWRJbmRleDtcblx0fSBlbHNlIGlmIChzaG91bGRTZWFyY2gpIHtcblx0XHR3aGlsZSAoeCA+PSAwIHx8IHkgPCBvbGRDaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdGlmICh4ID49IDApIHtcblx0XHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlblt4XTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9sZFZOb2RlICYmXG5cdFx0XHRcdFx0KG9sZFZOb2RlLl9mbGFncyAmIE1BVENIRUQpID09PSAwICYmXG5cdFx0XHRcdFx0a2V5ID09IG9sZFZOb2RlLmtleSAmJlxuXHRcdFx0XHRcdHR5cGUgPT09IG9sZFZOb2RlLnR5cGVcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0eC0tO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoeSA8IG9sZENoaWxkcmVuLmxlbmd0aCkge1xuXHRcdFx0XHRvbGRWTm9kZSA9IG9sZENoaWxkcmVuW3ldO1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0b2xkVk5vZGUgJiZcblx0XHRcdFx0XHQob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDAgJiZcblx0XHRcdFx0XHRrZXkgPT0gb2xkVk5vZGUua2V5ICYmXG5cdFx0XHRcdFx0dHlwZSA9PT0gb2xkVk5vZGUudHlwZVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4geTtcblx0XHRcdFx0fVxuXHRcdFx0XHR5Kys7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIC0xO1xufVxuIiwgImltcG9ydCB7XG5cdEVNUFRZX09CSixcblx0TU9ERV9IWURSQVRFLFxuXHRNT0RFX1NVU1BFTkRFRCxcblx0UkVTRVRfTU9ERVxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgZ2V0RG9tU2libGluZyB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJy4uL2NyZWF0ZS1lbGVtZW50JztcbmltcG9ydCB7IGRpZmZDaGlsZHJlbiB9IGZyb20gJy4vY2hpbGRyZW4nO1xuaW1wb3J0IHsgc2V0UHJvcGVydHkgfSBmcm9tICcuL3Byb3BzJztcbmltcG9ydCB7IGFzc2lnbiwgaXNBcnJheSwgcmVtb3ZlTm9kZSwgc2xpY2UgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4uL29wdGlvbnMnO1xuXG4vKipcbiAqIERpZmYgdHdvIHZpcnR1YWwgbm9kZXMgYW5kIGFwcGx5IHByb3BlciBjaGFuZ2VzIHRvIHRoZSBET01cbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gcGFyZW50RG9tIFRoZSBwYXJlbnQgb2YgdGhlIERPTSBlbGVtZW50XG4gKiBAcGFyYW0ge1ZOb2RlfSBuZXdWTm9kZSBUaGUgbmV3IHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtWTm9kZX0gb2xkVk5vZGUgVGhlIG9sZCB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBnbG9iYWxDb250ZXh0IFRoZSBjdXJyZW50IGNvbnRleHQgb2JqZWN0LiBNb2RpZmllZCBieVxuICogZ2V0Q2hpbGRDb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZXNwYWNlIEN1cnJlbnQgbmFtZXNwYWNlIG9mIHRoZSBET00gbm9kZSAoSFRNTCwgU1ZHLCBvciBNYXRoTUwpXG4gKiBAcGFyYW0ge0FycmF5PFByZWFjdEVsZW1lbnQ+fSBleGNlc3NEb21DaGlsZHJlblxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSBjYWxsYmFja3NcbiAqIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IG9sZERvbSBUaGUgY3VycmVudCBhdHRhY2hlZCBET00gZWxlbWVudCBhbnkgbmV3IGRvbVxuICogZWxlbWVudHMgc2hvdWxkIGJlIHBsYWNlZCBhcm91bmQuIExpa2VseSBgbnVsbGAgb24gZmlyc3QgcmVuZGVyIChleGNlcHQgd2hlblxuICogaHlkcmF0aW5nKS4gQ2FuIGJlIGEgc2libGluZyBET00gZWxlbWVudCB3aGVuIGRpZmZpbmcgRnJhZ21lbnRzIHRoYXQgaGF2ZVxuICogc2libGluZ3MuIEluIG1vc3QgY2FzZXMsIGl0IHN0YXJ0cyBvdXQgYXMgYG9sZENoaWxkcmVuWzBdLl9kb21gLlxuICogQHBhcmFtIHtib29sZWFufSBpc0h5ZHJhdGluZyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgaW4gaHlkcmF0aW9uXG4gKiBAcGFyYW0ge2FueVtdfSByZWZRdWV1ZSBhbiBhcnJheSBvZiBlbGVtZW50cyBuZWVkZWQgdG8gaW52b2tlIHJlZnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmYoXG5cdHBhcmVudERvbSxcblx0bmV3Vk5vZGUsXG5cdG9sZFZOb2RlLFxuXHRnbG9iYWxDb250ZXh0LFxuXHRuYW1lc3BhY2UsXG5cdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRjb21taXRRdWV1ZSxcblx0b2xkRG9tLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHQvKiogQHR5cGUge2FueX0gKi9cblx0bGV0IHRtcCxcblx0XHRuZXdUeXBlID0gbmV3Vk5vZGUudHlwZTtcblxuXHQvLyBXaGVuIHBhc3NpbmcgdGhyb3VnaCBjcmVhdGVFbGVtZW50IGl0IGFzc2lnbnMgdGhlIG9iamVjdFxuXHQvLyBjb25zdHJ1Y3RvciBhcyB1bmRlZmluZWQuIFRoaXMgdG8gcHJldmVudCBKU09OLWluamVjdGlvbi5cblx0aWYgKG5ld1ZOb2RlLmNvbnN0cnVjdG9yICE9PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuXG5cdC8vIElmIHRoZSBwcmV2aW91cyBkaWZmIGJhaWxlZCBvdXQsIHJlc3VtZSBjcmVhdGluZy9oeWRyYXRpbmcuXG5cdGlmIChvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX1NVU1BFTkRFRCkge1xuXHRcdGlzSHlkcmF0aW5nID0gISEob2xkVk5vZGUuX2ZsYWdzICYgTU9ERV9IWURSQVRFKTtcblx0XHRvbGREb20gPSBuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9IFtvbGREb21dO1xuXHR9XG5cblx0aWYgKCh0bXAgPSBvcHRpb25zLl9kaWZmKSkgdG1wKG5ld1ZOb2RlKTtcblxuXHRvdXRlcjogaWYgKHR5cGVvZiBuZXdUeXBlID09ICdmdW5jdGlvbicpIHtcblx0XHR0cnkge1xuXHRcdFx0bGV0IGMsIGlzTmV3LCBvbGRQcm9wcywgb2xkU3RhdGUsIHNuYXBzaG90LCBjbGVhclByb2Nlc3NpbmdFeGNlcHRpb247XG5cdFx0XHRsZXQgbmV3UHJvcHMgPSBuZXdWTm9kZS5wcm9wcztcblx0XHRcdGNvbnN0IGlzQ2xhc3NDb21wb25lbnQgPVxuXHRcdFx0XHQncHJvdG90eXBlJyBpbiBuZXdUeXBlICYmIG5ld1R5cGUucHJvdG90eXBlLnJlbmRlcjtcblxuXHRcdFx0Ly8gTmVjZXNzYXJ5IGZvciBjcmVhdGVDb250ZXh0IGFwaS4gU2V0dGluZyB0aGlzIHByb3BlcnR5IHdpbGwgcGFzc1xuXHRcdFx0Ly8gdGhlIGNvbnRleHQgdmFsdWUgYXMgYHRoaXMuY29udGV4dGAganVzdCBmb3IgdGhpcyBjb21wb25lbnQuXG5cdFx0XHR0bXAgPSBuZXdUeXBlLmNvbnRleHRUeXBlO1xuXHRcdFx0bGV0IHByb3ZpZGVyID0gdG1wICYmIGdsb2JhbENvbnRleHRbdG1wLl9pZF07XG5cdFx0XHRsZXQgY29tcG9uZW50Q29udGV4dCA9IHRtcFxuXHRcdFx0XHQ/IHByb3ZpZGVyXG5cdFx0XHRcdFx0PyBwcm92aWRlci5wcm9wcy52YWx1ZVxuXHRcdFx0XHRcdDogdG1wLl9kZWZhdWx0VmFsdWVcblx0XHRcdFx0OiBnbG9iYWxDb250ZXh0O1xuXG5cdFx0XHQvLyBHZXQgY29tcG9uZW50IGFuZCBzZXQgaXQgdG8gYGNgXG5cdFx0XHRpZiAob2xkVk5vZGUuX2NvbXBvbmVudCkge1xuXHRcdFx0XHRjID0gbmV3Vk5vZGUuX2NvbXBvbmVudCA9IG9sZFZOb2RlLl9jb21wb25lbnQ7XG5cdFx0XHRcdGNsZWFyUHJvY2Vzc2luZ0V4Y2VwdGlvbiA9IGMuX3Byb2Nlc3NpbmdFeGNlcHRpb24gPSBjLl9wZW5kaW5nRXJyb3I7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJbnN0YW50aWF0ZSB0aGUgbmV3IGNvbXBvbmVudFxuXHRcdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCkge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVGhlIGNoZWNrIGFib3ZlIHZlcmlmaWVzIHRoYXQgbmV3VHlwZSBpcyBzdXBwb3NlIHRvIGJlIGNvbnN0cnVjdGVkXG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2NvbXBvbmVudCA9IGMgPSBuZXcgbmV3VHlwZShuZXdQcm9wcywgY29tcG9uZW50Q29udGV4dCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVHJ1c3QgbWUsIENvbXBvbmVudCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2Ugd2Ugd2FudFxuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jb21wb25lbnQgPSBjID0gbmV3IEJhc2VDb21wb25lbnQoXG5cdFx0XHRcdFx0XHRuZXdQcm9wcyxcblx0XHRcdFx0XHRcdGNvbXBvbmVudENvbnRleHRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGMuY29uc3RydWN0b3IgPSBuZXdUeXBlO1xuXHRcdFx0XHRcdGMucmVuZGVyID0gZG9SZW5kZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3ZpZGVyKSBwcm92aWRlci5zdWIoYyk7XG5cblx0XHRcdFx0Yy5wcm9wcyA9IG5ld1Byb3BzO1xuXHRcdFx0XHRpZiAoIWMuc3RhdGUpIGMuc3RhdGUgPSB7fTtcblx0XHRcdFx0Yy5jb250ZXh0ID0gY29tcG9uZW50Q29udGV4dDtcblx0XHRcdFx0Yy5fZ2xvYmFsQ29udGV4dCA9IGdsb2JhbENvbnRleHQ7XG5cdFx0XHRcdGlzTmV3ID0gYy5fZGlydHkgPSB0cnVlO1xuXHRcdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdFx0Yy5fc3RhdGVDYWxsYmFja3MgPSBbXTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSW52b2tlIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1xuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgYy5fbmV4dFN0YXRlID09IG51bGwpIHtcblx0XHRcdFx0Yy5fbmV4dFN0YXRlID0gYy5zdGF0ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgbmV3VHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT0gbnVsbCkge1xuXHRcdFx0XHRpZiAoYy5fbmV4dFN0YXRlID09IGMuc3RhdGUpIHtcblx0XHRcdFx0XHRjLl9uZXh0U3RhdGUgPSBhc3NpZ24oe30sIGMuX25leHRTdGF0ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhc3NpZ24oXG5cdFx0XHRcdFx0Yy5fbmV4dFN0YXRlLFxuXHRcdFx0XHRcdG5ld1R5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5ld1Byb3BzLCBjLl9uZXh0U3RhdGUpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdG9sZFByb3BzID0gYy5wcm9wcztcblx0XHRcdG9sZFN0YXRlID0gYy5zdGF0ZTtcblx0XHRcdGMuX3Zub2RlID0gbmV3Vk5vZGU7XG5cblx0XHRcdC8vIEludm9rZSBwcmUtcmVuZGVyIGxpZmVjeWNsZSBtZXRob2RzXG5cdFx0XHRpZiAoaXNOZXcpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGlzQ2xhc3NDb21wb25lbnQgJiZcblx0XHRcdFx0XHRuZXdUeXBlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PSBudWxsICYmXG5cdFx0XHRcdFx0Yy5jb21wb25lbnRXaWxsTW91bnQgIT0gbnVsbFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgYy5jb21wb25lbnREaWRNb3VudCAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goYy5jb21wb25lbnREaWRNb3VudCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRpc0NsYXNzQ29tcG9uZW50ICYmXG5cdFx0XHRcdFx0bmV3VHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT0gbnVsbCAmJlxuXHRcdFx0XHRcdG5ld1Byb3BzICE9PSBvbGRQcm9wcyAmJlxuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAhPSBudWxsXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgY29tcG9uZW50Q29udGV4dCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0IWMuX2ZvcmNlICYmXG5cdFx0XHRcdFx0KChjLnNob3VsZENvbXBvbmVudFVwZGF0ZSAhPSBudWxsICYmXG5cdFx0XHRcdFx0XHRjLnNob3VsZENvbXBvbmVudFVwZGF0ZShcblx0XHRcdFx0XHRcdFx0bmV3UHJvcHMsXG5cdFx0XHRcdFx0XHRcdGMuX25leHRTdGF0ZSxcblx0XHRcdFx0XHRcdFx0Y29tcG9uZW50Q29udGV4dFxuXHRcdFx0XHRcdFx0KSA9PT0gZmFsc2UpIHx8XG5cdFx0XHRcdFx0XHRuZXdWTm9kZS5fb3JpZ2luYWwgPT09IG9sZFZOb2RlLl9vcmlnaW5hbClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Ly8gTW9yZSBpbmZvIGFib3V0IHRoaXMgaGVyZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vSm92aURlQ3Jvb2NrL2JlYzVmMmNlOTM1NDRkMmU2MDcwZWY4ZTAwMzZlNGU4XG5cdFx0XHRcdFx0aWYgKG5ld1ZOb2RlLl9vcmlnaW5hbCAhPT0gb2xkVk5vZGUuX29yaWdpbmFsKSB7XG5cdFx0XHRcdFx0XHQvLyBXaGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBiYWlsIGJlY2F1c2Ugb2Ygc0NVIHdlIGhhdmUgdG8gdXBkYXRlXG5cdFx0XHRcdFx0XHQvLyB0aGUgcHJvcHMsIHN0YXRlIGFuZCBkaXJ0eS1zdGF0ZS5cblx0XHRcdFx0XHRcdC8vIHdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBzdHJpY3QtZXF1YWxpdHkgd2UgZG9uJ3QgYXMgdGhlIGNoaWxkIGNvdWxkIHN0aWxsXG5cdFx0XHRcdFx0XHQvLyBiZSBkaXJ0aWVkIHNlZSAjMzg4M1xuXHRcdFx0XHRcdFx0Yy5wcm9wcyA9IG5ld1Byb3BzO1xuXHRcdFx0XHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblx0XHRcdFx0XHRcdGMuX2RpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2RvbSA9IG9sZFZOb2RlLl9kb207XG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbi5zb21lKHZub2RlID0+IHtcblx0XHRcdFx0XHRcdGlmICh2bm9kZSkgdm5vZGUuX3BhcmVudCA9IG5ld1ZOb2RlO1xuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjLl9zdGF0ZUNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goYy5fc3RhdGVDYWxsYmFja3NbaV0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjLl9zdGF0ZUNhbGxiYWNrcyA9IFtdO1xuXG5cdFx0XHRcdFx0aWYgKGMuX3JlbmRlckNhbGxiYWNrcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGNvbW1pdFF1ZXVlLnB1c2goYyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWsgb3V0ZXI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoYy5jb21wb25lbnRXaWxsVXBkYXRlICE9IG51bGwpIHtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxVcGRhdGUobmV3UHJvcHMsIGMuX25leHRTdGF0ZSwgY29tcG9uZW50Q29udGV4dCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCAmJiBjLmNvbXBvbmVudERpZFVwZGF0ZSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goKCkgPT4ge1xuXHRcdFx0XHRcdFx0Yy5jb21wb25lbnREaWRVcGRhdGUob2xkUHJvcHMsIG9sZFN0YXRlLCBzbmFwc2hvdCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Yy5jb250ZXh0ID0gY29tcG9uZW50Q29udGV4dDtcblx0XHRcdGMucHJvcHMgPSBuZXdQcm9wcztcblx0XHRcdGMuX3BhcmVudERvbSA9IHBhcmVudERvbTtcblx0XHRcdGMuX2ZvcmNlID0gZmFsc2U7XG5cblx0XHRcdGxldCByZW5kZXJIb29rID0gb3B0aW9ucy5fcmVuZGVyLFxuXHRcdFx0XHRjb3VudCA9IDA7XG5cdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCkge1xuXHRcdFx0XHRjLnN0YXRlID0gYy5fbmV4dFN0YXRlO1xuXHRcdFx0XHRjLl9kaXJ0eSA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChyZW5kZXJIb29rKSByZW5kZXJIb29rKG5ld1ZOb2RlKTtcblxuXHRcdFx0XHR0bXAgPSBjLnJlbmRlcihjLnByb3BzLCBjLnN0YXRlLCBjLmNvbnRleHQpO1xuXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYy5fc3RhdGVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MucHVzaChjLl9zdGF0ZUNhbGxiYWNrc1tpXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Yy5fc3RhdGVDYWxsYmFja3MgPSBbXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRjLl9kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmIChyZW5kZXJIb29rKSByZW5kZXJIb29rKG5ld1ZOb2RlKTtcblxuXHRcdFx0XHRcdHRtcCA9IGMucmVuZGVyKGMucHJvcHMsIGMuc3RhdGUsIGMuY29udGV4dCk7XG5cblx0XHRcdFx0XHQvLyBIYW5kbGUgc2V0U3RhdGUgY2FsbGVkIGluIHJlbmRlciwgc2VlICMyNTUzXG5cdFx0XHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblx0XHRcdFx0fSB3aGlsZSAoYy5fZGlydHkgJiYgKytjb3VudCA8IDI1KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSGFuZGxlIHNldFN0YXRlIGNhbGxlZCBpbiByZW5kZXIsIHNlZSAjMjU1M1xuXHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblxuXHRcdFx0aWYgKGMuZ2V0Q2hpbGRDb250ZXh0ICE9IG51bGwpIHtcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCA9IGFzc2lnbihhc3NpZ24oe30sIGdsb2JhbENvbnRleHQpLCBjLmdldENoaWxkQ29udGV4dCgpKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgIWlzTmV3ICYmIGMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgIT0gbnVsbCkge1xuXHRcdFx0XHRzbmFwc2hvdCA9IGMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUob2xkUHJvcHMsIG9sZFN0YXRlKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGlzVG9wTGV2ZWxGcmFnbWVudCA9XG5cdFx0XHRcdHRtcCAhPSBudWxsICYmIHRtcC50eXBlID09PSBGcmFnbWVudCAmJiB0bXAua2V5ID09IG51bGw7XG5cdFx0XHRsZXQgcmVuZGVyUmVzdWx0ID0gaXNUb3BMZXZlbEZyYWdtZW50ID8gdG1wLnByb3BzLmNoaWxkcmVuIDogdG1wO1xuXG5cdFx0XHRkaWZmQ2hpbGRyZW4oXG5cdFx0XHRcdHBhcmVudERvbSxcblx0XHRcdFx0aXNBcnJheShyZW5kZXJSZXN1bHQpID8gcmVuZGVyUmVzdWx0IDogW3JlbmRlclJlc3VsdF0sXG5cdFx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0XHRvbGRWTm9kZSxcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0XHRleGNlc3NEb21DaGlsZHJlbixcblx0XHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRcdG9sZERvbSxcblx0XHRcdFx0aXNIeWRyYXRpbmcsXG5cdFx0XHRcdHJlZlF1ZXVlXG5cdFx0XHQpO1xuXG5cdFx0XHRjLmJhc2UgPSBuZXdWTm9kZS5fZG9tO1xuXG5cdFx0XHQvLyBXZSBzdWNjZXNzZnVsbHkgcmVuZGVyZWQgdGhpcyBWTm9kZSwgdW5zZXQgYW55IHN0b3JlZCBoeWRyYXRpb24vYmFpbG91dCBzdGF0ZTpcblx0XHRcdG5ld1ZOb2RlLl9mbGFncyAmPSBSRVNFVF9NT0RFO1xuXG5cdFx0XHRpZiAoYy5fcmVuZGVyQ2FsbGJhY2tzLmxlbmd0aCkge1xuXHRcdFx0XHRjb21taXRRdWV1ZS5wdXNoKGMpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY2xlYXJQcm9jZXNzaW5nRXhjZXB0aW9uKSB7XG5cdFx0XHRcdGMuX3BlbmRpbmdFcnJvciA9IGMuX3Byb2Nlc3NpbmdFeGNlcHRpb24gPSBudWxsO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdG5ld1ZOb2RlLl9vcmlnaW5hbCA9IG51bGw7XG5cdFx0XHQvLyBpZiBoeWRyYXRpbmcgb3IgY3JlYXRpbmcgaW5pdGlhbCB0cmVlLCBiYWlsb3V0IHByZXNlcnZlcyBET006XG5cdFx0XHRpZiAoaXNIeWRyYXRpbmcgfHwgZXhjZXNzRG9tQ2hpbGRyZW4gIT0gbnVsbCkge1xuXHRcdFx0XHRuZXdWTm9kZS5fZmxhZ3MgfD0gaXNIeWRyYXRpbmdcblx0XHRcdFx0XHQ/IE1PREVfSFlEUkFURSB8IE1PREVfU1VTUEVOREVEXG5cdFx0XHRcdFx0OiBNT0RFX1NVU1BFTkRFRDtcblxuXHRcdFx0XHR3aGlsZSAob2xkRG9tICYmIG9sZERvbS5ub2RlVHlwZSA9PT0gOCAmJiBvbGREb20ubmV4dFNpYmxpbmcpIHtcblx0XHRcdFx0XHRvbGREb20gPSBvbGREb20ubmV4dFNpYmxpbmc7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW5bZXhjZXNzRG9tQ2hpbGRyZW4uaW5kZXhPZihvbGREb20pXSA9IG51bGw7XG5cdFx0XHRcdG5ld1ZOb2RlLl9kb20gPSBvbGREb207XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0XHRcdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdFx0fVxuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBuZXdWTm9kZSwgb2xkVk5vZGUpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9PSBudWxsICYmXG5cdFx0bmV3Vk5vZGUuX29yaWdpbmFsID09PSBvbGRWTm9kZS5fb3JpZ2luYWxcblx0KSB7XG5cdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdG5ld1ZOb2RlLl9kb20gPSBvbGRWTm9kZS5fZG9tO1xuXHR9IGVsc2Uge1xuXHRcdG5ld1ZOb2RlLl9kb20gPSBkaWZmRWxlbWVudE5vZGVzKFxuXHRcdFx0b2xkVk5vZGUuX2RvbSxcblx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRnbG9iYWxDb250ZXh0LFxuXHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXHR9XG5cblx0aWYgKCh0bXAgPSBvcHRpb25zLmRpZmZlZCkpIHRtcChuZXdWTm9kZSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHNcbiAqIHdoaWNoIGhhdmUgY2FsbGJhY2tzIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge1ZOb2RlfSByb290XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRSb290KGNvbW1pdFF1ZXVlLCByb290LCByZWZRdWV1ZSkge1xuXHRyb290Ll9uZXh0RG9tID0gdW5kZWZpbmVkO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcmVmUXVldWUubGVuZ3RoOyBpKyspIHtcblx0XHRhcHBseVJlZihyZWZRdWV1ZVtpXSwgcmVmUXVldWVbKytpXSwgcmVmUXVldWVbKytpXSk7XG5cdH1cblxuXHRpZiAob3B0aW9ucy5fY29tbWl0KSBvcHRpb25zLl9jb21taXQocm9vdCwgY29tbWl0UXVldWUpO1xuXG5cdGNvbW1pdFF1ZXVlLnNvbWUoYyA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgUmV1c2UgdGhlIGNvbW1pdFF1ZXVlIHZhcmlhYmxlIGhlcmUgc28gdGhlIHR5cGUgY2hhbmdlc1xuXHRcdFx0Y29tbWl0UXVldWUgPSBjLl9yZW5kZXJDYWxsYmFja3M7XG5cdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdGNvbW1pdFF1ZXVlLnNvbWUoY2IgPT4ge1xuXHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFNlZSBhYm92ZSBjb21tZW50IG9uIGNvbW1pdFF1ZXVlXG5cdFx0XHRcdGNiLmNhbGwoYyk7XG5cdFx0XHR9KTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIGMuX3Zub2RlKTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIERpZmYgdHdvIHZpcnR1YWwgbm9kZXMgcmVwcmVzZW50aW5nIERPTSBlbGVtZW50XG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IGRvbSBUaGUgRE9NIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSB2aXJ0dWFsIG5vZGVzXG4gKiBiZWluZyBkaWZmZWRcbiAqIEBwYXJhbSB7Vk5vZGV9IG5ld1ZOb2RlIFRoZSBuZXcgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge1ZOb2RlfSBvbGRWTm9kZSBUaGUgb2xkIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtvYmplY3R9IGdsb2JhbENvbnRleHQgVGhlIGN1cnJlbnQgY29udGV4dCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgQ3VycmVudCBuYW1lc3BhY2Ugb2YgdGhlIERPTSBub2RlIChIVE1MLCBTVkcsIG9yIE1hdGhNTClcbiAqIEBwYXJhbSB7QXJyYXk8UHJlYWN0RWxlbWVudD59IGV4Y2Vzc0RvbUNoaWxkcmVuXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudD59IGNvbW1pdFF1ZXVlIExpc3Qgb2YgY29tcG9uZW50cyB3aGljaCBoYXZlIGNhbGxiYWNrc1xuICogdG8gaW52b2tlIGluIGNvbW1pdFJvb3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNIeWRyYXRpbmcgV2hldGhlciBvciBub3Qgd2UgYXJlIGluIGh5ZHJhdGlvblxuICogQHBhcmFtIHthbnlbXX0gcmVmUXVldWUgYW4gYXJyYXkgb2YgZWxlbWVudHMgbmVlZGVkIHRvIGludm9rZSByZWZzXG4gKiBAcmV0dXJucyB7UHJlYWN0RWxlbWVudH1cbiAqL1xuZnVuY3Rpb24gZGlmZkVsZW1lbnROb2Rlcyhcblx0ZG9tLFxuXHRuZXdWTm9kZSxcblx0b2xkVk5vZGUsXG5cdGdsb2JhbENvbnRleHQsXG5cdG5hbWVzcGFjZSxcblx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdGNvbW1pdFF1ZXVlLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHRsZXQgb2xkUHJvcHMgPSBvbGRWTm9kZS5wcm9wcztcblx0bGV0IG5ld1Byb3BzID0gbmV3Vk5vZGUucHJvcHM7XG5cdGxldCBub2RlVHlwZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAobmV3Vk5vZGUudHlwZSk7XG5cdC8qKiBAdHlwZSB7YW55fSAqL1xuXHRsZXQgaTtcblx0LyoqIEB0eXBlIHt7IF9faHRtbD86IHN0cmluZyB9fSAqL1xuXHRsZXQgbmV3SHRtbDtcblx0LyoqIEB0eXBlIHt7IF9faHRtbD86IHN0cmluZyB9fSAqL1xuXHRsZXQgb2xkSHRtbDtcblx0LyoqIEB0eXBlIHtDb21wb25lbnRDaGlsZHJlbn0gKi9cblx0bGV0IG5ld0NoaWxkcmVuO1xuXHRsZXQgdmFsdWU7XG5cdGxldCBpbnB1dFZhbHVlO1xuXHRsZXQgY2hlY2tlZDtcblxuXHQvLyBUcmFja3MgZW50ZXJpbmcgYW5kIGV4aXRpbmcgbmFtZXNwYWNlcyB3aGVuIGRlc2NlbmRpbmcgdGhyb3VnaCB0aGUgdHJlZS5cblx0aWYgKG5vZGVUeXBlID09PSAnc3ZnJykgbmFtZXNwYWNlID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcblx0ZWxzZSBpZiAobm9kZVR5cGUgPT09ICdtYXRoJylcblx0XHRuYW1lc3BhY2UgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCc7XG5cdGVsc2UgaWYgKCFuYW1lc3BhY2UpIG5hbWVzcGFjZSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJztcblxuXHRpZiAoZXhjZXNzRG9tQ2hpbGRyZW4gIT0gbnVsbCkge1xuXHRcdGZvciAoaSA9IDA7IGkgPCBleGNlc3NEb21DaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFsdWUgPSBleGNlc3NEb21DaGlsZHJlbltpXTtcblxuXHRcdFx0Ly8gaWYgbmV3Vk5vZGUgbWF0Y2hlcyBhbiBlbGVtZW50IGluIGV4Y2Vzc0RvbUNoaWxkcmVuIG9yIHRoZSBgZG9tYFxuXHRcdFx0Ly8gYXJndW1lbnQgbWF0Y2hlcyBhbiBlbGVtZW50IGluIGV4Y2Vzc0RvbUNoaWxkcmVuLCByZW1vdmUgaXQgZnJvbVxuXHRcdFx0Ly8gZXhjZXNzRG9tQ2hpbGRyZW4gc28gaXQgaXNuJ3QgbGF0ZXIgcmVtb3ZlZCBpbiBkaWZmQ2hpbGRyZW5cblx0XHRcdGlmIChcblx0XHRcdFx0dmFsdWUgJiZcblx0XHRcdFx0J3NldEF0dHJpYnV0ZScgaW4gdmFsdWUgPT09ICEhbm9kZVR5cGUgJiZcblx0XHRcdFx0KG5vZGVUeXBlID8gdmFsdWUubG9jYWxOYW1lID09PSBub2RlVHlwZSA6IHZhbHVlLm5vZGVUeXBlID09PSAzKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGRvbSA9IHZhbHVlO1xuXHRcdFx0XHRleGNlc3NEb21DaGlsZHJlbltpXSA9IG51bGw7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmIChkb20gPT0gbnVsbCkge1xuXHRcdGlmIChub2RlVHlwZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld1Byb3BzKTtcblx0XHR9XG5cblx0XHRkb20gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXG5cdFx0XHRuYW1lc3BhY2UsXG5cdFx0XHRub2RlVHlwZSxcblx0XHRcdG5ld1Byb3BzLmlzICYmIG5ld1Byb3BzXG5cdFx0KTtcblxuXHRcdC8vIHdlIGFyZSBjcmVhdGluZyBhIG5ldyBub2RlLCBzbyB3ZSBjYW4gYXNzdW1lIHRoaXMgaXMgYSBuZXcgc3VidHJlZSAoaW5cblx0XHQvLyBjYXNlIHdlIGFyZSBoeWRyYXRpbmcpLCB0aGlzIGRlb3B0cyB0aGUgaHlkcmF0ZVxuXHRcdGlmIChpc0h5ZHJhdGluZykge1xuXHRcdFx0aWYgKG9wdGlvbnMuX2h5ZHJhdGlvbk1pc21hdGNoKVxuXHRcdFx0XHRvcHRpb25zLl9oeWRyYXRpb25NaXNtYXRjaChuZXdWTm9kZSwgZXhjZXNzRG9tQ2hpbGRyZW4pO1xuXHRcdFx0aXNIeWRyYXRpbmcgPSBmYWxzZTtcblx0XHR9XG5cdFx0Ly8gd2UgY3JlYXRlZCBhIG5ldyBwYXJlbnQsIHNvIG5vbmUgb2YgdGhlIHByZXZpb3VzbHkgYXR0YWNoZWQgY2hpbGRyZW4gY2FuIGJlIHJldXNlZDpcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9IG51bGw7XG5cdH1cblxuXHRpZiAobm9kZVR5cGUgPT09IG51bGwpIHtcblx0XHQvLyBEdXJpbmcgaHlkcmF0aW9uLCB3ZSBzdGlsbCBoYXZlIHRvIHNwbGl0IG1lcmdlZCB0ZXh0IGZyb20gU1NSJ2QgSFRNTC5cblx0XHRpZiAob2xkUHJvcHMgIT09IG5ld1Byb3BzICYmICghaXNIeWRyYXRpbmcgfHwgZG9tLmRhdGEgIT09IG5ld1Byb3BzKSkge1xuXHRcdFx0ZG9tLmRhdGEgPSBuZXdQcm9wcztcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSWYgZXhjZXNzRG9tQ2hpbGRyZW4gd2FzIG5vdCBudWxsLCByZXBvcHVsYXRlIGl0IHdpdGggdGhlIGN1cnJlbnQgZWxlbWVudCdzIGNoaWxkcmVuOlxuXHRcdGV4Y2Vzc0RvbUNoaWxkcmVuID0gZXhjZXNzRG9tQ2hpbGRyZW4gJiYgc2xpY2UuY2FsbChkb20uY2hpbGROb2Rlcyk7XG5cblx0XHRvbGRQcm9wcyA9IG9sZFZOb2RlLnByb3BzIHx8IEVNUFRZX09CSjtcblxuXHRcdC8vIElmIHdlIGFyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZSB3ZSBhcmUgbm90IGh5ZHJhdGluZyBidXQgYXJlIHVzaW5nXG5cdFx0Ly8gZXhpc3RpbmcgRE9NIChlLmcuIHJlcGxhY2VOb2RlKSB3ZSBzaG91bGQgcmVhZCB0aGUgZXhpc3RpbmcgRE9NXG5cdFx0Ly8gYXR0cmlidXRlcyB0byBkaWZmIHRoZW1cblx0XHRpZiAoIWlzSHlkcmF0aW5nICYmIGV4Y2Vzc0RvbUNoaWxkcmVuICE9IG51bGwpIHtcblx0XHRcdG9sZFByb3BzID0ge307XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgZG9tLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dmFsdWUgPSBkb20uYXR0cmlidXRlc1tpXTtcblx0XHRcdFx0b2xkUHJvcHNbdmFsdWUubmFtZV0gPSB2YWx1ZS52YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgaW4gb2xkUHJvcHMpIHtcblx0XHRcdHZhbHVlID0gb2xkUHJvcHNbaV07XG5cdFx0XHRpZiAoaSA9PSAnY2hpbGRyZW4nKSB7XG5cdFx0XHR9IGVsc2UgaWYgKGkgPT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykge1xuXHRcdFx0XHRvbGRIdG1sID0gdmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKCEoaSBpbiBuZXdQcm9wcykpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdChpID09ICd2YWx1ZScgJiYgJ2RlZmF1bHRWYWx1ZScgaW4gbmV3UHJvcHMpIHx8XG5cdFx0XHRcdFx0KGkgPT0gJ2NoZWNrZWQnICYmICdkZWZhdWx0Q2hlY2tlZCcgaW4gbmV3UHJvcHMpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNldFByb3BlcnR5KGRvbSwgaSwgbnVsbCwgdmFsdWUsIG5hbWVzcGFjZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRHVyaW5nIGh5ZHJhdGlvbiwgcHJvcHMgYXJlIG5vdCBkaWZmZWQgYXQgYWxsIChpbmNsdWRpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpXG5cdFx0Ly8gQFRPRE8gd2Ugc2hvdWxkIHdhcm4gaW4gZGVidWcgbW9kZSB3aGVuIHByb3BzIGRvbid0IG1hdGNoIGhlcmUuXG5cdFx0Zm9yIChpIGluIG5ld1Byb3BzKSB7XG5cdFx0XHR2YWx1ZSA9IG5ld1Byb3BzW2ldO1xuXHRcdFx0aWYgKGkgPT0gJ2NoaWxkcmVuJykge1xuXHRcdFx0XHRuZXdDaGlsZHJlbiA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcpIHtcblx0XHRcdFx0bmV3SHRtbCA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICd2YWx1ZScpIHtcblx0XHRcdFx0aW5wdXRWYWx1ZSA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICdjaGVja2VkJykge1xuXHRcdFx0XHRjaGVja2VkID0gdmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHQoIWlzSHlkcmF0aW5nIHx8IHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSAmJlxuXHRcdFx0XHRvbGRQcm9wc1tpXSAhPT0gdmFsdWVcblx0XHRcdCkge1xuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIHZhbHVlLCBvbGRQcm9wc1tpXSwgbmFtZXNwYWNlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgbmV3IHZub2RlIGRpZG4ndCBoYXZlIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLCBkaWZmIGl0cyBjaGlsZHJlblxuXHRcdGlmIChuZXdIdG1sKSB7XG5cdFx0XHQvLyBBdm9pZCByZS1hcHBseWluZyB0aGUgc2FtZSAnX19odG1sJyBpZiBpdCBkaWQgbm90IGNoYW5nZWQgYmV0d2VlbiByZS1yZW5kZXJcblx0XHRcdGlmIChcblx0XHRcdFx0IWlzSHlkcmF0aW5nICYmXG5cdFx0XHRcdCghb2xkSHRtbCB8fFxuXHRcdFx0XHRcdChuZXdIdG1sLl9faHRtbCAhPT0gb2xkSHRtbC5fX2h0bWwgJiZcblx0XHRcdFx0XHRcdG5ld0h0bWwuX19odG1sICE9PSBkb20uaW5uZXJIVE1MKSlcblx0XHRcdCkge1xuXHRcdFx0XHRkb20uaW5uZXJIVE1MID0gbmV3SHRtbC5fX2h0bWw7XG5cdFx0XHR9XG5cblx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IFtdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAob2xkSHRtbCkgZG9tLmlubmVySFRNTCA9ICcnO1xuXG5cdFx0XHRkaWZmQ2hpbGRyZW4oXG5cdFx0XHRcdGRvbSxcblx0XHRcdFx0aXNBcnJheShuZXdDaGlsZHJlbikgPyBuZXdDaGlsZHJlbiA6IFtuZXdDaGlsZHJlbl0sXG5cdFx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0XHRvbGRWTm9kZSxcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdFx0bm9kZVR5cGUgPT09ICdmb3JlaWduT2JqZWN0J1xuXHRcdFx0XHRcdD8gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnXG5cdFx0XHRcdFx0OiBuYW1lc3BhY2UsXG5cdFx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRcdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW5cblx0XHRcdFx0XHQ/IGV4Y2Vzc0RvbUNoaWxkcmVuWzBdXG5cdFx0XHRcdFx0OiBvbGRWTm9kZS5fY2hpbGRyZW4gJiYgZ2V0RG9tU2libGluZyhvbGRWTm9kZSwgMCksXG5cdFx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0XHRyZWZRdWV1ZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gUmVtb3ZlIGNoaWxkcmVuIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGFueSB2bm9kZS5cblx0XHRcdGlmIChleGNlc3NEb21DaGlsZHJlbiAhPSBudWxsKSB7XG5cdFx0XHRcdGZvciAoaSA9IGV4Y2Vzc0RvbUNoaWxkcmVuLmxlbmd0aDsgaS0tOyApIHtcblx0XHRcdFx0XHRyZW1vdmVOb2RlKGV4Y2Vzc0RvbUNoaWxkcmVuW2ldKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFzIGFib3ZlLCBkb24ndCBkaWZmIHByb3BzIGR1cmluZyBoeWRyYXRpb25cblx0XHRpZiAoIWlzSHlkcmF0aW5nKSB7XG5cdFx0XHRpID0gJ3ZhbHVlJztcblx0XHRcdGlmIChub2RlVHlwZSA9PT0gJ3Byb2dyZXNzJyAmJiBpbnB1dFZhbHVlID09IG51bGwpIHtcblx0XHRcdFx0ZG9tLnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTtcblx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdGlucHV0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHQvLyAjMjc1NiBGb3IgdGhlIDxwcm9ncmVzcz4tZWxlbWVudCB0aGUgaW5pdGlhbCB2YWx1ZSBpcyAwLFxuXHRcdFx0XHQvLyBkZXNwaXRlIHRoZSBhdHRyaWJ1dGUgbm90IGJlaW5nIHByZXNlbnQuIFdoZW4gdGhlIGF0dHJpYnV0ZVxuXHRcdFx0XHQvLyBpcyBtaXNzaW5nIHRoZSBwcm9ncmVzcyBiYXIgaXMgdHJlYXRlZCBhcyBpbmRldGVybWluYXRlLlxuXHRcdFx0XHQvLyBUbyBmaXggdGhhdCB3ZSdsbCBhbHdheXMgdXBkYXRlIGl0IHdoZW4gaXQgaXMgMCBmb3IgcHJvZ3Jlc3MgZWxlbWVudHNcblx0XHRcdFx0KGlucHV0VmFsdWUgIT09IGRvbVtpXSB8fFxuXHRcdFx0XHRcdChub2RlVHlwZSA9PT0gJ3Byb2dyZXNzJyAmJiAhaW5wdXRWYWx1ZSkgfHxcblx0XHRcdFx0XHQvLyBUaGlzIGlzIG9ubHkgZm9yIElFIDExIHRvIGZpeCA8c2VsZWN0PiB2YWx1ZSBub3QgYmVpbmcgdXBkYXRlZC5cblx0XHRcdFx0XHQvLyBUbyBhdm9pZCBhIHN0YWxlIHNlbGVjdCB2YWx1ZSB3ZSBuZWVkIHRvIHNldCB0aGUgb3B0aW9uLnZhbHVlXG5cdFx0XHRcdFx0Ly8gYWdhaW4sIHdoaWNoIHRyaWdnZXJzIElFMTEgdG8gcmUtZXZhbHVhdGUgdGhlIHNlbGVjdCB2YWx1ZVxuXHRcdFx0XHRcdChub2RlVHlwZSA9PT0gJ29wdGlvbicgJiYgaW5wdXRWYWx1ZSAhPT0gb2xkUHJvcHNbaV0pKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHNldFByb3BlcnR5KGRvbSwgaSwgaW5wdXRWYWx1ZSwgb2xkUHJvcHNbaV0sIG5hbWVzcGFjZSk7XG5cdFx0XHR9XG5cblx0XHRcdGkgPSAnY2hlY2tlZCc7XG5cdFx0XHRpZiAoY2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmIGNoZWNrZWQgIT09IGRvbVtpXSkge1xuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIGNoZWNrZWQsIG9sZFByb3BzW2ldLCBuYW1lc3BhY2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBkb207XG59XG5cbi8qKlxuICogSW52b2tlIG9yIHVwZGF0ZSBhIHJlZiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaXMgYSBmdW5jdGlvbiBvciBvYmplY3QgcmVmLlxuICogQHBhcmFtIHtSZWY8YW55PiAmIHsgX3VubW91bnQ/OiB1bmtub3duIH19IHJlZlxuICogQHBhcmFtIHthbnl9IHZhbHVlXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlSZWYocmVmLCB2YWx1ZSwgdm5vZGUpIHtcblx0dHJ5IHtcblx0XHRpZiAodHlwZW9mIHJlZiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgaGFzUmVmVW5tb3VudCA9IHR5cGVvZiByZWYuX3VubW91bnQgPT0gJ2Z1bmN0aW9uJztcblx0XHRcdGlmIChoYXNSZWZVbm1vdW50KSB7XG5cdFx0XHRcdC8vIEB0cy1pZ25vcmUgVFMgZG9lc24ndCBsaWtlIG1vdmluZyBuYXJyb3dpbmcgY2hlY2tzIGludG8gdmFyaWFibGVzXG5cdFx0XHRcdHJlZi5fdW5tb3VudCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWhhc1JlZlVubW91bnQgfHwgdmFsdWUgIT0gbnVsbCkge1xuXHRcdFx0XHQvLyBTdG9yZSB0aGUgY2xlYW51cCBmdW5jdGlvbiBvbiB0aGUgZnVuY3Rpb25cblx0XHRcdFx0Ly8gaW5zdGFuY2Ugb2JqZWN0IGl0c2VsZiB0byBhdm9pZCBzaGFwZVxuXHRcdFx0XHQvLyB0cmFuc2l0aW9uaW5nIHZub2RlXG5cdFx0XHRcdHJlZi5fdW5tb3VudCA9IHJlZih2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHJlZi5jdXJyZW50ID0gdmFsdWU7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIHZub2RlKTtcblx0fVxufVxuXG4vKipcbiAqIFVubW91bnQgYSB2aXJ0dWFsIG5vZGUgZnJvbSB0aGUgdHJlZSBhbmQgYXBwbHkgRE9NIGNoYW5nZXNcbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gdW5tb3VudFxuICogQHBhcmFtIHtWTm9kZX0gcGFyZW50Vk5vZGUgVGhlIHBhcmVudCBvZiB0aGUgVk5vZGUgdGhhdCBpbml0aWF0ZWQgdGhlIHVubW91bnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBSZW1vdmVdIEZsYWcgdGhhdCBpbmRpY2F0ZXMgdGhhdCBhIHBhcmVudCBub2RlIG9mIHRoZVxuICogY3VycmVudCBlbGVtZW50IGlzIGFscmVhZHkgZGV0YWNoZWQgZnJvbSB0aGUgRE9NLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5tb3VudCh2bm9kZSwgcGFyZW50Vk5vZGUsIHNraXBSZW1vdmUpIHtcblx0bGV0IHI7XG5cdGlmIChvcHRpb25zLnVubW91bnQpIG9wdGlvbnMudW5tb3VudCh2bm9kZSk7XG5cblx0aWYgKChyID0gdm5vZGUucmVmKSkge1xuXHRcdGlmICghci5jdXJyZW50IHx8IHIuY3VycmVudCA9PT0gdm5vZGUuX2RvbSkge1xuXHRcdFx0YXBwbHlSZWYociwgbnVsbCwgcGFyZW50Vk5vZGUpO1xuXHRcdH1cblx0fVxuXG5cdGlmICgociA9IHZub2RlLl9jb21wb25lbnQpICE9IG51bGwpIHtcblx0XHRpZiAoci5jb21wb25lbnRXaWxsVW5tb3VudCkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ci5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIHBhcmVudFZOb2RlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyLmJhc2UgPSByLl9wYXJlbnREb20gPSBudWxsO1xuXHR9XG5cblx0aWYgKChyID0gdm5vZGUuX2NoaWxkcmVuKSkge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgci5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKHJbaV0pIHtcblx0XHRcdFx0dW5tb3VudChcblx0XHRcdFx0XHRyW2ldLFxuXHRcdFx0XHRcdHBhcmVudFZOb2RlLFxuXHRcdFx0XHRcdHNraXBSZW1vdmUgfHwgdHlwZW9mIHZub2RlLnR5cGUgIT0gJ2Z1bmN0aW9uJ1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmICghc2tpcFJlbW92ZSkge1xuXHRcdHJlbW92ZU5vZGUodm5vZGUuX2RvbSk7XG5cdH1cblxuXHQvLyBNdXN0IGJlIHNldCB0byBgdW5kZWZpbmVkYCB0byBwcm9wZXJseSBjbGVhbiB1cCBgX25leHREb21gXG5cdC8vIGZvciB3aGljaCBgbnVsbGAgaXMgYSB2YWxpZCB2YWx1ZS4gU2VlIGNvbW1lbnQgaW4gYGNyZWF0ZS1lbGVtZW50LmpzYFxuXHR2bm9kZS5fY29tcG9uZW50ID0gdm5vZGUuX3BhcmVudCA9IHZub2RlLl9kb20gPSB2bm9kZS5fbmV4dERvbSA9IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBgLnJlbmRlcigpYCBtZXRob2QgZm9yIGEgUEZDIGJhY2tpbmcgaW5zdGFuY2UuICovXG5mdW5jdGlvbiBkb1JlbmRlcihwcm9wcywgc3RhdGUsIGNvbnRleHQpIHtcblx0cmV0dXJuIHRoaXMuY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpO1xufVxuIiwgImltcG9ydCB7IEVNUFRZX09CSiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNvbW1pdFJvb3QsIGRpZmYgfSBmcm9tICcuL2RpZmYvaW5kZXgnO1xuaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgRnJhZ21lbnQgfSBmcm9tICcuL2NyZWF0ZS1lbGVtZW50JztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBzbGljZSB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogUmVuZGVyIGEgUHJlYWN0IHZpcnR1YWwgbm9kZSBpbnRvIGEgRE9NIGVsZW1lbnRcbiAqIEBwYXJhbSB7Q29tcG9uZW50Q2hpbGR9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbSBUaGUgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIGludG9cbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudCB8IG9iamVjdH0gW3JlcGxhY2VOb2RlXSBPcHRpb25hbDogQXR0ZW1wdCB0byByZS11c2UgYW5cbiAqIGV4aXN0aW5nIERPTSB0cmVlIHJvb3RlZCBhdCBgcmVwbGFjZU5vZGVgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIodm5vZGUsIHBhcmVudERvbSwgcmVwbGFjZU5vZGUpIHtcblx0aWYgKG9wdGlvbnMuX3Jvb3QpIG9wdGlvbnMuX3Jvb3Qodm5vZGUsIHBhcmVudERvbSk7XG5cblx0Ly8gV2UgYWJ1c2UgdGhlIGByZXBsYWNlTm9kZWAgcGFyYW1ldGVyIGluIGBoeWRyYXRlKClgIHRvIHNpZ25hbCBpZiB3ZSBhcmUgaW5cblx0Ly8gaHlkcmF0aW9uIG1vZGUgb3Igbm90IGJ5IHBhc3NpbmcgdGhlIGBoeWRyYXRlYCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgRE9NXG5cdC8vIGVsZW1lbnQuLlxuXHRsZXQgaXNIeWRyYXRpbmcgPSB0eXBlb2YgcmVwbGFjZU5vZGUgPT0gJ2Z1bmN0aW9uJztcblxuXHQvLyBUbyBiZSBhYmxlIHRvIHN1cHBvcnQgY2FsbGluZyBgcmVuZGVyKClgIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lXG5cdC8vIERPTSBub2RlLCB3ZSBuZWVkIHRvIG9idGFpbiBhIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXMgdHJlZS4gV2UgZG9cblx0Ly8gdGhpcyBieSBhc3NpZ25pbmcgYSBuZXcgYF9jaGlsZHJlbmAgcHJvcGVydHkgdG8gRE9NIG5vZGVzIHdoaWNoIHBvaW50c1xuXHQvLyB0byB0aGUgbGFzdCByZW5kZXJlZCB0cmVlLiBCeSBkZWZhdWx0IHRoaXMgcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIHdoaWNoXG5cdC8vIG1lYW5zIHRoYXQgd2UgYXJlIG1vdW50aW5nIGEgbmV3IHRyZWUgZm9yIHRoZSBmaXJzdCB0aW1lLlxuXHRsZXQgb2xkVk5vZGUgPSBpc0h5ZHJhdGluZ1xuXHRcdD8gbnVsbFxuXHRcdDogKHJlcGxhY2VOb2RlICYmIHJlcGxhY2VOb2RlLl9jaGlsZHJlbikgfHwgcGFyZW50RG9tLl9jaGlsZHJlbjtcblxuXHR2bm9kZSA9ICgoIWlzSHlkcmF0aW5nICYmIHJlcGxhY2VOb2RlKSB8fCBwYXJlbnREb20pLl9jaGlsZHJlbiA9XG5cdFx0Y3JlYXRlRWxlbWVudChGcmFnbWVudCwgbnVsbCwgW3Zub2RlXSk7XG5cblx0Ly8gTGlzdCBvZiBlZmZlY3RzIHRoYXQgbmVlZCB0byBiZSBjYWxsZWQgYWZ0ZXIgZGlmZmluZy5cblx0bGV0IGNvbW1pdFF1ZXVlID0gW10sXG5cdFx0cmVmUXVldWUgPSBbXTtcblx0ZGlmZihcblx0XHRwYXJlbnREb20sXG5cdFx0Ly8gRGV0ZXJtaW5lIHRoZSBuZXcgdm5vZGUgdHJlZSBhbmQgc3RvcmUgaXQgb24gdGhlIERPTSBlbGVtZW50IG9uXG5cdFx0Ly8gb3VyIGN1c3RvbSBgX2NoaWxkcmVuYCBwcm9wZXJ0eS5cblx0XHR2bm9kZSxcblx0XHRvbGRWTm9kZSB8fCBFTVBUWV9PQkosXG5cdFx0RU1QVFlfT0JKLFxuXHRcdHBhcmVudERvbS5uYW1lc3BhY2VVUkksXG5cdFx0IWlzSHlkcmF0aW5nICYmIHJlcGxhY2VOb2RlXG5cdFx0XHQ/IFtyZXBsYWNlTm9kZV1cblx0XHRcdDogb2xkVk5vZGVcblx0XHRcdFx0PyBudWxsXG5cdFx0XHRcdDogcGFyZW50RG9tLmZpcnN0Q2hpbGRcblx0XHRcdFx0XHQ/IHNsaWNlLmNhbGwocGFyZW50RG9tLmNoaWxkTm9kZXMpXG5cdFx0XHRcdFx0OiBudWxsLFxuXHRcdGNvbW1pdFF1ZXVlLFxuXHRcdCFpc0h5ZHJhdGluZyAmJiByZXBsYWNlTm9kZVxuXHRcdFx0PyByZXBsYWNlTm9kZVxuXHRcdFx0OiBvbGRWTm9kZVxuXHRcdFx0XHQ/IG9sZFZOb2RlLl9kb21cblx0XHRcdFx0OiBwYXJlbnREb20uZmlyc3RDaGlsZCxcblx0XHRpc0h5ZHJhdGluZyxcblx0XHRyZWZRdWV1ZVxuXHQpO1xuXG5cdC8vIEZsdXNoIGFsbCBxdWV1ZWQgZWZmZWN0c1xuXHRjb21taXRSb290KGNvbW1pdFF1ZXVlLCB2bm9kZSwgcmVmUXVldWUpO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhbiBleGlzdGluZyBET00gZWxlbWVudCB3aXRoIGRhdGEgZnJvbSBhIFByZWFjdCB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7Q29tcG9uZW50Q2hpbGR9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbSBUaGUgRE9NIGVsZW1lbnQgdG8gdXBkYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoeWRyYXRlKHZub2RlLCBwYXJlbnREb20pIHtcblx0cmVuZGVyKHZub2RlLCBwYXJlbnREb20sIGh5ZHJhdGUpO1xufVxuIiwgImltcG9ydCB7IGFzc2lnbiwgc2xpY2UgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgY3JlYXRlVk5vZGUgfSBmcm9tICcuL2NyZWF0ZS1lbGVtZW50JztcblxuLyoqXG4gKiBDbG9uZXMgdGhlIGdpdmVuIFZOb2RlLCBvcHRpb25hbGx5IGFkZGluZyBhdHRyaWJ1dGVzL3Byb3BzIGFuZCByZXBsYWNpbmcgaXRzXG4gKiBjaGlsZHJlbi5cbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlIFRoZSB2aXJ0dWFsIERPTSBlbGVtZW50IHRvIGNsb25lXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgQXR0cmlidXRlcy9wcm9wcyB0byBhZGQgd2hlbiBjbG9uaW5nXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudENoaWxkcmVuPn0gcmVzdCBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgd2lsbCBiZSB1c2VkXG4gKiBhcyByZXBsYWNlbWVudCBjaGlsZHJlbi5cbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lRWxlbWVudCh2bm9kZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSBhc3NpZ24oe30sIHZub2RlLnByb3BzKSxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdGk7XG5cblx0bGV0IGRlZmF1bHRQcm9wcztcblxuXHRpZiAodm5vZGUudHlwZSAmJiB2bm9kZS50eXBlLmRlZmF1bHRQcm9wcykge1xuXHRcdGRlZmF1bHRQcm9wcyA9IHZub2RlLnR5cGUuZGVmYXVsdFByb3BzO1xuXHR9XG5cblx0Zm9yIChpIGluIHByb3BzKSB7XG5cdFx0aWYgKGkgPT0gJ2tleScpIGtleSA9IHByb3BzW2ldO1xuXHRcdGVsc2UgaWYgKGkgPT0gJ3JlZicpIHJlZiA9IHByb3BzW2ldO1xuXHRcdGVsc2UgaWYgKHByb3BzW2ldID09PSB1bmRlZmluZWQgJiYgZGVmYXVsdFByb3BzICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG5vcm1hbGl6ZWRQcm9wc1tpXSA9IGRlZmF1bHRQcm9wc1tpXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gcHJvcHNbaV07XG5cdFx0fVxuXHR9XG5cblx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNoaWxkcmVuID1cblx0XHRcdGFyZ3VtZW50cy5sZW5ndGggPiAzID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpIDogY2hpbGRyZW47XG5cdH1cblxuXHRyZXR1cm4gY3JlYXRlVk5vZGUoXG5cdFx0dm5vZGUudHlwZSxcblx0XHRub3JtYWxpemVkUHJvcHMsXG5cdFx0a2V5IHx8IHZub2RlLmtleSxcblx0XHRyZWYgfHwgdm5vZGUucmVmLFxuXHRcdG51bGxcblx0KTtcbn1cbiIsICIvKipcbiAqIEZpbmQgdGhlIGNsb3Nlc3QgZXJyb3IgYm91bmRhcnkgdG8gYSB0aHJvd24gZXJyb3IgYW5kIGNhbGwgaXRcbiAqIEBwYXJhbSB7b2JqZWN0fSBlcnJvciBUaGUgdGhyb3duIHZhbHVlXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZSBUaGUgdm5vZGUgdGhhdCB0aHJldyB0aGUgZXJyb3IgdGhhdCB3YXMgY2F1Z2h0IChleGNlcHRcbiAqIGZvciB1bm1vdW50aW5nIHdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgdGhlIGhpZ2hlc3QgcGFyZW50IHRoYXQgd2FzIGJlaW5nXG4gKiB1bm1vdW50ZWQpXG4gKiBAcGFyYW0ge1ZOb2RlfSBbb2xkVk5vZGVdXG4gKiBAcGFyYW0ge0Vycm9ySW5mb30gW2Vycm9ySW5mb11cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9jYXRjaEVycm9yKGVycm9yLCB2bm9kZSwgb2xkVk5vZGUsIGVycm9ySW5mbykge1xuXHQvKiogQHR5cGUge0NvbXBvbmVudH0gKi9cblx0bGV0IGNvbXBvbmVudCxcblx0XHQvKiogQHR5cGUge0NvbXBvbmVudFR5cGV9ICovXG5cdFx0Y3Rvcixcblx0XHQvKiogQHR5cGUge2Jvb2xlYW59ICovXG5cdFx0aGFuZGxlZDtcblxuXHRmb3IgKDsgKHZub2RlID0gdm5vZGUuX3BhcmVudCk7ICkge1xuXHRcdGlmICgoY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudCkgJiYgIWNvbXBvbmVudC5fcHJvY2Vzc2luZ0V4Y2VwdGlvbikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y3RvciA9IGNvbXBvbmVudC5jb25zdHJ1Y3RvcjtcblxuXHRcdFx0XHRpZiAoY3RvciAmJiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50LnNldFN0YXRlKGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoY29tcG9uZW50LmNvbXBvbmVudERpZENhdGNoICE9IG51bGwpIHtcblx0XHRcdFx0XHRjb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbyB8fCB7fSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaGlzIGlzIGFuIGVycm9yIGJvdW5kYXJ5LiBNYXJrIGl0IGFzIGhhdmluZyBiYWlsZWQgb3V0LCBhbmQgd2hldGhlciBpdCB3YXMgbWlkLWh5ZHJhdGlvbi5cblx0XHRcdFx0aWYgKGhhbmRsZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gKGNvbXBvbmVudC5fcGVuZGluZ0Vycm9yID0gY29tcG9uZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRlcnJvciA9IGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dGhyb3cgZXJyb3I7XG59XG4iLCAiaW1wb3J0IHsgb3B0aW9ucyBhcyBfb3B0aW9ucyB9IGZyb20gJ3ByZWFjdCc7XG5cbi8qKiBAdHlwZSB7bnVtYmVyfSAqL1xubGV0IGN1cnJlbnRJbmRleDtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5sZXQgY3VycmVudENvbXBvbmVudDtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5sZXQgcHJldmlvdXNDb21wb25lbnQ7XG5cbi8qKiBAdHlwZSB7bnVtYmVyfSAqL1xubGV0IGN1cnJlbnRIb29rID0gMDtcblxuLyoqIEB0eXBlIHtBcnJheTxpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnQ+fSAqL1xubGV0IGFmdGVyUGFpbnRFZmZlY3RzID0gW107XG5cbi8vIENhc3QgdG8gdXNlIGludGVybmFsIE9wdGlvbnMgdHlwZVxuY29uc3Qgb3B0aW9ucyA9IC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuT3B0aW9uc30gKi8gKF9vcHRpb25zKTtcblxubGV0IG9sZEJlZm9yZURpZmYgPSBvcHRpb25zLl9kaWZmO1xubGV0IG9sZEJlZm9yZVJlbmRlciA9IG9wdGlvbnMuX3JlbmRlcjtcbmxldCBvbGRBZnRlckRpZmYgPSBvcHRpb25zLmRpZmZlZDtcbmxldCBvbGRDb21taXQgPSBvcHRpb25zLl9jb21taXQ7XG5sZXQgb2xkQmVmb3JlVW5tb3VudCA9IG9wdGlvbnMudW5tb3VudDtcbmxldCBvbGRSb290ID0gb3B0aW9ucy5fcm9vdDtcblxuY29uc3QgUkFGX1RJTUVPVVQgPSAxMDA7XG5sZXQgcHJldlJhZjtcblxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlKSA9PiB2b2lkfSAqL1xub3B0aW9ucy5fZGlmZiA9IHZub2RlID0+IHtcblx0Y3VycmVudENvbXBvbmVudCA9IG51bGw7XG5cdGlmIChvbGRCZWZvcmVEaWZmKSBvbGRCZWZvcmVEaWZmKHZub2RlKTtcbn07XG5cbm9wdGlvbnMuX3Jvb3QgPSAodm5vZGUsIHBhcmVudERvbSkgPT4ge1xuXHRpZiAodm5vZGUgJiYgcGFyZW50RG9tLl9jaGlsZHJlbiAmJiBwYXJlbnREb20uX2NoaWxkcmVuLl9tYXNrKSB7XG5cdFx0dm5vZGUuX21hc2sgPSBwYXJlbnREb20uX2NoaWxkcmVuLl9tYXNrO1xuXHR9XG5cblx0aWYgKG9sZFJvb3QpIG9sZFJvb3Qodm5vZGUsIHBhcmVudERvbSk7XG59O1xuXG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUpID0+IHZvaWR9ICovXG5vcHRpb25zLl9yZW5kZXIgPSB2bm9kZSA9PiB7XG5cdGlmIChvbGRCZWZvcmVSZW5kZXIpIG9sZEJlZm9yZVJlbmRlcih2bm9kZSk7XG5cblx0Y3VycmVudENvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQ7XG5cdGN1cnJlbnRJbmRleCA9IDA7XG5cblx0Y29uc3QgaG9va3MgPSBjdXJyZW50Q29tcG9uZW50Ll9faG9va3M7XG5cdGlmIChob29rcykge1xuXHRcdGlmIChwcmV2aW91c0NvbXBvbmVudCA9PT0gY3VycmVudENvbXBvbmVudCkge1xuXHRcdFx0aG9va3MuX3BlbmRpbmdFZmZlY3RzID0gW107XG5cdFx0XHRjdXJyZW50Q29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdGhvb2tzLl9saXN0LmZvckVhY2goaG9va0l0ZW0gPT4ge1xuXHRcdFx0XHRpZiAoaG9va0l0ZW0uX25leHRWYWx1ZSkge1xuXHRcdFx0XHRcdGhvb2tJdGVtLl92YWx1ZSA9IGhvb2tJdGVtLl9uZXh0VmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aG9va0l0ZW0uX3BlbmRpbmdBcmdzID0gaG9va0l0ZW0uX25leHRWYWx1ZSA9IHVuZGVmaW5lZDtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRob29rcy5fcGVuZGluZ0VmZmVjdHMuZm9yRWFjaChpbnZva2VDbGVhbnVwKTtcblx0XHRcdGhvb2tzLl9wZW5kaW5nRWZmZWN0cy5mb3JFYWNoKGludm9rZUVmZmVjdCk7XG5cdFx0XHRob29rcy5fcGVuZGluZ0VmZmVjdHMgPSBbXTtcblx0XHRcdGN1cnJlbnRJbmRleCA9IDA7XG5cdFx0fVxuXHR9XG5cdHByZXZpb3VzQ29tcG9uZW50ID0gY3VycmVudENvbXBvbmVudDtcbn07XG5cbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMuZGlmZmVkID0gdm5vZGUgPT4ge1xuXHRpZiAob2xkQWZ0ZXJEaWZmKSBvbGRBZnRlckRpZmYodm5vZGUpO1xuXG5cdGNvbnN0IGMgPSB2bm9kZS5fY29tcG9uZW50O1xuXHRpZiAoYyAmJiBjLl9faG9va3MpIHtcblx0XHRpZiAoYy5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cy5sZW5ndGgpIGFmdGVyUGFpbnQoYWZ0ZXJQYWludEVmZmVjdHMucHVzaChjKSk7XG5cdFx0Yy5fX2hvb2tzLl9saXN0LmZvckVhY2goaG9va0l0ZW0gPT4ge1xuXHRcdFx0aWYgKGhvb2tJdGVtLl9wZW5kaW5nQXJncykge1xuXHRcdFx0XHRob29rSXRlbS5fYXJncyA9IGhvb2tJdGVtLl9wZW5kaW5nQXJncztcblx0XHRcdH1cblx0XHRcdGhvb2tJdGVtLl9wZW5kaW5nQXJncyA9IHVuZGVmaW5lZDtcblx0XHR9KTtcblx0fVxuXHRwcmV2aW91c0NvbXBvbmVudCA9IGN1cnJlbnRDb21wb25lbnQgPSBudWxsO1xufTtcblxuLy8gVE9ETzogSW1wcm92ZSB0eXBpbmcgb2YgY29tbWl0UXVldWUgcGFyYW1ldGVyXG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUsIGNvbW1pdFF1ZXVlOiBhbnkpID0+IHZvaWR9ICovXG5vcHRpb25zLl9jb21taXQgPSAodm5vZGUsIGNvbW1pdFF1ZXVlKSA9PiB7XG5cdGNvbW1pdFF1ZXVlLnNvbWUoY29tcG9uZW50ID0+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MuZm9yRWFjaChpbnZva2VDbGVhbnVwKTtcblx0XHRcdGNvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzID0gY29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MuZmlsdGVyKGNiID0+XG5cdFx0XHRcdGNiLl92YWx1ZSA/IGludm9rZUVmZmVjdChjYikgOiB0cnVlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGNvbW1pdFF1ZXVlLnNvbWUoYyA9PiB7XG5cdFx0XHRcdGlmIChjLl9yZW5kZXJDYWxsYmFja3MpIGMuX3JlbmRlckNhbGxiYWNrcyA9IFtdO1xuXHRcdFx0fSk7XG5cdFx0XHRjb21taXRRdWV1ZSA9IFtdO1xuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBjb21wb25lbnQuX3Zub2RlKTtcblx0XHR9XG5cdH0pO1xuXG5cdGlmIChvbGRDb21taXQpIG9sZENvbW1pdCh2bm9kZSwgY29tbWl0UXVldWUpO1xufTtcblxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlKSA9PiB2b2lkfSAqL1xub3B0aW9ucy51bm1vdW50ID0gdm5vZGUgPT4ge1xuXHRpZiAob2xkQmVmb3JlVW5tb3VudCkgb2xkQmVmb3JlVW5tb3VudCh2bm9kZSk7XG5cblx0Y29uc3QgYyA9IHZub2RlLl9jb21wb25lbnQ7XG5cdGlmIChjICYmIGMuX19ob29rcykge1xuXHRcdGxldCBoYXNFcnJvcmVkO1xuXHRcdGMuX19ob29rcy5fbGlzdC5mb3JFYWNoKHMgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aW52b2tlQ2xlYW51cChzKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0aGFzRXJyb3JlZCA9IGU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0Yy5fX2hvb2tzID0gdW5kZWZpbmVkO1xuXHRcdGlmIChoYXNFcnJvcmVkKSBvcHRpb25zLl9jYXRjaEVycm9yKGhhc0Vycm9yZWQsIGMuX3Zub2RlKTtcblx0fVxufTtcblxuLyoqXG4gKiBHZXQgYSBob29rJ3Mgc3RhdGUgZnJvbSB0aGUgY3VycmVudENvbXBvbmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaG9vayB0byBnZXRcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlIFRoZSBpbmRleCBvZiB0aGUgaG9vayB0byBnZXRcbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmZ1bmN0aW9uIGdldEhvb2tTdGF0ZShpbmRleCwgdHlwZSkge1xuXHRpZiAob3B0aW9ucy5faG9vaykge1xuXHRcdG9wdGlvbnMuX2hvb2soY3VycmVudENvbXBvbmVudCwgaW5kZXgsIGN1cnJlbnRIb29rIHx8IHR5cGUpO1xuXHR9XG5cdGN1cnJlbnRIb29rID0gMDtcblxuXHQvLyBMYXJnZWx5IGluc3BpcmVkIGJ5OlxuXHQvLyAqIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNoYWVsLWtsZWluL2Z1bmN5LmpzL2Jsb2IvZjZiZTczNDY4ZTZlYzQ2YjBmZjVhYTNjYzRjOWJhZjcyYTI5MDI1YS9zcmMvaG9va3MvY29yZV9ob29rcy5tanNcblx0Ly8gKiBodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbC1rbGVpbi9mdW5jeS5qcy9ibG9iLzY1MGJlYWE1OGM0M2MzM2E3NDgyMGEzYzk4YjNjNzA3OWNmMmUzMzMvc3JjL3JlbmRlcmVyLm1qc1xuXHQvLyBPdGhlciBpbXBsZW1lbnRhdGlvbnMgdG8gbG9vayBhdDpcblx0Ly8gKiBodHRwczovL2NvZGVzYW5kYm94LmlvL3MvbW5veDA1cXA4XG5cdGNvbnN0IGhvb2tzID1cblx0XHRjdXJyZW50Q29tcG9uZW50Ll9faG9va3MgfHxcblx0XHQoY3VycmVudENvbXBvbmVudC5fX2hvb2tzID0ge1xuXHRcdFx0X2xpc3Q6IFtdLFxuXHRcdFx0X3BlbmRpbmdFZmZlY3RzOiBbXVxuXHRcdH0pO1xuXG5cdGlmIChpbmRleCA+PSBob29rcy5fbGlzdC5sZW5ndGgpIHtcblx0XHRob29rcy5fbGlzdC5wdXNoKHt9KTtcblx0fVxuXG5cdHJldHVybiBob29rcy5fbGlzdFtpbmRleF07XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBTXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkRpc3BhdGNoPGltcG9ydCgnLi9pbmRleCcpLlN0YXRlVXBkYXRlcjxTPj59IFtpbml0aWFsU3RhdGVdXG4gKiBAcmV0dXJucyB7W1MsIChzdGF0ZTogUykgPT4gdm9pZF19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGF0ZShpbml0aWFsU3RhdGUpIHtcblx0Y3VycmVudEhvb2sgPSAxO1xuXHRyZXR1cm4gdXNlUmVkdWNlcihpbnZva2VPclJldHVybiwgaW5pdGlhbFN0YXRlKTtcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUge3Vua25vd259IFNcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gQVxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5SZWR1Y2VyPFMsIEE+fSByZWR1Y2VyXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkRpc3BhdGNoPGltcG9ydCgnLi9pbmRleCcpLlN0YXRlVXBkYXRlcjxTPj59IGluaXRpYWxTdGF0ZVxuICogQHBhcmFtIHsoaW5pdGlhbFN0YXRlOiBhbnkpID0+IHZvaWR9IFtpbml0XVxuICogQHJldHVybnMge1sgUywgKHN0YXRlOiBTKSA9PiB2b2lkIF19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgaW5pdCkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlJlZHVjZXJIb29rU3RhdGV9ICovXG5cdGNvbnN0IGhvb2tTdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMik7XG5cdGhvb2tTdGF0ZS5fcmVkdWNlciA9IHJlZHVjZXI7XG5cdGlmICghaG9va1N0YXRlLl9jb21wb25lbnQpIHtcblx0XHRob29rU3RhdGUuX3ZhbHVlID0gW1xuXHRcdFx0IWluaXQgPyBpbnZva2VPclJldHVybih1bmRlZmluZWQsIGluaXRpYWxTdGF0ZSkgOiBpbml0KGluaXRpYWxTdGF0ZSksXG5cblx0XHRcdGFjdGlvbiA9PiB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGhvb2tTdGF0ZS5fbmV4dFZhbHVlXG5cdFx0XHRcdFx0PyBob29rU3RhdGUuX25leHRWYWx1ZVswXVxuXHRcdFx0XHRcdDogaG9va1N0YXRlLl92YWx1ZVswXTtcblx0XHRcdFx0Y29uc3QgbmV4dFZhbHVlID0gaG9va1N0YXRlLl9yZWR1Y2VyKGN1cnJlbnRWYWx1ZSwgYWN0aW9uKTtcblxuXHRcdFx0XHRpZiAoY3VycmVudFZhbHVlICE9PSBuZXh0VmFsdWUpIHtcblx0XHRcdFx0XHRob29rU3RhdGUuX25leHRWYWx1ZSA9IFtuZXh0VmFsdWUsIGhvb2tTdGF0ZS5fdmFsdWVbMV1dO1xuXHRcdFx0XHRcdGhvb2tTdGF0ZS5fY29tcG9uZW50LnNldFN0YXRlKHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRob29rU3RhdGUuX2NvbXBvbmVudCA9IGN1cnJlbnRDb21wb25lbnQ7XG5cblx0XHRpZiAoIWN1cnJlbnRDb21wb25lbnQuX2hhc1NjdUZyb21Ib29rcykge1xuXHRcdFx0Y3VycmVudENvbXBvbmVudC5faGFzU2N1RnJvbUhvb2tzID0gdHJ1ZTtcblx0XHRcdGxldCBwcmV2U2N1ID0gY3VycmVudENvbXBvbmVudC5zaG91bGRDb21wb25lbnRVcGRhdGU7XG5cdFx0XHRjb25zdCBwcmV2Q1dVID0gY3VycmVudENvbXBvbmVudC5jb21wb25lbnRXaWxsVXBkYXRlO1xuXG5cdFx0XHQvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBmb3JjZWQgdXBkYXRlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgIHdpbGxcblx0XHRcdC8vIG5vdCBiZSBjYWxsZWQuIEJ1dCB3ZSB1c2UgdGhhdCB0byB1cGRhdGUgdGhlIGhvb2sgdmFsdWVzLCBzbyB3ZVxuXHRcdFx0Ly8gbmVlZCB0byBjYWxsIGl0LlxuXHRcdFx0Y3VycmVudENvbXBvbmVudC5jb21wb25lbnRXaWxsVXBkYXRlID0gZnVuY3Rpb24gKHAsIHMsIGMpIHtcblx0XHRcdFx0aWYgKHRoaXMuX2ZvcmNlKSB7XG5cdFx0XHRcdFx0bGV0IHRtcCA9IHByZXZTY3U7XG5cdFx0XHRcdFx0Ly8gQ2xlYXIgdG8gYXZvaWQgb3RoZXIgc0NVIGhvb2tzIGZyb20gYmVpbmcgY2FsbGVkXG5cdFx0XHRcdFx0cHJldlNjdSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHR1cGRhdGVIb29rU3RhdGUocCwgcywgYyk7XG5cdFx0XHRcdFx0cHJldlNjdSA9IHRtcDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChwcmV2Q1dVKSBwcmV2Q1dVLmNhbGwodGhpcywgcCwgcywgYyk7XG5cdFx0XHR9O1xuXG5cdFx0XHQvLyBUaGlzIFNDVSBoYXMgdGhlIHB1cnBvc2Ugb2YgYmFpbGluZyBvdXQgYWZ0ZXIgcmVwZWF0ZWQgdXBkYXRlc1xuXHRcdFx0Ly8gdG8gc3RhdGVmdWwgaG9va3MuXG5cdFx0XHQvLyB3ZSBzdG9yZSB0aGUgbmV4dCB2YWx1ZSBpbiBfbmV4dFZhbHVlWzBdIGFuZCBrZWVwIGRvaW5nIHRoYXQgZm9yIGFsbFxuXHRcdFx0Ly8gc3RhdGUgc2V0dGVycywgaWYgd2UgaGF2ZSBuZXh0IHN0YXRlcyBhbmRcblx0XHRcdC8vIGFsbCBuZXh0IHN0YXRlcyB3aXRoaW4gYSBjb21wb25lbnQgZW5kIHVwIGJlaW5nIGVxdWFsIHRvIHRoZWlyIG9yaWdpbmFsIHN0YXRlXG5cdFx0XHQvLyB3ZSBhcmUgc2FmZSB0byBiYWlsIG91dCBmb3IgdGhpcyBzcGVjaWZpYyBjb21wb25lbnQuXG5cdFx0XHQvKipcblx0XHRcdCAqXG5cdFx0XHQgKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50W1wic2hvdWxkQ29tcG9uZW50VXBkYXRlXCJdfVxuXHRcdFx0ICovXG5cdFx0XHQvLyBAdHMtaWdub3JlIC0gV2UgZG9uJ3QgdXNlIFRTIHRvIGRvd250cmFuc3BpbGVcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbm5lci1kZWNsYXJhdGlvbnNcblx0XHRcdGZ1bmN0aW9uIHVwZGF0ZUhvb2tTdGF0ZShwLCBzLCBjKSB7XG5cdFx0XHRcdGlmICghaG9va1N0YXRlLl9jb21wb25lbnQuX19ob29rcykgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0LyoqIEB0eXBlIHsoeDogaW1wb3J0KCcuL2ludGVybmFsJykuSG9va1N0YXRlKSA9PiB4IGlzIGltcG9ydCgnLi9pbnRlcm5hbCcpLlJlZHVjZXJIb29rU3RhdGV9ICovXG5cdFx0XHRcdGNvbnN0IGlzU3RhdGVIb29rID0geCA9PiAhIXguX2NvbXBvbmVudDtcblx0XHRcdFx0Y29uc3Qgc3RhdGVIb29rcyA9XG5cdFx0XHRcdFx0aG9va1N0YXRlLl9jb21wb25lbnQuX19ob29rcy5fbGlzdC5maWx0ZXIoaXNTdGF0ZUhvb2spO1xuXG5cdFx0XHRcdGNvbnN0IGFsbEhvb2tzRW1wdHkgPSBzdGF0ZUhvb2tzLmV2ZXJ5KHggPT4gIXguX25leHRWYWx1ZSk7XG5cdFx0XHRcdC8vIFdoZW4gd2UgaGF2ZSBubyB1cGRhdGVkIGhvb2tzIGluIHRoZSBjb21wb25lbnQgd2UgaW52b2tlIHRoZSBwcmV2aW91cyBTQ1Ugb3Jcblx0XHRcdFx0Ly8gdHJhdmVyc2UgdGhlIFZET00gdHJlZSBmdXJ0aGVyLlxuXHRcdFx0XHRpZiAoYWxsSG9va3NFbXB0eSkge1xuXHRcdFx0XHRcdHJldHVybiBwcmV2U2N1ID8gcHJldlNjdS5jYWxsKHRoaXMsIHAsIHMsIGMpIDogdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFdlIGNoZWNrIHdoZXRoZXIgd2UgaGF2ZSBjb21wb25lbnRzIHdpdGggYSBuZXh0VmFsdWUgc2V0IHRoYXRcblx0XHRcdFx0Ly8gaGF2ZSB2YWx1ZXMgdGhhdCBhcmVuJ3QgZXF1YWwgdG8gb25lIGFub3RoZXIgdGhpcyBwdXNoZXNcblx0XHRcdFx0Ly8gdXMgdG8gdXBkYXRlIGZ1cnRoZXIgZG93biB0aGUgdHJlZVxuXHRcdFx0XHRsZXQgc2hvdWxkVXBkYXRlID0gZmFsc2U7XG5cdFx0XHRcdHN0YXRlSG9va3MuZm9yRWFjaChob29rSXRlbSA9PiB7XG5cdFx0XHRcdFx0aWYgKGhvb2tJdGVtLl9uZXh0VmFsdWUpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGhvb2tJdGVtLl92YWx1ZVswXTtcblx0XHRcdFx0XHRcdGhvb2tJdGVtLl92YWx1ZSA9IGhvb2tJdGVtLl9uZXh0VmFsdWU7XG5cdFx0XHRcdFx0XHRob29rSXRlbS5fbmV4dFZhbHVlID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSAhPT0gaG9va0l0ZW0uX3ZhbHVlWzBdKSBzaG91bGRVcGRhdGUgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0cmV0dXJuIHNob3VsZFVwZGF0ZSB8fCBob29rU3RhdGUuX2NvbXBvbmVudC5wcm9wcyAhPT0gcFxuXHRcdFx0XHRcdD8gcHJldlNjdVxuXHRcdFx0XHRcdFx0PyBwcmV2U2N1LmNhbGwodGhpcywgcCwgcywgYylcblx0XHRcdFx0XHRcdDogdHJ1ZVxuXHRcdFx0XHRcdDogZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGN1cnJlbnRDb21wb25lbnQuc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gdXBkYXRlSG9va1N0YXRlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBob29rU3RhdGUuX25leHRWYWx1ZSB8fCBob29rU3RhdGUuX3ZhbHVlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuRWZmZWN0fSBjYWxsYmFja1xuICogQHBhcmFtIHt1bmtub3duW119IGFyZ3NcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWZmZWN0KGNhbGxiYWNrLCBhcmdzKSB7XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuRWZmZWN0SG9va1N0YXRlfSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMyk7XG5cdGlmICghb3B0aW9ucy5fc2tpcEVmZmVjdHMgJiYgYXJnc0NoYW5nZWQoc3RhdGUuX2FyZ3MsIGFyZ3MpKSB7XG5cdFx0c3RhdGUuX3ZhbHVlID0gY2FsbGJhY2s7XG5cdFx0c3RhdGUuX3BlbmRpbmdBcmdzID0gYXJncztcblxuXHRcdGN1cnJlbnRDb21wb25lbnQuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMucHVzaChzdGF0ZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdH0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBhcmdzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUxheW91dEVmZmVjdChjYWxsYmFjaywgYXJncykge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdEhvb2tTdGF0ZX0gKi9cblx0Y29uc3Qgc3RhdGUgPSBnZXRIb29rU3RhdGUoY3VycmVudEluZGV4KyssIDQpO1xuXHRpZiAoIW9wdGlvbnMuX3NraXBFZmZlY3RzICYmIGFyZ3NDaGFuZ2VkKHN0YXRlLl9hcmdzLCBhcmdzKSkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IGNhbGxiYWNrO1xuXHRcdHN0YXRlLl9wZW5kaW5nQXJncyA9IGFyZ3M7XG5cblx0XHRjdXJyZW50Q29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MucHVzaChzdGF0ZSk7XG5cdH1cbn1cblxuLyoqIEB0eXBlIHsoaW5pdGlhbFZhbHVlOiB1bmtub3duKSA9PiB1bmtub3dufSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlZihpbml0aWFsVmFsdWUpIHtcblx0Y3VycmVudEhvb2sgPSA1O1xuXHRyZXR1cm4gdXNlTWVtbygoKSA9PiAoeyBjdXJyZW50OiBpbml0aWFsVmFsdWUgfSksIFtdKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVmXG4gKiBAcGFyYW0geygpID0+IG9iamVjdH0gY3JlYXRlSGFuZGxlXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlSGFuZGxlLCBhcmdzKSB7XG5cdGN1cnJlbnRIb29rID0gNjtcblx0dXNlTGF5b3V0RWZmZWN0KFxuXHRcdCgpID0+IHtcblx0XHRcdGlmICh0eXBlb2YgcmVmID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0cmVmKGNyZWF0ZUhhbmRsZSgpKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHJlZihudWxsKTtcblx0XHRcdH0gZWxzZSBpZiAocmVmKSB7XG5cdFx0XHRcdHJlZi5jdXJyZW50ID0gY3JlYXRlSGFuZGxlKCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiAocmVmLmN1cnJlbnQgPSBudWxsKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGFyZ3MgPT0gbnVsbCA/IGFyZ3MgOiBhcmdzLmNvbmNhdChyZWYpXG5cdCk7XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBUXG4gKiBAcGFyYW0geygpID0+IFR9IGZhY3RvcnlcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBhcmdzXG4gKiBAcmV0dXJucyB7VH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbW8oZmFjdG9yeSwgYXJncykge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLk1lbW9Ib29rU3RhdGU8VD59ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCA3KTtcblx0aWYgKGFyZ3NDaGFuZ2VkKHN0YXRlLl9hcmdzLCBhcmdzKSkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IGZhY3RvcnkoKTtcblx0XHRzdGF0ZS5fYXJncyA9IGFyZ3M7XG5cdFx0c3RhdGUuX2ZhY3RvcnkgPSBmYWN0b3J5O1xuXHR9XG5cblx0cmV0dXJuIHN0YXRlLl92YWx1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geygpID0+IHZvaWR9IGNhbGxiYWNrXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMgeygpID0+IHZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgYXJncykge1xuXHRjdXJyZW50SG9vayA9IDg7XG5cdHJldHVybiB1c2VNZW1vKCgpID0+IGNhbGxiYWNrLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdENvbnRleHR9IGNvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnRleHQoY29udGV4dCkge1xuXHRjb25zdCBwcm92aWRlciA9IGN1cnJlbnRDb21wb25lbnQuY29udGV4dFtjb250ZXh0Ll9pZF07XG5cdC8vIFdlIGNvdWxkIHNraXAgdGhpcyBjYWxsIGhlcmUsIGJ1dCB0aGFuIHdlJ2Qgbm90IGNhbGxcblx0Ly8gYG9wdGlvbnMuX2hvb2tgLiBXZSBuZWVkIHRvIGRvIHRoYXQgaW4gb3JkZXIgdG8gbWFrZVxuXHQvLyB0aGUgZGV2dG9vbHMgYXdhcmUgb2YgdGhpcyBob29rLlxuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbnRleHRIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCA5KTtcblx0Ly8gVGhlIGRldnRvb2xzIG5lZWRzIGFjY2VzcyB0byB0aGUgY29udGV4dCBvYmplY3QgdG9cblx0Ly8gYmUgYWJsZSB0byBwdWxsIG9mIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gbm8gcHJvdmlkZXJcblx0Ly8gaXMgcHJlc2VudCBpbiB0aGUgdHJlZS5cblx0c3RhdGUuX2NvbnRleHQgPSBjb250ZXh0O1xuXHRpZiAoIXByb3ZpZGVyKSByZXR1cm4gY29udGV4dC5fZGVmYXVsdFZhbHVlO1xuXHQvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBzYWZlIHRvIGNvbnZlcnQgdG8gXCIhXCJcblx0aWYgKHN0YXRlLl92YWx1ZSA9PSBudWxsKSB7XG5cdFx0c3RhdGUuX3ZhbHVlID0gdHJ1ZTtcblx0XHRwcm92aWRlci5zdWIoY3VycmVudENvbXBvbmVudCk7XG5cdH1cblx0cmV0dXJuIHByb3ZpZGVyLnByb3BzLnZhbHVlO1xufVxuXG4vKipcbiAqIERpc3BsYXkgYSBjdXN0b20gbGFiZWwgZm9yIGEgY3VzdG9tIGhvb2sgZm9yIHRoZSBkZXZ0b29scyBwYW5lbFxuICogQHR5cGUgezxUPih2YWx1ZTogVCwgY2I/OiAodmFsdWU6IFQpID0+IHN0cmluZyB8IG51bWJlcikgPT4gdm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlcikge1xuXHRpZiAob3B0aW9ucy51c2VEZWJ1Z1ZhbHVlKSB7XG5cdFx0b3B0aW9ucy51c2VEZWJ1Z1ZhbHVlKFxuXHRcdFx0Zm9ybWF0dGVyID8gZm9ybWF0dGVyKHZhbHVlKSA6IC8qKiBAdHlwZSB7YW55fSovICh2YWx1ZSlcblx0XHQpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHsoZXJyb3I6IHVua25vd24sIGVycm9ySW5mbzogaW1wb3J0KCdwcmVhY3QnKS5FcnJvckluZm8pID0+IHZvaWR9IGNiXG4gKiBAcmV0dXJucyB7W3Vua25vd24sICgpID0+IHZvaWRdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRXJyb3JCb3VuZGFyeShjYikge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVycm9yQm91bmRhcnlIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCAxMCk7XG5cdGNvbnN0IGVyclN0YXRlID0gdXNlU3RhdGUoKTtcblx0c3RhdGUuX3ZhbHVlID0gY2I7XG5cdGlmICghY3VycmVudENvbXBvbmVudC5jb21wb25lbnREaWRDYXRjaCkge1xuXHRcdGN1cnJlbnRDb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2ggPSAoZXJyLCBlcnJvckluZm8pID0+IHtcblx0XHRcdGlmIChzdGF0ZS5fdmFsdWUpIHN0YXRlLl92YWx1ZShlcnIsIGVycm9ySW5mbyk7XG5cdFx0XHRlcnJTdGF0ZVsxXShlcnIpO1xuXHRcdH07XG5cdH1cblx0cmV0dXJuIFtcblx0XHRlcnJTdGF0ZVswXSxcblx0XHQoKSA9PiB7XG5cdFx0XHRlcnJTdGF0ZVsxXSh1bmRlZmluZWQpO1xuXHRcdH1cblx0XTtcbn1cblxuLyoqIEB0eXBlIHsoKSA9PiBzdHJpbmd9ICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSWQoKSB7XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuSWRIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCAxMSk7XG5cdGlmICghc3RhdGUuX3ZhbHVlKSB7XG5cdFx0Ly8gR3JhYiBlaXRoZXIgdGhlIHJvb3Qgbm9kZSBvciB0aGUgbmVhcmVzdCBhc3luYyBib3VuZGFyeSBub2RlLlxuXHRcdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsLmQnKS5WTm9kZX0gKi9cblx0XHRsZXQgcm9vdCA9IGN1cnJlbnRDb21wb25lbnQuX3Zub2RlO1xuXHRcdHdoaWxlIChyb290ICE9PSBudWxsICYmICFyb290Ll9tYXNrICYmIHJvb3QuX3BhcmVudCAhPT0gbnVsbCkge1xuXHRcdFx0cm9vdCA9IHJvb3QuX3BhcmVudDtcblx0XHR9XG5cblx0XHRsZXQgbWFzayA9IHJvb3QuX21hc2sgfHwgKHJvb3QuX21hc2sgPSBbMCwgMF0pO1xuXHRcdHN0YXRlLl92YWx1ZSA9ICdQJyArIG1hc2tbMF0gKyAnLScgKyBtYXNrWzFdKys7XG5cdH1cblxuXHRyZXR1cm4gc3RhdGUuX3ZhbHVlO1xufVxuXG4vKipcbiAqIEFmdGVyIHBhaW50IGVmZmVjdHMgY29uc3VtZXIuXG4gKi9cbmZ1bmN0aW9uIGZsdXNoQWZ0ZXJQYWludEVmZmVjdHMoKSB7XG5cdGxldCBjb21wb25lbnQ7XG5cdHdoaWxlICgoY29tcG9uZW50ID0gYWZ0ZXJQYWludEVmZmVjdHMuc2hpZnQoKSkpIHtcblx0XHRpZiAoIWNvbXBvbmVudC5fcGFyZW50RG9tIHx8ICFjb21wb25lbnQuX19ob29rcykgY29udGludWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cy5mb3JFYWNoKGludm9rZUNsZWFudXApO1xuXHRcdFx0Y29tcG9uZW50Ll9faG9va3MuX3BlbmRpbmdFZmZlY3RzLmZvckVhY2goaW52b2tlRWZmZWN0KTtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cyA9IFtdO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cyA9IFtdO1xuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBjb21wb25lbnQuX3Zub2RlKTtcblx0XHR9XG5cdH1cbn1cblxubGV0IEhBU19SQUYgPSB0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09ICdmdW5jdGlvbic7XG5cbi8qKlxuICogU2NoZWR1bGUgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIGFmdGVyIHRoZSBicm93c2VyIGhhcyBhIGNoYW5jZSB0byBwYWludCBhIG5ldyBmcmFtZS5cbiAqIERvIHRoaXMgYnkgY29tYmluaW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSAockFGKSArIHNldFRpbWVvdXQgdG8gaW52b2tlIGEgY2FsbGJhY2sgYWZ0ZXJcbiAqIHRoZSBuZXh0IGJyb3dzZXIgZnJhbWUuXG4gKlxuICogQWxzbywgc2NoZWR1bGUgYSB0aW1lb3V0IGluIHBhcmFsbGVsIHRvIHRoZSB0aGUgckFGIHRvIGVuc3VyZSB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZFxuICogZXZlbiBpZiBSQUYgZG9lc24ndCBmaXJlIChmb3IgZXhhbXBsZSBpZiB0aGUgYnJvd3NlciB0YWIgaXMgbm90IHZpc2libGUpXG4gKlxuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBjYWxsYmFja1xuICovXG5mdW5jdGlvbiBhZnRlck5leHRGcmFtZShjYWxsYmFjaykge1xuXHRjb25zdCBkb25lID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblx0XHRpZiAoSEFTX1JBRikgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmKTtcblx0XHRzZXRUaW1lb3V0KGNhbGxiYWNrKTtcblx0fTtcblx0Y29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoZG9uZSwgUkFGX1RJTUVPVVQpO1xuXG5cdGxldCByYWY7XG5cdGlmIChIQVNfUkFGKSB7XG5cdFx0cmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvbmUpO1xuXHR9XG59XG5cbi8vIE5vdGU6IGlmIHNvbWVvbmUgdXNlZCBvcHRpb25zLmRlYm91bmNlUmVuZGVyaW5nID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLFxuLy8gdGhlbiBlZmZlY3RzIHdpbGwgQUxXQVlTIHJ1biBvbiB0aGUgTkVYVCBmcmFtZSBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IG9uZSwgaW5jdXJyaW5nIGEgfjE2bXMgZGVsYXkuXG4vLyBQZXJoYXBzIHRoaXMgaXMgbm90IHN1Y2ggYSBiaWcgZGVhbC5cbi8qKlxuICogU2NoZWR1bGUgYWZ0ZXJQYWludEVmZmVjdHMgZmx1c2ggYWZ0ZXIgdGhlIGJyb3dzZXIgcGFpbnRzXG4gKiBAcGFyYW0ge251bWJlcn0gbmV3UXVldWVMZW5ndGhcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBhZnRlclBhaW50KG5ld1F1ZXVlTGVuZ3RoKSB7XG5cdGlmIChuZXdRdWV1ZUxlbmd0aCA9PT0gMSB8fCBwcmV2UmFmICE9PSBvcHRpb25zLnJlcXVlc3RBbmltYXRpb25GcmFtZSkge1xuXHRcdHByZXZSYWYgPSBvcHRpb25zLnJlcXVlc3RBbmltYXRpb25GcmFtZTtcblx0XHQocHJldlJhZiB8fCBhZnRlck5leHRGcmFtZSkoZmx1c2hBZnRlclBhaW50RWZmZWN0cyk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkhvb2tTdGF0ZX0gaG9va1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGludm9rZUNsZWFudXAoaG9vaykge1xuXHQvLyBBIGhvb2sgY2xlYW51cCBjYW4gaW50cm9kdWNlIGEgY2FsbCB0byByZW5kZXIgd2hpY2ggY3JlYXRlcyBhIG5ldyByb290LCB0aGlzIHdpbGwgY2FsbCBvcHRpb25zLnZub2RlXG5cdC8vIGFuZCBtb3ZlIHRoZSBjdXJyZW50Q29tcG9uZW50IGF3YXkuXG5cdGNvbnN0IGNvbXAgPSBjdXJyZW50Q29tcG9uZW50O1xuXHRsZXQgY2xlYW51cCA9IGhvb2suX2NsZWFudXA7XG5cdGlmICh0eXBlb2YgY2xlYW51cCA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0aG9vay5fY2xlYW51cCA9IHVuZGVmaW5lZDtcblx0XHRjbGVhbnVwKCk7XG5cdH1cblxuXHRjdXJyZW50Q29tcG9uZW50ID0gY29tcDtcbn1cblxuLyoqXG4gKiBJbnZva2UgYSBIb29rJ3MgZWZmZWN0XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdEhvb2tTdGF0ZX0gaG9va1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGludm9rZUVmZmVjdChob29rKSB7XG5cdC8vIEEgaG9vayBjYWxsIGNhbiBpbnRyb2R1Y2UgYSBjYWxsIHRvIHJlbmRlciB3aGljaCBjcmVhdGVzIGEgbmV3IHJvb3QsIHRoaXMgd2lsbCBjYWxsIG9wdGlvbnMudm5vZGVcblx0Ly8gYW5kIG1vdmUgdGhlIGN1cnJlbnRDb21wb25lbnQgYXdheS5cblx0Y29uc3QgY29tcCA9IGN1cnJlbnRDb21wb25lbnQ7XG5cdGhvb2suX2NsZWFudXAgPSBob29rLl92YWx1ZSgpO1xuXHRjdXJyZW50Q29tcG9uZW50ID0gY29tcDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gb2xkQXJnc1xuICogQHBhcmFtIHt1bmtub3duW119IG5ld0FyZ3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBhcmdzQ2hhbmdlZChvbGRBcmdzLCBuZXdBcmdzKSB7XG5cdHJldHVybiAoXG5cdFx0IW9sZEFyZ3MgfHxcblx0XHRvbGRBcmdzLmxlbmd0aCAhPT0gbmV3QXJncy5sZW5ndGggfHxcblx0XHRuZXdBcmdzLnNvbWUoKGFyZywgaW5kZXgpID0+IGFyZyAhPT0gb2xkQXJnc1tpbmRleF0pXG5cdCk7XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIEFyZ1xuICogQHBhcmFtIHtBcmd9IGFyZ1xuICogQHBhcmFtIHsoYXJnOiBBcmcpID0+IGFueX0gZlxuICogQHJldHVybnMge2FueX1cbiAqL1xuZnVuY3Rpb24gaW52b2tlT3JSZXR1cm4oYXJnLCBmKSB7XG5cdHJldHVybiB0eXBlb2YgZiA9PSAnZnVuY3Rpb24nID8gZihhcmcpIDogZjtcbn1cbiIsICIvKipcbiAqIEFzc2lnbiBwcm9wZXJ0aWVzIGZyb20gYHByb3BzYCB0byBgb2JqYFxuICogQHRlbXBsYXRlIE8sIFAgVGhlIG9iaiBhbmQgcHJvcHMgdHlwZXNcbiAqIEBwYXJhbSB7T30gb2JqIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvXG4gKiBAcGFyYW0ge1B9IHByb3BzIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEByZXR1cm5zIHtPICYgUH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihvYmosIHByb3BzKSB7XG5cdGZvciAobGV0IGkgaW4gcHJvcHMpIG9ialtpXSA9IHByb3BzW2ldO1xuXHRyZXR1cm4gLyoqIEB0eXBlIHtPICYgUH0gKi8gKG9iaik7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIG9iamVjdHMgaGF2ZSBhIGRpZmZlcmVudCBzaGFwZVxuICogQHBhcmFtIHtvYmplY3R9IGFcbiAqIEBwYXJhbSB7b2JqZWN0fSBiXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dEaWZmZXJzKGEsIGIpIHtcblx0Zm9yIChsZXQgaSBpbiBhKSBpZiAoaSAhPT0gJ19fc291cmNlJyAmJiAhKGkgaW4gYikpIHJldHVybiB0cnVlO1xuXHRmb3IgKGxldCBpIGluIGIpIGlmIChpICE9PSAnX19zb3VyY2UnICYmIGFbaV0gIT09IGJbaV0pIHJldHVybiB0cnVlO1xuXHRyZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIHZhbHVlcyBhcmUgdGhlIHNhbWUgdmFsdWVcbiAqIEBwYXJhbSB7Kn0geFxuICogQHBhcmFtIHsqfSB5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzKHgsIHkpIHtcblx0cmV0dXJuICh4ID09PSB5ICYmICh4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSkpIHx8ICh4ICE9PSB4ICYmIHkgIT09IHkpO1xufVxuIiwgImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93RGlmZmVycyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQ29tcG9uZW50IGNsYXNzIHdpdGggYSBwcmVkZWZpbmVkIGBzaG91bGRDb21wb25lbnRVcGRhdGVgIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXJlQ29tcG9uZW50KHAsIGMpIHtcblx0dGhpcy5wcm9wcyA9IHA7XG5cdHRoaXMuY29udGV4dCA9IGM7XG59XG5QdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnQoKTtcbi8vIFNvbWUgdGhpcmQtcGFydHkgbGlicmFyaWVzIGNoZWNrIGlmIHRoaXMgcHJvcGVydHkgaXMgcHJlc2VudFxuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gZnVuY3Rpb24gKHByb3BzLCBzdGF0ZSkge1xuXHRyZXR1cm4gc2hhbGxvd0RpZmZlcnModGhpcy5wcm9wcywgcHJvcHMpIHx8IHNoYWxsb3dEaWZmZXJzKHRoaXMuc3RhdGUsIHN0YXRlKTtcbn07XG4iLCAiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93RGlmZmVycyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogTWVtb2l6ZSBhIGNvbXBvbmVudCwgc28gdGhhdCBpdCBvbmx5IHVwZGF0ZXMgd2hlbiB0aGUgcHJvcHMgYWN0dWFsbHkgaGF2ZVxuICogY2hhbmdlZC4gVGhpcyB3YXMgcHJldmlvdXNseSBrbm93biBhcyBgUmVhY3QucHVyZWAuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkZ1bmN0aW9uQ29tcG9uZW50fSBjIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gKiBAcGFyYW0geyhwcmV2OiBvYmplY3QsIG5leHQ6IG9iamVjdCkgPT4gYm9vbGVhbn0gW2NvbXBhcmVyXSBDdXN0b20gZXF1YWxpdHkgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5GdW5jdGlvbkNvbXBvbmVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW8oYywgY29tcGFyZXIpIHtcblx0ZnVuY3Rpb24gc2hvdWxkVXBkYXRlKG5leHRQcm9wcykge1xuXHRcdGxldCByZWYgPSB0aGlzLnByb3BzLnJlZjtcblx0XHRsZXQgdXBkYXRlUmVmID0gcmVmID09IG5leHRQcm9wcy5yZWY7XG5cdFx0aWYgKCF1cGRhdGVSZWYgJiYgcmVmKSB7XG5cdFx0XHRyZWYuY2FsbCA/IHJlZihudWxsKSA6IChyZWYuY3VycmVudCA9IG51bGwpO1xuXHRcdH1cblxuXHRcdGlmICghY29tcGFyZXIpIHtcblx0XHRcdHJldHVybiBzaGFsbG93RGlmZmVycyh0aGlzLnByb3BzLCBuZXh0UHJvcHMpO1xuXHRcdH1cblxuXHRcdHJldHVybiAhY29tcGFyZXIodGhpcy5wcm9wcywgbmV4dFByb3BzKSB8fCAhdXBkYXRlUmVmO1xuXHR9XG5cblx0ZnVuY3Rpb24gTWVtb2VkKHByb3BzKSB7XG5cdFx0dGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBzaG91bGRVcGRhdGU7XG5cdFx0cmV0dXJuIGNyZWF0ZUVsZW1lbnQoYywgcHJvcHMpO1xuXHR9XG5cdE1lbW9lZC5kaXNwbGF5TmFtZSA9ICdNZW1vKCcgKyAoYy5kaXNwbGF5TmFtZSB8fCBjLm5hbWUpICsgJyknO1xuXHRNZW1vZWQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuXHRNZW1vZWQuX2ZvcndhcmRlZCA9IHRydWU7XG5cdHJldHVybiBNZW1vZWQ7XG59XG4iLCAiaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJ3ByZWFjdCc7XG5cbmxldCBvbGREaWZmSG9vayA9IG9wdGlvbnMuX2RpZmY7XG5vcHRpb25zLl9kaWZmID0gdm5vZGUgPT4ge1xuXHRpZiAodm5vZGUudHlwZSAmJiB2bm9kZS50eXBlLl9mb3J3YXJkZWQgJiYgdm5vZGUucmVmKSB7XG5cdFx0dm5vZGUucHJvcHMucmVmID0gdm5vZGUucmVmO1xuXHRcdHZub2RlLnJlZiA9IG51bGw7XG5cdH1cblx0aWYgKG9sZERpZmZIb29rKSBvbGREaWZmSG9vayh2bm9kZSk7XG59O1xuXG5leHBvcnQgY29uc3QgUkVBQ1RfRk9SV0FSRF9TWU1CT0wgPVxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJlxuXHRcdFN5bWJvbC5mb3IgJiZcblx0XHRTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpKSB8fFxuXHQweGY0NztcblxuLyoqXG4gKiBQYXNzIHJlZiBkb3duIHRvIGEgY2hpbGQuIFRoaXMgaXMgbWFpbmx5IHVzZWQgaW4gbGlicmFyaWVzIHdpdGggSE9DcyB0aGF0XG4gKiB3cmFwIGNvbXBvbmVudHMuIFVzaW5nIGBmb3J3YXJkUmVmYCB0aGVyZSBpcyBhbiBlYXN5IHdheSB0byBnZXQgYSByZWZlcmVuY2VcbiAqIG9mIHRoZSB3cmFwcGVkIGNvbXBvbmVudCBpbnN0ZWFkIG9mIG9uZSBvZiB0aGUgd3JhcHBlciBpdHNlbGYuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkZvcndhcmRGbn0gZm5cbiAqIEByZXR1cm5zIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5GdW5jdGlvbkNvbXBvbmVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRSZWYoZm4pIHtcblx0ZnVuY3Rpb24gRm9yd2FyZGVkKHByb3BzKSB7XG5cdFx0aWYgKCEoJ3JlZicgaW4gcHJvcHMpKSByZXR1cm4gZm4ocHJvcHMsIG51bGwpO1xuXG5cdFx0bGV0IHJlZiA9IHByb3BzLnJlZjtcblx0XHRkZWxldGUgcHJvcHMucmVmO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGZuKHByb3BzLCByZWYpO1xuXHRcdHByb3BzLnJlZiA9IHJlZjtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0Ly8gbW9ieC1yZWFjdCBjaGVja3MgZm9yIHRoaXMgYmVpbmcgcHJlc2VudFxuXHRGb3J3YXJkZWQuJCR0eXBlb2YgPSBSRUFDVF9GT1JXQVJEX1NZTUJPTDtcblx0Ly8gbW9ieC1yZWFjdCBoZWF2aWx5IHJlbGllcyBvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuXHQvLyBJdCBleHBlY3RzIGFuIG9iamVjdCBoZXJlIHdpdGggYSBgcmVuZGVyYCBwcm9wZXJ0eSxcblx0Ly8gYW5kIHByb3RvdHlwZS5yZW5kZXIgd2lsbCBmYWlsLiBXaXRob3V0IHRoaXNcblx0Ly8gbW9ieC1yZWFjdCB0aHJvd3MuXG5cdEZvcndhcmRlZC5yZW5kZXIgPSBGb3J3YXJkZWQ7XG5cblx0Rm9yd2FyZGVkLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0gRm9yd2FyZGVkLl9mb3J3YXJkZWQgPSB0cnVlO1xuXHRGb3J3YXJkZWQuZGlzcGxheU5hbWUgPSAnRm9yd2FyZFJlZignICsgKGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUpICsgJyknO1xuXHRyZXR1cm4gRm9yd2FyZGVkO1xufVxuIiwgImltcG9ydCB7IHRvQ2hpbGRBcnJheSB9IGZyb20gJ3ByZWFjdCc7XG5cbmNvbnN0IG1hcEZuID0gKGNoaWxkcmVuLCBmbikgPT4ge1xuXHRpZiAoY2hpbGRyZW4gPT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cdHJldHVybiB0b0NoaWxkQXJyYXkodG9DaGlsZEFycmF5KGNoaWxkcmVuKS5tYXAoZm4pKTtcbn07XG5cbi8vIFRoaXMgQVBJIGlzIGNvbXBsZXRlbHkgdW5uZWNlc3NhcnkgZm9yIFByZWFjdCwgc28gaXQncyBiYXNpY2FsbHkgcGFzc3Rocm91Z2guXG5leHBvcnQgY29uc3QgQ2hpbGRyZW4gPSB7XG5cdG1hcDogbWFwRm4sXG5cdGZvckVhY2g6IG1hcEZuLFxuXHRjb3VudChjaGlsZHJlbikge1xuXHRcdHJldHVybiBjaGlsZHJlbiA/IHRvQ2hpbGRBcnJheShjaGlsZHJlbikubGVuZ3RoIDogMDtcblx0fSxcblx0b25seShjaGlsZHJlbikge1xuXHRcdGNvbnN0IG5vcm1hbGl6ZWQgPSB0b0NoaWxkQXJyYXkoY2hpbGRyZW4pO1xuXHRcdGlmIChub3JtYWxpemVkLmxlbmd0aCAhPT0gMSkgdGhyb3cgJ0NoaWxkcmVuLm9ubHknO1xuXHRcdHJldHVybiBub3JtYWxpemVkWzBdO1xuXHR9LFxuXHR0b0FycmF5OiB0b0NoaWxkQXJyYXlcbn07XG4iLCAiaW1wb3J0IHsgQ29tcG9uZW50LCBjcmVhdGVFbGVtZW50LCBvcHRpb25zLCBGcmFnbWVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBNT0RFX0hZRFJBVEUgfSBmcm9tICcuLi8uLi9zcmMvY29uc3RhbnRzJztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IG9sZENhdGNoRXJyb3IgPSBvcHRpb25zLl9jYXRjaEVycm9yO1xub3B0aW9ucy5fY2F0Y2hFcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgbmV3Vk5vZGUsIG9sZFZOb2RlLCBlcnJvckluZm8pIHtcblx0aWYgKGVycm9yLnRoZW4pIHtcblx0XHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0XHRsZXQgY29tcG9uZW50O1xuXHRcdGxldCB2bm9kZSA9IG5ld1ZOb2RlO1xuXG5cdFx0Zm9yICg7ICh2bm9kZSA9IHZub2RlLl9wYXJlbnQpOyApIHtcblx0XHRcdGlmICgoY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudCkgJiYgY29tcG9uZW50Ll9jaGlsZERpZFN1c3BlbmQpIHtcblx0XHRcdFx0aWYgKG5ld1ZOb2RlLl9kb20gPT0gbnVsbCkge1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9kb20gPSBvbGRWTm9kZS5fZG9tO1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IG9sZFZOb2RlLl9jaGlsZHJlbjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBEb24ndCBjYWxsIG9sZENhdGNoRXJyb3IgaWYgd2UgZm91bmQgYSBTdXNwZW5zZVxuXHRcdFx0XHRyZXR1cm4gY29tcG9uZW50Ll9jaGlsZERpZFN1c3BlbmQoZXJyb3IsIG5ld1ZOb2RlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0b2xkQ2F0Y2hFcnJvcihlcnJvciwgbmV3Vk5vZGUsIG9sZFZOb2RlLCBlcnJvckluZm8pO1xufTtcblxuY29uc3Qgb2xkVW5tb3VudCA9IG9wdGlvbnMudW5tb3VudDtcbm9wdGlvbnMudW5tb3VudCA9IGZ1bmN0aW9uICh2bm9kZSkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0Y29uc3QgY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudDtcblx0aWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuX29uUmVzb2x2ZSkge1xuXHRcdGNvbXBvbmVudC5fb25SZXNvbHZlKCk7XG5cdH1cblxuXHQvLyBpZiB0aGUgY29tcG9uZW50IGlzIHN0aWxsIGh5ZHJhdGluZ1xuXHQvLyBtb3N0IGxpa2VseSBpdCBpcyBiZWNhdXNlIHRoZSBjb21wb25lbnQgaXMgc3VzcGVuZGVkXG5cdC8vIHdlIHNldCB0aGUgdm5vZGUudHlwZSBhcyBgbnVsbGAgc28gdGhhdCBpdCBpcyBub3QgYSB0eXBlb2YgZnVuY3Rpb25cblx0Ly8gc28gdGhlIHVubW91bnQgd2lsbCByZW1vdmUgdGhlIHZub2RlLl9kb21cblx0aWYgKGNvbXBvbmVudCAmJiB2bm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUpIHtcblx0XHR2bm9kZS50eXBlID0gbnVsbDtcblx0fVxuXG5cdGlmIChvbGRVbm1vdW50KSBvbGRVbm1vdW50KHZub2RlKTtcbn07XG5cbmZ1bmN0aW9uIGRldGFjaGVkQ2xvbmUodm5vZGUsIGRldGFjaGVkUGFyZW50LCBwYXJlbnREb20pIHtcblx0aWYgKHZub2RlKSB7XG5cdFx0aWYgKHZub2RlLl9jb21wb25lbnQgJiYgdm5vZGUuX2NvbXBvbmVudC5fX2hvb2tzKSB7XG5cdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9faG9va3MuX2xpc3QuZm9yRWFjaChlZmZlY3QgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGVmZmVjdC5fY2xlYW51cCA9PSAnZnVuY3Rpb24nKSBlZmZlY3QuX2NsZWFudXAoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9faG9va3MgPSBudWxsO1xuXHRcdH1cblxuXHRcdHZub2RlID0gYXNzaWduKHt9LCB2bm9kZSk7XG5cdFx0aWYgKHZub2RlLl9jb21wb25lbnQgIT0gbnVsbCkge1xuXHRcdFx0aWYgKHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9PT0gcGFyZW50RG9tKSB7XG5cdFx0XHRcdHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9IGRldGFjaGVkUGFyZW50O1xuXHRcdFx0fVxuXHRcdFx0dm5vZGUuX2NvbXBvbmVudCA9IG51bGw7XG5cdFx0fVxuXG5cdFx0dm5vZGUuX2NoaWxkcmVuID1cblx0XHRcdHZub2RlLl9jaGlsZHJlbiAmJlxuXHRcdFx0dm5vZGUuX2NoaWxkcmVuLm1hcChjaGlsZCA9PlxuXHRcdFx0XHRkZXRhY2hlZENsb25lKGNoaWxkLCBkZXRhY2hlZFBhcmVudCwgcGFyZW50RG9tKVxuXHRcdFx0KTtcblx0fVxuXG5cdHJldHVybiB2bm9kZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlT3JpZ2luYWwodm5vZGUsIGRldGFjaGVkUGFyZW50LCBvcmlnaW5hbFBhcmVudCkge1xuXHRpZiAodm5vZGUgJiYgb3JpZ2luYWxQYXJlbnQpIHtcblx0XHR2bm9kZS5fb3JpZ2luYWwgPSBudWxsO1xuXHRcdHZub2RlLl9jaGlsZHJlbiA9XG5cdFx0XHR2bm9kZS5fY2hpbGRyZW4gJiZcblx0XHRcdHZub2RlLl9jaGlsZHJlbi5tYXAoY2hpbGQgPT5cblx0XHRcdFx0cmVtb3ZlT3JpZ2luYWwoY2hpbGQsIGRldGFjaGVkUGFyZW50LCBvcmlnaW5hbFBhcmVudClcblx0XHRcdCk7XG5cblx0XHRpZiAodm5vZGUuX2NvbXBvbmVudCkge1xuXHRcdFx0aWYgKHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9PT0gZGV0YWNoZWRQYXJlbnQpIHtcblx0XHRcdFx0aWYgKHZub2RlLl9kb20pIHtcblx0XHRcdFx0XHRvcmlnaW5hbFBhcmVudC5hcHBlbmRDaGlsZCh2bm9kZS5fZG9tKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9mb3JjZSA9IHRydWU7XG5cdFx0XHRcdHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9IG9yaWdpbmFsUGFyZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB2bm9kZTtcbn1cblxuLy8gaGF2aW5nIGN1c3RvbSBpbmhlcml0YW5jZSBpbnN0ZWFkIG9mIGEgY2xhc3MgaGVyZSBzYXZlcyBhIGxvdCBvZiBieXRlc1xuZXhwb3J0IGZ1bmN0aW9uIFN1c3BlbnNlKCkge1xuXHQvLyB3ZSBkbyBub3QgY2FsbCBzdXBlciBoZXJlIHRvIGdvbGYgc29tZSBieXRlcy4uLlxuXHR0aGlzLl9wZW5kaW5nU3VzcGVuc2lvbkNvdW50ID0gMDtcblx0dGhpcy5fc3VzcGVuZGVycyA9IG51bGw7XG5cdHRoaXMuX2RldGFjaE9uTmV4dFJlbmRlciA9IG51bGw7XG59XG5cbi8vIFRoaW5ncyB3ZSBkbyBoZXJlIHRvIHNhdmUgc29tZSBieXRlcyBidXQgYXJlIG5vdCBwcm9wZXIgSlMgaW5oZXJpdGFuY2U6XG4vLyAtIGNhbGwgYG5ldyBDb21wb25lbnQoKWAgYXMgdGhlIHByb3RvdHlwZVxuLy8gLSBkbyBub3Qgc2V0IGBTdXNwZW5zZS5wcm90b3R5cGUuY29uc3RydWN0b3JgIHRvIGBTdXNwZW5zZWBcblN1c3BlbnNlLnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnQoKTtcblxuLyoqXG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9XG4gKiBAcGFyYW0ge1Byb21pc2V9IHByb21pc2UgVGhlIHRocm93biBwcm9taXNlXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlPGFueSwgYW55Pn0gc3VzcGVuZGluZ1ZOb2RlIFRoZSBzdXNwZW5kaW5nIGNvbXBvbmVudFxuICovXG5TdXNwZW5zZS5wcm90b3R5cGUuX2NoaWxkRGlkU3VzcGVuZCA9IGZ1bmN0aW9uIChwcm9taXNlLCBzdXNwZW5kaW5nVk5vZGUpIHtcblx0Y29uc3Qgc3VzcGVuZGluZ0NvbXBvbmVudCA9IHN1c3BlbmRpbmdWTm9kZS5fY29tcG9uZW50O1xuXG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9ICovXG5cdGNvbnN0IGMgPSB0aGlzO1xuXG5cdGlmIChjLl9zdXNwZW5kZXJzID09IG51bGwpIHtcblx0XHRjLl9zdXNwZW5kZXJzID0gW107XG5cdH1cblx0Yy5fc3VzcGVuZGVycy5wdXNoKHN1c3BlbmRpbmdDb21wb25lbnQpO1xuXG5cdGNvbnN0IHJlc29sdmUgPSBzdXNwZW5kZWQoYy5fdm5vZGUpO1xuXG5cdGxldCByZXNvbHZlZCA9IGZhbHNlO1xuXHRjb25zdCBvblJlc29sdmVkID0gKCkgPT4ge1xuXHRcdGlmIChyZXNvbHZlZCkgcmV0dXJuO1xuXG5cdFx0cmVzb2x2ZWQgPSB0cnVlO1xuXHRcdHN1c3BlbmRpbmdDb21wb25lbnQuX29uUmVzb2x2ZSA9IG51bGw7XG5cblx0XHRpZiAocmVzb2x2ZSkge1xuXHRcdFx0cmVzb2x2ZShvblN1c3BlbnNpb25Db21wbGV0ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9uU3VzcGVuc2lvbkNvbXBsZXRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdHN1c3BlbmRpbmdDb21wb25lbnQuX29uUmVzb2x2ZSA9IG9uUmVzb2x2ZWQ7XG5cblx0Y29uc3Qgb25TdXNwZW5zaW9uQ29tcGxldGUgPSAoKSA9PiB7XG5cdFx0aWYgKCEtLWMuX3BlbmRpbmdTdXNwZW5zaW9uQ291bnQpIHtcblx0XHRcdC8vIElmIHRoZSBzdXNwZW5zaW9uIHdhcyBkdXJpbmcgaHlkcmF0aW9uIHdlIGRvbid0IG5lZWQgdG8gcmVzdG9yZSB0aGVcblx0XHRcdC8vIHN1c3BlbmRlZCBjaGlsZHJlbiBpbnRvIHRoZSBfY2hpbGRyZW4gYXJyYXlcblx0XHRcdGlmIChjLnN0YXRlLl9zdXNwZW5kZWQpIHtcblx0XHRcdFx0Y29uc3Qgc3VzcGVuZGVkVk5vZGUgPSBjLnN0YXRlLl9zdXNwZW5kZWQ7XG5cdFx0XHRcdGMuX3Zub2RlLl9jaGlsZHJlblswXSA9IHJlbW92ZU9yaWdpbmFsKFxuXHRcdFx0XHRcdHN1c3BlbmRlZFZOb2RlLFxuXHRcdFx0XHRcdHN1c3BlbmRlZFZOb2RlLl9jb21wb25lbnQuX3BhcmVudERvbSxcblx0XHRcdFx0XHRzdXNwZW5kZWRWTm9kZS5fY29tcG9uZW50Ll9vcmlnaW5hbFBhcmVudERvbVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRjLnNldFN0YXRlKHsgX3N1c3BlbmRlZDogKGMuX2RldGFjaE9uTmV4dFJlbmRlciA9IG51bGwpIH0pO1xuXG5cdFx0XHRsZXQgc3VzcGVuZGVkO1xuXHRcdFx0d2hpbGUgKChzdXNwZW5kZWQgPSBjLl9zdXNwZW5kZXJzLnBvcCgpKSkge1xuXHRcdFx0XHRzdXNwZW5kZWQuZm9yY2VVcGRhdGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0LyoqXG5cdCAqIFdlIGRvIG5vdCBzZXQgYHN1c3BlbmRlZDogdHJ1ZWAgZHVyaW5nIGh5ZHJhdGlvbiBiZWNhdXNlIHdlIHdhbnQgdGhlIGFjdHVhbCBtYXJrdXBcblx0ICogdG8gcmVtYWluIG9uIHNjcmVlbiBhbmQgaHlkcmF0ZSBpdCB3aGVuIHRoZSBzdXNwZW5zZSBhY3R1YWxseSBnZXRzIHJlc29sdmVkLlxuXHQgKiBXaGlsZSBpbiBub24taHlkcmF0aW9uIGNhc2VzIHRoZSB1c3VhbCBmYWxsYmFjayAtPiBjb21wb25lbnQgZmxvdyB3b3VsZCBvY2NvdXIuXG5cdCAqL1xuXHRpZiAoXG5cdFx0IWMuX3BlbmRpbmdTdXNwZW5zaW9uQ291bnQrKyAmJlxuXHRcdCEoc3VzcGVuZGluZ1ZOb2RlLl9mbGFncyAmIE1PREVfSFlEUkFURSlcblx0KSB7XG5cdFx0Yy5zZXRTdGF0ZSh7IF9zdXNwZW5kZWQ6IChjLl9kZXRhY2hPbk5leHRSZW5kZXIgPSBjLl92bm9kZS5fY2hpbGRyZW5bMF0pIH0pO1xuXHR9XG5cdHByb21pc2UudGhlbihvblJlc29sdmVkLCBvblJlc29sdmVkKTtcbn07XG5cblN1c3BlbnNlLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uICgpIHtcblx0dGhpcy5fc3VzcGVuZGVycyA9IFtdO1xufTtcblxuLyoqXG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlQ29tcG9uZW50W1wicHJvcHNcIl19IHByb3BzXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlU3RhdGV9IHN0YXRlXG4gKi9cblN1c3BlbnNlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAocHJvcHMsIHN0YXRlKSB7XG5cdGlmICh0aGlzLl9kZXRhY2hPbk5leHRSZW5kZXIpIHtcblx0XHQvLyBXaGVuIHRoZSBTdXNwZW5zZSdzIF92bm9kZSB3YXMgY3JlYXRlZCBieSBhIGNhbGwgdG8gY3JlYXRlVk5vZGVcblx0XHQvLyAoaS5lLiBkdWUgdG8gYSBzZXRTdGF0ZSBmdXJ0aGVyIHVwIGluIHRoZSB0cmVlKVxuXHRcdC8vIGl0J3MgX2NoaWxkcmVuIHByb3AgaXMgbnVsbCwgaW4gdGhpcyBjYXNlIHdlIFwiZm9yZ2V0XCIgYWJvdXQgdGhlIHBhcmtlZCB2bm9kZXMgdG8gZGV0YWNoXG5cdFx0aWYgKHRoaXMuX3Zub2RlLl9jaGlsZHJlbikge1xuXHRcdFx0Y29uc3QgZGV0YWNoZWRQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdGNvbnN0IGRldGFjaGVkQ29tcG9uZW50ID0gdGhpcy5fdm5vZGUuX2NoaWxkcmVuWzBdLl9jb21wb25lbnQ7XG5cdFx0XHR0aGlzLl92bm9kZS5fY2hpbGRyZW5bMF0gPSBkZXRhY2hlZENsb25lKFxuXHRcdFx0XHR0aGlzLl9kZXRhY2hPbk5leHRSZW5kZXIsXG5cdFx0XHRcdGRldGFjaGVkUGFyZW50LFxuXHRcdFx0XHQoZGV0YWNoZWRDb21wb25lbnQuX29yaWdpbmFsUGFyZW50RG9tID0gZGV0YWNoZWRDb21wb25lbnQuX3BhcmVudERvbSlcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZGV0YWNoT25OZXh0UmVuZGVyID0gbnVsbDtcblx0fVxuXG5cdC8vIFdyYXAgZmFsbGJhY2sgdHJlZSBpbiBhIFZOb2RlIHRoYXQgcHJldmVudHMgaXRzZWxmIGZyb20gYmVpbmcgbWFya2VkIGFzIGFib3J0aW5nIG1pZC1oeWRyYXRpb246XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9ICovXG5cdGNvbnN0IGZhbGxiYWNrID1cblx0XHRzdGF0ZS5fc3VzcGVuZGVkICYmIGNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIHByb3BzLmZhbGxiYWNrKTtcblx0aWYgKGZhbGxiYWNrKSBmYWxsYmFjay5fZmxhZ3MgJj0gfk1PREVfSFlEUkFURTtcblxuXHRyZXR1cm4gW1xuXHRcdGNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIHN0YXRlLl9zdXNwZW5kZWQgPyBudWxsIDogcHJvcHMuY2hpbGRyZW4pLFxuXHRcdGZhbGxiYWNrXG5cdF07XG59O1xuXG4vKipcbiAqIENoZWNrcyBhbmQgY2FsbHMgdGhlIHBhcmVudCBjb21wb25lbnQncyBfc3VzcGVuZGVkIG1ldGhvZCwgcGFzc2luZyBpbiB0aGVcbiAqIHN1c3BlbmRlZCB2bm9kZS4gVGhpcyBpcyBhIHdheSBmb3IgYSBwYXJlbnQgKGUuZy4gU3VzcGVuc2VMaXN0KSB0byBnZXQgbm90aWZpZWRcbiAqIHRoYXQgb25lIG9mIGl0cyBjaGlsZHJlbi9kZXNjZW5kYW50cyBzdXNwZW5kZWQuXG4gKlxuICogVGhlIHBhcmVudCBNQVkgcmV0dXJuIGEgY2FsbGJhY2suIFRoZSBjYWxsYmFjayB3aWxsIGdldCBjYWxsZWQgd2hlbiB0aGVcbiAqIHN1c3BlbnNpb24gcmVzb2x2ZXMsIG5vdGlmeWluZyB0aGUgcGFyZW50IG9mIHRoZSBmYWN0LlxuICogTW9yZW92ZXIsIHRoZSBjYWxsYmFjayBnZXRzIGZ1bmN0aW9uIGB1bnN1c3BlbmRgIGFzIGEgcGFyYW1ldGVyLiBUaGUgcmVzb2x2ZWRcbiAqIGNoaWxkIGRlc2NlbmRhbnQgd2lsbCBub3QgYWN0dWFsbHkgZ2V0IHVuc3VzcGVuZGVkIHVudGlsIGB1bnN1c3BlbmRgIGdldHMgY2FsbGVkLlxuICogVGhpcyBpcyBhIHdheSBmb3IgdGhlIHBhcmVudCB0byBkZWxheSB1bnN1c3BlbmRpbmcuXG4gKlxuICogSWYgdGhlIHBhcmVudCBkb2VzIG5vdCByZXR1cm4gYSBjYWxsYmFjayB0aGVuIHRoZSByZXNvbHZlZCB2bm9kZVxuICogZ2V0cyB1bnN1c3BlbmRlZCBpbW1lZGlhdGVseSB3aGVuIGl0IHJlc29sdmVzLlxuICpcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9IHZub2RlXG4gKiBAcmV0dXJucyB7KCh1bnN1c3BlbmQ6ICgpID0+IHZvaWQpID0+IHZvaWQpP31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1c3BlbmRlZCh2bm9kZSkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0bGV0IGNvbXBvbmVudCA9IHZub2RlLl9wYXJlbnQuX2NvbXBvbmVudDtcblx0cmV0dXJuIGNvbXBvbmVudCAmJiBjb21wb25lbnQuX3N1c3BlbmRlZCAmJiBjb21wb25lbnQuX3N1c3BlbmRlZCh2bm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXp5KGxvYWRlcikge1xuXHRsZXQgcHJvbTtcblx0bGV0IGNvbXBvbmVudDtcblx0bGV0IGVycm9yO1xuXG5cdGZ1bmN0aW9uIExhenkocHJvcHMpIHtcblx0XHRpZiAoIXByb20pIHtcblx0XHRcdHByb20gPSBsb2FkZXIoKTtcblx0XHRcdHByb20udGhlbihcblx0XHRcdFx0ZXhwb3J0cyA9PiB7XG5cdFx0XHRcdFx0Y29tcG9uZW50ID0gZXhwb3J0cy5kZWZhdWx0IHx8IGV4cG9ydHM7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGUgPT4ge1xuXHRcdFx0XHRcdGVycm9yID0gZTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRpZiAoZXJyb3IpIHtcblx0XHRcdHRocm93IGVycm9yO1xuXHRcdH1cblxuXHRcdGlmICghY29tcG9uZW50KSB7XG5cdFx0XHR0aHJvdyBwcm9tO1xuXHRcdH1cblxuXHRcdHJldHVybiBjcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgcHJvcHMpO1xuXHR9XG5cblx0TGF6eS5kaXNwbGF5TmFtZSA9ICdMYXp5Jztcblx0TGF6eS5fZm9yd2FyZGVkID0gdHJ1ZTtcblx0cmV0dXJuIExhenk7XG59XG4iLCAiaW1wb3J0IHsgQ29tcG9uZW50LCB0b0NoaWxkQXJyYXkgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgc3VzcGVuZGVkIH0gZnJvbSAnLi9zdXNwZW5zZS5qcyc7XG5cbi8vIEluZGV4ZXMgdG8gbGlua2VkIGxpc3Qgbm9kZXMgKG5vZGVzIGFyZSBzdG9yZWQgYXMgYXJyYXlzIHRvIHNhdmUgYnl0ZXMpLlxuY29uc3QgU1VTUEVOREVEX0NPVU5UID0gMDtcbmNvbnN0IFJFU09MVkVEX0NPVU5UID0gMTtcbmNvbnN0IE5FWFRfTk9ERSA9IDI7XG5cbi8vIEhhdmluZyBjdXN0b20gaW5oZXJpdGFuY2UgaW5zdGVhZCBvZiBhIGNsYXNzIGhlcmUgc2F2ZXMgYSBsb3Qgb2YgYnl0ZXMuXG5leHBvcnQgZnVuY3Rpb24gU3VzcGVuc2VMaXN0KCkge1xuXHR0aGlzLl9uZXh0ID0gbnVsbDtcblx0dGhpcy5fbWFwID0gbnVsbDtcbn1cblxuLy8gTWFyayBvbmUgb2YgY2hpbGQncyBlYXJsaWVyIHN1c3BlbnNpb25zIGFzIHJlc29sdmVkLlxuLy8gU29tZSBwZW5kaW5nIGNhbGxiYWNrcyBtYXkgYmVjb21lIGNhbGxhYmxlIGR1ZSB0byB0aGlzXG4vLyAoZS5nLiB0aGUgbGFzdCBzdXNwZW5kZWQgZGVzY2VuZGFudCBnZXRzIHJlc29sdmVkIHdoZW5cbi8vIHJldmVhbE9yZGVyID09PSAndG9nZXRoZXInKS4gUHJvY2VzcyB0aG9zZSBjYWxsYmFja3MgYXMgd2VsbC5cbmNvbnN0IHJlc29sdmUgPSAobGlzdCwgY2hpbGQsIG5vZGUpID0+IHtcblx0aWYgKCsrbm9kZVtSRVNPTFZFRF9DT1VOVF0gPT09IG5vZGVbU1VTUEVOREVEX0NPVU5UXSkge1xuXHRcdC8vIFRoZSBudW1iZXIgYSBjaGlsZCAob3IgYW55IG9mIGl0cyBkZXNjZW5kYW50cykgaGFzIGJlZW4gc3VzcGVuZGVkXG5cdFx0Ly8gbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0J3MgYmVlbiByZXNvbHZlZC4gVGhlcmVmb3JlIHdlXG5cdFx0Ly8gbWFyayB0aGUgY2hpbGQgYXMgY29tcGxldGVseSByZXNvbHZlZCBieSBkZWxldGluZyBpdCBmcm9tIC5fbWFwLlxuXHRcdC8vIFRoaXMgaXMgdXNlZCB0byBmaWd1cmUgb3V0IHdoZW4gKmFsbCogY2hpbGRyZW4gaGF2ZSBiZWVuIGNvbXBsZXRlbHlcblx0XHQvLyByZXNvbHZlZCB3aGVuIHJldmVhbE9yZGVyIGlzICd0b2dldGhlcicuXG5cdFx0bGlzdC5fbWFwLmRlbGV0ZShjaGlsZCk7XG5cdH1cblxuXHQvLyBJZiByZXZlYWxPcmRlciBpcyBmYWxzeSB0aGVuIHdlIGNhbiBkbyBhbiBlYXJseSBleGl0LCBhcyB0aGVcblx0Ly8gY2FsbGJhY2tzIHdvbid0IGdldCBxdWV1ZWQgaW4gdGhlIG5vZGUgYW55d2F5LlxuXHQvLyBJZiByZXZlYWxPcmRlciBpcyAndG9nZXRoZXInIHRoZW4gYWxzbyBkbyBhbiBlYXJseSBleGl0XG5cdC8vIGlmIGFsbCBzdXNwZW5kZWQgZGVzY2VuZGFudHMgaGF2ZSBub3QgeWV0IGJlZW4gcmVzb2x2ZWQuXG5cdGlmIChcblx0XHQhbGlzdC5wcm9wcy5yZXZlYWxPcmRlciB8fFxuXHRcdChsaXN0LnByb3BzLnJldmVhbE9yZGVyWzBdID09PSAndCcgJiYgbGlzdC5fbWFwLnNpemUpXG5cdCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFdhbGsgdGhlIGN1cnJlbnRseSBzdXNwZW5kZWQgY2hpbGRyZW4gaW4gb3JkZXIsIGNhbGxpbmcgdGhlaXJcblx0Ly8gc3RvcmVkIGNhbGxiYWNrcyBvbiB0aGUgd2F5LiBTdG9wIGlmIHdlIGVuY291bnRlciBhIGNoaWxkIHRoYXRcblx0Ly8gaGFzIG5vdCBiZWVuIGNvbXBsZXRlbHkgcmVzb2x2ZWQgeWV0LlxuXHRub2RlID0gbGlzdC5fbmV4dDtcblx0d2hpbGUgKG5vZGUpIHtcblx0XHR3aGlsZSAobm9kZS5sZW5ndGggPiAzKSB7XG5cdFx0XHRub2RlLnBvcCgpKCk7XG5cdFx0fVxuXHRcdGlmIChub2RlW1JFU09MVkVEX0NPVU5UXSA8IG5vZGVbU1VTUEVOREVEX0NPVU5UXSkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGxpc3QuX25leHQgPSBub2RlID0gbm9kZVtORVhUX05PREVdO1xuXHR9XG59O1xuXG4vLyBUaGluZ3Mgd2UgZG8gaGVyZSB0byBzYXZlIHNvbWUgYnl0ZXMgYnV0IGFyZSBub3QgcHJvcGVyIEpTIGluaGVyaXRhbmNlOlxuLy8gLSBjYWxsIGBuZXcgQ29tcG9uZW50KClgIGFzIHRoZSBwcm90b3R5cGVcbi8vIC0gZG8gbm90IHNldCBgU3VzcGVuc2UucHJvdG90eXBlLmNvbnN0cnVjdG9yYCB0byBgU3VzcGVuc2VgXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlID0gbmV3IENvbXBvbmVudCgpO1xuXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlLl9zdXNwZW5kZWQgPSBmdW5jdGlvbiAoY2hpbGQpIHtcblx0Y29uc3QgbGlzdCA9IHRoaXM7XG5cdGNvbnN0IGRlbGVnYXRlZCA9IHN1c3BlbmRlZChsaXN0Ll92bm9kZSk7XG5cblx0bGV0IG5vZGUgPSBsaXN0Ll9tYXAuZ2V0KGNoaWxkKTtcblx0bm9kZVtTVVNQRU5ERURfQ09VTlRdKys7XG5cblx0cmV0dXJuIHVuc3VzcGVuZCA9PiB7XG5cdFx0Y29uc3Qgd3JhcHBlZFVuc3VzcGVuZCA9ICgpID0+IHtcblx0XHRcdGlmICghbGlzdC5wcm9wcy5yZXZlYWxPcmRlcikge1xuXHRcdFx0XHQvLyBTcGVjaWFsIGNhc2UgdGhlIHVuZGVmaW5lZCAoZmFsc3kpIHJldmVhbE9yZGVyLCBhcyB0aGVyZVxuXHRcdFx0XHQvLyBpcyBubyBuZWVkIHRvIGNvb3JkaW5hdGUgYSBzcGVjaWZpYyBvcmRlciBvciB1bnN1c3BlbmRzLlxuXHRcdFx0XHR1bnN1c3BlbmQoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG5vZGUucHVzaCh1bnN1c3BlbmQpO1xuXHRcdFx0XHRyZXNvbHZlKGxpc3QsIGNoaWxkLCBub2RlKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdGlmIChkZWxlZ2F0ZWQpIHtcblx0XHRcdGRlbGVnYXRlZCh3cmFwcGVkVW5zdXNwZW5kKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0d3JhcHBlZFVuc3VzcGVuZCgpO1xuXHRcdH1cblx0fTtcbn07XG5cblN1c3BlbnNlTGlzdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG5cdHRoaXMuX25leHQgPSBudWxsO1xuXHR0aGlzLl9tYXAgPSBuZXcgTWFwKCk7XG5cblx0Y29uc3QgY2hpbGRyZW4gPSB0b0NoaWxkQXJyYXkocHJvcHMuY2hpbGRyZW4pO1xuXHRpZiAocHJvcHMucmV2ZWFsT3JkZXIgJiYgcHJvcHMucmV2ZWFsT3JkZXJbMF0gPT09ICdiJykge1xuXHRcdC8vIElmIG9yZGVyID09PSAnYmFja3dhcmRzJyAob3IsIHdlbGwsIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggYSAnYicpXG5cdFx0Ly8gdGhlbiBmbGlwIHRoZSBjaGlsZCBsaXN0IGFyb3VuZCBzbyB0aGF0IHRoZSBsYXN0IGNoaWxkIHdpbGwgYmVcblx0XHQvLyB0aGUgZmlyc3QgaW4gdGhlIGxpbmtlZCBsaXN0LlxuXHRcdGNoaWxkcmVuLnJldmVyc2UoKTtcblx0fVxuXHQvLyBCdWlsZCB0aGUgbGlua2VkIGxpc3QuIEl0ZXJhdGUgdGhyb3VnaCB0aGUgY2hpbGRyZW4gaW4gcmV2ZXJzZSBvcmRlclxuXHQvLyBzbyB0aGF0IGBfbmV4dGAgcG9pbnRzIHRvIHRoZSBmaXJzdCBsaW5rZWQgbGlzdCBub2RlIHRvIGJlIHJlc29sdmVkLlxuXHRmb3IgKGxldCBpID0gY2hpbGRyZW4ubGVuZ3RoOyBpLS07ICkge1xuXHRcdC8vIENyZWF0ZSBhIG5ldyBsaW5rZWQgbGlzdCBub2RlIGFzIGFuIGFycmF5IG9mIGZvcm06XG5cdFx0Ly8gXHRbc3VzcGVuZGVkX2NvdW50LCByZXNvbHZlZF9jb3VudCwgbmV4dF9ub2RlXVxuXHRcdC8vIHdoZXJlIHN1c3BlbmRlZF9jb3VudCBhbmQgcmVzb2x2ZWRfY291bnQgYXJlIG51bWVyaWMgY291bnRlcnMgZm9yXG5cdFx0Ly8ga2VlcGluZyB0cmFjayBob3cgbWFueSB0aW1lcyBhIG5vZGUgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCByZXNvbHZlZC5cblx0XHQvL1xuXHRcdC8vIE5vdGUgdGhhdCBzdXNwZW5kZWRfY291bnQgc3RhcnRzIGZyb20gMSBpbnN0ZWFkIG9mIDAsIHNvIHdlIGNhbiBibG9ja1xuXHRcdC8vIHByb2Nlc3NpbmcgY2FsbGJhY2tzIHVudGlsIGNvbXBvbmVudERpZE1vdW50IGhhcyBiZWVuIGNhbGxlZC4gSW4gYSBzZW5zZVxuXHRcdC8vIG5vZGUgaXMgc3VzcGVuZGVkIGF0IGxlYXN0IHVudGlsIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkIVxuXHRcdC8vXG5cdFx0Ly8gUGVuZGluZyBjYWxsYmFja3MgYXJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIG5vZGU6XG5cdFx0Ly8gXHRbc3VzcGVuZGVkX2NvdW50LCByZXNvbHZlZF9jb3VudCwgbmV4dF9ub2RlLCBjYWxsYmFja18wLCBjYWxsYmFja18xLCAuLi5dXG5cdFx0dGhpcy5fbWFwLnNldChjaGlsZHJlbltpXSwgKHRoaXMuX25leHQgPSBbMSwgMCwgdGhpcy5fbmV4dF0pKTtcblx0fVxuXHRyZXR1cm4gcHJvcHMuY2hpbGRyZW47XG59O1xuXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9XG5cdFN1c3BlbnNlTGlzdC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBjaGlsZHJlbiBhZnRlciBtb3VudGluZyBmb3IgdHdvIHJlYXNvbnM6XG5cdFx0Ly8gMS4gQXMgZWFjaCBub2RlW1NVU1BFTkRFRF9DT1VOVF0gc3RhcnRzIGZyb20gMSwgdGhpcyBpdGVyYXRpb24gaW5jcmVhc2VzXG5cdFx0Ly8gICAgZWFjaCBub2RlW1JFTEVBU0VEX0NPVU5UXSBieSAxLCB0aGVyZWZvcmUgYmFsYW5jaW5nIHRoZSBjb3VudGVycy5cblx0XHQvLyAgICBUaGUgbm9kZXMgY2FuIG5vdyBiZSBjb21wbGV0ZWx5IGNvbnN1bWVkIGZyb20gdGhlIGxpbmtlZCBsaXN0LlxuXHRcdC8vIDIuIEhhbmRsZSBub2RlcyB0aGF0IG1pZ2h0IGhhdmUgZ290dGVuIHJlc29sdmVkIGJldHdlZW4gcmVuZGVyIGFuZFxuXHRcdC8vICAgIGNvbXBvbmVudERpZE1vdW50LlxuXHRcdHRoaXMuX21hcC5mb3JFYWNoKChub2RlLCBjaGlsZCkgPT4ge1xuXHRcdFx0cmVzb2x2ZSh0aGlzLCBjaGlsZCwgbm9kZSk7XG5cdFx0fSk7XG5cdH07XG4iLCAiLyoqIE5vcm1hbCBoeWRyYXRpb24gdGhhdCBhdHRhY2hlcyB0byBhIERPTSB0cmVlIGJ1dCBkb2VzIG5vdCBkaWZmIGl0LiAqL1xuZXhwb3J0IGNvbnN0IE1PREVfSFlEUkFURSA9IDEgPDwgNTtcbi8qKiBTaWduaWZpZXMgdGhpcyBWTm9kZSBzdXNwZW5kZWQgb24gdGhlIHByZXZpb3VzIHJlbmRlciAqL1xuZXhwb3J0IGNvbnN0IE1PREVfU1VTUEVOREVEID0gMSA8PCA3O1xuLyoqIEluZGljYXRlcyB0aGF0IHRoaXMgbm9kZSBuZWVkcyB0byBiZSBpbnNlcnRlZCB3aGlsZSBwYXRjaGluZyBjaGlsZHJlbiAqL1xuZXhwb3J0IGNvbnN0IElOU0VSVF9WTk9ERSA9IDEgPDwgMTY7XG4vKiogSW5kaWNhdGVzIGEgVk5vZGUgaGFzIGJlZW4gbWF0Y2hlZCB3aXRoIGFub3RoZXIgVk5vZGUgaW4gdGhlIGRpZmYgKi9cbmV4cG9ydCBjb25zdCBNQVRDSEVEID0gMSA8PCAxNztcblxuLyoqIFJlc2V0IGFsbCBtb2RlIGZsYWdzICovXG5leHBvcnQgY29uc3QgUkVTRVRfTU9ERSA9IH4oTU9ERV9IWURSQVRFIHwgTU9ERV9TVVNQRU5ERUQpO1xuXG5leHBvcnQgY29uc3QgRU1QVFlfT0JKID0gLyoqIEB0eXBlIHthbnl9ICovICh7fSk7XG5leHBvcnQgY29uc3QgRU1QVFlfQVJSID0gW107XG5leHBvcnQgY29uc3QgSVNfTk9OX0RJTUVOU0lPTkFMID1cblx0L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaTtcbiIsICJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCByZW5kZXIgfSBmcm9tICdwcmVhY3QnO1xuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuLi8uLi9zcmMvaW5kZXgnKS5SZW5kZXJhYmxlUHJvcHM8eyBjb250ZXh0OiBhbnkgfT59IHByb3BzXG4gKi9cbmZ1bmN0aW9uIENvbnRleHRQcm92aWRlcihwcm9wcykge1xuXHR0aGlzLmdldENoaWxkQ29udGV4dCA9ICgpID0+IHByb3BzLmNvbnRleHQ7XG5cdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cblxuLyoqXG4gKiBQb3J0YWwgY29tcG9uZW50XG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50fVxuICogQHBhcmFtIHtvYmplY3QgfCBudWxsIHwgdW5kZWZpbmVkfSBwcm9wc1xuICpcbiAqIFRPRE86IHVzZSBjcmVhdGVSb290KCkgaW5zdGVhZCBvZiBmYWtlIHJvb3RcbiAqL1xuZnVuY3Rpb24gUG9ydGFsKHByb3BzKSB7XG5cdGNvbnN0IF90aGlzID0gdGhpcztcblx0bGV0IGNvbnRhaW5lciA9IHByb3BzLl9jb250YWluZXI7XG5cblx0X3RoaXMuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0cmVuZGVyKG51bGwsIF90aGlzLl90ZW1wKTtcblx0XHRfdGhpcy5fdGVtcCA9IG51bGw7XG5cdFx0X3RoaXMuX2NvbnRhaW5lciA9IG51bGw7XG5cdH07XG5cblx0Ly8gV2hlbiB3ZSBjaGFuZ2UgY29udGFpbmVyIHdlIHNob3VsZCBjbGVhciBvdXIgb2xkIGNvbnRhaW5lciBhbmRcblx0Ly8gaW5kaWNhdGUgYSBuZXcgbW91bnQuXG5cdGlmIChfdGhpcy5fY29udGFpbmVyICYmIF90aGlzLl9jb250YWluZXIgIT09IGNvbnRhaW5lcikge1xuXHRcdF90aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG5cdH1cblxuXHRpZiAoIV90aGlzLl90ZW1wKSB7XG5cdFx0X3RoaXMuX2NvbnRhaW5lciA9IGNvbnRhaW5lcjtcblxuXHRcdC8vIENyZWF0ZSBhIGZha2UgRE9NIHBhcmVudCBub2RlIHRoYXQgbWFuYWdlcyBhIHN1YnNldCBvZiBgY29udGFpbmVyYCdzIGNoaWxkcmVuOlxuXHRcdF90aGlzLl90ZW1wID0ge1xuXHRcdFx0bm9kZVR5cGU6IDEsXG5cdFx0XHRwYXJlbnROb2RlOiBjb250YWluZXIsXG5cdFx0XHRjaGlsZE5vZGVzOiBbXSxcblx0XHRcdGNvbnRhaW5zOiAoKSA9PiB0cnVlLFxuXHRcdFx0YXBwZW5kQ2hpbGQoY2hpbGQpIHtcblx0XHRcdFx0dGhpcy5jaGlsZE5vZGVzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRfdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTtcblx0XHRcdH0sXG5cdFx0XHRpbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZSkge1xuXHRcdFx0XHR0aGlzLmNoaWxkTm9kZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdF90aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQoY2hpbGQpO1xuXHRcdFx0fSxcblx0XHRcdHJlbW92ZUNoaWxkKGNoaWxkKSB7XG5cdFx0XHRcdHRoaXMuY2hpbGROb2Rlcy5zcGxpY2UodGhpcy5jaGlsZE5vZGVzLmluZGV4T2YoY2hpbGQpID4+PiAxLCAxKTtcblx0XHRcdFx0X3RoaXMuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8vIFJlbmRlciBvdXIgd3JhcHBpbmcgZWxlbWVudCBpbnRvIHRlbXAuXG5cdHJlbmRlcihcblx0XHRjcmVhdGVFbGVtZW50KENvbnRleHRQcm92aWRlciwgeyBjb250ZXh0OiBfdGhpcy5jb250ZXh0IH0sIHByb3BzLl92bm9kZSksXG5cdFx0X3RoaXMuX3RlbXBcblx0KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgUG9ydGFsYCB0byBjb250aW51ZSByZW5kZXJpbmcgdGhlIHZub2RlIHRyZWUgYXQgYSBkaWZmZXJlbnQgRE9NIG5vZGVcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9IHZub2RlIFRoZSB2bm9kZSB0byByZW5kZXJcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuUHJlYWN0RWxlbWVudH0gY29udGFpbmVyIFRoZSBET00gbm9kZSB0byBjb250aW51ZSByZW5kZXJpbmcgaW4gdG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb3J0YWwodm5vZGUsIGNvbnRhaW5lcikge1xuXHRjb25zdCBlbCA9IGNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7IF92bm9kZTogdm5vZGUsIF9jb250YWluZXI6IGNvbnRhaW5lciB9KTtcblx0ZWwuY29udGFpbmVySW5mbyA9IGNvbnRhaW5lcjtcblx0cmV0dXJuIGVsO1xufVxuIiwgImltcG9ydCB7XG5cdHJlbmRlciBhcyBwcmVhY3RSZW5kZXIsXG5cdGh5ZHJhdGUgYXMgcHJlYWN0SHlkcmF0ZSxcblx0b3B0aW9ucyxcblx0dG9DaGlsZEFycmF5LFxuXHRDb21wb25lbnRcbn0gZnJvbSAncHJlYWN0JztcbmltcG9ydCB7XG5cdHVzZUNhbGxiYWNrLFxuXHR1c2VDb250ZXh0LFxuXHR1c2VEZWJ1Z1ZhbHVlLFxuXHR1c2VFZmZlY3QsXG5cdHVzZUlkLFxuXHR1c2VJbXBlcmF0aXZlSGFuZGxlLFxuXHR1c2VMYXlvdXRFZmZlY3QsXG5cdHVzZU1lbW8sXG5cdHVzZVJlZHVjZXIsXG5cdHVzZVJlZixcblx0dXNlU3RhdGVcbn0gZnJvbSAncHJlYWN0L2hvb2tzJztcbmltcG9ydCB7XG5cdHVzZURlZmVycmVkVmFsdWUsXG5cdHVzZUluc2VydGlvbkVmZmVjdCxcblx0dXNlU3luY0V4dGVybmFsU3RvcmUsXG5cdHVzZVRyYW5zaXRpb25cbn0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBjb25zdCBSRUFDVF9FTEVNRU5UX1RZUEUgPVxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuZm9yICYmIFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSkgfHxcblx0MHhlYWM3O1xuXG5jb25zdCBDQU1FTF9QUk9QUyA9XG5cdC9eKD86YWNjZW50fGFsaWdubWVudHxhcmFiaWN8YmFzZWxpbmV8Y2FwfGNsaXAoPyFQYXRoVSl8Y29sb3J8ZG9taW5hbnR8ZmlsbHxmbG9vZHxmb250fGdseXBoKD8hUil8aG9yaXp8aW1hZ2UoIVMpfGxldHRlcnxsaWdodGluZ3xtYXJrZXIoPyFIfFd8VSl8b3ZlcmxpbmV8cGFpbnR8cG9pbnRlcnxzaGFwZXxzdG9wfHN0cmlrZXRocm91Z2h8c3Ryb2tlfHRleHQoPyFMKXx0cmFuc2Zvcm18dW5kZXJsaW5lfHVuaWNvZGV8dW5pdHN8dnx2ZWN0b3J8dmVydHx3b3JkfHdyaXRpbmd8eCg/IUMpKVtBLVpdLztcbmNvbnN0IE9OX0FOSSA9IC9eb24oQW5pfFRyYXxUb3V8QmVmb3JlSW5wfENvbXBvKS87XG5jb25zdCBDQU1FTF9SRVBMQUNFID0gL1tBLVowLTldL2c7XG5jb25zdCBJU19ET00gPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG4vLyBJbnB1dCB0eXBlcyBmb3Igd2hpY2ggb25jaGFuZ2Ugc2hvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gb25pbnB1dC5cbi8vIHR5cGU9XCJmaWxlfGNoZWNrYm94fHJhZGlvXCIsIHBsdXMgXCJyYW5nZVwiIGluIElFMTEuXG4vLyAoSUUxMSBkb2Vzbid0IHN1cHBvcnQgU3ltYm9sLCB3aGljaCB3ZSB1c2UgaGVyZSB0byB0dXJuIGByYWRgIGludG8gYHJhYCB3aGljaCBtYXRjaGVzIFwicmFuZ2VcIilcbmNvbnN0IG9uQ2hhbmdlSW5wdXRUeXBlID0gdHlwZSA9PlxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgU3ltYm9sKCkgPT0gJ3N5bWJvbCdcblx0XHQ/IC9maWx8Y2hlfHJhZC9cblx0XHQ6IC9maWx8Y2hlfHJhL1xuXHQpLnRlc3QodHlwZSk7XG5cbi8vIFNvbWUgbGlicmFyaWVzIGxpa2UgYHJlYWN0LXZpcnR1YWxpemVkYCBleHBsaWNpdGx5IGNoZWNrIGZvciB0aGlzLlxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG5cbi8vIGBVTlNBRkVfKmAgbGlmZWN5Y2xlIGhvb2tzXG4vLyBQcmVhY3Qgb25seSBldmVyIGludm9rZXMgdGhlIHVucHJlZml4ZWQgbWV0aG9kcy5cbi8vIEhlcmUgd2UgcHJvdmlkZSBhIGJhc2UgXCJmYWxsYmFja1wiIGltcGxlbWVudGF0aW9uIHRoYXQgY2FsbHMgYW55IGRlZmluZWQgVU5TQUZFXyBwcmVmaXhlZCBtZXRob2QuXG4vLyAtIElmIGEgY29tcG9uZW50IGRlZmluZXMgaXRzIG93biBgY29tcG9uZW50RGlkTW91bnQoKWAgKGluY2x1ZGluZyB2aWEgZGVmaW5lUHJvcGVydHkpLCB1c2UgdGhhdC5cbi8vIC0gSWYgYSBjb21wb25lbnQgZGVmaW5lcyBgVU5TQUZFX2NvbXBvbmVudERpZE1vdW50KClgLCBgY29tcG9uZW50RGlkTW91bnRgIGlzIHRoZSBhbGlhcyBnZXR0ZXIvc2V0dGVyLlxuLy8gLSBJZiBhbnl0aGluZyBhc3NpZ25zIHRvIGFuIGBVTlNBRkVfKmAgcHJvcGVydHksIHRoZSBhc3NpZ25tZW50IGlzIGZvcndhcmRlZCB0byB0aGUgdW5wcmVmaXhlZCBwcm9wZXJ0eS5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJlYWN0anMvcHJlYWN0L2lzc3Vlcy8xOTQxXG5bXG5cdCdjb21wb25lbnRXaWxsTW91bnQnLFxuXHQnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsXG5cdCdjb21wb25lbnRXaWxsVXBkYXRlJ1xuXS5mb3JFYWNoKGtleSA9PiB7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21wb25lbnQucHJvdG90eXBlLCBrZXksIHtcblx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0Z2V0KCkge1xuXHRcdFx0cmV0dXJuIHRoaXNbJ1VOU0FGRV8nICsga2V5XTtcblx0XHR9LFxuXHRcdHNldCh2KSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdFx0d3JpdGFibGU6IHRydWUsXG5cdFx0XHRcdHZhbHVlOiB2XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xufSk7XG5cbi8qKlxuICogUHJveHkgcmVuZGVyKCkgc2luY2UgUmVhY3QgcmV0dXJucyBhIENvbXBvbmVudCByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlfSB2bm9kZSBWTm9kZSB0cmVlIHRvIHJlbmRlclxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5QcmVhY3RFbGVtZW50fSBwYXJlbnQgRE9NIG5vZGUgdG8gcmVuZGVyIHZub2RlIHRyZWUgaW50b1xuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBbY2FsbGJhY2tdIE9wdGlvbmFsIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgcmVuZGVyaW5nXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50IHwgbnVsbH0gVGhlIHJvb3QgY29tcG9uZW50IHJlZmVyZW5jZSBvciBudWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIodm5vZGUsIHBhcmVudCwgY2FsbGJhY2spIHtcblx0Ly8gUmVhY3QgZGVzdHJveXMgYW55IGV4aXN0aW5nIERPTSBub2Rlcywgc2VlICMxNzI3XG5cdC8vIC4uLmJ1dCBvbmx5IG9uIHRoZSBmaXJzdCByZW5kZXIsIHNlZSAjMTgyOFxuXHRpZiAocGFyZW50Ll9jaGlsZHJlbiA9PSBudWxsKSB7XG5cdFx0cGFyZW50LnRleHRDb250ZW50ID0gJyc7XG5cdH1cblxuXHRwcmVhY3RSZW5kZXIodm5vZGUsIHBhcmVudCk7XG5cdGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgY2FsbGJhY2soKTtcblxuXHRyZXR1cm4gdm5vZGUgPyB2bm9kZS5fY29tcG9uZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5ZHJhdGUodm5vZGUsIHBhcmVudCwgY2FsbGJhY2spIHtcblx0cHJlYWN0SHlkcmF0ZSh2bm9kZSwgcGFyZW50KTtcblx0aWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSBjYWxsYmFjaygpO1xuXG5cdHJldHVybiB2bm9kZSA/IHZub2RlLl9jb21wb25lbnQgOiBudWxsO1xufVxuXG5sZXQgb2xkRXZlbnRIb29rID0gb3B0aW9ucy5ldmVudDtcbm9wdGlvbnMuZXZlbnQgPSBlID0+IHtcblx0aWYgKG9sZEV2ZW50SG9vaykgZSA9IG9sZEV2ZW50SG9vayhlKTtcblxuXHRlLnBlcnNpc3QgPSBlbXB0eTtcblx0ZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IGlzUHJvcGFnYXRpb25TdG9wcGVkO1xuXHRlLmlzRGVmYXVsdFByZXZlbnRlZCA9IGlzRGVmYXVsdFByZXZlbnRlZDtcblx0cmV0dXJuIChlLm5hdGl2ZUV2ZW50ID0gZSk7XG59O1xuXG5mdW5jdGlvbiBlbXB0eSgpIHt9XG5cbmZ1bmN0aW9uIGlzUHJvcGFnYXRpb25TdG9wcGVkKCkge1xuXHRyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGU7XG59XG5cbmZ1bmN0aW9uIGlzRGVmYXVsdFByZXZlbnRlZCgpIHtcblx0cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZDtcbn1cblxuY29uc3QgY2xhc3NOYW1lRGVzY3JpcHRvck5vbkVudW1iZXJhYmxlID0ge1xuXHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRnZXQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuY2xhc3M7XG5cdH1cbn07XG5cbmZ1bmN0aW9uIGhhbmRsZURvbVZOb2RlKHZub2RlKSB7XG5cdGxldCBwcm9wcyA9IHZub2RlLnByb3BzLFxuXHRcdHR5cGUgPSB2bm9kZS50eXBlLFxuXHRcdG5vcm1hbGl6ZWRQcm9wcyA9IHt9O1xuXG5cdGxldCBpc05vbkRhc2hlZFR5cGUgPSB0eXBlLmluZGV4T2YoJy0nKSA9PT0gLTE7XG5cdGZvciAobGV0IGkgaW4gcHJvcHMpIHtcblx0XHRsZXQgdmFsdWUgPSBwcm9wc1tpXTtcblxuXHRcdGlmIChcblx0XHRcdChpID09PSAndmFsdWUnICYmICdkZWZhdWx0VmFsdWUnIGluIHByb3BzICYmIHZhbHVlID09IG51bGwpIHx8XG5cdFx0XHQvLyBFbXVsYXRlIFJlYWN0J3MgYmVoYXZpb3Igb2Ygbm90IHJlbmRlcmluZyB0aGUgY29udGVudHMgb2Ygbm9zY3JpcHQgdGFncyBvbiB0aGUgY2xpZW50LlxuXHRcdFx0KElTX0RPTSAmJiBpID09PSAnY2hpbGRyZW4nICYmIHR5cGUgPT09ICdub3NjcmlwdCcpIHx8XG5cdFx0XHRpID09PSAnY2xhc3MnIHx8XG5cdFx0XHRpID09PSAnY2xhc3NOYW1lJ1xuXHRcdCkge1xuXHRcdFx0Ly8gU2tpcCBhcHBseWluZyB2YWx1ZSBpZiBpdCBpcyBudWxsL3VuZGVmaW5lZCBhbmQgd2UgYWxyZWFkeSBzZXRcblx0XHRcdC8vIGEgZGVmYXVsdCB2YWx1ZVxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bGV0IGxvd2VyQ2FzZWQgPSBpLnRvTG93ZXJDYXNlKCk7XG5cdFx0aWYgKGkgPT09ICdkZWZhdWx0VmFsdWUnICYmICd2YWx1ZScgaW4gcHJvcHMgJiYgcHJvcHMudmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0Ly8gYGRlZmF1bHRWYWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZhbGxiYWNrIGB2YWx1ZWAgd2hlbiBhIHZhbHVlIHByb3AgaXMgcHJlc2VudCBidXQgbnVsbC91bmRlZmluZWQuXG5cdFx0XHQvLyBgZGVmYXVsdFZhbHVlYCBmb3IgRWxlbWVudHMgd2l0aCBubyB2YWx1ZSBwcm9wIGlzIHRoZSBzYW1lIGFzIHRoZSBET00gZGVmYXVsdFZhbHVlIHByb3BlcnR5LlxuXHRcdFx0aSA9ICd2YWx1ZSc7XG5cdFx0fSBlbHNlIGlmIChpID09PSAnZG93bmxvYWQnICYmIHZhbHVlID09PSB0cnVlKSB7XG5cdFx0XHQvLyBDYWxsaW5nIGBzZXRBdHRyaWJ1dGVgIHdpdGggYSB0cnV0aHkgdmFsdWUgd2lsbCBsZWFkIHRvIGl0IGJlaW5nXG5cdFx0XHQvLyBwYXNzZWQgYXMgYSBzdHJpbmdpZmllZCB2YWx1ZSwgZS5nLiBgZG93bmxvYWQ9XCJ0cnVlXCJgLiBSZWFjdFxuXHRcdFx0Ly8gY29udmVydHMgaXQgdG8gYW4gZW1wdHkgc3RyaW5nIGluc3RlYWQsIG90aGVyd2lzZSB0aGUgYXR0cmlidXRlXG5cdFx0XHQvLyB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdGhlIGZpbGUgbmFtZSBhbmQgdGhlIGZpbGUgd2lsbCBiZSBjYWxsZWRcblx0XHRcdC8vIFwidHJ1ZVwiIHVwb24gZG93bmxvYWRpbmcgaXQuXG5cdFx0XHR2YWx1ZSA9ICcnO1xuXHRcdH0gZWxzZSBpZiAobG93ZXJDYXNlZCA9PT0gJ3RyYW5zbGF0ZScgJiYgdmFsdWUgPT09ICdubycpIHtcblx0XHRcdHZhbHVlID0gZmFsc2U7XG5cdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkWzBdID09PSAnbycgJiYgbG93ZXJDYXNlZFsxXSA9PT0gJ24nKSB7XG5cdFx0XHRpZiAobG93ZXJDYXNlZCA9PT0gJ29uZG91YmxlY2xpY2snKSB7XG5cdFx0XHRcdGkgPSAnb25kYmxjbGljayc7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRsb3dlckNhc2VkID09PSAnb25jaGFuZ2UnICYmXG5cdFx0XHRcdCh0eXBlID09PSAnaW5wdXQnIHx8IHR5cGUgPT09ICd0ZXh0YXJlYScpICYmXG5cdFx0XHRcdCFvbkNoYW5nZUlucHV0VHlwZShwcm9wcy50eXBlKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGxvd2VyQ2FzZWQgPSBpID0gJ29uaW5wdXQnO1xuXHRcdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkID09PSAnb25mb2N1cycpIHtcblx0XHRcdFx0aSA9ICdvbmZvY3VzaW4nO1xuXHRcdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkID09PSAnb25ibHVyJykge1xuXHRcdFx0XHRpID0gJ29uZm9jdXNvdXQnO1xuXHRcdFx0fSBlbHNlIGlmIChPTl9BTkkudGVzdChpKSkge1xuXHRcdFx0XHRpID0gbG93ZXJDYXNlZDtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGlzTm9uRGFzaGVkVHlwZSAmJiBDQU1FTF9QUk9QUy50ZXN0KGkpKSB7XG5cdFx0XHRpID0gaS5yZXBsYWNlKENBTUVMX1JFUExBQ0UsICctJCYnKS50b0xvd2VyQ2FzZSgpO1xuXHRcdH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcblx0XHRcdHZhbHVlID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIEFkZCBzdXBwb3J0IGZvciBvbklucHV0IGFuZCBvbkNoYW5nZSwgc2VlICMzNTYxXG5cdFx0Ly8gaWYgd2UgaGF2ZSBhbiBvbmlucHV0IHByb3AgYWxyZWFkeSBjaGFuZ2UgaXQgdG8gb25pbnB1dENhcHR1cmVcblx0XHRpZiAobG93ZXJDYXNlZCA9PT0gJ29uaW5wdXQnKSB7XG5cdFx0XHRpID0gbG93ZXJDYXNlZDtcblx0XHRcdGlmIChub3JtYWxpemVkUHJvcHNbaV0pIHtcblx0XHRcdFx0aSA9ICdvbmlucHV0Q2FwdHVyZSc7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bm9ybWFsaXplZFByb3BzW2ldID0gdmFsdWU7XG5cdH1cblxuXHQvLyBBZGQgc3VwcG9ydCBmb3IgYXJyYXkgc2VsZWN0IHZhbHVlczogPHNlbGVjdCBtdWx0aXBsZSB2YWx1ZT17W119IC8+XG5cdGlmIChcblx0XHR0eXBlID09ICdzZWxlY3QnICYmXG5cdFx0bm9ybWFsaXplZFByb3BzLm11bHRpcGxlICYmXG5cdFx0QXJyYXkuaXNBcnJheShub3JtYWxpemVkUHJvcHMudmFsdWUpXG5cdCkge1xuXHRcdC8vIGZvckVhY2goKSBhbHdheXMgcmV0dXJucyB1bmRlZmluZWQsIHdoaWNoIHdlIGFidXNlIGhlcmUgdG8gdW5zZXQgdGhlIHZhbHVlIHByb3AuXG5cdFx0bm9ybWFsaXplZFByb3BzLnZhbHVlID0gdG9DaGlsZEFycmF5KHByb3BzLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcblx0XHRcdGNoaWxkLnByb3BzLnNlbGVjdGVkID1cblx0XHRcdFx0bm9ybWFsaXplZFByb3BzLnZhbHVlLmluZGV4T2YoY2hpbGQucHJvcHMudmFsdWUpICE9IC0xO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gQWRkaW5nIHN1cHBvcnQgZm9yIGRlZmF1bHRWYWx1ZSBpbiBzZWxlY3QgdGFnXG5cdGlmICh0eXBlID09ICdzZWxlY3QnICYmIG5vcm1hbGl6ZWRQcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy52YWx1ZSA9IHRvQ2hpbGRBcnJheShwcm9wcy5jaGlsZHJlbikuZm9yRWFjaChjaGlsZCA9PiB7XG5cdFx0XHRpZiAobm9ybWFsaXplZFByb3BzLm11bHRpcGxlKSB7XG5cdFx0XHRcdGNoaWxkLnByb3BzLnNlbGVjdGVkID1cblx0XHRcdFx0XHRub3JtYWxpemVkUHJvcHMuZGVmYXVsdFZhbHVlLmluZGV4T2YoY2hpbGQucHJvcHMudmFsdWUpICE9IC0xO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2hpbGQucHJvcHMuc2VsZWN0ZWQgPVxuXHRcdFx0XHRcdG5vcm1hbGl6ZWRQcm9wcy5kZWZhdWx0VmFsdWUgPT0gY2hpbGQucHJvcHMudmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRpZiAocHJvcHMuY2xhc3MgJiYgIXByb3BzLmNsYXNzTmFtZSkge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy5jbGFzcyA9IHByb3BzLmNsYXNzO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcblx0XHRcdG5vcm1hbGl6ZWRQcm9wcyxcblx0XHRcdCdjbGFzc05hbWUnLFxuXHRcdFx0Y2xhc3NOYW1lRGVzY3JpcHRvck5vbkVudW1iZXJhYmxlXG5cdFx0KTtcblx0fSBlbHNlIGlmIChwcm9wcy5jbGFzc05hbWUgJiYgIXByb3BzLmNsYXNzKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNsYXNzID0gbm9ybWFsaXplZFByb3BzLmNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcblx0fSBlbHNlIGlmIChwcm9wcy5jbGFzcyAmJiBwcm9wcy5jbGFzc05hbWUpIHtcblx0XHRub3JtYWxpemVkUHJvcHMuY2xhc3MgPSBub3JtYWxpemVkUHJvcHMuY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuXHR9XG5cblx0dm5vZGUucHJvcHMgPSBub3JtYWxpemVkUHJvcHM7XG59XG5cbmxldCBvbGRWTm9kZUhvb2sgPSBvcHRpb25zLnZub2RlO1xub3B0aW9ucy52bm9kZSA9IHZub2RlID0+IHtcblx0Ly8gb25seSBub3JtYWxpemUgcHJvcHMgb24gRWxlbWVudCBub2Rlc1xuXHRpZiAodHlwZW9mIHZub2RlLnR5cGUgPT09ICdzdHJpbmcnKSB7XG5cdFx0aGFuZGxlRG9tVk5vZGUodm5vZGUpO1xuXHR9XG5cblx0dm5vZGUuJCR0eXBlb2YgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG5cblx0aWYgKG9sZFZOb2RlSG9vaykgb2xkVk5vZGVIb29rKHZub2RlKTtcbn07XG5cbi8vIE9ubHkgbmVlZGVkIGZvciByZWFjdC1yZWxheVxubGV0IGN1cnJlbnRDb21wb25lbnQ7XG5jb25zdCBvbGRCZWZvcmVSZW5kZXIgPSBvcHRpb25zLl9yZW5kZXI7XG5vcHRpb25zLl9yZW5kZXIgPSBmdW5jdGlvbiAodm5vZGUpIHtcblx0aWYgKG9sZEJlZm9yZVJlbmRlcikge1xuXHRcdG9sZEJlZm9yZVJlbmRlcih2bm9kZSk7XG5cdH1cblx0Y3VycmVudENvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQ7XG59O1xuXG5jb25zdCBvbGREaWZmZWQgPSBvcHRpb25zLmRpZmZlZDtcbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMuZGlmZmVkID0gZnVuY3Rpb24gKHZub2RlKSB7XG5cdGlmIChvbGREaWZmZWQpIHtcblx0XHRvbGREaWZmZWQodm5vZGUpO1xuXHR9XG5cblx0Y29uc3QgcHJvcHMgPSB2bm9kZS5wcm9wcztcblx0Y29uc3QgZG9tID0gdm5vZGUuX2RvbTtcblxuXHRpZiAoXG5cdFx0ZG9tICE9IG51bGwgJiZcblx0XHR2bm9kZS50eXBlID09PSAndGV4dGFyZWEnICYmXG5cdFx0J3ZhbHVlJyBpbiBwcm9wcyAmJlxuXHRcdHByb3BzLnZhbHVlICE9PSBkb20udmFsdWVcblx0KSB7XG5cdFx0ZG9tLnZhbHVlID0gcHJvcHMudmFsdWUgPT0gbnVsbCA/ICcnIDogcHJvcHMudmFsdWU7XG5cdH1cblxuXHRjdXJyZW50Q29tcG9uZW50ID0gbnVsbDtcbn07XG5cbi8vIFRoaXMgaXMgYSB2ZXJ5IHZlcnkgcHJpdmF0ZSBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgUmVhY3QgaXRcbi8vIGlzIHVzZWQgdG8gc29ydC1vZiBkbyBydW50aW1lIGRlcGVuZGVuY3kgaW5qZWN0aW9uLlxuZXhwb3J0IGNvbnN0IF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0ge1xuXHRSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiB7XG5cdFx0Y3VycmVudDoge1xuXHRcdFx0cmVhZENvbnRleHQoY29udGV4dCkge1xuXHRcdFx0XHRyZXR1cm4gY3VycmVudENvbXBvbmVudC5fZ2xvYmFsQ29udGV4dFtjb250ZXh0Ll9pZF0ucHJvcHMudmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0dXNlQ2FsbGJhY2ssXG5cdFx0XHR1c2VDb250ZXh0LFxuXHRcdFx0dXNlRGVidWdWYWx1ZSxcblx0XHRcdHVzZURlZmVycmVkVmFsdWUsXG5cdFx0XHR1c2VFZmZlY3QsXG5cdFx0XHR1c2VJZCxcblx0XHRcdHVzZUltcGVyYXRpdmVIYW5kbGUsXG5cdFx0XHR1c2VJbnNlcnRpb25FZmZlY3QsXG5cdFx0XHR1c2VMYXlvdXRFZmZlY3QsXG5cdFx0XHR1c2VNZW1vLFxuXHRcdFx0Ly8gdXNlTXV0YWJsZVNvdXJjZSwgLy8gZXhwZXJpbWVudGFsLW9ubHkgYW5kIHJlcGxhY2VkIGJ5IHVTRVMsIGxpa2VseSBub3Qgd29ydGggc3VwcG9ydGluZ1xuXHRcdFx0dXNlUmVkdWNlcixcblx0XHRcdHVzZVJlZixcblx0XHRcdHVzZVN0YXRlLFxuXHRcdFx0dXNlU3luY0V4dGVybmFsU3RvcmUsXG5cdFx0XHR1c2VUcmFuc2l0aW9uXG5cdFx0fVxuXHR9XG59O1xuIiwgImltcG9ydCB7XG5cdGNyZWF0ZUVsZW1lbnQsXG5cdHJlbmRlciBhcyBwcmVhY3RSZW5kZXIsXG5cdGNsb25lRWxlbWVudCBhcyBwcmVhY3RDbG9uZUVsZW1lbnQsXG5cdGNyZWF0ZVJlZixcblx0Q29tcG9uZW50LFxuXHRjcmVhdGVDb250ZXh0LFxuXHRGcmFnbWVudFxufSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHtcblx0dXNlU3RhdGUsXG5cdHVzZUlkLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VFZmZlY3QsXG5cdHVzZUxheW91dEVmZmVjdCxcblx0dXNlUmVmLFxuXHR1c2VJbXBlcmF0aXZlSGFuZGxlLFxuXHR1c2VNZW1vLFxuXHR1c2VDYWxsYmFjayxcblx0dXNlQ29udGV4dCxcblx0dXNlRGVidWdWYWx1ZVxufSBmcm9tICdwcmVhY3QvaG9va3MnO1xuaW1wb3J0IHsgUHVyZUNvbXBvbmVudCB9IGZyb20gJy4vUHVyZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAnLi9tZW1vJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICcuL2ZvcndhcmRSZWYnO1xuaW1wb3J0IHsgQ2hpbGRyZW4gfSBmcm9tICcuL0NoaWxkcmVuJztcbmltcG9ydCB7IFN1c3BlbnNlLCBsYXp5IH0gZnJvbSAnLi9zdXNwZW5zZSc7XG5pbXBvcnQgeyBTdXNwZW5zZUxpc3QgfSBmcm9tICcuL3N1c3BlbnNlLWxpc3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAnLi9wb3J0YWxzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7XG5cdGh5ZHJhdGUsXG5cdHJlbmRlcixcblx0UkVBQ1RfRUxFTUVOVF9UWVBFLFxuXHRfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRFxufSBmcm9tICcuL3JlbmRlcic7XG5cbmNvbnN0IHZlcnNpb24gPSAnMTguMy4xJzsgLy8gdHJpY2sgbGlicmFyaWVzIHRvIHRoaW5rIHdlIGFyZSByZWFjdFxuXG4vKipcbiAqIExlZ2FjeSB2ZXJzaW9uIG9mIGNyZWF0ZUVsZW1lbnQuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlW1widHlwZVwiXX0gdHlwZSBUaGUgbm9kZSBuYW1lIG9yIENvbXBvbmVudCBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBjcmVhdGVGYWN0b3J5KHR5cGUpIHtcblx0cmV0dXJuIGNyZWF0ZUVsZW1lbnQuYmluZChudWxsLCB0eXBlKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSB2YWxpZCAocClyZWFjdCBub2RlLlxuICogQHBhcmFtIHsqfSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkge1xuXHRyZXR1cm4gISFlbGVtZW50ICYmIGVsZW1lbnQuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSBGcmFnbWVudCBub2RlLlxuICogQHBhcmFtIHsqfSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGcmFnbWVudChlbGVtZW50KSB7XG5cdHJldHVybiBpc1ZhbGlkRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LnR5cGUgPT09IEZyYWdtZW50O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBwYXNzZWQgZWxlbWVudCBpcyBhIE1lbW8gbm9kZS5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzTWVtbyhlbGVtZW50KSB7XG5cdHJldHVybiAoXG5cdFx0ISFlbGVtZW50ICYmXG5cdFx0ISFlbGVtZW50LmRpc3BsYXlOYW1lICYmXG5cdFx0KHR5cGVvZiBlbGVtZW50LmRpc3BsYXlOYW1lID09PSAnc3RyaW5nJyB8fFxuXHRcdFx0ZWxlbWVudC5kaXNwbGF5TmFtZSBpbnN0YW5jZW9mIFN0cmluZykgJiZcblx0XHRlbGVtZW50LmRpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoJ01lbW8oJylcblx0KTtcbn1cblxuLyoqXG4gKiBXcmFwIGBjbG9uZUVsZW1lbnRgIHRvIGFib3J0IGlmIHRoZSBwYXNzZWQgZWxlbWVudCBpcyBub3QgYSB2YWxpZCBlbGVtZW50IGFuZCBhcHBseVxuICogYWxsIHZub2RlIG5vcm1hbGl6YXRpb25zLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZX0gZWxlbWVudCBUaGUgdm5vZGUgdG8gY2xvbmVcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBQcm9wcyB0byBhZGQgd2hlbiBjbG9uaW5nXG4gKiBAcGFyYW0ge0FycmF5PGltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudENoaWxkcmVuPn0gcmVzdCBPcHRpb25hbCBjb21wb25lbnQgY2hpbGRyZW5cbiAqL1xuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQpIHtcblx0aWYgKCFpc1ZhbGlkRWxlbWVudChlbGVtZW50KSkgcmV0dXJuIGVsZW1lbnQ7XG5cdHJldHVybiBwcmVhY3RDbG9uZUVsZW1lbnQuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBjb21wb25lbnQgdHJlZSBmcm9tIHRoZSBET00sIGluY2x1ZGluZyBzdGF0ZSBhbmQgZXZlbnQgaGFuZGxlcnMuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdEVsZW1lbnR9IGNvbnRhaW5lclxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHVubW91bnRDb21wb25lbnRBdE5vZGUoY29udGFpbmVyKSB7XG5cdGlmIChjb250YWluZXIuX2NoaWxkcmVuKSB7XG5cdFx0cHJlYWN0UmVuZGVyKG51bGwsIGNvbnRhaW5lcik7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWF0Y2hpbmcgRE9NIG5vZGUgZm9yIGEgY29tcG9uZW50XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gY29tcG9uZW50XG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuUHJlYWN0RWxlbWVudCB8IG51bGx9XG4gKi9cbmZ1bmN0aW9uIGZpbmRET01Ob2RlKGNvbXBvbmVudCkge1xuXHRyZXR1cm4gKFxuXHRcdChjb21wb25lbnQgJiZcblx0XHRcdChjb21wb25lbnQuYmFzZSB8fCAoY29tcG9uZW50Lm5vZGVUeXBlID09PSAxICYmIGNvbXBvbmVudCkpKSB8fFxuXHRcdG51bGxcblx0KTtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkIHdheSB0byBjb250cm9sIGJhdGNoZWQgcmVuZGVyaW5nIGluc2lkZSB0aGUgcmVjb25jaWxlciwgYnV0IHdlXG4gKiBhbHJlYWR5IHNjaGVkdWxlIGluIGJhdGNoZXMgaW5zaWRlIG91ciByZW5kZXJpbmcgY29kZVxuICogQHRlbXBsYXRlIEFyZ1xuICogQHBhcmFtIHsoYXJnOiBBcmcpID0+IHZvaWR9IGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgdHJpZ2dlcnMgdGhlIHVwZGF0ZWRcbiAqIEBwYXJhbSB7QXJnfSBbYXJnXSBPcHRpb25hbCBhcmd1bWVudCB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbmNvbnN0IHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gKGNhbGxiYWNrLCBhcmcpID0+IGNhbGxiYWNrKGFyZyk7XG5cbi8qKlxuICogSW4gUmVhY3QsIGBmbHVzaFN5bmNgIGZsdXNoZXMgdGhlIGVudGlyZSB0cmVlIGFuZCBmb3JjZXMgYSByZXJlbmRlci4gSXQnc1xuICogaW1wbG1lbnRlZCBoZXJlIGFzIGEgbm8tb3AuXG4gKiBAdGVtcGxhdGUgQXJnXG4gKiBAdGVtcGxhdGUgUmVzdWx0XG4gKiBAcGFyYW0geyhhcmc6IEFyZykgPT4gUmVzdWx0fSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHJ1bnMgYmVmb3JlIHRoZSBmbHVzaFxuICogQHBhcmFtIHtBcmd9IFthcmddIE9wdGlvbmFsIGFyZ3VtZW50IHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2tcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGZsdXNoU3luYyA9IChjYWxsYmFjaywgYXJnKSA9PiBjYWxsYmFjayhhcmcpO1xuXG4vKipcbiAqIFN0cmljdCBNb2RlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBQcmVhY3QsIHNvIHdlIHByb3ZpZGUgYSBzdGFuZC1pbiBmb3IgaXRcbiAqIHRoYXQganVzdCByZW5kZXJzIGl0cyBjaGlsZHJlbiB3aXRob3V0IGltcG9zaW5nIGFueSByZXN0cmljdGlvbnMuXG4gKi9cbmNvbnN0IFN0cmljdE1vZGUgPSBGcmFnbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYikge1xuXHRjYigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVmZXJyZWRWYWx1ZSh2YWwpIHtcblx0cmV0dXJuIHZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oKSB7XG5cdHJldHVybiBbZmFsc2UsIHN0YXJ0VHJhbnNpdGlvbl07XG59XG5cbi8vIFRPRE86IGluIHRoZW9yeSB0aGlzIHNob3VsZCBiZSBkb25lIGFmdGVyIGEgVk5vZGUgaXMgZGlmZmVkIGFzIHdlIHdhbnQgdG8gaW5zZXJ0XG4vLyBzdHlsZXMvLi4uIGJlZm9yZSBpdCBhdHRhY2hlc1xuZXhwb3J0IGNvbnN0IHVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcblxuLy8gY29tcGF0IHRvIHJlYWN0LWlzXG5leHBvcnQgY29uc3QgaXNFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5cbi8qKlxuICogVGhpcyBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL21haW4vcGFja2FnZXMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvc3JjL3VzZVN5bmNFeHRlcm5hbFN0b3JlU2hpbUNsaWVudC5qcyNMODRcbiAqIG9uIGEgaGlnaCBsZXZlbCB0aGlzIGN1dHMgb3V0IHRoZSB3YXJuaW5ncywgLi4uIGFuZCBhdHRlbXB0cyBhIHNtYWxsZXIgaW1wbGVtZW50YXRpb25cbiAqIEB0eXBlZGVmIHt7IF92YWx1ZTogYW55OyBfZ2V0U25hcHNob3Q6ICgpID0+IGFueSB9fSBTdG9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCkge1xuXHRjb25zdCB2YWx1ZSA9IGdldFNuYXBzaG90KCk7XG5cblx0LyoqXG5cdCAqIEB0eXBlZGVmIHt7IF9pbnN0YW5jZTogU3RvcmUgfX0gU3RvcmVSZWZcblx0ICogQHR5cGUge1tTdG9yZVJlZiwgKHN0b3JlOiBTdG9yZVJlZikgPT4gdm9pZF19XG5cdCAqL1xuXHRjb25zdCBbeyBfaW5zdGFuY2UgfSwgZm9yY2VVcGRhdGVdID0gdXNlU3RhdGUoe1xuXHRcdF9pbnN0YW5jZTogeyBfdmFsdWU6IHZhbHVlLCBfZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90IH1cblx0fSk7XG5cblx0dXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcblx0XHRfaW5zdGFuY2UuX3ZhbHVlID0gdmFsdWU7XG5cdFx0X2luc3RhbmNlLl9nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90O1xuXG5cdFx0aWYgKGRpZFNuYXBzaG90Q2hhbmdlKF9pbnN0YW5jZSkpIHtcblx0XHRcdGZvcmNlVXBkYXRlKHsgX2luc3RhbmNlIH0pO1xuXHRcdH1cblx0fSwgW3N1YnNjcmliZSwgdmFsdWUsIGdldFNuYXBzaG90XSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoZGlkU25hcHNob3RDaGFuZ2UoX2luc3RhbmNlKSkge1xuXHRcdFx0Zm9yY2VVcGRhdGUoeyBfaW5zdGFuY2UgfSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoZGlkU25hcHNob3RDaGFuZ2UoX2luc3RhbmNlKSkge1xuXHRcdFx0XHRmb3JjZVVwZGF0ZSh7IF9pbnN0YW5jZSB9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSwgW3N1YnNjcmliZV0pO1xuXG5cdHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIEB0eXBlIHsoaW5zdDogU3RvcmUpID0+IGJvb2xlYW59ICovXG5mdW5jdGlvbiBkaWRTbmFwc2hvdENoYW5nZShpbnN0KSB7XG5cdGNvbnN0IGxhdGVzdEdldFNuYXBzaG90ID0gaW5zdC5fZ2V0U25hcHNob3Q7XG5cdGNvbnN0IHByZXZWYWx1ZSA9IGluc3QuX3ZhbHVlO1xuXHR0cnkge1xuXHRcdGNvbnN0IG5leHRWYWx1ZSA9IGxhdGVzdEdldFNuYXBzaG90KCk7XG5cdFx0cmV0dXJuICFpcyhwcmV2VmFsdWUsIG5leHRWYWx1ZSk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuZXhwb3J0ICogZnJvbSAncHJlYWN0L2hvb2tzJztcbmV4cG9ydCB7XG5cdHZlcnNpb24sXG5cdENoaWxkcmVuLFxuXHRyZW5kZXIsXG5cdGh5ZHJhdGUsXG5cdHVubW91bnRDb21wb25lbnRBdE5vZGUsXG5cdGNyZWF0ZVBvcnRhbCxcblx0Y3JlYXRlRWxlbWVudCxcblx0Y3JlYXRlQ29udGV4dCxcblx0Y3JlYXRlRmFjdG9yeSxcblx0Y2xvbmVFbGVtZW50LFxuXHRjcmVhdGVSZWYsXG5cdEZyYWdtZW50LFxuXHRpc1ZhbGlkRWxlbWVudCxcblx0aXNGcmFnbWVudCxcblx0aXNNZW1vLFxuXHRmaW5kRE9NTm9kZSxcblx0Q29tcG9uZW50LFxuXHRQdXJlQ29tcG9uZW50LFxuXHRtZW1vLFxuXHRmb3J3YXJkUmVmLFxuXHRmbHVzaFN5bmMsXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2Vcblx0dW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsXG5cdFN0cmljdE1vZGUsXG5cdFN1c3BlbnNlLFxuXHRTdXNwZW5zZUxpc3QsXG5cdGxhenksXG5cdF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEXG59O1xuXG4vLyBSZWFjdCBjb3BpZXMgdGhlIG5hbWVkIGV4cG9ydHMgdG8gdGhlIGRlZmF1bHQgb25lLlxuZXhwb3J0IGRlZmF1bHQge1xuXHR1c2VTdGF0ZSxcblx0dXNlSWQsXG5cdHVzZVJlZHVjZXIsXG5cdHVzZUVmZmVjdCxcblx0dXNlTGF5b3V0RWZmZWN0LFxuXHR1c2VJbnNlcnRpb25FZmZlY3QsXG5cdHVzZVRyYW5zaXRpb24sXG5cdHVzZURlZmVycmVkVmFsdWUsXG5cdHVzZVN5bmNFeHRlcm5hbFN0b3JlLFxuXHRzdGFydFRyYW5zaXRpb24sXG5cdHVzZVJlZixcblx0dXNlSW1wZXJhdGl2ZUhhbmRsZSxcblx0dXNlTWVtbyxcblx0dXNlQ2FsbGJhY2ssXG5cdHVzZUNvbnRleHQsXG5cdHVzZURlYnVnVmFsdWUsXG5cdHZlcnNpb24sXG5cdENoaWxkcmVuLFxuXHRyZW5kZXIsXG5cdGh5ZHJhdGUsXG5cdHVubW91bnRDb21wb25lbnRBdE5vZGUsXG5cdGNyZWF0ZVBvcnRhbCxcblx0Y3JlYXRlRWxlbWVudCxcblx0Y3JlYXRlQ29udGV4dCxcblx0Y3JlYXRlRmFjdG9yeSxcblx0Y2xvbmVFbGVtZW50LFxuXHRjcmVhdGVSZWYsXG5cdEZyYWdtZW50LFxuXHRpc1ZhbGlkRWxlbWVudCxcblx0aXNFbGVtZW50LFxuXHRpc0ZyYWdtZW50LFxuXHRpc01lbW8sXG5cdGZpbmRET01Ob2RlLFxuXHRDb21wb25lbnQsXG5cdFB1cmVDb21wb25lbnQsXG5cdG1lbW8sXG5cdGZvcndhcmRSZWYsXG5cdGZsdXNoU3luYyxcblx0dW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsXG5cdFN0cmljdE1vZGUsXG5cdFN1c3BlbnNlLFxuXHRTdXNwZW5zZUxpc3QsXG5cdGxhenksXG5cdF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEXG59O1xuIiwgImNvbnN0IEVOQ09ERURfRU5USVRJRVMgPSAvW1wiJjxdLztcblxuLyoqIEBwYXJhbSB7c3RyaW5nfSBzdHIgKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVFbnRpdGllcyhzdHIpIHtcblx0Ly8gU2tpcCBhbGwgd29yayBmb3Igc3RyaW5ncyB3aXRoIG5vIGVudGl0aWVzIG5lZWRpbmcgZW5jb2Rpbmc6XG5cdGlmIChzdHIubGVuZ3RoID09PSAwIHx8IEVOQ09ERURfRU5USVRJRVMudGVzdChzdHIpID09PSBmYWxzZSkgcmV0dXJuIHN0cjtcblxuXHRsZXQgbGFzdCA9IDAsXG5cdFx0aSA9IDAsXG5cdFx0b3V0ID0gJycsXG5cdFx0Y2ggPSAnJztcblxuXHQvLyBTZWVrIGZvcndhcmQgaW4gc3RyIHVudGlsIHRoZSBuZXh0IGVudGl0eSBjaGFyOlxuXHRmb3IgKDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaSkpIHtcblx0XHRcdGNhc2UgMzQ6XG5cdFx0XHRcdGNoID0gJyZxdW90Oyc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAzODpcblx0XHRcdFx0Y2ggPSAnJmFtcDsnO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgNjA6XG5cdFx0XHRcdGNoID0gJyZsdDsnO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHQvLyBBcHBlbmQgc2tpcHBlZC9idWZmZXJlZCBjaGFyYWN0ZXJzIGFuZCB0aGUgZW5jb2RlZCBlbnRpdHk6XG5cdFx0aWYgKGkgIT09IGxhc3QpIG91dCArPSBzdHIuc2xpY2UobGFzdCwgaSk7XG5cdFx0b3V0ICs9IGNoO1xuXHRcdC8vIFN0YXJ0IHRoZSBuZXh0IHNlZWsvYnVmZmVyIGFmdGVyIHRoZSBlbnRpdHkncyBvZmZzZXQ6XG5cdFx0bGFzdCA9IGkgKyAxO1xuXHR9XG5cdGlmIChpICE9PSBsYXN0KSBvdXQgKz0gc3RyLnNsaWNlKGxhc3QsIGkpO1xuXHRyZXR1cm4gb3V0O1xufVxuIiwgIi8qKiBOb3JtYWwgaHlkcmF0aW9uIHRoYXQgYXR0YWNoZXMgdG8gYSBET00gdHJlZSBidXQgZG9lcyBub3QgZGlmZiBpdC4gKi9cbmV4cG9ydCBjb25zdCBNT0RFX0hZRFJBVEUgPSAxIDw8IDU7XG4vKiogU2lnbmlmaWVzIHRoaXMgVk5vZGUgc3VzcGVuZGVkIG9uIHRoZSBwcmV2aW91cyByZW5kZXIgKi9cbmV4cG9ydCBjb25zdCBNT0RFX1NVU1BFTkRFRCA9IDEgPDwgNztcbi8qKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIG5vZGUgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgd2hpbGUgcGF0Y2hpbmcgY2hpbGRyZW4gKi9cbmV4cG9ydCBjb25zdCBJTlNFUlRfVk5PREUgPSAxIDw8IDE2O1xuLyoqIEluZGljYXRlcyBhIFZOb2RlIGhhcyBiZWVuIG1hdGNoZWQgd2l0aCBhbm90aGVyIFZOb2RlIGluIHRoZSBkaWZmICovXG5leHBvcnQgY29uc3QgTUFUQ0hFRCA9IDEgPDwgMTc7XG5cbi8qKiBSZXNldCBhbGwgbW9kZSBmbGFncyAqL1xuZXhwb3J0IGNvbnN0IFJFU0VUX01PREUgPSB+KE1PREVfSFlEUkFURSB8IE1PREVfU1VTUEVOREVEKTtcblxuZXhwb3J0IGNvbnN0IEVNUFRZX09CSiA9IC8qKiBAdHlwZSB7YW55fSAqLyAoe30pO1xuZXhwb3J0IGNvbnN0IEVNUFRZX0FSUiA9IFtdO1xuZXhwb3J0IGNvbnN0IElTX05PTl9ESU1FTlNJT05BTCA9XG5cdC9hY2l0fGV4KD86c3xnfG58cHwkKXxycGh8Z3JpZHxvd3N8bW5jfG50d3xpbmVbY2hdfHpvb3xeb3JkfGl0ZXJhL2k7XG4iLCAiaW1wb3J0IHsgb3B0aW9ucywgRnJhZ21lbnQgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgZW5jb2RlRW50aXRpZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IElTX05PTl9ESU1FTlNJT05BTCB9IGZyb20gJy4uLy4uL3NyYy9jb25zdGFudHMnO1xuXG5sZXQgdm5vZGVJZCA9IDA7XG5cbmNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIEBmaWxlb3ZlcnZpZXdcbiAqIFRoaXMgZmlsZSBleHBvcnRzIHZhcmlvdXMgbWV0aG9kcyB0aGF0IGltcGxlbWVudCBCYWJlbCdzIFwiYXV0b21hdGljXCIgSlNYIHJ1bnRpbWUgQVBJOlxuICogLSBqc3godHlwZSwgcHJvcHMsIGtleSlcbiAqIC0ganN4cyh0eXBlLCBwcm9wcywga2V5KVxuICogLSBqc3hERVYodHlwZSwgcHJvcHMsIGtleSwgX19zb3VyY2UsIF9fc2VsZilcbiAqXG4gKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY3JlYXRlVk5vZGUgaGVyZSBpcyBvcHRpbWl6ZWQgZm9yIHBlcmZvcm1hbmNlLlxuICogQmVuY2htYXJrczogaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81ZjZiNTRhMGI0NjMyMTAwYTdkY2QyYjNcbiAqL1xuXG4vKipcbiAqIEpTWC5FbGVtZW50IGZhY3RvcnkgdXNlZCBieSBCYWJlbCdzIHtydW50aW1lOlwiYXV0b21hdGljXCJ9IEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7Vk5vZGVbJ3R5cGUnXX0gdHlwZVxuICogQHBhcmFtIHtWTm9kZVsncHJvcHMnXX0gcHJvcHNcbiAqIEBwYXJhbSB7Vk5vZGVbJ2tleSddfSBba2V5XVxuICogQHBhcmFtIHt1bmtub3dufSBbaXNTdGF0aWNDaGlsZHJlbl1cbiAqIEBwYXJhbSB7dW5rbm93bn0gW19fc291cmNlXVxuICogQHBhcmFtIHt1bmtub3dufSBbX19zZWxmXVxuICovXG5mdW5jdGlvbiBjcmVhdGVWTm9kZSh0eXBlLCBwcm9wcywga2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBfX3NvdXJjZSwgX19zZWxmKSB7XG5cdGlmICghcHJvcHMpIHByb3BzID0ge307XG5cdC8vIFdlJ2xsIHdhbnQgdG8gcHJlc2VydmUgYHJlZmAgaW4gcHJvcHMgdG8gZ2V0IHJpZCBvZiB0aGUgbmVlZCBmb3Jcblx0Ly8gZm9yd2FyZFJlZiBjb21wb25lbnRzIGluIHRoZSBmdXR1cmUsIGJ1dCB0aGF0IHNob3VsZCBoYXBwZW4gdmlhXG5cdC8vIGEgc2VwYXJhdGUgUFIuXG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSBwcm9wcyxcblx0XHRyZWYsXG5cdFx0aTtcblxuXHRpZiAoJ3JlZicgaW4gcHJvcHMpIHtcblx0XHRyZWYgPSBwcm9wcy5yZWY7XG5cdFx0ZGVsZXRlIHByb3BzLnJlZjtcblx0fVxuXG5cdC8qKiBAdHlwZSB7Vk5vZGUgJiB7IF9fc291cmNlOiBhbnk7IF9fc2VsZjogYW55IH19ICovXG5cdGNvbnN0IHZub2RlID0ge1xuXHRcdHR5cGUsXG5cdFx0cHJvcHM6IG5vcm1hbGl6ZWRQcm9wcyxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdF9jaGlsZHJlbjogbnVsbCxcblx0XHRfcGFyZW50OiBudWxsLFxuXHRcdF9kZXB0aDogMCxcblx0XHRfZG9tOiBudWxsLFxuXHRcdF9uZXh0RG9tOiB1bmRlZmluZWQsXG5cdFx0X2NvbXBvbmVudDogbnVsbCxcblx0XHRjb25zdHJ1Y3RvcjogdW5kZWZpbmVkLFxuXHRcdF9vcmlnaW5hbDogLS12bm9kZUlkLFxuXHRcdF9pbmRleDogLTEsXG5cdFx0X2ZsYWdzOiAwLFxuXHRcdF9fc291cmNlLFxuXHRcdF9fc2VsZlxuXHR9O1xuXG5cdC8vIElmIGEgQ29tcG9uZW50IFZOb2RlLCBjaGVjayBmb3IgYW5kIGFwcGx5IGRlZmF1bHRQcm9wcy5cblx0Ly8gTm90ZTogYHR5cGVgIGlzIG9mdGVuIGEgU3RyaW5nLCBhbmQgY2FuIGJlIGB1bmRlZmluZWRgIGluIGRldmVsb3BtZW50LlxuXHRpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiYgKHJlZiA9IHR5cGUuZGVmYXVsdFByb3BzKSkge1xuXHRcdGZvciAoaSBpbiByZWYpXG5cdFx0XHRpZiAodHlwZW9mIG5vcm1hbGl6ZWRQcm9wc1tpXSA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gcmVmW2ldO1xuXHRcdFx0fVxuXHR9XG5cblx0aWYgKG9wdGlvbnMudm5vZGUpIG9wdGlvbnMudm5vZGUodm5vZGUpO1xuXHRyZXR1cm4gdm5vZGU7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdGVtcGxhdGUgdm5vZGUuIFRoaXMgZnVuY3Rpb24gaXMgbm90IGV4cGVjdGVkIHRvIGJlXG4gKiB1c2VkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRocm91Z2ggYSBwcmVjb21waWxlIEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7c3RyaW5nW119IHRlbXBsYXRlc1xuICogQHBhcmFtICB7QXJyYXk8c3RyaW5nIHwgbnVsbCB8IFZOb2RlPn0gZXhwcnNcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZnVuY3Rpb24ganN4VGVtcGxhdGUodGVtcGxhdGVzLCAuLi5leHBycykge1xuXHRjb25zdCB2bm9kZSA9IGNyZWF0ZVZOb2RlKEZyYWdtZW50LCB7IHRwbDogdGVtcGxhdGVzLCBleHBycyB9KTtcblx0Ly8gQnlwYXNzIHJlbmRlciB0byBzdHJpbmcgdG9wIGxldmVsIEZyYWdtZW50IG9wdGltaXphdGlvblxuXHR2bm9kZS5rZXkgPSB2bm9kZS5fdm5vZGU7XG5cdHJldHVybiB2bm9kZTtcbn1cblxuY29uc3QgSlNfVE9fQ1NTID0ge307XG5jb25zdCBDU1NfUkVHRVggPSAvW0EtWl0vZztcblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gSFRNTCBhdHRyaWJ1dGUgdG8gYSBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gaXMgbm90XG4gKiBleHBlY3RlZCB0byBiZSB1c2VkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRocm91Z2ggYSBwcmVjb21waWxlXG4gKiBKU1ggdHJhbnNmb3JtXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgYXR0cmlidXRlIG5hbWVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24ganN4QXR0cihuYW1lLCB2YWx1ZSkge1xuXHRpZiAob3B0aW9ucy5hdHRyKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gb3B0aW9ucy5hdHRyKG5hbWUsIHZhbHVlKTtcblx0XHRpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRpZiAobmFtZSA9PT0gJ3JlZicgfHwgbmFtZSA9PT0gJ2tleScpIHJldHVybiAnJztcblx0aWYgKG5hbWUgPT09ICdzdHlsZScgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHRcdGxldCBzdHIgPSAnJztcblx0XHRmb3IgKGxldCBwcm9wIGluIHZhbHVlKSB7XG5cdFx0XHRsZXQgdmFsID0gdmFsdWVbcHJvcF07XG5cdFx0XHRpZiAodmFsICE9IG51bGwgJiYgdmFsICE9PSAnJykge1xuXHRcdFx0XHRjb25zdCBuYW1lID1cblx0XHRcdFx0XHRwcm9wWzBdID09ICctJ1xuXHRcdFx0XHRcdFx0PyBwcm9wXG5cdFx0XHRcdFx0XHQ6IEpTX1RPX0NTU1twcm9wXSB8fFxuXHRcdFx0XHRcdFx0XHQoSlNfVE9fQ1NTW3Byb3BdID0gcHJvcC5yZXBsYWNlKENTU19SRUdFWCwgJy0kJicpLnRvTG93ZXJDYXNlKCkpO1xuXG5cdFx0XHRcdGxldCBzdWZmaXggPSAnOyc7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0eXBlb2YgdmFsID09PSAnbnVtYmVyJyAmJlxuXHRcdFx0XHRcdC8vIEV4Y2x1ZGUgY3VzdG9tLWF0dHJpYnV0ZXNcblx0XHRcdFx0XHQhbmFtZS5zdGFydHNXaXRoKCctLScpICYmXG5cdFx0XHRcdFx0IUlTX05PTl9ESU1FTlNJT05BTC50ZXN0KG5hbWUpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHN1ZmZpeCA9ICdweDsnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN0ciA9IHN0ciArIG5hbWUgKyAnOicgKyB2YWwgKyBzdWZmaXg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBuYW1lICsgJz1cIicgKyBzdHIgKyAnXCInO1xuXHR9XG5cblx0aWYgKFxuXHRcdHZhbHVlID09IG51bGwgfHxcblx0XHR2YWx1ZSA9PT0gZmFsc2UgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG5cdCkge1xuXHRcdHJldHVybiAnJztcblx0fSBlbHNlIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWU7XG5cblx0cmV0dXJuIG5hbWUgKyAnPVwiJyArIGVuY29kZUVudGl0aWVzKHZhbHVlKSArICdcIic7XG59XG5cbi8qKlxuICogRXNjYXBlIGEgZHluYW1pYyBjaGlsZCBwYXNzZWQgdG8gYGpzeFRlbXBsYXRlYC4gVGhpcyBmdW5jdGlvblxuICogaXMgbm90IGV4cGVjdGVkIHRvIGJlIHVzZWQgZGlyZWN0bHksIGJ1dCByYXRoZXIgdGhyb3VnaCBhXG4gKiBwcmVjb21waWxlIEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsIHwgVk5vZGUgfCBBcnJheTxzdHJpbmcgfCBudWxsIHwgVk5vZGU+fVxuICovXG5mdW5jdGlvbiBqc3hFc2NhcGUodmFsdWUpIHtcblx0aWYgKFxuXHRcdHZhbHVlID09IG51bGwgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuXHRcdHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuXHQpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdFx0Ly8gQ2hlY2sgZm9yIFZOb2RlXG5cdFx0aWYgKHZhbHVlLmNvbnN0cnVjdG9yID09PSB1bmRlZmluZWQpIHJldHVybiB2YWx1ZTtcblxuXHRcdGlmIChpc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR2YWx1ZVtpXSA9IGpzeEVzY2FwZSh2YWx1ZVtpXSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVuY29kZUVudGl0aWVzKCcnICsgdmFsdWUpO1xufVxuXG5leHBvcnQge1xuXHRjcmVhdGVWTm9kZSBhcyBqc3gsXG5cdGNyZWF0ZVZOb2RlIGFzIGpzeHMsXG5cdGNyZWF0ZVZOb2RlIGFzIGpzeERFVixcblx0RnJhZ21lbnQsXG5cdC8vIHByZWNvbXBpbGVkIEpTWCB0cmFuc2Zvcm1cblx0anN4VGVtcGxhdGUsXG5cdGpzeEF0dHIsXG5cdGpzeEVzY2FwZVxufTtcbiIsICIvKipcbiAqIEBtb2R1bGUgdWlcbiAqL1xuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWR1Y2VyLCB1c2VSZWYgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQge1xuICAgIEFQUF9DT05URVhULFxuICAgIENPTVBPTkVOVF9DT05URVhULFxuICAgIENVUlJFTlRfRklMRV9DT05URVhULFxuICAgIERBVEFDT1JFX0NPTlRFWFQsXG4gICAgRXJyb3JNZXNzYWdlLFxuICAgIE1hcmtkb3duLFxufSBmcm9tIFwiLi4vLi4vdWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBnZXRGaWxlVGl0bGUsIGxpbmVSYW5nZSB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuXG5pbXBvcnQgXCIuL2VtYmVkLmNzc1wiO1xuXG4vKiogUmVuZGVycyBhbiBlbWJlZCBpbiB0aGUgY2Fub25pY2FsIE9ic2lkaWFuIHN0eWxlLlxuICpcbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbWJlZCh7XG4gICAgbGluayxcbiAgICBpbmxpbmUsXG4gICAgc291cmNlUGF0aDogbWF5YmVTb3VyY2VQYXRoLFxufToge1xuICAgIC8qKiBUaGUgbGluayB0aGF0IGlzIGJlaW5nIGVtYmVkZGVkLiAqL1xuICAgIGxpbms6IExpbms7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGVtYmVkIHNob3VsZCBiZSBzaG93biBpbmxpbmUgd2l0aCBsZXNzIHBhZGRpbmcuICovXG4gICAgaW5saW5lOiBib29sZWFuO1xuICAgIC8qKiBUaGUgcGF0aCB3aGljaCB0aGUgbGluayB3aWxsIGJlIHJlc29sdmVkIHJlbGF0aXZlIHRvLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59KSB7XG4gICAgY29uc3QgYXBwID0gdXNlQ29udGV4dChBUFBfQ09OVEVYVCk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdXNlQ29udGV4dChDT01QT05FTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgY3VycmVudEZpbGUgPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gbWF5YmVTb3VyY2VQYXRoID8/IGN1cnJlbnRGaWxlID8/IFwiXCI7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBsaW5rZWRGaWxlID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QobGluay5wYXRoLCBzb3VyY2VQYXRoKSxcbiAgICAgICAgW2xpbmsucGF0aCwgc291cmNlUGF0aF1cbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFjb250YWluZXIuY3VycmVudCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWxpbmtlZEZpbGUpIHJldHVybjtcblxuICAgICAgICBjb250YWluZXIuY3VycmVudC5pbm5lckhUTUwgPSBcIlwiO1xuXG4gICAgICAgIGNvbnN0IGNyZWF0b3IgPSBhcHAuZW1iZWRSZWdpc3RyeS5nZXRFbWJlZENyZWF0b3IobGlua2VkRmlsZSk7XG4gICAgICAgIGxldCBlbWJlZENvbXBvbmVudCA9IG5ldyBjcmVhdG9yKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxpbmt0ZXh0OiBsaW5rLnBhdGgsXG4gICAgICAgICAgICAgICAgc291cmNlUGF0aDogc291cmNlUGF0aCxcbiAgICAgICAgICAgICAgICBzaG93SW5saW5lOiBpbmxpbmUsXG4gICAgICAgICAgICAgICAgYXBwLFxuICAgICAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lckVsOiBjb250YWluZXIuY3VycmVudCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TW9kZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rZWRGaWxlLFxuICAgICAgICAgICAgbGluay5zdWJwYXRoXG4gICAgICAgICk7XG5cbiAgICAgICAgY29tcG9uZW50LmFkZENoaWxkKGVtYmVkQ29tcG9uZW50KTtcbiAgICAgICAgZW1iZWRDb21wb25lbnQubG9hZEZpbGUobGlua2VkRmlsZSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IGNvbXBvbmVudC5yZW1vdmVDaGlsZChlbWJlZENvbXBvbmVudCk7XG4gICAgfSwgW2NvbnRhaW5lci5jdXJyZW50LCBsaW5rZWRGaWxlLCBsaW5rLnN1YnBhdGhdKTtcblxuICAgIGlmICghbGlua2VkRmlsZSkge1xuICAgICAgICByZXR1cm4gPEVycm9yTWVzc2FnZSBtZXNzYWdlPXtgQ291bGQgbm90IGZpbmQgYSBwYWdlIGF0IGxpbmtlZCBsb2NhdGlvbjogJHtsaW5rLnBhdGh9YH0gLz47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiZGMtZW1iZWRcIiByZWY9e2NvbnRhaW5lcn0+PC9kaXY+O1xuICAgIH1cbn1cblxuLyoqXG4gKiBBbiBlbWJlZCBvZiBhbiBhcmJpdHJhcnkgc3BhbiBvZiBsaW5lcyBpbiBhIE1hcmtkb3duIGZpbGUuIE9wZXJhdGVzIGJ5IGFzeW5jaHJvbm91c2x5IGxvYWRpbmcgdGhlIGZpbGUgYW5kIHB1bGxpbmdcbiAqIG91dCB0aGUgZ2l2ZW4gW3N0YXJ0LCBlbmQpIGxpbmUgc3Bhbi5cbiAqXG4gKiBOb3RlIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgdGhlIGZpbGUgb24gZGlzayB0byBiZSBkaWZmZXJlbnQgdGhhbiBpdCB3YXMgd2hlbiB5b3UgZmlyc3QgbG9hZGVkIHRoZSBbc3RhcnQsIGVuZCkgbGluZSBzcGFuXG4gKiAtIGdlbmVyYWxseSwgZGF0YWNvcmUgd2lsbCBhc3luY2hyb25vdXNseSByZWxvYWQgdGhlc2UgZmlsZXMgaW4gdGhlIGJhY2tncm91bmQgYW5kIGZpeCBpdCdzIGluZGV4LCBidXQgeW91IG1heSBoYXZlIHNvbWVcbiAqIHN0cmFuZ2UgYXJ0aWZhY3RzIG90aGVyd2lzZS5cbiAqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gTGluZVNwYW5FbWJlZCh7XG4gICAgcGF0aCxcbiAgICBzdGFydCxcbiAgICBlbmQsXG4gICAgZXhwbGFpbixcbiAgICBzaG93RXhwbGFpbiA9IHRydWUsXG59OiB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgZXhwbGFpbj86IHN0cmluZztcbiAgICBzaG93RXhwbGFpbj86IGJvb2xlYW47XG59KSB7XG4gICAgY29uc3QgY29udGVudCA9IHVzZUxpbmVTcGFuKHBhdGgsIHN0YXJ0LCBlbmQpO1xuICAgIGNvbnN0IGV4cGxhaW5lciA9IGV4cGxhaW4gPz8gYCR7Z2V0RmlsZVRpdGxlKHBhdGgpfSAoJHtzdGFydH0gLSAke2VuZH0pYDtcblxuICAgIC8vIFRvIGFsbG93IGZvciB0aGUgZXhwbGFpbmVyIHRvIGJlIGNsaWNrZWQgb24gdG8gbmF2aWdhdGUgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLlxuICAgIGNvbnN0IHdvcmtzcGFjZSA9IHVzZUNvbnRleHQoQVBQX0NPTlRFWFQpPy53b3Jrc3BhY2U7XG4gICAgY29uc3Qgb25FeHBsYWluQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB3b3Jrc3BhY2U/Lm9wZW5MaW5rVGV4dChwYXRoLCBwYXRoLCBldmVudC5zaGlmdEtleSksXG4gICAgICAgIFtwYXRoXVxuICAgICk7XG5cbiAgICBzd2l0Y2ggKGNvbnRlbnQudHlwZSkge1xuICAgICAgICBjYXNlIFwibG9hZGluZ1wiOlxuICAgICAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT17YFJlYWRpbmcgJHtwYXRofSAoJHtzdGFydH0gLSAke2VuZH0pYH0gLz47XG4gICAgICAgIGNhc2UgXCJmaWxlLW5vdC1mb3VuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT17YENvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdCBwYXRoOiAke2NvbnRlbnQucGF0aH1gfSAvPjtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6XG4gICAgICAgICAgICByZXR1cm4gPEVycm9yTWVzc2FnZSBtZXNzYWdlPXtjb250ZW50Lm1lc3NhZ2V9IC8+O1xuICAgICAgICBjYXNlIFwibG9hZGVkXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtc3Bhbi1lbWJlZFwiPlxuICAgICAgICAgICAgICAgICAgICB7c2hvd0V4cGxhaW4gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZW1iZWQtc291cmNlXCIgb25DbGljaz17b25FeHBsYWluQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHBsYWluZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxNYXJrZG93biBjb250ZW50PXtjb250ZW50LmNvbnRlbnR9IGlubGluZT17ZmFsc2V9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqIFN0YXRlIHRyYWNraW5nIGZvciBsb2FkaW5nIGEgbGluZSBzcGFuIGFzeW5jaHJvbm91c2x5LiAqL1xuZXhwb3J0IHR5cGUgTGluZVNwYW5Db250ZW50ID1cbiAgICB8IHsgdHlwZTogXCJsb2FkaW5nXCIgfVxuICAgIHwgeyB0eXBlOiBcImZpbGUtbm90LWZvdW5kXCI7IHBhdGg6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiZXJyb3JcIjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogXCJsb2FkZWRcIjsgY29udGVudDogc3RyaW5nIH07XG5cbi8qKiBVdGlsaXR5IGhvb2sgd2hpY2ggbG9hZHMgcGF0aFtzdGFydC4uZW5kKSBhcyBsb25nIGFzIHRoZSB0YXJnZXQgZmlsZSBleGlzdHMuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMaW5lU3BhbihwYXRoOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogTGluZVNwYW5Db250ZW50IHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBkYXRhY29yZSA9IHVzZUNvbnRleHQoREFUQUNPUkVfQ09OVEVYVCk7XG5cbiAgICBjb25zdCBbc3RhdGUsIHVwZGF0ZV0gPSB1c2VSZWR1Y2VyPExpbmVTcGFuQ29udGVudCwgTGluZVNwYW5Db250ZW50PihcbiAgICAgICAgKHN0YXRlLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gSWdub3JlIGFuIGVycm9yIHVwZGF0ZSB0aGF0IHdvdWxkIG92ZXJyaWRlIGEgdmFsaWQgY3VycmVudCBzdGF0ZTsgb3RoZXJ3aXNlLCB1cGRhdGUgdG8gdGhlIG5ldyBzdGF0ZS5cbiAgICAgICAgICAgIGlmIChzdGF0ZS50eXBlID09IFwibG9hZGVkXCIgJiYgZXZlbnQudHlwZSAhPT0gXCJsb2FkZWRcIikgcmV0dXJuIHN0YXRlO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gZXZlbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIHsgdHlwZTogXCJsb2FkaW5nXCIgfVxuICAgICk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlIHRoZSBjdXJyZW50IHBhdGggdG8gc2VlIGlmIGl0IHBvaW50cyB0byBhIHZhbGlkIGZpbGUuXG4gICAgICAgIGNvbnN0IGZpbGUgPSBhcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChwYXRoKTtcbiAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdXBkYXRlKHsgdHlwZTogXCJmaWxlLW5vdC1mb3VuZFwiLCBwYXRoOiBwYXRoIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGxvYWQgdGhlIGZpbGUgYXN5bmNocm9ub3VzbHkuXG4gICAgICAgIGRhdGFjb3JlXG4gICAgICAgICAgICAucmVhZChmaWxlKVxuICAgICAgICAgICAgLnRoZW4oKGNvbnRlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB1cGRhdGUoeyB0eXBlOiBcImxvYWRlZFwiLCBjb250ZW50OiBsaW5lUmFuZ2UoY29udGVudCwgc3RhcnQsIGVuZCkgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHVwZGF0ZSh7IHR5cGU6IFwiZXJyb3JcIiwgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0sIFtwYXRoLCBzdGFydCwgZW5kXSk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG59XG4iLCAiaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBTaW1wbGVFcnJvckJvdW5kYXJ5LCBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgRGF0YWNvcmVDb250ZXh0UHJvdmlkZXIgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IEFwcCwgTWFya2Rvd25SZW5kZXJDaGlsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRGF0YWNvcmVMb2NhbEFwaSB9IGZyb20gXCJhcGkvbG9jYWwtYXBpXCI7XG5pbXBvcnQgeyBoLCByZW5kZXIsIEZyYWdtZW50LCBWTm9kZSB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IHVubW91bnRDb21wb25lbnRBdE5vZGUgfSBmcm9tIFwicHJlYWN0L2NvbXBhdFwiO1xuaW1wb3J0IHsgU2NyaXB0TGFuZ3VhZ2UsIGFzeW5jRXZhbEluQ29udGV4dCwgdHJhbnNwaWxlIH0gZnJvbSBcInV0aWxzL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IExvYWRpbmdCb3VuZGFyeSwgU2NyaXB0Q29udGFpbmVyIH0gZnJvbSBcIi4vbG9hZGluZy1ib3VuZGFyeVwiO1xuaW1wb3J0IHsgRGF0YWNvcmUgfSBmcm9tIFwiaW5kZXgvZGF0YWNvcmVcIjtcblxuLyoqXG4gKiBSZW5kZXJzIGEgc2NyaXB0IGJ5IGV4ZWN1dGluZyBpdCBhbmQgaGFuZGluZyBpdCB0aGUgYXBwcm9wcmlhdGUgUmVhY3QgY29udGV4dCB0byBleGVjdXRlXG4gKiBhdXRvbWF0aWNhbGx5LlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmVKU1JlbmRlcmVyIGV4dGVuZHMgTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgcHJpdmF0ZSBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFwaTogRGF0YWNvcmVMb2NhbEFwaSxcbiAgICAgICAgcHVibGljIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIHB1YmxpYyBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBzY3JpcHQ6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGxhbmd1YWdlOiBTY3JpcHRMYW5ndWFnZVxuICAgICkge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvbmxvYWQoKSB7XG4gICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGFuZCBldmFsdWF0ZSB0aGUgc2NyaXB0IHRvIHByb2R1Y2UgZWl0aGVyIGEgcmVuZGVyYWJsZSBKU1ggb2JqZWN0IG9yIGEgZnVuY3Rpb24uXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwcmltaXRpdmVTY3JpcHQgPSB0cmFuc3BpbGUodGhpcy5zY3JpcHQsIHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGFzeW5jRXZhbEluQ29udGV4dChwcmltaXRpdmVTY3JpcHQsIHtcbiAgICAgICAgICAgICAgICAgICAgZGM6IHRoaXMuYXBpLFxuICAgICAgICAgICAgICAgICAgICBoOiBoLFxuICAgICAgICAgICAgICAgICAgICBGcmFnbWVudDogRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPERhdGFjb3JlQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIGFwcD17dGhpcy5hcGkuYXBwfVxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9e3RoaXN9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFjb3JlPXt0aGlzLmFwaS5jb3JlfVxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz17dGhpcy5hcGkuY29yZS5zZXR0aW5nc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDVVJSRU5UX0ZJTEVfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17dGhpcy5wYXRofT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVFcnJvckJvdW5kYXJ5IG1lc3NhZ2U9XCJUaGUgZGF0YWNvcmUgc2NyaXB0IGZhaWxlZCB0byBleGVjdXRlLlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgZGF0YWNvcmU9e3RoaXMuYXBpLmNvcmV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2NyaXB0Q29udGFpbmVyIGV4ZWN1dG9yPXtyZW5kZXJlcn0gc291cmNlUGF0aD17dGhpcy5wYXRofSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTG9hZGluZ0JvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TaW1wbGVFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICA8L0NVUlJFTlRfRklMRV9DT05URVhULlByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvRGF0YWNvcmVDb250ZXh0UHJvdmlkZXI+LFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT1cIkRhdGFjb3JlIGZhaWxlZCB0byByZW5kZXIgdGhlIGNvZGUgYmxvY2suXCIgZXJyb3I9e1wiXCIgKyBleH0gLz4sXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCkgdW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XG4gICAgfVxufVxuXG4vKiogQSB0cml2aWFsIHdyYXBwZXIgd2hpY2ggYWxsb3dzIGEgcmVhY3QgY29tcG9uZW50IHRvIGxpdmUgZm9yIHRoZSBkdXJhdGlvbiBvZiBhIGBNYXJrZG93blJlbmRlckNoaWxkYC4gKi9cbmV4cG9ydCBjbGFzcyBSZWFjdFJlbmRlcmVyIGV4dGVuZHMgTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgYXBwOiBBcHAsXG4gICAgICAgIHB1YmxpYyBkYXRhY29yZTogRGF0YWNvcmUsXG4gICAgICAgIHB1YmxpYyBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICBwdWJsaWMgc291cmNlUGF0aDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogVk5vZGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25sb2FkKCk6IHZvaWQge1xuICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICA8RGF0YWNvcmVDb250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICBhcHA9e3RoaXMuYXBwfVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudD17dGhpc31cbiAgICAgICAgICAgICAgICBkYXRhY29yZT17dGhpcy5kYXRhY29yZX1cbiAgICAgICAgICAgICAgICBzZXR0aW5ncz17dGhpcy5kYXRhY29yZS5zZXR0aW5nc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q1VSUkVOVF9GSUxFX0NPTlRFWFQuUHJvdmlkZXIgdmFsdWU9e3RoaXMuc291cmNlUGF0aH0+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgZGF0YWNvcmU9e3RoaXMuZGF0YWNvcmV9Pnt0aGlzLmVsZW1lbnR9PC9Mb2FkaW5nQm91bmRhcnk+XG4gICAgICAgICAgICAgICAgPC9DVVJSRU5UX0ZJTEVfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvRGF0YWNvcmVDb250ZXh0UHJvdmlkZXI+LFxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIHVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5jb250YWluZXIpO1xuICAgIH1cbn1cbiIsICIvLyEgVXRpbGl0aWVzIGZvciBydW5uaW5nIGphdmFzY3JpcHQuXG5cbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gXCJzdWNyYXNlXCI7XG5cbmV4cG9ydCB0eXBlIFNjcmlwdExhbmd1YWdlID0gXCJqc1wiIHwgXCJ0c1wiIHwgXCJqc3hcIiB8IFwidHN4XCI7XG5cbi8qKiBDb252ZXJ0cyBhIHJhdyBzY3JpcHQgaW4gdGhlIGdpdmVuIGxhbmd1YWdlIHRvIHBsYWluIGphdmFzY3JpcHQuICAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcGlsZShzY3JpcHQ6IHN0cmluZywgbGFuZ3VhZ2U6IFNjcmlwdExhbmd1YWdlKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGxhbmd1YWdlKSB7XG4gICAgICAgIGNhc2UgXCJqc1wiOlxuICAgICAgICAgICAgcmV0dXJuIHNjcmlwdDtcbiAgICAgICAgY2FzZSBcImpzeFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybShzY3JpcHQsIHsgdHJhbnNmb3JtczogW1wianN4XCJdLCBqc3hQcmFnbWE6IFwiaFwiLCBqc3hGcmFnbWVudFByYWdtYTogXCJGcmFnbWVudFwiIH0pLmNvZGU7XG4gICAgICAgIGNhc2UgXCJ0c1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybShzY3JpcHQsIHsgdHJhbnNmb3JtczogW1widHlwZXNjcmlwdFwiXSB9KS5jb2RlO1xuICAgICAgICBjYXNlIFwidHN4XCI6XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHNjcmlwdCwge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybXM6IFtcInR5cGVzY3JpcHRcIiwgXCJqc3hcIl0sXG4gICAgICAgICAgICAgICAganN4UHJhZ21hOiBcImhcIixcbiAgICAgICAgICAgICAgICBqc3hGcmFnbWVudFByYWdtYTogXCJGcmFnbWVudFwiLFxuICAgICAgICAgICAgfSkuY29kZTtcbiAgICB9XG59XG5cbi8qKlxuICogRXZhbHVhdGUgYSBzY3JpcHQgd2hlcmUgJ3RoaXMnIGZvciB0aGUgc2NyaXB0IGlzIHNldCB0byB0aGUgZ2l2ZW4gY29udGV4dC4gQWxsb3dzIHlvdSB0byBkZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2YWxJbkNvbnRleHQoc2NyaXB0OiBzdHJpbmcsIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgYW55Pik6IGFueSB7XG4gICAgY29uc3QgcGFpcnMgPSBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpO1xuICAgIGNvbnN0IGtleXMgPSBwYWlycy5tYXAoKFtrZXksIF9dKSA9PiBrZXkpO1xuICAgIGNvbnN0IHZhbHVlcyA9IHBhaXJzLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuXG4gICAgcmV0dXJuIG5ldyBGdW5jdGlvbiguLi5rZXlzLCBzY3JpcHQpKC4uLnZhbHVlcyk7XG59XG5cbi8qKlxuICogRXZhbHVhdGUgYSBzY3JpcHQgcG9zc2libHkgYXN5bmNocm9ub3VzbHksIGlmIHRoZSBzY3JpcHQgY29udGFpbnMgYGFzeW5jL2F3YWl0YCBibG9ja3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0V2YWxJbkNvbnRleHQoc2NyaXB0OiBzdHJpbmcsIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHNjcmlwdC5pbmNsdWRlcyhcImF3YWl0XCIpKSB7XG4gICAgICAgIHJldHVybiBldmFsSW5Db250ZXh0KFwicmV0dXJuIChhc3luYyAoKSA9PiB7IFwiICsgc2NyaXB0ICsgXCIgfSkoKVwiLCB2YXJpYWJsZXMpIGFzIFByb21pc2U8YW55PjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGV2YWxJbkNvbnRleHQoc2NyaXB0LCB2YXJpYWJsZXMpKTtcbiAgICB9XG59XG4iLCAiLyoqIEBtb2R1bGUgdWkgKi9cbmltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgSW5kZXhRdWVyeSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gXCJpbmRleC9kYXRhc3RvcmVcIjtcbmltcG9ydCB7IExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcblxuLyoqIEhvb2sgdGhhdCB1cGRhdGVzIHRoZSB2aWV3IHdoZW5ldmVyIHRoZSByZXZpc2lvbiB1cGRhdGVzLCByZXR1cm5pbmcgdGhlIG5ld2VzdCByZXZpc2lvbi5cbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSW5kZXhVcGRhdGVzKGRhdGFjb3JlOiBEYXRhY29yZSwgc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBudW1iZXIge1xuICAgIGNvbnN0IFtyZXZpc2lvbiwgc2V0UmV2aXNpb25dID0gdXNlU3RhdGUoZGF0YWNvcmUuZGF0YXN0b3JlLnJldmlzaW9uKTtcbiAgICBjb25zdCBkZWJvdW5jZWRSZXZpc2lvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2V0dGluZ3M/LmRlYm91bmNlICYmIHNldHRpbmdzLmRlYm91bmNlID09IDApIHJldHVybiBzZXRSZXZpc2lvbjtcbiAgICAgICAgZWxzZSByZXR1cm4gZGVib3VuY2Uoc2V0UmV2aXNpb24sIHNldHRpbmdzPy5kZWJvdW5jZSA/PyA1MDApO1xuICAgIH0sIFtzZXRSZXZpc2lvbiwgc2V0dGluZ3M/LmRlYm91bmNlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCByZWYgPSBkYXRhY29yZS5vbihcInVwZGF0ZVwiLCBkZWJvdW5jZWRSZXZpc2lvbik7XG4gICAgICAgIHJldHVybiAoKSA9PiBkYXRhY29yZS5vZmZyZWYocmVmKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gcmV2aXNpb247XG59XG5cbi8qKiBBIGhvb2sgd2hpY2ggdXBkYXRlcyB3aGVuZXZlciBmaWxlIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGZpbGUgdXBkYXRlcy5cbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRmlsZU1ldGFkYXRhKFxuICAgIGRhdGFjb3JlOiBEYXRhY29yZSxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH1cbik6IEluZGV4YWJsZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5kZXhSZXZpc2lvbiA9IHVzZUluZGV4VXBkYXRlcyhkYXRhY29yZSwgc2V0dGluZ3MpO1xuXG4gICAgLy8gVE9ETzogSSB0aGluayBsb2FkIHJldHVybnMgY29uc2lzdGVudCBvYmplY3RzIHNvIGl0IHNob3VsZCBiZSBva2F5LlxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IGRhdGFjb3JlLmRhdGFzdG9yZS5sb2FkKHBhdGgpLCBbaW5kZXhSZXZpc2lvbiwgcGF0aF0pO1xufVxuXG4vKiogU2V0dGluZ3Mgd2hpY2ggY29udHJvbCBob3cgYXV0b21hdGljIHF1ZXJ5IHJlbG9hZGluZyBzaG91bGQgd29yay5cbiAqIEBncm91cCBDb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VRdWVyeVNldHRpbmdzIHtcbiAgICAvKipcbiAgICAgKiBJZiBwcmVzZW50LCBkZWJvdW5jZSByZXBlYXRlZCBxdWVyeSB1cGRhdGVzIHNvIHRoYXQgYW4gdXBkYXRlIG9ubHkgb2NjdXJzIGV2ZXJ5IFxcPGRlYm91bmNlXFw+IG1pbGxpc2Vjb25kcy4gVGhpc1xuICAgICAqIGRlZmF1bHRzIHRvIHRoZSBvdmVyYWxsIGRlZmF1bHQgZGVib3VuY2Ugc2V0dGluZ3MuXG4gICAgICovXG4gICAgZGVib3VuY2U/OiBudW1iZXI7XG59XG5cbi8qKiBQZXJmb3JtIGEgbGl2ZSwgc3luY2hyb25vdXMgcXVlcnkgd2hpY2ggdXBkYXRlcyBpdHMgcmVzdWx0cyB3aGVuZXZlciB0aGUgYmFja2luZyBxdWVyeSB3b3VsZCBjaGFuZ2UuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlVc2VGdWxsUXVlcnkoXG4gICAgZGF0YWNvcmU6IERhdGFjb3JlLFxuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5LFxuICAgIHNldHRpbmdzPzogVXNlUXVlcnlTZXR0aW5nc1xuKTogUmVzdWx0PFNlYXJjaFJlc3VsdDxJbmRleGFibGU+LCBzdHJpbmc+IHtcbiAgICAvLyBUcmFjayBpbmRleCB1cGRhdGVzIHdpdGggY3VzdG9taXphYmxlIGRlYm91bmNpbmcuXG4gICAgY29uc3QgaW5kZXhSZXZpc2lvbiA9IHVzZUluZGV4VXBkYXRlcyhkYXRhY29yZSwgc2V0dGluZ3MpO1xuXG4gICAgLy8gV2UgXCJpbnRlcm5cIiB0aGUgcXVlcnksIG1lYW5pbmcgd2UgcmV1c2UgdGhlIG9sZGVzdCB2ZXJzaW9uIGlmIGl0IGlzIHNlbWFudGljYWxseSBlcXVhbCBidXQganVzdCBhIGRpZmZlcmVudCBvYmplY3QuXG4gICAgY29uc3QgaW50ZXJuZWRRdWVyeSA9IHVzZUludGVybmluZyhxdWVyeSwgTGl0ZXJhbHMuZXF1YWxzKTtcbiAgICAvLyBJbnRlcm4gdGhlIG91dHB1dCBhcyB3ZWxsIHNvIHJlYWN0IGRpZmZpbmcgXCJqdXN0IHdvcmtzXCIgd2l0aCB0aGUgcmVzdWx0IG9mIHVzZVF1ZXJ5LlxuICAgIGNvbnN0IGludGVybmVkUmVzdWx0ID0gdXNlUmVmPFJlc3VsdDxTZWFyY2hSZXN1bHQ8SW5kZXhhYmxlPiwgc3RyaW5nPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8vIE9uIGV2ZXJ5IGluZGV4IHJldmlzaW9uIHVwZGF0ZSwgcmUtcnVuIHRoZSBxdWVyeSBhbmQgY2hlY2sgaWYgaXQgcHJvZHVjZWQgbWVhbmluZ2Z1bGx5IG5ldyB2YWx1ZXMuXG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdSZXN1bHQgPSBkYXRhY29yZS5kYXRhc3RvcmUuc2VhcmNoKHF1ZXJ5KTtcblxuICAgICAgICAvLyBTZXQgZmFpbHVyZSBpZiB0aGUgbmV3IHJlcXVlc3QgaXMgYSBmYWlsdXJlLlxuICAgICAgICBpZiAoIW5ld1Jlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBpbnRlcm5lZFJlc3VsdC5jdXJyZW50ID0gUmVzdWx0LmZhaWx1cmUobmV3UmVzdWx0LmVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcm5lZFJlc3VsdC5jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gY3VycmVudCBpbnRlcm5lZCBzdGF0ZSwgdXBkYXRlIGl0IGFuZCByZXR1cm4uXG4gICAgICAgIGlmIChpbnRlcm5lZFJlc3VsdC5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGludGVybmVkUmVzdWx0LmN1cnJlbnQgPSBSZXN1bHQuc3VjY2VzcyhuZXdSZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGludGVybmVkUmVzdWx0LmN1cnJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgbmV3IHJlcXVlc3QgaXMgaXMgc3VjY2Vzc2Z1bCBhbmQgdGhlIG9sZCByZXN1bHQgaXMgZGVmaW5lZC4gSWYgdGhlIG9sZCByZXN1bHQgd2FzIGFuIGVycm9yLCB1cGRhdGUgaXQuXG4gICAgICAgIGNvbnN0IG9sZFJlc3VsdCA9IGludGVybmVkUmVzdWx0LmN1cnJlbnQ7XG4gICAgICAgIGlmICghb2xkUmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIGludGVybmVkUmVzdWx0LmN1cnJlbnQgPSBSZXN1bHQuc3VjY2VzcyhuZXdSZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGludGVybmVkUmVzdWx0LmN1cnJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb3RoIGFyZSBzdWNjZXNzZnVsLCBjaGVjayBpZiB0aGV5IGFyZSBkaWZmZXJlbnQuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG9sZFJlc3VsdC52YWx1ZS5yZXZpc2lvbiAhPSBuZXdSZXN1bHQudmFsdWUucmV2aXNpb24gfHxcbiAgICAgICAgICAgICFzYW1lT2JqZWN0cyhvbGRSZXN1bHQudmFsdWUucmVzdWx0cywgbmV3UmVzdWx0LnZhbHVlLnJlc3VsdHMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIChpbnRlcm5lZFJlc3VsdC5jdXJyZW50ID0gUmVzdWx0LnN1Y2Nlc3MobmV3UmVzdWx0LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYW1lIHJldmlzaW9uIGFuZCBzYW1lIG9iamVjdHMsIHRoaXMgaXMgdGhlIHNhbWUgcXVlcnkgcmVzdWx0LCBzbyByZXR1cm4gdGhlIG9sZCBvYmplY3QuXG4gICAgICAgIHJldHVybiBpbnRlcm5lZFJlc3VsdC5jdXJyZW50O1xuICAgIH0sIFtpbnRlcm5lZFF1ZXJ5LCBpbmRleFJldmlzaW9uXSk7XG59XG5cbi8qKiBQZXJmb3JtIGEgbGl2ZSwgc3luY2hyb25vdXMgcXVlcnkgd2hpY2ggdXBkYXRlcyBpdHMgcmVzdWx0cyB3aGVuZXZlciB0aGUgYmFja2luZyBxdWVyeSB3b3VsZCBjaGFuZ2UuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VGdWxsUXVlcnkoXG4gICAgZGF0YWNvcmU6IERhdGFjb3JlLFxuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5LFxuICAgIHNldHRpbmdzPzogVXNlUXVlcnlTZXR0aW5nc1xuKTogU2VhcmNoUmVzdWx0PEluZGV4YWJsZT4ge1xuICAgIHJldHVybiB0cnlVc2VGdWxsUXVlcnkoZGF0YWNvcmUsIHF1ZXJ5LCBzZXR0aW5ncykub3JFbHNlVGhyb3coKGUpID0+IFwiRmFpbGVkIHRvIHNlYXJjaDogXCIgKyBlKTtcbn1cblxuLyoqIFNpbXBsaWVyIHZlcnNpb24gb2YgdXNlRnVsbFF1ZXJ5IHdoaWNoIGp1c3QgZGlyZWN0bHkgcmV0dXJucyByZXN1bHRzLlxuICpcbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJ5VXNlUXVlcnkoXG4gICAgZGF0YWNvcmU6IERhdGFjb3JlLFxuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5LFxuICAgIHNldHRpbmdzPzogVXNlUXVlcnlTZXR0aW5nc1xuKTogUmVzdWx0PEluZGV4YWJsZVtdLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdHJ5VXNlRnVsbFF1ZXJ5KGRhdGFjb3JlLCBxdWVyeSwgc2V0dGluZ3MpLm1hcCgocmVzdWx0KSA9PiByZXN1bHQucmVzdWx0cyk7XG59XG5cbi8qKiBTaW1wbGllciB2ZXJzaW9uIG9mIHVzZUZ1bGxRdWVyeSB3aGljaCBqdXN0IGRpcmVjdGx5IHJldHVybnMgcmVzdWx0cy5cbiAqXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVF1ZXJ5KGRhdGFjb3JlOiBEYXRhY29yZSwgcXVlcnk6IEluZGV4UXVlcnksIHNldHRpbmdzPzogVXNlUXVlcnlTZXR0aW5ncyk6IEluZGV4YWJsZVtdIHtcbiAgICByZXR1cm4gdXNlRnVsbFF1ZXJ5KGRhdGFjb3JlLCBxdWVyeSwgc2V0dGluZ3MpLnJlc3VsdHM7XG59XG5cbi8qKiBEZXRlcm1pbmVzIGlmIHRoZSB0d28gc2V0cyBvZiBvYmplY3RzIGFyZSB0aGUgc2FtZS4gT25seSB1c2VzIHJldmlzaW9uIGNvbXBhcmlzb24gZm9yIHBlcmZvcm1hbmNlLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gc2FtZU9iamVjdHMob2xkOiBJbmRleGFibGVbXSwgaW5jb21pbmc6IEluZGV4YWJsZVtdKSB7XG4gICAgaWYgKG9sZC5sZW5ndGggIT0gaW5jb21pbmcubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBvbGRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gICAgZm9yIChjb25zdCBpbmRleGFibGUgb2Ygb2xkKSB7XG4gICAgICAgIG9sZHNbaW5kZXhhYmxlLiRpZF0gPSBpbmRleGFibGUuJHJldmlzaW9uITtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGluZGV4YWJsZSBvZiBpbmNvbWluZykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9sZHNbaW5kZXhhYmxlLiRpZF07XG4gICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlICE9IGluZGV4YWJsZS4kcmV2aXNpb24pIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBcIkludGVybnNcIiB0aGUgaW5jb21pbmcgdmFsdWUsIHJldHVybmluZyB0aGUgb2xkZXN0IGVxdWFsIGluc3RhbmNlLiBUaGlzIGlzIGEgdHJpY2sgdG8gaW1wcm92ZSBSZWFjdCBkaWZmaW5nXG4gKiAgYmVoYXZpb3IsIGFzIHR3byBvYmplY3RzIHdoaWNoIGFyZSBlcXVhbHMgdmlhIGVxdWFsaXR5KGEsIGIpIHdpbGwgcmV0dXJuIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2UgYWZ0ZXIgYmVpbmdcbiAqICBpbnRlcm5lZC5cbiAqXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUludGVybmluZzxUPih2YWx1ZTogVCwgZXF1YWxpdHk6IChhOiBULCBiOiBUKSA9PiBib29sZWFuKTogVCB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmPFQ+KCk7XG5cbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fCAhZXF1YWxpdHkocmVmLmN1cnJlbnQsIHZhbHVlKSkge1xuICAgICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiByZWYuY3VycmVudDtcbn1cblxuLyoqIFVzZSBhIHN0YWJsZSBjYWxsYmFjayB3aGljaCBoaWRlcyBtdXRhYmxlIHN0YXRlIGJlaGluZCBhIHN0YWJsZSByZWZlcmVuY2UuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGFibGVDYWxsYmFjazxUPihjYWxsYmFjazogVCwgZGVwczogYW55W10pOiBUIHtcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8VD4oKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gY2FsbGJhY2s7XG4gICAgfSwgW2NhbGxiYWNrLCAuLi5kZXBzXSk7XG5cbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgICAgICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgKHJlZi5jdXJyZW50IGFzIGFueSkoLi4uYXJncyk7XG4gICAgICAgIH0sXG4gICAgICAgIFtyZWZdXG4gICAgKSBhcyBUO1xufVxuXG5jb25zdCBOT19PUF9VUERBVEUgPSAoeDogYW55KSA9PiB7fTtcblxuLyoqIFVzZSBzdGF0ZSB0aGF0IHdpbGwgZGVmYXVsdCB0byBhbiBleHRlcm5hbCBjb250cm9sbGVkIHZhbHVlIGlmIHNldDsgb3RoZXJ3aXNlLCB3aWxsIHRyYWNrIGFuIGludGVybmFsIHZhbHVlLlxuICpcbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ29udHJvbGxlZFN0YXRlPFQ+KFxuICAgIGluaXRpYWxTdGF0ZTogVCxcbiAgICBvdmVycmlkZT86IFQsXG4gICAgdXBkYXRlPzogKHZhbHVlOiBUKSA9PiB2b2lkXG4pOiBbVCwgKHZhbHVlOiBUKSA9PiB2b2lkXSB7XG4gICAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShvdmVycmlkZSA/PyBpbml0aWFsU3RhdGUpO1xuICAgIGlmIChvdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChzdGF0ZSAhPSBvdmVycmlkZSkgc2V0U3RhdGUob3ZlcnJpZGUpO1xuXG4gICAgICAgIHJldHVybiBbb3ZlcnJpZGUsIHVwZGF0ZSA/PyBOT19PUF9VUERBVEVdO1xuICAgIH1cblxuICAgIGNvbnN0IHNldFN0YXRlV2l0aFVwZGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAgIHNldFN0YXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh1cGRhdGUpIHVwZGF0ZSh2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtzZXRTdGF0ZSwgdXBkYXRlXVxuICAgICk7XG5cbiAgICByZXR1cm4gW3N0YXRlLCBzZXRTdGF0ZVdpdGhVcGRhdGVdO1xufVxuIiwgImltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBQcm9wc1dpdGhDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyB1c2VJbmRleFVwZGF0ZXMgfSBmcm9tIFwiLi9ob29rc1wiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IFZOb2RlLCBjcmVhdGVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgTGl0IH0gZnJvbSBcIi4vbWFya2Rvd25cIjtcblxuaW1wb3J0IFwiLi9lcnJvcnMuY3NzXCI7XG5cbmZ1bmN0aW9uIExvYWRpbmdQcm9ncmVzcyh7IGRhdGFjb3JlIH06IHsgZGF0YWNvcmU6IERhdGFjb3JlIH0pIHtcbiAgICB1c2VJbmRleFVwZGF0ZXMoZGF0YWNvcmUsIHsgZGVib3VuY2U6IDI1MCB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxwPlxuICAgICAgICAgICAge2RhdGFjb3JlLmluaXRpYWxpemVyPy5pbml0aWFsaXplZCA/PyAwfSAvIHtkYXRhY29yZS5pbml0aWFsaXplcj8udGFyZ2V0VG90YWwgPz8gMH1cbiAgICAgICAgPC9wPlxuICAgICk7XG59XG5cbi8qKiBMb2FkaW5nIGJvdW5kYXJ5IHdoaWNoIHNob3dzIGEgbG9hZGluZyBzY3JlZW4gd2hpbGUgRGF0YWNvcmUgaXMgaW5pdGlhbGl6aW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvYWRpbmdCb3VuZGFyeSh7IGNoaWxkcmVuLCBkYXRhY29yZSB9OiBQcm9wc1dpdGhDaGlsZHJlbjx7IGRhdGFjb3JlOiBEYXRhY29yZSB9Pikge1xuICAgIGNvbnN0IFtpbml0aWFsaXplZCwgc2V0SW5pdGlhbGl6ZWRdID0gdXNlU3RhdGUoZGF0YWNvcmUuaW5pdGlhbGl6ZWQpO1xuXG4gICAgLy8gU3luY3MgdGhlIGJvdW5kYXJ5IHdpdGggZGF0YWNvcmUncyBpbml0aWFsaXphdGlvbiBzdGF0ZS5cbiAgICAvLyBUT0RPOiBBZGQgYW4gZXZlbnQgdG8gZGF0YWNvcmUgd2hpY2ggaW5kaWNhdGVzIHdoZW4gYSByZWluZGV4IGhhcHBlbnMgKGkuZS4sIGluaXRpYWxpemVkXG4gICAgLy8gcmV0dXJucyBiYWNrIHRvICdmYWxzZScpLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpbml0aWFsaXplZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHJlZiA9IGRhdGFjb3JlLm9uKFwiaW5pdGlhbGl6ZWRcIiwgKCkgPT4gc2V0SW5pdGlhbGl6ZWQodHJ1ZSkpO1xuICAgICAgICByZXR1cm4gKCkgPT4gZGF0YWNvcmUub2ZmcmVmKHJlZik7XG4gICAgfSwgW2luaXRpYWxpemVkLCBkYXRhY29yZV0pO1xuXG4gICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbG9hZGluZy1ib3VuZGFyeVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJkYXRhY29yZS1sb2FkaW5nLXRpdGxlXCI+RGF0YWNvcmUgaXMgZ2V0dGluZyByZWFkeS4uLjwvaDQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS1sb2FkaW5nLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPExvYWRpbmdQcm9ncmVzcyBkYXRhY29yZT17ZGF0YWNvcmV9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSB2YW5pbGxhIGphdmFzcmlwdCBmdW5jdGlvbiBsYXppbHkgb25lIHRpbWUuIE1haW5seSB1c2VmdWwgdG8gb25seSBydW4gYSBzY3JpcHRcbiAqIG9uY2UgdGhlIHBhcmVudCBsb2FkaW5nIGJvdW5kYXJ5IGlzIGFjdHVhbGx5IHJlYWR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2NyaXB0Q29udGFpbmVyKHtcbiAgICBleGVjdXRvcixcbiAgICBzb3VyY2VQYXRoLFxufToge1xuICAgIGV4ZWN1dG9yOiAoKSA9PiBQcm9taXNlPExpdGVyYWwgfCBWTm9kZSB8IEZ1bmN0aW9uPjtcbiAgICBzb3VyY2VQYXRoOiBzdHJpbmc7XG59KSB7XG4gICAgY29uc3QgW2VsZW1lbnQsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SlNYLkVsZW1lbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxFcnJvciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldEVsZW1lbnQodW5kZWZpbmVkKTtcbiAgICAgICAgc2V0RXJyb3IodW5kZWZpbmVkKTtcblxuICAgICAgICBleGVjdXRvcigpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiBzZXRFbGVtZW50KG1ha2VSZW5kZXJhYmxlRWxlbWVudChyZXN1bHQsIHNvdXJjZVBhdGgpKSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHNldEVycm9yKGVycm9yKSk7XG4gICAgfSwgW2V4ZWN1dG9yXSk7XG5cbiAgICAvLyBQcm9wb2dhdGUgZXJyb3IgdXB3YXJkcy5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e2VsZW1lbnQgPz8gPEVycm9yTWVzc2FnZSBtZXNzYWdlPVwiPCBWaWV3IGlzIHJlbmRlcmluZyA+XCIgLz59PC8+O1xufVxuXG4vKiogTWFrZSBhIHJlbmRlcmFibGUgZWxlbWVudCBmcm9tIHRoZSByZXR1cm5lZCBvYmplY3Q7IGlmIHRoaXMgdHJhbnNmb3JtYXRpb24gaXMgbm90IHBvc3NpYmxlLCB0aHJvdyBhbiBleGNlcHRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVJlbmRlcmFibGVFbGVtZW50KG9iamVjdDogYW55LCBzb3VyY2VQYXRoOiBzdHJpbmcpOiBKU1guRWxlbWVudCB7XG4gICAgaWYgKHR5cGVvZiBvYmplY3QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChvYmplY3QsIHt9KTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIChvYmplY3QgYXMgYW55W10pLm1hcCgoeCkgPT4gbWFrZVJlbmRlcmFibGVFbGVtZW50KHgsIHNvdXJjZVBhdGgpKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8TGl0IHZhbHVlPXtvYmplY3R9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IC8+O1xuICAgIH1cbn1cbiIsICIvKipcbiAqIENvbGxlY3Rpb24gb2YgZGlyZWN0IEFQSS1mYWNpbmcgZWxlbWVudHMuIFRoaXMgZXNzZW50aWFsbHkgc2VydmVzIGFzIGEgbGF5ZXIgb2YgaW5kaXJlY3Rpb24gdG8gaW50ZXJuYWwgdHlwZXMsIHNvIHRoYXQgdGhlIGludGVybmFsIHR5cGVzIGNhbiBiZVxuICogY2hhbmdlZCB3aXRob3V0IGJyZWFraW5nIHRoZSBBUEkuXG4gKlxuICogQG1vZHVsZSB1aVxuICovXG5cbmltcG9ydCB7IEhUTUxBdHRyaWJ1dGVzLCB1c2VNZW1vIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcblxuaW1wb3J0IFwiYXBpL3VpL2xheW91dC5jc3NcIjtcblxuLyoqIENyZWF0ZXMgYSB2ZXJ0aWNhbCBmbGV4Ym94IFwic3RhY2tcIiBvZiBlbGVtZW50cy5cbiAqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gU3RhY2soXG4gICAgcHJvcHM6IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBqdXN0aWZ5Pzogc3RyaW5nO1xuICAgICAgICBhbGlnbj86IHN0cmluZztcbiAgICAgICAgc3R5bGU/OiBzdHJpbmc7XG4gICAgfVxuKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGp1c3RpZnksIGFsaWduLCBzdHlsZSwgY2hpbGRyZW4sIC4uLnJlc3QgfSA9IHByb3BzO1xuICAgIGNvbnN0IGV4dHJhU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IHN0eWxlID0gXCJcIjtcbiAgICAgICAgaWYgKGp1c3RpZnkpIHN0eWxlICs9IGBqdXN0aWZ5LWNvbnRlbnQ6ICR7anVzdGlmeX07YDtcbiAgICAgICAgaWYgKGFsaWduKSBzdHlsZSArPSBgYWxpZ24taXRlbXM6ICR7YWxpZ259O2A7XG5cbiAgICAgICAgcmV0dXJuIHN0eWxlLmxlbmd0aCA9PSAwID8gdW5kZWZpbmVkIDogc3R5bGU7XG4gICAgfSwgW2p1c3RpZnksIGFsaWduXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZSA/IGNsYXNzTmFtZSArIFwiIGRjLXN0YWNrXCIgOiBcImRjLXN0YWNrXCJ9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGUgPyBleHRyYVN0eWxlICsgc3R5bGUgOiBleHRyYVN0eWxlfVxuICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cblxuLyoqIENyZWF0ZXMgYSBob3Jpem9udGFsIGZsZXhib3ggXCJncm91cGluZ1wiIG9mIGVsZW1lbnRzLlxuICpcbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBHcm91cChcbiAgICBwcm9wczogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+ICYge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICAgIGp1c3RpZnk/OiBzdHJpbmc7XG4gICAgICAgIGFsaWduPzogc3RyaW5nO1xuICAgICAgICBzdHlsZT86IHN0cmluZztcbiAgICB9XG4pIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwganVzdGlmeSwgYWxpZ24sIHN0eWxlLCBjaGlsZHJlbiwgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZXh0cmFTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgc3R5bGUgPSBcIlwiO1xuICAgICAgICBpZiAoanVzdGlmeSkgc3R5bGUgKz0gYGp1c3RpZnktY29udGVudDogJHtqdXN0aWZ5fTtgO1xuICAgICAgICBpZiAoYWxpZ24pIHN0eWxlICs9IGBhbGlnbi1pdGVtczogJHthbGlnbn07YDtcblxuICAgICAgICByZXR1cm4gc3R5bGUubGVuZ3RoID09IDAgPyB1bmRlZmluZWQgOiBzdHlsZTtcbiAgICB9LCBbanVzdGlmeSwgYWxpZ25dKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lID8gY2xhc3NOYW1lICsgXCIgZGMtZ3JvdXBcIiA6IFwiZGMtZ3JvdXBcIn1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZSA/IGV4dHJhU3R5bGUgKyBzdHlsZSA6IGV4dHJhU3R5bGV9XG4gICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIiwgIi8qKiBCYXNpYyBVSSBjb21wb25lbnRzIHRoYXQgaGF2ZSBzaW1wbGUgT2JzaWRpYW4gdGhlbWluZy5cbiAqIEBtb2R1bGUgdWlcbiAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcblxuaW1wb3J0IHsgQ29tcG9uZW50Q2hpbGRyZW4gfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyBzZXRJY29uIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUgfSBmcm9tIFwidWkvaG9va3NcIjtcblxuaW1wb3J0IFwiLi9iYXNpY3MuY3NzXCI7XG5cbi8qKiBWYXJpb3VzIGludGVudHMgZm9yIGJ1dHRvbnMgYW5kIG90aGVyIGludGVyYWN0aXZlIGVsZW1lbnRzLiAqL1xuZXhwb3J0IHR5cGUgSW50ZW50ID0gXCJlcnJvclwiIHwgXCJ3YXJuXCIgfCBcImluZm9cIiB8IFwic3VjY2Vzc1wiO1xuZXhwb3J0IHR5cGUgT21pdHRhYmxlID0gXCJ2YWx1ZVwiIHwgXCJkZWZhdWx0VmFsdWVcIjtcbmV4cG9ydCBjb25zdCBJTlRFTlRfQ0xBU1NFUzogUmVjb3JkPEludGVudCwgc3RyaW5nPiA9IHtcbiAgICBlcnJvcjogXCJkYy1pbnRlbnQtZXJyb3JcIixcbiAgICB3YXJuOiBcImRjLWludGVudC13YXJuXCIsXG4gICAgaW5mbzogXCJkYy1pbnRlbnQtaW5mb1wiLFxuICAgIHN1Y2Nlc3M6IFwiZGMtaW50ZW50LXN1Y2Nlc3NcIixcbn07XG5cbi8qKiBXcmFwcGVyIGZvciBhIHJlZ3VsYXIgSFRNTCBidXR0b24gd2l0aCBzb21lIGRlZmF1bHQgY2xhc3Nlcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCdXR0b24oXG4gICAgcHJvcHM6IHsgY2xhc3NOYW1lPzogc3RyaW5nOyBpbnRlbnQ/OiBJbnRlbnQ7IGNoaWxkcmVuOiBDb21wb25lbnRDaGlsZHJlbiB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxCdXR0b25FbGVtZW50PlxuKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGludGVudCwgY2hpbGRyZW4sIC4uLmZvcndhcmRpbmdQcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRjLWJ1dHRvblwiLCBpbnRlbnQgPyBJTlRFTlRfQ0xBU1NFU1tpbnRlbnRdIDogdW5kZWZpbmVkLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgey4uLmZvcndhcmRpbmdQcm9wc31cbiAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2J1dHRvbj5cbiAgICApO1xufVxuXG4vKiogQSBzaW1wbGUgdGV4dGJveCB3aGljaCBhY2NlcHRzIHRleHQuXG4gKlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRleHRib3gocHJvcHM6IHsgY2xhc3NOYW1lPzogc3RyaW5nIH0gJiBSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLmZvcndhcmRpbmdQcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGlucHV0IHR5cGU9e3Byb3BzLnR5cGUgPz8gXCJ0ZXh0XCJ9IGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy10ZXh0Ym94XCIsIGNsYXNzTmFtZSl9IHsuLi5mb3J3YXJkaW5nUHJvcHN9IC8+XG4gICAgKTtcbn1cblxuLyoqIEEgY2hlY2tib3ggdGhhdCBjYW4gYmUgY2hlY2tlZCBhbmQgdW5jaGVja2VkLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENoZWNrYm94KFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICAgICAgZGVmYXVsdENoZWNrZWQ/OiBib29sZWFuO1xuICAgICAgICBvbkNoZWNrQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgICAgIGNoaWxkcmVuPzogQ29tcG9uZW50Q2hpbGRyZW47XG4gICAgfSAmIFJlYWN0LkhUTUxQcm9wczxIVE1MSW5wdXRFbGVtZW50PlxuKSB7XG4gICAgY29uc3Qge1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgICAgY2hlY2tlZDogaXNDaGVja2VkLFxuICAgICAgICBvbkNoZWNrQ2hhbmdlLFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgLi4uZm9yd2FyZGluZ1Byb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtjaGVja2VkLCBzZXRDaGVja2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q2hlY2tlZCA/PyBmYWxzZSwgaXNDaGVja2VkLCBvbkNoZWNrQ2hhbmdlKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBhbnkpID0+IHNldENoZWNrZWQoZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkKSwgW3NldENoZWNrZWRdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxsYWJlbCBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFwiZGMtY2hlY2tib3hcIiwgZGlzYWJsZWQgPyBcImRjLWNoZWNrYm94LWRpc2FibGVkXCIgOiB1bmRlZmluZWQsIGNsYXNzTmFtZSl9PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17ZGVmYXVsdENoZWNrZWR9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi5mb3J3YXJkaW5nUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2xhYmVsPlxuICAgICk7XG59XG5cbi8qKiBXcmFwcGVyIGZvciBhIHNsaWRlciAocmFuZ2UgaW5wdXQpIHdpdGggc29tZSBkZWZhdWx0IGNsYXNzZXMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gU2xpZGVyKFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgICAgbWluPzogbnVtYmVyO1xuICAgICAgICBtYXg/OiBudW1iZXI7XG4gICAgICAgIHN0ZXA/OiBudW1iZXI7XG4gICAgICAgIHZhbHVlPzogbnVtYmVyO1xuICAgICAgICBkZWZhdWx0VmFsdWU/OiBudW1iZXI7XG4gICAgICAgIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICB9ICYgT21pdDxSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD4sIE9taXR0YWJsZT5cbikge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBtaW4gPSAwLCBtYXggPSAxMCwgc3RlcCA9IDEsIHZhbHVlLCBkZWZhdWx0VmFsdWUsIG9uVmFsdWVDaGFuZ2UsIC4uLmZvcndhcmRpbmdQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgW3NsaWRlciwgc2V0U2xpZGVyXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgPz8gMCwgdmFsdWUsIG9uVmFsdWVDaGFuZ2UpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IGFueSkgPT4gc2V0U2xpZGVyKHBhcnNlRmxvYXQoZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSkpLCBbc2V0U2xpZGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtzbGlkZXIudG9TdHJpbmcoKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy1zbGlkZXJcIiwgY2xhc3NOYW1lKX1cbiAgICAgICAgICAgIG1pbj17bWlufVxuICAgICAgICAgICAgbWF4PXttYXh9XG4gICAgICAgICAgICBzdGVwPXtzdGVwfVxuICAgICAgICAgICAgdmFsdWU9e3NsaWRlcn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIHsuLi5mb3J3YXJkaW5nUHJvcHN9XG4gICAgICAgIC8+XG4gICAgKTtcbn1cblxuLyoqIFdyYXBwZXIgZm9yIGEgc3dpdGNoICh0b2dnbGUpIGNvbXBvbmVudCB3aXRoIHNvbWUgZGVmYXVsdCBjbGFzc2VzLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFN3aXRjaChcbiAgICBwcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAgICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgICAgIGRlZmF1bHRDaGVja2VkPzogYm9vbGVhbjtcbiAgICAgICAgb25Ub2dnbGVDaGFuZ2U/OiAoY2hlY2tlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+XG4pIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgZGlzYWJsZWQsIGRlZmF1bHRDaGVja2VkLCBjaGVja2VkLCBvblRvZ2dsZUNoYW5nZSwgLi4uZm9yd2FyZGluZ1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBbdG9nZ2xlZCwgc2V0VG9nZ2xlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENoZWNrZWQgPz8gZmFsc2UsIGNoZWNrZWQsIG9uVG9nZ2xlQ2hhbmdlKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBhbnkpID0+IHNldFRvZ2dsZWQoZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkKSwgW3NldFRvZ2dsZWRdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcbiAgICAgICAgICAgICAgICBcImRjLXN3aXRjaCBjaGVja2JveC1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICB0b2dnbGVkID8gXCJpcy1lbmFibGVkXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQgPyBcImRjLXN3aXRjaC1kaXNhYmxlZFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYy1zd2l0Y2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXtkZWZhdWx0Q2hlY2tlZH1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXt0b2dnbGVkfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLmZvcndhcmRpbmdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgKTtcbn1cblxuLyoqIFdyYXBwZXIgZm9yIGEgc2VsZWN0IGNvbXBvbmVudCB3aXRoIHNvbWUgZGVmYXVsdCBjbGFzc2VzLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFZhbmlsbGFTZWxlY3QoXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBvcHRpb25zOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAgICAgICBvblZhbHVlQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgfSAmIFJlYWN0LkhUTUxQcm9wczxIVE1MU2VsZWN0RWxlbWVudD5cbikge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIG9uVmFsdWVDaGFuZ2UsIC4uLmZvcndhcmRpbmdQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgW3NlbGVjdGVkVmFsdWUsIHNldFNlbGVjdGVkVmFsdWVdID0gUmVhY3QudXNlU3RhdGUodmFsdWUgPz8gZGVmYXVsdFZhbHVlID8/IFwiXCIpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikgc2V0U2VsZWN0ZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSwgW3ZhbHVlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFwiZGMtc2VsZWN0IGRyb3Bkb3duXCIsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRWYWx1ZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVmFsdWUoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlICYmIG9uVmFsdWVDaGFuZ2UoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB7Li4uZm9yd2FyZGluZ1Byb3BzfVxuICAgICAgICA+XG4gICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtvcHRpb24udmFsdWV9IHZhbHVlPXtvcHRpb24udmFsdWV9PlxuICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICk7XG59XG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBhbiBpY29uXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gSWNvbihwcm9wczogeyBjbGFzc05hbWU/OiBzdHJpbmc7IGljb246IHN0cmluZyB9KSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGljb24gfSA9IHByb3BzO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldEljb24ocmVmLmN1cnJlbnQsIGljb24pO1xuICAgICAgICB9XG4gICAgfSwgW3JlZl0pO1xuXG4gICAgcmV0dXJuIDxzcGFuIHJlZj17cmVmfSBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFwiZGMtaWNvblwiLCBjbGFzc05hbWUpfSBkYXRhLWljb249e2ljb259IC8+O1xufVxuXG4vKipcbiAqICBBcHBlbmRzIGFkZGl0aW9uYWwgY2xhc3NlcyB0byBhIGJhc2ljIGZpeGVkIGNsYXNzLlxuICpcbiAqIEBncm91cCBVdGlsaXRpZXNcbiAqICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUNsYXNzZXMoZml4ZWQ6IHN0cmluZywgLi4ucmVzdDogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IG5vbmVtcHR5ID0gcmVzdC5maWx0ZXIoKGMpID0+IGMgIT09IHVuZGVmaW5lZCk7XG4gICAgaWYgKG5vbmVtcHR5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZpeGVkO1xuXG4gICAgcmV0dXJuIFtmaXhlZCwgLi4ubm9uZW1wdHldLmpvaW4oXCIgXCIpO1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSBpbmRleGFibGVzXG4gKi9cbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuXG4vKiogQW55IGluZGV4YWJsZSBmaWVsZCwgd2hpY2ggbXVzdCBoYXZlIGEgZmV3IGluZGV4LXJlbGV2YW50IHByb3BlcnRpZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4YWJsZSB7XG4gICAgLyoqIFRoZSBvYmplY3QgdHlwZXMgdGhhdCB0aGlzIGluZGV4YWJsZSBpcy4gKi9cbiAgICAkdHlwZXM6IHN0cmluZ1tdO1xuICAgIC8qKiBUZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBvYmplY3QsIHN1Y2ggYXMgYFBhZ2VgIG9yIGBTZWN0aW9uYC4gVXNlZCBpbiB2aXN1YWxpemF0aW9ucy4gKi9cbiAgICAkdHlwZW5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIHVuaXF1ZSBpbmRleCBJRCBmb3IgdGhpcyBvYmplY3QuICovXG4gICAgJGlkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4YWJsZSBvYmplY3QgdGhhdCBpcyB0aGUgcGFyZW50IG9mIHRoaXMgb2JqZWN0LiBPbmx5IHNldCBhZnRlciB0aGUgb2JqZWN0IGlzIGFjdHVhbGx5IGluZGV4ZWQuXG4gICAgICovXG4gICAgJHBhcmVudD86IEluZGV4YWJsZTtcbiAgICAvKiogSWYgcHJlc2VudCwgdGhlIHJldmlzaW9uIGluIHRoZSBpbmRleCBvZiB0aGlzIG9iamVjdC4gKi9cbiAgICAkcmV2aXNpb24/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBmaWxlIHRoYXQgdGhpcyBpbmRleGFibGUgd2FzIGRlcml2ZWQgZnJvbSwgaWYgZmlsZS1iYWNrZWQuICovXG4gICAgJGZpbGU/OiBzdHJpbmc7XG59XG5cbi8qKiBNZXRhZGF0YSBmb3Igb2JqZWN0cyB3aGljaCBzdXBwb3J0IGxpbmtpbmcuICovXG5leHBvcnQgY29uc3QgTElOS0FCTEVfVFlQRSA9IFwibGlua2FibGVcIjtcbi8qKlxuICoge0Bpbmhlcml0RG9jIExJTktBQkxFX1RZUEV9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2FibGUge1xuICAgIC8qKiBBIGxpbmsgdG8gdGhpcyBsaW5rYWJsZSBvYmplY3QuICovXG4gICAgJGxpbms6IExpbms7XG59XG5cbi8qKiBHZW5lcmFsIG1ldGFkYXRhIGZvciBhbnkgZmlsZS4gKi9cbmV4cG9ydCBjb25zdCBGSUxFX1RZUEUgPSBcImZpbGVcIjtcbi8qKlxuICoge0Bpbmhlcml0RG9jIEZJTEVfVFlQRX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlIGV4dGVuZHMgTGlua2FibGUge1xuICAgIC8qKiBUaGUgcGF0aCB0aGlzIGZpbGUgZXhpc3RzIGF0LiAqL1xuICAgICRwYXRoOiBzdHJpbmc7XG4gICAgLyoqIE9ic2lkaWFuLXByb3ZpZGVkIGRhdGUgdGhpcyBwYWdlIHdhcyBjcmVhdGVkLiAqL1xuICAgICRjdGltZTogRGF0ZVRpbWU7XG4gICAgLyoqIE9ic2lkaWFuLXByb3ZpZGVkIGRhdGUgdGhpcyBwYWdlIHdhcyBtb2RpZmllZC4gKi9cbiAgICAkbXRpbWU6IERhdGVUaW1lO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBzaXplIG9mIHRoaXMgcGFnZSBpbiBieXRlcy4gKi9cbiAgICAkc2l6ZTogbnVtYmVyO1xuICAgIC8qKiBUaGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlLiAqL1xuICAgICRleHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqIE1ldGFkYXRhIGZvciB0YWdnYWJsZSBvYmplY3RzLiAqL1xuZXhwb3J0IGNvbnN0IFRBR0dBQkxFX1RZUEUgPSBcInRhZ2dhYmxlXCI7XG4vKipcbiAqIHtAaW5oZXJpdERvYyBUQUdHQUJMRV9UWVBFfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ2dhYmxlIHtcbiAgICAvKiogVGhlIGV4YWN0IHRhZ3Mgb24gdGhpcyBvYmplY3QuICgjYS9iL2Mgb3IgI2Zvby9iYXIpLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbn1cblxuLyoqIE1ldGFkYXRhIGZvciBvYmplY3RzIHdoaWNoIGNhbiBsaW5rIHRvIG90aGVyIHRoaW5ncy4gKi9cbmV4cG9ydCBjb25zdCBMSU5LQkVBUklOR19UWVBFID0gXCJsaW5rc1wiO1xuLyoqXG4gKiB7QGluaGVyaXREb2MgTElOS0JFQVJJTkdfVFlQRX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rYmVhcmluZyB7XG4gICAgLyoqIFRoZSBsaW5rcyBpbiB0aGlzIGZpbGUuICovXG4gICAgJGxpbmtzOiBMaW5rW107XG59XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBleHRlbnNpb25zLiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZWNvbWUgYSBkeW5hbWljIGxvb2t1cCB0YWJsZSBhbmQgbm90IGp1c3RcbiAqIGEgZml4ZWQgbGlzdCBhdCBzb21lIHBvaW50LCBlc3BlY2lhbGx5IGlmIHdlIGFkZCB0aGUgYWJpbGl0eSB0byB0dXJuIGluZGV4aW5nIG9uL29mZi5cbiAqL1xuZXhwb3J0IGNvbnN0IElOREVYQUJMRV9FWFRFTlNJT05TID0gbmV3IFNldChbXCJtZFwiLCBcIm1hcmtkb3duXCIsIFwiY2FudmFzXCJdKTtcbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbmltcG9ydCB7IExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcIi4uL2luZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgSW5saW5lRmllbGQgfSBmcm9tIFwiaW5kZXgvaW1wb3J0L2lubGluZS1maWVsZFwiO1xuaW1wb3J0IHsgRnJvbnRtYXR0ZXJFbnRyeSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgTGluZVNwYW4gfSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9tYXJrZG93blwiO1xuXG4vKiogVGhlIHNvdXJjZSBvZiBhIGZpZWxkLCB1c2VkIHdoZW4gZGV0ZXJtaW5pbmcgd2hhdCBmaWxlcyB0byBvdmVyd3JpdGUgYW5kIGhvdy4gKi9cbmV4cG9ydCB0eXBlIFByb3ZlbmFuY2UgPVxuICAgIHwgeyB0eXBlOiBcImZyb250bWF0dGVyXCI7IGZpbGU6IHN0cmluZzsga2V5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiBcImlubGluZS1maWVsZFwiOyBmaWxlOiBzdHJpbmc7IGxpbmU6IG51bWJlcjsga2V5OiBzdHJpbmcgfTtcblxuLyoqXG4gKiBHZW5lcmFsIGRlZmluaXRpb24gZm9yIGEgZmllbGQuIFByb3ZpZGVzIHRoZSBmaWVsZCBrZXksIHZhbHVlLCBhcyB3ZWxsIGFzIGluZm9ybWF0aW9uIG9uIGl0J3Mgc291cmNlIGFuZCBob3cgaXQgY2FuIGJlIGVkaXRlZC5cbiAqIEBncm91cCBDb21tb24gVHlwZXNcbiAqICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkIHtcbiAgICAvKiogVGhlIGNhbm9uaWNhbCBrZXkgbmFtZSBmb3IgdGhlIGZpZWxkIChpLmUuLCBhcyBpdCBhY3R1YWxseSBzaG93cyB1cCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUpLiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkLiAqL1xuICAgIHZhbHVlOiBMaXRlcmFsO1xuICAgIC8qKiBUaGUgcmF3IHZhbHVlIG9mIHRoZSBmaWVsZCBiZWZvcmUgcGFyc2luZywgaWYgcmVsZXZhbnQuICovXG4gICAgcmF3Pzogc3RyaW5nO1xuICAgIC8qKiBJZiBwcmVzZW50LCBkZXNjcmliZXMgd2hlcmUgdGhlIGZpZWxkIGNhbWUgZnJvbSBpbiBwcmVjaXNlIGRldGFpbCwgYWxsb3dpbmcgdGhlIGZpZWxkIHRvIGJlIGVkaXRlZC4gKi9cbiAgICBwcm92ZW5hbmNlPzogUHJvdmVuYW5jZTtcbn1cblxuLyoqIE1ldGFkYXRhIGZvciBvYmplY3RzIHdoaWNoIGFyZSBhbm5vdGF0ZWQgd2l0aCBmaWVsZHMuICovXG5leHBvcnQgY29uc3QgRklFTERCRUFSSU5HX1RZUEUgPSBcImZpZWxkc1wiO1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZGJlYXJpbmcge1xuICAgIC8qKiBSZXR1cm4gYSBsaXN0IG9mIGFsbCBmaWVsZHMuIFRoaXMgbWF5IGJlIGNvbXB1dGVkIGVhZ2VybHksIHNvIGNhY2hlIHRoaXMgdmFsdWUgZm9yIHJlcGVhdGVkIG9wZXJhdGlvbnMuICovXG4gICAgZmllbGRzOiBGaWVsZFtdO1xuXG4gICAgLyoqIEZldGNoIGEgZmllbGQgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBpZiBpdCBpcyBwcmVzZW50IG9uIHRoaXMgb2JqZWN0LiAqL1xuICAgIGZpZWxkKGtleTogc3RyaW5nKTogRmllbGQgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmllbGRiZWFyaW5ncyB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzRmllbGRiZWFyaW5nKG9iamVjdDogYW55KTogb2JqZWN0IGlzIEZpZWxkYmVhcmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBvYmplY3QgIT0gbnVsbCAmJiB0eXBlb2Ygb2JqZWN0ID09PSBcIm9iamVjdFwiICYmIFwiZmllbGRcIiBpbiBvYmplY3QgJiYgdHlwZW9mIG9iamVjdFtcImZpZWxkXCJdID09IFwiZnVuY3Rpb25cIlxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBHZXQgYSBrZXkgZnJvbSBhIGdlbmVyaWMgbWFwIG9yIGZpZWxkYmVhcmluZyBvYmplY3QuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGdldChvYmplY3Q6IEZpZWxkYmVhcmluZyB8IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+LCBrZXk6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNGaWVsZGJlYXJpbmcob2JqZWN0KSkgcmV0dXJuIG9iamVjdC5maWVsZChrZXkpPy52YWx1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gb2JqZWN0W2tleV07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGdldFdpdGhEZWZhdWx0PFQgZXh0ZW5kcyB7ICRwb3NpdGlvbjogTGluZVNwYW4gfSAmIEluZGV4YWJsZT4oXG4gICAgICAgIG9iamVjdDogVCxcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZT86IExpdGVyYWxcbiAgICApOiBGaWVsZCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHZhbHVlOiBkZWZhdWx0VmFsdWUgPz8gbnVsbCxcbiAgICAgICAgICAgIHByb3ZlbmFuY2U6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImlubGluZS1maWVsZFwiLFxuICAgICAgICAgICAgICAgIGZpbGU6IG9iamVjdC4kZmlsZSEsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGxpbmU6IG9iamVjdC4kcG9zaXRpb24uZW5kLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogR2VuZXJpYyBmdW5jdGlvbiB3aGljaCBleHRyYWN0IGZpZWxkcy4gSWYgbm8gYXJndW1lbnQgaXMgcHJvdmlkZWQsIGl0IHNob3VsZCByZXR1cm4gYWxsIGZpZWxkczsgb3RoZXJ3aXNlLFxuICogaXQgc2hvdWxkIHJldHVybiB0aGUgZmllbGQgbWF0Y2hpbmcgdGhlIGdpdmVuIGtleS5cbiAqXG4gKiBLZXlzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIHRvIG1hdGNoIE9ic2lkaWFuIHN0YW5kYXJkIGJlaGF2aW9yLlxuICovXG5leHBvcnQgdHlwZSBGaWVsZEV4dHJhY3RvcjxUPiA9IChvYmplY3Q6IFQsIGtleT86IHN0cmluZykgPT4gRmllbGRbXTtcblxuLyoqIFF1aWNrIHV0aWxpdGllcyBmb3IgZ2VuZXJhdGluZyBmaWVsZHMgYW5kIGRvaW5nIHNlYXJjaGVzIG92ZXIgdGhlbS5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBFeHRyYWN0b3JzIHtcbiAgICAvKiogQ2hlY2sgaWYgdGhlIGdpdmVuIHByb3BlcnR5IGluIHRoZSBvYmplY3QgaXMgbm90IGV4Y2x1ZGVkIGFuZCBpcyBhIHBsYWluIHByb3BlcnR5IChub3QgYSBmdW5jdGlvbiBvciBvdGhlciBzcGVjaWFsIG9iamVjdCkuICovXG4gICAgZnVuY3Rpb24gaXNWYWxpZEludHJpbnNpYyhvYmplY3Q6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleTogc3RyaW5nLCBleGNsdWRlPzogU2V0PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICAgICAgLy8gRG9uJ3QgYWxsb3cgcmVjdXJzaW9uIG9uICdmaWVsZHMnIG9yIGNhY2hlZCB2YWx1ZXMsIGFuZCBza2lwIGFueSBpZ25vcmVkIGFuZCBub24taW50cmluc2ljcy5cbiAgICAgICAgaWYgKGV4Y2x1ZGU/LmhhcyhrZXkpIHx8ICFrZXkuc3RhcnRzV2l0aChcIiRcIikpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAvLyBObyBmdW5jdGlvbnMsIG9ubHkgdXNlIGFjdHVhbCB2YWx1ZXMuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG9iamVjdCBhcyBhbnkpW2tleV07XG4gICAgICAgIGlmIChMaXRlcmFscy5pc0Z1bmN0aW9uKHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBHZXQgYWxsIGtleXMgb2YgdGhlIG9iamVjdCwgaW5jbHVkaW5nIGRlcml2ZWQgZmllbGRzIGZyb20gcHJvdG90eXBlcy4gKi9cbiAgICBmdW5jdGlvbiogcHJvdG90eXBlS2V5cyhvYmplY3Q6IGFueSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpKSB5aWVsZCBrZXk7XG5cbiAgICAgICAgbGV0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7XG4gICAgICAgIHdoaWxlIChwcm90bykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pKSB5aWVsZCBrZXk7XG5cbiAgICAgICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZW5lcmF0ZSBhIGxpc3Qgb2YgZmllbGRzIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LCByZXR1cm5pbmcgdGhlbSBhcyBhIGxpc3QuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGludHJpbnNpY3M8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KGV4Y2VwdD86IFNldDxzdHJpbmc+KTogRmllbGRFeHRyYWN0b3I8VD4ge1xuICAgICAgICByZXR1cm4gKG9iamVjdDogVCwga2V5Pzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHM6IEZpZWxkW10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHByb3RvdHlwZUtleXMob2JqZWN0KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRJbnRyaW5zaWMob2JqZWN0LCBrZXksIGV4Y2VwdCkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAob2JqZWN0IGFzIGFueSlba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYga2V5IGlzIGRpcmVjdGx5IHByZXNlbnQgaW4gb2JqZWN0LCBqdXN0IHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICBpZiAoa2V5IGluIG9iamVjdCAmJiBpc1ZhbGlkSW50cmluc2ljKG9iamVjdCwga2V5LCBleGNlcHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAob2JqZWN0IGFzIGFueSlba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0gYXMgRmllbGRbXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEZpZWxkIGV4dHJhY3RvciB3aGljaCBleHRyYWN0cyBmcm9udG1hdHRlciBmaWVsZHMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVyPFQgZXh0ZW5kcyBJbmRleGFibGU+KFxuICAgICAgICBmcm9udDogKG9iamVjdDogVCkgPT4gUmVjb3JkPHN0cmluZywgRnJvbnRtYXR0ZXJFbnRyeT4gfCB1bmRlZmluZWRcbiAgICApOiBGaWVsZEV4dHJhY3RvcjxUPiB7XG4gICAgICAgIHJldHVybiAob2JqZWN0OiBULCBrZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZyb250bWF0dGVyID0gZnJvbnQob2JqZWN0KTtcbiAgICAgICAgICAgIGlmICghZnJvbnRtYXR0ZXIpIHJldHVybiBbXTtcblxuICAgICAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzOiBGaWVsZFtdID0gW107XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmcm9udG1hdHRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBmcm9udG1hdHRlcltrZXldO1xuXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZW50cnkua2V5LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZW50cnkudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByYXc6IGVudHJ5LnJhdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZlbmFuY2U6IHsgdHlwZTogXCJmcm9udG1hdHRlclwiLCBmaWxlOiBvYmplY3QuJGZpbGUhLCBrZXk6IGVudHJ5LmtleSB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoIShrZXkgaW4gZnJvbnRtYXR0ZXIpKSByZXR1cm4gW107XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IGZyb250bWF0dGVyW2tleV07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbnRyeS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhdzogZW50cnkucmF3LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmVuYW5jZTogeyB0eXBlOiBcImZyb250bWF0dGVyXCIsIGZpbGU6IG9iamVjdC4kZmlsZSEsIGtleSB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEZpZWxkIGV4dHJhY3RvciB3aGljaCBzaG93cyBhbGwgaW5saW5lIGZpZWxkcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaW5saW5lRmllbGRzPFQgZXh0ZW5kcyBJbmRleGFibGU+KFxuICAgICAgICBpbmxpbmVNYXA6IChvYmplY3Q6IFQpID0+IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPiB8IHVuZGVmaW5lZFxuICAgICk6IEZpZWxkRXh0cmFjdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIChvYmplY3Q6IFQsIGtleT86IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFwID0gaW5saW5lTWFwKG9iamVjdCk7XG4gICAgICAgICAgICBpZiAoIW1hcCkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICBpZiAoa2V5ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgT2JqZWN0LnZhbHVlcyhtYXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZmllbGQua2V5LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByYXc6IGZpZWxkLnJhdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZlbmFuY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlubGluZS1maWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IG9iamVjdC4kZmlsZSEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogZmllbGQucG9zaXRpb24ubGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgUHJvdmVuYW5jZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCEoa2V5IGluIG1hcCkpIHJldHVybiBbXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gbWFwW2tleV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByYXc6IGZpZWxkLnJhdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZlbmFuY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlubGluZS1maWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IG9iamVjdC4kZmlsZSEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogZmllbGQucG9zaXRpb24ubGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgUHJvdmVuYW5jZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBNZXJnZSBtdWx0aXBsZSBmaWVsZCBleHRyYWN0b3JzIGludG8gb25lOyBpZiBtdWx0aXBsZSBleHRyYWN0b3JzIHByb2R1Y2UgaWRlbnRpY2FsIGtleXMsIGtleXMgZnJvbSB0aGUgZWFybGllciBleHRyYWN0b3Igd2lsbCBiZSBwcmVmZXJyZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1lcmdlPFQgZXh0ZW5kcyBGaWVsZGJlYXJpbmc+KC4uLmV4dHJhY3RvcnM6IEZpZWxkRXh0cmFjdG9yPFQ+W10pOiBGaWVsZEV4dHJhY3RvcjxUPiB7XG4gICAgICAgIHJldHVybiAob2JqZWN0OiBULCBrZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkczogRmllbGRbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXh0cmFjdG9yIG9mIGV4dHJhY3RvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBleHRyYWN0b3Iob2JqZWN0LCB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlZC5oYXMoZmllbGQua2V5LnRvTG93ZXJDYXNlKCkpKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlZC5hZGQoZmllbGQua2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goZmllbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXh0cmFjdG9yIG9mIGV4dHJhY3RvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBleHRyYWN0b3Iob2JqZWN0LCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQubGVuZ3RoID4gMCkgcmV0dXJuIGZpZWxkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCAiLyoqIFBhcnNlIGlubGluZSBmaWVsZHMgYW5kIG90aGVyIGVtYmVkZGVkIG1ldGFkYXRhIGluIGEgbGluZS4gKi9cblxuaW1wb3J0IHsgUFJJTUlUSVZFUyB9IGZyb20gXCJleHByZXNzaW9uL3BhcnNlclwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQgeyBKc29uQ29udmVyc2lvbiwgSnNvbkxpdGVyYWwgfSBmcm9tIFwiaW5kZXgvdHlwZXMvanNvbi9jb21tb25cIjtcblxuLyoqIEEgcGFyc2VkIGlubGluZSBmaWVsZCBmcm9tIGEgc3BlY2lmaWMgbGluZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxJbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSByYXcgcGFyc2VkIGtleS4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgZmllbGQuICovXG4gICAgdmFsdWU6IHN0cmluZztcbiAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgKnZhbHVlKiBmb3IgdGhlIGZpZWxkLiAqL1xuICAgIHN0YXJ0VmFsdWU6IG51bWJlcjtcbiAgICAvKiogVGhlIGVuZCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgIGVuZDogbnVtYmVyO1xuICAgIC8qKiBJZiB0aGlzIGlubGluZSBmaWVsZCB3YXMgZGVmaW5lZCB2aWEgYSB3cmFwcGluZyAoJ1snIG9yICcoJyBvciAnbGluaycpLCB0aGVuIHRoZSB3cmFwcGluZyB0aGF0IHdhcyB1c2VkLiAqL1xuICAgIHdyYXBwaW5nPzogc3RyaW5nO1xufVxuXG4vKiogRnVsbCBpbmxpbmUgZmllbGQgbWV0YWRhdGEgZm9yIGFuIG9iamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lRmllbGQge1xuICAgIC8qKiBUaGUgYWN0dWFsIGtleSBkZXNjcmliaW5nIHRoZSBpbmxpbmUgZmllbGQuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICByYXc6IHN0cmluZztcbiAgICAvKiogVGhlIHBhcnNlZCB2YWx1ZS4gKi9cbiAgICB2YWx1ZTogTGl0ZXJhbDtcbiAgICAvKiogRnVsbCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igd2hlcmUgdGhlIGlubGluZSBmaWVsZCBpcyBsb2NhdGVkIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBwb3NpdGlvbjoge1xuICAgICAgICAvKiogVGhlIGxpbmUgbnVtYmVyIHRoZSBpbmxpbmUgZmllbGQgYXBwZWFycyBvbi4gKi9cbiAgICAgICAgbGluZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuIEltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnOjonLiAqL1xuICAgICAgICBzdGFydFZhbHVlOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIGVuZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBKU09OLCBzZXJpYWxpemFibGUgcmVwcmVzZW50YXRpb24gb2YgYW4gaW5saW5lIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uSW5saW5lRmllbGQge1xuICAgIC8qKiBUaGUgYWN0dWFsIGtleSBkZXNjcmliaW5nIHRoZSBpbmxpbmUgZmllbGQuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICByYXc6IHN0cmluZztcbiAgICAvKiogVGhlIHBhcnNlZCB2YWx1ZS4gKi9cbiAgICB2YWx1ZTogSnNvbkxpdGVyYWw7XG4gICAgLyoqIEZ1bGwgcG9zaXRpb24gaW5mb3JtYXRpb24gZm9yIHdoZXJlIHRoZSBpbmxpbmUgZmllbGQgaXMgbG9jYXRlZCBpbiB0aGUgZG9jdW1lbnQuICovXG4gICAgcG9zaXRpb246IHtcbiAgICAgICAgLyoqIFRoZSBsaW5lIG51bWJlciB0aGUgaW5saW5lIGZpZWxkIGFwcGVhcnMgb24uICovXG4gICAgICAgIGxpbmU6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBzdGFydCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgICAgICBzdGFydDogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgKnZhbHVlKiBmb3IgdGhlIGZpZWxkLiBJbW1lZGlhdGVseSBhZnRlciB0aGUgJzo6Jy4gKi9cbiAgICAgICAgc3RhcnRWYWx1ZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIGVuZCBjb2x1bW4gb2YgdGhlIGZpZWxkLiAqL1xuICAgICAgICBlbmQ6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKiBJZiB0aGlzIGlubGluZSBmaWVsZCB3YXMgZGVmaW5lZCB2aWEgYSB3cmFwcGluZyAoJ1snIG9yICcoJyBvciAnbGluaycpLCB0aGVuIHRoZSB3cmFwcGluZyB0aGF0IHdhcyB1c2VkLiAqL1xuICAgIHdyYXBwaW5nPzogc3RyaW5nO1xufVxuXG4vKiogQ29udmVydCBhbiBpbmxpbmUgZmllbGQgdG8gYSBKU09OIGZvcm1hdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uSW5saW5lRmllbGQoZmllbGQ6IElubGluZUZpZWxkKTogSnNvbklubGluZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZmllbGQsIHsgdmFsdWU6IEpzb25Db252ZXJzaW9uLmpzb24oZmllbGQudmFsdWUpIH0pO1xufVxuXG4vKiogQ29udmVydCBhIEpTT04gaW5saW5lIGZpZWxkIGJhY2sgdG8gYSByZWd1bGFyIGZpZWxkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlSW5saW5lRmllbGQoZmllbGQ6IEpzb25JbmxpbmVGaWVsZCk6IElubGluZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZmllbGQsIHsgdmFsdWU6IEpzb25Db252ZXJzaW9uLnZhbHVlKGZpZWxkLnZhbHVlKSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzSW5saW5lRmllbGQobG9jYWw6IExvY2FsSW5saW5lRmllbGQsIGxpbmVubzogbnVtYmVyKTogSW5saW5lRmllbGQ7XG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChsb2NhbDogTG9jYWxJbmxpbmVGaWVsZFtdLCBsaW5lbm86IG51bWJlcik6IElubGluZUZpZWxkW107XG4vKiogQ29udmVydCBhIGxvY2FsIGlubGluZSBmaWVsZCBpbnRvIGEgZnVsbCBpbmxpbmUgZmllbGQgYnkgcGVyZm9ybWluZyBwYXJzaW5nIGFuZCBhZGRpbmcgdGhlIGNvcnJlY3QgbGluZSBudW1iZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChcbiAgICBsb2NhbDogTG9jYWxJbmxpbmVGaWVsZCB8IExvY2FsSW5saW5lRmllbGRbXSxcbiAgICBsaW5lbm86IG51bWJlclxuKTogSW5saW5lRmllbGQgfCBJbmxpbmVGaWVsZFtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhbCkpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsLm1hcCgoZikgPT4gYXNJbmxpbmVGaWVsZChmLCBsaW5lbm8pKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGxvY2FsLmtleSxcbiAgICAgICAgcmF3OiBsb2NhbC52YWx1ZSxcbiAgICAgICAgdmFsdWU6IHBhcnNlSW5saW5lVmFsdWUobG9jYWwudmFsdWUpLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgbGluZTogbGluZW5vLFxuICAgICAgICAgICAgc3RhcnQ6IGxvY2FsLnN0YXJ0LFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogbG9jYWwuc3RhcnRWYWx1ZSxcbiAgICAgICAgICAgIGVuZDogbG9jYWwuZW5kLFxuICAgICAgICB9LFxuICAgICAgICB3cmFwcGluZzogbG9jYWwud3JhcHBpbmcsXG4gICAgfTtcbn1cblxuLyoqIFRoZSB3cmFwcGVyIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYW4gaW5saW5lIGZpZWxkLiAqL1xuZXhwb3J0IGNvbnN0IElOTElORV9GSUVMRF9XUkFQUEVSUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSBPYmplY3QuZnJlZXplKHtcbiAgICBcIltcIjogXCJdXCIsXG4gICAgXCIoXCI6IFwiKVwiLFxufSk7XG5cbi8qKlxuICogRmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgYnJhY2tldCB0aGF0IG9jY3VycyBhdCBvciBhZnRlciBgc3RhcnRgLCByZXNwZWN0aW5nIG5lc3RpbmcgYW5kIGVzY2FwZXMuIElmIGZvdW5kLFxuICogcmV0dXJucyB0aGUgdmFsdWUgY29udGFpbmVkIHdpdGhpbiBhbmQgdGhlIHN0cmluZyBpbmRleCBhZnRlciB0aGUgZW5kIG9mIHRoZSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZmluZENsb3NpbmcoXG4gICAgbGluZTogc3RyaW5nLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgb3Blbjogc3RyaW5nLFxuICAgIGNsb3NlOiBzdHJpbmdcbik6IHsgdmFsdWU6IHN0cmluZzsgZW5kSW5kZXg6IG51bWJlciB9IHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgbmVzdGluZyA9IDA7XG4gICAgbGV0IGVzY2FwZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0OyBpbmRleCA8IGxpbmUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGxldCBjaGFyID0gbGluZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICAgIC8vIEFsbG93cyBmb3IgZG91YmxlIGVzY2FwZXMgbGlrZSAnXFxcXCcgdG8gYmUgcmVuZGVyZWQgbm9ybWFsbHkuXG4gICAgICAgIGlmIChjaGFyID09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGVzY2FwZWQsIGlnbm9yZSB0aGUgbmV4dCBjaGFyYWN0ZXIgZm9yIGNvbXB1dGluZyBuZXN0aW5nLCByZWdhcmRsZXNzIG9mIHdoYXQgaXQgaXMuXG4gICAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFyID09IG9wZW4pIG5lc3RpbmcrKztcbiAgICAgICAgZWxzZSBpZiAoY2hhciA9PSBjbG9zZSkgbmVzdGluZy0tO1xuXG4gICAgICAgIC8vIE9ubHkgb2NjdXJzIGlmIHdlIGFyZSBvbiBhIGNsb3NlIGNoYXJhY3RlciBhbmQgdHJoZXJlIGlzIG5vIG1vcmUgbmVzdGluZy5cbiAgICAgICAgaWYgKG5lc3RpbmcgPCAwKSByZXR1cm4geyB2YWx1ZTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIGluZGV4KS50cmltKCksIGVuZEluZGV4OiBpbmRleCArIDEgfTtcblxuICAgICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIEZpbmQgdGhlICc6Oicgc2VwYXJhdG9yIGluIGFuIGlubGluZSBmaWVsZC4gKi9cbmZ1bmN0aW9uIGZpbmRTZXBhcmF0b3IobGluZTogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogeyBrZXk6IHN0cmluZzsgdmFsdWVJbmRleDogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBzZXAgPSBsaW5lLmluZGV4T2YoXCI6OlwiLCBzdGFydCk7XG4gICAgaWYgKHNlcCA8IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4geyBrZXk6IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBzZXApLnRyaW0oKSwgdmFsdWVJbmRleDogc2VwICsgMiB9O1xufVxuXG4vKiogVHJ5IHRvIGNvbXBsZXRlbHkgcGFyc2UgYW4gaW5saW5lIGZpZWxkIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gQXNzdW1lcyBgc3RhcnRgIGlzIG9uIGEgd3JhcHBpbmcgY2hhcmFjdGVyLiAqL1xuZnVuY3Rpb24gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZTogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogTG9jYWxJbmxpbmVGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IG9wZW4gPSBsaW5lLmNoYXJBdChzdGFydCk7XG5cbiAgICBsZXQga2V5ID0gZmluZFNlcGFyYXRvcihsaW5lLCBzdGFydCArIDEpO1xuICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIC8vIEZhaWwgdGhlIG1hdGNoIGlmIHdlIGZpbmQgYW55IHNlcGFyYXRvciBjaGFyYWN0ZXJzIChub3QgYWxsb3dlZCBpbiBrZXlzKS5cbiAgICBmb3IgKGxldCBzZXAgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKS5jb25jYXQoT2JqZWN0LnZhbHVlcyhJTkxJTkVfRklFTERfV1JBUFBFUlMpKSkge1xuICAgICAgICBpZiAoa2V5LmtleS5pbmNsdWRlcyhzZXApKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IGZpbmRDbG9zaW5nKGxpbmUsIGtleS52YWx1ZUluZGV4LCBvcGVuLCBJTkxJTkVfRklFTERfV1JBUFBFUlNbb3Blbl0pO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBrZXkua2V5LFxuICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgc3RhcnRWYWx1ZToga2V5LnZhbHVlSW5kZXgsXG4gICAgICAgIGVuZDogdmFsdWUuZW5kSW5kZXgsXG4gICAgICAgIHdyYXBwaW5nOiBvcGVuLFxuICAgIH07XG59XG5cbi8qKiBQYXJzZSBhIHRleHR1YWwgaW5saW5lIGZpZWxkIHZhbHVlIGludG8gc29tZXRoaW5nIHdlIGNhbiB3b3JrIHdpdGguICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmxpbmVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogTGl0ZXJhbCB7XG4gICAgLy8gRW1wdHkgaW5saW5lIHZhbHVlcyAoaS5lLiwgbm8gdGV4dCkgc2hvdWxkIG1hcCB0byBudWxsIHRvIG1hdGNoIGxvbmctdGVybSBEYXRhdmlldyBzZW1hbnRpY3MuXG4gICAgLy8gTnVsbCBpcyBhbHNvIGEgbW9yZSB1bml2ZXJzYWwgdHlwZSB0byBkZWFsIHdpdGggdGhhbiBzdHJpbmdzLCBzaW5jZSBhbGwgZnVuY3Rpb25zIGFjY2VwdCBudWxscy5cbiAgICBpZiAodmFsdWUudHJpbSgpID09IFwiXCIpIHJldHVybiBudWxsO1xuXG4gICAgLy8gVGhlIHN0cmlwcGVkIGxpdGVyYWwgZmllbGQgcGFyc2VyIHVuZGVyc3RhbmRzIGFsbCBvZiB0aGUgbm9uLWFycmF5L25vbi1vYmplY3QgZmllbGRzIGFuZCBjYW4gcGFyc2UgdGhlbSBmb3IgdXMuXG4gICAgLy8gSW5saW5lIGZpZWxkIG9iamVjdHMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkOyBpbmxpbmUgYXJyYXkgb2JqZWN0cyBoYXZlIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHBhcnNlclxuICAgIC8vIHNlcGFyYXRlbHkuXG4gICAgbGV0IGlubGluZSA9IFBSSU1JVElWRVMuaW5saW5lRmllbGQucGFyc2UodmFsdWUpO1xuICAgIGlmIChpbmxpbmUuc3RhdHVzKSByZXR1cm4gaW5saW5lLnZhbHVlO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xufVxuXG4vKiogRXh0cmFjdHMgaW5saW5lIGZpZWxkcyBvZiB0aGUgZm9ybSAnW2tleTo6IHZhbHVlXScgZnJvbSBhIGxpbmUgb2YgdGV4dC4gVGhpcyBpcyBkb25lIGluIGEgcmVsYXRpdmVseVxuICogXCJyb2J1c3RcIiB3YXkgdG8gYXZvaWQgZmFpbGluZyBkdWUgdG8gYmFkIG5lc3Rpbmcgb3Igb3RoZXIgaW50ZXJmZXJpbmcgTWFya2Rvd24gc3ltYm9sczpcbiAqXG4gKiAtIExvb2sgZm9yIGFueSB3cmFwcGVycyAoJ1snIGFuZCAnKCcpIGluIHRoZSBsaW5lLCB0cnlpbmcgdG8gcGFyc2Ugd2hhdGV2ZXIgY29tZXMgYWZ0ZXIgaXQgYXMgYW4gaW5saW5lIGtleTo6LlxuICogLSBJZiBzdWNjZXNzZnVsLCBzY2FuIHVudGlsIHlvdSBmaW5kIGEgbWF0Y2hpbmcgZW5kIGJyYWNrZXQsIGFuZCBwYXJzZSB3aGF0ZXZlciByZW1haW5zIGFzIGFuIGlubGluZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVGaWVsZHMobGluZTogc3RyaW5nLCBpbmNsdWRlVGFza0ZpZWxkczogYm9vbGVhbiA9IGZhbHNlKTogTG9jYWxJbmxpbmVGaWVsZFtdIHtcbiAgICBsZXQgZmllbGRzOiBMb2NhbElubGluZUZpZWxkW10gPSBbXTtcbiAgICBmb3IgKGxldCB3cmFwcGVyIG9mIE9iamVjdC5rZXlzKElOTElORV9GSUVMRF9XUkFQUEVSUykpIHtcbiAgICAgICAgbGV0IGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlcik7XG4gICAgICAgIHdoaWxlIChmb3VuZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGxldCBwYXJzZWRGaWVsZCA9IGZpbmRTcGVjaWZpY0lubGluZUZpZWxkKGxpbmUsIGZvdW5kSW5kZXgpO1xuICAgICAgICAgICAgaWYgKCFwYXJzZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgZm91bmRJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWVsZHMucHVzaChwYXJzZWRGaWVsZCk7XG4gICAgICAgICAgICBmb3VuZEluZGV4ID0gbGluZS5pbmRleE9mKHdyYXBwZXIsIHBhcnNlZEZpZWxkLmVuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5jbHVkZVRhc2tGaWVsZHMpIGZpZWxkcyA9IGZpZWxkcy5jb25jYXQoZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmUpKTtcblxuICAgIGZpZWxkcy5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0IC0gYi5zdGFydCk7XG5cbiAgICBsZXQgZmlsdGVyZWRGaWVsZHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09IDAgfHwgZmlsdGVyZWRGaWVsZHNbZmlsdGVyZWRGaWVsZHMubGVuZ3RoIC0gMV0uZW5kIDwgZmllbGRzW2ldLnN0YXJ0KSB7XG4gICAgICAgICAgICBmaWx0ZXJlZEZpZWxkcy5wdXNoKGZpZWxkc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkRmllbGRzO1xufVxuXG4vKiogVmFsaWRhdGVzIHRoYXQgYSByYXcgZmllbGQgbmFtZSBoYXMgYSB2YWxpZCBmb3JtLiAqL1xuY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJUOiBQLlBhcnNlcjxzdHJpbmc+ID0gUC5hbHQoXG4gICAgUC5yZWdleHAobmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwidVwiKSksXG4gICAgUC5yZWdleHAoL1swLTlcXHB7TGV0dGVyfVxcd1xcc18vLV0rL3UpXG4pXG4gICAgLm1hbnkoKVxuICAgIC5tYXAoKHBhcnRzKSA9PiBwYXJ0cy5qb2luKFwiXCIpKTtcblxuY29uc3QgRlVMTF9MSU5FX0tFWV9QQVJTRVI6IFAuUGFyc2VyPHN0cmluZz4gPSBQLnJlZ2V4cCgvW14wLTlcXHdcXHB7TGV0dGVyfV0qL3UpXG4gICAgLnRoZW4oRlVMTF9MSU5FX0tFWV9QQVJUKVxuICAgIC5za2lwKFAucmVnZXhwKC9bX1xcKn5gXSovdSkpO1xuXG4vKiogQXR0ZW1wdCB0byBleHRyYWN0IGEgZnVsbC1saW5lIGZpZWxkIChLZXk6OiBWYWx1ZSBjb25zdW1pbmcgdGhlIGVudGlyZSBjb250ZW50IGxpbmUpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGdWxsTGluZUZpZWxkKHRleHQ6IHN0cmluZyk6IExvY2FsSW5saW5lRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGxldCBzZXAgPSBmaW5kU2VwYXJhdG9yKHRleHQsIDApO1xuICAgIGlmICghc2VwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gV2UgbmVlZCB0byBwb3N0LXByb2Nlc3MgdGhlIGtleSB0byBkcm9wIHVubmVjZXNzYXJ5IG9wZW5pbmcgYW5ub3RhdGlvbnMgYXMgd2VsbCBhc1xuICAgIC8vIGRyb3Agc3Vycm91bmRpbmcgTWFya2Rvd24uXG4gICAgbGV0IHJlYWxLZXkgPSBGVUxMX0xJTkVfS0VZX1BBUlNFUi5wYXJzZShzZXAua2V5KTtcbiAgICBpZiAoIXJlYWxLZXkuc3RhdHVzKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByZWFsS2V5LnZhbHVlLFxuICAgICAgICB2YWx1ZTogdGV4dC5zdWJzdHJpbmcoc2VwLnZhbHVlSW5kZXgpLnRyaW0oKSxcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIHN0YXJ0VmFsdWU6IHNlcC52YWx1ZUluZGV4LFxuICAgICAgICBlbmQ6IHRleHQubGVuZ3RoLFxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVEX0RBVEVfUkVHRVggPSAvXFx1ezI3OTV9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBEVUVfREFURV9SRUdFWCA9IC8oPzpcXHV7MUY0QzV9fFxcdXsxRjRDNn18XFx1ezFGNUQzfVxcdXtGRTBGfT8pXFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBET05FX0RBVEVfUkVHRVggPSAvXFx1ezI3MDV9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBTQ0hFRFVMRURfREFURV9SRUdFWCA9IC9bXFx1ezIzRjN9XFx1ezIzMUJ9XVxccyooXFxkezR9LVxcZHsyfS1cXGR7Mn0pL3U7XG5leHBvcnQgY29uc3QgU1RBUlRfREFURV9SRUdFWCA9IC9cXHV7MUY2RUJ9XFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcblxuZXhwb3J0IGNvbnN0IEVNT0pJX1JFR0VYRVMgPSBbXG4gICAgeyByZWdleDogQ1JFQVRFRF9EQVRFX1JFR0VYLCBrZXk6IFwiY3JlYXRlZFwiIH0sXG4gICAgeyByZWdleDogU1RBUlRfREFURV9SRUdFWCwga2V5OiBcInN0YXJ0XCIgfSxcbiAgICB7IHJlZ2V4OiBTQ0hFRFVMRURfREFURV9SRUdFWCwga2V5OiBcInNjaGVkdWxlZFwiIH0sXG4gICAgeyByZWdleDogRFVFX0RBVEVfUkVHRVgsIGtleTogXCJkdWVcIiB9LFxuICAgIHsgcmVnZXg6IERPTkVfREFURV9SRUdFWCwga2V5OiBcImNvbXBsZXRpb25cIiB9LFxuXTtcblxuLyoqIFBhcnNlIHNwZWNpYWwgY29tcGxldGVkL2R1ZS9kb25lIHRhc2sgZmllbGRzIHdoaWNoIGFyZSBtYXJrZWQgdmlhIGVtb2ppLiAqL1xuZnVuY3Rpb24gZXh0cmFjdFNwZWNpYWxUYXNrRmllbGRzKGxpbmU6IHN0cmluZyk6IExvY2FsSW5saW5lRmllbGRbXSB7XG4gICAgbGV0IHJlc3VsdHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgeyByZWdleCwga2V5IH0gb2YgRU1PSklfUkVHRVhFUykge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMobGluZSk7XG4gICAgICAgIGlmICghbWF0Y2gpIGNvbnRpbnVlO1xuXG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZTogbWF0Y2hbMV0sXG4gICAgICAgICAgICBzdGFydDogbWF0Y2guaW5kZXgsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBtYXRjaC5pbmRleCArIDEsXG4gICAgICAgICAgICBlbmQ6IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoLFxuICAgICAgICAgICAgd3JhcHBpbmc6IFwiZW1vamktc2hvcnRoYW5kXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG4vKiogU2V0cyBvciByZXBsYWNlcyB0aGUgdmFsdWUgb2YgYW4gaW5saW5lIGZpZWxkOyBpZiB0aGUgdmFsdWUgaXMgJ3VuZGVmaW5lZCcsIGRlbGV0ZXMgdGhlIGtleS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbmxpbmVGaWVsZChzb3VyY2U6IHN0cmluZywga2V5OiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBleHRyYWN0SW5saW5lRmllbGRzKHNvdXJjZSk7XG4gICAgbGV0IGV4aXN0aW5nS2V5cyA9IGV4aXN0aW5nLmZpbHRlcigoZikgPT4gZi5rZXkgPT0ga2V5KTtcblxuICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyBPUiB0aGUga2V5IGFscmVhZHkgZG9lc24ndCBleGlzdC5cbiAgICBpZiAoZXhpc3RpbmdLZXlzLmxlbmd0aCA+IDIgfHwgKGV4aXN0aW5nS2V5cy5sZW5ndGggPT0gMCAmJiAhdmFsdWUpKSByZXR1cm4gc291cmNlO1xuICAgIGxldCBleGlzdGluZ0tleSA9IGV4aXN0aW5nS2V5c1swXTtcblxuICAgIGxldCBhbm5vdGF0aW9uID0gdmFsdWUgPyBgWyR7a2V5fTo6ICR7dmFsdWV9XWAgOiBcIlwiO1xuICAgIGlmIChleGlzdGluZ0tleSkge1xuICAgICAgICBsZXQgcHJlZml4ID0gc291cmNlLnN1YnN0cmluZygwLCBleGlzdGluZ0tleS5zdGFydCk7XG4gICAgICAgIGxldCBzdWZmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKGV4aXN0aW5nS2V5LmVuZCk7XG5cbiAgICAgICAgaWYgKGFubm90YXRpb24pIHJldHVybiBgJHtwcmVmaXh9JHthbm5vdGF0aW9ufSR7c3VmZml4fWA7XG4gICAgICAgIGVsc2UgcmV0dXJuIGAke3ByZWZpeH0ke3N1ZmZpeC50cmltU3RhcnQoKX1gO1xuICAgIH0gZWxzZSBpZiAoYW5ub3RhdGlvbikge1xuICAgICAgICByZXR1cm4gYCR7c291cmNlLnRyaW1FbmQoKX0gJHthbm5vdGF0aW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVtb2ppU2hvcnRoYW5kQ29tcGxldGlvbkZpZWxkKHNvdXJjZTogc3RyaW5nLCB2YWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBleHRyYWN0SW5saW5lRmllbGRzKHNvdXJjZSwgdHJ1ZSk7XG4gICAgY29uc3QgZXhpc3RpbmdLZXlzID0gZXhpc3RpbmcuZmlsdGVyKChmKSA9PiBmLmtleSA9PT0gXCJjb21wbGV0aW9uXCIgJiYgZi53cmFwcGluZyA9PT0gXCJlbW9qaS1zaG9ydGhhbmRcIik7XG5cbiAgICAvLyBEb24ndCBkbyBhbnl0aGluZyBpZiB0aGVyZSBhcmUgZHVwbGljYXRlIGtleXMgT1IgdGhlIGtleSBhbHJlYWR5IGRvZXNuJ3QgZXhpc3QuXG4gICAgaWYgKGV4aXN0aW5nS2V5cy5sZW5ndGggPiAyIHx8IChleGlzdGluZ0tleXMubGVuZ3RoID09IDAgJiYgIXZhbHVlKSkgcmV0dXJuIHNvdXJjZTtcblxuICAgIC8qIE5vIHdyYXBwZXIsIGFkZCBvd24gc3BhY2luZyBhdCBzdGFydCAqL1xuICAgIGNvbnN0IGFubm90YXRpb24gPSB2YWx1ZSA/IGAgXHUyNzA1ICR7dmFsdWV9YCA6IFwiXCI7XG4gICAgbGV0IGV4aXN0aW5nS2V5ID0gZXhpc3RpbmdLZXlzWzBdO1xuICAgIGlmIChleGlzdGluZ0tleSkge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKDAsIGV4aXN0aW5nS2V5LnN0YXJ0KTtcbiAgICAgICAgY29uc3Qgc3VmZml4ID0gc291cmNlLnN1YnN0cmluZyhleGlzdGluZ0tleS5lbmQpO1xuICAgICAgICByZXR1cm4gYCR7cHJlZml4LnRyaW1FbmQoKX0ke2Fubm90YXRpb259JHtzdWZmaXh9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYCR7c291cmNlLnRyaW1FbmQoKX0ke2Fubm90YXRpb259YDtcbiAgICB9XG59XG4iLCAiLyoqIE1hcCB0aGUgdmFsdWVzIG9mIGFuIG9iamVjdCwgcmV0dXJuaW5nIGEgbmV3IG9iamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBPYmplY3RWYWx1ZXM8ViwgVT4ob2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBWPiwgZnVuYzogKHg6IFYpID0+IFUpOiBSZWNvcmQ8c3RyaW5nLCBVPiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBVPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBmdW5jKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIiwgImltcG9ydCB7IExpbmssIEpzb25MaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5cbi8qKiBKU09OLXNlcmlhbGl6ZWQgZXF1aXZhbGVudHMgZm9yIGxpdGVyYWxzLiAqL1xuZXhwb3J0IHR5cGUgSnNvbkxpdGVyYWwgPVxuICAgIHwgYm9vbGVhblxuICAgIHwgbnVtYmVyXG4gICAgfCBzdHJpbmdcbiAgICB8IHsgJF90eXBlOiBcImRhdGVcIjsgdmFsdWU6IHN0cmluZyB9XG4gICAgfCB7ICRfdHlwZTogXCJkdXJhdGlvblwiOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB8IHsgJF90eXBlOiBcImxpbmtcIjsgdmFsdWU6IEpzb25MaW5rIH1cbiAgICB8IEFycmF5PEpzb25MaXRlcmFsPlxuICAgIHwgUmVjb3JkPHN0cmluZywgYW55PlxuICAgIHwgbnVsbDtcblxuZXhwb3J0IG5hbWVzcGFjZSBKc29uQ29udmVyc2lvbiB7XG4gICAgZXhwb3J0IGNvbnN0IE5PT1BfTk9STUFMSVpFUjogKGlucHV0OiBMaXRlcmFsKSA9PiBMaXRlcmFsID0gKGlucHV0KSA9PiBpbnB1dDtcblxuICAgIC8qKiBDb252ZXJ0IGEgbGl0ZXJhbCB2YWx1ZSB0byBhIHNhZmUsIHBlcnNpc3RlbnQgSlNPTiBlcXVpdmFsZW50LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBqc29uKGxpdGVyYWw6IExpdGVyYWwpOiBKc29uTGl0ZXJhbCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSBMaXRlcmFscy53cmFwVmFsdWUobGl0ZXJhbCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgc3dpdGNoICh3cmFwcGVkPy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXAoSnNvbkNvbnZlcnNpb24uanNvbik7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcE9iamVjdFZhbHVlcyh3cmFwcGVkLnZhbHVlLCBKc29uQ29udmVyc2lvbi5qc29uKTtcbiAgICAgICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgJF90eXBlOiBcImRhdGVcIiwgdmFsdWU6IHdyYXBwZWQudmFsdWUudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiB0cnVlIH0pIH07XG4gICAgICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7ICRfdHlwZTogXCJsaW5rXCIsIHZhbHVlOiB3cmFwcGVkLnZhbHVlLnRvT2JqZWN0KCkgfTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7ICRfdHlwZTogXCJkdXJhdGlvblwiLCB2YWx1ZTogd3JhcHBlZC52YWx1ZS50b0lTTygpIH07XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIEpTT04gbGl0ZXJhbCB0byBpdCdzIGNvcnJlc3BvbmRpbmcgaHlkcmF0ZWQgdmFsdWUsIG9wdGlvbmFsbHkgYXBwbHlpbmdcbiAgICAgKiBhIG5vcm1hbGl6YXRpb24gc3RlcCB0byB0aGUgcmVzdWx0aW5nIHZhbHVlIGFuZCBhbnkgbGl0ZXJhbHMgY29udGFpbmVkIHdpdGhpbiBpdFxuICAgICAqIChzdWNoIGFzIGlmIHRoZSBsaXRlcmFsIGlzIGEgbGlzdCBvciBvYmplY3QpLlxuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB2YWx1ZShqc29uOiBKc29uTGl0ZXJhbCwgbm9ybWFsaXplcjogKGlucHV0OiBMaXRlcmFsKSA9PiBMaXRlcmFsID0gTk9PUF9OT1JNQUxJWkVSKTogTGl0ZXJhbCB7XG4gICAgICAgIGlmIChqc29uID09PSBudWxsIHx8IGpzb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVyKGpzb24ubWFwKChpbnB1dCkgPT4gSnNvbkNvbnZlcnNpb24udmFsdWUoaW5wdXQsIG5vcm1hbGl6ZXIpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGpzb24gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGlmICghKFwiJF90eXBlXCIgaW4ganNvbikpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcE9iamVjdFZhbHVlcyhqc29uLCAodikgPT4gSnNvbkNvbnZlcnNpb24udmFsdWUodiBhcyBKc29uTGl0ZXJhbCwgbm9ybWFsaXplcikpO1xuXG4gICAgICAgICAgICBjb25zdCB0eXBlID0ganNvbltcIiRfdHlwZVwiXTtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVyKERhdGVUaW1lLmZyb21JU08oanNvbi52YWx1ZSwgeyBzZXRab25lOiB0cnVlIH0pKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoRHVyYXRpb24uZnJvbUlTTyhqc29uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGpzb24udmFsdWUpKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBzZXJpYWxpemVkIHR5cGUgJyR7dHlwZX0nIWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJpbWl0aXZlIHR5cGUsIHJldHVybiBhcyBpcy5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoanNvbiBhcyBMaXRlcmFsKTtcbiAgICB9XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuaW1wb3J0IHsgTGluaywgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBnZXRGaWxlVGl0bGUgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7XG4gICAgRklMRV9UWVBFLFxuICAgIEZpbGUsXG4gICAgSW5kZXhhYmxlLFxuICAgIExJTktBQkxFX1RZUEUsXG4gICAgTElOS0JFQVJJTkdfVFlQRSxcbiAgICBMaW5rYWJsZSxcbiAgICBMaW5rYmVhcmluZyxcbiAgICBUQUdHQUJMRV9UWVBFLFxuICAgIFRhZ2dhYmxlLFxufSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHtcbiAgICBFeHRyYWN0b3JzLFxuICAgIEZJRUxEQkVBUklOR19UWVBFLFxuICAgIEZpZWxkLFxuICAgIEZpZWxkRXh0cmFjdG9yLFxuICAgIEZpZWxkYmVhcmluZyxcbiAgICBGaWVsZGJlYXJpbmdzLFxufSBmcm9tIFwiLi4vLi4vZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgSW5saW5lRmllbGQsIGpzb25JbmxpbmVGaWVsZCwgdmFsdWVJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQge1xuICAgIExpbmVTcGFuLFxuICAgIEpzb25NYXJrZG93blBhZ2UsXG4gICAgSnNvbk1hcmtkb3duU2VjdGlvbixcbiAgICBKc29uTWFya2Rvd25CbG9jayxcbiAgICBKc29uTWFya2Rvd25MaXN0QmxvY2ssXG4gICAgSnNvbk1hcmtkb3duTGlzdEl0ZW0sXG4gICAgSnNvbk1hcmtkb3duVGFza0l0ZW0sXG4gICAgSnNvbk1hcmtkb3duRGF0YWJsb2NrIGFzIEpzb25NYXJrZG93bkRhdGFibG9jayxcbiAgICBKc29uTWFya2Rvd25Db2RlYmxvY2ssXG4gICAgSnNvbkZyb250bWF0dGVyRW50cnksXG59IGZyb20gXCIuL2pzb24vbWFya2Rvd25cIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5pbXBvcnQgeyBKc29uQ29udmVyc2lvbiB9IGZyb20gXCIuL2pzb24vY29tbW9uXCI7XG5cbi8qKiBBIG1hcmtkb3duIGZpbGUgaW4gdGhlIHZhdWx0OyB0aGUgc291cmNlIG9mIG1vc3QgbWV0YWRhdGEuICovXG5leHBvcnQgY2xhc3MgTWFya2Rvd25QYWdlIGltcGxlbWVudHMgRmlsZSwgTGlua2JlYXJpbmcsIFRhZ2dhYmxlLCBJbmRleGFibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgLyoqIEFsbCBvZiB0aGUgdHlwZXMgdGhhdCBhIG1hcmtkb3duIGZpbGUgaXMuICovXG4gICAgc3RhdGljIFRZUEVTID0gW0ZJTEVfVFlQRSwgXCJtYXJrZG93blwiLCBcInBhZ2VcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgLy8gVXNlIHN0YXRpYyB0eXBlcyBmb3IgYWxsIG1hcmtkb3duIGZpbGVzLlxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93blBhZ2UuVFlQRVM7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIlBhZ2VcIjtcblxuICAgIC8vIE1hcmtkb3duIGZpbGUgSURzIGFyZSBhbHdheXMganVzdCB0aGUgZnVsbCBwYXRoLlxuICAgIGdldCAkaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cbiAgICAvLyBUaGUgZmlsZSBvZiBhIGZpbGUgaXMuLi4gaXQncyBmaWxlLlxuICAgIGdldCAkZmlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBhdGg7XG4gICAgfVxuXG4gICAgLyoqIEZyb250bWF0dGVyIHZhbHVlcyBpbiB0aGUgZmlsZSwgaWYgcHJlc2VudC4gTWFwcyBsb3dlciBjYXNlIGZyb250bWF0dGVyIGtleSAtPiBlbnRyeS4gKi9cbiAgICAkZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PjtcbiAgICAvKiogTWFwIG9mIGFsbCBkaXN0aW5jdCBpbmxpbmUgZmllbGRzIGluIHRoZSBkb2N1bWVudC4gTWFwcyBsb3dlciBjYXNlIGtleSBuYW1lIC0+IGZ1bGwgbWV0YWRhdGEuICovXG4gICAgJGluZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD47XG5cbiAgICAvKiogVGhlIHBhdGggdGhpcyBmaWxlIGV4aXN0cyBhdC4gKi9cbiAgICAkcGF0aDogc3RyaW5nO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgY3JlYXRlZC4gKi9cbiAgICAkY3RpbWU6IERhdGVUaW1lO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgbW9kaWZpZWQuICovXG4gICAgJG10aW1lOiBEYXRlVGltZTtcbiAgICAvKiogVGhlIGV4dGVuc2lvbjsgZm9yIG1hcmtkb3duIGZpbGVzLCBhbG1vc3QgYWx3YXlzICcubWQnLiAqL1xuICAgICRleHRlbnNpb246IHN0cmluZztcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgc2l6ZSBvZiB0aGlzIHBhZ2UgaW4gYnl0ZXMuICovXG4gICAgJHNpemU6IG51bWJlciA9IDA7XG4gICAgLyoqIFRoZSBmdWxsIGV4dGVudCBvZiB0aGUgZmlsZSAoc3RhcnQgMCwgZW5kIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGZpbGUuKSAqL1xuICAgICRwb3NpdGlvbjogTGluZVNwYW47XG4gICAgLyoqIFRoZSBleGFjdCB0YWdzIGluIHRoZSBmaWxlLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKlxuICAgICAqIEFsbCBjaGlsZCBtYXJrZG93biBzZWN0aW9ucyBvZiB0aGlzIG1hcmtkb3duIGZpbGUuIFRoZSBpbml0aWFsIHNlY3Rpb24gYmVmb3JlIGFueSBjb250ZW50IGlzIHNwZWNpYWwgYW5kIGlzXG4gICAgICogbmFtZWQgd2l0aCB0aGUgdGl0bGUgb2YgdGhlIGZpbGUuXG4gICAgICovXG4gICAgJHNlY3Rpb25zOiBNYXJrZG93blNlY3Rpb25bXSA9IFtdO1xuXG4gICAgLyoqIENyZWF0ZSBhIG1hcmtkb3duIGZpbGUgZnJvbSB0aGUgZ2l2ZW4gcmF3IHZhbHVlcy4gKi9cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25NYXJrZG93blBhZ2UsIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyID0gTk9PUF9OT1JNQUxJWkVSKTogTWFya2Rvd25QYWdlIHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSByYXcuJHNlY3Rpb25zLm1hcCgoc2VjdCkgPT4gTWFya2Rvd25TZWN0aW9uLmZyb20oc2VjdCwgcmF3LiRwYXRoLCBub3JtYWxpemVyKSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blBhZ2Uoe1xuICAgICAgICAgICAgJHBhdGg6IHJhdy4kcGF0aCxcbiAgICAgICAgICAgICRmcm9udG1hdHRlcjogcmF3LiRmcm9udG1hdHRlclxuICAgICAgICAgICAgICAgID8gbWFwT2JqZWN0VmFsdWVzKHJhdy4kZnJvbnRtYXR0ZXIsIChmbSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVGcm9udG1hdHRlckVudHJ5KGZtKSwgbm9ybWFsaXplcikpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhyYXcuJGluZmllbGRzLCAoZmllbGQpID0+IG5vcm1hbGl6ZUxpbmtzKHZhbHVlSW5saW5lRmllbGQoZmllbGQpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkY3RpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRjdGltZSksXG4gICAgICAgICAgICAkbXRpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRtdGltZSksXG4gICAgICAgICAgICAkZXh0ZW5zaW9uOiByYXcuJGV4dGVuc2lvbixcbiAgICAgICAgICAgICRzaXplOiByYXcuJHNpemUsXG4gICAgICAgICAgICAkcG9zaXRpb246IHJhdy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogcmF3LiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiByYXcuJGxpbmtzLm1hcCgobGluaykgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobGluaykpKSxcbiAgICAgICAgICAgICRzZWN0aW9uczogc2VjdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxNYXJrZG93blBhZ2U+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBnZXQgJGxpbmVDb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBvc2l0aW9uLmVuZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGZpbGUuICovXG4gICAgZ2V0ICRuYW1lKCkge1xuICAgICAgICByZXR1cm4gZ2V0RmlsZVRpdGxlKHRoaXMuJHBhdGgpO1xuICAgIH1cblxuICAgIC8qKiBBIGxpbmsgdG8gdGhpcyBmaWxlLiAqL1xuICAgIGdldCAkbGluaygpIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZSh0aGlzLiRwYXRoKTtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCk6IEZpZWxkW10ge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25QYWdlLkZJRUxEX0RFRih0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSBmdWxsIGZpZWxkIGRlZmluaXRpb24gZm9yIHRoZSBnaXZlbiBmaWVsZC4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpOiBGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBNYXJrZG93blBhZ2UuRklFTERfREVGKHRoaXMsIGtleSk/LlswXTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkLiAqL1xuICAgIHB1YmxpYyB2YWx1ZShrZXk6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZChrZXkpPy52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIHBhZ2UgaW50byBpdCdzIHBhcnRpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNhdmluZy4gKi9cbiAgICBwdWJsaWMganNvbigpOiBKc29uTWFya2Rvd25QYWdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwYXRoOiB0aGlzLiRwYXRoLFxuICAgICAgICAgICAgJGZyb250bWF0dGVyOiB0aGlzLiRmcm9udG1hdHRlciA/IG1hcE9iamVjdFZhbHVlcyh0aGlzLiRmcm9udG1hdHRlciwganNvbkZyb250bWF0dGVyRW50cnkpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJGluZmllbGRzOiBtYXBPYmplY3RWYWx1ZXModGhpcy4kaW5maWVsZHMsIGpzb25JbmxpbmVGaWVsZCksXG4gICAgICAgICAgICAkY3RpbWU6IHRoaXMuJGN0aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkbXRpbWU6IHRoaXMuJG10aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkZXh0ZW5zaW9uOiB0aGlzLiRleHRlbnNpb24sXG4gICAgICAgICAgICAkc2l6ZTogdGhpcy4kc2l6ZSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogdGhpcy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogdGhpcy4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy4kbGlua3MubWFwKChsaW5rKSA9PiBsaW5rLnRvT2JqZWN0KCkpLFxuICAgICAgICAgICAgJHNlY3Rpb25zOiB0aGlzLiRzZWN0aW9ucy5tYXAoKHNlY3QpID0+IHNlY3QuanNvbigpKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPE1hcmtkb3duUGFnZT4gPSBFeHRyYWN0b3JzLm1lcmdlKFxuICAgICAgICBFeHRyYWN0b3JzLmludHJpbnNpY3MoKSxcbiAgICAgICAgRXh0cmFjdG9ycy5mcm9udG1hdHRlcigoZikgPT4gZi4kZnJvbnRtYXR0ZXIpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1hcmtkb3duU2VjdGlvbiBpbXBsZW1lbnRzIEluZGV4YWJsZSwgVGFnZ2FibGUsIExpbmthYmxlLCBMaW5rYmVhcmluZywgRmllbGRiZWFyaW5nIHtcbiAgICAvKiogQWxsIG9mIHRoZSB0eXBlcyB0aGF0IGEgbWFya2Rvd24gc2VjdGlvbiBpcy4gKi9cbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJtYXJrZG93blwiLCBcInNlY3Rpb25cIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgLyoqIFBhdGggb2YgdGhlIGZpbGUgdGhhdCB0aGlzIHNlY3Rpb24gaXMgaW4uICovXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duU2VjdGlvbi5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiU2VjdGlvblwiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGluZGV4IG9mIHRoaXMgc2VjdGlvbiBpbiB0aGUgZmlsZS4gKi9cbiAgICAkb3JkaW5hbDogbnVtYmVyO1xuICAgIC8qKiBUaGUgdGl0bGUgb2YgdGhlIHNlY3Rpb247IHRoZSByb290IChpbXBsaWNpdCkgc2VjdGlvbiB3aWxsIGhhdmUgdGhlIHRpdGxlIG9mIHRoZSBwYWdlLiAqL1xuICAgICR0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgaW5kZW50YXRpb24gbGV2ZWwgb2YgdGhlIHNlY3Rpb24gKDEgLSA2KS4gKi9cbiAgICAkbGV2ZWw6IG51bWJlcjtcbiAgICAvKiogVGhlIHNwYW4gb2YgbGluZXMgaW5kaWNhdGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlY3Rpb24uICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQWxsIHRhZ3Mgb24gdGhlIGZpbGUuICovXG4gICAgJHRhZ3M6IHN0cmluZ1tdO1xuICAgIC8qKiBBbGwgbGlua3MgaW4gdGhlIGZpbGUuICovXG4gICAgJGxpbmtzOiBMaW5rW107XG4gICAgLyoqIEFsbCBvZiB0aGUgbWFya2Rvd24gYmxvY2tzIGluIHRoaXMgc2VjdGlvbi4gKi9cbiAgICAkYmxvY2tzOiBNYXJrZG93bkJsb2NrW107XG4gICAgLyoqIE1hcCBvZiBhbGwgZGlzdGluY3QgaW5saW5lIGZpZWxkcyBpbiB0aGUgZG9jdW1lbnQsIGZyb20ga2V5IG5hbWUgLT4gbWV0YWRhdGEuICovXG4gICAgJGluZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD47XG5cbiAgICAvKiogQ29udmVydCByYXcgbWFya2Rvd24gc2VjdGlvbiBkYXRhIHRvIHRoZSBhcHByb3ByaWF0ZSBjbGFzcy4gKi9cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25NYXJrZG93blNlY3Rpb24sIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVIpOiBNYXJrZG93blNlY3Rpb24ge1xuICAgICAgICBjb25zdCBibG9ja3MgPSByYXcuJGJsb2Nrcy5tYXAoKGJsb2NrKSA9PiBNYXJrZG93bkJsb2NrLmZyb20oYmxvY2ssIGZpbGUsIG5vcm1hbGl6ZXIpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blNlY3Rpb24oe1xuICAgICAgICAgICAgJGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAkaWQ6IE1hcmtkb3duU2VjdGlvbi5yZWFkYWJsZUlkKGZpbGUsIHJhdy4kdGl0bGUsIHJhdy4kb3JkaW5hbCksXG4gICAgICAgICAgICAkb3JkaW5hbDogcmF3LiRvcmRpbmFsLFxuICAgICAgICAgICAgJHRpdGxlOiByYXcuJHRpdGxlLFxuICAgICAgICAgICAgJGxldmVsOiByYXcuJGxldmVsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiByYXcuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IHJhdy4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogcmF3LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkYmxvY2tzOiBibG9ja3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhyYXcuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8TWFya2Rvd25TZWN0aW9uPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgc2VjdGlvbi4gKi9cbiAgICBnZXQgJGxpbmVDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy4kcG9zaXRpb24uZW5kIC0gdGhpcy4kcG9zaXRpb24uc3RhcnQ7XG4gICAgfVxuXG4gICAgLyoqIEFsaWFzIGZvciB0aXRsZSB3aGljaCBhbGxvd3Mgc2VhcmNoaW5nIG92ZXIgcGFnZXMgYW5kIHNlY3Rpb25zIGJ5ICduYW1lJy4gKi9cbiAgICBnZXQgJG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHRpdGxlO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBsaW5rIHRvIHRoaXMgc2VjdGlvbi4gKi9cbiAgICBnZXQgJGxpbmsoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmhlYWRlcih0aGlzLiRmaWxlLCB0aGlzLiR0aXRsZSk7XG4gICAgfVxuXG4gICAgLyoqIEFsbCBvZiB0aGUgaW5kZXhlZCBmaWVsZHMgaW4gdGhpcyBvYmplY3QuICovXG4gICAgZ2V0IGZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duU2VjdGlvbi5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEZldGNoIGEgc3BlY2lmaWMgZmllbGQgYnkga2V5LiAqL1xuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZyk6IEZpZWxkIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duU2VjdGlvbi5GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duU2VjdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy4kb3JkaW5hbCxcbiAgICAgICAgICAgICR0aXRsZTogdGhpcy4kdGl0bGUsXG4gICAgICAgICAgICAkbGV2ZWw6IHRoaXMuJGxldmVsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB0aGlzLiRwb3NpdGlvbixcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLiRsaW5rcy5tYXAoKGxpbmspID0+IGxpbmsudG9PYmplY3QoKSksXG4gICAgICAgICAgICAkYmxvY2tzOiB0aGlzLiRibG9ja3MubWFwKChibG9jaykgPT4gYmxvY2suanNvbigpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIEZJRUxEX0RFRjogRmllbGRFeHRyYWN0b3I8TWFya2Rvd25TZWN0aW9uPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcblxuICAgIC8qKiBHZW5lcmF0ZSBhIHJlYWRhYmxlIElEIGZvciB0aGlzIHNlY3Rpb24gdXNpbmcgdGhlIGZpcnN0IDggY2hhcmFjdGVycyBvZiB0aGUgc3RyaW5nIGFuZCB0aGUgb3JkaW5hbC4gKi9cbiAgICBzdGF0aWMgcmVhZGFibGVJZChmaWxlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9yZGluYWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpcnN0OCA9IHRpdGxlLnN1YnN0cmluZygwLCBNYXRoLm1pbih0aXRsZS5sZW5ndGgsIDgpKS5yZXBsYWNlKC9bXkEtWmEtejAtOS1fXSsvZ2ksIFwiLVwiKTtcblxuICAgICAgICByZXR1cm4gYCR7ZmlsZX0vc2VjdGlvbiR7b3JkaW5hbH0vJHtmaXJzdDh9YDtcbiAgICB9XG59XG5cbi8qKiBCYXNlIGNsYXNzIGZvciBhbGwgbWFya2Rvd24gYmxvY2tzLiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBJbmRleGFibGUsIExpbmtiZWFyaW5nLCBUYWdnYWJsZSwgRmllbGRiZWFyaW5nIHtcbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJtYXJrZG93blwiLCBcImJsb2NrXCIsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93bkJsb2NrLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJCbG9ja1wiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGluZGV4IG9mIHRoaXMgYmxvY2sgaW4gdGhlIGZpbGUuICovXG4gICAgJG9yZGluYWw6IG51bWJlcjtcbiAgICAvKiogVGhlIHBvc2l0aW9uL2V4dGVudCBvZiB0aGUgYmxvY2suICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQWxsIHRhZ3Mgb24gdGhlIGJsb2NrLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKiBNYXAgb2YgYWxsIGRpc3RpbmN0IGlubGluZSBmaWVsZHMgaW4gdGhlIGRvY3VtZW50LCBmcm9tIGtleSBuYW1lIC0+IG1ldGFkYXRhLiAqL1xuICAgICRpbmZpZWxkczogUmVjb3JkPHN0cmluZywgSW5saW5lRmllbGQ+O1xuICAgIC8qKiBJZiBwcmVzZW50LCB0aGUgZGlzdGluY3QgYmxvY2sgSUQgZm9yIHRoaXMgYmxvY2suICovXG4gICAgJGJsb2NrSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJsb2NrIC0gcGFyYWdyYXBoLCBsaXN0LCBhbmQgc28gb24uICovXG4gICAgJHR5cGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tKG9iamVjdDogSnNvbk1hcmtkb3duQmxvY2ssIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVIpOiBNYXJrZG93bkJsb2NrIHtcbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJsaXN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXJrZG93bkxpc3RCbG9jay5mcm9tKG9iamVjdCBhcyBKc29uTWFya2Rvd25MaXN0QmxvY2ssIGZpbGUsIG5vcm1hbGl6ZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJkYXRhYmxvY2tcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hcmtkb3duRGF0YWJsb2NrLmZyb20ob2JqZWN0IGFzIEpzb25NYXJrZG93bkRhdGFibG9jaywgZmlsZSwgbm9ybWFsaXplcik7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LiR0eXBlID09PSBcImNvZGVibG9ja1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gTWFya2Rvd25Db2RlYmxvY2suZnJvbShvYmplY3QgYXMgSnNvbk1hcmtkb3duQ29kZWJsb2NrLCBmaWxlLCBub3JtYWxpemVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgTWFya2Rvd25CbG9jayh7XG4gICAgICAgICAgICAkZmlsZTogZmlsZSxcbiAgICAgICAgICAgICRpZDogTWFya2Rvd25CbG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kb3JkaW5hbCksXG4gICAgICAgICAgICAkb3JkaW5hbDogb2JqZWN0LiRvcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IG9iamVjdC4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogb2JqZWN0LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICR0eXBlOiBvYmplY3QuJHR5cGUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duQmxvY2s+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIElmIHRoaXMgYmxvY2sgaGFzIGEgYmxvY2sgSUQsIHRoZSBsaW5rIHRvIHRoaXMgYmxvY2suICovXG4gICAgZ2V0ICRsaW5rKCk6IExpbmsgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy4kYmxvY2tJZCkgcmV0dXJuIExpbmsuYmxvY2sodGhpcy4kZmlsZSwgdGhpcy4kYmxvY2tJZCk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25CbG9jay5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEZldGNoIGEgc3BlY2lmaWMgZmllbGQgYnkga2V5LiAqL1xuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25CbG9jay5GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duQmxvY2sge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJG9yZGluYWw6IHRoaXMuJG9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHRoaXMuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMuJHRhZ3MsXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMuJGxpbmtzLm1hcCgobCkgPT4gbC50b09iamVjdCgpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuJGJsb2NrSWQsXG4gICAgICAgICAgICAkdHlwZTogdGhpcy4kdHlwZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkJsb2NrPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcblxuICAgIC8qKiBHZW5lcmF0ZSBhIHJlYWRhYmxlIElEIGZvciB0aGlzIGJsb2NrIHVzaW5nIHRoZSBvcmRpbmFsIG9mIHRoZSBibG9jay4gKi9cbiAgICBzdGF0aWMgcmVhZGFibGVJZChmaWxlOiBzdHJpbmcsIG9yZGluYWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtmaWxlfS9ibG9jayR7b3JkaW5hbH1gO1xuICAgIH1cbn1cblxuLyoqIFNwZWNpYWwgYmxvY2sgZm9yIG1hcmtkb3duIGxpc3RzIChvZiBlaXRoZXIgcGxhaW4gbGlzdCBlbnRyaWVzIG9yIHRhc2tzKS4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkxpc3RCbG9jayBleHRlbmRzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBUYWdnYWJsZSwgTGlua2JlYXJpbmcge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcIm1hcmtkb3duXCIsIFwiYmxvY2tcIiwgXCJibG9jay1saXN0XCIsIFRBR0dBQkxFX1RZUEUsIExJTktCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duTGlzdEJsb2NrLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJMaXN0IEJsb2NrXCI7XG5cbiAgICAvKiogVGhlIGxpc3QgaXRlbXMgaW5zaWRlIG9mIHRoaXMgYmxvY2suICovXG4gICAgJGVsZW1lbnRzOiBNYXJrZG93bkxpc3RJdGVtW107XG5cbiAgICAvKiogQ3JlYXRlIGEgbGlzdCBibG9jayBmcm9tIGEgc2VyaWFsaXplZCB2YWx1ZS4gKi9cbiAgICBzdGF0aWMgZnJvbShcbiAgICAgICAgb2JqZWN0OiBKc29uTWFya2Rvd25MaXN0QmxvY2ssXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkxpc3RCbG9jayB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gb2JqZWN0LiRlbGVtZW50cy5tYXAoKGVsZW0pID0+IE1hcmtkb3duTGlzdEl0ZW0uZnJvbShlbGVtLCBmaWxlLCBub3JtYWxpemVyKSk7XG4gICAgICAgIHJldHVybiBuZXcgTWFya2Rvd25MaXN0QmxvY2soe1xuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBpcyBzaGFyZWQgd2l0aCBvdGhlciBibG9ja3MsIHNob3VsZCBwcm9iYWJseSBiZSBmaXhlZC5cbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkJsb2NrLnJlYWRhYmxlSWQoZmlsZSwgb2JqZWN0LiRvcmRpbmFsKSxcbiAgICAgICAgICAgICRvcmRpbmFsOiBvYmplY3QuJG9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IG9iamVjdC4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogb2JqZWN0LiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobCkgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobCkpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKG9iamVjdC4kaW5maWVsZHMsIChpKSA9PiBub3JtYWxpemVMaW5rcyh2YWx1ZUlubGluZUZpZWxkKGkpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkYmxvY2tJZDogb2JqZWN0LiRibG9ja0lkLFxuICAgICAgICAgICAgJGVsZW1lbnRzOiBlbGVtZW50cyxcbiAgICAgICAgICAgICR0eXBlOiBcImxpc3RcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duTGlzdEJsb2NrIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gZWxlbS5qc29uKCkpLFxuICAgICAgICB9KSBhcyBKc29uTWFya2Rvd25MaXN0QmxvY2s7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8TWFya2Rvd25MaXN0QmxvY2s+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cbn1cblxuLyoqIEEgYmxvY2sgY29udGFpbmluZyBtYXJrZG93biBjb2RlLiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duQ29kZWJsb2NrIGV4dGVuZHMgTWFya2Rvd25CbG9jayBpbXBsZW1lbnRzIEluZGV4YWJsZSwgRmllbGRiZWFyaW5nLCBMaW5rYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJibG9ja1wiLCBcImNvZGVibG9ja1wiLCBUQUdHQUJMRV9UWVBFLCBMSU5LQkVBUklOR19UWVBFLCBGSUVMREJFQVJJTkdfVFlQRV07XG5cbiAgICAkdHlwZXM6IHN0cmluZ1tdID0gTWFya2Rvd25Db2RlYmxvY2suVFlQRVM7XG4gICAgJGxhbmd1YWdlczogc3RyaW5nW107XG4gICAgJGNvbnRlbnRQb3NpdGlvbjogeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9O1xuICAgICRzdHlsZTogXCJmZW5jZWRcIiB8IFwiaW5kZW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxNYXJrZG93bkNvZGVibG9jaz4pIHtcbiAgICAgICAgc3VwZXIoaW5pdCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb20oXG4gICAgICAgIG9iamVjdDogSnNvbk1hcmtkb3duQ29kZWJsb2NrLFxuICAgICAgICBmaWxlOiBzdHJpbmcsXG4gICAgICAgIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyID0gTk9PUF9OT1JNQUxJWkVSXG4gICAgKTogTWFya2Rvd25Db2RlYmxvY2sge1xuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duQ29kZWJsb2NrKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkNvZGVibG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kcG9zaXRpb24uc3RhcnQpLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJG9yZGluYWw6IG9iamVjdC4kb3JkaW5hbCxcbiAgICAgICAgICAgICR0eXBlbmFtZTogXCJDb2RlYmxvY2tcIixcbiAgICAgICAgICAgICR0eXBlOiBcImNvZGVibG9ja1wiLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICRsYW5ndWFnZXM6IG9iamVjdC4kbGFuZ3VhZ2VzLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobGluaykgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobGluaykpKSxcbiAgICAgICAgICAgICR0YWdzOiBvYmplY3QuJHRhZ3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCB2YWx1ZUlubGluZUZpZWxkKSxcbiAgICAgICAgICAgICRjb250ZW50UG9zaXRpb246IG9iamVjdC4kY29udGVudFBvc2l0aW9uLFxuICAgICAgICAgICAgJHN0eWxlOiBvYmplY3QuJHN0eWxlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25Db2RlYmxvY2suU1VCX0ZJRUxEX0RFRih0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogRmV0Y2ggYSBzcGVjaWZpYyBmaWVsZCBieSBrZXkuICovXG4gICAgcHVibGljIGZpZWxkKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBNYXJrZG93bkNvZGVibG9jay5TVUJfRklFTERfREVGKHRoaXMsIGtleSk/LlswXSA/PyBGaWVsZGJlYXJpbmdzLmdldFdpdGhEZWZhdWx0KHRoaXMsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlKGtleTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKGtleSk/LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkNvZGVibG9jayB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN1cGVyLmpzb24oKSwge1xuICAgICAgICAgICAgJGxhbmd1YWdlczogdGhpcy4kbGFuZ3VhZ2VzLFxuICAgICAgICAgICAgJGNvbnRlbnRQb3NpdGlvbjogdGhpcy4kY29udGVudFBvc2l0aW9uLFxuICAgICAgICAgICAgJHN0eWxlOiB0aGlzLiRzdHlsZSxcbiAgICAgICAgfSkgYXMgSnNvbk1hcmtkb3duQ29kZWJsb2NrO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkYWJsZUlkKGZpbGU6IHN0cmluZywgbGluZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2ZpbGV9L2NvZGVibG9jayR7bGluZX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBTVUJfRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkNvZGVibG9jaz4gPSBFeHRyYWN0b3JzLm1lcmdlPE1hcmtkb3duQ29kZWJsb2NrPihcbiAgICAgICAgTWFya2Rvd25CbG9jay5GSUVMRF9ERUZcbiAgICApO1xufVxuXG4vKiogQSBkYXRhLWFubm90YXRlZCBZQU1MIGNvZGVibG9jay4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkRhdGFibG9jayBleHRlbmRzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBJbmRleGFibGUsIEZpZWxkYmVhcmluZywgTGlua2JlYXJpbmcge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcIm1hcmtkb3duXCIsIFwiYmxvY2tcIiwgXCJkYXRhYmxvY2tcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duRGF0YWJsb2NrLlRZUEVTO1xuICAgICRkYXRhOiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duRGF0YWJsb2NrPikge1xuICAgICAgICBzdXBlcihpbml0KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShcbiAgICAgICAgb2JqZWN0OiBKc29uTWFya2Rvd25EYXRhYmxvY2ssXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkRhdGFibG9jayB7XG4gICAgICAgIC8vIERhdGFibG9ja3MgYXJlIGJhc2VkIG9uIHdoYXQgaXMgZXNzZW50aWFsbHkganVzdCBmcm9udG1hdHRlcjsgd2UgY2FuIGFwcGx5XG4gICAgICAgIC8vIHRoZSBzYW1lIG5vcm1hbGl6YXRpb24gbG9naWMgdG8gdGhlbS5cbiAgICAgICAgY29uc3Qgbm9ybWRhdGEgPSBub3JtYWxpemVMaW5rcyhtYXBPYmplY3RWYWx1ZXMob2JqZWN0LiRkYXRhLCB2YWx1ZUZyb250bWF0dGVyRW50cnkpLCBub3JtYWxpemVyKTtcbiAgICAgICAgY29uc3QgbGlua3MgPSBnYXRoZXJMaW5rcyhub3JtZGF0YSk7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBnYXRoZXJUYWdzKG5vcm1kYXRhKTtcblxuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duRGF0YWJsb2NrKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkRhdGFibG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kcG9zaXRpb24uc3RhcnQpLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJGluZmllbGRzOiB7fSxcbiAgICAgICAgICAgICRvcmRpbmFsOiBvYmplY3QuJG9yZGluYWwsXG4gICAgICAgICAgICAkZGF0YTogbm9ybWRhdGEsXG4gICAgICAgICAgICAkbGlua3M6IGxpbmtzLFxuICAgICAgICAgICAgJHR5cGVuYW1lOiBcIkRhdGFibG9ja1wiLFxuICAgICAgICAgICAgJHRhZ3M6IHRhZ3MsXG4gICAgICAgICAgICAkdHlwZTogXCJkYXRhYmxvY2tcIixcbiAgICAgICAgICAgICRibG9ja0lkOiBvYmplY3QuJGJsb2NrSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBBbGwgb2YgdGhlIGluZGV4ZWQgZmllbGRzIGluIHRoaXMgb2JqZWN0LiAqL1xuICAgIGdldCBmaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiBNYXJrZG93bkRhdGFibG9jay5TVUJfRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBGZXRjaCBhIHNwZWNpZmljIGZpZWxkIGJ5IGtleS4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duRGF0YWJsb2NrLlNVQl9GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duRGF0YWJsb2NrIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkZGF0YTogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGRhdGEsIGpzb25Gcm9udG1hdHRlckVudHJ5KSxcbiAgICAgICAgfSkgYXMgSnNvbk1hcmtkb3duRGF0YWJsb2NrO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkYWJsZUlkKGZpbGU6IHN0cmluZywgbGluZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2ZpbGV9L2RhdGFibG9jayR7bGluZX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBTVUJfRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkRhdGFibG9jaz4gPSBFeHRyYWN0b3JzLm1lcmdlPE1hcmtkb3duRGF0YWJsb2NrPihcbiAgICAgICAgTWFya2Rvd25CbG9jay5GSUVMRF9ERUYsXG4gICAgICAgIEV4dHJhY3RvcnMuZnJvbnRtYXR0ZXIoKGYpID0+IGYuJGRhdGEpXG4gICAgKTtcbn1cblxuLyoqIEEgc3BlY2lmaWMgbGlzdCBpdGVtIGluIGEgbGlzdC4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkxpc3RJdGVtIGltcGxlbWVudHMgSW5kZXhhYmxlLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJsaXN0LWl0ZW1cIiwgTElOS0JFQVJJTkdfVFlQRSwgVEFHR0FCTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duTGlzdEl0ZW0uVFlQRVM7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIkxpc3QgSXRlbVwiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSBsaXN0IGl0ZW0gaW4gdGhlIGZpbGUuICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQ2hpbGQgZWxlbWVudHMgb2YgdGhpcyBsaXN0IGl0ZW0uICovXG4gICAgJGVsZW1lbnRzOiBNYXJrZG93bkxpc3RJdGVtW107XG4gICAgLyoqIFRoZSB0eXBlIG9mIGxpc3QgaXRlbSB0aGF0IHRoaXMgZWxlbWVudCBpcy4gKi9cbiAgICAkdHlwZTogc3RyaW5nO1xuICAgIC8qKiBFeGFjdCB0YWdzIG9uIHRoaXMgbGlzdCBpdGVtLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogTWFwIG9mIGFsbCBkaXN0aW5jdCBpbmxpbmUgZmllbGRzIGluIHRoZSBkb2N1bWVudCwgZnJvbSBrZXkgbmFtZSAtPiBtZXRhZGF0YS4gKi9cbiAgICAkaW5maWVsZHM6IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPjtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb2YgdGhpcyBsaXN0IGl0ZW0gaWYgcHJlc2VudC4gKi9cbiAgICAkYmxvY2tJZD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbGluZSBudW1iZXIgb2YgdGhlIHBhcmVudCBvZiB0aGlzIGxpc3QgaXRlbS5cbiAgICAgKiBJZiBhIHBvc2l0aXZlIG51bWJlciwgdGhlbiB0aGlzIGxpc3QgZWxlbWVudCBpcyBhIGNoaWxkXG4gICAgICogb2YgdGhlIGxpc3QgZWxlbWVudCBhdCB0aGF0IGxpbmUuXG4gICAgICpcbiAgICAgKiBJZiBhIG5lZ2F0aXZlIG51bWJlciwgdGhlbiB0aGlzIGxpc3QgZWxlbWVudCBpcyBhIHJvb3QgZWxlbWVudFxuICAgICAqIG9mIGEgbGlzdCBzdGFydGluZyBhdCB0aGF0IGxpbmUgKG5lZ2F0ZWQpLiBJLmUuLCAtNyBtZWFuc1xuICAgICAqIHRoaXMgaXMgYSByb290IGVsZW1lbnQgb2YgdGhlIGxpc3Qgc3RhcnRpbmcgYXQgbGluZSA3LlxuICAgICAqL1xuICAgICRwYXJlbnRMaW5lOiBudW1iZXI7XG4gICAgLyoqIFRoZSBtYXJrZXIgdXNlZCB0byBzdGFydCB0aGUgbGlzdCBpdGVtIChzdWNoIGFzIC0gb3IgKyBvciAqKS4gT24gYSBtYWxmb3JtZWQgdGFzaywgbWF5IGJlIHVuZGVmaW5lZC4gKi9cbiAgICAkc3ltYm9sPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGV4dCBjb250ZW50cyBvZiB0aGUgbGlzdCBpdGVtLiAqL1xuICAgICR0ZXh0Pzogc3RyaW5nO1xuXG4gICAgLyoqIENyZWF0ZSBhIGxpc3QgaXRlbSBmcm9tIGEgc2VyaWFsaXplZCBvYmplY3QuICovXG4gICAgc3RhdGljIGZyb20oXG4gICAgICAgIG9iamVjdDogSnNvbk1hcmtkb3duTGlzdEl0ZW0sXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJ0YXNrXCIpIHJldHVybiBNYXJrZG93blRhc2tJdGVtLmZyb20ob2JqZWN0IGFzIEpzb25NYXJrZG93blRhc2tJdGVtLCBmaWxlLCBub3JtYWxpemVyKTtcblxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IG9iamVjdC4kZWxlbWVudHMubWFwKChlbGVtKSA9PiBNYXJrZG93bkxpc3RJdGVtLmZyb20oZWxlbSwgZmlsZSwgbm9ybWFsaXplcikpO1xuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duTGlzdEl0ZW0oe1xuICAgICAgICAgICAgJGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAkaWQ6IE1hcmtkb3duTGlzdEl0ZW0ucmVhZGFibGVJZChmaWxlLCBvYmplY3QuJHBvc2l0aW9uLnN0YXJ0KSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogb2JqZWN0LiRwb3NpdGlvbixcbiAgICAgICAgICAgICRlbGVtZW50czogZWxlbWVudHMsXG4gICAgICAgICAgICAkdHlwZTogb2JqZWN0LiR0eXBlLFxuICAgICAgICAgICAgJHRhZ3M6IG9iamVjdC4kdGFncyxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKG9iamVjdC4kaW5maWVsZHMsIChpKSA9PiBub3JtYWxpemVMaW5rcyh2YWx1ZUlubGluZUZpZWxkKGkpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkbGlua3M6IG9iamVjdC4kbGlua3MubWFwKChsKSA9PiBub3JtYWxpemVyKExpbmsuZnJvbU9iamVjdChsKSkpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICRwYXJlbnRMaW5lOiBvYmplY3QuJHBhcmVudExpbmUsXG4gICAgICAgICAgICAkdGV4dDogb2JqZWN0LiR0ZXh0LFxuICAgICAgICAgICAgJHN5bWJvbDogb2JqZWN0LiRzeW1ib2wsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duTGlzdEl0ZW0+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgbGluZSB0aGF0IHRoaXMgbGlzdCBpdGVtIHN0YXJ0cyBvbi4gKi9cbiAgICBnZXQgJGxpbmUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBvc2l0aW9uLnN0YXJ0O1xuICAgIH1cblxuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoaXMgbGlzdCBpdGVtLiAqL1xuICAgIGdldCAkbGluZUNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwb3NpdGlvbi5lbmQgLSB0aGlzLiRwb3NpdGlvbi5zdGFydCArIDE7XG4gICAgfVxuXG4gICAgLyoqIENsZWFuZWQgdGV4dCB0aGF0IGlzIGdhcmF1bnRlZWQgdG8gYmUgbm9uLW51bGwgYW5kIGhhcyBpbmRlbmF0aW9uIGFuZCBpbmxpbmUgZmllbGRzIHJlbW92ZWQuICovXG4gICAgZ2V0ICRjbGVhbnRleHQoKSB7XG4gICAgICAgIGlmICghdGhpcy4kdGV4dCkgcmV0dXJuIFwiXCI7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuJHRleHRcbiAgICAgICAgICAgICAgICAvLyBFbGltaW5hdGUgW2tleTo6IHZhbHVlXSBhbm5vdGF0aW9ucy5cbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvKC4qPykoW1xcW1xcKF1bXjooXFxbXSs6OlxccyouKj9bXFxdXFwpXVxccyopJC9nbSwgXCIkMVwiKVxuICAgICAgICAgICAgICAgIC8vIFRyaW0gd2hpdGVzcGFjZS5cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEFsbCBvZiB0aGUgaW5kZXhlZCBmaWVsZHMgaW4gdGhpcyBvYmplY3QuICovXG4gICAgZ2V0IGZpZWxkcygpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duTGlzdEl0ZW0uRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBGZXRjaCBhIHNwZWNpZmljIGZpZWxkIGJ5IGtleS4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duTGlzdEl0ZW0uRklFTERfREVGKHRoaXMsIGtleSk/LlswXSA/PyBGaWVsZGJlYXJpbmdzLmdldFdpdGhEZWZhdWx0KHRoaXMsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlKGtleTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKGtleSk/LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwb3NpdGlvbjogdGhpcy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gZWxlbS5qc29uKCkpLFxuICAgICAgICAgICAgJHR5cGU6IHRoaXMuJHR5cGUsXG4gICAgICAgICAgICAkdGFnczogdGhpcy4kdGFncyxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLiRsaW5rcyxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLiRibG9ja0lkLFxuICAgICAgICAgICAgJHBhcmVudExpbmU6IHRoaXMuJHBhcmVudExpbmUsXG4gICAgICAgICAgICAkc3ltYm9sOiB0aGlzLiRzeW1ib2wsXG4gICAgICAgICAgICAkdGV4dDogdGhpcy4kdGV4dCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPE1hcmtkb3duTGlzdEl0ZW0+ID0gRXh0cmFjdG9ycy5tZXJnZShcbiAgICAgICAgRXh0cmFjdG9ycy5pbnRyaW5zaWNzKCksXG4gICAgICAgIEV4dHJhY3RvcnMuaW5saW5lRmllbGRzKChmKSA9PiBmLiRpbmZpZWxkcylcbiAgICApO1xuXG4gICAgLyoqIEdlbmVyYXRlIGEgcmVhZGFibGUgSUQgZm9yIHRoaXMgaXRlbSB1c2luZyB0aGUgbGluZSBudW1iZXIuICovXG4gICAgc3RhdGljIHJlYWRhYmxlSWQoZmlsZTogc3RyaW5nLCBsaW5lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZmlsZX0vbGlzdCR7bGluZX1gO1xuICAgIH1cbn1cblxuLyoqIEEgc3BlY2lmaWMgdGFzayBpbnNpZGUgb2YgYSBtYXJrZG93biBsaXN0LiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duVGFza0l0ZW0gZXh0ZW5kcyBNYXJrZG93bkxpc3RJdGVtIGltcGxlbWVudHMgSW5kZXhhYmxlLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJsaXN0LWl0ZW1cIiwgXCJ0YXNrXCIsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93blRhc2tJdGVtLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJUYXNrXCI7XG5cbiAgICAvKiogVGhlIHRleHQgaW5zaWRlIG9mIHRoZSB0YXNrIGl0ZW0uICovXG4gICAgJHN0YXR1czogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tKG9iamVjdDogSnNvbk1hcmtkb3duVGFza0l0ZW0sIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIpOiBNYXJrZG93blRhc2tJdGVtIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBvYmplY3QuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gTWFya2Rvd25MaXN0SXRlbS5mcm9tKGVsZW0sIGZpbGUsIG5vcm1hbGl6ZXIpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blRhc2tJdGVtKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkxpc3RJdGVtLnJlYWRhYmxlSWQoZmlsZSwgb2JqZWN0LiRwb3NpdGlvbi5zdGFydCksXG4gICAgICAgICAgICAkcG9zaXRpb246IG9iamVjdC4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZWxlbWVudHM6IGVsZW1lbnRzLFxuICAgICAgICAgICAgJHR5cGU6IG9iamVjdC4kdHlwZSxcbiAgICAgICAgICAgICR0YWdzOiBvYmplY3QuJHRhZ3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobCkgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobCkpKSxcbiAgICAgICAgICAgICRibG9ja0lkOiBvYmplY3QuJGJsb2NrSWQsXG4gICAgICAgICAgICAkcGFyZW50TGluZTogb2JqZWN0LiRwYXJlbnRMaW5lLFxuICAgICAgICAgICAgJHN0YXR1czogb2JqZWN0LiRzdGF0dXMsXG4gICAgICAgICAgICAkc3ltYm9sOiBvYmplY3QuJHN5bWJvbCxcbiAgICAgICAgICAgICR0ZXh0OiBvYmplY3QuJHRleHQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duVGFza0l0ZW0+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkc3RhdHVzOiB0aGlzLiRzdGF0dXMsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHRhc2sgaXMgY29tcGxldGVkLiAqL1xuICAgIHB1YmxpYyBnZXQgJGNvbXBsZXRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHN0YXR1cyA9PT0gXCJ4XCIgfHwgdGhpcy4kc3RhdHVzID09PSBcIlhcIjtcbiAgICB9XG59XG5cbi8qKiBBbiBlbnRyeSBpbiB0aGUgZnJvbnRtYXR0ZXI7IGluY2x1ZGVzIHRoZSByYXcgdmFsdWUsIHBhcnNlZCB2YWx1ZSwgYW5kIHJhdyBrZXkgKGJlZm9yZSBsb3dlci1jYXNpbmcpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9udG1hdHRlckVudHJ5IHtcbiAgICAvKiogVGhlIGFjdHVhbCBzdHJpbmcgaW4gZnJvbnRtYXR0ZXIgd2l0aCBleGFjdCBjYXNpbmcuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwYXJzZWQgdmFsdWUgb2YgdGhlIGZyb250bWF0dGVyIGVudHJ5IChkYXRlLCBkdXJhdGlvbiwgZXRjLikuICovXG4gICAgdmFsdWU6IExpdGVyYWw7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGZyb250bWF0dGVyIGVudHJ5IGJlZm9yZSBwYXJzaW5nOyBnZW5lcmFsbHkgYSBzdHJpbmcgb3IgbnVtYmVyLiAqL1xuICAgIHJhdzogc3RyaW5nO1xufVxuXG4vKiogQ29udmVydCBhIHJlZ3VsYXIgZnJvbnRtYXR0ZXIgZW50cnkgaW50byBhIEpTT04gZnJvbnRtYXR0ZXIgZW50cnkuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uRnJvbnRtYXR0ZXJFbnRyeShyYXc6IEZyb250bWF0dGVyRW50cnkpOiBKc29uRnJvbnRtYXR0ZXJFbnRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByYXcua2V5LFxuICAgICAgICB2YWx1ZTogSnNvbkNvbnZlcnNpb24uanNvbihyYXcudmFsdWUpLFxuICAgICAgICByYXc6IHJhdy5yYXcsXG4gICAgfTtcbn1cblxuLyoqIENvbnZlcnQgYSBqc29uIGZyb250bWF0dGVyIGVudHJ5IHRvIGEgcmVndWxhciBmcm9udG1hdHRlciBlbnRyeS5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbnRtYXR0ZXJFbnRyeShyYXc6IEpzb25Gcm9udG1hdHRlckVudHJ5KTogRnJvbnRtYXR0ZXJFbnRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByYXcua2V5LFxuICAgICAgICB2YWx1ZTogSnNvbkNvbnZlcnNpb24udmFsdWUocmF3LnZhbHVlKSxcbiAgICAgICAgcmF3OiByYXcucmF3LFxuICAgIH07XG59XG5cbi8qKiBOb3JtYWxpemUgbGlua3MgZGVlcGx5IGluIHRoZSBvYmplY3QuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVMaW5rczxUIGV4dGVuZHMgTGl0ZXJhbD4oaW5wdXQ6IFQsIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyKTogVCB7XG4gICAgcmV0dXJuIExpdGVyYWxzLm1hcExlYXZlcyhpbnB1dCwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChMaXRlcmFscy5pc0xpbmsodmFsdWUpKSByZXR1cm4gbm9ybWFsaXplcih2YWx1ZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICAgIH0pIGFzIFQ7XG59XG5cbi8qKiBSZWN1cnNpdmVseSBnYXRoZXIgbGlua3MgZnJvbSBhIGxpdGVyYWwgb2JqZWN0LlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0aGVyTGlua3MoaW5wdXQ6IExpdGVyYWwpOiBMaW5rW10ge1xuICAgIGNvbnN0IHJlc3VsdDogTGlua1tdID0gW107XG5cbiAgICBMaXRlcmFscy5tYXBMZWF2ZXMoaW5wdXQsICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNMaW5rKHZhbHVlKSkgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBHYXRoZXIgdGFncyBmcm9tIGEgZGF0YWJsb2NrLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0aGVyVGFncyhkYXRhOiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5Pik6IHN0cmluZ1tdIHtcbiAgICBmdW5jdGlvbiByZWN1cnNlKGlucHV0OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmIChMaXRlcmFscy5pc1N0cmluZyhpbnB1dCkpIHJldHVybiBbaW5wdXQuc3RhcnRzV2l0aChcIiNcIikgPyBpbnB1dCA6IFwiI1wiICsgaW5wdXRdO1xuICAgICAgICBlbHNlIGlmIChMaXRlcmFscy5pc0FycmF5KGlucHV0KSkgcmV0dXJuIGlucHV0LmZsYXRNYXAocmVjdXJzZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB0YWdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChcInRhZ1wiIGluIGRhdGEpIHRhZ3MgPSB0YWdzLmNvbmNhdChyZWN1cnNlKGRhdGFbXCJ0YWdzXCJdKSk7XG4gICAgaWYgKFwidGFnc1wiIGluIGRhdGEpIHRhZ3MgPSB0YWdzLmNvbmNhdChyZWN1cnNlKGRhdGFbXCJ0YWdzXCJdKSk7XG5cbiAgICByZXR1cm4gdGFncztcbn1cblxuLyoqIEEgbGluayBub3JtYWxpemVyIHdoaWNoIHRha2VzIGluIGEgcmF3IGxpbmsgYW5kIHByb2R1Y2VzIGEgbm9ybWFsaXplZCBsaW5rLiAqL1xuZXhwb3J0IHR5cGUgTGlua05vcm1hbGl6ZXIgPSAobGluazogTGluaykgPT4gTGluaztcbmV4cG9ydCBjb25zdCBOT09QX05PUk1BTElaRVI6IExpbmtOb3JtYWxpemVyID0gKHgpID0+IHg7XG4iLCAiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmZ1bmN0aW9uIHRvUHJpbWl0aXZlKHQsIHIpIHtcbiAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7XG4gIHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdO1xuICBpZiAodm9pZCAwICE9PSBlKSB7XG4gICAgdmFyIGkgPSBlLmNhbGwodCwgciB8fCBcImRlZmF1bHRcIik7XG4gICAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZihpKSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5leHBvcnQgeyB0b1ByaW1pdGl2ZSBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuaW1wb3J0IHRvUHJpbWl0aXZlIGZyb20gXCIuL3RvUHJpbWl0aXZlLmpzXCI7XG5mdW5jdGlvbiB0b1Byb3BlcnR5S2V5KHQpIHtcbiAgdmFyIGkgPSB0b1ByaW1pdGl2ZSh0LCBcInN0cmluZ1wiKTtcbiAgcmV0dXJuIFwic3ltYm9sXCIgPT0gX3R5cGVvZihpKSA/IGkgOiBpICsgXCJcIjtcbn1cbmV4cG9ydCB7IHRvUHJvcGVydHlLZXkgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCAiaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gXCIuL2RlZmluZVByb3BlcnR5LmpzXCI7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHtcbiAgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTtcbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7XG4gICAgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pO1xuICB9XG4gIHJldHVybiB0O1xufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSkge1xuICBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykge1xuICAgIHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTtcbiAgICByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikge1xuICAgICAgZGVmaW5lUHJvcGVydHkoZSwgciwgdFtyXSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfb2JqZWN0U3ByZWFkMiBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gcjtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhIb2xlcyBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBsKSB7XG4gIHZhciB0ID0gbnVsbCA9PSByID8gbnVsbCA6IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiByW1N5bWJvbC5pdGVyYXRvcl0gfHwgcltcIkBAaXRlcmF0b3JcIl07XG4gIGlmIChudWxsICE9IHQpIHtcbiAgICB2YXIgZSxcbiAgICAgIG4sXG4gICAgICBpLFxuICAgICAgdSxcbiAgICAgIGEgPSBbXSxcbiAgICAgIGYgPSAhMCxcbiAgICAgIG8gPSAhMTtcbiAgICB0cnkge1xuICAgICAgaWYgKGkgPSAodCA9IHQuY2FsbChyKSkubmV4dCwgMCA9PT0gbCkge1xuICAgICAgICBpZiAoT2JqZWN0KHQpICE9PSB0KSByZXR1cm47XG4gICAgICAgIGYgPSAhMTtcbiAgICAgIH0gZWxzZSBmb3IgKDsgIShmID0gKGUgPSBpLmNhbGwodCkpLmRvbmUpICYmIChhLnB1c2goZS52YWx1ZSksIGEubGVuZ3RoICE9PSBsKTsgZiA9ICEwKTtcbiAgICB9IGNhdGNoIChyKSB7XG4gICAgICBvID0gITAsIG4gPSByO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIWYgJiYgbnVsbCAhPSB0W1wicmV0dXJuXCJdICYmICh1ID0gdFtcInJldHVyblwiXSgpLCBPYmplY3QodSkgIT09IHUpKSByZXR1cm47XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAobykgdGhyb3cgbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cbn1cbmV4cG9ydCB7IF9pdGVyYWJsZVRvQXJyYXlMaW1pdCBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KHIsIGEpIHtcbiAgKG51bGwgPT0gYSB8fCBhID4gci5sZW5ndGgpICYmIChhID0gci5sZW5ndGgpO1xuICBmb3IgKHZhciBlID0gMCwgbiA9IEFycmF5KGEpOyBlIDwgYTsgZSsrKSBuW2VdID0gcltlXTtcbiAgcmV0dXJuIG47XG59XG5leHBvcnQgeyBfYXJyYXlMaWtlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyLCBhKSB7XG4gIGlmIChyKSB7XG4gICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KHIsIGEpO1xuICAgIHZhciB0ID0ge30udG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LCAtMSk7XG4gICAgcmV0dXJuIFwiT2JqZWN0XCIgPT09IHQgJiYgci5jb25zdHJ1Y3RvciAmJiAodCA9IHIuY29uc3RydWN0b3IubmFtZSksIFwiTWFwXCIgPT09IHQgfHwgXCJTZXRcIiA9PT0gdCA/IEFycmF5LmZyb20ocikgOiBcIkFyZ3VtZW50c1wiID09PSB0IHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpID8gYXJyYXlMaWtlVG9BcnJheShyLCBhKSA6IHZvaWQgMDtcbiAgfVxufVxuZXhwb3J0IHsgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbmV4cG9ydCB7IF9ub25JdGVyYWJsZVJlc3QgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5leHBvcnQgeyBfc2xpY2VkVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHIsIGUpIHtcbiAgaWYgKG51bGwgPT0gcikgcmV0dXJuIHt9O1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBuIGluIHIpIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIG4pKSB7XG4gICAgaWYgKGUuaW5jbHVkZXMobikpIGNvbnRpbnVlO1xuICAgIHRbbl0gPSByW25dO1xuICB9XG4gIHJldHVybiB0O1xufVxuZXhwb3J0IHsgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBzLmxlbmd0aDsgcisrKSBvID0gc1tyXSwgdC5pbmNsdWRlcyhvKSB8fCB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyJztcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5JztcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiZGVmYXVsdElucHV0VmFsdWVcIiwgXCJkZWZhdWx0TWVudUlzT3BlblwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcImlucHV0VmFsdWVcIiwgXCJtZW51SXNPcGVuXCIsIFwib25DaGFuZ2VcIiwgXCJvbklucHV0Q2hhbmdlXCIsIFwib25NZW51Q2xvc2VcIiwgXCJvbk1lbnVPcGVuXCIsIFwidmFsdWVcIl07XG5mdW5jdGlvbiB1c2VTdGF0ZU1hbmFnZXIoX3JlZikge1xuICB2YXIgX3JlZiRkZWZhdWx0SW5wdXRWYWx1ID0gX3JlZi5kZWZhdWx0SW5wdXRWYWx1ZSxcbiAgICBkZWZhdWx0SW5wdXRWYWx1ZSA9IF9yZWYkZGVmYXVsdElucHV0VmFsdSA9PT0gdm9pZCAwID8gJycgOiBfcmVmJGRlZmF1bHRJbnB1dFZhbHUsXG4gICAgX3JlZiRkZWZhdWx0TWVudUlzT3BlID0gX3JlZi5kZWZhdWx0TWVudUlzT3BlbixcbiAgICBkZWZhdWx0TWVudUlzT3BlbiA9IF9yZWYkZGVmYXVsdE1lbnVJc09wZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJGRlZmF1bHRNZW51SXNPcGUsXG4gICAgX3JlZiRkZWZhdWx0VmFsdWUgPSBfcmVmLmRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0VmFsdWUgPSBfcmVmJGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYkZGVmYXVsdFZhbHVlLFxuICAgIHByb3BzSW5wdXRWYWx1ZSA9IF9yZWYuaW5wdXRWYWx1ZSxcbiAgICBwcm9wc01lbnVJc09wZW4gPSBfcmVmLm1lbnVJc09wZW4sXG4gICAgcHJvcHNPbkNoYW5nZSA9IF9yZWYub25DaGFuZ2UsXG4gICAgcHJvcHNPbklucHV0Q2hhbmdlID0gX3JlZi5vbklucHV0Q2hhbmdlLFxuICAgIHByb3BzT25NZW51Q2xvc2UgPSBfcmVmLm9uTWVudUNsb3NlLFxuICAgIHByb3BzT25NZW51T3BlbiA9IF9yZWYub25NZW51T3BlbixcbiAgICBwcm9wc1ZhbHVlID0gX3JlZi52YWx1ZSxcbiAgICByZXN0U2VsZWN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogZGVmYXVsdElucHV0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgIHN0YXRlSW5wdXRWYWx1ZSA9IF91c2VTdGF0ZTJbMF0sXG4gICAgc2V0U3RhdGVJbnB1dFZhbHVlID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShwcm9wc01lbnVJc09wZW4gIT09IHVuZGVmaW5lZCA/IHByb3BzTWVudUlzT3BlbiA6IGRlZmF1bHRNZW51SXNPcGVuKSxcbiAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgc3RhdGVNZW51SXNPcGVuID0gX3VzZVN0YXRlNFswXSxcbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4gPSBfdXNlU3RhdGU0WzFdO1xuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKHByb3BzVmFsdWUgIT09IHVuZGVmaW5lZCA/IHByb3BzVmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU1LCAyKSxcbiAgICBzdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlswXSxcbiAgICBzZXRTdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlsxXTtcbiAgdmFyIG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wc09uQ2hhbmdlKHZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9XG4gICAgc2V0U3RhdGVWYWx1ZSh2YWx1ZSk7XG4gIH0sIFtwcm9wc09uQ2hhbmdlXSk7XG4gIHZhciBvbklucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgdmFyIG5ld1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbklucHV0Q2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBuZXdWYWx1ZSA9IHByb3BzT25JbnB1dENoYW5nZSh2YWx1ZSwgYWN0aW9uTWV0YSk7XG4gICAgfVxuICAgIHNldFN0YXRlSW5wdXRWYWx1ZShuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkID8gbmV3VmFsdWUgOiB2YWx1ZSk7XG4gIH0sIFtwcm9wc09uSW5wdXRDaGFuZ2VdKTtcbiAgdmFyIG9uTWVudU9wZW4gPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uTWVudU9wZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByb3BzT25NZW51T3BlbigpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4odHJ1ZSk7XG4gIH0sIFtwcm9wc09uTWVudU9wZW5dKTtcbiAgdmFyIG9uTWVudUNsb3NlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbk1lbnVDbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcHNPbk1lbnVDbG9zZSgpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4oZmFsc2UpO1xuICB9LCBbcHJvcHNPbk1lbnVDbG9zZV0pO1xuICB2YXIgaW5wdXRWYWx1ZSA9IHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogc3RhdGVJbnB1dFZhbHVlO1xuICB2YXIgbWVudUlzT3BlbiA9IHByb3BzTWVudUlzT3BlbiAhPT0gdW5kZWZpbmVkID8gcHJvcHNNZW51SXNPcGVuIDogc3RhdGVNZW51SXNPcGVuO1xuICB2YXIgdmFsdWUgPSBwcm9wc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm9wc1ZhbHVlIDogc3RhdGVWYWx1ZTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzdFNlbGVjdFByb3BzKSwge30sIHtcbiAgICBpbnB1dFZhbHVlOiBpbnB1dFZhbHVlLFxuICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW4sXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxuICAgIG9uSW5wdXRDaGFuZ2U6IG9uSW5wdXRDaGFuZ2UsXG4gICAgb25NZW51Q2xvc2U6IG9uTWVudUNsb3NlLFxuICAgIG9uTWVudU9wZW46IG9uTWVudU9wZW4sXG4gICAgdmFsdWU6IHZhbHVlXG4gIH0pO1xufVxuXG5leHBvcnQgeyB1c2VTdGF0ZU1hbmFnZXIgYXMgdSB9O1xuIiwgImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuZXhwb3J0IHsgX2V4dGVuZHMgYXMgZGVmYXVsdCB9OyIsICJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5leHBvcnQgeyBfY2xhc3NDYWxsQ2hlY2sgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLCByKSB7XG4gIGZvciAodmFyIHQgPSAwOyB0IDwgci5sZW5ndGg7IHQrKykge1xuICAgIHZhciBvID0gclt0XTtcbiAgICBvLmVudW1lcmFibGUgPSBvLmVudW1lcmFibGUgfHwgITEsIG8uY29uZmlndXJhYmxlID0gITAsIFwidmFsdWVcIiBpbiBvICYmIChvLndyaXRhYmxlID0gITApLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxuZXhwb3J0IHsgX2NyZWF0ZUNsYXNzIGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHQsIGUpIHtcbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCwgZSkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyA9IGUsIHQ7XG4gIH0sIF9zZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbmV4cG9ydCB7IF9zZXRQcm90b3R5cGVPZiBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZnVuY3Rpb24gX2luaGVyaXRzKHQsIGUpIHtcbiAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShlICYmIGUucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiB0LFxuICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH1cbiAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlICYmIHNldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX2luaGVyaXRzIGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHQpIHtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIH0sIF9nZXRQcm90b3R5cGVPZih0KTtcbn1cbmV4cG9ydCB7IF9nZXRQcm90b3R5cGVPZiBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gIHRyeSB7XG4gICAgdmFyIHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICB9IGNhdGNoICh0KSB7fVxuICByZXR1cm4gKF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICAgIHJldHVybiAhIXQ7XG4gIH0pKCk7XG59XG5leHBvcnQgeyBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGFzIGRlZmF1bHQgfTsiLCAiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odCwgZSkge1xuICBpZiAoZSAmJiAoXCJvYmplY3RcIiA9PSBfdHlwZW9mKGUpIHx8IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgZSkpIHJldHVybiBlO1xuICBpZiAodm9pZCAwICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQodCk7XG59XG5leHBvcnQgeyBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBnZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiO1xuaW1wb3J0IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCBmcm9tIFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIjtcbmltcG9ydCBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCIuL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanNcIjtcbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcih0KSB7XG4gIHZhciByID0gaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGUsXG4gICAgICBvID0gZ2V0UHJvdG90eXBlT2YodCk7XG4gICAgaWYgKHIpIHtcbiAgICAgIHZhciBzID0gZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7XG4gICAgICBlID0gUmVmbGVjdC5jb25zdHJ1Y3QobywgYXJndW1lbnRzLCBzKTtcbiAgICB9IGVsc2UgZSA9IG8uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBlKTtcbiAgfTtcbn1cbmV4cG9ydCB7IF9jcmVhdGVTdXBlciBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyKTtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhvdXRIb2xlcyBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocikge1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIG51bGwgIT0gcltTeW1ib2wuaXRlcmF0b3JdIHx8IG51bGwgIT0gcltcIkBAaXRlcmF0b3JcIl0pIHJldHVybiBBcnJheS5mcm9tKHIpO1xufVxuZXhwb3J0IHsgX2l0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5leHBvcnQgeyBfbm9uSXRlcmFibGVTcHJlYWQgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KHIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aG91dEhvbGVzKHIpIHx8IGl0ZXJhYmxlVG9BcnJheShyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyKSB8fCBub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuZXhwb3J0IHsgX3RvQ29uc3VtYWJsZUFycmF5IGFzIGRlZmF1bHQgfTsiLCAidmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxuLypcblxuQmFzZWQgb2ZmIGdsYW1vcidzIFN0eWxlU2hlZXQsIHRoYW5rcyBTdW5pbCBcdTI3NjRcdUZFMEZcblxuaGlnaCBwZXJmb3JtYW5jZSBTdHlsZVNoZWV0IGZvciBjc3MtaW4tanMgc3lzdGVtc1xuXG4tIHVzZXMgbXVsdGlwbGUgc3R5bGUgdGFncyBiZWhpbmQgdGhlIHNjZW5lcyBmb3IgbWlsbGlvbnMgb2YgcnVsZXNcbi0gdXNlcyBgaW5zZXJ0UnVsZWAgZm9yIGFwcGVuZGluZyBpbiBwcm9kdWN0aW9uIGZvciAqbXVjaCogZmFzdGVyIHBlcmZvcm1hbmNlXG5cbi8vIHVzYWdlXG5cbmltcG9ydCB7IFN0eWxlU2hlZXQgfSBmcm9tICdAZW1vdGlvbi9zaGVldCdcblxubGV0IHN0eWxlU2hlZXQgPSBuZXcgU3R5bGVTaGVldCh7IGtleTogJycsIGNvbnRhaW5lcjogZG9jdW1lbnQuaGVhZCB9KVxuXG5zdHlsZVNoZWV0Lmluc2VydCgnI2JveCB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfScpXG4tIGFwcGVuZHMgYSBjc3MgcnVsZSBpbnRvIHRoZSBzdHlsZXNoZWV0XG5cbnN0eWxlU2hlZXQuZmx1c2goKVxuLSBlbXB0aWVzIHRoZSBzdHlsZXNoZWV0IG9mIGFsbCBpdHMgY29udGVudHNcblxuKi9cblxuZnVuY3Rpb24gc2hlZXRGb3JUYWcodGFnKSB7XG4gIGlmICh0YWcuc2hlZXQpIHtcbiAgICByZXR1cm4gdGFnLnNoZWV0O1xuICB9IC8vIHRoaXMgd2VpcmRuZXNzIGJyb3VnaHQgdG8geW91IGJ5IGZpcmVmb3hcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudC5zdHlsZVNoZWV0c1tpXS5vd25lck5vZGUgPT09IHRhZykge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldO1xuICAgIH1cbiAgfSAvLyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHdheXMgcmV0dXJuIHdpdGggYSB2YWx1ZVxuICAvLyBUUyBjYW4ndCB1bmRlcnN0YW5kIGl0IHRob3VnaCBzbyB3ZSBtYWtlIGl0IHN0b3AgY29tcGxhaW5pbmcgaGVyZVxuXG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1vdGlvbicsIG9wdGlvbnMua2V5KTtcblxuICBpZiAob3B0aW9ucy5ub25jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCBvcHRpb25zLm5vbmNlKTtcbiAgfVxuXG4gIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJykpO1xuICB0YWcuc2V0QXR0cmlidXRlKCdkYXRhLXMnLCAnJyk7XG4gIHJldHVybiB0YWc7XG59XG5cbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLy8gVXNpbmcgTm9kZSBpbnN0ZWFkIG9mIEhUTUxFbGVtZW50IHNpbmNlIGNvbnRhaW5lciBtYXkgYmUgYSBTaGFkb3dSb290XG4gIGZ1bmN0aW9uIFN0eWxlU2hlZXQob3B0aW9ucykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICB0aGlzLl9pbnNlcnRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgYmVmb3JlO1xuXG4gICAgICBpZiAoX3RoaXMudGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKF90aGlzLmluc2VydGlvblBvaW50KSB7XG4gICAgICAgICAgYmVmb3JlID0gX3RoaXMuaW5zZXJ0aW9uUG9pbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIH0gZWxzZSBpZiAoX3RoaXMucHJlcGVuZCkge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmJlZm9yZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmVmb3JlID0gX3RoaXMudGFnc1tfdGhpcy50YWdzLmxlbmd0aCAtIDFdLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhZywgYmVmb3JlKTtcblxuICAgICAgX3RoaXMudGFncy5wdXNoKHRhZyk7XG4gICAgfTtcblxuICAgIHRoaXMuaXNTcGVlZHkgPSBvcHRpb25zLnNwZWVkeSA9PT0gdW5kZWZpbmVkID8gIWlzRGV2ZWxvcG1lbnQgOiBvcHRpb25zLnNwZWVkeTtcbiAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICB0aGlzLmN0ciA9IDA7XG4gICAgdGhpcy5ub25jZSA9IG9wdGlvbnMubm9uY2U7IC8vIGtleSBpcyB0aGUgdmFsdWUgb2YgdGhlIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGUsIGl0J3MgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgc2hlZXRzXG5cbiAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5O1xuICAgIHRoaXMuY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXI7XG4gICAgdGhpcy5wcmVwZW5kID0gb3B0aW9ucy5wcmVwZW5kO1xuICAgIHRoaXMuaW5zZXJ0aW9uUG9pbnQgPSBvcHRpb25zLmluc2VydGlvblBvaW50O1xuICAgIHRoaXMuYmVmb3JlID0gbnVsbDtcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBTdHlsZVNoZWV0LnByb3RvdHlwZTtcblxuICBfcHJvdG8uaHlkcmF0ZSA9IGZ1bmN0aW9uIGh5ZHJhdGUobm9kZXMpIHtcbiAgICBub2Rlcy5mb3JFYWNoKHRoaXMuX2luc2VydFRhZyk7XG4gIH07XG5cbiAgX3Byb3RvLmluc2VydCA9IGZ1bmN0aW9uIGluc2VydChydWxlKSB7XG4gICAgLy8gdGhlIG1heCBsZW5ndGggaXMgaG93IG1hbnkgcnVsZXMgd2UgaGF2ZSBwZXIgc3R5bGUgdGFnLCBpdCdzIDY1MDAwIGluIHNwZWVkeSBtb2RlXG4gICAgLy8gaXQncyAxIGluIGRldiBiZWNhdXNlIHdlIGluc2VydCBzb3VyY2UgbWFwcyB0aGF0IG1hcCBhIHNpbmdsZSBydWxlIHRvIGEgbG9jYXRpb25cbiAgICAvLyBhbmQgeW91IGNhbiBvbmx5IGhhdmUgb25lIHNvdXJjZSBtYXAgcGVyIHN0eWxlIHRhZ1xuICAgIGlmICh0aGlzLmN0ciAlICh0aGlzLmlzU3BlZWR5ID8gNjUwMDAgOiAxKSA9PT0gMCkge1xuICAgICAgdGhpcy5faW5zZXJ0VGFnKGNyZWF0ZVN0eWxlRWxlbWVudCh0aGlzKSk7XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IHRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAodGhpcy5pc1NwZWVkeSkge1xuICAgICAgdmFyIHNoZWV0ID0gc2hlZXRGb3JUYWcodGFnKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgdWx0cmFmYXN0IHZlcnNpb24sIHdvcmtzIGFjcm9zcyBicm93c2Vyc1xuICAgICAgICAvLyB0aGUgYmlnIGRyYXdiYWNrIGlzIHRoYXQgdGhlIGNzcyB3b24ndCBiZSBlZGl0YWJsZSBpbiBkZXZ0b29sc1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIHNoZWV0LmNzc1J1bGVzLmxlbmd0aCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdHIrKztcbiAgfTtcblxuICBfcHJvdG8uZmx1c2ggPSBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICB0aGlzLnRhZ3MuZm9yRWFjaChmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgX3RhZyRwYXJlbnROb2RlO1xuXG4gICAgICByZXR1cm4gKF90YWckcGFyZW50Tm9kZSA9IHRhZy5wYXJlbnROb2RlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhZyRwYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy50YWdzID0gW107XG4gICAgdGhpcy5jdHIgPSAwO1xuICB9O1xuXG4gIHJldHVybiBTdHlsZVNoZWV0O1xufSgpO1xuXG5leHBvcnQgeyBTdHlsZVNoZWV0IH07XG4iLCAiZXhwb3J0IHZhciBNUyA9ICctbXMtJ1xuZXhwb3J0IHZhciBNT1ogPSAnLW1vei0nXG5leHBvcnQgdmFyIFdFQktJVCA9ICctd2Via2l0LSdcblxuZXhwb3J0IHZhciBDT01NRU5UID0gJ2NvbW0nXG5leHBvcnQgdmFyIFJVTEVTRVQgPSAncnVsZSdcbmV4cG9ydCB2YXIgREVDTEFSQVRJT04gPSAnZGVjbCdcblxuZXhwb3J0IHZhciBQQUdFID0gJ0BwYWdlJ1xuZXhwb3J0IHZhciBNRURJQSA9ICdAbWVkaWEnXG5leHBvcnQgdmFyIElNUE9SVCA9ICdAaW1wb3J0J1xuZXhwb3J0IHZhciBDSEFSU0VUID0gJ0BjaGFyc2V0J1xuZXhwb3J0IHZhciBWSUVXUE9SVCA9ICdAdmlld3BvcnQnXG5leHBvcnQgdmFyIFNVUFBPUlRTID0gJ0BzdXBwb3J0cydcbmV4cG9ydCB2YXIgRE9DVU1FTlQgPSAnQGRvY3VtZW50J1xuZXhwb3J0IHZhciBOQU1FU1BBQ0UgPSAnQG5hbWVzcGFjZSdcbmV4cG9ydCB2YXIgS0VZRlJBTUVTID0gJ0BrZXlmcmFtZXMnXG5leHBvcnQgdmFyIEZPTlRfRkFDRSA9ICdAZm9udC1mYWNlJ1xuZXhwb3J0IHZhciBDT1VOVEVSX1NUWUxFID0gJ0Bjb3VudGVyLXN0eWxlJ1xuZXhwb3J0IHZhciBGT05UX0ZFQVRVUkVfVkFMVUVTID0gJ0Bmb250LWZlYXR1cmUtdmFsdWVzJ1xuZXhwb3J0IHZhciBMQVlFUiA9ICdAbGF5ZXInXG4iLCAiLyoqXG4gKiBAcGFyYW0ge251bWJlcn1cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IHZhciBhYnMgPSBNYXRoLmFic1xuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgdmFyIGZyb20gPSBTdHJpbmcuZnJvbUNoYXJDb2RlXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9XG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCB2YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaCAodmFsdWUsIGxlbmd0aCkge1xuXHRyZXR1cm4gY2hhcmF0KHZhbHVlLCAwKSBeIDQ1ID8gKCgoKCgoKGxlbmd0aCA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMCkpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAxKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDIpKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMykgOiAwXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUudHJpbSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcGF0dGVyblxuICogQHJldHVybiB7c3RyaW5nP31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoICh2YWx1ZSwgcGF0dGVybikge1xuXHRyZXR1cm4gKHZhbHVlID0gcGF0dGVybi5leGVjKHZhbHVlKSkgPyB2YWx1ZVswXSA6IHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0geyhzdHJpbmd8UmVnRXhwKX0gcGF0dGVyblxuICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlICh2YWx1ZSwgcGF0dGVybiwgcmVwbGFjZW1lbnQpIHtcblx0cmV0dXJuIHZhbHVlLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleG9mICh2YWx1ZSwgc2VhcmNoKSB7XG5cdHJldHVybiB2YWx1ZS5pbmRleE9mKHNlYXJjaClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhcmF0ICh2YWx1ZSwgaW5kZXgpIHtcblx0cmV0dXJuIHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpIHwgMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdHIgKHZhbHVlLCBiZWdpbiwgZW5kKSB7XG5cdHJldHVybiB2YWx1ZS5zbGljZShiZWdpbiwgZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RybGVuICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUubGVuZ3RoXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpemVvZiAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHBhcmFtIHthbnlbXX0gYXJyYXlcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZCAodmFsdWUsIGFycmF5KSB7XG5cdHJldHVybiBhcnJheS5wdXNoKHZhbHVlKSwgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUgKGFycmF5LCBjYWxsYmFjaykge1xuXHRyZXR1cm4gYXJyYXkubWFwKGNhbGxiYWNrKS5qb2luKCcnKVxufVxuIiwgImltcG9ydCB7ZnJvbSwgdHJpbSwgY2hhcmF0LCBzdHJsZW4sIHN1YnN0ciwgYXBwZW5kLCBhc3NpZ259IGZyb20gJy4vVXRpbGl0eS5qcydcblxuZXhwb3J0IHZhciBsaW5lID0gMVxuZXhwb3J0IHZhciBjb2x1bW4gPSAxXG5leHBvcnQgdmFyIGxlbmd0aCA9IDBcbmV4cG9ydCB2YXIgcG9zaXRpb24gPSAwXG5leHBvcnQgdmFyIGNoYXJhY3RlciA9IDBcbmV4cG9ydCB2YXIgY2hhcmFjdGVycyA9ICcnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdCB8IG51bGx9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbH0gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZ30gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0W10gfCBzdHJpbmd9IGNoaWxkcmVuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub2RlICh2YWx1ZSwgcm9vdCwgcGFyZW50LCB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCkge1xuXHRyZXR1cm4ge3ZhbHVlOiB2YWx1ZSwgcm9vdDogcm9vdCwgcGFyZW50OiBwYXJlbnQsIHR5cGU6IHR5cGUsIHByb3BzOiBwcm9wcywgY2hpbGRyZW46IGNoaWxkcmVuLCBsaW5lOiBsaW5lLCBjb2x1bW46IGNvbHVtbiwgbGVuZ3RoOiBsZW5ndGgsIHJldHVybjogJyd9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weSAocm9vdCwgcHJvcHMpIHtcblx0cmV0dXJuIGFzc2lnbihub2RlKCcnLCBudWxsLCBudWxsLCAnJywgbnVsbCwgbnVsbCwgMCksIHJvb3QsIHtsZW5ndGg6IC1yb290Lmxlbmd0aH0sIHByb3BzKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXIgKCkge1xuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldiAoKSB7XG5cdGNoYXJhY3RlciA9IHBvc2l0aW9uID4gMCA/IGNoYXJhdChjaGFyYWN0ZXJzLCAtLXBvc2l0aW9uKSA6IDBcblxuXHRpZiAoY29sdW1uLS0sIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZS0tXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHQgKCkge1xuXHRjaGFyYWN0ZXIgPSBwb3NpdGlvbiA8IGxlbmd0aCA/IGNoYXJhdChjaGFyYWN0ZXJzLCBwb3NpdGlvbisrKSA6IDBcblxuXHRpZiAoY29sdW1uKyssIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZSsrXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlZWsgKCkge1xuXHRyZXR1cm4gY2hhcmF0KGNoYXJhY3RlcnMsIHBvc2l0aW9uKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcmV0ICgpIHtcblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGljZSAoYmVnaW4sIGVuZCkge1xuXHRyZXR1cm4gc3Vic3RyKGNoYXJhY3RlcnMsIGJlZ2luLCBlbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuICh0eXBlKSB7XG5cdHN3aXRjaCAodHlwZSkge1xuXHRcdC8vIFxcMCBcXHQgXFxuIFxcciBcXHMgd2hpdGVzcGFjZSB0b2tlblxuXHRcdGNhc2UgMDogY2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0cmV0dXJuIDVcblx0XHQvLyAhICsgLCAvID4gQCB+IGlzb2xhdGUgdG9rZW5cblx0XHRjYXNlIDMzOiBjYXNlIDQzOiBjYXNlIDQ0OiBjYXNlIDQ3OiBjYXNlIDYyOiBjYXNlIDY0OiBjYXNlIDEyNjpcblx0XHQvLyA7IHsgfSBicmVha3BvaW50IHRva2VuXG5cdFx0Y2FzZSA1OTogY2FzZSAxMjM6IGNhc2UgMTI1OlxuXHRcdFx0cmV0dXJuIDRcblx0XHQvLyA6IGFjY29tcGFuaWVkIHRva2VuXG5cdFx0Y2FzZSA1ODpcblx0XHRcdHJldHVybiAzXG5cdFx0Ly8gXCIgJyAoIFsgb3BlbmluZyBkZWxpbWl0IHRva2VuXG5cdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA0MDogY2FzZSA5MTpcblx0XHRcdHJldHVybiAyXG5cdFx0Ly8gKSBdIGNsb3NpbmcgZGVsaW1pdCB0b2tlblxuXHRcdGNhc2UgNDE6IGNhc2UgOTM6XG5cdFx0XHRyZXR1cm4gMVxuXHR9XG5cblx0cmV0dXJuIDBcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge2FueVtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBsaW5lID0gY29sdW1uID0gMSwgbGVuZ3RoID0gc3RybGVuKGNoYXJhY3RlcnMgPSB2YWx1ZSksIHBvc2l0aW9uID0gMCwgW11cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBjaGFyYWN0ZXJzID0gJycsIHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGltaXQgKHR5cGUpIHtcblx0cmV0dXJuIHRyaW0oc2xpY2UocG9zaXRpb24gLSAxLCBkZWxpbWl0ZXIodHlwZSA9PT0gOTEgPyB0eXBlICsgMiA6IHR5cGUgPT09IDQwID8gdHlwZSArIDEgOiB0eXBlKSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuaXplICh2YWx1ZSkge1xuXHRyZXR1cm4gZGVhbGxvYyh0b2tlbml6ZXIoYWxsb2ModmFsdWUpKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSAodHlwZSkge1xuXHR3aGlsZSAoY2hhcmFjdGVyID0gcGVlaygpKVxuXHRcdGlmIChjaGFyYWN0ZXIgPCAzMylcblx0XHRcdG5leHQoKVxuXHRcdGVsc2Vcblx0XHRcdGJyZWFrXG5cblx0cmV0dXJuIHRva2VuKHR5cGUpID4gMiB8fCB0b2tlbihjaGFyYWN0ZXIpID4gMyA/ICcnIDogJyAnXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gY2hpbGRyZW5cbiAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemVyIChjaGlsZHJlbikge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdHN3aXRjaCAodG9rZW4oY2hhcmFjdGVyKSkge1xuXHRcdFx0Y2FzZSAwOiBhcHBlbmQoaWRlbnRpZmllcihwb3NpdGlvbiAtIDEpLCBjaGlsZHJlbilcblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgMjogYXBwZW5kKGRlbGltaXQoY2hhcmFjdGVyKSwgY2hpbGRyZW4pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRkZWZhdWx0OiBhcHBlbmQoZnJvbShjaGFyYWN0ZXIpLCBjaGlsZHJlbilcblx0XHR9XG5cblx0cmV0dXJuIGNoaWxkcmVuXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwaW5nIChpbmRleCwgY291bnQpIHtcblx0d2hpbGUgKC0tY291bnQgJiYgbmV4dCgpKVxuXHRcdC8vIG5vdCAwLTkgQS1GIGEtZlxuXHRcdGlmIChjaGFyYWN0ZXIgPCA0OCB8fCBjaGFyYWN0ZXIgPiAxMDIgfHwgKGNoYXJhY3RlciA+IDU3ICYmIGNoYXJhY3RlciA8IDY1KSB8fCAoY2hhcmFjdGVyID4gNzAgJiYgY2hhcmFjdGVyIDwgOTcpKVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gc2xpY2UoaW5kZXgsIGNhcmV0KCkgKyAoY291bnQgPCA2ICYmIHBlZWsoKSA9PSAzMiAmJiBuZXh0KCkgPT0gMzIpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxpbWl0ZXIgKHR5cGUpIHtcblx0d2hpbGUgKG5leHQoKSlcblx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0Ly8gXSApIFwiICdcblx0XHRcdGNhc2UgdHlwZTpcblx0XHRcdFx0cmV0dXJuIHBvc2l0aW9uXG5cdFx0XHQvLyBcIiAnXG5cdFx0XHRjYXNlIDM0OiBjYXNlIDM5OlxuXHRcdFx0XHRpZiAodHlwZSAhPT0gMzQgJiYgdHlwZSAhPT0gMzkpXG5cdFx0XHRcdFx0ZGVsaW1pdGVyKGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIChcblx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdGlmICh0eXBlID09PSA0MSlcblx0XHRcdFx0XHRkZWxpbWl0ZXIodHlwZSlcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcXG5cdFx0XHRjYXNlIDkyOlxuXHRcdFx0XHRuZXh0KClcblx0XHRcdFx0YnJlYWtcblx0XHR9XG5cblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudGVyICh0eXBlLCBpbmRleCkge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdC8vIC8vXG5cdFx0aWYgKHR5cGUgKyBjaGFyYWN0ZXIgPT09IDQ3ICsgMTApXG5cdFx0XHRicmVha1xuXHRcdC8vIC8qXG5cdFx0ZWxzZSBpZiAodHlwZSArIGNoYXJhY3RlciA9PT0gNDIgKyA0MiAmJiBwZWVrKCkgPT09IDQ3KVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gJy8qJyArIHNsaWNlKGluZGV4LCBwb3NpdGlvbiAtIDEpICsgJyonICsgZnJvbSh0eXBlID09PSA0NyA/IHR5cGUgOiBuZXh0KCkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmaWVyIChpbmRleCkge1xuXHR3aGlsZSAoIXRva2VuKHBlZWsoKSkpXG5cdFx0bmV4dCgpXG5cblx0cmV0dXJuIHNsaWNlKGluZGV4LCBwb3NpdGlvbilcbn1cbiIsICJpbXBvcnQge0NPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge2FicywgY2hhcmF0LCB0cmltLCBmcm9tLCBzaXplb2YsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIHJlcGxhY2UsIGluZGV4b2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7bm9kZSwgY2hhciwgcHJldiwgbmV4dCwgcGVlaywgY2FyZXQsIGFsbG9jLCBkZWFsbG9jLCBkZWxpbWl0LCB3aGl0ZXNwYWNlLCBlc2NhcGluZywgaWRlbnRpZmllciwgY29tbWVudGVyfSBmcm9tICcuL1Rva2VuaXplci5qcydcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge29iamVjdFtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZSAodmFsdWUpIHtcblx0cmV0dXJuIGRlYWxsb2MocGFyc2UoJycsIG51bGwsIG51bGwsIG51bGwsIFsnJ10sIHZhbHVlID0gYWxsb2ModmFsdWUpLCAwLCBbMF0sIHZhbHVlKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzZXRzXG4gKiBAcGFyYW0ge251bWJlcltdfSBwc2V1ZG9cbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmdbXX0gZGVjbGFyYXRpb25zXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSAodmFsdWUsIHJvb3QsIHBhcmVudCwgcnVsZSwgcnVsZXMsIHJ1bGVzZXRzLCBwc2V1ZG8sIHBvaW50cywgZGVjbGFyYXRpb25zKSB7XG5cdHZhciBpbmRleCA9IDBcblx0dmFyIG9mZnNldCA9IDBcblx0dmFyIGxlbmd0aCA9IHBzZXVkb1xuXHR2YXIgYXRydWxlID0gMFxuXHR2YXIgcHJvcGVydHkgPSAwXG5cdHZhciBwcmV2aW91cyA9IDBcblx0dmFyIHZhcmlhYmxlID0gMVxuXHR2YXIgc2Nhbm5pbmcgPSAxXG5cdHZhciBhbXBlcnNhbmQgPSAxXG5cdHZhciBjaGFyYWN0ZXIgPSAwXG5cdHZhciB0eXBlID0gJydcblx0dmFyIHByb3BzID0gcnVsZXNcblx0dmFyIGNoaWxkcmVuID0gcnVsZXNldHNcblx0dmFyIHJlZmVyZW5jZSA9IHJ1bGVcblx0dmFyIGNoYXJhY3RlcnMgPSB0eXBlXG5cblx0d2hpbGUgKHNjYW5uaW5nKVxuXHRcdHN3aXRjaCAocHJldmlvdXMgPSBjaGFyYWN0ZXIsIGNoYXJhY3RlciA9IG5leHQoKSkge1xuXHRcdFx0Ly8gKFxuXHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0aWYgKHByZXZpb3VzICE9IDEwOCAmJiBjaGFyYXQoY2hhcmFjdGVycywgbGVuZ3RoIC0gMSkgPT0gNTgpIHtcblx0XHRcdFx0XHRpZiAoaW5kZXhvZihjaGFyYWN0ZXJzICs9IHJlcGxhY2UoZGVsaW1pdChjaGFyYWN0ZXIpLCAnJicsICcmXFxmJyksICcmXFxmJykgIT0gLTEpXG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSAtMVxuXHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdH1cblx0XHRcdC8vIFwiICcgW1xuXHRcdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA5MTpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcdCBcXG4gXFxyIFxcc1xuXHRcdFx0Y2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0XHRjaGFyYWN0ZXJzICs9IHdoaXRlc3BhY2UocHJldmlvdXMpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXFxuXHRcdFx0Y2FzZSA5Mjpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBlc2NhcGluZyhjYXJldCgpIC0gMSwgNylcblx0XHRcdFx0Y29udGludWVcblx0XHRcdC8vIC9cblx0XHRcdGNhc2UgNDc6XG5cdFx0XHRcdHN3aXRjaCAocGVlaygpKSB7XG5cdFx0XHRcdFx0Y2FzZSA0MjogY2FzZSA0Nzpcblx0XHRcdFx0XHRcdGFwcGVuZChjb21tZW50KGNvbW1lbnRlcihuZXh0KCksIGNhcmV0KCkpLCByb290LCBwYXJlbnQpLCBkZWNsYXJhdGlvbnMpXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRjaGFyYWN0ZXJzICs9ICcvJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyB7XG5cdFx0XHRjYXNlIDEyMyAqIHZhcmlhYmxlOlxuXHRcdFx0XHRwb2ludHNbaW5kZXgrK10gPSBzdHJsZW4oY2hhcmFjdGVycykgKiBhbXBlcnNhbmRcblx0XHRcdC8vIH0gOyBcXDBcblx0XHRcdGNhc2UgMTI1ICogdmFyaWFibGU6IGNhc2UgNTk6IGNhc2UgMDpcblx0XHRcdFx0c3dpdGNoIChjaGFyYWN0ZXIpIHtcblx0XHRcdFx0XHQvLyBcXDAgfVxuXHRcdFx0XHRcdGNhc2UgMDogY2FzZSAxMjU6IHNjYW5uaW5nID0gMFxuXHRcdFx0XHRcdC8vIDtcblx0XHRcdFx0XHRjYXNlIDU5ICsgb2Zmc2V0OiBpZiAoYW1wZXJzYW5kID09IC0xKSBjaGFyYWN0ZXJzID0gcmVwbGFjZShjaGFyYWN0ZXJzLCAvXFxmL2csICcnKVxuXHRcdFx0XHRcdFx0aWYgKHByb3BlcnR5ID4gMCAmJiAoc3RybGVuKGNoYXJhY3RlcnMpIC0gbGVuZ3RoKSlcblx0XHRcdFx0XHRcdFx0YXBwZW5kKHByb3BlcnR5ID4gMzIgPyBkZWNsYXJhdGlvbihjaGFyYWN0ZXJzICsgJzsnLCBydWxlLCBwYXJlbnQsIGxlbmd0aCAtIDEpIDogZGVjbGFyYXRpb24ocmVwbGFjZShjaGFyYWN0ZXJzLCAnICcsICcnKSArICc7JywgcnVsZSwgcGFyZW50LCBsZW5ndGggLSAyKSwgZGVjbGFyYXRpb25zKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyBAIDtcblx0XHRcdFx0XHRjYXNlIDU5OiBjaGFyYWN0ZXJzICs9ICc7J1xuXHRcdFx0XHRcdC8vIHsgcnVsZS9hdC1ydWxlXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGFwcGVuZChyZWZlcmVuY2UgPSBydWxlc2V0KGNoYXJhY3RlcnMsIHJvb3QsIHBhcmVudCwgaW5kZXgsIG9mZnNldCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcHJvcHMgPSBbXSwgY2hpbGRyZW4gPSBbXSwgbGVuZ3RoKSwgcnVsZXNldHMpXG5cblx0XHRcdFx0XHRcdGlmIChjaGFyYWN0ZXIgPT09IDEyMylcblx0XHRcdFx0XHRcdFx0aWYgKG9mZnNldCA9PT0gMClcblx0XHRcdFx0XHRcdFx0XHRwYXJzZShjaGFyYWN0ZXJzLCByb290LCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgcHJvcHMsIHJ1bGVzZXRzLCBsZW5ndGgsIHBvaW50cywgY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGF0cnVsZSA9PT0gOTkgJiYgY2hhcmF0KGNoYXJhY3RlcnMsIDMpID09PSAxMTAgPyAxMDAgOiBhdHJ1bGUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGQgbCBtIHNcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgMTAwOiBjYXNlIDEwODogY2FzZSAxMDk6IGNhc2UgMTE1OlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXJzZSh2YWx1ZSwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHJ1bGUgJiYgYXBwZW5kKHJ1bGVzZXQodmFsdWUsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCAwLCAwLCBydWxlcywgcG9pbnRzLCB0eXBlLCBydWxlcywgcHJvcHMgPSBbXSwgbGVuZ3RoKSwgY2hpbGRyZW4pLCBydWxlcywgY2hpbGRyZW4sIGxlbmd0aCwgcG9pbnRzLCBydWxlID8gcHJvcHMgOiBjaGlsZHJlbilcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhcnNlKGNoYXJhY3RlcnMsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIFsnJ10sIGNoaWxkcmVuLCAwLCBwb2ludHMsIGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGluZGV4ID0gb2Zmc2V0ID0gcHJvcGVydHkgPSAwLCB2YXJpYWJsZSA9IGFtcGVyc2FuZCA9IDEsIHR5cGUgPSBjaGFyYWN0ZXJzID0gJycsIGxlbmd0aCA9IHBzZXVkb1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gOlxuXHRcdFx0Y2FzZSA1ODpcblx0XHRcdFx0bGVuZ3RoID0gMSArIHN0cmxlbihjaGFyYWN0ZXJzKSwgcHJvcGVydHkgPSBwcmV2aW91c1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0aWYgKHZhcmlhYmxlIDwgMSlcblx0XHRcdFx0XHRpZiAoY2hhcmFjdGVyID09IDEyMylcblx0XHRcdFx0XHRcdC0tdmFyaWFibGVcblx0XHRcdFx0XHRlbHNlIGlmIChjaGFyYWN0ZXIgPT0gMTI1ICYmIHZhcmlhYmxlKysgPT0gMCAmJiBwcmV2KCkgPT0gMTI1KVxuXHRcdFx0XHRcdFx0Y29udGludWVcblxuXHRcdFx0XHRzd2l0Y2ggKGNoYXJhY3RlcnMgKz0gZnJvbShjaGFyYWN0ZXIpLCBjaGFyYWN0ZXIgKiB2YXJpYWJsZSkge1xuXHRcdFx0XHRcdC8vICZcblx0XHRcdFx0XHRjYXNlIDM4OlxuXHRcdFx0XHRcdFx0YW1wZXJzYW5kID0gb2Zmc2V0ID4gMCA/IDEgOiAoY2hhcmFjdGVycyArPSAnXFxmJywgLTEpXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vICxcblx0XHRcdFx0XHRjYXNlIDQ0OlxuXHRcdFx0XHRcdFx0cG9pbnRzW2luZGV4KytdID0gKHN0cmxlbihjaGFyYWN0ZXJzKSAtIDEpICogYW1wZXJzYW5kLCBhbXBlcnNhbmQgPSAxXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIEBcblx0XHRcdFx0XHRjYXNlIDY0OlxuXHRcdFx0XHRcdFx0Ly8gLVxuXHRcdFx0XHRcdFx0aWYgKHBlZWsoKSA9PT0gNDUpXG5cdFx0XHRcdFx0XHRcdGNoYXJhY3RlcnMgKz0gZGVsaW1pdChuZXh0KCkpXG5cblx0XHRcdFx0XHRcdGF0cnVsZSA9IHBlZWsoKSwgb2Zmc2V0ID0gbGVuZ3RoID0gc3RybGVuKHR5cGUgPSBjaGFyYWN0ZXJzICs9IGlkZW50aWZpZXIoY2FyZXQoKSkpLCBjaGFyYWN0ZXIrK1xuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyAtXG5cdFx0XHRcdFx0Y2FzZSA0NTpcblx0XHRcdFx0XHRcdGlmIChwcmV2aW91cyA9PT0gNDUgJiYgc3RybGVuKGNoYXJhY3RlcnMpID09IDIpXG5cdFx0XHRcdFx0XHRcdHZhcmlhYmxlID0gMFxuXHRcdFx0XHR9XG5cdFx0fVxuXG5cdHJldHVybiBydWxlc2V0c1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXRcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzXG4gKiBAcGFyYW0ge251bWJlcltdfSBwb2ludHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gY2hpbGRyZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzZXQgKHZhbHVlLCByb290LCBwYXJlbnQsIGluZGV4LCBvZmZzZXQsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoKSB7XG5cdHZhciBwb3N0ID0gb2Zmc2V0IC0gMVxuXHR2YXIgcnVsZSA9IG9mZnNldCA9PT0gMCA/IHJ1bGVzIDogWycnXVxuXHR2YXIgc2l6ZSA9IHNpemVvZihydWxlKVxuXG5cdGZvciAodmFyIGkgPSAwLCBqID0gMCwgayA9IDA7IGkgPCBpbmRleDsgKytpKVxuXHRcdGZvciAodmFyIHggPSAwLCB5ID0gc3Vic3RyKHZhbHVlLCBwb3N0ICsgMSwgcG9zdCA9IGFicyhqID0gcG9pbnRzW2ldKSksIHogPSB2YWx1ZTsgeCA8IHNpemU7ICsreClcblx0XHRcdGlmICh6ID0gdHJpbShqID4gMCA/IHJ1bGVbeF0gKyAnICcgKyB5IDogcmVwbGFjZSh5LCAvJlxcZi9nLCBydWxlW3hdKSkpXG5cdFx0XHRcdHByb3BzW2srK10gPSB6XG5cblx0cmV0dXJuIG5vZGUodmFsdWUsIHJvb3QsIHBhcmVudCwgb2Zmc2V0ID09PSAwID8gUlVMRVNFVCA6IHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ICh2YWx1ZSwgcm9vdCwgcGFyZW50KSB7XG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIENPTU1FTlQsIGZyb20oY2hhcigpKSwgc3Vic3RyKHZhbHVlLCAyLCAtMiksIDApXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBsZW5ndGgpIHtcblx0cmV0dXJuIG5vZGUodmFsdWUsIHJvb3QsIHBhcmVudCwgREVDTEFSQVRJT04sIHN1YnN0cih2YWx1ZSwgMCwgbGVuZ3RoKSwgc3Vic3RyKHZhbHVlLCBsZW5ndGggKyAxLCAtMSksIGxlbmd0aClcbn1cbiIsICJpbXBvcnQge0lNUE9SVCwgTEFZRVIsIENPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OLCBLRVlGUkFNRVN9IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7c3RybGVuLCBzaXplb2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZSAoY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHZhciBvdXRwdXQgPSAnJ1xuXHR2YXIgbGVuZ3RoID0gc2l6ZW9mKGNoaWxkcmVuKVxuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0b3V0cHV0ICs9IGNhbGxiYWNrKGNoaWxkcmVuW2ldLCBpLCBjaGlsZHJlbiwgY2FsbGJhY2spIHx8ICcnXG5cblx0cmV0dXJuIG91dHB1dFxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5IChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG5cdFx0Y2FzZSBMQVlFUjogaWYgKGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSBicmVha1xuXHRcdGNhc2UgSU1QT1JUOiBjYXNlIERFQ0xBUkFUSU9OOiByZXR1cm4gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnJldHVybiB8fCBlbGVtZW50LnZhbHVlXG5cdFx0Y2FzZSBDT01NRU5UOiByZXR1cm4gJydcblx0XHRjYXNlIEtFWUZSQU1FUzogcmV0dXJuIGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC52YWx1ZSArICd7JyArIHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykgKyAnfSdcblx0XHRjYXNlIFJVTEVTRVQ6IGVsZW1lbnQudmFsdWUgPSBlbGVtZW50LnByb3BzLmpvaW4oJywnKVxuXHR9XG5cblx0cmV0dXJuIHN0cmxlbihjaGlsZHJlbiA9IHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykpID8gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnZhbHVlICsgJ3snICsgY2hpbGRyZW4gKyAnfScgOiAnJ1xufVxuIiwgImltcG9ydCB7TVMsIE1PWiwgV0VCS0lULCBSVUxFU0VULCBLRVlGUkFNRVMsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge21hdGNoLCBjaGFyYXQsIHN1YnN0ciwgc3RybGVuLCBzaXplb2YsIHJlcGxhY2UsIGNvbWJpbmV9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7Y29weSwgdG9rZW5pemV9IGZyb20gJy4vVG9rZW5pemVyLmpzJ1xuaW1wb3J0IHtzZXJpYWxpemV9IGZyb20gJy4vU2VyaWFsaXplci5qcydcbmltcG9ydCB7cHJlZml4fSBmcm9tICcuL1ByZWZpeGVyLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb25bXX0gY29sbGVjdGlvblxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWRkbGV3YXJlIChjb2xsZWN0aW9uKSB7XG5cdHZhciBsZW5ndGggPSBzaXplb2YoY29sbGVjdGlvbilcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0XHR2YXIgb3V0cHV0ID0gJydcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0XHRvdXRwdXQgKz0gY29sbGVjdGlvbltpXShlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB8fCAnJ1xuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNoZWV0IChjYWxsYmFjaykge1xuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcblx0XHRpZiAoIWVsZW1lbnQucm9vdClcblx0XHRcdGlmIChlbGVtZW50ID0gZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRcdGNhbGxiYWNrKGVsZW1lbnQpXG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeGVyIChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdGlmIChlbGVtZW50Lmxlbmd0aCA+IC0xKVxuXHRcdGlmICghZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdFx0XHRjYXNlIERFQ0xBUkFUSU9OOiBlbGVtZW50LnJldHVybiA9IHByZWZpeChlbGVtZW50LnZhbHVlLCBlbGVtZW50Lmxlbmd0aCwgY2hpbGRyZW4pXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdGNhc2UgS0VZRlJBTUVTOlxuXHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge3ZhbHVlOiByZXBsYWNlKGVsZW1lbnQudmFsdWUsICdAJywgJ0AnICsgV0VCS0lUKX0pXSwgY2FsbGJhY2spXG5cdFx0XHRcdGNhc2UgUlVMRVNFVDpcblx0XHRcdFx0XHRpZiAoZWxlbWVudC5sZW5ndGgpXG5cdFx0XHRcdFx0XHRyZXR1cm4gY29tYmluZShlbGVtZW50LnByb3BzLCBmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdFx0XHRcdFx0c3dpdGNoIChtYXRjaCh2YWx1ZSwgLyg6OnBsYWNcXHcrfDpyZWFkLVxcdyspLykpIHtcblx0XHRcdFx0XHRcdFx0XHQvLyA6cmVhZC0ob25seXx3cml0ZSlcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6cmVhZC1vbmx5JzogY2FzZSAnOnJlYWQtd3JpdGUnOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7cHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihyZWFkLVxcdyspLywgJzonICsgTU9aICsgJyQxJyldfSldLCBjYWxsYmFjaylcblx0XHRcdFx0XHRcdFx0XHQvLyA6cGxhY2Vob2xkZXJcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6OnBsYWNlaG9sZGVyJzpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIFdFQktJVCArICdpbnB1dC0kMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIE1PWiArICckMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sIE1TICsgJ2lucHV0LSQxJyldfSlcblx0XHRcdFx0XHRcdFx0XHRcdF0sIGNhbGxiYWNrKVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuICcnXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lc3BhY2UgKGVsZW1lbnQpIHtcblx0c3dpdGNoIChlbGVtZW50LnR5cGUpIHtcblx0XHRjYXNlIFJVTEVTRVQ6XG5cdFx0XHRlbGVtZW50LnByb3BzID0gZWxlbWVudC5wcm9wcy5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiBjb21iaW5lKHRva2VuaXplKHZhbHVlKSwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgY2hpbGRyZW4pIHtcblx0XHRcdFx0XHRzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgMCkpIHtcblx0XHRcdFx0XHRcdC8vIFxcZlxuXHRcdFx0XHRcdFx0Y2FzZSAxMjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHN1YnN0cih2YWx1ZSwgMSwgc3RybGVuKHZhbHVlKSlcblx0XHRcdFx0XHRcdC8vIFxcMCAoICsgPiB+XG5cdFx0XHRcdFx0XHRjYXNlIDA6IGNhc2UgNDA6IGNhc2UgNDM6IGNhc2UgNjI6IGNhc2UgMTI2OlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0XHRcdC8vIDpcblx0XHRcdFx0XHRcdGNhc2UgNTg6XG5cdFx0XHRcdFx0XHRcdGlmIChjaGlsZHJlblsrK2luZGV4XSA9PT0gJ2dsb2JhbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y2hpbGRyZW5baW5kZXhdID0gJycsIGNoaWxkcmVuWysraW5kZXhdID0gJ1xcZicgKyBzdWJzdHIoY2hpbGRyZW5baW5kZXhdLCBpbmRleCA9IDEsIC0xKVxuXHRcdFx0XHRcdFx0Ly8gXFxzXG5cdFx0XHRcdFx0XHRjYXNlIDMyOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaW5kZXggPT09IDEgPyAnJyA6IHZhbHVlXG5cdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGluZGV4KSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAwOiBlbGVtZW50ID0gdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzaXplb2YoY2hpbGRyZW4pID4gMSA/ICcnIDogdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRjYXNlIGluZGV4ID0gc2l6ZW9mKGNoaWxkcmVuKSAtIDE6IGNhc2UgMjpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBpbmRleCA9PT0gMiA/IHZhbHVlICsgZWxlbWVudCArIGVsZW1lbnQgOiB2YWx1ZSArIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXHR9XG59XG4iLCAidmFyIHdlYWtNZW1vaXplID0gZnVuY3Rpb24gd2Vha01lbW9pemUoZnVuYykge1xuICB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuICByZXR1cm4gZnVuY3Rpb24gKGFyZykge1xuICAgIGlmIChjYWNoZS5oYXMoYXJnKSkge1xuICAgICAgLy8gVXNlIG5vbi1udWxsIGFzc2VydGlvbiBiZWNhdXNlIHdlIGp1c3QgY2hlY2tlZCB0aGF0IHRoZSBjYWNoZSBgaGFzYCBpdFxuICAgICAgLy8gVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIGB1bmRlZmluZWRgIGZyb20gdGhlIHJldHVybiB2YWx1ZVxuICAgICAgcmV0dXJuIGNhY2hlLmdldChhcmcpO1xuICAgIH1cblxuICAgIHZhciByZXQgPSBmdW5jKGFyZyk7XG4gICAgY2FjaGUuc2V0KGFyZywgcmV0KTtcbiAgICByZXR1cm4gcmV0O1xuICB9O1xufTtcblxuZXhwb3J0IHsgd2Vha01lbW9pemUgYXMgZGVmYXVsdCB9O1xuIiwgImZ1bmN0aW9uIG1lbW9pemUoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICBpZiAoY2FjaGVbYXJnXSA9PT0gdW5kZWZpbmVkKSBjYWNoZVthcmddID0gZm4oYXJnKTtcbiAgICByZXR1cm4gY2FjaGVbYXJnXTtcbiAgfTtcbn1cblxuZXhwb3J0IHsgbWVtb2l6ZSBhcyBkZWZhdWx0IH07XG4iLCAiaW1wb3J0IHsgU3R5bGVTaGVldCB9IGZyb20gJ0BlbW90aW9uL3NoZWV0JztcbmltcG9ydCB7IGRlYWxsb2MsIGFsbG9jLCBuZXh0LCB0b2tlbiwgZnJvbSwgcGVlaywgZGVsaW1pdCwgc2xpY2UsIHBvc2l0aW9uLCBSVUxFU0VULCBjb21iaW5lLCBtYXRjaCwgc2VyaWFsaXplLCBjb3B5LCByZXBsYWNlLCBXRUJLSVQsIE1PWiwgTVMsIEtFWUZSQU1FUywgREVDTEFSQVRJT04sIGhhc2gsIGNoYXJhdCwgc3RybGVuLCBpbmRleG9mLCBzdHJpbmdpZnksIHJ1bGVzaGVldCwgbWlkZGxld2FyZSwgY29tcGlsZSB9IGZyb20gJ3N0eWxpcyc7XG5pbXBvcnQgd2Vha01lbW9pemUgZnJvbSAnQGVtb3Rpb24vd2Vhay1tZW1vaXplJztcbmltcG9ydCBtZW1vaXplIGZyb20gJ0BlbW90aW9uL21lbW9pemUnO1xuXG52YXIgaXNCcm93c2VyID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxudmFyIGlkZW50aWZpZXJXaXRoUG9pbnRUcmFja2luZyA9IGZ1bmN0aW9uIGlkZW50aWZpZXJXaXRoUG9pbnRUcmFja2luZyhiZWdpbiwgcG9pbnRzLCBpbmRleCkge1xuICB2YXIgcHJldmlvdXMgPSAwO1xuICB2YXIgY2hhcmFjdGVyID0gMDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHByZXZpb3VzID0gY2hhcmFjdGVyO1xuICAgIGNoYXJhY3RlciA9IHBlZWsoKTsgLy8gJlxcZlxuXG4gICAgaWYgKHByZXZpb3VzID09PSAzOCAmJiBjaGFyYWN0ZXIgPT09IDEyKSB7XG4gICAgICBwb2ludHNbaW5kZXhdID0gMTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4oY2hhcmFjdGVyKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbmV4dCgpO1xuICB9XG5cbiAgcmV0dXJuIHNsaWNlKGJlZ2luLCBwb3NpdGlvbik7XG59O1xuXG52YXIgdG9SdWxlcyA9IGZ1bmN0aW9uIHRvUnVsZXMocGFyc2VkLCBwb2ludHMpIHtcbiAgLy8gcHJldGVuZCB3ZSd2ZSBzdGFydGVkIHdpdGggYSBjb21tYVxuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIGNoYXJhY3RlciA9IDQ0O1xuXG4gIGRvIHtcbiAgICBzd2l0Y2ggKHRva2VuKGNoYXJhY3RlcikpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgLy8gJlxcZlxuICAgICAgICBpZiAoY2hhcmFjdGVyID09PSAzOCAmJiBwZWVrKCkgPT09IDEyKSB7XG4gICAgICAgICAgLy8gdGhpcyBpcyBub3QgMTAwJSBjb3JyZWN0LCB3ZSBkb24ndCBhY2NvdW50IGZvciBsaXRlcmFsIHNlcXVlbmNlcyBoZXJlIC0gbGlrZSBmb3IgZXhhbXBsZSBxdW90ZWQgc3RyaW5nc1xuICAgICAgICAgIC8vIHN0eWxpcyBpbnNlcnRzIFxcZiBhZnRlciAmIHRvIGtub3cgd2hlbiAmIHdoZXJlIGl0IHNob3VsZCByZXBsYWNlIHRoaXMgc2VxdWVuY2Ugd2l0aCB0aGUgY29udGV4dCBzZWxlY3RvclxuICAgICAgICAgIC8vIGFuZCB3aGVuIGl0IHNob3VsZCBqdXN0IGNvbmNhdGVuYXRlIHRoZSBvdXRlciBhbmQgaW5uZXIgc2VsZWN0b3JzXG4gICAgICAgICAgLy8gaXQncyB2ZXJ5IHVubGlrZWx5IGZvciB0aGlzIHNlcXVlbmNlIHRvIGFjdHVhbGx5IGFwcGVhciBpbiBhIGRpZmZlcmVudCBjb250ZXh0LCBzbyB3ZSBqdXN0IGxldmVyYWdlIHRoaXMgZmFjdCBoZXJlXG4gICAgICAgICAgcG9pbnRzW2luZGV4XSA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJzZWRbaW5kZXhdICs9IGlkZW50aWZpZXJXaXRoUG9pbnRUcmFja2luZyhwb3NpdGlvbiAtIDEsIHBvaW50cywgaW5kZXgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICBwYXJzZWRbaW5kZXhdICs9IGRlbGltaXQoY2hhcmFjdGVyKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgNDpcbiAgICAgICAgLy8gY29tbWFcbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gNDQpIHtcbiAgICAgICAgICAvLyBjb2xvblxuICAgICAgICAgIHBhcnNlZFsrK2luZGV4XSA9IHBlZWsoKSA9PT0gNTggPyAnJlxcZicgOiAnJztcbiAgICAgICAgICBwb2ludHNbaW5kZXhdID0gcGFyc2VkW2luZGV4XS5sZW5ndGg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgLy8gZmFsbHRocm91Z2hcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcGFyc2VkW2luZGV4XSArPSBmcm9tKGNoYXJhY3Rlcik7XG4gICAgfVxuICB9IHdoaWxlIChjaGFyYWN0ZXIgPSBuZXh0KCkpO1xuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuXG52YXIgZ2V0UnVsZXMgPSBmdW5jdGlvbiBnZXRSdWxlcyh2YWx1ZSwgcG9pbnRzKSB7XG4gIHJldHVybiBkZWFsbG9jKHRvUnVsZXMoYWxsb2ModmFsdWUpLCBwb2ludHMpKTtcbn07IC8vIFdlYWtTZXQgd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZSwgYnV0IG9ubHkgV2Vha01hcCBpcyBzdXBwb3J0ZWQgaW4gSUUxMVxuXG5cbnZhciBmaXhlZEVsZW1lbnRzID0gLyogI19fUFVSRV9fICovbmV3IFdlYWtNYXAoKTtcbnZhciBjb21wYXQgPSBmdW5jdGlvbiBjb21wYXQoZWxlbWVudCkge1xuICBpZiAoZWxlbWVudC50eXBlICE9PSAncnVsZScgfHwgIWVsZW1lbnQucGFyZW50IHx8IC8vIHBvc2l0aXZlIC5sZW5ndGggaW5kaWNhdGVzIHRoYXQgdGhpcyBydWxlIGNvbnRhaW5zIHBzZXVkb1xuICAvLyBuZWdhdGl2ZSAubGVuZ3RoIGluZGljYXRlcyB0aGF0IHRoaXMgcnVsZSBoYXMgYmVlbiBhbHJlYWR5IHByZWZpeGVkXG4gIGVsZW1lbnQubGVuZ3RoIDwgMSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWUsXG4gICAgICBwYXJlbnQgPSBlbGVtZW50LnBhcmVudDtcbiAgdmFyIGlzSW1wbGljaXRSdWxlID0gZWxlbWVudC5jb2x1bW4gPT09IHBhcmVudC5jb2x1bW4gJiYgZWxlbWVudC5saW5lID09PSBwYXJlbnQubGluZTtcblxuICB3aGlsZSAocGFyZW50LnR5cGUgIT09ICdydWxlJykge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgaWYgKCFwYXJlbnQpIHJldHVybjtcbiAgfSAvLyBzaG9ydC1jaXJjdWl0IGZvciB0aGUgc2ltcGxlc3QgY2FzZVxuXG5cbiAgaWYgKGVsZW1lbnQucHJvcHMubGVuZ3RoID09PSAxICYmIHZhbHVlLmNoYXJDb2RlQXQoMCkgIT09IDU4XG4gIC8qIGNvbG9uICovXG4gICYmICFmaXhlZEVsZW1lbnRzLmdldChwYXJlbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIGlmIHRoaXMgaXMgYW4gaW1wbGljaXRseSBpbnNlcnRlZCBydWxlICh0aGUgb25lIGVhZ2VybHkgaW5zZXJ0ZWQgYXQgdGhlIGVhY2ggbmV3IG5lc3RlZCBsZXZlbClcbiAgLy8gdGhlbiB0aGUgcHJvcHMgaGFzIGFscmVhZHkgYmVlbiBtYW5pcHVsYXRlZCBiZWZvcmVoYW5kIGFzIHRoZXkgdGhhdCBhcnJheSBpcyBzaGFyZWQgYmV0d2VlbiBpdCBhbmQgaXRzIFwicnVsZSBwYXJlbnRcIlxuXG5cbiAgaWYgKGlzSW1wbGljaXRSdWxlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZml4ZWRFbGVtZW50cy5zZXQoZWxlbWVudCwgdHJ1ZSk7XG4gIHZhciBwb2ludHMgPSBbXTtcbiAgdmFyIHJ1bGVzID0gZ2V0UnVsZXModmFsdWUsIHBvaW50cyk7XG4gIHZhciBwYXJlbnRSdWxlcyA9IHBhcmVudC5wcm9wcztcblxuICBmb3IgKHZhciBpID0gMCwgayA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFyZW50UnVsZXMubGVuZ3RoOyBqKyssIGsrKykge1xuICAgICAgZWxlbWVudC5wcm9wc1trXSA9IHBvaW50c1tpXSA/IHJ1bGVzW2ldLnJlcGxhY2UoLyZcXGYvZywgcGFyZW50UnVsZXNbal0pIDogcGFyZW50UnVsZXNbal0gKyBcIiBcIiArIHJ1bGVzW2ldO1xuICAgIH1cbiAgfVxufTtcbnZhciByZW1vdmVMYWJlbCA9IGZ1bmN0aW9uIHJlbW92ZUxhYmVsKGVsZW1lbnQpIHtcbiAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ2RlY2wnKSB7XG4gICAgdmFyIHZhbHVlID0gZWxlbWVudC52YWx1ZTtcblxuICAgIGlmICggLy8gY2hhcmNvZGUgZm9yIGxcbiAgICB2YWx1ZS5jaGFyQ29kZUF0KDApID09PSAxMDggJiYgLy8gY2hhcmNvZGUgZm9yIGJcbiAgICB2YWx1ZS5jaGFyQ29kZUF0KDIpID09PSA5OCkge1xuICAgICAgLy8gdGhpcyBpZ25vcmVzIGxhYmVsXG4gICAgICBlbGVtZW50W1wicmV0dXJuXCJdID0gJyc7XG4gICAgICBlbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG59O1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1mYWxsdGhyb3VnaCAqL1xuXG5mdW5jdGlvbiBwcmVmaXgodmFsdWUsIGxlbmd0aCkge1xuICBzd2l0Y2ggKGhhc2godmFsdWUsIGxlbmd0aCkpIHtcbiAgICAvLyBjb2xvci1hZGp1c3RcbiAgICBjYXNlIDUxMDM6XG4gICAgICByZXR1cm4gV0VCS0lUICsgJ3ByaW50LScgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGFuaW1hdGlvbiwgYW5pbWF0aW9uLShkZWxheXxkaXJlY3Rpb258ZHVyYXRpb258ZmlsbC1tb2RlfGl0ZXJhdGlvbi1jb3VudHxuYW1lfHBsYXktc3RhdGV8dGltaW5nLWZ1bmN0aW9uKVxuXG4gICAgY2FzZSA1NzM3OlxuICAgIGNhc2UgNDIwMTpcbiAgICBjYXNlIDMxNzc6XG4gICAgY2FzZSAzNDMzOlxuICAgIGNhc2UgMTY0MTpcbiAgICBjYXNlIDQ0NTc6XG4gICAgY2FzZSAyOTIxOiAvLyB0ZXh0LWRlY29yYXRpb24sIGZpbHRlciwgY2xpcC1wYXRoLCBiYWNrZmFjZS12aXNpYmlsaXR5LCBjb2x1bW4sIGJveC1kZWNvcmF0aW9uLWJyZWFrXG5cbiAgICBjYXNlIDU1NzI6XG4gICAgY2FzZSA2MzU2OlxuICAgIGNhc2UgNTg0NDpcbiAgICBjYXNlIDMxOTE6XG4gICAgY2FzZSA2NjQ1OlxuICAgIGNhc2UgMzAwNTogLy8gbWFzaywgbWFzay1pbWFnZSwgbWFzay0obW9kZXxjbGlwfHNpemUpLCBtYXNrLShyZXBlYXR8b3JpZ2luKSwgbWFzay1wb3NpdGlvbiwgbWFzay1jb21wb3NpdGUsXG5cbiAgICBjYXNlIDYzOTE6XG4gICAgY2FzZSA1ODc5OlxuICAgIGNhc2UgNTYyMzpcbiAgICBjYXNlIDYxMzU6XG4gICAgY2FzZSA0NTk5OlxuICAgIGNhc2UgNDg1NTogLy8gYmFja2dyb3VuZC1jbGlwLCBjb2x1bW5zLCBjb2x1bW4tKGNvdW50fGZpbGx8Z2FwfHJ1bGV8cnVsZS1jb2xvcnxydWxlLXN0eWxlfHJ1bGUtd2lkdGh8c3Bhbnx3aWR0aClcblxuICAgIGNhc2UgNDIxNTpcbiAgICBjYXNlIDYzODk6XG4gICAgY2FzZSA1MTA5OlxuICAgIGNhc2UgNTM2NTpcbiAgICBjYXNlIDU2MjE6XG4gICAgY2FzZSAzODI5OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gYXBwZWFyYW5jZSwgdXNlci1zZWxlY3QsIHRyYW5zZm9ybSwgaHlwaGVucywgdGV4dC1zaXplLWFkanVzdFxuXG4gICAgY2FzZSA1MzQ5OlxuICAgIGNhc2UgNDI0NjpcbiAgICBjYXNlIDQ4MTA6XG4gICAgY2FzZSA2OTY4OlxuICAgIGNhc2UgMjc1NjpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1PWiArIHZhbHVlICsgTVMgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGZsZXgsIGZsZXgtZGlyZWN0aW9uXG5cbiAgICBjYXNlIDY4Mjg6XG4gICAgY2FzZSA0MjY4OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIG9yZGVyXG5cbiAgICBjYXNlIDYxNjU6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArICdmbGV4LScgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGFsaWduLWl0ZW1zXG5cbiAgICBjYXNlIDUxODc6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyByZXBsYWNlKHZhbHVlLCAvKFxcdyspLisoOlteXSspLywgV0VCS0lUICsgJ2JveC0kMSQyJyArIE1TICsgJ2ZsZXgtJDEkMicpICsgdmFsdWU7XG4gICAgLy8gYWxpZ24tc2VsZlxuXG4gICAgY2FzZSA1NDQzOlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyAnZmxleC1pdGVtLScgKyByZXBsYWNlKHZhbHVlLCAvZmxleC18LXNlbGYvLCAnJykgKyB2YWx1ZTtcbiAgICAvLyBhbGlnbi1jb250ZW50XG5cbiAgICBjYXNlIDQ2NzU6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArICdmbGV4LWxpbmUtcGFjaycgKyByZXBsYWNlKHZhbHVlLCAvYWxpZ24tY29udGVudHxmbGV4LXwtc2VsZi8sICcnKSArIHZhbHVlO1xuICAgIC8vIGZsZXgtc2hyaW5rXG5cbiAgICBjYXNlIDU1NDg6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsICdzaHJpbmsnLCAnbmVnYXRpdmUnKSArIHZhbHVlO1xuICAgIC8vIGZsZXgtYmFzaXNcblxuICAgIGNhc2UgNTI5MjpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgJ2Jhc2lzJywgJ3ByZWZlcnJlZC1zaXplJykgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LWdyb3dcblxuICAgIGNhc2UgNjA2MDpcbiAgICAgIHJldHVybiBXRUJLSVQgKyAnYm94LScgKyByZXBsYWNlKHZhbHVlLCAnLWdyb3cnLCAnJykgKyBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgJ2dyb3cnLCAncG9zaXRpdmUnKSArIHZhbHVlO1xuICAgIC8vIHRyYW5zaXRpb25cblxuICAgIGNhc2UgNDU1NDpcbiAgICAgIHJldHVybiBXRUJLSVQgKyByZXBsYWNlKHZhbHVlLCAvKFteLV0pKHRyYW5zZm9ybSkvZywgJyQxJyArIFdFQktJVCArICckMicpICsgdmFsdWU7XG4gICAgLy8gY3Vyc29yXG5cbiAgICBjYXNlIDYxODc6XG4gICAgICByZXR1cm4gcmVwbGFjZShyZXBsYWNlKHJlcGxhY2UodmFsdWUsIC8oem9vbS18Z3JhYikvLCBXRUJLSVQgKyAnJDEnKSwgLyhpbWFnZS1zZXQpLywgV0VCS0lUICsgJyQxJyksIHZhbHVlLCAnJykgKyB2YWx1ZTtcbiAgICAvLyBiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kLWltYWdlXG5cbiAgICBjYXNlIDU0OTU6XG4gICAgY2FzZSAzOTU5OlxuICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oaW1hZ2Utc2V0XFwoW15dKikvLCBXRUJLSVQgKyAnJDEnICsgJyRgJDEnKTtcbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnRcblxuICAgIGNhc2UgNDk2ODpcbiAgICAgIHJldHVybiByZXBsYWNlKHJlcGxhY2UodmFsdWUsIC8oLis6KShmbGV4LSk/KC4qKS8sIFdFQktJVCArICdib3gtcGFjazokMycgKyBNUyArICdmbGV4LXBhY2s6JDMnKSwgL3MuKy1iW147XSsvLCAnanVzdGlmeScpICsgV0VCS0lUICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyAobWFyZ2lufHBhZGRpbmcpLWlubGluZS0oc3RhcnR8ZW5kKVxuXG4gICAgY2FzZSA0MDk1OlxuICAgIGNhc2UgMzU4MzpcbiAgICBjYXNlIDQwNjg6XG4gICAgY2FzZSAyNTMyOlxuICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLispLWlubGluZSguKykvLCBXRUJLSVQgKyAnJDEkMicpICsgdmFsdWU7XG4gICAgLy8gKG1pbnxtYXgpPyh3aWR0aHxoZWlnaHR8aW5saW5lLXNpemV8YmxvY2stc2l6ZSlcblxuICAgIGNhc2UgODExNjpcbiAgICBjYXNlIDcwNTk6XG4gICAgY2FzZSA1NzUzOlxuICAgIGNhc2UgNTUzNTpcbiAgICBjYXNlIDU0NDU6XG4gICAgY2FzZSA1NzAxOlxuICAgIGNhc2UgNDkzMzpcbiAgICBjYXNlIDQ2Nzc6XG4gICAgY2FzZSA1NTMzOlxuICAgIGNhc2UgNTc4OTpcbiAgICBjYXNlIDUwMjE6XG4gICAgY2FzZSA0NzY1OlxuICAgICAgLy8gc3RyZXRjaCwgbWF4LWNvbnRlbnQsIG1pbi1jb250ZW50LCBmaWxsLWF2YWlsYWJsZVxuICAgICAgaWYgKHN0cmxlbih2YWx1ZSkgLSAxIC0gbGVuZ3RoID4gNikgc3dpdGNoIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDEpKSB7XG4gICAgICAgIC8vIChtKWF4LWNvbnRlbnQsIChtKWluLWNvbnRlbnRcbiAgICAgICAgY2FzZSAxMDk6XG4gICAgICAgICAgLy8gLVxuICAgICAgICAgIGlmIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDQpICE9PSA0NSkgYnJlYWs7XG4gICAgICAgIC8vIChmKWlsbC1hdmFpbGFibGUsIChmKWl0LWNvbnRlbnRcblxuICAgICAgICBjYXNlIDEwMjpcbiAgICAgICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgLyguKzopKC4rKS0oW15dKykvLCAnJDEnICsgV0VCS0lUICsgJyQyLSQzJyArICckMScgKyBNT1ogKyAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAzKSA9PSAxMDggPyAnJDMnIDogJyQyLSQzJykpICsgdmFsdWU7XG4gICAgICAgIC8vIChzKXRyZXRjaFxuXG4gICAgICAgIGNhc2UgMTE1OlxuICAgICAgICAgIHJldHVybiB+aW5kZXhvZih2YWx1ZSwgJ3N0cmV0Y2gnKSA/IHByZWZpeChyZXBsYWNlKHZhbHVlLCAnc3RyZXRjaCcsICdmaWxsLWF2YWlsYWJsZScpLCBsZW5ndGgpICsgdmFsdWUgOiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIC8vIHBvc2l0aW9uOiBzdGlja3lcblxuICAgIGNhc2UgNDk0OTpcbiAgICAgIC8vIChzKXRpY2t5P1xuICAgICAgaWYgKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMSkgIT09IDExNSkgYnJlYWs7XG4gICAgLy8gZGlzcGxheTogKGZsZXh8aW5saW5lLWZsZXgpXG5cbiAgICBjYXNlIDY0NDQ6XG4gICAgICBzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgc3RybGVuKHZhbHVlKSAtIDMgLSAofmluZGV4b2YodmFsdWUsICchaW1wb3J0YW50JykgJiYgMTApKSkge1xuICAgICAgICAvLyBzdGljKGspeVxuICAgICAgICBjYXNlIDEwNzpcbiAgICAgICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgJzonLCAnOicgKyBXRUJLSVQpICsgdmFsdWU7XG4gICAgICAgIC8vIChpbmxpbmUtKT9mbChlKXhcblxuICAgICAgICBjYXNlIDEwMTpcbiAgICAgICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgLyguKzopKFteOyFdKykoO3whLispPy8sICckMScgKyBXRUJLSVQgKyAoY2hhcmF0KHZhbHVlLCAxNCkgPT09IDQ1ID8gJ2lubGluZS0nIDogJycpICsgJ2JveCQzJyArICckMScgKyBXRUJLSVQgKyAnJDIkMycgKyAnJDEnICsgTVMgKyAnJDJib3gkMycpICsgdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIC8vIHdyaXRpbmctbW9kZVxuXG4gICAgY2FzZSA1OTM2OlxuICAgICAgc3dpdGNoIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDExKSkge1xuICAgICAgICAvLyB2ZXJ0aWNhbC1sKHIpXG4gICAgICAgIGNhc2UgMTE0OlxuICAgICAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgL1tzdmhdXFx3Ky1bdGJscl17Mn0vLCAndGInKSArIHZhbHVlO1xuICAgICAgICAvLyB2ZXJ0aWNhbC1yKGwpXG5cbiAgICAgICAgY2FzZSAxMDg6XG4gICAgICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAvW3N2aF1cXHcrLVt0YmxyXXsyfS8sICd0Yi1ybCcpICsgdmFsdWU7XG4gICAgICAgIC8vIGhvcml6b250YWwoLSl0YlxuXG4gICAgICAgIGNhc2UgNDU6XG4gICAgICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAvW3N2aF1cXHcrLVt0YmxyXXsyfS8sICdscicpICsgdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgdmFsdWUgKyB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIHByZWZpeGVyID0gZnVuY3Rpb24gcHJlZml4ZXIoZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuICBpZiAoZWxlbWVudC5sZW5ndGggPiAtMSkgaWYgKCFlbGVtZW50W1wicmV0dXJuXCJdKSBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuICAgIGNhc2UgREVDTEFSQVRJT046XG4gICAgICBlbGVtZW50W1wicmV0dXJuXCJdID0gcHJlZml4KGVsZW1lbnQudmFsdWUsIGVsZW1lbnQubGVuZ3RoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBLRVlGUkFNRVM6XG4gICAgICByZXR1cm4gc2VyaWFsaXplKFtjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgdmFsdWU6IHJlcGxhY2UoZWxlbWVudC52YWx1ZSwgJ0AnLCAnQCcgKyBXRUJLSVQpXG4gICAgICB9KV0sIGNhbGxiYWNrKTtcblxuICAgIGNhc2UgUlVMRVNFVDpcbiAgICAgIGlmIChlbGVtZW50Lmxlbmd0aCkgcmV0dXJuIGNvbWJpbmUoZWxlbWVudC5wcm9wcywgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHN3aXRjaCAobWF0Y2godmFsdWUsIC8oOjpwbGFjXFx3K3w6cmVhZC1cXHcrKS8pKSB7XG4gICAgICAgICAgLy8gOnJlYWQtKG9ubHl8d3JpdGUpXG4gICAgICAgICAgY2FzZSAnOnJlYWQtb25seSc6XG4gICAgICAgICAgY2FzZSAnOnJlYWQtd3JpdGUnOlxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7XG4gICAgICAgICAgICAgIHByb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocmVhZC1cXHcrKS8sICc6JyArIE1PWiArICckMScpXVxuICAgICAgICAgICAgfSldLCBjYWxsYmFjayk7XG4gICAgICAgICAgLy8gOnBsYWNlaG9sZGVyXG5cbiAgICAgICAgICBjYXNlICc6OnBsYWNlaG9sZGVyJzpcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIFdFQktJVCArICdpbnB1dC0kMScpXVxuICAgICAgICAgICAgfSksIGNvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIE1PWiArICckMScpXVxuICAgICAgICAgICAgfSksIGNvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sIE1TICsgJ2lucHV0LSQxJyldXG4gICAgICAgICAgICB9KV0sIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0pO1xuICB9XG59O1xuXG4vKiBpbXBvcnQgdHlwZSB7IFN0eWxpc1BsdWdpbiB9IGZyb20gJy4vdHlwZXMnICovXG5cbi8qXG5leHBvcnQgdHlwZSBPcHRpb25zID0ge1xuICBub25jZT86IHN0cmluZyxcbiAgc3R5bGlzUGx1Z2lucz86IFN0eWxpc1BsdWdpbltdLFxuICBrZXk6IHN0cmluZyxcbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQsXG4gIHNwZWVkeT86IGJvb2xlYW4sXG4gIHByZXBlbmQ/OiBib29sZWFuLFxuICBpbnNlcnRpb25Qb2ludD86IEhUTUxFbGVtZW50XG59XG4qL1xuXG52YXIgZ2V0U2VydmVyU3R5bGlzQ2FjaGUgPSBpc0Jyb3dzZXIgPyB1bmRlZmluZWQgOiB3ZWFrTWVtb2l6ZShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBtZW1vaXplKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2FjaGUgPSB7fTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHJldHVybiBjYWNoZVtuYW1lXTtcbiAgICB9O1xuICB9KTtcbn0pO1xudmFyIGRlZmF1bHRTdHlsaXNQbHVnaW5zID0gW3ByZWZpeGVyXTtcblxudmFyIGNyZWF0ZUNhY2hlID0gZnVuY3Rpb25cbiAgLyo6IEVtb3Rpb25DYWNoZSAqL1xuY3JlYXRlQ2FjaGUob3B0aW9uc1xuLyo6IE9wdGlvbnMgKi9cbikge1xuICB2YXIga2V5ID0gb3B0aW9ucy5rZXk7XG5cbiAgaWYgKGlzQnJvd3NlciAmJiBrZXkgPT09ICdjc3MnKSB7XG4gICAgdmFyIHNzclN0eWxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVtkYXRhLWVtb3Rpb25dOm5vdChbZGF0YS1zXSlcIik7IC8vIGdldCBTU1JlZCBzdHlsZXMgb3V0IG9mIHRoZSB3YXkgb2YgUmVhY3QncyBoeWRyYXRpb25cbiAgICAvLyBkb2N1bWVudC5oZWFkIGlzIGEgc2FmZSBwbGFjZSB0byBtb3ZlIHRoZW0gdG8odGhvdWdoIG5vdGUgZG9jdW1lbnQuaGVhZCBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIGxhc3QgcGxhY2UgdGhleSB3aWxsIGJlKVxuICAgIC8vIG5vdGUgdGhpcyB2ZXJ5IHZlcnkgaW50ZW50aW9uYWxseSB0YXJnZXRzIGFsbCBzdHlsZSBlbGVtZW50cyByZWdhcmRsZXNzIG9mIHRoZSBrZXkgdG8gZW5zdXJlXG4gICAgLy8gdGhhdCBjcmVhdGluZyBhIGNhY2hlIHdvcmtzIGluc2lkZSBvZiByZW5kZXIgb2YgYSBSZWFjdCBjb21wb25lbnRcblxuICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoc3NyU3R5bGVzLCBmdW5jdGlvbiAobm9kZVxuICAgIC8qOiBIVE1MU3R5bGVFbGVtZW50ICovXG4gICAgKSB7XG4gICAgICAvLyB3ZSB3YW50IHRvIG9ubHkgbW92ZSBlbGVtZW50cyB3aGljaCBoYXZlIGEgc3BhY2UgaW4gdGhlIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGUgdmFsdWVcbiAgICAgIC8vIGJlY2F1c2UgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBhbiBFbW90aW9uIDExIHNlcnZlci1zaWRlIHJlbmRlcmVkIHN0eWxlIGVsZW1lbnRzXG4gICAgICAvLyB3aGlsZSB3ZSB3aWxsIGFscmVhZHkgaWdub3JlIEVtb3Rpb24gMTEgY2xpZW50LXNpZGUgaW5zZXJ0ZWQgc3R5bGVzIGJlY2F1c2Ugb2YgdGhlIDpub3QoW2RhdGEtc10pIHBhcnQgaW4gdGhlIHNlbGVjdG9yXG4gICAgICAvLyBFbW90aW9uIDEwIGNsaWVudC1zaWRlIGluc2VydGVkIHN0eWxlcyBkaWQgbm90IGhhdmUgZGF0YS1zIChidXQgaW1wb3J0YW50bHkgZGlkIG5vdCBoYXZlIGEgc3BhY2UgaW4gdGhlaXIgZGF0YS1lbW90aW9uIGF0dHJpYnV0ZXMpXG4gICAgICAvLyBzbyBjaGVja2luZyBmb3IgdGhlIHNwYWNlIGVuc3VyZXMgdGhhdCBsb2FkaW5nIEVtb3Rpb24gMTEgYWZ0ZXIgRW1vdGlvbiAxMCBoYXMgaW5zZXJ0ZWQgc29tZSBzdHlsZXNcbiAgICAgIC8vIHdpbGwgbm90IHJlc3VsdCBpbiB0aGUgRW1vdGlvbiAxMCBzdHlsZXMgYmVpbmcgZGVzdHJveWVkXG4gICAgICB2YXIgZGF0YUVtb3Rpb25BdHRyaWJ1dGUgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1lbW90aW9uJyk7XG5cbiAgICAgIGlmIChkYXRhRW1vdGlvbkF0dHJpYnV0ZS5pbmRleE9mKCcgJykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLXMnLCAnJyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgc3R5bGlzUGx1Z2lucyA9IG9wdGlvbnMuc3R5bGlzUGx1Z2lucyB8fCBkZWZhdWx0U3R5bGlzUGx1Z2lucztcblxuICB2YXIgaW5zZXJ0ZWQgPSB7fTtcbiAgdmFyIGNvbnRhaW5lcjtcbiAgLyogOiBOb2RlICovXG5cbiAgdmFyIG5vZGVzVG9IeWRyYXRlID0gW107XG5cbiAgaWYgKGlzQnJvd3Nlcikge1xuICAgIGNvbnRhaW5lciA9IG9wdGlvbnMuY29udGFpbmVyIHx8IGRvY3VtZW50LmhlYWQ7XG4gICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCggLy8gdGhpcyBtZWFucyB3ZSB3aWxsIGlnbm9yZSBlbGVtZW50cyB3aGljaCBkb24ndCBoYXZlIGEgc3BhY2UgaW4gdGhlbSB3aGljaFxuICAgIC8vIG1lYW5zIHRoYXQgdGhlIHN0eWxlIGVsZW1lbnRzIHdlJ3JlIGxvb2tpbmcgYXQgYXJlIG9ubHkgRW1vdGlvbiAxMSBzZXJ2ZXItcmVuZGVyZWQgc3R5bGUgZWxlbWVudHNcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwic3R5bGVbZGF0YS1lbW90aW9uXj1cXFwiXCIgKyBrZXkgKyBcIiBcXFwiXVwiKSwgZnVuY3Rpb24gKG5vZGVcbiAgICAvKjogSFRNTFN0eWxlRWxlbWVudCAqL1xuICAgICkge1xuICAgICAgdmFyIGF0dHJpYiA9IG5vZGUuZ2V0QXR0cmlidXRlKFwiZGF0YS1lbW90aW9uXCIpLnNwbGl0KCcgJyk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXR0cmliLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGluc2VydGVkW2F0dHJpYltpXV0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBub2Rlc1RvSHlkcmF0ZS5wdXNoKG5vZGUpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIF9pbnNlcnQ7XG4gIC8qOiAoXG4gIHNlbGVjdG9yOiBzdHJpbmcsXG4gIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRTdHlsZXMsXG4gIHNoZWV0OiBTdHlsZVNoZWV0LFxuICBzaG91bGRDYWNoZTogYm9vbGVhblxuICApID0+IHN0cmluZyB8IHZvaWQgKi9cblxuXG4gIHZhciBvbW5pcHJlc2VudFBsdWdpbnMgPSBbY29tcGF0LCByZW1vdmVMYWJlbF07XG5cbiAgaWYgKGlzQnJvd3Nlcikge1xuICAgIHZhciBjdXJyZW50U2hlZXQ7XG4gICAgdmFyIGZpbmFsaXppbmdQbHVnaW5zID0gW3N0cmluZ2lmeSwgcnVsZXNoZWV0KGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICBjdXJyZW50U2hlZXQuaW5zZXJ0KHJ1bGUpO1xuICAgIH0pXTtcbiAgICB2YXIgc2VyaWFsaXplciA9IG1pZGRsZXdhcmUob21uaXByZXNlbnRQbHVnaW5zLmNvbmNhdChzdHlsaXNQbHVnaW5zLCBmaW5hbGl6aW5nUGx1Z2lucykpO1xuXG4gICAgdmFyIHN0eWxpcyA9IGZ1bmN0aW9uIHN0eWxpcyhzdHlsZXMpIHtcbiAgICAgIHJldHVybiBzZXJpYWxpemUoY29tcGlsZShzdHlsZXMpLCBzZXJpYWxpemVyKTtcbiAgICB9O1xuXG4gICAgX2luc2VydCA9IGZ1bmN0aW9uXG4gICAgICAvKjogdm9pZCAqL1xuICAgIGluc2VydChzZWxlY3RvclxuICAgIC8qOiBzdHJpbmcgKi9cbiAgICAsIHNlcmlhbGl6ZWRcbiAgICAvKjogU2VyaWFsaXplZFN0eWxlcyAqL1xuICAgICwgc2hlZXRcbiAgICAvKjogU3R5bGVTaGVldCAqL1xuICAgICwgc2hvdWxkQ2FjaGVcbiAgICAvKjogYm9vbGVhbiAqL1xuICAgICkge1xuICAgICAgY3VycmVudFNoZWV0ID0gc2hlZXQ7XG5cbiAgICAgIHN0eWxpcyhzZWxlY3RvciA/IHNlbGVjdG9yICsgXCJ7XCIgKyBzZXJpYWxpemVkLnN0eWxlcyArIFwifVwiIDogc2VyaWFsaXplZC5zdHlsZXMpO1xuXG4gICAgICBpZiAoc2hvdWxkQ2FjaGUpIHtcbiAgICAgICAgY2FjaGUuaW5zZXJ0ZWRbc2VyaWFsaXplZC5uYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX2ZpbmFsaXppbmdQbHVnaW5zID0gW3N0cmluZ2lmeV07XG5cbiAgICB2YXIgX3NlcmlhbGl6ZXIgPSBtaWRkbGV3YXJlKG9tbmlwcmVzZW50UGx1Z2lucy5jb25jYXQoc3R5bGlzUGx1Z2lucywgX2ZpbmFsaXppbmdQbHVnaW5zKSk7XG5cbiAgICB2YXIgX3N0eWxpcyA9IGZ1bmN0aW9uIF9zdHlsaXMoc3R5bGVzKSB7XG4gICAgICByZXR1cm4gc2VyaWFsaXplKGNvbXBpbGUoc3R5bGVzKSwgX3NlcmlhbGl6ZXIpO1xuICAgIH07XG5cbiAgICB2YXIgc2VydmVyU3R5bGlzQ2FjaGUgPSBnZXRTZXJ2ZXJTdHlsaXNDYWNoZShzdHlsaXNQbHVnaW5zKShrZXkpO1xuXG4gICAgdmFyIGdldFJ1bGVzID0gZnVuY3Rpb25cbiAgICAgIC8qOiBzdHJpbmcgKi9cbiAgICBnZXRSdWxlcyhzZWxlY3RvclxuICAgIC8qOiBzdHJpbmcgKi9cbiAgICAsIHNlcmlhbGl6ZWRcbiAgICAvKjogU2VyaWFsaXplZFN0eWxlcyAqL1xuICAgICkge1xuICAgICAgdmFyIG5hbWUgPSBzZXJpYWxpemVkLm5hbWU7XG5cbiAgICAgIGlmIChzZXJ2ZXJTdHlsaXNDYWNoZVtuYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNlcnZlclN0eWxpc0NhY2hlW25hbWVdID0gX3N0eWxpcyhzZWxlY3RvciA/IHNlbGVjdG9yICsgXCJ7XCIgKyBzZXJpYWxpemVkLnN0eWxlcyArIFwifVwiIDogc2VyaWFsaXplZC5zdHlsZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2VydmVyU3R5bGlzQ2FjaGVbbmFtZV07XG4gICAgfTtcblxuICAgIF9pbnNlcnQgPSBmdW5jdGlvblxuICAgICAgLyo6IHN0cmluZyB8IHZvaWQgKi9cbiAgICBfaW5zZXJ0KHNlbGVjdG9yXG4gICAgLyo6IHN0cmluZyAqL1xuICAgICwgc2VyaWFsaXplZFxuICAgIC8qOiBTZXJpYWxpemVkU3R5bGVzICovXG4gICAgLCBzaGVldFxuICAgIC8qOiBTdHlsZVNoZWV0ICovXG4gICAgLCBzaG91bGRDYWNoZVxuICAgIC8qOiBib29sZWFuICovXG4gICAgKSB7XG4gICAgICB2YXIgbmFtZSA9IHNlcmlhbGl6ZWQubmFtZTtcbiAgICAgIHZhciBydWxlcyA9IGdldFJ1bGVzKHNlbGVjdG9yLCBzZXJpYWxpemVkKTtcblxuICAgICAgaWYgKGNhY2hlLmNvbXBhdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIGluIHJlZ3VsYXIgbW9kZSwgd2UgZG9uJ3Qgc2V0IHRoZSBzdHlsZXMgb24gdGhlIGluc2VydGVkIGNhY2hlXG4gICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8gYW5kIHRoYXQgd291bGQgYmUgd2FzdGluZyBtZW1vcnlcbiAgICAgICAgLy8gd2UgcmV0dXJuIHRoZW0gc28gdGhhdCB0aGV5IGFyZSByZW5kZXJlZCBpbiBhIHN0eWxlIHRhZ1xuICAgICAgICBpZiAoc2hvdWxkQ2FjaGUpIHtcbiAgICAgICAgICBjYWNoZS5pbnNlcnRlZFtuYW1lXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcnVsZXM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbiBjb21wYXQgbW9kZSwgd2UgcHV0IHRoZSBzdHlsZXMgb24gdGhlIGluc2VydGVkIGNhY2hlIHNvXG4gICAgICAgIC8vIHRoYXQgZW1vdGlvbi1zZXJ2ZXIgY2FuIHB1bGwgb3V0IHRoZSBzdHlsZXNcbiAgICAgICAgLy8gZXhjZXB0IHdoZW4gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSBpdCB3aGljaCB3YXMgaW4gR2xvYmFsIGJ1dCBub3dcbiAgICAgICAgLy8gaXMgbm93aGVyZSBidXQgd2UgZG9uJ3Qgd2FudCB0byBkbyBhIG1ham9yIHJpZ2h0IG5vd1xuICAgICAgICAvLyBhbmQganVzdCBpbiBjYXNlIHdlJ3JlIGdvaW5nIHRvIGxlYXZlIHRoZSBjYXNlIGhlcmVcbiAgICAgICAgLy8gaXQncyBhbHNvIG5vdCBhZmZlY3RpbmcgY2xpZW50IHNpZGUgYnVuZGxlIHNpemVcbiAgICAgICAgLy8gc28gaXQncyByZWFsbHkgbm90IGEgYmlnIGRlYWxcbiAgICAgICAgaWYgKHNob3VsZENhY2hlKSB7XG4gICAgICAgICAgY2FjaGUuaW5zZXJ0ZWRbbmFtZV0gPSBydWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcnVsZXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdmFyIGNhY2hlXG4gIC8qOiBFbW90aW9uQ2FjaGUgKi9cbiAgPSB7XG4gICAga2V5OiBrZXksXG4gICAgc2hlZXQ6IG5ldyBTdHlsZVNoZWV0KHtcbiAgICAgIGtleToga2V5LFxuICAgICAgY29udGFpbmVyOiBjb250YWluZXIsXG4gICAgICBub25jZTogb3B0aW9ucy5ub25jZSxcbiAgICAgIHNwZWVkeTogb3B0aW9ucy5zcGVlZHksXG4gICAgICBwcmVwZW5kOiBvcHRpb25zLnByZXBlbmQsXG4gICAgICBpbnNlcnRpb25Qb2ludDogb3B0aW9ucy5pbnNlcnRpb25Qb2ludFxuICAgIH0pLFxuICAgIG5vbmNlOiBvcHRpb25zLm5vbmNlLFxuICAgIGluc2VydGVkOiBpbnNlcnRlZCxcbiAgICByZWdpc3RlcmVkOiB7fSxcbiAgICBpbnNlcnQ6IF9pbnNlcnRcbiAgfTtcbiAgY2FjaGUuc2hlZXQuaHlkcmF0ZShub2Rlc1RvSHlkcmF0ZSk7XG4gIHJldHVybiBjYWNoZTtcbn07XG5cbmV4cG9ydCB7IGNyZWF0ZUNhY2hlIGFzIGRlZmF1bHQgfTtcbiIsICJ2YXIgaXNCcm93c2VyID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxuZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZFN0eWxlcyhyZWdpc3RlcmVkLCByZWdpc3RlcmVkU3R5bGVzLCBjbGFzc05hbWVzKSB7XG4gIHZhciByYXdDbGFzc05hbWUgPSAnJztcbiAgY2xhc3NOYW1lcy5zcGxpdCgnICcpLmZvckVhY2goZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuICAgIGlmIChyZWdpc3RlcmVkW2NsYXNzTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVnaXN0ZXJlZFN0eWxlcy5wdXNoKHJlZ2lzdGVyZWRbY2xhc3NOYW1lXSArIFwiO1wiKTtcbiAgICB9IGVsc2UgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgcmF3Q2xhc3NOYW1lICs9IGNsYXNzTmFtZSArIFwiIFwiO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByYXdDbGFzc05hbWU7XG59XG52YXIgcmVnaXN0ZXJTdHlsZXMgPSBmdW5jdGlvbiByZWdpc3RlclN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpIHtcbiAgdmFyIGNsYXNzTmFtZSA9IGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuXG4gIGlmICggLy8gd2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSByZWdpc3RlcmVkIGNhY2hlIGlmIHRoZVxuICAvLyBjbGFzcyBuYW1lIGNvdWxkIGJlIHVzZWQgZnVydGhlciBkb3duXG4gIC8vIHRoZSB0cmVlIGJ1dCBpZiBpdCdzIGEgc3RyaW5nIHRhZywgd2Uga25vdyBpdCB3b24ndFxuICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGFkZCBpdCB0byByZWdpc3RlcmVkIGNhY2hlLlxuICAvLyB0aGlzIGltcHJvdmVzIG1lbW9yeSB1c2FnZSBzaW5jZSB3ZSBjYW4gYXZvaWQgc3RvcmluZyB0aGUgd2hvbGUgc3R5bGUgc3RyaW5nXG4gIChpc1N0cmluZ1RhZyA9PT0gZmFsc2UgfHwgLy8gd2UgbmVlZCB0byBhbHdheXMgc3RvcmUgaXQgaWYgd2UncmUgaW4gY29tcGF0IG1vZGUgYW5kXG4gIC8vIGluIG5vZGUgc2luY2UgZW1vdGlvbi1zZXJ2ZXIgcmVsaWVzIG9uIHdoZXRoZXIgYSBzdHlsZSBpcyBpblxuICAvLyB0aGUgcmVnaXN0ZXJlZCBjYWNoZSB0byBrbm93IHdoZXRoZXIgYSBzdHlsZSBpcyBnbG9iYWwgb3Igbm90XG4gIC8vIGFsc28sIG5vdGUgdGhhdCB0aGlzIGNoZWNrIHdpbGwgYmUgZGVhZCBjb2RlIGVsaW1pbmF0ZWQgaW4gdGhlIGJyb3dzZXJcbiAgaXNCcm93c2VyID09PSBmYWxzZSAmJiBjYWNoZS5jb21wYXQgIT09IHVuZGVmaW5lZCkgJiYgY2FjaGUucmVnaXN0ZXJlZFtjbGFzc05hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICBjYWNoZS5yZWdpc3RlcmVkW2NsYXNzTmFtZV0gPSBzZXJpYWxpemVkLnN0eWxlcztcbiAgfVxufTtcbnZhciBpbnNlcnRTdHlsZXMgPSBmdW5jdGlvbiBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKSB7XG4gIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZyk7XG4gIHZhciBjbGFzc05hbWUgPSBjYWNoZS5rZXkgKyBcIi1cIiArIHNlcmlhbGl6ZWQubmFtZTtcblxuICBpZiAoY2FjaGUuaW5zZXJ0ZWRbc2VyaWFsaXplZC5uYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIHN0eWxlc0ZvclNTUiA9ICcnO1xuICAgIHZhciBjdXJyZW50ID0gc2VyaWFsaXplZDtcblxuICAgIGRvIHtcbiAgICAgIHZhciBtYXliZVN0eWxlcyA9IGNhY2hlLmluc2VydChzZXJpYWxpemVkID09PSBjdXJyZW50ID8gXCIuXCIgKyBjbGFzc05hbWUgOiAnJywgY3VycmVudCwgY2FjaGUuc2hlZXQsIHRydWUpO1xuXG4gICAgICBpZiAoIWlzQnJvd3NlciAmJiBtYXliZVN0eWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN0eWxlc0ZvclNTUiArPSBtYXliZVN0eWxlcztcbiAgICAgIH1cblxuICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgICB9IHdoaWxlIChjdXJyZW50ICE9PSB1bmRlZmluZWQpO1xuXG4gICAgaWYgKCFpc0Jyb3dzZXIgJiYgc3R5bGVzRm9yU1NSLmxlbmd0aCAhPT0gMCkge1xuICAgICAgcmV0dXJuIHN0eWxlc0ZvclNTUjtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCB7IGdldFJlZ2lzdGVyZWRTdHlsZXMsIGluc2VydFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2dhcnljb3VydC9tdXJtdXJoYXNoLWpzXG4vLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYWFwcGxlYnkvc21oYXNoZXIvYmxvYi82MWEwNTMwZjI4Mjc3ZjJlODUwYmZjMzk2MDBjZTYxZDAyYjUxOGRlL3NyYy9NdXJtdXJIYXNoMi5jcHAjTDM3LUw4NlxuZnVuY3Rpb24gbXVybXVyMihzdHIpIHtcbiAgLy8gJ20nIGFuZCAncicgYXJlIG1peGluZyBjb25zdGFudHMgZ2VuZXJhdGVkIG9mZmxpbmUuXG4gIC8vIFRoZXkncmUgbm90IHJlYWxseSAnbWFnaWMnLCB0aGV5IGp1c3QgaGFwcGVuIHRvIHdvcmsgd2VsbC5cbiAgLy8gY29uc3QgbSA9IDB4NWJkMWU5OTU7XG4gIC8vIGNvbnN0IHIgPSAyNDtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGFzaFxuICB2YXIgaCA9IDA7IC8vIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoXG5cbiAgdmFyIGssXG4gICAgICBpID0gMCxcbiAgICAgIGxlbiA9IHN0ci5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbiA+PSA0OyArK2ksIGxlbiAtPSA0KSB7XG4gICAgayA9IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZiB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgOCB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMTYgfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDI0O1xuICAgIGsgPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpO1xuICAgIGsgXj1cbiAgICAvKiBrID4+PiByOiAqL1xuICAgIGsgPj4+IDI0O1xuICAgIGggPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpIF5cbiAgICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBIYW5kbGUgdGhlIGxhc3QgZmV3IGJ5dGVzIG9mIHRoZSBpbnB1dCBhcnJheVxuXG5cbiAgc3dpdGNoIChsZW4pIHtcbiAgICBjYXNlIDM6XG4gICAgICBoIF49IChzdHIuY2hhckNvZGVBdChpICsgMikgJiAweGZmKSA8PCAxNjtcblxuICAgIGNhc2UgMjpcbiAgICAgIGggXj0gKHN0ci5jaGFyQ29kZUF0KGkgKyAxKSAmIDB4ZmYpIDw8IDg7XG5cbiAgICBjYXNlIDE6XG4gICAgICBoIF49IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZjtcbiAgICAgIGggPVxuICAgICAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAgICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3XG4gIC8vIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC5cblxuXG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPVxuICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIHJldHVybiAoKGggXiBoID4+PiAxNSkgPj4+IDApLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IHsgbXVybXVyMiBhcyBkZWZhdWx0IH07XG4iLCAidmFyIHVuaXRsZXNzS2V5cyA9IHtcbiAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IDEsXG4gIGFzcGVjdFJhdGlvOiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICBzY2FsZTogMSxcbiAgdGFiU2l6ZTogMSxcbiAgd2lkb3dzOiAxLFxuICB6SW5kZXg6IDEsXG4gIHpvb206IDEsXG4gIFdlYmtpdExpbmVDbGFtcDogMSxcbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogMSxcbiAgZmxvb2RPcGFjaXR5OiAxLFxuICBzdG9wT3BhY2l0eTogMSxcbiAgc3Ryb2tlRGFzaGFycmF5OiAxLFxuICBzdHJva2VEYXNob2Zmc2V0OiAxLFxuICBzdHJva2VNaXRlcmxpbWl0OiAxLFxuICBzdHJva2VPcGFjaXR5OiAxLFxuICBzdHJva2VXaWR0aDogMVxufTtcblxuZXhwb3J0IHsgdW5pdGxlc3NLZXlzIGFzIGRlZmF1bHQgfTtcbiIsICJpbXBvcnQgaGFzaFN0cmluZyBmcm9tICdAZW1vdGlvbi9oYXNoJztcbmltcG9ydCB1bml0bGVzcyBmcm9tICdAZW1vdGlvbi91bml0bGVzcyc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdAZW1vdGlvbi9tZW1vaXplJztcblxudmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxudmFyIGh5cGhlbmF0ZVJlZ2V4ID0gL1tBLVpdfF5tcy9nO1xudmFyIGFuaW1hdGlvblJlZ2V4ID0gL19FTU9fKFteX10rPylfKFteXSo/KV9FTU9fL2c7XG5cbnZhciBpc0N1c3RvbVByb3BlcnR5ID0gZnVuY3Rpb24gaXNDdXN0b21Qcm9wZXJ0eShwcm9wZXJ0eSkge1xuICByZXR1cm4gcHJvcGVydHkuY2hhckNvZGVBdCgxKSA9PT0gNDU7XG59O1xuXG52YXIgaXNQcm9jZXNzYWJsZVZhbHVlID0gZnVuY3Rpb24gaXNQcm9jZXNzYWJsZVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nO1xufTtcblxudmFyIHByb2Nlc3NTdHlsZU5hbWUgPSAvKiAjX19QVVJFX18gKi9tZW1vaXplKGZ1bmN0aW9uIChzdHlsZU5hbWUpIHtcbiAgcmV0dXJuIGlzQ3VzdG9tUHJvcGVydHkoc3R5bGVOYW1lKSA/IHN0eWxlTmFtZSA6IHN0eWxlTmFtZS5yZXBsYWNlKGh5cGhlbmF0ZVJlZ2V4LCAnLSQmJykudG9Mb3dlckNhc2UoKTtcbn0pO1xuXG52YXIgcHJvY2Vzc1N0eWxlVmFsdWUgPSBmdW5jdGlvbiBwcm9jZXNzU3R5bGVWYWx1ZShrZXksIHZhbHVlKSB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSAnYW5pbWF0aW9uJzpcbiAgICBjYXNlICdhbmltYXRpb25OYW1lJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShhbmltYXRpb25SZWdleCwgZnVuY3Rpb24gKG1hdGNoLCBwMSwgcDIpIHtcbiAgICAgICAgICAgIGN1cnNvciA9IHtcbiAgICAgICAgICAgICAgbmFtZTogcDEsXG4gICAgICAgICAgICAgIHN0eWxlczogcDIsXG4gICAgICAgICAgICAgIG5leHQ6IGN1cnNvclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBwMTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG5cbiAgaWYgKHVuaXRsZXNzW2tleV0gIT09IDEgJiYgIWlzQ3VzdG9tUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSAwKSB7XG4gICAgcmV0dXJuIHZhbHVlICsgJ3B4JztcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbnZhciBub0NvbXBvbmVudFNlbGVjdG9yTWVzc2FnZSA9ICdDb21wb25lbnQgc2VsZWN0b3JzIGNhbiBvbmx5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnICsgJ0BlbW90aW9uL2JhYmVsLXBsdWdpbiwgdGhlIHN3YyBFbW90aW9uIHBsdWdpbiwgb3IgYW5vdGhlciBFbW90aW9uLWF3YXJlICcgKyAnY29tcGlsZXIgdHJhbnNmb3JtLic7XG5cbmZ1bmN0aW9uIGhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIGludGVycG9sYXRpb24pIHtcbiAgaWYgKGludGVycG9sYXRpb24gPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHZhciBjb21wb25lbnRTZWxlY3RvciA9IGludGVycG9sYXRpb247XG5cbiAgaWYgKGNvbXBvbmVudFNlbGVjdG9yLl9fZW1vdGlvbl9zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFNlbGVjdG9yO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlb2YgaW50ZXJwb2xhdGlvbikge1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAge1xuICAgICAgICB2YXIga2V5ZnJhbWVzID0gaW50ZXJwb2xhdGlvbjtcblxuICAgICAgICBpZiAoa2V5ZnJhbWVzLmFuaW0gPT09IDEpIHtcbiAgICAgICAgICBjdXJzb3IgPSB7XG4gICAgICAgICAgICBuYW1lOiBrZXlmcmFtZXMubmFtZSxcbiAgICAgICAgICAgIHN0eWxlczoga2V5ZnJhbWVzLnN0eWxlcyxcbiAgICAgICAgICAgIG5leHQ6IGN1cnNvclxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGtleWZyYW1lcy5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNlcmlhbGl6ZWRTdHlsZXMgPSBpbnRlcnBvbGF0aW9uO1xuXG4gICAgICAgIGlmIChzZXJpYWxpemVkU3R5bGVzLnN0eWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFyIG5leHQgPSBzZXJpYWxpemVkU3R5bGVzLm5leHQ7XG5cbiAgICAgICAgICBpZiAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBub3QgdGhlIG1vc3QgZWZmaWNpZW50IHRoaW5nIGV2ZXIgYnV0IHRoaXMgaXMgYSBwcmV0dHkgcmFyZSBjYXNlXG4gICAgICAgICAgICAvLyBhbmQgdGhlcmUgd2lsbCBiZSB2ZXJ5IGZldyBpdGVyYXRpb25zIG9mIHRoaXMgZ2VuZXJhbGx5XG4gICAgICAgICAgICB3aGlsZSAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGN1cnNvciA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuZXh0Lm5hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGVzOiBuZXh0LnN0eWxlcyxcbiAgICAgICAgICAgICAgICBuZXh0OiBjdXJzb3JcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgbmV4dCA9IG5leHQubmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgc3R5bGVzID0gc2VyaWFsaXplZFN0eWxlcy5zdHlsZXMgKyBcIjtcIjtcblxuICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3JlYXRlU3RyaW5nRnJvbU9iamVjdChtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgaW50ZXJwb2xhdGlvbik7XG4gICAgICB9XG5cbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB7XG4gICAgICAgIGlmIChtZXJnZWRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFyIHByZXZpb3VzQ3Vyc29yID0gY3Vyc29yO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBpbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzKTtcbiAgICAgICAgICBjdXJzb3IgPSBwcmV2aW91c0N1cnNvcjtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgcmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9IC8vIGZpbmFsaXplIHN0cmluZyB2YWx1ZXMgKHJlZ3VsYXIgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGludGVycG9sYXRlZCBpbnRvIGNzcyBjYWxscylcblxuXG4gIHZhciBhc1N0cmluZyA9IGludGVycG9sYXRpb247XG5cbiAgaWYgKHJlZ2lzdGVyZWQgPT0gbnVsbCkge1xuICAgIHJldHVybiBhc1N0cmluZztcbiAgfVxuXG4gIHZhciBjYWNoZWQgPSByZWdpc3RlcmVkW2FzU3RyaW5nXTtcbiAgcmV0dXJuIGNhY2hlZCAhPT0gdW5kZWZpbmVkID8gY2FjaGVkIDogYXNTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0cmluZ0Zyb21PYmplY3QobWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIG9iaikge1xuICB2YXIgc3RyaW5nID0gJyc7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdHJpbmcgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgb2JqW2ldKSArIFwiO1wiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFyIGFzU3RyaW5nID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHJlZ2lzdGVyZWQgIT0gbnVsbCAmJiByZWdpc3RlcmVkW2FzU3RyaW5nXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RyaW5nICs9IGtleSArIFwie1wiICsgcmVnaXN0ZXJlZFthc1N0cmluZ10gKyBcIn1cIjtcbiAgICAgICAgfSBlbHNlIGlmIChpc1Byb2Nlc3NhYmxlVmFsdWUoYXNTdHJpbmcpKSB7XG4gICAgICAgICAgc3RyaW5nICs9IHByb2Nlc3NTdHlsZU5hbWUoa2V5KSArIFwiOlwiICsgcHJvY2Vzc1N0eWxlVmFsdWUoa2V5LCBhc1N0cmluZykgKyBcIjtcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ05PX0NPTVBPTkVOVF9TRUxFQ1RPUicgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihub0NvbXBvbmVudFNlbGVjdG9yTWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlWzBdID09PSAnc3RyaW5nJyAmJiAocmVnaXN0ZXJlZCA9PSBudWxsIHx8IHJlZ2lzdGVyZWRbdmFsdWVbMF1dID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHZhbHVlLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgaWYgKGlzUHJvY2Vzc2FibGVWYWx1ZSh2YWx1ZVtfaV0pKSB7XG4gICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIHByb2Nlc3NTdHlsZVZhbHVlKGtleSwgdmFsdWVbX2ldKSArIFwiO1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgaW50ZXJwb2xhdGVkID0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgdmFsdWUpO1xuXG4gICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FuaW1hdGlvbic6XG4gICAgICAgICAgICBjYXNlICdhbmltYXRpb25OYW1lJzpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIGludGVycG9sYXRlZCArIFwiO1wiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHN0cmluZyArPSBrZXkgKyBcIntcIiArIGludGVycG9sYXRlZCArIFwifVwiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxudmFyIGxhYmVsUGF0dGVybiA9IC9sYWJlbDpcXHMqKFteXFxzO3tdKylcXHMqKDt8JCkvZztcbi8vIGtleWZyYW1lcyBhcmUgc3RvcmVkIG9uIHRoZSBTZXJpYWxpemVkU3R5bGVzIG9iamVjdCBhcyBhIGxpbmtlZCBsaXN0XG5cblxudmFyIGN1cnNvcjtcbmZ1bmN0aW9uIHNlcmlhbGl6ZVN0eWxlcyhhcmdzLCByZWdpc3RlcmVkLCBtZXJnZWRQcm9wcykge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICdvYmplY3QnICYmIGFyZ3NbMF0gIT09IG51bGwgJiYgYXJnc1swXS5zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBhcmdzWzBdO1xuICB9XG5cbiAgdmFyIHN0cmluZ01vZGUgPSB0cnVlO1xuICB2YXIgc3R5bGVzID0gJyc7XG4gIGN1cnNvciA9IHVuZGVmaW5lZDtcbiAgdmFyIHN0cmluZ3MgPSBhcmdzWzBdO1xuXG4gIGlmIChzdHJpbmdzID09IG51bGwgfHwgc3RyaW5ncy5yYXcgPT09IHVuZGVmaW5lZCkge1xuICAgIHN0cmluZ01vZGUgPSBmYWxzZTtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgc3RyaW5ncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGFzVGVtcGxhdGVTdHJpbmdzQXJyID0gc3RyaW5ncztcblxuICAgIHN0eWxlcyArPSBhc1RlbXBsYXRlU3RyaW5nc0FyclswXTtcbiAgfSAvLyB3ZSBzdGFydCBhdCAxIHNpbmNlIHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCB0aGUgZmlyc3QgYXJnXG5cblxuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgYXJnc1tpXSk7XG5cbiAgICBpZiAoc3RyaW5nTW9kZSkge1xuICAgICAgdmFyIHRlbXBsYXRlU3RyaW5nc0FyciA9IHN0cmluZ3M7XG5cbiAgICAgIHN0eWxlcyArPSB0ZW1wbGF0ZVN0cmluZ3NBcnJbaV07XG4gICAgfVxuICB9XG5cblxuICBsYWJlbFBhdHRlcm4ubGFzdEluZGV4ID0gMDtcbiAgdmFyIGlkZW50aWZpZXJOYW1lID0gJyc7XG4gIHZhciBtYXRjaDsgLy8gaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81YjgwOWMyY2YyOTQ5ODAwYTBmNjFmYjVcblxuICB3aGlsZSAoKG1hdGNoID0gbGFiZWxQYXR0ZXJuLmV4ZWMoc3R5bGVzKSkgIT09IG51bGwpIHtcbiAgICBpZGVudGlmaWVyTmFtZSArPSAnLScgKyBtYXRjaFsxXTtcbiAgfVxuXG4gIHZhciBuYW1lID0gaGFzaFN0cmluZyhzdHlsZXMpICsgaWRlbnRpZmllck5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHN0eWxlczogc3R5bGVzLFxuICAgIG5leHQ6IGN1cnNvclxuICB9O1xufVxuXG5leHBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfTtcbiIsICJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbnZhciBpc0Jyb3dzZXIgPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG52YXIgc3luY0ZhbGxiYWNrID0gZnVuY3Rpb24gc3luY0ZhbGxiYWNrKGNyZWF0ZSkge1xuICByZXR1cm4gY3JlYXRlKCk7XG59O1xuXG52YXIgdXNlSW5zZXJ0aW9uRWZmZWN0ID0gUmVhY3RbJ3VzZUluc2VydGlvbicgKyAnRWZmZWN0J10gPyBSZWFjdFsndXNlSW5zZXJ0aW9uJyArICdFZmZlY3QnXSA6IGZhbHNlO1xudmFyIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2sgPSAhaXNCcm93c2VyID8gc3luY0ZhbGxiYWNrIDogdXNlSW5zZXJ0aW9uRWZmZWN0IHx8IHN5bmNGYWxsYmFjaztcbnZhciB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2sgPSB1c2VJbnNlcnRpb25FZmZlY3QgfHwgUmVhY3QudXNlTGF5b3V0RWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrLCB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2sgfTtcbiIsICJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNyZWF0ZUNhY2hlIGZyb20gJ0BlbW90aW9uL2NhY2hlJztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCB3ZWFrTWVtb2l6ZSBmcm9tICdAZW1vdGlvbi93ZWFrLW1lbW9pemUnO1xuaW1wb3J0IGhvaXN0Tm9uUmVhY3RTdGF0aWNzIGZyb20gJy4uL19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5lc20uanMnO1xuaW1wb3J0IHsgZ2V0UmVnaXN0ZXJlZFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGluc2VydFN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3V0aWxzJztcbmltcG9ydCB7IHNlcmlhbGl6ZVN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3NlcmlhbGl6ZSc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrIH0gZnJvbSAnQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MnO1xuXG52YXIgaXNEZXZlbG9wbWVudCA9IGZhbHNlO1xuXG52YXIgaXNCcm93c2VyID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxuLyogaW1wb3J0IHsgdHlwZSBFbW90aW9uQ2FjaGUgfSBmcm9tICdAZW1vdGlvbi91dGlscycgKi9cbnZhciBFbW90aW9uQ2FjaGVDb250ZXh0XG4vKjogUmVhY3QuQ29udGV4dDxFbW90aW9uQ2FjaGUgfCBudWxsPiAqL1xuPSAvKiAjX19QVVJFX18gKi9SZWFjdC5jcmVhdGVDb250ZXh0KCAvLyB3ZSdyZSBkb2luZyB0aGlzIHRvIGF2b2lkIHByZWNvbnN0cnVjdCdzIGRlYWQgY29kZSBlbGltaW5hdGlvbiBpbiB0aGlzIG9uZSBjYXNlXG4vLyBiZWNhdXNlIHRoaXMgbW9kdWxlIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgdGhlIGJyb3dzZXIgYW5kIG5vZGVcbi8vIGJ1dCBpdCdzIGFsc28gcmVxdWlyZWQgaW4gcmVhY3QgbmF0aXZlIGFuZCBzaW1pbGFyIGVudmlyb25tZW50cyBzb21ldGltZXNcbi8vIGFuZCB3ZSBjb3VsZCBoYXZlIGEgc3BlY2lhbCBidWlsZCBqdXN0IGZvciB0aGF0XG4vLyBidXQgdGhpcyBpcyBtdWNoIGVhc2llciBhbmQgdGhlIG5hdGl2ZSBwYWNrYWdlc1xuLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IHRoZW1lIGNvbnRleHQgaW4gdGhlIGZ1dHVyZSBhbnl3YXlcbnR5cGVvZiBIVE1MRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgPyAvKiAjX19QVVJFX18gKi9jcmVhdGVDYWNoZSh7XG4gIGtleTogJ2Nzcydcbn0pIDogbnVsbCk7XG5cbnZhciBDYWNoZVByb3ZpZGVyID0gRW1vdGlvbkNhY2hlQ29udGV4dC5Qcm92aWRlcjtcbnZhciBfX3Vuc2FmZV91c2VFbW90aW9uQ2FjaGUgPSBmdW5jdGlvbiB1c2VFbW90aW9uQ2FjaGUoKVxuLyo6IEVtb3Rpb25DYWNoZSB8IG51bGwqL1xue1xuICByZXR1cm4gdXNlQ29udGV4dChFbW90aW9uQ2FjaGVDb250ZXh0KTtcbn07XG5cbnZhciB3aXRoRW1vdGlvbkNhY2hlID0gZnVuY3Rpb24gd2l0aEVtb3Rpb25DYWNoZVxuLyogPFByb3BzLCBSZWY6IFJlYWN0LlJlZjwqPj4gKi9cbihmdW5jXG4vKjogKHByb3BzOiBQcm9wcywgY2FjaGU6IEVtb3Rpb25DYWNoZSwgcmVmOiBSZWYpID0+IFJlYWN0Lk5vZGUgKi9cbilcbi8qOiBSZWFjdC5BYnN0cmFjdENvbXBvbmVudDxQcm9wcz4gKi9cbntcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wc1xuICAvKjogUHJvcHMgKi9cbiAgLCByZWZcbiAgLyo6IFJlZiAqL1xuICApIHtcbiAgICAvLyB0aGUgY2FjaGUgd2lsbCBuZXZlciBiZSBudWxsIGluIHRoZSBicm93c2VyXG4gICAgdmFyIGNhY2hlID0gdXNlQ29udGV4dChFbW90aW9uQ2FjaGVDb250ZXh0KTtcbiAgICByZXR1cm4gZnVuYyhwcm9wcywgY2FjaGUsIHJlZik7XG4gIH0pO1xufTtcblxuaWYgKCFpc0Jyb3dzZXIpIHtcbiAgd2l0aEVtb3Rpb25DYWNoZSA9IGZ1bmN0aW9uIHdpdGhFbW90aW9uQ2FjaGVcbiAgLyogPFByb3BzPiAqL1xuICAoZnVuY1xuICAvKjogKHByb3BzOiBQcm9wcywgY2FjaGU6IEVtb3Rpb25DYWNoZSkgPT4gUmVhY3QuTm9kZSAqL1xuICApXG4gIC8qOiBSZWFjdC5TdGF0ZWxlc3NGdW5jdGlvbmFsQ29tcG9uZW50PFByb3BzPiAqL1xuICB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChwcm9wc1xuICAgIC8qOiBQcm9wcyAqL1xuICAgICkge1xuICAgICAgdmFyIGNhY2hlID0gdXNlQ29udGV4dChFbW90aW9uQ2FjaGVDb250ZXh0KTtcblxuICAgICAgaWYgKGNhY2hlID09PSBudWxsKSB7XG4gICAgICAgIC8vIHllcywgd2UncmUgcG90ZW50aWFsbHkgY3JlYXRpbmcgdGhpcyBvbiBldmVyeSByZW5kZXJcbiAgICAgICAgLy8gaXQgZG9lc24ndCBhY3R1YWxseSBtYXR0ZXIgdGhvdWdoIHNpbmNlIGl0J3Mgb25seSBvbiB0aGUgc2VydmVyXG4gICAgICAgIC8vIHNvIHRoZXJlIHdpbGwgb25seSBldmVyeSBiZSBhIHNpbmdsZSByZW5kZXJcbiAgICAgICAgLy8gdGhhdCBjb3VsZCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSBiZWNhdXNlIG9mIHN1c3BlbnNlIGFuZCBldGMuIGJ1dCBmb3Igbm93LFxuICAgICAgICAvLyB0aGlzIHdvcmtzIGFuZCBpIGRvbid0IHdhbnQgdG8gb3B0aW1pc2UgZm9yIGEgZnV0dXJlIHRoaW5nIHRoYXQgd2UgYXJlbid0IHN1cmUgYWJvdXRcbiAgICAgICAgY2FjaGUgPSBjcmVhdGVDYWNoZSh7XG4gICAgICAgICAga2V5OiAnY3NzJ1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEVtb3Rpb25DYWNoZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICB2YWx1ZTogY2FjaGVcbiAgICAgICAgfSwgZnVuYyhwcm9wcywgY2FjaGUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmdW5jKHByb3BzLCBjYWNoZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcbn1cblxudmFyIFRoZW1lQ29udGV4dCA9IC8qICNfX1BVUkVfXyAqL1JlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuXG52YXIgdXNlVGhlbWUgPSBmdW5jdGlvbiB1c2VUaGVtZSgpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbn07XG5cbnZhciBnZXRUaGVtZSA9IGZ1bmN0aW9uIGdldFRoZW1lKG91dGVyVGhlbWVcbi8qOiBPYmplY3QgKi9cbiwgdGhlbWVcbi8qOiBPYmplY3QgfCAoT2JqZWN0ID0+IE9iamVjdCkgKi9cbikge1xuICBpZiAodHlwZW9mIHRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIG1lcmdlZFRoZW1lID0gdGhlbWUob3V0ZXJUaGVtZSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkVGhlbWU7XG4gIH1cblxuICByZXR1cm4gX2V4dGVuZHMoe30sIG91dGVyVGhlbWUsIHRoZW1lKTtcbn07XG5cbnZhciBjcmVhdGVDYWNoZVdpdGhUaGVtZSA9IC8qICNfX1BVUkVfXyAqL3dlYWtNZW1vaXplKGZ1bmN0aW9uIChvdXRlclRoZW1lKSB7XG4gIHJldHVybiB3ZWFrTWVtb2l6ZShmdW5jdGlvbiAodGhlbWUpIHtcbiAgICByZXR1cm4gZ2V0VGhlbWUob3V0ZXJUaGVtZSwgdGhlbWUpO1xuICB9KTtcbn0pO1xuLypcbnR5cGUgVGhlbWVQcm92aWRlclByb3BzID0ge1xuICB0aGVtZTogT2JqZWN0IHwgKE9iamVjdCA9PiBPYmplY3QpLFxuICBjaGlsZHJlbjogUmVhY3QuTm9kZVxufVxuKi9cblxudmFyIFRoZW1lUHJvdmlkZXIgPSBmdW5jdGlvbiBUaGVtZVByb3ZpZGVyKHByb3BzXG4vKjogVGhlbWVQcm92aWRlclByb3BzICovXG4pIHtcbiAgdmFyIHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xuXG4gIGlmIChwcm9wcy50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICB0aGVtZSA9IGNyZWF0ZUNhY2hlV2l0aFRoZW1lKHRoZW1lKShwcm9wcy50aGVtZSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVGhlbWVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHRoZW1lXG4gIH0sIHByb3BzLmNoaWxkcmVuKTtcbn07XG5mdW5jdGlvbiB3aXRoVGhlbWVcbi8qIDxDb25maWc6IHt9PiAqL1xuKENvbXBvbmVudFxuLyo6IFJlYWN0LkFic3RyYWN0Q29tcG9uZW50PENvbmZpZz4gKi9cbilcbi8qOiBSZWFjdC5BYnN0cmFjdENvbXBvbmVudDwkRGlmZjxDb25maWcsIHsgdGhlbWU6IE9iamVjdCB9Pj4gKi9cbntcbiAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG5cbiAgdmFyIHJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihwcm9wcywgcmVmKSB7XG4gICAgdmFyIHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgIHRoZW1lOiB0aGVtZSxcbiAgICAgIHJlZjogcmVmXG4gICAgfSwgcHJvcHMpKTtcbiAgfTtcblxuICB2YXIgV2l0aFRoZW1lID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYocmVuZGVyKTtcbiAgV2l0aFRoZW1lLmRpc3BsYXlOYW1lID0gXCJXaXRoVGhlbWUoXCIgKyBjb21wb25lbnROYW1lICsgXCIpXCI7XG4gIHJldHVybiBob2lzdE5vblJlYWN0U3RhdGljcyhXaXRoVGhlbWUsIENvbXBvbmVudCk7XG59XG5cbnZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIHR5cGVQcm9wTmFtZSA9ICdfX0VNT1RJT05fVFlQRV9QTEVBU0VfRE9fTk9UX1VTRV9fJztcbnZhciBjcmVhdGVFbW90aW9uUHJvcHMgPSBmdW5jdGlvbiBjcmVhdGVFbW90aW9uUHJvcHModHlwZVxuLyo6IFJlYWN0LkVsZW1lbnRUeXBlICovXG4sIHByb3BzXG4vKjogT2JqZWN0ICovXG4pIHtcblxuICB2YXIgbmV3UHJvcHNcbiAgLyo6IGFueSAqL1xuICA9IHt9O1xuXG4gIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd24uY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgbmV3UHJvcHNba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuICB9XG5cbiAgbmV3UHJvcHNbdHlwZVByb3BOYW1lXSA9IHR5cGU7IC8vIFJ1bnRpbWUgbGFiZWxpbmcgaXMgYW4gb3B0LWluIGZlYXR1cmUgYmVjYXVzZTpcblxuICByZXR1cm4gbmV3UHJvcHM7XG59O1xuXG52YXIgSW5zZXJ0aW9uID0gZnVuY3Rpb24gSW5zZXJ0aW9uKF9yZWYpIHtcbiAgdmFyIGNhY2hlID0gX3JlZi5jYWNoZSxcbiAgICAgIHNlcmlhbGl6ZWQgPSBfcmVmLnNlcmlhbGl6ZWQsXG4gICAgICBpc1N0cmluZ1RhZyA9IF9yZWYuaXNTdHJpbmdUYWc7XG4gIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZyk7XG4gIHZhciBydWxlcyA9IHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKTtcbiAgfSk7XG5cbiAgaWYgKCFpc0Jyb3dzZXIgJiYgcnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBfcmVmMjtcblxuICAgIHZhciBzZXJpYWxpemVkTmFtZXMgPSBzZXJpYWxpemVkLm5hbWU7XG4gICAgdmFyIG5leHQgPSBzZXJpYWxpemVkLm5leHQ7XG5cbiAgICB3aGlsZSAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXJpYWxpemVkTmFtZXMgKz0gJyAnICsgbmV4dC5uYW1lO1xuICAgICAgbmV4dCA9IG5leHQubmV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCAoX3JlZjIgPSB7fSwgX3JlZjJbXCJkYXRhLWVtb3Rpb25cIl0gPSBjYWNoZS5rZXkgKyBcIiBcIiArIHNlcmlhbGl6ZWROYW1lcywgX3JlZjIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB7XG4gICAgICBfX2h0bWw6IHJ1bGVzXG4gICAgfSwgX3JlZjIubm9uY2UgPSBjYWNoZS5zaGVldC5ub25jZSwgX3JlZjIpKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxudmFyIEVtb3Rpb24gPSAvKiAjX19QVVJFX18gKi93aXRoRW1vdGlvbkNhY2hlKFxuLyogPGFueSwgYW55PiAqL1xuZnVuY3Rpb24gKHByb3BzLCBjYWNoZSwgcmVmKSB7XG4gIHZhciBjc3NQcm9wID0gcHJvcHMuY3NzOyAvLyBzbyB0aGF0IHVzaW5nIGBjc3NgIGZyb20gYGVtb3Rpb25gIGFuZCBwYXNzaW5nIHRoZSByZXN1bHQgdG8gdGhlIGNzcyBwcm9wIHdvcmtzXG4gIC8vIG5vdCBwYXNzaW5nIHRoZSByZWdpc3RlcmVkIGNhY2hlIHRvIHNlcmlhbGl6ZVN0eWxlcyBiZWNhdXNlIGl0IHdvdWxkXG4gIC8vIG1ha2UgY2VydGFpbiBiYWJlbCBvcHRpbWlzYXRpb25zIG5vdCBwb3NzaWJsZVxuXG4gIGlmICh0eXBlb2YgY3NzUHJvcCA9PT0gJ3N0cmluZycgJiYgY2FjaGUucmVnaXN0ZXJlZFtjc3NQcm9wXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY3NzUHJvcCA9IGNhY2hlLnJlZ2lzdGVyZWRbY3NzUHJvcF07XG4gIH1cblxuICB2YXIgV3JhcHBlZENvbXBvbmVudCA9IHByb3BzW3R5cGVQcm9wTmFtZV07XG4gIHZhciByZWdpc3RlcmVkU3R5bGVzID0gW2Nzc1Byb3BdO1xuICB2YXIgY2xhc3NOYW1lID0gJyc7XG5cbiAgaWYgKHR5cGVvZiBwcm9wcy5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgY2xhc3NOYW1lID0gZ2V0UmVnaXN0ZXJlZFN0eWxlcyhjYWNoZS5yZWdpc3RlcmVkLCByZWdpc3RlcmVkU3R5bGVzLCBwcm9wcy5jbGFzc05hbWUpO1xuICB9IGVsc2UgaWYgKHByb3BzLmNsYXNzTmFtZSAhPSBudWxsKSB7XG4gICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lICsgXCIgXCI7XG4gIH1cblxuICB2YXIgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZVN0eWxlcyhyZWdpc3RlcmVkU3R5bGVzLCB1bmRlZmluZWQsIFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KSk7XG5cbiAgY2xhc3NOYW1lICs9IGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuICB2YXIgbmV3UHJvcHMgPSB7fTtcblxuICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duLmNhbGwocHJvcHMsIGtleSkgJiYga2V5ICE9PSAnY3NzJyAmJiBrZXkgIT09IHR5cGVQcm9wTmFtZSAmJiAoIWlzRGV2ZWxvcG1lbnQgKSkge1xuICAgICAgbmV3UHJvcHNba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuICB9XG5cbiAgbmV3UHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gIGlmIChyZWYpIHtcbiAgICBuZXdQcm9wcy5yZWYgPSByZWY7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbiwge1xuICAgIGNhY2hlOiBjYWNoZSxcbiAgICBzZXJpYWxpemVkOiBzZXJpYWxpemVkLFxuICAgIGlzU3RyaW5nVGFnOiB0eXBlb2YgV3JhcHBlZENvbXBvbmVudCA9PT0gJ3N0cmluZydcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZWRDb21wb25lbnQsIG5ld1Byb3BzKSk7XG59KTtcblxudmFyIEVtb3Rpb24kMSA9IEVtb3Rpb247XG5cbmV4cG9ydCB7IENhY2hlUHJvdmlkZXIgYXMgQywgRW1vdGlvbiQxIGFzIEUsIFRoZW1lQ29udGV4dCBhcyBULCBfX3Vuc2FmZV91c2VFbW90aW9uQ2FjaGUgYXMgXywgaXNEZXZlbG9wbWVudCBhcyBhLCBUaGVtZVByb3ZpZGVyIGFzIGIsIGNyZWF0ZUVtb3Rpb25Qcm9wcyBhcyBjLCB3aXRoVGhlbWUgYXMgZCwgaGFzT3duIGFzIGgsIGlzQnJvd3NlciBhcyBpLCB1c2VUaGVtZSBhcyB1LCB3aXRoRW1vdGlvbkNhY2hlIGFzIHcgfTtcbiIsICJpbXBvcnQgeyBoIGFzIGhhc093biwgRSBhcyBFbW90aW9uLCBjIGFzIGNyZWF0ZUVtb3Rpb25Qcm9wcywgdyBhcyB3aXRoRW1vdGlvbkNhY2hlLCBUIGFzIFRoZW1lQ29udGV4dCwgaSBhcyBpc0Jyb3dzZXIsIGEgYXMgaXNEZXZlbG9wbWVudCB9IGZyb20gJy4vZW1vdGlvbi1lbGVtZW50LWI0YzhiMjY1LmVzbS5qcyc7XG5leHBvcnQgeyBDIGFzIENhY2hlUHJvdmlkZXIsIFQgYXMgVGhlbWVDb250ZXh0LCBiIGFzIFRoZW1lUHJvdmlkZXIsIF8gYXMgX191bnNhZmVfdXNlRW1vdGlvbkNhY2hlLCB1IGFzIHVzZVRoZW1lLCB3IGFzIHdpdGhFbW90aW9uQ2FjaGUsIGQgYXMgd2l0aFRoZW1lIH0gZnJvbSAnLi9lbW90aW9uLWVsZW1lbnQtYjRjOGIyNjUuZXNtLmpzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc2VydFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGdldFJlZ2lzdGVyZWRTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi91dGlscyc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2ssIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2sgfSBmcm9tICdAZW1vdGlvbi91c2UtaW5zZXJ0aW9uLWVmZmVjdC13aXRoLWZhbGxiYWNrcyc7XG5pbXBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi9zZXJpYWxpemUnO1xuaW1wb3J0ICdAZW1vdGlvbi9jYWNoZSc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgJ0BlbW90aW9uL3dlYWstbWVtb2l6ZSc7XG5pbXBvcnQgJy4uL19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5lc20uanMnO1xuaW1wb3J0ICdob2lzdC1ub24tcmVhY3Qtc3RhdGljcyc7XG5cbnZhciBqc3hcbi8qOiB0eXBlb2YgUmVhY3QuY3JlYXRlRWxlbWVudCAqL1xuPSBmdW5jdGlvbiBqc3hcbi8qOiB0eXBlb2YgUmVhY3QuY3JlYXRlRWxlbWVudCAqL1xuKHR5cGVcbi8qOiBSZWFjdC5FbGVtZW50VHlwZSAqL1xuLCBwcm9wc1xuLyo6IE9iamVjdCAqL1xuKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuXG4gIGlmIChwcm9wcyA9PSBudWxsIHx8ICFoYXNPd24uY2FsbChwcm9wcywgJ2NzcycpKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgfVxuXG4gIHZhciBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGg7XG4gIHZhciBjcmVhdGVFbGVtZW50QXJnQXJyYXkgPSBuZXcgQXJyYXkoYXJnc0xlbmd0aCk7XG4gIGNyZWF0ZUVsZW1lbnRBcmdBcnJheVswXSA9IEVtb3Rpb247XG4gIGNyZWF0ZUVsZW1lbnRBcmdBcnJheVsxXSA9IGNyZWF0ZUVtb3Rpb25Qcm9wcyh0eXBlLCBwcm9wcyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmdzTGVuZ3RoOyBpKyspIHtcbiAgICBjcmVhdGVFbGVtZW50QXJnQXJyYXlbaV0gPSBhcmdzW2ldO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQuYXBwbHkobnVsbCwgY3JlYXRlRWxlbWVudEFyZ0FycmF5KTtcbn07XG5cbi8vIGluaXRpYWwgcmVuZGVyIGZyb20gYnJvd3NlciwgaW5zZXJ0QmVmb3JlIGNvbnRleHQuc2hlZXQudGFnc1swXSBvciBpZiBhIHN0eWxlIGhhc24ndCBiZWVuIGluc2VydGVkIHRoZXJlIHlldCwgYXBwZW5kQ2hpbGRcbi8vIGluaXRpYWwgY2xpZW50LXNpZGUgcmVuZGVyIGZyb20gU1NSLCB1c2UgcGxhY2Ugb2YgaHlkcmF0aW5nIHRhZ1xuXG52YXIgR2xvYmFsXG4vKjogUmVhY3QuQWJzdHJhY3RDb21wb25lbnQ8XG5HbG9iYWxQcm9wc1xuPiAqL1xuPSAvKiAjX19QVVJFX18gKi93aXRoRW1vdGlvbkNhY2hlKGZ1bmN0aW9uIChwcm9wc1xuLyo6IEdsb2JhbFByb3BzICovXG4sIGNhY2hlKSB7XG5cbiAgdmFyIHN0eWxlcyA9IHByb3BzLnN0eWxlcztcbiAgdmFyIHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTdHlsZXMoW3N0eWxlc10sIHVuZGVmaW5lZCwgUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpKTtcblxuICBpZiAoIWlzQnJvd3Nlcikge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIHNlcmlhbGl6ZWROYW1lcyA9IHNlcmlhbGl6ZWQubmFtZTtcbiAgICB2YXIgc2VyaWFsaXplZFN0eWxlcyA9IHNlcmlhbGl6ZWQuc3R5bGVzO1xuICAgIHZhciBuZXh0ID0gc2VyaWFsaXplZC5uZXh0O1xuXG4gICAgd2hpbGUgKG5leHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2VyaWFsaXplZE5hbWVzICs9ICcgJyArIG5leHQubmFtZTtcbiAgICAgIHNlcmlhbGl6ZWRTdHlsZXMgKz0gbmV4dC5zdHlsZXM7XG4gICAgICBuZXh0ID0gbmV4dC5uZXh0O1xuICAgIH1cblxuICAgIHZhciBzaG91bGRDYWNoZSA9IGNhY2hlLmNvbXBhdCA9PT0gdHJ1ZTtcbiAgICB2YXIgcnVsZXMgPSBjYWNoZS5pbnNlcnQoXCJcIiwge1xuICAgICAgbmFtZTogc2VyaWFsaXplZE5hbWVzLFxuICAgICAgc3R5bGVzOiBzZXJpYWxpemVkU3R5bGVzXG4gICAgfSwgY2FjaGUuc2hlZXQsIHNob3VsZENhY2hlKTtcblxuICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwgKF9yZWYgPSB7fSwgX3JlZltcImRhdGEtZW1vdGlvblwiXSA9IGNhY2hlLmtleSArIFwiLWdsb2JhbCBcIiArIHNlcmlhbGl6ZWROYW1lcywgX3JlZi5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHtcbiAgICAgIF9faHRtbDogcnVsZXNcbiAgICB9LCBfcmVmLm5vbmNlID0gY2FjaGUuc2hlZXQubm9uY2UsIF9yZWYpKTtcbiAgfSAvLyB5ZXMsIGkga25vdyB0aGVzZSBob29rcyBhcmUgdXNlZCBjb25kaXRpb25hbGx5XG4gIC8vIGJ1dCBpdCBpcyBiYXNlZCBvbiBhIGNvbnN0YW50IHRoYXQgd2lsbCBuZXZlciBjaGFuZ2UgYXQgcnVudGltZVxuICAvLyBpdCdzIGVmZmVjdGl2ZWx5IGxpa2UgaGF2aW5nIHR3byBpbXBsZW1lbnRhdGlvbnMgYW5kIHN3aXRjaGluZyB0aGVtIG91dFxuICAvLyBzbyBpdCdzIG5vdCBhY3R1YWxseSBicmVha2luZyBhbnl0aGluZ1xuXG5cbiAgdmFyIHNoZWV0UmVmID0gUmVhY3QudXNlUmVmKCk7XG4gIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGtleSA9IGNhY2hlLmtleSArIFwiLWdsb2JhbFwiOyAvLyB1c2UgY2FzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZW1vdGlvbi1qcy9lbW90aW9uL2lzc3Vlcy8yNjc1XG5cbiAgICB2YXIgc2hlZXQgPSBuZXcgY2FjaGUuc2hlZXQuY29uc3RydWN0b3Ioe1xuICAgICAga2V5OiBrZXksXG4gICAgICBub25jZTogY2FjaGUuc2hlZXQubm9uY2UsXG4gICAgICBjb250YWluZXI6IGNhY2hlLnNoZWV0LmNvbnRhaW5lcixcbiAgICAgIHNwZWVkeTogY2FjaGUuc2hlZXQuaXNTcGVlZHlcbiAgICB9KTtcbiAgICB2YXIgcmVoeWRyYXRpbmcgPSBmYWxzZTtcbiAgICB2YXIgbm9kZVxuICAgIC8qOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCovXG4gICAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwic3R5bGVbZGF0YS1lbW90aW9uPVxcXCJcIiArIGtleSArIFwiIFwiICsgc2VyaWFsaXplZC5uYW1lICsgXCJcXFwiXVwiKTtcblxuICAgIGlmIChjYWNoZS5zaGVldC50YWdzLmxlbmd0aCkge1xuICAgICAgc2hlZXQuYmVmb3JlID0gY2FjaGUuc2hlZXQudGFnc1swXTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVoeWRyYXRpbmcgPSB0cnVlOyAvLyBjbGVhciB0aGUgaGFzaCBzbyB0aGlzIG5vZGUgd29uJ3QgYmUgcmVjb2duaXphYmxlIGFzIHJlaHlkcmF0YWJsZSBieSBvdGhlciA8R2xvYmFsLz5zXG5cbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLWVtb3Rpb24nLCBrZXkpO1xuICAgICAgc2hlZXQuaHlkcmF0ZShbbm9kZV0pO1xuICAgIH1cblxuICAgIHNoZWV0UmVmLmN1cnJlbnQgPSBbc2hlZXQsIHJlaHlkcmF0aW5nXTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgc2hlZXQuZmx1c2goKTtcbiAgICB9O1xuICB9LCBbY2FjaGVdKTtcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2hlZXRSZWZDdXJyZW50ID0gc2hlZXRSZWYuY3VycmVudDtcbiAgICB2YXIgc2hlZXQgPSBzaGVldFJlZkN1cnJlbnRbMF0sXG4gICAgICAgIHJlaHlkcmF0aW5nID0gc2hlZXRSZWZDdXJyZW50WzFdO1xuXG4gICAgaWYgKHJlaHlkcmF0aW5nKSB7XG4gICAgICBzaGVldFJlZkN1cnJlbnRbMV0gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc2VyaWFsaXplZC5uZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGluc2VydCBrZXlmcmFtZXNcbiAgICAgIGluc2VydFN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZC5uZXh0LCB0cnVlKTtcbiAgICB9XG5cbiAgICBpZiAoc2hlZXQudGFncy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIHRoaXMgZG9lc24ndCBleGlzdCB0aGVuIGl0IHdpbGwgYmUgbnVsbCBzbyB0aGUgc3R5bGUgZWxlbWVudCB3aWxsIGJlIGFwcGVuZGVkXG4gICAgICB2YXIgZWxlbWVudCA9IHNoZWV0LnRhZ3Nbc2hlZXQudGFncy5sZW5ndGggLSAxXS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICBzaGVldC5iZWZvcmUgPSBlbGVtZW50O1xuICAgICAgc2hlZXQuZmx1c2goKTtcbiAgICB9XG5cbiAgICBjYWNoZS5pbnNlcnQoXCJcIiwgc2VyaWFsaXplZCwgc2hlZXQsIGZhbHNlKTtcbiAgfSwgW2NhY2hlLCBzZXJpYWxpemVkLm5hbWVdKTtcbiAgcmV0dXJuIG51bGw7XG59KTtcblxuLyogaW1wb3J0IHR5cGUgeyBJbnRlcnBvbGF0aW9uLCBTZXJpYWxpemVkU3R5bGVzIH0gZnJvbSAnQGVtb3Rpb24vdXRpbHMnICovXG5cbmZ1bmN0aW9uIGNzcygpXG4vKjogU2VyaWFsaXplZFN0eWxlcyAqL1xue1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIHNlcmlhbGl6ZVN0eWxlcyhhcmdzKTtcbn1cblxuLypcbnR5cGUgS2V5ZnJhbWVzID0ge3xcbiAgbmFtZTogc3RyaW5nLFxuICBzdHlsZXM6IHN0cmluZyxcbiAgYW5pbTogMSxcbiAgdG9TdHJpbmc6ICgpID0+IHN0cmluZ1xufH0gJiBzdHJpbmdcbiovXG5cbnZhciBrZXlmcmFtZXMgPSBmdW5jdGlvblxuICAvKjogS2V5ZnJhbWVzICovXG5rZXlmcmFtZXMoKSB7XG4gIHZhciBpbnNlcnRhYmxlID0gY3NzLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcbiAgdmFyIG5hbWUgPSBcImFuaW1hdGlvbi1cIiArIGluc2VydGFibGUubmFtZTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHN0eWxlczogXCJAa2V5ZnJhbWVzIFwiICsgbmFtZSArIFwie1wiICsgaW5zZXJ0YWJsZS5zdHlsZXMgKyBcIn1cIixcbiAgICBhbmltOiAxLFxuICAgIHRvU3RyaW5nOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBcIl9FTU9fXCIgKyB0aGlzLm5hbWUgKyBcIl9cIiArIHRoaXMuc3R5bGVzICsgXCJfRU1PX1wiO1xuICAgIH1cbiAgfTtcbn07XG5cbi8qXG50eXBlIENsYXNzTmFtZUFyZyA9XG4gIHwgc3RyaW5nXG4gIHwgYm9vbGVhblxuICB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9XG4gIHwgQXJyYXk8Q2xhc3NOYW1lQXJnPlxuICB8IG51bGxcbiAgfCB2b2lkXG4qL1xuXG52YXIgY2xhc3NuYW1lcyA9IGZ1bmN0aW9uXG4gIC8qOiBzdHJpbmcgKi9cbmNsYXNzbmFtZXMoYXJnc1xuLyo6IEFycmF5PENsYXNzTmFtZUFyZz4gKi9cbikge1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIGNscyA9ICcnO1xuXG4gIGZvciAoOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09IG51bGwpIGNvbnRpbnVlO1xuICAgIHZhciB0b0FkZCA9IHZvaWQgMDtcblxuICAgIHN3aXRjaCAodHlwZW9mIGFyZykge1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICAgICAgdG9BZGQgPSBjbGFzc25hbWVzKGFyZyk7XG4gICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgdG9BZGQgPSAnJztcblxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBhcmcpIHtcbiAgICAgICAgICAgICAgaWYgKGFyZ1trXSAmJiBrKSB7XG4gICAgICAgICAgICAgICAgdG9BZGQgJiYgKHRvQWRkICs9ICcgJyk7XG4gICAgICAgICAgICAgICAgdG9BZGQgKz0gaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICB0b0FkZCA9IGFyZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0b0FkZCkge1xuICAgICAgY2xzICYmIChjbHMgKz0gJyAnKTtcbiAgICAgIGNscyArPSB0b0FkZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xzO1xufTtcblxuZnVuY3Rpb24gbWVyZ2UocmVnaXN0ZXJlZFxuLyo6IE9iamVjdCAqL1xuLCBjc3Ncbi8qOiAoLi4uYXJnczogQXJyYXk8YW55PikgPT4gc3RyaW5nICovXG4sIGNsYXNzTmFtZVxuLyo6IHN0cmluZyAqL1xuKSB7XG4gIHZhciByZWdpc3RlcmVkU3R5bGVzID0gW107XG4gIHZhciByYXdDbGFzc05hbWUgPSBnZXRSZWdpc3RlcmVkU3R5bGVzKHJlZ2lzdGVyZWQsIHJlZ2lzdGVyZWRTdHlsZXMsIGNsYXNzTmFtZSk7XG5cbiAgaWYgKHJlZ2lzdGVyZWRTdHlsZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiBjbGFzc05hbWU7XG4gIH1cblxuICByZXR1cm4gcmF3Q2xhc3NOYW1lICsgY3NzKHJlZ2lzdGVyZWRTdHlsZXMpO1xufVxuXG52YXIgSW5zZXJ0aW9uID0gZnVuY3Rpb24gSW5zZXJ0aW9uKF9yZWYpIHtcbiAgdmFyIGNhY2hlID0gX3JlZi5jYWNoZSxcbiAgICAgIHNlcmlhbGl6ZWRBcnIgPSBfcmVmLnNlcmlhbGl6ZWRBcnI7XG4gIHZhciBydWxlcyA9IHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHZhciBydWxlcyA9ICcnO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpYWxpemVkQXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcmVzID0gaW5zZXJ0U3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkQXJyW2ldLCBmYWxzZSk7XG5cbiAgICAgIGlmICghaXNCcm93c2VyICYmIHJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJ1bGVzICs9IHJlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHJ1bGVzO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKCFpc0Jyb3dzZXIgJiYgcnVsZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgdmFyIF9yZWYyO1xuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwgKF9yZWYyID0ge30sIF9yZWYyW1wiZGF0YS1lbW90aW9uXCJdID0gY2FjaGUua2V5ICsgXCIgXCIgKyBzZXJpYWxpemVkQXJyLm1hcChmdW5jdGlvbiAoc2VyaWFsaXplZCkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZWQubmFtZTtcbiAgICB9KS5qb2luKCcgJyksIF9yZWYyLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID0ge1xuICAgICAgX19odG1sOiBydWxlc1xuICAgIH0sIF9yZWYyLm5vbmNlID0gY2FjaGUuc2hlZXQubm9uY2UsIF9yZWYyKSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4vKlxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46ICh7XG4gICAgY3NzOiAoLi4uYXJnczogYW55KSA9PiBzdHJpbmcsXG4gICAgY3g6ICguLi5hcmdzOiBBcnJheTxDbGFzc05hbWVBcmc+KSA9PiBzdHJpbmcsXG4gICAgdGhlbWU6IE9iamVjdFxuICB9KSA9PiBSZWFjdC5Ob2RlXG59ICovXG5cblxudmFyIENsYXNzTmFtZXNcbi8qOiBSZWFjdC5BYnN0cmFjdENvbXBvbmVudDxQcm9wcz4qL1xuPSAvKiAjX19QVVJFX18gKi93aXRoRW1vdGlvbkNhY2hlKGZ1bmN0aW9uIChwcm9wcywgY2FjaGUpIHtcbiAgdmFyIGhhc1JlbmRlcmVkID0gZmFsc2U7XG4gIHZhciBzZXJpYWxpemVkQXJyID0gW107XG5cbiAgdmFyIGNzcyA9IGZ1bmN0aW9uIGNzcygpIHtcbiAgICBpZiAoaGFzUmVuZGVyZWQgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjc3MgY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgcmVuZGVyJyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplU3R5bGVzKGFyZ3MsIGNhY2hlLnJlZ2lzdGVyZWQpO1xuICAgIHNlcmlhbGl6ZWRBcnIucHVzaChzZXJpYWxpemVkKTsgLy8gcmVnaXN0cmF0aW9uIGhhcyB0byBoYXBwZW4gaGVyZSBhcyB0aGUgcmVzdWx0IG9mIHRoaXMgbWlnaHQgZ2V0IGNvbnN1bWVkIGJ5IGBjeGBcblxuICAgIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBmYWxzZSk7XG4gICAgcmV0dXJuIGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuICB9O1xuXG4gIHZhciBjeCA9IGZ1bmN0aW9uIGN4KCkge1xuICAgIGlmIChoYXNSZW5kZXJlZCAmJiBpc0RldmVsb3BtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N4IGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIHJlbmRlcicpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZShjYWNoZS5yZWdpc3RlcmVkLCBjc3MsIGNsYXNzbmFtZXMoYXJncykpO1xuICB9O1xuXG4gIHZhciBjb250ZW50ID0ge1xuICAgIGNzczogY3NzLFxuICAgIGN4OiBjeCxcbiAgICB0aGVtZTogUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpXG4gIH07XG4gIHZhciBlbGUgPSBwcm9wcy5jaGlsZHJlbihjb250ZW50KTtcbiAgaGFzUmVuZGVyZWQgPSB0cnVlO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbiwge1xuICAgIGNhY2hlOiBjYWNoZSxcbiAgICBzZXJpYWxpemVkQXJyOiBzZXJpYWxpemVkQXJyXG4gIH0pLCBlbGUpO1xufSk7XG5cbmV4cG9ydCB7IENsYXNzTmFtZXMsIEdsb2JhbCwganN4IGFzIGNyZWF0ZUVsZW1lbnQsIGNzcywganN4LCBrZXlmcmFtZXMgfTtcbiIsICJmdW5jdGlvbiBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKGUsIHQpIHtcbiAgcmV0dXJuIHQgfHwgKHQgPSBlLnNsaWNlKDApKSwgT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCB7XG4gICAgcmF3OiB7XG4gICAgICB2YWx1ZTogT2JqZWN0LmZyZWV6ZSh0KVxuICAgIH1cbiAgfSkpO1xufVxuZXhwb3J0IHsgX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCBhcyBkZWZhdWx0IH07IiwgIi8qKlxuICogQ3VzdG9tIHBvc2l0aW9uaW5nIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3ZpcnR1YWwtZWxlbWVudHNcbiAqL1xuXG5jb25zdCBzaWRlcyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J107XG5jb25zdCBhbGlnbm1lbnRzID0gWydzdGFydCcsICdlbmQnXTtcbmNvbnN0IHBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovc2lkZXMucmVkdWNlKChhY2MsIHNpZGUpID0+IGFjYy5jb25jYXQoc2lkZSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1swXSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1sxXSksIFtdKTtcbmNvbnN0IG1pbiA9IE1hdGgubWluO1xuY29uc3QgbWF4ID0gTWF0aC5tYXg7XG5jb25zdCByb3VuZCA9IE1hdGgucm91bmQ7XG5jb25zdCBmbG9vciA9IE1hdGguZmxvb3I7XG5jb25zdCBjcmVhdGVDb29yZHMgPSB2ID0+ICh7XG4gIHg6IHYsXG4gIHk6IHZcbn0pO1xuY29uc3Qgb3Bwb3NpdGVTaWRlTWFwID0ge1xuICBsZWZ0OiAncmlnaHQnLFxuICByaWdodDogJ2xlZnQnLFxuICBib3R0b206ICd0b3AnLFxuICB0b3A6ICdib3R0b20nXG59O1xuY29uc3Qgb3Bwb3NpdGVBbGlnbm1lbnRNYXAgPSB7XG4gIHN0YXJ0OiAnZW5kJyxcbiAgZW5kOiAnc3RhcnQnXG59O1xuZnVuY3Rpb24gY2xhbXAoc3RhcnQsIHZhbHVlLCBlbmQpIHtcbiAgcmV0dXJuIG1heChzdGFydCwgbWluKHZhbHVlLCBlbmQpKTtcbn1cbmZ1bmN0aW9uIGV2YWx1YXRlKHZhbHVlLCBwYXJhbSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUocGFyYW0pIDogdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTaWRlKHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBeGlzTGVuZ3RoKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbn1cbmZ1bmN0aW9uIGdldFNpZGVBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gWyd0b3AnLCAnYm90dG9tJ10uaW5jbHVkZXMoZ2V0U2lkZShwbGFjZW1lbnQpKSA/ICd5JyA6ICd4Jztcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KSB7XG4gIHJldHVybiBnZXRPcHBvc2l0ZUF4aXMoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSk7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBydGwpIHtcbiAgaWYgKHJ0bCA9PT0gdm9pZCAwKSB7XG4gICAgcnRsID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYWxpZ25tZW50QXhpcyk7XG4gIGxldCBtYWluQWxpZ25tZW50U2lkZSA9IGFsaWdubWVudEF4aXMgPT09ICd4JyA/IGFsaWdubWVudCA9PT0gKHJ0bCA/ICdlbmQnIDogJ3N0YXJ0JykgPyAncmlnaHQnIDogJ2xlZnQnIDogYWxpZ25tZW50ID09PSAnc3RhcnQnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgaWYgKHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdID4gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXSkge1xuICAgIG1haW5BbGlnbm1lbnRTaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpO1xuICB9XG4gIHJldHVybiBbbWFpbkFsaWdubWVudFNpZGUsIGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKV07XG59XG5mdW5jdGlvbiBnZXRFeHBhbmRlZFBsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGNvbnN0IG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBhbGlnbm1lbnQgPT4gb3Bwb3NpdGVBbGlnbm1lbnRNYXBbYWxpZ25tZW50XSk7XG59XG5mdW5jdGlvbiBnZXRTaWRlTGlzdChzaWRlLCBpc1N0YXJ0LCBydGwpIHtcbiAgY29uc3QgbHIgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbiAgY29uc3QgcmwgPSBbJ3JpZ2h0JywgJ2xlZnQnXTtcbiAgY29uc3QgdGIgPSBbJ3RvcCcsICdib3R0b20nXTtcbiAgY29uc3QgYnQgPSBbJ2JvdHRvbScsICd0b3AnXTtcbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgaWYgKHJ0bCkgcmV0dXJuIGlzU3RhcnQgPyBybCA6IGxyO1xuICAgICAgcmV0dXJuIGlzU3RhcnQgPyBsciA6IHJsO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gdGIgOiBidDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFtdO1xuICB9XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzKHBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZGlyZWN0aW9uLCBydGwpIHtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGxldCBsaXN0ID0gZ2V0U2lkZUxpc3QoZ2V0U2lkZShwbGFjZW1lbnQpLCBkaXJlY3Rpb24gPT09ICdzdGFydCcsIHJ0bCk7XG4gIGlmIChhbGlnbm1lbnQpIHtcbiAgICBsaXN0ID0gbGlzdC5tYXAoc2lkZSA9PiBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnQpO1xuICAgIGlmIChmbGlwQWxpZ25tZW50KSB7XG4gICAgICBsaXN0ID0gbGlzdC5jb25jYXQobGlzdC5tYXAoZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpc3Q7XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgc2lkZSA9PiBvcHBvc2l0ZVNpZGVNYXBbc2lkZV0pO1xufVxuZnVuY3Rpb24gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIC4uLnBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4gdHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSA6IHtcbiAgICB0b3A6IHBhZGRpbmcsXG4gICAgcmlnaHQ6IHBhZGRpbmcsXG4gICAgYm90dG9tOiBwYWRkaW5nLFxuICAgIGxlZnQ6IHBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlY3RUb0NsaWVudFJlY3QocmVjdCkge1xuICBjb25zdCB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gcmVjdDtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIGxlZnQ6IHgsXG4gICAgcmlnaHQ6IHggKyB3aWR0aCxcbiAgICBib3R0b206IHkgKyBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmV4cG9ydCB7IGFsaWdubWVudHMsIGNsYW1wLCBjcmVhdGVDb29yZHMsIGV2YWx1YXRlLCBleHBhbmRQYWRkaW5nT2JqZWN0LCBmbG9vciwgZ2V0QWxpZ25tZW50LCBnZXRBbGlnbm1lbnRBeGlzLCBnZXRBbGlnbm1lbnRTaWRlcywgZ2V0QXhpc0xlbmd0aCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBeGlzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0UGFkZGluZ09iamVjdCwgZ2V0U2lkZSwgZ2V0U2lkZUF4aXMsIG1heCwgbWluLCBwbGFjZW1lbnRzLCByZWN0VG9DbGllbnRSZWN0LCByb3VuZCwgc2lkZXMgfTtcbiIsICJmdW5jdGlvbiBoYXNXaW5kb3coKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn1cbmZ1bmN0aW9uIGdldE5vZGVOYW1lKG5vZGUpIHtcbiAgaWYgKGlzTm9kZShub2RlKSkge1xuICAgIHJldHVybiAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcbiAgLy8gcmV0dXJuaW5nIGAjZG9jdW1lbnRgIGFuIGluZmluaXRlIGxvb3Agd29uJ3Qgb2NjdXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjMxN1xuICByZXR1cm4gJyNkb2N1bWVudCc7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgcmV0dXJuIChub2RlID09IG51bGwgfHwgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICB2YXIgX3JlZjtcbiAgcmV0dXJuIChfcmVmID0gKGlzTm9kZShub2RlKSA/IG5vZGUub3duZXJEb2N1bWVudCA6IG5vZGUuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWYuZG9jdW1lbnRFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgTm9kZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICBpZiAoIWhhc1dpbmRvdygpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkhUTUxFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkgfHwgdHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGlmIChpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9wTGF5ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzV2ViS2l0KCkge1xuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gQ1NTLnN1cHBvcnRzKCctd2Via2l0LWJhY2tkcm9wLWZpbHRlcicsICdub25lJyk7XG59XG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xuICByZXR1cm4gWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUobm9kZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xuICBpZiAoaXNFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxYLFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICBjb25zdCByZXN1bHQgPVxuICAvLyBTdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZS5cbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcbiAgLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWQuXG4gIG5vZGUucGFyZW50Tm9kZSB8fFxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxuICBpc1NoYWRvd1Jvb3Qobm9kZSkgJiYgbm9kZS5ob3N0IHx8XG4gIC8vIEZhbGxiYWNrLlxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XG4gIHJldHVybiBpc1NoYWRvd1Jvb3QocmVzdWx0KSA/IHJlc3VsdC5ob3N0IDogcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcbiAgfVxuICBpZiAoaXNIVE1MRWxlbWVudChwYXJlbnROb2RlKSAmJiBpc092ZXJmbG93RWxlbWVudChwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cbmZ1bmN0aW9uIGdldE92ZXJmbG93QW5jZXN0b3JzKG5vZGUsIGxpc3QsIHRyYXZlcnNlSWZyYW1lcykge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDI7XG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcbiAgICBsaXN0ID0gW107XG4gIH1cbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XG4gICAgdHJhdmVyc2VJZnJhbWVzID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcbiAgY29uc3QgaXNCb2R5ID0gc2Nyb2xsYWJsZUFuY2VzdG9yID09PSAoKF9ub2RlJG93bmVyRG9jdW1lbnQyID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudDIuYm9keSk7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhzY3JvbGxhYmxlQW5jZXN0b3IpO1xuICBpZiAoaXNCb2R5KSB7XG4gICAgY29uc3QgZnJhbWVFbGVtZW50ID0gZ2V0RnJhbWVFbGVtZW50KHdpbik7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KHdpbiwgd2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc092ZXJmbG93RWxlbWVudChzY3JvbGxhYmxlQW5jZXN0b3IpID8gc2Nyb2xsYWJsZUFuY2VzdG9yIDogW10sIGZyYW1lRWxlbWVudCAmJiB0cmF2ZXJzZUlmcmFtZXMgPyBnZXRPdmVyZmxvd0FuY2VzdG9ycyhmcmFtZUVsZW1lbnQpIDogW10pO1xuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChzY3JvbGxhYmxlQW5jZXN0b3IsIGdldE92ZXJmbG93QW5jZXN0b3JzKHNjcm9sbGFibGVBbmNlc3RvciwgW10sIHRyYXZlcnNlSWZyYW1lcykpO1xufVxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KHdpbikge1xuICByZXR1cm4gd2luLnBhcmVudCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yod2luLnBhcmVudCkgPyB3aW4uZnJhbWVFbGVtZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgZ2V0Q29udGFpbmluZ0Jsb2NrLCBnZXREb2N1bWVudEVsZW1lbnQsIGdldEZyYW1lRWxlbWVudCwgZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IsIGdldE5vZGVOYW1lLCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgZ2V0V2luZG93LCBpc0NvbnRhaW5pbmdCbG9jaywgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGlzTm9kZSwgaXNPdmVyZmxvd0VsZW1lbnQsIGlzU2hhZG93Um9vdCwgaXNUYWJsZUVsZW1lbnQsIGlzVG9wTGF5ZXIsIGlzV2ViS2l0IH07XG4iLCAiaW1wb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCwgZGV0ZWN0T3ZlcmZsb3cgYXMgZGV0ZWN0T3ZlcmZsb3ckMSwgb2Zmc2V0IGFzIG9mZnNldCQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgc2hpZnQgYXMgc2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBoaWRlIGFzIGhpZGUkMSwgYXJyb3cgYXMgYXJyb3ckMSwgaW5saW5lIGFzIGlubGluZSQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgY29tcHV0ZVBvc2l0aW9uIGFzIGNvbXB1dGVQb3NpdGlvbiQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2NvcmUnO1xuaW1wb3J0IHsgcm91bmQsIGNyZWF0ZUNvb3JkcywgbWF4LCBtaW4sIGZsb29yIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcbmltcG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGlzSFRNTEVsZW1lbnQsIGlzRWxlbWVudCwgZ2V0V2luZG93LCBpc1dlYktpdCwgZ2V0RnJhbWVFbGVtZW50LCBnZXREb2N1bWVudEVsZW1lbnQsIGlzVG9wTGF5ZXIsIGdldE5vZGVOYW1lLCBpc092ZXJmbG93RWxlbWVudCwgZ2V0Tm9kZVNjcm9sbCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNDb250YWluaW5nQmxvY2ssIGlzVGFibGVFbGVtZW50LCBnZXRDb250YWluaW5nQmxvY2sgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcbmV4cG9ydCB7IGdldE92ZXJmbG93QW5jZXN0b3JzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5cbmZ1bmN0aW9uIGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAvLyBJbiB0ZXN0aW5nIGVudmlyb25tZW50cywgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMgYXJlIGVtcHR5XG4gIC8vIHN0cmluZ3MgZm9yIFNWRyBlbGVtZW50cywgcmV0dXJuaW5nIE5hTi4gRmFsbGJhY2sgdG8gYDBgIGluIHRoaXMgY2FzZS5cbiAgbGV0IHdpZHRoID0gcGFyc2VGbG9hdChjc3Mud2lkdGgpIHx8IDA7XG4gIGxldCBoZWlnaHQgPSBwYXJzZUZsb2F0KGNzcy5oZWlnaHQpIHx8IDA7XG4gIGNvbnN0IGhhc09mZnNldCA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IG9mZnNldFdpZHRoID0gaGFzT2Zmc2V0ID8gZWxlbWVudC5vZmZzZXRXaWR0aCA6IHdpZHRoO1xuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGhlaWdodDtcbiAgY29uc3Qgc2hvdWxkRmFsbGJhY2sgPSByb3VuZCh3aWR0aCkgIT09IG9mZnNldFdpZHRoIHx8IHJvdW5kKGhlaWdodCkgIT09IG9mZnNldEhlaWdodDtcbiAgaWYgKHNob3VsZEZhbGxiYWNrKSB7XG4gICAgd2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICBoZWlnaHQgPSBvZmZzZXRIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJDogc2hvdWxkRmFsbGJhY2tcbiAgfTtcbn1cblxuZnVuY3Rpb24gdW53cmFwRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiAhaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5jb250ZXh0RWxlbWVudCA6IGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFNjYWxlKGVsZW1lbnQpIHtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGlmICghaXNIVE1MRWxlbWVudChkb21FbGVtZW50KSkge1xuICAgIHJldHVybiBjcmVhdGVDb29yZHMoMSk7XG4gIH1cbiAgY29uc3QgcmVjdCA9IGRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhkb21FbGVtZW50KTtcbiAgbGV0IHggPSAoJCA/IHJvdW5kKHJlY3Qud2lkdGgpIDogcmVjdC53aWR0aCkgLyB3aWR0aDtcbiAgbGV0IHkgPSAoJCA/IHJvdW5kKHJlY3QuaGVpZ2h0KSA6IHJlY3QuaGVpZ2h0KSAvIGhlaWdodDtcblxuICAvLyAwLCBOYU4sIG9yIEluZmluaXR5IHNob3VsZCBhbHdheXMgZmFsbGJhY2sgdG8gMS5cblxuICBpZiAoIXggfHwgIU51bWJlci5pc0Zpbml0ZSh4KSkge1xuICAgIHggPSAxO1xuICB9XG4gIGlmICgheSB8fCAhTnVtYmVyLmlzRmluaXRlKHkpKSB7XG4gICAgeSA9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuY29uc3Qgbm9PZmZzZXRzID0gLyojX19QVVJFX18qL2NyZWF0ZUNvb3JkcygwKTtcbmZ1bmN0aW9uIGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmICghaXNXZWJLaXQoKSB8fCAhd2luLnZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIG5vT2Zmc2V0cztcbiAgfVxuICByZXR1cm4ge1xuICAgIHg6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0LFxuICAgIHk6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3BcbiAgfTtcbn1cbmZ1bmN0aW9uIHNob3VsZEFkZFZpc3VhbE9mZnNldHMoZWxlbWVudCwgaXNGaXhlZCwgZmxvYXRpbmdPZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWQgPSBmYWxzZTtcbiAgfVxuICBpZiAoIWZsb2F0aW5nT2Zmc2V0UGFyZW50IHx8IGlzRml4ZWQgJiYgZmxvYXRpbmdPZmZzZXRQYXJlbnQgIT09IGdldFdpbmRvdyhlbGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNGaXhlZDtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cbiAgaWYgKGlzRml4ZWRTdHJhdGVneSA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZFN0cmF0ZWd5ID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSB1bndyYXBFbGVtZW50KGVsZW1lbnQpO1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGlmIChpbmNsdWRlU2NhbGUpIHtcbiAgICBpZiAob2Zmc2V0UGFyZW50KSB7XG4gICAgICBpZiAoaXNFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCB2aXN1YWxPZmZzZXRzID0gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhkb21FbGVtZW50LCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkgPyBnZXRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDApO1xuICBsZXQgeCA9IChjbGllbnRSZWN0LmxlZnQgKyB2aXN1YWxPZmZzZXRzLngpIC8gc2NhbGUueDtcbiAgbGV0IHkgPSAoY2xpZW50UmVjdC50b3AgKyB2aXN1YWxPZmZzZXRzLnkpIC8gc2NhbGUueTtcbiAgbGV0IHdpZHRoID0gY2xpZW50UmVjdC53aWR0aCAvIHNjYWxlLng7XG4gIGxldCBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlLnk7XG4gIGlmIChkb21FbGVtZW50KSB7XG4gICAgY29uc3Qgd2luID0gZ2V0V2luZG93KGRvbUVsZW1lbnQpO1xuICAgIGNvbnN0IG9mZnNldFdpbiA9IG9mZnNldFBhcmVudCAmJiBpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSA/IGdldFdpbmRvdyhvZmZzZXRQYXJlbnQpIDogb2Zmc2V0UGFyZW50O1xuICAgIGxldCBjdXJyZW50V2luID0gd2luO1xuICAgIGxldCBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIHdoaWxlIChjdXJyZW50SUZyYW1lICYmIG9mZnNldFBhcmVudCAmJiBvZmZzZXRXaW4gIT09IGN1cnJlbnRXaW4pIHtcbiAgICAgIGNvbnN0IGlmcmFtZVNjYWxlID0gZ2V0U2NhbGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBpZnJhbWVSZWN0ID0gY3VycmVudElGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBsZWZ0ID0gaWZyYW1lUmVjdC5sZWZ0ICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50TGVmdCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdMZWZ0KSkgKiBpZnJhbWVTY2FsZS54O1xuICAgICAgY29uc3QgdG9wID0gaWZyYW1lUmVjdC50b3AgKyAoY3VycmVudElGcmFtZS5jbGllbnRUb3AgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nVG9wKSkgKiBpZnJhbWVTY2FsZS55O1xuICAgICAgeCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgeSAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgd2lkdGggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIGhlaWdodCAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgeCArPSBsZWZ0O1xuICAgICAgeSArPSB0b3A7XG4gICAgICBjdXJyZW50V2luID0gZ2V0V2luZG93KGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgdG9wTGF5ZXIgPSBlbGVtZW50cyA/IGlzVG9wTGF5ZXIoZWxlbWVudHMuZmxvYXRpbmcpIDogZmFsc2U7XG4gIGlmIChvZmZzZXRQYXJlbnQgPT09IGRvY3VtZW50RWxlbWVudCB8fCB0b3BMYXllciAmJiBpc0ZpeGVkKSB7XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50KTtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUob2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogcmVjdC53aWR0aCAqIHNjYWxlLngsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAqIHNjYWxlLnksXG4gICAgeDogcmVjdC54ICogc2NhbGUueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICogc2NhbGUueCArIG9mZnNldHMueCxcbiAgICB5OiByZWN0LnkgKiBzY2FsZS55IC0gc2Nyb2xsLnNjcm9sbFRvcCAqIHNjYWxlLnkgKyBvZmZzZXRzLnlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdHMoZWxlbWVudCkge1xuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LmdldENsaWVudFJlY3RzKCkpO1xufVxuXG4vLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXG4vLyBpbmNvcnJlY3QgZm9yIFJUTC5cbmZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCwgcmVjdCkge1xuICBjb25zdCBsZWZ0U2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xuICBpZiAoIXJlY3QpIHtcbiAgICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGxlZnRTY3JvbGw7XG4gIH1cbiAgcmV0dXJuIHJlY3QubGVmdCArIGxlZnRTY3JvbGw7XG59XG5cbi8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUuXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpO1xuICBjb25zdCBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5jbGllbnRIZWlnaHQpO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICBsZXQgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIGxldCB4ID0gMDtcbiAgbGV0IHkgPSAwO1xuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcbiAgICBpZiAoIXZpc3VhbFZpZXdwb3J0QmFzZWQgfHwgdmlzdWFsVmlld3BvcnRCYXNlZCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgaW5uZXIgY2xpZW50IHJlY3QsIHN1YnRyYWN0aW5nIHNjcm9sbGJhcnMgaWYgcHJlc2VudC5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICBjb25zdCBzY2FsZSA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgPyBnZXRTY2FsZShlbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgd2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoICogc2NhbGUueDtcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xuICBjb25zdCB4ID0gbGVmdCAqIHNjYWxlLng7XG4gIGNvbnN0IHkgPSB0b3AgKiBzY2FsZS55O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkge1xuICBsZXQgcmVjdDtcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZWN0ID0gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAnZG9jdW1lbnQnKSB7XG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xuICB9IGVsc2UgaWYgKGlzRWxlbWVudChjbGlwcGluZ0FuY2VzdG9yKSkge1xuICAgIHJlY3QgPSBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCk7XG4gICAgcmVjdCA9IHtcbiAgICAgIC4uLmNsaXBwaW5nQW5jZXN0b3IsXG4gICAgICB4OiBjbGlwcGluZ0FuY2VzdG9yLnggLSB2aXN1YWxPZmZzZXRzLngsXG4gICAgICB5OiBjbGlwcGluZ0FuY2VzdG9yLnkgLSB2aXN1YWxPZmZzZXRzLnlcbiAgICB9O1xuICB9XG4gIHJldHVybiByZWN0VG9DbGllbnRSZWN0KHJlY3QpO1xufVxuZnVuY3Rpb24gaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIHN0b3BOb2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICBpZiAocGFyZW50Tm9kZSA9PT0gc3RvcE5vZGUgfHwgIWlzRWxlbWVudChwYXJlbnROb2RlKSB8fCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSkucG9zaXRpb24gPT09ICdmaXhlZCcgfHwgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKHBhcmVudE5vZGUsIHN0b3BOb2RlKTtcbn1cblxuLy8gQSBcImNsaXBwaW5nIGFuY2VzdG9yXCIgaXMgYW4gYG92ZXJmbG93YCBlbGVtZW50IHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXG4vLyBjbGlwcGluZyAob3IgaGlkaW5nKSBjaGlsZCBlbGVtZW50cy4gVGhpcyByZXR1cm5zIGFsbCBjbGlwcGluZyBhbmNlc3RvcnNcbi8vIG9mIHRoZSBnaXZlbiBlbGVtZW50IHVwIHRoZSB0cmVlLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIGNhY2hlKSB7XG4gIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlLmdldChlbGVtZW50KTtcbiAgaWYgKGNhY2hlZFJlc3VsdCkge1xuICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gIH1cbiAgbGV0IHJlc3VsdCA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnQsIFtdLCBmYWxzZSkuZmlsdGVyKGVsID0+IGlzRWxlbWVudChlbCkgJiYgZ2V0Tm9kZU5hbWUoZWwpICE9PSAnYm9keScpO1xuICBsZXQgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICBjb25zdCBlbGVtZW50SXNGaXhlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCc7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSA6IGVsZW1lbnQ7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgd2hpbGUgKGlzRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7XG4gICAgY29uc3QgY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgPSBpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSk7XG4gICAgaWYgKCFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZERyb3BDdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmICFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA6ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJyAmJiAhIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlICYmIFsnYWJzb2x1dGUnLCAnZml4ZWQnXS5pbmNsdWRlcyhjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZS5wb3NpdGlvbikgfHwgaXNPdmVyZmxvd0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgY3VycmVudE5vZGUpO1xuICAgIGlmIChzaG91bGREcm9wQ3VycmVudE5vZGUpIHtcbiAgICAgIC8vIERyb3Agbm9uLWNvbnRhaW5pbmcgYmxvY2tzLlxuICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihhbmNlc3RvciA9PiBhbmNlc3RvciAhPT0gY3VycmVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZWNvcmQgbGFzdCBjb250YWluaW5nIGJsb2NrIGZvciBuZXh0IGl0ZXJhdGlvbi5cbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICBjYWNoZS5zZXQoZWxlbWVudCwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgYW5jZXN0b3JzLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50LFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ0FuY2VzdG9ycycgPyBpc1RvcExheWVyKGVsZW1lbnQpID8gW10gOiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgdGhpcy5fYykgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICBjb25zdCBjbGlwcGluZ0FuY2VzdG9ycyA9IFsuLi5lbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMsIHJvb3RCb3VuZGFyeV07XG4gIGNvbnN0IGZpcnN0Q2xpcHBpbmdBbmNlc3RvciA9IGNsaXBwaW5nQW5jZXN0b3JzWzBdO1xuICBjb25zdCBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ0FuY2VzdG9ycy5yZWR1Y2UoKGFjY1JlY3QsIGNsaXBwaW5nQW5jZXN0b3IpID0+IHtcbiAgICBjb25zdCByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgICBhY2NSZWN0LnRvcCA9IG1heChyZWN0LnRvcCwgYWNjUmVjdC50b3ApO1xuICAgIGFjY1JlY3QucmlnaHQgPSBtaW4ocmVjdC5yaWdodCwgYWNjUmVjdC5yaWdodCk7XG4gICAgYWNjUmVjdC5ib3R0b20gPSBtaW4ocmVjdC5ib3R0b20sIGFjY1JlY3QuYm90dG9tKTtcbiAgICBhY2NSZWN0LmxlZnQgPSBtYXgocmVjdC5sZWZ0LCBhY2NSZWN0LmxlZnQpO1xuICAgIHJldHVybiBhY2NSZWN0O1xuICB9LCBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgZmlyc3RDbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjbGlwcGluZ1JlY3QucmlnaHQgLSBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICBoZWlnaHQ6IGNsaXBwaW5nUmVjdC5ib3R0b20gLSBjbGlwcGluZ1JlY3QudG9wLFxuICAgIHg6IGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIHk6IGNsaXBwaW5nUmVjdC50b3BcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGVsZW1lbnQsIG9mZnNldFBhcmVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIC8vIElmIHRoZSA8Ym9keT4gc2Nyb2xsYmFyIGFwcGVhcnMgb24gdGhlIGxlZnQgKGUuZy4gUlRMIHN5c3RlbXMpLiBVc2VcbiAgICAgIC8vIEZpcmVmb3ggd2l0aCBsYXlvdXQuc2Nyb2xsYmFyLnNpZGUgPSAzIGluIGFib3V0OmNvbmZpZyB0byB0ZXN0IHRoaXMuXG4gICAgICBvZmZzZXRzLnggPSBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGxldCBodG1sWCA9IDA7XG4gIGxldCBodG1sWSA9IDA7XG4gIGlmIChkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgY29uc3QgaHRtbFJlY3QgPSBkb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaHRtbFkgPSBodG1sUmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wO1xuICAgIGh0bWxYID0gaHRtbFJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC1cbiAgICAvLyBSVEwgPGJvZHk+IHNjcm9sbGJhci5cbiAgICBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCwgaHRtbFJlY3QpO1xuICB9XG4gIGNvbnN0IHggPSByZWN0LmxlZnQgKyBzY3JvbGwuc2Nyb2xsTGVmdCAtIG9mZnNldHMueCAtIGh0bWxYO1xuICBjb25zdCB5ID0gcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55IC0gaHRtbFk7XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNQb3NpdGlvbmVkKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnO1xufVxuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XG4gIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHBvbHlmaWxsKSB7XG4gICAgcmV0dXJuIHBvbHlmaWxsKGVsZW1lbnQpO1xuICB9XG4gIGxldCByYXdPZmZzZXRQYXJlbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDtcblxuICAvLyBGaXJlZm94IHJldHVybnMgdGhlIDxodG1sPiBlbGVtZW50IGFzIHRoZSBvZmZzZXRQYXJlbnQgaWYgaXQncyBub24tc3RhdGljLFxuICAvLyB3aGlsZSBDaHJvbWUgYW5kIFNhZmFyaSByZXR1cm4gdGhlIDxib2R5PiBlbGVtZW50LiBUaGUgPGJvZHk+IGVsZW1lbnQgbXVzdFxuICAvLyBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlIGNvcnJlY3QgY2FsY3VsYXRpb25zIGV2ZW4gaWYgdGhlIDxodG1sPiBlbGVtZW50IGlzXG4gIC8vIG5vbi1zdGF0aWMuXG4gIGlmIChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkgPT09IHJhd09mZnNldFBhcmVudCkge1xuICAgIHJhd09mZnNldFBhcmVudCA9IHJhd09mZnNldFBhcmVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cbiAgcmV0dXJuIHJhd09mZnNldFBhcmVudDtcbn1cblxuLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmIChpc1RvcExheWVyKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICBsZXQgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgICB3aGlsZSAoc3ZnT2Zmc2V0UGFyZW50ICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgaWYgKGlzRWxlbWVudChzdmdPZmZzZXRQYXJlbnQpICYmICFpc1N0YXRpY1Bvc2l0aW9uZWQoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgICByZXR1cm4gc3ZnT2Zmc2V0UGFyZW50O1xuICAgICAgfVxuICAgICAgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShzdmdPZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG4gIGxldCBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKTtcbiAgd2hpbGUgKG9mZnNldFBhcmVudCAmJiBpc1RhYmxlRWxlbWVudChvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQsIHBvbHlmaWxsKTtcbiAgfVxuICBpZiAob2Zmc2V0UGFyZW50ICYmIGlzTGFzdFRyYXZlcnNhYmxlTm9kZShvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpICYmICFpc0NvbnRhaW5pbmdCbG9jayhvZmZzZXRQYXJlbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW47XG59XG5cbmNvbnN0IGdldEVsZW1lbnRSZWN0cyA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGNvbnN0IGdldE9mZnNldFBhcmVudEZuID0gdGhpcy5nZXRPZmZzZXRQYXJlbnQgfHwgZ2V0T2Zmc2V0UGFyZW50O1xuICBjb25zdCBnZXREaW1lbnNpb25zRm4gPSB0aGlzLmdldERpbWVuc2lvbnM7XG4gIGNvbnN0IGZsb2F0aW5nRGltZW5zaW9ucyA9IGF3YWl0IGdldERpbWVuc2lvbnNGbihkYXRhLmZsb2F0aW5nKTtcbiAgcmV0dXJuIHtcbiAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGRhdGEucmVmZXJlbmNlLCBhd2FpdCBnZXRPZmZzZXRQYXJlbnRGbihkYXRhLmZsb2F0aW5nKSwgZGF0YS5zdHJhdGVneSksXG4gICAgZmxvYXRpbmc6IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwLFxuICAgICAgd2lkdGg6IGZsb2F0aW5nRGltZW5zaW9ucy53aWR0aCxcbiAgICAgIGhlaWdodDogZmxvYXRpbmdEaW1lbnNpb25zLmhlaWdodFxuICAgIH1cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzUlRMKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJztcbn1cblxuY29uc3QgcGxhdGZvcm0gPSB7XG4gIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0LFxuICBnZXREb2N1bWVudEVsZW1lbnQsXG4gIGdldENsaXBwaW5nUmVjdCxcbiAgZ2V0T2Zmc2V0UGFyZW50LFxuICBnZXRFbGVtZW50UmVjdHMsXG4gIGdldENsaWVudFJlY3RzLFxuICBnZXREaW1lbnNpb25zLFxuICBnZXRTY2FsZSxcbiAgaXNFbGVtZW50LFxuICBpc1JUTFxufTtcblxuLy8gaHR0cHM6Ly9zYW10aG9yLmF1LzIwMjEvb2JzZXJ2aW5nLWRvbS9cbmZ1bmN0aW9uIG9ic2VydmVNb3ZlKGVsZW1lbnQsIG9uTW92ZSkge1xuICBsZXQgaW8gPSBudWxsO1xuICBsZXQgdGltZW91dElkO1xuICBjb25zdCByb290ID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIHZhciBfaW87XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgKF9pbyA9IGlvKSA9PSBudWxsIHx8IF9pby5kaXNjb25uZWN0KCk7XG4gICAgaW8gPSBudWxsO1xuICB9XG4gIGZ1bmN0aW9uIHJlZnJlc2goc2tpcCwgdGhyZXNob2xkKSB7XG4gICAgaWYgKHNraXAgPT09IHZvaWQgMCkge1xuICAgICAgc2tpcCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhyZXNob2xkID09PSB2b2lkIDApIHtcbiAgICAgIHRocmVzaG9sZCA9IDE7XG4gICAgfVxuICAgIGNsZWFudXAoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXNraXApIHtcbiAgICAgIG9uTW92ZSgpO1xuICAgIH1cbiAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zZXRUb3AgPSBmbG9vcih0b3ApO1xuICAgIGNvbnN0IGluc2V0UmlnaHQgPSBmbG9vcihyb290LmNsaWVudFdpZHRoIC0gKGxlZnQgKyB3aWR0aCkpO1xuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XG4gICAgY29uc3QgaW5zZXRMZWZ0ID0gZmxvb3IobGVmdCk7XG4gICAgY29uc3Qgcm9vdE1hcmdpbiA9IC1pbnNldFRvcCArIFwicHggXCIgKyAtaW5zZXRSaWdodCArIFwicHggXCIgKyAtaW5zZXRCb3R0b20gKyBcInB4IFwiICsgLWluc2V0TGVmdCArIFwicHhcIjtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdE1hcmdpbixcbiAgICAgIHRocmVzaG9sZDogbWF4KDAsIG1pbigxLCB0aHJlc2hvbGQpKSB8fCAxXG4gICAgfTtcbiAgICBsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gaGFuZGxlT2JzZXJ2ZShlbnRyaWVzKSB7XG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgICBpZiAocmF0aW8gIT09IHRocmVzaG9sZCkge1xuICAgICAgICBpZiAoIWlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmF0aW8pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCBvZiB1cGRhdGVzLlxuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cbiAgICAvLyBlcnJvci5cbiAgICB0cnkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAvLyBIYW5kbGUgPGlmcmFtZT5zXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlvLm9ic2VydmUoZWxlbWVudCk7XG4gIH1cbiAgcmVmcmVzaCh0cnVlKTtcbiAgcmV0dXJuIGNsZWFudXA7XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cbiAqIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG1vdW50ZWQgb24gdGhlIERPTSBvclxuICogdmlzaWJsZSBvbiB0aGUgc2NyZWVuLlxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcbiAqIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG9yIGhpZGRlbiBmcm9tIHRoZSBzY3JlZW4uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1VwZGF0ZVxuICovXG5mdW5jdGlvbiBhdXRvVXBkYXRlKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXG4gICAgYW5jZXN0b3JSZXNpemUgPSB0cnVlLFxuICAgIGVsZW1lbnRSZXNpemUgPSB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgYW5pbWF0aW9uRnJhbWUgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGFuY2VzdG9yU2Nyb2xsIHx8IGFuY2VzdG9yUmVzaXplID8gWy4uLihyZWZlcmVuY2VFbCA/IGdldE92ZXJmbG93QW5jZXN0b3JzKHJlZmVyZW5jZUVsKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGNvbnN0IGNsZWFudXBJbyA9IHJlZmVyZW5jZUVsICYmIGxheW91dFNoaWZ0ID8gb2JzZXJ2ZU1vdmUocmVmZXJlbmNlRWwsIHVwZGF0ZSkgOiBudWxsO1xuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcbiAgbGV0IHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcbiAgICAgIGxldCBbZmlyc3RFbnRyeV0gPSBfcmVmO1xuICAgICAgaWYgKGZpcnN0RW50cnkgJiYgZmlyc3RFbnRyeS50YXJnZXQgPT09IHJlZmVyZW5jZUVsICYmIHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3NDBcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xuICAgICAgICByZW9ic2VydmVGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlcjtcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiAhYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xuICAgIH1cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuICBsZXQgZnJhbWVJZDtcbiAgbGV0IHByZXZSZWZSZWN0ID0gYW5pbWF0aW9uRnJhbWUgPyBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKSA6IG51bGw7XG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgIGZyYW1lTG9vcCgpO1xuICB9XG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuICAgIGlmIChwcmV2UmVmUmVjdCAmJiAobmV4dFJlZlJlY3QueCAhPT0gcHJldlJlZlJlY3QueCB8fCBuZXh0UmVmUmVjdC55ICE9PSBwcmV2UmVmUmVjdC55IHx8IG5leHRSZWZSZWN0LndpZHRoICE9PSBwcmV2UmVmUmVjdC53aWR0aCB8fCBuZXh0UmVmUmVjdC5oZWlnaHQgIT09IHByZXZSZWZSZWN0LmhlaWdodCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgXHUyMDE0XG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiIsICJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyJztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCB7IGpzeCwga2V5ZnJhbWVzLCBjc3MgYXMgY3NzJDIgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheSc7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJztcbmltcG9ydCBfdHlwZW9mIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZic7XG5pbXBvcnQgX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90YWdnZWRUZW1wbGF0ZUxpdGVyYWwnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuXG52YXIgX2V4Y2x1ZGVkJDQgPSBbXCJjbGFzc05hbWVcIiwgXCJjbGVhclZhbHVlXCIsIFwiY3hcIiwgXCJnZXRTdHlsZXNcIiwgXCJnZXRDbGFzc05hbWVzXCIsIFwiZ2V0VmFsdWVcIiwgXCJoYXNWYWx1ZVwiLCBcImlzTXVsdGlcIiwgXCJpc1J0bFwiLCBcIm9wdGlvbnNcIiwgXCJzZWxlY3RPcHRpb25cIiwgXCJzZWxlY3RQcm9wc1wiLCBcInNldFZhbHVlXCIsIFwidGhlbWVcIl07XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5PIE9QXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIG5vb3AgPSBmdW5jdGlvbiBub29wKCkge307XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xhc3MgTmFtZSBQcmVmaXhlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjb21wb25lbnQgc3RhdGUgZm9yIHN0eWxpbmcgd2l0aCBjbGFzcyBuYW1lcy5cblxuIEV4cGVjdHMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBPUiBhIHN0cmluZy9vYmplY3QgcGFpcjpcbiAtIGNsYXNzTmFtZShbJ2NvbXAnLCAnY29tcC1hcmcnLCAnY29tcC1hcmctMiddKVxuICAgQHJldHVybnMgJ3JlYWN0LXNlbGVjdF9fY29tcCByZWFjdC1zZWxlY3RfX2NvbXAtYXJnIHJlYWN0LXNlbGVjdF9fY29tcC1hcmctMidcbiAtIGNsYXNzTmFtZSgnY29tcCcsIHsgc29tZTogdHJ1ZSwgc3RhdGU6IGZhbHNlIH0pXG4gICBAcmV0dXJucyAncmVhY3Qtc2VsZWN0X19jb21wIHJlYWN0LXNlbGVjdF9fY29tcC0tc29tZSdcbiovXG5mdW5jdGlvbiBhcHBseVByZWZpeFRvTmFtZShwcmVmaXgsIG5hbWUpIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgcmV0dXJuIHByZWZpeDtcbiAgfSBlbHNlIGlmIChuYW1lWzBdID09PSAnLScpIHtcbiAgICByZXR1cm4gcHJlZml4ICsgbmFtZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcHJlZml4ICsgJ19fJyArIG5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNsYXNzTmFtZXMocHJlZml4LCBzdGF0ZSkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgY2xhc3NOYW1lTGlzdCA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgY2xhc3NOYW1lTGlzdFtfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgdmFyIGFyciA9IFtdLmNvbmNhdChjbGFzc05hbWVMaXN0KTtcbiAgaWYgKHN0YXRlICYmIHByZWZpeCkge1xuICAgIGZvciAodmFyIGtleSBpbiBzdGF0ZSkge1xuICAgICAgaWYgKHN0YXRlLmhhc093blByb3BlcnR5KGtleSkgJiYgc3RhdGVba2V5XSkge1xuICAgICAgICBhcnIucHVzaChcIlwiLmNvbmNhdChhcHBseVByZWZpeFRvTmFtZShwcmVmaXgsIGtleSkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFyci5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfSkubWFwKGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIFN0cmluZyhpKS50cmltKCk7XG4gIH0pLmpvaW4oJyAnKTtcbn1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xlYW4gVmFsdWVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY2xlYW5WYWx1ZSA9IGZ1bmN0aW9uIGNsZWFuVmFsdWUodmFsdWUpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWUuZmlsdGVyKEJvb2xlYW4pO1xuICBpZiAoX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSByZXR1cm4gW3ZhbHVlXTtcbiAgcmV0dXJuIFtdO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDbGVhbiBDb21tb24gUHJvcHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY2xlYW5Db21tb25Qcm9wcyA9IGZ1bmN0aW9uIGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpIHtcbiAgLy9jbGFzc05hbWVcbiAgcHJvcHMuY2xhc3NOYW1lO1xuICAgIHByb3BzLmNsZWFyVmFsdWU7XG4gICAgcHJvcHMuY3g7XG4gICAgcHJvcHMuZ2V0U3R5bGVzO1xuICAgIHByb3BzLmdldENsYXNzTmFtZXM7XG4gICAgcHJvcHMuZ2V0VmFsdWU7XG4gICAgcHJvcHMuaGFzVmFsdWU7XG4gICAgcHJvcHMuaXNNdWx0aTtcbiAgICBwcm9wcy5pc1J0bDtcbiAgICBwcm9wcy5vcHRpb25zO1xuICAgIHByb3BzLnNlbGVjdE9wdGlvbjtcbiAgICBwcm9wcy5zZWxlY3RQcm9wcztcbiAgICBwcm9wcy5zZXRWYWx1ZTtcbiAgICBwcm9wcy50aGVtZTtcbiAgICB2YXIgaW5uZXJQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkJDQpO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7fSwgaW5uZXJQcm9wcyk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdldCBTdHlsZSBQcm9wc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBnZXRTdHlsZVByb3BzID0gZnVuY3Rpb24gZ2V0U3R5bGVQcm9wcyhwcm9wcywgbmFtZSwgY2xhc3NOYW1lc1N0YXRlKSB7XG4gIHZhciBjeCA9IHByb3BzLmN4LFxuICAgIGdldFN0eWxlcyA9IHByb3BzLmdldFN0eWxlcyxcbiAgICBnZXRDbGFzc05hbWVzID0gcHJvcHMuZ2V0Q2xhc3NOYW1lcyxcbiAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gIHJldHVybiB7XG4gICAgY3NzOiBnZXRTdHlsZXMobmFtZSwgcHJvcHMpLFxuICAgIGNsYXNzTmFtZTogY3goY2xhc3NOYW1lc1N0YXRlICE9PSBudWxsICYmIGNsYXNzTmFtZXNTdGF0ZSAhPT0gdm9pZCAwID8gY2xhc3NOYW1lc1N0YXRlIDoge30sIGdldENsYXNzTmFtZXMobmFtZSwgcHJvcHMpLCBjbGFzc05hbWUpXG4gIH07XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhhbmRsZSBJbnB1dCBDaGFuZ2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBoYW5kbGVJbnB1dENoYW5nZShpbnB1dFZhbHVlLCBhY3Rpb25NZXRhLCBvbklucHV0Q2hhbmdlKSB7XG4gIGlmIChvbklucHV0Q2hhbmdlKSB7XG4gICAgdmFyIF9uZXdWYWx1ZSA9IG9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSk7XG4gICAgaWYgKHR5cGVvZiBfbmV3VmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gX25ld1ZhbHVlO1xuICB9XG4gIHJldHVybiBpbnB1dFZhbHVlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNjcm9sbCBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaXNEb2N1bWVudEVsZW1lbnQoZWwpIHtcbiAgcmV0dXJuIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIGRvY3VtZW50LmJvZHksIHdpbmRvd10uaW5kZXhPZihlbCkgPiAtMTtcbn1cblxuLy8gTm9ybWFsaXplZCBTY3JvbGwgVG9wXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gbm9ybWFsaXplZEhlaWdodChlbCkge1xuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgfVxuICByZXR1cm4gZWwuY2xpZW50SGVpZ2h0O1xufVxuXG4vLyBOb3JtYWxpemVkIHNjcm9sbFRvICYgc2Nyb2xsVG9wXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsVG9wKGVsKSB7XG4gIGlmIChpc0RvY3VtZW50RWxlbWVudChlbCkpIHtcbiAgICByZXR1cm4gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICB9XG4gIHJldHVybiBlbC5zY3JvbGxUb3A7XG59XG5mdW5jdGlvbiBzY3JvbGxUbyhlbCwgdG9wKSB7XG4gIC8vIHdpdGggYSBzY3JvbGwgZGlzdGFuY2UsIHdlIHBlcmZvcm0gc2Nyb2xsIG9uIHRoZSBlbGVtZW50XG4gIGlmIChpc0RvY3VtZW50RWxlbWVudChlbCkpIHtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgdG9wKTtcbiAgICByZXR1cm47XG4gIH1cbiAgZWwuc2Nyb2xsVG9wID0gdG9wO1xufVxuXG4vLyBHZXQgU2Nyb2xsIFBhcmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIHZhciBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHZhciBleGNsdWRlU3RhdGljUGFyZW50ID0gc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZSc7XG4gIHZhciBvdmVyZmxvd1J4ID0gLyhhdXRvfHNjcm9sbCkvO1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIGZvciAodmFyIHBhcmVudCA9IGVsZW1lbnQ7IHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50Oykge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpO1xuICAgIGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1J4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xufVxuXG4vLyBBbmltYXRlZCBTY3JvbGwgVG9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAgQHBhcmFtIHQ6IHRpbWUgKGVsYXBzZWQpXG4gIEBwYXJhbSBiOiBpbml0aWFsIHZhbHVlXG4gIEBwYXJhbSBjOiBhbW91bnQgb2YgY2hhbmdlXG4gIEBwYXJhbSBkOiBkdXJhdGlvblxuKi9cbmZ1bmN0aW9uIGVhc2VPdXRDdWJpYyh0LCBiLCBjLCBkKSB7XG4gIHJldHVybiBjICogKCh0ID0gdCAvIGQgLSAxKSAqIHQgKiB0ICsgMSkgKyBiO1xufVxuZnVuY3Rpb24gYW5pbWF0ZWRTY3JvbGxUbyhlbGVtZW50LCB0bykge1xuICB2YXIgZHVyYXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDIwMDtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBub29wO1xuICB2YXIgc3RhcnQgPSBnZXRTY3JvbGxUb3AoZWxlbWVudCk7XG4gIHZhciBjaGFuZ2UgPSB0byAtIHN0YXJ0O1xuICB2YXIgaW5jcmVtZW50ID0gMTA7XG4gIHZhciBjdXJyZW50VGltZSA9IDA7XG4gIGZ1bmN0aW9uIGFuaW1hdGVTY3JvbGwoKSB7XG4gICAgY3VycmVudFRpbWUgKz0gaW5jcmVtZW50O1xuICAgIHZhciB2YWwgPSBlYXNlT3V0Q3ViaWMoY3VycmVudFRpbWUsIHN0YXJ0LCBjaGFuZ2UsIGR1cmF0aW9uKTtcbiAgICBzY3JvbGxUbyhlbGVtZW50LCB2YWwpO1xuICAgIGlmIChjdXJyZW50VGltZSA8IGR1cmF0aW9uKSB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGVTY3JvbGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgYW5pbWF0ZVNjcm9sbCgpO1xufVxuXG4vLyBTY3JvbGwgSW50byBWaWV3XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gc2Nyb2xsSW50b1ZpZXcobWVudUVsLCBmb2N1c2VkRWwpIHtcbiAgdmFyIG1lbnVSZWN0ID0gbWVudUVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgZm9jdXNlZFJlY3QgPSBmb2N1c2VkRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBvdmVyU2Nyb2xsID0gZm9jdXNlZEVsLm9mZnNldEhlaWdodCAvIDM7XG4gIGlmIChmb2N1c2VkUmVjdC5ib3R0b20gKyBvdmVyU2Nyb2xsID4gbWVudVJlY3QuYm90dG9tKSB7XG4gICAgc2Nyb2xsVG8obWVudUVsLCBNYXRoLm1pbihmb2N1c2VkRWwub2Zmc2V0VG9wICsgZm9jdXNlZEVsLmNsaWVudEhlaWdodCAtIG1lbnVFbC5vZmZzZXRIZWlnaHQgKyBvdmVyU2Nyb2xsLCBtZW51RWwuc2Nyb2xsSGVpZ2h0KSk7XG4gIH0gZWxzZSBpZiAoZm9jdXNlZFJlY3QudG9wIC0gb3ZlclNjcm9sbCA8IG1lbnVSZWN0LnRvcCkge1xuICAgIHNjcm9sbFRvKG1lbnVFbCwgTWF0aC5tYXgoZm9jdXNlZEVsLm9mZnNldFRvcCAtIG92ZXJTY3JvbGwsIDApKTtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdldCBib3VuZGluZyBjbGllbnQgb2JqZWN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gY2Fubm90IGdldCBrZXlzIHVzaW5nIGFycmF5IG5vdGF0aW9uIHdpdGggRE9NUmVjdFxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRPYmooZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiByZWN0LmJvdHRvbSxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IHJlY3QubGVmdCxcbiAgICByaWdodDogcmVjdC5yaWdodCxcbiAgICB0b3A6IHJlY3QudG9wLFxuICAgIHdpZHRoOiByZWN0LndpZHRoXG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVG91Y2ggQ2FwYWJpbGl0eSBEZXRlY3RvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzVG91Y2hDYXBhYmxlKCkge1xuICB0cnkge1xuICAgIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdUb3VjaEV2ZW50Jyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2JpbGUgRGV2aWNlIERldGVjdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaXNNb2JpbGVEZXZpY2UoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhc3NpdmUgRXZlbnQgRGV0ZWN0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmFmZ3JhcGgvZGV0ZWN0LWl0L2Jsb2IvbWFpbi9zcmMvaW5kZXgudHMjTDE5LUwzNlxudmFyIHBhc3NpdmVPcHRpb25BY2Nlc3NlZCA9IGZhbHNlO1xudmFyIG9wdGlvbnMgPSB7XG4gIGdldCBwYXNzaXZlKCkge1xuICAgIHJldHVybiBwYXNzaXZlT3B0aW9uQWNjZXNzZWQgPSB0cnVlO1xuICB9XG59O1xuLy8gY2hlY2sgZm9yIFNTUlxudmFyIHcgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHt9O1xuaWYgKHcuYWRkRXZlbnRMaXN0ZW5lciAmJiB3LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgdy5hZGRFdmVudExpc3RlbmVyKCdwJywgbm9vcCwgb3B0aW9ucyk7XG4gIHcucmVtb3ZlRXZlbnRMaXN0ZW5lcigncCcsIG5vb3AsIGZhbHNlKTtcbn1cbnZhciBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPSBwYXNzaXZlT3B0aW9uQWNjZXNzZWQ7XG5mdW5jdGlvbiBub3ROdWxsaXNoKGl0ZW0pIHtcbiAgcmV0dXJuIGl0ZW0gIT0gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFyZyk7XG59XG5mdW5jdGlvbiB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbXVsdGlWYWx1ZSwgc2luZ2xlVmFsdWUpIHtcbiAgcmV0dXJuIGlzTXVsdGkgPyBtdWx0aVZhbHVlIDogc2luZ2xlVmFsdWU7XG59XG5mdW5jdGlvbiBzaW5nbGVWYWx1ZUFzVmFsdWUoc2luZ2xlVmFsdWUpIHtcbiAgcmV0dXJuIHNpbmdsZVZhbHVlO1xufVxuZnVuY3Rpb24gbXVsdGlWYWx1ZUFzVmFsdWUobXVsdGlWYWx1ZSkge1xuICByZXR1cm4gbXVsdGlWYWx1ZTtcbn1cbnZhciByZW1vdmVQcm9wcyA9IGZ1bmN0aW9uIHJlbW92ZVByb3BzKHByb3BzT2JqKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgcHJvcGVydGllcyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgcHJvcGVydGllc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuICB2YXIgcHJvcHNNYXAgPSBPYmplY3QuZW50cmllcyhwcm9wc09iaikuZmlsdGVyKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIF9yZWYyID0gX3NsaWNlZFRvQXJyYXkoX3JlZiwgMSksXG4gICAgICBrZXkgPSBfcmVmMlswXTtcbiAgICByZXR1cm4gIXByb3BlcnRpZXMuaW5jbHVkZXMoa2V5KTtcbiAgfSk7XG4gIHJldHVybiBwcm9wc01hcC5yZWR1Y2UoZnVuY3Rpb24gKG5ld1Byb3BzLCBfcmVmMykge1xuICAgIHZhciBfcmVmNCA9IF9zbGljZWRUb0FycmF5KF9yZWYzLCAyKSxcbiAgICAgIGtleSA9IF9yZWY0WzBdLFxuICAgICAgdmFsID0gX3JlZjRbMV07XG4gICAgbmV3UHJvcHNba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gbmV3UHJvcHM7XG4gIH0sIHt9KTtcbn07XG5cbnZhciBfZXhjbHVkZWQkMyA9IFtcImNoaWxkcmVuXCIsIFwiaW5uZXJQcm9wc1wiXSxcbiAgX2V4Y2x1ZGVkMiQxID0gW1wiY2hpbGRyZW5cIiwgXCJpbm5lclByb3BzXCJdO1xuZnVuY3Rpb24gZ2V0TWVudVBsYWNlbWVudChfcmVmKSB7XG4gIHZhciBwcmVmZXJyZWRNYXhIZWlnaHQgPSBfcmVmLm1heEhlaWdodCxcbiAgICBtZW51RWwgPSBfcmVmLm1lbnVFbCxcbiAgICBtaW5IZWlnaHQgPSBfcmVmLm1pbkhlaWdodCxcbiAgICBwcmVmZXJyZWRQbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudCxcbiAgICBzaG91bGRTY3JvbGwgPSBfcmVmLnNob3VsZFNjcm9sbCxcbiAgICBpc0ZpeGVkUG9zaXRpb24gPSBfcmVmLmlzRml4ZWRQb3NpdGlvbixcbiAgICBjb250cm9sSGVpZ2h0ID0gX3JlZi5jb250cm9sSGVpZ2h0O1xuICB2YXIgc2Nyb2xsUGFyZW50ID0gZ2V0U2Nyb2xsUGFyZW50KG1lbnVFbCk7XG4gIHZhciBkZWZhdWx0U3RhdGUgPSB7XG4gICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICB9O1xuXG4gIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nLCByZXR1cm4gZGVmYXVsdCBzdGF0ZVxuICBpZiAoIW1lbnVFbCB8fCAhbWVudUVsLm9mZnNldFBhcmVudCkgcmV0dXJuIGRlZmF1bHRTdGF0ZTtcblxuICAvLyB3ZSBjYW4ndCB0cnVzdCBgc2Nyb2xsUGFyZW50LnNjcm9sbEhlaWdodGAgLS0+IGl0IG1heSBpbmNyZWFzZSB3aGVuXG4gIC8vIHRoZSBtZW51IGlzIHJlbmRlcmVkXG4gIHZhciBfc2Nyb2xsUGFyZW50JGdldEJvdW4gPSBzY3JvbGxQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgc2Nyb2xsSGVpZ2h0ID0gX3Njcm9sbFBhcmVudCRnZXRCb3VuLmhlaWdodDtcbiAgdmFyIF9tZW51RWwkZ2V0Qm91bmRpbmdDbCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICBtZW51Qm90dG9tID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLmJvdHRvbSxcbiAgICBtZW51SGVpZ2h0ID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLmhlaWdodCxcbiAgICBtZW51VG9wID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLnRvcDtcbiAgdmFyIF9tZW51RWwkb2Zmc2V0UGFyZW50JCA9IG1lbnVFbC5vZmZzZXRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgY29udGFpbmVyVG9wID0gX21lbnVFbCRvZmZzZXRQYXJlbnQkLnRvcDtcbiAgdmFyIHZpZXdIZWlnaHQgPSBpc0ZpeGVkUG9zaXRpb24gPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiBub3JtYWxpemVkSGVpZ2h0KHNjcm9sbFBhcmVudCk7XG4gIHZhciBzY3JvbGxUb3AgPSBnZXRTY3JvbGxUb3Aoc2Nyb2xsUGFyZW50KTtcbiAgdmFyIG1hcmdpbkJvdHRvbSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUobWVudUVsKS5tYXJnaW5Cb3R0b20sIDEwKTtcbiAgdmFyIG1hcmdpblRvcCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUobWVudUVsKS5tYXJnaW5Ub3AsIDEwKTtcbiAgdmFyIHZpZXdTcGFjZUFib3ZlID0gY29udGFpbmVyVG9wIC0gbWFyZ2luVG9wO1xuICB2YXIgdmlld1NwYWNlQmVsb3cgPSB2aWV3SGVpZ2h0IC0gbWVudVRvcDtcbiAgdmFyIHNjcm9sbFNwYWNlQWJvdmUgPSB2aWV3U3BhY2VBYm92ZSArIHNjcm9sbFRvcDtcbiAgdmFyIHNjcm9sbFNwYWNlQmVsb3cgPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBtZW51VG9wO1xuICB2YXIgc2Nyb2xsRG93biA9IG1lbnVCb3R0b20gLSB2aWV3SGVpZ2h0ICsgc2Nyb2xsVG9wICsgbWFyZ2luQm90dG9tO1xuICB2YXIgc2Nyb2xsVXAgPSBzY3JvbGxUb3AgKyBtZW51VG9wIC0gbWFyZ2luVG9wO1xuICB2YXIgc2Nyb2xsRHVyYXRpb24gPSAxNjA7XG4gIHN3aXRjaCAocHJlZmVycmVkUGxhY2VtZW50KSB7XG4gICAgY2FzZSAnYXV0byc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIC8vIDE6IHRoZSBtZW51IHdpbGwgZml0LCBkbyBub3RoaW5nXG4gICAgICBpZiAodmlld1NwYWNlQmVsb3cgPj0gbWVudUhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gMjogdGhlIG1lbnUgd2lsbCBmaXQsIGlmIHNjcm9sbGVkXG4gICAgICBpZiAoc2Nyb2xsU3BhY2VCZWxvdyA+PSBtZW51SGVpZ2h0ICYmICFpc0ZpeGVkUG9zaXRpb24pIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxEb3duLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDM6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBjb25zdHJhaW5lZFxuICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VCZWxvdyA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUJlbG93ID49IG1pbkhlaWdodCkge1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbERvd24sIHNjcm9sbER1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlIHdhbnQgdG8gcHJvdmlkZSBhcyBtdWNoIG9mIHRoZSBtZW51IGFzIHBvc3NpYmxlIHRvIHRoZSB1c2VyLFxuICAgICAgICAvLyBzbyBnaXZlIHRoZW0gd2hhdGV2ZXIgaXMgYXZhaWxhYmxlIGJlbG93IHJhdGhlciB0aGFuIHRoZSBtaW5IZWlnaHQuXG4gICAgICAgIHZhciBjb25zdHJhaW5lZEhlaWdodCA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUJlbG93IC0gbWFyZ2luQm90dG9tIDogc2Nyb2xsU3BhY2VCZWxvdyAtIG1hcmdpbkJvdHRvbTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogY29uc3RyYWluZWRIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gNC4gRm9ya2VkIGJldmlvdXIgd2hlbiB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgYmVsb3dcblxuICAgICAgLy8gQVVUTzogZmxpcCB0aGUgbWVudSwgcmVuZGVyIGFib3ZlXG4gICAgICBpZiAocHJlZmVycmVkUGxhY2VtZW50ID09PSAnYXV0bycgfHwgaXNGaXhlZFBvc2l0aW9uKSB7XG4gICAgICAgIC8vIG1heSBuZWVkIHRvIGJlIGNvbnN0cmFpbmVkIGFmdGVyIGZsaXBwaW5nXG4gICAgICAgIHZhciBfY29uc3RyYWluZWRIZWlnaHQgPSBwcmVmZXJyZWRNYXhIZWlnaHQ7XG4gICAgICAgIHZhciBzcGFjZUFib3ZlID0gaXNGaXhlZFBvc2l0aW9uID8gdmlld1NwYWNlQWJvdmUgOiBzY3JvbGxTcGFjZUFib3ZlO1xuICAgICAgICBpZiAoc3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgICBfY29uc3RyYWluZWRIZWlnaHQgPSBNYXRoLm1pbihzcGFjZUFib3ZlIC0gbWFyZ2luQm90dG9tIC0gY29udHJvbEhlaWdodCwgcHJlZmVycmVkTWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBfY29uc3RyYWluZWRIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gQk9UVE9NOiBhbGxvdyBicm93c2VyIHRvIGluY3JlYXNlIHNjcm9sbGFibGUgYXJlYSBhbmQgaW1tZWRpYXRlbHkgc2V0IHNjcm9sbFxuICAgICAgaWYgKHByZWZlcnJlZFBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIHNjcm9sbFRvKHNjcm9sbFBhcmVudCwgc2Nyb2xsRG93bik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgLy8gMTogdGhlIG1lbnUgd2lsbCBmaXQsIGRvIG5vdGhpbmdcbiAgICAgIGlmICh2aWV3U3BhY2VBYm92ZSA+PSBtZW51SGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAyOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgc2Nyb2xsZWRcbiAgICAgIGlmIChzY3JvbGxTcGFjZUFib3ZlID49IG1lbnVIZWlnaHQgJiYgIWlzRml4ZWRQb3NpdGlvbikge1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbFVwLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDM6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBjb25zdHJhaW5lZFxuICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUFib3ZlID49IG1pbkhlaWdodCkge1xuICAgICAgICB2YXIgX2NvbnN0cmFpbmVkSGVpZ2h0MiA9IHByZWZlcnJlZE1heEhlaWdodDtcblxuICAgICAgICAvLyB3ZSB3YW50IHRvIHByb3ZpZGUgYXMgbXVjaCBvZiB0aGUgbWVudSBhcyBwb3NzaWJsZSB0byB0aGUgdXNlcixcbiAgICAgICAgLy8gc28gZ2l2ZSB0aGVtIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBiZWxvdyByYXRoZXIgdGhhbiB0aGUgbWluSGVpZ2h0LlxuICAgICAgICBpZiAoIWlzRml4ZWRQb3NpdGlvbiAmJiBzY3JvbGxTcGFjZUFib3ZlID49IG1pbkhlaWdodCB8fCBpc0ZpeGVkUG9zaXRpb24gJiYgdmlld1NwYWNlQWJvdmUgPj0gbWluSGVpZ2h0KSB7XG4gICAgICAgICAgX2NvbnN0cmFpbmVkSGVpZ2h0MiA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUFib3ZlIC0gbWFyZ2luVG9wIDogc2Nyb2xsU3BhY2VBYm92ZSAtIG1hcmdpblRvcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbFVwLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogX2NvbnN0cmFpbmVkSGVpZ2h0MlxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyA0LiBub3QgZW5vdWdoIHNwYWNlLCB0aGUgYnJvd3NlciBXSUxMIE5PVCBpbmNyZWFzZSBzY3JvbGxhYmxlIGFyZWEgd2hlblxuICAgICAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnQgcmVuZGVyZWQgYWJvdmUgdGhlIHZpZXdwb3J0IChvbmx5IGJlbG93KS5cbiAgICAgIC8vIEZsaXAgdGhlIG1lbnUsIHJlbmRlciBiZWxvd1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcGxhY2VtZW50IHByb3ZpZGVkIFxcXCJcIi5jb25jYXQocHJlZmVycmVkUGxhY2VtZW50LCBcIlxcXCIuXCIpKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFN0YXRlO1xufVxuXG4vLyBNZW51IENvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGFsaWduVG9Db250cm9sKHBsYWNlbWVudCkge1xuICB2YXIgcGxhY2VtZW50VG9DU1NQcm9wID0ge1xuICAgIGJvdHRvbTogJ3RvcCcsXG4gICAgdG9wOiAnYm90dG9tJ1xuICB9O1xuICByZXR1cm4gcGxhY2VtZW50ID8gcGxhY2VtZW50VG9DU1NQcm9wW3BsYWNlbWVudF0gOiAnYm90dG9tJztcbn1cbnZhciBjb2VyY2VQbGFjZW1lbnQgPSBmdW5jdGlvbiBjb2VyY2VQbGFjZW1lbnQocCkge1xuICByZXR1cm4gcCA9PT0gJ2F1dG8nID8gJ2JvdHRvbScgOiBwO1xufTtcbnZhciBtZW51Q1NTID0gZnVuY3Rpb24gbWVudUNTUyhfcmVmMiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9vYmplY3RTcHJlYWQyO1xuICB2YXIgcGxhY2VtZW50ID0gX3JlZjIucGxhY2VtZW50LFxuICAgIF9yZWYyJHRoZW1lID0gX3JlZjIudGhlbWUsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZjIkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIHNwYWNpbmcgPSBfcmVmMiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYyJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoKF9vYmplY3RTcHJlYWQyID0ge1xuICAgIGxhYmVsOiAnbWVudSdcbiAgfSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBhbGlnblRvQ29udHJvbChwbGFjZW1lbnQpLCAnMTAwJScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwicG9zaXRpb25cIiwgJ2Fic29sdXRlJyksIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgXCJ3aWR0aFwiLCAnMTAwJScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwiekluZGV4XCIsIDEpLCBfb2JqZWN0U3ByZWFkMiksIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMubmV1dHJhbDAsXG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMsXG4gICAgYm94U2hhZG93OiAnMCAwIDAgMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjEpLCAwIDRweCAxMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjEpJyxcbiAgICBtYXJnaW5Cb3R0b206IHNwYWNpbmcubWVudUd1dHRlcixcbiAgICBtYXJnaW5Ub3A6IHNwYWNpbmcubWVudUd1dHRlclxuICB9KTtcbn07XG52YXIgUG9ydGFsUGxhY2VtZW50Q29udGV4dCA9IC8qI19fUFVSRV9fKi9jcmVhdGVDb250ZXh0KG51bGwpO1xuXG4vLyBOT1RFOiBpbnRlcm5hbCBvbmx5XG52YXIgTWVudVBsYWNlciA9IGZ1bmN0aW9uIE1lbnVQbGFjZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgbWluTWVudUhlaWdodCA9IHByb3BzLm1pbk1lbnVIZWlnaHQsXG4gICAgbWF4TWVudUhlaWdodCA9IHByb3BzLm1heE1lbnVIZWlnaHQsXG4gICAgbWVudVBsYWNlbWVudCA9IHByb3BzLm1lbnVQbGFjZW1lbnQsXG4gICAgbWVudVBvc2l0aW9uID0gcHJvcHMubWVudVBvc2l0aW9uLFxuICAgIG1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyA9IHByb3BzLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICB0aGVtZSA9IHByb3BzLnRoZW1lO1xuICB2YXIgX3JlZjMgPSB1c2VDb250ZXh0KFBvcnRhbFBsYWNlbWVudENvbnRleHQpIHx8IHt9LFxuICAgIHNldFBvcnRhbFBsYWNlbWVudCA9IF9yZWYzLnNldFBvcnRhbFBsYWNlbWVudDtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKG1heE1lbnVIZWlnaHQpLFxuICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgIG1heEhlaWdodCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgc2V0TWF4SGVpZ2h0ID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShudWxsKSxcbiAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgcGxhY2VtZW50ID0gX3VzZVN0YXRlNFswXSxcbiAgICBzZXRQbGFjZW1lbnQgPSBfdXNlU3RhdGU0WzFdO1xuICB2YXIgY29udHJvbEhlaWdodCA9IHRoZW1lLnNwYWNpbmcuY29udHJvbEhlaWdodDtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbWVudUVsID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51RWwpIHJldHVybjtcblxuICAgIC8vIERPIE5PVCBzY3JvbGwgaWYgcG9zaXRpb24gaXMgZml4ZWRcbiAgICB2YXIgaXNGaXhlZFBvc2l0aW9uID0gbWVudVBvc2l0aW9uID09PSAnZml4ZWQnO1xuICAgIHZhciBzaG91bGRTY3JvbGwgPSBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgJiYgIWlzRml4ZWRQb3NpdGlvbjtcbiAgICB2YXIgc3RhdGUgPSBnZXRNZW51UGxhY2VtZW50KHtcbiAgICAgIG1heEhlaWdodDogbWF4TWVudUhlaWdodCxcbiAgICAgIG1lbnVFbDogbWVudUVsLFxuICAgICAgbWluSGVpZ2h0OiBtaW5NZW51SGVpZ2h0LFxuICAgICAgcGxhY2VtZW50OiBtZW51UGxhY2VtZW50LFxuICAgICAgc2hvdWxkU2Nyb2xsOiBzaG91bGRTY3JvbGwsXG4gICAgICBpc0ZpeGVkUG9zaXRpb246IGlzRml4ZWRQb3NpdGlvbixcbiAgICAgIGNvbnRyb2xIZWlnaHQ6IGNvbnRyb2xIZWlnaHRcbiAgICB9KTtcbiAgICBzZXRNYXhIZWlnaHQoc3RhdGUubWF4SGVpZ2h0KTtcbiAgICBzZXRQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KTtcbiAgICBzZXRQb3J0YWxQbGFjZW1lbnQgPT09IG51bGwgfHwgc2V0UG9ydGFsUGxhY2VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXRQb3J0YWxQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KTtcbiAgfSwgW21heE1lbnVIZWlnaHQsIG1lbnVQbGFjZW1lbnQsIG1lbnVQb3NpdGlvbiwgbWVudVNob3VsZFNjcm9sbEludG9WaWV3LCBtaW5NZW51SGVpZ2h0LCBzZXRQb3J0YWxQbGFjZW1lbnQsIGNvbnRyb2xIZWlnaHRdKTtcbiAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICByZWY6IHJlZixcbiAgICBwbGFjZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBwcm9wcyksIHt9LCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCB8fCBjb2VyY2VQbGFjZW1lbnQobWVudVBsYWNlbWVudCksXG4gICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodFxuICAgIH0pXG4gIH0pO1xufTtcbnZhciBNZW51ID0gZnVuY3Rpb24gTWVudShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbWVudScsIHtcbiAgICBtZW51OiB0cnVlXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBNZW51JDEgPSBNZW51O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lbnUgTGlzdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBtZW51TGlzdENTUyA9IGZ1bmN0aW9uIG1lbnVMaXN0Q1NTKF9yZWY0LCB1bnN0eWxlZCkge1xuICB2YXIgbWF4SGVpZ2h0ID0gX3JlZjQubWF4SGVpZ2h0LFxuICAgIGJhc2VVbml0ID0gX3JlZjQudGhlbWUuc3BhY2luZy5iYXNlVW5pdDtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIG1heEhlaWdodDogbWF4SGVpZ2h0LFxuICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIC8vIHJlcXVpcmVkIGZvciBvZmZzZXRbSGVpZ2h0LCBUb3BdID4ga2V5Ym9hcmQgc2Nyb2xsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nQm90dG9tOiBiYXNlVW5pdCxcbiAgICBwYWRkaW5nVG9wOiBiYXNlVW5pdFxuICB9KTtcbn07XG52YXIgTWVudUxpc3QgPSBmdW5jdGlvbiBNZW51TGlzdChwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbWVudUxpc3QnLCB7XG4gICAgJ21lbnUtbGlzdCc6IHRydWUsXG4gICAgJ21lbnUtbGlzdC0taXMtbXVsdGknOiBpc011bHRpXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IE5vdGljZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbm90aWNlQ1NTID0gZnVuY3Rpb24gbm90aWNlQ1NTKF9yZWY1LCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWY1JHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjUkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgdGV4dEFsaWduOiAnY2VudGVyJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgIHBhZGRpbmc6IFwiXCIuY29uY2F0KGJhc2VVbml0ICogMiwgXCJweCBcIikuY29uY2F0KGJhc2VVbml0ICogMywgXCJweFwiKVxuICB9KTtcbn07XG52YXIgbm9PcHRpb25zTWVzc2FnZUNTUyA9IG5vdGljZUNTUztcbnZhciBsb2FkaW5nTWVzc2FnZUNTUyA9IG5vdGljZUNTUztcbnZhciBOb09wdGlvbnNNZXNzYWdlID0gZnVuY3Rpb24gTm9PcHRpb25zTWVzc2FnZShfcmVmNikge1xuICB2YXIgX3JlZjYkY2hpbGRyZW4gPSBfcmVmNi5jaGlsZHJlbixcbiAgICBjaGlsZHJlbiA9IF9yZWY2JGNoaWxkcmVuID09PSB2b2lkIDAgPyAnTm8gb3B0aW9ucycgOiBfcmVmNiRjaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjYuaW5uZXJQcm9wcyxcbiAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjYsIF9leGNsdWRlZCQzKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJlc3RQcm9wcyksIHt9LCB7XG4gICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHNcbiAgfSksICdub09wdGlvbnNNZXNzYWdlJywge1xuICAgICdtZW51LW5vdGljZSc6IHRydWUsXG4gICAgJ21lbnUtbm90aWNlLS1uby1vcHRpb25zJzogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgTG9hZGluZ01lc3NhZ2UgPSBmdW5jdGlvbiBMb2FkaW5nTWVzc2FnZShfcmVmNykge1xuICB2YXIgX3JlZjckY2hpbGRyZW4gPSBfcmVmNy5jaGlsZHJlbixcbiAgICBjaGlsZHJlbiA9IF9yZWY3JGNoaWxkcmVuID09PSB2b2lkIDAgPyAnTG9hZGluZy4uLicgOiBfcmVmNyRjaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjcuaW5uZXJQcm9wcyxcbiAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjcsIF9leGNsdWRlZDIkMSk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBpbm5lclByb3BzOiBpbm5lclByb3BzXG4gIH0pLCAnbG9hZGluZ01lc3NhZ2UnLCB7XG4gICAgJ21lbnUtbm90aWNlJzogdHJ1ZSxcbiAgICAnbWVudS1ub3RpY2UtLWxvYWRpbmcnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IFBvcnRhbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBtZW51UG9ydGFsQ1NTID0gZnVuY3Rpb24gbWVudVBvcnRhbENTUyhfcmVmOCkge1xuICB2YXIgcmVjdCA9IF9yZWY4LnJlY3QsXG4gICAgb2Zmc2V0ID0gX3JlZjgub2Zmc2V0LFxuICAgIHBvc2l0aW9uID0gX3JlZjgucG9zaXRpb247XG4gIHJldHVybiB7XG4gICAgbGVmdDogcmVjdC5sZWZ0LFxuICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICB0b3A6IG9mZnNldCxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICB6SW5kZXg6IDFcbiAgfTtcbn07XG52YXIgTWVudVBvcnRhbCA9IGZ1bmN0aW9uIE1lbnVQb3J0YWwocHJvcHMpIHtcbiAgdmFyIGFwcGVuZFRvID0gcHJvcHMuYXBwZW5kVG8sXG4gICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBjb250cm9sRWxlbWVudCA9IHByb3BzLmNvbnRyb2xFbGVtZW50LFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIG1lbnVQbGFjZW1lbnQgPSBwcm9wcy5tZW51UGxhY2VtZW50LFxuICAgIG1lbnVQb3NpdGlvbiA9IHByb3BzLm1lbnVQb3NpdGlvbjtcbiAgdmFyIG1lbnVQb3J0YWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBjbGVhbnVwUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKGNvZXJjZVBsYWNlbWVudChtZW51UGxhY2VtZW50KSksXG4gICAgX3VzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTUsIDIpLFxuICAgIHBsYWNlbWVudCA9IF91c2VTdGF0ZTZbMF0sXG4gICAgc2V0UG9ydGFsUGxhY2VtZW50ID0gX3VzZVN0YXRlNlsxXTtcbiAgdmFyIHBvcnRhbFBsYWNlbWVudENvbnRleHQgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0UG9ydGFsUGxhY2VtZW50OiBzZXRQb3J0YWxQbGFjZW1lbnRcbiAgICB9O1xuICB9LCBbXSk7XG4gIHZhciBfdXNlU3RhdGU3ID0gdXNlU3RhdGUobnVsbCksXG4gICAgX3VzZVN0YXRlOCA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTcsIDIpLFxuICAgIGNvbXB1dGVkUG9zaXRpb24gPSBfdXNlU3RhdGU4WzBdLFxuICAgIHNldENvbXB1dGVkUG9zaXRpb24gPSBfdXNlU3RhdGU4WzFdO1xuICB2YXIgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWNvbnRyb2xFbGVtZW50KSByZXR1cm47XG4gICAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudE9iaihjb250cm9sRWxlbWVudCk7XG4gICAgdmFyIHNjcm9sbERpc3RhbmNlID0gbWVudVBvc2l0aW9uID09PSAnZml4ZWQnID8gMCA6IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICB2YXIgb2Zmc2V0ID0gcmVjdFtwbGFjZW1lbnRdICsgc2Nyb2xsRGlzdGFuY2U7XG4gICAgaWYgKG9mZnNldCAhPT0gKGNvbXB1dGVkUG9zaXRpb24gPT09IG51bGwgfHwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcHV0ZWRQb3NpdGlvbi5vZmZzZXQpIHx8IHJlY3QubGVmdCAhPT0gKGNvbXB1dGVkUG9zaXRpb24gPT09IG51bGwgfHwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcHV0ZWRQb3NpdGlvbi5yZWN0LmxlZnQpIHx8IHJlY3Qud2lkdGggIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC53aWR0aCkpIHtcbiAgICAgIHNldENvbXB1dGVkUG9zaXRpb24oe1xuICAgICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgcmVjdDogcmVjdFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbY29udHJvbEVsZW1lbnQsIG1lbnVQb3NpdGlvbiwgcGxhY2VtZW50LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC5sZWZ0LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC53aWR0aF0pO1xuICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb24oKTtcbiAgfSwgW3VwZGF0ZUNvbXB1dGVkUG9zaXRpb25dKTtcbiAgdmFyIHJ1bkF1dG9VcGRhdGUgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwUmVmLmN1cnJlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCgpO1xuICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2xFbGVtZW50ICYmIG1lbnVQb3J0YWxSZWYuY3VycmVudCkge1xuICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gYXV0b1VwZGF0ZShjb250cm9sRWxlbWVudCwgbWVudVBvcnRhbFJlZi5jdXJyZW50LCB1cGRhdGVDb21wdXRlZFBvc2l0aW9uLCB7XG4gICAgICAgIGVsZW1lbnRSZXNpemU6ICdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtjb250cm9sRWxlbWVudCwgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbl0pO1xuICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJ1bkF1dG9VcGRhdGUoKTtcbiAgfSwgW3J1bkF1dG9VcGRhdGVdKTtcbiAgdmFyIHNldE1lbnVQb3J0YWxFbGVtZW50ID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG1lbnVQb3J0YWxFbGVtZW50KSB7XG4gICAgbWVudVBvcnRhbFJlZi5jdXJyZW50ID0gbWVudVBvcnRhbEVsZW1lbnQ7XG4gICAgcnVuQXV0b1VwZGF0ZSgpO1xuICB9LCBbcnVuQXV0b1VwZGF0ZV0pO1xuXG4gIC8vIGJhaWwgZWFybHkgaWYgcmVxdWlyZWQgZWxlbWVudHMgYXJlbid0IHByZXNlbnRcbiAgaWYgKCFhcHBlbmRUbyAmJiBtZW51UG9zaXRpb24gIT09ICdmaXhlZCcgfHwgIWNvbXB1dGVkUG9zaXRpb24pIHJldHVybiBudWxsO1xuXG4gIC8vIHNhbWUgd3JhcHBlciBlbGVtZW50IHdoZXRoZXIgZml4ZWQgb3IgcG9ydGFsbGVkXG4gIHZhciBtZW51V3JhcHBlciA9IGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBzZXRNZW51UG9ydGFsRWxlbWVudFxuICB9LCBnZXRTdHlsZVByb3BzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCB7fSwge1xuICAgIG9mZnNldDogY29tcHV0ZWRQb3NpdGlvbi5vZmZzZXQsXG4gICAgcG9zaXRpb246IG1lbnVQb3NpdGlvbixcbiAgICByZWN0OiBjb21wdXRlZFBvc2l0aW9uLnJlY3RcbiAgfSksICdtZW51UG9ydGFsJywge1xuICAgICdtZW51LXBvcnRhbCc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG4gIHJldHVybiBqc3goUG9ydGFsUGxhY2VtZW50Q29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBwb3J0YWxQbGFjZW1lbnRDb250ZXh0XG4gIH0sIGFwcGVuZFRvID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChtZW51V3JhcHBlciwgYXBwZW5kVG8pIDogbWVudVdyYXBwZXIpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSb290IENvbnRhaW5lclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBjb250YWluZXJDU1MgPSBmdW5jdGlvbiBjb250YWluZXJDU1MoX3JlZikge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBpc1J0bCA9IF9yZWYuaXNSdGw7XG4gIHJldHVybiB7XG4gICAgbGFiZWw6ICdjb250YWluZXInLFxuICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6IHVuZGVmaW5lZCxcbiAgICBwb2ludGVyRXZlbnRzOiBpc0Rpc2FibGVkID8gJ25vbmUnIDogdW5kZWZpbmVkLFxuICAgIC8vIGNhbmNlbCBtb3VzZSBldmVudHMgd2hlbiBkaXNhYmxlZFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gIH07XG59O1xudmFyIFNlbGVjdENvbnRhaW5lciA9IGZ1bmN0aW9uIFNlbGVjdENvbnRhaW5lcihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc1J0bCA9IHByb3BzLmlzUnRsO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnY29udGFpbmVyJywge1xuICAgICctLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZCxcbiAgICAnLS1pcy1ydGwnOiBpc1J0bFxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFsdWUgQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIHZhbHVlQ29udGFpbmVyQ1NTID0gZnVuY3Rpb24gdmFsdWVDb250YWluZXJDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBzcGFjaW5nID0gX3JlZjIudGhlbWUuc3BhY2luZyxcbiAgICBpc011bHRpID0gX3JlZjIuaXNNdWx0aSxcbiAgICBoYXNWYWx1ZSA9IF9yZWYyLmhhc1ZhbHVlLFxuICAgIGNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZSA9IF9yZWYyLnNlbGVjdFByb3BzLmNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6IGlzTXVsdGkgJiYgaGFzVmFsdWUgJiYgY29udHJvbFNob3VsZFJlbmRlclZhbHVlID8gJ2ZsZXgnIDogJ2dyaWQnLFxuICAgIGZsZXg6IDEsXG4gICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICBXZWJraXRPdmVyZmxvd1Njcm9sbGluZzogJ3RvdWNoJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0IC8gMiwgXCJweCBcIikuY29uY2F0KHNwYWNpbmcuYmFzZVVuaXQgKiAyLCBcInB4XCIpXG4gIH0pO1xufTtcbnZhciBWYWx1ZUNvbnRhaW5lciA9IGZ1bmN0aW9uIFZhbHVlQ29udGFpbmVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpLFxuICAgIGhhc1ZhbHVlID0gcHJvcHMuaGFzVmFsdWU7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICd2YWx1ZUNvbnRhaW5lcicsIHtcbiAgICAndmFsdWUtY29udGFpbmVyJzogdHJ1ZSxcbiAgICAndmFsdWUtY29udGFpbmVyLS1pcy1tdWx0aSc6IGlzTXVsdGksXG4gICAgJ3ZhbHVlLWNvbnRhaW5lci0taGFzLXZhbHVlJzogaGFzVmFsdWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEluZGljYXRvciBDb250YWluZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgaW5kaWNhdG9yc0NvbnRhaW5lckNTUyA9IGZ1bmN0aW9uIGluZGljYXRvcnNDb250YWluZXJDU1MoKSB7XG4gIHJldHVybiB7XG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhTaHJpbms6IDBcbiAgfTtcbn07XG52YXIgSW5kaWNhdG9yc0NvbnRhaW5lciA9IGZ1bmN0aW9uIEluZGljYXRvcnNDb250YWluZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JzQ29udGFpbmVyJywge1xuICAgIGluZGljYXRvcnM6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG52YXIgX3RlbXBsYXRlT2JqZWN0O1xudmFyIF9leGNsdWRlZCQyID0gW1wic2l6ZVwiXSxcbiAgX2V4Y2x1ZGVkMiA9IFtcImlubmVyUHJvcHNcIiwgXCJpc1J0bFwiLCBcInNpemVcIl07XG5mdW5jdGlvbiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXygpIHsgcmV0dXJuIFwiWW91IGhhdmUgdHJpZWQgdG8gc3RyaW5naWZ5IG9iamVjdCByZXR1cm5lZCBmcm9tIGBjc3NgIGZ1bmN0aW9uLiBJdCBpc24ndCBzdXBwb3NlZCB0byBiZSB1c2VkIGRpcmVjdGx5IChlLmcuIGFzIHZhbHVlIG9mIHRoZSBgY2xhc3NOYW1lYCBwcm9wKSwgYnV0IHJhdGhlciBoYW5kZWQgdG8gZW1vdGlvbiBzbyBpdCBjYW4gaGFuZGxlIGl0IChlLmcuIGFzIHZhbHVlIG9mIGBjc3NgIHByb3ApLlwiOyB9XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBJY29uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG52YXIgX3JlZjIgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyB7XG4gIG5hbWU6IFwiOG1ta2NnXCIsXG4gIHN0eWxlczogXCJkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtsaW5lLWhlaWdodDoxO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjBcIlxufSA6IHtcbiAgbmFtZTogXCJ0ajViZGUtU3ZnXCIsXG4gIHN0eWxlczogXCJkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtsaW5lLWhlaWdodDoxO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjA7bGFiZWw6U3ZnO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1sdVpHbGpZWFJ2Y25NdWRITjRJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRWGxDU1NJc0ltWnBiR1VpT2lKcGJtUnBZMkYwYjNKekxuUnplQ0lzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQkFhbk40SUdwemVDQXFMMXh1YVcxd2IzSjBJSHNnVW1WaFkzUk9iMlJsSUgwZ1puSnZiU0FuY21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnYW5ONExDQnJaWGxtY21GdFpYTWdmU0JtY205dElDZEFaVzF2ZEdsdmJpOXlaV0ZqZENjN1hHNWNibWx0Y0c5eWRDQjdYRzRnSUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxMRnh1SUNCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3c1hHNGdJRWR5YjNWd1FtRnpaU3hjYm4wZ1puSnZiU0FuTGk0dmRIbHdaWE1uTzF4dWFXMXdiM0owSUhzZ1oyVjBVM1I1YkdWUWNtOXdjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QkVjbTl3Wkc5M2JpQW1JRU5zWldGeUlFbGpiMjV6WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVkyOXVjM1FnVTNabklEMGdLSHRjYmlBZ2MybDZaU3hjYmlBZ0xpNHVjSEp2Y0hOY2JuMDZJRXBUV0M1SmJuUnlhVzV6YVdORmJHVnRaVzUwYzFzbmMzWm5KMTBnSmlCN0lITnBlbVU2SUc1MWJXSmxjaUI5S1NBOVBpQW9YRzRnSUR4emRtZGNiaUFnSUNCb1pXbG5hSFE5ZTNOcGVtVjlYRzRnSUNBZ2QybGtkR2c5ZTNOcGVtVjlYRzRnSUNBZ2RtbGxkMEp2ZUQxY0lqQWdNQ0F5TUNBeU1Gd2lYRzRnSUNBZ1lYSnBZUzFvYVdSa1pXNDlYQ0owY25WbFhDSmNiaUFnSUNCbWIyTjFjMkZpYkdVOVhDSm1ZV3h6WlZ3aVhHNGdJQ0FnWTNOelBYdDdYRzRnSUNBZ0lDQmthWE53YkdGNU9pQW5hVzVzYVc1bExXSnNiMk5ySnl4Y2JpQWdJQ0FnSUdacGJHdzZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ2JHbHVaVWhsYVdkb2REb2dNU3hjYmlBZ0lDQWdJSE4wY205clpUb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCemRISnZhMlZYYVdSMGFEb2dNQ3hjYmlBZ0lDQjlmVnh1SUNBZ0lIc3VMaTV3Y205d2MzMWNiaUFnTHo1Y2JpazdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFTnliM056U1dOdmJsQnliM0J6SUQwZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWR6ZG1jblhTQW1JSHNnYzJsNlpUODZJRzUxYldKbGNpQjlPMXh1Wlhod2IzSjBJR052Ym5OMElFTnliM056U1dOdmJpQTlJQ2h3Y205d2N6b2dRM0p2YzNOSlkyOXVVSEp2Y0hNcElEMCtJQ2hjYmlBZ1BGTjJaeUJ6YVhwbFBYc3lNSDBnZXk0dUxuQnliM0J6ZlQ1Y2JpQWdJQ0E4Y0dGMGFDQmtQVndpVFRFMExqTTBPQ0F4TkM0NE5EbGpMVEF1TkRZNUlEQXVORFk1TFRFdU1qSTVJREF1TkRZNUxURXVOamszSURCc0xUSXVOalV4TFRNdU1ETXdMVEl1TmpVeElETXVNREk1WXkwd0xqUTJPU0F3TGpRMk9TMHhMakl5T1NBd0xqUTJPUzB4TGpZNU55QXdMVEF1TkRZNUxUQXVORFk1TFRBdU5EWTVMVEV1TWpJNUlEQXRNUzQyT1Rkc01pNDNOVGd0TXk0eE5TMHlMamMxT1MwekxqRTFNbU10TUM0ME5qa3RNQzQwTmprdE1DNDBOamt0TVM0eU1qZ2dNQzB4TGpZNU4zTXhMakl5T0Mwd0xqUTJPU0F4TGpZNU55QXdiREl1TmpVeUlETXVNRE14SURJdU5qVXhMVE11TURNeFl6QXVORFk1TFRBdU5EWTVJREV1TWpJNExUQXVORFk1SURFdU5qazNJREJ6TUM0ME5qa2dNUzR5TWprZ01DQXhMalk1TjJ3dE1pNDNOVGdnTXk0eE5USWdNaTQzTlRnZ015NHhOV013TGpRMk9TQXdMalEyT1NBd0xqUTJPU0F4TGpJeU9TQXdJREV1TmprNGVsd2lJQzgrWEc0Z0lEd3ZVM1puUGx4dUtUdGNibVY0Y0c5eWRDQjBlWEJsSUVSdmQyNURhR1YyY205dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1JHOTNia05vWlhaeWIyNGdQU0FvY0hKdmNITTZJRVJ2ZDI1RGFHVjJjbTl1VUhKdmNITXBJRDArSUNoY2JpQWdQRk4yWnlCemFYcGxQWHN5TUgwZ2V5NHVMbkJ5YjNCemZUNWNiaUFnSUNBOGNHRjBhQ0JrUFZ3aVRUUXVOVEUySURjdU5UUTRZekF1TkRNMkxUQXVORFEySURFdU1EUXpMVEF1TkRneElERXVOVGMySURCc015NDVNRGdnTXk0M05EY2dNeTQ1TURndE15NDNORGRqTUM0MU16TXRNQzQwT0RFZ01TNHhOREV0TUM0ME5EWWdNUzQxTnpRZ01DQXdMalF6TmlBd0xqUTBOU0F3TGpRd09DQXhMakU1TnlBd0lERXVOakUxTFRBdU5EQTJJREF1TkRFNExUUXVOamsxSURRdU5UQXlMVFF1TmprMUlEUXVOVEF5TFRBdU1qRTNJREF1TWpJekxUQXVOVEF5SURBdU16TTFMVEF1TnpnM0lEQXVNek0xY3kwd0xqVTNMVEF1TVRFeUxUQXVOemc1TFRBdU16TTFZekFnTUMwMExqSTROeTAwTGpBNE5DMDBMalk1TlMwMExqVXdNbk10TUM0ME16WXRNUzR4TnlBd0xURXVOakUxZWx3aUlDOCtYRzRnSUR3dlUzWm5QbHh1S1R0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJFY205d1pHOTNiaUFtSUVOc1pXRnlJRUoxZEhSdmJuTmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1SUNCcGMwUnBjMkZpYkdWa09pQmliMjlzWldGdU8xeHVmVnh1WEc1amIyNXpkQ0JpWVhObFExTlRJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLRnh1SUNCN1hHNGdJQ0FnYVhOR2IyTjFjMlZrTEZ4dUlDQWdJSFJvWlcxbE9pQjdYRzRnSUNBZ0lDQnpjR0ZqYVc1bk9pQjdJR0poYzJWVmJtbDBJSDBzWEc0Z0lDQWdJQ0JqYjJ4dmNuTXNYRzRnSUNBZ2ZTeGNiaUFnZlRwY2JpQWdJQ0I4SUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q1Y2JpQWdJQ0I4SUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pEYjI1MFlXbHVaWEluTEZ4dUlDQmthWE53YkdGNU9pQW5abXhsZUNjc1hHNGdJSFJ5WVc1emFYUnBiMjQ2SUNkamIyeHZjaUF4TlRCdGN5Y3NYRzRnSUM0dUxpaDFibk4wZVd4bFpGeHVJQ0FnSUQ4Z2UzMWNiaUFnSUNBNklIdGNiaUFnSUNBZ0lDQWdZMjlzYjNJNklHbHpSbTlqZFhObFpDQS9JR052Ykc5eWN5NXVaWFYwY21Gc05qQWdPaUJqYjJ4dmNuTXVibVYxZEhKaGJESXdMRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUJpWVhObFZXNXBkQ0FxSURJc1hHNGdJQ0FnSUNBZ0lDYzZhRzkyWlhJbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5c2IzSTZJR2x6Um05amRYTmxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNPREFnT2lCamIyeHZjbk11Ym1WMWRISmhiRFF3TEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTa3NYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdSeWIzQmtiM2R1U1c1a2FXTmhkRzl5UTFOVElEMGdZbUZ6WlVOVFV6dGNibVY0Y0c5eWRDQmpiMjV6ZENCRWNtOXdaRzkzYmtsdVpHbGpZWFJ2Y2lBOUlEeGNiaUFnVDNCMGFXOXVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGloY2JpQWdjSEp2Y0hNNklFUnliM0JrYjNkdVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdJR05vYVd4a2NtVnVMQ0JwYm01bGNsQnliM0J6SUgwZ1BTQndjbTl3Y3p0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQjdMaTR1WjJWMFUzUjViR1ZRY205d2N5aHdjbTl3Y3l3Z0oyUnliM0JrYjNkdVNXNWthV05oZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ2RrY205d1pHOTNiaTFwYm1ScFkyRjBiM0luT2lCMGNuVmxMRnh1SUNBZ0lDQWdmU2w5WEc0Z0lDQWdJQ0I3TGk0dWFXNXVaWEpRY205d2MzMWNiaUFnSUNBK1hHNGdJQ0FnSUNCN1kyaHBiR1J5Wlc0Z2ZId2dQRVJ2ZDI1RGFHVjJjbTl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCRGJHVmhja2x1WkdsallYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ0x5b3FJRlJvWlNCamFHbHNaSEpsYmlCMGJ5QmlaU0J5Wlc1a1pYSmxaQ0JwYm5OcFpHVWdkR2hsSUdsdVpHbGpZWFJ2Y2k0Z0tpOWNiaUFnWTJocGJHUnlaVzQvT2lCU1pXRmpkRTV2WkdVN1hHNGdJQzhxS2lCUWNtOXdjeUIwYUdGMElIZHBiR3dnWW1VZ2NHRnpjMlZrSUc5dUlIUnZJSFJvWlNCamFHbHNaSEpsYmk0Z0tpOWNiaUFnYVc1dVpYSlFjbTl3Y3pvZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWRrYVhZblhUdGNiaUFnTHlvcUlGUm9aU0JtYjJOMWMyVmtJSE4wWVhSbElHOW1JSFJvWlNCelpXeGxZM1F1SUNvdlhHNGdJR2x6Um05amRYTmxaRG9nWW05dmJHVmhianRjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUdOc1pXRnlTVzVrYVdOaGRHOXlRMU5USUQwZ1ltRnpaVU5UVXp0Y2JtVjRjRzl5ZENCamIyNXpkQ0JEYkdWaGNrbHVaR2xqWVhSdmNpQTlJRHhjYmlBZ1QzQjBhVzl1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpaGNiaUFnY0hKdmNITTZJRU5zWldGeVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdJR05vYVd4a2NtVnVMQ0JwYm01bGNsQnliM0J6SUgwZ1BTQndjbTl3Y3p0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQjdMaTR1WjJWMFUzUjViR1ZRY205d2N5aHdjbTl3Y3l3Z0oyTnNaV0Z5U1c1a2FXTmhkRzl5Snl3Z2UxeHVJQ0FnSUNBZ0lDQnBibVJwWTJGMGIzSTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDZGpiR1ZoY2kxcGJtUnBZMkYwYjNJbk9pQjBjblZsTEZ4dUlDQWdJQ0FnZlNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQjdZMmhwYkdSeVpXNGdmSHdnUEVOeWIzTnpTV052YmlBdlBuMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc1Y2JpOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUx5OGdVMlZ3WVhKaGRHOXlYRzR2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JKYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0pRY205d2N6eGNiaUFnVDNCMGFXOXVJRDBnZFc1cmJtOTNiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRnUFNCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrSUQwZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNGdaWGgwWlc1a2N5QkRiMjF0YjI1UWNtOXdjMEZ1WkVOc1lYTnpUbUZ0WlR4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaUI3WEc0Z0lHbHpSR2x6WVdKc1pXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdhVzV1WlhKUWNtOXdjejg2SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM0JoYmlkZE8xeHVmVnh1WEc1bGVIQnZjblFnWTI5dWMzUWdhVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkVhWE5oWW14bFpDeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnYzNCaFkybHVaem9nZXlCaVlYTmxWVzVwZENCOUxGeHVJQ0FnSUNBZ1kyOXNiM0p6TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBFOXdkR2x2Yml3Z1NYTk5kV3gwYVN3Z1IzSnZkWEErTEZ4dUlDQjFibk4wZVd4bFpEb2dZbTl2YkdWaGJseHVLVG9nUTFOVFQySnFaV04wVjJsMGFFeGhZbVZzSUQwK0lDaDdYRzRnSUd4aFltVnNPaUFuYVc1a2FXTmhkRzl5VTJWd1lYSmhkRzl5Snl4Y2JpQWdZV3hwWjI1VFpXeG1PaUFuYzNSeVpYUmphQ2NzWEc0Z0lIZHBaSFJvT2lBeExGeHVJQ0F1TGk0b2RXNXpkSGxzWldSY2JpQWdJQ0EvSUh0OVhHNGdJQ0FnT2lCN1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUkRiMnh2Y2pvZ2FYTkVhWE5oWW14bFpDQS9JR052Ykc5eWN5NXVaWFYwY21Gc01UQWdPaUJqYjJ4dmNuTXVibVYxZEhKaGJESXdMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNUNiM1IwYjIwNklHSmhjMlZWYm1sMElDb2dNaXhjYmlBZ0lDQWdJQ0FnYldGeVoybHVWRzl3T2lCaVlYTmxWVzVwZENBcUlESXNYRzRnSUNBZ0lDQjlLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1NXNWthV05oZEc5eVUyVndZWEpoZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdsdWJtVnlVSEp2Y0hNZ2ZTQTlJSEJ5YjNCek8xeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeHpjR0Z1WEc0Z0lDQWdJQ0I3TGk0dWFXNXVaWEpRY205d2MzMWNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBbmFXNWthV05oZEc5eVUyVndZWEpoZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0FuYVc1a2FXTmhkRzl5TFhObGNHRnlZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0F2UGx4dUlDQXBPMXh1ZlR0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJNYjJGa2FXNW5YRzR2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNibHh1WTI5dWMzUWdiRzloWkdsdVowUnZkRUZ1YVcxaGRHbHZibk1nUFNCclpYbG1jbUZ0WlhOZ1hHNGdJREFsTENBNE1DVXNJREV3TUNVZ2V5QnZjR0ZqYVhSNU9pQXdPeUI5WEc0Z0lEUXdKU0I3SUc5d1lXTnBkSGs2SURFN0lIMWNibUE3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JzYjJGa2FXNW5TVzVrYVdOaGRHOXlRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkdiMk4xYzJWa0xGeHVJQ0FnSUhOcGVtVXNYRzRnSUNBZ2RHaGxiV1U2SUh0Y2JpQWdJQ0FnSUdOdmJHOXljeXhjYmlBZ0lDQWdJSE53WVdOcGJtYzZJSHNnWW1GelpWVnVhWFFnZlN4Y2JpQWdJQ0I5TEZ4dUlDQjlPaUJNYjJGa2FXNW5TVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RzYjJGa2FXNW5TVzVrYVdOaGRHOXlKeXhjYmlBZ1pHbHpjR3hoZVRvZ0oyWnNaWGduTEZ4dUlDQjBjbUZ1YzJsMGFXOXVPaUFuWTI5c2IzSWdNVFV3YlhNbkxGeHVJQ0JoYkdsbmJsTmxiR1k2SUNkalpXNTBaWEluTEZ4dUlDQm1iMjUwVTJsNlpUb2djMmw2WlN4Y2JpQWdiR2x1WlVobGFXZG9kRG9nTVN4Y2JpQWdiV0Z5WjJsdVVtbG5hSFE2SUhOcGVtVXNYRzRnSUhSbGVIUkJiR2xuYmpvZ0oyTmxiblJsY2ljc1hHNGdJSFpsY25ScFkyRnNRV3hwWjI0NklDZHRhV1JrYkdVbkxGeHVJQ0F1TGk0b2RXNXpkSGxzWldSY2JpQWdJQ0EvSUh0OVhHNGdJQ0FnT2lCN1hHNGdJQ0FnSUNBZ0lHTnZiRzl5T2lCcGMwWnZZM1Z6WldRZ1B5QmpiMnh2Y25NdWJtVjFkSEpoYkRZd0lEb2dZMjlzYjNKekxtNWxkWFJ5WVd3eU1DeGNiaUFnSUNBZ0lDQWdjR0ZrWkdsdVp6b2dZbUZ6WlZWdWFYUWdLaUF5TEZ4dUlDQWdJQ0FnZlNrc1hHNTlLVHRjYmx4dWFXNTBaWEptWVdObElFeHZZV1JwYm1kRWIzUlFjbTl3Y3lCN1hHNGdJR1JsYkdGNU9pQnVkVzFpWlhJN1hHNGdJRzltWm5ObGREb2dZbTl2YkdWaGJqdGNibjFjYm1OdmJuTjBJRXh2WVdScGJtZEViM1FnUFNBb2V5QmtaV3hoZVN3Z2IyWm1jMlYwSUgwNklFeHZZV1JwYm1kRWIzUlFjbTl3Y3lrZ1BUNGdLRnh1SUNBOGMzQmhibHh1SUNBZ0lHTnpjejE3ZTF4dUlDQWdJQ0FnWVc1cGJXRjBhVzl1T2lCZ0pIdHNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjMzBnTVhNZ1pXRnpaUzFwYmkxdmRYUWdKSHRrWld4aGVYMXRjeUJwYm1acGJtbDBaVHRnTEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlPaUFuWTNWeWNtVnVkRU52Ykc5eUp5eGNiaUFnSUNBZ0lHSnZjbVJsY2xKaFpHbDFjem9nSnpGbGJTY3NYRzRnSUNBZ0lDQmthWE53YkdGNU9pQW5hVzVzYVc1bExXSnNiMk5ySnl4Y2JpQWdJQ0FnSUcxaGNtZHBia3hsWm5RNklHOW1abk5sZENBL0lDY3haVzBuSURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lBbk1XVnRKeXhjYmlBZ0lDQWdJSFpsY25ScFkyRnNRV3hwWjI0NklDZDBiM0FuTEZ4dUlDQWdJQ0FnZDJsa2RHZzZJQ2N4WlcwbkxGeHVJQ0FnSUgxOVhHNGdJQzgrWEc0cE8xeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlFjbTl3Y3lCMGFHRjBJSGRwYkd3Z1ltVWdjR0Z6YzJWa0lHOXVJSFJ2SUhSb1pTQmphR2xzWkhKbGJpNGdLaTljYmlBZ2FXNXVaWEpRY205d2N6b2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lka2FYWW5YVHRjYmlBZ0x5b3FJRlJvWlNCbWIyTjFjMlZrSUhOMFlYUmxJRzltSUhSb1pTQnpaV3hsWTNRdUlDb3ZYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdhWE5FYVhOaFlteGxaRG9nWW05dmJHVmhianRjYmlBZ0x5b3FJRk5sZENCemFYcGxJRzltSUhSb1pTQmpiMjUwWVdsdVpYSXVJQ292WEc0Z0lITnBlbVU2SUc1MWJXSmxjanRjYm4xY2JtVjRjRzl5ZENCamIyNXpkQ0JNYjJGa2FXNW5TVzVrYVdOaGRHOXlJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLSHRjYmlBZ2FXNXVaWEpRY205d2N5eGNiaUFnYVhOU2RHd3NYRzRnSUhOcGVtVWdQU0EwTEZ4dUlDQXVMaTV5WlhOMFVISnZjSE5jYm4wNklFeHZZV1JwYm1kSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1Bpa2dQVDRnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektGeHVJQ0FnSUNBZ0lDQjdJQzR1TG5KbGMzUlFjbTl3Y3l3Z2FXNXVaWEpRY205d2N5d2dhWE5TZEd3c0lITnBlbVVnZlN4Y2JpQWdJQ0FnSUNBZ0oyeHZZV1JwYm1kSmJtUnBZMkYwYjNJbkxGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnYVc1a2FXTmhkRzl5T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNkc2IyRmthVzVuTFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQThURzloWkdsdVowUnZkQ0JrWld4aGVUMTdNSDBnYjJabWMyVjBQWHRwYzFKMGJIMGdMejVjYmlBZ0lDQWdJRHhNYjJGa2FXNW5SRzkwSUdSbGJHRjVQWHN4TmpCOUlHOW1abk5sZENBdlBseHVJQ0FnSUNBZ1BFeHZZV1JwYm1kRWIzUWdaR1ZzWVhrOWV6TXlNSDBnYjJabWMyVjBQWHNoYVhOU2RHeDlJQzgrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVJbDE5ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfX1xufTtcbnZhciBTdmcgPSBmdW5jdGlvbiBTdmcoX3JlZikge1xuICB2YXIgc2l6ZSA9IF9yZWYuc2l6ZSxcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBfZXhjbHVkZWQkMik7XG4gIHJldHVybiBqc3goXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogc2l6ZSxcbiAgICB3aWR0aDogc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgZm9jdXNhYmxlOiBcImZhbHNlXCIsXG4gICAgY3NzOiBfcmVmMlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBDcm9zc0ljb24gPSBmdW5jdGlvbiBDcm9zc0ljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChTdmcsIF9leHRlbmRzKHtcbiAgICBzaXplOiAyMFxuICB9LCBwcm9wcyksIGpzeChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiXG4gIH0pKTtcbn07XG52YXIgRG93bkNoZXZyb24gPSBmdW5jdGlvbiBEb3duQ2hldnJvbihwcm9wcykge1xuICByZXR1cm4ganN4KFN2ZywgX2V4dGVuZHMoe1xuICAgIHNpemU6IDIwXG4gIH0sIHByb3BzKSwganN4KFwicGF0aFwiLCB7XG4gICAgZDogXCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCJcbiAgfSkpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgYmFzZUNTUyA9IGZ1bmN0aW9uIGJhc2VDU1MoX3JlZjMsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQsXG4gICAgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWYzJHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwXG4gICAgfVxuICB9KTtcbn07XG52YXIgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIERyb3Bkb3duSW5kaWNhdG9yID0gZnVuY3Rpb24gRHJvcGRvd25JbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdkcm9wZG93bkluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goRG93bkNoZXZyb24sIG51bGwpKTtcbn07XG52YXIgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIENsZWFySW5kaWNhdG9yID0gZnVuY3Rpb24gQ2xlYXJJbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjbGVhckluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goQ3Jvc3NJY29uLCBudWxsKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlcGFyYXRvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JTZXBhcmF0b3JDU1MoX3JlZjQsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZjQuaXNEaXNhYmxlZCxcbiAgICBfcmVmNCR0aGVtZSA9IF9yZWY0LnRoZW1lLFxuICAgIGJhc2VVbml0ID0gX3JlZjQkdGhlbWUuc3BhY2luZy5iYXNlVW5pdCxcbiAgICBjb2xvcnMgPSBfcmVmNCR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgd2lkdGg6IDFcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMlxuICB9KTtcbn07XG52YXIgSW5kaWNhdG9yU2VwYXJhdG9yID0gZnVuY3Rpb24gSW5kaWNhdG9yU2VwYXJhdG9yKHByb3BzKSB7XG4gIHZhciBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe30sIGlubmVyUHJvcHMsIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlXG4gIH0pKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXMoX3RlbXBsYXRlT2JqZWN0IHx8IChfdGVtcGxhdGVPYmplY3QgPSBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKFtcIlxcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cXG5cIl0pKSk7XG52YXIgbG9hZGluZ0luZGljYXRvckNTUyA9IGZ1bmN0aW9uIGxvYWRpbmdJbmRpY2F0b3JDU1MoX3JlZjUsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmNS5pc0ZvY3VzZWQsXG4gICAgc2l6ZSA9IF9yZWY1LnNpemUsXG4gICAgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBjb2xvcnMgPSBfcmVmNSR0aGVtZS5jb2xvcnMsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0O1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICAgIGZvbnRTaXplOiBzaXplLFxuICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDJcbiAgfSk7XG59O1xudmFyIExvYWRpbmdEb3QgPSBmdW5jdGlvbiBMb2FkaW5nRG90KF9yZWY2KSB7XG4gIHZhciBkZWxheSA9IF9yZWY2LmRlbGF5LFxuICAgIG9mZnNldCA9IF9yZWY2Lm9mZnNldDtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwge1xuICAgIGNzczogLyojX19QVVJFX18qL2NzcyQyKHtcbiAgICAgIGFuaW1hdGlvbjogXCJcIi5jb25jYXQobG9hZGluZ0RvdEFuaW1hdGlvbnMsIFwiIDFzIGVhc2UtaW4tb3V0IFwiKS5jb25jYXQoZGVsYXksIFwibXMgaW5maW5pdGU7XCIpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkxvYWRpbmdEb3Q7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVcxUlNTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1VtVmhZM1JPYjJSbElIMGdabkp2YlNBbmNtVmhZM1FuTzF4dWFXMXdiM0owSUhzZ2FuTjRMQ0JyWlhsbWNtRnRaWE1nZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1sdGNHOXlkQ0I3WEc0Z0lFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsTEZ4dUlDQkRVMU5QWW1wbFkzUlhhWFJvVEdGaVpXd3NYRzRnSUVkeWIzVndRbUZ6WlN4Y2JuMGdabkp2YlNBbkxpNHZkSGx3WlhNbk8xeHVhVzF3YjNKMElIc2daMlYwVTNSNWJHVlFjbTl3Y3lCOUlHWnliMjBnSnk0dUwzVjBhV3h6Snp0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJFY205d1pHOTNiaUFtSUVOc1pXRnlJRWxqYjI1elhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JseHVZMjl1YzNRZ1UzWm5JRDBnS0h0Y2JpQWdjMmw2WlN4Y2JpQWdMaTR1Y0hKdmNITmNibjA2SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VNklHNTFiV0psY2lCOUtTQTlQaUFvWEc0Z0lEeHpkbWRjYmlBZ0lDQm9aV2xuYUhROWUzTnBlbVY5WEc0Z0lDQWdkMmxrZEdnOWUzTnBlbVY5WEc0Z0lDQWdkbWxsZDBKdmVEMWNJakFnTUNBeU1DQXlNRndpWEc0Z0lDQWdZWEpwWVMxb2FXUmtaVzQ5WENKMGNuVmxYQ0pjYmlBZ0lDQm1iMk4xYzJGaWJHVTlYQ0ptWVd4elpWd2lYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUFuYVc1c2FXNWxMV0pzYjJOckp5eGNiaUFnSUNBZ0lHWnBiR3c2SUNkamRYSnlaVzUwUTI5c2IzSW5MRnh1SUNBZ0lDQWdiR2x1WlVobGFXZG9kRG9nTVN4Y2JpQWdJQ0FnSUhOMGNtOXJaVG9nSjJOMWNuSmxiblJEYjJ4dmNpY3NYRzRnSUNBZ0lDQnpkSEp2YTJWWGFXUjBhRG9nTUN4Y2JpQWdJQ0I5ZlZ4dUlDQWdJSHN1TGk1d2NtOXdjMzFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRU55YjNOelNXTnZibEJ5YjNCeklEMGdTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVDg2SUc1MWJXSmxjaUI5TzF4dVpYaHdiM0owSUdOdmJuTjBJRU55YjNOelNXTnZiaUE5SUNod2NtOXdjem9nUTNKdmMzTkpZMjl1VUhKdmNITXBJRDArSUNoY2JpQWdQRk4yWnlCemFYcGxQWHN5TUgwZ2V5NHVMbkJ5YjNCemZUNWNiaUFnSUNBOGNHRjBhQ0JrUFZ3aVRURTBMak0wT0NBeE5DNDRORGxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQnNMVEl1TmpVeExUTXVNRE13TFRJdU5qVXhJRE11TURJNVl5MHdMalEyT1NBd0xqUTJPUzB4TGpJeU9TQXdMalEyT1MweExqWTVOeUF3TFRBdU5EWTVMVEF1TkRZNUxUQXVORFk1TFRFdU1qSTVJREF0TVM0Mk9UZHNNaTQzTlRndE15NHhOUzB5TGpjMU9TMHpMakUxTW1NdE1DNDBOamt0TUM0ME5qa3RNQzQwTmprdE1TNHlNamdnTUMweExqWTVOM014TGpJeU9DMHdMalEyT1NBeExqWTVOeUF3YkRJdU5qVXlJRE11TURNeElESXVOalV4TFRNdU1ETXhZekF1TkRZNUxUQXVORFk1SURFdU1qSTRMVEF1TkRZNUlERXVOamszSURCek1DNDBOamtnTVM0eU1qa2dNQ0F4TGpZNU4yd3RNaTQzTlRnZ015NHhOVElnTWk0M05UZ2dNeTR4TldNd0xqUTJPU0F3TGpRMk9TQXdMalEyT1NBeExqSXlPU0F3SURFdU5qazRlbHdpSUM4K1hHNGdJRHd2VTNablBseHVLVHRjYm1WNGNHOXlkQ0IwZVhCbElFUnZkMjVEYUdWMmNtOXVVSEp2Y0hNZ1BTQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjNOMlp5ZGRJQ1lnZXlCemFYcGxQem9nYm5WdFltVnlJSDA3WEc1bGVIQnZjblFnWTI5dWMzUWdSRzkzYmtOb1pYWnliMjRnUFNBb2NISnZjSE02SUVSdmQyNURhR1YyY205dVVISnZjSE1wSUQwK0lDaGNiaUFnUEZOMlp5QnphWHBsUFhzeU1IMGdleTR1TG5CeWIzQnpmVDVjYmlBZ0lDQThjR0YwYUNCa1BWd2lUVFF1TlRFMklEY3VOVFE0WXpBdU5ETTJMVEF1TkRRMklERXVNRFF6TFRBdU5EZ3hJREV1TlRjMklEQnNNeTQ1TURnZ015NDNORGNnTXk0NU1EZ3RNeTQzTkRkak1DNDFNek10TUM0ME9ERWdNUzR4TkRFdE1DNDBORFlnTVM0MU56UWdNQ0F3TGpRek5pQXdMalEwTlNBd0xqUXdPQ0F4TGpFNU55QXdJREV1TmpFMUxUQXVOREEySURBdU5ERTRMVFF1TmprMUlEUXVOVEF5TFRRdU5qazFJRFF1TlRBeUxUQXVNakUzSURBdU1qSXpMVEF1TlRBeUlEQXVNek0xTFRBdU56ZzNJREF1TXpNMWN5MHdMalUzTFRBdU1URXlMVEF1TnpnNUxUQXVNek0xWXpBZ01DMDBMakk0TnkwMExqQTROQzAwTGpZNU5TMDBMalV3TW5NdE1DNDBNell0TVM0eE55QXdMVEV1TmpFMWVsd2lJQzgrWEc0Z0lEd3ZVM1puUGx4dUtUdGNibHh1THk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYRzR2THlCRWNtOXdaRzkzYmlBbUlFTnNaV0Z5SUVKMWRIUnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5VUhKdmNITThYRzRnSUU5d2RHbHZiaUE5SUhWdWEyNXZkMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1SUQwZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGlBOUlFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtJR1Y0ZEdWdVpITWdRMjl0Ylc5dVVISnZjSE5CYm1SRGJHRnpjMDVoYldVOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRnZTF4dUlDQXZLaW9nVkdobElHTm9hV3hrY21WdUlIUnZJR0psSUhKbGJtUmxjbVZrSUdsdWMybGtaU0IwYUdVZ2FXNWthV05oZEc5eUxpQXFMMXh1SUNCamFHbHNaSEpsYmo4NklGSmxZV04wVG05a1pUdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWpiMjV6ZENCaVlYTmxRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkdiMk4xYzJWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUcGNiaUFnSUNCOElFUnliM0JrYjNkdVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaUFnSUNCOElFTnNaV0Z5U1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q0c1hHNGdJSFZ1YzNSNWJHVmtPaUJpYjI5c1pXRnVYRzRwT2lCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3Z1BUNGdLSHRjYmlBZ2JHRmlaV3c2SUNkcGJtUnBZMkYwYjNKRGIyNTBZV2x1WlhJbkxGeHVJQ0JrYVhOd2JHRjVPaUFuWm14bGVDY3NYRzRnSUhSeVlXNXphWFJwYjI0NklDZGpiMnh2Y2lBeE5UQnRjeWNzWEc0Z0lDNHVMaWgxYm5OMGVXeGxaRnh1SUNBZ0lEOGdlMzFjYmlBZ0lDQTZJSHRjYmlBZ0lDQWdJQ0FnWTI5c2IzSTZJR2x6Um05amRYTmxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNOakFnT2lCamIyeHZjbk11Ym1WMWRISmhiREl3TEZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuT2lCaVlYTmxWVzVwZENBcUlESXNYRzRnSUNBZ0lDQWdJQ2M2YUc5MlpYSW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzT0RBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRRd0xGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU2tzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHUnliM0JrYjNkdVNXNWthV05oZEc5eVExTlRJRDBnWW1GelpVTlRVenRjYm1WNGNHOXlkQ0JqYjI1emRDQkVjbTl3Wkc5M2JrbHVaR2xqWVhSdmNpQTlJRHhjYmlBZ1QzQjBhVzl1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpaGNiaUFnY0hKdmNITTZJRVJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdOb2FXeGtjbVZ1TENCcGJtNWxjbEJ5YjNCeklIMGdQU0J3Y205d2N6dGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wyWEc0Z0lDQWdJQ0I3TGk0dVoyVjBVM1I1YkdWUWNtOXdjeWh3Y205d2N5d2dKMlJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlKeXdnZTF4dUlDQWdJQ0FnSUNCcGJtUnBZMkYwYjNJNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNka2NtOXdaRzkzYmkxcGJtUnBZMkYwYjNJbk9pQjBjblZsTEZ4dUlDQWdJQ0FnZlNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQjdZMmhwYkdSeVpXNGdmSHdnUEVSdmQyNURhR1YyY205dUlDOCtmVnh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkRiR1ZoY2tsdVpHbGpZWFJ2Y2xCeWIzQnpQRnh1SUNCUGNIUnBiMjRnUFNCMWJtdHViM2R1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYmlBOUlHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo0Z1BTQkhjbTkxY0VKaGMyVThUM0IwYVc5dVBseHVQaUJsZUhSbGJtUnpJRU52YlcxdmJsQnliM0J6UVc1a1EyeGhjM05PWVcxbFBFOXdkR2x2Yml3Z1NYTk5kV3gwYVN3Z1IzSnZkWEErSUh0Y2JpQWdMeW9xSUZSb1pTQmphR2xzWkhKbGJpQjBieUJpWlNCeVpXNWtaWEpsWkNCcGJuTnBaR1VnZEdobElHbHVaR2xqWVhSdmNpNGdLaTljYmlBZ1kyaHBiR1J5Wlc0L09pQlNaV0ZqZEU1dlpHVTdYRzRnSUM4cUtpQlFjbTl3Y3lCMGFHRjBJSGRwYkd3Z1ltVWdjR0Z6YzJWa0lHOXVJSFJ2SUhSb1pTQmphR2xzWkhKbGJpNGdLaTljYmlBZ2FXNXVaWEpRY205d2N6b2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lka2FYWW5YVHRjYmlBZ0x5b3FJRlJvWlNCbWIyTjFjMlZrSUhOMFlYUmxJRzltSUhSb1pTQnpaV3hsWTNRdUlDb3ZYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JuMWNibHh1Wlhod2IzSjBJR052Ym5OMElHTnNaV0Z5U1c1a2FXTmhkRzl5UTFOVElEMGdZbUZ6WlVOVFV6dGNibVY0Y0c5eWRDQmpiMjV6ZENCRGJHVmhja2x1WkdsallYUnZjaUE5SUR4Y2JpQWdUM0IwYVc5dUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpeGNiaUFnUjNKdmRYQWdaWGgwWlc1a2N5QkhjbTkxY0VKaGMyVThUM0IwYVc5dVBseHVQaWhjYmlBZ2NISnZjSE02SUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdOb2FXeGtjbVZ1TENCcGJtNWxjbEJ5YjNCeklIMGdQU0J3Y205d2N6dGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wyWEc0Z0lDQWdJQ0I3TGk0dVoyVjBVM1I1YkdWUWNtOXdjeWh3Y205d2N5d2dKMk5zWldGeVNXNWthV05oZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ2RqYkdWaGNpMXBibVJwWTJGMGIzSW5PaUIwY25WbExGeHVJQ0FnSUNBZ2ZTbDlYRzRnSUNBZ0lDQjdMaTR1YVc1dVpYSlFjbTl3YzMxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0I3WTJocGJHUnlaVzRnZkh3Z1BFTnliM056U1dOdmJpQXZQbjFjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNWNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVMeThnVTJWd1lYSmhkRzl5WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNKUWNtOXdjenhjYmlBZ1QzQjBhVzl1SUQwZ2RXNXJibTkzYml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0Z1BTQmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K0lEMGdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRnWlhoMFpXNWtjeUJEYjIxdGIyNVFjbTl3YzBGdVpFTnNZWE56VG1GdFpUeFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGlCN1hHNGdJR2x6UkdsellXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lHbHpSbTlqZFhObFpEb2dZbTl2YkdWaGJqdGNiaUFnYVc1dVpYSlFjbTl3Y3o4NklFcFRXQzVKYm5SeWFXNXphV05GYkdWdFpXNTBjMXNuYzNCaGJpZGRPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVc1a2FXTmhkRzl5VTJWd1lYSmhkRzl5UTFOVElEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0I3WEc0Z0lDQWdhWE5FYVhOaFlteGxaQ3hjYmlBZ0lDQjBhR1Z0WlRvZ2UxeHVJQ0FnSUNBZ2MzQmhZMmx1WnpvZ2V5QmlZWE5sVlc1cGRDQjlMRnh1SUNBZ0lDQWdZMjlzYjNKekxGeHVJQ0FnSUgwc1hHNGdJSDA2SUVsdVpHbGpZWFJ2Y2xObGNHRnlZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0xGeHVJQ0IxYm5OMGVXeGxaRG9nWW05dmJHVmhibHh1S1RvZ1ExTlRUMkpxWldOMFYybDBhRXhoWW1Wc0lEMCtJQ2g3WEc0Z0lHeGhZbVZzT2lBbmFXNWthV05oZEc5eVUyVndZWEpoZEc5eUp5eGNiaUFnWVd4cFoyNVRaV3htT2lBbmMzUnlaWFJqYUNjc1hHNGdJSGRwWkhSb09pQXhMRnh1SUNBdUxpNG9kVzV6ZEhsc1pXUmNiaUFnSUNBL0lIdDlYRzRnSUNBZ09pQjdYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVJEYjJ4dmNqb2dhWE5FYVhOaFlteGxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNNVEFnT2lCamIyeHZjbk11Ym1WMWRISmhiREl3TEZ4dUlDQWdJQ0FnSUNCdFlYSm5hVzVDYjNSMGIyMDZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ2JXRnlaMmx1Vkc5d09pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLRnh1SUNCd2NtOXdjem9nU1c1a2FXTmhkRzl5VTJWd1lYSmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q1Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCN0lHbHVibVZ5VUhKdmNITWdmU0E5SUhCeWIzQnpPMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHh6Y0dGdVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQWdJSHN1TGk1blpYUlRkSGxzWlZCeWIzQnpLSEJ5YjNCekxDQW5hVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlKeXdnZTF4dUlDQWdJQ0FnSUNBbmFXNWthV05oZEc5eUxYTmxjR0Z5WVhSdmNpYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNCOUtYMWNiaUFnSUNBdlBseHVJQ0FwTzF4dWZUdGNibHh1THk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYRzR2THlCTWIyRmthVzVuWEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVkyOXVjM1FnYkc5aFpHbHVaMFJ2ZEVGdWFXMWhkR2x2Ym5NZ1BTQnJaWGxtY21GdFpYTmdYRzRnSURBbExDQTRNQ1VzSURFd01DVWdleUJ2Y0dGamFYUjVPaUF3T3lCOVhHNGdJRFF3SlNCN0lHOXdZV05wZEhrNklERTdJSDFjYm1BN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCc2IyRmthVzVuU1c1a2FXTmhkRzl5UTFOVElEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0I3WEc0Z0lDQWdhWE5HYjJOMWMyVmtMRnh1SUNBZ0lITnBlbVVzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lHTnZiRzl5Y3l4Y2JpQWdJQ0FnSUhOd1lXTnBibWM2SUhzZ1ltRnpaVlZ1YVhRZ2ZTeGNiaUFnSUNCOUxGeHVJQ0I5T2lCTWIyRmthVzVuU1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q0c1hHNGdJSFZ1YzNSNWJHVmtPaUJpYjI5c1pXRnVYRzRwT2lCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3Z1BUNGdLSHRjYmlBZ2JHRmlaV3c2SUNkc2IyRmthVzVuU1c1a2FXTmhkRzl5Snl4Y2JpQWdaR2x6Y0d4aGVUb2dKMlpzWlhnbkxGeHVJQ0IwY21GdWMybDBhVzl1T2lBblkyOXNiM0lnTVRVd2JYTW5MRnh1SUNCaGJHbG5ibE5sYkdZNklDZGpaVzUwWlhJbkxGeHVJQ0JtYjI1MFUybDZaVG9nYzJsNlpTeGNiaUFnYkdsdVpVaGxhV2RvZERvZ01TeGNiaUFnYldGeVoybHVVbWxuYUhRNklITnBlbVVzWEc0Z0lIUmxlSFJCYkdsbmJqb2dKMk5sYm5SbGNpY3NYRzRnSUhabGNuUnBZMkZzUVd4cFoyNDZJQ2R0YVdSa2JHVW5MRnh1SUNBdUxpNG9kVzV6ZEhsc1pXUmNiaUFnSUNBL0lIdDlYRzRnSUNBZ09pQjdYRzRnSUNBZ0lDQWdJR052Ykc5eU9pQnBjMFp2WTNWelpXUWdQeUJqYjJ4dmNuTXVibVYxZEhKaGJEWXdJRG9nWTI5c2IzSnpMbTVsZFhSeVlXd3lNQ3hjYmlBZ0lDQWdJQ0FnY0dGa1pHbHVaem9nWW1GelpWVnVhWFFnS2lBeUxGeHVJQ0FnSUNBZ2ZTa3NYRzU5S1R0Y2JseHVhVzUwWlhKbVlXTmxJRXh2WVdScGJtZEViM1JRY205d2N5QjdYRzRnSUdSbGJHRjVPaUJ1ZFcxaVpYSTdYRzRnSUc5bVpuTmxkRG9nWW05dmJHVmhianRjYm4xY2JtTnZibk4wSUV4dllXUnBibWRFYjNRZ1BTQW9leUJrWld4aGVTd2diMlptYzJWMElIMDZJRXh2WVdScGJtZEViM1JRY205d2N5a2dQVDRnS0Z4dUlDQThjM0JoYmx4dUlDQWdJR056Y3oxN2UxeHVJQ0FnSUNBZ1lXNXBiV0YwYVc5dU9pQmdKSHRzYjJGa2FXNW5SRzkwUVc1cGJXRjBhVzl1YzMwZ01YTWdaV0Z6WlMxcGJpMXZkWFFnSkh0a1pXeGhlWDF0Y3lCcGJtWnBibWwwWlR0Z0xGeHVJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lBblkzVnljbVZ1ZEVOdmJHOXlKeXhjYmlBZ0lDQWdJR0p2Y21SbGNsSmhaR2wxY3pvZ0p6RmxiU2NzWEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUFuYVc1c2FXNWxMV0pzYjJOckp5eGNiaUFnSUNBZ0lHMWhjbWRwYmt4bFpuUTZJRzltWm5ObGRDQS9JQ2N4WlcwbklEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdhR1ZwWjJoME9pQW5NV1Z0Snl4Y2JpQWdJQ0FnSUhabGNuUnBZMkZzUVd4cFoyNDZJQ2QwYjNBbkxGeHVJQ0FnSUNBZ2QybGtkR2c2SUNjeFpXMG5MRnh1SUNBZ0lIMTlYRzRnSUM4K1hHNHBPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUV4dllXUnBibWRKYm1ScFkyRjBiM0pRY205d2N6eGNiaUFnVDNCMGFXOXVJRDBnZFc1cmJtOTNiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRnUFNCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrSUQwZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNGdaWGgwWlc1a2N5QkRiMjF0YjI1UWNtOXdjMEZ1WkVOc1lYTnpUbUZ0WlR4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaUI3WEc0Z0lDOHFLaUJRY205d2N5QjBhR0YwSUhkcGJHd2dZbVVnY0dGemMyVmtJRzl1SUhSdklIUm9aU0JqYUdsc1pISmxiaTRnS2k5Y2JpQWdhVzV1WlhKUWNtOXdjem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZGthWFluWFR0Y2JpQWdMeW9xSUZSb1pTQm1iMk4xYzJWa0lITjBZWFJsSUc5bUlIUm9aU0J6Wld4bFkzUXVJQ292WEc0Z0lHbHpSbTlqZFhObFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhORWFYTmhZbXhsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdMeW9xSUZObGRDQnphWHBsSUc5bUlIUm9aU0JqYjI1MFlXbHVaWEl1SUNvdlhHNGdJSE5wZW1VNklHNTFiV0psY2p0Y2JuMWNibVY0Y0c5eWRDQmpiMjV6ZENCTWIyRmthVzVuU1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0h0Y2JpQWdhVzV1WlhKUWNtOXdjeXhjYmlBZ2FYTlNkR3dzWEc0Z0lITnBlbVVnUFNBMExGeHVJQ0F1TGk1eVpYTjBVSEp2Y0hOY2JuMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaWtnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJSHN1TGk1blpYUlRkSGxzWlZCeWIzQnpLRnh1SUNBZ0lDQWdJQ0I3SUM0dUxuSmxjM1JRY205d2N5d2dhVzV1WlhKUWNtOXdjeXdnYVhOU2RHd3NJSE5wZW1VZ2ZTeGNiaUFnSUNBZ0lDQWdKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXNWthV05oZEc5eU9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDZHNiMkZrYVc1bkxXbHVaR2xqWVhSdmNpYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ0lDQjdMaTR1YVc1dVpYSlFjbTl3YzMxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0E4VEc5aFpHbHVaMFJ2ZENCa1pXeGhlVDE3TUgwZ2IyWm1jMlYwUFh0cGMxSjBiSDBnTHo1Y2JpQWdJQ0FnSUR4TWIyRmthVzVuUkc5MElHUmxiR0Y1UFhzeE5qQjlJRzltWm5ObGRDQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllek15TUgwZ2IyWm1jMlYwUFhzaGFYTlNkR3g5SUM4K1hHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1SWwxOSAqL1wiKVxuICB9KTtcbn07XG52YXIgTG9hZGluZ0luZGljYXRvciA9IGZ1bmN0aW9uIExvYWRpbmdJbmRpY2F0b3IoX3JlZjcpIHtcbiAgdmFyIGlubmVyUHJvcHMgPSBfcmVmNy5pbm5lclByb3BzLFxuICAgIGlzUnRsID0gX3JlZjcuaXNSdGwsXG4gICAgX3JlZjckc2l6ZSA9IF9yZWY3LnNpemUsXG4gICAgc2l6ZSA9IF9yZWY3JHNpemUgPT09IHZvaWQgMCA/IDQgOiBfcmVmNyRzaXplLFxuICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmNywgX2V4Y2x1ZGVkMik7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgaXNSdGw6IGlzUnRsLFxuICAgIHNpemU6IHNpemVcbiAgfSksICdsb2FkaW5nSW5kaWNhdG9yJywge1xuICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwganN4KExvYWRpbmdEb3QsIHtcbiAgICBkZWxheTogMCxcbiAgICBvZmZzZXQ6IGlzUnRsXG4gIH0pLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAxNjAsXG4gICAgb2Zmc2V0OiB0cnVlXG4gIH0pLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAzMjAsXG4gICAgb2Zmc2V0OiAhaXNSdGxcbiAgfSkpO1xufTtcblxudmFyIGNzcyQxID0gZnVuY3Rpb24gY3NzKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYuaXNGb2N1c2VkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmc7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2NvbnRyb2wnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGN1cnNvcjogJ2RlZmF1bHQnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgbWluSGVpZ2h0OiBzcGFjaW5nLmNvbnRyb2xIZWlnaHQsXG4gICAgb3V0bGluZTogJzAgIWltcG9ydGFudCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgdHJhbnNpdGlvbjogJ2FsbCAxMDBtcydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDUgOiBjb2xvcnMubmV1dHJhbDAsXG4gICAgYm9yZGVyQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogaXNGb2N1c2VkID8gY29sb3JzLnByaW1hcnkgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAxLFxuICAgIGJveFNoYWRvdzogaXNGb2N1c2VkID8gXCIwIDAgMCAxcHggXCIuY29uY2F0KGNvbG9ycy5wcmltYXJ5KSA6IHVuZGVmaW5lZCxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGJvcmRlckNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMucHJpbWFyeSA6IGNvbG9ycy5uZXV0cmFsMzBcbiAgICB9XG4gIH0pO1xufTtcbnZhciBDb250cm9sID0gZnVuY3Rpb24gQ29udHJvbChwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBwcm9wcy5pc0ZvY3VzZWQsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBtZW51SXNPcGVuID0gcHJvcHMubWVudUlzT3BlbjtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnY29udHJvbCcsIHtcbiAgICBjb250cm9sOiB0cnVlLFxuICAgICdjb250cm9sLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJ2NvbnRyb2wtLWlzLWZvY3VzZWQnOiBpc0ZvY3VzZWQsXG4gICAgJ2NvbnRyb2wtLW1lbnUtaXMtb3Blbic6IG1lbnVJc09wZW5cbiAgfSksIGlubmVyUHJvcHMsIHtcbiAgICBcImFyaWEtZGlzYWJsZWRcIjogaXNEaXNhYmxlZCB8fCB1bmRlZmluZWRcbiAgfSksIGNoaWxkcmVuKTtcbn07XG52YXIgQ29udHJvbCQxID0gQ29udHJvbDtcblxudmFyIF9leGNsdWRlZCQxID0gW1wiZGF0YVwiXTtcbnZhciBncm91cENTUyA9IGZ1bmN0aW9uIGdyb3VwQ1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBzcGFjaW5nID0gX3JlZi50aGVtZS5zcGFjaW5nO1xuICByZXR1cm4gdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nQm90dG9tOiBzcGFjaW5nLmJhc2VVbml0ICogMixcbiAgICBwYWRkaW5nVG9wOiBzcGFjaW5nLmJhc2VVbml0ICogMlxuICB9O1xufTtcbnZhciBHcm91cCA9IGZ1bmN0aW9uIEdyb3VwKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGN4ID0gcHJvcHMuY3gsXG4gICAgZ2V0U3R5bGVzID0gcHJvcHMuZ2V0U3R5bGVzLFxuICAgIGdldENsYXNzTmFtZXMgPSBwcm9wcy5nZXRDbGFzc05hbWVzLFxuICAgIEhlYWRpbmcgPSBwcm9wcy5IZWFkaW5nLFxuICAgIGhlYWRpbmdQcm9wcyA9IHByb3BzLmhlYWRpbmdQcm9wcyxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBsYWJlbCA9IHByb3BzLmxhYmVsLFxuICAgIHRoZW1lID0gcHJvcHMudGhlbWUsXG4gICAgc2VsZWN0UHJvcHMgPSBwcm9wcy5zZWxlY3RQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2dyb3VwJywge1xuICAgIGdyb3VwOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwganN4KEhlYWRpbmcsIF9leHRlbmRzKHt9LCBoZWFkaW5nUHJvcHMsIHtcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHMsXG4gICAgdGhlbWU6IHRoZW1lLFxuICAgIGdldFN0eWxlczogZ2V0U3R5bGVzLFxuICAgIGdldENsYXNzTmFtZXM6IGdldENsYXNzTmFtZXMsXG4gICAgY3g6IGN4XG4gIH0pLCBsYWJlbCksIGpzeChcImRpdlwiLCBudWxsLCBjaGlsZHJlbikpO1xufTtcbnZhciBncm91cEhlYWRpbmdDU1MgPSBmdW5jdGlvbiBncm91cEhlYWRpbmdDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGNvbG9ycyA9IF9yZWYyJHRoZW1lLmNvbG9ycyxcbiAgICBzcGFjaW5nID0gX3JlZjIkdGhlbWUuc3BhY2luZztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnZ3JvdXAnLFxuICAgIGN1cnNvcjogJ2RlZmF1bHQnLFxuICAgIGRpc3BsYXk6ICdibG9jaydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw0MCxcbiAgICBmb250U2l6ZTogJzc1JScsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIG1hcmdpbkJvdHRvbTogJzAuMjVlbScsXG4gICAgcGFkZGluZ0xlZnQ6IHNwYWNpbmcuYmFzZVVuaXQgKiAzLFxuICAgIHBhZGRpbmdSaWdodDogc3BhY2luZy5iYXNlVW5pdCAqIDMsXG4gICAgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZSdcbiAgfSk7XG59O1xudmFyIEdyb3VwSGVhZGluZyA9IGZ1bmN0aW9uIEdyb3VwSGVhZGluZyhwcm9wcykge1xuICB2YXIgX2NsZWFuQ29tbW9uUHJvcHMgPSBjbGVhbkNvbW1vblByb3BzKHByb3BzKTtcbiAgICBfY2xlYW5Db21tb25Qcm9wcy5kYXRhO1xuICAgIHZhciBpbm5lclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9jbGVhbkNvbW1vblByb3BzLCBfZXhjbHVkZWQkMSk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdncm91cEhlYWRpbmcnLCB7XG4gICAgJ2dyb3VwLWhlYWRpbmcnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSk7XG59O1xudmFyIEdyb3VwJDEgPSBHcm91cDtcblxudmFyIF9leGNsdWRlZCA9IFtcImlubmVyUmVmXCIsIFwiaXNEaXNhYmxlZFwiLCBcImlzSGlkZGVuXCIsIFwiaW5wdXRDbGFzc05hbWVcIl07XG52YXIgaW5wdXRDU1MgPSBmdW5jdGlvbiBpbnB1dENTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICB2YWx1ZSA9IF9yZWYudmFsdWUsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgdmlzaWJpbGl0eTogaXNEaXNhYmxlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnLFxuICAgIC8vIGZvcmNlIGNzcyB0byByZWNvbXB1dGUgd2hlbiB2YWx1ZSBjaGFuZ2UgZHVlIHRvIEBlbW90aW9uIGJ1Zy5cbiAgICAvLyBXZSBjYW4gcmVtb3ZlIGl0IHdoZW5ldmVyIHRoZSBidWcgaXMgZml4ZWQuXG4gICAgdHJhbnNmb3JtOiB2YWx1ZSA/ICd0cmFuc2xhdGVaKDApJyA6ICcnXG4gIH0sIGNvbnRhaW5lclN0eWxlKSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBtYXJnaW46IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIHBhZGRpbmdCb3R0b206IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIHBhZGRpbmdUb3A6IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDgwXG4gIH0pO1xufTtcbnZhciBzcGFjaW5nU3R5bGUgPSB7XG4gIGdyaWRBcmVhOiAnMSAvIDInLFxuICBmb250OiAnaW5oZXJpdCcsXG4gIG1pbldpZHRoOiAnMnB4JyxcbiAgYm9yZGVyOiAwLFxuICBtYXJnaW46IDAsXG4gIG91dGxpbmU6IDAsXG4gIHBhZGRpbmc6IDBcbn07XG52YXIgY29udGFpbmVyU3R5bGUgPSB7XG4gIGZsZXg6ICcxIDEgYXV0bycsXG4gIGRpc3BsYXk6ICdpbmxpbmUtZ3JpZCcsXG4gIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICcwIG1pbi1jb250ZW50JyxcbiAgJyY6YWZ0ZXInOiBfb2JqZWN0U3ByZWFkKHtcbiAgICBjb250ZW50OiAnYXR0cihkYXRhLXZhbHVlKSBcIiBcIicsXG4gICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgd2hpdGVTcGFjZTogJ3ByZSdcbiAgfSwgc3BhY2luZ1N0eWxlKVxufTtcbnZhciBpbnB1dFN0eWxlID0gZnVuY3Rpb24gaW5wdXRTdHlsZShpc0hpZGRlbikge1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbnB1dCcsXG4gICAgY29sb3I6ICdpbmhlcml0JyxcbiAgICBiYWNrZ3JvdW5kOiAwLFxuICAgIG9wYWNpdHk6IGlzSGlkZGVuID8gMCA6IDEsXG4gICAgd2lkdGg6ICcxMDAlJ1xuICB9LCBzcGFjaW5nU3R5bGUpO1xufTtcbnZhciBJbnB1dCA9IGZ1bmN0aW9uIElucHV0KHByb3BzKSB7XG4gIHZhciBjeCA9IHByb3BzLmN4LFxuICAgIHZhbHVlID0gcHJvcHMudmFsdWU7XG4gIHZhciBfY2xlYW5Db21tb25Qcm9wcyA9IGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpLFxuICAgIGlubmVyUmVmID0gX2NsZWFuQ29tbW9uUHJvcHMuaW5uZXJSZWYsXG4gICAgaXNEaXNhYmxlZCA9IF9jbGVhbkNvbW1vblByb3BzLmlzRGlzYWJsZWQsXG4gICAgaXNIaWRkZW4gPSBfY2xlYW5Db21tb25Qcm9wcy5pc0hpZGRlbixcbiAgICBpbnB1dENsYXNzTmFtZSA9IF9jbGVhbkNvbW1vblByb3BzLmlucHV0Q2xhc3NOYW1lLFxuICAgIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX2NsZWFuQ29tbW9uUHJvcHMsIF9leGNsdWRlZCk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbnB1dCcsIHtcbiAgICAnaW5wdXQtY29udGFpbmVyJzogdHJ1ZVxuICB9KSwge1xuICAgIFwiZGF0YS12YWx1ZVwiOiB2YWx1ZSB8fCAnJ1xuICB9KSwganN4KFwiaW5wdXRcIiwgX2V4dGVuZHMoe1xuICAgIGNsYXNzTmFtZTogY3goe1xuICAgICAgaW5wdXQ6IHRydWVcbiAgICB9LCBpbnB1dENsYXNzTmFtZSksXG4gICAgcmVmOiBpbm5lclJlZixcbiAgICBzdHlsZTogaW5wdXRTdHlsZShpc0hpZGRlbiksXG4gICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgfSwgaW5uZXJQcm9wcykpKTtcbn07XG52YXIgSW5wdXQkMSA9IElucHV0O1xuXG52YXIgbXVsdGlWYWx1ZUNTUyA9IGZ1bmN0aW9uIG11bHRpVmFsdWVDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ211bHRpVmFsdWUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBtaW5XaWR0aDogMFxuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLm5ldXRyYWwxMCxcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgbWFyZ2luOiBzcGFjaW5nLmJhc2VVbml0IC8gMlxuICB9KTtcbn07XG52YXIgbXVsdGlWYWx1ZUxhYmVsQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZUxhYmVsQ1NTKF9yZWYyLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjIkdGhlbWUgPSBfcmVmMi50aGVtZSxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmMiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZjIkdGhlbWUuY29sb3JzLFxuICAgIGNyb3BXaXRoRWxsaXBzaXMgPSBfcmVmMi5jcm9wV2l0aEVsbGlwc2lzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogY3JvcFdpdGhFbGxpcHNpcyB8fCBjcm9wV2l0aEVsbGlwc2lzID09PSB1bmRlZmluZWQgPyAnZWxsaXBzaXMnIDogdW5kZWZpbmVkLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMgLyAyLFxuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDgwLFxuICAgIGZvbnRTaXplOiAnODUlJyxcbiAgICBwYWRkaW5nOiAzLFxuICAgIHBhZGRpbmdMZWZ0OiA2XG4gIH0pO1xufTtcbnZhciBtdWx0aVZhbHVlUmVtb3ZlQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZVJlbW92ZUNTUyhfcmVmMywgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYzJHRoZW1lID0gX3JlZjMudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYzJHRoZW1lLnNwYWNpbmcsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZjMkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIGNvbG9ycyA9IF9yZWYzJHRoZW1lLmNvbG9ycyxcbiAgICBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQ7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMuZGFuZ2VyTGlnaHQgOiB1bmRlZmluZWQsXG4gICAgcGFkZGluZ0xlZnQ6IHNwYWNpbmcuYmFzZVVuaXQsXG4gICAgcGFkZGluZ1JpZ2h0OiBzcGFjaW5nLmJhc2VVbml0LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5kYW5nZXJMaWdodCxcbiAgICAgIGNvbG9yOiBjb2xvcnMuZGFuZ2VyXG4gICAgfVxuICB9KTtcbn07XG52YXIgTXVsdGlWYWx1ZUdlbmVyaWMgPSBmdW5jdGlvbiBNdWx0aVZhbHVlR2VuZXJpYyhfcmVmNCkge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmNC5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjQuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBpbm5lclByb3BzLCBjaGlsZHJlbik7XG59O1xudmFyIE11bHRpVmFsdWVDb250YWluZXIgPSBNdWx0aVZhbHVlR2VuZXJpYztcbnZhciBNdWx0aVZhbHVlTGFiZWwgPSBNdWx0aVZhbHVlR2VuZXJpYztcbmZ1bmN0aW9uIE11bHRpVmFsdWVSZW1vdmUoX3JlZjUpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZjUuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY1LmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgIHJvbGU6IFwiYnV0dG9uXCJcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuIHx8IGpzeChDcm9zc0ljb24sIHtcbiAgICBzaXplOiAxNFxuICB9KSk7XG59XG52YXIgTXVsdGlWYWx1ZSA9IGZ1bmN0aW9uIE11bHRpVmFsdWUocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY29tcG9uZW50cyA9IHByb3BzLmNvbXBvbmVudHMsXG4gICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgcmVtb3ZlUHJvcHMgPSBwcm9wcy5yZW1vdmVQcm9wcyxcbiAgICBzZWxlY3RQcm9wcyA9IHByb3BzLnNlbGVjdFByb3BzO1xuICB2YXIgQ29udGFpbmVyID0gY29tcG9uZW50cy5Db250YWluZXIsXG4gICAgTGFiZWwgPSBjb21wb25lbnRzLkxhYmVsLFxuICAgIFJlbW92ZSA9IGNvbXBvbmVudHMuUmVtb3ZlO1xuICByZXR1cm4ganN4KENvbnRhaW5lciwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZScsIHtcbiAgICAgICdtdWx0aS12YWx1ZSc6IHRydWUsXG4gICAgICAnbXVsdGktdmFsdWUtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZFxuICAgIH0pKSwgaW5uZXJQcm9wcyksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0sIGpzeChMYWJlbCwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZCh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ211bHRpVmFsdWVMYWJlbCcsIHtcbiAgICAgICdtdWx0aS12YWx1ZV9fbGFiZWwnOiB0cnVlXG4gICAgfSkpLFxuICAgIHNlbGVjdFByb3BzOiBzZWxlY3RQcm9wc1xuICB9LCBjaGlsZHJlbiksIGpzeChSZW1vdmUsIHtcbiAgICBkYXRhOiBkYXRhLFxuICAgIGlubmVyUHJvcHM6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ211bHRpVmFsdWVSZW1vdmUnLCB7XG4gICAgICAnbXVsdGktdmFsdWVfX3JlbW92ZSc6IHRydWVcbiAgICB9KSksIHt9LCB7XG4gICAgICAnYXJpYS1sYWJlbCc6IFwiUmVtb3ZlIFwiLmNvbmNhdChjaGlsZHJlbiB8fCAnb3B0aW9uJylcbiAgICB9LCByZW1vdmVQcm9wcyksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0pKTtcbn07XG52YXIgTXVsdGlWYWx1ZSQxID0gTXVsdGlWYWx1ZTtcblxudmFyIG9wdGlvbkNTUyA9IGZ1bmN0aW9uIG9wdGlvbkNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBfcmVmLmlzRm9jdXNlZCxcbiAgICBpc1NlbGVjdGVkID0gX3JlZi5pc1NlbGVjdGVkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ29wdGlvbicsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIFdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOiAncmdiYSgwLCAwLCAwLCAwKSdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBjb2xvcnMucHJpbWFyeSA6IGlzRm9jdXNlZCA/IGNvbG9ycy5wcmltYXJ5MjUgOiAndHJhbnNwYXJlbnQnLFxuICAgIGNvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwyMCA6IGlzU2VsZWN0ZWQgPyBjb2xvcnMubmV1dHJhbDAgOiAnaW5oZXJpdCcsXG4gICAgcGFkZGluZzogXCJcIi5jb25jYXQoc3BhY2luZy5iYXNlVW5pdCAqIDIsIFwicHggXCIpLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMywgXCJweFwiKSxcbiAgICAvLyBwcm92aWRlIHNvbWUgYWZmb3JkYW5jZSBvbiB0b3VjaCBkZXZpY2VzXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICFpc0Rpc2FibGVkID8gaXNTZWxlY3RlZCA/IGNvbG9ycy5wcmltYXJ5IDogY29sb3JzLnByaW1hcnk1MCA6IHVuZGVmaW5lZFxuICAgIH1cbiAgfSk7XG59O1xudmFyIE9wdGlvbiA9IGZ1bmN0aW9uIE9wdGlvbihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBwcm9wcy5pc0ZvY3VzZWQsXG4gICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ29wdGlvbicsIHtcbiAgICBvcHRpb246IHRydWUsXG4gICAgJ29wdGlvbi0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkLFxuICAgICdvcHRpb24tLWlzLWZvY3VzZWQnOiBpc0ZvY3VzZWQsXG4gICAgJ29wdGlvbi0taXMtc2VsZWN0ZWQnOiBpc1NlbGVjdGVkXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZixcbiAgICBcImFyaWEtZGlzYWJsZWRcIjogaXNEaXNhYmxlZFxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBPcHRpb24kMSA9IE9wdGlvbjtcblxudmFyIHBsYWNlaG9sZGVyQ1NTID0gZnVuY3Rpb24gcGxhY2Vob2xkZXJDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ3BsYWNlaG9sZGVyJyxcbiAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsNTAsXG4gICAgbWFyZ2luTGVmdDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgbWFyZ2luUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBQbGFjZWhvbGRlciA9IGZ1bmN0aW9uIFBsYWNlaG9sZGVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAncGxhY2Vob2xkZXInLCB7XG4gICAgcGxhY2Vob2xkZXI6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIFBsYWNlaG9sZGVyJDEgPSBQbGFjZWhvbGRlcjtcblxudmFyIGNzcyA9IGZ1bmN0aW9uIGNzcyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBfcmVmJHRoZW1lID0gX3JlZi50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdzaW5nbGVWYWx1ZScsXG4gICAgZ3JpZEFyZWE6ICcxIC8gMSAvIDIgLyAzJyxcbiAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsNDAgOiBjb2xvcnMubmV1dHJhbDgwLFxuICAgIG1hcmdpbkxlZnQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIG1hcmdpblJpZ2h0OiBzcGFjaW5nLmJhc2VVbml0IC8gMlxuICB9KTtcbn07XG52YXIgU2luZ2xlVmFsdWUgPSBmdW5jdGlvbiBTaW5nbGVWYWx1ZShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ3NpbmdsZVZhbHVlJywge1xuICAgICdzaW5nbGUtdmFsdWUnOiB0cnVlLFxuICAgICdzaW5nbGUtdmFsdWUtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZFxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgU2luZ2xlVmFsdWUkMSA9IFNpbmdsZVZhbHVlO1xuXG52YXIgY29tcG9uZW50cyA9IHtcbiAgQ2xlYXJJbmRpY2F0b3I6IENsZWFySW5kaWNhdG9yLFxuICBDb250cm9sOiBDb250cm9sJDEsXG4gIERyb3Bkb3duSW5kaWNhdG9yOiBEcm9wZG93bkluZGljYXRvcixcbiAgRG93bkNoZXZyb246IERvd25DaGV2cm9uLFxuICBDcm9zc0ljb246IENyb3NzSWNvbixcbiAgR3JvdXA6IEdyb3VwJDEsXG4gIEdyb3VwSGVhZGluZzogR3JvdXBIZWFkaW5nLFxuICBJbmRpY2F0b3JzQ29udGFpbmVyOiBJbmRpY2F0b3JzQ29udGFpbmVyLFxuICBJbmRpY2F0b3JTZXBhcmF0b3I6IEluZGljYXRvclNlcGFyYXRvcixcbiAgSW5wdXQ6IElucHV0JDEsXG4gIExvYWRpbmdJbmRpY2F0b3I6IExvYWRpbmdJbmRpY2F0b3IsXG4gIE1lbnU6IE1lbnUkMSxcbiAgTWVudUxpc3Q6IE1lbnVMaXN0LFxuICBNZW51UG9ydGFsOiBNZW51UG9ydGFsLFxuICBMb2FkaW5nTWVzc2FnZTogTG9hZGluZ01lc3NhZ2UsXG4gIE5vT3B0aW9uc01lc3NhZ2U6IE5vT3B0aW9uc01lc3NhZ2UsXG4gIE11bHRpVmFsdWU6IE11bHRpVmFsdWUkMSxcbiAgTXVsdGlWYWx1ZUNvbnRhaW5lcjogTXVsdGlWYWx1ZUNvbnRhaW5lcixcbiAgTXVsdGlWYWx1ZUxhYmVsOiBNdWx0aVZhbHVlTGFiZWwsXG4gIE11bHRpVmFsdWVSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmUsXG4gIE9wdGlvbjogT3B0aW9uJDEsXG4gIFBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlciQxLFxuICBTZWxlY3RDb250YWluZXI6IFNlbGVjdENvbnRhaW5lcixcbiAgU2luZ2xlVmFsdWU6IFNpbmdsZVZhbHVlJDEsXG4gIFZhbHVlQ29udGFpbmVyOiBWYWx1ZUNvbnRhaW5lclxufTtcbnZhciBkZWZhdWx0Q29tcG9uZW50cyA9IGZ1bmN0aW9uIGRlZmF1bHRDb21wb25lbnRzKHByb3BzKSB7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNvbXBvbmVudHMpLCBwcm9wcy5jb21wb25lbnRzKTtcbn07XG5cbmV4cG9ydCB7IGlzTW9iaWxlRGV2aWNlIGFzIEEsIG11bHRpVmFsdWVBc1ZhbHVlIGFzIEIsIHNpbmdsZVZhbHVlQXNWYWx1ZSBhcyBDLCB2YWx1ZVRlcm5hcnkgYXMgRCwgY2xhc3NOYW1lcyBhcyBFLCBkZWZhdWx0Q29tcG9uZW50cyBhcyBGLCBpc0RvY3VtZW50RWxlbWVudCBhcyBHLCBjbGVhblZhbHVlIGFzIEgsIHNjcm9sbEludG9WaWV3IGFzIEksIG5vb3AgYXMgSiwgbm90TnVsbGlzaCBhcyBLLCBoYW5kbGVJbnB1dENoYW5nZSBhcyBMLCBNZW51UGxhY2VyIGFzIE0sIGNsZWFySW5kaWNhdG9yQ1NTIGFzIGEsIGNvbnRhaW5lckNTUyBhcyBiLCBjb21wb25lbnRzIGFzIGMsIGNzcyQxIGFzIGQsIGRyb3Bkb3duSW5kaWNhdG9yQ1NTIGFzIGUsIGdyb3VwSGVhZGluZ0NTUyBhcyBmLCBncm91cENTUyBhcyBnLCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgYXMgaCwgaW5kaWNhdG9yc0NvbnRhaW5lckNTUyBhcyBpLCBpbnB1dENTUyBhcyBqLCBsb2FkaW5nTWVzc2FnZUNTUyBhcyBrLCBsb2FkaW5nSW5kaWNhdG9yQ1NTIGFzIGwsIG1lbnVDU1MgYXMgbSwgbWVudUxpc3RDU1MgYXMgbiwgbWVudVBvcnRhbENTUyBhcyBvLCBtdWx0aVZhbHVlQ1NTIGFzIHAsIG11bHRpVmFsdWVMYWJlbENTUyBhcyBxLCByZW1vdmVQcm9wcyBhcyByLCBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgYXMgcywgbXVsdGlWYWx1ZVJlbW92ZUNTUyBhcyB0LCBub09wdGlvbnNNZXNzYWdlQ1NTIGFzIHUsIG9wdGlvbkNTUyBhcyB2LCBwbGFjZWhvbGRlckNTUyBhcyB3LCBjc3MgYXMgeCwgdmFsdWVDb250YWluZXJDU1MgYXMgeSwgaXNUb3VjaENhcGFibGUgYXMgeiB9O1xuIiwgImltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlcic7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8sIEZyYWdtZW50LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHIgYXMgcmVtb3ZlUHJvcHMsIHMgYXMgc3VwcG9ydHNQYXNzaXZlRXZlbnRzLCBhIGFzIGNsZWFySW5kaWNhdG9yQ1NTLCBiIGFzIGNvbnRhaW5lckNTUywgZCBhcyBjc3MkMSwgZSBhcyBkcm9wZG93bkluZGljYXRvckNTUywgZyBhcyBncm91cENTUywgZiBhcyBncm91cEhlYWRpbmdDU1MsIGkgYXMgaW5kaWNhdG9yc0NvbnRhaW5lckNTUywgaCBhcyBpbmRpY2F0b3JTZXBhcmF0b3JDU1MsIGogYXMgaW5wdXRDU1MsIGwgYXMgbG9hZGluZ0luZGljYXRvckNTUywgayBhcyBsb2FkaW5nTWVzc2FnZUNTUywgbSBhcyBtZW51Q1NTLCBuIGFzIG1lbnVMaXN0Q1NTLCBvIGFzIG1lbnVQb3J0YWxDU1MsIHAgYXMgbXVsdGlWYWx1ZUNTUywgcSBhcyBtdWx0aVZhbHVlTGFiZWxDU1MsIHQgYXMgbXVsdGlWYWx1ZVJlbW92ZUNTUywgdSBhcyBub09wdGlvbnNNZXNzYWdlQ1NTLCB2IGFzIG9wdGlvbkNTUywgdyBhcyBwbGFjZWhvbGRlckNTUywgeCBhcyBjc3MkMiwgeSBhcyB2YWx1ZUNvbnRhaW5lckNTUywgeiBhcyBpc1RvdWNoQ2FwYWJsZSwgQSBhcyBpc01vYmlsZURldmljZSwgQiBhcyBtdWx0aVZhbHVlQXNWYWx1ZSwgQyBhcyBzaW5nbGVWYWx1ZUFzVmFsdWUsIEQgYXMgdmFsdWVUZXJuYXJ5LCBFIGFzIGNsYXNzTmFtZXMsIEYgYXMgZGVmYXVsdENvbXBvbmVudHMsIEcgYXMgaXNEb2N1bWVudEVsZW1lbnQsIEggYXMgY2xlYW5WYWx1ZSwgSSBhcyBzY3JvbGxJbnRvVmlldywgSiBhcyBub29wLCBNIGFzIE1lbnVQbGFjZXIsIEsgYXMgbm90TnVsbGlzaCB9IGZyb20gJy4vaW5kZXgtYTMwMWY1MjYuZXNtLmpzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemVPbmUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDIoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbnZhciBfcmVmID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjdwZzBjai1hMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwXCJcbn0gOiB7XG4gIG5hbWU6IFwiMWY0M2F2ei1hMTF5VGV4dC1BMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwO2xhYmVsOkExMXlUZXh0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtFeE1YbFVaWGgwTG5SemVDSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRk5TU0lzSW1acGJHVWlPaUpCTVRGNVZHVjRkQzUwYzNnaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaW9nUUdwemVDQnFjM2dnS2k5Y2JtbHRjRzl5ZENCN0lHcHplQ0I5SUdaeWIyMGdKMEJsYlc5MGFXOXVMM0psWVdOMEp6dGNibHh1THk4Z1FYTnphWE4wYVhabElIUmxlSFFnZEc4Z1pHVnpZM0pwWW1VZ2RtbHpkV0ZzSUdWc1pXMWxiblJ6TGlCSWFXUmtaVzRnWm05eUlITnBaMmgwWldRZ2RYTmxjbk11WEc1amIyNXpkQ0JCTVRGNVZHVjRkQ0E5SUNod2NtOXdjem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwcElEMCtJQ2hjYmlBZ1BITndZVzVjYmlBZ0lDQmpjM005ZTN0Y2JpQWdJQ0FnSUd4aFltVnNPaUFuWVRFeGVWUmxlSFFuTEZ4dUlDQWdJQ0FnZWtsdVpHVjRPaUE1T1RrNUxGeHVJQ0FnSUNBZ1ltOXlaR1Z5T2lBd0xGeHVJQ0FnSUNBZ1kyeHBjRG9nSjNKbFkzUW9NWEI0TENBeGNIZ3NJREZ3ZUN3Z01YQjRLU2NzWEc0Z0lDQWdJQ0JvWldsbmFIUTZJREVzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dNU3hjYmlBZ0lDQWdJSEJ2YzJsMGFXOXVPaUFuWVdKemIyeDFkR1VuTEZ4dUlDQWdJQ0FnYjNabGNtWnNiM2M2SUNkb2FXUmtaVzRuTEZ4dUlDQWdJQ0FnY0dGa1pHbHVaem9nTUN4Y2JpQWdJQ0FnSUhkb2FYUmxVM0JoWTJVNklDZHViM2R5WVhBbkxGeHVJQ0FnSUgxOVhHNGdJQ0FnZXk0dUxuQnliM0J6ZlZ4dUlDQXZQbHh1S1R0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1FURXhlVlJsZUhRN1hHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQyXG59O1xudmFyIEExMXlUZXh0ID0gZnVuY3Rpb24gQTExeVRleHQocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe1xuICAgIGNzczogX3JlZlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBBMTF5VGV4dCQxID0gQTExeVRleHQ7XG5cbnZhciBkZWZhdWx0QXJpYUxpdmVNZXNzYWdlcyA9IHtcbiAgZ3VpZGFuY2U6IGZ1bmN0aW9uIGd1aWRhbmNlKHByb3BzKSB7XG4gICAgdmFyIGlzU2VhcmNoYWJsZSA9IHByb3BzLmlzU2VhcmNoYWJsZSxcbiAgICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpLFxuICAgICAgdGFiU2VsZWN0c1ZhbHVlID0gcHJvcHMudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgY29udGV4dCA9IHByb3BzLmNvbnRleHQsXG4gICAgICBpc0luaXRpYWxGb2N1cyA9IHByb3BzLmlzSW5pdGlhbEZvY3VzO1xuICAgIHN3aXRjaCAoY29udGV4dCkge1xuICAgICAgY2FzZSAnbWVudSc6XG4gICAgICAgIHJldHVybiBcIlVzZSBVcCBhbmQgRG93biB0byBjaG9vc2Ugb3B0aW9ucywgcHJlc3MgRW50ZXIgdG8gc2VsZWN0IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBvcHRpb24sIHByZXNzIEVzY2FwZSB0byBleGl0IHRoZSBtZW51XCIuY29uY2F0KHRhYlNlbGVjdHNWYWx1ZSA/ICcsIHByZXNzIFRhYiB0byBzZWxlY3QgdGhlIG9wdGlvbiBhbmQgZXhpdCB0aGUgbWVudScgOiAnJywgXCIuXCIpO1xuICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICByZXR1cm4gaXNJbml0aWFsRm9jdXMgPyBcIlwiLmNvbmNhdChwcm9wc1snYXJpYS1sYWJlbCddIHx8ICdTZWxlY3QnLCBcIiBpcyBmb2N1c2VkIFwiKS5jb25jYXQoaXNTZWFyY2hhYmxlID8gJyx0eXBlIHRvIHJlZmluZSBsaXN0JyA6ICcnLCBcIiwgcHJlc3MgRG93biB0byBvcGVuIHRoZSBtZW51LCBcIikuY29uY2F0KGlzTXVsdGkgPyAnIHByZXNzIGxlZnQgdG8gZm9jdXMgc2VsZWN0ZWQgdmFsdWVzJyA6ICcnKSA6ICcnO1xuICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICByZXR1cm4gJ1VzZSBsZWZ0IGFuZCByaWdodCB0byB0b2dnbGUgYmV0d2VlbiBmb2N1c2VkIHZhbHVlcywgcHJlc3MgQmFja3NwYWNlIHRvIHJlbW92ZSB0aGUgY3VycmVudGx5IGZvY3VzZWQgdmFsdWUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcbiAgb25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKHByb3BzKSB7XG4gICAgdmFyIGFjdGlvbiA9IHByb3BzLmFjdGlvbixcbiAgICAgIF9wcm9wcyRsYWJlbCA9IHByb3BzLmxhYmVsLFxuICAgICAgbGFiZWwgPSBfcHJvcHMkbGFiZWwgPT09IHZvaWQgMCA/ICcnIDogX3Byb3BzJGxhYmVsLFxuICAgICAgbGFiZWxzID0gcHJvcHMubGFiZWxzLFxuICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQ7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2Rlc2VsZWN0LW9wdGlvbic6XG4gICAgICBjYXNlICdwb3AtdmFsdWUnOlxuICAgICAgY2FzZSAncmVtb3ZlLXZhbHVlJzpcbiAgICAgICAgcmV0dXJuIFwib3B0aW9uIFwiLmNvbmNhdChsYWJlbCwgXCIsIGRlc2VsZWN0ZWQuXCIpO1xuICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICByZXR1cm4gJ0FsbCBzZWxlY3RlZCBvcHRpb25zIGhhdmUgYmVlbiBjbGVhcmVkLic7XG4gICAgICBjYXNlICdpbml0aWFsLWlucHV0LWZvY3VzJzpcbiAgICAgICAgcmV0dXJuIFwib3B0aW9uXCIuY29uY2F0KGxhYmVscy5sZW5ndGggPiAxID8gJ3MnIDogJycsIFwiIFwiKS5jb25jYXQobGFiZWxzLmpvaW4oJywnKSwgXCIsIHNlbGVjdGVkLlwiKTtcbiAgICAgIGNhc2UgJ3NlbGVjdC1vcHRpb24nOlxuICAgICAgICByZXR1cm4gaXNEaXNhYmxlZCA/IFwib3B0aW9uIFwiLmNvbmNhdChsYWJlbCwgXCIgaXMgZGlzYWJsZWQuIFNlbGVjdCBhbm90aGVyIG9wdGlvbi5cIikgOiBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiLCBzZWxlY3RlZC5cIik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9LFxuICBvbkZvY3VzOiBmdW5jdGlvbiBvbkZvY3VzKHByb3BzKSB7XG4gICAgdmFyIGNvbnRleHQgPSBwcm9wcy5jb250ZXh0LFxuICAgICAgZm9jdXNlZCA9IHByb3BzLmZvY3VzZWQsXG4gICAgICBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgIF9wcm9wcyRsYWJlbDIgPSBwcm9wcy5sYWJlbCxcbiAgICAgIGxhYmVsID0gX3Byb3BzJGxhYmVsMiA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkbGFiZWwyLFxuICAgICAgc2VsZWN0VmFsdWUgPSBwcm9wcy5zZWxlY3RWYWx1ZSxcbiAgICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICBpc0FwcGxlRGV2aWNlID0gcHJvcHMuaXNBcHBsZURldmljZTtcbiAgICB2YXIgZ2V0QXJyYXlJbmRleCA9IGZ1bmN0aW9uIGdldEFycmF5SW5kZXgoYXJyLCBpdGVtKSB7XG4gICAgICByZXR1cm4gYXJyICYmIGFyci5sZW5ndGggPyBcIlwiLmNvbmNhdChhcnIuaW5kZXhPZihpdGVtKSArIDEsIFwiIG9mIFwiKS5jb25jYXQoYXJyLmxlbmd0aCkgOiAnJztcbiAgICB9O1xuICAgIGlmIChjb250ZXh0ID09PSAndmFsdWUnICYmIHNlbGVjdFZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJ2YWx1ZSBcIi5jb25jYXQobGFiZWwsIFwiIGZvY3VzZWQsIFwiKS5jb25jYXQoZ2V0QXJyYXlJbmRleChzZWxlY3RWYWx1ZSwgZm9jdXNlZCksIFwiLlwiKTtcbiAgICB9XG4gICAgaWYgKGNvbnRleHQgPT09ICdtZW51JyAmJiBpc0FwcGxlRGV2aWNlKSB7XG4gICAgICB2YXIgZGlzYWJsZWQgPSBpc0Rpc2FibGVkID8gJyBkaXNhYmxlZCcgOiAnJztcbiAgICAgIHZhciBzdGF0dXMgPSBcIlwiLmNvbmNhdChpc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJykuY29uY2F0KGRpc2FibGVkKTtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdChsYWJlbCkuY29uY2F0KHN0YXR1cywgXCIsIFwiKS5jb25jYXQoZ2V0QXJyYXlJbmRleChvcHRpb25zLCBmb2N1c2VkKSwgXCIuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0sXG4gIG9uRmlsdGVyOiBmdW5jdGlvbiBvbkZpbHRlcihwcm9wcykge1xuICAgIHZhciBpbnB1dFZhbHVlID0gcHJvcHMuaW5wdXRWYWx1ZSxcbiAgICAgIHJlc3VsdHNNZXNzYWdlID0gcHJvcHMucmVzdWx0c01lc3NhZ2U7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KHJlc3VsdHNNZXNzYWdlKS5jb25jYXQoaW5wdXRWYWx1ZSA/ICcgZm9yIHNlYXJjaCB0ZXJtICcgKyBpbnB1dFZhbHVlIDogJycsIFwiLlwiKTtcbiAgfVxufTtcblxudmFyIExpdmVSZWdpb24gPSBmdW5jdGlvbiBMaXZlUmVnaW9uKHByb3BzKSB7XG4gIHZhciBhcmlhU2VsZWN0aW9uID0gcHJvcHMuYXJpYVNlbGVjdGlvbixcbiAgICBmb2N1c2VkT3B0aW9uID0gcHJvcHMuZm9jdXNlZE9wdGlvbixcbiAgICBmb2N1c2VkVmFsdWUgPSBwcm9wcy5mb2N1c2VkVmFsdWUsXG4gICAgZm9jdXNhYmxlT3B0aW9ucyA9IHByb3BzLmZvY3VzYWJsZU9wdGlvbnMsXG4gICAgaXNGb2N1c2VkID0gcHJvcHMuaXNGb2N1c2VkLFxuICAgIHNlbGVjdFZhbHVlID0gcHJvcHMuc2VsZWN0VmFsdWUsXG4gICAgc2VsZWN0UHJvcHMgPSBwcm9wcy5zZWxlY3RQcm9wcyxcbiAgICBpZCA9IHByb3BzLmlkLFxuICAgIGlzQXBwbGVEZXZpY2UgPSBwcm9wcy5pc0FwcGxlRGV2aWNlO1xuICB2YXIgYXJpYUxpdmVNZXNzYWdlcyA9IHNlbGVjdFByb3BzLmFyaWFMaXZlTWVzc2FnZXMsXG4gICAgZ2V0T3B0aW9uTGFiZWwgPSBzZWxlY3RQcm9wcy5nZXRPcHRpb25MYWJlbCxcbiAgICBpbnB1dFZhbHVlID0gc2VsZWN0UHJvcHMuaW5wdXRWYWx1ZSxcbiAgICBpc011bHRpID0gc2VsZWN0UHJvcHMuaXNNdWx0aSxcbiAgICBpc09wdGlvbkRpc2FibGVkID0gc2VsZWN0UHJvcHMuaXNPcHRpb25EaXNhYmxlZCxcbiAgICBpc1NlYXJjaGFibGUgPSBzZWxlY3RQcm9wcy5pc1NlYXJjaGFibGUsXG4gICAgbWVudUlzT3BlbiA9IHNlbGVjdFByb3BzLm1lbnVJc09wZW4sXG4gICAgb3B0aW9ucyA9IHNlbGVjdFByb3BzLm9wdGlvbnMsXG4gICAgc2NyZWVuUmVhZGVyU3RhdHVzID0gc2VsZWN0UHJvcHMuc2NyZWVuUmVhZGVyU3RhdHVzLFxuICAgIHRhYlNlbGVjdHNWYWx1ZSA9IHNlbGVjdFByb3BzLnRhYlNlbGVjdHNWYWx1ZSxcbiAgICBpc0xvYWRpbmcgPSBzZWxlY3RQcm9wcy5pc0xvYWRpbmc7XG4gIHZhciBhcmlhTGFiZWwgPSBzZWxlY3RQcm9wc1snYXJpYS1sYWJlbCddO1xuICB2YXIgYXJpYUxpdmUgPSBzZWxlY3RQcm9wc1snYXJpYS1saXZlJ107XG5cbiAgLy8gVXBkYXRlIGFyaWEgbGl2ZSBtZXNzYWdlIGNvbmZpZ3VyYXRpb24gd2hlbiBwcm9wIGNoYW5nZXNcbiAgdmFyIG1lc3NhZ2VzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGVmYXVsdEFyaWFMaXZlTWVzc2FnZXMpLCBhcmlhTGl2ZU1lc3NhZ2VzIHx8IHt9KTtcbiAgfSwgW2FyaWFMaXZlTWVzc2FnZXNdKTtcblxuICAvLyBVcGRhdGUgYXJpYSBsaXZlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIHByb3AgY2hhbmdlc1xuICB2YXIgYXJpYVNlbGVjdGVkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnJztcbiAgICBpZiAoYXJpYVNlbGVjdGlvbiAmJiBtZXNzYWdlcy5vbkNoYW5nZSkge1xuICAgICAgdmFyIG9wdGlvbiA9IGFyaWFTZWxlY3Rpb24ub3B0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMgPSBhcmlhU2VsZWN0aW9uLm9wdGlvbnMsXG4gICAgICAgIHJlbW92ZWRWYWx1ZSA9IGFyaWFTZWxlY3Rpb24ucmVtb3ZlZFZhbHVlLFxuICAgICAgICByZW1vdmVkVmFsdWVzID0gYXJpYVNlbGVjdGlvbi5yZW1vdmVkVmFsdWVzLFxuICAgICAgICB2YWx1ZSA9IGFyaWFTZWxlY3Rpb24udmFsdWU7XG4gICAgICAvLyBzZWxlY3Qtb3B0aW9uIHdoZW4gIWlzTXVsdGkgZG9lcyBub3QgcmV0dXJuIG9wdGlvbiBzbyB3ZSBhc3N1bWUgc2VsZWN0ZWQgb3B0aW9uIGlzIHZhbHVlXG4gICAgICB2YXIgYXNPcHRpb24gPSBmdW5jdGlvbiBhc09wdGlvbih2YWwpIHtcbiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwgOiBudWxsO1xuICAgICAgfTtcblxuICAgICAgLy8gSWYgdGhlcmUgaXMganVzdCBvbmUgaXRlbSBmcm9tIHRoZSBhY3Rpb24gdGhlbiBnZXQgaXRzIGxhYmVsXG4gICAgICB2YXIgc2VsZWN0ZWQgPSByZW1vdmVkVmFsdWUgfHwgb3B0aW9uIHx8IGFzT3B0aW9uKHZhbHVlKTtcbiAgICAgIHZhciBsYWJlbCA9IHNlbGVjdGVkID8gZ2V0T3B0aW9uTGFiZWwoc2VsZWN0ZWQpIDogJyc7XG5cbiAgICAgIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBpdGVtcyBmcm9tIHRoZSBhY3Rpb24gdGhlbiByZXR1cm4gYW4gYXJyYXkgb2YgbGFiZWxzXG4gICAgICB2YXIgbXVsdGlTZWxlY3RlZCA9IHNlbGVjdGVkT3B0aW9ucyB8fCByZW1vdmVkVmFsdWVzIHx8IHVuZGVmaW5lZDtcbiAgICAgIHZhciBsYWJlbHMgPSBtdWx0aVNlbGVjdGVkID8gbXVsdGlTZWxlY3RlZC5tYXAoZ2V0T3B0aW9uTGFiZWwpIDogW107XG4gICAgICB2YXIgb25DaGFuZ2VQcm9wcyA9IF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAvLyBtdWx0aVNlbGVjdGVkIGl0ZW1zIGFyZSB1c3VhbGx5IGl0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gc2VsZWN0ZWRcbiAgICAgICAgLy8gb3Igc2V0IGJ5IHRoZSB1c2VyIGFzIGEgZGVmYXVsdCB2YWx1ZSBzbyB3ZSBhc3N1bWUgdGhleSBhcmUgbm90IGRpc2FibGVkXG4gICAgICAgIGlzRGlzYWJsZWQ6IHNlbGVjdGVkICYmIGlzT3B0aW9uRGlzYWJsZWQoc2VsZWN0ZWQsIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICBsYWJlbHM6IGxhYmVsc1xuICAgICAgfSwgYXJpYVNlbGVjdGlvbik7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZXMub25DaGFuZ2Uob25DaGFuZ2VQcm9wcyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LCBbYXJpYVNlbGVjdGlvbiwgbWVzc2FnZXMsIGlzT3B0aW9uRGlzYWJsZWQsIHNlbGVjdFZhbHVlLCBnZXRPcHRpb25MYWJlbF0pO1xuICB2YXIgYXJpYUZvY3VzZWQgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZm9jdXNNc2cgPSAnJztcbiAgICB2YXIgZm9jdXNlZCA9IGZvY3VzZWRPcHRpb24gfHwgZm9jdXNlZFZhbHVlO1xuICAgIHZhciBpc1NlbGVjdGVkID0gISEoZm9jdXNlZE9wdGlvbiAmJiBzZWxlY3RWYWx1ZSAmJiBzZWxlY3RWYWx1ZS5pbmNsdWRlcyhmb2N1c2VkT3B0aW9uKSk7XG4gICAgaWYgKGZvY3VzZWQgJiYgbWVzc2FnZXMub25Gb2N1cykge1xuICAgICAgdmFyIG9uRm9jdXNQcm9wcyA9IHtcbiAgICAgICAgZm9jdXNlZDogZm9jdXNlZCxcbiAgICAgICAgbGFiZWw6IGdldE9wdGlvbkxhYmVsKGZvY3VzZWQpLFxuICAgICAgICBpc0Rpc2FibGVkOiBpc09wdGlvbkRpc2FibGVkKGZvY3VzZWQsIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgaXNTZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgb3B0aW9uczogZm9jdXNhYmxlT3B0aW9ucyxcbiAgICAgICAgY29udGV4dDogZm9jdXNlZCA9PT0gZm9jdXNlZE9wdGlvbiA/ICdtZW51JyA6ICd2YWx1ZScsXG4gICAgICAgIHNlbGVjdFZhbHVlOiBzZWxlY3RWYWx1ZSxcbiAgICAgICAgaXNBcHBsZURldmljZTogaXNBcHBsZURldmljZVxuICAgICAgfTtcbiAgICAgIGZvY3VzTXNnID0gbWVzc2FnZXMub25Gb2N1cyhvbkZvY3VzUHJvcHMpO1xuICAgIH1cbiAgICByZXR1cm4gZm9jdXNNc2c7XG4gIH0sIFtmb2N1c2VkT3B0aW9uLCBmb2N1c2VkVmFsdWUsIGdldE9wdGlvbkxhYmVsLCBpc09wdGlvbkRpc2FibGVkLCBtZXNzYWdlcywgZm9jdXNhYmxlT3B0aW9ucywgc2VsZWN0VmFsdWUsIGlzQXBwbGVEZXZpY2VdKTtcbiAgdmFyIGFyaWFSZXN1bHRzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlc3VsdHNNc2cgPSAnJztcbiAgICBpZiAobWVudUlzT3BlbiAmJiBvcHRpb25zLmxlbmd0aCAmJiAhaXNMb2FkaW5nICYmIG1lc3NhZ2VzLm9uRmlsdGVyKSB7XG4gICAgICB2YXIgcmVzdWx0c01lc3NhZ2UgPSBzY3JlZW5SZWFkZXJTdGF0dXMoe1xuICAgICAgICBjb3VudDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGhcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0c01zZyA9IG1lc3NhZ2VzLm9uRmlsdGVyKHtcbiAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZSxcbiAgICAgICAgcmVzdWx0c01lc3NhZ2U6IHJlc3VsdHNNZXNzYWdlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNNc2c7XG4gIH0sIFtmb2N1c2FibGVPcHRpb25zLCBpbnB1dFZhbHVlLCBtZW51SXNPcGVuLCBtZXNzYWdlcywgb3B0aW9ucywgc2NyZWVuUmVhZGVyU3RhdHVzLCBpc0xvYWRpbmddKTtcbiAgdmFyIGlzSW5pdGlhbEZvY3VzID0gKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cyc7XG4gIHZhciBhcmlhR3VpZGFuY2UgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZ3VpZGFuY2VNc2cgPSAnJztcbiAgICBpZiAobWVzc2FnZXMuZ3VpZGFuY2UpIHtcbiAgICAgIHZhciBjb250ZXh0ID0gZm9jdXNlZFZhbHVlID8gJ3ZhbHVlJyA6IG1lbnVJc09wZW4gPyAnbWVudScgOiAnaW5wdXQnO1xuICAgICAgZ3VpZGFuY2VNc2cgPSBtZXNzYWdlcy5ndWlkYW5jZSh7XG4gICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBpc0Rpc2FibGVkOiBmb2N1c2VkT3B0aW9uICYmIGlzT3B0aW9uRGlzYWJsZWQoZm9jdXNlZE9wdGlvbiwgc2VsZWN0VmFsdWUpLFxuICAgICAgICBpc011bHRpOiBpc011bHRpLFxuICAgICAgICBpc1NlYXJjaGFibGU6IGlzU2VhcmNoYWJsZSxcbiAgICAgICAgdGFiU2VsZWN0c1ZhbHVlOiB0YWJTZWxlY3RzVmFsdWUsXG4gICAgICAgIGlzSW5pdGlhbEZvY3VzOiBpc0luaXRpYWxGb2N1c1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBndWlkYW5jZU1zZztcbiAgfSwgW2FyaWFMYWJlbCwgZm9jdXNlZE9wdGlvbiwgZm9jdXNlZFZhbHVlLCBpc011bHRpLCBpc09wdGlvbkRpc2FibGVkLCBpc1NlYXJjaGFibGUsIG1lbnVJc09wZW4sIG1lc3NhZ2VzLCBzZWxlY3RWYWx1ZSwgdGFiU2VsZWN0c1ZhbHVlLCBpc0luaXRpYWxGb2N1c10pO1xuICB2YXIgU2NyZWVuUmVhZGVyVGV4dCA9IGpzeChGcmFnbWVudCwgbnVsbCwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1zZWxlY3Rpb25cIlxuICB9LCBhcmlhU2VsZWN0ZWQpLCBqc3goXCJzcGFuXCIsIHtcbiAgICBpZDogXCJhcmlhLWZvY3VzZWRcIlxuICB9LCBhcmlhRm9jdXNlZCksIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtcmVzdWx0c1wiXG4gIH0sIGFyaWFSZXN1bHRzKSwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1ndWlkYW5jZVwiXG4gIH0sIGFyaWFHdWlkYW5jZSkpO1xuICByZXR1cm4ganN4KEZyYWdtZW50LCBudWxsLCBqc3goQTExeVRleHQkMSwge1xuICAgIGlkOiBpZFxuICB9LCBpc0luaXRpYWxGb2N1cyAmJiBTY3JlZW5SZWFkZXJUZXh0KSwganN4KEExMXlUZXh0JDEsIHtcbiAgICBcImFyaWEtbGl2ZVwiOiBhcmlhTGl2ZSxcbiAgICBcImFyaWEtYXRvbWljXCI6IFwiZmFsc2VcIixcbiAgICBcImFyaWEtcmVsZXZhbnRcIjogXCJhZGRpdGlvbnMgdGV4dFwiLFxuICAgIHJvbGU6IFwibG9nXCJcbiAgfSwgaXNGb2N1c2VkICYmICFpc0luaXRpYWxGb2N1cyAmJiBTY3JlZW5SZWFkZXJUZXh0KSk7XG59O1xudmFyIExpdmVSZWdpb24kMSA9IExpdmVSZWdpb247XG5cbnZhciBkaWFjcml0aWNzID0gW3tcbiAgYmFzZTogJ0EnLFxuICBsZXR0ZXJzOiBcIkFcXHUyNEI2XFx1RkYyMVxceEMwXFx4QzFcXHhDMlxcdTFFQTZcXHUxRUE0XFx1MUVBQVxcdTFFQThcXHhDM1xcdTAxMDBcXHUwMTAyXFx1MUVCMFxcdTFFQUVcXHUxRUI0XFx1MUVCMlxcdTAyMjZcXHUwMUUwXFx4QzRcXHUwMURFXFx1MUVBMlxceEM1XFx1MDFGQVxcdTAxQ0RcXHUwMjAwXFx1MDIwMlxcdTFFQTBcXHUxRUFDXFx1MUVCNlxcdTFFMDBcXHUwMTA0XFx1MDIzQVxcdTJDNkZcIlxufSwge1xuICBiYXNlOiAnQUEnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzJcIlxufSwge1xuICBiYXNlOiAnQUUnLFxuICBsZXR0ZXJzOiBcIlxceEM2XFx1MDFGQ1xcdTAxRTJcIlxufSwge1xuICBiYXNlOiAnQU8nLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzRcIlxufSwge1xuICBiYXNlOiAnQVUnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzZcIlxufSwge1xuICBiYXNlOiAnQVYnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzhcXHVBNzNBXCJcbn0sIHtcbiAgYmFzZTogJ0FZJyxcbiAgbGV0dGVyczogXCJcXHVBNzNDXCJcbn0sIHtcbiAgYmFzZTogJ0InLFxuICBsZXR0ZXJzOiBcIkJcXHUyNEI3XFx1RkYyMlxcdTFFMDJcXHUxRTA0XFx1MUUwNlxcdTAyNDNcXHUwMTgyXFx1MDE4MVwiXG59LCB7XG4gIGJhc2U6ICdDJyxcbiAgbGV0dGVyczogXCJDXFx1MjRCOFxcdUZGMjNcXHUwMTA2XFx1MDEwOFxcdTAxMEFcXHUwMTBDXFx4QzdcXHUxRTA4XFx1MDE4N1xcdTAyM0JcXHVBNzNFXCJcbn0sIHtcbiAgYmFzZTogJ0QnLFxuICBsZXR0ZXJzOiBcIkRcXHUyNEI5XFx1RkYyNFxcdTFFMEFcXHUwMTBFXFx1MUUwQ1xcdTFFMTBcXHUxRTEyXFx1MUUwRVxcdTAxMTBcXHUwMThCXFx1MDE4QVxcdTAxODlcXHVBNzc5XCJcbn0sIHtcbiAgYmFzZTogJ0RaJyxcbiAgbGV0dGVyczogXCJcXHUwMUYxXFx1MDFDNFwiXG59LCB7XG4gIGJhc2U6ICdEeicsXG4gIGxldHRlcnM6IFwiXFx1MDFGMlxcdTAxQzVcIlxufSwge1xuICBiYXNlOiAnRScsXG4gIGxldHRlcnM6IFwiRVxcdTI0QkFcXHVGRjI1XFx4QzhcXHhDOVxceENBXFx1MUVDMFxcdTFFQkVcXHUxRUM0XFx1MUVDMlxcdTFFQkNcXHUwMTEyXFx1MUUxNFxcdTFFMTZcXHUwMTE0XFx1MDExNlxceENCXFx1MUVCQVxcdTAxMUFcXHUwMjA0XFx1MDIwNlxcdTFFQjhcXHUxRUM2XFx1MDIyOFxcdTFFMUNcXHUwMTE4XFx1MUUxOFxcdTFFMUFcXHUwMTkwXFx1MDE4RVwiXG59LCB7XG4gIGJhc2U6ICdGJyxcbiAgbGV0dGVyczogXCJGXFx1MjRCQlxcdUZGMjZcXHUxRTFFXFx1MDE5MVxcdUE3N0JcIlxufSwge1xuICBiYXNlOiAnRycsXG4gIGxldHRlcnM6IFwiR1xcdTI0QkNcXHVGRjI3XFx1MDFGNFxcdTAxMUNcXHUxRTIwXFx1MDExRVxcdTAxMjBcXHUwMUU2XFx1MDEyMlxcdTAxRTRcXHUwMTkzXFx1QTdBMFxcdUE3N0RcXHVBNzdFXCJcbn0sIHtcbiAgYmFzZTogJ0gnLFxuICBsZXR0ZXJzOiBcIkhcXHUyNEJEXFx1RkYyOFxcdTAxMjRcXHUxRTIyXFx1MUUyNlxcdTAyMUVcXHUxRTI0XFx1MUUyOFxcdTFFMkFcXHUwMTI2XFx1MkM2N1xcdTJDNzVcXHVBNzhEXCJcbn0sIHtcbiAgYmFzZTogJ0knLFxuICBsZXR0ZXJzOiBcIklcXHUyNEJFXFx1RkYyOVxceENDXFx4Q0RcXHhDRVxcdTAxMjhcXHUwMTJBXFx1MDEyQ1xcdTAxMzBcXHhDRlxcdTFFMkVcXHUxRUM4XFx1MDFDRlxcdTAyMDhcXHUwMjBBXFx1MUVDQVxcdTAxMkVcXHUxRTJDXFx1MDE5N1wiXG59LCB7XG4gIGJhc2U6ICdKJyxcbiAgbGV0dGVyczogXCJKXFx1MjRCRlxcdUZGMkFcXHUwMTM0XFx1MDI0OFwiXG59LCB7XG4gIGJhc2U6ICdLJyxcbiAgbGV0dGVyczogXCJLXFx1MjRDMFxcdUZGMkJcXHUxRTMwXFx1MDFFOFxcdTFFMzJcXHUwMTM2XFx1MUUzNFxcdTAxOThcXHUyQzY5XFx1QTc0MFxcdUE3NDJcXHVBNzQ0XFx1QTdBMlwiXG59LCB7XG4gIGJhc2U6ICdMJyxcbiAgbGV0dGVyczogXCJMXFx1MjRDMVxcdUZGMkNcXHUwMTNGXFx1MDEzOVxcdTAxM0RcXHUxRTM2XFx1MUUzOFxcdTAxM0JcXHUxRTNDXFx1MUUzQVxcdTAxNDFcXHUwMjNEXFx1MkM2MlxcdTJDNjBcXHVBNzQ4XFx1QTc0NlxcdUE3ODBcIlxufSwge1xuICBiYXNlOiAnTEonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzdcIlxufSwge1xuICBiYXNlOiAnTGonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzhcIlxufSwge1xuICBiYXNlOiAnTScsXG4gIGxldHRlcnM6IFwiTVxcdTI0QzJcXHVGRjJEXFx1MUUzRVxcdTFFNDBcXHUxRTQyXFx1MkM2RVxcdTAxOUNcIlxufSwge1xuICBiYXNlOiAnTicsXG4gIGxldHRlcnM6IFwiTlxcdTI0QzNcXHVGRjJFXFx1MDFGOFxcdTAxNDNcXHhEMVxcdTFFNDRcXHUwMTQ3XFx1MUU0NlxcdTAxNDVcXHUxRTRBXFx1MUU0OFxcdTAyMjBcXHUwMTlEXFx1QTc5MFxcdUE3QTRcIlxufSwge1xuICBiYXNlOiAnTkonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0FcIlxufSwge1xuICBiYXNlOiAnTmonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0JcIlxufSwge1xuICBiYXNlOiAnTycsXG4gIGxldHRlcnM6IFwiT1xcdTI0QzRcXHVGRjJGXFx4RDJcXHhEM1xceEQ0XFx1MUVEMlxcdTFFRDBcXHUxRUQ2XFx1MUVENFxceEQ1XFx1MUU0Q1xcdTAyMkNcXHUxRTRFXFx1MDE0Q1xcdTFFNTBcXHUxRTUyXFx1MDE0RVxcdTAyMkVcXHUwMjMwXFx4RDZcXHUwMjJBXFx1MUVDRVxcdTAxNTBcXHUwMUQxXFx1MDIwQ1xcdTAyMEVcXHUwMUEwXFx1MUVEQ1xcdTFFREFcXHUxRUUwXFx1MUVERVxcdTFFRTJcXHUxRUNDXFx1MUVEOFxcdTAxRUFcXHUwMUVDXFx4RDhcXHUwMUZFXFx1MDE4NlxcdTAxOUZcXHVBNzRBXFx1QTc0Q1wiXG59LCB7XG4gIGJhc2U6ICdPSScsXG4gIGxldHRlcnM6IFwiXFx1MDFBMlwiXG59LCB7XG4gIGJhc2U6ICdPTycsXG4gIGxldHRlcnM6IFwiXFx1QTc0RVwiXG59LCB7XG4gIGJhc2U6ICdPVScsXG4gIGxldHRlcnM6IFwiXFx1MDIyMlwiXG59LCB7XG4gIGJhc2U6ICdQJyxcbiAgbGV0dGVyczogXCJQXFx1MjRDNVxcdUZGMzBcXHUxRTU0XFx1MUU1NlxcdTAxQTRcXHUyQzYzXFx1QTc1MFxcdUE3NTJcXHVBNzU0XCJcbn0sIHtcbiAgYmFzZTogJ1EnLFxuICBsZXR0ZXJzOiBcIlFcXHUyNEM2XFx1RkYzMVxcdUE3NTZcXHVBNzU4XFx1MDI0QVwiXG59LCB7XG4gIGJhc2U6ICdSJyxcbiAgbGV0dGVyczogXCJSXFx1MjRDN1xcdUZGMzJcXHUwMTU0XFx1MUU1OFxcdTAxNThcXHUwMjEwXFx1MDIxMlxcdTFFNUFcXHUxRTVDXFx1MDE1NlxcdTFFNUVcXHUwMjRDXFx1MkM2NFxcdUE3NUFcXHVBN0E2XFx1QTc4MlwiXG59LCB7XG4gIGJhc2U6ICdTJyxcbiAgbGV0dGVyczogXCJTXFx1MjRDOFxcdUZGMzNcXHUxRTlFXFx1MDE1QVxcdTFFNjRcXHUwMTVDXFx1MUU2MFxcdTAxNjBcXHUxRTY2XFx1MUU2MlxcdTFFNjhcXHUwMjE4XFx1MDE1RVxcdTJDN0VcXHVBN0E4XFx1QTc4NFwiXG59LCB7XG4gIGJhc2U6ICdUJyxcbiAgbGV0dGVyczogXCJUXFx1MjRDOVxcdUZGMzRcXHUxRTZBXFx1MDE2NFxcdTFFNkNcXHUwMjFBXFx1MDE2MlxcdTFFNzBcXHUxRTZFXFx1MDE2NlxcdTAxQUNcXHUwMUFFXFx1MDIzRVxcdUE3ODZcIlxufSwge1xuICBiYXNlOiAnVFonLFxuICBsZXR0ZXJzOiBcIlxcdUE3MjhcIlxufSwge1xuICBiYXNlOiAnVScsXG4gIGxldHRlcnM6IFwiVVxcdTI0Q0FcXHVGRjM1XFx4RDlcXHhEQVxceERCXFx1MDE2OFxcdTFFNzhcXHUwMTZBXFx1MUU3QVxcdTAxNkNcXHhEQ1xcdTAxREJcXHUwMUQ3XFx1MDFENVxcdTAxRDlcXHUxRUU2XFx1MDE2RVxcdTAxNzBcXHUwMUQzXFx1MDIxNFxcdTAyMTZcXHUwMUFGXFx1MUVFQVxcdTFFRThcXHUxRUVFXFx1MUVFQ1xcdTFFRjBcXHUxRUU0XFx1MUU3MlxcdTAxNzJcXHUxRTc2XFx1MUU3NFxcdTAyNDRcIlxufSwge1xuICBiYXNlOiAnVicsXG4gIGxldHRlcnM6IFwiVlxcdTI0Q0JcXHVGRjM2XFx1MUU3Q1xcdTFFN0VcXHUwMUIyXFx1QTc1RVxcdTAyNDVcIlxufSwge1xuICBiYXNlOiAnVlknLFxuICBsZXR0ZXJzOiBcIlxcdUE3NjBcIlxufSwge1xuICBiYXNlOiAnVycsXG4gIGxldHRlcnM6IFwiV1xcdTI0Q0NcXHVGRjM3XFx1MUU4MFxcdTFFODJcXHUwMTc0XFx1MUU4NlxcdTFFODRcXHUxRTg4XFx1MkM3MlwiXG59LCB7XG4gIGJhc2U6ICdYJyxcbiAgbGV0dGVyczogXCJYXFx1MjRDRFxcdUZGMzhcXHUxRThBXFx1MUU4Q1wiXG59LCB7XG4gIGJhc2U6ICdZJyxcbiAgbGV0dGVyczogXCJZXFx1MjRDRVxcdUZGMzlcXHUxRUYyXFx4RERcXHUwMTc2XFx1MUVGOFxcdTAyMzJcXHUxRThFXFx1MDE3OFxcdTFFRjZcXHUxRUY0XFx1MDFCM1xcdTAyNEVcXHUxRUZFXCJcbn0sIHtcbiAgYmFzZTogJ1onLFxuICBsZXR0ZXJzOiBcIlpcXHUyNENGXFx1RkYzQVxcdTAxNzlcXHUxRTkwXFx1MDE3QlxcdTAxN0RcXHUxRTkyXFx1MUU5NFxcdTAxQjVcXHUwMjI0XFx1MkM3RlxcdTJDNkJcXHVBNzYyXCJcbn0sIHtcbiAgYmFzZTogJ2EnLFxuICBsZXR0ZXJzOiBcImFcXHUyNEQwXFx1RkY0MVxcdTFFOUFcXHhFMFxceEUxXFx4RTJcXHUxRUE3XFx1MUVBNVxcdTFFQUJcXHUxRUE5XFx4RTNcXHUwMTAxXFx1MDEwM1xcdTFFQjFcXHUxRUFGXFx1MUVCNVxcdTFFQjNcXHUwMjI3XFx1MDFFMVxceEU0XFx1MDFERlxcdTFFQTNcXHhFNVxcdTAxRkJcXHUwMUNFXFx1MDIwMVxcdTAyMDNcXHUxRUExXFx1MUVBRFxcdTFFQjdcXHUxRTAxXFx1MDEwNVxcdTJDNjVcXHUwMjUwXCJcbn0sIHtcbiAgYmFzZTogJ2FhJyxcbiAgbGV0dGVyczogXCJcXHVBNzMzXCJcbn0sIHtcbiAgYmFzZTogJ2FlJyxcbiAgbGV0dGVyczogXCJcXHhFNlxcdTAxRkRcXHUwMUUzXCJcbn0sIHtcbiAgYmFzZTogJ2FvJyxcbiAgbGV0dGVyczogXCJcXHVBNzM1XCJcbn0sIHtcbiAgYmFzZTogJ2F1JyxcbiAgbGV0dGVyczogXCJcXHVBNzM3XCJcbn0sIHtcbiAgYmFzZTogJ2F2JyxcbiAgbGV0dGVyczogXCJcXHVBNzM5XFx1QTczQlwiXG59LCB7XG4gIGJhc2U6ICdheScsXG4gIGxldHRlcnM6IFwiXFx1QTczRFwiXG59LCB7XG4gIGJhc2U6ICdiJyxcbiAgbGV0dGVyczogXCJiXFx1MjREMVxcdUZGNDJcXHUxRTAzXFx1MUUwNVxcdTFFMDdcXHUwMTgwXFx1MDE4M1xcdTAyNTNcIlxufSwge1xuICBiYXNlOiAnYycsXG4gIGxldHRlcnM6IFwiY1xcdTI0RDJcXHVGRjQzXFx1MDEwN1xcdTAxMDlcXHUwMTBCXFx1MDEwRFxceEU3XFx1MUUwOVxcdTAxODhcXHUwMjNDXFx1QTczRlxcdTIxODRcIlxufSwge1xuICBiYXNlOiAnZCcsXG4gIGxldHRlcnM6IFwiZFxcdTI0RDNcXHVGRjQ0XFx1MUUwQlxcdTAxMEZcXHUxRTBEXFx1MUUxMVxcdTFFMTNcXHUxRTBGXFx1MDExMVxcdTAxOENcXHUwMjU2XFx1MDI1N1xcdUE3N0FcIlxufSwge1xuICBiYXNlOiAnZHonLFxuICBsZXR0ZXJzOiBcIlxcdTAxRjNcXHUwMUM2XCJcbn0sIHtcbiAgYmFzZTogJ2UnLFxuICBsZXR0ZXJzOiBcImVcXHUyNEQ0XFx1RkY0NVxceEU4XFx4RTlcXHhFQVxcdTFFQzFcXHUxRUJGXFx1MUVDNVxcdTFFQzNcXHUxRUJEXFx1MDExM1xcdTFFMTVcXHUxRTE3XFx1MDExNVxcdTAxMTdcXHhFQlxcdTFFQkJcXHUwMTFCXFx1MDIwNVxcdTAyMDdcXHUxRUI5XFx1MUVDN1xcdTAyMjlcXHUxRTFEXFx1MDExOVxcdTFFMTlcXHUxRTFCXFx1MDI0N1xcdTAyNUJcXHUwMUREXCJcbn0sIHtcbiAgYmFzZTogJ2YnLFxuICBsZXR0ZXJzOiBcImZcXHUyNEQ1XFx1RkY0NlxcdTFFMUZcXHUwMTkyXFx1QTc3Q1wiXG59LCB7XG4gIGJhc2U6ICdnJyxcbiAgbGV0dGVyczogXCJnXFx1MjRENlxcdUZGNDdcXHUwMUY1XFx1MDExRFxcdTFFMjFcXHUwMTFGXFx1MDEyMVxcdTAxRTdcXHUwMTIzXFx1MDFFNVxcdTAyNjBcXHVBN0ExXFx1MUQ3OVxcdUE3N0ZcIlxufSwge1xuICBiYXNlOiAnaCcsXG4gIGxldHRlcnM6IFwiaFxcdTI0RDdcXHVGRjQ4XFx1MDEyNVxcdTFFMjNcXHUxRTI3XFx1MDIxRlxcdTFFMjVcXHUxRTI5XFx1MUUyQlxcdTFFOTZcXHUwMTI3XFx1MkM2OFxcdTJDNzZcXHUwMjY1XCJcbn0sIHtcbiAgYmFzZTogJ2h2JyxcbiAgbGV0dGVyczogXCJcXHUwMTk1XCJcbn0sIHtcbiAgYmFzZTogJ2knLFxuICBsZXR0ZXJzOiBcImlcXHUyNEQ4XFx1RkY0OVxceEVDXFx4RURcXHhFRVxcdTAxMjlcXHUwMTJCXFx1MDEyRFxceEVGXFx1MUUyRlxcdTFFQzlcXHUwMUQwXFx1MDIwOVxcdTAyMEJcXHUxRUNCXFx1MDEyRlxcdTFFMkRcXHUwMjY4XFx1MDEzMVwiXG59LCB7XG4gIGJhc2U6ICdqJyxcbiAgbGV0dGVyczogXCJqXFx1MjREOVxcdUZGNEFcXHUwMTM1XFx1MDFGMFxcdTAyNDlcIlxufSwge1xuICBiYXNlOiAnaycsXG4gIGxldHRlcnM6IFwia1xcdTI0REFcXHVGRjRCXFx1MUUzMVxcdTAxRTlcXHUxRTMzXFx1MDEzN1xcdTFFMzVcXHUwMTk5XFx1MkM2QVxcdUE3NDFcXHVBNzQzXFx1QTc0NVxcdUE3QTNcIlxufSwge1xuICBiYXNlOiAnbCcsXG4gIGxldHRlcnM6IFwibFxcdTI0REJcXHVGRjRDXFx1MDE0MFxcdTAxM0FcXHUwMTNFXFx1MUUzN1xcdTFFMzlcXHUwMTNDXFx1MUUzRFxcdTFFM0JcXHUwMTdGXFx1MDE0MlxcdTAxOUFcXHUwMjZCXFx1MkM2MVxcdUE3NDlcXHVBNzgxXFx1QTc0N1wiXG59LCB7XG4gIGJhc2U6ICdsaicsXG4gIGxldHRlcnM6IFwiXFx1MDFDOVwiXG59LCB7XG4gIGJhc2U6ICdtJyxcbiAgbGV0dGVyczogXCJtXFx1MjREQ1xcdUZGNERcXHUxRTNGXFx1MUU0MVxcdTFFNDNcXHUwMjcxXFx1MDI2RlwiXG59LCB7XG4gIGJhc2U6ICduJyxcbiAgbGV0dGVyczogXCJuXFx1MjRERFxcdUZGNEVcXHUwMUY5XFx1MDE0NFxceEYxXFx1MUU0NVxcdTAxNDhcXHUxRTQ3XFx1MDE0NlxcdTFFNEJcXHUxRTQ5XFx1MDE5RVxcdTAyNzJcXHUwMTQ5XFx1QTc5MVxcdUE3QTVcIlxufSwge1xuICBiYXNlOiAnbmonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0NcIlxufSwge1xuICBiYXNlOiAnbycsXG4gIGxldHRlcnM6IFwib1xcdTI0REVcXHVGRjRGXFx4RjJcXHhGM1xceEY0XFx1MUVEM1xcdTFFRDFcXHUxRUQ3XFx1MUVENVxceEY1XFx1MUU0RFxcdTAyMkRcXHUxRTRGXFx1MDE0RFxcdTFFNTFcXHUxRTUzXFx1MDE0RlxcdTAyMkZcXHUwMjMxXFx4RjZcXHUwMjJCXFx1MUVDRlxcdTAxNTFcXHUwMUQyXFx1MDIwRFxcdTAyMEZcXHUwMUExXFx1MUVERFxcdTFFREJcXHUxRUUxXFx1MUVERlxcdTFFRTNcXHUxRUNEXFx1MUVEOVxcdTAxRUJcXHUwMUVEXFx4RjhcXHUwMUZGXFx1MDI1NFxcdUE3NEJcXHVBNzREXFx1MDI3NVwiXG59LCB7XG4gIGJhc2U6ICdvaScsXG4gIGxldHRlcnM6IFwiXFx1MDFBM1wiXG59LCB7XG4gIGJhc2U6ICdvdScsXG4gIGxldHRlcnM6IFwiXFx1MDIyM1wiXG59LCB7XG4gIGJhc2U6ICdvbycsXG4gIGxldHRlcnM6IFwiXFx1QTc0RlwiXG59LCB7XG4gIGJhc2U6ICdwJyxcbiAgbGV0dGVyczogXCJwXFx1MjRERlxcdUZGNTBcXHUxRTU1XFx1MUU1N1xcdTAxQTVcXHUxRDdEXFx1QTc1MVxcdUE3NTNcXHVBNzU1XCJcbn0sIHtcbiAgYmFzZTogJ3EnLFxuICBsZXR0ZXJzOiBcInFcXHUyNEUwXFx1RkY1MVxcdTAyNEJcXHVBNzU3XFx1QTc1OVwiXG59LCB7XG4gIGJhc2U6ICdyJyxcbiAgbGV0dGVyczogXCJyXFx1MjRFMVxcdUZGNTJcXHUwMTU1XFx1MUU1OVxcdTAxNTlcXHUwMjExXFx1MDIxM1xcdTFFNUJcXHUxRTVEXFx1MDE1N1xcdTFFNUZcXHUwMjREXFx1MDI3RFxcdUE3NUJcXHVBN0E3XFx1QTc4M1wiXG59LCB7XG4gIGJhc2U6ICdzJyxcbiAgbGV0dGVyczogXCJzXFx1MjRFMlxcdUZGNTNcXHhERlxcdTAxNUJcXHUxRTY1XFx1MDE1RFxcdTFFNjFcXHUwMTYxXFx1MUU2N1xcdTFFNjNcXHUxRTY5XFx1MDIxOVxcdTAxNUZcXHUwMjNGXFx1QTdBOVxcdUE3ODVcXHUxRTlCXCJcbn0sIHtcbiAgYmFzZTogJ3QnLFxuICBsZXR0ZXJzOiBcInRcXHUyNEUzXFx1RkY1NFxcdTFFNkJcXHUxRTk3XFx1MDE2NVxcdTFFNkRcXHUwMjFCXFx1MDE2M1xcdTFFNzFcXHUxRTZGXFx1MDE2N1xcdTAxQURcXHUwMjg4XFx1MkM2NlxcdUE3ODdcIlxufSwge1xuICBiYXNlOiAndHonLFxuICBsZXR0ZXJzOiBcIlxcdUE3MjlcIlxufSwge1xuICBiYXNlOiAndScsXG4gIGxldHRlcnM6IFwidVxcdTI0RTRcXHVGRjU1XFx4RjlcXHhGQVxceEZCXFx1MDE2OVxcdTFFNzlcXHUwMTZCXFx1MUU3QlxcdTAxNkRcXHhGQ1xcdTAxRENcXHUwMUQ4XFx1MDFENlxcdTAxREFcXHUxRUU3XFx1MDE2RlxcdTAxNzFcXHUwMUQ0XFx1MDIxNVxcdTAyMTdcXHUwMUIwXFx1MUVFQlxcdTFFRTlcXHUxRUVGXFx1MUVFRFxcdTFFRjFcXHUxRUU1XFx1MUU3M1xcdTAxNzNcXHUxRTc3XFx1MUU3NVxcdTAyODlcIlxufSwge1xuICBiYXNlOiAndicsXG4gIGxldHRlcnM6IFwidlxcdTI0RTVcXHVGRjU2XFx1MUU3RFxcdTFFN0ZcXHUwMjhCXFx1QTc1RlxcdTAyOENcIlxufSwge1xuICBiYXNlOiAndnknLFxuICBsZXR0ZXJzOiBcIlxcdUE3NjFcIlxufSwge1xuICBiYXNlOiAndycsXG4gIGxldHRlcnM6IFwid1xcdTI0RTZcXHVGRjU3XFx1MUU4MVxcdTFFODNcXHUwMTc1XFx1MUU4N1xcdTFFODVcXHUxRTk4XFx1MUU4OVxcdTJDNzNcIlxufSwge1xuICBiYXNlOiAneCcsXG4gIGxldHRlcnM6IFwieFxcdTI0RTdcXHVGRjU4XFx1MUU4QlxcdTFFOERcIlxufSwge1xuICBiYXNlOiAneScsXG4gIGxldHRlcnM6IFwieVxcdTI0RThcXHVGRjU5XFx1MUVGM1xceEZEXFx1MDE3N1xcdTFFRjlcXHUwMjMzXFx1MUU4RlxceEZGXFx1MUVGN1xcdTFFOTlcXHUxRUY1XFx1MDFCNFxcdTAyNEZcXHUxRUZGXCJcbn0sIHtcbiAgYmFzZTogJ3onLFxuICBsZXR0ZXJzOiBcInpcXHUyNEU5XFx1RkY1QVxcdTAxN0FcXHUxRTkxXFx1MDE3Q1xcdTAxN0VcXHUxRTkzXFx1MUU5NVxcdTAxQjZcXHUwMjI1XFx1MDI0MFxcdTJDNkNcXHVBNzYzXCJcbn1dO1xudmFyIGFueURpYWNyaXRpYyA9IG5ldyBSZWdFeHAoJ1snICsgZGlhY3JpdGljcy5tYXAoZnVuY3Rpb24gKGQpIHtcbiAgcmV0dXJuIGQubGV0dGVycztcbn0pLmpvaW4oJycpICsgJ10nLCAnZycpO1xudmFyIGRpYWNyaXRpY1RvQmFzZSA9IHt9O1xuZm9yICh2YXIgaSA9IDA7IGkgPCBkaWFjcml0aWNzLmxlbmd0aDsgaSsrKSB7XG4gIHZhciBkaWFjcml0aWMgPSBkaWFjcml0aWNzW2ldO1xuICBmb3IgKHZhciBqID0gMDsgaiA8IGRpYWNyaXRpYy5sZXR0ZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgZGlhY3JpdGljVG9CYXNlW2RpYWNyaXRpYy5sZXR0ZXJzW2pdXSA9IGRpYWNyaXRpYy5iYXNlO1xuICB9XG59XG52YXIgc3RyaXBEaWFjcml0aWNzID0gZnVuY3Rpb24gc3RyaXBEaWFjcml0aWNzKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoYW55RGlhY3JpdGljLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZGlhY3JpdGljVG9CYXNlW21hdGNoXTtcbiAgfSk7XG59O1xuXG52YXIgbWVtb2l6ZWRTdHJpcERpYWNyaXRpY3NGb3JJbnB1dCA9IG1lbW9pemVPbmUoc3RyaXBEaWFjcml0aWNzKTtcbnZhciB0cmltU3RyaW5nID0gZnVuY3Rpb24gdHJpbVN0cmluZyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJyk7XG59O1xudmFyIGRlZmF1bHRTdHJpbmdpZnkgPSBmdW5jdGlvbiBkZWZhdWx0U3RyaW5naWZ5KG9wdGlvbikge1xuICByZXR1cm4gXCJcIi5jb25jYXQob3B0aW9uLmxhYmVsLCBcIiBcIikuY29uY2F0KG9wdGlvbi52YWx1ZSk7XG59O1xudmFyIGNyZWF0ZUZpbHRlciA9IGZ1bmN0aW9uIGNyZWF0ZUZpbHRlcihjb25maWcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvcHRpb24sIHJhd0lucHV0KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgaWYgKG9wdGlvbi5kYXRhLl9faXNOZXdfXykgcmV0dXJuIHRydWU7XG4gICAgdmFyIF9pZ25vcmVDYXNlJGlnbm9yZUFjYyA9IF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBpZ25vcmVDYXNlOiB0cnVlLFxuICAgICAgICBpZ25vcmVBY2NlbnRzOiB0cnVlLFxuICAgICAgICBzdHJpbmdpZnk6IGRlZmF1bHRTdHJpbmdpZnksXG4gICAgICAgIHRyaW06IHRydWUsXG4gICAgICAgIG1hdGNoRnJvbTogJ2FueSdcbiAgICAgIH0sIGNvbmZpZyksXG4gICAgICBpZ25vcmVDYXNlID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLmlnbm9yZUNhc2UsXG4gICAgICBpZ25vcmVBY2NlbnRzID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLmlnbm9yZUFjY2VudHMsXG4gICAgICBzdHJpbmdpZnkgPSBfaWdub3JlQ2FzZSRpZ25vcmVBY2Muc3RyaW5naWZ5LFxuICAgICAgdHJpbSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy50cmltLFxuICAgICAgbWF0Y2hGcm9tID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLm1hdGNoRnJvbTtcbiAgICB2YXIgaW5wdXQgPSB0cmltID8gdHJpbVN0cmluZyhyYXdJbnB1dCkgOiByYXdJbnB1dDtcbiAgICB2YXIgY2FuZGlkYXRlID0gdHJpbSA/IHRyaW1TdHJpbmcoc3RyaW5naWZ5KG9wdGlvbikpIDogc3RyaW5naWZ5KG9wdGlvbik7XG4gICAgaWYgKGlnbm9yZUNhc2UpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAoaWdub3JlQWNjZW50cykge1xuICAgICAgaW5wdXQgPSBtZW1vaXplZFN0cmlwRGlhY3JpdGljc0ZvcklucHV0KGlucHV0KTtcbiAgICAgIGNhbmRpZGF0ZSA9IHN0cmlwRGlhY3JpdGljcyhjYW5kaWRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hGcm9tID09PSAnc3RhcnQnID8gY2FuZGlkYXRlLnN1YnN0cigwLCBpbnB1dC5sZW5ndGgpID09PSBpbnB1dCA6IGNhbmRpZGF0ZS5pbmRleE9mKGlucHV0KSA+IC0xO1xuICB9O1xufTtcblxudmFyIF9leGNsdWRlZCA9IFtcImlubmVyUmVmXCJdO1xuZnVuY3Rpb24gRHVtbXlJbnB1dChfcmVmKSB7XG4gIHZhciBpbm5lclJlZiA9IF9yZWYuaW5uZXJSZWYsXG4gICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgdmFyIGZpbHRlcmVkUHJvcHMgPSByZW1vdmVQcm9wcyhwcm9wcywgJ29uRXhpdGVkJywgJ2luJywgJ2VudGVyJywgJ2V4aXQnLCAnYXBwZWFyJyk7XG4gIHJldHVybiBqc3goXCJpbnB1dFwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBmaWx0ZXJlZFByb3BzLCB7XG4gICAgY3NzOiAvKiNfX1BVUkVfXyovY3NzKHtcbiAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgIGJvcmRlcjogMCxcbiAgICAgIC8vIGltcG9ydGFudCEgdGhpcyBoaWRlcyB0aGUgZmxhc2hpbmcgY3Vyc29yXG4gICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gICAgICBvdXRsaW5lOiAwLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICB3aWR0aDogMSxcbiAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICBsZWZ0OiAtMTAwLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKSdcbiAgICB9LCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBcIlwiIDogXCI7bGFiZWw6RHVtbXlJbnB1dDtcIiwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtSMWJXMTVTVzV3ZFhRdWRITjRJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRWGxDVFNJc0ltWnBiR1VpT2lKRWRXMXRlVWx1Y0hWMExuUnplQ0lzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQkFhbk40SUdwemVDQXFMMXh1YVcxd2IzSjBJSHNnVW1WbUlIMGdabkp2YlNBbmNtVmhZM1FuTzF4dWFXMXdiM0owSUhzZ2FuTjRJSDBnWm5KdmJTQW5RR1Z0YjNScGIyNHZjbVZoWTNRbk8xeHVhVzF3YjNKMElIc2djbVZ0YjNabFVISnZjSE1nZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeWM3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdaMWJtTjBhVzl1SUVSMWJXMTVTVzV3ZFhRb2UxeHVJQ0JwYm01bGNsSmxaaXhjYmlBZ0xpNHVjSEp2Y0hOY2JuMDZJRXBUV0M1SmJuUnlhVzV6YVdORmJHVnRaVzUwYzFzbmFXNXdkWFFuWFNBbUlIdGNiaUFnY21WaFpHOXViSGtnYVc1dVpYSlNaV1k2SUZKbFpqeElWRTFNU1c1d2RYUkZiR1Z0Wlc1MFBqdGNibjBwSUh0Y2JpQWdMeThnVW1WdGIzWmxJR0Z1YVcxaGRHbHZiaUJ3Y205d2N5QnViM1FnYldWaGJuUWdabTl5SUVoVVRVd2daV3hsYldWdWRITmNiaUFnWTI5dWMzUWdabWxzZEdWeVpXUlFjbTl3Y3lBOUlISmxiVzkyWlZCeWIzQnpLRnh1SUNBZ0lIQnliM0J6TEZ4dUlDQWdJQ2R2YmtWNGFYUmxaQ2NzWEc0Z0lDQWdKMmx1Snl4Y2JpQWdJQ0FuWlc1MFpYSW5MRnh1SUNBZ0lDZGxlR2wwSnl4Y2JpQWdJQ0FuWVhCd1pXRnlKMXh1SUNBcE8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQR2x1Y0hWMFhHNGdJQ0FnSUNCeVpXWTllMmx1Ym1WeVVtVm1mVnh1SUNBZ0lDQWdleTR1TG1acGJIUmxjbVZrVUhKdmNITjlYRzRnSUNBZ0lDQmpjM005ZTN0Y2JpQWdJQ0FnSUNBZ2JHRmlaV3c2SUNka2RXMXRlVWx1Y0hWMEp5eGNiaUFnSUNBZ0lDQWdMeThnWjJWMElISnBaQ0J2WmlCaGJua2daR1ZtWVhWc2RDQnpkSGxzWlhOY2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpEb2dNQ3hjYmlBZ0lDQWdJQ0FnWW05eVpHVnlPaUF3TEZ4dUlDQWdJQ0FnSUNBdkx5QnBiWEJ2Y25SaGJuUWhJSFJvYVhNZ2FHbGtaWE1nZEdobElHWnNZWE5vYVc1bklHTjFjbk52Y2x4dUlDQWdJQ0FnSUNCallYSmxkRU52Ykc5eU9pQW5kSEpoYm5Od1lYSmxiblFuTEZ4dUlDQWdJQ0FnSUNCbWIyNTBVMmw2WlRvZ0oybHVhR1Z5YVhRbkxGeHVJQ0FnSUNBZ0lDQm5jbWxrUVhKbFlUb2dKekVnTHlBeElDOGdNaUF2SURNbkxGeHVJQ0FnSUNBZ0lDQnZkWFJzYVc1bE9pQXdMRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUF3TEZ4dUlDQWdJQ0FnSUNBdkx5QnBiWEJ2Y25SaGJuUWhJSGRwZEdodmRYUWdZSGRwWkhSb1lDQmljbTkzYzJWeWN5QjNiMjRuZENCaGJHeHZkeUJtYjJOMWMxeHVJQ0FnSUNBZ0lDQjNhV1IwYURvZ01TeGNibHh1SUNBZ0lDQWdJQ0F2THlCeVpXMXZkbVVnWTNWeWMyOXlJRzl1SUdSbGMydDBiM0JjYmlBZ0lDQWdJQ0FnWTI5c2IzSTZJQ2QwY21GdWMzQmhjbVZ1ZENjc1hHNWNiaUFnSUNBZ0lDQWdMeThnY21WdGIzWmxJR04xY25OdmNpQnZiaUJ0YjJKcGJHVWdkMmhwYkhOMElHMWhhVzUwWVdsdWFXNW5JRndpYzJOeWIyeHNJR2x1ZEc4Z2RtbGxkMXdpSUdKbGFHRjJhVzkxY2x4dUlDQWdJQ0FnSUNCc1pXWjBPaUF0TVRBd0xGeHVJQ0FnSUNBZ0lDQnZjR0ZqYVhSNU9pQXdMRnh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nSjNKbGJHRjBhWFpsSnl4Y2JpQWdJQ0FnSUNBZ2RISmhibk5tYjNKdE9pQW5jMk5oYkdVb0xqQXhLU2NzWEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5WEc0aVhYMD0gKi9cIilcbiAgfSkpO1xufVxuXG52YXIgY2FuY2VsU2Nyb2xsID0gZnVuY3Rpb24gY2FuY2VsU2Nyb2xsKGV2ZW50KSB7XG4gIGlmIChldmVudC5jYW5jZWxhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn07XG5mdW5jdGlvbiB1c2VTY3JvbGxDYXB0dXJlKF9yZWYpIHtcbiAgdmFyIGlzRW5hYmxlZCA9IF9yZWYuaXNFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlID0gX3JlZi5vbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlID0gX3JlZi5vbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlID0gX3JlZi5vblRvcEFycml2ZSxcbiAgICBvblRvcExlYXZlID0gX3JlZi5vblRvcExlYXZlO1xuICB2YXIgaXNCb3R0b20gPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgaXNUb3AgPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgdG91Y2hTdGFydCA9IHVzZVJlZigwKTtcbiAgdmFyIHNjcm9sbFRhcmdldCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGhhbmRsZUV2ZW50RGVsdGEgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIGRlbHRhKSB7XG4gICAgaWYgKHNjcm9sbFRhcmdldC5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgdmFyIF9zY3JvbGxUYXJnZXQkY3VycmVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50LFxuICAgICAgc2Nyb2xsVG9wID0gX3Njcm9sbFRhcmdldCRjdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxUYXJnZXQkY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQgPSBfc2Nyb2xsVGFyZ2V0JGN1cnJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIHZhciB0YXJnZXQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBzY3JvbGxUb3A7XG4gICAgdmFyIHNob3VsZENhbmNlbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLy8gcmVzZXQgYm90dG9tL3RvcCBmbGFnc1xuICAgIGlmIChhdmFpbGFibGVTY3JvbGwgPiBkZWx0YSAmJiBpc0JvdHRvbS5jdXJyZW50KSB7XG4gICAgICBpZiAob25Cb3R0b21MZWF2ZSkgb25Cb3R0b21MZWF2ZShldmVudCk7XG4gICAgICBpc0JvdHRvbS5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgaXNUb3AuY3VycmVudCkge1xuICAgICAgaWYgKG9uVG9wTGVhdmUpIG9uVG9wTGVhdmUoZXZlbnQpO1xuICAgICAgaXNUb3AuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGJvdHRvbSBsaW1pdFxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgZGVsdGEgPiBhdmFpbGFibGVTY3JvbGwpIHtcbiAgICAgIGlmIChvbkJvdHRvbUFycml2ZSAmJiAhaXNCb3R0b20uY3VycmVudCkge1xuICAgICAgICBvbkJvdHRvbUFycml2ZShldmVudCk7XG4gICAgICB9XG4gICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gc2Nyb2xsSGVpZ2h0O1xuICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIGlzQm90dG9tLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAvLyB0b3AgbGltaXRcbiAgICB9IGVsc2UgaWYgKCFpc0RlbHRhUG9zaXRpdmUgJiYgLWRlbHRhID4gc2Nyb2xsVG9wKSB7XG4gICAgICBpZiAob25Ub3BBcnJpdmUgJiYgIWlzVG9wLmN1cnJlbnQpIHtcbiAgICAgICAgb25Ub3BBcnJpdmUoZXZlbnQpO1xuICAgICAgfVxuICAgICAgdGFyZ2V0LnNjcm9sbFRvcCA9IDA7XG4gICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgICAgaXNUb3AuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gY2FuY2VsIHNjcm9sbFxuICAgIGlmIChzaG91bGRDYW5jZWxTY3JvbGwpIHtcbiAgICAgIGNhbmNlbFNjcm9sbChldmVudCk7XG4gICAgfVxuICB9LCBbb25Cb3R0b21BcnJpdmUsIG9uQm90dG9tTGVhdmUsIG9uVG9wQXJyaXZlLCBvblRvcExlYXZlXSk7XG4gIHZhciBvbldoZWVsID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZXZlbnQuZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIG9uVG91Y2hTdGFydCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIHNldCB0b3VjaCBzdGFydCBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRvdWNobW92ZSBkZWx0YVxuICAgIHRvdWNoU3RhcnQuY3VycmVudCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gIH0sIFtdKTtcbiAgdmFyIG9uVG91Y2hNb3ZlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIGRlbHRhWSA9IHRvdWNoU3RhcnQuY3VycmVudCAtIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIHN0YXJ0TGlzdGVuaW5nID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgLy8gYmFpbCBlYXJseSBpZiBubyBlbGVtZW50IGlzIGF2YWlsYWJsZSB0byBhdHRhY2ggdG9cbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgdmFyIG5vdFBhc3NpdmUgPSBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPyB7XG4gICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0gOiBmYWxzZTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlLCBub3RQYXNzaXZlKTtcbiAgfSwgW29uVG91Y2hNb3ZlLCBvblRvdWNoU3RhcnQsIG9uV2hlZWxdKTtcbiAgdmFyIHN0b3BMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZWwpIHtcbiAgICAvLyBiYWlsIGVhcmx5IGlmIG5vIGVsZW1lbnQgaXMgYXZhaWxhYmxlIHRvIGRldGFjaCBmcm9tXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgZmFsc2UpO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIGZhbHNlKTtcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSwgZmFsc2UpO1xuICB9LCBbb25Ub3VjaE1vdmUsIG9uVG91Y2hTdGFydCwgb25XaGVlbF0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm47XG4gICAgdmFyIGVsZW1lbnQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICBzdGFydExpc3RlbmluZyhlbGVtZW50KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgc3RvcExpc3RlbmluZyhlbGVtZW50KTtcbiAgICB9O1xuICB9LCBbaXNFbmFibGVkLCBzdGFydExpc3RlbmluZywgc3RvcExpc3RlbmluZ10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbnZhciBTVFlMRV9LRVlTID0gWydib3hTaXppbmcnLCAnaGVpZ2h0JywgJ292ZXJmbG93JywgJ3BhZGRpbmdSaWdodCcsICdwb3NpdGlvbiddO1xudmFyIExPQ0tfU1RZTEVTID0ge1xuICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgLy8gYWNjb3VudCBmb3IgcG9zc2libGUgZGVjbGFyYXRpb24gYHdpZHRoOiAxMDAlO2Agb24gYm9keVxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBoZWlnaHQ6ICcxMDAlJ1xufTtcbmZ1bmN0aW9uIHByZXZlbnRUb3VjaE1vdmUoZSkge1xuICBpZiAoZS5jYW5jZWxhYmxlKSBlLnByZXZlbnREZWZhdWx0KCk7XG59XG5mdW5jdGlvbiBhbGxvd1RvdWNoTW92ZShlKSB7XG4gIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5mdW5jdGlvbiBwcmV2ZW50SW5lcnRpYVNjcm9sbCgpIHtcbiAgdmFyIHRvcCA9IHRoaXMuc2Nyb2xsVG9wO1xuICB2YXIgdG90YWxTY3JvbGwgPSB0aGlzLnNjcm9sbEhlaWdodDtcbiAgdmFyIGN1cnJlbnRTY3JvbGwgPSB0b3AgKyB0aGlzLm9mZnNldEhlaWdodDtcbiAgaWYgKHRvcCA9PT0gMCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gMTtcbiAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsID09PSB0b3RhbFNjcm9sbCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gdG9wIC0gMTtcbiAgfVxufVxuXG4vLyBgb250b3VjaHN0YXJ0YCBjaGVjayB3b3JrcyBvbiBtb3N0IGJyb3dzZXJzXG4vLyBgbWF4VG91Y2hQb2ludHNgIHdvcmtzIG9uIElFMTAvMTEgYW5kIFN1cmZhY2VcbmZ1bmN0aW9uIGlzVG91Y2hEZXZpY2UoKSB7XG4gIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzO1xufVxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG52YXIgYWN0aXZlU2Nyb2xsTG9ja3MgPSAwO1xudmFyIGxpc3RlbmVyT3B0aW9ucyA9IHtcbiAgY2FwdHVyZTogZmFsc2UsXG4gIHBhc3NpdmU6IGZhbHNlXG59O1xuZnVuY3Rpb24gdXNlU2Nyb2xsTG9jayhfcmVmKSB7XG4gIHZhciBpc0VuYWJsZWQgPSBfcmVmLmlzRW5hYmxlZCxcbiAgICBfcmVmJGFjY291bnRGb3JTY3JvbGwgPSBfcmVmLmFjY291bnRGb3JTY3JvbGxiYXJzLFxuICAgIGFjY291bnRGb3JTY3JvbGxiYXJzID0gX3JlZiRhY2NvdW50Rm9yU2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiRhY2NvdW50Rm9yU2Nyb2xsO1xuICB2YXIgb3JpZ2luYWxTdHlsZXMgPSB1c2VSZWYoe30pO1xuICB2YXIgc2Nyb2xsVGFyZ2V0ID0gdXNlUmVmKG51bGwpO1xuICB2YXIgYWRkU2Nyb2xsTG9jayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgIGlmICghY2FuVXNlRE9NKSByZXR1cm47XG4gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmJvZHk7XG4gICAgdmFyIHRhcmdldFN0eWxlID0gdGFyZ2V0ICYmIHRhcmdldC5zdHlsZTtcbiAgICBpZiAoYWNjb3VudEZvclNjcm9sbGJhcnMpIHtcbiAgICAgIC8vIHN0b3JlIGFueSBzdHlsZXMgYWxyZWFkeSBhcHBsaWVkIHRvIHRoZSBib2R5XG4gICAgICBTVFlMRV9LRVlTLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gdGFyZ2V0U3R5bGUgJiYgdGFyZ2V0U3R5bGVba2V5XTtcbiAgICAgICAgb3JpZ2luYWxTdHlsZXMuY3VycmVudFtrZXldID0gdmFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdGhlIGxvY2sgc3R5bGVzIGFuZCBwYWRkaW5nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHNjcm9sbCBsb2NrXG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQob3JpZ2luYWxTdHlsZXMuY3VycmVudC5wYWRkaW5nUmlnaHQsIDEwKSB8fCAwO1xuICAgICAgdmFyIGNsaWVudFdpZHRoID0gZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAwO1xuICAgICAgdmFyIGFkanVzdGVkUGFkZGluZyA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY2xpZW50V2lkdGggKyBjdXJyZW50UGFkZGluZyB8fCAwO1xuICAgICAgT2JqZWN0LmtleXMoTE9DS19TVFlMRVMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gTE9DS19TVFlMRVNba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGFyZ2V0U3R5bGUpIHtcbiAgICAgICAgdGFyZ2V0U3R5bGUucGFkZGluZ1JpZ2h0ID0gXCJcIi5jb25jYXQoYWRqdXN0ZWRQYWRkaW5nLCBcInB4XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFjY291bnQgZm9yIHRvdWNoIGRldmljZXNcbiAgICBpZiAodGFyZ2V0ICYmIGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgLy8gTW9iaWxlIFNhZmFyaSBpZ25vcmVzIHsgb3ZlcmZsb3c6IGhpZGRlbiB9IGRlY2xhcmF0aW9uIG9uIHRoZSBib2R5LlxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHByZXZlbnRUb3VjaE1vdmUsIGxpc3RlbmVyT3B0aW9ucyk7XG5cbiAgICAgIC8vIEFsbG93IHNjcm9sbCBvbiBwcm92aWRlZCB0YXJnZXRcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgKz0gMTtcbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHZhciByZW1vdmVTY3JvbGxMb2NrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoU2Nyb2xsVGFyZ2V0KSB7XG4gICAgaWYgKCFjYW5Vc2VET00pIHJldHVybjtcbiAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgdGFyZ2V0U3R5bGUgPSB0YXJnZXQgJiYgdGFyZ2V0LnN0eWxlO1xuXG4gICAgLy8gc2FmZWx5IGRlY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgPSBNYXRoLm1heChhY3RpdmVTY3JvbGxMb2NrcyAtIDEsIDApO1xuXG4gICAgLy8gcmVhcHBseSBvcmlnaW5hbCBib2R5IHN0eWxlcywgaWYgYW55XG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgU1RZTEVfS0VZUy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG9yaWdpbmFsU3R5bGVzLmN1cnJlbnRba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRvdWNoIGxpc3RlbmVyc1xuICAgIGlmICh0YXJnZXQgJiYgaXNUb3VjaERldmljZSgpKSB7XG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgcHJldmVudFRvdWNoTW92ZSwgbGlzdGVuZXJPcHRpb25zKTtcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFpc0VuYWJsZWQpIHJldHVybjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50O1xuICAgIGFkZFNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW92ZVNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2lzRW5hYmxlZCwgYWRkU2Nyb2xsTG9jaywgcmVtb3ZlU2Nyb2xsTG9ja10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDEoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxudmFyIGJsdXJTZWxlY3RJbnB1dCA9IGZ1bmN0aW9uIGJsdXJTZWxlY3RJbnB1dChldmVudCkge1xuICB2YXIgZWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbn07XG52YXIgX3JlZjIkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxa2ZkYjBlXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MFwiXG59IDoge1xuICBuYW1lOiBcImJwOGN1YS1TY3JvbGxNYW5hZ2VyXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MDtsYWJlbDpTY3JvbGxNYW5hZ2VyO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxOamNtOXNiRTFoYm1GblpYSXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVc5RVZTSXNJbVpwYkdVaU9pSlRZM0p2Ykd4TllXNWhaMlZ5TG5SemVDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2lCQWFuTjRJR3B6ZUNBcUwxeHVhVzF3YjNKMElIc2dhbk40SUgwZ1puSnZiU0FuUUdWdGIzUnBiMjR2Y21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnUm5KaFoyMWxiblFzSUZKbFlXTjBSV3hsYldWdWRDd2dVbVZtUTJGc2JHSmhZMnNzSUUxdmRYTmxSWFpsYm5RZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZFhObFUyTnliMnhzUTJGd2RIVnlaU0JtY205dElDY3VMM1Z6WlZOamNtOXNiRU5oY0hSMWNtVW5PMXh1YVcxd2IzSjBJSFZ6WlZOamNtOXNiRXh2WTJzZ1puSnZiU0FuTGk5MWMyVlRZM0p2Ykd4TWIyTnJKenRjYmx4dWFXNTBaWEptWVdObElGQnliM0J6SUh0Y2JpQWdjbVZoWkc5dWJIa2dZMmhwYkdSeVpXNDZJQ2h5WldZNklGSmxaa05oYkd4aVlXTnJQRWhVVFV4RmJHVnRaVzUwUGlrZ1BUNGdVbVZoWTNSRmJHVnRaVzUwTzF4dUlDQnlaV0ZrYjI1c2VTQnNiMk5yUlc1aFlteGxaRG9nWW05dmJHVmhianRjYmlBZ2NtVmhaRzl1YkhrZ1kyRndkSFZ5WlVWdVlXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lISmxZV1J2Ym14NUlHOXVRbTkwZEc5dFFYSnlhWFpsUHpvZ0tHVjJaVzUwT2lCWGFHVmxiRVYyWlc1MElId2dWRzkxWTJoRmRtVnVkQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2NtVmhaRzl1YkhrZ2IyNUNiM1IwYjIxTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzRnSUhKbFlXUnZibXg1SUc5dVZHOXdRWEp5YVhabFB6b2dLR1YyWlc1ME9pQlhhR1ZsYkVWMlpXNTBJSHdnVkc5MVkyaEZkbVZ1ZENrZ1BUNGdkbTlwWkR0Y2JpQWdjbVZoWkc5dWJIa2diMjVVYjNCTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzU5WEc1Y2JtTnZibk4wSUdKc2RYSlRaV3hsWTNSSmJuQjFkQ0E5SUNobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZER4SVZFMU1SR2wyUld4bGJXVnVkRDRwSUQwK0lIdGNiaUFnWTI5dWMzUWdaV3hsYldWdWRDQTlJR1YyWlc1MExuUmhjbWRsZENCaGN5QklWRTFNUkdsMlJXeGxiV1Z1ZER0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCbGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENCaGN5QklWRTFNUld4bGJXVnVkQ2t1WW14MWNpZ3BYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaUJUWTNKdmJHeE5ZVzVoWjJWeUtIdGNiaUFnWTJocGJHUnlaVzRzWEc0Z0lHeHZZMnRGYm1GaWJHVmtMRnh1SUNCallYQjBkWEpsUlc1aFlteGxaQ0E5SUhSeWRXVXNYRzRnSUc5dVFtOTBkRzl0UVhKeWFYWmxMRnh1SUNCdmJrSnZkSFJ2YlV4bFlYWmxMRnh1SUNCdmJsUnZjRUZ5Y21sMlpTeGNiaUFnYjI1VWIzQk1aV0YyWlN4Y2JuMDZJRkJ5YjNCektTQjdYRzRnSUdOdmJuTjBJSE5sZEZOamNtOXNiRU5oY0hSMWNtVlVZWEpuWlhRZ1BTQjFjMlZUWTNKdmJHeERZWEIwZFhKbEtIdGNiaUFnSUNCcGMwVnVZV0pzWldRNklHTmhjSFIxY21WRmJtRmliR1ZrTEZ4dUlDQWdJRzl1UW05MGRHOXRRWEp5YVhabExGeHVJQ0FnSUc5dVFtOTBkRzl0VEdWaGRtVXNYRzRnSUNBZ2IyNVViM0JCY25KcGRtVXNYRzRnSUNBZ2IyNVViM0JNWldGMlpTeGNiaUFnZlNrN1hHNGdJR052Ym5OMElITmxkRk5qY205c2JFeHZZMnRVWVhKblpYUWdQU0IxYzJWVFkzSnZiR3hNYjJOcktIc2dhWE5GYm1GaWJHVmtPaUJzYjJOclJXNWhZbXhsWkNCOUtUdGNibHh1SUNCamIyNXpkQ0IwWVhKblpYUlNaV1k2SUZKbFprTmhiR3hpWVdOclBFaFVUVXhGYkdWdFpXNTBQaUE5SUNobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2MyVjBVMk55YjJ4c1EyRndkSFZ5WlZSaGNtZGxkQ2hsYkdWdFpXNTBLVHRjYmlBZ0lDQnpaWFJUWTNKdmJHeE1iMk5yVkdGeVoyVjBLR1ZzWlcxbGJuUXBPMXh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRVp5WVdkdFpXNTBQbHh1SUNBZ0lDQWdlMnh2WTJ0RmJtRmliR1ZrSUNZbUlDaGNiaUFnSUNBZ0lDQWdQR1JwZGx4dUlDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWUySnNkWEpUWld4bFkzUkpibkIxZEgxY2JpQWdJQ0FnSUNBZ0lDQmpjM005ZTNzZ2NHOXphWFJwYjI0NklDZG1hWGhsWkNjc0lHeGxablE2SURBc0lHSnZkSFJ2YlRvZ01Dd2djbWxuYUhRNklEQXNJSFJ2Y0RvZ01DQjlmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUh0amFHbHNaSEpsYmloMFlYSm5aWFJTWldZcGZWeHVJQ0FnSUR3dlJuSmhaMjFsYm5RK1hHNGdJQ2s3WEc1OVhHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQxXG59O1xuZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgbG9ja0VuYWJsZWQgPSBfcmVmLmxvY2tFbmFibGVkLFxuICAgIF9yZWYkY2FwdHVyZUVuYWJsZWQgPSBfcmVmLmNhcHR1cmVFbmFibGVkLFxuICAgIGNhcHR1cmVFbmFibGVkID0gX3JlZiRjYXB0dXJlRW5hYmxlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkY2FwdHVyZUVuYWJsZWQsXG4gICAgb25Cb3R0b21BcnJpdmUgPSBfcmVmLm9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUgPSBfcmVmLm9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUgPSBfcmVmLm9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUgPSBfcmVmLm9uVG9wTGVhdmU7XG4gIHZhciBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZTogb25Cb3R0b21BcnJpdmUsXG4gICAgb25Cb3R0b21MZWF2ZTogb25Cb3R0b21MZWF2ZSxcbiAgICBvblRvcEFycml2ZTogb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZTogb25Ub3BMZWF2ZVxuICB9KTtcbiAgdmFyIHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHtcbiAgICBpc0VuYWJsZWQ6IGxvY2tFbmFibGVkXG4gIH0pO1xuICB2YXIgdGFyZ2V0UmVmID0gZnVuY3Rpb24gdGFyZ2V0UmVmKGVsZW1lbnQpIHtcbiAgICBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0KGVsZW1lbnQpO1xuICAgIHNldFNjcm9sbExvY2tUYXJnZXQoZWxlbWVudCk7XG4gIH07XG4gIHJldHVybiBqc3goRnJhZ21lbnQsIG51bGwsIGxvY2tFbmFibGVkICYmIGpzeChcImRpdlwiLCB7XG4gICAgb25DbGljazogYmx1clNlbGVjdElucHV0LFxuICAgIGNzczogX3JlZjIkMVxuICB9KSwgY2hpbGRyZW4odGFyZ2V0UmVmKSk7XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fKCkgeyByZXR1cm4gXCJZb3UgaGF2ZSB0cmllZCB0byBzdHJpbmdpZnkgb2JqZWN0IHJldHVybmVkIGZyb20gYGNzc2AgZnVuY3Rpb24uIEl0IGlzbid0IHN1cHBvc2VkIHRvIGJlIHVzZWQgZGlyZWN0bHkgKGUuZy4gYXMgdmFsdWUgb2YgdGhlIGBjbGFzc05hbWVgIHByb3ApLCBidXQgcmF0aGVyIGhhbmRlZCB0byBlbW90aW9uIHNvIGl0IGNhbiBoYW5kbGUgaXQgKGUuZy4gYXMgdmFsdWUgb2YgYGNzc2AgcHJvcCkuXCI7IH1cbnZhciBfcmVmMiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxYTBybzRuLXJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJVwiXG59IDoge1xuICBuYW1lOiBcIjVra3hiMi1yZXF1aXJlZElucHV0LVJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtsYWJlbDpSZXF1aXJlZElucHV0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxKbGNYVnBjbVZrU1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdOSklpd2labWxzWlNJNklsSmxjWFZwY21Wa1NXNXdkWFF1ZEhONElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xSUVCcWMzZ2dhbk40SUNvdlhHNXBiWEJ2Y25RZ2V5QkdiMk4xYzBWMlpXNTBTR0Z1Wkd4bGNpd2dSblZ1WTNScGIyNURiMjF3YjI1bGJuUWdmU0JtY205dElDZHlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnFjM2dnZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1OdmJuTjBJRkpsY1hWcGNtVmtTVzV3ZFhRNklFWjFibU4wYVc5dVEyOXRjRzl1Wlc1MFBIdGNiaUFnY21WaFpHOXViSGtnYm1GdFpUODZJSE4wY21sdVp6dGNiaUFnY21WaFpHOXViSGtnYjI1R2IyTjFjem9nUm05amRYTkZkbVZ1ZEVoaGJtUnNaWEk4U0ZSTlRFbHVjSFYwUld4bGJXVnVkRDQ3WEc1OVBpQTlJQ2g3SUc1aGJXVXNJRzl1Um05amRYTWdmU2tnUFQ0Z0tGeHVJQ0E4YVc1d2RYUmNiaUFnSUNCeVpYRjFhWEpsWkZ4dUlDQWdJRzVoYldVOWUyNWhiV1Y5WEc0Z0lDQWdkR0ZpU1c1a1pYZzlleTB4ZlZ4dUlDQWdJR0Z5YVdFdGFHbGtaR1Z1UFZ3aWRISjFaVndpWEc0Z0lDQWdiMjVHYjJOMWN6MTdiMjVHYjJOMWMzMWNiaUFnSUNCamMzTTllM3RjYmlBZ0lDQWdJR3hoWW1Wc09pQW5jbVZ4ZFdseVpXUkpibkIxZENjc1hHNGdJQ0FnSUNCdmNHRmphWFI1T2lBd0xGeHVJQ0FnSUNBZ2NHOXBiblJsY2tWMlpXNTBjem9nSjI1dmJtVW5MRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJQ2RoWW5OdmJIVjBaU2NzWEc0Z0lDQWdJQ0JpYjNSMGIyMDZJREFzWEc0Z0lDQWdJQ0JzWldaME9pQXdMRnh1SUNBZ0lDQWdjbWxuYUhRNklEQXNYRzRnSUNBZ0lDQjNhV1IwYURvZ0p6RXdNQ1VuTEZ4dUlDQWdJSDE5WEc0Z0lDQWdMeThnVUhKbGRtVnVkQ0JnVTNkcGRHTm9hVzVuSUdaeWIyMGdkVzVqYjI1MGNtOXNiR1ZrSUhSdklHTnZiblJ5YjJ4c1pXUmdJR1Z5Y205eVhHNGdJQ0FnZG1Gc2RXVTlYQ0pjSWx4dUlDQWdJRzl1UTJoaGJtZGxQWHNvS1NBOVBpQjdmWDFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUZKbGNYVnBjbVZrU1c1d2RYUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX19cbn07XG52YXIgUmVxdWlyZWRJbnB1dCA9IGZ1bmN0aW9uIFJlcXVpcmVkSW5wdXQoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwge1xuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICBjc3M6IF9yZWYyXG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgLFxuICAgIHZhbHVlOiBcIlwiLFxuICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9XG4gIH0pO1xufTtcbnZhciBSZXF1aXJlZElucHV0JDEgPSBSZXF1aXJlZElucHV0O1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInVzZXItYWdlbnQtZGF0YS10eXBlc1wiIC8+XG5cbmZ1bmN0aW9uIHRlc3RQbGF0Zm9ybShyZSkge1xuICB2YXIgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlO1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAhPSBudWxsID8gcmUudGVzdCgoKF93aW5kb3ckbmF2aWdhdG9yJHVzZSA9IHdpbmRvdy5uYXZpZ2F0b3JbJ3VzZXJBZ2VudERhdGEnXSkgPT09IG51bGwgfHwgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfd2luZG93JG5hdmlnYXRvciR1c2UucGxhdGZvcm0pIHx8IHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pIDogZmFsc2U7XG59XG5mdW5jdGlvbiBpc0lQaG9uZSgpIHtcbiAgcmV0dXJuIHRlc3RQbGF0Zm9ybSgvXmlQaG9uZS9pKTtcbn1cbmZ1bmN0aW9uIGlzTWFjKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eTWFjL2kpO1xufVxuZnVuY3Rpb24gaXNJUGFkKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eaVBhZC9pKSB8fFxuICAvLyBpUGFkT1MgMTMgbGllcyBhbmQgc2F5cyBpdCdzIGEgTWFjLCBidXQgd2UgY2FuIGRpc3Rpbmd1aXNoIGJ5IGRldGVjdGluZyB0b3VjaCBzdXBwb3J0LlxuICBpc01hYygpICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDE7XG59XG5mdW5jdGlvbiBpc0lPUygpIHtcbiAgcmV0dXJuIGlzSVBob25lKCkgfHwgaXNJUGFkKCk7XG59XG5mdW5jdGlvbiBpc0FwcGxlRGV2aWNlKCkge1xuICByZXR1cm4gaXNNYWMoKSB8fCBpc0lPUygpO1xufVxuXG52YXIgZm9ybWF0R3JvdXBMYWJlbCA9IGZ1bmN0aW9uIGZvcm1hdEdyb3VwTGFiZWwoZ3JvdXApIHtcbiAgcmV0dXJuIGdyb3VwLmxhYmVsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCQxID0gZnVuY3Rpb24gZ2V0T3B0aW9uTGFiZWwob3B0aW9uKSB7XG4gIHJldHVybiBvcHRpb24ubGFiZWw7XG59O1xudmFyIGdldE9wdGlvblZhbHVlJDEgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShvcHRpb24pIHtcbiAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbn07XG52YXIgaXNPcHRpb25EaXNhYmxlZCA9IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKSB7XG4gIHJldHVybiAhIW9wdGlvbi5pc0Rpc2FibGVkO1xufTtcblxudmFyIGRlZmF1bHRTdHlsZXMgPSB7XG4gIGNsZWFySW5kaWNhdG9yOiBjbGVhckluZGljYXRvckNTUyxcbiAgY29udGFpbmVyOiBjb250YWluZXJDU1MsXG4gIGNvbnRyb2w6IGNzcyQxLFxuICBkcm9wZG93bkluZGljYXRvcjogZHJvcGRvd25JbmRpY2F0b3JDU1MsXG4gIGdyb3VwOiBncm91cENTUyxcbiAgZ3JvdXBIZWFkaW5nOiBncm91cEhlYWRpbmdDU1MsXG4gIGluZGljYXRvcnNDb250YWluZXI6IGluZGljYXRvcnNDb250YWluZXJDU1MsXG4gIGluZGljYXRvclNlcGFyYXRvcjogaW5kaWNhdG9yU2VwYXJhdG9yQ1NTLFxuICBpbnB1dDogaW5wdXRDU1MsXG4gIGxvYWRpbmdJbmRpY2F0b3I6IGxvYWRpbmdJbmRpY2F0b3JDU1MsXG4gIGxvYWRpbmdNZXNzYWdlOiBsb2FkaW5nTWVzc2FnZUNTUyxcbiAgbWVudTogbWVudUNTUyxcbiAgbWVudUxpc3Q6IG1lbnVMaXN0Q1NTLFxuICBtZW51UG9ydGFsOiBtZW51UG9ydGFsQ1NTLFxuICBtdWx0aVZhbHVlOiBtdWx0aVZhbHVlQ1NTLFxuICBtdWx0aVZhbHVlTGFiZWw6IG11bHRpVmFsdWVMYWJlbENTUyxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogbXVsdGlWYWx1ZVJlbW92ZUNTUyxcbiAgbm9PcHRpb25zTWVzc2FnZTogbm9PcHRpb25zTWVzc2FnZUNTUyxcbiAgb3B0aW9uOiBvcHRpb25DU1MsXG4gIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlckNTUyxcbiAgc2luZ2xlVmFsdWU6IGNzcyQyLFxuICB2YWx1ZUNvbnRhaW5lcjogdmFsdWVDb250YWluZXJDU1Ncbn07XG4vLyBNZXJnZSBVdGlsaXR5XG4vLyBBbGxvd3MgY29uc3VtZXJzIHRvIGV4dGVuZCBhIGJhc2UgU2VsZWN0IHdpdGggYWRkaXRpb25hbCBzdHlsZXNcblxuZnVuY3Rpb24gbWVyZ2VTdHlsZXMoc291cmNlKSB7XG4gIHZhciB0YXJnZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAvLyBpbml0aWFsaXplIHdpdGggc291cmNlIHN0eWxlc1xuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZCh7fSwgc291cmNlKTtcblxuICAvLyBtYXNzYWdlIGluIHRhcmdldCBzdHlsZXNcbiAgT2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlBc1N0cmluZykge1xuICAgIHZhciBrZXkgPSBrZXlBc1N0cmluZztcbiAgICBpZiAoc291cmNlW2tleV0pIHtcbiAgICAgIHN0eWxlc1trZXldID0gZnVuY3Rpb24gKHJzQ3NzLCBwcm9wcykge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0oc291cmNlW2tleV0ocnNDc3MsIHByb3BzKSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzW2tleV0gPSB0YXJnZXRba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3R5bGVzO1xufVxuXG52YXIgY29sb3JzID0ge1xuICBwcmltYXJ5OiAnIzI2ODRGRicsXG4gIHByaW1hcnk3NTogJyM0QzlBRkYnLFxuICBwcmltYXJ5NTA6ICcjQjJENEZGJyxcbiAgcHJpbWFyeTI1OiAnI0RFRUJGRicsXG4gIGRhbmdlcjogJyNERTM1MEInLFxuICBkYW5nZXJMaWdodDogJyNGRkJEQUQnLFxuICBuZXV0cmFsMDogJ2hzbCgwLCAwJSwgMTAwJSknLFxuICBuZXV0cmFsNTogJ2hzbCgwLCAwJSwgOTUlKScsXG4gIG5ldXRyYWwxMDogJ2hzbCgwLCAwJSwgOTAlKScsXG4gIG5ldXRyYWwyMDogJ2hzbCgwLCAwJSwgODAlKScsXG4gIG5ldXRyYWwzMDogJ2hzbCgwLCAwJSwgNzAlKScsXG4gIG5ldXRyYWw0MDogJ2hzbCgwLCAwJSwgNjAlKScsXG4gIG5ldXRyYWw1MDogJ2hzbCgwLCAwJSwgNTAlKScsXG4gIG5ldXRyYWw2MDogJ2hzbCgwLCAwJSwgNDAlKScsXG4gIG5ldXRyYWw3MDogJ2hzbCgwLCAwJSwgMzAlKScsXG4gIG5ldXRyYWw4MDogJ2hzbCgwLCAwJSwgMjAlKScsXG4gIG5ldXRyYWw5MDogJ2hzbCgwLCAwJSwgMTAlKSdcbn07XG52YXIgYm9yZGVyUmFkaXVzID0gNDtcbi8vIFVzZWQgdG8gY2FsY3VsYXRlIGNvbnNpc3RlbnQgbWFyZ2luL3BhZGRpbmcgb24gZWxlbWVudHNcbnZhciBiYXNlVW5pdCA9IDQ7XG4vLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGNvbnRyb2xcbnZhciBjb250cm9sSGVpZ2h0ID0gMzg7XG4vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRyb2wgYW5kIG1lbnUgKi9cbnZhciBtZW51R3V0dGVyID0gYmFzZVVuaXQgKiAyO1xudmFyIHNwYWNpbmcgPSB7XG4gIGJhc2VVbml0OiBiYXNlVW5pdCxcbiAgY29udHJvbEhlaWdodDogY29udHJvbEhlaWdodCxcbiAgbWVudUd1dHRlcjogbWVudUd1dHRlclxufTtcbnZhciBkZWZhdWx0VGhlbWUgPSB7XG4gIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICBjb2xvcnM6IGNvbG9ycyxcbiAgc3BhY2luZzogc3BhY2luZ1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgJ2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU6IHRydWUsXG4gIGJsdXJJbnB1dE9uU2VsZWN0OiBpc1RvdWNoQ2FwYWJsZSgpLFxuICBjYXB0dXJlTWVudVNjcm9sbDogIWlzVG91Y2hDYXBhYmxlKCksXG4gIGNsYXNzTmFtZXM6IHt9LFxuICBjbG9zZU1lbnVPblNlbGVjdDogdHJ1ZSxcbiAgY2xvc2VNZW51T25TY3JvbGw6IGZhbHNlLFxuICBjb21wb25lbnRzOiB7fSxcbiAgY29udHJvbFNob3VsZFJlbmRlclZhbHVlOiB0cnVlLFxuICBlc2NhcGVDbGVhcnNWYWx1ZTogZmFsc2UsXG4gIGZpbHRlck9wdGlvbjogY3JlYXRlRmlsdGVyKCksXG4gIGZvcm1hdEdyb3VwTGFiZWw6IGZvcm1hdEdyb3VwTGFiZWwsXG4gIGdldE9wdGlvbkxhYmVsOiBnZXRPcHRpb25MYWJlbCQxLFxuICBnZXRPcHRpb25WYWx1ZTogZ2V0T3B0aW9uVmFsdWUkMSxcbiAgaXNEaXNhYmxlZDogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIGlzTXVsdGk6IGZhbHNlLFxuICBpc1J0bDogZmFsc2UsXG4gIGlzU2VhcmNoYWJsZTogdHJ1ZSxcbiAgaXNPcHRpb25EaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZCxcbiAgbG9hZGluZ01lc3NhZ2U6IGZ1bmN0aW9uIGxvYWRpbmdNZXNzYWdlKCkge1xuICAgIHJldHVybiAnTG9hZGluZy4uLic7XG4gIH0sXG4gIG1heE1lbnVIZWlnaHQ6IDMwMCxcbiAgbWluTWVudUhlaWdodDogMTQwLFxuICBtZW51SXNPcGVuOiBmYWxzZSxcbiAgbWVudVBsYWNlbWVudDogJ2JvdHRvbScsXG4gIG1lbnVQb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgbWVudVNob3VsZEJsb2NrU2Nyb2xsOiBmYWxzZSxcbiAgbWVudVNob3VsZFNjcm9sbEludG9WaWV3OiAhaXNNb2JpbGVEZXZpY2UoKSxcbiAgbm9PcHRpb25zTWVzc2FnZTogZnVuY3Rpb24gbm9PcHRpb25zTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gJ05vIG9wdGlvbnMnO1xuICB9LFxuICBvcGVuTWVudU9uRm9jdXM6IGZhbHNlLFxuICBvcGVuTWVudU9uQ2xpY2s6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBwYWdlU2l6ZTogNSxcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QuLi4nLFxuICBzY3JlZW5SZWFkZXJTdGF0dXM6IGZ1bmN0aW9uIHNjcmVlblJlYWRlclN0YXR1cyhfcmVmKSB7XG4gICAgdmFyIGNvdW50ID0gX3JlZi5jb3VudDtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoY291bnQsIFwiIHJlc3VsdFwiKS5jb25jYXQoY291bnQgIT09IDEgPyAncycgOiAnJywgXCIgYXZhaWxhYmxlXCIpO1xuICB9LFxuICBzdHlsZXM6IHt9LFxuICB0YWJJbmRleDogMCxcbiAgdGFiU2VsZWN0c1ZhbHVlOiB0cnVlLFxuICB1bnN0eWxlZDogZmFsc2Vcbn07XG5mdW5jdGlvbiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBpbmRleCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9pc09wdGlvbkRpc2FibGVkKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlKTtcbiAgdmFyIGlzU2VsZWN0ZWQgPSBfaXNPcHRpb25TZWxlY3RlZChwcm9wcywgb3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIHZhciBsYWJlbCA9IGdldE9wdGlvbkxhYmVsKHByb3BzLCBvcHRpb24pO1xuICB2YXIgdmFsdWUgPSBnZXRPcHRpb25WYWx1ZShwcm9wcywgb3B0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnb3B0aW9uJyxcbiAgICBkYXRhOiBvcHRpb24sXG4gICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgaW5kZXg6IGluZGV4XG4gIH07XG59XG5mdW5jdGlvbiBidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChncm91cE9yT3B0aW9uLCBncm91cE9yT3B0aW9uSW5kZXgpIHtcbiAgICBpZiAoJ29wdGlvbnMnIGluIGdyb3VwT3JPcHRpb24pIHtcbiAgICAgIHZhciBjYXRlZ29yaXplZE9wdGlvbnMgPSBncm91cE9yT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24sIG9wdGlvbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBvcHRpb25JbmRleCk7XG4gICAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBpc0ZvY3VzYWJsZShwcm9wcywgY2F0ZWdvcml6ZWRPcHRpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2F0ZWdvcml6ZWRPcHRpb25zLmxlbmd0aCA+IDAgPyB7XG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIGRhdGE6IGdyb3VwT3JPcHRpb24sXG4gICAgICAgIG9wdGlvbnM6IGNhdGVnb3JpemVkT3B0aW9ucyxcbiAgICAgICAgaW5kZXg6IGdyb3VwT3JPcHRpb25JbmRleFxuICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdmFyIGNhdGVnb3JpemVkT3B0aW9uID0gdG9DYXRlZ29yaXplZE9wdGlvbihwcm9wcywgZ3JvdXBPck9wdGlvbiwgc2VsZWN0VmFsdWUsIGdyb3VwT3JPcHRpb25JbmRleCk7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikgPyBjYXRlZ29yaXplZE9wdGlvbiA6IHVuZGVmaW5lZDtcbiAgfSkuZmlsdGVyKG5vdE51bGxpc2gpO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhjYXRlZ29yaXplZE9wdGlvbnMpIHtcbiAgcmV0dXJuIGNhdGVnb3JpemVkT3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24gKG9wdGlvbnNBY2N1bXVsYXRvciwgY2F0ZWdvcml6ZWRPcHRpb24pIHtcbiAgICBpZiAoY2F0ZWdvcml6ZWRPcHRpb24udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2guYXBwbHkob3B0aW9uc0FjY3VtdWxhdG9yLCBfdG9Db25zdW1hYmxlQXJyYXkoY2F0ZWdvcml6ZWRPcHRpb24ub3B0aW9ucy5tYXAoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gb3B0aW9uLmRhdGE7XG4gICAgICB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zQWNjdW11bGF0b3IucHVzaChjYXRlZ29yaXplZE9wdGlvbi5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zV2l0aElkcyhjYXRlZ29yaXplZE9wdGlvbnMsIG9wdGlvbklkKSB7XG4gIHJldHVybiBjYXRlZ29yaXplZE9wdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChvcHRpb25zQWNjdW11bGF0b3IsIGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgaWYgKGNhdGVnb3JpemVkT3B0aW9uLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgIG9wdGlvbnNBY2N1bXVsYXRvci5wdXNoLmFwcGx5KG9wdGlvbnNBY2N1bXVsYXRvciwgX3RvQ29uc3VtYWJsZUFycmF5KGNhdGVnb3JpemVkT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YSxcbiAgICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KVxuICAgICAgICB9O1xuICAgICAgfSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2goe1xuICAgICAgICBkYXRhOiBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSkge1xuICByZXR1cm4gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikge1xuICB2YXIgX3Byb3BzJGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgIGlucHV0VmFsdWUgPSBfcHJvcHMkaW5wdXRWYWx1ZSA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkaW5wdXRWYWx1ZTtcbiAgdmFyIGRhdGEgPSBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgIGlzU2VsZWN0ZWQgPSBjYXRlZ29yaXplZE9wdGlvbi5pc1NlbGVjdGVkLFxuICAgIGxhYmVsID0gY2F0ZWdvcml6ZWRPcHRpb24ubGFiZWwsXG4gICAgdmFsdWUgPSBjYXRlZ29yaXplZE9wdGlvbi52YWx1ZTtcbiAgcmV0dXJuICghc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykgfHwgIWlzU2VsZWN0ZWQpICYmIF9maWx0ZXJPcHRpb24ocHJvcHMsIHtcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGRhdGE6IGRhdGFcbiAgfSwgaW5wdXRWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXROZXh0Rm9jdXNlZFZhbHVlKHN0YXRlLCBuZXh0U2VsZWN0VmFsdWUpIHtcbiAgdmFyIGZvY3VzZWRWYWx1ZSA9IHN0YXRlLmZvY3VzZWRWYWx1ZSxcbiAgICBsYXN0U2VsZWN0VmFsdWUgPSBzdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgdmFyIGxhc3RGb2N1c2VkSW5kZXggPSBsYXN0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICBpZiAobGFzdEZvY3VzZWRJbmRleCA+IC0xKSB7XG4gICAgdmFyIG5leHRGb2N1c2VkSW5kZXggPSBuZXh0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICAgIGlmIChuZXh0Rm9jdXNlZEluZGV4ID4gLTEpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkIHZhbHVlIGlzIHN0aWxsIGluIHRoZSBzZWxlY3RWYWx1ZSwgcmV0dXJuIGl0XG4gICAgICByZXR1cm4gZm9jdXNlZFZhbHVlO1xuICAgIH0gZWxzZSBpZiAobGFzdEZvY3VzZWRJbmRleCA8IG5leHRTZWxlY3RWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkVmFsdWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIG5leHQgc2VsZWN0VmFsdWUgYXJyYXkgYnlcbiAgICAgIC8vIHJlZmVyZW5jZSwgc28gcmV0dXJuIHRoZSBuZXcgdmFsdWUgYXQgdGhlIHNhbWUgaW5kZXhcbiAgICAgIHJldHVybiBuZXh0U2VsZWN0VmFsdWVbbGFzdEZvY3VzZWRJbmRleF07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RGb2N1c2VkT3B0aW9uID0gc3RhdGUuZm9jdXNlZE9wdGlvbjtcbiAgcmV0dXJuIGxhc3RGb2N1c2VkT3B0aW9uICYmIG9wdGlvbnMuaW5kZXhPZihsYXN0Rm9jdXNlZE9wdGlvbikgPiAtMSA/IGxhc3RGb2N1c2VkT3B0aW9uIDogb3B0aW9uc1swXTtcbn1cbnZhciBnZXRGb2N1c2VkT3B0aW9uSWQgPSBmdW5jdGlvbiBnZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsIGZvY3VzZWRPcHRpb24pIHtcbiAgdmFyIF9mb2N1c2FibGVPcHRpb25zV2l0aDtcbiAgdmFyIGZvY3VzZWRPcHRpb25JZCA9IChfZm9jdXNhYmxlT3B0aW9uc1dpdGggPSBmb2N1c2FibGVPcHRpb25zV2l0aElkcy5maW5kKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uLmRhdGEgPT09IGZvY3VzZWRPcHRpb247XG4gIH0pKSA9PT0gbnVsbCB8fCBfZm9jdXNhYmxlT3B0aW9uc1dpdGggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mb2N1c2FibGVPcHRpb25zV2l0aC5pZDtcbiAgcmV0dXJuIGZvY3VzZWRPcHRpb25JZCB8fCBudWxsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIGdldE9wdGlvbkxhYmVsKHByb3BzLCBkYXRhKSB7XG4gIHJldHVybiBwcm9wcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbn07XG52YXIgZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShwcm9wcywgZGF0YSkge1xuICByZXR1cm4gcHJvcHMuZ2V0T3B0aW9uVmFsdWUoZGF0YSk7XG59O1xuZnVuY3Rpb24gX2lzT3B0aW9uRGlzYWJsZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pc09wdGlvbkRpc2FibGVkID09PSAnZnVuY3Rpb24nID8gcHJvcHMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24sIHNlbGVjdFZhbHVlKSA6IGZhbHNlO1xufVxuZnVuY3Rpb24gX2lzT3B0aW9uU2VsZWN0ZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgaWYgKHNlbGVjdFZhbHVlLmluZGV4T2Yob3B0aW9uKSA+IC0xKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiBwcm9wcy5pc09wdGlvblNlbGVjdGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHByb3BzLmlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZSA9IGdldE9wdGlvblZhbHVlKHByb3BzLCBvcHRpb24pO1xuICByZXR1cm4gc2VsZWN0VmFsdWUuc29tZShmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBnZXRPcHRpb25WYWx1ZShwcm9wcywgaSkgPT09IGNhbmRpZGF0ZTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfZmlsdGVyT3B0aW9uKHByb3BzLCBvcHRpb24sIGlucHV0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLmZpbHRlck9wdGlvbiA/IHByb3BzLmZpbHRlck9wdGlvbihvcHRpb24sIGlucHV0VmFsdWUpIDogdHJ1ZTtcbn1cbnZhciBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zID0gZnVuY3Rpb24gc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykge1xuICB2YXIgaGlkZVNlbGVjdGVkT3B0aW9ucyA9IHByb3BzLmhpZGVTZWxlY3RlZE9wdGlvbnMsXG4gICAgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGk7XG4gIGlmIChoaWRlU2VsZWN0ZWRPcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICByZXR1cm4gaGlkZVNlbGVjdGVkT3B0aW9ucztcbn07XG52YXIgaW5zdGFuY2VJZCA9IDE7XG52YXIgU2VsZWN0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTZWxlY3QsIF9Db21wb25lbnQpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFNlbGVjdCk7XG4gIC8vIE1pc2MuIEluc3RhbmNlIFByb3BlcnRpZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVE9ET1xuXG4gIC8vIFJlZnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGZ1bmN0aW9uIFNlbGVjdChfcHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlbGVjdCk7XG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfcHJvcHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgYXJpYVNlbGVjdGlvbjogbnVsbCxcbiAgICAgIGZvY3VzZWRPcHRpb246IG51bGwsXG4gICAgICBmb2N1c2VkT3B0aW9uSWQ6IG51bGwsXG4gICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogW10sXG4gICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICBpbnB1dElzSGlkZGVuOiBmYWxzZSxcbiAgICAgIGlzRm9jdXNlZDogZmFsc2UsXG4gICAgICBzZWxlY3RWYWx1ZTogW10sXG4gICAgICBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZTogZmFsc2UsXG4gICAgICBwcmV2V2FzRm9jdXNlZDogZmFsc2UsXG4gICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZQcm9wczogdW5kZWZpbmVkLFxuICAgICAgaW5zdGFuY2VQcmVmaXg6ICcnXG4gICAgfTtcbiAgICBfdGhpcy5ibG9ja09wdGlvbkhvdmVyID0gZmFsc2U7XG4gICAgX3RoaXMuaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICBfdGhpcy5jb21tb25Qcm9wcyA9IHZvaWQgMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hZID0gMDtcbiAgICBfdGhpcy5vcGVuQWZ0ZXJGb2N1cyA9IGZhbHNlO1xuICAgIF90aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSB2b2lkIDA7XG4gICAgX3RoaXMuaXNBcHBsZURldmljZSA9IGlzQXBwbGVEZXZpY2UoKTtcbiAgICBfdGhpcy5jb250cm9sUmVmID0gbnVsbDtcbiAgICBfdGhpcy5nZXRDb250cm9sUmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMuY29udHJvbFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzZWRPcHRpb25SZWYgPSBudWxsO1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25SZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5mb2N1c2VkT3B0aW9uUmVmID0gcmVmO1xuICAgIH07XG4gICAgX3RoaXMubWVudUxpc3RSZWYgPSBudWxsO1xuICAgIF90aGlzLmdldE1lbnVMaXN0UmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMubWVudUxpc3RSZWYgPSByZWY7XG4gICAgfTtcbiAgICBfdGhpcy5pbnB1dFJlZiA9IG51bGw7XG4gICAgX3RoaXMuZ2V0SW5wdXRSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5pbnB1dFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzID0gX3RoaXMuZm9jdXNJbnB1dDtcbiAgICBfdGhpcy5ibHVyID0gX3RoaXMuYmx1cklucHV0O1xuICAgIF90aGlzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgb25DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbkNoYW5nZSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWU7XG4gICAgICBhY3Rpb25NZXRhLm5hbWUgPSBuYW1lO1xuICAgICAgX3RoaXMuYXJpYU9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9O1xuICAgIF90aGlzLnNldFZhbHVlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb24sIG9wdGlvbikge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICBjbG9zZU1lbnVPblNlbGVjdCA9IF90aGlzJHByb3BzMi5jbG9zZU1lbnVPblNlbGVjdCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMi5pc011bHRpLFxuICAgICAgICBpbnB1dFZhbHVlID0gX3RoaXMkcHJvcHMyLmlucHV0VmFsdWU7XG4gICAgICBfdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ3NldC12YWx1ZScsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIGlmIChjbG9zZU1lbnVPblNlbGVjdCkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIC8vIHdoZW4gdGhlIHNlbGVjdCB2YWx1ZSBzaG91bGQgY2hhbmdlLCB3ZSBzaG91bGQgcmVzZXQgZm9jdXNlZFZhbHVlXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlLCB7XG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBvcHRpb246IG9wdGlvblxuICAgICAgfSk7XG4gICAgfTtcbiAgICBfdGhpcy5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgYmx1cklucHV0T25TZWxlY3QgPSBfdGhpcyRwcm9wczMuYmx1cklucHV0T25TZWxlY3QsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMy5uYW1lO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZGVzZWxlY3RlZCA9IGlzTXVsdGkgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChuZXdWYWx1ZSwgc2VsZWN0VmFsdWUpO1xuICAgICAgdmFyIGlzRGlzYWJsZWQgPSBfdGhpcy5pc09wdGlvbkRpc2FibGVkKG5ld1ZhbHVlLCBzZWxlY3RWYWx1ZSk7XG4gICAgICBpZiAoZGVzZWxlY3RlZCkge1xuICAgICAgICB2YXIgY2FuZGlkYXRlID0gX3RoaXMuZ2V0T3B0aW9uVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0T3B0aW9uVmFsdWUoaSkgIT09IGNhbmRpZGF0ZTtcbiAgICAgICAgfSkpLCAnZGVzZWxlY3Qtb3B0aW9uJywgbmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCkge1xuICAgICAgICAvLyBTZWxlY3Qgb3B0aW9uIGlmIG9wdGlvbiBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHNlbGVjdFZhbHVlKSwgW25ld1ZhbHVlXSkpLCAnc2VsZWN0LW9wdGlvbicsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShzaW5nbGVWYWx1ZUFzVmFsdWUobmV3VmFsdWUpLCAnc2VsZWN0LW9wdGlvbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5hcmlhT25DaGFuZ2Uoc2luZ2xlVmFsdWVBc1ZhbHVlKG5ld1ZhbHVlKSwge1xuICAgICAgICAgIGFjdGlvbjogJ3NlbGVjdC1vcHRpb24nLFxuICAgICAgICAgIG9wdGlvbjogbmV3VmFsdWUsXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGJsdXJJbnB1dE9uU2VsZWN0KSB7XG4gICAgICAgIF90aGlzLmJsdXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMucmVtb3ZlVmFsdWUgPSBmdW5jdGlvbiAocmVtb3ZlZFZhbHVlKSB7XG4gICAgICB2YXIgaXNNdWx0aSA9IF90aGlzLnByb3BzLmlzTXVsdGk7XG4gICAgICB2YXIgc2VsZWN0VmFsdWUgPSBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIHZhciBjYW5kaWRhdGUgPSBfdGhpcy5nZXRPcHRpb25WYWx1ZShyZW1vdmVkVmFsdWUpO1xuICAgICAgdmFyIG5ld1ZhbHVlQXJyYXkgPSBzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldE9wdGlvblZhbHVlKGkpICE9PSBjYW5kaWRhdGU7XG4gICAgICB9KTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHZhbHVlVGVybmFyeShpc011bHRpLCBuZXdWYWx1ZUFycmF5LCBuZXdWYWx1ZUFycmF5WzBdIHx8IG51bGwpO1xuICAgICAgX3RoaXMub25DaGFuZ2UobmV3VmFsdWUsIHtcbiAgICAgICAgYWN0aW9uOiAncmVtb3ZlLXZhbHVlJyxcbiAgICAgICAgcmVtb3ZlZFZhbHVlOiByZW1vdmVkVmFsdWVcbiAgICAgIH0pO1xuICAgICAgX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH07XG4gICAgX3RoaXMuY2xlYXJWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xuICAgICAgX3RoaXMub25DaGFuZ2UodmFsdWVUZXJuYXJ5KF90aGlzLnByb3BzLmlzTXVsdGksIFtdLCBudWxsKSwge1xuICAgICAgICBhY3Rpb246ICdjbGVhcicsXG4gICAgICAgIHJlbW92ZWRWYWx1ZXM6IHNlbGVjdFZhbHVlXG4gICAgICB9KTtcbiAgICB9O1xuICAgIF90aGlzLnBvcFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlzTXVsdGkgPSBfdGhpcy5wcm9wcy5pc011bHRpO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgbGFzdFNlbGVjdGVkVmFsdWUgPSBzZWxlY3RWYWx1ZVtzZWxlY3RWYWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBuZXdWYWx1ZUFycmF5ID0gc2VsZWN0VmFsdWUuc2xpY2UoMCwgc2VsZWN0VmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbmV3VmFsdWVBcnJheSwgbmV3VmFsdWVBcnJheVswXSB8fCBudWxsKTtcbiAgICAgIGlmIChsYXN0U2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBfdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSwge1xuICAgICAgICAgIGFjdGlvbjogJ3BvcC12YWx1ZScsXG4gICAgICAgICAgcmVtb3ZlZFZhbHVlOiBsYXN0U2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25JZCA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZE9wdGlvbklkKF90aGlzLnN0YXRlLmZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkRm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMoYnVpbGRDYXRlZ29yaXplZE9wdGlvbnMoX3RoaXMucHJvcHMsIF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlKSwgX3RoaXMuZ2V0RWxlbWVudElkKCdvcHRpb24nKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICB9O1xuICAgIF90aGlzLmN4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcy5hcHBseSh2b2lkIDAsIFtfdGhpcy5wcm9wcy5jbGFzc05hbWVQcmVmaXhdLmNvbmNhdChhcmdzKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICByZXR1cm4gZ2V0T3B0aW9uTGFiZWwoX3RoaXMucHJvcHMsIGRhdGEpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgcmV0dXJuIGdldE9wdGlvblZhbHVlKF90aGlzLnByb3BzLCBkYXRhKTtcbiAgICB9O1xuICAgIF90aGlzLmdldFN0eWxlcyA9IGZ1bmN0aW9uIChrZXksIHByb3BzKSB7XG4gICAgICB2YXIgdW5zdHlsZWQgPSBfdGhpcy5wcm9wcy51bnN0eWxlZDtcbiAgICAgIHZhciBiYXNlID0gZGVmYXVsdFN0eWxlc1trZXldKHByb3BzLCB1bnN0eWxlZCk7XG4gICAgICBiYXNlLmJveFNpemluZyA9ICdib3JkZXItYm94JztcbiAgICAgIHZhciBjdXN0b20gPSBfdGhpcy5wcm9wcy5zdHlsZXNba2V5XTtcbiAgICAgIHJldHVybiBjdXN0b20gPyBjdXN0b20oYmFzZSwgcHJvcHMpIDogYmFzZTtcbiAgICB9O1xuICAgIF90aGlzLmdldENsYXNzTmFtZXMgPSBmdW5jdGlvbiAoa2V5LCBwcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzJGNsYXNzTmFtZSwgX3RoaXMkcHJvcHMkY2xhc3NOYW1lMjtcbiAgICAgIHJldHVybiAoX3RoaXMkcHJvcHMkY2xhc3NOYW1lID0gKF90aGlzJHByb3BzJGNsYXNzTmFtZTIgPSBfdGhpcy5wcm9wcy5jbGFzc05hbWVzKVtrZXldKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGNsYXNzTmFtZS5jYWxsKF90aGlzJHByb3BzJGNsYXNzTmFtZTIsIHByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEVsZW1lbnRJZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuc3RhdGUuaW5zdGFuY2VQcmVmaXgsIFwiLVwiKS5jb25jYXQoZWxlbWVudCk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDb21wb25lbnRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRDb21wb25lbnRzKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLnByb3BzLCBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDYXRlZ29yaXplZE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMubWVudUlzT3BlbiA/IF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWlsZEZvY3VzYWJsZU9wdGlvbnNGcm9tQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5tZW51SXNPcGVuID8gX3RoaXMuYnVpbGRGb2N1c2FibGVPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmFyaWFPbkNoYW5nZSA9IGZ1bmN0aW9uICh2YWx1ZSwgYWN0aW9uTWV0YSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBhcmlhU2VsZWN0aW9uOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgYWN0aW9uTWV0YSlcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25NZW51TW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uTWVudU1vdXNlTW92ZSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciA9IGZhbHNlO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sTW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAvLyBFdmVudCBjYXB0dXJlZCBieSBkcm9wZG93biBpbmRpY2F0b3JcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcGVuTWVudU9uQ2xpY2sgPSBfdGhpcy5wcm9wcy5vcGVuTWVudU9uQ2xpY2s7XG4gICAgICBpZiAoIV90aGlzLnN0YXRlLmlzRm9jdXNlZCkge1xuICAgICAgICBpZiAob3Blbk1lbnVPbkNsaWNrKSB7XG4gICAgICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoIV90aGlzLnByb3BzLm1lbnVJc09wZW4pIHtcbiAgICAgICAgaWYgKG9wZW5NZW51T25DbGljaykge1xuICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKF90aGlzLnByb3BzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNC5pc011bHRpLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM0Lm1lbnVJc09wZW47XG4gICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLm9wZW5BZnRlckZvY3VzID0gZmFsc2U7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uU2Nyb2xsID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAodHlwZW9mIF90aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRG9jdW1lbnRFbGVtZW50KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICBfdGhpcy5wcm9wcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBfdGhpcy5wcm9wcy5jbG9zZU1lbnVPblNjcm9sbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuY2xvc2VNZW51T25TY3JvbGwoZXZlbnQpKSB7XG4gICAgICAgICAgX3RoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvblN0YXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuaXNDb21wb3NpbmcgPSB0cnVlO1xuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvbkVuZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLmlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgICBfdGhpcy5vblRvdWNoU3RhcnQgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciB0b3VjaGVzID0gX3JlZjIudG91Y2hlcztcbiAgICAgIHZhciB0b3VjaCA9IHRvdWNoZXMgJiYgdG91Y2hlcy5pdGVtKDApO1xuICAgICAgaWYgKCF0b3VjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gdG91Y2guY2xpZW50WDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hNb3ZlID0gZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICB2YXIgdG91Y2hlcyA9IF9yZWYzLnRvdWNoZXM7XG4gICAgICB2YXIgdG91Y2ggPSB0b3VjaGVzICYmIHRvdWNoZXMuaXRlbSgwKTtcbiAgICAgIGlmICghdG91Y2gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGRlbHRhWCA9IE1hdGguYWJzKHRvdWNoLmNsaWVudFggLSBfdGhpcy5pbml0aWFsVG91Y2hYKTtcbiAgICAgIHZhciBkZWx0YVkgPSBNYXRoLmFicyh0b3VjaC5jbGllbnRZIC0gX3RoaXMuaW5pdGlhbFRvdWNoWSk7XG4gICAgICB2YXIgbW92ZVRocmVzaG9sZCA9IDU7XG4gICAgICBfdGhpcy51c2VySXNEcmFnZ2luZyA9IGRlbHRhWCA+IG1vdmVUaHJlc2hvbGQgfHwgZGVsdGFZID4gbW92ZVRocmVzaG9sZDtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuXG4gICAgICAvLyBjbG9zZSB0aGUgbWVudSBpZiB0aGUgdXNlciB0YXBzIG91dHNpZGVcbiAgICAgIC8vIHdlJ3JlIGNoZWNraW5nIG9uIGV2ZW50LnRhcmdldCBoZXJlIGluc3RlYWQgb2YgZXZlbnQuY3VycmVudFRhcmdldCwgYmVjYXVzZSB3ZSB3YW50IHRvIGFzc2VydCBpbmZvcm1hdGlvblxuICAgICAgLy8gb24gZXZlbnRzIG9uIGNoaWxkIGVsZW1lbnRzLCBub3QgdGhlIGRvY3VtZW50ICh3aGljaCB3ZSd2ZSBhdHRhY2hlZCB0aGlzIGhhbmRsZXIgdG8pLlxuICAgICAgaWYgKF90aGlzLmNvbnRyb2xSZWYgJiYgIV90aGlzLmNvbnRyb2xSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiBfdGhpcy5tZW51TGlzdFJlZiAmJiAhX3RoaXMubWVudUxpc3RSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBfdGhpcy5ibHVySW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgbW92ZSB2YXJzXG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSAwO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuICAgICAgX3RoaXMub25Db250cm9sTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkNsZWFySW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLmhhbmRsZUlucHV0Q2hhbmdlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgdmFyIGlucHV0VmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwge1xuICAgICAgICBhY3Rpb246ICdpbnB1dC1jaGFuZ2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogcHJldklucHV0VmFsdWVcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfdGhpcy5wcm9wcy5tZW51SXNPcGVuKSB7XG4gICAgICAgIF90aGlzLm9uTWVudU9wZW4oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRGb2N1cyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICB9XG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBpZiAoX3RoaXMub3BlbkFmdGVyRm9jdXMgfHwgX3RoaXMucHJvcHMub3Blbk1lbnVPbkZvY3VzKSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRCbHVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgaWYgKF90aGlzLm1lbnVMaXN0UmVmICYmIF90aGlzLm1lbnVMaXN0UmVmLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIF90aGlzLmlucHV0UmVmLmZvY3VzKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25CbHVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgYWN0aW9uOiAnaW5wdXQtYmx1cicsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBwcmV2SW5wdXRWYWx1ZVxuICAgICAgfSk7XG4gICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25PcHRpb25Ib3ZlciA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICBpZiAoX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciB8fCBfdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uID09PSBmb2N1c2VkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcHRpb25zID0gX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuaW5kZXhPZihmb2N1c2VkT3B0aW9uKTtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiBmb2N1c2VkT3B0aW9uSW5kZXggPiAtMSA/IF90aGlzLmdldEZvY3VzZWRPcHRpb25JZChmb2N1c2VkT3B0aW9uKSA6IG51bGxcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMuc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLm9uVmFsdWVJbnB1dEZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBfdGhpcy5mb2N1cygpO1xuICAgIH07XG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczUuaXNNdWx0aSxcbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlID0gX3RoaXMkcHJvcHM1LmJhY2tzcGFjZVJlbW92ZXNWYWx1ZSxcbiAgICAgICAgZXNjYXBlQ2xlYXJzVmFsdWUgPSBfdGhpcyRwcm9wczUuZXNjYXBlQ2xlYXJzVmFsdWUsXG4gICAgICAgIGlucHV0VmFsdWUgPSBfdGhpcyRwcm9wczUuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNDbGVhcmFibGUgPSBfdGhpcyRwcm9wczUuaXNDbGVhcmFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNS5tZW51SXNPcGVuLFxuICAgICAgICBvbktleURvd24gPSBfdGhpcyRwcm9wczUub25LZXlEb3duLFxuICAgICAgICB0YWJTZWxlY3RzVmFsdWUgPSBfdGhpcyRwcm9wczUudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBvcGVuTWVudU9uRm9jdXMgPSBfdGhpcyRwcm9wczUub3Blbk1lbnVPbkZvY3VzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZS5mb2N1c2VkT3B0aW9uLFxuICAgICAgICBmb2N1c2VkVmFsdWUgPSBfdGhpcyRzdGF0ZS5mb2N1c2VkVmFsdWUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKHR5cGVvZiBvbktleURvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgb3B0aW9uIGhvdmVyIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGhhcyBqdXN0IHByZXNzZWQgYSBrZXlcbiAgICAgIF90aGlzLmJsb2NrT3B0aW9uSG92ZXIgPSB0cnVlO1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICBpZiAoIWlzTXVsdGkgfHwgaW5wdXRWYWx1ZSkgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzVmFsdWUoJ3ByZXZpb3VzJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgIGlmICghaXNNdWx0aSB8fCBpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgX3RoaXMuZm9jdXNWYWx1ZSgnbmV4dCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgIGlmIChpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgaWYgKGZvY3VzZWRWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMucmVtb3ZlVmFsdWUoZm9jdXNlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFiYWNrc3BhY2VSZW1vdmVzVmFsdWUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChpc011bHRpKSB7XG4gICAgICAgICAgICAgIF90aGlzLnBvcFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQ2xlYXJhYmxlKSB7XG4gICAgICAgICAgICAgIF90aGlzLmNsZWFyVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgaWYgKF90aGlzLmlzQ29tcG9zaW5nKSByZXR1cm47XG4gICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFtZW51SXNPcGVuIHx8ICF0YWJTZWxlY3RzVmFsdWUgfHwgIWZvY3VzZWRPcHRpb24gfHxcbiAgICAgICAgICAvLyBkb24ndCBjYXB0dXJlIHRoZSBldmVudCBpZiB0aGUgbWVudSBvcGVucyBvbiBmb2N1cyBhbmQgdGhlIGZvY3VzZWRcbiAgICAgICAgICAvLyBvcHRpb24gaXMgYWxyZWFkeSBzZWxlY3RlZDsgaXQgYnJlYWtzIHRoZSBmbG93IG9mIG5hdmlnYXRpb25cbiAgICAgICAgICBvcGVuTWVudU9uRm9jdXMgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChmb2N1c2VkT3B0aW9uLCBzZWxlY3RWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDIyOSkge1xuICAgICAgICAgICAgLy8gaWdub3JlIHRoZSBrZXlkb3duIGV2ZW50IGZyb20gYW4gSW5wdXQgTWV0aG9kIEVkaXRvcihJTUUpXG4gICAgICAgICAgICAvLyByZWYuIGh0dHBzOi8vd3d3LnczLm9yZy9UUi91aWV2ZW50cy8jZGV0ZXJtaW5lLWtleWRvd24ta2V5dXAta2V5Q29kZVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtZW51SXNPcGVuKSB7XG4gICAgICAgICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChfdGhpcy5pc0NvbXBvc2luZykgcmV0dXJuO1xuICAgICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgICAgICAgYWN0aW9uOiAnbWVudS1jbG9zZScsXG4gICAgICAgICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uTWVudUNsb3NlKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0NsZWFyYWJsZSAmJiBlc2NhcGVDbGVhcnNWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnICc6XG4gICAgICAgICAgLy8gc3BhY2VcbiAgICAgICAgICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZm9jdXNlZE9wdGlvbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLnNlbGVjdE9wdGlvbihmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgaWYgKG1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCd1cCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5vcGVuTWVudSgnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuZm9jdXNPcHRpb24oJ2Rvd24nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMub3Blbk1lbnUoJ2ZpcnN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdldXAnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdlZG93bicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignZmlyc3QnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignbGFzdCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcbiAgICBfdGhpcy5zdGF0ZS5pbnN0YW5jZVByZWZpeCA9ICdyZWFjdC1zZWxlY3QtJyArIChfdGhpcy5wcm9wcy5pbnN0YW5jZUlkIHx8ICsraW5zdGFuY2VJZCk7XG4gICAgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUgPSBjbGVhblZhbHVlKF9wcm9wcy52YWx1ZSk7XG4gICAgLy8gU2V0IGZvY3VzZWRPcHRpb24gaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gaW5pdCAoZS5nLiBkZWZhdWx0TWVudUlzT3BlbilcbiAgICBpZiAoX3Byb3BzLm1lbnVJc09wZW4gJiYgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUubGVuZ3RoKSB7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMgPSBfdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zV2l0aElkcygpO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSBfdGhpcy5idWlsZEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIHZhciBvcHRpb25JbmRleCA9IGZvY3VzYWJsZU9wdGlvbnMuaW5kZXhPZihfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZVswXSk7XG4gICAgICBfdGhpcy5zdGF0ZS5mb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiA9IGZvY3VzYWJsZU9wdGlvbnNbb3B0aW9uSW5kZXhdO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2FibGVPcHRpb25zW29wdGlvbkluZGV4XSk7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoU2VsZWN0LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmdDb21wb3NpdGlvbigpO1xuICAgICAgdGhpcy5zdGFydExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgLy8gTGlzdGVuIHRvIGFsbCBzY3JvbGwgZXZlbnRzLCBhbmQgZmlsdGVyIHRoZW0gb3V0IGluc2lkZSBvZiAnb25TY3JvbGwnXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTY3JvbGwgZm9jdXNlZE9wdGlvbiBpbnRvIHZpZXcgaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gbW91bnQgKGUuZy4gZGVmYXVsdE1lbnVJc09wZW4pXG4gICAgICBpZiAodGhpcy5wcm9wcy5tZW51SXNPcGVuICYmIHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiAmJiB0aGlzLm1lbnVMaXN0UmVmICYmIHRoaXMuZm9jdXNlZE9wdGlvblJlZikge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczYuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNi5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKFxuICAgICAgLy8gZW5zdXJlIGZvY3VzIGlzIHJlc3RvcmVkIGNvcnJlY3RseSB3aGVuIHRoZSBjb250cm9sIGJlY29tZXMgZW5hYmxlZFxuICAgICAgaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkIHx8XG4gICAgICAvLyBlbnN1cmUgZm9jdXMgaXMgb24gdGhlIElucHV0IHdoZW4gdGhlIG1lbnUgb3BlbnNcbiAgICAgIGlzRm9jdXNlZCAmJiBtZW51SXNPcGVuICYmICFwcmV2UHJvcHMubWVudUlzT3Blbikge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0ZvY3VzZWQgJiYgaXNEaXNhYmxlZCAmJiAhcHJldlByb3BzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGJsdXJyZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlZCB3aGlsZSBmb2N1c2VkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgICAgIH0sIHRoaXMub25NZW51Q2xvc2UpO1xuICAgICAgfSBlbHNlIGlmICghaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkICYmIHRoaXMuaW5wdXRSZWYgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGZvY3VzZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbWF0aWNhbGx5IHJlLWVuYWJsZWQgd2hpbGUgZm9jdXNlZCAoRmlyZWZveClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gc2Nyb2xsIHRoZSBmb2N1c2VkIG9wdGlvbiBpbnRvIHZpZXcgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAodGhpcy5tZW51TGlzdFJlZiAmJiB0aGlzLmZvY3VzZWRPcHRpb25SZWYgJiYgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSkge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nQ29tcG9zaXRpb24oKTtcbiAgICAgIHRoaXMuc3RvcExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIENvbnN1bWVyIEhhbmRsZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIH0sIHtcbiAgICBrZXk6IFwib25NZW51T3BlblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbk1lbnVPcGVuKCkge1xuICAgICAgdGhpcy5wcm9wcy5vbk1lbnVPcGVuKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uTWVudUNsb3NlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ21lbnUtY2xvc2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogdGhpcy5wcm9wcy5pbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib25JbnB1dENoYW5nZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbklucHV0Q2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB0aGlzLnByb3BzLm9uSW5wdXRDaGFuZ2UobmV3VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIE1ldGhvZHNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c0lucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzSW5wdXQoKSB7XG4gICAgICBpZiAoIXRoaXMuaW5wdXRSZWYpIHJldHVybjtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1cklucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXJJbnB1dCgpIHtcbiAgICAgIGlmICghdGhpcy5pbnB1dFJlZikgcmV0dXJuO1xuICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgfVxuXG4gICAgLy8gYWxpYXNlZCBmb3IgY29uc3VtZXJzXG4gIH0sIHtcbiAgICBrZXk6IFwib3Blbk1lbnVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1lbnUoZm9jdXNPcHRpb24pIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlMiA9IHRoaXMuc3RhdGUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUyLnNlbGVjdFZhbHVlLFxuICAgICAgICBpc0ZvY3VzZWQgPSBfdGhpcyRzdGF0ZTIuaXNGb2N1c2VkO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSB0aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIG9wZW5BdEluZGV4ID0gZm9jdXNPcHRpb24gPT09ICdmaXJzdCcgPyAwIDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHtcbiAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSBmb2N1c2FibGVPcHRpb25zLmluZGV4T2Yoc2VsZWN0VmFsdWVbMF0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgb3BlbkF0SW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG9ubHkgc2Nyb2xsIGlmIHRoZSBtZW51IGlzbid0IGFscmVhZHkgb3BlblxuICAgICAgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSA9ICEoaXNGb2N1c2VkICYmIHRoaXMubWVudUxpc3RSZWYpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0sXG4gICAgICAgIGZvY3VzZWRPcHRpb25JZDogdGhpcy5nZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0pXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub25NZW51T3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNWYWx1ZShkaXJlY3Rpb24pIHtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTMgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlMy5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGUzLmZvY3VzZWRWYWx1ZTtcblxuICAgICAgLy8gT25seSBtdWx0aXNlbGVjdHMgc3VwcG9ydCB2YWx1ZSBmb2N1c2luZ1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHJldHVybjtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBzZWxlY3RWYWx1ZS5pbmRleE9mKGZvY3VzZWRWYWx1ZSk7XG4gICAgICBpZiAoIWZvY3VzZWRWYWx1ZSkge1xuICAgICAgICBmb2N1c2VkSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBzZWxlY3RWYWx1ZS5sZW5ndGggLSAxO1xuICAgICAgdmFyIG5leHRGb2N1cyA9IC0xO1xuICAgICAgaWYgKCFzZWxlY3RWYWx1ZS5sZW5ndGgpIHJldHVybjtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3ByZXZpb3VzJzpcbiAgICAgICAgICBpZiAoZm9jdXNlZEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAvLyBkb24ndCBjeWNsZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kXG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9jdXNlZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgbm90aGluZyBpcyBmb2N1c2VkLCBmb2N1cyB0aGUgbGFzdCB2YWx1ZSBmaXJzdFxuICAgICAgICAgICAgbmV4dEZvY3VzID0gbGFzdEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA+IC0xICYmIGZvY3VzZWRJbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgbmV4dEZvY3VzID0gZm9jdXNlZEluZGV4ICsgMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgaW5wdXRJc0hpZGRlbjogbmV4dEZvY3VzICE9PSAtMSxcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBzZWxlY3RWYWx1ZVtuZXh0Rm9jdXNdXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNPcHRpb24oKSB7XG4gICAgICB2YXIgZGlyZWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnZmlyc3QnO1xuICAgICAgdmFyIHBhZ2VTaXplID0gdGhpcy5wcm9wcy5wYWdlU2l6ZTtcbiAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uO1xuICAgICAgdmFyIG9wdGlvbnMgPSB0aGlzLmdldEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5sZW5ndGgpIHJldHVybjtcbiAgICAgIHZhciBuZXh0Rm9jdXMgPSAwOyAvLyBoYW5kbGVzICdmaXJzdCdcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBvcHRpb25zLmluZGV4T2YoZm9jdXNlZE9wdGlvbik7XG4gICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHtcbiAgICAgICAgZm9jdXNlZEluZGV4ID0gLTE7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnKSB7XG4gICAgICAgIG5leHRGb2N1cyA9IGZvY3VzZWRJbmRleCA+IDAgPyBmb2N1c2VkSW5kZXggLSAxIDogb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSAoZm9jdXNlZEluZGV4ICsgMSkgJSBvcHRpb25zLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncGFnZXVwJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA8IDApIG5leHRGb2N1cyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggKyBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA+IG9wdGlvbnMubGVuZ3RoIC0gMSkgbmV4dEZvY3VzID0gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdsYXN0Jykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBvcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgICB9XG4gICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBvcHRpb25zW25leHRGb2N1c10sXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiB0aGlzLmdldEZvY3VzZWRPcHRpb25JZChvcHRpb25zW25leHRGb2N1c10pXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0VGhlbWVcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBHZXR0ZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBnZXRUaGVtZSgpIHtcbiAgICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB0aGVtZSBpZiB0aGVyZSBhcmUgbm8gY3VzdG9taXNhdGlvbnMuXG4gICAgICBpZiAoIXRoaXMucHJvcHMudGhlbWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUaGVtZTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSB0aGVtZSBwcm9wIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSB0aGUgZnVuY3Rpb25cbiAgICAgIC8vIGtub3dzIGhvdyB0byBtZXJnZSB0aGUgcGFzc2VkLWluIGRlZmF1bHQgdGhlbWUgd2l0aFxuICAgICAgLy8gaXRzIG93biBtb2RpZmljYXRpb25zLlxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLnRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRoZW1lKGRlZmF1bHRUaGVtZSk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIGlmIGEgcGxhaW4gdGhlbWUgb2JqZWN0IHdhcyBwYXNzZWQgaW4sXG4gICAgICAvLyBvdmVybGF5IGl0IHdpdGggdGhlIGRlZmF1bHQgdGhlbWUuXG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0VGhlbWUpLCB0aGlzLnByb3BzLnRoZW1lKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q29tbW9uUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q29tbW9uUHJvcHMoKSB7XG4gICAgICB2YXIgY2xlYXJWYWx1ZSA9IHRoaXMuY2xlYXJWYWx1ZSxcbiAgICAgICAgY3ggPSB0aGlzLmN4LFxuICAgICAgICBnZXRTdHlsZXMgPSB0aGlzLmdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lcyA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWUgPSB0aGlzLmdldFZhbHVlLFxuICAgICAgICBzZWxlY3RPcHRpb24gPSB0aGlzLnNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlLFxuICAgICAgICBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGksXG4gICAgICAgIGlzUnRsID0gcHJvcHMuaXNSdGwsXG4gICAgICAgIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgICAgdmFyIGhhc1ZhbHVlID0gdGhpcy5oYXNWYWx1ZSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xlYXJWYWx1ZTogY2xlYXJWYWx1ZSxcbiAgICAgICAgY3g6IGN4LFxuICAgICAgICBnZXRTdHlsZXM6IGdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWU6IGdldFZhbHVlLFxuICAgICAgICBoYXNWYWx1ZTogaGFzVmFsdWUsXG4gICAgICAgIGlzTXVsdGk6IGlzTXVsdGksXG4gICAgICAgIGlzUnRsOiBpc1J0bCxcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgc2VsZWN0T3B0aW9uOiBzZWxlY3RPcHRpb24sXG4gICAgICAgIHNlbGVjdFByb3BzOiBwcm9wcyxcbiAgICAgICAgc2V0VmFsdWU6IHNldFZhbHVlLFxuICAgICAgICB0aGVtZTogdGhpcy5nZXRUaGVtZSgpXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNWYWx1ZSgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICByZXR1cm4gc2VsZWN0VmFsdWUubGVuZ3RoID4gMDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNPcHRpb25zKCkge1xuICAgICAgcmV0dXJuICEhdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zKCkubGVuZ3RoO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0NsZWFyYWJsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc0NsZWFyYWJsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0NsZWFyYWJsZSA9IF90aGlzJHByb3BzNy5pc0NsZWFyYWJsZSxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNy5pc011bHRpO1xuXG4gICAgICAvLyBzaW5nbGUgc2VsZWN0LCBieSBkZWZhdWx0LCBJUyBOT1QgY2xlYXJhYmxlXG4gICAgICAvLyBtdWx0aSBzZWxlY3QsIGJ5IGRlZmF1bHQsIElTIGNsZWFyYWJsZVxuICAgICAgaWYgKGlzQ2xlYXJhYmxlID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICAgICAgcmV0dXJuIGlzQ2xlYXJhYmxlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvbkRpc2FibGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvbkRpc2FibGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvblNlbGVjdGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvblNlbGVjdGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmaWx0ZXJPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZmlsdGVyT3B0aW9uKG9wdGlvbiwgaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9maWx0ZXJPcHRpb24odGhpcy5wcm9wcywgb3B0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0T3B0aW9uTGFiZWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0T3B0aW9uTGFiZWwoZGF0YSwgY29udGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBfaW5wdXRWYWx1ZSA9IHRoaXMucHJvcHMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdmFyIF9zZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsKGRhdGEsIHtcbiAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgIGlucHV0VmFsdWU6IF9pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdFZhbHVlOiBfc2VsZWN0VmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0R3JvdXBMYWJlbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXRHcm91cExhYmVsKGRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdEdyb3VwTGFiZWwoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gTW91c2UgSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJzdGFydExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQ29tcG9zaXRpb24gSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nQ29tcG9zaXRpb24oKSB7XG4gICAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RvcExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdDb21wb3NpdGlvbigpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgdGhpcy5vbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RhcnRMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVG91Y2ggSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nVG9Ub3VjaCgpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hTdGFydCwgZmFsc2UpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlLCBmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInN0b3BMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdUb1RvdWNoKCkge1xuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaFN0YXJ0KTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5wdXRcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBSZW5kZXJlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBmdW5jdGlvbiByZW5kZXJJbnB1dCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczggPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM4LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzU2VhcmNoYWJsZSA9IF90aGlzJHByb3BzOC5pc1NlYXJjaGFibGUsXG4gICAgICAgIGlucHV0SWQgPSBfdGhpcyRwcm9wczguaW5wdXRJZCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOC5pbnB1dFZhbHVlLFxuICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzOC50YWJJbmRleCxcbiAgICAgICAgZm9ybSA9IF90aGlzJHByb3BzOC5mb3JtLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM4Lm1lbnVJc09wZW4sXG4gICAgICAgIHJlcXVpcmVkID0gX3RoaXMkcHJvcHM4LnJlcXVpcmVkO1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgSW5wdXQgPSBfdGhpcyRnZXRDb21wb25lbnRzLklucHV0O1xuICAgICAgdmFyIF90aGlzJHN0YXRlNCA9IHRoaXMuc3RhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW4gPSBfdGhpcyRzdGF0ZTQuaW5wdXRJc0hpZGRlbixcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IF90aGlzJHN0YXRlNC5hcmlhU2VsZWN0aW9uO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpZCA9IGlucHV0SWQgfHwgdGhpcy5nZXRFbGVtZW50SWQoJ2lucHV0Jyk7XG5cbiAgICAgIC8vIGFyaWEgYXR0cmlidXRlcyBtYWtlcyB0aGUgSlNYIFwibm9pc3lcIiwgc2VwYXJhdGVkIGZvciBjbGFyaXR5XG4gICAgICB2YXIgYXJpYUF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0JyxcbiAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBtZW51SXNPcGVuLFxuICAgICAgICAnYXJpYS1oYXNwb3B1cCc6IHRydWUsXG4gICAgICAgICdhcmlhLWVycm9ybWVzc2FnZSc6IHRoaXMucHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ10sXG4gICAgICAgICdhcmlhLWludmFsaWQnOiB0aGlzLnByb3BzWydhcmlhLWludmFsaWQnXSxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsJ10sXG4gICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsbGVkYnknXSxcbiAgICAgICAgJ2FyaWEtcmVxdWlyZWQnOiByZXF1aXJlZCxcbiAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IHRoaXMuaXNBcHBsZURldmljZSA/IHVuZGVmaW5lZCA6IHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkIHx8ICcnXG4gICAgICB9LCBtZW51SXNPcGVuICYmIHtcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiB0aGlzLmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICB9KSwgIWlzU2VhcmNoYWJsZSAmJiB7XG4gICAgICAgICdhcmlhLXJlYWRvbmx5JzogdHJ1ZVxuICAgICAgfSksIHRoaXMuaGFzVmFsdWUoKSA/IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnICYmIHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKVxuICAgICAgfSA6IHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgncGxhY2Vob2xkZXInKVxuICAgICAgfSk7XG4gICAgICBpZiAoIWlzU2VhcmNoYWJsZSkge1xuICAgICAgICAvLyB1c2UgYSBkdW1teSBpbnB1dCB0byBtYWludGFpbiBmb2N1cy9ibHVyIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KER1bW15SW5wdXQsIF9leHRlbmRzKHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgaW5uZXJSZWY6IHRoaXMuZ2V0SW5wdXRSZWYsXG4gICAgICAgICAgb25CbHVyOiB0aGlzLm9uSW5wdXRCbHVyLFxuICAgICAgICAgIG9uQ2hhbmdlOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgICBpbnB1dE1vZGU6IFwibm9uZVwiLFxuICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgfSwgYXJpYUF0dHJpYnV0ZXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGF1dG9DYXBpdGFsaXplOiBcIm5vbmVcIixcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm9mZlwiLFxuICAgICAgICBhdXRvQ29ycmVjdDogXCJvZmZcIixcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRJbnB1dFJlZixcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNIaWRkZW46IGlucHV0SXNIaWRkZW4sXG4gICAgICAgIG9uQmx1cjogdGhpcy5vbklucHV0Qmx1cixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UsXG4gICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgZm9ybTogZm9ybSxcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9LCBhcmlhQXR0cmlidXRlcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJQbGFjZWhvbGRlck9yVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyUGxhY2Vob2xkZXJPclZhbHVlKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czIgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgTXVsdGlWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLk11bHRpVmFsdWUsXG4gICAgICAgIE11bHRpVmFsdWVDb250YWluZXIgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICBNdWx0aVZhbHVlTGFiZWwgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlTGFiZWwsXG4gICAgICAgIE11bHRpVmFsdWVSZW1vdmUgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICBTaW5nbGVWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLlNpbmdsZVZhbHVlLFxuICAgICAgICBQbGFjZWhvbGRlciA9IF90aGlzJGdldENvbXBvbmVudHMyLlBsYWNlaG9sZGVyO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRwcm9wczkgPSB0aGlzLnByb3BzLFxuICAgICAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfdGhpcyRwcm9wczkuY29udHJvbFNob3VsZFJlbmRlclZhbHVlLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM5LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczkuaXNNdWx0aSxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOS5pbnB1dFZhbHVlLFxuICAgICAgICBwbGFjZWhvbGRlciA9IF90aGlzJHByb3BzOS5wbGFjZWhvbGRlcjtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTUgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlNS5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU1LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU1LmlzRm9jdXNlZDtcbiAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSgpIHx8ICFjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWUgPyBudWxsIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGxhY2Vob2xkZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGtleTogXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0RWxlbWVudElkKCdwbGFjZWhvbGRlcicpXG4gICAgICAgICAgfVxuICAgICAgICB9KSwgcGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpbmRleCkge1xuICAgICAgICAgIHZhciBpc09wdGlvbkZvY3VzZWQgPSBvcHQgPT09IGZvY3VzZWRWYWx1ZTtcbiAgICAgICAgICB2YXIga2V5ID0gXCJcIi5jb25jYXQoX3RoaXMzLmdldE9wdGlvbkxhYmVsKG9wdCksIFwiLVwiKS5jb25jYXQoX3RoaXMzLmdldE9wdGlvblZhbHVlKG9wdCkpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNdWx0aVZhbHVlLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgICAgICBMYWJlbDogTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgICAgICBSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0ZvY3VzZWQ6IGlzT3B0aW9uRm9jdXNlZCxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIHJlbW92ZVByb3BzOiB7XG4gICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMy5yZW1vdmVWYWx1ZShvcHQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvblRvdWNoRW5kOiBmdW5jdGlvbiBvblRvdWNoRW5kKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczMucmVtb3ZlVmFsdWUob3B0KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb25Nb3VzZURvd246IGZ1bmN0aW9uIG9uTW91c2VEb3duKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiBvcHRcbiAgICAgICAgICB9KSwgX3RoaXMzLmZvcm1hdE9wdGlvbkxhYmVsKG9wdCwgJ3ZhbHVlJykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIHNpbmdsZVZhbHVlID0gc2VsZWN0VmFsdWVbMF07XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2luZ2xlVmFsdWUsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBkYXRhOiBzaW5nbGVWYWx1ZSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMuZm9ybWF0T3B0aW9uTGFiZWwoc2luZ2xlVmFsdWUsICd2YWx1ZScpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyQ2xlYXJJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgQ2xlYXJJbmRpY2F0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzMy5DbGVhckluZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczEwLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTAuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCF0aGlzLmlzQ2xlYXJhYmxlKCkgfHwgIUNsZWFySW5kaWNhdG9yIHx8IGlzRGlzYWJsZWQgfHwgIXRoaXMuaGFzVmFsdWUoKSB8fCBpc0xvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25DbGVhckluZGljYXRvck1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaEVuZDogdGhpcy5vbkNsZWFySW5kaWNhdG9yVG91Y2hFbmQsXG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckluZGljYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckxvYWRpbmdJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTG9hZGluZ0luZGljYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNCA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czQuTG9hZGluZ0luZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMSA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczExLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTEuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCFMb2FkaW5nSW5kaWNhdG9yIHx8ICFpc0xvYWRpbmcpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGlubmVyUHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckluZGljYXRvclNlcGFyYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNSA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBEcm9wZG93bkluZGljYXRvciA9IF90aGlzJGdldENvbXBvbmVudHM1LkRyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICBJbmRpY2F0b3JTZXBhcmF0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzNS5JbmRpY2F0b3JTZXBhcmF0b3I7XG5cbiAgICAgIC8vIHNlcGFyYXRvciBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCB0aGUgZHJvcGRvd24gaW5kaWNhdG9yXG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yIHx8ICFJbmRpY2F0b3JTZXBhcmF0b3IpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpc0Rpc2FibGVkID0gdGhpcy5wcm9wcy5pc0Rpc2FibGVkO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluZGljYXRvclNlcGFyYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckRyb3Bkb3duSW5kaWNhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckRyb3Bkb3duSW5kaWNhdG9yKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM2ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIERyb3Bkb3duSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czYuRHJvcGRvd25JbmRpY2F0b3I7XG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgaXNEaXNhYmxlZCA9IHRoaXMucHJvcHMuaXNEaXNhYmxlZDtcbiAgICAgIHZhciBpc0ZvY3VzZWQgPSB0aGlzLnN0YXRlLmlzRm9jdXNlZDtcbiAgICAgIHZhciBpbm5lclByb3BzID0ge1xuICAgICAgICBvbk1vdXNlRG93bjogdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duLFxuICAgICAgICBvblRvdWNoRW5kOiB0aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCxcbiAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KERyb3Bkb3duSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTWVudVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJNZW51KCkge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czcgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgR3JvdXAgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Hcm91cCxcbiAgICAgICAgR3JvdXBIZWFkaW5nID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuR3JvdXBIZWFkaW5nLFxuICAgICAgICBNZW51ID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTWVudSxcbiAgICAgICAgTWVudUxpc3QgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5NZW51TGlzdCxcbiAgICAgICAgTWVudVBvcnRhbCA9IF90aGlzJGdldENvbXBvbmVudHM3Lk1lbnVQb3J0YWwsXG4gICAgICAgIExvYWRpbmdNZXNzYWdlID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTG9hZGluZ01lc3NhZ2UsXG4gICAgICAgIE5vT3B0aW9uc01lc3NhZ2UgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Ob09wdGlvbnNNZXNzYWdlLFxuICAgICAgICBPcHRpb24gPSBfdGhpcyRnZXRDb21wb25lbnRzNy5PcHRpb247XG4gICAgICB2YXIgY29tbW9uUHJvcHMgPSB0aGlzLmNvbW1vblByb3BzO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb24gPSB0aGlzLnN0YXRlLmZvY3VzZWRPcHRpb247XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNhcHR1cmVNZW51U2Nyb2xsID0gX3RoaXMkcHJvcHMxMi5jYXB0dXJlTWVudVNjcm9sbCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzMTIuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNMb2FkaW5nID0gX3RoaXMkcHJvcHMxMi5pc0xvYWRpbmcsXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlID0gX3RoaXMkcHJvcHMxMi5sb2FkaW5nTWVzc2FnZSxcbiAgICAgICAgbWluTWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWluTWVudUhlaWdodCxcbiAgICAgICAgbWF4TWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWF4TWVudUhlaWdodCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzMTIubWVudUlzT3BlbixcbiAgICAgICAgbWVudVBsYWNlbWVudCA9IF90aGlzJHByb3BzMTIubWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uID0gX3RoaXMkcHJvcHMxMi5tZW51UG9zaXRpb24sXG4gICAgICAgIG1lbnVQb3J0YWxUYXJnZXQgPSBfdGhpcyRwcm9wczEyLm1lbnVQb3J0YWxUYXJnZXQsXG4gICAgICAgIG1lbnVTaG91bGRCbG9ja1Njcm9sbCA9IF90aGlzJHByb3BzMTIubWVudVNob3VsZEJsb2NrU2Nyb2xsLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBfdGhpcyRwcm9wczEyLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZSA9IF90aGlzJHByb3BzMTIubm9PcHRpb25zTWVzc2FnZSxcbiAgICAgICAgb25NZW51U2Nyb2xsVG9Ub3AgPSBfdGhpcyRwcm9wczEyLm9uTWVudVNjcm9sbFRvVG9wLFxuICAgICAgICBvbk1lbnVTY3JvbGxUb0JvdHRvbSA9IF90aGlzJHByb3BzMTIub25NZW51U2Nyb2xsVG9Cb3R0b207XG4gICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBUT0RPOiBJbnRlcm5hbCBPcHRpb24gVHlwZSBoZXJlXG4gICAgICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHByb3BzLCBpZCkge1xuICAgICAgICB2YXIgdHlwZSA9IHByb3BzLnR5cGUsXG4gICAgICAgICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICAgICAgbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgaXNGb2N1c2VkID0gZm9jdXNlZE9wdGlvbiA9PT0gZGF0YTtcbiAgICAgICAgdmFyIG9uSG92ZXIgPSBpc0Rpc2FibGVkID8gdW5kZWZpbmVkIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQub25PcHRpb25Ib3ZlcihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uU2VsZWN0ID0gaXNEaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnNlbGVjdE9wdGlvbihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9wdGlvbklkID0gXCJcIi5jb25jYXQoX3RoaXM0LmdldEVsZW1lbnRJZCgnb3B0aW9uJyksIFwiLVwiKS5jb25jYXQoaWQpO1xuICAgICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgICBpZDogb3B0aW9uSWQsXG4gICAgICAgICAgb25DbGljazogb25TZWxlY3QsXG4gICAgICAgICAgb25Nb3VzZU1vdmU6IG9uSG92ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXI6IG9uSG92ZXIsXG4gICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogX3RoaXM0LmlzQXBwbGVEZXZpY2UgPyB1bmRlZmluZWQgOiBpc1NlbGVjdGVkIC8vIGlzIG5vdCBzdXBwb3J0ZWQgb24gQXBwbGUgZGV2aWNlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChPcHRpb24sIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAga2V5OiBvcHRpb25JZCxcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJSZWY6IGlzRm9jdXNlZCA/IF90aGlzNC5nZXRGb2N1c2VkT3B0aW9uUmVmIDogdW5kZWZpbmVkXG4gICAgICAgIH0pLCBfdGhpczQuZm9ybWF0T3B0aW9uTGFiZWwocHJvcHMuZGF0YSwgJ21lbnUnKSk7XG4gICAgICB9O1xuICAgICAgdmFyIG1lbnVVSTtcbiAgICAgIGlmICh0aGlzLmhhc09wdGlvbnMoKSkge1xuICAgICAgICBtZW51VUkgPSB0aGlzLmdldENhdGVnb3JpemVkT3B0aW9ucygpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgICAgIHZhciBfZGF0YSA9IGl0ZW0uZGF0YSxcbiAgICAgICAgICAgICAgb3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyxcbiAgICAgICAgICAgICAgZ3JvdXBJbmRleCA9IGl0ZW0uaW5kZXg7XG4gICAgICAgICAgICB2YXIgZ3JvdXBJZCA9IFwiXCIuY29uY2F0KF90aGlzNC5nZXRFbGVtZW50SWQoJ2dyb3VwJyksIFwiLVwiKS5jb25jYXQoZ3JvdXBJbmRleCk7XG4gICAgICAgICAgICB2YXIgaGVhZGluZ0lkID0gXCJcIi5jb25jYXQoZ3JvdXBJZCwgXCItaGVhZGluZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChHcm91cCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgICAgICAgIGtleTogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgZGF0YTogX2RhdGEsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgIEhlYWRpbmc6IEdyb3VwSGVhZGluZyxcbiAgICAgICAgICAgICAgaGVhZGluZ1Byb3BzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGhlYWRpbmdJZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGFcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbGFiZWw6IF90aGlzNC5mb3JtYXRHcm91cExhYmVsKGl0ZW0uZGF0YSlcbiAgICAgICAgICAgIH0pLCBpdGVtLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihvcHRpb24sIFwiXCIuY29uY2F0KGdyb3VwSW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyKGl0ZW0sIFwiXCIuY29uY2F0KGl0ZW0uaW5kZXgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBsb2FkaW5nTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBtZW51VUkgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nTWVzc2FnZSwgY29tbW9uUHJvcHMsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIF9tZXNzYWdlID0gbm9PcHRpb25zTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKF9tZXNzYWdlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgbWVudVVJID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTm9PcHRpb25zTWVzc2FnZSwgY29tbW9uUHJvcHMsIF9tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW51UGxhY2VtZW50UHJvcHMgPSB7XG4gICAgICAgIG1pbk1lbnVIZWlnaHQ6IG1pbk1lbnVIZWlnaHQsXG4gICAgICAgIG1heE1lbnVIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICAgIG1lbnVQbGFjZW1lbnQ6IG1lbnVQbGFjZW1lbnQsXG4gICAgICAgIG1lbnVQb3NpdGlvbjogbWVudVBvc2l0aW9uLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXc6IG1lbnVTaG91bGRTY3JvbGxJbnRvVmlld1xuICAgICAgfTtcbiAgICAgIHZhciBtZW51RWxlbWVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQbGFjZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywgbWVudVBsYWNlbWVudFByb3BzKSwgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICAgIHZhciByZWYgPSBfcmVmNC5yZWYsXG4gICAgICAgICAgX3JlZjQkcGxhY2VyUHJvcHMgPSBfcmVmNC5wbGFjZXJQcm9wcyxcbiAgICAgICAgICBwbGFjZW1lbnQgPSBfcmVmNCRwbGFjZXJQcm9wcy5wbGFjZW1lbnQsXG4gICAgICAgICAgbWF4SGVpZ2h0ID0gX3JlZjQkcGxhY2VyUHJvcHMubWF4SGVpZ2h0O1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTWVudSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCBtZW51UGxhY2VtZW50UHJvcHMsIHtcbiAgICAgICAgICBpbm5lclJlZjogcmVmLFxuICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgIG9uTW91c2VEb3duOiBfdGhpczQub25NZW51TW91c2VEb3duLFxuICAgICAgICAgICAgb25Nb3VzZU1vdmU6IF90aGlzNC5vbk1lbnVNb3VzZU1vdmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxNYW5hZ2VyLCB7XG4gICAgICAgICAgY2FwdHVyZUVuYWJsZWQ6IGNhcHR1cmVNZW51U2Nyb2xsLFxuICAgICAgICAgIG9uVG9wQXJyaXZlOiBvbk1lbnVTY3JvbGxUb1RvcCxcbiAgICAgICAgICBvbkJvdHRvbUFycml2ZTogb25NZW51U2Nyb2xsVG9Cb3R0b20sXG4gICAgICAgICAgbG9ja0VuYWJsZWQ6IG1lbnVTaG91bGRCbG9ja1Njcm9sbFxuICAgICAgICB9LCBmdW5jdGlvbiAoc2Nyb2xsVGFyZ2V0UmVmKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVMaXN0LCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGlubmVyUmVmOiBmdW5jdGlvbiBpbm5lclJlZihpbnN0YW5jZSkge1xuICAgICAgICAgICAgICBfdGhpczQuZ2V0TWVudUxpc3RSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICBzY3JvbGxUYXJnZXRSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAgICAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiBjb21tb25Qcm9wcy5pc011bHRpLFxuICAgICAgICAgICAgICBpZDogX3RoaXM0LmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmcsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICAgICAgICAgIGZvY3VzZWRPcHRpb246IGZvY3VzZWRPcHRpb25cbiAgICAgICAgICB9KSwgbWVudVVJKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIHBvc2l0aW9uaW5nIGJlaGF2aW91ciBpcyBhbG1vc3QgaWRlbnRpY2FsIGZvciBwb3J0YWxsZWQgYW5kIGZpeGVkLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBzYW1lIGNvbXBvbmVudC4gdGhlIGFjdHVhbCBwb3J0YWxsaW5nIGxvZ2ljIGlzIGZvcmtlZFxuICAgICAgLy8gd2l0aGluIHRoZSBjb21wb25lbnQgYmFzZWQgb24gYG1lbnVQb3NpdGlvbmBcbiAgICAgIHJldHVybiBtZW51UG9ydGFsVGFyZ2V0IHx8IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQb3J0YWwsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBhcHBlbmRUbzogbWVudVBvcnRhbFRhcmdldCxcbiAgICAgICAgY29udHJvbEVsZW1lbnQ6IHRoaXMuY29udHJvbFJlZixcbiAgICAgICAgbWVudVBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uOiBtZW51UG9zaXRpb25cbiAgICAgIH0pLCBtZW51RWxlbWVudCkgOiBtZW51RWxlbWVudDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyRm9ybUZpZWxkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckZvcm1GaWVsZCgpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTMgPSB0aGlzLnByb3BzLFxuICAgICAgICBkZWxpbWl0ZXIgPSBfdGhpcyRwcm9wczEzLmRlbGltaXRlcixcbiAgICAgICAgaXNEaXNhYmxlZCA9IF90aGlzJHByb3BzMTMuaXNEaXNhYmxlZCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMTMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMTMubmFtZSxcbiAgICAgICAgcmVxdWlyZWQgPSBfdGhpcyRwcm9wczEzLnJlcXVpcmVkO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIGlmIChyZXF1aXJlZCAmJiAhdGhpcy5oYXNWYWx1ZSgpICYmICFpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXF1aXJlZElucHV0JDEsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25WYWx1ZUlucHV0Rm9jdXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW5hbWUgfHwgaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgaWYgKGRlbGltaXRlcikge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0KSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXM1LmdldE9wdGlvblZhbHVlKG9wdCk7XG4gICAgICAgICAgfSkuam9pbihkZWxpbWl0ZXIpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGlucHV0ID0gc2VsZWN0VmFsdWUubGVuZ3RoID4gMCA/IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgIGtleTogXCJpLVwiLmNvbmNhdChpKSxcbiAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgdmFsdWU6IF90aGlzNS5nZXRPcHRpb25WYWx1ZShvcHQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdmFsdWUgPSBzZWxlY3RWYWx1ZVswXSA/IHRoaXMuZ2V0T3B0aW9uVmFsdWUoc2VsZWN0VmFsdWVbMF0pIDogJyc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgdmFsdWU6IF92YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTGl2ZVJlZ2lvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMaXZlUmVnaW9uKCkge1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTYgPSB0aGlzLnN0YXRlLFxuICAgICAgICBhcmlhU2VsZWN0aW9uID0gX3RoaXMkc3RhdGU2LmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZTYuZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU2LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU2LmlzRm9jdXNlZCxcbiAgICAgICAgc2VsZWN0VmFsdWUgPSBfdGhpcyRzdGF0ZTYuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9ucyA9IHRoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KExpdmVSZWdpb24kMSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlkOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbjogYXJpYVNlbGVjdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGZvY3VzYWJsZU9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IHRoaXMuaXNBcHBsZURldmljZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM4ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIENvbnRyb2wgPSBfdGhpcyRnZXRDb21wb25lbnRzOC5Db250cm9sLFxuICAgICAgICBJbmRpY2F0b3JzQ29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguSW5kaWNhdG9yc0NvbnRhaW5lcixcbiAgICAgICAgU2VsZWN0Q29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguU2VsZWN0Q29udGFpbmVyLFxuICAgICAgICBWYWx1ZUNvbnRhaW5lciA9IF90aGlzJGdldENvbXBvbmVudHM4LlZhbHVlQ29udGFpbmVyO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTQgPSB0aGlzLnByb3BzLFxuICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczE0LmNsYXNzTmFtZSxcbiAgICAgICAgaWQgPSBfdGhpcyRwcm9wczE0LmlkLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHMxNC5pc0Rpc2FibGVkLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHMxNC5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcyA9IHRoaXMuZ2V0Q29tbW9uUHJvcHMoKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RDb250YWluZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBvbktleURvd246IHRoaXMub25LZXlEb3duXG4gICAgICAgIH0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSwgdGhpcy5yZW5kZXJMaXZlUmVnaW9uKCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbnRyb2wsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRDb250cm9sUmVmLFxuICAgICAgICBpbm5lclByb3BzOiB7XG4gICAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25Db250cm9sTW91c2VEb3duLFxuICAgICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMub25Db250cm9sVG91Y2hFbmRcbiAgICAgICAgfSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5cbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChWYWx1ZUNvbnRhaW5lciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgICAgIH0pLCB0aGlzLnJlbmRlclBsYWNlaG9sZGVyT3JWYWx1ZSgpLCB0aGlzLnJlbmRlcklucHV0KCkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbmRpY2F0b3JzQ29udGFpbmVyLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMucmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSwgdGhpcy5yZW5kZXJMb2FkaW5nSW5kaWNhdG9yKCksIHRoaXMucmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yKCksIHRoaXMucmVuZGVyRHJvcGRvd25JbmRpY2F0b3IoKSkpLCB0aGlzLnJlbmRlck1lbnUoKSwgdGhpcy5yZW5kZXJGb3JtRmllbGQoKSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIHZhciBwcmV2UHJvcHMgPSBzdGF0ZS5wcmV2UHJvcHMsXG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlID0gc3RhdGUuY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSA9IHN0YXRlLmlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IHN0YXRlLmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGlzRm9jdXNlZCA9IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgICAgcHJldldhc0ZvY3VzZWQgPSBzdGF0ZS5wcmV2V2FzRm9jdXNlZCxcbiAgICAgICAgaW5zdGFuY2VQcmVmaXggPSBzdGF0ZS5pbnN0YW5jZVByZWZpeDtcbiAgICAgIHZhciBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgICAgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICAgICAgbWVudUlzT3BlbiA9IHByb3BzLm1lbnVJc09wZW4sXG4gICAgICAgIGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IGNsZWFuVmFsdWUodmFsdWUpO1xuICAgICAgdmFyIG5ld01lbnVPcHRpb25zU3RhdGUgPSB7fTtcbiAgICAgIGlmIChwcmV2UHJvcHMgJiYgKHZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgfHwgb3B0aW9ucyAhPT0gcHJldlByb3BzLm9wdGlvbnMgfHwgbWVudUlzT3BlbiAhPT0gcHJldlByb3BzLm1lbnVJc09wZW4gfHwgaW5wdXRWYWx1ZSAhPT0gcHJldlByb3BzLmlucHV0VmFsdWUpKSB7XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zID0gbWVudUlzT3BlbiA/IGJ1aWxkRm9jdXNhYmxlT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIDogW107XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IG1lbnVJc09wZW4gPyBidWlsZEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzKGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSksIFwiXCIuY29uY2F0KGluc3RhbmNlUHJlZml4LCBcIi1vcHRpb25cIikpIDogW107XG4gICAgICAgIHZhciBmb2N1c2VkVmFsdWUgPSBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZSA/IGdldE5leHRGb2N1c2VkVmFsdWUoc3RhdGUsIHNlbGVjdFZhbHVlKSA6IG51bGw7XG4gICAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIGZvY3VzYWJsZU9wdGlvbnMpO1xuICAgICAgICB2YXIgZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgbmV3TWVudU9wdGlvbnNTdGF0ZSA9IHtcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgICBmb2N1c2VkT3B0aW9uSWQ6IGZvY3VzZWRPcHRpb25JZCxcbiAgICAgICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsXG4gICAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgICAgY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBzb21lIHVwZGF0ZXMgc2hvdWxkIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhlIGlucHV0IHZpc2liaWxpdHlcbiAgICAgIHZhciBuZXdJbnB1dElzSGlkZGVuU3RhdGUgPSBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUgIT0gbnVsbCAmJiBwcm9wcyAhPT0gcHJldlByb3BzID8ge1xuICAgICAgICBpbnB1dElzSGlkZGVuOiBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogdW5kZWZpbmVkXG4gICAgICB9IDoge307XG4gICAgICB2YXIgbmV3QXJpYVNlbGVjdGlvbiA9IGFyaWFTZWxlY3Rpb247XG4gICAgICB2YXIgaGFzS2VwdEZvY3VzID0gaXNGb2N1c2VkICYmIHByZXZXYXNGb2N1c2VkO1xuICAgICAgaWYgKGlzRm9jdXNlZCAmJiAhaGFzS2VwdEZvY3VzKSB7XG4gICAgICAgIC8vIElmIGB2YWx1ZWAgb3IgYGRlZmF1bHRWYWx1ZWAgcHJvcHMgYXJlIG5vdCBlbXB0eSB0aGVuIGFubm91bmNlIHRoZW1cbiAgICAgICAgLy8gd2hlbiB0aGUgU2VsZWN0IGlzIGluaXRpYWxseSBmb2N1c2VkXG4gICAgICAgIG5ld0FyaWFTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlVGVybmFyeShpc011bHRpLCBzZWxlY3RWYWx1ZSwgc2VsZWN0VmFsdWVbMF0gfHwgbnVsbCksXG4gICAgICAgICAgb3B0aW9uczogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgYWN0aW9uOiAnaW5pdGlhbC1pbnB1dC1mb2N1cydcbiAgICAgICAgfTtcbiAgICAgICAgaGFzS2VwdEZvY3VzID0gIXByZXZXYXNGb2N1c2VkO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgJ2luaXRpYWwtaW5wdXQtZm9jdXMnIGFjdGlvbiBoYXMgYmVlbiBzZXQgYWxyZWFkeVxuICAgICAgLy8gdGhlbiByZXNldCB0aGUgYXJpYVNlbGVjdGlvbiB0byBudWxsXG4gICAgICBpZiAoKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cycpIHtcbiAgICAgICAgbmV3QXJpYVNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5ld01lbnVPcHRpb25zU3RhdGUpLCBuZXdJbnB1dElzSGlkZGVuU3RhdGUpLCB7fSwge1xuICAgICAgICBwcmV2UHJvcHM6IHByb3BzLFxuICAgICAgICBhcmlhU2VsZWN0aW9uOiBuZXdBcmlhU2VsZWN0aW9uLFxuICAgICAgICBwcmV2V2FzRm9jdXNlZDogaGFzS2VwdEZvY3VzXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNlbGVjdDtcbn0oQ29tcG9uZW50KTtcblNlbGVjdC5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCB7IFNlbGVjdCBhcyBTLCBkZWZhdWx0UHJvcHMgYXMgYSwgZ2V0T3B0aW9uTGFiZWwkMSBhcyBiLCBjcmVhdGVGaWx0ZXIgYXMgYywgZGVmYXVsdFRoZW1lIGFzIGQsIGdldE9wdGlvblZhbHVlJDEgYXMgZywgbWVyZ2VTdHlsZXMgYXMgbSB9O1xuIiwgImltcG9ydCB7IHUgYXMgdXNlU3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi91c2VTdGF0ZU1hbmFnZXItN2UxZTg0ODkuZXNtLmpzJztcbmV4cG9ydCB7IHUgYXMgdXNlU3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi91c2VTdGF0ZU1hbmFnZXItN2UxZTg0ODkuZXNtLmpzJztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTIGFzIFNlbGVjdCB9IGZyb20gJy4vU2VsZWN0LTFmZDU4OGM5LmVzbS5qcyc7XG5leHBvcnQgeyBjIGFzIGNyZWF0ZUZpbHRlciwgZCBhcyBkZWZhdWx0VGhlbWUsIG0gYXMgbWVyZ2VTdHlsZXMgfSBmcm9tICcuL1NlbGVjdC0xZmQ1ODhjOS5lc20uanMnO1xuaW1wb3J0IHsgQ2FjaGVQcm92aWRlciB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBjcmVhdGVDYWNoZSBmcm9tICdAZW1vdGlvbi9jYWNoZSc7XG5leHBvcnQgeyBjIGFzIGNvbXBvbmVudHMgfSBmcm9tICcuL2luZGV4LWEzMDFmNTI2LmVzbS5qcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMic7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheSc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZVN1cGVyJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheSc7XG5pbXBvcnQgJ21lbW9pemUtb25lJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0ICdyZWFjdC1kb20nO1xuaW1wb3J0ICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCAndXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbnZhciBTdGF0ZU1hbmFnZWRTZWxlY3QgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgYmFzZVNlbGVjdFByb3BzID0gdXNlU3RhdGVNYW5hZ2VyKHByb3BzKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmXG4gIH0sIGJhc2VTZWxlY3RQcm9wcykpO1xufSk7XG52YXIgU3RhdGVNYW5hZ2VkU2VsZWN0JDEgPSBTdGF0ZU1hbmFnZWRTZWxlY3Q7XG5cbnZhciBOb25jZVByb3ZpZGVyID0gKGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBub25jZSA9IF9yZWYubm9uY2UsXG4gICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgIGNhY2hlS2V5ID0gX3JlZi5jYWNoZUtleTtcbiAgdmFyIGVtb3Rpb25DYWNoZSA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjcmVhdGVDYWNoZSh7XG4gICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgbm9uY2U6IG5vbmNlXG4gICAgfSk7XG4gIH0sIFtjYWNoZUtleSwgbm9uY2VdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENhY2hlUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogZW1vdGlvbkNhY2hlXG4gIH0sIGNoaWxkcmVuKTtcbn0pO1xuXG5leHBvcnQgeyBOb25jZVByb3ZpZGVyLCBTdGF0ZU1hbmFnZWRTZWxlY3QkMSBhcyBkZWZhdWx0IH07XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IHVzZUVkaXRhYmxlRGlzcGF0Y2ggfSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgVGFyZ2V0ZWRFdmVudCB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyB1c2VTdGFibGVDYWxsYmFjayB9IGZyb20gXCJ1aS9ob29rc1wiO1xuXG4vKiogRWRpdGFibGUgZmllbGQgZm9yIGEgYm9vbGVhbiAodHJ1ZS9mYWxzZSkgdmFsdWUuXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gQm9vbGVhbkVkaXRhYmxlKHByb3BzOiBGaWVsZENvbnRyb2xQcm9wczxib29sZWFuPikge1xuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDxib29sZWFuPih7XG4gICAgICAgIGNvbnRlbnQ6IHByb3BzLnZhbHVlID8/IHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdXBkYXRlcjogcHJvcHMudXBkYXRlciEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAoZXZ0OiBUYXJnZXRlZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld1ZhbHVlID0gIWV2dC5jdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKFwiaXMtZW5hYmxlZFwiKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWUgfSk7XG4gICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29tbWl0XCIsIG5ld1ZhbHVlIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbc3RhdGUuY29udGVudCwgc3RhdGUsIHByb3BzLnZhbHVlXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IG9uQ2xpY2s9e29uQ2hhbmdlfSBjbGFzc05hbWU9e2BjaGVja2JveC1jb250YWluZXIke3N0YXRlLmNvbnRlbnQgPyBcIiBpcy1lbmFibGVkXCIgOiBcIlwifWB9PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50IH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCB7IERpc3BhdGNoLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IEVkaXRhYmxlLCBFZGl0YWJsZUFjdGlvbiwgRWRpdGFibGVTdGF0ZSB9IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5cbmltcG9ydCBcIi4vZmllbGRzLmNzc1wiO1xuXG4vKiogRWRpdGFibGUgZmllbGQgZm9yIG11bHRpLXN0ZXAgcHJvZ3Jlc3MuXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gUHJvZ3Jlc3NFZGl0YWJsZShcbiAgICBwcm9wczogRWRpdGFibGVTdGF0ZTxudW1iZXI+ICYge1xuICAgICAgICBzb3VyY2VQYXRoOiBzdHJpbmc7XG4gICAgICAgIG1pbjogbnVtYmVyO1xuICAgICAgICBtYXg6IG51bWJlcjtcbiAgICAgICAgc3RlcDogbnVtYmVyO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248bnVtYmVyPj47XG4gICAgfVxuKSB7XG4gICAgY29uc3QgdmFsID0gdXNlUmVmKHByb3BzLmNvbnRlbnQpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHZhbC5jdXJyZW50IH0pO1xuICAgIH0sIFt2YWwuY3VycmVudF0pO1xuICAgIGNvbnN0IGZpbmFsaXplID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBwcm9wcy5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBcImNvbW1pdFwiLFxuICAgICAgICAgICAgbmV3VmFsdWU6IHZhbC5jdXJyZW50LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGNoYW5nZUNCID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgZmluYWxpemUoKTtcbiAgICAgICAgICAgIHZhbC5jdXJyZW50ID0gcGFyc2VGbG9hdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbdmFsLmN1cnJlbnQsIHByb3BzLnNvdXJjZVBhdGhdXG4gICAgKTtcbiAgICBjb25zdCByZWFkT25seSA9IDxwcm9ncmVzcyB2YWx1ZT17dmFsLmN1cnJlbnR9IG1pbj17cHJvcHMubWlufSBtYXg9e3Byb3BzLm1heH0gc3RlcD17cHJvcHMuc3RlcH0gLz47XG5cbiAgICBjb25zdCBlZGl0b3IgPSAoXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFuZ2VcIiBjbGFzc05hbWU9XCJkYXRhY29yZS1wcm9ncmVzcy1lZGl0YWJsZVwiIHZhbHVlPXt2YWwuY3VycmVudH0gb25DaGFuZ2U9e2NoYW5nZUNCfSAvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYXMtdGV4dGVkaXRhYmxlXCI+XG4gICAgICAgICAgICA8RWRpdGFibGU8bnVtYmVyPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtwcm9wcy5kaXNwYXRjaH1cbiAgICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgICBzdGF0ZT17eyAuLi5wcm9wcywgY29udGVudDogdmFsLmN1cnJlbnQsIGlzRWRpdGluZzogcHJvcHMuaXNFZGl0aW5nIH19XG4gICAgICAgICAgICAgICAgZGVmYXVsdFJlbmRlcj17cmVhZE9ubHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgdWlcbiAqL1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgdXNlRWRpdGFibGVEaXNwYXRjaCB9IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcblxuaW1wb3J0IFwiLi9maWVsZHMuY3NzXCI7XG5cbi8qKiBFZGl0YWJsZSBmaWVsZCBmb3IgYSBzdGFyLWJhc2VkIHJhdGluZyBmaWVsZC5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSYXRpbmdFZGl0YWJsZSh7IHZhbHVlLCB1cGRhdGVyLCBjb25maWc6IGNvbmZpZywgZGVmYXVsdFZhbHVlIH06IEZpZWxkQ29udHJvbFByb3BzPG51bWJlciB8IHN0cmluZz4pIHtcbiAgICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8bnVtYmVyIHwgc3RyaW5nPih7XG4gICAgICAgIGNvbnRlbnQ6IHZhbHVlID8/IGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlciEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHN0YXRlLmNvbnRlbnQgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHN0YXRlLmNvbnRlbnQuY29udGFpbnMoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNwbGl0ID0gc3RhdGUuY29udGVudC5zcGxpdChcIi9cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHNwbGl0WzBdKSAvIHBhcnNlSW50KHNwbGl0WzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuY29udGVudCA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oc3RhdGUuY29udGVudCwgNSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSwgW3N0YXRlLmNvbnRlbnRdKTtcblxuICAgIGNvbnN0IHN0YXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCByOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChjb25maWc/Lm1heCA/PyA1KTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgY2xpY2tDYiA9IHVzZVN0YWJsZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhdGUuY29udGVudCA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5jb250ZW50LmNvbnRhaW5zKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBgJHtpICsgMX0vNWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdGF0ZS5jb250ZW50ID09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBNYXRoLm1pbihpICsgMSwgY29uZmlnPy5tYXggPz8gNSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogbmV3VmFsdWUgfHwgaSArIDEgfSk7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbW1pdFwiLCBuZXdWYWx1ZTogbmV3VmFsdWUgfHwgaSArIDEgfSk7XG4gICAgICAgICAgICB9LCBbc3RhdGUsIHBhcnNlZFZhbHVlLCBpXSk7XG4gICAgICAgICAgICBsZXQgY2xhc3NlcyA9IFtcImRhdGFjb3JlLXJhdGluZy1zdGFyXCJdO1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGkgPCBwYXJzZWRWYWx1ZSA/IFwiZmlsbGVkXCIgOiBcImVtcHR5XCIpO1xuICAgICAgICAgICAgci5wdXNoKFxuICAgICAgICAgICAgICAgIDxzcGFuIG9uQ2xpY2s9e2NsaWNrQ2J9IGNsYXNzTmFtZT17Y2xhc3Nlcy5qb2luKFwiIFwiKX0+XG4gICAgICAgICAgICAgICAgICAgICYjOTczMztcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH0sIFtwYXJzZWRWYWx1ZSwgc3RhdGVdKTtcblxuICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJkYXRhY29yZS1yYXRpbmdcIj57c3RhcnN9PC9zcGFuPjtcbn1cbiIsICJpbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgU3Vic3RvcmVyIH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgc2V0RW1vamlTaG9ydGhhbmRDb21wbGV0aW9uRmllbGQsIHNldElubGluZUZpZWxkIH0gZnJvbSBcImluZGV4L2ltcG9ydC9pbmxpbmUtZmllbGRcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IE1hcmtkb3duUGFnZSwgTWFya2Rvd25TZWN0aW9uLCBNYXJrZG93bkJsb2NrLCBNYXJrZG93bkxpc3RJdGVtLCBNYXJrZG93blRhc2tJdGVtIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgVmF1bHQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRG90RmllbGQocmF3OiBzdHJpbmcsIG9iajogYW55KSB7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCkgcmV0dXJuIG9iajtcbiAgICBpZiAocmF3LmNvbnRhaW5zKFwiLlwiKSlcbiAgICAgICAgcmV0dXJuIHJhdy5zcGxpdChcIi5cIikucmVkdWNlKCh0aWYsIGMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGlmID09IFwib2JqZWN0XCIpIHJldHVybiB0aWZbY107XG4gICAgICAgICAgICBlbHNlIHJldHVybiB0aWY7XG4gICAgICAgIH0sIG9iaiB8fCB7fSk7XG4gICAgaWYgKHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqW3Jhd107XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZChpbnB1dDogSW5kZXhhYmxlLCBmaWVsZDogc3RyaW5nKSB7XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgTWFya2Rvd25QYWdlKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5maWVsZChmaWVsZCk/LnZhbHVlID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIE1hcmtkb3duU2VjdGlvbikge1xuICAgICAgICByZXR1cm4gaW5wdXQuZmllbGQoZmllbGQpPy52YWx1ZSA/PyBudWxsO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBNYXJrZG93bkJsb2NrKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5maWVsZChmaWVsZCk/LnZhbHVlID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIE1hcmtkb3duTGlzdEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LmZpZWxkKGZpZWxkKT8udmFsdWUgPz8gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxufSAvKiogVHJpbSBlbXB0eSBlbmRpbmcgbGluZXMuICovXG5mdW5jdGlvbiB0cmltRW5kaW5nTGluZXModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHMgPSB0ZXh0LnNwbGl0KC9cXHI/XFxuL3UpO1xuICAgIGxldCB0cmltID0gcGFydHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAodHJpbSA+IDAgJiYgcGFydHNbdHJpbV0udHJpbSgpID09IFwiXCIpIHRyaW0tLTtcblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiXFxuXCIpO1xufVxuLyoqIFNldCB0aGUgdGFzayBjb21wbGV0aW9uIGtleSBvbiBjaGVjay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRUYXNrQ29tcGxldGlvbihcbiAgICB0YXNrOiBNYXJrZG93blRhc2tJdGVtLFxuICAgIG9yaWdpbmFsVGV4dDogc3RyaW5nLFxuICAgIHVzZUVtb2ppU2hvcnRoYW5kOiBib29sZWFuLFxuICAgIGNvbXBsZXRpb25LZXk6IHN0cmluZyxcbiAgICBjb21wbGV0aW9uRGF0ZUZvcm1hdDogc3RyaW5nLFxuICAgIGNvbXBsZXRlOiBib29sZWFuXG4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGJsb2NrSWRSZWdleCA9IC9cXF5bYS16MC05XFwtXSsvaTtcblxuICAgIGlmICghY29tcGxldGUgJiYgIXVzZUVtb2ppU2hvcnRoYW5kKSB7XG4gICAgICAgIGRlbGV0ZSB0YXNrLiRpbmZpZWxkc1tjb21wbGV0aW9uS2V5XTtcbiAgICAgICAgcmV0dXJuIHRyaW1FbmRpbmdMaW5lcyhzZXRJbmxpbmVGaWVsZChvcmlnaW5hbFRleHQudHJpbUVuZCgpLCBjb21wbGV0aW9uS2V5KSkudHJpbUVuZCgpO1xuICAgIH1cblxuICAgIGxldCBwYXJ0cyA9IG9yaWdpbmFsVGV4dC5zcGxpdCgvXFxyP1xcbi91KTtcbiAgICBjb25zdCBtYXRjaGVzID0gYmxvY2tJZFJlZ2V4LmV4ZWMocGFydHNbcGFydHMubGVuZ3RoIC0gMV0pO1xuXG4gICAgbGV0IHByb2Nlc3NlZFBhcnQgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXS5zcGxpdChibG9ja0lkUmVnZXgpLmpvaW4oXCJcIik7IC8vIGxhc3QgcGFydCB3aXRob3V0IGJsb2NrIGlkXG4gICAgaWYgKHVzZUVtb2ppU2hvcnRoYW5kKSB7XG4gICAgICAgIHByb2Nlc3NlZFBhcnQgPSBzZXRFbW9qaVNob3J0aGFuZENvbXBsZXRpb25GaWVsZChcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhcnQsXG4gICAgICAgICAgICBjb21wbGV0ZSA/IERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KFwieXl5eS1NTS1kZFwiKSA6IFwiXCJcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzZWRQYXJ0ID0gc2V0SW5saW5lRmllbGQocHJvY2Vzc2VkUGFydCwgY29tcGxldGlvbktleSwgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoY29tcGxldGlvbkRhdGVGb3JtYXQpKTtcbiAgICAgICAgdGFzay4kaW5maWVsZHNbY29tcGxldGlvbktleV0gPSB7XG4gICAgICAgICAgICByYXc6IERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KGNvbXBsZXRpb25EYXRlRm9ybWF0KSxcbiAgICAgICAgICAgIHZhbHVlOiBEYXRlVGltZS5ub3coKSxcbiAgICAgICAgICAgIGtleTogY29tcGxldGlvbktleSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgbGluZTogdGFzay4kbGluZSxcbiAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICBzdGFydFZhbHVlOiAwLFxuICAgICAgICAgICAgICAgIGVuZDogRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoY29tcGxldGlvbkRhdGVGb3JtYXQpLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBwcm9jZXNzZWRQYXJ0ID0gYCR7cHJvY2Vzc2VkUGFydC50cmltRW5kKCl9JHttYXRjaGVzPy5sZW5ndGggPyBcIiBcIiArIG1hdGNoZXNbMF0udHJpbSgpIDogXCJcIn1gLnRyaW1FbmQoKTsgLy8gYWRkIGJhY2sgYmxvY2sgaWRcbiAgICBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9IHByb2Nlc3NlZFBhcnQudHJpbVN0YXJ0KCk7XG5cbiAgICByZXR1cm4gcGFydHMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGNvbnN0IExJU1RfSVRFTV9SRUdFWCA9IC9eW1xccz5dKihcXGQrXFwufFxcZCtcXCl8XFwqfC18XFwrKVxccyooXFxbLnswLDF9XFxdKT9cXHMqKC4qKSQvbXU7XG5cbi8qKiBSZXdyaXRlIGEgdGFzayB3aXRoIHRoZSBnaXZlbiBjb21wbGV0aW9uIHN0YXR1cyBhbmQgbmV3IHRleHQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV3cml0ZVRhc2soXG4gICAgdmF1bHQ6IFZhdWx0LFxuICAgIGNvcmU6IERhdGFjb3JlLFxuICAgIHRhc2s6IE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtLFxuICAgIGRlc2lyZWRTdGF0dXM6IHN0cmluZyxcbiAgICBkZXNpcmVkVGV4dD86IHN0cmluZ1xuKSB7XG4gICAgaWYgKFxuICAgICAgICB0YXNrIGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSAmJlxuICAgICAgICBkZXNpcmVkU3RhdHVzID09IHRhc2suJHN0YXR1cyAmJlxuICAgICAgICAoZGVzaXJlZFRleHQgPT0gdW5kZWZpbmVkIHx8IGRlc2lyZWRUZXh0ID09IHRhc2suJHRleHQpXG4gICAgKVxuICAgICAgICByZXR1cm47XG4gICAgZGVzaXJlZFN0YXR1cyA9IGRlc2lyZWRTdGF0dXMgPT0gXCJcIiA/IFwiIFwiIDogZGVzaXJlZFN0YXR1cztcblxuICAgIGxldCByYXdGaWxldGV4dCA9IGF3YWl0IHZhdWx0LmFkYXB0ZXIucmVhZCh0YXNrLiRmaWxlKTtcbiAgICBsZXQgaGFzUk4gPSByYXdGaWxldGV4dC5jb250YWlucyhcIlxcclwiKTtcbiAgICBsZXQgZmlsZXRleHQgPSByYXdGaWxldGV4dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vdSk7XG5cbiAgICBpZiAoZmlsZXRleHQubGVuZ3RoIDwgdGFzay4kbGluZSkgcmV0dXJuO1xuICAgIGxldCBtYXRjaCA9IExJU1RfSVRFTV9SRUdFWC5leGVjKGZpbGV0ZXh0W3Rhc2suJGxpbmVdKTtcbiAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzJdPy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXG4gICAgbGV0IHRhc2tUZXh0UGFydHMgPSB0YXNrLiR0ZXh0IS5zcGxpdChcIlxcblwiKTtcbiAgICAvLyBpZiAodGFza1RleHRQYXJ0c1swXS50cmltKCkgIT0gbWF0Y2hbM10udHJpbSgpKSByZXR1cm47XG5cbiAgICAvLyBXZSBoYXZlIGEgcG9zaXRpdmUgbWF0Y2ggaGVyZSBhdCB0aGlzIHBvaW50LCBzbyBnbyBhaGVhZCBhbmQgZG8gdGhlIHJld3JpdGUgb2YgdGhlIHN0YXR1cy5cbiAgICBjb25zdCBzdGF0dXNQYXJ0ID0gdGFzayBpbnN0YW5jZW9mIE1hcmtkb3duVGFza0l0ZW0gPyBgWyR7ZGVzaXJlZFN0YXR1c31dYCA6IFwiXCI7XG4gICAgbGV0IGluaXRpYWxTcGFjaW5nID0gL15bXFxzPl0qL3UuZXhlYyhmaWxldGV4dFt0YXNrLiRsaW5lXSkhIVswXTtcbiAgICBpZiAoZGVzaXJlZFRleHQpIHtcbiAgICAgICAgbGV0IGRlc2lyZWRQYXJ0cyA9IGRlc2lyZWRUZXh0LnNwbGl0KFwiXFxuXCIpO1xuXG4gICAgICAgIGxldCBuZXdUZXh0TGluZXM6IHN0cmluZ1tdID0gW2Ake2luaXRpYWxTcGFjaW5nfSR7dGFzay4kc3ltYm9sfSAke3N0YXR1c1BhcnR9ICR7ZGVzaXJlZFBhcnRzWzBdfWBdLmNvbmNhdChcbiAgICAgICAgICAgIGRlc2lyZWRQYXJ0cy5zbGljZSgxKS5tYXAoKGwpID0+IGluaXRpYWxTcGFjaW5nICsgXCJcXHRcIiArIGwudHJpbVN0YXJ0KCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgZmlsZXRleHQuc3BsaWNlKHRhc2suJGxpbmUsIHRhc2suJHRleHQhLnNwbGl0KFwiXFxuXCIpLmxlbmd0aCwgLi4ubmV3VGV4dExpbmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWxldGV4dFt0YXNrLiRsaW5lXSA9IGAke2luaXRpYWxTcGFjaW5nfSR7dGFzay4kc3ltYm9sfSAke3N0YXR1c1BhcnR9ICR7dGFza1RleHRQYXJ0c1swXS50cmltKCl9YDtcbiAgICB9XG5cbiAgICBsZXQgbmV3VGV4dCA9IGZpbGV0ZXh0LmpvaW4oaGFzUk4gPyBcIlxcclxcblwiIDogXCJcXG5cIik7XG4gICAgYXdhaXQgdmF1bHQuYWRhcHRlci53cml0ZSh0YXNrLiRmaWxlLCBuZXdUZXh0KTtcbiAgICBjb25zdCB0ZmlsZSA9IHZhdWx0LmdldEZpbGVCeVBhdGgodGFzay4kZmlsZSk7XG4gICAgaWYgKHRmaWxlKSBjb3JlLnJlbG9hZCh0ZmlsZSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29tcGxldGVUYXNrKGNvbXBsZXRlZDogYm9vbGVhbiwgdGFzazogTWFya2Rvd25UYXNrSXRlbSwgdmF1bHQ6IFZhdWx0LCBjb3JlOiBEYXRhY29yZSkge1xuICAgIGNvbnN0IHRhc2tzVG9Db21wbGV0ZSA9IFt0YXNrXTtcbiAgICBpZiAoY29yZS5zZXR0aW5ncy5yZWN1cnNpdmVUYXNrQ29tcGxldGlvbikge1xuICAgICAgICBjb25zdCBmb3JFYWNoID0gKHg6IE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoeCBpbnN0YW5jZW9mIE1hcmtkb3duVGFza0l0ZW0pIHRhc2tzVG9Db21wbGV0ZS5wdXNoKHgpO1xuICAgICAgICAgICAgeC4kZWxlbWVudHMuZm9yRWFjaChmb3JFYWNoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGFzay4kZWxlbWVudHMuZm9yRWFjaChmb3JFYWNoKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB0IG9mIHRhc2tzVG9Db21wbGV0ZSkge1xuICAgICAgICBsZXQgbmV3VGV4dCA9IHNldFRhc2tDb21wbGV0aW9uKFxuICAgICAgICAgICAgdCxcbiAgICAgICAgICAgIHQuJHRleHQhLFxuICAgICAgICAgICAgY29yZS5zZXR0aW5ncy50YXNrQ29tcGxldGlvblVzZUVtb2ppU2hvcnRoYW5kLFxuICAgICAgICAgICAgY29yZS5zZXR0aW5ncy50YXNrQ29tcGxldGlvblRleHQsXG4gICAgICAgICAgICBjb3JlLnNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0LFxuICAgICAgICAgICAgY29tcGxldGVkXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHJld3JpdGVUYXNrKHZhdWx0LCBjb3JlLCB0LCBjb21wbGV0ZWQgPyBcInhcIiA6IFwiIFwiLCBuZXdUZXh0KTtcbiAgICB9XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuLyoqIFV0aWxpdGllcyBmb3IgY29udmVydGluZyBsaXRlcmFsIHR5cGVzIHRvIGFuZCBmcm9tIHRoZWlyIFlBTUwgZnJvbnRtYXR0ZXIgcmVwcmVzZW50YXRpb24uICovXG5cbmltcG9ydCB7IExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgUFJJTUlUSVZFUyB9IGZyb20gXCJleHByZXNzaW9uL3BhcnNlclwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5cbi8qKiBZQU1MLWZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIGZvciBhIGxpdGVyYWwuICovXG5leHBvcnQgdHlwZSBZYW1sTGl0ZXJhbCA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgUmVjb3JkPHN0cmluZywgYW55PiB8IEFycmF5PFlhbWxMaXRlcmFsPjtcbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgWWFtbENvbnZlcnNpb24ge1xuICAgIC8qKiBDb252ZXJ0IGEgbGl0ZXJhbCBpbnRvIGEgeWFtbCBmcmllbmRseSByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24geWFtbCh2YWx1ZTogTGl0ZXJhbCk6IFlhbWxMaXRlcmFsIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShsaXRlcmFsKTtcbiAgICAgICAgaWYgKCF3cmFwcGVkKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIGNhc2UgXCJudWxsXCI6XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXAoeWFtbCk7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvSVNPKCk7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b0h1bWFuKCk7XG4gICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKHdyYXBwZWQudmFsdWUsIHlhbWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgYSBZQU1MIGxpdGVyYWwgaW50byBhIHJlZ3VsYXIgbGl0ZXJhbCB2YWx1ZS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGl0ZXJhbCh2YWx1ZTogWWFtbExpdGVyYWwpOiBMaXRlcmFsIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHZhbHVlIGFzIEFycmF5PGFueT4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobGl0ZXJhbChjaGlsZCkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGxldCBkYXRlUGFyc2UgPSBEYXRlVGltZS5mcm9tSlNEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVBhcnNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBsaXRlcmFsKG9iamVjdFtrZXldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGxldCBkYXRlUGFyc2UgPSBQUklNSVRJVkVTLmRhdGUucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGRhdGVQYXJzZS5zdGF0dXMpIHJldHVybiBkYXRlUGFyc2UudmFsdWU7XG5cbiAgICAgICAgICAgIGxldCBkdXJhdGlvblBhcnNlID0gUFJJTUlUSVZFUy5kdXJhdGlvbi5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZHVyYXRpb25QYXJzZS5zdGF0dXMpIHJldHVybiBkdXJhdGlvblBhcnNlLnZhbHVlO1xuXG4gICAgICAgICAgICBsZXQgbGlua1BhcnNlID0gUFJJTUlUSVZFUy5saW5rLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChsaW5rUGFyc2Uuc3RhdHVzKSByZXR1cm4gbGlua1BhcnNlLnZhbHVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCYWNrdXAgaWYgd2UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgdHlwZS5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIiwgIi8qKiBDZW50cmFsIHV0aWxpdGllcyBmb3IgZWRpdGluZyBmaWVsZHMgYnkgc2V0dGluZyBuZXcgdmFsdWVzIGluIGZpbGVzLCBhbmQgdHJhY2tpbmcgb3V0c3RhbmRpbmcgZWRpdHMuICovXG5cbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCJhcGkvcmVzdWx0XCI7XG5pbXBvcnQgeyBQcm92ZW5hbmNlIH0gZnJvbSBcImV4cHJlc3Npb24vZmllbGRcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBzZXRJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQgeyBZYW1sQ29udmVyc2lvbiB9IGZyb20gXCJpbmRleC90eXBlcy95YW1sXCI7XG5pbXBvcnQgeyBBcHAsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBsaW5lUmVwbGFjZSB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuXG4vKiogRWRpdCBhIGZpZWxkIGJ5IGl0J3MgcHJvdmVuYW5jZSAoaS5lLiwgc291cmNlKTsgcmV0dXJucyBhIHByb21pc2Ugd2hpY2ggY2FuIGJlIGF3YWl0ZWQgdG8gd2FpdCBmb3IgdGhlIGZpbGUgd3JpdGUgdG8gY29tcGxldGUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdFByb3ZlbmFuY2UoYXBwOiBBcHAsIHByb3ZlbmFuY2U6IFByb3ZlbmFuY2UsIHZhbHVlOiBMaXRlcmFsKTogUHJvbWlzZTxSZXN1bHQ8bnVsbCwgc3RyaW5nPj4ge1xuICAgIGNvbnN0IGZpbGUgPSBhcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChwcm92ZW5hbmNlLmZpbGUpO1xuICAgIGlmICghZmlsZSkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBGaWxlIHdpdGggcGF0aCAke3Byb3ZlbmFuY2UuZmlsZX0gZG9lcyBub3QgZXhpc3QuYCk7XG5cbiAgICAvLyBUT0RPOiBJZiB3ZSBldmVyIHN1cHBvcnQgY3VzdG9tIHR5cGVzLCB3ZSdsbCB3YW50IHRvIGNoYW5nZSB0aGlzIHN3aXRjaCBpbnRvIHNvbWUga2luZCBvZiBkeW5hbWljIGxvb2t1cC5cbiAgICBzd2l0Y2ggKHByb3ZlbmFuY2UudHlwZSkge1xuICAgICAgICBjYXNlIFwiZnJvbnRtYXR0ZXJcIjpcbiAgICAgICAgICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci5wcm9jZXNzRnJvbnRNYXR0ZXIoZmlsZSwgKGZyb250bWF0dGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwgJiYgcHJvdmVuYW5jZS5rZXkgaW4gZnJvbnRtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZyb250bWF0dGVyW3Byb3ZlbmFuY2Uua2V5XTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmcm9udG1hdHRlcltwcm92ZW5hbmNlLmtleV0gPSBZYW1sQ29udmVyc2lvbi55YW1sKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobnVsbCk7XG4gICAgICAgIGNhc2UgXCJpbmxpbmUtZmllbGRcIjpcbiAgICAgICAgICAgIHJldHVybiBlZGl0SW5saW5lRmllbGQoYXBwLCBmaWxlLCBwcm92ZW5hbmNlLmxpbmUsIHByb3ZlbmFuY2Uua2V5LCB2YWx1ZSk7XG4gICAgfVxufVxuXG4vKiogQ29tcGxldGUgd29ya2Zsb3cgZm9yIGVkaXRpbmcgYW4gaW5saW5lIGZpZWxkLiAgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0SW5saW5lRmllbGQoXG4gICAgYXBwOiBBcHAsXG4gICAgZmlsZTogVEZpbGUsXG4gICAgbGluZTogbnVtYmVyLFxuICAgIGtleTogc3RyaW5nLFxuICAgIHZhbHVlOiBMaXRlcmFsXG4pOiBQcm9taXNlPFJlc3VsdDxudWxsLCBzdHJpbmc+PiB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGZpbGUpO1xuICAgIGlmICghY29udGVudCkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBGaWxlIHdpdGggcGF0aCAke2ZpbGUucGF0aH0gZG9lcyBub3QgZXhpc3QuYCk7XG5cbiAgICAvLyBGaW5kIHRoZSBleHRlbnQgb2YgdGhlIGdpdmVuIGxpbmUgKDAtaW5kZXhlZCksIGV4dHJhY3QgaXQgYW5kIHVwZGF0ZS5cbiAgICBjb25zdCB1cGRhdGVkID0gbGluZVJlcGxhY2UoY29udGVudCwgbGluZSwgbGluZSArIDEsIChsaW5lKSA9PiB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgc3RyaW5naWYtaWNhdGlvbiBvZiB0aGUgdmFsdWUgaXMgbm90IGNvcnJlY3QgYW5kIHdpbGwgbm90IHdvcmtcbiAgICAgICAgLy8gZm9yIGFycmF5cyBvciBvYmplY3RzLCBidXQgd2lsbCBzZXJ2ZSBwdXJwb3NlIGZvciBub3cuLi5cbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBzZXRJbmxpbmVGaWVsZChsaW5lLCBrZXksIHVuZGVmaW5lZCk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHNldElubGluZUZpZWxkKGxpbmUsIGtleSwgXCJcIiArIFlhbWxDb252ZXJzaW9uLnlhbWwodmFsdWUpKTtcbiAgICB9KTtcblxuICAgIGlmICh1cGRhdGVkID09IGNvbnRlbnQpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhudWxsKTtcblxuICAgIGF3YWl0IGFwcC52YXVsdC5tb2RpZnkoZmlsZSwgdXBkYXRlZCk7XG4gICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xufVxuIiwgImltcG9ydCB7IEZpZWxkIH0gZnJvbSBcImV4cHJlc3Npb24vZmllbGRcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBzZXRJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQgeyBNYXJrZG93blRhc2tJdGVtIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IERpc3BhdGNoLCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IEFQUF9DT05URVhUIH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5pbXBvcnQgeyByZXdyaXRlVGFzayB9IGZyb20gXCIuL3Rhc2tcIjtcbmltcG9ydCB7IEVkaXRhYmxlQWN0aW9uIH0gZnJvbSBcInVpL2ZpZWxkcy9lZGl0YWJsZVwiO1xuaW1wb3J0IHsgRGF0YWNvcmUgfSBmcm9tIFwiaW5kZXgvZGF0YWNvcmVcIjtcbmltcG9ydCB7IGVkaXRQcm92ZW5hbmNlIH0gZnJvbSBcImluZGV4L2VkaXQvZmllbGRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNldEZpZWxkPFQgZXh0ZW5kcyBMaXRlcmFsPihmaWVsZDogRmllbGQsIG9uQ2hhbmdlPzogKG5ld1ZhbHVlOiBUKSA9PiB2b2lkKSB7XG4gICAgY29uc3QgYXBwID0gdXNlQ29udGV4dChBUFBfQ09OVEVYVCk7XG4gICAgcmV0dXJuIHVzZUNhbGxiYWNrKFxuICAgICAgICAobmV3VmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAgIGVkaXRQcm92ZW5hbmNlKGFwcCwgZmllbGQucHJvdmVuYW5jZSEsIG5ld1ZhbHVlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob25DaGFuZ2UpIG9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbZmllbGQsIG9uQ2hhbmdlXVxuICAgICk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0VGFza1RleHQoYXBwOiBBcHAsIGNvcmU6IERhdGFjb3JlLCB0ZXh0OiBzdHJpbmcsIGl0ZW06IE1hcmtkb3duVGFza0l0ZW0pIHtcbiAgICBsZXQgd2l0aEZpZWxkcyA9IGAke3RleHR9JHtPYmplY3Qua2V5cyhpdGVtLiRpbmZpZWxkcykubGVuZ3RoID8gXCIgXCIgOiBcIlwifWA7XG4gICAgZm9yIChsZXQgZmllbGQgaW4gaXRlbS4kaW5maWVsZHMpIHtcbiAgICAgICAgd2l0aEZpZWxkcyA9IHNldElubGluZUZpZWxkKHdpdGhGaWVsZHMsIGZpZWxkLCBpdGVtLiRpbmZpZWxkc1tmaWVsZF0ucmF3KTtcbiAgICB9XG4gICAgYXdhaXQgcmV3cml0ZVRhc2soYXBwLnZhdWx0LCBjb3JlLCBpdGVtLCBpdGVtLiRzdGF0dXMsIHdpdGhGaWVsZHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZpbmFsaXplcjxUPihuZXdWYWx1ZTogVCwgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPFQ+Pikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsXG4gICAgICAgICAgICBuZXdWYWx1ZTogbmV3VmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLFxuICAgICAgICAgICAgbmV3VmFsdWU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSB1aVxuICovXG5pbXBvcnQgeyBGcmFnbWVudCwgRnVuY3Rpb25Db21wb25lbnQsIFZOb2RlIH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlZHVjZXIsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IENoYW5nZUV2ZW50LCB1c2VSZWR1Y2VyIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCBTZWxlY3QsIHsgQWN0aW9uTWV0YSB9IGZyb20gXCJyZWFjdC1zZWxlY3RcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcIi4uL2hvb2tzXCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0LCBNYXJrZG93biwgU0VUVElOR1NfQ09OVEVYVCB9IGZyb20gXCIuLi9tYXJrZG93blwiO1xuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbFR5cGUsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IEJhc2VGaWVsZFByb3BzLCBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgTWFya2Rvd25MaXN0SXRlbSwgTWFya2Rvd25UYXNrSXRlbSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgQm9vbGVhbkVkaXRhYmxlIH0gZnJvbSBcIi4vYm9vbGVhbi1maWVsZFwiO1xuaW1wb3J0IHsgUHJvZ3Jlc3NFZGl0YWJsZSB9IGZyb20gXCIuL3Byb2dyZXNzLWZpZWxkXCI7XG5pbXBvcnQgeyBSYXRpbmdFZGl0YWJsZSB9IGZyb20gXCIuL3JhdGluZ1wiO1xuaW1wb3J0IHsgdXNlRmluYWxpemVyIH0gZnJvbSBcInV0aWxzL2ZpZWxkc1wiO1xuXG5pbXBvcnQgXCIuL2ZpZWxkcy5jc3NcIjtcblxuLyoqIENvcmUgc3RhdGUgZm9yIHRyYWNraW5nIGFuIGVkaXRhYmxlIG9iamVjdC5cbiAqIEBncm91cCBTdGF0ZXNcbiAqIEB0eXBlUGFyYW0gVCAtIHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBiZWluZyBlZGl0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0YWJsZVN0YXRlPFQ+IHtcbiAgICAvKiogV2hldGhlciB0aGUgdmFsdWUgaXMgY3VycmVudGx5IGJlaW5nIGVkaXRlZC4gKi9cbiAgICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgY3VycmVudCAoYXJiaXRyYXJ5KSBjb250ZW50IG9mIHRoZSBlZGl0YWJsZS4gKi9cbiAgICBjb250ZW50OiBUO1xuICAgIC8qKiBDYWxsYmFjayB3aGVuZXZlciB0aGUgZWRpdGFibGUgdmFsdWUgaXMgY2hhbmdlZC4gKi9cbiAgICB1cGRhdGVyOiAodmFsOiBUKSA9PiB1bmtub3duO1xuICAgIC8qKiBXaGV0aGVyIHRoZSBlZGl0b3IgaXMgYmVpbmcgcmVuZGVyZWQgaW5saW5lIGluIGEgcGFyYWdyYXBoIG9yIG5vdC4gKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBncm91cCBQcm9wc1xuICogQHR5cGVQYXJhbSBUIC0gdGhlIHR5cGUgb2YgdGhlIHZhbHVlIGJlaW5nIGVkaXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRhYmxlUHJvcHM8VD4ge1xuICAgIC8qKiBTb3VyY2UgZmlsZSBmcm9tIHdoaWNoIHRoZSBlZGl0YWJsZSB2YWx1ZSBvcmlnaW5hdGVzLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gICAgLyoqIEJhY2t1cCBkZWZhdWx0IHJlbmRlcmVyIGZvciB0aGlzIG9iamVjdC4gKi9cbiAgICBkZWZhdWx0UmVuZGVyPzogVk5vZGU7XG4gICAgLyoqIE5vZGUgd2hpY2ggcG9pbnRzIHRvIHRoZSBhY3R1YWwgZWRpdG9yLiAqL1xuICAgIGVkaXRvcjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIC8qKiBEaXNwYXRjaGVyIGZvciBjb250cm9sbGluZyB0aGUgZWRpdCBzdGF0ZSwgdHJhY2tpbmcgdXBkYXRlcywgY29tbWl0cywgYW5kIHNvIG9uLiAqL1xuICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxUPj47XG4gICAgLyoqIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBlZGl0b3IuICovXG4gICAgc3RhdGU6IEVkaXRhYmxlU3RhdGU8VD47XG59XG5cbnR5cGUgRWRpdGFibGVFbGVtZW50UHJvcHM8VCwgUD4gPSBFZGl0YWJsZVN0YXRlPFQ+ICYgUDtcbmV4cG9ydCB0eXBlIEVkaXRhYmxlRWxlbWVudDxULCBQID0gYW55PiA9IEZ1bmN0aW9uQ29tcG9uZW50PEVkaXRhYmxlRWxlbWVudFByb3BzPFQsIFA+ICYgUD47XG5cbi8qKlxuICogIEFjdGlvbnMgd2hpY2ggdXBkYXRlL2NoYW5nZSB0aGUgc3RhdGUgb2YgYW4gZWRpdGFibGUuXG4gKlxuICogQGludGVybmFsXG4gKiAqL1xuZXhwb3J0IHR5cGUgRWRpdGFibGVBY3Rpb248VD4gPVxuICAgIHwge1xuICAgICAgICAgIHR5cGU6IFwiY29tbWl0XCI7XG4gICAgICAgICAgLy8gb2xkVmFsdWU6IGFueSxcbiAgICAgICAgICBuZXdWYWx1ZTogVDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgICB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiO1xuICAgICAgICAgIG5ld1ZhbHVlOiBib29sZWFuO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICAgIHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCI7XG4gICAgICAgICAgbmV3VmFsdWU6IFQ7XG4gICAgICB9O1xuXG4vKiogRGVmYXVsdCByZWR1Y2VyIGZvciBhcHBseWluZyBhY3Rpb25zIHRvIHRoZSBlZGl0YWJsZSBzdGF0ZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRhYmxlUmVkdWNlcjxUPihcbiAgICB7IGNvbnRlbnQsIHVwZGF0ZXIsIC4uLnJlc3QgfTogRWRpdGFibGVTdGF0ZTxUPixcbiAgICBhY3Rpb246IEVkaXRhYmxlQWN0aW9uPFQ+XG4pOiBFZGl0YWJsZVN0YXRlPFQ+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJjb21taXRcIjpcbiAgICAgICAgICAgIHVwZGF0ZXIoYWN0aW9uLm5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnJlc3QsIHVwZGF0ZXIsIGNvbnRlbnQ6IGFjdGlvbi5uZXdWYWx1ZSB9O1xuICAgICAgICBjYXNlIFwiZWRpdGluZy10b2dnbGVkXCI6XG4gICAgICAgICAgICAhYWN0aW9uLm5ld1ZhbHVlICYmIHVwZGF0ZXIoY29udGVudCk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXN0LCB1cGRhdGVyLCBjb250ZW50LCBpc0VkaXRpbmc6IGFjdGlvbi5uZXdWYWx1ZSB9O1xuICAgICAgICBjYXNlIFwiY29udGVudC1jaGFuZ2VkXCI6XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXN0LCB1cGRhdGVyLCBjb250ZW50OiBhY3Rpb24ubmV3VmFsdWUgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7IGNvbnRlbnQsIHVwZGF0ZXIsIC4uLnJlc3QgfTtcbiAgICB9XG59XG5cbi8qKiBQcm92aWRlcyBzdGF0ZSBtYW5hZ2VtZW50IGZvciBhbiBlZGl0YWJsZSBmaWVsZC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWRpdGFibGVEaXNwYXRjaDxUPihcbiAgICBpbml0aWFsOiBFZGl0YWJsZVN0YXRlPFQ+IHwgKCgpID0+IEVkaXRhYmxlU3RhdGU8VD4pXG4pOiBbRWRpdGFibGVTdGF0ZTxUPiwgRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248VD4+XSB7XG4gICAgY29uc3QgaW5pdCA9IHVzZU1lbW8oKCkgPT4gKHR5cGVvZiBpbml0aWFsID09IFwiZnVuY3Rpb25cIiA/IGluaXRpYWwoKSA6IGluaXRpYWwpLCBbaW5pdGlhbF0pO1xuICAgIHJldHVybiB1c2VSZWR1Y2VyKGVkaXRhYmxlUmVkdWNlciBhcyBSZWR1Y2VyPEVkaXRhYmxlU3RhdGU8VD4sIEVkaXRhYmxlQWN0aW9uPFQ+PiwgaW5pdCwgKHMpID0+IGluaXQpO1xufVxuLyoqXG4gKiBhIGhpZ2hlci1vcmRlci1jb21wb25lbnQgZm9yIGVkaXRpbmcgZmllbGRzLlxuICogQHBhcmFtIHByb3BzXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gRWRpdGFibGU8VD4oeyBzb3VyY2VQYXRoLCBkZWZhdWx0UmVuZGVyLCBlZGl0b3IsIGRpc3BhdGNoLCBzdGF0ZSB9OiBFZGl0YWJsZVByb3BzPFQ+KSB7XG4gICAgY29uc3QgY3VycmVudFJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIGNvbnN0IGVsZW1lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHN0YXRlLmlzRWRpdGluZykge1xuICAgICAgICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0UmVuZGVyKSByZXR1cm4gZGVmYXVsdFJlbmRlcjtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIDxMaXQgdmFsdWU9e3N0YXRlLmNvbnRlbnQgYXMgTGl0ZXJhbH0gaW5saW5lPXt0cnVlfSBzb3VyY2VQYXRoPVwiXCIgLz47XG4gICAgICAgIH1cbiAgICB9LCBbc3RhdGUuaXNFZGl0aW5nLCBzdGF0ZS5jb250ZW50LCBzb3VyY2VQYXRoLCBkZWZhdWx0UmVuZGVyXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaCAmJiBkaXNwYXRjaCh7IHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsIG5ld1ZhbHVlOiBzdGF0ZS5jb250ZW50IH0pO1xuICAgIH0sIFtzdGF0ZS5jb250ZW50LCBzdGF0ZS5pc0VkaXRpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGFjb3JlLWVkaXRhYmxlLW91dGVyXCIgcmVmPXtjdXJyZW50UmVmfT5cbiAgICAgICAgICAgIHtlbGVtZW50fVxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZWRFZGl0YWJsZTxULCBQID0gdW5rbm93bj4oe1xuICAgIGRlZmF1bHRSZW5kZXIsXG4gICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgb25VcGRhdGUsXG4gICAgY29udGVudCxcbiAgICBwcm9wcyxcbiAgICBzb3VyY2VQYXRoLFxufTogT21pdDxFZGl0YWJsZVByb3BzPFQ+LCBcImRpc3BhdGNoXCIgfCBcInN0YXRlXCIgfCBcImVkaXRvclwiPiAmIHtcbiAgICBvblVwZGF0ZTogKHY6IFQpID0+IHVua25vd247XG4gICAgY29udGVudDogVDtcbiAgICBlZGl0b3I6IEVkaXRhYmxlRWxlbWVudDxULCBQPjtcbiAgICBwcm9wczogUDtcbiAgICBzb3VyY2VQYXRoOiBzdHJpbmc7XG59KSB7XG4gICAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VFZGl0YWJsZURpc3BhdGNoPFQ+KCgpID0+ICh7XG4gICAgICAgIHVwZGF0ZXI6IG9uVXBkYXRlLFxuICAgICAgICBjb250ZW50LFxuICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgIH0pKTtcbiAgICByZXR1cm4gPEVkaXRvciBkaXNwYXRjaD17ZGlzcGF0Y2h9IHsuLi5wcm9wc30gey4uLnN0YXRlfSAvPjtcbn1cblxuLyoqIEEgc2luZ2xlIHNlbGVjdGFibGUgdmFsdWUuXG4gKi9cbnR5cGUgU2VsZWN0YWJsZUJhc2UgPSBzdHJpbmcgfCBudW1iZXI7XG4vKiogQSB0eXBlIGZvciBlaXRoZXIgbXVsdGktIG9yIHNpbmdsZS1zZWxlY3QgdmFsdWVzLiAqL1xudHlwZSBTZWxlY3RhYmxlVHlwZSA9IFNlbGVjdGFibGVCYXNlIHwgU2VsZWN0YWJsZUJhc2VbXTtcblxuLyoqIEVkaXRhYmxlIHdoaWNoIGFsbG93cyBmb3Igc2VsZWN0aW9uIGZyb20gYSBsaXN0IG9mIG9wdGlvbnMuXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0YWJsZUVkaXRhYmxlKHtcbiAgICBpc0VkaXRpbmcsXG4gICAgY29udGVudCxcbiAgICB1cGRhdGVyLFxuICAgIGNvbmZpZyxcbiAgICBkaXNwYXRjaCxcbn06IEVkaXRhYmxlU3RhdGU8U2VsZWN0YWJsZVR5cGU+ICZcbiAgICBCYXNlRmllbGRQcm9wczxTZWxlY3RhYmxlVHlwZT4gJiB7XG4gICAgICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxTZWxlY3RhYmxlVHlwZT4+O1xuICAgIH0pIHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAobmV3VmFsdWU6IGFueSwgYWN0aW9uTWV0YTogQWN0aW9uTWV0YTxTZWxlY3RhYmxlVHlwZT4pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIixcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLm1hcCgoeCkgPT4geC52YWx1ZSkgYXMgU2VsZWN0YWJsZVR5cGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIixcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLnZhbHVlIGFzIFNlbGVjdGFibGVUeXBlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbY29uZmlnLCBjb250ZW50LCB1cGRhdGVyLCBpc0VkaXRpbmddXG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD1cImRhdGFjb3JlLXNlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICB1bnN0eWxlZFxuICAgICAgICAgICAgICAgIGlzTXVsdGk9e2NvbmZpZz8ubXVsdGkgPz8gZmFsc2V9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17Y29uZmlnPy5vcHRpb25zID8/IFtdfVxuICAgICAgICAgICAgICAgIG1lbnVQb3J0YWxUYXJnZXQ9e2RvY3VtZW50LmJvZHl9XG4gICAgICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICAgICAgICBjb25maWc/Lm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoKEFycmF5LmlzQXJyYXkoY29udGVudCkgPyBjb250ZW50IDogW2NvbnRlbnRdKSBhcyBhbnlbXSkuY29udGFpbnMoeC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgKSB8fCBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzPXt7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiAocHJvcHM6IGFueSkgPT4gXCJwcm9tcHQtaW5wdXRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDb250YWluZXI6IChwcm9wczogYW55KSA9PiBcInN1Z2dlc3Rpb24taXRlbSB2YWx1ZS1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiAocHJvcHM6IGFueSkgPT4gXCJzdWdnZXN0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgICAgICBtZW51OiAocHJvcHM6IGFueSkgPT4gXCJzdWdnZXN0aW9uLWNvbnRlbnQgc3VnZ2VzdGlvbi1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uOiAocHJvcHM6IGFueSkgPT4gYHN1Z2dlc3Rpb24taXRlbSR7cHJvcHMuaXNTZWxlY3RlZCA/IFwiIGlzLXNlbGVjdGVkXCIgOiBcIlwifWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfSwgW2NvbnRlbnQsIHVwZGF0ZXIsIGlzRWRpdGluZywgY29uZmlnXSk7XG5cbiAgICByZXR1cm4gPEVkaXRhYmxlIGVkaXRvcj17ZWRpdG9yfSBkaXNwYXRjaD17ZGlzcGF0Y2h9IHN0YXRlPXt7IGlzRWRpdGluZywgY29udGVudCwgdXBkYXRlciB9fSAvPjtcbn1cblxuLyoqIEVkaXRhYmxlIHdoaWNoIGFsbG93cyBmb3Igc2VsZWN0aW5nIGEgZGF0ZS5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEYXRlRWRpdGFibGUoe1xuICAgIGRpc3BhdGNoLFxuICAgIHNvdXJjZVBhdGgsXG4gICAgLi4ucmVzdFxufTogRWRpdGFibGVTdGF0ZTxEYXRlVGltZSB8IHN0cmluZyB8IG51bGw+ICYge1xuICAgIHNvdXJjZVBhdGg6IHN0cmluZztcbiAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248RGF0ZVRpbWUgfCBzdHJpbmcgfCBudWxsPj47XG59KSB7XG4gICAgLyoqIHRoZSBleHRyYSBkaXNwYXRjaCBpcyBfanVzdF8gaW4gY2FzZS4uLiAqL1xuICAgIGNvbnN0IFtzdGF0ZSwgb10gPSB1c2VFZGl0YWJsZURpc3BhdGNoPERhdGVUaW1lIHwgc3RyaW5nIHwgbnVsbD4oKCkgPT4gKHtcbiAgICAgICAgaXNFZGl0aW5nOiByZXN0LmlzRWRpdGluZyxcbiAgICAgICAgY29udGVudDogcmVzdC5jb250ZW50LFxuICAgICAgICB1cGRhdGVyOiByZXN0LnVwZGF0ZXIsXG4gICAgICAgIGlubGluZTogcmVzdC5pbmxpbmUgPz8gZmFsc2UsXG4gICAgfSkpO1xuICAgIGNvbnN0IHNldHRpbmdzID0gdXNlQ29udGV4dChTRVRUSU5HU19DT05URVhUKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gKGV2dDogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgbGV0IHYgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKGV2dC5jdXJyZW50VGFyZ2V0LnZhbHVlKSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsXG4gICAgICAgICAgICBuZXdWYWx1ZTogISF2ID8gRGF0ZVRpbWUuZnJvbUpTRGF0ZSh2KS50b0Zvcm1hdChzZXR0aW5ncy5kZWZhdWx0RGF0ZUZvcm1hdCkgOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogXCJjb21taXRcIixcbiAgICAgICAgICAgIG5ld1ZhbHVlOiAhIXYgPyBEYXRlVGltZS5mcm9tSlNEYXRlKHYpLnRvRm9ybWF0KHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KSA6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICBvKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29tbWl0XCIsXG4gICAgICAgICAgICBuZXdWYWx1ZTogISF2ID8gRGF0ZVRpbWUuZnJvbUpTRGF0ZSh2KS50b0Zvcm1hdChzZXR0aW5ncy5kZWZhdWx0RGF0ZUZvcm1hdCkgOiBudWxsLFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QganNEYXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5jb250ZW50IGluc3RhbmNlb2YgRGF0ZVRpbWVcbiAgICAgICAgICAgID8gc3RhdGUuY29udGVudFxuICAgICAgICAgICAgOiB0eXBlb2Ygc3RhdGUuY29udGVudCA9PSBcInN0cmluZ1wiICYmICEhc3RhdGUuY29udGVudFxuICAgICAgICAgICAgPyBEYXRlVGltZS5mcm9tSlNEYXRlKG5ldyBEYXRlKERhdGUucGFyc2Uoc3RhdGUuY29udGVudCkpKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH0sIFtzdGF0ZS5jb250ZW50XSk7XG5cbiAgICBjb25zdCBlZGl0b3JOb2RlID0gPGlucHV0IHR5cGU9XCJkYXRlXCIgb25DaGFuZ2U9e29uQ2hhbmdlfSB2YWx1ZT17anNEYXRlPy50b0Zvcm1hdChcInl5eXktTU0tZGRcIil9IC8+O1xuICAgIHJldHVybiA8RWRpdGFibGU8RGF0ZVRpbWUgfCBzdHJpbmcgfCBudWxsPiBkaXNwYXRjaD17ZGlzcGF0Y2h9IHN0YXRlPXtyZXN0fSBlZGl0b3I9e2VkaXRvck5vZGV9IC8+O1xufVxuXG4vKiogQW4gZWRpdG9yIHdoaWNoIGFsbG93cyBzZWxlY3RpbmcgYSBudW1uZXJpYyB2YWx1ZS5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBOdW1iZXJFZGl0YWJsZShwcm9wczogRWRpdGFibGVTdGF0ZTxudW1iZXI+KSB7XG4gICAgY29uc3QgY2ZjID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG5cbiAgICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8bnVtYmVyPigoKSA9PiAoe1xuICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICBjb250ZW50OiBwcm9wcy5jb250ZW50LFxuICAgICAgICB1cGRhdGVyOiBwcm9wcy51cGRhdGVyLFxuICAgICAgICBpbmxpbmU6IHRydWUsXG4gICAgfSkpO1xuICAgIGNvbnN0IHZhbHVlID0gdXNlUmVmKHByb3BzLmNvbnRlbnQpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2VDYiA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICBhc3luYyAoZXZ0OiBDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdmFsdWUuY3VycmVudCA9IHBhcnNlRmxvYXQoKGV2dC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3ZhbHVlLmN1cnJlbnQsIHN0YXRlLmNvbnRlbnQsIHN0YXRlLnVwZGF0ZXIsIHN0YXRlLmlzRWRpdGluZ11cbiAgICApO1xuXG4gICAgY29uc3QgZmluYWxpemUgPSB1c2VGaW5hbGl6ZXIodmFsdWUuY3VycmVudCwgZGlzcGF0Y2gpO1xuICAgIGNvbnN0IG9uSW5wdXQgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZmluYWxpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3ZhbHVlLmN1cnJlbnQsIHN0YXRlLnVwZGF0ZXIsIHN0YXRlLmNvbnRlbnQsIHN0YXRlLmlzRWRpdGluZ11cbiAgICApO1xuXG4gICAgY29uc3QgZGJsQ2xpY2sgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFt2YWx1ZS5jdXJyZW50LCBzdGF0ZS51cGRhdGVyLCBzdGF0ZS5pc0VkaXRpbmcsIHN0YXRlLmNvbnRlbnRdXG4gICAgKTtcblxuICAgIGNvbnN0IHJlYWRvbmx5RWwgPSA8TGl0IGlubGluZT17ZmFsc2V9IHNvdXJjZVBhdGg9e2NmY30gdmFsdWU9e3ZhbHVlLmN1cnJlbnQgYXMgTGl0ZXJhbH0gLz47XG4gICAgY29uc3QgZWRpdG9yID0gPGlucHV0IGNsYXNzTmFtZT1cImRhdGFjb3JlLWVkaXRhYmxlXCIgdHlwZT1cIm51bWJlclwiIG9uQ2hhbmdlPXtvbkNoYW5nZUNifSBvbktleVVwPXtvbklucHV0fSAvPjtcbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYXMtdGV4dGVkaXRhYmxlXCIgb25EYmxDbGljaz17ZGJsQ2xpY2t9PlxuICAgICAgICAgICAgPEVkaXRhYmxlPG51bWJlcj4gZGlzcGF0Y2g9e2Rpc3BhdGNofSBlZGl0b3I9e2VkaXRvcn0gZGVmYXVsdFJlbmRlcj17cmVhZG9ubHlFbH0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn1cblxuLyoqIEVkaXRvciB3aGljaCBzdXBwb3J0cyBtdWx0aS1saW5lIHRleHQgZWRpdGluZzsgbm90ZSB0aGlzIGlzIGEgdmVyeSBzaW1wbGUgaW5wdXQgYW5kIGRvZXMgbm90IHN1cHBvcnQgbW9zdCBtYXJrZG93biBtZXRhZGF0YS5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUZXh0RWRpdGFibGUocHJvcHM6IEVkaXRhYmxlU3RhdGU8c3RyaW5nPiAmIHsgbWFya2Rvd24/OiBib29sZWFuOyBzb3VyY2VQYXRoOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IGNmYyA9IHVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDxzdHJpbmc+KCgpID0+ICh7XG4gICAgICAgIGlzRWRpdGluZzogcHJvcHMuaXNFZGl0aW5nLFxuICAgICAgICBjb250ZW50OiBwcm9wcy5jb250ZW50LFxuICAgICAgICB1cGRhdGVyOiBwcm9wcy51cGRhdGVyLFxuICAgICAgICBpbmxpbmU6IHByb3BzLmlubGluZSA/PyBmYWxzZSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCB0ZXh0ID0gdXNlUmVmKFwiLVwiKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB0ZXh0LmN1cnJlbnQgPSBzdGF0ZS5jb250ZW50O1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsIG5ld1ZhbHVlOiBzdGF0ZS5jb250ZW50IH0pO1xuICAgIH0sIFtwcm9wcy5jb250ZW50LCBzdGF0ZS5jb250ZW50XSk7XG5cbiAgICBjb25zdCBmaW5hbGl6ZSA9IHVzZUZpbmFsaXplcihzdGF0ZS5jb250ZW50LCBkaXNwYXRjaCk7XG4gICAgY29uc3Qgb25JbnB1dCA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICBhc3luYyAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3BzLmlubGluZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGZpbmFsaXplKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiAmJiBlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmaW5hbGl6ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3RleHQuY3VycmVudCwgcHJvcHMuc291cmNlUGF0aCwgc3RhdGUudXBkYXRlciwgc3RhdGUuY29udGVudCwgc3RhdGUuaXNFZGl0aW5nXVxuICAgICk7XG5cbiAgICBjb25zdCBkYmxDbGljayA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZWRpdGluZy10b2dnbGVkXCIsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW3RleHQuY3VycmVudCwgcHJvcHMuc291cmNlUGF0aCwgc3RhdGUudXBkYXRlciwgc3RhdGUuaXNFZGl0aW5nLCBzdGF0ZS5jb250ZW50XVxuICAgICk7XG4gICAgY29uc3QgcmVhZG9ubHlFbCA9IChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAge3Byb3BzLm1hcmtkb3duID8gKFxuICAgICAgICAgICAgICAgIDxNYXJrZG93biBjb250ZW50PXt0ZXh0LmN1cnJlbnQgYXMgc3RyaW5nfSBzb3VyY2VQYXRoPXtwcm9wcy5zb3VyY2VQYXRoIHx8IGNmY30gaW5saW5lPXtmYWxzZX0gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPExpdCBpbmxpbmU9e2ZhbHNlfSBzb3VyY2VQYXRoPXtwcm9wcy5zb3VyY2VQYXRoIHx8IGNmY30gdmFsdWU9e3RleHQuY3VycmVudCBhcyBMaXRlcmFsfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICApO1xuICAgIGNvbnN0IGVkaXRvciA9IChcbiAgICAgICAgPFVuY29udHJvbGxlZFRleHRFZGl0YWJsZSBvbklucHV0PXtvbklucHV0fSBpbmxpbmU9e3Byb3BzLmlubGluZX0gZGlzcGF0Y2g9e2Rpc3BhdGNofSB0ZXh0PXt0ZXh0LmN1cnJlbnR9IC8+XG4gICAgKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYXMtdGV4dGVkaXRhYmxlXCIgb25EYmxDbGljaz17ZGJsQ2xpY2t9PlxuICAgICAgICAgICAgPEVkaXRhYmxlPHN0cmluZz4gZGlzcGF0Y2g9e2Rpc3BhdGNofSBlZGl0b3I9e2VkaXRvcn0gZGVmYXVsdFJlbmRlcj17cmVhZG9ubHlFbH0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVuY29udHJvbGxlZFRleHRFZGl0YWJsZSh7XG4gICAgaW5saW5lLFxuICAgIHRleHQsXG4gICAgZGlzcGF0Y2gsXG4gICAgb25JbnB1dCxcbn06IHtcbiAgICBpbmxpbmU/OiBib29sZWFuO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBkaXNwYXRjaD86IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPHN0cmluZz4+O1xuICAgIG9uSW5wdXQ/OiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdW5rbm93bjtcbn0pIHtcbiAgICBjb25zdCBbdHh0LCBzZXRUZXh0XSA9IHVzZVN0YXRlKHRleHQpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoICYmIGRpc3BhdGNoKHsgbmV3VmFsdWU6IHR4dCwgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiB9KTtcbiAgICB9LCBbdHh0XSk7XG4gICAgY29uc3Qgb25DaGFuZ2VDYiA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICBhc3luYyAoZXZ0OiBDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgc2V0VGV4dCgoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbdGV4dCwgZGlzcGF0Y2hdXG4gICAgKTtcblxuICAgIHJldHVybiAhaW5saW5lID8gKFxuICAgICAgICA8dGV4dGFyZWEgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZWRpdGFibGVcIiBvbkNoYW5nZT17b25DaGFuZ2VDYn0gb25LZXlVcD17b25JbnB1dH0+XG4gICAgICAgICAgICB7dHh0fVxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICkgOiAoXG4gICAgICAgIDxpbnB1dCBjbGFzc05hbWU9XCJkYXRhY29yZS1lZGl0YWJsZVwiIHR5cGU9XCJ0ZXh0XCIgb25DaGFuZ2U9e29uQ2hhbmdlQ2J9IG9uS2V5VXA9e29uSW5wdXR9IC8+XG4gICAgKTtcbn1cbi8qKiBBbiBlZGl0YWJsZSBsaXN0IG9mIGl0ZW1zLlxuICpcbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFZGl0YWJsZUxpc3RGaWVsZCh7XG4gICAgcHJvcHMsXG4gICAgZmllbGQsXG4gICAgcGFyZW50LFxuICAgIHR5cGUsXG4gICAgZGlzcGF0Y2gsXG4gICAgcmVuZGVyQXMsXG4gICAgY29uZmlnLFxufTogeyBwcm9wczogRWRpdGFibGVTdGF0ZTxMaXRlcmFsPiB9ICYgRmllbGRDb250cm9sUHJvcHM8TGl0ZXJhbD4gJiB7XG4gICAgICAgIHBhcmVudDogTWFya2Rvd25UYXNrSXRlbSB8IE1hcmtkb3duTGlzdEl0ZW07XG4gICAgICAgIHR5cGU6IExpdGVyYWxUeXBlO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248TGl0ZXJhbD4+O1xuICAgIH0pIHtcbiAgICBjb25zdCBzdWJFZGl0b3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZW5kZXJBcykge1xuICAgICAgICAgICAgY2FzZSBcInByb2dyZXNzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gXCJudW1iZXJcIiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFByb2dyZXNzRWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRWRpdGluZz17cHJvcHMuaXNFZGl0aW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17cHJvcHMuY29udGVudCBhcyBudW1iZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVyPXtwcm9wcy51cGRhdGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4PXtjb25maWc/Lm1heCB8fCAxMDB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VQYXRoPXtwYXJlbnQuJGZpbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGVwPXtjb25maWc/LnN0ZXAgfHwgMC4xfVxuICAgICAgICAgICAgICAgICAgICAgICAgbWluPXtjb25maWc/Lm1pbiB8fCAwfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsO1xuICAgICAgICAgICAgY2FzZSBcInJhdGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxSYXRpbmdFZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT17cGFyZW50LiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29uZmlnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLmNvbnRlbnQgYXMgc3RyaW5nIHwgbnVtYmVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17cHJvcHMudXBkYXRlcn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RhYmxlRWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRWRpdGluZz17cHJvcHMuaXNFZGl0aW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb25maWd9XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVyPXtwcm9wcy51cGRhdGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e3Byb3BzLmNvbnRlbnQgYXMgU2VsZWN0YWJsZVR5cGV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LCBbcGFyZW50LCBmaWVsZCwgcHJvcHMuY29udGVudCwgcHJvcHMuY29udGVudCwgcHJvcHMsIGNvbmZpZywgcmVuZGVyQXNdKTtcbiAgICBjb25zdCBlZGl0b3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxEYXRlRWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3BhcmVudC4kZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRWRpdGluZz17cHJvcHMuaXNFZGl0aW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17cHJvcHMuY29udGVudCBhcyBEYXRlVGltZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXIgYXMgKHZhbDogc3RyaW5nIHwgRGF0ZVRpbWUgfCBudWxsKSA9PiBhbnl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEJvb2xlYW5FZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17cHJvcHMudXBkYXRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvcHMuY29udGVudCBhcyBib29sZWFufVxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT17cGFyZW50LiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJFZGl0b3IgPz8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlUGF0aD17cGFyZW50LiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0VkaXRpbmc9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtwcm9wcy5jb250ZW50IGFzIHN0cmluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17cHJvcHMudXBkYXRlciBhcyAodmFsOiBzdHJpbmcpID0+IHVua25vd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDw+e3N1YkVkaXRvciA/PyA8TnVtYmVyRWRpdGFibGUgY29udGVudD17cHJvcHMuY29udGVudCBhcyBudW1iZXJ9IHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXJ9IC8+fTwvPjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFRleHRFZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlUGF0aD17cGFyZW50LiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNFZGl0aW5nPXtwcm9wcy5pc0VkaXRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtMaXRlcmFscy50b1N0cmluZyhwcm9wcy5jb250ZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXIgYXMgKHZhbDogc3RyaW5nKSA9PiB1bmtub3dufVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9LCBbcGFyZW50LCBmaWVsZCwgcHJvcHMuY29udGVudCwgcHJvcHMuY29udGVudCwgcHJvcHMsIGNvbmZpZywgcmVuZGVyQXMsIHN1YkVkaXRvcl0pO1xuXG4gICAgY29uc3QgZGJsY2xpY2sgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgKGV2dDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLCBuZXdWYWx1ZTogIXByb3BzLmlzRWRpdGluZyB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW3Byb3BzLmlzRWRpdGluZ11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS1maWVsZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmllbGQtdGl0bGVcIiBvbkRibENsaWNrPXtkYmxjbGlja30+XG4gICAgICAgICAgICAgICAge2ZpZWxkLmtleX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZpZWxkLXZhbHVlXCIgdGFiSW5kZXg9ezB9PlxuICAgICAgICAgICAgICAgIHtlZGl0b3J9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHZpZXdzXG4gKi9cbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBBUFBfQ09OVEVYVCwgQ1VSUkVOVF9GSUxFX0NPTlRFWFQsIERBVEFDT1JFX0NPTlRFWFQsIExpdCB9IGZyb20gXCJ1aS9tYXJrZG93blwiO1xuXG5pbXBvcnQgeyBWTm9kZSwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuaW1wb3J0IHsgQmFzZUZpZWxkUHJvcHMgfSBmcm9tIFwidWkvZmllbGRzL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHtcbiAgICBDb250cm9sbGVkRWRpdGFibGUsXG4gICAgRWRpdGFibGUsXG4gICAgRWRpdGFibGVFbGVtZW50LFxuICAgIEVkaXRhYmxlU3RhdGUsXG4gICAgVGV4dEVkaXRhYmxlLFxuICAgIHVzZUVkaXRhYmxlRGlzcGF0Y2gsXG59IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5pbXBvcnQgeyBNYXJrZG93bkxpc3RJdGVtLCBNYXJrZG93blRhc2tJdGVtIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyByZXdyaXRlVGFzayB9IGZyb20gXCJ1dGlscy90YXNrXCI7XG5pbXBvcnQgeyBzZXRJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5cbi8qKlxuICogU3RhdGUgZm9yIGEge0BsaW5rIExpc3RWaWV3fVxuICogQHR5cGVQYXJhbSBUIC0gdGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGNvbnRhaW5lZCBpbiB0aGUgbGlzdFxuICogQGdyb3VwIFN0YXRlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTdGF0ZTxUPiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgbGlzdCBzaG91bGQgYmUgb3JkZXJlZCAob2wpLCB1bm9yZGVyZWQgKHVsKSwgb3IgaGF2ZSBubyBzcGVjaWFsIG1hcmt1cCAobm9uZSkuXG4gICAgICpcbiAgICAgKiBMaXN0cyB3aXRoIG5vIHNwZWNpYWwgbWFya3VwIGp1c3QgaGF2ZSBlYWNoIGVsZW1lbnQgcmVuZGVyZWQgZGlyZWN0bHkgYXMtaXMgd2l0aG91dCBhbnkgd3JhcHBpbmdcbiAgICAgKiBpbnNpZGUgb2YgYSBzaW5nbGUgZGl2LlxuICAgICAqXG4gICAgICovXG4gICAgdHlwZT86IFwib3JkZXJlZFwiIHwgXCJ1bm9yZGVyZWRcIiB8IFwibm9uZVwiO1xuXG4gICAgLyoqIFRoZSBmdWxsIGNvbGxlY3Rpb24gb2YgZWxlbWVudHMgaW4gdGhlIGxpc3QuICovXG4gICAgcm93cz86IFRbXTtcblxuICAgIC8qKiBDb250cm9scyB3aGV0aGVyIHBhZ2luZyBpcyBlbmFibGVkIGZvciB0aGlzIGVsZW1lbnQuIElmIHRydWUsIHVzZXMgZGVmYXVsdCBwYWdlIHNpemUuIElmIGEgbnVtYmVyLCBwYWdpbmcgaXMgZW5hYmxlZCB3aXRoIHRoZSBnaXZlbiBwYWdlIHNpemUuICovXG4gICAgcGFnaW5nPzogYm9vbGVhbiB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gdG8gdXNlIGZvciByZW5kZXJpbmcgZWFjaCBlbGVtZW50LiBDYW4gcHJvZHVjZSBlaXRoZXIgSlNYIG9yIGEgcGxhaW4gdmFsdWUgd2hpY2ggd2lsbCBiZVxuICAgICAqIHJlbmRlcmVkIGFzIGEgbGl0ZXJhbC5cbiAgICAgKi9cbiAgICByZW5kZXJlcj86IChlbGVtZW50OiBULCBpbmRleDogbnVtYmVyKSA9PiBSZWFjdC5SZWFjdE5vZGUgfCBMaXRlcmFsO1xuXG4gICAgLyoqIGZpZWxkcyB0byBkaXNwbGF5IHVuZGVyIGVhY2ggaXRlbSBpbiB0aGlzIHRhc2sgbGlzdCAqL1xuICAgIGRpc3BsYXllZEZpZWxkcz86IChCYXNlRmllbGRQcm9wczxMaXRlcmFsPiAmIHsga2V5OiBzdHJpbmcgfSlbXTtcbn1cblxuLyoqXG4gKlxuICogQSBzaW1wbGUgYW5kIHJlc3BvbnNpdmUgbGlzdCB2aWV3LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExpc3RWaWV3PFQ+KHN0YXRlOiBMaXN0U3RhdGU8VD4pIHtcbiAgICAvLyBjb25zdCBzZXR0aW5ncyA9IHVzZUNvbnRleHQoU0VUVElOR1NfQ09OVEVYVCk7XG5cbiAgICBjb25zdCB0eXBlID0gc3RhdGUudHlwZSA/PyBcInVub3JkZXJlZFwiO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gc3RhdGUucm93cyA/PyBbXTtcbiAgICBjb25zdCByZW5kZXJlciA9IHN0YXRlLnJlbmRlcmVyID8/IGlkZW50aXR5O1xuXG4gICAgaWYgKHR5cGUgPT0gXCJub25lXCIpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdCBkYXRhY29yZS1saXN0LW5vbmVcIj5cbiAgICAgICAgICAgICAgICB7ZWxlbWVudHMubWFwKChlbGVtZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLXVud3JhcHBlZC1saXN0LWl0ZW1cIiBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlbnN1cmVFbGVtZW50KHJlbmRlcmVyKGVsZW1lbnQsIGluZGV4KSl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwib3JkZXJlZFwiKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8b2wgY2xhc3NOYW1lPXtcImRhdGFjb3JlLWxpc3QgZGF0YWNvcmUtbGlzdC1vcmRlcmVkXCJ9PlxuICAgICAgICAgICAgICAgIHtlbGVtZW50cy5tYXAoKGVsZW1lbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJkYXRhY29yZS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlbnN1cmVFbGVtZW50KHJlbmRlcmVyKGVsZW1lbnQsIGluZGV4KSl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L29sPlxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdCBkYXRhY29yZS1saXN0LXVub3JkZXJlZFwiPlxuICAgICAgICAgICAgICAgIHtlbGVtZW50cy5tYXAoKGVsZW1lbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJkYXRhY29yZS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlbnN1cmVFbGVtZW50KHJlbmRlcmVyKGVsZW1lbnQsIGluZGV4KSl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqIE5vLW9wIGVsZW1lbnQgcmVuZGVyZXIuXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5PFQ+KGVsZW1lbnQ6IFQpOiBUIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiAgRW5zdXJlcyB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBhIHJlbmRlcmFibGUgcmVhY3Qgbm9kZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFbGVtZW50PFQ+KGVsZW1lbnQ6IFQpOiBWTm9kZSB7XG4gICAgaWYgKGlzVmFsaWRFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8RGVmYXVsdExpc3RFbGVtZW50IGVsZW1lbnQ9e2VsZW1lbnR9IC8+O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiAgRGVmYXVsdCBsaXN0IGVsZW1lbnQgd2hpY2gganVzdCB0cmllcyB0byByZW5kZXIgdGhlIHZhbHVlIGFzIGEgbGl0ZXJhbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0TGlzdEVsZW1lbnQ8VD4oeyBlbGVtZW50IH06IHsgZWxlbWVudDogVCB9KSB7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IHVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuXG4gICAgcmV0dXJuIDxMaXQgaW5saW5lPXt0cnVlfSB2YWx1ZT17ZWxlbWVudCBhcyBMaXRlcmFsfSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSAvPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEVkaXRhYmxlTGlzdEVsZW1lbnQ8VD4oe1xuICAgIGVsZW1lbnQ6IGl0ZW0sXG4gICAgZWRpdG9yLFxuICAgIG9uVXBkYXRlLFxuICAgIGZpbGUsXG4gICAgZWRpdG9yUHJvcHMsXG59OiB7XG4gICAgZWRpdG9yOiAodmFsdWU6IFQpID0+IEVkaXRhYmxlRWxlbWVudDxUPjtcbiAgICBlbGVtZW50OiBUO1xuICAgIGZpbGU6IHN0cmluZztcbiAgICBvblVwZGF0ZTogKHZhbHVlOiBUKSA9PiB1bmtub3duO1xuICAgIGVkaXRvclByb3BzOiB1bmtub3duO1xufSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxDb250cm9sbGVkRWRpdGFibGU8VD5cbiAgICAgICAgICAgIHByb3BzPXtlZGl0b3JQcm9wc31cbiAgICAgICAgICAgIHNvdXJjZVBhdGg9e2ZpbGV9XG4gICAgICAgICAgICBjb250ZW50PXtpdGVtfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3IoaXRlbSl9XG4gICAgICAgICAgICBvblVwZGF0ZT17b25VcGRhdGV9XG4gICAgICAgICAgICBkZWZhdWx0UmVuZGVyPXs8RGVmYXVsdExpc3RFbGVtZW50IGVsZW1lbnQ9e2l0ZW19IC8+fVxuICAgICAgICAvPlxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHZpZXdzXG4gKi9cblxuaW1wb3J0IHsgTWFya2Rvd25MaXN0SXRlbSwgTWFya2Rvd25UYXNrSXRlbSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgRWRpdGFibGVMaXN0RWxlbWVudCwgTGlzdFN0YXRlIH0gZnJvbSBcImFwaS91aS92aWV3cy9saXN0XCI7XG5pbXBvcnQgeyB1c2VTdGFibGVDYWxsYmFjayB9IGZyb20gXCJ1aS9ob29rc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyBBUFBfQ09OVEVYVCwgREFUQUNPUkVfQ09OVEVYVCB9IGZyb20gXCJ1aS9tYXJrZG93blwiO1xuaW1wb3J0IHsgSlNYSW50ZXJuYWwgfSBmcm9tIFwicHJlYWN0L3NyYy9qc3hcIjtcbmltcG9ydCB7IERpc3BhdGNoLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBjb21wbGV0ZVRhc2ssIHJld3JpdGVUYXNrIH0gZnJvbSBcInV0aWxzL3Rhc2tcIjtcbmltcG9ydCB7IExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHtcbiAgICBFZGl0YWJsZUFjdGlvbixcbiAgICBFZGl0YWJsZUxpc3RGaWVsZCxcbiAgICBFZGl0YWJsZVN0YXRlLFxuICAgIFRleHRFZGl0YWJsZSxcbiAgICB1c2VFZGl0YWJsZURpc3BhdGNoLFxufSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBzZXRJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gXCJleHByZXNzaW9uL2ZpZWxkXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IFwiLi9saXN0cy5jc3NcIjtcblxuLyoqXG4gKiBQcm9wcyBwYXNzZWQgdG8gdGhlIHRhc2sgbGlzdCBjb21wb25lbnQuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrUHJvcHMgZXh0ZW5kcyBMaXN0U3RhdGU8TWFya2Rvd25UYXNrSXRlbSB8IE1hcmtkb3duTGlzdEl0ZW0+IHtcbiAgICAvKiogdGFzayBzdGF0ZXMgdG8gY3ljbGUgdGhyb3VnaCwgaWYgc3BlY2lmaWVkICovXG4gICAgYWRkaXRpb25hbFN0YXRlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBsaXN0IG9mIHRhc2tzLlxuICogQHBhcmFtIHByb3BzXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gVGFza0xpc3Qoe1xuICAgIHJvd3M6IGl0ZW1zLFxuICAgIGFkZGl0aW9uYWxTdGF0ZXM6IHN0YXRlcyxcbiAgICByZW5kZXJlcjogbGlzdFJlbmRlcmVyID0gKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgIDxFZGl0YWJsZUxpc3RFbGVtZW50PHN0cmluZz5cbiAgICAgICAgICAgIG9uVXBkYXRlPXt1c2VMaXN0SXRlbUVkaXRpbmcoaXRlbSl9XG4gICAgICAgICAgICBlbGVtZW50PXtpdGVtLiRjbGVhbnRleHQhfVxuICAgICAgICAgICAgZmlsZT17aXRlbS4kZmlsZX1cbiAgICAgICAgICAgIGVkaXRvclByb3BzPXt7IG1hcmtkb3duOiB0cnVlLCBzb3VyY2VQYXRoOiBpdGVtLiRmaWxlIH19XG4gICAgICAgICAgICBlZGl0b3I9eyhpdCkgPT4gVGV4dEVkaXRhYmxlfVxuICAgICAgICAvPlxuICAgICksXG4gICAgLi4ucmVzdFxufTogVGFza1Byb3BzKSB7XG4gICAgY29uc3QgY29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImRhdGFjb3JlIGNvbnRhaW5zLXRhc2stbGlzdFwiPlxuICAgICAgICAgICAgICAgIHtpdGVtcz8ubWFwKChpdGVtLCBpbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gaW5zdGFuY2VvZiBNYXJrZG93blRhc2tJdGVtID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhc2sga2V5PXtpdGVtLiRpZH0gc3RhdGU9e3sgLi4ucmVzdCwgYWRkaXRpb25hbFN0YXRlczogc3RhdGVzIH19IGl0ZW09e2l0ZW19IC8+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2xpc3RSZW5kZXJlcihpdGVtLCBpbmQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdC1pdGVtLWZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1GaWVsZHMgZGlzcGxheWVkRmllbGRzPXtyZXN0LmRpc3BsYXllZEZpZWxkc30gaXRlbT17aXRlbX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgKTtcbiAgICB9LCBbaXRlbXMsIHN0YXRlc10pO1xuICAgIHJldHVybiA8RnJhZ21lbnQ+eyEhaXRlbXMgJiYgY29udGVudH08L0ZyYWdtZW50Pjtcbn1cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBpdGVtIGluIGEgdGFzayBsaXN0aW5nLlxuICogQHBhcmFtIHByb3BzIC0gdGhlIGNvbXBvbmVudCdzIHByb3BzXG4gKiBAcGFyYW0gcHJvcHMuaXRlbSAtIHRoZSBjdXJyZW50IHRhc2sgYmVpbmcgcmVuZGVyZWRcbiAqIEBwYXJhbSBwcm9wcy5zdGF0ZSAtIHRoZSB7QGxpbmsgVGFza1Byb3BzfSBvZiB0aGUge0BsaW5rIFRhc2tMaXN0fSBpbiB3aGljaCB0aGlzIFRhc2sgYXBwZWFyc1xuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhc2soeyBpdGVtLCBzdGF0ZTogcHJvcHMgfTogeyBpdGVtOiBNYXJrZG93blRhc2tJdGVtOyBzdGF0ZTogVGFza1Byb3BzIH0pIHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBjb3JlID0gdXNlQ29udGV4dChEQVRBQ09SRV9DT05URVhUKTtcbiAgICBjb25zdCB7IHNldHRpbmdzIH0gPSBjb3JlO1xuICAgIGNvbnN0IHN0YXRlcyA9IFtcIiBcIiwgLi4uKHByb3BzLmFkZGl0aW9uYWxTdGF0ZXMgfHwgW10pLCBcInhcIl07XG4gICAgY29uc3QgbmV4dFN0YXRlID0gKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuYWRkaXRpb25hbFN0YXRlcyAmJiBwcm9wcy5hZGRpdGlvbmFsU3RhdGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgY3VySW5kZXggPSBzdGF0ZXMuZmluZEluZGV4KChhKSA9PiBhID09PSBpdGVtLiRzdGF0dXMpO1xuICAgICAgICAgICAgY3VySW5kZXgrKztcbiAgICAgICAgICAgIGlmIChjdXJJbmRleCA+PSBzdGF0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY3VySW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlc1tjdXJJbmRleF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS4kY29tcGxldGVkID8gXCIgXCIgOiBcInhcIjtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPHN0cmluZz4oaXRlbS4kc3RhdHVzKTtcbiAgICBjb25zdCBjb21wbGV0ZWRSZWYgPSB1c2VSZWY8RGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248TGl0ZXJhbD4+PihudWxsKTtcbiAgICBjb25zdCBvbkNoZWNrZWQgPSB1c2VTdGFibGVDYWxsYmFjayhhc3luYyAoZXZ0OiBKU1hJbnRlcm5hbC5UYXJnZXRlZE1vdXNlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgY29uc3QgY29tcGxldGVkID0gZXZ0LmN1cnJlbnRUYXJnZXQuY2hlY2tlZDtcbiAgICAgICAgbGV0IG5ld1N0YXR1czogc3RyaW5nO1xuICAgICAgICBpZiAoZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBuZXdTdGF0dXMgPSBuZXh0U3RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1N0YXR1cyA9IGNvbXBsZXRlZCA/IFwieFwiIDogXCIgXCI7XG4gICAgICAgIH1cbiAgICAgICAgc2V0U3RhdHVzKG5ld1N0YXR1cyk7XG4gICAgICAgIGF3YWl0IGNvbXBsZXRlVGFzayhjb21wbGV0ZWQsIGl0ZW0sIGFwcC52YXVsdCwgY29yZSk7XG4gICAgICAgIGNvbnN0IG52ID0gY29tcGxldGVkID8gRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQpIDogbnVsbDtcbiAgICAgICAgY29tcGxldGVkUmVmLmN1cnJlbnQgJiYgY29tcGxldGVkUmVmLmN1cnJlbnQoeyB0eXBlOiBcImNvbW1pdFwiLCBuZXdWYWx1ZTogbnYgfSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgY2hlY2tlZCA9IHVzZU1lbW8oKCkgPT4gc3RhdHVzICE9PSBcIiBcIiwgW2l0ZW0uJHN0YXR1cywgaXRlbSwgc3RhdHVzXSk7XG4gICAgY29uc3QgZVN0YXRlOiBFZGl0YWJsZVN0YXRlPHN0cmluZz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVwZGF0ZXI6IHVzZUxpc3RJdGVtRWRpdGluZyhpdGVtKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0uJGNsZWFudGV4dCxcbiAgICAgICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICB9IGFzIEVkaXRhYmxlU3RhdGU8c3RyaW5nPjtcbiAgICB9LCBbaXRlbS4kY2xlYW50ZXh0LCBpdGVtLiR0ZXh0XSk7XG4gICAgY29uc3QgdGhlRWxlbWVudCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IDxUZXh0RWRpdGFibGUgc291cmNlUGF0aD17aXRlbS4kZmlsZX0gey4uLmVTdGF0ZX0gLz4sXG4gICAgICAgIFtlU3RhdGUuY29udGVudCwgaXRlbSwgcHJvcHMucm93c11cbiAgICApO1xuXG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGl0ZW0uJGVsZW1lbnRzLmxlbmd0aCA+IDA7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKCFjb2xsYXBzZWQpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxsaSBrZXk9e2l0ZW0uJGlkfSBkYXRhLXRlc3RpZD1cImRhdGFjb3JlLXRhc2staXRlbVwiIGNsYXNzTmFtZT17XCJkYXRhY29yZSB0YXNrLWxpc3QtaXRlbVwiICsgKGNoZWNrZWQgPyBcIiBpcy1jaGVja2VkXCIgOiBcIlwiKX0gZGF0YS10YXNrPXtzdGF0dXN9PlxuICAgICAgICAgICAgPENvbGxhcHNlSW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Q29sbGFwc2VkKChjKSA9PiAhYyl9XG4gICAgICAgICAgICAgICAgY29sbGFwc2VkPXtjb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW49e2hhc0NoaWxkcmVufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzc05hbWU9XCJkYXRhY29yZSB0YXNrLWxpc3QtaXRlbS1jaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9e2NoZWNrZWR9IG9uQ2xpY2s9e29uQ2hlY2tlZH0gb25DaGFuZ2U9eyhlKSA9PiBjb25zb2xlLmxvZyhlLmN1cnJlbnRUYXJnZXQudmFsdWUpfS8+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAge3RoZUVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdC1pdGVtLWZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtRmllbGRzIGRpc3BsYXllZEZpZWxkcz17cHJvcHMuZGlzcGxheWVkRmllbGRzfSBpdGVtPXtpdGVtfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hhc0NoaWxkcmVuICYmICFjb2xsYXBzZWQgJiYgPFRhc2tMaXN0IHsuLi5wcm9wc30gcm93cz17aXRlbS4kZWxlbWVudHN9IC8+fVxuICAgICAgICA8L2xpPlxuICAgICk7XG59XG5cbmZ1bmN0aW9uIENvbGxhcHNlSW5kaWNhdG9yKHtcbiAgICBjb2xsYXBzZWQsXG4gICAgb25DbGljayxcbiAgICBoYXNDaGlsZHJlbixcbn06IHtcbiAgICBjb2xsYXBzZWQ6IGJvb2xlYW47XG4gICAgb25DbGljazogKCkgPT4gdm9pZDtcbiAgICBoYXNDaGlsZHJlbjogYm9vbGVhbjtcbn0pIHtcbiAgICBjb25zdCB0b2dnbGVDbmFtZXMgPSBbXCJkYXRhY29yZS1jb2xsYXBzZXJcIl07XG4gICAgaWYgKGNvbGxhcHNlZCkgdG9nZ2xlQ25hbWVzLnB1c2goXCJpcy1jb2xsYXBzZWRcIik7XG4gICAgaWYgKCFoYXNDaGlsZHJlbikgdG9nZ2xlQ25hbWVzLnB1c2goXCJuby1jaGlsZHJlblwiKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IG9uQ2xpY2s9e29uQ2xpY2t9IGNsYXNzTmFtZT17dG9nZ2xlQ25hbWVzLmpvaW4oXCIgXCIpfSBkaXI9XCJhdXRvXCI+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzdmctaWNvbiByaWdodC10cmlhbmdsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zIDhMMTIgMTdMMjEgOFwiPjwvcGF0aD5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIGFuIGVkaXRhYmxlIHNldCBvZiBmaWVsZHMgYmVsb3cgYSB0YXNrIG9yIGxpc3QgaXRlbS5cbiAqIEBoaWRkZW5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMaXN0SXRlbUZpZWxkcyh7XG4gICAgZGlzcGxheWVkRmllbGRzOiBkaXNwbGF5ZWRGaWVsZHNQcm9wLFxuICAgIGl0ZW0sXG59OiB7XG4gICAgZGlzcGxheWVkRmllbGRzPzogVGFza1Byb3BzW1wiZGlzcGxheWVkRmllbGRzXCJdO1xuICAgIGl0ZW06IE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtO1xufSkge1xuICAgIGNvbnN0IGFwcCA9IHVzZUNvbnRleHQoQVBQX0NPTlRFWFQpO1xuICAgIGNvbnN0IGNvcmUgPSB1c2VDb250ZXh0KERBVEFDT1JFX0NPTlRFWFQpO1xuICAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IGNvcmU7XG4gICAgY29uc3QgZGlzcGxheWVkRmllbGRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChkaXNwbGF5ZWRGaWVsZHNQcm9wICE9IHVuZGVmaW5lZCkgcmV0dXJuIGRpc3BsYXllZEZpZWxkc1Byb3A7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoaXRlbS4kaW5maWVsZHMpLm1hcCgoZikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogZi5rZXksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IExpdGVyYWxzLnR5cGVPZihmLnZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckFzOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgIH0gYXMgTm9uTnVsbGFibGU8VGFza1Byb3BzW1wiZGlzcGxheWVkRmllbGRzXCJdPlswXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW2Rpc3BsYXllZEZpZWxkc1Byb3AsIGl0ZW0uJGluZmllbGRzLCBpdGVtXSk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIHtkaXNwbGF5ZWRGaWVsZHMubWFwKChpZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICBpZmllbGQua2V5ID0gaWZpZWxkLmtleS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGxldCBkZWZWYWwgPSB0eXBlb2YgaWZpZWxkLmRlZmF1bHRWYWx1ZSA9PSBcImZ1bmN0aW9uXCIgPyBpZmllbGQuZGVmYXVsdFZhbHVlKCkgOiBpZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBkZWZGaWVsZDogRmllbGQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogaWZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRlZlZhbCxcbiAgICAgICAgICAgICAgICAgICAgcmF3OiBMaXRlcmFscy50b1N0cmluZyhkZWZWYWwpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgW2ZpZWxkVmFsdWVdID0gdXNlU3RhdGU8TGl0ZXJhbD4oaXRlbS4kaW5maWVsZHNbaWZpZWxkPy5rZXldPy52YWx1ZSB8fCBkZWZGaWVsZC52YWx1ZSEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGF0ZTIsIGRpc3BhdGNoXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8TGl0ZXJhbD4oe1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVyOiB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWw6IExpdGVyYWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gKHY6IExpdGVyYWwpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgaW5zdGFuY2VvZiBEYXRlVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2LnRvRm9ybWF0KHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2ICE9IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTGl0ZXJhbHMudG9TdHJpbmcodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdpdGhGaWVsZHMgPSBpdGVtLiR0ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoRmllbGRzICYmIGl0ZW0uJHRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uJGluZmllbGRzW2lmaWVsZC5rZXldKSBpdGVtLiRpbmZpZWxkc1tpZmllbGQua2V5XS52YWx1ZSA9IGRhdGVTdHJpbmcodmFsKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZpZWxkIGluIGl0ZW0uJGluZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoRmllbGRzID0gc2V0SW5saW5lRmllbGQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlU3RyaW5nKGl0ZW0uJGluZmllbGRzW2ZpZWxkXT8udmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhGaWVsZHMgPSBzZXRJbmxpbmVGaWVsZChpdGVtLiR0ZXh0LCBpZmllbGQua2V5LCBkYXRlU3RyaW5nKHZhbCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXdyaXRlVGFzayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcC52YXVsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSBpbnN0YW5jZW9mIE1hcmtkb3duVGFza0l0ZW0gPyBpdGVtLiRzdGF0dXMgOiBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhGaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW0uJGluZmllbGRzXVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpZmllbGQua2V5ID09IHNldHRpbmdzLnRhc2tDb21wbGV0aW9uVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmUgaHVoP1xuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWRSZWYuY3VycmVudCA9IGRpc3BhdGNoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8RWRpdGFibGVMaXN0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzPXtzdGF0ZTJ9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2h9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtpZmllbGQudHlwZSB8fCBMaXRlcmFscy53cmFwVmFsdWUoZmllbGRWYWx1ZSkhLnR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXtpdGVtLiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ9e2l0ZW0uJGluZmllbGRzW2lmaWVsZC5rZXldIHx8IGRlZkZpZWxkfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtpZmllbGQuY29uZmlnfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50PXtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17c3RhdGUyLnVwZGF0ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZmllbGRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckFzPXtpZmllbGQucmVuZGVyQXN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8Lz5cbiAgICApO1xufVxuXG5mdW5jdGlvbiB1c2VMaXN0SXRlbUVkaXRpbmcoaXRlbTogTWFya2Rvd25UYXNrSXRlbSB8IE1hcmtkb3duTGlzdEl0ZW0pIHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBjb3JlID0gdXNlQ29udGV4dChEQVRBQ09SRV9DT05URVhUKTtcbiAgICBjb25zdCBzdGF0dXMgPSB1c2VNZW1vKCgpID0+IChpdGVtIGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSA/IGl0ZW0uJHN0YXR1cyA6IFwiIFwiKSwgW2l0ZW1dKTtcbiAgICByZXR1cm4gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jICh2YWw6IExpdGVyYWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgbGV0IHdpdGhGaWVsZHMgPSBgJHt2YWx9JHtPYmplY3Qua2V5cyhpdGVtLiRpbmZpZWxkcykubGVuZ3RoID8gXCIgXCIgOiBcIlwifWA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgaW4gaXRlbS4kaW5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aEZpZWxkcyA9IHNldElubGluZUZpZWxkKHdpdGhGaWVsZHMsIGZpZWxkLCBpdGVtLiRpbmZpZWxkc1tmaWVsZF0ucmF3KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgcmV3cml0ZVRhc2soYXBwLnZhdWx0LCBjb3JlLCBpdGVtLCBzdGF0dXMsIHdpdGhGaWVsZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbc3RhdHVzLCBpdGVtXVxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCBcIi4vcGFnaW5nLmNzc1wiO1xuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwgUmVmT2JqZWN0IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyBTRVRUSU5HU19DT05URVhUIH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5cbi8qKiAwLWluZGV4ZWQgcGFnZSBjb250cm9sLiBgcGFnZWAgc2hvdWxkIGJlIHRoZSBjdXJyZW50IDAtaW5kZXhlZCBwYWdlLCB3aGlsZSBgdG90YWxQYWdlc2AgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuZnVuY3Rpb24gUmF3Q29udHJvbGxlZFBhZ2VyKHtcbiAgICBwYWdlLFxuICAgIHNldFBhZ2UsXG4gICAgdG90YWxQYWdlcyxcbn06IHtcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgc2V0UGFnZTogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG59KSB7XG4gICAgLy8gQ2xhbXAgcGFnZSB0byBiZSB3aXRoaW4gdGhlIGFjdHVhbCBib3VuZHMgb2YgcGFnZXMuXG4gICAgdG90YWxQYWdlcyA9IE1hdGgubWF4KDEsIHRvdGFsUGFnZXMpO1xuXG4gICAgY29uc3QgcmVhbFBhZ2UgPSBjbGFtcChwYWdlLCAwLCB0b3RhbFBhZ2VzIC0gMSk7XG4gICAgY29uc3QgdmlzaWJsZVBhZ2VzID0gdXNlTWVtbygoKSA9PiBzcGxpdFBhZ2VzKHJlYWxQYWdlLCB0b3RhbFBhZ2VzKSwgW3JlYWxQYWdlLCB0b3RhbFBhZ2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sXCI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYy1wYWdpbmctY29udHJvbC1wYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcGFnZSAhPSAwICYmIHNldFBhZ2UocGFnZSAtIDEpfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17cGFnZSA9PSAwfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuNSAxOWwtNy03IDctN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3Zpc2libGVQYWdlcy5tYXAoKHBhZ2VzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICB7aSA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sLXBhZ2UgZGMtcGFnaW5nLWNvbnRyb2wtc2VwYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlKHJlYWxQYWdlICsgKGlzTGVmdFNlcGVyYXRvcihyZWFsUGFnZSwgdmlzaWJsZVBhZ2VzLmxlbmd0aCwgaSkgPyAtNSA6IDUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUtcmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYy1wYWdpbmctY29udHJvbC1lbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHI9XCIxXCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxOVwiIGN5PVwiMTJcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgcj1cIjFcIj48L2NpcmNsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjVcIiBjeT1cIjEyXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHI9XCIxXCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlLXJlbmRlcmluZz1cImdlb21ldHJpY1ByZWNpc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXtgZGMtcGFnaW5nLWNvbnRyb2wtbGVhcC0ke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWZ0U2VwZXJhdG9yKHJlYWxQYWdlLCB2aXNpYmxlUGFnZXMubGVuZ3RoLCBpKSA/IFwibGVmdFwiIDogXCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMyAxN2w1LTUtNS01XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMTdsNS01LTUtNVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7cGFnZXMubWFwKChwKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZGMtcGFnaW5nLWNvbnRyb2wtcGFnZSAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID09PSByZWFsUGFnZSA/IFwiIGRjLXBhZ2luZy1jb250cm9sLXBhZ2UtYWN0aXZlXCIgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBhbnkpID0+IHNldFBhZ2UocCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3AgKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sLXBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBwYWdlICE9PSB0b3RhbFBhZ2VzIC0gMSAmJiBzZXRQYWdlKHBhZ2UgKyAxKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3BhZ2UgPT09IHRvdGFsUGFnZXMgLSAxfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC41IDVsNyA3LTcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG4vKiogMC1pbmRleGVkIHBhZ2UgY29udHJvbC4gYHBhZ2VgIHNob3VsZCBiZSB0aGUgY3VycmVudCAwLWluZGV4ZWQgcGFlZywgd2hpbGUgYG1heFBhZ2VgIGlzIHRoZSBtYXhpbXVtIHBhZ2UgKGluY2x1c2l2ZSkuICovXG5leHBvcnQgY29uc3QgQ29udHJvbGxlZFBhZ2VyID0gUmVhY3QubWVtbyhSYXdDb250cm9sbGVkUGFnZXIpO1xuXG4vKiogSG9vayB3aGljaCBwcm92aWRlcyBhdXRvbWF0aWMgcGFnZSByZWZsb3cgYW5kIHBhZ2Ugc3RhdGUgbWFuYWdlbWVudC5cbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUGFnaW5nKHtcbiAgICBpbml0aWFsUGFnZSA9IDAsXG4gICAgcGFnZVNpemUsXG4gICAgZWxlbWVudHMsXG59OiB7XG4gICAgaW5pdGlhbFBhZ2U6IG51bWJlcjtcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuICAgIGVsZW1lbnRzOiBudW1iZXI7XG59KTogW251bWJlciwgbnVtYmVyLCAocGFnZTogbnVtYmVyKSA9PiB2b2lkXSB7XG4gICAgLy8gV2UgdHJhY2sgdGhlIHN0YXJ0IGluZGV4IG9mIHRoZSBwYWdlIHNvIHRoYXQgd2hlbiBwYWdlIHNpemUgY2hhbmdlcyB3ZSBjYW4ganVzdCBhdXRvbWF0aWNhbGx5IHJlY29tcHV0ZSB0aGUgcGFnZSB3ZSBhcmUgb24gd2l0aG91dCBhbnkgc3RhdGUuXG4gICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGgubWF4KDEsIE1hdGguY2VpbChlbGVtZW50cyAvIHBhZ2VTaXplKSk7XG4gICAgY29uc3QgW3BhZ2VTdGFydCwgc2V0UGFnZVN0YXJ0XSA9IHVzZVN0YXRlKCgpID0+IGNsYW1wKGluaXRpYWxQYWdlLCAwLCB0b3RhbFBhZ2VzIC0gMSkpO1xuXG4gICAgY29uc3Qgc2V0Qm91bmRlZFBhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKHBhZ2U6IG51bWJlcikgPT4gc2V0UGFnZVN0YXJ0KGNsYW1wKHBhZ2UsIDAsIHRvdGFsUGFnZXMgLSAxKSAqIHBhZ2VTaXplKSxcbiAgICAgICAgW3BhZ2VTaXplLCB0b3RhbFBhZ2VzXVxuICAgICk7XG5cbiAgICBjb25zdCBwYWdlID0gY2xhbXAoTWF0aC5mbG9vcihwYWdlU3RhcnQgLyBwYWdlU2l6ZSksIDAsIHRvdGFsUGFnZXMgLSAxKTtcbiAgICByZXR1cm4gW3BhZ2UsIHRvdGFsUGFnZXMsIHNldEJvdW5kZWRQYWdlXTtcbn1cblxuLyoqIFByb3ZpZGVzIHVzZWZ1bCBtZXRhZGF0YSBhYm91dCBwYWdpbmcuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdpbmcge1xuICAgIC8qKiBXaGV0aGVyIHBhZ2luZyBpcyBlbmFibGVkLiAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIHNjcm9sbCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMuICovXG4gICAgc2Nyb2xsOiBib29sZWFuO1xuICAgIC8qKiBUaGUgY3VycmVudCBwYWdlLiAqL1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICAvKiogVGhlIHNpemUgb2YgZWFjaCBwYWdlLiAqL1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgZm9yIHRoaXMgZGF0YS4gKi9cbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gICAgLyoqIFVwZGF0ZSB0aGUgY3VycmVudCBwYWdlLiAqL1xuICAgIHNldFBhZ2U6IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ2VudHJhbCBwYWdpbmcgaG9vayB3aGljaCBleHRyYWN0cyBwYWdlIG1ldGFkYXRhIG91dCBvZiBEYXRhY29yZSBzZXR0aW5ncywgaGFuZGxlcyBwYWdlIG92ZXJmbG93LCBjdXJyZW50IHBhZ2Ugc3RhdGUsIGFuZCB1cGRhdGluZyB0aGUgcGFnZVxuICogaWYgdGhlIGVsZW1lbnRzIGNoYW5nZS4gSWYgYSBjb250YWluZXIgaXMgc3BlY2lmaWVkLCBhbHNvIHN1cHBvcnRzIHNjcm9sbGluZyB0aGUgY29udGFpbmVyIHZpZXcgb24gcGFnZSBjaGFuZ2VzLlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhY29yZVBhZ2luZyh7XG4gICAgaW5pdGlhbFBhZ2UgPSAwLFxuICAgIHBhZ2luZyxcbiAgICBzY3JvbGxPblBhZ2VDaGFuZ2UsXG4gICAgZWxlbWVudHMsXG4gICAgY29udGFpbmVyLFxufToge1xuICAgIGluaXRpYWxQYWdlOiBudW1iZXI7XG4gICAgcGFnaW5nOiBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHNjcm9sbE9uUGFnZUNoYW5nZT86IGJvb2xlYW4gfCBudW1iZXI7XG4gICAgZWxlbWVudHM6IG51bWJlcjtcbiAgICBjb250YWluZXI/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xufSk6IFBhZ2luZyB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB1c2VDb250ZXh0KFNFVFRJTkdTX0NPTlRFWFQpO1xuXG4gICAgY29uc3QgcGFnZVNpemUgPSB0eXBlb2YgcGFnaW5nID09PSBcIm51bWJlclwiID8gcGFnaW5nIDogc2V0dGluZ3MuZGVmYXVsdFBhZ2VTaXplO1xuICAgIGNvbnN0IHBhZ2luZ0VuYWJsZWQgPSB0eXBlb2YgcGFnaW5nID09PSBcIm51bWJlclwiIHx8IHBhZ2luZyA9PT0gdHJ1ZTtcbiAgICBjb25zdCBzaG91bGRTY3JvbGwgPVxuICAgICAgICAodHlwZW9mIHNjcm9sbE9uUGFnZUNoYW5nZSA9PT0gXCJudW1iZXJcIiAmJiBzY3JvbGxPblBhZ2VDaGFuZ2UgPj0gcGFnZVNpemUpIHx8XG4gICAgICAgICEhKHNjcm9sbE9uUGFnZUNoYW5nZSA/PyBzZXR0aW5ncy5zY3JvbGxPblBhZ2VDaGFuZ2UpO1xuXG4gICAgY29uc3QgW3BhZ2UsIHRvdGFsUGFnZXMsIHJhd1NldFBhZ2VdID0gdXNlUGFnaW5nKHsgaW5pdGlhbFBhZ2UsIHBhZ2VTaXplLCBlbGVtZW50cyB9KTtcblxuICAgIC8vIEhhbmRsZSBhdXRvLXNjcm9sbCBpZiBhIGNvbnRhaW5lciBpcyBwcm92aWRlZC5cbiAgICBjb25zdCBzZXRQYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChuZXdQYWdlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChwYWdlICE9IG5ld1BhZ2UgJiYgY29udGFpbmVyICYmIHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazogXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IFwibmVhcmVzdFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByYXdTZXRQYWdlKG5ld1BhZ2UpO1xuICAgICAgICB9LFxuICAgICAgICBbcGFnZSwgY29udGFpbmVyLCBzaG91bGRTY3JvbGwsIHJhd1NldFBhZ2VdXG4gICAgKTtcblxuICAgIHJldHVybiB7IGVuYWJsZWQ6IHBhZ2luZ0VuYWJsZWQsIHNjcm9sbDogc2hvdWxkU2Nyb2xsLCBwYWdlLCBwYWdlU2l6ZSwgdG90YWxQYWdlcywgc2V0UGFnZSB9O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY2xhbXAoaW5wdXQ6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaW5wdXQgPCBtaW4pIHJldHVybiBtaW47XG4gICAgaWYgKGlucHV0ID4gbWF4KSByZXR1cm4gbWF4O1xuICAgIHJldHVybiBpbnB1dDtcbn1cblxuLyoqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGZpbmRpbmcgdGhlIHNwZWNpZmljIHBhZ2UgbnVtYmVycyB0byByZW5kZXIuIEFsd2F5cyBhaW1zIHRvIHJlbmRlciA5IG9yIDEwIHBhZ2UgbnVtYmVycyB3aXRoIGEgc2VwYXJhdG9yLlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBzcGxpdFBhZ2VzKHBhZ2U6IG51bWJlciwgdG90YWxQYWdlczogbnVtYmVyKTogbnVtYmVyW11bXSB7XG4gICAgLy8gSWYgbGVzcyB0aGFuIDEyIHBhZ2VzLCBzaG93IGFsbCBvZiB0aGVtLlxuICAgIGlmICh0b3RhbFBhZ2VzIDwgMTIpIHJldHVybiBbQXJyYXkuZnJvbSh7IGxlbmd0aDogdG90YWxQYWdlcyB9LCAoXywgaSkgPT4gaSldO1xuXG4gICAgLy8gV2UgaGF2ZSBhdCBsZWFzdCAxMiBwYWdlcyAoMCAuLiAxMCBpbmNsdXNpdmUpLiBPdXIgZ29hbCBpcyB0byBoYXZlIDkgdG90YWwgdmlzaWJsZSBlbGVtZW50cywgc28gc3BsaXQgYmFzZWQgb24gdGhhdC5cbiAgICAvLyA1IHN1cnJvdW5kaW5nIHtwYWdlfSwgMCwgMSwgbWF4UGFnZSAtIDEsIG1heFBhZ2UuXG4gICAgaWYgKHBhZ2UgPCA1KVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDddLFxuICAgICAgICAgICAgW3RvdGFsUGFnZXMgLSAyLCB0b3RhbFBhZ2VzIC0gMV0sXG4gICAgICAgIF07XG4gICAgZWxzZSBpZiAocGFnZSA+IHRvdGFsUGFnZXMgLSA2KVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgWzAsIDFdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA4LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA3LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA2LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA1LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA0LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAzLFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAyLFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAxLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgXTtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbMCwgMV0sXG4gICAgICAgICAgICBbcGFnZSAtIDIsIHBhZ2UgLSAxLCBwYWdlLCBwYWdlICsgMSwgcGFnZSArIDJdLFxuICAgICAgICAgICAgW3RvdGFsUGFnZXMgLSAyLCB0b3RhbFBhZ2VzIC0gMV0sXG4gICAgICAgIF07XG59XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gaXNMZWZ0U2VwZXJhdG9yKHJlYWxQYWdlOiBudW1iZXIsIHZpc2libGVQYWdlc0xlbmd0aDogbnVtYmVyLCBzZXBlcmF0b3JJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgd2UgaGF2ZSAyIHZpc2libGUgcGFnZXMsIHdlIGNhbiBkZXRlcm1pbmUgc2VwZXJhdG9yIGlzIGNsaWNrZWQgYnkgcmVhbFBhZ2UuXG4gICAgLy8gSWYgd2UgaGF2ZSAzIHZpc2libGUgcGFnZXMsIHdlIGNhbiBkZXRlcm1pbmUgc2VwZXJhdG9yIGlzIGNsaWNrZWQgYnkgaW5kZXguXG4gICAgaWYgKHZpc2libGVQYWdlc0xlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAocmVhbFBhZ2UgPCA1KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzZXBlcmF0b3JJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiY29uc3QgcHJlZml4ID0gXCJmYXNcIjtcbmNvbnN0IGZhMCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICcwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCIzMFwiLCBcIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMyczE2MCA3MS42IDE2MCAxNjBsMCAxMjhjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMEwwIDE5MnpNMTYwIDk2Yy01MyAwLTk2IDQzLTk2IDk2bDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjhjMC01My00My05Ni05Ni05NnpcIl1cbn07XG5jb25zdCBmYTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMScsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiMzFcIiwgXCJNMTYwIDY0YzAtMTEuOC02LjUtMjIuNi0xNi45LTI4LjJzLTIzLTUtMzIuOCAxLjZsLTk2IDY0Qy0uNSAxMTEuMi00LjQgMTMxIDUuNCAxNDUuOHMyOS43IDE4LjcgNDQuNCA4LjlMOTYgMTIzLjggOTYgNDE2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MnpcIl1cbn07XG5jb25zdCBmYTIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzJcIiwgXCJNMTQyLjkgOTZjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMNTQuNiAxNTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAuMiA3NC41QzY3LjUgNDcuMyAxMDQuNCAzMiAxNDIuOSAzMkMyMjMgMzIgMjg4IDk3IDI4OCAxNzcuMWMwIDM4LjUtMTUuMyA3NS40LTQyLjUgMTAyLjZMMTA5LjMgNDE2IDI4OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwyMDAuMiAyMzQuNWMxNS4yLTE1LjIgMjMuOC0zNS45IDIzLjgtNTcuNGMwLTQ0LjgtMzYuMy04MS4xLTgxLjEtODEuMXpcIl1cbn07XG5jb25zdCBmYTMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzNcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyNDAgMGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNHMxLjUgMjYuMy04LjIgMzUuMkwxNjIuMyAyMDhsMjEuNyAwYzc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2cy02MC45IDEzNi0xMzYgMTM2bC03OC42IDBDNjMgNDgwIDI0LjIgNDU2IDUuMyA0MTguMWwtMS45LTMuOGMtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDEuOSAzLjhjOC4xIDE2LjMgMjQuOCAyNi41IDQyLjkgMjYuNWw3OC42IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJMODAgMjcyYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuNHMtMS41LTI2LjMgOC4yLTM1LjJMMTg5LjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIl1cbn07XG5jb25zdCBmYTQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnNCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiMzRcIiwgXCJNMTg5IDc3LjZjNy41LTE2IC43LTM1LjEtMTUuMy00Mi42cy0zNS4xLS43LTQyLjYgMTUuM0wzIDMyMi40Yy00LjcgOS45LTMuOSAyMS41IDEuOSAzMC44UzIxIDM2OCAzMiAzNjhsMjI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0NEw4Mi40IDMwNCAxODkgNzcuNnpcIl1cbn07XG5jb25zdCBmYTUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnNScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzVcIiwgXCJNMzIuNSA1OC4zQzM1LjMgNDMuMSA0OC41IDMyIDY0IDMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDkwLjcgOTYgNzAuMyAyMDggMTg0IDIwOGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNnMtNjAuOSAxMzYtMTM2IDEzNmwtODMuNSAwYy0zOS40IDAtNzUuNC0yMi4zLTkzLTU3LjVsLTQuMS04LjJjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlzMzUtMS41IDQyLjkgMTQuM2w0LjEgOC4yYzYuOCAxMy42IDIwLjYgMjIuMSAzNS44IDIyLjFsODMuNSAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtOS41IDAtMTguNS00LjItMjQuNi0xMS41cy04LjYtMTYuOS02LjktMjYuMmwzMi0xNzZ6XCJdXG59O1xuY29uc3QgZmE2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjM2XCIsIFwiTTIzMi40IDg0LjdjMTEuNC0xMy41IDkuNy0zMy43LTMuOC00NS4xcy0zMy43LTkuNy00NS4xIDMuOEwzOC42IDIxNC43QzE0LjcgMjQyLjkgMS4xIDI3OC40IC4xIDMxNS4yYzAgMS40LS4xIDIuOS0uMSA0LjNsMCAuNWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwYzAtODUuNS02Ny4xLTE1NS40LTE1MS41LTE1OS44bDYzLjktNzUuNnpNMjU2IDMyMEE5NiA5NiAwIDEgMSA2NCAzMjBhOTYgOTYgMCAxIDEgMTkyIDB6XCJdXG59O1xuY29uc3QgZmE3ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjM3XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjU2IDBjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhOCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICc4JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCIzOFwiLCBcIk0zMDQgMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4bC0zMiAwQzczLjMgMzIgMTYgODkuMyAxNiAxNjBjMCAzNC42IDEzLjcgNjYgMzYgODlDMjAuNSAyNzIuMyAwIDMwOS44IDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC00Mi4yLTIwLjUtNzkuNy01Mi0xMDNjMjIuMy0yMyAzNi01NC40IDM2LTg5ek0xNzYuMSAyODhsMTUuOSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDE1LjkgMGMwIDAgLjEgMCAuMSAwbDMyIDBjMCAwIC4xIDAgLjEgMHptMC02NGMwIDAgMCAwIDAgMGwtMzIgMGMwIDAgMCAwIDAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDM1LjMtMjguNiA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYTkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnOScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzlcIiwgXCJNNjQgMTkyYTk2IDk2IDAgMSAwIDE5MiAwQTk2IDk2IDAgMSAwIDY0IDE5MnptODcuNSAxNTkuOEM2Ny4xIDM0Ny40IDAgMjc3LjUgMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwYzAgMi42LS4xIDUuMy0uMiA3LjljLTEuNyAzNS43LTE1LjIgNzAtMzguNCA5Ny40bC0xNDUgMTcxLjRjLTExLjQgMTMuNS0zMS42IDE1LjItNDUuMSAzLjhzLTE1LjItMzEuNi0zLjgtNDUuMWw2My45LTc1LjZ6XCJdXG59O1xuY29uc3QgZmFGaWxsRHJpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxsLWRyaXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NzZcIiwgXCJNNDEuNCA5LjRDNTMuOS0zLjEgNzQuMS0zLjEgODYuNiA5LjRMMTY4IDkwLjdsNTMuMS01My4xYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEw0NzQuMyAxODkuMWMyOC4xIDI4LjEgMjguMSA3My43IDAgMTAxLjhMMjgzLjkgNDgxLjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwzMC42IDM2My45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhMMTIyLjcgMTM2IDQxLjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bTE3NiAyMjEuM0wxNjggMTgxLjMgNzUuOSAyNzMuNGMtNC4yIDQuMi03IDkuMy04LjQgMTQuNmwzMTkuMiAwIDQyLjMtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI3Ny43IDgyLjljLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBMMjEzLjMgMTM2bDQ5LjQgNDkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpNNTEyIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43YzYtOS40IDE5LjUtOS40IDI1LjUgMEM1NDMuNCAzNjguNCA1NzYgNDIyLjggNTc2IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93c1RvQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10by1jaXJjbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YmRcIiwgXCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxNjAgMTE0LjcgMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDQuMy0uOSA4LjUtMi40IDEyLjJjLTEuNiAzLjctMy44IDcuMy02LjkgMTAuM2wtLjEgLjFjLTMuMSAzLTYuNiA1LjMtMTAuMyA2LjljLTMuOCAxLjYtNy45IDIuNC0xMi4yIDIuNGwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC43IDBMOS40IDU0LjZDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTI1NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xMTQuNyAzNTJMOTYgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBzMCAwIDAgMGwuMSAwYzguOCAwIDE2LjcgMy42IDIyLjUgOS4zbC4xIC4xYzMgMy4xIDUuMyA2LjYgNi45IDEwLjNjMS42IDMuOCAyLjQgNy45IDIuNCAxMi4ybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDExNC43IDM1MnpNNDE2IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43TDU4NS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDUyNS4zIDE2MGwxOC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTguOCAwLTE2LjgtMy42LTIyLjYtOS4zbC0uMS0uMWMtMy0zLjEtNS4zLTYuNi02LjktMTAuM3MtMi40LTcuOC0yLjQtMTIuMmwwLS4xczAgMCAwIDBsMC05NnpNNTI1LjMgMzUyTDYzMC42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDQ4MCAzOTcuM2wwIDE4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnMwIDAgMCAwbDAtLjFjMC00LjMgLjktOC40IDIuNC0xMi4yYzEuNi0zLjggMy45LTcuMyA2LjktMTAuNGM1LjgtNS44IDEzLjctOS4zIDIyLjUtOS40bC4xIDBzMCAwIDAgMGw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVDaGV2cm9uUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWNoZXZyb24tcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNoZXZyb24tY2lyY2xlLXJpZ2h0XCJdLCBcImYxMzhcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3elwiXVxufTtcbmNvbnN0IGZhQ2hldnJvbkNpcmNsZVJpZ2h0ID0gZmFDaXJjbGVDaGV2cm9uUmlnaHQ7XG5jb25zdCBmYUF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE5NDZdLCBcIjQwXCIsIFwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5NmMtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjlDMzIwIDM3MS4xIDI4OS41IDM4NCAyNTYgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4YzI3LjkgMCA1My43IDguOSA3NC43IDI0LjFjNS43LTUgMTMuMS04LjEgMjEuMy04LjFjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIl1cbn07XG5jb25zdCBmYVRyYXNoQ2FuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLWNhbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzYxNDYwLCBcInRyYXNoLWFsdFwiXSwgXCJmMmVkXCIsIFwiTTEzNS4yIDE3LjdDMTQwLjYgNi44IDE1MS43IDAgMTYzLjggMEwyODQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgNy4yLTE0LjN6TTMyIDEyOGwzODQgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIwem05NiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2em05NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZ6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDIyNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjI0YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYVRyYXNoQWx0ID0gZmFUcmFzaENhbjtcbmNvbnN0IGZhVGV4dEhlaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZXh0LWhlaWdodCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAzNFwiLCBcIk02NCAxMjhsMC0zMiA2NCAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMjAgNjQgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEwxNjAgMzIgNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTUwMi42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwzMiAwIDAgMTkyLTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtMTkyIDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6XCJdXG59O1xuY29uc3QgZmFVc2VyWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci10aW1lc1wiXSwgXCJmMjM1XCIsIFwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0bDkxLjQgMEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTQ3MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xuY29uc3QgZmFVc2VyVGltZXMgPSBmYVVzZXJYbWFyaztcbmNvbnN0IGZhU3RldGhvc2NvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RldGhvc2NvcGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjk2NThdLCBcImYwZjFcIiwgXCJNMTQyLjQgMjEuOWM1LjYgMTYuOC0zLjUgMzQuOS0yMC4yIDQwLjVMOTYgNzEuMSA5NiAxOTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyMC45LTI2LjEtOC43Yy0xNi44LTUuNi0yNS44LTIzLjctMjAuMi00MC41czIzLjctMjUuOCA0MC41LTIwLjJsMjYuMSA4LjdDMzM0LjQgMTkuMSAzNTIgNDMuNSAzNTIgNzEuMUwzNTIgMTkyYzAgNzcuMi01NC42IDE0MS42LTEyNy4zIDE1Ni43QzIzMSA0MDQuNiAyNzguNCA0NDggMzM2IDQ0OGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMmwwLTcwLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjNjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuN2MwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtOTIuOSAwLTE2OC45LTcxLjktMTc1LjUtMTYzLjFDODcuMiAzMzQuMiAzMiAyNjkuNiAzMiAxOTJMMzIgNzEuMWMwLTI3LjUgMTcuNi01MiA0My44LTYwLjdsMjYuMS04LjdjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4yek00ODAgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYU1lc3NhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVzc2FnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tbWVudC1hbHRcIl0sIFwiZjI3YVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwIDAgODBjMCA2LjEgMy40IDExLjYgOC44IDE0LjNzMTEuOSAyLjEgMTYuOC0xLjVMMzA5LjMgNDE2IDQ0OCA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpcIl1cbn07XG5jb25zdCBmYUNvbW1lbnRBbHQgPSBmYU1lc3NhZ2U7XG5jb25zdCBmYUluZm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5mbycsXG4gIGljb246IFsxOTIsIDUxMiwgW10sIFwiZjEyOVwiLCBcIk00OCA4MGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDQ4IDgwek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xOTItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tcHJlc3MtYWx0XCJdLCBcImY0MjJcIiwgXCJNNDM5IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0LjhsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzlMNDM5IDd6TTcyIDI3MmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOUw3MyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgNDczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04N0w1NSAzMTNjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJzMTIuNS0xNC44IDIyLjItMTQuOHpcIl1cbn07XG5jb25zdCBmYUNvbXByZXNzQWx0ID0gZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjtcbmNvbnN0IGZhRXhwbG9zaW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4cGxvc2lvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlOVwiLCBcIk00OTkuNiAxMS4zYzYuNy0xMC43IDIwLjUtMTQuNSAzMS43LTguNXMxNS44IDE5LjUgMTAuNiAzMUw0MDQuOCAzMzguNmMyLjIgMi4zIDQuMyA0LjcgNi4zIDcuMWw5Ny4yLTU0LjdjMTAuNS01LjkgMjMuNi0zLjEgMzAuOSA2LjRzNi4zIDIzLTIuMiAzMS41bC04NyA4Ny03MS40IDBjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0bC03OS42IDBMNDIuMyAzNjMuN2MtOS43LTYuNy0xMy4xLTE5LjYtNy45LTMwLjNzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNyA5LjQtMTEuM0wxMDcuNCAyMzYuM2MtNi4xLTEwLjEtMy45LTIzLjEgNS4xLTMwLjdzMjIuMi03LjUgMzEuMSAuMUwyNDYgMjkzLjZjMS41LS40IDMtLjggNC41LTEuMWwxMy42LTE0Mi43YzEuMi0xMi4zIDExLjUtMjEuNyAyMy45LTIxLjdzMjIuNyA5LjQgMjMuOSAyMS43bDEzLjUgMTQxLjlMNDk5LjYgMTEuM3pNNjQgNDQ4czAgMCAwIDBsNDQ4IDBzMCAwIDAgMGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwek0yODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFGaWxlTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1saW5lcycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQ0MSwgMTI4NDYyLCA2MTY4NiwgXCJmaWxlLWFsdFwiLCBcImZpbGUtdGV4dFwiXSwgXCJmMTVjXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTEyIDI1NmwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUZpbGVBbHQgPSBmYUZpbGVMaW5lcztcbmNvbnN0IGZhRmlsZVRleHQgPSBmYUZpbGVMaW5lcztcbmNvbnN0IGZhV2F2ZVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YXZlLXNxdWFyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjgzZVwiLCBcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgOTYgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzUyLTk2IDAgMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFSaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3MGJcIiwgXCJNNjQgMjA4YzAgNy44IDQuNCAxOC43IDE3LjEgMzAuM0MxMjYuNSAyMTQuMSAxODguOSAyMDAgMjU2IDIwMHMxMjkuNSAxNC4xIDE3NC45IDM4LjNDNDQzLjYgMjI2LjcgNDQ4IDIxNS44IDQ0OCAyMDhjMC0xMi4zLTEwLjgtMzItNDcuOS01MC42QzM2NC45IDEzOS44IDMxNCAxMjggMjU2IDEyOHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjdDMTY2LjMgMjgwLjIgMjA4LjggMjg4IDI1NiAyODhzODkuNy03LjggMTIyLjktMjAuM0MzNDUuMyAyNTUuNiAzMDMgMjQ4IDI1NiAyNDh6TTAgMjA4YzAtNDkuNiAzOS40LTg1LjggODMuMy0xMDcuOEMxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOEMzODIuOSA0MzQuNyAzMjEuNyA0NDggMjU2IDQ0OHMtMTI2LjktMTMuMy0xNzIuNy0zNi4yQzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2elwiXVxufTtcbmNvbnN0IGZhQnVpbGRpbmdVbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy11bicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRkOVwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC00MTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yMzcuMyA3MS4xbDM0LjcgNTJMMjcyIDgwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTEyIDgwbDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFEaWNlVGhyZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10aHJlZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NThdLCBcImY1MjdcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNhbGVuZGFyRGF5cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1kYXlzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYWxlbmRhci1hbHRcIl0sIFwiZjA3M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptNjQgODBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDQwMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFDYWxlbmRhckFsdCA9IGZhQ2FsZW5kYXJEYXlzO1xuY29uc3QgZmFBbmNob3JDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3ItY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFhXCIsIFwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBMMjI0IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjA4LTQ4IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03IDAgNi4xYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDgwIDAgODAgMGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJMMzIwIDQ0OGwwLTgwIDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy1jaXJjbGUtYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZDFcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxODQuMmMtMzkuMSAzMi4zLTY0IDgxLjEtNjQgMTM1LjhjMCA0OS41IDIwLjQgOTQuMiA1My4zIDEyNi4yQzM2NC41IDUwNS4xIDM1MS4xIDUxMiAzMzYgNTEybC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTEyLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptOTYgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0MC43LTY3LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42TDUyMS40IDM1MiA0MzIgMzUyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhVm9sbGV5YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2xsZXliYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTUyLCBcInZvbGxleWJhbGwtYmFsbFwiXSwgXCJmNDVmXCIsIFwiTTUxMS44IDI2Ny40Yy0yNi4xIDguNy01My40IDEzLjgtODEgMTUuMWM5LjItMTA1LjMtMzEuNS0yMDQuMi0xMDMuMi0yNzIuNEM0MzQuMSA0MS4xIDUxMiAxMzkuNSA1MTIgMjU2YzAgMy44LS4xIDcuNi0uMiAxMS40em0tMy45IDM0LjdjLTUuOCAzMi0xNy42IDYyLTM0LjIgODguN2MtOTcuNSA0OC41LTIxNy43IDQyLjYtMzExLjktMjQuNWMyMy43LTM2LjIgNTUuNC02Ny43IDk0LjUtOTEuOGM3OS45IDQzLjIgMTcwLjEgNTAuOCAyNTEuNiAyNy42em0tMjM2LTU1LjVjLTIuNS05MC45LTQxLjEtMTcyLjctMTAxLjktMjMxLjdDMTk2LjggNS4yIDIyNS44IDAgMjU2IDBjMi43IDAgNS4zIDAgNy45IC4xYzkwLjggNjAuMiAxNDUuNyAxNjcuMiAxMzQuNyAyODIuM2MtNDMuMS0yLjQtODYuNC0xNC4xLTEyNi44LTM1Ljl6TTEzOCAyOC44YzIwLjYgMTguMyAzOC43IDM5LjQgNTMuNyA2Mi42Qzk1LjkgMTM2LjEgMzAuNiAyMjAuOCA3LjMgMzE2LjlDMi41IDI5Ny40IDAgMjc3IDAgMjU2QzAgMTU3LjIgNTYgNzEuNSAxMzggMjguOHptNjkuNiA5MC41YzE5LjUgMzguNiAzMSA4MS45IDMyLjMgMTI3LjdDMTYyLjUgMjk0LjYgMTEwLjkgMzY4LjkgOTAuMiA0NTFDNjYgNDMwLjQgNDUuNiA0MDUuNCAzMC40IDM3Ny4yYzYuNy0xMDguNyA3MS45LTIwOS45IDE3Ny4xLTI1Ny45ek0yNTYgNTEyYy01MC43IDAtOTgtMTQuNy0xMzcuOC00MC4yYzUuNi0yNyAxNC44LTUzLjEgMjcuNC03Ny43QzIzMi4yIDQ1NC42IDMzOC4xIDQ2OC44IDQzMyA0NDFjLTQ2IDQ0LTEwOC4zIDcxLTE3NyA3MXpcIl1cbn07XG5jb25zdCBmYVZvbGxleWJhbGxCYWxsID0gZmFWb2xsZXliYWxsO1xuY29uc3QgZmFBcnJvd3NVcFRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtdG8tbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjMlwiLCBcIk0zMiA5Nmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZ6TTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAyMzcuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2em0zMjAgNDUuM2MxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMEw0MTYgMjM3LjMgNDE2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zelwiXVxufTtcbmNvbnN0IGZhU29ydERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJzb3J0LWRlc2NcIl0sIFwiZjBkZFwiLCBcIk0xODIuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45czE2LjYtMTkuOCAyOS42LTE5LjhsMjU2IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOHpcIl1cbn07XG5jb25zdCBmYVNvcnREZXNjID0gZmFTb3J0RG93bjtcbmNvbnN0IGZhQ2lyY2xlTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJtaW51cy1jaXJjbGVcIl0sIFwiZjA1NlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTg0IDIzMmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFNaW51c0NpcmNsZSA9IGZhQ2lyY2xlTWludXM7XG5jb25zdCBmYURvb3JPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3Itb3BlbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjUyYlwiLCBcIk0zMjAgMzJjMC05LjktNC41LTE5LjItMTIuMy0yNS4yUzI4OS44LTEuNCAyODAuMiAxbC0xNzkuOSA0NUM3OSA1MS4zIDY0IDcwLjUgNjQgOTIuNUw2NCA0NDhsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAxOTIgMCAzMiAwIDAtMzIgMC00NDh6TTI1NiAyNTZjMCAxNy43LTEwLjcgMzItMjQgMzJzLTI0LTE0LjMtMjQtMzJzMTAuNy0zMiAyNC0zMnMyNCAxNC4zIDI0IDMyem05Ni0xMjhsOTYgMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFSaWdodEZyb21CcmFja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpZ2h0LWZyb20tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1vdXQtYWx0XCJdLCBcImYyZjVcIiwgXCJNMzc3LjkgMTA1LjlMNTAwLjcgMjI4LjdjNy4yIDcuMiAxMS4zIDE3LjEgMTEuMyAyNy4zcy00LjEgMjAuMS0xMS4zIDI3LjNMMzc3LjkgNDA2LjFjLTYuNCA2LjQtMTUgOS45LTI0IDkuOWMtMTguNyAwLTMzLjktMTUuMi0zMy45LTMzLjlsMC02Mi4xLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjIuMWMwLTE4LjcgMTUuMi0zMy45IDMzLjktMzMuOWM5IDAgMTcuNiAzLjYgMjQgOS45ek0xNjAgOTZMOTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhU2lnbk91dEFsdCA9IGZhUmlnaHRGcm9tQnJhY2tldDtcbmNvbnN0IGZhQXRvbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdG9tJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg4M10sIFwiZjVkMlwiLCBcIk0yNTYgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNWMxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQ0NiAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjhjLTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMmMtMjIgNTIuMS01NS42IDg0LjgtOTguNCA4NC44cy03Ni40LTMyLjctOTguNC04NC44Yy01Mi43IDYuMS05NS02LjgtMTE1LjItNDMuMkMyMS43IDM0Ni45IDMzIDMwMS4yIDY2IDI1NmMtMzMtNDUuMi00NC4zLTkwLjktMjMuNi0xMjhjMjAuMi0zNi4zIDYyLjUtNDkuMyAxMTUuMi00My4yQzE3OS42IDMyLjcgMjEzLjIgMCAyNTYgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yYzIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yYzMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuN2MyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjFjLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yYzcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNmMxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjFjLTEuNi0yLjktOC40LTEzLTQwLjItMTEuN3pNMjkwLjkgOTkuN0MyNzQuMSA2NS45IDI1OS45IDY0IDI1NiA2NHMtMTguMSAxLjktMzQuOSAzNS43YzExLjQgMy45IDIzLjEgOC40IDM0LjkgMTMuNWMxMS44LTUuMSAyMy40LTkuNyAzNC45LTEzLjV6bS0xNTkgODguOWMxLjctMTQuMyAzLjktMjggNi43LTQxLjJjLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuN2MtMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xYzYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTExMC4yIDMwNC44QzkxLjQgMzM1IDk2IDM0OC43IDk4LjMgMzUyLjljMS42IDIuOSA4LjQgMTMgNDAuMiAxMS43Yy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjJjLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzM2IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTb2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvYXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MzJdLCBcImUwNmVcIiwgXCJNMjA4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzIwIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNNDE2IDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTYwYzAgMjcuNi0xMS43IDUyLjUtMzAuNCA3MC4xQzQyMi4xIDI3NS43IDQ0OCAzMTAuOCA0NDggMzUyYzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2bDg4LjQgMGMtMTUuMi0xNy0yNC40LTM5LjQtMjQuNC02NEw5NiAxOTJjLTUzIDAtOTYgNDMtOTYgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwzMjAgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTE2MCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTMyIDAtMTYwIDB6XCJdXG59O1xuY29uc3QgZmFJY29ucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpY29ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHRcIl0sIFwiZjg2ZFwiLCBcIk01MDAuMyA3LjNDNTA3LjcgMTMuMyA1MTIgMjIuNCA1MTIgMzJsMCAxNDRjMCAyNi41LTI4LjcgNDgtNjQgNDhzLTY0LTIxLjUtNjQtNDhzMjguNy00OCA2NC00OGwwLTU3TDM1MiA5MC4yIDM1MiAyMDhjMCAyNi41LTI4LjcgNDgtNjQgNDhzLTY0LTIxLjUtNjQtNDhzMjguNy00OCA2NC00OGwwLTk2YzAtMTUuMyAxMC44LTI4LjQgMjUuNy0zMS40bDE2MC0zMmM5LjQtMS45IDE5LjEgLjYgMjYuNiA2LjZ6TTc0LjcgMzA0bDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwYzEwLjcgMCAyMC43IDUuMyAyNi42IDE0LjJMMjEzLjMgMzA0bDI2LjcgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI2LjcgMHpNMTkyIDQwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NzguNyAyNzguM0w0NDAuMyAzNjhsNTUuNyAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRzLjYgMTMuMy00LjQgMTcuN2wtMTI4IDExMmMtNS42IDQuOS0xMy45IDUuMy0xOS45IC45cy04LjItMTIuNC01LjMtMTkuMkwzOTEuNyA0MDAgMzM2IDQwMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjIgMTIuNCA1LjMgMTkuMnptLTMzOS01OS4yYy02LjUgNi41LTE3IDYuNS0yMyAwTDE5LjkgMTE5LjJjLTI4LTI5LTI2LjUtNzYuOSA1LTEwMy45YzI3LTIzLjUgNjguNC0xOSA5My40IDYuNWwxMCAxMC41IDkuNS0xMC41YzI1LTI1LjUgNjUuOS0zMCA5My45LTYuNWMzMSAyNyAzMi41IDc0LjkgNC41IDEwMy45bC05Ni40IDk5Ljl6XCJdXG59O1xuY29uc3QgZmFIZWFydE11c2ljQ2FtZXJhQm9sdCA9IGZhSWNvbnM7XG5jb25zdCBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvcGhvbmUtbGluZXMtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIm1pY3JvcGhvbmUtYWx0LXNsYXNoXCJdLCBcImY1MzlcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0NzIuMSAzNDQuN2MxNS4yLTI2IDIzLjktNTYuMyAyMy45LTg4LjdsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0IDAgMTZjMCAyMS4yLTUuMSA0MS4xLTE0LjIgNTguN0w0MTYgMzAwLjhsMC00NC44LTU3LjEgMC0zNC41LTI3YzIuOS0zLjEgNy01IDExLjYtNWw4MCAwIDAtMzItODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtMzItODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgNTQuM0wzOC44IDUuMXptMzYyLjUgNDA3bC00My4xLTMzLjlDMzQ2LjEgMzgyIDMzMy4zIDM4NCAzMjAgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOGwwLTguN0wxNDQuNyAyMTBjLS41IDEuOS0uNyAzLjktLjcgNmwwIDQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNGwwIDMzLjYtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC0zMy42YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMnpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmVBbHRTbGFzaCA9IGZhTWljcm9waG9uZUxpbmVzU2xhc2g7XG5jb25zdCBmYUJyaWRnZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YzlcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJdXG59O1xuY29uc3QgZmFQdW1wTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwdW1wLW1lZGljYWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNmFcIiwgXCJNMTI4IDMybDAgOTYgMTI4IDAgMC0zMiA2MC4xIDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2wzMy45IDMzLjljMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzNzIuNyA1NS40Yy0xNS0xNS0zNS40LTIzLjQtNTYuNi0yMy40TDI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEybDE4Ni40IDBjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN2wtMTQ5LjEgMHpNMjE2IDI4MGwwIDMyIDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDAgMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTMyLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzIgMCAwLTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xuY29uc3QgZmFGaW5nZXJwcmludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaW5nZXJwcmludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3N1wiLCBcIk00OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4YzYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjVjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjZjLTE1LjIgNS0xOC43IDIzLjctOC4zIDM1LjljNy4xIDguMyAxOC44IDEwLjggMjkuNCA3LjljMTAuNi0yLjkgMjEuOC00LjQgMzMuNC00LjRjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAyNC45YzAgMjUuMi0xLjUgNTAuMy00LjQgNzUuM2MtMS43IDE0LjYgOS40IDI3LjggMjQuMiAyNy44YzExLjggMCAyMS45LTguNiAyMy4zLTIwLjNjMy4zLTI3LjQgNS01NSA1LTgyLjdsMC0yNC45YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2ek0xNTAuNyAxNDguN2MtOS4xLTEwLjYtMjUuMy0xMS40LTMzLjktLjRDOTMuNyAxNzggODAgMjE1LjQgODAgMjU2bDAgMjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjlDNjguOCAzNjguNCA4MC4xIDM4NCA5Ni4xIDM4NGMxMC41IDAgMTkuOS03IDIyLjItMTcuM2M2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMWM3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjFjLTMuOCAxNC4zIDYuNyAyOSAyMS41IDI5YzkuNSAwIDE3LjktNi4yIDIwLjQtMTUuNGMxMC41LTM5IDE1LjktNzkuMiAxNS45LTExOS43bDAtMjQuOWMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMjQuOWMwIDM2LjMtMy41IDcyLjQtMTAuNCAxMDcuOWMtMi43IDEzLjkgNy43IDI3LjIgMjEuOCAyNy4yYzEwLjIgMCAxOS03IDIxLTE3YzcuNy0zOC44IDExLjYtNzguMyAxMS42LTExOC4xbDAtMjQuOWMwLTUzLTQzLTk2LTk2LTk2em0yNCA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOWwwLTI0Ljl6XCJdXG59O1xuY29uc3QgZmFIYW5kUG9pbnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGE0XCIsIFwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMmMwIDEzLjIgNCAyNS40IDEwLjggMzUuNkMxNzcuOSAzNjQuMyAxNjAgMzg4LjEgMTYwIDQxNmMwIDExLjcgMy4xIDIyLjYgOC42IDMybC04LjYgMEM3MS42IDQ0OCAwIDM3Ni40IDAgMjg4bDAtNjEuN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsMTEuNi0xMS42QzgyLjUgNzcuNSAxMTUuMSA2NCAxNDkgNjRsMjcgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwbDAtNTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA1NmMwIDM5LjggMzIuMiA3MiA3MiA3MnpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNlYXJjaC1sb2NhdGlvblwiXSwgXCJmNjg5XCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNmM2IDcuMyAxNi44IDcuMyAyMi43IDBjMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFTZWFyY2hMb2NhdGlvbiA9IGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb247XG5jb25zdCBmYUZvcndhcmRTdGVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvcndhcmQtc3RlcCcsXG4gIGljb246IFszMjAsIDUxMiwgW1wic3RlcC1mb3J3YXJkXCJdLCBcImYwNTFcIiwgXCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2TDAgOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MEwyNTYgMjQxbDAtMTQ1YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDUtMTEuNSA5LjYtMTkyIDE2MHpcIl1cbn07XG5jb25zdCBmYVN0ZXBGb3J3YXJkID0gZmFGb3J3YXJkU3RlcDtcbmNvbnN0IGZhRmFjZVNtaWxlQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXNtaWxlLWJlYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MjIsIFwic21pbGUtYmVhbVwiXSwgXCJmNWI4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6bTUzLjUtOTYuN3MwIDAgMCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwem0xNjAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhU21pbGVCZWFtID0gZmFGYWNlU21pbGVCZWFtO1xuY29uc3QgZmFGbGFnQ2hlY2tlcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZsYWctY2hlY2tlcmVkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTM3XSwgXCJmMTFlXCIsIFwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjVjNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAyNzkuN2MwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjRjLTM3LjktMTktODEuMy0yMy43LTEyMi41LTEzLjRMNjQgMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MCAwLTY2TDAgNjQgMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTY0IDE4Ny4xbDY0LTEzLjkgMCA2NS41TDY0IDI1Mi42IDY0IDMxOGw0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1Yy04LjItNC4xLTE2LjktNy0yNS44LTguOGwwIDcyLjRjLTEzLS40LTI2IC44LTM4LjcgMy42TDEyOCAxNzMuMiAxMjggOTggNjQgMTE0bDAgNzMuMXpNMzIwIDMzNS43YzE2LjggMS41IDMzLjktLjcgNTAtNi44bDE0LTUuMiAwLTcxLjctNy45IDEuOGMtMTguNCA0LjMtMzcuMyA1LjctNTYuMSA0LjVsMCA3Ny40em02NC0xNDkuNGwwLTcwLjhjLTIwLjkgNi4xLTQyLjQgOS4xLTY0IDkuMWwwIDY5LjRjMTMuOSAxLjQgMjggLjUgNDEuNy0yLjZsMjIuMy01LjJ6XCJdXG59O1xuY29uc3QgZmFGb290YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb290YmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk0NCwgXCJmb290YmFsbC1iYWxsXCJdLCBcImY0NGVcIiwgXCJNMjQ3LjUgMjUuNGMtMTMuNSAzLjMtMjYuNCA3LjItMzguNiAxMS43QzE0Mi45IDYxLjYgOTYuNyAxMDMuNiA2NiAxNTMuNkM0Ny44IDE4My40IDM1LjEgMjE1LjkgMjYuOSAyNDlMMjY0LjUgNDg2LjZjMTMuNS0zLjMgMjYuNC03LjIgMzguNi0xMS43YzY2LTI0LjUgMTEyLjItNjYuNSAxNDIuOS0xMTYuNWMxOC4zLTI5LjggMzAuOS02Mi4zIDM5LjEtOTUuM0wyNDcuNSAyNS40ek00OTUuMiAyMDUuM2M2LjEtNTYuOCAxLjQtMTEyLjItNy43LTE1Ni40Yy0yLjctMTIuOS0xMy0yMi45LTI2LjEtMjUuMWMtNTguMi05LjctMTA5LjktMTItMTU1LjYtNy45TDQ5NS4yIDIwNS4zek0yMDYuMSA0OTZMMTYuOCAzMDYuN2MtNi4xIDU2LjgtMS40IDExMi4yIDcuNyAxNTYuNGMyLjcgMTIuOSAxMyAyMi45IDI2LjEgMjUuMWM1OC4yIDkuNyAxMDkuOSAxMiAxNTUuNiA3Ljl6bTU0LjYtMzMxLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42elwiXVxufTtcbmNvbnN0IGZhRm9vdGJhbGxCYWxsID0gZmFGb290YmFsbDtcbmNvbnN0IGZhU2Nob29sQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2Y1wiLCBcIk0zMzcuOCA1LjRDMzI3LTEuOCAzMTMtMS44IDMwMi4yIDUuNEwxNjYuMyA5NiA0OCA5NkMyMS41IDk2IDAgMTE3LjUgMCAxNDRMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMjcyIDBzMCAwIDAgMGwtNjQgMCAwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4zIDAgLjUgMGMzLjQtMzcuNyAxOC43LTcyLjEgNDIuMi05OS4xQzM1MC4yIDI2MCAzMzUuNiAyNjQgMzIwIDI2NGMtNDguNiAwLTg4LTM5LjQtODgtODhzMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMTguMy01LjYgMzUuMy0xNS4xIDQ5LjRjMjktMjEgNjQuNi0zMy40IDEwMy4xLTMzLjRjNTkuNSAwIDExMi4xIDI5LjYgMTQ0IDc0LjhMNjQwIDE0NGMwLTI2LjUtMjEuNS00OC00OC00OEw0NzMuNyA5NiAzMzcuOCA1LjR6TTk2IDE5MmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2em0wIDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2ek0zMjAgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMCAwLTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNyb3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEyNVwiLCBcIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE2MCA2NGwwIDY0IDE3OC43IDBMMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzJMMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDAgMC02NC0xNzguNyAwTDM4NCAxNzMuMyAzODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6XCJdXG59O1xuY29uc3QgZmFBbmdsZXNEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy1kb3duJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJhbmdsZS1kb3VibGUtZG93blwiXSwgXCJmMTAzXCIsIFwiTTI0Ni42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMjQgNDAyLjcgMzYxLjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjI0IDIxMC43IDM2MS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pcIl1cbn07XG5jb25zdCBmYUFuZ2xlRG91YmxlRG93biA9IGZhQW5nbGVzRG93bjtcbmNvbnN0IGZhVXNlcnNSZWN0YW5nbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtcmVjdGFuZ2xlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTk0XCIsIFwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw0NDggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMkw2NCA5NnptMTU5LjggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNOTYgMzA5LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdsNTYuMSAwYzgtMzQuMSAzMi44LTYxLjcgNjUuMi03My42Yy03LjUtNC4xLTE2LjItNi40LTI1LjMtNi40bC02OS4zIDBDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zek00NjEuMiAzMzZsNTYuMSAwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zbC02OS4zIDBjLTkuMiAwLTE3LjggMi4zLTI1LjMgNi40YzMyLjQgMTEuOSA1Ny4yIDM5LjUgNjUuMiA3My42ek0zNzIgMjg5Yy0zLjktLjctNy45LTEtMTItMWwtODAgMGMtNC4xIDAtOC4xIC4zLTEyIDFjLTI2IDQuNC00Ny4zIDIyLjctNTUuOSA0N2MtMi43IDcuNS00LjEgMTUuNi00LjEgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC04LjQtMS40LTE2LjUtNC4xLTI0Yy04LjYtMjQuMy0yOS45LTQyLjYtNTUuOS00N3pNNTEyIDE3NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlUm9vZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtcm9vZicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzN1wiLCBcIk0zMzUuNSA0bDI4OCAxNjBjMTUuNCA4LjYgMjEgMjguMSAxMi40IDQzLjVzLTI4LjEgMjEtNDMuNSAxMi40TDMyMCA2OC42IDQ3LjUgMjIwYy0xNS40IDguNi0zNC45IDMtNDMuNS0xMi40cy0zLTM0LjkgMTIuNC00My41TDMwNC41IDRjOS43LTUuNCAyMS40LTUuNCAzMS4xIDB6TTMyMCAxNjBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek0xNDQgMjU2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzEyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIyNi45IDQ5MS40TDIwMCA0NDEuNWwwIDM4LjVjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzguNUw2MS4xIDQ5MS40Yy02LjMgMTEuNy0yMC44IDE2LTMyLjUgOS44cy0xNi0yMC44LTkuOC0zMi41bDM3LjktNzAuM2MxNS4zLTI4LjUgNDUuMS00Ni4zIDc3LjUtNDYuM2wxOS41IDBjMTYuMyAwIDMxLjkgNC41IDQ1LjQgMTIuNmwzMy42LTYyLjNjMTUuMy0yOC41IDQ1LjEtNDYuMyA3Ny41LTQ2LjNsMTkuNSAwYzMyLjQgMCA2Mi4xIDE3LjggNzcuNSA0Ni4zbDMzLjYgNjIuM2MxMy41LTguMSAyOS4xLTEyLjYgNDUuNC0xMi42bDE5LjUgMGMzMi40IDAgNjIuMSAxNy44IDc3LjUgNDYuM2wzNy45IDcwLjNjNi4zIDExLjcgMS45IDI2LjItOS44IDMyLjVzLTI2LjIgMS45LTMyLjUtOS44TDU1MiA0NDEuNWwwIDM4LjVjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzguNS0yNi45IDQ5LjljLTYuMyAxMS43LTIwLjggMTYtMzIuNSA5LjhzLTE2LTIwLjgtOS44LTMyLjVsMzYuMy02Ny41Yy0xLjctMS43LTMuMi0zLjYtNC4zLTUuOEwzNzYgMzQ1LjVsMCA1NC41YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU0LjUtMjYuOSA0OS45Yy0xLjIgMi4yLTIuNiA0LjEtNC4zIDUuOGwzNi4zIDY3LjVjNi4zIDExLjcgMS45IDI2LjItOS44IDMyLjVzLTI2LjIgMS45LTMyLjUtOS44elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzNFwiLCBcIk0zNjAgNzJhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHpNMTQ0IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTQ5NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek0yMDAgMzEzLjVsMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzYuMy02Ny41YzEuNy0xLjcgMy4yLTMuNiA0LjMtNS44TDI2NCAyMTcuNWwwIDU0LjVjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTU0LjUgMjYuOSA0OS45YzEuMiAyLjIgMi42IDQuMSA0LjMgNS44bC0zNi4zIDY3LjVjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDQ0MCAzMTMuNWwwIDM4LjVjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM4LjUgMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0xNi4zIDAtMzEuOSA0LjUtNDUuNCAxMi42bC0zMy42LTYyLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zbC0xOS41IDBjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zbC0zMy42IDYyLjNjLTEzLjUtOC4xLTI5LjEtMTIuNi00NS40LTEyLjZsLTE5LjUgMGMtMzIuNCAwLTYyLjEgMTcuOC03Ny41IDQ2LjNMMTguOSAzNDAuNmMtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMODggMzEzLjUgODggMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC41elwiXVxufTtcbmNvbnN0IGZhQmVlck11Z0VtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZXItbXVnLWVtcHR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJiZWVyXCJdLCBcImYwZmNcIiwgXCJNMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA1MS4yIDBjNDIuNCAwIDc2LjggMzQuNCA3Ni44IDc2LjhsMCAxMDIuMWMwIDMwLjQtMTcuOSA1Ny45LTQ1LjYgNzAuMkwzODQgMzgxLjdsMCAzNC4zYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTM4NCAzMTEuNmw1Ni40LTI1LjFjNC42LTIuMSA3LjYtNi42IDcuNi0xMS43bDAtMTAyLjFjMC03LjEtNS43LTEyLjgtMTIuOC0xMi44TDM4NCAxNjBsMCAxNTEuNnpNMTYwIDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDIyNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjI0em02NCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMjR6bTY0IDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIyNHpcIl1cbn07XG5jb25zdCBmYUJlZXIgPSBmYUJlZXJNdWdFbXB0eTtcbmNvbnN0IGZhRGlhZ3JhbVByZWRlY2Vzc29yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYWdyYW0tcHJlZGVjZXNzb3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0NzdcIiwgXCJNNDQ4IDQxNmwwLTY0TDY0IDM1MmwwIDY0IDM4NCAwem0wIDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxNDQgMCAxNiAwIDE0NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYgMzguMSAwYzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMNDMzIDIzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzI5IDE2OWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MWwzOC4xIDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTgwIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLWxvbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxvbmctYXJyb3ctdXBcIl0sIFwiZjE3NlwiLCBcIk0yMTQuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNzAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYUxvbmdBcnJvd1VwID0gZmFBcnJvd1VwTG9uZztcbmNvbnN0IGZhRmlyZUZsYW1lU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtZmxhbWUtc2ltcGxlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJidXJuXCJdLCBcImY0NmFcIiwgXCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42QzAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41YzAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6XCJdXG59O1xuY29uc3QgZmFCdXJuID0gZmFGaXJlRmxhbWVTaW1wbGU7XG5jb25zdCBmYVBlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjk0ODUsIFwibWFsZVwiXSwgXCJmMTgzXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNTguMyA5N2M5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOUwyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwelwiXVxufTtcbmNvbnN0IGZhTWFsZSA9IGZhUGVyc29uO1xuY29uc3QgZmFMYXB0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MTg3XSwgXCJmMTA5XCIsIFwiTTEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAyNTYgNjQgMCAwLTI1NiAzODQgMCAwIDI1NiA2NCAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMnpNMTkuMiAzODRDOC42IDM4NCAwIDM5Mi42IDAgNDAzLjJDMCA0NDUuNiAzNC40IDQ4MCA3Ni44IDQ4MGw0ODYuNCAwYzQyLjQgMCA3Ni44LTM0LjQgNzYuOC03Ni44YzAtMTAuNi04LjYtMTkuMi0xOS4yLTE5LjJMMTkuMiAzODR6XCJdXG59O1xuY29uc3QgZmFGaWxlQ3N2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY3N2JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmRkXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTQ0LTIwOCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE0NC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0zODQgNjRsLTEyOCAwTDI1NiAwIDM4NCAxMjh6TTIwMCAzNTJsMTYgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04YzAtNC40LTMuNi04LTgtOGwtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgODBjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtOGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC04MGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTMzLjEgMGwzNC45IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTM0LjkgMGMtNy4yIDAtMTMuMSA1LjktMTMuMSAxMy4xYzAgNS4yIDMgOS45IDcuOCAxMmwzNy40IDE2LjZjMTYuMyA3LjIgMjYuOCAyMy40IDI2LjggNDEuMmMwIDI0LjktMjAuMiA0NS4xLTQ1LjEgNDUuMUwzMDQgNTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQyLjkgMGM3LjIgMCAxMy4xLTUuOSAxMy4xLTEzLjFjMC01LjItMy05LjktNy44LTEybC0zNy40LTE2LjZjLTE2LjMtNy4yLTI2LjgtMjMuNC0yNi44LTQxLjJjMC0yNC45IDIwLjItNDUuMSA0NS4xLTQ1LjF6bTk4LjkgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMS42YzAgMjMgNS41IDQ1LjYgMTYgNjZjMTAuNS0yMC4zIDE2LTQyLjkgMTYtNjZsMC0zMS42YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMS42YzAgMzQuNy0xMC4zIDY4LjctMjkuNiA5Ny42bC01LjEgNy43Yy0zIDQuNS04IDcuMS0xMy4zIDcuMXMtMTAuMy0yLjctMTMuMy03LjFsLTUuMS03LjdjLTE5LjMtMjguOS0yOS42LTYyLjktMjkuNi05Ny42bDAtMzEuNmMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFNZW5vcmFoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21lbm9yYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2NzZcIiwgXCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDAtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NEw5NiAzODRjLTUzIDAtOTYtNDMtOTYtOTZMMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAwIDMyLTY0IDAgMC0zMiAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMCAzMi02NCAwIDAtMzIgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAwIDMyLTY0IDAgMC0zMiAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMCAzMi02NCAwIDAtMzIgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVRydWNrUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stcGxhbmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OGZcIiwgXCJNMjAwIDBjLTMwLjYgMC01NiA1NC43LTU2IDg2LjFsMCAxMDYuNUw3LjggMjc0LjNDMi45IDI3Ny4yIDAgMjgyLjQgMCAyODhsMCA2NGMwIDUuMSAyLjQgOS44IDYuNCAxMi44czkuMyAzLjkgMTQuMSAyLjVsMTIzLjQtMzcgMCA4MS4yLTUwIDQwYy0zLjggMy02IDcuNi02IDEyLjVsMCAzMmMwIDUuMSAyLjUgMTAgNi42IDEzczkuNSAzLjggMTQuNCAyLjJMMjAwIDQ4MC45IDI5MC40IDUxMWMtMS42LTQuNy0yLjQtOS44LTIuNC0xNWwwLTMyLjZjLTE4LjItMTAuNS0zMC43LTI5LjctMzEuOS01MS44bC0uMS0uMSAwLTMuNSAwLTgyLjVMMjU2IDE4NGwwLTEuMXMwIDAgMCAwbDAtOTYuOUMyNTYgNTQuNyAyMzEuNSAwIDIwMCAwem04OCAxNzZsMCAyMjRjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zbDAgNDIuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgMTYwIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDIuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI1NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OHptNzkuOCA3OC43YzMuMy04LjcgMTEuMi0xNC43IDIwLjUtMTQuN2wxNTEuNCAwYzkuMiAwIDE3LjIgNiAyMC41IDE0LjdMNTc2IDMwNGwtMjI0IDAgMTUuOC00OS4zek01NjggMzUyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzM2IDM3NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbmNvbnN0IGZhUmVjb3JkVmlueWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjb3JkLXZpbnlsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmOGQ5XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDIyNGExMjggMTI4IDAgMSAwIDAtMjU2IDEyOCAxMjggMCAxIDAgMCAyNTZ6bTAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5TdGFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3RhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzMjEsIFwiZ3Jpbi1zdGFyc1wiXSwgXCJmNTg3XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptNDA3LjQgNzUuNWM1LTExLjgtNy0yMi41LTE5LjMtMTguN2MtMzkuNyAxMi4yLTg0LjUgMTktMTMxLjggMTlzLTkyLjEtNi44LTEzMS44LTE5Yy0xMi4zLTMuOC0yNC4zIDYuOS0xOS4zIDE4LjdjMjUgNTkuMSA4My4yIDEwMC41IDE1MS4xIDEwMC41czEyNi4yLTQxLjQgMTUxLjEtMTAwLjV6TTE2MCAxMjBjLTMuMSAwLTUuOSAxLjgtNy4yIDQuNmwtMTYuNiAzNC43LTM4LjEgNWMtMy4xIC40LTUuNiAyLjUtNi42IDUuNXMtLjEgNi4yIDIuMSA4LjNsMjcuOSAyNi41LTcgMzcuOGMtLjYgMyAuNyA2LjEgMy4yIDcuOXM1LjggMiA4LjUgLjZMMTYwIDIzMi41bDMzLjggMTguM2MyLjcgMS41IDYgMS4zIDguNS0uNnMzLjctNC45IDMuMi03LjlsLTctMzcuOEwyMjYuNCAxNzhjMi4yLTIuMSAzLjEtNS4zIDIuMS04LjNzLTMuNS01LjEtNi42LTUuNWwtMzguMS01LTE2LjYtMzQuN2MtMS4zLTIuOC00LjEtNC42LTcuMi00LjZ6bTE5MiAwYy0zLjEgMC01LjkgMS44LTcuMiA0LjZsLTE2LjYgMzQuNy0zOC4xIDVjLTMuMSAuNC01LjYgMi41LTYuNiA1LjVzLS4xIDYuMiAyLjEgOC4zbDI3LjkgMjYuNS03IDM3LjhjLS42IDMgLjcgNi4xIDMuMiA3LjlzNS44IDIgOC41IC42TDM1MiAyMzIuNWwzMy44IDE4LjNjMi43IDEuNSA2IDEuMyA4LjUtLjZzMy43LTQuOSAzLjItNy45bC03LTM3LjhMNDE4LjQgMTc4YzIuMi0yLjEgMy4xLTUuMyAyLjEtOC4zcy0zLjUtNS4xLTYuNi01LjVsLTM4LjEtNS0xNi42LTM0LjdjLTEuMy0yLjgtNC4xLTQuNi03LjItNC42elwiXVxufTtcbmNvbnN0IGZhR3JpblN0YXJzID0gZmFGYWNlR3JpblN0YXJzO1xuY29uc3QgZmFCb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1NWNcIiwgXCJNMTYwIDIwOC41YzAgMjkuMS0xNS42IDUzLjktMzcuMiA2Ny44Yy0xNy4yIDExLjEtMzEuNSAyNi4xLTQxLjcgNDMuN2wyMjEuOCAwYy0xMC4yLTE3LjYtMjQuNS0zMi42LTQxLjctNDMuN2MtMjEuNi0xMy45LTM3LjItMzguNy0zNy4yLTY3LjhMMjI0IDY0bC02NCAwIDAgMTQ0LjV6TTI4OCA2NGwwIDE0NC41YzAgNS43IDMuMSAxMC45IDcuOSAxNGMxMS4yIDcuMiAyMS41IDE1LjUgMzAuOSAyNC44TDM2Ni4xIDIwOGwtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjQgMjQgMjQgMjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNy03LTQzLjMgNDMuM0MzNzQgMzE0LjEgMzg0IDM0Ny45IDM4NCAzODRjMCAzOS40LTExLjkgNzYuMS0zMi4yIDEwNi41Yy05LjYgMTQuNC0yNi41IDIxLjUtNDMuOCAyMS41TDc2LjEgNTEyYy0xNy4zIDAtMzQuMi03LjEtNDMuOC0yMS41QzExLjkgNDYwLjEgMCA0MjMuNCAwIDM4NGMwLTY3LjggMzUuMS0xMjcuMyA4OC4xLTE2MS41YzQuOC0zLjEgNy45LTguMyA3LjktMTRMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwbDE2IDBMMjcyIDBsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVNwYWdoZXR0aU1vbnN0ZXJGbHlpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwYXN0YWZhcmlhbmlzbVwiXSwgXCJmNjdiXCIsIFwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM0MzOTAgOTUuMSAzODQgODAuMiAzODQgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjRjNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNEM1MjcuMyAyNjIuMyA1MzIuNyAyNjQgNTM2IDI2NGMyLjUgMCA0LjMtLjYgNy4xLTMuM2MzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjdjOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuM2MtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjdjLTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuN2MtMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNmMtMy4xIDQtNi42IDguMy0xMC41IDEyLjdjMS40IDQuMyAyLjggOC41IDQgMTIuNWMuOSAzIDEuOCA1LjggMi42IDguNmMzIDkuOCA1LjUgMTguMiA4LjYgMjUuOWMzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNWMyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjNjOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yYzE1LTggMzUuNy0xOC44IDYyLjMtMTguOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMmMtMSAuNi0yLjEgMS4xLTMuMiAxLjdDNTU5LjkgNDE0IDU0MS40IDQyNCA1MjAgNDI0Yy0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yYy0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzZjLTMuNi05LTYuNy0xOS4xLTkuNS0yOC41Yy0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuM2MzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjJjNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNUM0MzMgNDYwLjUgNDQxLjIgNDY0IDQ0OCA0NjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOGMtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzYy04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjljLTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOWMtOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTNDMjM3IDQ5OC41IDIxNy4yIDUxMiAxOTIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjdjOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNWM1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yYy0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuM2MtMi45IDkuNC02IDE5LjUtOS41IDI4LjVjLTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2QzE1My42IDQxNy45IDEzOC40IDQyNCAxMjAgNDI0Yy0yMS40IDAtMzkuOS0xMC01My4xLTE3LjFjMCAwIDAgMCAwIDBjLTEuMS0uNi0yLjItMS4yLTMuMi0xLjdjLTE1LTgtMjYuMy0xMy4yLTM5LjctMTMuMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyNi42IDAgNDcuMyAxMC44IDYyLjMgMTguOGMxNi44IDkgMjUgMTMuMiAzMy43IDEzLjJjNi44IDAgMTAuMi0xLjkgMTIuOC00LjNjMy40LTMuMiA3LTguOCAxMC44LTE4LjVjMy03LjcgNS42LTE2LjEgOC42LTI1LjljLjgtMi43IDEuNy01LjYgMi42LTguNmMxLjItNCAyLjYtOC4yIDQtMTIuNWMtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuN0MxMzYuOSAzMDMuNSAxMjIuNSAzMTIgMTA0IDMxMmMtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuN2MtOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjRjLTIuOC0yLjctNC42LTMuMy03LjEtMy4zYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjdjOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40YzIuOCAyLjcgNC42IDMuMyA3LjEgMy4zYzMuMyAwIDguNy0xLjcgMTkuNC0xMy40YzUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjRjMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjJjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIl1cbn07XG5jb25zdCBmYVBhc3RhZmFyaWFuaXNtID0gZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nO1xuY29uc3QgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRhZlwiLCBcIk0xMzcuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDAyLjcgMTkyIDI4OGwzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTExNC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM4NCAxMDkuMyAzODQgMjI0bC0xOTIgMC02NCAwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDExNC43TDg2LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2ek0xMjggMTkybDY0IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjh6TTQ0OCAzMjBsLTY0IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOHpcIl1cbn07XG5jb25zdCBmYVNwb29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nwb29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzQ4LCA2MTg3MywgXCJ1dGVuc2lsLXNwb29uXCJdLCBcImYyZTVcIiwgXCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44QzIyNCA4MCAzMjAgMCA0MTYgMGM1MyAwIDk2IDQzIDk2IDk2YzAgOTYtODAgMTkyLTE2MC4yIDE5MmMtMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXpcIl1cbn07XG5jb25zdCBmYVV0ZW5zaWxTcG9vbiA9IGZhU3Bvb247XG5jb25zdCBmYUphcldoZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2phci13aGVhdCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTUxN1wiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MHptMTEyIDBsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44QzY0IDE5OCA5MCAyMjQgMTIyLjIgMjI0bDIxLjggMCAzMiAwIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAxNjBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44QzY0IDI5NCA5MCAzMjAgMTIyLjIgMzIwbDIxLjggMCAzMiAwIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAyNTZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOEM2NCAzOTAgOTAgNDE2IDEyMi4yIDQxNmwyMS44IDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzIgMjEuOCAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMmMwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDM1MmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3pcIl1cbn07XG5jb25zdCBmYUVudmVsb3Blc0J1bGsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGVzLWJ1bGsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIm1haWwtYnVsa1wiXSwgXCJmNjc0XCIsIFwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMmwwIDE5MiA5NiAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjI0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMHpNMjU2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4IDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMjAgMHptMjQwIDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxM0wxODcuMSA0MTUuOWMxLjQgMSAzLjEgMS42IDQuOSAxLjZzMy41LS42IDQuOS0xLjZMMzUyIDMwMWwwLTEzYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDI1NnptMjg4IDg0LjhMMjE2IDQ0MS42Yy02LjkgNS4xLTE1LjMgNy45LTI0IDcuOXMtMTctMi44LTI0LTcuOUwzMiAzNDAuOCAzMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMzkuMnpcIl1cbn07XG5jb25zdCBmYU1haWxCdWxrID0gZmFFbnZlbG9wZXNCdWxrO1xuY29uc3QgZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZWJcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMzg0IDY0bC0xMjggMEwyNTYgMCAzODQgMTI4em00OCA5NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMC0xOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVIID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1oJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTQwNSwgXCJob3NwaXRhbC1zeW1ib2xcIl0sIFwiZjQ3ZVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY4IDE1MmwwIDEwNCAwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgwLTEyOCAwIDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwIDEyOCAwIDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUhvc3BpdGFsU3ltYm9sID0gZmFDaXJjbGVIO1xuY29uc3QgZmFQYWdlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWdlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyM10sIFwiZjgxNVwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODAgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6bTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFBZGRyZXNzQm9vayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhZGRyZXNzLWJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjEzOCwgXCJjb250YWN0LWJvb2tcIl0sIFwiZjJiOVwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTIwOCAyODhsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0elwiXVxufTtcbmNvbnN0IGZhQ29udGFjdEJvb2sgPSBmYUFkZHJlc3NCb29rO1xuY29uc3QgZmFTdHJpa2V0aHJvdWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cmlrZXRocm91Z2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwY2NcIiwgXCJNMTYxLjMgMTQ0YzMuMi0xNy4yIDE0LTMwLjEgMzMuNy0zOC42YzIxLjEtOSA1MS44LTEyLjMgODguNi02LjVjMTEuOSAxLjkgNDguOCA5LjEgNjAuMSAxMmMxNy4xIDQuNSAzNC42LTUuNiAzOS4yLTIyLjdzLTUuNi0zNC42LTIyLjctMzkuMmMtMTQuMy0zLjgtNTMuNi0xMS40LTY2LjYtMTMuNGMtNDQuNy03LTg4LjMtNC4yLTEyMy43IDEwLjljLTM2LjUgMTUuNi02NC40IDQ0LjgtNzEuOCA4Ny4zYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjggMjMuOSAuNSA0NS42IDEwLjEgNjQuNmM0LjUgOSAxMC4yIDE2LjkgMTYuNyAyMy45TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjA5LjkgMC0uNC0uMS0xLjEtLjNjLTM2LTEwLjgtNjUuMi0xOS42LTg1LjItMzMuMWMtOS4zLTYuMy0xNS0xMi42LTE4LjItMTkuMWMtMy4xLTYuMS01LjItMTQuNi0zLjgtMjcuNHpNMzQ4LjkgMzM3LjJjMi43IDYuNSA0LjQgMTUuOCAxLjkgMzAuMWMtMyAxNy42LTEzLjggMzAuOC0zMy45IDM5LjRjLTIxLjEgOS01MS43IDEyLjMtODguNSA2LjVjLTE4LTIuOS00OS4xLTEzLjUtNzQuNC0yMi4xYy01LjYtMS45LTExLTMuNy0xNS45LTUuNGMtMTYuOC01LjYtMzQuOSAzLjUtNDAuNSAyMC4zczMuNSAzNC45IDIwLjMgNDAuNWMzLjYgMS4yIDcuOSAyLjcgMTIuNyA0LjNjMCAwIDAgMCAwIDBzMCAwIDAgMGMyNC45IDguNSA2My42IDIxLjcgODcuNiAyNS42YzAgMCAwIDAgMCAwbC4yIDBjNDQuNyA3IDg4LjMgNC4yIDEyMy43LTEwLjljMzYuNS0xNS42IDY0LjQtNDQuOCA3MS44LTg3LjNjMy42LTIxIDIuNy00MC40LTMuMS01OC4xbC03NS43IDBjNyA1LjYgMTEuNCAxMS4yIDEzLjkgMTcuMnpcIl1cbn07XG5jb25zdCBmYUsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaycsXG4gIGljb246IFszMjAsIDUxMiwgWzEwN10sIFwiNGJcIiwgXCJNMzExIDg2LjNjMTIuMy0xMi43IDEyLTMyLjktLjctNDUuMnMtMzIuOS0xMi00NS4yIC43bC0xNTUuMiAxNjBMNjQgMjQ5IDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgMzI4IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMDcgNjQuNy02Ni43IDEzMyAxOTJjMTAuMSAxNC41IDMwIDE4LjEgNDQuNSA4LjFzMTguMS0zMCA4LjEtNDQuNUwxNzQuMSAyMjcuNCAzMTEgODYuM3pcIl1cbn07XG5jb25zdCBmYUxhbmRtYXJrRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kbWFyay1mbGFnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTFjXCIsIFwiTTI3MiAwbDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC04MCAwIDAgMzIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNDggMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwIDAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwek02NCAyMjRsNjQgMCAwIDE5MiA0MCAwIDAtMTkyIDY0IDAgMCAxOTIgNDggMCAwLTE5MiA2NCAwIDAgMTkyIDQwIDAgMC0xOTIgNjQgMCAwIDE5Ni4zYy42IC4zIDEuMiAuNyAxLjggMS4xbDQ4IDMyYzExLjcgNy44IDE3IDIyLjQgMTIuOSAzNS45UzQ5NC4xIDUxMiA0ODAgNTEyTDMyIDUxMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFMNjQgMjI0elwiXVxufTtcbmNvbnN0IGZhUGVuY2lsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlbmNpbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5OTksIDYxNTA0LCBcInBlbmNpbC1hbHRcIl0sIFwiZjMwM1wiLCBcIk00MTAuMyAyMzFsMTEuMy0xMS4zLTMzLjktMzMuOS02Mi4xLTYyLjFMMjkxLjcgODkuOGwtMTEuMyAxMS4zLTIyLjYgMjIuNkw1OC42IDMyMi45Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODAuN2MtMi41IDguNC0uMiAxNy41IDYuMSAyMy43czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMMzg3LjcgMjUzLjcgNDEwLjMgMjMxek0xNjAgMzk5LjRsLTkuMSAyMi43Yy00IDMuMS04LjUgNS40LTEzLjMgNi45TDU5LjQgNDUybDIzLTc4LjFjMS40LTQuOSAzLjgtOS40IDYuOS0xMy4zbDIyLjctOS4xIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTM2Mi43IDE4LjdMMzQ4LjMgMzMuMiAzMjUuNyA1NS44IDMxNC4zIDY3LjFsMzMuOSAzMy45IDYyLjEgNjIuMSAzMy45IDMzLjkgMTEuMy0xMS4zIDIyLjYtMjIuNiAxNC41LTE0LjVjMjUtMjUgMjUtNjUuNSAwLTkwLjVMNDUzLjMgMTguN2MtMjUtMjUtNjUuNS0yNS05MC41IDB6bS00Ny40IDE2OGwtMTQ0IDE0NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwxNDQtMTQ0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG5jb25zdCBmYVBlbmNpbEFsdCA9IGZhUGVuY2lsO1xuY29uc3QgZmFCYWNrd2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTRdLCBcImYwNGFcIiwgXCJNNDU5LjUgNDQwLjZjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOWwwLTMyMGMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRMMjg4IDIxNC4zbDAgNDEuNyAwIDQxLjdMNDU5LjUgNDQwLjZ6TTI1NiAzNTJsMC05NiAwLTEyOCAwLTMyYzAtMTIuNC03LjItMjMuNy0xOC40LTI5cy0yNC41LTMuNi0zNC4xIDQuNGwtMTkyIDE2MEM0LjIgMjM3LjUgMCAyNDYuNSAwIDI1NnM0LjIgMTguNSAxMS41IDI0LjZsMTkyIDE2MGM5LjUgNy45IDIyLjggOS43IDM0LjEgNC40czE4LjQtMTYuNiAxOC40LTI5bDAtNjR6XCJdXG59O1xuY29uc3QgZmFDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMGRhXCIsIFwiTTI0Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNmwwIDI1NmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDEyOC0xMjh6XCJdXG59O1xuY29uc3QgZmFDb21tZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODQ5MCwgNjE2NzBdLCBcImYwODZcIiwgXCJNMjA4IDM1MmMxMTQuOSAwIDIwOC03OC44IDIwOC0xNzZTMzIyLjkgMCAyMDggMFMwIDc4LjggMCAxNzZjMCAzOC42IDE0LjcgNzQuMyAzOS42IDEwMy40Yy0zLjUgOS40LTguNyAxNy43LTE0LjIgMjQuN2MtNC44IDYuMi05LjcgMTEtMTMuMyAxNC4zYy0xLjggMS42LTMuMyAyLjktNC4zIDMuN2MtLjUgLjQtLjkgLjctMS4xIC44bC0uMiAuMnMwIDAgMCAwczAgMCAwIDBDMSAzMjcuMi0xLjQgMzM0LjQgLjggMzQwLjlTOS4xIDM1MiAxNiAzNTJjMjEuOCAwIDQzLjgtNS42IDYyLjEtMTIuNWM5LjItMy41IDE3LjgtNy40IDI1LjItMTEuNEMxMzQuMSAzNDMuMyAxNjkuOCAzNTIgMjA4IDM1MnpNNDQ4IDE3NmMwIDExMi4zLTk5LjEgMTk2LjktMjE2LjUgMjA3QzI1NS44IDQ1Ny40IDMzNi40IDUxMiA0MzIgNTEyYzM4LjIgMCA3My45LTguNyAxMDQuNy0yMy45YzcuNSA0IDE2IDcuOSAyNS4yIDExLjRjMTguMyA2LjkgNDAuMyAxMi41IDYyLjEgMTIuNWM2LjkgMCAxMy4xLTQuNSAxNS4yLTExLjFjMi4xLTYuNi0uMi0xMy44LTUuOC0xNy45YzAgMCAwIDAgMCAwczAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNi0uNC0xLjEtLjhjLTEtLjgtMi41LTItNC4zLTMuN2MtMy42LTMuMy04LjUtOC4xLTEzLjMtMTQuM2MtNS41LTctMTAuNy0xNS40LTE0LjItMjQuN2MyNC45LTI5IDM5LjYtNjQuNyAzOS42LTEwMy40YzAtOTIuOC04NC45LTE2OC45LTE5Mi42LTE3NS41Yy40IDUuMSAuNiAxMC4zIC42IDE1LjV6XCJdXG59O1xuY29uc3QgZmFQYXN0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXN0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZmlsZS1jbGlwYm9hcmRcIl0sIFwiZjBlYVwiLCBcIk0xNjAgMGMtMjMuNyAwLTQ0LjQgMTIuOS01NS40IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MDBjMCAyNi41IDIxLjUgNDggNDggNDhsMTQ0IDAgMC0yNzJjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01Ni42IDBDMjA0LjQgMTIuOSAxODMuNyAwIDE2MCAwek0yNzIgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDI3MiAwIDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIwLjFjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtNjcuOS02Ny45Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMjAgMTI4bC00OCAwek0xNjAgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhRmlsZUNsaXBib2FyZCA9IGZhUGFzdGU7XG5jb25zdCBmYUNvZGVQdWxsUmVxdWVzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLXB1bGwtcmVxdWVzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzY1wiLCBcIk0zMDUuOCAyLjFDMzE0LjQgNS45IDMyMCAxNC41IDMyMCAyNGwwIDQwIDE2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxNjYuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNDAwIDE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDQwYzAgOS41LTUuNiAxOC4xLTE0LjIgMjEuOXMtMTguOCAyLjMtMjUuOC00LjFsLTgwLTcyYy01LjEtNC42LTcuOS0xMS03LjktMTcuOHMyLjktMTMuMyA3LjktMTcuOGw4MC03MmM3LTYuMyAxNy4yLTcuOSAyNS44LTQuMXpNMTA0IDgwQTI0IDI0IDAgMSAwIDU2IDgwYTI0IDI0IDAgMSAwIDQ4IDB6bTggNzMuM2wwIDIwNS4zYzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjNjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTIwNS4zQzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zek0xMDQgNDMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTMyOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFDbGlwYm9hcmRMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC1saXN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDZkXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek03MiAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTA0LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNzIgMzY4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTg4IDBjMC04LjggNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tSYW1wQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLXJhbXAtYm94JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ0cnVjay1sb2FkaW5nXCJdLCBcImY0ZGVcIiwgXCJNNjQwIDBsMCA0MDBjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTYxIDAtMTEwLjUtNDguNy0xMTItMTA5LjNMNDguNCA1MDIuOWMtMTcuMSA0LjYtMzQuNi01LjQtMzkuMy0yMi41czUuNC0zNC42IDIyLjUtMzkuM0wzNTIgMzUzLjggMzUyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDY0MCAwek01NzYgNDAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTIzLjEgMjA3LjdjLTQuNi0xNy4xIDUuNi0zNC42IDIyLjYtMzkuMmw0Ni40LTEyLjQgMjAuNyA3Ny4zYzIuMyA4LjUgMTEuMSAxMy42IDE5LjYgMTEuM2wzMC45LTguM2M4LjUtMi4zIDEzLjYtMTEuMSAxMS4zLTE5LjZsLTIwLjctNzcuMyA0Ni40LTEyLjRjMTcuMS00LjYgMzQuNiA1LjYgMzkuMiAyMi42bDQxLjQgMTU0LjVjNC42IDE3LjEtNS42IDM0LjYtMjIuNiAzOS4yTDEwMy43IDM4NC45Yy0xNy4xIDQuNi0zNC42LTUuNi0zOS4yLTIyLjZMMjMuMSAyMDcuN3pcIl1cbn07XG5jb25zdCBmYVRydWNrTG9hZGluZyA9IGZhVHJ1Y2tSYW1wQm94O1xuY29uc3QgZmFVc2VyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRmY1wiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek02MjUgMTc3TDQ5NyAzMDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDU5MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhVmlhbFZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwtdmlydXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1OTdcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDAgMjg4YzAgNTMgNDMgOTYgOTYgOTZjMjguNiAwIDU0LjItMTIuNSA3MS44LTMyLjNjLjEtMTQuMiA1LjYtMjguMyAxNi40LTM5LjFjLjItLjIgLjEtLjYtLjItLjZjLTMwLjkgMC01Ni0yNS4xLTU2LTU2czI1LjEtNTYgNTYtNTZjLjMgMCAuNC0uNCAuMi0uNmMtMjEuOS0yMS45LTIxLjktNTcuMyAwLTc5LjJjMi40LTIuNCA1LTQuNiA3LjgtNi41TDIyNCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMEw5NiAzMiAzMiAzMnpNOTYgMTkybDAtOTYgNjQgMCAwIDk2LTY0IDB6TTIxNiAzNzZjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMyMC40LTIwLjQgNTUuMi01LjkgNTUuMiAyMi45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yOC44IDM0LjgtNDMuMiA1NS4yLTIyLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45QzQ0NC44IDQxMC44IDQ1OS4yIDM3NiA0ODggMzc2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yOC44IDAtNDMuMi0zNC44LTIyLjktNTUuMmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwQzQxMC44IDI1OS4yIDM3NiAyNDQuOCAzNzYgMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMjguOC0zNC44IDQzLjItNTUuMiAyMi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTQwIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFTaGVldFBsYXN0aWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hlZXQtcGxhc3RpYycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTU3MVwiLCBcIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMCAwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHpNMTcxLjMgNzUuM2wtOTYgOTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsOTYtOTZjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42em05NiAzMmwtMTYwIDE2MGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwxNjAtMTYwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMzg0IDM4NGwtMTI4IDAgMCAxMjhMMzg0IDM4NHpcIl1cbn07XG5jb25zdCBmYUJsb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxvZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4MVwiLCBcIk0xOTIgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyQzUxMiAxMjguOSAzODMuMSAwIDIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMTA2LTg2LTE5Mi0xOTItMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNOTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgMTE3LjUgMCAxNDRMMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NGwtMTYgMCAwIDk2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0yMjR6XCJdXG59O1xuY29uc3QgZmFVc2VyTmluamEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1uaW5qYScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTM5OV0sIFwiZjUwNFwiLCBcIk0yMjQgMjU2Yy01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuM2MtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjhjLTE1LjggMTUuOC0zOC44IDIwLjctNTMuNiAyMi4xYy04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44YzEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNmM1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjRjLTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNEMzNy40IDgyLjcgMzIuNiA1OS43IDMxLjEgNDQuOWMtLjgtOC4xIDUuNy0xNC42IDEzLjgtMTMuOGMxNC43IDEuNCAzNy44IDYuMyA1My42IDIyLjFjNC44IDQuOCA4LjcgMTAuNCAxMS43IDE2LjFDMTMxLjQgMjguMiAxNzQuNCAwIDIyNCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4cy01Ny4zIDEyOC0xMjggMTI4ek0wIDQ4Mi4zQzAgMzk5LjUgNTYuNCAzMzAgMTMyLjggMzA5LjljNi0xLjYgMTIuMiAuOSAxNS45IDUuOGw2Mi41IDgzLjNjNi40IDguNSAxOS4yIDguNSAyNS42IDBsNjIuNS04My4zYzMuNy00LjkgOS45LTcuNCAxNS45LTUuOEMzOTEuNiAzMzAgNDQ4IDM5OS41IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkwxNjAgOTZ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25BcnJvd1VwRnJvbUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWFycm93LXVwLWZyb20tbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzOVwiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzNTJsMC05NiAxNiAwIDAgOTYtMTYgMHptLTY0IDBsLTg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTIwIDAgODAgMCAzNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzQ0IDAgMC0xOTEuMSAyOC42IDQ3LjVjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTU4LjMtOTdjLTE3LjQtMjguOS00OC42LTQ2LjYtODIuMy00Ni42bC0yOS43IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45TDEyMCAyNTYuOSAxMjAgNDQ4ek01OTguNiAxMjEuNGwtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0NjQgMTQxLjMgNDY0IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFTY3JvbGxUb3JhaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3JvbGwtdG9yYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInRvcmFoXCJdLCBcImY2YTBcIiwgXCJNOTYgNDgwTDk2IDMyQzk2IDE0LjMgNzQuNSAwIDQ4IDBTMCAxNC4zIDAgMzJMMCA0ODBjMCAxNy43IDIxLjUgMzIgNDggMzJzNDgtMTQuMyA0OC0zMnpNNTEyIDMyTDEyOCAzMmwwIDQ0OCAzODQgMCAwLTQ0OHpNNTkyIDBjLTI2LjUgMC00OCAxNC4zLTQ4IDMybDAgNDQ4YzAgMTcuNyAyMS41IDMyIDQ4IDMyczQ4LTE0LjMgNDgtMzJsMC00NDhjMC0xNy43LTIxLjUtMzItNDgtMzJ6TTE5NiAzMTMuN2MwLTMuMiAuOS02LjQgMi41LTkuMkwyMjYuNyAyNTZsLTI4LjMtNDguNWMtMS42LTIuOC0yLjUtNi0yLjUtOS4yYzAtMTAuMSA4LjItMTguMyAxOC4zLTE4LjNsNTYuNyAwIDMxLjQtNTMuOWMzLjYtNi4zIDEwLjMtMTAuMSAxNy42LTEwLjFzMTMuOSAzLjggMTcuNiAxMC4xTDM2OSAxODBsNTYuNyAwYzEwLjEgMCAxOC4zIDguMiAxOC4zIDE4LjNjMCAzLjItLjkgNi40LTIuNSA5LjJMNDEzLjMgMjU2bDI4LjMgNDguNWMxLjYgMi44IDIuNSA2IDIuNSA5LjJjMCAxMC4xLTguMiAxOC4zLTE4LjMgMTguM0wzNjkgMzMybC0zMS40IDUzLjljLTMuNiA2LjMtMTAuMyAxMC4xLTE3LjYgMTAuMXMtMTMuOS0zLjgtMTcuNi0xMC4xTDI3MSAzMzJsLTU2LjcgMGMtMTAuMSAwLTE4LjMtOC4yLTE4LjMtMTguM3ptMTI0IDU0LjdMMzQxLjIgMzMybC00Mi40IDBMMzIwIDM2OC40ek0yNTQuNSAyNTZsMzAuMyA1MiA3MC40IDAgMzAuMy01Mi0zMC4zLTUyLTcwLjQgMC0zMC4zIDUyem0xNDQuOSAyMy44TDM4MyAzMDhsMzIuOCAwLTE2LjQtMjguMnpNNDE1LjggMjA0TDM4MyAyMDRsMTYuNCAyOC4yTDQxNS44IDIwNHpNMzIwIDE0My42TDI5OC44IDE4MGw0Mi40IDBMMzIwIDE0My42ek0yMjQuMiAyMDRsMTYuNCAyOC4yTDI1NyAyMDRsLTMyLjggMHpNMjU3IDMwOGwtMTYuNC0yOC4yTDIyNC4yIDMwOGwzMi44IDB6XCJdXG59O1xuY29uc3QgZmFUb3JhaCA9IGZhU2Nyb2xsVG9yYWg7XG5jb25zdCBmYUJyb29tQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicm9vbS1iYWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJxdWlkZGl0Y2hcIiwgXCJxdWlkZGl0Y2gtYnJvb20tYmFsbFwiXSwgXCJmNDU4XCIsIFwiTTU2Ni42IDkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTkyIDE5MiAzNC43IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDBMMjU2IDIxMS43bDAtMjkuMWMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmM2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjcgMzQuNyAxOTItMTkyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwem0tMzQ0IDIyNS41TDM0MS4xIDM1My40YzMuNyA0Mi43LTExLjcgODUuMi00Mi4zIDExNS44QzI3MS40IDQ5Ni42IDIzNC4yIDUxMiAxOTUuNSA1MTJMMjIuMSA1MTJDOS45IDUxMiAwIDUwMi4xIDAgNDg5LjljMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjJjMC0zMS41IDEyLjUtNjEuNyAzNC44LTg0bDgtOGMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjN6TTQ2NCAzNTJhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFRdWlkZGl0Y2ggPSBmYUJyb29tQmFsbDtcbmNvbnN0IGZhUXVpZGRpdGNoQnJvb21CYWxsID0gZmFCcm9vbUJhbGw7XG5jb25zdCBmYVRvZ2dsZU9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2dnbGUtb2ZmJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA0XCIsIFwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjhsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDM1MmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnpcIl1cbn07XG5jb25zdCBmYUJveEFyY2hpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LWFyY2hpdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFyY2hpdmVcIl0sIFwiZjE4N1wiLCBcIk0zMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptMCAxMjhsNDQ4IDAgMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NnptMTI4IDgwYzAgOC44IDcuMiAxNiAxNiAxNmwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUFyY2hpdmUgPSBmYUJveEFyY2hpdmU7XG5jb25zdCBmYVBlcnNvbkRyb3duaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcm93bmluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0NVwiLCBcIk0xOTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMi4yYzAgNTQuMSAyMy41IDEwNCA2Mi4yIDEzOC4zbC0yMSAxNDYuN2M3LjggMi4xIDE1LjUgMy4zIDIyLjggMy4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzEyLjQgOC41IDI2LjEgMTQuOCAzOS43IDE4bDE3LjctOTcuNmMxMC43LTEuMiAyMS4zLTMuMSAzMS45LTUuNWwxMDUtMjMuOWMxNy4yLTMuOSAyOC0yMS4xIDI0LjEtMzguM3MtMjEuMS0yOC0zOC4zLTI0LjFMNDAwIDIxNi42Yy00MSA5LjMtODMuNyA3LjUtMTIzLjctNS4yYy01MC4yLTE2LTg0LjMtNjIuNi04NC4zLTExNS4zTDE5MiA2NHpNMzIwIDE5MmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzA2LjUgMzg5LjljLTExLjEtNy45LTI1LjktNy45LTM3IDBDMjQ3IDQwNS40IDIxOS41IDQxNiAxOTIgNDE2Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWMwIDAgMCAwIDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA0NjkuNyAxNTkgNDgwIDE5MiA0ODBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdjMCAwIDAgMCAwIDBDNDM5LjQgNDA1LjIgNDEwLjkgNDE2IDM4NCA0MTZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMXpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bjkxID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tOS0xJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtZGVzY1wiLCBcInNvcnQtbnVtZXJpYy1kb3duLWFsdFwiXSwgXCJmODg2XCIsIFwiTTE2MCA0ODBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNGw4OC05NmMxMS45LTEzIDExLjEtMzMuMy0yLTQ1LjJzLTMzLjMtMTEuMS00NS4yIDJMMTkyIDM2NS43IDE5MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwMS43TDk1LjYgMzMwLjRjLTExLjktMTMtMzIuMi0xMy45LTQ1LjItMnMtMTMuOSAzMi4yLTIgNDUuMmw4OCA5NkMxNDIuNSA0NzYuMiAxNTEgNDgwIDE2MCA0ODB6TTQ1MC43IDI5NGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDggMCA0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTQxOC4zIDkxYTMyIDMyIDAgMSAxIDI3LjQgNTcuOUEzMiAzMiAwIDEgMSA0MTguMyA5MXpNNDA1LjEgMjAzLjhsLTYuOCA5LjJjLTEwLjUgMTQuMi03LjUgMzQuMiA2LjcgNDQuOHMzNC4yIDcuNSA0NC44LTYuN2w0OC44LTY1LjhjMTQtMTguOSAyMS41LTQxLjcgMjEuNS02NS4yYzAtNDguNi0zOS40LTg4LTg4LTg4cy04OCAzOS40LTg4IDg4YzAgMzkuMiAyNS42IDcyLjQgNjEuMSA4My44elwiXVxufTtcbmNvbnN0IGZhU29ydE51bWVyaWNEZXNjID0gZmFBcnJvd0Rvd245MTtcbmNvbnN0IGZhU29ydE51bWVyaWNEb3duQWx0ID0gZmFBcnJvd0Rvd245MTtcbmNvbnN0IGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDEsIFwiZ3Jpbi10b25ndWUtc3F1aW50XCJdLCBcImY1OGFcIiwgXCJNMCAyNTZDMCAzNjguOSA3My4xIDQ2NC43IDE3NC41IDQ5OC44QzE2NS4zIDQ4NCAxNjAgNDY2LjYgMTYwIDQ0OGwwLTQ3LjNjLTI0LTE3LjUtNDMuMS00MS40LTU0LjgtNjkuMmMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTljMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43Yy0xMS44IDI4LTMxLjEgNTItNTUuNCA2OS42bDAgNDYuOWMwIDE4LjYtNS4zIDM2LTE0LjUgNTAuOEM0MzguOSA0NjQuNyA1MTIgMzY4LjkgNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2ek0xMTYgMTQxLjFjMC05IDkuNi0xNC43IDE3LjUtMTAuNWw4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZ6bTI2Mi41LTEwLjVjNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjVjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3Ljl6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjljLTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDBjLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluVG9uZ3VlU3F1aW50ID0gZmFGYWNlR3JpblRvbmd1ZVNxdWludDtcbmNvbnN0IGZhU3ByYXlDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3ByYXktY2FuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJkXCIsIFwiTTEyOCAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5Nkw5NiAxMjhsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNTZ6bTI0MCA4MEE4MCA4MCAwIDEgMCA4MCAzMzZhODAgODAgMCAxIDAgMTYwIDB6TTI1NiA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zODQgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTQ0OCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzg0IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFUcnVja01vbnN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW9uc3RlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYzYlwiLCBcIk0yODggNjRsMCA2NCAxMjggMEwzNjggNjRsLTgwIDB6TTQxOS4yIDI1LjZMNDk2IDEyOGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTI5LjItMzguOS03NS43LTY0LTEyOC02NHMtOTguOCAyNS4xLTEyOCA2NGwtNjQgMGMtMjkuMi0zOC45LTc1LjctNjQtMTI4LTY0cy05OC44IDI1LjEtMTI4IDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZ6TTE1MiAyNTZsMTYgMGMxMi4xIDAgMjIuMSA4LjkgMjMuOCAyMC42YzcuNiAyLjIgMTQuOSA1LjMgMjEuNyA5YzkuNC03IDIyLjgtNi4zIDMxLjMgMi4zbDExLjMgMTEuM2M4LjYgOC42IDkuMyAyMS45IDIuMyAzMS4zYzMuNyA2LjggNi44IDE0LjEgOSAyMS43YzExLjYgMS43IDIwLjYgMTEuNyAyMC42IDIzLjhsMCAxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjMgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjggMy43LTE0LjEgNi44LTIxLjcgOUMxOTAuMSA1MDMuMSAxODAuMSA1MTIgMTY4IDUxMmwtMTYgMGMtMTIuMSAwLTIyLjEtOC45LTIzLjgtMjAuNmMtNy42LTIuMi0xNC45LTUuMy0yMS43LTljLTkuNCA3LjEtMjIuOCA2LjMtMzEuMy0yLjJMNjMuOCA0NjguOWMtOC42LTguNi05LjMtMjEuOS0yLjMtMzEuM2MtMy43LTYuOS02LjgtMTQuMS05LTIxLjhDNDAuOSA0MTQuMSAzMiA0MDQuMSAzMiAzOTJsMC0xNmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjMtMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOWMxLjctMTEuNiAxMS43LTIwLjYgMjMuOC0yMC42em04IDE3NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTQ0OC4yIDI3Ni42YzEuNy0xMS42IDExLjctMjAuNiAyMy44LTIwLjZsMTYgMGMxMi4xIDAgMjIuMSA4LjkgMjMuOCAyMC42YzcuNiAyLjIgMTQuOSA1LjMgMjEuOCA5YzkuNC03IDIyLjgtNi4zIDMxLjMgMi4zbDExLjMgMTEuM2M4LjYgOC42IDkuMyAyMS45IDIuMiAzMS4zYzMuNyA2LjggNi44IDE0LjEgOSAyMS43YzExLjYgMS43IDIwLjYgMTEuNyAyMC42IDIzLjhsMCAxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjIgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjkgMy43LTE0LjEgNi44LTIxLjggOUM1MTAuMSA1MDMuMSA1MDAuMSA1MTIgNDg4IDUxMmwtMTYgMGMtMTIuMSAwLTIyLjEtOC45LTIzLjgtMjAuNmMtNy42LTIuMi0xNC45LTUuMy0yMS43LTljLTkuNCA3LjEtMjIuOCA2LjMtMzEuMy0yLjJsLTExLjMtMTEuM2MtOC42LTguNi05LjMtMjEuOS0yLjItMzEuM2MtMy43LTYuOS02LjgtMTQuMS05LTIxLjhDMzYwLjkgNDE0LjEgMzUyIDQwNC4xIDM1MiAzOTJsMC0xNmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjItMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOXpNNTI4IDM4NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbmNvbnN0IGZhVyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTE5XSwgXCI1N1wiLCBcIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdsMTEwLjIgMjk0TDI1Ny4zIDU1YzQtMTMuNyAxNi41LTIzIDMwLjctMjNzMjYuNyA5LjQgMzAuNyAyM2w4NS4xIDI5MS43TDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdzMjQuOSAyNC43IDE4LjcgNDEuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHpcIl1cbn07XG5jb25zdCBmYUVhcnRoQWZyaWNhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWFmcmljYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1NywgXCJnbG9iZS1hZnJpY2FcIl0sIFwiZjU3Y1wiLCBcIk0xNzcuOCA2My4ybDEwIDE3LjRjMi44IDQuOCA0LjIgMTAuMyA0LjIgMTUuOWwwIDQxLjRjMCAzLjkgMS42IDcuNyA0LjMgMTAuNGM2LjIgNi4yIDE2LjUgNS43IDIyLTEuMmwxMy42LTE3YzQuNy01LjkgMTIuOS03LjcgMTkuNi00LjNsMTUuMiA3LjZjMy40IDEuNyA3LjIgMi42IDExIDIuNmM2LjUgMCAxMi44LTIuNiAxNy40LTcuMmwzLjktMy45YzIuOS0yLjkgNy4zLTMuNiAxMS0xLjhsMjkuMiAxNC42YzcuOCAzLjkgMTIuNiAxMS44IDEyLjYgMjAuNWMwIDEwLjUtNy4xIDE5LjYtMTcuMyAyMi4ybC0zNS40IDguOGMtNy40IDEuOC0xNS4xIDEuNS0yMi40LS45bC0zMi0xMC43Yy0zLjMtMS4xLTYuNy0xLjctMTAuMi0xLjdjLTcgMC0xMy44IDIuMy0xOS40IDYuNUwxNzYgMjEyYy0xMC4xIDcuNi0xNiAxOS40LTE2IDMybDAgMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44bDI1LjYtMzQuMWM4LjMtMTEuMSAxMi44LTI0LjYgMTIuOC0zOC40bDAtMTIuMWMwLTMuOSAyLjYtNy4zIDYuNC04LjJsNS4zLTEuM2MxMS45LTMgMjAuMy0xMy43IDIwLjMtMjZjMC03LjEtMi44LTEzLjktNy44LTE4LjlsLTMzLjUtMzMuNWMtMy43LTMuNy0zLjctOS43IDAtMTMuNGM1LjctNS43IDE0LjEtNy43IDIxLjgtNS4xbDE0LjEgNC43YzEyLjMgNC4xIDI1LjctMS41IDMxLjUtMTNjMy41LTcgMTEuMi0xMC44IDE4LjktOS4ybDI3LjQgNS41QzQzMiAxMTIuNCAzNTEuNSA0OCAyNTYgNDhjLTI3LjcgMC01NCA1LjQtNzguMiAxNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJdXG59O1xuY29uc3QgZmFHbG9iZUFmcmljYSA9IGZhRWFydGhBZnJpY2E7XG5jb25zdCBmYVJhaW5ib3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFpbmJvdycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzc1Ml0sIFwiZjc1YlwiLCBcIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NkMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMnMzMjAgMTQzLjMgMzIwIDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTM1LjMtMjguNy02NC02NC02NHpNMTYwIDM1MmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xMjMuNyAxMDAuMy0yMjQgMjI0LTIyNHMyMjQgMTAwLjMgMjI0IDIyNGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBzLTE2MCA3MS42LTE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVOb3RjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbm90Y2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2VcIiwgXCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44QzEyMS44IDk1LjYgNjQgMTY5LjEgNjQgMjU2YzAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xYy0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2YzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NkMwIDE0MCA3Ny4xIDQyLjEgMTgyLjkgMTAuNmMxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41elwiXVxufTtcbmNvbnN0IGZhVGFibGV0U2NyZWVuQnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldC1zY3JlZW4tYnV0dG9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YWJsZXQtYWx0XCJdLCBcImYzZmFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NEw2NCA2NGwwIDMyMCAzMjAgMCAwLTMyMHpcIl1cbn07XG5jb25zdCBmYVRhYmxldEFsdCA9IGZhVGFibGV0U2NyZWVuQnV0dG9uO1xuY29uc3QgZmFQYXcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGF3JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWIwXCIsIFwiTTIyNi41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41cy4zLTg2LjIgMzIuNi05Ni44czcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuM1MtMi43IDE3OS4zIDIxLjggMTY1LjNzNTkuNyAuOSA3OC41IDMzLjN6TTY5LjIgNDAxLjJDMTIxLjYgMjU5LjkgMjE0LjcgMjI0IDI1NiAyMjRzMTM0LjQgMzUuOSAxODYuOCAxNzcuMmMzLjYgOS43IDUuMiAyMC4xIDUuMiAzMC41bDAgMS42YzAgMjUuOC0yMC45IDQ2LjctNDYuNyA0Ni43Yy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yQzg0LjkgNDgwIDY0IDQ1OS4xIDY0IDQzMy4zbDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuM3MyOS4xIDUxLjcgMTAuMiA4NC4xcy01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjVzNDYuOSA1My45IDMyLjYgOTYuOHMtNTIuMSA2OS4xLTg0LjQgNTguNXpcIl1cbn07XG5jb25zdCBmYUNsb3VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTcyOV0sIFwiZjBjMlwiLCBcIk0wIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwzNjggMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjRjNC4xLTEwLjcgNi40LTIyLjQgNi40LTM0LjZjMC01My00My05Ni05Ni05NmMtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyQzE2Ny42IDMyIDk2IDEwMy42IDk2IDE5MmMwIDIuNyAuMSA1LjQgLjIgOC4xQzQwLjIgMjE5LjggMCAyNzMuMiAwIDMzNnpcIl1cbn07XG5jb25zdCBmYVRyb3dlbEJyaWNrcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm93ZWwtYnJpY2tzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNThhXCIsIFwiTTI0MC44IDQuOEMyNTAuMyAxMC42IDI1NiAyMC45IDI1NiAzMmwwIDcyIDg5IDBjMy42LTEzLjggMTYuMS0yNCAzMS0yNGw4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC04OCAwYy0xNC45IDAtMjcuNC0xMC4yLTMxLTI0bC04OSAwIDAgNzJjMCAxMS4xLTUuNyAyMS40LTE1LjIgMjcuMnMtMjEuMiA2LjQtMzEuMSAxLjRsLTE5Mi05NkM2LjggMTUxLjIgMCAxNDAuMSAwIDEyOHM2LjgtMjMuMiAxNy43LTI4LjZsMTkyLTk2YzkuOS01IDIxLjctNC40IDMxLjEgMS40ek0yODggMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0zMiAzODRsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZhY2VGbHVzaGVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZmx1c2hlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2MywgXCJmbHVzaGVkXCJdLCBcImY1NzlcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0xNzYgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTE2LTg4YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0em0yNjQtNzJhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwem0tMjg4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTkyIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYUZsdXNoZWQgPSBmYUZhY2VGbHVzaGVkO1xuY29uc3QgZmFIb3NwaXRhbFVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwtdXNlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjgwZFwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDI1NmwxNDQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkwwIDI4OGwwIDY0IDE0NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDAgMzg0bDAgODBjMCAyNi41IDIxLjUgNDggNDggNDhsMjE3LjkgMGMtNi4zLTEwLjItOS45LTIyLjItOS45LTM1LjFjMC00Ni45IDI1LjgtODcuOCA2NC0xMDkuMmwwLTk1LjlMMzIwIDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTE1MiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI0IDI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNCAwIDAgMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNC0yNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMjQgMCAwLTI0YzAtOC44IDcuMi0xNiAxNi0xNnpNNTEyIDI3MmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTI4OCA0NzcuMWMwIDE5LjMgMTUuNiAzNC45IDM0LjkgMzQuOWwyMTguMiAwYzE5LjMgMCAzNC45LTE1LjYgMzQuOS0zNC45YzAtNTEuNC00MS43LTkzLjEtOTMuMS05My4xbC0xMDEuOCAwYy01MS40IDAtOTMuMSA0MS43LTkzLjEgOTMuMXpcIl1cbn07XG5jb25zdCBmYVRlbnRBcnJvd0xlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LWxlZnQtcmlnaHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1N2ZcIiwgXCJNNDg4LjEgNi4yYy05LjktOC45LTI1LTguMS0zMy45IDEuOHMtOC4xIDI1IDEuOCAzMy45TDQ4OS41IDcyIDg2LjUgNzJsMzMuNS0zMC4yYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOVM5Ny44LTIuNyA4Ny45IDYuMmwtODAgNzJDMi45IDgyLjcgMCA4OS4yIDAgOTZzMi45IDEzLjMgNy45IDE3LjhsODAgNzJjOS45IDguOSAyNSA4LjEgMzMuOS0xLjhzOC4xLTI1LTEuOC0zMy45TDg2LjUgMTIwbDQwMi45IDAtMzMuNSAzMC4yYy05LjkgOC45LTEwLjcgMjQtMS44IDMzLjlzMjQgMTAuNyAzMy45IDEuOGw4MC03MmM1LjEtNC42IDcuOS0xMSA3LjktMTcuOHMtMi45LTEzLjMtNy45LTE3LjhsLTgwLTcyek0zMDcuNCAxNjYuNWMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42Uzg2LjcgNTEyIDk2IDUxMmwxNDQgMCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE4LjFjMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNjAuMiAwIDE2IDBjOS4zIDAgMTguMi00LjEgMjQuMi0xMS4xczguOC0xNi40IDcuNC0yNS42bC0yNC0xNjBjLTEuMi04LjItNS42LTE1LjctMTIuMy0yMC43bC0xNjgtMTI4elwiXVxufTtcbmNvbnN0IGZhR2F2ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2F2ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxlZ2FsXCJdLCBcImYwZTNcIiwgXCJNMzE4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTIwIDEyMGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYgMTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNC00TDMyNS40IDI5My40bC00IDRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2IDE2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyMC0xMjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2LTE2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNCA0TDMzMC42IDc0LjZsNC00YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNi0xNnptLTE1MiAyODhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w0OCA0OGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMTItMTEyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xLjQtMS40TDI3MiAyODUuMyAyMjYuNyAyNDAgMTY4IDI5OC43bC0xLjQtMS40elwiXVxufTtcbmNvbnN0IGZhTGVnYWwgPSBmYUdhdmVsO1xuY29uc3QgZmFCaW5vY3VsYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jpbm9jdWxhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZTVcIiwgXCJNMTI4IDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMkw5NiA5NmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zQzQwLjkgMjY3LjggNDkuNyAyNDIuNCA1MyAyMTZMNjAuNSAxNTZjMi0xNiAxNS42LTI4IDMxLjgtMjhsOTkuOCAwem0yMjcuOCAwYzE2LjEgMCAyOS44IDEyIDMxLjggMjhMNDU5IDIxNmMzLjMgMjYuNCAxMi4xIDUxLjggMjUuOCA3NC42YzE3LjggMjkuNyAyNy4yIDYzLjcgMjcuMiA5OC4zbDAgNTkuMWMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzIwIDk5LjggMHpNMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMi05NiAwIDAtMzJ6bS0zMiA2NGwwIDE2MC02NCAwIDAtMTYwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFNaWNyb3Bob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjEzMVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Mi4xIDM0NC43YzE1LjItMjYgMjMuOS01Ni4zIDIzLjktODguN2wwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCAyMS4yLTUuMSA0MS4xLTE0LjIgNTguN0w0MTYgMzAwLjggNDE2IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgNTQuM0wzOC44IDUuMXpNMzQ0IDQzMC40YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMmwtNDMuMS0zMy45QzM0Ni4xIDM4MiAzMzMuMyAzODQgMzIwIDM4NGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhsMC04LjdMMTQ0LjcgMjEwYy0uNSAxLjktLjcgMy45LS43IDZsMCA0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRsMCAzMy42LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtMzMuNnpcIl1cbn07XG5jb25zdCBmYUJveFRpc3N1ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3gtdGlzc3VlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDViXCIsIFwiTTkyLjUgMEwyMDggMGM0MCAwIDUyIDI0IDY0IDQ4czI0IDQ4IDY0IDQ4bDg1LjIgMEM0MzYgOTYgNDQ4IDEwOCA0NDggMTIyLjhjMCAzLjQtLjcgNi44LTEuOSAxMEw0MDkuNiAyMjQgMzg0IDI4OGwtMjU2IDAtMTYtNjRMNjQuOSAzNS40Yy0uNi0yLjMtLjktNC42LS45LTYuOUM2NCAxMi44IDc2LjggMCA5Mi41IDB6TTc5IDIyNGwxNiA2NC0xNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMjU2IDAgNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTMuNSAwIDI1LjYtNjQgMTkuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyTDAgMzg0IDAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMxIDB6TTAgNDE2bDUxMiAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4elwiXVxufTtcbmNvbnN0IGZhTW90b3JjeWNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3RvcmN5Y2xlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI3OTQ5XSwgXCJmMjFjXCIsIFwiTTI4MCAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ny43IDAgMTYuNCAzMC4zTDI1NiAxOTJsLTQ1LjMtNDUuM2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0w2NCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzIgOTYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGMwIDExLTEuMSAyMS43LTMuMiAzMmw3MC40IDBjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC01Mi4yIDI1LTk4LjYgNjMuNy0xMjcuOGwxNS40IDI4LjZDNDAyLjQgMjc2LjMgMzg0IDMxMiAzODQgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhzLTU3LjMtMTI4LTEyOC0xMjhjLTEzLjUgMC0yNi41IDIuMS0zOC43IDZMNDE4LjIgMTI4bDYxLjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMC40IDBjLTcuNSAwLTE0LjcgMi42LTIwLjUgNy40TDM5MS43IDc4LjlsLTE0LTI2Yy03LTEyLjktMjAuNS0yMS0zNS4yLTIxTDI4MCAzMnpNNDYyLjcgMzExLjJsMjguMiA1Mi4yYzYuMyAxMS43IDIwLjkgMTYgMzIuNSA5LjdzMTYtMjAuOSA5LjctMzIuNWwtMjguMi01Mi4yYzIuMy0uMyA0LjctLjQgNy4xLS40YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMTUuNSA1LjUtMjkuNyAxNC43LTQwLjh6TTE4Ny4zIDM3NmMtOS41IDIzLjUtMzIuNSA0MC01OS4zIDQwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzI2LjkgMCA0OS45IDE2LjUgNTkuMyA0MGw2Ni40IDBDMjQyLjUgMjY4LjggMTkwLjUgMjI0IDEyOCAyMjRDNTcuMyAyMjQgMCAyODEuMyAwIDM1MnM1Ny4zIDEyOCAxMjggMTI4YzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGwtNjYuNCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJlbGxDb25jaWVyZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbC1jb25jaWVyZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MTgsIFwiY29uY2llcmdlLWJlbGxcIl0sIFwiZjU2MlwiLCBcIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTE5LjYgMTU3LjIgMzIgMjUyLjQgMzIgMzY4bDQ0OCAwYzAtMTE1LjYtODcuNi0yMTAuOC0yMDAtMjIyLjdsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAtNDAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHpcIl1cbn07XG5jb25zdCBmYUNvbmNpZXJnZUJlbGwgPSBmYUJlbGxDb25jaWVyZ2U7XG5jb25zdCBmYVBlblJ1bGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1ydWxlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGVuY2lsLXJ1bGVyXCJdLCBcImY1YWVcIiwgXCJNNDY5LjMgMTkuM2wyMy40IDIzLjRjMjUgMjUgMjUgNjUuNSAwIDkwLjVsLTU2LjQgNTYuNEwzMjIuMyA3NS43bDU2LjQtNTYuNGMyNS0yNSA2NS41LTI1IDkwLjUgMHpNNDQuOSAzNTMuMkwyOTkuNyA5OC4zIDQxMy43IDIxMi4zIDE1OC44IDQ2Ny4xYy02LjcgNi43LTE1LjEgMTEuNi0yNC4yIDE0LjJsLTEwNCAyOS43Yy04LjQgMi40LTE3LjQgLjEtMjMuNi02LjFzLTguNS0xNS4yLTYuMS0yMy42bDI5LjctMTA0YzIuNi05LjIgNy41LTE3LjUgMTQuMi0yNC4yek0yNDkuNCAxMDMuNEwxMDMuNCAyNDkuNCAxNiAxNjEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMOTQuMSAxNmMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGwxOS44IDE5LjhjLS4zIC4zLS43IC42LTEgLjlsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNjQtNjRjLjMtLjMgLjYtLjcgLjktMWw0NS4xIDQ1LjF6TTQwOC42IDI2Mi42bDQ1LjEgNDUuMWMtLjMgLjMtLjcgLjYtMSAuOWwtNjQgNjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw2NC02NGMuMy0uMyAuNi0uNyAuOS0xTDQ5NiAzNTAuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUw0MTcuOSA0OTZjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC04Ny40LTg3LjRMNDA4LjYgMjYyLjZ6XCJdXG59O1xuY29uc3QgZmFQZW5jaWxSdWxlciA9IGZhUGVuUnVsZXI7XG5jb25zdCBmYVBlb3BsZUFycm93cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtYXJyb3dzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHRcIl0sIFwiZTA2OFwiLCBcIk02NCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA2NCA2NHpNMjUuOSAyMzMuNEMyOS4zIDE5MS45IDY0IDE2MCAxMDUuNiAxNjBsNDQuOCAwYzI3IDAgNTEgMTMuNCA2NS41IDM0LjFjLTIuNyAxLjktNS4yIDQtNy41IDYuM2wtNjQgNjRjLTIxLjkgMjEuOS0yMS45IDU3LjMgMCA3OS4yTDE5MiAzOTEuMmwwIDcyLjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTE1LjdjLTI2LjUtOS41LTQ0LjctMzUuOC00Mi4yLTY1LjZsNC4xLTQ5LjN6TTQ0OCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA0NDggNjR6TTQzMS42IDIwMC40Yy0yLjMtMi4zLTQuOS00LjQtNy41LTYuM2MxNC41LTIwLjcgMzguNi0zNC4xIDY1LjUtMzQuMWw0NC44IDBjNDEuNiAwIDc2LjMgMzEuOSA3OS43IDczLjRsNC4xIDQ5LjNjMi41IDI5LjgtMTUuNyA1Ni4xLTQyLjIgNjUuNkw1NzYgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTcyLjggNDcuNi00Ny42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4ybC02NC02NHpNMjcyIDI0MGwwIDMyIDk2IDAgMC0zMmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTY0IDY0Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4ybDAtMzItOTYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJ6XCJdXG59O1xuY29uc3QgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQgPSBmYVBlb3BsZUFycm93cztcbmNvbnN0IGZhTWFyc0FuZFZlbnVzQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1hbmQtdmVudXMtYnVyc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MjNcIiwgXCJNNTA0IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzkgMzktMjIuMiAyMi4yQzQ3NS45IDc4LjQgNDM5LjYgNjQgNDAwIDY0Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MGMwIDgwLjIgNTkuMSAxNDYuNyAxMzYuMSAxNTguMmMwIC42LS4xIDEuMi0uMSAxLjhsMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuMyAwIC40IDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xYzAgMCAwIC4xIDAgLjFzMCAuMSAwIC4xbDAgLjFjMCAwIDAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGwyNCAwLTI0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwtMjQgMCAyNCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMWwwLS4xYzAgMCAwLS4xIDAtLjFzMC0uMSAwLS4xbDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0IDAgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS40IDAtLjMgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjRjMC0uNiAwLTEuMi0uMS0xLjhjNzctMTEuNiAxMzYuMS03OCAxMzYuMS0xNTguMmMwLTMxLjQtOS02MC43LTI0LjctODUuNEw1NjAgMTEzLjlsMzkgMzljNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDUwNCAwek00MDAgMTI4YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC4xIDMuOCA5LjkgNS4xIDE1LjIgMy42QzIyMy42IDMxMC44IDIwOCAyNjkuMiAyMDggMjI0YzAtNjAuOCAyOC4zLTExNSA3Mi40LTE1MC4yTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1jYXJldC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLXJpZ2h0XCJdLCBcImYxNTJcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNHMtMTQuNC0xMi41LTE0LjQtMjJsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6XCJdXG59O1xuY29uc3QgZmFDYXJldFNxdWFyZVJpZ2h0ID0gZmFTcXVhcmVDYXJldFJpZ2h0O1xuY29uc3QgZmFTY2lzc29ycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2lzc29ycycsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5ODQsIDk5ODYsIDk5ODgsIFwiY3V0XCJdLCBcImYwYzRcIiwgXCJNMjU2IDE5MmwtMzkuNS0zOS41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyczUwLjEgMTEyIDExMiAxMTJjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjVDNTAuMSAyODggMCAzMzguMSAwIDQwMHM1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZjLTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyem0yMi42IDE1MC42TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNkwzNDIuNiAyNzguNmwtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhQ3V0ID0gZmFTY2lzc29ycztcbmNvbnN0IGZhU3VuUGxhbnRXaWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1bi1wbGFudC13aWx0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTdhXCIsIFwiTTE2MCAwYy02LjMgMC0xMiAzLjctMTQuNiA5LjVMMTIwLjYgNjQuOSA2My45IDQzLjJjLTUuOS0yLjMtMTIuNi0uOC0xNyAzLjZzLTUuOSAxMS4xLTMuNiAxN2wyMS43IDU2LjdMOS41IDE0NS40QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44TDQzLjIgMjU2LjFjLTIuMyA1LjktLjggMTIuNiAzLjYgMTdzMTEuMSA1LjkgMTcgMy42bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuNyAyMS43YzUuOSAyLjMgMTIuNiAuOCAxNy0zLjZzNS45LTExLjEgMy42LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43YzIuMy01LjkgLjgtMTIuNi0zLjYtMTdzLTExLjEtNS45LTE3LTMuNkwxOTkuNCA2NC45IDE3NC42IDkuNUMxNzIgMy43IDE2Ni4zIDAgMTYwIDB6bTAgOTZhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMxMiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42YzAgMTYuOCAxNiA0NCAzNy40IDY3LjJjNS44IDYuMiAxNS41IDYuMiAyMS4yIDBDNjI0IDMxOCA2NDAgMjkwLjcgNjQwIDI3NGMwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjdjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42YzAgMTYuOCAxNiA0NCAzNy40IDY3LjJjNS44IDYuMiAxNS41IDYuMiAyMS4yIDBDNDAwIDM4MiA0MTYgMzU0LjcgNDE2IDMzOGMwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4IDAgMTY4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTA0IDAgMC0xNjggMC04IDAtOTZ6XCJdXG59O1xuY29uc3QgZmFUb2lsZXRzUG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0cy1wb3J0YWJsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4NFwiLCBcIk0zMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJMMCA2NCAwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNMCA5NmwyNCAwIDIwOCAwIDI0IDAgMCAyNCAwIDM2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLThMNDggNDgwbDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwwIDEyMCAwIDk2ek0xOTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMEw1NDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyTDMyMCA2NGwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgOTZsMjQgMCAyMDggMCAyNCAwIDAgMjQgMCAzNjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTE2MCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2OCAwLTI0ek01MTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG9ja2V5UHVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob2NrZXktcHVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ1M1wiLCBcIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5NnMtMTE0LjYgOTYtMjU2IDk2em0xOTIuMyAxLjhjMjQuNy05LjMgNDYuOS0yMSA2My43LTM1LjZMNTEyIDM1MmMwIDUzLTExNC42IDk2LTI1NiA5NlMwIDQwNSAwIDM1MkwwIDIyMi4zYzE2LjggMTQuNiAzOSAyNi4zIDYzLjcgMzUuNkMxMTQuNSAyNzYuOSAxODIuNSAyODggMjU2IDI4OHMxNDEuNS0xMS4xIDE5Mi4zLTMwLjJ6XCJdXG59O1xuY29uc3QgZmFUYWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBjZVwiLCBcIk02NCAyNTZsMC05NiAxNjAgMCAwIDk2TDY0IDI1NnptMCA2NGwxNjAgMCAwIDk2TDY0IDQxNmwwLTk2em0yMjQgOTZsMC05NiAxNjAgMCAwIDk2LTE2MCAwek00NDggMjU2bC0xNjAgMCAwLTk2IDE2MCAwIDAgOTZ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6XCJdXG59O1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjFcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjQxIDExOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMUwxMjAgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExOC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJ6XCJdXG59O1xuY29uc3QgZmFUYWNob2dyYXBoRGlnaXRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWNob2dyYXBoLWRpZ2l0YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImRpZ2l0YWwtdGFjaG9ncmFwaFwiXSwgXCJmNTY2XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDUxMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0zMiA2NGwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzY4YzAtOC44IDcuMi0xNiAxNi0xNmwyNTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIwIDBjMC04LjggNy4yLTE2IDE2LTE2bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek04MCAyODhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem00OCAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MC0xNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4IDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTgwLTE2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYURpZ2l0YWxUYWNob2dyYXBoID0gZmFUYWNob2dyYXBoRGlnaXRhbDtcbmNvbnN0IGZhVXNlcnNTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3M1wiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ0MC42IDMyMGwxNzguMSAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNDNjQwIDIzOS44IDU5Mi4yIDE5MiA1MzMuMyAxOTJsLTQyLjcgMGMtMTUuOSAwLTMxIDMuNS00NC42IDkuN2MxLjMgNy4yIDEuOSAxNC43IDEuOSAyMi4zYzAgMzAuMi0xMC41IDU4LTI4IDc5LjlsLTI1LjItMTkuN0M0MDguMSAyNjcuNyA0MTYgMjQ2LjggNDE2IDIyNGMwLTUzLTQzLTk2LTk2LTk2Yy0zMS4xIDAtNTguNyAxNC44LTc2LjMgMzcuN2wtNDAuNi0zMS44YzEzLTE0LjIgMjAuOS0zMy4xIDIwLjktNTMuOWMwLTQ0LjItMzUuOC04MC04MC04MEMxMTYuMyAwIDkxLjkgMTQuMSA3Ny41IDM1LjVMMzguOCA1LjF6TTEwNi43IDE5MkM0Ny44IDE5MiAwIDIzOS44IDAgMjk4LjdDMCAzMTAuNCA5LjYgMzIwIDIxLjMgMzIwbDIxMy4zIDBjLjIgMCAuNCAwIC43IDBjLTIwLjYtMTguMi0zNS4yLTQyLjgtNDAuOC03MC44TDEyMS44IDE5MmwtMTUuMiAwek0yNjEuMyAzNTJDMTg3LjcgMzUyIDEyOCA0MTEuNyAxMjggNDg1LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdsMzMwLjcgMGMxMC41IDAgMTkuNS02IDIzLjktMTQuOEwzMjQuOSAzNTJsLTYzLjYgMHpNNTEyIDE2MEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNsb3ZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG92ZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUxMzlcIiwgXCJNMjE2LjYgNDkuOUMyMDUuMSAzOC41IDE4OS41IDMyIDE3My4zIDMyQzEzOS40IDMyIDExMiA1OS40IDExMiA5My4zbDAgNC45YzAgMTIgMy4zIDIzLjcgOS40IDM0bDE4LjggMzEuM2MxLjEgMS44IDEuMiAzLjEgMSA0LjJjLS4yIDEuMi0uOCAyLjUtMiAzLjZzLTIuNCAxLjgtMy42IDJjLTEgLjItMi40IC4xLTQuMi0xbC0zMS4zLTE4LjhjLTEwLjMtNi4yLTIyLTkuNC0zNC05LjRsLTQuOSAwQzI3LjQgMTQ0IDAgMTcxLjQgMCAyMDUuM2MwIDE2LjIgNi41IDMxLjggMTcuOSA0My4zbDEuMiAxLjJjMy40IDMuNCAzLjQgOSAwIDEyLjRsLTEuMiAxLjJDNi41IDI3NC45IDAgMjkwLjUgMCAzMDYuN0MwIDM0MC42IDI3LjQgMzY4IDYxLjMgMzY4bDQuOSAwYzEyIDAgMjMuNy0zLjMgMzQtOS40bDMxLjMtMTguOGMxLjgtMS4xIDMuMS0xLjIgNC4yLTFjMS4yIC4yIDIuNSAuOCAzLjYgMnMxLjggMi40IDIgMy42Yy4yIDEgLjEgMi40LTEgNC4ybC0xOC44IDMxLjNjLTYuMiAxMC4zLTkuNCAyMi05LjQgMzRsMCA0LjljMCAzMy44IDI3LjQgNjEuMyA2MS4zIDYxLjNjMTYuMiAwIDMxLjgtNi41IDQzLjMtMTcuOWwxLjItMS4yYzMuNC0zLjQgOS0zLjQgMTIuNCAwbDEuMiAxLjJjMTEuNSAxMS41IDI3LjEgMTcuOSA0My4zIDE3LjljMzMuOCAwIDYxLjMtMjcuNCA2MS4zLTYxLjNsMC00LjljMC0xMi0zLjMtMjMuNy05LjQtMzRsLTE4LjgtMzEuM2MtMS4xLTEuOC0xLjItMy4xLTEtNC4yYy4yLTEuMiAuOC0yLjUgMi0zLjZzMi40LTEuOCAzLjYtMmMxLS4yIDIuNC0uMSA0LjIgMWwzMS4zIDE4LjhjMTAuMyA2LjIgMjIgOS40IDM0IDkuNGw0LjkgMGMzMy44IDAgNjEuMy0yNy40IDYxLjMtNjEuM2MwLTE2LjItNi41LTMxLjgtMTcuOS00My4zbC0xLjItMS4yYy0zLjQtMy40LTMuNC05IDAtMTIuNGwxLjItMS4yYzExLjUtMTEuNSAxNy45LTI3LjEgMTcuOS00My4zYzAtMzMuOC0yNy40LTYxLjMtNjEuMy02MS4zbC00LjkgMGMtMTIgMC0yMy43IDMuMy0zNCA5LjRsLTMxLjMgMTguOGMtMS44IDEuMS0zLjEgMS4yLTQuMiAxYy0xLjItLjItMi41LS44LTMuNi0ycy0xLjgtMi40LTItMy42Yy0uMi0xLS4xLTIuNCAxLTQuMmwxOC44LTMxLjNjNi4yLTEwLjMgOS40LTIyIDkuNC0zNGwwLTQuOUMzMzYgNTkuNCAzMDguNiAzMiAyNzQuNyAzMmMtMTYuMiAwLTMxLjggNi41LTQzLjMgMTcuOWwtMS4yIDEuMmMtMy40IDMuNC05IDMuNC0xMi40IDBsLTEuMi0xLjJ6XCJdXG59O1xuY29uc3QgZmFSZXBseSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBseScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNzE0LCBcIm1haWwtcmVwbHlcIl0sIFwiZjNlNVwiLCBcIk0yMDUgMzQuOGMxMS41IDUuMSAxOSAxNi42IDE5IDI5LjJsMCA2NCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NmMwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjFjLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45Yy0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43YzAtNy41IDQuMy0xNC40IDkuOC0xOS41YzkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuN2MwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgNjRjMCAxMi42LTcuNCAyNC4xLTE5IDI5LjJzLTI1IDMtMzQuNC01LjRsLTE2MC0xNDRDMy45IDIyNS43IDAgMjE3LjEgMCAyMDhzMy45LTE3LjcgMTAuNi0yMy44bDE2MC0xNDRjOS40LTguNSAyMi45LTEwLjYgMzQuNC01LjR6XCJdXG59O1xuY29uc3QgZmFNYWlsUmVwbHkgPSBmYVJlcGx5O1xuY29uc3QgZmFTdGFyQW5kQ3Jlc2NlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1hbmQtY3Jlc2NlbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzcwXSwgXCJmNjk5XCIsIFwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMGMzMyAwIDY0LjYgNi4zIDkzLjYgMTcuN2M3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41Yy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNWM3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44elwiXVxufTtcbmNvbnN0IGZhSG91c2VGaXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZpcmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGNcIiwgXCJNMjg4IDM1MC4xbDAgMS45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjQgMCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQgMC0zMS45IDBjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMmwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0uOSAwLTEuOSAuMS0yLjhsMC02OS43LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ0Ny4zIDEyOC4xYy0xMi4zLTEtMjUgMy0zNC44IDExLjdjLTM1LjQgMzEuNi02NS42IDY3LjctODcuMyAxMDIuOEMzMDQuMyAyNzYuNSAyODggMzE0LjkgMjg4IDM1MC4xek00ODAgNTEyYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTc2LjcgNjIuNS0xNDQuNyAxMDcuMi0xNzkuNGM1LTMuOSAxMC45LTUuOCAxNi44LTUuOGM3LjktLjEgMTYgMy4xIDIyIDkuMmw0NiA0NiAxMS4zLTExLjNjMTEuNy0xMS43IDMwLjYtMTIuNyA0Mi4zLTFDNjI0LjUgMjY4IDY0MCAzMjAuMiA2NDAgMzUyYzAgODguNC03MS42IDE2MC0xNjAgMTYwem02NC0xMTEuOGMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMzI3LjEgNDE2IDM2My42IDQxNiA0MDAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLW1pbnVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE3NjcsIFwibWludXMtc3F1YXJlXCJdLCBcImYxNDZcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggMjAwbDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYU1pbnVzU3F1YXJlID0gZmFTcXVhcmVNaW51cztcbmNvbnN0IGZhSGVsaWNvcHRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWxpY29wdGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjQxXSwgXCJmNTMzXCIsIFwiTTEyOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw1NDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzODQgNjRsMCA2NCAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwLTY0IDBjLTIwLjEgMC0zOS4xLTkuNS01MS4yLTI1LjZsLTcxLjQtOTUuMmMtMy41LTQuNy04LjMtOC4zLTEzLjctMTAuNUw0Ny4yIDE5OC4xYy05LjUtMy44LTE2LjctMTItMTkuMi0yMkw1IDgzLjlDMi40IDczLjggMTAuMSA2NCAyMC41IDY0TDQ4IDY0YzEwLjEgMCAxOS42IDQuNyAyNS42IDEyLjhMMTEyIDEyOGwyMDggMCAwLTY0TDE2MCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTM4NCAzMjBsMTI4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgMTI4ek02MzAuNiA0MjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMy45IDMuOWMtMjQgMjQtNTYuNiAzNy41LTkwLjUgMzcuNUwyNTYgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDI4MC4yIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMy45LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHpcIl1cbn07XG5jb25zdCBmYUNvbXBhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxN10sIFwiZjE0ZVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDYXJldERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS1kb3duXCJdLCBcImYxNTBcIiwgXCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45czEyLjUtMTQuNCAyMi0xNC40bDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6XCJdXG59O1xuY29uc3QgZmFDYXJldFNxdWFyZURvd24gPSBmYVNxdWFyZUNhcmV0RG93bjtcbmNvbnN0IGZhRmlsZUNpcmNsZVF1ZXN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGVmXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTM2OCAzMjEuNmwwIDYuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNi40YzAtNS4zIDQuMy05LjYgOS42LTkuNmw0MC41IDBjNy43IDAgMTMuOSA2LjIgMTMuOSAxMy45YzAgNS4yLTIuOSA5LjktNy40IDEyLjNsLTMyIDE2LjhjLTUuMyAyLjgtOC42IDguMi04LjYgMTQuMmwwIDE0LjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTUuMSAyMy41LTEyLjNjMTUuMS03LjkgMjQuNS0yMy42IDI0LjUtNDAuNmMwLTI1LjQtMjAuNi00NS45LTQ1LjktNDUuOWwtNDAuNSAwYy0yMyAwLTQxLjYgMTguNi00MS42IDQxLjZ6XCJdXG59O1xuY29uc3QgZmFMYXB0b3BDb2RlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhcHRvcC1jb2RlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWZjXCIsIFwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2LTY0IDAgMC0yNTZMMTI4IDk2bDAgMjU2LTY0IDBMNjQgOTZ6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmMwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6XCJdXG59O1xuY29uc3QgZmFTd2F0Y2hib29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N3YXRjaGJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YzNcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzODRjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZMMCAzMnpNMjIzLjYgNDI1LjljLjMtMy4zIC40LTYuNiAuNC05LjlsMC0yNjIgNzUuNC03NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDkwLjUgOTAuNWMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMjMuNiA0MjUuOXpNMTgyLjggNTEybDE5Mi0xOTJMNDgwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjk3LjIgMHpNMTI4IDY0TDY0IDY0bDAgNjQgNjQgMCAwLTY0ek02NCAxOTJsMCA2NCA2NCAwIDAtNjQtNjQgMHpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYVByZXNjcmlwdGlvbkJvdHRsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcmVzY3JpcHRpb24tYm90dGxlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDg1XCIsIFwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyem0zMiA5NmwzMjAgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMzg0bDAtNjQgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMjg4bDAtNjQgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMTkybDAtNjR6XCJdXG59O1xuY29uc3QgZmFCYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhcnMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcIm5hdmljb25cIl0sIFwiZjBjOVwiLCBcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhTmF2aWNvbiA9IGZhQmFycztcbmNvbnN0IGZhUGVvcGxlR3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWdyb3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTMzXCIsIFwiTTcyIDg4YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDcyIDg4ek02NCAyNDUuN0M1NCAyNTYuOSA0OCAyNzEuOCA0OCAyODhzNiAzMS4xIDE2IDQyLjNsMC04NC43em0xNDQuNC00OS4zQzE3OC43IDIyMi43IDE2MCAyNjEuMiAxNjAgMzA0YzAgMzQuMyAxMiA2NS44IDMyIDkwLjVsMCAyMS41YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI2LjhDMjYuMiAzNzEuMiAwIDMzMi43IDAgMjg4YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDMyIDBjMjQgMCA0Ni4yIDcuNSA2NC40IDIwLjN6TTQ0OCA0MTZsMC0yMS41YzIwLTI0LjcgMzItNTYuMiAzMi05MC41YzAtNDIuOC0xOC43LTgxLjMtNDguNC0xMDcuN0M0NDkuOCAxODMuNSA0NzIgMTc2IDQ5NiAxNzZsMzIgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmMwIDQ0LjctMjYuMiA4My4yLTY0IDEwMS4ybDAgMjYuOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTgtMzI4YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDQ1NiA4OHpNNTc2IDI0NS43bDAgODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTMyMCAzMmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjQwIDMwNGMwIDE2LjIgNiAzMSAxNiA0Mi4zbDAtODQuN2MtMTAgMTEuMy0xNiAyNi4xLTE2IDQyLjN6bTE0NC00Mi4zbDAgODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTQ0OCAzMDRjMCA0NC43LTI2LjIgODMuMi02NCAxMDEuMmwwIDQyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDIuOGMtMzcuOC0xOC02NC01Ni41LTY0LTEwMS4yYzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDMyIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJ6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NFbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91cmdsYXNzLWVuZCcsXG4gIGljb246IFszODQsIDUxMiwgWzg5ODcsIFwiaG91cmdsYXNzLTNcIl0sIFwiZjI1M1wiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xTDE0Ni43IDI1NiA3OC45IDMyMy45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAyNTYgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xTDIzNy4zIDI1Nmw2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMCA2NCAwIDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUwxOTIgMjEwLjdsLTY3LjktNjcuOUMxMDYuMSAxMjQuOSA5NiAxMDAuNCA5NiA3NXpcIl1cbn07XG5jb25zdCBmYUhvdXJnbGFzczMgPSBmYUhvdXJnbGFzc0VuZDtcbmNvbnN0IGZhSGVhcnRDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jcmFjaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0OCwgXCJoZWFydC1icm9rZW5cIl0sIFwiZjdhOVwiLCBcIk0xMTkuNCA0NC4xYzIzLjMtMy45IDQ2LjgtMS45IDY4LjYgNS4zbDQ5LjggNzcuNS03NS40IDc1LjRjLTEuNSAxLjUtMi40IDMuNi0yLjMgNS44czEgNC4yIDIuNiA1LjdsMTEyIDEwNGMyLjkgMi43IDcuNCAyLjkgMTAuNSAuM3MzLjgtNyAxLjctMTAuNGwtNjAuNC05OC4xIDkwLjctNzUuNmMyLjYtMi4xIDMuNS01LjcgMi40LTguOEwyOTYuOCA2MS44YzI4LjUtMTYuNyA2Mi40LTIzLjIgOTUuNy0xNy42QzQ2MS41IDU1LjYgNTEyIDExNS4yIDUxMiAxODUuMWwwIDUuOGMwIDQxLjUtMTcuMiA4MS4yLTQ3LjYgMTA5LjVMMjgzLjcgNDY5LjFjLTcuNSA3LTE3LjQgMTAuOS0yNy43IDEwLjlzLTIwLjItMy45LTI3LjctMTAuOUw0Ny42IDMwMC40QzE3LjIgMjcyLjEgMCAyMzIuNCAwIDE5MC45bDAtNS44YzAtNjkuOSA1MC41LTEyOS41IDExOS40LTE0MXpcIl1cbn07XG5jb25zdCBmYUhlYXJ0QnJva2VuID0gZmFIZWFydENyYWNrO1xuY29uc3QgZmFTcXVhcmVVcFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS11cC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg1OTksIFwiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0XCJdLCBcImYzNjBcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTYwIDE2MGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDQwIDQwLTcxIDcxQzExNCAzMDIgMTEyIDMwNi45IDExMiAzMTJzMiAxMCA1LjcgMTMuN2wzNi43IDM2LjdjMy42IDMuNiA4LjUgNS43IDEzLjcgNS43czEwLTIgMTMuNy01LjdsNzEtNzEgNDAgNDBjNC42IDQuNiAxMS41IDUuOSAxNy40IDMuNXM5LjktOC4zIDkuOS0xNC44bDAtMTQ0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTQ0IDB6XCJdXG59O1xuY29uc3QgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQgPSBmYVNxdWFyZVVwUmlnaHQ7XG5jb25zdCBmYUZhY2VLaXNzQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWtpc3MtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzNywgXCJraXNzLWJlYW1cIl0sIFwiZjU5N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNDguNy0xOTguM2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQ0My4xIDI1Ny40IDQ0OCAyNDAgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMWMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2MwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMSAuMy0uMiAuNi0uNGMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjQtLjMtLjUtLjMtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6bS04Ny4xLTg0LjlzMCAwIDAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHptMTYwIDBjMCAwIDAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHpcIl1cbn07XG5jb25zdCBmYUtpc3NCZWFtID0gZmFGYWNlS2lzc0JlYW07XG5jb25zdCBmYUZpbG0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkwMl0sIFwiZjAwOFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTM2OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzY4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek00MTYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwelwiXVxufTtcbmNvbnN0IGZhUnVsZXJIb3Jpem9udGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bGVyLWhvcml6b250YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1NDdcIiwgXCJNMCAzMzZjMCAyNi41IDIxLjUgNDggNDggNDhsNTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzM2elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlUm9iYmVyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtcm9iYmVyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUzNlwiLCBcIk00ODguMiA1OS4xQzQ3OC4xIDk5LjYgNDQxLjcgMTI4IDQwMCAxMjhzLTc4LjEtMjguNC04OC4yLTY4LjlMMzAzIDI0LjJDMjk4LjggNy4xIDI4MS40LTMuMyAyNjQuMiAxUzIzNi43IDIyLjYgMjQxIDM5LjhsOC43IDM0LjljMTEgNDQgNDAuMiA3OS42IDc4LjMgOTkuNkwzMjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA1LjdjMzguMS0yMCA2Ny4zLTU1LjYgNzguMy05OS42TDU1OSAzOS44YzQuMy0xNy4xLTYuMS0zNC41LTIzLjMtMzguOFM1MDEuMiA3LjEgNDk3IDI0LjJsLTguNyAzNC45ek00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek04MCA5NkE0OCA0OCAwIDEgMCA4MCAwYTQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDAgLjZMOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjcuMyAxMyAyMC41YzUuOSA5LjIgMTYuMSAxNC45IDI3IDE0LjlsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzAuNCAwLTM3LjQtNTguOUMxNTcuNiAxNDIgMTMyLjEgMTI4IDEwNC43IDEyOEw3MiAxMjh6XCJdXG59O1xuY29uc3QgZmFMaWdodGJ1bGIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlnaHRidWxiJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MTYxXSwgXCJmMGViXCIsIFwiTTI3MiAzODRjOS42LTMxLjkgMjkuNS01OS4xIDQ5LjItODYuMmMwIDAgMCAwIDAgMGM1LjItNy4xIDEwLjQtMTQuMiAxNS40LTIxLjRjMTkuOC0yOC41IDMxLjQtNjMgMzEuNC0xMDAuM0MzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgMzcuMyAxMS42IDcxLjkgMzEuNCAxMDAuM2M1IDcuMiAxMC4yIDE0LjMgMTUuNCAyMS40YzAgMCAwIDAgMCAwYzE5LjggMjcuMSAzOS43IDU0LjQgNDkuMiA4Ni4ybDE2MCAwek0xOTIgNTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTYtMTYwIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHpNMTEyIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFDYXJldExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtbGVmdCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjBkOVwiLCBcIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlzMTkuOCAxNi42IDE5LjggMjkuNmwwIDI1NmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjbGFtYXRpb24tY2lyY2xlXCJdLCBcImYwNmFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzg0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFFeGNsYW1hdGlvbkNpcmNsZSA9IGZhQ2lyY2xlRXhjbGFtYXRpb247XG5jb25zdCBmYVNjaG9vbENpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjaG9vbC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NmRcIiwgXCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTYgNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI3MiAwczAgMCAwIDBsLTY0IDAgMC05NmMwLTM1LjMgMjguNy02NCA2NC02NGwuMyAwIC41IDBjMy40LTM3LjcgMTguNy03Mi4xIDQyLjItOTkuMUMzNTAuMiAyNjAgMzM1LjYgMjY0IDMyMCAyNjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4czM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDE4LjMtNS42IDM1LjMtMTUuMSA0OS40YzI5LTIxIDY0LjYtMzMuNCAxMDMuMS0zMy40YzU5LjUgMCAxMTIuMSAyOS42IDE0NCA3NC44TDY0MCAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDczLjcgOTYgMzM3LjggNS40ek05NiAxOTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnptMCAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMzIwIDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDM2OHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRGcm9tQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNpZ24tb3V0XCJdLCBcImYwOGJcIiwgXCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6TTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpcIl1cbn07XG5jb25zdCBmYVNpZ25PdXQgPSBmYUFycm93UmlnaHRGcm9tQnJhY2tldDtcbmNvbnN0IGZhQ2lyY2xlQ2hldnJvbkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWNoZXZyb24tZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2hldnJvbi1jaXJjbGUtZG93blwiXSwgXCJmMTNhXCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTM1IDI0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDg3IDg3IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMzUgMjQxelwiXVxufTtcbmNvbnN0IGZhQ2hldnJvbkNpcmNsZURvd24gPSBmYUNpcmNsZUNoZXZyb25Eb3duO1xuY29uc3QgZmFVbmxvY2tLZXlob2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VubG9jay1rZXlob2xlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ1bmxvY2stYWx0XCJdLCBcImYxM2VcIiwgXCJNMjI0IDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDQ4IDI0MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMCAwLTQ4QzgwIDY0LjUgMTQ0LjUgMCAyMjQgMGM1Ny41IDAgMTA3IDMzLjcgMTMwLjEgODIuM2M3LjYgMTYgLjggMzUuMS0xNS4yIDQyLjZzLTM1LjEgLjgtNDIuNi0xNS4yQzI4My40IDgyLjYgMjU1LjkgNjQgMjI0IDY0em0zMiAzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMHpcIl1cbn07XG5jb25zdCBmYVVubG9ja0FsdCA9IGZhVW5sb2NrS2V5aG9sZTtcbmNvbnN0IGZhQ2xvdWRTaG93ZXJzSGVhdnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc2hvd2Vycy1oZWF2eScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc0MFwiLCBcIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTZjMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjJDNjQuNyAxMjYuMSA2NCAxMTkuMSA2NCAxMTJDNjQgNTAuMSAxMTQuMSAwIDE3NiAwYzQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MGMxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS41LS42IDEwLjgtMS42IDE2Yy41IDAgMS4xIDAgMS42IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwek04MS41IDM1My45YzEyLjIgNS4yIDE3LjggMTkuMyAxMi42IDMxLjVsLTQ4IDExMmMtNS4yIDEyLjItMTkuMyAxNy44LTMxLjUgMTIuNlMtMy4zIDQ5MC43IDEuOSA0NzguNWw0OC0xMTJjNS4yLTEyLjIgMTkuMy0xNy44IDMxLjUtMTIuNnptMTIwIDBjMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42em0yNDQuNiAzMS41bC00OCAxMTJjLTUuMiAxMi4yLTE5LjMgMTcuOC0zMS41IDEyLjZzLTE3LjgtMTkuMy0xMi42LTMxLjVsNDgtMTEyYzUuMi0xMi4yIDE5LjMtMTcuOCAzMS41LTEyLjZzMTcuOCAxOS4zIDEyLjYgMzEuNXpNMzEzLjUgMzUzLjljMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42elwiXVxufTtcbmNvbnN0IGZhSGVhZHBob25lc1NpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkcGhvbmVzLXNpbXBsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhZHBob25lcy1hbHRcIl0sIFwiZjU4ZlwiLCBcIk0yNTYgODBDMTQxLjEgODAgNDggMTczLjEgNDggMjg4bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0TDAgMjg4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOHpNODAgMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjR6bTI4OC02NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNiAwelwiXVxufTtcbmNvbnN0IGZhSGVhZHBob25lc0FsdCA9IGZhSGVhZHBob25lc1NpbXBsZTtcbmNvbnN0IGZhU2l0ZW1hcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaXRlbWFwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMGU4XCIsIFwiTTIwOCA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTggMCAwIDQwIDE1MiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMzIgOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTY0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsOCAwIDAtMzJjMC00LjQtMy42LTgtOC04bC0xNTIgMCAwIDQwIDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02NCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDggMCAwLTQwLTE1MiAwYy00LjQgMC04IDMuNi04IDhsMCAzMiA4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTI2LjUgMjEuNS00OCA0OC00OGw4IDAgMC0zMmMwLTMwLjkgMjUuMS01NiA1Ni01NmwxNTIgMCAwLTQwLTggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZURvbGxhclRvU2xvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtZG9sbGFyLXRvLXNsb3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRvbmF0ZVwiXSwgXCJmNGI5XCIsIFwiTTMyNi43IDQwMy43Yy0yMi4xIDgtNDUuOSAxMi4zLTcwLjcgMTIuM3MtNDguNy00LjQtNzAuNy0xMi4zbC0uOC0uM2MtMzAtMTEtNTYuOC0yOC43LTc4LjYtNTEuNEM3MCAzMTQuNiA0OCAyNjMuOSA0OCAyMDhDNDggOTMuMSAxNDEuMSAwIDI1NiAwUzQ2NCA5My4xIDQ2NCAyMDhjMCA1NS45LTIyIDEwNi42LTU3LjkgMTQ0Yy0xIDEtMiAyLjEtMyAzLjFjLTIxLjQgMjEuNC00Ny40IDM4LjEtNzYuMyA0OC42ek0yNTYgOTEuOWMtMTEuMSAwLTIwLjEgOS0yMC4xIDIwLjFsMCA2Yy01LjYgMS4yLTEwLjkgMi45LTE1LjkgNS4xYy0xNSA2LjgtMjcuOSAxOS40LTMxLjEgMzcuN2MtMS44IDEwLjItLjggMjAgMy40IDI5YzQuMiA4LjggMTAuNyAxNSAxNy4zIDE5LjVjMTEuNiA3LjkgMjYuOSAxMi41IDM4LjYgMTZsMi4yIC43YzEzLjkgNC4yIDIzLjQgNy40IDI5LjMgMTEuN2MyLjUgMS44IDMuNCAzLjIgMy43IDRjLjMgLjggLjkgMi42IC4yIDYuN2MtLjYgMy41LTIuNSA2LjQtOCA4LjhjLTYuMSAyLjYtMTYgMy45LTI4LjggMS45Yy02LTEtMTYuNy00LjYtMjYuMi03LjljMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy0yLjItLjctNC4zLTEuNS02LjQtMi4xYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjdzMi4yIDIxLjggMTIuNyAyNS4zYzEuMiAuNCAyLjcgLjkgNC40IDEuNWM3LjkgMi43IDIwLjMgNi45IDI5LjggOS4xbDAgNi40YzAgMTEuMSA5IDIwLjEgMjAuMSAyMC4xczIwLjEtOSAyMC4xLTIwLjFsMC01LjVjNS4zLTEgMTAuNS0yLjUgMTUuNC00LjZjMTUuNy02LjcgMjguNC0xOS43IDMxLjYtMzguN2MxLjgtMTAuNCAxLTIwLjMtMy0yOS40Yy0zLjktOS0xMC4yLTE1LjYtMTYuOS0yMC41Yy0xMi4yLTguOC0yOC4zLTEzLjctNDAuNC0xNy40bC0uOC0uMmMtMTQuMi00LjMtMjMuOC03LjMtMjkuOS0xMS40Yy0yLjYtMS44LTMuNC0zLTMuNi0zLjVjLS4yLS4zLS43LTEuNi0uMS01Yy4zLTEuOSAxLjktNS4yIDguMi04LjFjNi40LTIuOSAxNi40LTQuNSAyOC42LTIuNmM0LjMgLjcgMTcuOSAzLjMgMjEuNyA0LjNjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTQuNC0xLjItMTQuNC0zLjItMjEtNC40bDAtNi4zYzAtMTEuMS05LTIwLjEtMjAuMS0yMC4xek00OCAzNTJsMTYgMGMxOS41IDI1LjkgNDQgNDcuNyA3Mi4yIDY0TDY0IDQxNmwwIDMyIDE5MiAwIDE5MiAwIDAtMzItNzIuMiAwYzI4LjItMTYuMyA1Mi44LTM4LjEgNzIuMi02NGwxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhRG9uYXRlID0gZmFDaXJjbGVEb2xsYXJUb1Nsb3Q7XG5jb25zdCBmYU1lbW9yeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZW1vcnknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MzhcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRjMCA2LjggNC40IDEyLjYgMTAuMSAxNi4zQzIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZMMCAzMjBsNTc2IDAgMC03MS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuM0M1NTIuNyAyMjMuNyA1NDQgMjA4LjkgNTQ0IDE5MnM4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTU3NiAzNTJMMCAzNTJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDMyIDk2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMzIgOTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMiA5NiAwIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDMyIDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NHpNMTkyIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhUm9hZFNwaWtlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkLXNwaWtlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2OFwiLCBcIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUwxOTIgMjU2bDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlMMzIwIDI1NmwwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDQ0OCAyNTZsMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjctMjYuNiA0OS43TDUxMiAzNTJsLTY0IDAtNjQgMC02NCAwLTY0IDAtNjQgMEw2NCAzNTJsMC0yMzUuMnpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZpcmVCdXJuZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZS1idXJuZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZjFcIiwgXCJNMzQ1LjcgNDguM0wzNTggMzQuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45YzcuMiAwIDE0LjMgMi42IDE5LjkgNy44YzE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNkM0NjkgMTMxLjIgNDgwIDE2Mi4yIDQ4MCAxOTIuMkM0ODAgMjgwLjggNDA4LjcgMzUyIDMyMCAzNTJjLTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjhjMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNWMyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjJDMjczLjQgMi4zIDI4MC43LS4yIDI4OCAwYzE0LjEgLjMgMjMuOCAxMS40IDMyLjcgMjEuNmMwIDAgMCAwIDAgMGMyIDIuMyA0IDQuNiA2IDYuN2wxOSAxOS45ek0zODQgMjQwLjJjMC0zNi41LTM3LTczLTU0LjgtODguNGMtNS40LTQuNy0xMy4xLTQuNy0xOC41IDBDMjkzIDE2Ny4xIDI1NiAyMDMuNiAyNTYgMjQwLjJjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNMzIgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NCA0NDggMCAwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTk2ek0zMjAgNDgwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTYwLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE5MiA0ODBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTg4LCA2MTcyNV0sIFwiZjAyNFwiLCBcIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNjQgMCAzNjggMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCA2NC4zLTE2LjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjRjNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDBjLTM1LjEtMTcuNi03NS40LTIyLTExMy41LTEyLjVMNjQgNDhsMC0xNnpcIl1cbn07XG5jb25zdCBmYUhhbnVraWFoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbnVraWFoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MzM0XSwgXCJmNmU2XCIsIFwiTTMxNC4yIDMuM0MzMDkuMSAxMi4xIDI5NiAzNi42IDI5NiA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzMyNC42IDEuMiAzMjIuNCAwIDMyMCAwcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzM2LjYgNDkuMiAzNC40IDQ4IDMyIDQ4cy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN0MxNjUuMSA2MC4xIDE1MiA4NC42IDE1MiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzIyOS4xIDYwLjEgMjE2IDg0LjYgMjE2IDEwNHpNMzk0LjIgNTEuM0MzODkuMSA2MC4xIDM3NiA4NC42IDM3NiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNDQwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43QzUxNy4xIDYwLjEgNTA0IDg0LjYgNTA0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjdjLTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCA5NiAwIDE2IDMyIDAgMC0xNiAwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTYgMCAxNiAzMiAwIDAtMTYgMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2IDAgMTYgMzIgMCAwLTE2IDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTYgMCAxNiAzMiAwIDAtMTYgMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2IDAgMTYgMzIgMCAwLTE2IDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA5NiAwIDE2IDMyIDAgMC0xNiAwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Nkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwIDAgNjQtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtNjQgMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwIDAtMTc2elwiXVxufTtcbmNvbnN0IGZhRmVhdGhlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZWF0aGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NzE4XSwgXCJmNTJkXCIsIFwiTTI3OC41IDIxNS42TDIzIDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDY4IDBjNDkuNyAwIDk3LjktMTQuNCAxMzktNDFjMTEuMS03LjIgNS41LTIzLTcuOC0yM2MtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw4MS0yNC4zYzIuNS0uOCA0LjgtMi4xIDYuNy00bDIyLjQtMjIuNGMxMC4xLTEwLjEgMi45LTI3LjMtMTEuMy0yNy4zbC0zMi4yIDBjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsMTEyLTMzLjZjNC0xLjIgNy40LTMuOSA5LjMtNy43QzUwNi40IDIwNy42IDUxMiAxODQuMSA1MTIgMTYwYzAtNDEtMTYuMy04MC4zLTQ1LjMtMTA5LjNsLTUuNS01LjVDNDMyLjMgMTYuMyAzOTMgMCAzNTIgMHMtODAuMyAxNi4zLTEwOS4zIDQ1LjNMMTM5IDE0OUM5MSAxOTcgNjQgMjYyLjEgNjQgMzMwbDAgNTUuM0wyNTMuNiAxOTUuOGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGM1LjQgNS40IDYuMSAxMy42IDIuMiAxOS44elwiXVxufTtcbmNvbnN0IGZhVm9sdW1lTG93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS1sb3cnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyNjQsIFwidm9sdW1lLWRvd25cIl0sIFwiZjAyN1wiLCBcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQxMi42IDE4MS41QzQzNC4xIDE5OS4xIDQ0OCAyMjUuOSA0NDggMjU2cy0xMy45IDU2LjktMzUuNCA3NC41Yy0xMC4zIDguNC0yNS40IDYuOC0zMy44LTMuNXMtNi44LTI1LjQgMy41LTMzLjhDMzkzLjEgMjg0LjQgNDAwIDI3MSA0MDAgMjU2cy02LjktMjguNC0xNy43LTM3LjNjLTEwLjMtOC40LTExLjgtMjMuNS0zLjUtMzMuOHMyMy41LTExLjggMzMuOC0zLjV6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVEb3duID0gZmFWb2x1bWVMb3c7XG5jb25zdCBmYUNvbW1lbnRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGIzXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTEyLjkgMzc2LjdDNTUyLjIgMzQwLjIgNTc2IDI5Mi4zIDU3NiAyNDBDNTc2IDEyNS4xIDQ2MS40IDMyIDMyMCAzMmMtNjcuNyAwLTEyOS4zIDIxLjQtMTc1LjEgNTYuM0wzOC44IDUuMXptMzg1LjIgNDI1TDgyLjkgMTYxLjNDNzAuNyAxODUuNiA2NCAyMTIuMiA2NCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuM2MwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45YzM3IDAgNzIuMy02LjQgMTA0LjEtMTcuOXpcIl1cbn07XG5jb25zdCBmYUNsb3VkU3VuUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zdW4tcmFpbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzc4Ml0sIFwiZjc0M1wiLCBcIk0yOTQuMiAxLjJjNS4xIDIuMSA4LjcgNi43IDkuNiAxMi4xbDEwLjQgNjIuNGMtMjMuMyAxMC44LTQyLjkgMjguNC01NiA1MC4zYy0xNC42LTktMzEuOC0xNC4xLTUwLjItMTQuMWMtNTMgMC05NiA0My05NiA5NmMwIDM1LjUgMTkuMyA2Ni42IDQ4IDgzLjJjLjggMzEuOCAxMy4yIDYwLjcgMzMuMSA4Mi43bC01NiAzOS4yYy00LjUgMy4yLTEwLjMgMy44LTE1LjQgMS42cy04LjctNi43LTkuNi0xMi4xTDk4LjEgMzE3LjkgMTMuNCAzMDMuOGMtNS40LS45LTEwLTQuNS0xMi4xLTkuNnMtMS41LTEwLjkgMS42LTE1LjRMNTIuNSAyMDggMi45IDEzNy4yYy0zLjItNC41LTMuOC0xMC4zLTEuNi0xNS40czYuNy04LjcgMTIuMS05LjZMOTguMSA5OC4xbDE0LjEtODQuN2MuOS01LjQgNC41LTEwIDkuNi0xMi4xczEwLjktMS41IDE1LjQgMS42TDIwOCA1Mi41IDI3OC44IDIuOWM0LjUtMy4yIDEwLjMtMy44IDE1LjQtMS42ek0yMDggMTQ0YzEzLjggMCAyNi43IDQuNCAzNy4xIDExLjljLTEuMiA0LjEtMi4yIDguMy0zIDEyLjZjLTM3LjkgMTQuNi02Ny4yIDQ2LjYtNzcuOCA4Ni40QzE1MS44IDI0My4xIDE0NCAyMjYuNSAxNDQgMjA4YzAtMzUuMyAyOC43LTY0IDY0LTY0em02OS40IDI3NmMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em05NiAwYzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6bTk2IDBjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3ptOTYgMGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em03NC41LTExNi4xYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yNzEuOSAwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJdXG59O1xuY29uc3QgZmFDb21wcmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wcmVzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2NlwiLCBcIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYVdoZWF0QXduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wid2hlYXQtYWx0XCJdLCBcImUyY2RcIiwgXCJNNTA1IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzgzIDk1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODgtODh6TTMwNS41IDI3LjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI3MS41IDM4LjZjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xMS4zIDExLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44TDEwMS44IDIzMWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNjcuOSAyNDIuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNEw5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguOS02OC45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMzcuNSAzNy41IDk4LjMgMzcuNSAxMzUuOCAwbDExLjMtMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTEuMy0xMS4zYy0yMS44LTIxLjgtNDkuNi0zNC4xLTc4LjEtMzYuOWwzMS45LTMxLjkgMTIuMiAxMi4yYzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMEw0ODYuNSAyMzFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNDc1LjIgMTk3Yy01LjItNS4yLTEwLjYtOS44LTE2LjQtMTMuOUw1MDUgMTM3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU5LjQgNTkuNGMtMjAuNi00LjQtNDItMy43LTYyLjMgMi4xYzYuMS0yMS4zIDYuNi00My44IDEuNC02NS4zTDQwOSA0MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDMyOS4xIDUyLjljLTMuNy01LTcuOC05LjgtMTIuNC0xNC4zTDMwNS41IDI3LjN6XCJdXG59O1xuY29uc3QgZmFXaGVhdEFsdCA9IGZhV2hlYXRBd247XG5jb25zdCBmYUFua2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5raCcsXG4gIGljb246IFszMjAsIDUxMiwgWzk3NjVdLCBcImY2NDRcIiwgXCJNOTYgMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRjMCA0MS42LTIwLjcgNzYuNi00Ni42IDEwNC4xYy01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjdjLTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuN0MxMTYuNyAyMDQuNiA5NiAxNjkuNiA5NiAxMjh6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOGMwIDUyLjQgMjEuNSA5NS41IDQ2LjggMTI4TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwYzI1LjQtMzIuNSA0Ni44LTc1LjYgNDYuOC0xMjhDMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRzSG9sZGluZ0NoaWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWhvbGRpbmctY2hpbGQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZmFcIiwgXCJNMzIwIDBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem00NC43IDE2NC4zTDM3NS44IDI1M2MxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjhMMjU1LjUgMTgxYy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDEwNC44IDI5NS4zIDk2IDMyMCA5NnM0OC43IDguOCA2Ny42IDI0LjdsMjcuOSAyMy42YzEwLjEgOC42IDExLjQgMjMuNyAyLjggMzMuOHMtMjMuNyAxMS40LTMzLjggMi44bC0xOS44LTE2Ljd6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDAgMCA4MCAwIDQwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xYzEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDMyIDMyIDE1LjIgMTUuMmMwIDAgMCAwIDAgMGwyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAyMjRsMC02NCAwLTU2QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDU2IDAgNjQgMCAxMDEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuM2MwIDAgMCAwIDAgMGwxNS4yLTE1LjIgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzItMTUuMiAxNS4yYy0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOGM5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTQwLjIgMC04MCAwLTQwYzAtMjIuMSAxNy45LTQwIDQwLTQwelwiXVxufTtcbmNvbnN0IGZhQXN0ZXJpc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXN0ZXJpc2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMDAzMywgNjE1NDVdLCBcIjJhXCIsIFwiTTE5MiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzNS41IDExMS41LTY2LjljMTUuMi05LjEgMzQuOC00LjIgNDMuOSAxMXM0LjIgMzQuOC0xMSA0My45TDI1NC4yIDI1NmwxMTQuMyA2OC42YzE1LjIgOS4xIDIwLjEgMjguNyAxMSA0My45cy0yOC43IDIwLjEtNDMuOSAxMUwyMjQgMzEyLjUgMjI0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEzNS41TDQ4LjUgMzc5LjRjLTE1LjIgOS4xLTM0LjggNC4yLTQzLjktMTFzLTQuMi0zNC44IDExLTQzLjlMMTI5LjggMjU2IDE1LjUgMTg3LjRjLTE1LjItOS4xLTIwLjEtMjguNy0xMS00My45czI4LjctMjAuMSA0My45LTExTDE2MCAxOTkuNSAxNjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2hlY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NzQ1LCA5OTg5LCA2MTUxMCwgXCJjaGVjay1zcXVhcmVcIl0sIFwiZjE0YVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMzcgMjA5TDIwOSAzMzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDMwMyAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhQ2hlY2tTcXVhcmUgPSBmYVNxdWFyZUNoZWNrO1xuY29uc3QgZmFQZXNldGFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blc2V0YS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMjIxXCIsIFwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NGwwIDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgOTYgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhsMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMuMiAwQzMzNCA4NyAyNjkuNCAzMiAxOTIgMzJMNjQgMzJ6TTI4Mi41IDE2MEw5NiAxNjBsMC02NCA5NiAwYzQxLjggMCA3Ny40IDI2LjcgOTAuNSA2NHpNOTYgMjI0bDE4Ni41IDBjLTEzLjIgMzcuMy00OC43IDY0LTkwLjUgNjRsLTk2IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYUhlYWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiaGVhZGVyXCJdLCBcImYxZGNcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0OCAwIDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxMTIgMjI0IDAgMC0xMTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwIDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxNDQgMCAxNzYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNzZMNDggOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIl1cbn07XG5jb25zdCBmYUhlYWRlciA9IGZhSGVhZGluZztcbmNvbnN0IGZhR2hvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2hvc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxMjNdLCBcImY2ZTJcIiwgXCJNNDAuMSA0NjcuMWwtMTEuMiA5Yy0zLjIgMi41LTcuMSAzLjktMTEuMSAzLjlDOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44Yy00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUxpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1zcXVhcmVzXCJdLCBcImYwM2FcIiwgXCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpcIl1cbn07XG5jb25zdCBmYUxpc3RTcXVhcmVzID0gZmFMaXN0O1xuY29uc3QgZmFTcXVhcmVQaG9uZUZsaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBob25lLWZsaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBob25lLXNxdWFyZS1hbHRcIl0sIFwiZjg3YlwiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwem0tOTAuNyA5Ni43Yy05LjctMi42LTE5LjkgMi4zLTIzLjcgMTEuNmwtMjAgNDhjLTMuNCA4LjItMSAxNy42IDUuOCAyMy4yTDI4MCAyMzEuN2MtMTYuNiAzNS4yLTQ1LjEgNjMuNy04MC4zIDgwLjNsLTIwLjItMjQuN2MtNS42LTYuOC0xNS05LjItMjMuMi01LjhsLTQ4IDIwYy05LjMgMy45LTE0LjIgMTQtMTEuNiAyMy43bDEyIDQ0QzExMS4xIDM3OCAxMTkgMzg0IDEyOCAzODRjMTIzLjcgMCAyMjQtMTAwLjMgMjI0LTIyNGMwLTktNi0xNi45LTE0LjctMTkuM2wtNDQtMTJ6XCJdXG59O1xuY29uc3QgZmFQaG9uZVNxdWFyZUFsdCA9IGZhU3F1YXJlUGhvbmVGbGlwO1xuY29uc3QgZmFDYXJ0UGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMTdcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjkuNSAwYzIyIDAgNDEuNSAxMi44IDUwLjYgMzJsNDExIDBjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNsLTI4OC41IDAgNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUw0ODggMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODguMyAwYy0zNC42IDAtNjQuMy0yNC42LTcwLjctNTguNUw3Ny40IDU0LjVjLS43LTMuOC00LTYuNS03LjktNi41TDI0IDQ4QzEwLjcgNDggMCAzNy4zIDAgMjR6TTEyOCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzM2LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjUyIDE2MGMwIDExIDkgMjAgMjAgMjBsNDQgMCAwIDQ0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDQgNDQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ0IDAgMC00NGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCA0NC00NCAwYy0xMSAwLTIwIDktMjAgMjB6XCJdXG59O1xuY29uc3QgZmFHYW1lcGFkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhbWVwYWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxMWJcIiwgXCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDI1NiAwYzEwNiAwIDE5Mi04NiAxOTItMTkycy04Ni0xOTItMTkyLTE5MkwxOTIgNjR6TTQ5NiAxNjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek0zOTIgMzA0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE2OCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDMyIDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDAgMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTMyLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzIgMCAwLTMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlRG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1kb3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyODAsIFwiZG90LWNpcmNsZVwiXSwgXCJmMTkyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTM1MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIl1cbn07XG5jb25zdCBmYURvdENpcmNsZSA9IGZhQ2lyY2xlRG90O1xuY29uc3QgZmFGYWNlRGl6enkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1kaXp6eScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZGl6enlcIl0sIFwiZjU2N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yMjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTEwMC43IDEzMi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDE2MCAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDE4Mi42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwxNjAgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxMzcuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6bTE5MiAwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDM1MiAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDM3NC42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwzNTIgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwzMjkuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFEaXp6eSA9IGZhRmFjZURpenp5O1xuY29uc3QgZmFFZ2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWdnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI5MzcwXSwgXCJmN2ZiXCIsIFwiTTE5MiA0OTZDODYgNDk2IDAgMzk0IDAgMjg4QzAgMTc2IDY0IDE2IDE5MiAxNnMxOTIgMTYwIDE5MiAyNzJjMCAxMDYtODYgMjA4LTE5MiAyMDh6TTE1NC44IDEzNGM2LjUtNiA3LTE2LjEgMS0yMi42cy0xNi4xLTctMjIuNi0xYy0yMy45IDIxLjgtNDEuMSA1Mi43LTUyLjMgODQuMkM2OS43IDIyNi4xIDY0IDI1OS43IDY0IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjQuNSA1LTU0LjQgMTUuMS04Mi44YzEwLjEtMjguNSAyNS01NC4xIDQzLjctNzEuMnpcIl1cbn07XG5jb25zdCBmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEzXCIsIFwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRsLTI2Ni43IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0TDMyMCAyNTZsMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJdXG59O1xuY29uc3QgZmFDYW1wZ3JvdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbXBncm91bmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5OTc4XSwgXCJmNmJiXCIsIFwiTTM3NyA1MmMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVMMjg4IDYwLjggMjQ5IDEyYy0xMS0xMy44LTMxLjItMTYtNDUtNXMtMTYgMzEuMi01IDQ1bDQ4IDYwTDEyLjMgNDA1LjRDNC4zIDQxNS40IDAgNDI3LjcgMCA0NDAuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMCAyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIzLjZjMC0xMi43LTQuMy0yNS4xLTEyLjMtMzVMMzI5IDExMmw0OC02MHpNMjg4IDQ0OGwtMTE5LjUgMEwyODggMjkxLjcgNDA3LjUgNDQ4IDI4OCA0NDh6XCJdXG59O1xuY29uc3QgZmFGb2xkZXJQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjVlXCIsIFwiTTUxMiA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZ6TTIzMiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDY0LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRnV0Ym9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Z1dGJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5MTcsIFwiZnV0Ym9sLWJhbGxcIiwgXCJzb2NjZXItYmFsbFwiXSwgXCJmMWUzXCIsIFwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6XCJdXG59O1xuY29uc3QgZmFGdXRib2xCYWxsID0gZmFGdXRib2w7XG5jb25zdCBmYVNvY2NlckJhbGwgPSBmYUZ1dGJvbDtcbmNvbnN0IGZhUGFpbnRicnVzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludGJydXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mzk2LCBcInBhaW50LWJydXNoXCJdLCBcImYxZmNcIiwgXCJNMzM5LjMgMzY3LjFjMjcuMy0zLjkgNTEuOS0xOS40IDY3LjItNDIuOUw1NjguMiA3NC4xYzEyLjYtMTkuNSA5LjQtNDUuMy03LjYtNjEuMlM1MTcuNy00LjQgNDk5LjEgOS42TDI2Mi40IDE4Ny4yYy0yNCAxOC0zOC4yIDQ2LjEtMzguNCA3Ni4xTDMzOS4zIDM2Ny4xem0tMTkuNiAyNS40bC0xMTYtMTA0LjRDMTQzLjkgMjkwLjMgOTYgMzM5LjYgOTYgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42Qzk4LjQgNDI5LjEgODYuNCA0NDggNjguOCA0NDhMNjQgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtMi41LS4xLTUtLjItNy41elwiXVxufTtcbmNvbnN0IGZhUGFpbnRCcnVzaCA9IGZhUGFpbnRicnVzaDtcbmNvbnN0IGZhTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4Mjc0XSwgXCJmMDIzXCIsIFwiTTE0NCAxNDRsMCA0OCAxNjAgMCAwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwek04MCAxOTJsMC00OEM4MCA2NC41IDE0NC41IDAgMjI0IDBzMTQ0IDY0LjUgMTQ0IDE0NGwwIDQ4IDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwxNiAwelwiXVxufTtcbmNvbnN0IGZhR2FzUHVtcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXMtcHVtcCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5ODFdLCBcImY1MmZcIiwgXCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MiA4IDBjNDguNiAwIDg4IDM5LjQgODggODhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTU0Yy0yNy42LTcuMS00OC0zMi4yLTQ4LTYybDAtNjRMMzg0IDY0Yy04LjgtOC44LTguOC0yMy4yIDAtMzJzMjMuMi04LjggMzIgMGw3Ny4zIDc3LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDEzLjUgMCAyNCAwIDMyIDAgMTUyYzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcybDAtMzJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTggMCAwIDE0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTk2IDgwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkwxMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUhvdFR1YlBlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3QtdHViLXBlcnNvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaG90LXR1YlwiXSwgXCJmNTkzXCIsIFwiTTI3MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDUuMmMwIDM0IDE0LjQgNjYuNCAzOS43IDg5LjJsMTYuNCAxNC44YzE1LjIgMTMuNyAyMy44IDMzLjEgMjMuOCA1My41bDAgMTMuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTMuMmMwLTM0LTE0LjQtNjYuNC0zOS43LTg5LjJMMjk1LjggODIuOEMyODAuNyA2OS4xIDI3MiA0OS43IDI3MiAyOS4ybDAtNS4yek0wIDMyMGwwIDE2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNzAuNyAwYy0xMy44IDAtMjcuMy00LjUtMzguNC0xMi44bC04NS4zLTY0QzEzNyAxNjYuNyAxMTYuOCAxNjAgOTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2bDAgNjR6bTEyOCAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6bTExMiAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6TTM2MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDUuMmMwIDM0IDE0LjQgNjYuNCAzOS43IDg5LjJsMTYuNCAxNC44YzE1LjIgMTMuNyAyMy44IDMzLjEgMjMuOCA1My41bDAgMTMuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTMuMmMwLTM0LTE0LjQtNjYuNC0zOS43LTg5LjJMNDA3LjggODIuOEMzOTIuNyA2OS4xIDM4NCA0OS43IDM4NCAyOS4ybDAtNS4yYzAtMTMuMy0xMC43LTI0LTI0LTI0ek02NCAxMjhBNjQgNjQgMCAxIDAgNjQgMGE2NCA2NCAwIDEgMCAwIDEyOHpcIl1cbn07XG5jb25zdCBmYUhvdFR1YiA9IGZhSG90VHViUGVyc29uO1xuY29uc3QgZmFNYXBMb2NhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtbG9jYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1hcC1tYXJrZWRcIl0sIFwiZjU5ZlwiLCBcIk0zMDIuOCAzMTJDMzM0LjkgMjcxLjkgNDA4IDE3NC42IDQwOCAxMjBDNDA4IDUzLjcgMzU0LjMgMCAyODggMFMxNjggNTMuNyAxNjggMTIwYzAgNTQuNiA3My4xIDE1MS45IDEwNS4yIDE5MmM3LjcgOS42IDIyIDkuNiAyOS42IDB6TTQxNiA1MDNsMTQ0LjktNThjOS4xLTMuNiAxNS4xLTEyLjUgMTUuMS0yMi4zTDU3NiAxNTJjMC0xNy0xNy4xLTI4LjYtMzIuOS0yMi4zbC0xMTYgNDYuNGMtLjUgMS4yLTEgMi41LTEuNSAzLjdjLTIuOSA2LjgtNi4xIDEzLjctOS42IDIwLjZMNDE2IDUwM3pNMTUuMSAxODcuM0M2IDE5MSAwIDE5OS44IDAgMjA5LjZMMCA0ODAuNGMwIDE3IDE3LjEgMjguNiAzMi45IDIyLjNMMTYwIDQ1MS44bDAtMjUxLjRjLTMuNS02LjktNi43LTEzLjgtOS42LTIwLjZjLTUuNi0xMy4yLTEwLjQtMjcuNC0xMi44LTQxLjVsLTEyMi42IDQ5ek0zODQgMjU1Yy0yMC41IDMxLjMtNDIuMyA1OS42LTU2LjIgNzdjLTIwLjUgMjUuNi01OS4xIDI1LjYtNzkuNiAwYy0xMy45LTE3LjQtMzUuNy00NS43LTU2LjItNzdsMCAxOTQuNCAxOTIgNTQuOUwzODQgMjU1elwiXVxufTtcbmNvbnN0IGZhTWFwTWFya2VkID0gZmFNYXBMb2NhdGlvbjtcbmNvbnN0IGZhSG91c2VGbG9vZFdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsb29kLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTBlXCIsIFwiTTMwNi44IDYuMUMyOTUuNi0yIDI4MC40LTIgMjY5LjIgNi4xbC0xNzYgMTI4Yy0xMS4yIDguMi0xNS45IDIyLjYtMTEuNiAzNS44Uzk4LjEgMTkyIDExMiAxOTJsMTYgMCAwIDczYzEuNyAxIDMuMyAyIDQuOSAzLjFjMTggMTIuNCA0MC4xIDIwLjMgNTkuMiAyMC4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzEuNS0xIDMtMiA0LjUtMi45bC0uMy03My4yIDE2LjYgMGMxMy45IDAgMjYuMS04LjkgMzAuNC0yMi4xcy0uNC0yNy42LTExLjYtMzUuOGwtMTc2LTEyOHpNMjY5LjUgMzA5LjlDMjQ3IDMyNS40IDIxOS41IDMzNiAxOTIgMzM2Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWMwIDAgMCAwIDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSAzODkuNyAxNTkgNDAwIDE5MiA0MDBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNS0yNy4zLTEwLjEtMzkuMi0xLjdjMCAwIDAgMCAwIDBDNDM5LjQgMzI1LjIgNDEwLjkgMzM2IDM4NCAzMzZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMHpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhVHJlZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmVlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3Nzk0XSwgXCJmMWJiXCIsIFwiTTIxMC42IDUuOUw2MiAxNjkuNGMtMy45IDQuMi02IDkuOC02IDE1LjVDNTYgMTk3LjcgNjYuMyAyMDggNzkuMSAyMDhsMjQuOSAwTDMwLjYgMjgxLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMyNCAzMDkuOSAzNC4xIDMyMCA0Ni42IDMyMEw4MCAzMjAgNS40IDQwOS41QzEuOSA0MTMuNyAwIDQxOSAwIDQyNC41YzAgMTMgMTAuNSAyMy41IDIzLjUgMjMuNUwxOTIgNDQ4bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDE2OC41IDBjMTMgMCAyMy41LTEwLjUgMjMuNS0yMy41YzAtNS41LTEuOS0xMC44LTUuNC0xNUwzNjggMzIwbDMzLjQgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDM0NCAyMDhsMjQuOSAwYzEyLjcgMCAyMy4xLTEwLjMgMjMuMS0yMy4xYzAtNS43LTIuMS0xMS4zLTYtMTUuNUwyMzcuNCA1LjlDMjM0IDIuMSAyMjkuMSAwIDIyNCAwcy0xMCAyLjEtMTMuNCA1Ljl6XCJdXG59O1xuY29uc3QgZmFCcmlkZ2VMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGNjXCIsIFwiTTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00MCAwIDAgNjQtOCAwYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDI0LjZjLTkuOSA1LjgtMTguMiAxNC4xLTIzLjggMjQuMWMtMTcuNi0yMC00My40LTMyLjctNzIuMi0zMi43Yy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC01My00My05Ni05Ni05NmwwLTEyOCA3MiAwIDAtNjRMNjQgOTZDNDYuMyA5NiAzMiA4MS43IDMyIDY0ek00MDggOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDY0bDAtNjQtODAgMCAwIDY0IDgwIDB6TTE1MiA5NmwwIDY0IDgwIDAgMC02NC04MCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFTYWNrRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhY2stZG9sbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTc2XSwgXCJmODFkXCIsIFwiTTMyMCA5NkwxOTIgOTYgMTQ0LjYgMjQuOUMxMzcuNSAxNC4yIDE0NS4xIDAgMTU3LjkgMEwzNTQuMSAwYzEyLjggMCAyMC40IDE0LjIgMTMuMyAyNC45TDMyMCA5NnpNMTkyIDEyOGwxMjggMGMzLjggMi41IDguMSA1LjMgMTMgOC40QzM4OS43IDE3Mi43IDUxMiAyNTAuOSA1MTIgNDE2YzAgNTMtNDMgOTYtOTYgOTZMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2QzAgMjUwLjkgMTIyLjMgMTcyLjcgMTc5IDEzNi40YzAgMCAwIDAgMCAwczAgMCAwIDBjNC44LTMuMSA5LjItNS45IDEzLTguNHptODQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVjMCAwIDAgMCAwIDBsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdsMC0xMy45elwiXVxufTtcbmNvbnN0IGZhUGVuVG9TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuLXRvLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZWRpdFwiXSwgXCJmMDQ0XCIsIFwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2Mi4zIDUxLjdsOTcuOSA5Ny45IDMwLjEtMzAuMWMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzcuNyAxNzIuMyAzMzkuNyA3NC4zIDE3Mi40IDI0MS43ek05NiA2NEM0MyA2NCAwIDEwNyAwIDE2MEwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiA2NHpcIl1cbn07XG5jb25zdCBmYUVkaXQgPSBmYVBlblRvU3F1YXJlO1xuY29uc3QgZmFDYXJTaWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nhci1zaWRlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjYzXSwgXCJmNWU0XCIsIFwiTTE3MS4zIDk2TDIyNCA5NmwwIDk2LTExMi43IDAgMzAuNC03NS45QzE0Ni41IDEwNCAxNTguMiA5NiAxNzEuMyA5NnpNMjcyIDE5MmwwLTk2IDgxLjIgMGM5LjcgMCAxOC45IDQuNCAyNSAxMmw2Ny4yIDg0TDI3MiAxOTJ6bTI1Ni4yIDFMNDI4LjIgNjhjLTE4LjItMjIuOC00NS44LTM2LTc1LTM2TDE3MS4zIDMyYy0zOS4zIDAtNzQuNiAyMy45LTg5LjEgNjAuM0w0MC42IDE5Ni40QzE2LjggMjA1LjggMCAyMjguOSAwIDI1NkwwIDM2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMy4zIDBjNy42IDQ1LjQgNDcuMSA4MCA5NC43IDgwczg3LjEtMzQuNiA5NC43LTgwbDEzMC43IDBjNy42IDQ1LjQgNDcuMSA4MCA5NC43IDgwczg3LjEtMzQuNiA5NC43LTgwbDMzLjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtNjUuMi00OC44LTExOS0xMTEuOC0xMjd6TTQzNC43IDM2OGE0OCA0OCAwIDEgMSA5MC41IDMyIDQ4IDQ4IDAgMSAxIC05MC41LTMyek0xNjAgMzM2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVNoYXJlTm9kZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUtbm9kZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInNoYXJlLWFsdFwiXSwgXCJmMWUwXCIsIFwiTTM1MiAyMjRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgNCAuMiA4IC43IDExLjlsLTk0LjEgNDdDMTQ1LjQgMTcwLjIgMTIxLjkgMTYwIDk2IDE2MGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNS45IDAgNDkuNC0xMC4yIDY2LjYtMjYuOWw5NC4xIDQ3Yy0uNSAzLjktLjcgNy44LS43IDExLjljMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTI1LjkgMC00OS40IDEwLjItNjYuNiAyNi45bC05NC4xLTQ3Yy41LTMuOSAuNy03LjggLjctMTEuOXMtLjItOC0uNy0xMS45bDk0LjEtNDdDMzAyLjYgMjEzLjggMzI2LjEgMjI0IDM1MiAyMjR6XCJdXG59O1xuY29uc3QgZmFTaGFyZUFsdCA9IGZhU2hhcmVOb2RlcztcbmNvbnN0IGZhSGVhcnRDaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUtbWludXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZmZcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTU3NiAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcy1oYWxmJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJob3VyZ2xhc3MtMlwiXSwgXCJmMjUyXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFMMTQ2LjcgMjU2IDc4LjkgMzIzLjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDI1NiAwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFMMjM3LjMgMjU2bDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyMCAwIDY0IDAgMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlMMTkyIDMwMS4zbDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMSAxNC45TDExMiAzODR6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3MyID0gZmFIb3VyZ2xhc3NIYWxmO1xuY29uc3QgZmFNaWNyb3Njb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3Jvc2NvcGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMDBdLCBcImY2MTBcIiwgXCJNMTYwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIgNDQ4bDI4OCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4bDAtNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJjMCA0OS4yLTE4LjUgOTQtNDguOSAxMjhsMTYuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTgwLTY0bDE5MiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVNpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2ZFwiLCBcIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnMxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgMjQtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCAwLTI0YzAtNC40IDMuNi04IDgtOGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDI0LTY0IDAgMC0xOTJ6TTQ4MCA0MTZsMC0zMkwzMiAzODRsMCAzMmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFCYWdTaG9wcGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWctc2hvcHBpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInNob3BwaW5nLWJhZ1wiXSwgXCJmMjkwXCIsIFwiTTE2MCAxMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhDMzM2IDUwLjEgMjg1LjkgMCAyMjQgMFMxMTIgNTAuMSAxMTIgMTEybDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFTaG9wcGluZ0JhZyA9IGZhQmFnU2hvcHBpbmc7XG5jb25zdCBmYUFycm93RG93blpBID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tei1hJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFscGhhLWRlc2NcIiwgXCJzb3J0LWFscGhhLWRvd24tYWx0XCJdLCBcImY4ODFcIiwgXCJNMTgzLjYgNDY5LjZDMTc3LjUgNDc2LjIgMTY5IDQ4MCAxNjAgNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkwxMjggMzY1LjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUw0MjkuMyAxNjBsNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlMNDAyLjcgOTYgMzUyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptOTYgMTkyYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNjQgMTI4IDE2IDMyYzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNMNDYwLjIgNDQ4bC04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsMTYtMzIgNjQtMTI4YzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3Ljd6TTM5NS44IDQwMGw0MC40IDBMNDE2IDM1OS42IDM5NS44IDQwMHpcIl1cbn07XG5jb25zdCBmYVNvcnRBbHBoYURlc2MgPSBmYUFycm93RG93blpBO1xuY29uc3QgZmFTb3J0QWxwaGFEb3duQWx0ID0gZmFBcnJvd0Rvd25aQTtcbmNvbnN0IGZhTWl0dGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pdHRlbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdiNVwiLCBcIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuM0MwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zYzAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMnpcIl1cbn07XG5jb25zdCBmYVBlcnNvblJheXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXJheXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGRcIiwgXCJNMjA4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xLTI4LjYgNDcuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZsMjkuNyAwYzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDU4LjMgOTdjOS4xIDE1LjEgNC4yIDM0LjgtMTAuOSA0My45cy0zNC44IDQuMi00My45LTEwLjlMMzI4IDI1Ni45IDMyOCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNyA3QzE2LjQtMi4zIDMxLjYtMi4zIDQxIDdsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDQxQy0yLjMgMzEuNi0yLjMgMTYuNCA3IDd6TTQ3MSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMNDcxIDd6TTcgNTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHptNDY0IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG5jb25zdCBmYVVzZXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMGMwXCIsIFwiTTE0NCAwYTgwIDgwIDAgMSAxIDAgMTYwQTgwIDgwIDAgMSAxIDE0NCAwek01MTIgMGE4MCA4MCAwIDEgMSAwIDE2MEE4MCA4MCAwIDEgMSA1MTIgMHpNMCAyOTguN0MwIDIzOS44IDQ3LjggMTkyIDEwNi43IDE5Mmw0Mi43IDBjMTUuOSAwIDMxIDMuNSA0NC42IDkuN2MtMS4zIDcuMi0xLjkgMTQuNy0xLjkgMjIuM2MwIDM4LjIgMTYuOCA3Mi41IDQzLjMgOTZjLS4yIDAtLjQgMC0uNyAwTDIxLjMgMzIwQzkuNiAzMjAgMCAzMTAuNCAwIDI5OC43ek00MDUuMyAzMjBjLS4yIDAtLjQgMC0uNyAwYzI2LjYtMjMuNSA0My4zLTU3LjggNDMuMy05NmMwLTcuNi0uNy0xNS0xLjktMjIuM2MxMy42LTYuMyAyOC43LTkuNyA0NC42LTkuN2w0Mi43IDBDNTkyLjIgMTkyIDY0MCAyMzkuOCA2NDAgMjk4LjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtMjEzLjMgMHpNMjI0IDIyNGE5NiA5NiAwIDEgMSAxOTIgMCA5NiA5NiAwIDEgMSAtMTkyIDB6TTEyOCA0ODUuM0MxMjggNDExLjcgMTg3LjcgMzUyIDI2MS4zIDM1MmwxMTcuMyAwQzQ1Mi4zIDM1MiA1MTIgNDExLjcgNTEyIDQ4NS4zYzAgMTQuNy0xMS45IDI2LjctMjYuNyAyNi43bC0zMzAuNyAwYy0xNC43IDAtMjYuNy0xMS45LTI2LjctMjYuN3pcIl1cbn07XG5jb25zdCBmYUV5ZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjA3MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6TTIyMy4xIDE0OS41QzI0OC42IDEyNi4yIDI4Mi43IDExMiAzMjAgMTEyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgMjQuOS02LjMgNDguMy0xNy40IDY4LjdMNDA4IDI5NC41YzguNC0xOS4zIDEwLjYtNDEuNCA0LjgtNjMuM2MtMTEuMS00MS41LTQ3LjgtNjkuNC04OC42LTcxLjFjLTUuOC0uMi05LjIgNi4xLTcuNCAxMS43YzIuMSA2LjQgMy4zIDEzLjIgMy4zIDIwLjNjMCAxMC4yLTIuNCAxOS44LTYuNiAyOC4zbC05MC4zLTcwLjh6TTM3MyAzODkuOWMtMTYuNCA2LjUtMzQuMyAxMC4xLTUzIDEwLjFjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0YzAtNi45IC41LTEzLjYgMS40LTIwLjJMODMuMSAxNjEuNUM2MC4zIDE5MS4yIDQ0IDIyMC44IDM0LjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42YzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjNDcuOCAwIDg5LjktMTIuOSAxMjYuMi0zMi41TDM3MyAzODkuOXpcIl1cbn07XG5jb25zdCBmYUZsYXNrVmlhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFzay12aWFsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGYzXCIsIFwiTTE3NSAzODkuNGMtOS44IDE2LTE1IDM0LjMtMTUgNTMuMWMtMTAgMy41LTIwLjggNS41LTMyIDUuNWMtNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDk2IDBsNjQgMCA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjQ1LjktNDkgNzkuNnpNOTYgNjRsMCA5NiA2NCAwIDAtOTZMOTYgNjR6TTM1MiAwTDQ4MCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTAuOUw2MjkuNyA0MDYuMmM2LjcgMTAuOSAxMC4zIDIzLjUgMTAuMyAzNi40YzAgMzguMy0zMS4xIDY5LjQtNjkuNCA2OS40bC0zMDkuMiAwYy0zOC4zIDAtNjkuNC0zMS4xLTY5LjQtNjkuNGMwLTEyLjggMy42LTI1LjQgMTAuMy0zNi40TDMyMCAyMTQuOSAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMHptMzIgNjRsMCAxNjBjMCA1LjktMS42IDExLjctNC43IDE2LjhMMzMwLjUgMzIwbDE3MSAwLTQ4LjgtNzkuMmMtMy4xLTUtNC43LTEwLjgtNC43LTE2LjhsMC0xNjAtNjQgMHpcIl1cbn07XG5jb25zdCBmYUhhbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTMwNiwgOTk5NSwgXCJoYW5kLXBhcGVyXCJdLCBcImYyNTZcIiwgXCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRzLTE0LjYgNDEuMyAxLjQgNTYuNkwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6XCJdXG59O1xuY29uc3QgZmFIYW5kUGFwZXIgPSBmYUhhbmQ7XG5jb25zdCBmYU9tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29tJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzI5XSwgXCJmNjc5XCIsIFwiTTM3OS4zIDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTE2IDE2Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxNiAxNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxNi0xNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTYtMTZ6TTI4MSA2Ni43Yy0yLjItMS41LTQuOS0yLjUtNy43LTIuN2MtLjYgMC0xLjMtLjEtMS45IDBjLTMuOSAuMi03LjQgMS43LTEwLjEgNC4yYy0uOSAuOC0xLjYgMS43LTIuMyAyLjZjLTEuNyAyLjQtMi43IDUuMy0yLjkgOC41YzAgLjcgMCAxLjQgMCAyLjFjLjIgMi4yIC45IDQuMyAxLjkgNi4ybC4zIC42Yy4zIC42IC44IDEuNCAxLjQgMi40YzEuMiAyIDIuOSA0LjggNS4xIDguMmM0LjQgNi43IDExLjEgMTUuNSAyMCAyNC40QzMwMi40IDE0MS4xIDMzMC4zIDE2MCAzNjggMTYwYzMxLjIgMCA1Ni42LTEwLjQgNzMuOS0yMC4yYzguNy01IDE1LjYtOS45IDIwLjQtMTMuOGMyLjQtMS45IDQuMy0zLjYgNS43LTQuOWMuNy0uNiAxLjMtMS4yIDEuNy0xLjZsLjYtLjUgLjEtLjEgLjEtLjFzMCAwIDAgMHMwIDAgMCAwYzUuOS01LjggOS41LTEzLjkgOS41LTIyLjhjMC0xNy43LTE0LjMtMzItMzItMzJjLTguNyAwLTE2LjcgMy41LTIyLjQgOS4yYy0uMSAuMS0uMiAuMi0uNSAuNGMtLjUgLjUtMS41IDEuMy0yLjggMi40Yy0yLjcgMi4yLTYuOCA1LjItMTIuMSA4LjJDMzk5LjQgOTAuNCAzODQuOCA5NiAzNjggOTZjLTIwLjggMC00Mi40LTctNTkuNS0xNC42Yy04LjQtMy43LTE1LjQtNy41LTIwLjMtMTAuM2MtMi40LTEuNC00LjMtMi41LTUuNi0zLjNjLS42LS40LTEuMS0uNy0xLjQtLjlsLS4zLS4yek0xMTUuMiAxNjkuNmM4LTYgMTcuOS05LjYgMjguOC05LjZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTM0LjIgMGMtNy42IDAtMTMuOCA2LjItMTMuOCAxMy44YzAgMS41IC4yIDIuOSAuNyA0LjRsOCAyNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDguOSAwIDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTUwLjggMC04Mi43LTIxLjUtMTAyLjItNDIuOGMtOS45LTEwLjgtMTYuNi0yMS42LTIwLjktMjkuN2MtMi4xLTQtMy42LTcuMy00LjUtOS42Yy0uNS0xLjEtLjgtMi0xLTIuNWwtLjItLjVjLS4zLS45LS43LTEuOC0xLjEtMi42Yy0xLjItMi4yLTIuOC00LTQuNy01LjRjLTEuOS0xLjQtNC4xLTIuMy02LjUtMi44Yy0xLjQtLjMtMi45LS4zLTQuNC0uMmMtMi41IC4yLTQuOCAxLTYuOCAyLjNjLTEuMSAuNy0yLjIgMS41LTMuMSAyLjVjLTIuNCAyLjUtNC4xIDUuOC00LjUgOS41Yy0uMSAuNi0uMSAxLjEtLjEgMS43YzAgMCAwIDAgMCAwYzAgLjggLjEgMS43IC4yIDIuNWwwIC4xYzAgLjMgLjEgLjggLjIgMS4zYy4yIDEuMSAuNCAyLjcgLjggNC42Yy44IDMuOSAyIDkuNCAzLjkgMTUuOWMzLjggMTMgMTAuMyAzMC40IDIxLjMgNDhDNDguNyA0NzYuMiA4OS40IDUxMiAxNjAgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4YzAtMjMuMy02LjItNDUuMi0xNy4xLTY0bDIyLjYgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNi41LTI2LjVjNi02IDE0LjEtOS40IDIyLjYtOS40bDUuNSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJjLTI1LjcgMC00MS40LTEyLjUtNTEuMi0yNS42Yy01LTYuNy04LjQtMTMuNC0xMC41LTE4LjZjLTEuMS0yLjUtMS44LTQuNi0yLjItNmMtLjItLjctLjQtMS4yLS41LTEuNWwtLjEtLjJjLS4zLTEuMy0uOC0yLjYtMS41LTMuOGMtMS4xLTItMi42LTMuOC00LjQtNS4xYy0yLjctMi02LTMuMi05LjYtMy4ybC0uMiAwYy04IC4xLTE0LjYgNi4xLTE1LjYgMTMuOWMwIDAgMCAwIDAgMGMwIC4zLS4xIC42LS4yIDEuMWMtLjEgLjktLjMgMi4xLS40IDMuNmMtLjMgMy0uNiA3LjMtLjYgMTIuNGMwIDEwLjEgMS4xIDIzLjkgNS44IDM4LjFjNC44IDE0LjMgMTMuNCAyOS4zIDI4LjYgNDAuN0MzNjguNyA0NzMuMyAzODkuMyA0ODAgNDE2IDQ4MGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC01My00My05Ni05Ni05NmwtNS41IDBjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xbC0yNi41IDI2LjVjLTYgNi0xNC4xIDkuNC0yMi42IDkuNGwtNDguMyAwYzYuOS0xNC41IDEwLjgtMzAuOCAxMC44LTQ4YzAtNjEuOS01MC4xLTExMi0xMTItMTEyYy0yNS4yIDAtNDguNSA4LjMtNjcuMiAyMi40Yy0xNC4xIDEwLjYtMTcgMzAuNy02LjQgNDQuOHMzMC43IDE3IDQ0LjggNi40elwiXVxufTtcbmNvbnN0IGZhV29ybSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3b3JtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTk5XCIsIFwiTTI1NiA5NmMwLTUzIDQzLTk2IDk2LTk2bDM4LjQgMEM0MzkuOSAwIDQ4MCA0MC4xIDQ4MCA4OS42bDAgODYuNCAwIDE2IDAgMTg0YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2cy0xMzYtNjAuOS0xMzYtMTM2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xNjhjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBiXCIsIFwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwIC43IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhUGx1ZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MjY4XSwgXCJmMWU2XCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yQzI5NyAzOTggMzUyIDMzMy40IDM1MiAyNTZsMC0zMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA3N1wiLCBcIk0yMzMuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI1NiAxNzMuMyA4Ni42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyelwiXVxufTtcbmNvbnN0IGZhSGFuZFNwb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtc3BvY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg0MDZdLCBcImYyNTlcIiwgXCJNMjQ2LjkgMjMuN0MyNDIuMyA2LjYgMjI0LjgtMy41IDIwNy43IDEuMXMtMjcuMiAyMi4xLTIyLjYgMzkuMkwyMzggMjM3LjhjMi41IDkuMi00LjUgMTguMi0xNCAxOC4yYy02LjQgMC0xMi00LjItMTMuOS0xMC4zTDE2Ni42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDk5LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNHMtMTQuNiA0MS4zIDEuNCA1Ni42TDE1Ni44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDEwLjkgMCA4LjIgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDQzLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjljLTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzNTUuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOWMtMTEuOSAwLTIyLjQtOC0yNS40LTE5LjVsLTU3LTIxMi44elwiXVxufTtcbmNvbnN0IGZhU3RvcHdhdGNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3B3YXRjaCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzkyMDFdLCBcImYyZjJcIiwgXCJNMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDM0LjRDOTIuMyAxMTMuOCAxNiAyMDAgMTYgMzA0YzAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOHMyMDgtOTMuMSAyMDgtMjA4YzAtNDEuOC0xMi4zLTgwLjctMzMuNS0xMTMuMmwyNC4xLTI0LjFjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzU1LjcgMTQzYy0yOC4xLTIzLTYyLjItMzguOC05OS43LTQ0LjZMMjU2IDY0bDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjI0IDAgMTc2IDB6bTcyIDE5MmwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEyOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbmNvbnN0IGZhRmFjZUtpc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1raXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTM1LCBcImtpc3NcIl0sIFwiZjU5NlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNDguNy0xOTguM2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQ0My4xIDI1Ny40IDQ0OCAyNDAgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMWMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2MwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMSAuMy0uMiAuNi0uNGMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjQtLjMtLjUtLjMtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhS2lzcyA9IGZhRmFjZUtpc3M7XG5jb25zdCBmYUJyaWRnZUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0Y2JcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5Ub25ndWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRvbmd1ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzOSwgXCJncmluLXRvbmd1ZVwiXSwgXCJmNTg5XCIsIFwiTTAgMjU2QzAgMzY4LjkgNzMuMSA0NjQuNyAxNzQuNSA0OTguOEMxNjUuMyA0ODQgMTYwIDQ2Ni42IDE2MCA0NDhsMC00Ny4zYy0yNC0xNy41LTQzLjEtNDEuNC01NC44LTY5LjJjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN2MtMTEuOCAyOC0zMS4xIDUyLTU1LjQgNjkuNmwwIDQ2LjljMCAxOC42LTUuMyAzNi0xNC41IDUwLjhDNDM4LjkgNDY0LjcgNTEyIDM2OC45IDUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NnptMTc2LjQtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOWMtMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMGMtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYUdyaW5Ub25ndWUgPSBmYUZhY2VHcmluVG9uZ3VlO1xuY29uc3QgZmFDaGVzc0Jpc2hvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1iaXNob3AnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5ODIxXSwgXCJmNDNhXCIsIFwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMmMwIDE2LjEgMTEuOSAyOS40IDI3LjQgMzEuN0M3OC40IDEwNi44IDggMTkwIDggMjg4YzAgNDcuNCAzMC44IDcyLjMgNTYgODQuN0w2NCA0MDBsMTkyIDAgMC0yNy4zYzI1LjItMTIuNSA1Ni0zNy40IDU2LTg0LjdjMC0zNy4zLTEwLjItNzIuNC0yNS4zLTEwNC4xbC05OS40IDk5LjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMMjcwLjggMTU0LjZjLTIzLjItMzguMS01MS44LTY5LjUtNzQuMi05MC45QzIxMi4xIDYxLjQgMjI0IDQ4LjEgMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDEyOCAwek00OCA0MzJMNi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMCA1MDEuOSAxMC4xIDUxMiAyMi42IDUxMmwyNzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMjcyIDQzMiA0OCA0MzJ6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpbldpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdyaW4td2lua1wiXSwgXCJmNThjXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNi45LTc5LjJjLTE3LjYtMjMuNS01Mi44LTIzLjUtNzAuNCAwYy01LjMgNy4xLTE1LjMgOC41LTIyLjQgMy4ycy04LjUtMTUuMy0zLjItMjIuNGMzMC40LTQwLjUgOTEuMi00MC41IDEyMS42IDBjNS4zIDcuMSAzLjkgMTcuMS0zLjIgMjIuNHMtMTcuMSAzLjktMjIuNC0zLjJ6TTE3Ni40IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluV2luayA9IGZhRmFjZUdyaW5XaW5rO1xuY29uc3QgZmFFYXJEZWFmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Vhci1kZWFmJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkZWFmXCIsIFwiZGVhZm5lc3NcIiwgXCJoYXJkLW9mLWhlYXJpbmdcIl0sIFwiZjJhNFwiLCBcIk01MDIuNiA1NC42bC00MCA0MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDAtNDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTMyMCAzMjBsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjQwIDEyOGMtNTcuNiAwLTEwNS4xIDQzLjYtMTExLjMgOTkuNWMtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM0M3NC44IDEzMi41IDE0OS40IDY0IDI0MCA2NGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NmMwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zYy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNi4xYzAtMzIuOSAxNy40LTU5LjYgMzQuNC03OGMxOC40LTIwIDI5LjYtNDYuNiAyOS42LTc1LjljMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xuY29uc3QgZmFEZWFmID0gZmFFYXJEZWFmO1xuY29uc3QgZmFEZWFmbmVzcyA9IGZhRWFyRGVhZjtcbmNvbnN0IGZhSGFyZE9mSGVhcmluZyA9IGZhRWFyRGVhZjtcbmNvbnN0IGZhUm9hZENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY0XCIsIFwiTTIxMy4yIDMyTDI4OCAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA3NC44IDBjMjcuMSAwIDUxLjMgMTcuMSA2MC4zIDQyLjZsNDIuNyAxMjAuNmMtMTAuOS0yLjEtMjIuMi0zLjItMzMuOC0zLjJjLTU5LjUgMC0xMTIuMSAyOS42LTE0NCA3NC44bDAtNDIuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzIuMyAwIDQuNi0uMyA2LjgtLjdjLTQuNSAxNS41LTYuOCAzMS44LTYuOCA0OC43YzAgNS40IC4yIDEwLjcgLjcgMTZsLS43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRMODYuNiA0ODBDNTYuNSA0ODAgMzIgNDU1LjUgMzIgNDI1LjRjMC02LjIgMS4xLTEyLjQgMy4xLTE4LjJMMTUyLjkgNzQuNkMxNjIgNDkuMSAxODYuMSAzMiAyMTMuMiAzMnpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0ODAgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYURpY2VGaXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UtZml2ZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NjBdLCBcImY1MjNcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVSc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXJzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicnNzLXNxdWFyZVwiXSwgXCJmMTQzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNGMxMzcgMCAyNDggMTExIDI0OCAyNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGM4My45IDAgMTUyIDY4LjEgMTUyIDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFSc3NTcXVhcmUgPSBmYVNxdWFyZVJzcztcbmNvbnN0IGZhTGFuZE1pbmVPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kLW1pbmUtb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MWJcIiwgXCJNMzQ0IDI0bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE5MiAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMi0yNTYgMCAwLTMyem0tNzcuMyA5MC41YzguMS0xNi4zIDI0LjgtMjYuNSA0Mi45LTI2LjVsMzI0LjcgMGMxOC4yIDAgMzQuOCAxMC4zIDQyLjkgMjYuNWwyNy42IDU1LjJDNTYzLjUgNDg3IDU0OCA1MTIgNTI0LjIgNTEybC00MDguNCAwYy0yMy44IDAtMzkuMy0yNS0yOC42LTQ2LjNsMjcuNi01NS4yek0zNi4zIDEzOC4zYzcuNS0xMC45IDIyLjUtMTMuNiAzMy40LTYuMWwxMDQgNzJjMTAuOSA3LjUgMTMuNiAyMi41IDYuMSAzMy40cy0yMi41IDEzLjYtMzMuNCA2LjFsLTEwNC03MmMtMTAuOS03LjUtMTMuNi0yMi41LTYuMS0zMy40em01MzQuMS02LjFjMTAuOS03LjUgMjUuOC00LjggMzMuNCA2LjFzNC44IDI1LjgtNi4xIDMzLjRsLTEwNCA3MmMtMTAuOSA3LjUtMjUuOCA0LjgtMzMuNC02LjFzLTQuOC0yNS44IDYuMS0zMy40bDEwNC03MnpcIl1cbn07XG5jb25zdCBmYUlDdXJzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaS1jdXJzb3InLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYyNDZcIiwgXCJNLjEgMjkuM0MtMS40IDQ3IDExLjcgNjIuNCAyOS4zIDYzLjlsOCAuN0M3MC41IDY3LjMgOTYgOTUgOTYgMTI4LjNMOTYgMjI0bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdzMTYuOSAzMC43IDM0LjUgMjkuMmw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjljMjEuMiAyNCA1MS4yIDQwIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdsMC05NS43IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC05NS43YzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN0MxNzkuMiAzLjYgMTQ5LjIgMTkuNyAxMjggNDMuN2MtMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3pcIl1cbn07XG5jb25zdCBmYVN0YW1wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YW1wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJmXCIsIFwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00N0MzNDQuNSAxMzguNSAzNTIgMTE4LjEgMzUyIDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjIuMSA3LjUgNDIuNSAyMC4xIDU4LjhjMTAuNyAxMy44IDE5LjkgMjkuNiAxOS45IDQ3YzAgMjkuOS0yNC4zIDU0LjItNTQuMiA1NC4yTDExMiAyNTZDNTAuMSAyNTYgMCAzMDYuMSAwIDM2OGMwIDIwLjkgMTMuNCAzOC43IDMyIDQ1LjNMMzIgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNTAuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNjMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTQxNiA0MTZsMCAzMkw5NiA0NDhsMC0zMiAzMjAgMHpcIl1cbn07XG5jb25zdCBmYVN0YWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFpcnMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUyODlcIiwgXCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NnpcIl1cbn07XG5jb25zdCBmYUkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaScsXG4gIGljb246IFszMjAsIDUxMiwgWzEwNV0sIFwiNDlcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDk2IDAgMCAzMjAtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTMyMCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE2MCAzMiAzMiAzMnpcIl1cbn07XG5jb25zdCBmYUhyeXZuaWFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hyeXZuaWEtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgWzgzNzIsIFwiaHJ5dm5pYVwiXSwgXCJmNmYyXCIsIFwiTTEyMS45IDExNi4yQzEzOC4zIDEwMy4xIDE1OC43IDk2IDE3OS42IDk2TDIyMyA5NmMyNy4xIDAgNDkgMjEuOSA0OSA0OWMwIDExLjUtNCAyMi40LTExLjEgMzFMMzIgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyMy41IDAtNTAuNiAyOC45Yy0xLjcgMS0zLjQgMi01LjEgMy4xTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMC4zIDBjLTIuOCA5LjktNC4zIDIwLjQtNC4zIDMxYzAgNjIuNCA1MC42IDExMyAxMTMgMTEzbDQzLjQgMGMzNS41IDAgNzAtMTIuMSA5Ny43LTM0LjNMMzA4IDQ0MWMxMy44LTExIDE2LTMxLjIgNS00NXMtMzEuMi0xNi00NS01bC01LjkgNC43Yy0xNi40IDEzLjEtMzYuNyAyMC4yLTU3LjcgMjAuMkwxNjEgNDE2Yy0yNy4xIDAtNDktMjEuOS00OS00OWMwLTExLjUgNC0yMi40IDExLjEtMzFMMzUyIDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTIzLjUgMCA1MC42LTI4LjljMS43LTEgMy40LTIgNS4xLTMuMWw2Ny44IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIwLjMgMGMyLjgtMTAgNC4zLTIwLjQgNC4zLTMxYzAtNjIuNC01MC42LTExMy0xMTMtMTEzbC00My40IDBjLTM1LjUgMC03MCAxMi4xLTk3LjcgMzQuM0w3NiA3MWMtMTMuOCAxMS0xNiAzMS4yLTUgNDVzMzEuMiAxNiA0NSA1bDUuOS00Ljd6XCJdXG59O1xuY29uc3QgZmFIcnl2bmlhID0gZmFIcnl2bmlhU2lnbjtcbmNvbnN0IGZhUGlsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGlsbHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ODRcIiwgXCJNMTEyIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDExMiA5NiAwIDAtMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDE0NEMwIDgyLjEgNTAuMSAzMiAxMTIgMzJzMTEyIDUwLjEgMTEyIDExMmwwIDIyNGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4TDAgMTQ0ek01NTQuOSAzOTkuNGMtNy4xIDEyLjMtMjMuNyAxMy4xLTMzLjggMy4xTDMzMy41IDIxNC45Yy0xMC0xMC05LjMtMjYuNyAzLjEtMzMuOEMzNjAgMTY3LjcgMzg3LjEgMTYwIDQxNiAxNjBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBjMCAyOC45LTcuNyA1Ni0yMS4xIDc5LjR6bS01OS41IDU5LjVDNDcyIDQ3Mi4zIDQ0NC45IDQ4MCA0MTYgNDgwYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTI4LjkgNy43LTU2IDIxLjEtNzkuNGM3LjEtMTIuMyAyMy43LTEzLjEgMzMuOC0zLjFMNDk4LjUgNDI1LjFjMTAgMTAgOS4zIDI2LjctMy4xIDMzLjh6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpbldpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpZGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTUsIFwiZ3Jpbi1hbHRcIl0sIFwiZjU4MVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5ek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjRzLTE0LjMgNjQtMzIgNjR6XCJdXG59O1xuY29uc3QgZmFHcmluQWx0ID0gZmFGYWNlR3JpbldpZGU7XG5jb25zdCBmYVRvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb3RoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5NDYzXSwgXCJmNWM5XCIsIFwiTTE4Ni4xIDUyLjFDMTY5LjMgMzkuMSAxNDguNyAzMiAxMjcuNSAzMkM3NC43IDMyIDMyIDc0LjcgMzIgMTI3LjVsMCA2LjJjMCAxNS44IDMuNyAzMS4zIDEwLjcgNDUuNWwyMy41IDQ3LjFjNC41IDguOSA3LjYgMTguNCA5LjQgMjguMmwzNi43IDIwNS44YzIgMTEuMiAxMS42IDE5LjQgMjIuOSAxOS44czIxLjQtNy40IDI0LTE4LjRsMjguOS0xMjEuM0MxOTIuMiAzMjMuNyAyMDcgMzEyIDIyNCAzMTJzMzEuOCAxMS43IDM1LjggMjguM2wyOC45IDEyMS4zYzIuNiAxMS4xIDEyLjcgMTguOCAyNCAxOC40czIwLjktOC42IDIyLjktMTkuOGwzNi43LTIwNS44YzEuOC05LjggNC45LTE5LjMgOS40LTI4LjJsMjMuNS00Ny4xYzcuMS0xNC4xIDEwLjctMjkuNyAxMC43LTQ1LjVsMC0yLjFjMC01NS00NC42LTk5LjYtOTkuNi05OS42Yy0yNC4xIDAtNDcuNCA4LjgtNjUuNiAyNC42bC0zLjIgMi44IDE5LjUgMTUuMmM3IDUuNCA4LjIgMTUuNSAyLjggMjIuNXMtMTUuNSA4LjItMjIuNSAyLjhsLTI0LjQtMTktMzctMjguOHpcIl1cbn07XG5jb25zdCBmYVYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndicsXG4gIGljb246IFszODQsIDUxMiwgWzExOF0sIFwiNTZcIiwgXCJNMTkuNyAzNC41YzE2LjMtNi44IDM1IC45IDQxLjggMTcuMkwxOTIgMzY0LjggMzIyLjUgNTEuN2M2LjgtMTYuMyAyNS41LTI0IDQxLjgtMTcuMnMyNCAyNS41IDE3LjIgNDEuOGwtMTYwIDM4NGMtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdzLTI0LjYtNy44LTI5LjUtMTkuN0wyLjUgNzYuM2MtNi44LTE2LjMgLjktMzUgMTcuMi00MS44elwiXVxufTtcbmNvbnN0IGZhQmFuZ2xhZGVzaGlUYWthU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW5nbGFkZXNoaS10YWthLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUyZTZcIiwgXCJNMzYgMzIuM0MxOC40IDMwLjEgMi40IDQyLjUgLjIgNjBTMTAuNSA5My42IDI4IDk1LjhsNy45IDFjMTYgMiAyOCAxNS42IDI4IDMxLjhMNjQgMTYwbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAxNjBjMCA1MyA0MyA5NiA5NiA5NmwzMiAwYzEwNiAwIDE5Mi04NiAxOTItMTkybDAtMzJjMC01My00My05Ni05Ni05NmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMS41YzAtNDguNC0zNi4xLTg5LjMtODQuMS05NS4zbC03LjktMXpcIl1cbn07XG5jb25zdCBmYUJpY3ljbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmljeWNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY5MF0sIFwiZjIwNlwiLCBcIk0zMTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjUuNyAwIDM0LjYgNjQtMTQ5LjQgMC0yNy40LTM4QzE5MSA5OS43IDE4My43IDk2IDE3NiA5NmwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0My43IDAgMjIuMSAzMC43LTI2LjYgNTMuMWMtMTAtMi41LTIwLjUtMy44LTMxLjItMy44QzU3LjMgMjI0IDAgMjgxLjMgMCAzNTJzNTcuMyAxMjggMTI4IDEyOGM2NS4zIDAgMTE5LjEtNDguOSAxMjctMTEybDQ5IDBjOC41IDAgMTYuMy00LjUgMjAuNy0xMS44bDg0LjgtMTQzLjUgMjEuNyA0MC4xQzQwMi40IDI3Ni4zIDM4NCAzMTIgMzg0IDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4Yy0xMy41IDAtMjYuNSAyLjEtMzguNyA2TDM3NS40IDQ4LjhDMzY5LjggMzguNCAzNTkgMzIgMzQ3LjIgMzJMMzEyIDMyek00NTguNiAzMDMuN2wzMi4zIDU5LjdjNi4zIDExLjcgMjAuOSAxNiAzMi41IDkuN3MxNi0yMC45IDkuNy0zMi41bC0zMi4zLTU5LjdjMy42LS42IDcuNC0uOSAxMS4yLS45YzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyYzAtMTguNiA3LTM1LjUgMTguNi00OC4zek0xMzMuMiAzNjhsNjUgMGMtNy4zIDMyLjEtMzYgNTYtNzAuMiA1NmMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMxLjcgMCAzLjQgLjEgNS4xIC4ybC0yNC4yIDQ4LjVjLTkgMTguMSA0LjEgMzkuNCAyNC4zIDM5LjR6bTMzLjctNDhsNTAuNy0xMDEuMyA3Mi45IDEwMS4yLS4xIC4xLTEyMy41IDB6bTkwLjYtMTI4bDEwOC41IDBMMzE3IDI3NC44IDI1Ny40IDE5MnpcIl1cbn07XG5jb25zdCBmYVN0YWZmU25ha2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhZmYtc25ha2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcInJvZC1hc2NsZXBpdXNcIiwgXCJyb2Qtc25ha2VcIiwgXCJzdGFmZi1hZXNjdWxhcGl1c1wiXSwgXCJlNTc5XCIsIFwiTTIyMi42IDQzLjJsLS4xIDQuOEwyODggNDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTQwIDAgMC04MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00MCAwLTI4IDAtNC41IDE0NCA0MC41IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE2IDAgMC04MCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00MyAwLTMuMSA5OS41TDIwOC41IDQ5NWwwIDFjLS4zIDguOS03LjYgMTYtMTYuNSAxNnMtMTYuMi03LjEtMTYuNS0xNmwwLTEtMS0zMUwxMzYgNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDM2IDAtMS0zMi0xOSAwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3LjEgODAtOTQuN2wwIDk0LjdjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjUgMEwxNjQgMTI4bC0yOCAwLTEzLjQgMGMtOSAxOC45LTI4LjMgMzItNTAuNiAzMmwtMTYgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZTMjUuMSA0OCA1NiA0OGw4IDAgOCAwIDg5LjUgMC0uMS00LjhMMTYxIDMyYzAtLjcgMC0xLjMgMC0xLjljLjUtMTYuNiAxNC4xLTMwIDMxLTMwczMwLjUgMTMuNCAzMSAzMGMwIC42IDAgMS4zIDAgMS45bC0uNCAxMS4yek02NCAxMTJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhUm9kQXNjbGVwaXVzID0gZmFTdGFmZlNuYWtlO1xuY29uc3QgZmFSb2RTbmFrZSA9IGZhU3RhZmZTbmFrZTtcbmNvbnN0IGZhU3RhZmZBZXNjdWxhcGl1cyA9IGZhU3RhZmZTbmFrZTtcbmNvbnN0IGZhSGVhZFNpZGVDb3VnaFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWQtc2lkZS1jb3VnaC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MlwiLCBcIk00NDggMzI1LjhsNDQgMzQuNWM4LjEgMS40IDE0LjggNi44IDE4IDE0LjFMNTUyLjkgNDA4YzEwLjYgLjQgMTkuNSA3LjYgMjIuMiAxNy40bDM5LjEgMzAuNmMuNiAwIDEuMi0uMSAxLjgtLjFjMTEuMSAwIDIwLjQgNy41IDIzLjIgMTcuOGwtMy45IDBjNi4yIDguNSA2LjQgMjAuNC0uNCAyOWMtOC4yIDEwLjQtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yUzI4LjQtMy4xIDM4LjggNS4xTDg5LjYgNDQuOUMxMjcgMTYuNyAxNzMuNSAwIDIyNCAwbDI0IDBjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM2LjIgNy44IDkuNiAxNy40IDkuNiAyNy40YzAgMjQuMi0xOS42IDQzLjgtNDMuOCA0My44TDQ0OCAzMjBzMCAwIDAgMGwwIDUuOHpNMCAyMjQuMmMwLTM4LjcgOS44LTc1LjEgMjcuMS0xMDYuOUwzNDEuOCAzNjUuM2wtMi41IC4zYy0xMSAxLjQtMTkuMiAxMC43LTE5LjIgMjEuOGMwIDExLjYgOSAyMS4yIDIwLjYgMjEuOWw2MiAzLjkgNDMgMzMuOUM0MzkuMyA0NjYuMiA0MjEuMiA0ODAgNDAwIDQ4MGwtODAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQwIDBzMCAwIDAgMEw5NiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzIuN2MwLTE2LjctNi45LTMyLjUtMTcuMS00NS44QzE2LjYgMzIyLjQgMCAyNzQuMSAwIDIyNC4yek02MTYgMzYwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTY0LTQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVRydWNrTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1tZWRpY2FsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjU3LCBcImFtYnVsYW5jZVwiXSwgXCJmMGY5XCIsIFwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDM2OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU4OS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMTguNyAwIDMyIDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTEyOCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek00MTYgMjU2bDEyOCAwIDAtMTguN0w0NjYuNyAxNjAgNDE2IDE2MGwwIDk2ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzY4LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE3NiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUFtYnVsYW5jZSA9IGZhVHJ1Y2tNZWRpY2FsO1xuY29uc3QgZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OThcIiwgXCJNNTA1IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzgzIDk1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODgtODh6TTMwNS41IDI3LjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI3MS41IDM4LjZjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xMS4zIDExLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44TDEwMS44IDIzMWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNjcuOSAyNDIuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNEw5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguOS02OC45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMjIuNSAyMi41IDUzLjMgMzEuNSA4Mi40IDI3YzAtMSAwLTIuMSAwLTMuMWMwLTMzLjEgOS4xLTY0LjEgMjUtOTAuNmMtMTUuNS04LjctMzIuNS0xMy44LTQ5LjgtMTUuNWwzMS45LTMxLjkgMTIuMiAxMi4yYzYgNiAxMi42IDExLjEgMTkuNyAxNS4yYzI3LjUtMzQgNjcuMy01Ny41IDExMi42LTYzLjhjLTQuMS0zLjgtOC40LTcuMy0xMi45LTEwLjVMNTA1IDEzN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01OS40IDU5LjRjLTIwLjYtNC40LTQyLTMuNy02Mi4zIDIuMWM2LjEtMjEuMyA2LjYtNDMuOCAxLjQtNjUuM0w0MDkgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMjkuMSA1Mi45Yy0zLjctNS03LjgtOS44LTEyLjQtMTQuM0wzMDUuNSAyNy4zek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhU25vd21hbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93bWFuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTczMSwgOTkyNF0sIFwiZjdkMFwiLCBcIk0zNDEuMSAxNDAuNmMtMiAzLjktMS42IDguNiAxLjIgMTJjNyA4LjUgMTIuOSAxOC4xIDE3LjIgMjguNEw0MDggMTYwLjJsMC00MC4yYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOS42IDIyLjUtOS43YzEyLjItNS4yIDI2LjMgLjQgMzEuNSAxMi42cy0uNCAyNi4zLTEyLjYgMzEuNWwtNTYgMjQtNzMuNiAzMS41Yy0uNSA5LjUtMi4xIDE4LjYtNC44IDI3LjNjLTEuMiAzLjgtLjEgOCAyLjggMTAuOEMzOTYuNyAyOTYuOSA0MTYgMzM4LjIgNDE2IDM4NGMwIDQ0LjctMTguMyA4NS00Ny44IDExNC4xYy05LjkgOS43LTIzLjcgMTMuOS0zNy41IDEzLjlsLTE0OS4zIDBjLTEzLjkgMC0yNy43LTQuMi0zNy41LTEzLjlDMTE0LjMgNDY5IDk2IDQyOC43IDk2IDM4NGMwLTQ1LjggMTkuMy04Ny4xIDUwLjEtMTE2LjNjMi45LTIuOCA0LTYuOSAyLjgtMTAuOGMtMi43LTguNy00LjMtMTcuOS00LjgtMjcuM0w3MC41IDE5OC4xbC01Ni0yNEMyLjQgMTY4LjgtMy4zIDE1NC43IDEuOSAxNDIuNXMxOS4zLTE3LjggMzEuNS0xMi42TDU2IDEzOS42IDU2IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAuMkwxNTIuNiAxODFjNC4zLTEwLjMgMTAuMS0xOS45IDE3LjItMjguNGMyLjgtMy40IDMuMy04LjEgMS4yLTEyQzE2NCAxMjcuMiAxNjAgMTEyLjEgMTYwIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAxNi4xLTQgMzEuMi0xMC45IDQ0LjZ6TTIyNCA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTQ4IDEyOGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tMTYgODBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0xNiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwek0yODggOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tNDggMjRsMCAzLjJjMCAzLjIgLjggNi4zIDIuMyA5bDkgMTYuOWMuOSAxLjcgMi43IDIuOCA0LjcgMi44czMuOC0xLjEgNC43LTIuOGw5LTE2LjljMS41LTIuOCAyLjMtNS45IDIuMy05bDAtMy4yYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2elwiXVxufTtcbmNvbnN0IGZhTW9ydGFyUGVzdGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vcnRhci1wZXN0bGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YTdcIiwgXCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwbDE0NC45IDBMNTAyLjYgNTQuNmMxMS44LTExLjggMTIuNi0zMC44IDEuNi00My41ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJjMCA4Mi41IDQzLjQgMTQ3LjcgMTIzLjkgMTc2LjJjLTExLjEgMTMuOS0xOS40IDMwLjMtMjMuOSA0OC4xQzEyNy42IDQ5Ny40IDE0Mi4zIDUxMiAxNjAgNTEybDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43Yy00LjUtMTcuOC0xMi44LTM0LjEtMjMuOS00OC4xQzQzNi42IDQwMy43IDQ4MCAzMzguNSA0ODAgMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE5MnpcIl1cbn07XG5jb25zdCBmYVJvYWRCYXJyaWVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtYmFycmllcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2MlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xODEuN0wxNDkuMiA5NiA2NCA5NmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDUuMiA5NmwtNzQuMyAwLTUuNCAxMC43TDIzNC44IDI4OGw3NC4zIDAgNS40LTEwLjdMNDA1LjIgOTZ6TTM2Mi44IDI4OGw3NC4zIDAgNS40LTEwLjdMNTMzLjIgOTZsLTc0LjMgMC01LjQgMTAuN0wzNjIuOCAyODh6TTIwMi44IDk2bC01LjQgMTAuN0wxMDYuOCAyODhsNzQuMyAwIDUuNC0xMC43TDI3Ny4yIDk2bC03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43TDQ5MC44IDI4OHpcIl1cbn07XG5jb25zdCBmYVNjaG9vbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5NzldLCBcImY1NDlcIiwgXCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTYgNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIwOCAwIDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDk2IDIwOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ3My43IDk2IDMzNy44IDUuNHpNOTYgMTkybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6bTQwMCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0ek05NiAzMjBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnptNDAwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjR6TTIzMiAxNzZhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwem04OC00OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFJZ2xvbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZ2xvbycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjdhZVwiLCBcIk0zMjAgMzMuOEwzMjAgMTYwIDQ4LjUgMTYwQzEwMC4yIDgyLjggMTg4LjEgMzIgMjg4IDMyYzEwLjggMCAyMS41IC42IDMyIDEuOHpNMzUyIDE2MGwwLTEyMC45QzQyNC45IDU1LjcgNDg3LjIgOTkuOCA1MjcuNSAxNjBMMzUyIDE2MHpNMjkuOSAxOTJMOTYgMTkybDAgMTI4TDAgMzIwYzAtNDYgMTAuOC04OS40IDI5LjktMTI4ek0xOTIgMzIwbC02NCAwIDAtMTI4IDMyMCAwIDAgMTI4LTY0IDAgMCAzMiAxOTIgMCAwIDgwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNzYgMCAwLTEyOGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGwwIDEyOEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtODAgMTkyIDAgMC0zMnptMjg4IDBsMC0xMjggNjYuMSAwYzE5LjIgMzguNiAyOS45IDgyIDI5LjkgMTI4bC05NiAwelwiXVxufTtcbmNvbnN0IGZhSm9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnam9pbnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1OTVcIiwgXCJNNDQ4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTFjMCA1NS4yIDIxLjkgMTA4LjEgNjAuOSAxNDcuMWwyMSAyMWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDExYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjEtMjFDNDYzLjIgMTE3LjggNDQ4IDgxLjIgNDQ4IDQzbDAtMTF6TTU3NiAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExYzAtNTUuMi0yMS45LTEwOC4xLTYwLjktMTQ3LjFsLTIxLTIxYy05LTktMTQuMS0yMS4yLTE0LjEtMzMuOWwwLTExYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTFjMCAyOS43IDExLjggNTguMiAzMi44IDc5LjJsMjEgMjFjMjcgMjcgNDIuMiA2My42IDQyLjIgMTAxLjhsMCAxMXpNMjI5LjggMzYwYy00LjctMi4zLTEwLTIuNy0xNS4yLTJjLTM3LjggNS42LTc1LjIgMTQuMy0xMDYuOSAyMi44QzgxLjMgMzg4IDU4LjMgMzk1LjEgNDIgNDAwLjRjLTguMiAyLjctMTQuNyA0LjktMTkuMiA2LjVjLTIuMyAuOC00IDEuNC01LjIgMS44bC0xLjMgLjVDNi44IDQxMi41IDAgNDIxLjQgMCA0MzJzNi44IDE5LjUgMTYuMyAyMi43bDEuMyAuNWMxLjIgLjQgMyAxLjEgNS4yIDEuOGM0LjUgMS42IDExIDMuOCAxOS4yIDYuNWMxNi4zIDUuNCAzOS4yIDEyLjUgNjUuNyAxOS42QzE2MC4zIDQ5Ny4zIDIyOC44IDUxMiAyODggNTEybDY3LjMgMGM0LjEgMCA2LjMtNS4xIDMuNi04LjNMMjU2LjUgMzgwLjhjLTcuNC04LjktMTYuNS0xNS45LTI2LjctMjAuOHpNNDQ1IDUxMmwxOSAwIDUxLjMgMGM0LjEgMCA2LjMtNS4xIDMuNi04LjNMNDE2LjUgMzgwLjhDNDAxLjMgMzYyLjUgMzc4LjggMzUyIDM1NSAzNTJsLTE5IDAtNDggMGMtMS4xIDAtMi4zIDAtMy40IDBjLTQuMSAwLTYuMiA1LjEtMy41IDguM0wzODMuNSA0ODMuMkMzOTguNyA1MDEuNSA0MjEuMiA1MTIgNDQ1IDUxMnptLTMuOS0xNTEuN0w1NDMuNSA0ODMuMmMxNC42IDE3LjUgMzUuOSAyNy45IDU4LjYgMjguN2MyMS4xLTEuMSAzNy45LTE4LjYgMzcuOS0zOS45bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTE1NS4zIDBjLTQuMSAwLTYuMyA1LjEtMy42IDguM3pcIl1cbn07XG5jb25zdCBmYUFuZ2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtcmlnaHQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs4MjUwXSwgXCJmMTA1XCIsIFwiTTI3OC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMTAuNyAyNTYgNzMuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwelwiXVxufTtcbmNvbnN0IGZhSG9yc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9yc2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMTRdLCBcImY2ZjBcIiwgXCJNNDQ4IDIzOC4xbDAtNzguMSAxNiAwIDkuOCAxOS42YzEyLjUgMjUuMSA0Mi4yIDM2LjQgNjguMyAyNmMyMC41LTguMiAzMy45LTI4IDMzLjktNTAuMUw1NzYgODBjMC0xOS4xLTguNC0zNi4zLTIxLjctNDhsNS43IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMNDgwIDAgNDQ4IDBDMzc3LjMgMCAzMjAgNTcuMyAzMjAgMTI4bC05NiAwLTIwLjggMC01NC40IDBjLTMwLjcgMC01Ny42IDE2LjMtNzIuNSA0MC44QzMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NmwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41YzEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42Yy0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43YzAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2MwIDAgMCAwIDAgMGwwLTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYVEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncScsXG4gIGljb246IFs0NDgsIDUxMiwgWzExM10sIFwiNTFcIiwgXCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xQzM3MS45IDMyNS44IDM4NCAyOTIuMyAzODQgMjU2YzAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJzMjI0IDEwMC4zIDIyNCAyMjRjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45elwiXVxufTtcbmNvbnN0IGZhRyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTAzXSwgXCI0N1wiLCBcIk0yMjQgOTZDMTM1LjYgOTYgNjQgMTY3LjYgNjQgMjU2czcxLjYgMTYwIDE2MCAxNjBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhMMjU2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDQgMGMyNS44IDAgNDkuNiAyMS40IDQ3LjIgNTAuNkM0MzcuOCAzODkuNiAzNDEuNCA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTdjMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnpcIl1cbn07XG5jb25zdCBmYU5vdGVzTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3Rlcy1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDgxXCIsIFwiTTk2IDM1Mkw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5Ny41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01OC41IDU4LjVjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMMTYwIDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI3MiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBDNjAuOSA1MTIgMCA0NTEuMSAwIDM3NkwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDE2MCAwelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWhhbGYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc3NzcsIFwidGVtcGVyYXR1cmUtMlwiLCBcInRoZXJtb21ldGVyLTJcIiwgXCJ0aGVybW9tZXRlci1oYWxmXCJdLCBcImYyYzlcIiwgXCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2NC41YzAgMTcuMy03LjEgMzEuOS0xNS4zIDQyLjVDODYuMiAzMzIuNiA4MCAzNDkuNSA4MCAzNjhjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTE4LjUtNi4yLTM1LjQtMTYuNy00OC45Yy04LjItMTAuNi0xNS4zLTI1LjItMTUuMy00Mi41TDIwOCAxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEybDAgMTY0LjRjMCAuMSAuMSAuMyAuMiAuNmMuMiAuNiAuOCAxLjYgMS43IDIuOGMxOC45IDI0LjQgMzAuMSA1NSAzMC4xIDg4LjFjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtMzMuMiAxMS4yLTYzLjggMzAuMS04OC4xYy45LTEuMiAxLjUtMi4yIDEuNy0yLjhjLjEtLjMgLjItLjUgLjItLjZMNDggMTEyek0yMDggMzY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM0wxNDQgMjA4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMTQuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZTIgPSBmYVRlbXBlcmF0dXJlSGFsZjtcbmNvbnN0IGZhVGhlcm1vbWV0ZXIyID0gZmFUZW1wZXJhdHVyZUhhbGY7XG5jb25zdCBmYVRoZXJtb21ldGVySGFsZiA9IGZhVGVtcGVyYXR1cmVIYWxmO1xuY29uc3QgZmFEb25nU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb25nLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxNjlcIiwgXCJNMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNDkuMWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xYy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHM1Ny4zIDEyOCAxMjggMTI4YzI0LjUgMCA0Ny40LTYuOSA2Ni44LTE4LjhjNSAxMS4xIDE2LjIgMTguOCAyOS4yIDE4LjhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NiAwLTE2MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTI4IDI4OGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6XCJdXG59O1xuY29uc3QgZmFDYXBzdWxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXBzdWxlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ2YlwiLCBcIk02NCAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0wIDE0NEwwIDM2OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTc4LjRjMS44IDE5LjEgOC4yIDM4IDE5LjggNTQuOEwzNzIuMyA0MzEuN2MzNS41IDUxLjcgMTA1LjMgNjQuMyAxNTYgMjguMXM2My0xMDcuNSAyNy41LTE1OS4yTDQyNy4zIDExMy4zQzM5MS44IDYxLjUgMzIxLjkgNDkgMjcxLjMgODUuMmMtMjggMjAtNDQuMyA1MC44LTQ3LjMgODNsMC0yNC4yYzAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgODIuMSAwIDE0NHptMjk2LjYgNjQuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzFjMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjZMMzYxLjYgMzAzbC02NS05NC44ek00OTEgNDA3LjdjLS44IC42LTEuNiAxLjEtMi40IDEuNmw0LTIuOGMtLjUgLjQtMSAuOC0xLjYgMS4yelwiXVxufTtcbmNvbnN0IGZhUG9vU3Rvcm0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9vLXN0b3JtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwb28tYm9sdFwiXSwgXCJmNzVhXCIsIFwiTTIzNi45IC4yYy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuM2MyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xYzAgMjEuNy04LjUgMzcuMi0yMS45IDQ3LjZjLTEzLjggMTAuOC0zNCAxNy01Ny44IDE3TDEyOCAxMTJjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTIuMiAzLjQgMjMuNSA5LjMgMzMuMkMzMS43IDIxNi4yIDAgMjUyLjQgMCAyOTZjMCA0MC45IDI4IDc1LjQgNjUuOCA4NS4yYy01LjMtMTguNSAxLTM4LjUgMTYuMi01MC43bDE2MC0xMjhjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDI4NS43IDMyMGwxOC4zIDBjMjAuNCAwIDM4LjUgMTIuOSA0NS4zIDMyLjFjMy43IDEwLjYgMy41IDIxLjggMCAzMS45bDEwLjcgMGM0OC42IDAgODgtMzkuNCA4OC04OGMwLTQzLjYtMzEuNy03OS44LTczLjMtODYuOGM1LjktOS43IDkuMy0yMS4xIDkuMy0zMy4yYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xLjQgMGMuOS01LjQgMS40LTEwLjkgMS40LTE2LjZjMC00OC43LTM2LjEtODguOS04My4xLTk1LjJ6bTQ1LjEgMjI3LjRjLTUuOC00LjctMTQuMi00LjctMjAuMS0uMWwtMTYwIDEyOGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOHM4LjMgMTAuNyAxNS4xIDEwLjdsNzAuMSAwTDEyOS43IDQ4OC44Yy0zLjQgNi43LTEuNiAxNC45IDQuMyAxOS42czE0LjIgNC43IDIwLjEgLjFsMTYwLTEyOGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44cy04LjMtMTAuNy0xNS4xLTEwLjdsLTcwLjEgMCA1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4zLTE5LjZ6XCJdXG59O1xuY29uc3QgZmFQb29Cb2x0ID0gZmFQb29TdG9ybTtcbmNvbnN0IGZhRmFjZUZyb3duT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWZyb3duLW9wZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NTAsIFwiZnJvd24tb3BlblwiXSwgXCJmNTdhXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTEyMiAxNzQuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40YzE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNGMtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44elwiXVxufTtcbmNvbnN0IGZhRnJvd25PcGVuID0gZmFGYWNlRnJvd25PcGVuO1xuY29uc3QgZmFIYW5kUG9pbnRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTc1N10sIFwiZjBhNlwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMEwzMiAzMnpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNmMxMy4yIDAgMjUuNC00IDM1LjYtMTAuOGM4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44YzExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyelwiXVxufTtcbmNvbnN0IGZhTW9uZXlCaWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwZDZcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDMyMGwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAxOTJsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTI4OCAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFCb29rbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rbWFyaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODI3OCwgNjE1OTFdLCBcImYwMmVcIiwgXCJNMCA0OFY0ODcuN0MwIDUwMS4xIDEwLjkgNTEyIDI0LjMgNTEyYzUgMCA5LjktMS41IDE0LTQuNEwxOTIgNDAwIDM0NS43IDUwNy42YzQuMSAyLjkgOSA0LjQgMTQgNC40YzEzLjQgMCAyNC4zLTEwLjkgMjQuMy0yNC4zVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHpcIl1cbn07XG5jb25zdCBmYUFsaWduSnVzdGlmeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1qdXN0aWZ5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM5XCIsIFwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFVbWJyZWxsYUJlYWNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VtYnJlbGxhLWJlYWNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTU4XSwgXCJmNWNhXCIsIFwiTTM0Ni4zIDI3MS44bC02MC4xLTIxLjlMMjE0IDQ0OCAzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI2MS45IDAgNjQuMS0xNzYuMnptMTIxLjEtLjJsLTMuMyA5LjEgNjcuNyAyNC42YzE4LjEgNi42IDM4LTQuMiAzOS42LTIzLjRjNi41LTc4LjUtMjMuOS0xNTUuNS04MC44LTIwOC41YzIgOCAzLjIgMTYuMyAzLjQgMjQuOGwuMiA2YzEuOCA1Ny03LjMgMTEzLjgtMjYuOCAxNjcuNHpNNDYyIDk5LjFjLTEuMS0zNC40LTIyLjUtNjQuOC01NC40LTc3LjRjLS45LS40LTEuOS0uNy0yLjgtMS4xYy0zMy0xMS43LTY5LjgtMi40LTkzLjEgMjMuOGwtNCA0LjVDMjcyLjQgODguMyAyNDUgMTM0LjIgMjI2LjggMTg0bC0zLjMgOS4xTDQzNCAyNjkuN2wzLjMtOS4xYzE4LjEtNDkuOCAyNi42LTEwMi41IDI0LjktMTU1LjVsLS4yLTZ6TTEwNy4yIDExMi45Yy0xMS4xIDE1LjctMi44IDM2LjggMTUuMyA0My40bDcxIDI1LjggMy4zLTkuMWMxOS41LTUzLjYgNDkuMS0xMDMgODcuMS0xNDUuNWw0LTQuNWM2LjItNi45IDEzLjEtMTMgMjAuNS0xOC4yYy03OS42IDIuNS0xNTQuNyA0Mi4yLTIwMS4yIDEwOHpcIl1cbn07XG5jb25zdCBmYUhlbG1ldFVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlbG1ldC11bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUwM1wiLCBcIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwQzEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NEwyMDAgMzg0bDE0LjkgMEwzNDMuNSA1MDUuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjUgMC0xLjUtMS41TDM2OCAyODhsODAgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0uNSAwek0zMjAgNDE3LjJsLTc4LTczLjdMMjc0LjQgMjg4bDQ1LjYgMCAwIDEyOS4yek0yODUuMyAxMDMuMWwzNC43IDUyIDAtNDMuMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MiAwIDQzLjJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTE2MCAxMTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYUJ1bGxzZXllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1bGxzZXllJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTQwXCIsIFwiTTQ0OCAyNTZBMTkyIDE5MiAwIDEgMCA2NCAyNTZhMTkyIDE5MiAwIDEgMCAzODQgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQmFjb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFjb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjkzNjNdLCBcImY3ZTVcIiwgXCJNNDM5LjIgMS4yYzExLjItMy4yIDIzLjItLjEgMzEuNCA4LjFMNTE4IDU2LjdsLTI2LjUgNy45Yy01OCAxNi42LTk4LjEgMzkuNi0xMjkuNiA2Ny40Yy0zMS4yIDI3LjUtNTMuMiA1OS4xLTc1LjEgOTAuOWwtMi4zIDMuM0MyNDEuNiAyODguNyAxOTUgMzU2LjYgNzIuOCA0MTcuN0wzNy45IDQzNS4yIDkuNCA0MDYuNmMtNy4zLTcuMy0xMC42LTE3LjYtOS0yNy44czguMS0xOC45IDE3LjMtMjMuNUMxMzYuMSAyOTYuMiAxODAuOSAyMzEgMjIzLjMgMTY5LjNsMi4zLTMuNGMyMS44LTMxLjggNDQuOS02NC45IDc3LjctOTMuOWMzMy40LTI5LjUgNzUuOC01My42IDEzNS45LTcwLjh6TTYxLjggNDU5bDI1LjQtMTIuN2MxMjkuNS02NC43IDE3OS45LTEzOC4xIDIyMy44LTIwMmwyLjItMy4zYzIyLjEtMzIuMSA0Mi4xLTYwLjUgNjkuOS04NS4xYzI3LjUtMjQuMyA2My40LTQ1LjIgMTE3LjMtNjAuNmMwIDAgMCAwIDAgMGwuMi0uMSA0My4xLTEyLjkgMjMgMjNjOCA4IDExLjIgMTkuNyA4LjMgMzAuN3MtMTEuMyAxOS42LTIyLjIgMjIuN2MtNTEuOSAxNC44LTg1LjYgMzQuNy0xMTEuMSA1Ny4yYy0yNi4xIDIzLTQ1LjEgNDkuOS02Ny4zIDgyLjFsLTIuMiAzLjJDMzI3LjggMzY1LjkgMjc1LjUgNDQyIDE0Mi4zIDUwOC42Yy0xMi4zIDYuMi0yNy4yIDMuNy0zNi45LTZMNjEuOCA0NTl6XCJdXG59O1xuY29uc3QgZmFIYW5kUG9pbnREb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtZG93bicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjBhN1wiLCBcIk0zMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIwOC02NCAwIDAgMjA4ek0yMjQgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS05Ni04OGwwIC42YzkuNC01LjQgMjAuMy04LjYgMzItOC42YzEzLjIgMCAyNS40IDQgMzUuNiAxMC44YzguNy0yNC45IDMyLjUtNDIuOCA2MC40LTQyLjhjMTEuNyAwIDIyLjYgMy4xIDMyIDguNmwwLTguNkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwTDE2Mi4zIDBDMTE5LjggMCA3OS4xIDE2LjkgNDkuMSA0Ni45TDM3LjUgNTguNUMxMy41IDgyLjUgMCAxMTUuMSAwIDE0OWwwIDI3YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBsLTU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MnpcIl1cbn07XG5jb25zdCBmYUFycm93VXBGcm9tQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLWJyYWNrZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwOWFcIiwgXCJNMjQ2LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMTkyIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0elwiXVxufTtcbmNvbnN0IGZhRm9sZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE5MywgMTI4NDQ3LCA2MTcxNiwgXCJmb2xkZXItYmxhbmtcIl0sIFwiZjA3YlwiLCBcIk02NCA0ODBINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEgyODhjLTEwLjEgMC0xOS42LTQuNy0yNS42LTEyLjhMMjQzLjIgNTcuNkMyMzEuMSA0MS41IDIxMi4xIDMyIDE5MiAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIl1cbn07XG5jb25zdCBmYUZvbGRlckJsYW5rID0gZmFGb2xkZXI7XG5jb25zdCBmYUZpbGVXYXZlZm9ybSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXdhdmVmb3JtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJmaWxlLW1lZGljYWwtYWx0XCJdLCBcImY0NzhcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDIyNCAxMTIgMGM2LjEgMCAxMS42IDMuNCAxNC4zIDguOEwxNzYgMzMyLjJsNDkuNy05OS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOHMxMS42IDMuNCAxNC4zIDguOEwyODEuOSAyODhsNzAuMSAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwYy02LjEgMC0xMS42LTMuNC0xNC4zLTguOEwyNDAgMjc1LjhsLTQ5LjcgOTkuNGMtMi43IDUuNC04LjMgOC44LTE0LjMgOC44cy0xMS42LTMuNC0xNC4zLTguOEwxMzQuMSAzMjAgMzIgMzIwbDAgMTI4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyNTYgMCA5NiAwek0yODggMGwwIDEyOCAxMjggMEwyODggMHpcIl1cbn07XG5jb25zdCBmYUZpbGVNZWRpY2FsQWx0ID0gZmFGaWxlV2F2ZWZvcm07XG5jb25zdCBmYVJhZGlhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YjlcIiwgXCJNMjE2IDE4Ni43Yy0yMy45IDEzLjgtNDAgMzkuNy00MCA2OS4zTDMyIDI1NkMxNC4zIDI1Ni0uMiAyNDEuNiAyIDIyNC4xQzEwLjcgMTU0IDQ3LjggOTIuNyAxMDEuMyA1MmMxNC4xLTEwLjcgMzMuOC01LjMgNDIuNyAxMGw3MiAxMjQuN3pNMjU2IDMzNmMxNC42IDAgMjguMi0zLjkgNDAtMTAuN2w3MiAxMjQuOGM4LjggMTUuMyAzLjcgMzUuMS0xMi42IDQxLjljLTMwLjYgMTIuOS02NC4yIDIwLTk5LjQgMjBzLTY4LjktNy4xLTk5LjQtMjBjLTE2LjMtNi45LTIxLjQtMjYuNi0xMi42LTQxLjlsNzItMTI0LjhjMTEuOCA2LjggMjUuNCAxMC43IDQwIDEwLjd6bTIyNC04MGwtMTQ0IDBjMC0yOS42LTE2LjEtNTUuNS00MC02OS4zTDM2OCA2MmM4LjgtMTUuMyAyOC42LTIwLjcgNDIuNy0xMGM1My42IDQwLjcgOTAuNiAxMDIgOTkuNCAxNzIuMWMyLjIgMTcuNS0xMi40IDMxLjktMzAgMzEuOXpNMjU2IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDaGFydFNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFydC1zaW1wbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0NzNcIiwgXCJNMTYwIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNMzY4IDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhTWFyc1N0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4OTRdLCBcImYyMjlcIiwgXCJNMzc2IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDM3MC4zIDk2LjQgMzQ1IDcxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDI1LjQgMjUuNEwzMDcuOCAxNTljLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzFjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDI4LjYtMjguNkw0MDcgMjAxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMjUuNC0yNS40IDIyLjEtMjIuMUw0NzEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzNzYgMHptODggNDhzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6TTk2IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwQTExMiAxMTIgMCAxIDEgOTYgMzA0elwiXVxufTtcbmNvbnN0IGZhVmlhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTE0XSwgXCJmNDkyXCIsIFwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNEwyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xTDQ0OCAyMDUuM2w5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTMyLTMyLTk2LTk2LTMyLTMyek0yMDUuMyAyNTZMMzUyIDEwOS4zIDQwMi43IDE2MGwtOTYgOTYtMTAxLjUgMHpcIl1cbn07XG5jb25zdCBmYUdhdWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhdWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkYXNoYm9hcmRcIiwgXCJnYXVnZS1tZWRcIiwgXCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlXCJdLCBcImY2MjRcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwNC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjNjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bS0xNiA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek00MDAgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFEYXNoYm9hcmQgPSBmYUdhdWdlO1xuY29uc3QgZmFHYXVnZU1lZCA9IGZhR2F1Z2U7XG5jb25zdCBmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlID0gZmFHYXVnZTtcbmNvbnN0IGZhV2FuZE1hZ2ljU3BhcmtsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYy1zcGFya2xlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFnaWMtd2FuZC1zcGFya2xlc1wiXSwgXCJlMmNhXCIsIFwiTTIzNC43IDQyLjdMMTk3IDU2LjhjLTMgMS4xLTUgNC01IDcuMnMyIDYuMSA1IDcuMmwzNy43IDE0LjFMMjQ4LjggMTIzYzEuMSAzIDQgNSA3LjIgNXM2LjEtMiA3LjItNWwxNC4xLTM3LjdMMzE1IDcxLjJjMy0xLjEgNS00IDUtNy4ycy0yLTYuMS01LTcuMkwyNzcuMyA0Mi43IDI2My4yIDVjLTEuMS0zLTQtNS03LjItNXMtNi4xIDItNy4yIDVMMjM0LjcgNDIuN3pNNDYuMSAzOTUuNGMtMTguNyAxOC43LTE4LjcgNDkuMSAwIDY3LjlsMzQuNiAzNC42YzE4LjcgMTguNyA0OS4xIDE4LjcgNjcuOSAwTDUyOS45IDExNi41YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45TDQ5NS4zIDE0LjFjLTE4LjctMTguNy00OS4xLTE4LjctNjcuOSAwTDQ2LjEgMzk1LjR6TTQ4NC42IDgyLjZsLTEwNSAxMDUtMjMuMy0yMy4zIDEwNS0xMDUgMjMuMyAyMy4zek03LjUgMTE3LjJDMyAxMTguOSAwIDEyMy4yIDAgMTI4czMgOS4xIDcuNSAxMC44TDY0IDE2MGwyMS4yIDU2LjVjMS43IDQuNSA2IDcuNSAxMC44IDcuNXM5LjEtMyAxMC44LTcuNUwxMjggMTYwbDU2LjUtMjEuMmM0LjUtMS43IDcuNS02IDcuNS0xMC44cy0zLTkuMS03LjUtMTAuOEwxMjggOTYgMTA2LjggMzkuNUMxMDUuMSAzNSAxMDAuOCAzMiA5NiAzMnMtOS4xIDMtMTAuOCA3LjVMNjQgOTYgNy41IDExNy4yem0zNTIgMjU2Yy00LjUgMS43LTcuNSA2LTcuNSAxMC44czMgOS4xIDcuNSAxMC44TDQxNiA0MTZsMjEuMiA1Ni41YzEuNyA0LjUgNiA3LjUgMTAuOCA3LjVzOS4xLTMgMTAuOC03LjVMNDgwIDQxNmw1Ni41LTIxLjJjNC41LTEuNyA3LjUtNiA3LjUtMTAuOHMtMy05LjEtNy41LTEwLjhMNDgwIDM1MmwtMjEuMi01Ni41Yy0xLjctNC41LTYtNy41LTEwLjgtNy41cy05LjEgMy0xMC44IDcuNUw0MTYgMzUybC01Ni41IDIxLjJ6XCJdXG59O1xuY29uc3QgZmFNYWdpY1dhbmRTcGFya2xlcyA9IGZhV2FuZE1hZ2ljU3BhcmtsZXM7XG5jb25zdCBmYUUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZScsXG4gIGljb246IFszMjAsIDUxMiwgWzEwMV0sIFwiNDVcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDI1NiAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw2NCA0MTZsMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMjI0IDY0IDk2bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhUGVuQ2xpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tY2xpcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGVuLWFsdFwiXSwgXCJmMzA1XCIsIFwiTTQ1My4zIDE5LjNsMzkuNCAzOS40YzI1IDI1IDI1IDY1LjUgMCA5MC41bC01Mi4xIDUyLjFzMCAwIDAgMGwtMS0xczAgMCAwIDBsLTE2LTE2LTk2LTk2LTE3LTE3IDUyLjEtNTIuMWMyNS0yNSA2NS41LTI1IDkwLjUgMHpNMjQxIDExNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxMDUgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE3My4xIDgxYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEwyODggOTQuMWwxNyAxNyA5NiA5NiAxNiAxNiAxIDEtMTcgMTdMMjI5LjUgNDEyLjVjLTQ4IDQ4LTEwOS4yIDgwLjgtMTc1LjggOTQuMWwtMjUgNWMtNy45IDEuNi0xNi0uOS0yMS43LTYuNnMtOC4xLTEzLjgtNi42LTIxLjdsNS0yNWMxMy4zLTY2LjYgNDYuMS0xMjcuOCA5NC4xLTE3NS44TDI1NC4xIDEyOCAyNDEgMTE0Ljl6XCJdXG59O1xuY29uc3QgZmFQZW5BbHQgPSBmYVBlbkNsaXA7XG5jb25zdCBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0Y2FcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgxMDAsIDYyMTQ0XSwgXCJmMDA3XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43QzQ0OCAzODMuOCAzNjguMiAzMDQgMjY5LjcgMzA0bC05MS40IDB6XCJdXG59O1xuY29uc3QgZmFTY2hvb2xDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTZiXCIsIFwiTTMzNy44IDUuNEMzMjctMS44IDMxMy0xLjggMzAyLjIgNS40TDE2Ni4zIDk2IDQ4IDk2QzIxLjUgOTYgMCAxMTcuNSAwIDE0NEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNzIgMHMwIDAgMCAwbC02NCAwIDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjMgMCAuNSAwYzMuNC0zNy43IDE4LjctNzIuMSA0Mi4yLTk5LjFDMzUwLjIgMjYwIDMzNS42IDI2NCAzMjAgMjY0Yy00OC42IDAtODgtMzkuNC04OC04OHMzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAxOC4zLTUuNiAzNS4zLTE1LjEgNDkuNGMyOS0yMSA2NC42LTMzLjQgMTAzLjEtMzMuNGM1OS41IDAgMTEyLjEgMjkuNiAxNDQgNzQuOEw2NDAgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ3My43IDk2IDMzNy44IDUuNHpNOTYgMTkybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6bTAgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6TTMyMCAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS05OS4zLTQzLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN3pcIl1cbn07XG5jb25zdCBmYUR1bXBzdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bXBzdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzkzXCIsIFwiTTQ5LjcgMzJjLTEwLjUgMC0xOS44IDYuOS0yMi45IDE2LjlMLjkgMTMzYy0uNiAyLS45IDQuMS0uOSA2LjFDMCAxNTAuNyA5LjMgMTYwIDIwLjkgMTYwbDk0IDBMMTQwLjUgMzIgNDkuNyAzMnpNMjcyIDE2MGwwLTEyOC05OC45IDBMMTQ3LjUgMTYwIDI3MiAxNjB6bTMyIDBsMTI0LjUgMEw0MDIuOSAzMiAzMDQgMzJsMCAxMjh6bTE1Ny4xIDBsOTQgMGMxMS41IDAgMjAuOS05LjMgMjAuOS0yMC45YzAtMi4xLS4zLTQuMS0uOS02LjFMNTQ5LjIgNDguOUM1NDYuMSAzOC45IDUzNi44IDMyIDUyNi4zIDMybC05MC44IDAgMjUuNiAxMjh6TTMyIDE5Mmw0IDMyLTQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMiAwTDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDMyMCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjAtMTYwIDEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQgMCA0LTMyTDMyIDE5MnpcIl1cbn07XG5jb25zdCBmYVZhblNodXR0bGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmFuLXNodXR0bGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2NTYsIFwic2h1dHRsZS12YW5cIl0sIFwiZjViNlwiLCBcIk02NCAxMDRsMCA4OCA5NiAwIDAtOTZMNzIgOTZjLTQuNCAwLTggMy42LTggOHptNDgyIDg4TDQ2NS4xIDk2IDM4NCA5NmwwIDk2IDE2MiAwem0tMjI2IDBsMC05Ni05NiAwIDAgOTYgOTYgMHpNNTkyIDM4NGwtMTYgMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTI4IDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTA0QzAgNjQuMiAzMi4yIDMyIDcyIDMybDEyMCAwIDE2MCAwIDExMy4xIDBjMTguOSAwIDM2LjggOC4zIDQ5IDIyLjhMNjI1IDE4Ni41YzkuNyAxMS41IDE1IDI2LjEgMTUgNDEuMkw2NDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0tNjQgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjAgNDMyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVNodXR0bGVWYW4gPSBmYVZhblNodXR0bGU7XG5jb25zdCBmYUJ1aWxkaW5nVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy11c2VyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGRhXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgODkuOSAwYy02LjMtMTAuMi05LjktMjIuMi05LjktMzUuMWMwLTQ2LjkgMjUuOC04Ny44IDY0LTEwOS4ybDAtOTUuOUwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNTc2IDI3MmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTM1MiA0NzcuMWMwIDE5LjMgMTUuNiAzNC45IDM0LjkgMzQuOWwyMTguMiAwYzE5LjMgMCAzNC45LTE1LjYgMzQuOS0zNC45YzAtNTEuNC00MS43LTkzLjEtOTMuMS05My4xbC0xMDEuOCAwYy01MS40IDAtOTMuMSA0MS43LTkzLjEgOTMuMXpcIl1cbn07XG5jb25zdCBmYVNxdWFyZUNhcmV0TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLWxlZnRcIl0sIFwiZjE5MVwiLCBcIk0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2ek0xMjggMjU2YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40czE0LjQgMTIuNSAxNC40IDIybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42elwiXVxufTtcbmNvbnN0IGZhQ2FyZXRTcXVhcmVMZWZ0ID0gZmFTcXVhcmVDYXJldExlZnQ7XG5jb25zdCBmYUhpZ2hsaWdodGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hpZ2hsaWdodGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTkxXCIsIFwiTTMxNSAzMTVsMTU4LjQtMjE1TDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVzMCAwIDAgMGwwLTcxLjdjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwYzExLjQgMCAyMi40IDQuNSAzMC41IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjVjMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41TDIyNCA0MTZsLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w2My02MyA3MC42IDcwLjYtMzEgMzFjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3elwiXVxufTtcbmNvbnN0IGZhS2V5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI3M10sIFwiZjA4NFwiLCBcIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDBTMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwiXVxufTtcbmNvbnN0IGZhQnVsbGhvcm4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVsbGhvcm4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjYsIDEyODM2M10sIFwiZjBhMVwiLCBcIk00ODAgMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlMMzgxLjcgNTNjLTQ4IDQ4LTExMy4xIDc1LTE4MSA3NWwtOC43IDAtMzIgMC05NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjggOC43IDBjNjcuOSAwIDEzMyAyNyAxODEgNzVsNDMuNiA0My42YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45czE5LjgtMTYuNiAxOS44LTI5LjZsMC0xNDcuNmMxOC42LTguOCAzMi0zMi41IDMyLTYwLjRzLTEzLjQtNTEuNi0zMi02MC40TDQ4MCAzMnptLTY0IDc2LjdMNDE2IDI0MGwwIDEzMS4zQzM1Ny4yIDMxNy44IDI4MC41IDI4OCAyMDAuNyAyODhsLTguNyAwIDAtOTYgOC43IDBjNzkuOCAwIDE1Ni41LTI5LjggMjE1LjMtODMuM3pcIl1cbn07XG5jb25zdCBmYUdsb2JlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dsb2JlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzYwXSwgXCJmMGFjXCIsIFwiTTM1MiAyNTZjMCAyMi4yLTEuMiA0My42LTMuMyA2NGwtMTg1LjMgMGMtMi4yLTIwLjQtMy4zLTQxLjgtMy4zLTY0czEuMi00My42IDMuMy02NGwxODUuMyAwYzIuMiAyMC40IDMuMyA0MS44IDMuMyA2NHptMjguOC02NGwxMjMuMSAwYzUuMyAyMC41IDguMSA0MS45IDguMSA2NHMtMi44IDQzLjUtOC4xIDY0bC0xMjMuMSAwYzIuMS0yMC42IDMuMi00MiAzLjItNjRzLTEuMS00My40LTMuMi02NHptMTEyLjYtMzJsLTExNi43IDBjLTEwLTYzLjktMjkuOC0xMTcuNC01NS4zLTE1MS42Yzc4LjMgMjAuNyAxNDIgNzcuNSAxNzEuOSAxNTEuNnptLTE0OS4xIDBsLTE3Ni42IDBjNi4xLTM2LjQgMTUuNS02OC42IDI3LTk0LjdjMTAuNS0yMy42IDIyLjItNDAuNyAzMy41LTUxLjVDMjM5LjQgMy4yIDI0OC43IDAgMjU2IDBzMTYuNiAzLjIgMjcuOCAxMy44YzExLjMgMTAuOCAyMyAyNy45IDMzLjUgNTEuNWMxMS42IDI2IDIwLjkgNTguMiAyNyA5NC43em0tMjA5IDBMMTguNiAxNjBDNDguNiA4NS45IDExMi4yIDI5LjEgMTkwLjYgOC40QzE2NS4xIDQyLjYgMTQ1LjMgOTYuMSAxMzUuMyAxNjB6TTguMSAxOTJsMTIzLjEgMGMtMi4xIDIwLjYtMy4yIDQyLTMuMiA2NHMxLjEgNDMuNCAzLjIgNjRMOC4xIDMyMEMyLjggMjk5LjUgMCAyNzguMSAwIDI1NnMyLjgtNDMuNSA4LjEtNjR6TTE5NC43IDQ0Ni42Yy0xMS42LTI2LTIwLjktNTguMi0yNy05NC42bDE3Ni42IDBjLTYuMSAzNi40LTE1LjUgNjguNi0yNyA5NC42Yy0xMC41IDIzLjYtMjIuMiA0MC43LTMzLjUgNTEuNUMyNzIuNiA1MDguOCAyNjMuMyA1MTIgMjU2IDUxMnMtMTYuNi0zLjItMjcuOC0xMy44Yy0xMS4zLTEwLjgtMjMtMjcuOS0zMy41LTUxLjV6TTEzNS4zIDM1MmMxMCA2My45IDI5LjggMTE3LjQgNTUuMyAxNTEuNkMxMTIuMiA0ODIuOSA0OC42IDQyNi4xIDE4LjYgMzUybDExNi43IDB6bTM1OC4xIDBjLTMwIDc0LjEtOTMuNiAxMzAuOS0xNzEuOSAxNTEuNmMyNS41LTM0LjIgNDUuMi04Ny43IDU1LjMtMTUxLjZsMTE2LjcgMHpcIl1cbn07XG5jb25zdCBmYVN5bmFnb2d1ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzeW5hZ29ndWUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgzMzNdLCBcImY2OWJcIiwgXCJNMzA5LjggMy43YzUuOS00LjkgMTQuNi00LjkgMjAuNSAwbDEyMSAxMDAuOEM0NjkuNSAxMTkuNyA0ODAgMTQyLjIgNDgwIDE2NmwwIDExNC4xTDQ4MCA1MTJsLTE2IDAtMTEyIDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2LTExMiAwLTE2IDAgMC0yMzEuOUwxNjAgMTY2YzAtMjMuNyAxMC41LTQ2LjMgMjguOC02MS41TDMwOS44IDMuN3pNNTEyIDUxMmwwLTI2Ny41IDI4LjEtMzEuMmMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNsNjMuOCA3MC45YzcuOSA4LjggMTIuMyAyMC4zIDEyLjMgMzIuMUw2NDAgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwek0xMjggMjQ0LjVMMTI4IDUxMmwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTYuM2MwLTExLjkgNC40LTIzLjMgMTIuMy0zMi4xbDYzLjgtNzAuOWMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNMMTI4IDI0NC41ek0zMjcgMTI0LjNjLTMuMS01LjQtMTAuOS01LjQtMTMuOSAwbC0xNS45IDI4LjEtMzIuMy0uM2MtNi4yLS4xLTEwLjEgNi43LTcgMTIuMUwyNzQuMyAxOTJsLTE2LjQgMjcuOGMtMy4yIDUuNCAuNyAxMi4xIDcgMTIuMWwzMi4zLS4zTDMxMyAyNTkuN2MzLjEgNS40IDEwLjkgNS40IDEzLjkgMGwxNS45LTI4LjEgMzIuMyAuM2M2LjIgLjEgMTAuMS02LjcgNy0xMi4xTDM2NS43IDE5MmwxNi40LTI3LjhjMy4yLTUuNC0uNy0xMi4xLTctMTIuMWwtMzIuMyAuM0wzMjcgMTI0LjN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25IYWxmRHJlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWhhbGYtZHJlc3MnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImU1NDhcIiwgXCJNMTYwIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em04IDM1MmwwLTIyNCA2LjkgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw1OC4zIDk3YzkuMSAxNS4xIDQuMiAzNC44LTEwLjkgNDMuOXMtMzQuOCA0LjItNDMuOS0xMC45TDIzMiAyNTYuOSAyMzIgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4czAgMCAwIDB6TTU4LjIgMTgyLjNjMTkuOS0zMy4xIDU1LjMtNTMuNSA5My44LTU0LjNsMCAyNTZzMCAwIDAgMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw5My4zIDI0OC4xIDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1My42LTg5LjJ6XCJdXG59O1xuY29uc3QgZmFSb2FkQnJpZGdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtYnJpZGdlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTYzXCIsIFwiTTM1MiAwTDYwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ4MCAyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTQ4MCA0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTMyIDk2bDI1NiAwIDAgNjQtNDAgMCAwIDY0IDQwIDAgMCA5NmMtNTMgMC05NiA0My05NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMtNDMtOTYtOTYtOTZsMC05NiA3MiAwIDAtNjQtNDAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTY4IDY0bC04MCAwIDAgNjQgODAgMCAwLTY0elwiXVxufTtcbmNvbnN0IGZhTG9jYXRpb25BcnJvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1hcnJvdycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEyNFwiLCBcIk00MjkuNiA5Mi4xYzQuOS0xMS45IDIuMS0yNS42LTctMzQuN3MtMjIuOC0xMS45LTM0LjctN2wtMzUyIDE0NGMtMTQuMiA1LjgtMjIuMiAyMC44LTE5LjMgMzUuOHMxNi4xIDI1LjggMzEuNCAyNS44bDE3NiAwIDAgMTc2YzAgMTUuMyAxMC44IDI4LjQgMjUuOCAzMS40czMwLTUuMSAzNS44LTE5LjNsMTQ0LTM1MnpcIl1cbn07XG5jb25zdCBmYUMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYycsXG4gIGljb246IFszODQsIDUxMiwgWzk5XSwgXCI0M1wiLCBcIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zczE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjhzMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwelwiXVxufTtcbmNvbnN0IGZhVGFibGV0QnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldC1idXR0b24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxMGFcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMjI0IDQwMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0xvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctbG9jaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkNlwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDg4LjYgMGMtNS40LTkuNC04LjYtMjAuMy04LjYtMzJsMC0xMjhjMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNmMwLTMwLjUgMTIuMi01OC4yIDMyLTc4LjRMMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xMTItMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNODAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAyNDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMmwwIDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwiXVxufTtcbmNvbnN0IGZhUGl6emFTbGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaXp6YS1zbGljZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgxOFwiLCBcIk0xNjkuNyAuOWMtMjIuOC0xLjYtNDEuOSAxNC00Ny41IDM0LjdMMTEwLjQgODBjLjUgMCAxLjEgMCAxLjYgMGMxNzYuNyAwIDMyMCAxNDMuMyAzMjAgMzIwYzAgLjUgMCAxLjEgMCAxLjZsNDQuNC0xMS44YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjVDNDk4LjUgMTU5LjUgMzUyLjUgMTMuNSAxNjkuNyAuOXpNMzk5LjggNDEwLjJjLjEtMy40IC4yLTYuOCAuMi0xMC4yYzAtMTU5LjEtMTI4LjktMjg4LTI4OC0yODhjLTMuNCAwLTYuOCAuMS0xMC4yIC4yTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMUwzOTkuOCA0MTAuMnpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFdhdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbC13YXZlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTNhXCIsIFwiTTAgMTEyLjVMMCA0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNGwwLTMwOS45YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMjg4IDM1MmMtNDQuMiAwLTgwLTQzLTgwLTk2czM1LjgtOTYgODAtOTZzODAgNDMgODAgOTZzLTM1LjggOTYtODAgOTZ6TTY0IDM1MmMzNS4zIDAgNjQgMjguNyA2NCA2NGwtNjQgMCAwLTY0em02NC0yMDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMC02NCA2NCAwek01MTIgMzA0bDAgNjQtNjQgMGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDk2bDY0IDAgMCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJdXG59O1xuY29uc3QgZmFDaGFydEFyZWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtYXJlYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJlYS1jaGFydFwiXSwgXCJmMWZlXCIsIFwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAyODhsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02OC4yYzAtNy42LTIuNy0xNS03LjctMjAuOGwtNjUuOC03Ni44Yy0xMi4xLTE0LjItMzMuNy0xNS00Ni45LTEuOGwtMjEgMjFjLTEwIDEwLTI2LjQgOS4yLTM1LjQtMS42bC0zOS4yLTQ3Yy0xMi42LTE1LjEtMzUuNy0xNS40LTQ4LjctLjZMMTM1LjkgMjE1Yy01LjEgNS44LTcuOSAxMy4zLTcuOSAyMS4xbDAgODRjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFBcmVhQ2hhcnQgPSBmYUNoYXJ0QXJlYTtcbmNvbnN0IGZhSG91c2VGbGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGRcIiwgXCJNNDgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwIDAgMzIwIDY0IDAgMC0zMjAgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNkw1MTIgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQxNiAxNTlMMjc2LjggMzkuN2MtMTItMTAuMy0yOS43LTEwLjMtNDEuNyAwbC0yMjQgMTkyQzEgMjQwLjQtMi43IDI1NC41IDIgMjY3LjFTMTguNiAyODggMzIgMjg4bDMyIDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NC43IDAgLjIgMC0xIDAgMC0zNTN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25DaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQwXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHptMTM2IDE2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY4MywgXCJjYW5jZWxcIl0sIFwiZjA1ZVwiLCBcIk0zNjcuMiA0MTIuNUw5OS41IDE0NC44Qzc3LjEgMTc2LjEgNjQgMjE0LjUgNjQgMjU2YzAgMTA2IDg2IDE5MiAxOTIgMTkyYzQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zQzQzNC45IDMzNS45IDQ0OCAyOTcuNSA0NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyYy00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUNhbmNlbCA9IGZhQmFuO1xuY29uc3QgZmFDYW1lcmFSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FtZXJhLXJvdGF0ZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTBkOFwiLCBcIk0yMTMuMSA2NC44TDIwMi43IDk2IDEyOCA5NmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTc0LjcgMEw0MjYuOSA2NC44QzQyMC40IDQ1LjIgNDAyLjEgMzIgMzgxLjQgMzJMMjU4LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNNDQ4IDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTc2LjcgMGMtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zYzAtMyAxLjItNS45IDMuMy04TDM3MSAyMjljLTEzLjYtMTMuNC0zMS45LTIxLTUxLTIxYy0xOS4yIDAtMzcuNyA3LjYtNTEuMyAyMS4zTDI0OSAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTkuNy0xOS43QzI1Ny40IDE3Mi43IDI4OCAxNjAgMzIwIDE2MGMzMS44IDAgNjIuNCAxMi42IDg1IDM1bDIzLjctMjMuN2MyLjEtMi4xIDUtMy4zIDgtMy4zYzYuMiAwIDExLjMgNS4xIDExLjMgMTEuM2wwIDc2Ljd6TTE5MiAzMjBjMC04LjggNy4yLTE2IDE2LTE2bDc2LjcgMGM2LjIgMCAxMS4zIDUuMSAxMS4zIDExLjNjMCAzLTEuMiA1LjktMy4zIDhMMjY5IDM0N2MxMy42IDEzLjQgMzEuOSAyMSA1MSAyMWMxOS4yIDAgMzcuNy03LjYgNTEuMy0yMS4zTDM5MSAzMjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xOS43IDE5LjdDMzgyLjYgNDAzLjMgMzUyIDQxNiAzMjAgNDE2Yy0zMS44IDAtNjIuNC0xMi42LTg1LTM1bC0yMy43IDIzLjdjLTIuMSAyLjEtNSAzLjMtOCAzLjNjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuM2wwLTc2Ljd6XCJdXG59O1xuY29uc3QgZmFTcHJheUNhblNwYXJrbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwcmF5LWNhbi1zcGFya2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYWlyLWZyZXNoZW5lclwiXSwgXCJmNWQwXCIsIFwiTTk2IDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJ6bTAgMTI4Yy01MyAwLTk2IDQzLTk2IDk2TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMTYwem02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMzg0IDQ4YzAtMS40LTEtMy0yLjItMy42TDM1MiAzMiAzMzkuNiAyLjJDMzM5IDEgMzM3LjQgMCAzMzYgMHMtMyAxLTMuNiAyLjJMMzIwIDMyIDI5MC4yIDQ0LjRDMjg5IDQ1IDI4OCA0Ni42IDI4OCA0OGMwIDEuNCAxIDMgMi4yIDMuNkwzMjAgNjRsMTIuNCAyOS44QzMzMyA5NSAzMzQuNiA5NiAzMzYgOTZzMy0xIDMuNi0yLjJMMzUyIDY0bDI5LjgtMTIuNEMzODMgNTEgMzg0IDQ5LjQgMzg0IDQ4em03Ni40IDQ1LjhDNDYxIDk1IDQ2Mi42IDk2IDQ2NCA5NnMzLTEgMy42LTIuMkw0ODAgNjRsMjkuOC0xMi40QzUxMSA1MSA1MTIgNDkuNCA1MTIgNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDMyIDQ2Ny42IDIuMkM0NjcgMSA0NjUuNCAwIDQ2NCAwcy0zIDEtMy42IDIuMkw0NDggMzIgNDE4LjIgNDQuNEM0MTcgNDUgNDE2IDQ2LjYgNDE2IDQ4YzAgMS40IDEgMyAyLjIgMy42TDQ0OCA2NGwxMi40IDI5Ljh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNDQ4IDIyNGwtMjkuOCAxMi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42YzAgMS40IDEgMyAyLjIgMy42TDQ0OCAyNTZsMTIuNCAyOS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDI1NmwyOS44LTEyLjRjMS4yLS42IDIuMi0yLjIgMi4yLTMuNmMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMjI0bC0xMi40LTI5Ljh6TTQ0OCAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDEyOCA0MDMuNiA5OC4yQzQwMyA5NyA0MDEuNCA5NiA0MDAgOTZzLTMgMS0zLjYgMi4yTDM4NCAxMjhsLTI5LjggMTIuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNmMwIDEuNCAxIDMgMi4yIDMuNkwzODQgMTYwbDEyLjQgMjkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQxNiAxNjBsMjkuOC0xMi40YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6XCJdXG59O1xuY29uc3QgZmFBaXJGcmVzaGVuZXIgPSBmYVNwcmF5Q2FuU3BhcmtsZXM7XG5jb25zdCBmYVN0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhcicsXG4gIGljb246IFs1NzYsIDUxMiwgWzExMDg4LCA2MTQ0Nl0sIFwiZjAwNVwiLCBcIk0zMTYuOSAxOEMzMTEuNiA3IDMwMC40IDAgMjg4LjEgMHMtMjMuNCA3LTI4LjggMThMMTk1IDE1MC4zIDUxLjQgMTcxLjVjLTEyIDEuOC0yMiAxMC4yLTI1LjcgMjEuN3MtLjcgMjQuMiA3LjkgMzIuN0wxMzcuOCAzMjkgMTEzLjIgNDc0LjdjLTIgMTIgMyAyNC4yIDEyLjkgMzEuM3MyMyA4IDMzLjggMi4zbDEyOC4zLTY4LjUgMTI4LjMgNjguNWMxMC44IDUuNyAyMy45IDQuOSAzMy44LTIuM3MxNC45LTE5LjMgMTIuOS0zMS4zTDQzOC41IDMyOSA1NDIuNyAyMjUuOWM4LjYtOC41IDExLjctMjEuMiA3LjktMzIuN3MtMTMuNy0xOS45LTI1LjctMjEuN0wzODEuMiAxNTAuMyAzMTYuOSAxOHpcIl1cbn07XG5jb25zdCBmYVJlcGVhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBlYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNTddLCBcImYzNjNcIiwgXCJNMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTUzIDQzLTk2IDk2LTk2bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzMyMCAxOS4xIDMyMCAzMmwwIDMyTDE2MCA2NEM3MS42IDY0IDAgMTM1LjYgMCAyMjR6bTUxMiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDUzLTQzIDk2LTk2IDk2bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNmwwLTMyIDE2MCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwelwiXVxufTtcbmNvbnN0IGZhQ3Jvc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvc3MnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgzMjcsIDEwMDEzXSwgXCJmNjU0XCIsIFwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwLTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsODAgMCAwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4IDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAwelwiXVxufTtcbmNvbnN0IGZhQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JveCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODIzMF0sIFwiZjQ2NlwiLCBcIk01MC43IDU4LjVMMCAxNjBsMjA4IDAgMC0xMjhMOTMuNyAzMkM3NS41IDMyIDU4LjkgNDIuMyA1MC43IDU4LjV6TTI0MCAxNjBsMjA4IDBMMzk3LjMgNTguNUMzODkuMSA0Mi4zIDM3Mi41IDMyIDM1NC4zIDMyTDI0MCAzMmwwIDEyOHptMjA4IDMyTDAgMTkyIDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0elwiXVxufTtcbmNvbnN0IGZhVmVudXNNYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzLW1hcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODkyXSwgXCJmMjI4XCIsIFwiTTE3NiAyODhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0zNTIgMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOUM2Mi4xIDMzNC4xIDAgMjYyLjMgMCAxNzZDMCA3OC44IDc4LjggMCAxNzYgMHMxNzYgNzguOCAxNzYgMTc2ek0yNzEuOSAzNjAuNmMxOS4zLTEwLjEgMzYuOS0yMy4xIDUyLjEtMzguNGMyMCAxOC41IDQ2LjcgMjkuOCA3Ni4xIDI5LjhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJzLTUwLjEtMTEyLTExMi0xMTJjLTcuMiAwLTE0LjMgLjctMjEuMSAyYy00LjktMjEuNS0xMy00MS43LTI0LTYwLjJDMzY5LjMgNjYgMzg0LjQgNjQgNDAwIDY0YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsMjAuNi0yMC42TDQ4NyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM0OTQuMyAwIDUwNCAwTDYxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEw1NDUgMTQwLjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtNTAuNSAwLTk2LTIxLjMtMTI4LjEtNTUuNHpcIl1cbn07XG5jb25zdCBmYUFycm93UG9pbnRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1wb2ludGVyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJtb3VzZS1wb2ludGVyXCJdLCBcImYyNDVcIiwgXCJNMCA1NS4yTDAgNDI2YzAgMTIuMiA5LjkgMjIgMjIgMjJjNi4zIDAgMTIuNC0yLjcgMTYuNi03LjVMMTIxLjIgMzQ2bDU4LjEgMTE2LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45TDE3OS44IDMyMGwxMTguMSAwYzEyLjIgMCAyMi4xLTkuOSAyMi4xLTIyLjFjMC02LjMtMi43LTEyLjMtNy40LTE2LjVMMzguNiAzNy45QzM0LjMgMzQuMSAyOC45IDMyIDIzLjIgMzJDMTAuNCAzMiAwIDQyLjQgMCA1NS4yelwiXVxufTtcbmNvbnN0IGZhTW91c2VQb2ludGVyID0gZmFBcnJvd1BvaW50ZXI7XG5jb25zdCBmYU1heGltaXplID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJleHBhbmQtYXJyb3dzLWFsdFwiXSwgXCJmMzFlXCIsIFwiTTIwMCAzMkw1NiAzMkM0Mi43IDMyIDMyIDQyLjcgMzIgNTZsMCAxNDRjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDQwLTQwIDc5IDc5LTc5IDc5TDczIDI5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMiAzMDIuMyAzMiAzMTJsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJsLTQwIDQwLTc5LTc5IDc5LTc5IDQwIDQwYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMTIgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsNDAgNDAtNzkgNzktNzktNzkgNDAtNDBjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMyMDkuNyAzMiAyMDAgMzJ6XCJdXG59O1xuY29uc3QgZmFFeHBhbmRBcnJvd3NBbHQgPSBmYU1heGltaXplO1xuY29uc3QgZmFDaGFyZ2luZ1N0YXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcmdpbmctc3RhdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjVlN1wiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTQ0IDE2IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAzMmMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcybDAtMTIzLjdjMzIuNS0xMC4yIDU2LTQwLjUgNTYtNzYuM2wwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCAzNS44IDIzLjUgNjYuMSA1NiA3Ni4zTDQ3MiAzNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMmMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMCAwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMTYuOSA4Mi43YzYgNCA4LjUgMTEuNSA2LjMgMTguM2wtMjUgNzQuOSA1Ny44IDBjNi43IDAgMTIuNyA0LjIgMTUgMTAuNHMuNSAxMy4zLTQuNiAxNy43bC0xMTIgOTZjLTUuNSA0LjctMTMuNCA1LjEtMTkuMyAxLjFzLTguNS0xMS41LTYuMy0xOC4zbDI1LTc0LjlMOTYgMjA4Yy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43bDExMi05NmM1LjUtNC43IDEzLjQtNS4xIDE5LjMtMS4xelwiXVxufTtcbmNvbnN0IGZhU2hhcGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXBlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widHJpYW5nbGUtY2lyY2xlLXNxdWFyZVwiXSwgXCJmNjFmXCIsIFwiTTMxNS40IDE1LjVDMzA5LjcgNS45IDI5OS4yIDAgMjg4IDBzLTIxLjcgNS45LTI3LjQgMTUuNWwtOTYgMTYwYy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJzMTYuMyAxNi4yIDI3LjggMTYuMmwxOTIgMGMxMS41IDAgMjIuMi02LjIgMjcuOC0xNi4yczUuNS0yMi4zLS40LTMyLjJsLTk2LTE2MHpNMjg4IDMxMmwwIDE0NGMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNDQgMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTE0NGMwLTIyLjEtMTcuOS00MC00MC00MGwtMTQ0IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0xMjggNTEyYTEyOCAxMjggMCAxIDAgMC0yNTYgMTI4IDEyOCAwIDEgMCAwIDI1NnpcIl1cbn07XG5jb25zdCBmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlID0gZmFTaGFwZXM7XG5jb25zdCBmYVNodWZmbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2h1ZmZsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1NiwgXCJyYW5kb21cIl0sIFwiZjA3NFwiLCBcIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45cy0xOS44LTE2LjYtMTkuOC0yOS42bDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOEwyODQgMjI5LjMgMjQ0IDE3NmwzMS4yLTQxLjZDMjkzLjMgMTEwLjIgMzIxLjggOTYgMzUyIDk2bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42ek0xNjQgMjgyLjdMMjA0IDMzNmwtMzEuMiA0MS42QzE1NC43IDQwMS44IDEyNi4yIDQxNiA5NiA0MTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMGMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44TDE2NCAyODIuN3ptMjc0LjYgMTg4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTMyLTMyIDBjLTMwLjIgMC01OC43LTE0LjItNzYuOC0zOC40TDEyMS42IDE3Mi44Yy02LTguMS0xNS41LTEyLjgtMjUuNi0xMi44bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRMMzI2LjQgMzM5LjJjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOGwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NHpcIl1cbn07XG5jb25zdCBmYVJhbmRvbSA9IGZhU2h1ZmZsZTtcbmNvbnN0IGZhUGVyc29uUnVubmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tcnVubmluZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzkzOSwgXCJydW5uaW5nXCJdLCBcImY3MGNcIiwgXCJNMzIwIDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTEyNS43IDE3NS41YzkuOS05LjkgMjMuNC0xNS41IDM3LjUtMTUuNWMxLjkgMCAzLjggLjEgNS42IC4zTDEzNy42IDI1NGMtOS4zIDI4IDEuNyA1OC44IDI2LjggNzQuNWw4Ni4yIDUzLjktMjUuNCA4OC44Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMjguNy0xMDAuNGM1LjktMjAuNi0yLjYtNDIuNi0yMC43LTUzLjlMMjM4IDI5OWwzMC45LTgyLjQgNS4xIDEyLjNDMjg5IDI2NC43IDMyMy45IDI4OCAzNjIuNyAyODhsMjEuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMS4zIDBjLTEyLjkgMC0yNC42LTcuOC0yOS41LTE5LjdsLTYuMy0xNWMtMTQuNi0zNS4xLTQ0LjEtNjEuOS04MC41LTczLjFsLTQ4LjctMTVjLTExLjEtMy40LTIyLjctNS4yLTM0LjQtNS4yYy0zMSAwLTYwLjggMTIuMy04Mi43IDM0LjNMNTcuNCAxNTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwyMy4xLTIzLjF6TTkxLjIgMzUyTDMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OS42IDBjMTkgMCAzNi4yLTExLjIgNDMuOS0yOC41TDE1NyAzNjEuNmwtOS41LTZjLTE3LjUtMTAuOS0zMC41LTI2LjgtMzcuOS00NC45TDkxLjIgMzUyelwiXVxufTtcbmNvbnN0IGZhUnVubmluZyA9IGZhUGVyc29uUnVubmluZztcbmNvbnN0IGZhTW9iaWxlUmV0cm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLXJldHJvJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTI3XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptNjQgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDM1MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDU2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2LTU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNTZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptNTYtNTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA1NmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggNDhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMHpcIl1cbn07XG5jb25zdCBmYUdyaXBMaW5lc1ZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtbGluZXMtdmVydGljYWwnLFxuICBpY29uOiBbMTkyLCA1MTIsIFtdLCBcImY3YTVcIiwgXCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NHptMTI4IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NHpcIl1cbn07XG5jb25zdCBmYVNwaWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGlkZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzNzVdLCBcImY3MTdcIiwgXCJNMTU4LjQgMzIuNmM0LjgtMTIuNC0xLjQtMjYuMy0xMy44LTMxcy0yNi4zIDEuNC0zMSAxMy44TDgxLjEgMTAwYy03LjkgMjAuNy0zIDQ0LjEgMTIuNyA1OS43bDU3LjQgNTcuNEw3MC44IDE5MC4zYy0yLjQtLjgtNC4zLTIuNy01LjEtNS4xTDQ2LjggMTI4LjRDNDIuNiAxMTUuOCAyOSAxMDkgMTYuNCAxMTMuMlMtMyAxMzEgMS4yIDE0My42bDE4LjkgNTYuOGM1LjYgMTYuNyAxOC43IDI5LjggMzUuNCAzNS40TDExNi4xIDI1NiA1NS42IDI3Ni4yYy0xNi43IDUuNi0yOS44IDE4LjctMzUuNCAzNS40TDEuMiAzNjguNEMtMyAzODEgMy44IDM5NC42IDE2LjQgMzk4LjhzMjYuMi0yLjYgMzAuNC0xNS4ybDE4LjktNTYuOGMuOC0yLjQgMi43LTQuMyA1LjEtNS4xbDgwLjQtMjYuOEw5My43IDM1Mi4zQzc4LjEgMzY4IDczLjEgMzkxLjQgODEuMSA0MTJsMzIuNSA4NC42YzQuOCAxMi40IDE4LjYgMTguNSAzMSAxMy44czE4LjUtMTguNiAxMy44LTMxbC0zMi41LTg0LjZjLTEuMS0zLS40LTYuMyAxLjgtOC41TDE2MCAzNTMuOWMxIDUyLjEgNDMuNiA5NC4xIDk2IDk0LjFzOTUtNDEuOSA5Ni05NC4xbDMyLjMgMzIuM2MyLjIgMi4yIDIuOSA1LjYgMS44IDguNWwtMzIuNSA4NC42Yy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhMNDMwLjkgNDEyYzcuOS0yMC43IDMtNDQuMS0xMi43LTU5LjdsLTU3LjQtNTcuNCA4MC40IDI2LjhjMi40IC44IDQuMyAyLjcgNS4xIDUuMWwxOC45IDU2LjhjNC4yIDEyLjYgMTcuOCAxOS40IDMwLjQgMTUuMnMxOS40LTE3LjggMTUuMi0zMC40bC0xOC45LTU2LjhjLTUuNi0xNi43LTE4LjctMjkuOC0zNS40LTM1LjRMMzk1LjkgMjU2bDYwLjUtMjAuMmMxNi43LTUuNiAyOS44LTE4LjcgMzUuNC0zNS40bDE4LjktNTYuOGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMTguOSA1Ni44Yy0uOCAyLjQtMi43IDQuMy01LjEgNS4xbC04MC40IDI2LjggNTcuNC01Ny40YzE1LjYtMTUuNiAyMC42LTM5IDEyLjctNTkuN0wzOTguNCAxNS40QzM5My42IDMgMzc5LjgtMy4yIDM2Ny40IDEuNnMtMTguNSAxOC42LTEzLjggMzFsMzIuNSA4NC42YzEuMSAzIC40IDYuMy0xLjggOC41TDMzNiAxNzQuMWwwLTE0LjFjMC0zMS44LTE4LjYtNTkuMy00NS41LTcyLjJjLTkuMS00LjQtMTguNSAzLjMtMTguNSAxMy40bDAgMTAuOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwLjhjMC0xMC4xLTkuNC0xNy43LTE4LjUtMTMuNEMxOTQuNiAxMDAuNyAxNzYgMTI4LjIgMTc2IDE2MGwwIDE0LjEtNDguMy00OC4zYy0yLjItMi4yLTIuOS01LjYtMS44LTguNWwzMi41LTg0LjZ6XCJdXG59O1xuY29uc3QgZmFIYW5kc0JvdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWJvdW5kJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGY5XCIsIFwiTTk2IDMyQzk2IDE0LjMgODEuNyAwIDY0IDBTMzIgMTQuMyAzMiAzMmwwIDY0IDAgNTkuMSAwIC43TDMyIDE5MmwwIDIxLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0wxMzEuNiAzNTJsLTMuNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMTI4IDAgNjQgMCAxMjggMCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN2wwLTIxLjkgMC0zNi4yIDAtLjdMNjA4IDk2bDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NCAwIDQ4LjgtNjkuMyA5Mi40Yy01LjcgNy42LTE2LjEgOS42LTI0LjIgNC44Yy05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NzMgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzYxIDIwOS43IDM1MiAyMzMuNCAzNTIgMjU4LjFsMCA2MS45IDAgMzItNjQgMCAwLTMyIDAtNjEuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMnMtMTUuMiAzMC45LTQuNCA0NC41bDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNWMtOC4xIDQuOC0xOC42IDIuNy0yNC4yLTQuOEw5NiAxNDQuOCA5NiA5NmwwLTY0em02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAtMTI4IDAtNjQgMC0xMjggMC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6XCJdXG59O1xuY29uc3QgZmFGaWxlSW52b2ljZURvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWludm9pY2UtZG9sbGFyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTcxXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNNjQgODBjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0xMjggNzJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTcuM2M4LjUgMS4yIDE2LjcgMy4xIDI0LjEgNS4xYzguNSAyLjMgMTMuNiAxMSAxMS4zIDE5LjZzLTExIDEzLjYtMTkuNiAxMS4zYy0xMS4xLTMtMjItNS4yLTMyLjEtNS4zYy04LjQtLjEtMTcuNCAxLjgtMjMuNiA1LjVjLTUuNyAzLjQtOC4xIDcuMy04LjEgMTIuOGMwIDMuNyAxLjMgNi41IDcuMyAxMC4xYzYuOSA0LjEgMTYuNiA3LjEgMjkuMiAxMC45bC41IC4xczAgMCAwIDBzMCAwIDAgMGMxMS4zIDMuNCAyNS4zIDcuNiAzNi4zIDE0LjZjMTIuMSA3LjYgMjIuNCAxOS43IDIyLjcgMzguMmMuMyAxOS4zLTkuNiAzMy4zLTIyLjkgNDEuNmMtNy43IDQuOC0xNi40IDcuNi0yNS4xIDkuMWwwIDE3LjFjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNy44Yy0xMS4yLTIuMS0yMS43LTUuNy0zMC45LTguOWMwIDAgMCAwIDAgMGMtMi4xLS43LTQuMi0xLjQtNi4yLTIuMWMtOC40LTIuOC0xMi45LTExLjktMTAuMS0yMC4yczExLjktMTIuOSAyMC4yLTEwLjFjMi41IC44IDQuOCAxLjYgNy4xIDIuNGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMTMuNiA0LjYgMjQuNiA4LjQgMzYuMyA4LjdjOS4xIC4zIDE3LjktMS43IDIzLjctNS4zYzUuMS0zLjIgNy45LTcuMyA3LjgtMTRjLS4xLTQuNi0xLjgtNy44LTcuNy0xMS42Yy02LjgtNC4zLTE2LjUtNy40LTI5LTExLjJsLTEuNi0uNXMwIDAgMCAwYy0xMS0zLjMtMjQuMy03LjMtMzQuOC0xMy43Yy0xMi03LjItMjIuNi0xOC45LTIyLjctMzcuM2MtLjEtMTkuNCAxMC44LTMyLjggMjMuOC00MC41YzcuNS00LjQgMTUuOC03LjIgMjQuMS04LjdsMC0xNy4zYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTU2XCIsIFwiTTI1NiAwYy0zNSAwLTY0IDU5LjUtNjQgOTMuN2wwIDg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45bDAgNjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOGwwIDQyYzAgNy44IDYuMyAxNCAxNCAxNGMxLjMgMCAyLjYtLjIgMy45LS41TDI1NiA0ODBsMTEwLjEgMzEuNWMxLjMgLjQgMi42IC41IDMuOSAuNWM2IDAgMTEuMS0zLjcgMTMuMS05QzM0NC41IDQ3MC43IDMyMCA0MjIuMiAzMjAgMzY4YzAtNjAuNiAzMC42LTExNCA3Ny4xLTE0NS42TDMyMCAxNzguM2wwLTg0LjZDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFYUmF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3gtcmF5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDk3XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTI1NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzItODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtMTEyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTEyIDAgMCA3MC42TDE4OS4xIDMwN2MtNS4yLTItMTAuNi0zLTE2LjItM2wtMi4xIDBjLTIzLjYgMC00Mi44IDE5LjItNDIuOCA0Mi44YzAgOS42IDMuMiAxOC45IDkuMSAyNi40bDE4LjIgMjMuMmM5LjcgMTIuNCAyNC42IDE5LjYgNDAuMyAxOS42bDEyMC44IDBjMTUuNyAwIDMwLjYtNy4yIDQwLjMtMTkuNmwxOC4yLTIzLjJjNS45LTcuNSA5LjEtMTYuOCA5LjEtMjYuNGMwLTIzLjYtMTkuMi00Mi44LTQyLjgtNDIuOGwtMi4yIDBjLTUuNSAwLTExIDEtMTYuMiAzTDI3MiAzMjYuNmwwLTcwLjYgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTExMiAwIDAtNDggODAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMjA4IDM1MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTgwIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6XCJdXG59O1xuY29uc3QgZmFTcGVsbENoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwZWxsLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODkxXCIsIFwiTTExMiAwQzk5LjEgMCA4Ny40IDcuOCA4Mi41IDE5LjdsLTY2LjcgMTYwLTEzLjMgMzJjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMNjYuNyAyMjRsOTAuNyAwIDUuMSAxMi4zYzYuOCAxNi4zIDI1LjUgMjQgNDEuOCAxNy4yczI0LTI1LjUgMTcuMi00MS44bC0xMy4zLTMyLTY2LjctMTYwQzEzNi42IDcuOCAxMjQuOSAwIDExMiAwem0xOC43IDE2MGwtMzcuMyAwTDExMiAxMTUuMiAxMzAuNyAxNjB6TTI1NiAzMmwwIDk2IDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsODAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGMwLTIzLjEtOS44LTQzLjgtMjUuNC01OC40YzYtMTEuMiA5LjQtMjQgOS40LTM3LjZjMC00NC4yLTM1LjgtODAtODAtODBMMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiA2NGwtMzIgMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZ6bS0zMiA2NGwzMiAwIDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMC0zMnpNNTY2LjYgMzEwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzUyIDQzNC43bC03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJ6XCJdXG59O1xuY29uc3QgZmFTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjcxNVwiLCBcIk01LjEgOS4yQzEzLjMtMS4yIDI4LjQtMy4xIDM4LjggNS4xbDU5MiA0NjRjMTAuNCA4LjIgMTIuMyAyMy4zIDQuMSAzMy43cy0yMy4zIDEyLjMtMzMuNyA0LjFMOS4yIDQyLjlDLTEuMiAzNC43LTMuMSAxOS42IDUuMSA5LjJ6XCJdXG59O1xuY29uc3QgZmFDb21wdXRlck1vdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXB1dGVyLW1vdXNlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDMzLCBcIm1vdXNlXCJdLCBcImY4Y2NcIiwgXCJNMCAxOTJsMTc2IDBMMTc2IDAgMTYwIDBDNzEuNiAwIDAgNzEuNiAwIDE2MGwwIDMyem0wIDMyTDAgMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDY0IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC0xMjgtMTkyIDBMMCAyMjR6bTM4NC0zMmwwLTMyQzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMjA4IDBsMCAxOTIgMTc2IDB6XCJdXG59O1xuY29uc3QgZmFNb3VzZSA9IGZhQ29tcHV0ZXJNb3VzZTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC10by1icmFja2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzaWduLWluXCJdLCBcImYwOTBcIiwgXCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYVNpZ25JbiA9IGZhQXJyb3dSaWdodFRvQnJhY2tldDtcbmNvbnN0IGZhU2hvcFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3Atc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInN0b3JlLWFsdC1zbGFzaFwiXSwgXCJlMDcwXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTU0LjgtNDNMNTc2IDIyNGwtNjQgMCAwIDE1MkwzODQgMjc1LjdsMC01MS43LTY0IDAgMCAxLjVMMjc3LjIgMTkybDMyNS45IDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjhjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEwxMjEuNyAwYy0xNiAwLTMxIDgtMzkuOSAyMS40TDc0LjEgMzIuOCAzOC44IDUuMXpNMzYuOCAxOTJsODUgMEwyMSAxMTIuNSA2LjIgMTM0LjdjLTQgNi4xLTYuMiAxMy4yLTYuMiAyMC40QzAgMTc1LjUgMTYuNSAxOTIgMzYuOCAxOTJ6TTMyMCAzODRsLTE5MiAwIDAtMTYwLTY0IDAgMCAxNjAgMCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY1LjUtNjQtNTAuNCAwIDM1Ljl6XCJdXG59O1xuY29uc3QgZmFTdG9yZUFsdFNsYXNoID0gZmFTaG9wU2xhc2g7XG5jb25zdCBmYVNlcnZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZXJ2ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMzNcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI4MCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQ4IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OHptMjgwIDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVZpcnVzQ292aWRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aXJ1cy1jb3ZpZC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhOVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Mi4xIDM0NC43YzExLjQtMTkuNSAxOS4xLTQxLjQgMjIuMy02NC43bDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM0w0ODQgMTI1LjlsMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NzIuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDQ1MC4xIDkybC0yMy44IDIzLjhDNDAyLjggOTcuOSAzNzQuNyA4NS44IDM0NCA4MS42TDM0NCA0OGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI4MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE4OS45IDkybDExLjMtMTEuM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEzNC4xIDc5LjggMzguOCA1LjF6TTE0OS4yIDIxMy41Yy0xLjUgNi0yLjcgMTIuMi0zLjUgMTguNUwxMTIgMjMybDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNMMTU2IDM4Ni4xbC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxODkuOSA0MjBsMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMkwxNDkuMiAyMTMuNXpcIl1cbn07XG5jb25zdCBmYVNob3BMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhNVwiLCBcIk0zNi44IDE5Mmw0MTIuOCAwYzIwLjItMTkuOCA0Ny45LTMyIDc4LjQtMzJjMzAuNSAwIDU4LjEgMTIuMiA3OC4zIDMxLjljMTguOS0xLjYgMzMuNy0xNy40IDMzLjctMzYuN2MwLTcuMy0yLjItMTQuNC02LjItMjAuNEw1NTguMiAyMS40QzU0OS4zIDggNTM0LjQgMCA1MTguMyAwTDEyMS43IDBjLTE2IDAtMzEgOC0zOS45IDIxLjRMNi4yIDEzNC43Yy00IDYuMS02LjIgMTMuMi02LjIgMjAuNEMwIDE3NS41IDE2LjUgMTkyIDM2LjggMTkyek0zODQgMjI0bC02NCAwIDAgMTYwLTE5MiAwIDAtMTYwLTY0IDAgMCAxNjAgMCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTgwIDAtMzIgMC0xMjh6bTE0NCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMybDAgNDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NTdGFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3Mtc3RhcnQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhvdXJnbGFzcy0xXCJdLCBcImYyNTFcIiwgXCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMUwxNDYuNyAyNTYgNzguOSAzMjMuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMjU2IDAgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMUwyMzcuMyAyNTZsNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDAgNjQgMCAzMiAwek0yODggNDM3bDAgMTFMOTYgNDQ4bDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMTkyIDMwMS4zbDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45elwiXVxufTtcbmNvbnN0IGZhSG91cmdsYXNzMSA9IGZhSG91cmdsYXNzU3RhcnQ7XG5jb25zdCBmYUJsZW5kZXJQaG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdibGVuZGVyLXBob25lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmI2XCIsIFwiTTIyNCAzNTJMMTk2LjggNTIuM0MxOTQuMiAyNC4yIDIxNi4zIDAgMjQ0LjYgMEw1MzQuMSAwYzIxLjEgMCAzNi40IDIwLjEgMzAuOSA0MC40TDU1OC41IDY0IDQwMCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNDkuOCAwLTE3LjUgNjRMNDAwIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjMuNiAwLTE3LjUgNjRMNDAwIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5Ny41IDBMNDgwIDM1MmwtMjU2IDB6bS0xNiAzMmwyODggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yODggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMmMwLTI2LjUgMjEuNS00OCA0OC00OHptMTQ0IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTQ3LjUgMzAuN2MxMC44IDYuNyAxNS4zIDIxIDEwLjYgMzMuNGwtMjIgNTcuOGMtNC4yIDEwLjktMTQuNSAxNy42LTI1LjMgMTYuNGwtMzMuMy0zLjZjLTEzLjYgNDIuMi0xMy42IDg4LjQgMCAxMzAuN2wzMy4zLTMuNmMxMC45LTEuMiAyMS4yIDUuNSAyNS4zIDE2LjRsMjIgNTcuOGM0LjcgMTIuNCAuMiAyNi43LTEwLjYgMzMuNGwtNDQgMjcuMmMtOS43IDYtMjEuOSA0LjItMjkuOC00LjNDLTI0LjYgMjg2LTI0LjYgMTE0IDczLjcgNy44QzgxLjYtLjcgOTMuOC0yLjUgMTAzLjUgMy41bDQ0IDI3LjJ6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ1doZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLXdoZWF0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGRiXCIsIFwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTEyLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzg0IDgwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwem0wIDEyOGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMCAwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDAgMCAxNnptMCAxMTJjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwIDAgMTZ6TTUxMiA0OTZsMCAxNi0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2IDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODB6bTAtOTZsLTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2em0wLTEyOGwwIDE2LTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHpNNTI4IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0em05NiA2NGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDU2IDcyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkJyZWFzdGZlZWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJyZWFzdGZlZWRpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1M2FcIiwgXCJNMjI0IDBhODAgODAgMCAxIDEgMCAxNjBBODAgODAgMCAxIDEgMjI0IDB6TTQzNi44IDM4Mi44TDM3My41IDQ2MmMtMTYuNiAyMC43LTQ2LjggMjQuMS02Ny41IDcuNWMtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS44LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44bDAtMzYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgLjggMCAxLjYgLjEgMi40bDEwMS40IDUwLjdjMjMuNyAxMS45IDMzLjMgNDAuNyAyMS41IDY0LjRzLTQwLjcgMzMuMy02NC40IDIxLjVMMjcuMiA0MjcuM2MtMS4xLS41LTIuMi0xLjEtMy4zLTEuN2MtNC45LTIuOC05LjItNi40LTEyLjYtMTAuNmMtNC42LTUuNC03LjgtMTEuNy05LjYtMTguNGMtMy4zLTEyLTEuOS0yNS4yIDQuOC0zNi42Yy42LTEuMSAxLjMtMi4yIDItMy4yTDc1LjYgMjU2LjFjMjYuNy00MC4xIDcxLjctNjQuMSAxMTkuOC02NC4xbDc1LjIgMGM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjRjMi45IDYuNyA0LjMgMTMuOCA0IDIwLjhjLS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAwelwiXVxufTtcbmNvbnN0IGZhUmlnaHRUb0JyYWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtdG8tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1pbi1hbHRcIl0sIFwiZjJmNlwiLCBcIk0yMTcuOSAxMDUuOUwzNDAuNyAyMjguN2M3LjIgNy4yIDExLjMgMTcuMSAxMS4zIDI3LjNzLTQuMSAyMC4xLTExLjMgMjcuM0wyMTcuOSA0MDYuMWMtNi40IDYuNC0xNSA5LjktMjQgOS45Yy0xOC43IDAtMzMuOS0xNS4yLTMzLjktMzMuOWwwLTYyLjFMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjIuMWMwLTE4LjcgMTUuMi0zMy45IDMzLjktMzMuOWM5IDAgMTcuNiAzLjYgMjQgOS45ek0zNTIgNDE2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduSW5BbHQgPSBmYVJpZ2h0VG9CcmFja2V0O1xuY29uc3QgZmFWZW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ZW51cycsXG4gIGljb246IFszODQsIDUxMiwgWzk3OTJdLCBcImYyMjFcIiwgXCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45elwiXVxufTtcbmNvbnN0IGZhUGFzc3BvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFzc3BvcnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1YWJcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xODMgMjc4LjhjLTI3LjktMTMuMi00OC40LTM5LjQtNTMuNy03MC44bDM5LjEgMGMxLjYgMzAuNCA3LjcgNTMuOCAxNC42IDcwLjh6bTQxLjMgOS4ybC0uMyAwLS4zIDBjLTIuNC0zLjUtNS43LTguOS05LjEtMTYuNWMtNi0xMy42LTEyLjQtMzQuMy0xNC4yLTYzLjVsNDcuMSAwYy0xLjggMjkuMi04LjEgNDkuOS0xNC4yIDYzLjVjLTMuNCA3LjYtNi43IDEzLTkuMSAxNi41em00MC43LTkuMmM2LjgtMTcuMSAxMi45LTQwLjQgMTQuNi03MC44bDM5LjEgMGMtNS4zIDMxLjQtMjUuOCA1Ny42LTUzLjcgNzAuOHpNMjc5LjYgMTc2Yy0xLjYtMzAuNC03LjctNTMuOC0xNC42LTcwLjhjMjcuOSAxMy4yIDQ4LjQgMzkuNCA1My43IDcwLjhsLTM5LjEgMHpNMjIzLjcgOTZsLjMgMCAuMyAwYzIuNCAzLjUgNS43IDguOSA5LjEgMTYuNWM2IDEzLjYgMTIuNCAzNC4zIDE0LjIgNjMuNWwtNDcuMSAwYzEuOC0yOS4yIDguMS00OS45IDE0LjItNjMuNWMzLjQtNy42IDYuNy0xMyA5LjEtMTYuNXpNMTgzIDEwNS4yYy02LjggMTcuMS0xMi45IDQwLjQtMTQuNiA3MC44bC0zOS4xIDBjNS4zLTMxLjQgMjUuOC01Ny42IDUzLjctNzAuOHpNMzUyIDE5MkExMjggMTI4IDAgMSAwIDk2IDE5MmExMjggMTI4IDAgMSAwIDI1NiAwek0xMTIgMzg0Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDIyNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yMjQgMHpcIl1cbn07XG5jb25zdCBmYVRodW1idGFja1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1idGFjay1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1widGh1bWItdGFjay1zbGFzaFwiXSwgXCJlNjhmXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDgxLjQgMzUyYzkuOC0uNCAxOC45LTUuMyAyNC42LTEzLjNjNi04LjMgNy43LTE5LjEgNC40LTI4LjhsLTEtM2MtMTMuOC00MS41LTQyLjgtNzQuOC03OS41LTk0LjdMNDE4LjUgNjQgNDQ4IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI5LjUgMC02LjEgNzkuNUwzOC44IDUuMXpNMzI0LjkgMzUyTDE3Ny4xIDIzNS42Yy0yMC45IDE4LjktMzcuMiA0My4zLTQ2LjUgNzEuM2wtMSAzYy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDE2NC45IDB6TTI4OCAzODRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYtNjQgMHpcIl1cbn07XG5jb25zdCBmYVRodW1iVGFja1NsYXNoID0gZmFUaHVtYnRhY2tTbGFzaDtcbmNvbnN0IGZhSGVhcnRQdWxzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1wdWxzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnRiZWF0XCJdLCBcImYyMWVcIiwgXCJNMjI4LjMgNDY5LjFMNDcuNiAzMDAuNGMtNC4yLTMuOS04LjItOC4xLTExLjktMTIuNGw4NyAwYzIyLjYgMCA0My0xMy42IDUxLjctMzQuNWwxMC41LTI1LjIgNDkuMyAxMDkuNWMzLjggOC41IDEyLjEgMTQgMjEuNCAxNC4xczE3LjgtNSAyMi0xMy4zTDMyMCAyNTMuN2wxLjcgMy40YzkuNSAxOSAyOC45IDMxIDUwLjEgMzFsMTA0LjUgMGMtMy43IDQuMy03LjcgOC41LTExLjkgMTIuNEwyODMuNyA0NjkuMWMtNy41IDctMTcuNCAxMC45LTI3LjcgMTAuOXMtMjAuMi0zLjktMjcuNy0xMC45ek01MDMuNyAyNDBsLTEzMiAwYy0zIDAtNS44LTEuNy03LjItNC40bC0yMy4yLTQ2LjNjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM3MtMTcuNCA1LjEtMjEuNSAxMy4zbC00MS40IDgyLjhMMjA1LjkgMTU4LjJjLTMuOS04LjctMTIuNy0xNC4zLTIyLjItMTQuMXMtMTguMSA1LjktMjEuOCAxNC44bC0zMS44IDc2LjNjLTEuMiAzLTQuMiA0LjktNy40IDQuOUwxNiAyNDBjLTIuNiAwLTUgLjQtNy4zIDEuMUMzIDIyNS4yIDAgMjA4LjIgMCAxOTAuOWwwLTUuOGMwLTY5LjkgNTAuNS0xMjkuNSAxMTkuNC0xNDFDMTY1IDM2LjUgMjExLjQgNTEuNCAyNDQgODRsMTIgMTIgMTItMTJjMzIuNi0zMi42IDc5LTQ3LjUgMTI0LjYtMzkuOUM0NjEuNSA1NS42IDUxMiAxMTUuMiA1MTIgMTg1LjFsMCA1LjhjMCAxNi45LTIuOCAzMy41LTguMyA0OS4xelwiXVxufTtcbmNvbnN0IGZhSGVhcnRiZWF0ID0gZmFIZWFydFB1bHNlO1xuY29uc3QgZmFQZW9wbGVDYXJyeUJveCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtY2FycnktYm94JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwZW9wbGUtY2FycnlcIl0sIFwiZjRjZVwiLCBcIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDgwIDQ4em02NCAxOTMuN2wwIDY1LjEgNTEgNTFjNy4xIDcuMSAxMS44IDE2LjIgMTMuNCAyNi4xbDE1LjIgOTAuOWMyLjkgMTcuNC04LjkgMzMuOS0yNi4zIDM2LjhzLTMzLjktOC45LTM2LjgtMjYuM2wtMTQuMy04NS45TDY2LjggMzIwQzU0LjggMzA4IDQ4IDI5MS43IDQ4IDI3NC43bDAtODguMWMwLTMyLjQgMjYuMi01OC42IDU4LjYtNTguNmMyNC4xIDAgNDYuNSAxMiA1OS45IDMybDQ3LjQgNzEuMSAxMC4xIDUgMC03Ni4yYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNzYuMiAxMC4xLTVMNDczLjUgMTYwYzEzLjMtMjAgMzUuOC0zMiA1OS45LTMyYzMyLjQgMCA1OC42IDI2LjIgNTguNiA1OC42bDAgODguMWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNzkuNCA3OS40LTE0LjMgODUuOWMtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOGwxNS4yLTkwLjljMS42LTkuOSA2LjMtMTkgMTMuNC0yNi4xbDUxLTUxIDAtNjUuMS0xOSAyOC41Yy00LjYgNy0xMSAxMi42LTE4LjUgMTYuM2wtNTkuNiAyOS44Yy0yLjQgMS4zLTQuOSAyLjItNy42IDIuOGMtMi42IC42LTUuMyAuOS03LjkgLjhsLTEyNi43IDBjLTIuNSAuMS01LS4yLTcuNS0uN2MtMi45LS42LTUuNi0xLjYtOC4xLTNsLTU5LjUtMjkuOGMtNy41LTMuNy0xMy44LTkuNC0xOC41LTE2LjNsLTE5LTI4LjV6TTIuMyA0NjguMUw1MC4xIDM0OC42bDQ5LjIgNDkuMi0zNy42IDk0Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44Uy00LjMgNDg0LjUgMi4zIDQ2OC4xek01MTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTc3LjkgMzQ4LjZsNDcuOCAxMTkuNWM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44bC0zNy42LTk0IDQ5LjItNDkuMnpcIl1cbn07XG5jb25zdCBmYVBlb3BsZUNhcnJ5ID0gZmFQZW9wbGVDYXJyeUJveDtcbmNvbnN0IGZhVGVtcGVyYXR1cmVIaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWhpZ2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NjlcIiwgXCJNNDE2IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAxMjhBOTYgOTYgMCAxIDAgNDE2IDBhOTYgOTYgMCAxIDAgMCAxOTJ6TTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyMTcuOCAzMzIuNiAyMjQgMzQ5LjUgMjI0IDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45Qzg4LjkgMzA4LjQgOTYgMjkzLjggOTYgMjc2LjVMOTYgMTEyek0xNDQgMEM4Mi4xIDAgMzIgNTAuMiAzMiAxMTJsMCAxNjQuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEMxMS4yIDMwNC4yIDAgMzM0LjggMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZMMjU2IDExMkMyNTYgNTAuMiAyMDUuOSAwIDE0NCAwem0wIDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNMMTYwIDExMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDIxMC43Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjNjMCAyNi41IDIxLjUgNDggNDggNDh6XCJdXG59O1xuY29uc3QgZmFNaWNyb2NoaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9jaGlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmRiXCIsIFwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMzJsLTE5MiAwIDAgMTkyIDE5MiAwIDAtMTkyelwiXVxufTtcbmNvbnN0IGZhQ3Jvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvd24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwODFdLCBcImY1MjFcIiwgXCJNMzA5IDEwNmMxMS40LTcgMTktMTkuNyAxOS0zNGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDE0LjQgNy42IDI3IDE5IDM0TDIwOS43IDIyMC42Yy05LjEgMTguMi0zMi43IDIzLjQtNDguNiAxMC43TDcyIDE2MGM1LTYuNyA4LTE1IDgtMjRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCAxMTMuOSAwIDEzNnMxNy45IDQwIDQwIDQwYy4yIDAgLjUgMCAuNyAwTDg2LjQgNDI3LjRjNS41IDMwLjQgMzIgNTIuNiA2MyA1Mi42bDI3Ny4yIDBjMzAuOSAwIDU3LjQtMjIuMSA2My01Mi42TDUzNS4zIDE3NmMuMiAwIC41IDAgLjcgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDkgMyAxNy4zIDggMjRsLTg5LjEgNzEuM2MtMTUuOSAxMi43LTM5LjUgNy41LTQ4LjYtMTAuN0wzMDkgMTA2elwiXVxufTtcbmNvbnN0IGZhV2VpZ2h0SGFuZ2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWlnaHQtaGFuZ2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVjZFwiLCBcIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMkwxMjAgMTI4Yy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC03MiAyODhjLTMuNiAxNC4zLS40IDI5LjUgOC43IDQxLjJTMzMuMiA1MTIgNDggNTEybDQxNiAwYzE0LjggMCAyOC43LTYuOCAzNy44LTE4LjVzMTIuMy0yNi44IDguNy00MS4ybC03Mi0yODhDNDMzLjIgMTQzIDQxNCAxMjggMzkyIDEyOGwtNDUuNSAwelwiXVxufTtcbmNvbnN0IGZhWG1hcmtzTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneG1hcmtzLWxpbmVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTlhXCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTVMNyAzMTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1TDQxIDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhRmlsZVByZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXByZXNjcmlwdGlvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTEwNCAxOTZsNzIgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MGMwIDI1LjUtMTUuOSA0Ny4yLTM4LjMgNTUuOWw0MyA0MC4zIDMzLjgtMzFjOC4xLTcuNSAyMC44LTYuOSAyOC4zIDEuMnM2LjkgMjAuOC0xLjIgMjguM0wyNzAgMzc5LjdsMzEuNyAyOS43YzguMSA3LjYgOC41IDIwLjIgLjkgMjguM3MtMjAuMiA4LjUtMjguMyAuOWwtMzMuOS0zMS44LTM0LjkgMzJjLTguMSA3LjUtMjAuOCA2LjktMjguMy0xLjJzLTYuOS0yMC44IDEuMi0yOC4zbDMyLjYtMjkuOS02NC44LTYwLjhjLS45LS44LTEuNi0xLjctMi4zLTIuNmwtMjAgMCAwIDQ0YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTY0IDAtODBjMC0xMSA5LTIwIDIwLTIwem03MiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTUyIDAgMCA0MCA1MiAwelwiXVxufTtcbmNvbnN0IGZhV2VpZ2h0U2NhbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2VpZ2h0LXNjYWxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ3ZWlnaHRcIl0sIFwiZjQ5NlwiLCBcIk0xMjggMTc2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6TTM5MS44IDY0QzM1OS41IDI0LjkgMzEwLjcgMCAyNTYgMFMxNTIuNSAyNC45IDEyMC4yIDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC01Ni4yIDB6TTI5NiAyMjRjMC0xMC42LTQuMS0yMC4yLTEwLjktMjcuNGwzMy42LTc4LjNjMy41LTguMS0uMy0xNy41LTguNC0yMXMtMTcuNSAuMy0yMSA4LjRMMjU1LjcgMTg0Yy0yMiAuMS0zOS43IDE4LTM5LjcgNDBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MHpcIl1cbn07XG5jb25zdCBmYVdlaWdodCA9IGZhV2VpZ2h0U2NhbGU7XG5jb25zdCBmYVVzZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWdyb3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MTAxLCBcInVzZXItZnJpZW5kc1wiXSwgXCJmNTAwXCIsIFwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0bDkxLjQgMEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTYwOS4zIDUxMmwtMTM3LjggMGM1LjQtOS40IDguNi0yMC4zIDguNi0zMmwwLThjMC02MC43LTI3LjEtMTE1LjItNjkuOC0xNTEuOGMyLjQtLjEgNC43LS4yIDcuMS0uMmw2MS40IDBDNTY3LjggMzIwIDY0MCAzOTIuMiA2NDAgNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43ek00MzIgMjU2Yy0zMSAwLTU5LTEyLjYtNzkuMy0zMi45QzM3Mi40IDE5Ni41IDM4NCAxNjMuNiAzODQgMTI4YzAtMjYuOC02LjYtNTIuMS0xOC4zLTc0LjNDMzg0LjMgNDAuMSA0MDcuMiAzMiA0MzIgMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJzLTUwLjEgMTEyLTExMiAxMTJ6XCJdXG59O1xuY29uc3QgZmFVc2VyRnJpZW5kcyA9IGZhVXNlckdyb3VwO1xuY29uc3QgZmFBcnJvd1VwQVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtYS16JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFscGhhLXVwXCJdLCBcImYxNWVcIiwgXCJNMTgzLjYgNDIuNEMxNzcuNSAzNS44IDE2OSAzMiAxNjAgMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDEyOCAxNDYuMyAxMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDEuNyAzMi40IDM1LjRjMTEuOSAxMyAzMi4yIDEzLjkgNDUuMiAyczEzLjktMzIuMiAyLTQ1LjJsLTg4LTk2ek0zMjAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDE2IDMyYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC02NCAxMjgtMTYgMzJjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC0xNi0zMi02NC0xMjhDNDM5LjIgMzguOCA0MjguMSAzMiA0MTYgMzJ6TTM5NS44IDE3Nkw0MTYgMTM1LjYgNDM2LjIgMTc2bC00MC40IDB6XCJdXG59O1xuY29uc3QgZmFTb3J0QWxwaGFVcCA9IGZhQXJyb3dVcEFaO1xuY29uc3QgZmFDaGVzc0tuaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1rbmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODIyXSwgXCJmNDQxXCIsIFwiTTk2IDQ4TDgyLjcgNjEuM0M3MC43IDczLjMgNjQgODkuNSA2NCAxMDYuNWwwIDEzMi40YzAgMTAuNyA1LjMgMjAuNyAxNC4yIDI2LjZsMTAuNiA3YzE0LjMgOS42IDMyLjcgMTAuNyA0OC4xIDNsMy4yLTEuNmMyLjYtMS4zIDUtMi44IDcuMy00LjVsNDkuNC0zN2M2LjYtNSAxNS43LTUgMjIuMyAwYzEwLjIgNy43IDkuOSAyMy4xLS43IDMwLjNMOTAuNCAzNTBDNzMuOSAzNjEuMyA2NCAzODAgNjQgNDAwbDMyMCAwIDI4LjktMTU5YzIuMS0xMS4zIDMuMS0yMi44IDMuMS0zNC4zbDAtMTQuN0M0MTYgODYgMzMwIDAgMjI0IDBMODMuOCAwQzcyLjkgMCA2NCA4LjkgNjQgMTkuOGMwIDcuNSA0LjIgMTQuMyAxMC45IDE3LjdMOTYgNDh6bTI0IDY4YTIwIDIwIDAgMSAxIDQwIDAgMjAgMjAgMCAxIDEgLTQwIDB6TTIyLjYgNDczLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMxNiA1MDEuOSAyNi4xIDUxMiAzOC42IDUxMmwzNzAuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMzg0IDQzMiA2NCA0MzIgMjIuNiA0NzMuNHpcIl1cbn07XG5jb25zdCBmYUZhY2VMYXVnaFNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoLXNxdWludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2gtc3F1aW50XCJdLCBcImY1OWJcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMWwyNzUuMiAwYzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6bTM2LjctMTk5LjRsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxMjUuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIl1cbn07XG5jb25zdCBmYUxhdWdoU3F1aW50ID0gZmFGYWNlTGF1Z2hTcXVpbnQ7XG5jb25zdCBmYVdoZWVsY2hhaXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2hlZWxjaGFpcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE5M1wiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjAuNSAyNDcuMmMxMi40LTQuNyAxOC43LTE4LjUgMTQtMzAuOXMtMTguNS0xOC43LTMwLjktMTRDNDMuMSAyMjUuMSAwIDI4My41IDAgMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzYxLjIgMCAxMTQuMy0zNC4zIDE0MS4yLTg0LjdjNi4yLTExLjcgMS44LTI2LjItOS45LTMyLjVzLTI2LjItMS44LTMyLjUgOS45QzI0MCA0NDAgMjAyLjggNDY0IDE2MCA0NjRDOTguMSA0NjQgNDggNDEzLjkgNDggMzUyYzAtNDcuOSAzMC4xLTg4LjggNzIuNS0xMDQuOHpNMjU5LjggMTc2bC0xLjktOS43Yy00LjUtMjIuMy0yNC0zOC4zLTQ2LjgtMzguM2MtMzAuMSAwLTUyLjcgMjcuNS00Ni44IDU3bDIzLjEgMTE1LjVjNiAyOS45IDMyLjIgNTEuNCA2Mi44IDUxLjRsNS4xIDBjLjQgMCAuOCAwIDEuMyAwbDk0LjEgMGM2LjcgMCAxMi42IDQuMSAxNSAxMC40TDQwMiA0NTkuMmM2IDE2LjEgMjMuOCAyNC42IDQwLjEgMTkuMWw0OC0xNmMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0xOC43IDYuMi0yNS41LTY4Yy0xMS43LTMxLjItNDEuNi01MS45LTc0LjktNTEuOWwtNjguNSAwLTkuNi00OCA2My40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTc2LjIgMHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZUFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWFycm93LXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtdXBcIl0sIFwiZjBhYVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg1IDIxNWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03MS03MUwyODAgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjE0LjEtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVVcCA9IGZhQ2lyY2xlQXJyb3dVcDtcbmNvbnN0IGZhVG9nZ2xlT24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9nZ2xlLW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA1XCIsIFwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnMtODYtMTkyLTE5Mi0xOTJMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4Njk0LCBcIndhbGtpbmdcIl0sIFwiZjU1NFwiLCBcIk0xNjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTI2LjUgMTk5LjNjLTEgLjQtMS45IC44LTIuOSAxLjJsLTggMy41Yy0xNi40IDcuMy0yOSAyMS4yLTM0LjcgMzguMmwtMi42IDcuOGMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMnMtMjUuOC0yMy43LTIwLjItNDAuNWwyLjYtNy44YzExLjQtMzQuMSAzNi42LTYxLjkgNjkuNC03Ni41bDgtMy41YzIwLjgtOS4yIDQzLjMtMTQgNjYuMS0xNGM0NC42IDAgODQuOCAyNi44IDEwMS45IDY3LjlMMjgxIDIzMi43bDIxLjQgMTAuN2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDI0NyAyODcuM2MtMTAuMy01LjItMTguNC0xMy44LTIyLjgtMjQuNWwtOS42LTIzLTE5LjMgNjUuNSA0OS41IDU0YzUuNCA1LjkgOS4yIDEzIDExLjIgMjAuOGwyMyA5Mi4xYzQuMyAxNy4xLTYuMSAzNC41LTIzLjMgMzguOHMtMzQuNS02LjEtMzguOC0yMy4zbC0yMi04OC4xLTcwLjctNzcuMWMtMTQuOC0xNi4xLTIwLjMtMzguNi0xNC43LTU5LjdsMTYuOS02My41ek02OC43IDM5OGwyNS02Mi40YzIuMSAzIDQuNSA1LjggNyA4LjZsNDAuNyA0NC40LTE0LjUgMzYuMmMtMi40IDYtNiAxMS41LTEwLjYgMTYuMUw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w2OC43IDM5OHpcIl1cbn07XG5jb25zdCBmYVdhbGtpbmcgPSBmYVBlcnNvbldhbGtpbmc7XG5jb25zdCBmYUwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbCcsXG4gIGljb246IFszMjAsIDUxMiwgWzEwOF0sIFwiNGNcIiwgXCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODI5M10sIFwiZjA2ZFwiLCBcIk0xNTkuMyA1LjRjNy44LTcuMyAxOS45LTcuMiAyNy43IC4xYzI3LjYgMjUuOSA1My41IDUzLjggNzcuNyA4NGMxMS0xNC40IDIzLjUtMzAuMSAzNy00Mi45YzcuOS03LjQgMjAuMS03LjQgMjggLjFjMzQuNiAzMyA2My45IDc2LjYgODQuNSAxMThjMjAuMyA0MC44IDMzLjggODIuNSAzMy44IDExMS45QzQ0OCA0MDQuMiAzNDguMiA1MTIgMjI0IDUxMkM5OC40IDUxMiAwIDQwNC4xIDAgMjc2LjVjMC0zOC40IDE3LjgtODUuMyA0NS40LTEzMS43QzczLjMgOTcuNyAxMTIuNyA0OC42IDE1OS4zIDUuNHpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMWM0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjRjLTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41Yy0xNi41LTIxLTQ2LTU4LjUtNjIuOC03OS44Yy02LjMtOC0xOC4zLTguMS0yNC43LS4xYy0zMy44IDQyLjUtNTAuOCA2OS4zLTUwLjggOTkuNEMxMTIgMzc1LjQgMTYyLjYgNDE2IDIyNS43IDQxNnpcIl1cbn07XG5jb25zdCBmYUJlZFB1bHNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZC1wdWxzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wicHJvY2VkdXJlc1wiXSwgXCJmNDg3XCIsIFwiTTQ4My4yIDkuNkw1MjQgNjRsOTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTA0IDBjLTcuNiAwLTE0LjctMy42LTE5LjItOS42TDQ2OC43IDcwLjNsLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDMzOS4yIDExMiAyMTYgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41QzQ0NS45IDYuMiA0NTMuMiAxIDQ2MS42IC4xczE2LjYgMi43IDIxLjYgOS41ek0zMjAgMTYwbDEyLjcgMCAyMC43IDMxLjFjMTEuMiAxNi44IDMwLjYgMjYuMyA1MC43IDI0LjhzMzcuOS0xMy43IDQ2LjUtMzJMNDYxLjkgMTYwbDgyLjEgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMjI0IDAtMzIgMEw2NCA0NDhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0czMyIDE0LjMgMzIgMzJsMCAyNTYgMjI0IDAgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xNDQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVByb2NlZHVyZXMgPSBmYUJlZFB1bHNlO1xuY29uc3QgZmFTaHV0dGxlU3BhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2h1dHRsZS1zcGFjZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wic3BhY2Utc2h1dHRsZVwiXSwgXCJmMTk3XCIsIFwiTTEzMCA0ODBjNDAuNiAwIDgwLjQtMTEgMTE1LjItMzEuOUwzNTIgMzg0bC0yMjQgMCAwIDk2IDIgMHpNMzUyIDEyOEwyNDUuMiA2My45QzIxMC40IDQzIDE3MC42IDMyIDEzMCAzMmwtMiAwIDAgOTYgMjI0IDB6TTk2IDEyOGwwLTk2TDgwIDMyQzUzLjUgMzIgMzIgNTMuNSAzMiA4MGwwIDQ4IDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNkwwIDMyOGwwIDE2YzAgMjIuMSAxNy45IDQwIDQwIDQwbC04IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwIDAtOTYgOCAwYzI2LjIgMCA0OS40LTEyLjYgNjQtMzJsMjg4IDBjNjkuMyAwIDEzNS0yMi43IDE3OS4yLTgxLjZjNi40LTguNSA2LjQtMjAuMyAwLTI4LjhDNTkxIDE4Mi43IDUyNS4zIDE2MCA0NTYgMTYwbC0yODggMGMtMTQuNi0xOS40LTM3LjgtMzItNjQtMzJsLTggMHpNNTEyIDI0My42bDAgMjQuOWMwIDE5LjYtMTUuOSAzNS42LTM1LjYgMzUuNmMtMi41IDAtNC40LTItNC40LTQuNGwwLTg3LjFjMC0yLjUgMi00LjQgNC40LTQuNGMxOS42IDAgMzUuNiAxNS45IDM1LjYgMzUuNnpcIl1cbn07XG5jb25zdCBmYVNwYWNlU2h1dHRsZSA9IGZhU2h1dHRsZVNwYWNlO1xuY29uc3QgZmFGYWNlTGF1Z2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1sYXVnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2hcIl0sIFwiZjU5OVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNOTYuOCAzMTQuMWMtMy44LTEzLjcgNy40LTI2LjEgMjEuNi0yNi4xbDI3NS4yIDBjMTQuMiAwIDI1LjUgMTIuNCAyMS42IDI2LjFDMzk2LjIgMzgyIDMzMi4xIDQzMiAyNTYgNDMycy0xNDAuMi01MC0xNTkuMi0xMTcuOXpNMTQ0LjQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFMYXVnaCA9IGZhRmFjZUxhdWdoO1xuY29uc3QgZmFGb2xkZXJPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MTk0LCAxMjg0NDksIDYxNzE3XSwgXCJmMDdjXCIsIFwiTTg4LjcgMjIzLjhMMCAzNzUuOCAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDExNy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMjYuNSAyNi41YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNDE2IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzItMzM2IDBjLTIyLjggMC00My44IDEyLjEtNTUuMyAzMS44em0yNy42IDE2LjFDMTIyLjEgMjMwIDEzMi42IDIyNCAxNDQgMjI0bDQwMCAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTExMiAxOTJDNDUzLjkgNDc0IDQ0My40IDQ4MCA0MzIgNDgwTDMyIDQ4MGMtMTEuNSAwLTIyLTYuMS0yNy43LTE2LjFzLTUuNy0yMi4yIC4xLTMyLjFsMTEyLTE5MnpcIl1cbn07XG5jb25zdCBmYUhlYXJ0Q2lyY2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUtcGx1cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwMFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNmwwLTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xbDAgNS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFDb2RlRm9yayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWZvcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUxM2JcIiwgXCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDM4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC43QzMwNy43IDE0MSAyODggMTEyLjggMjg4IDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDM4LjdjMCA1My00MyA5Ni05NiA5NmwtNDggMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtNzAuNy00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzguN0MxOS43IDE0MSAwIDExMi44IDAgODBDMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG5jb25zdCBmYUNpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2l0eScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzk2MV0sIFwiZjY0ZlwiLCBcIk00ODAgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNDgtNjQgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzY0IDEwLjcgNjQgMjRsMCA3Mkw0OCA5NkMyMS41IDk2IDAgMTE3LjUgMCAxNDRsMCA5NkwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNTYgMCAzMiAwIDk2IDAgMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTExMiAwIDAtMTQ0em05NiAzMjBsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMjQwIDQxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0xMjggNDAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTU2MCAyNTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDE3NmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTI1NiAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDMyMGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2em0zMDQtNDhsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNNDAwIDY0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhTWljcm9waG9uZUxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvcGhvbmUtbGluZXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjc4OTcsIFwibWljcm9waG9uZS1hbHRcIl0sIFwiZjNjOVwiLCBcIk05NiA5NmwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bC04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC0zMi04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC0zMi04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDBjMC01My00My05Ni05Ni05NlM5NiA0MyA5NiA5NnpNMzIwIDI0MGwwIDE2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRsMCAzMy42LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtMzMuNmM4NS44LTExLjcgMTUyLTg1LjMgMTUyLTE3NC40bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNHpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmVBbHQgPSBmYU1pY3JvcGhvbmVMaW5lcztcbmNvbnN0IGZhUGVwcGVySG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcHBlci1ob3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3OThdLCBcImY4MTZcIiwgXCJNNDI4LjMgM2MxMS42LTYuNCAyNi4yLTIuMyAzMi42IDkuM2w0LjggOC43YzE5LjMgMzQuNyAxOS44IDc1LjcgMy40IDExMEM0OTUuOCAxNTkuNiA1MTIgMTk3LjkgNTEyIDI0MGMwIDE4LjUtMy4xIDM2LjMtOC45IDUyLjhjLTYuMSAxNy4zLTI4LjUgMTYuMy0zNi44LS4xbC0xMS43LTIzLjRjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM0wzNjAgMjU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNy4xIDBjLTIxLjMgMC0zMC0yMy45LTEwLjgtMzIuOUMzMDQuNyA4NS40IDMyNy43IDgwIDM1MiA4MGMyOC4zIDAgNTQuOCA3LjMgNzcuOCAyMC4yYzUuNS0xOC4yIDMuNy0zOC40LTYtNTUuOEw0MTkgMzUuN2MtNi40LTExLjYtMi4zLTI2LjIgOS4zLTMyLjZ6TTE3MS4yIDM0NS41TDI2NCAxNjBsNDAgMCAwIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDc2LjIgMCAyMy45IDQ3LjhDMzcyLjMgNDQzLjkgMjQ0LjMgNTEyIDEwMy4yIDUxMmwtNTguOCAwQzE5LjkgNTEyIDAgNDkyLjEgMCA0NjcuNmMwLTIwLjggMTQuNS0zOC44IDM0LjgtNDMuM2w0OS44LTExLjFjMzcuNi04LjQgNjkuNS0zMy4yIDg2LjctNjcuN3pcIl1cbn07XG5jb25zdCBmYVVubG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmxvY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyNzVdLCBcImYwOWNcIiwgXCJNMTQ0IDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMS45IDAgNTkuNCAxOC42IDcyLjMgNDUuN2M3LjYgMTYgMjYuNyAyMi44IDQyLjYgMTUuMnMyMi44LTI2LjcgMTUuMi00Mi42QzMzMSAzMy43IDI4MS41IDAgMjI0IDBDMTQ0LjUgMCA4MCA2NC41IDgwIDE0NGwwIDQ4LTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yNDAgMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ29sb25TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbG9uLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxNDBcIiwgXCJNMjU1IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzE5Ny4yIDcuMSAxOTMgMjQuMkwxODEuOSA2OC42Qzk2LjEgODcuOCAzMiAxNjQuNCAzMiAyNTZjMCA1OC4xIDI1LjggMTEwLjIgNjYuNyAxNDUuNEw4MSA0NzIuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMy01Mi4xYzkgMy40IDE4LjQgNi4yIDI4IDguMkwxNzcgNDcyLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTAuNC00MS40YzMzLjQtNC40IDY0LjEtMTcuNCA4OS44LTM2LjdjMTQuMS0xMC42IDE3LTMwLjcgNi40LTQ0LjhzLTMwLjctMTctNDQuOC02LjRjLTEwLjIgNy43LTIxLjcgMTMuOS0zNCAxOC4zTDMyMSAxNjBjOS40LS4zIDE4LjUtNC43IDI0LjYtMTIuOGMxMC42LTE0LjEgNy44LTM0LjItNi40LTQ0LjhjLTEuMS0uOC0yLjItMS42LTMuMy0yLjRMMzUxIDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzI5My4yIDcuMSAyODkgMjQuMkwyNzcuMiA3MS41Yy05LjMtMi43LTE4LjgtNC42LTI4LjYtNS45TDI1NSAzOS44ek0xNjMuMiAxNDMuM0wxMTcuMyAzMjYuOEMxMDMuOSAzMDYuNSA5NiAyODIuMiA5NiAyNTZjMC00OC43IDI3LjItOTEgNjcuMi0xMTIuN3ptOC42IDIyOS41bDYxLjEtMjQ0LjZjOS45IC43IDE5LjUgMi41IDI4LjcgNS4zbC02MiAyNDguMWMtOS43LTEuOS0xOS00LjgtMjcuOC04Ljh6XCJdXG59O1xuY29uc3QgZmFIZWFkc2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWRzZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1OTBcIiwgXCJNMjU2IDQ4QzE0MS4xIDQ4IDQ4IDE0MS4xIDQ4IDI1NmwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2bDAgMTQ0LjFjMCA0OC42LTM5LjQgODgtODguMSA4OEwzMTMuNiA0ODhjLTguMyAxNC4zLTIzLjggMjQtNDEuNiAyNGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwzMiAwYzE3LjggMCAzMy4zIDkuNyA0MS42IDI0bDExMC40IC4xYzIyLjEgMCA0MC0xNy45IDQwLTQwTDQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4ek0xNDQgMjA4bDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTIyNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2IDB6XCJdXG59O1xuY29uc3QgZmFTdG9yZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3JlLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDcxXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTg2LjgtNjggMC0xNy4xIDAtMTMxLjRjLTQgMS04IDEuOC0xMi4zIDIuM2MwIDAgMCAwLS4xIDBjLTUuMyAuNy0xMC43IDEuMS0xNi4yIDEuMWMtMTIuNCAwLTI0LjMtMS45LTM1LjQtNS4zbDAgMTAwLjNMMzAxLjIgMjEwLjdjNy00LjQgMTMuMy05LjcgMTguOC0xNS43YzE1LjkgMTcuNiAzOS4xIDI5IDY1LjIgMjljMjYuMiAwIDQ5LjMtMTEuNCA2NS4yLTI5YzE2IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzQuMSAwIDguMS0uMyAxMi4xLS44YzU1LjUtNy40IDgxLjgtNzIuNSA1Mi4xLTExOS40TDUyMi4zIDEzLjFDNTE3LjIgNSA1MDguMSAwIDQ5OC40IDBMMTQxLjYgMGMtOS43IDAtMTguOCA1LTIzLjkgMTMuMWwtMjIuNyAzNkwzOC44IDUuMXptNzMuNCAyMTguMWM0IC41IDguMSAuOCAxMi4xIC44YzExIDAgMjEuNC0yIDMxLTUuNkw0OC45IDEzNC41Yy02LjEgNDAuNiAxOS41IDgyLjggNjMuMyA4OC43ek0xNjAgMzg0bDAtMTMzLjRjLTExLjIgMy41LTIzLjIgNS40LTM1LjYgNS40Yy01LjUgMC0xMS0uNC0xNi4zLTEuMWwtLjEgMGMtNC4xLS42LTguMS0xLjMtMTItMi4zTDk2IDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzEyLjkgMCAyNC44LTMuOCAzNC45LTEwLjNMMzY1LjUgMzg0IDE2MCAzODR6XCJdXG59O1xuY29uc3QgZmFSb2FkQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NjZcIiwgXCJNMjEzLjIgMzJMMjg4IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDc0LjggMGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhsMC00Mi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NEw4Ni42IDQ4MEM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJdXG59O1xuY29uc3QgZmFVc2VyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1taW51cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUwM1wiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek00NzIgMjAwbDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS11cCcsXG4gIGljb246IFszMjAsIDUxMiwgWzk4OTYsIFwibWFycy1zdHJva2UtdlwiXSwgXCJmMjJhXCIsIFwiTTE0OC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw2NCA2NGM0LjYgNC42IDUuOSAxMS41IDMuNSAxNy40cy04LjMgOS45LTE0LjggOS45bC00MCAwIDAgMjQgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMCAwIDI0YzAgLjYgMCAxLjItLjEgMS44Yzc3IDExLjYgMTM2LjEgNzggMTM2LjEgMTU4LjJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTgwLjIgNTkuMS0xNDYuNyAxMzYuMS0xNTguMmMwLS42LS4xLTEuMi0uMS0xLjhsMC0yNC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMyIDAgMC0yNEw5NiA5NmMtNi41IDAtMTIuMy0zLjktMTQuOC05LjlzLTEuMS0xMi45IDMuNS0xNy40bDY0LTY0ek0yNTYgMzUyQTk2IDk2IDAgMSAwIDY0IDM1MmE5NiA5NiAwIDEgMCAxOTIgMHpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VWID0gZmFNYXJzU3Ryb2tlVXA7XG5jb25zdCBmYUNoYW1wYWduZUdsYXNzZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhbXBhZ25lLWdsYXNzZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjkzNDYsIFwiZ2xhc3MtY2hlZXJzXCJdLCBcImY3OWZcIiwgXCJNMTU1LjYgMTcuM0MxNjMgMyAxNzkuOS0zLjYgMTk1IDEuOUwzMjAgNDcuNWwxMjUtNDUuNmMxNS4xLTUuNSAzMiAxLjEgMzkuNCAxNS40bDc4LjggMTUyLjljMjguOCA1NS44IDEwLjMgMTIyLjMtMzguNSAxNTYuNkw1NTYuMSA0MTNsNDEtMTVjMTYuNi02IDM1IDIuNSA0MSAxOS4xcy0yLjUgMzUtMTkuMSA0MWwtNzEuMSAyNS45TDQ3Ni44IDUxMGMtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zNC0xMzAtOTUuMkwzMjAgMTg4LjhsLTE0LjYgNjQuN2MtMTMuOCA2MS4zLTcwLjYgMTAwLjQtMTMwIDk1LjJsLTMxLjMgODYuMiA0MSAxNWMxNi42IDYgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xTDkyLjIgNDg0LjEgMjEuMSA0NTguMmMtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFzMjQuNC0yNS4yIDQxLTE5LjFsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjhMMjYxLjYgMTU3bDEzLjEtNTcuOUwxOTkuNiA3MS43em0yNDAuOSAwTDM2NS40IDk5LjEgMzc4LjUgMTU3bDg5LjItMzIuNUw0NDAuNSA3MS43elwiXVxufTtcbmNvbnN0IGZhR2xhc3NDaGVlcnMgPSBmYUNoYW1wYWduZUdsYXNzZXM7XG5jb25zdCBmYUNsaXBib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbGlwYm9hcmQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgyMDNdLCBcImYzMjhcIiwgXCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NGwtMzcuNSAwQzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTExMiAxOTJsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGFcIiwgXCJNMzIwLjcgMzUyYzguMS04OS43IDgzLjUtMTYwIDE3NS4zLTE2MGM4LjkgMCAxNy42IC43IDI2LjEgMS45TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xbDMyIDAgMCA2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44bDAgMTEyYzAgMjIuMSAxNy45IDQwIDQwIDQwbDE2IDBjMS4yIDAgMi40LS4xIDMuNi0uMmMxLjUgLjEgMyAuMiA0LjUgLjJsMzEuOSAwIDI0IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC0yNCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDAgLjcgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUZpbGVBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXJyb3ctdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtdXBsb2FkXCJdLCBcImY1NzRcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0yMTYgNDA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAyLjEtMzEgMzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzEtMzFMMjE2IDQwOHpcIl1cbn07XG5jb25zdCBmYUZpbGVVcGxvYWQgPSBmYUZpbGVBcnJvd1VwO1xuY29uc3QgZmFXaWZpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpZmknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIndpZmktM1wiLCBcIndpZmktc3Ryb25nXCJdLCBcImYxZWJcIiwgXCJNNTQuMiAyMDIuOUMxMjMuMiAxMzYuNyAyMTYuOCA5NiAzMjAgOTZzMTk2LjggNDAuNyAyNjUuOCAxMDYuOWMxMi44IDEyLjIgMzMgMTEuOCA0NS4yLS45czExLjgtMzMtLjktNDUuMkM1NDkuNyA3OS41IDQ0MC40IDMyIDMyMCAzMlM5MC4zIDc5LjUgOS44IDE1Ni43Qy0yLjkgMTY5LTMuMyAxODkuMiA4LjkgMjAyczMyLjUgMTMuMiA0NS4yIC45ek0zMjAgMjU2YzU2LjggMCAxMDguNiAyMS4xIDE0OC4yIDU2YzEzLjMgMTEuNyAzMy41IDEwLjQgNDUuMi0yLjhzMTAuNC0zMy41LTIuOC00NS4yQzQ1OS44IDIxOS4yIDM5MyAxOTIgMzIwIDE5MnMtMTM5LjggMjcuMi0xOTAuNSA3MmMtMTMuMyAxMS43LTE0LjUgMzEuOS0yLjggNDUuMnMzMS45IDE0LjUgNDUuMiAyLjhjMzkuNS0zNC45IDkxLjMtNTYgMTQ4LjItNTZ6bTY0IDE2MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFXaWZpMyA9IGZhV2lmaTtcbmNvbnN0IGZhV2lmaVN0cm9uZyA9IGZhV2lmaTtcbmNvbnN0IGZhQmF0aCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXRoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NzA1LCBcImJhdGh0dWJcIl0sIFwiZjJjZFwiLCBcIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuM2MzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45QzEzMCA5MS44IDEyOCAxMDEuNyAxMjggMTEyYzAgMTkuOSA3LjIgMzggMTkuMiA1MmMtNS4zIDkuMi00IDIxLjEgMy44IDI5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI4OSA4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWMtNy45LTcuOS0xOS44LTkuMS0yOS0zLjhDMjQ2IDM5LjIgMjI3LjkgMzIgMjA4IDMyYy0xMC4zIDAtMjAuMiAyLTI5LjIgNS41TDE2My45IDIyLjZDMTQ5LjQgOC4xIDEyOS43IDAgMTA5LjMgMEM2Ni42IDAgMzIgMzQuNiAzMiA3Ny4zTDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAyNTYgOTYgNzcuM3pNMzIgMzUybDAgMTZjMCAyOC40IDEyLjQgNTQgMzIgNzEuNkw2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2IDI1NiAwIDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQwLjRjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNmwwLTE2TDMyIDM1MnpcIl1cbn07XG5jb25zdCBmYUJhdGh0dWIgPSBmYUJhdGg7XG5jb25zdCBmYVVuZGVybGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmRlcmxpbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwY2RcIiwgXCJNMTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4LTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MHMtMTYwLTcxLjYtMTYwLTE2MEw2NCA5NiA0OCA5NkMzMC4zIDk2IDE2IDgxLjcgMTYgNjR6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFVc2VyUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2VyLWVkaXRcIl0sIFwiZjRmZlwiLCBcIk0yMjQgMjU2QTEyOCAxMjggMCAxIDAgMjI0IDBhMTI4IDEyOCAwIDEgMCAwIDI1NnptLTQ1LjcgNDhDNzkuOCAzMDQgMCAzODMuOCAwIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJsMjkzLjEgMGMtMy4xLTguOC0zLjctMTguNC0xLjQtMjcuOGwxNS02MC4xYzIuOC0xMS4zIDguNi0yMS41IDE2LjgtMjkuN2w0MC4zLTQwLjNjLTMyLjEtMzEtNzUuNy01MC4xLTEyMy45LTUwLjFsLTkxLjQgMHptNDM1LjUtNjguM2MtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBsLTI5LjQgMjkuNCA3MSA3MSAyOS40LTI5LjRjMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZsLTE0LjQtMTQuNHpNMzc1LjkgNDE3Yy00LjEgNC4xLTcgOS4yLTguNCAxNC45bC0xNSA2MC4xYy0xLjQgNS41IC4yIDExLjIgNC4yIDE1LjJzOS43IDUuNiAxNS4yIDQuMmw2MC4xLTE1YzUuNi0xLjQgMTAuOC00LjMgMTQuOS04LjRMNTc2LjEgMzU4LjdsLTcxLTcxTDM3NS45IDQxN3pcIl1cbn07XG5jb25zdCBmYVVzZXJFZGl0ID0gZmFVc2VyUGVuO1xuY29uc3QgZmFTaWduYXR1cmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbmF0dXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWI3XCIsIFwiTTE5MiAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDcuOGMwIDI3LjctMi40IDU1LjMtNy4xIDgyLjVsLTg0LjQgMjUuM2MtNDAuNiAxMi4yLTY4LjQgNDkuNi02OC40IDkybDAgNzEuOWMwIDQwIDMyLjUgNzIuNSA3Mi41IDcyLjVjMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zYy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTI0IDM2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC4zIDBjLS4yLTIuOC0uMy01LjYtLjMtOC41TDY0IDM2OGwtNDAgMHptNTkyIDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMTAuMSAwYy02LjcgMTYuMy0xNC4yIDMyLjMtMjIuMyA0OEw2MTYgNDE2elwiXVxufTtcbmNvbnN0IGZhU3Ryb29wd2FmZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Ryb29wd2FmZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTFcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0zMTIuNiA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgOTcuNiAyMjIuMSA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDMzLjkgMzMuOS00NS4zIDQ1LjMtNTYuNi01Ni42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDU2LjYgNTYuNi00NS4zIDQ1LjNMODYuMyAxOTkuNGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDI1NiA0MTQuNGwzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0MTQuNCAyNTZsMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTMzLjkgMzMuOS00NS4zLTQ1LjMgNTYuNi01Ni42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTU2LjYgNTYuNi00NS4zLTQ1LjMgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xNDIuOSAyNTZsNDUuMy00NS4zTDIzMy40IDI1NmwtNDUuMyA0NS4zTDE0Mi45IDI1NnptNjcuOSA2Ny45TDI1NiAyNzguNmw0NS4zIDQ1LjNMMjU2IDM2OS4xbC00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjNMMzY5LjEgMjU2bC00NS4zIDQ1LjNMMjc4LjYgMjU2em0yMi42LTY3LjlMMjU2IDIzMy40bC00NS4zLTQ1LjNMMjU2IDE0Mi45bDQ1LjMgNDUuM3pcIl1cbn07XG5jb25zdCBmYUJvbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAzMlwiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ4IDAgMTYgMCAxMjggMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDMxLjMtMTEuMyA2MC4xLTMwIDgyLjNjMzcuMSAyMi40IDYyIDYzLjEgNjIgMTA5LjdjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhMOTYgNDgwbC0xNiAwLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE2MEw0OCA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0yMjQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDExMiA5NmwwIDEyOCAxMTIgMHpNMTEyIDI4OGwwIDEyOCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMzIgMC0xMTIgMHpcIl1cbn07XG5jb25zdCBmYUFuY2hvckxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YWRcIiwgXCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTIxLjEgODBDMzY3IDE1OC44IDM4NCAxMjkuNCAzODQgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAzMy40IDE3IDYyLjggNDIuOSA4MEwyMjQgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyMDgtNDggMGMtNTMgMC05Ni00My05Ni05NmwwLTYuMSA3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTcgMCA2LjFjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsODAgMCA4MCAwYzggMCAxNS45LS42IDIzLjYtMS43Yy00LjgtOS03LjYtMTkuMy03LjYtMzAuM2wwLTMzLjNjLTUuMiAuOS0xMC41IDEuMy0xNiAxLjNsLTQ4IDAgMC0yMDggMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTAuOSAwek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nTmdvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLW5nbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRkN1wiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC00MTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNjggNjRsNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMCAwIDY0IDE2IDAgMC0xNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtODhjMC04LjggNy4yLTE2IDE2LTE2ek0zMDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00OCAxNmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0zMnpNNjEuMyA3MS4xbDM0LjcgNTJMOTYgODBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRMNjQgMTMyLjggNjQgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40elwiXVxufTtcbmNvbnN0IGZhTWFuYXRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hbmF0LXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZDVcIiwgXCJNMTkyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM0LjdDNjkuMiAxMTMuOSAwIDE5Mi45IDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC01OS42IDQwLjgtMTA5LjggOTYtMTI0bDAgMjg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODRjNTUuMiAxNC4yIDk2IDY0LjMgOTYgMTI0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zTDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG5jb25zdCBmYU5vdEVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25vdC1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzZVwiLCBcIk0zNjkuOCAzNy40YzE0LjcgOS44IDE4LjcgMjkuNyA4LjkgNDQuNEwzMzcuMSAxNDRsNjIuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMDUuNSAwLTY0IDk2TDQwMCAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIxMi4yIDAtNjUuMiA5Ny43Yy05LjggMTQuNy0yOS43IDE4LjctNDQuNCA4LjlzLTE4LjctMjkuNy04LjktNDQuNEwxMTAuOSAzNjggNDggMzY4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEwNS41IDAgNjQtOTZMNDggMjA4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIxMi4yIDAgNjUuMi05Ny43YzkuOC0xNC43IDI5LjctMTguNyA0NC40LTguOXpcIl1cbn07XG5jb25zdCBmYUJvcmRlclRvcExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZGVyLXRvcC1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJib3JkZXItc3R5bGVcIl0sIFwiZjg1M1wiLCBcIk0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2YzAtOC44IDcuMi0xNiAxNi0xNmwzMzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQ0OHptMTYwIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptLTk2IDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFCb3JkZXJTdHlsZSA9IGZhQm9yZGVyVG9wTGVmdDtcbmNvbnN0IGZhTWFwTG9jYXRpb25Eb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFwLWxvY2F0aW9uLWRvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFwLW1hcmtlZC1hbHRcIl0sIFwiZjVhMFwiLCBcIk00MDggMTIwYzAgNTQuNi03My4xIDE1MS45LTEwNS4yIDE5MmMtNy43IDkuNi0yMiA5LjYtMjkuNiAwQzI0MS4xIDI3MS45IDE2OCAxNzQuNiAxNjggMTIwQzE2OCA1My43IDIyMS43IDAgMjg4IDBzMTIwIDUzLjcgMTIwIDEyMHptOCA4MC40YzMuNS02LjkgNi43LTEzLjggOS42LTIwLjZjLjUtMS4yIDEtMi41IDEuNS0zLjdsMTE2LTQ2LjRDNTU4LjkgMTIzLjQgNTc2IDEzNSA1NzYgMTUybDAgMjcwLjhjMCA5LjgtNiAxOC42LTE1LjEgMjIuM0w0MTYgNTAzbDAtMzAyLjZ6TTEzNy42IDEzOC4zYzIuNCAxNC4xIDcuMiAyOC4zIDEyLjggNDEuNWMyLjkgNi44IDYuMSAxMy43IDkuNiAyMC42bDAgMjUxLjRMMzIuOSA1MDIuN0MxNy4xIDUwOSAwIDQ5Ny40IDAgNDgwLjRMMCAyMDkuNmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMi42LTQ5ek0zMjcuOCAzMzJjMTMuOS0xNy40IDM1LjctNDUuNyA1Ni4yLTc3bDAgMjQ5LjNMMTkyIDQ0OS40IDE5MiAyNTVjMjAuNSAzMS4zIDQyLjMgNTkuNiA1Ni4yIDc3YzIwLjUgMjUuNiA1OS4xIDI1LjYgNzkuNiAwek0yODggMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlZEFsdCA9IGZhTWFwTG9jYXRpb25Eb3Q7XG5jb25zdCBmYUplZGkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamVkaScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjY2OVwiLCBcIk0yNDYgMzE1LjdsLTIxLjItMzEuOWMtMi4xLTMuMi0xLjctNy40IDEtMTAuMXM2LjktMy4xIDEwLjEtMWwyOS41IDE5LjdjMi4xIDEuNCA0LjkgMCA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41QzM3MC42IDQzNS4yIDQxNiAzODIuOSA0MTYgMzIwYzAtMzctMTUuNy03MC40LTQwLjgtOTMuN2MtNy02LjUtNi41LTE4LjYgMS0yNC40QzQxMC4xIDE3NS41IDQzMiAxMzQuMyA0MzIgODhjMC0xNi44LTIuOS0zMy04LjItNDhjLTQuNi0xMyAxMC4yLTMwIDIxLjQtMjJjNTMuNSAzOCA5Mi43IDk0LjggMTA3LjggMTYwLjdjLjUgMi4xLS4yIDQuMy0xLjcgNS45bC0yOC40IDI4LjRjLTQgNC0xLjIgMTAuOSA0LjUgMTAuOWwyNiAwYzMuNCAwIDYuMiAyLjYgNi4zIDZjLjEgMy4zIC4yIDYuNiAuMiAxMGMwIDE3LjUtMS43IDM0LjctNC44IDUxLjNjLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDlDNDg3LjIgNDUwLjUgMzk0LjggNTEyIDI4OCA1MTJTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuM0MxNy43IDI3NC43IDE2IDI1Ny41IDE2IDI0MGMwLTMuMyAuMS02LjcgLjItMTBjLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOUMzOC4xIDExMi44IDc3LjMgNTYgMTMwLjggMThjMTEuMy04IDI2IDguOSAyMS40IDIyYy01LjMgMTUtOC4yIDMxLjItOC4yIDQ4YzAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOWM3LjUgNS44IDggMTcuOSAxIDI0LjRDMTc1LjcgMjQ5LjYgMTYwIDI4MyAxNjAgMzIwYzAgNjIuOSA0NS40IDExNS4yIDEwNS4xIDEyNmwyLjEtNjEuNWMuMS0yLjYtMi44LTQuMi01LTIuOGwtMjYuMyAxNy42Yy0zLjIgMi4xLTcuNCAxLjctMTAuMS0xcy0zLjEtNi45LTEtMTAuMUwyNDYgMzU2LjNjMS4zLTEuOSAuMi00LjUtMi00LjlsLTM3LjYtNy41Yy0zLjctLjctNi40LTQtNi40LTcuOHMyLjctNy4xIDYuNC03LjhsMzcuNi03LjVjMi4yLS40IDMuMy0zIDItNC45elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUG9sbFZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wb2xsLXZlcnRpY2FsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwb2xsXCJdLCBcImY2ODFcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgMTkyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5MnpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFQb2xsID0gZmFTcXVhcmVQb2xsVmVydGljYWw7XG5jb25zdCBmYU11Z0hvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtdWctaG90JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTc0OV0sIFwiZjdiNlwiLCBcIk04OCAwQzc0LjcgMCA2NCAxMC43IDY0IDI0YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxQzEyMC41IDExMi4zIDEyOCAxMTkuOSAxMjggMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzExOS41IDQ3LjcgMTEyIDQwLjEgMTEyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwxNiAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEybC00OCAwTDMyIDE5MnptMzUyIDY0bDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDAgMC05NnpNMjI0IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxQzIzMi41IDExMi4zIDI0MCAxMTkuOSAyNDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzIzMS41IDQ3LjcgMjI0IDQwLjEgMjI0IDI0elwiXVxufTtcbmNvbnN0IGZhQ2FyQmF0dGVyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItYmF0dGVyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmF0dGVyeS1jYXJcIl0sIFwiZjVkZlwiLCBcIk04MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMHptMzA0IDk2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMC0zMnpNODAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC05NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5Q2FyID0gZmFDYXJCYXR0ZXJ5O1xuY29uc3QgZmFHaWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dpZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc4NzNdLCBcImYwNmJcIiwgXCJNMTkwLjUgNjguOEwyMjUuMyAxMjhsLTEuMyAwLTcyIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBsMi4yIDBjMTQuOSAwIDI4LjggNy45IDM2LjMgMjAuOHpNNjQgODhjMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwYzAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjRMMjU2IDg1LjVsLTI0LjEtNDFDMjE1LjcgMTYuOSAxODYuMSAwIDE1NC4yIDBMMTUyIDBDMTAzLjQgMCA2NCAzOS40IDY0IDg4em0zMzYgMGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNzIgMC0xLjMgMCAzNC44LTU5LjJDMzI5LjEgNTUuOSAzNDIuOSA0OCAzNTcuOCA0OGwyLjIgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHpNMzIgMjg4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE0NCAwIDAtMjI0TDMyIDI4OHpNMjg4IDUxMmwxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3Ni0xOTIgMCAwIDIyNHpcIl1cbn07XG5jb25zdCBmYURpY2VUd28gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10d28nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU3XSwgXCJmNTI4XCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhQ2hlc3NRdWVlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1xdWVlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4MTldLCBcImY0NDVcIiwgXCJNMjU2IDBhNTYgNTYgMCAxIDEgMCAxMTJBNTYgNTYgMCAxIDEgMjU2IDB6TTEzNC4xIDE0My44YzMuMy0xMyAxNS0yMy44IDMwLjItMjMuOGMxMi4zIDAgMjIuNiA3LjIgMjcuNyAxN2MxMiAyMy4yIDM2LjIgMzkgNjQgMzlzNTItMTUuOCA2NC0zOWM1LjEtOS44IDE1LjQtMTcgMjcuNy0xN2MxNS4zIDAgMjcgMTAuOCAzMC4yIDIzLjhjNyAyNy44IDMyLjIgNDguMyA2Mi4xIDQ4LjNjMTAuOCAwIDIxLTIuNyAyOS44LTcuNGM4LjQtNC40IDE4LjktNC41IDI3LjYgLjljMTMgOCAxNy4xIDI1IDkuMiAzOEwzOTkuNyA0MDAgMzg0IDQwMGwtNDAuNCAwLTE3NS4xIDBMMTI4IDQwMGwtMTUuNyAwTDUuNCAyMjMuNmMtNy45LTEzLTMuOC0zMCA5LjItMzhjOC43LTUuMyAxOS4yLTUuMyAyNy42LS45YzguOSA0LjcgMTkgNy40IDI5LjggNy40YzI5LjkgMCA1NS4xLTIwLjUgNjIuMS00OC4zek0yNTYgMjI0czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek0xMTIgNDMybDI4OCAwIDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZMODYuNiA1MTJDNzQuMSA1MTIgNjQgNTAxLjkgNjQgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNkwxMTIgNDMyelwiXVxufTtcbmNvbnN0IGZhR2xhc3NlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzc2VzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTMwXCIsIFwiTTExOC42IDgwYy0xMS41IDAtMjEuNCA3LjktMjQgMTkuMUw1NyAyNjAuM2MyMC41LTYuMiA0OC4zLTEyLjMgNzguNy0xMi4zYzMyLjMgMCA2MS44IDYuOSA4Mi44IDEzLjVjMTAuNiAzLjMgMTkuMyA2LjcgMjUuNCA5LjJjMy4xIDEuMyA1LjUgMi40IDcuMyAzLjJjLjkgLjQgMS42IC43IDIuMSAxbC42IC4zIC4yIC4xYzAgMCAuMSAwIC4xIDBjMCAwIDAgMCAwIDBzMCAwIDAgMEwyNDcuOSAyODhzMCAwIDAgMGw2LjMtMTIuN2M1LjggMi45IDEwLjQgNy4zIDEzLjUgMTIuN2w0MC42IDBjMy4xLTUuMyA3LjctOS44IDEzLjUtMTIuN2w2LjMgMTIuN3MwIDAgMCAwYy02LjMtMTIuNy02LjMtMTIuNy02LjMtMTIuN3MwIDAgMCAwczAgMCAwIDBjMCAwIC4xIDAgLjEgMGwuMi0uMSAuNi0uM2MuNS0uMiAxLjItLjYgMi4xLTFjMS44LS44IDQuMi0xLjkgNy4zLTMuMmM2LjEtMi42IDE0LjgtNS45IDI1LjQtOS4yYzIxLTYuNiA1MC40LTEzLjUgODIuOC0xMy41YzMwLjQgMCA1OC4yIDYuMSA3OC43IDEyLjNMNDgxLjQgOTkuMWMtMi42LTExLjItMTIuNi0xOS4xLTI0LTE5LjFjLTMuMSAwLTYuMiAuNi05LjIgMS44TDQxNi45IDk0LjNjLTEyLjMgNC45LTI2LjMtMS4xLTMxLjItMTMuNHMxLjEtMjYuMyAxMy40LTMxLjJsMzEuMy0xMi41YzguNi0zLjQgMTcuNy01LjIgMjctNS4yYzMzLjggMCA2My4xIDIzLjMgNzAuOCA1Ni4ybDQzLjkgMTg4YzEuNyA3LjMgMi45IDE0LjcgMy41IDIyLjFjLjMgMS45IC41IDMuOCAuNSA1LjdsMCA2LjcgMCA0MS4zIDAgMTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTQ0LjMgMGMtNTkuNCAwLTEwOC41LTQ2LjQtMTExLjgtMTA1LjhMMzA2LjYgMzUybC0zNy4yIDAtMS4yIDIyLjJDMjY0LjkgNDMzLjYgMjE1LjggNDgwIDE1Ni4zIDQ4MEwxMTIgNDgwQzUwLjEgNDgwIDAgNDI5LjkgMCAzNjhsMC0xNiAwLTQxLjNMMCAzMDRjMC0xLjkgLjItMy44IC41LTUuN2MuNi03LjQgMS44LTE0LjggMy41LTIyLjFsNDMuOS0xODhDNTUuNSA1NS4zIDg0LjggMzIgMTE4LjYgMzJjOS4yIDAgMTguNCAxLjggMjcgNS4ybDMxLjMgMTIuNWMxMi4zIDQuOSAxOC4zIDE4LjkgMTMuNCAzMS4ycy0xOC45IDE4LjMtMzEuMiAxMy40TDEyNy44IDgxLjhjLTIuOS0xLjItNi0xLjgtOS4yLTEuOHpNNjQgMzI1LjRMNjQgMzY4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ0LjMgMGMyNS41IDAgNDYuNS0xOS45IDQ3LjktNDUuM2wyLjUtNDUuNmMtMi4zLS44LTQuOS0xLjctNy41LTIuNWMtMTcuMi01LjQtMzkuOS0xMC41LTYzLjYtMTAuNWMtMjMuNyAwLTQ2LjIgNS4xLTYzLjIgMTAuNWMtMy4xIDEtNS45IDEuOS04LjUgMi45ek01MTIgMzY4bDAtNDIuNmMtMi42LS45LTUuNS0xLjktOC41LTIuOWMtMTctNS40LTM5LjUtMTAuNS02My4yLTEwLjVjLTIzLjcgMC00Ni40IDUuMS02My42IDEwLjVjLTIuNyAuOC01LjIgMS43LTcuNSAyLjVsMi41IDQ1LjZjMS40IDI1LjQgMjIuNSA0NS4zIDQ3LjkgNDUuM2w0NC4zIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6XCJdXG59O1xuY29uc3QgZmFDaGVzc0JvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWJvYXJkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNDNjXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGQyXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgOTYgMGMxNS4xIDAgMjguNS02LjkgMzcuMy0xNy44QzM0MC40IDQ2Mi4yIDMyMCA0MTcuNSAzMjAgMzY4YzAtNTQuNyAyNC45LTEwMy41IDY0LTEzNS44TDM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTEyLTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTgwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhUGVyc29uQ2hhbGtib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2hhbGtib2FyZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzZFwiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4IDU2IDAgNjQgMCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNjQgMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODAtNzYuOSAwLTY1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzk4OTcsIFwibWFycy1zdHJva2UtaFwiXSwgXCJmMjJiXCIsIFwiTTIwOCAzNjhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNzQuNC04OEMzNzAuNyAzNjUuOCAyOTcuMSA0MzIgMjA4IDQzMmMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NmM4OS4xIDAgMTYyLjcgNjYuMiAxNzQuNCAxNTJsMzMuNiAwIDAtNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU2IDMyIDAgMC01NmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTgwIDgwYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4ybDAtNTYtMzIgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNTYtMzMuNiAwelwiXVxufTtcbmNvbnN0IGZhTWFyc1N0cm9rZUggPSBmYU1hcnNTdHJva2VSaWdodDtcbmNvbnN0IGZhSGFuZEJhY2tGaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtYmFjay1maXN0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJoYW5kLXJvY2tcIl0sIFwiZjI1NVwiLCBcIk0xNDQgMEMxMTcuNSAwIDk2IDIxLjUgOTYgNDhsMCA0OCAwIDI4LjVMOTYgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjYuNy05IDcuNUM0MC40IDE2OSAzMiAxODcgMzIgMjA2TDMyIDI0NGMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zTDEyOCAzODRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEwNS4zYzQ2LjktMTkgODAtNjUgODAtMTE4LjdsMC04MCAwLTE2IDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhjLTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjNDMzUwIDgzLjUgMzI5LjMgNjQgMzA0IDY0Yy0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zQzI3MCA1MS41IDI0OS4zIDMyIDIyNCAzMmMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MxOTAgMTkuNSAxNjkuMyAwIDE0NCAwelwiXVxufTtcbmNvbnN0IGZhSGFuZFJvY2sgPSBmYUhhbmRCYWNrRmlzdDtcbmNvbnN0IGZhU3F1YXJlQ2FyZXRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtdXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS11cFwiXSwgXCJmMTUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlzLTEyLjUgMTQuNC0yMiAxNC40bC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43elwiXVxufTtcbmNvbnN0IGZhQ2FyZXRTcXVhcmVVcCA9IGZhU3F1YXJlQ2FyZXRVcDtcbmNvbnN0IGZhQ2xvdWRTaG93ZXJzV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc2hvd2Vycy13YXRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlNFwiLCBcIk0yMjQgMGMzOC42IDAgNzEuOSAyMi44IDg3LjIgNTUuN0MzMjUuNyA0MS4xIDM0NS44IDMyIDM2OCAzMmMzOC43IDAgNzEgMjcuNSA3OC40IDY0bDEuNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMwLTUzIDQzLTk2IDk2LTk2ek0xNDAuNiAyOTIuM2wtNDggODBjLTYuOCAxMS40LTIxLjYgMTUtMzIuOSA4LjJzLTE1LjEtMjEuNi04LjItMzIuOWw0OC04MGM2LjgtMTEuNCAyMS42LTE1LjEgMzIuOS04LjJzMTUuMSAyMS42IDguMiAzMi45em0zMjcuOC0zMi45YzExLjQgNi44IDE1IDIxLjYgOC4yIDMyLjlsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMjUyLjYgMjkyLjNsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS4xLTIxLjYtOC4yLTMyLjlsNDgtODBjNi44LTExLjQgMjEuNi0xNS4xIDMyLjktOC4yczE1LjEgMjEuNiA4LjIgMzIuOXptMTAzLjgtMzIuOWMxMS40IDYuOCAxNSAyMS42IDguMiAzMi45bC00OCA4MGMtNi44IDExLjQtMjEuNiAxNS0zMi45IDguMnMtMTUuMS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMzA2LjUgNDIxLjlDMzI5IDQzNy40IDM1Ni41IDQ0OCAzODQgNDQ4YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNTAxLjcgNDE3IDUxMiAzODQgNTEyYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyA0MzcuMiAxNjUuMSA0NDggMTkyIDQ0OGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYUNoYXJ0QmFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWJhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmFyLWNoYXJ0XCJdLCBcImYwODBcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgNjRsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDk2bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUJhckNoYXJ0ID0gZmFDaGFydEJhcjtcbmNvbnN0IGZhSGFuZHNCdWJibGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWJ1YmJsZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhhbmRzLXdhc2hcIl0sIFwiZTA1ZVwiLCBcIk00MTYgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTMyIDE2MGwuMSA3Mi42Yy4xIDUyLjIgMjQgMTAxIDY0IDEzMy4xYy0uMS0xLjktLjEtMy44LS4xLTUuN2wwLThjMC03MS44IDM3LTEzOC42IDk3LjktMTc2LjdsNjAuMi0zNy42YzguNi01LjQgMTcuOS04LjQgMjcuMy05LjRsNDUuOS03OS41YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOGwtNzggMTM1LjFjLTMuMyA1LjctMTAuNyA3LjctMTYuNCA0LjRzLTcuNy0xMC43LTQuNC0xNi40bDYyLTEwNy40YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44UzIxNCA1IDIwNy40IDE2LjVsLTY4IDExNy44czAgMCAwIDBzMCAwIDAgMGwtNDMuMyA3NUw5NiAxNjBjMC0xNy43LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ6TTMzMi4xIDg4LjVMMzA3LjUgMTMxYzEzLjkgNC41IDI2LjQgMTMuNyAzNC43IDI3Yy45IDEuNSAxLjggMi45IDIuNSA0LjRsMjguOS01MGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6bTQ2LjQgNjMuN2wtMjYuOCA0Ni40Yy0uNiA2LTIuMSAxMS44LTQuMyAxNy40bDQuNyAwIDEzLjMgMHMwIDAgMCAwbDMxLjggMCAyMy0zOS44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMzE1LjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzE1OS4zIDIzNC43IDEyOCAyOTEuMiAxMjggMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xYzM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45YzAgNi4zLS43IDEyLjUtMi4xIDE4LjRDMjE1LjEgNTAxIDI0Ni4zIDUxMiAyODAgNTEybDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05MiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjQgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTU2IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEzNiAwczAgMCAwIDBzMCAwIDAgMGwtOTMuMiAwTDMwNSAyMTkuMWMxNS05LjQgMTkuNS0yOS4xIDEwLjItNDQuMXpcIl1cbn07XG5jb25zdCBmYUhhbmRzV2FzaCA9IGZhSGFuZHNCdWJibGVzO1xuY29uc3QgZmFMZXNzVGhhbkVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xlc3MtdGhhbi1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzN1wiLCBcIk0zOTUuOSA5My43YzE2LjQtNi42IDI0LjQtMjUuMiAxNy44LTQxLjZzLTI1LjItMjQuNC00MS42LTE3LjhsLTMyMCAxMjhDNDAgMTY3LjEgMzIgMTc4LjkgMzIgMTkyczggMjQuOSAyMC4xIDI5LjdsMzIwIDEyOGMxNi40IDYuNiAzNS0xLjQgNDEuNi0xNy44cy0xLjQtMzUtMTcuOC00MS42TDE1MC4yIDE5MiAzOTUuOSA5My43ek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2elwiXVxufTtcbmNvbnN0IGZhVHJhaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjg2NDZdLCBcImYyMzhcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEybDM5LjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxNjAgNDQ4bDEyOCAwIDU0LjYgNTQuNmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzkuNyAwYzEwIDAgMTUtMTIuMSA3LjktMTkuMWwtNDYtNDZjNDYtNy4xIDgxLjEtNDYuOSA4MS4xLTk0LjlsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAwek02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNMjI0IDI4OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFFeWVMb3dWaXNpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXllLWxvdy12aXNpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImxvdy12aXNpb25cIl0sIFwiZjJhOFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6TTIyMyAxNDkuNWM0OC42LTQ0LjMgMTIzLTUwLjggMTc5LjMtMTEuN2M2MC44IDQyLjQgNzguOSAxMjMuMiA0NC4yIDE4Ni45TDQwOCAyOTQuNWM4LjQtMTkuMyAxMC42LTQxLjQgNC44LTYzLjNjLTExLjEtNDEuNS00Ny44LTY5LjQtODguNi03MS4xYy01LjgtLjItOS4yIDYuMS03LjQgMTEuN2MyLjEgNi40IDMuMyAxMy4yIDMuMyAyMC4zYzAgMTAuMi0yLjQgMTkuOC02LjYgMjguM0wyMjMgMTQ5LjV6bTIyMy4xIDI5OEw4My4xIDE2MS41Yy0xMSAxNC40LTIwLjUgMjguNy0yOC40IDQyLjJsMzM5IDI2NS43YzE4LjctNS41IDM2LjItMTMgNTIuNi0yMS44ek0zNC41IDI2OC4zYzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjMy4xIDAgNi4xLS4xIDkuMi0uMkwzMy4xIDI0Ny44Yy0xLjggNi44LTEuMyAxNCAxLjQgMjAuNXpcIl1cbn07XG5jb25zdCBmYUxvd1Zpc2lvbiA9IGZhRXllTG93VmlzaW9uO1xuY29uc3QgZmFDcm93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MjBcIiwgXCJNNDU2IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMjkuMkwxMi41IDM5MC42Yy0xNCAxMC44LTE2LjYgMzAuOS01LjkgNDQuOXMzMC45IDE2LjYgNDQuOSA1LjlMMTI2LjEgMzg0bDEzMy4xIDAgNDYuNiAxMTMuMWM1IDEyLjMgMTkuMSAxOC4xIDMxLjMgMTMuMXMxOC4xLTE5LjEgMTMuMS0zMS4zTDMxMS4xIDM4NGw0MC45IDBjMS4xIDAgMi4xIDAgMy4yIDBsNDYuNiAxMTMuMmM1IDEyLjMgMTkuMSAxOC4xIDMxLjMgMTMuMXMxOC4xLTE5LjEgMTMuMS0zMS4zbC00Mi0xMDJDNDg0LjkgMzU0LjEgNTQ0IDI4MCA1NDQgMTkybDAtNjQgMC04IDgwLjUtMjAuMWM4LjYtMi4xIDEzLjgtMTAuOCAxMS42LTE5LjRDNjI5IDUyIDYwMy40IDMyIDU3NCAzMmwtNTAuMSAwQzUwNy43IDEyLjUgNDgzLjMgMCA0NTYgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFTYWlsYm9hdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzYWlsYm9hdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTQ0NVwiLCBcIk0yNTYgMTZjMC03IDQuNS0xMy4yIDExLjItMTUuM3MxMy45IC40IDE3LjkgNi4xbDIyNCAzMjBjMy40IDQuOSAzLjggMTEuMyAxLjEgMTYuNnMtOC4yIDguNi0xNC4yIDguNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyMHpNMjEyLjEgOTYuNWM3IDEuOSAxMS45IDguMiAxMS45IDE1LjVsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDM1MmMtNS43IDAtMTEtMy0xMy44LThzLTIuOS0xMS0uMS0xNmwxMjgtMjI0YzMuNi02LjMgMTEtOS40IDE4LTcuNXpNNS43IDQwNC4zQzIuOCAzOTQuMSAxMC41IDM4NCAyMS4xIDM4NGw1MzMuOCAwYzEwLjYgMCAxOC4zIDEwLjEgMTUuNCAyMC4zbC00IDE0LjNDNTUwLjcgNDczLjkgNTAwLjQgNTEyIDQ0MyA1MTJMMTMzIDUxMkM3NS42IDUxMiAyNS4zIDQ3My45IDkuNyA0MTguN2wtNC0xNC4zelwiXVxufTtcbmNvbnN0IGZhV2luZG93UmVzdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5kb3ctcmVzdG9yZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJkMlwiLCBcIk00MzIgNjRMMjA4IDY0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi02NCAwIDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBMNDMyIDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC02NCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZ6TTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6bTY0IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE4NDYsIFwicGx1cy1zcXVhcmVcIl0sIFwiZjBmZVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYVBsdXNTcXVhcmUgPSBmYVNxdWFyZVBsdXM7XG5jb25zdCBmYVRvcmlpR2F0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3JpaS1nYXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTk2MV0sIFwiZjZhMVwiLCBcIk0wIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCA2NCA2NCAwIDAtNjQgOTYgMCAwIDY0IDY0IDAgMC02NCA5NiAwIDAgNjQgNjQgMCAwLTY0IDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02Ni42QzUxMiA2IDUwNiAwIDQ5OC42IDBjLTEuNyAwLTMuNCAuMy01IDFsLTQ5IDE5LjZDNDI1LjcgMjguMSA0MDUuNSAzMiAzODUuMiAzMkwxMjYuOCAzMmMtMjAuNCAwLTQwLjUtMy45LTU5LjQtMTEuNEwxOC40IDFjLTEuNi0uNi0zLjMtMS01LTFDNiAwIDAgNiAwIDEzLjRMMCA4MHpNNjQgMjg4bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTIgMjU2IDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwelwiXVxufTtcbmNvbnN0IGZhRnJvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmcm9nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTJlXCIsIFwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOWMwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN0w0MDAuOCAzMjMuNSA0OTMuMyA0MTZsNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjdjLTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMmMyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yYzI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45Yy0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNmw5MC4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEMwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41QzI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFCdWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVja2V0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNGNmXCIsIFwiTTk2IDE1MmwwIDgtNDggMCAwLThDNDggNjguMSAxMTYuMSAwIDIwMCAwbDQ4IDBjODMuOSAwIDE1MiA2OC4xIDE1MiAxNTJsMCA4LTQ4IDAgMC04YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0bC00OCAwQzE0Mi42IDQ4IDk2IDk0LjYgOTYgMTUyek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNS4xIDBMMzg4LjUgNDY5Yy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjcgNDNsLTIzMy42IDBjLTI0LjYgMC00NS4yLTE4LjUtNDcuNy00M0wzNy4xIDI1NiAzMiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhSW1hZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW1hZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwM2VcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTMyMy44IDIwMi41Yy00LjUtNi42LTExLjktMTAuNS0xOS44LTEwLjVzLTE1LjQgMy45LTE5LjggMTAuNWwtODcgMTI3LjZMMTcwLjcgMjk3Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmw5NiAwIDMyIDAgMjA4IDBjOC45IDAgMTcuMS00LjkgMjEuMi0xMi44czMuNi0xNy40LTEuNC0yNC43bC0xMjAtMTc2ek0xMTIgMTkyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjEzMFwiLCBcIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTYwYzAtNTMtNDMtOTYtOTYtOTZ6TTY0IDIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNGwwIDMzLjYtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC0zMy42Yzg1LjgtMTEuNyAxNTItODUuMyAxNTItMTc0LjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDB6XCJdXG59O1xuY29uc3QgZmFDb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY293JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MDA0XSwgXCJmNmM4XCIsIFwiTTk2IDIyNGwwIDMyIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjFjMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDI3MiA2NGwtMTYgMC02NCAwLTQ4IDBDNzcuNyA2NCAyNCAxMTcuNyAyNCAxODRsMCA1NEM5LjQgMjQ5LjggMCAyNjcuOCAwIDI4OGwwIDE3LjZjMCA4IDYuNCAxNC40IDE0LjQgMTQuNEM0Ni4yIDMyMCA3MiAyOTQuMiA3MiAyNjIuNGwwLTYuNCAwLTMyIDAtNDBjMC0yNC4zIDEyLjEtNDUuOCAzMC41LTU4LjlDOTguMyAxMzUuOSA5NiAxNDcuNyA5NiAxNjBsMCA2NHpNNTYwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0xNjYuNiAxNjYuNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDE3OC43IDBjMTIuNSAwIDIyLjYgMTAuMSAyMi42IDIyLjZjMCA2LTIuNCAxMS44LTYuNiAxNmwtMjMuNCAyMy40QzMzMi4yIDIxMS44IDMwMi43IDIyNCAyNzIgMjI0cy02MC4yLTEyLjItODEuOS0zMy45bC0yMy40LTIzLjR6XCJdXG59O1xuY29uc3QgZmFDYXJldFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXVwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ4XCIsIFwiTTE4Mi42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwyNTYgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xMjgtMTI4elwiXVxufTtcbmNvbnN0IGZhU2NyZXdkcml2ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NyZXdkcml2ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk2OTFdLCBcImY1NGFcIiwgXCJNNDY1IDdjLTguNS04LjUtMjItOS40LTMxLjYtMi4xbC0xMDQgODBjLTUuOSA0LjUtOS40IDExLjYtOS40IDE5bDAgNTQuMS04NS42IDg1LjZjNi43IDQuMiAxMyA5LjMgMTguOCAxNS4xczEwLjkgMTIuMiAxNS4xIDE4LjhMMzUzLjkgMTkybDU0LjEgMGM3LjUgMCAxNC41LTMuNSAxOS05LjRsODAtMTA0YzcuNC05LjYgNi41LTIzLjEtMi4xLTMxLjZMNDY1IDd6TTEyMS40IDI4MS40bC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMTItMTEyYzMwLjItMzAuMiAzMC4yLTc5LjEgMC0xMDkuM3MtNzkuMS0zMC4yLTEwOS4zIDB6XCJdXG59O1xuY29uc3QgZmFGb2xkZXJDbG9zZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLWNsb3NlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE4NVwiLCBcIk00NDggNDgwTDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJsNTEyIDAgMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6bTY0LTMyMEwwIDE2MCAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6XCJdXG59O1xuY29uc3QgZmFIb3VzZVRzdW5hbWkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtdHN1bmFtaScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUxNVwiLCBcIk04MC44IDEzNi41QzEwNC45IDkzLjggMTUyLjYgNjQgMjA5IDY0YzE2LjkgMCAzMy4xIDIuNyA0OC4yIDcuN2MxNi44IDUuNSAzNC45LTMuNiA0MC40LTIwLjRzLTMuNi0zNC45LTIwLjQtNDAuNEMyNTUuOCAzLjggMjMyLjggMCAyMDkgMEM5NS4yIDAgMCA4OCAwIDIwMGMwIDkxLjYgNTMuNSAxNzIuMSAxNDIuMiAxOTQuMWMxMy40IDMuOCAyNy41IDUuOSA0Mi4yIDUuOWMuNyAwIDEuNCAwIDIuMS0uMWMxLjggMCAzLjcgLjEgNS41IC4xYzAgMCAwIDAgMCAwYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjUtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDMyNS4yIDQxMC45IDMzNiAzODQgMzM2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjFjLTExLjEtNy45LTI1LjktNy45LTM3IDBjLTIyLjQgMTUuNS00OS45IDI2LjEtNzcuNCAyNi4xYzAgMC0uMSAwLS4xIDBjLTEyLjQgMC0yNC0xLjUtMzQuOS00LjNDMTIxLjYgMzIwLjIgOTYgMjg3IDk2IDI0OGMwLTQ4LjUgMzkuNS04OCA4OC40LTg4YzEzLjUgMCAyNi4xIDMgMzcuNSA4LjNjMTYgNy41IDM1LjEgLjYgNDIuNS0xNS41cy42LTM1LjEtMTUuNS00Mi41QzIyOS4zIDEwMS4xIDIwNy40IDk2IDE4NC40IDk2Yy00MCAwLTc2LjQgMTUuNC0xMDMuNiA0MC41em0yNTItMTguMWMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDEyMWMxLjYgMSAzLjMgMiA0LjggMy4xYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjMgNzguMSAzLjRjMTAuNiA4LjggMjQuMiAxNS42IDM3LjMgMTguNmM1LjggMS40IDExLjIgMy40IDE2LjIgNi4yYy43LTIuNyAxLjEtNS41IDEuMS04LjRsLS40LTE0NGMwLTEwLTQuNy0xOS40LTEyLjctMjUuNWwtOTUuNS03MmMtMTEuNC04LjYtMjcuMS04LjYtMzguNSAwbC05NiA3MnpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlTmZpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1uZmknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1NzZcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTc1LjcgNjQuNkM2OC44IDE2Mi41IDY0IDE2OC44IDY0IDE3NmwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTAyLjIgNjYuMyAxMTAuNWMzLjcgNi4yIDExLjEgOS4xIDE4IDcuMnMxMS43LTguMiAxMS43LTE1LjRsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMDIuMkw5My43IDE2Ny44Yy0zLjctNi4yLTExLjEtOS4xLTE4LTcuMnpNMjI0IDE3NmwwIDY0IDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC0zMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2MCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNjB6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGI1XCIsIFwiTTI4OCAzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTAuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNTYgMTA5LjMgMjU2IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptLTE4LjUgNjkuOUMyNDcgNDM3LjQgMjE5LjUgNDQ4IDE5MiA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDUwMS43IDE1OSA1MTIgMTkyIDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0MzkuNCA0MzcuMiA0MTAuOSA0NDggMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwek0xOTIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MjVjNS4zLTMuMSAxMS4yLTUuNCAxNy41LTYuOWMxMy4xLTMuMSAyNi43LTkuOCAzNy4zLTE4LjZjMjIuMi0xOC43IDU0LjMtMjAuMSA3OC4xLTMuNGMxOCAxMi40IDQwLjEgMjAuMyA1OS4xIDIwLjNMMTkyIDE5MnptMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNDQgMCAwIDIyNC41czAgMCAwIDBjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMjMuOC0xNi43IDU1LjgtMTUuNCA3OC4xIDMuNGMxMC42IDguOCAyNC4yIDE1LjYgMzcuMyAxOC42YzYuMyAxLjUgMTIuMSAzLjggMTcuNSA2LjlsMC0xODV6XCJdXG59O1xuY29uc3QgZmFNYXJ0aW5pR2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzg2NCwgXCJnbGFzcy1tYXJ0aW5pLWFsdFwiXSwgXCJmNTdiXCIsIFwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuMyAyMjQgNDQ4bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE3OC43TDUwMi42IDU0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMCA0ODAgMEwzMiAwek0xNzMuMyAxMjhsLTY0LTY0IDI5My41IDAtNjQgNjQtMTY1LjUgMHpcIl1cbn07XG5jb25zdCBmYUdsYXNzTWFydGluaUFsdCA9IGZhTWFydGluaUdsYXNzO1xuY29uc3QgZmFSb3RhdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdGF0ZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyb3RhdGUtYmFja1wiLCBcInJvdGF0ZS1iYWNrd2FyZFwiLCBcInVuZG8tYWx0XCJdLCBcImYyZWFcIiwgXCJNNDguNSAyMjRMNDAgMjI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwxNiA3MmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJMOTguNiA5Ni42Yzg3LjYtODYuNSAyMjguNy04Ni4yIDMxNS44IDFjODcuNSA4Ny41IDg3LjUgMjI5LjMgMCAzMTYuOHMtMjI5LjMgODcuNS0zMTYuOCAwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzYyLjUgNjIuNSAxNjMuOCA2Mi41IDIyNi4zIDBzNjIuNS0xNjMuOCAwLTIyNi4zYy02Mi4yLTYyLjItMTYyLjctNjIuNS0yMjUuMy0xTDE4NSAxODNjNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMnMtMTIuNSAxNC44LTIyLjIgMTQuOEw0OC41IDIyNHpcIl1cbn07XG5jb25zdCBmYVJvdGF0ZUJhY2sgPSBmYVJvdGF0ZUxlZnQ7XG5jb25zdCBmYVJvdGF0ZUJhY2t3YXJkID0gZmFSb3RhdGVMZWZ0O1xuY29uc3QgZmFVbmRvQWx0ID0gZmFSb3RhdGVMZWZ0O1xuY29uc3QgZmFUYWJsZUNvbHVtbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY29sdW1ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29sdW1uc1wiXSwgXCJmMGRiXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCA2NGwwIDI1NiAxNjAgMCAwLTI1Nkw2NCAxNjB6bTM4NCAwbC0xNjAgMCAwIDI1NiAxNjAgMCAwLTI1NnpcIl1cbn07XG5jb25zdCBmYUNvbHVtbnMgPSBmYVRhYmxlQ29sdW1ucztcbmNvbnN0IGZhTGVtb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVtb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4MTldLCBcImYwOTRcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0Yy02LjYgMC0xMyAxLTE5IDIuOWMtMjIuNSA3LTQ4LjEgMTQuOS03MSA5Yy03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxQzEgNDAzIDAgNDA5LjQgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRjNi42IDAgMTMtMSAxOS4xLTIuOWMyMi41LTcgNDguMS0xNC45IDcxLTljNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNzODcuNS0xMzguNSA2OC4zLTIxMy43Yy01LjgtMjIuOSAyLTQ4LjQgOS03MWMxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjEyLjUgMTI3LjRjLTU0LjYgMTYtMTAxLjEgNjIuNS0xMTcuMSAxMTcuMUM5Mi45IDI1MyA4NCAyNTcuOCA3NS41IDI1NS40UzYyLjIgMjQ0IDY0LjYgMjM1LjVjMTkuMS02NS4xIDczLjctMTE5LjggMTM4LjktMTM4LjljOC41LTIuNSAxNy40IDIuNCAxOS45IDEwLjlzLTIuNCAxNy40LTEwLjkgMTkuOXpcIl1cbn07XG5jb25zdCBmYUhlYWRTaWRlTWFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkLXNpZGUtbWFzaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA2M1wiLCBcIk0zMiAyMjQuMmMwLTIyLjIgMy4yLTQzLjYgOS4yLTYzLjlMMjYyLjIgMzIxYy00IDkuNS02LjIgMjAtNi4yIDMxbDAgMTYwLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTcyLjdjMC0xNi43LTYuOS0zMi41LTE3LjEtNDUuOEM0OC42IDMyMi40IDMyIDI3NC4xIDMyIDIyNC4yem0yNDguMyA3MC40TDUzIDEyOS4zQzg4LjcgNTMgMTY2LjIgMCAyNTYgMGwyNCAwYzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNS40IDYuNyA4LjYgMTQuOCA5LjQgMjMuMkwzMzYgMjcyYy0yMS43IDAtNDEuMyA4LjYtNTUuNyAyMi42ek0zMzYgMzA0bDE5OCAwczAgMCAwIDBsMTAgMC0xOS43IDY0TDM2OCAzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTQ2LjUgMC05LjggMzJMMzY4IDQzMmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjYuOCAwLS45IDIuOGMtOC4zIDI2LjktMzMuMSA0NS4yLTYxLjIgNDUuMkwyODggNTEybDAtMTYwYzAtMTQgNi0yNi43IDE1LjYtMzUuNGMwIDAgMCAwIDAgMGM4LjUtNy44IDE5LjktMTIuNiAzMi40LTEyLjZ6bTQ4LTgwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kc2hha2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyYjVcIiwgXCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1MTIgMzE2LjggNTEyIDEyOGwtLjcgMC0zLjktMi41TDQzNC44IDc5Yy0xNS4zLTkuOC0zMy4yLTE1LTUxLjQtMTVjLTIxLjggMC00MyA3LjUtNjAgMjEuMnptMjIuOCAxMjQuNGwtNTEuNyA0MC4yQzI2MyAyNzQuNCAyMTcuMyAyNjggMTkzLjcgMjM1LjZjLTIyLjItMzAuNS0xNi42LTczLjEgMTIuNy05Ni44bDgzLjItNjcuM2MtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC03MiA0OCAwIDIyNCAyOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzek0xNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNkwwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjI0LTgwIDB6TTQ4IDMyMGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTU0NCAxMjhsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIwOGMwLTguOC03LjItMTYtMTYtMTZsLTgwIDB6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhR2VtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dlbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0Ml0sIFwiZjNhNVwiLCBcIk0xMTYuNyAzMy44YzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40bC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJ6bTM4LjUgMzkuOGMtMy4zIDIuNS00LjIgNy0yLjEgMTAuNWw1Ny40IDk1LjZMNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThMMzAxLjUgMTc5LjhsNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXpcIl1cbn07XG5jb25zdCBmYURvbGx5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvbGx5JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJkb2xseS1ib3hcIl0sIFwiZjQ3MlwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMGw3Mi45IDBjMjcuNSAwIDUyIDE3LjYgNjAuNyA0My44TDI1Ny43IDMyMGMzMC4xIC41IDU2LjggMTQuOSA3NCAzN2wyMDIuMS02Ny40YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41TDM1MiA0MTcuN2MtLjkgNTIuMi00My41IDk0LjMtOTYgOTQuM2MtNTMgMC05Ni00My05Ni05NmMwLTMwLjggMTQuNS01OC4yIDM3LTc1LjhMMTA0LjkgNjQgMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMjQ0LjggMTM0LjVjLTUuNS0xNi44IDMuNy0zNC45IDIwLjUtNDAuM0wzMTEgNzkuNGwxOS44IDYwLjkgNjAuOS0xOS44TDM3MS44IDU5LjZsNDUuNy0xNC44YzE2LjgtNS41IDM0LjkgMy43IDQwLjMgMjAuNWw0OS40IDE1Mi4yYzUuNSAxNi44LTMuNyAzNC45LTIwLjUgNDAuM0wzMzQuNSAzMDcuMmMtMTYuOCA1LjUtMzQuOS0zLjctNDAuMy0yMC41TDI0NC44IDEzNC41elwiXVxufTtcbmNvbnN0IGZhRG9sbHlCb3ggPSBmYURvbGx5O1xuY29uc3QgZmFTbW9raW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Ntb2tpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2ODRdLCBcImY0OGRcIiwgXCJNNDQ4IDMybDAgMTFjMCAzOC4yIDE1LjIgNzQuOCA0Mi4yIDEwMS44bDIxIDIxYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCAxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTExYzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlsLTIxLTIxQzQwNS45IDE1MS4xIDM4NCA5OC4xIDM4NCA0M2wwLTExYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTU3NiAyNTZsMC0xMWMwLTM4LjItMTUuMi03NC44LTQyLjItMTAxLjhsLTIxLTIxYy0yMS0yMS0zMi44LTQ5LjUtMzIuOC03OS4ybDAtMTFjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDExYzAgMTIuNyA1LjEgMjQuOSAxNC4xIDMzLjlsMjEgMjFjMzkgMzkgNjAuOSA5MS45IDYwLjkgMTQ3LjFsMCAxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJ6bTIyNCAwbDAgMzIgMTYwIDAgMC0zMi0xNjAgMHptMjg4LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFNaW5pbWl6ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaW5pbWl6ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tcHJlc3MtYXJyb3dzLWFsdFwiXSwgXCJmNzhjXCIsIFwiTTQ1NiAyMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsNDAgNDBMNDQyLjMgNS43QzQ0NiAyIDQ1MC45IDAgNDU2IDBzMTAgMiAxMy43IDUuN2wzNi43IDM2LjdDNTEwIDQ2IDUxMiA1MC45IDUxMiA1NnMtMiAxMC01LjcgMTMuN0w0MzMgMTQzbDQwIDQwYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0Ljh6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzbC00MCA0MGMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMnMtMTQuOC0xMi41LTE0LjgtMjIuMmwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNDQgMHptLTI1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTQwLTQwTDY5LjcgNTA2LjNDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJzMTIuNS0xNC44IDIyLjItMTQuOGwxNDQgMHpNNTYgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQwLTQwTDUuNyA2OS43QzIgNjYgMCA2MS4xIDAgNTZzMi0xMCA1LjctMTMuN0w0Mi4zIDUuN0M0NiAyIDUwLjkgMCA1NiAwczEwIDIgMTMuNyA1LjdMMTQzIDc5bDQwLTQwYzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEw1NiAyMjR6XCJdXG59O1xuY29uc3QgZmFDb21wcmVzc0Fycm93c0FsdCA9IGZhTWluaW1pemU7XG5jb25zdCBmYU1vbnVtZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbnVtZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWE2XCIsIFwiTTE4MC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw4MCA4MGMyLjUgMi41IDQuMSA1LjggNC42IDkuM2w0MC4yIDMyMkw1NS45IDQxNiA5Ni4xIDk0Yy40LTMuNSAyLTYuOCA0LjYtOS4zbDgwLTgwek0xNTIgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTMyIDQ0OGwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTbm93cGxvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93cGxvdycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdkMlwiLCBcIk0yOTguOSA2NGw2OC42IDE2MEwyNTYgMjI0bC02NC02NCAwLTk2IDEwNi45IDB6TTQ0NS4xIDI0Mi43bC04Ny40LTIwNEMzNDcuNiAxNS4zIDMyNC41IDAgMjk4LjkgMEwxNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMTItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMDYuOEMyNi4yIDMxNi44IDAgMzU1LjMgMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjU2IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC0xNy4yLTMuOS0zMy41LTEwLjgtNDhsNDIuOCAwIDAgNTAuN2MwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1NC42IDU0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w1NzYgNDAyLjdsMC04Mi43IDAtODQuOEw2MzMgMTY0YzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNWwtNTcgNzEuMmMtOS4xIDExLjMtMTQgMjUuNC0xNCA0MGwwIDUyLjgtNjQgMCAwLTMxLjNjLjEtMi40LS4yLTQuOC0uNi03LjFzLTEuMi00LjctMi4yLTYuOHpNMzY4IDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMjU2IDB6TTE0NCA0MDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjE2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTU2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTIwMCA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbmNvbnN0IGZhQW5nbGVzUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGVzLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTg3LCBcImFuZ2xlLWRvdWJsZS1yaWdodFwiXSwgXCJmMTAxXCIsIFwiTTQ3MC42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyNTYgMjY1LjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMjEwLjcgMjU2IDczLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvdWJsZVJpZ2h0ID0gZmFBbmdsZXNSaWdodDtcbmNvbnN0IGZhQ2FubmFiaXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FubmFiaXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NWZcIiwgXCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFjMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOWM3LjIgMjYuNCAxMS44IDU1LjIgMTAuNCA4NGMxMS41LTguOCAyMy43LTE2LjcgMzUuOC0yMy42YzQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjVjNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuN2MtOS4xIDE1LjktMTkuOSAzMS43LTMyLjQgNDYuM2MyNy44IDYuNiA1Mi40IDE3LjMgNjcuMiAyNS41YzUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMWMtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjFjMS41IDYuMS0uNiAxMi40LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOUwyODAgNDE3LjJsMCA3MC44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzAuOC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjlzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMWMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNmMtMjguOS02LjYtNTQuNi0xNy42LTY5LjgtMjYuMWMtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRjMTQuOC04LjIgMzkuNC0xOC44IDY3LjItMjUuNUM3OC45IDI5Ni4zIDY4LjEgMjgwLjUgNTkgMjY0LjZjLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjdjLTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41YzEyLjEgNi45IDI0LjMgMTQuNyAzNS44IDIzLjZjLTEuNC0yOC43IDMuMS01Ny42IDEwLjQtODRjMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWMzLTQuNCA4LTcuMSAxMy4zLTcuMXpcIl1cbn07XG5jb25zdCBmYUNpcmNsZVBsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXBsYXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2OSwgXCJwbGF5LWNpcmNsZVwiXSwgXCJmMTQ0XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41elwiXVxufTtcbmNvbnN0IGZhUGxheUNpcmNsZSA9IGZhQ2lyY2xlUGxheTtcbmNvbnN0IGZhVGFibGV0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZXRzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDkwXCIsIFwiTTYxNC4zIDI0N2MtNS4yIDcuOS0xNi4yIDguNS0yMi45IDEuOEwzOTEuMiA0OC42Yy02LjctNi43LTYuMi0xNy44IDEuOC0yMi45QzQxOC4xIDkuNCA0NDcuOSAwIDQ4MCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwYzAgMzIuMS05LjQgNjEuOS0yNS43IDg3ek01NjcgMjk0LjNjLTI1IDE2LjMtNTQuOSAyNS43LTg3IDI1LjdjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwYzAtMzIuMSA5LjQtNjEuOSAyNS43LTg3YzUuMi03LjkgMTYuMi04LjUgMjIuOS0xLjhMNTY4LjggMjcxLjRjNi43IDYuNyA2LjIgMTcuOC0xLjggMjIuOXpNMzAxLjUgMzY4YzkuNSAwIDE2LjkgOC4yIDE1IDE3LjVDMzAxLjEgNDU3LjggMjM2LjkgNTEyIDE2MCA1MTJTMTguOSA0NTcuOCAzLjUgMzg1LjVjLTItOS4zIDUuNS0xNy41IDE1LTE3LjVsMjgzLjEgMHptMC0zMkwxOC41IDMzNmMtOS41IDAtMTYuOS04LjItMTUtMTcuNUMxOC45IDI0Ni4yIDgzLjEgMTkyIDE2MCAxOTJzMTQxLjEgNTQuMiAxNTYuNSAxMjYuNWMyIDkuMy01LjUgMTcuNS0xNSAxNy41elwiXVxufTtcbmNvbnN0IGZhRXRoZXJuZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXRoZXJuZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3OTZcIiwgXCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTEyIDY0IDAgMC0xMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDExMiA2NCAwIDAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMTIgNjQgMCAwLTExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTEyIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhRXVyb1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXVyby1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbODM2NCwgXCJldXJcIiwgXCJldXJvXCJdLCBcImYxNTNcIiwgXCJNNDguMSAyNDBjLS4xIDIuNy0uMSA1LjMtLjEgOGwwIDE2YzAgMi43IDAgNS4zIC4xIDhMMzIgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4LjMgMEM4OS45IDQxOS45IDE3MCA0ODAgMjY0IDQ4MGwyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNCAwYy01Ny45IDAtMTA4LjItMzIuNC0xMzMuOS04MEwyNTYgMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDMuOCAwYy0uMS0yLjYtLjItNS4zLS4yLThsMC0xNmMwLTIuNyAuMS01LjQgLjItOEwyNTYgMjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjUuOSAwYzI1LjctNDcuNiA3Ni04MCAxMzMuOS04MGwyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNCAwQzE3MCAzMiA4OS45IDkyLjEgNjAuMyAxNzZMMzIgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2LjEgMHpcIl1cbn07XG5jb25zdCBmYUV1ciA9IGZhRXVyb1NpZ247XG5jb25zdCBmYUV1cm8gPSBmYUV1cm9TaWduO1xuY29uc3QgZmFDaGFpciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFpcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTY4MV0sIFwiZjZjMFwiLCBcIk0yNDggNDhsMCAyMDggNDggMCAwLTE5Ny4zYzIzLjkgMTMuOCA0MCAzOS43IDQwIDY5LjNsMCAxMjggNDggMCAwLTEyOEMzODQgNTcuMyAzMjYuNyAwIDI1NiAwTDE5MiAwQzEyMS4zIDAgNjQgNTcuMyA2NCAxMjhsMCAxMjggNDggMCAwLTEyOGMwLTI5LjYgMTYuMS01NS41IDQwLTY5LjNMMTUyIDI1Nmw0OCAwIDAtMjA4IDQ4IDB6TTQ4IDI4OGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTYgMzJjLTUgOS45LTQuNCAyMS43IDEuNCAzMS4xUzIwLjkgMzg0IDMyIDM4NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAyNTYgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMxMS4xIDAgMjEuNC01LjcgMjcuMi0xNS4yczYuNC0yMS4yIDEuNC0zMS4xbC0xNi0zMkM0MjMuMiAyOTQuOCA0MTIuMSAyODggNDAwIDI4OEw0OCAyODh6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTUzMywgXCJjaGVjay1jaXJjbGVcIl0sIFwiZjA1OFwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY5IDIwOUwyNDEgMzM3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0N0wzMzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYUNoZWNrQ2lyY2xlID0gZmFDaXJjbGVDaGVjaztcbmNvbnN0IGZhQ2lyY2xlU3RvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtc3RvcCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMDk0LCBcInN0b3AtY2lyY2xlXCJdLCBcImYyOGRcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVN0b3BDaXJjbGUgPSBmYUNpcmNsZVN0b3A7XG5jb25zdCBmYUNvbXBhc3NEcmFmdGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wYXNzLWRyYWZ0aW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkcmFmdGluZy1jb21wYXNzXCJdLCBcImY1NjhcIiwgXCJNMzUyIDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMkwzOTYgMjI3LjRjLTIzLjcgMjUuMy01NC4yIDQ0LjEtODguNSA1My42TDI1NiAxOTJjMCAwIDAgMCAwIDBzMCAwIDAgMGwtNjggMTE3LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNWM3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NGMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NUM0MjguMSAzNDEuOCAzNDcgMzg0IDI1NiAzODRjLTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43QzUzLjcgMzAxLjYgNDEuOCAyODkuMyAzMS4yIDI3NmMtMTEuMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWM1LjcgNy4xIDExLjggMTMuOCAxOC4yIDIwLjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjJjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnptMjEgMjk3LjljMzIuNi0xMi44IDYyLjUtMzAuOCA4OC45LTUyLjlsNDMuNyA3NS41YzQuMiA3LjMgNi41IDE1LjYgNi41IDI0LjFsMCA1NS40YzAgNS41LTIuOSAxMC43LTcuNiAxMy42cy0xMC42IDMuMi0xNS42IC43bC01NS40LTI3LjdjLTguNC00LjItMTUuNC0xMC44LTIwLjEtMTguOUwzNzMgMzkzLjl6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRHJhZnRpbmdDb21wYXNzID0gZmFDb21wYXNzRHJhZnRpbmc7XG5jb25zdCBmYVBsYXRlV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhdGUtd2hlYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NWFcIiwgXCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNnpNNDAwIDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjZDNTAyLjMgMzk3LjggNDY0LjIgNDM3IDQxNiA0NDZsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHpcIl1cbn07XG5jb25zdCBmYUljaWNsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNpY2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhZFwiLCBcIk03NS44IDMwNC44TDEgMzUuN2MtLjctMi41LTEtNS0xLTcuNUMwIDEyLjYgMTIuNiAwIDI4LjIgMEg0ODIuNEM0OTguOCAwIDUxMiAxMy4yIDUxMiAyOS42YzAgMS42LS4xIDMuMy0uNCA0LjlMNDM0LjYgNDk2LjFjLTEuNSA5LjItOS41IDE1LjktMTguOCAxNS45Yy05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xYy05LjIgMC0xNy4yLTYuMi0xOS40LTE1LjFMMjQwIDE5MiAyMTAuNiAzNjguMmMtMS41IDkuMS05LjQgMTUuOC0xOC42IDE1LjhzLTE3LjEtNi43LTE4LjYtMTUuOEwxNDQgMTkyIDExNS45IDMwNC4zYy0yLjMgOS4yLTEwLjYgMTUuNy0yMC4xIDE1LjdjLTkuMyAwLTE3LjUtNi4yLTIwLTE1LjJ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25TaGVsdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1zaGVsdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTRmXCIsIFwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwMS40TDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDI4MGwwLTg4IDE2IDAgMCA4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc0LjUgMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzcuOSA3MC4zYy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhTmV1dGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25ldXRlcicsXG4gIGljb246IFszODQsIDUxMiwgWzk5MDZdLCBcImYyMmNcIiwgXCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMUwxNjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMzAuOXpcIl1cbn07XG5jb25zdCBmYUlkQmFkZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWQtYmFkZ2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyYzFcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tMzItOTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNDQgNjRsOTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYU1hcmtlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJrZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YTFcIiwgXCJNNDgxIDMxQzQ0NS4xLTQuOCAzODYuOS00LjggMzUxIDMxbC0xNSAxNUwzMjIuOSAzM0MyOTQuOCA0LjkgMjQ5LjIgNC45IDIyMS4xIDMzTDEzNSAxMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyNTUgNjYuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzMDIuMSA4MCAxODYuMyAxOTUuNyAzMTYuMyAzMjUuNyA0ODEgMTYxYzM1LjktMzUuOSAzNS45LTk0LjEgMC0xMjkuOXpNMjkzLjcgMzQ4LjNMMTYzLjcgMjE4LjMgOTkuNSAyODIuNWMtNDggNDgtODAuOCAxMDkuMi05NC4xIDE3NS44bC01IDI1Yy0xLjYgNy45IC45IDE2IDYuNiAyMS43czEzLjggOC4xIDIxLjcgNi42bDI1LTVjNjYuNi0xMy4zIDEyNy44LTQ2LjEgMTc1LjgtOTQuMWw2NC4yLTY0LjJ6XCJdXG59O1xuY29uc3QgZmFGYWNlTGF1Z2hCZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxMywgXCJsYXVnaC1iZWFtXCJdLCBcImY1OWFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMWwyNzUuMiAwYzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6TTIxNy42IDIxMi44czAgMCAwIDBjMCAwIDAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDB6bTE2MCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6XCJdXG59O1xuY29uc3QgZmFMYXVnaEJlYW0gPSBmYUZhY2VMYXVnaEJlYW07XG5jb25zdCBmYUhlbGljb3B0ZXJTeW1ib2wgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVsaWNvcHRlci1zeW1ib2wnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MDJcIiwgXCJNNDQ1LjMgMjI0bDY0LjcgMEM0OTUuNiAxMDguMiA0MDMuOCAxNi40IDI4OCAybDAgNjQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNHpNNTEwIDI4OGwtNjQuNyAwQzQzMS45IDM2OC40IDM2OC40IDQzMS45IDI4OCA0NDUuM2wwIDY0LjdjMTE1LjgtMTQuNCAyMDcuNi0xMDYuMiAyMjItMjIyek0yIDI4OEMxNi40IDQwMy44IDEwOC4yIDQ5NS42IDIyNCA1MTBsMC02NC43QzE0My42IDQzMS45IDgwLjEgMzY4LjQgNjYuNyAyODhMMiAyODh6bTAtNjRsNjQuNyAwQzgwLjEgMTQzLjYgMTQzLjYgODAuMSAyMjQgNjYuN0wyMjQgMkMxMDguMiAxNi40IDE2LjQgMTA4LjIgMiAyMjR6bTIwNi02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgOTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC05NiAwIDAtNjR6XCJdXG59O1xuY29uc3QgZmFVbml2ZXJzYWxBY2Nlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5pdmVyc2FsLWFjY2VzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI5YVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJzMTkuNC0xNy44IDE1LjItMzAuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQ2hldnJvblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGV2cm9uLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS11cFwiXSwgXCJmMTM5XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zNzcgMjcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTg3LTg3LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIzOSAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzc3IDI3MXpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25DaXJjbGVVcCA9IGZhQ2lyY2xlQ2hldnJvblVwO1xuY29uc3QgZmFMYXJpU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXJpLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxYzhcIiwgXCJNMTQ0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIuN2M1LjMtLjQgMTAuNi0uNyAxNi0uN3MxMC43IC4yIDE2IC43TDIwOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuNGM1NC45IDI1LjIgOTUuOCA3NS41IDEwOC4yIDEzNi4yYzMuNSAxNy4zLTcuNyAzNC4yLTI1IDM3LjdzLTM0LjItNy43LTM3LjctMjVjLTYuMS0yOS45LTIyLjUtNTUuOS00NS40LTc0LjNsMCA2Ny45YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTVjLTUuMi0uNy0xMC42LTEtMTYtMXMtMTAuOCAuMy0xNiAxbDAgOTVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ny45QzgyLjcgMjExLjUgNjQgMjQ3LjYgNjQgMjg4YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzgyIDAgMzM3LjIgMCAyODhjMC03Ny41IDQ1LjktMTQ0LjMgMTEyLTE3NC42TDExMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVZvbGNhbm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sY2FubycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1NV0sIFwiZjc3MFwiLCBcIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNUMyMTIuNCAxMi40IDIzMi43IDAgMjU2IDBzNDMuNiAxMi40IDU0LjggMzFDMzIyIDIxLjYgMzM2LjMgMTYgMzUyIDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xNC43IDAtMjguMy01LTM5LjEtMTMuM2wtMzIgNDhDMjc1LjMgMTg3IDI2NiAxOTIgMjU2IDE5MnMtMTkuMy01LTI0LjktMTMuM2wtMzItNDhDMTg4LjMgMTM5IDE3NC43IDE0NCAxNjAgMTQ0ek0xNDQgMzUybDQ4LjQtMjQuMmMxMC4yLTUuMSAyMS42LTcuOCAzMy03LjhjMTkuNiAwIDM4LjQgNy44IDUyLjIgMjEuNmwzMi41IDMyLjVjNi4zIDYuMyAxNC45IDkuOSAyMy44IDkuOWMxMS4zIDAgMjEuOC01LjYgMjgtMTVsOS43LTE0LjYtNTguOS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNEwxNDQgMzUyem0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjdjMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44YzAtMTIuOCA0LjctMjUuMSAxMy4yLTM0LjdsMTUwLjItMTY5elwiXVxufTtcbmNvbnN0IGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTUzXCIsIFwiTTIwOCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTEyMy43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUwyODEgMjMyLjdsLTE1LjMtMzYuOEMyNDguNSAxNTQuOCAyMDguMyAxMjggMTYzLjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xTDY4LjcgMzk4IDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMTYuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek01NTAuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNTMwLjcgMjI0IDM4NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ2LjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsODAtODBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0zOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNnpNMzkyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OHpcIl1cbn07XG5jb25zdCBmYVN0ZXJsaW5nU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGVybGluZy1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTYzLCBcImdicFwiLCBcInBvdW5kLXNpZ25cIl0sIFwiZjE1NFwiLCBcIk0xMTIgMTYwLjRjMC0zNS41IDI4LjgtNjQuNCA2NC40LTY0LjRjNi45IDAgMTMuOCAxLjEgMjAuNCAzLjNsODEuMiAyNy4xYzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDIxNyAzOC42Yy0xMy4xLTQuNC0yNi44LTYuNi00MC42LTYuNkMxMDUuNSAzMiA0OCA4OS41IDQ4IDE2MC40TDQ4IDIyNGwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgNDQuNWMwIDE3LjQtNC43IDM0LjUtMTMuNyA0OS40TDQuNiA0MzEuNWMtNS45IDkuOS02LjEgMjIuMi0uNCAzMi4yUzIwLjUgNDgwIDMyIDQ4MGwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4OC41IDQxNmwuNy0xLjFDMTA0LjEgMzkwIDExMiAzNjEuNSAxMTIgMzMyLjVsMC00NC41IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTYzLjZ6XCJdXG59O1xuY29uc3QgZmFHYnAgPSBmYVN0ZXJsaW5nU2lnbjtcbmNvbnN0IGZhUG91bmRTaWduID0gZmFTdGVybGluZ1NpZ247XG5jb25zdCBmYVZpcnVzZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXNlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3NlwiLCBcIk0xOTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEzLjVjMCAzNS42IDQzLjEgNTMuNSA2OC4zIDI4LjNsOS41LTkuNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTkuNSA5LjVDMjkzIDEyNC45IDMxMC45IDE2OCAzNDYuNSAxNjhsMTMuNSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMy41IDBjLTM1LjYgMC01My41IDQzLjEtMjguMyA2OC4zbDkuNSA5LjVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtOS41LTkuNUMyNTkuMSAyOTMgMjE2IDMxMC45IDIxNiAzNDYuNWwwIDEzLjVjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMy41YzAtMzUuNi00My4xLTUzLjUtNjguMy0yOC4zbC05LjUgOS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDkuNS05LjVDOTEgMjU5LjEgNzMuMSAyMTYgMzcuNSAyMTZMMjQgMjE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzLjUgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM2wtOS41LTkuNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkuNSA5LjVDMTI0LjkgOTEgMTY4IDczLjEgMTY4IDM3LjVMMTY4IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0em00OCAyMjRhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tNDgtNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzIwIDgwYzAgMzMgMzkuOSA0OS41IDYzLjIgMjYuMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZDNTc0LjUgMzEyLjEgNTkxIDM1MiA2MjQgMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy0zMyAwLTQ5LjUgMzkuOS0yNi4yIDYzLjJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEM1NTEuOSA0NDYuNSA1MTIgNDYzIDUxMiA0OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZjMC0zMy0zOS45LTQ5LjUtNjMuMi0yNi4yYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42QzQxNy41IDQyMy45IDQwMSAzODQgMzY4IDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmMzMyAwIDQ5LjUtMzkuOSAyNi4yLTYzLjJjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEM0NDAuMSAyODkuNSA0ODAgMjczIDQ4MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptMCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIl1cbn07XG5jb25zdCBmYVNxdWFyZVBlcnNvbkNvbmZpbmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wZXJzb24tY29uZmluZWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1NzdcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTYgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTgwIDEwNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTAyLjFjMCAzNi40LTI5LjUgNjUuOS02NS45IDY1LjljLTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNMMTg0LjggMzQybC0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOUwyNDAgMzA2LjdsMC01OC43elwiXVxufTtcbmNvbnN0IGZhVXNlclRpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXRpZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwOFwiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMCAyNTYgMEExMjggMTI4IDAgMSAwIDk2IDEyOHptOTQuNSAyMDAuMmwxOC42IDMxTDE3NS44IDQ4My4xbC0zNi0xNDYuOWMtMi04LjEtOS44LTEzLjQtMTcuOS0xMS4zQzUxLjkgMzQyLjQgMCA0MDUuOCAwIDQ4MS4zYzAgMTcgMTMuOCAzMC43IDMwLjcgMzAuN2wxMzEuNyAwYzAgMCAwIDAgLjEgMGw1LjUgMCAxMTIgMCA1LjUgMGMwIDAgMCAwIC4xIDBsMTMxLjcgMGMxNyAwIDMwLjctMTMuOCAzMC43LTMwLjdjMC03NS41LTUxLjktMTM4LjktMTIxLjktMTU2LjRjLTguMS0yLTE1LjkgMy4zLTE3LjkgMTEuM2wtMzYgMTQ2LjlMMjM4LjkgMzU5LjJsMTguNi0zMWM2LjQtMTAuNy0xLjMtMjQuMi0xMy43LTI0LjJMMjI0IDMwNGwtMTkuNyAwYy0xMi40IDAtMjAuMSAxMy42LTEzLjcgMjQuMnpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bkxvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1sb25nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJsb25nLWFycm93LWRvd25cIl0sIFwiZjE3NVwiLCBcIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuN0w4Ni42IDMyOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93RG93biA9IGZhQXJyb3dEb3duTG9uZztcbmNvbnN0IGZhVGVudEFycm93RG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LWRvd24tdG8tbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU3ZVwiLCBcIk0yNDEuOCAxMTEuOWM4LjkgOS45IDguMSAyNS0xLjggMzMuOWwtODAgNzJjLTkuMSA4LjItMjMgOC4yLTMyLjEgMGwtODAtNzJjLTkuOS04LjktMTAuNy0yNC0xLjgtMzMuOXMyNC0xMC43IDMzLjktMS44bDM5LjkgMzZMMTIwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMjIuMSAzOS45LTM2YzkuOS04LjkgMjUtOC4xIDMzLjkgMS44em0xMjIuOCAyMi42YzExLjUtOC43IDI3LjMtOC43IDM4LjggMGwxNjggMTI4YzYuNiA1IDExIDEyLjUgMTIuMyAyMC43bDI0IDE2MCAuNyA0LjdjMTcuNSAuMiAzMS42IDE0LjQgMzEuNiAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI3LjYgMCAuNy00LjcgMjQtMTYwYzEuMi04LjIgNS42LTE1LjcgMTIuMy0yMC43bDE2OC0xMjh6TTM4NCA0NDhsODAgMEw0MDIuNyAzMjUuNWMtMS43LTMuNC01LjEtNS41LTguOC01LjVjLTUuNSAwLTkuOSA0LjQtOS45IDkuOUwzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhQ2VydGlmaWNhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2VydGlmaWNhdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTNcIiwgXCJNMjExIDcuM0MyMDUgMSAxOTYtMS40IDE4Ny42IC44cy0xNC45IDguOS0xNy4xIDE3LjNMMTU0LjcgODAuNmwtNjItMTcuNWMtOC40LTIuNC0xNy40IDAtMjMuNSA2LjFzLTguNSAxNS4xLTYuMSAyMy41bDE3LjUgNjJMMTguMSAxNzAuNmMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xUzEgMjA1IDcuMyAyMTFsNDYuMiA0NUw3LjMgMzAxQzEgMzA3LTEuNCAzMTYgLjggMzI0LjRzOC45IDE0LjkgMTcuMyAxNy4xbDYyLjUgMTUuOC0xNy41IDYyYy0yLjQgOC40IDAgMTcuNCA2LjEgMjMuNXMxNS4xIDguNSAyMy41IDYuMWw2Mi0xNy41IDE1LjggNjIuNWMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0NS00Ni4yIDQ1IDQ2LjJjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zbDE1LjgtNjIuNSA2MiAxNy41YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNy41LTYyIDYyLjUtMTUuOGM4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ2LjItNDUgNDYuMi00NWM2LjItNi4xIDguNy0xNSA2LjQtMjMuNHMtOC45LTE0LjktMTcuMy0xNy4xbC02Mi41LTE1LjggMTcuNS02MmMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFsLTYyIDE3LjVMMzQxLjQgMTguMWMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zUzMwNyAxIDMwMSA3LjNMMjU2IDUzLjUgMjExIDcuM3pcIl1cbn07XG5jb25zdCBmYVJlcGx5QWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcGx5LWFsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFpbC1yZXBseS1hbGxcIl0sIFwiZjEyMlwiLCBcIk0yMDkuNCAzOS41Yy05LjEtOS42LTI0LjMtMTAtMzMuOS0uOUwzMy44IDE3My4yYy0xOS45IDE4LjktMTkuOSA1MC43IDAgNjkuNkwxNzUuNSAzNzcuNGM5LjYgOS4xIDI0LjggOC43IDMzLjktLjlzOC43LTI0LjgtLjktMzMuOUw2Ni44IDIwOCAyMDguNSA3My40YzkuNi05LjEgMTAtMjQuMyAuOS0zMy45ek0zNTIgNjRjMC0xMi42LTcuNC0yNC4xLTE5LTI5LjJzLTI1LTMtMzQuNCA1LjRsLTE2MCAxNDRjLTYuNyA2LjEtMTAuNiAxNC43LTEwLjYgMjMuOHMzLjkgMTcuNyAxMC42IDIzLjhsMTYwIDE0NGM5LjQgOC41IDIyLjkgMTAuNiAzNC40IDUuNHMxOS0xNi42IDE5LTI5LjJsMC02NCAzMiAwYzUzIDAgOTYgNDMgOTYgOTZjMCAzMC40LTEyLjggNDcuOS0yMi4yIDU2LjdjLTUuNSA1LjEtOS44IDEyLTkuOCAxOS41YzAgMTAuOSA4LjggMTkuNyAxOS43IDE5LjdjMi44IDAgNS42LS42IDguMS0xLjlDNDk0LjUgNDY3LjkgNTc2IDQxNy4zIDU3NiAzMDRjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTQ4IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYU1haWxSZXBseUFsbCA9IGZhUmVwbHlBbGw7XG5jb25zdCBmYVN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTIzXSwgXCJmMGYyXCIsIFwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDAgMzIgMCAzNTItMjU2IDAgMC0zNTIgMC0zMnpNNjQgOTZsMzIgMCAwIDM4NC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDQ4MGwtMzIgMCAwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0elwiXVxufTtcbmNvbnN0IGZhUGVyc29uU2thdGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tc2thdGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2thdGluZ1wiXSwgXCJmN2M1XCIsIFwiTTM1MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1OS40IDBjNDMuNiAwIDY0LjYgNTMuNCAzMi44IDgzLjFsLTc0LjQgNjkuNCA2MC4yIDYwLjJjOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3My40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuNy03Ny45LTc3LjhjLTI2LjYtMjYuNi0yNC42LTcwLjMgNC4zLTk0LjRsMjAuNC0xN0wxNjAgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODEuNCAzNTMuNGw4Ni45LTg2LjljNC42IDEwIDExIDE5LjMgMTkuMyAyNy41bDIxLjggMjEuOC04Mi43IDgyLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zMjIuNSA5NS4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40TDI3MiA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODguOCAwYzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTEzNS4yIDQ3OC4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDQuNyA0MTEuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41elwiXVxufTtcbmNvbnN0IGZhU2thdGluZyA9IGZhUGVyc29uU2thdGluZztcbmNvbnN0IGZhRmlsdGVyQ2lyY2xlRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbHRlci1jaXJjbGUtZG9sbGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJmdW5uZWwtZG9sbGFyXCJdLCBcImY2NjJcIiwgXCJNMy45IDIyLjlDMTAuNSA4LjkgMjQuNSAwIDQwIDBMNDcyIDBjMTUuNSAwIDI5LjUgOC45IDM2LjEgMjIuOXM0LjYgMzAuNS01LjIgNDIuNUwzOTYuNCAxOTUuNkMzMTYuMiAyMTIuMSAyNTYgMjgzIDI1NiAzNjhjMCAyNy40IDYuMyA1My40IDE3LjUgNzYuNWMtMS42LS44LTMuMi0xLjgtNC43LTIuOWwtNjQtNDhjLTguMS02LTEyLjgtMTUuNS0xMi44LTI1LjZsMC03OS4xTDkgNjUuM0MtLjcgNTMuNC0yLjggMzYuOCAzLjkgMjIuOXpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xMjAuOC0zMi42Yy42LS45IDEuOC0yLjEgNC4yLTMuNGM1LjEtMi43IDEyLjUtNC4xIDE4LjctNGM4LjIgLjEgMTcuMSAxLjggMjYuNCA0LjFjOC42IDIuMSAxNy4zLTMuMSAxOS40LTExLjdzLTMuMS0xNy4zLTExLjctMTkuNGMtNS42LTEuNC0xMS42LTIuNy0xNy45LTMuN2wwLTkuNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDkuNWMtNi4xIDEuMi0xMi4zIDMuMi0xOCA2LjNjLTExLjggNi4zLTIzIDE4LjQtMjEuOCAzNy4yYzEgMTYgMTEuNyAyNS4zIDIxLjYgMzAuN2M4LjggNC43IDE5LjcgNy44IDI4LjYgMTAuM2wxLjggLjVjMTAuMyAyLjkgMTcuOSA1LjIgMjMuMiA4LjNjNC41IDIuNyA0LjcgNC4yIDQuNyA1LjZjLjEgMi40LS41IDMuNy0xIDQuNWMtLjYgMS0xLjggMi4yLTQgMy4zYy00LjcgMi41LTExLjggMy44LTE4LjUgMy42Yy05LjUtLjMtMTguNS0zLjEtMjkuOS02LjhjLTEuOS0uNi0zLjgtMS4yLTUuOC0xLjhjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwYzEuNiAuNSAzLjMgMSA1IDEuNmMwIDAgMCAwIDAgMHMwIDAgMCAwYzcgMi4zIDE1LjEgNC44IDIzLjcgNi42bDAgMTEuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTAuOGM2LjItMS4xIDEyLjUtMy4xIDE4LjMtNi4yYzEyLjEtNi41IDIyLjMtMTguNyAyMS43LTM2LjljLS41LTE2LjItMTAuMy0yNi4zLTIwLjUtMzIuM2MtOS40LTUuNi0yMS4yLTguOS0zMC41LTExLjVsLS4yIDBjLTEwLjQtMi45LTE4LjMtNS4yLTIzLjktOC4yYy00LjgtMi42LTQuOC00LTQuOC00LjVjMCAwIDAgMCAwLS4xYy0uMS0xLjkgLjMtMi45IC44LTMuNnpcIl1cbn07XG5jb25zdCBmYUZ1bm5lbERvbGxhciA9IGZhRmlsdGVyQ2lyY2xlRG9sbGFyO1xuY29uc3QgZmFDYW1lcmFSZXRybyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW1lcmEtcmV0cm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNDddLCBcImYwODNcIiwgXCJNMjIwLjYgMTIxLjJMMjcxLjEgOTYgNDQ4IDk2bDAgOTYtMTE0LjggMGMtMjEuOS0xNS4xLTQ4LjUtMjQtNzcuMi0yNHMtNTUuMiA4LjktNzcuMiAyNEw2NCAxOTJsMC02NCAxMjggMGM5LjkgMCAxOS43LTIuMyAyOC42LTYuOHpNMCAxMjhMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjcxLjEgMzJjLTkuOSAwLTE5LjcgMi4zLTI4LjYgNi44TDE5MiA2NGwtMzIgMCAwLTE2YzAtOC44LTcuMi0xNi0xNi0xNkw4MCAzMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZDMjguNyA2NCAwIDkyLjcgMCAxMjh6TTE2OCAzMDRhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtZG93blwiXSwgXCJmMGFiXCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTI3IDI5N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcxIDcxTDIzMiAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDIxNC4xIDcxLTcxYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMjcgMjk3elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVEb3duID0gZmFDaXJjbGVBcnJvd0Rvd247XG5jb25zdCBmYUZpbGVJbXBvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbXBvcnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFycm93LXJpZ2h0LXRvLWZpbGVcIl0sIFwiZjU2ZlwiLCBcIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzUyIDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTExMiAxNzQuMSAwLTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDM5IDM5TDEyOCAyODhsMC0yMjR6bTAgMjI0bDAgNDhMMjQgMzM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwNCAwek01MTIgMTI4bC0xMjggMEwzODQgMCA1MTIgMTI4elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvRmlsZSA9IGZhRmlsZUltcG9ydDtcbmNvbnN0IGZhU3F1YXJlQXJyb3dVcFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1hcnJvdy11cC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZXh0ZXJuYWwtbGluay1zcXVhcmVcIl0sIFwiZjE0Y1wiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjAgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk0LjEgMEwxMTkgMzI3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTM1LTEzNUwyODggMzI4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTE1MiAwelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rU3F1YXJlID0gZmFTcXVhcmVBcnJvd1VwUmlnaHQ7XG5jb25zdCBmYUJveE9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LW9wZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OWVcIiwgXCJNNTguOSA0Mi4xYzMtNi4xIDkuNi05LjYgMTYuMy04LjdMMzIwIDY0IDU2NC44IDMzLjRjNi43LS44IDEzLjMgMi43IDE2LjMgOC43bDQxLjcgODMuNGM5IDE3LjktLjYgMzkuNi0xOS44IDQ1LjFMNDM5LjYgMjE3LjNjLTEzLjkgNC0yOC44LTEuOS0zNi4yLTE0LjNMMzIwIDY0IDIzNi42IDIwM2MtNy40IDEyLjQtMjIuMyAxOC4zLTM2LjIgMTQuM0wzNy4xIDE3MC42Yy0xOS4zLTUuNS0yOC44LTI3LjItMTkuOC00NS4xTDU4LjkgNDIuMXpNMzIxLjEgMTI4bDU0LjkgOTEuNGMxNC45IDI0LjggNDQuNiAzNi42IDcyLjUgMjguNkw1NzYgMjExLjZsMCAxNjdjMCAyMi0xNSA0MS4yLTM2LjQgNDYuNmwtMjA0LjEgNTFjLTEwLjIgMi42LTIwLjkgMi42LTMxIDBsLTIwNC4xLTUxQzc5IDQxOS43IDY0IDQwMC41IDY0IDM3OC41bDAtMTY3TDE5MS42IDI0OGMyNy44IDggNTcuNi0zLjggNzIuNS0yOC42TDMxOC45IDEyOGwyLjIgMHpcIl1cbn07XG5jb25zdCBmYVNjcm9sbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3JvbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgyMjBdLCBcImY3MGVcIiwgXCJNMCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgNDggMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgNTMuNSAwIDgwek0xMTIgMzJjMTAgMTMuNCAxNiAzMCAxNiA0OGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43TDQ4MCAzMjBsMC0xOTJjMC01My00My05Ni05Ni05NkwxMTIgMzJ6TTQ2NCA0ODBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0yNDUuMyAwYy0xNC43IDAtMjYuNyAxMS45LTI2LjcgMjYuN2wwIDUuM2MwIDUzLTQzIDk2LTk2IDk2bDE3NiAwIDk2IDB6XCJdXG59O1xuY29uc3QgZmFTcGEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNWJiXCIsIFwiTTE4My4xIDIzNS4zYzMzLjcgMjAuNyA2Mi45IDQ4LjEgODUuOCA4MC41YzcgOS45IDEzLjQgMjAuMyAxOS4xIDMxYzUuNy0xMC44IDEyLjEtMjEuMSAxOS4xLTMxYzIyLjktMzIuNCA1Mi4xLTU5LjggODUuOC04MC41QzQzNy42IDIwNy44IDQ5MC4xIDE5MiA1NDYgMTkybDkuOSAwYzExLjEgMCAyMC4xIDkgMjAuMSAyMC4xQzU3NiAzNjAuMSA0NTYuMSA0ODAgMzA4LjEgNDgwTDI4OCA0ODBsLTIwLjEgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xQzAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzU1LjkgMCAxMDguNCAxNS44IDE1My4xIDQzLjN6TTMwMS41IDM3LjZjMTUuNyAxNi45IDYxLjEgNzEuOCA4NC40IDE2NC42Yy0zOCAyMS42LTcxLjQgNTAuOC05Ny45IDg1LjZjLTI2LjUtMzQuOC01OS45LTYzLjktOTcuOS04NS42YzIzLjItOTIuOCA2OC42LTE0Ny43IDg0LjQtMTY0LjZDMjc4IDMzLjkgMjgyLjkgMzIgMjg4IDMyczEwIDEuOSAxMy41IDUuNnpcIl1cbn07XG5jb25zdCBmYUxvY2F0aW9uUGluTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1waW4tbG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUxZlwiLCBcIk0yMTUuNyA0OTkuMmMxMS0xMy44IDI1LjEtMzEuNyA0MC4zLTUyLjNsMC05NC44YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI0LjZjMC01NS42IDQwLjUtMTAxLjcgOTMuNi0xMTAuNUMzNjcgNzAgMjg3LjcgMCAxOTIgMEM4NiAwIDAgODYgMCAxOTJjMCA4Ny40IDExNyAyNDMgMTY4LjMgMzA3LjJjMTIuMyAxNS4zIDM1LjEgMTUuMyA0Ny40IDB6TTE5MiAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQwMCAyNDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMmwwIDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwiXVxufTtcbmNvbnN0IGZhUGF1c2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGF1c2UnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5MjA4XSwgXCJmMDRjXCIsIFwiTTQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEyTDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6bTE5MiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDI4OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhSGlsbEF2YWxhbmNoZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWxsLWF2YWxhbmNoZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwN1wiLCBcIk00MzkuNyA0MDEuOWMzNC4yIDIzLjEgODEuMSAxOS41IDExMS40LTEwLjhjMzQuNC0zNC40IDM0LjQtOTAuMSAwLTEyNC40Yy0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2Yy0xMS44IDYuMS0xNi40IDIwLjYtMTAuMyAzMi4zczIwLjYgMTYuNCAzMi4zIDEwLjNjMTUuMS03LjggMzQtNS4zIDQ2LjYgNy4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC04MS43LTgxLjdDNDAxLjIgMjYxLjMgNDE2IDIzNi40IDQxNiAyMDhjMC0zMy45LTIxLjEtNjIuOS01MC45LTc0LjVjMS45LTYuOCAyLjktMTQgMi45LTIxLjVjMC00NC4yLTM1LjgtODAtODAtODBjLTI3LjMgMC01MS41IDEzLjctNjUuOSAzNC42QzIxNi4zIDQ2LjYgMTk3LjkgMzIgMTc2IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDQgLjUgNy45IDEuNCAxMS42TDQzOS43IDQwMS45ek00ODAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUVtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWVtcHR5JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS0wXCIsIFwidGhlcm1vbWV0ZXItMFwiLCBcInRoZXJtb21ldGVyLWVtcHR5XCJdLCBcImYyY2JcIiwgXCJNMTEyIDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyMzMuOCAzMzIuNiAyNDAgMzQ5LjUgMjQwIDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45YzguMi0xMC42IDE1LjMtMjUuMiAxNS4zLTQyLjVMMTEyIDExMnpNMTYwIDBDOTguMSAwIDQ4IDUwLjIgNDggMTEybDAgMTY0LjRjMCAuMS0uMSAuMy0uMiAuNmMtLjIgLjYtLjggMS42LTEuNyAyLjhDMjcuMiAzMDQuMiAxNiAzMzQuOCAxNiAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZMMjcyIDExMkMyNzIgNTAuMiAyMjEuOSAwIDE2MCAwem0wIDQxNmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZTAgPSBmYVRlbXBlcmF0dXJlRW1wdHk7XG5jb25zdCBmYVRoZXJtb21ldGVyMCA9IGZhVGVtcGVyYXR1cmVFbXB0eTtcbmNvbnN0IGZhVGhlcm1vbWV0ZXJFbXB0eSA9IGZhVGVtcGVyYXR1cmVFbXB0eTtcbmNvbnN0IGZhQm9tYiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib21iJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTYzXSwgXCJmMWUyXCIsIFwiTTQ1OS4xIDUyLjRMNDQyLjYgNi41QzQ0MC43IDIuNiA0MzYuNSAwIDQzMi4xIDBzLTguNSAyLjYtMTAuNCA2LjVMNDA1LjIgNTIuNGwtNDYgMTYuOGMtNC4zIDEuNi03LjMgNS45LTcuMiAxMC40YzAgNC41IDMgOC43IDcuMiAxMC4ybDQ1LjcgMTYuOCAxNi44IDQ1LjhjMS41IDQuNCA1LjggNy41IDEwLjQgNy41czguOS0zLjEgMTAuNC03LjVsMTYuNS00NS44IDQ1LjctMTYuOGM0LjItMS41IDcuMi01LjcgNy4yLTEwLjJjMC00LjYtMy04LjktNy4yLTEwLjRMNDU5LjEgNTIuNHptLTEzMi40IDUzYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMi45IDIuOUMyNTYuNSAxMDAuMyAyMzIuNyA5NiAyMDggOTZDOTMuMSA5NiAwIDE4OS4xIDAgMzA0UzkzLjEgNTEyIDIwOCA1MTJzMjA4LTkzLjEgMjA4LTIwOGMwLTI0LjctNC4zLTQ4LjUtMTIuMi03MC41bDIuOS0yLjljMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yMDAgMTkyYy01Ny40IDAtMTA0IDQ2LjYtMTA0IDEwNGwwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04YzAtNzUuMSA2MC45LTEzNiAxMzYtMTM2bDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtOCAwelwiXVxufTtcbmNvbnN0IGZhUmVnaXN0ZXJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWdpc3RlcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTc0XSwgXCJmMjVkXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCAyOC0xNC40IDUyLjctMzYuMyA2N2wzNC4xIDc1LjFjNS41IDEyLjEgLjEgMjYuMy0xMS45IDMxLjhzLTI2LjMgLjEtMzEuOC0xMS45TDI2OC45IDI4OCAyMDggMjg4bDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC05NiAwLTExMnptNDggODhsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhQWRkcmVzc0NhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDAsIFwiY29udGFjdC1jYXJkXCIsIFwidmNhcmRcIl0sIFwiZjJiYlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni0zMmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNvbnRhY3RDYXJkID0gZmFBZGRyZXNzQ2FyZDtcbmNvbnN0IGZhVmNhcmQgPSBmYUFkZHJlc3NDYXJkO1xuY29uc3QgZmFTY2FsZVVuYmFsYW5jZWRGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjYWxlLXVuYmFsYW5jZWQtZmxpcCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmFsYW5jZS1zY2FsZS1yaWdodFwiXSwgXCJmNTE2XCIsIFwiTTExNy45IDYyLjRjLTE2LjgtNS42LTI1LjgtMjMuNy0yMC4yLTQwLjVzMjMuNy0yNS44IDQwLjUtMjAuMmwxMTMgMzcuN0MyNjUgMTUuOCAyOTAuNyAwIDMyMCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNCAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4yTDM1MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuNCAyODhMMTI4IDE2My44IDU1LjYgMjg4bDE0NC45IDB6TTEyOCAzODRDNjUuMSAzODQgMTIuOCAzNTAgMiAzMDUuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMUMyNDMuMiAzNTAgMTkwLjkgMzg0IDEyOCAzODR6bTM4Mi44LTkyLjJMNDM4LjQgNDE2bDE0NC45IDBMNTEwLjggMjkxLjh6bTEyNiAxNDEuM0M2MjYgNDc4IDU3My43IDUxMiA1MTAuOCA1MTJzLTExNS4yLTM0LTEyNi03OC45Yy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xelwiXVxufTtcbmNvbnN0IGZhQmFsYW5jZVNjYWxlUmlnaHQgPSBmYVNjYWxlVW5iYWxhbmNlZEZsaXA7XG5jb25zdCBmYVN1YnNjcmlwdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWJzY3JpcHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMmNcIiwgXCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOEw0Ny4zIDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDE3NiAzMTEuOGw4NS44IDEyMi42YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwTDIxNS4xIDI1Nmw4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMTc2IDIwMC4yIDkwLjIgNzcuNkM4NC4yIDY5LjEgNzQuNCA2NCA2NCA2NEwzMiA2NHpNNDgwIDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlDMzkzIDM2MS41IDQwNC4zIDM2OCA0MTYgMzY4bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4elwiXVxufTtcbmNvbnN0IGZhRGlhbW9uZFR1cm5SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFtb25kLXR1cm4tcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRpcmVjdGlvbnNcIl0sIFwiZjVlYlwiLCBcIk0yMjcuNyAxMS43YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDIxNiAyMTZjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIxNiAyMTZjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC0yMTYtMjE2Yy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmwyMTYtMjE2em04Ny42IDEzN2MtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNXMtOS45IDguMy05LjkgMTQuOGwwIDU2LTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwIDAgNTZjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsODAtODBjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTgwLTgwelwiXVxufTtcbmNvbnN0IGZhRGlyZWN0aW9ucyA9IGZhRGlhbW9uZFR1cm5SaWdodDtcbmNvbnN0IGZhQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVyc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZGNcIiwgXCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN3MtOS40IDIxLTIuOCAzMC41bDExMiAxNjMuM0wxNi42IDIzMy4yQzYuNyAyMzYuNCAwIDI0NS42IDAgMjU2czYuNyAxOS42IDE2LjYgMjIuOGwxMDMuMSAzMy40TDY2LjggNDEyLjhjLTQuOSA5LjMtMy4yIDIwLjcgNC4zIDI4LjFzMTguOCA5LjIgMjguMSA0LjNsMTAwLjYtNTIuOSAzMy40IDEwMy4xYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNnMxOS42LTYuNyAyMi44LTE2LjZsMzMuNC0xMDMuMSAxMDAuNiA1Mi45YzkuMyA0LjkgMjAuNyAzLjIgMjguMS00LjNzOS4yLTE4LjggNC4zLTI4LjFMMzkyLjMgMzEyLjJsMTAzLjEtMzMuNGM5LjktMy4yIDE2LjYtMTIuNCAxNi42LTIyLjhzLTYuNy0xOS42LTE2LjYtMjIuOEwzODguOSAxOTguN2wyNS43LTcwLjRjMy4yLTguOCAxLTE4LjYtNS42LTI1LjJzLTE2LjQtOC44LTI1LjItNS42bC03MC40IDI1LjdMMjc4LjggMTYuNkMyNzUuNiA2LjcgMjY2LjQgMCAyNTYgMHMtMTkuNiA2LjctMjIuOCAxNi42bC0zMi4zIDk5LjZMMzcuNiA0LjJ6XCJdXG59O1xuY29uc3QgZmFIb3VzZUxhcHRvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1sYXB0b3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImxhcHRvcC1ob3VzZVwiXSwgXCJlMDY2XCIsIFwiTTIxOC4zIDguNWMxMi4zLTExLjMgMzEuMi0xMS4zIDQzLjQgMGwyMDggMTkyYzYuNyA2LjIgMTAuMyAxNC44IDEwLjMgMjMuNWwtMTQ0IDBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43bDAtMzcuN2MwLTguOC03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwIDAgMTI4LTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTExMi0zMiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC4xLTM1LjJsMjA4LTE5MnpNMzUyIDMwNGwwIDE0NCAxOTIgMCAwLTE0NC0xOTIgMHptLTQ4LTE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC00OCAwLTE5MiAwLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhTGFwdG9wSG91c2UgPSBmYUhvdXNlTGFwdG9wO1xuY29uc3QgZmFGYWNlVGlyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS10aXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NSwgXCJ0aXJlZFwiXSwgXCJmNWM4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjRjNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOWMwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhzLTYuOS03LjktNi45LTEzLjJjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOWM2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHptLTMxLjItMTgybDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTU3LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJdXG59O1xuY29uc3QgZmFUaXJlZCA9IGZhRmFjZVRpcmVkO1xuY29uc3QgZmFNb25leUJpbGxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGxzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMWYzXCIsIFwiTTk2IDk2bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQxNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTY0IDE2MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwtNjQgMCAwLTY0ek0yMjQgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMC02NCA2NCAwek01NzYgMjU2bDAgNjQtNjQgMGMwLTM1LjMgMjguNy02NCA2NC02NHpNNTEyIDk2bDY0IDAgMCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI4OCAyMDhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek00OCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMDYuNyAwIDEyMEwwIDM2MGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAwIDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtMjQwelwiXVxufTtcbmNvbnN0IGZhU21vZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbW9nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzVmXCIsIFwiTTMyIDE0NGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwxMjMuMyAwYzIyLjYgMTkuOSA1Mi4yIDMyIDg0LjcgMzJzNjIuMS0xMi4xIDg0LjctMzJsMjcuMyAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEyYy0xMC43IDAtMjEgMS41LTMwLjggNC4zQzQ0My44IDI3LjcgNDAxLjEgMCAzNTIgMGMtMzIuNiAwLTYyLjQgMTIuMi04NS4xIDMyLjNDMjQyLjEgMTIuMSAyMTAuNSAwIDE3NiAwQzk2LjUgMCAzMiA2NC41IDMyIDE0NHpNNjE2IDM2OGwtMzM2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS02NCA5NmwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS0xOTIgMEwyNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6TTIyNCAzOTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMOTYgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQ3J1dGNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NydXRjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdmN1wiLCBcIk0yOTcuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS05NiAxNDRsLTM0LjggMzQuOGMtMTIuOSAxMi45LTIxLjkgMjkuMi0yNS44IDQ3LjFMMTE2LjggMzQyLjljLTEuMyA1LjktNC4zIDExLjQtOC42IDE1LjdMOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk4LjgtOTguOGM0LjMtNC4zIDkuNy03LjMgMTUuNy04LjZsMTA3LjYtMjMuOWMxNy44LTQgMzQuMS0xMi45IDQ3LjEtMjUuOGwzNC43LTM0LjdjMCAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xbDc0LjYtNzQuNi00NS4zLTQ1LjNMMzM2IDI0Mi43IDI2OS4zIDE3Nmw1Mi4xLTUyLjFMMjc2LjEgNzguNmwtNzQuNyA3NC43ek0yMjQgMjIxLjNMMjkwLjcgMjg4bC0xMi4yIDEyLjJjLTQuMyA0LjMtOS43IDcuMy0xNS43IDguNmwtNzYuNyAxNyAxNy03Ni43YzEuMy01LjkgNC4zLTExLjQgOC42LTE1LjdMMjI0IDIyMS4zelwiXVxufTtcbmNvbnN0IGZhRm9udEF3ZXNvbWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9udC1hd2Vzb21lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI1MDEsIDYyNjk0LCBcImZvbnQtYXdlc29tZS1mbGFnXCIsIFwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbFwiXSwgXCJmMmI0XCIsIFwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTJDMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCAzIDAgMzUyIDAgNjQgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjRjMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzJsNjEuNy0xMzguOWMxLjUtMy40IDIuMy03IDIuMy0xMC43YzAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6XCJdXG59O1xuY29uc3QgZmFGb250QXdlc29tZUZsYWcgPSBmYUZvbnRBd2Vzb21lO1xuY29uc3QgZmFGb250QXdlc29tZUxvZ29GdWxsID0gZmFGb250QXdlc29tZTtcbmNvbnN0IGZhQ2xvdWRBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLWFycm93LXVwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbNjIzMzgsIFwiY2xvdWQtdXBsb2FkXCIsIFwiY2xvdWQtdXBsb2FkLWFsdFwiXSwgXCJmMGVlXCIsIFwiTTE0NCA0ODBDNjQuNSA0ODAgMCA0MTUuNSAwIDMzNmMwLTYyLjggNDAuMi0xMTYuMiA5Ni4yLTEzNS45Yy0uMS0yLjctLjItNS40LS4yLTguMWMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MGM1OS4zIDAgMTExIDMyLjIgMTM4LjcgODAuMkM0MDkuOSAxMDIgNDI4LjMgOTYgNDQ4IDk2YzUzIDAgOTYgNDMgOTYgOTZjMCAxMi4yLTIuMyAyMy44LTYuNCAzNC42QzU5NiAyMzguNCA2NDAgMjkwLjEgNjQwIDM1MmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzY4IDB6bTc5LTIxN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDM5LTM5TDI5NiAzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNC4xIDM5IDM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUNsb3VkVXBsb2FkID0gZmFDbG91ZEFycm93VXA7XG5jb25zdCBmYUNsb3VkVXBsb2FkQWx0ID0gZmFDbG91ZEFycm93VXA7XG5jb25zdCBmYVBhbGV0dGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFsZXR0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkxMl0sIFwiZjUzZlwiLCBcIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjdjLS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDMuNCAuNCA2LjcgMSA5LjljMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOWM2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MmMwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjJjLTMuNSAuMS03IC4yLTEwLjYgLjJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93c1R1cm5SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdHVybi1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTRjMFwiLCBcIk0yOTcuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzMzguNyAxNjAgMTI4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyQzAgMTUzLjMgNTcuMyA5NiAxMjggOTZsMjEwLjcgMEwyOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDQxNiA5NiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYVZlc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NVwiLCBcIk0yMDcuMSAyMzcuNEwxNTEuMiA2OS43QzE2OC42IDc5LjcgMTkyLjYgODggMjI0IDg4czU1LjQtOC4zIDcyLjgtMTguM0wyMjYuNSAyODAuNmMtMS42IDQuOS0yLjUgMTAtMi41IDE1LjJMMjI0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5My41YzAtOS41LTIuOC0xOC43LTguMS0yNi42bC00Ny45LTcxLjhjLTUuMy03LjktOC4xLTE3LjEtOC4xLTI2LjZsMC0xNy41IDAtNzMuNyAwLTYuM2MwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLS4yIDAtLjQgMC0uNiAwYy0uNCAwLS44IDAtMS4yIDBDMzExIDAgMjk1LjcgOS43IDI4NS43IDE4LjhDMjc2LjQgMjcuMiAyNTcuMiA0MCAyMjQgNDBzLTUyLjQtMTIuOC02MS43LTIxLjJDMTUyLjMgOS43IDEzNyAwIDExOC4zIDBjLS40IDAtLjggMC0xLjIgMGMtLjIgMC0uNCAwLS42IDBMMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA2LjNMNjQgMTI4bDAgMTcuNWMwIDkuNS0yLjggMTguNy04LjEgMjYuNkw4LjEgMjQzLjlDMi44IDI1MS44IDAgMjYxLjEgMCAyNzAuNUwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGM5LjkgMCAxOS0zIDI2LjctOC4xQzE5NS45IDQ5Mi4yIDE5MiA0NzguNSAxOTIgNDY0bDAtMTY4LjJjMC04LjYgMS40LTE3LjEgNC4xLTI1LjNsMTEtMzMuMXpNMzQ3LjMgMzU2LjdsNDggNDhjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNDgtNDhjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMHptLTI5NC42IDQ4bDQ4LTQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNmwtNDggNDhjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFGZXJyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZXJyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlYVwiLCBcIk0yMjQgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw3NS4xIDBjMjAuNiAwIDMxLjYgMjQuMyAxOC4xIDM5LjhMNDU2IDk2IDEyMCA5NiA5OC44IDcxLjhDODUuMyA1Ni4zIDk2LjMgMzIgMTE2LjkgMzJMMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMjhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjMuNWMwIDEzLjMtNC4yIDI2LjMtMTEuOSAzNy4ybC01MS40IDcxLjljLTEuOSAxLjEtMy43IDIuMi01LjUgMy41Yy0xNS41IDEwLjctMzQgMTgtNTEgMTkuOWwtMTYuNSAwYy0xNy4xLTEuOC0zNS05LTUwLjgtMTkuOWMtMjIuMS0xNS41LTUxLjYtMTUuNS03My43IDBjLTE0LjggMTAuMi0zMi41IDE4LTUwLjYgMTkuOWwtMTYuNiAwYy0xNy0xLjgtMzUuNi05LjItNTEtMTkuOWMtMS44LTEuMy0zLjctMi40LTUuNi0zLjVMNzUuOSAzMjAuN0M2OC4yIDMwOS44IDY0IDI5Ni44IDY0IDI4My41TDY0IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgNjRsMCA5NiAzMjAgMCAwLTk2LTMyMCAwek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjMtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA1MDEuNyA0MTcgNTEyIDM4NCA1MTJjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43YzAgMCAwIDAgMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzRG93blRvUGVvcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1kb3duLXRvLXBlb3BsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRiOVwiLCBcIk0xNDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTguMUw5NyAxMTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjQtNjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMjMgMjNMMTY4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zNjAgMjAwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6TTE4NCAyOTZhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMzEyIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNMjAwIDQ0MS41bDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM2LjMtNjcuNWMxLjctMS43IDMuMi0zLjYgNC4zLTUuOEwyNjQgMzQ1LjVsMCA1NC41YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC01NC41IDI2LjkgNDkuOWMxLjIgMi4yIDIuNiA0LjEgNC4zIDUuOGwtMzYuMyA2Ny41Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEw0NDAgNDQxLjVsMCAzOC41YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM3LjktNzAuM2MtMTUuMy0yOC41LTQ1LjEtNDYuMy03Ny41LTQ2LjNsLTE5LjUgMGMtMTYuMyAwLTMxLjkgNC41LTQ1LjQgMTIuNmwtMzMuNi02Mi4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzMuNiA2Mi4zYy0xMy41LTguMS0yOS4xLTEyLjYtNDUuNC0xMi42bC0xOS41IDBjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zTDE4LjkgNDY4LjZjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDg4IDQ0MS41IDg4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzguNXpNNDE1IDE1M2w2NCA2NGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyM0w1MjAgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMS0yMy0yM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYVNlZWRsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlZWRsaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzkzLCBcInNwcm91dFwiXSwgXCJmNGQ4XCIsIFwiTTUxMiAzMmMwIDExMy42LTg0LjYgMjA3LjUtMTk0LjIgMjIyYy03LjEtNTMuNC0zMC42LTEwMS42LTY1LjMtMTM5LjNDMjkwLjggNDYuMyAzNjQgMCA0NDggMGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDMyIDBjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNGwwIDMyIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6XCJdXG59O1xuY29uc3QgZmFTcHJvdXQgPSBmYVNlZWRsaW5nO1xuY29uc3QgZmFMZWZ0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg1OTYsIFwiYXJyb3dzLWFsdC1oXCJdLCBcImYzMzdcIiwgXCJNNTA0LjMgMjczLjZjNC45LTQuNSA3LjctMTAuOSA3LjctMTcuNnMtMi44LTEzLTcuNy0xNy42bC0xMTItMTA0Yy03LTYuNS0xNy4yLTguMi0yNS45LTQuNHMtMTQuNCAxMi41LTE0LjQgMjJsMCA1Ni0xOTIgMCAwLTU2YzAtOS41LTUuNy0xOC4yLTE0LjQtMjJzLTE4LjktMi4xLTI1LjkgNC40bC0xMTIgMTA0QzIuOCAyNDMgMCAyNDkuMyAwIDI1NnMyLjggMTMgNy43IDE3LjZsMTEyIDEwNGM3IDYuNSAxNy4yIDguMiAyNS45IDQuNHMxNC40LTEyLjUgMTQuNC0yMmwwLTU2IDE5MiAwIDAgNTZjMCA5LjUgNS43IDE4LjIgMTQuNCAyMnMxOC45IDIuMSAyNS45LTQuNGwxMTItMTA0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dzQWx0SCA9IGZhTGVmdFJpZ2h0O1xuY29uc3QgZmFCb3hlc1BhY2tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94ZXMtcGFja2luZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRjN1wiLCBcIk0yNTYgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhMNTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxMC43IDBjMS44LTUgMi43LTEwLjQgMi43LTE2bDAtMjQyLjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTExMiAwIDAtODB6TTU3MS4zIDM0Ny4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC02NC02NGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDgwIDMxMC42IDQ4MCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTEyMS40IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHpNMCAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDM1MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNkwxNiAyMjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0zNTIgODBsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIyNCAzMjAgMHpNMTQ0IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC05NiAwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQXJyb3dMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtbGVmdFwiXSwgXCJmMGE4XCIsIFwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0yMTUgMTI3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNzEgNzFMMzkyIDIzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjE0LjEgMCA3MSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwMyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDIxNSAxMjd6XCJdXG59O1xuY29uc3QgZmFBcnJvd0NpcmNsZUxlZnQgPSBmYUNpcmNsZUFycm93TGVmdDtcbmNvbnN0IGZhR3JvdXBBcnJvd3NSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JvdXAtYXJyb3dzLXJvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRmNlwiLCBcIk0yMDEuMSA3MS45YzE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44cy0yMi45LTI2LjYtMzkuOC0yMS41Yy0yMS41IDYuNC00MS44IDE1LjUtNjAuNiAyN0MxMTQuMyAzNCAxMDUuNCAzMiA5NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZjMCA5LjQgMiAxOC4zIDUuNiAyNi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC42Yy01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWM0LjMtMTQuNiAxMC40LTI4LjUgMTcuOS00MS40YzIgLjIgNC4xIC4zIDYuMSAuM2MzNS4zIDAgNjQtMjguNyA2NC02NGMwLTIuMS0uMS00LjEtLjMtNi4xYzEyLjktNy41IDI2LjgtMTMuNiA0MS40LTE3Ljl6bTEyOC02MS4zYy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGMxNC42IDQuMyAyOC41IDEwLjQgNDEuNCAxNy45Yy0uMiAyLS4zIDQuMS0uMyA2LjFjMCAzNS4zIDI4LjcgNjQgNjQgNjRjMi4xIDAgNC4xLS4xIDYuMi0uM2M3LjUgMTIuOSAxMy42IDI2LjggMTcuOSA0MS40YzUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC42YzMuNi04IDUuNi0xNi45IDUuNi0yNi4zYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy05LjQgMC0xOC4zIDItMjYuMyA1LjZjLTE4LjctMTEuNS0zOS0yMC42LTYwLjYtMjd6TTcxLjkgMzEwLjljLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41cy0yNi42IDIyLjktMjEuNSAzOS44YzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC42QzM0IDM5Ny43IDMyIDQwNi42IDMyIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGM5LjQgMCAxOC4zLTIgMjYuMy01LjZjMTguNyAxMS41IDM5IDIwLjYgNjAuNiAyN2MxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTE0LjYtNC4zLTI4LjUtMTAuNC00MS40LTE3LjljLjItMiAuMy00LjEgLjMtNi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy0yLjEgMC00LjEgLjEtNi4yIC4zYy03LjUtMTIuOS0xMy42LTI2LjgtMTcuOS00MS40em00MjkuNCAxOC4zYzUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtNC4zIDE0LjYtMTAuNCAyOC41LTE3LjkgNDEuNGMtMi0uMi00LjEtLjMtNi4yLS4zYy0zNS4zIDAtNjQgMjguNy02NCA2NGMwIDIuMSAuMSA0LjEgLjMgNi4yYy0xMi45IDcuNS0yNi44IDEzLjYtNDEuNCAxNy45Yy0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC42LTI3YzggMy42IDE2LjkgNS42IDI2LjMgNS42YzM1LjMgMCA2NC0yOC43IDY0LTY0YzAtOS40LTItMTguMy01LjYtMjYuM2MxMS41LTE4LjcgMjAuNi0zOSAyNy02MC42ek0xOTIuOCAyNTYuOGMwLTE1LjYgNS42LTI5LjkgMTQuOS00MS4xTDIyMyAyMzFjNi42IDYuNiAxNy44IDEuOSAxNy44LTcuNGwwLTYwLjVjMC01LjctNC43LTEwLjQtMTAuNC0xMC40bC02MC41IDBjLTkuMyAwLTEzLjkgMTEuMi03LjQgMTcuOGwxMS4yIDExLjJjLTE3LjkgMTkuOC0yOC45IDQ2LjItMjguOSA3NS4xYzAgNDMuNiAyNC45IDgxLjMgNjEuMSA5OS44YzExLjggNiAyNi4zIDEuNCAzMi4zLTEwLjRzMS40LTI2LjMtMTAuNC0zMi4zYy0yMC44LTEwLjYtMzQuOS0zMi4yLTM0LjktNTd6bTkzLjEtNTguNmMyMC44IDEwLjYgMzQuOSAzMi4yIDM0LjkgNTdjMCAxNS42LTUuNiAyOS45LTE0LjkgNDEuMUwyOTAuNiAyODFjLTYuNi02LjYtMTcuOC0xLjktMTcuOCA3LjRsMCA2MC41YzAgNS43IDQuNyAxMC40IDEwLjQgMTAuNGw2MC41IDBjOS4zIDAgMTMuOS0xMS4yIDcuNC0xNy44bC0xMS4yLTExLjJjMTcuOS0xOS44IDI4LjktNDYuMiAyOC45LTc1LjFjMC00My42LTI0LjktODEuMy02MS4xLTk5LjhjLTExLjgtNi0yNi4zLTEuNC0zMi4zIDEwLjRzLTEuNCAyNi4zIDEwLjQgMzIuM3pcIl1cbn07XG5jb25zdCBmYUJvd2xGb29kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvd2wtZm9vZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRjNlwiLCBcIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGMuNSAwIDEuMSAwIDEuNiAwQzczIDkxLjUgMTA1LjMgNjQgMTQ0IDY0YzE1IDAgMjkgNC4xIDQwLjkgMTEuMkMxOTguMiA0OS42IDIyNS4xIDMyIDI1NiAzMnM1Ny44IDE3LjYgNzEuMSA0My4yQzMzOSA2OC4xIDM1MyA2NCAzNjggNjRjMzguNyAwIDcxIDI3LjUgNzguNCA2NGMuNSAwIDEuMSAwIDEuNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIyNEMzLjEgMjE0LjYgMCAyMDMuNyAwIDE5MnptMCA5MS40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNGMwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpcIl1cbn07XG5jb25zdCBmYUNhbmR5Q2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW5keS1jYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzg2XCIsIFwiTTM0OC44IDEzMS41YzMuNy0yLjMgNy45LTMuNSAxMi4yLTMuNWMxMi43IDAgMjMgMTAuMyAyMyAyM2wwIDUuNmMwIDkuOS01LjEgMTkuMS0xMy41IDI0LjNMMzAuMSAzOTMuN0MuMSA0MTIuNS05IDQ1MS45IDkuNyA0ODEuOXM1OC4yIDM5LjEgODguMiAyMC40TDQzOC40IDI4OS41YzQ1LjgtMjguNiA3My42LTc4LjggNzMuNi0xMzIuOGwwLTUuNkM1MTIgNjcuNiA0NDQuNCAwIDM2MSAwYy0yOC4zIDAtNTYgOC04MC4xIDIzTDI1NC4xIDM5LjdjLTMwIDE4LjctMzkuMSA1OC4yLTIwLjQgODguMnM1OC4yIDM5LjEgODguMiAyMC40bDI2LjgtMTYuOHpNMjk4LjQgNDkuOGM5LjItNS43IDE5LjEtMTAuMSAyOS40LTEzLjFMMzQ4IDk3LjVjLTUuNyAxLjQtMTEuMiAzLjctMTYuMyA2LjhsLTEyLjYgNy45TDI5OC40IDQ5Ljh6bTg4LjUgNTIuN2w0Ni4yLTQ2LjJjOC41IDYuNSAxNi4xIDE0LjEgMjIuNiAyMi42bC00Ni4yIDQ2LjJjLTUuMS05LjYtMTMtMTcuNS0yMi42LTIyLjZ6bTI4LjkgNTkuM2w2MS42IDIwLjVjLTIuMiAxMC41LTUuOCAyMC43LTEwLjUgMzAuMmwtNjItMjAuN2M2LjItOC44IDEwLjEtMTkuMSAxMS0zMC4xem0tODYuMSA4Mi41bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXptLTEwNy4yIDY3bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXpNMTE5LjMgMzc1LjdsNjAuNCAzNy43LTMwLjIgMTguOUw4OS4xIDM5NC42bDMwLjItMTguOXpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bldpZGVTaG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLXdpZGUtc2hvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYW1vdW50LWFzY1wiLCBcInNvcnQtYW1vdW50LWRvd25cIl0sIFwiZjE2MFwiLCBcIk0xNTEuNiA0NjkuNkMxNDUuNSA0NzYuMiAxMzcgNDgwIDEyOCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDk2IDM2NS43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIwIDk2elwiXVxufTtcbmNvbnN0IGZhU29ydEFtb3VudEFzYyA9IGZhQXJyb3dEb3duV2lkZVNob3J0O1xuY29uc3QgZmFTb3J0QW1vdW50RG93biA9IGZhQXJyb3dEb3duV2lkZVNob3J0O1xuY29uc3QgZmFDbG91ZEJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtYm9sdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc4NSwgXCJ0aHVuZGVyc3Rvcm1cIl0sIFwiZjc2Y1wiLCBcIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDQ3LjIgMEwyOTAgMjAyLjVjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDMzMy43IDMyMGwxOC4zIDAgNjQgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMGMxLjEtNS4yIDEuNi0xMC41IDEuNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MGMtMjQuMyAwLTQ2LjEgMTAuOS02MC44IDI4QzI1Ni41IDI0LjMgMjE5LjEgMCAxNzYgMEMxMTQuMSAwIDY0IDUwLjEgNjQgMTEyYzAgNy4xIC43IDE0LjEgMS45IDIwLjhDMjcuNiAxNDUuNCAwIDE4MS41IDAgMjI0em0zMzAuMSAzLjZjLTUuOC00LjctMTQuMi00LjctMjAuMS0uMWwtMTYwIDEyOGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOHM4LjMgMTAuNyAxNS4xIDEwLjdsNzAuMSAwTDE3Ny43IDQ4OC44Yy0zLjQgNi43LTEuNiAxNC45IDQuMyAxOS42czE0LjIgNC43IDIwLjEgLjFsMTYwLTEyOGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44cy04LjMtMTAuNy0xNS4xLTEwLjdsLTcwLjEgMCA1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4yLTE5LjZ6XCJdXG59O1xuY29uc3QgZmFUaHVuZGVyc3Rvcm0gPSBmYUNsb3VkQm9sdDtcbmNvbnN0IGZhVGV4dFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RleHQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInJlbW92ZS1mb3JtYXRcIl0sIFwiZjg3ZFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDM1NS43IDI1My41IDQwMC4yIDk2IDUwMyA5NiA0OTcgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NzcuNiA2MS4zIDU1NC43IDMyIDUyMy41IDMyTDM3Ni4xIDMybC0uMyAwTDIwNC41IDMyYy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC02LjMgMjUuMkwzOC44IDUuMXptMTY4IDEzMS43Yy4xLS4zIC4yLS43IC4zLTFMMjE3IDk2bDExNi43IDBMMzAxLjMgMjEwLjhsLTk0LjUtNzQuMXpNMjQzLjMgNDE2TDE5MiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNy42LTYyLjFMMjcyLjkgMzExIDI0My4zIDQxNnpcIl1cbn07XG5jb25zdCBmYVJlbW92ZUZvcm1hdCA9IGZhVGV4dFNsYXNoO1xuY29uc3QgZmFGYWNlU21pbGVXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc21pbGUtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyMSwgXCJzbWlsZS13aW5rXCJdLCBcImY0ZGFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC4xIDMyNS41QzE4MiAzNDYuMiAyMTIuNiAzNjggMjU2IDM2OHM3NC0yMS44IDkxLjktNDIuNWM1LjgtNi43IDE1LjktNy40IDIyLjYtMS42czcuNCAxNS45IDEuNiAyMi42QzM0OS44IDM3Mi4xIDMxMS4xIDQwMCAyNTYgNDAwcy05My44LTI3LjktMTE2LjEtNTMuNWMtNS44LTYuNy01LjEtMTYuOCAxLjYtMjIuNnMxNi44LTUuMSAyMi42IDEuNnpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE1Ni40IDI1LjZjLTUuMyA3LjEtMTUuMyA4LjUtMjIuNCAzLjJzLTguNS0xNS4zLTMuMi0yMi40YzMwLjQtNDAuNSA5MS4yLTQwLjUgMTIxLjYgMGM1LjMgNy4xIDMuOSAxNy4xLTMuMiAyMi40cy0xNy4xIDMuOS0yMi40LTMuMmMtMTcuNi0yMy41LTUyLjgtMjMuNS03MC40IDB6XCJdXG59O1xuY29uc3QgZmFTbWlsZVdpbmsgPSBmYUZhY2VTbWlsZVdpbms7XG5jb25zdCBmYUZpbGVXb3JkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtd29yZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjMlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTExMSAyNTcuMWwyNi44IDg5LjIgMzEuNi05MC4zYzMuNC05LjYgMTIuNS0xNi4xIDIyLjctMTYuMXMxOS4zIDYuNCAyMi43IDE2LjFsMzEuNiA5MC4zTDI3MyAyNTcuMWMzLjgtMTIuNyAxNy4yLTE5LjkgMjkuOS0xNi4xczE5LjkgMTcuMiAxNi4xIDI5LjlsLTQ4IDE2MGMtMyAxMC0xMiAxNi45LTIyLjQgMTcuMXMtMTkuOC02LjItMjMuMi0xNi4xTDE5MiAzMzYuNmwtMzMuMyA5NS4zYy0zLjQgOS44LTEyLjggMTYuMy0yMy4yIDE2LjFzLTE5LjUtNy4xLTIyLjQtMTcuMWwtNDgtMTYwYy0zLjgtMTIuNyAzLjQtMjYuMSAxNi4xLTI5LjlzMjYuMSAzLjQgMjkuOSAxNi4xelwiXVxufTtcbmNvbnN0IGZhRmlsZVBvd2VycG9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wb3dlcnBvaW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM0XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTM2IDI0MGw2OCAwYzQyIDAgNzYgMzQgNzYgNzZzLTM0IDc2LTc2IDc2bC00NCAwIDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC01NiAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptNjggMTA0YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC00NCAwIDAgNTYgNDQgMHpcIl1cbn07XG5jb25zdCBmYUFycm93c0xlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3dzLWhcIl0sIFwiZjA3ZVwiLCBcIk00MDYuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNGwtMjkzLjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OGwyOTMuNSAwLTQxLjQgNDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpcIl1cbn07XG5jb25zdCBmYUFycm93c0ggPSBmYUFycm93c0xlZnRSaWdodDtcbmNvbnN0IGZhSG91c2VMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTBcIiwgXCJNMzg0IDQ4MGMwIDExLjcgMy4xIDIyLjYgOC42IDMybC0uNiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI0IDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjQgMCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQgMC0zMS45IDBjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMmwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0uOSAwLTEuOSAuMS0yLjhsMC02OS43LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ5MC43IDE2Ni4zQzQ0Ny4yIDE4MS43IDQxNiAyMjMuMiA0MTYgMjcybDAgMjQuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwwIDEyOHpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ2xvdWRBcnJvd0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtYXJyb3ctZG93bicsXG4gIGljb246IFs2NDAsIDUxMiwgWzYyMzM3LCBcImNsb3VkLWRvd25sb2FkXCIsIFwiY2xvdWQtZG93bmxvYWQtYWx0XCJdLCBcImYwZWRcIiwgXCJNMTQ0IDQ4MEM2NC41IDQ4MCAwIDQxNS41IDAgMzM2YzAtNjIuOCA0MC4yLTExNi4yIDk2LjItMTM1LjljLS4xLTIuNy0uMi01LjQtLjItOC4xYzAtODguNCA3MS42LTE2MCAxNjAtMTYwYzU5LjMgMCAxMTEgMzIuMiAxMzguNyA4MC4yQzQwOS45IDEwMiA0MjguMyA5NiA0NDggOTZjNTMgMCA5NiA0MyA5NiA5NmMwIDEyLjItMi4zIDIzLjgtNi40IDM0LjZDNTk2IDIzOC40IDY0MCAyOTAuMSA2NDAgMzUyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zNjggMHptNzktMTY3bDgwIDgwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTM5IDM5TDM0NCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMzQuMS0zOS0zOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYUNsb3VkRG93bmxvYWQgPSBmYUNsb3VkQXJyb3dEb3duO1xuY29uc3QgZmFDbG91ZERvd25sb2FkQWx0ID0gZmFDbG91ZEFycm93RG93bjtcbmNvbnN0IGZhQ2hpbGRyZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGRyZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZTFcIiwgXCJNMTYwIDBhNjQgNjQgMCAxIDEgMCAxMjhBNjQgNjQgMCAxIDEgMTYwIDB6TTg4IDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsMzEuMS05My40TDU3LjUgMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJzLTE2LjgtMzAuNy02LjItNDQuOEw2NS40IDIwN2MyMi40LTI5LjYgNTcuNS00NyA5NC42LTQ3czcyLjIgMTcuNCA5NC42IDQ3bDU4LjkgNzcuN2MxMC43IDE0LjEgNy45IDM0LjItNi4yIDQ0LjhzLTM0LjIgNy45LTQ0LjgtNi4ybC0yOC42LTM3LjhMMjY1IDM3OC45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMUwyMzIgNDAwbDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MC0xNiAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6TTQ4MCAwYTY0IDY0IDAgMSAxIDAgMTI4QTY0IDY0IDAgMSAxIDQ4MCAwem0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41TDM5NS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMNTUyIDMwMC41IDU1MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwelwiXVxufTtcbmNvbnN0IGZhQ2hhbGtib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFsa2JvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJibGFja2JvYXJkXCJdLCBcImY1MWJcIiwgXCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2bDAgMjg4IDY0IDBMOTYgOTZsMzg0IDAgMCAyODggNjQgMCAwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAzMnpNMjI0IDM4NGwwIDMyTDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQmxhY2tib2FyZCA9IGZhQ2hhbGtib2FyZDtcbmNvbnN0IGZhVXNlckxhcmdlU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1sYXJnZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci1hbHQtc2xhc2hcIl0sIFwiZjRmYVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDM4MS45IDI3NGM0OC41LTIzLjIgODIuMS03Mi43IDgyLjEtMTMwQzQ2NCA2NC41IDM5OS41IDAgMzIwIDBDMjUwLjQgMCAxOTIuNCA0OS4zIDE3OC45IDExNC45TDM4LjggNS4xek01NDUuNSA1MTJMNTI4IDUxMiAyODQuMyAzMjBsLTU5IDBDMTM2LjIgMzIwIDY0IDM5Mi4yIDY0IDQ4MS4zYzAgMTcgMTMuOCAzMC43IDMwLjcgMzAuN2w0NTAuNiAwIC4zIDB6XCJdXG59O1xuY29uc3QgZmFVc2VyQWx0U2xhc2ggPSBmYVVzZXJMYXJnZVNsYXNoO1xuY29uc3QgZmFFbnZlbG9wZU9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtb3BlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTM1XSwgXCJmMmI2XCIsIFwiTTY0IDIwOC4xTDI1NiA2NS45IDQ0OCAyMDguMWwwIDQ3LjRMMjg5LjUgMzczYy05LjcgNy4yLTIxLjQgMTEtMzMuNSAxMXMtMjMuOC0zLjktMzMuNS0xMUw2NCAyNTUuNWwwLTQ3LjR6TTI1NiAwYy0xMi4xIDAtMjMuOCAzLjktMzMuNSAxMUwyNS45IDE1Ni43QzkuNiAxNjguOCAwIDE4Ny44IDAgMjA4LjFMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMzkuOWMwLTIwLjMtOS42LTM5LjQtMjUuOS01MS40TDI4OS41IDExQzI3OS44IDMuOSAyNjguMSAwIDI1NiAwelwiXVxufTtcbmNvbnN0IGZhSGFuZHNoYWtlU2ltcGxlU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiaGFuZHNoYWtlLWFsdC1zbGFzaFwiXSwgXCJlMDVmXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTEzNS0xMDUuOGMtMS4xLTExLjQtNi4zLTIyLjMtMTUuMy0zMC43bC0xMzQuMi0xMjMtMjMuNCAxOC4yLTI2LTIwLjMgNzcuMi02MC4xYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJsNDEuOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC03NiAwLTQgMC0uNyAwLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4ybC04OS43IDcyLjYtMjUuOC0yMC4zIDgxLjgtNjYuMmMtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC0zNS41IDIzLjdMMzguOCA1LjF6TTAgMTc2TDAgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNkw0MS4yIDEyOC41QzE3LjkgMTMxLjggMCAxNTEuOCAwIDE3NnpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZUFsdFNsYXNoID0gZmFIYW5kc2hha2VTaW1wbGVTbGFzaDtcbmNvbnN0IGZhTWF0dHJlc3NQaWxsb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWF0dHJlc3MtcGlsbG93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTI1XCIsIFwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptMzIgMzg0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDI4OCA2NGwwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyelwiXVxufTtcbmNvbnN0IGZhR3VhcmFuaVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3VhcmFuaS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMTlhXCIsIFwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM0LjdDNjkuMiA4MS45IDAgMTYwLjkgMCAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNsMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNC43YzkwLjgtMTUuMiAxNjAtOTQuMiAxNjAtMTg5LjNjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwIDAtOTJjMjIuMSA1LjcgNDEuOCAxNy4xIDU3LjYgMzIuNmMxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk5IDkyIDI2My41IDczLjMgMjI0IDY2LjdMMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjAgMTMyTDE2MCAzODBjLTU1LjItMTQuMi05Ni02NC4zLTk2LTEyNHM0MC44LTEwOS44IDk2LTEyNHpNMjI0IDM4MGwwLTkyIDkyIDBjLTExLjYgNDUtNDcgODAuNC05MiA5MnpcIl1cbn07XG5jb25zdCBmYUFycm93c1JvdGF0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtcm90YXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDcyLCBcInJlZnJlc2hcIiwgXCJzeW5jXCJdLCBcImYwMjFcIiwgXCJNMTA1LjEgMjAyLjZjNy43LTIxLjggMjAuMi00Mi4zIDM3LjgtNTkuOGM2Mi41LTYyLjUgMTYzLjgtNjIuNSAyMjYuMyAwTDM4Ni4zIDE2MCAzNTIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMS41IDBjMCAwIDAgMCAwIDBsLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM1LjJMNDE0LjQgOTcuNmMtODcuNS04Ny41LTIyOS4zLTg3LjUtMzE2LjggMEM3My4yIDEyMiA1NS42IDE1MC43IDQ0LjggMTgxLjRjLTUuOSAxNi43IDIuOSAzNC45IDE5LjUgNDAuOHMzNC45LTIuOSA0MC44LTE5LjV6TTM5IDI4OS4zYy01IDEuNS05LjggNC4yLTEzLjcgOC4yYy00IDQtNi43IDguOC04LjEgMTRjLS4zIDEuMi0uNiAyLjUtLjggMy44Yy0uMyAxLjctLjQgMy40LS40IDUuMUwxNiA0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1LjEgMTcuNiAxNy41YzAgMCAwIDAgMCAwYzg3LjUgODcuNCAyMjkuMyA4Ny40IDMxNi43IDBjMjQuNC0yNC40IDQyLjEtNTMuMSA1Mi45LTgzLjhjNS45LTE2LjctMi45LTM0LjktMTkuNS00MC44cy0zNC45IDIuOS00MC44IDE5LjVjLTcuNyAyMS44LTIwLjIgNDIuMy0zNy44IDU5LjhjLTYyLjUgNjIuNS0xNjMuOCA2Mi41LTIyNi4zIDBsLS4xLS4xTDEyNS42IDM1MmwzNC40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNDguNCAyODhjLTEuNiAwLTMuMiAuMS00LjggLjNzLTMuMSAuNS00LjYgMXpcIl1cbn07XG5jb25zdCBmYVJlZnJlc2ggPSBmYUFycm93c1JvdGF0ZTtcbmNvbnN0IGZhU3luYyA9IGZhQXJyb3dzUm90YXRlO1xuY29uc3QgZmFGaXJlRXh0aW5ndWlzaGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtZXh0aW5ndWlzaGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTE5XSwgXCJmMTM0XCIsIFwiTTUwMC4zIDcuM0M1MDcuNyAxMy4zIDUxMiAyMi40IDUxMiAzMmwwIDk2YzAgOS42LTQuMyAxOC43LTExLjcgMjQuN3MtMTcuMiA4LjUtMjYuNiA2LjZsLTE2MC0zMkMzMDEuNSAxMjQuOSAyOTIgMTE1LjcgMjg5IDEwNGwtNjUgMCAwIDM0LjhjMzcuOCAxOCA2NCA1Ni41IDY0IDEwMS4ybDAgMTQ0TDY0IDM4NGwwLTE0NGMwLTQ0LjcgMjYuMi04My4yIDY0LTEwMS4ybDAtMjguOGMtMzYuMiAxMS4xLTY2IDM2LjktODIuMyA3MC41Yy01LjggMTEuOS0yMC4yIDE2LjktMzIuMSAxMS4xUy0zLjMgMTcxLjQgMi41IDE1OS41QzI2LjcgMTA5LjggNzIuNyA3Mi42IDEyOCA2MC40TDEyOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjQgNjUgMGMzLTExLjcgMTIuNS0yMC45IDI0LjctMjMuNGwxNjAtMzJjOS40LTEuOSAxOS4xIC42IDI2LjYgNi42ek0yODggNDE2bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIgMjI0IDB6TTE3NiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDcnV6ZWlyb1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3J1emVpcm8tc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTE1MlwiLCBcIk05NiAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjNDEgMCA3OC4zIDE1LjQgMTA2LjcgNDAuN2MxMy4yIDExLjggMzMuNCAxMC43IDQ1LjItMi41czEwLjctMzMuNC0yLjUtNDUuMmMtMzkuNi0zNS41LTkyLTU3LTE0OS4zLTU3QzEzMi4zIDMyIDMyIDEzMi4zIDMyIDI1NnMxMDAuMyAyMjQgMjI0IDIyNGM1Ny40IDAgMTA5LjctMjEuNiAxNDkuMy01N2MxMy4yLTExLjggMTQuMy0zMiAyLjUtNDUuMnMtMzItMTQuMy00NS4yLTIuNUMzMzQuMyA0MDAuNiAyOTcgNDE2IDI1NiA0MTZsMC05NiAwLTguN2MwLTEyLjggMTAuNC0yMy4zIDIzLjMtMjMuM2M0LjYgMCA5LjEgMS40IDEyLjkgMy45bDEwLjEgNi43YzE0LjcgOS44IDM0LjYgNS44IDQ0LjQtOC45czUuOC0zNC42LTguOS00NC40bC0xMC4xLTYuN2MtMTQuMy05LjYtMzEuMi0xNC43LTQ4LjQtMTQuN2MtMTIuNCAwLTI0LjIgMi42LTM0LjkgNy4zYy01LjUtNC41LTEyLjYtNy4zLTIwLjMtNy4zYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDU1LjMgMCA4LjcgMCA4Mi43QzEzNS41IDM3OCA5NiAzMjEuNiA5NiAyNTZ6XCJdXG59O1xuY29uc3QgZmFHcmVhdGVyVGhhbkVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbi1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzMlwiLCBcIk01Mi4xIDkzLjdDMzUuNyA4Ny4xIDI3LjcgNjguNSAzNC4zIDUyLjFzMjUuMi0yNC40IDQxLjYtMTcuOGwzMjAgMTI4QzQwOCAxNjcuMSA0MTYgMTc4LjkgNDE2IDE5MnMtOCAyNC45LTIwLjEgMjkuN2wtMzIwIDEyOGMtMTYuNCA2LjYtMzUtMS40LTQxLjYtMTcuOHMxLjQtMzUgMTcuOC00MS42TDI5Ny44IDE5MiA1Mi4xIDkzLjd6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwelwiXVxufTtcbmNvbnN0IGZhU2hpZWxkSGFsdmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1oYWx2ZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNoaWVsZC1hbHRcIl0sIFwiZjNlZFwiLCBcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuNyA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMmMtLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yYy0xNi43IDgtMzYuMSA4LTUyLjggMEM1Ny4zIDQyMC43IDE2LjUgMjM5LjIgMTYgMTQwYy0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni44IDEgMjUxLjQgMCAyNTYgMHptMCA2Ni44bDAgMzc4LjFDMzk0IDM3OCA0MzEuMSAyMzAuMSA0MzIgMTQxLjRMMjU2IDY2LjhzMCAwIDAgMHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEFsdCA9IGZhU2hpZWxkSGFsdmVkO1xuY29uc3QgZmFCb29rQXRsYXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1hdGxhcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYXRsYXNcIl0sIFwiZjU1OFwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjQ3LjQgMjgzLjhjLTMuNyAzLjctNi4yIDQuMi03LjQgNC4ycy0zLjctLjUtNy40LTQuMmMtMy44LTMuNy04LTEwLTExLjgtMTguOWMtNi4yLTE0LjUtMTAuOC0zNC4zLTEyLjItNTYuOWw2MyAwYy0xLjUgMjIuNi02IDQyLjQtMTIuMiA1Ni45Yy0zLjggOC45LTggMTUuMi0xMS44IDE4Ljl6bTQyLjctOS45YzcuMy0xOC4zIDEyLTQxLjEgMTMuNC02NS45bDMxLjEgMGMtNC43IDI3LjktMjEuNCA1MS43LTQ0LjUgNjUuOXptMC0xNjMuOGMyMy4yIDE0LjIgMzkuOSAzOCA0NC41IDY1LjlsLTMxLjEgMGMtMS40LTI0LjctNi4xLTQ3LjUtMTMuNC02NS45ek0zNjggMTkyYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTE0NS4zIDIwOGwzMS4xIDBjMS40IDI0LjcgNi4xIDQ3LjUgMTMuNCA2NS45Yy0yMy4yLTE0LjItMzkuOS0zOC00NC41LTY1Ljl6bTMxLjEtMzJsLTMxLjEgMGM0LjctMjcuOSAyMS40LTUxLjcgNDQuNS02NS45Yy03LjMgMTguMy0xMiA0MS4xLTEzLjQgNjUuOXptNTYuMS03NS44YzMuNy0zLjcgNi4yLTQuMiA3LjQtNC4yczMuNyAuNSA3LjQgNC4yYzMuOCAzLjcgOCAxMCAxMS44IDE4LjljNi4yIDE0LjUgMTAuOCAzNC4zIDEyLjIgNTYuOWwtNjMgMGMxLjUtMjIuNiA2LTQyLjQgMTIuMi01Ni45YzMuOC04LjkgOC0xNS4yIDExLjgtMTguOXpcIl1cbn07XG5jb25zdCBmYUF0bGFzID0gZmFCb29rQXRsYXM7XG5jb25zdCBmYVZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpcnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDc0XCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExLjVjMCA0OS45LTYwLjMgNzQuOS05NS42IDM5LjZMMTIwLjIgNzVDMTA3LjcgNjIuNSA4Ny41IDYyLjUgNzUgNzVzLTEyLjUgMzIuOCAwIDQ1LjNsOC4yIDguMkMxMTguNCAxNjMuNyA5My40IDIyNCA0My41IDIyNEwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTEuNSAwYzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42TDc1IDM5MS44Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDguMi04LjJjMzUuMy0zNS4zIDk1LjYtMTAuMyA5NS42IDM5LjZsMCAxMS41YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMS41YzAtNDkuOSA2MC4zLTc0LjkgOTUuNi0zOS42bDguMiA4LjJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOC4yLTguMmMtMzUuMy0zNS4zLTEwLjMtOTUuNiAzOS42LTk1LjZsMTEuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDBjLTQ5LjkgMC03NC45LTYwLjMtMzkuNi05NS42bDguMi04LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTguMiA4LjJDMzQ4LjMgMTE4LjQgMjg4IDkzLjQgMjg4IDQzLjVMMjg4IDMyek0xNzYgMjI0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFFbnZlbG9wZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRlOFwiLCBcIk00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmMwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40TDIzNi44IDMxMy42YzExLjQgOC41IDI3IDguNSAzOC40IDBsNTcuNC00M2MyMy45LTU5LjggNzkuNy0xMDMuMyAxNDYuMy0xMDkuOGwxMy45LTEwLjRjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMjk0LjQgMzM5LjJjLTIyLjggMTcuMS01NCAxNy4xLTc2LjggMEwwIDE3NiAwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyOTYuMiAwQzMzNS4xIDQxNy42IDMyMCAzNzguNSAzMjAgMzM2YzAtNS42IC4zLTExLjEgLjgtMTYuNmwtMjYuNCAxOS44ek02NDAgMzM2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzUzLjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhTGF5ZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXllci1ncm91cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjVmZFwiLCBcIk0yNjQuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDE0OS44QzM3LjQgMTQ1LjggMzIgMTM3LjMgMzIgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyNjQuNSA1LjJ6TTQ3Ni45IDIwOS42bDUzLjIgMjQuNmM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDQ1LjkgMjc3LjhDMzcuNCAyNzMuOCAzMiAyNjUuMyAzMiAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDUzLjItMjQuNiAxNTIgNzAuMmMyMy40IDEwLjggNTAuNCAxMC44IDczLjggMGwxNTItNzAuMnptLTE1MiAxOTguMmwxNTItNzAuMiA1My4yIDI0LjZjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDQwNS44QzM3LjQgNDAxLjggMzIgMzkzLjMgMzIgMzg0czUuNC0xNy45IDEzLjktMjEuOGw1My4yLTI0LjYgMTUyIDcwLjJjMjMuNCAxMC44IDUwLjQgMTAuOCA3My44IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NUb0RvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdG8tZG90JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGJlXCIsIFwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy05LjItOS4yLTExLjktMjIuOS02LjktMzQuOXMxNi42LTE5LjggMjkuNi0xOS44bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlzLTE2LjYgMTkuOC0yOS42IDE5LjhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDY0LTY0YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45czE5LjggMTYuNiAxOS44IDI5LjZsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUFyY2h3YXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJjaHdheScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1N1wiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgNjQgMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDY0IDAgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI4OEwzMiAxMjhsMCAyODh6XCJdXG59O1xuY29uc3QgZmFIZWFydENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0LWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmZFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNmwwLTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xbDAgNS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlQ2hpbW5leUNyYWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXktY3JhY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhvdXNlLWRhbWFnZVwiXSwgXCJmNmYxXCIsIFwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xbC0zMiAwIC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNsLTEyMi4xIDBMMjg4IDQ0OGw4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDI1MC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjg4IDM2OGwtODUuNSA3MS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNUwyMzAuNCA1MTJsLTEwMi4zIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNDE2IDEwMC43IDQxNiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTIxIDUyLjggNDYuNGM4IDcgMTIgMTUgMTEgMjR6XCJdXG59O1xuY29uc3QgZmFIb3VzZURhbWFnZSA9IGZhSG91c2VDaGltbmV5Q3JhY2s7XG5jb25zdCBmYUZpbGVaaXBwZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS16aXBwZXInLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtYXJjaGl2ZVwiXSwgXCJmMWM2XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS02LjMgNzEuOGMzLjctMTQgMTYuNC0yMy44IDMwLjktMjMuOGwxNC44IDBjMTQuNSAwIDI3LjIgOS43IDMwLjkgMjMuOGwyMy41IDg4LjJjMS40IDUuNCAyLjEgMTAuOSAyLjEgMTYuNGMwIDM1LjItMjguOCA2My43LTY0IDYzLjdzLTY0LTI4LjUtNjQtNjMuN2MwLTUuNSAuNy0xMS4xIDIuMS0xNi40bDIzLjUtODguMnpNMTEyIDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhRmlsZUFyY2hpdmUgPSBmYUZpbGVaaXBwZXI7XG5jb25zdCBmYVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NjMyLCA5NzIzLCA5NzI0LCA2MTU5MF0sIFwiZjBjOFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2elwiXVxufTtcbmNvbnN0IGZhTWFydGluaUdsYXNzRW1wdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcy1lbXB0eScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xhc3MtbWFydGluaVwiXSwgXCJmMDAwXCIsIFwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuMyAyMjQgNDQ4bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE3OC43TDUwMi42IDU0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMCA0ODAgMEwzMiAwek0yNTYgMjEwLjdMMTA5LjMgNjRsMjkzLjUgMEwyNTYgMjEwLjd6XCJdXG59O1xuY29uc3QgZmFHbGFzc01hcnRpbmkgPSBmYU1hcnRpbmlHbGFzc0VtcHR5O1xuY29uc3QgZmFDb3VjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3VjaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRiOFwiLCBcIk02NCAxNjBDNjQgODkuMyAxMjEuMyAzMiAxOTIgMzJsMjU2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMy42Yy0zNi41IDcuNC02NCAzOS43LTY0IDc4LjRsMCA0OC0zODQgMCAwLTQ4YzAtMzguNy0yNy41LTcxLTY0LTc4LjRMNjQgMTYwek01NDQgMjcyYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2M1LTEuOCAxMC40LTIuNyAxNi0yLjdjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDk2IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhjNS42IDAgMTEgMSAxNiAyLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgNDggMCAzMiAzMiAwIDM4NCAwIDMyIDAgMC0zMiAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ2VkaVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2VkaS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMGRmXCIsIFwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM0LjdDMTAxLjIgODEuOSAzMiAxNjAuOSAzMiAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNsMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNC43YzMwLjktNS4yIDU5LjItMTcuNyA4My4yLTM1LjhjMTQuMS0xMC42IDE3LTMwLjcgNi40LTQ0LjhzLTMwLjctMTctNDQuOC02LjRjLTEzLjIgOS45LTI4LjMgMTcuMy00NC44IDIxLjZMMjU2IDEzMmMxNi40IDQuMiAzMS42IDExLjYgNDQuOCAyMS42YzE0LjEgMTAuNiAzNC4yIDcuOCA0NC44LTYuNHM3LjgtMzQuMi02LjQtNDQuOGMtMjQtMTgtNTIuNC0zMC42LTgzLjItMzUuOEwyNTYgMzJ6TTE5MiAxMzJMMTkyIDM4MGMtNTUuMi0xNC4yLTk2LTY0LjMtOTYtMTI0czQwLjgtMTA5LjggOTYtMTI0elwiXVxufTtcbmNvbnN0IGZhSXRhbGljID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2l0YWxpYycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAzM1wiLCBcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTU4LjcgMEwxNjAgNDE2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMEwyMjQgOTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhVGFibGVDZWxsc0NvbHVtbkxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtY29sdW1uLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2NzhcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY1LjFjLTM3LjggNS40LTY5LjQgMjkuNi04NS4yIDYyLjlMMzYwIDIyNGwwIDY0IDU2IDAgMCA4LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTI0IDAgMCA2NCAyNCAwIDAgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMDggMGwwIDY0IDg4IDAgMC02NC04OCAwem0yNDAgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMjA4IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0wIDEyOGwwIDY0IDg4IDAgMC02NC04OCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFDaHVyY2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2h1cmNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTk2Ml0sIFwiZjUxZFwiLCBcIk0zNDQgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCA0Ni40TDE4My4zIDIxMGMtMTQuNSA4LjctMjMuMyAyNC4zLTIzLjMgNDEuMkwxNjAgNTEybDk2IDAgMC05NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgOTYgOTYgMCAwLTI2MC44YzAtMTYuOS04LjgtMzIuNS0yMy4zLTQxLjJMMzQ0IDE0Mi40IDM0NCA5NmwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI0LjkgMzMwLjNDOS41IDMzOC44IDAgMzU0LjkgMCAzNzIuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAtMjM4LjRMMjQuOSAzMzAuM3pNNTkyIDUxMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkxLjZjMC0xNy41LTkuNS0zMy42LTI0LjktNDIuMUw1MTIgMjczLjYgNTEyIDUxMmw4MCAwelwiXVxufTtcbmNvbnN0IGZhQ29tbWVudHNEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudHMtZG9sbGFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjUzXCIsIFwiTTQxNiAxNzZjMCA5Ny4yLTkzLjEgMTc2LTIwOCAxNzZjLTM4LjIgMC03My45LTguNy0xMDQuNy0yMy45Yy03LjUgNC0xNiA3LjktMjUuMiAxMS40QzU5LjggMzQ2LjQgMzcuOCAzNTIgMTYgMzUyYy02LjkgMC0xMy4xLTQuNS0xNS4yLTExLjFzLjItMTMuOCA1LjgtMTcuOWMwIDAgMCAwIDAgMHMwIDAgMCAwbC4yLS4yYy4yLS4yIC42LS40IDEuMS0uOGMxLS44IDIuNS0yIDQuMy0zLjdjMy42LTMuMyA4LjUtOC4xIDEzLjMtMTQuM2M1LjUtNyAxMC43LTE1LjQgMTQuMi0yNC43QzE0LjcgMjUwLjMgMCAyMTQuNiAwIDE3NkMwIDc4LjggOTMuMSAwIDIwOCAwUzQxNiA3OC44IDQxNiAxNzZ6TTIzMS41IDM4M0MzNDguOSAzNzIuOSA0NDggMjg4LjMgNDQ4IDE3NmMwLTUuMi0uMi0xMC40LS42LTE1LjVDNTU1LjEgMTY3LjEgNjQwIDI0My4yIDY0MCAzMzZjMCAzOC42LTE0LjcgNzQuMy0zOS42IDEwMy40YzMuNSA5LjQgOC43IDE3LjcgMTQuMiAyNC43YzQuOCA2LjIgOS43IDExIDEzLjMgMTQuM2MxLjggMS42IDMuMyAyLjkgNC4zIDMuN2MuNSAuNCAuOSAuNyAxLjEgLjhsLjIgLjJzMCAwIDAgMHMwIDAgMCAwYzUuNiA0LjEgNy45IDExLjMgNS44IDE3LjljLTIuMSA2LjYtOC4zIDExLjEtMTUuMiAxMS4xYy0yMS44IDAtNDMuOC01LjYtNjIuMS0xMi41Yy05LjItMy41LTE3LjgtNy40LTI1LjItMTEuNEM1MDUuOSA1MDMuMyA0NzAuMiA1MTIgNDMyIDUxMmMtOTUuNiAwLTE3Ni4yLTU0LjYtMjAwLjUtMTI5ek0yMjggNzJjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdMMjI4IDcyelwiXVxufTtcbmNvbnN0IGZhRGVtb2NyYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGVtb2NyYXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3NDdcIiwgXCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjNDNzEuMiAxLjggNzQgMCA3NyAwYzEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMUMxNzUuMiAuNyAxNzcuMSAwIDE3OSAwYzMgMCA1LjggMS44IDYuOCA0LjdjMi40IDYuNSA2LjIgMTguNCA2LjIgMjcuM2MwIDI2LjUtMjEuOSA0Mi0yOS41IDQ2LjZsNzYuMiA3Mi42YzYgNS43IDEzLjkgOC44IDIyLjEgOC44TDQ4MCAxNjBsMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3bDAgODcuNC0zNTIgMC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2wtMiAwQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuN2MwLTEyLjEgNC4xLTIzLjggMTEuNy0zMy4zTDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNDQ4IDM1Mmw5NiAwIDAgNjQgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xNjAgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0IDAtNjQgOTYgMCAxNjAgMHpNMjYwLjkgMjEwLjljLS45LTEuOC0yLjgtMi45LTQuOC0yLjlzLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS4zLTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjV6TTM2OC4xIDIwOGMtMiAwLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS40LTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjVjLS45LTEuOC0yLjgtMi45LTQuOC0yLjl6bTExNi44IDIuOWMtLjktMS44LTIuOC0yLjktNC44LTIuOXMtMy45IDEuMS00LjggMi45bC0xMC41IDIwLjUtMjMuNSAzLjNjLTIgLjMtMy43IDEuNi00LjMgMy41cy0uMSAzLjkgMS4zIDUuM2wxNyAxNi00IDIyLjZjLS4zIDEuOSAuNSAzLjkgMi4xIDVzMy44IDEuMyA1LjYgLjRsMjEtMTAuNyAyMSAxMC43YzEuOCAuOSA0IC44IDUuNi0uNHMyLjUtMy4xIDIuMS01bC00LTIyLjYgMTctMTZjMS41LTEuNCAyLTMuNCAxLjQtNS4zcy0yLjMtMy4yLTQuMy0zLjVsLTIzLjUtMy4zLTEwLjUtMjAuNXpcIl1cbn07XG5jb25zdCBmYVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneicsXG4gIGljb246IFszODQsIDUxMiwgWzEyMl0sIFwiNWFcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzMjAgMGMxMi40IDAgMjMuNyA3LjIgMjkgMTguNHMzLjYgMjQuNS00LjQgMzQuMUwxMDAuMyA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTEyLjQgMC0yMy43LTcuMi0yOS0xOC40cy0zLjYtMjQuNSA0LjQtMzQuMUwyODMuNyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhUGVyc29uU2tpaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1za2lpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5OTc1LCBcInNraWluZ1wiXSwgXCJmN2M5XCIsIFwiTTM4MC43IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTIuNyAyNjguOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4yTDIzMi43IDM2MS4zbDQ2LjItNjkuMi03NS4xLTc1LjFjLTE0LjYtMTQuNi0yMC40LTMzLjktMTguNC01Mi4xbDEwOC44IDUyIDM5LjMgMzkuM2MxNi4yIDE2LjIgMTguNyA0MS41IDYgNjAuNkwyODkuOCAzOTFsMTI4LjcgNjYuOGMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMDEuM0MxLjIgMjk1LjItMy40IDI4MC43IDIuNyAyNjguOXpNMTE4LjkgNjUuNkwxMzcgNzQuMmw4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTYuOSA1NC43IDI2LjJjMS41LS43IDMuMS0xLjQgNC43LTIuMWw4My40LTMzLjRjMzQuMi0xMy43IDcyLjggNC4yIDg0LjUgMzkuMmwxNy4xIDUxLjIgNTIuMSAyNi4xYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNsLTU4LjEtMjljLTExLjQtNS43LTIwLTE1LjctMjQuMS0yNy44bC01LjgtMTcuMy0yNy4zIDEyLjEtNi44IDMtNi43LTMuMkwxNTEuNSAxMTYuN2wtOS4yIDE4LjRjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTgtMTcuNi04LjRjLTgtMy44LTExLjMtMTMuNC03LjUtMjEuM3MxMy40LTExLjMgMjEuMy03LjV6XCJdXG59O1xuY29uc3QgZmFTa2lpbmcgPSBmYVBlcnNvblNraWluZztcbmNvbnN0IGZhUm9hZExvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY3XCIsIFwiTTI4OCAzMmwtNzQuOCAwYy0yNy4xIDAtNTEuMyAxNy4xLTYwLjMgNDIuNkwzNS4xIDQwNy4yYy0yLjEgNS45LTMuMSAxMi0zLjEgMTguMkMzMiA0NTUuNSA1Ni41IDQ4MCA4Ni42IDQ4MEwyODggNDgwbDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDMyIDAgMC0xMjhjMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNmMwLTU4LjMgNDQuNi0xMDYuMiAxMDEuNS0xMTEuNUw0ODcuMSA3NC42QzQ3OCA0OS4xIDQ1My45IDMyIDQyNi44IDMyTDM1MiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYScsXG4gIGljb246IFszODQsIDUxMiwgWzk3XSwgXCI0MVwiLCBcIk0yMjEuNSA1MS43QzIxNi42IDM5LjggMjA0LjkgMzIgMTkyIDMycy0yNC42IDcuOC0yOS41IDE5LjdsLTEyMCAyODgtNDAgOTZjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMOTMuMyAzODRsMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhsLTQwLTk2LTEyMC0yODh6TTI2NCAzMjBsLTE0NCAwIDcyLTE3Mi44TDI2NCAzMjB6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS1kb3duXCJdLCBcImUwM2ZcIiwgXCJNMTI4IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyNDkuOCAzMzIuNiAyNTYgMzQ5LjUgMjU2IDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45YzguMi0xMC42IDE1LjMtMjUuMiAxNS4zLTQyLjVMMTI4IDExMnpNMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMmwwIDE2NC40YzAgLjEtLjEgLjMtLjIgLjZjLS4yIC42LS44IDEuNi0xLjcgMi44QzQzLjIgMzA0LjIgMzIgMzM0LjggMzIgMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRjMC0zMy4yLTExLjItNjMuOC0zMC4xLTg4LjFjLS45LTEuMi0xLjUtMi4yLTEuNy0yLjhjLS4xLS4zLS4yLS41LS4yLS42TDI4OCAxMTJDMjg4IDUwLjEgMjM3LjkgMCAxNzYgMHptMCA0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuN2MwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDUwLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHptMzM2LTY0bC0zMiAwIDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOHpcIl1cbn07XG5jb25zdCBmYVRlbXBlcmF0dXJlRG93biA9IGZhVGVtcGVyYXR1cmVBcnJvd0Rvd247XG5jb25zdCBmYUZlYXRoZXJQb2ludGVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZlYXRoZXItcG9pbnRlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZmVhdGhlci1hbHRcIl0sIFwiZjU2YlwiLCBcIk0yNzguNSAyMTUuNkwyMyA0NzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3NC44LTc0LjhjNy40IDQuNiAxNS4zIDguMiAyMy44IDEwLjVDMjAwLjMgNDUyLjggMjcwIDQ1NC41IDMzOCA0MDkuNGMxMi4yLTguMSA1LjgtMjUuNC04LjgtMjUuNGwtMTYuMSAwYy01LjEgMC05LjItNC4xLTkuMi05LjJjMC00LjEgMi43LTcuNiA2LjUtOC44bDk3LjctMjkuM2MzLjQtMSA2LjQtMy4xIDguNC02LjFjNC40LTYuNCA4LjYtMTIuOSAxMi42LTE5LjZjNi4yLTEwLjMtMS41LTIzLTEzLjUtMjNsLTM4LjYgMGMtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw4MC45LTI0LjNjNC42LTEuNCA4LjQtNC44IDEwLjItOS4zQzQ5NC41IDE2MyA1MDcuOCA4Ni4xIDUxMS45IDM2LjhjLjgtOS45LTMtMTkuNi0xMC0yNi42cy0xNi43LTEwLjgtMjYuNi0xMEMzOTEuNSA3IDIyOC41IDQwLjUgMTM3LjQgMTMxLjZDNTcuMyAyMTEuNyA1Ni43IDMwMi4zIDcxLjMgMzU2LjRjMi4xIDcuOSAxMiA5LjYgMTcuOCAzLjhMMjUzLjYgMTk1LjhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBjNS40IDUuNCA2LjEgMTMuNiAyLjIgMTkuOHpcIl1cbn07XG5jb25zdCBmYUZlYXRoZXJBbHQgPSBmYUZlYXRoZXJQb2ludGVkO1xuY29uc3QgZmFQID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3AnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMTJdLCBcIjUwXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOTYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MHMtNzEuNiAxNjAtMTYwIDE2MGwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMzIwIDAgOTZ6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDY0IDk2bDAgMTkyelwiXVxufTtcbmNvbnN0IGZhU25vd2ZsYWtlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nub3dmbGFrZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEwMDUyLCAxMDA1NF0sIFwiZjJkY1wiLCBcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMwLjEgMTUtMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00OSA0OSAwIDcwLjMgNjEuNC0zNS44IDE3LjctNjYuMWMzLjQtMTIuOCAxNi42LTIwLjQgMjkuNC0xN3MyMC40IDE2LjYgMTcgMjkuNGwtNS4yIDE5LjMgMjMuNi0xMy44YzE1LjMtOC45IDM0LjktMy43IDQzLjggMTEuNXMzLjggMzQuOS0xMS41IDQzLjhsLTI1LjMgMTQuOCAyMS43IDUuOGMxMi44IDMuNCAyMC40IDE2LjYgMTcgMjkuNHMtMTYuNiAyMC40LTI5LjQgMTdsLTY3LjctMTguMUwyODcuNSAyNTZsNjAuOSAzNS41IDY3LjctMTguMWMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN3MtNC4yIDI2LTE3IDI5LjRsLTIxLjcgNS44IDI1LjMgMTQuOGMxNS4zIDguOSAyMC40IDI4LjUgMTEuNSA0My44cy0yOC41IDIwLjQtNDMuOCAxMS41bC0yMy42LTEzLjggNS4yIDE5LjNjMy40IDEyLjgtNC4yIDI2LTE3IDI5LjRzLTI2LTQuMi0yOS40LTE3bC0xNy43LTY2LjFMMjU2IDMxMS43bDAgNzAuMyA0OSA0OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xNS0xNSAwIDMwLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMC4xLTE1IDE1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ5LTQ5IDAtNzAuMy02MS40IDM1LjgtMTcuNyA2Ni4xYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN3MtMjAuNC0xNi42LTE3LTI5LjRsNS4yLTE5LjNMNDguMSAzOTUuNmMtMTUuMyA4LjktMzQuOSAzLjctNDMuOC0xMS41cy0zLjctMzQuOSAxMS41LTQzLjhsMjUuMy0xNC44LTIxLjctNS44Yy0xMi44LTMuNC0yMC40LTE2LjYtMTctMjkuNHMxNi42LTIwLjQgMjkuNC0xN2w2Ny43IDE4LjFMMTYwLjUgMjU2IDk5LjYgMjIwLjUgMzEuOSAyMzguNmMtMTIuOCAzLjQtMjYtNC4yLTI5LjQtMTdzNC4yLTI2IDE3LTI5LjRsMjEuNy01LjhMMTUuOSAxNzEuNkMuNiAxNjIuNy00LjUgMTQzLjEgNC40IDEyNy45czI4LjUtMjAuNCA0My44LTExLjVsMjMuNiAxMy44LTUuMi0xOS4zYy0zLjQtMTIuOCA0LjItMjYgMTctMjkuNHMyNiA0LjIgMjkuNCAxN2wxNy43IDY2LjFMMTkyIDIwMC4zbDAtNzAuM0wxNDMgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxNSAxNUwxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFOZXdzcGFwZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmV3c3BhcGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjQwXSwgXCJmMWVhXCIsIFwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI3MmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2TDk2IDk2em02NCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTg0IDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjA4LThjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNjAgMzA0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMjU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI1NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFSZWN0YW5nbGVBZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUtYWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImFkXCJdLCBcImY2NDFcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI5LjUgMTczLjNsNzIgMTQ0YzUuOSAxMS45IDEuMSAyNi4zLTEwLjcgMzIuMnMtMjYuMyAxLjEtMzIuMi0xMC43TDI1My4yIDMyOGwtOTAuMyAwLTUuNCAxMC43Yy01LjkgMTEuOS0yMC4zIDE2LjctMzIuMiAxMC43cy0xNi43LTIwLjMtMTAuNy0zMi4ybDcyLTE0NGM0LjEtOC4xIDEyLjQtMTMuMyAyMS41LTEzLjNzMTcuNCA1LjEgMjEuNSAxMy4zek0yMDggMjM3LjdMMTg2LjggMjgwbDQyLjMgMEwyMDggMjM3Ljd6TTM5MiAyNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4em0yNC00My45bDAtMjguMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTYgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGMtNi42IDAtMTIuNi0yLjctMTctN2MtOS40IDQuNS0xOS45IDctMzEgN2MtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmM4LjQgMCAxNi41IDEuNCAyNCA0LjF6XCJdXG59O1xuY29uc3QgZmFBZCA9IGZhUmVjdGFuZ2xlQWQ7XG5jb25zdCBmYUNpcmNsZUFycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtcmlnaHRcIl0sIFwiZjBhOVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTI5NyAzODVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNzEtNzFMMTIwIDI4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMTQuMSAwLTcxLTcxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMNDA5IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyOTcgMzg1elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVSaWdodCA9IGZhQ2lyY2xlQXJyb3dSaWdodDtcbmNvbnN0IGZhRmlsdGVyQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTE3YlwiLCBcIk0zLjkgMjIuOUMxMC41IDguOSAyNC41IDAgNDAgMEw0NzIgMGMxNS41IDAgMjkuNSA4LjkgMzYuMSAyMi45czQuNiAzMC41LTUuMiA0Mi41TDM5Ni40IDE5NS42QzMxNi4yIDIxMi4xIDI1NiAyODMgMjU2IDM2OGMwIDI3LjQgNi4zIDUzLjQgMTcuNSA3Ni41Yy0xLjYtLjgtMy4yLTEuOC00LjctMi45bC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNmwwLTc5LjFMOSA2NS4zQy0uNyA1My40LTIuOCAzNi44IDMuOSAyMi45ek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwTDQzMiAzNDUuNGwtMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDQwOS40IDM2OGwtMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDMyIDM5MC42bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZMNDU0LjYgMzY4bDM2LjctMzYuN3pcIl1cbn07XG5jb25zdCBmYUxvY3VzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2N1c3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MjBcIiwgXCJNMzEyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDBjOTguNyAwIDE4MC42IDcxLjQgMTk3IDE2NS40Yy05LTMuNS0xOC44LTUuNC0yOS01LjRsLTY0LjIgMC00MS44LTk3LjVjLTMuNC03LjktMTAuOC0xMy40LTE5LjMtMTQuNHMtMTcgMi43LTIyLjEgOS42bC00MC45IDU1LjUtMjEuNy01MC43Yy0zLjMtNy44LTEwLjUtMTMuMi0xOC45LTE0LjNzLTE2LjcgMi4zLTIyIDguOWwtMjQwIDMwNGMtOC4yIDEwLjQtNi40IDI1LjUgNCAzMy43czI1LjUgNi40IDMzLjctNGw3OS40LTEwMC41IDQzIDE2LjQtNDAuNSA1NWMtNy45IDEwLjctNS42IDI1LjcgNS4xIDMzLjZzMjUuNyA1LjYgMzMuNi01LjFMMjE1LjEgNDAwbDc0LjUgMC0yOS4zIDQyLjNjLTcuNSAxMC45LTQuOCAyNS44IDYuMSAzMy40czI1LjggNC44IDMzLjQtNi4xTDM0OCA0MDBsODAuNCAwIDM4LjggNjcuOWM2LjYgMTEuNSAyMS4yIDE1LjUgMzIuNyA4LjlzMTUuNS0yMS4yIDguOS0zMi43TDQ4My42IDQwMGwxMi40IDBjNDQuMSAwIDc5LjgtMzUuNyA4MC03OS43YzAtLjEgMC0uMiAwLS4zbDAtNDBDNTc2IDE0MyA0NjUgMzIgMzI4IDMybC0xNiAwem01MC41IDE2OGwxNy4xIDQwTDMzMyAyNDBsMjkuNS00MHptLTg3LjcgMzguMWwtMS40IDEuOS00OC4yIDAgMzIuNy00MS41IDE2LjkgMzkuNXpNODguOCAyNDBDNTcuNCAyNDAgMzIgMjY1LjQgMzIgMjk2LjhjMCAxNS41IDYuMyAzMCAxNi45IDQwLjRMMTI2LjcgMjQwbC0zNy45IDB6TTQ5NiAyODhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhU29ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ1bnNvcnRlZFwiXSwgXCJmMGRjXCIsIFwiTTEzNy40IDQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOXMtMTYuNiAxOS44LTI5LjYgMTkuOEwzMiAyMjRjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6bTAgNDI5LjNsLTEyOC0xMjhjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45czE2LjYtMTkuOCAyOS42LTE5LjhsMjU2IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6XCJdXG59O1xuY29uc3QgZmFVbnNvcnRlZCA9IGZhU29ydDtcbmNvbnN0IGZhTGlzdE9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpc3Qtb2wnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxpc3QtMS0yXCIsIFwibGlzdC1udW1lcmljXCJdLCBcImYwY2JcIiwgXCJNMjQgNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEyMCAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC05Ni04IDBDMzQuNyA4MCAyNCA2OS4zIDI0IDU2ek04Ni43IDM0MS4yYy02LjUtNy40LTE4LjMtNi45LTI0IDEuMkw1MS41IDM1Ny45Yy03LjcgMTAuOC0yMi43IDEzLjMtMzMuNSA1LjZzLTEzLjMtMjIuNy01LjYtMzMuNWwxMS4xLTE1LjZjMjMuNy0zMy4yIDcyLjMtMzUuNiA5OS4yLTQuOWMyMS4zIDI0LjQgMjAuOCA2MC45LTEuMSA4NC43TDg2LjggNDMybDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODggMGMtOS41IDAtMTguMi01LjYtMjItMTQuNHMtMi4xLTE4LjkgNC4zLTI1LjlsNzItNzhjNS4zLTUuOCA1LjQtMTQuNiAuMy0yMC41ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUxpc3QxMiA9IGZhTGlzdE9sO1xuY29uc3QgZmFMaXN0TnVtZXJpYyA9IGZhTGlzdE9sO1xuY29uc3QgZmFQZXJzb25EcmVzc0J1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcy1idXJzdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU0NFwiLCBcIk01MjggNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMzkwLjIgMzg0bDE3LjggMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAxNiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMUw1NDYuNyAyNDguMWwzMy45IDU2LjNjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTUzLjYtODkuMmMtMjAuMi0zMy43LTU2LjctNTQuMy05Ni01NC4zbC0xMS42IDBjLTM5LjMgMC03NS43IDIwLjYtOTYgNTQuM2wtNTMuNiA4OS4yYy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45bDMzLjktNTYuM0wzNzUgMzYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXpNMTkwLjkgMTguMUMxODguNCAxMiAxODIuNiA4IDE3NiA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNzYgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA1MC41LTcuOCAyNC40LTQwLjUtNTUuMi0zOEwzMTUgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0elwiXVxufTtcbmNvbnN0IGZhTW9uZXlDaGVja0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1jaGVjay1kb2xsYXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1vbmV5LWNoZWNrLWFsdFwiXSwgXCJmNTNkXCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek0yNzIgMTkybDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMjU2IDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZ6TTE2NCAxNTJsMCAxMy45YzcuNSAxLjIgMTQuNiAyLjkgMjEuMSA0LjdjMTAuNyAyLjggMTcgMTMuOCAxNC4yIDI0LjVzLTEzLjggMTctMjQuNSAxNC4yYy0xMS0yLjktMjEuNi01LTMxLjItNS4yYy03LjktLjEtMTYgMS44LTIxLjUgNWMtNC44IDIuOC02LjIgNS42LTYuMiA5LjNjMCAxLjggLjEgMy41IDUuMyA2LjdjNi4zIDMuOCAxNS41IDYuNyAyOC4zIDEwLjVsLjcgLjJjMTEuMiAzLjQgMjUuNiA3LjcgMzcuMSAxNWMxMi45IDguMSAyNC4zIDIxLjMgMjQuNiA0MS42Yy4zIDIwLjktMTAuNSAzNi4xLTI0LjggNDVjLTcuMiA0LjUtMTUuMiA3LjMtMjMuMiA5bDAgMTMuOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xNC42Yy0xMC4zLTIuMi0yMC01LjUtMjguMi04LjRjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xLS43LTQuMS0xLjQtNi4xLTIuMWMtMTAuNS0zLjUtMTYuMS0xNC44LTEyLjYtMjUuM3MxNC44LTE2LjEgMjUuMy0xMi42YzIuNSAuOCA0LjkgMS43IDcuMiAyLjRjMTMuNiA0LjYgMjQgOC4xIDM1LjEgOC41YzguNiAuMyAxNi41LTEuNiAyMS40LTQuN2M0LjEtMi41IDYtNS41IDUuOS0xMC41YzAtMi45LS44LTUtNS45LTguMmMtNi4zLTQtMTUuNC02LjktMjgtMTAuN2wtMS43LS41Yy0xMC45LTMuMy0yNC42LTcuNC0zNS42LTE0Yy0xMi43LTcuNy0yNC42LTIwLjUtMjQuNy00MC43Yy0uMS0yMS4xIDExLjgtMzUuNyAyNS44LTQzLjljNi45LTQuMSAxNC41LTYuOCAyMi4yLTguNWwwLTE0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwelwiXVxufTtcbmNvbnN0IGZhTW9uZXlDaGVja0FsdCA9IGZhTW9uZXlDaGVja0RvbGxhcjtcbmNvbnN0IGZhVmVjdG9yU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlY3Rvci1zcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1Y2JcIiwgXCJNMzY4IDgwbDMyIDAgMCAzMi0zMiAwIDAtMzJ6TTM1MiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDE5MiAwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTE5MmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwek05NiAxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMTkyIDBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybC0xOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTE5MnpNNDggNDAwbDMyIDAgMCAzMi0zMiAwIDAtMzJ6bTMyMCAzMmwwLTMyIDMyIDAgMCAzMi0zMiAwek00OCAxMTJsMC0zMiAzMiAwIDAgMzItMzIgMHpcIl1cbn07XG5jb25zdCBmYUJyZWFkU2xpY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJlYWQtc2xpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZWNcIiwgXCJNMjU2IDMyQzE5MiAzMiAwIDY0IDAgMTkyYzAgMzUuMyAyOC43IDY0IDY0IDY0VjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0QzUxMiA2NCAzMjAgMzIgMjU2IDMyelwiXVxufTtcbmNvbnN0IGZhTGFuZ3VhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFuZ3VhZ2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxYWJcIiwgXCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDAgNDggMCAxNiAwIDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMC0xNiAwLTQ4IDBMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMzIwIDBsMCAyNTYgMjU2IDAgMC0yNTYtMjU2IDB6TTE3OC4zIDE3NS45Yy0zLjItNy4yLTEwLjQtMTEuOS0xOC4zLTExLjlzLTE1LjEgNC43LTE4LjMgMTEuOWwtNjQgMTQ0Yy00LjUgMTAuMSAuMSAyMS45IDEwLjIgMjYuNHMyMS45LS4xIDI2LjQtMTAuMmw4LjktMjAuMSA3My42IDAgOC45IDIwLjFjNC41IDEwLjEgMTYuMyAxNC42IDI2LjQgMTAuMnMxNC42LTE2LjMgMTAuMi0yNi40bC02NC0xNDR6TTE2MCAyMzMuMkwxNzkgMjc2bC0zOCAwIDE5LTQyLjh6TTQ0OCAxNjRjMTEgMCAyMCA5IDIwIDIwbDAgNCA0NCAwIDE2IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yIDAtMS42IDQuNWMtOC45IDI0LjQtMjIuNCA0Ni42LTM5LjYgNjUuNGMuOSAuNiAxLjggMS4xIDIuNyAxLjZsMTguOSAxMS4zYzkuNSA1LjcgMTIuNSAxOCA2LjkgMjcuNHMtMTggMTIuNS0yNy40IDYuOWwtMTguOS0xMS4zYy00LjUtMi43LTguOC01LjUtMTMuMS04LjVjLTEwLjYgNy41LTIxLjkgMTQtMzQgMTkuNGwtMy42IDEuNmMtMTAuMSA0LjUtMjEuOS0uMS0yNi40LTEwLjJzLjEtMjEuOSAxMC4yLTI2LjRsMy42LTEuNmM2LjQtMi45IDEyLjYtNi4xIDE4LjUtOS44bC0xMi4yLTEyLjJjLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMGwxNC42IDE0LjYgLjUgLjVjMTIuNC0xMy4xIDIyLjUtMjguMyAyOS44LTQ1TDQ0OCAyMjhsLTcyIDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUyIDAgMC00YzAtMTEgOS0yMCAyMC0yMHpcIl1cbn07XG5jb25zdCBmYUZhY2VLaXNzV2lua0hlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Uta2lzcy13aW5rLWhlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTM2LCBcImtpc3Mtd2luay1oZWFydFwiXSwgXCJmNTk4XCIsIFwiTTQ5OCAzMzkuN2M5LjEtMjYuMiAxNC01NC40IDE0LTgzLjdDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NlMxMTQuNiA1MTIgMjU2IDUxMmMzNS40IDAgNjkuMS03LjIgOTkuNy0yMC4yYy00LjgtNS41LTguNS0xMi4yLTEwLjQtMTkuN2wtMjIuOS04OS4zYy0xMC0zOSAxMS44LTgwLjkgNTEuOC05Mi4xYzM3LjItMTAuNCA3My44IDEwLjEgODcuNSA0NGMxMi43LTEuNiAyNS4xIC40IDM2LjIgNXpNMjk2IDMzMmMwIDYuOS0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI1OC43IDQ0My4xIDI0MS40IDQ0OCAyMjQgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFsLS42LS40LS4zLS4yLS4yLS4xYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYzAgMCAwIDAgMCAwbC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3pNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTk0LjggNTcuNmMtMTcuNi0yMy41LTUyLjgtMjMuNS03MC40IDBjLTUuMyA3LjEtMTUuMyA4LjUtMjIuNCAzLjJzLTguNS0xNS4zLTMuMi0yMi40YzMwLjQtNDAuNSA5MS4yLTQwLjUgMTIxLjYgMGM1LjMgNy4xIDMuOSAxNy4xLTMuMiAyMi40cy0xNy4xIDMuOS0yMi40LTMuMnpNNDM0IDM1Mi4zYy02LTIzLjItMjguOC0zNy01MS4xLTMwLjhzLTM1LjQgMzAuMS0yOS41IDUzLjRsMjIuOSA4OS4zYzIuMiA4LjcgMTEuMiAxMy45IDE5LjggMTEuNGw4NC45LTIzLjhjMjIuMi02LjIgMzUuNC0zMC4xIDI5LjUtNTMuNHMtMjguOC0zNy01MS4xLTMwLjhsLTIwLjIgNS42LTUuNC0yMXpcIl1cbn07XG5jb25zdCBmYUtpc3NXaW5rSGVhcnQgPSBmYUZhY2VLaXNzV2lua0hlYXJ0O1xuY29uc3QgZmFGaWx0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGIwXCIsIFwiTTMuOSA1NC45QzEwLjUgNDAuOSAyNC41IDMyIDQwIDMybDQzMiAwYzE1LjUgMCAyOS41IDguOSAzNi4xIDIyLjlzNC42IDMwLjUtNS4yIDQyLjVMMzIwIDMyMC45IDMyMCA0NDhjMCAxMi4xLTYuOCAyMy4yLTE3LjcgMjguNnMtMjMuOCA0LjMtMzMuNS0zbC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNmwwLTc5LjFMOSA5Ny4zQy0uNyA4NS40LTIuOCA2OC44IDMuOSA1NC45elwiXVxufTtcbmNvbnN0IGZhUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVlc3Rpb24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMDA2NywgMTAwNjgsIDYxNzM2XSwgXCIzZlwiLCBcIk04MCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMuNmMwIDIxLjgtMTEuMSA0Mi4xLTI5LjQgNTMuOGwtNDIuMiAyNy4xYy0yNS4yIDE2LjItNDAuNCA0NC4xLTQwLjQgNzRsMCAxLjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuNGMwLTguMiA0LjItMTUuOCAxMS0yMC4ybDQyLjItMjcuMWMzNi42LTIzLjYgNTguOC02NC4xIDU4LjgtMTA3LjdsMC0zLjZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBDNzMuMyAzMiAxNiA4OS4zIDE2IDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem04MCAzMjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhRmlsZVNpZ25hdHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXNpZ25hdHVyZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU3M1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5LjNjLTIuNyAxLjEtNS40IDItOC4yIDIuN2wtNjAuMSAxNWMtMyAuNy02IDEuMi05IDEuNGMtLjkgLjEtMS44IC4yLTIuNyAuMmwtNjQgMGMtNi4xIDAtMTEuNi0zLjQtMTQuMy04LjhsLTguOC0xNy43Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNXMtNy4yIDIuMS04LjggNS41bC04LjggMTcuN2MtMi45IDUuOS05LjIgOS40LTE1LjcgOC44cy0xMi4xLTUuMS0xMy45LTExLjNMMTQ0IDM4MWwtOS44IDMyLjhjLTYuMSAyMC4zLTI0LjggMzQuMi00NiAzNC4yTDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4LjIgMGM3LjEgMCAxMy4zLTQuNiAxNS4zLTExLjRsMTQuOS00OS41YzMuNC0xMS4zIDEzLjgtMTkuMSAyNS42LTE5LjFzMjIuMiA3LjggMjUuNiAxOS4xbDExLjYgMzguNmM3LjQtNi4yIDE2LjgtOS43IDI2LjgtOS43YzE1LjkgMCAzMC40IDkgMzcuNSAyMy4ybDQuNCA4LjggOC45IDBjLTMuMS04LjgtMy43LTE4LjQtMS40LTI3LjhsMTUtNjAuMWMyLjgtMTEuMyA4LjYtMjEuNSAxNi44LTI5LjdMMzg0IDIwMy42bDAtNDMuNi0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTU0OS44IDEzOS43Yy0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMGwtMjkuNCAyOS40IDcxIDcxIDI5LjQtMjkuNGMxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNmwtMTQuNC0xNC40ek0zMTEuOSAzMjFjLTQuMSA0LjEtNyA5LjItOC40IDE0LjlsLTE1IDYwLjFjLTEuNCA1LjUgLjIgMTEuMiA0LjIgMTUuMnM5LjcgNS42IDE1LjIgNC4ybDYwLjEtMTVjNS42LTEuNCAxMC44LTQuMyAxNC45LTguNEw1MTIuMSAyNjIuN2wtNzEtNzFMMzExLjkgMzIxelwiXVxufTtcbmNvbnN0IGZhVXBEb3duTGVmdFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWRvd24tbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3dzLWFsdFwiXSwgXCJmMGIyXCIsIFwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dzQWx0ID0gZmFVcERvd25MZWZ0UmlnaHQ7XG5jb25zdCBmYUhvdXNlQ2hpbW5leVVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2hpbW5leS11c2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDY1XCIsIFwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEw1MTIgMTg1bDAtMTIxYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM2LjdMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMC40IDBjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMiAzMiAwek0yODggMTYwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0xNzYgNDAwYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGFuZEhvbGRpbmdIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGVhcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0YmVcIiwgXCJNMTYzLjkgMTM2LjljLTI5LjQtMjkuOC0yOS40LTc4LjIgMC0xMDhzNzctMjkuOCAxMDYuNCAwbDE3LjcgMTggMTcuNy0xOGMyOS40LTI5LjggNzctMjkuOCAxMDYuNCAwczI5LjQgNzguMiAwIDEwOEwzMTAuNSAyNDAuMWMtNi4yIDYuMy0xNC4zIDkuNC0yMi41IDkuNHMtMTYuMy0zLjEtMjIuNS05LjRMMTYzLjkgMTM2Ljl6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMTkyIDUxMiAzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzYuOCAwIDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhsNzguMyAwIDE2IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyMC42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM4NGMwIDAgMCAwIDAgMGwtLjkgMGMuMyAwIC42IDAgLjkgMHpcIl1cbn07XG5jb25zdCBmYVB1enpsZVBpZWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3B1enpsZS1waWVjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxM10sIFwiZjEyZVwiLCBcIk0xOTIgMTA0LjhjMC05LjItNS44LTE3LjMtMTMuMi0yMi44QzE2Ny4yIDczLjMgMTYwIDYxLjMgMTYwIDQ4YzAtMjYuNSAyOC43LTQ4IDY0LTQ4czY0IDIxLjUgNjQgNDhjMCAxMy4zLTcuMiAyNS4zLTE4LjggMzRjLTcuNCA1LjUtMTMuMiAxMy42LTEzLjIgMjIuOGMwIDEyLjggMTAuNCAyMy4yIDIzLjIgMjMuMmw1Ni44IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA1Ni44YzAgMTIuOCAxMC40IDIzLjIgMjMuMiAyMy4yYzkuMiAwIDE3LjMtNS44IDIyLjgtMTMuMmM4LjctMTEuNiAyMC43LTE4LjggMzQtMTguOGMyNi41IDAgNDggMjguNyA0OCA2NHMtMjEuNSA2NC00OCA2NGMtMTMuMyAwLTI1LjMtNy4yLTM0LTE4LjhjLTUuNS03LjQtMTMuNi0xMy4yLTIyLjgtMTMuMmMtMTIuOCAwLTIzLjIgMTAuNC0yMy4yIDIzLjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMmMwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjhjMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzRjMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzRjNy40IDUuNSAxMy4yIDEzLjYgMTMuMiAyMi44YzAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMkMwIDMzMC40IDEwLjQgMzIwIDIzLjIgMzIwYzkuMiAwIDE3LjMgNS44IDIyLjggMTMuMkM1NC43IDM0NC44IDY2LjcgMzUyIDgwIDM1MmMyNi41IDAgNDgtMjguNyA0OC02NHMtMjEuNS02NC00OC02NGMtMTMuMyAwLTI1LjMgNy4yLTM0IDE4LjhDNDAuNSAyNTAuMiAzMi40IDI1NiAyMy4yIDI1NkMxMC40IDI1NiAwIDI0NS42IDAgMjMyLjhMMCAxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTIwLjggMGMxMi44IDAgMjMuMi0xMC40IDIzLjItMjMuMnpcIl1cbn07XG5jb25zdCBmYU1vbmV5Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktY2hlY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1M2NcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTQ4IDE2MGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTk2IDMzNmMwLTguOCA3LjItMTYgMTYtMTZsMzUyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTM1MiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTM3NiAxNjBsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhU3RhckhhbGZTdHJva2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1oYWxmLXN0cm9rZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic3Rhci1oYWxmLWFsdFwiXSwgXCJmNWMwXCIsIFwiTTI4OCAzNzYuNGwuMS0uMSAyNi40IDE0LjEgODUuMiA0NS41LTE2LjUtOTcuNi00LjgtMjguNyAyMC43LTIwLjUgNzAuMS02OS4zLTk2LjEtMTQuMi0yOS4zLTQuMy0xMi45LTI2LjZMMjg4LjEgODYuOWwtLjEgLjMgMCAyODkuMnptMTc1LjEgOTguM2MyIDEyLTMgMjQuMi0xMi45IDMxLjNzLTIzIDgtMzMuOCAyLjNMMjg4LjEgNDM5LjggMTU5LjggNTA4LjNDMTQ5IDUxNCAxMzUuOSA1MTMuMSAxMjYgNTA2cy0xNC45LTE5LjMtMTIuOS0zMS4zTDEzNy44IDMyOSAzMy42IDIyNS45Yy04LjYtOC41LTExLjctMjEuMi03LjktMzIuN3MxMy43LTE5LjkgMjUuNy0yMS43TDE5NSAxNTAuMyAyNTkuNCAxOGM1LjQtMTEgMTYuNS0xOCAyOC44LTE4czIzLjQgNyAyOC44IDE4bDY0LjMgMTMyLjMgMTQzLjYgMjEuMmMxMiAxLjggMjIgMTAuMiAyNS43IDIxLjdzLjcgMjQuMi03LjkgMzIuN0w0MzguNSAzMjlsMjQuNiAxNDUuN3pcIl1cbn07XG5jb25zdCBmYVN0YXJIYWxmQWx0ID0gZmFTdGFySGFsZlN0cm9rZTtcbmNvbnN0IGZhQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMTIxXCIsIFwiTTM5Mi44IDEuMmMtMTctNC45LTM0LjcgNS0zOS42IDIybC0xMjggNDQ4Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMTI4LTQ0OGM0LjktMTctNS0zNC43LTIyLTM5LjZ6bTgwLjYgMTIwLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zTDU2Mi43IDI1NmwtODkuNCA4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDExMi0xMTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTExMi0xMTJjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMzA2LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDExMiAxMTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1Nmw4OS40LTg5LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFXaGlza2V5R2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2hpc2tleS1nbGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTM0NywgXCJnbGFzcy13aGlza2V5XCJdLCBcImY3YTBcIiwgXCJNMzIgMzJjLTkuMyAwLTE4LjEgNC0yNC4yIDExLjFTLTEgNTkuNCAuMyA2OC42bDUwIDM0Mi45YzUuNyAzOS4zIDM5LjQgNjguNSA3OS4yIDY4LjVsMjUzIDBjMzkuNyAwIDczLjQtMjkuMSA3OS4yLTY4LjVsNTAtMzQyLjljMS4zLTkuMi0xLjQtMTguNS03LjUtMjUuNVM0ODkuMyAzMiA0ODAgMzJMMzIgMzJ6TTg3LjcgMjI0TDY5IDk2bDM3NCAwTDQyNC4zIDIyNCA4Ny43IDIyNHpcIl1cbn07XG5jb25zdCBmYUdsYXNzV2hpc2tleSA9IGZhV2hpc2tleUdsYXNzO1xuY29uc3QgZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRkM1wiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOEwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtY2hhcnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjJcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHptLTMxMiA4bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MC05NmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MCA2NGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC05NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBSaWdodEZyb21TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImV4dGVybmFsLWxpbmtcIl0sIFwiZjA4ZVwiLCBcIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDBMMjAxLjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zbDAgODIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyMCAwek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMjAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjBjMC04LjggNy4yLTE2IDE2LTE2bDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rID0gZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlO1xuY29uc3QgZmFDdWJlc1N0YWNrZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZXMtc3RhY2tlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTRlNlwiLCBcIk0xOTIgNjRsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04Mi43IDIwN2MtMTUuMyA4LjgtMjAuNSAyOC40LTExLjcgNDMuN2wzMiA1NS40YzguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdsNTUuNC0zMmMxNS4zLTguOCAyMC41LTI4LjQgMTEuNy00My43bC0zMi01NS40Yy04LjgtMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43TDgyLjcgMjA3ek0yODggMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHpNMTYwIDM4NGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6XCJdXG59O1xuY29uc3QgZmFXb25TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dvbi1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbODM2MSwgXCJrcndcIiwgXCJ3b25cIl0sIFwiZjE1OVwiLCBcIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjYgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNiA3NC4xTDUxLjYgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OGw0NiAwTDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODhsNDAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOS42IDAgNTAtMTQ5LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJMMzkyLjkgMjI0bC02NCAwTDI4NyA1Ni4yQzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE4MyAyMjRsLTY0IDBMNjIuNCA1My45em03OCAyMzQuMWwyNi42IDAtMTEuNCA0NS42TDE0MC40IDI4OHpNMjQ5IDIyNGw3LTI4LjEgNyAyOC4xLTE0IDB6bTk2IDY0bDI2LjYgMC0xNS4yIDQ1LjZMMzQ1IDI4OHpcIl1cbn07XG5jb25zdCBmYUtydyA9IGZhV29uU2lnbjtcbmNvbnN0IGZhV29uID0gZmFXb25TaWduO1xuY29uc3QgZmFWaXJ1c0NvdmlkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpcnVzLWNvdmlkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGE4XCIsIFwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0MjAgMTI1LjlsLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNMNDIwIDM4Ni4xbDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzODYuMSA0MjBsLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFMMTI1LjkgNDIwbDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEw5MiAzODYuMWwyMy44LTIzLjhDOTcuOSAzMzguOCA4NS44IDMxMC43IDgxLjYgMjgwTDQ4IDI4MGwwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDMzLjYgMGM0LjItMzAuNyAxNi4zLTU4LjggMzQuMS04Mi4zTDkyIDEyNS45IDgwLjYgMTM3LjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTYuNi01Ni42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwxMjUuOSA5MmwyMy44IDIzLjhjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFMMjMyIDQ4bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDggMjAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTY0IDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFBdXN0cmFsU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdXN0cmFsLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwYTlcIiwgXCJNMjUzLjUgNTEuN0MyNDguNiAzOS44IDIzNi45IDMyIDIyNCAzMnMtMjQuNiA3LjgtMjkuNSAxOS43TDEyMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMEw4Mi43IDMyMCAzMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQgMEwzNC41IDQzNS43Yy02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4yTDEyNS4zIDM4NGwxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOEwzOTIgMzg0bDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMEwzNTIgMjg4bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTkwLjcgMEwyNTMuNSA1MS43ek0yNTYgMjI0bC02NCAwIDMyLTc2LjhMMjU2IDIyNHptLTkwLjcgNjRsMTE3LjMgMEwyOTYgMzIwbC0xNDQgMCAxMy4zLTMyelwiXVxufTtcbmNvbnN0IGZhRiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTAyXSwgXCI0NlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjU2IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMjI0IDY0IDk2bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhTGVhZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZWFmJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDZjXCIsIFwiTTI3MiA5NmMtNzguNiAwLTE0NS4xIDUxLjUtMTY3LjcgMTIyLjVjMzMuNi0xNyA3MS41LTI2LjUgMTExLjctMjYuNWw4OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwLTcyIDBzMCAwIDAgMGMtMTYuNiAwLTMyLjcgMS45LTQ4LjMgNS40Yy0yNS45IDUuOS00OS45IDE2LjQtNzEuNCAzMC43YzAgMCAwIDAgMCAwQzM4LjMgMjk4LjggMCAzNjQuOSAwIDQ0MGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNmMwLTQ4LjcgMjAuNy05Mi41IDUzLjgtMTIzLjJDMTIxLjYgMzkyLjMgMTkwLjMgNDQ4IDI3MiA0NDhsMSAwYzEzMi4xLS43IDIzOS0xMzAuOSAyMzktMjkxLjRjMC00Mi42LTcuNS04My4xLTIxLjEtMTE5LjZjLTIuNi02LjktMTIuNy02LjYtMTYuMi0uMUM0NTUuOSA3Mi4xIDQxOC43IDk2IDM3NiA5NkwyNzIgOTZ6XCJdXG59O1xuY29uc3QgZmFSb2FkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg3MzldLCBcImYwMThcIiwgXCJNMjU2IDMybC03NC44IDBjLTI3LjEgMC01MS4zIDE3LjEtNjAuMyA0Mi42TDMuMSA0MDcuMkMxLjEgNDEzIDAgNDE5LjIgMCA0MjUuNEMwIDQ1NS41IDI0LjUgNDgwIDU0LjYgNDgwTDI1NiA0ODBsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjQgMjAxLjQgMGMzMC4yIDAgNTQuNi0yNC41IDU0LjYtNTQuNmMwLTYuMi0xLjEtMTIuNC0zLjEtMTguMkw0NTUuMSA3NC42QzQ0NiA0OS4xIDQyMS45IDMyIDM5NC44IDMyTDMyMCAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIl1cbn07XG5jb25zdCBmYVRheGkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGF4aScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY2MiwgXCJjYWJcIl0sIFwiZjFiYVwiLCBcIk0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiAwIC4yYy0zOC42IDIuMi03Mi4zIDI3LjMtODUuMiA2NC4xTDM5LjYgMjI4LjhDMTYuNCAyMzguNCAwIDI2MS4zIDAgMjg4TDAgNDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4IDMyMCAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4IDAtMTQ0YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDEyOC4zYy0xMi45LTM2LjgtNDYuNi02Mi04NS4yLTY0LjFsMC0uMiAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNjUuNCAxMjhsMTgxLjIgMGMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40TDQwMi45IDIyNGwtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHpNOTYgMjg4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFDYWIgPSBmYVRheGk7XG5jb25zdCBmYVBlcnNvbkNpcmNsZVBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNpcmNsZS1wbHVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQxXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYUNoYXJ0UGllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LXBpZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicGllLWNoYXJ0XCJdLCBcImYyMDBcIiwgXCJNMzA0IDI0MGwwLTIyMy40YzAtOSA3LTE2LjYgMTYtMTYuNkM0NDMuNyAwIDU0NCAxMDAuMyA1NDQgMjI0YzAgOS03LjYgMTYtMTYuNiAxNkwzMDQgMjQwek0zMiAyNzJDMzIgMTUwLjcgMTIyLjEgNTAuMyAyMzkgMzQuM2M5LjItMS4zIDE3IDYuMSAxNyAxNS40TDI1NiAyODggNDEyLjUgNDQ0LjVjNi43IDYuNyA2LjIgMTcuNy0xLjUgMjMuMUMzNzEuOCA0OTUuNiAzMjMuOCA1MTIgMjcyIDUxMkMxMzkuNSA1MTIgMzIgNDA0LjYgMzIgMjcyem01MjYuNCAxNmM5LjMgMCAxNi42IDcuOCAxNS40IDE3Yy03LjcgNTUuOS0zNC42IDEwNS42LTczLjkgMTQyLjNjLTYgNS42LTE1LjQgNS4yLTIxLjItLjdMMzIwIDI4OGwyMzguNCAwelwiXVxufTtcbmNvbnN0IGZhUGllQ2hhcnQgPSBmYUNoYXJ0UGllO1xuY29uc3QgZmFCb2x0TGlnaHRuaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbHQtbGlnaHRuaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMGI3XCIsIFwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhIMjI4LjljMTUgMCAyNy4xIDEyLjEgMjcuMSAyNy4xYzAgMy4yLS42IDYuNS0xLjcgOS41TDIwOCAxNjBIMzQ3LjNjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjdjMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43aC0yLjljLTE1LjcgMC0yOC41LTEyLjgtMjguNS0yOC41YzAtMi4zIC4zLTQuNiAuOS02LjlMMTc2IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTYWNrWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Fjay14bWFyaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU2YVwiLCBcIk0xOTIgOTZsMTI4IDAgNDcuNC03MS4xQzM3NC41IDE0LjIgMzY2LjkgMCAzNTQuMSAwTDE1Ny45IDBjLTEyLjggMC0yMC40IDE0LjItMTMuMyAyNC45TDE5MiA5NnptMTI4IDMybC0xMjggMGMtMy44IDIuNS04LjEgNS4zLTEzIDguNGMwIDAgMCAwIDAgMHMwIDAgMCAwQzEyMi4zIDE3Mi43IDAgMjUwLjkgMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwzMjAgMGM1MyAwIDk2LTQzIDk2LTk2YzAtMTY1LjEtMTIyLjMtMjQzLjMtMTc5LTI3OS42Yy00LjgtMy4xLTkuMi01LjktMTMtOC40ek0yODkuOSAzMzZsNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3elwiXVxufTtcbmNvbnN0IGZhRmlsZUV4Y2VsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtZXhjZWwnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzNcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0xNTUuNyAyNTAuMkwxOTIgMzAyLjFsMzYuMy01MS45YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXMxMy41IDIyLjYgNS45IDMzLjRMMjIxLjMgMzQ0bDQ2LjQgNjYuMmM3LjYgMTAuOSA1IDI1LjgtNS45IDMzLjRzLTI1LjggNS0zMy40LTUuOUwxOTIgMzg1LjhsLTM2LjMgNTEuOWMtNy42IDEwLjktMjIuNiAxMy41LTMzLjQgNS45cy0xMy41LTIyLjYtNS45LTMzLjRMMTYyLjcgMzQ0bC00Ni40LTY2LjJjLTcuNi0xMC45LTUtMjUuOCA1LjktMzMuNHMyNS44LTUgMzMuNCA1Ljl6XCJdXG59O1xuY29uc3QgZmFGaWxlQ29udHJhY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jb250cmFjdCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU2Y1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTgwIDY0bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptNTQuMiAyNTMuOGMtNi4xIDIwLjMtMjQuOCAzNC4yLTQ2IDM0LjJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDguMiAwYzcuMSAwIDEzLjMtNC42IDE1LjMtMTEuNGwxNC45LTQ5LjVjMy40LTExLjMgMTMuOC0xOS4xIDI1LjYtMTkuMXMyMi4yIDcuNyAyNS42IDE5LjFsMTEuNiAzOC42YzcuNC02LjIgMTYuOC05LjcgMjYuOC05LjdjMTUuOSAwIDMwLjQgOSAzNy41IDIzLjJsNC40IDguOCA1NC4xIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTYuMSAwLTExLjYtMy40LTE0LjMtOC44bC04LjgtMTcuN2MtMS43LTMuNC01LjEtNS41LTguOC01LjVzLTcuMiAyLjEtOC44IDUuNWwtOC44IDE3LjdjLTIuOSA1LjktOS4yIDkuNC0xNS43IDguOHMtMTIuMS01LjEtMTMuOS0xMS4zTDE0NCAzNDlsLTkuOCAzMi44elwiXVxufTtcbmNvbnN0IGZhRmlzaEZpbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlzaC1maW5zJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGYyXCIsIFwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjVjLTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC42IDQuOVMtMyAxNjMuMyA0LjIgMTc1LjlMNTAgMjU2IDQuMiAzMzYuMWMtNy4yIDEyLjYtNSAyOC40IDUuMyAzOC42czI2LjEgMTIuMiAzOC42IDQuOWw5My4xLTU0LjNjMTEuOCAxMi4zIDI1LjQgMjQuOCA0MC43IDM2LjNjMTUuNSAxMS42IDMzIDIyLjUgNTIuNCAzMS41bC05LjcgNDguNmMtMi42IDEzIDMuMSAyNi4zIDE0LjMgMzMuM3MyNS42IDYuNSAzNi4zLTEuNWw3Ny42LTU4LjJjNTQuOS00IDEwMS41LTI3IDEzNy4yLTUzLjhjMzkuMi0yOS40IDY3LjItNjQuNyA4MS42LTg5LjVjNS44LTkuOSA1LjgtMjIuMiAwLTMyLjFjLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41Yy0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQnVpbGRpbmdGbGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZDVcIiwgXCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MCA5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNDE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xMTItMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNODAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4MCA2NCAwIDAtMzIwIDE0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZMNDgwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5CZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1iZWFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE2LCBcImdyaW4tYmVhbVwiXSwgXCJmNTgyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNzAuNS04NHMwIDAgMCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwem0xNjAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhR3JpbkJlYW0gPSBmYUZhY2VHcmluQmVhbTtcbmNvbnN0IGZhT2JqZWN0VW5ncm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvYmplY3QtdW5ncm91cCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjI0OFwiLCBcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjA5LjEgMEMzMzkuNiAxMi45IDM2MC4zIDAgMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0xMTMuMXpNMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDExMy4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZ6bTE5MiAzODRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTQwLjYgNjQgMCAwIDQwLjZjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtNDYgMGMtNS40LTE1LjQtMTQuNi0yOC45LTI2LjUtMzkuNmwwLTI0LjQgNzIuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwelwiXVxufTtcbmNvbnN0IGZhUG9vcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb29wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjE5XCIsIFwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43QzMxNS44IDcuMiAzNTIgNDcuNCAzNTIgOTZjMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyYzAgMjMuMi0xMSA0My44LTI4IDU3YzM0LjEgNS43IDYwIDM1LjMgNjAgNzFjMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MmMwLTM1LjcgMjUuOS02NS4zIDYwLTcxYy0xNy0xMy4yLTI4LTMzLjgtMjgtNTdjMC0zOS44IDMyLjItNzIgNzItNzJsMTMuNyAwQzEwNC40IDIyOC4zIDk2IDIxMS4xIDk2IDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MGMwLTkuMi0xLjUtMTcuOS00LjMtMjYuMWMtMS44LTUuMi0uOC0xMS4xIDIuOC0xNS40elwiXVxufTtcbmNvbnN0IGZhTG9jYXRpb25QaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jYXRpb24tcGluJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJtYXAtbWFya2VyXCJdLCBcImYwNDFcIiwgXCJNMzg0IDE5MmMwIDg3LjQtMTE3IDI0My0xNjguMyAzMDcuMmMtMTIuMyAxNS4zLTM1LjEgMTUuMy00Ny40IDBDMTE3IDQzNSAwIDI3OS40IDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MnpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlciA9IGZhTG9jYXRpb25QaW47XG5jb25zdCBmYUthYWJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2thYWJhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MzMxXSwgXCJmNjZiXCIsIFwiTTYwIDEyMGwyMjggNzEuMkw1MTYgMTIwIDI4OCA0OC44IDYwIDEyMHpNMjc4LjUgMS41YzYuMi0xLjkgMTIuOS0xLjkgMTkuMSAwbDI1NiA4MEM1NjYuOSA4NS42IDU3NiA5OCA1NzYgMTEybDAgMTZzMCAwIDAgMGwwIDIxLjJMMjkyLjggMjM3LjdjLTMuMSAxLTYuNCAxLTkuNSAwTDAgMTQ5LjIgMCAxMjhsMC0xNkMwIDk4IDkuMSA4NS42IDIyLjUgODEuNWwyNTYtODB6bTIzLjkgMjY2LjhMNTc2IDE4Mi44bDAgNDYuNS01Mi44IDE2LjVjLTguNCAyLjYtMTMuMSAxMS42LTEwLjUgMjBzMTEuNiAxMy4xIDIwIDEwLjVMNTc2IDI2Mi44IDU3NiA0MDBjMCAxNC05LjEgMjYuNC0yMi41IDMwLjVsLTI1NiA4MGMtNi4yIDEuOS0xMi45IDEuOS0xOS4xIDBsLTI1Ni04MEM5LjEgNDI2LjQgMCA0MTQgMCA0MDBMMCAyNjIuOGw0My4yIDEzLjVjOC40IDIuNiAxNy40LTIuMSAyMC0xMC41cy0yLjEtMTcuNC0xMC41LTIwTDAgMjI5LjJsMC00Ni41IDI3My43IDg1LjVjOS4zIDIuOSAxOS4zIDIuOSAyOC42IDB6bS0xODUuNS0yLjZjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwbDY0IDIwYzguNCAyLjYgMTcuNC0yLjEgMjAtMTAuNXMtMi4xLTE3LjQtMTAuNS0yMGwtNjQtMjB6bTM1MiAzMC41YzguNC0yLjYgMTMuMS0xMS42IDEwLjUtMjBzLTExLjYtMTMuMS0yMC0xMC41bC02NCAyMGMtOC40IDIuNi0xMy4xIDExLjYtMTAuNSAyMHMxMS42IDEzLjEgMjAgMTAuNWw2NC0yMHptLTIyNCA5LjVjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwbDM4LjUgMTJjOS4zIDIuOSAxOS4zIDIuOSAyOC42IDBsMzguNS0xMmM4LjQtMi42IDEzLjEtMTEuNiAxMC41LTIwcy0xMS42LTEzLjEtMjAtMTAuNWwtMzguNSAxMmMtMy4xIDEtNi40IDEtOS41IDBsLTM4LjUtMTJ6XCJdXG59O1xuY29uc3QgZmFUb2lsZXRQYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2lsZXQtcGFwZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjk1MzFdLCBcImY3MWVcIiwgXCJNNDQ0LjIgMEMzOTcuMiA0OS42IDM4NCAxMjYuNSAzODQgMTkyYzAgMTU4LjgtMjcuMyAyNDctNDIuNyAyODMuOWMtMTAgMjQtMzMuMiAzNi4xLTU1LjQgMzYuMUw0OCA1MTJjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNi0yMi4zIC40LTMyLjJjOS44LTE3LjcgMTUuNC0zOC4yIDIwLjUtNTcuN0M1Mi4zIDM2Mi44IDY0IDI5My41IDY0IDE5MkM2NCA4NiAxMDcgMCAxNjAgMEw0NDQuMiAwek01MTIgMzg0Yy01MyAwLTk2LTg2LTk2LTE5MlM0NTkgMCA1MTIgMHM5NiA4NiA5NiAxOTJzLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0cy0zMiAyOC43LTMyIDY0czE0LjMgNjQgMzIgNjR6TTE0NCAyMDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNjQgMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTgwLTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFIZWxtZXRTYWZldHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVsbWV0LXNhZmV0eScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaGFyZC1oYXRcIiwgXCJoYXQtaGFyZFwiXSwgXCJmODA3XCIsIFwiTTI1NiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyLjMgMCA5OS42YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWMtMy42IDAtNy0xLjktOC44LTUuMUwxNTcuMSA4N0M4MyAxMjMuNSAzMiAxOTkuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY2LjRjLS45LTg3LjItNTEuNy0xNjIuNC0xMjUuMS0xOTguNmwtNDggODMuOWMtMS44IDMuMi01LjIgNS4xLTguOCA1LjFjLTUuNiAwLTEwLjEtNC41LTEwLjEtMTAuMWwwLTk5LjYgMC0yLjNjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6TTE2LjYgMzg0QzcuNCAzODQgMCAzOTEuNCAwIDQwMC42YzAgNC43IDIgOS4yIDUuOCAxMS45QzI3LjUgNDI4LjQgMTExLjggNDgwIDI4OCA0ODBzMjYwLjUtNTEuNiAyODIuMi02Ny41YzMuOC0yLjggNS44LTcuMiA1LjgtMTEuOWMwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZMMTYuNiAzODR6XCJdXG59O1xuY29uc3QgZmFIYXJkSGF0ID0gZmFIZWxtZXRTYWZldHk7XG5jb25zdCBmYUhhdEhhcmQgPSBmYUhlbG1ldFNhZmV0eTtcbmNvbnN0IGZhRWplY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWplY3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5MTY3XSwgXCJmMDUyXCIsIFwiTTIyNCAzMmMxMy41IDAgMjYuMyA1LjYgMzUuNCAxNS42bDE3NiAxOTJjMTIuOSAxNCAxNi4yIDM0LjMgOC42IDUxLjhTNDE5IDMyMCA0MDAgMzIwTDQ4IDMyMGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE4MzgsIFwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodFwiXSwgXCJmMzVhXCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnptMzk1LjMgMTEuM2wtMTEyIDExMmMtNC42IDQuNi0xMS41IDUuOS0xNy40IDMuNXMtOS45LTguMy05LjktMTQuOGwwLTY0LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTY0YzAtNi41IDMuOS0xMi4zIDkuOS0xNC44czEyLjktMS4xIDE3LjQgMy41bDExMiAxMTJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0FsdENpcmNsZVJpZ2h0ID0gZmFDaXJjbGVSaWdodDtcbmNvbnN0IGZhUGxhbmVDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTVcIiwgXCJNMjU2IDBjLTM1IDAtNjQgNTkuNS02NCA5My43bDAgODQuNkw4LjEgMjgzLjRjLTUgMi44LTguMSA4LjItOC4xIDEzLjlsMCA2NS41YzAgMTAuNiAxMC4yIDE4LjMgMjAuNCAxNS40bDE3MS42LTQ5IDAgNzAuOS01Ny42IDQzLjJjLTQgMy02LjQgNy44LTYuNCAxMi44bDAgNDJjMCA3LjggNi4zIDE0IDE0IDE0YzEuMyAwIDIuNi0uMiAzLjktLjVMMjU2IDQ4MGwxMTAuMSAzMS41YzEuMyAuNCAyLjYgLjUgMy45IC41YzYgMCAxMS4xLTMuNyAxMy4xLTlDMzQ0LjUgNDcwLjcgMzIwIDQyMi4yIDMyMCAzNjhjMC02MC42IDMwLjYtMTE0IDc3LjEtMTQ1LjZMMzIwIDE3OC4zbDAtODQuNkMzMjAgNTkuNSAyOTIgMCAyNTYgMHpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUZhY2VSb2xsaW5nRXllcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXJvbGxpbmctZXllcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU4MCwgXCJtZWgtcm9sbGluZy1leWVzXCJdLCBcImY1YTVcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAzNjhsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0zMi0xNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40Yy0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjRDMjA4LjUgMTc1LjYgMjI0IDE5OCAyMjQgMjI0em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNGMtMy43IDUuMi01LjggMTEuNi01LjggMTguNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40QzQwMC41IDE3NS42IDQxNiAxOTggNDE2IDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYU1laFJvbGxpbmdFeWVzID0gZmFGYWNlUm9sbGluZ0V5ZXM7XG5jb25zdCBmYU9iamVjdEdyb3VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29iamVjdC1ncm91cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI0N1wiLCBcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMzM3LjEgMEM0NjcuNiAxMi45IDQ4OC4zIDAgNTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0zMzcuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMXpNNDU2LjYgOTZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjR6TTEyOCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTI1NiAzMjBsMzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6XCJdXG59O1xuY29uc3QgZmFDaGFydExpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtbGluZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGluZS1jaGFydFwiXSwgXCJmMjAxXCIsIFwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuN2wtNTcuNC01Ny40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTEyIDExMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNDAgMjIxLjNsNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6XCJdXG59O1xuY29uc3QgZmFMaW5lQ2hhcnQgPSBmYUNoYXJ0TGluZTtcbmNvbnN0IGZhTWFza1ZlbnRpbGF0b3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzay12ZW50aWxhdG9yJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTI0XCIsIFwiTTE1OS4xIDE3NkMxMzkuNCAyMTkuMiAxMjggMjY0LjcgMTI4IDMwMC44YzAgMTUuOSAyLjIgMzEuNCA2LjMgNDZsLTMxLjgtNy45QzcwLjUgMzMwLjkgNDggMzAyLjEgNDggMjY5bDAtODVjMC00LjQgMy42LTggOC04bDEwMy4xIDB6bTI2LTQ4TDU2IDEyOGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4NWMwIDU1LjEgMzcuNSAxMDMuMSA5MC45IDExNi40bDcxLjMgMTcuOGMyMi43IDMwLjUgNTUuNCA1NC4xIDkzLjggNjYuNmwwLTc2LjZjLTE5LjctMTYuNC0zMi00MC4zLTMyLTY2LjljMC00OS41IDQzLTEzNC40IDk2LTEzNC40YzUyLjUgMCA5NiA4NC45IDk2IDEzNC40YzAgMjYuNy0xMi40IDUwLjQtMzIgNjYuOGwwIDc2LjZjMzgtMTIuNiA3MC42LTM2IDkzLjUtNjYuNGw3MS42LTE3LjlDNjAyLjUgMzcyLjEgNjQwIDMyNC4xIDY0MCAyNjlsMC04NWMwLTMwLjktMjUuMS01Ni01Ni01NmwtMTI5LjUgMEM0MTkuNyA3My44IDM3Mi4xIDMyIDMyMCAzMmMtNTIuNiAwLTEwMC4yIDQxLjgtMTM0LjkgOTZ6bTI5NS42IDQ4TDU4NCAxNzZjNC40IDAgOCAzLjYgOCA4bDAgODVjMCAzMy0yMi41IDYxLjgtNTQuNSA2OS45bC0zMS44IDhjNC4yLTE0LjcgNi40LTMwLjEgNi40LTQ2LjFjMC0zNi4xLTExLjYtODEuNi0zMS4zLTEyNC44ek0yODggMzIwbDAgMTkyIDY0IDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODU5NF0sIFwiZjA2MVwiLCBcIk00MzguNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMDYuNyAwTDIzMy40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFTaWduc1Bvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbnMtcG9zdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFwLXNpZ25zXCJdLCBcImYyNzdcIiwgXCJNMjI0IDMyTDY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDM3Ny40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w0OC00OGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNDgtNDhjLTMtMy03LjEtNC43LTExLjMtNC43TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNNDgwIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0zMi02NCAwIDAgMzJMNzAuNiAyMjRjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN0w0NDggMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjR6TTI4OCA0ODBsMC05Ni02NCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYU1hcFNpZ25zID0gZmFTaWduc1Bvc3Q7XG5jb25zdCBmYUNhc2hSZWdpc3RlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXNoLXJlZ2lzdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzg4XCIsIFwiTTY0IDBDNDYuMyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4MCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCAwek05NiA0OGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw5NiA4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzNTIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCA0NDhjLTguOCAwLTE2LTcuMi0xNi0xNnptNDgtMTY4YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4elwiXVxufTtcbmNvbnN0IGZhUGVyc29uQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNpcmNsZS1xdWVzdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0MlwiLCBcIk0xMTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjIzLjFMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZsMjkuNyAwYzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDQ0LjkgNzQuN2MtMTYuMSAxNy42LTI4LjYgMzguNS0zNi42IDYxLjVjLTEuOS0xLjgtMy41LTMuOS00LjktNi4zTDIzMiAyNTYuOSAyMzIgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTM2OCAzMjEuNmwwIDYuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNi40YzAtNS4zIDQuMy05LjYgOS42LTkuNmw0MC41IDBjNy43IDAgMTMuOSA2LjIgMTMuOSAxMy45YzAgNS4yLTIuOSA5LjktNy40IDEyLjNsLTMyIDE2LjhjLTUuMyAyLjgtOC42IDguMi04LjYgMTQuMmwwIDE0LjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTUuMSAyMy41LTEyLjNjMTUuMS03LjkgMjQuNS0yMy42IDI0LjUtNDAuNmMwLTI1LjQtMjAuNi00NS45LTQ1LjktNDUuOWwtNDAuNSAwYy0yMyAwLTQxLjYgMTguNi00MS42IDQxLjZ6XCJdXG59O1xuY29uc3QgZmFIID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2gnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMDRdLCBcIjQ4XCIsIFwiTTMyMCAyNTZsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOEw2NCAxOTIgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MiAyNTYgMHpcIl1cbn07XG5jb25zdCBmYVRhcnAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFycCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU3YlwiLCBcIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtMTYwek00NDggNDQ4TDU3NiAzMjBsLTEyOCAwIDAgMTI4ek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhU2NyZXdkcml2ZXJXcmVuY2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NyZXdkcml2ZXItd3JlbmNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0b29sc1wiXSwgXCJmN2Q5XCIsIFwiTTc4LjYgNUM2OS4xLTIuNCA1NS42LTEuNSA0NyA3TDcgNDdjLTguNSA4LjUtOS40IDIyLTIuMSAzMS42bDgwIDEwNGM0LjUgNS45IDExLjYgOS40IDE5IDkuNGw1NC4xIDAgMTA5IDEwOWMtMTQuNyAyOS0xMCA2NS40IDE0LjMgODkuNmwxMTIgMTEyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMTItMTEyYy0yNC4yLTI0LjItNjAuNi0yOS04OS42LTE0LjNsLTEwOS0xMDkgMC01NC4xYzAtNy41LTMuNS0xNC41LTkuNC0xOUw3OC42IDV6TTE5LjkgMzk2LjFDNy4yIDQwOC44IDAgNDI2LjEgMCA0NDQuMUMwIDQ4MS42IDMwLjQgNTEyIDY3LjkgNTEyYzE4IDAgMzUuMy03LjIgNDgtMTkuOUwyMzMuNyAzNzQuM2MtNy44LTIwLjktOS00My42LTMuNi02NS4xbC02MS43LTYxLjdMMTkuOSAzOTYuMXpNNTEyIDE0NGMwLTEwLjUtMS4xLTIwLjctMy4yLTMwLjVjLTIuNC0xMS4yLTE2LjEtMTQuMS0yNC4yLTZsLTYzLjkgNjMuOWMtMyAzLTcuMSA0LjctMTEuMyA0LjdMMzUyIDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNTcuNGMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDYzLjktNjMuOWM4LjEtOC4xIDUuMi0yMS44LTYtMjQuMkMzODguNyAxLjEgMzc4LjUgMCAzNjggMEMyODguNSAwIDIyNCA2NC41IDIyNCAxNDRsMCAuOCA4NS4zIDg1LjNjMzYtOS4xIDc1LjggLjUgMTA0IDI4LjdMNDI5IDI3NC41YzQ5LTIzIDgzLTcyLjggODMtMTMwLjV6TTU2IDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbmNvbnN0IGZhVG9vbHMgPSBmYVNjcmV3ZHJpdmVyV3JlbmNoO1xuY29uc3QgZmFBcnJvd3NUb0V5ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdG8tZXllJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGJmXCIsIFwiTTE1IDE1QzI0LjQgNS43IDM5LjYgNS43IDQ5IDE1bDYzIDYzTDExMiA0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzguMSAwTDE1IDQ5QzUuNyAzOS42IDUuNyAyNC40IDE1IDE1ek0xMzMuNSAyNDMuOUMxNTguNiAxOTMuNiAyMjIuNyAxMTIgMzIwIDExMnMxNjEuNCA4MS42IDE4Ni41IDEzMS45YzMuOCA3LjYgMy44IDE2LjUgMCAyNC4yQzQ4MS40IDMxOC40IDQxNy4zIDQwMCAzMjAgNDAwcy0xNjEuNC04MS42LTE4Ni41LTEzMS45Yy0zLjgtNy42LTMuOC0xNi41IDAtMjQuMnpNMzIwIDMyMGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNNTkxIDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjMgNjMgMzguMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAzOC4xIDYzLTYzek0xNSA0OTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDYzLTYzTDQwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zOC4xTDQ5IDQ5N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6bTU3NiAwbC02My02MyAwIDM4LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC05NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zOC4xIDAgNjMgNjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG5jb25zdCBmYVBsdWdDaXJjbGVCb2x0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWJvbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWJcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnpcIl1cbn07XG5jb25zdCBmYUhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTUzLCAxMjgxNTQsIDEyODE1NSwgMTI4MTU2LCAxMjg0MjAsIDEyOTI5MywgMTI5Mjk0LCAxMjk1MDUsIDk4MjksIDEwMDg0LCA2MTU3OF0sIFwiZjAwNFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45TDQ2NC40IDMwMC40YzMwLjQtMjguMyA0Ny42LTY4IDQ3LjYtMTA5LjV2LTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xdjUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6XCJdXG59O1xuY29uc3QgZmFNYXJzQW5kVmVudXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1hbmQtdmVudXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODkzXSwgXCJmMjI0XCIsIFwiTTMzNy44IDE0LjhDMzQxLjUgNS44IDM1MC4zIDAgMzYwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMTJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktMjQuNyAyNC43QzQwNyAxNjMuMyA0MTYgMTkyLjYgNDE2IDIyNGMwIDgwLjItNTkgMTQ2LjYtMTM2IDE1OC4ybDAgMjUuOCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0yNS44QzE1NSAzNzAuNiA5NiAzMDQuMiA5NiAyMjRjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjMzkuNiAwIDc1LjkgMTQuNCAxMDMuOCAzOC4yTDM4Mi4xIDgwIDM0MyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMnpNNDQ4IDQ4czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek0zNTIgMjI0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS11c2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJob21lLXVzZXJcIl0sIFwiZTFiMFwiLCBcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWwtMzIgMCAuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zbC0zMjAuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MC40LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDU2NC44IDIzMS41YzggNyAxMiAxNSAxMSAyNHpNMzUyIDIyNGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6bS05NiA5NmMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpcIl1cbn07XG5jb25zdCBmYUhvbWVVc2VyID0gZmFIb3VzZVVzZXI7XG5jb25zdCBmYUR1bXBzdGVyRmlyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkdW1wc3Rlci1maXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzk0XCIsIFwiTTQ5LjcgMzJsOTAuOCAwTDExNC45IDE2MGwtOTQgMEM5LjMgMTYwIDAgMTUwLjcgMCAxMzkuMWMwLTIuMSAuMy00LjEgLjktNi4xTDI2LjggNDguOUMyOS45IDM4LjkgMzkuMiAzMiA0OS43IDMyek0yNzIgMTYwbC0xMjQuNSAwTDE3My4xIDMyIDI3MiAzMmwwIDEyOHptMzIgMGwwLTEyOCA5OC45IDAgMTQuNCA3Mi4xYy0xLjcgMS4xLTMuMyAyLjQtNC44IDMuOGMtMTguNCAxNi40LTM1LjQgMzQtNTAuNSA1Mi4xbC01OCAwem0yMDkuOS0yMy43Yy0xLjcgMS42LTMuNCAzLjItNSA0LjhDNDk4IDEyOS42IDQ4Ni43IDExOC42IDQ3NSAxMDhjLTcuNi02LjktMTctMTAuOC0yNi42LTExLjhMNDM1LjUgMzJsOTAuOCAwYzEwLjUgMCAxOS44IDYuOSAyMi45IDE2LjlMNTc1LjEgMTMzYy4yIC43IC40IDEuNCAuNSAyLjFjLTE3LjgtMTUtNDQuMy0xNC42LTYxLjcgMS4yek0zMjUuMiAyMTAuN0MzMDQuMyAyNDQuNSAyODggMjgyLjkgMjg4IDMxOC4xYzAgNDkuMyAxOC42IDk1LjIgNDkuNiAxMjkuOUwxMjggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDQ0IDI4OGwtMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0IDAtNC0zMiAzMDUuNSAwYy00LjQgNi4yLTguNSAxMi41LTEyLjMgMTguN3ptMTgwLjYtMzQuNUw1MTggMTYyLjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOWM3LjIgMCAxNC4zIDIuNiAxOS45IDcuOGMxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjZDNjI5IDI1OS4yIDY0MCAyOTAuMiA2NDAgMzIwLjJDNjQwIDQwOC44IDU2OC43IDQ4MCA0ODAgNDgwYy04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44YzAtMzcuMyAxNi03My40IDM2LjgtMTA0LjVjMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yYzUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVjMTQuMSAuMyAyMy44IDExLjQgMzIuNyAyMS42YzAgMCAwIDAgMCAwYzIgMi4zIDQgNC42IDYgNi43bDE5IDE5Ljl6TTU0NCAzNjguMmMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMjk1LjEgNDE2IDMzMS42IDQxNiAzNjguMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jcmFjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTNiMVwiLCBcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEwMi4zIDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI4OCAzNjhsLTYwLjItODIuOGMtMTAuOS0xNSA4LjItMzMuNSAyMi44LTIybDExNy45IDkyLjZjOCA2LjMgOC4yIDE4LjQgLjQgMjQuOUwyODggNDQ4bDM4LjQgNjQgMTIyLjEgMGMzNS41IDAgNjQuMi0yOC44IDY0LTY0LjNsLS43LTE2MC4yIDMyIDB6XCJdXG59O1xuY29uc3QgZmFNYXJ0aW5pR2xhc3NDaXRydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcy1jaXRydXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNvY2t0YWlsXCJdLCBcImY1NjFcIiwgXCJNNDMyIDI0MGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtMzUuNSAwLTY2LjYgMTkuMy04My4yIDQ4bC01Mi42IDBDMzE2IDQwLjEgMzY5LjMgMCA0MzIgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NGMtMjcuNyAwLTUzLjUtNy44LTc1LjUtMjEuM2wzNS40LTM1LjRjMTIuMiA1LjYgMjUuOCA4LjcgNDAuMSA4Ljd6TTEuOCAxNDIuOEM1LjUgMTMzLjggMTQuMyAxMjggMjQgMTI4bDM2OCAwYzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtMTc3IDE3N0wyMzIgNDY0bDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTg4IDAtODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtMTE4LjFMNyAxNjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJ6XCJdXG59O1xuY29uc3QgZmFDb2NrdGFpbCA9IGZhTWFydGluaUdsYXNzQ2l0cnVzO1xuY29uc3QgZmFGYWNlU3VycHJpc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zdXJwcmlzZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1OCwgXCJzdXJwcmlzZVwiXSwgXCJmNWMyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjU2IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVN1cnByaXNlID0gZmFGYWNlU3VycHJpc2U7XG5jb25zdCBmYUJvdHRsZVdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvdHRsZS13YXRlcicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTRjNVwiLCBcIk0xMjAgMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDBMOTYgNjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMzIgMTY3LjVjMC0xOS41IDEwLTM3LjYgMjYuNi00Ny45bDE1LjgtOS45Qzg4LjcgMTAwLjcgMTA1LjIgOTYgMTIyLjEgOTZsNzUuOCAwYzE2LjkgMCAzMy40IDQuNyA0Ny43IDEzLjdsMTUuOCA5LjlDMjc4IDEyOS45IDI4OCAxNDggMjg4IDE2Ny41YzAgMTctNy41IDMyLjMtMTkuNCA0Mi42QzI4MC42IDIyMS43IDI4OCAyMzggMjg4IDI1NmMwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGMxMy4zIDExLjcgMjEuNyAyOC45IDIxLjcgNDhzLTguNCAzNi4zLTIxLjcgNDhjMTMuMyAxMS43IDIxLjcgMjguOSAyMS43IDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0xOS4xIDguNC0zNi4zIDIxLjctNDhDNDAuNCAzODguMyAzMiAzNzEuMSAzMiAzNTJzOC40LTM2LjMgMjEuNy00OEM0MC40IDI5Mi4zIDMyIDI3NS4xIDMyIDI1NmMwLTE4IDcuNC0zNC4zIDE5LjQtNDUuOUMzOS41IDE5OS43IDMyIDE4NC41IDMyIDE2Ny41ek05NiAyNDBjMCA4LjggNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgMTEyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVQYXVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcGF1c2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5MiwgXCJwYXVzZS1jaXJjbGVcIl0sIFwiZjI4YlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhUGF1c2VDaXJjbGUgPSBmYUNpcmNsZVBhdXNlO1xuY29uc3QgZmFUb2lsZXRQYXBlclNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldC1wYXBlci1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3MlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMDkuNy04NkM1NjkuOSAzNzQgNjA4IDI5MS45IDYwOCAxOTJDNjA4IDg2IDU2NSAwIDUxMiAwcy05NiA4Ni05NiAxOTJjMCA0OS4xIDkuMiA5My45IDI0LjQgMTI3LjlsLTU5LTQ2LjJjMS42LTI0LjggMi42LTUyIDIuNi04MS42YzAtNjUuNSAxMy4yLTE0Mi40IDYwLjItMTkyTDE2MCAwYy0yNC44IDAtNDcuNCAxOC44LTY0LjQgNDkuNkwzOC44IDUuMXpNMzY3LjMgMzg1LjRMNjYuNSAxNDguNEM2NC45IDE2Mi40IDY0IDE3NyA2NCAxOTJjMCAxMDEuNS0xMS43IDE3MC44LTIzIDIxMy45Yy01LjEgMTkuNC0xMC43IDM5LjktMjAuNSA1Ny43Yy01LjkgOS45LTYuMSAyMi4xLS40IDMyLjJTMzYuNSA1MTIgNDggNTEybDIzNy45IDBjMjIuMyAwIDQ1LjQtMTIuMSA1NS40LTM2LjFjNy40LTE3LjcgMTcuNS00Ny4yIDI2LTkwLjZ6TTU0NCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NHMzMiAyOC43IDMyIDY0elwiXVxufTtcbmNvbnN0IGZhQXBwbGVXaG9sZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcHBsZS13aG9sZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzgyMiwgMTI3ODIzLCBcImFwcGxlLWFsdFwiXSwgXCJmNWQxXCIsIFwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDB6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwYzI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zYzE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMGMyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zYzc2LjMgMCAxMTIgODMuNyAxMTIgMTYwYzAgMTI4LTgwIDIyNC0xNjAgMjI0Yy0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zYy04LjEtMi44LTE2LjktMi44LTI1IDBjLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zQzgwIDUxMiAwIDQxNiAwIDI4OHpcIl1cbn07XG5jb25zdCBmYUFwcGxlQWx0ID0gZmFBcHBsZVdob2xlO1xuY29uc3QgZmFLaXRjaGVuU2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tpdGNoZW4tc2V0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTFhXCIsIFwiTTI0MCAxNDRBOTYgOTYgMCAxIDAgNDggMTQ0YTk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4QzY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsODAgMCAxNiAwIDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhUiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTE0XSwgXCI1MlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjg4IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwTDI2MS44IDQ2Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRMNjQgMzJ6TTE3NiAyNTZMNjQgMjU2IDY0IDk2bDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVRdWFydGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLXF1YXJ0ZXInLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInRlbXBlcmF0dXJlLTFcIiwgXCJ0aGVybW9tZXRlci0xXCIsIFwidGhlcm1vbWV0ZXItcXVhcnRlclwiXSwgXCJmMmNhXCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1MC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3pcIl1cbn07XG5jb25zdCBmYVRlbXBlcmF0dXJlMSA9IGZhVGVtcGVyYXR1cmVRdWFydGVyO1xuY29uc3QgZmFUaGVybW9tZXRlcjEgPSBmYVRlbXBlcmF0dXJlUXVhcnRlcjtcbmNvbnN0IGZhVGhlcm1vbWV0ZXJRdWFydGVyID0gZmFUZW1wZXJhdHVyZVF1YXJ0ZXI7XG5jb25zdCBmYUN1YmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiMlwiLCBcIk0yMzQuNSA1LjdjMTMuOS01IDI5LjEtNSA0My4xIDBsMTkyIDY4LjZDNDk1IDgzLjQgNTEyIDEwNy41IDUxMiAxMzQuNmwwIDI0Mi45YzAgMjctMTcgNTEuMi00Mi41IDYwLjNsLTE5MiA2OC42Yy0xMy45IDUtMjkuMSA1LTQzLjEgMGwtMTkyLTY4LjZDMTcgNDI4LjYgMCA0MDQuNSAwIDM3Ny40TDAgMTM0LjZjMC0yNyAxNy01MS4yIDQyLjUtNjAuM2wxOTItNjguNnpNMjU2IDY2TDgyLjMgMTI4IDI1NiAxOTBsMTczLjctNjJMMjU2IDY2em0zMiAzNjguNmwxNjAtNTcuMSAwLTE4OEwyODggMjQ2LjZsMCAxODh6XCJdXG59O1xuY29uc3QgZmFCaXRjb2luU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaXRjb2luLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImUwYjRcIiwgXCJNNDggMzJDNDggMTQuMyA2Mi4zIDAgODAgMHMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMmMwIDEuNS0uMSAzLjEtLjMgNC41QzI1NC4xIDgyLjIgMjg4IDEyNS4xIDI4OCAxNzZjMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOWMzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTYuMyAwQzE4LjcgNDQ4IDAgNDI5LjMgMCA0MDYuM0wwIDI4OGwwLTIyLjNMMCAyMjQgMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDQ4IDY0bDAtMzJ6TTY0IDIyNGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw2NCAxMjhsMCA5NnptMTEyIDY0TDY0IDI4OGwwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhU2hpZWxkRG9nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1kb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NzNcIiwgXCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgNDQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDE5Mmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjNjLTEuOCAwLTMuNi0uNC01LjItMS4xbC05OC43LTQyLjNjLTYuNi0yLjgtMTAuOC05LjMtMTAuOC0xNi40YzAtMi44IC42LTUuNSAxLjktOGwxNS0zMHpNMTYwIDE2MGw0MCAwIDggMCAwIDMyIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbmNvbnN0IGZhU29sYXJQYW5lbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb2xhci1wYW5lbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjViYVwiLCBcIk0xMjIuMiAwQzkxLjcgMCA2NS41IDIxLjUgNTkuNSA1MS40TDguMyAzMDcuNEMuNCAzNDcgMzAuNiAzODQgNzEgMzg0bDIxNyAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDIxNyAwYzQwLjQgMCA3MC43LTM2LjkgNjIuOC03Ni42bC01MS4yLTI1NkM1NzQuNSAyMS41IDU0OC4zIDAgNTE3LjggMEwxMjIuMiAwek0yNjAuOSA2NGwxMTguMiAwIDEwLjQgMTA0LTEzOSAwTDI2MC45IDY0ek0yMDIuMyAxNjhsLTEwMC44IDBMMTIyLjIgNjRsOTAuNCAwTDIwMi4zIDE2OHpNOTEuOCAyMTZsMTA1LjYgMEwxODcuMSAzMjAgNzEgMzIwIDkxLjggMjE2em0xNTMuOSAwbDE0OC42IDAgMTAuNCAxMDQtMTY5LjQgMCAxMC40LTEwNHptMTk2LjggMGwxMDUuNiAwTDU2OSAzMjBsLTExNiAwTDQ0Mi41IDIxNnptOTYtNDhsLTEwMC44IDBMNDI3LjMgNjRsOTAuNCAwIDMxLjQtNi4zTDUxNy44IDY0bDIwLjggMTA0elwiXVxufTtcbmNvbnN0IGZhTG9ja09wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jay1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2MxXCIsIFwiTTM1MiAxNDRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OEM1NzYgNjQuNSA1MTEuNSAwIDQzMiAwUzI4OCA2NC41IDI4OCAxNDRsMCA0OEw2NCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFFbGV2YXRvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGV2YXRvcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE2ZFwiLCBcIk0xMzIuNyA0LjdsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40czguMyA5LjkgMTQuOCA5LjlsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzU2LjcgOTEuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzQzOC41IDAgNDMyIDBMMzA0IDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFRyYW5zZmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtdHJhbnNmZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MjhcIiwgXCJNNTM1IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN3MtMi41IDEyLjUtNyAxN2wtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjMtMjNMMzg0IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzQuMSAwTDUzNSA0MXpNMTA1IDM3N2wtMjMgMjNMMjU2IDQwMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4MS45IDQ0OGwyMyAyM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgNDQxYy00LjUtNC41LTctMTAuNi03LTE3czIuNS0xMi41IDctMTdsNjQtNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek05NiA2NGwyNDEuOSAwYy0zLjcgNy4yLTUuOSAxNS4zLTUuOSAyNGMwIDI4LjcgMjMuMyA1MiA1MiA1MmwxMTcuNCAwYy00IDE3IC42IDM1LjUgMTMuOCA0OC44YzIwLjMgMjAuMyA1My4yIDIwLjMgNzMuNSAwTDYwOCAxNjkuNSA2MDggMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNDEuOSAwYzMuNy03LjIgNS45LTE1LjMgNS45LTI0YzAtMjguNy0yMy4zLTUyLTUyLTUybC0xMTcuNCAwYzQtMTctLjYtMzUuNS0xMy44LTQ4LjhjLTIwLjMtMjAuMy01My4yLTIwLjMtNzMuNSAwTDMyIDM0Mi41IDMyIDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHptNjQgNjRsLTY0IDAgMCA2NGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNTQ0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsNjQgMCAwLTY0ek0zMjAgMzUyYTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwiXVxufTtcbmNvbnN0IGZhTW9uZXlCaWxsVHJlbmRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLXRyZW5kLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTI5XCIsIFwiTTQ3MC43IDkuNGMzIDMuMSA1LjMgNi42IDYuOSAxMC4zczIuNCA3LjggMi40IDEyLjJjMCAwIDAgLjEgMCAuMWMwIDAgMCAwIDAgMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguN0wzMTAuNiAyMTQuNmMtMTEuOCAxMS44LTMwLjggMTIuNi00My41IDEuN0wxNzYgMTM4LjEgODQuOCAyMTYuM2MtMTMuNCAxMS41LTMzLjYgOS45LTQ1LjEtMy41cy05LjktMzMuNiAzLjUtNDUuMWwxMTItOTZjMTItMTAuMyAyOS43LTEwLjMgNDEuNyAwbDg5LjUgNzYuN0wzNzAuNyA2NCAzNTIgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMHMwIDAgMCAwYzguOCAwIDE2LjggMy42IDIyLjYgOS4zbC4xIC4xek0wIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzA0ek00OCA0MTZsMCA0OCA0OCAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek05NiAzMDRsLTQ4IDAgMCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OHpNNDY0IDQxNmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsNDggMCAwLTQ4ek00MTYgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDAtNDgtNDggMHptLTk2IDgwYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtZmxvb2Qtd2F0ZXItY2lyY2xlLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBmXCIsIFwiTTI4OCAxNDRBMTQ0IDE0NCAwIDEgMCAwIDE0NGExNDQgMTQ0IDAgMSAwIDI4OCAwek0xNDAuNyA3Ni43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDU2IDU2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC01NiA1NmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxNjkuNCAxNjAgODAgMTYwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg5LjQgMEwxNDAuNyA5OS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzIwIDE0NGMwIDU3LjMtMjcuNCAxMDguMi02OS44IDE0MC4zYzExLjgtMy42IDIzLTkuNCAzMy0xNi4yYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjQgNzguMSAzLjRjMi4xIDEuNyA0LjIgMy4zIDYuNSA0LjlsLS4zLTg0LjQgMTYuNiAwYzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFzLS40LTI3LjYtMTEuNi0zNS44bC0xNzYtMTI4QzQwNy42LTIgMzkyLjQtMiAzODEuMiA2LjFMMzAxIDY0LjRjMTIuMSAyMy45IDE5IDUwLjkgMTkgNzkuNnptMTguNSAxNjUuOWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNzkgMzI1LjQgMjUxLjUgMzM2IDIyNCAzMzZjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDM4OS43IDE5MSA0MDAgMjI0IDQwMGMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS41LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0NzEuNCAzMjUuMiA0NDIuOSAzMzYgNDE2IDMzNmMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xem0wIDExMmMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNzkgNDM3LjQgMjUxLjUgNDQ4IDIyNCA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDUwMS43IDE5MSA1MTIgMjI0IDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0NzEuNCA0MzcuMiA0NDIuOSA0NDggNDE2IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUG9sbEhvcml6b250YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBvbGwtaG9yaXpvbnRhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicG9sbC1oXCJdLCBcImY2ODJcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI1NiAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptNjQgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwek0xOTIgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFQb2xsSCA9IGZhU3F1YXJlUG9sbEhvcml6b250YWw7XG5jb25zdCBmYUNpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMDgsIDEyODMwOSwgMTI4OTkyLCAxMjg5OTMsIDEyODk5NCwgMTI4OTk1LCAxMjg5OTYsIDk2NzksIDk4OTgsIDk4OTksIDExMDQ0LCA2MTcwOCwgNjE5MTVdLCBcImYxMTFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6XCJdXG59O1xuY29uc3QgZmFCYWNrd2FyZEZhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFja3dhcmQtZmFzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTgsIFwiZmFzdC1iYWNrd2FyZFwiXSwgXCJmMDQ5XCIsIFwiTTQ5My42IDQ0NWMtMTEuMiA1LjMtMjQuNSAzLjYtMzQuMS00LjRMMjg4IDI5Ny43IDI4OCA0MTZjMCAxMi40LTcuMiAyMy43LTE4LjQgMjlzLTI0LjUgMy42LTM0LjEtNC40TDY0IDI5Ny43IDY0IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0czMyIDE0LjMgMzIgMzJsMCAxMTguM0wyMzUuNSA3MS40YzkuNS03LjkgMjIuOC05LjcgMzQuMS00LjRTMjg4IDgzLjYgMjg4IDk2bDAgMTE4LjNMNDU5LjUgNzEuNGM5LjUtNy45IDIyLjgtOS43IDM0LjEtNC40UzUxMiA4My42IDUxMiA5NmwwIDMyMGMwIDEyLjQtNy4yIDIzLjctMTguNCAyOXpcIl1cbn07XG5jb25zdCBmYUZhc3RCYWNrd2FyZCA9IGZhQmFja3dhcmRGYXN0O1xuY29uc3QgZmFSZWN5Y2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY3ljbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODQyLCA5ODUwLCA5ODUxXSwgXCJmMWI4XCIsIFwiTTE3NC43IDQ1LjFDMTkyLjIgMTcgMjIzIDAgMjU2IDBzNjMuOCAxNyA4MS4zIDQ1LjFsMzguNiA2MS43IDI3LTE1LjZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNsLTIzLjQgODcuNGMtMy40IDEyLjgtMTYuNiAyMC40LTI5LjQgMTdsLTg3LjQtMjMuNGMtOS40LTIuNS0xNi4zLTEwLjQtMTcuNi0yMHMzLjQtMTkuMSAxMS44LTIzLjlsMjguNC0xNi40TDI4MyA3OWMtNS44LTkuMy0xNi0xNS0yNy0xNXMtMjEuMiA1LjctMjcgMTVsLTE3LjUgMjhjLTkuMiAxNC44LTI4LjYgMTkuNS00My42IDEwLjVjLTE1LjMtOS4yLTIwLjItMjkuMi0xMC43LTQ0LjRsMTcuNS0yOHpNNDI5LjUgMjUxLjljMTUtOSAzNC40LTQuMyA0My42IDEwLjVsMjQuNCAzOS4xYzkuNCAxNS4xIDE0LjQgMzIuNCAxNC42IDUwLjJjLjMgNTMuMS00Mi43IDk2LjQtOTUuOCA5Ni40TDMyMCA0NDhsMCAzMmMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNjQtNjRjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4ybDAgMzIgOTYuMiAwYzE3LjYgMCAzMS45LTE0LjQgMzEuOC0zMmMwLTUuOS0xLjctMTEuNy00LjgtMTYuN2wtMjQuNC0zOS4xYy05LjUtMTUuMi00LjctMzUuMiAxMC43LTQ0LjR6bS0zNjQuNi0zMUwzNiAyMDQuMmMtOC40LTQuOS0xMy4xLTE0LjMtMTEuOC0yMy45czguMi0xNy41IDE3LjYtMjBsODcuNC0yMy40YzEyLjgtMy40IDI2IDQuMiAyOS40IDE3TDE4MiAyNDEuMmMyLjUgOS40LS45IDE5LjMtOC42IDI1LjNzLTE4LjIgNi42LTI2LjYgMS43bC0yNi41LTE1LjNMNjguOCAzMzUuM2MtMy4xIDUtNC44IDEwLjgtNC44IDE2LjdjLS4xIDE3LjYgMTQuMiAzMiAzMS44IDMybDMyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuMiAwQzQyLjcgNDQ4LS4zIDQwNC44IDAgMzUxLjZjLjEtMTcuOCA1LjEtMzUuMSAxNC42LTUwLjJsNTAuMy04MC41elwiXVxufTtcbmNvbnN0IGZhVXNlckFzdHJvbmF1dCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWFzdHJvbmF1dCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjRmYlwiLCBcIk0zNzAuNyA5Ni4xQzM0Ni4xIDM5LjUgMjg5LjcgMCAyMjQgMFMxMDEuOSAzOS41IDc3LjMgOTYuMUM2MC45IDk3LjUgNDggMTExLjIgNDggMTI4bDAgNjRjMCAxNi44IDEyLjkgMzAuNSAyOS4zIDMxLjlDMTAxLjkgMjgwLjUgMTU4LjMgMzIwIDIyNCAzMjBzMTIyLjEtMzkuNSAxNDYuNy05Ni4xYzE2LjQtMS40IDI5LjMtMTUuMSAyOS4zLTMxLjlsMC02NGMwLTE2LjgtMTIuOS0zMC41LTI5LjMtMzEuOXpNMzM2IDE0NGwwIDE2YzAgNTMtNDMgOTYtOTYgOTZsLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTg5LjMgMTYyLjdsLTYtMjEuMmMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTZ6TTExMi43IDMxNi41QzQ2LjcgMzQyLjYgMCA0MDcgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDk4LjMgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQgOTguMyAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43YzAtNzUuMy00Ni43LTEzOS43LTExMi43LTE2NS44QzMwMy45IDMzOC44IDI2NS41IDM1MiAyMjQgMzUycy03OS45LTEzLjItMTExLjMtMzUuNXpNMTc2IDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnptOTYgMzJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhUGxhbmVTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2OVwiLCBcIk01MTQuMyAxOTJjMzQuMiAwIDkzLjcgMjkgOTMuNyA2NGMwIDM2LTU5LjUgNjQtOTMuNyA2NGwtNzMuOCAwTDYzMC44IDQ2OS4xYzEwLjQgOC4yIDEyLjMgMjMuMyA0LjEgMzMuN3MtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yUzI4LjQtMy4xIDM4LjggNS4xTDIzOC4xIDE2MS4zIDE5Ny44IDIwLjRDMTk0LjkgMTAuMiAyMDIuNiAwIDIxMy4yIDBsNTYuMiAwYzExLjUgMCAyMi4xIDYuMiAyNy44IDE2LjFMMzk3LjcgMTkybDExNi42IDB6TTQxLjUgMTI4LjdsMzIxIDI1Mi45TDI5Ny4yIDQ5NS45Yy01LjcgMTAtMTYuMyAxNi4xLTI3LjggMTYuMWwtNTYuMiAwYy0xMC42IDAtMTguMy0xMC4yLTE1LjQtMjAuNGw0OS0xNzEuNkwxNDQgMzIwbC00My4yIDU3LjZjLTMgNC03LjggNi40LTEyLjggNi40bC00MiAwYy03LjggMC0xNC02LjMtMTQtMTRjMC0xLjMgLjItMi42IC41LTMuOUw2NCAyNTYgMzIuNSAxNDUuOWMtLjQtMS4zLS41LTIuNi0uNS0zLjljMC02LjIgNC0xMS40IDkuNS0xMy4zelwiXVxufTtcbmNvbnN0IGZhVHJhZGVtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWRlbWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgWzg0ODJdLCBcImYyNWNcIiwgXCJNMzQ1LjYgMTA4LjhjLTguMy0xMS0yMi43LTE1LjUtMzUuNy0xMS4yUzI4OCAxMTQuMiAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgODYuNCAxMTUuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44czE5LjYtNC43IDI1LjYtMTIuOEw1NzYgMjI0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRzLTI3LjUgLjEtMzUuNyAxMS4yTDQ2NCAyNjYuNyAzNDUuNiAxMDguOHpNMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhQmFza2V0YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXNrZXRiYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTM2LCBcImJhc2tldGJhbGwtYmFsbFwiXSwgXCJmNDM0XCIsIFwiTTg2LjYgNjRsODUuMiA4NS4yQzE5NC41IDEyMS43IDIwOCA4Ni40IDIwOCA0OGMwLTE0LjctMi0yOC45LTUuNy00Mi40QzE1OC42IDE1IDExOSAzNS41IDg2LjYgNjR6TTY0IDg2LjZDMzUuNSAxMTkgMTUgMTU4LjYgNS42IDIwMi4zQzE5LjEgMjA2IDMzLjMgMjA4IDQ4IDIwOGMzOC40IDAgNzMuNy0xMy41IDEwMS4zLTM2LjFMNjQgODYuNnpNMjU2IDBjLTcuMyAwLTE0LjYgLjMtMjEuOCAuOUMyMzggMTYgMjQwIDMxLjggMjQwIDQ4YzAgNDcuMy0xNy4xIDkwLjUtNDUuNCAxMjRMMjU2IDIzMy40IDQyNS40IDY0QzM4MC4yIDI0LjIgMzIwLjkgMCAyNTYgMHpNNDggMjQwYy0xNi4yIDAtMzItMi00Ny4xLTUuOEMuMyAyNDEuNCAwIDI0OC43IDAgMjU2YzAgNjQuOSAyNC4yIDEyNC4yIDY0IDE2OS40TDIzMy40IDI1NiAxNzIgMTk0LjZDMTM4LjUgMjIyLjkgOTUuMyAyNDAgNDggMjQwem00NjMuMSAzNy44Yy42LTcuMiAuOS0xNC41IC45LTIxLjhjMC02NC45LTI0LjItMTI0LjItNjQtMTY5LjRMMjc4LjYgMjU2IDM0MCAzMTcuNGMzMy40LTI4LjMgNzYuNy00NS40IDEyNC00NS40YzE2LjIgMCAzMiAyIDQ3LjEgNS44em0tNC43IDMxLjlDNDkyLjkgMzA2IDQ3OC43IDMwNCA0NjQgMzA0Yy0zOC40IDAtNzMuNyAxMy41LTEwMS4zIDM2LjFMNDQ4IDQyNS40YzI4LjUtMzIuMyA0OS4xLTcxLjkgNTguNC0xMTUuN3pNMzQwLjEgMzYyLjdDMzE3LjUgMzkwLjMgMzA0IDQyNS42IDMwNCA0NjRjMCAxNC43IDIgMjguOSA1LjcgNDIuNEMzNTMuNCA0OTcgMzkzIDQ3Ni41IDQyNS40IDQ0OGwtODUuMi04NS4yek0zMTcuNCAzNDBMMjU2IDI3OC42IDg2LjYgNDQ4YzQ1LjEgMzkuOCAxMDQuNCA2NCAxNjkuNCA2NGM3LjMgMCAxNC42LS4zIDIxLjgtLjlDMjc0IDQ5NiAyNzIgNDgwLjIgMjcyIDQ2NGMwLTQ3LjMgMTcuMS05MC41IDQ1LjQtMTI0elwiXVxufTtcbmNvbnN0IGZhQmFza2V0YmFsbEJhbGwgPSBmYUJhc2tldGJhbGw7XG5jb25zdCBmYVNhdGVsbGl0ZURpc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlLWRpc2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjVdLCBcImY3YzBcIiwgXCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyQzM4My4xIDAgNTEyIDEyOC45IDUxMiAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJDNDQ4IDE2NC4zIDM0Ny43IDY0IDIyNCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTYwLjYgMjIwLjZMMTY0LjcgMzI0LjdsMjguNC0yOC40Yy0uNy0yLjYtMS4xLTUuNC0xLjEtOC4zYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTIuOSAwLTUuNi0uNC04LjMtMS4xbC0yOC40IDI4LjRMMjkxLjQgNDUxLjRjMTQuNSAxNC41IDExLjggMzguOC03LjMgNDYuM0MyNjAuNSA1MDYuOSAyMzQuOSA1MTIgMjA4IDUxMkM5My4xIDUxMiAwIDQxOC45IDAgMzA0YzAtMjYuOSA1LjEtNTIuNSAxNC40LTc2LjFjNy41LTE5IDMxLjgtMjEuOCA0Ni4zLTcuM3pNMjI0IDk2YzEwNiAwIDE5MiA4NiAxOTIgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE0NjcsIFwiYXJyb3ctYWx0LWNpcmNsZS11cFwiXSwgXCJmMzViXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM5NS4zbDExMiAxMTJjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNHMtOC4zIDkuOS0xNC44IDkuOWwtNjQgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTY0IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMTItMTEyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dBbHRDaXJjbGVVcCA9IGZhQ2lyY2xlVXA7XG5jb25zdCBmYU1vYmlsZVNjcmVlbkJ1dHRvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb2JpbGUtc2NyZWVuLWJ1dHRvbicsXG4gIGljb246IFszODQsIDUxMiwgW1wibW9iaWxlLWFsdFwiXSwgXCJmM2NkXCIsIFwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMjI0IDQ0OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMDQgNjRMODAgNjRsMCAzMjAgMjI0IDAgMC0zMjB6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVBbHQgPSBmYU1vYmlsZVNjcmVlbkJ1dHRvbjtcbmNvbnN0IGZhVm9sdW1lSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2x1bWUtaGlnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI2NiwgXCJ2b2x1bWUtdXBcIl0sIFwiZjAyOFwiLCBcIk01MzMuNiAzMi41QzU5OC41IDg1LjIgNjQwIDE2NS44IDY0MCAyNTZzLTQxLjUgMTcwLjctMTA2LjQgMjIzLjVjLTEwLjMgOC40LTI1LjQgNi44LTMzLjgtMy41cy02LjgtMjUuNCAzLjUtMzMuOEM1NTcuNSAzOTguMiA1OTIgMzMxLjIgNTkyIDI1NnMtMzQuNS0xNDIuMi04OC43LTE4Ni4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek00NzMuMSAxMDdjNDMuMiAzNS4yIDcwLjkgODguOSA3MC45IDE0OXMtMjcuNyAxMTMuOC03MC45IDE0OWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzQ3NS4zIDM0MS4zIDQ5NiAzMDEuMSA0OTYgMjU2cy0yMC43LTg1LjMtNTMuMi0xMTEuOGMtMTAuMy04LjQtMTEuOC0yMy41LTMuNS0zMy44czIzLjUtMTEuOCAzMy44LTMuNXptLTYwLjUgNzQuNUM0MzQuMSAxOTkuMSA0NDggMjI1LjkgNDQ4IDI1NnMtMTMuOSA1Ni45LTM1LjQgNzQuNWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzM5My4xIDI4NC40IDQwMCAyNzEgNDAwIDI1NnMtNi45LTI4LjQtMTcuNy0zNy4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVVcCA9IGZhVm9sdW1lSGlnaDtcbmNvbnN0IGZhVXNlcnNSYXlzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLXJheXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTNcIiwgXCJNNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDdTLTIuMyAzMS42IDcgNDFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxIDd6TTU5OSA3TDUyNyA3OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDB6TTcgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNyA0NzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em01OTIgMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0yMTIuMSAzMzZjLTIuNyA3LjUtNC4xIDE1LjYtNC4xIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtOC40LTEuNC0xNi41LTQuMS0yNGMtLjUtMS40LTEtMi43LTEuNi00Yy05LjQtMjIuMy0yOS44LTM4LjktNTQuMy00M2MtMy45LS43LTcuOS0xLTEyLTFsLTgwIDBjLTQuMSAwLTguMSAuMy0xMiAxYy0uOCAuMS0xLjcgLjMtMi41IC41Yy0yNC45IDUuMS00NS4xIDIzLTUzLjQgNDYuNXpNMTc1LjggMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTI2LjUgMzJDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43bDU2LjEgMGM4LTM0LjEgMzIuOC02MS43IDY1LjItNzMuNmMtNy41LTQuMS0xNi4yLTYuNC0yNS4zLTYuNGwtNjkuMyAwem0zNjggODBjMTQuNyAwIDI2LjctMTEuOSAyNi43LTI2LjdjMC0yOS41LTIzLjktNTMuMy01My4zLTUzLjNsLTY5LjMgMGMtOS4yIDAtMTcuOCAyLjMtMjUuMyA2LjRjMzIuNCAxMS45IDU3LjIgMzkuNSA2NS4yIDczLjZsNTYuMSAwek00NjQgMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVdhbGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YWxsZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTVcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAxMjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzY4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQxNiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQ2xpcGJvYXJkQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkLWNoZWNrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDZjXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMDUgMjczTDE3NyA0MDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDc5IDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDI3MSAyMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhRmlsZUF1ZGlvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXVkaW8nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzdcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwem0yIDIyNi4zYzM3LjEgMjIuNCA2MiA2My4xIDYyIDEwOS43cy0yNC45IDg3LjMtNjIgMTA5LjdjLTcuNiA0LjYtMTcuNCAyLjEtMjItNS40cy0yLjEtMTcuNCA1LjQtMjJDMjY5LjQgNDAxLjUgMjg4IDM3MC45IDI4OCAzMzZzLTE4LjYtNjUuNS00Ni41LTgyLjNjLTcuNi00LjYtMTAtMTQuNC01LjQtMjJzMTQuNC0xMCAyMi01LjR6bS05MS45IDMwLjljNiAyLjUgOS45IDguMyA5LjkgMTQuOGwwIDEyOGMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVMMTEzLjQgMzc2IDgwIDM3NmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2bDMzLjQgMCAzNS4zLTM1LjNjNC42LTQuNiAxMS41LTUuOSAxNy40LTMuNXptNTEgMzQuOWM2LjYtNS45IDE2LjctNS4zIDIyLjYgMS4zQzI0OS44IDMwNC42IDI1NiAzMTkuNiAyNTYgMzM2cy02LjIgMzEuNC0xNi4zIDQyLjdjLTUuOSA2LjYtMTYgNy4xLTIyLjYgMS4zcy03LjEtMTYtMS4zLTIyLjZjNS4xLTUuNyA4LjEtMTMuMSA4LjEtMjEuM3MtMy4xLTE1LjctOC4xLTIxLjNjLTUuOS02LjYtNS4zLTE2LjcgMS4zLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFCdXJnZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVyZ2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJoYW1idXJnZXJcIl0sIFwiZjgwNVwiLCBcIk02MS4xIDIyNEM0NSAyMjQgMzIgMjExIDMyIDE5NC45YzAtMS45IC4yLTMuNyAuNi01LjZDMzcuOSAxNjguMyA3OC44IDMyIDI1NiAzMnMyMTguMSAxMzYuMyAyMjMuNCAxNTcuM2MuNSAxLjkgLjYgMy43IC42IDUuNmMwIDE2LjEtMTMgMjkuMS0yOS4xIDI5LjFMNjEuMSAyMjR6TTE0NCAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMjQwIDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpNMjcyIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6TTE2IDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OGwzODQgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw2NCAzNTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4em0xNiA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2elwiXVxufTtcbmNvbnN0IGZhSGFtYnVyZ2VyID0gZmFCdXJnZXI7XG5jb25zdCBmYVdyZW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3cmVuY2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyOTVdLCBcImYwYWRcIiwgXCJNMzUyIDMyMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGMwLTE1LjMtMi4yLTMwLjEtNi4yLTQ0LjJjLTMuMS0xMC44LTE2LjQtMTMuMi0yNC4zLTUuM2wtNzYuOCA3Ni44Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN0wzMzYgMTkyYy04LjggMC0xNi03LjItMTYtMTZsMC01Ny40YzAtNC4yIDEuNy04LjMgNC43LTExLjNsNzYuOC03Ni44YzcuOS03LjkgNS40LTIxLjItNS4zLTI0LjNDMzgyLjEgMi4yIDM2Ny4zIDAgMzUyIDBDMjYzLjYgMCAxOTIgNzEuNiAxOTIgMTYwYzAgMTkuMSAzLjQgMzcuNSA5LjUgNTQuNUwxOS45IDM5Ni4xQzcuMiA0MDguOCAwIDQyNi4xIDAgNDQ0LjFDMCA0ODEuNiAzMC40IDUxMiA2Ny45IDUxMmMxOCAwIDM1LjMtNy4yIDQ4LTE5LjlMMjk3LjUgMzEwLjVjMTcgNi4yIDM1LjQgOS41IDU0LjUgOS41ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQnVncyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWdzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGQwXCIsIFwiTTE2NC41IDEwNy40bDMzLjQtNzMuNWM1LjUtMTIuMSAuMS0yNi4zLTExLjktMzEuOHMtMjYuMy0uMS0zMS44IDExLjlMMTI4IDcxLjcgMTAxLjkgMTQuMUM5Ni40IDIgODIuMS0zLjMgNzAuMSAyLjFTNTIuNyAyMS45IDU4LjEgMzMuOWwzMy40IDczLjVjLTEwLjIgNy4xLTE4LjIgMTctMjIuOSAyOC42bC0xNyAwLTQuMS0yMC43Yy0yLjYtMTMtMTUuMi0yMS40LTI4LjItMTguOFMtMi4xIDExMS43IC41IDEyNC43bDggNDBDMTAuNyAxNzUuOSAyMC42IDE4NCAzMiAxODRsMzIgMCAwIDIzLjMtMzcuOCA5LjVjLTkuNSAyLjQtMTYuNiAxMC4yLTE3LjkgMTkuOWwtOCA1NmMtMS45IDEzLjEgNy4yIDI1LjMgMjAuNCAyNy4yczI1LjMtNy4yIDI3LjItMjAuNGw1LjctNDAgMTguNC00LjZDODIuNyAyNzQuNiAxMDMuOCAyODggMTI4IDI4OHM0NS4zLTEzLjQgNTYuMS0zMy4ybDE4LjQgNC42IDUuNyA0MGMxLjkgMTMuMSAxNCAyMi4yIDI3LjIgMjAuNHMyMi4yLTE0IDIwLjQtMjcuMmwtOC01NmMtMS40LTkuNy04LjUtMTcuNS0xNy45LTE5LjlMMTkyIDIwNy4zbDAtMjMuMyAzMiAwYzExLjQgMCAyMS4zLTguMSAyMy41LTE5LjNsOC00MGMyLjYtMTMtNS44LTI1LjYtMTguOC0yOC4ycy0yNS42IDUuOC0yOC4yIDE4LjhMMjA0LjMgMTM2bC0xNyAwYy00LjctMTEuNi0xMi43LTIxLjUtMjIuOS0yOC42ek00OTYgMjg2LjVsNjUuNi00N2MxMC44LTcuNyAxMy4zLTIyLjcgNS42LTMzLjVzLTIyLjctMTMuMy0zMy41LTUuNmwtNTEuNCAzNi44IDYuMS02Mi45YzEuMy0xMy4yLTguNC0yNC45LTIxLjYtMjYuMnMtMjQuOSA4LjQtMjYuMiAyMS42TDQzMi44IDI1MGMtMTIuMyAxLTI0LjIgNS42LTM0LjEgMTMuM0wzODQgMjU0LjhsNi44LTIwYzQuMi0xMi42LTIuNS0yNi4yLTE1LTMwLjRzLTI2LjIgMi41LTMwLjQgMTVsLTEzLjEgMzguNmMtMy43IDEwLjggLjggMjIuOCAxMC43IDI4LjVsMjcuNyAxNkwzNTkgMzIyLjcgMzIxLjUgMzEyYy05LjQtMi43LTE5LjUgLjYtMjUuNSA4LjNsLTM0LjkgNDQuNWMtOC4yIDEwLjQtNi40IDI1LjUgNC4xIDMzLjdzMjUuNSA2LjQgMzMuNy00LjFsMjUtMzEuOCAxOC4yIDUuMmMtLjUgMjIuNiAxMSA0NC43IDMyIDU2LjhzNDUuOSAxMSA2NS4yLS43bDEzLjYgMTMuMi0xNS4xIDM3LjVjLTQuOSAxMi4zIDEgMjYuMyAxMy4zIDMxLjJzMjYuMy0xIDMxLjItMTMuM0w1MDMuNSA0NDBjMy42LTkuMSAxLjQtMTkuNC01LjYtMjYuMmwtMjgtMjcuMSAxMS42LTIwLjEgMjcuNyAxNmM5LjkgNS43IDIyLjUgMy43IDMwLTQuOUw1NjYuMiAzNDdjOC43LTEwIDcuOC0yNS4xLTIuMi0zMy45cy0yNS4xLTcuOC0zMy45IDIuMmwtMTMuOSAxNS45LTE0LjctOC41YzEuNy0xMi40LS4yLTI1LTUuNS0zNi4yelwiXVxufTtcbmNvbnN0IGZhUnVwZWVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1cGVlLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MzYwLCBcInJ1cGVlXCJdLCBcImYxNTZcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgNTguOC0zNS4yIDEwOS4zLTg1LjcgMTMxLjdsNTEuNCAxMjguNGM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44TDEwNi4zIDMyMCA2NCAzMjBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCAyODggMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBMNjQgOTZsMCAxNjB6bTI1Ni41IDE2LjRjLS45IDYgMCA4LjcgLjQgOS44Yy40IDEuMSAxLjQgMi42IDQuMiA0LjljNy4yIDUuNyAxOC43IDEwIDM3LjkgMTYuOGwxLjMgLjVjMTYgNS42IDM4LjcgMTMuNiA1NS43IDI4LjFjOS41IDguMSAxNy45IDE4LjYgMjMuMSAzMi4zYzUuMSAxMy43IDYuMSAyOC41IDMuOCA0NGMtNC4yIDI4LjEtMjAuNSA0OS4zLTQzLjggNjAuOWMtMjIuMSAxMS00OC4xIDEyLjUtNzMuMiA4bC0uMiAwczAgMCAwIDBjLTkuMy0xLjgtMjAuNS01LjctMjkuMy05Yy02LTIuMy0xMi42LTQuOS0xNy43LTYuOWMwIDAgMCAwIDAgMGMtMi41LTEtNC42LTEuOC02LjMtMi41Yy0xNi41LTYuNC0yNC42LTI1LTE4LjItNDEuNHMyNC45LTI0LjYgNDEuNC0xOC4yYzIuNiAxIDUuMiAyIDcuOSAzLjFjMCAwIDAgMCAwIDBjNC44IDEuOSA5LjggMy45IDE1LjQgNmM4LjggMy4zIDE1LjMgNS40IDE4LjcgNmMxNS43IDIuOCAyNi43IC44IDMyLjktMi4zYzUtMi41IDgtNiA5LjEtMTNjMS02LjkgLjItMTAuNS0uNS0xMi4zYy0uNi0xLjctMS44LTMuNi00LjUtNS45Yy02LjktNS44LTE4LjItMTAuNC0zNi45LTE3bC0zLTEuMWMtMTUuNS01LjQtMzctMTMtNTMuMy0yNS45Yy05LjUtNy41LTE4LjMtMTcuNi0yMy43LTMxYy01LjUtMTMuNC02LjYtMjgtNC40LTQzLjJjOC40LTU3LjEgNjctNzggMTE2LjktNjguOWM2LjkgMS4zIDI3LjMgNS44IDM1LjQgOC40YzE2LjkgNS4yIDI2LjMgMjMuMiAyMS4xIDQwLjFzLTIzLjIgMjYuMy00MC4xIDIxLjFjLTQuNy0xLjQtMjIuMy01LjUtMjcuOS02LjVjLTE0LjYtMi43LTI1LjgtLjQtMzIuNiAzLjJjLTYuMyAzLjMtOC45IDcuNi05LjUgMTJ6XCJdXG59O1xuY29uc3QgZmFSdXBlZSA9IGZhUnVwZWVTaWduO1xuY29uc3QgZmFGaWxlSW1hZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbWFnZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQ0M10sIFwiZjFjNVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTY0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNTIgMzJjNS4zIDAgMTAuMiAyLjYgMTMuMiA2LjlsODggMTI4YzMuNCA0LjkgMy43IDExLjMgMSAxNi41cy04LjIgOC42LTE0LjIgOC42bC04OCAwLTQwIDAtNDggMC00OCAwYy01LjggMC0xMS4xLTMuMS0xMy45LTguMXMtMi44LTExLjIgLjItMTYuMWw0OC04MGMyLjktNC44IDguMS03LjggMTMuNy03LjhzMTAuOCAyLjkgMTMuNyA3LjhsMTIuOCAyMS40IDQ4LjMtNzAuMmMzLTQuMyA3LjktNi45IDEzLjItNi45elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIxMDgsIFwicXVlc3Rpb24tY2lyY2xlXCJdLCBcImYwNTlcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2OS44IDE2NS4zYzcuOS0yMi4zIDI5LjEtMzcuMyA1Mi44LTM3LjNsNTguMyAwYzM0LjkgMCA2My4xIDI4LjMgNjMuMSA2My4xYzAgMjIuNi0xMi4xIDQzLjUtMzEuNyA1NC44TDI4MCAyNjQuNGMtLjIgMTMtMTAuOSAyMy42LTI0IDIzLjZjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTMuNWMwLTguNiA0LjYtMTYuNSAxMi4xLTIwLjhsNDQuMy0yNS40YzQuNy0yLjcgNy42LTcuNyA3LjYtMTMuMWMwLTguNC02LjgtMTUuMS0xNS4xLTE1LjFsLTU4LjMgMGMtMy40IDAtNi40IDIuMS03LjUgNS4zbC0uNCAxLjJjLTQuNCAxMi41LTE4LjIgMTktMzAuNiAxNC42cy0xOS0xOC4yLTE0LjYtMzAuNmwuNC0xLjJ6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYVF1ZXN0aW9uQ2lyY2xlID0gZmFDaXJjbGVRdWVzdGlvbjtcbmNvbnN0IGZhUGxhbmVEZXBhcnR1cmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtZGVwYXJ0dXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzQ3XSwgXCJmNWIwXCIsIFwiTTM4MSAxMTQuOUwxODYuMSA0MS44Yy0xNi43LTYuMi0zNS4yLTUuMy01MS4xIDIuN0w4OS4xIDY3LjRDNzggNzMgNzcuMiA4OC41IDg3LjYgOTUuMmwxNDYuOSA5NC41TDEzNiAyNDAgNzcuOCAyMTQuMWMtOC43LTMuOS0xOC44LTMuNy0yNy4zIC42TDE4LjMgMjMwLjhjLTkuMyA0LjctMTEuOCAxNi44LTUgMjQuN2w3My4xIDg1LjNjNi4xIDcuMSAxNSAxMS4yIDI0LjMgMTEuMmwxMzcuNyAwYzUgMCA5LjktMS4yIDE0LjMtMy40TDUzNS42IDIxMi4yYzQ2LjUtMjMuMyA4Mi41LTYzLjMgMTAwLjgtMTEyQzY0NS45IDc1IDYyNy4yIDQ4IDYwMC4yIDQ4bC01Ny40IDBjLTIwLjIgMC00MC4yIDQuOC01OC4yIDE0TDM4MSAxMTQuOXpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzaGFrZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMzUtMTA1LjhjLTEuMS0xMS40LTYuMy0yMi4zLTE1LjMtMzAuN2wtMTM0LjItMTIzLTIzLjQgMTguMi0yNi0yMC4zIDc3LjItNjAuMWM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTEyIDMxNi44IDUxMiAxMjhsLS43IDAtMy45LTIuNUw0MzQuOCA3OWMtMTUuMy05LjgtMzMuMi0xNS01MS40LTE1Yy0yMS44IDAtNDMgNy41LTYwIDIxLjJsLTg5LjcgNzIuNi0yNS44LTIwLjMgODEuOC02Ni4yYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTM1LjUgMjMuN0wzOC44IDUuMXpNOTYgMTcxLjZMNDAuNiAxMjggMCAxMjggMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE4MC40ek00MTMuNiA0MjEuOUwxMjggMTk2LjkgMTI4IDM1MmwyOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNnpNNDggMzIwYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNNTQ0IDEyOGwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjI0LTk2IDB6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhQm9va0Jvb2ttYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stYm9va21hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwYmJcIiwgXCJNMCA5NkMwIDQzIDQzIDAgOTYgMGw5NiAwIDAgMTkwLjdjMCAxMy40IDE1LjUgMjAuOSAyNiAxMi41TDI3MiAxNjBsNTQgNDMuMmMxMC41IDguNCAyNiAuOSAyNi0xMi41TDM1MiAwbDMyIDAgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2ek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NEw5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ29kZUJyYW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWJyYW5jaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEyNlwiLCBcIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgODcuOGMxOC44LTEwLjkgNDAuNy0xNy4xIDY0LTE3LjFsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTYuN0MzMDcuNyAxNDEgMjg4IDExMi44IDI4OCA4MGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCA2LjdjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTk2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNi43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjNjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTYuNyAwLTE5OC43QzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjMyIDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNODAgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYUhhdENvd2JveSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXQtY293Ym95JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmOGMwXCIsIFwiTTMyMCA2NGMxNC40IDAgMjIuMy03IDMwLjgtMTQuNEMzNjAuNCA0MS4xIDM3MC43IDMyIDM5MiAzMmM0OS4zIDAgODQuNCAxNTIuMiA5Ny45IDIyMS45QzQ0Ny44IDI3Mi4xIDM5MC45IDI4OCAzMjAgMjg4cy0xMjcuOC0xNS45LTE2OS45LTM0LjFDMTYzLjYgMTg0LjIgMTk4LjcgMzIgMjQ4IDMyYzIxLjMgMCAzMS42IDkuMSA0MS4yIDE3LjZDMjk3LjcgNTcgMzA1LjYgNjQgMzIwIDY0ek0xMTEuMSAyNzAuN2M0Ny4yIDI0LjUgMTE3LjUgNDkuMyAyMDkgNDkuM3MxNjEuOC0yNC44IDIwOC45LTQ5LjNjMjQuOC0xMi45IDQ5LjgtMjguMyA3MC4xLTQ3LjdjNy45LTcuOSAyMC4yLTkuMiAyOS42LTMuM2M5LjUgNS45IDEzLjUgMTcuOSA5LjkgMjguNWMtMTMuNSAzNy43LTM4LjQgNzIuMy02Ni4xIDEwMC42QzUyMy43IDM5OC45IDQ0My42IDQ0OCAzMjAgNDQ4cy0yMDMuNi00OS4xLTI1Mi41LTk5LjJDMzkuOCAzMjAuNCAxNC45IDI4NS44IDEuNCAyNDguMWMtMy42LTEwLjYgLjQtMjIuNiA5LjktMjguNWM5LjUtNS45IDIxLjctNC41IDI5LjYgMy4zYzIwLjQgMTkuNCA0NS4zIDM0LjggNzAuMSA0Ny43elwiXVxufTtcbmNvbnN0IGZhQnJpZGdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjOFwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDAgMCAwIDY0TDAgMTYwIDAgMjg4YzUzIDAgOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2bDAtMTI4LTcyIDAgMC02NCA0MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00NTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMzI4IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTIwMCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwelwiXVxufTtcbmNvbnN0IGZhUGhvbmVGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob25lLWZsaXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzODEsIFwicGhvbmUtYWx0XCJdLCBcImY4NzlcIiwgXCJNMzQ3LjEgMjQuNmM3LjctMTguNiAyOC0yOC41IDQ3LjQtMjMuMmw4OCAyNEM0OTkuOSAzMC4yIDUxMiA0NiA1MTIgNjRjMCAyNDcuNC0yMDAuNiA0NDgtNDQ4IDQ0OGMtMTggMC0zMy44LTEyLjEtMzguNi0yOS41bC0yNC04OGMtNS4zLTE5LjQgNC42LTM5LjcgMjMuMi00Ny40bDk2LTQwYzE2LjMtNi44IDM1LjItMi4xIDQ2LjMgMTEuNkwyMDcuMyAzNjhjNzAuNC0zMy4zIDEyNy40LTkwLjMgMTYwLjctMTYwLjdMMzE4LjcgMTY3Yy0xMy43LTExLjItMTguNC0zMC0xMS42LTQ2LjNsNDAtOTZ6XCJdXG59O1xuY29uc3QgZmFQaG9uZUFsdCA9IGZhUGhvbmVGbGlwO1xuY29uc3QgZmFUcnVja0Zyb250ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZyb250JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMmI3XCIsIFwiTTAgODBDMCAzNS44IDM1LjggMCA4MCAwTDQzMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjg4YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0yNTYgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDgwem0xMjkuOSA3Mi4yTDExMiAyMjRsMjg4IDAtMTcuOS03MS44QzM3OC41IDEzOCAzNjUuNyAxMjggMzUxIDEyOGwtMTkwIDBjLTE0LjcgMC0yNy41IDEwLTMxIDI0LjJ6TTEyOCAzMjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUNhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMDhdLCBcImY2YmVcIiwgXCJNMzIwIDE5MmwxNy4xIDBjMjIuMSAzOC4zIDYzLjUgNjQgMTEwLjkgNjRjMTEgMCAyMS44LTEuNCAzMi00bDAgNCAwIDMyIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjhMMjgwIDQ0OGw1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyMy41YzAtMTYuMS0xMi0yOS44LTI4LTMxLjhsLTcuOS0xYy0xNy41LTIuMi0zMC0xOC4yLTI3LjgtMzUuN3MxOC4yLTMwIDM1LjctMjcuOGw3LjkgMWM0OCA2IDg0LjEgNDYuOCA4NC4xIDk1LjNsMCA4NS4zYzM0LjQtNTEuNyA5My4yLTg1LjggMTYwLTg1Ljh6bTE2MCAyNi41czAgMCAwIDBjLTEwIDMuNS0yMC44IDUuNS0zMiA1LjVjLTI4LjQgMC01NC0xMi40LTcxLjYtMzJjMCAwIDAgMCAwIDBjLTMuNy00LjEtNy04LjUtOS45LTEzLjJDMzU3LjMgMTY0IDM1MiAxNDYuNiAzNTIgMTI4YzAgMCAwIDAgMCAwbDAtOTYgMC0yMCAwLTEuM0MzNTIgNC44IDM1Ni43IC4xIDM2Mi42IDBsLjIgMGMzLjMgMCA2LjQgMS42IDguNCA0LjJjMCAwIDAgMCAwIC4xTDM4NCAyMS4zbDI3LjIgMzYuM0w0MTYgNjRsNjQgMCA0LjgtNi40TDUxMiAyMS4zIDUyNC44IDQuM2MwIDAgMCAwIDAtLjFjMi0yLjYgNS4xLTQuMiA4LjQtNC4ybC4yIDBDNTM5LjMgLjEgNTQ0IDQuOCA1NDQgMTAuN2wwIDEuMyAwIDIwIDAgOTZjMCAxNy4zLTQuNiAzMy42LTEyLjYgNDcuNmMtMTEuMyAxOS44LTI5LjYgMzUuMi01MS40IDQyLjl6TTQzMiAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhYlwiLCBcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwTDIyNCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDIwOC00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNi4xIDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw4MCAwIDgwIDBjOC4yIDAgMTYuMy0uNiAyNC4yLTEuOGMtMjIuMi0xNi4yLTQwLjQtMzcuNS01My02Mi4yTDMyMCA0NDhsMC04MCAwLTEyOCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMC45IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFUcnVja0ZpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZpZWxkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNThkXCIsIFwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDIyNCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw1MS44IDBjMjUuMyAwIDQ4LjIgMTQuOSA1OC41IDM4bDUyLjggMTE4LjhjLjUgMS4xIC45IDIuMSAxLjMgMy4ybDQuMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTEyOCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0zMnpNMzg0IDIyNGw4NS45IDAtNDIuNy05NkwzODQgMTI4bDAgOTZ6TTE2MCA0MzJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYVJvdXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGQ3XCIsIFwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NWMtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOGM2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOEM1OS44IDQ3MyAwIDQwMi41IDAgMzUyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOWMtMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUNsaXBib2FyZFF1ZXN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC1xdWVzdGlvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRlM1wiLCBcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zNy41IDBDMjY5LjQgMjYuNyAyMzMuOCAwIDE5MiAwem0wIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTA1LjggMjI5LjNjNy45LTIyLjMgMjkuMS0zNy4zIDUyLjgtMzcuM2w1OC4zIDBjMzQuOSAwIDYzLjEgMjguMyA2My4xIDYzLjFjMCAyMi42LTEyLjEgNDMuNS0zMS43IDU0LjhMMjE2IDMyOC40Yy0uMiAxMy0xMC45IDIzLjYtMjQgMjMuNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMy41YzAtOC42IDQuNi0xNi41IDEyLjEtMjAuOGw0NC4zLTI1LjRjNC43LTIuNyA3LjYtNy43IDcuNi0xMy4xYzAtOC40LTYuOC0xNS4xLTE1LjEtMTUuMWwtNTguMyAwYy0zLjQgMC02LjQgMi4xLTcuNSA1LjNsLS40IDEuMmMtNC40IDEyLjUtMTguMiAxOS0zMC42IDE0LjZzLTE5LTE4LjItMTQuNi0zMC42bC40LTEuMnpNMTYwIDQxNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhUGFub3JhbWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFub3JhbWEnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUyMDlcIiwgXCJNNDUuNiAzMkMyMC40IDMyIDAgNTIuNCAwIDc3LjZMMCA0MzQuNEMwIDQ1OS42IDIwLjQgNDgwIDQ1LjYgNDgwYzUuMSAwIDEwLS44IDE0LjctMi40Qzc0LjYgNDcyLjggMTc3LjYgNDQwIDMyMCA0NDBzMjQ1LjQgMzIuOCAyNTkuNiAzNy42YzQuNyAxLjYgOS43IDIuNCAxNC43IDIuNGMyNS4yIDAgNDUuNi0yMC40IDQ1LjYtNDUuNmwwLTM1Ni43QzY0MCA1Mi40IDYxOS42IDMyIDU5NC40IDMyYy01IDAtMTAgLjgtMTQuNyAyLjRDNTY1LjQgMzkuMiA0NjIuNCA3MiAzMjAgNzJTNzQuNiAzOS4yIDYwLjQgMzQuNEM1NS42IDMyLjggNTAuNyAzMiA0NS42IDMyek05NiAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjcyIDBjNy45IDAgMTUuNCAzLjkgMTkuOCAxMC41TDUxMi4zIDM1M2M1LjQgOCA1LjYgMTguNCAuNCAyNi41cy0xNC43IDEyLjMtMjQuMiAxMC43QzQ0Mi43IDM4Mi40IDM4NS4yIDM3NiAzMjAgMzc2Yy02NS42IDAtMTIzLjQgNi41LTE2OS4zIDE0LjRjLTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxOTcuMyAyNjVjNC42LTUuNyAxMS40LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNi40IDMzLjEgODctMTI3LjZjNC41LTYuNiAxMS45LTEwLjUgMTkuOC0xMC41elwiXVxufTtcbmNvbnN0IGZhQ29tbWVudE1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Y1XCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNMjI0IDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYVRlZXRoT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZWV0aC1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNjJmXCIsIFwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6TTIyNCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em04MCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTZ6TTk2IDEyOGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0zMzYgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek05NiA0ODBsMzg0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDUzIDQzIDk2IDk2IDk2em0wLTY0Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHptODAtNDhsMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDh6bTE3NiA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDh6bTgwLTQ4bDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGVkXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVRhZ3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFncycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyY1wiLCBcIk0zNDUgMzkuMUw0NzIuOCAxNjguNGM1Mi40IDUzIDUyLjQgMTM4LjIgMCAxOTEuMkwzNjAuOCA0NzIuOWMtOS4zIDkuNC0yNC41IDkuNS0zMy45IC4ycy05LjUtMjQuNS0uMi0zMy45TDQzOC42IDMyNS45YzMzLjktMzQuMyAzMy45LTg5LjQgMC0xMjMuN0wzMTAuOSA3Mi45Yy05LjMtOS40LTkuMi0yNC42IC4yLTMzLjlzMjQuNi05LjIgMzMuOSAuMnpNMCAyMjkuNUwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDE0OS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMTY4IDE2OGMyNSAyNSAyNSA2NS41IDAgOTAuNUwyNzcuMyA0NDIuN2MtMjUgMjUtNjUuNSAyNS05MC41IDBsLTE2OC0xNjhDNi43IDI2Mi43IDAgMjQ2LjUgMCAyMjkuNXpNMTQ0IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbmNvbnN0IGZhV2luZUdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmUtZ2xhc3MnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc4NjNdLCBcImY0ZTNcIiwgXCJNMzIuMSAyOS4zQzMzLjUgMTIuOCA0Ny40IDAgNjQgMEwyNTYgMGMxNi42IDAgMzAuNSAxMi44IDMxLjkgMjkuM2wxNCAxNjguNGM2IDcyLTQyLjUgMTM1LjItMTA5LjkgMTUwLjZsMCA5OS42IDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDAtODAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwIDAtOTkuNkM2MC42IDMzMyAxMi4xIDI2OS44IDE4LjEgMTk3LjhsMTQtMTY4LjR6bTU2IDk4LjdsMTQzLjggMC01LjMtNjRMOTMuNCA2NGwtNS4zIDY0elwiXVxufTtcbmNvbnN0IGZhRm9yd2FyZEZhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZC1mYXN0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTE5NywgXCJmYXN0LWZvcndhcmRcIl0sIFwiZjA1MFwiLCBcIk0xOC40IDQ0NWMxMS4yIDUuMyAyNC41IDMuNiAzNC4xLTQuNEwyMjQgMjk3LjcgMjI0IDQxNmMwIDEyLjQgNy4yIDIzLjcgMTguNCAyOXMyNC41IDMuNiAzNC4xLTQuNEw0NDggMjk3LjcgNDQ4IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE4LjNMMjc2LjUgNzEuNGMtOS41LTcuOS0yMi44LTkuNy0zNC4xLTQuNFMyMjQgODMuNiAyMjQgOTZsMCAxMTguM0w1Mi41IDcxLjRjLTkuNS03LjktMjIuOC05LjctMzQuMS00LjRTMCA4My42IDAgOTZMMCA0MTZjMCAxMi40IDcuMiAyMy43IDE4LjQgMjl6XCJdXG59O1xuY29uc3QgZmFGYXN0Rm9yd2FyZCA9IGZhRm9yd2FyZEZhc3Q7XG5jb25zdCBmYUZhY2VNZWhCbGFuayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLW1laC1ibGFuaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2NiwgXCJtZWgtYmxhbmtcIl0sIFwiZjVhNFwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTIwOC40LTQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFNZWhCbGFuayA9IGZhRmFjZU1laEJsYW5rO1xuY29uc3QgZmFTcXVhcmVQYXJraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wYXJraW5nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3MzU5LCBcInBhcmtpbmdcIl0sIFwiZjU0MFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xOTIgMjU2bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDAgMCA2NHptNDggNjRsLTQ4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0IDAtMTIwYzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6XCJdXG59O1xuY29uc3QgZmFQYXJraW5nID0gZmFTcXVhcmVQYXJraW5nO1xuY29uc3QgZmFIb3VzZVNpZ25hbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1zaWduYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwMTJcIiwgXCJNMzU3LjcgOC41Yy0xMi4zLTExLjMtMzEuMi0xMS4zLTQzLjQgMGwtMjA4IDE5MmMtOS40IDguNi0xMi43IDIyLTguNSAzNGM4Ny4xIDI1LjMgMTU1LjYgOTQuMiAxODAuMyAxODEuNkw0NjQgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTEyIDMyIDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC4xLTM1LjJsLTIwOC0xOTJ6TTI4OCAyMDhjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NHpNMjQgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzEwMS42IDAgMTg0IDgyLjQgMTg0IDE4NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzJ6bTggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMCAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRjNDguNiAwIDg4IDM5LjQgODggODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6XCJdXG59O1xuY29uc3QgZmFCYXJzUHJvZ3Jlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFycy1wcm9ncmVzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGFza3MtYWx0XCJdLCBcImY4MjhcIiwgXCJNNDQ4IDE2MGwtMTI4IDAgMC0zMiAxMjggMCAwIDMyek00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTQ0OCAzNTJsMCAzMi0yNTYgMCAwLTMyIDI1NiAwek00OCAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyODh6XCJdXG59O1xuY29uc3QgZmFUYXNrc0FsdCA9IGZhQmFyc1Byb2dyZXNzO1xuY29uc3QgZmFGYXVjZXREcmlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhdWNldC1kcmlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Njg4XSwgXCJlMDA2XCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTIgOTYtMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjU2IDg0bC0zMS0zLjktMS0uMS0xIC4xTDE5MiA4NCA5NiA5NkM3OC4zIDk2IDY0IDgxLjcgNjQgNjRzMTQuMy0zMiAzMi0zMmw5NiAxMiAwLTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNDMuOCAzMi00IDMyIDQgMCA0My44IDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNEwzMjAgMTkybDMyIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMycy0xNC4zLTMyLTMyLTMybC0zNi4xIDBjLTIwLjIgMjktNTMuOSA0OC05MS45IDQ4cy03MS43LTE5LTkxLjktNDhMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek00MzYuOCA0MjMuNGMxLjktNC41IDYuMy03LjQgMTEuMi03LjRzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMWwxOC4yLTQyLjR6XCJdXG59O1xuY29uc3QgZmFDYXJ0RmxhdGJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LWZsYXRiZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImRvbGx5LWZsYXRiZWRcIl0sIFwiZjQ3NFwiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjg4YzAgNDQuMiAzNS44IDgwIDgwIDgwbDE4LjcgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMTk3LjUgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00NjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjg4QzEyOCAzNS44IDkyLjIgMCA0OCAwTDMyIDB6TTE5MiA4MGwwIDE5MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtOTYgMCAwIDE0NGMwIDUuOS0zLjIgMTEuMy04LjUgMTQuMXMtMTEuNSAyLjUtMTYuNC0uOEw0MDAgMTYzLjJsLTM5LjEgMjYuMWMtNC45IDMuMy0xMS4yIDMuNi0xNi40IC44cy04LjUtOC4yLTguNS0xNC4xbDAtMTQ0LTk2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4elwiXVxufTtcbmNvbnN0IGZhRG9sbHlGbGF0YmVkID0gZmFDYXJ0RmxhdGJlZDtcbmNvbnN0IGZhQmFuU21va2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW4tc21va2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY4NSwgXCJzbW9raW5nLWJhblwiXSwgXCJmNTRkXCIsIFwiTTk5LjUgMTQ0LjhMMTc4LjcgMjI0bDk2IDk2IDkyLjUgOTIuNUMzMzUuOSA0MzQuOSAyOTcuNSA0NDggMjU2IDQ0OEMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZjMC00MS41IDEzLjEtNzkuOSAzNS41LTExMS4yek0zMzMuMyAyODhsLTMyLTMyIDgyLjcgMCAwIDMyLTUwLjcgMHptMzIgMzJsMzQuNyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTMwLjcgMEwxNDQuOCA5OS41QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyYzAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMkwzNjUuMyAzMjB6TTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yNzIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI5LjUgMzIwbC05Ni05NkwxMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMTE3LjUgMHpcIl1cbn07XG5jb25zdCBmYVNtb2tpbmdCYW4gPSBmYUJhblNtb2tpbmc7XG5jb25zdCBmYVRlcm1pbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rlcm1pbmFsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTIwXCIsIFwiTTkuNCA4Ni42Qy0zLjEgNzQuMS0zLjEgNTMuOSA5LjQgNDEuNHMzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE3OC43IDI1NiA5LjQgODYuNnpNMjU2IDQxNmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVCdXR0b24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLWJ1dHRvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjEwYlwiLCBcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VNZWRpY2FsRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1tZWRpY2FsLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTRcIiwgXCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTEyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTI4YzAgOC44LTcuMiAxNi0xNiAxNmwtMTEyIDAgMCAzMjAtNjQgMCAwLTMyMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjc2LjggMzkuN0w0MTYgMTU5bDAgMzUzIDEgMC0uMiAwTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTItMzIgMGMtMTMuNCAwLTI1LjQtOC4zLTMwLTIwLjlzLTEtMjYuNyA5LjItMzUuNGwyMjQtMTkyYzEyLTEwLjMgMjkuNy0xMC4zIDQxLjcgMHpNMjI0IDIwOGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUJhc2tldFNob3BwaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2tldC1zaG9wcGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic2hvcHBpbmctYmFza2V0XCJdLCBcImYyOTFcIiwgXCJNMjUzLjMgMzUuMWM2LjEtMTEuOCAxLjUtMjYuMy0xMC4yLTMyLjRzLTI2LjMtMS41LTMyLjQgMTAuMkwxMTcuNiAxOTIgMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyTDgzLjkgNDYzLjVDOTEgNDkyIDExNi42IDUxMiAxNDYgNTEyTDQzMCA1MTJjMjkuNCAwIDU1LTIwIDYyLjEtNDguNUw1NDQgMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04NS42IDBMMzY1LjMgMTIuOUMzNTkuMiAxLjIgMzQ0LjctMy40IDMzMi45IDIuN3MtMTYuMyAyMC42LTEwLjIgMzIuNEw0MDQuMyAxOTJsLTIzMi42IDBMMjUzLjMgMzUuMXpNMTkyIDMwNGwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptOTYtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVNob3BwaW5nQmFza2V0ID0gZmFCYXNrZXRTaG9wcGluZztcbmNvbnN0IGZhVGFwZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXBlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGRiXCIsIFwiTTM4MC44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwQzQ0OCAxMzIuMyAzNDcuNyAzMiAyMjQgMzJTMCAxMzIuMyAwIDI1NlMxMDAuMyA0ODAgMjI0IDQ4MGwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYzLjIgMHpNMjI0IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNjQgOTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwiXVxufTtcbmNvbnN0IGZhQnVzU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cy1zaW1wbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImJ1cy1hbHRcIl0sIFwiZjU1ZVwiLCBcIk0yMjQgMEMzNDguOCAwIDQ0OCAzNS4yIDQ0OCA4MGwwIDE2IDAgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA5NiAwIDgwQzAgMzUuMiA5OS4yIDAgMjI0IDB6TTY0IDEyOGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDQwMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTI4OCAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJ1c0FsdCA9IGZhQnVzU2ltcGxlO1xuY29uc3QgZmFFeWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXllJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MDY1XSwgXCJmMDZlXCIsIFwiTTI4OCAzMmMtODAuOCAwLTE0NS41IDM2LjgtMTkyLjYgODAuNkM0OC42IDE1NiAxNy4zIDIwOCAyLjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42QzE3LjMgMzA0IDQ4LjYgMzU2IDk1LjQgMzk5LjRDMTQyLjUgNDQzLjIgMjA3LjIgNDgwIDI4OCA0ODBzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjFjMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjZjLTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjFDNDMzLjUgNjguOCAzNjguOCAzMiAyODggMzJ6TTE0NCAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTY0YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy03LjEgMC0xMy45LTEuMi0yMC4zLTMuM2MtNS41LTEuOC0xMS45IDEuNi0xMS43IDcuNGMuMyA2LjkgMS4zIDEzLjggMy4yIDIwLjdjMTMuNyA1MS4yIDY2LjQgODEuNiAxMTcuNiA2Ny45czgxLjYtNjYuNCA2Ny45LTExNy42Yy0xMS4xLTQxLjUtNDcuOC02OS40LTg4LjYtNzEuMWMtNS44LS4yLTkuMiA2LjEtNy40IDExLjdjMi4xIDYuNCAzLjMgMTMuMiAzLjMgMjAuM3pcIl1cbn07XG5jb25zdCBmYUZhY2VTYWRDcnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zYWQtY3J5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTU3LCBcInNhZC1jcnlcIl0sIFwiZjViM1wiLCBcIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI4OGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE4OS44QzUxLjUgNDMzLjUgMCAzNTAuOCAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCA5NC44LTUxLjUgMTc3LjUtMTI4IDIyMS44TDM4NCAyODhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMDUuNHpNMTk1LjIgMjMzLjZjNS4zIDcuMSAxNS4zIDguNSAyMi40IDMuMnM4LjUtMTUuMyAzLjItMjIuNGMtMzAuNC00MC41LTkxLjItNDAuNS0xMjEuNiAwYy01LjMgNy4xLTMuOSAxNy4xIDMuMiAyMi40czE3LjEgMy45IDIyLjQtMy4yYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwem0xMjEuNiAwYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwYzUuMyA3LjEgMTUuMyA4LjUgMjIuNCAzLjJzOC41LTE1LjMgMy4yLTIyLjRjLTMwLjQtNDAuNS05MS4yLTQwLjUtMTIxLjYgMGMtNS4zIDcuMS0zLjkgMTcuMSAzLjIgMjIuNHMxNy4xIDMuOSAyMi40LTMuMnpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpcIl1cbn07XG5jb25zdCBmYVNhZENyeSA9IGZhRmFjZVNhZENyeTtcbmNvbnN0IGZhQXVkaW9EZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdWRpby1kZXNjcmlwdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI5ZVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMTMuNSAxNzMuM2w3MiAxNDRjNS45IDExLjkgMS4xIDI2LjMtMTAuNyAzMi4ycy0yNi4zIDEuMS0zMi4yLTEwLjdsLTkuNC0xOC45LTgyLjIgMC05LjQgMTguOWMtNS45IDExLjktMjAuMyAxNi43LTMyLjIgMTAuN3MtMTYuNy0yMC4zLTEwLjctMzIuMmw3Mi0xNDRjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM3ptLS40IDEwNi42TDE5MiAyMzcuN2wtMjEuMSA0Mi4yIDQyLjIgMHpNMzA0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NHptNDggMjRsMCA5NiAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTRjXCIsIFwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44YzAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBDNjQuOSA4My44IDY0IDg5LjggNjQgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMi45IDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45czE0LjEtMTIuNCAxNC4xLTIxLjlsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4elwiXVxufTtcbmNvbnN0IGZhRmlsZVNoaWVsZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXNoaWVsZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmMFwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMjQgMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMCAwIDQ3LTkyLjggMzcuMWMtMjEuMyA4LjUtMzUuMiAyOS4xLTM1LjIgNTJjMCA1Ni42IDE4LjkgMTQ4IDk0LjIgMjA4LjNjLTkgNC44LTE5LjMgNy42LTMwLjIgNy42TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMzg0IDY0bC0xMjggMEwyNTYgMCAzODQgMTI4em0zOS4xIDk3LjdjNS43LTIuMyAxMi4xLTIuMyAxNy44IDBsMTIwIDQ4QzU3MCAyNzcuNCA1NzYgMjg2LjIgNTc2IDI5NmMwIDYzLjMtMjUuOSAxNjguOC0xMzQuOCAyMTQuMmMtNS45IDIuNS0xMi42IDIuNS0xOC41IDBDMzEzLjkgNDY0LjggMjg4IDM1OS4zIDI4OCAyOTZjMC05LjggNi0xOC42IDE1LjEtMjIuM2wxMjAtNDh6TTUyNy40IDMxMkw0MzIgMjczLjhsMCAxODcuOGM2OC4yLTMzIDkxLjUtOTkgOTUuNC0xNDkuN3pcIl1cbn07XG5jb25zdCBmYVVzZXJTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA2XCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMMzUzLjMgMjUxLjZDNDA3LjkgMjM3IDQ0OCAxODcuMiA0NDggMTI4QzQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBDMjUwLjIgMCAxOTMuNSA1NS44IDE5MiAxMjUuMkwzOC44IDUuMXpNMjY0LjMgMzA0LjNDMTcwLjUgMzA5LjQgOTYgMzg3LjIgOTYgNDgyLjNjMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzg4LjYgMGMzLjkgMCA3LjYtLjcgMTEtMi4xbC0yNjEtMjA1LjZ6XCJdXG59O1xuY29uc3QgZmFQZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Mzk0XSwgXCJmMzA0XCIsIFwiTTM2Mi43IDE5LjNMMzE0LjMgNjcuNyA0NDQuMyAxOTcuN2w0OC40LTQ4LjRjMjUtMjUgMjUtNjUuNSAwLTkwLjVMNDUzLjMgMTkuM2MtMjUtMjUtNjUuNS0yNS05MC41IDB6bS03MSA3MUw1OC42IDMyMy41Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODEuMkMtMS41IDQ4OS43IC44IDQ5OC44IDcgNTA1czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMNDIxLjcgMjIwLjMgMjkxLjcgOTAuM3pcIl1cbn07XG5jb25zdCBmYVRvd2VyT2JzZXJ2YXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG93ZXItb2JzZXJ2YXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1ODZcIiwgXCJNMjQxLjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOUM0MzkgMTM3LjUgNDI3LjcgMTQ0IDQxNiAxNDRsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNC45IDAgMzIgMTkyIDY4LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTUuNSAwYy0uNCAwLS44IDAtMS4xIDBsLTI1NC44IDBjLS40IDAtLjggMC0xLjEgMEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjguOSAwIDMyLTE5Mi00LjkgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04MGMtMTEuNyAwLTIzLTYuNS0yOC42LTE3LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTQuNSA0NDhMMjU2IDM5OS4yIDE5Ny41IDQ0OGwxMTcgMHpNMTk3LjggMjU2bC00LjcgMjguM0wyNTYgMzM2LjhsNjIuOS01Mi41TDMxNC4yIDI1NmwtMTE2LjUgMHptLTEzLjkgODMuMmwtMTEuMiA2N0wyMTguNSAzNjhsLTM0LjYtMjguOHpNMjkzLjUgMzY4bDQ1LjggMzguMS0xMS4yLTY3TDI5My41IDM2OHpNMTc2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYwIDB6XCJdXG59O1xuY29uc3QgZmFGaWxlQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvZGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzlcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0xNTMgMjg5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcxIDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0yNjUgMjU1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhU2lnbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ25hbCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI0NiwgXCJzaWduYWwtNVwiLCBcInNpZ25hbC1wZXJmZWN0XCJdLCBcImYwMTJcIiwgXCJNNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ0OCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDIyNGwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek0xOTIgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiA0MTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduYWw1ID0gZmFTaWduYWw7XG5jb25zdCBmYVNpZ25hbFBlcmZlY3QgPSBmYVNpZ25hbDtcbmNvbnN0IGZhQnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODY1M10sIFwiZjIwN1wiLCBcIk0yODggMEM0MjIuNCAwIDUxMiAzNS4yIDUxMiA4MGwwIDE2IDAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyYzAgMCAwIDAgMCAwbDAtMzJzMCAwIDAgMGwwLTE2QzY0IDM1LjIgMTUzLjYgMCAyODggMHpNMTI4IDE2MGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDExMiAwIDAtMTYwLTExMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA0IDI4OGwxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwIDE2MHpNMTQ0IDQwMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTI4OCAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzg0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwyMDggNjRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGVhcnRDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MDFcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDQ1NC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0MzIgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0MDkuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQzMiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaGltbmV5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXknLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MzQ5OSwgXCJob21lLWxnXCJdLCBcImUzYWZcIiwgXCJNNTQzLjggMjg3LjZjMTcgMCAzMi0xNCAzMi0zMi4xYzEtOS0zLTE3LTExLTI0TDUxMiAxODVsMC0xMjFjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzYuN0wzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQgMCAyNGMwIDIyLjEgMTcuOSA0MCA0MCA0MGwyNCAwIDMyLjUgMGMxLjQgMCAyLjggMCA0LjItLjFjMS4xIC4xIDIuMiAuMSAzLjMgLjFsMTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTE2LjJjLjMtMi42IC41LTUuMyAuNS04LjFsLS43LTE2MC4yIDMyIDB6XCJdXG59O1xuY29uc3QgZmFIb21lTGcgPSBmYUhvdXNlQ2hpbW5leTtcbmNvbnN0IGZhV2luZG93TWF4aW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDcwXSwgXCJmMmQwXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZhY2VGcm93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWZyb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTc4NSwgXCJmcm93blwiXSwgXCJmMTE5XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTkuMyAzODguN2MtMi42IDguNC0xMS42IDEzLjItMjAgMTAuNXMtMTMuMi0xMS42LTEwLjUtMjBDMTQ1LjIgMzI2LjEgMTk2LjMgMjg4IDI1NiAyODhzMTEwLjggMzguMSAxMjcuMyA5MS4zYzIuNiA4LjQtMi4xIDE3LjQtMTAuNSAyMHMtMTcuNC0yLjEtMjAtMTAuNUMzNDAuNSAzNDkuNCAzMDIuMSAzMjAgMjU2IDMyMHMtODQuNSAyOS40LTk2LjcgNjguN3pNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFGcm93biA9IGZhRmFjZUZyb3duO1xuY29uc3QgZmFQcmVzY3JpcHRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJlc2NyaXB0aW9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNWIxXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMTkybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDUwLjcgMCAxMjggMTI4TDEzNy40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjdsLTg1LjgtODUuOEMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMkMyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBMNjQgMTYwbDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJdXG59O1xuY29uc3QgZmFTaG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInN0b3JlLWFsdFwiXSwgXCJmNTRmXCIsIFwiTTM2LjggMTkybDU2Ni4zIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjhjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEwxMjEuNyAwYy0xNiAwLTMxIDgtMzkuOSAyMS40TDYuMiAxMzQuN2MtNCA2LjEtNi4yIDEzLjItNi4yIDIwLjRDMCAxNzUuNSAxNi41IDE5MiAzNi44IDE5MnpNNjQgMjI0bDAgMTYwIDAgODBjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC04MCAwLTE2MC02NCAwIDAgMTYwLTE5MiAwIDAtMTYwLTY0IDB6bTQ0OCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTYtNjQgMHpcIl1cbn07XG5jb25zdCBmYVN0b3JlQWx0ID0gZmFTaG9wO1xuY29uc3QgZmFGbG9wcHlEaXNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zsb3BweS1kaXNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MTkwLCAxMjg0MjYsIFwic2F2ZVwiXSwgXCJmMGM3XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVNhdmUgPSBmYUZsb3BweURpc2s7XG5jb25zdCBmYVZpaGFyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWhhcmEnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YTdcIiwgXCJNMjgxIDIyTDMwNS44IDQuN2MxLjMtLjkgMi43LTEuOCA0LjEtMi40QzMxMy4xIC43IDMxNi42IDAgMzIwIDBzNi45IC43IDEwLjEgMi4yYzEuNCAuNyAyLjggMS41IDQuMSAyLjRMMzU5IDIyQzM5MyA0NS44IDQzMC44IDYzLjUgNDcwLjggNzQuNGwyMyA2LjNjMS44IC41IDMuNiAxLjEgNS4yIDJjMy4yIDEuNyA1LjkgNCA4LjEgNi44YzMuOCA0LjkgNS42IDExLjMgNC43IDE3LjhjLS40IDIuOC0xLjIgNS40LTIuNSA3LjhjLTEuNyAzLjItNCA1LjktNi44IDguMWMtNC4zIDMuMi05LjYgNS4xLTE1LjEgNC45bC03LjUgMCAwIDU2LjEgNi40IDUuMSA1LjIgNC4xYzIxLjEgMTYuNyA0NSAyOS42IDcwLjUgMzguMWwyOC45IDkuNmMxLjYgLjUgMy4yIDEuMiA0LjYgMmMzLjEgMS43IDUuOCA0LjEgNy44IDYuOXMzLjUgNi4xIDQuMSA5LjZjLjUgMi43IC42IDUuNSAuMSA4LjNzLTEuNCA1LjQtMi43IDcuOGMtMS43IDMuMS00LjEgNS44LTYuOSA3LjhzLTYuMSAzLjUtOS42IDQuMWMtMS42IC4zLTMuMyAuNC01IC40TDU0NCAyODhsMCA2NS45YzIwLjUgMjIuOCA0Ny40IDM5LjIgNzcuNCA0Ni43QzYzMiA0MDMgNjQwIDQxMi42IDY0MCA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRjMC0xMS40IDgtMjEgMTguNi0yMy40YzMwLTcuNiA1Ni45LTIzLjkgNzcuNC00Ni43TDk2IDI4OGwtMzkuNCAwYy0xLjcgMC0zLjQtLjEtNS0uNGMtMy41LS43LTYuOC0yLjEtOS42LTQuMXMtNS4yLTQuNy03LTcuOGMtMS4zLTIuNC0yLjMtNS0yLjctNy44cy0uNC01LjYgLjEtOC4zYy43LTMuNSAyLjEtNi44IDQuMS05LjZzNC43LTUuMiA3LjgtNi45YzEuNC0uOCAzLTEuNSA0LjYtMmwyOC45LTkuNmMyNS41LTguNSA0OS40LTIxLjQgNzAuNS0zOC4xbDUuMi00LjEgNi40LTUuMSAwLTguMSAwLTQ4LTcuNSAwYy01LjUgLjEtMTAuOC0xLjctMTUuMS00LjljLTIuOC0yLjEtNS4xLTQuOC02LjgtOC4xYy0xLjItMi40LTIuMS01LTIuNS03LjhjLS45LTYuNSAuOS0xMi44IDQuNy0xNy44YzIuMS0yLjggNC44LTUuMSA4LjEtNi44YzEuNi0uOCAzLjQtMS41IDUuMi0ybDIzLTYuM0MyMDkuMiA2My41IDI0NyA0NS44IDI4MSAyMnpNNDE2IDEyOGwtOTYgMC05NiAwIDAgNjQgNzIgMCA0OCAwIDcyIDAgMC02NHpNMTYwIDI4OGwwIDY0IDEzNiAwIDI0IDAgMjQgMCAxMzYgMCAwLTY0LTEzNiAwLTI0IDBzMCAwIDAgMGwtMjQgMC0xMzYgMHpcIl1cbn07XG5jb25zdCBmYVNjYWxlVW5iYWxhbmNlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2FsZS11bmJhbGFuY2VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJiYWxhbmNlLXNjYWxlLWxlZnRcIl0sIFwiZjUxNVwiLCBcIk01MjIuMSA2Mi40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVTNTE4LjYtMy45IDUwMS45IDEuNmwtMTEzIDM3LjdDMzc1IDE1LjggMzQ5LjMgMCAzMjAgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCAzIC4yIDUuOSAuNSA4LjhMMTE3LjkgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMkwyODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzOS42IDI4OEw1MTIgMTYzLjggNTg0LjQgMjg4bC0xNDQuOSAwek01MTIgMzg0YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzNi4xIDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkyLjcgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjFDMzk2LjggMzUwIDQ0OS4xIDM4NCA1MTIgMzg0ek0xMjkuMiAyOTEuOEwyMDEuNiA0MTYgNTYuNyA0MTZsNzIuNC0xMjQuMnpNMy4yIDQzMy4xQzE0IDQ3OCA2Ni4zIDUxMiAxMjkuMiA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTMuMiAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDkuOSA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXpcIl1cbn07XG5jb25zdCBmYUJhbGFuY2VTY2FsZUxlZnQgPSBmYVNjYWxlVW5iYWxhbmNlZDtcbmNvbnN0IGZhU29ydFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtdXAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInNvcnQtYXNjXCJdLCBcImYwZGVcIiwgXCJNMTgyLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMjU2IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYVNvcnRBc2MgPSBmYVNvcnRVcDtcbmNvbnN0IGZhQ29tbWVudERvdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTcyLCA2MjA3NSwgXCJjb21tZW50aW5nXCJdLCBcImY0YWRcIiwgXCJNMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuM2MwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45ek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQ29tbWVudGluZyA9IGZhQ29tbWVudERvdHM7XG5jb25zdCBmYVBsYW50V2lsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFudC13aWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNWFhXCIsIFwiTTI4OCAxMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMWMwIDI3LjkgMjUuMyA3NC44IDY2IDExMS42YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMWwwLTEzQzQ2NCA1My43IDQxMC4zIDAgMzQ0IDBTMjI0IDUzLjcgMjI0IDEyMGwwIDIxLjhDMjA3LjMgMTMzIDE4OC4yIDEyOCAxNjggMTI4Yy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMUMwIDM1OSAyNS4zIDQwNS45IDY2IDQ0Mi43YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMWwwLTEzYzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAzMiAwIDIwMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjAwIDAtMzIgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFEaWFtb25kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYW1vbmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODMwXSwgXCJmMjE5XCIsIFwiTTI4NC4zIDExLjdjLTE1LjYtMTUuNi00MC45LTE1LjYtNTYuNiAwbC0yMTYgMjE2Yy0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNmwyMTYgMjE2YzE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwbDIxNi0yMTZjMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZsLTIxNi0yMTZ6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpblNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3F1aW50JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE4LCBcImdyaW4tc3F1aW50XCJdLCBcImY1ODVcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXpNMTMzLjUgMTQ2LjdsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNTcuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIl1cbn07XG5jb25zdCBmYUdyaW5TcXVpbnQgPSBmYUZhY2VHcmluU3F1aW50O1xuY29uc3QgZmFIYW5kSG9sZGluZ0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctZG9sbGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYW5kLWhvbGRpbmctdXNkXCJdLCBcImY0YzBcIiwgXCJNMzEyIDI0bDAgMTAuNWM2LjQgMS4yIDEyLjYgMi43IDE4LjIgNC4yYzEyLjggMy40IDIwLjQgMTYuNiAxNyAyOS40cy0xNi42IDIwLjQtMjkuNCAxN2MtMTAuOS0yLjktMjEuMS00LjktMzAuMi01Yy03LjMtLjEtMTQuNyAxLjctMTkuNCA0LjRjLTIuMSAxLjMtMy4xIDIuNC0zLjUgM2MtLjMgLjUtLjcgMS4yLS43IDIuOGMwIC4zIDAgLjUgMCAuNmMuMiAuMiAuOSAxLjIgMy4zIDIuNmM1LjggMy41IDE0LjQgNi4yIDI3LjQgMTAuMWwuOSAuM3MwIDAgMCAwYzExLjEgMy4zIDI1LjkgNy44IDM3LjkgMTUuM2MxMy43IDguNiAyNi4xIDIyLjkgMjYuNCA0NC45Yy4zIDIyLjUtMTEuNCAzOC45LTI2LjcgNDguNWMtNi43IDQuMS0xMy45IDctMjEuMyA4LjhsMCAxMC42YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEuNGMtOS41LTIuMy0xOC4yLTUuMy0yNS42LTcuOGMtMi4xLS43LTQuMS0xLjQtNi0yYy0xMi42LTQuMi0xOS40LTE3LjgtMTUuMi0zMC40czE3LjgtMTkuNCAzMC40LTE1LjJjMi42IC45IDUgMS43IDcuMyAyLjVjMTMuNiA0LjYgMjMuNCA3LjkgMzMuOSA4LjNjOCAuMyAxNS4xLTEuNiAxOS4yLTQuMWMxLjktMS4yIDIuOC0yLjIgMy4yLTIuOWMuNC0uNiAuOS0xLjggLjgtNC4xbDAtLjJjMC0xIDAtMi4xLTQtNC42Yy01LjctMy42LTE0LjMtNi40LTI3LjEtMTAuM2wtMS45LS42Yy0xMC44LTMuMi0yNS03LjUtMzYuNC0xNC40Yy0xMy41LTguMS0yNi41LTIyLTI2LjYtNDQuMWMtLjEtMjIuOSAxMi45LTM4LjYgMjcuNy00Ny40YzYuNC0zLjggMTMuMy02LjQgMjAuMi04LjJMMjY0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMTkyIDUxMiAzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzYuOCAwIDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhsNzguMyAwIDE2IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyMC42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM4NGMwIDAgMCAwIDAgMGwtLjkgMGMuMyAwIC42IDAgLjkgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRIb2xkaW5nVXNkID0gZmFIYW5kSG9sZGluZ0RvbGxhcjtcbmNvbnN0IGZhQmFjdGVyaXVtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhY3Rlcml1bScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA1YVwiLCBcIk00MjMuMSAzMC42YzMuNi0xMi43LTMuNy0yNi0xNi41LTI5LjdzLTI2IDMuNy0yOS43IDE2LjVsLTQuMiAxNC43Yy05LjgtLjQtMTkuOSAuNS0yOS45IDIuOGMtMTIuMSAyLjgtMjMuNyA1LjktMzQuOSA5LjRsLTUuOS0xMy43Yy01LjItMTIuMi0xOS4zLTE3LjgtMzEuNS0xMi42cy0xNy44IDE5LjMtMTIuNiAzMS41bDQuOSAxMS4zYy0yMiA5LjQtNDIgMjAuMS02MC4yIDMxLjhMMTk2IDgyLjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zbDcuOCAxMS42Yy0xOCAxNS0zMy43IDMwLjgtNDcuMyA0Ny4xTDEwMyAxNTcuM2MtMTAuNC04LjMtMjUuNS02LjYtMzMuNyAzLjdzLTYuNiAyNS41IDMuNyAzMy43bDE1IDEyYy0yLjEgMy4yLTQuMSA2LjUtNiA5LjdjLTkuNCAxNS43LTE3IDMxLTIzLjIgNDUuM2wtOS45LTMuOWMtMTIuMy00LjktMjYuMyAxLjEtMzEuMiAxMy40czEuMSAyNi4zIDEzLjQgMzEuMmwxMS42IDQuNmMtLjMgMS4xLS42IDIuMS0uOSAzLjFjLTMuNSAxMi41LTUuNyAyMy4yLTcuMSAzMS4zYy0uNyA0LjEtMS4yIDcuNS0xLjYgMTAuM2MtLjIgMS40LS4zIDIuNi0uNCAzLjZsLS4xIDEuNC0uMSAuNiAwIC4zIDAgLjFjMCAwIDAgLjEgMzkuMiAzLjdjMCAwIDAgMCAwIDBsLTM5LjItMy42Yy0uNSA1LS42IDEwLS40IDE0LjlsLTE0LjcgNC4yQzQuNyAzODAuNi0yLjcgMzkzLjggLjkgNDA2LjZzMTYuOSAyMC4xIDI5LjcgMTYuNWwxMy44LTMuOWMxMC42IDIwLjcgMjcuNiAzNy44IDQ4LjUgNDguNWwtMy45IDEzLjdjLTMuNiAxMi43IDMuNyAyNiAxNi41IDI5LjdzMjYtMy43IDI5LjctMTYuNWw0LjItMTQuN2MyMy44IDEgNDYuMy01LjUgNjUuMS0xNy42TDIxNSA0NzNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMC42LTEwLjZjOS4xLTE0LjEgMTUuMS0zMC41IDE3LTQ4LjNsLjEtLjhjLjMtMS43IDEtNS4xIDIuMy05LjhsLjItLjggMTIuNiA1LjRjMTIuMiA1LjIgMjYuMy0uNCAzMS41LTEyLjZzLS40LTI2LjMtMTIuNi0zMS41bC0xMS4zLTQuOGM5LjktMTQuOSAyNC45LTMxLjYgNDguNi00NmwyLjEgNy41YzMuNiAxMi43IDE2LjkgMjAuMSAyOS43IDE2LjVzMjAuMS0xNi45IDE2LjUtMjkuN0wzNzEgMjU5LjJjNi45LTIuMiAxNC4zLTQuMyAyMi4yLTYuMWMxMi45LTMgMjQuNy04IDM1LjItMTQuOEw0MzkgMjQ5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTAuNi0xMC42YzEyLjItMTkgMTguNi00MS42IDE3LjYtNjUuMWwxNC43LTQuMmMxMi43LTMuNiAyMC4xLTE2LjkgMTYuNS0yOS43cy0xNi45LTIwLjEtMjkuNy0xNi41bC0xMy43IDMuOWMtMTAuOC0yMS4yLTI4LTM4LTQ4LjUtNDguNWwzLjktMTMuOHpNOTIuMSAzNjMuM3MwIDAgMCAwTDE0NCAzNjhsLTUxLjktNC43ek0xMTIgMzIwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI0MCAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhSGFuZFBvaW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjVhXCIsIFwiTTEyOCA0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTQ4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMmMyMC42IDAgMzguMiAxMyA0NSAzMS4yYzguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjJjMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zYzguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuM2MyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDAgMTYgMCA0OGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYgMC02NCAwLS4xIDAtNS4yIDBjLTUgMC05LjktLjMtMTQuNy0xYy01NS4zLTUuNi0xMDYuMi0zNC0xNDAtNzlMOCAzMzZjLTEzLjMtMTcuNy05LjctNDIuNyA4LTU2czQyLjctOS43IDU2IDhsNTYgNzQuN0wxMjggNDB6TTI0MCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnpcIl1cbn07XG5jb25zdCBmYURydW1TdGVlbHBhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtLXN0ZWVscGFuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTZhXCIsIFwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjhjLTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjRjMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNWM0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNEM1NiAxMzAuMSA0OCAxNTAuMSA0OCAxNjBzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNWMwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThDMjI0LjUgODcgMjI0IDkxLjUgMjI0IDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMkMzMzAuOCA4MSAzMDkuOCA4MCAyODggODBzLTQyLjggMS02Mi42IDIuOHpcIl1cbn07XG5jb25zdCBmYUhhbmRTY2lzc29ycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXNjaXNzb3JzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjU3XCIsIFwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyYzAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOWMtNy43IDguNS0xMi4zIDE5LjgtMTIuMyAzMi4xYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgNjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjNDNDQ0LjggNzYuOCA0MTMuOSA2NCAzODEuNyA2NEwzMzYgNjRjLTIxLjMgMC0zOS4zIDEzLjktNDUuNiAzMy4xbDc0LjUgMjMuN2M4LjQgMi43IDEzLjEgMTEuNyAxMC40IDIwLjFzLTExLjcgMTMuMS0yMC4xIDEwLjRMMjg4IDEyOS45YzAgMCAwIC4xIDAgLjFMODQgNjUuOEM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjggOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6XCJdXG59O1xuY29uc3QgZmFIYW5kc1ByYXlpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtcHJheWluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW1wicHJheWluZy1oYW5kc1wiXSwgXCJmNjg0XCIsIFwiTTM1MS4yIDQuOGMzLjItMiA2LjYtMy4zIDEwLTQuMWM0LjctMSA5LjYtLjkgMTQuMSAuMWM3LjcgMS44IDE0LjggNi41IDE5LjQgMTMuNkw1MTQuNiAxOTQuMmM4LjggMTMuMSAxMy40IDI4LjYgMTMuNCA0NC40bDAgNzMuNWMwIDYuOSA0LjQgMTMgMTAuOSAxNS4ybDc5LjIgMjYuNEM2MzEuMiAzNTggNjQwIDM3MC4yIDY0MCAzODRsMCA5NmMwIDkuOS00LjYgMTkuMy0xMi41IDI1LjRzLTE4LjEgOC4xLTI3LjcgNS41TDQzMSA0NjUuOWMtNTYtMTQuOS05NS02NS43LTk1LTEyMy43TDMzNiAyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04NC45YzAtNy0xLjgtMTMuOC01LjMtMTkuOEwzNDAuMyA0OC4xYy0xLjctMy0yLjktNi4xLTMuNi05LjNjLTEtNC43LTEtOS42IC4xLTE0LjFjMS45LTggNi44LTE1LjIgMTQuMy0xOS45em0tNjIuNCAwYzcuNSA0LjYgMTIuNCAxMS45IDE0LjMgMTkuOWMxLjEgNC42IDEuMiA5LjQgLjEgMTQuMWMtLjcgMy4yLTEuOSA2LjMtMy42IDkuM0wyMTMuMyAxOTkuM2MtMy41IDYtNS4zIDEyLjktNS4zIDE5LjhsMCA4NC45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTE4LjJjMCA1OC0zOSAxMDguNy05NSAxMjMuN2wtMTY4LjcgNDVjLTkuNiAyLjYtMTkuOSAuNS0yNy43LTUuNVMwIDQ5MCAwIDQ4MGwwLTk2YzAtMTMuOCA4LjgtMjYgMjEuOS0zMC40bDc5LjItMjYuNGM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTczLjVjMC0xNS44IDQuNy0zMS4yIDEzLjQtNDQuNEwyNDUuMiAxNC41YzQuNi03LjEgMTEuNy0xMS44IDE5LjQtMTMuNmM0LjYtMS4xIDkuNC0xLjIgMTQuMS0uMWMzLjUgLjggNi45IDIuMSAxMCA0LjF6XCJdXG59O1xuY29uc3QgZmFQcmF5aW5nSGFuZHMgPSBmYUhhbmRzUHJheWluZztcbmNvbnN0IGZhQXJyb3dSb3RhdGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yb3RhdGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4NjM1LCBcImFycm93LXJpZ2h0LXJvdGF0ZVwiLCBcImFycm93LXJvdGF0ZS1mb3J3YXJkXCIsIFwicmVkb1wiXSwgXCJmMDFlXCIsIFwiTTM4Ni4zIDE2MEwzMzYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTEuMkw0MTQuNCA5Ny42Yy04Ny41LTg3LjUtMjI5LjMtODcuNS0zMTYuOCAwcy04Ny41IDIyOS4zIDAgMzE2LjhzMjI5LjMgODcuNSAzMTYuOCAwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwcy02Mi41LTE2My44IDAtMjI2LjNzMTYzLjgtNjIuNSAyMjYuMyAwTDM4Ni4zIDE2MHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRSb3RhdGUgPSBmYUFycm93Um90YXRlUmlnaHQ7XG5jb25zdCBmYUFycm93Um90YXRlRm9yd2FyZCA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbmNvbnN0IGZhUmVkbyA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbmNvbnN0IGZhV2ViQXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWItYXdlc29tZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY4MlwiLCBcIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MmwxMDQuNC0yMC45Yy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjFjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnpcIl1cbn07XG5jb25zdCBmYUJpb2hhemFyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaW9oYXphcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5NzYzXSwgXCJmNzgwXCIsIFwiTTE3My4yIDBjLTEuOCAwLTMuNSAuNy00LjggMkMxMzguNSAzMi4zIDEyMCA3NCAxMjAgMTIwYzAgMjYuMiA2IDUwLjkgMTYuNiA3M2MtMjIgMi40LTQzLjggOS4xLTY0LjIgMjAuNUMzNy45IDIzMi44IDEzLjMgMjYyLjQgLjQgMjk2Yy0uNyAxLjctLjUgMy43IC41IDUuMmMyLjIgMy43IDcuNCA0LjMgMTAuNiAxLjNDNjQuMiAyNTQuMyAxNTggMjQ1LjEgMjA1IDMyNHMtOC4xIDE1My4xLTc3LjYgMTczLjJjLTQuMiAxLjItNi4zIDUuOS00LjEgOS42YzEgMS42IDIuNiAyLjcgNC41IDNjMzYuNSA1LjkgNzUuMiAuMSAxMDkuNy0xOS4yYzIwLjQtMTEuNCAzNy40LTI2LjUgNTAuNS00My44YzEzLjEgMTcuMyAzMC4xIDMyLjQgNTAuNSA0My44YzM0LjUgMTkuMyA3My4zIDI1LjIgMTA5LjcgMTkuMmMxLjktLjMgMy41LTEuNCA0LjUtM2MyLjItMy43IC4xLTguNC00LjEtOS42QzM3OS4xIDQ3Ny4xIDMyNCA0MDMgMzcxIDMyNHMxNDAuNy02OS44IDE5My41LTIxLjRjMy4yIDIuOSA4LjQgMi4zIDEwLjYtMS4zYzEtMS42IDEuMS0zLjUgLjUtNS4yYy0xMi45LTMzLjYtMzcuNS02My4yLTcyLjEtODIuNWMtMjAuNC0xMS40LTQyLjItMTguMS02NC4yLTIwLjVDNDUwIDE3MC45IDQ1NiAxNDYuMiA0NTYgMTIwYzAtNDYtMTguNS04Ny43LTQ4LjQtMTE4Yy0xLjMtMS4zLTMtMi00LjgtMmMtNSAwLTguNCA1LjItNi43IDkuOUM0MjEuNyA4MC41IDM4NS42IDE3NiAyODggMTc2UzE1NC4zIDgwLjUgMTc5LjkgOS45YzEuNy00LjctMS42LTkuOS02LjctOS45ek0yNDAgMjcyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE4MS43IDQxNy42YzYuMy0xMS44IDkuOC0yNS4xIDguNi0zOS44Yy0xOS41LTE4LTM0LTQxLjQtNDEuMi02Ny44Yy0xMi41LTguMS0yNi4yLTExLjgtNDAtMTIuNGMtOS0uNC0xOC4xIC42LTI3LjEgMi43YzcuOCA1Ny4xIDM4LjcgMTA2LjggODIuOSAxMzkuNGM2LjgtNi43IDEyLjYtMTQuMSAxNi44LTIyLjF6TTI4OCA2NGMtMjguOCAwLTU2LjMgNS45LTgxLjIgMTYuNWMyIDguMyA1IDE2LjIgOSAyMy41YzYuOCAxMi40IDE2LjcgMjMuMSAzMC4xIDMwLjNjMTMuMy00LjEgMjcuNS02LjMgNDIuMi02LjNzMjguOCAyLjIgNDIuMiA2LjNjMTMuNC03LjIgMjMuMy0xNy45IDMwLjEtMzAuM2M0LTcuMyA3LTE1LjIgOS0yMy41QzM0NC4zIDY5LjkgMzE2LjggNjQgMjg4IDY0ek00MjYuOSAzMTBjLTcuMiAyNi40LTIxLjcgNDkuNy00MS4yIDY3LjhjLTEuMiAxNC43IDIuMiAyOC4xIDguNiAzOS44YzQuMyA4IDEwIDE1LjQgMTYuOCAyMi4xYzQ0LjMtMzIuNiA3NS4yLTgyLjMgODIuOS0xMzkuNGMtOS0yLjItMTguMS0zLjEtMjcuMS0yLjdjLTEzLjggLjYtMjcuNSA0LjQtNDAgMTIuNHpcIl1cbn07XG5jb25zdCBmYUxvY2F0aW9uQ3Jvc3NoYWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1jcm9zc2hhaXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb2NhdGlvblwiXSwgXCJmNjAxXCIsIFwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNGwzNC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCAzNC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuN0MxNDMuNiA0MzEuOSA4MC4xIDM2OC40IDY2LjcgMjg4TDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzNC43IDBDODAuMSAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDI1NmExMjggMTI4IDAgMSAwIDI1NiAwIDEyOCAxMjggMCAxIDAgLTI1NiAwem0xMjgtODBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFMb2NhdGlvbiA9IGZhTG9jYXRpb25Dcm9zc2hhaXJzO1xuY29uc3QgZmFNYXJzRG91YmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnMtZG91YmxlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTg5MV0sIFwiZjIyN1wiLCBcIk0zMTIgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDI3NS44IDE1OWMtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMUM3OC44IDEyOCAwIDIwNi44IDAgMzA0czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw0MDcgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMTIgMzJ6bTg4IDQ4czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek02NCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMEExMTIgMTEyIDAgMSAxIDY0IDMwNHpNMzY4IDQ4MGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw1OTkgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEw1MDQgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOGMtMS4yIDIuOS0xLjggNi0xLjggOWwwIC4yIDAgLjJjMCA2LjIgMi41IDEyLjIgNyAxNi44bDMzLjQgMzMuNEw0ODAgMTQ2LjdsMCAyMS4zYzAgMjIuNi0xMy42IDQzLjEtMzQuNiA1MS43Yy0uOCAuMy0xLjcgLjctMi41IDFDNDY1LjcgMjQxLjIgNDgwIDI3MC45IDQ4MCAzMDRjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTUuNCAwLTEwLjgtLjQtMTYtMS4xYy0xMi45IDIwLjQtMjkuMSAzOC4zLTQ4LjEgNTMuMWMxOS44IDcuOCA0MS40IDEyIDY0IDEyelwiXVxufTtcbmNvbnN0IGZhQ2hpbGREcmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGlsZC1kcmVzcycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTU5Y1wiLCBcIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDQwMGwwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNiAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtMzEuMS05My40IDI4LjYgMzcuOGMxMC43IDE0LjEgMzAuOCAxNi44IDQ0LjggNi4yczE2LjgtMzAuNyA2LjItNDQuOEwyNTQuNiAyMDdjLTIyLjQtMjkuNi01Ny41LTQ3LTk0LjYtNDdzLTcyLjIgMTcuNC05NC42IDQ3TDYuNSAyODQuN2MtMTAuNyAxNC4xLTcuOSAzNC4yIDYuMiA0NC44czM0LjIgNy45IDQ0LjgtNi4ybDI4LjctMzcuOEw1NSAzNzguOUM1MS42IDM4OS4zIDU5LjMgNDAwIDcwLjIgNDAwTDg4IDQwMHpcIl1cbn07XG5jb25zdCBmYVVzZXJzQmV0d2VlbkxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLWJldHdlZW4tbGluZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTFcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDhDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMCA0ODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNTkyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODMuMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsOTYgMGMxMi4yIDAgMjMuNyAzLjQgMzMuNCA5LjRjLTM3LjIgMTUuMS02NS42IDQ3LjItNzUuOCA4Ni42TDY0IDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTQ2MS42IDMyYy0xMC4zLTQwLjEtMzkuNi03Mi42LTc3LjctODcuNGM5LjQtNS41IDIwLjQtOC42IDMyLjEtOC42bDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgyLjQgMHpNMzkxLjIgMjkwLjRjMzIuMSA3LjQgNTguMSAzMC45IDY4LjkgNjEuNmMzLjUgMTAgNS41IDIwLjggNS41IDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJjMC0xMS4yIDEuOS0yMiA1LjUtMzJjMTAuNS0yOS43IDM1LjMtNTIuOCA2Ni4xLTYwLjljNy44LTIuMSAxNi0zLjEgMjQuNS0zLjFsOTYgMGM3LjQgMCAxNC43IC44IDIxLjYgMi40em00NC0xMzAuNGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyMS42IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhTHVuZ3NWaXJ1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsdW5ncy12aXJ1cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2N1wiLCBcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyNC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4ycy0yMy41IDQuNi0zMiAxMi4yTDI4OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDQ0LjUgMTk1LjVjLTE2LjQtMTYuNC00MS44LTE4LjUtNjAuNS02LjFsMC0yNC4xQzM4NCAxMjcgNDE1IDk2IDQ1My4zIDk2YzIxLjcgMCA0Mi44IDEwLjIgNTUuOCAyOC44YzE1LjQgMjIuMSA0NC4zIDY1LjQgNzEgMTE2LjljMjYuNSA1MC45IDUyLjQgMTEyLjUgNTkuNiAxNzAuM2MuMiAxLjMgLjIgMi42IC4yIDRsMCA3YzAgNDkuMS0zOS44IDg5LTg5IDg5Yy03LjMgMC0xNC41LS45LTIxLjYtMi43bC03Mi43LTE4LjJjLTIwLjktNS4yLTM4LjctMTcuMS01MS41LTMyLjljMTQgMS41IDI4LjUtMyAzOS4yLTEzLjhsLTIyLjYtMjIuNiAyMi42IDIyLjZjMTguNy0xOC43IDE4LjctNDkuMSAwLTY3LjljLTEuMS0xLjEtMS40LTItMS41LTIuNWMtLjEtLjgtLjEtMS44IC40LTIuOXMxLjItMS45IDEuOC0yLjNjLjUtLjMgMS4zLS44IDIuOS0uOGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGMtMS42IDAtMi40LS40LTIuOS0uOGMtLjYtLjQtMS4zLTEuMi0xLjgtMi4zcy0uNS0yLjItLjQtMi45Yy4xLS42IC40LTEuNCAxLjUtMi41YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45ek00MjEuOCA0MjEuOGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBDMzc1LjkgMzk4LjUgMzM2IDQxNSAzMzYgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtMzMtMzkuOS00OS41LTYzLjItMjYuMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkMyNDEuNSAzNzUuOSAyMjUgMzM2IDE5MiAzMzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZjMzMgMCA0OS41LTM5LjkgMjYuMi02My4yYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBDMjY0LjEgMjQxLjUgMzA0IDIyNSAzMDQgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZjMCAzMyAzOS45IDQ5LjUgNjMuMiAyNi4yYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkMzOTguNSAyNjQuMSA0MTUgMzA0IDQ0OCAzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTMzIDAtNDkuNSAzOS45LTI2LjIgNjMuMmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnpNMTgzLjMgNDkxLjJsLTcyLjcgMTguMmMtNy4xIDEuOC0xNC4zIDIuNy0yMS42IDIuN2MtNDkuMSAwLTg5LTM5LjgtODktODlsMC03YzAtMS4zIC4xLTIuNyAuMi00YzcuMi01Ny45IDMzLjEtMTE5LjQgNTkuNi0xNzAuM2MyNi44LTUxLjUgNTUuNi05NC44IDcxLTExNi45YzEzLTE4LjYgMzQtMjguOCA1NS44LTI4LjhDMjI1IDk2IDI1NiAxMjcgMjU2IDE2NS4zbDAgMjQuMWMtMTguNi0xMi40LTQ0LTEwLjMtNjAuNSA2LjFjLTE4LjcgMTguNy0xOC43IDQ5LjEgMCA2Ny45YzEuMSAxLjEgMS40IDIgMS41IDIuNWMuMSAuOCAuMSAxLjgtLjQgMi45cy0xLjIgMS45LTEuOCAyLjNjLS41IC4zLTEuMyAuOC0yLjkgLjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhjMS42IDAgMi40IC40IDIuOSAuOGMuNiAuNCAxLjMgMS4yIDEuOCAyLjNzLjUgMi4yIC40IDIuOWMtLjEgLjYtLjQgMS40LTEuNSAyLjVjLTE4LjcgMTguNy0xOC43IDQ5LjEgMCA2Ny45YzEwLjcgMTAuNyAyNS4zIDE1LjMgMzkuMiAxMy44Yy0xMi44IDE1LjktMzAuNiAyNy43LTUxLjUgMzIuOXpNMjk2IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTcyIDMyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpblRlYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi10ZWFycycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODUxNCwgXCJncmluLXRlYXJzXCJdLCBcImY1ODhcIiwgXCJNNTQ4LjYgMzcxLjRDNTA2LjQgNDU0LjggNDE5LjkgNTEyIDMyMCA1MTJzLTE4Ni40LTU3LjItMjI4LjYtMTQwLjZjNC41LTIuOSA4LjctNi4zIDEyLjctMTAuM2M4LjEtOC4xIDEzLjItMTguNiAxNi41LTI2LjZjMy42LTguOCA2LjUtMTguNCA4LjgtMjcuNWM0LjYtMTguMiA3LjctMzcgOS4zLTQ4LjJjMy45LTI2LjUtMTguOC00OS4yLTQ1LjItNDUuNGMtNi44IC45LTE2LjIgMi40LTI2LjYgNC40Qzg1LjMgOTQuNSAxOTEuNiAwIDMyMCAwUzU1NC43IDk0LjUgNTczLjIgMjE3LjdjLTEwLjMtMi0xOS44LTMuNS0yNi42LTQuNGMtMjYuNS0zLjktNDkuMiAxOC44LTQ1LjIgNDUuNGMxLjYgMTEuMyA0LjYgMzAgOS4zIDQ4LjJjMi4zIDkuMSA1LjIgMTguOCA4LjggMjcuNWMzLjMgOC4xIDguNCAxOC41IDE2LjUgMjYuNmMzLjkgMy45IDguMiA3LjQgMTIuNyAxMC4zek0xMDcgMjU0LjFjLTMuMSAyMS41LTExLjQgNzAuMi0yNS41IDg0LjRjLS45IDEtMS45IDEuOC0yLjkgMi43QzYwIDM1Ni43IDMyIDM1NS41IDE0LjMgMzM3LjdjLTE4LjctMTguNy0xOS4xLTQ4LjgtLjctNjcuMmM4LjYtOC42IDMwLjEtMTUuMSA1MC41LTE5LjZjMTMtMi44IDI1LjUtNC44IDMzLjktNmM1LjQtLjggOS45IDMuNyA5IDl6bTQ1NC41IDg3LjFjLS44LS42LTEuNS0xLjMtMi4zLTJjLS4yLS4yLS41LS40LS43LS43Yy0xNC4xLTE0LjEtMjIuNS02Mi45LTI1LjUtODQuNGMtLjgtNS40IDMuNy05LjkgOS05YzEgLjEgMi4yIC4zIDMuMyAuNWM4LjIgMS4yIDE5LjIgMyAzMC42IDUuNWMyMC40IDQuNCA0MS45IDEwLjkgNTAuNSAxOS42YzE4LjQgMTguNCAxOCA0OC41LS43IDY3LjJjLTE3LjcgMTcuNy00NS43IDE5LTY0LjIgMy40em0tOTAuMS05LjdjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzI1IDU5LjEgODMuMiAxMDAuNSAxNTEuMSAxMDAuNXMxMjYuMi00MS40IDE1MS4xLTEwMC41ek0yODEuNiAyMjguOHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTkwLjcgMTg4LjQgMTg0IDIwNi4xIDE4NCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMmMwIDAgMCAwIDAgMHptMTYwIDBzMCAwIDAgMHMwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMzNTAuNyAxODguNCAzNDQgMjA2LjEgMzQ0IDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwYzAgMCAwIDAgMCAwbC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhR3JpblRlYXJzID0gZmFGYWNlR3JpblRlYXJzO1xuY29uc3QgZmFQaG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyMiwgMTI4Mzc5XSwgXCJmMDk1XCIsIFwiTTE2NC45IDI0LjZjLTcuNy0xOC42LTI4LTI4LjUtNDcuNC0yMy4ybC04OCAyNEMxMi4xIDMwLjIgMCA0NiAwIDY0QzAgMzExLjQgMjAwLjYgNTEyIDQ0OCA1MTJjMTggMCAzMy44LTEyLjEgMzguNi0yOS41bDI0LTg4YzUuMy0xOS40LTQuNi0zOS43LTIzLjItNDcuNGwtOTYtNDBjLTE2LjMtNi44LTM1LjItMi4xLTQ2LjMgMTEuNkwzMDQuNyAzNjhDMjM0LjMgMzM0LjcgMTc3LjMgMjc3LjcgMTQ0IDIwNy4zTDE5My4zIDE2N2MxMy43LTExLjIgMTguNC0zMCAxMS42LTQ2LjNsLTQwLTk2elwiXVxufTtcbmNvbnN0IGZhQ2FsZW5kYXJYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci14bWFyaycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FsZW5kYXItdGltZXNcIl0sIFwiZjI3M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnpNMzA1IDMwNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDd6XCJdXG59O1xuY29uc3QgZmFDYWxlbmRhclRpbWVzID0gZmFDYWxlbmRhclhtYXJrO1xuY29uc3QgZmFDaGlsZFJlYWNoaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoaWxkLXJlYWNoaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTlkXCIsIFwiTTI1NiA2NEE2NCA2NCAwIDEgMCAxMjggNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTE1Mi45IDE2OS4zYy0yMy43LTguNC00NC41LTI0LjMtNTguOC00NS44TDc0LjYgOTQuMkM2NC44IDc5LjUgNDUgNzUuNiAzMC4yIDg1LjRzLTE4LjcgMjkuNy04LjkgNDQuNEw0MC45IDE1OWMxOC4xIDI3LjEgNDIuOCA0OC40IDcxLjEgNjIuNEwxMTIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1OC40YzI5LjEtMTQuMiA1NC40LTM2LjIgNzIuNy02NC4ybDE4LjItMjcuOWM5LjYtMTQuOCA1LjQtMzQuNi05LjQtNDQuM3MtMzQuNi01LjUtNDQuMyA5LjRMMjkxIDEyMi40Yy0yMS44IDMzLjQtNTguOSA1My42LTk4LjggNTMuNmMtMTIuNiAwLTI0LjktMi0zNi42LTUuOGMtLjktLjMtMS44LS43LTIuNy0uOXpcIl1cbn07XG5jb25zdCBmYUhlYWRTaWRlVmlydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZC1zaWRlLXZpcnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDY0XCIsIFwiTTAgMjI0LjJDMCAxMDAuNiAxMDAuMiAwIDIyNCAwbDI0IDBjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM2LjIgNy44IDkuNiAxNy40IDkuNiAyNy40YzAgMjQuMi0xOS42IDQzLjgtNDMuOCA0My44TDQ0OCAzMjBsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03Mi43YzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6TTIyNCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2YzAgMzMtMzkuOSA0OS41LTYzLjIgMjYuMmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkMxNDUuNSAxNTIuMSAxMjkgMTkyIDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmMzMyAwIDQ5LjUgMzkuOSAyNi4yIDYzLjJjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEMxNjguMSAyODYuNSAyMDggMzAzIDIwOCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTMzIDM5LjktNDkuNSA2My4yLTI2LjJjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42QzMwMi41IDI2My45IDMxOSAyMjQgMzUyIDIyNGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtMzMgMC00OS41LTM5LjktMjYuMi02My4yYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBDMjc5LjkgMTI5LjUgMjQwIDExMyAyNDAgODBjMC04LjgtNy4yLTE2LTE2LTE2em0tMjQgOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4MGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhVXNlckdlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1nZWFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2VyLWNvZ1wiXSwgXCJmNGZlXCIsIFwiTTIyNCAwYTEyOCAxMjggMCAxIDEgMCAyNTZBMTI4IDEyOCAwIDEgMSAyMjQgMHpNMTc4LjMgMzA0bDkxLjQgMGMxMS44IDAgMjMuNCAxLjIgMzQuNSAzLjNjLTIuMSAxOC41IDcuNCAzNS42IDIxLjggNDQuOGMtMTYuNiAxMC42LTI2LjcgMzEuNi0yMCA1My4zYzQgMTIuOSA5LjQgMjUuNSAxNi40IDM3LjZzMTUuMiAyMy4xIDI0LjQgMzNjMTUuNyAxNi45IDM5LjYgMTguNCA1Ny4yIDguN2wwIC45YzAgOS4yIDIuNyAxOC41IDcuOSAyNi4zTDI5LjcgNTEyQzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNNDM2IDIxOC4yYzAtNyA0LjUtMTMuMyAxMS4zLTE0LjhjMTAuNS0yLjQgMjEuNS0zLjcgMzIuNy0zLjdzMjIuMiAxLjMgMzIuNyAzLjdjNi44IDEuNSAxMS4zIDcuOCAxMS4zIDE0LjhsMCAzMC42YzcuOSAzLjQgMTUuNCA3LjcgMjIuMyAxMi44bDI0LjktMTQuM2M2LjEtMy41IDEzLjctMi43IDE4LjUgMi40YzcuNiA4LjEgMTQuMyAxNy4yIDIwLjEgMjcuMnMxMC4zIDIwLjQgMTMuNSAzMWMyLjEgNi43LTEuMSAxMy43LTcuMiAxNy4ybC0yNSAxNC40Yy40IDQgLjcgOC4xIC43IDEyLjNzLS4yIDguMi0uNyAxMi4zbDI1IDE0LjRjNi4xIDMuNSA5LjIgMTAuNSA3LjIgMTcuMmMtMy4zIDEwLjYtNy44IDIxLTEzLjUgMzFzLTEyLjUgMTkuMS0yMC4xIDI3LjJjLTQuOCA1LjEtMTIuNSA1LjktMTguNSAyLjRsLTI0LjktMTQuM2MtNi45IDUuMS0xNC4zIDkuNC0yMi4zIDEyLjhsMCAzMC42YzAgNy00LjUgMTMuMy0xMS4zIDE0LjhjLTEwLjUgMi40LTIxLjUgMy43LTMyLjcgMy43cy0yMi4yLTEuMy0zMi43LTMuN2MtNi44LTEuNS0xMS4zLTcuOC0xMS4zLTE0LjhsMC0zMC41Yy04LTMuNC0xNS42LTcuNy0yMi41LTEyLjlsLTI0LjcgMTQuM2MtNi4xIDMuNS0xMy43IDIuNy0xOC41LTIuNGMtNy42LTguMS0xNC4zLTE3LjItMjAuMS0yNy4ycy0xMC4zLTIwLjQtMTMuNS0zMWMtMi4xLTYuNyAxLjEtMTMuNyA3LjItMTcuMmwyNC44LTE0LjNjLS40LTQuMS0uNy04LjItLjctMTIuNHMuMi04LjMgLjctMTIuNEwzNDMuOCAzMjVjLTYuMS0zLjUtOS4yLTEwLjUtNy4yLTE3LjJjMy4zLTEwLjYgNy43LTIxIDEzLjUtMzFzMTIuNS0xOS4xIDIwLjEtMjcuMmM0LjgtNS4xIDEyLjQtNS45IDE4LjUtMi40bDI0LjggMTQuM2M2LjktNS4xIDE0LjUtOS40IDIyLjUtMTIuOWwwLTMwLjV6bTkyLjEgMTMzLjVhNDguMSA0OC4xIDAgMSAwIC05Ni4xIDAgNDguMSA0OC4xIDAgMSAwIDk2LjEgMHpcIl1cbn07XG5jb25zdCBmYVVzZXJDb2cgPSBmYVVzZXJHZWFyO1xuY29uc3QgZmFBcnJvd1VwMTkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtMS05JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtdXBcIl0sIFwiZjE2M1wiLCBcIk00NTAuNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTQ4IDAtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0xNjAgMzJjOSAwIDE3LjUgMy44IDIzLjYgMTAuNGw4OCA5NmMxMS45IDEzIDExLjEgMzMuMy0yIDQ1LjJzLTMzLjMgMTEuMS00NS4yLTJMMTkyIDE0Ni4zIDE5MiA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMDEuN0w5NS42IDE4MS42Yy0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDJzLTEzLjktMzIuMi0yLTQ1LjJsODgtOTZDMTQyLjUgMzUuOCAxNTEgMzIgMTYwIDMyek00NDUuNyAzNjQuOUEzMiAzMiAwIDEgMCA0MTguMyAzMDdhMzIgMzIgMCAxIDAgMjcuNCA1Ny45em0tNDAuNyA1NC45QzM2OS42IDQwOC40IDM0NCAzNzUuMiAzNDQgMzM2YzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAyMy41LTcuNSA0Ni4zLTIxLjUgNjUuMkw0NDkuNyA0NjdjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjdzLTE3LjItMzAuNi02LjctNDQuOGw2LjgtOS4yelwiXVxufTtcbmNvbnN0IGZhU29ydE51bWVyaWNVcCA9IGZhQXJyb3dVcDE5O1xuY29uc3QgZmFEb29yQ2xvc2VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3ItY2xvc2VkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4NjgyXSwgXCJmNTJhXCIsIFwiTTk2IDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExMiAwLTI4OCAwTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwTDk2IDY0ek0zODQgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZFZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC12aXJ1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2Y1wiLCBcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNTYgMTEyYzguOCAwIDE2IDcuMiAxNiAxNmMwIDMzIDM5LjkgNDkuNSA2My4yIDI2LjJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42QzMzNC41IDIwMC4xIDM1MSAyNDAgMzg0IDI0MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtMzMgMC00OS41IDM5LjktMjYuMiA2My4yYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBDMzExLjkgMzM0LjUgMjcyIDM1MSAyNzIgMzg0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtMzMtMzkuOS00OS41LTYzLjItMjYuMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkMxNzcuNSAzMTEuOSAxNjEgMjcyIDEyOCAyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZjMzMgMCA0OS41LTM5LjkgMjYuMi02My4yYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBDMjAwLjEgMTc3LjUgMjQwIDE2MSAyNDAgMTI4YzAtOC44IDcuMi0xNiAxNi0xNnpNMjMyIDI1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTcyIDMyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFEaWNlU2l4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2Utc2l4JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTg2MV0sIFwiZjUyNlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFNb3NxdWl0b05ldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3NxdWl0by1uZXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MmNcIiwgXCJNMTY4LjggNDYyLjNjLTcuOS00LTExLjEtMTMuNi03LjItMjEuNUwxOTIgMzgwLjJsMC00NC4yYzAtNC4yIDEuNy04LjMgNC43LTExLjNMMjU2IDI2NS40bDAtMjMuMUwxMzkuMiAzNDRDODcuOCAzOTUuMyAwIDM1OC45IDAgMjg2LjNjMC00MS4xIDMwLjYtNzUuOCA3MS40LTgwLjlsMTU5LjktMjMuOS00OS42LTQxLjNjLTUuMS00LjItNy0xMS4xLTQuOS0xNy40bDEzLjktNDEuNy0yOS01OC4xYy00LTcuOS0uNy0xNy41IDcuMi0yMS41czE3LjUtLjcgMjEuNSA3LjJsMzIgNjRjMS45IDMuOCAyLjIgOC4yIC45IDEyLjJsLTEyLjUgMzcuNkwyNTYgMTYwLjVsMC0yMi42YzAtMTQuOSAxMC4xLTI3LjMgMjMuOC0zMWwwLTQzLjNjMC00LjUgMy43LTguMiA4LjItOC4yczguMiAzLjcgOC4yIDguMmwwIDQzLjNjMTMuNyAzLjYgMjMuOCAxNi4xIDIzLjggMzFsMCAyMi42IDQ1LjQtMzcuOEwzNTIuOCA4NS4xYy0xLjMtNC0xLTguNCAuOS0xMi4ybDMyLTY0YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTI5IDU4LjEgMTMuOSA0MS43YzIuMSA2LjIgLjEgMTMuMS00LjkgMTcuNGwtNDkuNiA0MS4zIDE1OS45IDIzLjljMjIuNSAyLjggNDEuOCAxNC42IDU0LjcgMzEuNGMtMi43IDIuNi01LjIgNS40LTcuMyA4LjZjLTguNi0xMi45LTIzLjMtMjEuNS00MC0yMS41cy0zMS40IDguNS00MCAyMS41Yy04LjYtMTIuOS0yMy4zLTIxLjUtNDAtMjEuNWMtMjEuNyAwLTQwIDE0LjMtNDUuOSAzNC4xYy0xMC43IDMuMi0xOS44IDEwLjEtMjUuOSAxOS4ybC00MC4yLTM1IDAgMjMuMSAzMi40IDMyLjRjLS4zIDItLjQgNC4xLS40IDYuMmMwIDE2LjcgOC41IDMxLjQgMjEuNSA0MGMtNCAyLjYtNy41IDUuOS0xMC42IDkuNUwzMjAgMzEwLjZsMCA1MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLTMyIDMyIDAgNDEuNGMwIDIuNS0uNiA0LjktMS43IDcuMmwtMzIgNjRjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnpNNTEyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNiA0OCAwIDAtMTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDAgMCA0OCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwIDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtMTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2IDQ4IDAgMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTE2IDExMmw0OCAwIDAtNDgtNDggMCAwIDQ4em0wIDgwbDQ4IDAgMC00OC00OCAwIDAgNDh6TTQ0OCAzMjBsMCA0OCA0OCAwIDAtNDgtNDggMHptMCA4MGwwIDQ4IDQ4IDAgMC00OC00OCAwelwiXVxufTtcbmNvbnN0IGZhQnJpZGdlV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZGdlLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGNlXCIsIFwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNS42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40Yy0zNy4zIDAtNjcuNiAzMC4yLTY3LjYgNjcuNmwwIDEyNC45Yy0xMi45IDAtMjUuOCAzLjktMzYuOCAxMS43Yy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjMCAwIDAgMCAwIDBsMC0uNSAwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDEyOCAwIC41Yy0xOSAwLTQxLjItNy45LTU5LjEtMjAuM2MtMTEuMS03LjgtMjQtMTEuNy0zNi45LTExLjdsMC0xMjQuOUM5NiAxOTAuMiA2NS44IDE2MCAyOC40IDE2MEMxMi43IDE2MCAwIDE0Ny4zIDAgMTMxLjZMMCA5NnpNMzA2LjUgMzg5LjlDMzI5IDQwNS40IDM1Ni41IDQxNiAzODQgNDE2YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDY5LjcgNDE3IDQ4MCAzODQgNDgwYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyA0MDUuMiAxNjUuMSA0MTYgMTkyIDQxNmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkJvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1ib290aCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc1NlwiLCBcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAgNjQgMCAwLTE2MHptMzIwIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ0OHpNMjI0IDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MC02NCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0zMjAgMGMtOS4zIDAtMTguMSA0LTI0LjIgMTFzLTguOCAxNi4zLTcuNSAyNS41bDMxLjIgMjE4LjZMMjg4LjYgNDA5LjdjLTMuNSAxNy4zIDcuOCAzNC4yIDI1LjEgMzcuN3MzNC4yLTcuOCAzNy43LTI1LjFsLjctMy42YzEuMyAxNi40IDE1LjEgMjkuNCAzMS45IDI5LjRjMTcuNyAwIDMyLTE0LjMgMzItMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNMTEyIDgwQTQ4IDQ4IDAgMSAwIDE2IDgwYTQ4IDQ4IDAgMSAwIDk2IDB6bTAgMjYxLjNsMC03Mi4xIDQuNyA0LjdjOSA5IDIxLjIgMTQuMSAzMy45IDE0LjFsNzMuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02Ni43IDAtNDEuNi00MS42Yy0xNC4zLTE0LjMtMzMuOC0yMi40LTU0LTIyLjRDMjcuNiAxNjAgMCAxODcuNiAwIDIyMS42bDAgNTUuNyAwIC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiA0Mi43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTguN2MwLTEwLjQtMy40LTIwLjUtOS42LTI4LjhMMTEyIDM0MS4zelwiXVxufTtcbmNvbnN0IGZhVGV4dFdpZHRoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RleHQtd2lkdGgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMzVcIiwgXCJNNjQgMTI4bDAtMzIgMTI4IDAgMCAxMjgtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtMTI4IDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCAzMiA0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwbDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNOS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMzIgMTkyIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlzLTE5LjggMTYuNi0xOS44IDI5LjZsMCAzMi0xOTIgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHpcIl1cbn07XG5jb25zdCBmYUhhdFdpemFyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXQtd2l6YXJkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmU4XCIsIFwiTTY0IDQxNkwxNjguNiAxODAuN2MxNS4zLTM0LjQgNDAuMy02My41IDcyLTgzLjdsMTQ2LjktOTRjMy0xLjkgNi41LTIuOSAxMC0yLjlDNDA3LjcgMCA0MTYgOC4zIDQxNiAxOC42bDAgMS42YzAgMi42LS41IDUuMS0xLjQgNy41TDM1NC44IDE3Ni45Yy0xLjkgNC43LTIuOCA5LjctMi44IDE0LjdjMCA1LjUgMS4yIDExIDMuNCAxNi4xTDQ0OCA0MTZsLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjc2LjQgMjMwLjkgMjcyIDIyNCAyNzJzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzM5IDE0NCAzNDUuMSAxNDQgMzUyczQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41TDIwNy4xIDQxNiA2NCA0MTZ6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4bDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVBlbkZhbmN5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1mYW5jeScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODM5NSwgMTAwMDJdLCBcImY1YWNcIiwgXCJNMzczLjUgMjcuMUMzODguNSA5LjkgNDEwLjIgMCA0MzMgMGM0My42IDAgNzkgMzUuNCA3OSA3OWMwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI3Ny43IDMxOWwtMTAuMy0xMC4zLTY0LTY0TDE5MyAyMzQuMyAzNzMuNSAyNy4xek0xNzAuMyAyNTYuOWwxMC40IDEwLjQgNjQgNjQgMTAuNCAxMC40LTE5LjIgODMuNGMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNEwyNC4zIDUxMC4zbDk1LjQtOTUuNGMyLjYgLjcgNS40IDEuMSA4LjMgMS4xYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgMi45IC40IDUuNiAxLjEgOC4zTDEuNyA0ODcuNiA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44bDgzLjQtMTkuMnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkRpZ2dpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRpZ2dpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImRpZ2dpbmdcIl0sIFwiZjg1ZVwiLCBcIk0yMDggNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNOS44IDIxNC44YzUuMS0xMi4yIDE5LjEtMTggMzEuNC0xMi45TDYwLjcgMjEwbDIyLjktMzguMUM5OS45IDE0NC42IDEyOS4zIDEyOCAxNjEgMTI4YzUxLjQgMCA5NyAzMi45IDExMy4zIDgxLjdsMzQuNiAxMDMuNyA3OS4zIDMzLjEgMzQuMi00NS42YzYuNC04LjUgMTYuNi0xMy4zIDI3LjItMTIuOHMyMC4zIDYuNCAyNS44IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMnMtMTYuMyAxNi4yLTI3LjggMTYuMmwtMjU2IDBjLTExLjEgMC0yMS40LTUuNy0yNy4yLTE1LjJzLTYuNC0yMS4yLTEuNC0zMS4xbDE2LTMyYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdsMzIgMCAyMi41LTMwTDIyLjggMjQ2LjJjLTEyLjItNS4xLTE4LTE5LjEtMTIuOS0zMS40em04Mi44IDkxLjhsMTEyIDQ4YzExLjggNSAxOS40IDE2LjYgMTkuNCAyOS40bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC03NC45LTYwLjYtMjYtMzcgMTExYy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4yUy0zLjkgNDg2LjYgMS42IDQ2OS45bDQ4LTE0NCAxMS0zMyAzMiAxMy43elwiXVxufTtcbmNvbnN0IGZhRGlnZ2luZyA9IGZhUGVyc29uRGlnZ2luZztcbmNvbnN0IGZhVHJhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZjhcIiwgXCJNMTM1LjIgMTcuN0wxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTcuMi0xNC4zQzMwNy40IDYuOCAyOTYuMyAwIDI4NC4yIDBMMTYzLjggMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN3pNNDE2IDEyOEwzMiAxMjggNTMuMiA0NjdjMS42IDI1LjMgMjIuNiA0NSA0Ny45IDQ1bDI0NS44IDBjMjUuMyAwIDQ2LjMtMTkuNyA0Ny45LTQ1TDQxNiAxMjh6XCJdXG59O1xuY29uc3QgZmFHYXVnZVNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1zaW1wbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdhdWdlLXNpbXBsZS1tZWRcIiwgXCJ0YWNob21ldGVyLWF2ZXJhZ2VcIl0sIFwiZjYyOVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjgwIDg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA0LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuM2MwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhR2F1Z2VTaW1wbGVNZWQgPSBmYUdhdWdlU2ltcGxlO1xuY29uc3QgZmFUYWNob21ldGVyQXZlcmFnZSA9IGZhR2F1Z2VTaW1wbGU7XG5jb25zdCBmYUJvb2tNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stbWVkaWNhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdlNlwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjA4IDExMmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVBvbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb28nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxNjldLCBcImYyZmVcIiwgXCJNMjY4LjkgLjljLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS40YzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjFjMCA0NC4xLTM1LjcgNzkuOS03OS44IDgwTDE2MCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4TDEwNCAyNDBjLTM5LjggMC03MiAzMi4yLTcyIDcyYzAgMjMuMiAxMSA0My44IDI4IDU3Yy0zNC4xIDUuNy02MCAzNS4zLTYwIDcxYzAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyYzAtMzUuNy0yNS45LTY1LjMtNjAtNzFjMTctMTMuMiAyOC0zMy44IDI4LTU3YzAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyYzAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjdjLTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43YzAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM2wxNjcuNCAwYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3pcIl1cbn07XG5jb25zdCBmYVF1b3RlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVvdGUtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MjIxLCBcInF1b3RlLXJpZ2h0LWFsdFwiXSwgXCJmMTBlXCIsIFwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDAgMzIgMCA3MnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiAwIDMyIDAgNzJ6XCJdXG59O1xuY29uc3QgZmFRdW90ZVJpZ2h0QWx0ID0gZmFRdW90ZVJpZ2h0O1xuY29uc3QgZmFTaGlydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGlydCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODA4NSwgXCJ0LXNoaXJ0XCIsIFwidHNoaXJ0XCJdLCBcImY1NTNcIiwgXCJNMjExLjggMGM3LjggMCAxNC4zIDUuNyAxNi43IDEzLjJDMjQwLjggNTEuOSAyNzcuMSA4MCAzMjAgODBzNzkuMi0yOC4xIDkxLjUtNjYuOEM0MTMuOSA1LjcgNDIwLjQgMCA0MjguMiAwbDEyLjYgMGMyMi41IDAgNDQuMiA3LjkgNjEuNSAyMi4zTDYyOC41IDEyNy40YzYuNiA1LjUgMTAuNyAxMy41IDExLjQgMjIuMXMtMi4xIDE3LjEtNy44IDIzLjZsLTU2IDY0Yy0xMS40IDEzLjEtMzEuMiAxNC42LTQ0LjYgMy41TDQ4MCAxOTcuNyA0ODAgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNTAuMy01MS41IDQyLjljLTEzLjMgMTEuMS0zMy4xIDkuNi00NC42LTMuNWwtNTYtNjRjLTUuNy02LjUtOC41LTE1LTcuOC0yMy42czQuOC0xNi42IDExLjQtMjIuMUwxMzcuNyAyMi4zQzE1NSA3LjkgMTc2LjcgMCAxOTkuMiAwbDEyLjYgMHpcIl1cbn07XG5jb25zdCBmYVRTaGlydCA9IGZhU2hpcnQ7XG5jb25zdCBmYVRzaGlydCA9IGZhU2hpcnQ7XG5jb25zdCBmYUN1YmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2N1YmVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMWIzXCIsIFwiTTI5MC44IDQ4LjZsNzguNCAyOS43TDI4OCAxMDkuNSAyMDYuOCA3OC4zbDc4LjQtMjkuN2MxLjgtLjcgMy44LS43IDUuNyAwek0xMzYgOTIuNWwwIDExMi4yYy0xLjMgLjQtMi42IC44LTMuOSAxLjNsLTk2IDM2LjRDMTQuNCAyNTAuNiAwIDI3MS41IDAgMjk0LjdMMCA0MTMuOWMwIDIyLjIgMTMuMSA0Mi4zIDMzLjUgNTEuM2w5NiA0Mi4yYzE0LjQgNi4zIDMwLjcgNi4zIDQ1LjEgMEwyODggNDU3LjVsMTEzLjUgNDkuOWMxNC40IDYuMyAzMC43IDYuMyA0NS4xIDBsOTYtNDIuMmMyMC4zLTguOSAzMy41LTI5LjEgMzMuNS01MS4zbDAtMTE5LjFjMC0yMy4zLTE0LjQtNDQuMS0zNi4xLTUyLjRsLTk2LTM2LjRjLTEuMy0uNS0yLjYtLjktMy45LTEuM2wwLTExMi4yYzAtMjMuMy0xNC40LTQ0LjEtMzYuMS01Mi40bC05Ni0zNi40Yy0xMi44LTQuOC0yNi45LTQuOC0zOS43IDBsLTk2IDM2LjRDMTUwLjQgNDguNCAxMzYgNjkuMyAxMzYgOTIuNXpNMzkyIDIxMC42bC04Mi40IDMxLjIgMC04OS4yTDM5MiAxMjFsMCA4OS42ek0xNTQuOCAyNTAuOWw3OC40IDI5LjdMMTUyIDMxMS43IDcwLjggMjgwLjZsNzguNC0yOS43YzEuOC0uNyAzLjgtLjcgNS43IDB6bTE4LjggMjA0LjRsMC0xMDAuNUwyNTYgMzIzLjJsMCA5NS45LTgyLjQgMzYuMnpNNDIxLjIgMjUwLjljMS44LS43IDMuOC0uNyA1LjcgMGw3OC40IDI5LjdMNDI0IDMxMS43bC04MS4yLTMxLjEgNzguNC0yOS43ek01MjMuMiA0MjEuMmwtNzcuNiAzNC4xIDAtMTAwLjVMNTI4IDMyMy4ybDAgOTAuN2MwIDMuMi0xLjkgNi00LjggNy4zelwiXVxufTtcbmNvbnN0IGZhRGl2aWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpdmlkZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEwMTM1LCAyNDddLCBcImY1MjlcIiwgXCJNMjcyIDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgMzIwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQwMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNDggMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM1MiAwelwiXVxufTtcbmNvbnN0IGZhVGVuZ2VTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbmdlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4Mzc2LCBcInRlbmdlXCJdLCBcImY3ZDdcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMCAxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIl1cbn07XG5jb25zdCBmYVRlbmdlID0gZmFUZW5nZVNpZ247XG5jb25zdCBmYUhlYWRwaG9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZHBob25lcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkxMV0sIFwiZjAyNVwiLCBcIk0yNTYgODBDMTQ5LjkgODAgNjIuNCAxNTkuNCA0OS42IDI2MmM5LjQtMy44IDE5LjYtNiAzMC40LTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMC00OCAwLTQ4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2bDAgNDggMCA0OCAwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGMxMC44IDAgMjEgMi4xIDMwLjQgNkM0NDkuNiAxNTkuNCAzNjIuMSA4MCAyNTYgODB6XCJdXG59O1xuY29uc3QgZmFIYW5kc0hvbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtaG9sZGluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRjMlwiLCBcIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0bDAgNTYgMCA2NEwwIDMyNS41YzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDEyOCA0OTMuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDY2LjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTc4LjljMC0yOS43LTExLjgtNTguMi0zMi44LTc5LjJsLTI1LjMtMjUuM2MwIDAgMCAwIDAgMGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wzMiAzMiAxNS4yIDE1LjJjMTEgMTEgOS4yIDI5LjItMy43IDM3LjhjLTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMjI0bDAtODAgMC00MHptNDgwIDBsMCA0MCAwIDgwIDAgNDAuMmMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNTEuMSA1MS4xYy04LjMgOC4zLTIxLjMgOS42LTMxIDMuMWMtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44bDE1LjItMTUuMiAzMi0zMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzIgMzItMTUuMiAxNS4yYzAgMCAwIDAgMCAwbC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMjI0bDAtNjQgMC01NmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHpcIl1cbn07XG5jb25zdCBmYUhhbmRzQ2xhcHBpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtY2xhcHBpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxYThcIiwgXCJNMzM2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0tOTguNyA3LjFsMzIgNDhjNC45IDcuNCAyLjkgMTcuMy00LjQgMjIuMnMtMTcuMyAyLjktMjIuMi00LjRsLTMyLTQ4Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjRjLTY0IDM4LjQtMTQ1LjggMjguMy0xOTguNS0yNC40TDcgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTMgNTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMMjMgMjY1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsOTMgOTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMNTUgMTg1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTE3IDExN2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMWwtOTMtOTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45ek00MzMuMSA0ODQuOWMtMjQuMiAxNC41LTUwLjkgMjIuMS03Ny43IDIzLjFjNDguMS0zOS42IDc2LjYtOTkgNzYuNi0xNjIuNGwwLTk4LjFjOC4yLS4xIDE2LTYuNCAxNi0xNmwwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNHpNNDI0LjkgMTguN2M3LjQgNC45IDkuMyAxNC44IDQuNCAyMi4ybC0zMiA0OGMtNC45IDcuNC0xNC44IDkuMy0yMi4yIDQuNHMtOS4zLTE0LjgtNC40LTIyLjJsMzItNDhjNC45LTcuNCAxNC44LTkuMyAyMi4yLTQuNHpcIl1cbn07XG5jb25zdCBmYVJlcHVibGljYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVwdWJsaWNhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc1ZVwiLCBcIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMybDIyNCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjRMMCAyNTZsMC02NHptNDE1LjktNjRjLTIuNCAwLTQuNyAxLjMtNS43IDMuNGwtMTIuNiAyNC42LTI4LjIgNGMtMi40IC4zLTQuNCAyLTUuMiA0LjJzLS4xIDQuNyAxLjYgNi4zbDIwLjQgMTkuMi00LjggMjcuMWMtLjQgMi4zIC42IDQuNyAyLjUgNnM0LjYgMS42IDYuNyAuNWwyNS4yLTEyLjggMjUuMiAxMi44YzIuMiAxLjEgNC44IC45IDYuNy0uNXMzLTMuNyAyLjUtNmwtNC44LTI3LjFMNDY2IDE3MC41YzEuNy0xLjYgMi40LTQuMSAxLjYtNi4zcy0yLjgtMy45LTUuMi00LjJsLTI4LjItNC0xMi42LTI0LjZjLTEuMS0yLjEtMy4zLTMuNC01LjctMy40em0tMTM4LjMgMy40Yy0xLjEtMi4xLTMuMy0zLjQtNS43LTMuNHMtNC43IDEuMy01LjcgMy40bC0xMi42IDI0LjYtMjguMiA0Yy0yLjQgLjMtNC40IDItNS4yIDQuMnMtLjEgNC43IDEuNiA2LjNsMjAuNCAxOS4yLTQuOCAyNy4xYy0uNCAyLjMgLjYgNC43IDIuNSA2czQuNiAxLjYgNi43IC41bDI1LjItMTIuOCAyNS4yIDEyLjhjMi4yIDEuMSA0LjggLjkgNi43LS41czMtMy43IDIuNS02bC00LjgtMjcuMUwzMjIgMTcwLjVjMS43LTEuNiAyLjQtNC4xIDEuNi02LjNzLTIuOC0zLjktNS4yLTQuMmwtMjguMi00LTEyLjYtMjQuNnpNMTI3LjkgMTI4Yy0yLjQgMC00LjcgMS4zLTUuNyAzLjRsLTEyLjYgMjQuNi0yOC4yIDRjLTIuNCAuMy00LjQgMi01LjIgNC4ycy0uMSA0LjcgMS42IDYuM2wyMC40IDE5LjItNC44IDI3LjFjLS40IDIuMyAuNiA0LjcgMi41IDZzNC42IDEuNiA2LjcgLjVsMjUuMi0xMi44IDI1LjIgMTIuOGMyLjIgMS4xIDQuOCAuOSA2LjctLjVzMy0zLjcgMi41LTZsLTQuOC0yNy4xTDE3OCAxNzAuNWMxLjctMS42IDIuNC00LjEgMS42LTYuM3MtMi44LTMuOS01LjItNC4ybC0yOC4yLTQtMTIuNi0yNC42Yy0xLjEtMi4xLTMuMy0zLjQtNS43LTMuNHptLjEgMTYwbDE5MiAwIDk2IDAgMzIgMCA2NCAwIDMyIDAgMCAzMiAwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgMzIgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0IDAtOTYgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg1OTJdLCBcImYwNjBcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjIgMjg4IDQxNiAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwNi43IDBMMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFQZXJzb25DaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQzXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMEw0MzIgMzQ1LjRsLTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw0MDkuNCAzNjhsLTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDQzMiAzOTAuNmwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42TDQ1NC42IDM2OGwzNi43LTM2Ljd6XCJdXG59O1xuY29uc3QgZmFSdWxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIwN10sIFwiZjU0NVwiLCBcIk0xNzcuOSA0OTQuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTcuOSA0MDEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsNTAuNy01MC43IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNTAuNy01MC43YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDkyLjEgOTIuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxNzcuOSA0OTQuMXpcIl1cbn07XG5jb25zdCBmYUFsaWduTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM2XCIsIFwiTTI4OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFEaWNlRDYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1kNicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjZkMVwiLCBcIk0yMDEgMTAuM2MxNC4zLTcuOCAzMS42LTcuOCA0NiAwTDQyMi4zIDEwNmM1LjEgMi44IDguMyA4LjIgOC4zIDE0cy0zLjIgMTEuMi04LjMgMTRMMjMxLjcgMjM4Yy00LjggMi42LTEwLjUgMi42LTE1LjMgMEwyNS43IDEzNGMtNS4xLTIuOC04LjMtOC4yLTguMy0xNHMzLjItMTEuMiA4LjMtMTRMMjAxIDEwLjN6TTIzLjcgMTcwbDE3NiA5NmM1LjEgMi44IDguMyA4LjIgOC4zIDE0bDAgMjE2YzAgNS42LTMgMTAuOS03LjggMTMuOHMtMTAuOSAzLTE1LjggLjNMMjUgNDIzLjFDOS42IDQxNC43IDAgMzk4LjYgMCAzODFMMCAxODRjMC01LjYgMy0xMC45IDcuOC0xMy44czEwLjktMyAxNS44LS4zem00MDAuNyAwYzUtMi43IDExLTIuNiAxNS44IC4zczcuOCA4LjEgNy44IDEzLjhsMCAxOTdjMCAxNy42LTkuNiAzMy43LTI1IDQyLjFMMjYzLjcgNTEwYy01IDIuNy0xMSAyLjYtMTUuOC0uM3MtNy44LTguMS03LjgtMTMuOGwwLTIxNmMwLTUuOSAzLjItMTEuMiA4LjMtMTRsMTc2LTk2elwiXVxufTtcbmNvbnN0IGZhUmVzdHJvb20gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVzdHJvb20nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3YmRcIiwgXCJNODAgNDhhNDggNDggMCAxIDEgOTYgMEE0OCA0OCAwIDEgMSA4MCA0OHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTU0LjhjLTguMSA5LjItMjEuMSAxMy4yLTMzLjUgOS40Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwzMC45LTk5LjFDNDQuOSAxNTUuMyA4MiAxMjggMTI0IDEyOGw4IDBjNDIgMCA3OS4xIDI3LjMgOTEuNiA2Ny40bDMwLjkgOTkuMWM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xYy0xMi40IDMuOS0yNS40LS4yLTMzLjUtOS40TDIwMCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNMzIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00NjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ2NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00NDAgNDgwbDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw5LTI2LjljLTMuMiAwLTYuNC0uNS05LjUtMS41Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMWMtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFMNTg0IDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhSiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTA2XSwgXCI0YVwiLCBcIk0yODggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMGwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVXNlcnNWaWV3ZmluZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLXZpZXdmaW5kZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTVcIiwgXCJNNDggNDhsODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6TTE3NS44IDIyNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS0yNi41IDMyQzExOS45IDI1NiA5NiAyNzkuOSA5NiAzMDkuM2MwIDE0LjcgMTEuOSAyNi43IDI2LjcgMjYuN2w1Ni4xIDBjOC0zNC4xIDMyLjgtNjEuNyA2NS4yLTczLjZjLTcuNS00LjEtMTYuMi02LjQtMjUuMy02LjRsLTY5LjMgMHptMzY4IDgwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zbC02OS4zIDBjLTkuMiAwLTE3LjggMi4zLTI1LjMgNi40YzMyLjQgMTEuOSA1Ny4yIDM5LjUgNjUuMiA3My42bDU2LjEgMHptLTg5LjQgMGMtOC42LTI0LjMtMjkuOS00Mi42LTU1LjktNDdjLTMuOS0uNy03LjktMS0xMi0xbC04MCAwYy00LjEgMC04LjEgLjMtMTIgMWMtMjYgNC40LTQ3LjMgMjIuNy01NS45IDQ3Yy0yLjcgNy41LTQuMSAxNS42LTQuMSAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGMwLTguNC0xLjQtMTYuNS00LjEtMjR6TTQ2NCAyMjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAtMzJhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01MDQgNDhsODggMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xNy43LTE0LjMtMzItMzItMzJMNTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6TTQ4IDQ2NGwwLTg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwem00NTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg4LTg4IDB6XCJdXG59O1xuY29uc3QgZmFGaWxlVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS12aWRlbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjOFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTY0IDI4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTMwMC45IDM5Ny45TDI1NiAzNjhsMC02NCA0NC45LTI5LjljMi0xLjMgNC40LTIuMSA2LjgtMi4xYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM2wwIDEwMy40YzAgNi44LTUuNSAxMi4zLTEyLjMgMTIuM2MtMi40IDAtNC44LS43LTYuOC0yLjF6XCJdXG59O1xuY29uc3QgZmFVcFJpZ2h0RnJvbVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cC1yaWdodC1mcm9tLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXh0ZXJuYWwtbGluay1hbHRcIl0sIFwiZjM1ZFwiLCBcIk0zNTIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlMMzcwLjcgOTYgMjAxLjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDE2IDE0MS4zbDQxLjQgNDEuNGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDM1MiAwek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMjAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjBjMC04LjggNy4yLTE2IDE2LTE2bDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rQWx0ID0gZmFVcFJpZ2h0RnJvbVNxdWFyZTtcbmNvbnN0IGZhVGFibGVDZWxscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS1jZWxscycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGhcIl0sIFwiZjAwYVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA2NGwwIDY0LTg4IDAgMC02NCA4OCAwem01NiAwbDg4IDAgMCA2NC04OCAwIDAtNjR6bTI0MCAwbDAgNjQtODggMCAwLTY0IDg4IDB6TTY0IDIyNGw4OCAwIDAgNjQtODggMCAwLTY0em0yMzIgMGwwIDY0LTg4IDAgMC02NCA4OCAwem02NCAwbDg4IDAgMCA2NC04OCAwIDAtNjR6TTE1MiAzNTJsMCA2NC04OCAwIDAtNjQgODggMHptNTYgMGw4OCAwIDAgNjQtODggMCAwLTY0em0yNDAgMGwwIDY0LTg4IDAgMC02NCA4OCAwelwiXVxufTtcbmNvbnN0IGZhVGggPSBmYVRhYmxlQ2VsbHM7XG5jb25zdCBmYUZpbGVQZGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wZGYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYzFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxNDQtMjA4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTQ0LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMTc2IDM1MmwzMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xNiAwIDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OCAwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMzIgODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMCA0OCAxNiAwem05Ni04MGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTEyOGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDEyOGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDAgMCA5NiAxNiAwem04MC0xMTJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDAgMCAzMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NCAwLTY0elwiXVxufTtcbmNvbnN0IGZhQm9va0JpYmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stYmlibGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImJpYmxlXCJdLCBcImY2NDdcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI4OCAwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzODQgMCA5NiAwem0wIDM4NGwyNTYgMCAwIDY0TDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMjA4IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCaWJsZSA9IGZhQm9va0JpYmxlO1xuY29uc3QgZmFPID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ28nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMTFdLCBcIjRmXCIsIFwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZBMjI0IDIyNCAwIDEgMSAwIDI1NmEyMjQgMjI0IDAgMSAxIDQ0OCAwelwiXVxufTtcbmNvbnN0IGZhU3VpdGNhc2VNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlLW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1lZGtpdFwiXSwgXCJmMGZhXCIsIFwiTTE4NCA0OGwxNDQgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MEwxNzYgOTZsMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAgMCAzMiAwIDM1MiAyNTYgMCAwLTM1MiAwLTMyIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMTg0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek05NiA5Nkw2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMEw5NiA5NnpNNDE2IDQ4MGwzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgMzg0ek0yMjQgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhTWVka2l0ID0gZmFTdWl0Y2FzZU1lZGljYWw7XG5jb25zdCBmYVVzZXJTZWNyZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1zZWNyZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgzNzNdLCBcImYyMWJcIiwgXCJNMjI0IDE2Yy02LjcgMC0xMC44LTIuOC0xNS41LTYuMUMyMDEuOSA1LjQgMTk0IDAgMTc2IDBjLTMwLjUgMC01MiA0My43LTY2IDg5LjRDNjIuNyA5OC4xIDMyIDExMi4yIDMyIDEyOGMwIDE0LjMgMjUgMjcuMSA2NC42IDM1LjljLS40IDQtLjYgOC0uNiAxMi4xYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC01OS45IDBDMzggMjI0IDMyIDIzMCAzMiAyMzcuNGMwIDEuNyAuMyAzLjQgMSA1bDM4LjggOTYuOUMyOC4yIDM3MS44IDAgNDIzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM4OC42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjdjMC01OC41LTI4LjItMTEwLjQtNzEuNy0xNDNMNDE1IDI0Mi40Yy42LTEuNiAxLTMuMyAxLTVjMC03LjQtNi0xMy40LTEzLjQtMTMuNGwtNTkuOSAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4YzAtNC4xLS4yLTguMS0uNi0xMi4xQzM5MSAxNTUuMSA0MTYgMTQyLjMgNDE2IDEyOGMwLTE1LjgtMzAuNy0yOS45LTc4LTM4LjZDMzI0IDQzLjcgMzAyLjUgMCAyNzIgMGMtMTggMC0yNS45IDUuNC0zMi41IDkuOWMtNC44IDMuMy04LjggNi4xLTE1LjUgNi4xem01NiAyMDhsLTEyLjQgMGMtMTYuNSAwLTMxLjEtMTAuNi0zNi4zLTI2LjJjLTIuMy03LTEyLjItNy0xNC41IDBjLTUuMiAxNS42LTE5LjkgMjYuMi0zNi4zIDI2LjJMMTY4IDIyNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xNC40YzI4LjIgNC4xIDYxIDYuNCA5NiA2LjRzNjcuOC0yLjMgOTYtNi40bDAgMTQuNGMwIDIyLjEtMTcuOSA0MC00MCA0MHptLTg4IDk2bDE2IDMyTDE3NiA0ODAgMTI4IDI4OGw2NCAzMnptMTI4LTMyTDI3MiA0ODAgMjQwIDM1MmwxNi0zMiA2NC0zMnpcIl1cbn07XG5jb25zdCBmYU90dGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ290dGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5NDQ2XSwgXCJmNzAwXCIsIFwiTTE4MS41IDE5Ny4xbDEyLjkgNi40YzUuOSAzIDEyLjQgNC41IDE5LjEgNC41YzIzLjUgMCA0Mi42LTE5LjEgNDIuNi00Mi42bDAtMjEuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMS40YzAgMjMuNSAxOS4xIDQyLjYgNDIuNiA0Mi42YzYuNiAwIDEzLjEtMS41IDE5LjEtNC41bDEyLjktNi40IDguNC00LjJMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRMMTYwIDI0MGwtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42Yy0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC00OCAwLTE2YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGM5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyIDAgMTYgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjFzMCAwIDAgMGMwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0bC0xLjEgMEwyNTYgNDgwbC0uNiAwQzEzMiA0ODAgMzIgMzgwIDMyIDI1Ni42bDAtLjYgMC0zOS4yYy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40TDE2IDE0NGwwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjNjMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjNjLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuM2MtMTQuMSAwLTI3LjktMy4zLTQwLjUtOS42ek05NiAxMjhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem0xMTIgMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkRyZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcycsXG4gIGljb246IFszMjAsIDUxMiwgW1wiZmVtYWxlXCJdLCBcImYxODJcIiwgXCJNMTYwIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek04OCAzODRsLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMOTMuMyAyNDguMSA1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTMuNi04OS4yYzIwLjMtMzMuNyA1Ni43LTU0LjMgOTYtNTQuM2wxMS42IDBjMzkuMyAwIDc1LjcgMjAuNiA5NiA1NC4zbDUzLjYgODkuMmM5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOWwtMzMuOS01Ni4zTDI2NSAzNjIuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFMMjMyIDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZ6XCJdXG59O1xuY29uc3QgZmFGZW1hbGUgPSBmYVBlcnNvbkRyZXNzO1xuY29uc3QgZmFDb21tZW50RG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbW1lbnQtZG9sbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjUxXCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXptMjAtMzEybDAgMTMuOWM3LjUgMS4yIDE0LjYgMi45IDIxLjEgNC43YzEwLjcgMi44IDE3IDEzLjggMTQuMiAyNC41cy0xMy44IDE3LTI0LjUgMTQuMmMtMTEtMi45LTIxLjYtNS0zMS4yLTUuMmMtNy45LS4xLTE2IDEuOC0yMS41IDVjLTQuOCAyLjgtNi4yIDUuNi02LjIgOS4zYzAgMS44IC4xIDMuNSA1LjMgNi43YzYuMyAzLjggMTUuNSA2LjcgMjguMyAxMC41bC43IC4yYzExLjIgMy40IDI1LjYgNy43IDM3LjEgMTVjMTIuOSA4LjEgMjQuMyAyMS4zIDI0LjYgNDEuNmMuMyAyMC45LTEwLjUgMzYuMS0yNC44IDQ1Yy03LjIgNC41LTE1LjIgNy4zLTIzLjIgOWwwIDEzLjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTQuNmMtMTAuMy0yLjItMjAtNS41LTI4LjItOC40YzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMS0uNy00LjEtMS40LTYuMS0yLjFjLTEwLjUtMy41LTE2LjEtMTQuOC0xMi42LTI1LjNzMTQuOC0xNi4xIDI1LjMtMTIuNmMyLjUgLjggNC45IDEuNyA3LjIgMi40YzAgMCAwIDAgMCAwYzEzLjYgNC42IDI0IDguMSAzNS4xIDguNWM4LjYgLjMgMTYuNS0xLjYgMjEuNC00LjdjNC4xLTIuNSA2LTUuNSA1LjktMTAuNWMwLTIuOS0uOC01LTUuOS04LjJjLTYuMy00LTE1LjQtNi45LTI4LTEwLjdsLTEuNy0uNWMtMTAuOS0zLjMtMjQuNi03LjQtMzUuNi0xNGMtMTIuNy03LjctMjQuNi0yMC41LTI0LjctNDAuN2MtLjEtMjEuMSAxMS44LTM1LjcgMjUuOC00My45YzYuOS00LjEgMTQuNS02LjggMjIuMi04LjVsMC0xNGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHpcIl1cbn07XG5jb25zdCBmYUJ1c2luZXNzVGltZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXNpbmVzcy10aW1lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJicmllZmNhc2UtY2xvY2tcIl0sIFwiZjY0YVwiLCBcIk0xODQgNDhsMTQ0IDBjNC40IDAgOCAzLjYgOCA4bDAgNDBMMTc2IDk2bDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwTDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDE5MiAwIDE2MCAwIDguMiAwYzMyLjMtMzkuMSA4MS4xLTY0IDEzNS44LTY0YzUuNCAwIDEwLjcgLjIgMTYgLjdsMC0zMi43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMTg0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek0zMjAgMzUybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyTDAgMjg4IDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI5Ni4yIDBDMzM1LjEgNDQ5LjYgMzIwIDQxMC41IDMyMCAzNjhjMC01LjQgLjItMTAuNyAuNy0xNmwtLjcgMHptMzIwIDE2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAyODhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQnJpZWZjYXNlQ2xvY2sgPSBmYUJ1c2luZXNzVGltZTtcbmNvbnN0IGZhVGFibGVDZWxsc0xhcmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWNlbGxzLWxhcmdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0aC1sYXJnZVwiXSwgXCJmMDA5XCIsIFwiTTQ0OCA5NmwwIDEyOC0xNjAgMCAwLTEyOCAxNjAgMHptMCAxOTJsMCAxMjgtMTYwIDAgMC0xMjggMTYwIDB6TTIyNCAyMjRMNjQgMjI0IDY0IDk2bDE2MCAwIDAgMTI4ek02NCAyODhsMTYwIDAgMCAxMjhMNjQgNDE2bDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbmNvbnN0IGZhVGhMYXJnZSA9IGZhVGFibGVDZWxsc0xhcmdlO1xuY29uc3QgZmFCb29rVGFuYWtoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stdGFuYWtoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YW5ha2hcIl0sIFwiZjgyN1wiLCBcIk0zNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzUyIDB6bTAgMzg0TDk2IDM4NGwwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyek0xMzguNyAyMDhsMTMuOSAyNC0yNy43IDAgMTMuOS0yNHptLTEzLjktMjRMOTcuMSAyMzJjLTYuMiAxMC43IDEuNSAyNCAxMy45IDI0bDU1LjQgMCAyNy43IDQ4YzYuMiAxMC43IDIxLjYgMTAuNyAyNy43IDBsMjcuNy00OCA1NS40IDBjMTIuMyAwIDIwLTEzLjMgMTMuOS0yNGwtMjcuNy00OCAyNy43LTQ4YzYuMi0xMC43LTEuNS0yNC0xMy45LTI0bC01NS40IDBMMjIxLjkgNjRjLTYuMi0xMC43LTIxLjYtMTAuNy0yNy43IDBsLTI3LjcgNDhMMTExIDExMmMtMTIuMyAwLTIwIDEzLjMtMTMuOSAyNGwyNy43IDQ4em0yNy43IDBsMjcuNy00OCA1NS40IDAgMjcuNyA0OC0yNy43IDQ4LTU1LjQgMC0yNy43LTQ4em0wLTQ4bC0xMy45IDI0LTEzLjktMjQgMjcuNyAwem00MS42LTI0TDIwOCA4OGwxMy45IDI0LTI3LjcgMHptNjkuMyAyNGwyNy43IDAtMTMuOSAyNC0xMy45LTI0em0xMy45IDcybDEzLjkgMjQtMjcuNyAwIDEzLjktMjR6bS01NS40IDQ4TDIwOCAyODBsLTEzLjktMjQgMjcuNyAwelwiXVxufTtcbmNvbnN0IGZhVGFuYWtoID0gZmFCb29rVGFuYWtoO1xuY29uc3QgZmFQaG9uZVZvbHVtZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZS12b2x1bWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInZvbHVtZS1jb250cm9sLXBob25lXCJdLCBcImYyYTBcIiwgXCJNMjgwIDBDNDA4LjEgMCA1MTIgMTAzLjkgNTEyIDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0Yzc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTE3LjUgMS40YzE5LjQtNS4zIDM5LjcgNC42IDQ3LjQgMjMuMmw0MCA5NmM2LjggMTYuMyAyLjEgMzUuMi0xMS42IDQ2LjNMMTQ0IDIwNy4zYzMzLjMgNzAuNCA5MC4zIDEyNy40IDE2MC43IDE2MC43TDM0NSAzMTguN2MxMS4yLTEzLjcgMzAtMTguNCA0Ni4zLTExLjZsOTYgNDBjMTguNiA3LjcgMjguNSAyOCAyMy4yIDQ3LjRsLTI0IDg4QzQ4MS44IDQ5OS45IDQ2NiA1MTIgNDQ4IDUxMkMyMDAuNiA1MTIgMCAzMTEuNCAwIDY0QzAgNDYgMTIuMSAzMC4yIDI5LjUgMjUuNGw4OC0yNHpcIl1cbn07XG5jb25zdCBmYVZvbHVtZUNvbnRyb2xQaG9uZSA9IGZhUGhvbmVWb2x1bWU7XG5jb25zdCBmYUhhdENvd2JveVNpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGF0LWNvd2JveS1zaWRlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmOGMxXCIsIFwiTTE1Mi43IDEzNS45bC0xMC40IDU3LjJjNi44LS43IDEzLjYtMS4xIDIwLjUtMS4xbDEwLjcgMGMzOS40IDAgNzcuOCAxMi4xIDExMC4xIDM0LjdMNTYyLjQgNDIxLjhsMzUuMSAyNC42YzI0LjQtNiA0Mi41LTI4LjEgNDIuNS01NC40YzAtNzUuOC05NC43LTEyNi42LTEzNC42LTE0NC43TDQ3NCA4My45QzQ2OC4yIDUzLjggNDQxLjggMzIgNDExLjEgMzJsLTIuNyAwYy01LjYgMC0xMS4xIC43LTE2LjUgMi4yTDE5OS4yIDg1LjVjLTIzLjkgNi40LTQyIDI2LTQ2LjUgNTAuNHpNMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDgwIDBMMjY1LjMgMjUyLjljLTI2LjktMTguOC01OC45LTI4LjktOTEuOC0yOC45bC0xMC43IDBjLTYwLjYgMC0xMTYgMzQuMi0xNDMuMSA4OC40TDEzLjUgMzI1QzQuNiAzNDIuNyAwIDM2Mi4zIDAgMzgyLjJMMCAzODR6XCJdXG59O1xuY29uc3QgZmFDbGlwYm9hcmRVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC11c2VyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2YzXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xMjggMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNODAgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhQ2hpbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYxYWVcIiwgXCJNOTYgNjRhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgNjR6bTQ4IDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLjJMNTkuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMFMtNC41IDMwMS45IDQuOSAyODdsMzkuOS02My4zQzY5LjcgMTg0IDExMy4yIDE2MCAxNjAgMTYwczkwLjMgMjQgMTE1LjIgNjMuNkwzMTUuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMMjQwIDI4Ny44IDI0MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAwelwiXVxufTtcbmNvbnN0IGZhTGlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlyYS1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbODM1Nl0sIFwiZjE5NVwiLCBcIk0xMTIgMTYwLjRjMC0zNS41IDI4LjgtNjQuNCA2NC40LTY0LjRjNi45IDAgMTMuOCAxLjEgMjAuNCAzLjNsODEuMiAyNy4xYzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDIxNyAzOC42Yy0xMy4xLTQuNC0yNi44LTYuNi00MC42LTYuNkMxMDUuNSAzMiA0OCA4OS41IDQ4IDE2MC40TDQ4IDE5MmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMzItMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNCAwYy0yLjIgMTAuNS02LjEgMjAuNi0xMS43IDI5LjlMNC42IDQzMS41Yy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJTMjAuNSA0ODAgMzIgNDgwbDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDg4LjUgNDE2bC43LTEuMWMxMS42LTE5LjMgMTguOS00MC43IDIxLjYtNjIuOUwyMjQgMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTMyIDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTMxLjZ6XCJdXG59O1xuY29uc3QgZmFTYXRlbGxpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NzUyXSwgXCJmN2JmXCIsIFwiTTIzMyA3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtOTYgOTZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDg5LjQgODkuNC0xNS41IDE1LjVDMTUyLjMgMjMwLjQgMTI0LjkgMjI0IDk2IDIyNGMtMzEuNyAwLTYxLjUgNy43LTg3LjggMjEuMmMtOSA0LjctMTAuMyAxNi43LTMuMSAyMy44TDExMi43IDM3Ni43IDk2LjMgMzkzLjFjLTIuNi0uNy01LjQtMS4xLTguMy0xLjFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTIuOS0uNC01LjYtMS4xLTguM2wxNi40LTE2LjRMMjQyLjkgNTA2LjljNy4yIDcuMiAxOS4yIDUuOSAyMy44LTMuMUMyODAuMyA0NzcuNSAyODggNDQ3LjcgMjg4IDQxNmMwLTI4LjktNi40LTU2LjMtMTcuOC04MC45bDE1LjUtMTUuNUwzNzUgNDA5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDk2LTk2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC04OS40LTg5LjQgNTUtNTVjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTQ4LTQ4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNTUgNTVMMjMzIDd6bTE1OSAzNTFsLTcyLjQtNzIuNCA2Mi4xLTYyLjFMNDU0LjEgMjk2IDM5MiAzNTguMXpNMjI2LjMgMTkyLjRMMTUzLjkgMTIwIDIxNiA1Ny45bDcyLjQgNzIuNC02Mi4xIDYyLjF6XCJdXG59O1xuY29uc3QgZmFQbGFuZUxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1OFwiLCBcIk0xOTIgOTMuN0MxOTIgNTkuNSAyMjEgMCAyNTYgMGMzNiAwIDY0IDU5LjUgNjQgOTMuN2wwIDg0LjYgMTAxLjggNTguMkM0MTggMjQ3LjYgNDE2IDI1OS42IDQxNiAyNzJsMCAyNC42Yy0xNy45IDEwLjQtMzAuMyAyOS4xLTMxLjggNTAuOUwzMjAgMzI5LjFsMCA3MC45IDU3LjYgNDMuMmM0IDMgNi40IDcuOCA2LjQgMTIuOGwwIDI0IDAgMThjMCA3LjgtNi4zIDE0LTE0IDE0Yy0xLjMgMC0yLjYtLjItMy45LS41TDI1NiA0ODAgMTQ1LjkgNTExLjVjLTEuMyAuNC0yLjYgLjUtMy45IC41Yy03LjggMC0xNC02LjMtMTQtMTRsMC00MmMwLTUgMi40LTkuOCA2LjQtMTIuOEwxOTIgNDAwbDAtNzAuOS0xNzEuNiA0OUMxMC4yIDM4MS4xIDAgMzczLjQgMCAzNjIuOGwwLTY1LjVjMC01LjcgMy4xLTExIDguMS0xMy45TDE5MiAxNzguM2wwLTg0LjZ6TTUyOCAyNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMC00OHpcIl1cbn07XG5jb25zdCBmYVRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc5OTFdLCBcImYwMmJcIiwgXCJNMCA4MEwwIDIyOS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE3NiAxNzZjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDE4LjcgMzE3LjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE3Ni0xNzZjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTEyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNvbW1lbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQ4OSwgNjE2NjldLCBcImYwNzVcIiwgXCJNNTEyIDI0MGMwIDExNC45LTExNC42IDIwOC0yNTYgMjA4Yy0zNy4xIDAtNzIuMy02LjQtMTA0LjEtMTcuOWMtMTEuOSA4LjctMzEuMyAyMC42LTU0LjMgMzAuNkM3My42IDQ3MS4xIDQ0LjcgNDgwIDE2IDQ4MGMtNi41IDAtMTIuMy0zLjktMTQuOC05LjljLTIuNS02LTEuMS0xMi44IDMuNC0xNy40YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMy0uM2MuMy0uMyAuNy0uNyAxLjMtMS40YzEuMS0xLjIgMi44LTMuMSA0LjktNS43YzQuMS01IDkuNi0xMi40IDE1LjItMjEuNmMxMC0xNi42IDE5LjUtMzguNCAyMS40LTYyLjlDMTcuNyAzMjYuOCAwIDI4NS4xIDAgMjQwQzAgMTI1LjEgMTE0LjYgMzIgMjU2IDMyczI1NiA5My4xIDI1NiAyMDh6XCJdXG59O1xuY29uc3QgZmFDYWtlQ2FuZGxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWtlLWNhbmRsZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4NzQsIFwiYmlydGhkYXktY2FrZVwiLCBcImNha2VcIl0sIFwiZjFmZFwiLCBcIk04Ni40IDUuNUw2MS44IDQ3LjZDNTggNTQuMSA1NiA2MS42IDU2IDY5LjJMNTYgNzJjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42IDUuNUMxMDMuNiAyLjEgMTAwIDAgOTYgMHMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYgNS41QzIzMS42IDIuMSAyMjggMCAyMjQgMHMtNy42IDIuMS05LjYgNS41ek0zMTcuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYgNS41QzM1OS42IDIuMSAzNTYgMCAzNTIgMHMtNy42IDIuMS05LjYgNS41TDMxNy44IDQ3LjZ6TTEyOCAxNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA3MWM4LjMgNS4yIDE4LjEgOSAyOC44IDljMTMuNSAwIDI3LjItNi4xIDM4LjQtMTMuNGM1LjQtMy41IDkuOS03LjEgMTMtOS43YzEuNS0xLjMgMi43LTIuNCAzLjUtMy4xYy40LS40IC43LS42IC44LS44bC4xLS4xczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMy4xLTMuMiA3LjQtNC45IDExLjktNC44czguNiAyLjEgMTEuNiA1LjRjMCAwIDAgMCAwIDBzMCAwIDAgMGwuMSAuMWMuMSAuMSAuNCAuNCAuNyAuN2MuNyAuNyAxLjcgMS43IDMuMSAzYzIuOCAyLjYgNi44IDYuMSAxMS44IDkuNWMxMC4yIDcuMSAyMyAxMy4xIDM2LjMgMTMuMXMyNi4xLTYgMzYuMy0xMy4xYzUtMy41IDktNi45IDExLjgtOS41YzEuNC0xLjMgMi40LTIuMyAzLjEtM2MuMy0uMyAuNi0uNiAuNy0uN2wuMS0uMWMzLTMuNSA3LjQtNS40IDEyLTUuNHM5IDIgMTIgNS40bC4xIC4xYy4xIC4xIC40IC40IC43IC43Yy43IC43IDEuNyAxLjcgMy4xIDNjMi44IDIuNiA2LjggNi4xIDExLjggOS41YzEwLjIgNy4xIDIzIDEzLjEgMzYuMyAxMy4xczI2LjEtNiAzNi4zLTEzLjFjNS0zLjUgOS02LjkgMTEuOC05LjVjMS40LTEuMyAyLjQtMi4zIDMuMS0zYy4zLS4zIC42LS42IC43LS43bC4xLS4xYzIuOS0zLjQgNy4xLTUuMyAxMS42LTUuNHM4LjcgMS42IDExLjkgNC44YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGwuMSAuMWMuMiAuMiAuNCAuNCAuOCAuOGMuOCAuNyAxLjkgMS44IDMuNSAzLjFjMy4xIDIuNiA3LjUgNi4yIDEzIDkuN2MxMS4yIDcuMyAyNC45IDEzLjQgMzguNCAxMy40YzEwLjcgMCAyMC41LTMuOSAyOC44LTlsMC03MWMwLTM1LjMtMjguNy02NC02NC02NGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzk0LjZjLTguNSAzLjMtMTguMiA1LjQtMjguOCA1LjRjLTIyLjUgMC00Mi40LTkuOS01NS44LTE4LjZjLTQuMS0yLjctNy44LTUuNC0xMC45LTcuOGMtMi44IDIuNC02LjEgNS05LjggNy41QzMyOS44IDM5MCAzMTAuNiA0MDAgMjg4IDQwMHMtNDEuOC0xMC01NC42LTE4LjljLTMuNS0yLjQtNi43LTQuOS05LjQtNy4yYy0yLjcgMi4zLTUuOSA0LjctOS40IDcuMkMyMDEuOCAzOTAgMTgyLjYgNDAwIDE2MCA0MDBzLTQxLjgtMTAtNTQuNi0xOC45Yy0zLjctMi42LTctNS4yLTkuOC03LjVjLTMuMSAyLjQtNi44IDUuMS0xMC45IDcuOEM3MS4yIDM5MC4xIDUxLjMgNDAwIDI4LjggNDAwYy0xMC42IDAtMjAuMy0yLjItMjguOC01LjRMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04NS40elwiXVxufTtcbmNvbnN0IGZhQmlydGhkYXlDYWtlID0gZmFDYWtlQ2FuZGxlcztcbmNvbnN0IGZhQ2FrZSA9IGZhQ2FrZUNhbmRsZXM7XG5jb25zdCBmYUVudmVsb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Mzg2LCA5OTkzLCA2MTQ0M10sIFwiZjBlMFwiLCBcIk00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmMwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40TDIzNi44IDMxMy42YzExLjQgOC41IDI3IDguNSAzOC40IDBMNDkyLjggMTUwLjRjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMCAxNzZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDhMMjk0LjQgMzM5LjJjLTIyLjggMTcuMS01NCAxNy4xLTc2LjggMEwwIDE3NnpcIl1cbn07XG5jb25zdCBmYUFuZ2xlc1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYW5nbGUtZG91YmxlLXVwXCJdLCBcImYxMDJcIiwgXCJNMjQ2LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjI0IDEwOS4zIDM2MS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6bTE2MCAzNTJsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDIyNCAzMDEuMyAzNjEuNCA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zelwiXVxufTtcbmNvbnN0IGZhQW5nbGVEb3VibGVVcCA9IGZhQW5nbGVzVXA7XG5jb25zdCBmYVBhcGVyY2xpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXBlcmNsaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyMDZdLCBcImYwYzZcIiwgXCJNMzY0LjIgODMuOGMtMjQuNC0yNC40LTY0LTI0LjQtODguNCAwbC0xODQgMTg0Yy00Mi4xIDQyLjEtNDIuMSAxMTAuMyAwIDE1Mi40czExMC4zIDQyLjEgMTUyLjQgMGwxNTItMTUyYzEwLjktMTAuOSAyOC43LTEwLjkgMzkuNiAwczEwLjkgMjguNyAwIDM5LjZsLTE1MiAxNTJjLTY0IDY0LTE2Ny42IDY0LTIzMS42IDBzLTY0LTE2Ny42IDAtMjMxLjZsMTg0LTE4NGM0Ni4zLTQ2LjMgMTIxLjMtNDYuMyAxNjcuNiAwczQ2LjMgMTIxLjMgMCAxNjcuNmwtMTc2IDE3NmMtMjguNiAyOC42LTc1IDI4LjYtMTAzLjYgMHMtMjguNi03NSAwLTEwMy42bDE0NC0xNDRjMTAuOS0xMC45IDI4LjctMTAuOSAzOS42IDBzMTAuOSAyOC43IDAgMzkuNmwtMTQ0IDE0NGMtNi43IDYuNy02LjcgMTcuNyAwIDI0LjRzMTcuNyA2LjcgMjQuNCAwbDE3Ni0xNzZjMjQuNC0yNC40IDI0LjQtNjQgMC04OC40elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvQ2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC10by1jaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGIzXCIsIFwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0IDQwIDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDAtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDMybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAyNzJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTc2LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTY2LjYgMTUzLjRsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExNC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwelwiXVxufTtcbmNvbnN0IGZhUmliYm9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpYmJvbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzg5NV0sIFwiZjRkNlwiLCBcIk0zMzMuMiAzMjIuOHMwIDAgMCAwbC0xMzMuOS0xNDZzMCAwIDAgMEwxNDYgMTE4LjZjNy44LTUuMSAzNy0yMi42IDc4LTIyLjZzNzAuMiAxNy40IDc4IDIyLjZMMjQ1LjcgMTgwbDg1LjYgOTMuNCAyNy40LTI5LjhjMTYuMy0xNy43IDI1LjMtNDAuOSAyNS4zLTY1bDAtMjkuNWMwLTE5LTUuNi0zNy41LTE2LjEtNTMuM0wzMjcuOCAzNS42QzMxMi45IDEzLjQgMjg3LjkgMCAyNjEuMiAwbC03NiAwYy0yNS44IDAtNTAuMSAxMi41LTY1LjEgMzMuNUw4MS45IDg3QzcwLjMgMTAzLjIgNjQgMTIyLjggNjQgMTQyLjhMNjQgMTY0YzAgMjMuMiA4LjQgNDUuNiAyMy42IDYzLjFsNTYgNjQuMnMwIDAgMCAwbDgzLjMgOTUuNnMwIDAgMCAwbDkxLjggMTA1LjNjMTAgMTEuNSAyNi44IDE0LjMgNDAgNi44bDU0LjUtMzEuMWMxNy44LTEwLjIgMjEuNi0zNC4zIDcuNy00OS40bC04Ny43LTk1Ljd6TTIwNS4yIDQxMC42bC04My4zLTk1LjZMMjcuMSA0MTguNWMtMTMuOSAxNS4xLTEwLjEgMzkuMiA3LjcgNDkuNGw1NS4xIDMxLjVjMTMgNy40IDI5LjMgNC45IDM5LjQtNi4xbDc1LjktODIuNnpcIl1cbn07XG5jb25zdCBmYUx1bmdzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2x1bmdzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5NzI5XSwgXCJmNjA0XCIsIFwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTMyLjFjMCAxNi40IDguNCAzMS43IDIyLjIgNDAuNWw5LjggNi4yIDAtNDUuNUMzODQgMTI3IDQxNSA5NiA0NTMuMyA5NmMyMS43IDAgNDIuOCAxMC4yIDU1LjggMjguOGMxNS40IDIyLjEgNDQuMyA2NS40IDcxIDExNi45YzI2LjUgNTAuOSA1Mi40IDExMi41IDU5LjYgMTcwLjNjLjIgMS4zIC4yIDIuNiAuMiA0bDAgN2MwIDQ5LjEtMzkuOCA4OS04OSA4OWMtNy4zIDAtMTQuNS0uOS0yMS42LTIuN2wtNzIuNy0xOC4yQzQxNCA0ODAuNSAzODQgNDQyLjEgMzg0IDM5OGwwLTczIDkwLjUgNTcuNmM3LjUgNC43IDE3LjMgMi41IDIyLjEtNC45czIuNS0xNy4zLTQuOS0yMi4xTDM4NCAyODcuMWwwLS40LTQ0LjEtMjguMWMtNy4zLTQuNi0xMy45LTEwLjEtMTkuOS0xNi4xYy01LjkgNi0xMi42IDExLjUtMTkuOSAxNi4xTDI1NiAyODYuNyAxNjEuMiAzNDdsLTEzLjUgOC42YzAgMCAwIDAtLjEgMGMtNy40IDQuOC05LjYgMTQuNi00LjggMjIuMWM0LjcgNy41IDE0LjYgOS43IDIyLjEgNC45bDkxLjEtNTggMCA3My40YzAgNDQuMS0zMCA4Mi41LTcyLjcgOTMuMWwtNzIuNyAxOC4yYy03LjEgMS44LTE0LjMgMi43LTIxLjYgMi43Yy00OS4xIDAtODktMzkuOC04OS04OWwwLTdjMC0xLjMgLjEtMi43IC4yLTRjNy4yLTU3LjkgMzMuMS0xMTkuNCA1OS42LTE3MC4zYzI2LjgtNTEuNSA1NS42LTk0LjggNzEtMTE2LjljMTMtMTguNiAzNC0yOC44IDU1LjgtMjguOEMyMjUgOTYgMjU2IDEyNyAyNTYgMTY1LjNsMCA0NS41IDkuOC02LjJjMTMuOC04LjggMjIuMi0yNC4xIDIyLjItNDAuNUwyODggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwOTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtOS0xJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtdXAtYWx0XCJdLCBcImY4ODdcIiwgXCJNMTYwIDMyYzkgMCAxNy41IDMuOCAyMy42IDEwLjRsODggOTZjMTEuOSAxMyAxMS4xIDMzLjMtMiA0NS4ycy0zMy4zIDExLjEtNDUuMi0yTDE5MiAxNDYuMyAxOTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzAxLjdMOTUuNiAxODEuNmMtMTEuOSAxMy0zMi4yIDEzLjktNDUuMiAycy0xMy45LTMyLjItMi00NS4ybDg4LTk2QzE0Mi41IDM1LjggMTUxIDMyIDE2MCAzMnpNNDUwLjcgMjk0YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6bS01LTE0NS4xQTMyIDMyIDAgMSAwIDQxOC4zIDkxYTMyIDMyIDAgMSAwIDI3LjQgNTcuOXptLTQwLjcgNTQuOUMzNjkuNiAxOTIuNCAzNDQgMTU5LjIgMzQ0IDEyMGMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMjMuNS03LjUgNDYuMy0yMS41IDY1LjJMNDQ5LjcgMjUxYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi43cy0xNy4yLTMwLjYtNi43LTQ0LjhsNi44LTkuMnpcIl1cbn07XG5jb25zdCBmYVNvcnROdW1lcmljVXBBbHQgPSBmYUFycm93VXA5MTtcbmNvbnN0IGZhTGl0ZWNvaW5TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpdGVjb2luLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZDNcIiwgXCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNDkuNkwyMy4yIDIyNS4yYy0xNyA0LjktMjYuOCAyMi42LTIyIDM5LjZzMjIuNiAyNi44IDM5LjYgMjJMNjQgMjgwLjEgNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE1NC4xIDEzNi44LTM5LjFjMTctNC45IDI2LjgtMjIuNiAyMi0zOS42cy0yMi42LTI2LjgtMzkuNi0yMkwxMjggMTk1LjMgMTI4IDY0elwiXVxufTtcbmNvbnN0IGZhQm9yZGVyTm9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3JkZXItbm9uZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjg1MFwiLCBcIk0zMiA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em05Ni02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAyNTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek0zMjAgNDE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMC0zMjBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIyNCA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wLTQ0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAgMjU2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNNDE2IDQxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek00MTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgMjg4YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTkyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTkyIDY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNMzIgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNDE2IDE5MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTMyIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTE5MiA2NGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVOb2RlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbm9kZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZTJcIiwgXCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjljMC00NC4yLTM1LjgtODAtODAtODBjLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4Yy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yelwiXVxufTtcbmNvbnN0IGZhUGFyYWNodXRlQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcmFjaHV0ZS1ib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0Y2RcIiwgXCJNMzgzLjUgMTkyYy4zLTUuMyAuNS0xMC42IC41LTE2YzAtNTEtMTUuOS05Ni00MC4yLTEyNy42QzMxOS41IDE2LjkgMjg4LjIgMCAyNTYgMHMtNjMuNSAxNi45LTg3LjggNDguNEMxNDMuOSA4MCAxMjggMTI1IDEyOCAxNzZjMCA1LjQgLjIgMTAuNyAuNSAxNkwyNDAgMTkybDAgMTI4LTMyIDBjLTcgMC0xMy43IDEuNS0xOS43IDQuMkw2OC4yIDE5MmwyOC4zIDBjLS4zLTUuMy0uNS0xMC42LS41LTE2YzAtNjQgMjIuMi0xMjEuMiA1Ny4xLTE1OS4zQzYyIDQ5LjMgMTguNiAxMjIuNiA0LjIgMTczLjZDMS41IDE4My4xIDkgMTkyIDE4LjkgMTkybDYgMEwxNjUuMiAzNDYuM2MtMy4zIDYuNS01LjIgMTMuOS01LjIgMjEuN2wwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTcuOC0xLjktMTUuMi01LjItMjEuN0w0ODcuMSAxOTJsNiAwYzkuOSAwIDE3LjQtOC45IDE0LjctMTguNEM0OTMuNCAxMjIuNiA0NTAgNDkuMyAzNTguOSAxNi43QzM5My44IDU0LjggNDE2IDExMi4xIDQxNiAxNzZjMCA1LjQtLjIgMTAuNy0uNSAxNmwyOC4zIDBMMzIzLjcgMzI0LjJjLTYtMi43LTEyLjctNC4yLTE5LjctNC4ybC0zMiAwIDAtMTI4IDExMS41IDB6XCJdXG59O1xuY29uc3QgZmFJbmRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kZW50JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDNjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zelwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tGaWVsZFVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZpZWxkLXVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNThlXCIsIFwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDEyOCAwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00LjIgMGMtLjQtMS4xLS45LTIuMS0xLjMtMy4yTDQ4NS43IDEwMmMtMTAuMy0yMy4xLTMzLjItMzgtNTguNS0zOGwtNTEuOCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyem0yODggOTZsNDMuMiAwIDQyLjcgOTZMMzg0IDIyNGwwLTk2ek0xMTIgMzg0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM2OC00OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI1My4zIDEzNS4xbDM0LjcgNTIgMC00My4yYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTI4IDE0NGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhSG91cmdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcycsXG4gIGljb246IFszODQsIDUxMiwgWzkyMDMsIDYyMDMyLCBcImhvdXJnbGFzcy1lbXB0eVwiXSwgXCJmMjU0XCIsIFwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzIwIDBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDExYzAgNDIuNC0xNi45IDgzLjEtNDYuOSAxMTMuMUwyMzcuMyAyNTZsNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xTDE0Ni43IDI1NiA3OC45IDE4OC4xQzQ4LjkgMTU4LjEgMzIgMTE3LjQgMzIgNzVsMC0xMUMxNC4zIDY0IDAgNDkuNyAwIDMyek05NiA2NGwwIDExYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDE5MiAyMTAuN2w2Ny45LTY3LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOWwwLTExTDk2IDY0em0wIDM4NGwxOTIgMCAwLTExYzAtMjUuNS0xMC4xLTQ5LjktMjguMS02Ny45TDE5MiAzMDEuM2wtNjcuOSA2Ny45Yy0xOCAxOC0yOC4xIDQyLjQtMjguMSA2Ny45bDAgMTF6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NFbXB0eSA9IGZhSG91cmdsYXNzO1xuY29uc3QgZmFNb3VudGFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3VudGFpbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1Nl0sIFwiZjZmY1wiLCBcIk0yNTYgMzJjMTIuNSAwIDI0LjEgNi40IDMwLjggMTdMNTAzLjQgMzk0LjRjNS42IDguOSA4LjYgMTkuMiA4LjYgMjkuN2MwIDMwLjktMjUgNTUuOS01NS45IDU1LjlMNTUuOSA0ODBDMjUgNDgwIDAgNDU1IDAgNDI0LjFjMC0xMC41IDMtMjAuOCA4LjYtMjkuN0wyMjUuMiA0OWM2LjYtMTAuNiAxOC4zLTE3IDMwLjgtMTd6bTY1IDE5MkwyNTYgMTIwLjQgMTc2LjkgMjQ2LjVsMTguMyAyNC40YzYuNCA4LjUgMTkuMiA4LjUgMjUuNiAwbDI1LjYtMzQuMWM2LTguMSAxNS41LTEyLjggMjUuNi0xMi44bDQ5IDB6XCJdXG59O1xuY29uc3QgZmFVc2VyRG9jdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItZG9jdG9yJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ1c2VyLW1kXCJdLCBcImYwZjBcIiwgXCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS05NiA1NS4yQzU0IDMzMi45IDAgNDAxLjMgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM4OC42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjdjMC04MS01NC0xNDkuNC0xMjgtMTcxLjFsMCA1MC44YzI3LjYgNy4xIDQ4IDMyLjIgNDggNjJsMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MGMwLTI5LjggMjAuNC01NC45IDQ4LTYybDAtNTcuMWMtNi0uNi0xMi4xLS45LTE4LjMtLjlsLTkxLjQgMGMtNi4yIDAtMTIuMyAuMy0xOC4zIC45bDAgNjUuNGMyMy4xIDYuOSA0MCAyOC4zIDQwIDUzLjdjMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTZjMC0yNS40IDE2LjktNDYuOCA0MC01My43bDAtNTkuMXpNMTQ0IDQ0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFVc2VyTWQgPSBmYVVzZXJEb2N0b3I7XG5jb25zdCBmYUNpcmNsZUluZm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWluZm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImluZm8tY2lyY2xlXCJdLCBcImYwNWFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxNiAzMzZsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptNDAtMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUluZm9DaXJjbGUgPSBmYUNpcmNsZUluZm87XG5jb25zdCBmYUNsb3VkTWVhdGJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbWVhdGJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3M2JcIiwgXCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5Nmw0NC43IDBjOS41LTIzLjUgMzIuNS00MCA1OS4zLTQwYzIgMCAzLjkgLjEgNS44IC4zQzIxNy42IDI2NS41IDIzNS43IDI1NiAyNTYgMjU2czM4LjQgOS41IDUwLjIgMjQuM2MxLjktLjIgMy45LS4zIDUuOC0uM2MyNi45IDAgNDkuOSAxNi41IDU5LjMgNDBsNDQuNyAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwYzEuMS01LjIgMS42LTEwLjUgMS42LTE2YzAtNDQuMi0zNS44LTgwLTgwLTgwYy0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjhDMjU2LjUgMjQuMyAyMTkuMSAwIDE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjEgLjcgMTQuMSAxLjkgMjAuOEMyNy42IDE0NS40IDAgMTgxLjUgMCAyMjR6bTI4OCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDEgLjEgMi4xIC4xIDMuMWMtLjctLjgtMS40LTEuNi0yLjEtMi4zYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2MuNyAuNyAxLjUgMS40IDIuMyAyLjFjLTEtLjEtMi4xLS4xLTMuMS0uMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMxIDAgMi4xLS4xIDMuMS0uMWMtLjggLjctMS42IDEuMy0yLjMgMi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwYy43LS43IDEuNC0xLjUgMi4xLTIuM2MtLjEgMS0uMSAyLjEtLjEgMy4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0xLS4xLTIuMS0uMS0zLjFjLjcgLjggMS4zIDEuNiAyLjEgMi4zYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNjLS43LS43LTEuNS0xLjQtMi4zLTIuMWMxIC4xIDIuMSAuMSAzLjEgLjFjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJjLTEgMC0yLjEgLjEtMy4xIC4xYy44LS43IDEuNi0xLjMgMi4zLTIuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtLjcgLjctMS40IDEuNS0yLjEgMi4zYy4xLTEgLjEtMi4xIC4xLTMuMXpNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwiXVxufTtcbmNvbnN0IGZhQ2FtZXJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMjU4LCBcImNhbWVyYS1hbHRcIl0sIFwiZjAzMFwiLCBcIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwTDM2Mi45IDY0LjhDMzU2LjQgNDUuMiAzMzguMSAzMiAzMTcuNCAzMkwxOTQuNiAzMmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek0yNTYgMTkyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwiXVxufTtcbmNvbnN0IGZhQ2FtZXJhQWx0ID0gZmFDYW1lcmE7XG5jb25zdCBmYVNxdWFyZVZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS12aXJ1cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTU3OFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjMuOCA5My43YzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMjkuMyAzNS40IDQzLjkgNTYuMSAyMy4yYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNyAyMC43LTYgNTYuMSAyMy4yIDU2LjFjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI5LjMgMC00My45IDM1LjQtMjMuMiA1Ni4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjctMjAuNy01Ni4xLTYtNTYuMSAyMy4yYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjkuMy0zNS40LTQzLjktNTYuMS0yMy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjctMjAuNyA2LTU2LjEtMjMuMi01Ni4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI5LjMgMCA0My45LTM1LjQgMjMuMi01Ni4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNyAyMC43IDU2LjEgNiA1Ni4xLTIzLjJjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em04OCAzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbmNvbnN0IGZhTWV0ZW9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21ldGVvcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3MzJdLCBcImY3NTNcIiwgXCJNNDkzLjcgLjlMMjk5LjQgNzUuNmwyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5QzAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMmM3Mi40IDAgMTM5LjQtMzguNiAxNzUuNy0xMDEuM0w0ODAuOCAyMzQuM2M2LjUtMTEuMS0yLjItMjUtMTUuMS0yNGwtMjkuMyAyLjNMNTExLjEgMTguM2MuNi0xLjUgLjktMy4yIC45LTQuOEM1MTIgNiA1MDYgMCA0OTguNSAwYy0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDYXJPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZGRcIiwgXCJNMjgwIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwek0xODUuOCAyMjRsMTQwLjMgMGM2LjggMCAxMi44IDQuMyAxNS4xIDEwLjZMMzYwLjMgMjg4bC0yMDguNiAwIDE5LjEtNTMuNGMyLjMtNi40IDguMy0xMC42IDE1LjEtMTAuNnptLTc1LjMtMTAuOUw4Mi4yIDI5Mi40QzYyLjEgMzAwLjkgNDggMzIwLjggNDggMzQ0bDAgNDAgMCA2NCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAwLTY0IDAtNDBjMC0yMy4yLTE0LjEtNDMuMS0zNC4yLTUxLjZsLTI4LjMtNzkuM0MzOTAuMSAxODEuMyAzNjAgMTYwIDMyNi4yIDE2MGwtMTQwLjMgMGMtMzMuOCAwLTY0IDIxLjMtNzUuMyA1My4xek0xMjggMzQ0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjMyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0OCA0OGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNzMgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwem00MDAgMEwzOTEgODdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhU2xlaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NsZWlnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdjY1wiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMCAxNjBjMCA1MyA0MyA5NiA5NiA5NmwwIDMyIDY0IDAgMC0zMiAxOTIgMCAwIDMyIDY0IDAgMC0zMmM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MS4zYzAgMzAuMi0yNC41IDU0LjctNTQuNyA1NC43Yy03NS41IDAtMTQ1LjYtMzguOS0xODUuNi0xMDIuOWwtNC4zLTYuOUMxNzQuMiA2Ny42IDEyNSAzNy42IDcwLjcgMzIuN2MtMi4yLS41LTQuNC0uNy02LjctLjdsLTkgMEwzMiAzMnpNNjQwIDM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRMNjQgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQ4OCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtOHpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bjE5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tMS05JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtYXNjXCIsIFwic29ydC1udW1lcmljLWRvd25cIl0sIFwiZjE2MlwiLCBcIk00NTAuNyAzOGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDggMCA0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTE2MCA0ODBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNGw4OC05NmMxMS45LTEzIDExLjEtMzMuMy0yLTQ1LjJzLTMzLjMtMTEuMS00NS4yIDJMMTkyIDM2NS43IDE5MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwMS43TDk1LjYgMzMwLjRjLTExLjktMTMtMzIuMi0xMy45LTQ1LjItMnMtMTMuOSAzMi4yLTIgNDUuMmw4OCA5NkMxNDIuNSA0NzYuMiAxNTEgNDgwIDE2MCA0ODB6TTQxOC4zIDMwN2EzMiAzMiAwIDEgMSAyNy40IDU3LjlBMzIgMzIgMCAxIDEgNDE4LjMgMzA3ek00MDUuMSA0MTkuOGwtNi44IDkuMmMtMTAuNSAxNC4yLTcuNSAzNC4yIDYuNyA0NC44czM0LjIgNy41IDQ0LjgtNi43bDQ4LjgtNjUuOGMxNC0xOC45IDIxLjUtNDEuNyAyMS41LTY1LjJjMC00OC42LTM5LjQtODgtODgtODhzLTg4IDM5LjQtODggODhjMCAzOS4yIDI1LjYgNzIuNCA2MS4xIDgzLjh6XCJdXG59O1xuY29uc3QgZmFTb3J0TnVtZXJpY0FzYyA9IGZhQXJyb3dEb3duMTk7XG5jb25zdCBmYVNvcnROdW1lcmljRG93biA9IGZhQXJyb3dEb3duMTk7XG5jb25zdCBmYUhhbmRIb2xkaW5nRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctZHJvcGxldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaGFuZC1ob2xkaW5nLXdhdGVyXCJdLCBcImY0YzFcIiwgXCJNMjc1LjUgNi42QzI3OC4zIDIuNSAyODMgMCAyODggMHM5LjcgMi41IDEyLjUgNi42TDM2Ni44IDEwM0MzNzggMTE5LjMgMzg0IDEzOC42IDM4NCAxNTguM2wwIDEuN2MwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTEuN2MwLTE5LjggNi0zOSAxNy4yLTU1LjNMMjc1LjUgNi42ek01NjguMiAzMzYuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDE5MiA1MTIgMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM2LjggMCA0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4bDc4LjMgMCAxNiAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDAtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjAuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzODRjMCAwIDAgMCAwIDBsLS45IDBjLjMgMCAuNiAwIC45IDB6XCJdXG59O1xuY29uc3QgZmFIYW5kSG9sZGluZ1dhdGVyID0gZmFIYW5kSG9sZGluZ0Ryb3BsZXQ7XG5jb25zdCBmYVdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzczXCIsIFwiTTI2OS41IDY5LjljMTEuMS03LjkgMjUuOS03LjkgMzcgMEMzMjkgODUuNCAzNTYuNSA5NiAzODQgOTZjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSAxNDkuNyA0MTcgMTYwIDM4NCAxNjBjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40QzQyLjggOTIuNiA2MSA4My41IDc1LjMgNzEuNmMxMS4xLTkuNSAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgODUuMiAxNjUuMSA5NiAxOTIgOTZjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xem0zNyAyODhDMzI5IDM3My40IDM1Ni41IDM4NCAzODQgMzg0YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDM3LjcgNDE3IDQ0OCAzODQgNDQ4Yy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyAzNzMuMiAxNjUuMSAzODQgMTkyIDM4NGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHptMC0xNDRDMzI5IDIyOS40IDM1Ni41IDI0MCAzODQgMjQwYzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgMjkzLjcgNDE3IDMwNCAzODQgMzA0Yy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS41IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyAyMjkuMiAxNjUuMSAyNDAgMTkyIDI0MGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYUNhbGVuZGFyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItY2hlY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyNzRcIiwgXCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhMMCAxNjBsMC00OEMwIDg1LjUgMjEuNSA2NCA0OCA2NGw0OCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkybDQ0OCAwIDAgMjcyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxOTJ6TTMyOSAzMDVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtOTUgOTUtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzI5IDMwNXpcIl1cbn07XG5jb25zdCBmYUJyYWlsbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJhaWxsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjJhMVwiLCBcIk0wIDk2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDAgOTZ6TTIyNCAyNzJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0wLTgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek04MCA0MTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA0MTZ6bTI0MCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTkyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0yMjQgMzJhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTM1MiA5NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSAzNTIgOTZ6bTI0MCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDUxMiA5NnptNjQgMTc2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptMC04MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMTYgMjI0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNDE2IDI3MmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTAtODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTE2IDIyNGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tODAgMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJdXG59O1xuY29uc3QgZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCcsXG4gIGljb246IFszODQsIDUxMiwgW1wicHJlc2NyaXB0aW9uLWJvdHRsZS1hbHRcIl0sIFwiZjQ4NlwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnptMzIgOTZsMzIwIDAgMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyMHpNMTYwIDI0MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVByZXNjcmlwdGlvbkJvdHRsZUFsdCA9IGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDtcbmNvbnN0IGZhTGFuZG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFuZG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NjNdLCBcImY2NmZcIiwgXCJNMjQwLjEgNC4yYzkuOC01LjYgMjEuOS01LjYgMzEuOCAwbDE3MS44IDk4LjFMNDQ4IDEwNGwwIC45IDQ3LjkgMjcuNGMxMi42IDcuMiAxOC44IDIyIDE1LjEgMzZzLTE2LjQgMjMuOC0zMC45IDIzLjhMMzIgMTkyYy0xNC41IDAtMjcuMi05LjgtMzAuOS0yMy44czIuNS0yOC44IDE1LjEtMzZMNjQgMTA0LjlsMC0uOSA0LjQtMS42TDI0MC4xIDQuMnpNNjQgMjI0bDY0IDAgMCAxOTIgNDAgMCAwLTE5MiA2NCAwIDAgMTkyIDQ4IDAgMC0xOTIgNjQgMCAwIDE5MiA0MCAwIDAtMTkyIDY0IDAgMCAxOTYuM2MuNiAuMyAxLjIgLjcgMS44IDEuMWw0OCAzMmMxMS43IDcuOCAxNyAyMi40IDEyLjkgMzUuOVM0OTQuMSA1MTIgNDgwIDUxMkwzMiA1MTJjLTE0LjEgMC0yNi41LTkuMi0zMC42LTIyLjdzMS4xLTI4LjEgMTIuOS0zNS45bDQ4LTMyYy42LS40IDEuMi0uNyAxLjgtMS4xTDY0IDIyNHpcIl1cbn07XG5jb25zdCBmYVRydWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjY2LCA5OTUxXSwgXCJmMGQxXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgMzY4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwxMjggMGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NCAwLTMyIDAtMTguN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTE0LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMNDE2IDk2bDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNDE2IDE2MGw1MC43IDBMNTQ0IDIzNy4zbDAgMTguNy0xMjggMCAwLTk2ek0xMTIgNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM2OC00OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDcm9zc2hhaXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3NzaGFpcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNWJcIiwgXCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMC40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNmwxMC40IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjQgMGMtMTMuOSA5My43LTg4IDE2Ny43LTE4MS42IDE4MS42bDAgMTAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEwLjRDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTAuNCAwQzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNEwyMjQgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEwNy40IDI4OGMxMi41IDU4LjMgNTguNCAxMDQuMSAxMTYuNiAxMTYuNmwwLTIwLjZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZMMzg0IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMC42IDBDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40bDAgMjAuNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIwLjZDMTY1LjcgMTE5LjkgMTE5LjkgMTY1LjcgMTA3LjQgMjI0bDIwLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjAuNiAwek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNhbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1M2NcIiwgXCJNMjcyIDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bS04IDE4Ny4zbDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdsLTM1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuN3pNMzUyIDM3NmMwLTQuNCAzLjYtOCA4LThzOCAzLjYgOCA4bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04elwiXVxufTtcbmNvbnN0IGZhVGVudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTdkXCIsIFwiTTI2OS40IDZDMjgwLjUtMiAyOTUuNS0yIDMwNi42IDZsMjI0IDE2MGM3LjQgNS4zIDEyLjIgMTMuNSAxMy4yIDIyLjVsMzIgMjg4YzEgOS0xLjkgMTguMS04IDI0LjlzLTE0LjcgMTAuNy0yMy44IDEwLjdsLTgwIDAtMjguMiAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43TDMwNi43IDI5My41Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNWMtNS41IDAtOS45IDQuNC05LjkgOS45TDI4OCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBMMzIgNTEyYy05LjEgMC0xNy44LTMuOS0yMy44LTEwLjdzLTktMTUuOC04LTI0LjlsMzItMjg4YzEtOSA1LjgtMTcuMiAxMy4yLTIyLjVMMjY5LjQgNnpcIl1cbn07XG5jb25zdCBmYVZlc3RQYXRjaGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Zlc3QtcGF0Y2hlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NlwiLCBcIk0xNTEuMiA2OS43bDU1LjkgMTY3LjctMTEgMzMuMWMtMi43IDguMi00LjEgMTYuNy00LjEgMjUuM0wxOTIgNDY0YzAgMTQuNSAzLjkgMjguMiAxMC43IDM5LjlDMTk1IDUwOSAxODUuOSA1MTIgMTc2IDUxMkw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcwLjVjMC05LjUgMi44LTE4LjcgOC4xLTI2LjZsNDcuOS03MS44YzUuMy03LjkgOC4xLTE3LjEgOC4xLTI2LjZMNjQgMTI4bDAtNzMuN0w2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGw0LjUgMGMuMiAwIC40IDAgLjYgMGMuNCAwIC44IDAgMS4yIDBjMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOEMxNzEuNiAyNy4yIDE5MC44IDQwIDIyNCA0MHM1Mi40LTEyLjggNjEuNy0yMS4yQzI5NS43IDkuNyAzMTEgMCAzMjkuNyAwYy40IDAgLjggMCAxLjIgMGMuMiAwIC40IDAgLjYgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDYuMyAwIDczLjcgMCAxNy41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2OC4yYzAtNS4yIC44LTEwLjMgMi41LTE1LjJMMjk2LjggNjkuN0MyNzkuNCA3OS43IDI1NS40IDg4IDIyNCA4OHMtNTUuNC04LjMtNzIuOC0xOC4zek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNWwxNS41IDE1LjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OGwxNS41LTE1LjVjNC43LTQuNyA0LjctMTIuMyAwLTE3cy0xMi4zLTQuNy0xNyAwTDk2IDI3MSA4MC41IDI1NS41Yy00LjctNC43LTEyLjMtNC43LTE3IDB6TTMwNCAyODBsMCA4IDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwiXVxufTtcbmNvbnN0IGZhQ2hlY2tEb3VibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2stZG91YmxlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTYwXCIsIFwiTTM0Mi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTYwIDE3OC43bC01Ny40LTU3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDgwIDgwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bTk2IDEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxNjAgNDAyLjcgNTQuNiAyOTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwyNTYtMjU2elwiXVxufTtcbmNvbnN0IGZhQXJyb3dEb3duQVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1hLXonLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYWxwaGEtYXNjXCIsIFwic29ydC1hbHBoYS1kb3duXCJdLCBcImYxNWRcIiwgXCJNMTgzLjYgNDY5LjZDMTc3LjUgNDc2LjIgMTY5IDQ4MCAxNjAgNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkwxMjggMzY1LjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMNDI5LjMgNDE2bDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDQwMi43IDM1MiAzNTIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDE2IDMyYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNjQgMTI4IDE2IDMyYzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNMNDYwLjIgMjI0bC04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsMTYtMzIgNjQtMTI4QzM5Mi44IDM4LjggNDAzLjkgMzIgNDE2IDMyek0zOTUuOCAxNzZsNDAuNCAwTDQxNiAxMzUuNiAzOTUuOCAxNzZ6XCJdXG59O1xuY29uc3QgZmFTb3J0QWxwaGFBc2MgPSBmYUFycm93RG93bkFaO1xuY29uc3QgZmFTb3J0QWxwaGFEb3duID0gZmFBcnJvd0Rvd25BWjtcbmNvbnN0IGZhTW9uZXlCaWxsV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbC13aGVhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUyYVwiLCBcIk0xNzYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiA2NEM0Mi43IDY0IDMyIDUzLjMgMzIgNDBzMTAuNy0yNCAyNC0yNHpNMjQgODhsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDg4IDI0IDg4em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMTZjMC04LjggNy4yLTE2IDE2LTE2YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMjhjOC44IDAgMTYgNy4yIDE2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFDb29raWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29va2llJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3ODUwXSwgXCJmNTYzXCIsIFwiTTI0Ny4yIDE3Yy0yMi4xLTMuMS00NC42IC45LTY0LjQgMTEuNGwtNzQgMzkuNUM4OS4xIDc4LjQgNzMuMiA5NC45IDYzLjQgMTE1TDI2LjcgMTkwLjZjLTkuOCAyMC4xLTEzIDQyLjktOS4xIDY0LjlsMTQuNSA4Mi44YzMuOSAyMi4xIDE0LjYgNDIuMyAzMC43IDU3LjlsNjAuMyA1OC40YzE2LjEgMTUuNiAzNi42IDI1LjYgNTguNyAyOC43bDgzIDExLjdjMjIuMSAzLjEgNDQuNi0uOSA2NC40LTExLjRsNzQtMzkuNWMxOS43LTEwLjUgMzUuNi0yNyA0NS40LTQ3LjJsMzYuNy03NS41YzkuOC0yMC4xIDEzLTQyLjkgOS4xLTY0LjlsLTE0LjYtODIuOGMtMy45LTIyLjEtMTQuNi00Mi4zLTMwLjctNTcuOUwzODguOSA1Ny41Yy0xNi4xLTE1LjYtMzYuNi0yNS42LTU4LjctMjguN0wyNDcuMiAxN3pNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUFycm93Um90YXRlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yb3RhdGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg2MzQsIFwiYXJyb3ctbGVmdC1yb3RhdGVcIiwgXCJhcnJvdy1yb3RhdGUtYmFja1wiLCBcImFycm93LXJvdGF0ZS1iYWNrd2FyZFwiLCBcInVuZG9cIl0sIFwiZjBlMlwiLCBcIk0xMjUuNyAxNjBsNTAuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDQ4IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDUxLjJMOTcuNiA5Ny42Yzg3LjUtODcuNSAyMjkuMy04Ny41IDMxNi44IDBzODcuNSAyMjkuMyAwIDMxNi44cy0yMjkuMyA4Ny41LTMxNi44IDBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjNjIuNSA2Mi41IDE2My44IDYyLjUgMjI2LjMgMHM2Mi41LTE2My44IDAtMjI2LjNzLTE2My44LTYyLjUtMjI2LjMgMEwxMjUuNyAxNjB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnRSb3RhdGUgPSBmYUFycm93Um90YXRlTGVmdDtcbmNvbnN0IGZhQXJyb3dSb3RhdGVCYWNrID0gZmFBcnJvd1JvdGF0ZUxlZnQ7XG5jb25zdCBmYUFycm93Um90YXRlQmFja3dhcmQgPSBmYUFycm93Um90YXRlTGVmdDtcbmNvbnN0IGZhVW5kbyA9IGZhQXJyb3dSb3RhdGVMZWZ0O1xuY29uc3QgZmFIYXJkRHJpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFyZC1kcml2ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQzNiwgXCJoZGRcIl0sIFwiZjBhMFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTg0LjRjLTE3LTE1LjItMzkuNC0yNC40LTY0LTI0LjRMNjQgMjU2Yy0yNC42IDAtNDcgOS4yLTY0IDI0LjRMMCA5NnpNNjQgMjg4bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0ek0zMjAgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTI4LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFIZGQgPSBmYUhhcmREcml2ZTtcbmNvbnN0IGZhRmFjZUdyaW5TcXVpbnRUZWFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3F1aW50LXRlYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzE1LCBcImdyaW4tc3F1aW50LXRlYXJzXCJdLCBcImY1ODZcIiwgXCJNNDI2LjggMTQuMkM0NDYtNSA0NzcuNS00LjYgNDk3LjEgMTQuOXMyMCA1MSAuNyA3MC4zYy02LjggNi44LTIxLjQgMTIuNC0zNy40IDE2LjdjLTE2LjMgNC40LTM0LjEgNy41LTQ2LjMgOS4zYy0xLjYgLjItMy4xIC41LTQuNiAuNmMtNC45IC44LTkuMS0yLjgtOS41LTcuNGMtLjEtLjcgMC0xLjQgLjEtMi4xYzEuNi0xMS4yIDQuNi0yOS42IDktNDdjLjMtMS4zIC43LTIuNiAxLTMuOWM0LjMtMTUuOSA5LjgtMzAuNSAxNi43LTM3LjR6bS00NC43IDE5Yy0xLjUgNC44LTIuOSA5LjYtNC4xIDE0LjNjLTQuOCAxOC45LTggMzguNS05LjcgNTAuM2MtNCAyNi44IDE4LjkgNDkuNyA0NS43IDQ1LjhjMTEuOS0xLjYgMzEuNS00LjggNTAuNC05LjdjNC43LTEuMiA5LjUtMi41IDE0LjMtNC4xQzUzNC4yIDIyNy41IDUyMC4yIDM1My44IDQzNyA0MzdjLTgzLjIgODMuMi0yMDkuNSA5Ny4yLTMwNy4yIDQxLjhjMS41LTQuOCAyLjgtOS42IDQtMTQuM2M0LjgtMTguOSA4LTM4LjUgOS43LTUwLjNjNC0yNi44LTE4LjktNDkuNy00NS43LTQ1LjhjLTExLjkgMS42LTMxLjUgNC44LTUwLjQgOS43Yy00LjcgMS4yLTkuNSAyLjUtMTQuMyA0LjFDLTIyLjIgMjg0LjUtOC4yIDE1OC4yIDc1IDc1QzE1OC4yLTguMyAyODQuNS0yMi4yIDM4Mi4yIDMzLjJ6TTUxLjUgNDEwLjFjMTguNS01IDM4LjgtOC4zIDUwLjktMTBjLjQtLjEgLjctLjEgMS0uMWM1LjEtLjIgOS4yIDQuMyA4LjQgOS42Yy0xLjcgMTIuMS01IDMyLjQtMTAgNTAuOUM5Ny42IDQ3Ni40IDkyIDQ5MSA4NS4yIDQ5Ny44QzY2IDUxNyAzNC41IDUxNi42IDE0LjkgNDk3LjFzLTIwLTUxLS43LTcwLjNjNi44LTYuOCAyMS40LTEyLjQgMzcuNC0xNi43ek00MTYuOSAyMDljLTQuNy0xMS45LTIwLjgtMTEtMjYuOCAuM2MtMTkgMzUuNS00NSA3MC44LTc3LjUgMTAzLjNTMjQ0LjggMzcxLjEgMjA5LjMgMzkwYy0xMS4zIDYtMTIuMiAyMi4xLS4zIDI2LjhjNTcuNiAyMi45IDEyNS44IDExIDE3Mi4zLTM1LjVzNTguNC0xMTQuOCAzNS41LTE3Mi4zek04Ny4xIDI4NS4xYzIgMiA0LjYgMy4yIDcuMyAzLjRsNTYuMSA1LjEgNS4xIDU2LjFjLjMgMi44IDEuNSA1LjQgMy40IDcuM2M2LjMgNi4zIDE3LjIgMy42IDE5LjgtNC45bDI5LjctOTcuNGMzLjUtMTEuNi03LjMtMjIuNS0xOS0xOUw5MiAyNjUuM2MtOC42IDIuNi0xMS4zIDEzLjQtNC45IDE5Ljh6TTI2NS4zIDkybC0yOS43IDk3LjRjLTMuNSAxMS42IDcuMyAyMi41IDE5IDE5bDk3LjQtMjkuN2M4LjYtMi42IDExLjMtMTMuNCA0LjktMTkuOGMtMi0yLTQuNi0zLjItNy4zLTMuNGwtNTYuMS01LjEtNS4xLTU2LjFjLS4zLTIuOC0xLjUtNS40LTMuNC03LjNjLTYuMy02LjMtMTcuMi0zLjYtMTkuOCA0Ljl6XCJdXG59O1xuY29uc3QgZmFHcmluU3F1aW50VGVhcnMgPSBmYUZhY2VHcmluU3F1aW50VGVhcnM7XG5jb25zdCBmYUR1bWJiZWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bWJiZWxsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDRiXCIsIFwiTTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjAgMCA2NCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTY0em00NDggMGwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDAtNjQgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNNDE2IDIyNGwwIDY0LTE5MiAwIDAtNjQgMTkyIDB6XCJdXG59O1xuY29uc3QgZmFSZWN0YW5nbGVMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY3RhbmdsZS1saXN0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsaXN0LWFsdFwiXSwgXCJmMDIyXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzItMTI4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05Ni0yNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTIyNCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yMjQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjI0IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0QWx0ID0gZmFSZWN0YW5nbGVMaXN0O1xuY29uc3QgZmFUYXJwRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXJwLWRyb3BsZXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1N2NcIiwgXCJNMjg4IDE2MGMtMzUuMyAwLTY0LTI2LjktNjQtNjBjMC0yNCAzMy43LTcwLjEgNTIuMi05My41YzYuMS03LjcgMTcuNS03LjcgMjMuNiAwQzMxOC4zIDI5LjkgMzUyIDc2IDM1MiAxMDBjMCAzMy4xLTI4LjcgNjAtNjQgNjB6TTY0IDEyOGwxMzMuNSAwYzEzLjIgMzcuMyA0OC43IDY0IDkwLjUgNjRzNzcuNC0yNi43IDkwLjUtNjRMNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDUxMmwwLTEyOCAxMjggMEw0NDggNTEyek05NiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VNZWRpY2FsQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTFcIiwgXCJNMzIwIDM2OGMwIDU5LjUgMjkuNSAxMTIuMSA3NC44IDE0NGwtMjY2LjcgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjAuNC0zMiAwYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w1MjIuMSAxOTMuOWMtOC41LTEuMy0xNy4zLTEuOS0yNi4xLTEuOWMtNTQuNyAwLTEwMy41IDI0LjktMTM1LjggNjRMMzIwIDI1NmwwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bTMyIDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDgwIDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25Ta2lpbmdOb3JkaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXNraWluZy1ub3JkaWMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNraWluZy1ub3JkaWNcIl0sIFwiZjdjYVwiLCBcIk0zMzYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yMjcuMiAxNjBjMS45IDAgMy44IC4xIDUuNiAuM0wyMDEuNiAyNTRjLTkuMyAyOCAxLjcgNTguOCAyNi44IDc0LjVsODYuMiA1My45TDI5MS4zIDQ2NGwtODguNSAwIDQxLjEtODguMS0zMi40LTIwLjNjLTcuOC00LjktMTQuNy0xMC43LTIwLjYtMTcuM0wxMzIuMiA0NjRsLTMyLjQgMCA1NC4yLTI1Ny42YzQuNi0xLjUgOS00LjEgMTIuNy03LjhsMjMuMS0yMy4xYzkuOS05LjkgMjMuNC0xNS41IDM3LjUtMTUuNXpNMTIxLjQgMTk4LjZjLjQgLjQgLjggLjggMS4zIDEuMkw2NyA0NjRsLTQzIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTM1LjMgMGMuNSAwIC45IDAgMS40IDBsMTU4LjYgMGMuNSAwIDEgMCAxLjQgMEw1MDQgNTEyYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTY5LjQgMCAyNy42LTE3OS4zYzEwLjUtNS4yIDE3LjgtMTYuMSAxNy44LTI4LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTIxLjMgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjUtMTkuN2wtNi4zLTE1Yy0xNC42LTM1LjEtNDQuMS02MS45LTgwLjUtNzMuMWwtNDguNy0xNWMtMTEuMS0zLjQtMjIuNy01LjItMzQuNC01LjJjLTMxIDAtNjAuOCAxMi4zLTgyLjcgMzQuM2wtMjMuMSAyMy4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3ptMzA4IDg5LjRMNDAyLjMgNDY0bC00NC40IDAgMjEuNi03NS42YzUuOS0yMC42LTIuNi00Mi42LTIwLjctNTMuOUwzMDIgMjk5bDMwLjktODIuNCA1LjEgMTIuM0MzNTMgMjY0LjcgMzg3LjkgMjg4IDQyNi43IDI4OGwyLjcgMHpcIl1cbn07XG5jb25zdCBmYVNraWluZ05vcmRpYyA9IGZhUGVyc29uU2tpaW5nTm9yZGljO1xuY29uc3QgZmFDYWxlbmRhclBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItcGx1cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MVwiLCBcIk05NiAzMmwwIDMyTDQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEybDAgNDggNDQ4IDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJMMTYwIDY0bDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgMTQuMyA5NiAzMnpNNDQ4IDE5MkwwIDE5MiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3MnpNMjI0IDI0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDU2IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTU2LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMCAwLTU2YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhUGxhbmVBcnJpdmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lLWFycml2YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg3NDhdLCBcImY1YWZcIiwgXCJNLjMgMTY2LjlMMCA2OEMwIDU3LjcgOS41IDUwLjEgMTkuNSA1Mi4zbDM1LjYgNy45YzEwLjYgMi4zIDE5LjIgOS45IDIzIDIwTDk2IDEyOGwxMjcuMyAzNy42TDE4MS44IDIwLjRDMTc4LjkgMTAuMiAxODYuNiAwIDE5Ny4yIDBsNDAuMSAwYzExLjYgMCAyMi4yIDYuMiAyNy45IDE2LjNsMTA5IDE5My44IDEwNy4yIDMxLjdjMTUuOSA0LjcgMzAuOCAxMi41IDQzLjcgMjIuOGwzNC40IDI3LjZjMjQgMTkuMiAxOC4xIDU3LjMtMTAuNyA2OC4yYy00MS4yIDE1LjYtODYuMiAxOC4xLTEyOC44IDdMMTIxLjcgMjg5LjhjLTExLjEtMi45LTIxLjItOC43LTI5LjMtMTYuOUw5LjUgMTg5LjRjLTUuOS02LTkuMy0xNC4xLTkuMy0yMi41ek0zMiA0NDhsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjgtMTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxODQwLCBcImFycm93LWFsdC1jaXJjbGUtbGVmdFwiXSwgXCJmMzU5XCIsIFwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0xMTYuNyAyNDQuN2wxMTItMTEyYzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDY0IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDY0YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTEyLTExMmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0FsdENpcmNsZUxlZnQgPSBmYUNpcmNsZUxlZnQ7XG5jb25zdCBmYVRyYWluU3Vid2F5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWluLXN1YndheScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic3Vid2F5XCJdLCBcImYyMzlcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEybDM5LjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxNjAgNDQ4bDEyOCAwIDU0LjYgNTQuNmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzkuNyAwYzEwIDAgMTUtMTIuMSA3LjktMTkuMWwtNDYtNDZjNDYtNy4xIDgxLjEtNDYuOSA4MS4xLTk0LjlsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0yNzIgOTZsODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVN1YndheSA9IGZhVHJhaW5TdWJ3YXk7XG5jb25zdCBmYUNoYXJ0R2FudHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtZ2FudHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwZTRcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTk2IDY0bDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTYwIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFJbmRpYW5SdXBlZVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kaWFuLXJ1cGVlLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImluZGlhbi1ydXBlZVwiLCBcImluclwiXSwgXCJlMWJjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNjQgMCAxNiAwIDE3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01Ni4yIDBjOS42IDE0LjQgMTYuNyAzMC42IDIwLjcgNDhsMzUuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNS42IDBjLTEzLjIgNTguMy02MS45IDEwMy4yLTEyMi4yIDExMC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzMyLjggMCA2MS0xOS43IDczLjMtNDhMMzIgMjA4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1My4zIDBDMTczIDExNS43IDE0NC44IDk2IDExMiA5Nkw5NiA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhSW5kaWFuUnVwZWUgPSBmYUluZGlhblJ1cGVlU2lnbjtcbmNvbnN0IGZhSW5yID0gZmFJbmRpYW5SdXBlZVNpZ247XG5jb25zdCBmYUNyb3BTaW1wbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcC1zaW1wbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNyb3AtYWx0XCJdLCBcImY1NjVcIiwgXCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMkwzMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMCAwLTY0LTIyNCAwIDAtMzUyek0zODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCA2NGwwIDY0IDIyNCAwIDAgMzUyelwiXVxufTtcbmNvbnN0IGZhQ3JvcEFsdCA9IGZhQ3JvcFNpbXBsZTtcbmNvbnN0IGZhTW9uZXlCaWxsMSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLTEnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1vbmV5LWJpbGwtYWx0XCJdLCBcImYzZDFcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDMyMGwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAxOTJsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTE3NiAyNTZhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHptNzYtNDhjMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDI0IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbEFsdCA9IGZhTW9uZXlCaWxsMTtcbmNvbnN0IGZhTGVmdExvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVmdC1sb25nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1sZWZ0XCJdLCBcImYzMGFcIiwgXCJNMTc3LjUgNDE0Yy04LjggMy44LTE5IDItMjYtNC42bC0xNDQtMTM2QzIuNyAyNjguOSAwIDI2Mi42IDAgMjU2czIuNy0xMi45IDcuNS0xNy40bDE0NC0xMzZjNy02LjYgMTcuMi04LjQgMjYtNC42czE0LjUgMTIuNSAxNC41IDIybDAgNzIgMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDAgMCA3MmMwIDkuNi01LjcgMTguMi0xNC41IDIyelwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93QWx0TGVmdCA9IGZhTGVmdExvbmc7XG5jb25zdCBmYURuYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkbmEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjk1MTZdLCBcImY0NzFcIiwgXCJNNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMCA1OS44LTMwLjMgMTA3LjUtNjkuNCAxNDYuNmMtMjggMjgtNjIuNSA1My41LTk3LjMgNzcuNGwtMi41IDEuN2MtMTEuOSA4LjEtMjMuOCAxNi4xLTM1LjUgMjMuOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBsLTEuNiAxYy02IDQtMTEuOSA3LjktMTcuOCAxMS45Yy0yMC45IDE0LTQwLjggMjcuNy01OS4zIDQxLjVsMTE4LjUgMGMtOS44LTcuNC0yMC4xLTE0LjctMzAuNy0yMi4xbDctNC43IDMtMmMxNS4xLTEwLjEgMzAuOS0yMC42IDQ2LjctMzEuNmMyNSAxOC4xIDQ4LjkgMzcuMyA2OS40IDU3LjdDNDE3LjcgMzcyLjUgNDQ4IDQyMC4yIDQ0OCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNTkuOCAzMC4zLTEwNy41IDY5LjQtMTQ2LjZjMjgtMjggNjIuNS01My41IDk3LjMtNzcuNGMtMzQuOC0yMy45LTY5LjMtNDkuMy05Ny4zLTc3LjRDMzAuMyAxMzkuNSAwIDkxLjggMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwzMjAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzM4LjYgMzg0bC0yMjkuMiAwYy0xMC4xIDEwLjYtMTguNiAyMS4zLTI1LjUgMzJsMjgwLjIgMGMtNi44LTEwLjctMTUuMy0yMS40LTI1LjUtMzJ6TTEwOS40IDEyOGwyMjkuMiAwYzEwLjEtMTAuNyAxOC42LTIxLjMgMjUuNS0zMkw4My45IDk2YzYuOCAxMC43IDE1LjMgMjEuMyAyNS41IDMyem01NS40IDQ4YzE4LjQgMTMuOCAzOC40IDI3LjUgNTkuMyA0MS41YzIwLjktMTQgNDAuOC0yNy43IDU5LjMtNDEuNWwtMTE4LjUgMHpcIl1cbn07XG5jb25zdCBmYVZpcnVzU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXMtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwNzVcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtMTU0LjMtMTIxYy0yLTMwLjEgMjAuOC02MC4xIDU2LTYwLjFsMTEuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDBjLTQ5LjkgMC03NC45LTYwLjMtMzkuNi05NS42bDguMi04LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTguMiA4LjJDNDEyLjMgMTE4LjQgMzUyIDkzLjQgMzUyIDQzLjVMMzUyIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEuNWMwIDQ5LjktNjAuMyA3NC45LTk1LjYgMzkuNkwxODQuMiA3NWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBjLTEuNiAxLjYtMy4xIDMuNC00LjMgNS4zTDM4LjggNS4xem0yMjUuOCAxNzdjNi45LTMuOSAxNC45LTYuMSAyMy40LTYuMWMyNi41IDAgNDggMjEuNSA0OCA0OGMwIDQuNC0uNiA4LjctMS43IDEyLjdsLTY5LjctNTQuNnpNNDAyIDQxMi43TDE0NC43IDIxMGMtOS41IDguNS0yMi4yIDE0LTM3LjIgMTRMOTYgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExLjUgMGM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNmwtOC4yIDguMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4LjItOC4yYzM1LjMtMzUuMyA5NS42LTEwLjMgOTUuNiAzOS42bDAgMTEuNWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEuNWMwLTMxLjIgMjMuNi01Mi43IDUwLTU1Ljd6XCJdXG59O1xuY29uc3QgZmFNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgWzgyMTEsIDg3MjIsIDEwMTM0LCBcInN1YnRyYWN0XCJdLCBcImYwNjhcIiwgXCJNNDMyIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTdWJ0cmFjdCA9IGZhTWludXM7XG5jb25zdCBmYUNoZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDM5XCIsIFwiTTE0NCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2TDk2IDMyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDE2IDAgMCAzMkw2MC4yIDk2QzQ5LjEgOTYgNDAgMTA1LjEgNDAgMTE2LjJjMCAyLjUgLjUgNC45IDEuMyA3LjNMNzMuOCAyMDggNzIgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQgMEw2MCAzODRsMTM2IDBMMTgwIDI1Nmw0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEuOCAwIDMyLjUtODQuNWMuOS0yLjMgMS4zLTQuOCAxLjMtNy4zYzAtMTEuMi05LjEtMjAuMi0yMC4yLTIwLjJMMTQ0IDk2bDAtMzIgMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMCAwLTE2ek00OCA0MTZMNC44IDQ3My42QzEuNyA0NzcuOCAwIDQ4Mi44IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtNS4yLTEuNy0xMC4yLTQuOC0xNC40TDIwOCA0MTYgNDggNDE2em0yODggMGwtNDMuMiA1Ny42Yy0zLjEgNC4yLTQuOCA5LjItNC44IDE0LjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC01LjItMS43LTEwLjItNC44LTE0LjRMNDY0IDQxNmwtMTI4IDB6TTMwNCAyMDhsMCA1MS45YzAgNy44IDIuOCAxNS4zIDggMjEuMUwzMzkuMiAzMTIgMzM3IDM4NGwxMjUuNSAwLTMuMy03MiAyOC4zLTMwLjhjNS40LTUuOSA4LjUtMTMuNiA4LjUtMjEuN2wwLTUxLjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi0yNCAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi0yNCAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTgwIDk2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMi0zMiAwIDAtMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnRMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWxlZnQtbG9uZycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibG9uZy1hcnJvdy1sZWZ0XCJdLCBcImYxNzdcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDQ4MCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3MC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93TGVmdCA9IGZhQXJyb3dMZWZ0TG9uZztcbmNvbnN0IGZhUGx1Z0NpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTVjXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYVN0cmVldFZpZXcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RyZWV0LXZpZXcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMWRcIiwgXCJNMzIwIDY0QTY0IDY0IDAgMSAwIDE5MiA2NGE2NCA2NCAwIDEgMCAxMjggMHptLTk2IDk2Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEuOCAwIDExLjEgOTkuNWMxLjggMTYuMiAxNS41IDI4LjUgMzEuOCAyOC41bDM4LjcgMGMxNi4zIDAgMzAtMTIuMyAzMS44LTI4LjVMMzE4LjIgMzA0bDEuOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTEzMi4zIDM5NC4yYzEzLTIuNCAyMS43LTE0LjkgMTkuMy0yNy45cy0xNC45LTIxLjctMjcuOS0xOS4zYy0zMi40IDUuOS02MC45IDE0LjItODIgMjQuOGMtMTAuNSA1LjMtMjAuMyAxMS43LTI3LjggMTkuNkM2LjQgMzk5LjUgMCA0MTAuNSAwIDQyNGMwIDIxLjQgMTUuNSAzNi4xIDI5LjEgNDVjMTQuNyA5LjYgMzQuMyAxNy4zIDU2LjQgMjMuNEMxMzAuMiA1MDQuNyAxOTAuNCA1MTIgMjU2IDUxMnMxMjUuOC03LjMgMTcwLjQtMTkuNmMyMi4xLTYuMSA0MS44LTEzLjggNTYuNC0yMy40YzEzLjctOC45IDI5LjEtMjMuNiAyOS4xLTQ1YzAtMTMuNS02LjQtMjQuNS0xNC0zMi42Yy03LjUtNy45LTE3LjMtMTQuMy0yNy44LTE5LjZjLTIxLTEwLjYtNDkuNS0xOC45LTgyLTI0LjhjLTEzLTIuNC0yNS41IDYuMy0yNy45IDE5LjNzNi4zIDI1LjUgMTkuMyAyNy45YzMwLjIgNS41IDUzLjcgMTIuOCA2OSAyMC41YzMuMiAxLjYgNS44IDMuMSA3LjkgNC41YzMuNiAyLjQgMy42IDcuMiAwIDkuNmMtOC44IDUuNy0yMy4xIDExLjgtNDMgMTcuM0MzNzQuMyA0NTcgMzE4LjUgNDY0IDI1NiA0NjRzLTExOC4zLTctMTU3LjctMTcuOWMtMTkuOS01LjUtMzQuMi0xMS42LTQzLTE3LjNjLTMuNi0yLjQtMy42LTcuMiAwLTkuNmMyLjEtMS40IDQuOC0yLjkgNy45LTQuNWMxNS4zLTcuNyAzOC44LTE0LjkgNjktMjAuNXpcIl1cbn07XG5jb25zdCBmYUZyYW5jU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmcmFuYy1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMThmXCIsIFwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDE2MCAwIDk2LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNjQgMTQ0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE0NCAwIDAtOTYgMTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJ6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVPZmYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sdW1lLW9mZicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjAyNlwiLCBcIk0zMjAgNjRjMC0xMi42LTcuNC0yNC0xOC45LTI5LjJzLTI1LTMuMS0zNC40IDUuM0wxMzEuOCAxNjAgNjQgMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY3LjggMEwyNjYuNyA0NzEuOWM5LjQgOC40IDIyLjkgMTAuNCAzNC40IDUuM1MzMjAgNDYwLjYgMzIwIDQ0OGwwLTM4NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzQXNsSW50ZXJwcmV0aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWFzbC1pbnRlcnByZXRpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCIsIFwiYXNsLWludGVycHJldGluZ1wiLCBcImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCJdLCBcImYyYTNcIiwgXCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw3MiAwIDggMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjdjOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwYzE0LjggMCAyNy43IDggMzQuNyAyMGM4LjggMTUuMyAyOC40IDIwLjUgNDMuNyAxMS43czIwLjUtMjguNCAxMS43LTQzLjdjLTEyLjgtMjIuMS0zMy42LTM5LjEtNTguNC00Ny4xbDgwLjgtMjJjMTctNC42IDI3LjEtMjIuMiAyMi41LTM5LjNzLTIyLjItMjcuMS0zOS4zLTIyLjVMMTk0LjkgMTI0LjZsODEuNi02OGMxMy42LTExLjMgMTUuNC0zMS41IDQuMS00NS4xUzI0OS4xLTMuOSAyMzUuNSA3LjRMMTMzLjYgOTIuM2wyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTcyIDAtOCAwIDAgLjNjLTM1LjIgMi43LTY1LjQgMjIuOC04Mi4xIDUxLjdjLTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMGMtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjctMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnpcIl1cbn07XG5jb25zdCBmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbmNvbnN0IGZhQXNsSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbmNvbnN0IGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyA9IGZhSGFuZHNBc2xJbnRlcnByZXRpbmc7XG5jb25zdCBmYUdlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4ODEsIFwiY29nXCJdLCBcImYwMTNcIiwgXCJNNDk1LjkgMTY2LjZjMy4yIDguNyAuNSAxOC40LTYuNCAyNC42bC00My4zIDM5LjRjMS4xIDguMyAxLjcgMTYuOCAxLjcgMjUuNHMtLjYgMTcuMS0xLjcgMjUuNGw0My4zIDM5LjRjNi45IDYuMiA5LjYgMTUuOSA2LjQgMjQuNmMtNC40IDExLjktOS43IDIzLjMtMTUuOCAzNC4zbC00LjcgOC4xYy02LjYgMTEtMTQgMjEuNC0yMi4xIDMxLjJjLTUuOSA3LjItMTUuNyA5LjYtMjQuNSA2LjhsLTU1LjctMTcuN2MtMTMuNCAxMC4zLTI4LjIgMTguOS00NCAyNS40bC0xMi41IDU3LjFjLTIgOS4xLTkgMTYuMy0xOC4yIDE3LjhjLTEzLjggMi4zLTI4IDMuNS00Mi41IDMuNXMtMjguNy0xLjItNDIuNS0zLjVjLTkuMi0xLjUtMTYuMi04LjctMTguMi0xNy44bC0xMi41LTU3LjFjLTE1LjgtNi41LTMwLjYtMTUuMS00NC0yNS40TDgzLjEgNDI1LjljLTguOCAyLjgtMTguNiAuMy0yNC41LTYuOGMtOC4xLTkuOC0xNS41LTIwLjItMjIuMS0zMS4ybC00LjctOC4xYy02LjEtMTEtMTEuNC0yMi40LTE1LjgtMzQuM2MtMy4yLTguNy0uNS0xOC40IDYuNC0yNC42bDQzLjMtMzkuNEM2NC42IDI3My4xIDY0IDI2NC42IDY0IDI1NnMuNi0xNy4xIDEuNy0yNS40TDIyLjQgMTkxLjJjLTYuOS02LjItOS42LTE1LjktNi40LTI0LjZjNC40LTExLjkgOS43LTIzLjMgMTUuOC0zNC4zbDQuNy04LjFjNi42LTExIDE0LTIxLjQgMjIuMS0zMS4yYzUuOS03LjIgMTUuNy05LjYgMjQuNS02LjhsNTUuNyAxNy43YzEzLjQtMTAuMyAyOC4yLTE4LjkgNDQtMjUuNGwxMi41LTU3LjFjMi05LjEgOS0xNi4zIDE4LjItMTcuOEMyMjcuMyAxLjIgMjQxLjUgMCAyNTYgMHMyOC43IDEuMiA0Mi41IDMuNWM5LjIgMS41IDE2LjIgOC43IDE4LjIgMTcuOGwxMi41IDU3LjFjMTUuOCA2LjUgMzAuNiAxNS4xIDQ0IDI1LjRsNTUuNy0xNy43YzguOC0yLjggMTguNi0uMyAyNC41IDYuOGM4LjEgOS44IDE1LjUgMjAuMiAyMi4xIDMxLjJsNC43IDguMWM2LjEgMTEgMTEuNCAyMi40IDE1LjggMzQuM3pNMjU2IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNvZyA9IGZhR2VhcjtcbmNvbnN0IGZhRHJvcGxldFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Ryb3BsZXQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInRpbnQtc2xhc2hcIl0sIFwiZjVjN1wiLCBcIk0zMjAgNTEyYzUzLjIgMCAxMDEuNC0yMS42IDEzNi4xLTU2LjZsLTI5OC4zLTIzNUMxNDAgMjU3LjEgMTI4IDI5Mi4zIDEyOCAzMjBjMCAxMDYgODYgMTkyIDE5MiAxOTJ6TTUwNS4yIDM3MC43YzQuNC0xNi4yIDYuOC0zMy4xIDYuOC01MC43YzAtOTEuMi0xMzAuMi0yNjIuMy0xNjYuNi0zMDguM0MzMzkuNCA0LjIgMzMwLjUgMCAzMjAuOSAwbC0xLjggMGMtOS42IDAtMTguNSA0LjItMjQuNSAxMS43QzI3Ny44IDMzIDI0MC43IDgxLjMgMjA1LjggMTM2TDM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTA1LjIgMzcwLjd6TTIyNCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFUaW50U2xhc2ggPSBmYURyb3BsZXRTbGFzaDtcbmNvbnN0IGZhTW9zcXVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vc3F1ZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODMzMl0sIFwiZjY3OFwiLCBcIk00MDAgMGM1IDAgOS44IDIuNCAxMi44IDYuNGMzNC43IDQ2LjMgNzguMSA3NC45IDEzMy41IDExMS41YzAgMCAwIDAgMCAwczAgMCAwIDBjNS4yIDMuNCAxMC41IDcgMTYgMTAuNmMyOC45IDE5LjIgNDUuNyA1MS43IDQ1LjcgODYuMWMwIDI4LjYtMTEuMyA1NC41LTI5LjggNzMuNGwtMzU2LjQgMGMtMTguNC0xOS0yOS44LTQ0LjktMjkuOC03My40YzAtMzQuNCAxNi43LTY2LjkgNDUuNy04Ni4xYzUuNC0zLjYgMTAuOC03LjEgMTYtMTAuNmMwIDAgMCAwIDAgMHMwIDAgMCAwQzMwOS4xIDgxLjMgMzUyLjUgNTIuNyAzODcuMiA2LjRjMy00IDcuOC02LjQgMTIuOC02LjR6TTI4OCA1MTJsMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNThjMC0xOS04LjQtMzctMjMtNDkuMkw0MDAgMzg0bC0yNSAyMC44QzM2MC40IDQxNyAzNTIgNDM1IDM1MiA0NTRsMCA1OC02NCAwek03MC40IDUuMmM1LjctNC4zIDEzLjUtNC4zIDE5LjIgMGwxNiAxMkMxMzkuOCA0Mi45IDE2MCA4My4yIDE2MCAxMjZsMCAyTDAgMTI4bDAtMkMwIDgzLjIgMjAuMiA0Mi45IDU0LjQgMTcuMmwxNi0xMnpNMCAxNjBsMTYwIDAgMCAxMzYuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwwIDEyOGMwIDkuNiAyLjEgMTguNiA1LjggMjYuOGMtNi42IDMuNC0xNCA1LjItMjEuOCA1LjJsLTY0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTc2bDAtMTZ6XCJdXG59O1xuY29uc3QgZmFNb3NxdWl0byA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3NxdWl0bycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyYlwiLCBcIk00NjMuNyA1MDUuOWM5LjgtOC45IDEwLjctMjQuMyAyLjEtMzQuM2wtNDIuMS00OSAwLTU0LjdjMC01LjUtMS44LTEwLjgtNS4xLTE1LjFMMzUyIDI2Ni4zbDAtLjNMNDg1LjQgMzg3LjhDNTQyLjQgNDQ3LjYgNjQwIDQwNS4yIDY0MCAzMjAuNmMwLTQ3LjktMzQtODguMy03OS40LTk0LjJsLTE1My0yMy45IDQwLjgtNDAuOWM3LjgtNy44IDkuNC0yMC4xIDMuOS0yOS44TDQyOC41IDkwLjFsMzguMi01MC45YzgtMTAuNiA2LjEtMjUuOS00LjMtMzQuMXMtMjUuMi02LjMtMzMuMiA0LjRsLTQ4IDYzLjljLTUuOSA3LjktNi42IDE4LjYtMS43IDI3LjJMNDAyLjIgMTQwIDM1MiAxOTAuM2wwLTM4LjJjMC0xNC45LTEwLjItMjcuNC0yNC0zMWwwLTU3LjJjMC00LjQtMy42LTgtOC04cy04IDMuNi04IDhsMCA1Ny4yYy0xMy44IDMuNi0yNCAxNi4xLTI0IDMxbDAgMzguMUwyMzcuOCAxNDBsMjIuNi0zOS41YzQuOS04LjYgNC4yLTE5LjMtMS43LTI3LjJsLTQ4LTYzLjljLTgtMTAuNi0yMi44LTEyLjYtMzMuMi00LjRzLTEyLjIgMjMuNS00LjMgMzQuMWwzOC4yIDUwLjktMjMuOSA0MS43Yy01LjUgOS43LTMuOSAyMiAzLjkgMjkuOGw0MC44IDQwLjktMTUzIDIzLjlDMzQgMjMyLjMgMCAyNzIuNyAwIDMyMC42YzAgODQuNiA5Ny42IDEyNyAxNTQuNiA2Ny4xTDI4OCAyNjZsMCAuMy02Ni41IDg2LjRjLTMuMyA0LjMtNS4xIDkuNi01LjEgMTUuMWwwIDU0LjctNDIuMSA0OWMtOC42IDEwLjEtNy43IDI1LjUgMi4xIDM0LjNzMjQuNyA3LjkgMzMuNC0yLjFsNDgtNTUuOWMzLjgtNC40IDUuOS0xMC4yIDUuOS0xNi4xbDAtNTUuNEwyODggMzQ0LjdsMCA2My4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02My4xIDI0LjMgMzEuNiAwIDU1LjRjMCA1LjkgMi4xIDExLjcgNS45IDE2LjFsNDggNTUuOWM4LjYgMTAuMSAyMy42IDExIDMzLjQgMi4xelwiXVxufTtcbmNvbnN0IGZhU3Rhck9mRGF2aWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1vZi1kYXZpZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEwMDE3XSwgXCJmNjlhXCIsIFwiTTQwNC4yIDMwOS41TDM4My4xIDM0NGw0Mi4zIDAtMjEuMS0zNC41ek0zNzEuNCAyNTZsLTU0LTg4LTEyMi44IDAtNTQgODggNTQgODggMTIyLjggMCA1NC04OHptNjUuNyAwbDUzLjQgODdjMy42IDUuOSA1LjUgMTIuNyA1LjUgMTkuNmMwIDIwLjctMTYuOCAzNy40LTM3LjQgMzcuNGwtMTA5LjggMC01Ni4yIDkxLjVDMjg0LjggNTA0LjMgMjcwLjkgNTEyIDI1NiA1MTJzLTI4LjgtNy43LTM2LjYtMjAuNUwxNjMuMyA0MDAgNTMuNCA0MDBDMzIuOCA0MDAgMTYgMzgzLjIgMTYgMzYyLjZjMC02LjkgMS45LTEzLjcgNS41LTE5LjZsNTMuNC04N0wyMS41IDE2OWMtMy42LTUuOS01LjUtMTIuNy01LjUtMTkuNkMxNiAxMjguOCAzMi44IDExMiA1My40IDExMmwxMDkuOCAwIDU2LjItOTEuNUMyMjcuMiA3LjcgMjQxLjEgMCAyNTYgMHMyOC44IDcuNyAzNi42IDIwLjVMMzQ4LjcgMTEybDEwOS44IDBjMjAuNyAwIDM3LjQgMTYuOCAzNy40IDM3LjRjMCA2LjktMS45IDEzLjctNS41IDE5LjZsLTUzLjQgODd6bS01NC04OGwyMS4xIDM0LjVMNDI1LjQgMTY4bC00Mi4zIDB6TTI4MyAxMTJMMjU2IDY4bC0yNyA0NCA1NCAwek0xMjguOSAxNjhsLTQyLjMgMCAyMS4xIDM0LjVMMTI4LjkgMTY4ek0xMDcuOCAzMDkuNUw4Ni42IDM0NGw0Mi4zIDAtMjEuMS0zNC41ek0yMjkgNDAwbDI3IDQ0IDI3LTQ0LTU0IDB6XCJdXG59O1xuY29uc3QgZmFQZXJzb25NaWxpdGFyeVJpZmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1taWxpdGFyeS1yaWZsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU0YlwiLCBcIk0xNjAgMzljMC0xMyAxMC0yMy44IDIyLjktMjQuOUwzMzQuNyAxLjRDMzQ0IC43IDM1MiA4IDM1MiAxNy40TDM1MiA0OGMwIDguOC03LjIgMTYtMTYgMTZMMTg1IDY0Yy0xMy44IDAtMjUtMTEuMi0yNS0yNXptMTcuNiA1N2wxNTYuOCAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTUuNSAuNi0xMC44IDEuNi0xNnptMjI4IDM2NC4zTDM1MiAzNjkuNyAzNTIgNDgwYzAgMS4zLS4xIDIuNS0uMiAzLjhMMTc3LjUgMjM0LjljMTYuNi03LjEgMzQuNi0xMC45IDUzLjMtMTAuOWw1MC40IDBjMTUuOSAwIDMxLjMgMi44IDQ1LjggNy45TDQyMS45IDY3LjdjLTcuNy00LjQtMTAuMy0xNC4yLTUuOS0yMS45czE0LjItMTAuMyAyMS45LTUuOWwxMy45IDggMTMuOSA4YzcuNyA0LjQgMTAuMyAxNC4yIDUuOSAyMS45TDQxNiAxNzMuOWwxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzOTIuNiAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMzIwIDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFzLTI1LjMtMzUuOC0xNC4xLTU0LjhsNzYuMS0xMjguOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMzMxLjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjk2IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFDYXJ0U2hvcHBpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FydC1zaG9wcGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODcyMiwgXCJzaG9wcGluZy1jYXJ0XCJdLCBcImYwN2FcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjkuNSAwYzIyIDAgNDEuNSAxMi44IDUwLjYgMzJsNDExIDBjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNsLTI4OC41IDAgNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUw0ODggMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODguMyAwYy0zNC42IDAtNjQuMy0yNC42LTcwLjctNTguNUw3Ny40IDU0LjVjLS43LTMuOC00LTYuNS03LjktNi41TDI0IDQ4QzEwLjcgNDggMCAzNy4zIDAgMjR6TTEyOCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzM2LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVNob3BwaW5nQ2FydCA9IGZhQ2FydFNob3BwaW5nO1xuY29uc3QgZmFWaWFscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFscycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ5M1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDU2IDAgNDggMCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzA0YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTEzNiA5Nkw4OCA5NmwwIDE2MCA0OCAwIDAtMTYwek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNTYgMCA0OCAwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMDRjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC0zMDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MjQgOTZsLTQ4IDAgMCAxNjAgNDggMCAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVBsdWdDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWZcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVBsYWNlT2ZXb3JzaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYWNlLW9mLXdvcnNoaXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2N2ZcIiwgXCJNMjI0IDEwOS4zbDAgMTA4LjNMMTgzLjMgMjQyYy0xNC41IDguNy0yMy4zIDI0LjMtMjMuMyA0MS4yTDE2MCA1MTJsOTYgMCAwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCA5NiA5NiAwIDAtMjI4LjhjMC0xNi45LTguOC0zMi41LTIzLjMtNDEuMkw0MTYgMjE3LjZsMC0xMDguM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkwzMzEuMyAxMS4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyMzMuNCA4Ni42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZ6TTI0LjkgMzMwLjNDOS41IDMzOC44IDAgMzU0LjkgMCAzNzIuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAtMjM4LjRMMjQuOSAzMzAuM3pNNTkyIDUxMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkxLjZjMC0xNy41LTkuNS0zMy42LTI0LjktNDIuMUw1MTIgMjczLjYgNTEyIDUxMmw4MCAwelwiXVxufTtcbmNvbnN0IGZhR3JpcFZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtdmVydGljYWwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY1OGVcIiwgXCJNNDAgMzUybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTkyIDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwek00MCAzMjBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwek0yMzIgMTkybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNDAgMTYwYy0yMi4xIDAtNDAtMTcuOS00MC00MEwwIDcyQzAgNDkuOSAxNy45IDMyIDQwIDMybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMHpNMjMyIDMybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHpcIl1cbn07XG5jb25zdCBmYUFycm93VHVyblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXR1cm4tdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxldmVsLXVwXCJdLCBcImYxNDhcIiwgXCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYUxldmVsVXAgPSBmYUFycm93VHVyblVwO1xuY29uc3QgZmFVID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTddLCBcIjU1XCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUm9vdFZhcmlhYmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1yb290LXZhcmlhYmxlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzcXVhcmUtcm9vdC1hbHRcIl0sIFwiZjY5OFwiLCBcIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44TDI4Mi42IDc4LjF6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDQ4MCAyNzQuN2w0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0w1MjUuMyAzMjBsNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDQ4MCAzNjUuM2wtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MzQuNyAzMjBsLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVSb290QWx0ID0gZmFTcXVhcmVSb290VmFyaWFibGU7XG5jb25zdCBmYUNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb2NrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzM5LCBcImNsb2NrLWZvdXJcIl0sIFwiZjAxN1wiLCBcIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyQTI1NiAyNTYgMCAxIDEgMjU2IDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG5jb25zdCBmYUNsb2NrRm91ciA9IGZhQ2xvY2s7XG5jb25zdCBmYUJhY2t3YXJkU3RlcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZC1zdGVwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJzdGVwLWJhY2t3YXJkXCJdLCBcImYwNDhcIiwgXCJNMjY3LjUgNDQwLjZjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOWwwLTMyMGMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRsLTE5MiAxNjBMNjQgMjQxIDY0IDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNzguMyAwIDk2TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDUgMTEuNSA5LjYgMTkyIDE2MHpcIl1cbn07XG5jb25zdCBmYVN0ZXBCYWNrd2FyZCA9IGZhQmFja3dhcmRTdGVwO1xuY29uc3QgZmFQYWxsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFsbGV0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDgyXCIsIFwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDIyNCAwIDIyNCAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwLTIyNCAwTDk2IDMyMGwtNjQgMHptOTYgNjRsMTYwIDAgMCA2NC0xNjAgMCAwLTY0em0yMjQgMGwxNjAgMCAwIDY0LTE2MCAwIDAtNjR6XCJdXG59O1xuY29uc3QgZmFGYXVjZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmF1Y2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDA1XCIsIFwiTTE5MiA5NmwwIDEyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2LTEyIDMxLTMuOSAxLS4xIDEgLjEgMzEgMy45IDk2IDEyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAxMiAwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek0zMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwyNTYgMjI0bDAtNDMuOC0zMi00LTMyIDQgMCA0My44LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDI1NmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYUJhc2ViYWxsQmF0QmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXNlYmFsbC1iYXQtYmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQzMlwiLCBcIk00MjQgMGMtMTIuNCAwLTI0LjIgNC45LTMzIDEzLjdMMjMzLjUgMTcxLjJjLTEwLjUgMTAuNS0xOS44IDIyLjEtMjcuNyAzNC42TDEzMi43IDMyMS42Yy03LjMgMTEuNS0xNS44IDIyLjItMjUuNSAzMS45TDY5LjkgMzkwLjdsNTEuMyA1MS4zIDM3LjMtMzcuM2M5LjYtOS42IDIwLjMtMTguMiAzMS45LTI1LjVsMTE1LjgtNzMuMWMxMi41LTcuOSAyNC4xLTE3LjIgMzQuNi0yNy43TDQ5OC4zIDEyMWM4LjctOC43IDEzLjctMjAuNiAxMy43LTMzcy00LjktMjQuMi0xMy43LTMzTDQ1NyAxMy43QzQ0OC4yIDQuOSA0MzYuNCAwIDQyNCAwem04OCA0MzJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0xNSAzOTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDY0IDY0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0OSAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhUyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTE1XSwgXCI1M1wiLCBcIk05OS4xIDEwNS40Qzc5IDExNCA2OC4yIDEyNy4yIDY1LjIgMTQ0LjhjLTIuNCAxNC4xLS43IDIzLjIgMiAyOS40YzIuOCA2LjMgNy45IDEyLjQgMTYuNyAxOC42YzE5LjIgMTMuNCA0OC4zIDIyLjEgODQuOSAzMi41YzEgLjMgMS45IC42IDIuOSAuOGMzMi43IDkuMyA3MiAyMC42IDEwMC45IDQwLjdjMTUuNyAxMC45IDI5LjkgMjUuNSAzOC42IDQ1LjFjOC44IDE5LjggMTAuOCA0MiA2LjYgNjYuM2MtNy4zIDQyLjUtMzUuMyA3MS43LTcxLjggODcuM2MtMzUuNCAxNS4yLTc5LjEgMTcuOS0xMjMuNyAxMC45bC0uMiAwczAgMCAwIDBjLTI0LTMuOS02Mi43LTE3LjEtODcuNi0yNS42Yy00LjgtMS43LTkuMi0zLjEtMTIuOC00LjNDNS4xIDQ0MC44LTMuOSA0MjIuNyAxLjYgNDA1LjlzMjMuNy0yNS44IDQwLjUtMjAuM2M0LjkgMS42IDEwLjIgMy40IDE1LjkgNS40YzI1LjQgOC42IDU2LjQgMTkuMiA3NC40IDIyLjFjMzYuOCA1LjcgNjcuNSAyLjUgODguNS02LjVjMjAuMS04LjYgMzAuOC0yMS44IDMzLjktMzkuNGMyLjQtMTQuMSAuNy0yMy4yLTItMjkuNGMtMi44LTYuMy03LjktMTIuNC0xNi43LTE4LjZjLTE5LjItMTMuNC00OC4zLTIyLjEtODQuOS0zMi41Yy0xLS4zLTEuOS0uNi0yLjktLjhjLTMyLjctOS4zLTcyLTIwLjYtMTAwLjktNDAuN2MtMTUuNy0xMC45LTI5LjktMjUuNS0zOC42LTQ1LjFjLTguOC0xOS44LTEwLjgtNDItNi42LTY2LjNsMzEuNSA1LjVMMi4xIDEzMy45QzkuNCA5MS40IDM3LjQgNjIuMiA3My45IDQ2LjZjMzUuNC0xNS4yIDc5LjEtMTcuOSAxMjMuNy0xMC45YzEzIDIgNTIuNCA5LjYgNjYuNiAxMy40YzE3LjEgNC41IDI3LjIgMjIuMSAyMi43IDM5LjJzLTIyLjEgMjcuMi0zOS4yIDIyLjdjLTExLjItMy00OC4xLTEwLjItNjAuMS0xMmw0LjktMzEuNS00LjkgMzEuNWMtMzYuOS01LjgtNjcuNS0yLjUtODguNiA2LjV6XCJdXG59O1xuY29uc3QgZmFUaW1lbGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aW1lbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTI5Y1wiLCBcIk0xMjggNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMiA5Ny4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjNjMC00NC4yLTM1LjgtODAtODAtODBTNDggNTEuOCA0OCA5NmMwIDMyLjggMTkuNyA2MSA0OCA3My4zTDk2IDIyNGwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjNjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuM2MwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0zMjAgMCAwLTU0Ljd6TTQ4OCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zMjAgMzkyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYUtleWJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleWJvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTAwMF0sIFwiZjExY1wiLCBcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTYgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMzM2YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0yNTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTM2OCAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMzUyIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00NjQgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNhcmV0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJldC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ3XCIsIFwiTTEzNy40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhMMzIgMTkyYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaGltbmV5TWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5LW1lZGljYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNsaW5pYy1tZWRpY2FsXCJdLCBcImY3ZjJcIiwgXCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFsLTMyIDAgLjcgMTYwLjJjLjIgMzUuNS0yOC41IDY0LjMtNjQgNjQuM2wtMzIwLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjAuNC0zMiAwYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0MTYgMTAwLjcgNDE2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjEgNTIuOCA0Ni40YzggNyAxMiAxNSAxMSAyNHpNMjcyIDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpcIl1cbn07XG5jb25zdCBmYUNsaW5pY01lZGljYWwgPSBmYUhvdXNlQ2hpbW5leU1lZGljYWw7XG5jb25zdCBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS10aHJlZS1xdWFydGVycycsXG4gIGljb246IFszMjAsIDUxMiwgW1widGVtcGVyYXR1cmUtM1wiLCBcInRoZXJtb21ldGVyLTNcIiwgXCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVyc1wiXSwgXCJmMmM4XCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNMMTQ0IDE0NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTc4LjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmUzID0gZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnM7XG5jb25zdCBmYVRoZXJtb21ldGVyMyA9IGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzO1xuY29uc3QgZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMgPSBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycztcbmNvbnN0IGZhTW9iaWxlU2NyZWVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZS1zY3JlZW4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcIm1vYmlsZS1hbmRyb2lkLWFsdFwiXSwgXCJmM2NmXCIsIFwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTQ0IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNjQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zMDQgNjRMODAgNjRsMCAzMjAgMjI0IDAgMC0zMjB6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVBbmRyb2lkQWx0ID0gZmFNb2JpbGVTY3JlZW47XG5jb25zdCBmYVBsYW5lVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyMmRcIiwgXCJNMTkyIDkzLjdDMTkyIDU5LjUgMjIxIDAgMjU2IDBjMzYgMCA2NCA1OS41IDY0IDkzLjdsMCA2Ni4zTDQ5Ny44IDI3OC41YzguOSA1LjkgMTQuMiAxNS45IDE0LjIgMjYuNmwwIDU2LjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJMMzIwIDMyMGwwIDgwIDU3LjYgNDMuMmM0IDMgNi40IDcuOCA2LjQgMTIuOGwwIDQyYzAgNy44LTYuMyAxNC0xNCAxNGMtMS4zIDAtMi42LS4yLTMuOS0uNUwyNTYgNDgwIDE0NS45IDUxMS41Yy0xLjMgLjQtMi42IC41LTMuOSAuNWMtNy44IDAtMTQtNi4zLTE0LTE0bDAtNDJjMC01IDIuNC05LjggNi40LTEyLjhMMTkyIDQwMGwwLTgwTDIxLjEgMzc3QzEwLjcgMzgwLjQgMCAzNzIuNyAwIDM2MS44bDAtNTYuN2MwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDE5MiAxNjBsMC02Ni4zelwiXVxufTtcbmNvbnN0IGZhUGlnZ3lCYW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BpZ2d5LWJhbmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ZDNcIiwgXCJNNDAwIDk2bDAgLjdjLTUuMy0uNC0xMC42LS43LTE2LS43TDI1NiA5NmMtMTYuNSAwLTMyLjUgMi4xLTQ3LjggNmMtLjEtMi0uMi00LS4yLTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnptLTE2IDMyYzMuNSAwIDcgLjEgMTAuNCAuM2M0LjIgLjMgOC40IC43IDEyLjYgMS4zQzQyNC42IDEwOS4xIDQ1MC44IDk2IDQ4MCA5NmwxMS41IDBjMTAuNCAwIDE4IDkuOCAxNS41IDE5LjlsLTEzLjggNTUuMmMxNS44IDE0LjggMjguNyAzMi44IDM3LjUgNTIuOWwxMy4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtOS4xIDEyLjEtMTkuOSAyMi45LTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMtMzQuOS0yNi4yLTU4LjctNjYuMy02My4yLTExMkw2OCAzMDRjLTM3LjYgMC02OC0zMC40LTY4LTY4czMwLjQtNjggNjgtNjhsNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMxLjIgMGMxMi4xLTU5LjggNTcuNy0xMDcuNSAxMTYuMy0xMjIuOGMxMi45LTMuNCAyNi41LTUuMiA0MC41LTUuMmwxMjggMHptNjQgMTM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5SGFsZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXR0ZXJ5LWhhbGYnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImJhdHRlcnktM1wiXSwgXCJmMjQyXCIsIFwiTTQ2NCAxNjBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw4MCAzNTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzODQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC0xNmMwLTQ0LjItMzUuOC04MC04MC04MEw4MCA5NnptMjA4IDk2TDk2IDE5MmwwIDEyOCAxOTIgMCAwLTEyOHpcIl1cbn07XG5jb25zdCBmYUJhdHRlcnkzID0gZmFCYXR0ZXJ5SGFsZjtcbmNvbnN0IGZhTW91bnRhaW5DaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW50YWluLWNpdHknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MmVcIiwgXCJNMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTIuMSA3MS40IDExOC40YzIuNS0xLjYgNS40LTIuNSA4LjYtMi41bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zLjUgMCA3My44IDEyMi40YzEyLjQgMjAuNiAxMi45IDQ2LjMgMS4yIDY3LjNjLS40IC44LS45IDEuNi0xLjQgMi4zTDU5MiA1MTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0IDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTQwIDAgMC0xNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDB6bTMyIDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTM1MiAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYwIDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCAxODguOUwyODMuOCAyODggMjIzIDI4OGwtNDggNjQtMjQuNi00MS4yTDIyNCAxODguOXptMjkuNC00NC4yQzI0Ny4xIDEzNC4zIDIzNiAxMjggMjI0IDEyOHMtMjMuMSA2LjMtMjkuNCAxNi43TDUuMSA0NTguOWMtNi41IDEwLjgtNi43IDI0LjMtLjcgMzUuM1MyMiA1MTIgMzQuNSA1MTJsMzc5LjEgMGMxMi41IDAgMjQtNi44IDMwLjEtMTcuOHM1LjgtMjQuNS0uNy0zNS4zTDI1My40IDE0NC43elwiXVxufTtcbmNvbnN0IGZhQ29pbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29pbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1MWVcIiwgXCJNNTEyIDgwYzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTI5LjEgMTYuMS03Mi41IDI3LjUtMTIyLjMgMzAuOWMtMy43LTEuOC03LjQtMy41LTExLjMtNUMzMDAuNiAxMzcuNCAyNDguMiAxMjggMTkyIDEyOGMtOC4zIDAtMTYuNCAuMi0yNC41IC42bC0xLjEtLjZDMTQyLjMgMTE0LjYgMTI4IDk4IDEyOCA4MGMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MHpNMTYwLjcgMTYxLjFjMTAuMi0uNyAyMC43LTEuMSAzMS4zLTEuMWM2Mi4yIDAgMTE3LjQgMTIuMyAxNTIuNSAzMS40QzM2OS4zIDIwNC45IDM4NCAyMjEuNyAzODQgMjQwYzAgNC0uNyA3LjktMi4xIDExLjdjLTQuNiAxMy4yLTE3IDI1LjMtMzUgMzUuNWMwIDAgMCAwIDAgMGMtLjEgLjEtLjMgLjEtLjQgLjJjMCAwIDAgMCAwIDBzMCAwIDAgMGMtLjMgLjItLjYgLjMtLjkgLjVjLTM1IDE5LjQtOTAuOCAzMi0xNTMuNiAzMmMtNTkuNiAwLTExMi45LTExLjMtMTQ4LjItMjkuMWMtMS45LS45LTMuNy0xLjktNS41LTIuOUMxNC4zIDI3NC42IDAgMjU4IDAgMjQwYzAtMzQuOCA1My40LTY0LjUgMTI4LTc1LjRjMTAuNS0xLjUgMjEuNC0yLjcgMzIuNy0zLjV6TTQxNiAyNDBjMC0yMS45LTEwLjYtMzkuOS0yNC4xLTUzLjRjMjguMy00LjQgNTQuMi0xMS40IDc2LjItMjAuNWMxNi4zLTYuOCAzMS41LTE1LjIgNDMuOS0yNS41bDAgMzUuNGMwIDE5LjMtMTYuNSAzNy4xLTQzLjggNTAuOWMtMTQuNiA3LjQtMzIuNCAxMy43LTUyLjQgMTguNWMuMS0xLjggLjItMy41IC4yLTUuM3ptLTMyIDk2YzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTEuOCAxLTMuNiAxLjktNS41IDIuOUMzMDQuOSA0MDQuNyAyNTEuNiA0MTYgMTkyIDQxNmMtNjIuOCAwLTExOC42LTEyLjYtMTUzLjYtMzJDMTQuMyAzNzAuNiAwIDM1NCAwIDMzNmwwLTM1LjRjMTIuNSAxMC4zIDI3LjYgMTguNyA0My45IDI1LjVDODMuNCAzNDIuNiAxMzUuOCAzNTIgMTkyIDM1MnMxMDguNi05LjQgMTQ4LjEtMjUuOWM3LjgtMy4yIDE1LjMtNi45IDIyLjQtMTAuOWM2LjEtMy40IDExLjgtNy4yIDE3LjItMTEuMmMxLjUtMS4xIDIuOS0yLjMgNC4zLTMuNGwwIDMuNCAwIDUuNyAwIDI2LjN6bTMyIDBsMC0zMiAwLTI1LjljMTktNC4yIDM2LjUtOS41IDUyLjEtMTZjMTYuMy02LjggMzEuNS0xNS4yIDQzLjktMjUuNWwwIDM1LjRjMCAxMC41LTUgMjEtMTQuOSAzMC45Yy0xNi4zIDE2LjMtNDUgMjkuNy04MS4zIDM4LjRjLjEtMS43IC4yLTMuNSAuMi01LjN6TTE5MiA0NDhjNTYuMiAwIDEwOC42LTkuNCAxNDguMS0yNS45YzE2LjMtNi44IDMxLjUtMTUuMiA0My45LTI1LjVsMCAzNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTM1LjRjMTIuNSAxMC4zIDI3LjYgMTguNyA0My45IDI1LjVDODMuNCA0MzguNiAxMzUuOCA0NDggMTkyIDQ0OHpcIl1cbn07XG5jb25zdCBmYUtoYW5kYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraGFuZGEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzcyXSwgXCJmNjZkXCIsIFwiTTI0NS44IDMuN2M1LjktNC45IDE0LjYtNC45IDIwLjUgMGw0OCA0MGM1LjkgNC45IDcuNSAxMy4yIDMuOCAxOS45YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwbC0uMSAuMS0uMyAuNmMtLjMgLjUtLjcgMS4zLTEuMiAyLjNjLTEgMi0yLjYgNS00LjQgOC42Yy0uNSAuOS0uOSAxLjktMS40IDIuOUMzNDQuOSA5Ny40IDM2OCAxMzQgMzY4IDE3NnMtMjMuMSA3OC42LTU3LjMgOTcuOGMuNSAxIDEgMiAxLjQgMi45YzEuOCAzLjcgMy4zIDYuNiA0LjQgOC42Yy41IDEgLjkgMS44IDEuMiAyLjNsLjMgLjYgLjEgLjFzMCAwIDAgMHMwIDAgMCAwYzMuNiA2LjcgMiAxNS0zLjggMTkuOUwyNzIgMzQzLjVsMCAxOS44IDM1LjYtMjQuNSA0MS4xLTI4LjJjNDIuOC0yOS40IDY4LjQtNzggNjguNC0xMzBjMC0zMS4xLTkuMi02MS42LTI2LjUtODcuNWwtMi44LTQuMmMtNC02LTMuNS0xNCAxLjMtMTkuNXMxMi43LTcgMTkuMi0zLjdMNDAxLjEgODBjNy4yLTE0LjMgNy4yLTE0LjMgNy4yLTE0LjNzMCAwIDAgMHMwIDAgMCAwbC4xIDAgLjMgLjIgMSAuNWMuOCAuNCAyIDEuMSAzLjUgMS45YzIuOSAxLjcgNyA0LjEgMTEuOCA3LjNjOS42IDYuNCAyMi41IDE2LjEgMzUuNCAyOWMyNS43IDI1LjcgNTIuNyA2NS42IDUyLjcgMTE5LjNjMCA1My4xLTI2LjQgMTAwLjUtNTEuMiAxMzMuNmMtMTIuNiAxNi43LTI1LjEgMzAuMy0zNC41IDM5LjdjLTQuNyA0LjctOC43IDguNC0xMS41IDEwLjljLTEuNCAxLjMtMi41IDIuMi0zLjMgMi45bC0uOSAuOC0uMyAuMi0uMSAuMWMwIDAgMCAwIDAgMHMwIDAgMCAwTDQwMS4xIDQwMGwxMC4yIDEyLjNjLTUuMSA0LjMtMTIuNCA0LjktMTguMiAxLjZsLTc1LjYtNDMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uN2MxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFMMjcyIDQyMy40bDAgMjguOWM5LjYgNS41IDE2IDE1LjkgMTYgMjcuN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTExLjggNi40LTIyLjIgMTYtMjcuN2wwLTI4LjEtNDAuMyAyNy43QzE5Ny44IDQ2My4zIDE4Ny45IDQ3MiAxNzYgNDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03NS42IDQzYy01LjggMy4zLTEzIDIuNy0xOC4yLTEuNkwxMTIgNDAwYy0xMC4yIDEyLjMtMTAuMiAxMi4zLTEwLjMgMTIuM3MwIDAgMCAwczAgMCAwIDBsLS4xLS4xLS4zLS4yLS45LS44Yy0uOC0uNy0xLjktMS43LTMuMy0yLjljLTIuOC0yLjUtNi43LTYuMi0xMS41LTEwLjljLTkuNC05LjQtMjEuOS0yMy0zNC41LTM5LjdDMjYuNCAzMjQuNSAwIDI3Ny4xIDAgMjI0YzAtNTMuNyAyNi45LTkzLjYgNTIuNy0xMTkuM2MxMi45LTEyLjkgMjUuOC0yMi42IDM1LjQtMjlDOTMgNzIuNSA5NyA3MCA5OS45IDY4LjRjMS41LS44IDIuNi0xLjUgMy41LTEuOWwxLS41IC4zLS4yIC4xIDBjMCAwIDAgMCAwIDBzMCAwIDAgMEwxMTIgODBsLTcuMi0xNC4zYzYuNS0zLjIgMTQuMy0xLjcgMTkuMiAzLjdzNS4zIDEzLjQgMS4zIDE5LjVsLTIuOCA0LjJDMTA1LjIgMTE5IDk2IDE0OS41IDk2IDE4MC42YzAgNTEuOSAyNS42IDEwMC42IDY4LjQgMTMwbDQxLjEgMjguMkwyNDAgMzYyLjZsMC0xOS4xLTQyLjItMzUuMmMtNS45LTQuOS03LjUtMTMuMi0zLjgtMTkuOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBsLjEtLjEgLjMtLjZjLjMtLjUgLjctMS4zIDEuMi0yLjNjMS0yIDIuNi01IDQuNC04LjZjLjUtLjkgLjktMS45IDEuNC0yLjlDMTY3LjEgMjU0LjYgMTQ0IDIxOCAxNDQgMTc2czIzLjEtNzguNiA1Ny4zLTk3LjhjLS41LTEtMS0yLTEuNC0yLjljLTEuOC0zLjctMy4zLTYuNi00LjQtOC42Yy0uNS0xLS45LTEuOC0xLjItMi4zbC0uMy0uNi0uMS0uMXMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMtMy42LTYuNy0yLTE1IDMuOC0xOS45bDQ4LTQwek0yMjAuMiAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xQzIyNyAyMTAuMiAyMzIgMTkwLjkgMjMyIDE3NnMtNS0zNC4yLTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xQzI4NSAxNDEuOCAyODAgMTYxLjEgMjgwIDE3NnM1IDM0LjIgMTEuOCA1My4xelwiXVxufTtcbmNvbnN0IGZhU2xpZGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGlkZXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzbGlkZXJzLWhcIl0sIFwiZjFkZVwiLCBcIk0wIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyMCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzItODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDh6TTE5MiAxMjhhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em03My4zLTY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NHpcIl1cbn07XG5jb25zdCBmYVNsaWRlcnNIID0gZmFTbGlkZXJzO1xuY29uc3QgZmFGb2xkZXJUcmVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci10cmVlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODAyXCIsIFwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJsMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTY0TDY0IDM4NGwwLTIyNCAxOTIgMCAwLTY0TDY0IDk2bDAtNjR6TTI4OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTk4LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMNDA5LjQgOS40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwem0wIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMzIwIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjB6XCJdXG59O1xuY29uc3QgZmFOZXR3b3JrV2lyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmV0d29yay13aXJlZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZmZlwiLCBcIk0yNTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0ek0yNDAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0OCAwIDAgMzJMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAzMi00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMC0zMiAyNTYgMCAwIDMyLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtMzIgNDggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI0MCAwek05NiA0NDhsMC02NCAxMjggMCAwIDY0TDk2IDQ0OHptMzIwLTY0bDEyOCAwIDAgNjQtMTI4IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYU1hcFBpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtcGluJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4MjA1XSwgXCJmMjc2XCIsIFwiTTE2IDE0NGExNDQgMTQ0IDAgMSAxIDI4OCAwQTE0NCAxNDQgMCAxIDEgMTYgMTQ0ek0xNjAgODBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTUzIDAtOTYgNDMtOTYgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMTI4IDQ4MGwwLTE2Mi45YzEwLjQgMS45IDIxLjEgMi45IDMyIDIuOXMyMS42LTEgMzItMi45TDE5MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFIYW1zYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW1zYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NVwiLCBcIk0zNC42IDI4OEw4MCAyODhjOC44IDAgMTYtNy4yIDE2LTE2TDk2IDcyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxMzJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xNjRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE2NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEzMmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjAwYzAgOC44IDcuMiAxNiAxNiAxNmw0NS40IDBjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjZjMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFzLTExOS40LTI1LjgtMTYwLjYtNzFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zQzAgMzAzLjUgMTUuNSAyODggMzQuNiAyODh6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yYy0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNlbnRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlbnQtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTNmNVwiLCBcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM0LjdjMzAuOSA1LjIgNTkuMiAxNy43IDgzLjIgMzUuOGMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNEMyNzkuNCAxMzcuNSAyNTIuOSAxMjggMjI0IDEyOGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhzNTcuMyAxMjggMTI4IDEyOGMyOC45IDAgNTUuNC05LjUgNzYuOC0yNS42YzE0LjEtMTAuNiAzNC4yLTcuOCA0NC44IDYuNHM3LjggMzQuMi02LjQgNDQuOGMtMjQgMTgtNTIuNCAzMC42LTgzLjIgMzUuOGwwIDM0LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43QzEwMS4yIDQzMC4xIDMyIDM1MS4xIDMyIDI1NnM2OS4yLTE3NC4xIDE2MC0xODkuM0wxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFGbGFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFzaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjM1wiLCBcIk0yODggMEwxNjAgMCAxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMmwwIDEzMi44YzAgMTEuOC0zLjMgMjMuNS05LjUgMzMuNUwxMC4zIDQwNi4yQzMuNiA0MTcuMiAwIDQyOS43IDAgNDQyLjZDMCA0ODAuOSAzMS4xIDUxMiA2OS40IDUxMmwzMDkuMiAwYzM4LjMgMCA2OS40LTMxLjEgNjkuNC02OS40YzAtMTIuOC0zLjYtMjUuNC0xMC4zLTM2LjRMMzI5LjUgMjMwLjRjLTYuMi0xMC4xLTkuNS0yMS43LTkuNS0zMy41TDMyMCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyODggMHpNMTkyIDE5Ni44TDE5MiA2NGw2NCAwIDAgMTMyLjhjMCAyMy43IDYuNiA0Ni45IDE5IDY3LjFMMzA5LjUgMzIwbC0xNzEgMEwxNzMgMjYzLjljMTIuNC0yMC4yIDE5LTQzLjQgMTktNjcuMXpcIl1cbn07XG5jb25zdCBmYVBlcnNvblByZWduYW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1wcmVnbmFudCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTMxZVwiLCBcIk0xOTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTEyMCAzODNjLTEzLjgtMy42LTI0LTE2LjEtMjQtMzFsMC01NS4xLTQuNiA3LjZjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE1LTI0LjkgNDAuMy00MS41IDY4LjctNDUuNmM0LjEtLjYgOC4yLTEgMTIuNS0xbDEuMSAwIDEyLjUgMCAyLjQgMGMxLjQgMCAyLjggLjEgNC4xIC4zYzM1LjcgMi45IDY1LjQgMjkuMyA3Mi4xIDY1bDYuMSAzMi41YzQ0LjMgOC42IDc3LjcgNDcuNSA3Ny43IDk0LjNsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYgMC00MCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni04IDAtOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05N3pcIl1cbn07XG5jb25zdCBmYVdhbmRTcGFya2xlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YW5kLXNwYXJrbGVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzJiXCIsIFwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdsMCAyMS40YzAgOC44LTcuMiAxNi0xNiAxNmwtMTUuOCAwYy00LjYgMC04LjkgMS45LTExLjkgNS4zTDEwMC43IDUwMC45Qzk0LjMgNTA4IDg1LjMgNTEyIDc1LjggNTEyYy04LjggMC0xNy4zLTMuNS0yMy41LTkuOEw5LjcgNDU5LjdDMy41IDQ1My40IDAgNDQ1IDAgNDM2LjJjMC05LjUgNC0xOC41IDExLjEtMjQuOGwxMTEuNi05OS44YzMuNC0zIDUuMy03LjQgNS4zLTExLjlsMC0yNy42YzAtOC44IDcuMi0xNiAxNi0xNmwzNC42IDBjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOEw4Ny43IDIxOC4yYy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjhMNzIuMyA2OS44YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xelwiXVxufTtcbmNvbnN0IGZhRWxsaXBzaXNWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGxpcHNpcy12ZXJ0aWNhbCcsXG4gIGljb246IFsxMjgsIDUxMiwgW1wiZWxsaXBzaXMtdlwiXSwgXCJmMTQyXCIsIFwiTTY0IDM2MGE1NiA1NiAwIDEgMCAwIDExMiA1NiA1NiAwIDEgMCAwLTExMnptMC0xNjBhNTYgNTYgMCAxIDAgMCAxMTIgNTYgNTYgMCAxIDAgMC0xMTJ6TTEyMCA5NkE1NiA1NiAwIDEgMCA4IDk2YTU2IDU2IDAgMSAwIDExMiAwelwiXVxufTtcbmNvbnN0IGZhRWxsaXBzaXNWID0gZmFFbGxpcHNpc1ZlcnRpY2FsO1xuY29uc3QgZmFUaWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGlja2V0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTAzXSwgXCJmMTQ1XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRjMCA4LjggNy40IDE1LjcgMTUuNyAxOC42QzM0LjUgMjE3LjEgNDggMjM1IDQ4IDI1NnMtMTMuNSAzOC45LTMyLjMgNDUuNEM3LjQgMzA0LjMgMCAzMTEuMiAwIDMyMGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC04LjgtNy40LTE1LjctMTUuNy0xOC42QzU0MS41IDI5NC45IDUyOCAyNzcgNTI4IDI1NnMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDExMmwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFQb3dlck9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb3dlci1vZmYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5MjExXSwgXCJmMDExXCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0ek0xNDMuNSAxMjAuNmMxMy42LTExLjMgMTUuNC0zMS41IDQuMS00NS4xcy0zMS41LTE1LjQtNDUuMS00LjFDNDkuNyAxMTUuNCAxNiAxODEuOCAxNiAyNTZjMCAxMzIuNSAxMDcuNSAyNDAgMjQwIDI0MHMyNDAtMTA3LjUgMjQwLTI0MGMwLTc0LjItMzMuOC0xNDAuNi04Ni42LTE4NC42Yy0xMy42LTExLjMtMzMuOC05LjQtNDUuMSA0LjFzLTkuNCAzMy44IDQuMSA0NS4xYzM4LjkgMzIuMyA2My41IDgxIDYzLjUgMTM1LjRjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZzLTE3Ni03OC44LTE3Ni0xNzZjMC01NC40IDI0LjctMTAzLjEgNjMuNS0xMzUuNHpcIl1cbn07XG5jb25zdCBmYVJpZ2h0TG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyaWdodC1sb25nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1yaWdodFwiXSwgXCJmMzBiXCIsIFwiTTMzNC41IDQxNGM4LjggMy44IDE5IDIgMjYtNC42bDE0NC0xMzZjNC44LTQuNSA3LjUtMTAuOCA3LjUtMTcuNHMtMi43LTEyLjktNy41LTE3LjRsLTE0NC0xMzZjLTctNi42LTE3LjItOC40LTI2LTQuNnMtMTQuNSAxMi41LTE0LjUgMjJsMCA3MkwzMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjg4IDAgMCA3MmMwIDkuNiA1LjcgMTguMiAxNC41IDIyelwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93QWx0UmlnaHQgPSBmYVJpZ2h0TG9uZztcbmNvbnN0IGZhRmxhZ1VzYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnLXVzYScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc0ZFwiLCBcIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41YzQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNEw0NDggMTM2LjNsMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNMNjQgMjAzLjFsMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRMNDQ4IDIzMi4zbDAgNjItNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zTDY0IDI5OS4xbDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40TDQ0OCAzMjguM2wwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40Yy0zNy45LTE5LTgxLjMtMjMuNy0xMjIuNS0xMy40TDY0IDQwMGwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQgMC03MC41IDAtMzIuNyAwLTYzLjMgMC0zMi43IDAtNjMuMyAwLTMyLjdMMCA2NCAwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZBMTYgMTYgMCAxIDAgODAgOTZhMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYUxhcHRvcEZpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wLWZpbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MWRcIiwgXCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCAyMjQtNDQuOCAwQzguNiAyODggMCAyOTYuNiAwIDMwNy4yQzAgMzQ5LjYgMzQuNCAzODQgNzYuOCAzODRMMzIwIDM4NGwwLTk2LTE5MiAwIDAtMjI0IDMyMCAwIDAgMzIgNjQgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwek01MTIgMTI4bC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyODhjMCAyNi41IDIxLjUgNDggNDggNDhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDgtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnptMzIgMGwwIDk2IDk2IDAtOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFUdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0ZWxldHlwZVwiXSwgXCJmMWU0XCIsIFwiTTM4LjMgMjQxLjNMMTUuMSAyMDAuNmMtOS4yLTE2LjItOC40LTM2LjUgNC41LTUwQzYxLjQgMTA2LjggMTQ0LjcgNDggMjU2IDQ4czE5NC42IDU4LjggMjM2LjQgMTAyLjZjMTIuOSAxMy41IDEzLjcgMzMuOCA0LjUgNTBsLTIzLjEgNDAuN2MtNy41IDEzLjItMjMuMyAxOS4zLTM3LjggMTQuNmwtODEuMS0yNi42Yy0xMy4xLTQuMy0yMi0xNi42LTIyLTMwLjRsMC01NC44Yy00OS42LTE4LjEtMTA0LTE4LjEtMTUzLjYgMGwwIDU0LjhjMCAxMy44LTguOSAyNi4xLTIyIDMwLjRMNzYuMSAyNTUuOGMtMTQuNSA0LjctMzAuMy0xLjQtMzcuOC0xNC42ek0zMiAzMzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNDQgMzIwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpcIl1cbn07XG5jb25zdCBmYVRlbGV0eXBlID0gZmFUdHk7XG5jb25zdCBmYURpYWdyYW1OZXh0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYWdyYW0tbmV4dCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTQ3NlwiLCBcIk01MTIgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNjggMCAwIDY0IDQ2LjEgMGMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDI3MyAzOTljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2OSAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDFsNDYuMSAwIDAtNjRMNjQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6TTQ0OCA0MTZsMC02NC04Mi43IDAgLjQtLjRjMTguNC0xOC40IDIwLjQtNDMuNyAxMS02My42bDcxLjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw3MS4zIDBjLTkuNCAxOS45LTcuNCA0NS4yIDExIDYzLjZsLjQgLjRMNjQgMzUybDAgNjQgMTQ2LjcgMCA1LjcgNS43YzIxLjkgMjEuOSA1Ny4zIDIxLjkgNzkuMiAwbDUuNy01LjdMNDQ4IDQxNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvblJpZmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1yaWZsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0ZVwiLCBcIk0yNjUuMiAxOTJjMjUuNCAwIDQ5LjggNy4xIDcwLjggMTkuOUwzMzYgNTEybC0xOTIgMCAwLTE3NC4zTDkwLjQgNDI4LjNjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMXMtMjUuMy0zNS44LTE0LjEtNTQuOEw5Ny43IDI1OC44YzI0LjUtNDEuNCA2OS02Ni44IDExNy4xLTY2LjhsNTAuNCAwek0xNjAgODBhODAgODAgMCAxIDEgMTYwIDBBODAgODAgMCAxIDEgMTYwIDgwek00NDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxMTYuM2M5LjYgNS41IDE2IDE1LjkgMTYgMjcuN2wwIDEwOS4zIDE2LTUuMyAwLTU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDg0LjVjMCA2LjktNC40IDEzLTEwLjkgMTUuMkw0ODAgMzI1LjNsMCAyNi43IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC00NCAwIDIzIDkyLjFjMi41IDEwLjEtNS4xIDE5LjktMTUuNSAxOS45TDQzMiA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTk2LTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdMNDE2IDMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDAgMTYgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEyXCIsIFwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRsLTI2Ni43IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0TDMyMCAyNTZsMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUNsb3NlZENhcHRpb25pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvc2VkLWNhcHRpb25pbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMGFcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTIwMCAyMDhjMTQuMiAwIDI3IDYuMSAzNS44IDE2YzguOCA5LjkgMjQgMTAuNyAzMy45IDEuOXMxMC43LTI0IDEuOS0zMy45Yy0xNy41LTE5LjYtNDMuMS0zMi03MS41LTMyYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI4LjQgMCA1NC0xMi40IDcxLjUtMzJjOC44LTkuOSA4LTI1LTEuOS0zMy45cy0yNS04LTMzLjkgMS45Yy04LjggOS45LTIxLjYgMTYtMzUuOCAxNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHptMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzE0LjIgMCAyNyA2LjEgMzUuOCAxNmM4LjggOS45IDI0IDEwLjcgMzMuOSAxLjlzMTAuNy0yNCAxLjktMzMuOWMtMTcuNS0xOS42LTQzLjEtMzItNzEuNS0zMmMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyOC40IDAgNTQtMTIuNCA3MS41LTMyYzguOC05LjkgOC0yNS0xLjktMzMuOXMtMjUtOC0zMy45IDEuOWMtOC44IDkuOS0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhUGVyc29uSGlraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1oaWtpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhpa2luZ1wiXSwgXCJmNmVjXCIsIFwiTTE5MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem01MS4zIDE4Mi43TDIyNC4yIDMwN2w0OS43IDQ5LjdjOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA4OS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy03My45LTczLjljLTE1LjgtMTUuOC0yMi4yLTM4LjYtMTYuOS02MC4zbDIwLjQtODRjOC4zLTM0LjEgNDIuNy01NC45IDc2LjctNDYuNGMxOSA0LjggMzUuNiAxNi40IDQ2LjQgMzIuN0wzMDUuMSAyMDhsMzAuOSAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU1LjhjMCAuMSAwIC4yIDAgLjJzMCAuMiAwIC4yTDM4NCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMTYtMzkuNCAwYy0xNiAwLTMxLTgtMzkuOS0yMS40bC0xMy4zLTIwek04MS4xIDQ3MS45TDExNy4zIDMzNGMzIDQuMiA2LjQgOC4yIDEwLjEgMTEuOWw0MS45IDQxLjlMMTQyLjkgNDg4LjFjLTQuNSAxNy4xLTIyIDI3LjMtMzkuMSAyMi44cy0yNy4zLTIyLTIyLjgtMzkuMXptNTUuNS0zNDZMMTAxLjQgMjY2LjVjLTMgMTIuMS0xNC45IDE5LjktMjcuMiAxNy45bC00Ny45LThjLTE0LTIuMy0yMi45LTE2LjMtMTkuMi0zMEwzMS45IDE1NWM5LjUtMzQuOCA0MS4xLTU5IDc3LjItNTlsNC4yIDBjMTUuNiAwIDI3LjEgMTQuNyAyMy4zIDI5Ljh6XCJdXG59O1xuY29uc3QgZmFIaWtpbmcgPSBmYVBlcnNvbkhpa2luZztcbmNvbnN0IGZhVmVudXNEb3VibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVudXMtZG91YmxlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTg5MF0sIFwiZjIyNlwiLCBcIk0xOTIgMjg4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMzY4IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFsMCAzNC45IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM0LjlDNzguMSAzMzQuMSAxNiAyNjIuMyAxNiAxNzZDMTYgNzguOCA5NC44IDAgMTkyIDBzMTc2IDc4LjggMTc2IDE3NnpNMzQ0IDMxOGMxNC42LTE1LjYgMjYuOC0zMy40IDM2LTUzYzE4LjggMTQuNCA0Mi40IDIzIDY4IDIzYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEyYy0yNS42IDAtNDkuMSA4LjYtNjggMjNjLTkuMy0xOS41LTIxLjUtMzcuNC0zNi01M0MzNzMuMSAxMi42IDQwOS4xIDAgNDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy0yNi42LTQuOS01MS4xLTE1LjctNzItMzEuMXpcIl1cbn07XG5jb25zdCBmYUltYWdlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbWFnZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzMDJcIiwgXCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6TTM5NiAxMzguN2w5NiAxNDRjNC45IDcuNCA1LjQgMTYuOCAxLjIgMjQuNlM0ODAuOSAzMjAgNDcyIDMyMGwtMTQ0IDAtNDggMC04MCAwYy05LjIgMC0xNy42LTUuMy0yMS42LTEzLjZzLTIuOS0xOC4yIDIuOS0yNS40bDY0LTgwYzQuNi01LjcgMTEuNC05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMTcuMyAyMS42IDU2LTg0QzM2MC41IDEzMiAzNjggMTI4IDM3NiAxMjhzMTUuNSA0IDIwIDEwLjd6TTE5MiAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCAzNDRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzZsMzIwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyMCAwYy00OC42IDAtODgtMzkuNC04OC04OGwwLTIyNHpcIl1cbn07XG5jb25zdCBmYUNhbGN1bGF0b3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsY3VsYXRvcicsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQyNV0sIFwiZjFlY1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek05NiA2NGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgMTYwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTk2IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDI1NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTY0LTY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDQ0OGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6XCJdXG59O1xuY29uc3QgZmFQZW9wbGVQdWxsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blb3BsZS1wdWxsaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTM1XCIsIFwiTTgwIDk2QTQ4IDQ4IDAgMSAwIDgwIDBhNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmM5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhMMTIzLjEgMzUybDE1LjcgMCAzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuN2M4LjYgMy42IDE4IDMuMSAyNS45LS43YzMuNC0xLjYgNi42LTMuOSA5LjMtNi43YzMuMS0zLjIgNS41LTcgNy4xLTExLjRjLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDUzNyAyMzIuN2wtMTUuMy0zNi44QzUwNC41IDE1NC44IDQ2NC4zIDEyOCA0MTkuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6XCJdXG59O1xuY29uc3QgZmFOID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTBdLCBcIjRlXCIsIFwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6XCJdXG59O1xuY29uc3QgZmFDYWJsZUNhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWJsZS1jYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2NzMsIDU3NTUxLCBcInRyYW1cIl0sIFwiZjdkYVwiLCBcIk0yODggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCA1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC02Ni41LTIwMy4xIDQyYy0xMyAyLjctMjUuNy01LjctMjguNC0xOC42czUuNy0yNS43IDE4LjYtMjguNGwyMzItNDggMjMyLTQ4YzEzLTIuNyAyNS43IDUuNyAyOC40IDE4LjZzLTUuNyAyNS43LTE4LjYgMjguNEwyODAgMTQ3LjVsMCA3Ni41IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHptMTEyIDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwelwiXVxufTtcbmNvbnN0IGZhVHJhbSA9IGZhQ2FibGVDYXI7XG5jb25zdCBmYUNsb3VkUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1yYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzgzLCA5OTI2XSwgXCJmNzNkXCIsIFwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NmMwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMkM2NC43IDEyNi4xIDY0IDExOS4xIDY0IDExMkM2NCA1MC4xIDExNC4xIDAgMTc2IDBjNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwYzE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjhjNDQuMiAwIDgwIDM1LjggODAgODBjMCA1LjUtLjYgMTAuOC0xLjYgMTZjLjUgMCAxLjEgMCAxLjYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bS02LjggNTJjMS4zLTIuNSAzLjktNCA2LjgtNHM1LjQgMS41IDYuOCA0bDM1LjEgNjQuNmM0LjEgNy41IDYuMiAxNS44IDYuMiAyNC4zbDAgM2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTNjMC04LjUgMi4xLTE2LjkgNi4yLTI0LjNMODkuMiAzNzJ6bTE2MCAwYzEuMy0yLjUgMy45LTQgNi44LTRzNS40IDEuNSA2LjggNGwzNS4xIDY0LjZjNC4xIDcuNSA2LjIgMTUuOCA2LjIgMjQuM2wwIDNjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0zYzAtOC41IDIuMS0xNi45IDYuMi0yNC4zTDI0OS4yIDM3MnptMTI0LjkgNjQuNkw0MDkuMiAzNzJjMS4zLTIuNSAzLjktNCA2LjgtNHM1LjQgMS41IDYuOCA0bDM1LjEgNjQuNmM0LjEgNy41IDYuMiAxNS44IDYuMiAyNC4zbDAgM2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTNjMC04LjUgMi4xLTE2LjkgNi4yLTI0LjN6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0NpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRkNFwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOEwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFTaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg2NzRdLCBcImYyMWFcIiwgXCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOCA0NC40IDE0LjhjMjMuMSA3LjcgMjkuNSAzNy41IDExLjUgNTMuOWwtMTAxIDkyLjZjLTE2LjIgOS40LTM0LjcgMTUuMS01MC45IDE1LjFjLTE5LjYgMC00MC44LTcuNy01OS4yLTIwLjNjLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNy4xIDExLjgtMzggMjAuMy01OS4yIDIwLjNjLTE2LjIgMC0zNC43LTUuNy01MC45LTE1LjFsLTEwMS05Mi42Yy0xOC0xNi41LTExLjYtNDYuMiAxMS41LTUzLjlMOTYgMjQwbDAtMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMC0zMnpNMTYwIDIxOC43bDEwNy44LTM1LjljMTMuMS00LjQgMjcuMy00LjQgNDAuNSAwTDQxNiAyMTguN2wwLTkwLjctMjU2IDAgMCA5MC43ek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA1MDEuNyA0MTcgNTEyIDM4NCA1MTJjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43YzAgMCAwIDAgMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzRG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtZG93bi10by1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGI4XCIsIFwiTTU0NCA0MTZMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyem0yMi42LTEzNy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQ4MCAyNzQuNyA0ODAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2em0tMzIwLTQ1LjNjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE2MCAyNzQuNyAxNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuN0w1NC42IDIzMy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYURvd25sb2FkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvd25sb2FkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDE5XCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI0Mi43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAyNzQuNyAyODggMzJ6TTY0IDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMDEuNSAwLTQ1LjMgNDUuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBMMTY1LjUgMzUyIDY0IDM1MnptMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYUZhY2VHcmluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3JpbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxMiwgXCJncmluXCJdLCBcImY1ODBcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluID0gZmFGYWNlR3JpbjtcbmNvbnN0IGZhRGVsZXRlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkZWxldGUtbGVmdCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzkwMDMsIFwiYmFja3NwYWNlXCJdLCBcImY1NWFcIiwgXCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjcxIDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG5jb25zdCBmYUJhY2tzcGFjZSA9IGZhRGVsZXRlTGVmdDtcbmNvbnN0IGZhRXllRHJvcHBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleWUtZHJvcHBlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXllLWRyb3BwZXItZW1wdHlcIiwgXCJleWVkcm9wcGVyXCJdLCBcImYxZmJcIiwgXCJNMzQxLjYgMjkuMkwyNDAuMSAxMzAuOGwtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40TDQ4Mi44IDE3MC40YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40TDUuNCA0NjIuMmMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRMODkuNyA0ODBsNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRMMzA5LjQgMzM1LjlsLTQ1LjMtNDUuM0wxNDMuNCA0MTEuM2MtMyAzLTcuMSA0LjctMTEuMyA0LjdMOTYgNDE2bDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zTDIyMS40IDI0Ny45bC00NS4zLTQ1LjNMNTUuNCAzMjMuM3pcIl1cbn07XG5jb25zdCBmYUV5ZURyb3BwZXJFbXB0eSA9IGZhRXllRHJvcHBlcjtcbmNvbnN0IGZhRXllZHJvcHBlciA9IGZhRXllRHJvcHBlcjtcbmNvbnN0IGZhRmlsZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNWEwXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0MTYgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYUZvcndhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTNdLCBcImYwNGVcIiwgXCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2TDAgOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRMMjI0IDIxNC4zbDAgNDEuNyAwIDQxLjdMNTIuNSA0NDAuNnpNMjU2IDM1MmwwLTk2IDAtMTI4IDAtMzJjMC0xMi40IDcuMi0yMy43IDE4LjQtMjlzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MGM3LjMgNi4xIDExLjUgMTUuMSAxMS41IDI0LjZzLTQuMiAxOC41LTExLjUgMjQuNmwtMTkyIDE2MGMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNHMtMTguNC0xNi42LTE4LjQtMjlsMC02NHpcIl1cbn07XG5jb25zdCBmYU1vYmlsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb2JpbGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgyNDEsIFwibW9iaWxlLWFuZHJvaWRcIiwgXCJtb2JpbGUtcGhvbmVcIl0sIFwiZjNjZVwiLCBcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTgwIDQzMmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhTW9iaWxlQW5kcm9pZCA9IGZhTW9iaWxlO1xuY29uc3QgZmFNb2JpbGVQaG9uZSA9IGZhTW9iaWxlO1xuY29uc3QgZmFGYWNlTWVoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbWVoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTI4LCBcIm1laFwiXSwgXCJmMTFhXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTYwIDMzNmwxOTIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFNZWggPSBmYUZhY2VNZWg7XG5jb25zdCBmYUFsaWduQ2VudGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLWNlbnRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzN1wiLCBcIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUJvb2tTa3VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLXNrdWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJib29rLWRlYWRcIl0sIFwiZjZiN1wiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzIwIDExMmMwLTM1LjMtMzUuOC02NC04MC02NHMtODAgMjguNy04MCA2NGMwIDIwLjkgMTIuNiAzOS41IDMyIDUxLjJsMCAxMi44YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyLjhjMTkuNC0xMS43IDMyLTMwLjMgMzItNTEuMnpNMjA4IDk2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTM0LjMgMjA5LjNjLTguMS0zLjUtMTcuNSAuMy0yMSA4LjRzLjMgMTcuNSA4LjQgMjFMMTk5LjQgMjcybC03Ny43IDMzLjNjLTguMSAzLjUtMTEuOSAxMi45LTguNCAyMXMxMi45IDExLjkgMjEgOC40TDI0MCAyODkuNGwxMDUuNyA0NS4zYzguMSAzLjUgMTcuNS0uMyAyMS04LjRzLS4zLTE3LjUtOC40LTIxTDI4MC42IDI3Mmw3Ny43LTMzLjNjOC4xLTMuNSAxMS45LTEyLjkgOC40LTIxcy0xMi45LTExLjktMjEtOC40TDI0MCAyNTQuNiAxMzQuMyAyMDkuM3pcIl1cbn07XG5jb25zdCBmYUJvb2tEZWFkID0gZmFCb29rU2t1bGw7XG5jb25zdCBmYUlkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZC1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDcsIFwiZHJpdmVycy1saWNlbnNlXCJdLCBcImYyYzJcIiwgXCJNMCA5Nmw1NzYgMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2em0wIDMyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4TDAgMTI4ek02NCA0MDUuM2MwLTI5LjUgMjMuOS01My4zIDUzLjMtNTMuM2wxMTcuMyAwYzI5LjUgMCA1My4zIDIzLjkgNTMuMyA1My4zYzAgNS45LTQuOCAxMC43LTEwLjcgMTAuN0w3NC43IDQxNmMtNS45IDAtMTAuNy00LjgtMTAuNy0xMC43ek0xNzYgMTkyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0xNzYgMTZjMC04LjggNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFEcml2ZXJzTGljZW5zZSA9IGZhSWRDYXJkO1xuY29uc3QgZmFPdXRkZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ291dGRlbnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImRlZGVudFwiXSwgXCJmMDNiXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS4yIDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjIgMjY4LjZ6XCJdXG59O1xuY29uc3QgZmFEZWRlbnQgPSBmYU91dGRlbnQ7XG5jb25zdCBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGZlXCIsIFwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42bDAtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjFsMCA1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG91c2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5NjgsIDYzNDk4LCA2MzUwMCwgXCJob21lXCIsIFwiaG9tZS1hbHRcIiwgXCJob21lLWxnLWFsdFwiXSwgXCJmMDE1XCIsIFwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xbC0zMiAwIC43IDE2MC4yYzAgMi43LS4yIDUuNC0uNSA4LjFsMCAxNi4yYzAgMjIuMS0xNy45IDQwLTQwIDQwbC0xNiAwYy0xLjEgMC0yLjIgMC0zLjMtLjFjLTEuNCAuMS0yLjggLjEtNC4yIC4xTDQxNiA1MTJsLTI0IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtMjQgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NCAwIDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNCAwLTMxLjkgMGMtMS41IDAtMy0uMS00LjUtLjJjLTEuMiAuMS0yLjQgLjItMy42IC4ybC0xNiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLS45IDAtMS45IC4xLTIuOGwwLTY5LjctMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTY0LjggMjMxLjVjOCA3IDEyIDE1IDExIDI0elwiXVxufTtcbmNvbnN0IGZhSG9tZSA9IGZhSG91c2U7XG5jb25zdCBmYUhvbWVBbHQgPSBmYUhvdXNlO1xuY29uc3QgZmFIb21lTGdBbHQgPSBmYUhvdXNlO1xuY29uc3QgZmFDYWxlbmRhcldlZWsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItd2VlaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4NFwiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwyODggMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZMODAgMjU2elwiXVxufTtcbmNvbnN0IGZhTGFwdG9wTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXB0b3AtbWVkaWNhbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjgxMlwiLCBcIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1Ni02NCAwIDAtMjU2TDEyOCA5NmwwIDI1Ni02NCAwTDY0IDk2ek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJjMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbOThdLCBcIjQyXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAyNTYgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuN2MxOC43LTIyLjMgMzAtNTEgMzAtODIuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEw2NCAzMnptOTYgMTkybC05NiAwTDY0IDk2bDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGw5NiAwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRMNjQgNDE2bDAtMTI4elwiXVxufTtcbmNvbnN0IGZhRmlsZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1tZWRpY2FsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDc3XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYURpY2VPbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1vbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU2XSwgXCJmNTI1XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhS2l3aUJpcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2l3aS1iaXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTM1XCIsIFwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMXMxMS4yLTguMyAxMS4yLTE1LjNsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMGMtMzYuNCAwLTY5LjktMTcuNi0xMDEuMS0zNi40QzI2Mi4zIDQyLjEgMjI4LjMgMzIgMTkyIDMyQzg2IDMyIDAgMTE4IDAgMjI0YzAgNzEuMSAzOC42IDEzMy4xIDk2IDE2Ni4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDZjNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodEFycm93TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC1hcnJvdy1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODY0NCwgXCJleGNoYW5nZVwiXSwgXCJmMGVjXCIsIFwiTTQzOC42IDE1MC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjcgOTYgMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMzA2LjcgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOTYtOTZ6bS0zMzMuMyAzNTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyA0MTYgNDE2IDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzA2LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NnpcIl1cbn07XG5jb25zdCBmYUV4Y2hhbmdlID0gZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0O1xuY29uc3QgZmFSb3RhdGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb3RhdGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInJlZG8tYWx0XCIsIFwicm90YXRlLWZvcndhcmRcIl0sIFwiZjJmOVwiLCBcIk00NjMuNSAyMjRsOC41IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMjhjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMkw0MTMuNCA5Ni42Yy04Ny42LTg2LjUtMjI4LjctODYuMi0zMTUuOCAxYy04Ny41IDg3LjUtODcuNSAyMjkuMyAwIDMxNi44czIyOS4zIDg3LjUgMzE2LjggMGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtNjIuNSA2Mi41LTE2My44IDYyLjUtMjI2LjMgMHMtNjIuNS0xNjMuOCAwLTIyNi4zYzYyLjItNjIuMiAxNjIuNy02Mi41IDIyNS4zLTFMMzI3IDE4M2MtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44bDExOS41IDB6XCJdXG59O1xuY29uc3QgZmFSZWRvQWx0ID0gZmFSb3RhdGVSaWdodDtcbmNvbnN0IGZhUm90YXRlRm9yd2FyZCA9IGZhUm90YXRlUmlnaHQ7XG5jb25zdCBmYVV0ZW5zaWxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3V0ZW5zaWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3ODYwLCA2MTY4NSwgXCJjdXRsZXJ5XCJdLCBcImYyZTdcIiwgXCJNNDE2IDBDNDAwIDAgMjg4IDMyIDI4OCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDAtMTEyIDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NCAxNkM2NCA3LjggNTcuOSAxIDQ5LjcgLjFTMzQuMiA0LjYgMzIuNCAxMi41TDIuMSAxNDguOEMuNyAxNTUuMSAwIDE2MS41IDAgMTY3LjljMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDgwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43YzAtNi40LS43LTEyLjgtMi4xLTE5LjFMMTkxLjYgMTIuNWMtMS44LTgtOS4zLTEzLjMtMTcuNC0xMi40UzE2MCA3LjggMTYwIDE2bDAgMTM0LjJjMCA1LjQtNC40IDkuOC05LjggOS44Yy01LjEgMC05LjMtMy45LTkuOC05TDEyNy45IDE0LjZDMTI3LjIgNi4zIDEyMC4zIDAgMTEyIDBzLTE1LjIgNi4zLTE1LjkgMTQuNkw4My43IDE1MWMtLjUgNS4xLTQuNyA5LTkuOCA5Yy01LjQgMC05LjgtNC40LTkuOC05LjhMNjQgMTZ6bTQ4LjMgMTUybC0uMyAwLS4zIDAgLjMtLjcgLjMgLjd6XCJdXG59O1xuY29uc3QgZmFDdXRsZXJ5ID0gZmFVdGVuc2lscztcbmNvbnN0IGZhQXJyb3dVcFdpZGVTaG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC13aWRlLXNob3J0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFtb3VudC11cFwiXSwgXCJmMTYxXCIsIFwiTTE1MS42IDQyLjRDMTQ1LjUgMzUuOCAxMzcgMzIgMTI4IDMycy0xNy41IDMuOC0yMy42IDEwLjRsLTg4IDk2Yy0xMS45IDEzLTExLjEgMzMuMyAyIDQ1LjJzMzMuMyAxMS4xIDQ1LjItMkw5NiAxNDYuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwMS43IDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTb3J0QW1vdW50VXAgPSBmYUFycm93VXBXaWRlU2hvcnQ7XG5jb25zdCBmYU1pbGxTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pbGwtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFlZFwiLCBcIk0zMDIuMSA0Mi44YzUuOS0xNi42LTIuNy0zNS0xOS40LTQwLjlzLTM1IDIuNy00MC45IDE5LjRMMjA4IDExNi4xYy01LjcgNC0xMS4xIDguNS0xNiAxMy41QzE3MS43IDEwOC45IDE0My4zIDk2IDExMiA5NmMtMTkuNSAwLTM3LjggNS01My43IDEzLjdDNTIuNSAxMDEuNCA0Mi45IDk2IDMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOGwwIDgwTDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDQyLjVMODEuOSA0NjkuMmMtNS45IDE2LjYgMi43IDM1IDE5LjQgNDAuOXMzNS0yLjcgNDAuOS0xOS40bDIxLjQtNjBDMTY4LjkgNDQxIDE3OS42IDQ0OCAxOTIgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTU0LjUgMzUuNy0xMDBjMy45LTEgOC4xLTEuNiAxMi4zLTEuNmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4YzAtNTguMi00NC4zLTEwNi0xMDEuMS0xMTEuNWwxOS4yLTUzLjh6XCJdXG59O1xuY29uc3QgZmFCb3dsUmljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3dsLXJpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyZWJcIiwgXCJNMTc2IDU2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNzZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjRjMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDMybDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFTa3VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdza3VsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODEyOF0sIFwiZjU0Y1wiLCBcIk00MTYgMzk4LjljNTguNS00MS4xIDk2LTEwNC4xIDk2LTE3NC45QzUxMiAxMDAuMyAzOTcuNCAwIDI1NiAwUzAgMTAwLjMgMCAyMjRjMCA3MC43IDM3LjUgMTMzLjggOTYgMTc0LjljMCAuNCAwIC43IDAgMS4xbDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCA2NCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLS40IDAtLjcgMC0xLjF6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA5NiAyNTZ6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVRvd2VyQnJvYWRjYXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvd2VyLWJyb2FkY2FzdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYnJvYWRjYXN0LXRvd2VyXCJdLCBcImY1MTlcIiwgXCJNODAuMyA0NEM2OS44IDY5LjkgNjQgOTguMiA2NCAxMjhzNS44IDU4LjEgMTYuMyA4NGM2LjYgMTYuNC0xLjMgMzUtMTcuNyA0MS43cy0zNS0xLjMtNDEuNy0xNy43QzcuNCAyMDIuNiAwIDE2Ni4xIDAgMTI4UzcuNCA1My40IDIwLjkgMjBDMjcuNiAzLjYgNDYuMi00LjMgNjIuNiAyLjNTODYuOSAyNy42IDgwLjMgNDR6TTU1NS4xIDIwQzU2OC42IDUzLjQgNTc2IDg5LjkgNTc2IDEyOHMtNy40IDc0LjYtMjAuOSAxMDhjLTYuNiAxNi40LTI1LjMgMjQuMy00MS43IDE3LjdTNDg5LjEgMjI4LjQgNDk1LjcgMjEyYzEwLjUtMjUuOSAxNi4zLTU0LjIgMTYuMy04NHMtNS44LTU4LjEtMTYuMy04NEM0ODkuMSAyNy42IDQ5NyA5IDUxMy40IDIuM3MzNSAxLjMgNDEuNyAxNy43ek0zNTIgMTI4YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEwzMjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2LjZjLTE5LjEtMTEuMS0zMi0zMS43LTMyLTU1LjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHpNMTcwLjYgNzYuOEMxNjMuOCA5Mi40IDE2MCAxMDkuNyAxNjAgMTI4czMuOCAzNS42IDEwLjYgNTEuMmM3LjEgMTYuMi0uMyAzNS4xLTE2LjUgNDIuMXMtMzUuMS0uMy00Mi4xLTE2LjVjLTEwLjMtMjMuNi0xNi00OS42LTE2LTc2LjhzNS43LTUzLjIgMTYtNzYuOGM3LjEtMTYuMiAyNS45LTIzLjYgNDIuMS0xNi41czIzLjYgMjUuOSAxNi41IDQyLjF6TTQ2NCA1MS4yYzEwLjMgMjMuNiAxNiA0OS42IDE2IDc2LjhzLTUuNyA1My4yLTE2IDc2LjhjLTcuMSAxNi4yLTI1LjkgMjMuNi00Mi4xIDE2LjVzLTIzLjYtMjUuOS0xNi41LTQyLjFjNi44LTE1LjYgMTAuNi0zMi45IDEwLjYtNTEuMnMtMy44LTM1LjYtMTAuNi01MS4yYy03LjEtMTYuMiAuMy0zNS4xIDE2LjUtNDIuMXMzNS4xIC4zIDQyLjEgMTYuNXpcIl1cbn07XG5jb25zdCBmYUJyb2FkY2FzdFRvd2VyID0gZmFUb3dlckJyb2FkY2FzdDtcbmNvbnN0IGZhVHJ1Y2tQaWNrdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stcGlja3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzYzXSwgXCJmNjNjXCIsIFwiTTM2OC42IDk2bDc2LjggOTZMMjg4IDE5MmwwLTk2IDgwLjYgMHpNMjI0IDgwbDAgMTEyTDY0IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMy4xIDBjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNmw2Ni4zIDBjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNmwzMy4xIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDguNiAwTDQxOC42IDU2Yy0xMi4xLTE1LjItMzAuNS0yNC01MC0yNEwyNzIgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4em0wIDI4OGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0yODggMGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwelwiXVxufTtcbmNvbnN0IGZhVXBMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWxvbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImxvbmctYXJyb3ctYWx0LXVwXCJdLCBcImYzMGNcIiwgXCJNMzE4IDE3Ny41YzMuOC04LjggMi0xOS00LjYtMjZsLTEzNi0xNDRDMTcyLjkgMi43IDE2Ni42IDAgMTYwIDBzLTEyLjkgMi43LTE3LjQgNy41bC0xMzYgMTQ0Yy02LjYgNy04LjQgMTcuMi00LjYgMjZTMTQuNCAxOTIgMjQgMTkybDcyIDAgMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OCA3MiAwYzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJdXG59O1xuY29uc3QgZmFMb25nQXJyb3dBbHRVcCA9IGZhVXBMb25nO1xuY29uc3QgZmFTdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3AnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5MjA5XSwgXCJmMDRkXCIsIFwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHpcIl1cbn07XG5jb25zdCBmYUNvZGVNZXJnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLW1lcmdlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzg3XCIsIFwiTTgwIDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMzIuNCA5Ny4yYzI4LTEyLjQgNDcuNi00MC41IDQ3LjYtNzMuMmMwLTQ0LjItMzUuOC04MC04MC04MFMwIDM1LjggMCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNDMTkuNyAzNzEgMCAzOTkuMiAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC04Ni42YzI2LjcgMjAuMSA2MCAzMiA5NiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGMtMzIuOCAwLTYxIDE5LjctNzMuMyA0OEwyMDggMjQwYy00OS45IDAtOTEtMzguMS05NS42LTg2Ljh6TTgwIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTM0NCAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVVwbG9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cGxvYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwOTNcIiwgXCJNMjg4IDEwOS4zTDI4OCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNDIuNy03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyODggMTA5LjN6TTY0IDM1MmwxMjggMGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0ek00MzIgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYUh1cnJpY2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdodXJyaWNhbmUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3NTFcIiwgXCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42QzE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41QzMwNyAxMTIuNSAzODQgMTk5IDM4NCAzMDMuNGMwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjRjLTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM2MwLTguNC02LjUtMTUuMy0xNC43LTE2LjVDNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4QTk2IDk2IDAgMSAwIDk2IDI1NmE5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYU1vdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW5kJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTJkXCIsIFwiTTE0NC4xIDE3OS4yQzE3My44IDEyNy43IDIyOC42IDk2IDI4OCA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTQwLjQgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEg2My4zYy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDE0NC4xIDE3OS4yelwiXVxufTtcbmNvbnN0IGZhVG9pbGV0UG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0LXBvcnRhYmxlJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTgzXCIsIFwiTTAgMzJMMCA2NGwzMjAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyek0yNCA5NkwwIDk2bDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMjI0IDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zNjggMC0yNC0yNCAwTDI0IDk2ek0yNTYgMjQwbDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhQ29tcGFjdERpc2MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFjdC1kaXNjJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTkxLCAxMjgxOTIsIDEyODQ0MF0sIFwiZjUxZlwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6TTk2IDI0MGMwLTM1IDE3LjUtNzEuMSA0NS4yLTk4LjhTMjA1IDk2IDI0MCA5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDUuNCAwLTg5LjIgMjIuMy0xMjEuNSA1NC41UzY0IDE5NC42IDY0IDI0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhRmlsZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWFycm93LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtZG93bmxvYWRcIl0sIFwiZjU2ZFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTIxNiAyMzJsMCAxMDIuMSAzMS0zMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNzItNzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMSAzMUwxNjggMjMyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xuY29uc3QgZmFGaWxlRG93bmxvYWQgPSBmYUZpbGVBcnJvd0Rvd247XG5jb25zdCBmYUNhcmF2YW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyYXZhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjhmZlwiLCBcIk0wIDExMkMwIDY3LjggMzUuOCAzMiA4MCAzMmwzMzYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDE2MCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwLTI4OCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDExMnpNMzIwIDM1MmwxMjggMCAwLTk2LTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MnpNOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4em05NiAzMzZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwiXVxufTtcbmNvbnN0IGZhU2hpZWxkQ2F0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1jYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NzJcIiwgXCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIl1cbn07XG5jb25zdCBmYUJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4ODksIFwiemFwXCJdLCBcImYwZTdcIiwgXCJNMzQ5LjQgNDQuNmM1LjktMTMuNyAxLjUtMjkuNy0xMC42LTM4LjVzLTI4LjYtOC0zOS45IDEuOGwtMjU2IDIyNGMtMTAgOC44LTEzLjYgMjIuOS04LjkgMzUuM1M1MC43IDI4OCA2NCAyODhsMTExLjUgMEw5OC42IDQ2Ny40Yy01LjkgMTMuNy0xLjUgMjkuNyAxMC42IDM4LjVzMjguNiA4IDM5LjktMS44bDI1Ni0yMjRjMTAtOC44IDEzLjYtMjIuOSA4LjktMzUuM3MtMTYuNi0yMC43LTMwLTIwLjdsLTExMS41IDBMMzQ5LjQgNDQuNnpcIl1cbn07XG5jb25zdCBmYVphcCA9IGZhQm9sdDtcbmNvbnN0IGZhR2xhc3NXYXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy13YXRlcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRmNFwiLCBcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNUw2Ni40IDY0bDI1MS4zIDBMMzExIDE1Ni41bC0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMGMtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDBjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMEw3MyAxNTYuNXpcIl1cbn07XG5jb25zdCBmYU9pbFdlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2lsLXdlbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzJcIiwgXCJNNTI4LjMgNjEuM2MtMTEuNC00Mi43LTU1LjMtNjgtOTgtNTYuNkw0MTQuOSA4LjhDMzk3LjggMTMuNCAzODcuNyAzMSAzOTIuMyA0OGwyNC41IDkxLjRMMzA4LjUgMTY3LjVsLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzlMOTYgMjIyLjYgOTYgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjY0LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzNy4zIDBMMzQwIDI1Ny41bC02Mi4yIDE2LjFMMzA1LjMgMzUybC02Ni42IDBMMjY1IDI3N2wtNzQuNiAxOS4zTDEzNy4zIDQ0OCA5NiA0NDhsMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxMS4yLTMyIDExMS40IDAgMTEuMiAzMi0xMzMuOCAwelwiXVxufTtcbmNvbnN0IGZhVmF1bHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmF1bHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUyYzVcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAxNiAzMiA2NCAwIDE2LTMyIDIyNCAwIDE2IDMyIDY0IDAgMTYtMzIgMTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgMzIwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTI0MGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6TTQ4MCAyMjEuM0w0ODAgMzM2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTE0LjdjLTE4LjYtNi42LTMyLTI0LjQtMzItNDUuM2MwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM3pcIl1cbn07XG5jb25zdCBmYU1hcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycycsXG4gIGljb246IFs0NDgsIDUxMiwgWzk3OTRdLCBcImYyMjJcIiwgXCJNMjg5LjggNDYuOGMzLjctOSAxMi41LTE0LjggMjIuMi0xNC44bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEwzMjEgMjA0LjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0czc4LjgtMTc2IDE3Ni0xNzZjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw1Mi42LTUyLjZMMjk1IDczYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yek00MDAgODBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0elwiXVxufTtcbmNvbnN0IGZhVG9pbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODcwMV0sIFwiZjdkOFwiLCBcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNEMxMC45IDIxNC41IDAgMjMyLjkgMCAyNTZjMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNWMxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjhjMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjVjMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjZjLTEuOC0xLjUtMy43LTMtNS42LTQuNEw0MTYgNDhsOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDB6TTM4NCAyNTYuM2MwIDEtLjMgMi42LTMuOCA1LjZjLTQuOCA0LjEtMTQgOS0yOS4zIDEzLjRDMzIwLjUgMjg0IDI3Ni4xIDI4OCAyMjQgMjg4cy05Ni41LTQtMTI2LjktMTIuOGMtMTUuMy00LjQtMjQuNS05LjMtMjkuMy0xMy40Yy0zLjUtMy0zLjgtNC42LTMuOC01LjZsMC0uM2MwIDAgMC0uMSAwLS4xYzAtMSAwLTIuNSAzLjgtNS44YzQuOC00LjEgMTQtOSAyOS4zLTEzLjRDMTI3LjUgMjI4IDE3MS45IDIyNCAyMjQgMjI0czk2LjUgNCAxMjYuOSAxMi44YzE1LjMgNC40IDI0LjUgOS4zIDI5LjMgMTMuNGMzLjggMy4yIDMuOCA0LjggMy44IDUuOGMwIDAgMCAuMSAwIC4xbDAgLjN6TTMyOC4yIDM4NGwtLjIgLjUgMC0uNSAuMiAwek0xMTIgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBsYW5lQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTU3XCIsIFwiTTI1NiAwYy0zNSAwLTY0IDU5LjUtNjQgOTMuN2wwIDg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45bDAgNjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOGwwIDQyYzAgNy44IDYuMyAxNCAxNCAxNGMxLjMgMCAyLjYtLjIgMy45LS41TDI1NiA0ODBsMTEwLjEgMzEuNWMxLjMgLjQgMi42IC41IDMuOSAuNWM2IDAgMTEuMS0zLjcgMTMuMS05QzM0NC41IDQ3MC43IDMyMCA0MjIuMiAzMjAgMzY4YzAtNjAuNiAzMC42LTExNCA3Ny4xLTE0NS42TDMyMCAxNzguM2wwLTg0LjZDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhWWVuU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5ZW4tc2lnbicsXG4gIGljb246IFszMjAsIDUxMiwgWzE2NSwgXCJjbnlcIiwgXCJqcHlcIiwgXCJybWJcIiwgXCJ5ZW5cIl0sIFwiZjE1N1wiLCBcIk01OC42IDQ2LjNDNDguOCAzMS41IDI5IDI3LjYgMTQuMiAzNy40Uy00LjQgNjcgNS40IDgxLjhMMTAwLjIgMjI0IDQ4IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwIDAgMzItODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC0zMiA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi4yIDBMMzE0LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMTYwIDE5OC4zIDU4LjYgNDYuM3pcIl1cbn07XG5jb25zdCBmYUNueSA9IGZhWWVuU2lnbjtcbmNvbnN0IGZhSnB5ID0gZmFZZW5TaWduO1xuY29uc3QgZmFSbWIgPSBmYVllblNpZ247XG5jb25zdCBmYVllbiA9IGZhWWVuU2lnbjtcbmNvbnN0IGZhUnVibGVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1YmxlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4MzgxLCBcInJvdWJsZVwiLCBcInJ1YlwiLCBcInJ1YmxlXCJdLCBcImYxNThcIiwgXCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0bDAgMTkyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0zMiAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NEw5NiAzMnpNMjQwIDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6XCJdXG59O1xuY29uc3QgZmFSb3VibGUgPSBmYVJ1YmxlU2lnbjtcbmNvbnN0IGZhUnViID0gZmFSdWJsZVNpZ247XG5jb25zdCBmYVJ1YmxlID0gZmFSdWJsZVNpZ247XG5jb25zdCBmYVN1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzI4XSwgXCJmMTg1XCIsIFwiTTM2MS41IDEuMmM1IDIuMSA4LjYgNi42IDkuNiAxMS45TDM5MSAxMjFsMTA3LjkgMTkuOGM1LjMgMSA5LjggNC42IDExLjkgOS42czEuNSAxMC43LTEuNiAxNS4yTDQ0Ni45IDI1Nmw2Mi4zIDkwLjNjMy4xIDQuNSAzLjcgMTAuMiAxLjYgMTUuMnMtNi42IDguNi0xMS45IDkuNkwzOTEgMzkxIDM3MS4xIDQ5OC45Yy0xIDUuMy00LjYgOS44LTkuNiAxMS45cy0xMC43IDEuNS0xNS4yLTEuNkwyNTYgNDQ2LjlsLTkwLjMgNjIuM2MtNC41IDMuMS0xMC4yIDMuNy0xNS4yIDEuNnMtOC42LTYuNi05LjYtMTEuOUwxMjEgMzkxIDEzLjEgMzcxLjFjLTUuMy0xLTkuOC00LjYtMTEuOS05LjZzLTEuNS0xMC43IDEuNi0xNS4yTDY1LjEgMjU2IDIuOCAxNjUuN2MtMy4xLTQuNS0zLjctMTAuMi0xLjYtMTUuMnM2LjYtOC42IDExLjktOS42TDEyMSAxMjEgMTQwLjkgMTMuMWMxLTUuMyA0LjYtOS44IDkuNi0xMS45czEwLjctMS41IDE1LjIgMS42TDI1NiA2NS4xIDM0Ni4zIDIuOGM0LjUtMy4xIDEwLjItMy43IDE1LjItMS42ek0xNjAgMjU2YTk2IDk2IDAgMSAxIDE5MiAwIDk2IDk2IDAgMSAxIC0xOTIgMHptMjI0IDBhMTI4IDEyOCAwIDEgMCAtMjU2IDAgMTI4IDEyOCAwIDEgMCAyNTYgMHpcIl1cbn07XG5jb25zdCBmYUd1aXRhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndWl0YXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YTZcIiwgXCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjZjLTExIDExLTE4IDI0LjYtMjEuNCAzOS42Yy0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42Yy0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42Qy0xNiAzMjguNC03LjYgNDA5LjQgNDcuNSA0NjQuNXMxMzYuMSA2My41IDE4MC45IDE4LjdjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjNjLjktMTcgMTUtMzIuMyAzMS42LTM2LjFjMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjRjMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFGYWNlTGF1Z2hXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2gtd2lua1wiXSwgXCJmNTljXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek05Ni44IDMxNC4xYy0zLjgtMTMuNyA3LjQtMjYuMSAyMS42LTI2LjFsMjc1LjIgMGMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45ek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTU2LjQgMjUuNmMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yYy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMHpcIl1cbn07XG5jb25zdCBmYUxhdWdoV2luayA9IGZhRmFjZUxhdWdoV2luaztcbmNvbnN0IGZhSG9yc2VIZWFkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvcnNlLWhlYWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3YWJcIiwgXCJNNjQgNDY0bDAtMTQ3LjFjMC0xMDguNCA2OC4zLTIwNS4xIDE3MC41LTI0MS4zTDQwNC4yIDE1LjVDNDI1LjYgNy45IDQ0OCAyMy44IDQ0OCA0Ni40YzAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDQwMCA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41Yy0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRjMCAwIDAgMC0uMSAwYzAgMCAwIDAgMCAwYy02LjMgMC0xMi41LS41LTE4LjYtMS41Yy0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2MwIDAgMCAwIDAgMGMtMjguOS03LjgtNTMuMS0yNi44LTY3LjgtNTIuMmMtNC40LTcuNi0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjRjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMTEyIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTM5MiAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbmNvbnN0IGZhQm9yZUhvbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZS1ob2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGMzXCIsIFwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI2NC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0yMy43LTEyLjktNDQuNC0zMi01NS40TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDggMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTgwIDB6XCJdXG59O1xuY29uc3QgZmFJbmR1c3RyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbmR1c3RyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI3NVwiLCBcIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRsMCAyNDAgMCA0OCAwIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4IDAtMTUxLjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFMMzUyIDIxNS40bDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxNjAgMjE1LjQgMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNDY2LCBcImFycm93LWFsdC1jaXJjbGUtZG93blwiXSwgXCJmMzU4XCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMjQ0LjcgMzk1LjNsLTExMi0xMTJjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTExMiAxMTJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dBbHRDaXJjbGVEb3duID0gZmFDaXJjbGVEb3duO1xuY29uc3QgZmFBcnJvd3NUdXJuVG9Eb3RzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10dXJuLXRvLWRvdHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YzFcIiwgXCJNMjQ5LjQgMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI2OS4zIDk2IDQxNiA5NmM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTQ2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptMTMuMyAyNTZsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyA0MTYgOTYgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NmwxNDYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMHpNMzg0IDM4NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTY0IDE5MkE2NCA2NCAwIDEgMSA2NCA2NGE2NCA2NCAwIDEgMSAwIDEyOHpcIl1cbn07XG5jb25zdCBmYUZsb3JpblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxvcmluLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxODRcIiwgXCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMEw5OC45IDM5Ni4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0Rvd25TaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1zaG9ydC13aWRlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFtb3VudC1kZXNjXCIsIFwic29ydC1hbW91bnQtZG93bi1hbHRcIl0sIFwiZjg4NFwiLCBcIk0xNTEuNiA0NjkuNkMxNDUuNSA0NzYuMiAxMzcgNDgwIDEyOCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDk2IDM2NS43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTb3J0QW1vdW50RGVzYyA9IGZhQXJyb3dEb3duU2hvcnRXaWRlO1xuY29uc3QgZmFTb3J0QW1vdW50RG93bkFsdCA9IGZhQXJyb3dEb3duU2hvcnRXaWRlO1xuY29uc3QgZmFMZXNzVGhhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZXNzLXRoYW4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs2Mjc3NF0sIFwiM2NcIiwgXCJNMzgwLjYgODEuN2M3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45TDEwMy42IDI1NiAzNjYuMyAzODcuNGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zbC0zMjAtMTYwQzYuOCAyNzkuMiAwIDI2OC4xIDAgMjU2czYuOC0yMy4yIDE3LjctMjguNmwzMjAtMTYwYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtZG93bicsXG4gIGljb246IFs0NDgsIDUxMiwgWzg5NjRdLCBcImYxMDdcIiwgXCJNMjAxLjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzA2LjcgODYuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNhclR1bm5lbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItdHVubmVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGRlXCIsIFwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTJjMC0yMC44IDExLjMtMzguOSAyOC4xLTQ4LjZsMjEtNjQuN2M3LjUtMjMuMSAyOS0zOC43IDUzLjMtMzguN2wxMTUuMiAwYzI0LjMgMCA0NS44IDE1LjYgNTMuMyAzOC43bDIxIDY0LjdjMTYuOCA5LjcgMjguMiAyNy44IDI4LjIgNDguNmwwIDExMmMwIDkuNi00LjIgMTguMS0xMC44IDI0bDQyLjggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMHpNMzYyLjggNTEyYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtNDAtMTkyIDAgMCA0MGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDIxMy43IDB6TTE5MC44IDI3Ny41TDE3NyAzMjBsMTU4IDAtMTMuOC00Mi41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNWwtMTE1LjIgMGMtMy41IDAtNi41IDIuMi03LjYgNS41ek0xNjggNDA4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjAwLTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xuY29uc3QgZmFIZWFkU2lkZUNvdWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWQtc2lkZS1jb3VnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MVwiLCBcIk0wIDIyNC4yQzAgMTAwLjYgMTAwLjIgMCAyMjQgMGwyNCAwYzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNi4yIDcuOCA5LjYgMTcuNCA5LjYgMjcuNGMwIDI0LjItMTkuNiA0My44LTQzLjggNDMuOEw0NDggMzIwczAgMCAwIDBsMCAzMkwzMzkuMiAzNjUuNmMtMTEgMS40LTE5LjIgMTAuNy0xOS4yIDIxLjhjMCAxMS42IDkgMjEuMiAyMC42IDIxLjlMNDQ4IDQxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04MCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDAgMHMwIDAgMCAwTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03Mi43YzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6bTM1Mi0uMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQ2NCAzODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTUyLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNNTkyIDQ4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek01NTIgMzEyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNTUyIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFHcmlwTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JpcC1saW5lcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdhNFwiLCBcIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6XCJdXG59O1xuY29uc3QgZmFUaHVtYnNEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1icy1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MDc4LCA2MTU3Nl0sIFwiZjE2NVwiLCBcIk0zMTMuNCA0NzkuMWMyNi01LjIgNDIuOS0zMC41IDM3LjctNTYuNWwtMi4zLTExLjRjLTUuMy0yNi43LTE1LjEtNTIuMS0yOC44LTc1LjJsMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0xOC41LTEwLjUtMzQuNi0yNS45LTQyLjZDNDk3IDIzNi42IDUwNCAyMjMuMSA1MDQgMjA4YzAtMjMuNC0xNi44LTQyLjktMzguOS00Ny4xYzQuNC03LjMgNi45LTE1LjggNi45LTI0LjljMC0yMS4zLTEzLjktMzkuNC0zMy4xLTQ1LjZjLjctMy4zIDEuMS02LjggMS4xLTEwLjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk3LjUgMGMtMTkgMC0zNy41IDUuNi01My4zIDE2LjFMMjAyLjcgNzMuOEMxNzYgOTEuNiAxNjAgMTIxLjYgMTYwIDE1My43bDAgMzguMyAwIDQ4IDAgMjQuOWMwIDI5LjIgMTMuMyA1Ni43IDM2IDc1bDcuNCA1LjljMjYuNSAyMS4yIDQ0LjYgNTEgNTEuMiA4NC4ybDIuMyAxMS40YzUuMiAyNiAzMC41IDQyLjkgNTYuNSAzNy43ek0zMiAzODRsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhMMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFVc2VyTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MDJcIiwgXCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM2Mi44IDBjLTUuNC05LjQtOC42LTIwLjMtOC42LTMybDAtMTI4YzAtMi4xIC4xLTQuMiAuMy02LjNjLTMxLTI2LTcxLTQxLjctMTE0LjYtNDEuN2wtOTEuNCAwek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0LWxvbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxvbmctYXJyb3ctcmlnaHRcIl0sIFwiZjE3OFwiLCBcIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNzAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93UmlnaHQgPSBmYUFycm93UmlnaHRMb25nO1xuY29uc3QgZmFBbmNob3JDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3ItY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFjXCIsIFwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBMMjI0IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjA4LTQ4IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03IDAgNi4xYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDgwIDAgODAgMGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJMMzIwIDQ0OGwwLTgwIDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFFbGxpcHNpcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGxpcHNpcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZWxsaXBzaXMtaFwiXSwgXCJmMTQxXCIsIFwiTTggMjU2YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDggMjU2em0xNjAgMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIxNi01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpcIl1cbn07XG5jb25zdCBmYUVsbGlwc2lzSCA9IGZhRWxsaXBzaXM7XG5jb25zdCBmYUNoZXNzUGF3biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1wYXduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbOTgyM10sIFwiZjQ0M1wiLCBcIk0yMTUuNSAyMjRjMjkuMi0xOC40IDQ4LjUtNTAuOSA0OC41LTg4YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0UzU2IDc4LjYgNTYgMTM2YzAgMzcuMSAxOS40IDY5LjYgNDguNSA4OEw5NiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyYzAgMTYuNSAxMi41IDMwIDI4LjUgMzEuOEw4MCA0MDBsMTYwIDBMMjI3LjUgMjg3LjhjMTYtMS44IDI4LjUtMTUuMyAyOC41LTMxLjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTguNSAwek0yMi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMTYgNTAxLjkgMjYuMSA1MTIgMzguNiA1MTJsMjQyLjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDI1NiA0MzIgNjQgNDMyIDIyLjYgNDczLjR6XCJdXG59O1xuY29uc3QgZmFLaXRNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tpdC1tZWRpY2FsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJmaXJzdC1haWRcIl0sIFwiZjQ3OVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDBMOTYgMzIgNjQgMzJ6bTY0IDBsMCA0NDggMzIwIDAgMC00NDhMMTI4IDMyek01MTIgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgNDQ4IDMyIDB6TTI1NiAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFGaXJzdEFpZCA9IGZhS2l0TWVkaWNhbDtcbmNvbnN0IGZhUGVyc29uVGhyb3VnaFdpbmRvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tdGhyb3VnaC13aW5kb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1YTlcIiwgXCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNEMxNjcuNiAxODYuNSAxMjggMjQ1IDEyOCAzMTAuMmwwIDczLjhzMCAwIDAgMGwtNjQgMEw2NCA2NHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNGM0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC00NS44IDAgNDIuNyA2NEw1OTIgNDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRMMzEwLjUgMzM2bDc0LjYgMCA0MCA0OHptLTE1OS41IDBMMTkyIDM4NHMwIDAgMCAwbDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJdXG59O1xuY29uc3QgZmFUb29sYm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb2xib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MjBdLCBcImY1NTJcIiwgXCJNMTc2IDg4bDAgNDAgMTYwIDAgMC00MGMwLTQuNC0zLjYtOC04LThMMTg0IDgwYy00LjQgMC04IDMuNi04IDh6bS00OCA0MGwwLTQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDE0NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDAgMjguMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFsNTEuOSA1MS45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45bDAgOTIuMS0xMjggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyTDAgMzIwbDAtOTIuMWMwLTEyLjcgNS4xLTI0LjkgMTQuMS0zMy45bDUxLjktNTEuOWM5LTkgMjEuMi0xNC4xIDMzLjktMTQuMWwyOC4xIDB6TTAgNDE2bDAtNjQgMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzSG9sZGluZ0NpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1ob2xkaW5nLWNpcmNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRmYlwiLCBcIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2QTEyOCAxMjggMCAxIDEgMzIwIDB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDAgMCA4MCAwIDQwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xYzEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDMyIDMyIDE1LjIgMTUuMmMwIDAgMCAwIDAgMGwyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAyMjRsMC02NCAwLTU2QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDU2IDAgNjQgMCAxMDEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuM2MwIDAgMCAwIDAgMGwxNS4yLTE1LjIgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzItMTUuMiAxNS4yYy0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOGM5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTQwLjIgMC04MCAwLTQwYzAtMjIuMSAxNy45LTQwIDQwLTQwelwiXVxufTtcbmNvbnN0IGZhQnVnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1ZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4OFwiLCBcIk0yNTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNmMwLTUzIDQzLTk2IDk2LTk2ek00MS40IDEwNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0Yy43IC43IDEuMyAxLjQgMS45IDIuMWMxNC4yLTcuMyAzMC40LTExLjQgNDcuNS0xMS40bDExMiAwYzE3LjEgMCAzMy4yIDQuMSA0Ny41IDExLjRjLjYtLjcgMS4yLTEuNCAxLjktMi4xbDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy0uNyAuNy0xLjQgMS4zLTIuMSAxLjljNi4yIDEyIDEwLjEgMjUuMyAxMS4xIDM5LjVsNjQuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYzAgMjQuNi01LjUgNDcuOC0xNS40IDY4LjZjMi4yIDEuMyA0LjIgMi45IDYgNC44bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC02My4xLTYzLjFjLTI0LjUgMjEuOC01NS44IDM2LjItOTAuMyAzOS42TDI3MiAyNDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMzkuMmMtMzQuNS0zLjQtNjUuOC0xNy44LTkwLjMtMzkuNkw4Ni42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2NC02NGMxLjktMS45IDMuOS0zLjQgNi00LjhDMTAxLjUgMzY3LjggOTYgMzQ0LjYgOTYgMzIwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjMgMGMxLjEtMTQuMSA1LTI3LjUgMTEuMS0zOS41Yy0uNy0uNi0xLjQtMS4yLTIuMS0xLjlsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYUNyZWRpdENhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JlZGl0LWNhcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgxNzksIDYyMDgzLCBcImNyZWRpdC1jYXJkLWFsdFwiXSwgXCJmMDlkXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCAzMiA1NzYgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01NzYgMjI0TDAgMjI0IDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyek0xMTIgMzUybDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTExMiAxNmMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFDcmVkaXRDYXJkQWx0ID0gZmFDcmVkaXRDYXJkO1xuY29uc3QgZmFDYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NjY0LCBcImF1dG9tb2JpbGVcIl0sIFwiZjFiOVwiLCBcIk0xMzUuMiAxMTcuNEwxMDkuMSAxOTJsMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE0NCAwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4TDk2IDQwMGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4TDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMjg4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFBdXRvbW9iaWxlID0gZmFDYXI7XG5jb25zdCBmYUhhbmRIb2xkaW5nSGFuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGFuZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmN1wiLCBcIk03LjggMjA3LjdjLTEzLjEtMTcuOC05LjMtNDIuOCA4LjUtNTUuOUwxNDIuOSA1OC41QzE2Ni4yIDQxLjMgMTk0LjUgMzIgMjIzLjUgMzJMMzg0IDMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTM2LjggMC00NC45IDM2Yy0yMi43IDE4LjItNTAuOSAyOC04MCAyOEwzMDQgMjI0bC0xNiAwLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xMjAuNiAwTDYzLjcgMjE2LjJjLTE3LjggMTMuMS00Mi44IDkuMy01NS45LTguNXpNMzgyLjQgMTYwYzAgMCAwIDAgMCAwbC45IDBjLS4zIDAtLjYgMC0uOSAwek01NjguMiAzMDQuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDUzLjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDE5MiA0ODAgMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM2LjggMCA0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4bDc4LjMgMCAxNiAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDAtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjAuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzNTJjMCAwIDAgMCAwIDBsLS45IDBjLjMgMCAuNiAwIC45IDB6XCJdXG59O1xuY29uc3QgZmFCb29rT3BlblJlYWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLW9wZW4tcmVhZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJib29rLXJlYWRlclwiXSwgXCJmNWRhXCIsIFwiTTE2MCA5NmE5NiA5NiAwIDEgMSAxOTIgMEE5NiA5NiAwIDEgMSAxNjAgOTZ6bTgwIDE1MmwwIDI2NC00OC40LTI0LjJjLTIwLjktMTAuNC00My41LTE3LTY2LjgtMTkuM2wtOTYtOS42QzEyLjUgNDU3LjIgMCA0NDMuNSAwIDQyN0wwIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMC4zIDBjNjMuNiAwIDEyNS42IDE5LjYgMTc3LjcgNTZ6bTMyIDI2NGwwLTI2NGM1Mi4xLTM2LjQgMTE0LjEtNTYgMTc3LjctNTZsMzAuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjAzYzAgMTYuNC0xMi41IDMwLjItMjguOCAzMS44bC05NiA5LjZjLTIzLjIgMi4zLTQ1LjkgOC45LTY2LjggMTkuM0wyNzIgNTEyelwiXVxufTtcbmNvbnN0IGZhQm9va1JlYWRlciA9IGZhQm9va09wZW5SZWFkZXI7XG5jb25zdCBmYU1vdW50YWluU3VuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW50YWluLXN1bicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyZlwiLCBcIk01NjAgMTYwQTgwIDgwIDAgMSAwIDU2MCAwYTgwIDgwIDAgMSAwIDAgMTYwek01NS45IDUxMmwzMjUuMiAwIDc1IDAgMTIyLjggMGMzMy44IDAgNjEuMS0yNy40IDYxLjEtNjEuMWMwLTExLjItMy4xLTIyLjItOC45LTMxLjhsLTEzMi0yMTYuM0M0OTUgMTk2LjEgNDg3LjggMTkyIDQ4MCAxOTJzLTE1IDQuMS0xOS4xIDEwLjdsLTQ4LjIgNzlMMjg2LjggODFjLTYuNi0xMC42LTE4LjMtMTctMzAuOC0xN3MtMjQuMSA2LjQtMzAuOCAxN0w4LjYgNDI2LjRDMyA0MzUuMyAwIDQ0NS42IDAgNDU2LjFDMCA0ODcgMjUgNTEyIDU1LjkgNTEyelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YmFcIiwgXCJNMzIgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NHptMjE0LjYgNzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMDUuMyAyMjRsMjI5LjUgMC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MzQuNyAyODhsLTIyOS41IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6TTY0MCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhRGljZUQyMCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLWQyMCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZjZlwiLCBcIk00OC43IDEyNS44bDUzLjIgMzEuOWM3LjggNC43IDE3LjggMiAyMi4yLTUuOUwyMDEuNiAxMi4xYzMtNS40LS45LTEyLjEtNy4xLTEyLjFjLTEuNiAwLTMuMiAuNS00LjYgMS40TDQ3LjkgOTguOGMtOS42IDYuNi05LjIgMjAuOSAuOCAyNi45ek0xNiAxNzEuN2wwIDEyMy41YzAgOCAxMC40IDExIDE0LjcgNC40bDYwLTkyYzUtNy42IDIuNi0xNy44LTUuMi0yMi41TDQwLjIgMTU4QzI5LjYgMTUxLjYgMTYgMTU5LjMgMTYgMTcxLjd6TTMxMC40IDEyLjFsNzcuNiAxMzkuNmM0LjQgNy45IDE0LjUgMTAuNiAyMi4yIDUuOWw1My4yLTMxLjljMTAtNiAxMC40LTIwLjMgLjgtMjYuOUwzMjIuMSAxLjRjLTEuNC0uOS0zLTEuNC00LjYtMS40Yy02LjIgMC0xMC4xIDYuNy03LjEgMTIuMXpNNDk2IDE3MS43YzAtMTIuNC0xMy42LTIwLjEtMjQuMi0xMy43bC00NS4zIDI3LjJjLTcuOCA0LjctMTAuMSAxNC45LTUuMiAyMi41bDYwIDkyYzQuMyA2LjcgMTQuNyAzLjYgMTQuNy00LjRsMC0xMjMuNXptLTQ5LjMgMjQ2TDI4Ni4xIDQzNi42Yy04LjEgLjktMTQuMSA3LjgtMTQuMSAxNS45bDAgNTIuOGMwIDMuNyAzIDYuOCA2LjggNi44Yy44IDAgMS42LS4xIDIuNC0uNGwxNzIuNy02NGM2LjEtMi4yIDEwLjEtOCAxMC4xLTE0LjVjMC05LjMtOC4xLTE2LjUtMTcuMy0xNS40ek0yMzMuMiA1MTJjMy43IDAgNi44LTMgNi44LTYuOGwwLTUyLjZjMC04LjEtNi4xLTE0LjktMTQuMS0xNS45bC0xNjAuNi0xOWMtOS4yLTEuMS0xNy4zIDYuMS0xNy4zIDE1LjRjMCA2LjUgNCAxMi4zIDEwLjEgMTQuNWwxNzIuNyA2NGMuOCAuMyAxLjYgLjQgMi40IC40ek00MS43IDM4Mi45bDE3MC45IDIwLjJjNy44IC45IDEzLjQtNy41IDkuNS0xNC4zbC04NS43LTE1MGMtNS45LTEwLjQtMjAuNy0xMC44LTI3LjMtLjhMMzAuMiAzNTguMmMtNi41IDkuOS0uMyAyMy4zIDExLjUgMjQuN3ptNDM5LjYtMjQuOEw0MDIuOSAyMzguMWMtNi41LTEwLTIxLjQtOS42LTI3LjMgLjhMMjkwLjIgMzg4LjVjLTMuOSA2LjggMS42IDE1LjIgOS41IDE0LjNsMTcwLjEtMjBjMTEuOC0xLjQgMTgtMTQuNyAxMS41LTI0LjZ6bS0yMTYuOSAxMWw3OC40LTEzNy4yYzYuMS0xMC43LTEuNi0yMy45LTEzLjktMjMuOWwtMTQ1LjcgMGMtMTIuMyAwLTIwIDEzLjMtMTMuOSAyMy45bDc4LjQgMTM3LjJjMy43IDYuNCAxMyA2LjQgMTYuNyAwek0xNzQuNCAxNzZsMTYzLjIgMGMxMi4yIDAgMTkuOS0xMy4xIDE0LTIzLjhsLTgwLTE0NGMtMi44LTUuMS04LjItOC4yLTE0LTguMmwtMy4yIDBjLTUuOCAwLTExLjIgMy4yLTE0IDguMmwtODAgMTQ0Yy01LjkgMTAuNyAxLjggMjMuOCAxNCAyMy44elwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWRyb3BsZXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OGNcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzY4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTg5LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxOC43IDAgMzIgMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTI4IDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6TTQxNiAyNTZsMTI4IDAgMC0xOC43TDQ2Ni43IDE2MCA0MTYgMTYwbDAgOTZ6TTE2MCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMjA4IDI3MmMzOS44IDAgNzItMjkuNiA3Mi02NmMwLTI3LTM5LjQtODIuOS01OS45LTExMC4zYy02LjEtOC4yLTE4LjEtOC4yLTI0LjIgMEMxNzUuNCAxMjMgMTM2IDE3OSAxMzYgMjA2YzAgMzYuNSAzMi4yIDY2IDcyIDY2elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNWExXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDMyIDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDA5LjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0MzIgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0NTQuNiAzNjhsMzYuNy0zNi43elwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWFycm93LXVwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS11cFwiXSwgXCJlMDQwXCIsIFwiTTEyOCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDE2NC41YzAgMTcuMyA3LjEgMzEuOSAxNS4zIDQyLjVDMjQ5LjggMzMyLjYgMjU2IDM0OS41IDI1NiAzNjhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0xOC41IDYuMi0zNS40IDE2LjctNDguOWM4LjItMTAuNiAxNS4zLTI1LjIgMTUuMy00Mi41TDEyOCAxMTJ6TTE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJsMCAxNjQuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEM0My4yIDMwNC4yIDMyIDMzNC44IDMyIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNkwyODggMTEyQzI4OCA1MC4xIDIzNy45IDAgMTc2IDB6bTAgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM0wxOTIgMTEyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjEwLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDgwIDE2MGwzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMzIgMCAwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4elwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVVcCA9IGZhVGVtcGVyYXR1cmVBcnJvd1VwO1xuY29uc3QgZmFNZWRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZWRhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk0MV0sIFwiZjVhMlwiLCBcIk00LjEgMzguMkMxLjQgMzQuMiAwIDI5LjQgMCAyNC42QzAgMTEgMTEgMCAyNC42IDBMMTMzLjkgMGMxMS4yIDAgMjEuNyA1LjkgMjcuNCAxNS41bDY4LjUgMTE0LjFjLTQ4LjIgNi4xLTkxLjMgMjguNi0xMjMuNCA2MS45TDQuMSAzOC4yem01MDMuNyAwTDQwNS42IDE5MS41Yy0zMi4xLTMzLjMtNzUuMi01NS44LTEyMy40LTYxLjlMMzUwLjcgMTUuNUMzNTYuNSA1LjkgMzY2LjkgMCAzNzguMSAwTDQ4Ny40IDBDNTAxIDAgNTEyIDExIDUxMiAyNC42YzAgNC44LTEuNCA5LjYtNC4xIDEzLjZ6TTgwIDMzNmExNzYgMTc2IDAgMSAxIDM1MiAwQTE3NiAxNzYgMCAxIDEgODAgMzM2em0xODQuNC05NC45Yy0zLjQtNy0xMy4zLTctMTYuOCAwbC0yMi40IDQ1LjRjLTEuNCAyLjgtNCA0LjctNyA1LjFMMTY4IDI5OC45Yy03LjcgMS4xLTEwLjcgMTAuNS01LjIgMTZsMzYuMyAzNS40YzIuMiAyLjIgMy4yIDUuMiAyLjcgOC4zbC04LjYgNDkuOWMtMS4zIDcuNiA2LjcgMTMuNSAxMy42IDkuOWw0NC44LTIzLjZjMi43LTEuNCA2LTEuNCA4LjcgMGw0NC44IDIzLjZjNi45IDMuNiAxNC45LTIuMiAxMy42LTkuOWwtOC42LTQ5LjljLS41LTMgLjUtNi4xIDIuNy04LjNsMzYuMy0zNS40YzUuNi01LjQgMi41LTE0LjgtNS4yLTE2bC01MC4xLTcuM2MtMy0uNC01LjctMi40LTctNS4xbC0yMi40LTQ1LjR6XCJdXG59O1xuY29uc3QgZmFCZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzE2XSwgXCJmMjM2XCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2IDIyNCAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0yMjQgMC0zMiAwTDY0IDQxNmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTE0NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVNxdWFyZUggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImgtc3F1YXJlXCJdLCBcImYwZmRcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzM2IDE1MmwwIDEwNCAwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgwLTEyOCAwIDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwIDEyOCAwIDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUhTcXVhcmUgPSBmYVNxdWFyZUg7XG5jb25zdCBmYVBvZGNhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9kY2FzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJjZVwiLCBcIk0zMTkuNCAzNzJjNDguNS0zMS4zIDgwLjYtODUuOSA4MC42LTE0OGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRjMCA2Mi4xIDMyLjEgMTE2LjYgODAuNiAxNDhjMS4yIDE3LjMgNCAzOCA3LjIgNTcuMWwuMiAxQzU2IDM5NS44IDAgMzE2LjUgMCAyMjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgOTIuNS01NiAxNzEuOS0xMzYgMjA2LjFsLjItMS4xYzMuMS0xOS4yIDYtMzkuOCA3LjItNTd6bS0yLjMtMzguMWMtMS42LTUuNy0zLjktMTEuMS03LTE2LjJjLTUuOC05LjctMTMuNS0xNy0yMS45LTIyLjRjMTkuNS0xNy42IDMxLjgtNDMgMzEuOC03MS4zYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjguMyAxMi4zIDUzLjggMzEuOCA3MS4zYy04LjQgNS40LTE2LjEgMTIuNy0yMS45IDIyLjRjLTMuMSA1LjEtNS40IDEwLjUtNyAxNi4yQzk5LjggMzA3LjUgODAgMjY4IDgwIDIyNGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NHMxNDQgNjQuNSAxNDQgMTQ0YzAgNDQtMTkuOCA4My41LTUwLjkgMTA5Ljl6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44YzAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45Yy01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOGMwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTQ0YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVGdWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWZ1bGwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInRlbXBlcmF0dXJlLTRcIiwgXCJ0aGVybW9tZXRlci00XCIsIFwidGhlcm1vbWV0ZXItZnVsbFwiXSwgXCJmMmM3XCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNMMTQ0IDExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMjEwLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmU0ID0gZmFUZW1wZXJhdHVyZUZ1bGw7XG5jb25zdCBmYVRoZXJtb21ldGVyNCA9IGZhVGVtcGVyYXR1cmVGdWxsO1xuY29uc3QgZmFUaGVybW9tZXRlckZ1bGwgPSBmYVRlbXBlcmF0dXJlRnVsbDtcbmNvbnN0IGZhQmVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4Mjc2LCA2MTYwMl0sIFwiZjBmM1wiLCBcIk0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOS4yQzExOSA2NiA2NCAxMzAuNiA2NCAyMDhsMCAxOC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzE5LjQgNDE2IDMyIDQxNmwzODQgMGMxMi42IDAgMjQtNy40IDI5LjItMTguOXMzLjEtMjUtNS4zLTM0LjRsLTcuNC04LjNDNDAxLjMgMzE5LjIgMzg0IDI3My45IDM4NCAyMjYuOGwwLTE4LjhjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhMMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem00NS4zIDQ5My4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsLTY0IDAtNjQgMGMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM3MyOC4zIDE4LjcgNDUuMyAxOC43czMzLjMtNi43IDQ1LjMtMTguN3pcIl1cbn07XG5jb25zdCBmYVN1cGVyc2NyaXB0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1cGVyc2NyaXB0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTJiXCIsIFwiTTQ4MCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlDMzkzIDczLjUgNDA0LjMgODAgNDE2IDgwbDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4TDQ3LjMgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMTc2IDMxMS44bDg1LjggMTIyLjZjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDBMMjE1LjEgMjU2bDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwxNzYgMjAwLjIgOTAuMiA3Ny42Qzg0LjIgNjkuMSA3NC40IDY0IDY0IDY0TDMyIDY0elwiXVxufTtcbmNvbnN0IGZhUGx1Z0NpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTYwXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNDU0LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQzMiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQwOS40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDMyIDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFTdGFyT2ZMaWZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXItb2YtbGlmZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjYyMVwiLCBcIk0yMDggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0MC45IDEyMi03MC40YzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2wxNiAyNy43YzguOCAxNS4zIDMuNiAzNC45LTExLjcgNDMuN0wzNTIgMjU2bDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdMMzA0IDMzOS4xIDMwNCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjlMODYgNDA5LjZjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43TDE2MCAyNTYgMzggMTg1LjZjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN0M1MS4xIDk4LjggNzAuNyA5My42IDg2IDEwMi40bDEyMiA3MC40TDIwOCAzMnpcIl1cbn07XG5jb25zdCBmYVBob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzZGRcIiwgXCJNMjI4LjkgMjQuNmMtNy43LTE4LjYtMjgtMjguNS00Ny40LTIzLjJsLTg4IDI0Qzc2LjEgMzAuMiA2NCA0NiA2NCA2NGMwIDEwNy40IDM3LjggMjA2IDEwMC44IDI4My4xTDkuMiA0NjkuMWMtMTAuNCA4LjItMTIuMyAyMy4zLTQuMSAzMy43czIzLjMgMTIuMyAzMy43IDQuMWw1OTItNDY0YzEwLjQtOC4yIDEyLjMtMjMuMyA0LjEtMzMuN3MtMjMuMy0xMi4zLTMzLjctNC4xTDI1MyAyNzhjLTE3LjgtMjEuNS0zMi45LTQ1LjItNDUtNzAuN0wyNTcuMyAxNjdjMTMuNy0xMS4yIDE4LjQtMzAgMTEuNi00Ni4zbC00MC05NnptOTYuOCAzMTlsLTkxLjMgNzJDMzEwLjcgNDc2IDQwNy4xIDUxMiA1MTIgNTEyYzE4IDAgMzMuOC0xMi4xIDM4LjYtMjkuNWwyNC04OGM1LjMtMTkuNC00LjYtMzkuNy0yMy4yLTQ3LjRsLTk2LTQwYy0xNi4zLTYuOC0zNS4yLTIuMS00Ni4zIDExLjZMMzY4LjcgMzY4Yy0xNS03LjEtMjkuMy0xNS4yLTQzLTI0LjN6XCJdXG59O1xuY29uc3QgZmFQYWludFJvbGxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludC1yb2xsZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YWFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCAxOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDAtOTAuNWMzNy4zIDEzLjIgNjQgNDguNyA2NCA5MC41bDAgMzJjMCA1My00MyA5Ni05NiA5NmwtMTQ0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOHpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZUFuZ2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzaGFrZS1hbmdsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiaGFuZHMtaGVscGluZ1wiXSwgXCJmNGM0XCIsIFwiTTU0NCAyNDhsMCAzLjMgNjkuNy02OS43YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDUzNS42IDI0LjRjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDQxNi4zIDY0LjVjLTIuNy0uMy01LjUtLjUtOC4zLS41TDI5NiA2NGMtMzcuMSAwLTY3LjYgMjgtNzEuNiA2NGwtLjQgMCAwIDEyMGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNzJjMCAwIDAtLjEgMC0uMWwwLTE1LjkgMTYgMCAxMzYgMGMwIDAgMCAwIC4xIDBsNy45IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA4ek0zMzYgMTkybDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0xMTguNmMtMzUuOSA2LjItNjUuOCAzMi4zLTc2IDY4LjJMOTkuNSAyNTUuMiAyNi4zIDMyOC40Yy0yMS45IDIxLjktMjEuOSA1Ny4zIDAgNzkuMmw3OC4xIDc4LjFjMjEuOSAyMS45IDU3LjMgMjEuOSA3OS4yIDBsMzcuNy0zNy43Yy45IDAgMS44IC4xIDIuNyAuMWwxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTEyLjgtNS0yNC40LTEzLjItMzNjMjUuNy01IDQ1LjEtMjcuNiA0NS4yLTU0LjhsMC0uNGMtLjEtMzAuOC0yNS4xLTU1LjgtNTYtNTUuOGMwIDAgMCAwIDAgMGwtMTIwIDB6XCJdXG59O1xuY29uc3QgZmFIYW5kc0hlbHBpbmcgPSBmYUhhbmRzaGFrZUFuZ2xlO1xuY29uc3QgZmFMb2NhdGlvbkRvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1kb3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcIm1hcC1tYXJrZXItYWx0XCJdLCBcImYzYzVcIiwgXCJNMjE1LjcgNDk5LjJDMjY3IDQzNSAzODQgMjc5LjQgMzg0IDE5MkMzODQgODYgMjk4IDAgMTkyIDBTMCA4NiAwIDE5MmMwIDg3LjQgMTE3IDI0MyAxNjguMyAzMDcuMmMxMi4zIDE1LjMgMzUuMSAxNS4zIDQ3LjQgMHpNMTkyIDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlckFsdCA9IGZhTG9jYXRpb25Eb3Q7XG5jb25zdCBmYUZpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODE5NiwgMTI4NDU5LCA2MTQ2Ml0sIFwiZjE1YlwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMjQgMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpcIl1cbn07XG5jb25zdCBmYUdyZWF0ZXJUaGFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbicsXG4gIGljb246IFszODQsIDUxMiwgWzYyNzY5XSwgXCIzZVwiLCBcIk0zLjQgODEuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOUwyODAuNSAyNTYgMTcuNyAzODcuNEMxLjkgMzk1LjMtNC41IDQxNC41IDMuNCA0MzAuM3MyNy4xIDIyLjIgNDIuOSAxNC4zbDMyMC0xNjBjMTAuOC01LjQgMTcuNy0xNi41IDE3LjctMjguNnMtNi44LTIzLjItMTcuNy0yOC42bC0zMjAtMTYwYy0xNS44LTcuOS0zNS0xLjUtNDIuOSAxNC4zelwiXVxufTtcbmNvbnN0IGZhUGVyc29uU3dpbW1pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXN3aW1taW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTQ2LCBcInN3aW1tZXJcIl0sIFwiZjVjNFwiLCBcIk0zMDkuNSAxNzguNEw0NDcuOSAyOTcuMWMtMS42IC45LTMuMiAyLTQuOCAzYy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjLTE5LjYgMC00MC44LTcuNy01OS4yLTIwLjNjLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNy4xIDExLjgtMzggMjAuMy01OS4yIDIwLjNjLTEwLjEgMC0yMS4xLTIuMi0zMS45LTYuMkMxNjMuMSAxOTMuMiAyNjIuMiA5NiAzODQgOTZsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMjYuOSAwLTUyLjMgNi42LTc0LjUgMTguNHpNMTYwIDE2MEE2NCA2NCAwIDEgMSAzMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDB6TTMwNi41IDMyNS45QzMyOSAzNDEuNCAzNTYuNSAzNTIgMzg0IDM1MmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWMwIDAgMCAwIDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQwNS43IDQxNyA0MTYgMzg0IDQxNmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgMzQxLjIgMTY1LjEgMzUyIDE5MiAzNTJjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJdXG59O1xuY29uc3QgZmFTd2ltbWVyID0gZmFQZXJzb25Td2ltbWluZztcbmNvbnN0IGZhQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4NTk1XSwgXCJmMDYzXCIsIFwiTTE2OS40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDM3MC44IDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwNi43TDU0LjYgMjY1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Ryb3BsZXQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxNjcsIFwidGludFwiXSwgXCJmMDQzXCIsIFwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwQzAgMjI4LjggMTMwLjIgNTcuNyAxNjYuNiAxMS43QzE3Mi42IDQuMiAxODEuNSAwIDE5MS4xIDBsMS44IDBjOS42IDAgMTguNSA0LjIgMjQuNSAxMS43QzI1My44IDU3LjcgMzg0IDIyOC44IDM4NCAzMjBjMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTk2IDMzNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDQuMiAwLTgwLTM1LjgtODAtODB6XCJdXG59O1xuY29uc3QgZmFUaW50ID0gZmFEcm9wbGV0O1xuY29uc3QgZmFFcmFzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXJhc2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTJkXCIsIFwiTTI5MC43IDU3LjRMNTcuNCAyOTAuN2MtMjUgMjUtMjUgNjUuNSAwIDkwLjVsODAgODBjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0wyODggNDgwbDkuNCAwTDUxMiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyNC4xIDBMNTE4LjYgMjg1LjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVMMzgxLjMgNTcuNGMtMjUtMjUtNjUuNS0yNS05MC41IDB6TTI5Ny40IDQxNmwtOS40IDAtMTA1LjQgMC04MC04MEwyMjcuMyAyMTEuMyAzNjQuNyAzNDguNyAyOTcuNCA0MTZ6XCJdXG59O1xuY29uc3QgZmFFYXJ0aEFtZXJpY2FzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWFtZXJpY2FzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzU4LCBcImVhcnRoXCIsIFwiZWFydGgtYW1lcmljYVwiLCBcImdsb2JlLWFtZXJpY2FzXCJdLCBcImY1N2RcIiwgXCJNNTcuNyAxOTNsOS40IDE2LjRjOC4zIDE0LjUgMjEuOSAyNS4yIDM4IDI5LjhMMTYzIDI1NS43YzE3LjIgNC45IDI5IDIwLjYgMjkgMzguNWwwIDM5LjljMCAxMSA2LjIgMjEgMTYgMjUuOXMxNiAxNC45IDE2IDI1LjlsMCAzOWMwIDE1LjYgMTQuOSAyNi45IDI5LjkgMjIuNmMxNi4xLTQuNiAyOC42LTE3LjUgMzIuNy0zMy44bDIuOC0xMS4yYzQuMi0xNi45IDE1LjItMzEuNCAzMC4zLTQwbDguMS00LjZjMTUtOC41IDI0LjItMjQuNSAyNC4yLTQxLjdsMC04LjNjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtMy45LTMuOWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMjU3IDI1NmMtMTEuMSAwLTIyLjEtMi45LTMxLjgtOC40bC0zNC41LTE5LjdjLTQuMy0yLjUtNy42LTYuNS05LjItMTEuMmMtMy4yLTkuNiAxLjEtMjAgMTAuMi0yNC41bDUuOS0zYzYuNi0zLjMgMTQuMy0zLjkgMjEuMy0xLjVsMjMuMiA3LjdjOC4yIDIuNyAxNy4yLS40IDIxLjktNy41YzQuNy03IDQuMi0xNi4zLTEuMi0yMi44bC0xMy42LTE2LjNjLTEwLTEyLTkuOS0yOS41IC4zLTQxLjNsMTUuNy0xOC4zYzguOC0xMC4zIDEwLjItMjUgMy41LTM2LjdsLTIuNC00LjJjLTMuNS0uMi02LjktLjMtMTAuNC0uM0MxNjMuMSA0OCA4NC40IDEwOC45IDU3LjcgMTkzek00NjQgMjU2YzAtMzYuOC05LjYtNzEuNC0yNi40LTEwMS41TDQxMiAxNjQuOGMtMTUuNyA2LjMtMjMuOCAyMy44LTE4LjUgMzkuOGwxNi45IDUwLjdjMy41IDEwLjQgMTIgMTguMyAyMi42IDIwLjlsMjkuMSA3LjNjMS4yLTkgMS44LTE4LjIgMS44LTI3LjV6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUVhcnRoID0gZmFFYXJ0aEFtZXJpY2FzO1xuY29uc3QgZmFFYXJ0aEFtZXJpY2EgPSBmYUVhcnRoQW1lcmljYXM7XG5jb25zdCBmYUdsb2JlQW1lcmljYXMgPSBmYUVhcnRoQW1lcmljYXM7XG5jb25zdCBmYVBlcnNvbkJ1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1idXJzdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzYlwiLCBcIk00ODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjIzLjEgMjguNiA0Ny41YzkuMSAxNS4xIDI4LjggMjAgNDMuOSAxMC45czIwLTI4LjggMTAuOS00My45bC01OC4zLTk3Yy0xNy40LTI4LjktNDguNi00Ni42LTgyLjMtNDYuNmwtMjkuNyAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUw0MDggMjU2LjkgNDA4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC44IDQuNCAxMS45IDUuNSAxNy44IDIuNnM5LjUtOSA5LTE1LjVsLTUuNi03OS40IDUwLjUtNy44IDI0LjMtNDAuNS01NS4yLTM4TDMxNSA5Mi4yYzMuMy01LjcgMi43LTEyLjgtMS40LTE3LjlzLTEwLjktNy4yLTE3LjItNS4zTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJdXG59O1xuY29uc3QgZmFEb3ZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMzBdLCBcImY0YmFcIiwgXCJNMTYwLjggOTYuNWMxNCAxNyAzMSAzMC45IDQ5LjUgNDIuMmMyNS45IDE1LjggNTMuNyAyNS45IDc3LjcgMzEuNmwwLTMxLjVDMjY1LjggMTA4LjUgMjUwIDcxLjUgMjQ4LjYgMjhjLS40LTExLjMtNy41LTIxLjUtMTguNC0yNC40Yy03LjYtMi0xNS44LS4yLTIxIDUuOGMtMTMuMyAxNS40LTMyLjcgNDQuNi00OC40IDg3LjJ6TTMyMCAxNDRsMCAzMC42czAgMCAwIDBsMCAxLjNzMCAwIDAgMGwwIDMyLjFjLTYwLjgtNS4xLTE4NS00My44LTIxOS4zLTE1Ny4yQzk3LjQgNDAgODcuOSAzMiA3Ni42IDMyYy03LjkgMC0xNS4zIDMuOS0xOC44IDExQzQ2LjggNjUuOSAzMiAxMTIuMSAzMiAxNzZjMCAxMTYuOSA4MC4xIDE4MC41IDExOC40IDIwMi44TDExLjggNDE2LjZDNi43IDQxOCAyLjYgNDIxLjggLjkgNDI2LjhzLS44IDEwLjYgMi4zIDE0LjhDMjEuNyA0NjYuMiA3Ny4zIDUxMiAxNjAgNTEyYzMuNiAwIDcuMi0xLjIgMTAtMy41TDI0NS42IDQ0OGw3NC40IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC0xNjAgMjkuOS00NC45YzEuMy0yIDIuMS00LjQgMi4xLTYuOGMwLTYuOC01LjUtMTIuMy0xMi4zLTEyLjNMNDAwIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MHptODAtMTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeUVtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktZW1wdHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImJhdHRlcnktMFwiXSwgXCJmMjQ0XCIsIFwiTTgwIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDE2MHpNMCAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsMzg0IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBMODAgNDE2Yy00NC4yIDAtODAtMzUuOC04MC04MEwwIDE3NnpcIl1cbn07XG5jb25zdCBmYUJhdHRlcnkwID0gZmFCYXR0ZXJ5RW1wdHk7XG5jb25zdCBmYVNvY2tzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvY2tzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTEwXSwgXCJmNjk2XCIsIFwiTTE3NS4yIDQ3Ni42Yy05LjctMTgtMTUuMi0zOC43LTE1LjItNjAuNmMwLTQwLjMgMTktNzguMiA1MS4yLTEwMi40bDY0LTQ4YzguMS02IDEyLjgtMTUuNSAxMi44LTI1LjZsMC0xNDRMMTI4IDk2bDAgMTQ0YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4QzE0LjIgMzU3LjMgMCAzODUuOCAwIDQxNmMwIDUzIDQzIDk2IDk2IDk2YzIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDIxLjYtMTYuMnpNMTI4IDY0bDE2MCAwIDAtMTZjMC0xNC41IDMuOS0yOC4yIDEwLjctMzkuOUMyOTEgMyAyODEuOSAwIDI3MiAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2ek0zMjAgOTZsMCAxNDRjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhDMjA2LjIgMzU3LjMgMTkyIDM4NS44IDE5MiA0MTZjMCA1MyA0MyA5NiA5NiA5NmMyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ5MyAzODIuMiA1MTIgMzQ0LjMgNTEyIDMwNGwwLTIwOEwzMjAgOTZ6TTUxMiA2NGwwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDM2OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDE5MiAwelwiXVxufTtcbmNvbnN0IGZhSW5ib3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5ib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMWNcIiwgXCJNMTIxIDMyQzkxLjYgMzIgNjYgNTIgNTguOSA4MC41TDEuOSAzMDguNEMuNiAzMTMuNSAwIDMxOC43IDAgMzIzLjlMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05Mi4xYzAtNS4yLS42LTEwLjQtMS45LTE1LjVsLTU3LTIyNy45QzQ0NiA1MiA0MjAuNCAzMiAzOTEgMzJMMTIxIDMyem0wIDY0bDI3MCAwIDQ4IDE5Mi01MS4yIDBjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE0LjMgMjguNmMtNS40IDEwLjgtMTYuNSAxNy43LTI4LjYgMTcuN2wtMTIwLjQgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN2wtMTQuMy0yOC42Yy01LjQtMTAuOC0xNi41LTE3LjctMjguNi0xNy43TDczIDI4OCAxMjEgOTZ6XCJdXG59O1xuY29uc3QgZmFTZWN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlY3Rpb24nLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImU0NDdcIiwgXCJNNjQuOSA5NkM2Ny4xIDg0LjQgNzMuNyA3Ni4yIDg2IDcwLjZjMTMuOC02LjIgMzQuOC04LjkgNjEuMi00LjVjOC44IDEuNCAzNi4xIDcuMSA0NC4xIDkuM2MxNyA0LjggMzQuNy01LjEgMzkuNS0yMi4ycy01LjEtMzQuNy0yMi4yLTM5LjVjLTExLjEtMy4xLTQxLTkuMi01MC45LTEwLjhDMTIzLTIuNyA4OC4zLS42IDU5LjcgMTIuM0MyOS45IDI1LjggNy41IDUwLjkgMS42IDg2LjVjLS4xIC41LS4yIDEuMS0uMiAxLjZjLTIuMiAxOS43IC4zIDM3LjkgOC4xIDU0LjFjNy43IDE2LjEgMTkuNCAyOCAzMiAzNi45Yy42IC41IDEuMyAuOSAyIDEuNEMyMi4zIDE5NC4yIDYuNSAyMTUuMSAxLjcgMjQzYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjMgMTkuMyAuNCAzNy4xIDguNCA1M2M3LjkgMTUuNiAxOS44IDI3IDMyLjMgMzUuNWMyMi40IDE1LjIgNTEuOSAyNCA3NS40IDMxYzAgMCAwIDAgMCAwbDMuNyAxLjFjMjcuMiA4LjIgNDYuOSAxNC42IDU5LjQgMjMuOGM1LjUgNCA4LjIgNy42IDkuNSAxMC45YzEuMyAzLjIgMi42IDguNiAuOSAxOC4xYy0xLjcgMTAuMS03LjcgMTgtMjAuNyAyMy41Yy0xNCA2LTM1LjQgOC41LTYyIDQuNGMtMTIuOC0yLjEtMzUuMS05LjctNTQuMS0xNi4yYzAgMCAwIDAgMCAwYy00LjMtMS41LTguNS0yLjktMTIuMy00LjJDMjUuMyA0MjAgNy4yIDQyOS4xIDEuNiA0NDUuOHMzLjUgMzQuOSAyMC4zIDQwLjVjMi42IC44IDUuNyAxLjkgOS4yIDMuMWMxOC42IDYuMyA0OC41IDE2LjYgNjcuMyAxOS42YzAgMCAwIDAgMCAwbC4yIDBjMzQuNSA1LjQgNjguOCAzLjQgOTcuMi04LjdjMjkuNC0xMi42IDUyLjUtMzYuNSA1OC41LTcxLjVjMy4zLTE5LjMgMS45LTM3LjQtNS01My45Yy02LjMtMTUtMTYuNC0yNi40LTI3LjYtMzUuMmMxNi41LTEzLjkgMjguNS0zMy4yIDMyLjYtNTguMmMzLjItMTkuOCAxLjktMzguMy00LjgtNTUuMWMtNi43LTE2LjgtMTcuOC0yOS40LTMwLjItMzljLTIyLjgtMTcuNi01My42LTI3LjQtNzcuNy0zNWwtMS40LS41Yy0yNy40LTguNy00Ny44LTE1LjMtNjEuNS0yNWMtNi4xLTQuNC05LjUtOC41LTExLjQtMTIuNGMtMS44LTMuNy0zLjItOS4zLTIuMy0xOC41em03Ni43IDIwOC41bC0uNi0uMi0xLjQtLjRjLTI3LjQtOC4yLTQ3LjktMTQuNS02MS43LTIzLjhjLTYuMi00LjItOS4zLTcuOS0xMS0xMS4zYy0xLjUtMy0yLjktNy43LTIuMS0xNS43YzEuOS05LjcgNy45LTE3LjMgMjAuNS0yMi43YzE0LTYgMzUuNC04LjUgNjIuMS00LjNsMTYuNCAyLjZjNi4zIDIuOSAxMS43IDYgMTYuMiA5LjVjNS41IDQuMiA4LjQgOC4yIDEwIDEyLjJjMS42IDQgMi44IDEwLjQgMS4xIDIwLjljLTIuNCAxNC43LTEyLjggMjYuNC0zNy4xIDMxbC0xMi40IDIuM3pcIl1cbn07XG5jb25zdCBmYUdhdWdlSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1oaWdoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI0NjEsIFwidGFjaG9tZXRlci1hbHRcIiwgXCJ0YWNob21ldGVyLWFsdC1mYXN0XCJdLCBcImY2MjVcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGMwLTE3LjQtNi45LTMzLjEtMTguMS00NC42TDM2NiAxNjEuN2M1LjMtMTIuMS0uMi0yNi4zLTEyLjMtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjNMMjU3LjkgMjg4Yy0uNiAwLTEuMyAwLTEuOSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0ek0xNzYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTk2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTM1Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbmNvbnN0IGZhVGFjaG9tZXRlckFsdCA9IGZhR2F1Z2VIaWdoO1xuY29uc3QgZmFUYWNob21ldGVyQWx0RmFzdCA9IGZhR2F1Z2VIaWdoO1xuY29uc3QgZmFFbnZlbG9wZU9wZW5UZXh0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLW9wZW4tdGV4dCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY1OFwiLCBcIk0yMTUuNCA5NkwxNDQgOTZsLTM2LjIgMEw5NiA5NmwwIDguOEw5NiAxNDRsMCA0MC40IDAgODlMLjIgMjAyLjVjMS42LTE4LjEgMTAuOS0zNC45IDI1LjctNDUuOEw0OCAxNDAuMyA0OCA5NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni42IDAgNDkuOS0zNi45QzIzMi4yIDMuOSAyNDMuOSAwIDI1NiAwczIzLjggMy45IDMzLjUgMTFMMzM5LjQgNDggNDE2IDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDQuMyAyMi4xIDE2LjRjMTQuOCAxMC45IDI0LjEgMjcuNyAyNS43IDQ1LjhMNDE2IDI3My40bDAtODkgMC00MC40IDAtMzkuMiAwLTguOC0xMS44IDBMMzY4IDk2bC03MS40IDAtODEuMyAwek0wIDQ0OEwwIDI0Mi4xIDIxNy42IDQwMy4zYzExLjEgOC4yIDI0LjYgMTIuNyAzOC40IDEyLjdzMjcuMy00LjQgMzguNC0xMi43TDUxMiAyNDIuMSA1MTIgNDQ4czAgMCAwIDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwIDAgMCAwIDAgMHpNMTc2IDE2MGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG9zcGl0YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5NzMsIDYyNTg5LCBcImhvc3BpdGFsLWFsdFwiLCBcImhvc3BpdGFsLXdpZGVcIl0sIFwiZjBmOFwiLCBcIk0xOTIgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0NjQtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgODAtODAgMCAwLTQ2NHpNNDggOTZsMTEyIDAgMCA0MTZMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMyMGw4MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDAgMjg4bDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkwwIDE5MmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em01NDQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTEyIDAgMC00MTYgMTEyIDB6TTMxMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjQtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDAgMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNCAyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMCAwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHpcIl1cbn07XG5jb25zdCBmYUhvc3BpdGFsQWx0ID0gZmFIb3NwaXRhbDtcbmNvbnN0IGZhSG9zcGl0YWxXaWRlID0gZmFIb3NwaXRhbDtcbmNvbnN0IGZhV2luZUJvdHRsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWJvdHRsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjcyZlwiLCBcIk0zOTMuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNjLTExLjggMTEuOC0zMC43IDEyLjUtNDMuMiAxLjlsLTkuNSA5LjUtNDguOCA0OC44Yy05LjIgOS4yLTExLjUgMjIuOS04LjYgMzUuNmM5LjQgNDAuOS0xLjkgODUuNi0zMy44IDExNy41TDE5Ny4zIDQ5My4zYy0yNSAyNS02NS41IDI1LTkwLjUgMGwtODgtODhjLTI1LTI1LTI1LTY1LjUgMC05MC41TDE4MC4yIDE1My4zYzMxLjktMzEuOSA3Ni42LTQzLjEgMTE3LjUtMzMuOGMxMi42IDIuOSAyNi40IC41IDM1LjUtOC42bDQ4LjgtNDguOCA5LjUtOS41Yy0xMC42LTEyLjYtMTAtMzEuNCAxLjktNDMuMnpNOTkuMyAzNDcuM2w2NS40IDY1LjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsOTcuNC05Ny40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC02NS40LTY1LjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDk5LjMgMzI0LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhQ2hlc3NSb29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLXJvb2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODIwXSwgXCJmNDQ3XCIsIFwiTTMyIDE5MkwzMiA0OGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNDRjMCAxMC4xLTQuNyAxOS42LTEyLjggMjUuNkwzNTIgMjU2bDE2IDE0NEw4MCA0MDAgOTYgMjU2IDQ0LjggMjE3LjZDMzYuNyAyMTEuNiAzMiAyMDIuMSAzMiAxOTJ6bTE3NiA5NmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2ek0yMi42IDQ3My40TDY0IDQzMmwzMjAgMCA0MS40IDQxLjRjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42TDM4LjYgNTEyQzI2LjEgNTEyIDE2IDUwMS45IDE2IDQ4OS40YzAtNiAyLjQtMTEuOCA2LjYtMTZ6XCJdXG59O1xuY29uc3QgZmFCYXJzU3RhZ2dlcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhcnMtc3RhZ2dlcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyZW9yZGVyXCIsIFwic3RyZWFtXCJdLCBcImY1NTBcIiwgXCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek02NCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFSZW9yZGVyID0gZmFCYXJzU3RhZ2dlcmVkO1xuY29uc3QgZmFTdHJlYW0gPSBmYUJhcnNTdGFnZ2VyZWQ7XG5jb25zdCBmYURoYXJtYWNoYWtyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaGFybWFjaGFrcmEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzg0XSwgXCJmNjU1XCIsIFwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMCA2LjQgMTkuNSAxMS42IDI4bC00OC42IDQyLjV6bTEwMy44IDY1Yy0yNC40LTQuMS00Ni45LTEzLjctNjYuMi0yNy40bDQyLjUtNDguNmM4LjUgNS4zIDE4IDkuMiAyOCAxMS42bC00LjMgNjQuNHptMTE5LjQtMjcuNGMtMTkuMyAxMy44LTQxLjkgMjMuNC02Ni4yIDI3LjRsLTQuMy02NC40YzEwLTIuNCAxOS41LTYuNCAyOC0xMS42bDQyLjUgNDguNnptNjUtMTAzLjhjLTQuMSAyNC40LTEzLjcgNDYuOS0yNy40IDY2LjJsLTQ4LjYtNDIuNWM1LjMtOC41IDkuMi0xOCAxMS42LTI4bDY0LjQgNC4zem0tNjUtMTU2LjlsLTQyLjUgNDguNmMtOC41LTUuMy0xOC05LjItMjgtMTEuNmw0LjMtNjQuNGMyNC40IDQuMSA0Ni45IDEzLjcgNjYuMiAyNy41ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUhvdGRvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3Rkb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3ODldLCBcImY4MGZcIiwgXCJNNDg4LjYgMjMuNGMzMS4yIDMxLjIgMzEuMiA4MS45IDAgMTEzLjFsLTM1MiAzNTJjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMHMtMzEuMi04MS45IDAtMTEzLjFsMzUyLTM1MmMzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDB6TTQ0My4zIDkyLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwYy0xMi41IDEyLjUtMjMuOCAxNS4xLTM3LjUgMTcuNmwtMi41IC40Yy0xMy44IDIuNS0zMS42IDUuNi00OCAyMmMtMTYuNyAxNi43LTIwLjkgMzYtMjQuMSA1MC45YzAgMCAwIDAgMCAwczAgMCAwIDBsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFzLTIwLjUgMTIuMy0zNi4xIDE1LjdsLTEgLjJjLTE0LjkgMy4yLTM0LjIgNy40LTUwLjkgMjQuMXMtMjAuOSAzNi0yNC4xIDUwLjlsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFjLTkuMiA5LjItMTggMTAuOC0zMi43IDEzLjRjMCAwIDAgMCAwIDBsLS45IC4yYy0xNS42IDIuOC0zNC45IDYuOS01NC40IDI2LjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGMxMi41LTEyLjUgMjMuOC0xNS4xIDM3LjUtMTcuNmwyLjUtLjRjMTMuOC0yLjUgMzEuNi01LjYgNDgtMjJjMTYuNy0xNi43IDIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMXMyMC41LTEyLjMgMzYuMS0xNS43bDEtLjJjMTQuOS0zLjIgMzQuMi03LjQgNTAuOS0yNC4xczIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMWM5LjItOS4yIDE4LTEwLjggMzIuNy0xMy40bC45LS4yYzE1LjYtMi44IDM0LjktNi45IDU0LjQtMjYuNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTkxLjIgNDc5LjJsMjg4LTI4OEw0OTUgMjA3YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MUwyODkgNDk1Yy0xMC45IDEwLjktMjUuNiAxNy00MSAxN3MtMzAuMS02LjEtNDEtMTdsLTE1LjgtMTUuOHpNMTcgMzA1QzYuMSAyOTQuMSAwIDI3OS40IDAgMjY0czYuMS0zMC4xIDE3LTQxTDIyMyAxN0MyMzMuOSA2LjEgMjQ4LjYgMCAyNjQgMHMzMC4xIDYuMSA0MSAxN2wxNS44IDE1LjgtMjg4IDI4OEwxNyAzMDV6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nV2l0aENhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmctd2l0aC1jYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJibGluZFwiXSwgXCJmMjlkXCIsIFwiTTE3NiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04LjQgMzJjLTM2LjQgMC02OS42IDIwLjUtODUuOSA1My4xTDM1LjQgMjczLjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM0wxMjggMjMxLjZsMCA0My4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDIyNCAzOTcuM2wwIDgyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTg5LjRjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUwyMjQgMzA2LjdsMC05My40IDcwLjQgOTMuOWMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44TDI2OC44IDE2Ni40QzI1MC43IDE0Mi4yIDIyMi4yIDEyOCAxOTIgMTI4bC0yNC40IDB6TTEyOC4zIDM0Ni44TDk3IDQ3Mi4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDIyLTg4LjItNTIuOC01Mi44ek00NTAuOCA1MDUuMWM1IDcuMyAxNSA5LjEgMjIuMyA0czkuMS0xNSA0LTIyLjNMMzU4LjkgMzE2LjFjLTIuOCAzLjgtNi4xIDcuMy0xMC4xIDEwLjNjLTUgMy44LTEwLjUgNi40LTE2LjIgNy45TDQ1MC44IDUwNS4xelwiXVxufTtcbmNvbnN0IGZhQmxpbmQgPSBmYVBlcnNvbldhbGtpbmdXaXRoQ2FuZTtcbmNvbnN0IGZhRHJ1bSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzQ1XSwgXCJmNTY5XCIsIFwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2QzExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNUM0NTguNCAxODEuOCA0NjQgMTk3LjQgNDY0IDIwOGMwIC44LTIuNyAxNy4yLTQ2IDM1LjlDMzc5LjEgMjYwLjcgMzIyIDI3MiAyNTYgMjcycy0xMjMuMS0xMS4zLTE2Mi0yOC4xQzUwLjcgMjI1LjIgNDggMjA4LjggNDggMjA4YzAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjNDMTMwLjYgMTUxLjkgMTg3LjggMTQ0IDI1NiAxNDRjMTggMCAzNS4xIC41IDUxLjQgMS42elwiXVxufTtcbmNvbnN0IGZhSWNlQ3JlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNlLWNyZWFtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3ODQ4XSwgXCJmODEwXCIsIFwiTTM2Ny4xIDE2MGMuNi01LjMgLjktMTAuNiAuOS0xNkMzNjggNjQuNSAzMDMuNSAwIDIyNCAwUzgwIDY0LjUgODAgMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsNTMuNSAwIDE4MSAwIDUzLjUgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtLjkgMHpNOTYgMjg4TDIwMC44IDQ5Ny43YzQuNCA4LjggMTMuMyAxNC4zIDIzLjIgMTQuM3MxOC44LTUuNSAyMy4yLTE0LjNMMzUyIDI4OCA5NiAyODh6XCJdXG59O1xuY29uc3QgZmFIZWFydENpcmNsZUJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLWJvbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZmNcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em00Ny45LTIyNWM0LjMgMy43IDUuNCA5LjkgMi42IDE0LjlMNDUyLjQgMzU2bDM1LjYgMGM1LjIgMCA5LjggMy4zIDExLjQgOC4ycy0uMSAxMC4zLTQuMiAxMy40bC05NiA3MmMtNC41IDMuNC0xMC44IDMuMi0xNS4xLS42cy01LjQtOS45LTIuNi0xNC45TDQxMS42IDM4MCAzNzYgMzgwYy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42elwiXVxufTtcbmNvbnN0IGZhRmF4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZheCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyNCwgMTI4NDM5XSwgXCJmMWFjXCIsIFwiTTEyOCA2NGwwIDk2IDY0IDAgMC05NiAxOTQuNyAwTDQxNiA5My4zbDAgNjYuNyA2NCAwIDAtNjYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MzIgMTguN0M0MjAgNi43IDQwMy43IDAgMzg2LjcgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTAgMTYwTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem00ODAgMzJsLTM1MiAwIDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yNTYgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMjQgNDE2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFQYXJhZ3JhcGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFyYWdyYXBoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTgyXSwgXCJmMWRkXCIsIFwiTTE5MiAzMmw2NCAwIDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzUyLTMyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAwYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MHM3MS42LTE2MCAxNjAtMTYwelwiXVxufTtcbmNvbnN0IGZhQ2hlY2tUb1Nsb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2stdG8tc2xvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1widm90ZS15ZWFcIl0sIFwiZjc3MlwiLCBcIk05NiA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGwyODggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMwNEw5NiAzODQgOTYgODB6bTMxMyA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTExMSAxMTEtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMNDA5IDE2MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOCA0NDggMCAwLTEyOCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2elwiXVxufTtcbmNvbnN0IGZhVm90ZVllYSA9IGZhQ2hlY2tUb1Nsb3Q7XG5jb25zdCBmYVN0YXJIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXItaGFsZicsXG4gIGljb246IFs1NzYsIDUxMiwgWzYxNzMxXSwgXCJmMDg5XCIsIFwiTTI4OCAwYy0xMi4yIC4xLTIzLjMgNy0yOC42IDE4TDE5NSAxNTAuMyA1MS40IDE3MS41Yy0xMiAxLjgtMjIgMTAuMi0yNS43IDIxLjdzLS43IDI0LjIgNy45IDMyLjdMMTM3LjggMzI5IDExMy4yIDQ3NC43Yy0yIDEyIDMgMjQuMiAxMi45IDMxLjNzMjMgOCAzMy44IDIuM0wyODggNDM5LjggMjg4IDB6TTQyOS45IDUxMmMxLjEgLjEgMi4xIC4xIDMuMiAwbC0zLjIgMHpcIl1cbn07XG5jb25zdCBmYUJveGVzU3RhY2tlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3hlcy1zdGFja2VkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjI2MjUsIFwiYm94ZXNcIiwgXCJib3hlcy1hbHRcIl0sIFwiZjQ2OFwiLCBcIk0yNDggMEwyMDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzI4IDBsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTgwek02NCAyNTZjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC00MCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC04MC00MCAwek0zNTIgNTEybDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC00MCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC04MC00MCAwYy0xNSAwLTI4LjggNS4xLTM5LjcgMTMuOGM0LjkgMTAuNCA3LjcgMjIgNy43IDM0LjJsMCAxNjBjMCAxMi4yLTIuOCAyMy44LTcuNyAzNC4yQzMyMy4yIDUwNi45IDMzNyA1MTIgMzUyIDUxMnpcIl1cbn07XG5jb25zdCBmYUJveGVzID0gZmFCb3hlc1N0YWNrZWQ7XG5jb25zdCBmYUJveGVzQWx0ID0gZmFCb3hlc1N0YWNrZWQ7XG5jb25zdCBmYUxpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGluaycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI3OSwgXCJjaGFpblwiXSwgXCJmMGMxXCIsIFwiTTU3OS44IDI2Ny43YzU2LjUtNTYuNSA1Ni41LTE0OCAwLTIwNC41Yy01MC01MC0xMjguOC01Ni41LTE4Ni4zLTE1LjRsLTEuNiAxLjFjLTE0LjQgMTAuMy0xNy43IDMwLjMtNy40IDQ0LjZzMzAuMyAxNy43IDQ0LjYgNy40bDEuNi0xLjFjMzIuMS0yMi45IDc2LTE5LjMgMTAzLjggOC42YzMxLjUgMzEuNSAzMS41IDgyLjUgMCAxMTRMNDIyLjMgMzM0LjhjLTMxLjUgMzEuNS04Mi41IDMxLjUtMTE0IDBjLTI3LjktMjcuOS0zMS41LTcxLjgtOC42LTEwMy44bDEuMS0xLjZjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42cy0zNC40LTYuOS00NC42IDcuNGwtMS4xIDEuNkMyMDYuNSAyNTEuMiAyMTMgMzMwIDI2MyAzODBjNTYuNSA1Ni41IDE0OCA1Ni41IDIwNC41IDBMNTc5LjggMjY3Ljd6TTYwLjIgMjQ0LjNjLTU2LjUgNTYuNS01Ni41IDE0OCAwIDIwNC41YzUwIDUwIDEyOC44IDU2LjUgMTg2LjMgMTUuNGwxLjYtMS4xYzE0LjQtMTAuMyAxNy43LTMwLjMgNy40LTQ0LjZzLTMwLjMtMTcuNy00NC42LTcuNGwtMS42IDEuMWMtMzIuMSAyMi45LTc2IDE5LjMtMTAzLjgtOC42Qzc0IDM3MiA3NCAzMjEgMTA1LjUgMjg5LjVMMjE3LjcgMTc3LjJjMzEuNS0zMS41IDgyLjUtMzEuNSAxMTQgMGMyNy45IDI3LjkgMzEuNSA3MS44IDguNiAxMDMuOWwtMS4xIDEuNmMtMTAuMyAxNC40LTYuOSAzNC40IDcuNCA0NC42czM0LjQgNi45IDQ0LjYtNy40bDEuMS0xLjZDNDMzLjUgMjYwLjggNDI3IDE4MiAzNzcgMTMyYy01Ni41LTU2LjUtMTQ4LTU2LjUtMjA0LjUgMEw2MC4yIDI0NC4zelwiXVxufTtcbmNvbnN0IGZhQ2hhaW4gPSBmYUxpbms7XG5jb25zdCBmYUVhckxpc3RlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXItbGlzdGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXNcIl0sIFwiZjJhMlwiLCBcIk0zOTguMyAzLjRjLTE1LjgtNy45LTM1LTEuNS00Mi45IDE0LjNjLTcuOSAxNS44LTEuNSAzNC45IDE0LjIgNDIuOWwuNCAuMmMuNCAuMiAxLjEgLjYgMi4xIDEuMmMyIDEuMiA1IDMgOC43IDUuNmM3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjJDNDI4LjUgMTEzLjQgNDQ4IDE0NiA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjdDNDQxLjYgMzMuMiA0MjcuNyAyMi4yIDQxNy4zIDE1Yy01LjMtMy43LTkuNy02LjQtMTMtOC4zYy0xLjYtMS0zLTEuNy00LTIuMmMtLjUtLjMtLjktLjUtMS4yLS43bC0uNC0uMi0uMi0uMWMwIDAgMCAwLS4xIDBjMCAwIDAgMCAwIDBMMzg0IDMyIDM5OC4zIDMuNHpNMTI4LjcgMjI3LjVjNi4yLTU2IDUzLjctOTkuNSAxMTEuMy05OS41YzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyYzAgMjkuMy0xMS4yIDU1LjktMjkuNiA3NS45Yy0xNyAxOC40LTM0LjQgNDUuMS0zNC40IDc4bDAgNi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEybDAtNi4xYzAtOS44IDUuNC0yMS43IDE3LjQtMzQuN0MzOTguMyAzMjcuOSA0MTYgMjg2IDQxNiAyNDBjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZDMTQ5LjQgNjQgNzQuOCAxMzIuNSA2NS4xIDIyMC41Yy0xLjkgMTcuNiAxMC43IDMzLjQgMjguMyAzNS4zczMzLjQtMTAuNyAzNS4zLTI4LjN6TTMyIDUxMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE5MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDEuNCAzNjEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwek0yMDggMjQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtcyA9IGZhRWFyTGlzdGVuO1xuY29uc3QgZmFUcmVlQ2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmVlLWNpdHknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1ODdcIiwgXCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDQgNDAgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAyNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgMzJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDI3MmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yMjQgMTYwYzAgNi0xIDExLTIgMTZjMjAgMTQgMzQgMzggMzQgNjRjMCA0NS0zNiA4MC04MCA4MGwtMTYgMCAwIDE2MGMwIDE4LTE1IDMyLTMyIDMyYy0xOCAwLTMyLTE0LTMyLTMybDAtMTYwLTE2IDBjLTQ1IDAtODAtMzUtODAtODBjMC0yNiAxMy01MCAzMy02NGMtMS01LTEtMTAtMS0xNmMwLTUzIDQyLTk2IDk2LTk2YzUzIDAgOTYgNDMgOTYgOTZ6XCJdXG59O1xuY29uc3QgZmFQbGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXknLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5NjU0XSwgXCJmMDRiXCIsIFwiTTczIDM5Yy0xNC44LTkuMS0zMy40LTkuNC00OC41LS45UzAgNjIuNiAwIDgwTDAgNDMyYzAgMTcuNCA5LjQgMzMuNCAyNC41IDQxLjlzMzMuNyA4LjEgNDguNS0uOUwzNjEgMjk3YzE0LjMtOC43IDIzLTI0LjIgMjMtNDFzLTguNy0zMi4yLTIzLTQxTDczIDM5elwiXVxufTtcbmNvbnN0IGZhRm9udCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb250JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDMxXCIsIFwiTTI1NCA1Mi44QzI0OS4zIDQwLjMgMjM3LjMgMzIgMjI0IDMycy0yNS4zIDguMy0zMCAyMC44TDU3LjggNDE2IDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xLjggMCAxOC00OCAxNTkuNiAwIDE4IDQ4LTEuOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1LjggMEwyNTQgNTIuOHpNMjc5LjggMzA0bC0xMTEuNiAwTDIyNCAxNTUuMSAyNzkuOCAzMDR6XCJdXG59O1xuY29uc3QgZmFUYWJsZUNlbGxzUm93TG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS1jZWxscy1yb3ctbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY3YVwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjUuMWMtMzcuOCA1LjQtNjkuNCAyOS42LTg1LjIgNjIuOUwzNjAgMjI0bDAgNjQgNTYgMCAwIDguNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwtMjQgMCAwIDY0IDI0IDAgMCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTY0IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0yMzIgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMTUyIDM1MmwtODggMCAwIDY0IDg4IDAgMC02NHptNTYgMGwwIDY0IDg4IDAgMC02NC04OCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFSdXBpYWhTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1cGlhaC1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMjNkXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjAgNjQgMzIwbDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMjg4IDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwTDY0IDk2bDAgMTYwem0yNTYtOTZsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnMtNTAuMSAxMTItMTEyIDExMmwtNDggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4IDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAwelwiXVxufTtcbmNvbnN0IGZhTWFnbmlmeWluZ0dsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNjksIFwic2VhcmNoXCJdLCBcImYwMDJcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6XCJdXG59O1xuY29uc3QgZmFTZWFyY2ggPSBmYU1hZ25pZnlpbmdHbGFzcztcbmNvbnN0IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1NSwgXCJwaW5nLXBvbmctcGFkZGxlLWJhbGxcIiwgXCJ0YWJsZS10ZW5uaXNcIl0sIFwiZjQ1ZFwiLCBcIk00MTYgMjg4Yy01MC4xIDAtOTMuNiAyOC44LTExNC42IDcwLjhMNjguOSAxMjYuM2wuNi0uNiA2MC4xLTYwLjFjODcuNS04Ny41IDIyOS4zLTg3LjUgMzE2LjggMGM2Ny4xIDY3LjEgODIuNyAxNjYuMyA0Ni44IDI0OC4zQzQ3MS44IDI5Ny42IDQ0NSAyODggNDE2IDI4OHpNNDkuMyAxNTEuOUwyOTAuMSAzOTIuN2MtMS40IDcuNS0yLjEgMTUuMy0yLjEgMjMuM2MwIDIzLjIgNi4yIDQ0LjkgMTYuOSA2My43Yy0zIC4yLTYuMSAuMy05LjIgLjNsLTIuNyAwYy0zMy45IDAtNjYuNS0xMy41LTkwLjUtMzcuNWwtOS44LTkuOGMtMTMuMS0xMy4xLTM0LjYtMTIuNC00Ni44IDEuN0w4OC4yIDUwMWMtNS44IDYuNy0xNC4yIDEwLjctMjMgMTFzLTE3LjUtMy4xLTIzLjgtOS40bC0zMi0zMkMzLjEgNDY0LjMtLjMgNDU1LjcgMCA0NDYuOXM0LjMtMTcuMiAxMS0yM2w2Ni42LTU3LjdjMTQtMTIuMiAxNC44LTMzLjcgMS43LTQ2LjhsLTkuOC05LjhDNDUuNSAyODUuNSAzMiAyNTIuOSAzMiAyMTlsMC0yLjdjMC0yMi44IDYuMS00NC45IDE3LjMtNjQuM3pNNDE2IDMyMGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIl1cbn07XG5jb25zdCBmYVBpbmdQb25nUGFkZGxlQmFsbCA9IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsO1xuY29uc3QgZmFUYWJsZVRlbm5pcyA9IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsO1xuY29uc3QgZmFQZXJzb25Eb3RzRnJvbUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRvdHMtZnJvbS1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJkaWFnbm9zZXNcIl0sIFwiZjQ3MFwiLCBcIk0yODggMTc2QTg4IDg4IDAgMSAwIDI4OCAwYTg4IDg4IDAgMSAwIDAgMTc2ek03OC43IDM3Mi45YzE1LTEyLjUgNTAtMzQuNCA5Ny4zLTUwLjFMMTc2IDQzMmwyMjQgMCAwLTEwOS4zYzQ3LjMgMTUuOCA4Mi4zIDM3LjcgOTcuMyA1MC4xYzIwLjQgMTcgNTAuNiAxNC4yIDY3LjYtNi4xczE0LjItNTAuNi02LjEtNjcuNmMtMTItMTAtMzAuMS0yMi41LTUzLjItMzVDNDk3LjIgMjc4LjQgNDgxLjcgMjg4IDQ2NCAyODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtNC4zIC42LTguNCAxLjYtMTIuNEMzNzkuMSAyMTUuOSAzMzUuMyAyMDggMjg4IDIwOGMtNjAuMiAwLTExNC45IDEyLjktMTYwIDI5LjljMCAuNyAwIDEuNCAwIDIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGMtMTEuOCAwLTIyLjctNC4zLTMxLTExLjRjLTEzLjEgOC4xLTIzLjcgMTUuOS0zMS43IDIyLjVjLTIwLjQgMTctMjMuMSA0Ny4yLTYuMSA2Ny42czQ3LjIgMjMuMSA2Ny42IDYuMXpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDUyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQ2NHpNMjI0IDI4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek05NiAyNDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzY4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYURpYWdub3NlcyA9IGZhUGVyc29uRG90c0Zyb21MaW5lO1xuY29uc3QgZmFUcmFzaENhbkFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gtY2FuLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlLWFsdFwiXSwgXCJmODJhXCIsIFwiTTE2My44IDBMMjg0LjIgMGMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43TDMyMCAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDcuMi0xNC4zQzE0MC42IDYuOCAxNTEuNyAwIDE2My44IDB6TTMyIDEyOGwzODQgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIwem0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlMMjAwIDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM0LjEgMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIl1cbn07XG5jb25zdCBmYVRyYXNoUmVzdG9yZUFsdCA9IGZhVHJhc2hDYW5BcnJvd1VwO1xuY29uc3QgZmFOYWlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmFpcmEtc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTFmNlwiLCBcIk0xMjIuNiA0Ni4zYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVM2NCA0OS45IDY0IDY0bDAgMTkyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEwMC4yIDAgOTcuMiAxNDUuOGM3LjggMTEuNyAyMi40IDE3IDM1LjkgMTIuOXMyMi43LTE2LjUgMjIuNy0zMC42bDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwTDEyMi42IDQ2LjN6TTMwNS4xIDMyMGwxNC45IDAgMCAyMi4zTDMwNS4xIDMyMHpNMTg1LjUgMjU2TDEyOCAyNTZsMC04Ni4zTDE4NS41IDI1NnpcIl1cbn07XG5jb25zdCBmYUNhcnRBcnJvd0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FydC1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjE4XCIsIFwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsNDUuNSAwYzMuOCAwIDcuMSAyLjcgNy45IDYuNWw1MS42IDI3MWM2LjUgMzQgMzYuMiA1OC41IDcwLjcgNTguNUw0ODggMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yODguMyAwYy0xMS41IDAtMjEuNC04LjItMjMuNi0xOS41TDE3MC43IDI4OGwyODguNSAwYzMyLjYgMCA2MS4xLTIxLjggNjkuNS01My4zbDQxLTE1Mi4zQzU3Ni42IDU3IDU1Ny40IDMyIDUzMS4xIDMyTDM2MCAzMmwwIDEwMi4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzTDMxMiAzMiAxMjAuMSAzMkMxMTEgMTIuOCA5MS42IDAgNjkuNSAwTDI0IDB6TTE3NiA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zMzYtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYVdhbGtpZVRhbGtpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YWxraWUtdGFsa2llJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmOGVmXCIsIFwiTTExMiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNFM2NCAxMC43IDY0IDI0bDAgNzJMNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgMzAwLjFjMCAxMi43IDUuMSAyNC45IDE0LjEgMzMuOWwzLjkgMy45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDMyIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkyLjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWwzLjktMy45YzktOSAxNC4xLTIxLjIgMTQuMS0zMy45TDM4NCAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsLTMyIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsLTQ4IDAgMC03MnptMCAxMzZsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFGaWxlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjIxLCBcImZpbGUtZWRpdFwiXSwgXCJmMzFjXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI1LjctODYuOCA4Ni44Yy0xMC4zIDEwLjMtMTcuNSAyMy4xLTIxIDM3LjJsLTE4LjcgNzQuOWMtMi4zIDkuMi0xLjggMTguOCAxLjMgMjcuNUw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNNTQ5LjggMjM1LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yOS40IDI5LjQtNzEtNzEgMjkuNC0yOS40YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0zMTEuOSA0MTdMNDQxLjEgMjg3LjhsNzEgNzFMMzgyLjkgNDg3LjljLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6XCJdXG59O1xuY29uc3QgZmFGaWxlRWRpdCA9IGZhRmlsZVBlbjtcbmNvbnN0IGZhUmVjZWlwdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWNlaXB0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI5NTM0XSwgXCJmNTQzXCIsIFwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMy03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42czE0IDEyLjQgMTQgMjEuOGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNkwzMDQgNDcxLjZsLTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDE5MiA0NzEuNmwtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek05NiAxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMOTYgMTQ0ek04MCAzNTJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDk2IDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiAyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMOTYgMjQwelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wZW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBlbi1zcXVhcmVcIiwgXCJwZW5jaWwtc3F1YXJlXCJdLCBcImYxNGJcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMS40IDIxLjQtNzEtNzEgMjEuNC0yMS40YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlMMjI1LjEgMTgzLjhsNzEgNzFMMTkwLjkgMzU5LjljLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6XCJdXG59O1xuY29uc3QgZmFQZW5TcXVhcmUgPSBmYVNxdWFyZVBlbjtcbmNvbnN0IGZhUGVuY2lsU3F1YXJlID0gZmFTcXVhcmVQZW47XG5jb25zdCBmYVN1aXRjYXNlUm9sbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWl0Y2FzZS1yb2xsaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWMxXCIsIFwiTTE0NCA1NmMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6bTE3NiA3MmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE1MiAwQzEyMS4xIDAgOTYgMjUuMSA5NiA1NmwwIDcyLTMyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NHpNMTEyIDIyNGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgMTI4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1M2ZcIiwgXCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xTDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42bDI5LjcgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25Eb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA3OFwiLCBcIk0yMzMuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAzMzguNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeUZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1mdWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjY3LCBcImJhdHRlcnlcIiwgXCJiYXR0ZXJ5LTVcIl0sIFwiZjI0MFwiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTM2OCA5Nkw5NiAxOTJsMCAxMjggMzUyIDAgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5ID0gZmFCYXR0ZXJ5RnVsbDtcbmNvbnN0IGZhQmF0dGVyeTUgPSBmYUJhdHRlcnlGdWxsO1xuY29uc3QgZmFTa3VsbENyb3NzYm9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2t1bGwtY3Jvc3Nib25lcycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODM2OSwgOTc2MF0sIFwiZjcxNFwiLCBcIk0zNjggMTI4YzAgNDQuNC0yNS40IDgzLjUtNjQgMTA2LjRsMCAyMS42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIxLjZjLTM4LjYtMjMtNjQtNjIuMS02NC0xMDYuNEM4MCA1Ny4zIDE0NC41IDAgMjI0IDBzMTQ0IDU3LjMgMTQ0IDEyOHpNMTY4IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE0NC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zLjQgMjczLjdjNy45LTE1LjggMjcuMS0yMi4yIDQyLjktMTQuM0wyMjQgMzQ4LjJsMTc3LjctODguOGMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zczEuNSAzNS0xNC4zIDQyLjlMMjk1LjYgMzg0bDEzNC44IDY3LjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0wyMjQgNDE5LjggNDYuMyA1MDguNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOUwxNTIuNCAzODQgMTcuNyAzMTYuNkMxLjkgMzA4LjctNC41IDI4OS41IDMuNCAyNzMuN3pcIl1cbn07XG5jb25zdCBmYUNvZGVDb21wYXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZGUtY29tcGFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzYVwiLCBcIk0zMjAgNDg4YzAgOS41LTUuNiAxOC4xLTE0LjIgMjEuOXMtMTguOCAyLjMtMjUuOC00LjFsLTgwLTcyYy01LjEtNC42LTcuOS0xMS03LjktMTcuOHMyLjktMTMuMyA3LjktMTcuOGw4MC03MmM3LTYuMyAxNy4yLTcuOSAyNS44LTQuMXMxNC4yIDEyLjQgMTQuMiAyMS45bDAgNDAgMTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2Ni43QzM3MS43IDE0MSAzNTIgMTEyLjggMzUyIDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NjQgMzIwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNiAwIDAgNDB6TTQ1NiA4MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xOTIgMjRjMC05LjUgNS42LTE4LjEgMTQuMi0yMS45czE4LjgtMi4zIDI1LjggNC4xbDgwIDcyYzUuMSA0LjYgNy45IDExIDcuOSAxNy44cy0yLjkgMTMuMy03LjkgMTcuOGwtODAgNzJjLTcgNi4zLTE3LjIgNy45LTI1LjggNC4xcy0xNC4yLTEyLjQtMTQuMi0yMS45bDAtNDAtMTYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxNjYuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNDggMTkyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2IDAgMC00MHpNNTYgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0VWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC11bCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1kb3RzXCJdLCBcImYwY2FcIiwgXCJNNjQgMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTY0IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ4LTIwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbmNvbnN0IGZhTGlzdERvdHMgPSBmYUxpc3RVbDtcbmNvbnN0IGZhU2Nob29sTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2ZlwiLCBcIk0zMDIuMiA1LjRjMTAuNy03LjIgMjQuOC03LjIgMzUuNSAwTDQ3My43IDk2IDU5MiA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnMtMTEyIDUwLjEtMTEyIDExMmwwIDI0LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTYzLjcgMC0uMyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDY0IDBzMCAwIDAgMEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDExOC4zIDBMMzAyLjIgNS40ek04MCAyMDhsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCAxMjhsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTcyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0xNi0xMjBsMCAxNiAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0xOTIgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMC00OHpcIl1cbn07XG5jb25zdCBmYVRvd2VyQ2VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3dlci1jZWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTg1XCIsIFwiTTYyLjYgMi4zQzQ2LjItNC4zIDI3LjYgMy42IDIwLjkgMjBDNy40IDUzLjQgMCA4OS45IDAgMTI4czcuNCA3NC42IDIwLjkgMTA4YzYuNiAxNi40IDI1LjMgMjQuMyA0MS43IDE3LjdTODYuOSAyMjguNCA4MC4zIDIxMkM2OS44IDE4Ni4xIDY0IDE1Ny44IDY0IDEyOHM1LjgtNTguMSAxNi4zLTg0Qzg2LjkgMjcuNiA3OSA5IDYyLjYgMi4zem00NTAuOCAwQzQ5NyA5IDQ4OS4xIDI3LjYgNDk1LjcgNDRDNTA2LjIgNjkuOSA1MTIgOTguMiA1MTIgMTI4cy01LjggNTguMS0xNi4zIDg0Yy02LjYgMTYuNCAxLjMgMzUgMTcuNyA0MS43czM1LTEuMyA0MS43LTE3LjdjMTMuNS0zMy40IDIwLjktNjkuOSAyMC45LTEwOHMtNy40LTc0LjYtMjAuOS0xMDhDNTQ4LjQgMy42IDUyOS44LTQuMyA1MTMuNCAyLjN6TTM0MC4xIDE2NS4yYzcuNS0xMC41IDExLjktMjMuMyAxMS45LTM3LjJjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAxMy45IDQuNCAyNi43IDExLjkgMzcuMkw5OC45IDQ2Ni44Yy03LjMgMTYuMS0uMiAzNS4xIDE1LjkgNDIuNHMzNS4xIC4yIDQyLjQtMTUuOUwxNzcuNyA0NDhsMjIwLjYgMCAyMC42IDQ1LjJjNy4zIDE2LjEgMjYuMyAyMy4yIDQyLjQgMTUuOXMyMy4yLTI2LjMgMTUuOS00Mi40TDM0MC4xIDE2NS4yek0zNjkuMiAzODRsLTE2Mi40IDAgMTQuNS0zMiAxMzMuMyAwIDE0LjUgMzJ6TTI4OCAyMDUuM0wzMjUuNiAyODhsLTc1LjIgMEwyODggMjA1LjN6TTE2My4zIDczLjZjNS4zLTEyLjEtLjItMjYuMy0xMi40LTMxLjZzLTI2LjMgLjItMzEuNiAxMi40QzEwOS41IDc3IDEwNCAxMDEuOSAxMDQgMTI4czUuNSA1MSAxNS4zIDczLjZjNS4zIDEyLjEgMTkuNSAxNy43IDMxLjYgMTIuNHMxNy43LTE5LjUgMTIuNC0zMS42QzE1NiAxNjUuOCAxNTIgMTQ3LjQgMTUyIDEyOHM0LTM3LjggMTEuMy01NC40ek00NTYuNyA1NC40Yy01LjMtMTIuMS0xOS41LTE3LjctMzEuNi0xMi40cy0xNy43IDE5LjUtMTIuNCAzMS42QzQyMCA5MC4yIDQyNCAxMDguNiA0MjQgMTI4cy00IDM3LjgtMTEuMyA1NC40Yy01LjMgMTIuMSAuMiAyNi4zIDEyLjQgMzEuNnMyNi4zLS4yIDMxLjYtMTIuNEM0NjYuNSAxNzkgNDcyIDE1NC4xIDQ3MiAxMjhzLTUuNS01MS0xNS4zLTczLjZ6XCJdXG59O1xuY29uc3QgZmFEb3duTG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb3duLWxvbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImxvbmctYXJyb3ctYWx0LWRvd25cIl0sIFwiZjMwOVwiLCBcIk0yIDMzNC41Yy0zLjggOC44LTIgMTkgNC42IDI2bDEzNiAxNDRjNC41IDQuOCAxMC44IDcuNSAxNy40IDcuNXMxMi45LTIuNyAxNy40LTcuNWwxMzYtMTQ0YzYuNi03IDguNC0xNy4yIDQuNi0yNnMtMTIuNS0xNC41LTIyLTE0LjVsLTcyIDAgMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMjg4LTcyIDBjLTkuNiAwLTE4LjIgNS43LTIyIDE0LjV6XCJdXG59O1xuY29uc3QgZmFMb25nQXJyb3dBbHREb3duID0gZmFEb3duTG9uZztcbmNvbnN0IGZhUmFua2luZ1N0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFua2luZy1zdGFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTYxXCIsIFwiTTM1My44IDU0LjFMMzMwLjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMEwyODYuMiA1NC4xbC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptNDE2IDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2hlc3NLaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWtpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODE4XSwgXCJmNDNmXCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDQ4IDE1MiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwYzAgNS4zLTEgMTAuNS0zLjEgMTUuNEwzNjggNDAwIDgwIDQwMCAzLjEgMjE1LjRDMSAyMTAuNSAwIDIwNS4zIDAgMjAwYzAtMjIuMSAxNy45LTQwIDQwLTQwbDE1MiAwIDAtNDgtMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM4LjYgNDczLjRMODAgNDMybDI4OCAwIDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZMNTQuNiA1MTJDNDIuMSA1MTIgMzIgNTAxLjkgMzIgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkhhcmFzc2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24taGFyYXNzaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQ5XCIsIFwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU5LjQgMzA0LjVMODggMjU2LjkgODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQ0LjcgNDcuNCA1Ny4xYzExLjMgMTMuNiAzMS41IDE1LjUgNDUuMSA0LjJzMTUuNS0zMS41IDQuMi00NS4xbC03My43LTg4LjljLTE4LjItMjItNDUuMy0zNC43LTczLjktMzQuN2wtMzUuOSAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOXpNNDgwIDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NjQgMzQ0bDAgNTguNy00MS40LTQxLjRjLTcuMy03LjMtMTcuNi0xMC42LTI3LjgtOXMtMTguOSA4LjEtMjMuNSAxNy4zbC00OCA5NmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zTDQwOC44IDQzOGw1NC43IDU0LjdjMTIuNCAxMi40IDI5LjEgMTkuMyA0Ni42IDE5LjNjMzYuNCAwIDY1LjktMjkuNSA2NS45LTY1LjlMNTc2IDM0NGMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NnpNMjg4IDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bS0uOCA0OS43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ycy0uNyAxNy41IDcuMiAyMS41bDQ4IDI0YzcuOSA0IDE3LjUgLjcgMjEuNS03LjJzLjctMTcuNS03LjItMjEuNWwtNDgtMjR6XCJdXG59O1xuY29uc3QgZmFCcmF6aWxpYW5SZWFsU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmF6aWxpYW4tcmVhbC1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNDZjXCIsIFwiTTQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguMmMxMi41IDIuMyAyNC43IDYuNCAzNi4yIDEyLjFsMTAuMSA1LjFjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM2wtMTAuMi01LjFjLTkuOS01LTIwLjktNy41LTMyLTcuNWwtMS43IDBjLTI5LjggMC01My45IDI0LjEtNTMuOSA1My45YzAgMjIgMTMuNCA0MS44IDMzLjkgNTBsNTIgMjAuOGM0NC43IDE3LjkgNzQuMSA2MS4yIDc0LjEgMTA5LjRsMCAzLjRjMCA1MS4yLTMzLjYgOTQuNi04MCAxMDkuMmwwIDIxLjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOS40Yy0xNS0zLjUtMjkuNC05LjctNDIuMy0xOC4zbC0yMy40LTE1LjZjLTE0LjctOS44LTE4LjctMjkuNy04LjktNDQuNHMyOS43LTE4LjcgNDQuNC04LjlMMzYxLjIgMzg5YzEwLjggNy4yIDIzLjQgMTEgMzYuMyAxMWMyNy45IDAgNTAuNS0yMi42IDUwLjUtNTAuNWwwLTMuNGMwLTIyLTEzLjQtNDEuOC0zMy45LTUwbC01Mi0yMC44QzMxNy4zIDI1Ny40IDI4OCAyMTQuMSAyODggMTY1LjlDMjg4IDExNCAzMjEuNSA3MCAzNjggNTQuMkwzNjggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjAgNjQgMzIwbDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMjg4IDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwTDY0IDk2bDAgMTYwelwiXVxufTtcbmNvbnN0IGZhTGFuZG1hcmtEb21lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhbmRtYXJrLWRvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhbmRtYXJrLWFsdFwiXSwgXCJmNzUyXCIsIFwiTTI0OCAwbDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMC43QzM2OC40IDQ4LjEgNDMxLjkgMTExLjYgNDQ1LjMgMTkybDIuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyLjcgMEM4MC4xIDExMS42IDE0My42IDQ4LjEgMjI0IDM0LjdMMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek02NCAyODhsNjQgMCAwIDEyOCA0MCAwIDAtMTI4IDY0IDAgMCAxMjggNDggMCAwLTEyOCA2NCAwIDAgMTI4IDQwIDAgMC0xMjggNjQgMCAwIDEzMi4zYy42IC4zIDEuMiAuNyAxLjggMS4xbDQ4IDMyYzExLjcgNy44IDE3IDIyLjQgMTIuOSAzNS45UzQ5NC4xIDUxMiA0ODAgNTEyTDMyIDUxMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFMNjQgMjg4elwiXVxufTtcbmNvbnN0IGZhTGFuZG1hcmtBbHQgPSBmYUxhbmRtYXJrRG9tZTtcbmNvbnN0IGZhQXJyb3dVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzg1OTNdLCBcImYwNjJcIiwgXCJNMjE0LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4yIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43TDMyOS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFUdiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0dicsXG4gIGljb246IFs2NDAsIDUxMiwgWzYzNzE3LCBcInRlbGV2aXNpb25cIiwgXCJ0di1hbHRcIl0sIFwiZjI2Y1wiLCBcIk02NCA2NGwwIDI4OCA1MTIgMCAwLTI4OEw2NCA2NHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNTc2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xMjggNDQ4bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVRlbGV2aXNpb24gPSBmYVR2O1xuY29uc3QgZmFUdkFsdCA9IGZhVHY7XG5jb25zdCBmYVNocmltcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaHJpbXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk0MjRdLCBcImU0NDhcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnMyOC43IDY0IDY0IDY0bDEgMGMzLjcgODguOSA3NyAxNjAgMTY3IDE2MGw1NiAwIDAtMTkyLTI0IDBMODguOCAxMjggNjQgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQwMCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDY0IDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMWMwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42YzAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGFza3NcIl0sIFwiZjBhZVwiLCBcIk0xNTIuMSAzOC4yYzkuOSA4LjkgMTAuNyAyNCAxLjggMzMuOWwtNzIgODBjLTQuNCA0LjktMTAuNiA3LjgtMTcuMiA3LjlzLTEyLjktMi40LTE3LjYtN0w3IDExM0MtMi4zIDEwMy42LTIuMyA4OC40IDcgNzlzMjQuNi05LjQgMzMuOSAwbDIyLjEgMjIuMSA1NS4xLTYxLjJjOC45LTkuOSAyNC0xMC43IDMzLjktMS44em0wIDE2MGM5LjkgOC45IDEwLjcgMjQgMS44IDMzLjlsLTcyIDgwYy00LjQgNC45LTEwLjYgNy44LTE3LjIgNy45cy0xMi45LTIuNC0xNy42LTdMNyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi4xIDIyLjEgNTUuMS02MS4yYzguOS05LjkgMjQtMTAuNyAzMy45LTEuOHpNMjI0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2MCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDggMzY4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVRhc2tzID0gZmFMaXN0Q2hlY2s7XG5jb25zdCBmYUp1Z0RldGVyZ2VudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqdWctZGV0ZXJnZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTE5XCIsIFwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyczEwLjctMjQgMjQtMjRsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtdXNlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTQyLCBcInVzZXItY2lyY2xlXCJdLCBcImYyYmRcIiwgXCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yYzM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6XCJdXG59O1xuY29uc3QgZmFVc2VyQ2lyY2xlID0gZmFDaXJjbGVVc2VyO1xuY29uc3QgZmFVc2VyU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItc2hpZWxkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA1XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzEuOCAwIDMuNS0uMiA1LjMtLjVjLTc2LjMtNTUuMS05OS44LTE0MS0xMDMuMS0yMDAuMmMtMTYuMS00LjgtMzMuMS03LjMtNTAuNy03LjNsLTkxLjQgMHptMzA4LjgtNzguM2wtMTIwIDQ4QzM1OCAyNzcuNCAzNTIgMjg2LjIgMzUyIDI5NmMwIDYzLjMgMjUuOSAxNjguOCAxMzQuOCAyMTQuMmM1LjkgMi41IDEyLjYgMi41IDE4LjUgMEM2MTQuMSA0NjQuOCA2NDAgMzU5LjMgNjQwIDI5NmMwLTkuOC02LTE4LjYtMTUuMS0yMi4zbC0xMjAtNDhjLTUuNy0yLjMtMTIuMS0yLjMtMTcuOCAwek01OTEuNCAzMTJjLTMuOSA1MC43LTI3LjIgMTE2LjctOTUuNCAxNDkuN2wwLTE4Ny44TDU5MS40IDMxMnpcIl1cbn07XG5jb25zdCBmYVdpbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjcyZVwiLCBcIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem02NCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NkwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xMjggNTEybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2FyQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLWJ1cnN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJjYXItY3Jhc2hcIl0sIFwiZjVlMVwiLCBcIk0xNzYgOGMtNi42IDAtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NEw1NS42IDY4LjljLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM3MtNC42IDEyLjItMS40IDE3LjlsMzkuNSA2OS4xTDEwLjkgMjA2LjRjLTUuNCAzLjctOCAxMC4zLTYuNSAxNi43czYuNyAxMS4yIDEzLjEgMTIuMmw3OC43IDEyLjJMOTAuNiAzMjdjLS41IDYuNSAzLjEgMTIuNyA5IDE1LjVzMTIuOSAxLjggMTcuOC0yLjZsMzUuMy0zMi41IDkuNS0zNS40IDEwLjQtMzguNmM4LTI5LjkgMzAuNS01Mi4xIDU3LjktNjAuOWw0MS01OS4yYzExLjMtMTYuMyAyNi40LTI4LjkgNDMuNS0zNy4yYy0uNC0uNi0uOC0xLjItMS4zLTEuOGMtNC4xLTUuMS0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0QzE4OC40IDEyIDE4Mi42IDggMTc2IDh6TTM2Ny43IDE2MS41bDEzNS42IDM2LjNjNi41IDEuOCAxMS4zIDcuNCAxMS44IDE0LjJsNC42IDU2LjUtMjAxLjUtNTQgMzIuMi00Ni42YzMuOC01LjYgMTAuOC04LjEgMTcuMy02LjR6bS02OS45LTMwbC00Ny45IDY5LjNjLTIxLjYgMy00MC4zIDE4LjYtNDYuMyA0MWwtMTAuNCAzOC42LTE2LjYgNjEuOC04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNmw4LjMtMzAuOSAyNDcuMyA2Ni4zLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45TDU5NSAzODhsMTAuNC0zOC42YzYtMjIuNC0yLjUtNDUuMi0xOS42LTU4LjdsLTYuOC04NGMtMi43LTMzLjctMjYuNC02Mi01OS03MC44TDM4NC4yIDk5LjdjLTMyLjctOC44LTY3LjMgNC04Ni41IDMxLjh6bS0xNyAxMzFhMjQgMjQgMCAxIDEgLTEyLjQgNDYuNCAyNCAyNCAwIDEgMSAxMi40LTQ2LjR6bTIxNy45IDgzLjJBMjQgMjQgMCAxIDEgNTQ1IDM1OC4xYTI0IDI0IDAgMSAxIC00Ni40LTEyLjR6XCJdXG59O1xuY29uc3QgZmFDYXJDcmFzaCA9IGZhQ2FyQnVyc3Q7XG5jb25zdCBmYVkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneScsXG4gIGljb246IFszODQsIDUxMiwgWzEyMV0sIFwiNTlcIiwgXCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43TDM3OCA4Mi42YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHpcIl1cbn07XG5jb25zdCBmYVBlcnNvblNub3dib2FyZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tc25vd2JvYXJkaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTM4LCBcInNub3dib2FyZGluZ1wiXSwgXCJmN2NlXCIsIFwiTTIwOS43IDMuNGMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zbDI1IDUwIDQyLjQgOC41YzE5LjUgMy45IDM3LjggMTIuMyA1My41IDI0LjVsMTI2LjEgOTguMWMxNCAxMC45IDE2LjUgMzEgNS42IDQ0LjlzLTMxIDE2LjUtNDQuOSA1LjZsLTcyLjEtNTYuMS03MS41IDMxLjggMzMuMSAyNy42YzIzLjIgMTkuMyAzMy41IDUwIDI2LjcgNzkuNGwtMTcuNCA3NS4yYy0yLjIgOS40LTguMiAxNi44LTE2LjEgMjFsODYuNSAzMy4xYzQuNiAxLjggOS40IDIuNiAxNC4zIDIuNmwyOC4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4LjIgMGMtMTAuOCAwLTIxLjQtMi0zMS41LTUuOEw2MC4xIDM3MS4zYy0xMS41LTQuNC0yMi0xMS4yLTMwLjgtMjBMNyAzMjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi40IDIyLjRjNCA0IDguNyA3LjEgMTQgOS4xbDIyLjQgOC42Yy0uOC0xLjYtMS41LTMuMi0yLjEtNC45Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjVMMTkyIDI2NC45bDAtNTMuMmMwLTI0LjIgMTMuNy00Ni40IDM1LjQtNTcuMmw0NS4yLTIyLjYtNy41LTEuNWMtMTkuNC0zLjktMzUuOS0xNi41LTQ0LjctMzQuMWwtMjUtNTBjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjl6TTEzOSAzNTAuMWwxNTkgNjAuOWMtMi4xLTUuNi0yLjYtMTEuOS0xLjEtMTguMmwxNy40LTc1LjJjMS40LTUuOS0uNy0xMi01LjMtMTUuOWwtNTIuOC00NCAwIDE4LjhjMCAyMC43LTEzLjIgMzktMzIuOCA0NS41TDEzOSAzNTAuMXpNNDMyIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhU25vd2JvYXJkaW5nID0gZmFQZXJzb25Tbm93Ym9hcmRpbmc7XG5jb25zdCBmYVRydWNrRmFzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1mYXN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJzaGlwcGluZy1mYXN0XCJdLCBcImY0OGJcIiwgXCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA0OEwxNiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDIwOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDE2MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwIDE3NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDIyNGwtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDE0NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDI4OGwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDEyOCAwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY0IDAtMzIgMC0xOC43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxMTQuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0w0MTYgOTZsMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEwxMTIgMHpNNTQ0IDIzNy4zbDAgMTguNy0xMjggMCAwLTk2IDUwLjcgMEw1NDQgMjM3LjN6TTE2MCAzNjhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIl1cbn07XG5jb25zdCBmYVNoaXBwaW5nRmFzdCA9IGZhVHJ1Y2tGYXN0O1xuY29uc3QgZmFGaXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zpc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMzFdLCBcImY1NzhcIiwgXCJNMTgwLjUgMTQxLjVDMjE5LjcgMTA4LjUgMjcyLjYgODAgMzM2IDgwczExNi4zIDI4LjUgMTU1LjUgNjEuNWMzOS4xIDMzIDY2LjkgNzIuNCA4MSA5OS44YzQuNyA5LjIgNC43IDIwLjEgMCAyOS4zYy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjhDNDUyLjMgNDAzLjUgMzk5LjQgNDMyIDMzNiA0MzJzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlTLTMgMzQ4LjcgNC4yIDMzNi4xTDUwIDI1NiA0LjIgMTc1LjljLTcuMi0xMi42LTUtMjguNCA1LjMtMzguNnMyNi4xLTEyLjIgMzguNy00LjlsODkuNyA1Mi4zYzEyLjItMTQuNiAyNi41LTI5LjQgNDIuNy00My4xek00NDggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFVc2VyR3JhZHVhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1ncmFkdWF0ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwMVwiLCBcIk0yMTkuMyAuNWMzLjEtLjYgNi4zLS42IDkuNCAwbDIwMCA0MEM0MzkuOSA0Mi43IDQ0OCA1Mi42IDQ0OCA2NHMtOC4xIDIxLjMtMTkuMyAyMy41TDM1MiAxMDIuOWwwIDU3LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhzLTEyOC01Ny4zLTEyOC0xMjhsMC01Ny4xTDQ4IDkzLjNsMCA2NS4xIDE1LjcgNzguNGMuOSA0LjctLjMgOS42LTMuMyAxMy4zcy03LjYgNS45LTEyLjQgNS45bC0zMiAwYy00LjggMC05LjMtMi4xLTEyLjQtNS45cy00LjMtOC42LTMuMy0xMy4zTDE2IDE1OC40bDAtNzEuOEM2LjUgODMuMyAwIDc0LjMgMCA2NEMwIDUyLjYgOC4xIDQyLjcgMTkuMyA0MC41bDIwMC00MHpNMTExLjkgMzI3LjdjMTAuNS0zLjQgMjEuOCAuNCAyOS40IDguNWw3MSA3NS41YzYuMyA2LjcgMTcgNi43IDIzLjMgMGw3MS03NS41YzcuNi04LjEgMTguOS0xMS45IDI5LjQtOC41QzQwMSAzNDguNiA0NDggNDA5LjQgNDQ4IDQ4MS4zYzAgMTctMTMuOCAzMC43LTMwLjcgMzAuN0wzMC43IDUxMkMxMy44IDUxMiAwIDQ5OC4yIDAgNDgxLjNjMC03MS45IDQ3LTEzMi43IDExMS45LTE1My42elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlSGFsZlN0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtaGFsZi1zdHJva2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NjgwLCBcImFkanVzdFwiXSwgXCJmMDQyXCIsIFwiTTQ0OCAyNTZjMC0xMDYtODYtMTkyLTE5Mi0xOTJsMCAzODRjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUFkanVzdCA9IGZhQ2lyY2xlSGFsZlN0cm9rZTtcbmNvbnN0IGZhQ2xhcHBlcmJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsYXBwZXJib2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzMVwiLCBcIk00NDggMzJsLTg2LjEgMC0xIDEtMTI3IDEyNyA5Mi4xIDAgMS0xTDQ1My44IDMyLjNjLTEuOS0uMi0zLjgtLjMtNS44LS4zem02NCAxMjhsMC02NGMwLTE1LjEtNS4zLTI5LjEtMTQtNDBsLTEwNCAxMDRMNTEyIDE2MHpNMjk0LjEgMzJsLTkyLjEgMC0xIDFMNzMuOSAxNjBsOTIuMSAwIDEtMSAxMjctMTI3ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjQgNi4xIDAgMS0xIDEyNy0xMjdMNjQgMzJ6TTUxMiAxOTJMMCAxOTIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVSYWRpYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXJhZGlhdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NjIsIFwicmFkaWF0aW9uLWFsdFwiXSwgXCJmN2JhXCIsIFwiTTI1NiA2NGExOTIgMTkyIDAgMSAxIDAgMzg0IDE5MiAxOTIgMCAxIDEgMC0zODR6bTAgNDQ4QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDI1NmMwLTIwLjcgMTEuMy0zOC44IDI4LTQ4LjVsLTM2LTYyLjNjLTguOC0xNS4zLTI4LjctMjAuOC00Mi05Yy0yNS42IDIyLjYtNDMuOSA1My4zLTUwLjkgODguMUM5NS43IDI0MS41IDExMC4zIDI1NiAxMjggMjU2bDcyIDB6bTI4IDQ4LjVsLTM2IDYyLjRjLTguOCAxNS4zLTMuNiAzNS4yIDEzLjEgNDAuOGMxNiA1LjQgMzMuMSA4LjMgNTAuOSA4LjNzMzQuOS0yLjkgNTAuOS04LjNjMTYuNy01LjYgMjEuOS0yNS41IDEzLjEtNDAuOGwtMzYtNjIuNGMtOC4yIDQuOC0xNy44IDcuNS0yOCA3LjVzLTE5LjgtMi43LTI4LTcuNXpNMzEyIDI1Nmw3MiAwYzE3LjcgMCAzMi4zLTE0LjUgMjguOC0zMS44Yy03LTM0LjgtMjUuMy02NS41LTUwLjktODguMWMtMTMuMi0xMS43LTMzLjEtNi4zLTQyIDlsLTM2IDYyLjNjMTYuNyA5LjcgMjggMjcuOCAyOCA0OC41em0tNTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhUmFkaWF0aW9uQWx0ID0gZmFDaXJjbGVSYWRpYXRpb247XG5jb25zdCBmYUJhc2ViYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2ViYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzU4LCA5OTE4LCBcImJhc2ViYWxsLWJhbGxcIl0sIFwiZjQzM1wiLCBcIk02Mi43IDIyMy40Yy00LjggLjQtOS43IC42LTE0LjcgLjZjLTE1LjYgMC0zMC44LTItNDUuMi01LjlDMTkuMiAxMDcuMSAxMDcuMSAxOS4yIDIxOC4xIDIuOEMyMjIgMTcuMiAyMjQgMzIuNCAyMjQgNDhjMCA0LjktLjIgOS44LS42IDE0LjdjLS43IDguOCA1LjggMTYuNSAxNC42IDE3LjNzMTYuNS01LjggMTcuMy0xNC42Yy41LTUuNyAuNy0xMS41IC43LTE3LjNjMC0xNi41LTEuOS0zMi42LTUuNi00Ny45YzEuOCAwIDMuNy0uMSA1LjYtLjFDMzk3LjQgMCA1MTIgMTE0LjYgNTEyIDI1NmMwIDEuOSAwIDMuNy0uMSA1LjZjLTE1LjQtMy42LTMxLjQtNS42LTQ3LjktNS42Yy01LjggMC0xMS42IC4yLTE3LjMgLjdjLTguOCAuNy0xNS40IDguNS0xNC42IDE3LjNzOC41IDE1LjQgMTcuMyAxNC42YzQuOC0uNCA5LjctLjYgMTQuNy0uNmMxNS42IDAgMzAuOCAyIDQ1LjIgNS45QzQ5Mi44IDQwNC45IDQwNC45IDQ5Mi44IDI5My45IDUwOS4yQzI5MCA0OTQuOCAyODggNDc5LjYgMjg4IDQ2NGMwLTQuOSAuMi05LjggLjYtMTQuN2MuNy04LjgtNS44LTE2LjUtMTQuNi0xNy4zcy0xNi41IDUuOC0xNy4zIDE0LjZjLS41IDUuNy0uNyAxMS41LS43IDE3LjNjMCAxNi41IDEuOSAzMi42IDUuNiA0Ny45Yy0xLjggMC0zLjcgLjEtNS42IC4xQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2YzAtMS45IDAtMy43IC4xLTUuNkMxNS40IDI1NC4xIDMxLjUgMjU2IDQ4IDI1NmM1LjggMCAxMS42LS4yIDE3LjMtLjdjOC44LS43IDE1LjQtOC41IDE0LjYtMTcuM3MtOC41LTE1LjQtMTcuMy0xNC42ek0xMjEuMyAyMDhjLTggMy43LTExLjYgMTMuMi03LjkgMjEuMnMxMy4yIDExLjYgMjEuMiA3LjljNDUuMi0yMC44IDgxLjctNTcuMiAxMDIuNS0xMDIuNWMzLjctOCAuMi0xNy41LTcuOS0yMS4ycy0xNy41LS4yLTIxLjIgNy45Yy0xNy42IDM4LjMtNDguNSA2OS4yLTg2LjcgODYuN3ptMjc3LjIgNzQuN2MtMy43LTgtMTMuMi0xMS42LTIxLjItNy45Yy00NS4yIDIwLjgtODEuNyA1Ny4yLTEwMi41IDEwMi41Yy0zLjcgOC0uMiAxNy41IDcuOSAyMS4yczE3LjUgLjIgMjEuMi03LjljMTcuNi0zOC4zIDQ4LjUtNjkuMiA4Ni43LTg2LjdjOC0zLjcgMTEuNi0xMy4yIDcuOS0yMS4yelwiXVxufTtcbmNvbnN0IGZhQmFzZWJhbGxCYWxsID0gZmFCYXNlYmFsbDtcbmNvbnN0IGZhSmV0RmlnaHRlclVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2pldC1maWdodGVyLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTE4XCIsIFwiTTI3MC43IDkuN0MyNjguMiAzLjggMjYyLjQgMCAyNTYgMHMtMTIuMiAzLjgtMTQuNyA5LjdMMTk3LjIgMTEyLjZjLTMuNCA4LTUuMiAxNi41LTUuMiAyNS4ybDAgNzctMTQ0IDg0TDQ4IDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDU2IDAgMzIgMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNDQgMCAwIDMyLjdMMTMzLjUgNDY4Yy0zLjUgMy01LjUgNy40LTUuNSAxMmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwIDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0IDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC00LjYtMi05LTUuNS0xMkwzMjAgNDE2LjdsMC0zMi43IDE0NCAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgMC0zMiAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTguOC0xNDQtODQgMC03N2MwLTguNy0xLjgtMTcuMi01LjItMjUuMkwyNzAuNyA5Ljd6XCJdXG59O1xuY29uc3QgZmFEaWFncmFtUHJvamVjdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFncmFtLXByb2plY3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInByb2plY3QtZGlhZ3JhbVwiXSwgXCJmNTQyXCIsIFwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDE5MiAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTE5MiAwIDAgMTZjMCAxLjctLjEgMy40LS4zIDVMMjcyIDI4OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0xLjcgLjEtMy40IC4zLTVMMTQ0IDIyNGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHpcIl1cbn07XG5jb25zdCBmYVByb2plY3REaWFncmFtID0gZmFEaWFncmFtUHJvamVjdDtcbmNvbnN0IGZhQ29weSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3B5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMGM1XCIsIFwiTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHpcIl1cbn07XG5jb25zdCBmYVZvbHVtZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW1widm9sdW1lLW11dGVcIiwgXCJ2b2x1bWUtdGltZXNcIl0sIFwiZjZhOVwiLCBcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQyNSAxNjdsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhVm9sdW1lTXV0ZSA9IGZhVm9sdW1lWG1hcms7XG5jb25zdCBmYVZvbHVtZVRpbWVzID0gZmFWb2x1bWVYbWFyaztcbmNvbnN0IGZhSGFuZFNwYXJrbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtc3BhcmtsZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwNWRcIiwgXCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE5NS4xYy0xMS45IDQuOC0yMS4zIDE0LjktMjUgMjcuOGwtOC45IDMxLjJMNDc4LjkgMzkxQzQ2MC42IDM5Ni4zIDQ0OCA0MTMgNDQ4IDQzMmMwIDE4LjkgMTIuNSAzNS42IDMwLjYgNDAuOUM0NDguNCA0OTcuNCA0MDkuOSA1MTIgMzY4IDUxMmwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZMMjg4IDM1MmwtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN0wyODggMzg0bDcuMyAyNS40YzEuMSAzLjkgNC43IDYuNiA4LjcgNi42czcuNi0yLjcgOC43LTYuNkwzMjAgMzg0bDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdMMzIwIDM1MmwtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2bC0xMy44IDQ4LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1MzYgNDU2bC00OC4zLTEzLjhjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDhsMTMuOC00OC4zYzEuMy00LjYgNS41LTcuNyAxMC4yLTcuN3M4LjkgMy4xIDEwLjIgNy43TDU4NCA0MDh6XCJdXG59O1xuY29uc3QgZmFHcmlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImdyaXAtaG9yaXpvbnRhbFwiXSwgXCJmNThkXCIsIFwiTTEyOCAxMzZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgOTZDMTcuOSA5NiAwIDExMy45IDAgMTM2bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6bTMyLTE5MmwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTI4OCAzMjhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0zMi0xOTJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek00NDggMzI4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpcIl1cbn07XG5jb25zdCBmYUdyaXBIb3Jpem9udGFsID0gZmFHcmlwO1xuY29uc3QgZmFTaGFyZUZyb21TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUtZnJvbS1zcXVhcmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MTUwOSwgXCJzaGFyZS1zcXVhcmVcIl0sIFwiZjE0ZFwiLCBcIk0zNTIgMjI0bC00Ni41IDBjLTQ1IDAtODEuNSAzNi41LTgxLjUgODEuNWMwIDIyLjMgMTAuMyAzNC4zIDE5LjIgNDAuNWM2LjggNC43IDEyLjggMTIgMTIuOCAyMC4zYzAgOS44LTggMTcuOC0xNy44IDE3LjhsLTIuNSAwYy0yLjQgMC00LjgtLjQtNy4xLTEuNEMyMTAuOCAzNzQuOCAxMjggMzMzLjQgMTI4IDI0MGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NGw4MCAwIDAtNjEuM0MzNTIgMTUuNSAzNjcuNSAwIDM4Ni43IDBjOC42IDAgMTYuOCAzLjIgMjMuMiA4LjlMNTQ4LjEgMTMzLjNjNy42IDYuOCAxMS45IDE2LjUgMTEuOSAyNi43cy00LjMgMTkuOS0xMS45IDI2LjdsLTEzOSAxMjUuMWMtNS45IDUuMy0xMy41IDguMi0yMS40IDguMmwtMy43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTgwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgOTZ6XCJdXG59O1xuY29uc3QgZmFTaGFyZVNxdWFyZSA9IGZhU2hhcmVGcm9tU3F1YXJlO1xuY29uc3QgZmFDaGlsZENvbWJhdGFudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGlsZC1jb21iYXRhbnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNoaWxkLXJpZmxlXCJdLCBcImU0ZTBcIiwgXCJNMTc2IDEyOEE2NCA2NCAwIDEgMCAxNzYgMGE2NCA2NCAwIDEgMCAwIDEyOHptLTggMzUybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE3OS41TDI2MC45IDMyMWM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTUxLjctODIuMWMtMTcuNi0yNy45LTQ4LjMtNDQuOS04MS4yLTQ0LjlsLTEyLjMgMGMtMzMgMC02My43IDE2LjktODEuMiA0NC45TDM2LjkgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwTDEwNCAzMDAuNSAxMDQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OCAwTDQzMiAwIDQxNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45TDQ4NCA0MDBsNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjNMNDgwIDE2MGMwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0NjQgMTZjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhQ2hpbGRSaWZsZSA9IGZhQ2hpbGRDb21iYXRhbnQ7XG5jb25zdCBmYUd1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUxOWJcIiwgXCJNNTI4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOEwzMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2TDAgMjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwIDBjMjAuOCAwIDM2LjEgMTkuNiAzMSAzOS44TDMzIDQ0MC4yYy0yLjQgOS42LS4yIDE5LjcgNS44IDI3LjVTNTQuMSA0ODAgNjQgNDgwbDk2IDBjMTQuNyAwIDI3LjUtMTAgMzEtMjQuMkwyMTcgMzUybDEwNC41IDBjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJMNDAwLjkgMjQwbDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEw0NzcuMyAyMDhsNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRMMjI5IDMwNGwxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVNxdWFyZVBob25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1waG9uZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicGhvbmUtc3F1YXJlXCJdLCBcImYwOThcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTAuNyA5Ni43YzkuNy0yLjYgMTkuOSAyLjMgMjMuNyAxMS42bDIwIDQ4YzMuNCA4LjIgMSAxNy42LTUuOCAyMy4yTDE2OCAyMzEuN2MxNi42IDM1LjIgNDUuMSA2My43IDgwLjMgODAuM2wyMC4yLTI0LjdjNS42LTYuOCAxNS05LjIgMjMuMi01LjhsNDggMjBjOS4zIDMuOSAxNC4yIDE0IDExLjYgMjMuN2wtMTIgNDRDMzM2LjkgMzc4IDMyOSAzODQgMzIwIDM4NEMxOTYuMyAzODQgOTYgMjgzLjcgOTYgMTYwYzAtOSA2LTE2LjkgMTQuNy0xOS4zbDQ0LTEyelwiXVxufTtcbmNvbnN0IGZhUGhvbmVTcXVhcmUgPSBmYVNxdWFyZVBob25lO1xuY29uc3QgZmFQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDEzMywgNjE1NDMsIFwiYWRkXCJdLCBcIjJiXCIsIFwiTTI1NiA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0NEw0OCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDAgMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC0xNDR6XCJdXG59O1xuY29uc3QgZmFBZGQgPSBmYVBsdXM7XG5jb25zdCBmYUV4cGFuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleHBhbmQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNjVcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNjR6TTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwek00NDggMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDb21wdXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wdXRlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRlNVwiLCBcIk0zODQgOTZsMCAyMjRMNjQgMzIwIDY0IDk2bDMyMCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy4zIDAtMTAuNyAzMkw5NiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTc0LjcgMC0xMC43LTMyTDM4NCAzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTQ2NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwem0xNiA2NGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tMTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3htYXJrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDczLCAxMDAwNSwgMTAwMDYsIDEwMDYwLCAyMTUsIFwiY2xvc2VcIiwgXCJtdWx0aXBseVwiLCBcInJlbW92ZVwiLCBcInRpbWVzXCJdLCBcImYwMGRcIiwgXCJNMzQyLjYgMTUwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDIxMC43IDg2LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE0Ni43IDI1NiA0MS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAzMDEuMyAyOTcuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy4zIDI1NiAzNDIuNiAxNTAuNnpcIl1cbn07XG5jb25zdCBmYUNsb3NlID0gZmFYbWFyaztcbmNvbnN0IGZhTXVsdGlwbHkgPSBmYVhtYXJrO1xuY29uc3QgZmFSZW1vdmUgPSBmYVhtYXJrO1xuY29uc3QgZmFUaW1lcyA9IGZhWG1hcms7XG5jb25zdCBmYUFycm93c1VwRG93bkxlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvd3NcIl0sIFwiZjA0N1wiLCBcIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40TDIyNCAyMjRsLTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjRMMjI0IDI4OGwwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40TDI4OCAyODhsMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNEwyODggMjI0bDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpcIl1cbn07XG5jb25zdCBmYUFycm93cyA9IGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0O1xuY29uc3QgZmFDaGFsa2JvYXJkVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFsa2JvYXJkLXVzZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNoYWxrYm9hcmQtdGVhY2hlclwiXSwgXCJmNTFjXCIsIFwiTTE2MCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjM5LjIgMGMtMTEuOC0yNS41LTI5LjktNDcuNS01Mi40LTY0bDk5LjYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA2NCAwIDAtMjg4TDIyNCA2NGwwIDQ5LjFDMjA1LjIgMTAyLjIgMTgzLjMgOTYgMTYwIDk2bDAtMzJ6bTAgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6TTEzMy4zIDM1Mmw1My4zIDBDMjYwLjMgMzUyIDMyMCA0MTEuNyAzMjAgNDg1LjNjMCAxNC43LTExLjkgMjYuNy0yNi43IDI2LjdMMjYuNyA1MTJDMTEuOSA1MTIgMCA1MDAuMSAwIDQ4NS4zQzAgNDExLjcgNTkuNyAzNTIgMTMzLjMgMzUyelwiXVxufTtcbmNvbnN0IGZhQ2hhbGtib2FyZFRlYWNoZXIgPSBmYUNoYWxrYm9hcmRVc2VyO1xuY29uc3QgZmFQZXNvU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXNvLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUyMjJcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0bDAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0IDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDgwIDBjNjguNCAwIDEyNy43LTM5IDE1Ni44LTk2bDE5LjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjcgMGMuNS01LjMgLjctMTAuNiAuNy0xNnMtLjItMTAuNy0uNy0xNmwuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOS4yIDBDMzAzLjcgNzEgMjQ0LjQgMzIgMTc2IDMyTDY0IDMyem0xOTAuNCA5Nkw5NiAxMjhsMC0zMiA4MCAwYzMwLjUgMCA1OC4yIDEyLjIgNzguNCAzMnpNOTYgMTkybDE5MC45IDBjLjcgNS4yIDEuMSAxMC42IDEuMSAxNnMtLjQgMTAuOC0xLjEgMTZMOTYgMjI0bDAtMzJ6bTE1OC40IDk2Yy0yMC4yIDE5LjgtNDcuOSAzMi03OC40IDMybC04MCAwIDAtMzIgMTU4LjQgMHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLXNoaWVsZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkOFwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE1OS00Mi40IDE3TDMwNCAyMjRsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDAgMjQuMiAwIDcuOGMwIC45IC4xIDEuNyAuMiAyLjZjMi4zIDU4LjEgMjQuMSAxNDQuOCA5OC43IDIwMS41Yy01LjggMi41LTEyLjIgMy45LTE4LjkgMy45bC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNjQgMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem04MCAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjMuMSAyMjUuN2M1LjctMi4zIDEyLjEtMi4zIDE3LjggMGwxMjAgNDhDNTcwIDI3Ny40IDU3NiAyODYuMiA1NzYgMjk2YzAgNjMuMy0yNS45IDE2OC44LTEzNC44IDIxNC4yYy01LjkgMi41LTEyLjYgMi41LTE4LjUgMEMzMTMuOSA0NjQuOCAyODggMzU5LjMgMjg4IDI5NmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMC00OHpNNTI3LjQgMzEyTDQzMiAyNzMuOGwwIDE4Ny44YzY4LjItMzMgOTEuNS05OSA5NS40LTE0OS43elwiXVxufTtcbmNvbnN0IGZhQmFieSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWJ5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNzdjXCIsIFwiTTE1MiA4OGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSAxNTIgODh6TTM5LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDEzMS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVsMCAzNi4zLTE5MiAwIDAtMzYuM2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMNDguNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45em04OS44IDE4NC44bDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzcwIDQzOC42IDY4LjEgNDE3IDc5LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNkwyODQgNDE5LjRsLTI2LTM3LjJ6XCJdXG59O1xuY29uc3QgZmFVc2Vyc0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU5MlwiLCBcIk0yMTEuMiA5NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTMyIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4NS42IDBjMTAuMS0zOS40IDM4LjYtNzEuNSA3NS44LTg2LjZjLTkuNy02LTIxLjItOS40LTMzLjQtOS40bC05NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHptNDYxLjYgMzJsODIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwYy0xMS43IDAtMjIuNyAzLjEtMzIuMSA4LjZjMzguMSAxNC44IDY3LjQgNDcuMyA3Ny43IDg3LjR6TTM5MS4yIDIyNi40Yy02LjktMS42LTE0LjItMi40LTIxLjYtMi40bC05NiAwYy04LjUgMC0xNi43IDEuMS0yNC41IDMuMWMtMzAuOCA4LjEtNTUuNiAzMS4xLTY2LjEgNjAuOWMtMy41IDEwLTUuNSAyMC44LTUuNSAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTExLjItMS45LTIyLTUuNS0zMmMtMTAuOC0zMC43LTM2LjgtNTQuMi02OC45LTYxLjZ6TTU2My4yIDk2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMzIxLjYgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2elwiXVxufTtcbmNvbnN0IGZhUXVvdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3F1b3RlLWxlZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MjIwLCBcInF1b3RlLWxlZnQtYWx0XCJdLCBcImYxMGRcIiwgXCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMiAwLTMyIDAtNzJ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyIDAtMzIgMC03MnpcIl1cbn07XG5jb25zdCBmYVF1b3RlTGVmdEFsdCA9IGZhUXVvdGVMZWZ0O1xuY29uc3QgZmFUcmFjdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWN0b3InLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2NjhdLCBcImY3MjJcIiwgXCJNOTYgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjY2LjMgMGMyNi4yIDAgNDkuNyAxNS45IDU5LjQgNDAuMkwzNzMuNyAxNjAgNDgwIDE2MGwwLTMzLjhjMC0yNC44IDUuOC00OS4zIDE2LjktNzEuNmwyLjUtNWM3LjktMTUuOCAyNy4xLTIyLjIgNDIuOS0xNC4zczIyLjIgMjcuMSAxNC4zIDQyLjlsLTIuNSA1Yy02LjcgMTMuMy0xMC4xIDI4LTEwLjEgNDIuOWwwIDMzLjggNTYgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ1LjRjMCAxNi41LTguNSAzMS45LTIyLjYgNDAuN2wtNDMuMyAyNy4xYy0xNC4yLTUuOS0yOS44LTkuMi00Ni4xLTkuMmMtMzkuMyAwLTc0LjEgMTguOS05NiA0OGwtODAgMGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOC4yIDBjLTEuNyA0LjgtMy43IDkuNS01LjggMTQuMWw1LjggNS44YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0yMi42IDIyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01LjgtNS44Yy00LjYgMi4yLTkuMyA0LjEtMTQuMSA1LjhsMCA4LjJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOC4yYy00LjgtMS43LTkuNS0zLjctMTQuMS01LjhsLTUuOCA1LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQwLjIgNDQ5LjFjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDUuOC01LjhjLTIuMi00LjYtNC4xLTkuMy01LjgtMTQuMUwzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOC4yIDBjMS43LTQuOCAzLjctOS41IDUuOC0xNC4xbC01LjgtNS44Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wyMi42LTIyLjZjOS05IDIxLjktMTEuNSAzMy4xLTcuNmwwLS42IDAtMzIgMC05NnptMTcwLjMgMEwxNjAgNjRsMCA5NiAzMiAwIDExMi43IDBMMjY2LjMgNjR6TTE3NiAyNTZhODAgODAgMCAxIDAgMCAxNjAgODAgODAgMCAxIDAgMC0xNjB6TTUyOCA0NDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wIDY0Yy00OC42IDAtODgtMzkuNC04OC04OGMwLTI5LjggMTQuOC01Ni4xIDM3LjQtNzJjMTQuMy0xMC4xIDMxLjgtMTYgNTAuNi0xNmMyLjcgMCA1LjMgLjEgNy45IC4zYzQ0LjkgNCA4MC4xIDQxLjcgODAuMSA4Ny43YzAgNDguNi0zOS40IDg4LTg4IDg4elwiXVxufTtcbmNvbnN0IGZhVHJhc2hBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlXCJdLCBcImY4MjlcIiwgXCJNMTYzLjggMEwyODQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgNy4yLTE0LjNDMTQwLjYgNi44IDE1MS43IDAgMTYzLjggMHpNMzIgMTI4bDM4NCAwTDM5NC44IDQ2N2MtMS42IDI1LjMtMjIuNiA0NS00Ny45IDQ1bC0yNDUuOCAwYy0yNS4zIDAtNDYuMy0xOS43LTQ3LjktNDVMMzIgMTI4em0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlMMjAwIDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM0LjEgMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIl1cbn07XG5jb25zdCBmYVRyYXNoUmVzdG9yZSA9IGZhVHJhc2hBcnJvd1VwO1xuY29uc3QgZmFBcnJvd0Rvd25VcExvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi11cC1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGIwXCIsIFwiTTE1MC42IDUwMi42bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE2MCA0MDIuNyAxNjAgMjg4bDI1NiAwIDAtMTZjMC0xNy4yIDMuOS0zMy41IDEwLjgtNDhMMzUyIDIyNGwwLTExNC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDEwOS4zIDI4OCAyMjRsLTEyOCAwLTY0IDAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMTE0LjdMNTQuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE2MCAxOTJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjggNjQgMHpNMjg4IDMyMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4LTY0IDB6bTI0MC04MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMybDAgNDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFMaW5lc0xlYW5pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGluZXMtbGVhbmluZycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTUxZVwiLCBcIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhUnVsZXJDb21iaW5lZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci1jb21iaW5lZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU0NlwiLCBcIk0uMiA0NjguOUMyLjcgNDkzLjEgMjMuMSA1MTIgNDggNTEybDk2IDAgMzIwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzNjhsMCA5NmMwIDEuNyAuMSAzLjMgLjIgNC45elwiXVxufTtcbmNvbnN0IGZhQ29weXJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvcHlyaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE2OV0sIFwiZjFmOVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTk5LjQgMzEyLjZjMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNTAgNTAtMTMxIDUwLTE4MSAwcy01MC0xMzEgMC0xODFzMTMxLTUwIDE4MSAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTMxLjItMzEuMi04MS45LTMxLjItMTEzLjEgMHMtMzEuMiA4MS45IDAgMTEzLjF6XCJdXG59O1xuY29uc3QgZmFFcXVhbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXF1YWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjI3NjRdLCBcIjNkXCIsIFwiTTQ4IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw0OCAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM1MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDQ4IDMyMHpcIl1cbn07XG5jb25zdCBmYUJsZW5kZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxlbmRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUxN1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMGw2NCAwIDMyIDBMNDcwLjEgMGMyMS4xIDAgMzYuNCAyMC4xIDMwLjkgNDAuNEw0OTQuNSA2NCAzMzYgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTQ5LjggMC0xNy41IDY0TDMzNiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTIzLjYgMC0xNy41IDY0TDMzNiAyNTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTcuNSAwTDQxNiAzNTJsLTI1NiAwLTguNy05Nkw2NCAyNTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE0NS41IDE5MkwxMzMuOCA2NCA2NCA2NGwwIDEyOCA4MS41IDB6TTE0NCAzODRsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE0NCA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFUZWV0aCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZWV0aCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjYyZVwiLCBcIk0wIDEyOEMwIDc1IDQzIDMyIDk2IDMybDM4NCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjh6bTE3NiA0OGwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHptMTc2LTQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDggMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek05NiAzODRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptODAtNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0em0xNzYgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptODAtMTc2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em00OCAxNzZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHpcIl1cbn07XG5jb25zdCBmYVNoZWtlbFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hla2VsLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MzYyLCBcImlsc1wiLCBcInNoZWtlbFwiLCBcInNoZXFlbFwiLCBcInNoZXFlbC1zaWduXCJdLCBcImYyMGJcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDk2bDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwelwiXVxufTtcbmNvbnN0IGZhSWxzID0gZmFTaGVrZWxTaWduO1xuY29uc3QgZmFTaGVrZWwgPSBmYVNoZWtlbFNpZ247XG5jb25zdCBmYVNoZXFlbCA9IGZhU2hla2VsU2lnbjtcbmNvbnN0IGZhU2hlcWVsU2lnbiA9IGZhU2hla2VsU2lnbjtcbmNvbnN0IGZhTWFwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODUwNiwgNjIwNzJdLCBcImYyNzlcIiwgXCJNMzg0IDQ3Ni4xTDE5MiA0MjEuMmwwLTM4NS4zTDM4NCA5MC44bDAgMzg1LjN6bTMyLTEuMmwwLTM4Ni41TDU0My4xIDM3LjVjMTUuOC02LjMgMzIuOSA1LjMgMzIuOSAyMi4zbDAgMzM0LjhjMCA5LjgtNiAxOC42LTE1LjEgMjIuM0w0MTYgNDc0Ljh6TTE1LjEgOTUuMUwxNjAgMzcuMmwwIDM4Ni41TDMyLjkgNDc0LjVDMTcuMSA0ODAuOCAwIDQ2OS4yIDAgNDUyLjJMMCAxMTcuNGMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zelwiXVxufTtcbmNvbnN0IGZhUm9ja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEzNVwiLCBcIk0xNTYuNiAzODQuOUwxMjUuNyAzNTRjLTguNS04LjUtMTEuNS0yMC44LTcuNy0zMi4yYzMtOC45IDctMjAuNSAxMS44LTMzLjhMMjQgMjg4Yy04LjYgMC0xNi42LTQuNi0yMC45LTEyLjFzLTQuMi0xNi43IC4yLTI0LjFsNTIuNS04OC41YzEzLTIxLjkgMzYuNS0zNS4zIDYxLjktMzUuM2w4Mi4zIDBjMi40LTQgNC44LTcuNyA3LjItMTEuM0MyODkuMS00LjEgNDExLjEtOC4xIDQ4My45IDUuM2MxMS42IDIuMSAyMC42IDExLjIgMjIuOCAyMi44YzEzLjQgNzIuOSA5LjMgMTk0LjgtMTExLjQgMjc2LjdjLTMuNSAyLjQtNy4zIDQuOC0xMS4zIDcuMmwwIDgyLjNjMCAyNS40LTEzLjQgNDktMzUuMyA2MS45bC04OC41IDUyLjVjLTcuNCA0LjQtMTYuNiA0LjUtMjQuMSAuMnMtMTIuMS0xMi4yLTEyLjEtMjAuOWwwLTEwNy4yYy0xNC4xIDQuOS0yNi40IDguOS0zNS43IDExLjljLTExLjIgMy42LTIzLjQgLjUtMzEuOC03Ljh6TTM4NCAxNjhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhUGhvdG9GaWxtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob3RvLWZpbG0nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInBob3RvLXZpZGVvXCJdLCBcImY4N2NcIiwgXCJNMjU2IDBMNTc2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIyNGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDc2IDEwNi43QzQ3MS41IDEwMCA0NjQgOTYgNDU2IDk2cy0xNS41IDQtMjAgMTAuN2wtNTYgODRMMzYyLjcgMTY5Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmw4MCAwIDQ4IDAgMTQ0IDBjOC45IDAgMTctNC45IDIxLjItMTIuN3MzLjctMTcuMy0xLjItMjQuNmwtOTYtMTQ0ek0zMzYgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNjQgMTI4bDk2IDAgMCAyNTYgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE2MCAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NHptOCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0wIDEwNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0wIDEwNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMzYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVBob3RvVmlkZW8gPSBmYVBob3RvRmlsbTtcbmNvbnN0IGZhRm9sZGVyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjVkXCIsIFwiTTQ0OCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwelwiXVxufTtcbmNvbnN0IGZhU3RvcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RvcmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NGVcIiwgXCJNNTQ3LjYgMTAzLjhMNDkwLjMgMTMuMUM0ODUuMiA1IDQ3Ni4xIDAgNDY2LjQgMEwxMDkuNiAwQzk5LjkgMCA5MC44IDUgODUuNyAxMy4xTDI4LjMgMTAzLjhjLTI5LjYgNDYuOC0zLjQgMTExLjkgNTEuOSAxMTkuNGM0IC41IDguMSAuOCAxMi4xIC44YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjIgMCA0OS4zLTExLjQgNjUuMi0yOWMxNiAxNy42IDM5LjEgMjkgNjUuMiAyOWM0LjEgMCA4LjEtLjMgMTIuMS0uOGM1NS41LTcuNCA4MS44LTcyLjUgNTIuMS0xMTkuNHpNNDk5LjcgMjU0LjljMCAwIDAgMC0uMSAwYy01LjMgLjctMTAuNyAxLjEtMTYuMiAxLjFjLTEyLjQgMC0yNC4zLTEuOS0zNS40LTUuM0w0NDggMzg0bC0zMjAgMCAwLTEzMy40Yy0xMS4yIDMuNS0yMy4yIDUuNC0zNS42IDUuNGMtNS41IDAtMTEtLjQtMTYuMy0xLjFsLS4xIDBjLTQuMS0uNi04LjEtMS4zLTEyLTIuM0w2NCAzODRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDAtMTMxLjRjLTQgMS04IDEuOC0xMi4zIDIuM3pcIl1cbn07XG5jb25zdCBmYUFycm93VHJlbmRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy10cmVuZC11cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5OFwiLCBcIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuN0wzNDIuNiAzNzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYwelwiXVxufTtcbmNvbnN0IGZhUGx1Z0NpcmNsZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTVlXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVNpZ25IYW5naW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ24taGFuZ2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnblwiXSwgXCJmNGQ5XCIsIFwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHptOTYgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduID0gZmFTaWduSGFuZ2luZztcbmNvbnN0IGZhQmV6aWVyQ3VydmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmV6aWVyLWN1cnZlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTViXCIsIFwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDRMMTIxLjYgODRDMTExLjIgNjIuNyA4OS4zIDQ4IDY0IDQ4QzI4LjcgNDggMCA3Ni43IDAgMTEyczI4LjcgNjQgNjQgNjRjMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2bDY2LjkgMGMtNTguOSAzOS42LTk4LjkgMTA1LTEwNCAxODBMODAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy4zIDBjNS45LTY3IDQ4LjUtMTIzLjQgMTA3LjUtMTQ5LjFjOC42IDEyLjcgMjMuMiAyMS4xIDM5LjggMjEuMWw2NCAwYzE2LjYgMCAzMS4xLTguNCAzOS44LTIxLjFjNTkgMjUuNyAxMDEuNiA4Mi4xIDEwNy41IDE0OS4xbC0zLjMgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuNSAwYy01LTc1LTQ1LjEtMTQwLjQtMTA0LTE4MGw2Ni45IDBjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2TDQwMCA4NGwwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHpcIl1cbn07XG5jb25zdCBmYUJlbGxTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWxsLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4Mjc3LCA2MTk0M10sIFwiZjFmNlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC05MC4yLTcwLjdjLjItLjQgLjQtLjkgLjYtMS4zYzUuMi0xMS41IDMuMS0yNS01LjMtMzQuNGwtNy40LTguM0M0OTcuMyAzMTkuMiA0ODAgMjczLjkgNDgwIDIyNi44bDAtMTguOGMwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOEwzNTIgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOS4yYy00Mi42IDguNi03OSAzNC4yLTEwMiA2OS4zTDM4LjggNS4xek00MDYuMiA0MTZMMTYwIDIyMi4xbDAgNC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzExNS40IDQxNiAxMjggNDE2bDI3OC4yIDB6bS00MC45IDc3LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wtNjQgMC02NCAwYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zczI4LjMgMTguNyA0NS4zIDE4LjdzMzMuMy02LjcgNDUuMy0xOC43elwiXVxufTtcbmNvbnN0IGZhVGFibGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1widGFibGV0LWFuZHJvaWRcIl0sIFwiZjNmYlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgNDMybDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTk2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFUYWJsZXRBbmRyb2lkID0gZmFUYWJsZXQ7XG5jb25zdCBmYVNjaG9vbEZsYWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWZsYWcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NmVcIiwgXCJNMjg4IDBMNDAwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC03OS4zIDAgODkuNiA2NEw1MTIgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNzYgMCAwLTExMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDExMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEwMS43IDBMMjU2IDk1LjUgMjU2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem00OCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTM2OCAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek04MCAzNTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpcIl1cbn07XG5jb25zdCBmYUZpbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3NVwiLCBcIk04Ni42IDkuNEM3NC4xLTMuMSA1My45LTMuMSA0MS40IDkuNHMtMTIuNSAzMi44IDAgNDUuM0wxMjIuNyAxMzYgMzAuNiAyMjguMWMtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44TDE0OC4xIDQ4MS40YzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMEw0NzQuMyAyOTAuOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMMzIyLjkgMzcuN2MtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDE2OCA5MC43IDg2LjYgOS40ek0xNjggMTgxLjNsNDkuNCA0OS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjEzLjMgMTM2bDUzLjEtNTMuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwTDQyOS4xIDIzNC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNMMzg2LjcgMjg4IDY3LjUgMjg4YzEuNC01LjQgNC4yLTEwLjQgOC40LTE0LjZMMTY4IDE4MS4zelwiXVxufTtcbmNvbnN0IGZhQW5nbGVVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZS11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg5NjNdLCBcImYxMDZcIiwgXCJNMjAxLjQgMTM3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMjA1LjMgODYuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MHpcIl1cbn07XG5jb25zdCBmYURydW1zdGlja0JpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJ1bXN0aWNrLWJpdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2ZDdcIiwgXCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjJDNjkuOCAzMjAuNiA2NSAzMjAgNjAgMzIwYy0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMmMwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjVjLTQuMi0xNi45LTUuMi0zNy4xIDcuMi00OS40bDI2LjgtMjYuOGM2LTYgMTQuMS05LjQgMjIuNi05LjRsODkuMiAwYzYuMyAwIDEyLjQtLjMgMTguNS0xYzExLjktMS4yIDE2LjQtMTUuNSAxMC44LTI2Yy04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01M2MwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4IDAgMTUuNyAuOCAyMy4yIDIuNGMxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42QzQ5NC41IDYyLjUgNDIyLjUgMCAzMzYgMEMyMzguOCAwIDE2MCA3OC44IDE2MCAxNzZsMCA4OS4yelwiXVxufTtcbmNvbnN0IGZhSG9sbHlCZXJyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob2xseS1iZXJyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhYVwiLCBcIk0yNTYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yNzYuOCAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjJjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjYgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42Yy0zNC42IDAtNjIuNy0yOC4xLTYyLjctNjIuN2wwLTMyYzAtMTYuNC0xNi0yNy45LTMxLjYtMjIuOGwtMTIuOCA0LjNjLTE4IDYtMzcuMyA2LjUtNTUuNiAxLjVsLTI5LjYtOC4xYy0yLjktLjgtNS45LTEtOC43LS43YzQuMiA5LjcgNS44IDIwLjggMy43IDMyLjNMMjc1IDI5OC43Yy0xLjUgOC40LTEuNCAxNyAuNSAyNS4zbDUuMyAyMy45YzIuOCAxMi43IDEuMSAyNS4yLTQgMzUuOXpNMTI3LjYgMjM0LjVjLTE1LjUtNS4yLTMxLjYgNi40LTMxLjYgMjIuOGwwIDMyQzk2IDMyMy45IDY3LjkgMzUyIDMzLjMgMzUyYy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZsNC4zIDEyLjhjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi4yIDQ4OS40IDIyLjYgNTA1LjggNDAuNSA1MDFMNjAgNDk1LjZjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOGwwLTMyYzAtMzQuNiAyOC4xLTYyLjcgNjIuNy02Mi43YzE2LjQgMCAyNy45LTE2IDIyLjgtMzEuNmwtNC4zLTEyLjhjLTYtMTgtNi41LTM3LjMtMS41LTU1LjZsNS4zLTE5LjRjNC45LTE3LjktMTEuNi0zNC40LTI5LjUtMjkuNUwxOTYgMjQwLjRjLTE4LjMgNS0zNy42IDQuNC01NS42LTEuNWwtMTIuOC00LjN6TTM4NCAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25MZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gIGljb246IFszMjAsIDUxMiwgWzkwMDFdLCBcImYwNTNcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnpcIl1cbn07XG5jb25zdCBmYUJhY3RlcmlhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhY3RlcmlhJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDU5XCIsIFwiTTMwNC45IC43Yy05LjYtMi43LTE5LjUgMi44LTIyLjMgMTIuNGwtNC4zIDE1LjJjLTguMy0uNi0xNi44IDAtMjUuMiAxLjljLTcuMyAxLjctMTQuMyAzLjUtMjEuMSA1LjVsLTUuNS0xMi43Yy0zLjktOS4xLTE0LjUtMTMuNC0yMy42LTkuNXMtMTMuNCAxNC41LTkuNSAyMy42bDQuNCAxMC40Yy0xNi42IDYuNy0zMS43IDE0LjQtNDUuNCAyMi44TDE0NyA2MmMtNS41LTguMy0xNi43LTEwLjUtMjUtNXMtMTAuNSAxNi43LTUgMjVsNiA5Yy0xMy43IDExLTI1LjUgMjIuOC0zNS44IDM0LjlsLTEwLThjLTcuOC02LjItMTkuMS01LTI1LjMgMi44cy01IDE5LjEgMi44IDI1LjNMNjUuOSAxNTVjLTEuOCAyLjgtMy41IDUuNy01LjEgOC41Yy02LjYgMTEuNC0xMS44IDIyLjYtMTYgMzNsLTgtMy4yYy05LjItMy43LTE5LjcgLjgtMjMuNCAxMHMuOCAxOS43IDEwIDIzLjRsMTAuNCA0LjJjLS4yIC44LS40IDEuNS0uNSAyLjNjLTIuMiA5LjMtMy40IDE3LjMtNC4xIDIzLjRjLS40IDMuMS0uNiA1LjctLjggNy44Yy0uMSAxLjEtLjEgMi0uMiAyLjhsLS4xIDEuMSAwIC41IDAgLjIgMCAuMWMwIDAgMCAuMSAyOS4xIDFjMCAwIDAgMC0uMSAwTDI4IDI2OS4zYy0uMSAzLjEgMCA2LjEgLjIgOS4xbC0xNS4yIDQuM0MzLjUgMjg1LjQtMiAyOTUuNCAuNyAzMDQuOXMxMi43IDE1LjEgMjIuMyAxMi40bDE1LjYtNC41YzcuNiAxMy42IDE4LjkgMjUgMzIuNiAzMi42TDY2LjcgMzYxYy0yLjcgOS42IDIuOCAxOS41IDEyLjQgMjIuM3MxOS41LTIuOCAyMi4zLTEyLjRsNC4zLTE1LjJjMS4yIC4xIDIuNCAuMiAzLjYgLjJjMTUuNiAuNSAzMC4zLTMuMyA0My0xMC4ybDkgOWM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC03LjItNy4yYzkuMy0xMi42IDE1LjItMjcuOCAxNi4zLTQ0LjVsNy4xIDNjOS4xIDMuOSAxOS43LS4zIDIzLjYtOS41cy0uMy0xOS43LTkuNS0yMy42bC04LjYtMy43YzYuNC05LjkgMTcuMy0yMi40IDM2LjktMzMuM2wxLjMgNC40YzIuNyA5LjYgMTIuNyAxNS4xIDIyLjMgMTIuNHMxNS4xLTEyLjcgMTIuNC0yMi4zbC0yLjMtOC4xYzMuOC0xLjEgNy43LTIuMSAxMS45LTMuMWMxMS42LTIuNyAyMi4xLTcuNyAzMS4xLTE0LjRsNy4yIDcuMmM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC05LTljNy42LTEzLjkgMTEuMy0zMC4xIDEwLjEtNDYuNmwxNS4yLTQuM2M5LjYtMi43IDE1LjEtMTIuNyAxMi40LTIyLjNTMzcwLjYgNjQgMzYxIDY2LjdsLTE1LjYgNC41Yy03LjctMTMuOS0xOS4xLTI1LjEtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zek0xMTIgMjcybC00OC0xLjVjMCAwIDAgMCAwIDBjMTEuNyAuNCAyNy4zIC45IDQ4IDEuNnptMTYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NC00OGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0zMjIuNyA0ODljLTIuNyA5LjYgMi44IDE5LjUgMTIuNCAyMi4zczE5LjUtMi44IDIyLjItMTIuNGw0LjMtMTUuMmM4LjMgLjYgMTYuOCAwIDI1LjItMS45YzcuMy0xLjcgMTQuMy0zLjUgMjEuMS01LjVsNS41IDEyLjdjMy45IDkuMSAxNC41IDEzLjQgMjMuNiA5LjVzMTMuNC0xNC41IDkuNS0yMy42bC00LjQtMTAuNGMxNi42LTYuNyAzMS43LTE0LjQgNDUuNC0yMi44TDQ5MyA0NTBjNS41IDguMyAxNi43IDEwLjUgMjUgNXMxMC41LTE2LjcgNS0yNWwtNi05YzEzLjctMTEgMjUuNS0yMi44IDM1LjgtMzQuOWwxMCA4YzcuOCA2LjIgMTkuMSA1IDI1LjMtMi44czUtMTkuMS0yLjgtMjUuM0w1NzQuMSAzNTdjMS44LTIuOCAzLjUtNS43IDUuMS04LjVjNi42LTExLjQgMTEuOC0yMi42IDE2LTMzbDggMy4yYzkuMiAzLjcgMTkuNy0uOCAyMy40LTEwcy0uOC0xOS43LTEwLTIzLjRsLTEwLjQtNC4yYy4yLS44IC40LTEuNSAuNS0yLjNjMi4yLTkuMyAzLjQtMTcuMyA0LjEtMjMuNGMuNC0zLjEgLjYtNS43IC44LTcuOGMuMS0xLjEgLjEtMiAuMi0yLjhsLjEtMS4xIDAtLjUgMC0uMiAwLS4xYzAgMCAwLS4xLTI5LjEtMWMwIDAgMCAwIC4xIDBsMjkuMSAuOWMuMS0zLjEgMC02LjEtLjItOS4xbDE1LjItNC4zYzkuNi0yLjcgMTUuMS0xMi43IDEyLjQtMjIuM3MtMTIuNy0xNS4xLTIyLjMtMTIuNGwtMTUuNiA0LjVjLTcuNi0xMy42LTE4LjktMjUtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zcy0xOS41IDIuOC0yMi4zIDEyLjRsLTQuMyAxNS4yYy0xLjItLjEtMi40LS4yLTMuNi0uMmMtMTUuNi0uNS0zMC4zIDMuMy00MyAxMC4ybC05LTljLTctNy0xOC40LTctMjUuNSAwcy03IDE4LjQgMCAyNS41bDcuMiA3LjJjLTkuMyAxMi42LTE1LjIgMjcuOC0xNi4zIDQ0LjVsLTcuMS0zYy05LjEtMy45LTE5LjcgLjMtMjMuNiA5LjVzLjMgMTkuNyA5LjUgMjMuNmw4LjYgMy43Yy02LjQgOS45LTE3LjMgMjIuNC0zNi45IDMzLjNsLTEuMy00LjRjLTIuNy05LjYtMTIuNy0xNS4xLTIyLjMtMTIuNHMtMTUuMSAxMi43LTEyLjQgMjIuM2wyLjMgOC4xYy0zLjggMS4xLTcuNyAyLjEtMTEuOSAzLjFjLTExLjYgMi43LTIyLjEgNy43LTMxLjEgMTQuNGwtNy4yLTcuMmMtNy03LTE4LjQtNy0yNS41IDBzLTcgMTguNCAwIDI1LjVsOSA5Yy03LjYgMTMuOS0xMS4zIDMwLjEtMTAuMSA0Ni42bC0xNS4yIDQuM2MtOS42IDIuNy0xNS4xIDEyLjctMTIuNCAyMi4yczEyLjcgMTUuMSAyMi4zIDEyLjRsMTUuNi00LjVjNy43IDEzLjkgMTkuMSAyNS4xIDMyLjYgMzIuNkwzMjIuNyA0ODl6TTU3NiAyNDEuNWMwIDAgMCAwIDAgMGMtMTEuNy0uNC0yNy4zLS45LTQ4LTEuNmw0OCAxLjV6TTQ0OCAzODRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRMaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1saXphcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNThcIiwgXCJNMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMTEyIDAgODAgMCA0Ni41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgMTIgMCAxNiAwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjhMMjczLjkgMzUyIDI0MCAzNTJsLTgwIDAtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGw0OCAwIDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTgwIDBMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHpcIl1cbn07XG5jb25zdCBmYU5vdGRlZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3RkZWYnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZmVcIiwgXCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43bDAgMjY4LjZ6TTEwMi41IDQ0OGwxNzkuMSAwTDE5MiAzMTMuNyAxMDIuNSA0NDh6bTEyOC0xOTJMMzIwIDM5MC4zbDAtMjY4LjZMMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpcIl1cbn07XG5jb25zdCBmYURpc2Vhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzZWFzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdmYVwiLCBcIk0yMzYuNCA2MS40TDIyNyA3NS41Yy0yMS4zIDMyLTU5LjQgNDguNS05Ny4zIDQyLjFsLTU5LjYtOS45QzMzLjQgMTAxLjYgMCAxMjkuOSAuMSAxNjcuMWMwIDE1LjkgNi40IDMxLjIgMTcuNiA0Mi41bDI5LjIgMjkuMmMxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41YzAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjMgMzM1LjFDMjIuMiAzNDUuOSAxNiAzNjAuNyAxNiAzNzYuMmMwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNmwxMCAwYzI3LjIgMCA1My43IDkuMyA3NSAyNi4zTDI4Ny44IDQ2N2MxMC41IDguNCAyMy42IDEzIDM3IDEzYzMyLjcgMCA1OS4zLTI2LjUgNTkuMy01OS4zbDAtMjUuMmMwLTM0LjkgMjEuNC02Ni4yIDUzLjktNzguOGwzNi45LTE0LjNjMjIuNC04LjcgMzcuMi0zMC4zIDM3LjItNTQuM2MwLTI4LjEtMjAuMS01Mi4zLTQ3LjgtNTcuM2wtMjgtNS4xYy0zNi41LTYuNy02NS40LTM0LjUtNzMuNi03MC43bC03LjEtMzEuNUMzNDguOSA1My40IDMyMi4xIDMyIDI5MS4zIDMyYy0yMiAwLTQyLjYgMTEtNTQuOSAyOS40ek0xNjAgMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQnJpZWZjYXNlTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmllZmNhc2UtbWVkaWNhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ2OVwiLCBcIk0xODQgNDhsMTQ0IDBjNC40IDAgOCAzLjYgOCA4bDAgNDBMMTc2IDk2bDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwTDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE4NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptOTYgMTUyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR2VuZGVybGVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZW5kZXJsZXNzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjJkXCIsIFwiTTE5MiAxNDRhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0wIDI4OGExNzYgMTc2IDAgMSAwIDAtMzUyIDE3NiAxNzYgMCAxIDAgMCAzNTJ6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gIGljb246IFszMjAsIDUxMiwgWzkwMDJdLCBcImYwNTRcIiwgXCJNMzEwLjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDI1NiA3My40IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnpcIl1cbn07XG5jb25zdCBmYVJldHdlZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmV0d2VldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjA3OVwiLCBcIk0yNzIgNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44bDMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NmwxMTIgMHpNMzA0IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZMMzA0IDk2elwiXVxufTtcbmNvbnN0IGZhQ2FyUmVhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItcmVhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2FyLWFsdFwiXSwgXCJmNWRlXCIsIFwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNEw0MDIuOSAxOTJsLTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgODBjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDggMjU2IDAgMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNTYuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtODBjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI3Mmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQ2FyQWx0ID0gZmFDYXJSZWFyO1xuY29uc3QgZmFQdW1wU29hcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwdW1wLXNvYXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNmJcIiwgXCJNMTI4IDMybDAgOTYgMTI4IDAgMC0zMiA2MC4xIDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2wzMy45IDMzLjljMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzNzIuNyA1NS40Yy0xNS0xNS0zNS40LTIzLjQtNTYuNi0yMy40TDI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEybDE4Ni40IDBjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN2wtMTQ5LjEgMHpNMjU2IDM2MGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjljMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMjE5IDI3OS4xIDI1NiAzMjcuNSAyNTYgMzYwelwiXVxufTtcbmNvbnN0IGZhVmlkZW9TbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWRlby1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRlMlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC04Ni40LTY3LjcgMTMuOCA5LjJjOS44IDYuNSAyMi40IDcuMiAzMi45IDEuNnMxNi45LTE2LjQgMTYuOS0yOC4ybDAtMjU2YzAtMTEuOC02LjUtMjIuNi0xNi45LTI4LjJzLTIzLTUtMzIuOSAxLjZsLTk2IDY0TDQ0OCAxNzQuOWwwIDE3LjEgMCAxMjggMCA1LjgtMzItMjUuMUw0MTYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDExMy45IDY0IDM4LjggNS4xek00MDcgNDE2LjdMMzIuMyAxMjEuNWMtLjIgMi4xLS4zIDQuMy0uMyA2LjVsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMjMuNCAwIDQzLjktMTIuNiA1NS0zMS4zelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeVF1YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1xdWFydGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJiYXR0ZXJ5LTJcIl0sIFwiZjI0M1wiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTExMiA5NmwtOTYgMCAwIDEyOCA5NiAwIDAtMTI4elwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeTIgPSBmYUJhdHRlcnlRdWFydGVyO1xuY29uc3QgZmFSYWRpbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpbycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1MV0sIFwiZjhkN1wiLCBcIk00OTQuOCA0N2MxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMi44IDQ4MS4yIDFMNTEuNyAxMjYuOWMtOS40IDIuNy0xNy45IDcuMy0yNS4xIDEzLjJDMTAuNSAxNTEuNyAwIDE3MC42IDAgMTkybDAgNEwwIDMwNCAwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjI5LjUgMEw0OTQuOCA0N3pNMzY4IDI0MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNODAgMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTY0IDMyMGMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgMzM2Yy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDY0YzAtOC44IDcuMi0xNiAxNi0xNmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFCYWJ5Q2FycmlhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFieS1jYXJyaWFnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2FycmlhZ2UtYmFieVwiXSwgXCJmNzdkXCIsIFwiTTI1NiAxOTJMLjEgMTkyQzIuNyAxMTcuOSA0MS4zIDUyLjkgOTkgMTQuMWMxMy4zLTguOSAzMC44LTQuMyAzOS45IDguOEwyNTYgMTkyem0xMjgtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMjUuMi01LjggNTAuMi0xNyA3My41cy0yNy44IDQ0LjUtNDguNiA2Mi4zcy00NS41IDMyLTcyLjcgNDEuNlMyNTMuNCA0MTYgMjI0IDQxNnMtNTguNS01LTg1LjctMTQuNnMtNTEuOS0yMy44LTcyLjctNDEuNnMtMzcuMy0zOS00OC42LTYyLjNTMCAyNDkuMiAwIDIyNGwyMjQgMCAxNjAgMCAwLTY0ek04MCA0MTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNDAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIl1cbn07XG5jb25zdCBmYUNhcnJpYWdlQmFieSA9IGZhQmFieUNhcnJpYWdlO1xuY29uc3QgZmFUcmFmZmljTGlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhZmZpYy1saWdodCcsXG4gIGljb246IFszMjAsIDUxMiwgWzEyODY3OF0sIFwiZjYzN1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwbDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6bTk2IDQxNmE0OCA0OCAwIDEgMSAwLTk2IDQ4IDQ4IDAgMSAxIDAgOTZ6bTQ4LTE3NmE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0tNDgtODBhNDggNDggMCAxIDEgMC05NiA0OCA0OCAwIDEgMSAwIDk2elwiXVxufTtcbmNvbnN0IGZhVGhlcm1vbWV0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlcm1vbWV0ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0OTFcIiwgXCJNOTYgMzgyLjFsMC04OC44YzAtMTQuOSA1LjktMjkuMSAxNi40LTM5LjZsMjcuMy0yNy4zIDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDUuNS00NS41QzM1NS4yIDEwLjkgMzgxLjQgMCA0MDguOCAwQzQ2NS44IDAgNTEyIDQ2LjIgNTEyIDEwMy4yYzAgMjcuNC0xMC45IDUzLjYtMzAuMiA3M0wyNTguMyAzOTkuNmMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRsLTg4LjggMEw0MSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODktODl6XCJdXG59O1xuY29uc3QgZmFWckNhcmRib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ci1jYXJkYm9hcmQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3MjlcIiwgXCJNNTc2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyMC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMzItNjRjOC44LTE3LjUgMjYuNy0yOC42IDQ2LjMtMjguNnMzNy41IDExLjEgNDYuMyAyOC42bDMyIDY0YzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNEw1NzYgNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0ek05NiAyNDBhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgMjQwem0zODQtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFIYW5kTWlkZGxlRmluZ2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtbWlkZGxlLWZpbmdlcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODQwNV0sIFwiZjgwNlwiLCBcIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNjQuMmMtOC41LTcuNi0xOS43LTEyLjItMzItMTIuMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3IDAgNzNjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtNjQgMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MzNTAgMjI3LjUgMzI5LjMgMjA4IDMwNCAyMDhjLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHpcIl1cbn07XG5jb25zdCBmYVBlcmNlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyY2VudCcsXG4gIGljb246IFszODQsIDUxMiwgWzYyMTAxLCA2Mjc4NSwgXCJwZXJjZW50YWdlXCJdLCBcIjI1XCIsIFwiTTM3NC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0zMjAgMzIwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDMyMC0zMjB6TTEyOCAxMjhBNjQgNjQgMCAxIDAgMCAxMjhhNjQgNjQgMCAxIDAgMTI4IDB6TTM4NCAzODRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwiXVxufTtcbmNvbnN0IGZhUGVyY2VudGFnZSA9IGZhUGVyY2VudDtcbmNvbnN0IGZhVHJ1Y2tNb3ZpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW92aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGRmXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzMDRsMCA4MCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwYzI2LjIgMCA0OS40LTEyLjYgNjQtMzJjMTQuNiAxOS40IDM3LjggMzIgNjQgMzJjNDQuMiAwIDgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMNDE2IDM4NGwzMy42IDBjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2bDEuNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQgMC0xNiAwLTEwLjNjMC05LjItMy4yLTE4LjItOS0yNS4zbC01OC44LTcxLjhjLTEwLjYtMTMtMjYuNS0yMC41LTQzLjMtMjAuNUw0ODAgMTQ0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTU4NSAyNTZsLTEwNSAwIDAtNjQgNDguOCAwYzIuNCAwIDQuNyAxLjEgNi4yIDIuOUw1ODUgMjU2ek01MjggMzY4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTc2IDQwMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek04MCAzNjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhR2xhc3NXYXRlckRyb3BsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2xhc3Mtd2F0ZXItZHJvcGxldCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRmNVwiLCBcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek04MyAyOTcuNUw2Ni40IDY0bDI1MS4zIDBMMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDBzLTQzLjkgMTAuMS02NCAwbC0xMy02LjV6TTI1NiAxOTZjMC0yNC0zMy43LTcwLjEtNTIuMi05My41Yy02LjEtNy43LTE3LjUtNy43LTIzLjYgMEMxNjEuNyAxMjUuOSAxMjggMTcyIDEyOCAxOTZjMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHpcIl1cbn07XG5jb25zdCBmYURpc3BsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzcGxheScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTE2M1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNzYgMC0xMC43IDMyTDE2MCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY5LjMgMEwzMzYgNDE2bDE3NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTUxMiA2NGwwIDI4OEw2NCAzNTIgNjQgNjRsNDQ4IDB6XCJdXG59O1xuY29uc3QgZmFGYWNlU21pbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zbWlsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU3OCwgXCJzbWlsZVwiXSwgXCJmMTE4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhU21pbGUgPSBmYUZhY2VTbWlsZTtcbmNvbnN0IGZhVGh1bWJ0YWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1idGFjaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODIwNCwgMTI4MzkyLCBcInRodW1iLXRhY2tcIl0sIFwiZjA4ZFwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOS41IDAgMTEuNCAxNDguMmMzNi43IDE5LjkgNjUuNyA1My4yIDc5LjUgOTQuN2wxIDNjMy4zIDkuOCAxLjYgMjAuNS00LjQgMjguOHMtMTUuNyAxMy4zLTI2IDEzLjNMMzIgMzUyYy0xMC4zIDAtMTkuOS00LjktMjYtMTMuM3MtNy43LTE5LjEtNC40LTI4LjhsMS0zYzEzLjgtNDEuNSA0Mi44LTc0LjggNzkuNS05NC43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgMzg0bDY0IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2elwiXVxufTtcbmNvbnN0IGZhVGh1bWJUYWNrID0gZmFUaHVtYnRhY2s7XG5jb25zdCBmYVRyb3BoeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm9waHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5NDJdLCBcImYwOTFcIiwgXCJNNDAwIDBMMTc2IDBjLTI2LjUgMC00OC4xIDIxLjgtNDcuMSA0OC4yYy4yIDUuMyAuNCAxMC42IC43IDE1LjhMMjQgNjRDMTAuNyA2NCAwIDc0LjcgMCA4OGMwIDkyLjYgMzMuNSAxNTcgNzguNSAyMDAuN2M0NC4zIDQzLjEgOTguMyA2NC44IDEzOC4xIDc1LjhjMjMuNCA2LjUgMzkuNCAyNiAzOS40IDQ1LjZjMCAyMC45LTE3IDM3LjktMzcuOSAzNy45TDE5MiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI2LjEgMEMzMzcgNDQ4IDMyMCA0MzEgMzIwIDQxMC4xYzAtMTkuNiAxNS45LTM5LjIgMzkuNC00NS42YzM5LjktMTEgOTMuOS0zMi43IDEzOC4yLTc1LjhDNTQyLjUgMjQ1IDU3NiAxODAuNiA1NzYgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRMNDQ2LjQgNjRjLjMtNS4yIC41LTEwLjQgLjctMTUuOEM0NDguMSAyMS44IDQyNi41IDAgNDAwIDB6TTQ4LjkgMTEybDg0LjQgMGM5LjEgOTAuMSAyOS4yIDE1MC4zIDUxLjkgMTkwLjZjLTI0LjktMTEtNTAuOC0yNi41LTczLjItNDguM2MtMzItMzEuMS01OC03Ni02My0xNDIuM3pNNDY0LjEgMjU0LjNjLTIyLjQgMjEuOC00OC4zIDM3LjMtNzMuMiA0OC4zYzIyLjctNDAuMyA0Mi44LTEwMC41IDUxLjktMTkwLjZsODQuNCAwYy01LjEgNjYuMy0zMS4xIDExMS4yLTYzIDE0Mi4zelwiXVxufTtcbmNvbnN0IGZhUGVyc29uUHJheWluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tcHJheWluZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODcyMCwgXCJwcmF5XCJdLCBcImY2ODNcIiwgXCJNMzUyIDY0QTY0IDY0IDAgMSAwIDIyNCA2NGE2NCA2NCAwIDEgMCAxMjggMHpNMjMyLjcgMjY0bDIyLjkgMzEuNWM2LjUgOC45IDE2LjMgMTQuNyAyNy4yIDE2LjFzMjEuOS0xLjcgMzAuNC04LjdsODgtNzJjMTcuMS0xNCAxOS42LTM5LjIgNS42LTU2LjNzLTM5LjItMTkuNi01Ni4zLTUuNmwtNTUuMiA0NS4yLTI2LjItMzZDMjUzLjYgMTU2LjcgMjI4LjYgMTQ0IDIwMiAxNDRjLTMwLjkgMC01OS4yIDE3LjEtNzMuNiA0NC40TDc5LjggMjgwLjljLTIwLjIgMzguNS05LjQgODUuOSAyNS42IDExMS44TDE1OC42IDQzMiA3MiA0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMjA4IDBjMTcuMyAwIDMyLjYtMTEuMSAzOC0yNy41cy0uMy0zNC40LTE0LjItNDQuN0wxODcuNyAzNTRsNDUtOTB6XCJdXG59O1xuY29uc3QgZmFQcmF5ID0gZmFQZXJzb25QcmF5aW5nO1xuY29uc3QgZmFIYW1tZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFtbWVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mjk2XSwgXCJmNmUzXCIsIFwiTTQxMy41IDIzNy41Yy0yOC4yIDQuOC01OC4yLTMuNi04MC0yNS40bC0zOC4xLTM4LjFDMjgwLjQgMTU5IDI3MiAxMzguOCAyNzIgMTE3LjZsMC0xMi4xTDE5Mi4zIDYyYy01LjMtMi45LTguNi04LjYtOC4zLTE0LjdzMy45LTExLjUgOS41LTE0bDQ3LjItMjFDMjU5LjEgNC4yIDI3OSAwIDI5OS4yIDBsMTguMSAwYzM2LjcgMCA3MiAxNCA5OC43IDM5LjFsNDQuNiA0MmMyNC4yIDIyLjggMzMuMiA1NS43IDI2LjYgODZMNTAzIDE4M2w4LThjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjQgMjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg4IDg4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjQtMjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDgtOC0xNy41LTE3LjV6TTI3LjQgMzc3LjFMMjYwLjkgMTgyLjZjMy41IDQuOSA3LjUgOS42IDExLjggMTRsMzguMSAzOC4xYzYgNiAxMi40IDExLjIgMTkuMiAxNS43TDEzNC45IDQ4NC42Yy0xNC41IDE3LjQtMzYgMjcuNC01OC42IDI3LjRDMzQuMSA1MTIgMCA0NzcuOCAwIDQzNS43YzAtMjIuNiAxMC4xLTQ0LjEgMjcuNC01OC42elwiXVxufTtcbmNvbnN0IGZhSGFuZFBlYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcGVhY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5OTk2XSwgXCJmMjViXCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek05My4zIDUxLjJMMTc1LjkgMjQwbC02OS45IDBMMzQuNyA3Ni44QzI3LjYgNjAuNiAzNSA0MS44IDUxLjIgMzQuN3MzNS4xIC4zIDQyLjEgMTYuNXptMjcgMjIxLjNsLS4yLS41IDY5LjkgMCAyNi4xIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNTYgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42YzEzLjIgMCAyNS40LTQgMzUuNi0xMC44YzguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjhjMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlsLTExLjYtMTEuNkM3Ny41IDQyOS41IDY0IDM5Ni45IDY0IDM2M2wwLTI3YzAtMzIuNyAyNC42LTU5LjcgNTYuMy02My41elwiXVxufTtcbmNvbnN0IGZhUm90YXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI2MCwgXCJzeW5jLWFsdFwiXSwgXCJmMmYxXCIsIFwiTTE0Mi45IDE0Mi45Yy0xNy41IDE3LjUtMzAuMSAzOC0zNy44IDU5LjhjLTUuOSAxNi43LTI0LjIgMjUuNC00MC44IDE5LjVzLTI1LjQtMjQuMi0xOS41LTQwLjhDNTUuNiAxNTAuNyA3My4yIDEyMiA5Ny42IDk3LjZjODcuMi04Ny4yIDIyOC4zLTg3LjUgMzE1LjgtMUw0NTUgNTVjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4ybDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04LjQgMGMwIDAgMCAwIDAgMEwzNDQgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQxLjEtNDEuMWMtNjIuNi02MS41LTE2My4xLTYxLjItMjI1LjMgMXpNMTYgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDcuNiAwIC43IDBMMTY4IDI4OGM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTQxLjEgNDEuMWM2Mi42IDYxLjUgMTYzLjEgNjEuMiAyMjUuMy0xYzE3LjUtMTcuNSAzMC4xLTM4IDM3LjgtNTkuOGM1LjktMTYuNyAyNC4yLTI1LjQgNDAuOC0xOS41czI1LjQgMjQuMiAxOS41IDQwLjhjLTEwLjggMzAuNi0yOC40IDU5LjMtNTIuOSA4My44Yy04Ny4yIDg3LjItMjI4LjMgODcuNS0zMTUuOCAxTDU3IDQ1N2MtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxNiA0NDkuNyAxNiA0NDBsMC0xMTkuNiAwLS43IDAtNy42elwiXVxufTtcbmNvbnN0IGZhU3luY0FsdCA9IGZhUm90YXRlO1xuY29uc3QgZmFTcGlubmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwaW5uZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMTBcIiwgXCJNMzA0IDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgNDE2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ4IDMwNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ2NC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNDIuOSA0MzdBNDggNDggMCAxIDAgNzUgMzY5LjEgNDggNDggMCAxIDAgMTQyLjkgNDM3em0wLTI5NC4yQTQ4IDQ4IDAgMSAwIDc1IDc1YTQ4IDQ4IDAgMSAwIDY3LjkgNjcuOXpNMzY5LjEgNDM3QTQ4IDQ4IDAgMSAwIDQzNyAzNjkuMSA0OCA0OCAwIDEgMCAzNjkuMSA0Mzd6XCJdXG59O1xuY29uc3QgZmFSb2JvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2JvdCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTMwMl0sIFwiZjU0NFwiLCBcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjcyYzAgMzkuOC0zMi4yIDcyLTcyIDcybC0zMDQgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC0yNzJjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjA4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDI1NmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0xNTIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek00OCAyMjRsMTYgMCAwIDE5Mi0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em01NDQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTkyIDE2IDB6XCJdXG59O1xuY29uc3QgZmFQZWFjZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZWFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NzRdLCBcImY2N2NcIiwgXCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOGwwLTE3NC4yQzEzMy4yIDgxLjkgNjQgMTYwLjkgNjQgMjU2YzAgMzQuNiA5LjIgNjcuMSAyNS4yIDk1LjF6bTI5My4xIDQ5LjVMMjg4IDMyMy41bDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xYzAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yTDQyMi44IDM1MS4xek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJdXG59O1xuY29uc3QgZmFHZWFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZWFycycsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiY29nc1wiXSwgXCJmMDg1XCIsIFwiTTMwOC41IDEzNS4zYzcuMS02LjMgOS45LTE2LjIgNi4yLTI1Yy0yLjMtNS4zLTQuOC0xMC41LTcuNi0xNS41TDMwNCA4OS40Yy0zLTUtNi4zLTkuOS05LjgtMTQuNmMtNS43LTcuNi0xNS43LTEwLjEtMjQuNy03LjFsLTI4LjIgOS4zYy0xMC43LTguOC0yMy0xNi0zNi4yLTIwLjlMMTk5IDI3LjFjLTEuOS05LjMtOS4xLTE2LjctMTguNS0xNy44QzE3My45IDguNCAxNjcuMiA4IDE2MC40IDhsLS43IDBjLTYuOCAwLTEzLjUgLjQtMjAuMSAxLjJjLTkuNCAxLjEtMTYuNiA4LjYtMTguNSAxNy44TDExNSA1Ni4xYy0xMy4zIDUtMjUuNSAxMi4xLTM2LjIgMjAuOUw1MC41IDY3LjhjLTktMy0xOS0uNS0yNC43IDcuMWMtMy41IDQuNy02LjggOS42LTkuOSAxNC42bC0zIDUuM2MtMi44IDUtNS4zIDEwLjItNy42IDE1LjZjLTMuNyA4LjctLjkgMTguNiA2LjIgMjVsMjIuMiAxOS44QzMyLjYgMTYxLjkgMzIgMTY4LjkgMzIgMTc2cy42IDE0LjEgMS43IDIwLjlMMTEuNSAyMTYuN2MtNy4xIDYuMy05LjkgMTYuMi02LjIgMjVjMi4zIDUuMyA0LjggMTAuNSA3LjYgMTUuNmwzIDUuMmMzIDUuMSA2LjMgOS45IDkuOSAxNC42YzUuNyA3LjYgMTUuNyAxMC4xIDI0LjcgNy4xbDI4LjItOS4zYzEwLjcgOC44IDIzIDE2IDM2LjIgMjAuOWw2LjEgMjkuMWMxLjkgOS4zIDkuMSAxNi43IDE4LjUgMTcuOGM2LjcgLjggMTMuNSAxLjIgMjAuNCAxLjJzMTMuNy0uNCAyMC40LTEuMmM5LjQtMS4xIDE2LjYtOC42IDE4LjUtMTcuOGw2LjEtMjkuMWMxMy4zLTUgMjUuNS0xMi4xIDM2LjItMjAuOWwyOC4yIDkuM2M5IDMgMTkgLjUgMjQuNy03LjFjMy41LTQuNyA2LjgtOS41IDkuOC0xNC42bDMuMS01LjRjMi44LTUgNS4zLTEwLjIgNy42LTE1LjVjMy43LTguNyAuOS0xOC42LTYuMi0yNWwtMjIuMi0xOS44YzEuMS02LjggMS43LTEzLjggMS43LTIwLjlzLS42LTE0LjEtMS43LTIwLjlsMjIuMi0xOS44ek0xMTIgMTc2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTUwNC43IDUwMC41YzYuMyA3LjEgMTYuMiA5LjkgMjUgNi4yYzUuMy0yLjMgMTAuNS00LjggMTUuNS03LjZsNS40LTMuMWM1LTMgOS45LTYuMyAxNC42LTkuOGM3LjYtNS43IDEwLjEtMTUuNyA3LjEtMjQuN2wtOS4zLTI4LjJjOC44LTEwLjcgMTYtMjMgMjAuOS0zNi4ybDI5LjEtNi4xYzkuMy0xLjkgMTYuNy05LjEgMTcuOC0xOC41Yy44LTYuNyAxLjItMTMuNSAxLjItMjAuNHMtLjQtMTMuNy0xLjItMjAuNGMtMS4xLTkuNC04LjYtMTYuNi0xNy44LTE4LjVMNTgzLjkgMzA3Yy01LTEzLjMtMTIuMS0yNS41LTIwLjktMzYuMmw5LjMtMjguMmMzLTkgLjUtMTktNy4xLTI0LjdjLTQuNy0zLjUtOS42LTYuOC0xNC42LTkuOWwtNS4zLTNjLTUtMi44LTEwLjItNS4zLTE1LjYtNy42Yy04LjctMy43LTE4LjYtLjktMjUgNi4ybC0xOS44IDIyLjJjLTYuOC0xLjEtMTMuOC0xLjctMjAuOS0xLjdzLTE0LjEgLjYtMjAuOSAxLjdsLTE5LjgtMjIuMmMtNi4zLTcuMS0xNi4yLTkuOS0yNS02LjJjLTUuMyAyLjMtMTAuNSA0LjgtMTUuNiA3LjZsLTUuMiAzYy01LjEgMy05LjkgNi4zLTE0LjYgOS45Yy03LjYgNS43LTEwLjEgMTUuNy03LjEgMjQuN2w5LjMgMjguMmMtOC44IDEwLjctMTYgMjMtMjAuOSAzNi4yTDMxNS4xIDMxM2MtOS4zIDEuOS0xNi43IDkuMS0xNy44IDE4LjVjLS44IDYuNy0xLjIgMTMuNS0xLjIgMjAuNHMuNCAxMy43IDEuMiAyMC40YzEuMSA5LjQgOC42IDE2LjYgMTcuOCAxOC41bDI5LjEgNi4xYzUgMTMuMyAxMi4xIDI1LjUgMjAuOSAzNi4ybC05LjMgMjguMmMtMyA5LS41IDE5IDcuMSAyNC43YzQuNyAzLjUgOS41IDYuOCAxNC42IDkuOGw1LjQgMy4xYzUgMi44IDEwLjIgNS4zIDE1LjUgNy42YzguNyAzLjcgMTguNiAuOSAyNS02LjJsMTkuOC0yMi4yYzYuOCAxLjEgMTMuOCAxLjcgMjAuOSAxLjdzMTQuMS0uNiAyMC45LTEuN2wxOS44IDIyLjJ6TTQ2NCAzMDRhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhQ29ncyA9IGZhR2VhcnM7XG5jb25zdCBmYVdhcmVob3VzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YXJlaG91c2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OTRcIiwgXCJNMCA0ODhMMCAxNzEuM2MwLTI2LjIgMTUuOS00OS43IDQwLjItNTkuNEwzMDguMSA0LjhjNy42LTMuMSAxNi4xLTMuMSAyMy44IDBMNTk5LjggMTExLjljMjQuMyA5LjcgNDAuMiAzMy4zIDQwLjIgNTkuNEw2NDAgNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI2NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzg0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDg4IDI0bC0zMzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01NiAzODQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0xMjggNDAwbDAtNjQgMzg0IDAgMCA2NC0zODQgMHptMC05NmwwLTgwIDM4NCAwIDAgODAtMzg0IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwUmlnaHREb3RzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLXJpZ2h0LWRvdHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YjdcIiwgXCJNMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwTDkuNCAyNjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNTYgMTA5LjNsMCA1MC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDB6TTU3NiA4MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NDggMjA4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQwMCAzODRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00OCA4MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0xMjggMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yNzIgMzg0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTQ0IDUxMmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU3NiAzMzZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptLTQ4LTgwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVNwbG90Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Bsb3RjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjViY1wiLCBcIk0yMDguNSA2Mi4zbDI4LjEtMzYuOUMyNDguOCA5LjQgMjY3LjggMCAyODggMGMyOC41IDAgNTMuNiAxOC43IDYxLjggNDZsMTcuOCA1OS40YzEwLjMgMzQuNCAzNi4xIDYyIDY5LjggNzQuNmwzOS44IDE0LjljMjAuOSA3LjkgMzQuOCAyNy45IDM0LjggNTAuMmMwIDE2LjktNy45IDMyLjgtMjEuNSA0Mi45bC02Ny4zIDUwLjVjLTI0LjMgMTguMi0zNy4yIDQ3LjktMzMuOCA3OC4xbDIuNSAyMi43YzQuMyAzOC43LTI2IDcyLjYtNjUgNzIuNmMtMTQuOCAwLTI5LjMtNS4xLTQwLjgtMTQuM2wtNTUuNC00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjJjLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOUM0Ny44IDQ1OC4yIDE2IDQzMS42IDE2IDM5Ni41YzAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMWMwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOWMwLTMzLjQgMzAuMS01OC44IDYzLTUzLjJsNTEuMyA4LjdjMzUuOSA2LjEgNzIuMi04LjIgOTQuMi0zNy4xelwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5IZWFydHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLWhlYXJ0cycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyNSwgXCJncmluLWhlYXJ0c1wiXSwgXCJmNTg0XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTE5OS4zIDEyOS4xYzE3LjggNC44IDI4LjQgMjMuMSAyMy42IDQwLjhsLTE3LjQgNjVjLTIuMyA4LjUtMTEuMSAxMy42LTE5LjYgMTEuM2wtNjUuMS0xNy40Yy0xNy44LTQuOC0yOC40LTIzLjEtMjMuNi00MC44czIzLjEtMjguNCA0MC44LTIzLjZsMTYuMSA0LjMgNC4zLTE2LjFjNC44LTE3LjggMjMuMS0yOC40IDQwLjgtMjMuNnptMTU0LjMgMjMuNmw0LjMgMTYuMSAxNi4xLTQuM2MxNy44LTQuOCAzNi4xIDUuOCA0MC44IDIzLjZzLTUuOCAzNi4xLTIzLjYgNDAuOGwtNjUuMSAxNy40Yy04LjUgMi4zLTE3LjMtMi44LTE5LjYtMTEuM2wtMTcuNC02NWMtNC44LTE3LjggNS44LTM2LjEgMjMuNi00MC44czM2LjEgNS44IDQwLjkgMjMuNnpcIl1cbn07XG5jb25zdCBmYUdyaW5IZWFydHMgPSBmYUZhY2VHcmluSGVhcnRzO1xuY29uc3QgZmFEaWNlRm91ciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLWZvdXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU5XSwgXCJmNTI0XCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFTaW1DYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpbS1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2M0XCIsIFwiTTY0IDBMMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyA5NmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0QzAgMjguNyAyOC43IDAgNjQgMHpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC02NC0zMiAwek02NCAzNTJsODAgMCA5NiAwIDgwIDAgMC02NC04MCAwLTk2IDAtODAgMCAwIDY0ek0zMjAgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgNjQgNjQgMCAwLTMyek0xNjAgMTkybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTI4OCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMi02NCAwIDAgNjQgMzIgMHpNMTYwIDM4NGwwIDY0IDY0IDAgMC02NC02NCAwek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTY0LTY0IDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYVRyYW5zZ2VuZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYW5zZ2VuZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg5NSwgXCJ0cmFuc2dlbmRlci1hbHRcIl0sIFwiZjIyNVwiLCBcIk0xMTIgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtMzEgMzFMMTEyIDc4LjFsNy03YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNyA3IDE1LjIgMTUuMkMxODcuNyAxMDcuNiAyMjAuNSA5NiAyNTYgOTZzNjguMyAxMS42IDk0LjkgMzEuMmw2OC44LTY4LjgtMzEtMzFjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMzEtMzEtNjguOCA2OC44QzQwNC40IDE4Ny43IDQxNiAyMjAuNSA0MTYgMjU2YzAgODAuMi01OSAxNDYuNi0xMzYgMTU4LjJsMCAxNy44IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNy44QzE1NSA0MDIuNiA5NiAzMzYuMiA5NiAyNTZjMC0zNS41IDExLjYtNjguMyAzMS4yLTk0LjlMMTEyIDE0NS45bC03IDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNy03TDU4LjMgOTIuM2wtMzEgMzFjLTQuNiA0LjYtMTEuNSA1LjktMTcuNCAzLjVTMCAxMTguNSAwIDExMkwwIDE2QzAgNy4yIDcuMiAwIDE2IDBsOTYgMHpNMzUyIDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6XCJdXG59O1xuY29uc3QgZmFUcmFuc2dlbmRlckFsdCA9IGZhVHJhbnNnZW5kZXI7XG5jb25zdCBmYU1lcmN1cnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVyY3VyeScsXG4gIGljb246IFszODQsIDUxMiwgWzk3OTFdLCBcImYyMjNcIiwgXCJNNzIuMSA3Qzg1LjgtNCAxMDYtMS44IDExNyAxMmMxNy42IDIyIDQ0LjcgMzYgNzUgMzZzNTcuMy0xNCA3NS0zNmMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNy44IDkuNy0xNi42IDE4LjQtMjYuNCAyNi4xQzMzNy4zIDEwOS43IDM2OCAxNjMuMyAzNjggMjI0YzAgODkuMS02Ni4yIDE2Mi43LTE1MiAxNzQuNGwwIDI1LjYgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMiAwIDAtMjUuNkM4Mi4yIDM4Ni43IDE2IDMxMy4xIDE2IDIyNGMwLTYwLjcgMzAuNy0xMTQuMyA3Ny41LTE0NS45QzgzLjcgNzAuNSA3NC45IDYxLjcgNjcuMSA1MmMtMTEuMS0xMy44LTguOC0zMy45IDUtNDV6TTgwIDIyNGExMTIgMTEyIDAgMSAwIDIyNCAwQTExMiAxMTIgMCAxIDAgODAgMjI0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dUdXJuRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy10dXJuLWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxldmVsLWRvd25cIl0sIFwiZjE0OVwiLCBcIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0elwiXVxufTtcbmNvbnN0IGZhTGV2ZWxEb3duID0gZmFBcnJvd1R1cm5Eb3duO1xuY29uc3QgZmFQZXJzb25GYWxsaW5nQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWZhbGxpbmctYnVyc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NDdcIiwgXCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjRDNzEuNiAxNTQuNSAzMiAyMTMgMzIgMjc4LjJMMzIgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC03My44YzAtMTAgMS42LTE5LjggNC41LTI5TDI2MS4xIDQ5Ny40YzkuNiAxNC44IDI5LjQgMTkuMSA0NC4zIDkuNXMxOS4xLTI5LjQgOS41LTQ0LjNMMjIyLjYgMzIwbDEuNCAwIDgwIDAgMzguNCA1MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkMzNDEuMyAyNjMuMSAzMjcuMSAyNTYgMzEyIDI1NmwtNzEuNSAwLTU2LjgtODAuMi0uMi0uM2M0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHpNOTYgODBBNDggNDggMCAxIDAgMCA4MGE0OCA0OCAwIDEgMCA5NiAwek00NjQgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA3OC43LTEyLjJjNi41LTEgMTEuNy01LjkgMTMuMS0xMi4ycy0xLjEtMTMtNi41LTE2LjdsLTY1LjYtNDUuMUw2MDMgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0w1MDguMyA5Mi4xbC0yOS40LTc0QzQ3Ni40IDEyIDQ3MC42IDggNDY0IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMMzQzLjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN2MuMSAuMyAuMSAuNiAuMiAuOGwxOS40IDBjMjAuMSAwIDM5LjIgNy41IDUzLjggMjAuOGwxOC40IDIuOUwzODMgMjY1LjNsMzYuMiA0OC4zYzIuMSAyLjggMy45IDUuNyA1LjUgOC42TDQ2NCAyODYuMXpcIl1cbn07XG5jb25zdCBmYUF3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F3YXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTU5XCIsIFwiTTE3My44IDUuNWMxMS03LjMgMjUuNC03LjMgMzYuNCAwTDIyOCAxNy4yYzYgMy45IDEzIDUuOCAyMC4xIDUuNGwyMS4zLTEuM2MxMy4yLS44IDI1LjYgNi40IDMxLjUgMTguMmw5LjYgMTkuMWMzLjIgNi40IDguNCAxMS41IDE0LjcgMTQuN0wzNDQuNSA4M2MxMS44IDUuOSAxOSAxOC4zIDE4LjIgMzEuNWwtMS4zIDIxLjNjLS40IDcuMSAxLjUgMTQuMiA1LjQgMjAuMWwxMS44IDE3LjhjNy4zIDExIDcuMyAyNS40IDAgMzYuNEwzNjYuOCAyMjhjLTMuOSA2LTUuOCAxMy01LjQgMjAuMWwxLjMgMjEuM2MuOCAxMy4yLTYuNCAyNS42LTE4LjIgMzEuNWwtMTkuMSA5LjZjLTYuNCAzLjItMTEuNSA4LjQtMTQuNyAxNC43TDMwMSAzNDQuNWMtNS45IDExLjgtMTguMyAxOS0zMS41IDE4LjJsLTIxLjMtMS4zYy03LjEtLjQtMTQuMiAxLjUtMjAuMSA1LjRsLTE3LjggMTEuOGMtMTEgNy4zLTI1LjQgNy4zLTM2LjQgMEwxNTYgMzY2LjhjLTYtMy45LTEzLTUuOC0yMC4xLTUuNGwtMjEuMyAxLjNjLTEzLjIgLjgtMjUuNi02LjQtMzEuNS0xOC4ybC05LjYtMTkuMWMtMy4yLTYuNC04LjQtMTEuNS0xNC43LTE0LjdMMzkuNSAzMDFjLTExLjgtNS45LTE5LTE4LjMtMTguMi0zMS41bDEuMy0yMS4zYy40LTcuMS0xLjUtMTQuMi01LjQtMjAuMUw1LjUgMjEwLjJjLTcuMy0xMS03LjMtMjUuNCAwLTM2LjRMMTcuMiAxNTZjMy45LTYgNS44LTEzIDUuNC0yMC4xbC0xLjMtMjEuM2MtLjgtMTMuMiA2LjQtMjUuNiAxOC4yLTMxLjVsMTkuMS05LjZDNjUgNzAuMiA3MC4yIDY1IDczLjQgNTguNkw4MyAzOS41YzUuOS0xMS44IDE4LjMtMTkgMzEuNS0xOC4ybDIxLjMgMS4zYzcuMSAuNCAxNC4yLTEuNSAyMC4xLTUuNEwxNzMuOCA1LjV6TTI3MiAxOTJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0xLjMgNDQxLjhMNDQuNCAzMzkuM2MuMiAuMSAuMyAuMiAuNCAuNGw5LjYgMTkuMWMxMS43IDIzLjIgMzYgMzcuMyA2MiAzNS44bDIxLjMtMS4zYy4yIDAgLjUgMCAuNyAuMmwxNy44IDExLjhjNS4xIDMuMyAxMC41IDUuOSAxNi4xIDcuN2wtMzcuNiA4OS4zYy0yLjMgNS41LTcuNCA5LjItMTMuMyA5LjdzLTExLjYtMi4yLTE0LjgtNy4yTDc0LjQgNDU1LjVsLTU2LjEgOC4zYy01LjcgLjgtMTEuNC0xLjUtMTUtNnMtNC4zLTEwLjctMi4xLTE2em0yNDggNjAuNEwyMTEuNyA0MTNjNS42LTEuOCAxMS00LjMgMTYuMS03LjdsMTcuOC0xMS44Yy4yLS4xIC40LS4yIC43LS4ybDIxLjMgMS4zYzI2IDEuNSA1MC4zLTEyLjYgNjItMzUuOGw5LjYtMTkuMWMuMS0uMiAuMi0uMyAuNC0uNGw0My4yIDEwMi41YzIuMiA1LjMgMS40IDExLjQtMi4xIDE2cy05LjMgNi45LTE1IDZsLTU2LjEtOC4zLTMyLjIgNDkuMmMtMy4yIDUtOC45IDcuNy0xNC44IDcuMnMtMTEtNC4zLTEzLjMtOS43elwiXVxufTtcbmNvbnN0IGZhVGlja2V0U2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpY2tldC1zaW1wbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRpY2tldC1hbHRcIl0sIFwiZjNmZlwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgOC44LTcuNCAxNS43LTE1LjcgMTguNkM1NDEuNSAyMTcuMSA1MjggMjM1IDUyOCAyNTZzMTMuNSAzOC45IDMyLjMgNDUuNGM4LjMgMi45IDE1LjcgOS44IDE1LjcgMTguNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguOCA3LjQtMTUuNyAxNS43LTE4LjZDMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6XCJdXG59O1xuY29uc3QgZmFUaWNrZXRBbHQgPSBmYVRpY2tldFNpbXBsZTtcbmNvbnN0IGZhQnVpbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjc5NzAsIDYxNjg3XSwgXCJmMWFkXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTQxNmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTEyLTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTgwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQW5nbGVzTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZXMtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE3MSwgXCJhbmdsZS1kb3VibGUtbGVmdFwiXSwgXCJmMTAwXCIsIFwiTTQxLjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyNTYgMjQ2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6bTM1Mi0xNjBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMDEuMyAyNTYgNDM4LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvdWJsZUxlZnQgPSBmYUFuZ2xlc0xlZnQ7XG5jb25zdCBmYVFyY29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdxcmNvZGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMjlcIiwgXCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODB6TTY0IDk2bDAgNjQgNjQgMCAwLTY0TDY0IDk2ek0wIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6bTY0IDE2bDAgNjQgNjQgMCAwLTY0LTY0IDB6TTMwNCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6bTgwIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0ek0yNTYgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYwek0zNjggNDgwYTE2IDE2IDAgMSAxIDAtMzIgMTYgMTYgMCAxIDEgMCAzMnptNjQgMGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDbG9ja1JvdGF0ZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvY2stcm90YXRlLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImhpc3RvcnlcIl0sIFwiZjFkYVwiLCBcIk03NSA3NUw0MSA0MUMyNS45IDI1LjkgMCAzNi42IDAgNTcuOUwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTAuMSAwYzIxLjQgMCAzMi4xLTI1LjkgMTctNDFsLTMwLjgtMzAuOEMxNTUgODUuNSAyMDMgNjQgMjU2IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkycy04NiAxOTItMTkyIDE5MmMtNDAuOCAwLTc4LjYtMTIuNy0xMDkuNy0zNC40Yy0xNC41LTEwLjEtMzQuNC02LjYtNDQuNiA3LjlzLTYuNiAzNC40IDcuOSA0NC42QzE1MS4yIDQ5NSAyMDEuNyA1MTIgMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2UzM5Ny40IDAgMjU2IDBDMTg1LjMgMCAxMjEuMyAyOC43IDc1IDc1em0xODEgNTNjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NS02NSAwLTk0LjFjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xuY29uc3QgZmFIaXN0b3J5ID0gZmFDbG9ja1JvdGF0ZUxlZnQ7XG5jb25zdCBmYUZhY2VHcmluQmVhbVN3ZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1iZWFtLXN3ZWF0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE3LCBcImdyaW4tYmVhbS1zd2VhdFwiXSwgXCJmNTgzXCIsIFwiTTQ3Ni44IDEyNi4zYy00LjEgMS4xLTguNCAxLjctMTIuOCAxLjdjLTI2LjUgMC00OC0yMS00OC00N2MwLTUgMS44LTExLjMgNC42LTE4LjFjLjMtLjcgLjYtMS40IC45LTIuMWM5LTIwLjIgMjYuNS00NC45IDM2LTU3LjVjMy4yLTQuNCA5LjYtNC40IDEyLjggMEM0ODMuNCAyMC42IDUxMiA2MSA1MTIgODFjMCAyMS43LTE0LjkgMzkuOC0zNS4yIDQ1LjN6TTI1NiAwYzUxLjQgMCA5OS4zIDE1LjIgMTM5LjQgNDEuMmMtMS41IDMuMS0zIDYuMi00LjMgOS4zYy0zLjQgOC03LjEgMTktNy4xIDMwLjVjMCA0NC4zIDM2LjYgNzkgODAgNzljOS42IDAgMTguOC0xLjcgMjcuNC00LjhjMTMuMyAzMC45IDIwLjYgNjUgMjAuNiAxMDAuOGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMHpNMzgzLjggMzE3LjhDMzQ1LjMgMzI5LjQgMzAxLjkgMzM2IDI1NiAzMzZzLTg5LjMtNi42LTEyNy44LTE4LjJjLTEyLjMtMy43LTI0LjMgNy0xOS4yIDE4LjdjMjQuNSA1Ni45IDgxLjEgOTYuNyAxNDcgOTYuN3MxMjIuNS0zOS44IDE0Ny05Ni43YzUuMS0xMS44LTYuOS0yMi40LTE5LjItMTguN3ptLTE2Ni4yLTg5czAgMCAwIDBzMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTI2LjcgMTg4LjQgMTIwIDIwNi4xIDEyMCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHptMTYwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzI4Ni43IDE4OC40IDI4MCAyMDYuMSAyODAgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjJjMCAwIDAgMCAwIDB6XCJdXG59O1xuY29uc3QgZmFHcmluQmVhbVN3ZWF0ID0gZmFGYWNlR3JpbkJlYW1Td2VhdDtcbmNvbnN0IGZhRmlsZUV4cG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWV4cG9ydCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYXJyb3ctcmlnaHQtZnJvbS1maWxlXCJdLCBcImY1NmVcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxMjgtMTY4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDAgMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0zODQgMzM2bDAtNDggMTEwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOUwzODQgMzM2em0wLTIwOGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRGcm9tRmlsZSA9IGZhRmlsZUV4cG9ydDtcbmNvbnN0IGZhU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODczNywgXCJzaGllbGQtYmxhbmtcIl0sIFwiZjEzMlwiLCBcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuNyA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMmMtLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yYy0xNi43IDgtMzYuMSA4LTUyLjggMEM1Ny4zIDQyMC43IDE2LjUgMjM5LjIgMTYgMTQwYy0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni44IDEgMjUxLjQgMCAyNTYgMHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEJsYW5rID0gZmFTaGllbGQ7XG5jb25zdCBmYUFycm93VXBTaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtc2hvcnQtd2lkZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic29ydC1hbW91bnQtdXAtYWx0XCJdLCBcImY4ODVcIiwgXCJNMTUxLjYgNDIuNEMxNDUuNSAzNS44IDEzNyAzMiAxMjggMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDk2IDE0Ni4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzAxLjcgMzIuNCAzNS40YzExLjkgMTMgMzIuMiAxMy45IDQ1LjIgMnMxMy45LTMyLjIgMi00NS4ybC04OC05NnpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwelwiXVxufTtcbmNvbnN0IGZhU29ydEFtb3VudFVwQWx0ID0gZmFBcnJvd1VwU2hvcnRXaWRlO1xuY29uc3QgZmFIb3VzZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtbWVkaWNhbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTNiMlwiLCBcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMC40IDBjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMiAzMiAwek0yNTYgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR29sZkJhbGxUZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29sZi1iYWxsLXRlZScsXG4gIGljb246IFszODQsIDUxMiwgW1wiZ29sZi1iYWxsXCJdLCBcImY0NTBcIiwgXCJNMzg0IDE5MmMwIDY2LjgtMzQuMSAxMjUuNi04NS44IDE2MEw4NS44IDM1MkMzNC4xIDMxNy42IDAgMjU4LjggMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyek0yNDIuMSAyNTYuNmMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHptLTUyLjMtNDkuM2MtNC45IDAtOS4xIDUuMS01LjQgOC40YzUuOSA1LjIgMTMuNyA4LjQgMjIuMSA4LjRjMTguNSAwIDMzLjUtMTUgMzMuNS0zMy41YzAtOC41LTMuMi0xNi4yLTguNC0yMi4xYy0zLjMtMy43LTguNCAuNS04LjQgNS40YzAgMTguNS0xNSAzMy41LTMzLjUgMzMuNXptMTEzLjUtMTcuNWMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHpNOTYgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhR29sZkJhbGwgPSBmYUdvbGZCYWxsVGVlO1xuY29uc3QgZmFDaXJjbGVDaGV2cm9uTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtY2hldnJvbi1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS1sZWZ0XCJdLCBcImYxMzdcIiwgXCJNNTEyIDI1NkEyNTYgMjU2IDAgMSAwIDAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uQ2lyY2xlTGVmdCA9IGZhQ2lyY2xlQ2hldnJvbkxlZnQ7XG5jb25zdCBmYUhvdXNlQ2hpbW5leVdpbmRvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5LXdpbmRvdycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTAwZFwiLCBcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWwtMzIgMCAuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zbC0zMjAuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MC40LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQxNiAxMDAuNyA0MTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyMSA1Mi44IDQ2LjRjOCA3IDEyIDE1IDExIDI0ek0yNDggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMHpcIl1cbn07XG5jb25zdCBmYVBlbk5pYiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tbmliJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTAwMDFdLCBcImY1YWRcIiwgXCJNMzY4LjQgMTguM0wzMTIuNyA3NC4xIDQzNy45IDE5OS4zbDU1LjctNTUuN2MyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NDcuNiAxOC4zYy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMHpNMjg4IDk0LjZsLTkuMiAyLjhMMTM0LjcgMTQwLjZjLTE5LjkgNi0zNS43IDIxLjItNDIuMyA0MUwzLjggNDQ1LjhjLTMuOCAxMS4zLTEgMjMuOSA3LjMgMzIuNEwxNjQuNyAzMjQuN2MtMy02LjMtNC43LTEzLjMtNC43LTIwLjdjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGMtNy40IDAtMTQuNC0xLjctMjAuNy00LjdMMzMuNyA1MDAuOWM4LjYgOC4zIDIxLjEgMTEuMiAzMi40IDcuM2wyNjQuMy04OC42YzE5LjctNi42IDM1LTIyLjQgNDEtNDIuM2w0My4yLTE0NC4xIDIuNy05LjJMMjg4IDk0LjZ6XCJdXG59O1xuY29uc3QgZmFUZW50QXJyb3dUdXJuTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LXR1cm4tbGVmdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4MFwiLCBcIk0xMjAuMSA0MS44YzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOVM5Ny44LTIuNyA4Ny45IDYuMmwtODAgNzJDMi45IDgyLjcgMCA4OS4yIDAgOTZzMi45IDEzLjMgNy45IDE3LjhsODAgNzJjOS45IDguOSAyNSA4LjEgMzMuOS0xLjhzOC4xLTI1LTEuOC0zMy45TDg2LjUgMTIwIDQ1NiAxMjBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMC02Ni4zLTUzLjctMTIwLTEyMC0xMjBMODYuNSA3MmwzMy41LTMwLjJ6TTMwNy40IDE2Ni41Yy0xMS41LTguNy0yNy4zLTguNy0zOC44IDBsLTE2OCAxMjhjLTYuNiA1LTExIDEyLjUtMTIuMyAyMC43bC0yNCAxNjBjLTEuNCA5LjIgMS4zIDE4LjYgNy40IDI1LjZTODYuNyA1MTIgOTYgNTEybDE0NCAwIDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTguMWMwLTUuNSA0LjQtOS45IDkuOS05LjljMy43IDAgNy4yIDIuMSA4LjggNS41bDY4LjQgMTM2LjhjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w2MC4yIDAgMTYgMGM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJdXG59O1xuY29uc3QgZmFUZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4MlwiLCBcIk0zOTYuNiA2LjVMMjM1LjggMTI5LjFjOS42IDEuOCAxOC45IDUuOCAyNyAxMmwxNjggMTI4YzEzLjIgMTAuMSAyMiAyNC45IDI0LjUgNDEuNGw2LjIgNDEuNUw2MDggMzUyYzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOGMtMTEuNS04LjctMjcuMy04LjctMzguOCAwem0tMTUzLjIgMTYwYy0xMS41LTguNy0yNy4zLTguNy0zOC44IDBsLTE2OCAxMjhjLTYuNiA1LTExIDEyLjUtMTIuMyAyMC43bC0yNCAxNjBjLTEuNCA5LjIgMS4zIDE4LjYgNy40IDI1LjZTMjIuNyA1MTIgMzIgNTEybDE0NCAwIDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTguMWMwLTUuNSA0LjQtOS45IDkuOS05LjljMy43IDAgNy4yIDIuMSA4LjggNS41bDY4LjQgMTM2LjhjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w2MC4yIDAgMTYgMGM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJdXG59O1xuY29uc3QgZmFXYW5kTWFnaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFnaWNcIl0sIFwiZjBkMFwiLCBcIk0xNC4xIDQ2My4zYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOUwzOTUuNCAxNC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDM0LjYgMzQuNmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxMTYuNSA0OTcuOWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTQuMSA0NjMuM3pNMzQ3LjYgMTg3LjZsMTA1LTEwNUw0MjkuNCA1OS4zbC0xMDUgMTA1IDIzLjMgMjMuM3pcIl1cbn07XG5jb25zdCBmYU1hZ2ljID0gZmFXYW5kTWFnaWM7XG5jb25zdCBmYURvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb2cnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMjFdLCBcImY2ZDNcIiwgXCJNMzA5LjYgMTU4LjVMMzMyLjcgMTkuOEMzMzQuNiA4LjQgMzQ0LjUgMCAzNTYuMSAwYzcuNSAwIDE0LjUgMy41IDE5IDkuNUwzOTIgMzJsNTIuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDY0bDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMzIgMC0xNiAwLTIxLjMgMC01LjEgMzAuNS0xMTItNjR6TTQxNiAyNTYuMUw0MTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExNS4yYy0yNCAxMi4zLTUxLjIgMTkuMi04MCAxOS4ycy01Ni02LjktODAtMTkuMkwxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIzMC4yYy0yOC44LTEwLjktNTEuNC0zNS4zLTU5LjItNjYuNUwxIDE2Ny44Yy00LjMtMTcuMSA2LjEtMzQuNSAyMy4zLTM4LjhzMzQuNSA2LjEgMzguOCAyMy4zbDMuOSAxNS41QzcwLjUgMTgyIDgzLjMgMTkyIDk4IDE5MmwzMCAwIDE2IDAgMTU5LjggMEw0MTYgMjU2LjF6TTQ2NCA4MGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbmNvbnN0IGZhQ2Fycm90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnJvdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTM2NV0sIFwiZjc4N1wiLCBcIk0zNDYuNyA2QzMzNy42IDE3IDMyMCA0Mi4zIDMyMCA3MmMwIDQwIDE1LjMgNTUuMyA0MCA4MHM0MCA0MCA4MCA0MGMyOS43IDAgNTUtMTcuNiA2Ni0yNi43YzQtMy4zIDYtOC4yIDYtMTMuM3MtMi0xMC02LTEzLjJjLTExLjQtOS4xLTM4LjMtMjYuOC03NC0yNi44Yy0zMiAwLTQwIDgtNDAgOHM4LTggOC00MGMwLTM1LjctMTcuNy02Mi42LTI2LjgtNzRDMzcwIDIgMzY1LjEgMCAzNjAgMHMtMTAgMi0xMy4zIDZ6TTI0NC42IDEzNmMtNDAgMC03Ny4xIDE4LjEtMTAxLjcgNDguMmw2MC41IDYwLjVjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNTUuMy01NS4zIDAgLjFMMi4yIDQ3Ny45Qy0yIDQ4Ny0uMSA0OTcuOCA3IDUwNXMxNy45IDkgMjcuMSA0LjhsMTM0LjctNjIuNC01Mi4xLTUyLjFjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEwxOTkuNyA0MzNsMTAwLjItNDYuNGM0Ni40LTIxLjUgNzYuMi02OCA3Ni4yLTExOS4yQzM3NiAxOTQuOCAzMTcuMiAxMzYgMjQ0LjYgMTM2elwiXVxufTtcbmNvbnN0IGZhTW9vbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb29uJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI3NzY5LCA5MjE0XSwgXCJmMTg2XCIsIFwiTTIyMy41IDMyQzEwMCAzMiAwIDEzMi4zIDAgMjU2UzEwMCA0ODAgMjIzLjUgNDgwYzYwLjYgMCAxMTUuNS0yNC4yIDE1NS44LTYzLjRjNS00LjkgNi4zLTEyLjUgMy4xLTE4LjdzLTEwLjEtOS43LTE3LTguNWMtOS44IDEuNy0xOS44IDIuNi0zMC4xIDIuNmMtOTYuOSAwLTE3NS41LTc4LjgtMTc1LjUtMTc2YzAtNjUuOCAzNi0xMjMuMSA4OS4zLTE1My4zYzYuMS0zLjUgOS4yLTEwLjUgNy43LTE3LjNzLTcuMy0xMS45LTE0LjMtMTIuNWMtNi4zLS41LTEyLjYtLjgtMTktLjh6XCJdXG59O1xuY29uc3QgZmFXaW5lR2xhc3NFbXB0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWdsYXNzLWVtcHR5JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ3aW5lLWdsYXNzLWFsdFwiXSwgXCJmNWNlXCIsIFwiTTY0IDBDNDcuNCAwIDMzLjUgMTIuOCAzMi4xIDI5LjNsLTE0IDE2OC40Yy02IDcyIDQyLjUgMTM1LjIgMTA5LjkgMTUwLjZsMCA5OS42LTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMCA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAtOTkuNmM2Ny40LTE1LjQgMTE1LjktNzguNiAxMDkuOS0xNTAuNmwtMTQtMTY4LjRDMjg2LjUgMTIuOCAyNzIuNiAwIDI1NiAwTDY0IDB6TTgxLjkgMjAzLjFMOTMuNCA2NGwxMzMuMSAwIDExLjYgMTM5LjFDMjQyIDI0OC44IDIwNS45IDI4OCAxNjAgMjg4cy04Mi0zOS4yLTc4LjEtODQuOXpcIl1cbn07XG5jb25zdCBmYVdpbmVHbGFzc0FsdCA9IGZhV2luZUdsYXNzRW1wdHk7XG5jb25zdCBmYUNoZWVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVlc2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZWZcIiwgXCJNNTEyIDI0MC4ybDAgMTUuOEwwIDI1NmMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguN0M0MTguOCAzMiA1MTIgMTI1LjIgNTEyIDI0MC4yem0wIDQ3LjhsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGw1MTIgMHpcIl1cbn07XG5jb25zdCBmYVlpbllhbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneWluLXlhbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzc1XSwgXCJmNmFkXCIsIFwiTTI1NiA2NGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnMtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6bTAgNDQ4QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMzItMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYU11c2ljID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ211c2ljJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTI1XSwgXCJmMDAxXCIsIFwiTTQ5OS4xIDYuM2M4LjEgNiAxMi45IDE1LjYgMTIuOSAyNS43bDAgNzIgMCAyNjRjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwczQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDQ0OCAxNDcgMTkyIDIyMy44IDE5MiA0MzJjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwczQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCAyMDBsMC03MmMwLTE0LjEgOS4zLTI2LjYgMjIuOC0zMC43bDMyMC05NmM5LjctMi45IDIwLjItMS4xIDI4LjMgNXpcIl1cbn07XG5jb25zdCBmYUNvZGVDb21taXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29kZS1jb21taXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzODZcIiwgXCJNMzIwIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDYyIDM2MSAzOTcuNCA0MTYgMzIwIDQxNnMtMTQyLTU1LTE1Ni44LTEyOEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTMxLjIgMEMxNzggMTUxIDI0Mi42IDk2IDMyMCA5NnMxNDIgNTUgMTU2LjggMTI4TDYwOCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEzMS4yIDB6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUxvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1sb3cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NmJcIiwgXCJNNDQ4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCA5NmE5NiA5NiAwIDEgMSAxOTIgMEE5NiA5NiAwIDEgMSAzMjAgOTZ6TTE0NCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41QzcwLjIgMzMyLjYgNjQgMzQ5LjUgNjQgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwxOTIgMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMiAxMTJDMzIgNTAuMiA4Mi4xIDAgMTQ0IDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzAgNDQ3LjUgMCAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNkwzMiAxMTJ6TTE5MiAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuN2MwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTAuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25CaWtpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJpa2luZycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY5MiwgXCJiaWtpbmdcIl0sIFwiZjg0YVwiLCBcIk00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yNy4yIDY0bC02MS44LTQ4LjhjLTE3LjMtMTMuNi00MS43LTEzLjgtNTkuMS0uM2wtODMuMSA2NC4yYy0zMC43IDIzLjgtMjguNSA3MC44IDQuMyA5MS42TDI4OCAzMDUuMSAyODggNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xMC43LTUuMy0yMC43LTE0LjItMjYuNkwyOTUgMjMyLjlsNjAuMy00OC41TDM5NiAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTU2IDM4NGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSA1NiAzODR6bTIwMCAwQTEyOCAxMjggMCAxIDAgMCAzODRhMTI4IDEyOCAwIDEgMCAyNTYgMHptMTg0IDBhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwem0yMDAgMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwelwiXVxufTtcbmNvbnN0IGZhQmlraW5nID0gZmFQZXJzb25CaWtpbmc7XG5jb25zdCBmYUJyb29tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jyb29tJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI5NTI5XSwgXCJmNTFhXCIsIFwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjZjLTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42bDAgMjkuMUwzNjQuMyAzMjBsMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOEM3Ni41IDMwNy41IDY0IDMzNy43IDY0IDM2OS4yYzAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjlDMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44YzMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1oZWFydCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU3NFwiLCBcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNDQgMjIxLjNjMC0zMy44IDI3LjQtNjEuMyA2MS4zLTYxLjNjMTYuMiAwIDMxLjggNi41IDQzLjMgMTcuOWw3LjQgNy40IDcuNC03LjRjMTEuNS0xMS41IDI3LjEtMTcuOSA0My4zLTE3LjljMzMuOCAwIDYxLjMgMjcuNCA2MS4zIDYxLjNjMCAxNi4yLTYuNSAzMS44LTE3LjkgNDMuM2wtODIuNyA4Mi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtODIuNy04Mi43Yy0xMS41LTExLjUtMTcuOS0yNy4xLTE3LjktNDMuM3pcIl1cbn07XG5jb25zdCBmYUdvcHVyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29wdXJhbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NFwiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDggMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggMCAzMiAwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwIDAtMTYwLTMyIDAgMC0xMjgtMzIgMCAwLTk2LTMyIDAgMCA5NiAzMiAwIDAgMTI4IDMyIDAgMCAxNjAtODAgMCAwLTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgNDgtODAgMCAwLTE2MCAzMiAwIDAtMTI4IDMyIDAgMC05Ni0zMiAwIDAgOTYtMzIgMCAwIDEyOC0zMiAwIDAgMTYwLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNjQgMC0zMiAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzItODBsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFFYXJ0aE9jZWFuaWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWFydGgtb2NlYW5pYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xvYmUtb2NlYW5pYVwiXSwgXCJlNDdiXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDguNiAzNTcuM2wtMzktMTMuNWMtNi41LTIuMi0xMy42LTIuMy0yMC4xLS4zbC0xNS4zIDQuOWMtMTguNSA1LjktMzguNS0yLjQtNDcuNS0xOS41bC0zLjMtNi4yYy0xMC42LTIwLjEtMi4zLTQ1IDE4LjItNTQuN2wzNS4zLTE2LjhjMi4zLTEuMSA0LjQtMi44IDUuOS00LjhsNS4zLTdjNy4yLTkuNiAxOC42LTE1LjMgMzAuNi0xNS4zczIzLjQgNS43IDMwLjYgMTUuM2w0LjYgNi4xYzIgMi42IDQuOSA0LjUgOC4xIDUuMWM3LjggMS42IDE1LjctMS41IDIwLjQtNy45bDEwLjQtMTQuMmMyLTIuOCA1LjMtNC40IDguNy00LjRjNC40IDAgOC40IDIuNyAxMCA2LjhsMTAuMSAyNS45YzIuOCA3LjIgNi43IDE0IDExLjUgMjAuMkwzMTEgMjk5LjhjNS44IDcuNCA5IDE2LjYgOSAyNnMtMy4yIDE4LjYtOSAyNkwyOTkgMzY3LjJjLTguMyAxMC42LTIxIDE2LjgtMzQuNCAxNi44Yy04LjQgMC0xNi42LTIuNC0yMy43LTdsLTI1LjQtMTYuNGMtMi4yLTEuNC00LjUtMi41LTYuOS0zLjR6bTY1LjItMjE0LjhMMjk2IDE2NC43YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjNsLTI5LjkgMGMtNS42IDAtMTEuMS0xLjItMTYuMi0zLjRsLTQyLjgtMTljLTE0LjMtNi4zLTExLjktMjcuMyAzLjQtMzAuM2wzOC41LTcuN2MxMy4xLTIuNiAyNi43IDEuNSAzNi4xIDEwLjl6TTI0OCA0MzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNDMxLjIgMjk4LjlsOCAyNGMyLjggOC40LTEuNyAxNy40LTEwLjEgMjAuMnMtMTcuNC0xLjctMjAuMi0xMC4xbC04LTI0Yy0yLjgtOC40IDEuNy0xNy40IDEwLjEtMjAuMnMxNy40IDEuNyAyMC4yIDEwLjF6bS0xOS45IDgwLjRsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG5jb25zdCBmYUdsb2JlT2NlYW5pYSA9IGZhRWFydGhPY2VhbmlhO1xuY29uc3QgZmFTcXVhcmVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUteG1hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDA2MiwgXCJ0aW1lcy1zcXVhcmVcIiwgXCJ4bWFyay1zcXVhcmVcIl0sIFwiZjJkM1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03OSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xuY29uc3QgZmFUaW1lc1NxdWFyZSA9IGZhU3F1YXJlWG1hcms7XG5jb25zdCBmYVhtYXJrU3F1YXJlID0gZmFTcXVhcmVYbWFyaztcbmNvbnN0IGZhSGFzaHRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXNodGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjIwOThdLCBcIjIzXCIsIFwiTTE4MS4zIDMyLjRjMTcuNCAyLjkgMjkuMiAxOS40IDI2LjMgMzYuOEwxOTcuOCAxMjhsOTUuMSAwIDExLjUtNjkuM2MyLjktMTcuNCAxOS40LTI5LjIgMzYuOC0yNi4zczI5LjIgMTkuNCAyNi4zIDM2LjhMMzU3LjggMTI4bDU4LjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjguOSAwTDMyNS44IDMyMGw1OC4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY4LjkgMC0xMS41IDY5LjNjLTIuOSAxNy40LTE5LjQgMjkuMi0zNi44IDI2LjNzLTI5LjItMTkuNC0yNi4zLTM2LjhsOS44LTU4LjctOTUuMSAwLTExLjUgNjkuM2MtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOEw5MC4yIDM4NCAzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjguOSAwIDIxLjMtMTI4TDY0IDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2OC45IDAgMTEuNS02OS4zYzIuOS0xNy40IDE5LjQtMjkuMiAzNi44LTI2LjN6TTE4Ny4xIDE5MkwxNjUuOCAzMjBsOTUuMSAwIDIxLjMtMTI4LTk1LjEgMHpcIl1cbn07XG5jb25zdCBmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhwYW5kLWFsdFwiXSwgXCJmNDI0XCIsIFwiTTM0NCAwTDQ4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3TDMyNyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlMzMzQuMyAwIDM0NCAwek0xNjggNTEyTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMCAzNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4ybDM5IDM5IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4ycy0xMi41IDE0LjgtMjIuMiAxNC44elwiXVxufTtcbmNvbnN0IGZhRXhwYW5kQWx0ID0gZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyO1xuY29uc3QgZmFPaWxDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2lsLWNhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYxM1wiLCBcIk0zMjAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzItODAgMC00OCAwLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQuOGMwIDE5IDExLjIgMzYuMiAyOC41IDQzLjlsNjcuNSAzMEw5NiAzNjhjMCAyNi41IDIxLjUgNDggNDggNDhsMjU5LjEgMGMxOC40IDAgMzUuOC03LjkgNDgtMjEuN0w2MzMuNSAxODcuN2MxMi4zLTEzLjktLjMtMzUuNC0xOC40LTMxLjVMNDQ4IDE5MmwtNTAuNS0yNS4yYy04LjktNC40LTE4LjctNi44LTI4LjYtNi44TDI4OCAxNjBsMC0zMiAzMiAwek05NiAyMDhsMCA4Ni4xTDQ4IDI3Mi44IDQ4IDIwOGw0OCAwelwiXVxufTtcbmNvbnN0IGZhVCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTE2XSwgXCI1NFwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFIaXBwbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaXBwbycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTQzNV0sIFwiZjZlZFwiLCBcIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMWMwIDEwLjIgNy40IDE4LjggMTYuNyAyM2MyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzNjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNGMtMS41LTEuMS0yLjktMi4zLTQuMy0zLjVjLTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNWMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjlMNDUuOSAzNjkuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43QzMyIDE1NS43IDExNy4yIDY4IDIyMy44IDY0LjFsLjItLjEgNy4yIDBMMjU2IDY0bDMyIDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43YzEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhQ2hhcnRDb2x1bW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtY29sdW1uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMGUzXCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE2MCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xMjgtNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00ODAgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIl1cbn07XG5jb25zdCBmYUluZmluaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZmluaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbODczNCwgOTg1NF0sIFwiZjUzNFwiLCBcIk0wIDI0MS4xQzAgMTYxIDY1IDk2IDE0NS4xIDk2YzM4LjUgMCA3NS40IDE1LjMgMTAyLjYgNDIuNUwzMjAgMjEwLjdsNzIuMi03Mi4yQzQxOS41IDExMS4zIDQ1Ni40IDk2IDQ5NC45IDk2QzU3NSA5NiA2NDAgMTYxIDY0MCAyNDEuMWwwIDI5LjdDNjQwIDM1MSA1NzUgNDE2IDQ5NC45IDQxNmMtMzguNSAwLTc1LjQtMTUuMy0xMDIuNi00Mi41TDMyMCAzMDEuM2wtNzIuMiA3Mi4yQzIyMC41IDQwMC43IDE4My42IDQxNiAxNDUuMSA0MTZDNjUgNDE2IDAgMzUxIDAgMjcwLjlsMC0yOS43ek0yNzQuNyAyNTZsLTcyLjItNzIuMmMtMTUuMi0xNS4yLTM1LjktMjMuOC01Ny40LTIzLjhDMTAwLjMgMTYwIDY0IDE5Ni4zIDY0IDI0MS4xbDAgMjkuN2MwIDQ0LjggMzYuMyA4MS4xIDgxLjEgODEuMWMyMS41IDAgNDIuMi04LjUgNTcuNC0yMy44TDI3NC43IDI1NnptOTAuNSAwbDcyLjIgNzIuMmMxNS4yIDE1LjIgMzUuOSAyMy44IDU3LjQgMjMuOGM0NC44IDAgODEuMS0zNi4zIDgxLjEtODEuMWwwLTI5LjdjMC00NC44LTM2LjMtODEuMS04MS4xLTgxLjFjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMMzY1LjMgMjU2elwiXVxufTtcbmNvbnN0IGZhVmlhbENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTk2XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNjQgMCA2NCAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNzAuOGMtMjAuMiAyOC42LTMyIDYzLjUtMzIgMTAxLjJjMCAyNS4yIDUuMyA0OS4xIDE0LjggNzAuOEMxODkuNSA0NjMuNyAxNjAuNiA0ODAgMTI4IDQ4MGMtNTMgMC05Ni00My05Ni05NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek05NiA5NmwwIDk2IDY0IDAgMC05Nkw5NiA5NnpNMjI0IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwzNTIgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkFycm93RG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tYXJyb3ctZG93bi10by1saW5lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTM4XCIsIFwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM1MmwwLTk2IDE2IDAgMCA5Ni0xNiAwem0tNjQgMGwtODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjAgMCA4MCAwIDM3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNDQgMCAwLTE5MS4xIDI4LjYgNDcuNWM5LjEgMTUuMSAyOC44IDIwIDQzLjkgMTAuOXMyMC0yOC44IDEwLjktNDMuOWwtNTguMy05N2MtMTcuNC0yOC45LTQ4LjYtNDYuNi04Mi4zLTQ2LjZsLTI5LjcgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0NDh6TTQ2NCA2NGwwIDI0Mi43LTI1LjQtMjUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsODAgODBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsODAtODBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNTI4IDMwNi43IDUyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVZvaWNlbWFpbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2ljZW1haWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4OTdcIiwgXCJNMTQ0IDMyMGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptMTE5LjggMGMxNS4zLTIyLjkgMjQuMi01MC40IDI0LjItODBjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCAxNjAuNSAwIDI0MHM2NC41IDE0NCAxNDQgMTQ0bDM1MiAwYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0cy02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhRmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg2M1wiLCBcIk0yNTguNiAwYy0xLjcgMC0zLjQgLjEtNS4xIC41QzE2OCAxNyAxMTUuNiAxMDIuMyAxMzAuNSAxODkuM2MyLjkgMTcgOC40IDMyLjkgMTUuOSA0Ny40TDMyIDIyNGwtMi42IDBDMTMuMiAyMjQgMCAyMzcuMiAwIDI1My40YzAgMS43IC4xIDMuNCAuNSA1LjFDMTcgMzQ0IDEwMi4zIDM5Ni40IDE4OS4zIDM4MS41YzE3LTIuOSAzMi45LTguNCA0Ny40LTE1LjlMMjI0IDQ4MGwwIDIuNmMwIDE2LjIgMTMuMiAyOS40IDI5LjQgMjkuNGMxLjcgMCAzLjQtLjEgNS4xLS41QzM0NCA0OTUgMzk2LjQgNDA5LjcgMzgxLjUgMzIyLjdjLTIuOS0xNy04LjQtMzIuOS0xNS45LTQ3LjRMNDgwIDI4OGwyLjYgMGMxNi4yIDAgMjkuNC0xMy4yIDI5LjQtMjkuNGMwLTEuNy0uMS0zLjQtLjUtNS4xQzQ5NSAxNjggNDA5LjcgMTE1LjYgMzIyLjcgMTMwLjVjLTE3IDIuOS0zMi45IDguNC00Ny40IDE1LjlMMjg4IDMybDAtMi42QzI4OCAxMy4yIDI3NC44IDAgMjU4LjYgMHpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nTHVnZ2FnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24td2Fsa2luZy1sdWdnYWdlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTU0XCIsIFwiTTQzMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0Ny43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUw1MDUgMjMyLjdsLTE1LjMtMzYuOEM0NzIuNSAxNTQuOCA0MzIuMyAxMjggMzg3LjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xbC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNDAuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek0yNTYgMjc0LjFjLTcuNy00LjQtMTcuNC0xLjgtMjEuOSA1LjlsLTMyIDU1LjRMMTQ3LjcgMzA0Yy0xNS4zLTguOC0zNC45LTMuNi00My43IDExLjdMNDAgNDI2LjZjLTguOCAxNS4zLTMuNiAzNC45IDExLjcgNDMuN2w1NS40IDMyYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN2w2NC0xMTAuOWMxLjUtMi42IDIuNi01LjIgMy4zLThMMjYxLjkgMjk2YzQuNC03LjcgMS44LTE3LjQtNS45LTIxLjl6XCJdXG59O1xuY29uc3QgZmFVcERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXAtZG93bicsXG4gIGljb246IFsyNTYsIDUxMiwgWzg1OTcsIDExMDIxLCBcImFycm93cy1hbHQtdlwiXSwgXCJmMzM4XCIsIFwiTTE0NS42IDcuN0MxNDEgMi44IDEzNC43IDAgMTI4IDBzLTEzIDIuOC0xNy42IDcuN2wtMTA0IDExMmMtNi41IDctOC4yIDE3LjItNC40IDI1LjlTMTQuNSAxNjAgMjQgMTYwbDU2IDAgMCAxOTItNTYgMGMtOS41IDAtMTguMiA1LjctMjIgMTQuNHMtMi4xIDE4LjkgNC40IDI1LjlsMTA0IDExMmM0LjUgNC45IDEwLjkgNy43IDE3LjYgNy43czEzLTIuOCAxNy42LTcuN2wxMDQtMTEyYzYuNS03IDguMi0xNy4yIDQuNC0yNS45cy0xMi41LTE0LjQtMjItMTQuNGwtNTYgMCAwLTE5MiA1NiAwYzkuNSAwIDE4LjItNS43IDIyLTE0LjRzMi4xLTE4LjktNC40LTI1LjlsLTEwNC0xMTJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NBbHRWID0gZmFVcERvd247XG5jb25zdCBmYUNsb3VkTW9vblJhaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbW9vbi1yYWluJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzNjXCIsIFwiTTQ4MS4yIDBDNDE3IDAgMzYzLjUgNDYuNSAzNTMuNyAxMDcuNmMzNS40IDE3LjYgNjAuMiA1My4zIDYyLjEgOTUuMWMyMy4yIDExIDQyIDI5LjcgNTMuMSA1Mi43YzQgLjQgOC4xIC42IDEyLjMgLjZjMzQuOSAwIDY2LjctMTMuOCA4OS45LTM2LjFjNS4xLTQuOSA2LjQtMTIuNSAzLjItMTguN3MtMTAuMS05LjctMTctOC42Yy00LjkgLjgtMTAgMS4zLTE1LjIgMS4zYy00OSAwLTg4LjQtMzkuMy04OC40LTg3LjRjMC0zMi42IDE4LTYxLjEgNDQuOS03Ni4xYzYuMS0zLjQgOS4zLTEwLjUgNy44LTE3LjRzLTcuMy0xMi0xNC4zLTEyLjZjLTMuNi0uMy03LjMtLjUtMTAuOS0uNXpNMzY3LjkgMzgzLjljNDQuMiAwIDgwLTM1LjggODAtODBjMC0zOS4zLTI4LjQtNzIuMS02NS44LTc4LjdjMS4yLTUuNiAxLjktMTEuMyAxLjktMTcuMmMwLTQ0LjItMzUuOC04MC04MC04MGMtMTcgMC0zMi44IDUuMy00NS44IDE0LjRDMjQxLjMgMTE0LjYgMjEwLjggOTYgMTc2IDk2Yy01MyAwLTk2IDQzLTk2IDk2bDAgMS4zYy00NS40IDcuNi04MCA0Ny4xLTgwIDk0LjZjMCA1MyA0MyA5NiA5NiA5NmwyNzEuOSAwek04NS40IDQyMC4xYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zelwiXVxufTtcbmNvbnN0IGZhQ2FsZW5kYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgxOTcsIDEyODE5OF0sIFwiZjEzM1wiLCBcIk05NiAzMmwwIDMyTDQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEybDAgNDggNDQ4IDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJMMTYwIDY0bDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgMTQuMyA5NiAzMnpNNDQ4IDE5MkwwIDE5MiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3MnpcIl1cbn07XG5jb25zdCBmYVRyYWlsZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaWxlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA0MVwiLCBcIk00OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgMzM2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE3LjEgMGM3LjgtNTQuMyA1NC40LTk2IDExMC45LTk2czEwMy4xIDQxLjcgMTEwLjkgOTZMNDg4IDM4NGw4IDAgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0yNDBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJ6TTgwIDk2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDEzMS4yYy0xMS40IDUuOS0yMi4yIDEyLjktMzIgMjFMNjQgMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptOTYgMTI4Yy01LjQgMC0xMC43IC4yLTE2IC43TDE2MCAxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDExMi43Yy01LjMtLjUtMTAuNi0uNy0xNi0uN3ptODAgMTkuMkwyNTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNTIuMmMtOS44LTguMS0yMC42LTE1LjItMzItMjF6TTM2OCA5NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2em0xMTIgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpNMTc2IDQ4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQmFoYWkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFoYWknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhheWthbFwiXSwgXCJmNjY2XCIsIFwiTTI4OCAwYzE0LjUgMCAyNy4yIDkuNyAzMC45IDIzLjhsMjMuOSA4OS42IDc1LjktNTMuM2MxMS45LTguMyAyNy44LTcuNiAzOSAxLjdzMTQuNiAyNC45IDguNCAzOC4xbC0zOS4zIDg0IDkyLjQgOGMxNC40IDEuMiAyNi4yIDEyIDI4LjggMjYuM3MtNC45IDI4LjUtMTggMzQuNmwtODQuMSAzOS4xIDY1LjcgNjUuNWMxMC4zIDEwLjIgMTIuNCAyNi4xIDUuMSAzOC43cy0yMiAxOC43LTM2IDE0LjlMMzkxIDM4Ni44bDguMiA5Mi40YzEuMyAxNC40LTcuMyAyNy45LTIwLjkgMzIuOXMtMjguOSAuMS0zNy4yLTExLjdsLTUzLjEtNzYtNTMuMSA3NmMtOC4zIDExLjktMjMuNiAxNi43LTM3LjIgMTEuN3MtMjIuMi0xOC41LTIwLjktMzIuOWw4LjItOTIuNEw5NS40IDQxMC45Yy0xNCAzLjgtMjguOC0yLjMtMzYtMTQuOXMtNS4yLTI4LjQgNS4xLTM4LjdsNjUuNy02NS41TDQ2IDI1Mi43Yy0xMy4xLTYuMS0yMC41LTIwLjMtMTgtMzQuNnMxNC4zLTI1LjEgMjguOC0yNi4zbDkyLjQtOC0zOS4zLTg0Yy02LjEtMTMuMS0yLjctMjguOCA4LjQtMzguMXMyNy4xLTEwIDM5LTEuN2w3NS45IDUzLjMgMjMuOS04OS42QzI2MC44IDkuNyAyNzMuNSAwIDI4OCAwem0wIDE1Ni4ybC00LjggMThjLTIuNyAxMC4xLTEwLjIgMTguMi0yMCAyMS44cy0yMC44IDIuMS0yOS4zLTMuOWwtMTUuMi0xMC43IDcuOSAxNi44YzQuNCA5LjUgNCAyMC41LTEuMyAyOS42cy0xNC41IDE1LTI1IDE1LjlsLTE4LjUgMS42IDE2LjggNy44YzkuNSA0LjQgMTYuMiAxMy4yIDE4IDIzLjVzLTEuNSAyMC44LTguOSAyOC4ybC0xMy4yIDEzLjEgMTcuOS00LjhjMTAuMS0yLjcgMjAuOS0uMyAyOC45IDYuNHMxMi4yIDE2LjkgMTEuMyAyNy4zbC0xLjYgMTguNSAxMC42LTE1LjJjNi04LjYgMTUuOC0xMy43IDI2LjItMTMuN3MyMC4yIDUuMSAyNi4yIDEzLjdsMTAuNiAxNS4yLTEuNi0xOC41Yy0uOS0xMC40IDMuMy0yMC42IDExLjMtMjcuM3MxOC44LTkuMSAyOC45LTYuNGwxNy45IDQuOC0xMy4yLTEzLjFjLTcuNC03LjQtMTAuNy0xNy45LTguOS0yOC4yczguNS0xOS4xIDE4LTIzLjVsMTYuOC03LjgtMTguNS0xLjZjLTEwLjQtLjktMTkuNy02LjgtMjUtMTUuOXMtNS43LTIwLjEtMS4zLTI5LjZsNy45LTE2LjgtMTUuMiAxMC43Yy04LjYgNi0xOS41IDcuNS0yOS4zIDMuOXMtMTcuMy0xMS43LTIwLTIxLjhsLTQuOC0xOHpcIl1cbn07XG5jb25zdCBmYUhheWthbCA9IGZhQmFoYWk7XG5jb25zdCBmYVNkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZC1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2MyXCIsIFwiTTMyMCAwTDE0MS4zIDBDMTI0LjMgMCAxMDggNi43IDk2IDE4LjdMMTguNyA5NkM2LjcgMTA4IDAgMTI0LjMgMCAxNDEuM0wwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NHpNMTYwIDg4bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwbDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwbDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbmNvbnN0IGZhRHJhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYWdvbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODAwOV0sIFwiZjZkNVwiLCBcIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjRMMjk0LjQgMjguOGMtNS41LTQuMS03LjgtMTEuMy01LjYtMTcuOVMyOTcuMSAwIDMwNCAwTDQxNiAwbDMyIDAgMTYgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNGw1Ny42IDc2LjhjNi4yIDguMyA5LjYgMTguNCA5LjYgMjguOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjEuNSAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0w0ODAgMTYwbC0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xQzY0MCA0NjIuOSA1OTAuOSA1MTIgNTMwLjIgNTEyTDQ5NiA1MTJsLTY0IDBMMzIuMyA1MTJjLTMuMyAwLTYuNi0uNC05LjYtMS40QzEzLjUgNTA3LjggNiA1MDEgMi40IDQ5Mi4xQzEgNDg4LjcgLjIgNDg1LjIgMCA0ODEuNGMtLjItMy43IC4zLTcuMyAxLjMtMTAuN2MyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNGMzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xYzAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC00NS41IDAtNTd6TTUxMiA3Mi4zYzAtLjEgMC0uMiAwLS4zczAtLjIgMC0uM2wwIC42em0tMS4zIDcuNEw0NjQuMyA2OC4xYy0uMiAxLjMtLjMgMi42LS4zIDMuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNGMxMC42IDAgMTkuNS02LjggMjIuNy0xNi4zek0xMzAuOSAxMTYuNWMxNi4zLTE0LjUgNDAuNC0xNi4yIDU4LjUtNC4xbDEzMC42IDg3IDAgMjcuNWMwIDMyLjggOC40IDY0LjggMjQgOTNsLTIzMiAwYy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43TDE3MSAyMzIuMyAxOC40IDI1NS44Yy03IDEuMS0xMy45LTIuNi0xNi45LTlzLTEuNS0xNC4xIDMuOC0xOC44TDEzMC45IDExNi41elwiXVxufTtcbmNvbnN0IGZhU2hvZVByaW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9lLXByaW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU0YlwiLCBcIk00MTYgMEMzNTIuMyAwIDI1NiAzMiAyNTYgMzJsMCAxMjhjNDggMCA3NiAxNiAxMDQgMzJzNTYgMzIgMTA0IDMyYzU2LjQgMCAxNzYtMTYgMTc2LTk2UzUxMiAwIDQxNiAwek0xMjggOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwLTEyOC0zMiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNMjg4IDUxMmM5NiAwIDIyNC00OCAyMjQtMTI4cy0xMTkuNi05Ni0xNzYtOTZjLTQ4IDAtNzYgMTYtMTA0IDMycy01NiAzMi0xMDQgMzJsMCAxMjhzOTYuMyAzMiAxNjAgMzJ6TTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDAgMC0xMjgtMzIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJwbHVzLWNpcmNsZVwiXSwgXCJmMDU1XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYVBsdXNDaXJjbGUgPSBmYUNpcmNsZVBsdXM7XG5jb25zdCBmYUZhY2VHcmluVG9uZ3VlV2luayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tdG9uZ3VlLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDAsIFwiZ3Jpbi10b25ndWUtd2lua1wiXSwgXCJmNThiXCIsIFwiTTE3NC41IDQ5OC44QzczLjEgNDY0LjcgMCAzNjguOSAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCAxMTIuOS03My4xIDIwOC43LTE3NC41IDI0Mi44QzM0Ni43IDQ4NCAzNTIgNDY2LjYgMzUyIDQ0OGwwLTQ2LjljMjQuMy0xNy41IDQzLjYtNDEuNiA1NS40LTY5LjZjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzExLjcgMjcuOCAzMC44IDUxLjcgNTQuOCA2OS4ybDAgNDcuM2MwIDE4LjYgNS4zIDM2IDE0LjUgNTAuOHptMjAuNy0yNjUuMmM1LjMgNy4xIDE1LjMgOC41IDIyLjQgMy4yczguNS0xNS4zIDMuMi0yMi40Yy0zMC40LTQwLjUtOTEuMi00MC41LTEyMS42IDBjLTUuMyA3LjEtMy45IDE3LjEgMy4yIDIyLjRzMTcuMSAzLjkgMjIuNC0zLjJjMTcuNi0yMy41IDUyLjgtMjMuNSA3MC40IDB6TTMzNiAyNzJhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45YzIuOCAxMi42IDIwLjggMTIuNiAyMy42IDBjMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR3JpblRvbmd1ZVdpbmsgPSBmYUZhY2VHcmluVG9uZ3VlV2luaztcbmNvbnN0IGZhSGFuZEhvbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1ob2xkaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGJkXCIsIFwiTTU1OS43IDM5Mi4yYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjcyIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAtMTYgMC03OC4zIDBjLTI5LjEgMC01Ny4zIDkuOS04MCAyOEw2OC44IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zem0tMzY3LTguMmMuMyAwIC42IDAgLjkgMGMwIDAgMCAwIDAgMGMtLjMgMC0uNiAwLS45IDB6XCJdXG59O1xuY29uc3QgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1Zy1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWRcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhTGlua1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpbmstc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNoYWluLWJyb2tlblwiLCBcImNoYWluLXNsYXNoXCIsIFwidW5saW5rXCJdLCBcImYxMjdcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0ODkuMyAzNTguMmw5MC41LTkwLjVjNTYuNS01Ni41IDU2LjUtMTQ4IDAtMjA0LjVjLTUwLTUwLTEyOC44LTU2LjUtMTg2LjMtMTUuNGwtMS42IDEuMWMtMTQuNCAxMC4zLTE3LjcgMzAuMy03LjQgNDQuNnMzMC4zIDE3LjcgNDQuNiA3LjRsMS42LTEuMWMzMi4xLTIyLjkgNzYtMTkuMyAxMDMuOCA4LjZjMzEuNSAzMS41IDMxLjUgODIuNSAwIDExNGwtOTYgOTYtMzEuOS0yNUM0MzAuOSAyMzkuNiA0MjAuMSAxNzUuMSAzNzcgMTMyYy01Mi4yLTUyLjMtMTM0LjUtNTYuMi0xOTEuMy0xMS43TDM4LjggNS4xek0yMzkgMTYyYzMwLjEtMTQuOSA2Ny43LTkuOSA5Mi44IDE1LjNjMjAgMjAgMjcuNSA0OC4zIDIxLjcgNzQuNUwyMzkgMTYyek00MDYuNiA0MTYuNEwyMjAuOSAyNzBjLTIuMSAzOS44IDEyLjIgODAuMSA0Mi4yIDExMGMzOC45IDM4LjkgOTQuNCA1MSAxNDMuNiAzNi4zem0tMjkwLTIyOC41TDYwLjIgMjQ0LjNjLTU2LjUgNTYuNS01Ni41IDE0OCAwIDIwNC41YzUwIDUwIDEyOC44IDU2LjUgMTg2LjMgMTUuNGwxLjYtMS4xYzE0LjQtMTAuMyAxNy43LTMwLjMgNy40LTQ0LjZzLTMwLjMtMTcuNy00NC42LTcuNGwtMS42IDEuMWMtMzIuMSAyMi45LTc2IDE5LjMtMTAzLjgtOC42Qzc0IDM3MiA3NCAzMjEgMTA1LjUgMjg5LjVsNjEuOC02MS44LTUwLjYtMzkuOXpcIl1cbn07XG5jb25zdCBmYUNoYWluQnJva2VuID0gZmFMaW5rU2xhc2g7XG5jb25zdCBmYUNoYWluU2xhc2ggPSBmYUxpbmtTbGFzaDtcbmNvbnN0IGZhVW5saW5rID0gZmFMaW5rU2xhc2g7XG5jb25zdCBmYUNsb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb25lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjRkXCIsIFwiTTI4OCA0NDhMNjQgNDQ4bDAtMjI0IDY0IDAgMC02NC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0LTY0IDAgMCA2NHptLTY0LTk2bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIyNCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLWFycm93LWxvb3AtbGVmdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1MVwiLCBcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjMuNyAyMDAuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlMMjgxIDIzMi43bC0xNS4zLTM2LjhDMjQ4LjUgMTU0LjggMjA4LjMgMTI4IDE2My43IDEyOGMtMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0zMi45IDE0LjYtNTguMSA0Mi40LTY5LjQgNzYuNWwtMi42IDcuOGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwyLjYtNy44YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjV6bS0zMCAxMzUuMUw2OC43IDM5OCA5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTE2LjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnptMzQ3LjcgMTE5YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDYxLjMgMzg0bDE4LjcgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MHMtNzEuNi0xNjAtMTYwLTE2MEwzNTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE4LjcgMCAyNS40LTI1LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w4MCA4MHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBaQSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC16LWEnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYWxwaGEtdXAtYWx0XCJdLCBcImY4ODJcIiwgXCJNMTgzLjYgNDIuNEMxNzcuNSAzNS44IDE2OSAzMiAxNjAgMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDEyOCAxNDYuMyAxMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDEuNyAzMi40IDM1LjRjMTEuOSAxMyAzMi4yIDEzLjkgNDUuMiAyczEzLjktMzIuMiAyLTQ1LjJsLTg4LTk2ek0zMjAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEwzNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxOTJjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTY0IDEyOC0xNiAzMmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTE2LTMyLTY0LTEyOEM0MzkuMiAyNjIuOCA0MjguMSAyNTYgNDE2IDI1NnpNMzk1LjggNDAwTDQxNiAzNTkuNiA0MzYuMiA0MDBsLTQwLjQgMHpcIl1cbn07XG5jb25zdCBmYVNvcnRBbHBoYVVwQWx0ID0gZmFBcnJvd1VwWkE7XG5jb25zdCBmYUZpcmVGbGFtZUN1cnZlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJlLWZsYW1lLWN1cnZlZCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiZmlyZS1hbHRcIl0sIFwiZjdlNFwiLCBcIk0xNTMuNiAyOS45bDE2LTIxLjNDMTczLjYgMy4yIDE4MCAwIDE4Ni43IDBDMTk4LjQgMCAyMDggOS42IDIwOCAyMS4zVjQzLjVjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuN0MzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEySDE5MkM4NiA1MTIgMCA0MjYgMCAzMjB2LTMuOGMwLTQ4LjggMTkuNC05NS42IDUzLjktMTMwLjFsMy41LTMuNWM0LjItNC4yIDEwLTYuNiAxNi02LjZDODUuOSAxNzYgOTYgMTg2LjEgOTYgMTk4LjZWMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR2LTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuN2MwLTI3LjcgOS01NC44IDI1LjYtNzYuOXpcIl1cbn07XG5jb25zdCBmYUZpcmVBbHQgPSBmYUZpcmVGbGFtZUN1cnZlZDtcbmNvbnN0IGZhVG9ybmFkbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3JuYWRvJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3Nzg2XSwgXCJmNzZmXCIsIFwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTZDNDE2IDEwLjEgNDA1LjkgMCAzOTMuNCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyem0zNTIuMiA5NkwxMy42IDEyOGMxMi4yIDM1LjkgMzIuMyA2OC43IDU4LjggOTZMNDEyIDIyNGwtNDcuMi02Mi45Yy03LjMtOS43LTExLjYtMjEuMi0xMi42LTMzLjF6bS0yMjYgMTM4LjJsMTE2LjQgNjguNWM4LjIgNC44IDE1LjggMTAuNyAyMi41IDE3LjNMNDQ1IDM1MmMyLTkuOCAzLTE5LjkgMy0zMC4xYzAtMjMtNS4zLTQ1LjUtMTUuMy02NS45bC0zMjIuNSAwYzUuMiAzLjYgMTAuNSA3IDE2IDEwLjJ6TTI4OCAzODRjMTAuMyAyMS40IDEzLjggNDUuNSA5LjkgNjlsLTUuOSAzNS43Yy0yIDEyLjIgNy40IDIzLjQgMTkuOCAyMy40YzUuMyAwIDEwLjQtMi4xIDE0LjItNS45bDc4LjItNzguMmMxMi44LTEyLjggMjMuMS0yNy43IDMwLjQtNDMuOUwyODggMzg0elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZVBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jaXJjbGUtcGx1cycsXG4gIGljb246IFs1NzYsIDUxMiwgWzU4NjA2XSwgXCJlNDk0XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCb29rUXVyYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1xdXJhbicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicXVyYW5cIl0sIFwiZjY4N1wiLCBcIk0zNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzUyIDB6bTAgMzg0TDk2IDM4NGwwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyek0yNzQuMSAxNTAuMmwtOC45IDIxLjQtMjMuMSAxLjljLTUuNyAuNS04IDcuNS0zLjcgMTEuMkwyNTYgMTk5LjhsLTUuNCAyMi42Yy0xLjMgNS41IDQuNyA5LjkgOS42IDYuOUwyODAgMjE3LjJsMTkuOCAxMi4xYzQuOSAzIDEwLjktMS40IDkuNi02LjlMMzA0IDE5OS44bDE3LjYtMTUuMWM0LjMtMy43IDItMTAuOC0zLjctMTEuMmwtMjMuMS0xLjktOC45LTIxLjRjLTIuMi01LjMtOS42LTUuMy0xMS44IDB6TTk2IDE5MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGMyNS42IDAgNDkuNS03LjUgNjkuNS0yMC41YzMuMi0yLjEgNC41LTYuMiAzLjEtOS43cy01LjItNS42LTktNC44Yy02LjEgMS4yLTEyLjUgMS45LTE5IDEuOWMtNTIuNCAwLTk0LjktNDIuNS05NC45LTk0LjlzNDIuNS05NC45IDk0LjktOTQuOWM2LjUgMCAxMi44IC43IDE5IDEuOWMzLjggLjggNy41LTEuMyA5LTQuOHMuMi03LjYtMy4xLTkuN0MyNzMuNSA3MS41IDI0OS42IDY0IDIyNCA2NEMxNTMuMyA2NCA5NiAxMjEuMyA5NiAxOTJ6XCJdXG59O1xuY29uc3QgZmFRdXJhbiA9IGZhQm9va1F1cmFuO1xuY29uc3QgZmFBbmNob3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTg3NV0sIFwiZjEzZFwiLCBcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwTDIyNCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDIwOC00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNi4xIDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw4MCAwIDgwIDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTYtNTZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC01NiA1NmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDUzLTQzIDk2LTk2IDk2bC00OCAwIDAtMjA4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpcIl1cbn07XG5jb25zdCBmYUJvcmRlckFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3JkZXItYWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODRjXCIsIFwiTTM4NCA5NmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHptMCAxOTJsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6TTE5MiAyMjRMNjQgMjI0IDY0IDk2bDEyOCAwIDAgMTI4ek02NCAyODhsMTI4IDAgMCAxMjhMNjQgNDE2bDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbmNvbnN0IGZhRmFjZUFuZ3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtYW5ncnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDQsIFwiYW5ncnlcIl0sIFwiZjU1NlwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTMzOC43IDM5NS45YzYuNi01LjkgNy4xLTE2IDEuMi0yMi42QzMyMy44IDM1NS40IDI5NS43IDMzNiAyNTYgMzM2cy02Ny44IDE5LjQtODMuOSAzNy4zYy01LjkgNi42LTUuNCAxNi43IDEuMiAyMi42czE2LjcgNS40IDIyLjYtMS4yYzExLjctMTMgMzEuNi0yNi43IDYwLjEtMjYuN3M0OC40IDEzLjcgNjAuMSAyNi43YzUuOSA2LjYgMTYgNy4xIDIyLjYgMS4yek0xNzYuNCAyNzJjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC0xLjUtLjEtMy0uMy00LjRsMTAuOSAzLjZjOC40IDIuOCAxNy40LTEuNyAyMC4yLTEwLjFzLTEuNy0xNy40LTEwLjEtMjAuMmwtOTYtMzJjLTguNC0yLjgtMTcuNCAxLjctMjAuMiAxMC4xczEuNyAxNy40IDEwLjEgMjAuMmwzMC43IDEwLjJjLTUuOCA1LjgtOS4zIDEzLjgtOS4zIDIyLjZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTguOS0zLjYtMTctOS41LTIyLjhsMzAuMi0xMC4xYzguNC0yLjggMTIuOS0xMS45IDEwLjEtMjAuMnMtMTEuOS0xMi45LTIwLjItMTAuMWwtOTYgMzJjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMnMxMS45IDEyLjkgMjAuMiAxMC4xbDExLjctMy45Yy0uMiAxLjUtLjMgMy4xLS4zIDQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQW5ncnkgPSBmYUZhY2VBbmdyeTtcbmNvbnN0IGZhQ29va2llQml0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb29raWUtYml0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU2NFwiLCBcIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjZjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOWMtLjktNS4zLTUuMy05LjMtMTAuNi0xMC4xYy01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNGMtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42Yy01NC42LTguNy05Ny43LTUyLTEwNi4yLTEwNi44ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dUcmVuZERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdHJlbmQtZG93bicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5N1wiLCBcIk0zODQgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODIuN0wzNDIuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTkyIDI0Mi43IDU0LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMMzIwIDIwNS4zIDQ2Ni43IDM1MiAzODQgMzUyelwiXVxufTtcbmNvbnN0IGZhUnNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZmVlZFwiXSwgXCJmMDllXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJjMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA0MTZ6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFGZWVkID0gZmFSc3M7XG5jb25zdCBmYURyYXdQb2x5Z29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYXctcG9seWdvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVlZVwiLCBcIk05NiAxNTEuNGwwIDIwOS4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzAtLjEgLjEtLjIgLjEtLjNsLTQuNS03LjktMzItNTZzMCAwIDAgMGMtMS40IC4xLTIuOCAuMS00LjIgLjFjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMS40IDAgMi44IDAgNC4yIC4xYzAgMCAwIDAgMCAwbDMyLTU2IDQuNS03LjktLjEtLjMtMjA5LjEgMGMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40ek0zODQuMyAzNTJjMzUuMiAuMiA2My43IDI4LjcgNjMuNyA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yMDkuMUMxMi45IDE0MC40IDAgMTE5LjcgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMzUuMy0yOC41IDYzLjgtNjMuNyA2NGwtNC41IDcuOS0zMiA1Ni0yLjMgNGM0LjIgOC41IDYuNSAxOCA2LjUgMjguMXMtMi4zIDE5LjYtNi41IDI4LjFsMi4zIDQgMzIgNTYgNC41IDcuOXpcIl1cbn07XG5jb25zdCBmYVNjYWxlQmFsYW5jZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NhbGUtYmFsYW5jZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODc4LCBcImJhbGFuY2Utc2NhbGVcIl0sIFwiZjI0ZVwiLCBcIk0zODQgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzk4LjQgOTZjLTUuMiAyNS44LTIyLjkgNDcuMS00Ni40IDU3LjNMMzUyIDQ0OGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjMuNS0xMC4zLTQxLjItMzEuNi00Ni40LTU3LjNMMTI4IDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyOCAwYzE0LjYtMTkuNCAzNy44LTMyIDY0LTMyczQ5LjQgMTIuNiA2NCAzMnptNTUuNiAyODhsMTQ0LjkgMEw1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjFDNjI3LjIgMzgyIDU3NC45IDQxNiA1MTIgNDE2ek0xMjYuOCAxOTUuOEw1NC40IDMyMGwxNDQuOSAwTDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMUMyNDIgMzgyIDE4OS43IDQxNiAxMjYuOCA0MTZTMTEuNyAzODIgLjkgMzM3LjF6XCJdXG59O1xuY29uc3QgZmFCYWxhbmNlU2NhbGUgPSBmYVNjYWxlQmFsYW5jZWQ7XG5jb25zdCBmYUdhdWdlU2ltcGxlSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1zaW1wbGUtaGlnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNjY4LCBcInRhY2hvbWV0ZXJcIiwgXCJ0YWNob21ldGVyLWZhc3RcIl0sIFwiZjYyYVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTE1LjktNS44LTMwLjQtMTUuMy00MS42bDc2LjYtMTQ3LjRjNi4xLTExLjggMS41LTI2LjMtMTAuMi0zMi40cy0yNi4yLTEuNS0zMi40IDEwLjJMMjYyLjEgMjg4LjNjLTItLjItNC0uMy02LjEtLjNjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYVRhY2hvbWV0ZXIgPSBmYUdhdWdlU2ltcGxlSGlnaDtcbmNvbnN0IGZhVGFjaG9tZXRlckZhc3QgPSBmYUdhdWdlU2ltcGxlSGlnaDtcbmNvbnN0IGZhU2hvd2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3dlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODcwM10sIFwiZjJjY1wiLCBcIk02NCAxMzEuOUM2NCAxMTIuMSA4MC4xIDk2IDk5LjkgOTZjOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjItMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMkM0NC43IDMyIDAgNzYuNyAwIDEzMS45TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMTYuMXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFEZXNrdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rlc2t0b3AnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg0MjEsIDYxNzA0LCBcImRlc2t0b3AtYWx0XCJdLCBcImYzOTBcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTc2IDAtMTAuNyAzMkwxNjAgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OS4zIDBMMzM2IDQxNmwxNzYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek01MTIgNjRsMCAyMjRMNjQgMjg4IDY0IDY0bDQ0OCAwelwiXVxufTtcbmNvbnN0IGZhRGVza3RvcEFsdCA9IGZhRGVza3RvcDtcbmNvbnN0IGZhTSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTA5XSwgXCI0ZFwiLCBcIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zTDI1MC42IDM2OS44Yy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCA2NEMwIDQ5LjkgOS4yIDM3LjUgMjIuNyAzMy40elwiXVxufTtcbmNvbnN0IGZhVGFibGVMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWxpc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInRoLWxpc3RcIl0sIFwiZjAwYlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NEw2NCA5NnptMzg0IDBMMTkyIDk2bDAgNjQgMjU2IDAgMC02NHpNNjQgMjI0bDAgNjQgNjQgMCAwLTY0LTY0IDB6bTM4NCAwbC0yNTYgMCAwIDY0IDI1NiAwIDAtNjR6TTY0IDM1MmwwIDY0IDY0IDAgMC02NC02NCAwem0zODQgMGwtMjU2IDAgMCA2NCAyNTYgMCAwLTY0elwiXVxufTtcbmNvbnN0IGZhVGhMaXN0ID0gZmFUYWJsZUxpc3Q7XG5jb25zdCBmYUNvbW1lbnRTbXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1zbXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNtc1wiXSwgXCJmN2NkXCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNOTYgMjEyLjhjMC0yMC4zIDE2LjUtMzYuOCAzNi44LTM2LjhsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTIuNyAwLTQuOCAyLjItNC44IDQuOGMwIDEuNiAuOCAzLjEgMi4yIDRsMjkuNCAxOS42YzEwLjMgNi44IDE2LjQgMTguMyAxNi40IDMwLjdjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMTEyIDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNy4yIDBjMi43IDAgNC44LTIuMiA0LjgtNC44YzAtMS42LS44LTMuMS0yLjItNGwtMjkuNC0xOS42QzEwMi4yIDIzNi43IDk2IDIyNS4yIDk2IDIxMi44ek0zNzIuOCAxNzZsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTIuNyAwLTQuOCAyLjItNC44IDQuOGMwIDEuNiAuOCAzLjEgMi4yIDRsMjkuNCAxOS42YzEwLjIgNi44IDE2LjQgMTguMyAxNi40IDMwLjdjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMzUyIDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNy4yIDBjMi43IDAgNC44LTIuMiA0LjgtNC44YzAtMS42LS44LTMuMS0yLjItNGwtMjkuNC0xOS42Yy0xMC4yLTYuOC0xNi40LTE4LjMtMTYuNC0zMC43YzAtMjAuMyAxNi41LTM2LjggMzYuOC0zNi44em0tMTUyIDYuNEwyNTYgMjI5LjNsMzUuMi00Ni45YzQuMS01LjUgMTEuMy03LjggMTcuOS01LjZzMTAuOSA4LjMgMTAuOSAxNS4ybDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC0xOS4yIDI1LjZjLTMgNC03LjggNi40LTEyLjggNi40cy05LjgtMi40LTEyLjgtNi40TDIyNCAyNDBsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNi45IDQuNC0xMyAxMC45LTE1LjJzMTMuNyAuMSAxNy45IDUuNnpcIl1cbn07XG5jb25zdCBmYVNtcyA9IGZhQ29tbWVudFNtcztcbmNvbnN0IGZhQm9vayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MjEyXSwgXCJmMDJkXCIsIFwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyODggMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzg0IDAgOTYgMHptMCAzODRsMjU2IDAgMCA2NEw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTMyLTI0MGMwLTguOCA3LjItMTYgMTYtMTZsMTkyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDQ4bDE5MiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVVzZXJQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGx1cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjIzNFwiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek01MDQgMzEybDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTAwMDMsIDEwMDA0XSwgXCJmMDBjXCIsIFwiTTQzOC42IDEwNS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0yNTYgMjU2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgMzM4LjcgMzkzLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5VGhyZWVRdWFydGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJiYXR0ZXJ5LTRcIl0sIFwiZjI0MVwiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTI3MiA5Nkw5NiAxOTJsMCAxMjggMjU2IDAgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5NCA9IGZhQmF0dGVyeVRocmVlUXVhcnRlcnM7XG5jb25zdCBmYUhvdXNlQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTA5XCIsIFwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwIC43IDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtbGVmdCcsXG4gIGljb246IFszMjAsIDUxMiwgWzgyNDldLCBcImYxMDRcIiwgXCJNNDEuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI1NiAyNDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHpcIl1cbn07XG5jb25zdCBmYURpYWdyYW1TdWNjZXNzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlhZ3JhbS1zdWNjZXNzb3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0N2FcIiwgXCJNNTEyIDQxNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgMTYwbDAtNjQgMTQ0IDAgMTYgMCAwIDY0TDY0IDE2MHptMjI0IDBsMC02NCA4MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2LTM4LjEgMGMtMjEuNCAwLTMyLjEgMjUuOS0xNyA0MUwzOTkgMjM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDUwMyAxNjljMTUuMS0xNS4xIDQuNC00MS0xNy00MUw0NDggMTI4bDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMMjI0IDMybC0xNiAwTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYVRydWNrQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1hcnJvdy1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4YlwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDUwLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w1ODkuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE4LjcgMCAzMiAwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xMjggMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNNDE2IDI1NmwxMjggMCAwLTE4LjdMNDY2LjcgMTYwIDQxNiAxNjBsMCA5NnpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTM2OC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yNTcgOTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzkgMzlMOTYgMTY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2Ni4xIDAtMzkgMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNTcgOTV6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NTcGxpdFVwQW5kTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtc3BsaXQtdXAtYW5kLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YmNcIiwgXCJNMjQ2LjYgMTUwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDM1MiAxMDkuMyAzNTIgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMTQuNyAwIDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMjU2IDIyNCAyNTZjMjMuMyAwIDQ1LjIgNi4yIDY0IDE3LjFsMC0xNjMuOS00MS40IDQxLjR6XCJdXG59O1xuY29uc3QgZmFIYW5kRmlzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWZpc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5OTk0LCBcImZpc3QtcmFpc2VkXCJdLCBcImY2ZGVcIiwgXCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTItNjQgMCAwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwLTY0IDAgMC04MHptMTkyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZ6bTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNmMxMy4yIDAgMjUuNC00IDM1LjYtMTAuOGM4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44YzExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA1Mi4zLTI1LjEgOTguOC02NCAxMjhsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzguNGMtMTcuMy03LjktMzMuMi0xOC44LTQ2LjktMzIuNUw2OS41IDM1Ny41QzQ1LjUgMzMzLjUgMzIgMzAwLjkgMzIgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyelwiXVxufTtcbmNvbnN0IGZhRmlzdFJhaXNlZCA9IGZhSGFuZEZpc3Q7XG5jb25zdCBmYUNsb3VkTW9vbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1tb29uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNmMzXCIsIFwiTTQ5NS44IDBjNS41IDAgMTAuOSAuMiAxNi4zIC43YzcgLjYgMTIuOCA1LjcgMTQuMyAxMi41cy0xLjYgMTMuOS03LjcgMTcuM2MtNDQuNCAyNS4yLTc0LjQgNzMtNzQuNCAxMjcuOGMwIDgxIDY1LjUgMTQ2LjYgMTQ2LjIgMTQ2LjZjOC42IDAgMTctLjcgMjUuMS0yLjFjNi45LTEuMiAxMy44IDIuMiAxNyA4LjVzMS45IDEzLjgtMy4xIDE4LjdjLTM0LjUgMzMuNi04MS43IDU0LjQtMTMzLjYgNTQuNGMtOS4zIDAtMTguNC0uNy0yNy40LTEuOWMtMTEuMi0yMi42LTI5LjgtNDAuOS01Mi42LTUxLjdjLTIuNy01OC41LTUwLjMtMTA1LjMtMTA5LjItMTA2LjdjLTEuNy0xMC40LTIuNi0yMS0yLjYtMzEuOEMzMDQgODYuMSAzODkuOCAwIDQ5NS44IDB6TTQ0Ny45IDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwTDk2IDUxMS45Yy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJdXG59O1xuY29uc3QgZmFCcmllZmNhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZWZjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTg4XSwgXCJmMGIxXCIsIFwiTTE4NCA0OGwxNDQgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MEwxNzYgOTZsMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDBMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwbDAgOTYgMTkyIDAgMTI4IDAgMTkyIDAgMC05NmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE4NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNTEyIDI4OGwtMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMkwwIDI4OCAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyOHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkZhbGxpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWZhbGxpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NDZcIiwgXCJNMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5LjhjMCA1NC42LTI3LjkgMTA0LjYtNzIuNSAxMzMuNmwuMiAuM0wzMDQuNSAyNTZsODcuNSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzg0IDMyMGwtOTYgMC0xLjQgMCA5Mi4zIDE0Mi42YzkuNiAxNC44IDUuNCAzNC42LTkuNSA0NC4zcy0zNC42IDUuNC00NC4zLTkuNUwxNjQuNSAyNDkuMmMtMi45IDkuMi00LjUgMTktNC41IDI5bDAgNzMuOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTczLjhjMC02NS4xIDM5LjYtMTIzLjcgMTAwLjEtMTQ3LjlDMjMyLjMgMTE1LjggMjU2IDgwLjggMjU2IDQxLjhsMC05LjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTExMiAzMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFJbWFnZVBvcnRyYWl0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ltYWdlLXBvcnRyYWl0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJwb3J0cmFpdFwiXSwgXCJmM2UwXCIsIFwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NHpNMTI4IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTgwIDM1Ni42YzAtMzcuOSAzMC43LTY4LjYgNjguNi02OC42bDg2LjkgMGMzNy45IDAgNjguNiAzMC43IDY4LjYgNjguNmMwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNGwtMTY5LjEgMEM5Mi4zIDM4NCA4MCAzNzEuNyA4MCAzNTYuNnpcIl1cbn07XG5jb25zdCBmYVBvcnRyYWl0ID0gZmFJbWFnZVBvcnRyYWl0O1xuY29uc3QgZmFVc2VyVGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA3XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzEwIDAgMTguOC00LjkgMjQuMi0xMi41bC05OS4yLTk5LjJjLTE0LjktMTQuOS0yMy4zLTM1LjEtMjMuMy01Ni4xbDAtMzNjLTE1LjktNC43LTMyLjgtNy4yLTUwLjMtNy4ybC05MS40IDB6TTM4NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODIuN2MwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w0NzguMSA0OTEuM2MxOC43IDE4LjcgNDkuMSAxOC43IDY3LjkgMGw3My40LTczLjRjMTguNy0xOC43IDE4LjctNDkuMSAwLTY3LjlMNTEyIDI0Mi43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDM4NCAyMjR6bTI0IDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFSdWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY5XCIsIFwiTTI0IDY0bDMyIDAgMjQgMCAwIDI0IDAgODggMCA4MCAwIDgwIDAgODggMCAyNC0yNCAwLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em04OCAwbDQxNiAwIDAgMzg0LTQxNiAwIDAtMzg0ek02NDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMC0yNCAwIDAtMjQgMC04OCAwLTgwIDAtODAgMC04OCAwLTI0IDI0IDAgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUVhcnRoRXVyb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWV1cm9wZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xvYmUtZXVyb3BlXCJdLCBcImY3YTJcIiwgXCJNMjY2LjMgNDguM0wyMzIuNSA3My42Yy01LjQgNC04LjUgMTAuNC04LjUgMTcuMWwwIDkuMWMwIDYuOCA1LjUgMTIuMyAxMi4zIDEyLjNjMi40IDAgNC44LS43IDYuOC0yLjFsNDEuOC0yNy45YzItMS4zIDQuNC0yLjEgNi44LTIuMWwxIDBjNi4yIDAgMTEuMyA1LjEgMTEuMyAxMS4zYzAgMy0xLjIgNS45LTMuMyA4bC0xOS45IDE5LjljLTUuOCA1LjgtMTIuOSAxMC4yLTIwLjcgMTIuOGwtMjYuNSA4LjhjLTUuOCAxLjktOS42IDcuMy05LjYgMTMuNGMwIDMuNy0xLjUgNy4zLTQuMSAxMGwtMTcuOSAxNy45Yy02LjQgNi40LTkuOSAxNS05LjkgMjRsMCA0LjNjMCAxNi40IDEzLjYgMjkuNyAyOS45IDI5LjdjMTEgMCAyMS4yLTYuMiAyNi4xLTE2bDQtOC4xYzIuNC00LjggNy40LTcuOSAxMi44LTcuOWM0LjUgMCA4LjcgMi4xIDExLjQgNS43bDE2LjMgMjEuN2MyLjEgMi45IDUuNSA0LjUgOS4xIDQuNWM4LjQgMCAxMy45LTguOSAxMC4xLTE2LjRsLTEuMS0yLjNjLTMuNS03IDAtMTUuNSA3LjUtMThsMjEuMi03LjFjNy42LTIuNSAxMi43LTkuNiAxMi43LTE3LjZjMC0xMC4zIDguMy0xOC42IDE4LjYtMTguNmwyOS40IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTIwLjcgMGMtNy4yIDAtMTQuMiAyLjktMTkuMyA4bC00LjcgNC43Yy0yLjEgMi4xLTMuMyA1LTMuMyA4YzAgNi4yIDUuMSAxMS4zIDExLjMgMTEuM2wxMS4zIDBjNiAwIDExLjggMi40IDE2IDYuNmw2LjUgNi41YzEuOCAxLjggMi44IDQuMyAyLjggNi44cy0xIDUtMi44IDYuOGwtNy41IDcuNUMzODYgMjYyIDM4NCAyNjYuOSAzODQgMjcyczIgMTAgNS43IDEzLjdMNDA4IDMwNGMxMC4yIDEwLjIgMjQuMSAxNiAzOC42IDE2bDcuMyAwYzYuNS0yMC4yIDEwLTQxLjcgMTAtNjRjMC0xMTEuNC04Ny42LTIwMi40LTE5Ny43LTIwNy43em0xNzIgMzA3LjljLTMuNy0yLjYtOC4yLTQuMS0xMy00LjFjLTYgMC0xMS44LTIuNC0xNi02LjZMMzk2IDMzMmMtNy43LTcuNy0xOC0xMi0yOC45LTEyYy05LjcgMC0xOS4yLTMuNS0yNi42LTkuOEwzMTQgMjg3LjRjLTExLjYtOS45LTI2LjQtMTUuNC00MS43LTE1LjRsLTIwLjkgMGMtMTIuNiAwLTI1IDMuNy0zNS41IDEwLjdMMTg4LjUgMzAxYy0xNy44IDExLjktMjguNSAzMS45LTI4LjUgNTMuM2wwIDMuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxNiAxNmM4LjUgOC41IDIwIDEzLjMgMzIgMTMuM2wyMS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRjMCAyLjUgLjQgNSAxLjEgNy4zYzcxLjMtNS44IDEzMi41LTQ3LjYgMTY1LjItMTA3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg3LjMgMTAwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zMiAzMmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMyLTMyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwiXVxufTtcbmNvbnN0IGZhR2xvYmVFdXJvcGUgPSBmYUVhcnRoRXVyb3BlO1xuY29uc3QgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtZmxhdGJlZC1zdWl0Y2FzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wibHVnZ2FnZS1jYXJ0XCJdLCBcImY1OWRcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY2LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2TDE0NCA0NDhjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek00MzIgOTZsMC00MGMwLTQuNC0zLjYtOC04LThsLTgwIDBjLTQuNCAwLTggMy42LTggOGwwIDQwIDk2IDB6TTI4OCA5NmwwLTQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDgwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAwIDIyNC0xOTIgMCAwLTIyNHpNNTEyIDMyMGwwLTIyNCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwek0yNDAgOTZsMTYgMCAwIDIyNC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OHpcIl1cbn07XG5jb25zdCBmYUx1Z2dhZ2VDYXJ0ID0gZmFDYXJ0RmxhdGJlZFN1aXRjYXNlO1xuY29uc3QgZmFSZWN0YW5nbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjE2NCwgXCJyZWN0YW5nbGUtdGltZXNcIiwgXCJ0aW1lcy1yZWN0YW5nbGVcIiwgXCJ3aW5kb3ctY2xvc2VcIl0sIFwiZjQxMFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xNzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwiXVxufTtcbmNvbnN0IGZhUmVjdGFuZ2xlVGltZXMgPSBmYVJlY3RhbmdsZVhtYXJrO1xuY29uc3QgZmFUaW1lc1JlY3RhbmdsZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG5jb25zdCBmYVdpbmRvd0Nsb3NlID0gZmFSZWN0YW5nbGVYbWFyaztcbmNvbnN0IGZhQmFodFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFodC1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMGFjXCIsIFwiTTE0NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyTDM3LjYgNjRDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDIyNGwwIDQxLjdMMCAyODggMCA0MDYuM2MwIDIzIDE4LjcgNDEuNyA0MS43IDQxLjdsNzAuMyAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC00MC4xLTIxLjEtNzUuMy01Mi43LTk1LjFDMjgwLjMgMjIyLjYgMjg4IDIwMC4yIDI4OCAxNzZjMC02MS45LTUwLjEtMTEyLTExMi0xMTJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTEyIDEyOGwwIDk2LTQ4IDAgMC05NiA0OCAwem02NCA5NmwwLTk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4em0tNjQgNjRsMCA5Ni00OCAwIDAtOTYgNDggMHptNjQgOTZsMC05NiAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhQm9va09wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjE0LCAxMjgzNjZdLCBcImY1MThcIiwgXCJNMjQ5LjYgNDcxLjVjMTAuOCAzLjggMjIuNC00LjEgMjIuNC0xNS41bDAtMzc3LjRjMC00LjItMS42LTguNC01LTExQzI0Ny40IDUyIDIwMi40IDMyIDE0NCAzMkM5My41IDMyIDQ2LjMgNDUuMyAxOC4xIDU2LjFDNi44IDYwLjUgMCA3MS43IDAgODMuOEwwIDQ1NC4xYzAgMTEuOSAxMi44IDIwLjIgMjQuMSAxNi41QzU1LjYgNDYwLjEgMTA1LjUgNDQ4IDE0NCA0NDhjMzMuOSAwIDc5IDE0IDEwNS42IDIzLjV6bTc2LjggMEMzNTMgNDYyIDM5OC4xIDQ0OCA0MzIgNDQ4YzM4LjUgMCA4OC40IDEyLjEgMTE5LjkgMjIuNmMxMS4zIDMuOCAyNC4xLTQuNiAyNC4xLTE2LjVsMC0zNzAuM2MwLTEyLjEtNi44LTIzLjMtMTguMS0yNy42QzUyOS43IDQ1LjMgNDgyLjUgMzIgNDMyIDMyYy01OC40IDAtMTAzLjQgMjAtMTIzIDM1LjZjLTMuMyAyLjYtNSA2LjgtNSAxMUwzMDQgNDU2YzAgMTEuNCAxMS43IDE5LjMgMjIuNCAxNS41elwiXVxufTtcbmNvbnN0IGZhQm9va0pvdXJuYWxXaGlsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1qb3VybmFsLXdoaWxscycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiam91cm5hbC13aGlsbHNcIl0sIFwiZjY2YVwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTAuNC0yMzQuNGwtMjEuMi0yMS4yYy0zIDEwLjEtNS4xIDIwLjYtNS4xIDMxLjZjMCAuMiAwIC41IC4xIC44cy4xIC41IC4xIC44TDE2NS4yIDIyNmMyLjUgMi4xIDMuNCA1LjggMi4zIDguOWMtMS4zIDMtNC4xIDUuMS03LjUgNS4xYy0xLjktLjEtMy44LS44LTUuMi0ybC0yMy42LTIwLjZDMTQyLjggMjY3IDE4Ni45IDMwNCAyNDAgMzA0czk3LjMtMzcgMTA4LjktODYuNkwzMjUuMyAyMzhjLTEuNCAxLjItMy4zIDItNS4zIDJjLTIuMi0uMS00LjQtMS4xLTYtMi44Yy0xLjItMS41LTEuOS0zLjQtMi01LjJjLjEtMi4yIDEuMS00LjQgMi44LTZsMzcuMS0zMi41YzAtLjMgMC0uNSAuMS0uOHMuMS0uNSAuMS0uOGMwLTExLTIuMS0yMS41LTUuMS0zMS42bC0yMS4yIDIxLjJjLTMuMSAzLjEtOC4xIDMuMS0xMS4zIDBzLTMuMS04LjEgMC0xMS4ybDI2LjQtMjYuNWMtOC4yLTE3LTIwLjUtMzEuNy0zNS45LTQyLjZjLTIuNy0xLjktNi4yIDEuNC01IDQuNWM4LjUgMjIuNCAzLjYgNDgtMTMgNjUuNmMtMy4yIDMuNC0zLjYgOC45LS45IDEyLjdjOS44IDE0IDEyLjcgMzEuOSA3LjUgNDguNWMtNS45IDE5LjQtMjIgMzQuMS00MS45IDM4LjNsLTEuNC0zNC4zIDEyLjYgOC42Yy42IC40IDEuNSAuNiAyLjMgLjZjMS41IDAgMi43LS44IDMuNS0ycy42LTIuOC0uMS00TDI2MCAyMjUuNGwxOC0zLjZjMS44LS40IDMuMS0yLjEgMy4xLTRzLTEuNC0zLjUtMy4xLTMuOWwtMTgtMy43IDguNS0xNC4zYy44LTEuMiAuOS0yLjkgLjEtNC4xcy0yLTItMy41LTJsLS4xIDBjLS43IC4xLTEuNSAuMy0yLjEgLjdsLTE0LjEgOS42TDI0NCA4Ny45Yy0uMS0yLjItMS45LTMuOS00LTMuOXMtMy45IDEuNi00IDMuOWwtNC42IDExMC44LTEyLTguMWMtMS41LTEuMS0zLjYtLjktNSAuNHMtMS42IDMuNC0uOCA1bDguNiAxNC4zLTE4IDMuN2MtMS44IC40LTMuMSAyLTMuMSAzLjlzMS40IDMuNiAzLjEgNGwxOCAzLjgtOC42IDE0LjJjLS4yIC42LS41IDEuNC0uNSAyYzAgMS4xIC41IDIuMSAxLjIgM2MuOCAuNiAxLjggMSAyLjggMWMuNyAwIDEuNi0uMiAyLjItLjZsMTAuNC03LjEtMS40IDMyLjhjLTE5LjktNC4xLTM2LTE4LjktNDEuOS0zOC4zYy01LjEtMTYuNi0yLjItMzQuNCA3LjYtNDguNWMyLjctMy45IDIuMy05LjMtLjktMTIuN2MtMTYuNi0xNy41LTIxLjYtNDMuMS0xMy4xLTY1LjVjMS4yLTMuMS0yLjMtNi40LTUtNC41Yy0xNS4zIDEwLjktMjcuNiAyNS42LTM1LjggNDIuNmwyNi40IDI2LjVjMy4xIDMuMSAzLjEgOC4xIDAgMTEuMnMtOC4xIDMuMS0xMS4yIDB6XCJdXG59O1xuY29uc3QgZmFKb3VybmFsV2hpbGxzID0gZmFCb29rSm91cm5hbFdoaWxscztcbmNvbnN0IGZhSGFuZGN1ZmZzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRjdWZmcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRmOFwiLCBcIk0yNDAgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTkyIDQ4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyIDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2YzAgMS43LS4yIDMuNC0uNSA1LjFDMjgwLjMgMjI5LjYgMzIwIDI4Ni4yIDMyMCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTY1LjggMzkuNy0xMjIuNCA5Ni41LTE0Ni45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMWwwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAzMjBhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6bTE5Mi05NmMwLTI1LjktNS4xLTUwLjUtMTQuNC03My4xYzE2LjktMzIuOSA0NC44LTU5LjEgNzguOS03My45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMWwwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2YzAgMS43LS4yIDMuNC0uNSA1LjFDNjAwLjMgMjI5LjYgNjQwIDI4Ni4yIDY0MCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBjLTYyIDAtMTE1LjgtMzUuMy0xNDIuNC04Ni45YzkuMy0yMi41IDE0LjQtNDcuMiAxNC40LTczLjF6bTIyNCAwYTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNMzY4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em04MCA0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFUcmlhbmdsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyaWFuZ2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg4OCwgXCJleGNsYW1hdGlvbi10cmlhbmdsZVwiLCBcIndhcm5pbmdcIl0sIFwiZjA3MVwiLCBcIk0yNTYgMzJjMTQuMiAwIDI3LjMgNy41IDM0LjUgMTkuOGwyMTYgMzY4YzcuMyAxMi40IDcuMyAyNy43IC4yIDQwLjFTNDg2LjMgNDgwIDQ3MiA0ODBMNDAgNDgwYy0xNC4zIDAtMjcuNi03LjctMzQuNy0yMC4xcy03LTI3LjggLjItNDAuMWwyMTYtMzY4QzIyOC43IDM5LjUgMjQxLjggMzIgMjU2IDMyem0wIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzIgMjI0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFFeGNsYW1hdGlvblRyaWFuZ2xlID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xuY29uc3QgZmFXYXJuaW5nID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xuY29uc3QgZmFEYXRhYmFzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkYXRhYmFzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFjMFwiLCBcIk00NDggODBsMCA0OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMTcyLjIgMCAxMjhMMCA4MEMwIDM1LjggMTAwLjMgMCAyMjQgMFM0NDggMzUuOCA0NDggODB6TTM5My4yIDIxNC43YzIwLjgtNy40IDM5LjktMTYuOSA1NC44LTI4LjZMNDQ4IDI4OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMzMyLjIgMCAyODhMMCAxODYuMWMxNC45IDExLjggMzQgMjEuMiA1NC44IDI4LjZDOTkuNyAyMzAuNyAxNTkuNSAyNDAgMjI0IDI0MHMxMjQuMy05LjMgMTY5LjItMjUuM3pNMCAzNDYuMWMxNC45IDExLjggMzQgMjEuMiA1NC44IDI4LjZDOTkuNyAzOTAuNyAxNTkuNSA0MDAgMjI0IDQwMHMxMjQuMy05LjMgMTY5LjItMjUuM2MyMC44LTcuNCAzOS45LTE2LjkgNTQuOC0yOC42bDAgODUuOWMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgNDc2LjIgMCA0MzJsMC04NS45elwiXVxufTtcbmNvbnN0IGZhU2hhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1haWwtZm9yd2FyZFwiXSwgXCJmMDY0XCIsIFwiTTMwNyAzNC44Yy0xMS41IDUuMS0xOSAxNi42LTE5IDI5LjJsMCA2NC0xMTIgMEM3OC44IDEyOCAwIDIwNi44IDAgMzA0QzAgNDE3LjMgODEuNSA0NjcuOSAxMDAuMiA0NzguMWMyLjUgMS40IDUuMyAxLjkgOC4xIDEuOWMxMC45IDAgMTkuNy04LjkgMTkuNy0xOS43YzAtNy41LTQuMy0xNC40LTkuOC0xOS41QzEwOC44IDQzMS45IDk2IDQxNC40IDk2IDM4NGMwLTUzIDQzLTk2IDk2LTk2bDk2IDAgMCA2NGMwIDEyLjYgNy40IDI0LjEgMTkgMjkuMnMyNSAzIDM0LjQtNS40bDE2MC0xNDRjNi43LTYuMSAxMC42LTE0LjcgMTAuNi0yMy44cy0zLjgtMTcuNy0xMC42LTIzLjhsLTE2MC0xNDRjLTkuNC04LjUtMjIuOS0xMC42LTM0LjQtNS40elwiXVxufTtcbmNvbnN0IGZhTWFpbEZvcndhcmQgPSBmYVNoYXJlO1xuY29uc3QgZmFCb3R0bGVEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvdHRsZS1kcm9wbGV0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNGM0XCIsIFwiTTk2IDBDODIuNyAwIDcyIDEwLjcgNzIgMjRzMTAuNyAyNCAyNCAyNGM0LjQgMCA4IDMuNiA4IDhsMCA2NC45YzAgMTIuMi03LjIgMjMuMS0xNy4yIDMwLjFDNTMuNyAxNzQuMSAzMiAyMTIuNSAzMiAyNTZsMCAxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC00My41LTIxLjctODEuOS01NC44LTEwNWMtMTAtNy0xNy4yLTE3LjktMTcuMi0zMC4xTDIxNiA1NmMwLTQuNCAzLjYtOCA4LThjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMHMwIDAgMCAwczAgMCAwIDBMMTA0IDBzMCAwIDAgMHMwIDAgMCAwTDk2IDB6bTY0IDM4MmMtMjYuNSAwLTQ4LTIwLjEtNDgtNDVjMC0xNi44IDIyLjEtNDguMSAzNi4zLTY2LjRjNi03LjggMTcuNS03LjggMjMuNSAwQzE4NS45IDI4OC45IDIwOCAzMjAuMiAyMDggMzM3YzAgMjQuOS0yMS41IDQ1LTQ4IDQ1elwiXVxufTtcbmNvbnN0IGZhTWFza0ZhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzay1mYWNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMWQ3XCIsIFwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFsLTkuMiAwLTE2IDAtNzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4NWMwIDU1LjEgMzcuNSAxMDMuMSA5MC45IDExNi40bDEwOCAyN0MyMzMuOCA0MzUgMjc1LjQgNDQ4IDMyMCA0NDhzODYuMi0xMyAxMjEuMS0zNS41bDEwOC0yN0M2MDIuNSAzNzIuMSA2NDAgMzI0LjEgNjQwIDI2OWwwLTg1YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC03MiAwLTE2IDAtOS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzIuMyAzNDYuM2wtMjkuOC03LjRDNzAuNSAzMzAuOSA0OCAzMDIuMSA0OCAyNjlsMC04NWMwLTQuNCAzLjYtOCA4LThsNDAgMCAwIDQ4YzAgNDUuMSAxMy40IDg3LjIgMzYuMyAxMjIuM3ptNDA1LjEtNy40bC0yOS44IDcuNGMyMy0zNS4yIDM2LjMtNzcuMiAzNi4zLTEyMi4zbDAtNDggNDAgMGM0LjQgMCA4IDMuNiA4IDhsMCA4NWMwIDMzLTIyLjUgNjEuOC01NC41IDY5Ljl6TTE5MiAyMDhjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0xNiA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTE2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUhpbGxSb2Nrc2xpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGlsbC1yb2Nrc2xpZGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MDhcIiwgXCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFSaWdodExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjaGFuZ2UtYWx0XCJdLCBcImYzNjJcIiwgXCJNMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTY0TDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNNDgwIDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZjLTYtNi05LjQtMTQuMS05LjQtMjIuNnMzLjQtMTYuNiA5LjQtMjIuNmw5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXMxOS44IDE2LjYgMTkuOCAyOS42bDAgNjQgMzIwIDB6XCJdXG59O1xuY29uc3QgZmFFeGNoYW5nZUFsdCA9IGZhUmlnaHRMZWZ0O1xuY29uc3QgZmFQYXBlclBsYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcGVyLXBsYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE5MTNdLCBcImYxZDhcIiwgXCJNNDk4LjEgNS42YzEwLjEgNyAxNS40IDE5LjEgMTMuNSAzMS4ybC02NCA0MTZjLTEuNSA5LjctNy40IDE4LjItMTYgMjNzLTE4LjkgNS40LTI4IDEuNkwyODQgNDI3LjdsLTY4LjUgNzQuMWMtOC45IDkuNy0yMi45IDEyLjktMzUuMiA4LjFTMTYwIDQ5My4yIDE2MCA0ODBsMC04My42YzAtNCAxLjUtNy44IDQuMi0xMC44TDMzMS44IDIwMi44YzUuOC02LjMgNS42LTE2LS40LTIycy0xNS43LTYuNC0yMi0uN0wxMDYgMzYwLjggMTcuNyAzMTYuNkM3LjEgMzExLjMgLjMgMzAwLjcgMCAyODguOXM1LjktMjIuOCAxNi4xLTI4LjdsNDQ4LTI1NmMxMC43LTYuMSAyMy45LTUuNSAzNCAxLjR6XCJdXG59O1xuY29uc3QgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NjVcIiwgXCJNMjEzLjIgMzJMMjg4IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDc0LjggMGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhsMC00Mi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NEw4Ni42IDQ4MEM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUR1bmdlb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVuZ2VvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZkOVwiLCBcIk0zMzYuNiAxNTYuNWMxLjMgMS4xIDIuNyAyLjIgMy45IDMuM2M5LjMgOC4yIDIzIDEwLjUgMzMuNCAzLjZsNjcuNi00NS4xYzExLjQtNy42IDE0LjItMjMuMiA1LjEtMzMuNEM0MzAgNjYuNiA0MTAuOSA1MC42IDM4OS43IDM3LjZjLTExLjktNy4zLTI2LjktMS40LTMyLjEgMTEuNmwtMzAuNSA3Ni4yYy00LjUgMTEuMSAuMiAyMy42IDkuNSAzMS4yek0zMjggMzYuOGM1LjEtMTIuOC0xLjYtMjcuNC0xNS0zMC41QzI5NC43IDIuMiAyNzUuNiAwIDI1NiAwcy0zOC43IDIuMi01NyA2LjRDMTg1LjUgOS40IDE3OC44IDI0IDE4NCAzNi44bDMwLjMgNzUuOGM0LjUgMTEuMyAxNi44IDE3LjIgMjkgMTZjNC4yLS40IDguNC0uNiAxMi43LS42czguNiAuMiAxMi43IC42YzEyLjEgMS4yIDI0LjQtNC43IDI5LTE2TDMyOCAzNi44ek02NS41IDg1Yy05LjEgMTAuMi02LjMgMjUuOCA1LjEgMzMuNGw2Ny42IDQ1LjFjMTAuMyA2LjkgMjQuMSA0LjYgMzMuNC0zLjZjMS4zLTEuMSAyLjYtMi4zIDQtMy4zYzkuMy03LjUgMTMuOS0yMC4xIDkuNS0zMS4yTDE1NC40IDQ5LjJjLTUuMi0xMi45LTIwLjMtMTguOC0zMi4xLTExLjZDMTAxLjEgNTAuNiA4MiA2Ni42IDY1LjUgODV6bTMxNCAxMzcuMWMuOSAzLjMgMS43IDYuNiAyLjMgMTBjMi41IDEzIDEzIDIzLjkgMjYuMiAyMy45bDgwIDBjMTMuMyAwIDI0LjEtMTAuOCAyMi45LTI0Yy0yLjUtMjcuMi05LjMtNTMuMi0xOS43LTc3LjNjLTUuNS0xMi45LTIxLjQtMTYuNi0zMy4xLTguOWwtNjguNiA0NS43Yy05LjggNi41LTEzLjIgMTkuMi0xMCAzMC41ek01My45IDE0NS44Yy0xMS42LTcuOC0yNy42LTQtMzMuMSA4LjlDMTAuNCAxNzguOCAzLjYgMjA0LjggMS4xIDIzMmMtMS4yIDEzLjIgOS42IDI0IDIyLjkgMjRsODAgMGMxMy4zIDAgMjMuOC0xMC44IDI2LjItMjMuOWMuNi0zLjQgMS40LTYuNyAyLjMtMTBjMy4xLTExLjQtLjItMjQtMTAtMzAuNUw1My45IDE0NS44ek0xMDQgMjg4bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek0yNCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwem0zODQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI3MiAxOTJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTI3MnptLTY0IDMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNDB6bTEyOCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNDB6XCJdXG59O1xuY29uc3QgZmFBbGlnblJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM4XCIsIFwiTTQ0OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwxOTIgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFNb25leUJpbGwxV2F2ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLTEtd2F2ZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibW9uZXktYmlsbC13YXZlLWFsdFwiXSwgXCJmNTNiXCIsIFwiTTAgMTEyLjVMMCA0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNGwwLTMwOS45YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMTI4IDQxNmwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAyMjRsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTM4NCAyNTZjMCA2MS45LTQzIDExMi05NiAxMTJzLTk2LTUwLjEtOTYtMTEyczQzLTExMiA5Ni0xMTJzOTYgNTAuMSA5NiAxMTJ6TTI1MiAyMDhjMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDI0IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFdhdmVBbHQgPSBmYU1vbmV5QmlsbDFXYXZlO1xuY29uc3QgZmFMaWZlUmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaWZlLXJpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2RcIiwgXCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNzLTIwLjItMTEzLjktNTQtMTU3LjNjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2czIwLjIgMTEzLjkgNTQgMTU3LjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbmNvbnN0IGZhSGFuZHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNpZ24tbGFuZ3VhZ2VcIiwgXCJzaWduaW5nXCJdLCBcImYyYTdcIiwgXCJNNTQ0IDE2MGwtLjEgNzIuNmMtLjEgNTIuMi0yNCAxMDEtNjQgMTMzLjFjLjEtMS45IC4xLTMuOCAuMS01LjdsMC04YzAtNzEuOC0zNy0xMzguNi05Ny45LTE3Ni43bC02MC4yLTM3LjZjLTguNi01LjQtMTcuOS04LjQtMjcuMy05LjRMMjQ4LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNzggMTM1LjFjMy4zIDUuNyAxMC43IDcuNyAxNi40IDQuNHM3LjctMTAuNyA0LjQtMTYuNGwtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzM2MiA1IDM2OC42IDE2LjVsNjggMTE3LjhzMCAwIDAgMHMwIDAgMCAwbDQzLjMgNzVMNDgwIDE2MGMwLTE3LjcgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMyek0yNDMuOSA4OC41TDI2OC41IDEzMWMtMTMuOSA0LjUtMjYuNCAxMy43LTM0LjcgMjdjLS45IDEuNC0xLjcgMi45LTIuNSA0LjRsLTI4LjktNTBjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44em0tNDYuNCA2My43bDI2LjggNDYuNGMuNiA2IDIuMSAxMS44IDQuMyAxNy40bC00LjcgMC0xMy4zIDBzMCAwIDAgMEwxNzkgMjE2bC0yMy0zOS44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpNMjYwLjkgMTc1YzkuNC0xNSAyOS4xLTE5LjUgNDQuMS0xMC4ybDYwLjIgMzcuNkM0MTYuNyAyMzQuNyA0NDggMjkxLjIgNDQ4IDM1MmwwIDhjMCA4My45LTY4LjEgMTUyLTE1MiAxNTJsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDkyIDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMODggNDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEyNCAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNTYgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw4OCAyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTM2IDBzMCAwIDAgMHMwIDAgMCAwbDkzLjIgMEwyNzEgMjE5LjFjLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xelwiXVxufTtcbmNvbnN0IGZhU2lnbkxhbmd1YWdlID0gZmFIYW5kcztcbmNvbnN0IGZhU2lnbmluZyA9IGZhSGFuZHM7XG5jb25zdCBmYUNhbGVuZGFyRGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLWRheScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYVdhdGVyTGFkZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhdGVyLWxhZGRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibGFkZGVyLXdhdGVyXCIsIFwic3dpbW1pbmctcG9vbFwiXSwgXCJmNWM1XCIsIFwiTTEyOCAxMjcuN0MxMjggNzQuOSAxNzAuOSAzMiAyMjMuNyAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjhjLTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS43bDAgOTYuMyAxOTIgMCAwLTk2LjNDMzg0IDc0LjkgNDI2LjkgMzIgNDc5LjcgMzJjNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44Yy0xNy41IDAtMzEuNyAxNC4yLTMxLjcgMzEuN0w0NDggMzYxYy0xLjYgMS0zLjMgMi00LjggMy4xYy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjMCAwIDAgMCAwIDBsMC05Ni41LTE5MiAwIDAgOTYuNWMtMTkgMC00MS4yLTcuOS01OS4xLTIwLjNjLTEuNi0xLjEtMy4yLTIuMi00LjktMy4xbDAtMjMzLjN6TTMwNi41IDM4OS45QzMyOSA0MDUuNCAzNTYuNSA0MTYgMzg0IDQxNmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWMwIDAgMCAwIDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQ2OS43IDQxNyA0ODAgMzg0IDQ4MGMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgNDA1LjIgMTY1LjEgNDE2IDE5MiA0MTZjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJdXG59O1xuY29uc3QgZmFMYWRkZXJXYXRlciA9IGZhV2F0ZXJMYWRkZXI7XG5jb25zdCBmYVN3aW1taW5nUG9vbCA9IGZhV2F0ZXJMYWRkZXI7XG5jb25zdCBmYUFycm93c1VwRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtZG93bicsXG4gIGljb246IFszMjAsIDUxMiwgW1wiYXJyb3dzLXZcIl0sIFwiZjA3ZFwiLCBcIk0xODIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggMTA5LjNsMCAyOTMuNUw4Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDAyLjdsMC0yOTMuNSA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NWID0gZmFBcnJvd3NVcERvd247XG5jb25zdCBmYUZhY2VHcmltYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3JpbWFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NiwgXCJncmltYWNlXCJdLCBcImY1N2ZcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTExMmwtOCAwIDAtNDAgNTUuMyAwYy0zLjggMjIuNy0yMy42IDQwLTQ3LjMgNDB6bTQ3LjMtNTZMMzQ0IDM0NGwwLTQwIDggMGMyMy44IDAgNDMuNSAxNy4zIDQ3LjMgNDB6TTMyOCAzNDRsLTY0IDAgMC00MCA2NCAwIDAgNDB6bTAgNTZsLTY0IDAgMC00MCA2NCAwIDAgNDB6bS04MC05NmwwIDQwLTY0IDAgMC00MCA2NCAwem0wIDU2bDAgNDAtNjQgMCAwLTQwIDY0IDB6bS04MC0xNmwtNTUuMyAwYzMuOC0yMi43IDIzLjYtNDAgNDcuMy00MGw4IDAgMCA0MHptMCA1NmwtOCAwYy0yMy44IDAtNDMuNS0xNy4zLTQ3LjMtNDBsNTUuMyAwIDAgNDB6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhR3JpbWFjZSA9IGZhRmFjZUdyaW1hY2U7XG5jb25zdCBmYVdoZWVsY2hhaXJNb3ZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWVsY2hhaXItbW92ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wid2hlZWxjaGFpci1hbHRcIl0sIFwiZTJjZVwiLCBcIk0zMjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjA0LjUgMTIxLjNjLTUuNC0yLjUtMTEuNy0xLjktMTYuNCAxLjdsLTQwLjkgMzAuN2MtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw0MC45LTMwLjdjMjMuNy0xNy44IDU1LjMtMjEgODIuMS04LjRsOTAuNCA0Mi41YzI5LjEgMTMuNyAzNi44IDUxLjYgMTUuMiA3NS41TDI5OS4xIDIyNGw5Ny40IDBjMzAuMyAwIDUzIDI3LjcgNDcuMSA1Ny40TDQxNS40IDQyMi4zYy0zLjUgMTcuMy0yMC4zIDI4LjYtMzcuNyAyNS4xcy0yOC42LTIwLjMtMjUuMS0zNy43TDM3NyAyODhsLTcwLjMgMGM4LjYgMTkuNiAxMy4zIDQxLjIgMTMuMyA2NGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyczcxLjYtMTYwIDE2MC0xNjBjMTEuMSAwIDIyIDEuMSAzMi40IDMuM2w1NC4yLTU0LjItNDIuMS0xOS44ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwiXVxufTtcbmNvbnN0IGZhV2hlZWxjaGFpckFsdCA9IGZhV2hlZWxjaGFpck1vdmU7XG5jb25zdCBmYVR1cm5Eb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3R1cm4tZG93bicsXG4gIGljb246IFszODQsIDUxMiwgWzEwNTQ5LCBcImxldmVsLWRvd24tYWx0XCJdLCBcImYzYmVcIiwgXCJNMzUwIDMzNC41YzMuOCA4LjggMiAxOS00LjYgMjZsLTEzNiAxNDRjLTQuNSA0LjgtMTAuOCA3LjUtMTcuNCA3LjVzLTEyLjktMi43LTE3LjQtNy41bC0xMzYtMTQ0Yy02LjYtNy04LjQtMTcuMi00LjYtMjZzMTIuNS0xNC41IDIyLTE0LjVsODggMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwbDgwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgODggMGM5LjYgMCAxOC4yIDUuNyAyMiAxNC41elwiXVxufTtcbmNvbnN0IGZhTGV2ZWxEb3duQWx0ID0gZmFUdXJuRG93bjtcbmNvbnN0IGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmctYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTJcIiwgXCJNMjA4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTIzLjcgMjAwLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDI4MSAyMzIuN2wtMTUuMy0zNi44QzI0OC41IDE1NC44IDIwOC4zIDEyOCAxNjMuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMzIuOSAxNC42LTU4LjEgNDIuNC02OS40IDc2LjVsLTIuNiA3LjhjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMi42LTcuOGM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41em0tMzAgMTM1LjFMNjguNyAzOTggOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDExNi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6TTU1MC42IDE1My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w1MzAuNyAyMjQgMzg0IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNDYuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4MC04MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtODAtODB6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVFbnZlbG9wZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZW52ZWxvcGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImVudmVsb3BlLXNxdWFyZVwiXSwgXCJmMTk5XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIxOCAyNzEuN0w2NC4yIDE3Mi40QzY2IDE1Ni40IDc5LjUgMTQ0IDk2IDE0NGwyNTYgMGMxNi41IDAgMzAgMTIuNCAzMS44IDI4LjRMMjMwIDI3MS43Yy0xLjggMS4yLTMuOSAxLjgtNiAxLjhzLTQuMi0uNi02LTEuOHptMjkuNCAyNi45TDM4NCAyMTAuNCAzODQgMzM2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDM2OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjUuNiAxMzYuNiA4OC4yYzcgNC41IDE1LjEgNi45IDIzLjQgNi45czE2LjQtMi40IDIzLjQtNi45elwiXVxufTtcbmNvbnN0IGZhRW52ZWxvcGVTcXVhcmUgPSBmYVNxdWFyZUVudmVsb3BlO1xuY29uc3QgZmFEaWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5MjJdLCBcImY1MjJcIiwgXCJNMjc0LjkgMzQuM2MtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDM0LjMgMTczLjFjLTI4LjEgMjguMS0yOC4xIDczLjcgMCAxMDEuOEwxNzMuMSA0MTMuN2MyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDBMNDEzLjcgMjc0LjljMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44TDI3NC45IDM0LjN6TTIwMCAyMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNOTYgMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjI0IDM3NmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTM1MiAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMjQgMTIwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptOTYgMzI4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMTQuMyAwYzExLjYgMzYgMy4xIDc3LTI1LjQgMTA1LjVMMzIwIDQxMy44bDAgMzQuMnpNNDgwIDMyOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCb3dsaW5nQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3dsaW5nLWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MzZcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUJyYWluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTA0XSwgXCJmNWRjXCIsIFwiTTE4NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDAwYzAgMzAuOS0yNS4xIDU2LTU2IDU2Yy0yOC45IDAtNTIuNy0yMS45LTU1LjctNTAuMWMtNS4yIDEuNC0xMC43IDIuMS0xNi4zIDIuMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC03LjQgMS4zLTE0LjYgMy42LTIxLjJDMjEuNCAzNjcuNCAwIDMzOC4yIDAgMzA0YzAtMzEuOSAxOC43LTU5LjUgNDUuOC03Mi4zQzM3LjEgMjIwLjggMzIgMjA3IDMyIDE5MmMwLTMwLjcgMjEuNi01Ni4zIDUwLjQtNjIuNkM4MC44IDEyMy45IDgwIDExOCA4MCAxMTJjMC0yOS45IDIwLjYtNTUuMSA0OC4zLTYyLjFDMTMxLjMgMjEuOSAxNTUuMSAwIDE4NCAwek0zMjggMGMyOC45IDAgNTIuNiAyMS45IDU1LjcgNDkuOWMyNy44IDcgNDguMyAzMi4xIDQ4LjMgNjIuMWMwIDYtLjggMTEuOS0yLjQgMTcuNGMyOC44IDYuMiA1MC40IDMxLjkgNTAuNCA2Mi42YzAgMTUtNS4xIDI4LjgtMTMuOCAzOS43QzQ5My4zIDI0NC41IDUxMiAyNzIuMSA1MTIgMzA0YzAgMzQuMi0yMS40IDYzLjQtNTEuNiA3NC44YzIuMyA2LjYgMy42IDEzLjggMy42IDIxLjJjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTUuNiAwLTExLjEtLjctMTYuMy0yLjFjLTMgMjguMi0yNi44IDUwLjEtNTUuNyA1MC4xYy0zMC45IDAtNTYtMjUuMS01Ni01NmwwLTQwMGMwLTMwLjkgMjUuMS01NiA1Ni01NnpcIl1cbn07XG5jb25zdCBmYUJhbmRhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFuZGFnZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTY1NywgXCJiYW5kLWFpZFwiXSwgXCJmNDYyXCIsIFwiTTQ4MCA0MTZsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDMyMHpNNDQ4IDk2TDE5MiA5NmwwIDMyMCAyNTYgMCAwLTMyMHpNNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDAgMC0zMjBMNjQgOTZ6TTI0OCAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjQ4IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQmFuZEFpZCA9IGZhQmFuZGFnZTtcbmNvbnN0IGZhQ2FsZW5kYXJNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1taW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MlwiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnpNMzEyIDM3NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTUzMiwgXCJ0aW1lcy1jaXJjbGVcIiwgXCJ4bWFyay1jaXJjbGVcIl0sIFwiZjA1N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc1IDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG5jb25zdCBmYVRpbWVzQ2lyY2xlID0gZmFDaXJjbGVYbWFyaztcbmNvbnN0IGZhWG1hcmtDaXJjbGUgPSBmYUNpcmNsZVhtYXJrO1xuY29uc3QgZmFHaWZ0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnaWZ0cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc5Y1wiLCBcIk0yMDAuNiAzMkMyMDUgMTkuNSAxOTguNSA1LjggMTg2IDEuNFMxNTkuOCAzLjUgMTU1LjQgMTZMMTQ0LjcgNDYuMmwtOS45LTI5LjhDMTMwLjYgMy44IDExNy0zIDEwNC40IDEuMlM4NSAxOSA4OS4yIDMxLjZsOC4zIDI1LTI3LjQtMjBjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNUw3MC4yIDk2IDQ4IDk2QzIxLjUgOTYgMCAxMTcuNSAwIDE0NEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNTIuNiAwYy01LjQtOS40LTguNi0yMC4zLTguNi0zMmwwLTIyNGMwLTI5LjkgMjAuNS01NSA0OC4yLTYyYzEuOC0zMSAxNy4xLTU4LjIgNDAuMS03Ni4xQzI3MS43IDEwNC43IDI1Ni45IDk2IDI0MCA5NmwtMjIuMiAwIDI4LjMtMjAuNmMxMC43LTcuOCAxMy4xLTIyLjggNS4zLTMzLjVzLTIyLjgtMTMuMS0zMy41LTUuM0wxOTIuNSA1NS4xIDIwMC42IDMyek0zNjMuNSAxODUuNUwzOTMuMSAyMjQgMzQ0IDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRjMC0xMy4xIDEwLjgtMjQgMjQuMi0yNGM3LjYgMCAxNC43IDMuNSAxOS4zIDkuNXpNMjcyIDIwMGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTQuMSAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwIDE5MiAwIDAtOTYgMzIgMCAwIDk2IDE5MiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuMSAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0YzAtMzkuOS0zMi41LTcyLTcyLjItNzJjLTIyLjQgMC00My42IDEwLjQtNTcuMyAyOC4yTDQzMiAxOTUuOGwtMzAuNS0zOS42Yy0xMy43LTE3LjgtMzUtMjguMi01Ny4zLTI4LjJjLTM5LjcgMC03Mi4yIDMyLjEtNzIuMiA3MnpNMjI0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNDQgMCAwLTEyOC0xOTIgMCAwIDgwem0yMjQgNDhsMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC04MC0xOTIgMCAwIDEyOHptOTYtMzEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OS4xIDAgMjkuNi0zOC41YzQuNi01LjkgMTEuNy05LjUgMTkuMy05LjVjMTMuNCAwIDI0LjIgMTAuOSAyNC4yIDI0elwiXVxufTtcbmNvbnN0IGZhSG90ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG90ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NzZdLCBcImY1OTRcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE3NiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA0OEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnptOTYgODBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjQwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xMTIgMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzI4IDM4NGMxMy4zIDAgMjQuMy0xMC45IDIxLTIzLjhjLTEwLjYtNDEuNS00OC4yLTcyLjItOTMtNzIuMnMtODIuNSAzMC43LTkzIDcyLjJjLTMuMyAxMi44IDcuOCAyMy44IDIxIDIzLjhsMTQ0IDB6XCJdXG59O1xuY29uc3QgZmFFYXJ0aEFzaWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWFydGgtYXNpYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1OSwgXCJnbG9iZS1hc2lhXCJdLCBcImY1N2VcIiwgXCJNNTEuNyAyOTUuMWwzMS43IDYuM2M3LjkgMS42IDE2LS45IDIxLjctNi42bDE1LjQtMTUuNGMxMS42LTExLjYgMzEuMS04LjQgMzguNCA2LjJsOS4zIDE4LjVjNC44IDkuNiAxNC42IDE1LjcgMjUuNCAxNS43YzE1LjIgMCAyNi4xLTE0LjYgMjEuNy0yOS4ybC02LTE5LjljLTQuNi0xNS40IDYuOS0zMC45IDIzLTMwLjlsMi4zIDBjMTMuNCAwIDI1LjktNi43IDMzLjMtMTcuOGwxMC43LTE2LjFjNS42LTguNSA1LjMtMTkuNi0uOC0yNy43bC0xNi4xLTIxLjVjLTEwLjMtMTMuNy0zLjMtMzMuNSAxMy40LTM3LjdsMTctNC4zYzcuNS0xLjkgMTMuNi03LjIgMTYuNS0xNC40bDE2LjQtNDAuOUMzMDMuNCA1Mi4xIDI4MC4yIDQ4IDI1NiA0OEMxNDEuMSA0OCA0OCAxNDEuMSA0OCAyNTZjMCAxMy40IDEuMyAyNi41IDMuNyAzOS4xem00MDcuNyA0LjZjLTMtLjMtNi0uMS05IC44bC0xNS44IDQuNGMtNi43IDEuOS0xMy44LS45LTE3LjUtNi43bC0yLTMuMWMtNi05LjQtMTYuNC0xNS4xLTI3LjYtMTUuMXMtMjEuNiA1LjctMjcuNiAxNS4xbC02LjEgOS41Yy0xLjQgMi4yLTMuNCA0LjEtNS43IDUuM0wzMTIgMzMwLjFjLTE4LjEgMTAuMS0yNS41IDMyLjQtMTcgNTEuM2w1LjUgMTIuNGM4LjYgMTkuMiAzMC43IDI4LjUgNTAuNSAyMS4xbDIuNi0xYzEwLTMuNyAyMS4zLTIuMiAyOS45IDQuMWwxLjUgMS4xYzM3LjItMjkuNSA2NC4xLTcxLjQgNzQuNC0xMTkuNXpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNDQuNSA5Mi4xYy0yLjEgOC42IDMuMSAxNy4zIDExLjYgMTkuNGwzMiA4YzguNiAyLjEgMTcuMy0zLjEgMTkuNC0xMS42cy0zLjEtMTcuMy0xMS42LTE5LjRsLTMyLThjLTguNi0yLjEtMTcuMyAzLjEtMTkuNCAxMS42em05Mi0yMGMtMi4xIDguNiAzLjEgMTcuMyAxMS42IDE5LjRzMTcuMy0zLjEgMTkuNC0xMS42bDgtMzJjMi4xLTguNi0zLjEtMTcuMy0xMS42LTE5LjRzLTE3LjMgMy4xLTE5LjQgMTEuNmwtOCAzMnpNMzQzLjIgMTEzLjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJsLTE2IDMyYy00IDcuOS0uNyAxNy41IDcuMiAyMS41czE3LjUgLjcgMjEuNS03LjJsMTYtMzJjNC03LjkgLjctMTcuNS03LjItMjEuNXpcIl1cbn07XG5jb25zdCBmYUdsb2JlQXNpYSA9IGZhRWFydGhBc2lhO1xuY29uc3QgZmFJZENhcmRDbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2lkLWNhcmQtY2xpcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaWQtY2FyZC1hbHRcIl0sIFwiZjQ3ZlwiLCBcIk0yNTYgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDY0bDEyOCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTQ4IDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjR6TTE3NiA0MzcuM2MwIDUuOSA0LjggMTAuNyAxMC43IDEwLjdsMjAyLjcgMGM1LjkgMCAxMC43LTQuOCAxMC43LTEwLjdjMC0yOS41LTIzLjktNTMuMy01My4zLTUzLjNsLTExNy4zIDBjLTI5LjUgMC01My4zIDIzLjktNTMuMyA1My4zek0yODggMzUyYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhSWRDYXJkQWx0ID0gZmFJZENhcmRDbGlwO1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2VhcmNoLXBsdXNcIl0sIFwiZjAwZVwiLCBcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xODQgMjk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA2NC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYVNlYXJjaFBsdXMgPSBmYU1hZ25pZnlpbmdHbGFzc1BsdXM7XG5jb25zdCBmYVRodW1ic1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1icy11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODA3NywgNjE1NzVdLCBcImYxNjRcIiwgXCJNMzEzLjQgMzIuOWMyNiA1LjIgNDIuOSAzMC41IDM3LjcgNTYuNWwtMi4zIDExLjRjLTUuMyAyNi43LTE1LjEgNTIuMS0yOC44IDc1LjJsMTQ0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhjMCAxOC41LTEwLjUgMzQuNi0yNS45IDQyLjZDNDk3IDI3NS40IDUwNCAyODguOSA1MDQgMzA0YzAgMjMuNC0xNi44IDQyLjktMzguOSA0Ny4xYzQuNCA3LjMgNi45IDE1LjggNi45IDI0LjljMCAyMS4zLTEzLjkgMzkuNC0zMy4xIDQ1LjZjLjcgMy4zIDEuMSA2LjggMS4xIDEwLjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk3LjUgMGMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFsLTM4LjUtMjUuN0MxNzYgNDIwLjQgMTYwIDM5MC40IDE2MCAzNTguM2wwLTM4LjMgMC00OCAwLTI0LjljMC0yOS4yIDEzLjMtNTYuNyAzNi03NWw3LjQtNS45YzI2LjUtMjEuMiA0NC42LTUxIDUxLjItODQuMmwyLjMtMTEuNGM1LjItMjYgMzAuNS00Mi45IDU2LjUtMzcuN3pNMzIgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVXNlckNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItY2xvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0ZmRcIiwgXCJNMjI0IDBhMTI4IDEyOCAwIDEgMSAwIDI1NkExMjggMTI4IDAgMSAxIDIyNCAwek0xNzguMyAzMDRsOTEuNCAwYzIwLjYgMCA0MC40IDMuNSA1OC44IDkuOUMzMjMgMzMxIDMyMCAzNDkuMSAzMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0TDI5LjcgNTEyQzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGFuZERvdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhbGxlcmdpZXNcIl0sIFwiZjQ2MVwiLCBcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNHMtMTQuNiA0MS4zIDEuNCA1Ni42TDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjQwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MCAxNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4LTE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bS0xNiA4MGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTI0MCA0MzJhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptLTQ4LTQ4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYUFsbGVyZ2llcyA9IGZhSGFuZERvdHM7XG5jb25zdCBmYUZpbGVJbnZvaWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtaW52b2ljZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTgwIDY0bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMTYgOTZsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMzJsMCA2NCAxOTIgMCAwLTY0TDk2IDI1NnpNMjQwIDQxNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhV2luZG93TWluaW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1pbmltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDY5XSwgXCJmMmQxXCIsIFwiTTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6XCJdXG59O1xuY29uc3QgZmFNdWdTYXVjZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbXVnLXNhdWNlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiY29mZmVlXCJdLCBcImYwZjRcIiwgXCJNOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDAgNjQgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOGwtMzIgMGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw5NiA2NHpNNDgwIDIyNGwzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgMTI4ek0zMiA0MTZsNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQ29mZmVlID0gZmFNdWdTYXVjZXI7XG5jb25zdCBmYUJydXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JydXNoJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTVkXCIsIFwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02bC0xOSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDEwNC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMNjYuNCA2Yy0xLjUtMy42LTUtNi04LjktNkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDIyNGwwIDIyLjRMMCAyNTZsOS42IDAgMzY0LjggMCA5LjYgMCAwLTkuNiAwLTIyLjQgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMjg4bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzJMMCAyODh6TTE5MiA0MzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhTWFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmZhXCIsIFwiTTI4OCA2NEM2NCA2NCAwIDE2MCAwIDI3MlM4MCA0NDggMTc2IDQ0OGw4LjQgMGMyNC4yIDAgNDYuNC0xMy43IDU3LjItMzUuNGwyMy4yLTQ2LjNjNC40LTguOCAxMy4zLTE0LjMgMjMuMi0xNC4zczE4LjggNS41IDIzLjIgMTQuM2wyMy4yIDQ2LjNjMTAuOCAyMS43IDMzIDM1LjQgNTcuMiAzNS40bDguNCAwYzk2IDAgMTc2LTY0IDE3Ni0xNzZzLTY0LTIwOC0yODgtMjA4ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgMjU2em0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzZWFyY2gtbWludXNcIl0sIFwiZjAxMFwiLCBcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpcIl1cbn07XG5jb25zdCBmYVNlYXJjaE1pbnVzID0gZmFNYWduaWZ5aW5nR2xhc3NNaW51cztcbmNvbnN0IGZhUnVsZXJWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci12ZXJ0aWNhbCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjU0OFwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwyMDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDQ4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpcIl1cbn07XG5jb25zdCBmYVVzZXJMYXJnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWxhcmdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ1c2VyLWFsdFwiXSwgXCJmNDA2XCIsIFwiTTI1NiAyODhBMTQ0IDE0NCAwIDEgMCAyNTYgMGExNDQgMTQ0IDAgMSAwIDAgMjg4em0tOTQuNyAzMkM3Mi4yIDMyMCAwIDM5Mi4yIDAgNDgxLjNjMCAxNyAxMy44IDMwLjcgMzAuNyAzMC43bDQ1MC42IDBjMTcgMCAzMC43LTEzLjggMzAuNy0zMC43QzUxMiAzOTIuMiA0MzkuOCAzMjAgMzUwLjcgMzIwbC0xODkuNCAwelwiXVxufTtcbmNvbnN0IGZhVXNlckFsdCA9IGZhVXNlckxhcmdlO1xuY29uc3QgZmFUcmFpblRyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaW4tdHJhbScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODY1MF0sIFwiZTViNFwiLCBcIk04Ni44IDQ4Yy0xMi4yIDAtMjMuNiA1LjUtMzEuMiAxNUw0Mi43IDc5QzM0LjUgODkuMyAxOS40IDkxIDkgODIuN1MtMyA1OS40IDUuMyA0OUwxOCAzM0MzNC43IDEyLjIgNjAgMCA4Ni44IDBMMzYxLjIgMGMyNi43IDAgNTIgMTIuMiA2OC43IDMzbDEyLjggMTZjOC4zIDEwLjQgNi42IDI1LjUtMy44IDMzLjdzLTI1LjUgNi42LTMzLjctMy43TDM5Mi41IDYzYy03LjYtOS41LTE5LjEtMTUtMzEuMi0xNUwyNDggNDhsMCA0OCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMC42LTE0LjMgNTcuOC0zNi42IDc1LjRsNjUuNSA2NS41YzcuMSA3LjEgMi4xIDE5LjEtNy45IDE5LjFsLTM5LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMjg4IDQ0OGwtMTI4IDAtNTQuNiA1NC42Yy02IDYtMTQuMSA5LjQtMjIuNiA5LjRMNDMgNTEyYy0xMCAwLTE1LTEyLjEtNy45LTE5LjFsNjUuNS02NS41Qzc4LjMgNDA5LjggNjQgMzgyLjYgNjQgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTQ4TDg2LjggNDh6TTE2MCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFVc2VyTnVyc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1udXJzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjgyZlwiLCBcIk05NiAxMjhsMC01Ny44YzAtMTMuMyA4LjMtMjUuMyAyMC44LTMwbDk2LTM2YzcuMi0yLjcgMTUuMi0yLjcgMjIuNSAwbDk2IDM2YzEyLjUgNC43IDIwLjggMTYuNiAyMC44IDMwbDAgNTcuOC0uMyAwYy4yIDIuNiAuMyA1LjMgLjMgOGwwIDQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDBjMC0yLjcgLjEtNS40IC4zLThsLS4zIDB6bTQ4IDQ4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNi0xNjAgMCAwIDE2ek0xMTEuOSAzMjcuN2MxMC41LTMuNCAyMS44IC40IDI5LjQgOC41bDcxIDc1LjVjNi4zIDYuNyAxNyA2LjcgMjMuMyAwbDcxLTc1LjVjNy42LTguMSAxOC45LTExLjkgMjkuNC04LjVDNDAxIDM0OC42IDQ0OCA0MDkuNCA0NDggNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43TDMwLjcgNTEyQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuM2MwLTcxLjkgNDctMTMyLjcgMTExLjktMTUzLjZ6TTIwOCA0OGwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDBjLTQuNCAwLTggMy42LTggOHpcIl1cbn07XG5jb25zdCBmYVN5cmluZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3lyaW5nZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODEzN10sIFwiZjQ4ZVwiLCBcIk00NDEgN2wzMiAzMiAzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xNS0xNUw0MTcuOSAxMjhsNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJMMjk1IDczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTUgNTVMNDIyLjEgNTYgNDA3IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6TTIxMC4zIDE1NS43bDYxLjEtNjEuMWMuMyAuMyAuNiAuNyAxIDFsMTYgMTYgNTYgNTYgNTYgNTYgMTYgMTZjLjMgLjMgLjYgLjYgMSAxbC0xOTEgMTkxYy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwTDQxIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ny01NyAwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmw0My4zLTQzLjMgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01NyA0MS40LTQxLjQgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01N3pcIl1cbn07XG5jb25zdCBmYUNsb3VkU3VuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLXN1bicsXG4gIGljb246IFs2NDAsIDUxMiwgWzk5MjVdLCBcImY2YzRcIiwgXCJNMjk0LjIgMS4yYzUuMSAyLjEgOC43IDYuNyA5LjYgMTIuMWwxNC4xIDg0LjcgODQuNyAxNC4xYzUuNCAuOSAxMCA0LjUgMTIuMSA5LjZzMS41IDEwLjktMS42IDE1LjRsLTM4LjUgNTVjLTIuMi0uMS00LjQtLjItNi43LS4yYy0yMy4zIDAtNDUuMSA2LjItNjQgMTcuMWwwLTEuMWMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnM0MyA5NiA5NiA5NmM4LjEgMCAxNS45LTEgMjMuNC0yLjljLTM2LjYgMTguMS02My4zIDUzLjEtNjkuOCA5NC45bC0yNC40IDE3Yy00LjUgMy4yLTEwLjMgMy44LTE1LjQgMS42cy04LjctNi43LTkuNi0xMi4xTDk4LjEgMzE3LjkgMTMuNCAzMDMuOGMtNS40LS45LTEwLTQuNS0xMi4xLTkuNnMtMS41LTEwLjkgMS42LTE1LjRMNTIuNSAyMDggMi45IDEzNy4yYy0zLjItNC41LTMuOC0xMC4zLTEuNi0xNS40czYuNy04LjcgMTIuMS05LjZMOTguMSA5OC4xbDE0LjEtODQuN2MuOS01LjQgNC41LTEwIDkuNi0xMi4xczEwLjktMS41IDE1LjQgMS42TDIwOCA1Mi41IDI3OC44IDIuOWM0LjUtMy4yIDEwLjMtMy44IDE1LjQtMS42ek0xNDQgMjA4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjM5LjkgNDMxLjljMCA0NC4yLTM1LjggODAtODAgODBsLTI3MS45IDBjLTUzIDAtOTYtNDMtOTYtOTZjMC00Ny42IDM0LjYtODcgODAtOTQuNmwwLTEuM2MwLTUzIDQzLTk2IDk2LTk2YzM0LjkgMCA2NS40IDE4LjYgODIuMiA0Ni40YzEzLTkuMSAyOC44LTE0LjQgNDUuOC0xNC40YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS45LS42IDExLjctMS45IDE3LjJjMzcuNCA2LjcgNjUuOCAzOS40IDY1LjggNzguN3pcIl1cbn07XG5jb25zdCBmYVN0b3B3YXRjaDIwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3B3YXRjaC0yMCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA2ZlwiLCBcIk0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMzQuNEM5Mi4zIDExMy44IDE2IDIwMCAxNiAzMDRjMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4czIwOC05My4xIDIwOC0yMDhjMC00MS44LTEyLjMtODAuNy0zMy41LTExMy4ybDI0LjEtMjQuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzNTUuNyAxNDNjLTI4LjEtMjMtNjIuMi0zOC44LTk5LjctNDQuNkwyNTYgNjRsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxNzYgMHpNMjg4IDIwNGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtOTZjMC0yOC43IDIzLjMtNTIgNTItNTJ6bS0xMiA1MmwwIDk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC05NmMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMnpNMTU5LjUgMjQ0Yy01LjQgMC0xMC4yIDMuNS0xMS45IDguNmwtLjYgMS43Yy0zLjUgMTAuNS0xNC44IDE2LjEtMjUuMyAxMi42cy0xNi4xLTE0LjgtMTIuNi0yNS4zbC42LTEuN2M3LjItMjEuNSAyNy4yLTM1LjkgNDkuOC0zNS45YzI5IDAgNTIuNSAyMy41IDUyLjUgNTIuNWwwIDIuMmMwIDEzLjQtNC45IDI2LjQtMTMuOCAzNi40bC0zOSA0My45Yy02LjIgNy0xMCAxNS43LTEwLjkgMjQuOWw0My44IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC02NCAwYy0xMSAwLTIwLTktMjAtMjBsMC0xNS43YzAtMjAuNiA3LjUtNDAuNCAyMS4yLTU1LjhsMzktNDMuOWMyLjQtMi43IDMuNy02LjIgMy43LTkuOGwwLTIuMmMwLTYuOS01LjYtMTIuNS0xMi41LTEyLjV6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVGdWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1mdWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4OTk3LCAxMjg5OTgsIDEyODk5OSwgMTI5MDAwLCAxMjkwMDEsIDEyOTAwMiwgMTI5MDAzLCAxMTAzNSwgMTEwMzZdLCBcImY0NWNcIiwgXCJNMCAwSDUxMlY1MTJIMFYwelwiXVxufTtcbmNvbnN0IGZhTWFnbmV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25ldCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTUyMl0sIFwiZjA3NlwiLCBcIk0wIDE2MGwwIDk2QzAgMzc5LjcgMTAwLjMgNDgwIDIyNCA0ODBzMjI0LTEwMC4zIDIyNC0yMjRsMC05Ni0xMjggMCAwIDk2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtOTZMMCAxNjB6bTAtMzJsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgNjR6bTMyMCAwbDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjR6XCJdXG59O1xuY29uc3QgZmFKYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamFyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTE2XCIsIFwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0wIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwem05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDIyNHpcIl1cbn07XG5jb25zdCBmYU5vdGVTdGlja3kgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbm90ZS1zdGlja3knLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs2MjAyNiwgXCJzdGlja3ktbm90ZVwiXSwgXCJmMjQ5XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDAgMC0xMTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMTEyIDAgMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ0OCAzNTJsLTQ1LjMgMEwzMzYgMzUyYy04LjggMC0xNiA3LjItMTYgMTZsMCA2Ni43IDAgNDUuMyAzMi0zMiA2NC02NCAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVN0aWNreU5vdGUgPSBmYU5vdGVTdGlja3k7XG5jb25zdCBmYUJ1Z1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1Zy1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTQ5MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Ny40IDM0OC45YzEuNy05LjQgMi42LTE5IDIuNi0yOC45bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0LjMgMGMtMS4xLTE0LjEtNS0yNy41LTExLjEtMzkuNWMuNy0uNiAxLjQtMS4yIDIuMS0xLjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0uNyAuNy0xLjMgMS40LTEuOSAyLjFDNDA5LjIgMTY0LjEgMzkzLjEgMTYwIDM3NiAxNjBsLTExMiAwYy04LjMgMC0xNi4zIDEtMjQgMi44TDM4LjggNS4xek0zMjAgMGMtNTMgMC05NiA0My05NiA5NmwwIDMuNmMwIDE1LjcgMTIuNyAyOC40IDI4LjQgMjguNGwxMzUuMSAwYzE1LjcgMCAyOC40LTEyLjcgMjguNC0yOC40bDAtMy42YzAtNTMtNDMtOTYtOTYtOTZ6TTE2MC4zIDI1Nkw5NiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMwIDI0LjYgNS41IDQ3LjggMTUuNCA2OC42Yy0yLjIgMS4zLTQuMiAyLjktNiA0LjhsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDYzLjEtNjMuMWMyNC41IDIxLjggNTUuOCAzNi4yIDkwLjMgMzkuNmwwLTE0My43TDE2Ni43IDIyNy4zYy0zLjQgOS01LjYgMTguNy02LjQgMjguN3pNMzM2IDQ3OS4yYzM2LjYtMy42IDY5LjctMTkuNiA5NC44LTQzLjhMMzM2IDM2MC43bDAgMTE4LjV6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwRnJvbVdhdGVyUHVtcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLXdhdGVyLXB1bXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YjZcIiwgXCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCAyMDgtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDggMiAxNS42IDUuNCAyMi4yYzMuOC0xLjcgNy44LTMuMSAxMi00LjFjMTMuMS0zLjEgMjYuNy05LjggMzcuMy0xOC42YzIyLjItMTguNyA1NC4zLTIwLjEgNzguMS0zLjRjMTggMTIuNCA0MC4xIDIwLjMgNTkuMiAyMC4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjMgNzguMSAzLjRjMTAuNiA4LjggMjQuMiAxNS42IDM3LjMgMTguNmM0LjIgMSA4LjIgMi40IDEyIDQuMUM1NzQgNDE1LjYgNTc2IDQwOCA1NzYgNDAwbDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMC0xNDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0MTYgMTA5LjMgNDE2IDI1NmwtMTI4IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTMwNi41IDQyMS45Yy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjF6XCJdXG59O1xuY29uc3QgZmFCb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjk0NjBdLCBcImY1ZDdcIiwgXCJNMTUzLjcgMTQ0LjhjNi45IDE2LjMgMjAuNiAzMS4yIDM4LjMgMzEuMmwxOTIgMGMxNy43IDAgMzEuNC0xNC45IDM4LjMtMzEuMkM0MzQuNCAxMTYuMSA0NjIuOSA5NiA0OTYgOTZjNDQuMiAwIDgwIDM1LjggODAgODBjMCAzMC40LTE3IDU2LjktNDIgNzAuNGMtMy42IDEuOS02IDUuNS02IDkuNnMyLjQgNy43IDYgOS42YzI1IDEzLjUgNDIgNDAgNDIgNzAuNGMwIDQ0LjItMzUuOCA4MC04MCA4MGMtMzMuMSAwLTYxLjYtMjAuMS03My43LTQ4LjhDNDE1LjQgMzUwLjkgNDAxLjcgMzM2IDM4NCAzMzZsLTE5MiAwYy0xNy43IDAtMzEuNCAxNC45LTM4LjMgMzEuMkMxNDEuNiAzOTUuOSAxMTMuMSA0MTYgODAgNDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGMwLTMwLjQgMTctNTYuOSA0Mi03MC40YzMuNi0xLjkgNi01LjUgNi05LjZzLTIuNC03LjctNi05LjZDMTcgMjMyLjkgMCAyMDYuNCAwIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMy4xIDAgNjEuNiAyMC4xIDczLjcgNDguOHpcIl1cbn07XG5jb25zdCBmYVRhYmxlQ2VsbHNSb3dVbmxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtcm93LXVubG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY5MVwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjUuMWMtMzcuOCA1LjQtNjkuNCAyOS42LTg1LjIgNjIuOUwzNjAgMjI0bDAgNjQgNTYgMCAwIDguNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwtMjQgMCAwIDY0IDI0IDAgMCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTY0IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0yMzIgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMTUyIDM1MmwtODggMCAwIDY0IDg4IDAgMC02NHptNTYgMGwwIDY0IDg4IDAgMC02NC04OCAwem0yODgtODBsMCA0OCAzMiAwIDMyIDAgNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDhjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwtNDggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVVzZXJJbmp1cmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItaW5qdXJlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjcyOFwiLCBcIk0yNDAgODBsMTAyLjcgMGMtNy45LTE5LjUtMjAuNC0zNi41LTM2LjItNDkuOUwyNDAgODB6bTM3LjctNjguMkMyNjEuMyA0LjIgMjQzLjIgMCAyMjQgMGMtNTMuNyAwLTk5LjcgMzMuMS0xMTguNyA4MGw4MS40IDAgOTEtNjguMnpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTUuNC0uMy0xMC44LTEtMTZMOTcgMTEyYy0uNyA1LjItMSAxMC42LTEgMTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjh6TTEyNCAzMTIuNGMtOS43IDMuMS0xOS4xIDctMjggMTEuN0w5NiA1MTJsMTQ3LjcgMEwxODEuNSA0MDguMiAxMjQgMzEyLjR6bTMzLTcuMkwyMDQuMyAzODRsNjcuNyAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMTgtNiAzNC42LTE2IDQ4bDgyLjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN0M0NDggMzgzLjggMzY4LjIgMzA0IDI2OS43IDMwNGwtOTEuNCAwYy03LjIgMC0xNC4zIC40LTIxLjMgMS4zek0wIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJMNjQgNTEybDAtMTY2LjZDMjQuOSAzNzguMSAwIDQyNy4zIDAgNDgyLjN6TTMyMCA0NjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4LjUgMCA1Ny4xIDk1LjJDMzAzIDUwNy4yIDMyMCA0ODcuNiAzMjAgNDY0elwiXVxufTtcbmNvbnN0IGZhRmFjZVNhZFRlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zYWQtdGVhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU0NiwgXCJzYWQtdGVhclwiXSwgXCJmNWI0XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnptMjQwIDgwYzAtOC44IDcuMi0xNiAxNi0xNmM0NSAwIDg1LjYgMjAuNSAxMTUuNyA1My4xYzYgNi41IDUuNiAxNi42LS45IDIyLjZzLTE2LjYgNS42LTIyLjYtLjljLTI1LTI3LjEtNTcuNC00Mi45LTkyLjMtNDIuOWMtOC44IDAtMTYtNy4yLTE2LTE2em0tODAgODBjLTI2LjUgMC00OC0yMS00OC00N2MwLTIwIDI4LjYtNjAuNCA0MS42LTc3LjdjMy4yLTQuNCA5LjYtNC40IDEyLjggMEMxNzkuNiAzMDguNiAyMDggMzQ5IDIwOCAzNjljMCAyNi0yMS41IDQ3LTQ4IDQ3ek0zNjcuNiAyMDhhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTYWRUZWFyID0gZmFGYWNlU2FkVGVhcjtcbmNvbnN0IGZhUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNzJcIiwgXCJNNDgyLjMgMTkyYzM0LjIgMCA5My43IDI5IDkzLjcgNjRjMCAzNi01OS41IDY0LTkzLjcgNjRsLTExNi42IDBMMjY1LjIgNDk1LjljLTUuNyAxMC0xNi4zIDE2LjEtMjcuOCAxNi4xbC01Ni4yIDBjLTEwLjYgMC0xOC4zLTEwLjItMTUuNC0yMC40bDQ5LTE3MS42TDExMiAzMjAgNjguOCAzNzcuNmMtMyA0LTcuOCA2LjQtMTIuOCA2LjRsLTQyIDBjLTcuOCAwLTE0LTYuMy0xNC0xNGMwLTEuMyAuMi0yLjYgLjUtMy45TDMyIDI1NiAuNSAxNDUuOWMtLjQtMS4zLS41LTIuNi0uNS0zLjljMC03LjggNi4zLTE0IDE0LTE0bDQyIDBjNSAwIDkuOCAyLjQgMTIuOCA2LjRMMTEyIDE5MmwxMDIuOSAwLTQ5LTE3MS42QzE2Mi45IDEwLjIgMTcwLjYgMCAxODEuMiAwbDU2LjIgMGMxMS41IDAgMjIuMSA2LjIgMjcuOCAxNi4xTDM2NS43IDE5MmwxMTYuNiAwelwiXVxufTtcbmNvbnN0IGZhVGVudEFycm93c0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVudC1hcnJvd3MtZG93bicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4MVwiLCBcIk0yMDkuOCAxMTEuOWMtOC45LTkuOS0yNC0xMC43LTMzLjktMS44bC0zOS45IDM2TDEzNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNFM4OCAxMC43IDg4IDI0bDAgMTIyLjEtMzkuOS0zNmMtOS45LTguOS0yNS04LjEtMzMuOSAxLjhzLTguMSAyNSAxLjggMzMuOWw4MCA3MmM5LjEgOC4yIDIzIDguMiAzMi4xIDBsODAtNzJjOS45LTguOSAxMC43LTI0IDEuOC0zMy45em0zNTIgMGMtOC45LTkuOS0yNC0xMC43LTMzLjktMS44bC0zOS45IDM2TDQ4OCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEyMi4xLTM5LjktMzZjLTkuOS04LjktMjUtOC4xLTMzLjkgMS44cy04LjEgMjUgMS44IDMzLjlsODAgNzJjOS4xIDguMiAyMyA4LjIgMzIuMSAwbDgwLTcyYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOXpNMzA3LjQgMTY2LjVjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMGwtMTY4IDEyOGMtNi42IDUtMTEgMTIuNS0xMi4zIDIwLjdsLTI0IDE2MGMtMS40IDkuMiAxLjMgMTguNiA3LjQgMjUuNlM4Ni43IDUxMiA5NiA1MTJsMTQ0IDAgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExOC4xYzAtNS41IDQuNC05LjkgOS45LTkuOWMzLjcgMCA3LjIgMi4xIDguOCA1LjVsNjguNCAxMzYuOGM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDYwLjIgMCAxNiAwYzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIl1cbn07XG5jb25zdCBmYUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzEyOCwgNTEyLCBbMTAwNjksIDEwMDcxLCA2MTczOF0sIFwiMjFcIiwgXCJNOTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMzIgNDYuMyAzMiA2NGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDk2IDY0ek02NCA0ODBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzU3BpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtc3BpbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRiYlwiLCBcIk0yNTYgOTZjMzguNCAwIDczLjcgMTMuNSAxMDEuMyAzNi4xbC0zMi42IDMyLjZjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWwxMTIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0zNCAzNEMzNjMuNCA1Mi42IDMxMi4xIDMyIDI1NiAzMmMtMTAuOSAwLTIxLjUgLjgtMzIgMi4zbDAgNjQuOWMxMC4zLTIuMSAyMS0zLjIgMzItMy4yek0xMzIuMSAxNTQuN2wzMi42IDMyLjZjNC42IDQuNiAxMS41IDUuOSAxNy40IDMuNXM5LjktOC4zIDkuOS0xNC44bDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA0OGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDM0IDM0QzUyLjYgMTQ4LjYgMzIgMTk5LjkgMzIgMjU2YzAgMTAuOSAuOCAyMS41IDIuMyAzMmw2NC45IDBjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC0zOC40IDEzLjUtNzMuNyAzNi4xLTEwMS4zek00NzcuNyAyMjRsLTY0LjkgMGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyYzAgMzguNC0xMy41IDczLjctMzYuMSAxMDEuM2wtMzIuNi0zMi42Yy00LjYtNC42LTExLjUtNS45LTE3LjQtMy41cy05LjkgOC4zLTkuOSAxNC44bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMTIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMzQtMzRDNDU5LjQgMzYzLjQgNDgwIDMxMi4xIDQ4MCAyNTZjMC0xMC45LS44LTIxLjUtMi4zLTMyek0yNTYgNDE2Yy0zOC40IDAtNzMuNy0xMy41LTEwMS4zLTM2LjFsMzIuNi0zMi42YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRzLTguMy05LjktMTQuOC05LjlMNjQgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMzQtMzRDMTQ4LjYgNDU5LjQgMTk5LjkgNDgwIDI1NiA0ODBjMTAuOSAwIDIxLjUtLjggMzItMi4zbDAtNjQuOWMtMTAuMyAyLjEtMjEgMy4yLTMyIDMuMnpcIl1cbn07XG5jb25zdCBmYVByaW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByaW50JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDI0LCAxMjg0MzgsIDkxMTNdLCBcImYwMmZcIiwgXCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCA5NiA2NCAwIDAtOTYgMjI2LjcgMEwzODQgOTMuM2wwIDY2LjcgNjQgMCAwLTY2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDAwIDE4LjdDMzg4IDYuNyAzNzEuNyAwIDM1NC43IDBMMTI4IDB6TTM4NCAzNTJsMCAzMiAwIDY0LTI1NiAwIDAtNjQgMC0xNiAwLTE2IDI1NiAwem02NCAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek00MzIgMjQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYVR1cmtpc2hMaXJhU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0dXJraXNoLWxpcmEtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW1widHJ5XCIsIFwidHVya2lzaC1saXJhXCJdLCBcImUyYmJcIiwgXCJNOTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNS4zTDI0Ny4yIDY1LjJjMTctNC45IDM0LjcgNSAzOS42IDIycy01IDM0LjctMjIgMzkuNkwxMjggMTY1LjlsMCAyOS40IDExOS4yLTM0LjFjMTctNC45IDM0LjcgNSAzOS42IDIycy01IDM0LjctMjIgMzkuNkwxMjggMjYxLjkgMTI4IDQxNmw2My44IDBjNjguMiAwIDEyNC40LTUzLjUgMTI3LjgtMTIxLjZsLjQtOGMuOS0xNy43IDE1LjktMzEuMiAzMy42LTMwLjRzMzEuMiAxNS45IDMwLjQgMzMuNmwtLjQgOEMzNzguNSAzOTkuOCAyOTQuMSA0ODAgMTkxLjggNDgwTDk2IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjcuOS0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDIxMy42bDAtMjkuNC0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDExNy42IDY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVHJ5ID0gZmFUdXJraXNoTGlyYVNpZ247XG5jb25zdCBmYVR1cmtpc2hMaXJhID0gZmFUdXJraXNoTGlyYVNpZ247XG5jb25zdCBmYURvbGxhclNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9sbGFyLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjgxNzgsIDYxNzgxLCBcImRvbGxhclwiLCBcInVzZFwiXSwgXCIyNFwiLCBcIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1LjdjMS42IC4yIDMuMSAuNCA0LjcgLjdjLjQgLjEgLjcgLjEgMS4xIC4ybDQ4IDguOGMxNy40IDMuMiAyOC45IDE5LjkgMjUuNyAzNy4ycy0xOS45IDI4LjktMzcuMiAyNS43bC00Ny41LTguN2MtMzEuMy00LjYtNTguOS0xLjUtNzguMyA2LjJzLTI3LjIgMTguMy0yOSAyOC4xYy0yIDEwLjctLjUgMTYuNyAxLjIgMjAuNGMxLjggMy45IDUuNSA4LjMgMTIuOCAxMy4yYzE2LjMgMTAuNyA0MS4zIDE3LjcgNzMuNyAyNi4zbDIuOSAuOGMyOC42IDcuNiA2My42IDE2LjggODkuNiAzMy44YzE0LjIgOS4zIDI3LjYgMjEuOSAzNS45IDM5LjVjOC41IDE3LjkgMTAuMyAzNy45IDYuNCA1OS4yYy02LjkgMzgtMzMuMSA2My40LTY1LjYgNzYuN2MtMTMuNyA1LjYtMjguNiA5LjItNDQuNCAxMWwwIDMzLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC45Yy0uNC0uMS0uOS0uMS0xLjMtLjJsLS4yIDBzMCAwIDAgMGMtMjQuNC0zLjgtNjQuNS0xNC4zLTkxLjUtMjYuM2MtMTYuMS03LjItMjMuNC0yNi4xLTE2LjItNDIuMnMyNi4xLTIzLjQgNDIuMi0xNi4yYzIwLjkgOS4zIDU1LjMgMTguNSA3NS4yIDIxLjZjMzEuOSA0LjcgNTguMiAyIDc2LTUuM2MxNi45LTYuOSAyNC42LTE2LjkgMjYuOC0yOC45YzEuOS0xMC42IC40LTE2LjctMS4zLTIwLjRjLTEuOS00LTUuNi04LjQtMTMtMTMuM2MtMTYuNC0xMC43LTQxLjUtMTcuNy03NC0yNi4zbC0yLjgtLjdzMCAwIDAgMEMxMTkuNCAyNzkuMyA4NC40IDI3MCA1OC40IDI1M2MtMTQuMi05LjMtMjcuNS0yMi0zNS44LTM5LjZjLTguNC0xNy45LTEwLjEtMzcuOS02LjEtNTkuMkMyMy43IDExNiA1Mi4zIDkxLjIgODQuOCA3OC4zYzEzLjMtNS4zIDI3LjktOC45IDQzLjItMTFMMTI4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhRG9sbGFyID0gZmFEb2xsYXJTaWduO1xuY29uc3QgZmFVc2QgPSBmYURvbGxhclNpZ247XG5jb25zdCBmYVggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneCcsXG4gIGljb246IFszODQsIDUxMiwgWzEyMF0sIFwiNThcIiwgXCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzLWRvbGxhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2VhcmNoLWRvbGxhclwiXSwgXCJmNjg4XCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTIyOCAxMDRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdsMC0xMy45elwiXVxufTtcbmNvbnN0IGZhU2VhcmNoRG9sbGFyID0gZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI7XG5jb25zdCBmYVVzZXJzR2VhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1nZWFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2Vycy1jb2dcIl0sIFwiZjUwOVwiLCBcIk0xNDQgMTYwQTgwIDgwIDAgMSAwIDE0NCAwYTgwIDgwIDAgMSAwIDAgMTYwem0zNjggMEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpNMCAyOTguN0MwIDMxMC40IDkuNiAzMjAgMjEuMyAzMjBsMjEzLjMgMGMuMiAwIC40IDAgLjcgMGMtMjYuNi0yMy41LTQzLjMtNTcuOC00My4zLTk2YzAtNy42IC43LTE1IDEuOS0yMi4zYy0xMy42LTYuMy0yOC43LTkuNy00NC42LTkuN2wtNDIuNyAwQzQ3LjggMTkyIDAgMjM5LjggMCAyOTguN3pNMzIwIDMyMGMyNCAwIDQ1LjktOC44IDYyLjctMjMuM2MyLjUtMy43IDUuMi03LjMgOC0xMC43YzIuNy0zLjMgNS43LTYuMSA5LTguM0M0MTAgMjYyLjMgNDE2IDI0My45IDQxNiAyMjRjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZ6bTY1LjQgNjAuMmMtMTAuMy01LjktMTguMS0xNi4yLTIwLjgtMjguMmwtMTAzLjIgMEMxODcuNyAzNTIgMTI4IDQxMS43IDEyOCA0ODUuM2MwIDE0LjcgMTEuOSAyNi43IDI2LjcgMjYuN2wzMDAuNiAwYy0yLjEtNS4yLTMuMi0xMC45LTMuMi0xNi40bDAtM2MtMS4zLS43LTIuNy0xLjUtNC0yLjNsLTIuNiAxLjVjLTE2LjggOS43LTQwLjUgOC01NC43LTkuN2MtNC41LTUuNi04LjYtMTEuNS0xMi40LTE3LjZsLS4xLS4yLS4xLS4yLTIuNC00LjEtLjEtLjItLjEtLjJjLTMuNC02LjItNi40LTEyLjYtOS0xOS4zYy04LjItMjEuMiAyLjItNDIuNiAxOS01Mi4zbDIuNy0xLjVjMC0uOCAwLTEuNSAwLTIuM3MwLTEuNSAwLTIuM2wtMi43LTEuNXpNNTMzLjMgMTkybC00Mi43IDBjLTE1LjkgMC0zMSAzLjUtNDQuNiA5LjdjMS4zIDcuMiAxLjkgMTQuNyAxLjkgMjIuM2MwIDE3LjQtMy41IDMzLjktOS43IDQ5YzIuNSAuOSA0LjkgMiA3LjEgMy4zbDIuNiAxLjVjMS4zLS44IDIuNi0xLjYgNC0yLjNsMC0zYzAtMTkuNCAxMy4zLTM5LjEgMzUuOC00Mi42YzcuOS0xLjIgMTYtMS45IDI0LjItMS45czE2LjMgLjYgMjQuMiAxLjljMjIuNSAzLjUgMzUuOCAyMy4yIDM1LjggNDIuNmwwIDNjMS4zIC43IDIuNyAxLjUgNCAyLjNsMi42LTEuNWMxNi44LTkuNyA0MC41LTggNTQuNyA5LjdjMi4zIDIuOCA0LjUgNS44IDYuNiA4LjdjLTIuMS01Ny4xLTQ5LTEwMi43LTEwNi42LTEwMi43em05MS4zIDE2My45YzYuMy0zLjYgOS41LTExLjEgNi44LTE4Yy0yLjEtNS41LTQuNi0xMC44LTcuNC0xNS45bC0yLjMtNGMtMy4xLTUuMS02LjUtOS45LTEwLjItMTQuNWMtNC42LTUuNy0xMi43LTYuNy0xOS0zbC0yLjkgMS43Yy05LjIgNS4zLTIwLjQgNC0yOS42LTEuM3MtMTYuMS0xNC41LTE2LjEtMjUuMWwwLTMuNGMwLTcuMy00LjktMTMuOC0xMi4xLTE0LjljLTYuNS0xLTEzLjEtMS41LTE5LjktMS41cy0xMy40IC41LTE5LjkgMS41Yy03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOWwwIDMuNGMwIDEwLjYtNi45IDE5LjgtMTYuMSAyNS4xcy0yMC40IDYuNi0yOS42IDEuM2wtMi45LTEuN2MtNi4zLTMuNi0xNC40LTIuNi0xOSAzYy0zLjcgNC42LTcuMSA5LjUtMTAuMiAxNC42bC0yLjMgMy45Yy0yLjggNS4xLTUuMyAxMC40LTcuNCAxNS45Yy0yLjYgNi44IC41IDE0LjMgNi44IDE3LjlsMi45IDEuN2M5LjIgNS4zIDEzLjcgMTUuOCAxMy43IDI2LjRzLTQuNSAyMS4xLTEzLjcgMjYuNGwtMyAxLjdjLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjljMi4xIDUuNSA0LjYgMTAuNyA3LjQgMTUuOGwyLjQgNC4xYzMgNS4xIDYuNCA5LjkgMTAuMSAxNC41YzQuNiA1LjcgMTIuNyA2LjcgMTkgM2wyLjktMS43YzkuMi01LjMgMjAuNC00IDI5LjYgMS4zczE2LjEgMTQuNSAxNi4xIDI1LjFsMCAzLjRjMCA3LjMgNC45IDEzLjggMTIuMSAxNC45YzYuNSAxIDEzLjEgMS41IDE5LjkgMS41czEzLjQtLjUgMTkuOS0xLjVjNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjlsMC0zLjRjMC0xMC42IDYuOS0xOS44IDE2LjEtMjUuMXMyMC40LTYuNiAyOS42LTEuM2wyLjkgMS43YzYuMyAzLjYgMTQuNCAyLjYgMTktM2MzLjctNC42IDcuMS05LjQgMTAuMS0xNC41bDIuNC00LjJjMi44LTUuMSA1LjMtMTAuMyA3LjQtMTUuOGMyLjYtNi44LS41LTE0LjMtNi44LTE3LjlsLTMtMS43Yy05LjItNS4zLTEzLjctMTUuOC0xMy43LTI2LjRzNC41LTIxLjEgMTMuNy0yNi40bDMtMS43ek00NzIgMzg0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6XCJdXG59O1xuY29uc3QgZmFVc2Vyc0NvZyA9IGZhVXNlcnNHZWFyO1xuY29uc3QgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1taWxpdGFyeS1wb2ludGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0YVwiLCBcIk0yNDYuOSAxNC4xQzIzNCAxNS4yIDIyNCAyNiAyMjQgMzljMCAxMy44IDExLjIgMjUgMjUgMjVsMTUxIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzAuNkM0MTYgOCA0MDggLjcgMzk4LjcgMS40TDI0Ni45IDE0LjF6TTI0MCAxMTJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkwyNDEuNiA5NmMtMSA1LjItMS42IDEwLjUtMS42IDE2ek03MiAyMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTUyIDAgMCA4OS40TDM4Ni44IDIzMC41Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUwyNDAgMjI0IDcyIDIyNHptMzQ1LjcgMjAuOUwyNDYuNiA0MTYgNDE2IDQxNmwwLTQ2LjMgNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQ2Mi4zIDI5MC44Yy0xMS4yLTE4LjktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMjI0IDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0NvbHVtbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY29sdW1ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmFua1wiLCBcImluc3RpdHV0aW9uXCIsIFwibXVzZXVtXCIsIFwidW5pdmVyc2l0eVwiXSwgXCJmMTljXCIsIFwiTTI0My40IDIuNmwtMjI0IDk2Yy0xNCA2LTIxLjggMjEtMTguNyAzNS44UzE2LjggMTYwIDMyIDE2MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzE1LjIgMCAyOC4zLTEwLjcgMzEuMy0yNS42cy00LjgtMjkuOS0xOC43LTM1LjhsLTIyNC05NmMtOC0zLjQtMTcuMi0zLjQtMjUuMiAwek0xMjggMjI0bC02NCAwIDAgMTk2LjNjLS42IC4zLTEuMiAuNy0xLjggMS4xbC00OCAzMmMtMTEuNyA3LjgtMTcgMjIuNC0xMi45IDM1LjlTMTcuOSA1MTIgMzIgNTEybDQ0OCAwYzE0LjEgMCAyNi41LTkuMiAzMC42LTIyLjdzLTEuMS0yOC4xLTEyLjktMzUuOWwtNDgtMzJjLS42LS40LTEuMi0uNy0xLjgtMS4xTDQ0OCAyMjRsLTY0IDAgMCAxOTItNDAgMCAwLTE5Mi02NCAwIDAgMTkyLTQ4IDAgMC0xOTItNjQgMCAwIDE5Mi00MCAwIDAtMTkyek0yNTYgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQmFuayA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFJbnN0aXR1dGlvbiA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFNdXNldW0gPSBmYUJ1aWxkaW5nQ29sdW1ucztcbmNvbnN0IGZhVW5pdmVyc2l0eSA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFVbWJyZWxsYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bWJyZWxsYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjBlOVwiLCBcIk0yODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE3LjdDNDUxLjggNjMuNCA1NTcuNyAxNjEgNTczLjkgMjg1LjljMiAxNS42LTE3LjMgMjQuNC0yNy44IDEyLjdDNTMyLjEgMjgzIDUwNC44IDI3MiA0ODAgMjcyYy0zOC43IDAtNzEgMjcuNS03OC40IDY0LjFjLTEuNyA4LjctOC43IDE1LjktMTcuNiAxNS45cy0xNS44LTcuMi0xNy42LTE1LjlDMzU5IDI5OS41IDMyNi43IDI3MiAyODggMjcycy03MSAyNy41LTc4LjQgNjQuMWMtMS43IDguNy04LjcgMTUuOS0xNy42IDE1LjlzLTE1LjgtNy4yLTE3LjYtMTUuOUMxNjcgMjk5LjUgMTM0LjcgMjcyIDk2IDI3MmMtMjQuOCAwLTUyLjEgMTEtNjYuMSAyNi43QzE5LjQgMzEwLjQgLjEgMzAxLjUgMi4xIDI4NS45QzE4LjMgMTYxIDEyNC4yIDYzLjQgMjU2IDQ5LjdMMjU2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDMwNGMxMi4zIDAgMjMuNSA0LjYgMzIgMTIuMmwwIDExNC4zYzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNGMtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjZjOS42IDAgMTcuNC03LjggMTcuNC0xNy40bDAtMTE0LjNjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMnpcIl1cbn07XG5jb25zdCBmYVRyb3dlbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm93ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1ODlcIiwgXCJNMzQzLjkgMjEzLjRMMjQ1LjMgMzEybDY1LjQgNjUuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45Uy0yLjEgNDgxLjggMS41IDQ3MC41bDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIwMCAyNjYuN2w5OC42LTk4LjZjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zelwiXVxufTtcbmNvbnN0IGZhRCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTAwXSwgXCI0NFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDk2IDBjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNHMtMTAwLjMgMjI0LTIyNCAyMjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCAwTDY0IDk2bDAgMzIwIDk2IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBzLTcxLjYtMTYwLTE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFTdGFwbGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXBsZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1YWZcIiwgXCJNNjQwIDI5OS4zbDAgNC43IDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04MCAwLTY0IDBMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwIDAtNDhMOTYgMzY4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExNi42TDMzLjggMjE0QzE0LjIgMjEwLjUgMCAxOTMuNSAwIDE3My43YzAtOC45IDIuOS0xNy41IDguMi0yNC42bDM1LjYtNDcuNUM3Ni43IDU3LjggMTI4LjIgMzIgMTgyLjkgMzJjMjcgMCA1My42IDYuMyA3Ny44IDE4LjRMNTg2LjkgMjEzLjVDNjE5LjUgMjI5LjcgNjQwIDI2MyA2NDAgMjk5LjN6TTQ0OCAzMDRsMC0xNkwxMjggMjMwLjlsMCA3My4xIDMyMCAwelwiXVxufTtcbmNvbnN0IGZhTWFza3NUaGVhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hc2tzLXRoZWF0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5MTcsIFwidGhlYXRlci1tYXNrc1wiXSwgXCJmNjMwXCIsIFwiTTc0LjYgMzczLjJjNDEuNyAzNi4xIDEwOCA4Mi41IDE2Ni4xIDczLjdjNi4xLS45IDEyLjEtMi41IDE4LTQuNWMtOS4yLTEyLjMtMTcuMy0yNC40LTI0LjItMzUuNGMtMjEuOS0zNS0yOC44LTc1LjItMjUuOS0xMTMuNmMtMjAuNiA0LjEtMzkuMiAxMy01NC43IDI1LjRjLTYuNSA1LjItMTYuMyAxLjMtMTQuOC03YzYuNC0zMy41IDMzLTYwLjkgNjguMi02Ni4zYzIuNi0uNCA1LjMtLjcgNy45LS44bDE5LjQtMTMxLjNjMi0xMy44IDgtMzIuNyAyNS00NS45QzI3OC4yIDUzLjIgMzEwLjUgMzcgMzYzLjIgMzIuMmMtLjgtLjctMS42LTEuNC0yLjQtMi4xQzM0MC42IDE0LjUgMjg4LjQtMTEuNSAxNzUuNyA1LjZTMjAuNSA2MyA1LjcgODMuOUMwIDkxLjktLjggMTAyIC42IDExMS44TDI0LjggMjc2LjFjNS41IDM3LjMgMjEuNSA3Mi42IDQ5LjggOTcuMnptODcuNy0yMTkuNmM0LjQtMy4xIDEwLjgtMiAxMS44IDMuM2MuMSAuNSAuMiAxLjEgLjMgMS42YzMuMiAyMS44LTExLjYgNDItMzMuMSA0NS4zcy00MS41LTExLjgtNDQuNy0zMy41Yy0uMS0uNS0uMS0xLjEtLjItMS42Yy0uNi01LjQgNS4yLTguNCAxMC4zLTYuN2M5IDMgMTguOCAzLjkgMjguNyAyLjRzMTkuMS01LjMgMjYuOC0xMC44ek0yNjEuNiAzOTBjMjkuNCA0Ni45IDc5LjUgMTEwLjkgMTM3LjYgMTE5LjdzMTI0LjUtMzcuNSAxNjYuMS03My43YzI4LjMtMjQuNSA0NC4zLTU5LjggNDkuOC05Ny4ybDI0LjItMTY0LjNjMS40LTkuOCAuNi0xOS45LTUuMS0yNy45Yy0xNC44LTIwLjktNTcuMy02MS4yLTE3MC03OC4zUzI5OS40IDc3LjIgMjc5LjIgOTIuOGMtNy44IDYtMTEuNSAxNS40LTEyLjkgMjUuMkwyNDIuMSAyODIuM2MtNS41IDM3LjMtLjQgNzUuOCAxOS42IDEwNy43ek00MDQuNSAyMzUuM2MtNy43LTUuNS0xNi44LTkuMy0yNi44LTEwLjhzLTE5LjgtLjYtMjguNyAyLjRjLTUuMSAxLjctMTAuOS0xLjMtMTAuMy02LjdjLjEtLjUgLjEtMS4xIC4yLTEuNmMzLjItMjEuOCAyMy4yLTM2LjggNDQuNy0zMy41czM2LjMgMjMuNSAzMy4xIDQ1LjNjLS4xIC41LS4yIDEuMS0uMyAxLjZjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjN6bTEzNi4yIDE1LjVjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjNjLTcuNy01LjUtMTYuOC05LjMtMjYuOC0xMC44cy0xOS44LS42LTI4LjcgMi40Yy01LjEgMS43LTEwLjktMS4zLTEwLjMtNi43Yy4xLS41IC4xLTEuMSAuMi0xLjZjMy4yLTIxLjggMjMuMi0zNi44IDQ0LjctMzMuNXMzNi4zIDIzLjUgMzMuMSA0NS4zYy0uMSAuNS0uMiAxLjEtLjMgMS42ek01MzAgMzUwLjJjLTE5LjYgNDQuNy02Ni44IDcyLjUtMTE2LjggNjQuOXMtODcuMS00OC4yLTkzLTk2LjdjLTEtOC4zIDguOS0xMi4xIDE1LjItNi43YzIzLjkgMjAuOCA1My42IDM1LjMgODcgNDAuM3M2Ni4xIC4xIDk0LjktMTIuOGM3LjYtMy40IDE2IDMuMiAxMi42IDEwLjl6XCJdXG59O1xuY29uc3QgZmFUaGVhdGVyTWFza3MgPSBmYU1hc2tzVGhlYXRlcjtcbmNvbnN0IGZhS2lwU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraXAtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFjNFwiLCBcIk0zNDAuOCA4OC4zYzEzLjQtMTEuNSAxNS0zMS43IDMuNS00NS4xcy0zMS43LTE1LTQ1LjEtMy41TDEyOCAxODYuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgNDYuMyA2NCA2NGwwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyMi40TDI5OS4yIDQ3Mi4zYzEzLjQgMTEuNSAzMy42IDkuOSA0NS4xLTMuNXM5LjktMzMuNi0zLjUtNDUuMUwxODIuNSAyODggMzUyIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTY5LjUgMEwzNDAuOCA4OC4zelwiXVxufTtcbmNvbnN0IGZhSGFuZFBvaW50TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTVcIiwgXCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMjA4IDAgMC02NEwzMiA5NnpNMTkyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem0tNjQtNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTk2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem04OC05NmwtLjYgMGM1LjQgOS40IDguNiAyMC4zIDguNiAzMmMwIDEzLjItNCAyNS40LTEwLjggMzUuNmMyNC45IDguNyA0Mi44IDMyLjUgNDIuOCA2MC40YzAgMTEuNy0zLjEgMjIuNi04LjYgMzJsOC42IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02MS43YzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtMTEuNi0xMS42QzQyOS41IDc3LjUgMzk2LjkgNjQgMzYzIDY0bC0yNyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC01NmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJ6XCJdXG59O1xuY29uc3QgZmFIYW5kc2hha2VTaW1wbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlLXNpbXBsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTMwOSwgXCJoYW5kc2hha2UtYWx0XCJdLCBcImY0YzZcIiwgXCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJsNDEuOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC03NiAwLTQgMC0uNyAwLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4yem0yMi44IDEyNC40bC01MS43IDQwLjJDMjYzIDI3NC40IDIxNy4zIDI2OCAxOTMuNyAyMzUuNmMtMjIuMi0zMC41LTE2LjYtNzMuMSAxMi43LTk2LjhsODMuMi02Ny4zYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTcyIDQ4LTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzelwiXVxufTtcbmNvbnN0IGZhSGFuZHNoYWtlQWx0ID0gZmFIYW5kc2hha2VTaW1wbGU7XG5jb25zdCBmYUpldEZpZ2h0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamV0LWZpZ2h0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImZpZ2h0ZXItamV0XCJdLCBcImYwZmJcIiwgXCJNMTYwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0TDI5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwTDM4NCAxOTJsMTE2LjQgMGM3LjcgMCAxNS4zIDEuNCAyMi41IDQuMUw2MjUgMjM0LjRjOSAzLjQgMTUgMTIgMTUgMjEuNnMtNiAxOC4yLTE1IDIxLjZMNTIyLjkgMzE1LjljLTcuMiAyLjctMTQuOCA0LjEtMjIuNSA0LjFMMzg0IDMyMCAyODAgNDY0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTE0NC0zMiAwLTU0LjYgNTQuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40TDY0IDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNEwxNjAgMTkybDMyIDAgMC0xNDQtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODAgMjQwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDB6XCJdXG59O1xuY29uc3QgZmFGaWdodGVySmV0ID0gZmFKZXRGaWdodGVyO1xuY29uc3QgZmFTcXVhcmVTaGFyZU5vZGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1zaGFyZS1ub2RlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2hhcmUtYWx0LXNxdWFyZVwiXSwgXCJmMWUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM4NCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVMMTk0LjEgMjU2bDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNWMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE3NC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxOC4zIDAgMzQuOCA3LjcgNDYuNSAyMGw4MS45LTQ0LjdjLS4zLTIuNC0uNC00LjktLjQtNy4zYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6XCJdXG59O1xuY29uc3QgZmFTaGFyZUFsdFNxdWFyZSA9IGZhU3F1YXJlU2hhcmVOb2RlcztcbmNvbnN0IGZhQmFyY29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXJjb2RlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDJhXCIsIFwiTTI0IDMyQzEwLjcgMzIgMCA0Mi43IDAgNTZMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNEw2NCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyNCAzMnptODggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDE2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00MTZjMC04LjgtNy4yLTE2LTE2LTE2em03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwem05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwek00NDggNTZsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bS02NC04bDAgNDE2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00MTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFQbHVzTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1cy1taW51cycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTQzY1wiLCBcIk0yMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJMNDggMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMiAwIDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTIgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTExMiAwIDAtMTEyek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlkZW8nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInZpZGVvLWNhbWVyYVwiXSwgXCJmMDNkXCIsIFwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTU1OS4xIDk5LjhjMTAuNCA1LjYgMTYuOSAxNi40IDE2LjkgMjguMmwwIDI1NmMwIDExLjgtNi41IDIyLjYtMTYuOSAyOC4ycy0yMyA1LTMyLjktMS42bC05Ni02NEw0MTYgMzM3LjFsMC0xNy4xIDAtMTI4IDAtMTcuMSAxNC4yLTkuNSA5Ni02NGM5LjgtNi41IDIyLjQtNy4yIDMyLjktMS42elwiXVxufTtcbmNvbnN0IGZhVmlkZW9DYW1lcmEgPSBmYVZpZGVvO1xuY29uc3QgZmFHcmFkdWF0aW9uQ2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyYWR1YXRpb24tY2FwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI3ODkxLCBcIm1vcnRhci1ib2FyZFwiXSwgXCJmMTlkXCIsIFwiTTMyMCAzMmMtOC4xIDAtMTYuMSAxLjQtMjMuNyA0LjFMMTUuOCAxMzcuNEM2LjMgMTQwLjkgMCAxNDkuOSAwIDE2MHM2LjMgMTkuMSAxNS44IDIyLjZsNTcuOSAyMC45QzU3LjMgMjI5LjMgNDggMjU5LjggNDggMjkxLjlsMCAyOC4xYzAgMjguNC0xMC44IDU3LjctMjIuMyA4MC44Yy02LjUgMTMtMTMuOSAyNS44LTIyLjUgMzcuNkMwIDQ0Mi43LS45IDQ0OC4zIC45IDQ1My40czYgOC45IDExLjIgMTAuMmw2NCAxNmM0LjIgMS4xIDguNyAuMyAxMi40LTJzNi4zLTYuMSA3LjEtMTAuNGM4LjYtNDIuOCA0LjMtODEuMi0yLjEtMTA4LjdDOTAuMyAzNDQuMyA4NiAzMjkuOCA4MCAzMTYuNWwwLTI0LjZjMC0zMC4yIDEwLjItNTguNyAyNy45LTgxLjVjMTIuOS0xNS41IDI5LjYtMjggNDkuMi0zNS43bDE1Ny02MS43YzguMi0zLjIgMTcuNSAuOCAyMC43IDlzLS44IDE3LjUtOSAyMC43bC0xNTcgNjEuN2MtMTIuNCA0LjktMjMuMyAxMi40LTMyLjIgMjEuNmwxNTkuNiA1Ny42YzcuNiAyLjcgMTUuNiA0LjEgMjMuNyA0LjFzMTYuMS0xLjQgMjMuNy00LjFMNjI0LjIgMTgyLjZjOS41LTMuNCAxNS44LTEyLjUgMTUuOC0yMi42cy02LjMtMTkuMS0xNS44LTIyLjZMMzQzLjcgMzYuMUMzMzYuMSAzMy40IDMyOC4xIDMyIDMyMCAzMnpNMTI4IDQwOGMwIDM1LjMgODYgNzIgMTkyIDcyczE5Mi0zNi43IDE5Mi03Mkw0OTYuNyAyNjIuNiAzNTQuNSAzMTRjLTExLjEgNC0yMi44IDYtMzQuNSA2cy0yMy41LTItMzQuNS02TDE0My4zIDI2Mi42IDEyOCA0MDh6XCJdXG59O1xuY29uc3QgZmFNb3J0YXJCb2FyZCA9IGZhR3JhZHVhdGlvbkNhcDtcbmNvbnN0IGZhSGFuZEhvbGRpbmdNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtaG9sZGluZy1tZWRpY2FsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDVjXCIsIFwiTTIyNCAyNGwwIDU2LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNTYgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTU2IDAgMC01NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTU1OS43IDM5Mi4yYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjcyIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAtMTYgMC03OC4zIDBjLTI5LjEgMC01Ny4zIDkuOS04MCAyOEw2OC44IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zem0tMzY3LTguMmwuOSAwYzAgMCAwIDAgMCAwYy0uMyAwLS42IDAtLjkgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1M2VcIiwgXCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xTDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42bDI5LjcgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwem0xMzYgMTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDE2IDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFUdXJuVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHVybi11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzEwNTQ4LCBcImxldmVsLXVwLWFsdFwiXSwgXCJmM2JmXCIsIFwiTTM1MCAxNzcuNWMzLjgtOC44IDItMTktNC42LTI2bC0xMzYtMTQ0QzIwNC45IDIuNyAxOTguNiAwIDE5MiAwcy0xMi45IDIuNy0xNy40IDcuNWwtMTM2IDE0NGMtNi42IDctOC40IDE3LjItNC42IDI2czEyLjUgMTQuNSAyMiAxNC41bDg4IDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTE5MiA4OCAwYzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJdXG59O1xuY29uc3QgZmFMZXZlbFVwQWx0ID0gZmFUdXJuVXA7XG52YXIgaWNvbnMgPSB7XG4gIGZhMCxcbiAgZmExLFxuICBmYTIsXG4gIGZhMyxcbiAgZmE0LFxuICBmYTUsXG4gIGZhNixcbiAgZmE3LFxuICBmYTgsXG4gIGZhOSxcbiAgZmFGaWxsRHJpcCxcbiAgZmFBcnJvd3NUb0NpcmNsZSxcbiAgZmFDaXJjbGVDaGV2cm9uUmlnaHQsXG4gIGZhQ2hldnJvbkNpcmNsZVJpZ2h0LFxuICBmYUF0LFxuICBmYVRyYXNoQ2FuLFxuICBmYVRyYXNoQWx0LFxuICBmYVRleHRIZWlnaHQsXG4gIGZhVXNlclhtYXJrLFxuICBmYVVzZXJUaW1lcyxcbiAgZmFTdGV0aG9zY29wZSxcbiAgZmFNZXNzYWdlLFxuICBmYUNvbW1lbnRBbHQsXG4gIGZhSW5mbyxcbiAgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcixcbiAgZmFDb21wcmVzc0FsdCxcbiAgZmFFeHBsb3Npb24sXG4gIGZhRmlsZUxpbmVzLFxuICBmYUZpbGVBbHQsXG4gIGZhRmlsZVRleHQsXG4gIGZhV2F2ZVNxdWFyZSxcbiAgZmFSaW5nLFxuICBmYUJ1aWxkaW5nVW4sXG4gIGZhRGljZVRocmVlLFxuICBmYUNhbGVuZGFyRGF5cyxcbiAgZmFDYWxlbmRhckFsdCxcbiAgZmFBbmNob3JDaXJjbGVDaGVjayxcbiAgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQsXG4gIGZhVm9sbGV5YmFsbCxcbiAgZmFWb2xsZXliYWxsQmFsbCxcbiAgZmFBcnJvd3NVcFRvTGluZSxcbiAgZmFTb3J0RG93bixcbiAgZmFTb3J0RGVzYyxcbiAgZmFDaXJjbGVNaW51cyxcbiAgZmFNaW51c0NpcmNsZSxcbiAgZmFEb29yT3BlbixcbiAgZmFSaWdodEZyb21CcmFja2V0LFxuICBmYVNpZ25PdXRBbHQsXG4gIGZhQXRvbSxcbiAgZmFTb2FwLFxuICBmYUljb25zLFxuICBmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0LFxuICBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoLFxuICBmYU1pY3JvcGhvbmVBbHRTbGFzaCxcbiAgZmFCcmlkZ2VDaXJjbGVDaGVjayxcbiAgZmFQdW1wTWVkaWNhbCxcbiAgZmFGaW5nZXJwcmludCxcbiAgZmFIYW5kUG9pbnRSaWdodCxcbiAgZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbixcbiAgZmFTZWFyY2hMb2NhdGlvbixcbiAgZmFGb3J3YXJkU3RlcCxcbiAgZmFTdGVwRm9yd2FyZCxcbiAgZmFGYWNlU21pbGVCZWFtLFxuICBmYVNtaWxlQmVhbSxcbiAgZmFGbGFnQ2hlY2tlcmVkLFxuICBmYUZvb3RiYWxsLFxuICBmYUZvb3RiYWxsQmFsbCxcbiAgZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDcm9wLFxuICBmYUFuZ2xlc0Rvd24sXG4gIGZhQW5nbGVEb3VibGVEb3duLFxuICBmYVVzZXJzUmVjdGFuZ2xlLFxuICBmYVBlb3BsZVJvb2YsXG4gIGZhUGVvcGxlTGluZSxcbiAgZmFCZWVyTXVnRW1wdHksXG4gIGZhQmVlcixcbiAgZmFEaWFncmFtUHJlZGVjZXNzb3IsXG4gIGZhQXJyb3dVcExvbmcsXG4gIGZhTG9uZ0Fycm93VXAsXG4gIGZhRmlyZUZsYW1lU2ltcGxlLFxuICBmYUJ1cm4sXG4gIGZhUGVyc29uLFxuICBmYU1hbGUsXG4gIGZhTGFwdG9wLFxuICBmYUZpbGVDc3YsXG4gIGZhTWVub3JhaCxcbiAgZmFUcnVja1BsYW5lLFxuICBmYVJlY29yZFZpbnlsLFxuICBmYUZhY2VHcmluU3RhcnMsXG4gIGZhR3JpblN0YXJzLFxuICBmYUJvbmcsXG4gIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZyxcbiAgZmFQYXN0YWZhcmlhbmlzbSxcbiAgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUsXG4gIGZhU3Bvb24sXG4gIGZhVXRlbnNpbFNwb29uLFxuICBmYUphcldoZWF0LFxuICBmYUVudmVsb3Blc0J1bGssXG4gIGZhTWFpbEJ1bGssXG4gIGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUNpcmNsZUgsXG4gIGZhSG9zcGl0YWxTeW1ib2wsXG4gIGZhUGFnZXIsXG4gIGZhQWRkcmVzc0Jvb2ssXG4gIGZhQ29udGFjdEJvb2ssXG4gIGZhU3RyaWtldGhyb3VnaCxcbiAgZmFLLFxuICBmYUxhbmRtYXJrRmxhZyxcbiAgZmFQZW5jaWwsXG4gIGZhUGVuY2lsQWx0LFxuICBmYUJhY2t3YXJkLFxuICBmYUNhcmV0UmlnaHQsXG4gIGZhQ29tbWVudHMsXG4gIGZhUGFzdGUsXG4gIGZhRmlsZUNsaXBib2FyZCxcbiAgZmFDb2RlUHVsbFJlcXVlc3QsXG4gIGZhQ2xpcGJvYXJkTGlzdCxcbiAgZmFUcnVja1JhbXBCb3gsXG4gIGZhVHJ1Y2tMb2FkaW5nLFxuICBmYVVzZXJDaGVjayxcbiAgZmFWaWFsVmlydXMsXG4gIGZhU2hlZXRQbGFzdGljLFxuICBmYUJsb2csXG4gIGZhVXNlck5pbmphLFxuICBmYVBlcnNvbkFycm93VXBGcm9tTGluZSxcbiAgZmFTY3JvbGxUb3JhaCxcbiAgZmFUb3JhaCxcbiAgZmFCcm9vbUJhbGwsXG4gIGZhUXVpZGRpdGNoLFxuICBmYVF1aWRkaXRjaEJyb29tQmFsbCxcbiAgZmFUb2dnbGVPZmYsXG4gIGZhQm94QXJjaGl2ZSxcbiAgZmFBcmNoaXZlLFxuICBmYVBlcnNvbkRyb3duaW5nLFxuICBmYUFycm93RG93bjkxLFxuICBmYVNvcnROdW1lcmljRGVzYyxcbiAgZmFTb3J0TnVtZXJpY0Rvd25BbHQsXG4gIGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQsXG4gIGZhR3JpblRvbmd1ZVNxdWludCxcbiAgZmFTcHJheUNhbixcbiAgZmFUcnVja01vbnN0ZXIsXG4gIGZhVyxcbiAgZmFFYXJ0aEFmcmljYSxcbiAgZmFHbG9iZUFmcmljYSxcbiAgZmFSYWluYm93LFxuICBmYUNpcmNsZU5vdGNoLFxuICBmYVRhYmxldFNjcmVlbkJ1dHRvbixcbiAgZmFUYWJsZXRBbHQsXG4gIGZhUGF3LFxuICBmYUNsb3VkLFxuICBmYVRyb3dlbEJyaWNrcyxcbiAgZmFGYWNlRmx1c2hlZCxcbiAgZmFGbHVzaGVkLFxuICBmYUhvc3BpdGFsVXNlcixcbiAgZmFUZW50QXJyb3dMZWZ0UmlnaHQsXG4gIGZhR2F2ZWwsXG4gIGZhTGVnYWwsXG4gIGZhQmlub2N1bGFycyxcbiAgZmFNaWNyb3Bob25lU2xhc2gsXG4gIGZhQm94VGlzc3VlLFxuICBmYU1vdG9yY3ljbGUsXG4gIGZhQmVsbENvbmNpZXJnZSxcbiAgZmFDb25jaWVyZ2VCZWxsLFxuICBmYVBlblJ1bGVyLFxuICBmYVBlbmNpbFJ1bGVyLFxuICBmYVBlb3BsZUFycm93cyxcbiAgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsXG4gIGZhTWFyc0FuZFZlbnVzQnVyc3QsXG4gIGZhU3F1YXJlQ2FyZXRSaWdodCxcbiAgZmFDYXJldFNxdWFyZVJpZ2h0LFxuICBmYVNjaXNzb3JzLFxuICBmYUN1dCxcbiAgZmFTdW5QbGFudFdpbHQsXG4gIGZhVG9pbGV0c1BvcnRhYmxlLFxuICBmYUhvY2tleVB1Y2ssXG4gIGZhVGFibGUsXG4gIGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodCxcbiAgZmFUYWNob2dyYXBoRGlnaXRhbCxcbiAgZmFEaWdpdGFsVGFjaG9ncmFwaCxcbiAgZmFVc2Vyc1NsYXNoLFxuICBmYUNsb3ZlcixcbiAgZmFSZXBseSxcbiAgZmFNYWlsUmVwbHksXG4gIGZhU3RhckFuZENyZXNjZW50LFxuICBmYUhvdXNlRmlyZSxcbiAgZmFTcXVhcmVNaW51cyxcbiAgZmFNaW51c1NxdWFyZSxcbiAgZmFIZWxpY29wdGVyLFxuICBmYUNvbXBhc3MsXG4gIGZhU3F1YXJlQ2FyZXREb3duLFxuICBmYUNhcmV0U3F1YXJlRG93bixcbiAgZmFGaWxlQ2lyY2xlUXVlc3Rpb24sXG4gIGZhTGFwdG9wQ29kZSxcbiAgZmFTd2F0Y2hib29rLFxuICBmYVByZXNjcmlwdGlvbkJvdHRsZSxcbiAgZmFCYXJzLFxuICBmYU5hdmljb24sXG4gIGZhUGVvcGxlR3JvdXAsXG4gIGZhSG91cmdsYXNzRW5kLFxuICBmYUhvdXJnbGFzczMsXG4gIGZhSGVhcnRDcmFjayxcbiAgZmFIZWFydEJyb2tlbixcbiAgZmFTcXVhcmVVcFJpZ2h0LFxuICBmYUV4dGVybmFsTGlua1NxdWFyZUFsdCxcbiAgZmFGYWNlS2lzc0JlYW0sXG4gIGZhS2lzc0JlYW0sXG4gIGZhRmlsbSxcbiAgZmFSdWxlckhvcml6b250YWwsXG4gIGZhUGVvcGxlUm9iYmVyeSxcbiAgZmFMaWdodGJ1bGIsXG4gIGZhQ2FyZXRMZWZ0LFxuICBmYUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUV4Y2xhbWF0aW9uQ2lyY2xlLFxuICBmYVNjaG9vbENpcmNsZVhtYXJrLFxuICBmYUFycm93UmlnaHRGcm9tQnJhY2tldCxcbiAgZmFTaWduT3V0LFxuICBmYUNpcmNsZUNoZXZyb25Eb3duLFxuICBmYUNoZXZyb25DaXJjbGVEb3duLFxuICBmYVVubG9ja0tleWhvbGUsXG4gIGZhVW5sb2NrQWx0LFxuICBmYUNsb3VkU2hvd2Vyc0hlYXZ5LFxuICBmYUhlYWRwaG9uZXNTaW1wbGUsXG4gIGZhSGVhZHBob25lc0FsdCxcbiAgZmFTaXRlbWFwLFxuICBmYUNpcmNsZURvbGxhclRvU2xvdCxcbiAgZmFEb25hdGUsXG4gIGZhTWVtb3J5LFxuICBmYVJvYWRTcGlrZXMsXG4gIGZhRmlyZUJ1cm5lcixcbiAgZmFGbGFnLFxuICBmYUhhbnVraWFoLFxuICBmYUZlYXRoZXIsXG4gIGZhVm9sdW1lTG93LFxuICBmYVZvbHVtZURvd24sXG4gIGZhQ29tbWVudFNsYXNoLFxuICBmYUNsb3VkU3VuUmFpbixcbiAgZmFDb21wcmVzcyxcbiAgZmFXaGVhdEF3bixcbiAgZmFXaGVhdEFsdCxcbiAgZmFBbmtoLFxuICBmYUhhbmRzSG9sZGluZ0NoaWxkLFxuICBmYUFzdGVyaXNrLFxuICBmYVNxdWFyZUNoZWNrLFxuICBmYUNoZWNrU3F1YXJlLFxuICBmYVBlc2V0YVNpZ24sXG4gIGZhSGVhZGluZyxcbiAgZmFIZWFkZXIsXG4gIGZhR2hvc3QsXG4gIGZhTGlzdCxcbiAgZmFMaXN0U3F1YXJlcyxcbiAgZmFTcXVhcmVQaG9uZUZsaXAsXG4gIGZhUGhvbmVTcXVhcmVBbHQsXG4gIGZhQ2FydFBsdXMsXG4gIGZhR2FtZXBhZCxcbiAgZmFDaXJjbGVEb3QsXG4gIGZhRG90Q2lyY2xlLFxuICBmYUZhY2VEaXp6eSxcbiAgZmFEaXp6eSxcbiAgZmFFZ2csXG4gIGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmssXG4gIGZhQ2FtcGdyb3VuZCxcbiAgZmFGb2xkZXJQbHVzLFxuICBmYUZ1dGJvbCxcbiAgZmFGdXRib2xCYWxsLFxuICBmYVNvY2NlckJhbGwsXG4gIGZhUGFpbnRicnVzaCxcbiAgZmFQYWludEJydXNoLFxuICBmYUxvY2ssXG4gIGZhR2FzUHVtcCxcbiAgZmFIb3RUdWJQZXJzb24sXG4gIGZhSG90VHViLFxuICBmYU1hcExvY2F0aW9uLFxuICBmYU1hcE1hcmtlZCxcbiAgZmFIb3VzZUZsb29kV2F0ZXIsXG4gIGZhVHJlZSxcbiAgZmFCcmlkZ2VMb2NrLFxuICBmYVNhY2tEb2xsYXIsXG4gIGZhUGVuVG9TcXVhcmUsXG4gIGZhRWRpdCxcbiAgZmFDYXJTaWRlLFxuICBmYVNoYXJlTm9kZXMsXG4gIGZhU2hhcmVBbHQsXG4gIGZhSGVhcnRDaXJjbGVNaW51cyxcbiAgZmFIb3VyZ2xhc3NIYWxmLFxuICBmYUhvdXJnbGFzczIsXG4gIGZhTWljcm9zY29wZSxcbiAgZmFTaW5rLFxuICBmYUJhZ1Nob3BwaW5nLFxuICBmYVNob3BwaW5nQmFnLFxuICBmYUFycm93RG93blpBLFxuICBmYVNvcnRBbHBoYURlc2MsXG4gIGZhU29ydEFscGhhRG93bkFsdCxcbiAgZmFNaXR0ZW4sXG4gIGZhUGVyc29uUmF5cyxcbiAgZmFVc2VycyxcbiAgZmFFeWVTbGFzaCxcbiAgZmFGbGFza1ZpYWwsXG4gIGZhSGFuZCxcbiAgZmFIYW5kUGFwZXIsXG4gIGZhT20sXG4gIGZhV29ybSxcbiAgZmFIb3VzZUNpcmNsZVhtYXJrLFxuICBmYVBsdWcsXG4gIGZhQ2hldnJvblVwLFxuICBmYUhhbmRTcG9jayxcbiAgZmFTdG9wd2F0Y2gsXG4gIGZhRmFjZUtpc3MsXG4gIGZhS2lzcyxcbiAgZmFCcmlkZ2VDaXJjbGVYbWFyayxcbiAgZmFGYWNlR3JpblRvbmd1ZSxcbiAgZmFHcmluVG9uZ3VlLFxuICBmYUNoZXNzQmlzaG9wLFxuICBmYUZhY2VHcmluV2luayxcbiAgZmFHcmluV2luayxcbiAgZmFFYXJEZWFmLFxuICBmYURlYWYsXG4gIGZhRGVhZm5lc3MsXG4gIGZhSGFyZE9mSGVhcmluZyxcbiAgZmFSb2FkQ2lyY2xlQ2hlY2ssXG4gIGZhRGljZUZpdmUsXG4gIGZhU3F1YXJlUnNzLFxuICBmYVJzc1NxdWFyZSxcbiAgZmFMYW5kTWluZU9uLFxuICBmYUlDdXJzb3IsXG4gIGZhU3RhbXAsXG4gIGZhU3RhaXJzLFxuICBmYUksXG4gIGZhSHJ5dm5pYVNpZ24sXG4gIGZhSHJ5dm5pYSxcbiAgZmFQaWxscyxcbiAgZmFGYWNlR3JpbldpZGUsXG4gIGZhR3JpbkFsdCxcbiAgZmFUb290aCxcbiAgZmFWLFxuICBmYUJhbmdsYWRlc2hpVGFrYVNpZ24sXG4gIGZhQmljeWNsZSxcbiAgZmFTdGFmZlNuYWtlLFxuICBmYVJvZEFzY2xlcGl1cyxcbiAgZmFSb2RTbmFrZSxcbiAgZmFTdGFmZkFlc2N1bGFwaXVzLFxuICBmYUhlYWRTaWRlQ291Z2hTbGFzaCxcbiAgZmFUcnVja01lZGljYWwsXG4gIGZhQW1idWxhbmNlLFxuICBmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhU25vd21hbixcbiAgZmFNb3J0YXJQZXN0bGUsXG4gIGZhUm9hZEJhcnJpZXIsXG4gIGZhU2Nob29sLFxuICBmYUlnbG9vLFxuICBmYUpvaW50LFxuICBmYUFuZ2xlUmlnaHQsXG4gIGZhSG9yc2UsXG4gIGZhUSxcbiAgZmFHLFxuICBmYU5vdGVzTWVkaWNhbCxcbiAgZmFUZW1wZXJhdHVyZUhhbGYsXG4gIGZhVGVtcGVyYXR1cmUyLFxuICBmYVRoZXJtb21ldGVyMixcbiAgZmFUaGVybW9tZXRlckhhbGYsXG4gIGZhRG9uZ1NpZ24sXG4gIGZhQ2Fwc3VsZXMsXG4gIGZhUG9vU3Rvcm0sXG4gIGZhUG9vQm9sdCxcbiAgZmFGYWNlRnJvd25PcGVuLFxuICBmYUZyb3duT3BlbixcbiAgZmFIYW5kUG9pbnRVcCxcbiAgZmFNb25leUJpbGwsXG4gIGZhQm9va21hcmssXG4gIGZhQWxpZ25KdXN0aWZ5LFxuICBmYVVtYnJlbGxhQmVhY2gsXG4gIGZhSGVsbWV0VW4sXG4gIGZhQnVsbHNleWUsXG4gIGZhQmFjb24sXG4gIGZhSGFuZFBvaW50RG93bixcbiAgZmFBcnJvd1VwRnJvbUJyYWNrZXQsXG4gIGZhRm9sZGVyLFxuICBmYUZvbGRlckJsYW5rLFxuICBmYUZpbGVXYXZlZm9ybSxcbiAgZmFGaWxlTWVkaWNhbEFsdCxcbiAgZmFSYWRpYXRpb24sXG4gIGZhQ2hhcnRTaW1wbGUsXG4gIGZhTWFyc1N0cm9rZSxcbiAgZmFWaWFsLFxuICBmYUdhdWdlLFxuICBmYURhc2hib2FyZCxcbiAgZmFHYXVnZU1lZCxcbiAgZmFUYWNob21ldGVyQWx0QXZlcmFnZSxcbiAgZmFXYW5kTWFnaWNTcGFya2xlcyxcbiAgZmFNYWdpY1dhbmRTcGFya2xlcyxcbiAgZmFFLFxuICBmYVBlbkNsaXAsXG4gIGZhUGVuQWx0LFxuICBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYVVzZXIsXG4gIGZhU2Nob29sQ2lyY2xlQ2hlY2ssXG4gIGZhRHVtcHN0ZXIsXG4gIGZhVmFuU2h1dHRsZSxcbiAgZmFTaHV0dGxlVmFuLFxuICBmYUJ1aWxkaW5nVXNlcixcbiAgZmFTcXVhcmVDYXJldExlZnQsXG4gIGZhQ2FyZXRTcXVhcmVMZWZ0LFxuICBmYUhpZ2hsaWdodGVyLFxuICBmYUtleSxcbiAgZmFCdWxsaG9ybixcbiAgZmFHbG9iZSxcbiAgZmFTeW5hZ29ndWUsXG4gIGZhUGVyc29uSGFsZkRyZXNzLFxuICBmYVJvYWRCcmlkZ2UsXG4gIGZhTG9jYXRpb25BcnJvdyxcbiAgZmFDLFxuICBmYVRhYmxldEJ1dHRvbixcbiAgZmFCdWlsZGluZ0xvY2ssXG4gIGZhUGl6emFTbGljZSxcbiAgZmFNb25leUJpbGxXYXZlLFxuICBmYUNoYXJ0QXJlYSxcbiAgZmFBcmVhQ2hhcnQsXG4gIGZhSG91c2VGbGFnLFxuICBmYVBlcnNvbkNpcmNsZU1pbnVzLFxuICBmYUJhbixcbiAgZmFDYW5jZWwsXG4gIGZhQ2FtZXJhUm90YXRlLFxuICBmYVNwcmF5Q2FuU3BhcmtsZXMsXG4gIGZhQWlyRnJlc2hlbmVyLFxuICBmYVN0YXIsXG4gIGZhUmVwZWF0LFxuICBmYUNyb3NzLFxuICBmYUJveCxcbiAgZmFWZW51c01hcnMsXG4gIGZhQXJyb3dQb2ludGVyLFxuICBmYU1vdXNlUG9pbnRlcixcbiAgZmFNYXhpbWl6ZSxcbiAgZmFFeHBhbmRBcnJvd3NBbHQsXG4gIGZhQ2hhcmdpbmdTdGF0aW9uLFxuICBmYVNoYXBlcyxcbiAgZmFUcmlhbmdsZUNpcmNsZVNxdWFyZSxcbiAgZmFTaHVmZmxlLFxuICBmYVJhbmRvbSxcbiAgZmFQZXJzb25SdW5uaW5nLFxuICBmYVJ1bm5pbmcsXG4gIGZhTW9iaWxlUmV0cm8sXG4gIGZhR3JpcExpbmVzVmVydGljYWwsXG4gIGZhU3BpZGVyLFxuICBmYUhhbmRzQm91bmQsXG4gIGZhRmlsZUludm9pY2VEb2xsYXIsXG4gIGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFYUmF5LFxuICBmYVNwZWxsQ2hlY2ssXG4gIGZhU2xhc2gsXG4gIGZhQ29tcHV0ZXJNb3VzZSxcbiAgZmFNb3VzZSxcbiAgZmFBcnJvd1JpZ2h0VG9CcmFja2V0LFxuICBmYVNpZ25JbixcbiAgZmFTaG9wU2xhc2gsXG4gIGZhU3RvcmVBbHRTbGFzaCxcbiAgZmFTZXJ2ZXIsXG4gIGZhVmlydXNDb3ZpZFNsYXNoLFxuICBmYVNob3BMb2NrLFxuICBmYUhvdXJnbGFzc1N0YXJ0LFxuICBmYUhvdXJnbGFzczEsXG4gIGZhQmxlbmRlclBob25lLFxuICBmYUJ1aWxkaW5nV2hlYXQsXG4gIGZhUGVyc29uQnJlYXN0ZmVlZGluZyxcbiAgZmFSaWdodFRvQnJhY2tldCxcbiAgZmFTaWduSW5BbHQsXG4gIGZhVmVudXMsXG4gIGZhUGFzc3BvcnQsXG4gIGZhVGh1bWJ0YWNrU2xhc2gsXG4gIGZhVGh1bWJUYWNrU2xhc2gsXG4gIGZhSGVhcnRQdWxzZSxcbiAgZmFIZWFydGJlYXQsXG4gIGZhUGVvcGxlQ2FycnlCb3gsXG4gIGZhUGVvcGxlQ2FycnksXG4gIGZhVGVtcGVyYXR1cmVIaWdoLFxuICBmYU1pY3JvY2hpcCxcbiAgZmFDcm93bixcbiAgZmFXZWlnaHRIYW5naW5nLFxuICBmYVhtYXJrc0xpbmVzLFxuICBmYUZpbGVQcmVzY3JpcHRpb24sXG4gIGZhV2VpZ2h0U2NhbGUsXG4gIGZhV2VpZ2h0LFxuICBmYVVzZXJHcm91cCxcbiAgZmFVc2VyRnJpZW5kcyxcbiAgZmFBcnJvd1VwQVosXG4gIGZhU29ydEFscGhhVXAsXG4gIGZhQ2hlc3NLbmlnaHQsXG4gIGZhRmFjZUxhdWdoU3F1aW50LFxuICBmYUxhdWdoU3F1aW50LFxuICBmYVdoZWVsY2hhaXIsXG4gIGZhQ2lyY2xlQXJyb3dVcCxcbiAgZmFBcnJvd0NpcmNsZVVwLFxuICBmYVRvZ2dsZU9uLFxuICBmYVBlcnNvbldhbGtpbmcsXG4gIGZhV2Fsa2luZyxcbiAgZmFMLFxuICBmYUZpcmUsXG4gIGZhQmVkUHVsc2UsXG4gIGZhUHJvY2VkdXJlcyxcbiAgZmFTaHV0dGxlU3BhY2UsXG4gIGZhU3BhY2VTaHV0dGxlLFxuICBmYUZhY2VMYXVnaCxcbiAgZmFMYXVnaCxcbiAgZmFGb2xkZXJPcGVuLFxuICBmYUhlYXJ0Q2lyY2xlUGx1cyxcbiAgZmFDb2RlRm9yayxcbiAgZmFDaXR5LFxuICBmYU1pY3JvcGhvbmVMaW5lcyxcbiAgZmFNaWNyb3Bob25lQWx0LFxuICBmYVBlcHBlckhvdCxcbiAgZmFVbmxvY2ssXG4gIGZhQ29sb25TaWduLFxuICBmYUhlYWRzZXQsXG4gIGZhU3RvcmVTbGFzaCxcbiAgZmFSb2FkQ2lyY2xlWG1hcmssXG4gIGZhVXNlck1pbnVzLFxuICBmYU1hcnNTdHJva2VVcCxcbiAgZmFNYXJzU3Ryb2tlVixcbiAgZmFDaGFtcGFnbmVHbGFzc2VzLFxuICBmYUdsYXNzQ2hlZXJzLFxuICBmYUNsaXBib2FyZCxcbiAgZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUZpbGVBcnJvd1VwLFxuICBmYUZpbGVVcGxvYWQsXG4gIGZhV2lmaSxcbiAgZmFXaWZpMyxcbiAgZmFXaWZpU3Ryb25nLFxuICBmYUJhdGgsXG4gIGZhQmF0aHR1YixcbiAgZmFVbmRlcmxpbmUsXG4gIGZhVXNlclBlbixcbiAgZmFVc2VyRWRpdCxcbiAgZmFTaWduYXR1cmUsXG4gIGZhU3Ryb29wd2FmZWwsXG4gIGZhQm9sZCxcbiAgZmFBbmNob3JMb2NrLFxuICBmYUJ1aWxkaW5nTmdvLFxuICBmYU1hbmF0U2lnbixcbiAgZmFOb3RFcXVhbCxcbiAgZmFCb3JkZXJUb3BMZWZ0LFxuICBmYUJvcmRlclN0eWxlLFxuICBmYU1hcExvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlZEFsdCxcbiAgZmFKZWRpLFxuICBmYVNxdWFyZVBvbGxWZXJ0aWNhbCxcbiAgZmFQb2xsLFxuICBmYU11Z0hvdCxcbiAgZmFDYXJCYXR0ZXJ5LFxuICBmYUJhdHRlcnlDYXIsXG4gIGZhR2lmdCxcbiAgZmFEaWNlVHdvLFxuICBmYUNoZXNzUXVlZW4sXG4gIGZhR2xhc3NlcyxcbiAgZmFDaGVzc0JvYXJkLFxuICBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2ssXG4gIGZhUGVyc29uQ2hhbGtib2FyZCxcbiAgZmFNYXJzU3Ryb2tlUmlnaHQsXG4gIGZhTWFyc1N0cm9rZUgsXG4gIGZhSGFuZEJhY2tGaXN0LFxuICBmYUhhbmRSb2NrLFxuICBmYVNxdWFyZUNhcmV0VXAsXG4gIGZhQ2FyZXRTcXVhcmVVcCxcbiAgZmFDbG91ZFNob3dlcnNXYXRlcixcbiAgZmFDaGFydEJhcixcbiAgZmFCYXJDaGFydCxcbiAgZmFIYW5kc0J1YmJsZXMsXG4gIGZhSGFuZHNXYXNoLFxuICBmYUxlc3NUaGFuRXF1YWwsXG4gIGZhVHJhaW4sXG4gIGZhRXllTG93VmlzaW9uLFxuICBmYUxvd1Zpc2lvbixcbiAgZmFDcm93LFxuICBmYVNhaWxib2F0LFxuICBmYVdpbmRvd1Jlc3RvcmUsXG4gIGZhU3F1YXJlUGx1cyxcbiAgZmFQbHVzU3F1YXJlLFxuICBmYVRvcmlpR2F0ZSxcbiAgZmFGcm9nLFxuICBmYUJ1Y2tldCxcbiAgZmFJbWFnZSxcbiAgZmFNaWNyb3Bob25lLFxuICBmYUNvdyxcbiAgZmFDYXJldFVwLFxuICBmYVNjcmV3ZHJpdmVyLFxuICBmYUZvbGRlckNsb3NlZCxcbiAgZmFIb3VzZVRzdW5hbWksXG4gIGZhU3F1YXJlTmZpLFxuICBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsXG4gIGZhTWFydGluaUdsYXNzLFxuICBmYUdsYXNzTWFydGluaUFsdCxcbiAgZmFSb3RhdGVMZWZ0LFxuICBmYVJvdGF0ZUJhY2ssXG4gIGZhUm90YXRlQmFja3dhcmQsXG4gIGZhVW5kb0FsdCxcbiAgZmFUYWJsZUNvbHVtbnMsXG4gIGZhQ29sdW1ucyxcbiAgZmFMZW1vbixcbiAgZmFIZWFkU2lkZU1hc2ssXG4gIGZhSGFuZHNoYWtlLFxuICBmYUdlbSxcbiAgZmFEb2xseSxcbiAgZmFEb2xseUJveCxcbiAgZmFTbW9raW5nLFxuICBmYU1pbmltaXplLFxuICBmYUNvbXByZXNzQXJyb3dzQWx0LFxuICBmYU1vbnVtZW50LFxuICBmYVNub3dwbG93LFxuICBmYUFuZ2xlc1JpZ2h0LFxuICBmYUFuZ2xlRG91YmxlUmlnaHQsXG4gIGZhQ2FubmFiaXMsXG4gIGZhQ2lyY2xlUGxheSxcbiAgZmFQbGF5Q2lyY2xlLFxuICBmYVRhYmxldHMsXG4gIGZhRXRoZXJuZXQsXG4gIGZhRXVyb1NpZ24sXG4gIGZhRXVyLFxuICBmYUV1cm8sXG4gIGZhQ2hhaXIsXG4gIGZhQ2lyY2xlQ2hlY2ssXG4gIGZhQ2hlY2tDaXJjbGUsXG4gIGZhQ2lyY2xlU3RvcCxcbiAgZmFTdG9wQ2lyY2xlLFxuICBmYUNvbXBhc3NEcmFmdGluZyxcbiAgZmFEcmFmdGluZ0NvbXBhc3MsXG4gIGZhUGxhdGVXaGVhdCxcbiAgZmFJY2ljbGVzLFxuICBmYVBlcnNvblNoZWx0ZXIsXG4gIGZhTmV1dGVyLFxuICBmYUlkQmFkZ2UsXG4gIGZhTWFya2VyLFxuICBmYUZhY2VMYXVnaEJlYW0sXG4gIGZhTGF1Z2hCZWFtLFxuICBmYUhlbGljb3B0ZXJTeW1ib2wsXG4gIGZhVW5pdmVyc2FsQWNjZXNzLFxuICBmYUNpcmNsZUNoZXZyb25VcCxcbiAgZmFDaGV2cm9uQ2lyY2xlVXAsXG4gIGZhTGFyaVNpZ24sXG4gIGZhVm9sY2FubyxcbiAgZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQsXG4gIGZhU3RlcmxpbmdTaWduLFxuICBmYUdicCxcbiAgZmFQb3VuZFNpZ24sXG4gIGZhVmlydXNlcyxcbiAgZmFTcXVhcmVQZXJzb25Db25maW5lZCxcbiAgZmFVc2VyVGllLFxuICBmYUFycm93RG93bkxvbmcsXG4gIGZhTG9uZ0Fycm93RG93bixcbiAgZmFUZW50QXJyb3dEb3duVG9MaW5lLFxuICBmYUNlcnRpZmljYXRlLFxuICBmYVJlcGx5QWxsLFxuICBmYU1haWxSZXBseUFsbCxcbiAgZmFTdWl0Y2FzZSxcbiAgZmFQZXJzb25Ta2F0aW5nLFxuICBmYVNrYXRpbmcsXG4gIGZhRmlsdGVyQ2lyY2xlRG9sbGFyLFxuICBmYUZ1bm5lbERvbGxhcixcbiAgZmFDYW1lcmFSZXRybyxcbiAgZmFDaXJjbGVBcnJvd0Rvd24sXG4gIGZhQXJyb3dDaXJjbGVEb3duLFxuICBmYUZpbGVJbXBvcnQsXG4gIGZhQXJyb3dSaWdodFRvRmlsZSxcbiAgZmFTcXVhcmVBcnJvd1VwUmlnaHQsXG4gIGZhRXh0ZXJuYWxMaW5rU3F1YXJlLFxuICBmYUJveE9wZW4sXG4gIGZhU2Nyb2xsLFxuICBmYVNwYSxcbiAgZmFMb2NhdGlvblBpbkxvY2ssXG4gIGZhUGF1c2UsXG4gIGZhSGlsbEF2YWxhbmNoZSxcbiAgZmFUZW1wZXJhdHVyZUVtcHR5LFxuICBmYVRlbXBlcmF0dXJlMCxcbiAgZmFUaGVybW9tZXRlcjAsXG4gIGZhVGhlcm1vbWV0ZXJFbXB0eSxcbiAgZmFCb21iLFxuICBmYVJlZ2lzdGVyZWQsXG4gIGZhQWRkcmVzc0NhcmQsXG4gIGZhQ29udGFjdENhcmQsXG4gIGZhVmNhcmQsXG4gIGZhU2NhbGVVbmJhbGFuY2VkRmxpcCxcbiAgZmFCYWxhbmNlU2NhbGVSaWdodCxcbiAgZmFTdWJzY3JpcHQsXG4gIGZhRGlhbW9uZFR1cm5SaWdodCxcbiAgZmFEaXJlY3Rpb25zLFxuICBmYUJ1cnN0LFxuICBmYUhvdXNlTGFwdG9wLFxuICBmYUxhcHRvcEhvdXNlLFxuICBmYUZhY2VUaXJlZCxcbiAgZmFUaXJlZCxcbiAgZmFNb25leUJpbGxzLFxuICBmYVNtb2csXG4gIGZhQ3J1dGNoLFxuICBmYUZvbnRBd2Vzb21lLFxuICBmYUZvbnRBd2Vzb21lRmxhZyxcbiAgZmFGb250QXdlc29tZUxvZ29GdWxsLFxuICBmYUNsb3VkQXJyb3dVcCxcbiAgZmFDbG91ZFVwbG9hZCxcbiAgZmFDbG91ZFVwbG9hZEFsdCxcbiAgZmFQYWxldHRlLFxuICBmYUFycm93c1R1cm5SaWdodCxcbiAgZmFWZXN0LFxuICBmYUZlcnJ5LFxuICBmYUFycm93c0Rvd25Ub1Blb3BsZSxcbiAgZmFTZWVkbGluZyxcbiAgZmFTcHJvdXQsXG4gIGZhTGVmdFJpZ2h0LFxuICBmYUFycm93c0FsdEgsXG4gIGZhQm94ZXNQYWNraW5nLFxuICBmYUNpcmNsZUFycm93TGVmdCxcbiAgZmFBcnJvd0NpcmNsZUxlZnQsXG4gIGZhR3JvdXBBcnJvd3NSb3RhdGUsXG4gIGZhQm93bEZvb2QsXG4gIGZhQ2FuZHlDYW5lLFxuICBmYUFycm93RG93bldpZGVTaG9ydCxcbiAgZmFTb3J0QW1vdW50QXNjLFxuICBmYVNvcnRBbW91bnREb3duLFxuICBmYUNsb3VkQm9sdCxcbiAgZmFUaHVuZGVyc3Rvcm0sXG4gIGZhVGV4dFNsYXNoLFxuICBmYVJlbW92ZUZvcm1hdCxcbiAgZmFGYWNlU21pbGVXaW5rLFxuICBmYVNtaWxlV2luayxcbiAgZmFGaWxlV29yZCxcbiAgZmFGaWxlUG93ZXJwb2ludCxcbiAgZmFBcnJvd3NMZWZ0UmlnaHQsXG4gIGZhQXJyb3dzSCxcbiAgZmFIb3VzZUxvY2ssXG4gIGZhQ2xvdWRBcnJvd0Rvd24sXG4gIGZhQ2xvdWREb3dubG9hZCxcbiAgZmFDbG91ZERvd25sb2FkQWx0LFxuICBmYUNoaWxkcmVuLFxuICBmYUNoYWxrYm9hcmQsXG4gIGZhQmxhY2tib2FyZCxcbiAgZmFVc2VyTGFyZ2VTbGFzaCxcbiAgZmFVc2VyQWx0U2xhc2gsXG4gIGZhRW52ZWxvcGVPcGVuLFxuICBmYUhhbmRzaGFrZVNpbXBsZVNsYXNoLFxuICBmYUhhbmRzaGFrZUFsdFNsYXNoLFxuICBmYU1hdHRyZXNzUGlsbG93LFxuICBmYUd1YXJhbmlTaWduLFxuICBmYUFycm93c1JvdGF0ZSxcbiAgZmFSZWZyZXNoLFxuICBmYVN5bmMsXG4gIGZhRmlyZUV4dGluZ3Vpc2hlcixcbiAgZmFDcnV6ZWlyb1NpZ24sXG4gIGZhR3JlYXRlclRoYW5FcXVhbCxcbiAgZmFTaGllbGRIYWx2ZWQsXG4gIGZhU2hpZWxkQWx0LFxuICBmYUJvb2tBdGxhcyxcbiAgZmFBdGxhcyxcbiAgZmFWaXJ1cyxcbiAgZmFFbnZlbG9wZUNpcmNsZUNoZWNrLFxuICBmYUxheWVyR3JvdXAsXG4gIGZhQXJyb3dzVG9Eb3QsXG4gIGZhQXJjaHdheSxcbiAgZmFIZWFydENpcmNsZUNoZWNrLFxuICBmYUhvdXNlQ2hpbW5leUNyYWNrLFxuICBmYUhvdXNlRGFtYWdlLFxuICBmYUZpbGVaaXBwZXIsXG4gIGZhRmlsZUFyY2hpdmUsXG4gIGZhU3F1YXJlLFxuICBmYU1hcnRpbmlHbGFzc0VtcHR5LFxuICBmYUdsYXNzTWFydGluaSxcbiAgZmFDb3VjaCxcbiAgZmFDZWRpU2lnbixcbiAgZmFJdGFsaWMsXG4gIGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssXG4gIGZhQ2h1cmNoLFxuICBmYUNvbW1lbnRzRG9sbGFyLFxuICBmYURlbW9jcmF0LFxuICBmYVosXG4gIGZhUGVyc29uU2tpaW5nLFxuICBmYVNraWluZyxcbiAgZmFSb2FkTG9jayxcbiAgZmFBLFxuICBmYVRlbXBlcmF0dXJlQXJyb3dEb3duLFxuICBmYVRlbXBlcmF0dXJlRG93bixcbiAgZmFGZWF0aGVyUG9pbnRlZCxcbiAgZmFGZWF0aGVyQWx0LFxuICBmYVAsXG4gIGZhU25vd2ZsYWtlLFxuICBmYU5ld3NwYXBlcixcbiAgZmFSZWN0YW5nbGVBZCxcbiAgZmFBZCxcbiAgZmFDaXJjbGVBcnJvd1JpZ2h0LFxuICBmYUFycm93Q2lyY2xlUmlnaHQsXG4gIGZhRmlsdGVyQ2lyY2xlWG1hcmssXG4gIGZhTG9jdXN0LFxuICBmYVNvcnQsXG4gIGZhVW5zb3J0ZWQsXG4gIGZhTGlzdE9sLFxuICBmYUxpc3QxMixcbiAgZmFMaXN0TnVtZXJpYyxcbiAgZmFQZXJzb25EcmVzc0J1cnN0LFxuICBmYU1vbmV5Q2hlY2tEb2xsYXIsXG4gIGZhTW9uZXlDaGVja0FsdCxcbiAgZmFWZWN0b3JTcXVhcmUsXG4gIGZhQnJlYWRTbGljZSxcbiAgZmFMYW5ndWFnZSxcbiAgZmFGYWNlS2lzc1dpbmtIZWFydCxcbiAgZmFLaXNzV2lua0hlYXJ0LFxuICBmYUZpbHRlcixcbiAgZmFRdWVzdGlvbixcbiAgZmFGaWxlU2lnbmF0dXJlLFxuICBmYVVwRG93bkxlZnRSaWdodCxcbiAgZmFBcnJvd3NBbHQsXG4gIGZhSG91c2VDaGltbmV5VXNlcixcbiAgZmFIYW5kSG9sZGluZ0hlYXJ0LFxuICBmYVB1enpsZVBpZWNlLFxuICBmYU1vbmV5Q2hlY2ssXG4gIGZhU3RhckhhbGZTdHJva2UsXG4gIGZhU3RhckhhbGZBbHQsXG4gIGZhQ29kZSxcbiAgZmFXaGlza2V5R2xhc3MsXG4gIGZhR2xhc3NXaGlza2V5LFxuICBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQsXG4gIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZSxcbiAgZmFFeHRlcm5hbExpbmssXG4gIGZhQ3ViZXNTdGFja2VkLFxuICBmYVdvblNpZ24sXG4gIGZhS3J3LFxuICBmYVdvbixcbiAgZmFWaXJ1c0NvdmlkLFxuICBmYUF1c3RyYWxTaWduLFxuICBmYUYsXG4gIGZhTGVhZixcbiAgZmFSb2FkLFxuICBmYVRheGksXG4gIGZhQ2FiLFxuICBmYVBlcnNvbkNpcmNsZVBsdXMsXG4gIGZhQ2hhcnRQaWUsXG4gIGZhUGllQ2hhcnQsXG4gIGZhQm9sdExpZ2h0bmluZyxcbiAgZmFTYWNrWG1hcmssXG4gIGZhRmlsZUV4Y2VsLFxuICBmYUZpbGVDb250cmFjdCxcbiAgZmFGaXNoRmlucyxcbiAgZmFCdWlsZGluZ0ZsYWcsXG4gIGZhRmFjZUdyaW5CZWFtLFxuICBmYUdyaW5CZWFtLFxuICBmYU9iamVjdFVuZ3JvdXAsXG4gIGZhUG9vcCxcbiAgZmFMb2NhdGlvblBpbixcbiAgZmFNYXBNYXJrZXIsXG4gIGZhS2FhYmEsXG4gIGZhVG9pbGV0UGFwZXIsXG4gIGZhSGVsbWV0U2FmZXR5LFxuICBmYUhhcmRIYXQsXG4gIGZhSGF0SGFyZCxcbiAgZmFFamVjdCxcbiAgZmFDaXJjbGVSaWdodCxcbiAgZmFBcnJvd0FsdENpcmNsZVJpZ2h0LFxuICBmYVBsYW5lQ2lyY2xlQ2hlY2ssXG4gIGZhRmFjZVJvbGxpbmdFeWVzLFxuICBmYU1laFJvbGxpbmdFeWVzLFxuICBmYU9iamVjdEdyb3VwLFxuICBmYUNoYXJ0TGluZSxcbiAgZmFMaW5lQ2hhcnQsXG4gIGZhTWFza1ZlbnRpbGF0b3IsXG4gIGZhQXJyb3dSaWdodCxcbiAgZmFTaWduc1Bvc3QsXG4gIGZhTWFwU2lnbnMsXG4gIGZhQ2FzaFJlZ2lzdGVyLFxuICBmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uLFxuICBmYUgsXG4gIGZhVGFycCxcbiAgZmFTY3Jld2RyaXZlcldyZW5jaCxcbiAgZmFUb29scyxcbiAgZmFBcnJvd3NUb0V5ZSxcbiAgZmFQbHVnQ2lyY2xlQm9sdCxcbiAgZmFIZWFydCxcbiAgZmFNYXJzQW5kVmVudXMsXG4gIGZhSG91c2VVc2VyLFxuICBmYUhvbWVVc2VyLFxuICBmYUR1bXBzdGVyRmlyZSxcbiAgZmFIb3VzZUNyYWNrLFxuICBmYU1hcnRpbmlHbGFzc0NpdHJ1cyxcbiAgZmFDb2NrdGFpbCxcbiAgZmFGYWNlU3VycHJpc2UsXG4gIGZhU3VycHJpc2UsXG4gIGZhQm90dGxlV2F0ZXIsXG4gIGZhQ2lyY2xlUGF1c2UsXG4gIGZhUGF1c2VDaXJjbGUsXG4gIGZhVG9pbGV0UGFwZXJTbGFzaCxcbiAgZmFBcHBsZVdob2xlLFxuICBmYUFwcGxlQWx0LFxuICBmYUtpdGNoZW5TZXQsXG4gIGZhUixcbiAgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsXG4gIGZhVGVtcGVyYXR1cmUxLFxuICBmYVRoZXJtb21ldGVyMSxcbiAgZmFUaGVybW9tZXRlclF1YXJ0ZXIsXG4gIGZhQ3ViZSxcbiAgZmFCaXRjb2luU2lnbixcbiAgZmFTaGllbGREb2csXG4gIGZhU29sYXJQYW5lbCxcbiAgZmFMb2NrT3BlbixcbiAgZmFFbGV2YXRvcixcbiAgZmFNb25leUJpbGxUcmFuc2ZlcixcbiAgZmFNb25leUJpbGxUcmVuZFVwLFxuICBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsXG4gIGZhU3F1YXJlUG9sbEhvcml6b250YWwsXG4gIGZhUG9sbEgsXG4gIGZhQ2lyY2xlLFxuICBmYUJhY2t3YXJkRmFzdCxcbiAgZmFGYXN0QmFja3dhcmQsXG4gIGZhUmVjeWNsZSxcbiAgZmFVc2VyQXN0cm9uYXV0LFxuICBmYVBsYW5lU2xhc2gsXG4gIGZhVHJhZGVtYXJrLFxuICBmYUJhc2tldGJhbGwsXG4gIGZhQmFza2V0YmFsbEJhbGwsXG4gIGZhU2F0ZWxsaXRlRGlzaCxcbiAgZmFDaXJjbGVVcCxcbiAgZmFBcnJvd0FsdENpcmNsZVVwLFxuICBmYU1vYmlsZVNjcmVlbkJ1dHRvbixcbiAgZmFNb2JpbGVBbHQsXG4gIGZhVm9sdW1lSGlnaCxcbiAgZmFWb2x1bWVVcCxcbiAgZmFVc2Vyc1JheXMsXG4gIGZhV2FsbGV0LFxuICBmYUNsaXBib2FyZENoZWNrLFxuICBmYUZpbGVBdWRpbyxcbiAgZmFCdXJnZXIsXG4gIGZhSGFtYnVyZ2VyLFxuICBmYVdyZW5jaCxcbiAgZmFCdWdzLFxuICBmYVJ1cGVlU2lnbixcbiAgZmFSdXBlZSxcbiAgZmFGaWxlSW1hZ2UsXG4gIGZhQ2lyY2xlUXVlc3Rpb24sXG4gIGZhUXVlc3Rpb25DaXJjbGUsXG4gIGZhUGxhbmVEZXBhcnR1cmUsXG4gIGZhSGFuZHNoYWtlU2xhc2gsXG4gIGZhQm9va0Jvb2ttYXJrLFxuICBmYUNvZGVCcmFuY2gsXG4gIGZhSGF0Q293Ym95LFxuICBmYUJyaWRnZSxcbiAgZmFQaG9uZUZsaXAsXG4gIGZhUGhvbmVBbHQsXG4gIGZhVHJ1Y2tGcm9udCxcbiAgZmFDYXQsXG4gIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhVHJ1Y2tGaWVsZCxcbiAgZmFSb3V0ZSxcbiAgZmFDbGlwYm9hcmRRdWVzdGlvbixcbiAgZmFQYW5vcmFtYSxcbiAgZmFDb21tZW50TWVkaWNhbCxcbiAgZmFUZWV0aE9wZW4sXG4gIGZhRmlsZUNpcmNsZU1pbnVzLFxuICBmYVRhZ3MsXG4gIGZhV2luZUdsYXNzLFxuICBmYUZvcndhcmRGYXN0LFxuICBmYUZhc3RGb3J3YXJkLFxuICBmYUZhY2VNZWhCbGFuayxcbiAgZmFNZWhCbGFuayxcbiAgZmFTcXVhcmVQYXJraW5nLFxuICBmYVBhcmtpbmcsXG4gIGZhSG91c2VTaWduYWwsXG4gIGZhQmFyc1Byb2dyZXNzLFxuICBmYVRhc2tzQWx0LFxuICBmYUZhdWNldERyaXAsXG4gIGZhQ2FydEZsYXRiZWQsXG4gIGZhRG9sbHlGbGF0YmVkLFxuICBmYUJhblNtb2tpbmcsXG4gIGZhU21va2luZ0JhbixcbiAgZmFUZXJtaW5hbCxcbiAgZmFNb2JpbGVCdXR0b24sXG4gIGZhSG91c2VNZWRpY2FsRmxhZyxcbiAgZmFCYXNrZXRTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0Jhc2tldCxcbiAgZmFUYXBlLFxuICBmYUJ1c1NpbXBsZSxcbiAgZmFCdXNBbHQsXG4gIGZhRXllLFxuICBmYUZhY2VTYWRDcnksXG4gIGZhU2FkQ3J5LFxuICBmYUF1ZGlvRGVzY3JpcHRpb24sXG4gIGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbixcbiAgZmFGaWxlU2hpZWxkLFxuICBmYVVzZXJTbGFzaCxcbiAgZmFQZW4sXG4gIGZhVG93ZXJPYnNlcnZhdGlvbixcbiAgZmFGaWxlQ29kZSxcbiAgZmFTaWduYWwsXG4gIGZhU2lnbmFsNSxcbiAgZmFTaWduYWxQZXJmZWN0LFxuICBmYUJ1cyxcbiAgZmFIZWFydENpcmNsZVhtYXJrLFxuICBmYUhvdXNlQ2hpbW5leSxcbiAgZmFIb21lTGcsXG4gIGZhV2luZG93TWF4aW1pemUsXG4gIGZhRmFjZUZyb3duLFxuICBmYUZyb3duLFxuICBmYVByZXNjcmlwdGlvbixcbiAgZmFTaG9wLFxuICBmYVN0b3JlQWx0LFxuICBmYUZsb3BweURpc2ssXG4gIGZhU2F2ZSxcbiAgZmFWaWhhcmEsXG4gIGZhU2NhbGVVbmJhbGFuY2VkLFxuICBmYUJhbGFuY2VTY2FsZUxlZnQsXG4gIGZhU29ydFVwLFxuICBmYVNvcnRBc2MsXG4gIGZhQ29tbWVudERvdHMsXG4gIGZhQ29tbWVudGluZyxcbiAgZmFQbGFudFdpbHQsXG4gIGZhRGlhbW9uZCxcbiAgZmFGYWNlR3JpblNxdWludCxcbiAgZmFHcmluU3F1aW50LFxuICBmYUhhbmRIb2xkaW5nRG9sbGFyLFxuICBmYUhhbmRIb2xkaW5nVXNkLFxuICBmYUJhY3Rlcml1bSxcbiAgZmFIYW5kUG9pbnRlcixcbiAgZmFEcnVtU3RlZWxwYW4sXG4gIGZhSGFuZFNjaXNzb3JzLFxuICBmYUhhbmRzUHJheWluZyxcbiAgZmFQcmF5aW5nSGFuZHMsXG4gIGZhQXJyb3dSb3RhdGVSaWdodCxcbiAgZmFBcnJvd1JpZ2h0Um90YXRlLFxuICBmYUFycm93Um90YXRlRm9yd2FyZCxcbiAgZmFSZWRvLFxuICBmYVdlYkF3ZXNvbWUsXG4gIGZhQmlvaGF6YXJkLFxuICBmYUxvY2F0aW9uQ3Jvc3NoYWlycyxcbiAgZmFMb2NhdGlvbixcbiAgZmFNYXJzRG91YmxlLFxuICBmYUNoaWxkRHJlc3MsXG4gIGZhVXNlcnNCZXR3ZWVuTGluZXMsXG4gIGZhTHVuZ3NWaXJ1cyxcbiAgZmFGYWNlR3JpblRlYXJzLFxuICBmYUdyaW5UZWFycyxcbiAgZmFQaG9uZSxcbiAgZmFDYWxlbmRhclhtYXJrLFxuICBmYUNhbGVuZGFyVGltZXMsXG4gIGZhQ2hpbGRSZWFjaGluZyxcbiAgZmFIZWFkU2lkZVZpcnVzLFxuICBmYVVzZXJHZWFyLFxuICBmYVVzZXJDb2csXG4gIGZhQXJyb3dVcDE5LFxuICBmYVNvcnROdW1lcmljVXAsXG4gIGZhRG9vckNsb3NlZCxcbiAgZmFTaGllbGRWaXJ1cyxcbiAgZmFEaWNlU2l4LFxuICBmYU1vc3F1aXRvTmV0LFxuICBmYUJyaWRnZVdhdGVyLFxuICBmYVBlcnNvbkJvb3RoLFxuICBmYVRleHRXaWR0aCxcbiAgZmFIYXRXaXphcmQsXG4gIGZhUGVuRmFuY3ksXG4gIGZhUGVyc29uRGlnZ2luZyxcbiAgZmFEaWdnaW5nLFxuICBmYVRyYXNoLFxuICBmYUdhdWdlU2ltcGxlLFxuICBmYUdhdWdlU2ltcGxlTWVkLFxuICBmYVRhY2hvbWV0ZXJBdmVyYWdlLFxuICBmYUJvb2tNZWRpY2FsLFxuICBmYVBvbyxcbiAgZmFRdW90ZVJpZ2h0LFxuICBmYVF1b3RlUmlnaHRBbHQsXG4gIGZhU2hpcnQsXG4gIGZhVFNoaXJ0LFxuICBmYVRzaGlydCxcbiAgZmFDdWJlcyxcbiAgZmFEaXZpZGUsXG4gIGZhVGVuZ2VTaWduLFxuICBmYVRlbmdlLFxuICBmYUhlYWRwaG9uZXMsXG4gIGZhSGFuZHNIb2xkaW5nLFxuICBmYUhhbmRzQ2xhcHBpbmcsXG4gIGZhUmVwdWJsaWNhbixcbiAgZmFBcnJvd0xlZnQsXG4gIGZhUGVyc29uQ2lyY2xlWG1hcmssXG4gIGZhUnVsZXIsXG4gIGZhQWxpZ25MZWZ0LFxuICBmYURpY2VENixcbiAgZmFSZXN0cm9vbSxcbiAgZmFKLFxuICBmYVVzZXJzVmlld2ZpbmRlcixcbiAgZmFGaWxlVmlkZW8sXG4gIGZhVXBSaWdodEZyb21TcXVhcmUsXG4gIGZhRXh0ZXJuYWxMaW5rQWx0LFxuICBmYVRhYmxlQ2VsbHMsXG4gIGZhVGgsXG4gIGZhRmlsZVBkZixcbiAgZmFCb29rQmlibGUsXG4gIGZhQmlibGUsXG4gIGZhTyxcbiAgZmFTdWl0Y2FzZU1lZGljYWwsXG4gIGZhTWVka2l0LFxuICBmYVVzZXJTZWNyZXQsXG4gIGZhT3R0ZXIsXG4gIGZhUGVyc29uRHJlc3MsXG4gIGZhRmVtYWxlLFxuICBmYUNvbW1lbnREb2xsYXIsXG4gIGZhQnVzaW5lc3NUaW1lLFxuICBmYUJyaWVmY2FzZUNsb2NrLFxuICBmYVRhYmxlQ2VsbHNMYXJnZSxcbiAgZmFUaExhcmdlLFxuICBmYUJvb2tUYW5ha2gsXG4gIGZhVGFuYWtoLFxuICBmYVBob25lVm9sdW1lLFxuICBmYVZvbHVtZUNvbnRyb2xQaG9uZSxcbiAgZmFIYXRDb3dib3lTaWRlLFxuICBmYUNsaXBib2FyZFVzZXIsXG4gIGZhQ2hpbGQsXG4gIGZhTGlyYVNpZ24sXG4gIGZhU2F0ZWxsaXRlLFxuICBmYVBsYW5lTG9jayxcbiAgZmFUYWcsXG4gIGZhQ29tbWVudCxcbiAgZmFDYWtlQ2FuZGxlcyxcbiAgZmFCaXJ0aGRheUNha2UsXG4gIGZhQ2FrZSxcbiAgZmFFbnZlbG9wZSxcbiAgZmFBbmdsZXNVcCxcbiAgZmFBbmdsZURvdWJsZVVwLFxuICBmYVBhcGVyY2xpcCxcbiAgZmFBcnJvd1JpZ2h0VG9DaXR5LFxuICBmYVJpYmJvbixcbiAgZmFMdW5ncyxcbiAgZmFBcnJvd1VwOTEsXG4gIGZhU29ydE51bWVyaWNVcEFsdCxcbiAgZmFMaXRlY29pblNpZ24sXG4gIGZhQm9yZGVyTm9uZSxcbiAgZmFDaXJjbGVOb2RlcyxcbiAgZmFQYXJhY2h1dGVCb3gsXG4gIGZhSW5kZW50LFxuICBmYVRydWNrRmllbGRVbixcbiAgZmFIb3VyZ2xhc3MsXG4gIGZhSG91cmdsYXNzRW1wdHksXG4gIGZhTW91bnRhaW4sXG4gIGZhVXNlckRvY3RvcixcbiAgZmFVc2VyTWQsXG4gIGZhQ2lyY2xlSW5mbyxcbiAgZmFJbmZvQ2lyY2xlLFxuICBmYUNsb3VkTWVhdGJhbGwsXG4gIGZhQ2FtZXJhLFxuICBmYUNhbWVyYUFsdCxcbiAgZmFTcXVhcmVWaXJ1cyxcbiAgZmFNZXRlb3IsXG4gIGZhQ2FyT24sXG4gIGZhU2xlaWdoLFxuICBmYUFycm93RG93bjE5LFxuICBmYVNvcnROdW1lcmljQXNjLFxuICBmYVNvcnROdW1lcmljRG93bixcbiAgZmFIYW5kSG9sZGluZ0Ryb3BsZXQsXG4gIGZhSGFuZEhvbGRpbmdXYXRlcixcbiAgZmFXYXRlcixcbiAgZmFDYWxlbmRhckNoZWNrLFxuICBmYUJyYWlsbGUsXG4gIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCxcbiAgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsXG4gIGZhTGFuZG1hcmssXG4gIGZhVHJ1Y2ssXG4gIGZhQ3Jvc3NoYWlycyxcbiAgZmFQZXJzb25DYW5lLFxuICBmYVRlbnQsXG4gIGZhVmVzdFBhdGNoZXMsXG4gIGZhQ2hlY2tEb3VibGUsXG4gIGZhQXJyb3dEb3duQVosXG4gIGZhU29ydEFscGhhQXNjLFxuICBmYVNvcnRBbHBoYURvd24sXG4gIGZhTW9uZXlCaWxsV2hlYXQsXG4gIGZhQ29va2llLFxuICBmYUFycm93Um90YXRlTGVmdCxcbiAgZmFBcnJvd0xlZnRSb3RhdGUsXG4gIGZhQXJyb3dSb3RhdGVCYWNrLFxuICBmYUFycm93Um90YXRlQmFja3dhcmQsXG4gIGZhVW5kbyxcbiAgZmFIYXJkRHJpdmUsXG4gIGZhSGRkLFxuICBmYUZhY2VHcmluU3F1aW50VGVhcnMsXG4gIGZhR3JpblNxdWludFRlYXJzLFxuICBmYUR1bWJiZWxsLFxuICBmYVJlY3RhbmdsZUxpc3QsXG4gIGZhTGlzdEFsdCxcbiAgZmFUYXJwRHJvcGxldCxcbiAgZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjayxcbiAgZmFQZXJzb25Ta2lpbmdOb3JkaWMsXG4gIGZhU2tpaW5nTm9yZGljLFxuICBmYUNhbGVuZGFyUGx1cyxcbiAgZmFQbGFuZUFycml2YWwsXG4gIGZhQ2lyY2xlTGVmdCxcbiAgZmFBcnJvd0FsdENpcmNsZUxlZnQsXG4gIGZhVHJhaW5TdWJ3YXksXG4gIGZhU3Vid2F5LFxuICBmYUNoYXJ0R2FudHQsXG4gIGZhSW5kaWFuUnVwZWVTaWduLFxuICBmYUluZGlhblJ1cGVlLFxuICBmYUlucixcbiAgZmFDcm9wU2ltcGxlLFxuICBmYUNyb3BBbHQsXG4gIGZhTW9uZXlCaWxsMSxcbiAgZmFNb25leUJpbGxBbHQsXG4gIGZhTGVmdExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0TGVmdCxcbiAgZmFEbmEsXG4gIGZhVmlydXNTbGFzaCxcbiAgZmFNaW51cyxcbiAgZmFTdWJ0cmFjdCxcbiAgZmFDaGVzcyxcbiAgZmFBcnJvd0xlZnRMb25nLFxuICBmYUxvbmdBcnJvd0xlZnQsXG4gIGZhUGx1Z0NpcmNsZUNoZWNrLFxuICBmYVN0cmVldFZpZXcsXG4gIGZhRnJhbmNTaWduLFxuICBmYVZvbHVtZU9mZixcbiAgZmFIYW5kc0FzbEludGVycHJldGluZyxcbiAgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyxcbiAgZmFBc2xJbnRlcnByZXRpbmcsXG4gIGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyxcbiAgZmFHZWFyLFxuICBmYUNvZyxcbiAgZmFEcm9wbGV0U2xhc2gsXG4gIGZhVGludFNsYXNoLFxuICBmYU1vc3F1ZSxcbiAgZmFNb3NxdWl0byxcbiAgZmFTdGFyT2ZEYXZpZCxcbiAgZmFQZXJzb25NaWxpdGFyeVJpZmxlLFxuICBmYUNhcnRTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0NhcnQsXG4gIGZhVmlhbHMsXG4gIGZhUGx1Z0NpcmNsZVBsdXMsXG4gIGZhUGxhY2VPZldvcnNoaXAsXG4gIGZhR3JpcFZlcnRpY2FsLFxuICBmYUFycm93VHVyblVwLFxuICBmYUxldmVsVXAsXG4gIGZhVSxcbiAgZmFTcXVhcmVSb290VmFyaWFibGUsXG4gIGZhU3F1YXJlUm9vdEFsdCxcbiAgZmFDbG9jayxcbiAgZmFDbG9ja0ZvdXIsXG4gIGZhQmFja3dhcmRTdGVwLFxuICBmYVN0ZXBCYWNrd2FyZCxcbiAgZmFQYWxsZXQsXG4gIGZhRmF1Y2V0LFxuICBmYUJhc2ViYWxsQmF0QmFsbCxcbiAgZmFTLFxuICBmYVRpbWVsaW5lLFxuICBmYUtleWJvYXJkLFxuICBmYUNhcmV0RG93bixcbiAgZmFIb3VzZUNoaW1uZXlNZWRpY2FsLFxuICBmYUNsaW5pY01lZGljYWwsXG4gIGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzLFxuICBmYVRlbXBlcmF0dXJlMyxcbiAgZmFUaGVybW9tZXRlcjMsXG4gIGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzLFxuICBmYU1vYmlsZVNjcmVlbixcbiAgZmFNb2JpbGVBbmRyb2lkQWx0LFxuICBmYVBsYW5lVXAsXG4gIGZhUGlnZ3lCYW5rLFxuICBmYUJhdHRlcnlIYWxmLFxuICBmYUJhdHRlcnkzLFxuICBmYU1vdW50YWluQ2l0eSxcbiAgZmFDb2lucyxcbiAgZmFLaGFuZGEsXG4gIGZhU2xpZGVycyxcbiAgZmFTbGlkZXJzSCxcbiAgZmFGb2xkZXJUcmVlLFxuICBmYU5ldHdvcmtXaXJlZCxcbiAgZmFNYXBQaW4sXG4gIGZhSGFtc2EsXG4gIGZhQ2VudFNpZ24sXG4gIGZhRmxhc2ssXG4gIGZhUGVyc29uUHJlZ25hbnQsXG4gIGZhV2FuZFNwYXJrbGVzLFxuICBmYUVsbGlwc2lzVmVydGljYWwsXG4gIGZhRWxsaXBzaXNWLFxuICBmYVRpY2tldCxcbiAgZmFQb3dlck9mZixcbiAgZmFSaWdodExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0UmlnaHQsXG4gIGZhRmxhZ1VzYSxcbiAgZmFMYXB0b3BGaWxlLFxuICBmYVR0eSxcbiAgZmFUZWxldHlwZSxcbiAgZmFEaWFncmFtTmV4dCxcbiAgZmFQZXJzb25SaWZsZSxcbiAgZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDbG9zZWRDYXB0aW9uaW5nLFxuICBmYVBlcnNvbkhpa2luZyxcbiAgZmFIaWtpbmcsXG4gIGZhVmVudXNEb3VibGUsXG4gIGZhSW1hZ2VzLFxuICBmYUNhbGN1bGF0b3IsXG4gIGZhUGVvcGxlUHVsbGluZyxcbiAgZmFOLFxuICBmYUNhYmxlQ2FyLFxuICBmYVRyYW0sXG4gIGZhQ2xvdWRSYWluLFxuICBmYUJ1aWxkaW5nQ2lyY2xlWG1hcmssXG4gIGZhU2hpcCxcbiAgZmFBcnJvd3NEb3duVG9MaW5lLFxuICBmYURvd25sb2FkLFxuICBmYUZhY2VHcmluLFxuICBmYUdyaW4sXG4gIGZhRGVsZXRlTGVmdCxcbiAgZmFCYWNrc3BhY2UsXG4gIGZhRXllRHJvcHBlcixcbiAgZmFFeWVEcm9wcGVyRW1wdHksXG4gIGZhRXllZHJvcHBlcixcbiAgZmFGaWxlQ2lyY2xlQ2hlY2ssXG4gIGZhRm9yd2FyZCxcbiAgZmFNb2JpbGUsXG4gIGZhTW9iaWxlQW5kcm9pZCxcbiAgZmFNb2JpbGVQaG9uZSxcbiAgZmFGYWNlTWVoLFxuICBmYU1laCxcbiAgZmFBbGlnbkNlbnRlcixcbiAgZmFCb29rU2t1bGwsXG4gIGZhQm9va0RlYWQsXG4gIGZhSWRDYXJkLFxuICBmYURyaXZlcnNMaWNlbnNlLFxuICBmYU91dGRlbnQsXG4gIGZhRGVkZW50LFxuICBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhSG91c2UsXG4gIGZhSG9tZSxcbiAgZmFIb21lQWx0LFxuICBmYUhvbWVMZ0FsdCxcbiAgZmFDYWxlbmRhcldlZWssXG4gIGZhTGFwdG9wTWVkaWNhbCxcbiAgZmFCLFxuICBmYUZpbGVNZWRpY2FsLFxuICBmYURpY2VPbmUsXG4gIGZhS2l3aUJpcmQsXG4gIGZhQXJyb3dSaWdodEFycm93TGVmdCxcbiAgZmFFeGNoYW5nZSxcbiAgZmFSb3RhdGVSaWdodCxcbiAgZmFSZWRvQWx0LFxuICBmYVJvdGF0ZUZvcndhcmQsXG4gIGZhVXRlbnNpbHMsXG4gIGZhQ3V0bGVyeSxcbiAgZmFBcnJvd1VwV2lkZVNob3J0LFxuICBmYVNvcnRBbW91bnRVcCxcbiAgZmFNaWxsU2lnbixcbiAgZmFCb3dsUmljZSxcbiAgZmFTa3VsbCxcbiAgZmFUb3dlckJyb2FkY2FzdCxcbiAgZmFCcm9hZGNhc3RUb3dlcixcbiAgZmFUcnVja1BpY2t1cCxcbiAgZmFVcExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0VXAsXG4gIGZhU3RvcCxcbiAgZmFDb2RlTWVyZ2UsXG4gIGZhVXBsb2FkLFxuICBmYUh1cnJpY2FuZSxcbiAgZmFNb3VuZCxcbiAgZmFUb2lsZXRQb3J0YWJsZSxcbiAgZmFDb21wYWN0RGlzYyxcbiAgZmFGaWxlQXJyb3dEb3duLFxuICBmYUZpbGVEb3dubG9hZCxcbiAgZmFDYXJhdmFuLFxuICBmYVNoaWVsZENhdCxcbiAgZmFCb2x0LFxuICBmYVphcCxcbiAgZmFHbGFzc1dhdGVyLFxuICBmYU9pbFdlbGwsXG4gIGZhVmF1bHQsXG4gIGZhTWFycyxcbiAgZmFUb2lsZXQsXG4gIGZhUGxhbmVDaXJjbGVYbWFyayxcbiAgZmFZZW5TaWduLFxuICBmYUNueSxcbiAgZmFKcHksXG4gIGZhUm1iLFxuICBmYVllbixcbiAgZmFSdWJsZVNpZ24sXG4gIGZhUm91YmxlLFxuICBmYVJ1YixcbiAgZmFSdWJsZSxcbiAgZmFTdW4sXG4gIGZhR3VpdGFyLFxuICBmYUZhY2VMYXVnaFdpbmssXG4gIGZhTGF1Z2hXaW5rLFxuICBmYUhvcnNlSGVhZCxcbiAgZmFCb3JlSG9sZSxcbiAgZmFJbmR1c3RyeSxcbiAgZmFDaXJjbGVEb3duLFxuICBmYUFycm93QWx0Q2lyY2xlRG93bixcbiAgZmFBcnJvd3NUdXJuVG9Eb3RzLFxuICBmYUZsb3JpblNpZ24sXG4gIGZhQXJyb3dEb3duU2hvcnRXaWRlLFxuICBmYVNvcnRBbW91bnREZXNjLFxuICBmYVNvcnRBbW91bnREb3duQWx0LFxuICBmYUxlc3NUaGFuLFxuICBmYUFuZ2xlRG93bixcbiAgZmFDYXJUdW5uZWwsXG4gIGZhSGVhZFNpZGVDb3VnaCxcbiAgZmFHcmlwTGluZXMsXG4gIGZhVGh1bWJzRG93bixcbiAgZmFVc2VyTG9jayxcbiAgZmFBcnJvd1JpZ2h0TG9uZyxcbiAgZmFMb25nQXJyb3dSaWdodCxcbiAgZmFBbmNob3JDaXJjbGVYbWFyayxcbiAgZmFFbGxpcHNpcyxcbiAgZmFFbGxpcHNpc0gsXG4gIGZhQ2hlc3NQYXduLFxuICBmYUtpdE1lZGljYWwsXG4gIGZhRmlyc3RBaWQsXG4gIGZhUGVyc29uVGhyb3VnaFdpbmRvdyxcbiAgZmFUb29sYm94LFxuICBmYUhhbmRzSG9sZGluZ0NpcmNsZSxcbiAgZmFCdWcsXG4gIGZhQ3JlZGl0Q2FyZCxcbiAgZmFDcmVkaXRDYXJkQWx0LFxuICBmYUNhcixcbiAgZmFBdXRvbW9iaWxlLFxuICBmYUhhbmRIb2xkaW5nSGFuZCxcbiAgZmFCb29rT3BlblJlYWRlcixcbiAgZmFCb29rUmVhZGVyLFxuICBmYU1vdW50YWluU3VuLFxuICBmYUFycm93c0xlZnRSaWdodFRvTGluZSxcbiAgZmFEaWNlRDIwLFxuICBmYVRydWNrRHJvcGxldCxcbiAgZmFGaWxlQ2lyY2xlWG1hcmssXG4gIGZhVGVtcGVyYXR1cmVBcnJvd1VwLFxuICBmYVRlbXBlcmF0dXJlVXAsXG4gIGZhTWVkYWwsXG4gIGZhQmVkLFxuICBmYVNxdWFyZUgsXG4gIGZhSFNxdWFyZSxcbiAgZmFQb2RjYXN0LFxuICBmYVRlbXBlcmF0dXJlRnVsbCxcbiAgZmFUZW1wZXJhdHVyZTQsXG4gIGZhVGhlcm1vbWV0ZXI0LFxuICBmYVRoZXJtb21ldGVyRnVsbCxcbiAgZmFCZWxsLFxuICBmYVN1cGVyc2NyaXB0LFxuICBmYVBsdWdDaXJjbGVYbWFyayxcbiAgZmFTdGFyT2ZMaWZlLFxuICBmYVBob25lU2xhc2gsXG4gIGZhUGFpbnRSb2xsZXIsXG4gIGZhSGFuZHNoYWtlQW5nbGUsXG4gIGZhSGFuZHNIZWxwaW5nLFxuICBmYUxvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlckFsdCxcbiAgZmFGaWxlLFxuICBmYUdyZWF0ZXJUaGFuLFxuICBmYVBlcnNvblN3aW1taW5nLFxuICBmYVN3aW1tZXIsXG4gIGZhQXJyb3dEb3duLFxuICBmYURyb3BsZXQsXG4gIGZhVGludCxcbiAgZmFFcmFzZXIsXG4gIGZhRWFydGhBbWVyaWNhcyxcbiAgZmFFYXJ0aCxcbiAgZmFFYXJ0aEFtZXJpY2EsXG4gIGZhR2xvYmVBbWVyaWNhcyxcbiAgZmFQZXJzb25CdXJzdCxcbiAgZmFEb3ZlLFxuICBmYUJhdHRlcnlFbXB0eSxcbiAgZmFCYXR0ZXJ5MCxcbiAgZmFTb2NrcyxcbiAgZmFJbmJveCxcbiAgZmFTZWN0aW9uLFxuICBmYUdhdWdlSGlnaCxcbiAgZmFUYWNob21ldGVyQWx0LFxuICBmYVRhY2hvbWV0ZXJBbHRGYXN0LFxuICBmYUVudmVsb3BlT3BlblRleHQsXG4gIGZhSG9zcGl0YWwsXG4gIGZhSG9zcGl0YWxBbHQsXG4gIGZhSG9zcGl0YWxXaWRlLFxuICBmYVdpbmVCb3R0bGUsXG4gIGZhQ2hlc3NSb29rLFxuICBmYUJhcnNTdGFnZ2VyZWQsXG4gIGZhUmVvcmRlcixcbiAgZmFTdHJlYW0sXG4gIGZhRGhhcm1hY2hha3JhLFxuICBmYUhvdGRvZyxcbiAgZmFQZXJzb25XYWxraW5nV2l0aENhbmUsXG4gIGZhQmxpbmQsXG4gIGZhRHJ1bSxcbiAgZmFJY2VDcmVhbSxcbiAgZmFIZWFydENpcmNsZUJvbHQsXG4gIGZhRmF4LFxuICBmYVBhcmFncmFwaCxcbiAgZmFDaGVja1RvU2xvdCxcbiAgZmFWb3RlWWVhLFxuICBmYVN0YXJIYWxmLFxuICBmYUJveGVzU3RhY2tlZCxcbiAgZmFCb3hlcyxcbiAgZmFCb3hlc0FsdCxcbiAgZmFMaW5rLFxuICBmYUNoYWluLFxuICBmYUVhckxpc3RlbixcbiAgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLFxuICBmYVRyZWVDaXR5LFxuICBmYVBsYXksXG4gIGZhRm9udCxcbiAgZmFUYWJsZUNlbGxzUm93TG9jayxcbiAgZmFSdXBpYWhTaWduLFxuICBmYU1hZ25pZnlpbmdHbGFzcyxcbiAgZmFTZWFyY2gsXG4gIGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsLFxuICBmYVBpbmdQb25nUGFkZGxlQmFsbCxcbiAgZmFUYWJsZVRlbm5pcyxcbiAgZmFQZXJzb25Eb3RzRnJvbUxpbmUsXG4gIGZhRGlhZ25vc2VzLFxuICBmYVRyYXNoQ2FuQXJyb3dVcCxcbiAgZmFUcmFzaFJlc3RvcmVBbHQsXG4gIGZhTmFpcmFTaWduLFxuICBmYUNhcnRBcnJvd0Rvd24sXG4gIGZhV2Fsa2llVGFsa2llLFxuICBmYUZpbGVQZW4sXG4gIGZhRmlsZUVkaXQsXG4gIGZhUmVjZWlwdCxcbiAgZmFTcXVhcmVQZW4sXG4gIGZhUGVuU3F1YXJlLFxuICBmYVBlbmNpbFNxdWFyZSxcbiAgZmFTdWl0Y2FzZVJvbGxpbmcsXG4gIGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhQ2hldnJvbkRvd24sXG4gIGZhQmF0dGVyeUZ1bGwsXG4gIGZhQmF0dGVyeSxcbiAgZmFCYXR0ZXJ5NSxcbiAgZmFTa3VsbENyb3NzYm9uZXMsXG4gIGZhQ29kZUNvbXBhcmUsXG4gIGZhTGlzdFVsLFxuICBmYUxpc3REb3RzLFxuICBmYVNjaG9vbExvY2ssXG4gIGZhVG93ZXJDZWxsLFxuICBmYURvd25Mb25nLFxuICBmYUxvbmdBcnJvd0FsdERvd24sXG4gIGZhUmFua2luZ1N0YXIsXG4gIGZhQ2hlc3NLaW5nLFxuICBmYVBlcnNvbkhhcmFzc2luZyxcbiAgZmFCcmF6aWxpYW5SZWFsU2lnbixcbiAgZmFMYW5kbWFya0RvbWUsXG4gIGZhTGFuZG1hcmtBbHQsXG4gIGZhQXJyb3dVcCxcbiAgZmFUdixcbiAgZmFUZWxldmlzaW9uLFxuICBmYVR2QWx0LFxuICBmYVNocmltcCxcbiAgZmFMaXN0Q2hlY2ssXG4gIGZhVGFza3MsXG4gIGZhSnVnRGV0ZXJnZW50LFxuICBmYUNpcmNsZVVzZXIsXG4gIGZhVXNlckNpcmNsZSxcbiAgZmFVc2VyU2hpZWxkLFxuICBmYVdpbmQsXG4gIGZhQ2FyQnVyc3QsXG4gIGZhQ2FyQ3Jhc2gsXG4gIGZhWSxcbiAgZmFQZXJzb25Tbm93Ym9hcmRpbmcsXG4gIGZhU25vd2JvYXJkaW5nLFxuICBmYVRydWNrRmFzdCxcbiAgZmFTaGlwcGluZ0Zhc3QsXG4gIGZhRmlzaCxcbiAgZmFVc2VyR3JhZHVhdGUsXG4gIGZhQ2lyY2xlSGFsZlN0cm9rZSxcbiAgZmFBZGp1c3QsXG4gIGZhQ2xhcHBlcmJvYXJkLFxuICBmYUNpcmNsZVJhZGlhdGlvbixcbiAgZmFSYWRpYXRpb25BbHQsXG4gIGZhQmFzZWJhbGwsXG4gIGZhQmFzZWJhbGxCYWxsLFxuICBmYUpldEZpZ2h0ZXJVcCxcbiAgZmFEaWFncmFtUHJvamVjdCxcbiAgZmFQcm9qZWN0RGlhZ3JhbSxcbiAgZmFDb3B5LFxuICBmYVZvbHVtZVhtYXJrLFxuICBmYVZvbHVtZU11dGUsXG4gIGZhVm9sdW1lVGltZXMsXG4gIGZhSGFuZFNwYXJrbGVzLFxuICBmYUdyaXAsXG4gIGZhR3JpcEhvcml6b250YWwsXG4gIGZhU2hhcmVGcm9tU3F1YXJlLFxuICBmYVNoYXJlU3F1YXJlLFxuICBmYUNoaWxkQ29tYmF0YW50LFxuICBmYUNoaWxkUmlmbGUsXG4gIGZhR3VuLFxuICBmYVNxdWFyZVBob25lLFxuICBmYVBob25lU3F1YXJlLFxuICBmYVBsdXMsXG4gIGZhQWRkLFxuICBmYUV4cGFuZCxcbiAgZmFDb21wdXRlcixcbiAgZmFYbWFyayxcbiAgZmFDbG9zZSxcbiAgZmFNdWx0aXBseSxcbiAgZmFSZW1vdmUsXG4gIGZhVGltZXMsXG4gIGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0LFxuICBmYUFycm93cyxcbiAgZmFDaGFsa2JvYXJkVXNlcixcbiAgZmFDaGFsa2JvYXJkVGVhY2hlcixcbiAgZmFQZXNvU2lnbixcbiAgZmFCdWlsZGluZ1NoaWVsZCxcbiAgZmFCYWJ5LFxuICBmYVVzZXJzTGluZSxcbiAgZmFRdW90ZUxlZnQsXG4gIGZhUXVvdGVMZWZ0QWx0LFxuICBmYVRyYWN0b3IsXG4gIGZhVHJhc2hBcnJvd1VwLFxuICBmYVRyYXNoUmVzdG9yZSxcbiAgZmFBcnJvd0Rvd25VcExvY2ssXG4gIGZhTGluZXNMZWFuaW5nLFxuICBmYVJ1bGVyQ29tYmluZWQsXG4gIGZhQ29weXJpZ2h0LFxuICBmYUVxdWFscyxcbiAgZmFCbGVuZGVyLFxuICBmYVRlZXRoLFxuICBmYVNoZWtlbFNpZ24sXG4gIGZhSWxzLFxuICBmYVNoZWtlbCxcbiAgZmFTaGVxZWwsXG4gIGZhU2hlcWVsU2lnbixcbiAgZmFNYXAsXG4gIGZhUm9ja2V0LFxuICBmYVBob3RvRmlsbSxcbiAgZmFQaG90b1ZpZGVvLFxuICBmYUZvbGRlck1pbnVzLFxuICBmYVN0b3JlLFxuICBmYUFycm93VHJlbmRVcCxcbiAgZmFQbHVnQ2lyY2xlTWludXMsXG4gIGZhU2lnbkhhbmdpbmcsXG4gIGZhU2lnbixcbiAgZmFCZXppZXJDdXJ2ZSxcbiAgZmFCZWxsU2xhc2gsXG4gIGZhVGFibGV0LFxuICBmYVRhYmxldEFuZHJvaWQsXG4gIGZhU2Nob29sRmxhZyxcbiAgZmFGaWxsLFxuICBmYUFuZ2xlVXAsXG4gIGZhRHJ1bXN0aWNrQml0ZSxcbiAgZmFIb2xseUJlcnJ5LFxuICBmYUNoZXZyb25MZWZ0LFxuICBmYUJhY3RlcmlhLFxuICBmYUhhbmRMaXphcmQsXG4gIGZhTm90ZGVmLFxuICBmYURpc2Vhc2UsXG4gIGZhQnJpZWZjYXNlTWVkaWNhbCxcbiAgZmFHZW5kZXJsZXNzLFxuICBmYUNoZXZyb25SaWdodCxcbiAgZmFSZXR3ZWV0LFxuICBmYUNhclJlYXIsXG4gIGZhQ2FyQWx0LFxuICBmYVB1bXBTb2FwLFxuICBmYVZpZGVvU2xhc2gsXG4gIGZhQmF0dGVyeVF1YXJ0ZXIsXG4gIGZhQmF0dGVyeTIsXG4gIGZhUmFkaW8sXG4gIGZhQmFieUNhcnJpYWdlLFxuICBmYUNhcnJpYWdlQmFieSxcbiAgZmFUcmFmZmljTGlnaHQsXG4gIGZhVGhlcm1vbWV0ZXIsXG4gIGZhVnJDYXJkYm9hcmQsXG4gIGZhSGFuZE1pZGRsZUZpbmdlcixcbiAgZmFQZXJjZW50LFxuICBmYVBlcmNlbnRhZ2UsXG4gIGZhVHJ1Y2tNb3ZpbmcsXG4gIGZhR2xhc3NXYXRlckRyb3BsZXQsXG4gIGZhRGlzcGxheSxcbiAgZmFGYWNlU21pbGUsXG4gIGZhU21pbGUsXG4gIGZhVGh1bWJ0YWNrLFxuICBmYVRodW1iVGFjayxcbiAgZmFUcm9waHksXG4gIGZhUGVyc29uUHJheWluZyxcbiAgZmFQcmF5LFxuICBmYUhhbW1lcixcbiAgZmFIYW5kUGVhY2UsXG4gIGZhUm90YXRlLFxuICBmYVN5bmNBbHQsXG4gIGZhU3Bpbm5lcixcbiAgZmFSb2JvdCxcbiAgZmFQZWFjZSxcbiAgZmFHZWFycyxcbiAgZmFDb2dzLFxuICBmYVdhcmVob3VzZSxcbiAgZmFBcnJvd1VwUmlnaHREb3RzLFxuICBmYVNwbG90Y2gsXG4gIGZhRmFjZUdyaW5IZWFydHMsXG4gIGZhR3JpbkhlYXJ0cyxcbiAgZmFEaWNlRm91cixcbiAgZmFTaW1DYXJkLFxuICBmYVRyYW5zZ2VuZGVyLFxuICBmYVRyYW5zZ2VuZGVyQWx0LFxuICBmYU1lcmN1cnksXG4gIGZhQXJyb3dUdXJuRG93bixcbiAgZmFMZXZlbERvd24sXG4gIGZhUGVyc29uRmFsbGluZ0J1cnN0LFxuICBmYUF3YXJkLFxuICBmYVRpY2tldFNpbXBsZSxcbiAgZmFUaWNrZXRBbHQsXG4gIGZhQnVpbGRpbmcsXG4gIGZhQW5nbGVzTGVmdCxcbiAgZmFBbmdsZURvdWJsZUxlZnQsXG4gIGZhUXJjb2RlLFxuICBmYUNsb2NrUm90YXRlTGVmdCxcbiAgZmFIaXN0b3J5LFxuICBmYUZhY2VHcmluQmVhbVN3ZWF0LFxuICBmYUdyaW5CZWFtU3dlYXQsXG4gIGZhRmlsZUV4cG9ydCxcbiAgZmFBcnJvd1JpZ2h0RnJvbUZpbGUsXG4gIGZhU2hpZWxkLFxuICBmYVNoaWVsZEJsYW5rLFxuICBmYUFycm93VXBTaG9ydFdpZGUsXG4gIGZhU29ydEFtb3VudFVwQWx0LFxuICBmYUhvdXNlTWVkaWNhbCxcbiAgZmFHb2xmQmFsbFRlZSxcbiAgZmFHb2xmQmFsbCxcbiAgZmFDaXJjbGVDaGV2cm9uTGVmdCxcbiAgZmFDaGV2cm9uQ2lyY2xlTGVmdCxcbiAgZmFIb3VzZUNoaW1uZXlXaW5kb3csXG4gIGZhUGVuTmliLFxuICBmYVRlbnRBcnJvd1R1cm5MZWZ0LFxuICBmYVRlbnRzLFxuICBmYVdhbmRNYWdpYyxcbiAgZmFNYWdpYyxcbiAgZmFEb2csXG4gIGZhQ2Fycm90LFxuICBmYU1vb24sXG4gIGZhV2luZUdsYXNzRW1wdHksXG4gIGZhV2luZUdsYXNzQWx0LFxuICBmYUNoZWVzZSxcbiAgZmFZaW5ZYW5nLFxuICBmYU11c2ljLFxuICBmYUNvZGVDb21taXQsXG4gIGZhVGVtcGVyYXR1cmVMb3csXG4gIGZhUGVyc29uQmlraW5nLFxuICBmYUJpa2luZyxcbiAgZmFCcm9vbSxcbiAgZmFTaGllbGRIZWFydCxcbiAgZmFHb3B1cmFtLFxuICBmYUVhcnRoT2NlYW5pYSxcbiAgZmFHbG9iZU9jZWFuaWEsXG4gIGZhU3F1YXJlWG1hcmssXG4gIGZhVGltZXNTcXVhcmUsXG4gIGZhWG1hcmtTcXVhcmUsXG4gIGZhSGFzaHRhZyxcbiAgZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyLFxuICBmYUV4cGFuZEFsdCxcbiAgZmFPaWxDYW4sXG4gIGZhVCxcbiAgZmFIaXBwbyxcbiAgZmFDaGFydENvbHVtbixcbiAgZmFJbmZpbml0eSxcbiAgZmFWaWFsQ2lyY2xlQ2hlY2ssXG4gIGZhUGVyc29uQXJyb3dEb3duVG9MaW5lLFxuICBmYVZvaWNlbWFpbCxcbiAgZmFGYW4sXG4gIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsXG4gIGZhVXBEb3duLFxuICBmYUFycm93c0FsdFYsXG4gIGZhQ2xvdWRNb29uUmFpbixcbiAgZmFDYWxlbmRhcixcbiAgZmFUcmFpbGVyLFxuICBmYUJhaGFpLFxuICBmYUhheWthbCxcbiAgZmFTZENhcmQsXG4gIGZhRHJhZ29uLFxuICBmYVNob2VQcmludHMsXG4gIGZhQ2lyY2xlUGx1cyxcbiAgZmFQbHVzQ2lyY2xlLFxuICBmYUZhY2VHcmluVG9uZ3VlV2luayxcbiAgZmFHcmluVG9uZ3VlV2luayxcbiAgZmFIYW5kSG9sZGluZyxcbiAgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhTGlua1NsYXNoLFxuICBmYUNoYWluQnJva2VuLFxuICBmYUNoYWluU2xhc2gsXG4gIGZhVW5saW5rLFxuICBmYUNsb25lLFxuICBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0LFxuICBmYUFycm93VXBaQSxcbiAgZmFTb3J0QWxwaGFVcEFsdCxcbiAgZmFGaXJlRmxhbWVDdXJ2ZWQsXG4gIGZhRmlyZUFsdCxcbiAgZmFUb3JuYWRvLFxuICBmYUZpbGVDaXJjbGVQbHVzLFxuICBmYUJvb2tRdXJhbixcbiAgZmFRdXJhbixcbiAgZmFBbmNob3IsXG4gIGZhQm9yZGVyQWxsLFxuICBmYUZhY2VBbmdyeSxcbiAgZmFBbmdyeSxcbiAgZmFDb29raWVCaXRlLFxuICBmYUFycm93VHJlbmREb3duLFxuICBmYVJzcyxcbiAgZmFGZWVkLFxuICBmYURyYXdQb2x5Z29uLFxuICBmYVNjYWxlQmFsYW5jZWQsXG4gIGZhQmFsYW5jZVNjYWxlLFxuICBmYUdhdWdlU2ltcGxlSGlnaCxcbiAgZmFUYWNob21ldGVyLFxuICBmYVRhY2hvbWV0ZXJGYXN0LFxuICBmYVNob3dlcixcbiAgZmFEZXNrdG9wLFxuICBmYURlc2t0b3BBbHQsXG4gIGZhTSxcbiAgZmFUYWJsZUxpc3QsXG4gIGZhVGhMaXN0LFxuICBmYUNvbW1lbnRTbXMsXG4gIGZhU21zLFxuICBmYUJvb2ssXG4gIGZhVXNlclBsdXMsXG4gIGZhQ2hlY2ssXG4gIGZhQmF0dGVyeVRocmVlUXVhcnRlcnMsXG4gIGZhQmF0dGVyeTQsXG4gIGZhSG91c2VDaXJjbGVDaGVjayxcbiAgZmFBbmdsZUxlZnQsXG4gIGZhRGlhZ3JhbVN1Y2Nlc3NvcixcbiAgZmFUcnVja0Fycm93UmlnaHQsXG4gIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsXG4gIGZhSGFuZEZpc3QsXG4gIGZhRmlzdFJhaXNlZCxcbiAgZmFDbG91ZE1vb24sXG4gIGZhQnJpZWZjYXNlLFxuICBmYVBlcnNvbkZhbGxpbmcsXG4gIGZhSW1hZ2VQb3J0cmFpdCxcbiAgZmFQb3J0cmFpdCxcbiAgZmFVc2VyVGFnLFxuICBmYVJ1ZyxcbiAgZmFFYXJ0aEV1cm9wZSxcbiAgZmFHbG9iZUV1cm9wZSxcbiAgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlLFxuICBmYUx1Z2dhZ2VDYXJ0LFxuICBmYVJlY3RhbmdsZVhtYXJrLFxuICBmYVJlY3RhbmdsZVRpbWVzLFxuICBmYVRpbWVzUmVjdGFuZ2xlLFxuICBmYVdpbmRvd0Nsb3NlLFxuICBmYUJhaHRTaWduLFxuICBmYUJvb2tPcGVuLFxuICBmYUJvb2tKb3VybmFsV2hpbGxzLFxuICBmYUpvdXJuYWxXaGlsbHMsXG4gIGZhSGFuZGN1ZmZzLFxuICBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sXG4gIGZhRXhjbGFtYXRpb25UcmlhbmdsZSxcbiAgZmFXYXJuaW5nLFxuICBmYURhdGFiYXNlLFxuICBmYVNoYXJlLFxuICBmYU1haWxGb3J3YXJkLFxuICBmYUJvdHRsZURyb3BsZXQsXG4gIGZhTWFza0ZhY2UsXG4gIGZhSGlsbFJvY2tzbGlkZSxcbiAgZmFSaWdodExlZnQsXG4gIGZhRXhjaGFuZ2VBbHQsXG4gIGZhUGFwZXJQbGFuZSxcbiAgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhRHVuZ2VvbixcbiAgZmFBbGlnblJpZ2h0LFxuICBmYU1vbmV5QmlsbDFXYXZlLFxuICBmYU1vbmV5QmlsbFdhdmVBbHQsXG4gIGZhTGlmZVJpbmcsXG4gIGZhSGFuZHMsXG4gIGZhU2lnbkxhbmd1YWdlLFxuICBmYVNpZ25pbmcsXG4gIGZhQ2FsZW5kYXJEYXksXG4gIGZhV2F0ZXJMYWRkZXIsXG4gIGZhTGFkZGVyV2F0ZXIsXG4gIGZhU3dpbW1pbmdQb29sLFxuICBmYUFycm93c1VwRG93bixcbiAgZmFBcnJvd3NWLFxuICBmYUZhY2VHcmltYWNlLFxuICBmYUdyaW1hY2UsXG4gIGZhV2hlZWxjaGFpck1vdmUsXG4gIGZhV2hlZWxjaGFpckFsdCxcbiAgZmFUdXJuRG93bixcbiAgZmFMZXZlbERvd25BbHQsXG4gIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsXG4gIGZhU3F1YXJlRW52ZWxvcGUsXG4gIGZhRW52ZWxvcGVTcXVhcmUsXG4gIGZhRGljZSxcbiAgZmFCb3dsaW5nQmFsbCxcbiAgZmFCcmFpbixcbiAgZmFCYW5kYWdlLFxuICBmYUJhbmRBaWQsXG4gIGZhQ2FsZW5kYXJNaW51cyxcbiAgZmFDaXJjbGVYbWFyayxcbiAgZmFUaW1lc0NpcmNsZSxcbiAgZmFYbWFya0NpcmNsZSxcbiAgZmFHaWZ0cyxcbiAgZmFIb3RlbCxcbiAgZmFFYXJ0aEFzaWEsXG4gIGZhR2xvYmVBc2lhLFxuICBmYUlkQ2FyZENsaXAsXG4gIGZhSWRDYXJkQWx0LFxuICBmYU1hZ25pZnlpbmdHbGFzc1BsdXMsXG4gIGZhU2VhcmNoUGx1cyxcbiAgZmFUaHVtYnNVcCxcbiAgZmFVc2VyQ2xvY2ssXG4gIGZhSGFuZERvdHMsXG4gIGZhQWxsZXJnaWVzLFxuICBmYUZpbGVJbnZvaWNlLFxuICBmYVdpbmRvd01pbmltaXplLFxuICBmYU11Z1NhdWNlcixcbiAgZmFDb2ZmZWUsXG4gIGZhQnJ1c2gsXG4gIGZhTWFzayxcbiAgZmFNYWduaWZ5aW5nR2xhc3NNaW51cyxcbiAgZmFTZWFyY2hNaW51cyxcbiAgZmFSdWxlclZlcnRpY2FsLFxuICBmYVVzZXJMYXJnZSxcbiAgZmFVc2VyQWx0LFxuICBmYVRyYWluVHJhbSxcbiAgZmFVc2VyTnVyc2UsXG4gIGZhU3lyaW5nZSxcbiAgZmFDbG91ZFN1bixcbiAgZmFTdG9wd2F0Y2gyMCxcbiAgZmFTcXVhcmVGdWxsLFxuICBmYU1hZ25ldCxcbiAgZmFKYXIsXG4gIGZhTm90ZVN0aWNreSxcbiAgZmFTdGlja3lOb3RlLFxuICBmYUJ1Z1NsYXNoLFxuICBmYUFycm93VXBGcm9tV2F0ZXJQdW1wLFxuICBmYUJvbmUsXG4gIGZhVGFibGVDZWxsc1Jvd1VubG9jayxcbiAgZmFVc2VySW5qdXJlZCxcbiAgZmFGYWNlU2FkVGVhcixcbiAgZmFTYWRUZWFyLFxuICBmYVBsYW5lLFxuICBmYVRlbnRBcnJvd3NEb3duLFxuICBmYUV4Y2xhbWF0aW9uLFxuICBmYUFycm93c1NwaW4sXG4gIGZhUHJpbnQsXG4gIGZhVHVya2lzaExpcmFTaWduLFxuICBmYVRyeSxcbiAgZmFUdXJraXNoTGlyYSxcbiAgZmFEb2xsYXJTaWduLFxuICBmYURvbGxhcixcbiAgZmFVc2QsXG4gIGZhWCxcbiAgZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIsXG4gIGZhU2VhcmNoRG9sbGFyLFxuICBmYVVzZXJzR2VhcixcbiAgZmFVc2Vyc0NvZyxcbiAgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nLFxuICBmYUJ1aWxkaW5nQ29sdW1ucyxcbiAgZmFCYW5rLFxuICBmYUluc3RpdHV0aW9uLFxuICBmYU11c2V1bSxcbiAgZmFVbml2ZXJzaXR5LFxuICBmYVVtYnJlbGxhLFxuICBmYVRyb3dlbCxcbiAgZmFELFxuICBmYVN0YXBsZXIsXG4gIGZhTWFza3NUaGVhdGVyLFxuICBmYVRoZWF0ZXJNYXNrcyxcbiAgZmFLaXBTaWduLFxuICBmYUhhbmRQb2ludExlZnQsXG4gIGZhSGFuZHNoYWtlU2ltcGxlLFxuICBmYUhhbmRzaGFrZUFsdCxcbiAgZmFKZXRGaWdodGVyLFxuICBmYUZpZ2h0ZXJKZXQsXG4gIGZhU3F1YXJlU2hhcmVOb2RlcyxcbiAgZmFTaGFyZUFsdFNxdWFyZSxcbiAgZmFCYXJjb2RlLFxuICBmYVBsdXNNaW51cyxcbiAgZmFWaWRlbyxcbiAgZmFWaWRlb0NhbWVyYSxcbiAgZmFHcmFkdWF0aW9uQ2FwLFxuICBmYU1vcnRhckJvYXJkLFxuICBmYUhhbmRIb2xkaW5nTWVkaWNhbCxcbiAgZmFQZXJzb25DaXJjbGVDaGVjayxcbiAgZmFUdXJuVXAsXG4gIGZhTGV2ZWxVcEFsdFxufTtcblxuZXhwb3J0IHsgaWNvbnMgYXMgZmFzLCBwcmVmaXgsIGZhMCwgZmExLCBmYTIsIGZhMywgZmE0LCBmYTUsIGZhNiwgZmE3LCBmYTgsIGZhOSwgZmFGaWxsRHJpcCwgZmFBcnJvd3NUb0NpcmNsZSwgZmFDaXJjbGVDaGV2cm9uUmlnaHQsIGZhQ2hldnJvbkNpcmNsZVJpZ2h0LCBmYUF0LCBmYVRyYXNoQ2FuLCBmYVRyYXNoQWx0LCBmYVRleHRIZWlnaHQsIGZhVXNlclhtYXJrLCBmYVVzZXJUaW1lcywgZmFTdGV0aG9zY29wZSwgZmFNZXNzYWdlLCBmYUNvbW1lbnRBbHQsIGZhSW5mbywgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciwgZmFDb21wcmVzc0FsdCwgZmFFeHBsb3Npb24sIGZhRmlsZUxpbmVzLCBmYUZpbGVBbHQsIGZhRmlsZVRleHQsIGZhV2F2ZVNxdWFyZSwgZmFSaW5nLCBmYUJ1aWxkaW5nVW4sIGZhRGljZVRocmVlLCBmYUNhbGVuZGFyRGF5cywgZmFDYWxlbmRhckFsdCwgZmFBbmNob3JDaXJjbGVDaGVjaywgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQsIGZhVm9sbGV5YmFsbCwgZmFWb2xsZXliYWxsQmFsbCwgZmFBcnJvd3NVcFRvTGluZSwgZmFTb3J0RG93biwgZmFTb3J0RGVzYywgZmFDaXJjbGVNaW51cywgZmFNaW51c0NpcmNsZSwgZmFEb29yT3BlbiwgZmFSaWdodEZyb21CcmFja2V0LCBmYVNpZ25PdXRBbHQsIGZhQXRvbSwgZmFTb2FwLCBmYUljb25zLCBmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0LCBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoLCBmYU1pY3JvcGhvbmVBbHRTbGFzaCwgZmFCcmlkZ2VDaXJjbGVDaGVjaywgZmFQdW1wTWVkaWNhbCwgZmFGaW5nZXJwcmludCwgZmFIYW5kUG9pbnRSaWdodCwgZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbiwgZmFTZWFyY2hMb2NhdGlvbiwgZmFGb3J3YXJkU3RlcCwgZmFTdGVwRm9yd2FyZCwgZmFGYWNlU21pbGVCZWFtLCBmYVNtaWxlQmVhbSwgZmFGbGFnQ2hlY2tlcmVkLCBmYUZvb3RiYWxsLCBmYUZvb3RiYWxsQmFsbCwgZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbiwgZmFDcm9wLCBmYUFuZ2xlc0Rvd24sIGZhQW5nbGVEb3VibGVEb3duLCBmYVVzZXJzUmVjdGFuZ2xlLCBmYVBlb3BsZVJvb2YsIGZhUGVvcGxlTGluZSwgZmFCZWVyTXVnRW1wdHksIGZhQmVlciwgZmFEaWFncmFtUHJlZGVjZXNzb3IsIGZhQXJyb3dVcExvbmcsIGZhTG9uZ0Fycm93VXAsIGZhRmlyZUZsYW1lU2ltcGxlLCBmYUJ1cm4sIGZhUGVyc29uLCBmYU1hbGUsIGZhTGFwdG9wLCBmYUZpbGVDc3YsIGZhTWVub3JhaCwgZmFUcnVja1BsYW5lLCBmYVJlY29yZFZpbnlsLCBmYUZhY2VHcmluU3RhcnMsIGZhR3JpblN0YXJzLCBmYUJvbmcsIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZywgZmFQYXN0YWZhcmlhbmlzbSwgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUsIGZhU3Bvb24sIGZhVXRlbnNpbFNwb29uLCBmYUphcldoZWF0LCBmYUVudmVsb3Blc0J1bGssIGZhTWFpbEJ1bGssIGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUNpcmNsZUgsIGZhSG9zcGl0YWxTeW1ib2wsIGZhUGFnZXIsIGZhQWRkcmVzc0Jvb2ssIGZhQ29udGFjdEJvb2ssIGZhU3RyaWtldGhyb3VnaCwgZmFLLCBmYUxhbmRtYXJrRmxhZywgZmFQZW5jaWwsIGZhUGVuY2lsQWx0LCBmYUJhY2t3YXJkLCBmYUNhcmV0UmlnaHQsIGZhQ29tbWVudHMsIGZhUGFzdGUsIGZhRmlsZUNsaXBib2FyZCwgZmFDb2RlUHVsbFJlcXVlc3QsIGZhQ2xpcGJvYXJkTGlzdCwgZmFUcnVja1JhbXBCb3gsIGZhVHJ1Y2tMb2FkaW5nLCBmYVVzZXJDaGVjaywgZmFWaWFsVmlydXMsIGZhU2hlZXRQbGFzdGljLCBmYUJsb2csIGZhVXNlck5pbmphLCBmYVBlcnNvbkFycm93VXBGcm9tTGluZSwgZmFTY3JvbGxUb3JhaCwgZmFUb3JhaCwgZmFCcm9vbUJhbGwsIGZhUXVpZGRpdGNoLCBmYVF1aWRkaXRjaEJyb29tQmFsbCwgZmFUb2dnbGVPZmYsIGZhQm94QXJjaGl2ZSwgZmFBcmNoaXZlLCBmYVBlcnNvbkRyb3duaW5nLCBmYUFycm93RG93bjkxLCBmYVNvcnROdW1lcmljRGVzYywgZmFTb3J0TnVtZXJpY0Rvd25BbHQsIGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQsIGZhR3JpblRvbmd1ZVNxdWludCwgZmFTcHJheUNhbiwgZmFUcnVja01vbnN0ZXIsIGZhVywgZmFFYXJ0aEFmcmljYSwgZmFHbG9iZUFmcmljYSwgZmFSYWluYm93LCBmYUNpcmNsZU5vdGNoLCBmYVRhYmxldFNjcmVlbkJ1dHRvbiwgZmFUYWJsZXRBbHQsIGZhUGF3LCBmYUNsb3VkLCBmYVRyb3dlbEJyaWNrcywgZmFGYWNlRmx1c2hlZCwgZmFGbHVzaGVkLCBmYUhvc3BpdGFsVXNlciwgZmFUZW50QXJyb3dMZWZ0UmlnaHQsIGZhR2F2ZWwsIGZhTGVnYWwsIGZhQmlub2N1bGFycywgZmFNaWNyb3Bob25lU2xhc2gsIGZhQm94VGlzc3VlLCBmYU1vdG9yY3ljbGUsIGZhQmVsbENvbmNpZXJnZSwgZmFDb25jaWVyZ2VCZWxsLCBmYVBlblJ1bGVyLCBmYVBlbmNpbFJ1bGVyLCBmYVBlb3BsZUFycm93cywgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsIGZhTWFyc0FuZFZlbnVzQnVyc3QsIGZhU3F1YXJlQ2FyZXRSaWdodCwgZmFDYXJldFNxdWFyZVJpZ2h0LCBmYVNjaXNzb3JzLCBmYUN1dCwgZmFTdW5QbGFudFdpbHQsIGZhVG9pbGV0c1BvcnRhYmxlLCBmYUhvY2tleVB1Y2ssIGZhVGFibGUsIGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodCwgZmFUYWNob2dyYXBoRGlnaXRhbCwgZmFEaWdpdGFsVGFjaG9ncmFwaCwgZmFVc2Vyc1NsYXNoLCBmYUNsb3ZlciwgZmFSZXBseSwgZmFNYWlsUmVwbHksIGZhU3RhckFuZENyZXNjZW50LCBmYUhvdXNlRmlyZSwgZmFTcXVhcmVNaW51cywgZmFNaW51c1NxdWFyZSwgZmFIZWxpY29wdGVyLCBmYUNvbXBhc3MsIGZhU3F1YXJlQ2FyZXREb3duLCBmYUNhcmV0U3F1YXJlRG93biwgZmFGaWxlQ2lyY2xlUXVlc3Rpb24sIGZhTGFwdG9wQ29kZSwgZmFTd2F0Y2hib29rLCBmYVByZXNjcmlwdGlvbkJvdHRsZSwgZmFCYXJzLCBmYU5hdmljb24sIGZhUGVvcGxlR3JvdXAsIGZhSG91cmdsYXNzRW5kLCBmYUhvdXJnbGFzczMsIGZhSGVhcnRDcmFjaywgZmFIZWFydEJyb2tlbiwgZmFTcXVhcmVVcFJpZ2h0LCBmYUV4dGVybmFsTGlua1NxdWFyZUFsdCwgZmFGYWNlS2lzc0JlYW0sIGZhS2lzc0JlYW0sIGZhRmlsbSwgZmFSdWxlckhvcml6b250YWwsIGZhUGVvcGxlUm9iYmVyeSwgZmFMaWdodGJ1bGIsIGZhQ2FyZXRMZWZ0LCBmYUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUV4Y2xhbWF0aW9uQ2lyY2xlLCBmYVNjaG9vbENpcmNsZVhtYXJrLCBmYUFycm93UmlnaHRGcm9tQnJhY2tldCwgZmFTaWduT3V0LCBmYUNpcmNsZUNoZXZyb25Eb3duLCBmYUNoZXZyb25DaXJjbGVEb3duLCBmYVVubG9ja0tleWhvbGUsIGZhVW5sb2NrQWx0LCBmYUNsb3VkU2hvd2Vyc0hlYXZ5LCBmYUhlYWRwaG9uZXNTaW1wbGUsIGZhSGVhZHBob25lc0FsdCwgZmFTaXRlbWFwLCBmYUNpcmNsZURvbGxhclRvU2xvdCwgZmFEb25hdGUsIGZhTWVtb3J5LCBmYVJvYWRTcGlrZXMsIGZhRmlyZUJ1cm5lciwgZmFGbGFnLCBmYUhhbnVraWFoLCBmYUZlYXRoZXIsIGZhVm9sdW1lTG93LCBmYVZvbHVtZURvd24sIGZhQ29tbWVudFNsYXNoLCBmYUNsb3VkU3VuUmFpbiwgZmFDb21wcmVzcywgZmFXaGVhdEF3biwgZmFXaGVhdEFsdCwgZmFBbmtoLCBmYUhhbmRzSG9sZGluZ0NoaWxkLCBmYUFzdGVyaXNrLCBmYVNxdWFyZUNoZWNrLCBmYUNoZWNrU3F1YXJlLCBmYVBlc2V0YVNpZ24sIGZhSGVhZGluZywgZmFIZWFkZXIsIGZhR2hvc3QsIGZhTGlzdCwgZmFMaXN0U3F1YXJlcywgZmFTcXVhcmVQaG9uZUZsaXAsIGZhUGhvbmVTcXVhcmVBbHQsIGZhQ2FydFBsdXMsIGZhR2FtZXBhZCwgZmFDaXJjbGVEb3QsIGZhRG90Q2lyY2xlLCBmYUZhY2VEaXp6eSwgZmFEaXp6eSwgZmFFZ2csIGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmssIGZhQ2FtcGdyb3VuZCwgZmFGb2xkZXJQbHVzLCBmYUZ1dGJvbCwgZmFGdXRib2xCYWxsLCBmYVNvY2NlckJhbGwsIGZhUGFpbnRicnVzaCwgZmFQYWludEJydXNoLCBmYUxvY2ssIGZhR2FzUHVtcCwgZmFIb3RUdWJQZXJzb24sIGZhSG90VHViLCBmYU1hcExvY2F0aW9uLCBmYU1hcE1hcmtlZCwgZmFIb3VzZUZsb29kV2F0ZXIsIGZhVHJlZSwgZmFCcmlkZ2VMb2NrLCBmYVNhY2tEb2xsYXIsIGZhUGVuVG9TcXVhcmUsIGZhRWRpdCwgZmFDYXJTaWRlLCBmYVNoYXJlTm9kZXMsIGZhU2hhcmVBbHQsIGZhSGVhcnRDaXJjbGVNaW51cywgZmFIb3VyZ2xhc3NIYWxmLCBmYUhvdXJnbGFzczIsIGZhTWljcm9zY29wZSwgZmFTaW5rLCBmYUJhZ1Nob3BwaW5nLCBmYVNob3BwaW5nQmFnLCBmYUFycm93RG93blpBLCBmYVNvcnRBbHBoYURlc2MsIGZhU29ydEFscGhhRG93bkFsdCwgZmFNaXR0ZW4sIGZhUGVyc29uUmF5cywgZmFVc2VycywgZmFFeWVTbGFzaCwgZmFGbGFza1ZpYWwsIGZhSGFuZCwgZmFIYW5kUGFwZXIsIGZhT20sIGZhV29ybSwgZmFIb3VzZUNpcmNsZVhtYXJrLCBmYVBsdWcsIGZhQ2hldnJvblVwLCBmYUhhbmRTcG9jaywgZmFTdG9wd2F0Y2gsIGZhRmFjZUtpc3MsIGZhS2lzcywgZmFCcmlkZ2VDaXJjbGVYbWFyaywgZmFGYWNlR3JpblRvbmd1ZSwgZmFHcmluVG9uZ3VlLCBmYUNoZXNzQmlzaG9wLCBmYUZhY2VHcmluV2luaywgZmFHcmluV2luaywgZmFFYXJEZWFmLCBmYURlYWYsIGZhRGVhZm5lc3MsIGZhSGFyZE9mSGVhcmluZywgZmFSb2FkQ2lyY2xlQ2hlY2ssIGZhRGljZUZpdmUsIGZhU3F1YXJlUnNzLCBmYVJzc1NxdWFyZSwgZmFMYW5kTWluZU9uLCBmYUlDdXJzb3IsIGZhU3RhbXAsIGZhU3RhaXJzLCBmYUksIGZhSHJ5dm5pYVNpZ24sIGZhSHJ5dm5pYSwgZmFQaWxscywgZmFGYWNlR3JpbldpZGUsIGZhR3JpbkFsdCwgZmFUb290aCwgZmFWLCBmYUJhbmdsYWRlc2hpVGFrYVNpZ24sIGZhQmljeWNsZSwgZmFTdGFmZlNuYWtlLCBmYVJvZEFzY2xlcGl1cywgZmFSb2RTbmFrZSwgZmFTdGFmZkFlc2N1bGFwaXVzLCBmYUhlYWRTaWRlQ291Z2hTbGFzaCwgZmFUcnVja01lZGljYWwsIGZhQW1idWxhbmNlLCBmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb24sIGZhU25vd21hbiwgZmFNb3J0YXJQZXN0bGUsIGZhUm9hZEJhcnJpZXIsIGZhU2Nob29sLCBmYUlnbG9vLCBmYUpvaW50LCBmYUFuZ2xlUmlnaHQsIGZhSG9yc2UsIGZhUSwgZmFHLCBmYU5vdGVzTWVkaWNhbCwgZmFUZW1wZXJhdHVyZUhhbGYsIGZhVGVtcGVyYXR1cmUyLCBmYVRoZXJtb21ldGVyMiwgZmFUaGVybW9tZXRlckhhbGYsIGZhRG9uZ1NpZ24sIGZhQ2Fwc3VsZXMsIGZhUG9vU3Rvcm0sIGZhUG9vQm9sdCwgZmFGYWNlRnJvd25PcGVuLCBmYUZyb3duT3BlbiwgZmFIYW5kUG9pbnRVcCwgZmFNb25leUJpbGwsIGZhQm9va21hcmssIGZhQWxpZ25KdXN0aWZ5LCBmYVVtYnJlbGxhQmVhY2gsIGZhSGVsbWV0VW4sIGZhQnVsbHNleWUsIGZhQmFjb24sIGZhSGFuZFBvaW50RG93biwgZmFBcnJvd1VwRnJvbUJyYWNrZXQsIGZhRm9sZGVyLCBmYUZvbGRlckJsYW5rLCBmYUZpbGVXYXZlZm9ybSwgZmFGaWxlTWVkaWNhbEFsdCwgZmFSYWRpYXRpb24sIGZhQ2hhcnRTaW1wbGUsIGZhTWFyc1N0cm9rZSwgZmFWaWFsLCBmYUdhdWdlLCBmYURhc2hib2FyZCwgZmFHYXVnZU1lZCwgZmFUYWNob21ldGVyQWx0QXZlcmFnZSwgZmFXYW5kTWFnaWNTcGFya2xlcywgZmFNYWdpY1dhbmRTcGFya2xlcywgZmFFLCBmYVBlbkNsaXAsIGZhUGVuQWx0LCBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYVVzZXIsIGZhU2Nob29sQ2lyY2xlQ2hlY2ssIGZhRHVtcHN0ZXIsIGZhVmFuU2h1dHRsZSwgZmFTaHV0dGxlVmFuLCBmYUJ1aWxkaW5nVXNlciwgZmFTcXVhcmVDYXJldExlZnQsIGZhQ2FyZXRTcXVhcmVMZWZ0LCBmYUhpZ2hsaWdodGVyLCBmYUtleSwgZmFCdWxsaG9ybiwgZmFHbG9iZSwgZmFTeW5hZ29ndWUsIGZhUGVyc29uSGFsZkRyZXNzLCBmYVJvYWRCcmlkZ2UsIGZhTG9jYXRpb25BcnJvdywgZmFDLCBmYVRhYmxldEJ1dHRvbiwgZmFCdWlsZGluZ0xvY2ssIGZhUGl6emFTbGljZSwgZmFNb25leUJpbGxXYXZlLCBmYUNoYXJ0QXJlYSwgZmFBcmVhQ2hhcnQsIGZhSG91c2VGbGFnLCBmYVBlcnNvbkNpcmNsZU1pbnVzLCBmYUJhbiwgZmFDYW5jZWwsIGZhQ2FtZXJhUm90YXRlLCBmYVNwcmF5Q2FuU3BhcmtsZXMsIGZhQWlyRnJlc2hlbmVyLCBmYVN0YXIsIGZhUmVwZWF0LCBmYUNyb3NzLCBmYUJveCwgZmFWZW51c01hcnMsIGZhQXJyb3dQb2ludGVyLCBmYU1vdXNlUG9pbnRlciwgZmFNYXhpbWl6ZSwgZmFFeHBhbmRBcnJvd3NBbHQsIGZhQ2hhcmdpbmdTdGF0aW9uLCBmYVNoYXBlcywgZmFUcmlhbmdsZUNpcmNsZVNxdWFyZSwgZmFTaHVmZmxlLCBmYVJhbmRvbSwgZmFQZXJzb25SdW5uaW5nLCBmYVJ1bm5pbmcsIGZhTW9iaWxlUmV0cm8sIGZhR3JpcExpbmVzVmVydGljYWwsIGZhU3BpZGVyLCBmYUhhbmRzQm91bmQsIGZhRmlsZUludm9pY2VEb2xsYXIsIGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbiwgZmFYUmF5LCBmYVNwZWxsQ2hlY2ssIGZhU2xhc2gsIGZhQ29tcHV0ZXJNb3VzZSwgZmFNb3VzZSwgZmFBcnJvd1JpZ2h0VG9CcmFja2V0LCBmYVNpZ25JbiwgZmFTaG9wU2xhc2gsIGZhU3RvcmVBbHRTbGFzaCwgZmFTZXJ2ZXIsIGZhVmlydXNDb3ZpZFNsYXNoLCBmYVNob3BMb2NrLCBmYUhvdXJnbGFzc1N0YXJ0LCBmYUhvdXJnbGFzczEsIGZhQmxlbmRlclBob25lLCBmYUJ1aWxkaW5nV2hlYXQsIGZhUGVyc29uQnJlYXN0ZmVlZGluZywgZmFSaWdodFRvQnJhY2tldCwgZmFTaWduSW5BbHQsIGZhVmVudXMsIGZhUGFzc3BvcnQsIGZhVGh1bWJ0YWNrU2xhc2gsIGZhVGh1bWJUYWNrU2xhc2gsIGZhSGVhcnRQdWxzZSwgZmFIZWFydGJlYXQsIGZhUGVvcGxlQ2FycnlCb3gsIGZhUGVvcGxlQ2FycnksIGZhVGVtcGVyYXR1cmVIaWdoLCBmYU1pY3JvY2hpcCwgZmFDcm93biwgZmFXZWlnaHRIYW5naW5nLCBmYVhtYXJrc0xpbmVzLCBmYUZpbGVQcmVzY3JpcHRpb24sIGZhV2VpZ2h0U2NhbGUsIGZhV2VpZ2h0LCBmYVVzZXJHcm91cCwgZmFVc2VyRnJpZW5kcywgZmFBcnJvd1VwQVosIGZhU29ydEFscGhhVXAsIGZhQ2hlc3NLbmlnaHQsIGZhRmFjZUxhdWdoU3F1aW50LCBmYUxhdWdoU3F1aW50LCBmYVdoZWVsY2hhaXIsIGZhQ2lyY2xlQXJyb3dVcCwgZmFBcnJvd0NpcmNsZVVwLCBmYVRvZ2dsZU9uLCBmYVBlcnNvbldhbGtpbmcsIGZhV2Fsa2luZywgZmFMLCBmYUZpcmUsIGZhQmVkUHVsc2UsIGZhUHJvY2VkdXJlcywgZmFTaHV0dGxlU3BhY2UsIGZhU3BhY2VTaHV0dGxlLCBmYUZhY2VMYXVnaCwgZmFMYXVnaCwgZmFGb2xkZXJPcGVuLCBmYUhlYXJ0Q2lyY2xlUGx1cywgZmFDb2RlRm9yaywgZmFDaXR5LCBmYU1pY3JvcGhvbmVMaW5lcywgZmFNaWNyb3Bob25lQWx0LCBmYVBlcHBlckhvdCwgZmFVbmxvY2ssIGZhQ29sb25TaWduLCBmYUhlYWRzZXQsIGZhU3RvcmVTbGFzaCwgZmFSb2FkQ2lyY2xlWG1hcmssIGZhVXNlck1pbnVzLCBmYU1hcnNTdHJva2VVcCwgZmFNYXJzU3Ryb2tlViwgZmFDaGFtcGFnbmVHbGFzc2VzLCBmYUdsYXNzQ2hlZXJzLCBmYUNsaXBib2FyZCwgZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUZpbGVBcnJvd1VwLCBmYUZpbGVVcGxvYWQsIGZhV2lmaSwgZmFXaWZpMywgZmFXaWZpU3Ryb25nLCBmYUJhdGgsIGZhQmF0aHR1YiwgZmFVbmRlcmxpbmUsIGZhVXNlclBlbiwgZmFVc2VyRWRpdCwgZmFTaWduYXR1cmUsIGZhU3Ryb29wd2FmZWwsIGZhQm9sZCwgZmFBbmNob3JMb2NrLCBmYUJ1aWxkaW5nTmdvLCBmYU1hbmF0U2lnbiwgZmFOb3RFcXVhbCwgZmFCb3JkZXJUb3BMZWZ0LCBmYUJvcmRlclN0eWxlLCBmYU1hcExvY2F0aW9uRG90LCBmYU1hcE1hcmtlZEFsdCwgZmFKZWRpLCBmYVNxdWFyZVBvbGxWZXJ0aWNhbCwgZmFQb2xsLCBmYU11Z0hvdCwgZmFDYXJCYXR0ZXJ5LCBmYUJhdHRlcnlDYXIsIGZhR2lmdCwgZmFEaWNlVHdvLCBmYUNoZXNzUXVlZW4sIGZhR2xhc3NlcywgZmFDaGVzc0JvYXJkLCBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2ssIGZhUGVyc29uQ2hhbGtib2FyZCwgZmFNYXJzU3Ryb2tlUmlnaHQsIGZhTWFyc1N0cm9rZUgsIGZhSGFuZEJhY2tGaXN0LCBmYUhhbmRSb2NrLCBmYVNxdWFyZUNhcmV0VXAsIGZhQ2FyZXRTcXVhcmVVcCwgZmFDbG91ZFNob3dlcnNXYXRlciwgZmFDaGFydEJhciwgZmFCYXJDaGFydCwgZmFIYW5kc0J1YmJsZXMsIGZhSGFuZHNXYXNoLCBmYUxlc3NUaGFuRXF1YWwsIGZhVHJhaW4sIGZhRXllTG93VmlzaW9uLCBmYUxvd1Zpc2lvbiwgZmFDcm93LCBmYVNhaWxib2F0LCBmYVdpbmRvd1Jlc3RvcmUsIGZhU3F1YXJlUGx1cywgZmFQbHVzU3F1YXJlLCBmYVRvcmlpR2F0ZSwgZmFGcm9nLCBmYUJ1Y2tldCwgZmFJbWFnZSwgZmFNaWNyb3Bob25lLCBmYUNvdywgZmFDYXJldFVwLCBmYVNjcmV3ZHJpdmVyLCBmYUZvbGRlckNsb3NlZCwgZmFIb3VzZVRzdW5hbWksIGZhU3F1YXJlTmZpLCBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsIGZhTWFydGluaUdsYXNzLCBmYUdsYXNzTWFydGluaUFsdCwgZmFSb3RhdGVMZWZ0LCBmYVJvdGF0ZUJhY2ssIGZhUm90YXRlQmFja3dhcmQsIGZhVW5kb0FsdCwgZmFUYWJsZUNvbHVtbnMsIGZhQ29sdW1ucywgZmFMZW1vbiwgZmFIZWFkU2lkZU1hc2ssIGZhSGFuZHNoYWtlLCBmYUdlbSwgZmFEb2xseSwgZmFEb2xseUJveCwgZmFTbW9raW5nLCBmYU1pbmltaXplLCBmYUNvbXByZXNzQXJyb3dzQWx0LCBmYU1vbnVtZW50LCBmYVNub3dwbG93LCBmYUFuZ2xlc1JpZ2h0LCBmYUFuZ2xlRG91YmxlUmlnaHQsIGZhQ2FubmFiaXMsIGZhQ2lyY2xlUGxheSwgZmFQbGF5Q2lyY2xlLCBmYVRhYmxldHMsIGZhRXRoZXJuZXQsIGZhRXVyb1NpZ24sIGZhRXVyLCBmYUV1cm8sIGZhQ2hhaXIsIGZhQ2lyY2xlQ2hlY2ssIGZhQ2hlY2tDaXJjbGUsIGZhQ2lyY2xlU3RvcCwgZmFTdG9wQ2lyY2xlLCBmYUNvbXBhc3NEcmFmdGluZywgZmFEcmFmdGluZ0NvbXBhc3MsIGZhUGxhdGVXaGVhdCwgZmFJY2ljbGVzLCBmYVBlcnNvblNoZWx0ZXIsIGZhTmV1dGVyLCBmYUlkQmFkZ2UsIGZhTWFya2VyLCBmYUZhY2VMYXVnaEJlYW0sIGZhTGF1Z2hCZWFtLCBmYUhlbGljb3B0ZXJTeW1ib2wsIGZhVW5pdmVyc2FsQWNjZXNzLCBmYUNpcmNsZUNoZXZyb25VcCwgZmFDaGV2cm9uQ2lyY2xlVXAsIGZhTGFyaVNpZ24sIGZhVm9sY2FubywgZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQsIGZhU3RlcmxpbmdTaWduLCBmYUdicCwgZmFQb3VuZFNpZ24sIGZhVmlydXNlcywgZmFTcXVhcmVQZXJzb25Db25maW5lZCwgZmFVc2VyVGllLCBmYUFycm93RG93bkxvbmcsIGZhTG9uZ0Fycm93RG93biwgZmFUZW50QXJyb3dEb3duVG9MaW5lLCBmYUNlcnRpZmljYXRlLCBmYVJlcGx5QWxsLCBmYU1haWxSZXBseUFsbCwgZmFTdWl0Y2FzZSwgZmFQZXJzb25Ta2F0aW5nLCBmYVNrYXRpbmcsIGZhRmlsdGVyQ2lyY2xlRG9sbGFyLCBmYUZ1bm5lbERvbGxhciwgZmFDYW1lcmFSZXRybywgZmFDaXJjbGVBcnJvd0Rvd24sIGZhQXJyb3dDaXJjbGVEb3duLCBmYUZpbGVJbXBvcnQsIGZhQXJyb3dSaWdodFRvRmlsZSwgZmFTcXVhcmVBcnJvd1VwUmlnaHQsIGZhRXh0ZXJuYWxMaW5rU3F1YXJlLCBmYUJveE9wZW4sIGZhU2Nyb2xsLCBmYVNwYSwgZmFMb2NhdGlvblBpbkxvY2ssIGZhUGF1c2UsIGZhSGlsbEF2YWxhbmNoZSwgZmFUZW1wZXJhdHVyZUVtcHR5LCBmYVRlbXBlcmF0dXJlMCwgZmFUaGVybW9tZXRlcjAsIGZhVGhlcm1vbWV0ZXJFbXB0eSwgZmFCb21iLCBmYVJlZ2lzdGVyZWQsIGZhQWRkcmVzc0NhcmQsIGZhQ29udGFjdENhcmQsIGZhVmNhcmQsIGZhU2NhbGVVbmJhbGFuY2VkRmxpcCwgZmFCYWxhbmNlU2NhbGVSaWdodCwgZmFTdWJzY3JpcHQsIGZhRGlhbW9uZFR1cm5SaWdodCwgZmFEaXJlY3Rpb25zLCBmYUJ1cnN0LCBmYUhvdXNlTGFwdG9wLCBmYUxhcHRvcEhvdXNlLCBmYUZhY2VUaXJlZCwgZmFUaXJlZCwgZmFNb25leUJpbGxzLCBmYVNtb2csIGZhQ3J1dGNoLCBmYUZvbnRBd2Vzb21lLCBmYUZvbnRBd2Vzb21lRmxhZywgZmFGb250QXdlc29tZUxvZ29GdWxsLCBmYUNsb3VkQXJyb3dVcCwgZmFDbG91ZFVwbG9hZCwgZmFDbG91ZFVwbG9hZEFsdCwgZmFQYWxldHRlLCBmYUFycm93c1R1cm5SaWdodCwgZmFWZXN0LCBmYUZlcnJ5LCBmYUFycm93c0Rvd25Ub1Blb3BsZSwgZmFTZWVkbGluZywgZmFTcHJvdXQsIGZhTGVmdFJpZ2h0LCBmYUFycm93c0FsdEgsIGZhQm94ZXNQYWNraW5nLCBmYUNpcmNsZUFycm93TGVmdCwgZmFBcnJvd0NpcmNsZUxlZnQsIGZhR3JvdXBBcnJvd3NSb3RhdGUsIGZhQm93bEZvb2QsIGZhQ2FuZHlDYW5lLCBmYUFycm93RG93bldpZGVTaG9ydCwgZmFTb3J0QW1vdW50QXNjLCBmYVNvcnRBbW91bnREb3duLCBmYUNsb3VkQm9sdCwgZmFUaHVuZGVyc3Rvcm0sIGZhVGV4dFNsYXNoLCBmYVJlbW92ZUZvcm1hdCwgZmFGYWNlU21pbGVXaW5rLCBmYVNtaWxlV2luaywgZmFGaWxlV29yZCwgZmFGaWxlUG93ZXJwb2ludCwgZmFBcnJvd3NMZWZ0UmlnaHQsIGZhQXJyb3dzSCwgZmFIb3VzZUxvY2ssIGZhQ2xvdWRBcnJvd0Rvd24sIGZhQ2xvdWREb3dubG9hZCwgZmFDbG91ZERvd25sb2FkQWx0LCBmYUNoaWxkcmVuLCBmYUNoYWxrYm9hcmQsIGZhQmxhY2tib2FyZCwgZmFVc2VyTGFyZ2VTbGFzaCwgZmFVc2VyQWx0U2xhc2gsIGZhRW52ZWxvcGVPcGVuLCBmYUhhbmRzaGFrZVNpbXBsZVNsYXNoLCBmYUhhbmRzaGFrZUFsdFNsYXNoLCBmYU1hdHRyZXNzUGlsbG93LCBmYUd1YXJhbmlTaWduLCBmYUFycm93c1JvdGF0ZSwgZmFSZWZyZXNoLCBmYVN5bmMsIGZhRmlyZUV4dGluZ3Vpc2hlciwgZmFDcnV6ZWlyb1NpZ24sIGZhR3JlYXRlclRoYW5FcXVhbCwgZmFTaGllbGRIYWx2ZWQsIGZhU2hpZWxkQWx0LCBmYUJvb2tBdGxhcywgZmFBdGxhcywgZmFWaXJ1cywgZmFFbnZlbG9wZUNpcmNsZUNoZWNrLCBmYUxheWVyR3JvdXAsIGZhQXJyb3dzVG9Eb3QsIGZhQXJjaHdheSwgZmFIZWFydENpcmNsZUNoZWNrLCBmYUhvdXNlQ2hpbW5leUNyYWNrLCBmYUhvdXNlRGFtYWdlLCBmYUZpbGVaaXBwZXIsIGZhRmlsZUFyY2hpdmUsIGZhU3F1YXJlLCBmYU1hcnRpbmlHbGFzc0VtcHR5LCBmYUdsYXNzTWFydGluaSwgZmFDb3VjaCwgZmFDZWRpU2lnbiwgZmFJdGFsaWMsIGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssIGZhQ2h1cmNoLCBmYUNvbW1lbnRzRG9sbGFyLCBmYURlbW9jcmF0LCBmYVosIGZhUGVyc29uU2tpaW5nLCBmYVNraWluZywgZmFSb2FkTG9jaywgZmFBLCBmYVRlbXBlcmF0dXJlQXJyb3dEb3duLCBmYVRlbXBlcmF0dXJlRG93biwgZmFGZWF0aGVyUG9pbnRlZCwgZmFGZWF0aGVyQWx0LCBmYVAsIGZhU25vd2ZsYWtlLCBmYU5ld3NwYXBlciwgZmFSZWN0YW5nbGVBZCwgZmFBZCwgZmFDaXJjbGVBcnJvd1JpZ2h0LCBmYUFycm93Q2lyY2xlUmlnaHQsIGZhRmlsdGVyQ2lyY2xlWG1hcmssIGZhTG9jdXN0LCBmYVNvcnQsIGZhVW5zb3J0ZWQsIGZhTGlzdE9sLCBmYUxpc3QxMiwgZmFMaXN0TnVtZXJpYywgZmFQZXJzb25EcmVzc0J1cnN0LCBmYU1vbmV5Q2hlY2tEb2xsYXIsIGZhTW9uZXlDaGVja0FsdCwgZmFWZWN0b3JTcXVhcmUsIGZhQnJlYWRTbGljZSwgZmFMYW5ndWFnZSwgZmFGYWNlS2lzc1dpbmtIZWFydCwgZmFLaXNzV2lua0hlYXJ0LCBmYUZpbHRlciwgZmFRdWVzdGlvbiwgZmFGaWxlU2lnbmF0dXJlLCBmYVVwRG93bkxlZnRSaWdodCwgZmFBcnJvd3NBbHQsIGZhSG91c2VDaGltbmV5VXNlciwgZmFIYW5kSG9sZGluZ0hlYXJ0LCBmYVB1enpsZVBpZWNlLCBmYU1vbmV5Q2hlY2ssIGZhU3RhckhhbGZTdHJva2UsIGZhU3RhckhhbGZBbHQsIGZhQ29kZSwgZmFXaGlza2V5R2xhc3MsIGZhR2xhc3NXaGlza2V5LCBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24sIGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQsIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZSwgZmFFeHRlcm5hbExpbmssIGZhQ3ViZXNTdGFja2VkLCBmYVdvblNpZ24sIGZhS3J3LCBmYVdvbiwgZmFWaXJ1c0NvdmlkLCBmYUF1c3RyYWxTaWduLCBmYUYsIGZhTGVhZiwgZmFSb2FkLCBmYVRheGksIGZhQ2FiLCBmYVBlcnNvbkNpcmNsZVBsdXMsIGZhQ2hhcnRQaWUsIGZhUGllQ2hhcnQsIGZhQm9sdExpZ2h0bmluZywgZmFTYWNrWG1hcmssIGZhRmlsZUV4Y2VsLCBmYUZpbGVDb250cmFjdCwgZmFGaXNoRmlucywgZmFCdWlsZGluZ0ZsYWcsIGZhRmFjZUdyaW5CZWFtLCBmYUdyaW5CZWFtLCBmYU9iamVjdFVuZ3JvdXAsIGZhUG9vcCwgZmFMb2NhdGlvblBpbiwgZmFNYXBNYXJrZXIsIGZhS2FhYmEsIGZhVG9pbGV0UGFwZXIsIGZhSGVsbWV0U2FmZXR5LCBmYUhhcmRIYXQsIGZhSGF0SGFyZCwgZmFFamVjdCwgZmFDaXJjbGVSaWdodCwgZmFBcnJvd0FsdENpcmNsZVJpZ2h0LCBmYVBsYW5lQ2lyY2xlQ2hlY2ssIGZhRmFjZVJvbGxpbmdFeWVzLCBmYU1laFJvbGxpbmdFeWVzLCBmYU9iamVjdEdyb3VwLCBmYUNoYXJ0TGluZSwgZmFMaW5lQ2hhcnQsIGZhTWFza1ZlbnRpbGF0b3IsIGZhQXJyb3dSaWdodCwgZmFTaWduc1Bvc3QsIGZhTWFwU2lnbnMsIGZhQ2FzaFJlZ2lzdGVyLCBmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uLCBmYUgsIGZhVGFycCwgZmFTY3Jld2RyaXZlcldyZW5jaCwgZmFUb29scywgZmFBcnJvd3NUb0V5ZSwgZmFQbHVnQ2lyY2xlQm9sdCwgZmFIZWFydCwgZmFNYXJzQW5kVmVudXMsIGZhSG91c2VVc2VyLCBmYUhvbWVVc2VyLCBmYUR1bXBzdGVyRmlyZSwgZmFIb3VzZUNyYWNrLCBmYU1hcnRpbmlHbGFzc0NpdHJ1cywgZmFDb2NrdGFpbCwgZmFGYWNlU3VycHJpc2UsIGZhU3VycHJpc2UsIGZhQm90dGxlV2F0ZXIsIGZhQ2lyY2xlUGF1c2UsIGZhUGF1c2VDaXJjbGUsIGZhVG9pbGV0UGFwZXJTbGFzaCwgZmFBcHBsZVdob2xlLCBmYUFwcGxlQWx0LCBmYUtpdGNoZW5TZXQsIGZhUiwgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsIGZhVGVtcGVyYXR1cmUxLCBmYVRoZXJtb21ldGVyMSwgZmFUaGVybW9tZXRlclF1YXJ0ZXIsIGZhQ3ViZSwgZmFCaXRjb2luU2lnbiwgZmFTaGllbGREb2csIGZhU29sYXJQYW5lbCwgZmFMb2NrT3BlbiwgZmFFbGV2YXRvciwgZmFNb25leUJpbGxUcmFuc2ZlciwgZmFNb25leUJpbGxUcmVuZFVwLCBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsIGZhU3F1YXJlUG9sbEhvcml6b250YWwsIGZhUG9sbEgsIGZhQ2lyY2xlLCBmYUJhY2t3YXJkRmFzdCwgZmFGYXN0QmFja3dhcmQsIGZhUmVjeWNsZSwgZmFVc2VyQXN0cm9uYXV0LCBmYVBsYW5lU2xhc2gsIGZhVHJhZGVtYXJrLCBmYUJhc2tldGJhbGwsIGZhQmFza2V0YmFsbEJhbGwsIGZhU2F0ZWxsaXRlRGlzaCwgZmFDaXJjbGVVcCwgZmFBcnJvd0FsdENpcmNsZVVwLCBmYU1vYmlsZVNjcmVlbkJ1dHRvbiwgZmFNb2JpbGVBbHQsIGZhVm9sdW1lSGlnaCwgZmFWb2x1bWVVcCwgZmFVc2Vyc1JheXMsIGZhV2FsbGV0LCBmYUNsaXBib2FyZENoZWNrLCBmYUZpbGVBdWRpbywgZmFCdXJnZXIsIGZhSGFtYnVyZ2VyLCBmYVdyZW5jaCwgZmFCdWdzLCBmYVJ1cGVlU2lnbiwgZmFSdXBlZSwgZmFGaWxlSW1hZ2UsIGZhQ2lyY2xlUXVlc3Rpb24sIGZhUXVlc3Rpb25DaXJjbGUsIGZhUGxhbmVEZXBhcnR1cmUsIGZhSGFuZHNoYWtlU2xhc2gsIGZhQm9va0Jvb2ttYXJrLCBmYUNvZGVCcmFuY2gsIGZhSGF0Q293Ym95LCBmYUJyaWRnZSwgZmFQaG9uZUZsaXAsIGZhUGhvbmVBbHQsIGZhVHJ1Y2tGcm9udCwgZmFDYXQsIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sIGZhVHJ1Y2tGaWVsZCwgZmFSb3V0ZSwgZmFDbGlwYm9hcmRRdWVzdGlvbiwgZmFQYW5vcmFtYSwgZmFDb21tZW50TWVkaWNhbCwgZmFUZWV0aE9wZW4sIGZhRmlsZUNpcmNsZU1pbnVzLCBmYVRhZ3MsIGZhV2luZUdsYXNzLCBmYUZvcndhcmRGYXN0LCBmYUZhc3RGb3J3YXJkLCBmYUZhY2VNZWhCbGFuaywgZmFNZWhCbGFuaywgZmFTcXVhcmVQYXJraW5nLCBmYVBhcmtpbmcsIGZhSG91c2VTaWduYWwsIGZhQmFyc1Byb2dyZXNzLCBmYVRhc2tzQWx0LCBmYUZhdWNldERyaXAsIGZhQ2FydEZsYXRiZWQsIGZhRG9sbHlGbGF0YmVkLCBmYUJhblNtb2tpbmcsIGZhU21va2luZ0JhbiwgZmFUZXJtaW5hbCwgZmFNb2JpbGVCdXR0b24sIGZhSG91c2VNZWRpY2FsRmxhZywgZmFCYXNrZXRTaG9wcGluZywgZmFTaG9wcGluZ0Jhc2tldCwgZmFUYXBlLCBmYUJ1c1NpbXBsZSwgZmFCdXNBbHQsIGZhRXllLCBmYUZhY2VTYWRDcnksIGZhU2FkQ3J5LCBmYUF1ZGlvRGVzY3JpcHRpb24sIGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiwgZmFGaWxlU2hpZWxkLCBmYVVzZXJTbGFzaCwgZmFQZW4sIGZhVG93ZXJPYnNlcnZhdGlvbiwgZmFGaWxlQ29kZSwgZmFTaWduYWwsIGZhU2lnbmFsNSwgZmFTaWduYWxQZXJmZWN0LCBmYUJ1cywgZmFIZWFydENpcmNsZVhtYXJrLCBmYUhvdXNlQ2hpbW5leSwgZmFIb21lTGcsIGZhV2luZG93TWF4aW1pemUsIGZhRmFjZUZyb3duLCBmYUZyb3duLCBmYVByZXNjcmlwdGlvbiwgZmFTaG9wLCBmYVN0b3JlQWx0LCBmYUZsb3BweURpc2ssIGZhU2F2ZSwgZmFWaWhhcmEsIGZhU2NhbGVVbmJhbGFuY2VkLCBmYUJhbGFuY2VTY2FsZUxlZnQsIGZhU29ydFVwLCBmYVNvcnRBc2MsIGZhQ29tbWVudERvdHMsIGZhQ29tbWVudGluZywgZmFQbGFudFdpbHQsIGZhRGlhbW9uZCwgZmFGYWNlR3JpblNxdWludCwgZmFHcmluU3F1aW50LCBmYUhhbmRIb2xkaW5nRG9sbGFyLCBmYUhhbmRIb2xkaW5nVXNkLCBmYUJhY3Rlcml1bSwgZmFIYW5kUG9pbnRlciwgZmFEcnVtU3RlZWxwYW4sIGZhSGFuZFNjaXNzb3JzLCBmYUhhbmRzUHJheWluZywgZmFQcmF5aW5nSGFuZHMsIGZhQXJyb3dSb3RhdGVSaWdodCwgZmFBcnJvd1JpZ2h0Um90YXRlLCBmYUFycm93Um90YXRlRm9yd2FyZCwgZmFSZWRvLCBmYVdlYkF3ZXNvbWUsIGZhQmlvaGF6YXJkLCBmYUxvY2F0aW9uQ3Jvc3NoYWlycywgZmFMb2NhdGlvbiwgZmFNYXJzRG91YmxlLCBmYUNoaWxkRHJlc3MsIGZhVXNlcnNCZXR3ZWVuTGluZXMsIGZhTHVuZ3NWaXJ1cywgZmFGYWNlR3JpblRlYXJzLCBmYUdyaW5UZWFycywgZmFQaG9uZSwgZmFDYWxlbmRhclhtYXJrLCBmYUNhbGVuZGFyVGltZXMsIGZhQ2hpbGRSZWFjaGluZywgZmFIZWFkU2lkZVZpcnVzLCBmYVVzZXJHZWFyLCBmYVVzZXJDb2csIGZhQXJyb3dVcDE5LCBmYVNvcnROdW1lcmljVXAsIGZhRG9vckNsb3NlZCwgZmFTaGllbGRWaXJ1cywgZmFEaWNlU2l4LCBmYU1vc3F1aXRvTmV0LCBmYUJyaWRnZVdhdGVyLCBmYVBlcnNvbkJvb3RoLCBmYVRleHRXaWR0aCwgZmFIYXRXaXphcmQsIGZhUGVuRmFuY3ksIGZhUGVyc29uRGlnZ2luZywgZmFEaWdnaW5nLCBmYVRyYXNoLCBmYUdhdWdlU2ltcGxlLCBmYUdhdWdlU2ltcGxlTWVkLCBmYVRhY2hvbWV0ZXJBdmVyYWdlLCBmYUJvb2tNZWRpY2FsLCBmYVBvbywgZmFRdW90ZVJpZ2h0LCBmYVF1b3RlUmlnaHRBbHQsIGZhU2hpcnQsIGZhVFNoaXJ0LCBmYVRzaGlydCwgZmFDdWJlcywgZmFEaXZpZGUsIGZhVGVuZ2VTaWduLCBmYVRlbmdlLCBmYUhlYWRwaG9uZXMsIGZhSGFuZHNIb2xkaW5nLCBmYUhhbmRzQ2xhcHBpbmcsIGZhUmVwdWJsaWNhbiwgZmFBcnJvd0xlZnQsIGZhUGVyc29uQ2lyY2xlWG1hcmssIGZhUnVsZXIsIGZhQWxpZ25MZWZ0LCBmYURpY2VENiwgZmFSZXN0cm9vbSwgZmFKLCBmYVVzZXJzVmlld2ZpbmRlciwgZmFGaWxlVmlkZW8sIGZhVXBSaWdodEZyb21TcXVhcmUsIGZhRXh0ZXJuYWxMaW5rQWx0LCBmYVRhYmxlQ2VsbHMsIGZhVGgsIGZhRmlsZVBkZiwgZmFCb29rQmlibGUsIGZhQmlibGUsIGZhTywgZmFTdWl0Y2FzZU1lZGljYWwsIGZhTWVka2l0LCBmYVVzZXJTZWNyZXQsIGZhT3R0ZXIsIGZhUGVyc29uRHJlc3MsIGZhRmVtYWxlLCBmYUNvbW1lbnREb2xsYXIsIGZhQnVzaW5lc3NUaW1lLCBmYUJyaWVmY2FzZUNsb2NrLCBmYVRhYmxlQ2VsbHNMYXJnZSwgZmFUaExhcmdlLCBmYUJvb2tUYW5ha2gsIGZhVGFuYWtoLCBmYVBob25lVm9sdW1lLCBmYVZvbHVtZUNvbnRyb2xQaG9uZSwgZmFIYXRDb3dib3lTaWRlLCBmYUNsaXBib2FyZFVzZXIsIGZhQ2hpbGQsIGZhTGlyYVNpZ24sIGZhU2F0ZWxsaXRlLCBmYVBsYW5lTG9jaywgZmFUYWcsIGZhQ29tbWVudCwgZmFDYWtlQ2FuZGxlcywgZmFCaXJ0aGRheUNha2UsIGZhQ2FrZSwgZmFFbnZlbG9wZSwgZmFBbmdsZXNVcCwgZmFBbmdsZURvdWJsZVVwLCBmYVBhcGVyY2xpcCwgZmFBcnJvd1JpZ2h0VG9DaXR5LCBmYVJpYmJvbiwgZmFMdW5ncywgZmFBcnJvd1VwOTEsIGZhU29ydE51bWVyaWNVcEFsdCwgZmFMaXRlY29pblNpZ24sIGZhQm9yZGVyTm9uZSwgZmFDaXJjbGVOb2RlcywgZmFQYXJhY2h1dGVCb3gsIGZhSW5kZW50LCBmYVRydWNrRmllbGRVbiwgZmFIb3VyZ2xhc3MsIGZhSG91cmdsYXNzRW1wdHksIGZhTW91bnRhaW4sIGZhVXNlckRvY3RvciwgZmFVc2VyTWQsIGZhQ2lyY2xlSW5mbywgZmFJbmZvQ2lyY2xlLCBmYUNsb3VkTWVhdGJhbGwsIGZhQ2FtZXJhLCBmYUNhbWVyYUFsdCwgZmFTcXVhcmVWaXJ1cywgZmFNZXRlb3IsIGZhQ2FyT24sIGZhU2xlaWdoLCBmYUFycm93RG93bjE5LCBmYVNvcnROdW1lcmljQXNjLCBmYVNvcnROdW1lcmljRG93biwgZmFIYW5kSG9sZGluZ0Ryb3BsZXQsIGZhSGFuZEhvbGRpbmdXYXRlciwgZmFXYXRlciwgZmFDYWxlbmRhckNoZWNrLCBmYUJyYWlsbGUsIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCwgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsIGZhTGFuZG1hcmssIGZhVHJ1Y2ssIGZhQ3Jvc3NoYWlycywgZmFQZXJzb25DYW5lLCBmYVRlbnQsIGZhVmVzdFBhdGNoZXMsIGZhQ2hlY2tEb3VibGUsIGZhQXJyb3dEb3duQVosIGZhU29ydEFscGhhQXNjLCBmYVNvcnRBbHBoYURvd24sIGZhTW9uZXlCaWxsV2hlYXQsIGZhQ29va2llLCBmYUFycm93Um90YXRlTGVmdCwgZmFBcnJvd0xlZnRSb3RhdGUsIGZhQXJyb3dSb3RhdGVCYWNrLCBmYUFycm93Um90YXRlQmFja3dhcmQsIGZhVW5kbywgZmFIYXJkRHJpdmUsIGZhSGRkLCBmYUZhY2VHcmluU3F1aW50VGVhcnMsIGZhR3JpblNxdWludFRlYXJzLCBmYUR1bWJiZWxsLCBmYVJlY3RhbmdsZUxpc3QsIGZhTGlzdEFsdCwgZmFUYXJwRHJvcGxldCwgZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjaywgZmFQZXJzb25Ta2lpbmdOb3JkaWMsIGZhU2tpaW5nTm9yZGljLCBmYUNhbGVuZGFyUGx1cywgZmFQbGFuZUFycml2YWwsIGZhQ2lyY2xlTGVmdCwgZmFBcnJvd0FsdENpcmNsZUxlZnQsIGZhVHJhaW5TdWJ3YXksIGZhU3Vid2F5LCBmYUNoYXJ0R2FudHQsIGZhSW5kaWFuUnVwZWVTaWduLCBmYUluZGlhblJ1cGVlLCBmYUluciwgZmFDcm9wU2ltcGxlLCBmYUNyb3BBbHQsIGZhTW9uZXlCaWxsMSwgZmFNb25leUJpbGxBbHQsIGZhTGVmdExvbmcsIGZhTG9uZ0Fycm93QWx0TGVmdCwgZmFEbmEsIGZhVmlydXNTbGFzaCwgZmFNaW51cywgZmFTdWJ0cmFjdCwgZmFDaGVzcywgZmFBcnJvd0xlZnRMb25nLCBmYUxvbmdBcnJvd0xlZnQsIGZhUGx1Z0NpcmNsZUNoZWNrLCBmYVN0cmVldFZpZXcsIGZhRnJhbmNTaWduLCBmYVZvbHVtZU9mZiwgZmFIYW5kc0FzbEludGVycHJldGluZywgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZywgZmFBc2xJbnRlcnByZXRpbmcsIGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZywgZmFHZWFyLCBmYUNvZywgZmFEcm9wbGV0U2xhc2gsIGZhVGludFNsYXNoLCBmYU1vc3F1ZSwgZmFNb3NxdWl0bywgZmFTdGFyT2ZEYXZpZCwgZmFQZXJzb25NaWxpdGFyeVJpZmxlLCBmYUNhcnRTaG9wcGluZywgZmFTaG9wcGluZ0NhcnQsIGZhVmlhbHMsIGZhUGx1Z0NpcmNsZVBsdXMsIGZhUGxhY2VPZldvcnNoaXAsIGZhR3JpcFZlcnRpY2FsLCBmYUFycm93VHVyblVwLCBmYUxldmVsVXAsIGZhVSwgZmFTcXVhcmVSb290VmFyaWFibGUsIGZhU3F1YXJlUm9vdEFsdCwgZmFDbG9jaywgZmFDbG9ja0ZvdXIsIGZhQmFja3dhcmRTdGVwLCBmYVN0ZXBCYWNrd2FyZCwgZmFQYWxsZXQsIGZhRmF1Y2V0LCBmYUJhc2ViYWxsQmF0QmFsbCwgZmFTLCBmYVRpbWVsaW5lLCBmYUtleWJvYXJkLCBmYUNhcmV0RG93biwgZmFIb3VzZUNoaW1uZXlNZWRpY2FsLCBmYUNsaW5pY01lZGljYWwsIGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzLCBmYVRlbXBlcmF0dXJlMywgZmFUaGVybW9tZXRlcjMsIGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzLCBmYU1vYmlsZVNjcmVlbiwgZmFNb2JpbGVBbmRyb2lkQWx0LCBmYVBsYW5lVXAsIGZhUGlnZ3lCYW5rLCBmYUJhdHRlcnlIYWxmLCBmYUJhdHRlcnkzLCBmYU1vdW50YWluQ2l0eSwgZmFDb2lucywgZmFLaGFuZGEsIGZhU2xpZGVycywgZmFTbGlkZXJzSCwgZmFGb2xkZXJUcmVlLCBmYU5ldHdvcmtXaXJlZCwgZmFNYXBQaW4sIGZhSGFtc2EsIGZhQ2VudFNpZ24sIGZhRmxhc2ssIGZhUGVyc29uUHJlZ25hbnQsIGZhV2FuZFNwYXJrbGVzLCBmYUVsbGlwc2lzVmVydGljYWwsIGZhRWxsaXBzaXNWLCBmYVRpY2tldCwgZmFQb3dlck9mZiwgZmFSaWdodExvbmcsIGZhTG9uZ0Fycm93QWx0UmlnaHQsIGZhRmxhZ1VzYSwgZmFMYXB0b3BGaWxlLCBmYVR0eSwgZmFUZWxldHlwZSwgZmFEaWFncmFtTmV4dCwgZmFQZXJzb25SaWZsZSwgZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbiwgZmFDbG9zZWRDYXB0aW9uaW5nLCBmYVBlcnNvbkhpa2luZywgZmFIaWtpbmcsIGZhVmVudXNEb3VibGUsIGZhSW1hZ2VzLCBmYUNhbGN1bGF0b3IsIGZhUGVvcGxlUHVsbGluZywgZmFOLCBmYUNhYmxlQ2FyLCBmYVRyYW0sIGZhQ2xvdWRSYWluLCBmYUJ1aWxkaW5nQ2lyY2xlWG1hcmssIGZhU2hpcCwgZmFBcnJvd3NEb3duVG9MaW5lLCBmYURvd25sb2FkLCBmYUZhY2VHcmluLCBmYUdyaW4sIGZhRGVsZXRlTGVmdCwgZmFCYWNrc3BhY2UsIGZhRXllRHJvcHBlciwgZmFFeWVEcm9wcGVyRW1wdHksIGZhRXllZHJvcHBlciwgZmFGaWxlQ2lyY2xlQ2hlY2ssIGZhRm9yd2FyZCwgZmFNb2JpbGUsIGZhTW9iaWxlQW5kcm9pZCwgZmFNb2JpbGVQaG9uZSwgZmFGYWNlTWVoLCBmYU1laCwgZmFBbGlnbkNlbnRlciwgZmFCb29rU2t1bGwsIGZhQm9va0RlYWQsIGZhSWRDYXJkLCBmYURyaXZlcnNMaWNlbnNlLCBmYU91dGRlbnQsIGZhRGVkZW50LCBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24sIGZhSG91c2UsIGZhSG9tZSwgZmFIb21lQWx0LCBmYUhvbWVMZ0FsdCwgZmFDYWxlbmRhcldlZWssIGZhTGFwdG9wTWVkaWNhbCwgZmFCLCBmYUZpbGVNZWRpY2FsLCBmYURpY2VPbmUsIGZhS2l3aUJpcmQsIGZhQXJyb3dSaWdodEFycm93TGVmdCwgZmFFeGNoYW5nZSwgZmFSb3RhdGVSaWdodCwgZmFSZWRvQWx0LCBmYVJvdGF0ZUZvcndhcmQsIGZhVXRlbnNpbHMsIGZhQ3V0bGVyeSwgZmFBcnJvd1VwV2lkZVNob3J0LCBmYVNvcnRBbW91bnRVcCwgZmFNaWxsU2lnbiwgZmFCb3dsUmljZSwgZmFTa3VsbCwgZmFUb3dlckJyb2FkY2FzdCwgZmFCcm9hZGNhc3RUb3dlciwgZmFUcnVja1BpY2t1cCwgZmFVcExvbmcsIGZhTG9uZ0Fycm93QWx0VXAsIGZhU3RvcCwgZmFDb2RlTWVyZ2UsIGZhVXBsb2FkLCBmYUh1cnJpY2FuZSwgZmFNb3VuZCwgZmFUb2lsZXRQb3J0YWJsZSwgZmFDb21wYWN0RGlzYywgZmFGaWxlQXJyb3dEb3duLCBmYUZpbGVEb3dubG9hZCwgZmFDYXJhdmFuLCBmYVNoaWVsZENhdCwgZmFCb2x0LCBmYVphcCwgZmFHbGFzc1dhdGVyLCBmYU9pbFdlbGwsIGZhVmF1bHQsIGZhTWFycywgZmFUb2lsZXQsIGZhUGxhbmVDaXJjbGVYbWFyaywgZmFZZW5TaWduLCBmYUNueSwgZmFKcHksIGZhUm1iLCBmYVllbiwgZmFSdWJsZVNpZ24sIGZhUm91YmxlLCBmYVJ1YiwgZmFSdWJsZSwgZmFTdW4sIGZhR3VpdGFyLCBmYUZhY2VMYXVnaFdpbmssIGZhTGF1Z2hXaW5rLCBmYUhvcnNlSGVhZCwgZmFCb3JlSG9sZSwgZmFJbmR1c3RyeSwgZmFDaXJjbGVEb3duLCBmYUFycm93QWx0Q2lyY2xlRG93biwgZmFBcnJvd3NUdXJuVG9Eb3RzLCBmYUZsb3JpblNpZ24sIGZhQXJyb3dEb3duU2hvcnRXaWRlLCBmYVNvcnRBbW91bnREZXNjLCBmYVNvcnRBbW91bnREb3duQWx0LCBmYUxlc3NUaGFuLCBmYUFuZ2xlRG93biwgZmFDYXJUdW5uZWwsIGZhSGVhZFNpZGVDb3VnaCwgZmFHcmlwTGluZXMsIGZhVGh1bWJzRG93biwgZmFVc2VyTG9jaywgZmFBcnJvd1JpZ2h0TG9uZywgZmFMb25nQXJyb3dSaWdodCwgZmFBbmNob3JDaXJjbGVYbWFyaywgZmFFbGxpcHNpcywgZmFFbGxpcHNpc0gsIGZhQ2hlc3NQYXduLCBmYUtpdE1lZGljYWwsIGZhRmlyc3RBaWQsIGZhUGVyc29uVGhyb3VnaFdpbmRvdywgZmFUb29sYm94LCBmYUhhbmRzSG9sZGluZ0NpcmNsZSwgZmFCdWcsIGZhQ3JlZGl0Q2FyZCwgZmFDcmVkaXRDYXJkQWx0LCBmYUNhciwgZmFBdXRvbW9iaWxlLCBmYUhhbmRIb2xkaW5nSGFuZCwgZmFCb29rT3BlblJlYWRlciwgZmFCb29rUmVhZGVyLCBmYU1vdW50YWluU3VuLCBmYUFycm93c0xlZnRSaWdodFRvTGluZSwgZmFEaWNlRDIwLCBmYVRydWNrRHJvcGxldCwgZmFGaWxlQ2lyY2xlWG1hcmssIGZhVGVtcGVyYXR1cmVBcnJvd1VwLCBmYVRlbXBlcmF0dXJlVXAsIGZhTWVkYWwsIGZhQmVkLCBmYVNxdWFyZUgsIGZhSFNxdWFyZSwgZmFQb2RjYXN0LCBmYVRlbXBlcmF0dXJlRnVsbCwgZmFUZW1wZXJhdHVyZTQsIGZhVGhlcm1vbWV0ZXI0LCBmYVRoZXJtb21ldGVyRnVsbCwgZmFCZWxsLCBmYVN1cGVyc2NyaXB0LCBmYVBsdWdDaXJjbGVYbWFyaywgZmFTdGFyT2ZMaWZlLCBmYVBob25lU2xhc2gsIGZhUGFpbnRSb2xsZXIsIGZhSGFuZHNoYWtlQW5nbGUsIGZhSGFuZHNIZWxwaW5nLCBmYUxvY2F0aW9uRG90LCBmYU1hcE1hcmtlckFsdCwgZmFGaWxlLCBmYUdyZWF0ZXJUaGFuLCBmYVBlcnNvblN3aW1taW5nLCBmYVN3aW1tZXIsIGZhQXJyb3dEb3duLCBmYURyb3BsZXQsIGZhVGludCwgZmFFcmFzZXIsIGZhRWFydGhBbWVyaWNhcywgZmFFYXJ0aCwgZmFFYXJ0aEFtZXJpY2EsIGZhR2xvYmVBbWVyaWNhcywgZmFQZXJzb25CdXJzdCwgZmFEb3ZlLCBmYUJhdHRlcnlFbXB0eSwgZmFCYXR0ZXJ5MCwgZmFTb2NrcywgZmFJbmJveCwgZmFTZWN0aW9uLCBmYUdhdWdlSGlnaCwgZmFUYWNob21ldGVyQWx0LCBmYVRhY2hvbWV0ZXJBbHRGYXN0LCBmYUVudmVsb3BlT3BlblRleHQsIGZhSG9zcGl0YWwsIGZhSG9zcGl0YWxBbHQsIGZhSG9zcGl0YWxXaWRlLCBmYVdpbmVCb3R0bGUsIGZhQ2hlc3NSb29rLCBmYUJhcnNTdGFnZ2VyZWQsIGZhUmVvcmRlciwgZmFTdHJlYW0sIGZhRGhhcm1hY2hha3JhLCBmYUhvdGRvZywgZmFQZXJzb25XYWxraW5nV2l0aENhbmUsIGZhQmxpbmQsIGZhRHJ1bSwgZmFJY2VDcmVhbSwgZmFIZWFydENpcmNsZUJvbHQsIGZhRmF4LCBmYVBhcmFncmFwaCwgZmFDaGVja1RvU2xvdCwgZmFWb3RlWWVhLCBmYVN0YXJIYWxmLCBmYUJveGVzU3RhY2tlZCwgZmFCb3hlcywgZmFCb3hlc0FsdCwgZmFMaW5rLCBmYUNoYWluLCBmYUVhckxpc3RlbiwgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLCBmYVRyZWVDaXR5LCBmYVBsYXksIGZhRm9udCwgZmFUYWJsZUNlbGxzUm93TG9jaywgZmFSdXBpYWhTaWduLCBmYU1hZ25pZnlpbmdHbGFzcywgZmFTZWFyY2gsIGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsLCBmYVBpbmdQb25nUGFkZGxlQmFsbCwgZmFUYWJsZVRlbm5pcywgZmFQZXJzb25Eb3RzRnJvbUxpbmUsIGZhRGlhZ25vc2VzLCBmYVRyYXNoQ2FuQXJyb3dVcCwgZmFUcmFzaFJlc3RvcmVBbHQsIGZhTmFpcmFTaWduLCBmYUNhcnRBcnJvd0Rvd24sIGZhV2Fsa2llVGFsa2llLCBmYUZpbGVQZW4sIGZhRmlsZUVkaXQsIGZhUmVjZWlwdCwgZmFTcXVhcmVQZW4sIGZhUGVuU3F1YXJlLCBmYVBlbmNpbFNxdWFyZSwgZmFTdWl0Y2FzZVJvbGxpbmcsIGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb24sIGZhQ2hldnJvbkRvd24sIGZhQmF0dGVyeUZ1bGwsIGZhQmF0dGVyeSwgZmFCYXR0ZXJ5NSwgZmFTa3VsbENyb3NzYm9uZXMsIGZhQ29kZUNvbXBhcmUsIGZhTGlzdFVsLCBmYUxpc3REb3RzLCBmYVNjaG9vbExvY2ssIGZhVG93ZXJDZWxsLCBmYURvd25Mb25nLCBmYUxvbmdBcnJvd0FsdERvd24sIGZhUmFua2luZ1N0YXIsIGZhQ2hlc3NLaW5nLCBmYVBlcnNvbkhhcmFzc2luZywgZmFCcmF6aWxpYW5SZWFsU2lnbiwgZmFMYW5kbWFya0RvbWUsIGZhTGFuZG1hcmtBbHQsIGZhQXJyb3dVcCwgZmFUdiwgZmFUZWxldmlzaW9uLCBmYVR2QWx0LCBmYVNocmltcCwgZmFMaXN0Q2hlY2ssIGZhVGFza3MsIGZhSnVnRGV0ZXJnZW50LCBmYUNpcmNsZVVzZXIsIGZhVXNlckNpcmNsZSwgZmFVc2VyU2hpZWxkLCBmYVdpbmQsIGZhQ2FyQnVyc3QsIGZhQ2FyQ3Jhc2gsIGZhWSwgZmFQZXJzb25Tbm93Ym9hcmRpbmcsIGZhU25vd2JvYXJkaW5nLCBmYVRydWNrRmFzdCwgZmFTaGlwcGluZ0Zhc3QsIGZhRmlzaCwgZmFVc2VyR3JhZHVhdGUsIGZhQ2lyY2xlSGFsZlN0cm9rZSwgZmFBZGp1c3QsIGZhQ2xhcHBlcmJvYXJkLCBmYUNpcmNsZVJhZGlhdGlvbiwgZmFSYWRpYXRpb25BbHQsIGZhQmFzZWJhbGwsIGZhQmFzZWJhbGxCYWxsLCBmYUpldEZpZ2h0ZXJVcCwgZmFEaWFncmFtUHJvamVjdCwgZmFQcm9qZWN0RGlhZ3JhbSwgZmFDb3B5LCBmYVZvbHVtZVhtYXJrLCBmYVZvbHVtZU11dGUsIGZhVm9sdW1lVGltZXMsIGZhSGFuZFNwYXJrbGVzLCBmYUdyaXAsIGZhR3JpcEhvcml6b250YWwsIGZhU2hhcmVGcm9tU3F1YXJlLCBmYVNoYXJlU3F1YXJlLCBmYUNoaWxkQ29tYmF0YW50LCBmYUNoaWxkUmlmbGUsIGZhR3VuLCBmYVNxdWFyZVBob25lLCBmYVBob25lU3F1YXJlLCBmYVBsdXMsIGZhQWRkLCBmYUV4cGFuZCwgZmFDb21wdXRlciwgZmFYbWFyaywgZmFDbG9zZSwgZmFNdWx0aXBseSwgZmFSZW1vdmUsIGZhVGltZXMsIGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0LCBmYUFycm93cywgZmFDaGFsa2JvYXJkVXNlciwgZmFDaGFsa2JvYXJkVGVhY2hlciwgZmFQZXNvU2lnbiwgZmFCdWlsZGluZ1NoaWVsZCwgZmFCYWJ5LCBmYVVzZXJzTGluZSwgZmFRdW90ZUxlZnQsIGZhUXVvdGVMZWZ0QWx0LCBmYVRyYWN0b3IsIGZhVHJhc2hBcnJvd1VwLCBmYVRyYXNoUmVzdG9yZSwgZmFBcnJvd0Rvd25VcExvY2ssIGZhTGluZXNMZWFuaW5nLCBmYVJ1bGVyQ29tYmluZWQsIGZhQ29weXJpZ2h0LCBmYUVxdWFscywgZmFCbGVuZGVyLCBmYVRlZXRoLCBmYVNoZWtlbFNpZ24sIGZhSWxzLCBmYVNoZWtlbCwgZmFTaGVxZWwsIGZhU2hlcWVsU2lnbiwgZmFNYXAsIGZhUm9ja2V0LCBmYVBob3RvRmlsbSwgZmFQaG90b1ZpZGVvLCBmYUZvbGRlck1pbnVzLCBmYVN0b3JlLCBmYUFycm93VHJlbmRVcCwgZmFQbHVnQ2lyY2xlTWludXMsIGZhU2lnbkhhbmdpbmcsIGZhU2lnbiwgZmFCZXppZXJDdXJ2ZSwgZmFCZWxsU2xhc2gsIGZhVGFibGV0LCBmYVRhYmxldEFuZHJvaWQsIGZhU2Nob29sRmxhZywgZmFGaWxsLCBmYUFuZ2xlVXAsIGZhRHJ1bXN0aWNrQml0ZSwgZmFIb2xseUJlcnJ5LCBmYUNoZXZyb25MZWZ0LCBmYUJhY3RlcmlhLCBmYUhhbmRMaXphcmQsIGZhTm90ZGVmLCBmYURpc2Vhc2UsIGZhQnJpZWZjYXNlTWVkaWNhbCwgZmFHZW5kZXJsZXNzLCBmYUNoZXZyb25SaWdodCwgZmFSZXR3ZWV0LCBmYUNhclJlYXIsIGZhQ2FyQWx0LCBmYVB1bXBTb2FwLCBmYVZpZGVvU2xhc2gsIGZhQmF0dGVyeVF1YXJ0ZXIsIGZhQmF0dGVyeTIsIGZhUmFkaW8sIGZhQmFieUNhcnJpYWdlLCBmYUNhcnJpYWdlQmFieSwgZmFUcmFmZmljTGlnaHQsIGZhVGhlcm1vbWV0ZXIsIGZhVnJDYXJkYm9hcmQsIGZhSGFuZE1pZGRsZUZpbmdlciwgZmFQZXJjZW50LCBmYVBlcmNlbnRhZ2UsIGZhVHJ1Y2tNb3ZpbmcsIGZhR2xhc3NXYXRlckRyb3BsZXQsIGZhRGlzcGxheSwgZmFGYWNlU21pbGUsIGZhU21pbGUsIGZhVGh1bWJ0YWNrLCBmYVRodW1iVGFjaywgZmFUcm9waHksIGZhUGVyc29uUHJheWluZywgZmFQcmF5LCBmYUhhbW1lciwgZmFIYW5kUGVhY2UsIGZhUm90YXRlLCBmYVN5bmNBbHQsIGZhU3Bpbm5lciwgZmFSb2JvdCwgZmFQZWFjZSwgZmFHZWFycywgZmFDb2dzLCBmYVdhcmVob3VzZSwgZmFBcnJvd1VwUmlnaHREb3RzLCBmYVNwbG90Y2gsIGZhRmFjZUdyaW5IZWFydHMsIGZhR3JpbkhlYXJ0cywgZmFEaWNlRm91ciwgZmFTaW1DYXJkLCBmYVRyYW5zZ2VuZGVyLCBmYVRyYW5zZ2VuZGVyQWx0LCBmYU1lcmN1cnksIGZhQXJyb3dUdXJuRG93biwgZmFMZXZlbERvd24sIGZhUGVyc29uRmFsbGluZ0J1cnN0LCBmYUF3YXJkLCBmYVRpY2tldFNpbXBsZSwgZmFUaWNrZXRBbHQsIGZhQnVpbGRpbmcsIGZhQW5nbGVzTGVmdCwgZmFBbmdsZURvdWJsZUxlZnQsIGZhUXJjb2RlLCBmYUNsb2NrUm90YXRlTGVmdCwgZmFIaXN0b3J5LCBmYUZhY2VHcmluQmVhbVN3ZWF0LCBmYUdyaW5CZWFtU3dlYXQsIGZhRmlsZUV4cG9ydCwgZmFBcnJvd1JpZ2h0RnJvbUZpbGUsIGZhU2hpZWxkLCBmYVNoaWVsZEJsYW5rLCBmYUFycm93VXBTaG9ydFdpZGUsIGZhU29ydEFtb3VudFVwQWx0LCBmYUhvdXNlTWVkaWNhbCwgZmFHb2xmQmFsbFRlZSwgZmFHb2xmQmFsbCwgZmFDaXJjbGVDaGV2cm9uTGVmdCwgZmFDaGV2cm9uQ2lyY2xlTGVmdCwgZmFIb3VzZUNoaW1uZXlXaW5kb3csIGZhUGVuTmliLCBmYVRlbnRBcnJvd1R1cm5MZWZ0LCBmYVRlbnRzLCBmYVdhbmRNYWdpYywgZmFNYWdpYywgZmFEb2csIGZhQ2Fycm90LCBmYU1vb24sIGZhV2luZUdsYXNzRW1wdHksIGZhV2luZUdsYXNzQWx0LCBmYUNoZWVzZSwgZmFZaW5ZYW5nLCBmYU11c2ljLCBmYUNvZGVDb21taXQsIGZhVGVtcGVyYXR1cmVMb3csIGZhUGVyc29uQmlraW5nLCBmYUJpa2luZywgZmFCcm9vbSwgZmFTaGllbGRIZWFydCwgZmFHb3B1cmFtLCBmYUVhcnRoT2NlYW5pYSwgZmFHbG9iZU9jZWFuaWEsIGZhU3F1YXJlWG1hcmssIGZhVGltZXNTcXVhcmUsIGZhWG1hcmtTcXVhcmUsIGZhSGFzaHRhZywgZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyLCBmYUV4cGFuZEFsdCwgZmFPaWxDYW4sIGZhVCwgZmFIaXBwbywgZmFDaGFydENvbHVtbiwgZmFJbmZpbml0eSwgZmFWaWFsQ2lyY2xlQ2hlY2ssIGZhUGVyc29uQXJyb3dEb3duVG9MaW5lLCBmYVZvaWNlbWFpbCwgZmFGYW4sIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsIGZhVXBEb3duLCBmYUFycm93c0FsdFYsIGZhQ2xvdWRNb29uUmFpbiwgZmFDYWxlbmRhciwgZmFUcmFpbGVyLCBmYUJhaGFpLCBmYUhheWthbCwgZmFTZENhcmQsIGZhRHJhZ29uLCBmYVNob2VQcmludHMsIGZhQ2lyY2xlUGx1cywgZmFQbHVzQ2lyY2xlLCBmYUZhY2VHcmluVG9uZ3VlV2luaywgZmFHcmluVG9uZ3VlV2luaywgZmFIYW5kSG9sZGluZywgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24sIGZhTGlua1NsYXNoLCBmYUNoYWluQnJva2VuLCBmYUNoYWluU2xhc2gsIGZhVW5saW5rLCBmYUNsb25lLCBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0LCBmYUFycm93VXBaQSwgZmFTb3J0QWxwaGFVcEFsdCwgZmFGaXJlRmxhbWVDdXJ2ZWQsIGZhRmlyZUFsdCwgZmFUb3JuYWRvLCBmYUZpbGVDaXJjbGVQbHVzLCBmYUJvb2tRdXJhbiwgZmFRdXJhbiwgZmFBbmNob3IsIGZhQm9yZGVyQWxsLCBmYUZhY2VBbmdyeSwgZmFBbmdyeSwgZmFDb29raWVCaXRlLCBmYUFycm93VHJlbmREb3duLCBmYVJzcywgZmFGZWVkLCBmYURyYXdQb2x5Z29uLCBmYVNjYWxlQmFsYW5jZWQsIGZhQmFsYW5jZVNjYWxlLCBmYUdhdWdlU2ltcGxlSGlnaCwgZmFUYWNob21ldGVyLCBmYVRhY2hvbWV0ZXJGYXN0LCBmYVNob3dlciwgZmFEZXNrdG9wLCBmYURlc2t0b3BBbHQsIGZhTSwgZmFUYWJsZUxpc3QsIGZhVGhMaXN0LCBmYUNvbW1lbnRTbXMsIGZhU21zLCBmYUJvb2ssIGZhVXNlclBsdXMsIGZhQ2hlY2ssIGZhQmF0dGVyeVRocmVlUXVhcnRlcnMsIGZhQmF0dGVyeTQsIGZhSG91c2VDaXJjbGVDaGVjaywgZmFBbmdsZUxlZnQsIGZhRGlhZ3JhbVN1Y2Nlc3NvciwgZmFUcnVja0Fycm93UmlnaHQsIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsIGZhSGFuZEZpc3QsIGZhRmlzdFJhaXNlZCwgZmFDbG91ZE1vb24sIGZhQnJpZWZjYXNlLCBmYVBlcnNvbkZhbGxpbmcsIGZhSW1hZ2VQb3J0cmFpdCwgZmFQb3J0cmFpdCwgZmFVc2VyVGFnLCBmYVJ1ZywgZmFFYXJ0aEV1cm9wZSwgZmFHbG9iZUV1cm9wZSwgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlLCBmYUx1Z2dhZ2VDYXJ0LCBmYVJlY3RhbmdsZVhtYXJrLCBmYVJlY3RhbmdsZVRpbWVzLCBmYVRpbWVzUmVjdGFuZ2xlLCBmYVdpbmRvd0Nsb3NlLCBmYUJhaHRTaWduLCBmYUJvb2tPcGVuLCBmYUJvb2tKb3VybmFsV2hpbGxzLCBmYUpvdXJuYWxXaGlsbHMsIGZhSGFuZGN1ZmZzLCBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sIGZhRXhjbGFtYXRpb25UcmlhbmdsZSwgZmFXYXJuaW5nLCBmYURhdGFiYXNlLCBmYVNoYXJlLCBmYU1haWxGb3J3YXJkLCBmYUJvdHRsZURyb3BsZXQsIGZhTWFza0ZhY2UsIGZhSGlsbFJvY2tzbGlkZSwgZmFSaWdodExlZnQsIGZhRXhjaGFuZ2VBbHQsIGZhUGFwZXJQbGFuZSwgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sIGZhRHVuZ2VvbiwgZmFBbGlnblJpZ2h0LCBmYU1vbmV5QmlsbDFXYXZlLCBmYU1vbmV5QmlsbFdhdmVBbHQsIGZhTGlmZVJpbmcsIGZhSGFuZHMsIGZhU2lnbkxhbmd1YWdlLCBmYVNpZ25pbmcsIGZhQ2FsZW5kYXJEYXksIGZhV2F0ZXJMYWRkZXIsIGZhTGFkZGVyV2F0ZXIsIGZhU3dpbW1pbmdQb29sLCBmYUFycm93c1VwRG93biwgZmFBcnJvd3NWLCBmYUZhY2VHcmltYWNlLCBmYUdyaW1hY2UsIGZhV2hlZWxjaGFpck1vdmUsIGZhV2hlZWxjaGFpckFsdCwgZmFUdXJuRG93biwgZmFMZXZlbERvd25BbHQsIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsIGZhU3F1YXJlRW52ZWxvcGUsIGZhRW52ZWxvcGVTcXVhcmUsIGZhRGljZSwgZmFCb3dsaW5nQmFsbCwgZmFCcmFpbiwgZmFCYW5kYWdlLCBmYUJhbmRBaWQsIGZhQ2FsZW5kYXJNaW51cywgZmFDaXJjbGVYbWFyaywgZmFUaW1lc0NpcmNsZSwgZmFYbWFya0NpcmNsZSwgZmFHaWZ0cywgZmFIb3RlbCwgZmFFYXJ0aEFzaWEsIGZhR2xvYmVBc2lhLCBmYUlkQ2FyZENsaXAsIGZhSWRDYXJkQWx0LCBmYU1hZ25pZnlpbmdHbGFzc1BsdXMsIGZhU2VhcmNoUGx1cywgZmFUaHVtYnNVcCwgZmFVc2VyQ2xvY2ssIGZhSGFuZERvdHMsIGZhQWxsZXJnaWVzLCBmYUZpbGVJbnZvaWNlLCBmYVdpbmRvd01pbmltaXplLCBmYU11Z1NhdWNlciwgZmFDb2ZmZWUsIGZhQnJ1c2gsIGZhTWFzaywgZmFNYWduaWZ5aW5nR2xhc3NNaW51cywgZmFTZWFyY2hNaW51cywgZmFSdWxlclZlcnRpY2FsLCBmYVVzZXJMYXJnZSwgZmFVc2VyQWx0LCBmYVRyYWluVHJhbSwgZmFVc2VyTnVyc2UsIGZhU3lyaW5nZSwgZmFDbG91ZFN1biwgZmFTdG9wd2F0Y2gyMCwgZmFTcXVhcmVGdWxsLCBmYU1hZ25ldCwgZmFKYXIsIGZhTm90ZVN0aWNreSwgZmFTdGlja3lOb3RlLCBmYUJ1Z1NsYXNoLCBmYUFycm93VXBGcm9tV2F0ZXJQdW1wLCBmYUJvbmUsIGZhVGFibGVDZWxsc1Jvd1VubG9jaywgZmFVc2VySW5qdXJlZCwgZmFGYWNlU2FkVGVhciwgZmFTYWRUZWFyLCBmYVBsYW5lLCBmYVRlbnRBcnJvd3NEb3duLCBmYUV4Y2xhbWF0aW9uLCBmYUFycm93c1NwaW4sIGZhUHJpbnQsIGZhVHVya2lzaExpcmFTaWduLCBmYVRyeSwgZmFUdXJraXNoTGlyYSwgZmFEb2xsYXJTaWduLCBmYURvbGxhciwgZmFVc2QsIGZhWCwgZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIsIGZhU2VhcmNoRG9sbGFyLCBmYVVzZXJzR2VhciwgZmFVc2Vyc0NvZywgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nLCBmYUJ1aWxkaW5nQ29sdW1ucywgZmFCYW5rLCBmYUluc3RpdHV0aW9uLCBmYU11c2V1bSwgZmFVbml2ZXJzaXR5LCBmYVVtYnJlbGxhLCBmYVRyb3dlbCwgZmFELCBmYVN0YXBsZXIsIGZhTWFza3NUaGVhdGVyLCBmYVRoZWF0ZXJNYXNrcywgZmFLaXBTaWduLCBmYUhhbmRQb2ludExlZnQsIGZhSGFuZHNoYWtlU2ltcGxlLCBmYUhhbmRzaGFrZUFsdCwgZmFKZXRGaWdodGVyLCBmYUZpZ2h0ZXJKZXQsIGZhU3F1YXJlU2hhcmVOb2RlcywgZmFTaGFyZUFsdFNxdWFyZSwgZmFCYXJjb2RlLCBmYVBsdXNNaW51cywgZmFWaWRlbywgZmFWaWRlb0NhbWVyYSwgZmFHcmFkdWF0aW9uQ2FwLCBmYU1vcnRhckJvYXJkLCBmYUhhbmRIb2xkaW5nTWVkaWNhbCwgZmFQZXJzb25DaXJjbGVDaGVjaywgZmFUdXJuVXAsIGZhTGV2ZWxVcEFsdCB9O1xuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5pbXBvcnQgeyBHcm91cEVsZW1lbnQsIEdyb3VwaW5nLCBHcm91cGluZ3MsIExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0IH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VJbnRlcm5pbmcgfSBmcm9tIFwidWkvaG9va3NcIjtcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSBcInByZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgVk5vZGUsIGlzVmFsaWRFbGVtZW50IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgQ29udHJvbGxlZFBhZ2VyLCB1c2VEYXRhY29yZVBhZ2luZyB9IGZyb20gXCIuL3BhZ2luZ1wiO1xuXG5pbXBvcnQgXCIuL3RhYmxlLmNzc1wiO1xuaW1wb3J0IHsgRWRpdGFibGUsIEVkaXRhYmxlQWN0aW9uLCB1c2VFZGl0YWJsZURpc3BhdGNoIH0gZnJvbSBcInVpL2ZpZWxkcy9lZGl0YWJsZVwiO1xuaW1wb3J0IHsgZmFTb3J0RG93biwgZmFTb3J0VXAsIGZhU29ydCB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWVcIjtcblxuLyoqIEEgc2ltcGxlIGNvbHVtbiBkZWZpbml0aW9uIHdoaWNoIGFsbG93cyBmb3IgY3VzdG9tIHJlbmRlcmVycyBhbmQgdGl0bGVzLlxuICogQGdyb3VwIFByb3BzXG4gKiBAdHlwZVBhcmFtIFQgLSB0aGUgdHlwZSBvZiBlYWNoIHJvd1xuICogQHR5cGVQYXJhbSBWIC0gdGhlIHR5cGUgb2YgdGhlIHZhbHVlIGluIHRoaXMgY29sdW1uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFuaWxsYUNvbHVtbjxULCBWID0gTGl0ZXJhbD4ge1xuICAgIC8qKiBUaGUgdW5pcXVlIElEIG9mIHRoaXMgdGFibGUgY29sdW1uOyB5b3UgY2Fubm90IGhhdmUgbXVsdGlwbGUgY29sdW1ucyB3aXRoIHRoZSBzYW1lIElEIGluIGEgZ2l2ZW4gdGFibGUuICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBUaGUgdGl0bGUgd2hpY2ggd2lsbCBkaXNwbGF5IGF0IHRoZSB0b3Agb2YgdGhlIGNvbHVtbiBpZiBwcmVzZW50LiAqL1xuICAgIHRpdGxlPzogc3RyaW5nIHwgVk5vZGUgfCAoKCkgPT4gc3RyaW5nIHwgVk5vZGUpO1xuXG4gICAgLyoqIElmIHByZXNlbnQsIHRoZSBDU1Mgd2lkdGggdG8gYXBwbHkgdG8gdGhlIGNvbHVtbi4gJ21pbmltdW0nIHdpbGwgc2V0IHRoZSBjb2x1bW4gc2l6ZSB0byBpdCdzIHNtYWxsZXN0IHBvc3NpYmxlIHZhbHVlLCB3aGlsZSAnbWF4aW11bScgd2lsbCBkbyB0aGUgb3Bwb3NpdGUuICovXG4gICAgd2lkdGg/OiBcIm1pbmltdW1cIiB8IFwibWF4aW11bVwiIHwgc3RyaW5nO1xuXG4gICAgLyoqIFZhbHVlIGZ1bmN0aW9uIHdoaWNoIG1hcHMgdGhlIHJvdyB0byB0aGUgdmFsdWUgYmVpbmcgcmVuZGVyZWQuICovXG4gICAgdmFsdWU6IChvYmplY3Q6IFQpID0+IFY7XG5cbiAgICAvKiogQ2FsbGVkIHRvIHJlbmRlciB0aGUgZ2l2ZW4gY29sdW1uIHZhbHVlLiBDYW4gZGVwZW5kIG9uIGJvdGggdGhlIHNwZWNpZmljIHZhbHVlIGFuZCB0aGUgcm93IG9iamVjdC4gKi9cbiAgICByZW5kZXI/OiAodmFsdWU6IFYsIG9iamVjdDogVCkgPT4gTGl0ZXJhbCB8IFZOb2RlO1xuXG4gICAgLyoqIHdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgZWRpdGFibGUgb3Igbm90ICovXG4gICAgZWRpdGFibGU/OiBib29sZWFuO1xuXG4gICAgLyoqIFJlbmRlcmVkIHdoZW4gZWRpdGluZyB0aGUgY29sdW1uICovXG4gICAgZWRpdG9yPzogKHZhbHVlOiBWLCBvYmplY3Q6IFQpID0+IEpTWC5FbGVtZW50O1xuXG4gICAgLyoqIENhbGxlZCB3aGVuIHRoZSBjb2x1bW4gdmFsdWUgdXBkYXRlcy4gKi9cbiAgICBvblVwZGF0ZT86ICh2YWx1ZTogViwgb2JqZWN0OiBUKSA9PiB1bmtub3duO1xufVxuXG4vKiogTWV0YWRhdGEgZm9yIGNvbmZpZ3VyaW5nIGhvdyBncm91cGluZ3MgaW4gdGhlIGRhdGEgc2hvdWxkIGJlIGhhbmRsZWQuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91cGluZ0NvbmZpZzxUPiB7XG4gICAgLyoqIEhvdyBhIGdyb3VwaW5nIHdpdGggdGhlIGdpdmVuIGtleSBhbmQgc2V0IG9mIHJvd3Mgc2hvdWxkIGJlIGhhbmRsZWQuICovXG4gICAgcmVuZGVyPzogKGtleTogTGl0ZXJhbCwgcm93czogR3JvdXBpbmc8VD4pID0+IExpdGVyYWwgfCBWTm9kZTtcbn1cblxuLyoqIEFsbCBhdmFpbGFibGUgcHJvcHMgZm9yIGEgdmFuaWxsYSB0YWJsZS5cbiAqIEBncm91cCBQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbmlsbGFUYWJsZVByb3BzPFQ+IHtcbiAgICAvKiogVGhlIGNvbHVtbnMgdG8gcmVuZGVyIGluIHRoZSB0YWJsZS4gKi9cbiAgICBjb2x1bW5zOiBWYW5pbGxhQ29sdW1uPFQ+W107XG5cbiAgICAvKiogVGhlIHJvd3MgdG8gcmVuZGVyOyBtYXkgcG90ZW50aWFsbHkgYmUgZ3JvdXBlZCBvciBqdXN0IGEgcGxhaW4gYXJyYXkuICovXG4gICAgcm93czogR3JvdXBpbmc8VD47XG5cbiAgICAvKiogQWxsb3dzIGZvciBncm91cGluZyBoZWFkZXIgY29sdW1ucyB0byBiZSBvdmVycmlkZGVuIHdpdGggY3VzdG9tIHJlbmRlcmluZy9sb2dpYy4gKi9cbiAgICBncm91cGluZ3M/OiBHcm91cGluZ0NvbmZpZzxUPiB8IEdyb3VwaW5nQ29uZmlnPFQ+W10gfCAoKGtleTogTGl0ZXJhbCwgcm93czogR3JvdXBpbmc8VD4pID0+IExpdGVyYWwgfCBWTm9kZSk7XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gYSBib29sZWFuIC0gZW5hYmxlcyBvciBkaXNhYmxlcyBwYWdpbmcuXG4gICAgICogSWYgc2V0IHRvIGEgbnVtYmVyLCBwYWdpbmcgd2lsbCBiZSBlbmFibGVkIHdpdGggdGhlIGdpdmVuIG51bWJlciBvZiByb3dzIHBlciBwYWdlLlxuICAgICAqL1xuICAgIHBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB2aWV3IHdpbGwgc2Nyb2xsIHRvIHRoZSB0b3AgYXV0b21hdGljYWxseSBvbiBwYWdlIGNoYW5nZXMuIElmIHRydWUsIHdpbGwgYWx3YXlzIHNjcm9sbCBvbiBwYWdlIGNoYW5nZXMuXG4gICAgICogSWYgYSBudW1iZXIsIHdpbGwgc2Nyb2xsIG9ubHkgaWYgdGhlIG51bWJlciBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgcGFnZSBzaXplLlxuICAgICAqKi9cbiAgICBzY3JvbGxPblBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG59XG5cbi8qKiBBIHNpbXBsZSB0YWJsZSB3aGljaCBzdXBwb3J0cyBncm91cGluZywgc29ydGluZywgcGFnaW5nLCBhbmQgY3VzdG9tIGNvbHVtbnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICogQHBhcmFtIHByb3BzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBWYW5pbGxhVGFibGU8VD4ocHJvcHM6IFZhbmlsbGFUYWJsZVByb3BzPFQ+KSB7XG4gICAgLy8gQ2FjaGUgY29sdW1ucyBieSByZWZlcmVuY2UgZXF1YWxpdHkgb2YgdGhlIHNwZWNpZmljIGNvbHVtbnMuIENvbHVtbnMgaGF2ZSB2YXJpb3VzIGZ1bmN0aW9uIHJlZmVyZW5jZXNcbiAgICAvLyBpbnNpZGUgdGhlbSBhbmQgc28gY2Fubm90IGJlIGNvbXBhcmVkIGJ5IHZhbHVlIGVxdWFsaXR5LlxuICAgIGNvbnN0IGNvbHVtbnMgPSB1c2VJbnRlcm5pbmcocHJvcHMuY29sdW1ucywgKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09IGJbaW5kZXhdKTtcbiAgICB9KTtcblxuICAgIC8vIENvdW50IHRvdGFsIGVsZW1lbnRzIGFuZCB0aGVuIHBhZ2UgYXBwcm9wcmlhdGVseS5cbiAgICBjb25zdCB0YWJsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdG90YWxFbGVtZW50cyA9IHVzZU1lbW8oKCkgPT4gR3JvdXBpbmdzLmNvdW50KHByb3BzLnJvd3MpLCBbcHJvcHMucm93c10pO1xuICAgIGNvbnN0IHBhZ2luZyA9IHVzZURhdGFjb3JlUGFnaW5nKHtcbiAgICAgICAgaW5pdGlhbFBhZ2U6IDAsXG4gICAgICAgIHBhZ2luZzogcHJvcHMucGFnaW5nLFxuICAgICAgICBzY3JvbGxPblBhZ2VDaGFuZ2U6IHByb3BzLnNjcm9sbE9uUGFnaW5nLFxuICAgICAgICBlbGVtZW50czogdG90YWxFbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVyOiB0YWJsZVJlZixcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhZ2VkUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAocGFnaW5nLmVuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm4gR3JvdXBpbmdzLnNsaWNlKHByb3BzLnJvd3MsIHBhZ2luZy5wYWdlICogcGFnaW5nLnBhZ2VTaXplLCAocGFnaW5nLnBhZ2UgKyAxKSAqIHBhZ2luZy5wYWdlU2l6ZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHByb3BzLnJvd3M7XG4gICAgfSwgW3BhZ2luZy5wYWdlLCBwYWdpbmcucGFnZVNpemUsIHBhZ2luZy5lbmFibGVkLCBwcm9wcy5yb3dzXSk7XG5cbiAgICBjb25zdCBncm91cGluZ3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5ncm91cGluZ3MpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmdyb3VwaW5ncykpIHJldHVybiBwcm9wcy5ncm91cGluZ3M7XG5cbiAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24ocHJvcHMuZ3JvdXBpbmdzKSkgcmV0dXJuIFt7IHJlbmRlcjogcHJvcHMuZ3JvdXBpbmdzIH1dO1xuICAgICAgICBlbHNlIHJldHVybiBbcHJvcHMuZ3JvdXBpbmdzXTtcbiAgICB9LCBbcHJvcHMuZ3JvdXBpbmdzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHJlZj17dGFibGVSZWZ9PlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2wpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VmFuaWxsYVRhYmxlSGVhZGVyQ2VsbCBjb2x1bW49e2NvbH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICB7cGFnZWRSb3dzLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8VmFuaWxsYVJvd0dyb3VwIGxldmVsPXswfSBncm91cGluZ3M9e2dyb3VwaW5nc30gY29sdW1ucz17Y29sdW1uc30gZWxlbWVudD17cm93fSAvPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIHtwYWdpbmcuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgPENvbnRyb2xsZWRQYWdlciBwYWdlPXtwYWdpbmcucGFnZX0gdG90YWxQYWdlcz17cGFnaW5nLnRvdGFsUGFnZXN9IHNldFBhZ2U9e3BhZ2luZy5zZXRQYWdlfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cblxuLyoqIEFuIGluZGl2aWR1YWwgY29sdW1uIGNlbGwgaW4gdGhlIHRhYmxlLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVmFuaWxsYVRhYmxlSGVhZGVyQ2VsbDxUPih7IGNvbHVtbiB9OiB7IGNvbHVtbjogVmFuaWxsYUNvbHVtbjxUPiB9KSB7XG4gICAgY29uc3QgaGVhZGVyOiBzdHJpbmcgfCBWTm9kZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbHVtbi50aXRsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5pZDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29sdW1uLnRpdGxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4udGl0bGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4udGl0bGU7XG4gICAgICAgIH1cbiAgICB9LCBbY29sdW1uLmlkLCBjb2x1bW4udGl0bGVdKTtcblxuICAgIGNvbnN0IHJlYWxXaWR0aCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IChjb2x1bW4ud2lkdGggPT09IFwibWluaW11bVwiID8gXCIxcHhcIiA6IGNvbHVtbi53aWR0aCA9PT0gXCJtYXhpbXVtXCIgPyBcImF1dG9cIiA6IGNvbHVtbi53aWR0aCksXG4gICAgICAgIFtjb2x1bW4ud2lkdGhdXG4gICAgKTtcblxuICAgIC8vIFdlIHVzZSBhbiBpbnRlcm5hbCBkaXYgdG8gYXZvaWQgZmxleCBtZXNzaW5nIHdpdGggdGhlIHRhYmxlIGxheW91dC5cbiAgICByZXR1cm4gKFxuICAgICAgICA8dGggd2lkdGg9e3JlYWxXaWR0aH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXRpdGxlXCI+e2hlYWRlcn08L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICApO1xufVxuXG4vKiogQSBncm91cGluZyBpbiB0aGUgdGFibGUsIG9yIGFuIGluZGl2aWR1YWwgcm93LlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVmFuaWxsYVJvd0dyb3VwPFQ+KHtcbiAgICBsZXZlbCxcbiAgICBjb2x1bW5zLFxuICAgIGVsZW1lbnQsXG4gICAgZ3JvdXBpbmdzLFxufToge1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgY29sdW1uczogVmFuaWxsYUNvbHVtbjxUPltdO1xuICAgIGVsZW1lbnQ6IFQgfCBHcm91cEVsZW1lbnQ8VD47XG4gICAgZ3JvdXBpbmdzPzogR3JvdXBpbmdDb25maWc8VD5bXTtcbn0pIHtcbiAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwaW5nQ29uZmlnID0gZ3JvdXBpbmdzID8gZ3JvdXBpbmdzW01hdGgubWluKGdyb3VwaW5ncy5sZW5ndGggLSAxLCBsZXZlbCldIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPFRhYmxlR3JvdXBIZWFkZXIgbGV2ZWw9e2xldmVsfSB2YWx1ZT17ZWxlbWVudH0gd2lkdGg9e2NvbHVtbnMubGVuZ3RofSBjb25maWc9e2dyb3VwaW5nQ29uZmlnfSAvPlxuICAgICAgICAgICAgICAgIHtlbGVtZW50LnJvd3MubWFwKChyb3cpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFZhbmlsbGFSb3dHcm91cCBsZXZlbD17bGV2ZWwgKyAxfSBjb2x1bW5zPXtjb2x1bW5zfSBlbGVtZW50PXtyb3d9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8VGFibGVSb3cgbGV2ZWw9e2xldmVsfSByb3c9e2VsZW1lbnR9IGNvbHVtbnM9e2NvbHVtbnN9IC8+O1xuICAgIH1cbn1cblxuLyoqIEEgaGVhZGVyIG9mIGEgZ3JvdXBlZCBzZXQgb2YgY29sdW1ucy5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhYmxlR3JvdXBIZWFkZXI8VD4oe1xuICAgIGxldmVsLFxuICAgIHZhbHVlLFxuICAgIHdpZHRoLFxuICAgIGNvbmZpZyxcbn06IHtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHZhbHVlOiBHcm91cEVsZW1lbnQ8VD47XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBjb25maWc/OiBHcm91cGluZ0NvbmZpZzxUPjtcbn0pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3QgcmF3UmVuZGVyYWJsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnPy5yZW5kZXIpIHJldHVybiBjb25maWcucmVuZGVyKHZhbHVlLmtleSwgdmFsdWUucm93cyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICA8TGl0IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17dHJ1ZX0gdmFsdWU9e3ZhbHVlLmtleX0gLz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgKTtcbiAgICB9LCBbY29uZmlnPy5yZW5kZXIsIHZhbHVlLmtleSwgdmFsdWUucm93c10pO1xuICAgIGNvbnN0IHJlbmRlcmFibGUgPSB1c2VBc0VsZW1lbnQocmF3UmVuZGVyYWJsZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICA8dGQgY29sU3Bhbj17d2lkdGh9PntyZW5kZXJhYmxlfTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgKTtcbn1cblxuLyoqIEEgc2luZ2xlIHJvdyBpbnNpZGUgdGhlIHRhYmxlLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGVSb3c8VD4oeyBsZXZlbCwgcm93LCBjb2x1bW5zIH06IHsgbGV2ZWw6IG51bWJlcjsgcm93OiBUOyBjb2x1bW5zOiBWYW5pbGxhQ29sdW1uPFQ+W10gfSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDx0ciBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1yb3dcIiBzdHlsZT17bGV2ZWwgPyBgcGFkZGluZy1sZWZ0OiAke2xldmVsICogNX1weGAgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2wpID0+IChcbiAgICAgICAgICAgICAgICA8VGFibGVSb3dDZWxsIHJvdz17cm93fSBjb2x1bW49e2NvbH0gLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L3RyPlxuICAgICk7XG59XG5cbi8qKiBBIHNpbmdsZSBjZWxsIGluc2lkZSBvZiBhIHJvdyBvZiB0aGUgdGFibGUuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZVJvd0NlbGw8VD4oeyByb3csIGNvbHVtbiB9OiB7IHJvdzogVDsgY29sdW1uOiBWYW5pbGxhQ29sdW1uPFQ+IH0pIHtcbiAgICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gY29sdW1uLnZhbHVlKHJvdyksIFtyb3csIGNvbHVtbi52YWx1ZV0pO1xuICAgIGNvbnN0IFtlZGl0YWJsZVN0YXRlLCBkaXNwYXRjaF0gPSB1c2VFZGl0YWJsZURpc3BhdGNoPHR5cGVvZiB2YWx1ZT4oe1xuICAgICAgICBjb250ZW50OiB2YWx1ZSxcbiAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgdXBkYXRlcjogKHYpID0+IGNvbHVtbi5vblVwZGF0ZSAmJiBjb2x1bW4ub25VcGRhdGUodiwgcm93KSxcbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJhYmxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChjb2x1bW4ucmVuZGVyKSB7XG4gICAgICAgICAgICBsZXQgciA9IGNvbHVtbi5yZW5kZXIoZWRpdGFibGVTdGF0ZS5jb250ZW50LCByb3cpO1xuICAgICAgICAgICAgaWYgKHIgJiYgdHlwZW9mIHIgPT0gXCJvYmplY3RcIiAmJiBcInByb3BzXCIgaW4gcikgcmV0dXJuIHsgLi4uciwgcHJvcHM6IHsgLi4uci5wcm9wcywgZGlzcGF0Y2ggfSB9O1xuICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gdmFsdWU7XG4gICAgfSwgW3JvdywgY29sdW1uLnJlbmRlciwgdmFsdWVdKTtcblxuICAgIGNvbnN0IHJlbmRlcmVkID0gdXNlQXNFbGVtZW50KHJlbmRlcmFibGUpO1xuXG4gICAgY29uc3QgRWRpdG9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBlO1xuICAgICAgICBpZiAoY29sdW1uLmVkaXRhYmxlICYmIGNvbHVtbi5lZGl0b3IpIGUgPSBjb2x1bW4uZWRpdG9yKGVkaXRhYmxlU3RhdGUuY29udGVudCwgcm93KTtcbiAgICAgICAgZWxzZSBlID0gbnVsbDtcbiAgICAgICAgaWYgKGUpIHJldHVybiB7IC4uLmUsIHByb3BzOiB7IC4uLmUucHJvcHMsIGRpc3BhdGNoIH0gfTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgfSwgW3JvdywgY29sdW1uLmVkaXRvciwgY29sdW1uLmVkaXRhYmxlLCB2YWx1ZV0pO1xuICAgIHJldHVybiAoXG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgb25EYmxDbGljaz17KCkgPT4gZGlzcGF0Y2goeyB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLCBuZXdWYWx1ZTogIWVkaXRhYmxlU3RhdGUuaXNFZGl0aW5nIH0pfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtY2VsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHtjb2x1bW4uZWRpdGFibGUgPyAoXG4gICAgICAgICAgICAgICAgPEVkaXRhYmxlPHR5cGVvZiB2YWx1ZT5cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFJlbmRlcj17cmVuZGVyZWR9XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvcj17RWRpdG9yfVxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2h9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlPXtlZGl0YWJsZVN0YXRlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIHJlbmRlcmVkXG4gICAgICAgICAgICApfVxuICAgICAgICA8L3RkPlxuICAgICk7XG59XG5cbi8qKiBFbnN1cmUgdGhhdCBhIGdpdmVuIGxpdGVyYWwgb3IgZWxlbWVudCBpbnB1dCBpcyByZW5kZXJlZCBhcyBhIEpTWC5FbGVtZW50LlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXNFbGVtZW50KGVsZW1lbnQ6IFZOb2RlIHwgTGl0ZXJhbCk6IFZOb2RlIHtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG5cbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQgYXMgVk5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gPExpdCBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSBpbmxpbmU9e3RydWV9IHZhbHVlPXtlbGVtZW50IGFzIGFueX0gLz47XG4gICAgICAgIH1cbiAgICB9LCBbZWxlbWVudF0pO1xufVxuLyoqIFByb3ZpZGVzIGEgc29ydCBidXR0b24gdGhhdCBoYXMgYSBjbGljayBoYW5kbGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNvcnRCdXR0b24oe1xuICAgIGRpcmVjdGlvbixcbiAgICBvbkNsaWNrLFxuICAgIGNsYXNzTmFtZSxcbn06IHtcbiAgICBkaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uO1xuICAgIG9uQ2xpY2s/OiAoZXZ0OiBNb3VzZUV2ZW50KSA9PiBhbnk7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSkge1xuICAgIGNvbnN0IGljb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBcImFzY2VuZGluZ1wiKSByZXR1cm4gZmFTb3J0RG93bjtcbiAgICAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09IFwiZGVzY2VuZGluZ1wiKSByZXR1cm4gZmFTb3J0VXA7XG4gICAgICAgIHJldHVybiBmYVNvcnQ7XG4gICAgfSwgW2RpcmVjdGlvbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBvbkNsaWNrPXtvbkNsaWNrfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ljb259IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8qKiBEZWZhdWx0IGNvbXBhcmF0b3IgZm9yIHNvcnRpbmcgb24gYSB0YWJsZSBjb2x1bW4uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9UQUJMRV9DT01QQVJBVE9SOiA8VD4oYTogTGl0ZXJhbCwgYjogTGl0ZXJhbCwgYW86IFQsIGJvOiBUKSA9PiBudW1iZXIgPSAoYSwgYiwgX2FvLCBfYm8pID0+XG4gICAgTGl0ZXJhbHMuY29tcGFyZShhLCBiKTtcblxuLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRhYmxlIEhvb2tzIC8vXG4vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgdHlwZSBUYWJsZUFjdGlvbiA9XG4gICAgfCB7IHR5cGU6IFwicmVzZXQtYWxsXCIgfVxuICAgIHwgeyB0eXBlOiBcInNldC1wYWdlXCI7IHBhZ2U6IG51bWJlciB9XG4gICAgfCB7IHR5cGU6IFwic29ydC1jb2x1bW5cIjsgY29sdW1uOiBzdHJpbmc7IGRpcmVjdGlvbj86IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIiB9O1xuXG5leHBvcnQgdHlwZSBTb3J0RGlyZWN0aW9uID0gXCJhc2NlbmRpbmdcIiB8IFwiZGVzY2VuZGluZ1wiO1xuXG4vKiogVGhlIHdheXMgdGhhdCB0aGUgdGFibGUgY2FuIGJlIHNvcnRlZC4gKi9cbmV4cG9ydCB0eXBlIFNvcnRPbiA9IHsgdHlwZTogXCJjb2x1bW5cIjsgaWQ6IHN0cmluZzsgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uIH07XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHZpZXdzXG4gKi9cbmltcG9ydCB7IFZOb2RlIH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tIFwicHJlYWN0L2NvbXBhdFwiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5cbmltcG9ydCBcIi4vY2FsbG91dC5jc3NcIjtcbmltcG9ydCB7IGNvbWJpbmVDbGFzc2VzIH0gZnJvbSBcIi4uL2Jhc2ljc1wiO1xuXG4vKiogR2VuZXJhbCBwcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhIGNhbGxvdXQuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxsb3V0UHJvcHMge1xuICAgIC8qKiBUaXRsZSBvZiB0aGUgY2FsbG91dC4gKi9cbiAgICB0aXRsZTogc3RyaW5nIHwgVk5vZGU7XG4gICAgLyoqIEFyYml0cmFyeSBpY29uIHRvIHNob3cgYXQgdGhlIGxlZnQgc2lkZSBvZiB0aGUgdGl0bGUgaW4gdGhlIGNhbGxvdXQuICovXG4gICAgaWNvbj86IFZOb2RlO1xuICAgIC8qKiBUaGUgdHlwZSBvZiB0aGUgY2FsbG91dC4gKi9cbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjYWxsb3V0IGlzIGNvbGxhcHNpYmxlIChkZWZhdWx0cyB0byB0cnVlKS4gKi9cbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG5cbiAgICAvKiogQ29udHJvbGxlZCBwcm9wIGZvciBzZXR0aW5nIHdoZXRoZXIgdGhlIGNhbGxvdXQgaXMgb3Blbi4gKi9cbiAgICBvcGVuOiBib29sZWFuO1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjYWxsb3V0IGlzIGluaXRpYWxseSBvcGVuIGlmIHVuY29udHJvbGxlZC4gKi9cbiAgICBpbml0aWFsT3Blbj86IGJvb2xlYW47XG4gICAgLyoqIENhbGxlZCB3aGVuZXZlciB0aGUgb3BlbiBzdGF0ZSBvZiB0aGUgY2FsbG91dCBjaGFuZ2VzIGR1ZSB0byB1c2VyIGFjdGlvbi4gKi9cbiAgICBvbk9wZW5DaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbi8qKiBTcGxpdHMgb24gYHw8c3R1ZmY+YC4gKi9cbmNvbnN0IE1FVEFEQVRBX1NQTElUX1JFR0VYID0gL1xcfCguKikvcztcblxuLyoqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICogQHBhcmFtIHByb3BzIHtAaW5oZXJpdERvYyBDYWxsb3V0UHJvcHN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYWxsb3V0KHtcbiAgICBjb2xsYXBzaWJsZSA9IHRydWUsXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgaW5pdGlhbE9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIHRpdGxlLFxuICAgIGljb24sXG4gICAgY2hpbGRyZW4sXG4gICAgdHlwZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPENhbGxvdXRQcm9wcz4pIHtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoaW5pdGlhbE9wZW4gPz8gdHJ1ZSwgb3BlblByb3AsIG9uT3BlbkNoYW5nZSk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgZGF0YS1jYWxsb3V0LW1ldGFkYXRhPXt0eXBlPy5zcGxpdChNRVRBREFUQV9TUExJVF9SRUdFWCk/LlsxXX1cbiAgICAgICAgICAgIGRhdGEtY2FsbG91dD17dHlwZT8uc3BsaXQoTUVUQURBVEFfU1BMSVRfUkVHRVgpPy5bMF19XG4gICAgICAgICAgICBkYXRhLWNhbGxvdXQtZm9sZD17b3BlbiA/IFwiK1wiIDogXCItXCJ9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFwiZGF0YWNvcmVcIiwgXCJjYWxsb3V0XCIsIGNvbGxhcHNpYmxlID8gXCJpcy1jb2xsYXBzaWJsZVwiIDogdW5kZWZpbmVkKX1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYWxsb3V0LXRpdGxlXCIgb25DbGljaz17KCkgPT4gY29sbGFwc2libGUgJiYgc2V0T3Blbighb3Blbil9PlxuICAgICAgICAgICAgICAgIHtpY29uICYmIDxkaXYgY2xhc3NOYW1lPVwiY2FsbG91dC1pY29uXCI+e2ljb259PC9kaXY+fVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FsbG91dC10aXRsZS1pbm5lclwiPnt0aXRsZX08L2Rpdj5cbiAgICAgICAgICAgICAgICB7Y29sbGFwc2libGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJjYWxsb3V0LWZvbGRcIiwgIW9wZW4gPyBcImlzLWNvbGxhcHNlZFwiIDogdW5kZWZpbmVkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIGx1Y2lkZS1jaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNiA5IDYgNiA2LTZcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge29wZW4gJiYgPGRpdiBjbGFzc05hbWU9XCJjYWxsb3V0LWNvbnRlbnRcIj57Y2hpbGRyZW59PC9kaXY+fVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5cbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBWTm9kZSB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5cbmltcG9ydCBcIi4vY2FyZHMuY3NzXCI7XG4vKipcbiAqIFByb3BzIGZvciB0aGUgY2FyZCBjb21wb25lbnRcbiAqXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXJkUHJvcHM8VD4ge1xuICAgIC8qKiB0aGUgYWN0dWFsIHZhbHVlIGhlbGQgaW4gdGhpcyBjYXJkLiAqL1xuICAgIHZhbHVlOiBUO1xuXG4gICAgLyoqIFRoZSB0aXRsZSBvZiB0aGUgY2FyZC4gKi9cbiAgICB0aXRsZTogTGl0ZXJhbCB8ICgodmFsOiBUKSA9PiBMaXRlcmFsIHwgVk5vZGUpO1xuXG4gICAgLyoqIFRoZSByYXcgY29udGVudCBvZiB0aGUgY2FyZC4gKi9cbiAgICBjb250ZW50OiBMaXRlcmFsIHwgKCh2YWw6IFQpID0+IExpdGVyYWwgfCBWTm9kZSk7XG5cbiAgICAvKiogb3B0aW9uYWwgZm9vdGVyIChiZWNhdXNlIHdoeSBub3Q/KSAqL1xuICAgIGZvb3Rlcj86IExpdGVyYWwgfCAoKHZhbDogVCkgPT4gTGl0ZXJhbCB8IFZOb2RlKTtcblxuICAgIC8qKiBJZiB0cnVlLCB0aGUgdGl0bGUgd2lsbCBiZSByZW5kZXJlZCBjZW50ZXJlZC4gKi9cbiAgICBjZW50ZXJUaXRsZT86IGJvb2xlYW47XG59XG4vKipcbiAqIEEgY2FyZCB3aXRoIGEgdGl0bGUgYW5kIGNvbnRlbnRcbiAqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FyZDxUPihwcm9wczogQ2FyZFByb3BzPFQ+KSB7XG4gICAgY29uc3QgY2FyZFRpdGxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcHMudGl0bGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRpdGxlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aXRsZTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZSwgcHJvcHMudGl0bGVdKTtcblxuICAgIGNvbnN0IGlubmVyQ29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHByb3BzLmNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHByb3BzLmNvbnRlbnQocHJvcHMudmFsdWUpO1xuICAgICAgICBlbHNlIHJldHVybiBwcm9wcy5jb250ZW50O1xuICAgIH0sIFtwcm9wcy52YWx1ZSwgcHJvcHMuY29udGVudF0pO1xuXG4gICAgY29uc3QgZm9vdGVyQ29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZm9vdGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcHMuZm9vdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuZm9vdGVyKHByb3BzLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmZvb3RlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LCBbcHJvcHMuZm9vdGVyLCBwcm9wcy52YWx1ZV0pO1xuXG4gICAgY29uc3QgdGl0bGVDbGFzc2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBiYXNlID0gW1wiZGF0YWNvcmUtY2FyZC10aXRsZVwiXTtcbiAgICAgICAgaWYgKHByb3BzLmNlbnRlclRpdGxlKSBiYXNlID0gYmFzZS5jb25jYXQoXCJjZW50ZXJlZFwiKTtcbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfSwgW3Byb3BzLmNlbnRlclRpdGxlLCBwcm9wcy50aXRsZSwgcHJvcHMuY29udGVudCwgcHJvcHMudmFsdWVdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtY2FyZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3RpdGxlQ2xhc3Nlcy5qb2luKFwiIFwiKX0+e2NhcmRUaXRsZX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtY2FyZC1pbm5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtY2FyZC1jb250ZW50XCI+e2lubmVyQ29udGVudH08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWNhcmQtZm9vdGVyXCI+e2Zvb3RlckNvbnRlbnR9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbmltcG9ydCB7IEdyb3VwaW5ncywgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8qKiBBIGZ1bmN0aW9uIHdoaWNoIG1hcHMgYW4gYXJyYXkgZWxlbWVudCB0byBzb21lIHZhbHVlLiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlGdW5jPFQsIE8+ID0gKGVsZW06IFQsIGluZGV4OiBudW1iZXIsIGFycjogVFtdKSA9PiBPO1xuXG4vKiogQSBmdW5jdGlvbiB3aGljaCBjb21wYXJlcyB0d28gdHlwZXMuICovXG5leHBvcnQgdHlwZSBBcnJheUNvbXBhcmF0b3I8VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG4vKiogRmluZHMgdGhlIHZhbHVlIG9mIHRoZSBsb3dlc3QgdmFsdWUgdHlwZSBpbiBhIGdyb3VwaW5nLiAqL1xuZXhwb3J0IHR5cGUgTG93ZXN0S2V5PFQ+ID0gVCBleHRlbmRzIHsga2V5OiBhbnk7IHJvd3M6IGFueSB9ID8gTG93ZXN0S2V5PFRbXCJyb3dzXCJdWzBdPiA6IFQ7XG5cbi8qKiBBIHJpZGljdWxvdXMgdHlwZSB3aGljaCBwcm9wZXJseSB0eXBlcyB0aGUgcmVzdWx0IG9mIHRoZSAnZ3JvdXBJbicgY29tbWFuZC4gKi9cbmV4cG9ydCB0eXBlIEluZ3JvdXBlZDxVLCBUPiA9IFQgZXh0ZW5kcyB7IGtleTogYW55OyByb3dzOiBhbnkgfVxuICAgID8geyBrZXk6IFRbXCJrZXlcIl07IHJvd3M6IEluZ3JvdXBlZDxVLCBUW1wicm93c1wiXVswXT4gfVxuICAgIDogeyBrZXk6IFU7IHJvd3M6IFRbXSB9O1xuXG4vKipcbiAqIFByb3hpZWQgaW50ZXJmYWNlIHdoaWNoIGFsbG93cyBtYW5pcHVsYXRpbmcgYXJyYXktYmFzZWQgZGF0YS4gQWxsIGZ1bmN0aW9ucyBvbiBhIGRhdGEgYXJyYXkgcHJvZHVjZSBhIE5FVyBhcnJheVxuICogKGkuZS4sIHRoZSBhcnJheXMgYXJlIGltbXV0YWJsZSkuXG4gKiBAZ3JvdXAgQ29tbW9uIFR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUFycmF5PFQ+IHtcbiAgICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuICovXG4gICAgbGVuZ3RoOiBudW1iZXI7XG5cbiAgICAvKiogQXBwbGllcyB0aGUgZ2l2ZW4gZnVuY3Rpb24gdG8gdGhlIGVudGlyZSBkYXRhIGFycmF5LiBBbGxvd3MgdXNpbmcgZnVuY3Rpb24gY2hhaW5pbmcgd2hpbGUgYXBwbHlpbmcgYW4gYXJiaXRyYXJ5IGludGVybWVkaWF0ZSBmdW5jdGlvbi4gKi9cbiAgICBjaGFpbjxVPihvcDogKGFycjogRGF0YUFycmF5PFQ+KSA9PiBEYXRhQXJyYXk8VT4pOiBEYXRhQXJyYXk8VT47XG5cbiAgICAvKiogRmlsdGVyIHRoZSBkYXRhIGFycmF5IGRvd24gdG8ganVzdCBlbGVtZW50cyB3aGljaCBtYXRjaCB0aGUgZ2l2ZW4gcHJlZGljYXRlLiAqL1xuICAgIHdoZXJlKHByZWRpY2F0ZTogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogRGF0YUFycmF5PFQ+O1xuICAgIC8qKiBBbGlhcyBmb3IgJ3doZXJlJyBmb3IgcGVvcGxlIHdobyB3YW50IGFycmF5IHNlbWFudGljcy4gKi9cbiAgICBmaWx0ZXIocHJlZGljYXRlOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBEYXRhQXJyYXk8VD47XG5cbiAgICAvKiogTWFwIGVsZW1lbnRzIGluIHRoZSBkYXRhIGFycmF5IGJ5IGFwcGx5aW5nIGEgZnVuY3Rpb24gdG8gZWFjaC4gKi9cbiAgICBtYXA8VT4oZjogQXJyYXlGdW5jPFQsIFU+KTogRGF0YUFycmF5PFU+O1xuICAgIC8qKiBNYXAgZWxlbWVudHMgaW4gdGhlIGRhdGEgYXJyYXkgYnkgYXBwbHlpbmcgYSBmdW5jdGlvbiB0byBlYWNoLCB0aGVuIGZsYXR0ZW4gdGhlIHJlc3VsdHMgdG8gcHJvZHVjZSBhIG5ldyBhcnJheS4gKi9cbiAgICBmbGF0TWFwPFU+KGY6IEFycmF5RnVuYzxULCBVW10+KTogRGF0YUFycmF5PFU+O1xuICAgIC8qKiBNdXRhYmx5IGNoYW5nZSBlYWNoIHZhbHVlIGluIHRoZSBhcnJheSwgcmV0dXJuaW5nIHRoZSBzYW1lIGFycmF5IHdoaWNoIHlvdSBjYW4gZnVydGhlciBjaGFpbiBvZmYgb2YuICovXG4gICAgbXV0YXRlKGY6IEFycmF5RnVuYzxULCB2b2lkPik6IERhdGFBcnJheTxUPjtcblxuICAgIC8qKiBMaW1pdCB0aGUgdG90YWwgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGFycmF5IHRvIHRoZSBnaXZlbiB2YWx1ZS4gKi9cbiAgICBsaW1pdChjb3VudDogbnVtYmVyKTogRGF0YUFycmF5PFQ+O1xuICAgIC8qKlxuICAgICAqIFRha2UgYSBzbGljZSBvZiB0aGUgYXJyYXkuIElmIGBzdGFydGAgaXMgdW5kZWZpbmVkLCBpdCBpcyBhc3N1bWVkIHRvIGJlIDA7IGlmIGBlbmRgIGlzIHVuZGVmaW5lZCwgaXQgaXMgYXNzdW1iZWRcbiAgICAgKiB0byBiZSB0aGUgZW5kIG9mIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICBzbGljZShzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogRGF0YUFycmF5PFQ+O1xuICAgIC8qKiBDb25jYXRlbmF0ZSB0aGUgdmFsdWVzIGluIHRoaXMgZGF0YSBhcnJheSB3aXRoIHRob3NlIG9mIGFub3RoZXIgaXRlcmFibGUgLyBkYXRhIGFycmF5IC8gYXJyYXkuICovXG4gICAgY29uY2F0KG90aGVyOiBJdGVyYWJsZTxUPik6IERhdGFBcnJheTxUPjtcblxuICAgIC8qKiBSZXR1cm4gdGhlIGZpcnN0IGluZGV4IG9mIHRoZSBnaXZlbiAob3B0aW9uYWxseSBzdGFydGluZyB0aGUgc2VhcmNoKSAqL1xuICAgIGluZGV4T2YoZWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyO1xuICAgIC8qKiBSZXR1cm4gdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBzYXRpc2ZpZXMgdGhlIGdpdmVuIHByZWRpY2F0ZS4gKi9cbiAgICBmaW5kKHByZWQ6IEFycmF5RnVuYzxULCBib29sZWFuPik6IFQgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgc2F0aXNmaWVzIHRoZSBnaXZlbiBwcmVkaWNhdGUuIFJldHVybnMgLTEgaWYgbm90aGluZyB3YXMgZm91bmQuICovXG4gICAgZmluZEluZGV4KHByZWQ6IEFycmF5RnVuYzxULCBib29sZWFuPiwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyO1xuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGFycmF5IGNvbnRhaW5zIHRoZSBnaXZlbiBlbGVtZW50LCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLiAqL1xuICAgIGluY2x1ZGVzKGVsZW1lbnQ6IFQpOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgc3RyaW5nIG9idGFpbmVkIGJ5IGNvbnZlcnRpbmcgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB0byBhIHN0cmluZywgYW5kIGpvaW5pbmcgaXQgd2l0aCB0aGVcbiAgICAgKiBnaXZlbiBzZXBhcmF0b3IgKHdoaWNoIGRlZmF1bHRzIHRvICcsICcpLlxuICAgICAqL1xuICAgIGpvaW4oc2VwPzogc3RyaW5nKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgc29ydGVkIGFycmF5IHNvcnRlZCBieSB0aGUgZ2l2ZW4ga2V5OyBhbiBvcHRpb25hbCBjb21wYXJhdG9yIGNhbiBiZSBwcm92aWRlZCwgd2hpY2ggd2lsbFxuICAgICAqIGJlIHVzZWQgdG8gY29tcGFyZSB0aGUga2V5cyBpbiBsZWl1IG9mIHRoZSBkZWZhdWx0IGRhdGF2aWV3IGNvbXBhcmF0b3IuXG4gICAgICovXG4gICAgc29ydDxVPihrZXk6IEFycmF5RnVuYzxULCBVPiwgZGlyZWN0aW9uPzogXCJhc2NcIiB8IFwiZGVzY1wiLCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PFQ+O1xuXG4gICAgLyoqXG4gICAgICogTXV0YWJseSBtb2RpZnkgdGhlIGN1cnJlbnQgYXJyYXkgd2l0aCBhbiBpbiBwbGFjZSBzb3J0OyB0aGlzIGlzIGxlc3MgZmxleGlibGUgdGhhbiBhIHJlZ3VsYXIgc29ydCBpbiBleGNoYW5nZVxuICAgICAqIGZvciBiZWluZyBhIGxpdHRsZSBtb3JlIHBlcmZvcm1hbnQuIE9ubHkgdXNlIHRoaXMgaXMgcGVyZm9ybWFuY2UgaXMgYSBzZXJpb3VzIGNvbnNpZGVyYXRpb24uXG4gICAgICovXG4gICAgc29ydEluUGxhY2U8VT4oa2V5OiAodjogVCkgPT4gVSwgZGlyZWN0aW9uPzogXCJhc2NcIiB8IFwiZGVzY1wiLCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PFQ+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGFuIGFycmF5IHdoZXJlIGVsZW1lbnRzIGFyZSBncm91cGVkIGJ5IHRoZSBnaXZlbiBrZXk7IHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBoYXZlIG9iamVjdHMgb2YgdGhlIGZvcm1cbiAgICAgKiBcXGB7IGtleTogXFw8a2V5IHZhbHVlXFw+LCByb3dzOiBEYXRhQXJyYXkgfWAuXG4gICAgICovXG4gICAgZ3JvdXBCeTxVPihrZXk6IEFycmF5RnVuYzxULCBVPiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTx7IGtleTogVTsgcm93czogVFtdIH0+O1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIGFycmF5IGlzIG5vdCBncm91cGVkLCBncm91cHMgaXQgYXMgYGdyb3VwQnlgIGRvZXM7IG90aGVyd2lzZSwgZ3JvdXBzIHRoZSBlbGVtZW50cyBpbnNpZGUgZWFjaCBjdXJyZW50XG4gICAgICogZ3JvdXAuIFRoaXMgYWxsb3dzIGZvciB0b3AtZG93biByZWN1cnNpdmUgZ3JvdXBpbmcgd2hpY2ggbWF5IGJlIGVhc2llciB0aGFuIGJvdHRvbS11cCBncm91cGluZy5cbiAgICAgKi9cbiAgICBncm91cEluPFU+KGtleTogQXJyYXlGdW5jPExvd2VzdEtleTxUPiwgVT4sIGNvbXBhcmF0b3I/OiBBcnJheUNvbXBhcmF0b3I8VT4pOiBEYXRhQXJyYXk8SW5ncm91cGVkPFUsIFQ+PjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBkaXN0aW5jdCBlbnRyaWVzLiBJZiBhIGtleSBpcyBwcm92aWRlZCwgdGhlbiByb3dzIHdpdGggZGlzdGluY3Qga2V5cyBhcmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgZGlzdGluY3Q8VT4oa2V5PzogQXJyYXlGdW5jPFQsIFU+LCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PFQ+O1xuXG4gICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBwcmVkaWNhdGUgaXMgdHJ1ZSBmb3IgYWxsIHZhbHVlcy4gKi9cbiAgICBldmVyeShmOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBib29sZWFuO1xuICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcHJlZGljYXRlIGlzIHRydWUgZm9yIGF0IGxlYXN0IG9uZSB2YWx1ZS4gKi9cbiAgICBzb21lKGY6IEFycmF5RnVuYzxULCBib29sZWFuPik6IGJvb2xlYW47XG4gICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBwcmVkaWNhdGUgaXMgRkFMU0UgZm9yIGFsbCB2YWx1ZXMuICovXG4gICAgbm9uZShmOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBib29sZWFuO1xuXG4gICAgLyoqIFJldHVybiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgZGF0YSBhcnJheS4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGFycmF5IGlzIGVtcHR5LiAqL1xuICAgIGZpcnN0KCk6IFQ7XG4gICAgLyoqIFJldHVybiB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBkYXRhIGFycmF5LiBSZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgYXJyYXkgaXMgZW1wdHkuICovXG4gICAgbGFzdCgpOiBUO1xuXG4gICAgLyoqIE1hcCBldmVyeSBlbGVtZW50IGluIHRoaXMgZGF0YSBhcnJheSB0byB0aGUgZ2l2ZW4ga2V5LCBhbmQgdGhlbiBmbGF0dGVuIGl0LiovXG4gICAgdG8oa2V5OiBzdHJpbmcpOiBEYXRhQXJyYXk8YW55PjtcbiAgICAvKiogTWFwIGV2ZXJ5IGVsZW1lbnQgaW4gdGhpcyBkYXRhIGFycmF5IHRvIHRoZSBnaXZlbiBrZXk7IHVubGlrZSB0bygpLCBkb2VzIG5vdCBmbGF0dGVuIHRoZSByZXN1bHQuICovXG4gICAgaW50byhrZXk6IHN0cmluZyk6IERhdGFBcnJheTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgZXhwYW5kIHRoZSBnaXZlbiBrZXksIGZsYXR0ZW5pbmcgYSB0cmVlIHN0cnVjdHVyZSBiYXNlZCBvbiB0aGUga2V5IGludG8gYSBmbGF0IGFycmF5LiBVc2VmdWwgZm9yIGhhbmRsaW5nXG4gICAgICogaGVpcmFyY2hpY2FsIGRhdGEgbGlrZSB0YXNrcyB3aXRoICdzdWJ0YXNrcycuXG4gICAgICovXG4gICAgZXhwYW5kKGtleTogc3RyaW5nKTogRGF0YUFycmF5PGFueT47XG5cbiAgICAvKiogUnVuIGEgbGFtYmRhIG9uIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuICovXG4gICAgZm9yRWFjaChmOiBBcnJheUZ1bmM8VCwgdm9pZD4pOiB2b2lkO1xuXG4gICAgLyoqIENvbnZlcnQgdGhpcyB0byBhIHBsYWluIGphdmFzY3JpcHQgYXJyYXkuICovXG4gICAgYXJyYXkoKTogVFtdO1xuXG4gICAgLyoqIEFsbG93IGl0ZXJhdGluZyBkaXJlY3RseSBvdmVyIHRoZSBhcnJheS4gKi9cbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxUPjtcblxuICAgIC8qKiBNYXAgaW5kZXhlcyB0byB2YWx1ZXMuICovXG4gICAgW2luZGV4OiBudW1iZXJdOiBhbnk7XG4gICAgLyoqIEF1dG9tYXRpYyBmbGF0dGVuaW5nIG9mIGZpZWxkcy4gRXF1aXZhbGVudCB0byBpbXBsaWNpdGx5IGNhbGxpbmcgYGFycmF5LnRvKFwiZmllbGRcIilgICovXG4gICAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAaGlkZGVuXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBEYXRhQXJyYXksIG1pbnVzIHRoZSBkeW5hbWljIHZhcmlhYmxlIGFjY2Vzcywgd2hpY2ggaXMgaW1wbGVtZW50ZWQgdmlhIHByb3h5LlxuICogKi9cbmNsYXNzIERhdGFBcnJheUltcGw8VD4gaW1wbGVtZW50cyBEYXRhQXJyYXk8VD4ge1xuICAgIHByaXZhdGUgc3RhdGljIEFSUkFZX0ZVTkNUSU9OUzogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgICAgICAgXCJjaGFpblwiLFxuICAgICAgICBcIndoZXJlXCIsXG4gICAgICAgIFwiZmlsdGVyXCIsXG4gICAgICAgIFwibWFwXCIsXG4gICAgICAgIFwiZmxhdE1hcFwiLFxuICAgICAgICBcIm11dGF0ZVwiLFxuICAgICAgICBcInNsaWNlXCIsXG4gICAgICAgIFwiY29uY2F0XCIsXG4gICAgICAgIFwiaW5kZXhPZlwiLFxuICAgICAgICBcImxpbWl0XCIsXG4gICAgICAgIFwiZmluZFwiLFxuICAgICAgICBcImZpbmRJbmRleFwiLFxuICAgICAgICBcImluY2x1ZGVzXCIsXG4gICAgICAgIFwiam9pblwiLFxuICAgICAgICBcInNvcnRcIixcbiAgICAgICAgXCJzb3J0SW5QbGFjZVwiLFxuICAgICAgICBcImdyb3VwQnlcIixcbiAgICAgICAgXCJncm91cEluXCIsXG4gICAgICAgIFwiZGlzdGluY3RcIixcbiAgICAgICAgXCJldmVyeVwiLFxuICAgICAgICBcInNvbWVcIixcbiAgICAgICAgXCJub25lXCIsXG4gICAgICAgIFwiZmlyc3RcIixcbiAgICAgICAgXCJsYXN0XCIsXG4gICAgICAgIFwidG9cIixcbiAgICAgICAgXCJpbnRvXCIsXG4gICAgICAgIFwibHdyYXBcIixcbiAgICAgICAgXCJleHBhbmRcIixcbiAgICAgICAgXCJmb3JFYWNoXCIsXG4gICAgICAgIFwibGVuZ3RoXCIsXG4gICAgICAgIFwidmFsdWVzXCIsXG4gICAgICAgIFwiYXJyYXlcIixcbiAgICAgICAgXCJkZWZhdWx0Q29tcGFyYXRvclwiLFxuICAgICAgICBcInRvU3RyaW5nXCIsXG4gICAgICAgIFwic2V0dGluZ3NcIixcbiAgICBdKTtcblxuICAgIHByaXZhdGUgc3RhdGljIEFSUkFZX1BST1hZOiBQcm94eUhhbmRsZXI8RGF0YUFycmF5SW1wbDxhbnk+PiA9IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBwcm9wLCByZWNpZXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSBcInN5bWJvbFwiKSByZXR1cm4gKHRhcmdldCBhcyBhbnkpW3Byb3BdO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3AgPT09IFwibnVtYmVyXCIpIHJldHVybiB0YXJnZXQudmFsdWVzW3Byb3BdO1xuICAgICAgICAgICAgZWxzZSBpZiAocHJvcCA9PT0gXCJjb25zdHJ1Y3RvclwiKSByZXR1cm4gdGFyZ2V0LnZhbHVlcy5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICAgIGVsc2UgaWYgKCFpc05hTihwYXJzZUludChwcm9wKSkpIHJldHVybiB0YXJnZXQudmFsdWVzW3BhcnNlSW50KHByb3ApXTtcbiAgICAgICAgICAgIGVsc2UgaWYgKERhdGFBcnJheUltcGwuQVJSQVlfRlVOQ1RJT05TLmhhcyhwcm9wLnRvU3RyaW5nKCkpKSByZXR1cm4gdGFyZ2V0W3Byb3AudG9TdHJpbmcoKV07XG5cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG8ocHJvcCk7XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgd3JhcDxUPihhcnI6IFRbXSwgZGVmYXVsdENvbXBhcmF0b3I6IEFycmF5Q29tcGFyYXRvcjxhbnk+ID0gTGl0ZXJhbHMuY29tcGFyZSk6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHk8RGF0YUFycmF5SW1wbDxUPj4obmV3IERhdGFBcnJheUltcGw8VD4oYXJyLCBkZWZhdWx0Q29tcGFyYXRvciksIERhdGFBcnJheUltcGwuQVJSQVlfUFJPWFkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZW5ndGg6IG51bWJlcjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZXM6IGFueVtdLCBwdWJsaWMgZGVmYXVsdENvbXBhcmF0b3I6IEFycmF5Q29tcGFyYXRvcjxhbnk+ID0gTGl0ZXJhbHMuY29tcGFyZSkge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsd3JhcDxVPih2YWx1ZXM6IFVbXSk6IERhdGFBcnJheTxVPiB7XG4gICAgICAgIHJldHVybiBEYXRhQXJyYXlJbXBsLndyYXAodmFsdWVzLCB0aGlzLmRlZmF1bHRDb21wYXJhdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhaW48VT4ob3A6IChhcnI6IERhdGFBcnJheTxUPikgPT4gRGF0YUFycmF5PFU+KTogRGF0YUFycmF5PFU+IHtcbiAgICAgICAgcmV0dXJuIG9wKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aGVyZShwcmVkaWNhdGU6IEFycmF5RnVuYzxULCBib29sZWFuPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHRoaXMudmFsdWVzLmZpbHRlcihwcmVkaWNhdGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2hlcmUocHJlZGljYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwPFU+KGY6IEFycmF5RnVuYzxULCBVPik6IERhdGFBcnJheTxVPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHRoaXMudmFsdWVzLm1hcChmKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZsYXRNYXA8VT4oZjogQXJyYXlGdW5jPFQsIFVbXT4pOiBEYXRhQXJyYXk8VT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gZih0aGlzLnZhbHVlc1tpbmRleF0sIGluZGV4LCB0aGlzLnZhbHVlcyk7XG4gICAgICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PSAwKSBjb250aW51ZTtcblxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiB2YWx1ZSkgcmVzdWx0LnB1c2gocik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcChyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtdXRhdGUoZjogQXJyYXlGdW5jPFQsIHZvaWQ+KTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgZih0aGlzLnZhbHVlc1tpbmRleF0sIGluZGV4LCB0aGlzLnZhbHVlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpbWl0KGNvdW50OiBudW1iZXIpOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcCh0aGlzLnZhbHVlcy5zbGljZSgwLCBjb3VudCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGljZShzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAodGhpcy52YWx1ZXMuc2xpY2Uoc3RhcnQsIGVuZCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25jYXQob3RoZXI6IERhdGFBcnJheTxUPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHRoaXMudmFsdWVzLmNvbmNhdChvdGhlci52YWx1ZXMpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIHRoZSBmaXJzdCBpbmRleCBvZiB0aGUgZ2l2ZW4gKG9wdGlvbmFsbHkgc3RhcnRpbmcgdGhlIHNlYXJjaCkgKi9cbiAgICBwdWJsaWMgaW5kZXhPZihlbGVtZW50OiBULCBmcm9tSW5kZXg/OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kSW5kZXgoKGUpID0+IHRoaXMuZGVmYXVsdENvbXBhcmF0b3IoZSwgZWxlbWVudCkgPT0gMCwgZnJvbUluZGV4KTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgc2F0aXNmaWVzIHRoZSBnaXZlbiBwcmVkaWNhdGUuICovXG4gICAgcHVibGljIGZpbmQocHJlZDogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuZmluZEluZGV4KHByZWQpO1xuICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMudmFsdWVzW2luZGV4XTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZEluZGV4KHByZWQ6IEFycmF5RnVuYzxULCBib29sZWFuPiwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSBmcm9tSW5kZXggPz8gMDsgaW5kZXggPCB0aGlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgaWYgKHByZWQodGhpcy52YWx1ZXNbaW5kZXhdLCBpbmRleCwgdGhpcy52YWx1ZXMpKSByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcHVibGljIGluY2x1ZGVzKGVsZW1lbnQ6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXhPZihlbGVtZW50LCAwKSAhPSAtMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgam9pbihzZXA/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAoKHMpID0+IExpdGVyYWxzLnRvU3RyaW5nKHMpKVxuICAgICAgICAgICAgLmFycmF5KClcbiAgICAgICAgICAgIC5qb2luKHNlcCA/PyBcIiwgXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0PFU+KGtleT86IEFycmF5RnVuYzxULCBVPiwgZGlyZWN0aW9uPzogXCJhc2NcIiB8IFwiZGVzY1wiLCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzLmxlbmd0aCA9PSAwKSByZXR1cm4gdGhpcztcbiAgICAgICAgbGV0IHJlYWxDb21wYXJhdG9yID0gY29tcGFyYXRvciA/PyB0aGlzLmRlZmF1bHRDb21wYXJhdG9yO1xuICAgICAgICBsZXQgcmVhbEtleSA9IGtleSA/PyAoKGw6IFQpID0+IGwgYXMgYW55IGFzIFUpO1xuXG4gICAgICAgIC8vIEFzc29jaWF0ZSBlYWNoIGVudHJ5IHdpdGggaXQncyBpbmRleCBmb3IgdGhlIGtleSBmdW5jdGlvbiwgYW5kIHRoZW4gZG8gYSBub3JtYWwgc29ydC5cbiAgICAgICAgbGV0IGNvcHkgPSAoW10gYXMgYW55W10pLmNvbmNhdCh0aGlzLmFycmF5KCkpLm1hcCgoZWxlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IGluZGV4OiBpbmRleCwgdmFsdWU6IGVsZW0gfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvcHkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgbGV0IGFLZXkgPSByZWFsS2V5KGEudmFsdWUsIGEuaW5kZXgsIHRoaXMudmFsdWVzKTtcbiAgICAgICAgICAgIGxldCBiS2V5ID0gcmVhbEtleShiLnZhbHVlLCBiLmluZGV4LCB0aGlzLnZhbHVlcyk7XG4gICAgICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBcImRlc2NcIiA/IC1yZWFsQ29tcGFyYXRvcihhS2V5LCBiS2V5KSA6IHJlYWxDb21wYXJhdG9yKGFLZXksIGJLZXkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcChjb3B5Lm1hcCgoZSkgPT4gZS52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0SW5QbGFjZTxVPihcbiAgICAgICAga2V5PzogKHZhbHVlOiBUKSA9PiBVLFxuICAgICAgICBkaXJlY3Rpb24/OiBcImFzY1wiIHwgXCJkZXNjXCIsXG4gICAgICAgIGNvbXBhcmF0b3I/OiBBcnJheUNvbXBhcmF0b3I8VT5cbiAgICApOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZXMubGVuZ3RoID09IDApIHJldHVybiB0aGlzO1xuICAgICAgICBsZXQgcmVhbENvbXBhcmF0b3IgPSBjb21wYXJhdG9yID8/IHRoaXMuZGVmYXVsdENvbXBhcmF0b3I7XG4gICAgICAgIGxldCByZWFsS2V5ID0ga2V5ID8/ICgobDogVCkgPT4gbCBhcyBhbnkgYXMgVSk7XG5cbiAgICAgICAgdGhpcy52YWx1ZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgbGV0IGFLZXkgPSByZWFsS2V5KGEpO1xuICAgICAgICAgICAgbGV0IGJLZXkgPSByZWFsS2V5KGIpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IFwiZGVzY1wiID8gLXJlYWxDb21wYXJhdG9yKGFLZXksIGJLZXkpIDogcmVhbENvbXBhcmF0b3IoYUtleSwgYktleSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBncm91cEJ5PFU+KGtleTogQXJyYXlGdW5jPFQsIFU+LCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PHsga2V5OiBVOyByb3dzOiBUW10gfT4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZXMubGVuZ3RoID09IDApIHJldHVybiB0aGlzLmx3cmFwKFtdKTtcblxuICAgICAgICAvLyBKYXZhU2NyaXB0IHN1Y2tzIGFuZCB3ZSBjYW4ndCBtYWtlIGhhc2ggbWFwcyBvdmVyIGFyYml0cmFyeSB0eXBlcyAob25seSBzdHJpbmdzL2ludHMpLCBzb1xuICAgICAgICAvLyB3ZSBkbyBhIHBvb3IgbWFuIGFsZ29yaXRobSB3aGVyZSB3ZSBTT1JULCBmb2xsb3dlZCBieSBncm91cGluZy5cbiAgICAgICAgbGV0IGludGVybWVkaWF0ZSA9IHRoaXMuc29ydChrZXksIFwiYXNjXCIsIGNvbXBhcmF0b3IpO1xuICAgICAgICBjb21wYXJhdG9yID0gY29tcGFyYXRvciA/PyB0aGlzLmRlZmF1bHRDb21wYXJhdG9yO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IHsga2V5OiBVOyByb3dzOiBUW10gfVtdID0gW107XG4gICAgICAgIGxldCBjdXJyZW50Um93ID0gW2ludGVybWVkaWF0ZVswXV07XG4gICAgICAgIGxldCBjdXJyZW50ID0ga2V5KGludGVybWVkaWF0ZVswXSwgMCwgaW50ZXJtZWRpYXRlLnZhbHVlcyk7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBpbnRlcm1lZGlhdGUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBsZXQgbmV3S2V5ID0ga2V5KGludGVybWVkaWF0ZVtpbmRleF0sIGluZGV4LCBpbnRlcm1lZGlhdGUudmFsdWVzKTtcbiAgICAgICAgICAgIGlmIChjb21wYXJhdG9yKGN1cnJlbnQsIG5ld0tleSkgIT0gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiBjdXJyZW50LCByb3dzOiBjdXJyZW50Um93IH0pO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXdLZXk7XG4gICAgICAgICAgICAgICAgY3VycmVudFJvdyA9IFtpbnRlcm1lZGlhdGVbaW5kZXhdXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFJvdy5wdXNoKGludGVybWVkaWF0ZVtpbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiBjdXJyZW50LCByb3dzOiBjdXJyZW50Um93IH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdyb3VwSW48VT4oa2V5OiBBcnJheUZ1bmM8TG93ZXN0S2V5PFQ+LCBVPiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxJbmdyb3VwZWQ8VSwgVD4+IHtcbiAgICAgICAgaWYgKEdyb3VwaW5ncy5pc0dyb3VwaW5nKHRoaXMudmFsdWVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiAodiBhcyBhbnkpLmtleSxcbiAgICAgICAgICAgICAgICAgICAgcm93czogRGF0YUFycmF5LndyYXAoKHYgYXMgYW55KS5yb3dzKS5ncm91cEluKGtleSBhcyBhbnksIGNvbXBhcmF0b3IgYXMgYW55KSxcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBCeShrZXkgYXMgYW55LCBjb21wYXJhdG9yKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzdGluY3Q8VT4oa2V5PzogQXJyYXlGdW5jPFQsIFU+LCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzLmxlbmd0aCA9PSAwKSByZXR1cm4gdGhpcztcbiAgICAgICAgbGV0IHJlYWxLZXkgPSBrZXkgPz8gKCh4KSA9PiB4IGFzIGFueSBhcyBVKTtcblxuICAgICAgICAvLyBGb3Igc2ltaWxhciByZWFzb25zIHRvIGdyb3VwQnksIGRvIGEgc29ydCBhbmQgdGFrZSB0aGUgZmlyc3QgZWxlbWVudCBvZiBlYWNoIGJsb2NrLlxuICAgICAgICBsZXQgaW50ZXJtZWRpYXRlID0gdGhpcy5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBrZXk6IHJlYWxLZXkoeCwgaW5kZXgsIHRoaXMudmFsdWVzKSwgdmFsdWU6IHggfTtcbiAgICAgICAgfSkuc29ydCgoeCkgPT4geC5rZXksIFwiYXNjXCIsIGNvbXBhcmF0b3IpO1xuICAgICAgICBjb21wYXJhdG9yID0gY29tcGFyYXRvciA/PyB0aGlzLmRlZmF1bHRDb21wYXJhdG9yO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IFRbXSA9IFtpbnRlcm1lZGlhdGVbMF0udmFsdWVdO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgaW50ZXJtZWRpYXRlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgaWYgKGNvbXBhcmF0b3IoaW50ZXJtZWRpYXRlW2luZGV4IC0gMV0ua2V5LCBpbnRlcm1lZGlhdGVbaW5kZXhdLmtleSkgIT0gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGludGVybWVkaWF0ZVtpbmRleF0udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXZlcnkoZjogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5ldmVyeShmKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29tZShmOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzLnNvbWUoZik7XG4gICAgfVxuXG4gICAgcHVibGljIG5vbmUoZjogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5ldmVyeSgodiwgaSwgYSkgPT4gIWYodiwgaSwgYSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaXJzdCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aCA+IDAgPyB0aGlzLnZhbHVlc1swXSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcHVibGljIGxhc3QoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNbdGhpcy52YWx1ZXMubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHRvKGtleTogc3RyaW5nKTogRGF0YUFycmF5PGFueT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLnZhbHVlcykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gY2hpbGRba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSBjb250aW51ZTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IERhdGFBcnJheS5pc0RhdGFBcnJheSh2YWx1ZSkpIHZhbHVlLmZvckVhY2goKHYpID0+IHJlc3VsdC5wdXNoKHYpKTtcbiAgICAgICAgICAgIGVsc2UgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW50byhrZXk6IHN0cmluZyk6IERhdGFBcnJheTxhbnk+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNoaWxkW2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgY29udGludWU7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZChrZXk6IHN0cmluZyk6IERhdGFBcnJheTxhbnk+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgcXVldWU6IGFueVtdID0gKFtdIGFzIGFueVtdKS5jb25jYXQodGhpcy52YWx1ZXMpO1xuXG4gICAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgbmV4dCA9IHF1ZXVlLnBvcCgpO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gbmV4dFtrZXldO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgY29udGludWU7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlLmZvckVhY2goKHYpID0+IHF1ZXVlLnB1c2godikpO1xuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRhQXJyYXlJbXBsKSB2YWx1ZS5mb3JFYWNoKCh2KSA9PiBxdWV1ZS5wdXNoKHYpKTtcbiAgICAgICAgICAgIGVsc2UgcXVldWUucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5leHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9yRWFjaChmOiBBcnJheUZ1bmM8VCwgdm9pZD4pIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgZih0aGlzLnZhbHVlc1tpbmRleF0sIGluZGV4LCB0aGlzLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXJyYXkoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIChbXSBhcyBhbnlbXSkuY29uY2F0KHRoaXMudmFsdWVzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmF0b3I8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXNbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJbXCIgKyB0aGlzLnZhbHVlcy5qb2luKFwiLCBcIikgKyBcIl1cIjtcbiAgICB9XG59XG5cbi8qKiBQcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyBkYXRhIGFycmF5cy5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBEYXRhQXJyYXkge1xuICAgIC8qKiBDcmVhdGUgYSBuZXcgRGF0YXZpZXcgZGF0YSBhcnJheS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gd3JhcDxUPihyYXc6IFRbXSB8IERhdGFBcnJheTxUPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIGlmIChpc0RhdGFBcnJheShyYXcpKSByZXR1cm4gcmF3O1xuICAgICAgICByZXR1cm4gRGF0YUFycmF5SW1wbC53cmFwKHJhdyk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIG5ldyBEYXRhQXJyYXkgZnJvbSBhbiBpdGVyYWJsZSBvYmplY3QuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZyb208VD4ocmF3OiBJdGVyYWJsZTxUPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIGlmIChpc0RhdGFBcnJheShyYXcpKSByZXR1cm4gcmF3O1xuXG4gICAgICAgIGxldCBkYXRhID0gW107XG4gICAgICAgIGZvciAobGV0IGVsZW0gb2YgcmF3KSBkYXRhLnB1c2goZWxlbSk7XG4gICAgICAgIHJldHVybiBEYXRhQXJyYXlJbXBsLndyYXAoZGF0YSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBkYXRhIGFycmF5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0RhdGFBcnJheShvYmo6IGFueSk6IG9iaiBpcyBEYXRhQXJyYXk8YW55PiB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRhQXJyYXlJbXBsO1xuICAgIH1cbn1cblxuLy8gQSBzY2FyeSBsb29raW5nIHBvbHlmaWxsLCBzdXJlLCBidXQgaXQgZml4ZXMgdXAgZGF0YSBhcnJheS9hcnJheSBpbnRlcm9wIGZvciB1cy5cbmNvbnN0IG9sZEFycmF5SXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5BcnJheS5pc0FycmF5ID0gKGFyZyk6IGFyZyBpcyBhbnlbXSA9PiB7XG4gICAgcmV0dXJuIG9sZEFycmF5SXNBcnJheShhcmcpIHx8IERhdGFBcnJheS5pc0RhdGFBcnJheShhcmcpO1xufTtcbiIsICIvKiogQGlnbm9yZSAqL1xuLy8hIFV0aWxpdGllcyBmb3IgZm9yY2luZyB0eXBlcyB0byBiZSBvZiBhIHNwZWNpZmljIHR5cGUgb3IgcmV0dXJuaW5nICd1bmRlZmluZWQnIGlmIG5vdCwgYWxsb3dpbmcgZm9yIG11Y2ggbW9yZSBjb25jaXNlIHR5cGluZy5cblxuaW1wb3J0IHsgTGluaywgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBQUklNSVRJVkVTIH0gZnJvbSBcImV4cHJlc3Npb24vcGFyc2VyXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IHJlbmRlck1pbmltYWxEYXRlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29lcmNlIHtcbiAgICAvKiogQ29lcmNlcyBjb21tb24gdHlwZXMgdG8gc3RyaW5nIG9yIG90aGVyd2lzZSB1bmRlZmluZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHN0cmluZyh2YWx1ZTogTGl0ZXJhbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSBMaXRlcmFscy53cmFwVmFsdWUodmFsdWUpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgc3dpdGNoICh3cmFwcGVkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIiArIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRGF0ZSh3cmFwcGVkLnZhbHVlLCBcInl5eXktTU0tZGRcIiwgXCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCIpO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIiArIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ29lcmNlcyBib29sZWFucyBhbmQgc3RyaW5nLWJvb2xlYW5zLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBib29sZWFuKHZhbHVlOiBMaXRlcmFsKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICAgICAgZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBDb2VyY2VzIG51bWJlcnMgYW5kIHN0cmluZ3MgdG8gbnVtYmVycy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbnVtYmVyKHZhbHVlOiBMaXRlcmFsKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHZhbHVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZWQpKSByZXR1cm4gcGFyc2VkO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQ29lcmNlcyBkYXRlcyBhbmQgc3RyaW5ncyBpbnRvIGRhdGVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBkYXRlKHZhbHVlOiBMaXRlcmFsKTogRGF0ZVRpbWUgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlVGltZSkgcmV0dXJuIHZhbHVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IFBSSU1JVElWRVMuZGF0ZVBsdXMucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZC5zdGF0dXMpIHJldHVybiBwYXJzZWQudmFsdWU7XG4gICAgICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBDb2VyY2VzIGR1cmF0aW9ucyBhbmQgc3RyaW5ncyBpbnRvIGR1cmF0aW9ucy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZHVyYXRpb24odmFsdWU6IExpdGVyYWwpOiBEdXJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIER1cmF0aW9uKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gUFJJTUlUSVZFUy5kdXJhdGlvbi5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLnN0YXR1cykgcmV0dXJuIHBhcnNlZC52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIENvZXJjZXMgbGlua3MgYW5kIHN0cmluZ3MgaW50byBsaW5rcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGluayh2YWx1ZTogTGl0ZXJhbCk6IExpbmsgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMaW5rKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gUFJJTUlUSVZFUy5lbWJlZExpbmsucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZC5zdGF0dXMpIHJldHVybiBwYXJzZWQudmFsdWU7XG4gICAgICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBDb2VyY2VzIGFueXRoaW5nIGludG8gYW4gYXJyYXksIGJ5IGNvbnZlcnRpbmcgbm9uLWFycmF5cyBpbnRvIHVuaXQgbGVuZ3RoIGFycmF5cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gYXJyYXkodmFsdWU6IExpdGVyYWwpOiBMaXRlcmFsW10gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gW3ZhbHVlXTtcbiAgICB9XG59XG4iLCAiLyoqIEEgcHJvbWlzZSB0aGF0IGNhbiBiZSByZXNvbHZlZCBkaXJlY3RseS4gKi9cbmV4cG9ydCB0eXBlIERlZmVycmVkPFQ+ID0gUHJvbWlzZTxUPiAmIHtcbiAgICByZXNvbHZlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG4gICAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZDtcbn07XG5cbi8qKiBDcmVhdGUgYSBuZXcgZGVmZXJyZWQgb2JqZWN0LCB3aGljaCBpcyBhIHJlc29sdmFibGUgcHJvbWlzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZlcnJlZDxUPigpOiBEZWZlcnJlZDxUPiB7XG4gICAgbGV0IHJlc29sdmU6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgICBsZXQgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZDtcblxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgcmVqZWN0ID0gcmVqO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmZXJyZWQgPSBwcm9taXNlIGFzIGFueSBhcyBEZWZlcnJlZDxUPjtcbiAgICBkZWZlcnJlZC5yZXNvbHZlID0gcmVzb2x2ZSE7XG4gICAgZGVmZXJyZWQucmVqZWN0ID0gcmVqZWN0ITtcblxuICAgIHJldHVybiBkZWZlcnJlZDtcbn1cbiIsICJpbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgRGF0YXN0b3JlIH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcIi4vcmVzdWx0XCI7XG5pbXBvcnQgeyBNYXJrZG93bkNvZGVibG9jaywgTWFya2Rvd25TZWN0aW9uIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBEZWZlcnJlZCwgZGVmZXJyZWQgfSBmcm9tIFwidXRpbHMvZGVmZXJyZWRcIjtcbmltcG9ydCB7IFNjcmlwdExhbmd1YWdlLCBhc3luY0V2YWxJbkNvbnRleHQsIHRyYW5zcGlsZSB9IGZyb20gXCJ1dGlscy9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBsaW5lUmFuZ2UgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwgaCB9IGZyb20gXCJwcmVhY3RcIjtcblxuLyoqIEEgc2NyaXB0IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGxvYWRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ1NjcmlwdCB7XG4gICAgdHlwZTogXCJsb2FkaW5nXCI7XG5cbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgcHJvbWlzZTogRGVmZXJyZWQ8UmVzdWx0PGFueSwgc3RyaW5nPj47XG59XG5cbi8qKiBBIHNjcmlwdCB0aGF0IGhhcyBzdWNjZXNzZnVsbHkgbG9hZGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkZWRTY3JpcHQge1xuICAgIHR5cGU6IFwibG9hZGVkXCI7XG5cbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgb2JqZWN0OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIERhdGFjb3JlU2NyaXB0ID0gTG9hZGluZ1NjcmlwdCB8IExvYWRlZFNjcmlwdDtcblxuLyoqIEEgc2ltcGxlIGNhY2hpbmcgc2NyaXB0IGxvYWRlciB0aGF0IGNhbiBsb2FkIGFueSBEQUcgb2Ygc2NyaXB0IGRlcGVuZGVuY2llcy4gKi9cbmV4cG9ydCBjbGFzcyBTY3JpcHRDYWNoZSB7XG4gICAgLyoqIEFsbCBvZiB0aGUgdGFncyB3ZSByZWNvZ25pemUgZm9yIHNjcmlwdHMuICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgU0NSSVBUX0xBTkdVQUdFUzogUmVjb3JkPHN0cmluZywgU2NyaXB0TGFuZ3VhZ2U+ID0ge1xuICAgICAgICBqczogXCJqc1wiLFxuICAgICAgICBqYXZhc2NyaXB0OiBcImpzXCIsXG4gICAgICAgIGRhdGFjb3JlanM6IFwianNcIixcbiAgICAgICAgdHlwZXNjcmlwdDogXCJ0c1wiLFxuICAgICAgICB0czogXCJ0c1wiLFxuICAgICAgICBkYXRhY29yZXRzOiBcInRzXCIsXG4gICAgICAgIGpzeDogXCJqc3hcIixcbiAgICAgICAgZGF0YWNvcmVqc3g6IFwianN4XCIsXG4gICAgICAgIHRzeDogXCJ0c3hcIixcbiAgICAgICAgZGF0YWNvcmV0c3g6IFwidHN4XCIsXG4gICAgfTtcblxuICAgIC8qKiBBbGwgb2YgdGhlIGRpcmVjdCBmaWxlIGV4dGVuc2lvbnMgd2UgY2FuIGxvYWQuICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgRklMRV9FWFRFTlNJT05TOiBSZWNvcmQ8c3RyaW5nLCBTY3JpcHRMYW5ndWFnZT4gPSB7XG4gICAgICAgIHRzeDogXCJ0c3hcIixcbiAgICAgICAganN4OiBcImpzeFwiLFxuICAgICAgICBqczogXCJqc1wiLFxuICAgICAgICB0czogXCJ0c1wiLFxuICAgIH07XG5cbiAgICAvKiogQ2FjaGVzIHNjcmlwdHMgYnkgZnVsbHkgcXVhbGlmaWVkIHBhdGguICovXG4gICAgcHVibGljIHNjcmlwdHM6IE1hcDxzdHJpbmcsIERhdGFjb3JlU2NyaXB0PiA9IG5ldyBNYXA8c3RyaW5nLCBEYXRhY29yZVNjcmlwdD4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBEYXRhc3RvcmUpIHt9XG5cbiAgICAvKiogTG9hZCB0aGUgZ2l2ZW4gc2NyaXB0IGF0IHRoZSBnaXZlbiBwYXRoLCByZWN1cnNpdmVseSBsb2FkaW5nIGFueSBzdWJzY3JpcHRzIGFzIHdlbGwuICAqL1xuICAgIHB1YmxpYyBhc3luYyBsb2FkKHBhdGg6IHN0cmluZyB8IExpbmssIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPFJlc3VsdDxhbnksIHN0cmluZz4+IHtcbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoZSBjYWNoZSBmaXJzdC5cbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5wYXRoa2V5KHBhdGgpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2NyaXB0ID0gdGhpcy5zY3JpcHRzLmdldChrZXkpO1xuICAgICAgICBpZiAoY3VycmVudFNjcmlwdCkge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRTY3JpcHQudHlwZSA9PT0gXCJsb2FkZWRcIikgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGN1cnJlbnRTY3JpcHQub2JqZWN0KTtcblxuICAgICAgICAgICAgLy8gVE9ETzogSWYgd2UgdHJ5IHRvIGxvYWQgYW4gYWxyZWFkeS1sb2FkaW5nIHNjcmlwdCwgd2UgYXJlIGFsbW9zdCBjZXJ0YWlubHkgZG9pbmcgc29tZXRoaW5nXG4gICAgICAgICAgICAvLyB3ZWlyZC4gRWl0aGVyIHRoZSBjYWxsZXIgaXMgbm90IGBhd2FpdGAtaW5nIHRoZSBsb2FkIGFuZCBsb2FkaW5nIG11bHRpcGxlIHRpbWVzLCBPUlxuICAgICAgICAgICAgLy8gd2UgYXJlIGluIGEgYHJlcXVpcmUoKWAgbG9vcC4gRWl0aGVyIHdheSwgd2UnbGwgZXJyb3Igb3V0IGZvciBub3cgc2luY2Ugd2UgY2FuJ3QgaGFuZGxlXG4gICAgICAgICAgICAvLyBlaXRoZXIgY2FzZSBjdXJyZW50bHkuXG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byBpbXBvcnQgc2NyaXB0IFwiJHtwYXRoLnRvU3RyaW5nKCl9XCIsIGFzIGl0IGlzIGluIHRoZSBtaWRkbGUgb2YgYmVpbmcgbG9hZGVkLiBEbyB5b3UgaGF2ZVxuICAgICAgICAgICAgICAgICBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgaW4geW91ciByZXF1aXJlKCkgY2FsbHM/IFRoZSBjdXJyZW50bHkgbG9hZGVkIG9yIGxvYWRpbmcgc2NyaXB0cyBhcmU6IFxuICAgICAgICAgICAgICAgICAke0FycmF5LmZyb20odGhpcy5zY3JpcHRzLnZhbHVlcygpKVxuICAgICAgICAgICAgICAgICAgICAgLm1hcCgoc2MpID0+IFwiXFx0XCIgKyBzYy5wYXRoKVxuICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIil9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhY2hlIGhhcyBtaXNzZWQsIHNvIGFkZCBvdXJzZWx2ZXMgdG8gdGhlIGNhY2hlIGFuZCB0cnkgYW5kIGxvYWQgaXQgZGlyZWN0bHkuXG4gICAgICAgIGNvbnN0IGRlZmVycmFsID0gZGVmZXJyZWQ8UmVzdWx0PGFueSwgc3RyaW5nPj4oKTtcbiAgICAgICAgdGhpcy5zY3JpcHRzLnNldChrZXksIHsgdHlwZTogXCJsb2FkaW5nXCIsIHByb21pc2U6IGRlZmVycmFsLCBwYXRoOiBrZXkgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5sb2FkVW5jYWNoZWQocGF0aCwgY29udGV4dCk7XG4gICAgICAgIGRlZmVycmFsLnJlc29sdmUocmVzdWx0KTtcblxuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5zZXQoa2V5LCB7IHR5cGU6IFwibG9hZGVkXCIsIHBhdGg6IGtleSwgb2JqZWN0OiByZXN1bHQudmFsdWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjcmlwdHMuZGVsZXRlKGtleSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBMb2FkIGEgc2NyaXB0LCBkaXJlY3RseSBieXBhc3NpbmcgdGhlIGNhY2hlLiAqL1xuICAgIHByaXZhdGUgYXN5bmMgbG9hZFVuY2FjaGVkKHBhdGg6IHN0cmluZyB8IExpbmssIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPFJlc3VsdDxhbnksIHN0cmluZz4+IHtcbiAgICAgICAgY29uc3QgbWF5YmVTb3VyY2UgPSBhd2FpdCB0aGlzLnJlc29sdmVTb3VyY2UocGF0aCk7XG4gICAgICAgIGlmICghbWF5YmVTb3VyY2Uuc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlU291cmNlO1xuXG4gICAgICAgIC8vIFRyYW5zcGlsZSB0byB2YW5pbGxhIGphdmFzY3JpcHQgZmlyc3QuLi5cbiAgICAgICAgY29uc3QgeyBjb2RlLCBsYW5ndWFnZSB9ID0gbWF5YmVTb3VyY2UudmFsdWU7XG4gICAgICAgIGxldCBiYXNpYztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGJhc2ljID0gdHJhbnNwaWxlKGNvZGUsIGxhbmd1YWdlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShgRmFpbGVkIHRvIGltcG9ydCAke3BhdGgudG9TdHJpbmcoKX0gd2hpbGUgdHJhbnNwaWxpbmcgZnJvbSAke2xhbmd1YWdlfTogJHtlcnJvcn1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZW4gZmluYWxseSBleGVjdXRlIHRoZSBzY3JpcHQgdG8gJ2xvYWQnIGl0LlxuICAgICAgICBjb25zdCBmaW5hbENvbnRleHQgPSBPYmplY3QuYXNzaWduKHsgaDogaCwgRnJhZ21lbnQ6IEZyYWdtZW50IH0sIGNvbnRleHQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGF3YWl0IGFzeW5jRXZhbEluQ29udGV4dChiYXNpYywgZmluYWxDb250ZXh0KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZhaWxlZCB0byBleGVjdXRlIHNjcmlwdCAnJHtwYXRoLnRvU3RyaW5nKCl9JzogJHtlcnJvcn1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBOb3JtYWxpemUgYSBwYXRoIG9yIGxpbmsgdG8gYSB0ZXh0dWFsIHBhdGguICovXG4gICAgcHJpdmF0ZSBwYXRoa2V5KHBhdGg6IHN0cmluZyB8IExpbmspOiBzdHJpbmcge1xuICAgICAgICBpZiAocGF0aCBpbnN0YW5jZW9mIExpbmspIHJldHVybiBwYXRoLm9ic2lkaWFuTGluaygpO1xuICAgICAgICBlbHNlIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIC8qKiBBdHRlbXB0cyB0byByZXNvbHZlIHRoZSBzb3VyY2UgdG8gbG9hZCBnaXZlbiBhIHBhdGggb3IgbGluayB0byBhIG1hcmtkb3duIHNlY3Rpb24uICovXG4gICAgcHJpdmF0ZSBhc3luYyByZXNvbHZlU291cmNlKFxuICAgICAgICBwYXRoOiBzdHJpbmcgfCBMaW5rXG4gICAgKTogUHJvbWlzZTxSZXN1bHQ8eyBjb2RlOiBzdHJpbmc7IGxhbmd1YWdlOiBTY3JpcHRMYW5ndWFnZSB9LCBzdHJpbmc+PiB7XG4gICAgICAgIGNvbnN0IG9iamVjdCA9IHRoaXMuc3RvcmUucmVzb2x2ZUxpbmsocGF0aCk7XG4gICAgICAgIGlmICghb2JqZWN0KSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoXCJDb3VsZCBub3QgZmluZCBhIHNjcmlwdCBhdCB0aGUgZ2l2ZW4gcGF0aDogXCIgKyBwYXRoLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGNvbnN0IHRmaWxlID0gdGhpcy5zdG9yZS52YXVsdC5nZXRGaWxlQnlQYXRoKG9iamVjdC4kZmlsZSEpO1xuICAgICAgICBpZiAoIXRmaWxlKSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZpbGUgXCIke29iamVjdC4kZmlsZX1cIiBub3QgZm91bmQuYCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIEpTIGZpbGUgd2Ugc2hvdWxkIGxvYWQgZGlyZWN0bHkuXG4gICAgICAgIGlmICh0ZmlsZS5leHRlbnNpb24udG9Mb2NhbGVMb3dlckNhc2UoKSBpbiBTY3JpcHRDYWNoZS5GSUxFX0VYVEVOU0lPTlMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gU2NyaXB0Q2FjaGUuRklMRV9FWFRFTlNJT05TW3RmaWxlLmV4dGVuc2lvbi50b0xvY2FsZUxvd2VyQ2FzZSgpXTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0gYXdhaXQgdGhpcy5zdG9yZS52YXVsdC5jYWNoZWRSZWFkKHRmaWxlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoeyBjb2RlLCBsYW5ndWFnZSB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFwiRmFpbGVkIHRvIGxvYWQgamF2YXNjcmlwdC90eXBlc2NyaXB0IHNvdXJjZSBmaWxlOiBcIiArIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSBvYmplY3QgaXMgYSBtYXJrZG93biBzZWN0aW9uLCBzZWFyY2ggZm9yIGFueSBqYXZhc2NyaXB0IGNvZGVibG9ja3M7IG90aGVyd2lzZSwgY2hlY2sgaWYgaXQgaXMgYSBmdWxsIHNjcmlwdCBmaWxlLlxuICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTWFya2Rvd25TZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBtYXliZUJsb2NrID0gb2JqZWN0LiRibG9ja3NcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChiKTogYiBpcyBNYXJrZG93bkNvZGVibG9jayA9PiBiLiR0eXBlID09PSBcImNvZGVibG9ja1wiKVxuICAgICAgICAgICAgICAgIC5maW5kKChjYikgPT5cbiAgICAgICAgICAgICAgICAgICAgY2IuJGxhbmd1YWdlcy5zb21lKChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UudG9Mb2NhbGVMb3dlckNhc2UoKSBpbiBTY3JpcHRDYWNoZS5TQ1JJUFRfTEFOR1VBR0VTKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICghbWF5YmVCbG9jaylcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoXCJDb3VsZCBub3QgZmluZCBhIHNjcmlwdCBpbiB0aGUgZ2l2ZW4gbWFya2Rvd24gc2VjdGlvbjogXCIgKyBwYXRoLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9XG4gICAgICAgICAgICAgICAgU2NyaXB0Q2FjaGUuU0NSSVBUX0xBTkdVQUdFU1tcbiAgICAgICAgICAgICAgICAgICAgbWF5YmVCbG9jay4kbGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcudG9Mb2NhbGVMb3dlckNhc2UoKSBpbiBTY3JpcHRDYWNoZS5TQ1JJUFRfTEFOR1VBR0VTKSFcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnJlYWRDb2RlYmxvY2sodGZpbGUsIG1heWJlQmxvY2spKS5tYXAoKGNvZGUpID0+ICh7IGNvZGUsIGxhbmd1YWdlIH0pKTtcbiAgICAgICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBNYXJrZG93bkNvZGVibG9jaykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVMYW5ndWFnZSA9IG9iamVjdC4kbGFuZ3VhZ2VzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGxhbmcpID0+IGxhbmcudG9Mb2NhbGVMb3dlckNhc2UoKSBpbiBTY3JpcHRDYWNoZS5TQ1JJUFRfTEFOR1VBR0VTXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCFtYXliZUxhbmd1YWdlKVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShgVGhlIGNvZGVibG9jayByZWZlcmVuY2VkIGJ5ICcke3BhdGh9JyBpcyBub3QgYSBKUy9UUyBjb2RlYmxvY2suYCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gU2NyaXB0Q2FjaGUuU0NSSVBUX0xBTkdVQUdFU1ttYXliZUxhbmd1YWdlXTtcbiAgICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5yZWFkQ29kZWJsb2NrKHRmaWxlLCBvYmplY3QpKS5tYXAoKGNvZGUpID0+ICh7IGNvZGUsIGxhbmd1YWdlIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShgQ2Fubm90IGltcG9ydCAnJHtwYXRoLnRvU3RyaW5nKCl9OiBub3QgYSBKUy9UUyBmaWxlIG9yIGNvZGVibG9jayByZWZlcmVuY2UuYCk7XG4gICAgfVxuXG4gICAgLyoqIFJlYWQgdGhlIGNvbnRlbnRzIG9mIGEgY29kZWJsb2NrIGZyb20gYSBmaWxlLiAqL1xuICAgIHByaXZhdGUgYXN5bmMgcmVhZENvZGVibG9jayhmaWxlOiBURmlsZSwgYmxvY2s6IE1hcmtkb3duQ29kZWJsb2NrKTogUHJvbWlzZTxSZXN1bHQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBsaW5lUmFuZ2UoXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zdG9yZS52YXVsdC5jYWNoZWRSZWFkKGZpbGUpLFxuICAgICAgICAgICAgICAgIGJsb2NrLiRjb250ZW50UG9zaXRpb24uc3RhcnQsXG4gICAgICAgICAgICAgICAgYmxvY2suJGNvbnRlbnRQb3NpdGlvbi5lbmRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChibG9jay4kc3R5bGUgPT09IFwiZmVuY2VkXCIpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyYXcpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgcmF3XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGxpbmUpID0+IGxpbmUudHJpbVN0YXJ0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZhaWxlZCB0byByZWFkIGEgY29kZWJsb2NrIGZyb20gJHtmaWxlLnBhdGh9OiAke2Vycm9yfWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IENoZWNrYm94LCBPbWl0dGFibGUsIFNsaWRlciwgU3dpdGNoIH0gZnJvbSBcImFwaS91aS9iYXNpY3NcIjtcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSBcImV4cHJlc3Npb24vZmllbGRcIjtcbmltcG9ydCB7IERpc3BhdGNoLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VGaW5hbGl6ZXIsIHVzZVNldEZpZWxkIH0gZnJvbSBcInV0aWxzL2ZpZWxkc1wiO1xuaW1wb3J0IHsgRWRpdGFibGVBY3Rpb24sIFVuY29udHJvbGxlZFRleHRFZGl0YWJsZSB9IGZyb20gXCIuL2VkaXRhYmxlXCI7XG5pbXBvcnQgU2VsZWN0IGZyb20gXCJyZWFjdC1zZWxlY3RcIjtcbmV4cG9ydCBmdW5jdGlvbiBGaWVsZENoZWNrYm94KFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgICAgZmllbGQ6IEZpZWxkO1xuICAgICAgICBkZWZhdWx0Q2hlY2tlZD86IGJvb2xlYW47XG4gICAgICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxGaWVsZD4+O1xuICAgIH0gJiBSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD5cbikge1xuICAgIGNvbnN0IHsgZmllbGQsIGRlZmF1bHRDaGVja2VkID0gZmFsc2UsIGRpc3BhdGNoLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8Q2hlY2tib3hcbiAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3VuZGVmaW5lZH1cbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXsoZmllbGQ/LnZhbHVlID8/IGRlZmF1bHRDaGVja2VkKSBhcyBib29sZWFufVxuICAgICAgICAgICAgb25DaGVja0NoYW5nZT17dXNlU2V0RmllbGQoZmllbGQsIChiKSA9PlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHsgLi4uZmllbGQsIHZhbHVlOiBiIH0gfSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBjaGVja2VkPXt1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEVkaXRhYmxlVGV4dEZpZWxkKHByb3BzOiB7XG4gICAgZmllbGQ6IEZpZWxkO1xuICAgIGlubGluZTogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZztcbiAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248c3RyaW5nPj47XG59KSB7XG4gICAgY29uc3QgeyBmaWVsZCwgZGVmYXVsdFZhbHVlID0gXCJcIiwgaW5saW5lLCBkaXNwYXRjaCB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRyb2xsZWRFZGl0YWJsZVRleHRGaWVsZFxuICAgICAgICAgICAgdGV4dD17KGZpZWxkPy52YWx1ZSA/PyBkZWZhdWx0VmFsdWUpIGFzIHN0cmluZ31cbiAgICAgICAgICAgIGlubGluZT17aW5saW5lfVxuICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAvPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVkRWRpdGFibGVUZXh0RmllbGQocHJvcHM6IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgaW5saW5lOiBib29sZWFuO1xuICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxzdHJpbmc+Pjtcbn0pIHtcbiAgICBjb25zdCB7IHRleHQsIGlubGluZSwgZGlzcGF0Y2ggfSA9IHByb3BzO1xuICAgIGNvbnN0IFt0ZXh0U3RhdGUsIHNldFRleHRdID0gdXNlU3RhdGUodGV4dCk7XG4gICAgY29uc3Qgb25JbnB1dCA9IGFzeW5jIChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHNldFRleHQoKGUuY3VycmVudFRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG5cbiAgICAgICAgaWYgKHByb3BzLmlubGluZSkge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXNlRmluYWxpemVyKHRleHRTdGF0ZSwgZGlzcGF0Y2gpKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiAmJiBlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXNlRmluYWxpemVyKHRleHRTdGF0ZSwgZGlzcGF0Y2gpKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiA8VW5jb250cm9sbGVkVGV4dEVkaXRhYmxlIHRleHQ9e3RleHR9IGlubGluZT17aW5saW5lfSBkaXNwYXRjaD17ZGlzcGF0Y2h9IG9uSW5wdXQ9e29uSW5wdXR9IC8+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRmllbGRTbGlkZXIoXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICAgIG1pbjogbnVtYmVyO1xuICAgICAgICBtYXg6IG51bWJlcjtcbiAgICAgICAgc3RlcDogbnVtYmVyO1xuICAgICAgICBkZWZhdWx0VmFsdWU6IG51bWJlcjtcbiAgICAgICAgZmllbGQ6IEZpZWxkO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248RmllbGQ+PjtcbiAgICB9ICYgT21pdDxSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD4sIE9taXR0YWJsZT5cbikge1xuICAgIGNvbnN0IHsgZmllbGQsIGRpc3BhdGNoLCBkZWZhdWx0VmFsdWUgPSAwLCBtaW4sIG1heCwgc3RlcCwgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgY29uc3QgdmFsdWUgPSAoZmllbGQ/LnZhbHVlID8/IGRlZmF1bHRWYWx1ZSkgYXMgbnVtYmVyO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxTbGlkZXJcbiAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIG1pbj17bWlufVxuICAgICAgICAgICAgbWF4PXttYXh9XG4gICAgICAgICAgICBzdGVwPXtzdGVwfVxuICAgICAgICAgICAgdmFsdWU9e3VuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9e3VzZVNldEZpZWxkKGZpZWxkLCAoYikgPT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsIG5ld1ZhbHVlOiB7IC4uLmZpZWxkLCB2YWx1ZTogYiB9IH0pXG4gICAgICAgICAgICApfVxuICAgICAgICAvPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWVsZFN3aXRjaChcbiAgICBwcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBib29sZWFuO1xuICAgICAgICBmaWVsZDogRmllbGQ7XG4gICAgICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxGaWVsZD4+O1xuICAgIH0gJiBPbWl0PFJlYWN0LkhUTUxQcm9wczxIVE1MSW5wdXRFbGVtZW50PiwgT21pdHRhYmxlPlxuKSB7XG4gICAgY29uc3QgeyBmaWVsZCwgZGlzcGF0Y2gsIGRlZmF1bHRWYWx1ZSA9IGZhbHNlLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgIG9uVG9nZ2xlQ2hhbmdlPXt1c2VTZXRGaWVsZChmaWVsZCwgKGIpID0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogeyAuLi5maWVsZCwgdmFsdWU6IGIgfSB9KVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXsoZmllbGQ/LnZhbHVlID8/IGRlZmF1bHRWYWx1ZSkgYXMgYm9vbGVhbn1cbiAgICAgICAgICAgIGNoZWNrZWQ9e3VuZGVmaW5lZH1cbiAgICAgICAgLz5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRmllbGRTZWxlY3Qoe1xuICAgIG11bHRpID0gZmFsc2UsXG4gICAgb3B0aW9ucyxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZmllbGQsXG4gICAgZGlzcGF0Y2gsXG59OiB7XG4gICAgbXVsdGk/OiBib29sZWFuO1xuICAgIGRlZmF1bHRWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgZmllbGQ6IEZpZWxkO1xuICAgIG9wdGlvbnM6IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W107XG4gICAgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPEZpZWxkPj47XG59KSB7XG4gICAgY29uc3QgaW5uZXJDYWxsYmFjayA9IHVzZVNldEZpZWxkKGZpZWxkLCAoYikgPT5cbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogeyAuLi5maWVsZCwgdmFsdWU6IGIgfSB9KVxuICAgICk7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5ld1ZhbHVlLm1hcCgoeCkgPT4geC52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBuZXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlubmVyQ2FsbGJhY2sobm9ybWFsaXplZCk7XG4gICAgICAgIH0sXG4gICAgICAgIFtmaWVsZCwgaW5uZXJDYWxsYmFja11cbiAgICApO1xuXG4gICAgY29uc3QgYXJyYXlWYWwgPSB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoQXJyYXkuaXNBcnJheShmaWVsZD8udmFsdWUpID8gZmllbGQudmFsdWUgOiAhIWZpZWxkID8gW2ZpZWxkLnZhbHVlXSA6IFtkZWZhdWx0VmFsdWVdKSxcbiAgICAgICAgW2ZpZWxkXVxuICAgICk7XG4gICAgY29uc3QgZGVmVmFsID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIG11bHRpXG4gICAgICAgICAgICAgICAgPyBvcHRpb25zLmZpbHRlcigoYSkgPT4gYXJyYXlWYWwuZmluZEluZGV4KChiKSA9PiBiID09IGEudmFsdWUpICE9IC0xKVxuICAgICAgICAgICAgICAgIDogb3B0aW9ucy5maW5kKChhKSA9PiBhLnZhbHVlID09IGZpZWxkPy52YWx1ZSksXG4gICAgICAgIFtvcHRpb25zLCBtdWx0aV1cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD1cImRhdGFjb3JlLXNlbGVjdGFibGVcIlxuICAgICAgICAgICAgb25DaGFuZ2U9eyhuKSA9PiBvbkNoYW5nZShuKX1cbiAgICAgICAgICAgIHVuc3R5bGVkXG4gICAgICAgICAgICBpc011bHRpPXttdWx0aSA/PyBmYWxzZX1cbiAgICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgICBtZW51UG9ydGFsVGFyZ2V0PXtkb2N1bWVudC5ib2R5fVxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZWYWx9XG4gICAgICAgICAgICBjbGFzc05hbWVzPXt7XG4gICAgICAgICAgICAgICAgaW5wdXQ6ICgpID0+IFwicHJvbXB0LWlucHV0XCIsXG4gICAgICAgICAgICAgICAgdmFsdWVDb250YWluZXI6ICgpID0+IFwic3VnZ2VzdGlvbi1pdGVtIHZhbHVlLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogKCkgPT4gXCJzdWdnZXN0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIG1lbnU6ICgpID0+IFwic3VnZ2VzdGlvbi1jb250ZW50IHN1Z2dlc3Rpb24tY29udGFpbmVyXCIsXG4gICAgICAgICAgICAgICAgb3B0aW9uOiAocHJvcHM6IGFueSkgPT4gYHN1Z2dlc3Rpb24taXRlbSR7cHJvcHMuaXNTZWxlY3RlZCA/IFwiIGlzLXNlbGVjdGVkXCIgOiBcIlwifWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICk7XG59XG4iLCAiaW1wb3J0IHsgR3JvdXBFbGVtZW50LCBHcm91cGluZywgR3JvdXBpbmdzLCBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IEdyb3VwaW5nQ29uZmlnLCB1c2VBc0VsZW1lbnQsIFZhbmlsbGFDb2x1bW4sIFZhbmlsbGFUYWJsZVByb3BzIH0gZnJvbSBcIi4vdGFibGVcIjtcbmltcG9ydCB7IHVzZUludGVybmluZywgdXNlU3RhYmxlQ2FsbGJhY2sgfSBmcm9tIFwidWkvaG9va3NcIjtcbmltcG9ydCB7IERpc3BhdGNoLCBSZWR1Y2VyLCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWR1Y2VyLCB1c2VSZWYgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBDb250cm9sbGVkUGFnZXIsIHVzZURhdGFjb3JlUGFnaW5nIH0gZnJvbSBcIi4vcGFnaW5nXCI7XG5pbXBvcnQgeyBERUZBVUxUX1RBQkxFX0NPTVBBUkFUT1IsIFNvcnRCdXR0b24sIFNvcnREaXJlY3Rpb24sIFNvcnRPbiB9IGZyb20gXCIuL3RhYmxlXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBjcmVhdGVDb250ZXh0LCBGcmFnbWVudCwgVk5vZGUgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0IH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5pbXBvcnQgeyBFZGl0YWJsZSwgdXNlRWRpdGFibGVEaXNwYXRjaCB9IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcbmltcG9ydCB7IGNvbWJpbmVDbGFzc2VzIH0gZnJvbSBcIi4uL2Jhc2ljc1wiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVUYWJsZVJvd0RhdGE8VD4ge1xuICAgIHZhbHVlOiBUO1xuICAgIGNoaWxkcmVuOiBUcmVlVGFibGVSb3dEYXRhPFQ+W107XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVHJlZVV0aWxzIHtcbiAgICBleHBvcnQgZnVuY3Rpb24gaXNUcmVlVGFibGVSb3dEYXRhPFQ+KGRhdGE6IGFueSk6IGRhdGEgaXMgVHJlZVRhYmxlUm93RGF0YTxUPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcImNoaWxkcmVuXCIgaW4gZGF0YSAmJlxuICAgICAgICAgICAgXCJ2YWx1ZVwiIGluIGRhdGEgJiZcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KGRhdGEpICYmXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5sZW5ndGggPT0gMiAmJlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShkYXRhLmNoaWxkcmVuKVxuICAgICAgICApO1xuICAgIH1cbiAgICBleHBvcnQgZnVuY3Rpb24gY291bnRJblRyZWVSb3c8VD4obm9kZTogVHJlZVRhYmxlUm93RGF0YTxUPiwgdG9wOiBib29sZWFuID0gdHJ1ZSk6IG51bWJlciB7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBpZiAoIXRvcCkgcmVzdWx0Kys7XG4gICAgICAgIGZvciAobGV0IG4gb2Ygbm9kZS5jaGlsZHJlbikgcmVzdWx0ICs9IGNvdW50SW5UcmVlUm93KG4sIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZXhwb3J0IGZ1bmN0aW9uIG9mQXJyYXk8VD4oc291cmNlOiBUW10sIGNoaWxkRm46IChlbDogVCkgPT4gVFtdKTogVHJlZVRhYmxlUm93RGF0YTxUPltdIHtcbiAgICAgICAgY29uc3QgbWFwcGVyID0gKGVsOiBUKTogVHJlZVRhYmxlUm93RGF0YTxUPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBlbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRGbihlbCkubWFwKG1hcHBlciksXG4gICAgICAgICAgICB9IGFzIFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzb3VyY2UubWFwKG1hcHBlcik7XG4gICAgfVxuICAgIGV4cG9ydCBmdW5jdGlvbiBvZk5vZGU8VD4oc291cmNlOiBULCBjaGlsZEZuOiAoZWw6IFQpID0+IFRbXSk6IFRyZWVUYWJsZVJvd0RhdGE8VD4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHNvdXJjZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBvZkFycmF5KGNoaWxkRm4oc291cmNlKSwgY2hpbGRGbiksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG9mR3JvdXBpbmc8VD4oZWxlbWVudHM6IEdyb3VwaW5nPFQ+LCBjaGlsZEZuOiAoZWw6IFQpID0+IFRbXSk6IEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+IHtcbiAgICAgICAgY29uc3QgbWFwcGVyID0gKGw6IFQgfCBHcm91cEVsZW1lbnQ8VD4pOiBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj4gfCBUcmVlVGFibGVSb3dEYXRhPFQ+ID0+IHtcbiAgICAgICAgICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAobCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsga2V5OiBsLmtleSwgcm93czogbC5yb3dzLm1hcChtYXBwZXIpIH0gYXMgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRGbihsKS5tYXAobWFwcGVyKSxcbiAgICAgICAgICAgIH0gYXMgVHJlZVRhYmxlUm93RGF0YTxUPjtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLm1hcChtYXBwZXIpIGFzIEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihlbGVtZW50czogR3JvdXBpbmc8VHJlZVRhYmxlUm93RGF0YTxUPj4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj4pOiBudW1iZXIge1xuICAgICAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGVsZW1lbnRzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50KGVsZW1lbnRzLnJvd3MpO1xuICAgICAgICB9IGVsc2UgaWYgKEdyb3VwaW5ncy5pc0dyb3VwaW5nKGVsZW1lbnRzKSkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBncm91cCBvZiBlbGVtZW50cykgcmVzdWx0ICs9IGNvdW50KGdyb3VwLnJvd3MpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5yZWR1Y2UoKHB2LCBjdikgPT4gcHYgKyBjb3VudEluVHJlZVJvdyhjdiksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2xpY2VJblRyZWVSb3c8VD4oZWxlbWVudHM6IFRyZWVUYWJsZVJvd0RhdGE8VD5bXSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBUcmVlVGFibGVSb3dEYXRhPFQ+W10ge1xuICAgICAgICBpZiAoZW5kIDw9IHN0YXJ0KSByZXR1cm4gW107XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgICAgIHNlZW4gPSAwO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBlbGVtZW50cy5sZW5ndGggJiYgc2VlbiArIGNvdW50SW5UcmVlUm93KGVsZW1lbnRzW2luZGV4XSkgPD0gc3RhcnQpIHtcbiAgICAgICAgICAgIHNlZW4gKz0gY291bnRJblRyZWVSb3coZWxlbWVudHNbaW5kZXhdKTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPj0gZWxlbWVudHMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiBUcmVlVGFibGVSb3dEYXRhPFQ+W10gPSBbXTtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gPCBlbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gZWxlbWVudHNbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBTaXplID0gY291bnRJblRyZWVSb3coZ3JvdXApO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBTdGFydCA9IE1hdGgubWF4KHNlZW4sIHN0YXJ0KTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRW5kID0gTWF0aC5taW4oZ3JvdXBTaXplICsgc2VlbiwgZW5kKTtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC52YWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogc2xpY2VJblRyZWVSb3coZ3JvdXAuY2hpbGRyZW4sIGdyb3VwU3RhcnQgLSBzZWVuLCBncm91cEVuZCAtIHNlZW4pLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNlZW4gKz0gZ3JvdXBTaXplO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNsaWNlPFQ+KFxuICAgICAgICBlbGVtZW50czogR3JvdXBpbmc8VHJlZVRhYmxlUm93RGF0YTxUPj4sXG4gICAgICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgICAgIGVuZDogbnVtYmVyXG4gICAgKTogR3JvdXBpbmc8VHJlZVRhYmxlUm93RGF0YTxUPj4ge1xuICAgICAgICBsZXQgaW5pdGlhbCA9IFsuLi5Hcm91cGluZ3Muc2xpY2UoZWxlbWVudHMsIHN0YXJ0LCBlbmQpXSBhcyBHcm91cGluZzxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICAgICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgICAgIHNlZW4gPSAwO1xuXG4gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgaW5pdGlhbCkge1xuICAgICAgICAgICAgaWYgKEdyb3VwaW5ncy5pc0VsZW1lbnRHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGxldCBncm91cFNpemUgPSBHcm91cGluZ3MuY291bnQoZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIGxldCBncm91cFN0YXJ0ID0gTWF0aC5taW4oc2Vlbiwgc3RhcnQpO1xuICAgICAgICAgICAgICAgIGxldCBncm91cEVuZCA9IE1hdGgubWluKGdyb3VwU2l6ZSwgZW5kKTtcbiAgICAgICAgICAgICAgICAoaW5pdGlhbFtpbmRleF0gYXMgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+KS5yb3dzID0gR3JvdXBpbmdzLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJvd3MsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwRW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBzZWVuICs9IGdyb3VwU2l6ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VlbiArPSBjb3VudEluVHJlZVJvdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluaXRpYWw7XG4gICAgfVxuICAgIC8qKiByZWN1cnNpdmVseSBzb3J0IGEgdHJlZSAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzb3J0PFQsIFYgPSBMaXRlcmFsPihcbiAgICAgICAgcm93czogKFRyZWVUYWJsZVJvd0RhdGE8VD4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj4pW10sXG4gICAgICAgIGNvbXBhcmF0b3JzOiB7XG4gICAgICAgICAgICBmbjogKGE6IFYsIGI6IFYsIGFvOiBULCBhYjogVCkgPT4gbnVtYmVyO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xuICAgICAgICAgICAgYWN0dWFsVmFsdWU6IChvYmo6IFQpID0+IFY7XG4gICAgICAgIH1bXVxuICAgICk6IChUcmVlVGFibGVSb3dEYXRhPFQ+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+KVtdIHtcbiAgICAgICAgY29uc3QgcmVhbENvbXBhcmF0b3IgPSAoXG4gICAgICAgICAgICBhOiBUcmVlVGFibGVSb3dEYXRhPFQ+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+LFxuICAgICAgICAgICAgYjogVHJlZVRhYmxlUm93RGF0YTxUPiB8IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PlxuICAgICAgICApOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgY29tcCBvZiBjb21wYXJhdG9ycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGNvbXAuZGlyZWN0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwiYXNjZW5kaW5nXCIgPyAxIDogLTE7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKEdyb3VwaW5ncy5pc0VsZW1lbnRHcm91cChhKSAmJiBHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoYikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoYSkgJiYgIUdyb3VwaW5ncy5pc0VsZW1lbnRHcm91cChiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uICogY29tcC5mbihjb21wLmFjdHVhbFZhbHVlKGEudmFsdWUpLCBjb21wLmFjdHVhbFZhbHVlKGIudmFsdWUpLCBhLnZhbHVlLCBiLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1hcCA9IChcbiAgICAgICAgICAgIHQ6IFRyZWVUYWJsZVJvd0RhdGE8VD4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj5cbiAgICAgICAgKTogVHJlZVRhYmxlUm93RGF0YTxUPiB8IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PiA9PiB7XG4gICAgICAgICAgICBsZXQgcjtcbiAgICAgICAgICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAodCkpXG4gICAgICAgICAgICAgICAgciA9IHsgLi4udCwgcm93czogc29ydCh0LnJvd3MsIGNvbXBhcmF0b3JzKS5tYXAobWFwKSB9IGFzIEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICAgICAgICAgIGVsc2UgciA9IHsgLi4udCwgY2hpbGRyZW46IHNvcnQodC5jaGlsZHJlbiwgY29tcGFyYXRvcnMpLm1hcChtYXApIH0gYXMgVHJlZVRhYmxlUm93RGF0YTxUPjtcbiAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcm93cy5tYXAobWFwKS5zb3J0KHJlYWxDb21wYXJhdG9yKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHVzZUtleUZuPFQ+KGlkOiBUcmVlVGFibGVTdGF0ZTxUPltcImlkXCJdLCAuLi5kZXBzOiBhbnlbXSkge1xuICAgIGNvbnN0IHJldCA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoZWw6IFRyZWVUYWJsZVJvd0RhdGE8VD4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj4pID0+IHtcbiAgICAgICAgICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsLmtleTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkKGVsLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgWy4uLmRlcHNdXG4gICAgKTtcbiAgICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVUYWJsZUNvbHVtbjxULCBWID0gTGl0ZXJhbD4gZXh0ZW5kcyBWYW5pbGxhQ29sdW1uPFQsIFY+IHtcbiAgICBzb3J0YWJsZT86IGJvb2xlYW47XG5cbiAgICBjb21wYXJhdG9yPzogKGZpcnN0OiBWLCBzZWNvbmQ6IFYsIGZpcnN0T2JqZWN0OiBULCBzZWNvbmRPYmplY3Q6IFQpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmVlVGFibGVTdGF0ZTxUPiB7XG4gICAgc29ydE9uPzogU29ydE9uW107XG4gICAgb3Blbk1hcD86IE1hcDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIGlkOiAob2JqOiBUKSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVRhYmxlUHJvcHM8VD4ge1xuICAgIGNvbHVtbnM6IFRyZWVUYWJsZUNvbHVtbjxUPltdO1xuICAgIHJvd3M6IFRbXSB8IEdyb3VwaW5nPFQ+O1xuICAgIHBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG4gICAgc2Nyb2xsT25QYWdpbmc/OiBib29sZWFuIHwgbnVtYmVyO1xuICAgIGdyb3VwaW5ncz86IFZhbmlsbGFUYWJsZVByb3BzPFRyZWVUYWJsZVJvd0RhdGE8VD4+W1wiZ3JvdXBpbmdzXCJdO1xuICAgIHNvcnRPbj86IFNvcnRPbltdO1xuICAgIGNoaWxkU2VsZWN0b3I6IChyYXc6IFQpID0+IFRbXTtcbiAgICBpZD86IChvYmo6IFQpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVHJlZVRhYmxlQWN0aW9uPFQ+ID1cbiAgICB8IHsgdHlwZTogXCJzb3J0LWNvbHVtblwiOyBjb2x1bW46IHN0cmluZzsgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uIHwgdW5kZWZpbmVkIH1cbiAgICB8IHtcbiAgICAgICAgICB0eXBlOiBcInJvdy1leHBhbmRcIjtcbiAgICAgICAgICByb3c6IFQ7XG4gICAgICAgICAgbmV3VmFsdWU6IGJvb2xlYW47XG4gICAgICB9XG4gICAgfCB7IHR5cGU6IFwib3Blbi1tYXAtY2hhbmdlZFwiOyBuZXdWYWx1ZTogTWFwPHN0cmluZywgYm9vbGVhbj4gfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyZWVUYWJsZVJlZHVjZXI8VD4oc3RhdGU6IFRyZWVUYWJsZVN0YXRlPFQ+LCBhY3Rpb246IFRyZWVUYWJsZUFjdGlvbjxUPik6IFRyZWVUYWJsZVN0YXRlPFQ+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJzb3J0LWNvbHVtblwiOlxuICAgICAgICAgICAgaWYgKGFjdGlvbi5kaXJlY3Rpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNvcnRPbjogdW5kZWZpbmVkIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBzb3J0T246IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImNvbHVtblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBhY3Rpb24uY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogYWN0aW9uLmRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcInJvdy1leHBhbmRcIjpcbiAgICAgICAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuICAgICAgICAgICAgaWYgKCFzdGF0ZS5vcGVuTWFwKSByZXR1cm4geyAuLi5zdGF0ZSB9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIHN0YXRlLm9wZW5NYXAua2V5cygpKSBuZXdNYXAuc2V0KGssIHN0YXRlLm9wZW5NYXAuZ2V0KGspISk7XG4gICAgICAgICAgICBuZXdNYXAuc2V0KHN0YXRlLmlkKGFjdGlvbi5yb3cpLCBhY3Rpb24ubmV3VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIG9wZW5NYXA6IG5ld01hcCB9O1xuICAgICAgICBjYXNlIFwib3Blbi1tYXAtY2hhbmdlZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIG9wZW5NYXA6IGFjdGlvbi5uZXdWYWx1ZSB9O1xuICAgIH1cbiAgICBjb25zb2xlLndhcm4oXCJkYXRhY29yZTogRW5jb3VudGVyZWQgdW5yZWNvZ25pemVkIG9wZXJhdGlvbjogXCIgKyAoYWN0aW9uIGFzIFRyZWVUYWJsZUFjdGlvbjxUPikudHlwZSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVHJlZVRhYmxlRGlzcGF0Y2g8VD4oXG4gICAgaW5pdGlhbDogVHJlZVRhYmxlU3RhdGU8VD4gfCAoKCkgPT4gVHJlZVRhYmxlU3RhdGU8VD4pXG4pOiBbVHJlZVRhYmxlU3RhdGU8VD4sIERpc3BhdGNoPFRyZWVUYWJsZUFjdGlvbjxUPj5dIHtcbiAgICBjb25zdCBpbml0ID0gdXNlTWVtbygoKSA9PiAodHlwZW9mIGluaXRpYWwgPT0gXCJmdW5jdGlvblwiID8gaW5pdGlhbCgpIDogaW5pdGlhbCksIFtdKTtcbiAgICByZXR1cm4gdXNlUmVkdWNlcih0cmVlVGFibGVSZWR1Y2VyIGFzIFJlZHVjZXI8VHJlZVRhYmxlU3RhdGU8VD4sIFRyZWVUYWJsZUFjdGlvbjxUPj4sIGluaXQpO1xufVxuXG5leHBvcnQgdHlwZSBSb3dFeHBhbnNpb25Db250ZXh0VHlwZTxUPiA9IHtcbiAgICBkaXNwYXRjaDogRGlzcGF0Y2g8VHJlZVRhYmxlQWN0aW9uPFQ+PjtcbiAgICBvcGVuTWFwOiBNYXA8c3RyaW5nLCBib29sZWFuPjtcbiAgICBpZDogKG9iajogVCkgPT4gc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IEVYUEFOREVEX0NPTlRFWFQgPSBjcmVhdGVDb250ZXh0PFJvd0V4cGFuc2lvbkNvbnRleHRUeXBlPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBUeXBlZEV4cGFuZGVkQ29udGV4dDxUPigpIHtcbiAgICByZXR1cm4gRVhQQU5ERURfQ09OVEVYVCBhcyBDb250ZXh0PFJvd0V4cGFuc2lvbkNvbnRleHRUeXBlPFQ+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRyZWVUYWJsZUhlYWRlckNlbGw8VD4oe1xuICAgIGNvbHVtbixcbiAgICBzb3J0LFxuICAgIHNvcnRhYmxlLFxufToge1xuICAgIGNvbHVtbjogVHJlZVRhYmxlQ29sdW1uPFQ+O1xuICAgIHNvcnQ/OiBTb3J0RGlyZWN0aW9uO1xuICAgIHNvcnRhYmxlOiBib29sZWFuO1xufSkge1xuICAgIGNvbnN0IHsgZGlzcGF0Y2ggfSA9IHVzZUNvbnRleHQoVHlwZWRFeHBhbmRlZENvbnRleHQ8VD4oKSk7XG4gICAgY29uc3QgaGVhZGVyOiBzdHJpbmcgfCBWTm9kZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbHVtbi50aXRsZSkgcmV0dXJuIGNvbHVtbi5pZDtcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbHVtbi50aXRsZSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gY29sdW1uLnRpdGxlKCk7XG4gICAgICAgIGVsc2UgcmV0dXJuIGNvbHVtbi50aXRsZTtcbiAgICB9LCBbY29sdW1uLmlkLCBjb2x1bW4udGl0bGVdKTtcblxuICAgIGNvbnN0IHNvcnRDbGlja2VkID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIChfZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChzb3J0ID09IHVuZGVmaW5lZCkgZGlzcGF0Y2goeyB0eXBlOiBcInNvcnQtY29sdW1uXCIsIGNvbHVtbjogY29sdW1uLmlkLCBkaXJlY3Rpb246IFwiYXNjZW5kaW5nXCIgfSk7XG4gICAgICAgICAgICBlbHNlIGlmIChzb3J0ID09IFwiYXNjZW5kaW5nXCIpIGRpc3BhdGNoKHsgdHlwZTogXCJzb3J0LWNvbHVtblwiLCBjb2x1bW46IGNvbHVtbi5pZCwgZGlyZWN0aW9uOiBcImRlc2NlbmRpbmdcIiB9KTtcbiAgICAgICAgICAgIGVsc2UgZGlzcGF0Y2goeyB0eXBlOiBcInNvcnQtY29sdW1uXCIsIGNvbHVtbjogY29sdW1uLmlkLCBkaXJlY3Rpb246IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW2NvbHVtbi5pZF1cbiAgICApO1xuXG4gICAgY29uc3QgcmVhbFdpZHRoID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKGNvbHVtbi53aWR0aCA9PT0gXCJtaW5pbXVtXCIgPyBcIjFweFwiIDogY29sdW1uLndpZHRoID09PSBcIm1heGltdW1cIiA/IFwiYXV0b1wiIDogY29sdW1uLndpZHRoICsgXCJweFwiKSxcbiAgICAgICAgW2NvbHVtbi53aWR0aF1cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICAgIDx0aCB3aWR0aD17cmVhbFdpZHRofSBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1oZWFkZXItY2VsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAge3NvcnRhYmxlICYmIDxTb3J0QnV0dG9uIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlLXNvcnRcIiBkaXJlY3Rpb249e3NvcnR9IG9uQ2xpY2s9e3NvcnRDbGlja2VkfSAvPn1cbiAgICAgICAgICAgICAgICA8ZGl2IG9uQ2xpY2s9e3NvcnRDbGlja2VkfSBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVHcm91cEhlYWRlcjxUPih7XG4gICAgbGV2ZWwsXG4gICAgdmFsdWUsXG4gICAgd2lkdGgsXG4gICAgY29uZmlnLFxufToge1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgdmFsdWU6IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGNvbmZpZz86IEdyb3VwaW5nQ29uZmlnPFRyZWVUYWJsZVJvd0RhdGE8VD4+O1xufSkge1xuICAgIGNvbnN0IHNvdXJjZVBhdGggPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICBjb25zdCByYXdSZW5kZXJhYmxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWc/LnJlbmRlcikgcmV0dXJuIGNvbmZpZy5yZW5kZXIodmFsdWUua2V5LCB2YWx1ZS5yb3dzKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8aDI+XG4gICAgICAgICAgICAgICAgICAgIDxMaXQgc291cmNlUGF0aD17c291cmNlUGF0aH0gaW5saW5lPXt0cnVlfSB2YWx1ZT17dmFsdWUua2V5fSAvPlxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICApO1xuICAgIH0sIFtjb25maWc/LnJlbmRlciwgdmFsdWUua2V5LCB2YWx1ZS5yb3dzXSk7XG4gICAgY29uc3QgcmVuZGVyYWJsZSA9IHVzZUFzRWxlbWVudChyYXdSZW5kZXJhYmxlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDx0ciBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1ncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT17eyBwYWRkaW5nTGVmdDogYCR7bGV2ZWwgKiAxLjEyfWVtYCB9fSBjb2xTcGFuPXt3aWR0aCArIDF9PlxuICAgICAgICAgICAgICAgIHtyZW5kZXJhYmxlfVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFRyZWVUYWJsZVJvd0dyb3VwPFQ+KHtcbiAgICBsZXZlbCxcbiAgICBjb2x1bW5zLFxuICAgIGVsZW1lbnQsXG4gICAgZ3JvdXBpbmdzLFxufToge1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgY29sdW1uczogVHJlZVRhYmxlQ29sdW1uPFQ+W107XG4gICAgZWxlbWVudDogR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+IHwgVHJlZVRhYmxlUm93RGF0YTxUPjtcbiAgICBncm91cGluZ3M/OiBHcm91cGluZ0NvbmZpZzxUcmVlVGFibGVSb3dEYXRhPFQ+PltdO1xufSkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHVzZUNvbnRleHQoVHlwZWRFeHBhbmRlZENvbnRleHQ8VD4oKSk7XG4gICAgY29uc3Qga2V5Rm4gPSB1c2VLZXlGbihpZCk7XG4gICAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3VwaW5ncyA/IE1hdGgubWluKGdyb3VwaW5ncy5sZW5ndGggLSAxLCBsZXZlbCkgOiAwO1xuICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBpbmdDb25maWcgPSBncm91cGluZ3MgPyBncm91cGluZ3NbZ3JvdXBJbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtrZXlGbihlbGVtZW50KX0+XG4gICAgICAgICAgICAgICAgPFRyZWVUYWJsZUdyb3VwSGVhZGVyIGxldmVsPXtsZXZlbH0gdmFsdWU9e2VsZW1lbnR9IHdpZHRoPXtjb2x1bW5zLmxlbmd0aH0gY29uZmlnPXtncm91cGluZ0NvbmZpZ30gLz5cbiAgICAgICAgICAgICAgICB7ZWxlbWVudC5yb3dzLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxUcmVlVGFibGVSb3dHcm91cDxUPiBsZXZlbD17bGV2ZWwgKyAxfSBjb2x1bW5zPXtjb2x1bW5zfSBlbGVtZW50PXtyb3d9IGdyb3VwaW5ncz17Z3JvdXBpbmdzfSAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gPFRyZWVUYWJsZVJvdyByb3c9e2VsZW1lbnR9IGNvbHVtbnM9e2NvbHVtbnN9IGxldmVsPXtsZXZlbCAtIGdyb3VwSW5kZXggKyAxfSBrZXk9e2tleUZuKGVsZW1lbnQpfSAvPjtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVSb3dFeHBhbmRlcjxUPih7IHJvdywgbGV2ZWwgfTogeyByb3c6IFQ7IGxldmVsOiBudW1iZXIgfSkge1xuICAgIGNvbnN0IHsgb3Blbk1hcCwgZGlzcGF0Y2gsIGlkIH0gPSB1c2VDb250ZXh0KFR5cGVkRXhwYW5kZWRDb250ZXh0PFQ+KCkpO1xuICAgIGNvbnN0IG9wZW4gPSB1c2VNZW1vKCgpID0+IG9wZW5NYXAuZ2V0KGlkKHJvdykpID8/IGZhbHNlLCBbcm93LCBvcGVuTWFwLCBvcGVuTWFwLmdldChpZChyb3cpKSwgZGlzcGF0Y2hdKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8dGRcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJyb3ctZXhwYW5kXCIsIHJvdywgbmV3VmFsdWU6ICFvcGVuIH0pfVxuICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IGAkeyhsZXZlbCAtIDEpICogMS4xMjV9ZW1gIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRhdGFjb3JlLWNvbGxhcHNlclwiLCAhb3BlbiA/IFwiaXMtY29sbGFwc2VkXCIgOiB1bmRlZmluZWQpfSBkaXI9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN2Zy1pY29uIHJpZ2h0LXRyaWFuZ2xlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyA4TDEyIDE3TDIxIDhcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVHJlZVRhYmxlUm93PFQ+KHtcbiAgICBsZXZlbCxcbiAgICByb3csXG4gICAgY29sdW1ucyxcbn06IHtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHJvdzogVHJlZVRhYmxlUm93RGF0YTxUPjtcbiAgICBjb2x1bW5zOiBUcmVlVGFibGVDb2x1bW48VD5bXTtcbn0pIHtcbiAgICBjb25zdCB7IG9wZW5NYXAsIGlkIH0gPSB1c2VDb250ZXh0KFR5cGVkRXhwYW5kZWRDb250ZXh0PFQ+KCkpO1xuICAgIGNvbnN0IG9wZW4gPSB1c2VNZW1vKCgpID0+IG9wZW5NYXAuZ2V0KGlkKHJvdy52YWx1ZSkpLCBbb3Blbk1hcCwgb3Blbk1hcC5nZXQoaWQocm93LnZhbHVlKSksIHJvdywgcm93LnZhbHVlXSk7XG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHJvdy5jaGlsZHJlbi5sZW5ndGggPiAwLCBbcm93LCByb3cuY2hpbGRyZW4sIHJvdy52YWx1ZV0pO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICB7aGFzQ2hpbGRyZW4gPyA8VHJlZVRhYmxlUm93RXhwYW5kZXI8VD4gbGV2ZWw9e2xldmVsfSByb3c9e3Jvdy52YWx1ZX0gLz4gOiA8dGQ+PC90ZD59XG4gICAgICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2wsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFRyZWVUYWJsZVJvd0NlbGw8VD4gcm93PXtyb3d9IGNvbHVtbj17Y29sfSBsZXZlbD17bGV2ZWx9IGlzRmlyc3Q9e2kgPT0gMH0gLz5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB7b3BlblxuICAgICAgICAgICAgICAgID8gcm93LmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8VHJlZVRhYmxlUm93IHJvdz17Y2hpbGR9IGNvbHVtbnM9e2NvbHVtbnN9IGxldmVsPXtsZXZlbCArIDF9IGtleT17aWQoY2hpbGQudmFsdWUpfSAvPlxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IG51bGx9XG4gICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRyZWVUYWJsZVJvd0NlbGw8VD4oe1xuICAgIHJvdyxcbiAgICBjb2x1bW4sXG4gICAgbGV2ZWwsXG4gICAgaXNGaXJzdCA9IGZhbHNlLFxufToge1xuICAgIHJvdzogVHJlZVRhYmxlUm93RGF0YTxUPjtcbiAgICBjb2x1bW46IFRyZWVUYWJsZUNvbHVtbjxUPjtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIGlzRmlyc3Q6IGJvb2xlYW47XG59KSB7XG4gICAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+IGNvbHVtbi52YWx1ZShyb3cudmFsdWUpLCBbcm93LnZhbHVlLCBjb2x1bW4udmFsdWUsIGNvbHVtbi52YWx1ZShyb3cudmFsdWUpXSk7XG4gICAgY29uc3QgdXBkYXRlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAodjogTGl0ZXJhbCkgPT4ge1xuICAgICAgICAgICAgY29sdW1uLm9uVXBkYXRlICYmIGNvbHVtbi5vblVwZGF0ZSh2LCByb3cudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbdmFsdWUsIHJvdy52YWx1ZV1cbiAgICApO1xuICAgIGNvbnN0IFtlZGl0YWJsZVN0YXRlLCBkaXNwYXRjaF0gPSB1c2VFZGl0YWJsZURpc3BhdGNoPHR5cGVvZiB2YWx1ZT4oe1xuICAgICAgICBjb250ZW50OiB2YWx1ZSxcbiAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgdXBkYXRlcjogKHYpID0+IGNvbHVtbi5vblVwZGF0ZSAmJiBjb2x1bW4ub25VcGRhdGUodiwgcm93LnZhbHVlKSxcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsIG5ld1ZhbHVlOiB2YWx1ZSB9KTtcbiAgICB9LCBbdmFsdWUsIHVwZGF0ZXJdKTtcbiAgICBsZXQgcmVuZGVyZWRDb2x1bW4gPSBjb2x1bW4ucmVuZGVyID8gY29sdW1uLnJlbmRlcihlZGl0YWJsZVN0YXRlLmNvbnRlbnQsIHJvdy52YWx1ZSkgOiB2YWx1ZTtcbiAgICBjb25zdCByZW5kZXJhYmxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChyZW5kZXJlZENvbHVtbiAmJiB0eXBlb2YgcmVuZGVyZWRDb2x1bW4gPT0gXCJvYmplY3RcIiAmJiBcInByb3BzXCIgaW4gcmVuZGVyZWRDb2x1bW4pXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZW5kZXJlZENvbHVtbiwgeyBwcm9wczogT2JqZWN0LmFzc2lnbihyZW5kZXJlZENvbHVtbi5wcm9wcywgeyBkaXNwYXRjaCB9KSB9KTtcbiAgICAgICAgZWxzZSByZXR1cm4gcmVuZGVyZWRDb2x1bW47XG4gICAgfSwgW2NvbHVtbi5yZW5kZXIsIHZhbHVlLCBlZGl0YWJsZVN0YXRlLmNvbnRlbnQsIHJlbmRlcmVkQ29sdW1uLCByb3cudmFsdWUsIHVwZGF0ZXJdKTtcblxuICAgIGNvbnN0IHJlbmRlcmVkID0gdXNlQXNFbGVtZW50KHJlbmRlcmFibGUpO1xuXG4gICAgY29uc3QgRWRpdG9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBlO1xuICAgICAgICBpZiAoY29sdW1uLmVkaXRhYmxlICYmIGNvbHVtbi5lZGl0b3IpIGUgPSBjb2x1bW4uZWRpdG9yKGVkaXRhYmxlU3RhdGUuY29udGVudCwgcm93LnZhbHVlKTtcbiAgICAgICAgZWxzZSBlID0gbnVsbDtcbiAgICAgICAgaWYgKGUpIHJldHVybiBPYmplY3QuYXNzaWduKGUsIHsgcHJvcHM6IE9iamVjdC5hc3NpZ24oZS5wcm9wcywgeyBkaXNwYXRjaCB9KSB9KTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgfSwgW2NvbHVtbi5lZGl0b3IsIGNvbHVtbi5lZGl0YWJsZSwgZWRpdGFibGVTdGF0ZS5jb250ZW50LCByb3cudmFsdWVdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IGlzRmlyc3QgPyBgJHsobGV2ZWwgLSAxKSAqIDEuMn1lbWAgOiB1bmRlZmluZWQgfX1cbiAgICAgICAgICAgIG9uRGJsQ2xpY2s9eygpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJlZGl0aW5nLXRvZ2dsZWRcIiwgbmV3VmFsdWU6ICFlZGl0YWJsZVN0YXRlLmlzRWRpdGluZyB9KX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlLWNlbGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7Y29sdW1uLmVkaXRhYmxlID8gKFxuICAgICAgICAgICAgICAgIDxFZGl0YWJsZTx0eXBlb2YgdmFsdWU+XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSZW5kZXI9e3JlbmRlcmVkfVxuICAgICAgICAgICAgICAgICAgICBlZGl0b3I9e0VkaXRvcn1cbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgICAgICAgICBzdGF0ZT17ZWRpdGFibGVTdGF0ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICByZW5kZXJlZFxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC90ZD5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlZFRyZWVUYWJsZVZpZXc8VD4oXG4gICAgcHJvcHM6IFRyZWVUYWJsZVN0YXRlPFQ+ICYgVHJlZVRhYmxlUHJvcHM8VD4gJiB7IGRpc3BhdGNoOiBEaXNwYXRjaDxUcmVlVGFibGVBY3Rpb248VD4+IH1cbikge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB1c2VJbnRlcm5pbmcocHJvcHMuY29sdW1ucywgKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09IGJbaW5kZXhdKTtcbiAgICB9KTtcbiAgICBjb25zdCB0b3RhbEVsZW1lbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChHcm91cGluZ3MuaXNHcm91cGluZyhwcm9wcy5yb3dzKSkgcmV0dXJuIEdyb3VwaW5ncy5jb3VudChwcm9wcy5yb3dzKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnJvd3MucmVkdWNlKFxuICAgICAgICAgICAgICAgIChwdiwgY3YpID0+IHB2ICsgVHJlZVV0aWxzLmNvdW50SW5UcmVlUm93KFRyZWVVdGlscy5vZk5vZGUoY3YsIHByb3BzLmNoaWxkU2VsZWN0b3IpKSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApO1xuICAgIH0sIFtwcm9wcy5yb3dzXSk7XG4gICAgY29uc3QgdGFibGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHBhZ2luZyA9IHVzZURhdGFjb3JlUGFnaW5nKHtcbiAgICAgICAgaW5pdGlhbFBhZ2U6IDAsXG4gICAgICAgIHBhZ2luZzogcHJvcHMucGFnaW5nLFxuICAgICAgICBzY3JvbGxPblBhZ2VDaGFuZ2U6IHByb3BzLnNjcm9sbE9uUGFnaW5nLFxuICAgICAgICBlbGVtZW50czogdG90YWxFbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVyOiB0YWJsZVJlZixcbiAgICB9KTtcbiAgICBjb25zdCByYXdTb3J0cyA9IHVzZUludGVybmluZyhwcm9wcy5zb3J0T24sIChhLCBiKSA9PiBMaXRlcmFscy5jb21wYXJlKGEsIGIpID09IDApO1xuICAgIGNvbnN0IHNvcnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiByYXdTb3J0cz8uZmlsdGVyKChzb3J0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbCkgPT4gY29sLmlkID09IHNvcnQuaWQpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbiAmJiAoY29sdW1uLnNvcnRhYmxlID8/IHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9LCBbY29sdW1ucywgcmF3U29ydHNdKTtcbiAgICBjb25zdCBncm91cGluZ3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5ncm91cGluZ3MpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmdyb3VwaW5ncykpIHJldHVybiBwcm9wcy5ncm91cGluZ3M7XG5cbiAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24ocHJvcHMuZ3JvdXBpbmdzKSkgcmV0dXJuIFt7IHJlbmRlcjogcHJvcHMuZ3JvdXBpbmdzIH1dO1xuICAgICAgICBlbHNlIHJldHVybiBbcHJvcHMuZ3JvdXBpbmdzXTtcbiAgICB9LCBbcHJvcHMuZ3JvdXBpbmdzXSk7XG4gICAgY29uc3QgcmF3Um93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIUdyb3VwaW5ncy5pc0dyb3VwaW5nKHByb3BzLnJvd3MpKSByZXR1cm4gVHJlZVV0aWxzLm9mQXJyYXkocHJvcHMucm93cywgcHJvcHMuY2hpbGRTZWxlY3Rvcik7XG4gICAgICAgIHJldHVybiBUcmVlVXRpbHMub2ZHcm91cGluZyhwcm9wcy5yb3dzLCBwcm9wcy5jaGlsZFNlbGVjdG9yKTtcbiAgICB9LCBbcHJvcHMucm93c10pO1xuICAgIGNvbnN0IHJvd3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNvcnRzID09IHVuZGVmaW5lZCB8fCBzb3J0cy5sZW5ndGggPT0gMCkgcmV0dXJuIHJhd1Jvd3M7XG4gICAgICAgIGNvbnN0IGNvbXBhcmF0b3JzID0gc29ydHMubWFwKCh4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2wgPSBjb2x1bW5zLmZpbmQoKHkpID0+IHkuaWQgPT0geC5pZCkhO1xuICAgICAgICAgICAgY29uc3QgY29tcCA9IGNvbD8uY29tcGFyYXRvciA/PyBERUZBVUxUX1RBQkxFX0NPTVBBUkFUT1I7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZuOiBjb21wLFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogeC5kaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgYWN0dWFsVmFsdWU6IGNvbC52YWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gVHJlZVV0aWxzLnNvcnQ8VCwgTGl0ZXJhbD4ocmF3Um93cywgY29tcGFyYXRvcnMpIGFzIEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+O1xuICAgIH0sIFtyYXdSb3dzLCBzb3J0c10pO1xuXG4gICAgY29uc3QgcGFnZWRSb3dzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChwYWdpbmcuZW5hYmxlZClcbiAgICAgICAgICAgIHJldHVybiBUcmVlVXRpbHMuc2xpY2Uocm93cywgcGFnaW5nLnBhZ2UgKiBwYWdpbmcucGFnZVNpemUsIChwYWdpbmcucGFnZSArIDEpICogcGFnaW5nLnBhZ2VTaXplKTtcbiAgICAgICAgcmV0dXJuIHJvd3M7XG4gICAgfSwgW3BhZ2luZy5wYWdlLCBwYWdpbmcucGFnZVNpemUsIHBhZ2luZy5lbmFibGVkLCBwcm9wcy5yb3dzLCByb3dzXSk7XG5cbiAgICBjb25zdCBrZXlGbiA9IHVzZUtleUZuKHByb3BzLmlkLCBwYWdlZFJvd3MpO1xuICAgIGNvbnN0IENvbnRleHQgPSBUeXBlZEV4cGFuZGVkQ29udGV4dDxUPigpO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IG9wZW5NYXA6IHByb3BzLm9wZW5NYXAhLCBkaXNwYXRjaDogcHJvcHMuZGlzcGF0Y2gsIGlkOiBwcm9wcy5pZCB9fT5cbiAgICAgICAgICAgIDxkaXYgcmVmPXt0YWJsZVJlZn0+XG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1oZWFkZXItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlLWhlYWRlci1jZWxsXCIgd2lkdGg9XCIxcHhcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2x1bW5zLm1hcCgoeCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJlZVRhYmxlSGVhZGVyQ2VsbDxUPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydD17cHJvcHMuc29ydE9uPy5maW5kKChzKSA9PiBzLmlkID09PSB4LmlkKT8uZGlyZWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uPXt4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGFibGU9e3guc29ydGFibGUgPz8gdHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwYWdlZFJvd3MubWFwKChyb3cpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJlZVRhYmxlUm93R3JvdXA8VD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudD17cm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdzPXtncm91cGluZ3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17a2V5Rm4ocm93KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICB7cGFnaW5nLmVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8Q29udHJvbGxlZFBhZ2VyIHBhZ2U9e3BhZ2luZy5wYWdlfSB0b3RhbFBhZ2VzPXtwYWdpbmcudG90YWxQYWdlc30gc2V0UGFnZT17cGFnaW5nLnNldFBhZ2V9IC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRyZWVUYWJsZVZpZXc8VD4ocHJvcHM6IFRyZWVUYWJsZVByb3BzPFQ+KSB7XG4gICAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VUcmVlVGFibGVEaXNwYXRjaDxUPih7XG4gICAgICAgIHNvcnRPbjogcHJvcHMuc29ydE9uID8/IFtdLFxuICAgICAgICBpZDogcHJvcHMuaWQgPyBwcm9wcy5pZCA6ICh4KSA9PiAoeCBhcyBJbmRleGFibGUpLiRpZCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZlN0YXRlID0gdXNlTWVtbygoKSA9PiB1c2VSZWYoc3RhdGUpLCBbc3RhdGVdKTtcbiAgICBpZiAoc3RhdGUub3Blbk1hcCAhPT0gdW5kZWZpbmVkKSByZWZTdGF0ZS5jdXJyZW50ID0gc3RhdGU7XG4gICAgZWxzZSByZWZTdGF0ZS5jdXJyZW50Lm9wZW5NYXAgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwib3Blbi1tYXAtY2hhbmdlZFwiLCBuZXdWYWx1ZTogcmVmU3RhdGUuY3VycmVudC5vcGVuTWFwID8/IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpIH0pO1xuICAgIH0sIFtkaXNwYXRjaF0pO1xuICAgIGRlbGV0ZSBwcm9wcy5zb3J0T247XG4gICAgcmV0dXJuIDxDb250cm9sbGVkVHJlZVRhYmxlVmlldzxUPiBkaXNwYXRjaD17ZGlzcGF0Y2h9IHsuLi5zdGF0ZX0gey4uLnByb3BzfSAvPjtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbmltcG9ydCB7IERhdGFjb3JlQXBpIH0gZnJvbSBcImFwaS9hcGlcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgSW5kZXhRdWVyeSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgTWFya2Rvd25QYWdlLCBNYXJrZG93blRhc2tJdGVtIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IHVzZUZpbGVNZXRhZGF0YSwgdXNlRnVsbFF1ZXJ5LCB1c2VJbmRleFVwZGF0ZXMsIHVzZUludGVybmluZywgdXNlUXVlcnkgfSBmcm9tIFwidWkvaG9va3NcIjtcbmltcG9ydCAqIGFzIGx1eG9uIGZyb20gXCJsdXhvblwiO1xuaW1wb3J0ICogYXMgcHJlYWN0IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCAqIGFzIGhvb2tzIGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCIuL3Jlc3VsdFwiO1xuaW1wb3J0IHsgR3JvdXAsIFN0YWNrIH0gZnJvbSBcIi4vdWkvbGF5b3V0XCI7XG5pbXBvcnQgeyBFbWJlZCwgTGluZVNwYW5FbWJlZCB9IGZyb20gXCJhcGkvdWkvZW1iZWRcIjtcbmltcG9ydCB7IENVUlJFTlRfRklMRV9DT05URVhULCBMaXQsIE1hcmtkb3duLCBPYnNpZGlhbkxpbmsgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IENTU1Byb3BlcnRpZXMgfSBmcm9tIFwicHJlYWN0L2NvbXBhdFwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IEJ1dHRvbiwgQ2hlY2tib3gsIEljb24sIFNsaWRlciwgU3dpdGNoLCBUZXh0Ym94LCBWYW5pbGxhU2VsZWN0IH0gZnJvbSBcIi4vdWkvYmFzaWNzXCI7XG5pbXBvcnQgeyBUYXNrTGlzdCB9IGZyb20gXCIuL3VpL3ZpZXdzL3Rhc2tcIjtcbmltcG9ydCB7IFZhbmlsbGFUYWJsZSB9IGZyb20gXCIuL3VpL3ZpZXdzL3RhYmxlXCI7XG5pbXBvcnQgeyBDYWxsb3V0IH0gZnJvbSBcIi4vdWkvdmlld3MvY2FsbG91dFwiO1xuaW1wb3J0IHsgQ2FyZCB9IGZyb20gXCIuL3VpL3ZpZXdzL2NhcmRzXCI7XG5pbXBvcnQgeyBEYXRhQXJyYXkgfSBmcm9tIFwiLi9kYXRhLWFycmF5XCI7XG5pbXBvcnQgeyBDb2VyY2UgfSBmcm9tIFwiLi9jb2VyY2VcIjtcbmltcG9ydCB7IFNjcmlwdENhY2hlIH0gZnJvbSBcIi4vc2NyaXB0LWNhY2hlXCI7XG5pbXBvcnQgeyBzZXRUYXNrVGV4dCwgdXNlU2V0RmllbGQgfSBmcm9tIFwidXRpbHMvZmllbGRzXCI7XG5pbXBvcnQge1xuICAgIENvbnRyb2xsZWRFZGl0YWJsZVRleHRGaWVsZCxcbiAgICBGaWVsZENoZWNrYm94LFxuICAgIEVkaXRhYmxlVGV4dEZpZWxkLFxuICAgIEZpZWxkU2xpZGVyLFxuICAgIEZpZWxkU2VsZWN0LFxuICAgIEZpZWxkU3dpdGNoLFxufSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlLWZpZWxkc1wiO1xuaW1wb3J0IHsgY29tcGxldGVUYXNrIH0gZnJvbSBcInV0aWxzL3Rhc2tcIjtcbmltcG9ydCB7IFRyZWVUYWJsZVZpZXcgfSBmcm9tIFwiLi91aS92aWV3cy90cmVlLXRhYmxlXCI7XG5cbi8qKiBMb2NhbCBBUEkgcHJvdmlkZWQgdG8gc3BlY2lmaWMgY29kZWJsb2NrcyB3aGVuIHRoZXkgYXJlIGV4ZWN1dGluZy5cbiAqIEBncm91cCBDb3JlXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhY29yZUxvY2FsQXBpIHtcbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgc2NyaXB0Q2FjaGU6IFNjcmlwdENhY2hlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBhcGk6IERhdGFjb3JlQXBpLCBwdWJsaWMgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2NyaXB0Q2FjaGUgPSBuZXcgU2NyaXB0Q2FjaGUodGhpcy5jb3JlLmRhdGFzdG9yZSk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBjdXJyZW50IGZpbGUgcGF0aCBmb3IgdGhlIGxvY2FsIEFQSS4gKi9cbiAgICBwdWJsaWMgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgICB9XG5cbiAgICAvKiogVGhlIGZ1bGwgbWFya2Rvd24gZmlsZSBtZXRhZGF0YSBmb3IgdGhlIGN1cnJlbnQgZmlsZS4gKi9cbiAgICBwdWJsaWMgY3VycmVudEZpbGUoKTogTWFya2Rvd25QYWdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBhZ2UodGhpcy5wYXRoKSE7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhY2VzcyB0byBsdXhvbiBmdW5jdGlvbnMuICovXG4gICAgZ2V0IGx1eG9uKCk6IHR5cGVvZiBsdXhvbiB7XG4gICAgICAgIHJldHVybiBsdXhvbjtcbiAgICB9XG5cbiAgICAvKiogR2V0IGFjY2VzcyB0byBwcmVhY3QgZnVuY3Rpb25zLiAqL1xuICAgIGdldCBwcmVhY3QoKTogdHlwZW9mIHByZWFjdCB7XG4gICAgICAgIHJldHVybiBwcmVhY3Q7XG4gICAgfVxuXG4gICAgLyoqIENlbnRyYWwgT2JzaWRpYW4gYXBwIG9iamVjdC4gKi9cbiAgICBnZXQgYXBwKCk6IEFwcCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcmUuYXBwO1xuICAgIH1cblxuICAgIC8qKiBUaGUgaW50ZXJuYWwgcGx1Z2luIGNlbnRyYWwgZGF0YXN0cnVjdHVyZS4gKi9cbiAgICBnZXQgY29yZSgpOiBEYXRhY29yZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5jb3JlO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNjcmlwdCBsb2FkaW5nIHV0aWxpdGllcyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLyoqXG4gICAgICogQXN5bmNocm9ub3VzbHkgbG9hZCBhIGphdmFzY3JpcHQgYmxvY2sgZnJvbSB0aGUgZ2l2ZW4gcGF0aCBvciBsaW5rOyB5b3UgY2FuIGVpdGhlciBsb2FkIGZyb20gSlMvVFMvSlNYL1RTWCBmaWxlc1xuICAgICAqIGRpcmVjdGx5LCBvciBmcm9tIGNvZGVibG9ja3MgYnkgbG9hZGluZyBmcm9tIHRoZSBzZWN0aW9uIHRoZSBjb2RlYmxvY2sgaXMgaW5zaWRlIG9mLiBUaGVyZSBhcmUgYSBmZXcgc3RpcHVsYXRpb25zXG4gICAgICogdG8gbG9hZGluZzpcbiAgICAgKiAtIFlvdSBjYW5ub3QgbG9hZCBjeWNsaWNhbCBkZXBlbmRlbmNpZXMuXG4gICAgICogLSBUaGlzIGlzIHNpbWlsYXIgdG8gdmFuaWxsYSBqcyBgcmVxdWlyZSgpYCwgbm90IGBpbXBvcnQgLi4uIGAuIFlvdXIgc2NyaXB0cyB5b3UgYXJlIHJlcXVpcmluZyBuZWVkIHRvIGV4cGxpY2l0bHlcbiAgICAgKiAgIHJldHVybiB0aGUgdGhpbmdzIHRoZXkgYXJlIGV4cG9ydGluZywgbGlrZSB0aGUgZXhhbXBsZSBiZWxvdy4gVGhlIGBleHBvcnRgIGtleXdvcmQgZG9lcyBub3Qgd29yay5cbiAgICAgKlxuICAgICAqIGBgYGpzXG4gICAgICogZnVuY3Rpb24gTXlFbGVtZW50KCkge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiByZXR1cm4geyBNeUVsZW1lbnQgfTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgcmVxdWlyZShwYXRoOiBzdHJpbmcgfCBMaW5rKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zY3JpcHRDYWNoZS5sb2FkKHBhdGgsIHsgZGM6IHRoaXMgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEdlbmVyYWwgdXRpbGl0aWVzIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC8qKiBVdGlsaXRpZXMgZm9yIGNvZXJjaW5nIHR5cGVzIGludG8gb25lIHNwZWNpZmljIHR5cGUgZm9yIGVhc2llciBwcm9ncmFtbWluZy4gKi9cbiAgICBwdWJsaWMgY29lcmNlID0gQ29lcmNlO1xuXG4gICAgLyoqIFJlc29sdmUgYSBsb2NhbCBvciBhYnNvbHV0ZSBwYXRoIG9yIGxpbmsgdG8gYW4gYWJzb2x1dGUgcGF0aC4gKi9cbiAgICBwdWJsaWMgcmVzb2x2ZVBhdGgocGF0aDogc3RyaW5nIHwgTGluaywgc291cmNlUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5yZXNvbHZlUGF0aChwYXRoLCBzb3VyY2VQYXRoID8/IHRoaXMucGF0aCk7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSB0aGUgZ2l2ZW4gcXVlcnksIHJldHVybmluZyBhIG1vbmFkaWMgc3VjY2Vzcy9mYWlsdXJlIHJlc3VsdC4gKi9cbiAgICBwdWJsaWMgdHJ5UGFyc2VRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IFJlc3VsdDxJbmRleFF1ZXJ5LCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnRyeVBhcnNlUXVlcnkocXVlcnkpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgdGhlIGdpdmVuIHF1ZXJ5LCB0aHJvd2luZyBhbiBlcnJvciBpZiBpdCBpcyBpbnZhbGlkLiAqL1xuICAgIHB1YmxpYyBwYXJzZVF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBJbmRleFF1ZXJ5KTogSW5kZXhRdWVyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyeVBhcnNlUXVlcnkocXVlcnkpLm9yRWxzZVRocm93KChlKSA9PiBcIkZhaWxlZCB0byBwYXJzZSBxdWVyeTogXCIgKyBlKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgZmlsZSBsaW5rIHBvaW50aW5nIHRvIHRoZSBnaXZlbiBwYXRoLiAqL1xuICAgIHB1YmxpYyBmaWxlTGluayhwYXRoOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZShwYXRoKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHB1YmxpYyBoZWFkZXJMaW5rKHBhdGg6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHBhdGgsIGhlYWRlcik7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBibG9jayB3aXRoIHRoZSBnaXZlbiBwYXRoIGFuZCBibG9jayBJRC4gKi9cbiAgICBwdWJsaWMgYmxvY2tMaW5rKHBhdGg6IHN0cmluZywgYmxvY2s6IHN0cmluZyk6IExpbmsge1xuICAgICAgICByZXR1cm4gTGluay5ibG9jayhwYXRoLCBibG9jayk7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSB0aGUgZ2l2ZW4gbGluaywgdGhyb3dpbmcgYW4gZXJyb3IgaWYgaXQgaXMgaW52YWxpZC4gKi9cbiAgICBwdWJsaWMgcGFyc2VMaW5rKGxpbmt0ZXh0OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBhcnNlTGluayhsaW5rdGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSBhIGxpbmssIHJldHVybmluZyBhIG1vbmFkaWMgc3VjY2Vzcy9mYWlsdXJlIHJlc3VsdC4gKi9cbiAgICBwdWJsaWMgdHJ5UGFyc2VMaW5rKGxpbmt0ZXh0OiBzdHJpbmcpOiBSZXN1bHQ8TGluaywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS50cnlQYXJzZUxpbmsobGlua3RleHQpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBkYXRhIGFycmF5IGZyb20gYSByZWd1bGFyIGFycmF5LiAqL1xuICAgIHB1YmxpYyBhcnJheTxUPihpbnB1dDogVFtdIHwgRGF0YUFycmF5PFQ+KTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIERhdGFBcnJheS53cmFwKGlucHV0KTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyB0aGUgdGV4dCBvZiBhIGdpdmVuIHRhc2sgcHJvZ3JhbW1hdGljYWxseS4gKi9cblxuICAgIHB1YmxpYyBzZXRUYXNrVGV4dChuZXdUZXh0OiBzdHJpbmcsIHRhc2s6IE1hcmtkb3duVGFza0l0ZW0pOiB2b2lkIHtcbiAgICAgICAgc2V0VGFza1RleHQodGhpcy5hcHAsIHRoaXMuY29yZSwgbmV3VGV4dCwgdGFzayk7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdGhlIGNvbXBsZXRpb24gc3RhdHVzIG9mIGEgZ2l2ZW4gdGFzayBwcm9ncmFtbWF0aWNhbGx5LiAqL1xuICAgIHB1YmxpYyBzZXRUYXNrQ29tcGxldGlvbihjb21wbGV0ZWQ6IGJvb2xlYW4sIHRhc2s6IE1hcmtkb3duVGFza0l0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29tcGxldGVUYXNrKGNvbXBsZXRlZCwgdGFzaywgdGhpcy5hcHAudmF1bHQsIHRoaXMuY29yZSk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vL1xuICAgIC8vICBIb29rcyAgLy9cbiAgICAvLy8vLy8vLy8vLy8vXG5cbiAgICAvLyBFeHBvcnQgdGhlIGNvbW1vbiBwcmVhY3QgaG9va3MgZm9yIHBlb3BsZSB0byB1c2UgdmlhIGBkYy5gOlxuICAgIHB1YmxpYyB1c2VTdGF0ZSA9IGhvb2tzLnVzZVN0YXRlO1xuICAgIHB1YmxpYyB1c2VDYWxsYmFjayA9IGhvb2tzLnVzZUNhbGxiYWNrO1xuICAgIHB1YmxpYyB1c2VSZWR1Y2VyID0gaG9va3MudXNlUmVkdWNlcjtcbiAgICBwdWJsaWMgdXNlTWVtbyA9IGhvb2tzLnVzZU1lbW87XG4gICAgcHVibGljIHVzZUVmZmVjdCA9IGhvb2tzLnVzZUVmZmVjdDtcbiAgICBwdWJsaWMgY3JlYXRlQ29udGV4dCA9IHByZWFjdC5jcmVhdGVDb250ZXh0O1xuICAgIHB1YmxpYyB1c2VDb250ZXh0ID0gaG9va3MudXNlQ29udGV4dDtcbiAgICBwdWJsaWMgdXNlUmVmID0gaG9va3MudXNlUmVmO1xuICAgIHB1YmxpYyB1c2VJbnRlcm5pbmcgPSB1c2VJbnRlcm5pbmc7XG4gICAgcHVibGljIHVzZVNldEZpZWxkID0gdXNlU2V0RmllbGQ7XG5cbiAgICAvKiogTWVtb2l6ZSB0aGUgaW5wdXQgYXV0b21hdGljYWxseSBhbmQgcHJvY2VzcyBpdCB1c2luZyBhIERhdGEgQXJyYXk7IHJldHVybnMgYSB2YW5pbGxhIGFycmF5IGJhY2suICovXG4gICAgcHVibGljIHVzZUFycmF5PFQsIFU+KGlucHV0OiBUW10gfCBEYXRhQXJyYXk8VD4sIHByb2Nlc3M6IChkYXRhOiBEYXRhQXJyYXk8VD4pID0+IERhdGFBcnJheTxVPiwgZGVwcz86IGFueVtdKTogVVtdIHtcbiAgICAgICAgcmV0dXJuIGhvb2tzLnVzZU1lbW8oKCkgPT4gcHJvY2VzcyhEYXRhQXJyYXkud3JhcChpbnB1dCkpLmFycmF5KCksIFtpbnB1dCwgLi4uKGRlcHMgPz8gW10pXSk7XG4gICAgfVxuXG4gICAgLyoqIFVzZSB0aGUgZmlsZSBtZXRhZGF0YSBmb3IgdGhlIGN1cnJlbnQgZmlsZS4gQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSB2aWV3IHdoZW4gdGhlIGN1cnJlbnQgZmlsZSBtZXRhZGF0YSBjaGFuZ2VzLiAqL1xuICAgIHB1YmxpYyB1c2VDdXJyZW50RmlsZShzZXR0aW5ncz86IHsgZGVib3VuY2U/OiBudW1iZXIgfSk6IE1hcmtkb3duUGFnZSB7XG4gICAgICAgIHJldHVybiB1c2VGaWxlTWV0YWRhdGEodGhpcy5jb3JlLCB0aGlzLnBhdGgsIHNldHRpbmdzKSBhcyBNYXJrZG93blBhZ2U7XG4gICAgfVxuXG4gICAgLyoqIFVzZSB0aGUgY3VycmVudCBwYXRoLiBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgdGhlIHZpZXcgaWYgdGhlIHBhdGggY2hhbmdlcyAodGhvdWdoIHRoYXQgd291bGQgYmUgd2VpcmQpLiAqL1xuICAgIHB1YmxpYyB1c2VDdXJyZW50UGF0aChzZXR0aW5ncz86IHsgZGVib3VuY2U/OiBudW1iZXIgfSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1ldGEgPSB0aGlzLnVzZUN1cnJlbnRGaWxlKHNldHRpbmdzKTtcbiAgICAgICAgcmV0dXJuIG1ldGEuJHBhdGg7XG4gICAgfVxuXG4gICAgLyoqIFVzZSB0aGUgZmlsZSBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmaWxlLiBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgdGhlIHZpZXcgd2hlbiB0aGUgZmlsZSBjaGFuZ2VzLiAqL1xuICAgIHB1YmxpYyB1c2VGaWxlKHBhdGg6IHN0cmluZywgc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBJbmRleGFibGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdXNlRmlsZU1ldGFkYXRhKHRoaXMuY29yZSwgcGF0aCwgc2V0dGluZ3MpITtcbiAgICB9XG5cbiAgICAvKiogQXV0b21hdGljYWxseSByZWZyZXNoIHRoZSB2aWV3IHdoZW5ldmVyIHRoZSBpbmRleCB1cGRhdGVzOyByZXR1cm5zIHRoZSBsYXRlc3QgaW5kZXggcmV2aXNpb24gSUQuICovXG4gICAgcHVibGljIHVzZUluZGV4VXBkYXRlcyhzZXR0aW5ncz86IHsgZGVib3VuY2U/OiBudW1iZXIgfSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB1c2VJbmRleFVwZGF0ZXModGhpcy5jb3JlLCBzZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVuIGEgcXVlcnksIGF1dG9tYXRpY2FsbHkgcmUtcnVubmluZyBpdCB3aGVuZXZlciB0aGUgdmF1bHQgY2hhbmdlcy4gUmV0dXJucyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWVyeVxuICAgICAqIGV4ZWN1dGlvbiwgc3VjaCBhcyBpbmRleCByZXZpc2lvbiBhbmQgdG90YWwgc2VhcmNoIGR1cmF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyB1c2VGdWxsUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnksIHNldHRpbmdzPzogeyBkZWJvdW5jZT86IG51bWJlciB9KTogU2VhcmNoUmVzdWx0PEluZGV4YWJsZT4ge1xuICAgICAgICByZXR1cm4gdXNlRnVsbFF1ZXJ5KHRoaXMuY29yZSwgdGhpcy5wYXJzZVF1ZXJ5KHF1ZXJ5KSwgc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIC8qKiBSdW4gYSBxdWVyeSwgYXV0b21hdGljYWxseSByZS1ydW5uaW5nIGl0IHdoZW5ldmVyIHRoZSB2YXVsdCBjaGFuZ2VzLiAqL1xuICAgIHB1YmxpYyB1c2VRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSwgc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBJbmRleGFibGVbXSB7XG4gICAgICAgIC8vIEhvb2tzIG5lZWQgdG8gYmUgY2FsbGVkIGluIGEgY29uc2lzdGVudCBvcmRlciwgc28gd2UgZG9uJ3QgbmVzdCB0aGUgYHVzZVF1ZXJ5YCBjYWxsIGluIHRoZSBEYXRhQXJyYXkud3JhcCBfanVzdF8gaW4gY2FzZS5cbiAgICAgICAgcmV0dXJuIHVzZVF1ZXJ5KHRoaXMuY29yZSwgdGhpcy5wYXJzZVF1ZXJ5KHF1ZXJ5KSwgc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFZpc3VhbCBFbGVtZW50cyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLyoqIFZlcnRpY2FsIGZsZXhib3ggY29udGFpbmVyOyBnb29kIGZvciBwdXR0aW5nIGl0ZW1zIHRvZ2V0aGVyIGluIGEgY29sdW1uLiAqL1xuICAgIHB1YmxpYyBTdGFjayA9IFN0YWNrO1xuICAgIC8qKiBIb3Jpem9udGFsIGZsZXhib3ggY29udGFpbmVyOyBnb29kIGZvciBwdXR0aW5nIGl0ZW1zIHRvZ2V0aGVyIGluIGEgcm93LiAqL1xuICAgIHB1YmxpYyBHcm91cCA9IEdyb3VwO1xuXG4gICAgLyoqIFJlbmRlcnMgYSBsaXRlcmFsIHZhbHVlIGluIGEgcHJldHR5IHdheSB0aGF0IHJlc3BlY3RzIHNldHRpbmdzLiAqL1xuICAgIHB1YmxpYyBMaXRlcmFsID0gKCh7IHZhbHVlLCBzb3VyY2VQYXRoLCBpbmxpbmUgfTogeyB2YWx1ZTogTGl0ZXJhbDsgc291cmNlUGF0aD86IHN0cmluZzsgaW5saW5lPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0U291cmNlUGF0aCA9IGhvb2tzLnVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuICAgICAgICByZXR1cm4gPExpdCB2YWx1ZT17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGggPz8gaW1wbGljaXRTb3VyY2VQYXRoID8/IHRoaXMucGF0aH0gaW5saW5lPXtpbmxpbmV9IC8+O1xuICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAvKiogUmVuZGVycyBtYXJrZG93biB1c2luZyB0aGUgT2JzaWRpYW4gbWFya2Rvd24gcmVuZGVyZXIsIG9wdGlvbmFsbHkgYXR0YWNoaW5nIGFkZGl0aW9uYWwgc3R5bGVzLiAqL1xuICAgIHB1YmxpYyBNYXJrZG93biA9ICgoe1xuICAgICAgICBjb250ZW50LFxuICAgICAgICBzb3VyY2VQYXRoLFxuICAgICAgICBpbmxpbmUsXG4gICAgICAgIHN0eWxlLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgfToge1xuICAgICAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gICAgICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgICAgIHN0eWxlPzogQ1NTUHJvcGVydGllcztcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIH0pID0+IHtcbiAgICAgICAgY29uc3QgaW1wbGljaXRTb3VyY2VQYXRoID0gaG9va3MudXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TWFya2Rvd25cbiAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxuICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3NvdXJjZVBhdGggPz8gaW1wbGljaXRTb3VyY2VQYXRoID8/IHRoaXMucGF0aH1cbiAgICAgICAgICAgICAgICBpbmxpbmU9e2lubGluZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgY2xzPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAvKiogUmVuZGVycyBhbiBvYnNpZGlhbi1zdHlsZSBsaW5rIGRpcmVjdGx5IGFuZCBtb3JlIGVmZmllaWNudGx5IHRoYW4gcmVuZGVyaW5nIG1hcmtkb3duLiAqL1xuICAgIHB1YmxpYyBMaW5rID0gT2JzaWRpYW5MaW5rO1xuXG4gICAgLyoqIENyZWF0ZSBhIHZhbmlsbGEgT2JzaWRpYW4gZW1iZWQgZm9yIHRoZSBnaXZlbiBsaW5rLiAqL1xuICAgIHB1YmxpYyBMaW5rRW1iZWQgPSAoKHtcbiAgICAgICAgbGluayxcbiAgICAgICAgaW5saW5lLFxuICAgICAgICBzb3VyY2VQYXRoLFxuICAgIH06IHtcbiAgICAgICAgbGluazogc3RyaW5nIHwgTGluaztcbiAgICAgICAgaW5saW5lPzogYm9vbGVhbjtcbiAgICAgICAgc291cmNlUGF0aD86IHN0cmluZztcbiAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWxMaW5rID0gaG9va3MudXNlTWVtbygoKSA9PiAodHlwZW9mIGxpbmsgPT09IFwic3RyaW5nXCIgPyBMaW5rLmZpbGUobGluaykgOiBsaW5rKSwgW2xpbmtdKTtcbiAgICAgICAgY29uc3QgaW1wbGljaXRTb3VyY2VQYXRoID0gaG9va3MudXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RW1iZWRcbiAgICAgICAgICAgICAgICBsaW5rPXtyZWFsTGlua31cbiAgICAgICAgICAgICAgICBpbmxpbmU9e2lubGluZSA/PyBmYWxzZX1cbiAgICAgICAgICAgICAgICBzb3VyY2VQYXRoPXtzb3VyY2VQYXRoID8/IGltcGxpY2l0U291cmNlUGF0aCA/PyB0aGlzLnBhdGh9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAvKiogQ3JlYXRlIGFuIGV4cGxpY2l0ICdzcGFuJyBlbWJlZCB3aGljaCBleHRyYWN0cyBhIHNwYW4gb2YgbGluZXMgZnJvbSBhIG1hcmtkb3duIGZpbGUuICovXG4gICAgcHVibGljIFNwYW5FbWJlZCA9ICgoe1xuICAgICAgICBwYXRoLFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZW5kLFxuICAgICAgICBleHBsYWluLFxuICAgICAgICBzaG93RXhwbGFpbixcbiAgICAgICAgc291cmNlUGF0aDogbWF5YmVTb3VyY2VQYXRoLFxuICAgIH06IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgICAgICBleHBsYWluPzogc3RyaW5nO1xuICAgICAgICBzaG93RXhwbGFpbj86IGJvb2xlYW47XG4gICAgICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgICAgIGVuZDogbnVtYmVyO1xuICAgIH0pID0+IHtcbiAgICAgICAgLy8gUmVzb2x2ZSB0aGUgcGF0aCB0byB0aGUgY29ycmVjdCBwYXRoIGlmIGEgc291cmNlIHBhdGggaXMgcHJvdmlkZWQuXG4gICAgICAgIGNvbnN0IHNvdXJjZVBhdGggPSBtYXliZVNvdXJjZVBhdGggPz8gdGhpcy5wYXRoO1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBob29rcy51c2VNZW1vKCgpID0+IHRoaXMucmVzb2x2ZVBhdGgocGF0aCwgc291cmNlUGF0aCksIFtwYXRoLCBzb3VyY2VQYXRoXSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxMaW5lU3BhbkVtYmVkIHBhdGg9e3Jlc29sdmVkUGF0aH0gc3RhcnQ9e3N0YXJ0fSBlbmQ9e2VuZH0gZXhwbGFpbj17ZXhwbGFpbn0gc2hvd0V4cGxhaW49e3Nob3dFeHBsYWlufSAvPlxuICAgICAgICApO1xuICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAvKiogUmVuZGVycyBhbiBvYnNpZGlhbiBsdWNpZGUgaWNvbi4gKi9cbiAgICBwdWJsaWMgSWNvbiA9IEljb247XG5cbiAgICAvLy8vLy8vLy8vL1xuICAgIC8vIFZpZXdzIC8vXG4gICAgLy8vLy8vLy8vLy9cblxuICAgIHB1YmxpYyBUYXNrTGlzdCA9IFRhc2tMaXN0O1xuICAgIHB1YmxpYyBWYW5pbGxhVGFibGUgPSBWYW5pbGxhVGFibGU7XG4gICAgcHVibGljIFRyZWVUYWJsZSA9IFRyZWVUYWJsZVZpZXc7XG4gICAgcHVibGljIENhcmQgPSBDYXJkO1xuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEludGVyYXRpdmUgZWxlbWVudHMgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBwdWJsaWMgQnV0dG9uID0gQnV0dG9uO1xuICAgIHB1YmxpYyBUZXh0Ym94ID0gVGV4dGJveDtcbiAgICBwdWJsaWMgQ2FsbG91dCA9IENhbGxvdXQ7XG4gICAgcHVibGljIENoZWNrYm94ID0gQ2hlY2tib3g7XG4gICAgcHVibGljIFNsaWRlciA9IFNsaWRlcjtcbiAgICBwdWJsaWMgU3dpdGNoID0gU3dpdGNoO1xuICAgIHB1YmxpYyBWYW5pbGxhU2VsZWN0ID0gVmFuaWxsYVNlbGVjdDtcblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyAgICBmaWVsZCBlZGl0b3JzICAgIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIHB1YmxpYyBGaWVsZENoZWNrYm94ID0gRmllbGRDaGVja2JveDtcbiAgICBwdWJsaWMgRmllbGRTbGlkZXIgPSBGaWVsZFNsaWRlcjtcbiAgICBwdWJsaWMgRmllbGRTZWxlY3QgPSBGaWVsZFNlbGVjdDtcbiAgICBwdWJsaWMgRmllbGRTd2l0Y2ggPSBGaWVsZFN3aXRjaDtcbiAgICBwdWJsaWMgVGV4dEZpZWxkID0gRWRpdGFibGVUZXh0RmllbGQ7XG4gICAgcHVibGljIFZhbmlsbGFUZXh0Qm94ID0gQ29udHJvbGxlZEVkaXRhYmxlVGV4dEZpZWxkO1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSBhcGlcbiAqL1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tIFwiaW5kZXgvZGF0YXN0b3JlXCI7XG5pbXBvcnQgeyBQUklNSVRJVkVTLCBRVUVSWSB9IGZyb20gXCJleHByZXNzaW9uL3BhcnNlclwiO1xuaW1wb3J0IHsgSW5kZXhRdWVyeSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgTWFya2Rvd25QYWdlIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiLi9yZXN1bHRcIjtcbmltcG9ydCB7IEFwcCwgQ29tcG9uZW50LCBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBNYXJrZG93blJlbmRlckNoaWxkIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBEYXRhY29yZUpTUmVuZGVyZXIgfSBmcm9tIFwidWkvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgRGF0YWNvcmVMb2NhbEFwaSB9IGZyb20gXCIuL2xvY2FsLWFwaVwiO1xuaW1wb3J0IFBhcnNpbW1vbiBmcm9tIFwicGFyc2ltbW9uXCI7XG5pbXBvcnQgeyBDb2VyY2UgfSBmcm9tIFwiLi9jb2VyY2VcIjtcbmltcG9ydCB7IERhdGFBcnJheSB9IGZyb20gXCIuL2RhdGEtYXJyYXlcIjtcbmltcG9ydCAqIGFzIGx1eG9uIGZyb20gXCJsdXhvblwiO1xuaW1wb3J0ICogYXMgcHJlYWN0IGZyb20gXCJwcmVhY3RcIjtcblxuLyoqIEV4dGVyYWxseSB2aXNpYmxlIEFQSSBmb3IgZGF0YWNvcmUuXG4gKiBAZ3JvdXAgQ29yZVxuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmVBcGkge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgY29yZTogRGF0YWNvcmUpIHt9XG5cbiAgICAvKiogR2V0IGFjZXNzIHRvIGx1eG9uIGZ1bmN0aW9ucy4gKi9cbiAgICBnZXQgbHV4b24oKTogdHlwZW9mIGx1eG9uIHtcbiAgICAgICAgcmV0dXJuIGx1eG9uO1xuICAgIH1cblxuICAgIC8qKiBHZXQgYWNjZXNzIHRvIHByZWFjdCBmdW5jdGlvbnMuICovXG4gICAgZ2V0IHByZWFjdCgpOiB0eXBlb2YgcHJlYWN0IHtcbiAgICAgICAgcmV0dXJuIHByZWFjdDtcbiAgICB9XG5cbiAgICAvKiogQ2VudHJhbCBPYnNpZGlhbiBhcHAgb2JqZWN0LiAqL1xuICAgIGdldCBhcHAoKTogQXBwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29yZS5hcHA7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gTG9jYWwgQVBJIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAvKiogQ29uc3RydWN0IGEgbG9jYWwgQVBJIGZvciB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gcGF0aC4gKi9cbiAgICBwdWJsaWMgbG9jYWwocGF0aDogc3RyaW5nKTogRGF0YWNvcmVMb2NhbEFwaSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0YWNvcmVMb2NhbEFwaSh0aGlzLCBwYXRoKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUXVlcnlpbmcgKyBGZXRjaGluZyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC8qKiBMb2FkIGEgbWFya2Rvd24gZmlsZSBieSBmdWxsIHBhdGggb3IgbGluay4gKi9cbiAgICBwdWJsaWMgcGFnZShwYXRoOiBzdHJpbmcgfCBMaW5rKTogTWFya2Rvd25QYWdlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcmVhbFBhdGggPSBwYXRoIGluc3RhbmNlb2YgTGluayA/IHBhdGgucGF0aCA6IHBhdGg7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29yZS5kYXRhc3RvcmUubG9hZChyZWFsUGF0aCkgYXMgTWFya2Rvd25QYWdlIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBFeGVjdXRlIGEgdGV4dHVhbCBvciB0eXBlZCBpbmRleCBxdWVyeSwgcmV0dXJuaW5nIGFsbCByZXN1bHRzLiAqL1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IEluZGV4YWJsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ5UXVlcnkocXVlcnkpLm9yRWxzZVRocm93KCk7XG4gICAgfVxuXG4gICAgLyoqIEV4ZWN1dGUgYSB0ZXh0dWFsIG9yIHR5cGVkIGluZGV4IHF1ZXJ5LCByZXR1cm5pbmcgYWxsIHJlc3VsdHMuICovXG4gICAgcHVibGljIHRyeVF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBJbmRleFF1ZXJ5KTogUmVzdWx0PEluZGV4YWJsZVtdLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ5RnVsbFF1ZXJ5KHF1ZXJ5KS5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LnJlc3VsdHMpO1xuICAgIH1cblxuICAgIC8qKiBFeGVjdXRlIGEgdGV4dHVhbCBvciB0eXBlZCBpbmRleCBxdWVyeSwgcmV0dXJuaW5nIHJlc3VsdHMgcGx1cyBwZXJmb3JtYW5jZSBtZXRhZGF0YS4gKi9cbiAgICBwdWJsaWMgZnVsbHF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBJbmRleFF1ZXJ5KTogU2VhcmNoUmVzdWx0PEluZGV4YWJsZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cnlGdWxsUXVlcnkocXVlcnkpLm9yRWxzZVRocm93KCk7XG4gICAgfVxuXG4gICAgLyoqIEV4ZWN1dGUgYSB0ZXh0dWFsIG9yIHR5cGVkIGluZGV4IHF1ZXJ5LCByZXR1cm5pbmcgcmVzdWx0cyBwbHVzIHBlcmZvcm1hbmNlIG1ldGFkYXRhLiAqL1xuICAgIHB1YmxpYyB0cnlGdWxsUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnkpOiBSZXN1bHQ8U2VhcmNoUmVzdWx0PEluZGV4YWJsZT4sIHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwYXJzZWRRdWVyeSA9IHR5cGVvZiBxdWVyeSA9PT0gXCJzdHJpbmdcIiA/IFFVRVJZLnF1ZXJ5LnRyeVBhcnNlKHF1ZXJ5KSA6IHF1ZXJ5O1xuICAgICAgICByZXR1cm4gdGhpcy5jb3JlLmRhdGFzdG9yZS5zZWFyY2gocGFyc2VkUXVlcnkpO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gR2VuZXJhbCB1dGlsaXRpZXMgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLyoqIFV0aWxpdGllcyBmb3IgY29lcmNpbmcgdHlwZXMgaW50byBvbmUgc3BlY2lmaWMgdHlwZSBmb3IgZWFzaWVyIHByb2dyYW1taW5nLiAqL1xuICAgIHB1YmxpYyBjb2VyY2UgPSBDb2VyY2U7XG5cbiAgICAvKiogUmVzb2x2ZSBhIGxvY2FsIG9yIGFic29sdXRlIHBhdGggb3IgbGluayB0byBhbiBhYnNvbHV0ZSBwYXRoLiAqL1xuICAgIHB1YmxpYyByZXNvbHZlUGF0aChwYXRoOiBzdHJpbmcgfCBMaW5rLCBzb3VyY2VQYXRoPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmF3cGF0aCA9IHBhdGggaW5zdGFuY2VvZiBMaW5rID8gcGF0aC5wYXRoIDogcGF0aDtcbiAgICAgICAgaWYgKHJhd3BhdGguc3RhcnRzV2l0aChcIi9cIikpIHJldHVybiByYXdwYXRoLnN1YnN0cmluZygxKTtcblxuICAgICAgICBjb25zdCBhYnNvbHV0ZSA9IHRoaXMuY29yZS5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KHJhd3BhdGgsIHNvdXJjZVBhdGggPz8gXCJcIik7XG4gICAgICAgIGlmIChhYnNvbHV0ZSkgcmV0dXJuIGFic29sdXRlLnBhdGg7XG5cbiAgICAgICAgcmV0dXJuIHJhd3BhdGg7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSB0aGUgZ2l2ZW4gcXVlcnksIHJldHVybmluZyBhIG1vbmFkaWMgc3VjY2Vzcy9mYWlsdXJlIHJlc3VsdC4gKi9cbiAgICBwdWJsaWMgdHJ5UGFyc2VRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IFJlc3VsdDxJbmRleFF1ZXJ5LCBzdHJpbmc+IHtcbiAgICAgICAgaWYgKCEodHlwZW9mIHF1ZXJ5ID09PSBcInN0cmluZ1wiKSkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHF1ZXJ5KTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBRVUVSWS5xdWVyeS5wYXJzZShxdWVyeSk7XG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgZWxzZSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoUGFyc2ltbW9uLmZvcm1hdEVycm9yKHF1ZXJ5LCByZXN1bHQpKTtcbiAgICB9XG5cbiAgICAvKiogVHJ5IHRvIHBhcnNlIHRoZSBnaXZlbiBxdWVyeSwgdGhyb3dpbmcgYW4gZXJyb3IgaWYgaXQgaXMgaW52YWxpZC4gKi9cbiAgICBwdWJsaWMgcGFyc2VRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IEluZGV4UXVlcnkge1xuICAgICAgICByZXR1cm4gdGhpcy50cnlQYXJzZVF1ZXJ5KHF1ZXJ5KS5vckVsc2VUaHJvdygoZSkgPT4gXCJGYWlsZWQgdG8gcGFyc2UgcXVlcnk6IFwiICsgZSk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGZpbGUgbGluayBwb2ludGluZyB0byB0aGUgZ2l2ZW4gcGF0aC4gKi9cbiAgICBwdWJsaWMgZmlsZUxpbmsocGF0aDogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUocGF0aCk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBoZWFkZXIgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gKi9cbiAgICBwdWJsaWMgaGVhZGVyTGluayhwYXRoOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihwYXRoLCBoZWFkZXIpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gcGF0aCBhbmQgYmxvY2sgSUQuICovXG4gICAgcHVibGljIGJsb2NrTGluayhwYXRoOiBzdHJpbmcsIGJsb2NrOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuYmxvY2socGF0aCwgYmxvY2spO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgdGhlIGdpdmVuIGxpbmssIHRocm93aW5nIGFuIGVycm9yIGlmIGl0IGlzIGludmFsaWQuICovXG4gICAgcHVibGljIHBhcnNlTGluayhsaW5rdGV4dDogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyeVBhcnNlTGluayhsaW5rdGV4dCkub3JFbHNlVGhyb3coKGUpID0+IFwiRmFpbGVkIHRvIHBhcnNlIGxpbms6IFwiICsgZSk7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSBhIGxpbmssIHJldHVybmluZyBhIG1vbmFkaWMgc3VjY2Vzcy9mYWlsdXJlIHJlc3VsdC4gKi9cbiAgICBwdWJsaWMgdHJ5UGFyc2VMaW5rKGxpbmt0ZXh0OiBzdHJpbmcpOiBSZXN1bHQ8TGluaywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IFBSSU1JVElWRVMuZW1iZWRMaW5rLnBhcnNlKGxpbmt0ZXh0KTtcbiAgICAgICAgaWYgKCFwYXJzZWQuc3RhdHVzKSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoUGFyc2ltbW9uLmZvcm1hdEVycm9yKGxpbmt0ZXh0LCBwYXJzZWQpKTtcblxuICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MocGFyc2VkLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgZGF0YSBhcnJheSBmcm9tIGEgcmVndWxhciBhcnJheS4gKi9cbiAgICBwdWJsaWMgYXJyYXk8VD4oaW5wdXQ6IFRbXSB8IERhdGFBcnJheTxUPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiBEYXRhQXJyYXkud3JhcChpbnB1dCk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVmlzdWFsIEVsZW1lbnRzIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGhlIGdpdmVuIERhdGFjb3JlSlMgc2NyaXB0LCByZW5kZXJpbmcgaXQgaW50byB0aGUgZ2l2ZW4gY29udGFpbmVyLiBUaGlzIGZ1bmN0aW9uXG4gICAgICogd2lsbCByZXR1cm4gcXVpY2tseTsgYWN0dWFsIHJlbmRlcmluZyBpcyBkb25lIGFzeW5jaHJvbm91c2x5IGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgICAqXG4gICAgICogUmV0dXJucyBhIG1hcmtkb3duIHJlbmRlciBjaGlsZCByZXByZXNlbnRpbmcgdGhlIHJlbmRlcmVkIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhlY3V0ZUpzKFxuICAgICAgICBzb3VyY2U6IHN0cmluZyxcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnQgfCBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LFxuICAgICAgICBzb3VyY2VQYXRoOiBzdHJpbmdcbiAgICApOiBNYXJrZG93blJlbmRlckNoaWxkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckphdmFzY3JpcHQoc291cmNlLCBjb250YWluZXIsIGNvbXBvbmVudCwgc291cmNlUGF0aCwgXCJqc1wiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaW1pbGFyIHRvIGBleGVjdXRlSnNgLCBidXQgZm9yIEpTWCBzY3JpcHRzLiBJZiB5b3UgYXJlIHVuc3VyZSBpZiB5b3VyIGlucHV0IHdpbGwgYmUgSlNcbiAgICAgKiBvciBKU1gsIHVzZSB0aGlzIG9uZSwgYXMgaXQgYWxzbyBzdXBwb3J0cyByZWd1bGFyIGphdmFzY3JpcHQgKGFsYmVpdCBhdCBhdCBhIG1pbGQgcGVyZm9ybWFuY2VcbiAgICAgKiBoaXQgdG8gcmVuZGVyaW5nKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhlY3V0ZUpzeChcbiAgICAgICAgc291cmNlOiBzdHJpbmcsXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50IHwgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCxcbiAgICAgICAgc291cmNlUGF0aDogc3RyaW5nXG4gICAgKTogTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJKYXZhc2NyaXB0KHNvdXJjZSwgY29udGFpbmVyLCBjb21wb25lbnQsIHNvdXJjZVBhdGgsIFwianN4XCIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNpbWlsYXIgdG8gYGV4ZWN1dGVKc2AsIGJ1dCBmb3IgVHlwZVNjcmlwdCBzY3JpcHRzLiBVc2UgdGhlIFRTWCB2YXJpYW50IGZvciBUU1ggc3VwcHJvdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhlY3V0ZVRzKFxuICAgICAgICBzb3VyY2U6IHN0cmluZyxcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnQgfCBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LFxuICAgICAgICBzb3VyY2VQYXRoOiBzdHJpbmdcbiAgICApOiBNYXJrZG93blJlbmRlckNoaWxkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckphdmFzY3JpcHQoc291cmNlLCBjb250YWluZXIsIGNvbXBvbmVudCwgc291cmNlUGF0aCwgXCJ0c1wiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaW1pbGFyIHRvIGBleGVjdXRlVHNgLCBidXQgZm9yIFRTWCBzY3JpcHRzLiBJZiB5b3UgYXJlIHVuc3VyZSBpZiB5b3VyIGlucHV0IHdpbGwgYmUgVFNcbiAgICAgKiBvciBUU1gsIHVzZSB0aGlzIG9uZSwgYXMgaXQgYWxzbyBzdXBwb3J0cyByZWd1bGFyIGphdmFzY3JpcHQgKGFsYmVpdCBhdCBhdCBhIG1pbGQgcGVyZm9ybWFuY2VcbiAgICAgKiBoaXQgdG8gcmVuZGVyaW5nKS5cbiAgICAgKlxuICAgICAqIFRoaXMgZ2VuZXJhbGx5IHdpbGwgYWxzbyB3b3JrIGlmIHlvdSBhcmUgdW5zdXJlIGlmIHlvdXIgaW5wdXQgaXMgamF2YXNjcmlwdCBvciB0eXBlc2NyaXB0LFxuICAgICAqIHRob3VnaCBiZXdhcmUgdGhlcmUgYXJlIGEgZmV3IG5pY2hlIGNhc2VzIHdoZXJlIGphdmFzY3JpcHQgYW5kIHR5cGVzY3JpcHQgZGl2ZXJnZSBpbiBzeW50YXguXG4gICAgICovXG4gICAgcHVibGljIGV4ZWN1dGVUc3goXG4gICAgICAgIHNvdXJjZTogc3RyaW5nLFxuICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudCB8IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gICAgICAgIHNvdXJjZVBhdGg6IHN0cmluZ1xuICAgICk6IE1hcmtkb3duUmVuZGVyQ2hpbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVySmF2YXNjcmlwdChzb3VyY2UsIGNvbnRhaW5lciwgY29tcG9uZW50LCBzb3VyY2VQYXRoLCBcInRzeFwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIFNoYXJlZCBsb2dpYyBmb3IgcmVuZGVyaW5nIGFueSBKUy9UUyBzY3JpcHQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVuZGVySmF2YXNjcmlwdChcbiAgICAgICAgc291cmNlOiBzdHJpbmcsXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50IHwgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCxcbiAgICAgICAgc291cmNlUGF0aDogc3RyaW5nLFxuICAgICAgICBsYW5ndWFnZTogXCJqc1wiIHwgXCJ0c1wiIHwgXCJqc3hcIiB8IFwidHN4XCJcbiAgICApIHtcbiAgICAgICAgbGV0IGxvY2FsID0gbmV3IERhdGFjb3JlTG9jYWxBcGkodGhpcywgc291cmNlUGF0aCk7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IERhdGFjb3JlSlNSZW5kZXJlcihsb2NhbCwgY29udGFpbmVyLCBzb3VyY2VQYXRoLCBzb3VyY2UsIGxhbmd1YWdlKTtcbiAgICAgICAgY29tcG9uZW50LmFkZENoaWxkKHJlbmRlcmVyKTtcblxuICAgICAgICByZXR1cm4gcmVuZGVyZXI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGdldFBhcmVudEZvbGRlciB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuaW1wb3J0IHsgVEZpbGUsIFRGb2xkZXIsIFZhdWx0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbi8qKiBTcGVjaWZpYyBpbmRleCBmb3IgdHJhY2tpbmcgb2JqZWN0cyBpbiByZWxhdGl2ZSBwYXRocy4gU3BlY2lmaWNhbGx5IHRyYWNrcyB0b3AtbGV2ZWwgcGFnZSBvYmplY3RzLiAqL1xuZXhwb3J0IGNsYXNzIEZvbGRlckluZGV4IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmF1bHQ6IFZhdWx0KSB7fVxuXG4gICAgLyoqIEdldCB0aGUgbGlzdCBvZiBhbGwgZmlsZXMgdW5kZXIgdGhlIGdpdmVuIHBhdGguICovXG4gICAgcHVibGljIGdldChwcmVmaXg6IHN0cmluZywgZmlsdGVyPzogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbik6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgbGV0IGZvbGRlciA9IHRoaXMudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHByZWZpeCB8fCBcIi9cIik7XG4gICAgICAgIGlmICghZm9sZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gRm9sZGVySW5kZXguRU1QVFlfU0VUO1xuICAgICAgICB9IGVsc2UgaWYgKGZvbGRlciBpbnN0YW5jZW9mIFRGb2xkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2V0KHRoaXMud2Fsayhmb2xkZXIsIGZpbHRlcikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNldChwcmVmaXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRm9sZGVySW5kZXguRU1QVFlfU0VUO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgbGlzdCBvZiBmaWxlcyBzcGVjaWZpY2FsbHkgdW5kZXIgdGhlIGdpdmVuIHBhdGguICovXG4gICAgcHVibGljIGdldEV4YWN0KHByZWZpeDogc3RyaW5nLCBmaWx0ZXI/OiAocGF0aDogc3RyaW5nKSA9PiBib29sZWFuKTogU2V0PHN0cmluZz4ge1xuICAgICAgICBsZXQgZm9sZGVyID0gdGhpcy52YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGgocHJlZml4IHx8IFwiL1wiKTtcbiAgICAgICAgaWYgKCFmb2xkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBGb2xkZXJJbmRleC5FTVBUWV9TRVQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9sZGVyIGluc3RhbmNlb2YgVEZvbGRlcikge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmb2xkZXIuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgVEZpbGUpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICYmICFmaWx0ZXIoZmlsZS5wYXRoKSkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICBlbGVtZW50cy5hZGQoZmlsZS5wYXRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNldChwcmVmaXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRm9sZGVySW5kZXguRU1QVFlfU0VUO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHBhdGggZXhpc3RzIGluIHRoZSBpbmRleC4gKi9cbiAgICBwdWJsaWMgcGF0aEV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHBhdGggfHwgXCIvXCIpICE9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGZvbGRlciBleGlzdHMgaW4gdGhlIGluZGV4LiAqL1xuICAgIHB1YmxpYyBmb2xkZXJFeGlzdHMoZm9sZGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKGZvbGRlciB8fCBcIi9cIikgaW5zdGFuY2VvZiBURm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZSB0aGUgaW4tbWVtb3J5IHByZWZpeCBpbmRleCB0byBjb252ZXJ0IGEgcmVsYXRpdmUgcGF0aCB0byBhbiBhYnNvbHV0ZSBvbmUuXG4gICAgICovXG4gICAgcHVibGljIHJlc29sdmVSZWxhdGl2ZShwYXRoOiBzdHJpbmcsIG9yaWdpbj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghb3JpZ2luKSByZXR1cm4gcGF0aDtcbiAgICAgICAgZWxzZSBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkgcmV0dXJuIHBhdGguc3Vic3RyaW5nKDEpO1xuXG4gICAgICAgIGxldCByZWxhdGl2ZVBhdGggPSBnZXRQYXJlbnRGb2xkZXIob3JpZ2luKSArIFwiL1wiICsgcGF0aDtcbiAgICAgICAgaWYgKHRoaXMucGF0aEV4aXN0cyhyZWxhdGl2ZVBhdGgpKSByZXR1cm4gcmVsYXRpdmVQYXRoO1xuICAgICAgICBlbHNlIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgKndhbGsoZm9sZGVyOiBURm9sZGVyLCBmaWx0ZXI/OiAocGF0aDogc3RyaW5nKSA9PiBib29sZWFuKTogR2VuZXJhdG9yPHN0cmluZz4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZm9sZGVyLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIFRGb2xkZXIpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCogdGhpcy53YWxrKGZpbGUsIGZpbHRlcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlciA/IGZpbHRlcihmaWxlLnBhdGgpIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHlpZWxkIGZpbGUucGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBFbXB0eSBwbGFjZWhvbGRlciBzZXQuICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgRU1QVFlfU0VUOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbn1cbiIsICIvKiogVHJhY2tzIGFuIGludmVydGVkIGluZGV4IG9mIHZhbHVlIC0+IHNldFxcPGlkc1xcPi4gKi9cbmV4cG9ydCBjbGFzcyBJbnZlcnRlZEluZGV4PFY+IHtcbiAgICBwcml2YXRlIGludmVydGVkOiBNYXA8ViwgU2V0PHN0cmluZz4+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmludmVydGVkID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgdGhlIGtleSB0byB0aGUgZ2l2ZW4gdmFsdWVzLiAqL1xuICAgIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlczogSXRlcmFibGU8Vj4pIHtcbiAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW52ZXJ0ZWQuaGFzKHZhbHVlKSkgdGhpcy5pbnZlcnRlZC5zZXQodmFsdWUsIG5ldyBTZXQoKSk7XG4gICAgICAgICAgICB0aGlzLmludmVydGVkLmdldCh2YWx1ZSkhLmFkZChrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldCBhbGwga2V5cyB0aGF0IG1hcCB0byB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgcHVibGljIGdldCh2YWx1ZTogVik6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52ZXJ0ZWQuZ2V0KHZhbHVlKSA/PyBJbnZlcnRlZEluZGV4LkVNUFRZX1NFVDtcbiAgICB9XG5cbiAgICAvKiogRGVsZXRlIGEga2V5IGZyb20gdGhlIHNldCBvZiBhc3NvY2lhdGVkIHZhbHVlcy4gKi9cbiAgICBwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nLCB2YWx1ZXM6IEl0ZXJhYmxlPFY+KSB7XG4gICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qgc2V0ID0gdGhpcy5pbnZlcnRlZC5nZXQodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHNldCkge1xuICAgICAgICAgICAgICAgIHNldC5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNldCAmJiBzZXQuc2l6ZSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZlcnRlZC5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmludmVydGVkLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgRU1QVFlfU0VUOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbn1cbiIsICJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsYXRRdWV1ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pZHMgPSBbXTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAwO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IDA7XG4gICAgfVxuXG4gICAgcHVzaChpZCwgdmFsdWUpIHtcbiAgICAgICAgbGV0IHBvcyA9IHRoaXMubGVuZ3RoKys7XG5cbiAgICAgICAgd2hpbGUgKHBvcyA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IChwb3MgLSAxKSA+PiAxO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50VmFsdWUgPSB0aGlzLnZhbHVlc1twYXJlbnRdO1xuICAgICAgICAgICAgaWYgKHZhbHVlID49IHBhcmVudFZhbHVlKSBicmVhaztcbiAgICAgICAgICAgIHRoaXMuaWRzW3Bvc10gPSB0aGlzLmlkc1twYXJlbnRdO1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcG9zXSA9IHBhcmVudFZhbHVlO1xuICAgICAgICAgICAgcG9zID0gcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pZHNbcG9zXSA9IGlkO1xuICAgICAgICB0aGlzLnZhbHVlc1twb3NdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcG9wKCkge1xuICAgICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy5pZHNbMF07XG4gICAgICAgIHRoaXMubGVuZ3RoLS07XG5cbiAgICAgICAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmlkc1swXSA9IHRoaXMuaWRzW3RoaXMubGVuZ3RoXTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZXNbMF0gPSB0aGlzLnZhbHVlc1t0aGlzLmxlbmd0aF07XG4gICAgICAgICAgICBjb25zdCBoYWxmTGVuZ3RoID0gdGhpcy5sZW5ndGggPj4gMTtcbiAgICAgICAgICAgIGxldCBwb3MgPSAwO1xuXG4gICAgICAgICAgICB3aGlsZSAocG9zIDwgaGFsZkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0gKHBvcyA8PCAxKSArIDE7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBsZWZ0ICsgMTtcbiAgICAgICAgICAgICAgICBsZXQgYmVzdEluZGV4ID0gdGhpcy5pZHNbbGVmdF07XG4gICAgICAgICAgICAgICAgbGV0IGJlc3RWYWx1ZSA9IHRoaXMudmFsdWVzW2xlZnRdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0VmFsdWUgPSB0aGlzLnZhbHVlc1tyaWdodF07XG5cbiAgICAgICAgICAgICAgICBpZiAocmlnaHQgPCB0aGlzLmxlbmd0aCAmJiByaWdodFZhbHVlIDwgYmVzdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEluZGV4ID0gdGhpcy5pZHNbcmlnaHRdO1xuICAgICAgICAgICAgICAgICAgICBiZXN0VmFsdWUgPSByaWdodFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYmVzdFZhbHVlID49IHZhbHVlKSBicmVhaztcblxuICAgICAgICAgICAgICAgIHRoaXMuaWRzW3Bvc10gPSBiZXN0SW5kZXg7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXNbcG9zXSA9IGJlc3RWYWx1ZTtcbiAgICAgICAgICAgICAgICBwb3MgPSBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlkc1twb3NdID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlc1twb3NdID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG9wO1xuICAgIH1cblxuICAgIHBlZWsoKSB7XG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWRzWzBdO1xuICAgIH1cblxuICAgIHBlZWtWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXNbMF07XG4gICAgfVxuXG4gICAgc2hyaW5rKCkge1xuICAgICAgICB0aGlzLmlkcy5sZW5ndGggPSB0aGlzLnZhbHVlcy5sZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQge2RlZmF1bHQgYXMgQlRyZWV9IGZyb20gXCJzb3J0ZWQtYnRyZWVcIjtcblxuLyoqIEdlbmVyYWwgYWJzdHJhY3Rpb24gZm9yIGFsbCBmaWVsZCBpbmRpY2VzOyBzb21lIG1heSBiZSBvcHRpbWl6ZWQgZm9yIHNvbWUgdHlwZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkSW5kZXgge1xuICAgIC8vIFRPRE86IENoYW5nZSBhbGwoKSBhbmQgZXF1YWxzKCkgdG8gcmV0dXJuIEZpbHRlcjxzdHJpbmc+IGluc3RlYWQgZm9yIHBlcmZvcm1hbmNlIG9uIHNvbWUgaW5kZXggdHlwZXMuXG5cbiAgICAvKiogQWRkIGFuIChvYmplY3QsIHZhbHVlKSBwYWlyaW5nIHRvIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIGFkZChpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQ7XG5cbiAgICAvKiogRGVsZXRlIGFuIChvYmplY3QsIHZhbHVlKSBwYWlyaW5nIGZyb20gdGhlIGNvbGxlY3Rpb24uICovXG4gICAgZGVsZXRlKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHBhZ2VzIGluIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIGFsbCgpOiBTZXQ8c3RyaW5nPjtcblxuICAgIC8qKiBGb3IgaW5kaWNlcyB3aGljaCBzdXBwb3J0IGZhc3QgdmFsdWUgbG9va3VwcywgcmV0dXJucyB0aGUgc2V0IG9mIGFsbCBkb2N1bWVudHMgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgZXF1YWxzKHZhbHVlOiBMaXRlcmFsKTogU2V0PHN0cmluZz4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBGaWVsZCBpbmRleCBmb3IgYW55IGZpZWxkIHdoaWNoIGlzIGFsd2F5cyBvciBhbG1vc3QgYWx3YXlzIHByZXNlbnQgKCRyZXZpc2lvbiwgJHR5cGVzKS4gKi9cbmV4cG9ydCBjbGFzcyBFdmVyeXRoaW5nRmllbGRJbmRleCBpbXBsZW1lbnRzIEZpZWxkSW5kZXgge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgYWxsOiAoKSA9PiBTZXQ8c3RyaW5nPikge31cblxuICAgIHB1YmxpYyBhZGQoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHt9XG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG4vKiogU3BlY2lhbGl6ZWQgZmllbGQgaW5kZXggZm9yIElEcyB3aGljaCBrbm93cyB0byBkaXJlY3RseSBqdXN0IHJldHVybiB0aGUgSUQuICovXG5leHBvcnQgY2xhc3MgSWRGaWVsZEluZGV4IGltcGxlbWVudHMgRmllbGRJbmRleCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBhbGw6ICgpID0+IFNldDxzdHJpbmc+LCBwdWJsaWMgbG9va3VwOiAoaWQ6IHN0cmluZykgPT4gYm9vbGVhbikge31cblxuICAgIHB1YmxpYyBhZGQoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHt9XG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghTGl0ZXJhbHMuaXNTdHJpbmcodmFsdWUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLmxvb2t1cCh2YWx1ZSBhcyBzdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNldChbdmFsdWUgYXMgc3RyaW5nXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogRGVmYXVsdCBmaWVsZCBpbmRleCB3aGljaCB0cmFja3MgZmllbGQgbG9jYXRpb25zIHVzaW5nIGEgc2V0LiAqL1xuZXhwb3J0IGNsYXNzIFNldEZpZWxkSW5kZXggaW1wbGVtZW50cyBGaWVsZEluZGV4IHtcbiAgICAvKiogVGhlIElEIG9mIGV2ZXJ5IG9iamVjdCB0aGF0IHRoaXMgZmllbGQgaXMgcHJlc2VudCBvbi4gKi9cbiAgICBwcml2YXRlIHByZXNlbnQ6IFNldDxzdHJpbmc+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnByZXNlbnQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhbiAob2JqZWN0LCB2YWx1ZSkgcGFpcmluZyB0byB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwdWJsaWMgYWRkKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc2VudC5hZGQoaWQpO1xuICAgIH1cblxuICAgIC8qKiBEZWxldGUgYW4gKG9iamVjdCwgdmFsdWUpIHBhaXJpbmcgZnJvbSB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwdWJsaWMgZGVsZXRlKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc2VudC5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHBhZ2VzIGluIHdoaWNoIHRoZSBmaWVsZCBleGlzdHMgYXQgYWxsIChldmVuIGlmIHVuZGVmaW5lZCkuICovXG4gICAgcHVibGljIGFsbCgpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXNlbnQ7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhbGwgcGFnZXMgd2l0aCBhIHZhbHVlIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG4vKiogRmllbGQgaW5kZXggd2hpY2ggdHJhY2tzIGZpZWxkIGxvY2F0aW9ucyB1c2luZyBib3RoIGFuIG92ZXJhbGwgc2V0IGFuZCBhIEJUcmVlIG9mIHZhbHVlcy4gKi9cbmV4cG9ydCBjbGFzcyBCVHJlZUZpZWxkSW5kZXggaW1wbGVtZW50cyBGaWVsZEluZGV4IHtcbiAgICAvKiogVGhlIElEIG9mIGV2ZXJ5IG9iamVjdCB0aGF0IHRoaXMgZmllbGQgaXMgcHJlc2VudCBvbi4gKi9cbiAgICBwcml2YXRlIHByZXNlbnQ6IFNldDxzdHJpbmc+O1xuICAgIC8qKiBNYXBzICh2YWx1ZSwgc2V0IG9mIHBhZ2VzIGNvbnRhaW5pbmcgdGhhdCB2YWx1ZSkuICovXG4gICAgcHJpdmF0ZSB2YWx1ZXM6IEJUcmVlPExpdGVyYWwsIFNldDxzdHJpbmc+PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5wcmVzZW50ID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IG5ldyBCVHJlZShbXSwgKGEsIGIpID0+IExpdGVyYWxzLmNvbXBhcmUoYSwgYikpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYW4gKG9iamVjdCwgdmFsdWUpIHBhaXJpbmcgdG8gdGhlIGNvbGxlY3Rpb24uICovXG4gICAgcHVibGljIGFkZChpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXNlbnQuYWRkKGlkKTtcblxuICAgICAgICB0aGlzLnZhbHVlcy5zZXRJZk5vdFByZXNlbnQodmFsdWUsIG5ldyBTZXQoKSk7XG4gICAgICAgIHRoaXMudmFsdWVzLmdldCh2YWx1ZSkhLmFkZChpZCk7XG4gICAgfVxuXG4gICAgLyoqIERlbGV0ZSBhbiAob2JqZWN0LCB2YWx1ZSkgcGFpcmluZyBmcm9tIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHB1YmxpYyBkZWxldGUoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVzZW50LmRlbGV0ZShpZCk7XG5cbiAgICAgICAgY29uc3Qgc2V0ID0gdGhpcy52YWx1ZXMuZ2V0KHZhbHVlKTtcbiAgICAgICAgc2V0Py5kZWxldGUoaWQpO1xuXG4gICAgICAgIGlmIChzZXQgPT0gbnVsbCB8fCBzZXQuc2l6ZSA9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIHNldCBvZiBhbGwgcGFnZXMgaW4gd2hpY2ggdGhlIGZpZWxkIGV4aXN0cyBhdCBhbGwgKGV2ZW4gaWYgdW5kZWZpbmVkKS4gKi9cbiAgICBwdWJsaWMgYWxsKCk6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2VudDtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIGFsbCBwYWdlcyB3aXRoIGEgdmFsdWUgZXhhY3RseSBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgcHVibGljIGVxdWFscyh2YWx1ZTogTGl0ZXJhbCk6IFNldDxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzLmdldCh2YWx1ZSwgQlRyZWVGaWVsZEluZGV4LkVNUFRZX1NFVCk7XG4gICAgfVxuXG4gICAgLyoqIFBsYWNlaG9sZGVyIGVtcHR5IHNldC4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBFTVBUWV9TRVQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbn1cbiIsICIvKiogUHJvdmlkZXMgYSBnbG9iYWwgZGlzcGF0Y2ggdGFibGUgZm9yIGV2YWx1YXRpbmcgYmluYXJ5IG9wZXJhdG9ycywgaW5jbHVkaW5nIGNvbXBhcmlzb24uICovXG5pbXBvcnQgeyBMaXRlcmFsUmVwciwgTGl0ZXJhbFR5cGUsIExpdGVyYWwsIExpdGVyYWxzLCBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCJhcGkvcmVzdWx0XCI7XG5pbXBvcnQgeyBCaW5hcnlPcCwgRXhwcmVzc2lvbnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9leHByZXNzaW9uXCI7XG5pbXBvcnQgdHlwZSB7IEV2YWx1YXRvciB9IGZyb20gXCJleHByZXNzaW9uL2V2YWx1YXRvclwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUsIER1cmF0aW9uIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgRmllbGRiZWFyaW5ncyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbi8qKiBBIGxpdGVyYWwgdHlwZSBvciBhIGNhdGNoLWFsbCAnKicuICovXG5leHBvcnQgdHlwZSBMaXRlcmFsVHlwZU9yQWxsID0gTGl0ZXJhbFR5cGUgfCBcIipcIjtcblxuLyoqIE1hcHMgYSBsaXRlcmFsIHR5cGUgb3IgdGhlIGNhdGNoLWFsbCAnKicuICovXG5leHBvcnQgdHlwZSBMaXRlcmFsUmVwckFsbDxUIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4gPSBUIGV4dGVuZHMgXCIqXCJcbiAgICA/IExpdGVyYWxcbiAgICA6IFQgZXh0ZW5kcyBMaXRlcmFsVHlwZVxuICAgID8gTGl0ZXJhbFJlcHI8VD5cbiAgICA6IGFueTtcblxuLyoqIEFuIGltcGxlbWVudGF0aW9uIGZvciBhIGJpbmFyeSBvcGVyYXRvci4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wSW1wbDxBIGV4dGVuZHMgTGl0ZXJhbCwgQiBleHRlbmRzIExpdGVyYWw+ID0gKGZpcnN0OiBBLCBzZWNvbmQ6IEIsIGN0eDogRXZhbHVhdG9yKSA9PiBMaXRlcmFsO1xuLyoqIEJpbmFyeSBvcGVyYXRvciB3aGljaCBjYW4gZmFpbCBhbmQgcHJvZHVjZSBhbiBlcnJvci4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wUmVzdWx0SW1wbDxBIGV4dGVuZHMgTGl0ZXJhbCwgQiBleHRlbmRzIExpdGVyYWw+ID0gKFxuICAgIGZpcnN0OiBBLFxuICAgIHNlY29uZDogQixcbiAgICBjdHg6IEV2YWx1YXRvclxuKSA9PiBSZXN1bHQ8TGl0ZXJhbCwgc3RyaW5nPjtcbi8qKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBhIGNvbXBhcmF0b3IgKHJldHVybmluZyBhIG51bWJlcikgd2hpY2ggdGhlbiBhdXRvbWF0aWNhbGx5IGRlZmluZXMgYWxsIG9mIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycy4gKi9cbmV4cG9ydCB0eXBlIENvbXBhcmVJbXBsPFQgZXh0ZW5kcyBMaXRlcmFsPiA9IChmaXJzdDogVCwgc2Vjb25kOiBULCBjdHg6IEV2YWx1YXRvcikgPT4gbnVtYmVyO1xuXG4vKiogUHJvdmlkZXMgaW1wbGVtZW50YXRpb25zIGZvciBiaW5hcnkgb3BlcmF0b3JzIG9uIHR3byB0eXBlcyB1c2luZyBhIHJlZ2lzdHJ5LiAqL1xuZXhwb3J0IGNsYXNzIEJpbmFyeU9wSGFuZGxlciB7XG4gICAgcHJpdmF0ZSBtYXA6IE1hcDxzdHJpbmcsIEJpbmFyeU9wUmVzdWx0SW1wbDxhbnksIGFueT4+O1xuICAgIHByaXZhdGUgaGFuZGxlRGVmYXVsdE51bGxzOiBib29sZWFuO1xuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmluYXJ5T3BIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVEZWZhdWx0TnVsbHMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXI8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgbGVmdDogVCxcbiAgICAgICAgb3A6IEJpbmFyeU9wLFxuICAgICAgICByaWdodDogVSxcbiAgICAgICAgZnVuYzogQmluYXJ5T3BJbXBsPExpdGVyYWxSZXByQWxsPFQ+LCBMaXRlcmFsUmVwckFsbDxVPj5cbiAgICApOiBCaW5hcnlPcEhhbmRsZXIge1xuICAgICAgICB0aGlzLm1hcC5zZXQoQmluYXJ5T3BIYW5kbGVyLnJlcHIob3AsIGxlZnQsIHJpZ2h0KSwgKGEsIGIsIGMpID0+IFJlc3VsdC5zdWNjZXNzKGZ1bmMoYSwgYiwgYykpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyUmVzdWx0PFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBVIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGxlZnQ6IFQsXG4gICAgICAgIG9wOiBCaW5hcnlPcCxcbiAgICAgICAgcmlnaHQ6IFUsXG4gICAgICAgIGZ1bmM6IEJpbmFyeU9wUmVzdWx0SW1wbDxMaXRlcmFsUmVwckFsbDxUPiwgTGl0ZXJhbFJlcHJBbGw8VT4+XG4gICAgKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgdGhpcy5tYXAuc2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBsZWZ0LCByaWdodCksIGZ1bmMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJDb21tPFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBVIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGxlZnQ6IFQsXG4gICAgICAgIG9wOiBCaW5hcnlPcCxcbiAgICAgICAgcmlnaHQ6IFUsXG4gICAgICAgIGZ1bmM6IEJpbmFyeU9wSW1wbDxMaXRlcmFsUmVwckFsbDxUPiwgTGl0ZXJhbFJlcHJBbGw8VT4+XG4gICAgKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIobGVmdCwgb3AsIHJpZ2h0LCBmdW5jKS5yZWdpc3RlcihyaWdodCwgb3AsIGxlZnQsIChhLCBiLCBjdHgpID0+IGZ1bmMoYiwgYSwgY3R4KSk7XG4gICAgfVxuXG4gICAgLyoqIElmIGVuYWJsZWQsIGFsbCBudWxsIChvcCkgbnVsbCBvcGVyYXRpb25zIHByb2R1Y2UgbnVsbC4gKi9cbiAgICBwdWJsaWMgd2l0aERlZmF1bHROdWxsSGFuZGxpbmcoKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEZWZhdWx0TnVsbHMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogSW1wbGVtZW50IGEgY29tcGFyaXNvbiBmdW5jdGlvbi4gKi9cbiAgICBwdWJsaWMgY29tcGFyZTxUIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4odHlwZTogVCwgY29tcGFyZTogQ29tcGFyZUltcGw8TGl0ZXJhbFJlcHJBbGw8VD4+KTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIodHlwZSwgXCI8XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSA8IDApXG4gICAgICAgICAgICAucmVnaXN0ZXIodHlwZSwgXCI8PVwiLCB0eXBlLCAoYSwgYiwgY3R4KSA9PiBjb21wYXJlKGEsIGIsIGN0eCkgPD0gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIj5cIiwgdHlwZSwgKGEsIGIsIGN0eCkgPT4gY29tcGFyZShhLCBiLCBjdHgpID4gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIj49XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSA+PSAwKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKHR5cGUsIFwiPVwiLCB0eXBlLCAoYSwgYiwgY3R4KSA9PiBjb21wYXJlKGEsIGIsIGN0eCkgPT0gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIiE9XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSAhPSAwKTtcbiAgICB9XG5cbiAgICAvKiogQXR0ZW1wdCB0byBldmFsdWF0ZSB0aGUgZ2l2ZW4gYmluYXJ5IG9wZXJhdG9yIG9uIHRoZSB0d28gbGl0ZXJhbCBmaWVsZHMuICovXG4gICAgcHVibGljIGV2YWx1YXRlKG9wOiBCaW5hcnlPcCwgbGVmdDogTGl0ZXJhbCwgcmlnaHQ6IExpdGVyYWwsIGN0eDogRXZhbHVhdG9yKTogUmVzdWx0PExpdGVyYWwsIHN0cmluZz4ge1xuICAgICAgICBsZXQgbGVmdFR5cGUgPSBMaXRlcmFscy50eXBlT2YobGVmdCk7XG4gICAgICAgIGxldCByaWdodFR5cGUgPSBMaXRlcmFscy50eXBlT2YocmlnaHQpO1xuICAgICAgICBpZiAoIWxlZnRUeXBlKSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYFVucmVjb2duaXplZCB2YWx1ZSAnJHtsZWZ0fSdgKTtcbiAgICAgICAgZWxzZSBpZiAoIXJpZ2h0VHlwZSkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBVbnJlY29nbml6ZWQgdmFsdWUgJyR7cmlnaHR9J2ApO1xuXG4gICAgICAgIC8vIFF1aWNrIGNhc2U6IGhhbmRsZSBudWxsIChvcCkgbnVsbCBieSBkZWZhdWx0IGlmIGVuYWJsZWQuXG4gICAgICAgIGlmICh0aGlzLmhhbmRsZURlZmF1bHROdWxscyAmJiBsZWZ0VHlwZSA9PT0gXCJudWxsXCIgJiYgcmlnaHRUeXBlID09PSBcIm51bGxcIikgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xuXG4gICAgICAgIGxldCBoYW5kbGVyID0gdGhpcy5tYXAuZ2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBsZWZ0VHlwZSwgcmlnaHRUeXBlKSk7XG4gICAgICAgIGlmIChoYW5kbGVyKSByZXR1cm4gaGFuZGxlcihsZWZ0LCByaWdodCwgY3R4KTtcblxuICAgICAgICAvLyBSaWdodC0nKicgZmFsbGJhY2s6XG4gICAgICAgIGxldCBoYW5kbGVyMiA9IHRoaXMubWFwLmdldChCaW5hcnlPcEhhbmRsZXIucmVwcihvcCwgbGVmdFR5cGUsIFwiKlwiKSk7XG4gICAgICAgIGlmIChoYW5kbGVyMikgcmV0dXJuIGhhbmRsZXIyKGxlZnQsIHJpZ2h0LCBjdHgpO1xuXG4gICAgICAgIC8vIExlZnQtJyonIGZhbGxiYWNrOlxuICAgICAgICBsZXQgaGFuZGxlcjMgPSB0aGlzLm1hcC5nZXQoQmluYXJ5T3BIYW5kbGVyLnJlcHIob3AsIFwiKlwiLCByaWdodFR5cGUpKTtcbiAgICAgICAgaWYgKGhhbmRsZXIzKSByZXR1cm4gaGFuZGxlcjMobGVmdCwgcmlnaHQsIGN0eCk7XG5cbiAgICAgICAgLy8gRG91YmxlICcqJyBmYWxsYmFjay5cbiAgICAgICAgbGV0IGhhbmRsZXI0ID0gdGhpcy5tYXAuZ2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBcIipcIiwgXCIqXCIpKTtcbiAgICAgICAgaWYgKGhhbmRsZXI0KSByZXR1cm4gaGFuZGxlcjQobGVmdCwgcmlnaHQsIGN0eCk7XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBObyBpbXBsZW1lbnRhdGlvbiBmb3VuZCBmb3IgJyR7bGVmdFR5cGV9ICR7b3B9ICR7cmlnaHRUeXBlfSdgKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiB0cmlwbGV0IGZvciB1bmlxdWUgbG9va3VwIGluIHRoZSBtYXAuICovXG4gICAgcHVibGljIHN0YXRpYyByZXByKG9wOiBCaW5hcnlPcCwgbGVmdDogTGl0ZXJhbFR5cGVPckFsbCwgcmlnaHQ6IExpdGVyYWxUeXBlT3JBbGwpIHtcbiAgICAgICAgcmV0dXJuIGAke2xlZnR9LCR7b3B9LCR7cmlnaHR9YDtcbiAgICB9XG59XG5cbi8qKiBDb25maWd1cmUgYW5kIGNyZWF0ZSBhIGJpbmFyeSBPUCBoYW5kbGVyIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmluYXJ5T3BzKGxpbmtOb3JtYWxpemVyOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBCaW5hcnlPcEhhbmRsZXIge1xuICAgIHJldHVybiAoXG4gICAgICAgIEJpbmFyeU9wSGFuZGxlci5jcmVhdGUoKVxuICAgICAgICAgICAgLmNvbXBhcmUoXCIqXCIsIChhLCBiKSA9PiBMaXRlcmFscy5jb21wYXJlKGEsIGIsIGxpbmtOb3JtYWxpemVyKSlcbiAgICAgICAgICAgIC8vIEdsb2JhbCBib29sZWFuIG9wZXJhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCIqXCIsIFwiJlwiLCBcIipcIiwgKGEsIGIpID0+IExpdGVyYWxzLmlzVHJ1dGh5KGEpICYmIExpdGVyYWxzLmlzVHJ1dGh5KGIpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiKlwiLCBcInxcIiwgXCIqXCIsIChhLCBiKSA9PiBMaXRlcmFscy5pc1RydXRoeShhKSB8fCBMaXRlcmFscy5pc1RydXRoeShiKSlcbiAgICAgICAgICAgIC8vIE51bWJlciBpbXBsZW1lbnRhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJudW1iZXJcIiwgXCIrXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBhICsgYilcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm51bWJlclwiLCBcIi1cIiwgXCJudW1iZXJcIiwgKGEsIGIpID0+IGEgLSBiKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwibnVtYmVyXCIsIFwiKlwiLCBcIm51bWJlclwiLCAoYSwgYikgPT4gYSAqIGIpXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJudW1iZXJcIiwgXCIvXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBhIC8gYilcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm51bWJlclwiLCBcIiVcIiwgXCJudW1iZXJcIiwgKGEsIGIpID0+IGEgJSBiKVxuICAgICAgICAgICAgLy8gU3RyaW5nIGltcGxlbWVudGF0aW9ucy5cbiAgICAgICAgICAgIC5yZWdpc3RlcihcInN0cmluZ1wiLCBcIitcIiwgXCIqXCIsIChhLCBiLCBjdHgpID0+IGEgKyBMaXRlcmFscy50b1N0cmluZyhiLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIipcIiwgXCIrXCIsIFwic3RyaW5nXCIsIChhLCBiLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGEsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpICsgYilcbiAgICAgICAgICAgIC5yZWdpc3RlckNvbW0oXCJzdHJpbmdcIiwgXCIqXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiAoYiA8IDAgPyBcIlwiIDogYS5yZXBlYXQoYikpKVxuICAgICAgICAgICAgLy8gRGF0ZSBPcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZGF0ZVwiLCBcIi1cIiwgXCJkYXRlXCIsIChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUR1cmF0aW9uKFxuICAgICAgICAgICAgICAgICAgICBhLmRpZmYoYiwgW1wieWVhcnNcIiwgXCJtb250aHNcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiXSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcImRhdGVcIiwgXCItXCIsIFwiZHVyYXRpb25cIiwgKGEsIGIpID0+IGEubWludXMoYikpXG4gICAgICAgICAgICAucmVnaXN0ZXJDb21tKFwiZGF0ZVwiLCBcIitcIiwgXCJkdXJhdGlvblwiLCAoYSwgYikgPT4gYS5wbHVzKGIpKVxuICAgICAgICAgICAgLy8gRHVyYXRpb24gT3BlcmF0aW9ucy5cbiAgICAgICAgICAgIC5yZWdpc3RlcihcImR1cmF0aW9uXCIsIFwiK1wiLCBcImR1cmF0aW9uXCIsIChhLCBiKSA9PiBub3JtYWxpemVEdXJhdGlvbihhLnBsdXMoYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZHVyYXRpb25cIiwgXCItXCIsIFwiZHVyYXRpb25cIiwgKGEsIGIpID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGEubWludXMoYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZHVyYXRpb25cIiwgXCIvXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBub3JtYWxpemVEdXJhdGlvbihhLm1hcFVuaXRzKCh4KSA9PiB4IC8gYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyQ29tbShcImR1cmF0aW9uXCIsIFwiKlwiLCBcIm51bWJlclwiLCAoYSwgYikgPT4gbm9ybWFsaXplRHVyYXRpb24oYS5tYXBVbml0cygoeCkgPT4geCAqIGIpKSlcbiAgICAgICAgICAgIC8vIEFycmF5IG9wZXJhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJhcnJheVwiLCBcIitcIiwgXCJhcnJheVwiLCAoYSwgYikgPT4gKFtdIGFzIExpdGVyYWxbXSkuY29uY2F0KGEpLmNvbmNhdChiKSlcbiAgICAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwib2JqZWN0XCIsIFwiK1wiLCBcIm9iamVjdFwiLCAoYSwgYikgPT4gT2JqZWN0LmFzc2lnbih7fSwgYSwgYikpXG4gICAgICAgICAgICAvLyBJbmRleCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiYXJyYXlcIiwgXCJpbmRleFwiLCBcIm51bWJlclwiLCAoYXJyLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWR4IDwgMCB8fCBpZHggPj0gYXJyLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycltpZHhdO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlclJlc3VsdChcImFycmF5XCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgKGFyciwga2V5LCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKFtdKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBhcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBjb250ZXh0LmV2YWx1YXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbnMuaW5kZXgoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtZW50KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkLnN1Y2Nlc3NmdWwpIHJldHVybiBSZXN1bHQuZmFpbHVyZShyZXNvbHZlZC5lcnJvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzb2x2ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm9iamVjdFwiLCBcImluZGV4XCIsIFwic3RyaW5nXCIsIChvYmosIGtleSkgPT4gRmllbGRiZWFyaW5ncy5nZXQob2JqLCBrZXkpID8/IG51bGwpXG4gICAgICAgICAgICAucmVnaXN0ZXJSZXN1bHQoXCJsaW5rXCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgaW5kZXhMaW5rKVxuICAgICAgICAgICAgLnJlZ2lzdGVyUmVzdWx0KFwibGlua1wiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIGluZGV4TGluaylcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm9iamVjdFwiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIChvYmosIGtleSkgPT4gb2JqW2tleV0gPz8gbnVsbClcbiAgICAgICAgICAgIC5yZWdpc3RlcihcInN0cmluZ1wiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIChzdHIsIGlkeCkgPT4gKGlkeCA8IDAgfHwgaWR4ID49IHN0ci5sZW5ndGggPyBudWxsIDogc3RyW2lkeF0pKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZGF0ZVwiLCBcImluZGV4XCIsIFwic3RyaW5nXCIsIGluZGV4RGF0ZSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcImR1cmF0aW9uXCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgaW5kZXhEdXJhdGlvbilcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdE51bGxIYW5kbGluZygpXG4gICAgKTtcbn1cblxuLyoqIENvbnZlcnQgaGlnaCBsZXZlbCBzZXR0aW5ncyB0byBzZXR0aW5ncyB1c2VkIGZvciBzdHJpbmcgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1NldHRpbmdzKHNldHRpbmdzOiBTZXR0aW5ncyk6IExpdGVyYWxzLlRvU3RyaW5nU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICAgIGRhdGVGb3JtYXQ6IHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0LFxuICAgICAgICBkYXRlVGltZUZvcm1hdDogc2V0dGluZ3MuZGVmYXVsdERhdGVUaW1lRm9ybWF0LFxuICAgICAgICBudWxsUmVwcmVzZW50YXRpb246IHNldHRpbmdzLnJlbmRlck51bGxBcyxcbiAgICB9O1xufVxuXG4vKiogQWxsb3dzIHlvdSB0byBpbmRleCBpbnRvIGxpbmtzIHRvIGdldCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleExpbmsobGluazogTGluaywga2V5OiBzdHJpbmcgfCBudW1iZXIsIGNvbnRleHQ6IEV2YWx1YXRvcik6IFJlc3VsdDxMaXRlcmFsLCBzdHJpbmc+IHtcbiAgICBjb25zdCBvYmplY3QgPSBjb250ZXh0LmxpbmtIYW5kbGVyLnJlc29sdmUobGluayk7XG4gICAgaWYgKCFvYmplY3QpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhudWxsKTtcblxuICAgIHJldHVybiBjb250ZXh0LmV2YWx1YXRlKEV4cHJlc3Npb25zLmluZGV4KEV4cHJlc3Npb25zLmxpdGVyYWwob2JqZWN0KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKSk7XG59XG5cbi8qKiBJbmRleCBpbnRvIGEgZGF0ZSwgcHJvZHVjaW5nIHZhcmlvdXMgdXNlZnVsIGZpZWxkcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleERhdGUoZGF0ZTogRGF0ZVRpbWUsIGtleTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcInllYXJcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLnllYXI7XG4gICAgICAgIGNhc2UgXCJtb250aFwiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUubW9udGg7XG4gICAgICAgIGNhc2UgXCJkYXlcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmRheTtcbiAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmhvdXI7XG4gICAgICAgIGNhc2UgXCJtaW51dGVcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZTtcbiAgICAgICAgY2FzZSBcInNlY29uZFwiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUuc2Vjb25kO1xuICAgICAgICBjYXNlIFwibWlsbGlzZWNvbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLm1pbGxpc2Vjb25kO1xuICAgICAgICBjYXNlIFwid2Vla1wiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUud2Vla051bWJlcjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqIEluZGV4IGludG8gYSBkdXJhdGlvbiwgcHJvZHVjaW5nIHZhcmlvdXMgdXNlZnVsIGZpZWxkcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleER1cmF0aW9uKGR1cjogRHVyYXRpb24sIGtleTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLnllYXJzO1xuICAgICAgICBjYXNlIFwibW9udGhzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLm1vbnRocztcbiAgICAgICAgY2FzZSBcImRheXNcIjpcbiAgICAgICAgICAgIHJldHVybiBkdXIuZGF5cztcbiAgICAgICAgY2FzZSBcImhvdXJzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLmhvdXJzO1xuICAgICAgICBjYXNlIFwibWludXRlc1wiOlxuICAgICAgICAgICAgcmV0dXJuIGR1ci5taW51dGVzO1xuICAgICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICAgICAgcmV0dXJuIGR1ci5zZWNvbmRzO1xuICAgICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLm1pbGxpc2Vjb25kcztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiIsICIvKiogRGVmYXVsdCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBleHByZXNzaW9uIGV2YWx1YXRvci4gKi9cblxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IExpdGVyYWxUeXBlLCBMaW5rLCBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IGVzY2FwZVJlZ2V4LCBjdXJyZW50TG9jYWxlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBMaXRlcmFsUmVwckFsbCwgTGl0ZXJhbFR5cGVPckFsbCwgc3RyaW5nU2V0dGluZ3MgfSBmcm9tIFwiZXhwcmVzc2lvbi9iaW5hcnlvcFwiO1xuaW1wb3J0IHsgRXZhbHVhdG9yIH0gZnJvbSBcImV4cHJlc3Npb24vZXZhbHVhdG9yXCI7XG5pbXBvcnQgeyBFeHByZXNzaW9ucyB9IGZyb20gXCJleHByZXNzaW9uL2V4cHJlc3Npb25cIjtcbmltcG9ydCB7IFBSSU1JVElWRVMgfSBmcm9tIFwiZXhwcmVzc2lvbi9wYXJzZXJcIjtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHdoaWNoIHRha2VzIGluIGEgZnVuY3Rpb24gY29udGV4dCBhbmQgYSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzLiBUaHJvd3MgYW4gZXJyb3IgaWYgYW5cbiAqIGludmFsaWQgbnVtYmVyL3R5cGUgb2YgYXJndW1lbnRzIGFyZSBwYXNzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uSW1wbCA9IChjb250ZXh0OiBFdmFsdWF0b3IsIC4uLnJlc3Q6IExpdGVyYWxbXSkgPT4gTGl0ZXJhbDtcbi8qKiBBIFwiYm91bmRcIiBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBoYXMgYWxyZWFkeSBoYWQgYSBmdW5jdGlvbiBjb250ZXh0IHBhc3NlZCB0byBpdC4gKi9cbmV4cG9ydCB0eXBlIEJvdW5kRnVuY3Rpb25JbXBsID0gKC4uLmFyZ3M6IExpdGVyYWxbXSkgPT4gTGl0ZXJhbDtcblxuLyoqIEEgZnVuY3Rpb24gdmFyaWFudCB1c2VkIGluIHRoZSBmdW5jdGlvbiBidWlsZGVyIHdoaWNoIGhvbGRzIHRoZSBhcmd1bWVudCB0eXBlcy4gKi9cbmludGVyZmFjZSBGdW5jdGlvblZhcmlhbnQge1xuICAgIGFyZ3M6IExpdGVyYWxUeXBlT3JBbGxbXTtcbiAgICB2YXJhcmdzOiBib29sZWFuO1xuICAgIC8qKiBUaGUgaW1wbGVtZW50aW5nIGZ1bmN0aW9uIGZvciB0aGlzIHNwZWNpZmljIHZhcmlhbnQuICovXG4gICAgaW1wbDogRnVuY3Rpb25JbXBsO1xufVxuXG4vKipcbiAqIEFsbG93cyBmb3IgdGhlIGNyZWF0aW9uIG9mIGZ1bmN0aW9ucyB0aGF0IGNoZWNrIHRoZSBudW1iZXIgYW5kIHR5cGUgb2YgdGhlaXIgYXJndW1lbnRzLCBhbmQgZGlzcGF0Y2hcbiAqIHRvIGRpZmZlcmVudCBpbXBsZW1lbmF0aW9ucyBiYXNlZCBvbiB0aGUgdHlwZXMgb2YgdGhlIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uQnVpbGRlciB7XG4gICAgdmFyaWFudHM6IEZ1bmN0aW9uVmFyaWFudFtdO1xuICAgIHZlY3Rvcml6ZWQ6IFJlY29yZDxudW1iZXIsIG51bWJlcltdPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFyaWFudHMgPSBbXTtcbiAgICAgICAgdGhpcy52ZWN0b3JpemVkID0ge307XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhIGdlbmVyYWwgZnVuY3Rpb24gdmFyaWFudCB3aGljaCBhY2NlcHRzIGFueSBudW1iZXIgb2YgYXJndW1lbnRzIG9mIGFueSB0eXBlLiAqL1xuICAgIHB1YmxpYyB2YXJhcmcoaW1wbDogRnVuY3Rpb25JbXBsKTogRnVuY3Rpb25CdWlsZGVyIHtcbiAgICAgICAgdGhpcy52YXJpYW50cy5wdXNoKHsgYXJnczogW10sIHZhcmFyZ3M6IHRydWUsIGltcGwgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYSBmdW5jdGlvbiB2YXJpYW50IHdoaWNoIHRha2VzIGluIGEgc2luZ2xlIGFyZ3VtZW50LiAqL1xuICAgIHB1YmxpYyBhZGQxPFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgYXJnVHlwZTogVCxcbiAgICAgICAgaW1wbDogKGE6IExpdGVyYWxSZXByQWxsPFQ+LCBjb250ZXh0OiBFdmFsdWF0b3IpID0+IExpdGVyYWxcbiAgICApOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZhcmlhbnRzLnB1c2goe1xuICAgICAgICAgICAgYXJnczogW2FyZ1R5cGVdLFxuICAgICAgICAgICAgdmFyYXJnczogZmFsc2UsXG4gICAgICAgICAgICBpbXBsOiAoYywgLi4ucmVzdCkgPT4gaW1wbChyZXN0WzBdIGFzIExpdGVyYWxSZXByQWxsPFQ+LCBjKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYSBmdW5jdGlvbiB2YXJpYW50IHdoaWNoIHRha2VzIGluIHR3byB0eXBlZCBhcmd1bWVudHMuICovXG4gICAgcHVibGljIGFkZDI8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgYXJnMTogVCxcbiAgICAgICAgYXJnMjogVSxcbiAgICAgICAgaW1wbDogKGE6IExpdGVyYWxSZXByQWxsPFQ+LCBiOiBMaXRlcmFsUmVwckFsbDxVPiwgY29udGV4dDogRXZhbHVhdG9yKSA9PiBMaXRlcmFsXG4gICAgKTogRnVuY3Rpb25CdWlsZGVyIHtcbiAgICAgICAgdGhpcy52YXJpYW50cy5wdXNoKHtcbiAgICAgICAgICAgIGFyZ3M6IFthcmcxLCBhcmcyXSxcbiAgICAgICAgICAgIHZhcmFyZ3M6IGZhbHNlLFxuICAgICAgICAgICAgaW1wbDogKGMsIC4uLnJlc3QpID0+IGltcGwocmVzdFswXSBhcyBMaXRlcmFsUmVwckFsbDxUPiwgcmVzdFsxXSBhcyBMaXRlcmFsUmVwckFsbDxVPiwgYyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogQWRkIGEgZnVuY3Rpb24gdmFyaWFudCB3aGljaCB0YWtlcyBpbiB0aHJlZSB0eXBlZCBhcmd1bWVudHMuICovXG4gICAgcHVibGljIGFkZDM8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBWIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGFyZzE6IFQsXG4gICAgICAgIGFyZzI6IFUsXG4gICAgICAgIGFyZzM6IFYsXG4gICAgICAgIGltcGw6IChhOiBMaXRlcmFsUmVwckFsbDxUPiwgYjogTGl0ZXJhbFJlcHJBbGw8VT4sIGM6IExpdGVyYWxSZXByQWxsPFY+LCBjb250ZXh0OiBFdmFsdWF0b3IpID0+IExpdGVyYWxcbiAgICApOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZhcmlhbnRzLnB1c2goe1xuICAgICAgICAgICAgYXJnczogW2FyZzEsIGFyZzIsIGFyZzNdLFxuICAgICAgICAgICAgdmFyYXJnczogZmFsc2UsXG4gICAgICAgICAgICBpbXBsOiAoYywgLi4ucmVzdCkgPT5cbiAgICAgICAgICAgICAgICBpbXBsKHJlc3RbMF0gYXMgTGl0ZXJhbFJlcHJBbGw8VD4sIHJlc3RbMV0gYXMgTGl0ZXJhbFJlcHJBbGw8VT4sIHJlc3RbMl0gYXMgTGl0ZXJhbFJlcHJBbGw8Vj4sIGMpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqIEFkZCB2ZWN0b3JpemVkIHZhcmlhbnRzIHdoaWNoIGFjY2VwdCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cyBhbmQgZGVsZWdhdGUuICovXG4gICAgcHVibGljIHZlY3Rvcml6ZShudW1BcmdzOiBudW1iZXIsIHBvc2l0aW9uczogbnVtYmVyW10pOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZlY3Rvcml6ZWRbbnVtQXJnc10gPSBwb3NpdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBmdW5jdGlvbiB3aGljaCBjaGVja3MgdGhlIG51bWJlciBhbmQgdHlwZSBvZiBhcmd1bWVudHMsIHBhc3NpbmcgdGhlbSBvbiB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgdmFyaWFudC4gKi9cbiAgICBwdWJsaWMgYnVpbGQoKTogRnVuY3Rpb25JbXBsIHtcbiAgICAgICAgbGV0IHNlbGY6IEZ1bmN0aW9uSW1wbCA9IChjb250ZXh0OiBFdmFsdWF0b3IsIC4uLmFyZ3M6IExpdGVyYWxbXSkgPT4ge1xuICAgICAgICAgICAgbGV0IHR5cGVzOiBMaXRlcmFsVHlwZVtdID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBhcmcgb2YgYXJncykge1xuICAgICAgICAgICAgICAgIGxldCBhcmdUeXBlID0gTGl0ZXJhbHMudHlwZU9mKGFyZyk7XG4gICAgICAgICAgICAgICAgaWYgKCFhcmdUeXBlKSB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemVkIGFyZ3VtZW50IHR5cGUgZm9yIGFyZ3VtZW50ICcke2FyZ30nYCk7XG4gICAgICAgICAgICAgICAgdHlwZXMucHVzaChhcmdUeXBlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSGFuZGxlIHZlY3Rvcml6YXRpb24sIHBvc3NpYmx5IGluIG11bHRpcGxlIGZpZWxkcy5cbiAgICAgICAgICAgIGlmICh0aGlzLnZlY3Rvcml6ZWRbdHlwZXMubGVuZ3RoXSkge1xuICAgICAgICAgICAgICAgIGxldCB2ZWN0b3JpemVkUG9zaXRpb25zID0gdGhpcy52ZWN0b3JpemVkW3R5cGVzLmxlbmd0aF0uZmlsdGVyKChrKSA9PiB0eXBlc1trXSA9PSBcImFycmF5XCIpO1xuICAgICAgICAgICAgICAgIGlmICh2ZWN0b3JpemVkUG9zaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkxlbmd0aCA9IHZlY3Rvcml6ZWRQb3NpdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHApID0+IChhcmdzW3BdIGFzIGFueVtdKS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBNYXRoLm1pbihwLCBjKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgc3ViZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgbG9uZ2VzdCBhcnJheS5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgeW91IGNhbGwgYSB2ZWN0b3JpemVkIGZ1bmN0aW9uIHdpdGggZGlmZmVyZW50LWxlbmd0aCBhcnJheXMsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBvdXRwdXQgaXMgbGltaXRlZCBieSB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydGVzdCBhcnJheS5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB2cG9zID0gMDsgdnBvcyA8IG1pbkxlbmd0aDsgdnBvcysrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3ViYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlY3Rvcml6ZWRQb3NpdGlvbnMuaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcnIgPSBhcmdzW2luZGV4XSBhcyBhbnlbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYXJncy5wdXNoKGFyclt2cG9zXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYXJncy5wdXNoKGFyZ3NbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHNlbGYoY29udGV4dCwgLi4uc3ViYXJncykpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG91dGVyOiBmb3IgKGxldCB2YXJpYW50IG9mIHRoaXMudmFyaWFudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFyaWFudC52YXJhcmdzKSByZXR1cm4gdmFyaWFudC5pbXBsKGNvbnRleHQsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmICh2YXJpYW50LmFyZ3MubGVuZ3RoICE9IHR5cGVzLmxlbmd0aCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdmFyaWFudC5hcmdzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5hcmdzW2luZGV4XSAhPSBcIipcIiAmJiB2YXJpYW50LmFyZ3NbaW5kZXhdICE9IHR5cGVzW2luZGV4XSkgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhbnQuaW1wbChjb250ZXh0LCAuLi5hcmdzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIGltcGxlbWVudGF0aW9uIG9mICcke3RoaXMubmFtZX0nIGZvdW5kIGZvciBhcmd1bWVudHM6ICR7dHlwZXMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbn1cblxuLyoqIFV0aWxpdGllcyBmb3IgbWFuYWdpbmcgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGdW5jdGlvbnMge1xuICAgIC8qKiBCaW5kIGEgY29udGV4dCB0byBhIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uLCB5aWVsZGluZyBhIGZ1bmN0aW9uIHdoaWNoIGRvZXMgbm90IG5lZWQgdGhlIGNvbnRleHQgYXJndW1lbnQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmQoZnVuYzogRnVuY3Rpb25JbXBsLCBjb250ZXh0OiBFdmFsdWF0b3IpOiBCb3VuZEZ1bmN0aW9uSW1wbCB7XG4gICAgICAgIHJldHVybiAoLi4uYXJnczogTGl0ZXJhbFtdKSA9PiBmdW5jKGNvbnRleHQsIC4uLmFyZ3MpO1xuICAgIH1cblxuICAgIC8qKiBCaW5kIGEgY29udGV4dCB0byBhbGwgZnVuY3Rpb25zIGluIHRoZSBnaXZlbiBtYXAsIHlpZWxkaW5nIGEgbmV3IG1hcCBvZiBib3VuZCBmdW5jdGlvbnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmRBbGwoXG4gICAgICAgIGZ1bmNzOiBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbkltcGw+LFxuICAgICAgICBjb250ZXh0OiBFdmFsdWF0b3JcbiAgICApOiBSZWNvcmQ8c3RyaW5nLCBCb3VuZEZ1bmN0aW9uSW1wbD4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBCb3VuZEZ1bmN0aW9uSW1wbD4gPSB7fTtcbiAgICAgICAgZm9yIChsZXQgW2tleSwgZnVuY10gb2YgT2JqZWN0LmVudHJpZXMoZnVuY3MpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IEZ1bmN0aW9ucy5iaW5kKGZ1bmMsIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBhbGwgZGVmaW5lZCBmdW5jdGlvbnM7IGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZXkgY2FuIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBkYXRhdmlldyxcbiAqIGFuZCB0ZXN0IGNvZGUuXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgRGVmYXVsdEZ1bmN0aW9ucyB7XG4gICAgZXhwb3J0IGNvbnN0IHR5cGVPZiA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJ0eXBlXCIpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKF8pID0+IFwiYXJyYXlcIilcbiAgICAgICAgLmFkZDEoXCJib29sZWFuXCIsIChfKSA9PiBcImJvb2xlYW5cIilcbiAgICAgICAgLmFkZDEoXCJkYXRlXCIsIChfKSA9PiBcImRhdGVcIilcbiAgICAgICAgLmFkZDEoXCJkdXJhdGlvblwiLCAoXykgPT4gXCJkdXJhdGlvblwiKVxuICAgICAgICAuYWRkMShcImZ1bmN0aW9uXCIsIChfKSA9PiBcImZ1bmN0aW9uXCIpXG4gICAgICAgIC5hZGQxKFwibGlua1wiLCAoXykgPT4gXCJsaW5rXCIpXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoXykgPT4gXCJudWxsXCIpXG4gICAgICAgIC5hZGQxKFwibnVtYmVyXCIsIChfKSA9PiBcIm51bWJlclwiKVxuICAgICAgICAuYWRkMShcIm9iamVjdFwiLCAoXykgPT4gXCJvYmplY3RcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKF8pID0+IFwic3RyaW5nXCIpXG4gICAgICAgIC5hZGQxKFwiKlwiLCAoXykgPT4gXCJ1bmtub3duXCIpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIENvbXB1dGUgdGhlIGxlbmd0aCBvZiBhIGRhdGEgdHlwZS4gKi9cbiAgICBleHBvcnQgY29uc3QgbGVuZ3RoID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImxlbmd0aFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhKSA9PiBhLmxlbmd0aClcbiAgICAgICAgLmFkZDEoXCJvYmplY3RcIiwgKGEpID0+IE9iamVjdC5rZXlzKGEpLmxlbmd0aClcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKGEpID0+IGEubGVuZ3RoKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9hKSA9PiAwKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBMaXN0IGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBsaXN0OiBGdW5jdGlvbkltcGwgPSAoX2NvbnRleHQsIC4uLmFyZ3MpID0+IGFyZ3M7XG5cbiAgICAvKiogT2JqZWN0IGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBvYmplY3Q6IEZ1bmN0aW9uSW1wbCA9IChfY29udGV4dCwgLi4uYXJncykgPT4ge1xuICAgICAgICBpZiAoYXJncy5sZW5ndGggJSAyICE9IDApIHRocm93IEVycm9yKFwib2JqZWN0KCkgcmVxdWlyZXMgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzXCIpO1xuICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJncy5sZW5ndGg7IGluZGV4ICs9IDIpIHtcbiAgICAgICAgICAgIGxldCBrZXkgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgICAgIGlmICghTGl0ZXJhbHMuaXNTdHJpbmcoa2V5KSkgdGhyb3cgRXJyb3IoXCJrZXlzIHNob3VsZCBiZSBvZiB0eXBlIHN0cmluZyBmb3Igb2JqZWN0KGtleTEsIHZhbHVlMSwgLi4uKVwiKTtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gYXJnc1tpbmRleCArIDFdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgLyoqIEludGVybmFsIGxpbmsgY29uc3RydWN0b3IgZnVuY3Rpb24uICovXG4gICAgZXhwb3J0IGNvbnN0IGxpbms6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsaW5rXCIpXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChhLCBjKSA9PiBMaW5rLmZpbGUoYy5saW5rSGFuZGxlci5ub3JtYWxpemUoYSksIGZhbHNlKSlcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChhKSA9PiBhKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9hKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHQsIGQsIGMpID0+IExpbmsuZmlsZShjLmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSh0KSwgZmFsc2UsIGQpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcImJvb2xlYW5cIiwgKHQsIGQsIGUsIGMpID0+IExpbmsuZmlsZShjLmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSh0KSwgZSwgZCkpXG4gICAgICAgIC5hZGQyKFwibGlua1wiLCBcInN0cmluZ1wiLCAodCwgZCkgPT4gdC53aXRoRGlzcGxheShkKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICh0LCBfbiwgYykgPT4gbGluayhjLCB0KSlcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIEVtYmVkIGFuZCB1bi1lbWJlZCBhIGxpbmsuICovXG4gICAgZXhwb3J0IGNvbnN0IGVtYmVkOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZW1iZWRcIilcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChsKSA9PiBsLnRvRW1iZWQoKSlcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5hZGQyKFwibGlua1wiLCBcImJvb2xlYW5cIiwgKGwsIGUsIGMpID0+IChlID8gbC50b0VtYmVkKCkgOiBsLmZyb21FbWJlZCgpKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvKiogRGF0ZSBjb25zdHJ1Y3RvciBmdW5jdGlvbi4gKi9cbiAgICBleHBvcnQgY29uc3QgZGF0ZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJkYXRlXCIpXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChzdHIpID0+IHtcbiAgICAgICAgICAgIGxldCBwYXJzZWREYXRlID0gUFJJTUlUSVZFUy5kYXRlUGx1cy5wYXJzZShzdHIpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuc3RhdHVzKSByZXR1cm4gcGFyc2VkRGF0ZS52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiZGF0ZVwiLCAoZCkgPT4gZClcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChsaW5rLCBjKSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gcGFyc2UgZnJvbSB0aGUgZGlzcGxheS4uLlxuICAgICAgICAgICAgaWYgKGxpbmsuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWREYXRlID0gUFJJTUlUSVZFUy5kYXRlLnBhcnNlKGxpbmsuZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuc3RhdHVzKSByZXR1cm4gcGFyc2VkRGF0ZS52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGhlbiB0cnkgdG8gcGFyc2UgZnJvbSB0aGUgcGF0aC4uLlxuICAgICAgICAgICAgbGV0IHBhcnNlZERhdGUgPSBQUklNSVRJVkVTLmRhdGUucGFyc2UobGluay5wYXRoKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWREYXRlLnN0YXR1cykgcmV0dXJuIHBhcnNlZERhdGUudmFsdWU7XG5cbiAgICAgICAgICAgIC8vIFRoZW4gcHVsbCBpdCBmcm9tIHRoZSBmaWxlLlxuICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gYy5saW5rSGFuZGxlci5yZXNvbHZlKGxpbmsucGF0aCk7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZWQgJiYgKHJlc29sdmVkIGFzIGFueSk/LmZpbGU/LmRheSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAocmVzb2x2ZWQgYXMgYW55KT8uZmlsZT8uZGF5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKGQsIGYpID0+IHtcbiAgICAgICAgICAgIGlmIChmID09PSBcInhcIiB8fCBmID09PSBcIlhcIikge1xuICAgICAgICAgICAgICAgIGxldCBtYXRjaCA9IE5VTUJFUl9SRUdFWC5leGVjKGQpO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgcmV0dXJuIERhdGVUaW1lLmZyb21NaWxsaXMoTnVtYmVyLnBhcnNlSW50KG1hdGNoWzBdKSAqIChmID09PSBcIlhcIiA/IDEwMDAgOiAxKSk7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwiTm90IGEgbnVtYmVyIGZvciBmb3JtYXQoICgkeyBmIH0pOiAkeyBkIH1cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkRGF0ZSA9IERhdGVUaW1lLmZyb21Gb3JtYXQoZCwgZik7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuaXNWYWxpZCkgcmV0dXJuIHBhcnNlZERhdGU7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBDYW4ndCBoYW5kbGUgZm9ybWF0ICgke2Z9KSBvbiBkYXRlIHN0cmluZyAoJHtkfSlgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvKiogRHVyYXRpb24gY29uc3RydWN0b3IgZnVuY3Rpb24uICovXG4gICAgZXhwb3J0IGNvbnN0IGR1ciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJkdXJcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKHN0cikgPT4ge1xuICAgICAgICAgICAgbGV0IHBhcnNlZER1ciA9IFBSSU1JVElWRVMuZHVyYXRpb24ucGFyc2Uoc3RyLnRyaW0oKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkRHVyLnN0YXR1cykgcmV0dXJuIHBhcnNlZER1ci52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiZHVyYXRpb25cIiwgKGQpID0+IGQpXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoZCkgPT4gZClcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIEZvcm1hdCBhIGRhdGUgdXNpbmcgYSBsdXhvbi9tb21lbnQtc3R5bGUgZGF0ZSBmb3JtYXQuICovXG4gICAgZXhwb3J0IGNvbnN0IGRhdGVmb3JtYXQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZGF0ZWZvcm1hdFwiKVxuICAgICAgICAuYWRkMihcImRhdGVcIiwgXCJzdHJpbmdcIiwgKGRhdGUsIGZvcm1hdCkgPT4gZGF0ZS50b0Zvcm1hdChmb3JtYXQsIHsgbG9jYWxlOiBjdXJyZW50TG9jYWxlKCkgfSkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcInN0cmluZ1wiLCAoX251bCwgX2Zvcm1hdCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGxvY2FsdGltZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsb2NhbHRpbWVcIilcbiAgICAgICAgLmFkZDEoXCJkYXRlXCIsIChkKSA9PiBkLnRvTG9jYWwoKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGNvbnN0IE5VTUJFUl9SRUdFWCA9IC8tP1swLTldKyhcXC5bMC05XSspPy87XG5cbiAgICAvKiogTnVtYmVyIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBudW1iZXIgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibnVtYmVyXCIpXG4gICAgICAgIC5hZGQxKFwibnVtYmVyXCIsIChhKSA9PiBhKVxuICAgICAgICAuYWRkMShcInN0cmluZ1wiLCAoc3RyKSA9PiB7XG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSBOVU1CRVJfUkVHRVguZXhlYyhzdHIpO1xuICAgICAgICAgICAgaWYgKG1hdGNoKSByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQobWF0Y2hbMF0pO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYW55IHZhbHVlIHRvIGEgcmVhc29uYWJsZSBpbnRlcm5hbCBzdHJpbmcgcmVwcmVzZW50YXRpb24uIE1vc3QgdXNlZnVsIGZvciBkYXRlcywgc3RyaW5ncywgbnVtYmVycywgYW5kXG4gICAgICogc28gb24uXG4gICAgICovXG4gICAgZXhwb3J0IGNvbnN0IHN0cmluZyA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzdHJpbmdcIilcbiAgICAgICAgLmFkZDEoXCIqXCIsIChhLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGEsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCByb3VuZCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyb3VuZFwiKVxuICAgICAgICAuYWRkMShcIm51bWJlclwiLCAobikgPT4gTWF0aC5yb3VuZChuKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYWRkMihcIm51bWJlclwiLCBcIm51bWJlclwiLCAobiwgcCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAgPD0gMCkgcmV0dXJuIE1hdGgucm91bmQobik7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChuLnRvRml4ZWQocCkpO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bWJlclwiLCBcIm51bGxcIiwgKG4pID0+IE1hdGgucm91bmQobikpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1pbjogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcIm1pblwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChhLCBfbikgPT4gYSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoX24sIGEpID0+IGEpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGEsIGIsIGN0eCkgPT4gKExpdGVyYWxzLmNvbXBhcmUoYSwgYiwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPD0gMCA/IGEgOiBiKSlcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYSwgY3R4KSA9PiBtaW4oY3R4LCAuLi5hKSlcbiAgICAgICAgLnZhcmFyZygoY3R4LCAuLi5hcmdzKSA9PiAoYXJncy5sZW5ndGggPT0gMCA/IG51bGwgOiBhcmdzLnJlZHVjZSgocCwgYykgPT4gbWluKGN0eCwgcCwgYykpKSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbWF4OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWF4XCIpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKGEsIF9uKSA9PiBhKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgYSkgPT4gYSlcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwiKlwiLCAoYSwgYiwgY3R4KSA9PiAoTGl0ZXJhbHMuY29tcGFyZShhLCBiLCBjdHgubGlua0hhbmRsZXIubm9ybWFsaXplKSA+IDAgPyBhIDogYikpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKGEsIGN0eCkgPT4gbWF4KGN0eCwgLi4uYSkpXG4gICAgICAgIC52YXJhcmcoKGN0eCwgLi4uYXJncykgPT4gKGFyZ3MubGVuZ3RoID09IDAgPyBudWxsIDogYXJncy5yZWR1Y2UoKHAsIGMpID0+IG1heChjdHgsIHAsIGMpKSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1pbmJ5OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWluYnlcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGZ1bmMsIGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBhcnIubWFwKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHYsIG1hcHBlZDogZnVuYyhjdHgsIHYpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZCA9IHZhbHVlcy5maWx0ZXIoKHYpID0+ICFMaXRlcmFscy5pc051bGwodi5tYXBwZWQpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT0gMCkgcmV0dXJuIGFyclswXTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkLnJlZHVjZSgocCwgYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChMaXRlcmFscy5jb21wYXJlKHAubWFwcGVkLCBjLm1hcHBlZCwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPD0gMCkgcmV0dXJuIHA7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gYztcbiAgICAgICAgICAgIH0pLnZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCJmdW5jdGlvblwiLCAoX2FyciwgX2Z1bmMsIF9jdHgpID0+IG51bGwpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1heGJ5OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWF4YnlcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGZ1bmMsIGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBhcnIubWFwKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHYsIG1hcHBlZDogZnVuYyhjdHgsIHYpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZCA9IHZhbHVlcy5maWx0ZXIoKHYpID0+ICFMaXRlcmFscy5pc051bGwodi5tYXBwZWQpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT0gMCkgcmV0dXJuIGFyclswXTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkLnJlZHVjZSgocCwgYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChMaXRlcmFscy5jb21wYXJlKHAubWFwcGVkLCBjLm1hcHBlZCwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPiAwKSByZXR1cm4gcDtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBjO1xuICAgICAgICAgICAgfSkudmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcImZ1bmN0aW9uXCIsIChfYXJyLCBfZnVuYywgX2N0eCkgPT4gbnVsbClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3Qgc3RyaXB0aW1lID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInN0cmlwdGltZVwiKVxuICAgICAgICAuYWRkMShcImRhdGVcIiwgKGQpID0+IERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiBkLnllYXIsIG1vbnRoOiBkLm1vbnRoLCBkYXk6IGQuZGF5IH0pKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9uKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBEZWZhdWx0IGNvbnRhaW5zLCB3aGljaCBsb29rcyB0aHJvdWdoIGRhdGEgc3RydWN0dXJlcyByZWN1cnNpdmVseS5cbiAgICBleHBvcnQgY29uc3QgY29udGFpbnM6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJjb250YWluc1wiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiKlwiLCAobCwgZWxlbSwgY29udGV4dCkgPT4gbC5zb21lKChlKSA9PiBjb250YWlucyhjb250ZXh0LCBlLCBlbGVtKSkpXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChoYXlzdGFjaywgbmVlZGxlKSA9PiBoYXlzdGFjay5pbmNsdWRlcyhuZWVkbGUpKVxuICAgICAgICAuYWRkMihcIm9iamVjdFwiLCBcInN0cmluZ1wiLCAob2JqLCBrZXkpID0+IGtleSBpbiBvYmopXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGVsZW0xLCBlbGVtMiwgY29udGV4dCkgPT5cbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMSksIFwiPVwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGVsZW0yKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KClcbiAgICAgICAgKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBDYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24gb2YgY29udGFpbnMuXG4gICAgZXhwb3J0IGNvbnN0IGljb250YWluczogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImljb250YWluc1wiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiKlwiLCAobCwgZWxlbSwgY29udGV4dCkgPT4gbC5zb21lKChlKSA9PiBpY29udGFpbnMoY29udGV4dCwgZSwgZWxlbSkpKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoaGF5c3RhY2ssIG5lZWRsZSkgPT5cbiAgICAgICAgICAgIGhheXN0YWNrLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMobmVlZGxlLnRvTG9jYWxlTG93ZXJDYXNlKCkpXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJvYmplY3RcIiwgXCJzdHJpbmdcIiwgKG9iaiwga2V5KSA9PiBrZXkgaW4gb2JqKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsIChlbGVtMSwgZWxlbTIsIGNvbnRleHQpID0+XG4gICAgICAgICAgICBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoZWxlbTEpLCBcIj1cIiwgRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMikpKVxuICAgICAgICAgICAgICAgIC5vckVsc2VUaHJvdygpXG4gICAgICAgIClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gXCJleGFjdFwiIGNvbnRhaW5zLCBkb2VzIG5vdCBsb29rIHJlY3Vyc2l2ZWx5LlxuICAgIGV4cG9ydCBjb25zdCBlY29udGFpbnM6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJlY29udGFpbnNcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcIipcIiwgKGwsIGVsZW0sIGNvbnRleHQpID0+XG4gICAgICAgICAgICBsLnNvbWUoKGUpID0+XG4gICAgICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtKSwgXCI9XCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoZSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChoYXlzdGFjaywgbmVlZGxlKSA9PiBoYXlzdGFjay5pbmNsdWRlcyhuZWVkbGUpKVxuICAgICAgICAuYWRkMihcIm9iamVjdFwiLCBcInN0cmluZ1wiLCAob2JqLCBrZXkpID0+IGtleSBpbiBvYmopXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGVsZW0xLCBlbGVtMiwgY29udGV4dCkgPT5cbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMSksIFwiPVwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGVsZW0yKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KClcbiAgICAgICAgKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBDYXNlIGluc2Vuc2l0aXZlIGNvbnRhaW5zIHdoaWNoIGxvb2tzIGZvciBleGFjdCB3b3JkIG1hdGNoZXMgKGkuZS4sIGJvdW5kcnktdG8tYm91bmRyeSBtYXRjaCkuXG4gICAgZXhwb3J0IGNvbnN0IGNvbnRhaW5zd29yZDogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImNvbnRhaW5zd29yZFwiKVxuICAgICAgICAuYWRkMihcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgKGhheSwgbmVlZGxlKSA9PiAhIWhheS5tYXRjaChuZXcgUmVnRXhwKFwiLipcXFxcYlwiICsgZXNjYXBlUmVnZXgobmVlZGxlKSArIFwiXFxcXGIuKlwiLCBcImlcIikpXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoX2EsIF9iKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX2IpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBFeHRyYWN0IDAgb3IgbW9yZSBrZXlzIGZyb20gYSBnaXZlbiBvYmplY3QgdmlhIGluZGV4aW5nLiAqL1xuICAgIGV4cG9ydCBjb25zdCBleHRyYWN0OiBGdW5jdGlvbkltcGwgPSAoY29udGV4dDogRXZhbHVhdG9yLCAuLi5hcmdzOiBMaXRlcmFsW10pID0+IHtcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHJldHVybiBcImV4dHJhY3Qob2JqZWN0LCBrZXkxLCAuLi4pIHJlcXVpcmVzIGF0IGxlYXN0IDEgYXJndW1lbnRcIjtcblxuICAgICAgICAvLyBNYW51YWxseSBoYW5kbGUgdmVjdG9yaXphdGlvbiBpbiB0aGUgZmlyc3QgYXJndW1lbnQuXG4gICAgICAgIGxldCBvYmplY3QgPSBhcmdzWzBdO1xuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNBcnJheShvYmplY3QpKSByZXR1cm4gb2JqZWN0Lm1hcCgodikgPT4gZXh0cmFjdChjb250ZXh0LCB2LCAuLi5hcmdzLnNsaWNlKDEpKSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4gPSB7fTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBsZXQga2V5ID0gYXJnc1tpbmRleF07XG4gICAgICAgICAgICBpZiAoIUxpdGVyYWxzLmlzU3RyaW5nKGtleSkpIHRocm93IEVycm9yKFwiZXh0cmFjdChvYmplY3QsIGtleTEsIC4uLikgbXVzdCBiZSBjYWxsZWQgd2l0aCBzdHJpbmcga2V5c1wiKTtcblxuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmluZGV4KEV4cHJlc3Npb25zLmxpdGVyYWwob2JqZWN0KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKSlcbiAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIC8vIFJldmVyc2UgYW4gYXJyYXkgb3Igc3RyaW5nLlxuICAgIGV4cG9ydCBjb25zdCByZXZlcnNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJldmVyc2VcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAobCkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSBsLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHJlc3VsdC5wdXNoKGxbaW5kZXhdKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChsKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgbC5sZW5ndGg7IGMrKykgcmVzdWx0ICs9IGxbbC5sZW5ndGggLSBjIC0gMV07XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gU29ydCBhbiBhcnJheTsgaWYgZ2l2ZW4gdHdvIGFyZ3VtZW50cywgc29ydHMgYnkgdGhlIGtleSByZXR1cm5lZC5cbiAgICBleHBvcnQgY29uc3Qgc29ydDogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInNvcnRcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAobGlzdCwgY29udGV4dCkgPT4gc29ydChjb250ZXh0LCBsaXN0LCAoX2N0eDogRXZhbHVhdG9yLCBhOiBMaXRlcmFsKSA9PiBhKSlcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChsaXN0LCBrZXksIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAoW10gYXMgTGl0ZXJhbFtdKS5jb25jYXQobGlzdCk7XG4gICAgICAgICAgICByZXN1bHQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBha2V5ID0ga2V5KGNvbnRleHQsIGEpO1xuICAgICAgICAgICAgICAgIGxldCBia2V5ID0ga2V5KGNvbnRleHQsIGIpO1xuICAgICAgICAgICAgICAgIGxldCBsZSA9IGNvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoYWtleSksIFwiPFwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGJrZXkpKSlcbiAgICAgICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKExpdGVyYWxzLmlzVHJ1dGh5KGxlKSkgcmV0dXJuIC0xO1xuXG4gICAgICAgICAgICAgICAgbGV0IGVxID0gY29udGV4dFxuICAgICAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChha2V5KSwgXCI9XCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoYmtleSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgICAgICBpZiAoTGl0ZXJhbHMuaXNUcnV0aHkoZXEpKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IHJlZ2V4dGVzdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyZWdleHRlc3RcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHBhdHRlcm46IHN0cmluZywgZmllbGQ6IHN0cmluZykgPT4gUmVnRXhwKHBhdHRlcm4pLnRlc3QoZmllbGQpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgX2EpID0+IGZhbHNlKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX24pID0+IGZhbHNlKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVnZXhtYXRjaCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyZWdleG1hdGNoXCIpXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChwYXR0ZXJuOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICghcGF0dGVybi5zdGFydHNXaXRoKFwiXlwiKSAmJiAhcGF0dGVybi5lbmRzV2l0aChcIiRcIikpIHBhdHRlcm4gPSBcIl5cIiArIHBhdHRlcm4gKyBcIiRcIjtcbiAgICAgICAgICAgIHJldHVybiAhIWZpZWxkLm1hdGNoKHBhdHRlcm4pO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgX2EpID0+IGZhbHNlKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX24pID0+IGZhbHNlKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVnZXhyZXBsYWNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJlZ2V4cmVwbGFjZVwiKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoZmllbGQ6IHN0cmluZywgcGF0OiBzdHJpbmcsIHJlcDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCByZWcgPSBuZXcgUmVnRXhwKHBhdCwgXCJnXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC5yZXBsYWNlKHJlZywgcmVwKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgcmVnZXhwICcke3BhdH0nIGluIHJlZ2V4cmVwbGFjZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuYWRkMyhcIm51bGxcIiwgXCIqXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbG93ZXIgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibG93ZXJcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKHMpID0+IHMudG9Mb2NhbGVMb3dlckNhc2UoKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCB1cHBlciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJ1cHBlclwiKVxuICAgICAgICAuYWRkMShcInN0cmluZ1wiLCAocykgPT4gcy50b0xvY2FsZVVwcGVyQ2FzZSgpKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IHJlcGxhY2UgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwicmVwbGFjZVwiKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyLCBwYXQsIHJlcHIpID0+IHN0ci5zcGxpdChwYXQpLmpvaW4ocmVwcikpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8vIEVuc3VyZSB1bmRlZmluZWQgbWF0Y2hlcyB0dXJuIGludG8gZW1wdHkgc3RyaW5ncyBmb3Igc3BsaXQvMiBhbmQgc3BsaXQvMy5cbiAgICBjb25zdCBzcGxpdEltcGwgPSAoc3RyOiBzdHJpbmcsIGRlbGltOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyKTogc3RyaW5nW10gPT5cbiAgICAgICAgc3RyLnNwbGl0KG5ldyBSZWdFeHAoZGVsaW0pLCBsaW1pdCkubWFwKChzdHIpID0+IHN0ciB8fCBcIlwiKTtcblxuICAgIC8qKiBTcGxpdCBhIHN0cmluZyBvbiBhIGdpdmVuIHN0cmluZy4gKi9cbiAgICBleHBvcnQgY29uc3Qgc3BsaXQ6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzcGxpdFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyaW5nLCBzcGxpdHRlcikgPT4gc3BsaXRJbXBsKHN0cmluZywgc3BsaXR0ZXIpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyaW5nLCBzcGxpdHRlciwgbGltaXQpID0+IHNwbGl0SW1wbChzdHJpbmcsIHNwbGl0dGVyLCBsaW1pdCkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIm51bGxcIiwgXCIqXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBzdGFydHN3aXRoOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwic3RhcnRzd2l0aFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyLCBzdGFydGluZykgPT4gc3RyLnN0YXJ0c1dpdGgoc3RhcnRpbmcpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGVuZHN3aXRoOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZW5kc3dpdGhcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHN0ciwgZW5kaW5nKSA9PiBzdHIuZW5kc1dpdGgoZW5kaW5nKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBwYWRsZWZ0OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwicGFkbGVmdFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyLCBsZW4pID0+IHN0ci5wYWRTdGFydChsZW4sIFwiIFwiKSlcbiAgICAgICAgLmFkZDMoXCJzdHJpbmdcIiwgXCJudW1iZXJcIiwgXCJzdHJpbmdcIiwgKHN0ciwgbGVuLCBwYWRkaW5nKSA9PiBzdHIucGFkU3RhcnQobGVuLCBwYWRkaW5nKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcGFkcmlnaHQ6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJwYWRyaWdodFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyLCBsZW4pID0+IHN0ci5wYWRFbmQobGVuLCBcIiBcIikpXG4gICAgICAgIC5hZGQzKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIFwic3RyaW5nXCIsIChzdHIsIGxlbiwgcGFkZGluZykgPT4gc3RyLnBhZEVuZChsZW4sIHBhZGRpbmcpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCJudWxsXCIsIFwiKlwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBzdWJzdHJpbmc6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzdWJzdHJpbmdcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJudW1iZXJcIiwgKHN0ciwgc3RhcnQpID0+IHN0ci5zdWJzdHJpbmcoc3RhcnQpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcIm51bWJlclwiLCBcIm51bWJlclwiLCAoc3RyLCBzdGFydCwgZW5kKSA9PiBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCJudWxsXCIsIFwiKlwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCB0cnVuY2F0ZTogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInRydW5jYXRlXCIpXG4gICAgICAgIC5hZGQzKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIFwic3RyaW5nXCIsIChzdHIsIGxlbmd0aCwgc3VmZml4KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IGxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBNYXRoLm1heCgwLCBsZW5ndGggLSBzdWZmaXgubGVuZ3RoKSkgKyBzdWZmaXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIChzdHIsIGxlbmd0aCwgY3R4KSA9PiB0cnVuY2F0ZShjdHgsIHN0ciwgbGVuZ3RoLCBcIi4uLlwiKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgZmRlZmF1bHQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZGVmYXVsdFwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsICh2LCBiaykgPT4gKExpdGVyYWxzLmlzTnVsbCh2KSA/IGJrIDogdikpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBsZGVmYXVsdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsZGVmYXVsdFwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsICh2LCBiaykgPT4gKExpdGVyYWxzLmlzTnVsbCh2KSA/IGJrIDogdikpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGNob2ljZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJjaG9pY2VcIilcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIipcIiwgKGIsIGxlZnQsIHJpZ2h0KSA9PiAoTGl0ZXJhbHMuaXNUcnV0aHkoYikgPyBsZWZ0IDogcmlnaHQpKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVkdWNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJlZHVjZVwiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwic3RyaW5nXCIsIChsaXMsIG9wLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAobGlzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgaWYgKG9wICE9IFwiK1wiICYmIG9wICE9IFwiLVwiICYmIG9wICE9IFwiKlwiICYmIG9wICE9IFwiL1wiICYmIG9wICE9IFwiJlwiICYmIG9wICE9IFwifFwiKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwicmVkdWNlKGFycmF5LCBvcCkgc3VwcG9ydHMgJysnLCAnLScsICcvJywgJyonLCAnJicsIGFuZCAnfCdcIik7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGxpc1swXTtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBsaXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBjb250ZXh0XG4gICAgICAgICAgICAgICAgICAgIC5ldmFsdWF0ZShFeHByZXNzaW9ucy5iaW5hcnlPcChFeHByZXNzaW9ucy5saXRlcmFsKHZhbHVlKSwgb3AsIEV4cHJlc3Npb25zLmxpdGVyYWwobGlzW2luZGV4XSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGxpcywgb3AsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGlmIChsaXMubGVuZ3RoID09IDApIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBsaXNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgbGlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgbnVsbCB2YWx1ZXMgdG8gcmVkdWNlIHRoZSBwYWluIG9mIHN1bW1pbmcgb3ZlciBmaWVsZHMgdGhhdCBtYXkgb3IgbWF5IG5vdCBleGlzdC5cbiAgICAgICAgICAgICAgICBpZiAoTGl0ZXJhbHMuaXNOdWxsKGxpc1tpbmRleF0pKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgIHZhbHVlID0gb3AoY29udGV4dCwgdmFsdWUsIGxpc1tpbmRleF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3Qgc3VtID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInN1bVwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIsIGMpID0+IHJlZHVjZShjLCBhcnIsIFwiK1wiKSlcbiAgICAgICAgLmFkZDEoXCIqXCIsIChlKSA9PiBlKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBhdmVyYWdlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImF2ZXJhZ2VcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyYXksIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGNvbnN0IGFkZCA9IHN1bShjb250ZXh0LCBhcnJheSk7XG4gICAgICAgICAgICBpZiAoYWRkID09IG51bGwgfHwgYWRkID09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoYWRkKSwgXCIvXCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoYXJyYXkubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiKlwiLCAoZSkgPT4gZSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcHJvZHVjdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJwcm9kdWN0XCIpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKGFyciwgYykgPT4gcmVkdWNlKGMsIGFyciwgXCIqXCIpKVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGpvaW46IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJqb2luXCIpXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJzdHJpbmdcIiwgKGFyciwgc2VwLCBjdHgpID0+XG4gICAgICAgICAgICBhcnIubWFwKChlKSA9PiBMaXRlcmFscy50b1N0cmluZyhlLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSkuam9pbihzZXApXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcIm51bGxcIiwgKGFyciwgX3MsIGNvbnRleHQpID0+IGpvaW4oY29udGV4dCwgYXJyLCBcIiwgXCIpKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJzdHJpbmdcIiwgKGVsZW0sIHNlcCwgY3R4KSA9PiBMaXRlcmFscy50b1N0cmluZyhlbGVtLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSlcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyLCBjb250ZXh0KSA9PiBqb2luKGNvbnRleHQsIGFyciwgXCIsIFwiKSlcbiAgICAgICAgLmFkZDEoXCIqXCIsIChlLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGUsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgYW55ID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImFueVwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+IGFyci5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJmdW5jdGlvblwiLCAoYXJyLCBmLCBjdHgpID0+IGFyci5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeShmKGN0eCwgdikpKSlcbiAgICAgICAgLnZhcmFyZygoX2N0eCwgLi4uYXJncykgPT4gYXJncy5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGFsbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJhbGxcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyKSA9PiBhcnIuZXZlcnkoKHYpID0+IExpdGVyYWxzLmlzVHJ1dGh5KHYpKSlcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGYsIGN0eCkgPT4gYXJyLmV2ZXJ5KCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeShmKGN0eCwgdikpKSlcbiAgICAgICAgLnZhcmFyZygoX2N0eCwgLi4uYXJncykgPT4gYXJncy5ldmVyeSgodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkodikpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBub25lID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImFsbFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+ICFhcnIuc29tZSgodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkodikpKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGFyciwgZiwgY3R4KSA9PiAhYXJyLnNvbWUoKHYpID0+IExpdGVyYWxzLmlzVHJ1dGh5KGYoY3R4LCB2KSkpKVxuICAgICAgICAudmFyYXJnKChfY3R4LCAuLi5hcmdzKSA9PiAhYXJncy5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGZpbHRlciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJmaWx0ZXJcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGYsIGN0eCkgPT4gYXJyLmZpbHRlcigodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkoZihjdHgsIHYpKSkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbWFwID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcIm1hcFwiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGFyciwgZiwgY3R4KSA9PiBhcnIubWFwKCh2KSA9PiBmKGN0eCwgdikpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG5vbm51bGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibm9ubnVsbFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+IGFyci5maWx0ZXIoKHYpID0+IExpdGVyYWxzLnR5cGVPZih2KSAhPSBcIm51bGxcIikpXG4gICAgICAgIC52YXJhcmcoKF9jdHgsIC4uLmFyZ3MpID0+IGFyZ3MuZmlsdGVyKCh2KSA9PiBMaXRlcmFscy50eXBlT2YodikgIT0gXCJudWxsXCIpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBHZXRzIGFuIG9iamVjdCBjb250YWluaW5nIGEgbGluaydzIG93biBwcm9wZXJ0aWVzICovXG4gICAgZXhwb3J0IGNvbnN0IG1ldGE6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJtZXRhXCIpXG4gICAgICAgIC5hZGQxKFwibGlua1wiLCAobGluaykgPT4gKHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpbmsuZGlzcGxheSA/PyBudWxsLFxuICAgICAgICAgICAgZW1iZWQ6IGxpbmsuZW1iZWQsXG4gICAgICAgICAgICBwYXRoOiBsaW5rLnBhdGgsXG4gICAgICAgICAgICBzdWJwYXRoOiBsaW5rLnN1YnBhdGggPz8gbnVsbCxcbiAgICAgICAgICAgIHR5cGU6IGxpbmsudHlwZSxcbiAgICAgICAgfSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gQ29uY2F0ZW5hdGVzIHN1Yi1hcnJheSBlbGVtZW50cyBpbnRvIGEgbmV3IGFycmF5XG4gICAgZXhwb3J0IGNvbnN0IGZsYXQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZmxhdFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5mbGF0KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJudW1iZXJcIiwgKGEsIG4pID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiBhLmZsYXQobik7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYnVpbGQoKTtcbn1cblxuLyoqIERlZmF1bHQgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zIGZvciB0aGUgZXhwcmVzc2lvbiBldmFsdWF0b3IuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GVU5DVElPTlM6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uSW1wbD4gPSB7XG4gICAgLy8gQ29uc3RydWN0b3JzLlxuICAgIGxpc3Q6IERlZmF1bHRGdW5jdGlvbnMubGlzdCxcbiAgICBhcnJheTogRGVmYXVsdEZ1bmN0aW9ucy5saXN0LFxuICAgIGxpbms6IERlZmF1bHRGdW5jdGlvbnMubGluayxcbiAgICBlbWJlZDogRGVmYXVsdEZ1bmN0aW9ucy5lbWJlZCxcbiAgICBkYXRlOiBEZWZhdWx0RnVuY3Rpb25zLmRhdGUsXG4gICAgZHVyOiBEZWZhdWx0RnVuY3Rpb25zLmR1cixcbiAgICBkYXRlZm9ybWF0OiBEZWZhdWx0RnVuY3Rpb25zLmRhdGVmb3JtYXQsXG4gICAgbG9jYWx0aW1lOiBEZWZhdWx0RnVuY3Rpb25zLmxvY2FsdGltZSxcbiAgICBudW1iZXI6IERlZmF1bHRGdW5jdGlvbnMubnVtYmVyLFxuICAgIHN0cmluZzogRGVmYXVsdEZ1bmN0aW9ucy5zdHJpbmcsXG4gICAgb2JqZWN0OiBEZWZhdWx0RnVuY3Rpb25zLm9iamVjdCxcbiAgICB0eXBlb2Y6IERlZmF1bHRGdW5jdGlvbnMudHlwZU9mLFxuXG4gICAgLy8gTWF0aCBPcGVyYXRpb25zLlxuICAgIHJvdW5kOiBEZWZhdWx0RnVuY3Rpb25zLnJvdW5kLFxuICAgIG1pbjogRGVmYXVsdEZ1bmN0aW9ucy5taW4sXG4gICAgbWF4OiBEZWZhdWx0RnVuY3Rpb25zLm1heCxcbiAgICBtaW5ieTogRGVmYXVsdEZ1bmN0aW9ucy5taW5ieSxcbiAgICBtYXhieTogRGVmYXVsdEZ1bmN0aW9ucy5tYXhieSxcblxuICAgIC8vIFN0cmluZyBvcGVyYXRpb25zLlxuICAgIHJlZ2V4cmVwbGFjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZWdleHJlcGxhY2UsXG4gICAgcmVnZXh0ZXN0OiBEZWZhdWx0RnVuY3Rpb25zLnJlZ2V4dGVzdCxcbiAgICByZWdleG1hdGNoOiBEZWZhdWx0RnVuY3Rpb25zLnJlZ2V4bWF0Y2gsXG4gICAgcmVwbGFjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZXBsYWNlLFxuICAgIGxvd2VyOiBEZWZhdWx0RnVuY3Rpb25zLmxvd2VyLFxuICAgIHVwcGVyOiBEZWZhdWx0RnVuY3Rpb25zLnVwcGVyLFxuICAgIHNwbGl0OiBEZWZhdWx0RnVuY3Rpb25zLnNwbGl0LFxuICAgIHN0YXJ0c3dpdGg6IERlZmF1bHRGdW5jdGlvbnMuc3RhcnRzd2l0aCxcbiAgICBlbmRzd2l0aDogRGVmYXVsdEZ1bmN0aW9ucy5lbmRzd2l0aCxcbiAgICBwYWRsZWZ0OiBEZWZhdWx0RnVuY3Rpb25zLnBhZGxlZnQsXG4gICAgcGFkcmlnaHQ6IERlZmF1bHRGdW5jdGlvbnMucGFkcmlnaHQsXG4gICAgc3Vic3RyaW5nOiBEZWZhdWx0RnVuY3Rpb25zLnN1YnN0cmluZyxcbiAgICB0cnVuY2F0ZTogRGVmYXVsdEZ1bmN0aW9ucy50cnVuY2F0ZSxcblxuICAgIC8vIERhdGUgT3BlcmF0aW9ucy5cbiAgICBzdHJpcHRpbWU6IERlZmF1bHRGdW5jdGlvbnMuc3RyaXB0aW1lLFxuXG4gICAgLy8gTGlzdCBvcGVyYXRpb25zLlxuICAgIGxlbmd0aDogRGVmYXVsdEZ1bmN0aW9ucy5sZW5ndGgsXG4gICAgY29udGFpbnM6IERlZmF1bHRGdW5jdGlvbnMuY29udGFpbnMsXG4gICAgaWNvbnRhaW5zOiBEZWZhdWx0RnVuY3Rpb25zLmljb250YWlucyxcbiAgICBlY29udGFpbnM6IERlZmF1bHRGdW5jdGlvbnMuZWNvbnRhaW5zLFxuICAgIGNvbnRhaW5zd29yZDogRGVmYXVsdEZ1bmN0aW9ucy5jb250YWluc3dvcmQsXG4gICAgcmV2ZXJzZTogRGVmYXVsdEZ1bmN0aW9ucy5yZXZlcnNlLFxuICAgIHNvcnQ6IERlZmF1bHRGdW5jdGlvbnMuc29ydCxcbiAgICBmbGF0OiBEZWZhdWx0RnVuY3Rpb25zLmZsYXQsXG5cbiAgICAvLyBBZ2dyZWdhdGlvbiBvcGVyYXRpb25zIGxpa2UgcmVkdWNlLlxuICAgIHJlZHVjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZWR1Y2UsXG4gICAgam9pbjogRGVmYXVsdEZ1bmN0aW9ucy5qb2luLFxuICAgIHN1bTogRGVmYXVsdEZ1bmN0aW9ucy5zdW0sXG4gICAgcHJvZHVjdDogRGVmYXVsdEZ1bmN0aW9ucy5wcm9kdWN0LFxuICAgIGF2ZXJhZ2U6IERlZmF1bHRGdW5jdGlvbnMuYXZlcmFnZSxcbiAgICBhbGw6IERlZmF1bHRGdW5jdGlvbnMuYWxsLFxuICAgIGFueTogRGVmYXVsdEZ1bmN0aW9ucy5hbnksXG4gICAgbm9uZTogRGVmYXVsdEZ1bmN0aW9ucy5ub25lLFxuICAgIGZpbHRlcjogRGVmYXVsdEZ1bmN0aW9ucy5maWx0ZXIsXG4gICAgbWFwOiBEZWZhdWx0RnVuY3Rpb25zLm1hcCxcbiAgICBub25udWxsOiBEZWZhdWx0RnVuY3Rpb25zLm5vbm51bGwsXG5cbiAgICAvLyBPYmplY3QvVXRpbGl0eSBvcGVyYXRpb25zLlxuICAgIGV4dHJhY3Q6IERlZmF1bHRGdW5jdGlvbnMuZXh0cmFjdCxcbiAgICBkZWZhdWx0OiBEZWZhdWx0RnVuY3Rpb25zLmZkZWZhdWx0LFxuICAgIGxkZWZhdWx0OiBEZWZhdWx0RnVuY3Rpb25zLmxkZWZhdWx0LFxuICAgIGNob2ljZTogRGVmYXVsdEZ1bmN0aW9ucy5jaG9pY2UsXG4gICAgbWV0YTogRGVmYXVsdEZ1bmN0aW9ucy5tZXRhLFxufTtcbiIsICIvKiogQ29yZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcXVlcnkgbGFuZ3VhZ2UgZXZhbHVhdGlvbiBlbmdpbmUuICovXG5cbmltcG9ydCB7IERhdGFPYmplY3QsIExpbmssIExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcbmltcG9ydCB7IEJpbmFyeU9wSGFuZGxlciwgY3JlYXRlQmluYXJ5T3BzIH0gZnJvbSBcIi4vYmluYXJ5b3BcIjtcbmltcG9ydCB7IEV4cHJlc3Npb24sIEV4cHJlc3Npb25zIH0gZnJvbSBcImV4cHJlc3Npb24vZXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgREVGQVVMVF9GVU5DVElPTlMsIEZ1bmN0aW9uSW1wbCB9IGZyb20gXCIuL2Z1bmN0aW9uc1wiO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tIFwic2V0dGluZ3NcIjtcbmltcG9ydCB7IEZpZWxkYmVhcmluZywgRmllbGRiZWFyaW5ncyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbi8qKiBIYW5kbGVzIGxpbmsgcmVzb2x1dGlvbiBhbmQgbm9ybWFsaXphdGlvbiBpbnNpZGUgb2YgYSBjb250ZXh0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rSGFuZGxlciB7XG4gICAgLyoqIFJlc29sdmUgYSBsaW5rIHRvIHRoZSBtZXRhZGF0YSBpdCBjb250YWlucy4gKi9cbiAgICByZXNvbHZlKHBhdGg6IHN0cmluZyB8IExpbmspOiBEYXRhT2JqZWN0IHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemUgYSBsaW5rIHRvIGl0J3MgZnVsbHktcXVhbGlmaWVkIHBhdGggZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAgICogSWYgdGhlIHBhdGggZG9lcyBub3QgZXhpc3QsIHJldHVybnMgaXQgdW5jaGFuZ2VkLlxuICAgICAqL1xuICAgIG5vcm1hbGl6ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBwYXRoIGFjdHVhbGx5IGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLiAqL1xuICAgIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG4vKiogU291cmNlIG9mIHZhcmlhYmxlcyB3aGljaCBjYW4gYmUgcmVmZXJlbmNlZCBpbiB0aGUgZXZhbHVhdG9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZXMge1xuICAgIC8qKiBSZW5kZXIgdGhlIGVudGlyZSB2YXJpYWJsZSBzdG9yZSB0byBhIGtleS12YWx1ZSBtYXAuICovXG4gICAgYWxsKCk6IERhdGFPYmplY3Q7XG5cbiAgICAvKiogUmVzb2x2ZSBhIHZhcmlhYmxlIGJ5IG5hbWUuICovXG4gICAgcmVzb2x2ZShuYW1lOiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEV2YWx1YXRpb24gY29udGV4dCB0aGF0IGV4cHJlc3Npb25zIGNhbiBiZSBldmFsdWF0ZWQgaW4uIEluY2x1ZGVzIGdsb2JhbCBzdGF0ZSwgYXMgd2VsbCBhcyBhdmFpbGFibGUgZnVuY3Rpb25zIGFuZCBhIGhhbmRsZXJcbiAqIGZvciBiaW5hcnkgb3BlcmF0b3JzLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdG9yIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgY29udGV4dCB3aXRoIHRoZSBnaXZlbiBuYW1lc3BhY2Ugb2YgZ2xvYmFscywgYXMgd2VsbCBhcyBvcHRpb25hbGx5IHdpdGggY3VzdG9tIGJpbmFyeSBvcGVyYXRvciwgZnVuY3Rpb24sXG4gICAgICogYW5kIGxpbmsgaGFuZGxlcnMuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbGlua0hhbmRsZXI6IExpbmtIYW5kbGVyLFxuICAgICAgICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzLFxuICAgICAgICBwdWJsaWMgZ2xvYmFsczogUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4gPSB7fSxcbiAgICAgICAgcHVibGljIGJpbmFyeU9wczogQmluYXJ5T3BIYW5kbGVyID0gY3JlYXRlQmluYXJ5T3BzKGxpbmtIYW5kbGVyLm5vcm1hbGl6ZSksXG4gICAgICAgIHB1YmxpYyBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uSW1wbD4gPSBERUZBVUxUX0ZVTkNUSU9OU1xuICAgICkge31cblxuICAgIC8qKiBTZXQgYSBnbG9iYWwgdmFsdWUgaW4gdGhpcyBjb250ZXh0LiAqL1xuICAgIHB1YmxpYyBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IEV2YWx1YXRvciB7XG4gICAgICAgIHRoaXMuZ2xvYmFsc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSB2YWx1ZSBvZiBhIGdsb2JhbCB2YXJpYWJsZSBieSBuYW1lLiBSZXR1cm5zIG51bGwgaWYgbm90IHByZXNlbnQuICovXG4gICAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBMaXRlcmFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2xvYmFsc1tuYW1lXSA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gZXZhbHVhdGUgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gaW4gdGhpcyBjb250ZXh0LCByYWlzaW5nIGFuIGV4Y2VwdGlvbiBvbiBmYWlsdXJlLiAqL1xuICAgIHB1YmxpYyB0cnlFdmFsdWF0ZShleHByOiBFeHByZXNzaW9uLCB2YXJpYWJsZXM6IFZhcmlhYmxlcyA9IFZhcmlhYmxlcy5lbXB0eSgpKTogTGl0ZXJhbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlKGV4cHIsIHZhcmlhYmxlcykub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogRXZhbHVhdGUgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gaW4gdGhpcyBjb250ZXh0LiAqL1xuICAgIHB1YmxpYyBldmFsdWF0ZShleHByOiBFeHByZXNzaW9uLCB2YXJpYWJsZXM6IFZhcmlhYmxlcyA9IFZhcmlhYmxlcy5lbXB0eSgpKTogUmVzdWx0PExpdGVyYWwsIHN0cmluZz4ge1xuICAgICAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImxpdGVyYWxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoZXhwci52YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFwidmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5uYW1lID09PSBFeHByZXNzaW9ucy5ST1cpIHJldHVybiBSZXN1bHQuc3VjY2Vzcyh2YXJpYWJsZXMuYWxsKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB2YXJpYWJsZXMucmVzb2x2ZShleHByLm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIGlmIChleHByLm5hbWUgaW4gdGhpcy5nbG9iYWxzKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3ModGhpcy5nbG9iYWxzW2V4cHIubmFtZV0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZShleHByLmNoaWxkLCB2YXJpYWJsZXMpLm1hcCgocykgPT4gIUxpdGVyYWxzLmlzVHJ1dGh5KHMpKTtcbiAgICAgICAgICAgIGNhc2UgXCJiaW5hcnlvcFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmxhdE1hcDIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZhbHVhdGUoZXhwci5sZWZ0LCB2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2YWx1YXRlKGV4cHIucmlnaHQsIHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PiB0aGlzLmJpbmFyeU9wcy5ldmFsdWF0ZShleHByLm9wLCBhLCBiLCB0aGlzKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBleHByLnZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3ViZXZhbCA9IHRoaXMuZXZhbHVhdGUoY2hpbGQsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3ViZXZhbC5zdWNjZXNzZnVsKSByZXR1cm4gc3ViZXZhbDtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goc3ViZXZhbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGxldCBvYmpSZXN1bHQ6IERhdGFPYmplY3QgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCBjaGlsZF0gb2YgT2JqZWN0LmVudHJpZXMoZXhwci52YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJldmFsID0gdGhpcy5ldmFsdWF0ZShjaGlsZCwgdmFyaWFibGVzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWJldmFsLnN1Y2Nlc3NmdWwpIHJldHVybiBzdWJldmFsO1xuICAgICAgICAgICAgICAgICAgICBvYmpSZXN1bHRba2V5XSA9IHN1YmV2YWwudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhvYmpSZXN1bHQpO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVseWluZyBvbiBKUyB0byBjYXB0dXJlICdkYXRhJyBmb3IgdXMgaW1wbGljaXRseTsgdW5zdXJlXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjb3JyZWN0IHRoaW5nIHRvIGRvLiBDb3VsZCBjYXVzZSB3ZWlyZCBiZWhhdmlvcnMuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKChjdHg6IEV2YWx1YXRvciwgLi4uYXJnczogTGl0ZXJhbFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+ID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFyZyA9IDA7IGFyZyA8IE1hdGgubWluKGFyZ3MubGVuZ3RoLCBleHByLmFyZ3VtZW50cy5sZW5ndGgpOyBhcmcrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzW2V4cHIuYXJndW1lbnRzW2FyZ11dID0gYXJnc1thcmddO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5ldmFsdWF0ZShleHByLnZhbHVlLCBWYXJpYWJsZXMubGFtYmRhKHZhcmlhYmxlcywgbG9jYWxzKSkub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIGxldCByYXdGdW5jID1cbiAgICAgICAgICAgICAgICAgICAgZXhwci5mdW5jLnR5cGUgPT0gXCJ2YXJpYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFJlc3VsdC5zdWNjZXNzPHN0cmluZywgc3RyaW5nPihleHByLmZ1bmMubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5ldmFsdWF0ZShleHByLmZ1bmMsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyYXdGdW5jLnN1Y2Nlc3NmdWwpIHJldHVybiByYXdGdW5jO1xuICAgICAgICAgICAgICAgIGxldCBmdW5jID0gcmF3RnVuYy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGxldCBhcmdzOiBMaXRlcmFsW10gPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBhcmcgb2YgZXhwci5hcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gdGhpcy5ldmFsdWF0ZShhcmcsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzb2x2ZWQuc3VjY2Vzc2Z1bCkgcmV0dXJuIHJlc29sdmVkO1xuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2gocmVzb2x2ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBjYWxsOiBGdW5jdGlvbkltcGw7XG4gICAgICAgICAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24oZnVuYykpIGNhbGwgPSBmdW5jIGFzIEZ1bmN0aW9uSW1wbDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChMaXRlcmFscy5pc1N0cmluZyhmdW5jKSAmJiBmdW5jIGluIHRoaXMuZnVuY3Rpb25zKSBjYWxsID0gdGhpcy5mdW5jdGlvbnNbZnVuY107XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoTGl0ZXJhbHMuaXNTdHJpbmcoZnVuYykpIHJldHVybiBSZXN1bHQuZmFpbHVyZShgVW5yZWNvZ25pemVkIGZ1bmN0aW9uIG5hbWUgJyR7ZnVuY30nYCk7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYENhbm5vdCBjYWxsIHR5cGUgJyR7TGl0ZXJhbHMudHlwZU9mKGZ1bmMpfScgYXMgYSBmdW5jdGlvbmApO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGNhbGwodGhpcywgLi4uYXJncykpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGUubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogR2V0IHZhcmlhYmxlcyBmcm9tIGEgcGxhaW4gb2JqZWN0LiAqL1xuZXhwb3J0IGNsYXNzIE9iamVjdFZhcmlhYmxlcyBpbXBsZW1lbnRzIFZhcmlhYmxlcyB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvYmplY3Q6IERhdGFPYmplY3QpIHt9XG5cbiAgICBwdWJsaWMgYWxsKCk6IERhdGFPYmplY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFtuYW1lXTtcbiAgICB9XG59XG5cbi8qKiBHZXQgdmFyaWFibGVzIGZyb20gYSBmaWVsZC1iZWFyaW5nIG9iamVjdCAod2hpY2ggc3VwcG9ydHMgY2FzZSBpbnNlbnNpdGl2aXR5KS4gKi9cbmV4cG9ydCBjbGFzcyBGaWVsZGJlYXJpbmdWYXJpYWJsZXMgaW1wbGVtZW50cyBWYXJpYWJsZXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgb2JqZWN0OiBGaWVsZGJlYXJpbmcpIHt9XG5cbiAgICBwdWJsaWMgYWxsKCk6IERhdGFPYmplY3Qge1xuICAgICAgICBjb25zdCBvYmplY3Q6IERhdGFPYmplY3QgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLm9iamVjdC5maWVsZHMpIHtcbiAgICAgICAgICAgIG9iamVjdFtmaWVsZC5rZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlKG5hbWU6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3QuZmllbGQobmFtZSk/LnZhbHVlO1xuICAgIH1cbn1cblxuLyoqIERlbGVnYXRlIHRvIGxvY2FsIGNvbnRleHQgZmlyc3QsIHRoZW4gdG8gcGFyZW50IGNvbnRleHQgaWYgbm90IGF2YWlsYWJsZS4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFWYXJpYWJsZXMgaW1wbGVtZW50cyBWYXJpYWJsZXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcGFyZW50OiBWYXJpYWJsZXMsIHB1YmxpYyBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+KSB7fVxuXG4gICAgcHVibGljIGFsbCgpOiBEYXRhT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5wYXJlbnQuYWxsKCksIC4uLnRoaXMubG9jYWxzIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2Fsc1tuYW1lXSA/PyB0aGlzLnBhcmVudC5yZXNvbHZlKG5hbWUpO1xuICAgIH1cbn1cblxuLyoqIERlZmF1bHQgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1ha2luZyB2YXJpYWJsZSBzdG9yZXMuICovXG5leHBvcnQgbmFtZXNwYWNlIFZhcmlhYmxlcyB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGVtcHR5KCkge1xuICAgICAgICByZXR1cm4gbmV3IE9iamVjdFZhcmlhYmxlcyh7fSk7XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZmVyKG9iamVjdDogYW55KTogVmFyaWFibGVzIHtcbiAgICAgICAgaWYgKEZpZWxkYmVhcmluZ3MuaXNGaWVsZGJlYXJpbmcob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWVsZGJlYXJpbmdWYXJpYWJsZXMob2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0VmFyaWFibGVzKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGFtYmRhKHBhcmVudDogVmFyaWFibGVzLCBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+KTogVmFyaWFibGVzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMYW1iZGFWYXJpYWJsZXMocGFyZW50LCBsb2NhbHMpO1xuICAgIH1cbn1cbiIsICIvLyEgUHJvdmlkZXMgdXRpbGl0aWVzIGZvciBleGVjdXRpbmcgcXVlcmllcyBhZ2FpbnN0IHRoZSBzdG9yYWdlIGxheWVyLlxuaW1wb3J0IHsgSW5kZXhQcmltaXRpdmUsIEluZGV4UXVlcnksIEluZGV4U291cmNlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4LXF1ZXJ5XCI7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlcnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWx0ZXJzXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgRXhwcmVzc2lvbnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9leHByZXNzaW9uXCI7XG5pbXBvcnQgeyBFdmFsdWF0b3IsIFZhcmlhYmxlcyB9IGZyb20gXCJleHByZXNzaW9uL2V2YWx1YXRvclwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW5kZXggUXVlcnkgT3B0aW1pemF0aW9uIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFBlcmZvcm0gc2ltcGxlIHJlY3Vyc2l2ZSBvcHRpbWl6YXRpb25zIG92ZXIgYW4gaW5kZXggcXVlcnksIHN1Y2ggYXMgY29uc3RhbnQgZm9sZGluZyBhbmQgZGUtbmVzdGluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcHRpbWl6ZVF1ZXJ5KHF1ZXJ5OiBJbmRleFF1ZXJ5KTogSW5kZXhRdWVyeSB7XG4gICAgcXVlcnkgPSBkZW5lc3QocXVlcnkpO1xuICAgIHF1ZXJ5ID0gY29uc3RhbnRmb2xkKHF1ZXJ5KTtcblxuICAgIHJldHVybiBxdWVyeTtcbn1cblxuLyoqIERlLW5lc3QgcmVjdXJzaXZlbHkgbmVzdGVkIEFORCBhbmQgT1IgcXVlcmllcyBpbnRvIGEgc2luZ2xlIHRvcC1sZXZlbCBhbmQvb3IuICovXG5mdW5jdGlvbiBkZW5lc3QocXVlcnk6IEluZGV4UXVlcnkpOiBJbmRleFF1ZXJ5IHtcbiAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgYW5kcyA9IHF1ZXJ5LmVsZW1lbnRzLmZsYXRNYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXhlZCA9IGRlbmVzdChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZml4ZWQudHlwZSA9PT0gXCJhbmRcIikgcmV0dXJuIGZpeGVkLmVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFtmaXhlZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiYW5kXCIsIGVsZW1lbnRzOiBhbmRzIH07XG4gICAgICAgIGNhc2UgXCJvclwiOlxuICAgICAgICAgICAgY29uc3Qgb3JzID0gcXVlcnkuZWxlbWVudHMuZmxhdE1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVkID0gZGVuZXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChmaXhlZC50eXBlID09PSBcIm9yXCIpIHJldHVybiBmaXhlZC5lbGVtZW50cztcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBbZml4ZWRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcIm9yXCIsIGVsZW1lbnRzOiBvcnMgfTtcbiAgICAgICAgY2FzZSBcIm5vdFwiOlxuICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3RcIiwgZWxlbWVudDogZGVuZXN0KHF1ZXJ5LmVsZW1lbnQpIH07XG4gICAgICAgIGNhc2UgXCJjaGlsZC1vZlwiOlxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IHBhcmVudHM6IGRlbmVzdChxdWVyeS5wYXJlbnRzKSB9KTtcbiAgICAgICAgY2FzZSBcInBhcmVudC1vZlwiOlxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IGNoaWxkcmVuOiBkZW5lc3QocXVlcnkuY2hpbGRyZW4pIH0pO1xuICAgICAgICBjYXNlIFwibGlua2VkXCI6XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgcXVlcnksIHsgc291cmNlOiBkZW5lc3QocXVlcnkuc291cmNlKSB9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9XG59XG5cbi8qKiBQZXJmb3JtIGNvbnN0YW50IGZvbGRpbmcgYnkgZWxpbWluYXRpbmcgZGVhZCAndHJ1ZScgYW5kICdmYWxzZScgdGVybXMuICovXG5mdW5jdGlvbiBjb25zdGFudGZvbGQocXVlcnk6IEluZGV4UXVlcnkpOiBJbmRleFF1ZXJ5IHtcbiAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgYWNoaWxkcmVuID0gW10gYXMgSW5kZXhRdWVyeVtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBxdWVyeS5lbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlZCA9IGNvbnN0YW50Zm9sZChjaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAvLyBFbGltaW5hdGUgJ3RydWUnIGNvbnN0YW50cyBhbmQgZWxpbWluYXRlIHRoZSBlbnRpcmUgYW5kIG9uIGEgJ2ZhbHNlJyBjb25zdGFudC5cbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLmNvbnN0YW50KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGFjaGlsZHJlbi5wdXNoKGZvbGRlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiYW5kXCIsIGVsZW1lbnRzOiBhY2hpbGRyZW4gfTtcbiAgICAgICAgY2FzZSBcIm9yXCI6XG4gICAgICAgICAgICBjb25zdCBvY2hpbGRyZW4gPSBbXSBhcyBJbmRleFF1ZXJ5W107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHF1ZXJ5LmVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVkID0gY29uc3RhbnRmb2xkKGNoaWxkKTtcblxuICAgICAgICAgICAgICAgIC8vIEVsaW1pbmF0ZSAnZmFsc2UnIGNvbnN0YW50cyBhbmQgc2hvcnQgY2lyY3VpdCBvbiBhICd0cnVlJyBjb25zdGFudC5cbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZvbGRlZC5jb25zdGFudCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHsgdHlwZTogXCJjb25zdGFudFwiLCBjb25zdGFudDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9jaGlsZHJlbi5wdXNoKGZvbGRlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwib3JcIiwgZWxlbWVudHM6IG9jaGlsZHJlbiB9O1xuICAgICAgICBjYXNlIFwibm90XCI6XG4gICAgICAgICAgICBjb25zdCBmb2xkZWQgPSBjb25zdGFudGZvbGQocXVlcnkuZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChmb2xkZWQudHlwZSA9PT0gXCJjb25zdGFudFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJjb25zdGFudFwiLCBjb25zdGFudDogIWZvbGRlZC5jb25zdGFudCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5vdFwiLCBlbGVtZW50OiBmb2xkZWQgfTtcbiAgICAgICAgY2FzZSBcImNoaWxkLW9mXCI6XG4gICAgICAgICAgICAvLyBwYXJlbnRzID0gRU1QVFkgbWVhbnMgdGhpcyB3aWxsIGFsc28gYmUgZW1wdHkuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzID0gY29uc3RhbnRmb2xkKHF1ZXJ5LnBhcmVudHMpO1xuICAgICAgICAgICAgaWYgKHBhcmVudHMudHlwZSA9PT0gXCJjb25zdGFudFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnRzLmNvbnN0YW50KSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhcmVudHMuY29uc3RhbnQgJiYgcXVlcnkuaW5jbHVzaXZlKSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBxdWVyeSwgeyBwYXJlbnRzIH0pO1xuICAgICAgICBjYXNlIFwicGFyZW50LW9mXCI6XG4gICAgICAgICAgICAvLyBjaGlsZHJlbiA9IEVNUFRZIG1lYW5zIHRoaXMgd2lsbCBhbHNvIGJlIGVtcHR5LlxuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBjb25zdGFudGZvbGQocXVlcnkuY2hpbGRyZW4pO1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgIGlmICghY2hpbGRyZW4uY29uc3RhbnQpIHJldHVybiB7IHR5cGU6IFwiY29uc3RhbnRcIiwgY29uc3RhbnQ6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4uY29uc3RhbnQgJiYgcXVlcnkuaW5jbHVzaXZlKSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBxdWVyeSwgeyBjaGlsZHJlbiB9KTtcbiAgICAgICAgY2FzZSBcImxpbmtlZFwiOlxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29uc3RhbnRmb2xkKHF1ZXJ5LnNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoc291cmNlLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgIGlmICghc291cmNlLmNvbnN0YW50KSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZS5jb25zdGFudCAmJiBxdWVyeS5pbmNsdXNpdmUpIHJldHVybiB7IHR5cGU6IFwiY29uc3RhbnRcIiwgY29uc3RhbnQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IHNvdXJjZSB9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbmRleCBRdWVyeSBFeGVjdXRvciAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIEludGVyZmFjZSBwcm92aWRlZCB0byB0aGUgcXVlcnkgZXhlY3V0b3IgdG8gcmVzb2x2ZSBxdWVyeSBsZWFmIG5vZGVzIChsaWtlIFwiZmluZCBhbGwgcGFnZXMgbWF0Y2hpbmcgJyN0YWcnXCIpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmRleFJlc29sdmVyPFQ+IHtcbiAgICAvKiogVGhlIHNldCBvZiBhbGwgcG9zc2libGUgb2JqZWN0cy4gKi9cbiAgICB1bml2ZXJzZTogU2V0PFQ+O1xuXG4gICAgLyoqIFJlc29sdmUgYW4gYXJiaXRyYXJ5IGluZGV4IHNvdXJjZSAobGlrZSBcImZpbmQgYWxsIHBhZ2VzIG1hdGNoaW5nICcjdGFnJ1wiKSBpbnRvIGEgZmlsdGVyLiAgKi9cbiAgICByZXNvbHZlKGxlYWY6IEluZGV4U291cmNlKTogUmVzdWx0PEZpbHRlcjxUPiwgc3RyaW5nPjtcblxuICAgIC8qKiBSZXNvbHZlIGFuIGluZGV4IHByaW1pdGl2ZSwgd2hpY2ggaXMgZ2FyYXVudGVlZCB0byBuZXZlciByYWlzZSBhbiBleGNlcHRpb24uICovXG4gICAgcmVzb2x2ZVByaW1pdGl2ZShsZWFmOiBJbmRleFByaW1pdGl2ZSk6IEZpbHRlcjxUPjtcblxuICAgIC8qKiBMb2FkIGEgc3BlY2lmaWMgb2JqZWN0IGlmIGF2YWlsYWJsZS4gKi9cbiAgICBsb2FkKGlkOiBUKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogRXhlY3V0ZSBhIHF1ZXJ5LCB1c2luZyB0aGUgZ2l2ZW4gcmVzb2x2ZXIgdG8gZXhlY3V0ZSB0aGUgbGVhZiBub2RlcyBhbmQgdGhlIGdpdmVuIGV2YWx1YXRvciB0byByZXNvbHZlIGV4cHJlc3Npb25zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGU8VD4oXG4gICAgcXVlcnk6IEluZGV4UXVlcnksXG4gICAgcmVzb2x2ZXI6IEluZGV4UmVzb2x2ZXI8VD4sXG4gICAgZXZhbHVhdG9yOiBFdmFsdWF0b3Jcbik6IFJlc3VsdDxGaWx0ZXI8VD4sIHN0cmluZz4ge1xuICAgIHJldHVybiBzaW1wbGlmeShxdWVyeSwgcmVzb2x2ZXIpLmZsYXRNYXAoKHRyZWUpID0+IGNvbGxhcHNlKHRyZWUsIHJlc29sdmVyLCBldmFsdWF0b3IpKTtcbn1cblxuLyoqIFNpbXBsaWZ5IGEgdHJlZSwgY29tYmluaW5nIHByaW1pdGl2ZXMgaW4gQU5Ecy9PUnMuICovXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxpZnk8VD4ocXVlcnk6IEluZGV4UXVlcnksIHJlc29sdmVyOiBJbmRleFJlc29sdmVyPFQ+KTogUmVzdWx0PEZpbHRlclRyZWU8VD4sIHN0cmluZz4ge1xuICAgIHN3aXRjaCAocXVlcnkudHlwZSkge1xuICAgICAgICBjYXNlIFwiYW5kXCI6XG4gICAgICAgICAgICAvLyBUT0RPOiBFYXJseSByZXR1cm4gb24gYSBOT1RISU5HIGluc2lkZSB0aGUgbWFwQWxsIGxvb3AuXG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm1hcEFsbChxdWVyeS5lbGVtZW50cywgKGNoaWxkKSA9PiBzaW1wbGlmeShjaGlsZCwgcmVzb2x2ZXIpKS5tYXAoKGVsZW1lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdHRlbmVkID0gZWxlbWVudHMuZmxhdE1hcCgoZWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID09PSBcImFuZFwiID8gZWxlbWVudC5lbGVtZW50cyA6IFtlbGVtZW50XVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvdGhlcjogRmlsdGVyVHJlZTxUPltdID0gW107XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlID0gRmlsdGVycy5sYXp5SW50ZXJzZWN0KGZsYXR0ZW5lZCwgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXCJmaWx0ZXJcIikgcmV0dXJuIGVsZW1lbnQuZmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBFYXJseSByZXR1cm4gb24gTk9USElORyAobm90aGluZyB3aWxsIG1hdGNoKSwgYW5kIHNraXAgb24gTk9USElORy5cbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlLnR5cGUgPT09IFwibm90aGluZ1wiKSByZXR1cm4geyB0eXBlOiBcImZpbHRlclwiLCBmaWx0ZXI6IEZpbHRlcnMuTk9USElORyB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZS50eXBlICE9IFwiZXZlcnl0aGluZ1wiKSBvdGhlci5wdXNoKEZpbHRlclRyZWVzLmZpbHRlcihwcmltaXRpdmUpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJUcmVlcy5hbmQob3RoZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgXCJvclwiOlxuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5tYXBBbGwocXVlcnkuZWxlbWVudHMsIChjaGlsZCkgPT4gc2ltcGxpZnkoY2hpbGQsIHJlc29sdmVyKSkubWFwKChlbGVtZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXR0ZW5lZCA9IGVsZW1lbnRzLmZsYXRNYXAoKGVsZW1lbnQpID0+IChlbGVtZW50LnR5cGUgPT09IFwib3JcIiA/IGVsZW1lbnQuZWxlbWVudHMgOiBbZWxlbWVudF0pKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG90aGVyOiBGaWx0ZXJUcmVlPFQ+W10gPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmltaXRpdmUgPSBGaWx0ZXJzLmxhenlVbmlvbihmbGF0dGVuZWQsIChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFwiZmlsdGVyXCIpIHJldHVybiBlbGVtZW50LmZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gRWFybHkgcmV0dXJuIG9uIEVWRVJZVEhJTkcgKGFsbCB3aWxsIG1hdGNoKSwgYW5kIHNraXAgb24gTk9USElORy5cbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSByZXR1cm4geyB0eXBlOiBcImZpbHRlclwiLCBmaWx0ZXI6IEZpbHRlcnMuRVZFUllUSElORyB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZS50eXBlICE9IFwibm90aGluZ1wiKSBvdGhlci5wdXNoKEZpbHRlclRyZWVzLmZpbHRlcihwcmltaXRpdmUpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJUcmVlcy5vcihvdGhlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSBcIm5vdFwiOlxuICAgICAgICAgICAgcmV0dXJuIHNpbXBsaWZ5KHF1ZXJ5LmVsZW1lbnQsIHJlc29sdmVyKS5tYXAoRmlsdGVyVHJlZXMubm90KTtcbiAgICAgICAgY2FzZSBcImV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBoYXNWYXJpYWJsZXMocXVlcnkuZXhwcmVzc2lvbiwgcmVzb2x2ZXIpO1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHsgdHlwZTogXCJzY2FuXCIsIGNhbmRpZGF0ZXMsIGV4cHJlc3Npb246IHF1ZXJ5LmV4cHJlc3Npb24gfSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShxdWVyeSkubWFwKChmaWx0ZXIpID0+ICh7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlciB9KSk7XG4gICAgfVxufVxuXG4vKiogQ29sbGFwc2UgYSBmaWx0ZXIgdHJlZSBieSBldmFsdWF0aW5nIGFsbCBzY2FucyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb250ZXh0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxhcHNlPFQ+KFxuICAgIHRyZWU6IEZpbHRlclRyZWU8VD4sXG4gICAgcmVzb2x2ZXI6IEluZGV4UmVzb2x2ZXI8VD4sXG4gICAgZXZhbHVhdG9yOiBFdmFsdWF0b3IsXG4gICAgbGltaXQ6IEZpbHRlcjxUPiA9IEZpbHRlcnMuRVZFUllUSElOR1xuKTogUmVzdWx0PEZpbHRlcjxUPiwgc3RyaW5nPiB7XG4gICAgc3dpdGNoICh0cmVlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcIm9yXCI6XG4gICAgICAgICAgICByZXR1cm4gRmlsdGVycy5sYXp5RmFpbGFibGVVbmlvbih0cmVlLmVsZW1lbnRzLCAoZWxlbWVudCkgPT4gY29sbGFwc2UoZWxlbWVudCwgcmVzb2x2ZXIsIGV2YWx1YXRvciwgbGltaXQpKTtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlcyA9IHRyZWUuZWxlbWVudHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChlbGVtKTogZWxlbSBpcyB7IHR5cGU6IFwiZmlsdGVyXCI7IGZpbHRlcjogRmlsdGVyPFQ+IH0gPT4gZWxlbS50eXBlID09PSBcImZpbHRlclwiKVxuICAgICAgICAgICAgICAgIC5tYXAoKGYpID0+IGYuZmlsdGVyKTtcbiAgICAgICAgICAgIGxldCByZXN0cmljdGVkTGltaXQgPSBGaWx0ZXJzLmludGVyc2VjdChbbGltaXQsIC4uLnByaW1pdGl2ZXNdKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRyZWUuZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBcImZpbHRlclwiKSBjb250aW51ZTsgLy8gQWxyZWFkeSBpbiB0aGUgaW50ZXJzZWN0aW9uLlxuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVFdmFsdWF0ZWQgPSBjb2xsYXBzZShlbGVtZW50LCByZXNvbHZlciwgZXZhbHVhdG9yLCByZXN0cmljdGVkTGltaXQpO1xuICAgICAgICAgICAgICAgIGlmICghbWF5YmVFdmFsdWF0ZWQuc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlRXZhbHVhdGVkLmNhc3QoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2YWx1YXRlZCA9IG1heWJlRXZhbHVhdGVkLnZhbHVlO1xuICAgICAgICAgICAgICAgIHJlc3RyaWN0ZWRMaW1pdCA9IEZpbHRlcnMuaW50ZXJzZWN0KFtyZXN0cmljdGVkTGltaXQsIGV2YWx1YXRlZF0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3RyaWN0ZWRMaW1pdC50eXBlID09PSBcIm5vdGhpbmdcIikgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN0cmljdGVkTGltaXQpO1xuICAgICAgICBjYXNlIFwibm90XCI6XG4gICAgICAgICAgICByZXR1cm4gY29sbGFwc2UodHJlZS5lbGVtZW50LCByZXNvbHZlciwgZXZhbHVhdG9yLCBsaW1pdCkubWFwKEZpbHRlcnMubmVnYXRlKTtcbiAgICAgICAgY2FzZSBcImZpbHRlclwiOlxuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHRyZWUuZmlsdGVyKTtcbiAgICAgICAgY2FzZSBcInNjYW5cIjpcbiAgICAgICAgICAgIC8vIExvY2FsIHRyZWUgY2FuZGlkYXRlcyArIGV4aXN0aW5nIGxpbWl0IHRvIHByb2R1Y2UgdGhlIG1pbmltYWwgc2V0IG9mIGNhbmRpZGF0ZXMuXG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gRmlsdGVycy5yZXNvbHZlKEZpbHRlcnMuaW50ZXJzZWN0KFt0cmVlLmNhbmRpZGF0ZXMsIGxpbWl0XSksIHJlc29sdmVyLnVuaXZlcnNlKTtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJTY2FuKGNhbmRpZGF0ZXMsIHRyZWUuZXhwcmVzc2lvbiwgZXZhbHVhdG9yLCByZXNvbHZlcikubWFwKEZpbHRlcnMuYXRvbSk7XG4gICAgfVxufVxuXG4vKiogU2NhbiBvdmVyIGFsbCBjYW5kaWRhdGUgb2JqZWN0cywgcmV0dXJuaW5nIG9iamVjdHMgZm9yIHdoaWNoIHRoZSBnaXZlbiBleHByZXNzaW9uIHJlc29sdmVzIHRvIHRydWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2NhbjxUPihcbiAgICBjYW5kaWRhdGVzOiBTZXQ8VD4sXG4gICAgZXhwcjogRXhwcmVzc2lvbixcbiAgICBldmFsdWF0b3I6IEV2YWx1YXRvcixcbiAgICByZXNvbHZlcjogSW5kZXhSZXNvbHZlcjxUPlxuKTogUmVzdWx0PFNldDxUPiwgc3RyaW5nPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldDxUPigpO1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0gcmVzb2x2ZXIubG9hZChjYW5kaWRhdGUpO1xuICAgICAgICBpZiAoIW9iamVjdCkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmFsdWF0b3IuZXZhbHVhdGUoZXhwciwgVmFyaWFibGVzLmluZmVyKG9iamVjdCkpO1xuICAgICAgICBpZiAoIXZhbHVlLnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShgRXJyb3Igd2hpbGUgZXZhbHVhdGluZyBleHByZXNzaW9uIFwiJHtFeHByZXNzaW9ucy50b1N0cmluZyhleHByKX1cIjogJHt2YWx1ZS5lcnJvcn1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChMaXRlcmFscy5pc1RydXRoeSh2YWx1ZS52YWx1ZSkpIHJlc3VsdC5hZGQoY2FuZGlkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xufVxuXG4vKiogRmlsdGVycyBhbiBleHByZXNzaW9uIHRvIGZpbmQgcGFnZXMgdGhhdCBoYXZlIHRoZSB2YXJpYWJsZXMgZm9yIHRoYXQgZXhwcmVzc2lvbi4gICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVmFyaWFibGVzPFQ+KGV4cHI6IEV4cHJlc3Npb24sIHJlc29sdmVyOiBJbmRleFJlc29sdmVyPFQ+KTogRmlsdGVyPFQ+IHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBFeHByZXNzaW9ucy51bmJvdW5kVmFyaWFibGVzKGV4cHIsIG5ldyBTZXQoW0V4cHJlc3Npb25zLlJPVywgXCJ0aGlzXCJdKSk7XG5cbiAgICAvLyB2YXJpYWJsZXMgPSAwIGltcGxpZXNzIHNvbWUgd2VpcmQgZnVuY3Rpb24gb3IgY29uc3RhbnQgZXhwcmVzc2lvbi5cbiAgICAvLyBUT0RPOiB3ZSBjYW4gcHJvYmFibHkgZXZhbHVhdGUgaXQgd2l0aG91dCBldmVuIHNjYW5uaW5nIHRvIGB0cnVlYCBvciBgZmFsc2VgIGJ1dCB0byBiZSBkZWZlbnNpdmUgaGF2ZSB0byByZXR1cm4gZXZlcnl0aGluZyBmb3Igbm93LlxuICAgIGlmICh2YXJpYWJsZXMuc2l6ZSA9PSAwKSByZXR1cm4gRmlsdGVycy5FVkVSWVRISU5HO1xuXG4gICAgcmV0dXJuIEZpbHRlcnMubGF6eVVuaW9uKHZhcmlhYmxlcywgKHZhcmlhYmxlKSA9PiByZXNvbHZlci5yZXNvbHZlUHJpbWl0aXZlKHsgdHlwZTogXCJmaWVsZFwiLCB2YWx1ZTogdmFyaWFibGUgfSkpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbHRlciBUcmVlcyAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIEZpbHRlclRyZWU8VD4gPVxuICAgIHwgeyB0eXBlOiBcImFuZFwiOyBlbGVtZW50czogRmlsdGVyVHJlZTxUPltdIH1cbiAgICB8IHsgdHlwZTogXCJvclwiOyBlbGVtZW50czogRmlsdGVyVHJlZTxUPltdIH1cbiAgICB8IHsgdHlwZTogXCJub3RcIjsgZWxlbWVudDogRmlsdGVyVHJlZTxUPiB9XG4gICAgfCB7IHR5cGU6IFwiZmlsdGVyXCI7IGZpbHRlcjogRmlsdGVyPFQ+IH1cbiAgICB8IHsgdHlwZTogXCJzY2FuXCI7IGNhbmRpZGF0ZXM6IEZpbHRlcjxUPjsgZXhwcmVzc2lvbjogRXhwcmVzc2lvbiB9O1xuXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlclRyZWVzIHtcbiAgICBleHBvcnQgZnVuY3Rpb24gZmlsdGVyPFQ+KGZpbHRlcjogRmlsdGVyPFQ+KTogRmlsdGVyVHJlZTxUPiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlciB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBhbmQ8VD4oY2hpbGRyZW46IEZpbHRlclRyZWU8VD5bXSk6IEZpbHRlclRyZWU8VD4ge1xuICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBmaWx0ZXIoRmlsdGVycy5FVkVSWVRISU5HKTtcbiAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDEpIHJldHVybiBjaGlsZHJlblswXTtcbiAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcImFuZFwiLCBlbGVtZW50czogY2hpbGRyZW4gfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gb3I8VD4oY2hpbGRyZW46IEZpbHRlclRyZWU8VD5bXSk6IEZpbHRlclRyZWU8VD4ge1xuICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBmaWx0ZXIoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDEpIHJldHVybiBjaGlsZHJlblswXTtcbiAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcIm9yXCIsIGVsZW1lbnRzOiBjaGlsZHJlbiB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBub3Q8VD4oY2hpbGQ6IEZpbHRlclRyZWU8VD4pOiBGaWx0ZXJUcmVlPFQ+IHtcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IFwiZmlsdGVyXCIpIHJldHVybiB7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlcjogRmlsdGVycy5uZWdhdGUoY2hpbGQuZmlsdGVyKSB9O1xuICAgICAgICBlbHNlIHJldHVybiB7IHR5cGU6IFwibm90XCIsIGVsZW1lbnQ6IGNoaWxkIH07XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpbmssIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRmlsdGVyLCBGaWx0ZXJzIH0gZnJvbSBcImV4cHJlc3Npb24vZmlsdGVyc1wiO1xuaW1wb3J0IHsgRm9sZGVySW5kZXggfSBmcm9tIFwiaW5kZXgvc3RvcmFnZS9mb2xkZXJcIjtcbmltcG9ydCB7IEludmVydGVkSW5kZXggfSBmcm9tIFwiaW5kZXgvc3RvcmFnZS9pbnZlcnRlZFwiO1xuaW1wb3J0IHsgSW5kZXhQcmltaXRpdmUsIEluZGV4UXVlcnksIEluZGV4U291cmNlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4LXF1ZXJ5XCI7XG5pbXBvcnQgeyBJbmRleGFibGUsIExJTktBQkxFX1RZUEUsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUgfSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBNZXRhZGF0YUNhY2hlLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgTWFya2Rvd25QYWdlIH0gZnJvbSBcIi4vdHlwZXMvbWFya2Rvd25cIjtcbmltcG9ydCB7IGV4dHJhY3RTdWJ0YWdzLCBub3JtYWxpemVIZWFkZXJGb3JMaW5rIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgRmxhdFF1ZXVlIGZyb20gXCJmbGF0cXVldWVcIjtcbmltcG9ydCB7IEJUcmVlRmllbGRJbmRleCwgRXZlcnl0aGluZ0ZpZWxkSW5kZXgsIEZpZWxkSW5kZXgsIElkRmllbGRJbmRleCwgU2V0RmllbGRJbmRleCB9IGZyb20gXCJpbmRleC9zdG9yYWdlL2ZpZWxkc1wiO1xuaW1wb3J0IHsgRklFTERCRUFSSU5HX1RZUEUsIEZpZWxkLCBGaWVsZGJlYXJpbmcgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgSW5kZXhSZXNvbHZlciwgZXhlY3V0ZSwgb3B0aW1pemVRdWVyeSB9IGZyb20gXCJpbmRleC9zdG9yYWdlL3F1ZXJ5LWV4ZWN1dG9yXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuaW1wb3J0IHsgRXZhbHVhdG9yIH0gZnJvbSBcImV4cHJlc3Npb24vZXZhbHVhdG9yXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuXG4vKiogQ2VudHJhbCwgaW5kZXggc3RvcmFnZSBmb3IgZGF0YWNvcmUgdmFsdWVzLiAqL1xuZXhwb3J0IGNsYXNzIERhdGFzdG9yZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHN0b3JlIHJldmlzaW9uLiAqL1xuICAgIHB1YmxpYyByZXZpc2lvbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE1hc3RlciBjb2xsZWN0aW9uIG9mIGFsbCBvYmplY3QgSURzLiBUaGlzIGlzIHRlY2huaWNhbGx5IHJlZHVuZGFudCB3aXRoIG9iamVjdHMua2V5cygpIGJ1dCB0aGlzIGlzIGEgZmFzdCBzZXRcbiAgICAgKiBjb21wYXJlZCB0byBhbiBpdGVyYXRvci5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlkczogU2V0PHN0cmluZz47XG4gICAgLyoqIFRoZSBtYXN0ZXIgY29sbGVjdGlvbiBvZiBBTEwgaW5kZXhlZCBvYmplY3RzLCBtYXBwaW5nIElEIC0+IHRoZSBvYmplY3QuICovXG4gICAgcHJpdmF0ZSBvYmplY3RzOiBNYXA8c3RyaW5nLCBJbmRleGFibGU+O1xuICAgIC8qKiBNYXAgcGFyZW50IG9iamVjdCB0byBpdCdzIGRpcmVjdCBjaGlsZCBvYmplY3RzLiAqL1xuICAgIHByaXZhdGUgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PjtcblxuICAgIC8vIEluZGljZXMgZm9yIHRoZSB2YXJpb3VzIGFjY2VwdGVkIHF1ZXJ5IHR5cGVzLiBUaGVzZSB3aWxsIHByb2JhYmx5IGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IHR5cGUgbGF0ZXIuXG4gICAgLyoqIEdsb2JhbCBtYXAgb2Ygb2JqZWN0IHR5cGUgLT4gbGlzdCBvZiBhbGwgb2JqZWN0cyBvZiB0aGF0IHR5cGUuICovXG4gICAgcHJpdmF0ZSB0eXBlczogSW52ZXJ0ZWRJbmRleDxzdHJpbmc+O1xuICAgIC8qKiBUcmFja3MgZXhhY3QgdGFnIG9jY3VyZW5jZSBpbiBvYmplY3RzLiAqL1xuICAgIHByaXZhdGUgZXRhZ3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogVHJhY2tzIHRhZyBvY2N1cmVuY2UgaW4gb2JqZWN0cy4gKi9cbiAgICBwcml2YXRlIHRhZ3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogTWFwcyBsaW5rIHN0cmluZ3MgdG8gdGhlIG9iamVjdCBJRHMgdGhhdCBsaW5rIHRvIHRob3NlIGxpbmtzLiAqL1xuICAgIHByaXZhdGUgbGlua3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogVHJhY2tzIHRoZSBleGlzdGVuY2Ugb2YgZmllbGRzIChpbmRleGVkIGJ5IG5vcm1hbGl6ZWQga2V5IG5hbWUpLiAqL1xuICAgIHByaXZhdGUgZmllbGRzOiBNYXA8c3RyaW5nLCBGaWVsZEluZGV4PjtcbiAgICAvKipcbiAgICAgKiBRdWljayBzZWFyY2hlcyBmb3Igb2JqZWN0cyBpbiBmb2xkZXJzLiBUaGlzIGluZGV4IG9ubHkgdHJhY2tzIHRvcC1sZXZlbCBvYmplY3RzIC0gaXQgaXMgZXhwYW5kZWQgcmVjdXJzaXZlbHkgdG9cbiAgICAgKiBmaW5kIGNoaWxkIG9iamVjdHMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmb2xkZXI6IEZvbGRlckluZGV4O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyB2YXVsdDogVmF1bHQsIHB1YmxpYyBtZXRhZGF0YUNhY2hlOiBNZXRhZGF0YUNhY2hlLCBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMucmV2aXNpb24gPSAwO1xuICAgICAgICB0aGlzLmlkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgdGhpcy5vYmplY3RzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIHRoaXMudHlwZXMgPSBuZXcgSW52ZXJ0ZWRJbmRleCgpO1xuICAgICAgICB0aGlzLmV0YWdzID0gbmV3IEludmVydGVkSW5kZXgoKTtcbiAgICAgICAgdGhpcy50YWdzID0gbmV3IEludmVydGVkSW5kZXgoKTtcbiAgICAgICAgdGhpcy5saW5rcyA9IG5ldyBJbnZlcnRlZEluZGV4KCk7XG4gICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5faW5pdGlhbGl6ZUZpZWxkcygpO1xuICAgICAgICB0aGlzLmZvbGRlciA9IG5ldyBGb2xkZXJJbmRleCh2YXVsdCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgdG90YWwgbnVtYmVyIG9mIG9iamVjdHMgaW4gdGhlIHN0b3JlLiAqL1xuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RzLnNpemU7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGUgcmV2aXNpb24gb2YgdGhlIGRhdGFzdG9yZSBkdWUgdG8gYW4gZXh0ZXJuYWwgdXBkYXRlLiAqL1xuICAgIHB1YmxpYyB0b3VjaCgpIHtcbiAgICAgICAgdGhpcy5yZXZpc2lvbiArPSAxO1xuICAgIH1cblxuICAgIC8qKiBMb2FkIGFuIG9iamVjdCBieSBJRC4gKi9cbiAgICBwdWJsaWMgbG9hZChpZDogc3RyaW5nKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMb2FkIGEgbGlzdCBvZiBvYmplY3RzIGJ5IElELiAqL1xuICAgIHB1YmxpYyBsb2FkKGlkczogc3RyaW5nW10pOiBJbmRleGFibGVbXTtcblxuICAgIC8qKiBMb2FkIGFuIG9iamVjdCBieSBJRCBvciBsaXN0IG9mIElEcy4gKi9cbiAgICBsb2FkKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSk6IEluZGV4YWJsZSB8IEluZGV4YWJsZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gaWQubWFwKChhKSA9PiB0aGlzLmxvYWQoYSkpLmZpbHRlcigob2JqKTogb2JqIGlzIEluZGV4YWJsZSA9PiBvYmogIT09IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RzLmdldChpZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdXAgc2FuZSBmaWVsZCBkZWZhdWx0cyBmb3Igc2V2ZXJhbCBpbmRleGFibGUgZmllbGRzLiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVGaWVsZHMoKTogTWFwPHN0cmluZywgRmllbGRJbmRleD4ge1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBuZXcgTWFwPHN0cmluZywgRmllbGRJbmRleD4oKTtcblxuICAgICAgICAvLyBTcGVjaWFsaXplIGluZGljZXMgZm9yICRpZCBhbmQgdGhlIG90aGVyIG9tbmlwcmVzZW50IGZpZWxkIHZhbHVlcy5cbiAgICAgICAgZmllbGRzLnNldChcbiAgICAgICAgICAgIFwiJGlkXCIsXG4gICAgICAgICAgICBuZXcgSWRGaWVsZEluZGV4KFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMuaWRzLFxuICAgICAgICAgICAgICAgIChpZCkgPT4gdGhpcy5vYmplY3RzLmhhcyhpZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGRzLnNldChcIiR0eXBlc1wiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcbiAgICAgICAgZmllbGRzLnNldChcIiR0eXBlbmFtZVwiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcbiAgICAgICAgZmllbGRzLnNldChcIiRyZXZpc2lvblwiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcblxuICAgICAgICAvLyBPcHRpbWl6ZSBvdmVyICRjb21wbGV0ZWQgYW5kICRzdGF0dXMgbG9va3VwcyBmb3IgdGFza3MuXG4gICAgICAgIGZpZWxkcy5zZXQoXCIkY29tcGxldGVkXCIsIG5ldyBCVHJlZUZpZWxkSW5kZXgoKSk7XG4gICAgICAgIGZpZWxkcy5zZXQoXCIkc3RhdHVzXCIsIG5ldyBCVHJlZUZpZWxkSW5kZXgoKSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgZ2l2ZW4gb2JqZWN0LCBtYWtpbmcgaXQgaW1tZWRpYXRlbHkgcXVlcnlhYmxlLiBTdG9yaW5nIGFuIG9iamVjdFxuICAgICAqIHRha2VzIG93bmVyc2hpcCBvdmVyIGl0LCBhbmQgaW5kZXgtc3BlY2lmaWMgdmFyaWFibGVzIChwcmVmaXhlZCB2aWEgJyQnKSBtYXkgYmVcbiAgICAgKiBhZGRlZCB0byB0aGUgb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9yZTxUIGV4dGVuZHMgSW5kZXhhYmxlPihvYmplY3Q6IFQgfCBUW10sIHN1YnN0b3Jlcj86IFN1YnN0b3JlcjxUPikge1xuICAgICAgICB0aGlzLl9yZWN1cnNpdmVTdG9yZShvYmplY3QsIHRoaXMucmV2aXNpb24rKywgc3Vic3RvcmVyLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIC8qKiBSZWN1cnNpdmVseSBzdG9yZSBvYmplY3RzIHVzaW5nIGEgcG90ZW50aWFsIHN1YmluZGV4ZXIuICovXG4gICAgcHJpdmF0ZSBfcmVjdXJzaXZlU3RvcmU8VCBleHRlbmRzIEluZGV4YWJsZT4oXG4gICAgICAgIG9iamVjdDogVCB8IFRbXSxcbiAgICAgICAgcmV2aXNpb246IG51bWJlcixcbiAgICAgICAgc3Vic3RvcmVyPzogU3Vic3RvcmVyPFQ+LFxuICAgICAgICBwYXJlbnQ/OiBJbmRleGFibGVcbiAgICApIHtcbiAgICAgICAgLy8gSGFuZGxlIGFycmF5IGlucHV0cy5cbiAgICAgICAgaWYgKExpdGVyYWxzLmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWN1cnNpdmVTdG9yZShlbGVtZW50LCByZXZpc2lvbiwgc3Vic3RvcmVyLCBwYXJlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWxldGUgdGhlIHByZXZpb3VzIGluc3RhbmNlIG9mIHRoaXMgb2JqZWN0IGlmIHByZXNlbnQuXG4gICAgICAgIC8vIFRPRE86IFByb2JhYmx5IG9ubHkgYWN0dWFsbHkgbmVlZCB0byBkZWxldGUgdGhlIHJvb3Qgb2JqZWN0cy5cbiAgICAgICAgdGhpcy5fZGVsZXRlUmVjdXJzaXZlKG9iamVjdC4kaWQpO1xuXG4gICAgICAgIC8vIEFzc2lnbiB0aGUgbmV4dCByZXZpc2lvbiB0byB0aGlzIG9iamVjdDsgaW5kZXhlZCBvYmplY3RzIGFyZSBpbXBsaWVkIHRvIGJlIHJvb3Qgb2JqZWN0cy5cbiAgICAgICAgb2JqZWN0LiRyZXZpc2lvbiA9IHJldmlzaW9uO1xuICAgICAgICBvYmplY3QuJHBhcmVudCA9IHBhcmVudDtcblxuICAgICAgICAvLyBBZGQgdGhlIG9iamVjdCB0byB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IG1hcHMuXG4gICAgICAgIHRoaXMuaWRzLmFkZChvYmplY3QuJGlkKTtcbiAgICAgICAgdGhpcy5vYmplY3RzLnNldChvYmplY3QuJGlkLCBvYmplY3QpO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgb2JqZWN0IHRvIHRoZSBwYXJlbnQgY2hpbGRyZW4gbWFwLlxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW4uaGFzKHBhcmVudC4kaWQpKSB0aGlzLmNoaWxkcmVuLnNldChwYXJlbnQuJGlkLCBuZXcgU2V0KCkpO1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5nZXQocGFyZW50LiRpZCkhLmFkZChvYmplY3QuJGlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luZGV4KG9iamVjdCk7XG5cbiAgICAgICAgLy8gSW5kZXggYW55IHN1Ym9yZGluYXRlIG9iamVjdHMgaW4gdGhpcyBvYmplY3QuXG4gICAgICAgIHN1YnN0b3Jlcj8uKG9iamVjdCwgKGluY29taW5nLCBzdWJpbmRleCkgPT4gdGhpcy5fcmVjdXJzaXZlU3RvcmUoaW5jb21pbmcsIHJldmlzaW9uLCBzdWJpbmRleCwgb2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqIERlbGV0ZSBhbiBvYmplY3QgYnkgSUQgZnJvbSB0aGUgaW5kZXgsIHJlY3Vyc2l2ZWx5IGRlbGV0aW5nIGFueSBjaGlsZCBvYmplY3RzIGFzIHdlbGwuICovXG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9kZWxldGVSZWN1cnNpdmUoaWQpKSB7XG4gICAgICAgICAgICB0aGlzLnJldmlzaW9uKys7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJuYWwgbWV0aG9kIHRoYXQgZG9lcyBub3QgYnVtcCB0aGUgcmV2aXNpb24uICovXG4gICAgcHJpdmF0ZSBfZGVsZXRlUmVjdXJzaXZlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0gdGhpcy5vYmplY3RzLmdldChpZCk7XG4gICAgICAgIGlmICghb2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBkZWxldGUgYWxsIGNoaWxkIG9iamVjdHMuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5nZXQoaWQpO1xuICAgICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVsZXRlUmVjdXJzaXZlKGNoaWxkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHJvcCB0aGlzIG9iamVjdCBmcm9tIHRoZSBhcHByb3ByaWF0ZSBtYXBzLlxuICAgICAgICB0aGlzLl91bmluZGV4KG9iamVjdCk7XG4gICAgICAgIHRoaXMuaWRzLmRlbGV0ZShpZCk7XG4gICAgICAgIHRoaXMub2JqZWN0cy5kZWxldGUoaWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQWRkIHRoZSBnaXZlbiBpbmRleGFibGUgdG8gdGhlIGFwcHJvcHJpYXRlIGluZGljZXMuICovXG4gICAgcHJpdmF0ZSBfaW5kZXgob2JqZWN0OiBJbmRleGFibGUpIHtcbiAgICAgICAgdGhpcy50eXBlcy5zZXQob2JqZWN0LiRpZCwgb2JqZWN0LiR0eXBlcyk7XG5cbiAgICAgICAgLy8gRXhhY3QgYW5kIGRlcml2ZWQgdGFncy5cbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZXMuY29udGFpbnMoVEFHR0FCTEVfVFlQRSkgJiYgaXRlcmFibGVFeGlzdHMob2JqZWN0LCBcIiR0YWdzXCIpKSB7XG4gICAgICAgICAgICBjb25zdCB0YWdzID0gb2JqZWN0LiR0YWdzIGFzIFNldDxzdHJpbmc+O1xuXG4gICAgICAgICAgICB0aGlzLmV0YWdzLnNldChvYmplY3QuJGlkLCB0YWdzKTtcbiAgICAgICAgICAgIHRoaXMudGFncy5zZXQob2JqZWN0LiRpZCwgZXh0cmFjdFN1YnRhZ3ModGFncykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhhY3QgYW5kIGRlcml2ZWQgbGlua3MuXG4gICAgICAgIGlmIChvYmplY3QuJHR5cGVzLmNvbnRhaW5zKExJTktCRUFSSU5HX1RZUEUpICYmIGl0ZXJhYmxlRXhpc3RzKG9iamVjdCwgXCIkbGlua3NcIikpIHtcbiAgICAgICAgICAgIHRoaXMubGlua3Muc2V0KFxuICAgICAgICAgICAgICAgIG9iamVjdC4kaWQsXG4gICAgICAgICAgICAgICAgKG9iamVjdC4kbGlua3MgYXMgTGlua1tdKS5tYXAoKGxpbmspID0+IGxpbmsub2JzaWRpYW5MaW5rKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsIGZpZWxkcyBvbiBhbiBvYmplY3QuXG4gICAgICAgIGlmIChvYmplY3QuJHR5cGVzLmNvbnRhaW5zKEZJRUxEQkVBUklOR19UWVBFKSAmJiBcImZpZWxkc1wiIGluIG9iamVjdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBvYmplY3QuZmllbGRzIGFzIEl0ZXJhYmxlPEZpZWxkPikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm0gPSBmaWVsZC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGRzLmhhcyhub3JtKSkgdGhpcy5maWVsZHMuc2V0KG5vcm0sIG5ldyBTZXRGaWVsZEluZGV4KCkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZ2V0KG5vcm0pIS5hZGQob2JqZWN0LiRpZCwgZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZSB0aGUgZ2l2ZW4gaW5kZXhhYmxlIGZyb20gYWxsIGluZGljZXMuICovXG4gICAgcHJpdmF0ZSBfdW5pbmRleChvYmplY3Q6IEluZGV4YWJsZSkge1xuICAgICAgICB0aGlzLnR5cGVzLmRlbGV0ZShvYmplY3QuJGlkLCBvYmplY3QuJHR5cGVzKTtcblxuICAgICAgICBpZiAob2JqZWN0LiR0eXBlcy5jb250YWlucyhUQUdHQUJMRV9UWVBFKSAmJiBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJHRhZ3NcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSBvYmplY3QuJHRhZ3MgYXMgU2V0PHN0cmluZz47XG5cbiAgICAgICAgICAgIHRoaXMuZXRhZ3MuZGVsZXRlKG9iamVjdC4kaWQsIHRhZ3MpO1xuICAgICAgICAgICAgdGhpcy50YWdzLmRlbGV0ZShvYmplY3QuJGlkLCBleHRyYWN0U3VidGFncyh0YWdzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2JqZWN0LiR0eXBlcy5jb250YWlucyhMSU5LQkVBUklOR19UWVBFKSAmJiBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJGxpbmtzXCIpKSB7XG4gICAgICAgICAgICAvLyBBc3N1bWUgbGlua3MgYXJlIG5vcm1hbGl6ZWQgd2hlbiBkZWxldGluZyB0aGVtLiBDb3VsZCBiZSBicm9rZW4gYnV0IEkgaG9wZSBub3QuIFdlIGNhbiBhbHdheXMgdXNlIGEgMi13YXkgaW5kZXggdG9cbiAgICAgICAgICAgIC8vIGZpeCB0aGlzIGlmIHdlIGVuY291bnRlciBub24tbm9ybWFsaXplZCBsaW5rcy5cbiAgICAgICAgICAgIHRoaXMubGlua3MuZGVsZXRlKFxuICAgICAgICAgICAgICAgIG9iamVjdC4kaWQsXG4gICAgICAgICAgICAgICAgKG9iamVjdC4kbGlua3MgYXMgTGlua1tdKS5tYXAoKGxpbmspID0+IGxpbmsub2JzaWRpYW5MaW5rKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZXMuY29udGFpbnMoRklFTERCRUFSSU5HX1RZUEUpICYmIFwiZmllbGRzXCIgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIG9iamVjdC5maWVsZHMgYXMgSXRlcmFibGU8RmllbGQ+KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybSA9IGZpZWxkLmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZHMuaGFzKG5vcm0pKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmdldChub3JtKSEuZGVsZXRlKG9iamVjdC4kaWQsIGZpZWxkLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDb21wbGV0ZWx5IGNsZWFyIHRoZSBkYXRhc3RvcmUgb2YgYWxsIHZhbHVlcy4gKi9cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaWRzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMub2JqZWN0cy5jbGVhcigpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmNsZWFyKCk7XG5cbiAgICAgICAgdGhpcy50eXBlcy5jbGVhcigpO1xuICAgICAgICB0aGlzLnRhZ3MuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5ldGFncy5jbGVhcigpO1xuICAgICAgICB0aGlzLmxpbmtzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZmllbGRzLmNsZWFyKCk7XG5cbiAgICAgICAgdGhpcy5yZXZpc2lvbisrO1xuICAgIH1cblxuICAgIC8qKiBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdCBmb3IgYSBnaXZlbiBsaW5rLiAqL1xuICAgIHB1YmxpYyByZXNvbHZlTGluayhyYXdMaW5rOiBzdHJpbmcgfCBMaW5rLCBzb3VyY2VQYXRoPzogc3RyaW5nKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGxpbmsgPSB0eXBlb2YgcmF3TGluayA9PT0gXCJzdHJpbmdcIiA/IExpbmsucGFyc2VJbm5lcihyYXdMaW5rKSA6IHJhd0xpbms7XG5cbiAgICAgICAgaWYgKHNvdXJjZVBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtkZXN0ID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmsucGF0aCwgc291cmNlUGF0aCk7XG4gICAgICAgICAgICBpZiAobGlua2Rlc3QpIGxpbmsgPSBsaW5rLndpdGhQYXRoKGxpbmtkZXN0LnBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMub2JqZWN0cy5nZXQobGluay5wYXRoKTtcbiAgICAgICAgaWYgKCFmaWxlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChsaW5rLnR5cGUgPT09IFwiZmlsZVwiKSByZXR1cm4gZmlsZTtcblxuICAgICAgICAvLyBCbG9ja3MgYW5kIGhlYWRlciBsaW5rcyBjYW4gb25seSByZXNvbHZlIGluc2lkZSBvZiBtYXJrZG93biBmaWxlcy5cbiAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIE1hcmtkb3duUGFnZSkpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGxpbmsudHlwZSA9PT0gXCJoZWFkZXJcIikge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IGZpbGUuJHNlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKHNlYykgPT4gbm9ybWFsaXplSGVhZGVyRm9yTGluayhzZWMuJHRpdGxlKSA9PSBsaW5rLnN1YnBhdGggfHwgc2VjLiR0aXRsZSA9PSBsaW5rLnN1YnBhdGhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChzZWN0aW9uKSByZXR1cm4gc2VjdGlvbjtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rLnR5cGUgPT09IFwiYmxvY2tcIikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGZpbGUuJHNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBzZWN0aW9uLiRibG9ja3MuZmluZCgoYmwpID0+IGJsLiRibG9ja0lkID09PSBsaW5rLnN1YnBhdGgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrKSByZXR1cm4gYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBsaW5rIHR5cGU6ICR7bGluay50eXBlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHRoZSBkYXRhc3RvcmUgZm9yIGFsbCBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHF1ZXJ5LCByZXR1cm5pbmcgdGhlbVxuICAgICAqIGFzIGEgbGlzdCBvZiBpbmRleGVkIG9iamVjdHMgYWxvbmcgd2l0aCBwZXJmb3JtYW5jZSBtZXRhZGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoKHF1ZXJ5OiBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PFNlYXJjaFJlc3VsdDxJbmRleGFibGU+LCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIGNvbnN0IG1heWJlRmlsdGVyID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LCBzZXR0aW5ncyk7XG4gICAgICAgIGlmICghbWF5YmVGaWx0ZXIuc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlRmlsdGVyLmNhc3QoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gRmlsdGVycy5yZXNvbHZlKG1heWJlRmlsdGVyLnZhbHVlLCB0aGlzLmlkcyk7XG5cbiAgICAgICAgY29uc3Qgb2JqZWN0czogSW5kZXhhYmxlW10gPSBbXTtcbiAgICAgICAgbGV0IG1heFJldmlzaW9uID0gMDtcbiAgICAgICAgZm9yIChsZXQgaWQgb2YgcmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KGlkKTtcbiAgICAgICAgICAgIGlmIChvYmplY3QpIHtcbiAgICAgICAgICAgICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcbiAgICAgICAgICAgICAgICBtYXhSZXZpc2lvbiA9IE1hdGgubWF4KG1heFJldmlzaW9uLCBvYmplY3QuJHJldmlzaW9uID8/IDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHtcbiAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgICAgIHJlc3VsdHM6IG9iamVjdHMsXG4gICAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLjAsXG4gICAgICAgICAgICByZXZpc2lvbjogbWF4UmV2aXNpb24sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbnRlcm5hbCBzZWFyY2ggd2hpY2ggeWllbGRzIGEgZmlsdGVyIG9mIHJlc3VsdHMuICovXG4gICAgcHJpdmF0ZSBfc2VhcmNoKHF1ZXJ5OiBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PEZpbHRlcjxzdHJpbmc+LCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IHNldHRpbmdzPy5zb3VyY2VQYXRoO1xuICAgICAgICBjb25zdCBmaWxlID0gc291cmNlUGF0aCA/IHRoaXMub2JqZWN0cy5nZXQoc291cmNlUGF0aCkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgZXZhbHVhdG9yID0gbmV3IEV2YWx1YXRvcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBleGlzdHM6IChwYXRoOiBzdHJpbmcgfCBMaW5rKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVMaW5rKHR5cGVvZiBwYXRoID09IFwic3RyaW5nXCIgPyBMaW5rLmZpbGUocGF0aCkgOiBwYXRoLCBzb3VyY2VQYXRoKSAhPSBudWxsLFxuICAgICAgICAgICAgICAgIHJlc29sdmU6IChwYXRoOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUxpbmsodHlwZW9mIHBhdGggPT0gXCJzdHJpbmdcIiA/IExpbmsuZmlsZShwYXRoKSA6IHBhdGgsIHNvdXJjZVBhdGgpID8/IG51bGwsXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplOiAocGF0aDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QocGF0aCwgc291cmNlUGF0aCA/PyBcIlwiKT8ucGF0aCA/PyBwYXRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBTZXQgYHRoaXNgIG9uIHRoZSBmaWxlIGlmIG5lZWRlZC5cbiAgICAgICAgaWYgKGZpbGUpIGV2YWx1YXRvci5zZXQoXCJ0aGlzXCIsIGZpbGUpO1xuXG4gICAgICAgIGNvbnN0IHJlc29sdmVyOiBJbmRleFJlc29sdmVyPHN0cmluZz4gPSB7XG4gICAgICAgICAgICB1bml2ZXJzZTogdGhpcy5pZHMsXG4gICAgICAgICAgICByZXNvbHZlOiAobGVhZikgPT4gdGhpcy5fcmVzb2x2ZVNvdXJjZShsZWFmLCBzZXR0aW5ncyksXG4gICAgICAgICAgICByZXNvbHZlUHJpbWl0aXZlOiAobGVhZikgPT4gdGhpcy5fcmVzb2x2ZVByaW1pdGl2ZShsZWFmLCBzZXR0aW5ncyksXG4gICAgICAgICAgICBsb2FkOiAoaWQpID0+IHRoaXMubG9hZChpZCksXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGV4ZWN1dGUob3B0aW1pemVRdWVyeShxdWVyeSksIHJlc29sdmVyLCBldmFsdWF0b3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVTb3VyY2UocXVlcnk6IEluZGV4U291cmNlLCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PEZpbHRlcjxzdHJpbmc+LCBzdHJpbmc+IHtcbiAgICAgICAgc3dpdGNoIChxdWVyeS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiY2hpbGQtb2ZcIjpcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBDb25zaWRlciBjb252ZXJ0aW5nIHRoaXMgdG8gYmUgYSBzY2FuIGluc3RlYWQgZm9yIGEgbm90aWNhYmxlIHNwZWVkdXAuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVQYXJlbnRzID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LnBhcmVudHMsIHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1heWJlUGFyZW50cy5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVQYXJlbnRzLmNhc3QoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudHMgPSBtYXliZVBhcmVudHMudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKEZpbHRlcnMuZW1wdHkocGFyZW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRzLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeS5pbmNsdXNpdmUpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLkVWRVJZVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiB0aGUgc2V0IGFsbCBjaGlsZHJlbi4gVE9ETzogQ29uc2lkZXIgY2FjaGluZyB2aWEgYSBgcGFyZW50c2AgbWFwLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbGxDaGlsZHJlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5vYmplY3RzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC4kcGFyZW50KSBhbGxDaGlsZHJlbi5hZGQoZWxlbWVudC4kaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuYXRvbShhbGxDaGlsZHJlbikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUGFyZW50cyA9IEZpbHRlcnMucmVzb2x2ZShwYXJlbnRzLCB0aGlzLmlkcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSZXN1bHRzID0gbmV3IFNldDxzdHJpbmc+KHF1ZXJ5LmluY2x1c2l2ZSA/IHJlc29sdmVkUGFyZW50cyA6IFtdKTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHJlc29sdmVkUGFyZW50cykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2l0ZXJhdGVDaGlsZHJlbihwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFJlc3VsdHMuYWRkKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20oY2hpbGRSZXN1bHRzKSk7XG4gICAgICAgICAgICBjYXNlIFwicGFyZW50LW9mXCI6XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQ29uc2lkZXIgY29udmVydGluZyB0aGlzIHRvIGJlIGEgc2NhbiBpbnN0ZWFkIGZvciBhIG5vdGljYWJsZSBzcGVlZHVwLlxuICAgICAgICAgICAgICAgIGNvbnN0IG1heWJlQ2hpbGRyZW4gPSB0aGlzLl9zZWFyY2gocXVlcnkuY2hpbGRyZW4sIHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1heWJlQ2hpbGRyZW4uc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlQ2hpbGRyZW4uY2FzdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbWF5YmVDaGlsZHJlbi52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChGaWx0ZXJzLmVtcHR5KGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeS5pbmNsdXNpdmUpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLkVWRVJZVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20obmV3IFNldCh0aGlzLmNoaWxkcmVuLmtleXMoKSkpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZENoaWxkcmVuID0gRmlsdGVycy5yZXNvbHZlKGNoaWxkcmVuLCB0aGlzLmlkcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVzdWx0cyA9IG5ldyBTZXQ8c3RyaW5nPihxdWVyeS5pbmNsdXNpdmUgPyByZXNvbHZlZENoaWxkcmVuIDogW10pO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiByZXNvbHZlZENoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHRoaXMuX2l0ZXJhdGVQYXJlbnRzKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVzdWx0cy5hZGQocGFyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20ocGFyZW50UmVzdWx0cykpO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtlZFwiOlxuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5kaXN0YW5jZSAmJiBxdWVyeS5kaXN0YW5jZSA8IDApIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLk5PVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgc291cmNlIG9iamVjdHMgZmlyc3QuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVTb3VyY2VzID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LnNvdXJjZSwgc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIGlmICghbWF5YmVTb3VyY2VzLnN1Y2Nlc3NmdWwpIHJldHVybiBtYXliZVNvdXJjZXMuY2FzdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZXMgPSBtYXliZVNvdXJjZXMudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoRmlsdGVycy5lbXB0eShzb3VyY2VzKSkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlcy50eXBlID09PSBcImV2ZXJ5dGhpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnkuaW5jbHVzaXZlKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5FVkVSWVRISU5HKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFNvdXJjZXMgPSBGaWx0ZXJzLnJlc29sdmUoc291cmNlcywgdGhpcy5pZHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHF1ZXJ5LmRpcmVjdGlvbiA/PyBcImJvdGhcIjtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5fdHJhdmVyc2VMaW5rZWQocmVzb2x2ZWRTb3VyY2VzLCBxdWVyeS5kaXN0YW5jZSA/PyAxLCAoaWQpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGVBZGphY2VudExpbmtlZChpZCwgZGlyZWN0aW9uKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LmluY2x1c2l2ZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuYXRvbShGaWx0ZXJzLnNldEludGVyc2VjdE5lZ2F0aW9uKHJlc3VsdHMsIHJlc29sdmVkU291cmNlcykpKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20ocmVzdWx0cykpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3ModGhpcy5fcmVzb2x2ZVByaW1pdGl2ZShxdWVyeSwgc2V0dGluZ3MpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZXNvbHZlIGxlYWYgbm9kZXMgaW4gYSBzZWFyY2ggQVNULCB5aWVsZGluZyByYXcgc2V0cyBvZiByZXN1bHRzLiAqL1xuICAgIHByaXZhdGUgX3Jlc29sdmVQcmltaXRpdmUocXVlcnk6IEluZGV4UHJpbWl0aXZlLCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogRmlsdGVyPHN0cmluZz4ge1xuICAgICAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJjb25zdGFudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmNvbnN0YW50KHF1ZXJ5LmNvbnN0YW50KTtcbiAgICAgICAgICAgIGNhc2UgXCJpZFwiOlxuICAgICAgICAgICAgICAgIGNvbnN0IGV4YWN0T2JqZWN0ID0gdGhpcy5vYmplY3RzLmdldChxdWVyeS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4YWN0T2JqZWN0ID8gRmlsdGVycy5hdG9tKG5ldyBTZXQoW2V4YWN0T2JqZWN0LiRpZF0pKSA6IEZpbHRlcnMuTk9USElORztcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KFxuICAgICAgICAgICAgICAgICAgICBxdWVyeS52YWx1ZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz8uc291cmNlUGF0aCA/PyBcIlwiXG4gICAgICAgICAgICAgICAgKT8ucGF0aDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVkUGF0aCA/IHF1ZXJ5LnZhbHVlLndpdGhQYXRoKHJlc29sdmVkUGF0aCkgOiBxdWVyeS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHRoaXMucmVzb2x2ZUxpbmsocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QgPyBGaWx0ZXJzLmF0b20obmV3IFNldChbb2JqZWN0LiRpZF0pKSA6IEZpbHRlcnMuTk9USElORztcbiAgICAgICAgICAgIGNhc2UgXCJ0eXBlZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLm51bGxhYmxlQXRvbSh0aGlzLnR5cGVzLmdldChxdWVyeS52YWx1ZSkpO1xuICAgICAgICAgICAgY2FzZSBcInRhZ2dlZFwiOlxuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5leGFjdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5udWxsYWJsZUF0b20odGhpcy5ldGFncy5nZXQocXVlcnkudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5udWxsYWJsZUF0b20odGhpcy50YWdzLmdldChxdWVyeS52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgICAgICAgICAgbGV0IHRvcGxldmVsO1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5leGFjdCkge1xuICAgICAgICAgICAgICAgICAgICB0b3BsZXZlbCA9IHRoaXMuZm9sZGVyLmdldEV4YWN0KHF1ZXJ5LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnkudmFsdWUgPT0gXCJcIiB8fCBxdWVyeS52YWx1ZSA9PSBcIi9cIikgcmV0dXJuIEZpbHRlcnMuRVZFUllUSElORztcblxuICAgICAgICAgICAgICAgICAgICB0b3BsZXZlbCA9IHRoaXMuZm9sZGVyLmdldChxdWVyeS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRvcGxldmVsLnNpemUgPT0gMCkgcmV0dXJuIEZpbHRlcnMuTk9USElORztcblxuICAgICAgICAgICAgICAgIC8vIEV4cGFuZCBhbGwgY2hpbGRyZW4uXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldCh0b3BsZXZlbCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdG9wIG9mIHRvcGxldmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuX2l0ZXJhdGVDaGlsZHJlbih0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20ocmVzdWx0KTtcbiAgICAgICAgICAgIGNhc2UgXCJmaWVsZFwiOlxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1rZXkgPSBxdWVyeS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSB0aGlzLmZpZWxkcy5nZXQobm9ybWtleSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPT0gbnVsbCkgcmV0dXJuIEZpbHRlcnMuTk9USElORztcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20oZmllbGRJbmRleC5hbGwoKSk7XG4gICAgICAgICAgICBjYXNlIFwiZXF1YWwtdmFsdWVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5sYXp5VW5pb24ocXVlcnkudmFsdWVzLCAodmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlckZpZWxkcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LmZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGluZGV4KSA9PiBpbmRleC5lcXVhbHModmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkKSA9PiBMaXRlcmFscy5jb21wYXJlKHZhbHVlLCBmaWVsZC52YWx1ZSkgPT0gMFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGaWx0ZXIgZG9jdW1lbnRzIGJ5IGZpZWxkIHZhbHVlcywgdXNpbmcgdGhlIGZhc3QgbG9va3VwIGlmIGl0IHJldHVybnMgYSByZXN1bHQgYW5kIG90aGVyd2lzZSBmaWx0ZXJpbmcgb3ZlciBldmVyeSBkb2N1bWVudCB1c2luZyB0aGUgc2xvdyBwcmVkaWNhdGUuICovXG4gICAgcHJpdmF0ZSBfZmlsdGVyRmllbGRzKFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgZmFzdDogKGluZGV4OiBGaWVsZEluZGV4KSA9PiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCxcbiAgICAgICAgc2xvdzogKGZpZWxkOiBGaWVsZCkgPT4gYm9vbGVhblxuICAgICk6IEZpbHRlcjxzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgbm9ybWtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzLmdldChub3Jta2V5KTtcbiAgICAgICAgaWYgKGluZGV4ID09IG51bGwpIHJldHVybiBGaWx0ZXJzLk5PVEhJTkc7XG5cbiAgICAgICAgY29uc3QgZmFzdGxvb2t1cCA9IGZhc3QoaW5kZXgpO1xuICAgICAgICBpZiAoZmFzdGxvb2t1cCAhPSBudWxsKSByZXR1cm4gRmlsdGVycy5hdG9tKGZhc3Rsb29rdXApO1xuXG4gICAgICAgIC8vIENvbXB1dGUgYnkgaXRlcmF0aW5nIG92ZXIgZWFjaCBmaWVsZC5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IG9iamVjdElkIG9mIGluZGV4LmFsbCgpKSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KG9iamVjdElkKTtcbiAgICAgICAgICAgIGlmICghb2JqZWN0IHx8ICFvYmplY3QuJHR5cGVzLmNvbnRhaW5zKEZJRUxEQkVBUklOR19UWVBFKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gKG9iamVjdCBhcyBhbnkgYXMgRmllbGRiZWFyaW5nKS5maWVsZChub3Jta2V5KTtcbiAgICAgICAgICAgIGlmICghZmllbGQpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBpZiAoc2xvdyhmaWVsZCkpIG1hdGNoZXMuYWRkKG9iamVjdElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20obWF0Y2hlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRG9lcyBCcmVhZHRoLWZpcnN0IFNlYXJjaCB0byBmaW5kIGFsbCBsaW5rZWQgZmlsZXMgd2l0aGluIGRpc3RhbmNlIDxkaXN0YW5jZT4uIFRoaXMgaW5jbHVkZXMgYWxsIHNvdXJjZSBub2RlcyxcbiAgICAgKiBzbyByZW1vdmUgdGhlbSBhZnRlcndhcmRzIGlmIHlvdSBkbyBub3Qgd2FudCB0aGVtLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3RyYXZlcnNlTGlua2VkKFxuICAgICAgICBzb3VyY2VJZHM6IFNldDxzdHJpbmc+LFxuICAgICAgICBkaXN0YW5jZTogbnVtYmVyLFxuICAgICAgICBhZGphY2VudDogKGlkOiBzdHJpbmcpID0+IEl0ZXJhYmxlPHN0cmluZz5cbiAgICApOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IDApIHJldHVybiBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChzb3VyY2VJZHMuc2l6ZSA9PSAwKSByZXR1cm4gbmV3IFNldCgpO1xuXG4gICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oc291cmNlSWRzKTtcblxuICAgICAgICBjb25zdCBxdWV1ZSA9IG5ldyBGbGF0UXVldWU8c3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2Ygc291cmNlSWRzKSBxdWV1ZS5wdXNoKGVsZW1lbnQsIDApO1xuXG4gICAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0ID0gcXVldWUucGVla1ZhbHVlKCkhO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHF1ZXVlLnBvcCgpITtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBuZWlnaGJvciBvZiBhZGphY2VudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvcikpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgdmlzaXRlZC5hZGQobmVpZ2hib3IpO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgZGlzdGFuY2UpIHF1ZXVlLnB1c2gobmVpZ2hib3IsIGRpc3QgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgIH1cblxuICAgIC8qKiBJdGVyYXRlIGFsbCBsaW5rZWQgb2JqZWN0cyBmb3IgdGhlIGdpdmVuIG9iamVjdC4gKi9cbiAgICBwcml2YXRlICpfaXRlcmF0ZUFkamFjZW50TGlua2VkKGlkOiBzdHJpbmcsIGRpcmVjdGlvbjogXCJpbmNvbWluZ1wiIHwgXCJvdXRnb2luZ1wiIHwgXCJib3RoXCIpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IG9iamVjdCA9IHRoaXMub2JqZWN0cy5nZXQoaWQpO1xuICAgICAgICBpZiAoIW9iamVjdCkgcmV0dXJuO1xuXG4gICAgICAgIGlmICgoZGlyZWN0aW9uID09PSBcImJvdGhcIiB8fCBkaXJlY3Rpb24gPT09IFwiaW5jb21pbmdcIikgJiYgXCIkbGlua1wiIGluIG9iamVjdCAmJiBvYmplY3RbXCIkbGlua1wiXSkge1xuICAgICAgICAgICAgY29uc3QgaW5jb21pbmcgPSB0aGlzLmxpbmtzLmdldCgob2JqZWN0LiRsaW5rIGFzIExpbmspLm9ic2lkaWFuTGluaygpKTtcbiAgICAgICAgICAgIGlmIChpbmNvbWluZykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgaW5jb21pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGRpcmVjdGlvbiA9PT0gXCJib3RoXCIgfHwgZGlyZWN0aW9uID09PSBcIm91dGdvaW5nXCIpICYmXG4gICAgICAgICAgICBvYmplY3QuJHR5cGVzLmNvbnRhaW5zKExJTktBQkxFX1RZUEUpICYmXG4gICAgICAgICAgICBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJGxpbmtzXCIpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIG9iamVjdC4kbGlua3MgYXMgTGlua1tdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVMaW5rKGxpbmspO1xuICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkgeWllbGQgcmVzb2x2ZWQuJGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEl0ZXJhdG9yIHdoaWNoIHByb2R1Y2VzIGFsbCBwYXJlbnRzIG9mIHRoZSBnaXZlbiBvYmplY3QuICovXG4gICAgcHJpdmF0ZSAqX2l0ZXJhdGVQYXJlbnRzKGNoaWxkOiBzdHJpbmcpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGxldCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KGNoaWxkKTtcbiAgICAgICAgd2hpbGUgKG9iamVjdCAmJiBvYmplY3Q/LiRwYXJlbnQpIHtcbiAgICAgICAgICAgIHlpZWxkIG9iamVjdC4kcGFyZW50LiRpZDtcbiAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdC4kcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEl0ZXJhdGl2ZSB3aGljaCBwcm9kdWNlcyBhbGwgY2hpbGRyZW4gKHJlY3Vyc2l2ZWx5KSBvZiB0aGUgZ2l2ZW4gb2JqZWN0LiAqL1xuICAgIHByaXZhdGUgKl9pdGVyYXRlQ2hpbGRyZW4ocGFyZW50OiBzdHJpbmcpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5nZXQocGFyZW50KTtcbiAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLnNpemUgPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHlpZWxkIGNoaWxkO1xuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLl9pdGVyYXRlQ2hpbGRyZW4oY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogQSBnZW5lcmFsIGZ1bmN0aW9uIGZvciBzdG9yaW5nIHN1Yi1vYmplY3RzIGluIGEgZ2l2ZW4gb2JqZWN0LiAqL1xuZXhwb3J0IHR5cGUgU3Vic3RvcmVyPFQgZXh0ZW5kcyBJbmRleGFibGU+ID0gKFxuICAgIG9iamVjdDogVCxcbiAgICBhZGQ6IDxVIGV4dGVuZHMgSW5kZXhhYmxlPihvYmplY3Q6IFUgfCBVW10sIHN1YmluZGV4PzogU3Vic3RvcmVyPFU+KSA9PiB2b2lkXG4pID0+IHZvaWQ7XG5cbi8qKiBUaGUgcmVzdWx0IG9mIHNlYXJjaGluZyBnaXZlbiBhbiBpbmRleCBxdWVyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0PE8+IHtcbiAgICAvKiogVGhlIHF1ZXJ5IHVzZWQgdG8gc2VhcmNoLiAqL1xuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5O1xuICAgIC8qKiBBbGwgb2YgdGhlIHJldHVybmVkIHJlc3VsdHMuICovXG4gICAgcmVzdWx0czogT1tdO1xuICAgIC8qKiBUaGUgYW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBzZWFyY2ggdG9vay4gKi9cbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIC8qKiBUaGUgbWF4aW11bSByZXZpc2lvbiBvZiBhbnkgZG9jdW1lbnQgaW4gdGhlIHJlc3VsdCwgd2hpY2ggaXMgdXNlZnVsIGZvciBkaWZmaW5nLiAqL1xuICAgIHJldmlzaW9uOiBudW1iZXI7XG59XG5cbi8qKiBFeHRyYSBzZXR0aW5ncyB0aGF0IGNhbiBiZSBwcm92aWRlZCB0byBhIHNlYXJjaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU2V0dGluZ3Mge1xuICAgIC8qKiBUaGUgcGF0aCB0byBydW4gZnJvbSB3aGVuIHJlc29sdmluZyBsaW5rcyBhbmQgYHRoaXNgIHNlY3Rpb25zLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGd1YXJkIHdoaWNoIGNoZWNrcyBpZiBvYmplY3Rba2V5XSBleGlzdHMgYW5kIGlzIGFuIGl0ZXJhYmxlLiAqL1xuZnVuY3Rpb24gaXRlcmFibGVFeGlzdHM8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sIEsgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIG9iamVjdDogVCxcbiAgICBrZXk6IEtcbik6IG9iamVjdCBpcyBUICYgUmVjb3JkPEssIEl0ZXJhYmxlPGFueT4+IHtcbiAgICByZXR1cm4ga2V5IGluIG9iamVjdCAmJiBvYmplY3Rba2V5XSAhPT0gdW5kZWZpbmVkICYmIFN5bWJvbC5pdGVyYXRvciBpbiBvYmplY3Rba2V5XTtcbn1cbiIsICJpbXBvcnQgbG9jYWxmb3JhZ2UgZnJvbSBcImxvY2FsZm9yYWdlXCI7XG5cbi8qKiBBIHBpZWNlIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBjYWNoZWQgZm9yIGEgc3BlY2lmaWMgdmVyc2lvbiBhbmQgdGltZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVkPFQ+IHtcbiAgICAvKiogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBkYXRhIHdhcyB3cml0dGVuIHRvIGNhY2hlIHdpdGguICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIC8qKiBUaGUgVU5JWCBlcG9jaCB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBkYXRhIHdhcyB3cml0dGVuIHRvIGNhY2hlLiAqL1xuICAgIHRpbWU6IG51bWJlcjtcbiAgICAvKiogVGhlIGRhdGEgdGhhdCB3YXMgY2FjaGVkLiAqL1xuICAgIGRhdGE6IFQ7XG59XG5cbi8qKiBTaW1wbGVyIHdyYXBwZXIgZm9yIGEgZmlsZS1iYWNrZWQgY2FjaGUgZm9yIGFyYml0cmFyeSBtZXRhZGF0YS4gKi9cbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VDYWNoZSB7XG4gICAgcHVibGljIHBlcnNpc3RlcjogTG9jYWxGb3JhZ2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGFwcElkOiBzdHJpbmcsIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wZXJzaXN0ZXIgPSBsb2NhbGZvcmFnZS5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgICAgICBuYW1lOiBcImRhdGFjb3JlL2NhY2hlL1wiICsgYXBwSWQsXG4gICAgICAgICAgICBkcml2ZXI6IFtsb2NhbGZvcmFnZS5JTkRFWEVEREJdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ2FjaGUgbWV0YWRhdGEgYWJvdXQgZmlsZXMgYW5kIHNlY3Rpb25zIGluIHRoZSBkYXRhY29yZSBpbmRleC5cIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIERyb3AgdGhlIGVudGlyZSBjYWNoZSBpbnN0YW5jZSBhbmQgcmUtY3JlYXRlIGEgbmV3IGZyZXNoIGluc3RhbmNlLiAqL1xuICAgIHB1YmxpYyBhc3luYyByZWNyZWF0ZSgpIHtcbiAgICAgICAgYXdhaXQgbG9jYWxmb3JhZ2UuZHJvcEluc3RhbmNlKHsgbmFtZTogXCJkYXRhY29yZS9jYWNoZS9cIiArIHRoaXMuYXBwSWQgfSk7XG5cbiAgICAgICAgdGhpcy5wZXJzaXN0ZXIgPSBsb2NhbGZvcmFnZS5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgICAgICBuYW1lOiBcImRhdGFjb3JlL2NhY2hlL1wiICsgdGhpcy5hcHBJZCxcbiAgICAgICAgICAgIGRyaXZlcjogW2xvY2FsZm9yYWdlLklOREVYRUREQl0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJDYWNoZSBtZXRhZGF0YSBhYm91dCBmaWxlcyBhbmQgc2VjdGlvbnMgaW4gdGhlIGRhdGFjb3JlIGluZGV4LlwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBmaWxlIG1ldGFkYXRhIGJ5IHBhdGguICovXG4gICAgcHVibGljIGFzeW5jIGxvYWRGaWxlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVkPFBhcnRpYWw8YW55Pj4gfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcnNpc3Rlci5nZXRJdGVtKHRoaXMuZmlsZUtleShwYXRoKSkudGhlbigocmF3KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmF3IGFzIGFueSBhcyBDYWNoZWQ8UGFydGlhbDxhbnk+PjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFN0b3JlIGZpbGUgbWV0YWRhdGEgYnkgcGF0aC4gKi9cbiAgICBwdWJsaWMgYXN5bmMgc3RvcmVGaWxlKHBhdGg6IHN0cmluZywgZGF0YTogUGFydGlhbDxhbnk+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucGVyc2lzdGVyLnNldEl0ZW0odGhpcy5maWxlS2V5KHBhdGgpLCB7XG4gICAgICAgICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICAgICAgICB0aW1lOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIERyb3Agb2xkIGZpbGUga2V5cyB0aGF0IG5vIGxvbmdlciBleGlzdC4gKi9cbiAgICBwdWJsaWMgYXN5bmMgc3luY2hyb25pemUoZXhpc3Rpbmc6IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4pOiBQcm9taXNlPFNldDxzdHJpbmc+PiB7XG4gICAgICAgIGxldCBrZXlzID0gbmV3IFNldChhd2FpdCB0aGlzLmFsbEZpbGVzKCkpO1xuICAgICAgICBmb3IgKGxldCBleGlzdCBvZiBleGlzdGluZykga2V5cy5kZWxldGUoZXhpc3QpO1xuXG4gICAgICAgIC8vIEFueSBrZXlzIHJlbWFpbmluZyBhZnRlciBkZWxldGluZyBleGlzdGluZyBrZXlzIGFyZSBub24tZXhpc3RlbnQga2V5cyB0aGF0IHNob3VsZCBiZSBjbGVhcmVkIGZyb20gY2FjaGUuXG4gICAgICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSBhd2FpdCB0aGlzLnBlcnNpc3Rlci5yZW1vdmVJdGVtKHRoaXMuZmlsZUtleShrZXkpKTtcblxuICAgICAgICByZXR1cm4ga2V5cztcbiAgICB9XG5cbiAgICAvKiogT2J0YWluIGEgbGlzdCBvZiBhbGwgbWV0YWRhdGEga2V5cy4gKi9cbiAgICBwdWJsaWMgYXN5bmMgYWxsS2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcnNpc3Rlci5rZXlzKCk7XG4gICAgfVxuXG4gICAgLyoqIE9idGFpbiBhIGxpc3Qgb2YgYWxsIHBlcnNpc3RlZCBmaWxlcy4gKi9cbiAgICBwdWJsaWMgYXN5bmMgYWxsRmlsZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQga2V5cyA9IGF3YWl0IHRoaXMuYWxsS2V5cygpO1xuICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcImZpbGU6XCIpKS5tYXAoKGspID0+IGsuc3Vic3RyaW5nKDUpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGEgdW5pcXVlIGtleSBmb3IgYSBnaXZlbiBmaWxlIHBhdGguICovXG4gICAgcHVibGljIGZpbGVLZXkocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiZmlsZTpcIiArIHBhdGg7XG4gICAgfVxufVxuIiwgIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5saW5lV29ya2VyKHNjcmlwdFRleHQpIHtcbiAgbGV0IGJsb2IgPSBuZXcgQmxvYihbc2NyaXB0VGV4dF0sIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xuICBsZXQgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgbGV0IHdvcmtlciA9IG5ldyBXb3JrZXIodXJsLCB7XCJuYW1lXCI6XCJEYXRhY29yZSBJbmRleGVyXCJ9KTtcbiAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICByZXR1cm4gd29ya2VyO1xufVxuIiwgImltcG9ydCBpbmxpbmVXb3JrZXIgZnJvbSAnX19pbmxpbmUtd29ya2VyJ1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gV29ya2VyKCkge1xuICByZXR1cm4gaW5saW5lV29ya2VyKFwidmFyIGNsPU9iamVjdC5jcmVhdGU7dmFyIEpzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmbD1PYmplY3QuZGVmaW5lUHJvcGVydGllcyxkbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGhsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLG1sPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLHFyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMscGw9T2JqZWN0LmdldFByb3RvdHlwZU9mLHpzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTW89T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgSHM9KG4sZSk9PihlPVN5bWJvbFtuXSk/ZTpTeW1ib2wuZm9yKFxcXCJTeW1ib2wuXFxcIituKSxEbD1uPT57dGhyb3cgVHlwZUVycm9yKG4pfTt2YXIgQW89KG4sZSx0KT0+ZSBpbiBuP0pzKG4sZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pOm5bZV09dCxSPShuLGUpPT57Zm9yKHZhciB0IGluIGV8fChlPXt9KSl6cy5jYWxsKGUsdCkmJkFvKG4sdCxlW3RdKTtpZihxcilmb3IodmFyIHQgb2YgcXIoZSkpTW8uY2FsbChlLHQpJiZBbyhuLHQsZVt0XSk7cmV0dXJuIG59LHllPShuLGUpPT5mbChuLGhsKGUpKTt2YXIgWXM9KG4sZSk9Pnt2YXIgdD17fTtmb3IodmFyIHIgaW4gbil6cy5jYWxsKG4scikmJmUuaW5kZXhPZihyKTwwJiYodFtyXT1uW3JdKTtpZihuIT1udWxsJiZxcilmb3IodmFyIHIgb2YgcXIobikpZS5pbmRleE9mKHIpPDAmJk1vLmNhbGwobixyKSYmKHRbcl09bltyXSk7cmV0dXJuIHR9O3ZhciBfbz0obixlKT0+KCk9PihlfHxuKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciB5bD0obixlLHQscik9PntpZihlJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCJ8fHR5cGVvZiBlPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXQgcyBvZiBtbChlKSkhenMuY2FsbChuLHMpJiZzIT09dCYmSnMobixzLHtnZXQ6KCk9PmVbc10sZW51bWVyYWJsZTohKHI9ZGwoZSxzKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBufTt2YXIgVnI9KG4sZSx0KT0+KHQ9biE9bnVsbD9jbChwbChuKSk6e30seWwoZXx8IW58fCFuLl9fZXNNb2R1bGU/SnModCxcXFwiZGVmYXVsdFxcXCIse3ZhbHVlOm4sZW51bWVyYWJsZTohMH0pOnQsbikpO3ZhciBnbD1mdW5jdGlvbihuLGUpe3RoaXNbMF09bix0aGlzWzFdPWV9O3ZhciBTPW49Pnt2YXIgZT1uW0hzKFxcXCJhc3luY0l0ZXJhdG9yXFxcIildLHQ9ITEscixzPXt9O3JldHVybiBlPT1udWxsPyhlPW5bSHMoXFxcIml0ZXJhdG9yXFxcIildKCkscj1pPT5zW2ldPW89PmVbaV0obykpOihlPWUuY2FsbChuKSxyPWk9PnNbaV09bz0+e2lmKHQpe2lmKHQ9ITEsaT09PVxcXCJ0aHJvd1xcXCIpdGhyb3cgbztyZXR1cm4gb31yZXR1cm4gdD0hMCx7ZG9uZTohMSx2YWx1ZTpuZXcgZ2wobmV3IFByb21pc2UoYT0+e3ZhciB1PWVbaV0obyk7dSBpbnN0YW5jZW9mIE9iamVjdHx8RGwoXFxcIk9iamVjdCBleHBlY3RlZFxcXCIpLGEodSl9KSwxKX19KSxzW0hzKFxcXCJpdGVyYXRvclxcXCIpXT0oKT0+cyxyKFxcXCJuZXh0XFxcIiksXFxcInRocm93XFxcImluIGU/cihcXFwidGhyb3dcXFwiKTpzLnRocm93PWk9Pnt0aHJvdyBpfSxcXFwicmV0dXJuXFxcImluIGUmJnIoXFxcInJldHVyblxcXCIpLHN9O3ZhciBucz1fbygobXIsQWkpPT57KGZ1bmN0aW9uKG4sZSl7dHlwZW9mIG1yPT1cXFwib2JqZWN0XFxcIiYmdHlwZW9mIEFpPT1cXFwib2JqZWN0XFxcIj9BaS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT1cXFwiZnVuY3Rpb25cXFwiJiZkZWZpbmUuYW1kP2RlZmluZShbXSxlKTp0eXBlb2YgbXI9PVxcXCJvYmplY3RcXFwiP21yLlBhcnNpbW1vbj1lKCk6bi5QYXJzaW1tb249ZSgpfSkodHlwZW9mIHNlbGYhPVxcXCJ1bmRlZmluZWRcXFwiP3NlbGY6bXIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9e307ZnVuY3Rpb24gdChyKXtpZihlW3JdKXJldHVybiBlW3JdLmV4cG9ydHM7dmFyIHM9ZVtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIG5bcl0uY2FsbChzLmV4cG9ydHMscyxzLmV4cG9ydHMsdCkscy5sPSEwLHMuZXhwb3J0c31yZXR1cm4gdC5tPW4sdC5jPWUsdC5kPWZ1bmN0aW9uKHIscyxpKXt0Lm8ocixzKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHIscyx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsZ2V0Oml9KX0sdC5yPWZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KX0sdC5uPWZ1bmN0aW9uKHIpe3ZhciBzPXImJnIuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiByLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9O3JldHVybiB0LmQocyxcXFwiYVxcXCIscyksc30sdC5vPWZ1bmN0aW9uKHIscyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLHMpfSx0LnA9XFxcIlxcXCIsdCh0LnM9MCl9KFtmdW5jdGlvbihuLGUsdCl7XFxcInVzZSBzdHJpY3RcXFwiO2Z1bmN0aW9uIHIoYyl7aWYoISh0aGlzIGluc3RhbmNlb2YgcikpcmV0dXJuIG5ldyByKGMpO3RoaXMuXz1jfXZhciBzPXIucHJvdG90eXBlO2Z1bmN0aW9uIGkoYyxwKXtmb3IodmFyIEU9MDtFPGM7RSsrKXAoRSl9ZnVuY3Rpb24gbyhjLHAsRSl7cmV0dXJuIGZ1bmN0aW9uKGssTCl7aShMLmxlbmd0aCxmdW5jdGlvbihBKXtrKExbQV0sQSxMKX0pfShmdW5jdGlvbihrLEwsQSl7cD1jKHAsayxMLEEpfSxFKSxwfWZ1bmN0aW9uIGEoYyxwKXtyZXR1cm4gbyhmdW5jdGlvbihFLGssTCxBKXtyZXR1cm4gRS5jb25jYXQoW2MoayxMLEEpXSl9LFtdLHApfWZ1bmN0aW9uIHUoYyxwKXt2YXIgRT17djowLGJ1ZjpwfTtyZXR1cm4gaShjLGZ1bmN0aW9uKCl7dmFyIGs7RT17djpFLnY8PDF8KGs9RS5idWYsa1swXT4+NyksYnVmOmZ1bmN0aW9uKEwpe3ZhciBBPW8oZnVuY3Rpb24oTSxVLHRlLEVlKXtyZXR1cm4gTS5jb25jYXQodGU9PT1FZS5sZW5ndGgtMT9CdWZmZXIuZnJvbShbVSwwXSkucmVhZFVJbnQxNkJFKDApOkVlLnJlYWRVSW50MTZCRSh0ZSkpfSxbXSxMKTtyZXR1cm4gQnVmZmVyLmZyb20oYShmdW5jdGlvbihNKXtyZXR1cm4oTTw8MSY2NTUzNSk+Pjh9LEEpKX0oRS5idWYpfX0pLEV9ZnVuY3Rpb24gbCgpe3JldHVybiB0eXBlb2YgQnVmZmVyIT1cXFwidW5kZWZpbmVkXFxcIn1mdW5jdGlvbiBmKCl7aWYoIWwoKSl0aHJvdyBuZXcgRXJyb3IoXFxcIkJ1ZmZlciBnbG9iYWwgZG9lcyBub3QgZXhpc3Q7IHBsZWFzZSB1c2Ugd2VicGFjayBpZiB5b3UgbmVlZCB0byBwYXJzZSBCdWZmZXJzIGluIHRoZSBicm93c2VyLlxcXCIpfWZ1bmN0aW9uIGQoYyl7ZigpO3ZhciBwPW8oZnVuY3Rpb24oQSxNKXtyZXR1cm4gQStNfSwwLGMpO2lmKHAlOCE9MCl0aHJvdyBuZXcgRXJyb3IoXFxcIlRoZSBiaXRzIFtcXFwiK2Muam9pbihcXFwiLCBcXFwiKStcXFwiXSBhZGQgdXAgdG8gXFxcIitwK1xcXCIgd2hpY2ggaXMgbm90IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzOyB0aGUgdG90YWwgc2hvdWxkIGJlIGRpdmlzaWJsZSBieSA4XFxcIik7dmFyIEUsaz1wLzgsTD0oRT1mdW5jdGlvbihBKXtyZXR1cm4gQT40OH0sbyhmdW5jdGlvbihBLE0pe3JldHVybiBBfHwoRShNKT9NOkEpfSxudWxsLGMpKTtpZihMKXRocm93IG5ldyBFcnJvcihMK1xcXCIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LlxcXCIpO3JldHVybiBuZXcgcihmdW5jdGlvbihBLE0pe3ZhciBVPWsrTTtyZXR1cm4gVT5BLmxlbmd0aD92KE0say50b1N0cmluZygpK1xcXCIgYnl0ZXNcXFwiKTp3KFUsbyhmdW5jdGlvbih0ZSxFZSl7dmFyIG1lPXUoRWUsdGUuYnVmKTtyZXR1cm57Y29sbDp0ZS5jb2xsLmNvbmNhdChtZS52KSxidWY6bWUuYnVmfX0se2NvbGw6W10sYnVmOkEuc2xpY2UoTSxVKX0sYykuY29sbCl9KX1mdW5jdGlvbiBtKGMscCl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKEUsayl7cmV0dXJuIGYoKSxrK3A+RS5sZW5ndGg/dihrLHArXFxcIiBieXRlcyBmb3IgXFxcIitjKTp3KGsrcCxFLnNsaWNlKGssaytwKSl9KX1mdW5jdGlvbiBoKGMscCl7aWYodHlwZW9mKEU9cCkhPVxcXCJudW1iZXJcXFwifHxNYXRoLmZsb29yKEUpIT09RXx8cDwwfHxwPjYpdGhyb3cgbmV3IEVycm9yKGMrXFxcIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uXFxcIik7dmFyIEV9ZnVuY3Rpb24gYihjKXtyZXR1cm4gaChcXFwidWludEJFXFxcIixjKSxtKFxcXCJ1aW50QkUoXFxcIitjK1xcXCIpXFxcIixjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAucmVhZFVJbnRCRSgwLGMpfSl9ZnVuY3Rpb24gZyhjKXtyZXR1cm4gaChcXFwidWludExFXFxcIixjKSxtKFxcXCJ1aW50TEUoXFxcIitjK1xcXCIpXFxcIixjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAucmVhZFVJbnRMRSgwLGMpfSl9ZnVuY3Rpb24gRChjKXtyZXR1cm4gaChcXFwiaW50QkVcXFwiLGMpLG0oXFxcImludEJFKFxcXCIrYytcXFwiKVxcXCIsYykubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLnJlYWRJbnRCRSgwLGMpfSl9ZnVuY3Rpb24gVChjKXtyZXR1cm4gaChcXFwiaW50TEVcXFwiLGMpLG0oXFxcImludExFKFxcXCIrYytcXFwiKVxcXCIsYykubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLnJlYWRJbnRMRSgwLGMpfSl9ZnVuY3Rpb24gSShjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIHJ9ZnVuY3Rpb24gTihjKXtyZXR1cm57fS50b1N0cmluZy5jYWxsKGMpPT09XFxcIltvYmplY3QgQXJyYXldXFxcIn1mdW5jdGlvbiB5KGMpe3JldHVybiBsKCkmJkJ1ZmZlci5pc0J1ZmZlcihjKX1mdW5jdGlvbiB3KGMscCl7cmV0dXJue3N0YXR1czohMCxpbmRleDpjLHZhbHVlOnAsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHYoYyxwKXtyZXR1cm4gTihwKXx8KHA9W3BdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6YyxleHBlY3RlZDpwfX1mdW5jdGlvbiB4KGMscCl7aWYoIXB8fGMuZnVydGhlc3Q+cC5mdXJ0aGVzdClyZXR1cm4gYzt2YXIgRT1jLmZ1cnRoZXN0PT09cC5mdXJ0aGVzdD9mdW5jdGlvbihrLEwpe2lmKGZ1bmN0aW9uKCl7aWYoci5fc3VwcG9ydHNTZXQhPT12b2lkIDApcmV0dXJuIHIuX3N1cHBvcnRzU2V0O3ZhciBodD10eXBlb2YgU2V0IT1cXFwidW5kZWZpbmVkXFxcIjtyZXR1cm4gci5fc3VwcG9ydHNTZXQ9aHQsaHR9KCkmJkFycmF5LmZyb20pe2Zvcih2YXIgQT1uZXcgU2V0KGspLE09MDtNPEwubGVuZ3RoO00rKylBLmFkZChMW01dKTt2YXIgVT1BcnJheS5mcm9tKEEpO3JldHVybiBVLnNvcnQoKSxVfWZvcih2YXIgdGU9e30sRWU9MDtFZTxrLmxlbmd0aDtFZSsrKXRlW2tbRWVdXT0hMDtmb3IodmFyIG1lPTA7bWU8TC5sZW5ndGg7bWUrKyl0ZVtMW21lXV09ITA7dmFyIGR0PVtdO2Zvcih2YXIgdmUgaW4gdGUpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLHZlKSYmZHQucHVzaCh2ZSk7cmV0dXJuIGR0LnNvcnQoKSxkdH0oYy5leHBlY3RlZCxwLmV4cGVjdGVkKTpwLmV4cGVjdGVkO3JldHVybntzdGF0dXM6Yy5zdGF0dXMsaW5kZXg6Yy5pbmRleCx2YWx1ZTpjLnZhbHVlLGZ1cnRoZXN0OnAuZnVydGhlc3QsZXhwZWN0ZWQ6RX19dmFyIEM9e307ZnVuY3Rpb24gVihjLHApe2lmKHkoYykpcmV0dXJue29mZnNldDpwLGxpbmU6LTEsY29sdW1uOi0xfTtjIGluIEN8fChDW2NdPXt9KTtmb3IodmFyIEU9Q1tjXSxrPTAsTD0wLEE9MCxNPXA7TT49MDspe2lmKE0gaW4gRSl7az1FW01dLmxpbmUsQT09PTAmJihBPUVbTV0ubGluZVN0YXJ0KTticmVha30oYy5jaGFyQXQoTSk9PT1gXFxuYHx8Yy5jaGFyQXQoTSk9PT1cXFwiXFxcXHJcXFwiJiZjLmNoYXJBdChNKzEpIT09YFxcbmApJiYoTCsrLEE9PT0wJiYoQT1NKzEpKSxNLS19dmFyIFU9aytMLHRlPXAtQTtyZXR1cm4gRVtwXT17bGluZTpVLGxpbmVTdGFydDpBfSx7b2Zmc2V0OnAsbGluZTpVKzEsY29sdW1uOnRlKzF9fWZ1bmN0aW9uIGooYyl7aWYoIUkoYykpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBwYXJzZXI6IFxcXCIrYyl9ZnVuY3Rpb24gWShjLHApe3JldHVybiB0eXBlb2YgYz09XFxcInN0cmluZ1xcXCI/Yy5jaGFyQXQocCk6Y1twXX1mdW5jdGlvbiBlZShjKXtpZih0eXBlb2YgYyE9XFxcIm51bWJlclxcXCIpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBudW1iZXI6IFxcXCIrYyl9ZnVuY3Rpb24gYWUoYyl7aWYodHlwZW9mIGMhPVxcXCJmdW5jdGlvblxcXCIpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBmdW5jdGlvbjogXFxcIitjKX1mdW5jdGlvbiBPKGMpe2lmKHR5cGVvZiBjIT1cXFwic3RyaW5nXFxcIil0aHJvdyBuZXcgRXJyb3IoXFxcIm5vdCBhIHN0cmluZzogXFxcIitjKX12YXIgJD0yLFE9Myx1ZT04LERlPTUqdWUsUmU9NCp1ZSxRdD1cXFwiICBcXFwiO2Z1bmN0aW9uIE10KGMscCl7cmV0dXJuIG5ldyBBcnJheShwKzEpLmpvaW4oYyl9ZnVuY3Rpb24gX3QoYyxwLEUpe3ZhciBrPXAtYy5sZW5ndGg7cmV0dXJuIGs8PTA/YzpNdChFLGspK2N9ZnVuY3Rpb24gQWUoYyxwLEUsayl7cmV0dXJue2Zyb206Yy1wPjA/Yy1wOjAsdG86YytFPms/azpjK0V9fWZ1bmN0aW9uIEJ0KGMscCl7dmFyIEUsayxMLEEsTSxVPXAuaW5kZXgsdGU9VS5vZmZzZXQsRWU9MTtpZih0ZT09PWMubGVuZ3RoKXJldHVyblxcXCJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXRcXFwiO2lmKHkoYykpe3ZhciBtZT10ZS10ZSV1ZSxkdD10ZS1tZSx2ZT1BZShtZSxEZSxSZSt1ZSxjLmxlbmd0aCksaHQ9YShmdW5jdGlvbihsZSl7cmV0dXJuIGEoZnVuY3Rpb24oZW4pe3JldHVybiBfdChlbi50b1N0cmluZygxNiksMixcXFwiMFxcXCIpfSxsZSl9LGZ1bmN0aW9uKGxlLGVuKXt2YXIgdG49bGUubGVuZ3RoLFJ0PVtdLG5uPTA7aWYodG48PWVuKXJldHVybltsZS5zbGljZSgpXTtmb3IodmFyIHJuPTA7cm48dG47cm4rKylSdFtubl18fFJ0LnB1c2goW10pLFJ0W25uXS5wdXNoKGxlW3JuXSksKHJuKzEpJWVuPT0wJiZubisrO3JldHVybiBSdH0oYy5zbGljZSh2ZS5mcm9tLHZlLnRvKS50b0pTT04oKS5kYXRhLHVlKSk7QT1mdW5jdGlvbihsZSl7cmV0dXJuIGxlLmZyb209PT0wJiZsZS50bz09PTE/e2Zyb206bGUuZnJvbSx0bzpsZS50b306e2Zyb206bGUuZnJvbS91ZSx0bzpNYXRoLmZsb29yKGxlLnRvL3VlKX19KHZlKSxrPW1lL3VlLEU9MypkdCxkdD49NCYmKEUrPTEpLEVlPTIsTD1hKGZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUubGVuZ3RoPD00P2xlLmpvaW4oXFxcIiBcXFwiKTpsZS5zbGljZSgwLDQpLmpvaW4oXFxcIiBcXFwiKStcXFwiICBcXFwiK2xlLnNsaWNlKDQpLmpvaW4oXFxcIiBcXFwiKX0saHQpLChNPSg4KihBLnRvPjA/QS50by0xOkEudG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoTT0yKX1lbHNle3ZhciBYdD1jLnNwbGl0KC9cXFxcclxcXFxufFtcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XS8pO0U9VS5jb2x1bW4tMSxrPVUubGluZS0xLEE9QWUoaywkLFEsWHQubGVuZ3RoKSxMPVh0LnNsaWNlKEEuZnJvbSxBLnRvKSxNPUEudG8udG9TdHJpbmcoKS5sZW5ndGh9dmFyIGxsPWstQS5mcm9tO3JldHVybiB5KGMpJiYoTT0oOCooQS50bz4wP0EudG8tMTpBLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKE09MiksbyhmdW5jdGlvbihsZSxlbix0bil7dmFyIFJ0LG5uPXRuPT09bGwscm49bm4/XFxcIj4gXFxcIjpRdDtyZXR1cm4gUnQ9eShjKT9fdCgoOCooQS5mcm9tK3RuKSkudG9TdHJpbmcoMTYpLE0sXFxcIjBcXFwiKTpfdCgoQS5mcm9tK3RuKzEpLnRvU3RyaW5nKCksTSxcXFwiIFxcXCIpLFtdLmNvbmNhdChsZSxbcm4rUnQrXFxcIiB8IFxcXCIrZW5dLG5uP1tRdCtNdChcXFwiIFxcXCIsTSkrXFxcIiB8IFxcXCIrX3QoXFxcIlxcXCIsRSxcXFwiIFxcXCIpK010KFxcXCJeXFxcIixFZSldOltdKX0sW10sTCkuam9pbihgXFxuYCl9ZnVuY3Rpb24gU28oYyxwKXtyZXR1cm5bYFxcbmAsXFxcIi0tIFBBUlNJTkcgRkFJTEVEIFxcXCIrTXQoXFxcIi1cXFwiLDUwKSxgXFxuXFxuYCxCdChjLHApLGBcXG5cXG5gLChFPXAuZXhwZWN0ZWQsRS5sZW5ndGg9PT0xP2BFeHBlY3RlZDpcXG5cXG5gK0VbMF06YEV4cGVjdGVkIG9uZSBvZiB0aGUgZm9sbG93aW5nOiBcXG5cXG5gK0Uuam9pbihcXFwiLCBcXFwiKSksYFxcbmBdLmpvaW4oXFxcIlxcXCIpO3ZhciBFfWZ1bmN0aW9uIGtvKGMpe3JldHVybiBjLmZsYWdzIT09dm9pZCAwP2MuZmxhZ3M6W2MuZ2xvYmFsP1xcXCJnXFxcIjpcXFwiXFxcIixjLmlnbm9yZUNhc2U/XFxcImlcXFwiOlxcXCJcXFwiLGMubXVsdGlsaW5lP1xcXCJtXFxcIjpcXFwiXFxcIixjLnVuaWNvZGU/XFxcInVcXFwiOlxcXCJcXFwiLGMuc3RpY2t5P1xcXCJ5XFxcIjpcXFwiXFxcIl0uam9pbihcXFwiXFxcIil9ZnVuY3Rpb24gQnIoKXtmb3IodmFyIGM9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHA9Yy5sZW5ndGgsRT0wO0U8cDtFKz0xKWooY1tFXSk7cmV0dXJuIHIoZnVuY3Rpb24oayxMKXtmb3IodmFyIEEsTT1uZXcgQXJyYXkocCksVT0wO1U8cDtVKz0xKXtpZighKEE9eChjW1VdLl8oayxMKSxBKSkuc3RhdHVzKXJldHVybiBBO01bVV09QS52YWx1ZSxMPUEuaW5kZXh9cmV0dXJuIHgodyhMLE0pLEEpfSl9ZnVuY3Rpb24gUHQoKXt2YXIgYz1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoYy5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcihcXFwic2VxTWFwIG5lZWRzIGF0IGxlYXN0IG9uZSBhcmd1bWVudFxcXCIpO3ZhciBwPWMucG9wKCk7cmV0dXJuIGFlKHApLEJyLmFwcGx5KG51bGwsYykubWFwKGZ1bmN0aW9uKEUpe3JldHVybiBwLmFwcGx5KG51bGwsRSl9KX1mdW5jdGlvbiBQcigpe3ZhciBjPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxwPWMubGVuZ3RoO2lmKHA9PT0wKXJldHVybiAkcihcXFwiemVybyBhbHRlcm5hdGVzXFxcIik7Zm9yKHZhciBFPTA7RTxwO0UrPTEpaihjW0VdKTtyZXR1cm4gcihmdW5jdGlvbihrLEwpe2Zvcih2YXIgQSxNPTA7TTxjLmxlbmd0aDtNKz0xKWlmKChBPXgoY1tNXS5fKGssTCksQSkpLnN0YXR1cylyZXR1cm4gQTtyZXR1cm4gQX0pfWZ1bmN0aW9uIENvKGMscCl7cmV0dXJuIFVzKGMscCkub3IoJHQoW10pKX1mdW5jdGlvbiBVcyhjLHApe3JldHVybiBqKGMpLGoocCksUHQoYyxwLnRoZW4oYykubWFueSgpLGZ1bmN0aW9uKEUsayl7cmV0dXJuW0VdLmNvbmNhdChrKX0pfWZ1bmN0aW9uIEJuKGMpe08oYyk7dmFyIHA9XFxcIidcXFwiK2MrXFxcIidcXFwiO3JldHVybiByKGZ1bmN0aW9uKEUsayl7dmFyIEw9aytjLmxlbmd0aCxBPUUuc2xpY2UoayxMKTtyZXR1cm4gQT09PWM/dyhMLEEpOnYoayxwKX0pfWZ1bmN0aW9uIGZ0KGMscCl7KGZ1bmN0aW9uKEwpe2lmKCEoTCBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSByZWdleHA6IFxcXCIrTCk7Zm9yKHZhciBBPWtvKEwpLE09MDtNPEEubGVuZ3RoO00rKyl7dmFyIFU9QS5jaGFyQXQoTSk7aWYoVSE9PVxcXCJpXFxcIiYmVSE9PVxcXCJtXFxcIiYmVSE9PVxcXCJ1XFxcIiYmVSE9PVxcXCJzXFxcIil0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHJlZ2V4cCBmbGFnIFxcXCInK1UrJ1xcXCI6ICcrTCl9fSkoYyksYXJndW1lbnRzLmxlbmd0aD49Mj9lZShwKTpwPTA7dmFyIEU9ZnVuY3Rpb24oTCl7cmV0dXJuIFJlZ0V4cChcXFwiXig/OlxcXCIrTC5zb3VyY2UrXFxcIilcXFwiLGtvKEwpKX0oYyksaz1cXFwiXFxcIitjO3JldHVybiByKGZ1bmN0aW9uKEwsQSl7dmFyIE09RS5leGVjKEwuc2xpY2UoQSkpO2lmKE0pe2lmKDA8PXAmJnA8PU0ubGVuZ3RoKXt2YXIgVT1NWzBdLHRlPU1bcF07cmV0dXJuIHcoQStVLmxlbmd0aCx0ZSl9cmV0dXJuIHYoQSxcXFwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gXFxcIitNLmxlbmd0aCtcXFwiKSBpbiBcXFwiK2spfXJldHVybiB2KEEsayl9KX1mdW5jdGlvbiAkdChjKXtyZXR1cm4gcihmdW5jdGlvbihwLEUpe3JldHVybiB3KEUsYyl9KX1mdW5jdGlvbiAkcihjKXtyZXR1cm4gcihmdW5jdGlvbihwLEUpe3JldHVybiB2KEUsYyl9KX1mdW5jdGlvbiBScihjKXtpZihJKGMpKXJldHVybiByKGZ1bmN0aW9uKHAsRSl7dmFyIGs9Yy5fKHAsRSk7cmV0dXJuIGsuaW5kZXg9RSxrLnZhbHVlPVxcXCJcXFwiLGt9KTtpZih0eXBlb2YgYz09XFxcInN0cmluZ1xcXCIpcmV0dXJuIFJyKEJuKGMpKTtpZihjIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBScihmdChjKSk7dGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBzdHJpbmcsIHJlZ2V4cCwgb3IgcGFyc2VyOiBcXFwiK2MpfWZ1bmN0aW9uIHZvKGMpe3JldHVybiBqKGMpLHIoZnVuY3Rpb24ocCxFKXt2YXIgaz1jLl8ocCxFKSxMPXAuc2xpY2UoRSxrLmluZGV4KTtyZXR1cm4gay5zdGF0dXM/dihFLCdub3QgXFxcIicrTCsnXFxcIicpOncoRSxudWxsKX0pfWZ1bmN0aW9uIGpyKGMpe3JldHVybiBhZShjKSxyKGZ1bmN0aW9uKHAsRSl7dmFyIGs9WShwLEUpO3JldHVybiBFPHAubGVuZ3RoJiZjKGspP3coRSsxLGspOnYoRSxcXFwiYSBjaGFyYWN0ZXIvYnl0ZSBtYXRjaGluZyBcXFwiK2MpfSl9ZnVuY3Rpb24geG8oYyxwKXthcmd1bWVudHMubGVuZ3RoPDImJihwPWMsYz12b2lkIDApO3ZhciBFPXIoZnVuY3Rpb24oayxMKXtyZXR1cm4gRS5fPXAoKS5fLEUuXyhrLEwpfSk7cmV0dXJuIGM/RS5kZXNjKGMpOkV9ZnVuY3Rpb24gS3MoKXtyZXR1cm4gJHIoXFxcImZhbnRhc3ktbGFuZC9lbXB0eVxcXCIpfXMucGFyc2U9ZnVuY3Rpb24oYyl7aWYodHlwZW9mIGMhPVxcXCJzdHJpbmdcXFwiJiYheShjKSl0aHJvdyBuZXcgRXJyb3IoXFxcIi5wYXJzZSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc3RyaW5nIG9yIEJ1ZmZlciBhcyBpdHMgYXJndW1lbnRcXFwiKTt2YXIgcCxFPXRoaXMuc2tpcChXcykuXyhjLDApO3JldHVybiBwPUUuc3RhdHVzP3tzdGF0dXM6ITAsdmFsdWU6RS52YWx1ZX06e3N0YXR1czohMSxpbmRleDpWKGMsRS5mdXJ0aGVzdCksZXhwZWN0ZWQ6RS5leHBlY3RlZH0sZGVsZXRlIENbY10scH0scy50cnlQYXJzZT1mdW5jdGlvbihjKXt2YXIgcD10aGlzLnBhcnNlKGMpO2lmKHAuc3RhdHVzKXJldHVybiBwLnZhbHVlO3ZhciBFPVNvKGMscCksaz1uZXcgRXJyb3IoRSk7dGhyb3cgay50eXBlPVxcXCJQYXJzaW1tb25FcnJvclxcXCIsay5yZXN1bHQ9cCxrfSxzLmFzc2VydD1mdW5jdGlvbihjLHApe3JldHVybiB0aGlzLmNoYWluKGZ1bmN0aW9uKEUpe3JldHVybiBjKEUpPyR0KEUpOiRyKHApfSl9LHMub3I9ZnVuY3Rpb24oYyl7cmV0dXJuIFByKHRoaXMsYyl9LHMudHJpbT1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy53cmFwKGMsYyl9LHMud3JhcD1mdW5jdGlvbihjLHApe3JldHVybiBQdChjLHRoaXMscCxmdW5jdGlvbihFLGspe3JldHVybiBrfSl9LHMudGhydT1mdW5jdGlvbihjKXtyZXR1cm4gYyh0aGlzKX0scy50aGVuPWZ1bmN0aW9uKGMpe3JldHVybiBqKGMpLEJyKHRoaXMsYykubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwWzFdfSl9LHMubWFueT1mdW5jdGlvbigpe3ZhciBjPXRoaXM7cmV0dXJuIHIoZnVuY3Rpb24ocCxFKXtmb3IodmFyIGs9W10sTD12b2lkIDA7Oyl7aWYoIShMPXgoYy5fKHAsRSksTCkpLnN0YXR1cylyZXR1cm4geCh3KEUsayksTCk7aWYoRT09PUwuaW5kZXgpdGhyb3cgbmV3IEVycm9yKFxcXCJpbmZpbml0ZSBsb29wIGRldGVjdGVkIGluIC5tYW55KCkgcGFyc2VyIC0tLSBjYWxsaW5nIC5tYW55KCkgb24gYSBwYXJzZXIgd2hpY2ggY2FuIGFjY2VwdCB6ZXJvIGNoYXJhY3RlcnMgaXMgdXN1YWxseSB0aGUgY2F1c2VcXFwiKTtFPUwuaW5kZXgsay5wdXNoKEwudmFsdWUpfX0pfSxzLnRpZVdpdGg9ZnVuY3Rpb24oYyl7cmV0dXJuIE8oYyksdGhpcy5tYXAoZnVuY3Rpb24ocCl7aWYoZnVuY3Rpb24oTCl7aWYoIU4oTCkpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYW4gYXJyYXk6IFxcXCIrTCl9KHApLHAubGVuZ3RoKXtPKHBbMF0pO2Zvcih2YXIgRT1wWzBdLGs9MTtrPHAubGVuZ3RoO2srKylPKHBba10pLEUrPWMrcFtrXTtyZXR1cm4gRX1yZXR1cm5cXFwiXFxcIn0pfSxzLnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoXFxcIlxcXCIpfSxzLnRpbWVzPWZ1bmN0aW9uKGMscCl7dmFyIEU9dGhpcztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYocD1jKSxlZShjKSxlZShwKSxyKGZ1bmN0aW9uKGssTCl7Zm9yKHZhciBBPVtdLE09dm9pZCAwLFU9dm9pZCAwLHRlPTA7dGU8Yzt0ZSs9MSl7aWYoVT14KE09RS5fKGssTCksVSksIU0uc3RhdHVzKXJldHVybiBVO0w9TS5pbmRleCxBLnB1c2goTS52YWx1ZSl9Zm9yKDt0ZTxwJiYoVT14KE09RS5fKGssTCksVSksTS5zdGF0dXMpO3RlKz0xKUw9TS5pbmRleCxBLnB1c2goTS52YWx1ZSk7cmV0dXJuIHgodyhMLEEpLFUpfSl9LHMucmVzdWx0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBjfSl9LHMuYXRNb3N0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnRpbWVzKDAsYyl9LHMuYXRMZWFzdD1mdW5jdGlvbihjKXtyZXR1cm4gUHQodGhpcy50aW1lcyhjKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihwLEUpe3JldHVybiBwLmNvbmNhdChFKX0pfSxzLm1hcD1mdW5jdGlvbihjKXthZShjKTt2YXIgcD10aGlzO3JldHVybiByKGZ1bmN0aW9uKEUsayl7dmFyIEw9cC5fKEUsayk7cmV0dXJuIEwuc3RhdHVzP3godyhMLmluZGV4LGMoTC52YWx1ZSkpLEwpOkx9KX0scy5jb250cmFtYXA9ZnVuY3Rpb24oYyl7YWUoYyk7dmFyIHA9dGhpcztyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPXAucGFyc2UoYyhFLnNsaWNlKGspKSk7cmV0dXJuIEwuc3RhdHVzP3coaytFLmxlbmd0aCxMLnZhbHVlKTpMfSl9LHMucHJvbWFwPWZ1bmN0aW9uKGMscCl7cmV0dXJuIGFlKGMpLGFlKHApLHRoaXMuY29udHJhbWFwKGMpLm1hcChwKX0scy5za2lwPWZ1bmN0aW9uKGMpe3JldHVybiBCcih0aGlzLGMpLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcFswXX0pfSxzLm1hcms9ZnVuY3Rpb24oKXtyZXR1cm4gUHQoUG4sdGhpcyxQbixmdW5jdGlvbihjLHAsRSl7cmV0dXJue3N0YXJ0OmMsdmFsdWU6cCxlbmQ6RX19KX0scy5ub2RlPWZ1bmN0aW9uKGMpe3JldHVybiBQdChQbix0aGlzLFBuLGZ1bmN0aW9uKHAsRSxrKXtyZXR1cm57bmFtZTpjLHZhbHVlOkUsc3RhcnQ6cCxlbmQ6a319KX0scy5zZXBCeT1mdW5jdGlvbihjKXtyZXR1cm4gQ28odGhpcyxjKX0scy5zZXBCeTE9ZnVuY3Rpb24oYyl7cmV0dXJuIFVzKHRoaXMsYyl9LHMubG9va2FoZWFkPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnNraXAoUnIoYykpfSxzLm5vdEZvbGxvd2VkQnk9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuc2tpcCh2byhjKSl9LHMuZGVzYz1mdW5jdGlvbihjKXtOKGMpfHwoYz1bY10pO3ZhciBwPXRoaXM7cmV0dXJuIHIoZnVuY3Rpb24oRSxrKXt2YXIgTD1wLl8oRSxrKTtyZXR1cm4gTC5zdGF0dXN8fChMLmV4cGVjdGVkPWMpLEx9KX0scy5mYWxsYmFjaz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5vcigkdChjKSl9LHMuYXA9ZnVuY3Rpb24oYyl7cmV0dXJuIFB0KGMsdGhpcyxmdW5jdGlvbihwLEUpe3JldHVybiBwKEUpfSl9LHMuY2hhaW49ZnVuY3Rpb24oYyl7dmFyIHA9dGhpcztyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPXAuXyhFLGspO3JldHVybiBMLnN0YXR1cz94KGMoTC52YWx1ZSkuXyhFLEwuaW5kZXgpLEwpOkx9KX0scy5jb25jYXQ9cy5vcixzLmVtcHR5PUtzLHMub2Y9JHQsc1tcXFwiZmFudGFzeS1sYW5kL2FwXFxcIl09cy5hcCxzW1xcXCJmYW50YXN5LWxhbmQvY2hhaW5cXFwiXT1zLmNoYWluLHNbXFxcImZhbnRhc3ktbGFuZC9jb25jYXRcXFwiXT1zLmNvbmNhdCxzW1xcXCJmYW50YXN5LWxhbmQvZW1wdHlcXFwiXT1zLmVtcHR5LHNbXFxcImZhbnRhc3ktbGFuZC9vZlxcXCJdPXMub2Ysc1tcXFwiZmFudGFzeS1sYW5kL21hcFxcXCJdPXMubWFwO3ZhciBQbj1yKGZ1bmN0aW9uKGMscCl7cmV0dXJuIHcocCxWKGMscCkpfSksZWw9cihmdW5jdGlvbihjLHApe3JldHVybiBwPj1jLmxlbmd0aD92KHAsXFxcImFueSBjaGFyYWN0ZXIvYnl0ZVxcXCIpOncocCsxLFkoYyxwKSl9KSx0bD1yKGZ1bmN0aW9uKGMscCl7cmV0dXJuIHcoYy5sZW5ndGgsYy5zbGljZShwKSl9KSxXcz1yKGZ1bmN0aW9uKGMscCl7cmV0dXJuIHA8Yy5sZW5ndGg/dihwLFxcXCJFT0ZcXFwiKTp3KHAsbnVsbCl9KSxubD1mdCgvWzAtOV0vKS5kZXNjKFxcXCJhIGRpZ2l0XFxcIikscmw9ZnQoL1swLTldKi8pLmRlc2MoXFxcIm9wdGlvbmFsIGRpZ2l0c1xcXCIpLHNsPWZ0KC9bYS16XS9pKS5kZXNjKFxcXCJhIGxldHRlclxcXCIpLGlsPWZ0KC9bYS16XSovaSkuZGVzYyhcXFwib3B0aW9uYWwgbGV0dGVyc1xcXCIpLG9sPWZ0KC9cXFxccyovKS5kZXNjKFxcXCJvcHRpb25hbCB3aGl0ZXNwYWNlXFxcIiksYWw9ZnQoL1xcXFxzKy8pLmRlc2MoXFxcIndoaXRlc3BhY2VcXFwiKSxPbz1CbihcXFwiXFxcXHJcXFwiKSxJbz1CbihgXFxuYCksTG89Qm4oYFxcXFxyXFxuYCksTm89UHIoTG8sSW8sT28pLmRlc2MoXFxcIm5ld2xpbmVcXFwiKSx1bD1QcihObyxXcyk7ci5hbGw9dGwsci5hbHQ9UHIsci5hbnk9ZWwsci5jcj1PbyxyLmNyZWF0ZUxhbmd1YWdlPWZ1bmN0aW9uKGMpe3ZhciBwPXt9O2Zvcih2YXIgRSBpbiBjKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChjLEUpJiZmdW5jdGlvbihrKXtwW2tdPXhvKGZ1bmN0aW9uKCl7cmV0dXJuIGNba10ocCl9KX0oRSk7cmV0dXJuIHB9LHIuY3JsZj1MbyxyLmN1c3RvbT1mdW5jdGlvbihjKXtyZXR1cm4gcihjKHcsdikpfSxyLmRpZ2l0PW5sLHIuZGlnaXRzPXJsLHIuZW1wdHk9S3Msci5lbmQ9dWwsci5lb2Y9V3Msci5mYWlsPSRyLHIuZm9ybWF0RXJyb3I9U28sci5pbmRleD1QbixyLmlzUGFyc2VyPUksci5sYXp5PXhvLHIubGV0dGVyPXNsLHIubGV0dGVycz1pbCxyLmxmPUlvLHIubG9va2FoZWFkPVJyLHIubWFrZUZhaWx1cmU9dixyLm1ha2VTdWNjZXNzPXcsci5uZXdsaW5lPU5vLHIubm9uZU9mPWZ1bmN0aW9uKGMpe3JldHVybiBqcihmdW5jdGlvbihwKXtyZXR1cm4gYy5pbmRleE9mKHApPDB9KS5kZXNjKFxcXCJub25lIG9mICdcXFwiK2MrXFxcIidcXFwiKX0sci5ub3RGb2xsb3dlZEJ5PXZvLHIub2Y9JHQsci5vbmVPZj1mdW5jdGlvbihjKXtmb3IodmFyIHA9Yy5zcGxpdChcXFwiXFxcIiksRT0wO0U8cC5sZW5ndGg7RSsrKXBbRV09XFxcIidcXFwiK3BbRV0rXFxcIidcXFwiO3JldHVybiBqcihmdW5jdGlvbihrKXtyZXR1cm4gYy5pbmRleE9mKGspPj0wfSkuZGVzYyhwKX0sci5vcHRXaGl0ZXNwYWNlPW9sLHIuUGFyc2VyPXIsci5yYW5nZT1mdW5jdGlvbihjLHApe3JldHVybiBqcihmdW5jdGlvbihFKXtyZXR1cm4gYzw9RSYmRTw9cH0pLmRlc2MoYytcXFwiLVxcXCIrcCl9LHIucmVnZXg9ZnQsci5yZWdleHA9ZnQsci5zZXBCeT1DbyxyLnNlcEJ5MT1VcyxyLnNlcT1CcixyLnNlcU1hcD1QdCxyLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgYyxwPXt9LEU9MCxrPShjPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjKSksTD1rLmxlbmd0aCxBPTA7QTxMO0ErPTEpe3ZhciBNPWtbQV07aWYoIUkoTSkpe2lmKE4oTSkmJk0ubGVuZ3RoPT09MiYmdHlwZW9mIE1bMF09PVxcXCJzdHJpbmdcXFwiJiZJKE1bMV0pKXt2YXIgVT1NWzBdO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwLFUpKXRocm93IG5ldyBFcnJvcihcXFwic2VxT2JqOiBkdXBsaWNhdGUga2V5IFxcXCIrVSk7cFtVXT0hMCxFKys7Y29udGludWV9dGhyb3cgbmV3IEVycm9yKFxcXCJzZXFPYmogYXJndW1lbnRzIG11c3QgYmUgcGFyc2VycyBvciBbc3RyaW5nLCBwYXJzZXJdIGFycmF5IHBhaXJzLlxcXCIpfX1pZihFPT09MCl0aHJvdyBuZXcgRXJyb3IoXFxcInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm9cXFwiKTtyZXR1cm4gcihmdW5jdGlvbih0ZSxFZSl7Zm9yKHZhciBtZSxkdD17fSx2ZT0wO3ZlPEw7dmUrPTEpe3ZhciBodCxYdDtpZihOKGtbdmVdKT8oaHQ9a1t2ZV1bMF0sWHQ9a1t2ZV1bMV0pOihodD1udWxsLFh0PWtbdmVdKSwhKG1lPXgoWHQuXyh0ZSxFZSksbWUpKS5zdGF0dXMpcmV0dXJuIG1lO2h0JiYoZHRbaHRdPW1lLnZhbHVlKSxFZT1tZS5pbmRleH1yZXR1cm4geCh3KEVlLGR0KSxtZSl9KX0sci5zdHJpbmc9Qm4sci5zdWNjZWVkPSR0LHIudGFrZVdoaWxlPWZ1bmN0aW9uKGMpe3JldHVybiBhZShjKSxyKGZ1bmN0aW9uKHAsRSl7Zm9yKHZhciBrPUU7azxwLmxlbmd0aCYmYyhZKHAsaykpOylrKys7cmV0dXJuIHcoayxwLnNsaWNlKEUsaykpfSl9LHIudGVzdD1qcixyLndoaXRlc3BhY2U9YWwscltcXFwiZmFudGFzeS1sYW5kL2VtcHR5XFxcIl09S3MscltcXFwiZmFudGFzeS1sYW5kL29mXFxcIl09JHQsci5CaW5hcnk9e2JpdFNlcTpkLGJpdFNlcU9iajpmdW5jdGlvbihjKXtmKCk7dmFyIHA9e30sRT0wLGs9YShmdW5jdGlvbihBKXtpZihOKEEpKXt2YXIgTT1BO2lmKE0ubGVuZ3RoIT09Mil0aHJvdyBuZXcgRXJyb3IoXFxcIltcXFwiK00uam9pbihcXFwiLCBcXFwiKStcXFwiXSBzaG91bGQgYmUgbGVuZ3RoIDIsIGdvdCBsZW5ndGggXFxcIitNLmxlbmd0aCk7aWYoTyhNWzBdKSxlZShNWzFdKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocCxNWzBdKSl0aHJvdyBuZXcgRXJyb3IoXFxcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcXFwiK01bMF0pO3JldHVybiBwW01bMF1dPSEwLEUrKyxNfXJldHVybiBlZShBKSxbbnVsbCxBXX0sYyk7aWYoRTwxKXRocm93IG5ldyBFcnJvcihcXFwiYml0U2VxT2JqIGV4cGVjdHMgYXQgbGVhc3Qgb25lIG5hbWVkIHBhaXIsIGdvdCBbXFxcIitjLmpvaW4oXFxcIiwgXFxcIikrXFxcIl1cXFwiKTt2YXIgTD1hKGZ1bmN0aW9uKEEpe3JldHVybiBBWzBdfSxrKTtyZXR1cm4gZChhKGZ1bmN0aW9uKEEpe3JldHVybiBBWzFdfSxrKSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBvKGZ1bmN0aW9uKE0sVSl7cmV0dXJuIFVbMF0hPT1udWxsJiYoTVtVWzBdXT1VWzFdKSxNfSx7fSxhKGZ1bmN0aW9uKE0sVSl7cmV0dXJuW00sQVtVXV19LEwpKX0pfSxieXRlOmZ1bmN0aW9uKGMpe2lmKGYoKSxlZShjKSxjPjI1NSl0aHJvdyBuZXcgRXJyb3IoXFxcIlZhbHVlIHNwZWNpZmllZCB0byBieXRlIGNvbnN0cnVjdG9yIChcXFwiK2MrXFxcIj0weFxcXCIrYy50b1N0cmluZygxNikrXFxcIikgaXMgbGFyZ2VyIGluIHZhbHVlIHRoYW4gYSBzaW5nbGUgYnl0ZS5cXFwiKTt2YXIgcD0oYz4xNT9cXFwiMHhcXFwiOlxcXCIweDBcXFwiKStjLnRvU3RyaW5nKDE2KTtyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPVkoRSxrKTtyZXR1cm4gTD09PWM/dyhrKzEsTCk6dihrLHApfSl9LGJ1ZmZlcjpmdW5jdGlvbihjKXtyZXR1cm4gbShcXFwiYnVmZmVyXFxcIixjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIEJ1ZmZlci5mcm9tKHApfSl9LGVuY29kZWRTdHJpbmc6ZnVuY3Rpb24oYyxwKXtyZXR1cm4gbShcXFwic3RyaW5nXFxcIixwKS5tYXAoZnVuY3Rpb24oRSl7cmV0dXJuIEUudG9TdHJpbmcoYyl9KX0sdWludEJFOmIsdWludDhCRTpiKDEpLHVpbnQxNkJFOmIoMiksdWludDMyQkU6Yig0KSx1aW50TEU6Zyx1aW50OExFOmcoMSksdWludDE2TEU6ZygyKSx1aW50MzJMRTpnKDQpLGludEJFOkQsaW50OEJFOkQoMSksaW50MTZCRTpEKDIpLGludDMyQkU6RCg0KSxpbnRMRTpULGludDhMRTpUKDEpLGludDE2TEU6VCgyKSxpbnQzMkxFOlQoNCksZmxvYXRCRTptKFxcXCJmbG9hdEJFXFxcIiw0KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMucmVhZEZsb2F0QkUoMCl9KSxmbG9hdExFOm0oXFxcImZsb2F0TEVcXFwiLDQpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5yZWFkRmxvYXRMRSgwKX0pLGRvdWJsZUJFOm0oXFxcImRvdWJsZUJFXFxcIiw4KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMucmVhZERvdWJsZUJFKDApfSksZG91YmxlTEU6bShcXFwiZG91YmxlTEVcXFwiLDgpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5yZWFkRG91YmxlTEUoMCl9KX0sbi5leHBvcnRzPXJ9XSl9KX0pO3ZhciBSdT1fbyhOZT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgU2Y9TmUmJk5lLl9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgbj1mdW5jdGlvbihlLHQpe3JldHVybiBuPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLHMpe3IuX19wcm90b19fPXN9fHxmdW5jdGlvbihyLHMpe2Zvcih2YXIgaSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGkpJiYocltpXT1zW2ldKX0sbihlLHQpfTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgdCE9XFxcImZ1bmN0aW9uXFxcIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihcXFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcXFwiK1N0cmluZyh0KStcXFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcXFwiKTtuKGUsdCk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT10PT09bnVsbD9PYmplY3QuY3JlYXRlKHQpOihyLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgcil9fSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOZSxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSk7TmUuRW1wdHlCVHJlZT1OZS5hc1NldD1OZS5zaW1wbGVDb21wYXJhdG9yPU5lLmRlZmF1bHRDb21wYXJhdG9yPXZvaWQgMDtmdW5jdGlvbiBCdShuLGUpe2lmKE51bWJlci5pc0Zpbml0ZShuKSYmTnVtYmVyLmlzRmluaXRlKGUpKXJldHVybiBuLWU7dmFyIHQ9dHlwZW9mIG4scj10eXBlb2YgZTtpZih0IT09cilyZXR1cm4gdDxyPy0xOjE7aWYodD09PVxcXCJvYmplY3RcXFwiKXtpZihuPT09bnVsbClyZXR1cm4gZT09PW51bGw/MDotMTtpZihlPT09bnVsbClyZXR1cm4gMTtpZihuPW4udmFsdWVPZigpLGU9ZS52YWx1ZU9mKCksdD10eXBlb2YgbixyPXR5cGVvZiBlLHQhPT1yKXJldHVybiB0PHI/LTE6MX1yZXR1cm4gbjxlPy0xOm4+ZT8xOm49PT1lPzA6TnVtYmVyLmlzTmFOKG4pP051bWJlci5pc05hTihlKT8wOi0xOk51bWJlci5pc05hTihlKT8xOkFycmF5LmlzQXJyYXkobik/MDpOdW1iZXIuTmFOfU5lLmRlZmF1bHRDb21wYXJhdG9yPUJ1O2Z1bmN0aW9uIGtmKG4sZSl7cmV0dXJuIG4+ZT8xOm48ZT8tMTowfU5lLnNpbXBsZUNvbXBhcmF0b3I9a2Y7dmFyIGx0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihlLHQscil7dGhpcy5fcm9vdD1mbyx0aGlzLl9zaXplPTAsdGhpcy5fbWF4Tm9kZVNpemU9cj49ND9NYXRoLm1pbihyLDI1Nik6MzIsdGhpcy5fY29tcGFyZT10fHxCdSxlJiZ0aGlzLnNldFBhaXJzKGUpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcInNpemVcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcImxlbmd0aFxcXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaXplfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwiaXNFbXB0eVxcXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaXplPT09MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3Jvb3Q9Zm8sdGhpcy5fc2l6ZT0wfSxuLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztyZXR1cm4gdCE9PXZvaWQgMCYmKGU9ZS5iaW5kKHQpKSx0aGlzLmZvckVhY2hQYWlyKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIGUoaSxzLHIpfSl9LG4ucHJvdG90eXBlLmZvckVhY2hQYWlyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5taW5LZXkoKSxzPXRoaXMubWF4S2V5KCk7cmV0dXJuIHRoaXMuZm9yUmFuZ2UocixzLCEwLGUsdCl9LG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9yb290LmdldChlLHQsdGhpcyl9LG4ucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQscil7dGhpcy5fcm9vdC5pc1NoYXJlZCYmKHRoaXMuX3Jvb3Q9dGhpcy5fcm9vdC5jbG9uZSgpKTt2YXIgcz10aGlzLl9yb290LnNldChlLHQscix0aGlzKTtyZXR1cm4gcz09PSEwfHxzPT09ITE/czoodGhpcy5fcm9vdD1uZXcgdmYoW3RoaXMuX3Jvb3Qsc10pLCEwKX0sbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZvclJhbmdlKGUsZSwhMCx2b2lkIDApIT09MH0sbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVkaXRSYW5nZShlLGUsITAsTXUpIT09MH0sbi5wcm90b3R5cGUud2l0aD1mdW5jdGlvbihlLHQscil7dmFyIHM9dGhpcy5jbG9uZSgpO3JldHVybiBzLnNldChlLHQscil8fHI/czp0aGlzfSxuLnByb3RvdHlwZS53aXRoUGFpcnM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmNsb25lKCk7cmV0dXJuIHIuc2V0UGFpcnMoZSx0KSE9PTB8fHQ/cjp0aGlzfSxuLnByb3RvdHlwZS53aXRoS2V5cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLmNsb25lKCkscz0hMSxpPTA7aTxlLmxlbmd0aDtpKyspcz1yLnNldChlW2ldLHZvaWQgMCwhMSl8fHM7cmV0dXJuIHQmJiFzP3RoaXM6cn0sbi5wcm90b3R5cGUud2l0aG91dD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLndpdGhvdXRSYW5nZShlLGUsITAsdCl9LG4ucHJvdG90eXBlLndpdGhvdXRLZXlzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5jbG9uZSgpO3JldHVybiByLmRlbGV0ZUtleXMoZSl8fCF0P3I6dGhpc30sbi5wcm90b3R5cGUud2l0aG91dFJhbmdlPWZ1bmN0aW9uKGUsdCxyLHMpe3ZhciBpPXRoaXMuY2xvbmUoKTtyZXR1cm4gaS5kZWxldGVSYW5nZShlLHQscik9PT0wJiZzP3RoaXM6aX0sbi5wcm90b3R5cGUuZmlsdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5ncmVlZHlDbG9uZSgpLHM7cmV0dXJuIHIuZWRpdEFsbChmdW5jdGlvbihpLG8sYSl7aWYoIWUoaSxvLGEpKXJldHVybiBzPSR1fSksIXMmJnQ/dGhpczpyfSxuLnByb3RvdHlwZS5tYXBWYWx1ZXM9ZnVuY3Rpb24oZSl7dmFyIHQ9e30scj10aGlzLmdyZWVkeUNsb25lKCk7cmV0dXJuIHIuZWRpdEFsbChmdW5jdGlvbihzLGksbyl7cmV0dXJuIHQudmFsdWU9ZShpLHMsbyksdH0pLHJ9LG4ucHJvdG90eXBlLnJlZHVjZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0wLHM9dCxpPXRoaXMuZW50cmllcyh0aGlzLm1pbktleSgpLE1yKSxvOyEobz1pLm5leHQoKSkuZG9uZTspcz1lKHMsby52YWx1ZSxyKyssdGhpcyk7cmV0dXJuIHN9LG4ucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmZpbmRQYXRoKGUpO2lmKHI9PT12b2lkIDApcmV0dXJuIEFuKCk7dmFyIHM9ci5ub2RlcXVldWUsaT1yLm5vZGVpbmRleCxvPXIubGVhZixhPXQhPT12b2lkIDA/MTowLHU9ZT09PXZvaWQgMD8tMTpvLmluZGV4T2YoZSwwLHRoaXMuX2NvbXBhcmUpLTE7cmV0dXJuIEFuKGZ1bmN0aW9uKCl7ZTpmb3IoOzspc3dpdGNoKGEpe2Nhc2UgMDppZigrK3U8by5rZXlzLmxlbmd0aClyZXR1cm57ZG9uZTohMSx2YWx1ZTpbby5rZXlzW3VdLG8udmFsdWVzW3VdXX07YT0yO2NvbnRpbnVlO2Nhc2UgMTppZigrK3U8by5rZXlzLmxlbmd0aClyZXR1cm4gdFswXT1vLmtleXNbdV0sdFsxXT1vLnZhbHVlc1t1XSx7ZG9uZTohMSx2YWx1ZTp0fTthPTI7Y2FzZSAyOmZvcih2YXIgbD0tMTs7KXtpZigrK2w+PXMubGVuZ3RoKXthPTM7Y29udGludWUgZX1pZigrK2lbbF08c1tsXS5sZW5ndGgpYnJlYWt9Zm9yKDtsPjA7bC0tKXNbbC0xXT1zW2xdW2lbbF1dLmNoaWxkcmVuLGlbbC0xXT0wO289c1swXVtpWzBdXSx1PS0xLGE9dCE9PXZvaWQgMD8xOjA7Y29udGludWU7Y2FzZSAzOnJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fSl9LG4ucHJvdG90eXBlLmVudHJpZXNSZXZlcnNlZD1mdW5jdGlvbihlLHQscil7aWYoZT09PXZvaWQgMCYmKGU9dGhpcy5tYXhLZXkoKSxyPXZvaWQgMCxlPT09dm9pZCAwKSlyZXR1cm4gQW4oKTt2YXIgcz10aGlzLmZpbmRQYXRoKGUpfHx0aGlzLmZpbmRQYXRoKHRoaXMubWF4S2V5KCkpLGk9cy5ub2RlcXVldWUsbz1zLm5vZGVpbmRleCxhPXMubGVhZjtMZSghaVswXXx8YT09PWlbMF1bb1swXV0sXFxcIndhdCFcXFwiKTt2YXIgdT1hLmluZGV4T2YoZSwwLHRoaXMuX2NvbXBhcmUpOyFyJiZ1PGEua2V5cy5sZW5ndGgmJnRoaXMuX2NvbXBhcmUoYS5rZXlzW3VdLGUpPD0wJiZ1Kys7dmFyIGw9dCE9PXZvaWQgMD8xOjA7cmV0dXJuIEFuKGZ1bmN0aW9uKCl7ZTpmb3IoOzspc3dpdGNoKGwpe2Nhc2UgMDppZigtLXU+PTApcmV0dXJue2RvbmU6ITEsdmFsdWU6W2Eua2V5c1t1XSxhLnZhbHVlc1t1XV19O2w9Mjtjb250aW51ZTtjYXNlIDE6aWYoLS11Pj0wKXJldHVybiB0WzBdPWEua2V5c1t1XSx0WzFdPWEudmFsdWVzW3VdLHtkb25lOiExLHZhbHVlOnR9O2w9MjtjYXNlIDI6Zm9yKHZhciBmPS0xOzspe2lmKCsrZj49aS5sZW5ndGgpe2w9Mztjb250aW51ZSBlfWlmKC0tb1tmXT49MClicmVha31mb3IoO2Y+MDtmLS0paVtmLTFdPWlbZl1bb1tmXV0uY2hpbGRyZW4sb1tmLTFdPWlbZi0xXS5sZW5ndGgtMTthPWlbMF1bb1swXV0sdT1hLmtleXMubGVuZ3RoLGw9dCE9PXZvaWQgMD8xOjA7Y29udGludWU7Y2FzZSAzOnJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fSl9LG4ucHJvdG90eXBlLmZpbmRQYXRoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3Jvb3QscixzO2lmKHQuaXNMZWFmKXI9X3Uscz1fdTtlbHNle3I9W10scz1bXTtmb3IodmFyIGk9MDshdC5pc0xlYWY7aSsrKXtpZihyW2ldPXQuY2hpbGRyZW4sc1tpXT1lPT09dm9pZCAwPzA6dC5pbmRleE9mKGUsMCx0aGlzLl9jb21wYXJlKSxzW2ldPj1yW2ldLmxlbmd0aClyZXR1cm47dD1yW2ldW3NbaV1dfXIucmV2ZXJzZSgpLHMucmV2ZXJzZSgpfXJldHVybntub2RlcXVldWU6cixub2RlaW5kZXg6cyxsZWFmOnR9fSxuLnByb3RvdHlwZS5kaWZmQWdhaW5zdD1mdW5jdGlvbihlLHQscixzKXtpZihlLl9jb21wYXJlIT09dGhpcy5fY29tcGFyZSl0aHJvdyBuZXcgRXJyb3IoXFxcIlRyZWUgY29tcGFyYXRvcnMgYXJlIG5vdCB0aGUgc2FtZS5cXFwiKTtpZih0aGlzLmlzRW1wdHl8fGUuaXNFbXB0eSlyZXR1cm4gdGhpcy5pc0VtcHR5JiZlLmlzRW1wdHk/dm9pZCAwOnRoaXMuaXNFbXB0eT9yPT09dm9pZCAwP3ZvaWQgMDpuLnN0ZXBUb0VuZChuLm1ha2VEaWZmQ3Vyc29yKGUpLHIpOnQ9PT12b2lkIDA/dm9pZCAwOm4uc3RlcFRvRW5kKG4ubWFrZURpZmZDdXJzb3IodGhpcyksdCk7Zm9yKHZhciBpPXRoaXMuX2NvbXBhcmUsbz1uLm1ha2VEaWZmQ3Vyc29yKHRoaXMpLGE9bi5tYWtlRGlmZkN1cnNvcihlKSx1PSEwLGw9ITAsZj1uLmNvbXBhcmUobyxhLGkpO3UmJmw7KXt2YXIgZD1uLmNvbXBhcmUobyxhLGkpLG09by5sZWFmLGg9by5pbnRlcm5hbFNwaW5lLGI9by5sZXZlbEluZGljZXMsZz1hLmxlYWYsRD1hLmludGVybmFsU3BpbmUsVD1hLmxldmVsSW5kaWNlcztpZihtfHxnKXtpZihmIT09MCl7aWYoZD09PTApe2lmKG0mJmcmJnMpe3ZhciBJPW0udmFsdWVzW2JbYi5sZW5ndGgtMV1dLE49Zy52YWx1ZXNbVFtULmxlbmd0aC0xXV07aWYoIU9iamVjdC5pcyhJLE4pKXt2YXIgeT1zKG8uY3VycmVudEtleSxJLE4pO2lmKHkmJnkuYnJlYWspcmV0dXJuIHkuYnJlYWt9fX1lbHNlIGlmKGQ+MCl7aWYoZyYmcil7dmFyIHc9Zy52YWx1ZXNbVFtULmxlbmd0aC0xXV0seT1yKGEuY3VycmVudEtleSx3KTtpZih5JiZ5LmJyZWFrKXJldHVybiB5LmJyZWFrfX1lbHNlIGlmKHQmJm0mJmYhPT0wKXt2YXIgST1tLnZhbHVlc1tiW2IubGVuZ3RoLTFdXSx5PXQoby5jdXJyZW50S2V5LEkpO2lmKHkmJnkuYnJlYWspcmV0dXJuIHkuYnJlYWt9fX1lbHNlIGlmKCFtJiYhZyYmZD09PTApe3ZhciB2PWgubGVuZ3RoLTEseD1ELmxlbmd0aC0xLEM9aFt2XVtiW3ZdXSxWPURbeF1bVFt4XV07aWYoVj09PUMpe2Y9MCx1PW4uc3RlcChvLCEwKSxsPW4uc3RlcChhLCEwKTtjb250aW51ZX19Zj1kLGQ8MD91PW4uc3RlcChvKTpsPW4uc3RlcChhKX1pZih1JiZ0KXJldHVybiBuLmZpbmlzaEN1cnNvcldhbGsobyxhLGksdCk7aWYobCYmcilyZXR1cm4gbi5maW5pc2hDdXJzb3JXYWxrKGEsbyxpLHIpfSxuLmZpbmlzaEN1cnNvcldhbGs9ZnVuY3Rpb24oZSx0LHIscyl7dmFyIGk9bi5jb21wYXJlKGUsdCxyKTtpZihpPT09MCl7aWYoIW4uc3RlcChlKSlyZXR1cm59ZWxzZSBpPDAmJkxlKCExLFxcXCJjdXJzb3Igd2FsayB0ZXJtaW5hdGVkIGVhcmx5XFxcIik7cmV0dXJuIG4uc3RlcFRvRW5kKGUscyl9LG4uc3RlcFRvRW5kPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPSEwO3I7KXt2YXIgcz1lLmxlYWYsaT1lLmxldmVsSW5kaWNlcyxvPWUuY3VycmVudEtleTtpZihzKXt2YXIgYT1zLnZhbHVlc1tpW2kubGVuZ3RoLTFdXSx1PXQobyxhKTtpZih1JiZ1LmJyZWFrKXJldHVybiB1LmJyZWFrfXI9bi5zdGVwKGUpfX0sbi5tYWtlRGlmZkN1cnNvcj1mdW5jdGlvbihlKXt2YXIgdD1lLl9yb290LHI9ZS5oZWlnaHQ7cmV0dXJue2hlaWdodDpyLGludGVybmFsU3BpbmU6W1t0XV0sbGV2ZWxJbmRpY2VzOlswXSxsZWFmOnZvaWQgMCxjdXJyZW50S2V5OnQubWF4S2V5KCl9fSxuLnN0ZXA9ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmludGVybmFsU3BpbmUscz1lLmxldmVsSW5kaWNlcyxpPWUubGVhZjtpZih0PT09ITB8fGkpe3ZhciBvPXMubGVuZ3RoO2lmKHQ9PT0hMHx8c1tvLTFdPT09MCl7dmFyIGE9ci5sZW5ndGg7aWYoYT09PTApcmV0dXJuITE7Zm9yKHZhciB1PWEtMSxsPXU7bD49MDspe2lmKHNbbF0+MClyZXR1cm4gbDxvLTEmJihlLmxlYWY9dm9pZCAwLHMucG9wKCkpLGw8dSYmKGUuaW50ZXJuYWxTcGluZT1yLnNsaWNlKDAsbCsxKSksZS5jdXJyZW50S2V5PXJbbF1bLS1zW2xdXS5tYXhLZXkoKSwhMDtsLS19cmV0dXJuITF9ZWxzZXt2YXIgZj0tLXNbby0xXTtyZXR1cm4gZS5jdXJyZW50S2V5PWkua2V5c1tmXSwhMH19ZWxzZXt2YXIgZD1yLmxlbmd0aCxtPWQtMSxoPXJbbV1bc1ttXV07aWYoaC5pc0xlYWYpe2UubGVhZj1oO3ZhciBmPXNbZF09aC52YWx1ZXMubGVuZ3RoLTE7ZS5jdXJyZW50S2V5PWgua2V5c1tmXX1lbHNle3ZhciBiPWguY2hpbGRyZW47cltkXT1iO3ZhciBnPWIubGVuZ3RoLTE7c1tkXT1nLGUuY3VycmVudEtleT1iW2ddLm1heEtleSgpfXJldHVybiEwfX0sbi5jb21wYXJlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgcz1lLmhlaWdodCxpPWUuY3VycmVudEtleSxvPWUubGV2ZWxJbmRpY2VzLGE9dC5oZWlnaHQsdT10LmN1cnJlbnRLZXksbD10LmxldmVsSW5kaWNlcyxmPXIodSxpKTtpZihmIT09MClyZXR1cm4gZjt2YXIgZD1zPGE/czphLG09by5sZW5ndGgtKHMtZCksaD1sLmxlbmd0aC0oYS1kKTtyZXR1cm4gbS1ofSxuLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZW50cmllcyhlLE1yKTtyZXR1cm4gQW4oZnVuY3Rpb24oKXt2YXIgcj10Lm5leHQoKTtyZXR1cm4gci52YWx1ZSYmKHIudmFsdWU9ci52YWx1ZVswXSkscn0pfSxuLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbnRyaWVzKGUsTXIpO3JldHVybiBBbihmdW5jdGlvbigpe3ZhciByPXQubmV4dCgpO3JldHVybiByLnZhbHVlJiYoci52YWx1ZT1yLnZhbHVlWzFdKSxyfSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwibWF4Tm9kZVNpemVcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4Tm9kZVNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3QubWluS2V5KCl9LG4ucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290Lm1heEtleSgpfSxuLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3RoaXMuX3Jvb3QuaXNTaGFyZWQ9ITA7dmFyIGU9bmV3IG4odm9pZCAwLHRoaXMuX2NvbXBhcmUsdGhpcy5fbWF4Tm9kZVNpemUpO3JldHVybiBlLl9yb290PXRoaXMuX3Jvb3QsZS5fc2l6ZT10aGlzLl9zaXplLGV9LG4ucHJvdG90eXBlLmdyZWVkeUNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKHZvaWQgMCx0aGlzLl9jb21wYXJlLHRoaXMuX21heE5vZGVTaXplKTtyZXR1cm4gdC5fcm9vdD10aGlzLl9yb290LmdyZWVkeUNsb25lKGUpLHQuX3NpemU9dGhpcy5fc2l6ZSx0fSxuLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPTIxNDc0ODM2NDcpO3ZhciB0PXRoaXMubWluS2V5KCkscj10aGlzLm1heEtleSgpO3JldHVybiB0IT09dm9pZCAwP3RoaXMuZ2V0UmFuZ2UodCxyLCEwLGUpOltdfSxuLnByb3RvdHlwZS5rZXlzQXJyYXk9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5fcm9vdC5mb3JSYW5nZSh0aGlzLm1pbktleSgpLHRoaXMubWF4S2V5KCksITAsITEsdGhpcywwLGZ1bmN0aW9uKHQscil7ZS5wdXNoKHQpfSksZX0sbi5wcm90b3R5cGUudmFsdWVzQXJyYXk9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5fcm9vdC5mb3JSYW5nZSh0aGlzLm1pbktleSgpLHRoaXMubWF4S2V5KCksITAsITEsdGhpcywwLGZ1bmN0aW9uKHQscil7ZS5wdXNoKHIpfSksZX0sbi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0FycmF5KCkudG9TdHJpbmcoKX0sbi5wcm90b3R5cGUuc2V0SWZOb3RQcmVzZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2V0KGUsdCwhMSl9LG4ucHJvdG90eXBlLm5leHRIaWdoZXJQYWlyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8W10sZT09PXZvaWQgMD90aGlzLl9yb290Lm1pblBhaXIodCk6dGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0SGlnaGVyKGUsdGhpcy5fY29tcGFyZSwhMSx0KX0sbi5wcm90b3R5cGUubmV4dEhpZ2hlcktleT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm5leHRIaWdoZXJQYWlyKGUsTXIpO3JldHVybiB0JiZ0WzBdfSxuLnByb3RvdHlwZS5uZXh0TG93ZXJQYWlyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8W10sZT09PXZvaWQgMD90aGlzLl9yb290Lm1heFBhaXIodCk6dGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0TG93ZXIoZSx0aGlzLl9jb21wYXJlLCExLHQpfSxuLnByb3RvdHlwZS5uZXh0TG93ZXJLZXk9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5uZXh0TG93ZXJQYWlyKGUsTXIpO3JldHVybiB0JiZ0WzBdfSxuLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0TG93ZXIoZSx0aGlzLl9jb21wYXJlLCEwLHR8fFtdKX0sbi5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRIaWdoZXIoZSx0aGlzLl9jb21wYXJlLCEwLHR8fFtdKX0sbi5wcm90b3R5cGUuY2hhbmdlSWZQcmVzZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKGUsZSwhMCxmdW5jdGlvbihyLHMpe3JldHVybnt2YWx1ZTp0fX0pIT09MH0sbi5wcm90b3R5cGUuZ2V0UmFuZ2U9ZnVuY3Rpb24oZSx0LHIscyl7cz09PXZvaWQgMCYmKHM9NjcxMDg4NjMpO3ZhciBpPVtdO3JldHVybiB0aGlzLl9yb290LmZvclJhbmdlKGUsdCxyLCExLHRoaXMsMCxmdW5jdGlvbihvLGEpe3JldHVybiBpLnB1c2goW28sYV0pLGkubGVuZ3RoPnM/eGY6dm9pZCAwfSksaX0sbi5wcm90b3R5cGUuc2V0UGFpcnM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxzPTA7czxlLmxlbmd0aDtzKyspdGhpcy5zZXQoZVtzXVswXSxlW3NdWzFdLHQpJiZyKys7cmV0dXJuIHJ9LG4ucHJvdG90eXBlLmZvclJhbmdlPWZ1bmN0aW9uKGUsdCxyLHMsaSl7dmFyIG89dGhpcy5fcm9vdC5mb3JSYW5nZShlLHQsciwhMSx0aGlzLGl8fDAscyk7cmV0dXJuIHR5cGVvZiBvPT1cXFwibnVtYmVyXFxcIj9vOm8uYnJlYWt9LG4ucHJvdG90eXBlLmVkaXRSYW5nZT1mdW5jdGlvbihlLHQscixzLGkpe3ZhciBvPXRoaXMuX3Jvb3Q7by5pc1NoYXJlZCYmKHRoaXMuX3Jvb3Q9bz1vLmNsb25lKCkpO3RyeXt2YXIgYT1vLmZvclJhbmdlKGUsdCxyLCEwLHRoaXMsaXx8MCxzKTtyZXR1cm4gdHlwZW9mIGE9PVxcXCJudW1iZXJcXFwiP2E6YS5icmVha31maW5hbGx5e2Zvcih2YXIgdT12b2lkIDA7by5rZXlzLmxlbmd0aDw9MSYmIW8uaXNMZWFmOyl1fHwodT1vLmlzU2hhcmVkKSx0aGlzLl9yb290PW89by5rZXlzLmxlbmd0aD09PTA/Zm86by5jaGlsZHJlblswXTt1JiYoby5pc1NoYXJlZD0hMCl9fSxuLnByb3RvdHlwZS5lZGl0QWxsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKHRoaXMubWluS2V5KCksdGhpcy5tYXhLZXkoKSwhMCxlLHQpfSxuLnByb3RvdHlwZS5kZWxldGVSYW5nZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKGUsdCxyLE11KX0sbi5wcm90b3R5cGUuZGVsZXRlS2V5cz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPTA7dDxlLmxlbmd0aDt0KyspdGhpcy5kZWxldGUoZVt0XSkmJnIrKztyZXR1cm4gcn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFxcXCJoZWlnaHRcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5fcm9vdCx0PS0xO2U7KXQrKyxlPWUuaXNMZWFmP3ZvaWQgMDplLmNoaWxkcmVuWzBdO3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmZyZWV6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5jbGVhcj1lLnNldD1lLmVkaXRSYW5nZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcXFwiQXR0ZW1wdGVkIHRvIG1vZGlmeSBhIGZyb3plbiBCVHJlZVxcXCIpfX0sbi5wcm90b3R5cGUudW5mcmVlemU9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jbGVhcixkZWxldGUgdGhpcy5zZXQsZGVsZXRlIHRoaXMuZWRpdFJhbmdlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcImlzRnJvemVuXFxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoXFxcImVkaXRSYW5nZVxcXCIpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9yb290LmNoZWNrVmFsaWQoMCx0aGlzLDApO0xlKGU9PT10aGlzLnNpemUsXFxcInNpemUgbWlzbWF0Y2g6IGNvdW50ZWQgXFxcIixlLFxcXCJidXQgc3RvcmVkXFxcIix0aGlzLnNpemUpfSxufSgpO05lLmRlZmF1bHQ9bHQ7ZnVuY3Rpb24gQ2Yobil7cmV0dXJuIG59TmUuYXNTZXQ9Q2Y7U3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJihsdC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1sdC5wcm90b3R5cGUuZW50cmllcyk7bHQucHJvdG90eXBlLndoZXJlPWx0LnByb3RvdHlwZS5maWx0ZXI7bHQucHJvdG90eXBlLnNldFJhbmdlPWx0LnByb3RvdHlwZS5zZXRQYWlycztsdC5wcm90b3R5cGUuYWRkPWx0LnByb3RvdHlwZS5zZXQ7ZnVuY3Rpb24gQW4obil7bj09PXZvaWQgMCYmKG49ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSk7dmFyIGU9e25leHQ6bn07cmV0dXJuIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiYoZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxlfXZhciBQdT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oZSx0KXtlPT09dm9pZCAwJiYoZT1bXSksdGhpcy5rZXlzPWUsdGhpcy52YWx1ZXM9dHx8cGUsdGhpcy5pc1NoYXJlZD12b2lkIDB9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwiaXNMZWFmXFxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW49PT12b2lkIDB9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMua2V5c1t0aGlzLmtleXMubGVuZ3RoLTFdfSxuLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIHM9dGhpcy5rZXlzLGk9MCxvPXMubGVuZ3RoLGE9bz4+MTtpPG87KXt2YXIgdT1yKHNbYV0sZSk7aWYodTwwKWk9YSsxO2Vsc2UgaWYodT4wKW89YTtlbHNle2lmKHU9PT0wKXJldHVybiBhO2lmKGU9PT1lKXJldHVybiBzLmxlbmd0aDt0aHJvdyBuZXcgRXJyb3IoXFxcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcXFwiKX1hPWkrbz4+MX1yZXR1cm4gYV50fSxuLnByb3RvdHlwZS5taW5LZXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rZXlzWzBdfSxuLnByb3RvdHlwZS5taW5QYWlyPWZ1bmN0aW9uKGUpe2lmKHRoaXMua2V5cy5sZW5ndGghPT0wKXJldHVybiBlWzBdPXRoaXMua2V5c1swXSxlWzFdPXRoaXMudmFsdWVzWzBdLGV9LG4ucHJvdG90eXBlLm1heFBhaXI9ZnVuY3Rpb24oZSl7aWYodGhpcy5rZXlzLmxlbmd0aCE9PTApe3ZhciB0PXRoaXMua2V5cy5sZW5ndGgtMTtyZXR1cm4gZVswXT10aGlzLmtleXNbdF0sZVsxXT10aGlzLnZhbHVlc1t0XSxlfX0sbi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnZhbHVlcztyZXR1cm4gbmV3IG4odGhpcy5rZXlzLnNsaWNlKDApLGU9PT1wZT9lOmUuc2xpY2UoMCkpfSxuLnByb3RvdHlwZS5ncmVlZHlDbG9uZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc1NoYXJlZCYmIWU/dGhpczp0aGlzLmNsb25lKCl9LG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbihlLHQscil7dmFyIHM9dGhpcy5pbmRleE9mKGUsLTEsci5fY29tcGFyZSk7cmV0dXJuIHM8MD90OnRoaXMudmFsdWVzW3NdfSxuLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXI9ZnVuY3Rpb24oZSx0LHIscyl7dmFyIGk9dGhpcy5pbmRleE9mKGUsLTEsdCksbz1pPDA/fmktMTpyP2k6aS0xO2lmKG8+PTApcmV0dXJuIHNbMF09dGhpcy5rZXlzW29dLHNbMV09dGhpcy52YWx1ZXNbb10sc30sbi5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbihlLHQscixzKXt2YXIgaT10aGlzLmluZGV4T2YoZSwtMSx0KSxvPWk8MD9+aTpyP2k6aSsxLGE9dGhpcy5rZXlzO2lmKG88YS5sZW5ndGgpcmV0dXJuIHNbMF09YVtvXSxzWzFdPXRoaXMudmFsdWVzW29dLHN9LG4ucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBzPXRoaXMua2V5cy5sZW5ndGgsaT10aGlzLnZhbHVlcy5sZW5ndGg7cmV0dXJuIExlKHRoaXMudmFsdWVzPT09cGU/czw9aTpzPT09aSxcXFwia2V5cy92YWx1ZXMgbGVuZ3RoIG1pc21hdGNoOiBkZXB0aFxcXCIsZSxcXFwid2l0aCBsZW5ndGhzXFxcIixzLGksXFxcImFuZCBiYXNlSW5kZXhcXFwiLHIpLExlKGU9PTB8fHM+MCxcXFwiZW1wdHkgbGVhZiBhdCBkZXB0aFxcXCIsZSxcXFwiYW5kIGJhc2VJbmRleFxcXCIsciksc30sbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyLHMpe3ZhciBpPXRoaXMuaW5kZXhPZihlLC0xLHMuX2NvbXBhcmUpO2lmKGk8MCl7aWYoaT1+aSxzLl9zaXplKyssdGhpcy5rZXlzLmxlbmd0aDxzLl9tYXhOb2RlU2l6ZSlyZXR1cm4gdGhpcy5pbnNlcnRJbkxlYWYoaSxlLHQscyk7dmFyIG89dGhpcy5zcGxpdE9mZlJpZ2h0U2lkZSgpLGE9dGhpcztyZXR1cm4gaT50aGlzLmtleXMubGVuZ3RoJiYoaS09dGhpcy5rZXlzLmxlbmd0aCxhPW8pLGEuaW5zZXJ0SW5MZWFmKGksZSx0LHMpLG99ZWxzZSByZXR1cm4gciE9PSExJiYodCE9PXZvaWQgMCYmdGhpcy5yZWlmeVZhbHVlcygpLHRoaXMua2V5c1tpXT1lLHRoaXMudmFsdWVzW2ldPXQpLCExfSxuLnByb3RvdHlwZS5yZWlmeVZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcz09PXBlP3RoaXMudmFsdWVzPXRoaXMudmFsdWVzLnNsaWNlKDAsdGhpcy5rZXlzLmxlbmd0aCk6dGhpcy52YWx1ZXN9LG4ucHJvdG90eXBlLmluc2VydEluTGVhZj1mdW5jdGlvbihlLHQscixzKXtpZih0aGlzLmtleXMuc3BsaWNlKGUsMCx0KSx0aGlzLnZhbHVlcz09PXBlKXtmb3IoO3BlLmxlbmd0aDxzLl9tYXhOb2RlU2l6ZTspcGUucHVzaCh2b2lkIDApO2lmKHI9PT12b2lkIDApcmV0dXJuITA7dGhpcy52YWx1ZXM9cGUuc2xpY2UoMCx0aGlzLmtleXMubGVuZ3RoLTEpfXJldHVybiB0aGlzLnZhbHVlcy5zcGxpY2UoZSwwLHIpLCEwfSxuLnByb3RvdHlwZS50YWtlRnJvbVJpZ2h0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMudmFsdWVzO2UudmFsdWVzPT09cGU/dCE9PXBlJiZ0LnB1c2godm9pZCAwKToodD10aGlzLnJlaWZ5VmFsdWVzKCksdC5wdXNoKGUudmFsdWVzLnNoaWZ0KCkpKSx0aGlzLmtleXMucHVzaChlLmtleXMuc2hpZnQoKSl9LG4ucHJvdG90eXBlLnRha2VGcm9tTGVmdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnZhbHVlcztlLnZhbHVlcz09PXBlP3QhPT1wZSYmdC51bnNoaWZ0KHZvaWQgMCk6KHQ9dGhpcy5yZWlmeVZhbHVlcygpLHQudW5zaGlmdChlLnZhbHVlcy5wb3AoKSkpLHRoaXMua2V5cy51bnNoaWZ0KGUua2V5cy5wb3AoKSl9LG4ucHJvdG90eXBlLnNwbGl0T2ZmUmlnaHRTaWRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5rZXlzLmxlbmd0aD4+MSx0PXRoaXMua2V5cy5zcGxpY2UoZSkscj10aGlzLnZhbHVlcz09PXBlP3BlOnRoaXMudmFsdWVzLnNwbGljZShlKTtyZXR1cm4gbmV3IG4odCxyKX0sbi5wcm90b3R5cGUuZm9yUmFuZ2U9ZnVuY3Rpb24oZSx0LHIscyxpLG8sYSl7dmFyIHU9aS5fY29tcGFyZSxsLGY7aWYodD09PWUpe2lmKCFyfHwoZj0obD10aGlzLmluZGV4T2YoZSwtMSx1KSkrMSxsPDApKXJldHVybiBvfWVsc2UgbD10aGlzLmluZGV4T2YoZSwwLHUpLGY9dGhpcy5pbmRleE9mKHQsLTEsdSksZjwwP2Y9fmY6cj09PSEwJiZmKys7dmFyIGQ9dGhpcy5rZXlzLG09dGhpcy52YWx1ZXM7aWYoYSE9PXZvaWQgMClmb3IodmFyIGg9bDtoPGY7aCsrKXt2YXIgYj1kW2hdLGc9YShiLG1baF0sbysrKTtpZihnIT09dm9pZCAwKXtpZihzPT09ITApe2lmKGIhPT1kW2hdfHx0aGlzLmlzU2hhcmVkPT09ITApdGhyb3cgbmV3IEVycm9yKFxcXCJCVHJlZSBpbGxlZ2FsbHkgY2hhbmdlZCBvciBjbG9uZWQgaW4gZWRpdFJhbmdlXFxcIik7Zy5kZWxldGU/KHRoaXMua2V5cy5zcGxpY2UoaCwxKSx0aGlzLnZhbHVlcyE9PXBlJiZ0aGlzLnZhbHVlcy5zcGxpY2UoaCwxKSxpLl9zaXplLS0saC0tLGYtLSk6Zy5oYXNPd25Qcm9wZXJ0eShcXFwidmFsdWVcXFwiKSYmKG1baF09Zy52YWx1ZSl9aWYoZy5icmVhayE9PXZvaWQgMClyZXR1cm4gZ319ZWxzZSBvKz1mLWw7cmV0dXJuIG99LG4ucHJvdG90eXBlLm1lcmdlU2libGluZz1mdW5jdGlvbihlLHQpe2lmKHRoaXMua2V5cy5wdXNoLmFwcGx5KHRoaXMua2V5cyxlLmtleXMpLHRoaXMudmFsdWVzPT09cGUpe2lmKGUudmFsdWVzPT09cGUpcmV0dXJuO3RoaXMudmFsdWVzPXRoaXMudmFsdWVzLnNsaWNlKDAsdGhpcy5rZXlzLmxlbmd0aCl9dGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcyxlLnJlaWZ5VmFsdWVzKCkpfSxufSgpLHZmPWZ1bmN0aW9uKG4pe1NmKGUsbik7ZnVuY3Rpb24gZSh0LHIpe3ZhciBzPXRoaXM7aWYoIXIpe3I9W107Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspcltpXT10W2ldLm1heEtleSgpfXJldHVybiBzPW4uY2FsbCh0aGlzLHIpfHx0aGlzLHMuY2hpbGRyZW49dCxzfXJldHVybiBlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmNoaWxkcmVuLnNsaWNlKDApLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdLmlzU2hhcmVkPSEwO3JldHVybiBuZXcgZSh0LHRoaXMua2V5cy5zbGljZSgwKSl9LGUucHJvdG90eXBlLmdyZWVkeUNsb25lPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNTaGFyZWQmJiF0KXJldHVybiB0aGlzO2Zvcih2YXIgcj1uZXcgZSh0aGlzLmNoaWxkcmVuLnNsaWNlKDApLHRoaXMua2V5cy5zbGljZSgwKSkscz0wO3M8ci5jaGlsZHJlbi5sZW5ndGg7cysrKXIuY2hpbGRyZW5bc109ci5jaGlsZHJlbltzXS5ncmVlZHlDbG9uZSh0KTtyZXR1cm4gcn0sZS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluS2V5KCl9LGUucHJvdG90eXBlLm1pblBhaXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluUGFpcih0KX0sZS5wcm90b3R5cGUubWF4UGFpcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXS5tYXhQYWlyKHQpfSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxyLHMpe3ZhciBpPXRoaXMuaW5kZXhPZih0LDAscy5fY29tcGFyZSksbz10aGlzLmNoaWxkcmVuO3JldHVybiBpPG8ubGVuZ3RoP29baV0uZ2V0KHQscixzKTp2b2lkIDB9LGUucHJvdG90eXBlLmdldFBhaXJPck5leHRMb3dlcj1mdW5jdGlvbih0LHIscyxpKXt2YXIgbz10aGlzLmluZGV4T2YodCwwLHIpLGE9dGhpcy5jaGlsZHJlbjtpZihvPj1hLmxlbmd0aClyZXR1cm4gdGhpcy5tYXhQYWlyKGkpO3ZhciB1PWFbb10uZ2V0UGFpck9yTmV4dExvd2VyKHQscixzLGkpO3JldHVybiB1PT09dm9pZCAwJiZvPjA/YVtvLTFdLm1heFBhaXIoaSk6dX0sZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbih0LHIscyxpKXt2YXIgbz10aGlzLmluZGV4T2YodCwwLHIpLGE9dGhpcy5jaGlsZHJlbix1PWEubGVuZ3RoO2lmKCEobz49dSkpe3ZhciBsPWFbb10uZ2V0UGFpck9yTmV4dEhpZ2hlcih0LHIscyxpKTtyZXR1cm4gbD09PXZvaWQgMCYmbzx1LTE/YVtvKzFdLm1pblBhaXIoaSk6bH19LGUucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24odCxyLHMpe3ZhciBpPXRoaXMua2V5cy5sZW5ndGgsbz10aGlzLmNoaWxkcmVuLmxlbmd0aDtMZShpPT09byxcXFwia2V5cy9jaGlsZHJlbiBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXFxcIix0LFxcXCJsZW5ndGhzXFxcIixpLG8sXFxcImJhc2VJbmRleFxcXCIscyksTGUoaT4xfHx0PjAsXFxcImludGVybmFsIG5vZGUgaGFzIGxlbmd0aFxcXCIsaSxcXFwiYXQgZGVwdGhcXFwiLHQsXFxcImJhc2VJbmRleFxcXCIscyk7Zm9yKHZhciBhPTAsdT10aGlzLmNoaWxkcmVuLGw9dGhpcy5rZXlzLGY9MCxkPTA7ZDxvO2QrKylhKz11W2RdLmNoZWNrVmFsaWQodCsxLHIscythKSxmKz11W2RdLmtleXMubGVuZ3RoLExlKGE+PWYsXFxcInd0ZlxcXCIscyksTGUoZD09PTB8fHVbZC0xXS5jb25zdHJ1Y3Rvcj09PXVbZF0uY29uc3RydWN0b3IsXFxcInR5cGUgbWlzbWF0Y2gsIGJhc2VJbmRleDpcXFwiLHMpLHVbZF0ubWF4S2V5KCkhPWxbZF0mJkxlKCExLFxcXCJrZXlzW1xcXCIsZCxcXFwiXSA9XFxcIixsW2RdLFxcXCJpcyB3cm9uZywgc2hvdWxkIGJlIFxcXCIsdVtkXS5tYXhLZXkoKSxcXFwiYXQgZGVwdGhcXFwiLHQsXFxcImJhc2VJbmRleFxcXCIscyksZD09PTB8fHIuX2NvbXBhcmUobFtkLTFdLGxbZF0pPDB8fExlKCExLFxcXCJzb3J0IHZpb2xhdGlvbiBhdCBkZXB0aFxcXCIsdCxcXFwiaW5kZXhcXFwiLGQsXFxcImtleXNcXFwiLGxbZC0xXSxsW2RdKTt2YXIgbT1mPT09MDtyZXR1cm4obXx8Zj5yLm1heE5vZGVTaXplKm8pJiZMZSghMSxtP1xcXCJ0b28gZmV3XFxcIjpcXFwidG9vIG1hbnlcXFwiLFxcXCJjaGlsZHJlbiAoXFxcIixmLGEsXFxcIikgYXQgZGVwdGhcXFwiLHQsXFxcIm1heE5vZGVTaXplOlxcXCIsci5tYXhOb2RlU2l6ZSxcXFwiY2hpbGRyZW4ubGVuZ3RoOlxcXCIsbyxcXFwiYmFzZUluZGV4OlxcXCIscyksYX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscixzLGkpe3ZhciBvPXRoaXMuY2hpbGRyZW4sYT1pLl9tYXhOb2RlU2l6ZSx1PWkuX2NvbXBhcmUsbD1NYXRoLm1pbih0aGlzLmluZGV4T2YodCwwLHUpLG8ubGVuZ3RoLTEpLGY9b1tsXTtpZihmLmlzU2hhcmVkJiYob1tsXT1mPWYuY2xvbmUoKSksZi5rZXlzLmxlbmd0aD49YSl7dmFyIGQ7bD4wJiYoZD1vW2wtMV0pLmtleXMubGVuZ3RoPGEmJnUoZi5rZXlzWzBdLHQpPDA/KGQuaXNTaGFyZWQmJihvW2wtMV09ZD1kLmNsb25lKCkpLGQudGFrZUZyb21SaWdodChmKSx0aGlzLmtleXNbbC0xXT1kLm1heEtleSgpKTooZD1vW2wrMV0pIT09dm9pZCAwJiZkLmtleXMubGVuZ3RoPGEmJnUoZi5tYXhLZXkoKSx0KTwwJiYoZC5pc1NoYXJlZCYmKG9bbCsxXT1kPWQuY2xvbmUoKSksZC50YWtlRnJvbUxlZnQoZiksdGhpcy5rZXlzW2xdPW9bbF0ubWF4S2V5KCkpfXZhciBtPWYuc2V0KHQscixzLGkpO2lmKG09PT0hMSlyZXR1cm4hMTtpZih0aGlzLmtleXNbbF09Zi5tYXhLZXkoKSxtPT09ITApcmV0dXJuITA7aWYodGhpcy5rZXlzLmxlbmd0aDxhKXJldHVybiB0aGlzLmluc2VydChsKzEsbSksITA7dmFyIGg9dGhpcy5zcGxpdE9mZlJpZ2h0U2lkZSgpLGI9dGhpcztyZXR1cm4gdShtLm1heEtleSgpLHRoaXMubWF4S2V5KCkpPjAmJihiPWgsbC09dGhpcy5rZXlzLmxlbmd0aCksYi5pbnNlcnQobCsxLG0pLGh9LGUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LHIpe3RoaXMuY2hpbGRyZW4uc3BsaWNlKHQsMCxyKSx0aGlzLmtleXMuc3BsaWNlKHQsMCxyLm1heEtleSgpKX0sZS5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNoaWxkcmVuLmxlbmd0aD4+MTtyZXR1cm4gbmV3IGUodGhpcy5jaGlsZHJlbi5zcGxpY2UodCksdGhpcy5rZXlzLnNwbGljZSh0KSl9LGUucHJvdG90eXBlLnRha2VGcm9tUmlnaHQ9ZnVuY3Rpb24odCl7dGhpcy5rZXlzLnB1c2godC5rZXlzLnNoaWZ0KCkpLHRoaXMuY2hpbGRyZW4ucHVzaCh0LmNoaWxkcmVuLnNoaWZ0KCkpfSxlLnByb3RvdHlwZS50YWtlRnJvbUxlZnQ9ZnVuY3Rpb24odCl7dGhpcy5rZXlzLnVuc2hpZnQodC5rZXlzLnBvcCgpKSx0aGlzLmNoaWxkcmVuLnVuc2hpZnQodC5jaGlsZHJlbi5wb3AoKSl9LGUucHJvdG90eXBlLmZvclJhbmdlPWZ1bmN0aW9uKHQscixzLGksbyxhLHUpe3ZhciBsPW8uX2NvbXBhcmUsZj10aGlzLmtleXMsZD10aGlzLmNoaWxkcmVuLG09dGhpcy5pbmRleE9mKHQsMCxsKSxoPW0sYj1NYXRoLm1pbihyPT09dD9tOnRoaXMuaW5kZXhPZihyLDAsbCksZi5sZW5ndGgtMSk7aWYoaSl7aWYoaDw9Yil0cnl7Zm9yKDtoPD1iO2grKyl7ZFtoXS5pc1NoYXJlZCYmKGRbaF09ZFtoXS5jbG9uZSgpKTt2YXIgZz1kW2hdLmZvclJhbmdlKHQscixzLGksbyxhLHUpO2lmKGZbaF09ZFtoXS5tYXhLZXkoKSx0eXBlb2YgZyE9XFxcIm51bWJlclxcXCIpcmV0dXJuIGc7YT1nfX1maW5hbGx5e3ZhciBEPW8uX21heE5vZGVTaXplPj4xO2ZvcihtPjAmJm0tLSxoPWI7aD49bTtoLS0pZFtoXS5rZXlzLmxlbmd0aDw9RCYmKGRbaF0ua2V5cy5sZW5ndGghPT0wP3RoaXMudHJ5TWVyZ2UoaCxvLl9tYXhOb2RlU2l6ZSk6KGYuc3BsaWNlKGgsMSksZC5zcGxpY2UoaCwxKSkpO2QubGVuZ3RoIT09MCYmZFswXS5rZXlzLmxlbmd0aD09PTAmJkxlKCExLFxcXCJlbXB0aW5lc3MgYnVnXFxcIil9fWVsc2UgZm9yKDtoPD1iO2grKyl7dmFyIGc9ZFtoXS5mb3JSYW5nZSh0LHIscyxpLG8sYSx1KTtpZih0eXBlb2YgZyE9XFxcIm51bWJlclxcXCIpcmV0dXJuIGc7YT1nfXJldHVybiBhfSxlLnByb3RvdHlwZS50cnlNZXJnZT1mdW5jdGlvbih0LHIpe3ZhciBzPXRoaXMuY2hpbGRyZW47cmV0dXJuIHQ+PTAmJnQrMTxzLmxlbmd0aCYmc1t0XS5rZXlzLmxlbmd0aCtzW3QrMV0ua2V5cy5sZW5ndGg8PXI/KHNbdF0uaXNTaGFyZWQmJihzW3RdPXNbdF0uY2xvbmUoKSksc1t0XS5tZXJnZVNpYmxpbmcoc1t0KzFdLHIpLHMuc3BsaWNlKHQrMSwxKSx0aGlzLmtleXMuc3BsaWNlKHQrMSwxKSx0aGlzLmtleXNbdF09c1t0XS5tYXhLZXkoKSwhMCk6ITF9LGUucHJvdG90eXBlLm1lcmdlU2libGluZz1mdW5jdGlvbih0LHIpe3ZhciBzPXRoaXMua2V5cy5sZW5ndGg7dGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLHQua2V5cyk7dmFyIGk9dC5jaGlsZHJlbjtpZih0aGlzLmNoaWxkcmVuLnB1c2guYXBwbHkodGhpcy5jaGlsZHJlbixpKSx0LmlzU2hhcmVkJiYhdGhpcy5pc1NoYXJlZClmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKylpW29dLmlzU2hhcmVkPSEwO3RoaXMudHJ5TWVyZ2Uocy0xLHIpfSxlfShQdSkscGU9W10sJHU9e2RlbGV0ZTohMH0sTXU9ZnVuY3Rpb24oKXtyZXR1cm4gJHV9LHhmPXticmVhazohMH0sZm89ZnVuY3Rpb24oKXt2YXIgbj1uZXcgUHU7cmV0dXJuIG4uaXNTaGFyZWQ9ITAsbn0oKSxfdT1bXSxNcj1bXTtmdW5jdGlvbiBMZShuKXtmb3IodmFyIGU9W10sdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0LTFdPWFyZ3VtZW50c1t0XTtpZighbil0aHJvdyBlLnVuc2hpZnQoXFxcIkIrIHRyZWVcXFwiKSxuZXcgRXJyb3IoZS5qb2luKFxcXCIgXFxcIikpfU5lLkVtcHR5QlRyZWU9ZnVuY3Rpb24oKXt2YXIgbj1uZXcgbHQ7cmV0dXJuIG4uZnJlZXplKCksbn0oKX0pO3ZhciBtdD1jbGFzcyBleHRlbmRzIEVycm9ye30sVXI9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBEYXRlVGltZTogJHtlLnRvTWVzc2FnZSgpfWApfX0sS3I9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtlLnRvTWVzc2FnZSgpfWApfX0sV3I9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBEdXJhdGlvbjogJHtlLnRvTWVzc2FnZSgpfWApfX0scHQ9Y2xhc3MgZXh0ZW5kcyBtdHt9LHNuPWNsYXNzIGV4dGVuZHMgbXR7Y29uc3RydWN0b3IoZSl7c3VwZXIoYEludmFsaWQgdW5pdCAke2V9YCl9fSxmZT1jbGFzcyBleHRlbmRzIG10e30samU9Y2xhc3MgZXh0ZW5kcyBtdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKFxcXCJab25lIGlzIGFuIGFic3RyYWN0IGNsYXNzXFxcIil9fTt2YXIgXz1cXFwibnVtZXJpY1xcXCIscWU9XFxcInNob3J0XFxcIix4ZT1cXFwibG9uZ1xcXCIsb249e3llYXI6Xyxtb250aDpfLGRheTpffSwkbj17eWVhcjpfLG1vbnRoOnFlLGRheTpffSxHcz17eWVhcjpfLG1vbnRoOnFlLGRheTpfLHdlZWtkYXk6cWV9LFJuPXt5ZWFyOl8sbW9udGg6eGUsZGF5Ol99LGpuPXt5ZWFyOl8sbW9udGg6eGUsZGF5Ol8sd2Vla2RheTp4ZX0scW49e2hvdXI6XyxtaW51dGU6X30sVm49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6X30sVW49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyx0aW1lWm9uZU5hbWU6cWV9LEtuPXtob3VyOl8sbWludXRlOl8sc2Vjb25kOl8sdGltZVpvbmVOYW1lOnhlfSxXbj17aG91cjpfLG1pbnV0ZTpfLGhvdXJDeWNsZTpcXFwiaDIzXFxcIn0sSG49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyxob3VyQ3ljbGU6XFxcImgyM1xcXCJ9LEpuPXtob3VyOl8sbWludXRlOl8sc2Vjb25kOl8saG91ckN5Y2xlOlxcXCJoMjNcXFwiLHRpbWVab25lTmFtZTpxZX0sem49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyxob3VyQ3ljbGU6XFxcImgyM1xcXCIsdGltZVpvbmVOYW1lOnhlfSxZbj17eWVhcjpfLG1vbnRoOl8sZGF5Ol8saG91cjpfLG1pbnV0ZTpffSxHbj17eWVhcjpfLG1vbnRoOl8sZGF5Ol8saG91cjpfLG1pbnV0ZTpfLHNlY29uZDpffSxabj17eWVhcjpfLG1vbnRoOnFlLGRheTpfLGhvdXI6XyxtaW51dGU6X30sUW49e3llYXI6Xyxtb250aDpxZSxkYXk6Xyxob3VyOl8sbWludXRlOl8sc2Vjb25kOl99LFpzPXt5ZWFyOl8sbW9udGg6cWUsZGF5Ol8sd2Vla2RheTpxZSxob3VyOl8sbWludXRlOl99LFhuPXt5ZWFyOl8sbW9udGg6eGUsZGF5Ol8saG91cjpfLG1pbnV0ZTpfLHRpbWVab25lTmFtZTpxZX0sZXI9e3llYXI6Xyxtb250aDp4ZSxkYXk6Xyxob3VyOl8sbWludXRlOl8sc2Vjb25kOl8sdGltZVpvbmVOYW1lOnFlfSx0cj17eWVhcjpfLG1vbnRoOnhlLGRheTpfLHdlZWtkYXk6eGUsaG91cjpfLG1pbnV0ZTpfLHRpbWVab25lTmFtZTp4ZX0sbnI9e3llYXI6Xyxtb250aDp4ZSxkYXk6Xyx3ZWVrZGF5OnhlLGhvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyx0aW1lWm9uZU5hbWU6eGV9O2Z1bmN0aW9uIFcobil7cmV0dXJuIHR5cGVvZiBuPT1cXFwidW5kZWZpbmVkXFxcIn1mdW5jdGlvbiB0dChuKXtyZXR1cm4gdHlwZW9mIG49PVxcXCJudW1iZXJcXFwifWZ1bmN0aW9uIHJyKG4pe3JldHVybiB0eXBlb2Ygbj09XFxcIm51bWJlclxcXCImJm4lMT09PTB9ZnVuY3Rpb24gQm8obil7cmV0dXJuIHR5cGVvZiBuPT1cXFwic3RyaW5nXFxcIn1mdW5jdGlvbiBQbyhuKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pPT09XFxcIltvYmplY3QgRGF0ZV1cXFwifWZ1bmN0aW9uIEhyKCl7dHJ5e3JldHVybiB0eXBlb2YgSW50bCE9XFxcInVuZGVmaW5lZFxcXCImJiEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXR9Y2F0Y2gobil7cmV0dXJuITF9fWZ1bmN0aW9uICRvKG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pP246W25dfWZ1bmN0aW9uIFhzKG4sZSx0KXtpZihuLmxlbmd0aCE9PTApcmV0dXJuIG4ucmVkdWNlKChyLHMpPT57bGV0IGk9W2Uocyksc107cmV0dXJuIHImJnQoclswXSxpWzBdKT09PXJbMF0/cjppfSxudWxsKVsxXX1mdW5jdGlvbiBSbyhuLGUpe3JldHVybiBlLnJlZHVjZSgodCxyKT0+KHRbcl09bltyXSx0KSx7fSl9ZnVuY3Rpb24ga3QobixlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sZSl9ZnVuY3Rpb24gbnQobixlLHQpe3JldHVybiBycihuKSYmbj49ZSYmbjw9dH1mdW5jdGlvbiBibChuLGUpe3JldHVybiBuLWUqTWF0aC5mbG9vcihuL2UpfWZ1bmN0aW9uIHJlKG4sZT0yKXtsZXQgdD1uPDAscjtyZXR1cm4gdD9yPVxcXCItXFxcIisoXFxcIlxcXCIrLW4pLnBhZFN0YXJ0KGUsXFxcIjBcXFwiKTpyPShcXFwiXFxcIituKS5wYWRTdGFydChlLFxcXCIwXFxcIikscn1mdW5jdGlvbiBEdChuKXtpZighKFcobil8fG49PT1udWxsfHxuPT09XFxcIlxcXCIpKXJldHVybiBwYXJzZUludChuLDEwKX1mdW5jdGlvbiBDdChuKXtpZighKFcobil8fG49PT1udWxsfHxuPT09XFxcIlxcXCIpKXJldHVybiBwYXJzZUZsb2F0KG4pfWZ1bmN0aW9uIHNyKG4pe2lmKCEoVyhuKXx8bj09PW51bGx8fG49PT1cXFwiXFxcIikpe2xldCBlPXBhcnNlRmxvYXQoXFxcIjAuXFxcIituKSoxZTM7cmV0dXJuIE1hdGguZmxvb3IoZSl9fWZ1bmN0aW9uIGFuKG4sZSx0PSExKXtsZXQgcj0xMCoqZTtyZXR1cm4odD9NYXRoLnRydW5jOk1hdGgucm91bmQpKG4qcikvcn1mdW5jdGlvbiBqdChuKXtyZXR1cm4gbiU0PT09MCYmKG4lMTAwIT09MHx8biU0MDA9PT0wKX1mdW5jdGlvbiBxdChuKXtyZXR1cm4ganQobik/MzY2OjM2NX1mdW5jdGlvbiB1bihuLGUpe2xldCB0PWJsKGUtMSwxMikrMSxyPW4rKGUtdCkvMTI7cmV0dXJuIHQ9PT0yP2p0KHIpPzI5OjI4OlszMSxudWxsLDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXVt0LTFdfWZ1bmN0aW9uIGlyKG4pe2xldCBlPURhdGUuVVRDKG4ueWVhcixuLm1vbnRoLTEsbi5kYXksbi5ob3VyLG4ubWludXRlLG4uc2Vjb25kLG4ubWlsbGlzZWNvbmQpO3JldHVybiBuLnllYXI8MTAwJiZuLnllYXI+PTAmJihlPW5ldyBEYXRlKGUpLGUuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpLTE5MDApKSwrZX1mdW5jdGlvbiBsbihuKXtsZXQgZT0obitNYXRoLmZsb29yKG4vNCktTWF0aC5mbG9vcihuLzEwMCkrTWF0aC5mbG9vcihuLzQwMCkpJTcsdD1uLTEscj0odCtNYXRoLmZsb29yKHQvNCktTWF0aC5mbG9vcih0LzEwMCkrTWF0aC5mbG9vcih0LzQwMCkpJTc7cmV0dXJuIGU9PT00fHxyPT09Mz81Mzo1Mn1mdW5jdGlvbiBvcihuKXtyZXR1cm4gbj45OT9uOm4+NjA/MTkwMCtuOjJlMytufWZ1bmN0aW9uIEpyKG4sZSx0LHI9bnVsbCl7bGV0IHM9bmV3IERhdGUobiksaT17aG91ckN5Y2xlOlxcXCJoMjNcXFwiLHllYXI6XFxcIm51bWVyaWNcXFwiLG1vbnRoOlxcXCIyLWRpZ2l0XFxcIixkYXk6XFxcIjItZGlnaXRcXFwiLGhvdXI6XFxcIjItZGlnaXRcXFwiLG1pbnV0ZTpcXFwiMi1kaWdpdFxcXCJ9O3ImJihpLnRpbWVab25lPXIpO2xldCBvPVIoe3RpbWVab25lTmFtZTplfSxpKSxhPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHQsbykuZm9ybWF0VG9QYXJ0cyhzKS5maW5kKHU9PnUudHlwZS50b0xvd2VyQ2FzZSgpPT09XFxcInRpbWV6b25lbmFtZVxcXCIpO3JldHVybiBhP2EudmFsdWU6bnVsbH1mdW5jdGlvbiBWdChuLGUpe2xldCB0PXBhcnNlSW50KG4sMTApO051bWJlci5pc05hTih0KSYmKHQ9MCk7bGV0IHI9cGFyc2VJbnQoZSwxMCl8fDAscz10PDB8fE9iamVjdC5pcyh0LC0wKT8tcjpyO3JldHVybiB0KjYwK3N9ZnVuY3Rpb24gZWkobil7bGV0IGU9TnVtYmVyKG4pO2lmKHR5cGVvZiBuPT1cXFwiYm9vbGVhblxcXCJ8fG49PT1cXFwiXFxcInx8TnVtYmVyLmlzTmFOKGUpKXRocm93IG5ldyBmZShgSW52YWxpZCB1bml0IHZhbHVlICR7bn1gKTtyZXR1cm4gZX1mdW5jdGlvbiBjbihuLGUpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBuKWlmKGt0KG4scikpe2xldCBzPW5bcl07aWYocz09bnVsbCljb250aW51ZTt0W2UocildPWVpKHMpfXJldHVybiB0fWZ1bmN0aW9uIHZ0KG4sZSl7bGV0IHQ9TWF0aC50cnVuYyhNYXRoLmFicyhuLzYwKSkscj1NYXRoLnRydW5jKE1hdGguYWJzKG4lNjApKSxzPW4+PTA/XFxcIitcXFwiOlxcXCItXFxcIjtzd2l0Y2goZSl7Y2FzZVxcXCJzaG9ydFxcXCI6cmV0dXJuYCR7c30ke3JlKHQsMil9OiR7cmUociwyKX1gO2Nhc2VcXFwibmFycm93XFxcIjpyZXR1cm5gJHtzfSR7dH0ke3I+MD9gOiR7cn1gOlxcXCJcXFwifWA7Y2FzZVxcXCJ0ZWNoaWVcXFwiOnJldHVybmAke3N9JHtyZSh0LDIpfSR7cmUociwyKX1gO2RlZmF1bHQ6dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFZhbHVlIGZvcm1hdCAke2V9IGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0YCl9fWZ1bmN0aW9uIGFyKG4pe3JldHVybiBSbyhuLFtcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0pfXZhciB0aT0vW0EtWmEtel8rLV17MSwyNTZ9KD86Oj9cXFxcL1tBLVphLXowLTlfKy1dezEsMjU2fSg/OlxcXFwvW0EtWmEtejAtOV8rLV17MSwyNTZ9KT8pPy87dmFyIEZsPVtcXFwiSmFudWFyeVxcXCIsXFxcIkZlYnJ1YXJ5XFxcIixcXFwiTWFyY2hcXFwiLFxcXCJBcHJpbFxcXCIsXFxcIk1heVxcXCIsXFxcIkp1bmVcXFwiLFxcXCJKdWx5XFxcIixcXFwiQXVndXN0XFxcIixcXFwiU2VwdGVtYmVyXFxcIixcXFwiT2N0b2JlclxcXCIsXFxcIk5vdmVtYmVyXFxcIixcXFwiRGVjZW1iZXJcXFwiXSxuaT1bXFxcIkphblxcXCIsXFxcIkZlYlxcXCIsXFxcIk1hclxcXCIsXFxcIkFwclxcXCIsXFxcIk1heVxcXCIsXFxcIkp1blxcXCIsXFxcIkp1bFxcXCIsXFxcIkF1Z1xcXCIsXFxcIlNlcFxcXCIsXFxcIk9jdFxcXCIsXFxcIk5vdlxcXCIsXFxcIkRlY1xcXCJdLEVsPVtcXFwiSlxcXCIsXFxcIkZcXFwiLFxcXCJNXFxcIixcXFwiQVxcXCIsXFxcIk1cXFwiLFxcXCJKXFxcIixcXFwiSlxcXCIsXFxcIkFcXFwiLFxcXCJTXFxcIixcXFwiT1xcXCIsXFxcIk5cXFwiLFxcXCJEXFxcIl07ZnVuY3Rpb24gcmkobil7c3dpdGNoKG4pe2Nhc2VcXFwibmFycm93XFxcIjpyZXR1cm5bLi4uRWxdO2Nhc2VcXFwic2hvcnRcXFwiOnJldHVyblsuLi5uaV07Y2FzZVxcXCJsb25nXFxcIjpyZXR1cm5bLi4uRmxdO2Nhc2VcXFwibnVtZXJpY1xcXCI6cmV0dXJuW1xcXCIxXFxcIixcXFwiMlxcXCIsXFxcIjNcXFwiLFxcXCI0XFxcIixcXFwiNVxcXCIsXFxcIjZcXFwiLFxcXCI3XFxcIixcXFwiOFxcXCIsXFxcIjlcXFwiLFxcXCIxMFxcXCIsXFxcIjExXFxcIixcXFwiMTJcXFwiXTtjYXNlXFxcIjItZGlnaXRcXFwiOnJldHVybltcXFwiMDFcXFwiLFxcXCIwMlxcXCIsXFxcIjAzXFxcIixcXFwiMDRcXFwiLFxcXCIwNVxcXCIsXFxcIjA2XFxcIixcXFwiMDdcXFwiLFxcXCIwOFxcXCIsXFxcIjA5XFxcIixcXFwiMTBcXFwiLFxcXCIxMVxcXCIsXFxcIjEyXFxcIl07ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIHNpPVtcXFwiTW9uZGF5XFxcIixcXFwiVHVlc2RheVxcXCIsXFxcIldlZG5lc2RheVxcXCIsXFxcIlRodXJzZGF5XFxcIixcXFwiRnJpZGF5XFxcIixcXFwiU2F0dXJkYXlcXFwiLFxcXCJTdW5kYXlcXFwiXSxpaT1bXFxcIk1vblxcXCIsXFxcIlR1ZVxcXCIsXFxcIldlZFxcXCIsXFxcIlRodVxcXCIsXFxcIkZyaVxcXCIsXFxcIlNhdFxcXCIsXFxcIlN1blxcXCJdLHdsPVtcXFwiTVxcXCIsXFxcIlRcXFwiLFxcXCJXXFxcIixcXFwiVFxcXCIsXFxcIkZcXFwiLFxcXCJTXFxcIixcXFwiU1xcXCJdO2Z1bmN0aW9uIG9pKG4pe3N3aXRjaChuKXtjYXNlXFxcIm5hcnJvd1xcXCI6cmV0dXJuWy4uLndsXTtjYXNlXFxcInNob3J0XFxcIjpyZXR1cm5bLi4uaWldO2Nhc2VcXFwibG9uZ1xcXCI6cmV0dXJuWy4uLnNpXTtjYXNlXFxcIm51bWVyaWNcXFwiOnJldHVybltcXFwiMVxcXCIsXFxcIjJcXFwiLFxcXCIzXFxcIixcXFwiNFxcXCIsXFxcIjVcXFwiLFxcXCI2XFxcIixcXFwiN1xcXCJdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBhaT1bXFxcIkFNXFxcIixcXFwiUE1cXFwiXSxUbD1bXFxcIkJlZm9yZSBDaHJpc3RcXFwiLFxcXCJBbm5vIERvbWluaVxcXCJdLFNsPVtcXFwiQkNcXFwiLFxcXCJBRFxcXCJdLGtsPVtcXFwiQlxcXCIsXFxcIkFcXFwiXTtmdW5jdGlvbiB1aShuKXtzd2l0Y2gobil7Y2FzZVxcXCJuYXJyb3dcXFwiOnJldHVyblsuLi5rbF07Y2FzZVxcXCJzaG9ydFxcXCI6cmV0dXJuWy4uLlNsXTtjYXNlXFxcImxvbmdcXFwiOnJldHVyblsuLi5UbF07ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gam8obil7cmV0dXJuIGFpW24uaG91cjwxMj8wOjFdfWZ1bmN0aW9uIHFvKG4sZSl7cmV0dXJuIG9pKGUpW24ud2Vla2RheS0xXX1mdW5jdGlvbiBWbyhuLGUpe3JldHVybiByaShlKVtuLm1vbnRoLTFdfWZ1bmN0aW9uIFVvKG4sZSl7cmV0dXJuIHVpKGUpW24ueWVhcjwwPzA6MV19ZnVuY3Rpb24gS28obixlLHQ9XFxcImFsd2F5c1xcXCIscj0hMSl7bGV0IHM9e3llYXJzOltcXFwieWVhclxcXCIsXFxcInlyLlxcXCJdLHF1YXJ0ZXJzOltcXFwicXVhcnRlclxcXCIsXFxcInF0ci5cXFwiXSxtb250aHM6W1xcXCJtb250aFxcXCIsXFxcIm1vLlxcXCJdLHdlZWtzOltcXFwid2Vla1xcXCIsXFxcIndrLlxcXCJdLGRheXM6W1xcXCJkYXlcXFwiLFxcXCJkYXlcXFwiLFxcXCJkYXlzXFxcIl0saG91cnM6W1xcXCJob3VyXFxcIixcXFwiaHIuXFxcIl0sbWludXRlczpbXFxcIm1pbnV0ZVxcXCIsXFxcIm1pbi5cXFwiXSxzZWNvbmRzOltcXFwic2Vjb25kXFxcIixcXFwic2VjLlxcXCJdfSxpPVtcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCJdLmluZGV4T2Yobik9PT0tMTtpZih0PT09XFxcImF1dG9cXFwiJiZpKXtsZXQgZD1uPT09XFxcImRheXNcXFwiO3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGQ/XFxcInRvbW9ycm93XFxcIjpgbmV4dCAke3Nbbl1bMF19YDtjYXNlLTE6cmV0dXJuIGQ/XFxcInllc3RlcmRheVxcXCI6YGxhc3QgJHtzW25dWzBdfWA7Y2FzZSAwOnJldHVybiBkP1xcXCJ0b2RheVxcXCI6YHRoaXMgJHtzW25dWzBdfWA7ZGVmYXVsdDp9fWxldCBvPU9iamVjdC5pcyhlLC0wKXx8ZTwwLGE9TWF0aC5hYnMoZSksdT1hPT09MSxsPXNbbl0sZj1yP3U/bFsxXTpsWzJdfHxsWzFdOnU/c1tuXVswXTpuO3JldHVybiBvP2Ake2F9ICR7Zn0gYWdvYDpgaW4gJHthfSAke2Z9YH1mdW5jdGlvbiBXbyhuLGUpe2xldCB0PVxcXCJcXFwiO2ZvcihsZXQgciBvZiBuKXIubGl0ZXJhbD90Kz1yLnZhbDp0Kz1lKHIudmFsKTtyZXR1cm4gdH12YXIgQ2w9e0Q6b24sREQ6JG4sREREOlJuLEREREQ6am4sdDpxbix0dDpWbix0dHQ6VW4sdHR0dDpLbixUOlduLFRUOkhuLFRUVDpKbixUVFRUOnpuLGY6WW4sZmY6Wm4sZmZmOlhuLGZmZmY6dHIsRjpHbixGRjpRbixGRkY6ZXIsRkZGRjpucn0sd2U9Y2xhc3MgbntzdGF0aWMgY3JlYXRlKGUsdD17fSl7cmV0dXJuIG5ldyBuKGUsdCl9c3RhdGljIHBhcnNlRm9ybWF0KGUpe2xldCB0PW51bGwscj1cXFwiXFxcIixzPSExLGk9W107Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2xldCBhPWUuY2hhckF0KG8pO2E9PT1cXFwiJ1xcXCI/KHIubGVuZ3RoPjAmJmkucHVzaCh7bGl0ZXJhbDpzLHZhbDpyfSksdD1udWxsLHI9XFxcIlxcXCIscz0hcyk6c3x8YT09PXQ/cis9YTooci5sZW5ndGg+MCYmaS5wdXNoKHtsaXRlcmFsOiExLHZhbDpyfSkscj1hLHQ9YSl9cmV0dXJuIHIubGVuZ3RoPjAmJmkucHVzaCh7bGl0ZXJhbDpzLHZhbDpyfSksaX1zdGF0aWMgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyhlKXtyZXR1cm4gQ2xbZV19Y29uc3RydWN0b3IoZSx0KXt0aGlzLm9wdHM9dCx0aGlzLmxvYz1lLHRoaXMuc3lzdGVtTG9jPW51bGx9Zm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZSx0KXtyZXR1cm4gdGhpcy5zeXN0ZW1Mb2M9PT1udWxsJiYodGhpcy5zeXN0ZW1Mb2M9dGhpcy5sb2MucmVkZWZhdWx0VG9TeXN0ZW0oKSksdGhpcy5zeXN0ZW1Mb2MuZHRGb3JtYXR0ZXIoZSxSKFIoe30sdGhpcy5vcHRzKSx0KSkuZm9ybWF0KCl9Zm9ybWF0RGF0ZVRpbWUoZSx0PXt9KXtyZXR1cm4gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZSxSKFIoe30sdGhpcy5vcHRzKSx0KSkuZm9ybWF0KCl9Zm9ybWF0RGF0ZVRpbWVQYXJ0cyhlLHQ9e30pe3JldHVybiB0aGlzLmxvYy5kdEZvcm1hdHRlcihlLFIoUih7fSx0aGlzLm9wdHMpLHQpKS5mb3JtYXRUb1BhcnRzKCl9cmVzb2x2ZWRPcHRpb25zKGUsdD17fSl7cmV0dXJuIHRoaXMubG9jLmR0Rm9ybWF0dGVyKGUsUihSKHt9LHRoaXMub3B0cyksdCkpLnJlc29sdmVkT3B0aW9ucygpfW51bShlLHQ9MCl7aWYodGhpcy5vcHRzLmZvcmNlU2ltcGxlKXJldHVybiByZShlLHQpO2xldCByPVIoe30sdGhpcy5vcHRzKTtyZXR1cm4gdD4wJiYoci5wYWRUbz10KSx0aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIocikuZm9ybWF0KGUpfWZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhlLHQpe2xldCByPXRoaXMubG9jLmxpc3RpbmdNb2RlKCk9PT1cXFwiZW5cXFwiLHM9dGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXImJnRoaXMubG9jLm91dHB1dENhbGVuZGFyIT09XFxcImdyZWdvcnlcXFwiLGk9KGgsYik9PnRoaXMubG9jLmV4dHJhY3QoZSxoLGIpLG89aD0+ZS5pc09mZnNldEZpeGVkJiZlLm9mZnNldD09PTAmJmguYWxsb3daP1xcXCJaXFxcIjplLmlzVmFsaWQ/ZS56b25lLmZvcm1hdE9mZnNldChlLnRzLGguZm9ybWF0KTpcXFwiXFxcIixhPSgpPT5yP2pvKGUpOmkoe2hvdXI6XFxcIm51bWVyaWNcXFwiLGhvdXJDeWNsZTpcXFwiaDEyXFxcIn0sXFxcImRheXBlcmlvZFxcXCIpLHU9KGgsYik9PnI/Vm8oZSxoKTppKGI/e21vbnRoOmh9Onttb250aDpoLGRheTpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpLGw9KGgsYik9PnI/cW8oZSxoKTppKGI/e3dlZWtkYXk6aH06e3dlZWtkYXk6aCxtb250aDpcXFwibG9uZ1xcXCIsZGF5OlxcXCJudW1lcmljXFxcIn0sXFxcIndlZWtkYXlcXFwiKSxmPWg9PntsZXQgYj1uLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHMoaCk7cmV0dXJuIGI/dGhpcy5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChlLGIpOmh9LGQ9aD0+cj9VbyhlLGgpOmkoe2VyYTpofSxcXFwiZXJhXFxcIiksbT1oPT57c3dpdGNoKGgpe2Nhc2VcXFwiU1xcXCI6cmV0dXJuIHRoaXMubnVtKGUubWlsbGlzZWNvbmQpO2Nhc2VcXFwidVxcXCI6Y2FzZVxcXCJTU1NcXFwiOnJldHVybiB0aGlzLm51bShlLm1pbGxpc2Vjb25kLDMpO2Nhc2VcXFwic1xcXCI6cmV0dXJuIHRoaXMubnVtKGUuc2Vjb25kKTtjYXNlXFxcInNzXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5zZWNvbmQsMik7Y2FzZVxcXCJ1dVxcXCI6cmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZS5taWxsaXNlY29uZC8xMCksMik7Y2FzZVxcXCJ1dXVcXFwiOnJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGUubWlsbGlzZWNvbmQvMTAwKSk7Y2FzZVxcXCJtXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5taW51dGUpO2Nhc2VcXFwibW1cXFwiOnJldHVybiB0aGlzLm51bShlLm1pbnV0ZSwyKTtjYXNlXFxcImhcXFwiOnJldHVybiB0aGlzLm51bShlLmhvdXIlMTI9PT0wPzEyOmUuaG91ciUxMik7Y2FzZVxcXCJoaFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91ciUxMj09PTA/MTI6ZS5ob3VyJTEyLDIpO2Nhc2VcXFwiSFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91cik7Y2FzZVxcXCJISFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91ciwyKTtjYXNlXFxcIlpcXFwiOnJldHVybiBvKHtmb3JtYXQ6XFxcIm5hcnJvd1xcXCIsYWxsb3daOnRoaXMub3B0cy5hbGxvd1p9KTtjYXNlXFxcIlpaXFxcIjpyZXR1cm4gbyh7Zm9ybWF0OlxcXCJzaG9ydFxcXCIsYWxsb3daOnRoaXMub3B0cy5hbGxvd1p9KTtjYXNlXFxcIlpaWlxcXCI6cmV0dXJuIG8oe2Zvcm1hdDpcXFwidGVjaGllXFxcIixhbGxvd1o6dGhpcy5vcHRzLmFsbG93Wn0pO2Nhc2VcXFwiWlpaWlxcXCI6cmV0dXJuIGUuem9uZS5vZmZzZXROYW1lKGUudHMse2Zvcm1hdDpcXFwic2hvcnRcXFwiLGxvY2FsZTp0aGlzLmxvYy5sb2NhbGV9KTtjYXNlXFxcIlpaWlpaXFxcIjpyZXR1cm4gZS56b25lLm9mZnNldE5hbWUoZS50cyx7Zm9ybWF0OlxcXCJsb25nXFxcIixsb2NhbGU6dGhpcy5sb2MubG9jYWxlfSk7Y2FzZVxcXCJ6XFxcIjpyZXR1cm4gZS56b25lTmFtZTtjYXNlXFxcImFcXFwiOnJldHVybiBhKCk7Y2FzZVxcXCJkXFxcIjpyZXR1cm4gcz9pKHtkYXk6XFxcIm51bWVyaWNcXFwifSxcXFwiZGF5XFxcIik6dGhpcy5udW0oZS5kYXkpO2Nhc2VcXFwiZGRcXFwiOnJldHVybiBzP2koe2RheTpcXFwiMi1kaWdpdFxcXCJ9LFxcXCJkYXlcXFwiKTp0aGlzLm51bShlLmRheSwyKTtjYXNlXFxcImNcXFwiOnJldHVybiB0aGlzLm51bShlLndlZWtkYXkpO2Nhc2VcXFwiY2NjXFxcIjpyZXR1cm4gbChcXFwic2hvcnRcXFwiLCEwKTtjYXNlXFxcImNjY2NcXFwiOnJldHVybiBsKFxcXCJsb25nXFxcIiwhMCk7Y2FzZVxcXCJjY2NjY1xcXCI6cmV0dXJuIGwoXFxcIm5hcnJvd1xcXCIsITApO2Nhc2VcXFwiRVxcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla2RheSk7Y2FzZVxcXCJFRUVcXFwiOnJldHVybiBsKFxcXCJzaG9ydFxcXCIsITEpO2Nhc2VcXFwiRUVFRVxcXCI6cmV0dXJuIGwoXFxcImxvbmdcXFwiLCExKTtjYXNlXFxcIkVFRUVFXFxcIjpyZXR1cm4gbChcXFwibmFycm93XFxcIiwhMSk7Y2FzZVxcXCJMXFxcIjpyZXR1cm4gcz9pKHttb250aDpcXFwibnVtZXJpY1xcXCIsZGF5OlxcXCJudW1lcmljXFxcIn0sXFxcIm1vbnRoXFxcIik6dGhpcy5udW0oZS5tb250aCk7Y2FzZVxcXCJMTFxcXCI6cmV0dXJuIHM/aSh7bW9udGg6XFxcIjItZGlnaXRcXFwiLGRheTpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpOnRoaXMubnVtKGUubW9udGgsMik7Y2FzZVxcXCJMTExcXFwiOnJldHVybiB1KFxcXCJzaG9ydFxcXCIsITApO2Nhc2VcXFwiTExMTFxcXCI6cmV0dXJuIHUoXFxcImxvbmdcXFwiLCEwKTtjYXNlXFxcIkxMTExMXFxcIjpyZXR1cm4gdShcXFwibmFycm93XFxcIiwhMCk7Y2FzZVxcXCJNXFxcIjpyZXR1cm4gcz9pKHttb250aDpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpOnRoaXMubnVtKGUubW9udGgpO2Nhc2VcXFwiTU1cXFwiOnJldHVybiBzP2koe21vbnRoOlxcXCIyLWRpZ2l0XFxcIn0sXFxcIm1vbnRoXFxcIik6dGhpcy5udW0oZS5tb250aCwyKTtjYXNlXFxcIk1NTVxcXCI6cmV0dXJuIHUoXFxcInNob3J0XFxcIiwhMSk7Y2FzZVxcXCJNTU1NXFxcIjpyZXR1cm4gdShcXFwibG9uZ1xcXCIsITEpO2Nhc2VcXFwiTU1NTU1cXFwiOnJldHVybiB1KFxcXCJuYXJyb3dcXFwiLCExKTtjYXNlXFxcInlcXFwiOnJldHVybiBzP2koe3llYXI6XFxcIm51bWVyaWNcXFwifSxcXFwieWVhclxcXCIpOnRoaXMubnVtKGUueWVhcik7Y2FzZVxcXCJ5eVxcXCI6cmV0dXJuIHM/aSh7eWVhcjpcXFwiMi1kaWdpdFxcXCJ9LFxcXCJ5ZWFyXFxcIik6dGhpcy5udW0oZS55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLDIpO2Nhc2VcXFwieXl5eVxcXCI6cmV0dXJuIHM/aSh7eWVhcjpcXFwibnVtZXJpY1xcXCJ9LFxcXCJ5ZWFyXFxcIik6dGhpcy5udW0oZS55ZWFyLDQpO2Nhc2VcXFwieXl5eXl5XFxcIjpyZXR1cm4gcz9pKHt5ZWFyOlxcXCJudW1lcmljXFxcIn0sXFxcInllYXJcXFwiKTp0aGlzLm51bShlLnllYXIsNik7Y2FzZVxcXCJHXFxcIjpyZXR1cm4gZChcXFwic2hvcnRcXFwiKTtjYXNlXFxcIkdHXFxcIjpyZXR1cm4gZChcXFwibG9uZ1xcXCIpO2Nhc2VcXFwiR0dHR0dcXFwiOnJldHVybiBkKFxcXCJuYXJyb3dcXFwiKTtjYXNlXFxcImtrXFxcIjpyZXR1cm4gdGhpcy5udW0oZS53ZWVrWWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwyKTtjYXNlXFxcImtra2tcXFwiOnJldHVybiB0aGlzLm51bShlLndlZWtZZWFyLDQpO2Nhc2VcXFwiV1xcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla051bWJlcik7Y2FzZVxcXCJXV1xcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla051bWJlciwyKTtjYXNlXFxcIm9cXFwiOnJldHVybiB0aGlzLm51bShlLm9yZGluYWwpO2Nhc2VcXFwib29vXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5vcmRpbmFsLDMpO2Nhc2VcXFwicVxcXCI6cmV0dXJuIHRoaXMubnVtKGUucXVhcnRlcik7Y2FzZVxcXCJxcVxcXCI6cmV0dXJuIHRoaXMubnVtKGUucXVhcnRlciwyKTtjYXNlXFxcIlhcXFwiOnJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGUudHMvMWUzKSk7Y2FzZVxcXCJ4XFxcIjpyZXR1cm4gdGhpcy5udW0oZS50cyk7ZGVmYXVsdDpyZXR1cm4gZihoKX19O3JldHVybiBXbyhuLnBhcnNlRm9ybWF0KHQpLG0pfWZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhlLHQpe2xldCByPXU9Pntzd2l0Y2godVswXSl7Y2FzZVxcXCJTXFxcIjpyZXR1cm5cXFwibWlsbGlzZWNvbmRcXFwiO2Nhc2VcXFwic1xcXCI6cmV0dXJuXFxcInNlY29uZFxcXCI7Y2FzZVxcXCJtXFxcIjpyZXR1cm5cXFwibWludXRlXFxcIjtjYXNlXFxcImhcXFwiOnJldHVyblxcXCJob3VyXFxcIjtjYXNlXFxcImRcXFwiOnJldHVyblxcXCJkYXlcXFwiO2Nhc2VcXFwid1xcXCI6cmV0dXJuXFxcIndlZWtcXFwiO2Nhc2VcXFwiTVxcXCI6cmV0dXJuXFxcIm1vbnRoXFxcIjtjYXNlXFxcInlcXFwiOnJldHVyblxcXCJ5ZWFyXFxcIjtkZWZhdWx0OnJldHVybiBudWxsfX0scz11PT5sPT57bGV0IGY9cihsKTtyZXR1cm4gZj90aGlzLm51bSh1LmdldChmKSxsLmxlbmd0aCk6bH0saT1uLnBhcnNlRm9ybWF0KHQpLG89aS5yZWR1Y2UoKHUse2xpdGVyYWw6bCx2YWw6Zn0pPT5sP3U6dS5jb25jYXQoZiksW10pLGE9ZS5zaGlmdFRvKC4uLm8ubWFwKHIpLmZpbHRlcih1PT51KSk7cmV0dXJuIFdvKGkscyhhKSl9fTt2YXIgZGU9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnJlYXNvbj1lLHRoaXMuZXhwbGFuYXRpb249dH10b01lc3NhZ2UoKXtyZXR1cm4gdGhpcy5leHBsYW5hdGlvbj9gJHt0aGlzLnJlYXNvbn06ICR7dGhpcy5leHBsYW5hdGlvbn1gOnRoaXMucmVhc29ufX07dmFyIGtlPWNsYXNze2dldCB0eXBlKCl7dGhyb3cgbmV3IGplfWdldCBuYW1lKCl7dGhyb3cgbmV3IGplfWdldCBpYW5hTmFtZSgpe3JldHVybiB0aGlzLm5hbWV9Z2V0IGlzVW5pdmVyc2FsKCl7dGhyb3cgbmV3IGplfW9mZnNldE5hbWUoZSx0KXt0aHJvdyBuZXcgamV9Zm9ybWF0T2Zmc2V0KGUsdCl7dGhyb3cgbmV3IGplfW9mZnNldChlKXt0aHJvdyBuZXcgamV9ZXF1YWxzKGUpe3Rocm93IG5ldyBqZX1nZXQgaXNWYWxpZCgpe3Rocm93IG5ldyBqZX19O3ZhciBjaT1udWxsLGZuPWNsYXNzIG4gZXh0ZW5kcyBrZXtzdGF0aWMgZ2V0IGluc3RhbmNlKCl7cmV0dXJuIGNpPT09bnVsbCYmKGNpPW5ldyBuKSxjaX1nZXQgdHlwZSgpe3JldHVyblxcXCJzeXN0ZW1cXFwifWdldCBuYW1lKCl7cmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmV9Z2V0IGlzVW5pdmVyc2FsKCl7cmV0dXJuITF9b2Zmc2V0TmFtZShlLHtmb3JtYXQ6dCxsb2NhbGU6cn0pe3JldHVybiBKcihlLHQscil9Zm9ybWF0T2Zmc2V0KGUsdCl7cmV0dXJuIHZ0KHRoaXMub2Zmc2V0KGUpLHQpfW9mZnNldChlKXtyZXR1cm4tbmV3IERhdGUoZSkuZ2V0VGltZXpvbmVPZmZzZXQoKX1lcXVhbHMoZSl7cmV0dXJuIGUudHlwZT09PVxcXCJzeXN0ZW1cXFwifWdldCBpc1ZhbGlkKCl7cmV0dXJuITB9fTt2YXIgWXI9e307ZnVuY3Rpb24gdmwobil7cmV0dXJuIFlyW25dfHwoWXJbbl09bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXFxcImVuLVVTXFxcIix7aG91cjEyOiExLHRpbWVab25lOm4seWVhcjpcXFwibnVtZXJpY1xcXCIsbW9udGg6XFxcIjItZGlnaXRcXFwiLGRheTpcXFwiMi1kaWdpdFxcXCIsaG91cjpcXFwiMi1kaWdpdFxcXCIsbWludXRlOlxcXCIyLWRpZ2l0XFxcIixzZWNvbmQ6XFxcIjItZGlnaXRcXFwiLGVyYTpcXFwic2hvcnRcXFwifSkpLFlyW25dfXZhciB4bD17eWVhcjowLG1vbnRoOjEsZGF5OjIsZXJhOjMsaG91cjo0LG1pbnV0ZTo1LHNlY29uZDo2fTtmdW5jdGlvbiBPbChuLGUpe2xldCB0PW4uZm9ybWF0KGUpLnJlcGxhY2UoL1xcXFx1MjAwRS9nLFxcXCJcXFwiKSxyPS8oXFxcXGQrKVxcXFwvKFxcXFxkKylcXFxcLyhcXFxcZCspIChBRHxCQyksPyAoXFxcXGQrKTooXFxcXGQrKTooXFxcXGQrKS8uZXhlYyh0KSxbLHMsaSxvLGEsdSxsLGZdPXI7cmV0dXJuW28scyxpLGEsdSxsLGZdfWZ1bmN0aW9uIElsKG4sZSl7bGV0IHQ9bi5mb3JtYXRUb1BhcnRzKGUpLHI9W107Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldHt0eXBlOmksdmFsdWU6b309dFtzXSxhPXhsW2ldO2k9PT1cXFwiZXJhXFxcIj9yW2FdPW86VyhhKXx8KHJbYV09cGFyc2VJbnQobywxMCkpfXJldHVybiByfXZhciB6cj17fSxnZT1jbGFzcyBuIGV4dGVuZHMga2V7c3RhdGljIGNyZWF0ZShlKXtyZXR1cm4genJbZV18fCh6cltlXT1uZXcgbihlKSksenJbZV19c3RhdGljIHJlc2V0Q2FjaGUoKXt6cj17fSxZcj17fX1zdGF0aWMgaXNWYWxpZFNwZWNpZmllcihlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkWm9uZShlKX1zdGF0aWMgaXNWYWxpZFpvbmUoZSl7aWYoIWUpcmV0dXJuITE7dHJ5e3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcXFwiZW4tVVNcXFwiLHt0aW1lWm9uZTplfSkuZm9ybWF0KCksITB9Y2F0Y2godCl7cmV0dXJuITF9fWNvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy56b25lTmFtZT1lLHRoaXMudmFsaWQ9bi5pc1ZhbGlkWm9uZShlKX1nZXQgdHlwZSgpe3JldHVyblxcXCJpYW5hXFxcIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLnpvbmVOYW1lfWdldCBpc1VuaXZlcnNhbCgpe3JldHVybiExfW9mZnNldE5hbWUoZSx7Zm9ybWF0OnQsbG9jYWxlOnJ9KXtyZXR1cm4gSnIoZSx0LHIsdGhpcy5uYW1lKX1mb3JtYXRPZmZzZXQoZSx0KXtyZXR1cm4gdnQodGhpcy5vZmZzZXQoZSksdCl9b2Zmc2V0KGUpe2xldCB0PW5ldyBEYXRlKGUpO2lmKGlzTmFOKHQpKXJldHVybiBOYU47bGV0IHI9dmwodGhpcy5uYW1lKSxbcyxpLG8sYSx1LGwsZl09ci5mb3JtYXRUb1BhcnRzP0lsKHIsdCk6T2wocix0KTthPT09XFxcIkJDXFxcIiYmKHM9LU1hdGguYWJzKHMpKzEpO2xldCBtPWlyKHt5ZWFyOnMsbW9udGg6aSxkYXk6byxob3VyOnU9PT0yND8wOnUsbWludXRlOmwsc2Vjb25kOmYsbWlsbGlzZWNvbmQ6MH0pLGg9K3QsYj1oJTFlMztyZXR1cm4gaC09Yj49MD9iOjFlMytiLChtLWgpLyg2MCoxZTMpfWVxdWFscyhlKXtyZXR1cm4gZS50eXBlPT09XFxcImlhbmFcXFwiJiZlLm5hbWU9PT10aGlzLm5hbWV9Z2V0IGlzVmFsaWQoKXtyZXR1cm4gdGhpcy52YWxpZH19O3ZhciBmaT1udWxsLGhlPWNsYXNzIG4gZXh0ZW5kcyBrZXtzdGF0aWMgZ2V0IHV0Y0luc3RhbmNlKCl7cmV0dXJuIGZpPT09bnVsbCYmKGZpPW5ldyBuKDApKSxmaX1zdGF0aWMgaW5zdGFuY2UoZSl7cmV0dXJuIGU9PT0wP24udXRjSW5zdGFuY2U6bmV3IG4oZSl9c3RhdGljIHBhcnNlU3BlY2lmaWVyKGUpe2lmKGUpe2xldCB0PWUubWF0Y2goL151dGMoPzooWystXVxcXFxkezEsMn0pKD86OihcXFxcZHsyfSkpPyk/JC9pKTtpZih0KXJldHVybiBuZXcgbihWdCh0WzFdLHRbMl0pKX1yZXR1cm4gbnVsbH1jb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuZml4ZWQ9ZX1nZXQgdHlwZSgpe3JldHVyblxcXCJmaXhlZFxcXCJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5maXhlZD09PTA/XFxcIlVUQ1xcXCI6YFVUQyR7dnQodGhpcy5maXhlZCxcXFwibmFycm93XFxcIil9YH1nZXQgaWFuYU5hbWUoKXtyZXR1cm4gdGhpcy5maXhlZD09PTA/XFxcIkV0Yy9VVENcXFwiOmBFdGMvR01UJHt2dCgtdGhpcy5maXhlZCxcXFwibmFycm93XFxcIil9YH1vZmZzZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1mb3JtYXRPZmZzZXQoZSx0KXtyZXR1cm4gdnQodGhpcy5maXhlZCx0KX1nZXQgaXNVbml2ZXJzYWwoKXtyZXR1cm4hMH1vZmZzZXQoKXtyZXR1cm4gdGhpcy5maXhlZH1lcXVhbHMoZSl7cmV0dXJuIGUudHlwZT09PVxcXCJmaXhlZFxcXCImJmUuZml4ZWQ9PT10aGlzLmZpeGVkfWdldCBpc1ZhbGlkKCl7cmV0dXJuITB9fTt2YXIgZG49Y2xhc3MgZXh0ZW5kcyBrZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuem9uZU5hbWU9ZX1nZXQgdHlwZSgpe3JldHVyblxcXCJpbnZhbGlkXFxcIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLnpvbmVOYW1lfWdldCBpc1VuaXZlcnNhbCgpe3JldHVybiExfW9mZnNldE5hbWUoKXtyZXR1cm4gbnVsbH1mb3JtYXRPZmZzZXQoKXtyZXR1cm5cXFwiXFxcIn1vZmZzZXQoKXtyZXR1cm4gTmFOfWVxdWFscygpe3JldHVybiExfWdldCBpc1ZhbGlkKCl7cmV0dXJuITF9fTtmdW5jdGlvbiBWZShuLGUpe2xldCB0O2lmKFcobil8fG49PT1udWxsKXJldHVybiBlO2lmKG4gaW5zdGFuY2VvZiBrZSlyZXR1cm4gbjtpZihCbyhuKSl7bGV0IHI9bi50b0xvd2VyQ2FzZSgpO3JldHVybiByPT09XFxcImxvY2FsXFxcInx8cj09PVxcXCJzeXN0ZW1cXFwiP2U6cj09PVxcXCJ1dGNcXFwifHxyPT09XFxcImdtdFxcXCI/aGUudXRjSW5zdGFuY2U6aGUucGFyc2VTcGVjaWZpZXIocil8fGdlLmNyZWF0ZShuKX1lbHNlIHJldHVybiB0dChuKT9oZS5pbnN0YW5jZShuKTp0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm4ub2Zmc2V0JiZ0eXBlb2Ygbi5vZmZzZXQ9PVxcXCJudW1iZXJcXFwiP246bmV3IGRuKG4pfXZhciBIbz0oKT0+RGF0ZS5ub3coKSxKbz1cXFwic3lzdGVtXFxcIix6bz1udWxsLFlvPW51bGwsR289bnVsbCxabyxYPWNsYXNze3N0YXRpYyBnZXQgbm93KCl7cmV0dXJuIEhvfXN0YXRpYyBzZXQgbm93KGUpe0hvPWV9c3RhdGljIHNldCBkZWZhdWx0Wm9uZShlKXtKbz1lfXN0YXRpYyBnZXQgZGVmYXVsdFpvbmUoKXtyZXR1cm4gVmUoSm8sZm4uaW5zdGFuY2UpfXN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpe3JldHVybiB6b31zdGF0aWMgc2V0IGRlZmF1bHRMb2NhbGUoZSl7em89ZX1zdGF0aWMgZ2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0oKXtyZXR1cm4gWW99c3RhdGljIHNldCBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtKGUpe1lvPWV9c3RhdGljIGdldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoKXtyZXR1cm4gR299c3RhdGljIHNldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoZSl7R289ZX1zdGF0aWMgZ2V0IHRocm93T25JbnZhbGlkKCl7cmV0dXJuIFpvfXN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQoZSl7Wm89ZX1zdGF0aWMgcmVzZXRDYWNoZXMoKXtuZS5yZXNldENhY2hlKCksZ2UucmVzZXRDYWNoZSgpfX07dmFyIFFvPXt9O2Z1bmN0aW9uIExsKG4sZT17fSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoW24sZV0pLHI9UW9bdF07cmV0dXJuIHJ8fChyPW5ldyBJbnRsLkxpc3RGb3JtYXQobixlKSxRb1t0XT1yKSxyfXZhciBkaT17fTtmdW5jdGlvbiBoaShuLGU9e30pe2xldCB0PUpTT04uc3RyaW5naWZ5KFtuLGVdKSxyPWRpW3RdO3JldHVybiByfHwocj1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChuLGUpLGRpW3RdPXIpLHJ9dmFyIG1pPXt9O2Z1bmN0aW9uIE5sKG4sZT17fSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoW24sZV0pLHI9bWlbdF07cmV0dXJuIHJ8fChyPW5ldyBJbnRsLk51bWJlckZvcm1hdChuLGUpLG1pW3RdPXIpLHJ9dmFyIHBpPXt9O2Z1bmN0aW9uIEFsKG4sZT17fSl7bGV0IG89ZSx7YmFzZTp0fT1vLHI9WXMobyxbXFxcImJhc2VcXFwiXSkscz1KU09OLnN0cmluZ2lmeShbbixyXSksaT1waVtzXTtyZXR1cm4gaXx8KGk9bmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KG4sZSkscGlbc109aSksaX12YXIgdXI9bnVsbDtmdW5jdGlvbiBNbCgpe3JldHVybiB1cnx8KHVyPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLHVyKX1mdW5jdGlvbiBfbChuKXtsZXQgZT1uLmluZGV4T2YoXFxcIi11LVxcXCIpO2lmKGU9PT0tMSlyZXR1cm5bbl07e2xldCB0LHI9bi5zdWJzdHJpbmcoMCxlKTt0cnl7dD1oaShuKS5yZXNvbHZlZE9wdGlvbnMoKX1jYXRjaChvKXt0PWhpKHIpLnJlc29sdmVkT3B0aW9ucygpfWxldHtudW1iZXJpbmdTeXN0ZW06cyxjYWxlbmRhcjppfT10O3JldHVybltyLHMsaV19fWZ1bmN0aW9uIEJsKG4sZSx0KXtyZXR1cm4odHx8ZSkmJihuKz1cXFwiLXVcXFwiLHQmJihuKz1gLWNhLSR7dH1gKSxlJiYobis9YC1udS0ke2V9YCkpLG59ZnVuY3Rpb24gUGwobil7bGV0IGU9W107Zm9yKGxldCB0PTE7dDw9MTI7dCsrKXtsZXQgcj1xLnV0YygyMDE2LHQsMSk7ZS5wdXNoKG4ocikpfXJldHVybiBlfWZ1bmN0aW9uICRsKG4pe2xldCBlPVtdO2ZvcihsZXQgdD0xO3Q8PTc7dCsrKXtsZXQgcj1xLnV0YygyMDE2LDExLDEzK3QpO2UucHVzaChuKHIpKX1yZXR1cm4gZX1mdW5jdGlvbiBHcihuLGUsdCxyLHMpe2xldCBpPW4ubGlzdGluZ01vZGUodCk7cmV0dXJuIGk9PT1cXFwiZXJyb3JcXFwiP251bGw6aT09PVxcXCJlblxcXCI/cihlKTpzKGUpfWZ1bmN0aW9uIFJsKG4pe3JldHVybiBuLm51bWJlcmluZ1N5c3RlbSYmbi5udW1iZXJpbmdTeXN0ZW0hPT1cXFwibGF0blxcXCI/ITE6bi5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCJ8fCFuLmxvY2FsZXx8bi5sb2NhbGUuc3RhcnRzV2l0aChcXFwiZW5cXFwiKXx8bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobi5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCJ9dmFyIERpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnBhZFRvPXIucGFkVG98fDAsdGhpcy5mbG9vcj1yLmZsb29yfHwhMTtsZXQgYT1yLHtwYWRUbzpzLGZsb29yOml9PWEsbz1ZcyhhLFtcXFwicGFkVG9cXFwiLFxcXCJmbG9vclxcXCJdKTtpZighdHx8T2JqZWN0LmtleXMobykubGVuZ3RoPjApe2xldCB1PVIoe3VzZUdyb3VwaW5nOiExfSxyKTtyLnBhZFRvPjAmJih1Lm1pbmltdW1JbnRlZ2VyRGlnaXRzPXIucGFkVG8pLHRoaXMuaW5mPU5sKGUsdSl9fWZvcm1hdChlKXtpZih0aGlzLmluZil7bGV0IHQ9dGhpcy5mbG9vcj9NYXRoLmZsb29yKGUpOmU7cmV0dXJuIHRoaXMuaW5mLmZvcm1hdCh0KX1lbHNle2xldCB0PXRoaXMuZmxvb3I/TWF0aC5mbG9vcihlKTphbihlLDMpO3JldHVybiByZSh0LHRoaXMucGFkVG8pfX19LHlpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLm9wdHM9cjtsZXQgcztpZihlLnpvbmUuaXNVbml2ZXJzYWwpe2xldCBvPS0xKihlLm9mZnNldC82MCksYT1vPj0wP2BFdGMvR01UKyR7b31gOmBFdGMvR01UJHtvfWA7ZS5vZmZzZXQhPT0wJiZnZS5jcmVhdGUoYSkudmFsaWQ/KHM9YSx0aGlzLmR0PWUpOihzPVxcXCJVVENcXFwiLHIudGltZVpvbmVOYW1lP3RoaXMuZHQ9ZTp0aGlzLmR0PWUub2Zmc2V0PT09MD9lOnEuZnJvbU1pbGxpcyhlLnRzK2Uub2Zmc2V0KjYwKjFlMykpfWVsc2UgZS56b25lLnR5cGU9PT1cXFwic3lzdGVtXFxcIj90aGlzLmR0PWU6KHRoaXMuZHQ9ZSxzPWUuem9uZS5uYW1lKTtsZXQgaT1SKHt9LHRoaXMub3B0cyk7cyYmKGkudGltZVpvbmU9cyksdGhpcy5kdGY9aGkodCxpKX1mb3JtYXQoKXtyZXR1cm4gdGhpcy5kdGYuZm9ybWF0KHRoaXMuZHQudG9KU0RhdGUoKSl9Zm9ybWF0VG9QYXJ0cygpe3JldHVybiB0aGlzLmR0Zi5mb3JtYXRUb1BhcnRzKHRoaXMuZHQudG9KU0RhdGUoKSl9cmVzb2x2ZWRPcHRpb25zKCl7cmV0dXJuIHRoaXMuZHRmLnJlc29sdmVkT3B0aW9ucygpfX0sZ2k9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMub3B0cz1SKHtzdHlsZTpcXFwibG9uZ1xcXCJ9LHIpLCF0JiZIcigpJiYodGhpcy5ydGY9QWwoZSxyKSl9Zm9ybWF0KGUsdCl7cmV0dXJuIHRoaXMucnRmP3RoaXMucnRmLmZvcm1hdChlLHQpOktvKHQsZSx0aGlzLm9wdHMubnVtZXJpYyx0aGlzLm9wdHMuc3R5bGUhPT1cXFwibG9uZ1xcXCIpfWZvcm1hdFRvUGFydHMoZSx0KXtyZXR1cm4gdGhpcy5ydGY/dGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhlLHQpOltdfX0sbmU9Y2xhc3MgbntzdGF0aWMgZnJvbU9wdHMoZSl7cmV0dXJuIG4uY3JlYXRlKGUubG9jYWxlLGUubnVtYmVyaW5nU3lzdGVtLGUub3V0cHV0Q2FsZW5kYXIsZS5kZWZhdWx0VG9FTil9c3RhdGljIGNyZWF0ZShlLHQscixzPSExKXtsZXQgaT1lfHxYLmRlZmF1bHRMb2NhbGUsbz1pfHwocz9cXFwiZW4tVVNcXFwiOk1sKCkpLGE9dHx8WC5kZWZhdWx0TnVtYmVyaW5nU3lzdGVtLHU9cnx8WC5kZWZhdWx0T3V0cHV0Q2FsZW5kYXI7cmV0dXJuIG5ldyBuKG8sYSx1LGkpfXN0YXRpYyByZXNldENhY2hlKCl7dXI9bnVsbCxkaT17fSxtaT17fSxwaT17fX1zdGF0aWMgZnJvbU9iamVjdCh7bG9jYWxlOmUsbnVtYmVyaW5nU3lzdGVtOnQsb3V0cHV0Q2FsZW5kYXI6cn09e30pe3JldHVybiBuLmNyZWF0ZShlLHQscil9Y29uc3RydWN0b3IoZSx0LHIscyl7bGV0W2ksbyxhXT1fbChlKTt0aGlzLmxvY2FsZT1pLHRoaXMubnVtYmVyaW5nU3lzdGVtPXR8fG98fG51bGwsdGhpcy5vdXRwdXRDYWxlbmRhcj1yfHxhfHxudWxsLHRoaXMuaW50bD1CbCh0aGlzLmxvY2FsZSx0aGlzLm51bWJlcmluZ1N5c3RlbSx0aGlzLm91dHB1dENhbGVuZGFyKSx0aGlzLndlZWtkYXlzQ2FjaGU9e2Zvcm1hdDp7fSxzdGFuZGFsb25lOnt9fSx0aGlzLm1vbnRoc0NhY2hlPXtmb3JtYXQ6e30sc3RhbmRhbG9uZTp7fX0sdGhpcy5tZXJpZGllbUNhY2hlPW51bGwsdGhpcy5lcmFDYWNoZT17fSx0aGlzLnNwZWNpZmllZExvY2FsZT1zLHRoaXMuZmFzdE51bWJlcnNDYWNoZWQ9bnVsbH1nZXQgZmFzdE51bWJlcnMoKXtyZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZD09bnVsbCYmKHRoaXMuZmFzdE51bWJlcnNDYWNoZWQ9UmwodGhpcykpLHRoaXMuZmFzdE51bWJlcnNDYWNoZWR9bGlzdGluZ01vZGUoKXtsZXQgZT10aGlzLmlzRW5nbGlzaCgpLHQ9KHRoaXMubnVtYmVyaW5nU3lzdGVtPT09bnVsbHx8dGhpcy5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCIpJiYodGhpcy5vdXRwdXRDYWxlbmRhcj09PW51bGx8fHRoaXMub3V0cHV0Q2FsZW5kYXI9PT1cXFwiZ3JlZ29yeVxcXCIpO3JldHVybiBlJiZ0P1xcXCJlblxcXCI6XFxcImludGxcXFwifWNsb25lKGUpe3JldHVybiFlfHxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5sZW5ndGg9PT0wP3RoaXM6bi5jcmVhdGUoZS5sb2NhbGV8fHRoaXMuc3BlY2lmaWVkTG9jYWxlLGUubnVtYmVyaW5nU3lzdGVtfHx0aGlzLm51bWJlcmluZ1N5c3RlbSxlLm91dHB1dENhbGVuZGFyfHx0aGlzLm91dHB1dENhbGVuZGFyLGUuZGVmYXVsdFRvRU58fCExKX1yZWRlZmF1bHRUb0VOKGU9e30pe3JldHVybiB0aGlzLmNsb25lKHllKFIoe30sZSkse2RlZmF1bHRUb0VOOiEwfSkpfXJlZGVmYXVsdFRvU3lzdGVtKGU9e30pe3JldHVybiB0aGlzLmNsb25lKHllKFIoe30sZSkse2RlZmF1bHRUb0VOOiExfSkpfW1vbnRocyhlLHQ9ITEscj0hMCl7cmV0dXJuIEdyKHRoaXMsZSxyLHJpLCgpPT57bGV0IHM9dD97bW9udGg6ZSxkYXk6XFxcIm51bWVyaWNcXFwifTp7bW9udGg6ZX0saT10P1xcXCJmb3JtYXRcXFwiOlxcXCJzdGFuZGFsb25lXFxcIjtyZXR1cm4gdGhpcy5tb250aHNDYWNoZVtpXVtlXXx8KHRoaXMubW9udGhzQ2FjaGVbaV1bZV09UGwobz0+dGhpcy5leHRyYWN0KG8scyxcXFwibW9udGhcXFwiKSkpLHRoaXMubW9udGhzQ2FjaGVbaV1bZV19KX13ZWVrZGF5cyhlLHQ9ITEscj0hMCl7cmV0dXJuIEdyKHRoaXMsZSxyLG9pLCgpPT57bGV0IHM9dD97d2Vla2RheTplLHllYXI6XFxcIm51bWVyaWNcXFwiLG1vbnRoOlxcXCJsb25nXFxcIixkYXk6XFxcIm51bWVyaWNcXFwifTp7d2Vla2RheTplfSxpPXQ/XFxcImZvcm1hdFxcXCI6XFxcInN0YW5kYWxvbmVcXFwiO3JldHVybiB0aGlzLndlZWtkYXlzQ2FjaGVbaV1bZV18fCh0aGlzLndlZWtkYXlzQ2FjaGVbaV1bZV09JGwobz0+dGhpcy5leHRyYWN0KG8scyxcXFwid2Vla2RheVxcXCIpKSksdGhpcy53ZWVrZGF5c0NhY2hlW2ldW2VdfSl9bWVyaWRpZW1zKGU9ITApe3JldHVybiBHcih0aGlzLHZvaWQgMCxlLCgpPT5haSwoKT0+e2lmKCF0aGlzLm1lcmlkaWVtQ2FjaGUpe2xldCB0PXtob3VyOlxcXCJudW1lcmljXFxcIixob3VyQ3ljbGU6XFxcImgxMlxcXCJ9O3RoaXMubWVyaWRpZW1DYWNoZT1bcS51dGMoMjAxNiwxMSwxMyw5KSxxLnV0YygyMDE2LDExLDEzLDE5KV0ubWFwKHI9PnRoaXMuZXh0cmFjdChyLHQsXFxcImRheXBlcmlvZFxcXCIpKX1yZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlfSl9ZXJhcyhlLHQ9ITApe3JldHVybiBHcih0aGlzLGUsdCx1aSwoKT0+e2xldCByPXtlcmE6ZX07cmV0dXJuIHRoaXMuZXJhQ2FjaGVbZV18fCh0aGlzLmVyYUNhY2hlW2VdPVtxLnV0YygtNDAsMSwxKSxxLnV0YygyMDE3LDEsMSldLm1hcChzPT50aGlzLmV4dHJhY3QocyxyLFxcXCJlcmFcXFwiKSkpLHRoaXMuZXJhQ2FjaGVbZV19KX1leHRyYWN0KGUsdCxyKXtsZXQgcz10aGlzLmR0Rm9ybWF0dGVyKGUsdCksaT1zLmZvcm1hdFRvUGFydHMoKSxvPWkuZmluZChhPT5hLnR5cGUudG9Mb3dlckNhc2UoKT09PXIpO3JldHVybiBvP28udmFsdWU6bnVsbH1udW1iZXJGb3JtYXR0ZXIoZT17fSl7cmV0dXJuIG5ldyBEaSh0aGlzLmludGwsZS5mb3JjZVNpbXBsZXx8dGhpcy5mYXN0TnVtYmVycyxlKX1kdEZvcm1hdHRlcihlLHQ9e30pe3JldHVybiBuZXcgeWkoZSx0aGlzLmludGwsdCl9cmVsRm9ybWF0dGVyKGU9e30pe3JldHVybiBuZXcgZ2kodGhpcy5pbnRsLHRoaXMuaXNFbmdsaXNoKCksZSl9bGlzdEZvcm1hdHRlcihlPXt9KXtyZXR1cm4gTGwodGhpcy5pbnRsLGUpfWlzRW5nbGlzaCgpe3JldHVybiB0aGlzLmxvY2FsZT09PVxcXCJlblxcXCJ8fHRoaXMubG9jYWxlLnRvTG93ZXJDYXNlKCk9PT1cXFwiZW4tdXNcXFwifHxuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmludGwpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZS5zdGFydHNXaXRoKFxcXCJlbi11c1xcXCIpfWVxdWFscyhlKXtyZXR1cm4gdGhpcy5sb2NhbGU9PT1lLmxvY2FsZSYmdGhpcy5udW1iZXJpbmdTeXN0ZW09PT1lLm51bWJlcmluZ1N5c3RlbSYmdGhpcy5vdXRwdXRDYWxlbmRhcj09PWUub3V0cHV0Q2FsZW5kYXJ9fTtmdW5jdGlvbiBtbiguLi5uKXtsZXQgZT1uLnJlZHVjZSgodCxyKT0+dCtyLnNvdXJjZSxcXFwiXFxcIik7cmV0dXJuIFJlZ0V4cChgXiR7ZX0kYCl9ZnVuY3Rpb24gcG4oLi4ubil7cmV0dXJuIGU9Pm4ucmVkdWNlKChbdCxyLHNdLGkpPT57bGV0W28sYSx1XT1pKGUscyk7cmV0dXJuW1IoUih7fSx0KSxvKSxhfHxyLHVdfSxbe30sbnVsbCwxXSkuc2xpY2UoMCwyKX1mdW5jdGlvbiBEbihuLC4uLmUpe2lmKG49PW51bGwpcmV0dXJuW251bGwsbnVsbF07Zm9yKGxldFt0LHJdb2YgZSl7bGV0IHM9dC5leGVjKG4pO2lmKHMpcmV0dXJuIHIocyl9cmV0dXJuW251bGwsbnVsbF19ZnVuY3Rpb24gZWEoLi4ubil7cmV0dXJuKGUsdCk9PntsZXQgcj17fSxzO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspcltuW3NdXT1EdChlW3Qrc10pO3JldHVybltyLG51bGwsdCtzXX19dmFyIHRhPS8oPzooWil8KFsrLV1cXFxcZFxcXFxkKSg/Ojo/KFxcXFxkXFxcXGQpKT8pLyxqbD1gKD86JHt0YS5zb3VyY2V9Pyg/OlxcXFxcXFxcWygke3RpLnNvdXJjZX0pXFxcXFxcXFxdKT8pP2AsYmk9LyhcXFxcZFxcXFxkKSg/Ojo/KFxcXFxkXFxcXGQpKD86Oj8oXFxcXGRcXFxcZCkoPzpbLixdKFxcXFxkezEsMzB9KSk/KT8pPy8sbmE9UmVnRXhwKGAke2JpLnNvdXJjZX0ke2psfWApLEZpPVJlZ0V4cChgKD86VCR7bmEuc291cmNlfSk/YCkscWw9LyhbKy1dXFxcXGR7Nn18XFxcXGR7NH0pKD86LT8oXFxcXGRcXFxcZCkoPzotPyhcXFxcZFxcXFxkKSk/KT8vLFZsPS8oXFxcXGR7NH0pLT9XKFxcXFxkXFxcXGQpKD86LT8oXFxcXGQpKT8vLFVsPS8oXFxcXGR7NH0pLT8oXFxcXGR7M30pLyxLbD1lYShcXFwid2Vla1llYXJcXFwiLFxcXCJ3ZWVrTnVtYmVyXFxcIixcXFwid2Vla0RheVxcXCIpLFdsPWVhKFxcXCJ5ZWFyXFxcIixcXFwib3JkaW5hbFxcXCIpLEhsPS8oXFxcXGR7NH0pLShcXFxcZFxcXFxkKS0oXFxcXGRcXFxcZCkvLHJhPVJlZ0V4cChgJHtiaS5zb3VyY2V9ID8oPzoke3RhLnNvdXJjZX18KCR7dGkuc291cmNlfSkpP2ApLEpsPVJlZ0V4cChgKD86ICR7cmEuc291cmNlfSk/YCk7ZnVuY3Rpb24gaG4obixlLHQpe2xldCByPW5bZV07cmV0dXJuIFcocik/dDpEdChyKX1mdW5jdGlvbiB6bChuLGUpe3JldHVyblt7eWVhcjpobihuLGUpLG1vbnRoOmhuKG4sZSsxLDEpLGRheTpobihuLGUrMiwxKX0sbnVsbCxlKzNdfWZ1bmN0aW9uIHluKG4sZSl7cmV0dXJuW3tob3VyczpobihuLGUsMCksbWludXRlczpobihuLGUrMSwwKSxzZWNvbmRzOmhuKG4sZSsyLDApLG1pbGxpc2Vjb25kczpzcihuW2UrM10pfSxudWxsLGUrNF19ZnVuY3Rpb24gbHIobixlKXtsZXQgdD0hbltlXSYmIW5bZSsxXSxyPVZ0KG5bZSsxXSxuW2UrMl0pLHM9dD9udWxsOmhlLmluc3RhbmNlKHIpO3JldHVyblt7fSxzLGUrM119ZnVuY3Rpb24gY3IobixlKXtsZXQgdD1uW2VdP2dlLmNyZWF0ZShuW2VdKTpudWxsO3JldHVyblt7fSx0LGUrMV19dmFyIFlsPVJlZ0V4cChgXlQ/JHtiaS5zb3VyY2V9JGApLEdsPS9eLT9QKD86KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pWSk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pTSk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pVyk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pRCk/KD86VCg/OigtP1xcXFxkezEsMjB9KD86XFxcXC5cXFxcZHsxLDIwfSk/KUgpPyg/OigtP1xcXFxkezEsMjB9KD86XFxcXC5cXFxcZHsxLDIwfSk/KU0pPyg/OigtP1xcXFxkezEsMjB9KSg/OlsuLF0oLT9cXFxcZHsxLDIwfSkpP1MpPyk/KSQvO2Z1bmN0aW9uIFpsKG4pe2xldFtlLHQscixzLGksbyxhLHUsbF09bixmPWVbMF09PT1cXFwiLVxcXCIsZD11JiZ1WzBdPT09XFxcIi1cXFwiLG09KGgsYj0hMSk9PmghPT12b2lkIDAmJihifHxoJiZmKT8taDpoO3JldHVyblt7eWVhcnM6bShDdCh0KSksbW9udGhzOm0oQ3QocikpLHdlZWtzOm0oQ3QocykpLGRheXM6bShDdChpKSksaG91cnM6bShDdChvKSksbWludXRlczptKEN0KGEpKSxzZWNvbmRzOm0oQ3QodSksdT09PVxcXCItMFxcXCIpLG1pbGxpc2Vjb25kczptKHNyKGwpLGQpfV19dmFyIFFsPXtHTVQ6MCxFRFQ6LTQqNjAsRVNUOi01KjYwLENEVDotNSo2MCxDU1Q6LTYqNjAsTURUOi02KjYwLE1TVDotNyo2MCxQRFQ6LTcqNjAsUFNUOi04KjYwfTtmdW5jdGlvbiBFaShuLGUsdCxyLHMsaSxvKXtsZXQgYT17eWVhcjplLmxlbmd0aD09PTI/b3IoRHQoZSkpOkR0KGUpLG1vbnRoOm5pLmluZGV4T2YodCkrMSxkYXk6RHQociksaG91cjpEdChzKSxtaW51dGU6RHQoaSl9O3JldHVybiBvJiYoYS5zZWNvbmQ9RHQobykpLG4mJihhLndlZWtkYXk9bi5sZW5ndGg+Mz9zaS5pbmRleE9mKG4pKzE6aWkuaW5kZXhPZihuKSsxKSxhfXZhciBYbD0vXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLFxcXFxzKT8oXFxcXGR7MSwyfSlcXFxccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylcXFxccyhcXFxcZHsyLDR9KVxcXFxzKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKSg/OjooXFxcXGRcXFxcZCkpP1xcXFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxcXGRcXFxcZCkoXFxcXGRcXFxcZCkpKSQvO2Z1bmN0aW9uIGVjKG4pe2xldFssZSx0LHIscyxpLG8sYSx1LGwsZixkXT1uLG09RWkoZSxzLHIsdCxpLG8sYSksaDtyZXR1cm4gdT9oPVFsW3VdOmw/aD0wOmg9VnQoZixkKSxbbSxuZXcgaGUoaCldfWZ1bmN0aW9uIHRjKG4pe3JldHVybiBuLnJlcGxhY2UoL1xcXFwoW14oKV0qXFxcXCl8W1xcXFxuXFxcXHRdL2csXFxcIiBcXFwiKS5yZXBsYWNlKC8oXFxcXHNcXFxccyspL2csXFxcIiBcXFwiKS50cmltKCl9dmFyIG5jPS9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksIChcXFxcZFxcXFxkKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpIChcXFxcZHs0fSkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgR01UJC8scmM9L14oTW9uZGF5fFR1ZXNkYXl8V2VkbmVzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXFxcXGRcXFxcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXFxcXGRcXFxcZCkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgR01UJC8sc2M9L14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpICggXFxcXGR8XFxcXGRcXFxcZCkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgKFxcXFxkezR9KSQvO2Z1bmN0aW9uIFhvKG4pe2xldFssZSx0LHIscyxpLG8sYV09bjtyZXR1cm5bRWkoZSxzLHIsdCxpLG8sYSksaGUudXRjSW5zdGFuY2VdfWZ1bmN0aW9uIGljKG4pe2xldFssZSx0LHIscyxpLG8sYV09bjtyZXR1cm5bRWkoZSxhLHQscixzLGksbyksaGUudXRjSW5zdGFuY2VdfXZhciBvYz1tbihxbCxGaSksYWM9bW4oVmwsRmkpLHVjPW1uKFVsLEZpKSxsYz1tbihuYSksc2E9cG4oemwseW4sbHIsY3IpLGNjPXBuKEtsLHluLGxyLGNyKSxmYz1wbihXbCx5bixscixjciksZGM9cG4oeW4sbHIsY3IpO2Z1bmN0aW9uIGlhKG4pe3JldHVybiBEbihuLFtvYyxzYV0sW2FjLGNjXSxbdWMsZmNdLFtsYyxkY10pfWZ1bmN0aW9uIG9hKG4pe3JldHVybiBEbih0YyhuKSxbWGwsZWNdKX1mdW5jdGlvbiBhYShuKXtyZXR1cm4gRG4obixbbmMsWG9dLFtyYyxYb10sW3NjLGljXSl9ZnVuY3Rpb24gdWEobil7cmV0dXJuIERuKG4sW0dsLFpsXSl9dmFyIGhjPXBuKHluKTtmdW5jdGlvbiBsYShuKXtyZXR1cm4gRG4obixbWWwsaGNdKX12YXIgbWM9bW4oSGwsSmwpLHBjPW1uKHJhKSxEYz1wbih5bixscixjcik7ZnVuY3Rpb24gY2Eobil7cmV0dXJuIERuKG4sW21jLHNhXSxbcGMsRGNdKX12YXIgeWM9XFxcIkludmFsaWQgRHVyYXRpb25cXFwiLGZhPXt3ZWVrczp7ZGF5czo3LGhvdXJzOjcqMjQsbWludXRlczo3KjI0KjYwLHNlY29uZHM6NyoyNCo2MCo2MCxtaWxsaXNlY29uZHM6NyoyNCo2MCo2MCoxZTN9LGRheXM6e2hvdXJzOjI0LG1pbnV0ZXM6MjQqNjAsc2Vjb25kczoyNCo2MCo2MCxtaWxsaXNlY29uZHM6MjQqNjAqNjAqMWUzfSxob3Vyczp7bWludXRlczo2MCxzZWNvbmRzOjYwKjYwLG1pbGxpc2Vjb25kczo2MCo2MCoxZTN9LG1pbnV0ZXM6e3NlY29uZHM6NjAsbWlsbGlzZWNvbmRzOjYwKjFlM30sc2Vjb25kczp7bWlsbGlzZWNvbmRzOjFlM319LGdjPVIoe3llYXJzOntxdWFydGVyczo0LG1vbnRoczoxMix3ZWVrczo1MixkYXlzOjM2NSxob3VyczozNjUqMjQsbWludXRlczozNjUqMjQqNjAsc2Vjb25kczozNjUqMjQqNjAqNjAsbWlsbGlzZWNvbmRzOjM2NSoyNCo2MCo2MCoxZTN9LHF1YXJ0ZXJzOnttb250aHM6Myx3ZWVrczoxMyxkYXlzOjkxLGhvdXJzOjkxKjI0LG1pbnV0ZXM6OTEqMjQqNjAsc2Vjb25kczo5MSoyNCo2MCo2MCxtaWxsaXNlY29uZHM6OTEqMjQqNjAqNjAqMWUzfSxtb250aHM6e3dlZWtzOjQsZGF5czozMCxob3VyczozMCoyNCxtaW51dGVzOjMwKjI0KjYwLHNlY29uZHM6MzAqMjQqNjAqNjAsbWlsbGlzZWNvbmRzOjMwKjI0KjYwKjYwKjFlM319LGZhKSxNZT0xNDYwOTcvNDAwLGduPTE0NjA5Ny80ODAwLGJjPVIoe3llYXJzOntxdWFydGVyczo0LG1vbnRoczoxMix3ZWVrczpNZS83LGRheXM6TWUsaG91cnM6TWUqMjQsbWludXRlczpNZSoyNCo2MCxzZWNvbmRzOk1lKjI0KjYwKjYwLG1pbGxpc2Vjb25kczpNZSoyNCo2MCo2MCoxZTN9LHF1YXJ0ZXJzOnttb250aHM6Myx3ZWVrczpNZS8yOCxkYXlzOk1lLzQsaG91cnM6TWUqMjQvNCxtaW51dGVzOk1lKjI0KjYwLzQsc2Vjb25kczpNZSoyNCo2MCo2MC80LG1pbGxpc2Vjb25kczpNZSoyNCo2MCo2MCoxZTMvNH0sbW9udGhzOnt3ZWVrczpnbi83LGRheXM6Z24saG91cnM6Z24qMjQsbWludXRlczpnbioyNCo2MCxzZWNvbmRzOmduKjI0KjYwKjYwLG1pbGxpc2Vjb25kczpnbioyNCo2MCo2MCoxZTN9fSxmYSksS3Q9W1xcXCJ5ZWFyc1xcXCIsXFxcInF1YXJ0ZXJzXFxcIixcXFwibW9udGhzXFxcIixcXFwid2Vla3NcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCJdLEZjPUt0LnNsaWNlKDApLnJldmVyc2UoKTtmdW5jdGlvbiBVdChuLGUsdD0hMSl7bGV0IHI9e3ZhbHVlczp0P2UudmFsdWVzOlIoUih7fSxuLnZhbHVlcyksZS52YWx1ZXN8fHt9KSxsb2M6bi5sb2MuY2xvbmUoZS5sb2MpLGNvbnZlcnNpb25BY2N1cmFjeTplLmNvbnZlcnNpb25BY2N1cmFjeXx8bi5jb252ZXJzaW9uQWNjdXJhY3l9O3JldHVybiBuZXcgQihyKX1mdW5jdGlvbiBFYyhuKXtyZXR1cm4gbjwwP01hdGguZmxvb3Iobik6TWF0aC5jZWlsKG4pfWZ1bmN0aW9uIGRhKG4sZSx0LHIscyl7bGV0IGk9bltzXVt0XSxvPWVbdF0vaSxhPU1hdGguc2lnbihvKT09PU1hdGguc2lnbihyW3NdKSx1PSFhJiZyW3NdIT09MCYmTWF0aC5hYnMobyk8PTE/RWMobyk6TWF0aC50cnVuYyhvKTtyW3NdKz11LGVbdF0tPXUqaX1mdW5jdGlvbiB3YyhuLGUpe0ZjLnJlZHVjZSgodCxyKT0+VyhlW3JdKT90Oih0JiZkYShuLGUsdCxlLHIpLHIpLG51bGwpfXZhciBCPWNsYXNzIG57Y29uc3RydWN0b3IoZSl7bGV0IHQ9ZS5jb252ZXJzaW9uQWNjdXJhY3k9PT1cXFwibG9uZ3Rlcm1cXFwifHwhMTt0aGlzLnZhbHVlcz1lLnZhbHVlcyx0aGlzLmxvYz1lLmxvY3x8bmUuY3JlYXRlKCksdGhpcy5jb252ZXJzaW9uQWNjdXJhY3k9dD9cXFwibG9uZ3Rlcm1cXFwiOlxcXCJjYXN1YWxcXFwiLHRoaXMuaW52YWxpZD1lLmludmFsaWR8fG51bGwsdGhpcy5tYXRyaXg9dD9iYzpnYyx0aGlzLmlzTHV4b25EdXJhdGlvbj0hMH1zdGF0aWMgZnJvbU1pbGxpcyhlLHQpe3JldHVybiBuLmZyb21PYmplY3Qoe21pbGxpc2Vjb25kczplfSx0KX1zdGF0aWMgZnJvbU9iamVjdChlLHQ9e30pe2lmKGU9PW51bGx8fHR5cGVvZiBlIT1cXFwib2JqZWN0XFxcIil0aHJvdyBuZXcgZmUoYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7ZT09PW51bGw/XFxcIm51bGxcXFwiOnR5cGVvZiBlfWApO3JldHVybiBuZXcgbih7dmFsdWVzOmNuKGUsbi5ub3JtYWxpemVVbml0KSxsb2M6bmUuZnJvbU9iamVjdCh0KSxjb252ZXJzaW9uQWNjdXJhY3k6dC5jb252ZXJzaW9uQWNjdXJhY3l9KX1zdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShlKXtpZih0dChlKSlyZXR1cm4gbi5mcm9tTWlsbGlzKGUpO2lmKG4uaXNEdXJhdGlvbihlKSlyZXR1cm4gZTtpZih0eXBlb2YgZT09XFxcIm9iamVjdFxcXCIpcmV0dXJuIG4uZnJvbU9iamVjdChlKTt0aHJvdyBuZXcgZmUoYFVua25vd24gZHVyYXRpb24gYXJndW1lbnQgJHtlfSBvZiB0eXBlICR7dHlwZW9mIGV9YCl9c3RhdGljIGZyb21JU08oZSx0KXtsZXRbcl09dWEoZSk7cmV0dXJuIHI/bi5mcm9tT2JqZWN0KHIsdCk6bi5pbnZhbGlkKFxcXCJ1bnBhcnNhYmxlXFxcIixgdGhlIGlucHV0IFxcXCIke2V9XFxcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKX1zdGF0aWMgZnJvbUlTT1RpbWUoZSx0KXtsZXRbcl09bGEoZSk7cmV0dXJuIHI/bi5mcm9tT2JqZWN0KHIsdCk6bi5pbnZhbGlkKFxcXCJ1bnBhcnNhYmxlXFxcIixgdGhlIGlucHV0IFxcXCIke2V9XFxcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKX1zdGF0aWMgaW52YWxpZChlLHQ9bnVsbCl7aWYoIWUpdGhyb3cgbmV3IGZlKFxcXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIER1cmF0aW9uIGlzIGludmFsaWRcXFwiKTtsZXQgcj1lIGluc3RhbmNlb2YgZGU/ZTpuZXcgZGUoZSx0KTtpZihYLnRocm93T25JbnZhbGlkKXRocm93IG5ldyBXcihyKTtyZXR1cm4gbmV3IG4oe2ludmFsaWQ6cn0pfXN0YXRpYyBub3JtYWxpemVVbml0KGUpe2xldCB0PXt5ZWFyOlxcXCJ5ZWFyc1xcXCIseWVhcnM6XFxcInllYXJzXFxcIixxdWFydGVyOlxcXCJxdWFydGVyc1xcXCIscXVhcnRlcnM6XFxcInF1YXJ0ZXJzXFxcIixtb250aDpcXFwibW9udGhzXFxcIixtb250aHM6XFxcIm1vbnRoc1xcXCIsd2VlazpcXFwid2Vla3NcXFwiLHdlZWtzOlxcXCJ3ZWVrc1xcXCIsZGF5OlxcXCJkYXlzXFxcIixkYXlzOlxcXCJkYXlzXFxcIixob3VyOlxcXCJob3Vyc1xcXCIsaG91cnM6XFxcImhvdXJzXFxcIixtaW51dGU6XFxcIm1pbnV0ZXNcXFwiLG1pbnV0ZXM6XFxcIm1pbnV0ZXNcXFwiLHNlY29uZDpcXFwic2Vjb25kc1xcXCIsc2Vjb25kczpcXFwic2Vjb25kc1xcXCIsbWlsbGlzZWNvbmQ6XFxcIm1pbGxpc2Vjb25kc1xcXCIsbWlsbGlzZWNvbmRzOlxcXCJtaWxsaXNlY29uZHNcXFwifVtlJiZlLnRvTG93ZXJDYXNlKCldO2lmKCF0KXRocm93IG5ldyBzbihlKTtyZXR1cm4gdH1zdGF0aWMgaXNEdXJhdGlvbihlKXtyZXR1cm4gZSYmZS5pc0x1eG9uRHVyYXRpb258fCExfWdldCBsb2NhbGUoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMubG9jLmxvY2FsZTpudWxsfWdldCBudW1iZXJpbmdTeXN0ZW0oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMubG9jLm51bWJlcmluZ1N5c3RlbTpudWxsfXRvRm9ybWF0KGUsdD17fSl7bGV0IHI9eWUoUih7fSx0KSx7Zmxvb3I6dC5yb3VuZCE9PSExJiZ0LmZsb29yIT09ITF9KTtyZXR1cm4gdGhpcy5pc1ZhbGlkP3dlLmNyZWF0ZSh0aGlzLmxvYyxyKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcyxlKTp5Y310b0h1bWFuKGU9e30pe2xldCB0PUt0Lm1hcChyPT57bGV0IHM9dGhpcy52YWx1ZXNbcl07cmV0dXJuIFcocyk/bnVsbDp0aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIoeWUoUih7c3R5bGU6XFxcInVuaXRcXFwiLHVuaXREaXNwbGF5OlxcXCJsb25nXFxcIn0sZSkse3VuaXQ6ci5zbGljZSgwLC0xKX0pKS5mb3JtYXQocyl9KS5maWx0ZXIocj0+cik7cmV0dXJuIHRoaXMubG9jLmxpc3RGb3JtYXR0ZXIoUih7dHlwZTpcXFwiY29uanVuY3Rpb25cXFwiLHN0eWxlOmUubGlzdFN0eWxlfHxcXFwibmFycm93XFxcIn0sZSkpLmZvcm1hdCh0KX10b09iamVjdCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/Uih7fSx0aGlzLnZhbHVlcyk6e319dG9JU08oKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiBudWxsO2xldCBlPVxcXCJQXFxcIjtyZXR1cm4gdGhpcy55ZWFycyE9PTAmJihlKz10aGlzLnllYXJzK1xcXCJZXFxcIiksKHRoaXMubW9udGhzIT09MHx8dGhpcy5xdWFydGVycyE9PTApJiYoZSs9dGhpcy5tb250aHMrdGhpcy5xdWFydGVycyozK1xcXCJNXFxcIiksdGhpcy53ZWVrcyE9PTAmJihlKz10aGlzLndlZWtzK1xcXCJXXFxcIiksdGhpcy5kYXlzIT09MCYmKGUrPXRoaXMuZGF5cytcXFwiRFxcXCIpLCh0aGlzLmhvdXJzIT09MHx8dGhpcy5taW51dGVzIT09MHx8dGhpcy5zZWNvbmRzIT09MHx8dGhpcy5taWxsaXNlY29uZHMhPT0wKSYmKGUrPVxcXCJUXFxcIiksdGhpcy5ob3VycyE9PTAmJihlKz10aGlzLmhvdXJzK1xcXCJIXFxcIiksdGhpcy5taW51dGVzIT09MCYmKGUrPXRoaXMubWludXRlcytcXFwiTVxcXCIpLCh0aGlzLnNlY29uZHMhPT0wfHx0aGlzLm1pbGxpc2Vjb25kcyE9PTApJiYoZSs9YW4odGhpcy5zZWNvbmRzK3RoaXMubWlsbGlzZWNvbmRzLzFlMywzKStcXFwiU1xcXCIpLGU9PT1cXFwiUFxcXCImJihlKz1cXFwiVDBTXFxcIiksZX10b0lTT1RpbWUoZT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnRvTWlsbGlzKCk7aWYodDwwfHx0Pj04NjRlNSlyZXR1cm4gbnVsbDtlPVIoe3N1cHByZXNzTWlsbGlzZWNvbmRzOiExLHN1cHByZXNzU2Vjb25kczohMSxpbmNsdWRlUHJlZml4OiExLGZvcm1hdDpcXFwiZXh0ZW5kZWRcXFwifSxlKTtsZXQgcj10aGlzLnNoaWZ0VG8oXFxcImhvdXJzXFxcIixcXFwibWludXRlc1xcXCIsXFxcInNlY29uZHNcXFwiLFxcXCJtaWxsaXNlY29uZHNcXFwiKSxzPWUuZm9ybWF0PT09XFxcImJhc2ljXFxcIj9cXFwiaGhtbVxcXCI6XFxcImhoOm1tXFxcIjsoIWUuc3VwcHJlc3NTZWNvbmRzfHxyLnNlY29uZHMhPT0wfHxyLm1pbGxpc2Vjb25kcyE9PTApJiYocys9ZS5mb3JtYXQ9PT1cXFwiYmFzaWNcXFwiP1xcXCJzc1xcXCI6XFxcIjpzc1xcXCIsKCFlLnN1cHByZXNzTWlsbGlzZWNvbmRzfHxyLm1pbGxpc2Vjb25kcyE9PTApJiYocys9XFxcIi5TU1NcXFwiKSk7bGV0IGk9ci50b0Zvcm1hdChzKTtyZXR1cm4gZS5pbmNsdWRlUHJlZml4JiYoaT1cXFwiVFxcXCIraSksaX10b0pTT04oKXtyZXR1cm4gdGhpcy50b0lTTygpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9JU08oKX10b01pbGxpcygpe3JldHVybiB0aGlzLmFzKFxcXCJtaWxsaXNlY29uZHNcXFwiKX12YWx1ZU9mKCl7cmV0dXJuIHRoaXMudG9NaWxsaXMoKX1wbHVzKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9bi5mcm9tRHVyYXRpb25MaWtlKGUpLHI9e307Zm9yKGxldCBzIG9mIEt0KShrdCh0LnZhbHVlcyxzKXx8a3QodGhpcy52YWx1ZXMscykpJiYocltzXT10LmdldChzKSt0aGlzLmdldChzKSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczpyfSwhMCl9bWludXMoZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgdD1uLmZyb21EdXJhdGlvbkxpa2UoZSk7cmV0dXJuIHRoaXMucGx1cyh0Lm5lZ2F0ZSgpKX1tYXBVbml0cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PXt9O2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpdFtyXT1laShlKHRoaXMudmFsdWVzW3JdLHIpKTtyZXR1cm4gVXQodGhpcyx7dmFsdWVzOnR9LCEwKX1nZXQoZSl7cmV0dXJuIHRoaXNbbi5ub3JtYWxpemVVbml0KGUpXX1zZXQoZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgdD1SKFIoe30sdGhpcy52YWx1ZXMpLGNuKGUsbi5ub3JtYWxpemVVbml0KSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczp0fSl9cmVjb25maWd1cmUoe2xvY2FsZTplLG51bWJlcmluZ1N5c3RlbTp0LGNvbnZlcnNpb25BY2N1cmFjeTpyfT17fSl7bGV0IHM9dGhpcy5sb2MuY2xvbmUoe2xvY2FsZTplLG51bWJlcmluZ1N5c3RlbTp0fSksaT17bG9jOnN9O3JldHVybiByJiYoaS5jb252ZXJzaW9uQWNjdXJhY3k9ciksVXQodGhpcyxpKX1hcyhlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuc2hpZnRUbyhlKS5nZXQoZSk6TmFOfW5vcm1hbGl6ZSgpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IGU9dGhpcy50b09iamVjdCgpO3JldHVybiB3Yyh0aGlzLm1hdHJpeCxlKSxVdCh0aGlzLHt2YWx1ZXM6ZX0sITApfXNoaWZ0VG8oLi4uZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztpZihlLmxlbmd0aD09PTApcmV0dXJuIHRoaXM7ZT1lLm1hcChvPT5uLm5vcm1hbGl6ZVVuaXQobykpO2xldCB0PXt9LHI9e30scz10aGlzLnRvT2JqZWN0KCksaTtmb3IobGV0IG8gb2YgS3QpaWYoZS5pbmRleE9mKG8pPj0wKXtpPW87bGV0IGE9MDtmb3IobGV0IGwgaW4gcilhKz10aGlzLm1hdHJpeFtsXVtvXSpyW2xdLHJbbF09MDt0dChzW29dKSYmKGErPXNbb10pO2xldCB1PU1hdGgudHJ1bmMoYSk7dFtvXT11LHJbb109KGEqMWUzLXUqMWUzKS8xZTM7Zm9yKGxldCBsIGluIHMpS3QuaW5kZXhPZihsKT5LdC5pbmRleE9mKG8pJiZkYSh0aGlzLm1hdHJpeCxzLGwsdCxvKX1lbHNlIHR0KHNbb10pJiYocltvXT1zW29dKTtmb3IobGV0IG8gaW4gcilyW29dIT09MCYmKHRbaV0rPW89PT1pP3Jbb106cltvXS90aGlzLm1hdHJpeFtpXVtvXSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczp0fSwhMCkubm9ybWFsaXplKCl9bmVnYXRlKCl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgZT17fTtmb3IobGV0IHQgb2YgT2JqZWN0LmtleXModGhpcy52YWx1ZXMpKWVbdF09dGhpcy52YWx1ZXNbdF09PT0wPzA6LXRoaXMudmFsdWVzW3RdO3JldHVybiBVdCh0aGlzLHt2YWx1ZXM6ZX0sITApfWdldCB5ZWFycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMueWVhcnN8fDA6TmFOfWdldCBxdWFydGVycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMucXVhcnRlcnN8fDA6TmFOfWdldCBtb250aHMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudmFsdWVzLm1vbnRoc3x8MDpOYU59Z2V0IHdlZWtzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnZhbHVlcy53ZWVrc3x8MDpOYU59Z2V0IGRheXMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudmFsdWVzLmRheXN8fDA6TmFOfWdldCBob3Vycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMuaG91cnN8fDA6TmFOfWdldCBtaW51dGVzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnZhbHVlcy5taW51dGVzfHwwOk5hTn1nZXQgc2Vjb25kcygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMuc2Vjb25kc3x8MDpOYU59Z2V0IG1pbGxpc2Vjb25kcygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMubWlsbGlzZWNvbmRzfHwwOk5hTn1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWQ9PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9ZXF1YWxzKGUpe2lmKCF0aGlzLmlzVmFsaWR8fCFlLmlzVmFsaWR8fCF0aGlzLmxvYy5lcXVhbHMoZS5sb2MpKXJldHVybiExO2Z1bmN0aW9uIHQocixzKXtyZXR1cm4gcj09PXZvaWQgMHx8cj09PTA/cz09PXZvaWQgMHx8cz09PTA6cj09PXN9Zm9yKGxldCByIG9mIEt0KWlmKCF0KHRoaXMudmFsdWVzW3JdLGUudmFsdWVzW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH19O3ZhciBmcj1cXFwiSW52YWxpZCBJbnRlcnZhbFxcXCI7ZnVuY3Rpb24gVGMobixlKXtyZXR1cm4hbnx8IW4uaXNWYWxpZD95dC5pbnZhbGlkKFxcXCJtaXNzaW5nIG9yIGludmFsaWQgc3RhcnRcXFwiKTohZXx8IWUuaXNWYWxpZD95dC5pbnZhbGlkKFxcXCJtaXNzaW5nIG9yIGludmFsaWQgZW5kXFxcIik6ZTxuP3l0LmludmFsaWQoXFxcImVuZCBiZWZvcmUgc3RhcnRcXFwiLGBUaGUgZW5kIG9mIGFuIGludGVydmFsIG11c3QgYmUgYWZ0ZXIgaXRzIHN0YXJ0LCBidXQgeW91IGhhZCBzdGFydD0ke24udG9JU08oKX0gYW5kIGVuZD0ke2UudG9JU08oKX1gKTpudWxsfXZhciB5dD1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMucz1lLnN0YXJ0LHRoaXMuZT1lLmVuZCx0aGlzLmludmFsaWQ9ZS5pbnZhbGlkfHxudWxsLHRoaXMuaXNMdXhvbkludGVydmFsPSEwfXN0YXRpYyBpbnZhbGlkKGUsdD1udWxsKXtpZighZSl0aHJvdyBuZXcgZmUoXFxcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgSW50ZXJ2YWwgaXMgaW52YWxpZFxcXCIpO2xldCByPWUgaW5zdGFuY2VvZiBkZT9lOm5ldyBkZShlLHQpO2lmKFgudGhyb3dPbkludmFsaWQpdGhyb3cgbmV3IEtyKHIpO3JldHVybiBuZXcgbih7aW52YWxpZDpyfSl9c3RhdGljIGZyb21EYXRlVGltZXMoZSx0KXtsZXQgcj1ibihlKSxzPWJuKHQpLGk9VGMocixzKTtyZXR1cm4gaT09bnVsbD9uZXcgbih7c3RhcnQ6cixlbmQ6c30pOml9c3RhdGljIGFmdGVyKGUsdCl7bGV0IHI9Qi5mcm9tRHVyYXRpb25MaWtlKHQpLHM9Ym4oZSk7cmV0dXJuIG4uZnJvbURhdGVUaW1lcyhzLHMucGx1cyhyKSl9c3RhdGljIGJlZm9yZShlLHQpe2xldCByPUIuZnJvbUR1cmF0aW9uTGlrZSh0KSxzPWJuKGUpO3JldHVybiBuLmZyb21EYXRlVGltZXMocy5taW51cyhyKSxzKX1zdGF0aWMgZnJvbUlTTyhlLHQpe2xldFtyLHNdPShlfHxcXFwiXFxcIikuc3BsaXQoXFxcIi9cXFwiLDIpO2lmKHImJnMpe2xldCBpLG87dHJ5e2k9cS5mcm9tSVNPKHIsdCksbz1pLmlzVmFsaWR9Y2F0Y2gobCl7bz0hMX1sZXQgYSx1O3RyeXthPXEuZnJvbUlTTyhzLHQpLHU9YS5pc1ZhbGlkfWNhdGNoKGwpe3U9ITF9aWYobyYmdSlyZXR1cm4gbi5mcm9tRGF0ZVRpbWVzKGksYSk7aWYobyl7bGV0IGw9Qi5mcm9tSVNPKHMsdCk7aWYobC5pc1ZhbGlkKXJldHVybiBuLmFmdGVyKGksbCl9ZWxzZSBpZih1KXtsZXQgbD1CLmZyb21JU08ocix0KTtpZihsLmlzVmFsaWQpcmV0dXJuIG4uYmVmb3JlKGEsbCl9fXJldHVybiBuLmludmFsaWQoXFxcInVucGFyc2FibGVcXFwiLGB0aGUgaW5wdXQgXFxcIiR7ZX1cXFwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApfXN0YXRpYyBpc0ludGVydmFsKGUpe3JldHVybiBlJiZlLmlzTHV4b25JbnRlcnZhbHx8ITF9Z2V0IHN0YXJ0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnM6bnVsbH1nZXQgZW5kKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmU6bnVsbH1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWRSZWFzb249PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9bGVuZ3RoKGU9XFxcIm1pbGxpc2Vjb25kc1xcXCIpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy50b0R1cmF0aW9uKGUpLmdldChlKTpOYU59Y291bnQoZT1cXFwibWlsbGlzZWNvbmRzXFxcIil7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gTmFOO2xldCB0PXRoaXMuc3RhcnQuc3RhcnRPZihlKSxyPXRoaXMuZW5kLnN0YXJ0T2YoZSk7cmV0dXJuIE1hdGguZmxvb3Ioci5kaWZmKHQsZSkuZ2V0KGUpKSsxfWhhc1NhbWUoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmlzRW1wdHkoKXx8dGhpcy5lLm1pbnVzKDEpLmhhc1NhbWUodGhpcy5zLGUpOiExfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5zLnZhbHVlT2YoKT09PXRoaXMuZS52YWx1ZU9mKCl9aXNBZnRlcihlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMucz5lOiExfWlzQmVmb3JlKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5lPD1lOiExfWNvbnRhaW5zKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5zPD1lJiZ0aGlzLmU+ZTohMX1zZXQoe3N0YXJ0OmUsZW5kOnR9PXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP24uZnJvbURhdGVUaW1lcyhlfHx0aGlzLnMsdHx8dGhpcy5lKTp0aGlzfXNwbGl0QXQoLi4uZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm5bXTtsZXQgdD1lLm1hcChibikuZmlsdGVyKG89PnRoaXMuY29udGFpbnMobykpLnNvcnQoKSxyPVtdLHtzfT10aGlzLGk9MDtmb3IoO3M8dGhpcy5lOyl7bGV0IG89dFtpXXx8dGhpcy5lLGE9K28+K3RoaXMuZT90aGlzLmU6bztyLnB1c2gobi5mcm9tRGF0ZVRpbWVzKHMsYSkpLHM9YSxpKz0xfXJldHVybiByfXNwbGl0QnkoZSl7bGV0IHQ9Qi5mcm9tRHVyYXRpb25MaWtlKGUpO2lmKCF0aGlzLmlzVmFsaWR8fCF0LmlzVmFsaWR8fHQuYXMoXFxcIm1pbGxpc2Vjb25kc1xcXCIpPT09MClyZXR1cm5bXTtsZXR7czpyfT10aGlzLHM9MSxpLG89W107Zm9yKDtyPHRoaXMuZTspe2xldCBhPXRoaXMuc3RhcnQucGx1cyh0Lm1hcFVuaXRzKHU9PnUqcykpO2k9K2E+K3RoaXMuZT90aGlzLmU6YSxvLnB1c2gobi5mcm9tRGF0ZVRpbWVzKHIsaSkpLHI9aSxzKz0xfXJldHVybiBvfWRpdmlkZUVxdWFsbHkoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKS9lKS5zbGljZSgwLGUpOltdfW92ZXJsYXBzKGUpe3JldHVybiB0aGlzLmU+ZS5zJiZ0aGlzLnM8ZS5lfWFidXRzU3RhcnQoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD8rdGhpcy5lPT0rZS5zOiExfWFidXRzRW5kKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/K2UuZT09K3RoaXMuczohMX1lbmd1bGZzKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5zPD1lLnMmJnRoaXMuZT49ZS5lOiExfWVxdWFscyhlKXtyZXR1cm4hdGhpcy5pc1ZhbGlkfHwhZS5pc1ZhbGlkPyExOnRoaXMucy5lcXVhbHMoZS5zKSYmdGhpcy5lLmVxdWFscyhlLmUpfWludGVyc2VjdGlvbihlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PXRoaXMucz5lLnM/dGhpcy5zOmUucyxyPXRoaXMuZTxlLmU/dGhpcy5lOmUuZTtyZXR1cm4gdD49cj9udWxsOm4uZnJvbURhdGVUaW1lcyh0LHIpfXVuaW9uKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcy5zPGUucz90aGlzLnM6ZS5zLHI9dGhpcy5lPmUuZT90aGlzLmU6ZS5lO3JldHVybiBuLmZyb21EYXRlVGltZXModCxyKX1zdGF0aWMgbWVyZ2UoZSl7bGV0W3Qscl09ZS5zb3J0KChzLGkpPT5zLnMtaS5zKS5yZWR1Y2UoKFtzLGldLG8pPT5pP2kub3ZlcmxhcHMobyl8fGkuYWJ1dHNTdGFydChvKT9bcyxpLnVuaW9uKG8pXTpbcy5jb25jYXQoW2ldKSxvXTpbcyxvXSxbW10sbnVsbF0pO3JldHVybiByJiZ0LnB1c2gociksdH1zdGF0aWMgeG9yKGUpe2xldCB0PW51bGwscj0wLHM9W10saT1lLm1hcCh1PT5be3RpbWU6dS5zLHR5cGU6XFxcInNcXFwifSx7dGltZTp1LmUsdHlwZTpcXFwiZVxcXCJ9XSksbz1BcnJheS5wcm90b3R5cGUuY29uY2F0KC4uLmkpLGE9by5zb3J0KCh1LGwpPT51LnRpbWUtbC50aW1lKTtmb3IobGV0IHUgb2YgYSlyKz11LnR5cGU9PT1cXFwic1xcXCI/MTotMSxyPT09MT90PXUudGltZToodCYmK3QhPSt1LnRpbWUmJnMucHVzaChuLmZyb21EYXRlVGltZXModCx1LnRpbWUpKSx0PW51bGwpO3JldHVybiBuLm1lcmdlKHMpfWRpZmZlcmVuY2UoLi4uZSl7cmV0dXJuIG4ueG9yKFt0aGlzXS5jb25jYXQoZSkpLm1hcCh0PT50aGlzLmludGVyc2VjdGlvbih0KSkuZmlsdGVyKHQ9PnQmJiF0LmlzRW1wdHkoKSl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2BbJHt0aGlzLnMudG9JU08oKX0gXFxcXHUyMDEzICR7dGhpcy5lLnRvSVNPKCl9KWA6ZnJ9dG9JU08oZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnMudG9JU08oZSl9LyR7dGhpcy5lLnRvSVNPKGUpfWA6ZnJ9dG9JU09EYXRlKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnMudG9JU09EYXRlKCl9LyR7dGhpcy5lLnRvSVNPRGF0ZSgpfWA6ZnJ9dG9JU09UaW1lKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/YCR7dGhpcy5zLnRvSVNPVGltZShlKX0vJHt0aGlzLmUudG9JU09UaW1lKGUpfWA6ZnJ9dG9Gb3JtYXQoZSx7c2VwYXJhdG9yOnQ9XFxcIiBcXFxcdTIwMTMgXFxcIn09e30pe3JldHVybiB0aGlzLmlzVmFsaWQ/YCR7dGhpcy5zLnRvRm9ybWF0KGUpfSR7dH0ke3RoaXMuZS50b0Zvcm1hdChlKX1gOmZyfXRvRHVyYXRpb24oZSx0KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuZS5kaWZmKHRoaXMucyxlLHQpOkIuaW52YWxpZCh0aGlzLmludmFsaWRSZWFzb24pfW1hcEVuZHBvaW50cyhlKXtyZXR1cm4gbi5mcm9tRGF0ZVRpbWVzKGUodGhpcy5zKSxlKHRoaXMuZSkpfX07dmFyIGd0PWNsYXNze3N0YXRpYyBoYXNEU1QoZT1YLmRlZmF1bHRab25lKXtsZXQgdD1xLm5vdygpLnNldFpvbmUoZSkuc2V0KHttb250aDoxMn0pO3JldHVybiFlLmlzVW5pdmVyc2FsJiZ0Lm9mZnNldCE9PXQuc2V0KHttb250aDo2fSkub2Zmc2V0fXN0YXRpYyBpc1ZhbGlkSUFOQVpvbmUoZSl7cmV0dXJuIGdlLmlzVmFsaWRab25lKGUpfXN0YXRpYyBub3JtYWxpemVab25lKGUpe3JldHVybiBWZShlLFguZGVmYXVsdFpvbmUpfXN0YXRpYyBtb250aHMoZT1cXFwibG9uZ1xcXCIse2xvY2FsZTp0PW51bGwsbnVtYmVyaW5nU3lzdGVtOnI9bnVsbCxsb2NPYmo6cz1udWxsLG91dHB1dENhbGVuZGFyOmk9XFxcImdyZWdvcnlcXFwifT17fSl7cmV0dXJuKHN8fG5lLmNyZWF0ZSh0LHIsaSkpLm1vbnRocyhlKX1zdGF0aWMgbW9udGhzRm9ybWF0KGU9XFxcImxvbmdcXFwiLHtsb2NhbGU6dD1udWxsLG51bWJlcmluZ1N5c3RlbTpyPW51bGwsbG9jT2JqOnM9bnVsbCxvdXRwdXRDYWxlbmRhcjppPVxcXCJncmVnb3J5XFxcIn09e30pe3JldHVybihzfHxuZS5jcmVhdGUodCxyLGkpKS5tb250aHMoZSwhMCl9c3RhdGljIHdlZWtkYXlzKGU9XFxcImxvbmdcXFwiLHtsb2NhbGU6dD1udWxsLG51bWJlcmluZ1N5c3RlbTpyPW51bGwsbG9jT2JqOnM9bnVsbH09e30pe3JldHVybihzfHxuZS5jcmVhdGUodCxyLG51bGwpKS53ZWVrZGF5cyhlKX1zdGF0aWMgd2Vla2RheXNGb3JtYXQoZT1cXFwibG9uZ1xcXCIse2xvY2FsZTp0PW51bGwsbnVtYmVyaW5nU3lzdGVtOnI9bnVsbCxsb2NPYmo6cz1udWxsfT17fSl7cmV0dXJuKHN8fG5lLmNyZWF0ZSh0LHIsbnVsbCkpLndlZWtkYXlzKGUsITApfXN0YXRpYyBtZXJpZGllbXMoe2xvY2FsZTplPW51bGx9PXt9KXtyZXR1cm4gbmUuY3JlYXRlKGUpLm1lcmlkaWVtcygpfXN0YXRpYyBlcmFzKGU9XFxcInNob3J0XFxcIix7bG9jYWxlOnQ9bnVsbH09e30pe3JldHVybiBuZS5jcmVhdGUodCxudWxsLFxcXCJncmVnb3J5XFxcIikuZXJhcyhlKX1zdGF0aWMgZmVhdHVyZXMoKXtyZXR1cm57cmVsYXRpdmU6SHIoKX19fTtmdW5jdGlvbiBoYShuLGUpe2xldCB0PXM9PnMudG9VVEMoMCx7a2VlcExvY2FsVGltZTohMH0pLnN0YXJ0T2YoXFxcImRheVxcXCIpLnZhbHVlT2YoKSxyPXQoZSktdChuKTtyZXR1cm4gTWF0aC5mbG9vcihCLmZyb21NaWxsaXMocikuYXMoXFxcImRheXNcXFwiKSl9ZnVuY3Rpb24gU2MobixlLHQpe2xldCByPVtbXFxcInllYXJzXFxcIiwoYSx1KT0+dS55ZWFyLWEueWVhcl0sW1xcXCJxdWFydGVyc1xcXCIsKGEsdSk9PnUucXVhcnRlci1hLnF1YXJ0ZXJdLFtcXFwibW9udGhzXFxcIiwoYSx1KT0+dS5tb250aC1hLm1vbnRoKyh1LnllYXItYS55ZWFyKSoxMl0sW1xcXCJ3ZWVrc1xcXCIsKGEsdSk9PntsZXQgbD1oYShhLHUpO3JldHVybihsLWwlNykvN31dLFtcXFwiZGF5c1xcXCIsaGFdXSxzPXt9LGksbztmb3IobGV0W2EsdV1vZiByKWlmKHQuaW5kZXhPZihhKT49MCl7aT1hO2xldCBsPXUobixlKTtvPW4ucGx1cyh7W2FdOmx9KSxvPmU/KG49bi5wbHVzKHtbYV06bC0xfSksbC09MSk6bj1vLHNbYV09bH1yZXR1cm5bbixzLG8saV19ZnVuY3Rpb24gbWEobixlLHQscil7bGV0W3MsaSxvLGFdPVNjKG4sZSx0KSx1PWUtcyxsPXQuZmlsdGVyKGQ9PltcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCJdLmluZGV4T2YoZCk+PTApO2wubGVuZ3RoPT09MCYmKG88ZSYmKG89cy5wbHVzKHtbYV06MX0pKSxvIT09cyYmKGlbYV09KGlbYV18fDApK3UvKG8tcykpKTtsZXQgZj1CLmZyb21PYmplY3QoaSxyKTtyZXR1cm4gbC5sZW5ndGg+MD9CLmZyb21NaWxsaXModSxyKS5zaGlmdFRvKC4uLmwpLnBsdXMoZik6Zn12YXIgd2k9e2FyYWI6XFxcIltcXFxcdTA2NjAtXFxcXHUwNjY5XVxcXCIsYXJhYmV4dDpcXFwiW1xcXFx1MDZGMC1cXFxcdTA2RjldXFxcIixiYWxpOlxcXCJbXFxcXHUxQjUwLVxcXFx1MUI1OV1cXFwiLGJlbmc6XFxcIltcXFxcdTA5RTYtXFxcXHUwOUVGXVxcXCIsZGV2YTpcXFwiW1xcXFx1MDk2Ni1cXFxcdTA5NkZdXFxcIixmdWxsd2lkZTpcXFwiW1xcXFx1RkYxMC1cXFxcdUZGMTldXFxcIixndWpyOlxcXCJbXFxcXHUwQUU2LVxcXFx1MEFFRl1cXFwiLGhhbmlkZWM6XFxcIltcXFxcdTMwMDd8XFxcXHU0RTAwfFxcXFx1NEU4Q3xcXFxcdTRFMDl8XFxcXHU1NkRCfFxcXFx1NEU5NHxcXFxcdTUxNkR8XFxcXHU0RTAzfFxcXFx1NTE2QnxcXFxcdTRFNURdXFxcIixraG1yOlxcXCJbXFxcXHUxN0UwLVxcXFx1MTdFOV1cXFwiLGtuZGE6XFxcIltcXFxcdTBDRTYtXFxcXHUwQ0VGXVxcXCIsbGFvbzpcXFwiW1xcXFx1MEVEMC1cXFxcdTBFRDldXFxcIixsaW1iOlxcXCJbXFxcXHUxOTQ2LVxcXFx1MTk0Rl1cXFwiLG1seW06XFxcIltcXFxcdTBENjYtXFxcXHUwRDZGXVxcXCIsbW9uZzpcXFwiW1xcXFx1MTgxMC1cXFxcdTE4MTldXFxcIixteW1yOlxcXCJbXFxcXHUxMDQwLVxcXFx1MTA0OV1cXFwiLG9yeWE6XFxcIltcXFxcdTBCNjYtXFxcXHUwQjZGXVxcXCIsdGFtbGRlYzpcXFwiW1xcXFx1MEJFNi1cXFxcdTBCRUZdXFxcIix0ZWx1OlxcXCJbXFxcXHUwQzY2LVxcXFx1MEM2Rl1cXFwiLHRoYWk6XFxcIltcXFxcdTBFNTAtXFxcXHUwRTU5XVxcXCIsdGlidDpcXFwiW1xcXFx1MEYyMC1cXFxcdTBGMjldXFxcIixsYXRuOlxcXCJcXFxcXFxcXGRcXFwifSxwYT17YXJhYjpbMTYzMiwxNjQxXSxhcmFiZXh0OlsxNzc2LDE3ODVdLGJhbGk6WzY5OTIsNzAwMV0sYmVuZzpbMjUzNCwyNTQzXSxkZXZhOlsyNDA2LDI0MTVdLGZ1bGx3aWRlOls2NTI5Niw2NTMwM10sZ3VqcjpbMjc5MCwyNzk5XSxraG1yOls2MTEyLDYxMjFdLGtuZGE6WzMzMDIsMzMxMV0sbGFvbzpbMzc5MiwzODAxXSxsaW1iOls2NDcwLDY0NzldLG1seW06WzM0MzAsMzQzOV0sbW9uZzpbNjE2MCw2MTY5XSxteW1yOls0MTYwLDQxNjldLG9yeWE6WzI5MTgsMjkyN10sdGFtbGRlYzpbMzA0NiwzMDU1XSx0ZWx1OlszMTc0LDMxODNdLHRoYWk6WzM2NjQsMzY3M10sdGlidDpbMzg3MiwzODgxXX0sa2M9d2kuaGFuaWRlYy5yZXBsYWNlKC9bXFxcXFt8XFxcXF1dL2csXFxcIlxcXCIpLnNwbGl0KFxcXCJcXFwiKTtmdW5jdGlvbiBEYShuKXtsZXQgZT1wYXJzZUludChuLDEwKTtpZihpc05hTihlKSl7ZT1cXFwiXFxcIjtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7bGV0IHI9bi5jaGFyQ29kZUF0KHQpO2lmKG5bdF0uc2VhcmNoKHdpLmhhbmlkZWMpIT09LTEpZSs9a2MuaW5kZXhPZihuW3RdKTtlbHNlIGZvcihsZXQgcyBpbiBwYSl7bGV0W2ksb109cGFbc107cj49aSYmcjw9byYmKGUrPXItaSl9fXJldHVybiBwYXJzZUludChlLDEwKX1lbHNlIHJldHVybiBlfWZ1bmN0aW9uIF9lKHtudW1iZXJpbmdTeXN0ZW06bn0sZT1cXFwiXFxcIil7cmV0dXJuIG5ldyBSZWdFeHAoYCR7d2lbbnx8XFxcImxhdG5cXFwiXX0ke2V9YCl9dmFyIENjPVxcXCJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0XFxcIjtmdW5jdGlvbiBHKG4sZT10PT50KXtyZXR1cm57cmVnZXg6bixkZXNlcjooW3RdKT0+ZShEYSh0KSl9fXZhciB2Yz1cXFwiXFxcXHhBMFxcXCIsYmE9YFsgJHt2Y31dYCxGYT1uZXcgUmVnRXhwKGJhLFxcXCJnXFxcIik7ZnVuY3Rpb24geGMobil7cmV0dXJuIG4ucmVwbGFjZSgvXFxcXC4vZyxcXFwiXFxcXFxcXFwuP1xcXCIpLnJlcGxhY2UoRmEsYmEpfWZ1bmN0aW9uIHlhKG4pe3JldHVybiBuLnJlcGxhY2UoL1xcXFwuL2csXFxcIlxcXCIpLnJlcGxhY2UoRmEsXFxcIiBcXFwiKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFVlKG4sZSl7cmV0dXJuIG49PT1udWxsP251bGw6e3JlZ2V4OlJlZ0V4cChuLm1hcCh4Yykuam9pbihcXFwifFxcXCIpKSxkZXNlcjooW3RdKT0+bi5maW5kSW5kZXgocj0+eWEodCk9PT15YShyKSkrZX19ZnVuY3Rpb24gZ2EobixlKXtyZXR1cm57cmVnZXg6bixkZXNlcjooWyx0LHJdKT0+VnQodCxyKSxncm91cHM6ZX19ZnVuY3Rpb24gVGkobil7cmV0dXJue3JlZ2V4Om4sZGVzZXI6KFtlXSk9PmV9fWZ1bmN0aW9uIE9jKG4pe3JldHVybiBuLnJlcGxhY2UoL1tcXFxcLVxcXFxbXFxcXF17fSgpKis/LixcXFxcXFxcXFxcXFxeJHwjXFxcXHNdL2csXFxcIlxcXFxcXFxcJCZcXFwiKX1mdW5jdGlvbiBJYyhuLGUpe2xldCB0PV9lKGUpLHI9X2UoZSxcXFwiezJ9XFxcIikscz1fZShlLFxcXCJ7M31cXFwiKSxpPV9lKGUsXFxcIns0fVxcXCIpLG89X2UoZSxcXFwiezZ9XFxcIiksYT1fZShlLFxcXCJ7MSwyfVxcXCIpLHU9X2UoZSxcXFwiezEsM31cXFwiKSxsPV9lKGUsXFxcInsxLDZ9XFxcIiksZj1fZShlLFxcXCJ7MSw5fVxcXCIpLGQ9X2UoZSxcXFwiezIsNH1cXFwiKSxtPV9lKGUsXFxcIns0LDZ9XFxcIiksaD1EPT4oe3JlZ2V4OlJlZ0V4cChPYyhELnZhbCkpLGRlc2VyOihbVF0pPT5ULGxpdGVyYWw6ITB9KSxnPShEPT57aWYobi5saXRlcmFsKXJldHVybiBoKEQpO3N3aXRjaChELnZhbCl7Y2FzZVxcXCJHXFxcIjpyZXR1cm4gVWUoZS5lcmFzKFxcXCJzaG9ydFxcXCIsITEpLDApO2Nhc2VcXFwiR0dcXFwiOnJldHVybiBVZShlLmVyYXMoXFxcImxvbmdcXFwiLCExKSwwKTtjYXNlXFxcInlcXFwiOnJldHVybiBHKGwpO2Nhc2VcXFwieXlcXFwiOnJldHVybiBHKGQsb3IpO2Nhc2VcXFwieXl5eVxcXCI6cmV0dXJuIEcoaSk7Y2FzZVxcXCJ5eXl5eVxcXCI6cmV0dXJuIEcobSk7Y2FzZVxcXCJ5eXl5eXlcXFwiOnJldHVybiBHKG8pO2Nhc2VcXFwiTVxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJNTVxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJNTU1cXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwic2hvcnRcXFwiLCEwLCExKSwxKTtjYXNlXFxcIk1NTU1cXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwibG9uZ1xcXCIsITAsITEpLDEpO2Nhc2VcXFwiTFxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJMTFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJMTExcXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwic2hvcnRcXFwiLCExLCExKSwxKTtjYXNlXFxcIkxMTExcXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwibG9uZ1xcXCIsITEsITEpLDEpO2Nhc2VcXFwiZFxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJkZFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJvXFxcIjpyZXR1cm4gRyh1KTtjYXNlXFxcIm9vb1xcXCI6cmV0dXJuIEcocyk7Y2FzZVxcXCJISFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJIXFxcIjpyZXR1cm4gRyhhKTtjYXNlXFxcImhoXFxcIjpyZXR1cm4gRyhyKTtjYXNlXFxcImhcXFwiOnJldHVybiBHKGEpO2Nhc2VcXFwibW1cXFwiOnJldHVybiBHKHIpO2Nhc2VcXFwibVxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJxXFxcIjpyZXR1cm4gRyhhKTtjYXNlXFxcInFxXFxcIjpyZXR1cm4gRyhyKTtjYXNlXFxcInNcXFwiOnJldHVybiBHKGEpO2Nhc2VcXFwic3NcXFwiOnJldHVybiBHKHIpO2Nhc2VcXFwiU1xcXCI6cmV0dXJuIEcodSk7Y2FzZVxcXCJTU1NcXFwiOnJldHVybiBHKHMpO2Nhc2VcXFwidVxcXCI6cmV0dXJuIFRpKGYpO2Nhc2VcXFwidXVcXFwiOnJldHVybiBUaShhKTtjYXNlXFxcInV1dVxcXCI6cmV0dXJuIEcodCk7Y2FzZVxcXCJhXFxcIjpyZXR1cm4gVWUoZS5tZXJpZGllbXMoKSwwKTtjYXNlXFxcImtra2tcXFwiOnJldHVybiBHKGkpO2Nhc2VcXFwia2tcXFwiOnJldHVybiBHKGQsb3IpO2Nhc2VcXFwiV1xcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJXV1xcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJFXFxcIjpjYXNlXFxcImNcXFwiOnJldHVybiBHKHQpO2Nhc2VcXFwiRUVFXFxcIjpyZXR1cm4gVWUoZS53ZWVrZGF5cyhcXFwic2hvcnRcXFwiLCExLCExKSwxKTtjYXNlXFxcIkVFRUVcXFwiOnJldHVybiBVZShlLndlZWtkYXlzKFxcXCJsb25nXFxcIiwhMSwhMSksMSk7Y2FzZVxcXCJjY2NcXFwiOnJldHVybiBVZShlLndlZWtkYXlzKFxcXCJzaG9ydFxcXCIsITAsITEpLDEpO2Nhc2VcXFwiY2NjY1xcXCI6cmV0dXJuIFVlKGUud2Vla2RheXMoXFxcImxvbmdcXFwiLCEwLCExKSwxKTtjYXNlXFxcIlpcXFwiOmNhc2VcXFwiWlpcXFwiOnJldHVybiBnYShuZXcgUmVnRXhwKGAoWystXSR7YS5zb3VyY2V9KSg/OjooJHtyLnNvdXJjZX0pKT9gKSwyKTtjYXNlXFxcIlpaWlxcXCI6cmV0dXJuIGdhKG5ldyBSZWdFeHAoYChbKy1dJHthLnNvdXJjZX0pKCR7ci5zb3VyY2V9KT9gKSwyKTtjYXNlXFxcInpcXFwiOnJldHVybiBUaSgvW2Etel8rLS9dezEsMjU2fT8vaSk7ZGVmYXVsdDpyZXR1cm4gaChEKX19KShuKXx8e2ludmFsaWRSZWFzb246Q2N9O3JldHVybiBnLnRva2VuPW4sZ312YXIgTGM9e3llYXI6e1xcXCIyLWRpZ2l0XFxcIjpcXFwieXlcXFwiLG51bWVyaWM6XFxcInl5eXl5XFxcIn0sbW9udGg6e251bWVyaWM6XFxcIk1cXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiTU1cXFwiLHNob3J0OlxcXCJNTU1cXFwiLGxvbmc6XFxcIk1NTU1cXFwifSxkYXk6e251bWVyaWM6XFxcImRcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiZGRcXFwifSx3ZWVrZGF5OntzaG9ydDpcXFwiRUVFXFxcIixsb25nOlxcXCJFRUVFXFxcIn0sZGF5cGVyaW9kOlxcXCJhXFxcIixkYXlQZXJpb2Q6XFxcImFcXFwiLGhvdXI6e251bWVyaWM6XFxcImhcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiaGhcXFwifSxtaW51dGU6e251bWVyaWM6XFxcIm1cXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwibW1cXFwifSxzZWNvbmQ6e251bWVyaWM6XFxcInNcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwic3NcXFwifX07ZnVuY3Rpb24gTmMobixlLHQpe2xldHt0eXBlOnIsdmFsdWU6c309bjtpZihyPT09XFxcImxpdGVyYWxcXFwiKXJldHVybntsaXRlcmFsOiEwLHZhbDpzfTtsZXQgaT10W3JdLG89TGNbcl07aWYodHlwZW9mIG89PVxcXCJvYmplY3RcXFwiJiYobz1vW2ldKSxvKXJldHVybntsaXRlcmFsOiExLHZhbDpvfX1mdW5jdGlvbiBBYyhuKXtyZXR1cm5bYF4ke24ubWFwKHQ9PnQucmVnZXgpLnJlZHVjZSgodCxyKT0+YCR7dH0oJHtyLnNvdXJjZX0pYCxcXFwiXFxcIil9JGAsbl19ZnVuY3Rpb24gTWMobixlLHQpe2xldCByPW4ubWF0Y2goZSk7aWYocil7bGV0IHM9e30saT0xO2ZvcihsZXQgbyBpbiB0KWlmKGt0KHQsbykpe2xldCBhPXRbb10sdT1hLmdyb3Vwcz9hLmdyb3VwcysxOjE7IWEubGl0ZXJhbCYmYS50b2tlbiYmKHNbYS50b2tlbi52YWxbMF1dPWEuZGVzZXIoci5zbGljZShpLGkrdSkpKSxpKz11fXJldHVybltyLHNdfWVsc2UgcmV0dXJuW3Ise31dfWZ1bmN0aW9uIF9jKG4pe2xldCBlPWk9Pntzd2l0Y2goaSl7Y2FzZVxcXCJTXFxcIjpyZXR1cm5cXFwibWlsbGlzZWNvbmRcXFwiO2Nhc2VcXFwic1xcXCI6cmV0dXJuXFxcInNlY29uZFxcXCI7Y2FzZVxcXCJtXFxcIjpyZXR1cm5cXFwibWludXRlXFxcIjtjYXNlXFxcImhcXFwiOmNhc2VcXFwiSFxcXCI6cmV0dXJuXFxcImhvdXJcXFwiO2Nhc2VcXFwiZFxcXCI6cmV0dXJuXFxcImRheVxcXCI7Y2FzZVxcXCJvXFxcIjpyZXR1cm5cXFwib3JkaW5hbFxcXCI7Y2FzZVxcXCJMXFxcIjpjYXNlXFxcIk1cXFwiOnJldHVyblxcXCJtb250aFxcXCI7Y2FzZVxcXCJ5XFxcIjpyZXR1cm5cXFwieWVhclxcXCI7Y2FzZVxcXCJFXFxcIjpjYXNlXFxcImNcXFwiOnJldHVyblxcXCJ3ZWVrZGF5XFxcIjtjYXNlXFxcIldcXFwiOnJldHVyblxcXCJ3ZWVrTnVtYmVyXFxcIjtjYXNlXFxcImtcXFwiOnJldHVyblxcXCJ3ZWVrWWVhclxcXCI7Y2FzZVxcXCJxXFxcIjpyZXR1cm5cXFwicXVhcnRlclxcXCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LHQ9bnVsbCxyO3JldHVybiBXKG4ueil8fCh0PWdlLmNyZWF0ZShuLnopKSxXKG4uWil8fCh0fHwodD1uZXcgaGUobi5aKSkscj1uLlopLFcobi5xKXx8KG4uTT0obi5xLTEpKjMrMSksVyhuLmgpfHwobi5oPDEyJiZuLmE9PT0xP24uaCs9MTI6bi5oPT09MTImJm4uYT09PTAmJihuLmg9MCkpLG4uRz09PTAmJm4ueSYmKG4ueT0tbi55KSxXKG4udSl8fChuLlM9c3Iobi51KSksW09iamVjdC5rZXlzKG4pLnJlZHVjZSgoaSxvKT0+e2xldCBhPWUobyk7cmV0dXJuIGEmJihpW2FdPW5bb10pLGl9LHt9KSx0LHJdfXZhciBTaT1udWxsO2Z1bmN0aW9uIEJjKCl7cmV0dXJuIFNpfHwoU2k9cS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpKSxTaX1mdW5jdGlvbiBQYyhuLGUpe2lmKG4ubGl0ZXJhbClyZXR1cm4gbjtsZXQgdD13ZS5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKG4udmFsKTtpZighdClyZXR1cm4gbjtsZXQgaT13ZS5jcmVhdGUoZSx0KS5mb3JtYXREYXRlVGltZVBhcnRzKEJjKCkpLm1hcChvPT5OYyhvLGUsdCkpO3JldHVybiBpLmluY2x1ZGVzKHZvaWQgMCk/bjppfWZ1bmN0aW9uICRjKG4sZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4ubi5tYXAodD0+UGModCxlKSkpfWZ1bmN0aW9uIGtpKG4sZSx0KXtsZXQgcj0kYyh3ZS5wYXJzZUZvcm1hdCh0KSxuKSxzPXIubWFwKG89PkljKG8sbikpLGk9cy5maW5kKG89Pm8uaW52YWxpZFJlYXNvbik7aWYoaSlyZXR1cm57aW5wdXQ6ZSx0b2tlbnM6cixpbnZhbGlkUmVhc29uOmkuaW52YWxpZFJlYXNvbn07e2xldFtvLGFdPUFjKHMpLHU9UmVnRXhwKG8sXFxcImlcXFwiKSxbbCxmXT1NYyhlLHUsYSksW2QsbSxoXT1mP19jKGYpOltudWxsLG51bGwsdm9pZCAwXTtpZihrdChmLFxcXCJhXFxcIikmJmt0KGYsXFxcIkhcXFwiKSl0aHJvdyBuZXcgcHQoXFxcIkNhbid0IGluY2x1ZGUgbWVyaWRpZW0gd2hlbiBzcGVjaWZ5aW5nIDI0LWhvdXIgZm9ybWF0XFxcIik7cmV0dXJue2lucHV0OmUsdG9rZW5zOnIscmVnZXg6dSxyYXdNYXRjaGVzOmwsbWF0Y2hlczpmLHJlc3VsdDpkLHpvbmU6bSxzcGVjaWZpY09mZnNldDpofX19ZnVuY3Rpb24gRWEobixlLHQpe2xldHtyZXN1bHQ6cix6b25lOnMsc3BlY2lmaWNPZmZzZXQ6aSxpbnZhbGlkUmVhc29uOm99PWtpKG4sZSx0KTtyZXR1cm5bcixzLGksb119dmFyIHdhPVswLDMxLDU5LDkwLDEyMCwxNTEsMTgxLDIxMiwyNDMsMjczLDMwNCwzMzRdLFRhPVswLDMxLDYwLDkxLDEyMSwxNTIsMTgyLDIxMywyNDQsMjc0LDMwNSwzMzVdO2Z1bmN0aW9uIEJlKG4sZSl7cmV0dXJuIG5ldyBkZShcXFwidW5pdCBvdXQgb2YgcmFuZ2VcXFwiLGB5b3Ugc3BlY2lmaWVkICR7ZX0gKG9mIHR5cGUgJHt0eXBlb2YgZX0pIGFzIGEgJHtufSwgd2hpY2ggaXMgaW52YWxpZGApfWZ1bmN0aW9uIFNhKG4sZSx0KXtsZXQgcj1uZXcgRGF0ZShEYXRlLlVUQyhuLGUtMSx0KSk7bjwxMDAmJm4+PTAmJnIuc2V0VVRDRnVsbFllYXIoci5nZXRVVENGdWxsWWVhcigpLTE5MDApO2xldCBzPXIuZ2V0VVRDRGF5KCk7cmV0dXJuIHM9PT0wPzc6c31mdW5jdGlvbiBrYShuLGUsdCl7cmV0dXJuIHQrKGp0KG4pP1RhOndhKVtlLTFdfWZ1bmN0aW9uIENhKG4sZSl7bGV0IHQ9anQobik/VGE6d2Escj10LmZpbmRJbmRleChpPT5pPGUpLHM9ZS10W3JdO3JldHVybnttb250aDpyKzEsZGF5OnN9fWZ1bmN0aW9uIFpyKG4pe2xldHt5ZWFyOmUsbW9udGg6dCxkYXk6cn09bixzPWthKGUsdCxyKSxpPVNhKGUsdCxyKSxvPU1hdGguZmxvb3IoKHMtaSsxMCkvNyksYTtyZXR1cm4gbzwxPyhhPWUtMSxvPWxuKGEpKTpvPmxuKGUpPyhhPWUrMSxvPTEpOmE9ZSxSKHt3ZWVrWWVhcjphLHdlZWtOdW1iZXI6byx3ZWVrZGF5Oml9LGFyKG4pKX1mdW5jdGlvbiBDaShuKXtsZXR7d2Vla1llYXI6ZSx3ZWVrTnVtYmVyOnQsd2Vla2RheTpyfT1uLHM9U2EoZSwxLDQpLGk9cXQoZSksbz10Kjcrci1zLTMsYTtvPDE/KGE9ZS0xLG8rPXF0KGEpKTpvPmk/KGE9ZSsxLG8tPXF0KGUpKTphPWU7bGV0e21vbnRoOnUsZGF5Omx9PUNhKGEsbyk7cmV0dXJuIFIoe3llYXI6YSxtb250aDp1LGRheTpsfSxhcihuKSl9ZnVuY3Rpb24gUXIobil7bGV0e3llYXI6ZSxtb250aDp0LGRheTpyfT1uLHM9a2EoZSx0LHIpO3JldHVybiBSKHt5ZWFyOmUsb3JkaW5hbDpzfSxhcihuKSl9ZnVuY3Rpb24gdmkobil7bGV0e3llYXI6ZSxvcmRpbmFsOnR9PW4se21vbnRoOnIsZGF5OnN9PUNhKGUsdCk7cmV0dXJuIFIoe3llYXI6ZSxtb250aDpyLGRheTpzfSxhcihuKSl9ZnVuY3Rpb24gdmEobil7bGV0IGU9cnIobi53ZWVrWWVhciksdD1udChuLndlZWtOdW1iZXIsMSxsbihuLndlZWtZZWFyKSkscj1udChuLndlZWtkYXksMSw3KTtyZXR1cm4gZT90P3I/ITE6QmUoXFxcIndlZWtkYXlcXFwiLG4ud2Vla2RheSk6QmUoXFxcIndlZWtcXFwiLG4ud2Vlayk6QmUoXFxcIndlZWtZZWFyXFxcIixuLndlZWtZZWFyKX1mdW5jdGlvbiB4YShuKXtsZXQgZT1ycihuLnllYXIpLHQ9bnQobi5vcmRpbmFsLDEscXQobi55ZWFyKSk7cmV0dXJuIGU/dD8hMTpCZShcXFwib3JkaW5hbFxcXCIsbi5vcmRpbmFsKTpCZShcXFwieWVhclxcXCIsbi55ZWFyKX1mdW5jdGlvbiB4aShuKXtsZXQgZT1ycihuLnllYXIpLHQ9bnQobi5tb250aCwxLDEyKSxyPW50KG4uZGF5LDEsdW4obi55ZWFyLG4ubW9udGgpKTtyZXR1cm4gZT90P3I/ITE6QmUoXFxcImRheVxcXCIsbi5kYXkpOkJlKFxcXCJtb250aFxcXCIsbi5tb250aCk6QmUoXFxcInllYXJcXFwiLG4ueWVhcil9ZnVuY3Rpb24gT2kobil7bGV0e2hvdXI6ZSxtaW51dGU6dCxzZWNvbmQ6cixtaWxsaXNlY29uZDpzfT1uLGk9bnQoZSwwLDIzKXx8ZT09PTI0JiZ0PT09MCYmcj09PTAmJnM9PT0wLG89bnQodCwwLDU5KSxhPW50KHIsMCw1OSksdT1udChzLDAsOTk5KTtyZXR1cm4gaT9vP2E/dT8hMTpCZShcXFwibWlsbGlzZWNvbmRcXFwiLHMpOkJlKFxcXCJzZWNvbmRcXFwiLHIpOkJlKFxcXCJtaW51dGVcXFwiLHQpOkJlKFxcXCJob3VyXFxcIixlKX12YXIgSWk9XFxcIkludmFsaWQgRGF0ZVRpbWVcXFwiLE9hPTg2NGUxMztmdW5jdGlvbiBYcihuKXtyZXR1cm4gbmV3IGRlKFxcXCJ1bnN1cHBvcnRlZCB6b25lXFxcIixgdGhlIHpvbmUgXFxcIiR7bi5uYW1lfVxcXCIgaXMgbm90IHN1cHBvcnRlZGApfWZ1bmN0aW9uIExpKG4pe3JldHVybiBuLndlZWtEYXRhPT09bnVsbCYmKG4ud2Vla0RhdGE9WnIobi5jKSksbi53ZWVrRGF0YX1mdW5jdGlvbiBkcihuLGUpe2xldCB0PXt0czpuLnRzLHpvbmU6bi56b25lLGM6bi5jLG86bi5vLGxvYzpuLmxvYyxpbnZhbGlkOm4uaW52YWxpZH07cmV0dXJuIG5ldyBxKHllKFIoUih7fSx0KSxlKSx7b2xkOnR9KSl9ZnVuY3Rpb24gUGEobixlLHQpe2xldCByPW4tZSo2MCoxZTMscz10Lm9mZnNldChyKTtpZihlPT09cylyZXR1cm5bcixlXTtyLT0ocy1lKSo2MCoxZTM7bGV0IGk9dC5vZmZzZXQocik7cmV0dXJuIHM9PT1pP1tyLHNdOltuLU1hdGgubWluKHMsaSkqNjAqMWUzLE1hdGgubWF4KHMsaSldfWZ1bmN0aW9uIElhKG4sZSl7bis9ZSo2MCoxZTM7bGV0IHQ9bmV3IERhdGUobik7cmV0dXJue3llYXI6dC5nZXRVVENGdWxsWWVhcigpLG1vbnRoOnQuZ2V0VVRDTW9udGgoKSsxLGRheTp0LmdldFVUQ0RhdGUoKSxob3VyOnQuZ2V0VVRDSG91cnMoKSxtaW51dGU6dC5nZXRVVENNaW51dGVzKCksc2Vjb25kOnQuZ2V0VVRDU2Vjb25kcygpLG1pbGxpc2Vjb25kOnQuZ2V0VVRDTWlsbGlzZWNvbmRzKCl9fWZ1bmN0aW9uIHRzKG4sZSx0KXtyZXR1cm4gUGEoaXIobiksZSx0KX1mdW5jdGlvbiBMYShuLGUpe2xldCB0PW4ubyxyPW4uYy55ZWFyK01hdGgudHJ1bmMoZS55ZWFycykscz1uLmMubW9udGgrTWF0aC50cnVuYyhlLm1vbnRocykrTWF0aC50cnVuYyhlLnF1YXJ0ZXJzKSozLGk9eWUoUih7fSxuLmMpLHt5ZWFyOnIsbW9udGg6cyxkYXk6TWF0aC5taW4obi5jLmRheSx1bihyLHMpKStNYXRoLnRydW5jKGUuZGF5cykrTWF0aC50cnVuYyhlLndlZWtzKSo3fSksbz1CLmZyb21PYmplY3Qoe3llYXJzOmUueWVhcnMtTWF0aC50cnVuYyhlLnllYXJzKSxxdWFydGVyczplLnF1YXJ0ZXJzLU1hdGgudHJ1bmMoZS5xdWFydGVycyksbW9udGhzOmUubW9udGhzLU1hdGgudHJ1bmMoZS5tb250aHMpLHdlZWtzOmUud2Vla3MtTWF0aC50cnVuYyhlLndlZWtzKSxkYXlzOmUuZGF5cy1NYXRoLnRydW5jKGUuZGF5cyksaG91cnM6ZS5ob3VycyxtaW51dGVzOmUubWludXRlcyxzZWNvbmRzOmUuc2Vjb25kcyxtaWxsaXNlY29uZHM6ZS5taWxsaXNlY29uZHN9KS5hcyhcXFwibWlsbGlzZWNvbmRzXFxcIiksYT1pcihpKSxbdSxsXT1QYShhLHQsbi56b25lKTtyZXR1cm4gbyE9PTAmJih1Kz1vLGw9bi56b25lLm9mZnNldCh1KSkse3RzOnUsbzpsfX1mdW5jdGlvbiBocihuLGUsdCxyLHMsaSl7bGV0e3NldFpvbmU6byx6b25lOmF9PXQ7aWYobiYmT2JqZWN0LmtleXMobikubGVuZ3RoIT09MCl7bGV0IHU9ZXx8YSxsPXEuZnJvbU9iamVjdChuLHllKFIoe30sdCkse3pvbmU6dSxzcGVjaWZpY09mZnNldDppfSkpO3JldHVybiBvP2w6bC5zZXRab25lKGEpfWVsc2UgcmV0dXJuIHEuaW52YWxpZChuZXcgZGUoXFxcInVucGFyc2FibGVcXFwiLGB0aGUgaW5wdXQgXFxcIiR7c31cXFwiIGNhbid0IGJlIHBhcnNlZCBhcyAke3J9YCkpfWZ1bmN0aW9uIGVzKG4sZSx0PSEwKXtyZXR1cm4gbi5pc1ZhbGlkP3dlLmNyZWF0ZShuZS5jcmVhdGUoXFxcImVuLVVTXFxcIikse2FsbG93Wjp0LGZvcmNlU2ltcGxlOiEwfSkuZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKG4sZSk6bnVsbH1mdW5jdGlvbiBOaShuLGUpe2xldCB0PW4uYy55ZWFyPjk5OTl8fG4uYy55ZWFyPDAscj1cXFwiXFxcIjtyZXR1cm4gdCYmbi5jLnllYXI+PTAmJihyKz1cXFwiK1xcXCIpLHIrPXJlKG4uYy55ZWFyLHQ/Njo0KSxlPyhyKz1cXFwiLVxcXCIscis9cmUobi5jLm1vbnRoKSxyKz1cXFwiLVxcXCIscis9cmUobi5jLmRheSkpOihyKz1yZShuLmMubW9udGgpLHIrPXJlKG4uYy5kYXkpKSxyfWZ1bmN0aW9uIE5hKG4sZSx0LHIscyxpKXtsZXQgbz1yZShuLmMuaG91cik7cmV0dXJuIGU/KG8rPVxcXCI6XFxcIixvKz1yZShuLmMubWludXRlKSwobi5jLnNlY29uZCE9PTB8fCF0KSYmKG8rPVxcXCI6XFxcIikpOm8rPXJlKG4uYy5taW51dGUpLChuLmMuc2Vjb25kIT09MHx8IXQpJiYobys9cmUobi5jLnNlY29uZCksKG4uYy5taWxsaXNlY29uZCE9PTB8fCFyKSYmKG8rPVxcXCIuXFxcIixvKz1yZShuLmMubWlsbGlzZWNvbmQsMykpKSxzJiYobi5pc09mZnNldEZpeGVkJiZuLm9mZnNldD09PTAmJiFpP28rPVxcXCJaXFxcIjpuLm88MD8obys9XFxcIi1cXFwiLG8rPXJlKE1hdGgudHJ1bmMoLW4uby82MCkpLG8rPVxcXCI6XFxcIixvKz1yZShNYXRoLnRydW5jKC1uLm8lNjApKSk6KG8rPVxcXCIrXFxcIixvKz1yZShNYXRoLnRydW5jKG4uby82MCkpLG8rPVxcXCI6XFxcIixvKz1yZShNYXRoLnRydW5jKG4ubyU2MCkpKSksaSYmKG8rPVxcXCJbXFxcIituLnpvbmUuaWFuYU5hbWUrXFxcIl1cXFwiKSxvfXZhciAkYT17bW9udGg6MSxkYXk6MSxob3VyOjAsbWludXRlOjAsc2Vjb25kOjAsbWlsbGlzZWNvbmQ6MH0sUmM9e3dlZWtOdW1iZXI6MSx3ZWVrZGF5OjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9LGpjPXtvcmRpbmFsOjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9LFJhPVtcXFwieWVhclxcXCIsXFxcIm1vbnRoXFxcIixcXFwiZGF5XFxcIixcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0scWM9W1xcXCJ3ZWVrWWVhclxcXCIsXFxcIndlZWtOdW1iZXJcXFwiLFxcXCJ3ZWVrZGF5XFxcIixcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0sVmM9W1xcXCJ5ZWFyXFxcIixcXFwib3JkaW5hbFxcXCIsXFxcImhvdXJcXFwiLFxcXCJtaW51dGVcXFwiLFxcXCJzZWNvbmRcXFwiLFxcXCJtaWxsaXNlY29uZFxcXCJdO2Z1bmN0aW9uIEFhKG4pe2xldCBlPXt5ZWFyOlxcXCJ5ZWFyXFxcIix5ZWFyczpcXFwieWVhclxcXCIsbW9udGg6XFxcIm1vbnRoXFxcIixtb250aHM6XFxcIm1vbnRoXFxcIixkYXk6XFxcImRheVxcXCIsZGF5czpcXFwiZGF5XFxcIixob3VyOlxcXCJob3VyXFxcIixob3VyczpcXFwiaG91clxcXCIsbWludXRlOlxcXCJtaW51dGVcXFwiLG1pbnV0ZXM6XFxcIm1pbnV0ZVxcXCIscXVhcnRlcjpcXFwicXVhcnRlclxcXCIscXVhcnRlcnM6XFxcInF1YXJ0ZXJcXFwiLHNlY29uZDpcXFwic2Vjb25kXFxcIixzZWNvbmRzOlxcXCJzZWNvbmRcXFwiLG1pbGxpc2Vjb25kOlxcXCJtaWxsaXNlY29uZFxcXCIsbWlsbGlzZWNvbmRzOlxcXCJtaWxsaXNlY29uZFxcXCIsd2Vla2RheTpcXFwid2Vla2RheVxcXCIsd2Vla2RheXM6XFxcIndlZWtkYXlcXFwiLHdlZWtudW1iZXI6XFxcIndlZWtOdW1iZXJcXFwiLHdlZWtzbnVtYmVyOlxcXCJ3ZWVrTnVtYmVyXFxcIix3ZWVrbnVtYmVyczpcXFwid2Vla051bWJlclxcXCIsd2Vla3llYXI6XFxcIndlZWtZZWFyXFxcIix3ZWVreWVhcnM6XFxcIndlZWtZZWFyXFxcIixvcmRpbmFsOlxcXCJvcmRpbmFsXFxcIn1bbi50b0xvd2VyQ2FzZSgpXTtpZighZSl0aHJvdyBuZXcgc24obik7cmV0dXJuIGV9ZnVuY3Rpb24gTWEobixlKXtsZXQgdD1WZShlLnpvbmUsWC5kZWZhdWx0Wm9uZSkscj1uZS5mcm9tT2JqZWN0KGUpLHM9WC5ub3coKSxpLG87aWYoVyhuLnllYXIpKWk9cztlbHNle2ZvcihsZXQgbCBvZiBSYSlXKG5bbF0pJiYobltsXT0kYVtsXSk7bGV0IGE9eGkobil8fE9pKG4pO2lmKGEpcmV0dXJuIHEuaW52YWxpZChhKTtsZXQgdT10Lm9mZnNldChzKTtbaSxvXT10cyhuLHUsdCl9cmV0dXJuIG5ldyBxKHt0czppLHpvbmU6dCxsb2M6cixvfSl9ZnVuY3Rpb24gX2EobixlLHQpe2xldCByPVcodC5yb3VuZCk/ITA6dC5yb3VuZCxzPShvLGEpPT4obz1hbihvLHJ8fHQuY2FsZW5kYXJ5PzA6MiwhMCksZS5sb2MuY2xvbmUodCkucmVsRm9ybWF0dGVyKHQpLmZvcm1hdChvLGEpKSxpPW89PnQuY2FsZW5kYXJ5P2UuaGFzU2FtZShuLG8pPzA6ZS5zdGFydE9mKG8pLmRpZmYobi5zdGFydE9mKG8pLG8pLmdldChvKTplLmRpZmYobixvKS5nZXQobyk7aWYodC51bml0KXJldHVybiBzKGkodC51bml0KSx0LnVuaXQpO2ZvcihsZXQgbyBvZiB0LnVuaXRzKXtsZXQgYT1pKG8pO2lmKE1hdGguYWJzKGEpPj0xKXJldHVybiBzKGEsbyl9cmV0dXJuIHMobj5lPy0wOjAsdC51bml0c1t0LnVuaXRzLmxlbmd0aC0xXSl9ZnVuY3Rpb24gQmEobil7bGV0IGU9e30sdDtyZXR1cm4gbi5sZW5ndGg+MCYmdHlwZW9mIG5bbi5sZW5ndGgtMV09PVxcXCJvYmplY3RcXFwiPyhlPW5bbi5sZW5ndGgtMV0sdD1BcnJheS5mcm9tKG4pLnNsaWNlKDAsbi5sZW5ndGgtMSkpOnQ9QXJyYXkuZnJvbShuKSxbZSx0XX12YXIgcT1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe2xldCB0PWUuem9uZXx8WC5kZWZhdWx0Wm9uZSxyPWUuaW52YWxpZHx8KE51bWJlci5pc05hTihlLnRzKT9uZXcgZGUoXFxcImludmFsaWQgaW5wdXRcXFwiKTpudWxsKXx8KHQuaXNWYWxpZD9udWxsOlhyKHQpKTt0aGlzLnRzPVcoZS50cyk/WC5ub3coKTplLnRzO2xldCBzPW51bGwsaT1udWxsO2lmKCFyKWlmKGUub2xkJiZlLm9sZC50cz09PXRoaXMudHMmJmUub2xkLnpvbmUuZXF1YWxzKHQpKVtzLGldPVtlLm9sZC5jLGUub2xkLm9dO2Vsc2V7bGV0IGE9dC5vZmZzZXQodGhpcy50cyk7cz1JYSh0aGlzLnRzLGEpLHI9TnVtYmVyLmlzTmFOKHMueWVhcik/bmV3IGRlKFxcXCJpbnZhbGlkIGlucHV0XFxcIik6bnVsbCxzPXI/bnVsbDpzLGk9cj9udWxsOmF9dGhpcy5fem9uZT10LHRoaXMubG9jPWUubG9jfHxuZS5jcmVhdGUoKSx0aGlzLmludmFsaWQ9cix0aGlzLndlZWtEYXRhPW51bGwsdGhpcy5jPXMsdGhpcy5vPWksdGhpcy5pc0x1eG9uRGF0ZVRpbWU9ITB9c3RhdGljIG5vdygpe3JldHVybiBuZXcgbih7fSl9c3RhdGljIGxvY2FsKCl7bGV0W2UsdF09QmEoYXJndW1lbnRzKSxbcixzLGksbyxhLHUsbF09dDtyZXR1cm4gTWEoe3llYXI6cixtb250aDpzLGRheTppLGhvdXI6byxtaW51dGU6YSxzZWNvbmQ6dSxtaWxsaXNlY29uZDpsfSxlKX1zdGF0aWMgdXRjKCl7bGV0W2UsdF09QmEoYXJndW1lbnRzKSxbcixzLGksbyxhLHUsbF09dDtyZXR1cm4gZS56b25lPWhlLnV0Y0luc3RhbmNlLE1hKHt5ZWFyOnIsbW9udGg6cyxkYXk6aSxob3VyOm8sbWludXRlOmEsc2Vjb25kOnUsbWlsbGlzZWNvbmQ6bH0sZSl9c3RhdGljIGZyb21KU0RhdGUoZSx0PXt9KXtsZXQgcj1QbyhlKT9lLnZhbHVlT2YoKTpOYU47aWYoTnVtYmVyLmlzTmFOKHIpKXJldHVybiBuLmludmFsaWQoXFxcImludmFsaWQgaW5wdXRcXFwiKTtsZXQgcz1WZSh0LnpvbmUsWC5kZWZhdWx0Wm9uZSk7cmV0dXJuIHMuaXNWYWxpZD9uZXcgbih7dHM6cix6b25lOnMsbG9jOm5lLmZyb21PYmplY3QodCl9KTpuLmludmFsaWQoWHIocykpfXN0YXRpYyBmcm9tTWlsbGlzKGUsdD17fSl7aWYodHQoZSkpcmV0dXJuIGU8LU9hfHxlPk9hP24uaW52YWxpZChcXFwiVGltZXN0YW1wIG91dCBvZiByYW5nZVxcXCIpOm5ldyBuKHt0czplLHpvbmU6VmUodC56b25lLFguZGVmYXVsdFpvbmUpLGxvYzpuZS5mcm9tT2JqZWN0KHQpfSk7dGhyb3cgbmV3IGZlKGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBlfSB3aXRoIHZhbHVlICR7ZX1gKX1zdGF0aWMgZnJvbVNlY29uZHMoZSx0PXt9KXtpZih0dChlKSlyZXR1cm4gbmV3IG4oe3RzOmUqMWUzLHpvbmU6VmUodC56b25lLFguZGVmYXVsdFpvbmUpLGxvYzpuZS5mcm9tT2JqZWN0KHQpfSk7dGhyb3cgbmV3IGZlKFxcXCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dFxcXCIpfXN0YXRpYyBmcm9tT2JqZWN0KGUsdD17fSl7ZT1lfHx7fTtsZXQgcj1WZSh0LnpvbmUsWC5kZWZhdWx0Wm9uZSk7aWYoIXIuaXNWYWxpZClyZXR1cm4gbi5pbnZhbGlkKFhyKHIpKTtsZXQgcz1YLm5vdygpLGk9Vyh0LnNwZWNpZmljT2Zmc2V0KT9yLm9mZnNldChzKTp0LnNwZWNpZmljT2Zmc2V0LG89Y24oZSxBYSksYT0hVyhvLm9yZGluYWwpLHU9IVcoby55ZWFyKSxsPSFXKG8ubW9udGgpfHwhVyhvLmRheSksZj11fHxsLGQ9by53ZWVrWWVhcnx8by53ZWVrTnVtYmVyLG09bmUuZnJvbU9iamVjdCh0KTtpZigoZnx8YSkmJmQpdGhyb3cgbmV3IHB0KFxcXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXFxcIik7aWYobCYmYSl0aHJvdyBuZXcgcHQoXFxcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XFxcIik7bGV0IGg9ZHx8by53ZWVrZGF5JiYhZixiLGcsRD1JYShzLGkpO2g/KGI9cWMsZz1SYyxEPVpyKEQpKTphPyhiPVZjLGc9amMsRD1RcihEKSk6KGI9UmEsZz0kYSk7bGV0IFQ9ITE7Zm9yKGxldCBDIG9mIGIpe2xldCBWPW9bQ107VyhWKT9UP29bQ109Z1tDXTpvW0NdPURbQ106VD0hMH1sZXQgST1oP3ZhKG8pOmE/eGEobyk6eGkobyksTj1JfHxPaShvKTtpZihOKXJldHVybiBuLmludmFsaWQoTik7bGV0IHk9aD9DaShvKTphP3ZpKG8pOm8sW3csdl09dHMoeSxpLHIpLHg9bmV3IG4oe3RzOncsem9uZTpyLG86dixsb2M6bX0pO3JldHVybiBvLndlZWtkYXkmJmYmJmUud2Vla2RheSE9PXgud2Vla2RheT9uLmludmFsaWQoXFxcIm1pc21hdGNoZWQgd2Vla2RheVxcXCIsYHlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICR7by53ZWVrZGF5fSBhbmQgYSBkYXRlIG9mICR7eC50b0lTTygpfWApOnh9c3RhdGljIGZyb21JU08oZSx0PXt9KXtsZXRbcixzXT1pYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIklTTyA4NjAxXFxcIixlKX1zdGF0aWMgZnJvbVJGQzI4MjIoZSx0PXt9KXtsZXRbcixzXT1vYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIlJGQyAyODIyXFxcIixlKX1zdGF0aWMgZnJvbUhUVFAoZSx0PXt9KXtsZXRbcixzXT1hYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIkhUVFBcXFwiLHQpfXN0YXRpYyBmcm9tRm9ybWF0KGUsdCxyPXt9KXtpZihXKGUpfHxXKHQpKXRocm93IG5ldyBmZShcXFwiZnJvbUZvcm1hdCByZXF1aXJlcyBhbiBpbnB1dCBzdHJpbmcgYW5kIGEgZm9ybWF0XFxcIik7bGV0e2xvY2FsZTpzPW51bGwsbnVtYmVyaW5nU3lzdGVtOmk9bnVsbH09cixvPW5lLmZyb21PcHRzKHtsb2NhbGU6cyxudW1iZXJpbmdTeXN0ZW06aSxkZWZhdWx0VG9FTjohMH0pLFthLHUsbCxmXT1FYShvLGUsdCk7cmV0dXJuIGY/bi5pbnZhbGlkKGYpOmhyKGEsdSxyLGBmb3JtYXQgJHt0fWAsZSxsKX1zdGF0aWMgZnJvbVN0cmluZyhlLHQscj17fSl7cmV0dXJuIG4uZnJvbUZvcm1hdChlLHQscil9c3RhdGljIGZyb21TUUwoZSx0PXt9KXtsZXRbcixzXT1jYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIlNRTFxcXCIsZSl9c3RhdGljIGludmFsaWQoZSx0PW51bGwpe2lmKCFlKXRocm93IG5ldyBmZShcXFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEYXRlVGltZSBpcyBpbnZhbGlkXFxcIik7bGV0IHI9ZSBpbnN0YW5jZW9mIGRlP2U6bmV3IGRlKGUsdCk7aWYoWC50aHJvd09uSW52YWxpZCl0aHJvdyBuZXcgVXIocik7cmV0dXJuIG5ldyBuKHtpbnZhbGlkOnJ9KX1zdGF0aWMgaXNEYXRlVGltZShlKXtyZXR1cm4gZSYmZS5pc0x1eG9uRGF0ZVRpbWV8fCExfWdldChlKXtyZXR1cm4gdGhpc1tlXX1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWQ9PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9Z2V0IGxvY2FsZSgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5sb2MubG9jYWxlOm51bGx9Z2V0IG51bWJlcmluZ1N5c3RlbSgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtOm51bGx9Z2V0IG91dHB1dENhbGVuZGFyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmxvYy5vdXRwdXRDYWxlbmRhcjpudWxsfWdldCB6b25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9Z2V0IHpvbmVOYW1lKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnpvbmUubmFtZTpudWxsfWdldCB5ZWFyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmMueWVhcjpOYU59Z2V0IHF1YXJ0ZXIoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP01hdGguY2VpbCh0aGlzLmMubW9udGgvMyk6TmFOfWdldCBtb250aCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLm1vbnRoOk5hTn1nZXQgZGF5KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmMuZGF5Ok5hTn1nZXQgaG91cigpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLmhvdXI6TmFOfWdldCBtaW51dGUoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuYy5taW51dGU6TmFOfWdldCBzZWNvbmQoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuYy5zZWNvbmQ6TmFOfWdldCBtaWxsaXNlY29uZCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLm1pbGxpc2Vjb25kOk5hTn1nZXQgd2Vla1llYXIoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP0xpKHRoaXMpLndlZWtZZWFyOk5hTn1nZXQgd2Vla051bWJlcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/TGkodGhpcykud2Vla051bWJlcjpOYU59Z2V0IHdlZWtkYXkoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP0xpKHRoaXMpLndlZWtkYXk6TmFOfWdldCBvcmRpbmFsKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9Rcih0aGlzLmMpLm9yZGluYWw6TmFOfWdldCBtb250aFNob3J0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9ndC5tb250aHMoXFxcInNob3J0XFxcIix7bG9jT2JqOnRoaXMubG9jfSlbdGhpcy5tb250aC0xXTpudWxsfWdldCBtb250aExvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2d0Lm1vbnRocyhcXFwibG9uZ1xcXCIse2xvY09iajp0aGlzLmxvY30pW3RoaXMubW9udGgtMV06bnVsbH1nZXQgd2Vla2RheVNob3J0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9ndC53ZWVrZGF5cyhcXFwic2hvcnRcXFwiLHtsb2NPYmo6dGhpcy5sb2N9KVt0aGlzLndlZWtkYXktMV06bnVsbH1nZXQgd2Vla2RheUxvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2d0LndlZWtkYXlzKFxcXCJsb25nXFxcIix7bG9jT2JqOnRoaXMubG9jfSlbdGhpcy53ZWVrZGF5LTFdOm51bGx9Z2V0IG9mZnNldCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/K3RoaXMubzpOYU59Z2V0IG9mZnNldE5hbWVTaG9ydCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cyx7Zm9ybWF0OlxcXCJzaG9ydFxcXCIsbG9jYWxlOnRoaXMubG9jYWxlfSk6bnVsbH1nZXQgb2Zmc2V0TmFtZUxvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMse2Zvcm1hdDpcXFwibG9uZ1xcXCIsbG9jYWxlOnRoaXMubG9jYWxlfSk6bnVsbH1nZXQgaXNPZmZzZXRGaXhlZCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy56b25lLmlzVW5pdmVyc2FsOm51bGx9Z2V0IGlzSW5EU1QoKXtyZXR1cm4gdGhpcy5pc09mZnNldEZpeGVkPyExOnRoaXMub2Zmc2V0PnRoaXMuc2V0KHttb250aDoxLGRheToxfSkub2Zmc2V0fHx0aGlzLm9mZnNldD50aGlzLnNldCh7bW9udGg6NX0pLm9mZnNldH1nZXQgaXNJbkxlYXBZZWFyKCl7cmV0dXJuIGp0KHRoaXMueWVhcil9Z2V0IGRheXNJbk1vbnRoKCl7cmV0dXJuIHVuKHRoaXMueWVhcix0aGlzLm1vbnRoKX1nZXQgZGF5c0luWWVhcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/cXQodGhpcy55ZWFyKTpOYU59Z2V0IHdlZWtzSW5XZWVrWWVhcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/bG4odGhpcy53ZWVrWWVhcik6TmFOfXJlc29sdmVkTG9jYWxlT3B0aW9ucyhlPXt9KXtsZXR7bG9jYWxlOnQsbnVtYmVyaW5nU3lzdGVtOnIsY2FsZW5kYXI6c309d2UuY3JlYXRlKHRoaXMubG9jLmNsb25lKGUpLGUpLnJlc29sdmVkT3B0aW9ucyh0aGlzKTtyZXR1cm57bG9jYWxlOnQsbnVtYmVyaW5nU3lzdGVtOnIsb3V0cHV0Q2FsZW5kYXI6c319dG9VVEMoZT0wLHQ9e30pe3JldHVybiB0aGlzLnNldFpvbmUoaGUuaW5zdGFuY2UoZSksdCl9dG9Mb2NhbCgpe3JldHVybiB0aGlzLnNldFpvbmUoWC5kZWZhdWx0Wm9uZSl9c2V0Wm9uZShlLHtrZWVwTG9jYWxUaW1lOnQ9ITEsa2VlcENhbGVuZGFyVGltZTpyPSExfT17fSl7aWYoZT1WZShlLFguZGVmYXVsdFpvbmUpLGUuZXF1YWxzKHRoaXMuem9uZSkpcmV0dXJuIHRoaXM7aWYoZS5pc1ZhbGlkKXtsZXQgcz10aGlzLnRzO2lmKHR8fHIpe2xldCBpPWUub2Zmc2V0KHRoaXMudHMpLG89dGhpcy50b09iamVjdCgpO1tzXT10cyhvLGksZSl9cmV0dXJuIGRyKHRoaXMse3RzOnMsem9uZTplfSl9ZWxzZSByZXR1cm4gbi5pbnZhbGlkKFhyKGUpKX1yZWNvbmZpZ3VyZSh7bG9jYWxlOmUsbnVtYmVyaW5nU3lzdGVtOnQsb3V0cHV0Q2FsZW5kYXI6cn09e30pe2xldCBzPXRoaXMubG9jLmNsb25lKHtsb2NhbGU6ZSxudW1iZXJpbmdTeXN0ZW06dCxvdXRwdXRDYWxlbmRhcjpyfSk7cmV0dXJuIGRyKHRoaXMse2xvYzpzfSl9c2V0TG9jYWxlKGUpe3JldHVybiB0aGlzLnJlY29uZmlndXJlKHtsb2NhbGU6ZX0pfXNldChlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PWNuKGUsQWEpLHI9IVcodC53ZWVrWWVhcil8fCFXKHQud2Vla051bWJlcil8fCFXKHQud2Vla2RheSkscz0hVyh0Lm9yZGluYWwpLGk9IVcodC55ZWFyKSxvPSFXKHQubW9udGgpfHwhVyh0LmRheSksYT1pfHxvLHU9dC53ZWVrWWVhcnx8dC53ZWVrTnVtYmVyO2lmKChhfHxzKSYmdSl0aHJvdyBuZXcgcHQoXFxcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcXFwiKTtpZihvJiZzKXRocm93IG5ldyBwdChcXFwiQ2FuJ3QgbWl4IG9yZGluYWwgZGF0ZXMgd2l0aCBtb250aC9kYXlcXFwiKTtsZXQgbDtyP2w9Q2koUihSKHt9LFpyKHRoaXMuYykpLHQpKTpXKHQub3JkaW5hbCk/KGw9UihSKHt9LHRoaXMudG9PYmplY3QoKSksdCksVyh0LmRheSkmJihsLmRheT1NYXRoLm1pbih1bihsLnllYXIsbC5tb250aCksbC5kYXkpKSk6bD12aShSKFIoe30sUXIodGhpcy5jKSksdCkpO2xldFtmLGRdPXRzKGwsdGhpcy5vLHRoaXMuem9uZSk7cmV0dXJuIGRyKHRoaXMse3RzOmYsbzpkfSl9cGx1cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PUIuZnJvbUR1cmF0aW9uTGlrZShlKTtyZXR1cm4gZHIodGhpcyxMYSh0aGlzLHQpKX1taW51cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PUIuZnJvbUR1cmF0aW9uTGlrZShlKS5uZWdhdGUoKTtyZXR1cm4gZHIodGhpcyxMYSh0aGlzLHQpKX1zdGFydE9mKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9e30scj1CLm5vcm1hbGl6ZVVuaXQoZSk7c3dpdGNoKHIpe2Nhc2VcXFwieWVhcnNcXFwiOnQubW9udGg9MTtjYXNlXFxcInF1YXJ0ZXJzXFxcIjpjYXNlXFxcIm1vbnRoc1xcXCI6dC5kYXk9MTtjYXNlXFxcIndlZWtzXFxcIjpjYXNlXFxcImRheXNcXFwiOnQuaG91cj0wO2Nhc2VcXFwiaG91cnNcXFwiOnQubWludXRlPTA7Y2FzZVxcXCJtaW51dGVzXFxcIjp0LnNlY29uZD0wO2Nhc2VcXFwic2Vjb25kc1xcXCI6dC5taWxsaXNlY29uZD0wO2JyZWFrO2Nhc2VcXFwibWlsbGlzZWNvbmRzXFxcIjpicmVha31pZihyPT09XFxcIndlZWtzXFxcIiYmKHQud2Vla2RheT0xKSxyPT09XFxcInF1YXJ0ZXJzXFxcIil7bGV0IHM9TWF0aC5jZWlsKHRoaXMubW9udGgvMyk7dC5tb250aD0ocy0xKSozKzF9cmV0dXJuIHRoaXMuc2V0KHQpfWVuZE9mKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5wbHVzKHtbZV06MX0pLnN0YXJ0T2YoZSkubWludXMoMSk6dGhpc310b0Zvcm1hdChlLHQ9e30pe3JldHVybiB0aGlzLmlzVmFsaWQ/d2UuY3JlYXRlKHRoaXMubG9jLnJlZGVmYXVsdFRvRU4odCkpLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyh0aGlzLGUpOklpfXRvTG9jYWxlU3RyaW5nKGU9b24sdD17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD93ZS5jcmVhdGUodGhpcy5sb2MuY2xvbmUodCksZSkuZm9ybWF0RGF0ZVRpbWUodGhpcyk6SWl9dG9Mb2NhbGVQYXJ0cyhlPXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3dlLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShlKSxlKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpOltdfXRvSVNPKHtmb3JtYXQ6ZT1cXFwiZXh0ZW5kZWRcXFwiLHN1cHByZXNzU2Vjb25kczp0PSExLHN1cHByZXNzTWlsbGlzZWNvbmRzOnI9ITEsaW5jbHVkZU9mZnNldDpzPSEwLGV4dGVuZGVkWm9uZTppPSExfT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgbz1lPT09XFxcImV4dGVuZGVkXFxcIixhPU5pKHRoaXMsbyk7cmV0dXJuIGErPVxcXCJUXFxcIixhKz1OYSh0aGlzLG8sdCxyLHMsaSksYX10b0lTT0RhdGUoe2Zvcm1hdDplPVxcXCJleHRlbmRlZFxcXCJ9PXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP05pKHRoaXMsZT09PVxcXCJleHRlbmRlZFxcXCIpOm51bGx9dG9JU09XZWVrRGF0ZSgpe3JldHVybiBlcyh0aGlzLFxcXCJra2trLSdXJ1dXLWNcXFwiKX10b0lTT1RpbWUoe3N1cHByZXNzTWlsbGlzZWNvbmRzOmU9ITEsc3VwcHJlc3NTZWNvbmRzOnQ9ITEsaW5jbHVkZU9mZnNldDpyPSEwLGluY2x1ZGVQcmVmaXg6cz0hMSxleHRlbmRlZFpvbmU6aT0hMSxmb3JtYXQ6bz1cXFwiZXh0ZW5kZWRcXFwifT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD8ocz9cXFwiVFxcXCI6XFxcIlxcXCIpK05hKHRoaXMsbz09PVxcXCJleHRlbmRlZFxcXCIsdCxlLHIsaSk6bnVsbH10b1JGQzI4MjIoKXtyZXR1cm4gZXModGhpcyxcXFwiRUVFLCBkZCBMTEwgeXl5eSBISDptbTpzcyBaWlpcXFwiLCExKX10b0hUVFAoKXtyZXR1cm4gZXModGhpcy50b1VUQygpLFxcXCJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnXFxcIil9dG9TUUxEYXRlKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9OaSh0aGlzLCEwKTpudWxsfXRvU1FMVGltZSh7aW5jbHVkZU9mZnNldDplPSEwLGluY2x1ZGVab25lOnQ9ITEsaW5jbHVkZU9mZnNldFNwYWNlOnI9ITB9PXt9KXtsZXQgcz1cXFwiSEg6bW06c3MuU1NTXFxcIjtyZXR1cm4odHx8ZSkmJihyJiYocys9XFxcIiBcXFwiKSx0P3MrPVxcXCJ6XFxcIjplJiYocys9XFxcIlpaXFxcIikpLGVzKHRoaXMscywhMCl9dG9TUUwoZT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnRvU1FMRGF0ZSgpfSAke3RoaXMudG9TUUxUaW1lKGUpfWA6bnVsbH10b1N0cmluZygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy50b0lTTygpOklpfXZhbHVlT2YoKXtyZXR1cm4gdGhpcy50b01pbGxpcygpfXRvTWlsbGlzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnRzOk5hTn10b1NlY29uZHMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudHMvMWUzOk5hTn10b1VuaXhJbnRlZ2VyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9NYXRoLmZsb29yKHRoaXMudHMvMWUzKTpOYU59dG9KU09OKCl7cmV0dXJuIHRoaXMudG9JU08oKX10b0JTT04oKXtyZXR1cm4gdGhpcy50b0pTRGF0ZSgpfXRvT2JqZWN0KGU9e30pe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJue307bGV0IHQ9Uih7fSx0aGlzLmMpO3JldHVybiBlLmluY2x1ZGVDb25maWcmJih0Lm91dHB1dENhbGVuZGFyPXRoaXMub3V0cHV0Q2FsZW5kYXIsdC5udW1iZXJpbmdTeXN0ZW09dGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtLHQubG9jYWxlPXRoaXMubG9jLmxvY2FsZSksdH10b0pTRGF0ZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmlzVmFsaWQ/dGhpcy50czpOYU4pfWRpZmYoZSx0PVxcXCJtaWxsaXNlY29uZHNcXFwiLHI9e30pe2lmKCF0aGlzLmlzVmFsaWR8fCFlLmlzVmFsaWQpcmV0dXJuIEIuaW52YWxpZChcXFwiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWVcXFwiKTtsZXQgcz1SKHtsb2NhbGU6dGhpcy5sb2NhbGUsbnVtYmVyaW5nU3lzdGVtOnRoaXMubnVtYmVyaW5nU3lzdGVtfSxyKSxpPSRvKHQpLm1hcChCLm5vcm1hbGl6ZVVuaXQpLG89ZS52YWx1ZU9mKCk+dGhpcy52YWx1ZU9mKCksYT1vP3RoaXM6ZSx1PW8/ZTp0aGlzLGw9bWEoYSx1LGkscyk7cmV0dXJuIG8/bC5uZWdhdGUoKTpsfWRpZmZOb3coZT1cXFwibWlsbGlzZWNvbmRzXFxcIix0PXt9KXtyZXR1cm4gdGhpcy5kaWZmKG4ubm93KCksZSx0KX11bnRpbChlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3l0LmZyb21EYXRlVGltZXModGhpcyxlKTp0aGlzfWhhc1NhbWUoZSx0KXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiExO2xldCByPWUudmFsdWVPZigpLHM9dGhpcy5zZXRab25lKGUuem9uZSx7a2VlcExvY2FsVGltZTohMH0pO3JldHVybiBzLnN0YXJ0T2YodCk8PXImJnI8PXMuZW5kT2YodCl9ZXF1YWxzKGUpe3JldHVybiB0aGlzLmlzVmFsaWQmJmUuaXNWYWxpZCYmdGhpcy52YWx1ZU9mKCk9PT1lLnZhbHVlT2YoKSYmdGhpcy56b25lLmVxdWFscyhlLnpvbmUpJiZ0aGlzLmxvYy5lcXVhbHMoZS5sb2MpfXRvUmVsYXRpdmUoZT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgdD1lLmJhc2V8fG4uZnJvbU9iamVjdCh7fSx7em9uZTp0aGlzLnpvbmV9KSxyPWUucGFkZGluZz90aGlzPHQ/LWUucGFkZGluZzplLnBhZGRpbmc6MCxzPVtcXFwieWVhcnNcXFwiLFxcXCJtb250aHNcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCJdLGk9ZS51bml0O3JldHVybiBBcnJheS5pc0FycmF5KGUudW5pdCkmJihzPWUudW5pdCxpPXZvaWQgMCksX2EodCx0aGlzLnBsdXMocikseWUoUih7fSxlKSx7bnVtZXJpYzpcXFwiYWx3YXlzXFxcIix1bml0czpzLHVuaXQ6aX0pKX10b1JlbGF0aXZlQ2FsZW5kYXIoZT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9fYShlLmJhc2V8fG4uZnJvbU9iamVjdCh7fSx7em9uZTp0aGlzLnpvbmV9KSx0aGlzLHllKFIoe30sZSkse251bWVyaWM6XFxcImF1dG9cXFwiLHVuaXRzOltcXFwieWVhcnNcXFwiLFxcXCJtb250aHNcXFwiLFxcXCJkYXlzXFxcIl0sY2FsZW5kYXJ5OiEwfSkpOm51bGx9c3RhdGljIG1pbiguLi5lKXtpZighZS5ldmVyeShuLmlzRGF0ZVRpbWUpKXRocm93IG5ldyBmZShcXFwibWluIHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXFxcIik7cmV0dXJuIFhzKGUsdD0+dC52YWx1ZU9mKCksTWF0aC5taW4pfXN0YXRpYyBtYXgoLi4uZSl7aWYoIWUuZXZlcnkobi5pc0RhdGVUaW1lKSl0aHJvdyBuZXcgZmUoXFxcIm1heCByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lc1xcXCIpO3JldHVybiBYcyhlLHQ9PnQudmFsdWVPZigpLE1hdGgubWF4KX1zdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4oZSx0LHI9e30pe2xldHtsb2NhbGU6cz1udWxsLG51bWJlcmluZ1N5c3RlbTppPW51bGx9PXIsbz1uZS5mcm9tT3B0cyh7bG9jYWxlOnMsbnVtYmVyaW5nU3lzdGVtOmksZGVmYXVsdFRvRU46ITB9KTtyZXR1cm4ga2kobyxlLHQpfXN0YXRpYyBmcm9tU3RyaW5nRXhwbGFpbihlLHQscj17fSl7cmV0dXJuIG4uZnJvbUZvcm1hdEV4cGxhaW4oZSx0LHIpfXN0YXRpYyBnZXQgREFURV9TSE9SVCgpe3JldHVybiBvbn1zdGF0aWMgZ2V0IERBVEVfTUVEKCl7cmV0dXJuICRufXN0YXRpYyBnZXQgREFURV9NRURfV0lUSF9XRUVLREFZKCl7cmV0dXJuIEdzfXN0YXRpYyBnZXQgREFURV9GVUxMKCl7cmV0dXJuIFJufXN0YXRpYyBnZXQgREFURV9IVUdFKCl7cmV0dXJuIGpufXN0YXRpYyBnZXQgVElNRV9TSU1QTEUoKXtyZXR1cm4gcW59c3RhdGljIGdldCBUSU1FX1dJVEhfU0VDT05EUygpe3JldHVybiBWbn1zdGF0aWMgZ2V0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQoKXtyZXR1cm4gVW59c3RhdGljIGdldCBUSU1FX1dJVEhfTE9OR19PRkZTRVQoKXtyZXR1cm4gS259c3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpe3JldHVybiBXbn1zdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9TRUNPTkRTKCl7cmV0dXJuIEhufXN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCgpe3JldHVybiBKbn1zdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCgpe3JldHVybiB6bn1zdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCl7cmV0dXJuIFlufXN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKCl7cmV0dXJuIEdufXN0YXRpYyBnZXQgREFURVRJTUVfTUVEKCl7cmV0dXJuIFpufXN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpe3JldHVybiBRbn1zdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkoKXtyZXR1cm4gWnN9c3RhdGljIGdldCBEQVRFVElNRV9GVUxMKCl7cmV0dXJuIFhufXN0YXRpYyBnZXQgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMoKXtyZXR1cm4gZXJ9c3RhdGljIGdldCBEQVRFVElNRV9IVUdFKCl7cmV0dXJuIHRyfXN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKXtyZXR1cm4gbnJ9fTtmdW5jdGlvbiBibihuKXtpZihxLmlzRGF0ZVRpbWUobikpcmV0dXJuIG47aWYobiYmbi52YWx1ZU9mJiZ0dChuLnZhbHVlT2YoKSkpcmV0dXJuIHEuZnJvbUpTRGF0ZShuKTtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpcmV0dXJuIHEuZnJvbU9iamVjdChuKTt0aHJvdyBuZXcgZmUoYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7bn0sIG9mIHR5cGUgJHt0eXBlb2Ygbn1gKX12YXIgYnQ9VnIobnMoKSk7dmFyIEZuPSgpPT4vWyMqMC05XVxcXFx1RkUwRj9cXFxcdTIwRTN8W1xcXFx4QTlcXFxceEFFXFxcXHUyMDNDXFxcXHUyMDQ5XFxcXHUyMTIyXFxcXHUyMTM5XFxcXHUyMTk0LVxcXFx1MjE5OVxcXFx1MjFBOVxcXFx1MjFBQVxcXFx1MjMxQVxcXFx1MjMxQlxcXFx1MjMyOFxcXFx1MjNDRlxcXFx1MjNFRC1cXFxcdTIzRUZcXFxcdTIzRjFcXFxcdTIzRjJcXFxcdTIzRjgtXFxcXHUyM0ZBXFxcXHUyNEMyXFxcXHUyNUFBXFxcXHUyNUFCXFxcXHUyNUI2XFxcXHUyNUMwXFxcXHUyNUZCXFxcXHUyNUZDXFxcXHUyNUZFXFxcXHUyNjAwLVxcXFx1MjYwNFxcXFx1MjYwRVxcXFx1MjYxMVxcXFx1MjYxNFxcXFx1MjYxNVxcXFx1MjYxOFxcXFx1MjYyMFxcXFx1MjYyMlxcXFx1MjYyM1xcXFx1MjYyNlxcXFx1MjYyQVxcXFx1MjYyRVxcXFx1MjYyRlxcXFx1MjYzOC1cXFxcdTI2M0FcXFxcdTI2NDBcXFxcdTI2NDJcXFxcdTI2NDgtXFxcXHUyNjUzXFxcXHUyNjVGXFxcXHUyNjYwXFxcXHUyNjYzXFxcXHUyNjY1XFxcXHUyNjY2XFxcXHUyNjY4XFxcXHUyNjdCXFxcXHUyNjdFXFxcXHUyNjdGXFxcXHUyNjkyXFxcXHUyNjk0LVxcXFx1MjY5N1xcXFx1MjY5OVxcXFx1MjY5QlxcXFx1MjY5Q1xcXFx1MjZBMFxcXFx1MjZBN1xcXFx1MjZBQVxcXFx1MjZCMFxcXFx1MjZCMVxcXFx1MjZCRFxcXFx1MjZCRVxcXFx1MjZDNFxcXFx1MjZDOFxcXFx1MjZDRlxcXFx1MjZEMVxcXFx1MjZFOVxcXFx1MjZGMC1cXFxcdTI2RjVcXFxcdTI2RjdcXFxcdTI2RjhcXFxcdTI2RkFcXFxcdTI3MDJcXFxcdTI3MDhcXFxcdTI3MDlcXFxcdTI3MEZcXFxcdTI3MTJcXFxcdTI3MTRcXFxcdTI3MTZcXFxcdTI3MURcXFxcdTI3MjFcXFxcdTI3MzNcXFxcdTI3MzRcXFxcdTI3NDRcXFxcdTI3NDdcXFxcdTI3NTdcXFxcdTI3NjNcXFxcdTI3QTFcXFxcdTI5MzRcXFxcdTI5MzVcXFxcdTJCMDUtXFxcXHUyQjA3XFxcXHUyQjFCXFxcXHUyQjFDXFxcXHUyQjU1XFxcXHUzMDMwXFxcXHUzMDNEXFxcXHUzMjk3XFxcXHUzMjk5XVxcXFx1RkUwRj98W1xcXFx1MjYxRFxcXFx1MjcwQ1xcXFx1MjcwRF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVGRTBGKT98W1xcXFx1MjcwQVxcXFx1MjcwQl0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pP3xbXFxcXHUyM0U5LVxcXFx1MjNFQ1xcXFx1MjNGMFxcXFx1MjNGM1xcXFx1MjVGRFxcXFx1MjY5M1xcXFx1MjZBMVxcXFx1MjZBQlxcXFx1MjZDNVxcXFx1MjZDRVxcXFx1MjZENFxcXFx1MjZFQVxcXFx1MjZGRFxcXFx1MjcwNVxcXFx1MjcyOFxcXFx1Mjc0Q1xcXFx1Mjc0RVxcXFx1Mjc1My1cXFxcdTI3NTVcXFxcdTI3OTUtXFxcXHUyNzk3XFxcXHUyN0IwXFxcXHUyN0JGXFxcXHUyQjUwXXxcXFxcdTI2RDNcXFxcdUZFMEY/KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQ0E1KT98XFxcXHUyNkY5KD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RkUwRik/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98XFxcXHUyNzY0XFxcXHVGRTBGPyg/OlxcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REQyNXxcXFxcdUQ4M0VcXFxcdURFNzkpKT98XFxcXHVEODNDKD86W1xcXFx1REMwNFxcXFx1REQ3MFxcXFx1REQ3MVxcXFx1REQ3RVxcXFx1REQ3RlxcXFx1REUwMlxcXFx1REUzN1xcXFx1REYyMVxcXFx1REYyNC1cXFxcdURGMkNcXFxcdURGMzZcXFxcdURGN0RcXFxcdURGOTZcXFxcdURGOTdcXFxcdURGOTktXFxcXHVERjlCXFxcXHVERjlFXFxcXHVERjlGXFxcXHVERkNEXFxcXHVERkNFXFxcXHVERkQ0LVxcXFx1REZERlxcXFx1REZGNVxcXFx1REZGN11cXFxcdUZFMEY/fFtcXFxcdURGODVcXFxcdURGQzJcXFxcdURGQzddKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT98W1xcXFx1REZDNFxcXFx1REZDQV0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pPyg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFtcXFxcdURGQ0JcXFxcdURGQ0NdKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RkUwRik/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98W1xcXFx1RENDRlxcXFx1REQ4RVxcXFx1REQ5MS1cXFxcdUREOUFcXFxcdURFMDFcXFxcdURFMUFcXFxcdURFMkZcXFxcdURFMzItXFxcXHVERTM2XFxcXHVERTM4LVxcXFx1REUzQVxcXFx1REU1MFxcXFx1REU1MVxcXFx1REYwMC1cXFxcdURGMjBcXFxcdURGMkQtXFxcXHVERjM1XFxcXHVERjM3LVxcXFx1REY0M1xcXFx1REY0NS1cXFxcdURGNEFcXFxcdURGNEMtXFxcXHVERjdDXFxcXHVERjdFLVxcXFx1REY4NFxcXFx1REY4Ni1cXFxcdURGOTNcXFxcdURGQTAtXFxcXHVERkMxXFxcXHVERkM1XFxcXHVERkM2XFxcXHVERkM4XFxcXHVERkM5XFxcXHVERkNGLVxcXFx1REZEM1xcXFx1REZFMC1cXFxcdURGRjBcXFxcdURGRjgtXFxcXHVERkZGXXxcXFxcdURERTZcXFxcdUQ4M0NbXFxcXHVEREU4LVxcXFx1RERFQ1xcXFx1RERFRVxcXFx1RERGMVxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGNi1cXFxcdURERkFcXFxcdURERkNcXFxcdURERkRcXFxcdURERkZdfFxcXFx1RERFN1xcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERTdcXFxcdURERTktXFxcXHVEREVGXFxcXHVEREYxLVxcXFx1RERGNFxcXFx1RERGNi1cXFxcdURERjlcXFxcdURERkJcXFxcdURERkNcXFxcdURERkVcXFxcdURERkZdfFxcXFx1RERFOFxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERThcXFxcdURERTlcXFxcdURERUItXFxcXHVEREVFXFxcXHVEREYwLVxcXFx1RERGN1xcXFx1RERGQS1cXFxcdURERkZdfFxcXFx1RERFOVxcXFx1RDgzQ1tcXFxcdURERUFcXFxcdURERUNcXFxcdURERUZcXFxcdURERjBcXFxcdURERjJcXFxcdURERjRcXFxcdURERkZdfFxcXFx1RERFQVxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERThcXFxcdURERUFcXFxcdURERUNcXFxcdURERURcXFxcdURERjctXFxcXHVEREZBXXxcXFxcdURERUJcXFxcdUQ4M0NbXFxcXHVEREVFLVxcXFx1RERGMFxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGN118XFxcXHVEREVDXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFN1xcXFx1RERFOS1cXFxcdURERUVcXFxcdURERjEtXFxcXHVEREYzXFxcXHVEREY1LVxcXFx1RERGQVxcXFx1RERGQ1xcXFx1RERGRV18XFxcXHVEREVEXFxcXHVEODNDW1xcXFx1RERGMFxcXFx1RERGMlxcXFx1RERGM1xcXFx1RERGN1xcXFx1RERGOVxcXFx1RERGQV18XFxcXHVEREVFXFxcXHVEODNDW1xcXFx1RERFOC1cXFxcdURERUFcXFxcdURERjEtXFxcXHVEREY0XFxcXHVEREY2LVxcXFx1RERGOV18XFxcXHVEREVGXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGNV18XFxcXHVEREYwXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERFQy1cXFxcdURERUVcXFxcdURERjJcXFxcdURERjNcXFxcdURERjVcXFxcdURERjdcXFxcdURERkNcXFxcdURERkVcXFxcdURERkZdfFxcXFx1RERGMVxcXFx1RDgzQ1tcXFxcdURERTYtXFxcXHVEREU4XFxcXHVEREVFXFxcXHVEREYwXFxcXHVEREY3LVxcXFx1RERGQlxcXFx1RERGRV18XFxcXHVEREYyXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFOC1cXFxcdURERURcXFxcdURERjAtXFxcXHVEREZGXXxcXFxcdURERjNcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREU4XFxcXHVEREVBLVxcXFx1RERFQ1xcXFx1RERFRVxcXFx1RERGMVxcXFx1RERGNFxcXFx1RERGNVxcXFx1RERGN1xcXFx1RERGQVxcXFx1RERGRl18XFxcXHVEREY0XFxcXHVEODNDXFxcXHVEREYyfFxcXFx1RERGNVxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERUEtXFxcXHVEREVEXFxcXHVEREYwLVxcXFx1RERGM1xcXFx1RERGNy1cXFxcdURERjlcXFxcdURERkNcXFxcdURERkVdfFxcXFx1RERGNlxcXFx1RDgzQ1xcXFx1RERFNnxcXFxcdURERjdcXFxcdUQ4M0NbXFxcXHVEREVBXFxcXHVEREY0XFxcXHVEREY4XFxcXHVEREZBXFxcXHVEREZDXXxcXFxcdURERjhcXFxcdUQ4M0NbXFxcXHVEREU2LVxcXFx1RERFQVxcXFx1RERFQy1cXFxcdURERjRcXFxcdURERjctXFxcXHVEREY5XFxcXHVEREZCXFxcXHVEREZELVxcXFx1RERGRl18XFxcXHVEREY5XFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFOFxcXFx1RERFOVxcXFx1RERFQi1cXFxcdURERURcXFxcdURERUYtXFxcXHVEREY0XFxcXHVEREY3XFxcXHVEREY5XFxcXHVEREZCXFxcXHVEREZDXFxcXHVEREZGXXxcXFxcdURERkFcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREVDXFxcXHVEREYyXFxcXHVEREYzXFxcXHVEREY4XFxcXHVEREZFXFxcXHVEREZGXXxcXFxcdURERkJcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREU4XFxcXHVEREVBXFxcXHVEREVDXFxcXHVEREVFXFxcXHVEREYzXFxcXHVEREZBXXxcXFxcdURERkNcXFxcdUQ4M0NbXFxcXHVEREVCXFxcXHVEREY4XXxcXFxcdURERkRcXFxcdUQ4M0NcXFxcdURERjB8XFxcXHVEREZFXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERGOV18XFxcXHVEREZGXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERGMlxcXFx1RERGQ118XFxcXHVERjQ0KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVERkVCKT98XFxcXHVERjRCKD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVERkU5KT98XFxcXHVERkMzKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98XFxcXHUyN0ExXFxcXHVGRTBGPykpP3xcXFxcdURGRjNcXFxcdUZFMEY/KD86XFxcXHUyMDBEKD86XFxcXHUyNkE3XFxcXHVGRTBGP3xcXFxcdUQ4M0NcXFxcdURGMDgpKT98XFxcXHVERkY0KD86XFxcXHUyMDBEXFxcXHUyNjIwXFxcXHVGRTBGP3xcXFxcdURCNDBcXFxcdURDNjdcXFxcdURCNDBcXFxcdURDNjJcXFxcdURCNDAoPzpcXFxcdURDNjVcXFxcdURCNDBcXFxcdURDNkVcXFxcdURCNDBcXFxcdURDNjd8XFxcXHVEQzczXFxcXHVEQjQwXFxcXHVEQzYzXFxcXHVEQjQwXFxcXHVEQzc0fFxcXFx1REM3N1xcXFx1REI0MFxcXFx1REM2Q1xcXFx1REI0MFxcXFx1REM3MylcXFxcdURCNDBcXFxcdURDN0YpPyl8XFxcXHVEODNEKD86W1xcXFx1REMzRlxcXFx1RENGRFxcXFx1REQ0OVxcXFx1REQ0QVxcXFx1REQ2RlxcXFx1REQ3MFxcXFx1REQ3M1xcXFx1REQ3Ni1cXFxcdURENzlcXFxcdUREODdcXFxcdUREOEEtXFxcXHVERDhEXFxcXHVEREE1XFxcXHVEREE4XFxcXHVEREIxXFxcXHVEREIyXFxcXHVEREJDXFxcXHVEREMyLVxcXFx1RERDNFxcXFx1REREMS1cXFxcdURERDNcXFxcdUREREMtXFxcXHVERERFXFxcXHVEREUxXFxcXHVEREUzXFxcXHVEREU4XFxcXHVEREVGXFxcXHVEREYzXFxcXHVEREZBXFxcXHVERUNCXFxcXHVERUNELVxcXFx1REVDRlxcXFx1REVFMC1cXFxcdURFRTVcXFxcdURFRTlcXFxcdURFRjBcXFxcdURFRjNdXFxcXHVGRTBGP3xbXFxcXHVEQzQyXFxcXHVEQzQzXFxcXHVEQzQ2LVxcXFx1REM1MFxcXFx1REM2NlxcXFx1REM2N1xcXFx1REM2Qi1cXFxcdURDNkRcXFxcdURDNzJcXFxcdURDNzQtXFxcXHVEQzc2XFxcXHVEQzc4XFxcXHVEQzdDXFxcXHVEQzgzXFxcXHVEQzg1XFxcXHVEQzhGXFxcXHVEQzkxXFxcXHVEQ0FBXFxcXHVERDdBXFxcXHVERDk1XFxcXHVERDk2XFxcXHVERTRDXFxcXHVERTRGXFxcXHVERUMwXFxcXHVERUNDXSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSk/fFtcXFxcdURDNkVcXFxcdURDNzBcXFxcdURDNzFcXFxcdURDNzNcXFxcdURDNzdcXFxcdURDODFcXFxcdURDODJcXFxcdURDODZcXFxcdURDODdcXFxcdURFNDUtXFxcXHVERTQ3XFxcXHVERTRCXFxcXHVERTREXFxcXHVERTRFXFxcXHVERUEzXFxcXHVERUI0XFxcXHVERUI1XSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSk/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98W1xcXFx1REQ3NFxcXFx1REQ5MF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVGRTBGKT98W1xcXFx1REMwMC1cXFxcdURDMDdcXFxcdURDMDktXFxcXHVEQzE0XFxcXHVEQzE2LVxcXFx1REMyNVxcXFx1REMyNy1cXFxcdURDM0FcXFxcdURDM0MtXFxcXHVEQzNFXFxcXHVEQzQwXFxcXHVEQzQ0XFxcXHVEQzQ1XFxcXHVEQzUxLVxcXFx1REM2NVxcXFx1REM2QVxcXFx1REM3OS1cXFxcdURDN0JcXFxcdURDN0QtXFxcXHVEQzgwXFxcXHVEQzg0XFxcXHVEQzg4LVxcXFx1REM4RVxcXFx1REM5MFxcXFx1REM5Mi1cXFxcdURDQTlcXFxcdURDQUItXFxcXHVEQ0ZDXFxcXHVEQ0ZGLVxcXFx1REQzRFxcXFx1REQ0Qi1cXFxcdURENEVcXFxcdURENTAtXFxcXHVERDY3XFxcXHVEREE0XFxcXHVEREZCLVxcXFx1REUyRFxcXFx1REUyRi1cXFxcdURFMzRcXFxcdURFMzctXFxcXHVERTQxXFxcXHVERTQzXFxcXHVERTQ0XFxcXHVERTQ4LVxcXFx1REU0QVxcXFx1REU4MC1cXFxcdURFQTJcXFxcdURFQTQtXFxcXHVERUIzXFxcXHVERUI3LVxcXFx1REVCRlxcXFx1REVDMS1cXFxcdURFQzVcXFxcdURFRDAtXFxcXHVERUQyXFxcXHVERUQ1LVxcXFx1REVEN1xcXFx1REVEQy1cXFxcdURFREZcXFxcdURFRUJcXFxcdURFRUNcXFxcdURFRjQtXFxcXHVERUZDXFxcXHVERkUwLVxcXFx1REZFQlxcXFx1REZGMF18XFxcXHVEQzA4KD86XFxcXHUyMDBEXFxcXHUyQjFCKT98XFxcXHVEQzE1KD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREJBKT98XFxcXHVEQzI2KD86XFxcXHUyMDBEKD86XFxcXHUyQjFCfFxcXFx1RDgzRFxcXFx1REQyNSkpP3xcXFxcdURDM0IoPzpcXFxcdTIwMERcXFxcdTI3NDRcXFxcdUZFMEY/KT98XFxcXHVEQzQxXFxcXHVGRTBGPyg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RERFOFxcXFx1RkUwRj8pP3xcXFxcdURDNjgoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4fFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldXFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPyl8W1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPyl8XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdKSl8XFxcXHVEODNDKD86XFxcXHVERkZCKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0QpP1xcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQy1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkMoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RcXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCXFxcXHVERkZELVxcXFx1REZGRl0pKSk/fFxcXFx1REZGRCg/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEKT9cXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkNcXFxcdURGRkVcXFxcdURGRkZdKSkpP3xcXFxcdURGRkUoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RcXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRFxcXFx1REZGRl0pKSk/fFxcXFx1REZGRig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEKT9cXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZFXSkpKT8pKT98XFxcXHVEQzY5KD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0QpP1tcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRCg/OltcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1REM2Nig/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2Nik/fFxcXFx1REM2Nyg/OlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjZcXFxcdURDNjddKT98XFxcXHVEQzY5XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPykpfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXSkpfFxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86W1xcXFx1REM2OFxcXFx1REM2OV18XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV0pXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XVxcXFx1RDgzQ1tcXFxcdURGRkMtXFxcXHVERkZGXSkpKT98XFxcXHVERkZDKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpbXFxcXHVEQzY4XFxcXHVEQzY5XXxcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XSlcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldXFxcXHVEODNDW1xcXFx1REZGQlxcXFx1REZGRC1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkQoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldKVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV1cXFxcdUQ4M0NbXFxcXHVERkZCXFxcXHVERkZDXFxcXHVERkZFXFxcXHVERkZGXSkpKT98XFxcXHVERkZFKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpbXFxcXHVEQzY4XFxcXHVEQzY5XXxcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XSlcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkRcXFxcdURGRkZdKSkpP3xcXFxcdURGRkYoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldKVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV1cXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRV0pKSk/KSk/fFxcXFx1REM2Rig/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFxcXFx1REQ3NSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUZFMEYpPyg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFxcXFx1REUyRSg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RENBOCk/fFxcXFx1REUzNSg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RENBQik/fFxcXFx1REUzNig/OlxcXFx1MjAwRFxcXFx1RDgzQ1xcXFx1REYyQlxcXFx1RkUwRj8pP3xcXFxcdURFNDIoPzpcXFxcdTIwMERbXFxcXHUyMTk0XFxcXHUyMTk1XVxcXFx1RkUwRj8pP3xcXFxcdURFQjYoPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pPyg/OlxcXFx1MjAwRCg/OltcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xcXFxcdTI3QTFcXFxcdUZFMEY/KSk/KXxcXFxcdUQ4M0UoPzpbXFxcXHVERDBDXFxcXHVERDBGXFxcXHVERDE4LVxcXFx1REQxRlxcXFx1REQzMC1cXFxcdUREMzRcXFxcdUREMzZcXFxcdURENzdcXFxcdUREQjVcXFxcdUREQjZcXFxcdUREQkJcXFxcdURERDJcXFxcdURERDNcXFxcdURERDVcXFxcdURFQzMtXFxcXHVERUM1XFxcXHVERUYwXFxcXHVERUYyLVxcXFx1REVGOF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pP3xbXFxcXHVERDI2XFxcXHVERDM1XFxcXHVERDM3LVxcXFx1REQzOVxcXFx1REQzRFxcXFx1REQzRVxcXFx1RERCOFxcXFx1RERCOVxcXFx1RERDRFxcXFx1RERDRlxcXFx1RERENFxcXFx1RERENi1cXFxcdURERERdKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMERbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8pP3xbXFxcXHVERERFXFxcXHVERERGXSg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFtcXFxcdUREMERcXFxcdUREMEVcXFxcdUREMTAtXFxcXHVERDE3XFxcXHVERDIwLVxcXFx1REQyNVxcXFx1REQyNy1cXFxcdUREMkZcXFxcdUREM0FcXFxcdUREM0YtXFxcXHVERDQ1XFxcXHVERDQ3LVxcXFx1REQ3NlxcXFx1REQ3OC1cXFxcdUREQjRcXFxcdUREQjdcXFxcdUREQkFcXFxcdUREQkMtXFxcXHVERENDXFxcXHVEREQwXFxcXHVEREUwLVxcXFx1RERGRlxcXFx1REU3MC1cXFxcdURFN0NcXFxcdURFODAtXFxcXHVERTg5XFxcXHVERThGLVxcXFx1REVDMlxcXFx1REVDNlxcXFx1REVDRS1cXFxcdURFRENcXFxcdURFREYtXFxcXHVERUU5XXxcXFxcdUREM0MoPzpcXFxcdTIwMERbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj98XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT98XFxcXHVERENFKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98XFxcXHUyN0ExXFxcXHVGRTBGPykpP3xcXFxcdURERDEoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMXxcXFxcdURERDFcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIoPzpcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIpP3xcXFxcdURERDIoPzpcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIpPykpfFxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEKD86XFxcXHVEODNEXFxcXHVEQzhCXFxcXHUyMDBEKT9cXFxcdUQ4M0VcXFxcdURERDFcXFxcdUQ4M0NbXFxcXHVERkZDLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSkpKT98XFxcXHVERkZDKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMEQoPzpcXFxcdUQ4M0RcXFxcdURDOEJcXFxcdTIwMEQpP1xcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkQtXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjg0XFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkQoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REM4QlxcXFx1MjAwRCk/XFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQlxcXFx1REZGQ1xcXFx1REZGRVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSkpKT98XFxcXHVERkZFKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMEQoPzpcXFxcdUQ4M0RcXFxcdURDOEJcXFxcdTIwMEQpP1xcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZEXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjg0XFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkYoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REM4QlxcXFx1MjAwRCk/XFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkVdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGODRcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDFcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pKSk/KSk/fFxcXFx1REVGMSg/OlxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkMtXFxcXHVERkZGXSk/fFxcXFx1REZGQyg/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkQtXFxcXHVERkZGXSk/fFxcXFx1REZGRCg/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkNcXFxcdURGRkVcXFxcdURGRkZdKT98XFxcXHVERkZFKD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVERUYyXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkRcXFxcdURGRkZdKT98XFxcXHVERkZGKD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVERUYyXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkVdKT8pKT8pL2c7ZnVuY3Rpb24gTWkobil7cmV0dXJuIG49PW51bGw/bjpuLnNoaWZ0VG8oXFxcInllYXJzXFxcIixcXFwibW9udGhzXFxcIixcXFwid2Vla3NcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCIpLm5vcm1hbGl6ZSgpfWZ1bmN0aW9uIGphKG4sZSx0LHIpe3JldHVybiBuLnNlY29uZD09MCYmbi5taW51dGU9PTAmJm4uaG91cj09MD9uLnRvTG9jYWwoKS50b0Zvcm1hdChlLHtsb2NhbGU6cn0pOm4udG9Mb2NhbCgpLnRvRm9ybWF0KHQse2xvY2FsZTpyfSl9ZnVuY3Rpb24gcWEobil7bj1NaShuKTtsZXQgZT1cXFwiXFxcIjtyZXR1cm4gbi55ZWFycyYmKGUrPWAke24ueWVhcnN9IHllYXJzLCBgKSxuLm1vbnRocyYmKGUrPWAke24ubW9udGhzfSBtb250aHMsIGApLG4ud2Vla3MmJihlKz1gJHtuLndlZWtzfSB3ZWVrcywgYCksbi5kYXlzJiYoZSs9YCR7bi5kYXlzfSBkYXlzLCBgKSxuLmhvdXJzJiYoZSs9YCR7bi5ob3Vyc30gaG91cnMsIGApLG4ubWludXRlcyYmKGUrPWAke24ubWludXRlc30gbWludXRlcywgYCksbi5zZWNvbmRzJiYoZSs9YCR7TWF0aC5yb3VuZChuLnNlY29uZHMpfSBzZWNvbmRzLCBgKSxuLm1pbGxpc2Vjb25kcyYmKGUrPWAke01hdGgucm91bmQobi5taWxsaXNlY29uZHMpfSBtcywgYCksZS5lbmRzV2l0aChcXFwiLCBcXFwiKSYmKGU9ZS5zdWJzdHJpbmcoMCxlLmxlbmd0aC0yKSksZX1mdW5jdGlvbiBFbihuKXtyZXR1cm4gbi5pbmNsdWRlcyhcXFwiL1xcXCIpJiYobj1uLnN1YnN0cmluZyhuLmxhc3RJbmRleE9mKFxcXCIvXFxcIikrMSkpLG4uZW5kc1dpdGgoXFxcIi5tZFxcXCIpJiYobj1uLnN1YnN0cmluZygwLG4ubGVuZ3RoLTMpKSxufWZ1bmN0aW9uIFZhKG4pe3JldHVybiBuLmluY2x1ZGVzKFxcXCIuXFxcIik/bi5zdWJzdHJpbmcobi5sYXN0SW5kZXhPZihcXFwiLlxcXCIpKzEpOlxcXCJcXFwifXZhciBVYz1idC5hbHQoYnQucmVnZXgobmV3IFJlZ0V4cChGbigpLFxcXCJcXFwiKSksYnQucmVnZXgoL1swLTlcXFxccHtMZXR0ZXJ9Xy1dKy91KSxidC53aGl0ZXNwYWNlLm1hcChuPT5cXFwiIFxcXCIpLGJ0LmFueS5tYXAobj0+XFxcIiBcXFwiKSkubWFueSgpLm1hcChuPT5uLmpvaW4oXFxcIlxcXCIpLnNwbGl0KC9cXFxccysvKS5qb2luKFxcXCIgXFxcIikudHJpbSgpKTtmdW5jdGlvbiBVYShuKXtyZXR1cm4gVWMudHJ5UGFyc2Uobil9dmFyIE9lPWNsYXNzIG57c3RhdGljIGZpbGUoZSx0PSExLHIpe3JldHVybiBuZXcgbih7cGF0aDplLGVtYmVkOnQsZGlzcGxheTpyLHN1YnBhdGg6dm9pZCAwLHR5cGU6XFxcImZpbGVcXFwifSl9c3RhdGljIGluZmVyKGUsdD0hMSxyKXtpZihlLmluY2x1ZGVzKFxcXCIjXlxcXCIpKXtsZXQgcz1lLnNwbGl0KFxcXCIjXlxcXCIpO3JldHVybiBuLmJsb2NrKHNbMF0sc1sxXSx0LHIpfWVsc2UgaWYoZS5pbmNsdWRlcyhcXFwiI1xcXCIpKXtsZXQgcz1lLnNwbGl0KFxcXCIjXFxcIik7cmV0dXJuIG4uaGVhZGVyKHNbMF0sc1sxXSx0LHIpfWVsc2UgcmV0dXJuIG4uZmlsZShlLHQscil9c3RhdGljIGhlYWRlcihlLHQscixzKXtyZXR1cm4gbmV3IG4oe3BhdGg6ZSxlbWJlZDpyLGRpc3BsYXk6cyxzdWJwYXRoOlVhKHQpLHR5cGU6XFxcImhlYWRlclxcXCJ9KX1zdGF0aWMgYmxvY2soZSx0LHIscyl7cmV0dXJuIG5ldyBuKHtwYXRoOmUsZW1iZWQ6cixkaXNwbGF5OnMsc3VicGF0aDp0LHR5cGU6XFxcImJsb2NrXFxcIn0pfXN0YXRpYyBmcm9tT2JqZWN0KGUpe3JldHVybiBuZXcgbihlKX1zdGF0aWMgcGFyc2VJbm5lcihlKXtsZXRbdCxyXT1LYyhlKTtyZXR1cm4gbi5pbmZlcih0LCExLHIpfWNvbnN0cnVjdG9yKGUpe09iamVjdC5hc3NpZ24odGhpcyxlKX13aXRoUGF0aChlKXtyZXR1cm4gbmV3IG4oT2JqZWN0LmFzc2lnbih7fSx0aGlzLHtwYXRoOmV9KSl9d2l0aERpc3BsYXkoZSl7cmV0dXJuIG5ldyBuKE9iamVjdC5hc3NpZ24oe30sdGhpcyx7ZGlzcGxheTplfSkpfXdpdGhFbWJlZChlKXtyZXR1cm4gdGhpcy5lbWJlZD09ZT90aGlzOm5ldyBuKE9iamVjdC5hc3NpZ24oe30sdGhpcyx7ZW1iZWQ6ZX0pKX13aXRoSGVhZGVyKGUpe3JldHVybiBuLmhlYWRlcih0aGlzLnBhdGgsZSx0aGlzLmVtYmVkLHRoaXMuZGlzcGxheSl9d2l0aEJsb2NrKGUpe3JldHVybiBuLmJsb2NrKHRoaXMucGF0aCxlLHRoaXMuZW1iZWQsdGhpcy5kaXNwbGF5KX1lcXVhbHMoZSl7cmV0dXJuIGU9PW51bGx8fGU9PW51bGw/ITE6dGhpcy5wYXRoPT1lLnBhdGgmJnRoaXMudHlwZT09ZS50eXBlJiZ0aGlzLnN1YnBhdGg9PWUuc3VicGF0aH10b1N0cmluZygpe3JldHVybiB0aGlzLm1hcmtkb3duKCl9dG9PYmplY3QoKXtyZXR1cm57cGF0aDp0aGlzLnBhdGgsdHlwZTp0aGlzLnR5cGUsc3VicGF0aDp0aGlzLnN1YnBhdGgsZGlzcGxheTp0aGlzLmRpc3BsYXksZW1iZWQ6dGhpcy5lbWJlZH19dG9GaWxlKCl7cmV0dXJuIG4uZmlsZSh0aGlzLnBhdGgsdGhpcy5lbWJlZCx0aGlzLmRpc3BsYXkpfXRvRW1iZWQoKXtyZXR1cm4gdGhpcy53aXRoRW1iZWQoITApfWZyb21FbWJlZCgpe3JldHVybiB0aGlzLndpdGhFbWJlZCghMSl9bWFya2Rvd24oKXtsZXQgZT0odGhpcy5lbWJlZD9cXFwiIVxcXCI6XFxcIlxcXCIpK1xcXCJbW1xcXCIrdGhpcy5vYnNpZGlhbkxpbmsoKTtyZXR1cm4gZSs9XFxcInxcXFwiLGUrPXRoaXMuZGlzcGxheU9yRGVmYXVsdCgpLGUrPVxcXCJdXVxcXCIsZX1kaXNwbGF5T3JEZWZhdWx0KCl7aWYodGhpcy5kaXNwbGF5KXJldHVybiB0aGlzLmRpc3BsYXk7e2xldCBlPUVuKHRoaXMucGF0aCk7cmV0dXJuKHRoaXMudHlwZT09XFxcImhlYWRlclxcXCJ8fHRoaXMudHlwZT09XFxcImJsb2NrXFxcIikmJihlKz1cXFwiID4gXFxcIit0aGlzLnN1YnBhdGgpLGV9fW9ic2lkaWFuTGluaygpe3ZhciB0LHI7bGV0IGU9dGhpcy5wYXRoLnJlcGxhY2UoXFxcInxcXFwiLFxcXCJcXFxcXFxcXHxcXFwiKTtyZXR1cm4gdGhpcy50eXBlPT1cXFwiaGVhZGVyXFxcIj9lK1xcXCIjXFxcIisoKHQ9dGhpcy5zdWJwYXRoKT09bnVsbD92b2lkIDA6dC5yZXBsYWNlKFxcXCJ8XFxcIixcXFwiXFxcXFxcXFx8XFxcIikpOnRoaXMudHlwZT09XFxcImJsb2NrXFxcIj9lK1xcXCIjXlxcXCIrKChyPXRoaXMuc3VicGF0aCk9PW51bGw/dm9pZCAwOnIucmVwbGFjZShcXFwifFxcXCIsXFxcIlxcXFxcXFxcfFxcXCIpKTplfWZpbGVOYW1lKCl7cmV0dXJuIEVuKHRoaXMucGF0aCl9fTtmdW5jdGlvbiBLYyhuKXtsZXQgZT0tMTtmb3IoOyhlPW4uaW5kZXhPZihcXFwifFxcXCIsZSsxKSk+PTA7KWlmKCEoZT4wJiZuW2UtMV09PVxcXCJcXFxcXFxcXFxcXCIpKXJldHVybltuLnN1YnN0cmluZygwLGUpLnJlcGxhY2UoL1xcXFxcXFxcXFxcXHwvZyxcXFwifFxcXCIpLG4uc3Vic3RyaW5nKGUrMSldO3JldHVybltuLnJlcGxhY2UoL1xcXFxcXFxcXFxcXHwvZyxcXFwifFxcXCIpLHZvaWQgMF19dmFyIHJzPVN5bWJvbC5mb3IoXFxcInlhbWwuYWxpYXNcXFwiKSxzcz1TeW1ib2wuZm9yKFxcXCJ5YW1sLmRvY3VtZW50XFxcIiksS2U9U3ltYm9sLmZvcihcXFwieWFtbC5tYXBcXFwiKSxfaT1TeW1ib2wuZm9yKFxcXCJ5YW1sLnBhaXJcXFwiKSxJZT1TeW1ib2wuZm9yKFxcXCJ5YW1sLnNjYWxhclxcXCIpLEZ0PVN5bWJvbC5mb3IoXFxcInlhbWwuc2VxXFxcIiksVGU9U3ltYm9sLmZvcihcXFwieWFtbC5ub2RlLnR5cGVcXFwiKSxXZT1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1ycyxydD1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1zcyxIZT1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1LZSxIPW49PiEhbiYmdHlwZW9mIG49PVxcXCJvYmplY3RcXFwiJiZuW1RlXT09PV9pLEs9bj0+ISFuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm5bVGVdPT09SWUsSmU9bj0+ISFuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm5bVGVdPT09RnQ7ZnVuY3Rpb24gWihuKXtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpc3dpdGNoKG5bVGVdKXtjYXNlIEtlOmNhc2UgRnQ6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gSihuKXtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpc3dpdGNoKG5bVGVdKXtjYXNlIHJzOmNhc2UgS2U6Y2FzZSBJZTpjYXNlIEZ0OnJldHVybiEwfXJldHVybiExfXZhciBLYT1uPT4oSyhuKXx8WihuKSkmJiEhbi5hbmNob3I7dmFyIENlPVN5bWJvbChcXFwiYnJlYWsgdmlzaXRcXFwiKSxXYT1TeW1ib2woXFxcInNraXAgY2hpbGRyZW5cXFwiKSxzdD1TeW1ib2woXFxcInJlbW92ZSBub2RlXFxcIik7ZnVuY3Rpb24gemUobixlKXtsZXQgdD1IYShlKTtydChuKT93bihudWxsLG4uY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtuXSkpPT09c3QmJihuLmNvbnRlbnRzPW51bGwpOnduKG51bGwsbix0LE9iamVjdC5mcmVlemUoW10pKX16ZS5CUkVBSz1DZTt6ZS5TS0lQPVdhO3plLlJFTU9WRT1zdDtmdW5jdGlvbiB3bihuLGUsdCxyKXtsZXQgcz1KYShuLGUsdCxyKTtpZihKKHMpfHxIKHMpKXJldHVybiB6YShuLHIscyksd24obixzLHQscik7aWYodHlwZW9mIHMhPVxcXCJzeW1ib2xcXFwiKXtpZihaKGUpKXtyPU9iamVjdC5mcmVlemUoci5jb25jYXQoZSkpO2ZvcihsZXQgaT0wO2k8ZS5pdGVtcy5sZW5ndGg7KytpKXtsZXQgbz13bihpLGUuaXRlbXNbaV0sdCxyKTtpZih0eXBlb2Ygbz09XFxcIm51bWJlclxcXCIpaT1vLTE7ZWxzZXtpZihvPT09Q2UpcmV0dXJuIENlO289PT1zdCYmKGUuaXRlbXMuc3BsaWNlKGksMSksaS09MSl9fX1lbHNlIGlmKEgoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7bGV0IGk9d24oXFxcImtleVxcXCIsZS5rZXksdCxyKTtpZihpPT09Q2UpcmV0dXJuIENlO2k9PT1zdCYmKGUua2V5PW51bGwpO2xldCBvPXduKFxcXCJ2YWx1ZVxcXCIsZS52YWx1ZSx0LHIpO2lmKG89PT1DZSlyZXR1cm4gQ2U7bz09PXN0JiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9YXN5bmMgZnVuY3Rpb24gaXMobixlKXtsZXQgdD1IYShlKTtydChuKT9hd2FpdCBUbihudWxsLG4uY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtuXSkpPT09c3QmJihuLmNvbnRlbnRzPW51bGwpOmF3YWl0IFRuKG51bGwsbix0LE9iamVjdC5mcmVlemUoW10pKX1pcy5CUkVBSz1DZTtpcy5TS0lQPVdhO2lzLlJFTU9WRT1zdDthc3luYyBmdW5jdGlvbiBUbihuLGUsdCxyKXtsZXQgcz1hd2FpdCBKYShuLGUsdCxyKTtpZihKKHMpfHxIKHMpKXJldHVybiB6YShuLHIscyksVG4obixzLHQscik7aWYodHlwZW9mIHMhPVxcXCJzeW1ib2xcXFwiKXtpZihaKGUpKXtyPU9iamVjdC5mcmVlemUoci5jb25jYXQoZSkpO2ZvcihsZXQgaT0wO2k8ZS5pdGVtcy5sZW5ndGg7KytpKXtsZXQgbz1hd2FpdCBUbihpLGUuaXRlbXNbaV0sdCxyKTtpZih0eXBlb2Ygbz09XFxcIm51bWJlclxcXCIpaT1vLTE7ZWxzZXtpZihvPT09Q2UpcmV0dXJuIENlO289PT1zdCYmKGUuaXRlbXMuc3BsaWNlKGksMSksaS09MSl9fX1lbHNlIGlmKEgoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7bGV0IGk9YXdhaXQgVG4oXFxcImtleVxcXCIsZS5rZXksdCxyKTtpZihpPT09Q2UpcmV0dXJuIENlO2k9PT1zdCYmKGUua2V5PW51bGwpO2xldCBvPWF3YWl0IFRuKFxcXCJ2YWx1ZVxcXCIsZS52YWx1ZSx0LHIpO2lmKG89PT1DZSlyZXR1cm4gQ2U7bz09PXN0JiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9ZnVuY3Rpb24gSGEobil7cmV0dXJuIHR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmKG4uQ29sbGVjdGlvbnx8bi5Ob2RlfHxuLlZhbHVlKT9PYmplY3QuYXNzaWduKHtBbGlhczpuLk5vZGUsTWFwOm4uTm9kZSxTY2FsYXI6bi5Ob2RlLFNlcTpuLk5vZGV9LG4uVmFsdWUmJntNYXA6bi5WYWx1ZSxTY2FsYXI6bi5WYWx1ZSxTZXE6bi5WYWx1ZX0sbi5Db2xsZWN0aW9uJiZ7TWFwOm4uQ29sbGVjdGlvbixTZXE6bi5Db2xsZWN0aW9ufSxuKTpufWZ1bmN0aW9uIEphKG4sZSx0LHIpe3ZhciBzLGksbyxhLHU7aWYodHlwZW9mIHQ9PVxcXCJmdW5jdGlvblxcXCIpcmV0dXJuIHQobixlLHIpO2lmKEhlKGUpKXJldHVybihzPXQuTWFwKT09bnVsbD92b2lkIDA6cy5jYWxsKHQsbixlLHIpO2lmKEplKGUpKXJldHVybihpPXQuU2VxKT09bnVsbD92b2lkIDA6aS5jYWxsKHQsbixlLHIpO2lmKEgoZSkpcmV0dXJuKG89dC5QYWlyKT09bnVsbD92b2lkIDA6by5jYWxsKHQsbixlLHIpO2lmKEsoZSkpcmV0dXJuKGE9dC5TY2FsYXIpPT1udWxsP3ZvaWQgMDphLmNhbGwodCxuLGUscik7aWYoV2UoZSkpcmV0dXJuKHU9dC5BbGlhcyk9PW51bGw/dm9pZCAwOnUuY2FsbCh0LG4sZSxyKX1mdW5jdGlvbiB6YShuLGUsdCl7bGV0IHI9ZVtlLmxlbmd0aC0xXTtpZihaKHIpKXIuaXRlbXNbbl09dDtlbHNlIGlmKEgocikpbj09PVxcXCJrZXlcXFwiP3Iua2V5PXQ6ci52YWx1ZT10O2Vsc2UgaWYocnQocikpci5jb250ZW50cz10O2Vsc2V7bGV0IHM9V2Uocik/XFxcImFsaWFzXFxcIjpcXFwic2NhbGFyXFxcIjt0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXBsYWNlIG5vZGUgd2l0aCAke3N9IHBhcmVudGApfX12YXIgV2M9e1xcXCIhXFxcIjpcXFwiJTIxXFxcIixcXFwiLFxcXCI6XFxcIiUyQ1xcXCIsXFxcIltcXFwiOlxcXCIlNUJcXFwiLFxcXCJdXFxcIjpcXFwiJTVEXFxcIixcXFwie1xcXCI6XFxcIiU3QlxcXCIsXFxcIn1cXFwiOlxcXCIlN0RcXFwifSxIYz1uPT5uLnJlcGxhY2UoL1shLFtcXFxcXXt9XS9nLGU9PldjW2VdKSxpdD1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5kb2NTdGFydD1udWxsLHRoaXMuZG9jRW5kPSExLHRoaXMueWFtbD1PYmplY3QuYXNzaWduKHt9LG4uZGVmYXVsdFlhbWwsZSksdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sbi5kZWZhdWx0VGFncyx0KX1jbG9uZSgpe2xldCBlPW5ldyBuKHRoaXMueWFtbCx0aGlzLnRhZ3MpO3JldHVybiBlLmRvY1N0YXJ0PXRoaXMuZG9jU3RhcnQsZX1hdERvY3VtZW50KCl7bGV0IGU9bmV3IG4odGhpcy55YW1sLHRoaXMudGFncyk7c3dpdGNoKHRoaXMueWFtbC52ZXJzaW9uKXtjYXNlXFxcIjEuMVxcXCI6dGhpcy5hdE5leHREb2N1bWVudD0hMDticmVhaztjYXNlXFxcIjEuMlxcXCI6dGhpcy5hdE5leHREb2N1bWVudD0hMSx0aGlzLnlhbWw9e2V4cGxpY2l0Om4uZGVmYXVsdFlhbWwuZXhwbGljaXQsdmVyc2lvbjpcXFwiMS4yXFxcIn0sdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sbi5kZWZhdWx0VGFncyk7YnJlYWt9cmV0dXJuIGV9YWRkKGUsdCl7dGhpcy5hdE5leHREb2N1bWVudCYmKHRoaXMueWFtbD17ZXhwbGljaXQ6bi5kZWZhdWx0WWFtbC5leHBsaWNpdCx2ZXJzaW9uOlxcXCIxLjFcXFwifSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxuLmRlZmF1bHRUYWdzKSx0aGlzLmF0TmV4dERvY3VtZW50PSExKTtsZXQgcj1lLnRyaW0oKS5zcGxpdCgvWyBcXFxcdF0rLykscz1yLnNoaWZ0KCk7c3dpdGNoKHMpe2Nhc2VcXFwiJVRBR1xcXCI6e2lmKHIubGVuZ3RoIT09MiYmKHQoMCxcXFwiJVRBRyBkaXJlY3RpdmUgc2hvdWxkIGNvbnRhaW4gZXhhY3RseSB0d28gcGFydHNcXFwiKSxyLmxlbmd0aDwyKSlyZXR1cm4hMTtsZXRbaSxvXT1yO3JldHVybiB0aGlzLnRhZ3NbaV09bywhMH1jYXNlXFxcIiVZQU1MXFxcIjp7aWYodGhpcy55YW1sLmV4cGxpY2l0PSEwLHIubGVuZ3RoIT09MSlyZXR1cm4gdCgwLFxcXCIlWUFNTCBkaXJlY3RpdmUgc2hvdWxkIGNvbnRhaW4gZXhhY3RseSBvbmUgcGFydFxcXCIpLCExO2xldFtpXT1yO2lmKGk9PT1cXFwiMS4xXFxcInx8aT09PVxcXCIxLjJcXFwiKXJldHVybiB0aGlzLnlhbWwudmVyc2lvbj1pLCEwO3tsZXQgbz0vXlxcXFxkK1xcXFwuXFxcXGQrJC8udGVzdChpKTtyZXR1cm4gdCg2LGBVbnN1cHBvcnRlZCBZQU1MIHZlcnNpb24gJHtpfWAsbyksITF9fWRlZmF1bHQ6cmV0dXJuIHQoMCxgVW5rbm93biBkaXJlY3RpdmUgJHtzfWAsITApLCExfX10YWdOYW1lKGUsdCl7aWYoZT09PVxcXCIhXFxcIilyZXR1cm5cXFwiIVxcXCI7aWYoZVswXSE9PVxcXCIhXFxcIilyZXR1cm4gdChgTm90IGEgdmFsaWQgdGFnOiAke2V9YCksbnVsbDtpZihlWzFdPT09XFxcIjxcXFwiKXtsZXQgbz1lLnNsaWNlKDIsLTEpO3JldHVybiBvPT09XFxcIiFcXFwifHxvPT09XFxcIiEhXFxcIj8odChgVmVyYmF0aW0gdGFncyBhcmVuJ3QgcmVzb2x2ZWQsIHNvICR7ZX0gaXMgaW52YWxpZC5gKSxudWxsKTooZVtlLmxlbmd0aC0xXSE9PVxcXCI+XFxcIiYmdChcXFwiVmVyYmF0aW0gdGFncyBtdXN0IGVuZCB3aXRoIGEgPlxcXCIpLG8pfWxldFsscixzXT1lLm1hdGNoKG5ldyBSZWdFeHAoXFxcIl4oLiohKShbXiFdKikkXFxcIixcXFwic1xcXCIpKTtzfHx0KGBUaGUgJHtlfSB0YWcgaGFzIG5vIHN1ZmZpeGApO2xldCBpPXRoaXMudGFnc1tyXTtpZihpKXRyeXtyZXR1cm4gaStkZWNvZGVVUklDb21wb25lbnQocyl9Y2F0Y2gobyl7cmV0dXJuIHQoU3RyaW5nKG8pKSxudWxsfXJldHVybiByPT09XFxcIiFcXFwiP2U6KHQoYENvdWxkIG5vdCByZXNvbHZlIHRhZzogJHtlfWApLG51bGwpfXRhZ1N0cmluZyhlKXtmb3IobGV0W3Qscl1vZiBPYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpKWlmKGUuc3RhcnRzV2l0aChyKSlyZXR1cm4gdCtIYyhlLnN1YnN0cmluZyhyLmxlbmd0aCkpO3JldHVybiBlWzBdPT09XFxcIiFcXFwiP2U6YCE8JHtlfT5gfXRvU3RyaW5nKGUpe2xldCB0PXRoaXMueWFtbC5leHBsaWNpdD9bYCVZQU1MICR7dGhpcy55YW1sLnZlcnNpb258fFxcXCIxLjJcXFwifWBdOltdLHI9T2JqZWN0LmVudHJpZXModGhpcy50YWdzKSxzO2lmKGUmJnIubGVuZ3RoPjAmJkooZS5jb250ZW50cykpe2xldCBpPXt9O3plKGUuY29udGVudHMsKG8sYSk9PntKKGEpJiZhLnRhZyYmKGlbYS50YWddPSEwKX0pLHM9T2JqZWN0LmtleXMoaSl9ZWxzZSBzPVtdO2ZvcihsZXRbaSxvXW9mIHIpaT09PVxcXCIhIVxcXCImJm89PT1cXFwidGFnOnlhbWwub3JnLDIwMDI6XFxcInx8KCFlfHxzLnNvbWUoYT0+YS5zdGFydHNXaXRoKG8pKSkmJnQucHVzaChgJVRBRyAke2l9ICR7b31gKTtyZXR1cm4gdC5qb2luKGBcXG5gKX19O2l0LmRlZmF1bHRZYW1sPXtleHBsaWNpdDohMSx2ZXJzaW9uOlxcXCIxLjJcXFwifTtpdC5kZWZhdWx0VGFncz17XFxcIiEhXFxcIjpcXFwidGFnOnlhbWwub3JnLDIwMDI6XFxcIn07ZnVuY3Rpb24gb3Mobil7aWYoL1tcXFxceDAwLVxcXFx4MTlcXFxccyxbXFxcXF17fV0vLnRlc3Qobikpe2xldCB0PWBBbmNob3IgbXVzdCBub3QgY29udGFpbiB3aGl0ZXNwYWNlIG9yIGNvbnRyb2wgY2hhcmFjdGVyczogJHtKU09OLnN0cmluZ2lmeShuKX1gO3Rocm93IG5ldyBFcnJvcih0KX1yZXR1cm4hMH1mdW5jdGlvbiBCaShuKXtsZXQgZT1uZXcgU2V0O3JldHVybiB6ZShuLHtWYWx1ZSh0LHIpe3IuYW5jaG9yJiZlLmFkZChyLmFuY2hvcil9fSksZX1mdW5jdGlvbiBQaShuLGUpe2ZvcihsZXQgdD0xOzsrK3Qpe2xldCByPWAke259JHt0fWA7aWYoIWUuaGFzKHIpKXJldHVybiByfX1mdW5jdGlvbiBZYShuLGUpe2xldCB0PVtdLHI9bmV3IE1hcCxzPW51bGw7cmV0dXJue29uQW5jaG9yOmk9Pnt0LnB1c2goaSksc3x8KHM9QmkobikpO2xldCBvPVBpKGUscyk7cmV0dXJuIHMuYWRkKG8pLG99LHNldEFuY2hvcnM6KCk9Pntmb3IobGV0IGkgb2YgdCl7bGV0IG89ci5nZXQoaSk7aWYodHlwZW9mIG89PVxcXCJvYmplY3RcXFwiJiZvLmFuY2hvciYmKEsoby5ub2RlKXx8WihvLm5vZGUpKSlvLm5vZGUuYW5jaG9yPW8uYW5jaG9yO2Vsc2V7bGV0IGE9bmV3IEVycm9yKFxcXCJGYWlsZWQgdG8gcmVzb2x2ZSByZXBlYXRlZCBvYmplY3QgKHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4pXFxcIik7dGhyb3cgYS5zb3VyY2U9aSxhfX19LHNvdXJjZU9iamVjdHM6cn19ZnVuY3Rpb24geHQobixlLHQscil7aWYociYmdHlwZW9mIHI9PVxcXCJvYmplY3RcXFwiKWlmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBzPTAsaT1yLmxlbmd0aDtzPGk7KytzKXtsZXQgbz1yW3NdLGE9eHQobixyLFN0cmluZyhzKSxvKTthPT09dm9pZCAwP2RlbGV0ZSByW3NdOmEhPT1vJiYocltzXT1hKX1lbHNlIGlmKHIgaW5zdGFuY2VvZiBNYXApZm9yKGxldCBzIG9mIEFycmF5LmZyb20oci5rZXlzKCkpKXtsZXQgaT1yLmdldChzKSxvPXh0KG4scixzLGkpO289PT12b2lkIDA/ci5kZWxldGUocyk6byE9PWkmJnIuc2V0KHMsbyl9ZWxzZSBpZihyIGluc3RhbmNlb2YgU2V0KWZvcihsZXQgcyBvZiBBcnJheS5mcm9tKHIpKXtsZXQgaT14dChuLHIscyxzKTtpPT09dm9pZCAwP3IuZGVsZXRlKHMpOmkhPT1zJiYoci5kZWxldGUocyksci5hZGQoaSkpfWVsc2UgZm9yKGxldFtzLGldb2YgT2JqZWN0LmVudHJpZXMocikpe2xldCBvPXh0KG4scixzLGkpO289PT12b2lkIDA/ZGVsZXRlIHJbc106byE9PWkmJihyW3NdPW8pfXJldHVybiBuLmNhbGwoZSx0LHIpfWZ1bmN0aW9uIGNlKG4sZSx0KXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuLm1hcCgocixzKT0+Y2UocixTdHJpbmcocyksdCkpO2lmKG4mJnR5cGVvZiBuLnRvSlNPTj09XFxcImZ1bmN0aW9uXFxcIil7aWYoIXR8fCFLYShuKSlyZXR1cm4gbi50b0pTT04oZSx0KTtsZXQgcj17YWxpYXNDb3VudDowLGNvdW50OjEscmVzOnZvaWQgMH07dC5hbmNob3JzLnNldChuLHIpLHQub25DcmVhdGU9aT0+e3IucmVzPWksZGVsZXRlIHQub25DcmVhdGV9O2xldCBzPW4udG9KU09OKGUsdCk7cmV0dXJuIHQub25DcmVhdGUmJnQub25DcmVhdGUocyksc31yZXR1cm4gdHlwZW9mIG49PVxcXCJiaWdpbnRcXFwiJiYhKHQhPW51bGwmJnQua2VlcCk/TnVtYmVyKG4pOm59dmFyIE90PWNsYXNze2NvbnN0cnVjdG9yKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFRlLHt2YWx1ZTplfSl9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7cmV0dXJuIHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX10b0pTKGUse21hcEFzTWFwOnQsbWF4QWxpYXNDb3VudDpyLG9uQW5jaG9yOnMscmV2aXZlcjppfT17fSl7aWYoIXJ0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXFxcIkEgZG9jdW1lbnQgYXJndW1lbnQgaXMgcmVxdWlyZWRcXFwiKTtsZXQgbz17YW5jaG9yczpuZXcgTWFwLGRvYzplLGtlZXA6ITAsbWFwQXNNYXA6dD09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiByPT1cXFwibnVtYmVyXFxcIj9yOjEwMH0sYT1jZSh0aGlzLFxcXCJcXFwiLG8pO2lmKHR5cGVvZiBzPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXR7Y291bnQ6dSxyZXM6bH1vZiBvLmFuY2hvcnMudmFsdWVzKCkpcyhsLHUpO3JldHVybiB0eXBlb2YgaT09XFxcImZ1bmN0aW9uXFxcIj94dChpLHtcXFwiXFxcIjphfSxcXFwiXFxcIixhKTphfX07dmFyIEV0PWNsYXNzIGV4dGVuZHMgT3R7Y29uc3RydWN0b3IoZSl7c3VwZXIocnMpLHRoaXMuc291cmNlPWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXFxcInRhZ1xcXCIse3NldCgpe3Rocm93IG5ldyBFcnJvcihcXFwiQWxpYXMgbm9kZXMgY2Fubm90IGhhdmUgdGFnc1xcXCIpfX0pfXJlc29sdmUoZSl7bGV0IHQ7cmV0dXJuIHplKGUse05vZGU6KHIscyk9PntpZihzPT09dGhpcylyZXR1cm4gemUuQlJFQUs7cy5hbmNob3I9PT10aGlzLnNvdXJjZSYmKHQ9cyl9fSksdH10b0pTT04oZSx0KXtpZighdClyZXR1cm57c291cmNlOnRoaXMuc291cmNlfTtsZXR7YW5jaG9yczpyLGRvYzpzLG1heEFsaWFzQ291bnQ6aX09dCxvPXRoaXMucmVzb2x2ZShzKTtpZighbyl7bGV0IHU9YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IodSl9bGV0IGE9ci5nZXQobyk7aWYoYXx8KGNlKG8sbnVsbCx0KSxhPXIuZ2V0KG8pKSwhYXx8YS5yZXM9PT12b2lkIDApe2xldCB1PVxcXCJUaGlzIHNob3VsZCBub3QgaGFwcGVuOiBBbGlhcyBhbmNob3Igd2FzIG5vdCByZXNvbHZlZD9cXFwiO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcih1KX1pZihpPj0wJiYoYS5jb3VudCs9MSxhLmFsaWFzQ291bnQ9PT0wJiYoYS5hbGlhc0NvdW50PWFzKHMsbyxyKSksYS5jb3VudCphLmFsaWFzQ291bnQ+aSkpe2xldCB1PVxcXCJFeGNlc3NpdmUgYWxpYXMgY291bnQgaW5kaWNhdGVzIGEgcmVzb3VyY2UgZXhoYXVzdGlvbiBhdHRhY2tcXFwiO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcih1KX1yZXR1cm4gYS5yZXN9dG9TdHJpbmcoZSx0LHIpe2xldCBzPWAqJHt0aGlzLnNvdXJjZX1gO2lmKGUpe2lmKG9zKHRoaXMuc291cmNlKSxlLm9wdGlvbnMudmVyaWZ5QWxpYXNPcmRlciYmIWUuYW5jaG9ycy5oYXModGhpcy5zb3VyY2UpKXtsZXQgaT1gVW5yZXNvbHZlZCBhbGlhcyAodGhlIGFuY2hvciBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGFsaWFzKTogJHt0aGlzLnNvdXJjZX1gO3Rocm93IG5ldyBFcnJvcihpKX1pZihlLmltcGxpY2l0S2V5KXJldHVybmAke3N9IGB9cmV0dXJuIHN9fTtmdW5jdGlvbiBhcyhuLGUsdCl7aWYoV2UoZSkpe2xldCByPWUucmVzb2x2ZShuKSxzPXQmJnImJnQuZ2V0KHIpO3JldHVybiBzP3MuY291bnQqcy5hbGlhc0NvdW50OjB9ZWxzZSBpZihaKGUpKXtsZXQgcj0wO2ZvcihsZXQgcyBvZiBlLml0ZW1zKXtsZXQgaT1hcyhuLHMsdCk7aT5yJiYocj1pKX1yZXR1cm4gcn1lbHNlIGlmKEgoZSkpe2xldCByPWFzKG4sZS5rZXksdCkscz1hcyhuLGUudmFsdWUsdCk7cmV0dXJuIE1hdGgubWF4KHIscyl9cmV0dXJuIDF9dmFyIHVzPW49PiFufHx0eXBlb2YgbiE9XFxcImZ1bmN0aW9uXFxcIiYmdHlwZW9mIG4hPVxcXCJvYmplY3RcXFwiLFA9Y2xhc3MgZXh0ZW5kcyBPdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihJZSksdGhpcy52YWx1ZT1lfXRvSlNPTihlLHQpe3JldHVybiB0IT1udWxsJiZ0LmtlZXA/dGhpcy52YWx1ZTpjZSh0aGlzLnZhbHVlLGUsdCl9dG9TdHJpbmcoKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfX07UC5CTE9DS19GT0xERUQ9XFxcIkJMT0NLX0ZPTERFRFxcXCI7UC5CTE9DS19MSVRFUkFMPVxcXCJCTE9DS19MSVRFUkFMXFxcIjtQLlBMQUlOPVxcXCJQTEFJTlxcXCI7UC5RVU9URV9ET1VCTEU9XFxcIlFVT1RFX0RPVUJMRVxcXCI7UC5RVU9URV9TSU5HTEU9XFxcIlFVT1RFX1NJTkdMRVxcXCI7dmFyIEpjPVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpcXFwiO2Z1bmN0aW9uIHpjKG4sZSx0KXt2YXIgcjtpZihlKXtsZXQgcz10LmZpbHRlcihvPT5vLnRhZz09PWUpLGk9KHI9cy5maW5kKG89PiFvLmZvcm1hdCkpIT1udWxsP3I6c1swXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYFRhZyAke2V9IG5vdCBmb3VuZGApO3JldHVybiBpfXJldHVybiB0LmZpbmQocz0+e3ZhciBpO3JldHVybigoaT1zLmlkZW50aWZ5KT09bnVsbD92b2lkIDA6aS5jYWxsKHMsbikpJiYhcy5mb3JtYXR9KX1mdW5jdGlvbiB3dChuLGUsdCl7dmFyIGQsbSxoO2lmKHJ0KG4pJiYobj1uLmNvbnRlbnRzKSxKKG4pKXJldHVybiBuO2lmKEgobikpe2xldCBiPShtPShkPXQuc2NoZW1hW0tlXSkuY3JlYXRlTm9kZSk9PW51bGw/dm9pZCAwOm0uY2FsbChkLHQuc2NoZW1hLG51bGwsdCk7cmV0dXJuIGIuaXRlbXMucHVzaChuKSxifShuIGluc3RhbmNlb2YgU3RyaW5nfHxuIGluc3RhbmNlb2YgTnVtYmVyfHxuIGluc3RhbmNlb2YgQm9vbGVhbnx8dHlwZW9mIEJpZ0ludCE9XFxcInVuZGVmaW5lZFxcXCImJm4gaW5zdGFuY2VvZiBCaWdJbnQpJiYobj1uLnZhbHVlT2YoKSk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czpyLG9uQW5jaG9yOnMsb25UYWdPYmo6aSxzY2hlbWE6byxzb3VyY2VPYmplY3RzOmF9PXQsdTtpZihyJiZuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpe2lmKHU9YS5nZXQobiksdSlyZXR1cm4gdS5hbmNob3J8fCh1LmFuY2hvcj1zKG4pKSxuZXcgRXQodS5hbmNob3IpO3U9e2FuY2hvcjpudWxsLG5vZGU6bnVsbH0sYS5zZXQobix1KX1lIT1udWxsJiZlLnN0YXJ0c1dpdGgoXFxcIiEhXFxcIikmJihlPUpjK2Uuc2xpY2UoMikpO2xldCBsPXpjKG4sZSxvLnRhZ3MpO2lmKCFsKXtpZihuJiZ0eXBlb2Ygbi50b0pTT049PVxcXCJmdW5jdGlvblxcXCImJihuPW4udG9KU09OKCkpLCFufHx0eXBlb2YgbiE9XFxcIm9iamVjdFxcXCIpe2xldCBiPW5ldyBQKG4pO3JldHVybiB1JiYodS5ub2RlPWIpLGJ9bD1uIGluc3RhbmNlb2YgTWFwP29bS2VdOlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3Qobik/b1tGdF06b1tLZV19aSYmKGkobCksZGVsZXRlIHQub25UYWdPYmopO2xldCBmPWwhPW51bGwmJmwuY3JlYXRlTm9kZT9sLmNyZWF0ZU5vZGUodC5zY2hlbWEsbix0KTp0eXBlb2YoKGg9bD09bnVsbD92b2lkIDA6bC5ub2RlQ2xhc3MpPT1udWxsP3ZvaWQgMDpoLmZyb20pPT1cXFwiZnVuY3Rpb25cXFwiP2wubm9kZUNsYXNzLmZyb20odC5zY2hlbWEsbix0KTpuZXcgUChuKTtyZXR1cm4gZT9mLnRhZz1lOmwuZGVmYXVsdHx8KGYudGFnPWwudGFnKSx1JiYodS5ub2RlPWYpLGZ9ZnVuY3Rpb24gcHIobixlLHQpe2xldCByPXQ7Zm9yKGxldCBzPWUubGVuZ3RoLTE7cz49MDstLXMpe2xldCBpPWVbc107aWYodHlwZW9mIGk9PVxcXCJudW1iZXJcXFwiJiZOdW1iZXIuaXNJbnRlZ2VyKGkpJiZpPj0wKXtsZXQgbz1bXTtvW2ldPXIscj1vfWVsc2Ugcj1uZXcgTWFwKFtbaSxyXV0pfXJldHVybiB3dChyLHZvaWQgMCx7YWxpYXNEdXBsaWNhdGVPYmplY3RzOiExLGtlZXBVbmRlZmluZWQ6ITEsb25BbmNob3I6KCk9Pnt0aHJvdyBuZXcgRXJyb3IoXFxcIlRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIHBsZWFzZSByZXBvcnQgYSBidWcuXFxcIil9LHNjaGVtYTpuLHNvdXJjZU9iamVjdHM6bmV3IE1hcH0pfXZhciBrbj1uPT5uPT1udWxsfHx0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJiEhbltTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUsU249Y2xhc3MgZXh0ZW5kcyBPdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFxcXCJzY2hlbWFcXFwiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwfSl9Y2xvbmUoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlJiYodC5zY2hlbWE9ZSksdC5pdGVtcz10Lml0ZW1zLm1hcChyPT5KKHIpfHxIKHIpP3IuY2xvbmUoZSk6ciksdGhpcy5yYW5nZSYmKHQucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSx0fWFkZEluKGUsdCl7aWYoa24oZSkpdGhpcy5hZGQodCk7ZWxzZXtsZXRbciwuLi5zXT1lLGk9dGhpcy5nZXQociwhMCk7aWYoWihpKSlpLmFkZEluKHMsdCk7ZWxzZSBpZihpPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChyLHByKHRoaXMuc2NoZW1hLHMsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtyfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19ZGVsZXRlSW4oZSl7bGV0W3QsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuZGVsZXRlKHQpO2xldCBzPXRoaXMuZ2V0KHQsITApO2lmKFoocykpcmV0dXJuIHMuZGVsZXRlSW4ocik7dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHt0fS4gUmVtYWluaW5nIHBhdGg6ICR7cn1gKX1nZXRJbihlLHQpe2xldFtyLC4uLnNdPWUsaT10aGlzLmdldChyLCEwKTtyZXR1cm4gcy5sZW5ndGg9PT0wPyF0JiZLKGkpP2kudmFsdWU6aTpaKGkpP2kuZ2V0SW4ocyx0KTp2b2lkIDB9aGFzQWxsTnVsbFZhbHVlcyhlKXtyZXR1cm4gdGhpcy5pdGVtcy5ldmVyeSh0PT57aWYoIUgodCkpcmV0dXJuITE7bGV0IHI9dC52YWx1ZTtyZXR1cm4gcj09bnVsbHx8ZSYmSyhyKSYmci52YWx1ZT09bnVsbCYmIXIuY29tbWVudEJlZm9yZSYmIXIuY29tbWVudCYmIXIudGFnfSl9aGFzSW4oZSl7bGV0W3QsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuaGFzKHQpO2xldCBzPXRoaXMuZ2V0KHQsITApO3JldHVybiBaKHMpP3MuaGFzSW4ocik6ITF9c2V0SW4oZSx0KXtsZXRbciwuLi5zXT1lO2lmKHMubGVuZ3RoPT09MCl0aGlzLnNldChyLHQpO2Vsc2V7bGV0IGk9dGhpcy5nZXQociwhMCk7aWYoWihpKSlpLnNldEluKHMsdCk7ZWxzZSBpZihpPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChyLHByKHRoaXMuc2NoZW1hLHMsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtyfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19fTt2YXIgR2E9bj0+bi5yZXBsYWNlKC9eKD8hJCkoPzogJCk/L2dtLFxcXCIjXFxcIik7ZnVuY3Rpb24gUGUobixlKXtyZXR1cm4vXlxcXFxuKyQvLnRlc3Qobik/bi5zdWJzdHJpbmcoMSk6ZT9uLnJlcGxhY2UoL14oPyEgKiQpL2dtLGUpOm59dmFyIG90PShuLGUsdCk9Pm4uZW5kc1dpdGgoYFxcbmApP1BlKHQsZSk6dC5pbmNsdWRlcyhgXFxuYCk/YFxcbmArUGUodCxlKToobi5lbmRzV2l0aChcXFwiIFxcXCIpP1xcXCJcXFwiOlxcXCIgXFxcIikrdDt2YXIgJGk9XFxcImZsb3dcXFwiLGxzPVxcXCJibG9ja1xcXCIsRHI9XFxcInF1b3RlZFxcXCI7ZnVuY3Rpb24geXIobixlLHQ9XFxcImZsb3dcXFwiLHtpbmRlbnRBdFN0YXJ0OnIsbGluZVdpZHRoOnM9ODAsbWluQ29udGVudFdpZHRoOmk9MjAsb25Gb2xkOm8sb25PdmVyZmxvdzphfT17fSl7aWYoIXN8fHM8MClyZXR1cm4gbjtzPGkmJihpPTApO2xldCB1PU1hdGgubWF4KDEraSwxK3MtZS5sZW5ndGgpO2lmKG4ubGVuZ3RoPD11KXJldHVybiBuO2xldCBsPVtdLGY9e30sZD1zLWUubGVuZ3RoO3R5cGVvZiByPT1cXFwibnVtYmVyXFxcIiYmKHI+cy1NYXRoLm1heCgyLGkpP2wucHVzaCgwKTpkPXMtcik7bGV0IG0saCxiPSExLGc9LTEsRD0tMSxUPS0xO3Q9PT1scyYmKGc9WmEobixnLGUubGVuZ3RoKSxnIT09LTEmJihkPWcrdSkpO2ZvcihsZXQgTjtOPW5bZys9MV07KXtpZih0PT09RHImJk49PT1cXFwiXFxcXFxcXFxcXFwiKXtzd2l0Y2goRD1nLG5bZysxXSl7Y2FzZVxcXCJ4XFxcIjpnKz0zO2JyZWFrO2Nhc2VcXFwidVxcXCI6Zys9NTticmVhaztjYXNlXFxcIlVcXFwiOmcrPTk7YnJlYWs7ZGVmYXVsdDpnKz0xfVQ9Z31pZihOPT09YFxcbmApdD09PWxzJiYoZz1aYShuLGcsZS5sZW5ndGgpKSxkPWcrZS5sZW5ndGgrdSxtPXZvaWQgMDtlbHNle2lmKE49PT1cXFwiIFxcXCImJmgmJmghPT1cXFwiIFxcXCImJmghPT1gXFxuYCYmaCE9PVxcXCJcXHRcXFwiKXtsZXQgeT1uW2crMV07eSYmeSE9PVxcXCIgXFxcIiYmeSE9PWBcXG5gJiZ5IT09XFxcIlxcdFxcXCImJihtPWcpfWlmKGc+PWQpaWYobSlsLnB1c2gobSksZD1tK3UsbT12b2lkIDA7ZWxzZSBpZih0PT09RHIpe2Zvcig7aD09PVxcXCIgXFxcInx8aD09PVxcXCJcXHRcXFwiOyloPU4sTj1uW2crPTFdLGI9ITA7bGV0IHk9Zz5UKzE/Zy0yOkQtMTtpZihmW3ldKXJldHVybiBuO2wucHVzaCh5KSxmW3ldPSEwLGQ9eSt1LG09dm9pZCAwfWVsc2UgYj0hMH1oPU59aWYoYiYmYSYmYSgpLGwubGVuZ3RoPT09MClyZXR1cm4gbjtvJiZvKCk7bGV0IEk9bi5zbGljZSgwLGxbMF0pO2ZvcihsZXQgTj0wO048bC5sZW5ndGg7KytOKXtsZXQgeT1sW05dLHc9bFtOKzFdfHxuLmxlbmd0aDt5PT09MD9JPWBcXG4ke2V9JHtuLnNsaWNlKDAsdyl9YDoodD09PURyJiZmW3ldJiYoSSs9YCR7blt5XX1cXFxcXFxcXGApLEkrPWBcXG4ke2V9JHtuLnNsaWNlKHkrMSx3KX1gKX1yZXR1cm4gSX1mdW5jdGlvbiBaYShuLGUsdCl7bGV0IHI9ZSxzPWUrMSxpPW5bc107Zm9yKDtpPT09XFxcIiBcXFwifHxpPT09XFxcIlxcdFxcXCI7KWlmKGU8cyt0KWk9blsrK2VdO2Vsc2V7ZG8gaT1uWysrZV07d2hpbGUoaSYmaSE9PWBcXG5gKTtyPWUscz1lKzEsaT1uW3NdfXJldHVybiByfXZhciBmcz0obixlKT0+KHtpbmRlbnRBdFN0YXJ0OmU/bi5pbmRlbnQubGVuZ3RoOm4uaW5kZW50QXRTdGFydCxsaW5lV2lkdGg6bi5vcHRpb25zLmxpbmVXaWR0aCxtaW5Db250ZW50V2lkdGg6bi5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aH0pLGRzPW49Pi9eKCV8LS0tfFxcXFwuXFxcXC5cXFxcLikvbS50ZXN0KG4pO2Z1bmN0aW9uIFljKG4sZSx0KXtpZighZXx8ZTwwKXJldHVybiExO2xldCByPWUtdCxzPW4ubGVuZ3RoO2lmKHM8PXIpcmV0dXJuITE7Zm9yKGxldCBpPTAsbz0wO2k8czsrK2kpaWYobltpXT09PWBcXG5gKXtpZihpLW8+cilyZXR1cm4hMDtpZihvPWkrMSxzLW88PXIpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZ3IobixlKXtsZXQgdD1KU09OLnN0cmluZ2lmeShuKTtpZihlLm9wdGlvbnMuZG91YmxlUXVvdGVkQXNKU09OKXJldHVybiB0O2xldHtpbXBsaWNpdEtleTpyfT1lLHM9ZS5vcHRpb25zLmRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aCxpPWUuaW5kZW50fHwoZHMobik/XFxcIiAgXFxcIjpcXFwiXFxcIiksbz1cXFwiXFxcIixhPTA7Zm9yKGxldCB1PTAsbD10W3VdO2w7bD10WysrdV0paWYobD09PVxcXCIgXFxcIiYmdFt1KzFdPT09XFxcIlxcXFxcXFxcXFxcIiYmdFt1KzJdPT09XFxcIm5cXFwiJiYobys9dC5zbGljZShhLHUpK1xcXCJcXFxcXFxcXCBcXFwiLHUrPTEsYT11LGw9XFxcIlxcXFxcXFxcXFxcIiksbD09PVxcXCJcXFxcXFxcXFxcXCIpc3dpdGNoKHRbdSsxXSl7Y2FzZVxcXCJ1XFxcIjp7bys9dC5zbGljZShhLHUpO2xldCBmPXQuc3Vic3RyKHUrMiw0KTtzd2l0Y2goZil7Y2FzZVxcXCIwMDAwXFxcIjpvKz1cXFwiXFxcXFxcXFwwXFxcIjticmVhaztjYXNlXFxcIjAwMDdcXFwiOm8rPVxcXCJcXFxcXFxcXGFcXFwiO2JyZWFrO2Nhc2VcXFwiMDAwYlxcXCI6bys9XFxcIlxcXFxcXFxcdlxcXCI7YnJlYWs7Y2FzZVxcXCIwMDFiXFxcIjpvKz1cXFwiXFxcXFxcXFxlXFxcIjticmVhaztjYXNlXFxcIjAwODVcXFwiOm8rPVxcXCJcXFxcXFxcXE5cXFwiO2JyZWFrO2Nhc2VcXFwiMDBhMFxcXCI6bys9XFxcIlxcXFxcXFxcX1xcXCI7YnJlYWs7Y2FzZVxcXCIyMDI4XFxcIjpvKz1cXFwiXFxcXFxcXFxMXFxcIjticmVhaztjYXNlXFxcIjIwMjlcXFwiOm8rPVxcXCJcXFxcXFxcXFBcXFwiO2JyZWFrO2RlZmF1bHQ6Zi5zdWJzdHIoMCwyKT09PVxcXCIwMFxcXCI/bys9XFxcIlxcXFxcXFxceFxcXCIrZi5zdWJzdHIoMik6bys9dC5zdWJzdHIodSw2KX11Kz01LGE9dSsxfWJyZWFrO2Nhc2VcXFwiblxcXCI6aWYocnx8dFt1KzJdPT09J1xcXCInfHx0Lmxlbmd0aDxzKXUrPTE7ZWxzZXtmb3Iobys9dC5zbGljZShhLHUpK2BcXG5cXG5gO3RbdSsyXT09PVxcXCJcXFxcXFxcXFxcXCImJnRbdSszXT09PVxcXCJuXFxcIiYmdFt1KzRdIT09J1xcXCInOylvKz1gXFxuYCx1Kz0yO28rPWksdFt1KzJdPT09XFxcIiBcXFwiJiYobys9XFxcIlxcXFxcXFxcXFxcIiksdSs9MSxhPXUrMX1icmVhaztkZWZhdWx0OnUrPTF9cmV0dXJuIG89YT9vK3Quc2xpY2UoYSk6dCxyP286eXIobyxpLERyLGZzKGUsITEpKX1mdW5jdGlvbiBSaShuLGUpe2lmKGUub3B0aW9ucy5zaW5nbGVRdW90ZT09PSExfHxlLmltcGxpY2l0S2V5JiZuLmluY2x1ZGVzKGBcXG5gKXx8L1sgXFxcXHRdXFxcXG58XFxcXG5bIFxcXFx0XS8udGVzdChuKSlyZXR1cm4gZ3IobixlKTtsZXQgdD1lLmluZGVudHx8KGRzKG4pP1xcXCIgIFxcXCI6XFxcIlxcXCIpLHI9XFxcIidcXFwiK24ucmVwbGFjZSgvJy9nLFxcXCInJ1xcXCIpLnJlcGxhY2UoL1xcXFxuKy9nLGAkJlxcbiR7dH1gKStcXFwiJ1xcXCI7cmV0dXJuIGUuaW1wbGljaXRLZXk/cjp5cihyLHQsJGksZnMoZSwhMSkpfWZ1bmN0aW9uIENuKG4sZSl7bGV0e3NpbmdsZVF1b3RlOnR9PWUub3B0aW9ucyxyO2lmKHQ9PT0hMSlyPWdyO2Vsc2V7bGV0IHM9bi5pbmNsdWRlcygnXFxcIicpLGk9bi5pbmNsdWRlcyhcXFwiJ1xcXCIpO3MmJiFpP3I9Umk6aSYmIXM/cj1ncjpyPXQ/Umk6Z3J9cmV0dXJuIHIobixlKX12YXIgamk7dHJ5e2ppPW5ldyBSZWdFeHAoYChefCg/PCFcXG4pKVxcbisoPyFcXG58JClgLFxcXCJnXFxcIil9Y2F0Y2gobil7amk9L1xcXFxuKyg/IVxcXFxufCQpL2d9ZnVuY3Rpb24gY3Moe2NvbW1lbnQ6bix0eXBlOmUsdmFsdWU6dH0scixzLGkpe2xldHtibG9ja1F1b3RlOm8sY29tbWVudFN0cmluZzphLGxpbmVXaWR0aDp1fT1yLm9wdGlvbnM7aWYoIW98fC9cXFxcbltcXFxcdCBdKyQvLnRlc3QodCl8fC9eXFxcXHMqJC8udGVzdCh0KSlyZXR1cm4gQ24odCxyKTtsZXQgbD1yLmluZGVudHx8KHIuZm9yY2VCbG9ja0luZGVudHx8ZHModCk/XFxcIiAgXFxcIjpcXFwiXFxcIiksZj1vPT09XFxcImxpdGVyYWxcXFwiPyEwOm89PT1cXFwiZm9sZGVkXFxcInx8ZT09PVAuQkxPQ0tfRk9MREVEPyExOmU9PT1QLkJMT0NLX0xJVEVSQUw/ITA6IVljKHQsdSxsLmxlbmd0aCk7aWYoIXQpcmV0dXJuIGY/YHxcXG5gOmA+XFxuYDtsZXQgZCxtO2ZvcihtPXQubGVuZ3RoO20+MDstLW0pe2xldCB2PXRbbS0xXTtpZih2IT09YFxcbmAmJnYhPT1cXFwiXFx0XFxcIiYmdiE9PVxcXCIgXFxcIilicmVha31sZXQgaD10LnN1YnN0cmluZyhtKSxiPWguaW5kZXhPZihgXFxuYCk7Yj09PS0xP2Q9XFxcIi1cXFwiOnQ9PT1ofHxiIT09aC5sZW5ndGgtMT8oZD1cXFwiK1xcXCIsaSYmaSgpKTpkPVxcXCJcXFwiLGgmJih0PXQuc2xpY2UoMCwtaC5sZW5ndGgpLGhbaC5sZW5ndGgtMV09PT1gXFxuYCYmKGg9aC5zbGljZSgwLC0xKSksaD1oLnJlcGxhY2UoamksYCQmJHtsfWApKTtsZXQgZz0hMSxELFQ9LTE7Zm9yKEQ9MDtEPHQubGVuZ3RoOysrRCl7bGV0IHY9dFtEXTtpZih2PT09XFxcIiBcXFwiKWc9ITA7ZWxzZSBpZih2PT09YFxcbmApVD1EO2Vsc2UgYnJlYWt9bGV0IEk9dC5zdWJzdHJpbmcoMCxUPEQ/VCsxOkQpO0kmJih0PXQuc3Vic3RyaW5nKEkubGVuZ3RoKSxJPUkucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApKTtsZXQgeT0oZj9cXFwifFxcXCI6XFxcIj5cXFwiKSsoZz9sP1xcXCIyXFxcIjpcXFwiMVxcXCI6XFxcIlxcXCIpK2Q7aWYobiYmKHkrPVxcXCIgXFxcIithKG4ucmVwbGFjZSgvID9bXFxcXHJcXFxcbl0rL2csXFxcIiBcXFwiKSkscyYmcygpKSxmKXJldHVybiB0PXQucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApLGAke3l9XFxuJHtsfSR7SX0ke3R9JHtofWA7dD10LnJlcGxhY2UoL1xcXFxuKy9nLGBcXG4kJmApLnJlcGxhY2UoLyg/Ol58XFxcXG4pKFtcXFxcdCBdLiopKD86KFtcXFxcblxcXFx0IF0qKVxcXFxuKD8hW1xcXFxuXFxcXHQgXSkpPy9nLFxcXCIkMSQyXFxcIikucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApO2xldCB3PXlyKGAke0l9JHt0fSR7aH1gLGwsbHMsZnMociwhMCkpO3JldHVybmAke3l9XFxuJHtsfSR7d31gfWZ1bmN0aW9uIEdjKG4sZSx0LHIpe2xldHt0eXBlOnMsdmFsdWU6aX09bix7YWN0dWFsU3RyaW5nOm8saW1wbGljaXRLZXk6YSxpbmRlbnQ6dSxpbmRlbnRTdGVwOmwsaW5GbG93OmZ9PWU7aWYoYSYmaS5pbmNsdWRlcyhgXFxuYCl8fGYmJi9bW1xcXFxde30sXS8udGVzdChpKSlyZXR1cm4gQ24oaSxlKTtpZighaXx8L15bXFxcXG5cXFxcdCAsW1xcXFxde30jJiohfD4nXFxcIiVAYF18Xls/LV0kfF5bPy1dWyBcXFxcdF18W1xcXFxuOl1bIFxcXFx0XXxbIFxcXFx0XVxcXFxufFtcXFxcblxcXFx0IF0jfFtcXFxcblxcXFx0IDpdJC8udGVzdChpKSlyZXR1cm4gYXx8Znx8IWkuaW5jbHVkZXMoYFxcbmApP0NuKGksZSk6Y3MobixlLHQscik7aWYoIWEmJiFmJiZzIT09UC5QTEFJTiYmaS5pbmNsdWRlcyhgXFxuYCkpcmV0dXJuIGNzKG4sZSx0LHIpO2lmKGRzKGkpKXtpZih1PT09XFxcIlxcXCIpcmV0dXJuIGUuZm9yY2VCbG9ja0luZGVudD0hMCxjcyhuLGUsdCxyKTtpZihhJiZ1PT09bClyZXR1cm4gQ24oaSxlKX1sZXQgZD1pLnJlcGxhY2UoL1xcXFxuKy9nLGAkJlxcbiR7dX1gKTtpZihvKXtsZXQgbT1nPT57dmFyIEQ7cmV0dXJuIGcuZGVmYXVsdCYmZy50YWchPT1cXFwidGFnOnlhbWwub3JnLDIwMDI6c3RyXFxcIiYmKChEPWcudGVzdCk9PW51bGw/dm9pZCAwOkQudGVzdChkKSl9LHtjb21wYXQ6aCx0YWdzOmJ9PWUuZG9jLnNjaGVtYTtpZihiLnNvbWUobSl8fGghPW51bGwmJmguc29tZShtKSlyZXR1cm4gQ24oaSxlKX1yZXR1cm4gYT9kOnlyKGQsdSwkaSxmcyhlLCExKSl9ZnVuY3Rpb24gV3QobixlLHQscil7bGV0e2ltcGxpY2l0S2V5OnMsaW5GbG93Oml9PWUsbz10eXBlb2Ygbi52YWx1ZT09XFxcInN0cmluZ1xcXCI/bjpPYmplY3QuYXNzaWduKHt9LG4se3ZhbHVlOlN0cmluZyhuLnZhbHVlKX0pLHt0eXBlOmF9PW47YSE9PVAuUVVPVEVfRE9VQkxFJiYvW1xcXFx4MDAtXFxcXHgwOFxcXFx4MGItXFxcXHgxZlxcXFx4N2YtXFxcXHg5ZlxcXFx1e0Q4MDB9LVxcXFx1e0RGRkZ9XS91LnRlc3Qoby52YWx1ZSkmJihhPVAuUVVPVEVfRE9VQkxFKTtsZXQgdT1mPT57c3dpdGNoKGYpe2Nhc2UgUC5CTE9DS19GT0xERUQ6Y2FzZSBQLkJMT0NLX0xJVEVSQUw6cmV0dXJuIHN8fGk/Q24oby52YWx1ZSxlKTpjcyhvLGUsdCxyKTtjYXNlIFAuUVVPVEVfRE9VQkxFOnJldHVybiBncihvLnZhbHVlLGUpO2Nhc2UgUC5RVU9URV9TSU5HTEU6cmV0dXJuIFJpKG8udmFsdWUsZSk7Y2FzZSBQLlBMQUlOOnJldHVybiBHYyhvLGUsdCxyKTtkZWZhdWx0OnJldHVybiBudWxsfX0sbD11KGEpO2lmKGw9PT1udWxsKXtsZXR7ZGVmYXVsdEtleVR5cGU6ZixkZWZhdWx0U3RyaW5nVHlwZTpkfT1lLm9wdGlvbnMsbT1zJiZmfHxkO2lmKGw9dShtKSxsPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlZmF1bHQgc3RyaW5nIHR5cGUgJHttfWApfXJldHVybiBsfWZ1bmN0aW9uIGhzKG4sZSl7bGV0IHQ9T2JqZWN0LmFzc2lnbih7YmxvY2tRdW90ZTohMCxjb21tZW50U3RyaW5nOkdhLGRlZmF1bHRLZXlUeXBlOm51bGwsZGVmYXVsdFN0cmluZ1R5cGU6XFxcIlBMQUlOXFxcIixkaXJlY3RpdmVzOm51bGwsZG91YmxlUXVvdGVkQXNKU09OOiExLGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDo0MCxmYWxzZVN0cjpcXFwiZmFsc2VcXFwiLGZsb3dDb2xsZWN0aW9uUGFkZGluZzohMCxpbmRlbnRTZXE6ITAsbGluZVdpZHRoOjgwLG1pbkNvbnRlbnRXaWR0aDoyMCxudWxsU3RyOlxcXCJudWxsXFxcIixzaW1wbGVLZXlzOiExLHNpbmdsZVF1b3RlOm51bGwsdHJ1ZVN0cjpcXFwidHJ1ZVxcXCIsdmVyaWZ5QWxpYXNPcmRlcjohMH0sbi5zY2hlbWEudG9TdHJpbmdPcHRpb25zLGUpLHI7c3dpdGNoKHQuY29sbGVjdGlvblN0eWxlKXtjYXNlXFxcImJsb2NrXFxcIjpyPSExO2JyZWFrO2Nhc2VcXFwiZmxvd1xcXCI6cj0hMDticmVhaztkZWZhdWx0OnI9bnVsbH1yZXR1cm57YW5jaG9yczpuZXcgU2V0LGRvYzpuLGZsb3dDb2xsZWN0aW9uUGFkZGluZzp0LmZsb3dDb2xsZWN0aW9uUGFkZGluZz9cXFwiIFxcXCI6XFxcIlxcXCIsaW5kZW50OlxcXCJcXFwiLGluZGVudFN0ZXA6dHlwZW9mIHQuaW5kZW50PT1cXFwibnVtYmVyXFxcIj9cXFwiIFxcXCIucmVwZWF0KHQuaW5kZW50KTpcXFwiICBcXFwiLGluRmxvdzpyLG9wdGlvbnM6dH19ZnVuY3Rpb24gWmMobixlKXt2YXIgcyxpLG8sYTtpZihlLnRhZyl7bGV0IHU9bi5maWx0ZXIobD0+bC50YWc9PT1lLnRhZyk7aWYodS5sZW5ndGg+MClyZXR1cm4ocz11LmZpbmQobD0+bC5mb3JtYXQ9PT1lLmZvcm1hdCkpIT1udWxsP3M6dVswXX1sZXQgdCxyO2lmKEsoZSkpe3I9ZS52YWx1ZTtsZXQgdT1uLmZpbHRlcihsPT57dmFyIGY7cmV0dXJuKGY9bC5pZGVudGlmeSk9PW51bGw/dm9pZCAwOmYuY2FsbChsLHIpfSk7aWYodS5sZW5ndGg+MSl7bGV0IGw9dS5maWx0ZXIoZj0+Zi50ZXN0KTtsLmxlbmd0aD4wJiYodT1sKX10PShpPXUuZmluZChsPT5sLmZvcm1hdD09PWUuZm9ybWF0KSkhPW51bGw/aTp1LmZpbmQobD0+IWwuZm9ybWF0KX1lbHNlIHI9ZSx0PW4uZmluZCh1PT51Lm5vZGVDbGFzcyYmciBpbnN0YW5jZW9mIHUubm9kZUNsYXNzKTtpZighdCl7bGV0IHU9KGE9KG89cj09bnVsbD92b2lkIDA6ci5jb25zdHJ1Y3Rvcik9PW51bGw/dm9pZCAwOm8ubmFtZSkhPW51bGw/YTp0eXBlb2Ygcjt0aHJvdyBuZXcgRXJyb3IoYFRhZyBub3QgcmVzb2x2ZWQgZm9yICR7dX0gdmFsdWVgKX1yZXR1cm4gdH1mdW5jdGlvbiBRYyhuLGUse2FuY2hvcnM6dCxkb2M6cn0pe2lmKCFyLmRpcmVjdGl2ZXMpcmV0dXJuXFxcIlxcXCI7bGV0IHM9W10saT0oSyhuKXx8WihuKSkmJm4uYW5jaG9yO2kmJm9zKGkpJiYodC5hZGQoaSkscy5wdXNoKGAmJHtpfWApKTtsZXQgbz1uLnRhZz9uLnRhZzplLmRlZmF1bHQ/bnVsbDplLnRhZztyZXR1cm4gbyYmcy5wdXNoKHIuZGlyZWN0aXZlcy50YWdTdHJpbmcobykpLHMuam9pbihcXFwiIFxcXCIpfWZ1bmN0aW9uIFR0KG4sZSx0LHIpe3ZhciB1LGw7aWYoSChuKSlyZXR1cm4gbi50b1N0cmluZyhlLHQscik7aWYoV2Uobikpe2lmKGUuZG9jLmRpcmVjdGl2ZXMpcmV0dXJuIG4udG9TdHJpbmcoZSk7aWYoKHU9ZS5yZXNvbHZlZEFsaWFzZXMpIT1udWxsJiZ1LmhhcyhuKSl0aHJvdyBuZXcgVHlwZUVycm9yKFxcXCJDYW5ub3Qgc3RyaW5naWZ5IGNpcmN1bGFyIHN0cnVjdHVyZSB3aXRob3V0IGFsaWFzIG5vZGVzXFxcIik7ZS5yZXNvbHZlZEFsaWFzZXM/ZS5yZXNvbHZlZEFsaWFzZXMuYWRkKG4pOmUucmVzb2x2ZWRBbGlhc2VzPW5ldyBTZXQoW25dKSxuPW4ucmVzb2x2ZShlLmRvYyl9bGV0IHMsaT1KKG4pP246ZS5kb2MuY3JlYXRlTm9kZShuLHtvblRhZ09iajpmPT5zPWZ9KTtzfHwocz1aYyhlLmRvYy5zY2hlbWEudGFncyxpKSk7bGV0IG89UWMoaSxzLGUpO28ubGVuZ3RoPjAmJihlLmluZGVudEF0U3RhcnQ9KChsPWUuaW5kZW50QXRTdGFydCkhPW51bGw/bDowKStvLmxlbmd0aCsxKTtsZXQgYT10eXBlb2Ygcy5zdHJpbmdpZnk9PVxcXCJmdW5jdGlvblxcXCI/cy5zdHJpbmdpZnkoaSxlLHQscik6SyhpKT9XdChpLGUsdCxyKTppLnRvU3RyaW5nKGUsdCxyKTtyZXR1cm4gbz9LKGkpfHxhWzBdPT09XFxcIntcXFwifHxhWzBdPT09XFxcIltcXFwiP2Ake299ICR7YX1gOmAke299XFxuJHtlLmluZGVudH0ke2F9YDphfWZ1bmN0aW9uIFFhKHtrZXk6bix2YWx1ZTplfSx0LHIscyl7dmFyIHgsQztsZXR7YWxsTnVsbFZhbHVlczppLGRvYzpvLGluZGVudDphLGluZGVudFN0ZXA6dSxvcHRpb25zOntjb21tZW50U3RyaW5nOmwsaW5kZW50U2VxOmYsc2ltcGxlS2V5czpkfX09dCxtPUoobikmJm4uY29tbWVudHx8bnVsbDtpZihkKXtpZihtKXRocm93IG5ldyBFcnJvcihcXFwiV2l0aCBzaW1wbGUga2V5cywga2V5IG5vZGVzIGNhbm5vdCBoYXZlIGNvbW1lbnRzXFxcIik7aWYoWihuKXx8IUoobikmJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIil7bGV0IFY9XFxcIldpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWVcXFwiO3Rocm93IG5ldyBFcnJvcihWKX19bGV0IGg9IWQmJighbnx8bSYmZT09bnVsbCYmIXQuaW5GbG93fHxaKG4pfHwoSyhuKT9uLnR5cGU9PT1QLkJMT0NLX0ZPTERFRHx8bi50eXBlPT09UC5CTE9DS19MSVRFUkFMOnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIikpO3Q9T2JqZWN0LmFzc2lnbih7fSx0LHthbGxOdWxsVmFsdWVzOiExLGltcGxpY2l0S2V5OiFoJiYoZHx8IWkpLGluZGVudDphK3V9KTtsZXQgYj0hMSxnPSExLEQ9VHQobix0LCgpPT5iPSEwLCgpPT5nPSEwKTtpZighaCYmIXQuaW5GbG93JiZELmxlbmd0aD4xMDI0KXtpZihkKXRocm93IG5ldyBFcnJvcihcXFwiV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVyc1xcXCIpO2g9ITB9aWYodC5pbkZsb3cpe2lmKGl8fGU9PW51bGwpcmV0dXJuIGImJnImJnIoKSxEPT09XFxcIlxcXCI/XFxcIj9cXFwiOmg/YD8gJHtEfWA6RH1lbHNlIGlmKGkmJiFkfHxlPT1udWxsJiZoKXJldHVybiBEPWA/ICR7RH1gLG0mJiFiP0QrPW90KEQsdC5pbmRlbnQsbChtKSk6ZyYmcyYmcygpLEQ7YiYmKG09bnVsbCksaD8obSYmKEQrPW90KEQsdC5pbmRlbnQsbChtKSkpLEQ9YD8gJHtEfVxcbiR7YX06YCk6KEQ9YCR7RH06YCxtJiYoRCs9b3QoRCx0LmluZGVudCxsKG0pKSkpO2xldCBULEksTjtKKGUpPyhUPSEhZS5zcGFjZUJlZm9yZSxJPWUuY29tbWVudEJlZm9yZSxOPWUuY29tbWVudCk6KFQ9ITEsST1udWxsLE49bnVsbCxlJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCImJihlPW8uY3JlYXRlTm9kZShlKSkpLHQuaW1wbGljaXRLZXk9ITEsIWgmJiFtJiZLKGUpJiYodC5pbmRlbnRBdFN0YXJ0PUQubGVuZ3RoKzEpLGc9ITEsIWYmJnUubGVuZ3RoPj0yJiYhdC5pbkZsb3cmJiFoJiZKZShlKSYmIWUuZmxvdyYmIWUudGFnJiYhZS5hbmNob3ImJih0LmluZGVudD10LmluZGVudC5zdWJzdHJpbmcoMikpO2xldCB5PSExLHc9VHQoZSx0LCgpPT55PSEwLCgpPT5nPSEwKSx2PVxcXCIgXFxcIjtpZihtfHxUfHxJKXtpZih2PVQ/YFxcbmA6XFxcIlxcXCIsSSl7bGV0IFY9bChJKTt2Kz1gXFxuJHtQZShWLHQuaW5kZW50KX1gfXc9PT1cXFwiXFxcIiYmIXQuaW5GbG93P3Y9PT1gXFxuYCYmKHY9YFxcblxcbmApOnYrPWBcXG4ke3QuaW5kZW50fWB9ZWxzZSBpZighaCYmWihlKSl7bGV0IFY9d1swXSxqPXcuaW5kZXhPZihgXFxuYCksWT1qIT09LTEsZWU9KEM9KHg9dC5pbkZsb3cpIT1udWxsP3g6ZS5mbG93KSE9bnVsbD9DOmUuaXRlbXMubGVuZ3RoPT09MDtpZihZfHwhZWUpe2xldCBhZT0hMTtpZihZJiYoVj09PVxcXCImXFxcInx8Vj09PVxcXCIhXFxcIikpe2xldCBPPXcuaW5kZXhPZihcXFwiIFxcXCIpO1Y9PT1cXFwiJlxcXCImJk8hPT0tMSYmTzxqJiZ3W08rMV09PT1cXFwiIVxcXCImJihPPXcuaW5kZXhPZihcXFwiIFxcXCIsTysxKSksKE89PT0tMXx8ajxPKSYmKGFlPSEwKX1hZXx8KHY9YFxcbiR7dC5pbmRlbnR9YCl9fWVsc2Uodz09PVxcXCJcXFwifHx3WzBdPT09YFxcbmApJiYodj1cXFwiXFxcIik7cmV0dXJuIEQrPXYrdyx0LmluRmxvdz95JiZyJiZyKCk6TiYmIXk/RCs9b3QoRCx0LmluZGVudCxsKE4pKTpnJiZzJiZzKCksRH1mdW5jdGlvbiBtcyhuLGUpeyhuPT09XFxcImRlYnVnXFxcInx8bj09PVxcXCJ3YXJuXFxcIikmJih0eXBlb2YgcHJvY2VzcyE9XFxcInVuZGVmaW5lZFxcXCImJnByb2Nlc3MuZW1pdFdhcm5pbmc/cHJvY2Vzcy5lbWl0V2FybmluZyhlKTpjb25zb2xlLndhcm4oZSkpfXZhciBwcz1cXFwiPDxcXFwiLFllPXtpZGVudGlmeTpuPT5uPT09cHN8fHR5cGVvZiBuPT1cXFwic3ltYm9sXFxcIiYmbi5kZXNjcmlwdGlvbj09PXBzLGRlZmF1bHQ6XFxcImtleVxcXCIsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZVxcXCIsdGVzdDovXjw8JC8scmVzb2x2ZTooKT0+T2JqZWN0LmFzc2lnbihuZXcgUChTeW1ib2wocHMpKSx7YWRkVG9KU01hcDpWaX0pLHN0cmluZ2lmeTooKT0+cHN9LFhhPShuLGUpPT4oWWUuaWRlbnRpZnkoZSl8fEsoZSkmJighZS50eXBlfHxlLnR5cGU9PT1QLlBMQUlOKSYmWWUuaWRlbnRpZnkoZS52YWx1ZSkpJiYobj09bnVsbD92b2lkIDA6bi5kb2Muc2NoZW1hLnRhZ3Muc29tZSh0PT50LnRhZz09PVllLnRhZyYmdC5kZWZhdWx0KSk7ZnVuY3Rpb24gVmkobixlLHQpe2lmKHQ9biYmV2UodCk/dC5yZXNvbHZlKG4uZG9jKTp0LEplKHQpKWZvcihsZXQgciBvZiB0Lml0ZW1zKXFpKG4sZSxyKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCByIG9mIHQpcWkobixlLHIpO2Vsc2UgcWkobixlLHQpfWZ1bmN0aW9uIHFpKG4sZSx0KXtsZXQgcj1uJiZXZSh0KT90LnJlc29sdmUobi5kb2MpOnQ7aWYoIUhlKHIpKXRocm93IG5ldyBFcnJvcihcXFwiTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXNcXFwiKTtsZXQgcz1yLnRvSlNPTihudWxsLG4sTWFwKTtmb3IobGV0W2ksb11vZiBzKWUgaW5zdGFuY2VvZiBNYXA/ZS5oYXMoaSl8fGUuc2V0KGksbyk6ZSBpbnN0YW5jZW9mIFNldD9lLmFkZChpKTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBlfWZ1bmN0aW9uIERzKG4sZSx7a2V5OnQsdmFsdWU6cn0pe2lmKEoodCkmJnQuYWRkVG9KU01hcCl0LmFkZFRvSlNNYXAobixlLHIpO2Vsc2UgaWYoWGEobix0KSlWaShuLGUscik7ZWxzZXtsZXQgcz1jZSh0LFxcXCJcXFwiLG4pO2lmKGUgaW5zdGFuY2VvZiBNYXApZS5zZXQocyxjZShyLHMsbikpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFNldCllLmFkZChzKTtlbHNle2xldCBpPVhjKHQscyxuKSxvPWNlKHIsaSxuKTtpIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOmVbaV09b319cmV0dXJuIGV9ZnVuY3Rpb24gWGMobixlLHQpe2lmKGU9PT1udWxsKXJldHVyblxcXCJcXFwiO2lmKHR5cGVvZiBlIT1cXFwib2JqZWN0XFxcIilyZXR1cm4gU3RyaW5nKGUpO2lmKEoobikmJih0IT1udWxsJiZ0LmRvYykpe2xldCByPWhzKHQuZG9jLHt9KTtyLmFuY2hvcnM9bmV3IFNldDtmb3IobGV0IGkgb2YgdC5hbmNob3JzLmtleXMoKSlyLmFuY2hvcnMuYWRkKGkuYW5jaG9yKTtyLmluRmxvdz0hMCxyLmluU3RyaW5naWZ5S2V5PSEwO2xldCBzPW4udG9TdHJpbmcocik7aWYoIXQubWFwS2V5V2FybmVkKXtsZXQgaT1KU09OLnN0cmluZ2lmeShzKTtpLmxlbmd0aD40MCYmKGk9aS5zdWJzdHJpbmcoMCwzNikrJy4uLlxcXCInKSxtcyh0LmRvYy5vcHRpb25zLmxvZ0xldmVsLGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtpfS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKSx0Lm1hcEtleVdhcm5lZD0hMH1yZXR1cm4gc31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9ZnVuY3Rpb24gdm4obixlLHQpe2xldCByPXd0KG4sdm9pZCAwLHQpLHM9d3QoZSx2b2lkIDAsdCk7cmV0dXJuIG5ldyBpZShyLHMpfXZhciBpZT1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdD1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxUZSx7dmFsdWU6X2l9KSx0aGlzLmtleT1lLHRoaXMudmFsdWU9dH1jbG9uZShlKXtsZXR7a2V5OnQsdmFsdWU6cn09dGhpcztyZXR1cm4gSih0KSYmKHQ9dC5jbG9uZShlKSksSihyKSYmKHI9ci5jbG9uZShlKSksbmV3IG4odCxyKX10b0pTT04oZSx0KXtsZXQgcj10IT1udWxsJiZ0Lm1hcEFzTWFwP25ldyBNYXA6e307cmV0dXJuIERzKHQscix0aGlzKX10b1N0cmluZyhlLHQscil7cmV0dXJuIGUhPW51bGwmJmUuZG9jP1FhKHRoaXMsZSx0LHIpOkpTT04uc3RyaW5naWZ5KHRoaXMpfX07ZnVuY3Rpb24gZ3MobixlLHQpe3ZhciBpO3JldHVybigoKGk9ZS5pbkZsb3cpIT1udWxsP2k6bi5mbG93KT90ZjplZikobixlLHQpfWZ1bmN0aW9uIGVmKHtjb21tZW50Om4saXRlbXM6ZX0sdCx7YmxvY2tJdGVtUHJlZml4OnIsZmxvd0NoYXJzOnMsaXRlbUluZGVudDppLG9uQ2hvbXBLZWVwOm8sb25Db21tZW50OmF9KXtsZXR7aW5kZW50OnUsb3B0aW9uczp7Y29tbWVudFN0cmluZzpsfX09dCxmPU9iamVjdC5hc3NpZ24oe30sdCx7aW5kZW50OmksdHlwZTpudWxsfSksZD0hMSxtPVtdO2ZvcihsZXQgYj0wO2I8ZS5sZW5ndGg7KytiKXtsZXQgZz1lW2JdLEQ9bnVsbDtpZihKKGcpKSFkJiZnLnNwYWNlQmVmb3JlJiZtLnB1c2goXFxcIlxcXCIpLHlzKHQsbSxnLmNvbW1lbnRCZWZvcmUsZCksZy5jb21tZW50JiYoRD1nLmNvbW1lbnQpO2Vsc2UgaWYoSChnKSl7bGV0IEk9SihnLmtleSk/Zy5rZXk6bnVsbDtJJiYoIWQmJkkuc3BhY2VCZWZvcmUmJm0ucHVzaChcXFwiXFxcIikseXModCxtLEkuY29tbWVudEJlZm9yZSxkKSl9ZD0hMTtsZXQgVD1UdChnLGYsKCk9PkQ9bnVsbCwoKT0+ZD0hMCk7RCYmKFQrPW90KFQsaSxsKEQpKSksZCYmRCYmKGQ9ITEpLG0ucHVzaChyK1QpfWxldCBoO2lmKG0ubGVuZ3RoPT09MCloPXMuc3RhcnQrcy5lbmQ7ZWxzZXtoPW1bMF07Zm9yKGxldCBiPTE7YjxtLmxlbmd0aDsrK2Ipe2xldCBnPW1bYl07aCs9Zz9gXFxuJHt1fSR7Z31gOmBcXG5gfX1yZXR1cm4gbj8oaCs9YFxcbmArUGUobChuKSx1KSxhJiZhKCkpOmQmJm8mJm8oKSxofWZ1bmN0aW9uIHRmKHtpdGVtczpufSxlLHtmbG93Q2hhcnM6dCxpdGVtSW5kZW50OnJ9KXtsZXR7aW5kZW50OnMsaW5kZW50U3RlcDppLGZsb3dDb2xsZWN0aW9uUGFkZGluZzpvLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6YX19PWU7cis9aTtsZXQgdT1PYmplY3QuYXNzaWduKHt9LGUse2luZGVudDpyLGluRmxvdzohMCx0eXBlOm51bGx9KSxsPSExLGY9MCxkPVtdO2ZvcihsZXQgYj0wO2I8bi5sZW5ndGg7KytiKXtsZXQgZz1uW2JdLEQ9bnVsbDtpZihKKGcpKWcuc3BhY2VCZWZvcmUmJmQucHVzaChcXFwiXFxcIikseXMoZSxkLGcuY29tbWVudEJlZm9yZSwhMSksZy5jb21tZW50JiYoRD1nLmNvbW1lbnQpO2Vsc2UgaWYoSChnKSl7bGV0IEk9SihnLmtleSk/Zy5rZXk6bnVsbDtJJiYoSS5zcGFjZUJlZm9yZSYmZC5wdXNoKFxcXCJcXFwiKSx5cyhlLGQsSS5jb21tZW50QmVmb3JlLCExKSxJLmNvbW1lbnQmJihsPSEwKSk7bGV0IE49SihnLnZhbHVlKT9nLnZhbHVlOm51bGw7Tj8oTi5jb21tZW50JiYoRD1OLmNvbW1lbnQpLE4uY29tbWVudEJlZm9yZSYmKGw9ITApKTpnLnZhbHVlPT1udWxsJiYoSSE9bnVsbCYmSS5jb21tZW50KSYmKEQ9SS5jb21tZW50KX1EJiYobD0hMCk7bGV0IFQ9VHQoZyx1LCgpPT5EPW51bGwpO2I8bi5sZW5ndGgtMSYmKFQrPVxcXCIsXFxcIiksRCYmKFQrPW90KFQscixhKEQpKSksIWwmJihkLmxlbmd0aD5mfHxULmluY2x1ZGVzKGBcXG5gKSkmJihsPSEwKSxkLnB1c2goVCksZj1kLmxlbmd0aH1sZXR7c3RhcnQ6bSxlbmQ6aH09dDtpZihkLmxlbmd0aD09PTApcmV0dXJuIG0raDtpZighbCl7bGV0IGI9ZC5yZWR1Y2UoKGcsRCk9PmcrRC5sZW5ndGgrMiwyKTtsPWUub3B0aW9ucy5saW5lV2lkdGg+MCYmYj5lLm9wdGlvbnMubGluZVdpZHRofWlmKGwpe2xldCBiPW07Zm9yKGxldCBnIG9mIGQpYis9Zz9gXFxuJHtpfSR7c30ke2d9YDpgXFxuYDtyZXR1cm5gJHtifVxcbiR7c30ke2h9YH1lbHNlIHJldHVybmAke219JHtvfSR7ZC5qb2luKFxcXCIgXFxcIil9JHtvfSR7aH1gfWZ1bmN0aW9uIHlzKHtpbmRlbnQ6bixvcHRpb25zOntjb21tZW50U3RyaW5nOmV9fSx0LHIscyl7aWYociYmcyYmKHI9ci5yZXBsYWNlKC9eXFxcXG4rLyxcXFwiXFxcIikpLHIpe2xldCBpPVBlKGUociksbik7dC5wdXNoKGkudHJpbVN0YXJ0KCkpfX1mdW5jdGlvbiBJdChuLGUpe2xldCB0PUsoZSk/ZS52YWx1ZTplO2ZvcihsZXQgciBvZiBuKWlmKEgocikmJihyLmtleT09PWV8fHIua2V5PT09dHx8SyhyLmtleSkmJnIua2V5LnZhbHVlPT09dCkpcmV0dXJuIHJ9dmFyIG9lPWNsYXNzIGV4dGVuZHMgU257c3RhdGljIGdldCB0YWdOYW1lKCl7cmV0dXJuXFxcInRhZzp5YW1sLm9yZywyMDAyOm1hcFxcXCJ9Y29uc3RydWN0b3IoZSl7c3VwZXIoS2UsZSksdGhpcy5pdGVtcz1bXX1zdGF0aWMgZnJvbShlLHQscil7bGV0e2tlZXBVbmRlZmluZWQ6cyxyZXBsYWNlcjppfT1yLG89bmV3IHRoaXMoZSksYT0odSxsKT0+e2lmKHR5cGVvZiBpPT1cXFwiZnVuY3Rpb25cXFwiKWw9aS5jYWxsKHQsdSxsKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkmJiFpLmluY2x1ZGVzKHUpKXJldHVybjsobCE9PXZvaWQgMHx8cykmJm8uaXRlbXMucHVzaCh2bih1LGwscikpfTtpZih0IGluc3RhbmNlb2YgTWFwKWZvcihsZXRbdSxsXW9mIHQpYSh1LGwpO2Vsc2UgaWYodCYmdHlwZW9mIHQ9PVxcXCJvYmplY3RcXFwiKWZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyh0KSlhKHUsdFt1XSk7cmV0dXJuIHR5cGVvZiBlLnNvcnRNYXBFbnRyaWVzPT1cXFwiZnVuY3Rpb25cXFwiJiZvLml0ZW1zLnNvcnQoZS5zb3J0TWFwRW50cmllcyksb31hZGQoZSx0KXt2YXIgbztsZXQgcjtIKGUpP3I9ZTohZXx8dHlwZW9mIGUhPVxcXCJvYmplY3RcXFwifHwhKFxcXCJrZXlcXFwiaW4gZSk/cj1uZXcgaWUoZSxlPT1udWxsP3ZvaWQgMDplLnZhbHVlKTpyPW5ldyBpZShlLmtleSxlLnZhbHVlKTtsZXQgcz1JdCh0aGlzLml0ZW1zLHIua2V5KSxpPShvPXRoaXMuc2NoZW1hKT09bnVsbD92b2lkIDA6by5zb3J0TWFwRW50cmllcztpZihzKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEtleSAke3Iua2V5fSBhbHJlYWR5IHNldGApO0socy52YWx1ZSkmJnVzKHIudmFsdWUpP3MudmFsdWUudmFsdWU9ci52YWx1ZTpzLnZhbHVlPXIudmFsdWV9ZWxzZSBpZihpKXtsZXQgYT10aGlzLml0ZW1zLmZpbmRJbmRleCh1PT5pKHIsdSk8MCk7YT09PS0xP3RoaXMuaXRlbXMucHVzaChyKTp0aGlzLml0ZW1zLnNwbGljZShhLDAscil9ZWxzZSB0aGlzLml0ZW1zLnB1c2gocil9ZGVsZXRlKGUpe2xldCB0PUl0KHRoaXMuaXRlbXMsZSk7cmV0dXJuIHQ/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKHQpLDEpLmxlbmd0aD4wOiExfWdldChlLHQpe3ZhciBpO2xldCByPUl0KHRoaXMuaXRlbXMsZSkscz1yPT1udWxsP3ZvaWQgMDpyLnZhbHVlO3JldHVybihpPSF0JiZLKHMpP3MudmFsdWU6cykhPW51bGw/aTp2b2lkIDB9aGFzKGUpe3JldHVybiEhSXQodGhpcy5pdGVtcyxlKX1zZXQoZSx0KXt0aGlzLmFkZChuZXcgaWUoZSx0KSwhMCl9dG9KU09OKGUsdCxyKXtsZXQgcz1yP25ldyByOnQhPW51bGwmJnQubWFwQXNNYXA/bmV3IE1hcDp7fTt0IT1udWxsJiZ0Lm9uQ3JlYXRlJiZ0Lm9uQ3JlYXRlKHMpO2ZvcihsZXQgaSBvZiB0aGlzLml0ZW1zKURzKHQscyxpKTtyZXR1cm4gc310b1N0cmluZyhlLHQscil7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKWlmKCFIKHMpKXRocm93IG5ldyBFcnJvcihgTWFwIGl0ZW1zIG11c3QgYWxsIGJlIHBhaXJzOyBmb3VuZCAke0pTT04uc3RyaW5naWZ5KHMpfSBpbnN0ZWFkYCk7cmV0dXJuIWUuYWxsTnVsbFZhbHVlcyYmdGhpcy5oYXNBbGxOdWxsVmFsdWVzKCExKSYmKGU9T2JqZWN0LmFzc2lnbih7fSxlLHthbGxOdWxsVmFsdWVzOiEwfSkpLGdzKHRoaXMsZSx7YmxvY2tJdGVtUHJlZml4OlxcXCJcXFwiLGZsb3dDaGFyczp7c3RhcnQ6XFxcIntcXFwiLGVuZDpcXFwifVxcXCJ9LGl0ZW1JbmRlbnQ6ZS5pbmRlbnR8fFxcXCJcXFwiLG9uQ2hvbXBLZWVwOnIsb25Db21tZW50OnR9KX19O3ZhciBHZT17Y29sbGVjdGlvbjpcXFwibWFwXFxcIixkZWZhdWx0OiEwLG5vZGVDbGFzczpvZSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOm1hcFxcXCIscmVzb2x2ZShuLGUpe3JldHVybiBIZShuKXx8ZShcXFwiRXhwZWN0ZWQgYSBtYXBwaW5nIGZvciB0aGlzIHRhZ1xcXCIpLG59LGNyZWF0ZU5vZGU6KG4sZSx0KT0+b2UuZnJvbShuLGUsdCl9O3ZhciBiZT1jbGFzcyBleHRlbmRzIFNue3N0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVyblxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXFcXFwifWNvbnN0cnVjdG9yKGUpe3N1cGVyKEZ0LGUpLHRoaXMuaXRlbXM9W119YWRkKGUpe3RoaXMuaXRlbXMucHVzaChlKX1kZWxldGUoZSl7bGV0IHQ9YnMoZSk7cmV0dXJuIHR5cGVvZiB0IT1cXFwibnVtYmVyXFxcIj8hMTp0aGlzLml0ZW1zLnNwbGljZSh0LDEpLmxlbmd0aD4wfWdldChlLHQpe2xldCByPWJzKGUpO2lmKHR5cGVvZiByIT1cXFwibnVtYmVyXFxcIilyZXR1cm47bGV0IHM9dGhpcy5pdGVtc1tyXTtyZXR1cm4hdCYmSyhzKT9zLnZhbHVlOnN9aGFzKGUpe2xldCB0PWJzKGUpO3JldHVybiB0eXBlb2YgdD09XFxcIm51bWJlclxcXCImJnQ8dGhpcy5pdGVtcy5sZW5ndGh9c2V0KGUsdCl7bGV0IHI9YnMoZSk7aWYodHlwZW9mIHIhPVxcXCJudW1iZXJcXFwiKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YWxpZCBpbmRleCwgbm90ICR7ZX0uYCk7bGV0IHM9dGhpcy5pdGVtc1tyXTtLKHMpJiZ1cyh0KT9zLnZhbHVlPXQ6dGhpcy5pdGVtc1tyXT10fXRvSlNPTihlLHQpe2xldCByPVtdO3QhPW51bGwmJnQub25DcmVhdGUmJnQub25DcmVhdGUocik7bGV0IHM9MDtmb3IobGV0IGkgb2YgdGhpcy5pdGVtcylyLnB1c2goY2UoaSxTdHJpbmcocysrKSx0KSk7cmV0dXJuIHJ9dG9TdHJpbmcoZSx0LHIpe3JldHVybiBlP2dzKHRoaXMsZSx7YmxvY2tJdGVtUHJlZml4OlxcXCItIFxcXCIsZmxvd0NoYXJzOntzdGFydDpcXFwiW1xcXCIsZW5kOlxcXCJdXFxcIn0saXRlbUluZGVudDooZS5pbmRlbnR8fFxcXCJcXFwiKStcXFwiICBcXFwiLG9uQ2hvbXBLZWVwOnIsb25Db21tZW50OnR9KTpKU09OLnN0cmluZ2lmeSh0aGlzKX1zdGF0aWMgZnJvbShlLHQscil7bGV0e3JlcGxhY2VyOnN9PXIsaT1uZXcgdGhpcyhlKTtpZih0JiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHQpKXtsZXQgbz0wO2ZvcihsZXQgYSBvZiB0KXtpZih0eXBlb2Ygcz09XFxcImZ1bmN0aW9uXFxcIil7bGV0IHU9dCBpbnN0YW5jZW9mIFNldD9hOlN0cmluZyhvKyspO2E9cy5jYWxsKHQsdSxhKX1pLml0ZW1zLnB1c2god3QoYSx2b2lkIDAscikpfX1yZXR1cm4gaX19O2Z1bmN0aW9uIGJzKG4pe2xldCBlPUsobik/bi52YWx1ZTpuO3JldHVybiBlJiZ0eXBlb2YgZT09XFxcInN0cmluZ1xcXCImJihlPU51bWJlcihlKSksdHlwZW9mIGU9PVxcXCJudW1iZXJcXFwiJiZOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wP2U6bnVsbH12YXIgWmU9e2NvbGxlY3Rpb246XFxcInNlcVxcXCIsZGVmYXVsdDohMCxub2RlQ2xhc3M6YmUsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXFcXFwiLHJlc29sdmUobixlKXtyZXR1cm4gSmUobil8fGUoXFxcIkV4cGVjdGVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgdGFnXFxcIiksbn0sY3JlYXRlTm9kZToobixlLHQpPT5iZS5mcm9tKG4sZSx0KX07dmFyIEx0PXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcInN0cmluZ1xcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOnN0clxcXCIscmVzb2x2ZTpuPT5uLHN0cmluZ2lmeShuLGUsdCxyKXtyZXR1cm4gZT1PYmplY3QuYXNzaWduKHthY3R1YWxTdHJpbmc6ITB9LGUpLFd0KG4sZSx0LHIpfX07dmFyIEh0PXtpZGVudGlmeTpuPT5uPT1udWxsLGNyZWF0ZU5vZGU6KCk9Pm5ldyBQKG51bGwpLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXFxcIix0ZXN0Oi9eKD86fnxbTm5ddWxsfE5VTEwpPyQvLHJlc29sdmU6KCk9Pm5ldyBQKG51bGwpLHN0cmluZ2lmeTooe3NvdXJjZTpufSxlKT0+dHlwZW9mIG49PVxcXCJzdHJpbmdcXFwiJiZIdC50ZXN0LnRlc3Qobik/bjplLm9wdGlvbnMubnVsbFN0cn07dmFyIGJyPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcImJvb2xlYW5cXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXFxcIix0ZXN0Oi9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLHJlc29sdmU6bj0+bmV3IFAoblswXT09PVxcXCJ0XFxcInx8blswXT09PVxcXCJUXFxcIiksc3RyaW5naWZ5KHtzb3VyY2U6bix2YWx1ZTplfSx0KXtpZihuJiZici50ZXN0LnRlc3Qobikpe2xldCByPW5bMF09PT1cXFwidFxcXCJ8fG5bMF09PT1cXFwiVFxcXCI7aWYoZT09PXIpcmV0dXJuIG59cmV0dXJuIGU/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfX07ZnVuY3Rpb24gRmUoe2Zvcm1hdDpuLG1pbkZyYWN0aW9uRGlnaXRzOmUsdGFnOnQsdmFsdWU6cn0pe2lmKHR5cGVvZiByPT1cXFwiYmlnaW50XFxcIilyZXR1cm4gU3RyaW5nKHIpO2xldCBzPXR5cGVvZiByPT1cXFwibnVtYmVyXFxcIj9yOk51bWJlcihyKTtpZighaXNGaW5pdGUocykpcmV0dXJuIGlzTmFOKHMpP1xcXCIubmFuXFxcIjpzPDA/XFxcIi0uaW5mXFxcIjpcXFwiLmluZlxcXCI7bGV0IGk9SlNPTi5zdHJpbmdpZnkocik7aWYoIW4mJmUmJighdHx8dD09PVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIpJiYvXlxcXFxkLy50ZXN0KGkpKXtsZXQgbz1pLmluZGV4T2YoXFxcIi5cXFwiKTtvPDAmJihvPWkubGVuZ3RoLGkrPVxcXCIuXFxcIik7bGV0IGE9ZS0oaS5sZW5ndGgtby0xKTtmb3IoO2EtLSA+MDspaSs9XFxcIjBcXFwifXJldHVybiBpfXZhciBGcz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXig/OlstK10/XFxcXC4oPzppbmZ8SW5mfElORil8XFxcXC5uYW58XFxcXC5OYU58XFxcXC5OQU4pJC8scmVzb2x2ZTpuPT5uLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09XFxcIm5hblxcXCI/TmFOOm5bMF09PT1cXFwiLVxcXCI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxzdHJpbmdpZnk6RmV9LEVzPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIkVYUFxcXCIsdGVzdDovXlstK10/KD86XFxcXC5bMC05XSt8WzAtOV0rKD86XFxcXC5bMC05XSopPylbZUVdWy0rXT9bMC05XSskLyxyZXNvbHZlOm49PnBhcnNlRmxvYXQobiksc3RyaW5naWZ5KG4pe2xldCBlPU51bWJlcihuLnZhbHVlKTtyZXR1cm4gaXNGaW5pdGUoZSk/ZS50b0V4cG9uZW50aWFsKCk6RmUobil9fSx3cz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXlstK10/KD86XFxcXC5bMC05XSt8WzAtOV0rXFxcXC5bMC05XSopJC8scmVzb2x2ZShuKXtsZXQgZT1uZXcgUChwYXJzZUZsb2F0KG4pKSx0PW4uaW5kZXhPZihcXFwiLlxcXCIpO3JldHVybiB0IT09LTEmJm5bbi5sZW5ndGgtMV09PT1cXFwiMFxcXCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoLXQtMSksZX0sc3RyaW5naWZ5OkZlfTt2YXIgVHM9bj0+dHlwZW9mIG49PVxcXCJiaWdpbnRcXFwifHxOdW1iZXIuaXNJbnRlZ2VyKG4pLFVpPShuLGUsdCx7aW50QXNCaWdJbnQ6cn0pPT5yP0JpZ0ludChuKTpwYXJzZUludChuLnN1YnN0cmluZyhlKSx0KTtmdW5jdGlvbiBldShuLGUsdCl7bGV0e3ZhbHVlOnJ9PW47cmV0dXJuIFRzKHIpJiZyPj0wP3Qrci50b1N0cmluZyhlKTpGZShuKX12YXIgU3M9e2lkZW50aWZ5Om49PlRzKG4pJiZuPj0wLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiT0NUXFxcIix0ZXN0Oi9eMG9bMC03XSskLyxyZXNvbHZlOihuLGUsdCk9PlVpKG4sMiw4LHQpLHN0cmluZ2lmeTpuPT5ldShuLDgsXFxcIjBvXFxcIil9LGtzPXtpZGVudGlmeTpUcyxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6aW50XFxcIix0ZXN0Oi9eWy0rXT9bMC05XSskLyxyZXNvbHZlOihuLGUsdCk9PlVpKG4sMCwxMCx0KSxzdHJpbmdpZnk6RmV9LENzPXtpZGVudGlmeTpuPT5UcyhuKSYmbj49MCxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6aW50XFxcIixmb3JtYXQ6XFxcIkhFWFxcXCIsdGVzdDovXjB4WzAtOWEtZkEtRl0rJC8scmVzb2x2ZToobixlLHQpPT5VaShuLDIsMTYsdCksc3RyaW5naWZ5Om49PmV1KG4sMTYsXFxcIjB4XFxcIil9O3ZhciB0dT1bR2UsWmUsTHQsSHQsYnIsU3Msa3MsQ3MsRnMsRXMsd3NdO2Z1bmN0aW9uIG51KG4pe3JldHVybiB0eXBlb2Ygbj09XFxcImJpZ2ludFxcXCJ8fE51bWJlci5pc0ludGVnZXIobil9dmFyIHZzPSh7dmFsdWU6bn0pPT5KU09OLnN0cmluZ2lmeShuKSxuZj1be2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwic3RyaW5nXFxcIixkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6c3RyXFxcIixyZXNvbHZlOm49Pm4sc3RyaW5naWZ5OnZzfSx7aWRlbnRpZnk6bj0+bj09bnVsbCxjcmVhdGVOb2RlOigpPT5uZXcgUChudWxsKSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6bnVsbFxcXCIsdGVzdDovXm51bGwkLyxyZXNvbHZlOigpPT5udWxsLHN0cmluZ2lmeTp2c30se2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwiYm9vbGVhblxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcXFwiLHRlc3Q6L150cnVlfGZhbHNlJC8scmVzb2x2ZTpuPT5uPT09XFxcInRydWVcXFwiLHN0cmluZ2lmeTp2c30se2lkZW50aWZ5Om51LGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopJC8scmVzb2x2ZToobixlLHtpbnRBc0JpZ0ludDp0fSk9PnQ/QmlnSW50KG4pOnBhcnNlSW50KG4sMTApLHN0cmluZ2lmeTooe3ZhbHVlOm59KT0+bnUobik/bi50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KG4pfSx7aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXi0/KD86MHxbMS05XVswLTldKikoPzpcXFxcLlswLTldKik/KD86W2VFXVstK10/WzAtOV0rKT8kLyxyZXNvbHZlOm49PnBhcnNlRmxvYXQobiksc3RyaW5naWZ5OnZzfV0scmY9e2RlZmF1bHQ6ITAsdGFnOlxcXCJcXFwiLHRlc3Q6L14vLHJlc29sdmUobixlKXtyZXR1cm4gZShgVW5yZXNvbHZlZCBwbGFpbiBzY2FsYXIgJHtKU09OLnN0cmluZ2lmeShuKX1gKSxufX0scnU9W0dlLFplXS5jb25jYXQobmYscmYpO3ZhciBGcj17aWRlbnRpZnk6bj0+biBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksZGVmYXVsdDohMSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeVxcXCIscmVzb2x2ZShuLGUpe2lmKHR5cGVvZiBCdWZmZXI9PVxcXCJmdW5jdGlvblxcXCIpcmV0dXJuIEJ1ZmZlci5mcm9tKG4sXFxcImJhc2U2NFxcXCIpO2lmKHR5cGVvZiBhdG9iPT1cXFwiZnVuY3Rpb25cXFwiKXtsZXQgdD1hdG9iKG4ucmVwbGFjZSgvW1xcXFxuXFxcXHJdL2csXFxcIlxcXCIpKSxyPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHM9MDtzPHQubGVuZ3RoOysrcylyW3NdPXQuY2hhckNvZGVBdChzKTtyZXR1cm4gcn1lbHNlIHJldHVybiBlKFxcXCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkXFxcIiksbn0sc3RyaW5naWZ5KHtjb21tZW50Om4sdHlwZTplLHZhbHVlOnR9LHIscyxpKXtsZXQgbz10LGE7aWYodHlwZW9mIEJ1ZmZlcj09XFxcImZ1bmN0aW9uXFxcIilhPW8gaW5zdGFuY2VvZiBCdWZmZXI/by50b1N0cmluZyhcXFwiYmFzZTY0XFxcIik6QnVmZmVyLmZyb20oby5idWZmZXIpLnRvU3RyaW5nKFxcXCJiYXNlNjRcXFwiKTtlbHNlIGlmKHR5cGVvZiBidG9hPT1cXFwiZnVuY3Rpb25cXFwiKXtsZXQgdT1cXFwiXFxcIjtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoOysrbCl1Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKG9bbF0pO2E9YnRvYSh1KX1lbHNlIHRocm93IG5ldyBFcnJvcihcXFwiVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYnRvYSBpcyByZXF1aXJlZFxcXCIpO2lmKGV8fChlPVAuQkxPQ0tfTElURVJBTCksZSE9PVAuUVVPVEVfRE9VQkxFKXtsZXQgdT1NYXRoLm1heChyLm9wdGlvbnMubGluZVdpZHRoLXIuaW5kZW50Lmxlbmd0aCxyLm9wdGlvbnMubWluQ29udGVudFdpZHRoKSxsPU1hdGguY2VpbChhLmxlbmd0aC91KSxmPW5ldyBBcnJheShsKTtmb3IobGV0IGQ9MCxtPTA7ZDxsOysrZCxtKz11KWZbZF09YS5zdWJzdHIobSx1KTthPWYuam9pbihlPT09UC5CTE9DS19MSVRFUkFMP2BcXG5gOlxcXCIgXFxcIil9cmV0dXJuIFd0KHtjb21tZW50Om4sdHlwZTplLHZhbHVlOmF9LHIscyxpKX19O2Z1bmN0aW9uIEtpKG4sZSl7dmFyIHQ7aWYoSmUobikpZm9yKGxldCByPTA7cjxuLml0ZW1zLmxlbmd0aDsrK3Ipe2xldCBzPW4uaXRlbXNbcl07aWYoIUgocykpe2lmKEhlKHMpKXtzLml0ZW1zLmxlbmd0aD4xJiZlKFxcXCJFYWNoIHBhaXIgbXVzdCBoYXZlIGl0cyBvd24gc2VxdWVuY2UgaW5kaWNhdG9yXFxcIik7bGV0IGk9cy5pdGVtc1swXXx8bmV3IGllKG5ldyBQKG51bGwpKTtpZihzLmNvbW1lbnRCZWZvcmUmJihpLmtleS5jb21tZW50QmVmb3JlPWkua2V5LmNvbW1lbnRCZWZvcmU/YCR7cy5jb21tZW50QmVmb3JlfVxcbiR7aS5rZXkuY29tbWVudEJlZm9yZX1gOnMuY29tbWVudEJlZm9yZSkscy5jb21tZW50KXtsZXQgbz0odD1pLnZhbHVlKSE9bnVsbD90Omkua2V5O28uY29tbWVudD1vLmNvbW1lbnQ/YCR7cy5jb21tZW50fVxcbiR7by5jb21tZW50fWA6cy5jb21tZW50fXM9aX1uLml0ZW1zW3JdPUgocyk/czpuZXcgaWUocyl9fWVsc2UgZShcXFwiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWdcXFwiKTtyZXR1cm4gbn1mdW5jdGlvbiBXaShuLGUsdCl7bGV0e3JlcGxhY2VyOnJ9PXQscz1uZXcgYmUobik7cy50YWc9XFxcInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzXFxcIjtsZXQgaT0wO2lmKGUmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpZm9yKGxldCBvIG9mIGUpe3R5cGVvZiByPT1cXFwiZnVuY3Rpb25cXFwiJiYobz1yLmNhbGwoZSxTdHJpbmcoaSsrKSxvKSk7bGV0IGEsdTtpZihBcnJheS5pc0FycmF5KG8pKWlmKG8ubGVuZ3RoPT09MilhPW9bMF0sdT1vWzFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke299YCk7ZWxzZSBpZihvJiZvIGluc3RhbmNlb2YgT2JqZWN0KXtsZXQgbD1PYmplY3Qua2V5cyhvKTtpZihsLmxlbmd0aD09PTEpYT1sWzBdLHU9b1thXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHR1cGxlIHdpdGggb25lIGtleSwgbm90ICR7bC5sZW5ndGh9IGtleXNgKX1lbHNlIGE9bztzLml0ZW1zLnB1c2godm4oYSx1LHQpKX1yZXR1cm4gc312YXIgRXI9e2NvbGxlY3Rpb246XFxcInNlcVxcXCIsZGVmYXVsdDohMSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzXFxcIixyZXNvbHZlOktpLGNyZWF0ZU5vZGU6V2l9O3ZhciB4bj1jbGFzcyBuIGV4dGVuZHMgYmV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkPW9lLnByb3RvdHlwZS5hZGQuYmluZCh0aGlzKSx0aGlzLmRlbGV0ZT1vZS5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyksdGhpcy5nZXQ9b2UucHJvdG90eXBlLmdldC5iaW5kKHRoaXMpLHRoaXMuaGFzPW9lLnByb3RvdHlwZS5oYXMuYmluZCh0aGlzKSx0aGlzLnNldD1vZS5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyksdGhpcy50YWc9bi50YWd9dG9KU09OKGUsdCl7aWYoIXQpcmV0dXJuIHN1cGVyLnRvSlNPTihlKTtsZXQgcj1uZXcgTWFwO3QhPW51bGwmJnQub25DcmVhdGUmJnQub25DcmVhdGUocik7Zm9yKGxldCBzIG9mIHRoaXMuaXRlbXMpe2xldCBpLG87aWYoSChzKT8oaT1jZShzLmtleSxcXFwiXFxcIix0KSxvPWNlKHMudmFsdWUsaSx0KSk6aT1jZShzLFxcXCJcXFwiLHQpLHIuaGFzKGkpKXRocm93IG5ldyBFcnJvcihcXFwiT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXNcXFwiKTtyLnNldChpLG8pfXJldHVybiByfXN0YXRpYyBmcm9tKGUsdCxyKXtsZXQgcz1XaShlLHQsciksaT1uZXcgdGhpcztyZXR1cm4gaS5pdGVtcz1zLml0ZW1zLGl9fTt4bi50YWc9XFxcInRhZzp5YW1sLm9yZywyMDAyOm9tYXBcXFwiO3ZhciB3cj17Y29sbGVjdGlvbjpcXFwic2VxXFxcIixpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgTWFwLG5vZGVDbGFzczp4bixkZWZhdWx0OiExLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6b21hcFxcXCIscmVzb2x2ZShuLGUpe2xldCB0PUtpKG4sZSkscj1bXTtmb3IobGV0e2tleTpzfW9mIHQuaXRlbXMpSyhzKSYmKHIuaW5jbHVkZXMocy52YWx1ZSk/ZShgT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXM6ICR7cy52YWx1ZX1gKTpyLnB1c2gocy52YWx1ZSkpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB4bix0KX0sY3JlYXRlTm9kZToobixlLHQpPT54bi5mcm9tKG4sZSx0KX07ZnVuY3Rpb24gc3Uoe3ZhbHVlOm4sc291cmNlOmV9LHQpe3JldHVybiBlJiYobj9IaTpKaSkudGVzdC50ZXN0KGUpP2U6bj90Lm9wdGlvbnMudHJ1ZVN0cjp0Lm9wdGlvbnMuZmFsc2VTdHJ9dmFyIEhpPXtpZGVudGlmeTpuPT5uPT09ITAsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcXFwiLHRlc3Q6L14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8scmVzb2x2ZTooKT0+bmV3IFAoITApLHN0cmluZ2lmeTpzdX0sSmk9e2lkZW50aWZ5Om49Pm49PT0hMSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6Ym9vbFxcXCIsdGVzdDovXig/Ok58bnxbTm5db3xOT3xbRmZdYWxzZXxGQUxTRXxbT29dZmZ8T0ZGKSQvLHJlc29sdmU6KCk9Pm5ldyBQKCExKSxzdHJpbmdpZnk6c3V9O3ZhciBpdT17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXig/OlstK10/XFxcXC4oPzppbmZ8SW5mfElORil8XFxcXC5uYW58XFxcXC5OYU58XFxcXC5OQU4pJC8scmVzb2x2ZTpuPT5uLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09XFxcIm5hblxcXCI/TmFOOm5bMF09PT1cXFwiLVxcXCI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxzdHJpbmdpZnk6RmV9LG91PXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIkVYUFxcXCIsdGVzdDovXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcXFxcLlswLTlfXSopP1tlRV1bLStdP1swLTldKyQvLHJlc29sdmU6bj0+cGFyc2VGbG9hdChuLnJlcGxhY2UoL18vZyxcXFwiXFxcIikpLHN0cmluZ2lmeShuKXtsZXQgZT1OdW1iZXIobi52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOkZlKG4pfX0sYXU9e2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwibnVtYmVyXFxcIixkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcXFwiLHRlc3Q6L15bLStdPyg/OlswLTldWzAtOV9dKik/XFxcXC5bMC05X10qJC8scmVzb2x2ZShuKXtsZXQgZT1uZXcgUChwYXJzZUZsb2F0KG4ucmVwbGFjZSgvXy9nLFxcXCJcXFwiKSkpLHQ9bi5pbmRleE9mKFxcXCIuXFxcIik7aWYodCE9PS0xKXtsZXQgcj1uLnN1YnN0cmluZyh0KzEpLnJlcGxhY2UoL18vZyxcXFwiXFxcIik7cltyLmxlbmd0aC0xXT09PVxcXCIwXFxcIiYmKGUubWluRnJhY3Rpb25EaWdpdHM9ci5sZW5ndGgpfXJldHVybiBlfSxzdHJpbmdpZnk6RmV9O3ZhciBUcj1uPT50eXBlb2Ygbj09XFxcImJpZ2ludFxcXCJ8fE51bWJlci5pc0ludGVnZXIobik7ZnVuY3Rpb24geHMobixlLHQse2ludEFzQmlnSW50OnJ9KXtsZXQgcz1uWzBdO2lmKChzPT09XFxcIi1cXFwifHxzPT09XFxcIitcXFwiKSYmKGUrPTEpLG49bi5zdWJzdHJpbmcoZSkucmVwbGFjZSgvXy9nLFxcXCJcXFwiKSxyKXtzd2l0Y2godCl7Y2FzZSAyOm49YDBiJHtufWA7YnJlYWs7Y2FzZSA4Om49YDBvJHtufWA7YnJlYWs7Y2FzZSAxNjpuPWAweCR7bn1gO2JyZWFrfWxldCBvPUJpZ0ludChuKTtyZXR1cm4gcz09PVxcXCItXFxcIj9CaWdJbnQoLTEpKm86b31sZXQgaT1wYXJzZUludChuLHQpO3JldHVybiBzPT09XFxcIi1cXFwiPy0xKmk6aX1mdW5jdGlvbiB6aShuLGUsdCl7bGV0e3ZhbHVlOnJ9PW47aWYoVHIocikpe2xldCBzPXIudG9TdHJpbmcoZSk7cmV0dXJuIHI8MD9cXFwiLVxcXCIrdCtzLnN1YnN0cigxKTp0K3N9cmV0dXJuIEZlKG4pfXZhciB1dT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsZm9ybWF0OlxcXCJCSU5cXFwiLHRlc3Q6L15bLStdPzBiWzAtMV9dKyQvLHJlc29sdmU6KG4sZSx0KT0+eHMobiwyLDIsdCksc3RyaW5naWZ5Om49PnppKG4sMixcXFwiMGJcXFwiKX0sbHU9e2lkZW50aWZ5OlRyLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiT0NUXFxcIix0ZXN0Oi9eWy0rXT8wWzAtN19dKyQvLHJlc29sdmU6KG4sZSx0KT0+eHMobiwxLDgsdCksc3RyaW5naWZ5Om49PnppKG4sOCxcXFwiMFxcXCIpfSxjdT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qJC8scmVzb2x2ZToobixlLHQpPT54cyhuLDAsMTAsdCksc3RyaW5naWZ5OkZlfSxmdT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsZm9ybWF0OlxcXCJIRVhcXFwiLHRlc3Q6L15bLStdPzB4WzAtOWEtZkEtRl9dKyQvLHJlc29sdmU6KG4sZSx0KT0+eHMobiwyLDE2LHQpLHN0cmluZ2lmeTpuPT56aShuLDE2LFxcXCIweFxcXCIpfTt2YXIgT249Y2xhc3MgbiBleHRlbmRzIG9le2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudGFnPW4udGFnfWFkZChlKXtsZXQgdDtIKGUpP3Q9ZTplJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCImJlxcXCJrZXlcXFwiaW4gZSYmXFxcInZhbHVlXFxcImluIGUmJmUudmFsdWU9PT1udWxsP3Q9bmV3IGllKGUua2V5LG51bGwpOnQ9bmV3IGllKGUsbnVsbCksSXQodGhpcy5pdGVtcyx0LmtleSl8fHRoaXMuaXRlbXMucHVzaCh0KX1nZXQoZSx0KXtsZXQgcj1JdCh0aGlzLml0ZW1zLGUpO3JldHVybiF0JiZIKHIpP0soci5rZXkpP3Iua2V5LnZhbHVlOnIua2V5OnJ9c2V0KGUsdCl7aWYodHlwZW9mIHQhPVxcXCJib29sZWFuXFxcIil0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4gdmFsdWUgZm9yIHNldChrZXksIHZhbHVlKSBpbiBhIFlBTUwgc2V0LCBub3QgJHt0eXBlb2YgdH1gKTtsZXQgcj1JdCh0aGlzLml0ZW1zLGUpO3ImJiF0P3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihyKSwxKTohciYmdCYmdGhpcy5pdGVtcy5wdXNoKG5ldyBpZShlKSl9dG9KU09OKGUsdCl7cmV0dXJuIHN1cGVyLnRvSlNPTihlLHQsU2V0KX10b1N0cmluZyhlLHQscil7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2lmKHRoaXMuaGFzQWxsTnVsbFZhbHVlcyghMCkpcmV0dXJuIHN1cGVyLnRvU3RyaW5nKE9iamVjdC5hc3NpZ24oe30sZSx7YWxsTnVsbFZhbHVlczohMH0pLHQscik7dGhyb3cgbmV3IEVycm9yKFxcXCJTZXQgaXRlbXMgbXVzdCBhbGwgaGF2ZSBudWxsIHZhbHVlc1xcXCIpfXN0YXRpYyBmcm9tKGUsdCxyKXtsZXR7cmVwbGFjZXI6c309cixpPW5ldyB0aGlzKGUpO2lmKHQmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpZm9yKGxldCBvIG9mIHQpdHlwZW9mIHM9PVxcXCJmdW5jdGlvblxcXCImJihvPXMuY2FsbCh0LG8sbykpLGkuaXRlbXMucHVzaCh2bihvLG51bGwscikpO3JldHVybiBpfX07T24udGFnPVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXRcXFwiO3ZhciBTcj17Y29sbGVjdGlvbjpcXFwibWFwXFxcIixpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgU2V0LG5vZGVDbGFzczpPbixkZWZhdWx0OiExLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6c2V0XFxcIixjcmVhdGVOb2RlOihuLGUsdCk9Pk9uLmZyb20obixlLHQpLHJlc29sdmUobixlKXtpZihIZShuKSl7aWYobi5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgT24sbik7ZShcXFwiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXNcXFwiKX1lbHNlIGUoXFxcIkV4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWdcXFwiKTtyZXR1cm4gbn19O2Z1bmN0aW9uIFlpKG4sZSl7bGV0IHQ9blswXSxyPXQ9PT1cXFwiLVxcXCJ8fHQ9PT1cXFwiK1xcXCI/bi5zdWJzdHJpbmcoMSk6bixzPW89PmU/QmlnSW50KG8pOk51bWJlcihvKSxpPXIucmVwbGFjZSgvXy9nLFxcXCJcXFwiKS5zcGxpdChcXFwiOlxcXCIpLnJlZHVjZSgobyxhKT0+bypzKDYwKStzKGEpLHMoMCkpO3JldHVybiB0PT09XFxcIi1cXFwiP3MoLTEpKmk6aX1mdW5jdGlvbiBkdShuKXtsZXR7dmFsdWU6ZX09bix0PW89Pm87aWYodHlwZW9mIGU9PVxcXCJiaWdpbnRcXFwiKXQ9bz0+QmlnSW50KG8pO2Vsc2UgaWYoaXNOYU4oZSl8fCFpc0Zpbml0ZShlKSlyZXR1cm4gRmUobik7bGV0IHI9XFxcIlxcXCI7ZTwwJiYocj1cXFwiLVxcXCIsZSo9dCgtMSkpO2xldCBzPXQoNjApLGk9W2Ulc107cmV0dXJuIGU8NjA/aS51bnNoaWZ0KDApOihlPShlLWlbMF0pL3MsaS51bnNoaWZ0KGUlcyksZT49NjAmJihlPShlLWlbMF0pL3MsaS51bnNoaWZ0KGUpKSkscitpLm1hcChvPT5TdHJpbmcobykucGFkU3RhcnQoMixcXFwiMFxcXCIpKS5qb2luKFxcXCI6XFxcIikucmVwbGFjZSgvMDAwMDAwXFxcXGQqJC8sXFxcIlxcXCIpfXZhciBPcz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJiaWdpbnRcXFwifHxOdW1iZXIuaXNJbnRlZ2VyKG4pLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiVElNRVxcXCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKSskLyxyZXNvbHZlOihuLGUse2ludEFzQmlnSW50OnR9KT0+WWkobix0KSxzdHJpbmdpZnk6ZHV9LElzPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIlRJTUVcXFwiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFxcXC5bMC05X10qJC8scmVzb2x2ZTpuPT5ZaShuLCExKSxzdHJpbmdpZnk6ZHV9LEluPXtpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgRGF0ZSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wXFxcIix0ZXN0OlJlZ0V4cChcXFwiXihbMC05XXs0fSktKFswLTldezEsMn0pLShbMC05XXsxLDJ9KSg/Oig/OnR8VHxbIFxcXFxcXFxcdF0rKShbMC05XXsxLDJ9KTooWzAtOV17MSwyfSk6KFswLTldezEsMn0oXFxcXFxcXFwuWzAtOV0rKT8pKD86WyBcXFxcXFxcXHRdKihafFstK11bMDEyXT9bMC05XSg/OjpbMC05XXsyfSk/KSk/KT8kXFxcIikscmVzb2x2ZShuKXtsZXQgZT1uLm1hdGNoKEluLnRlc3QpO2lmKCFlKXRocm93IG5ldyBFcnJvcihcXFwiISF0aW1lc3RhbXAgZXhwZWN0cyBhIGRhdGUsIHN0YXJ0aW5nIHdpdGggeXl5eS1tbS1kZFxcXCIpO2xldFssdCxyLHMsaSxvLGFdPWUubWFwKE51bWJlciksdT1lWzddP051bWJlcigoZVs3XStcXFwiMDBcXFwiKS5zdWJzdHIoMSwzKSk6MCxsPURhdGUuVVRDKHQsci0xLHMsaXx8MCxvfHwwLGF8fDAsdSksZj1lWzhdO2lmKGYmJmYhPT1cXFwiWlxcXCIpe2xldCBkPVlpKGYsITEpO01hdGguYWJzKGQpPDMwJiYoZCo9NjApLGwtPTZlNCpkfXJldHVybiBuZXcgRGF0ZShsKX0sc3RyaW5naWZ5Oih7dmFsdWU6bn0pPT5uLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKChUMDA6MDApPzowMCk/XFxcXC4wMDBaJC8sXFxcIlxcXCIpfTt2YXIgR2k9W0dlLFplLEx0LEh0LEhpLEppLHV1LGx1LGN1LGZ1LGl1LG91LGF1LEZyLFllLHdyLEVyLFNyLE9zLElzLEluXTt2YXIgaHU9bmV3IE1hcChbW1xcXCJjb3JlXFxcIix0dV0sW1xcXCJmYWlsc2FmZVxcXCIsW0dlLFplLEx0XV0sW1xcXCJqc29uXFxcIixydV0sW1xcXCJ5YW1sMTFcXFwiLEdpXSxbXFxcInlhbWwtMS4xXFxcIixHaV1dKSxtdT17YmluYXJ5OkZyLGJvb2w6YnIsZmxvYXQ6d3MsZmxvYXRFeHA6RXMsZmxvYXROYU46RnMsZmxvYXRUaW1lOklzLGludDprcyxpbnRIZXg6Q3MsaW50T2N0OlNzLGludFRpbWU6T3MsbWFwOkdlLG1lcmdlOlllLG51bGw6SHQsb21hcDp3cixwYWlyczpFcixzZXE6WmUsc2V0OlNyLHRpbWVzdGFtcDpJbn0scHU9e1xcXCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnlcXFwiOkZyLFxcXCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZVxcXCI6WWUsXFxcInRhZzp5YW1sLm9yZywyMDAyOm9tYXBcXFwiOndyLFxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlyc1xcXCI6RXIsXFxcInRhZzp5YW1sLm9yZywyMDAyOnNldFxcXCI6U3IsXFxcInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcFxcXCI6SW59O2Z1bmN0aW9uIExzKG4sZSx0KXtsZXQgcj1odS5nZXQoZSk7aWYociYmIW4pcmV0dXJuIHQmJiFyLmluY2x1ZGVzKFllKT9yLmNvbmNhdChZZSk6ci5zbGljZSgpO2xldCBzPXI7aWYoIXMpaWYoQXJyYXkuaXNBcnJheShuKSlzPVtdO2Vsc2V7bGV0IGk9QXJyYXkuZnJvbShodS5rZXlzKCkpLmZpbHRlcihvPT5vIT09XFxcInlhbWwxMVxcXCIpLm1hcChvPT5KU09OLnN0cmluZ2lmeShvKSkuam9pbihcXFwiLCBcXFwiKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hIFxcXCIke2V9XFxcIjsgdXNlIG9uZSBvZiAke2l9IG9yIGRlZmluZSBjdXN0b21UYWdzIGFycmF5YCl9aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGkgb2YgbilzPXMuY29uY2F0KGkpO2Vsc2UgdHlwZW9mIG49PVxcXCJmdW5jdGlvblxcXCImJihzPW4ocy5zbGljZSgpKSk7cmV0dXJuIHQmJihzPXMuY29uY2F0KFllKSkscy5yZWR1Y2UoKGksbyk9PntsZXQgYT10eXBlb2Ygbz09XFxcInN0cmluZ1xcXCI/bXVbb106bztpZighYSl7bGV0IHU9SlNPTi5zdHJpbmdpZnkobyksbD1PYmplY3Qua2V5cyhtdSkubWFwKGY9PkpTT04uc3RyaW5naWZ5KGYpKS5qb2luKFxcXCIsIFxcXCIpO3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7dX07IHVzZSBvbmUgb2YgJHtsfWApfXJldHVybiBpLmluY2x1ZGVzKGEpfHxpLnB1c2goYSksaX0sW10pfXZhciBzZj0obixlKT0+bi5rZXk8ZS5rZXk/LTE6bi5rZXk+ZS5rZXk/MTowLGtyPWNsYXNzIG57Y29uc3RydWN0b3Ioe2NvbXBhdDplLGN1c3RvbVRhZ3M6dCxtZXJnZTpyLHJlc29sdmVLbm93blRhZ3M6cyxzY2hlbWE6aSxzb3J0TWFwRW50cmllczpvLHRvU3RyaW5nRGVmYXVsdHM6YX0pe3RoaXMuY29tcGF0PUFycmF5LmlzQXJyYXkoZSk/THMoZSxcXFwiY29tcGF0XFxcIik6ZT9McyhudWxsLGUpOm51bGwsdGhpcy5uYW1lPXR5cGVvZiBpPT1cXFwic3RyaW5nXFxcIiYmaXx8XFxcImNvcmVcXFwiLHRoaXMua25vd25UYWdzPXM/cHU6e30sdGhpcy50YWdzPUxzKHQsdGhpcy5uYW1lLHIpLHRoaXMudG9TdHJpbmdPcHRpb25zPWEhPW51bGw/YTpudWxsLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEtlLHt2YWx1ZTpHZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEllLHt2YWx1ZTpMdH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEZ0LHt2YWx1ZTpaZX0pLHRoaXMuc29ydE1hcEVudHJpZXM9dHlwZW9mIG89PVxcXCJmdW5jdGlvblxcXCI/bzpvPT09ITA/c2Y6bnVsbH1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlLnRhZ3M9dGhpcy50YWdzLnNsaWNlKCksZX19O2Z1bmN0aW9uIER1KG4sZSl7dmFyIHU7bGV0IHQ9W10scj1lLmRpcmVjdGl2ZXM9PT0hMDtpZihlLmRpcmVjdGl2ZXMhPT0hMSYmbi5kaXJlY3RpdmVzKXtsZXQgbD1uLmRpcmVjdGl2ZXMudG9TdHJpbmcobik7bD8odC5wdXNoKGwpLHI9ITApOm4uZGlyZWN0aXZlcy5kb2NTdGFydCYmKHI9ITApfXImJnQucHVzaChcXFwiLS0tXFxcIik7bGV0IHM9aHMobixlKSx7Y29tbWVudFN0cmluZzppfT1zLm9wdGlvbnM7aWYobi5jb21tZW50QmVmb3JlKXt0Lmxlbmd0aCE9PTEmJnQudW5zaGlmdChcXFwiXFxcIik7bGV0IGw9aShuLmNvbW1lbnRCZWZvcmUpO3QudW5zaGlmdChQZShsLFxcXCJcXFwiKSl9bGV0IG89ITEsYT1udWxsO2lmKG4uY29udGVudHMpe2lmKEoobi5jb250ZW50cykpe2lmKG4uY29udGVudHMuc3BhY2VCZWZvcmUmJnImJnQucHVzaChcXFwiXFxcIiksbi5jb250ZW50cy5jb21tZW50QmVmb3JlKXtsZXQgZD1pKG4uY29udGVudHMuY29tbWVudEJlZm9yZSk7dC5wdXNoKFBlKGQsXFxcIlxcXCIpKX1zLmZvcmNlQmxvY2tJbmRlbnQ9ISFuLmNvbW1lbnQsYT1uLmNvbnRlbnRzLmNvbW1lbnR9bGV0IGw9YT92b2lkIDA6KCk9Pm89ITAsZj1UdChuLmNvbnRlbnRzLHMsKCk9PmE9bnVsbCxsKTthJiYoZis9b3QoZixcXFwiXFxcIixpKGEpKSksKGZbMF09PT1cXFwifFxcXCJ8fGZbMF09PT1cXFwiPlxcXCIpJiZ0W3QubGVuZ3RoLTFdPT09XFxcIi0tLVxcXCI/dFt0Lmxlbmd0aC0xXT1gLS0tICR7Zn1gOnQucHVzaChmKX1lbHNlIHQucHVzaChUdChuLmNvbnRlbnRzLHMpKTtpZigodT1uLmRpcmVjdGl2ZXMpIT1udWxsJiZ1LmRvY0VuZClpZihuLmNvbW1lbnQpe2xldCBsPWkobi5jb21tZW50KTtsLmluY2x1ZGVzKGBcXG5gKT8odC5wdXNoKFxcXCIuLi5cXFwiKSx0LnB1c2goUGUobCxcXFwiXFxcIikpKTp0LnB1c2goYC4uLiAke2x9YCl9ZWxzZSB0LnB1c2goXFxcIi4uLlxcXCIpO2Vsc2V7bGV0IGw9bi5jb21tZW50O2wmJm8mJihsPWwucmVwbGFjZSgvXlxcXFxuKy8sXFxcIlxcXCIpKSxsJiYoKCFvfHxhKSYmdFt0Lmxlbmd0aC0xXSE9PVxcXCJcXFwiJiZ0LnB1c2goXFxcIlxcXCIpLHQucHVzaChQZShpKGwpLFxcXCJcXFwiKSkpfXJldHVybiB0LmpvaW4oYFxcbmApK2BcXG5gfXZhciBOdD1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmNvbW1lbnRCZWZvcmU9bnVsbCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFRlLHt2YWx1ZTpzc30pO2xldCBzPW51bGw7dHlwZW9mIHQ9PVxcXCJmdW5jdGlvblxcXCJ8fEFycmF5LmlzQXJyYXkodCk/cz10OnI9PT12b2lkIDAmJnQmJihyPXQsdD12b2lkIDApO2xldCBpPU9iamVjdC5hc3NpZ24oe2ludEFzQmlnSW50OiExLGtlZXBTb3VyY2VUb2tlbnM6ITEsbG9nTGV2ZWw6XFxcIndhcm5cXFwiLHByZXR0eUVycm9yczohMCxzdHJpY3Q6ITAsc3RyaW5nS2V5czohMSx1bmlxdWVLZXlzOiEwLHZlcnNpb246XFxcIjEuMlxcXCJ9LHIpO3RoaXMub3B0aW9ucz1pO2xldHt2ZXJzaW9uOm99PWk7ciE9bnVsbCYmci5fZGlyZWN0aXZlcz8odGhpcy5kaXJlY3RpdmVzPXIuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpLHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0JiYobz10aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uKSk6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjpvfSksdGhpcy5zZXRTY2hlbWEobyxyKSx0aGlzLmNvbnRlbnRzPWU9PT12b2lkIDA/bnVsbDp0aGlzLmNyZWF0ZU5vZGUoZSxzLHIpfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSx7W1RlXTp7dmFsdWU6c3N9fSk7cmV0dXJuIGUuY29tbWVudEJlZm9yZT10aGlzLmNvbW1lbnRCZWZvcmUsZS5jb21tZW50PXRoaXMuY29tbWVudCxlLmVycm9ycz10aGlzLmVycm9ycy5zbGljZSgpLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncy5zbGljZSgpLGUub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyksdGhpcy5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPXRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpKSxlLnNjaGVtYT10aGlzLnNjaGVtYS5jbG9uZSgpLGUuY29udGVudHM9Sih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmNsb25lKGUuc2NoZW1hKTp0aGlzLmNvbnRlbnRzLHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX1hZGQoZSl7TG4odGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuYWRkKGUpfWFkZEluKGUsdCl7TG4odGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuYWRkSW4oZSx0KX1jcmVhdGVBbGlhcyhlLHQpe2lmKCFlLmFuY2hvcil7bGV0IHI9QmkodGhpcyk7ZS5hbmNob3I9IXR8fHIuaGFzKHQpP1BpKHR8fFxcXCJhXFxcIixyKTp0fXJldHVybiBuZXcgRXQoZS5hbmNob3IpfWNyZWF0ZU5vZGUoZSx0LHIpe2xldCBzO2lmKHR5cGVvZiB0PT1cXFwiZnVuY3Rpb25cXFwiKWU9dC5jYWxsKHtcXFwiXFxcIjplfSxcXFwiXFxcIixlKSxzPXQ7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgRD1JPT50eXBlb2YgST09XFxcIm51bWJlclxcXCJ8fEkgaW5zdGFuY2VvZiBTdHJpbmd8fEkgaW5zdGFuY2VvZiBOdW1iZXIsVD10LmZpbHRlcihEKS5tYXAoU3RyaW5nKTtULmxlbmd0aD4wJiYodD10LmNvbmNhdChUKSkscz10fWVsc2Ugcj09PXZvaWQgMCYmdCYmKHI9dCx0PXZvaWQgMCk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czppLGFuY2hvclByZWZpeDpvLGZsb3c6YSxrZWVwVW5kZWZpbmVkOnUsb25UYWdPYmo6bCx0YWc6Zn09ciE9bnVsbD9yOnt9LHtvbkFuY2hvcjpkLHNldEFuY2hvcnM6bSxzb3VyY2VPYmplY3RzOmh9PVlhKHRoaXMsb3x8XFxcImFcXFwiKSxiPXthbGlhc0R1cGxpY2F0ZU9iamVjdHM6aSE9bnVsbD9pOiEwLGtlZXBVbmRlZmluZWQ6dSE9bnVsbD91OiExLG9uQW5jaG9yOmQsb25UYWdPYmo6bCxyZXBsYWNlcjpzLHNjaGVtYTp0aGlzLnNjaGVtYSxzb3VyY2VPYmplY3RzOmh9LGc9d3QoZSxmLGIpO3JldHVybiBhJiZaKGcpJiYoZy5mbG93PSEwKSxtKCksZ31jcmVhdGVQYWlyKGUsdCxyPXt9KXtsZXQgcz10aGlzLmNyZWF0ZU5vZGUoZSxudWxsLHIpLGk9dGhpcy5jcmVhdGVOb2RlKHQsbnVsbCxyKTtyZXR1cm4gbmV3IGllKHMsaSl9ZGVsZXRlKGUpe3JldHVybiBMbih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZShlKTohMX1kZWxldGVJbihlKXtyZXR1cm4ga24oZSk/dGhpcy5jb250ZW50cz09bnVsbD8hMToodGhpcy5jb250ZW50cz1udWxsLCEwKTpMbih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZUluKGUpOiExfWdldChlLHQpe3JldHVybiBaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0KGUsdCk6dm9pZCAwfWdldEluKGUsdCl7cmV0dXJuIGtuKGUpPyF0JiZLKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMudmFsdWU6dGhpcy5jb250ZW50czpaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0SW4oZSx0KTp2b2lkIDB9aGFzKGUpe3JldHVybiBaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzKGUpOiExfWhhc0luKGUpe3JldHVybiBrbihlKT90aGlzLmNvbnRlbnRzIT09dm9pZCAwOloodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXNJbihlKTohMX1zZXQoZSx0KXt0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9cHIodGhpcy5zY2hlbWEsW2VdLHQpOkxuKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldChlLHQpfXNldEluKGUsdCl7a24oZSk/dGhpcy5jb250ZW50cz10OnRoaXMuY29udGVudHM9PW51bGw/dGhpcy5jb250ZW50cz1wcih0aGlzLnNjaGVtYSxBcnJheS5mcm9tKGUpLHQpOkxuKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldEluKGUsdCl9c2V0U2NoZW1hKGUsdD17fSl7dHlwZW9mIGU9PVxcXCJudW1iZXJcXFwiJiYoZT1TdHJpbmcoZSkpO2xldCByO3N3aXRjaChlKXtjYXNlXFxcIjEuMVxcXCI6dGhpcy5kaXJlY3RpdmVzP3RoaXMuZGlyZWN0aXZlcy55YW1sLnZlcnNpb249XFxcIjEuMVxcXCI6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjpcXFwiMS4xXFxcIn0pLHI9e3Jlc29sdmVLbm93blRhZ3M6ITEsc2NoZW1hOlxcXCJ5YW1sLTEuMVxcXCJ9O2JyZWFrO2Nhc2VcXFwiMS4yXFxcIjpjYXNlXFxcIm5leHRcXFwiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPWU6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjplfSkscj17cmVzb2x2ZUtub3duVGFnczohMCxzY2hlbWE6XFxcImNvcmVcXFwifTticmVhaztjYXNlIG51bGw6dGhpcy5kaXJlY3RpdmVzJiZkZWxldGUgdGhpcy5kaXJlY3RpdmVzLHI9bnVsbDticmVhaztkZWZhdWx0OntsZXQgcz1KU09OLnN0cmluZ2lmeShlKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICcxLjEnLCAnMS4yJyBvciBudWxsIGFzIGZpcnN0IGFyZ3VtZW50LCBidXQgZm91bmQ6ICR7c31gKX19aWYodC5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpdGhpcy5zY2hlbWE9dC5zY2hlbWE7ZWxzZSBpZihyKXRoaXMuc2NoZW1hPW5ldyBrcihPYmplY3QuYXNzaWduKHIsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFxcXCJXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkXFxcIil9dG9KUyh7anNvbjplLGpzb25Bcmc6dCxtYXBBc01hcDpyLG1heEFsaWFzQ291bnQ6cyxvbkFuY2hvcjppLHJldml2ZXI6b309e30pe2xldCBhPXthbmNob3JzOm5ldyBNYXAsZG9jOnRoaXMsa2VlcDohZSxtYXBBc01hcDpyPT09ITAsbWFwS2V5V2FybmVkOiExLG1heEFsaWFzQ291bnQ6dHlwZW9mIHM9PVxcXCJudW1iZXJcXFwiP3M6MTAwfSx1PWNlKHRoaXMuY29udGVudHMsdCE9bnVsbD90OlxcXCJcXFwiLGEpO2lmKHR5cGVvZiBpPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXR7Y291bnQ6bCxyZXM6Zn1vZiBhLmFuY2hvcnMudmFsdWVzKCkpaShmLGwpO3JldHVybiB0eXBlb2Ygbz09XFxcImZ1bmN0aW9uXFxcIj94dChvLHtcXFwiXFxcIjp1fSxcXFwiXFxcIix1KTp1fXRvSlNPTihlLHQpe3JldHVybiB0aGlzLnRvSlMoe2pzb246ITAsanNvbkFyZzplLG1hcEFzTWFwOiExLG9uQW5jaG9yOnR9KX10b1N0cmluZyhlPXt9KXtpZih0aGlzLmVycm9ycy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoXFxcIkRvY3VtZW50IHdpdGggZXJyb3JzIGNhbm5vdCBiZSBzdHJpbmdpZmllZFxcXCIpO2lmKFxcXCJpbmRlbnRcXFwiaW4gZSYmKCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZW50KXx8TnVtYmVyKGUuaW5kZW50KTw9MCkpe2xldCB0PUpTT04uc3RyaW5naWZ5KGUuaW5kZW50KTt0aHJvdyBuZXcgRXJyb3IoYFxcXCJpbmRlbnRcXFwiIG9wdGlvbiBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgbm90ICR7dH1gKX1yZXR1cm4gRHUodGhpcyxlKX19O2Z1bmN0aW9uIExuKG4pe2lmKFoobikpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKFxcXCJFeHBlY3RlZCBhIFlBTUwgY29sbGVjdGlvbiBhcyBkb2N1bWVudCBjb250ZW50c1xcXCIpfXZhciBDcj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCxyLHMpe3N1cGVyKCksdGhpcy5uYW1lPWUsdGhpcy5jb2RlPXIsdGhpcy5tZXNzYWdlPXMsdGhpcy5wb3M9dH19LFFlPWNsYXNzIGV4dGVuZHMgQ3J7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKFxcXCJZQU1MUGFyc2VFcnJvclxcXCIsZSx0LHIpfX0sdnI9Y2xhc3MgZXh0ZW5kcyBDcntjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoXFxcIllBTUxXYXJuaW5nXFxcIixlLHQscil9fSxaaT0obixlKT0+dD0+e2lmKHQucG9zWzBdPT09LTEpcmV0dXJuO3QubGluZVBvcz10LnBvcy5tYXAoYT0+ZS5saW5lUG9zKGEpKTtsZXR7bGluZTpyLGNvbDpzfT10LmxpbmVQb3NbMF07dC5tZXNzYWdlKz1gIGF0IGxpbmUgJHtyfSwgY29sdW1uICR7c31gO2xldCBpPXMtMSxvPW4uc3Vic3RyaW5nKGUubGluZVN0YXJ0c1tyLTFdLGUubGluZVN0YXJ0c1tyXSkucmVwbGFjZSgvW1xcXFxuXFxcXHJdKyQvLFxcXCJcXFwiKTtpZihpPj02MCYmby5sZW5ndGg+ODApe2xldCBhPU1hdGgubWluKGktMzksby5sZW5ndGgtNzkpO289XFxcIlxcXFx1MjAyNlxcXCIrby5zdWJzdHJpbmcoYSksaS09YS0xfWlmKG8ubGVuZ3RoPjgwJiYobz1vLnN1YnN0cmluZygwLDc5KStcXFwiXFxcXHUyMDI2XFxcIikscj4xJiYvXiAqJC8udGVzdChvLnN1YnN0cmluZygwLGkpKSl7bGV0IGE9bi5zdWJzdHJpbmcoZS5saW5lU3RhcnRzW3ItMl0sZS5saW5lU3RhcnRzW3ItMV0pO2EubGVuZ3RoPjgwJiYoYT1hLnN1YnN0cmluZygwLDc5KStgXFxcXHUyMDI2XFxuYCksbz1hK299aWYoL1teIF0vLnRlc3Qobykpe2xldCBhPTEsdT10LmxpbmVQb3NbMV07dSYmdS5saW5lPT09ciYmdS5jb2w+cyYmKGE9TWF0aC5tYXgoMSxNYXRoLm1pbih1LmNvbC1zLDgwLWkpKSk7bGV0IGw9XFxcIiBcXFwiLnJlcGVhdChpKStcXFwiXlxcXCIucmVwZWF0KGEpO3QubWVzc2FnZSs9YDpcXG5cXG4ke299XFxuJHtsfVxcbmB9fTtmdW5jdGlvbiBhdChuLHtmbG93OmUsaW5kaWNhdG9yOnQsbmV4dDpyLG9mZnNldDpzLG9uRXJyb3I6aSxwYXJlbnRJbmRlbnQ6byxzdGFydE9uTmV3bGluZTphfSl7bGV0IHU9ITEsbD1hLGY9YSxkPVxcXCJcXFwiLG09XFxcIlxcXCIsaD0hMSxiPSExLGc9bnVsbCxEPW51bGwsVD1udWxsLEk9bnVsbCxOPW51bGwseT1udWxsLHc9bnVsbDtmb3IobGV0IEMgb2Ygbilzd2l0Y2goYiYmKEMudHlwZSE9PVxcXCJzcGFjZVxcXCImJkMudHlwZSE9PVxcXCJuZXdsaW5lXFxcIiYmQy50eXBlIT09XFxcImNvbW1hXFxcIiYmaShDLm9mZnNldCxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlXFxcIiksYj0hMSksZyYmKGwmJkMudHlwZSE9PVxcXCJjb21tZW50XFxcIiYmQy50eXBlIT09XFxcIm5ld2xpbmVcXFwiJiZpKGcsXFxcIlRBQl9BU19JTkRFTlRcXFwiLFxcXCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvblxcXCIpLGc9bnVsbCksQy50eXBlKXtjYXNlXFxcInNwYWNlXFxcIjohZSYmKHQhPT1cXFwiZG9jLXN0YXJ0XFxcInx8KHI9PW51bGw/dm9pZCAwOnIudHlwZSkhPT1cXFwiZmxvdy1jb2xsZWN0aW9uXFxcIikmJkMuc291cmNlLmluY2x1ZGVzKFxcXCJcXHRcXFwiKSYmKGc9QyksZj0hMDticmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOntmfHxpKEMsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnNcXFwiKTtsZXQgVj1DLnNvdXJjZS5zdWJzdHJpbmcoMSl8fFxcXCIgXFxcIjtkP2QrPW0rVjpkPVYsbT1cXFwiXFxcIixsPSExO2JyZWFrfWNhc2VcXFwibmV3bGluZVxcXCI6bD9kP2QrPUMuc291cmNlOnU9ITA6bSs9Qy5zb3VyY2UsbD0hMCxoPSEwLChEfHxUKSYmKEk9QyksZj0hMDticmVhaztjYXNlXFxcImFuY2hvclxcXCI6RCYmaShDLFxcXCJNVUxUSVBMRV9BTkNIT1JTXFxcIixcXFwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIGFuY2hvclxcXCIpLEMuc291cmNlLmVuZHNXaXRoKFxcXCI6XFxcIikmJmkoQy5vZmZzZXQrQy5zb3VyY2UubGVuZ3RoLTEsXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFuY2hvciBlbmRpbmcgaW4gOiBpcyBhbWJpZ3VvdXNcXFwiLCEwKSxEPUMsdz09PW51bGwmJih3PUMub2Zmc2V0KSxsPSExLGY9ITEsYj0hMDticmVhaztjYXNlXFxcInRhZ1xcXCI6e1QmJmkoQyxcXFwiTVVMVElQTEVfVEFHU1xcXCIsXFxcIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSB0YWdcXFwiKSxUPUMsdz09PW51bGwmJih3PUMub2Zmc2V0KSxsPSExLGY9ITEsYj0hMDticmVha31jYXNlIHQ6KER8fFQpJiZpKEMsXFxcIkJBRF9QUk9QX09SREVSXFxcIixgQW5jaG9ycyBhbmQgdGFncyBtdXN0IGJlIGFmdGVyIHRoZSAke0Muc291cmNlfSBpbmRpY2F0b3JgKSx5JiZpKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICR7Qy5zb3VyY2V9IGluICR7ZSE9bnVsbD9lOlxcXCJjb2xsZWN0aW9uXFxcIn1gKSx5PUMsbD10PT09XFxcInNlcS1pdGVtLWluZFxcXCJ8fHQ9PT1cXFwiZXhwbGljaXQta2V5LWluZFxcXCIsZj0hMTticmVhaztjYXNlXFxcImNvbW1hXFxcIjppZihlKXtOJiZpKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICwgaW4gJHtlfWApLE49QyxsPSExLGY9ITE7YnJlYWt9ZGVmYXVsdDppKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICR7Qy50eXBlfSB0b2tlbmApLGw9ITEsZj0hMX1sZXQgdj1uW24ubGVuZ3RoLTFdLHg9dj92Lm9mZnNldCt2LnNvdXJjZS5sZW5ndGg6cztyZXR1cm4gYiYmciYmci50eXBlIT09XFxcInNwYWNlXFxcIiYmci50eXBlIT09XFxcIm5ld2xpbmVcXFwiJiZyLnR5cGUhPT1cXFwiY29tbWFcXFwiJiYoci50eXBlIT09XFxcInNjYWxhclxcXCJ8fHIuc291cmNlIT09XFxcIlxcXCIpJiZpKHIub2Zmc2V0LFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2VcXFwiKSxnJiYobCYmZy5pbmRlbnQ8PW98fChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XFxcImJsb2NrLW1hcFxcXCJ8fChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XFxcImJsb2NrLXNlcVxcXCIpJiZpKGcsXFxcIlRBQl9BU19JTkRFTlRcXFwiLFxcXCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvblxcXCIpLHtjb21tYTpOLGZvdW5kOnksc3BhY2VCZWZvcmU6dSxjb21tZW50OmQsaGFzTmV3bGluZTpoLGFuY2hvcjpELHRhZzpULG5ld2xpbmVBZnRlclByb3A6SSxlbmQ6eCxzdGFydDp3IT1udWxsP3c6eH19ZnVuY3Rpb24gQXQobil7aWYoIW4pcmV0dXJuIG51bGw7c3dpdGNoKG4udHlwZSl7Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmlmKG4uc291cmNlLmluY2x1ZGVzKGBcXG5gKSlyZXR1cm4hMDtpZihuLmVuZCl7Zm9yKGxldCBlIG9mIG4uZW5kKWlmKGUudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMH1yZXR1cm4hMTtjYXNlXFxcImZsb3ctY29sbGVjdGlvblxcXCI6Zm9yKGxldCBlIG9mIG4uaXRlbXMpe2ZvcihsZXQgdCBvZiBlLnN0YXJ0KWlmKHQudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMDtpZihlLnNlcCl7Zm9yKGxldCB0IG9mIGUuc2VwKWlmKHQudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMH1pZihBdChlLmtleSl8fEF0KGUudmFsdWUpKXJldHVybiEwfXJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHhyKG4sZSx0KXtpZigoZT09bnVsbD92b2lkIDA6ZS50eXBlKT09PVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiKXtsZXQgcj1lLmVuZFswXTtyLmluZGVudD09PW4mJihyLnNvdXJjZT09PVxcXCJdXFxcInx8ci5zb3VyY2U9PT1cXFwifVxcXCIpJiZBdChlKSYmdChyLFxcXCJCQURfSU5ERU5UXFxcIixcXFwiRmxvdyBlbmQgaW5kaWNhdG9yIHNob3VsZCBiZSBtb3JlIGluZGVudGVkIHRoYW4gcGFyZW50XFxcIiwhMCl9fWZ1bmN0aW9uIE5zKG4sZSx0KXtsZXR7dW5pcXVlS2V5czpyfT1uLm9wdGlvbnM7aWYocj09PSExKXJldHVybiExO2xldCBzPXR5cGVvZiByPT1cXFwiZnVuY3Rpb25cXFwiP3I6KGksbyk9Pmk9PT1vfHxLKGkpJiZLKG8pJiZpLnZhbHVlPT09by52YWx1ZTtyZXR1cm4gZS5zb21lKGk9PnMoaS5rZXksdCkpfXZhciB5dT1cXFwiQWxsIG1hcHBpbmcgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW5cXFwiO2Z1bmN0aW9uIGd1KHtjb21wb3NlTm9kZTpuLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxyLHMsaSl7dmFyIGYsZDtsZXQgbz0oZj1pPT1udWxsP3ZvaWQgMDppLm5vZGVDbGFzcykhPW51bGw/ZjpvZSxhPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKTtsZXQgdT1yLm9mZnNldCxsPW51bGw7Zm9yKGxldCBtIG9mIHIuaXRlbXMpe2xldHtzdGFydDpoLGtleTpiLHNlcDpnLHZhbHVlOkR9PW0sVD1hdChoLHtpbmRpY2F0b3I6XFxcImV4cGxpY2l0LWtleS1pbmRcXFwiLG5leHQ6YiE9bnVsbD9iOmc9PW51bGw/dm9pZCAwOmdbMF0sb2Zmc2V0OnUsb25FcnJvcjpzLHBhcmVudEluZGVudDpyLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pLEk9IVQuZm91bmQ7aWYoSSl7aWYoYiYmKGIudHlwZT09PVxcXCJibG9jay1zZXFcXFwiP3ModSxcXFwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZXFxcIixcXFwiQSBibG9jayBzZXF1ZW5jZSBtYXkgbm90IGJlIHVzZWQgYXMgYW4gaW1wbGljaXQgbWFwIGtleVxcXCIpOlxcXCJpbmRlbnRcXFwiaW4gYiYmYi5pbmRlbnQhPT1yLmluZGVudCYmcyh1LFxcXCJCQURfSU5ERU5UXFxcIix5dSkpLCFULmFuY2hvciYmIVQudGFnJiYhZyl7bD1ULmVuZCxULmNvbW1lbnQmJihhLmNvbW1lbnQ/YS5jb21tZW50Kz1gXFxuYCtULmNvbW1lbnQ6YS5jb21tZW50PVQuY29tbWVudCk7Y29udGludWV9KFQubmV3bGluZUFmdGVyUHJvcHx8QXQoYikpJiZzKGIhPW51bGw/YjpoW2gubGVuZ3RoLTFdLFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmVcXFwiKX1lbHNlKChkPVQuZm91bmQpPT1udWxsP3ZvaWQgMDpkLmluZGVudCkhPT1yLmluZGVudCYmcyh1LFxcXCJCQURfSU5ERU5UXFxcIix5dSk7dC5hdEtleT0hMDtsZXQgTj1ULmVuZCx5PWI/bih0LGIsVCxzKTplKHQsTixoLG51bGwsVCxzKTt0LnNjaGVtYS5jb21wYXQmJnhyKHIuaW5kZW50LGIscyksdC5hdEtleT0hMSxOcyh0LGEuaXRlbXMseSkmJnMoTixcXFwiRFVQTElDQVRFX0tFWVxcXCIsXFxcIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlXFxcIik7bGV0IHc9YXQoZyE9bnVsbD9nOltdLHtpbmRpY2F0b3I6XFxcIm1hcC12YWx1ZS1pbmRcXFwiLG5leHQ6RCxvZmZzZXQ6eS5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiFifHxiLnR5cGU9PT1cXFwiYmxvY2stc2NhbGFyXFxcIn0pO2lmKHU9dy5lbmQsdy5mb3VuZCl7SSYmKChEPT1udWxsP3ZvaWQgMDpELnR5cGUpPT09XFxcImJsb2NrLW1hcFxcXCImJiF3Lmhhc05ld2xpbmUmJnModSxcXFwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZXFxcIixcXFwiTmVzdGVkIG1hcHBpbmdzIGFyZSBub3QgYWxsb3dlZCBpbiBjb21wYWN0IG1hcHBpbmdzXFxcIiksdC5vcHRpb25zLnN0cmljdCYmVC5zdGFydDx3LmZvdW5kLm9mZnNldC0xMDI0JiZzKHkucmFuZ2UsXFxcIktFWV9PVkVSXzEwMjRfQ0hBUlNcXFwiLFxcXCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGJsb2NrIG1hcHBpbmcga2V5XFxcIikpO2xldCB2PUQ/bih0LEQsdyxzKTplKHQsdSxnLG51bGwsdyxzKTt0LnNjaGVtYS5jb21wYXQmJnhyKHIuaW5kZW50LEQscyksdT12LnJhbmdlWzJdO2xldCB4PW5ldyBpZSh5LHYpO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoeC5zcmNUb2tlbj1tKSxhLml0ZW1zLnB1c2goeCl9ZWxzZXtJJiZzKHkucmFuZ2UsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlc1xcXCIpLHcuY29tbWVudCYmKHkuY29tbWVudD95LmNvbW1lbnQrPWBcXG5gK3cuY29tbWVudDp5LmNvbW1lbnQ9dy5jb21tZW50KTtsZXQgdj1uZXcgaWUoeSk7dC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJih2LnNyY1Rva2VuPW0pLGEuaXRlbXMucHVzaCh2KX19cmV0dXJuIGwmJmw8dSYmcyhsLFxcXCJJTVBPU1NJQkxFXFxcIixcXFwiTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50XFxcIiksYS5yYW5nZT1bci5vZmZzZXQsdSxsIT1udWxsP2w6dV0sYX1mdW5jdGlvbiBidSh7Y29tcG9zZU5vZGU6bixjb21wb3NlRW1wdHlOb2RlOmV9LHQscixzLGkpe3ZhciBmO2xldCBvPShmPWk9PW51bGw/dm9pZCAwOmkubm9kZUNsYXNzKSE9bnVsbD9mOmJlLGE9bmV3IG8odC5zY2hlbWEpO3QuYXRSb290JiYodC5hdFJvb3Q9ITEpLHQuYXRLZXkmJih0LmF0S2V5PSExKTtsZXQgdT1yLm9mZnNldCxsPW51bGw7Zm9yKGxldHtzdGFydDpkLHZhbHVlOm19b2Ygci5pdGVtcyl7bGV0IGg9YXQoZCx7aW5kaWNhdG9yOlxcXCJzZXEtaXRlbS1pbmRcXFwiLG5leHQ6bSxvZmZzZXQ6dSxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiEwfSk7aWYoIWguZm91bmQpaWYoaC5hbmNob3J8fGgudGFnfHxtKW0mJm0udHlwZT09PVxcXCJibG9jay1zZXFcXFwiP3MoaC5lbmQsXFxcIkJBRF9JTkRFTlRcXFwiLFxcXCJBbGwgc2VxdWVuY2UgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW5cXFwiKTpzKHUsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIlNlcXVlbmNlIGl0ZW0gd2l0aG91dCAtIGluZGljYXRvclxcXCIpO2Vsc2V7bD1oLmVuZCxoLmNvbW1lbnQmJihhLmNvbW1lbnQ9aC5jb21tZW50KTtjb250aW51ZX1sZXQgYj1tP24odCxtLGgscyk6ZSh0LGguZW5kLGQsbnVsbCxoLHMpO3Quc2NoZW1hLmNvbXBhdCYmeHIoci5pbmRlbnQsbSxzKSx1PWIucmFuZ2VbMl0sYS5pdGVtcy5wdXNoKGIpfXJldHVybiBhLnJhbmdlPVtyLm9mZnNldCx1LGwhPW51bGw/bDp1XSxhfWZ1bmN0aW9uIHV0KG4sZSx0LHIpe2xldCBzPVxcXCJcXFwiO2lmKG4pe2xldCBpPSExLG89XFxcIlxcXCI7Zm9yKGxldCBhIG9mIG4pe2xldHtzb3VyY2U6dSx0eXBlOmx9PWE7c3dpdGNoKGwpe2Nhc2VcXFwic3BhY2VcXFwiOmk9ITA7YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjp7dCYmIWkmJnIoYSxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVyc1xcXCIpO2xldCBmPXUuc3Vic3RyaW5nKDEpfHxcXFwiIFxcXCI7cz9zKz1vK2Y6cz1mLG89XFxcIlxcXCI7YnJlYWt9Y2FzZVxcXCJuZXdsaW5lXFxcIjpzJiYobys9dSksaT0hMDticmVhaztkZWZhdWx0OnIoYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgJHtsfSBhdCBub2RlIGVuZGApfWUrPXUubGVuZ3RofX1yZXR1cm57Y29tbWVudDpzLG9mZnNldDplfX12YXIgUWk9XFxcIkJsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9uc1xcXCIsWGk9bj0+biYmKG4udHlwZT09PVxcXCJibG9jay1tYXBcXFwifHxuLnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIik7ZnVuY3Rpb24gRnUoe2NvbXBvc2VOb2RlOm4sY29tcG9zZUVtcHR5Tm9kZTplfSx0LHIscyxpKXt2YXIgRCxUO2xldCBvPXIuc3RhcnQuc291cmNlPT09XFxcIntcXFwiLGE9bz9cXFwiZmxvdyBtYXBcXFwiOlxcXCJmbG93IHNlcXVlbmNlXFxcIix1PShEPWk9PW51bGw/dm9pZCAwOmkubm9kZUNsYXNzKSE9bnVsbD9EOm8/b2U6YmUsbD1uZXcgdSh0LnNjaGVtYSk7bC5mbG93PSEwO2xldCBmPXQuYXRSb290O2YmJih0LmF0Um9vdD0hMSksdC5hdEtleSYmKHQuYXRLZXk9ITEpO2xldCBkPXIub2Zmc2V0K3Iuc3RhcnQuc291cmNlLmxlbmd0aDtmb3IobGV0IEk9MDtJPHIuaXRlbXMubGVuZ3RoOysrSSl7bGV0IE49ci5pdGVtc1tJXSx7c3RhcnQ6eSxrZXk6dyxzZXA6dix2YWx1ZTp4fT1OLEM9YXQoeSx7ZmxvdzphLGluZGljYXRvcjpcXFwiZXhwbGljaXQta2V5LWluZFxcXCIsbmV4dDp3IT1udWxsP3c6dj09bnVsbD92b2lkIDA6dlswXSxvZmZzZXQ6ZCxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoIUMuZm91bmQpe2lmKCFDLmFuY2hvciYmIUMudGFnJiYhdiYmIXgpe0k9PT0wJiZDLmNvbW1hP3MoQy5jb21tYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgLCBpbiAke2F9YCk6STxyLml0ZW1zLmxlbmd0aC0xJiZzKEMuc3RhcnQsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkIGVtcHR5IGl0ZW0gaW4gJHthfWApLEMuY29tbWVudCYmKGwuY29tbWVudD9sLmNvbW1lbnQrPWBcXG5gK0MuY29tbWVudDpsLmNvbW1lbnQ9Qy5jb21tZW50KSxkPUMuZW5kO2NvbnRpbnVlfSFvJiZ0Lm9wdGlvbnMuc3RyaWN0JiZBdCh3KSYmcyh3LFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZVxcXCIpfWlmKEk9PT0wKUMuY29tbWEmJnMoQy5jb21tYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgLCBpbiAke2F9YCk7ZWxzZSBpZihDLmNvbW1hfHxzKEMuc3RhcnQsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsYE1pc3NpbmcgLCBiZXR3ZWVuICR7YX0gaXRlbXNgKSxDLmNvbW1lbnQpe2xldCBWPVxcXCJcXFwiO2U6Zm9yKGxldCBqIG9mIHkpc3dpdGNoKGoudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJzcGFjZVxcXCI6YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjpWPWouc291cmNlLnN1YnN0cmluZygxKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1pZihWKXtsZXQgaj1sLml0ZW1zW2wuaXRlbXMubGVuZ3RoLTFdO0goaikmJihqPShUPWoudmFsdWUpIT1udWxsP1Q6ai5rZXkpLGouY29tbWVudD9qLmNvbW1lbnQrPWBcXG5gK1Y6ai5jb21tZW50PVYsQy5jb21tZW50PUMuY29tbWVudC5zdWJzdHJpbmcoVi5sZW5ndGgrMSl9fWlmKCFvJiYhdiYmIUMuZm91bmQpe2xldCBWPXg/bih0LHgsQyxzKTplKHQsQy5lbmQsdixudWxsLEMscyk7bC5pdGVtcy5wdXNoKFYpLGQ9Vi5yYW5nZVsyXSxYaSh4KSYmcyhWLnJhbmdlLFxcXCJCTE9DS19JTl9GTE9XXFxcIixRaSl9ZWxzZXt0LmF0S2V5PSEwO2xldCBWPUMuZW5kLGo9dz9uKHQsdyxDLHMpOmUodCxWLHksbnVsbCxDLHMpO1hpKHcpJiZzKGoucmFuZ2UsXFxcIkJMT0NLX0lOX0ZMT1dcXFwiLFFpKSx0LmF0S2V5PSExO2xldCBZPWF0KHYhPW51bGw/djpbXSx7ZmxvdzphLGluZGljYXRvcjpcXFwibWFwLXZhbHVlLWluZFxcXCIsbmV4dDp4LG9mZnNldDpqLnJhbmdlWzJdLG9uRXJyb3I6cyxwYXJlbnRJbmRlbnQ6ci5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITF9KTtpZihZLmZvdW5kKXtpZighbyYmIUMuZm91bmQmJnQub3B0aW9ucy5zdHJpY3Qpe2lmKHYpZm9yKGxldCBPIG9mIHYpe2lmKE89PT1ZLmZvdW5kKWJyZWFrO2lmKE8udHlwZT09PVxcXCJuZXdsaW5lXFxcIil7cyhPLFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZVxcXCIpO2JyZWFrfX1DLnN0YXJ0PFkuZm91bmQub2Zmc2V0LTEwMjQmJnMoWS5mb3VuZCxcXFwiS0VZX09WRVJfMTAyNF9DSEFSU1xcXCIsXFxcIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgZmxvdyBzZXF1ZW5jZSBrZXlcXFwiKX19ZWxzZSB4JiYoXFxcInNvdXJjZVxcXCJpbiB4JiZ4LnNvdXJjZSYmeC5zb3VyY2VbMF09PT1cXFwiOlxcXCI/cyh4LFxcXCJNSVNTSU5HX0NIQVJcXFwiLGBNaXNzaW5nIHNwYWNlIGFmdGVyIDogaW4gJHthfWApOnMoWS5zdGFydCxcXFwiTUlTU0lOR19DSEFSXFxcIixgTWlzc2luZyAsIG9yIDogYmV0d2VlbiAke2F9IGl0ZW1zYCkpO2xldCBlZT14P24odCx4LFkscyk6WS5mb3VuZD9lKHQsWS5lbmQsdixudWxsLFkscyk6bnVsbDtlZT9YaSh4KSYmcyhlZS5yYW5nZSxcXFwiQkxPQ0tfSU5fRkxPV1xcXCIsUWkpOlkuY29tbWVudCYmKGouY29tbWVudD9qLmNvbW1lbnQrPWBcXG5gK1kuY29tbWVudDpqLmNvbW1lbnQ9WS5jb21tZW50KTtsZXQgYWU9bmV3IGllKGosZWUpO2lmKHQub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoYWUuc3JjVG9rZW49Tiksbyl7bGV0IE89bDtOcyh0LE8uaXRlbXMsaikmJnMoVixcXFwiRFVQTElDQVRFX0tFWVxcXCIsXFxcIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlXFxcIiksTy5pdGVtcy5wdXNoKGFlKX1lbHNle2xldCBPPW5ldyBvZSh0LnNjaGVtYSk7Ty5mbG93PSEwLE8uaXRlbXMucHVzaChhZSk7bGV0ICQ9KGVlIT1udWxsP2VlOmopLnJhbmdlO08ucmFuZ2U9W2oucmFuZ2VbMF0sJFsxXSwkWzJdXSxsLml0ZW1zLnB1c2goTyl9ZD1lZT9lZS5yYW5nZVsyXTpZLmVuZH19bGV0IG09bz9cXFwifVxcXCI6XFxcIl1cXFwiLFtoLC4uLmJdPXIuZW5kLGc9ZDtpZihoJiZoLnNvdXJjZT09PW0pZz1oLm9mZnNldCtoLnNvdXJjZS5sZW5ndGg7ZWxzZXtsZXQgST1hWzBdLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSksTj1mP2Ake0l9IG11c3QgZW5kIHdpdGggYSAke219YDpgJHtJfSBpbiBibG9jayBjb2xsZWN0aW9uIG11c3QgYmUgc3VmZmljaWVudGx5IGluZGVudGVkIGFuZCBlbmQgd2l0aCBhICR7bX1gO3MoZCxmP1xcXCJNSVNTSU5HX0NIQVJcXFwiOlxcXCJCQURfSU5ERU5UXFxcIixOKSxoJiZoLnNvdXJjZS5sZW5ndGghPT0xJiZiLnVuc2hpZnQoaCl9aWYoYi5sZW5ndGg+MCl7bGV0IEk9dXQoYixnLHQub3B0aW9ucy5zdHJpY3Qscyk7SS5jb21tZW50JiYobC5jb21tZW50P2wuY29tbWVudCs9YFxcbmArSS5jb21tZW50OmwuY29tbWVudD1JLmNvbW1lbnQpLGwucmFuZ2U9W3Iub2Zmc2V0LGcsSS5vZmZzZXRdfWVsc2UgbC5yYW5nZT1bci5vZmZzZXQsZyxnXTtyZXR1cm4gbH1mdW5jdGlvbiBlbyhuLGUsdCxyLHMsaSl7bGV0IG89dC50eXBlPT09XFxcImJsb2NrLW1hcFxcXCI/Z3UobixlLHQscixpKTp0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIj9idShuLGUsdCxyLGkpOkZ1KG4sZSx0LHIsaSksYT1vLmNvbnN0cnVjdG9yO3JldHVybiBzPT09XFxcIiFcXFwifHxzPT09YS50YWdOYW1lPyhvLnRhZz1hLnRhZ05hbWUsbyk6KHMmJihvLnRhZz1zKSxvKX1mdW5jdGlvbiBFdShuLGUsdCxyLHMpe3ZhciBtLGg7bGV0IGk9ci50YWcsbz1pP2UuZGlyZWN0aXZlcy50YWdOYW1lKGkuc291cmNlLGI9PnMoaSxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixiKSk6bnVsbDtpZih0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIil7bGV0e2FuY2hvcjpiLG5ld2xpbmVBZnRlclByb3A6Z309cixEPWImJmk/Yi5vZmZzZXQ+aS5vZmZzZXQ/YjppOmIhPW51bGw/YjppO0QmJighZ3x8Zy5vZmZzZXQ8RC5vZmZzZXQpJiZzKEQsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIk1pc3NpbmcgbmV3bGluZSBhZnRlciBibG9jayBzZXF1ZW5jZSBwcm9wc1xcXCIpfWxldCBhPXQudHlwZT09PVxcXCJibG9jay1tYXBcXFwiP1xcXCJtYXBcXFwiOnQudHlwZT09PVxcXCJibG9jay1zZXFcXFwiP1xcXCJzZXFcXFwiOnQuc3RhcnQuc291cmNlPT09XFxcIntcXFwiP1xcXCJtYXBcXFwiOlxcXCJzZXFcXFwiO2lmKCFpfHwhb3x8bz09PVxcXCIhXFxcInx8bz09PW9lLnRhZ05hbWUmJmE9PT1cXFwibWFwXFxcInx8bz09PWJlLnRhZ05hbWUmJmE9PT1cXFwic2VxXFxcIilyZXR1cm4gZW8obixlLHQscyxvKTtsZXQgdT1lLnNjaGVtYS50YWdzLmZpbmQoYj0+Yi50YWc9PT1vJiZiLmNvbGxlY3Rpb249PT1hKTtpZighdSl7bGV0IGI9ZS5zY2hlbWEua25vd25UYWdzW29dO2lmKGImJmIuY29sbGVjdGlvbj09PWEpZS5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sYix7ZGVmYXVsdDohMX0pKSx1PWI7ZWxzZSByZXR1cm4gYiE9bnVsbCYmYi5jb2xsZWN0aW9uP3MoaSxcXFwiQkFEX0NPTExFQ1RJT05fVFlQRVxcXCIsYCR7Yi50YWd9IHVzZWQgZm9yICR7YX0gY29sbGVjdGlvbiwgYnV0IGV4cGVjdHMgJHtiLmNvbGxlY3Rpb259YCwhMCk6cyhpLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLGBVbnJlc29sdmVkIHRhZzogJHtvfWAsITApLGVvKG4sZSx0LHMsbyl9bGV0IGw9ZW8obixlLHQscyxvLHUpLGY9KGg9KG09dS5yZXNvbHZlKT09bnVsbD92b2lkIDA6bS5jYWxsKHUsbCxiPT5zKGksXFxcIlRBR19SRVNPTFZFX0ZBSUxFRFxcXCIsYiksZS5vcHRpb25zKSkhPW51bGw/aDpsLGQ9SihmKT9mOm5ldyBQKGYpO3JldHVybiBkLnJhbmdlPWwucmFuZ2UsZC50YWc9byx1IT1udWxsJiZ1LmZvcm1hdCYmKGQuZm9ybWF0PXUuZm9ybWF0KSxkfWZ1bmN0aW9uIHRvKG4sZSx0KXtsZXQgcj1lLm9mZnNldCxzPW9mKGUsbi5vcHRpb25zLnN0cmljdCx0KTtpZighcylyZXR1cm57dmFsdWU6XFxcIlxcXCIsdHlwZTpudWxsLGNvbW1lbnQ6XFxcIlxcXCIscmFuZ2U6W3IscixyXX07bGV0IGk9cy5tb2RlPT09XFxcIj5cXFwiP1AuQkxPQ0tfRk9MREVEOlAuQkxPQ0tfTElURVJBTCxvPWUuc291cmNlP2FmKGUuc291cmNlKTpbXSxhPW8ubGVuZ3RoO2ZvcihsZXQgZz1vLmxlbmd0aC0xO2c+PTA7LS1nKXtsZXQgRD1vW2ddWzFdO2lmKEQ9PT1cXFwiXFxcInx8RD09PVxcXCJcXFxcclxcXCIpYT1nO2Vsc2UgYnJlYWt9aWYoYT09PTApe2xldCBnPXMuY2hvbXA9PT1cXFwiK1xcXCImJm8ubGVuZ3RoPjA/YFxcbmAucmVwZWF0KE1hdGgubWF4KDEsby5sZW5ndGgtMSkpOlxcXCJcXFwiLEQ9citzLmxlbmd0aDtyZXR1cm4gZS5zb3VyY2UmJihEKz1lLnNvdXJjZS5sZW5ndGgpLHt2YWx1ZTpnLHR5cGU6aSxjb21tZW50OnMuY29tbWVudCxyYW5nZTpbcixELERdfX1sZXQgdT1lLmluZGVudCtzLmluZGVudCxsPWUub2Zmc2V0K3MubGVuZ3RoLGY9MDtmb3IobGV0IGc9MDtnPGE7KytnKXtsZXRbRCxUXT1vW2ddO2lmKFQ9PT1cXFwiXFxcInx8VD09PVxcXCJcXFxcclxcXCIpcy5pbmRlbnQ9PT0wJiZELmxlbmd0aD51JiYodT1ELmxlbmd0aCk7ZWxzZXtELmxlbmd0aDx1JiZ0KGwrRC5sZW5ndGgsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkJsb2NrIHNjYWxhcnMgd2l0aCBtb3JlLWluZGVudGVkIGxlYWRpbmcgZW1wdHkgbGluZXMgbXVzdCB1c2UgYW4gZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yXFxcIikscy5pbmRlbnQ9PT0wJiYodT1ELmxlbmd0aCksZj1nLHU9PT0wJiYhbi5hdFJvb3QmJnQobCxcXFwiQkFEX0lOREVOVFxcXCIsXFxcIkJsb2NrIHNjYWxhciB2YWx1ZXMgaW4gY29sbGVjdGlvbnMgbXVzdCBiZSBpbmRlbnRlZFxcXCIpO2JyZWFrfWwrPUQubGVuZ3RoK1QubGVuZ3RoKzF9Zm9yKGxldCBnPW8ubGVuZ3RoLTE7Zz49YTstLWcpb1tnXVswXS5sZW5ndGg+dSYmKGE9ZysxKTtsZXQgZD1cXFwiXFxcIixtPVxcXCJcXFwiLGg9ITE7Zm9yKGxldCBnPTA7ZzxmOysrZylkKz1vW2ddWzBdLnNsaWNlKHUpK2BcXG5gO2ZvcihsZXQgZz1mO2c8YTsrK2cpe2xldFtELFRdPW9bZ107bCs9RC5sZW5ndGgrVC5sZW5ndGgrMTtsZXQgST1UW1QubGVuZ3RoLTFdPT09XFxcIlxcXFxyXFxcIjtpZihJJiYoVD1ULnNsaWNlKDAsLTEpKSxUJiZELmxlbmd0aDx1KXtsZXQgeT1gQmxvY2sgc2NhbGFyIGxpbmVzIG11c3Qgbm90IGJlIGxlc3MgaW5kZW50ZWQgdGhhbiB0aGVpciAke3MuaW5kZW50P1xcXCJleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3JcXFwiOlxcXCJmaXJzdCBsaW5lXFxcIn1gO3QobC1ULmxlbmd0aC0oST8yOjEpLFxcXCJCQURfSU5ERU5UXFxcIix5KSxEPVxcXCJcXFwifWk9PT1QLkJMT0NLX0xJVEVSQUw/KGQrPW0rRC5zbGljZSh1KStULG09YFxcbmApOkQubGVuZ3RoPnV8fFRbMF09PT1cXFwiXFx0XFxcIj8obT09PVxcXCIgXFxcIj9tPWBcXG5gOiFoJiZtPT09YFxcbmAmJihtPWBcXG5cXG5gKSxkKz1tK0Quc2xpY2UodSkrVCxtPWBcXG5gLGg9ITApOlQ9PT1cXFwiXFxcIj9tPT09YFxcbmA/ZCs9YFxcbmA6bT1gXFxuYDooZCs9bStULG09XFxcIiBcXFwiLGg9ITEpfXN3aXRjaChzLmNob21wKXtjYXNlXFxcIi1cXFwiOmJyZWFrO2Nhc2VcXFwiK1xcXCI6Zm9yKGxldCBnPWE7ZzxvLmxlbmd0aDsrK2cpZCs9YFxcbmArb1tnXVswXS5zbGljZSh1KTtkW2QubGVuZ3RoLTFdIT09YFxcbmAmJihkKz1gXFxuYCk7YnJlYWs7ZGVmYXVsdDpkKz1gXFxuYH1sZXQgYj1yK3MubGVuZ3RoK2Uuc291cmNlLmxlbmd0aDtyZXR1cm57dmFsdWU6ZCx0eXBlOmksY29tbWVudDpzLmNvbW1lbnQscmFuZ2U6W3IsYixiXX19ZnVuY3Rpb24gb2Yoe29mZnNldDpuLHByb3BzOmV9LHQscil7aWYoZVswXS50eXBlIT09XFxcImJsb2NrLXNjYWxhci1oZWFkZXJcXFwiKXJldHVybiByKGVbMF0sXFxcIklNUE9TU0lCTEVcXFwiLFxcXCJCbG9jayBzY2FsYXIgaGVhZGVyIG5vdCBmb3VuZFxcXCIpLG51bGw7bGV0e3NvdXJjZTpzfT1lWzBdLGk9c1swXSxvPTAsYT1cXFwiXFxcIix1PS0xO2ZvcihsZXQgbT0xO208cy5sZW5ndGg7KyttKXtsZXQgaD1zW21dO2lmKCFhJiYoaD09PVxcXCItXFxcInx8aD09PVxcXCIrXFxcIikpYT1oO2Vsc2V7bGV0IGI9TnVtYmVyKGgpOyFvJiZiP289Yjp1PT09LTEmJih1PW4rbSl9fXUhPT0tMSYmcih1LFxcXCJVTkVYUEVDVEVEX1RPS0VOXFxcIixgQmxvY2sgc2NhbGFyIGhlYWRlciBpbmNsdWRlcyBleHRyYSBjaGFyYWN0ZXJzOiAke3N9YCk7bGV0IGw9ITEsZj1cXFwiXFxcIixkPXMubGVuZ3RoO2ZvcihsZXQgbT0xO208ZS5sZW5ndGg7KyttKXtsZXQgaD1lW21dO3N3aXRjaChoLnR5cGUpe2Nhc2VcXFwic3BhY2VcXFwiOmw9ITA7Y2FzZVxcXCJuZXdsaW5lXFxcIjpkKz1oLnNvdXJjZS5sZW5ndGg7YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjp0JiYhbCYmcihoLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzXFxcIiksZCs9aC5zb3VyY2UubGVuZ3RoLGY9aC5zb3VyY2Uuc3Vic3RyaW5nKDEpO2JyZWFrO2Nhc2VcXFwiZXJyb3JcXFwiOnIoaCxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsaC5tZXNzYWdlKSxkKz1oLnNvdXJjZS5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp7bGV0IGI9YFVuZXhwZWN0ZWQgdG9rZW4gaW4gYmxvY2sgc2NhbGFyIGhlYWRlcjogJHtoLnR5cGV9YDtyKGgsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGIpO2xldCBnPWguc291cmNlO2cmJnR5cGVvZiBnPT1cXFwic3RyaW5nXFxcIiYmKGQrPWcubGVuZ3RoKX19fXJldHVybnttb2RlOmksaW5kZW50Om8sY2hvbXA6YSxjb21tZW50OmYsbGVuZ3RoOmR9fWZ1bmN0aW9uIGFmKG4pe2xldCBlPW4uc3BsaXQoL1xcXFxuKCAqKS8pLHQ9ZVswXSxyPXQubWF0Y2goL14oICopLyksaT1bciE9bnVsbCYmclsxXT9bclsxXSx0LnNsaWNlKHJbMV0ubGVuZ3RoKV06W1xcXCJcXFwiLHRdXTtmb3IobGV0IG89MTtvPGUubGVuZ3RoO28rPTIpaS5wdXNoKFtlW29dLGVbbysxXV0pO3JldHVybiBpfWZ1bmN0aW9uIG5vKG4sZSx0KXtsZXR7b2Zmc2V0OnIsdHlwZTpzLHNvdXJjZTppLGVuZDpvfT1uLGEsdSxsPShtLGgsYik9PnQocittLGgsYik7c3dpdGNoKHMpe2Nhc2VcXFwic2NhbGFyXFxcIjphPVAuUExBSU4sdT11ZihpLGwpO2JyZWFrO2Nhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmE9UC5RVU9URV9TSU5HTEUsdT1sZihpLGwpO2JyZWFrO2Nhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOmE9UC5RVU9URV9ET1VCTEUsdT1jZihpLGwpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHQobixcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYEV4cGVjdGVkIGEgZmxvdyBzY2FsYXIgdmFsdWUsIGJ1dCBmb3VuZDogJHtzfWApLHt2YWx1ZTpcXFwiXFxcIix0eXBlOm51bGwsY29tbWVudDpcXFwiXFxcIixyYW5nZTpbcixyK2kubGVuZ3RoLHIraS5sZW5ndGhdfX1sZXQgZj1yK2kubGVuZ3RoLGQ9dXQobyxmLGUsdCk7cmV0dXJue3ZhbHVlOnUsdHlwZTphLGNvbW1lbnQ6ZC5jb21tZW50LHJhbmdlOltyLGYsZC5vZmZzZXRdfX1mdW5jdGlvbiB1ZihuLGUpe2xldCB0PVxcXCJcXFwiO3N3aXRjaChuWzBdKXtjYXNlXFxcIlxcdFxcXCI6dD1cXFwiYSB0YWIgY2hhcmFjdGVyXFxcIjticmVhaztjYXNlXFxcIixcXFwiOnQ9XFxcImZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlciAsXFxcIjticmVhaztjYXNlXFxcIiVcXFwiOnQ9XFxcImRpcmVjdGl2ZSBpbmRpY2F0b3IgY2hhcmFjdGVyICVcXFwiO2JyZWFrO2Nhc2VcXFwifFxcXCI6Y2FzZVxcXCI+XFxcIjp7dD1gYmxvY2sgc2NhbGFyIGluZGljYXRvciAke25bMF19YDticmVha31jYXNlXFxcIkBcXFwiOmNhc2VcXFwiYFxcXCI6e3Q9YHJlc2VydmVkIGNoYXJhY3RlciAke25bMF19YDticmVha319cmV0dXJuIHQmJmUoMCxcXFwiQkFEX1NDQUxBUl9TVEFSVFxcXCIsYFBsYWluIHZhbHVlIGNhbm5vdCBzdGFydCB3aXRoICR7dH1gKSx3dShuKX1mdW5jdGlvbiBsZihuLGUpe3JldHVybihuW24ubGVuZ3RoLTFdIT09XFxcIidcXFwifHxuLmxlbmd0aD09PTEpJiZlKG4ubGVuZ3RoLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlXFxcIiksd3Uobi5zbGljZSgxLC0xKSkucmVwbGFjZSgvJycvZyxcXFwiJ1xcXCIpfWZ1bmN0aW9uIHd1KG4pe3ZhciB1O2xldCBlLHQ7dHJ5e2U9bmV3IFJlZ0V4cChgKC4qPykoPzwhWyBcXHRdKVsgXFx0XSpcXFxccj9cXG5gLFxcXCJzeVxcXCIpLHQ9bmV3IFJlZ0V4cChgWyBcXHRdKiguKj8pKD86KD88IVsgXFx0XSlbIFxcdF0qKT9cXFxccj9cXG5gLFxcXCJzeVxcXCIpfWNhdGNoKGwpe2U9bmV3IFJlZ0V4cChcXFwiKC4qPylbIFxcXFxcXFxcdF0qXFxcXFxcXFxyP1xcXFxcXFxcblxcXCIsXFxcInN5XFxcIiksdD1uZXcgUmVnRXhwKFxcXCJbIFxcXFxcXFxcdF0qKC4qPylbIFxcXFxcXFxcdF0qXFxcXFxcXFxyP1xcXFxcXFxcblxcXCIsXFxcInN5XFxcIil9bGV0IHI9ZS5leGVjKG4pO2lmKCFyKXJldHVybiBuO2xldCBzPXJbMV0saT1cXFwiIFxcXCIsbz1lLmxhc3RJbmRleDtmb3IodC5sYXN0SW5kZXg9bztyPXQuZXhlYyhuKTspclsxXT09PVxcXCJcXFwiP2k9PT1gXFxuYD9zKz1pOmk9YFxcbmA6KHMrPWkrclsxXSxpPVxcXCIgXFxcIiksbz10Lmxhc3RJbmRleDtsZXQgYT1uZXcgUmVnRXhwKFxcXCJbIFxcXFxcXFxcdF0qKC4qKVxcXCIsXFxcInN5XFxcIik7cmV0dXJuIGEubGFzdEluZGV4PW8scj1hLmV4ZWMobikscytpKygodT1yPT1udWxsP3ZvaWQgMDpyWzFdKSE9bnVsbD91OlxcXCJcXFwiKX1mdW5jdGlvbiBjZihuLGUpe2xldCB0PVxcXCJcXFwiO2ZvcihsZXQgcj0xO3I8bi5sZW5ndGgtMTsrK3Ipe2xldCBzPW5bcl07aWYoIShzPT09XFxcIlxcXFxyXFxcIiYmbltyKzFdPT09YFxcbmApKWlmKHM9PT1gXFxuYCl7bGV0e2ZvbGQ6aSxvZmZzZXQ6b309ZmYobixyKTt0Kz1pLHI9b31lbHNlIGlmKHM9PT1cXFwiXFxcXFxcXFxcXFwiKXtsZXQgaT1uWysrcl0sbz1kZltpXTtpZihvKXQrPW87ZWxzZSBpZihpPT09YFxcbmApZm9yKGk9bltyKzFdO2k9PT1cXFwiIFxcXCJ8fGk9PT1cXFwiXFx0XFxcIjspaT1uWysrcisxXTtlbHNlIGlmKGk9PT1cXFwiXFxcXHJcXFwiJiZuW3IrMV09PT1gXFxuYClmb3IoaT1uWysrcisxXTtpPT09XFxcIiBcXFwifHxpPT09XFxcIlxcdFxcXCI7KWk9blsrK3IrMV07ZWxzZSBpZihpPT09XFxcInhcXFwifHxpPT09XFxcInVcXFwifHxpPT09XFxcIlVcXFwiKXtsZXQgYT17eDoyLHU6NCxVOjh9W2ldO3QrPWhmKG4scisxLGEsZSkscis9YX1lbHNle2xldCBhPW4uc3Vic3RyKHItMSwyKTtlKHItMSxcXFwiQkFEX0RRX0VTQ0FQRVxcXCIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7YX1gKSx0Kz1hfX1lbHNlIGlmKHM9PT1cXFwiIFxcXCJ8fHM9PT1cXFwiXFx0XFxcIil7bGV0IGk9cixvPW5bcisxXTtmb3IoO289PT1cXFwiIFxcXCJ8fG89PT1cXFwiXFx0XFxcIjspbz1uWysrcisxXTtvIT09YFxcbmAmJiEobz09PVxcXCJcXFxcclxcXCImJm5bcisyXT09PWBcXG5gKSYmKHQrPXI+aT9uLnNsaWNlKGkscisxKTpzKX1lbHNlIHQrPXN9cmV0dXJuKG5bbi5sZW5ndGgtMV0hPT0nXFxcIid8fG4ubGVuZ3RoPT09MSkmJmUobi5sZW5ndGgsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsJ01pc3NpbmcgY2xvc2luZyBcXFwicXVvdGUnKSx0fWZ1bmN0aW9uIGZmKG4sZSl7bGV0IHQ9XFxcIlxcXCIscj1uW2UrMV07Zm9yKDsocj09PVxcXCIgXFxcInx8cj09PVxcXCJcXHRcXFwifHxyPT09YFxcbmB8fHI9PT1cXFwiXFxcXHJcXFwiKSYmIShyPT09XFxcIlxcXFxyXFxcIiYmbltlKzJdIT09YFxcbmApOylyPT09YFxcbmAmJih0Kz1gXFxuYCksZSs9MSxyPW5bZSsxXTtyZXR1cm4gdHx8KHQ9XFxcIiBcXFwiKSx7Zm9sZDp0LG9mZnNldDplfX12YXIgZGY9ezA6XFxcIlxcXFwwXFxcIixhOlxcXCJcXFxceDA3XFxcIixiOlxcXCJcXFxcYlxcXCIsZTpcXFwiXFxcXHgxQlxcXCIsZjpcXFwiXFxcXGZcXFwiLG46YFxcbmAscjpcXFwiXFxcXHJcXFwiLHQ6XFxcIlxcdFxcXCIsdjpcXFwiXFxcXHZcXFwiLE46XFxcIlxcXFx4ODVcXFwiLF86XFxcIlxcXFx4QTBcXFwiLEw6XFxcIlxcXFx1MjAyOFxcXCIsUDpcXFwiXFxcXHUyMDI5XFxcIixcXFwiIFxcXCI6XFxcIiBcXFwiLCdcXFwiJzonXFxcIicsXFxcIi9cXFwiOlxcXCIvXFxcIixcXFwiXFxcXFxcXFxcXFwiOlxcXCJcXFxcXFxcXFxcXCIsXFxcIlxcdFxcXCI6XFxcIlxcdFxcXCJ9O2Z1bmN0aW9uIGhmKG4sZSx0LHIpe2xldCBzPW4uc3Vic3RyKGUsdCksbz1zLmxlbmd0aD09PXQmJi9eWzAtOWEtZkEtRl0rJC8udGVzdChzKT9wYXJzZUludChzLDE2KTpOYU47aWYoaXNOYU4obykpe2xldCBhPW4uc3Vic3RyKGUtMix0KzIpO3JldHVybiByKGUtMixcXFwiQkFEX0RRX0VTQ0FQRVxcXCIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7YX1gKSxhfXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChvKX1mdW5jdGlvbiBybyhuLGUsdCxyKXtsZXR7dmFsdWU6cyx0eXBlOmksY29tbWVudDpvLHJhbmdlOmF9PWUudHlwZT09PVxcXCJibG9jay1zY2FsYXJcXFwiP3RvKG4sZSxyKTpubyhlLG4ub3B0aW9ucy5zdHJpY3QsciksdT10P24uZGlyZWN0aXZlcy50YWdOYW1lKHQuc291cmNlLGQ9PnIodCxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixkKSk6bnVsbCxsO24ub3B0aW9ucy5zdHJpbmdLZXlzJiZuLmF0S2V5P2w9bi5zY2hlbWFbSWVdOnU/bD1tZihuLnNjaGVtYSxzLHUsdCxyKTplLnR5cGU9PT1cXFwic2NhbGFyXFxcIj9sPXBmKG4scyxlLHIpOmw9bi5zY2hlbWFbSWVdO2xldCBmO3RyeXtsZXQgZD1sLnJlc29sdmUocyxtPT5yKHQhPW51bGw/dDplLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLG0pLG4ub3B0aW9ucyk7Zj1LKGQpP2Q6bmV3IFAoZCl9Y2F0Y2goZCl7bGV0IG09ZCBpbnN0YW5jZW9mIEVycm9yP2QubWVzc2FnZTpTdHJpbmcoZCk7cih0IT1udWxsP3Q6ZSxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixtKSxmPW5ldyBQKHMpfXJldHVybiBmLnJhbmdlPWEsZi5zb3VyY2U9cyxpJiYoZi50eXBlPWkpLHUmJihmLnRhZz11KSxsLmZvcm1hdCYmKGYuZm9ybWF0PWwuZm9ybWF0KSxvJiYoZi5jb21tZW50PW8pLGZ9ZnVuY3Rpb24gbWYobixlLHQscixzKXt2YXIgYTtpZih0PT09XFxcIiFcXFwiKXJldHVybiBuW0llXTtsZXQgaT1bXTtmb3IobGV0IHUgb2Ygbi50YWdzKWlmKCF1LmNvbGxlY3Rpb24mJnUudGFnPT09dClpZih1LmRlZmF1bHQmJnUudGVzdClpLnB1c2godSk7ZWxzZSByZXR1cm4gdTtmb3IobGV0IHUgb2YgaSlpZigoYT11LnRlc3QpIT1udWxsJiZhLnRlc3QoZSkpcmV0dXJuIHU7bGV0IG89bi5rbm93blRhZ3NbdF07cmV0dXJuIG8mJiFvLmNvbGxlY3Rpb24/KG4udGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sbyx7ZGVmYXVsdDohMSx0ZXN0OnZvaWQgMH0pKSxvKToocyhyLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLGBVbnJlc29sdmVkIHRhZzogJHt0fWAsdCE9PVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHJcXFwiKSxuW0llXSl9ZnVuY3Rpb24gcGYoe2F0S2V5Om4sZGlyZWN0aXZlczplLHNjaGVtYTp0fSxyLHMsaSl7dmFyIGE7bGV0IG89dC50YWdzLmZpbmQodT0+e3ZhciBsO3JldHVybih1LmRlZmF1bHQ9PT0hMHx8biYmdS5kZWZhdWx0PT09XFxcImtleVxcXCIpJiYoKGw9dS50ZXN0KT09bnVsbD92b2lkIDA6bC50ZXN0KHIpKX0pfHx0W0llXTtpZih0LmNvbXBhdCl7bGV0IHU9KGE9dC5jb21wYXQuZmluZChsPT57dmFyIGY7cmV0dXJuIGwuZGVmYXVsdCYmKChmPWwudGVzdCk9PW51bGw/dm9pZCAwOmYudGVzdChyKSl9KSkhPW51bGw/YTp0W0llXTtpZihvLnRhZyE9PXUudGFnKXtsZXQgbD1lLnRhZ1N0cmluZyhvLnRhZyksZj1lLnRhZ1N0cmluZyh1LnRhZyksZD1gVmFsdWUgbWF5IGJlIHBhcnNlZCBhcyBlaXRoZXIgJHtsfSBvciAke2Z9YDtpKHMsXFxcIlRBR19SRVNPTFZFX0ZBSUxFRFxcXCIsZCwhMCl9fXJldHVybiBvfWZ1bmN0aW9uIFR1KG4sZSx0KXtpZihlKXt0PT09bnVsbCYmKHQ9ZS5sZW5ndGgpO2ZvcihsZXQgcj10LTE7cj49MDstLXIpe2xldCBzPWVbcl07c3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOm4tPXMuc291cmNlLmxlbmd0aDtjb250aW51ZX1mb3Iocz1lWysrcl07KHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cXFwic3BhY2VcXFwiOyluKz1zLnNvdXJjZS5sZW5ndGgscz1lWysrcl07YnJlYWt9fXJldHVybiBufXZhciBEZj17Y29tcG9zZU5vZGU6c28sY29tcG9zZUVtcHR5Tm9kZTpBc307ZnVuY3Rpb24gc28obixlLHQscil7bGV0IHM9bi5hdEtleSx7c3BhY2VCZWZvcmU6aSxjb21tZW50Om8sYW5jaG9yOmEsdGFnOnV9PXQsbCxmPSEwO3N3aXRjaChlLnR5cGUpe2Nhc2VcXFwiYWxpYXNcXFwiOmw9eWYobixlLHIpLChhfHx1KSYmcihlLFxcXCJBTElBU19QUk9QU1xcXCIsXFxcIkFuIGFsaWFzIG5vZGUgbXVzdCBub3Qgc3BlY2lmeSBhbnkgcHJvcGVydGllc1xcXCIpO2JyZWFrO2Nhc2VcXFwic2NhbGFyXFxcIjpjYXNlXFxcInNpbmdsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImRvdWJsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImJsb2NrLXNjYWxhclxcXCI6bD1ybyhuLGUsdSxyKSxhJiYobC5hbmNob3I9YS5zb3VyY2Uuc3Vic3RyaW5nKDEpKTticmVhaztjYXNlXFxcImJsb2NrLW1hcFxcXCI6Y2FzZVxcXCJibG9jay1zZXFcXFwiOmNhc2VcXFwiZmxvdy1jb2xsZWN0aW9uXFxcIjpsPUV1KERmLG4sZSx0LHIpLGEmJihsLmFuY2hvcj1hLnNvdXJjZS5zdWJzdHJpbmcoMSkpO2JyZWFrO2RlZmF1bHQ6e2xldCBkPWUudHlwZT09PVxcXCJlcnJvclxcXCI/ZS5tZXNzYWdlOmBVbnN1cHBvcnRlZCB0b2tlbiAodHlwZTogJHtlLnR5cGV9KWA7cihlLFxcXCJVTkVYUEVDVEVEX1RPS0VOXFxcIixkKSxsPUFzKG4sZS5vZmZzZXQsdm9pZCAwLG51bGwsdCxyKSxmPSExfX1yZXR1cm4gYSYmbC5hbmNob3I9PT1cXFwiXFxcIiYmcihhLFxcXCJCQURfQUxJQVNcXFwiLFxcXCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZ1xcXCIpLHMmJm4ub3B0aW9ucy5zdHJpbmdLZXlzJiYoIUsobCl8fHR5cGVvZiBsLnZhbHVlIT1cXFwic3RyaW5nXFxcInx8bC50YWcmJmwudGFnIT09XFxcInRhZzp5YW1sLm9yZywyMDAyOnN0clxcXCIpJiZyKHUhPW51bGw/dTplLFxcXCJOT05fU1RSSU5HX0tFWVxcXCIsXFxcIldpdGggc3RyaW5nS2V5cywgYWxsIGtleXMgbXVzdCBiZSBzdHJpbmdzXFxcIiksaSYmKGwuc3BhY2VCZWZvcmU9ITApLG8mJihlLnR5cGU9PT1cXFwic2NhbGFyXFxcIiYmZS5zb3VyY2U9PT1cXFwiXFxcIj9sLmNvbW1lbnQ9bzpsLmNvbW1lbnRCZWZvcmU9byksbi5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJmYmJihsLnNyY1Rva2VuPWUpLGx9ZnVuY3Rpb24gQXMobixlLHQscix7c3BhY2VCZWZvcmU6cyxjb21tZW50OmksYW5jaG9yOm8sdGFnOmEsZW5kOnV9LGwpe2xldCBmPXt0eXBlOlxcXCJzY2FsYXJcXFwiLG9mZnNldDpUdShlLHQsciksaW5kZW50Oi0xLHNvdXJjZTpcXFwiXFxcIn0sZD1ybyhuLGYsYSxsKTtyZXR1cm4gbyYmKGQuYW5jaG9yPW8uc291cmNlLnN1YnN0cmluZygxKSxkLmFuY2hvcj09PVxcXCJcXFwiJiZsKG8sXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nXFxcIikpLHMmJihkLnNwYWNlQmVmb3JlPSEwKSxpJiYoZC5jb21tZW50PWksZC5yYW5nZVsyXT11KSxkfWZ1bmN0aW9uIHlmKHtvcHRpb25zOm59LHtvZmZzZXQ6ZSxzb3VyY2U6dCxlbmQ6cn0scyl7bGV0IGk9bmV3IEV0KHQuc3Vic3RyaW5nKDEpKTtpLnNvdXJjZT09PVxcXCJcXFwiJiZzKGUsXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmdcXFwiKSxpLnNvdXJjZS5lbmRzV2l0aChcXFwiOlxcXCIpJiZzKGUrdC5sZW5ndGgtMSxcXFwiQkFEX0FMSUFTXFxcIixcXFwiQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzXFxcIiwhMCk7bGV0IG89ZSt0Lmxlbmd0aCxhPXV0KHIsbyxuLnN0cmljdCxzKTtyZXR1cm4gaS5yYW5nZT1bZSxvLGEub2Zmc2V0XSxhLmNvbW1lbnQmJihpLmNvbW1lbnQ9YS5jb21tZW50KSxpfWZ1bmN0aW9uIFN1KG4sZSx7b2Zmc2V0OnQsc3RhcnQ6cix2YWx1ZTpzLGVuZDppfSxvKXtsZXQgYT1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczplfSxuKSx1PW5ldyBOdCh2b2lkIDAsYSksbD17YXRLZXk6ITEsYXRSb290OiEwLGRpcmVjdGl2ZXM6dS5kaXJlY3RpdmVzLG9wdGlvbnM6dS5vcHRpb25zLHNjaGVtYTp1LnNjaGVtYX0sZj1hdChyLHtpbmRpY2F0b3I6XFxcImRvYy1zdGFydFxcXCIsbmV4dDpzIT1udWxsP3M6aT09bnVsbD92b2lkIDA6aVswXSxvZmZzZXQ6dCxvbkVycm9yOm8scGFyZW50SW5kZW50OjAsc3RhcnRPbk5ld2xpbmU6ITB9KTtmLmZvdW5kJiYodS5kaXJlY3RpdmVzLmRvY1N0YXJ0PSEwLHMmJihzLnR5cGU9PT1cXFwiYmxvY2stbWFwXFxcInx8cy50eXBlPT09XFxcImJsb2NrLXNlcVxcXCIpJiYhZi5oYXNOZXdsaW5lJiZvKGYuZW5kLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJCbG9jayBjb2xsZWN0aW9uIGNhbm5vdCBzdGFydCBvbiBzYW1lIGxpbmUgd2l0aCBkaXJlY3RpdmVzLWVuZCBtYXJrZXJcXFwiKSksdS5jb250ZW50cz1zP3NvKGwscyxmLG8pOkFzKGwsZi5lbmQscixudWxsLGYsbyk7bGV0IGQ9dS5jb250ZW50cy5yYW5nZVsyXSxtPXV0KGksZCwhMSxvKTtyZXR1cm4gbS5jb21tZW50JiYodS5jb21tZW50PW0uY29tbWVudCksdS5yYW5nZT1bdCxkLG0ub2Zmc2V0XSx1fWZ1bmN0aW9uIE9yKG4pe2lmKHR5cGVvZiBuPT1cXFwibnVtYmVyXFxcIilyZXR1cm5bbixuKzFdO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG4ubGVuZ3RoPT09Mj9uOltuWzBdLG5bMV1dO2xldHtvZmZzZXQ6ZSxzb3VyY2U6dH09bjtyZXR1cm5bZSxlKyh0eXBlb2YgdD09XFxcInN0cmluZ1xcXCI/dC5sZW5ndGg6MSldfWZ1bmN0aW9uIGt1KG4pe3ZhciBzO2xldCBlPVxcXCJcXFwiLHQ9ITEscj0hMTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoOysraSl7bGV0IG89bltpXTtzd2l0Y2gob1swXSl7Y2FzZVxcXCIjXFxcIjplKz0oZT09PVxcXCJcXFwiP1xcXCJcXFwiOnI/YFxcblxcbmA6YFxcbmApKyhvLnN1YnN0cmluZygxKXx8XFxcIiBcXFwiKSx0PSEwLHI9ITE7YnJlYWs7Y2FzZVxcXCIlXFxcIjooKHM9bltpKzFdKT09bnVsbD92b2lkIDA6c1swXSkhPT1cXFwiI1xcXCImJihpKz0xKSx0PSExO2JyZWFrO2RlZmF1bHQ6dHx8KHI9ITApLHQ9ITF9fXJldHVybntjb21tZW50OmUsYWZ0ZXJFbXB0eUxpbmU6cn19dmFyIElyPWNsYXNze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMuZG9jPW51bGwsdGhpcy5hdERpcmVjdGl2ZXM9ITEsdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sdGhpcy5vbkVycm9yPSh0LHIscyxpKT0+e2xldCBvPU9yKHQpO2k/dGhpcy53YXJuaW5ncy5wdXNoKG5ldyB2cihvLHIscykpOnRoaXMuZXJyb3JzLnB1c2gobmV3IFFlKG8scixzKSl9LHRoaXMuZGlyZWN0aXZlcz1uZXcgaXQoe3ZlcnNpb246ZS52ZXJzaW9ufHxcXFwiMS4yXFxcIn0pLHRoaXMub3B0aW9ucz1lfWRlY29yYXRlKGUsdCl7bGV0e2NvbW1lbnQ6cixhZnRlckVtcHR5TGluZTpzfT1rdSh0aGlzLnByZWx1ZGUpO2lmKHIpe2xldCBpPWUuY29udGVudHM7aWYodCllLmNvbW1lbnQ9ZS5jb21tZW50P2Ake2UuY29tbWVudH1cXG4ke3J9YDpyO2Vsc2UgaWYoc3x8ZS5kaXJlY3RpdmVzLmRvY1N0YXJ0fHwhaSllLmNvbW1lbnRCZWZvcmU9cjtlbHNlIGlmKFooaSkmJiFpLmZsb3cmJmkuaXRlbXMubGVuZ3RoPjApe2xldCBvPWkuaXRlbXNbMF07SChvKSYmKG89by5rZXkpO2xldCBhPW8uY29tbWVudEJlZm9yZTtvLmNvbW1lbnRCZWZvcmU9YT9gJHtyfVxcbiR7YX1gOnJ9ZWxzZXtsZXQgbz1pLmNvbW1lbnRCZWZvcmU7aS5jb21tZW50QmVmb3JlPW8/YCR7cn1cXG4ke299YDpyfX10PyhBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLmVycm9ycyx0aGlzLmVycm9ycyksQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS53YXJuaW5ncyx0aGlzLndhcm5pbmdzKSk6KGUuZXJyb3JzPXRoaXMuZXJyb3JzLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncyksdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W119c3RyZWFtSW5mbygpe3JldHVybntjb21tZW50Omt1KHRoaXMucHJlbHVkZSkuY29tbWVudCxkaXJlY3RpdmVzOnRoaXMuZGlyZWN0aXZlcyxlcnJvcnM6dGhpcy5lcnJvcnMsd2FybmluZ3M6dGhpcy53YXJuaW5nc319KmNvbXBvc2UoZSx0PSExLHI9LTEpe2ZvcihsZXQgcyBvZiBlKXlpZWxkKlModGhpcy5uZXh0KHMpKTt5aWVsZCpTKHRoaXMuZW5kKHQscikpfSpuZXh0KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2VcXFwiZGlyZWN0aXZlXFxcIjp0aGlzLmRpcmVjdGl2ZXMuYWRkKGUuc291cmNlLCh0LHIscyk9PntsZXQgaT1PcihlKTtpWzBdKz10LHRoaXMub25FcnJvcihpLFxcXCJCQURfRElSRUNUSVZFXFxcIixyLHMpfSksdGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpLHRoaXMuYXREaXJlY3RpdmVzPSEwO2JyZWFrO2Nhc2VcXFwiZG9jdW1lbnRcXFwiOntsZXQgdD1TdSh0aGlzLm9wdGlvbnMsdGhpcy5kaXJlY3RpdmVzLGUsdGhpcy5vbkVycm9yKTt0aGlzLmF0RGlyZWN0aXZlcyYmIXQuZGlyZWN0aXZlcy5kb2NTdGFydCYmdGhpcy5vbkVycm9yKGUsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IGluZGljYXRvciBsaW5lXFxcIiksdGhpcy5kZWNvcmF0ZSh0LCExKSx0aGlzLmRvYyYmKHlpZWxkIHRoaXMuZG9jKSx0aGlzLmRvYz10LHRoaXMuYXREaXJlY3RpdmVzPSExO2JyZWFrfWNhc2VcXFwiYnl0ZS1vcmRlci1tYXJrXFxcIjpjYXNlXFxcInNwYWNlXFxcIjpicmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6dGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpO2JyZWFrO2Nhc2VcXFwiZXJyb3JcXFwiOntsZXQgdD1lLnNvdXJjZT9gJHtlLm1lc3NhZ2V9OiAke0pTT04uc3RyaW5naWZ5KGUuc291cmNlKX1gOmUubWVzc2FnZSxyPW5ldyBRZShPcihlKSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsdCk7dGhpcy5hdERpcmVjdGl2ZXN8fCF0aGlzLmRvYz90aGlzLmVycm9ycy5wdXNoKHIpOnRoaXMuZG9jLmVycm9ycy5wdXNoKHIpO2JyZWFrfWNhc2VcXFwiZG9jLWVuZFxcXCI6e2lmKCF0aGlzLmRvYyl7bGV0IHI9XFxcIlVuZXhwZWN0ZWQgZG9jLWVuZCB3aXRob3V0IHByZWNlZGluZyBkb2N1bWVudFxcXCI7dGhpcy5lcnJvcnMucHVzaChuZXcgUWUoT3IoZSksXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLHIpKTticmVha310aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZD0hMDtsZXQgdD11dChlLmVuZCxlLm9mZnNldCtlLnNvdXJjZS5sZW5ndGgsdGhpcy5kb2Mub3B0aW9ucy5zdHJpY3QsdGhpcy5vbkVycm9yKTtpZih0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx0LmNvbW1lbnQpe2xldCByPXRoaXMuZG9jLmNvbW1lbnQ7dGhpcy5kb2MuY29tbWVudD1yP2Ake3J9XFxuJHt0LmNvbW1lbnR9YDp0LmNvbW1lbnR9dGhpcy5kb2MucmFuZ2VbMl09dC5vZmZzZXQ7YnJlYWt9ZGVmYXVsdDp0aGlzLmVycm9ycy5wdXNoKG5ldyBRZShPcihlKSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuc3VwcG9ydGVkIHRva2VuICR7ZS50eXBlfWApKX19KmVuZChlPSExLHQ9LTEpe2lmKHRoaXMuZG9jKXRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHlpZWxkIHRoaXMuZG9jLHRoaXMuZG9jPW51bGw7ZWxzZSBpZihlKXtsZXQgcj1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXN9LHRoaXMub3B0aW9ucykscz1uZXcgTnQodm9pZCAwLHIpO3RoaXMuYXREaXJlY3RpdmVzJiZ0aGlzLm9uRXJyb3IodCxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZCBpbmRpY2F0b3IgbGluZVxcXCIpLHMucmFuZ2U9WzAsdCx0XSx0aGlzLmRlY29yYXRlKHMsITEpLHlpZWxkIHN9fX07dmFyIGlvPVN5bWJvbChcXFwiYnJlYWsgdmlzaXRcXFwiKSxnZj1TeW1ib2woXFxcInNraXAgY2hpbGRyZW5cXFwiKSxDdT1TeW1ib2woXFxcInJlbW92ZSBpdGVtXFxcIik7ZnVuY3Rpb24gSnQobixlKXtcXFwidHlwZVxcXCJpbiBuJiZuLnR5cGU9PT1cXFwiZG9jdW1lbnRcXFwiJiYobj17c3RhcnQ6bi5zdGFydCx2YWx1ZTpuLnZhbHVlfSksdnUoT2JqZWN0LmZyZWV6ZShbXSksbixlKX1KdC5CUkVBSz1pbztKdC5TS0lQPWdmO0p0LlJFTU9WRT1DdTtKdC5pdGVtQXRQYXRoPShuLGUpPT57bGV0IHQ9bjtmb3IobGV0W3Isc11vZiBlKXtsZXQgaT10PT1udWxsP3ZvaWQgMDp0W3JdO2lmKGkmJlxcXCJpdGVtc1xcXCJpbiBpKXQ9aS5pdGVtc1tzXTtlbHNlIHJldHVybn1yZXR1cm4gdH07SnQucGFyZW50Q29sbGVjdGlvbj0obixlKT0+e2xldCB0PUp0Lml0ZW1BdFBhdGgobixlLnNsaWNlKDAsLTEpKSxyPWVbZS5sZW5ndGgtMV1bMF0scz10PT1udWxsP3ZvaWQgMDp0W3JdO2lmKHMmJlxcXCJpdGVtc1xcXCJpbiBzKXJldHVybiBzO3Rocm93IG5ldyBFcnJvcihcXFwiUGFyZW50IGNvbGxlY3Rpb24gbm90IGZvdW5kXFxcIil9O2Z1bmN0aW9uIHZ1KG4sZSx0KXtsZXQgcj10KGUsbik7aWYodHlwZW9mIHI9PVxcXCJzeW1ib2xcXFwiKXJldHVybiByO2ZvcihsZXQgcyBvZltcXFwia2V5XFxcIixcXFwidmFsdWVcXFwiXSl7bGV0IGk9ZVtzXTtpZihpJiZcXFwiaXRlbXNcXFwiaW4gaSl7Zm9yKGxldCBvPTA7bzxpLml0ZW1zLmxlbmd0aDsrK28pe2xldCBhPXZ1KE9iamVjdC5mcmVlemUobi5jb25jYXQoW1tzLG9dXSkpLGkuaXRlbXNbb10sdCk7aWYodHlwZW9mIGE9PVxcXCJudW1iZXJcXFwiKW89YS0xO2Vsc2V7aWYoYT09PWlvKXJldHVybiBpbzthPT09Q3UmJihpLml0ZW1zLnNwbGljZShvLDEpLG8tPTEpfX10eXBlb2Ygcj09XFxcImZ1bmN0aW9uXFxcIiYmcz09PVxcXCJrZXlcXFwiJiYocj1yKGUsbikpfX1yZXR1cm4gdHlwZW9mIHI9PVxcXCJmdW5jdGlvblxcXCI/cihlLG4pOnJ9dmFyIG9vPVxcXCJcXFxcdUZFRkZcXFwiLGFvPVxcXCJcXHUwMDAyXFxcIix1bz1cXFwiXFx1MDAxOFxcXCIsTXM9XFxcIlxcdTAwMWZcXFwiO2Z1bmN0aW9uIHh1KG4pe3N3aXRjaChuKXtjYXNlIG9vOnJldHVyblxcXCJieXRlLW9yZGVyLW1hcmtcXFwiO2Nhc2UgYW86cmV0dXJuXFxcImRvYy1tb2RlXFxcIjtjYXNlIHVvOnJldHVyblxcXCJmbG93LWVycm9yLWVuZFxcXCI7Y2FzZSBNczpyZXR1cm5cXFwic2NhbGFyXFxcIjtjYXNlXFxcIi0tLVxcXCI6cmV0dXJuXFxcImRvYy1zdGFydFxcXCI7Y2FzZVxcXCIuLi5cXFwiOnJldHVyblxcXCJkb2MtZW5kXFxcIjtjYXNlXFxcIlxcXCI6Y2FzZWBcXG5gOmNhc2VgXFxcXHJcXG5gOnJldHVyblxcXCJuZXdsaW5lXFxcIjtjYXNlXFxcIi1cXFwiOnJldHVyblxcXCJzZXEtaXRlbS1pbmRcXFwiO2Nhc2VcXFwiP1xcXCI6cmV0dXJuXFxcImV4cGxpY2l0LWtleS1pbmRcXFwiO2Nhc2VcXFwiOlxcXCI6cmV0dXJuXFxcIm1hcC12YWx1ZS1pbmRcXFwiO2Nhc2VcXFwie1xcXCI6cmV0dXJuXFxcImZsb3ctbWFwLXN0YXJ0XFxcIjtjYXNlXFxcIn1cXFwiOnJldHVyblxcXCJmbG93LW1hcC1lbmRcXFwiO2Nhc2VcXFwiW1xcXCI6cmV0dXJuXFxcImZsb3ctc2VxLXN0YXJ0XFxcIjtjYXNlXFxcIl1cXFwiOnJldHVyblxcXCJmbG93LXNlcS1lbmRcXFwiO2Nhc2VcXFwiLFxcXCI6cmV0dXJuXFxcImNvbW1hXFxcIn1zd2l0Y2goblswXSl7Y2FzZVxcXCIgXFxcIjpjYXNlXFxcIlxcdFxcXCI6cmV0dXJuXFxcInNwYWNlXFxcIjtjYXNlXFxcIiNcXFwiOnJldHVyblxcXCJjb21tZW50XFxcIjtjYXNlXFxcIiVcXFwiOnJldHVyblxcXCJkaXJlY3RpdmUtbGluZVxcXCI7Y2FzZVxcXCIqXFxcIjpyZXR1cm5cXFwiYWxpYXNcXFwiO2Nhc2VcXFwiJlxcXCI6cmV0dXJuXFxcImFuY2hvclxcXCI7Y2FzZVxcXCIhXFxcIjpyZXR1cm5cXFwidGFnXFxcIjtjYXNlXFxcIidcXFwiOnJldHVyblxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI7Y2FzZSdcXFwiJzpyZXR1cm5cXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiO2Nhc2VcXFwifFxcXCI6Y2FzZVxcXCI+XFxcIjpyZXR1cm5cXFwiYmxvY2stc2NhbGFyLWhlYWRlclxcXCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWGUobil7c3dpdGNoKG4pe2Nhc2Ugdm9pZCAwOmNhc2VcXFwiIFxcXCI6Y2FzZWBcXG5gOmNhc2VcXFwiXFxcXHJcXFwiOmNhc2VcXFwiXFx0XFxcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX12YXIgT3U9bmV3IFNldChcXFwiMDEyMzQ1Njc4OUFCQ0RFRmFiY2RlZlxcXCIpLEZmPW5ldyBTZXQoXFxcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKVxcXCIpLF9zPW5ldyBTZXQoXFxcIixbXXt9XFxcIiksRWY9bmV3IFNldChgICxbXXt9XFxuXFxcXHJcXHRgKSxsbz1uPT4hbnx8RWYuaGFzKG4pLExyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hdEVuZD0hMSx0aGlzLmJsb2NrU2NhbGFySW5kZW50PS0xLHRoaXMuYmxvY2tTY2FsYXJLZWVwPSExLHRoaXMuYnVmZmVyPVxcXCJcXFwiLHRoaXMuZmxvd0tleT0hMSx0aGlzLmZsb3dMZXZlbD0wLHRoaXMuaW5kZW50TmV4dD0wLHRoaXMuaW5kZW50VmFsdWU9MCx0aGlzLmxpbmVFbmRQb3M9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLnBvcz0wfSpsZXgoZSx0PSExKXt2YXIgcztpZihlKXtpZih0eXBlb2YgZSE9XFxcInN0cmluZ1xcXCIpdGhyb3cgVHlwZUVycm9yKFxcXCJzb3VyY2UgaXMgbm90IGEgc3RyaW5nXFxcIik7dGhpcy5idWZmZXI9dGhpcy5idWZmZXI/dGhpcy5idWZmZXIrZTplLHRoaXMubGluZUVuZFBvcz1udWxsfXRoaXMuYXRFbmQ9IXQ7bGV0IHI9KHM9dGhpcy5uZXh0KSE9bnVsbD9zOlxcXCJzdHJlYW1cXFwiO2Zvcig7ciYmKHR8fHRoaXMuaGFzQ2hhcnMoMSkpOylyPXlpZWxkKlModGhpcy5wYXJzZU5leHQocikpfWF0TGluZUVuZCgpe2xldCBlPXRoaXMucG9zLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0PT09XFxcIiBcXFwifHx0PT09XFxcIlxcdFxcXCI7KXQ9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4hdHx8dD09PVxcXCIjXFxcInx8dD09PWBcXG5gPyEwOnQ9PT1cXFwiXFxcXHJcXFwiP3RoaXMuYnVmZmVyW2UrMV09PT1gXFxuYDohMX1jaGFyQXQoZSl7cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zK2VdfWNvbnRpbnVlU2NhbGFyKGUpe2xldCB0PXRoaXMuYnVmZmVyW2VdO2lmKHRoaXMuaW5kZW50TmV4dD4wKXtsZXQgcj0wO2Zvcig7dD09PVxcXCIgXFxcIjspdD10aGlzLmJ1ZmZlclsrK3IrZV07aWYodD09PVxcXCJcXFxcclxcXCIpe2xldCBzPXRoaXMuYnVmZmVyW3IrZSsxXTtpZihzPT09YFxcbmB8fCFzJiYhdGhpcy5hdEVuZClyZXR1cm4gZStyKzF9cmV0dXJuIHQ9PT1gXFxuYHx8cj49dGhpcy5pbmRlbnROZXh0fHwhdCYmIXRoaXMuYXRFbmQ/ZStyOi0xfWlmKHQ9PT1cXFwiLVxcXCJ8fHQ9PT1cXFwiLlxcXCIpe2xldCByPXRoaXMuYnVmZmVyLnN1YnN0cihlLDMpO2lmKChyPT09XFxcIi0tLVxcXCJ8fHI9PT1cXFwiLi4uXFxcIikmJlhlKHRoaXMuYnVmZmVyW2UrM10pKXJldHVybi0xfXJldHVybiBlfWdldExpbmUoKXtsZXQgZT10aGlzLmxpbmVFbmRQb3M7cmV0dXJuKHR5cGVvZiBlIT1cXFwibnVtYmVyXFxcInx8ZSE9PS0xJiZlPHRoaXMucG9zKSYmKGU9dGhpcy5idWZmZXIuaW5kZXhPZihgXFxuYCx0aGlzLnBvcyksdGhpcy5saW5lRW5kUG9zPWUpLGU9PT0tMT90aGlzLmF0RW5kP3RoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk6bnVsbDoodGhpcy5idWZmZXJbZS0xXT09PVxcXCJcXFxcclxcXCImJihlLT0xKSx0aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MsZSkpfWhhc0NoYXJzKGUpe3JldHVybiB0aGlzLnBvcytlPD10aGlzLmJ1ZmZlci5sZW5ndGh9c2V0TmV4dChlKXtyZXR1cm4gdGhpcy5idWZmZXI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSx0aGlzLnBvcz0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1lLG51bGx9cGVlayhlKXtyZXR1cm4gdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLGUpfSpwYXJzZU5leHQoZSl7c3dpdGNoKGUpe2Nhc2VcXFwic3RyZWFtXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlU3RyZWFtKCkpO2Nhc2VcXFwibGluZS1zdGFydFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtjYXNlXFxcImJsb2NrLXN0YXJ0XFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlQmxvY2tTdGFydCgpKTtjYXNlXFxcImRvY1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZURvY3VtZW50KCkpO2Nhc2VcXFwiZmxvd1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUZsb3dDb2xsZWN0aW9uKCkpO2Nhc2VcXFwicXVvdGVkLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpKTtjYXNlXFxcImJsb2NrLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFyKCkpO2Nhc2VcXFwicGxhaW4tc2NhbGFyXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKSl9fSpwYXJzZVN0cmVhbSgpe2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcInN0cmVhbVxcXCIpO2lmKGVbMF09PT1vbyYmKHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLGU9ZS5zdWJzdHJpbmcoMSkpLGVbMF09PT1cXFwiJVxcXCIpe2xldCB0PWUubGVuZ3RoLHI9ZS5pbmRleE9mKFxcXCIjXFxcIik7Zm9yKDtyIT09LTE7KXtsZXQgaT1lW3ItMV07aWYoaT09PVxcXCIgXFxcInx8aT09PVxcXCJcXHRcXFwiKXt0PXItMTticmVha31lbHNlIHI9ZS5pbmRleE9mKFxcXCIjXFxcIixyKzEpfWZvcig7Oyl7bGV0IGk9ZVt0LTFdO2lmKGk9PT1cXFwiIFxcXCJ8fGk9PT1cXFwiXFx0XFxcIil0LT0xO2Vsc2UgYnJlYWt9bGV0IHM9KHlpZWxkKlModGhpcy5wdXNoQ291bnQodCkpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSk7cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcykpLHRoaXMucHVzaE5ld2xpbmUoKSxcXFwic3RyZWFtXFxcIn1pZih0aGlzLmF0TGluZUVuZCgpKXtsZXQgdD15aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpKSx5aWVsZCpTKHRoaXMucHVzaE5ld2xpbmUoKSksXFxcInN0cmVhbVxcXCJ9cmV0dXJuIHlpZWxkIGFvLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKX0qcGFyc2VMaW5lU3RhcnQoKXtsZXQgZT10aGlzLmNoYXJBdCgwKTtpZighZSYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwibGluZS1zdGFydFxcXCIpO2lmKGU9PT1cXFwiLVxcXCJ8fGU9PT1cXFwiLlxcXCIpe2lmKCF0aGlzLmF0RW5kJiYhdGhpcy5oYXNDaGFycyg0KSlyZXR1cm4gdGhpcy5zZXROZXh0KFxcXCJsaW5lLXN0YXJ0XFxcIik7bGV0IHQ9dGhpcy5wZWVrKDMpO2lmKCh0PT09XFxcIi0tLVxcXCJ8fHQ9PT1cXFwiLi4uXFxcIikmJlhlKHRoaXMuY2hhckF0KDMpKSlyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudCgzKSksdGhpcy5pbmRlbnRWYWx1ZT0wLHRoaXMuaW5kZW50TmV4dD0wLHQ9PT1cXFwiLS0tXFxcIj9cXFwiZG9jXFxcIjpcXFwic3RyZWFtXFxcIn1yZXR1cm4gdGhpcy5pbmRlbnRWYWx1ZT15aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMSkpLHRoaXMuaW5kZW50TmV4dD50aGlzLmluZGVudFZhbHVlJiYhWGUodGhpcy5jaGFyQXQoMSkpJiYodGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUpLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU3RhcnQoKSl9KnBhcnNlQmxvY2tTdGFydCgpe2xldFtlLHRdPXRoaXMucGVlaygyKTtpZighdCYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc3RhcnRcXFwiKTtpZigoZT09PVxcXCItXFxcInx8ZT09PVxcXCI/XFxcInx8ZT09PVxcXCI6XFxcIikmJlhlKHQpKXtsZXQgcj0oeWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSkpKyh5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpKTtyZXR1cm4gdGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSx0aGlzLmluZGVudFZhbHVlKz1yLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU3RhcnQoKSl9cmV0dXJuXFxcImRvY1xcXCJ9KnBhcnNlRG9jdW1lbnQoKXt5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpO2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcImRvY1xcXCIpO2xldCB0PXlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKTtzd2l0Y2goZVt0XSl7Y2FzZVxcXCIjXFxcIjp5aWVsZCpTKHRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpKTtjYXNlIHZvaWQgMDpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hOZXdsaW5lKCkpLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtjYXNlXFxcIntcXFwiOmNhc2VcXFwiW1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHRoaXMuZmxvd0tleT0hMSx0aGlzLmZsb3dMZXZlbD0xLFxcXCJmbG93XFxcIjtjYXNlXFxcIn1cXFwiOmNhc2VcXFwiXVxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLFxcXCJkb2NcXFwiO2Nhc2VcXFwiKlxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVW50aWwobG8pKSxcXFwiZG9jXFxcIjtjYXNlJ1xcXCInOmNhc2VcXFwiJ1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpKTtjYXNlXFxcInxcXFwiOmNhc2VcXFwiPlxcXCI6cmV0dXJuIHQrPXlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkpLHQrPXlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSkseWllbGQqUyh0aGlzLnB1c2hDb3VudChlLmxlbmd0aC10KSkseWllbGQqUyh0aGlzLnB1c2hOZXdsaW5lKCkpLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFyKCkpO2RlZmF1bHQ6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVBsYWluU2NhbGFyKCkpfX0qcGFyc2VGbG93Q29sbGVjdGlvbigpe2xldCBlLHQscj0tMTtkbyBlPXlpZWxkKlModGhpcy5wdXNoTmV3bGluZSgpKSxlPjA/KHQ9eWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITEpKSx0aGlzLmluZGVudFZhbHVlPXI9dCk6dD0wLHQrPXlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSk7d2hpbGUoZSt0PjApO2xldCBzPXRoaXMuZ2V0TGluZSgpO2lmKHM9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcImZsb3dcXFwiKTtpZigociE9PS0xJiZyPHRoaXMuaW5kZW50TmV4dCYmc1swXSE9PVxcXCIjXFxcInx8cj09PTAmJihzLnN0YXJ0c1dpdGgoXFxcIi0tLVxcXCIpfHxzLnN0YXJ0c1dpdGgoXFxcIi4uLlxcXCIpKSYmWGUoc1szXSkpJiYhKHI9PT10aGlzLmluZGVudE5leHQtMSYmdGhpcy5mbG93TGV2ZWw9PT0xJiYoc1swXT09PVxcXCJdXFxcInx8c1swXT09PVxcXCJ9XFxcIikpKXJldHVybiB0aGlzLmZsb3dMZXZlbD0wLHlpZWxkIHVvLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtsZXQgaT0wO2Zvcig7c1tpXT09PVxcXCIsXFxcIjspaSs9eWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSksaSs9eWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSx0aGlzLmZsb3dLZXk9ITE7c3dpdGNoKGkrPXlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSxzW2ldKXtjYXNlIHZvaWQgMDpyZXR1cm5cXFwiZmxvd1xcXCI7Y2FzZVxcXCIjXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudChzLmxlbmd0aC1pKSksXFxcImZsb3dcXFwiO2Nhc2VcXFwie1xcXCI6Y2FzZVxcXCJbXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsKz0xLFxcXCJmbG93XFxcIjtjYXNlXFxcIn1cXFwiOmNhc2VcXFwiXVxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHRoaXMuZmxvd0tleT0hMCx0aGlzLmZsb3dMZXZlbC09MSx0aGlzLmZsb3dMZXZlbD9cXFwiZmxvd1xcXCI6XFxcImRvY1xcXCI7Y2FzZVxcXCIqXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hVbnRpbChsbykpLFxcXCJmbG93XFxcIjtjYXNlJ1xcXCInOmNhc2VcXFwiJ1xcXCI6cmV0dXJuIHRoaXMuZmxvd0tleT0hMCx5aWVsZCpTKHRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKSk7Y2FzZVxcXCI6XFxcIjp7bGV0IG89dGhpcy5jaGFyQXQoMSk7aWYodGhpcy5mbG93S2V5fHxYZShvKXx8bz09PVxcXCIsXFxcIilyZXR1cm4gdGhpcy5mbG93S2V5PSExLHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSksXFxcImZsb3dcXFwifWRlZmF1bHQ6cmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCpTKHRoaXMucGFyc2VQbGFpblNjYWxhcigpKX19KnBhcnNlUXVvdGVkU2NhbGFyKCl7bGV0IGU9dGhpcy5jaGFyQXQoMCksdD10aGlzLmJ1ZmZlci5pbmRleE9mKGUsdGhpcy5wb3MrMSk7aWYoZT09PVxcXCInXFxcIilmb3IoO3QhPT0tMSYmdGhpcy5idWZmZXJbdCsxXT09PVxcXCInXFxcIjspdD10aGlzLmJ1ZmZlci5pbmRleE9mKFxcXCInXFxcIix0KzIpO2Vsc2UgZm9yKDt0IT09LTE7KXtsZXQgaT0wO2Zvcig7dGhpcy5idWZmZXJbdC0xLWldPT09XFxcIlxcXFxcXFxcXFxcIjspaSs9MTtpZihpJTI9PT0wKWJyZWFrO3Q9dGhpcy5idWZmZXIuaW5kZXhPZignXFxcIicsdCsxKX1sZXQgcj10aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCx0KSxzPXIuaW5kZXhPZihgXFxuYCx0aGlzLnBvcyk7aWYocyE9PS0xKXtmb3IoO3MhPT0tMTspe2xldCBpPXRoaXMuY29udGludWVTY2FsYXIocysxKTtpZihpPT09LTEpYnJlYWs7cz1yLmluZGV4T2YoYFxcbmAsaSl9cyE9PS0xJiYodD1zLShyW3MtMV09PT1cXFwiXFxcXHJcXFwiPzI6MSkpfWlmKHQ9PT0tMSl7aWYoIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwicXVvdGVkLXNjYWxhclxcXCIpO3Q9dGhpcy5idWZmZXIubGVuZ3RofXJldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgodCsxLCExKSksdGhpcy5mbG93TGV2ZWw/XFxcImZsb3dcXFwiOlxcXCJkb2NcXFwifSpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMTtsZXQgZT10aGlzLnBvcztmb3IoOzspe2xldCB0PXRoaXMuYnVmZmVyWysrZV07aWYodD09PVxcXCIrXFxcIil0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMDtlbHNlIGlmKHQ+XFxcIjBcXFwiJiZ0PD1cXFwiOVxcXCIpdGhpcy5ibG9ja1NjYWxhckluZGVudD1OdW1iZXIodCktMTtlbHNlIGlmKHQhPT1cXFwiLVxcXCIpYnJlYWt9cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVW50aWwodD0+WGUodCl8fHQ9PT1cXFwiI1xcXCIpKX0qcGFyc2VCbG9ja1NjYWxhcigpe2xldCBlPXRoaXMucG9zLTEsdD0wLHI7ZTpmb3IobGV0IGk9dGhpcy5wb3M7cj10aGlzLmJ1ZmZlcltpXTsrK2kpc3dpdGNoKHIpe2Nhc2VcXFwiIFxcXCI6dCs9MTticmVhaztjYXNlYFxcbmA6ZT1pLHQ9MDticmVhaztjYXNlXFxcIlxcXFxyXFxcIjp7bGV0IG89dGhpcy5idWZmZXJbaSsxXTtpZighbyYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc2NhbGFyXFxcIik7aWYobz09PWBcXG5gKWJyZWFrfWRlZmF1bHQ6YnJlYWsgZX1pZighciYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc2NhbGFyXFxcIik7aWYodD49dGhpcy5pbmRlbnROZXh0KXt0aGlzLmJsb2NrU2NhbGFySW5kZW50PT09LTE/dGhpcy5pbmRlbnROZXh0PXQ6dGhpcy5pbmRlbnROZXh0PXRoaXMuYmxvY2tTY2FsYXJJbmRlbnQrKHRoaXMuaW5kZW50TmV4dD09PTA/MTp0aGlzLmluZGVudE5leHQpO2Rve2xldCBpPXRoaXMuY29udGludWVTY2FsYXIoZSsxKTtpZihpPT09LTEpYnJlYWs7ZT10aGlzLmJ1ZmZlci5pbmRleE9mKGBcXG5gLGkpfXdoaWxlKGUhPT0tMSk7aWYoZT09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KFxcXCJibG9jay1zY2FsYXJcXFwiKTtlPXRoaXMuYnVmZmVyLmxlbmd0aH19bGV0IHM9ZSsxO2ZvcihyPXRoaXMuYnVmZmVyW3NdO3I9PT1cXFwiIFxcXCI7KXI9dGhpcy5idWZmZXJbKytzXTtpZihyPT09XFxcIlxcdFxcXCIpe2Zvcig7cj09PVxcXCJcXHRcXFwifHxyPT09XFxcIiBcXFwifHxyPT09XFxcIlxcXFxyXFxcInx8cj09PWBcXG5gOylyPXRoaXMuYnVmZmVyWysrc107ZT1zLTF9ZWxzZSBpZighdGhpcy5ibG9ja1NjYWxhcktlZXApZG97bGV0IGk9ZS0xLG89dGhpcy5idWZmZXJbaV07bz09PVxcXCJcXFxcclxcXCImJihvPXRoaXMuYnVmZmVyWy0taV0pO2xldCBhPWk7Zm9yKDtvPT09XFxcIiBcXFwiOylvPXRoaXMuYnVmZmVyWy0taV07aWYobz09PWBcXG5gJiZpPj10aGlzLnBvcyYmaSsxK3Q+YSllPWk7ZWxzZSBicmVha313aGlsZSghMCk7cmV0dXJuIHlpZWxkIE1zLHlpZWxkKlModGhpcy5wdXNoVG9JbmRleChlKzEsITApKSx5aWVsZCpTKHRoaXMucGFyc2VMaW5lU3RhcnQoKSl9KnBhcnNlUGxhaW5TY2FsYXIoKXtsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHQ9dGhpcy5wb3MtMSxyPXRoaXMucG9zLTEscztmb3IoO3M9dGhpcy5idWZmZXJbKytyXTspaWYocz09PVxcXCI6XFxcIil7bGV0IGk9dGhpcy5idWZmZXJbcisxXTtpZihYZShpKXx8ZSYmX3MuaGFzKGkpKWJyZWFrO3Q9cn1lbHNlIGlmKFhlKHMpKXtsZXQgaT10aGlzLmJ1ZmZlcltyKzFdO2lmKHM9PT1cXFwiXFxcXHJcXFwiJiYoaT09PWBcXG5gPyhyKz0xLHM9YFxcbmAsaT10aGlzLmJ1ZmZlcltyKzFdKTp0PXIpLGk9PT1cXFwiI1xcXCJ8fGUmJl9zLmhhcyhpKSlicmVhaztpZihzPT09YFxcbmApe2xldCBvPXRoaXMuY29udGludWVTY2FsYXIocisxKTtpZihvPT09LTEpYnJlYWs7cj1NYXRoLm1heChyLG8tMil9fWVsc2V7aWYoZSYmX3MuaGFzKHMpKWJyZWFrO3Q9cn1yZXR1cm4hcyYmIXRoaXMuYXRFbmQ/dGhpcy5zZXROZXh0KFxcXCJwbGFpbi1zY2FsYXJcXFwiKTooeWllbGQgTXMseWllbGQqUyh0aGlzLnB1c2hUb0luZGV4KHQrMSwhMCkpLGU/XFxcImZsb3dcXFwiOlxcXCJkb2NcXFwiKX0qcHVzaENvdW50KGUpe3JldHVybiBlPjA/KHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxlKSx0aGlzLnBvcys9ZSxlKTowfSpwdXNoVG9JbmRleChlLHQpe2xldCByPXRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLGUpO3JldHVybiByPyh5aWVsZCByLHRoaXMucG9zKz1yLmxlbmd0aCxyLmxlbmd0aCk6KHQmJih5aWVsZFxcXCJcXFwiKSwwKX0qcHVzaEluZGljYXRvcnMoKXtzd2l0Y2godGhpcy5jaGFyQXQoMCkpe2Nhc2VcXFwiIVxcXCI6cmV0dXJuKHlpZWxkKlModGhpcy5wdXNoVGFnKCkpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSkrKHlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSk7Y2FzZVxcXCImXFxcIjpyZXR1cm4oeWllbGQqUyh0aGlzLnB1c2hVbnRpbChsbykpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSkrKHlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSk7Y2FzZVxcXCItXFxcIjpjYXNlXFxcIj9cXFwiOmNhc2VcXFwiOlxcXCI6e2xldCBlPXRoaXMuZmxvd0xldmVsPjAsdD10aGlzLmNoYXJBdCgxKTtpZihYZSh0KXx8ZSYmX3MuaGFzKHQpKXJldHVybiBlP3RoaXMuZmxvd0tleSYmKHRoaXMuZmxvd0tleT0hMSk6dGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSwoeWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSkpKyh5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpKSsoeWllbGQqUyh0aGlzLnB1c2hJbmRpY2F0b3JzKCkpKX19cmV0dXJuIDB9KnB1c2hUYWcoKXtpZih0aGlzLmNoYXJBdCgxKT09PVxcXCI8XFxcIil7bGV0IGU9dGhpcy5wb3MrMix0PXRoaXMuYnVmZmVyW2VdO2Zvcig7IVhlKHQpJiZ0IT09XFxcIj5cXFwiOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVG9JbmRleCh0PT09XFxcIj5cXFwiP2UrMTplLCExKSl9ZWxzZXtsZXQgZT10aGlzLnBvcysxLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0OylpZihGZi5oYXModCkpdD10aGlzLmJ1ZmZlclsrK2VdO2Vsc2UgaWYodD09PVxcXCIlXFxcIiYmT3UuaGFzKHRoaXMuYnVmZmVyW2UrMV0pJiZPdS5oYXModGhpcy5idWZmZXJbZSsyXSkpdD10aGlzLmJ1ZmZlcltlKz0zXTtlbHNlIGJyZWFrO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgoZSwhMSkpfX0qcHVzaE5ld2xpbmUoKXtsZXQgZT10aGlzLmJ1ZmZlclt0aGlzLnBvc107cmV0dXJuIGU9PT1gXFxuYD95aWVsZCpTKHRoaXMucHVzaENvdW50KDEpKTplPT09XFxcIlxcXFxyXFxcIiYmdGhpcy5jaGFyQXQoMSk9PT1gXFxuYD95aWVsZCpTKHRoaXMucHVzaENvdW50KDIpKTowfSpwdXNoU3BhY2VzKGUpe2xldCB0PXRoaXMucG9zLTEscjtkbyByPXRoaXMuYnVmZmVyWysrdF07d2hpbGUocj09PVxcXCIgXFxcInx8ZSYmcj09PVxcXCJcXHRcXFwiKTtsZXQgcz10LXRoaXMucG9zO3JldHVybiBzPjAmJih5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MscyksdGhpcy5wb3M9dCksc30qcHVzaFVudGlsKGUpe2xldCB0PXRoaXMucG9zLHI9dGhpcy5idWZmZXJbdF07Zm9yKDshZShyKTspcj10aGlzLmJ1ZmZlclsrK3RdO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgodCwhMSkpfX07dmFyIE5yPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5saW5lU3RhcnRzPVtdLHRoaXMuYWRkTmV3TGluZT1lPT50aGlzLmxpbmVTdGFydHMucHVzaChlKSx0aGlzLmxpbmVQb3M9ZT0+e2xldCB0PTAscj10aGlzLmxpbmVTdGFydHMubGVuZ3RoO2Zvcig7dDxyOyl7bGV0IGk9dCtyPj4xO3RoaXMubGluZVN0YXJ0c1tpXTxlP3Q9aSsxOnI9aX1pZih0aGlzLmxpbmVTdGFydHNbdF09PT1lKXJldHVybntsaW5lOnQrMSxjb2w6MX07aWYodD09PTApcmV0dXJue2xpbmU6MCxjb2w6ZX07bGV0IHM9dGhpcy5saW5lU3RhcnRzW3QtMV07cmV0dXJue2xpbmU6dCxjb2w6ZS1zKzF9fX19O2Z1bmN0aW9uIHp0KG4sZSl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDsrK3QpaWYoblt0XS50eXBlPT09ZSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBJdShuKXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoOysrZSlzd2l0Y2gobltlXS50eXBlKXtjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gZX1yZXR1cm4tMX1mdW5jdGlvbiBOdShuKXtzd2l0Y2gobj09bnVsbD92b2lkIDA6bi50eXBlKXtjYXNlXFxcImFsaWFzXFxcIjpjYXNlXFxcInNjYWxhclxcXCI6Y2FzZVxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJkb3VibGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEJzKG4pe3ZhciBlO3N3aXRjaChuLnR5cGUpe2Nhc2VcXFwiZG9jdW1lbnRcXFwiOnJldHVybiBuLnN0YXJ0O2Nhc2VcXFwiYmxvY2stbWFwXFxcIjp7bGV0IHQ9bi5pdGVtc1tuLml0ZW1zLmxlbmd0aC0xXTtyZXR1cm4oZT10LnNlcCkhPW51bGw/ZTp0LnN0YXJ0fWNhc2VcXFwiYmxvY2stc2VxXFxcIjpyZXR1cm4gbi5pdGVtc1tuLml0ZW1zLmxlbmd0aC0xXS5zdGFydDtkZWZhdWx0OnJldHVybltdfX1mdW5jdGlvbiBObihuKXt2YXIgdDtpZihuLmxlbmd0aD09PTApcmV0dXJuW107bGV0IGU9bi5sZW5ndGg7ZTpmb3IoOy0tZT49MDspc3dpdGNoKG5bZV0udHlwZSl7Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOmNhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6Y2FzZVxcXCJtYXAtdmFsdWUtaW5kXFxcIjpjYXNlXFxcInNlcS1pdGVtLWluZFxcXCI6Y2FzZVxcXCJuZXdsaW5lXFxcIjpicmVhayBlfWZvcig7KCh0PW5bKytlXSk9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cXFwic3BhY2VcXFwiOyk7cmV0dXJuIG4uc3BsaWNlKGUsbi5sZW5ndGgpfWZ1bmN0aW9uIEx1KG4pe2lmKG4uc3RhcnQudHlwZT09PVxcXCJmbG93LXNlcS1zdGFydFxcXCIpZm9yKGxldCBlIG9mIG4uaXRlbXMpZS5zZXAmJiFlLnZhbHVlJiYhenQoZS5zdGFydCxcXFwiZXhwbGljaXQta2V5LWluZFxcXCIpJiYhenQoZS5zZXAsXFxcIm1hcC12YWx1ZS1pbmRcXFwiKSYmKGUua2V5JiYoZS52YWx1ZT1lLmtleSksZGVsZXRlIGUua2V5LE51KGUudmFsdWUpP2UudmFsdWUuZW5kP0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUudmFsdWUuZW5kLGUuc2VwKTplLnZhbHVlLmVuZD1lLnNlcDpBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLnN0YXJ0LGUuc2VwKSxkZWxldGUgZS5zZXApfXZhciBBcj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmF0U2NhbGFyPSExLHRoaXMuaW5kZW50PTAsdGhpcy5vZmZzZXQ9MCx0aGlzLm9uS2V5TGluZT0hMSx0aGlzLnN0YWNrPVtdLHRoaXMuc291cmNlPVxcXCJcXFwiLHRoaXMudHlwZT1cXFwiXFxcIix0aGlzLmxleGVyPW5ldyBMcix0aGlzLm9uTmV3TGluZT1lfSpwYXJzZShlLHQ9ITEpe3RoaXMub25OZXdMaW5lJiZ0aGlzLm9mZnNldD09PTAmJnRoaXMub25OZXdMaW5lKDApO2ZvcihsZXQgciBvZiB0aGlzLmxleGVyLmxleChlLHQpKXlpZWxkKlModGhpcy5uZXh0KHIpKTt0fHwoeWllbGQqUyh0aGlzLmVuZCgpKSl9Km5leHQoZSl7aWYodGhpcy5zb3VyY2U9ZSx0aGlzLmF0U2NhbGFyKXt0aGlzLmF0U2NhbGFyPSExLHlpZWxkKlModGhpcy5zdGVwKCkpLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aDtyZXR1cm59bGV0IHQ9eHUoZSk7aWYodClpZih0PT09XFxcInNjYWxhclxcXCIpdGhpcy5hdE5ld0xpbmU9ITEsdGhpcy5hdFNjYWxhcj0hMCx0aGlzLnR5cGU9XFxcInNjYWxhclxcXCI7ZWxzZXtzd2l0Y2godGhpcy50eXBlPXQseWllbGQqUyh0aGlzLnN0ZXAoKSksdCl7Y2FzZVxcXCJuZXdsaW5lXFxcIjp0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lJiZ0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCtlLmxlbmd0aCk7YnJlYWs7Y2FzZVxcXCJzcGFjZVxcXCI6dGhpcy5hdE5ld0xpbmUmJmVbMF09PT1cXFwiIFxcXCImJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6Y2FzZVxcXCJtYXAtdmFsdWUtaW5kXFxcIjpjYXNlXFxcInNlcS1pdGVtLWluZFxcXCI6dGhpcy5hdE5ld0xpbmUmJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2VcXFwiZG9jLW1vZGVcXFwiOmNhc2VcXFwiZmxvdy1lcnJvci1lbmRcXFwiOnJldHVybjtkZWZhdWx0OnRoaXMuYXROZXdMaW5lPSExfXRoaXMub2Zmc2V0Kz1lLmxlbmd0aH1lbHNle2xldCByPWBOb3QgYSBZQU1MIHRva2VuOiAke2V9YDt5aWVsZCpTKHRoaXMucG9wKHt0eXBlOlxcXCJlcnJvclxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6cixzb3VyY2U6ZX0pKSx0aGlzLm9mZnNldCs9ZS5sZW5ndGh9fSplbmQoKXtmb3IoO3RoaXMuc3RhY2subGVuZ3RoPjA7KXlpZWxkKlModGhpcy5wb3AoKSl9Z2V0IHNvdXJjZVRva2VuKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc291cmNlOnRoaXMuc291cmNlfX0qc3RlcCgpe2xldCBlPXRoaXMucGVlaygxKTtpZih0aGlzLnR5cGU9PT1cXFwiZG9jLWVuZFxcXCImJighZXx8ZS50eXBlIT09XFxcImRvYy1lbmRcXFwiKSl7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCpTKHRoaXMucG9wKCkpO3RoaXMuc3RhY2sucHVzaCh7dHlwZTpcXFwiZG9jLWVuZFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn1pZighZSlyZXR1cm4geWllbGQqUyh0aGlzLnN0cmVhbSgpKTtzd2l0Y2goZS50eXBlKXtjYXNlXFxcImRvY3VtZW50XFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLmRvY3VtZW50KGUpKTtjYXNlXFxcImFsaWFzXFxcIjpjYXNlXFxcInNjYWxhclxcXCI6Y2FzZVxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJkb3VibGUtcXVvdGVkLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5zY2FsYXIoZSkpO2Nhc2VcXFwiYmxvY2stc2NhbGFyXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLmJsb2NrU2NhbGFyKGUpKTtjYXNlXFxcImJsb2NrLW1hcFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5ibG9ja01hcChlKSk7Y2FzZVxcXCJibG9jay1zZXFcXFwiOnJldHVybiB5aWVsZCpTKHRoaXMuYmxvY2tTZXF1ZW5jZShlKSk7Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOnJldHVybiB5aWVsZCpTKHRoaXMuZmxvd0NvbGxlY3Rpb24oZSkpO2Nhc2VcXFwiZG9jLWVuZFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5kb2N1bWVudEVuZChlKSl9eWllbGQqUyh0aGlzLnBvcCgpKX1wZWVrKGUpe3JldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWVdfSpwb3AoZSl7bGV0IHQ9ZSE9bnVsbD9lOnRoaXMuc3RhY2sucG9wKCk7aWYoIXQpeWllbGR7dHlwZTpcXFwiZXJyb3JcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6XFxcIlxcXCIsbWVzc2FnZTpcXFwiVHJpZWQgdG8gcG9wIGFuIGVtcHR5IHN0YWNrXFxcIn07ZWxzZSBpZih0aGlzLnN0YWNrLmxlbmd0aD09PTApeWllbGQgdDtlbHNle2xldCByPXRoaXMucGVlaygxKTtzd2l0Y2godC50eXBlPT09XFxcImJsb2NrLXNjYWxhclxcXCI/dC5pbmRlbnQ9XFxcImluZGVudFxcXCJpbiByP3IuaW5kZW50OjA6dC50eXBlPT09XFxcImZsb3ctY29sbGVjdGlvblxcXCImJnIudHlwZT09PVxcXCJkb2N1bWVudFxcXCImJih0LmluZGVudD0wKSx0LnR5cGU9PT1cXFwiZmxvdy1jb2xsZWN0aW9uXFxcIiYmTHUodCksci50eXBlKXtjYXNlXFxcImRvY3VtZW50XFxcIjpyLnZhbHVlPXQ7YnJlYWs7Y2FzZVxcXCJibG9jay1zY2FsYXJcXFwiOnIucHJvcHMucHVzaCh0KTticmVhaztjYXNlXFxcImJsb2NrLW1hcFxcXCI6e2xldCBzPXIuaXRlbXNbci5pdGVtcy5sZW5ndGgtMV07aWYocy52YWx1ZSl7ci5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6dCxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMDtyZXR1cm59ZWxzZSBpZihzLnNlcClzLnZhbHVlPXQ7ZWxzZXtPYmplY3QuYXNzaWduKHMse2tleTp0LHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSFzLmV4cGxpY2l0S2V5O3JldHVybn1icmVha31jYXNlXFxcImJsb2NrLXNlcVxcXCI6e2xldCBzPXIuaXRlbXNbci5pdGVtcy5sZW5ndGgtMV07cy52YWx1ZT9yLml0ZW1zLnB1c2goe3N0YXJ0OltdLHZhbHVlOnR9KTpzLnZhbHVlPXQ7YnJlYWt9Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOntsZXQgcz1yLml0ZW1zW3IuaXRlbXMubGVuZ3RoLTFdOyFzfHxzLnZhbHVlP3IuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5OnQsc2VwOltdfSk6cy5zZXA/cy52YWx1ZT10Ok9iamVjdC5hc3NpZ24ocyx7a2V5OnQsc2VwOltdfSk7cmV0dXJufWRlZmF1bHQ6eWllbGQqUyh0aGlzLnBvcCgpKSx5aWVsZCpTKHRoaXMucG9wKHQpKX1pZigoci50eXBlPT09XFxcImRvY3VtZW50XFxcInx8ci50eXBlPT09XFxcImJsb2NrLW1hcFxcXCJ8fHIudHlwZT09PVxcXCJibG9jay1zZXFcXFwiKSYmKHQudHlwZT09PVxcXCJibG9jay1tYXBcXFwifHx0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIikpe2xldCBzPXQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV07cyYmIXMuc2VwJiYhcy52YWx1ZSYmcy5zdGFydC5sZW5ndGg+MCYmSXUocy5zdGFydCk9PT0tMSYmKHQuaW5kZW50PT09MHx8cy5zdGFydC5ldmVyeShpPT5pLnR5cGUhPT1cXFwiY29tbWVudFxcXCJ8fGkuaW5kZW50PHQuaW5kZW50KSkmJihyLnR5cGU9PT1cXFwiZG9jdW1lbnRcXFwiP3IuZW5kPXMuc3RhcnQ6ci5pdGVtcy5wdXNoKHtzdGFydDpzLnN0YXJ0fSksdC5pdGVtcy5zcGxpY2UoLTEsMSkpfX19KnN0cmVhbSgpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcXFwiZGlyZWN0aXZlLWxpbmVcXFwiOnlpZWxke3R5cGU6XFxcImRpcmVjdGl2ZVxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX07cmV0dXJuO2Nhc2VcXFwiYnl0ZS1vcmRlci1tYXJrXFxcIjpjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6eWllbGQgdGhpcy5zb3VyY2VUb2tlbjtyZXR1cm47Y2FzZVxcXCJkb2MtbW9kZVxcXCI6Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOntsZXQgZT17dHlwZTpcXFwiZG9jdW1lbnRcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxzdGFydDpbXX07dGhpcy50eXBlPT09XFxcImRvYy1zdGFydFxcXCImJmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKSx0aGlzLnN0YWNrLnB1c2goZSk7cmV0dXJufX15aWVsZHt0eXBlOlxcXCJlcnJvclxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgc3RyZWFtYCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpkb2N1bWVudChlKXtpZihlLnZhbHVlKXJldHVybiB5aWVsZCpTKHRoaXMubGluZUVuZChlKSk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOntJdShlLnN0YXJ0KSE9PS0xPyh5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpKTplLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWNhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59bGV0IHQ9dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7dD90aGlzLnN0YWNrLnB1c2godCk6eWllbGR7dHlwZTpcXFwiZXJyb3JcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOmBVbmV4cGVjdGVkICR7dGhpcy50eXBlfSB0b2tlbiBpbiBZQU1MIGRvY3VtZW50YCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpzY2FsYXIoZSl7aWYodGhpcy50eXBlPT09XFxcIm1hcC12YWx1ZS1pbmRcXFwiKXtsZXQgdD1Ccyh0aGlzLnBlZWsoMikpLHI9Tm4odCkscztlLmVuZD8ocz1lLmVuZCxzLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIGUuZW5kKTpzPVt0aGlzLnNvdXJjZVRva2VuXTtsZXQgaT17dHlwZTpcXFwiYmxvY2stbWFwXFxcIixvZmZzZXQ6ZS5vZmZzZXQsaW5kZW50OmUuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6cixrZXk6ZSxzZXA6c31dfTt0aGlzLm9uS2V5TGluZT0hMCx0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdPWl9ZWxzZSB5aWVsZCpTKHRoaXMubGluZUVuZChlKSl9KmJsb2NrU2NhbGFyKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcXFwic3BhY2VcXFwiOmNhc2VcXFwiY29tbWVudFxcXCI6Y2FzZVxcXCJuZXdsaW5lXFxcIjplLnByb3BzLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwic2NhbGFyXFxcIjppZihlLnNvdXJjZT10aGlzLnNvdXJjZSx0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGBcXG5gKSsxO2Zvcig7dCE9PTA7KXRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K3QpLHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgXFxuYCx0KSsxfXlpZWxkKlModGhpcy5wb3AoKSk7YnJlYWs7ZGVmYXVsdDp5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfX0qYmxvY2tNYXAoZSl7dmFyIHI7bGV0IHQ9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0xXTtzd2l0Y2godGhpcy50eXBlKXtjYXNlXFxcIm5ld2xpbmVcXFwiOmlmKHRoaXMub25LZXlMaW5lPSExLHQudmFsdWUpe2xldCBzPVxcXCJlbmRcXFwiaW4gdC52YWx1ZT90LnZhbHVlLmVuZDp2b2lkIDAsaT1BcnJheS5pc0FycmF5KHMpP3Nbcy5sZW5ndGgtMV06dm9pZCAwOyhpPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09XFxcImNvbW1lbnRcXFwiP3M9PW51bGx8fHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2UgdC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwic3BhY2VcXFwiOmNhc2VcXFwiY29tbWVudFxcXCI6aWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYodC5zZXApdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQodC5zdGFydCxlLmluZGVudCkpe2xldCBzPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0saT0ocj1zPT1udWxsP3ZvaWQgMDpzLnZhbHVlKT09bnVsbD92b2lkIDA6ci5lbmQ7aWYoQXJyYXkuaXNBcnJheShpKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaSx0LnN0YXJ0KSxpLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm59aWYodGhpcy5pbmRlbnQ+PWUuaW5kZW50KXtsZXQgcz0hdGhpcy5vbktleUxpbmUmJnRoaXMuaW5kZW50PT09ZS5pbmRlbnQsaT1zJiYodC5zZXB8fHQuZXhwbGljaXRLZXkpJiZ0aGlzLnR5cGUhPT1cXFwic2VxLWl0ZW0taW5kXFxcIixvPVtdO2lmKGkmJnQuc2VwJiYhdC52YWx1ZSl7bGV0IGE9W107Zm9yKGxldCB1PTA7dTx0LnNlcC5sZW5ndGg7Kyt1KXtsZXQgbD10LnNlcFt1XTtzd2l0Y2gobC50eXBlKXtjYXNlXFxcIm5ld2xpbmVcXFwiOmEucHVzaCh1KTticmVhaztjYXNlXFxcInNwYWNlXFxcIjpicmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOmwuaW5kZW50PmUuaW5kZW50JiYoYS5sZW5ndGg9MCk7YnJlYWs7ZGVmYXVsdDphLmxlbmd0aD0wfX1hLmxlbmd0aD49MiYmKG89dC5zZXAuc3BsaWNlKGFbMV0pKX1zd2l0Y2godGhpcy50eXBlKXtjYXNlXFxcImFuY2hvclxcXCI6Y2FzZVxcXCJ0YWdcXFwiOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om99KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6IXQuc2VwJiYhdC5leHBsaWNpdEtleT8odC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHQuZXhwbGljaXRLZXk9ITApOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om8sZXhwbGljaXRLZXk6ITB9KSk6dGhpcy5zdGFjay5wdXNoKHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl0sZXhwbGljaXRLZXk6ITB9XX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlXFxcIm1hcC12YWx1ZS1pbmRcXFwiOmlmKHQuZXhwbGljaXRLZXkpaWYodC5zZXApaWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNlIGlmKHp0KHQuc2VwLFxcXCJtYXAtdmFsdWUtaW5kXFxcIikpdGhpcy5zdGFjay5wdXNoKHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpvLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pO2Vsc2UgaWYoTnUodC5rZXkpJiYhenQodC5zZXAsXFxcIm5ld2xpbmVcXFwiKSl7bGV0IGE9Tm4odC5zdGFydCksdT10LmtleSxsPXQuc2VwO2wucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgdC5rZXksZGVsZXRlIHQuc2VwLHRoaXMuc3RhY2sucHVzaCh7dHlwZTpcXFwiYmxvY2stbWFwXFxcIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6YSxrZXk6dSxzZXA6bH1dfSl9ZWxzZSBvLmxlbmd0aD4wP3Quc2VwPXQuc2VwLmNvbmNhdChvLHRoaXMuc291cmNlVG9rZW4pOnQuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7ZWxzZSBpZih6dCh0LnN0YXJ0LFxcXCJuZXdsaW5lXFxcIikpT2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtsZXQgYT1Obih0LnN0YXJ0KTt0aGlzLnN0YWNrLnB1c2goe3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSl9ZWxzZSB0LnNlcD90LnZhbHVlfHxpP2UuaXRlbXMucHVzaCh7c3RhcnQ6byxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6enQodC5zZXAsXFxcIm1hcC12YWx1ZS1pbmRcXFwiKT90aGlzLnN0YWNrLnB1c2goe3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pOnQuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7dGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2VcXFwiYWxpYXNcXFwiOmNhc2VcXFwic2NhbGFyXFxcIjpjYXNlXFxcInNpbmdsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImRvdWJsZS1xdW90ZWQtc2NhbGFyXFxcIjp7bGV0IGE9dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7aXx8dC52YWx1ZT8oZS5pdGVtcy5wdXNoKHtzdGFydDpvLGtleTphLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTp0LnNlcD90aGlzLnN0YWNrLnB1c2goYSk6KE9iamVjdC5hc3NpZ24odCx7a2V5OmEsc2VwOltdfSksdGhpcy5vbktleUxpbmU9ITApO3JldHVybn1kZWZhdWx0OntsZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihhKXtzJiZhLnR5cGUhPT1cXFwiYmxvY2stc2VxXFxcIiYmZS5pdGVtcy5wdXNoKHtzdGFydDpvfSksdGhpcy5zdGFjay5wdXNoKGEpO3JldHVybn19fX15aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfSpibG9ja1NlcXVlbmNlKGUpe3ZhciByO2xldCB0PWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJuZXdsaW5lXFxcIjppZih0LnZhbHVlKXtsZXQgcz1cXFwiZW5kXFxcImluIHQudmFsdWU/dC52YWx1ZS5lbmQ6dm9pZCAwLGk9QXJyYXkuaXNBcnJheShzKT9zW3MubGVuZ3RoLTFdOnZvaWQgMDsoaT09bnVsbD92b2lkIDA6aS50eXBlKT09PVxcXCJjb21tZW50XFxcIj9zPT1udWxsfHxzLnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KX1lbHNlIHQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjppZih0LnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtpZih0aGlzLmF0SW5kZW50ZWRDb21tZW50KHQuc3RhcnQsZS5pbmRlbnQpKXtsZXQgcz1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTJdLGk9KHI9cz09bnVsbD92b2lkIDA6cy52YWx1ZSk9PW51bGw/dm9pZCAwOnIuZW5kO2lmKEFycmF5LmlzQXJyYXkoaSkpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGksdC5zdGFydCksaS5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucG9wKCk7cmV0dXJufX10LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbil9cmV0dXJuO2Nhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6aWYodC52YWx1ZXx8dGhpcy5pbmRlbnQ8PWUuaW5kZW50KWJyZWFrO3Quc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJzZXEtaXRlbS1pbmRcXFwiOmlmKHRoaXMuaW5kZW50IT09ZS5pbmRlbnQpYnJlYWs7dC52YWx1ZXx8enQodC5zdGFydCxcXFwic2VxLWl0ZW0taW5kXFxcIik/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWlmKHRoaXMuaW5kZW50PmUuaW5kZW50KXtsZXQgcz10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihzKXt0aGlzLnN0YWNrLnB1c2gocyk7cmV0dXJufX15aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfSpmbG93Q29sbGVjdGlvbihlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO2lmKHRoaXMudHlwZT09PVxcXCJmbG93LWVycm9yLWVuZFxcXCIpe2xldCByO2RvIHlpZWxkKlModGhpcy5wb3AoKSkscj10aGlzLnBlZWsoMSk7d2hpbGUociYmci50eXBlPT09XFxcImZsb3ctY29sbGVjdGlvblxcXCIpfWVsc2UgaWYoZS5lbmQubGVuZ3RoPT09MCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJleHBsaWNpdC1rZXktaW5kXFxcIjohdHx8dC5zZXA/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwibWFwLXZhbHVlLWluZFxcXCI6IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTpPYmplY3QuYXNzaWduKHQse2tleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtyZXR1cm47Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOmNhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnNlcD90LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOntsZXQgcz10aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTshdHx8dC52YWx1ZT9lLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpzLHNlcDpbXX0pOnQuc2VwP3RoaXMuc3RhY2sucHVzaChzKTpPYmplY3QuYXNzaWduKHQse2tleTpzLHNlcDpbXX0pO3JldHVybn1jYXNlXFxcImZsb3ctbWFwLWVuZFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1lbmRcXFwiOmUuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCByPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO3I/dGhpcy5zdGFjay5wdXNoKHIpOih5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpKX1lbHNle2xldCByPXRoaXMucGVlaygyKTtpZihyLnR5cGU9PT1cXFwiYmxvY2stbWFwXFxcIiYmKHRoaXMudHlwZT09PVxcXCJtYXAtdmFsdWUtaW5kXFxcIiYmci5pbmRlbnQ9PT1lLmluZGVudHx8dGhpcy50eXBlPT09XFxcIm5ld2xpbmVcXFwiJiYhci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXS5zZXApKXlpZWxkKlModGhpcy5wb3AoKSkseWllbGQqUyh0aGlzLnN0ZXAoKSk7ZWxzZSBpZih0aGlzLnR5cGU9PT1cXFwibWFwLXZhbHVlLWluZFxcXCImJnIudHlwZSE9PVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiKXtsZXQgcz1CcyhyKSxpPU5uKHMpO0x1KGUpO2xldCBvPWUuZW5kLnNwbGljZSgxLGUuZW5kLmxlbmd0aCk7by5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2xldCBhPXt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDppLGtleTplLHNlcDpvfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09YX1lbHNlIHlpZWxkKlModGhpcy5saW5lRW5kKGUpKX19Zmxvd1NjYWxhcihlKXtpZih0aGlzLm9uTmV3TGluZSl7bGV0IHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgXFxuYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYFxcbmAsdCkrMX1yZXR1cm57dHlwZTplLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc291cmNlOnRoaXMuc291cmNlfX1zdGFydEJsb2NrVmFsdWUoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOnJldHVybiB0aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTtjYXNlXFxcImJsb2NrLXNjYWxhci1oZWFkZXJcXFwiOnJldHVybnt0eXBlOlxcXCJibG9jay1zY2FsYXJcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQscHJvcHM6W3RoaXMuc291cmNlVG9rZW5dLHNvdXJjZTpcXFwiXFxcIn07Y2FzZVxcXCJmbG93LW1hcC1zdGFydFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1zdGFydFxcXCI6cmV0dXJue3R5cGU6XFxcImZsb3ctY29sbGVjdGlvblxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzdGFydDp0aGlzLnNvdXJjZVRva2VuLGl0ZW1zOltdLGVuZDpbXX07Y2FzZVxcXCJzZXEtaXRlbS1pbmRcXFwiOnJldHVybnt0eXBlOlxcXCJibG9jay1zZXFcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19XX07Y2FzZVxcXCJleHBsaWNpdC1rZXktaW5kXFxcIjp7dGhpcy5vbktleUxpbmU9ITA7bGV0IHQ9QnMoZSkscj1Obih0KTtyZXR1cm4gci5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpyLGV4cGxpY2l0S2V5OiEwfV19fWNhc2VcXFwibWFwLXZhbHVlLWluZFxcXCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCB0PUJzKGUpLHI9Tm4odCk7cmV0dXJue3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OnIsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfX19cmV0dXJuIG51bGx9YXRJbmRlbnRlZENvbW1lbnQoZSx0KXtyZXR1cm4gdGhpcy50eXBlIT09XFxcImNvbW1lbnRcXFwifHx0aGlzLmluZGVudDw9dD8hMTplLmV2ZXJ5KHI9PnIudHlwZT09PVxcXCJuZXdsaW5lXFxcInx8ci50eXBlPT09XFxcInNwYWNlXFxcIil9KmRvY3VtZW50RW5kKGUpe3RoaXMudHlwZSE9PVxcXCJkb2MtbW9kZVxcXCImJihlLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT1cXFwibmV3bGluZVxcXCImJih5aWVsZCpTKHRoaXMucG9wKCkpKSl9KmxpbmVFbmQoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOmNhc2VcXFwiZG9jLWVuZFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1lbmRcXFwiOmNhc2VcXFwiZmxvdy1tYXAtZW5kXFxcIjpjYXNlXFxcIm1hcC12YWx1ZS1pbmRcXFwiOnlpZWxkKlModGhpcy5wb3AoKSkseWllbGQqUyh0aGlzLnN0ZXAoKSk7YnJlYWs7Y2FzZVxcXCJuZXdsaW5lXFxcIjp0aGlzLm9uS2V5TGluZT0hMTtjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmRlZmF1bHQ6ZS5lbmQ/ZS5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLmVuZD1bdGhpcy5zb3VyY2VUb2tlbl0sdGhpcy50eXBlPT09XFxcIm5ld2xpbmVcXFwiJiYoeWllbGQqUyh0aGlzLnBvcCgpKSl9fX07ZnVuY3Rpb24gd2Yobil7bGV0IGU9bi5wcmV0dHlFcnJvcnMhPT0hMTtyZXR1cm57bGluZUNvdW50ZXI6bi5saW5lQ291bnRlcnx8ZSYmbmV3IE5yfHxudWxsLHByZXR0eUVycm9yczplfX1mdW5jdGlvbiBBdShuLGU9e30pe2xldHtsaW5lQ291bnRlcjp0LHByZXR0eUVycm9yczpyfT13ZihlKSxzPW5ldyBBcih0PT1udWxsP3ZvaWQgMDp0LmFkZE5ld0xpbmUpLGk9bmV3IElyKGUpLG89bnVsbDtmb3IobGV0IGEgb2YgaS5jb21wb3NlKHMucGFyc2UobiksITAsbi5sZW5ndGgpKWlmKCFvKW89YTtlbHNlIGlmKG8ub3B0aW9ucy5sb2dMZXZlbCE9PVxcXCJzaWxlbnRcXFwiKXtvLmVycm9ycy5wdXNoKG5ldyBRZShhLnJhbmdlLnNsaWNlKDAsMiksXFxcIk1VTFRJUExFX0RPQ1NcXFwiLFxcXCJTb3VyY2UgY29udGFpbnMgbXVsdGlwbGUgZG9jdW1lbnRzOyBwbGVhc2UgdXNlIFlBTUwucGFyc2VBbGxEb2N1bWVudHMoKVxcXCIpKTticmVha31yZXR1cm4gciYmdCYmKG8uZXJyb3JzLmZvckVhY2goWmkobix0KSksby53YXJuaW5ncy5mb3JFYWNoKFppKG4sdCkpKSxvfWZ1bmN0aW9uIGNvKG4sZSx0KXtsZXQgcjt0eXBlb2YgZT09XFxcImZ1bmN0aW9uXFxcIj9yPWU6dD09PXZvaWQgMCYmZSYmdHlwZW9mIGU9PVxcXCJvYmplY3RcXFwiJiYodD1lKTtsZXQgcz1BdShuLHQpO2lmKCFzKXJldHVybiBudWxsO2lmKHMud2FybmluZ3MuZm9yRWFjaChpPT5tcyhzLm9wdGlvbnMubG9nTGV2ZWwsaSkpLHMuZXJyb3JzLmxlbmd0aD4wKXtpZihzLm9wdGlvbnMubG9nTGV2ZWwhPT1cXFwic2lsZW50XFxcIil0aHJvdyBzLmVycm9yc1swXTtzLmVycm9ycz1bXX1yZXR1cm4gcy50b0pTKE9iamVjdC5hc3NpZ24oe3Jldml2ZXI6cn0sdCkpfXZhciBqcz1WcihSdSgpKTt2YXIgRj1WcihucygpKTt2YXIgZXQ7KE49PntOLkRFRkFVTFRfVE9fU1RSSU5HPXtudWxsUmVwcmVzZW50YXRpb246XFxcIi1cXFwiLGRhdGVGb3JtYXQ6XFxcIk1NTU0gZGQsIHl5eXlcXFwiLGRhdGVUaW1lRm9ybWF0OlxcXCJoOm1tIGEgLSBNTU1NIGRkLCB5eXl5XFxcIn07ZnVuY3Rpb24gZSh5LHc9Ti5ERUZBVUxUX1RPX1NUUklORyx2PSExKXtsZXQgeD10KHkpO2lmKCF4KXJldHVybiB3Lm51bGxSZXByZXNlbnRhdGlvbjtzd2l0Y2goeC50eXBlKXtjYXNlXFxcIm51bGxcXFwiOnJldHVybiB3Lm51bGxSZXByZXNlbnRhdGlvbjtjYXNlXFxcInN0cmluZ1xcXCI6cmV0dXJuIHgudmFsdWU7Y2FzZVxcXCJudW1iZXJcXFwiOmNhc2VcXFwiYm9vbGVhblxcXCI6cmV0dXJuXFxcIlxcXCIreC52YWx1ZTtjYXNlXFxcImxpbmtcXFwiOnJldHVybiB4LnZhbHVlLm1hcmtkb3duKCk7Y2FzZVxcXCJmdW5jdGlvblxcXCI6cmV0dXJuXFxcIjxmdW5jdGlvbj5cXFwiO2Nhc2VcXFwiYXJyYXlcXFwiOmxldCBDPVxcXCJcXFwiO3JldHVybiB2JiYoQys9XFxcIltcXFwiKSxDKz14LnZhbHVlLm1hcChWPT5lKFYsdywhMCkpLmpvaW4oXFxcIiwgXFxcIiksdiYmKEMrPVxcXCJdXFxcIiksQztjYXNlXFxcIm9iamVjdFxcXCI6cmV0dXJuXFxcInsgXFxcIitPYmplY3QuZW50cmllcyh4LnZhbHVlKS5tYXAoVj0+VlswXStcXFwiOiBcXFwiK2UoVlsxXSx3LCEwKSkuam9pbihcXFwiLCBcXFwiKStcXFwiIH1cXFwiO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIGphKHgudmFsdWUsdy5kYXRlRm9ybWF0LHcuZGF0ZVRpbWVGb3JtYXQpO2Nhc2VcXFwiZHVyYXRpb25cXFwiOnJldHVybiBxYSh4LnZhbHVlKX19Ti50b1N0cmluZz1lO2Z1bmN0aW9uIHQoeSl7cmV0dXJuIGgoeSk/e3R5cGU6XFxcIm51bGxcXFwiLHZhbHVlOnl9OmYoeSk/e3R5cGU6XFxcIm51bWJlclxcXCIsdmFsdWU6eX06bCh5KT97dHlwZTpcXFwic3RyaW5nXFxcIix2YWx1ZTp5fTpnKHkpP3t0eXBlOlxcXCJib29sZWFuXFxcIix2YWx1ZTp5fTptKHkpP3t0eXBlOlxcXCJkdXJhdGlvblxcXCIsdmFsdWU6eX06ZCh5KT97dHlwZTpcXFwiZGF0ZVxcXCIsdmFsdWU6eX06Yih5KT97dHlwZTpcXFwiYXJyYXlcXFwiLHZhbHVlOnl9OkQoeSk/e3R5cGU6XFxcImxpbmtcXFwiLHZhbHVlOnl9OkkoeSk/e3R5cGU6XFxcImZ1bmN0aW9uXFxcIix2YWx1ZTp5fTpUKHkpP3t0eXBlOlxcXCJvYmplY3RcXFwiLHZhbHVlOnl9OnZvaWQgMH1OLndyYXBWYWx1ZT10O2Z1bmN0aW9uIHIoeSx3KXtpZihUKHkpKXtsZXQgdj17fTtmb3IobGV0W3gsQ11vZiBPYmplY3QuZW50cmllcyh5KSl2W3hdPXIoQyx3KTtyZXR1cm4gdn1lbHNlIGlmKGIoeSkpe2xldCB2PVtdO2ZvcihsZXQgeCBvZiB5KXYucHVzaChyKHgsdykpO3JldHVybiB2fWVsc2UgcmV0dXJuIHcoeSl9Ti5tYXBMZWF2ZXM9cjtmdW5jdGlvbiBzKHksdyl7cmV0dXJuIGkoeSx3KT09MH1OLmVxdWFscz1zO2Z1bmN0aW9uIGkoeSx3LHYpe3ZhciBWLGo7aWYoeT09PXd8fCh5PT09dm9pZCAwJiYoeT1udWxsKSx3PT09dm9pZCAwJiYodz1udWxsKSx5PT09bnVsbCYmdz09PW51bGwpKXJldHVybiAwO2lmKHk9PT1udWxsKXJldHVybi0xO2lmKHc9PT1udWxsKXJldHVybiAxO2xldCB4PXQoeSksQz10KHcpO2lmKHg9PT12b2lkIDAmJkM9PT12b2lkIDApcmV0dXJuIDA7aWYoeD09PXZvaWQgMClyZXR1cm4tMTtpZihDPT09dm9pZCAwKXJldHVybiAxO2lmKHgudHlwZSE9Qy50eXBlKXJldHVybiB4LnR5cGUubG9jYWxlQ29tcGFyZShDLnR5cGUpO2lmKHgudmFsdWU9PT1DLnZhbHVlKXJldHVybiAwO3N3aXRjaCh4LnR5cGUpe2Nhc2VcXFwic3RyaW5nXFxcIjpyZXR1cm4geC52YWx1ZS5sb2NhbGVDb21wYXJlKEMudmFsdWUpO2Nhc2VcXFwibnVtYmVyXFxcIjpyZXR1cm4geC52YWx1ZTxDLnZhbHVlPy0xOngudmFsdWU9PUMudmFsdWU/MDoxO2Nhc2VcXFwibnVsbFxcXCI6cmV0dXJuIDA7Y2FzZVxcXCJib29sZWFuXFxcIjpyZXR1cm4geC52YWx1ZT09Qy52YWx1ZT8wOngudmFsdWU/MTotMTtjYXNlXFxcImxpbmtcXFwiOmxldCBZPXgudmFsdWUsZWU9Qy52YWx1ZSxhZT12IT1udWxsP3Y6QWU9PkFlLE89YWUoWS5wYXRoKS5sb2NhbGVDb21wYXJlKGFlKGVlLnBhdGgpKTtpZihPIT0wKXJldHVybiBPO2xldCAkPVkudHlwZS5sb2NhbGVDb21wYXJlKGVlLnR5cGUpO3JldHVybiAkIT0wPyQ6WS5zdWJwYXRoJiYhZWUuc3VicGF0aD8xOiFZLnN1YnBhdGgmJmVlLnN1YnBhdGg/LTE6IVkuc3VicGF0aCYmIWVlLnN1YnBhdGg/MDooKFY9WS5zdWJwYXRoKSE9bnVsbD9WOlxcXCJcXFwiKS5sb2NhbGVDb21wYXJlKChqPWVlLnN1YnBhdGgpIT1udWxsP2o6XFxcIlxcXCIpO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIHgudmFsdWU8Qy52YWx1ZT8tMTp4LnZhbHVlLmVxdWFscyhDLnZhbHVlKT8wOjE7Y2FzZVxcXCJkdXJhdGlvblxcXCI6cmV0dXJuIHgudmFsdWU8Qy52YWx1ZT8tMTp4LnZhbHVlLmVxdWFscyhDLnZhbHVlKT8wOjE7Y2FzZVxcXCJhcnJheVxcXCI6bGV0IFE9eC52YWx1ZSx1ZT1DLnZhbHVlO2ZvcihsZXQgQWU9MDtBZTxNYXRoLm1pbihRLmxlbmd0aCx1ZS5sZW5ndGgpO0FlKyspe2xldCBCdD1pKFFbQWVdLHVlW0FlXSk7aWYoQnQhPTApcmV0dXJuIEJ0fXJldHVybiBRLmxlbmd0aC11ZS5sZW5ndGg7Y2FzZVxcXCJvYmplY3RcXFwiOmxldCBEZT14LnZhbHVlLFJlPUMudmFsdWUsUXQ9QXJyYXkuZnJvbShPYmplY3Qua2V5cyhEZSkpLE10PUFycmF5LmZyb20oT2JqZWN0LmtleXMoUmUpKTtRdC5zb3J0KCksTXQuc29ydCgpO2xldCBfdD1pKFF0LE10KTtpZihfdCE9MClyZXR1cm4gX3Q7Zm9yKGxldCBBZSBvZiBRdCl7bGV0IEJ0PWkoRGVbQWVdLFJlW0FlXSk7aWYoQnQhPTApcmV0dXJuIEJ0fXJldHVybiAwO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybiAwfX1OLmNvbXBhcmU9aTtmdW5jdGlvbiBvKHkpe3ZhciB3O3JldHVybih3PXQoeSkpPT1udWxsP3ZvaWQgMDp3LnR5cGV9Ti50eXBlT2Y9bztmdW5jdGlvbiBhKHkpe2xldCB3PXQoeSk7aWYoIXcpcmV0dXJuITE7c3dpdGNoKHcudHlwZSl7Y2FzZVxcXCJudW1iZXJcXFwiOnJldHVybiB3LnZhbHVlIT0wO2Nhc2VcXFwic3RyaW5nXFxcIjpyZXR1cm4gdy52YWx1ZS5sZW5ndGg+MDtjYXNlXFxcImJvb2xlYW5cXFwiOnJldHVybiB3LnZhbHVlO2Nhc2VcXFwibGlua1xcXCI6cmV0dXJuISF3LnZhbHVlLnBhdGg7Y2FzZVxcXCJkYXRlXFxcIjpyZXR1cm4gdy52YWx1ZS50b01pbGxpcygpIT0wO2Nhc2VcXFwiZHVyYXRpb25cXFwiOnJldHVybiB3LnZhbHVlLmFzKFxcXCJzZWNvbmRzXFxcIikhPTA7Y2FzZVxcXCJvYmplY3RcXFwiOnJldHVybiBPYmplY3Qua2V5cyh3LnZhbHVlKS5sZW5ndGg+MDtjYXNlXFxcImFycmF5XFxcIjpyZXR1cm4gdy52YWx1ZS5sZW5ndGg+MDtjYXNlXFxcIm51bGxcXFwiOnJldHVybiExO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybiEwfX1OLmlzVHJ1dGh5PWE7ZnVuY3Rpb24gdSh5KXtpZih5PT1udWxsKXJldHVybiB5O2lmKE4uaXNBcnJheSh5KSlyZXR1cm5bXS5jb25jYXQoeS5tYXAodz0+dSh3KSkpO2lmKE4uaXNPYmplY3QoeSkpe2xldCB3PXt9O2ZvcihsZXRbdix4XW9mIE9iamVjdC5lbnRyaWVzKHkpKXdbdl09dSh4KTtyZXR1cm4gd31lbHNlIHJldHVybiB5fU4uZGVlcENvcHk9dTtmdW5jdGlvbiBsKHkpe3JldHVybiB0eXBlb2YgeT09XFxcInN0cmluZ1xcXCJ9Ti5pc1N0cmluZz1sO2Z1bmN0aW9uIGYoeSl7cmV0dXJuIHR5cGVvZiB5PT1cXFwibnVtYmVyXFxcIn1OLmlzTnVtYmVyPWY7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geSBpbnN0YW5jZW9mIHF9Ti5pc0RhdGU9ZDtmdW5jdGlvbiBtKHkpe3JldHVybiB5IGluc3RhbmNlb2YgQn1OLmlzRHVyYXRpb249bTtmdW5jdGlvbiBoKHkpe3JldHVybiB5PT1udWxsfU4uaXNOdWxsPWg7ZnVuY3Rpb24gYih5KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh5KX1OLmlzQXJyYXk9YjtmdW5jdGlvbiBnKHkpe3JldHVybiB0eXBlb2YgeT09XFxcImJvb2xlYW5cXFwifU4uaXNCb29sZWFuPWc7ZnVuY3Rpb24gRCh5KXtyZXR1cm4geSBpbnN0YW5jZW9mIE9lfU4uaXNMaW5rPUQ7ZnVuY3Rpb24gVCh5KXtyZXR1cm4geSE9PXZvaWQgMCYmdHlwZW9mIHk9PVxcXCJvYmplY3RcXFwiJiYhYih5KSYmIW0oeSkmJiFkKHkpJiYhRCh5KSYmIWgoeSl9Ti5pc09iamVjdD1UO2Z1bmN0aW9uIEkoeSl7cmV0dXJuIHR5cGVvZiB5PT1cXFwiZnVuY3Rpb25cXFwifU4uaXNGdW5jdGlvbj1JfSkoZXR8fChldD17fSkpO3ZhciBqdTsoaT0+e2Z1bmN0aW9uIG4obyl7cmV0dXJuIGV0LmlzT2JqZWN0KG8pJiZPYmplY3Qua2V5cyhvKS5sZW5ndGg9PTImJlxcXCJrZXlcXFwiaW4gbyYmXFxcInJvd3NcXFwiaW4gb31pLmlzRWxlbWVudEdyb3VwPW47ZnVuY3Rpb24gZShvKXtmb3IobGV0IGEgb2YgbylpZighbihhKSlyZXR1cm4hMTtyZXR1cm4hMH1pLmlzR3JvdXBpbmc9ZTtmdW5jdGlvbiB0KG8pe2ZvcihsZXQgYSBvZiBvKWlmKG4oYSkpcmV0dXJuITE7cmV0dXJuITB9aS5pc0xlYWY9dDtmdW5jdGlvbiByKG8pe2lmKG4obykpcmV0dXJuIHIoby5yb3dzKTtpZihlKG8pKXtsZXQgYT0wO2ZvcihsZXQgdSBvZiBvKWErPXIodS5yb3dzKTtyZXR1cm4gYX1lbHNlIHJldHVybiBvLmxlbmd0aH1pLmNvdW50PXI7ZnVuY3Rpb24gcyhvLGEsdSl7aWYodTw9YSlyZXR1cm5bXTtpZih0KG8pKXJldHVybiBvLnNsaWNlKGEsdSk7bGV0IGw9MCxmPTA7Zm9yKDtsPG8ubGVuZ3RoJiZmK3Iob1tsXSk8PWE7KWYrPXIob1tsXSksbCsrO2lmKGw+PW8ubGVuZ3RoKXJldHVybltdO2xldCBkPVtdO2Zvcig7bDxvLmxlbmd0aCYmZjx1Oyl7bGV0IG09b1tsXSxoPXIobSksYj1NYXRoLm1heChmLGEpLGc9TWF0aC5taW4oaCtmLHUpO2QucHVzaCh7a2V5Om0ua2V5LHJvd3M6cyhtLnJvd3MsYi1mLGctZil9KSxmKz1oLGwrK31yZXR1cm4gZH1pLnNsaWNlPXN9KShqdXx8KGp1PXt9KSk7dmFyIGhvPWNsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy52YWx1ZT1lO3RoaXMuc3VjY2Vzc2Z1bD0hMH1tYXAoZSl7cmV0dXJuIG5ldyBuKGUodGhpcy52YWx1ZSkpfWZsYXRNYXAoZSl7cmV0dXJuIGUodGhpcy52YWx1ZSl9bWFwRXJyKGUpe3JldHVybiB0aGlzfWJpbWFwKGUsdCl7cmV0dXJuIHRoaXMubWFwKGUpfW9yRWxzZShlKXtyZXR1cm4gdGhpcy52YWx1ZX1jYXN0KCl7cmV0dXJuIHRoaXN9b3JFbHNlVGhyb3coZSl7cmV0dXJuIHRoaXMudmFsdWV9fSxtbz1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZXJyb3I9ZTt0aGlzLnN1Y2Nlc3NmdWw9ITF9bWFwKGUpe3JldHVybiB0aGlzfWZsYXRNYXAoZSl7cmV0dXJuIHRoaXN9bWFwRXJyKGUpe3JldHVybiBuZXcgbihlKHRoaXMuZXJyb3IpKX1iaW1hcChlLHQpe3JldHVybiB0aGlzLm1hcEVycih0KX1vckVsc2UoZSl7cmV0dXJuIGV9Y2FzdCgpe3JldHVybiB0aGlzfW9yRWxzZVRocm93KGUpe3Rocm93IGU/bmV3IEVycm9yKGUodGhpcy5lcnJvcikpOm5ldyBFcnJvcihcXFwiXFxcIit0aGlzLmVycm9yKX19LFNlOyhhPT57ZnVuY3Rpb24gbih1KXtyZXR1cm4gbmV3IGhvKHUpfWEuc3VjY2Vzcz1uO2Z1bmN0aW9uIGUodSl7cmV0dXJuIG5ldyBtbyh1KX1hLmZhaWx1cmU9ZTtmdW5jdGlvbiB0KHUsbCxmKXtyZXR1cm4gdS5zdWNjZXNzZnVsP2wuc3VjY2Vzc2Z1bD9mKHUudmFsdWUsbC52YWx1ZSk6ZShsLmVycm9yKTplKHUuZXJyb3IpfWEuZmxhdE1hcDI9dDtmdW5jdGlvbiByKHUsbCxmKXtyZXR1cm4gdCh1LGwsKGQsbSk9Pm4oZihkLG0pKSl9YS5tYXAyPXI7ZnVuY3Rpb24gcyh1LGwpe2xldCBmPVtdO2ZvcihsZXQgZCBvZiB1KXtsZXQgbT1sKGQpO2lmKCFtLnN1Y2Nlc3NmdWwpcmV0dXJuIG0uY2FzdCgpO2YucHVzaChtLnZhbHVlKX1yZXR1cm4gYS5zdWNjZXNzKGYpfWEubWFwQWxsPXM7ZnVuY3Rpb24gaSh1KXt0cnl7cmV0dXJuIGEuc3VjY2Vzcyh1KCkpfWNhdGNoKGwpe3JldHVybiBhLmZhaWx1cmUobCl9fWEudHJ5aW5nPWk7YXN5bmMgZnVuY3Rpb24gbyh1KXt0cnl7cmV0dXJuIGEuc3VjY2Vzcyhhd2FpdCB1KX1jYXRjaChsKXtyZXR1cm4gYS5mYWlsdXJlKGwpfX1hLmFzeW5jPW99KShTZXx8KFNlPXt9KSk7dmFyIFl0OyhOPT57Ti5FVkVSWVRISU5HPXt0eXBlOlxcXCJldmVyeXRoaW5nXFxcIn0sTi5OT1RISU5HPXt0eXBlOlxcXCJub3RoaW5nXFxcIn0sTi5FTVBUWV9TRVQ9bmV3IFNldDtmdW5jdGlvbiByKHkpe3JldHVybiB5LnNpemU9PTA/Ti5OT1RISU5HOnt0eXBlOlxcXCJhdG9tXFxcIix2YWx1ZTp5fX1OLmF0b209cjtmdW5jdGlvbiBzKHkpe3JldHVybiB5P04uRVZFUllUSElORzpOLk5PVEhJTkd9Ti5jb25zdGFudD1zO2Z1bmN0aW9uIGkoeSl7cmV0dXJuIHkhPT12b2lkIDA/cih5KTpOLk5PVEhJTkd9Ti5udWxsYWJsZUF0b209aTtmdW5jdGlvbiBvKHkpe3JldHVybiB5LnNpemU9PTA/Ti5FVkVSWVRISU5HOnt0eXBlOlxcXCJuZWdhdGVkXFxcIix2YWx1ZTp5fX1OLm5lZ2F0ZWQ9bztmdW5jdGlvbiBhKHkpe3N3aXRjaCh5LnR5cGUpe2Nhc2VcXFwiZXZlcnl0aGluZ1xcXCI6cmV0dXJuIE4uTk9USElORztjYXNlXFxcIm5vdGhpbmdcXFwiOnJldHVybiBOLkVWRVJZVEhJTkc7Y2FzZVxcXCJhdG9tXFxcIjpyZXR1cm4gbyh5LnZhbHVlKTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiByKHkudmFsdWUpfX1OLm5lZ2F0ZT1hO2Z1bmN0aW9uIHUoeSl7c3dpdGNoKHkudHlwZSl7Y2FzZVxcXCJldmVyeXRoaW5nXFxcIjpyZXR1cm4hMTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiExO2Nhc2VcXFwiYXRvbVxcXCI6cmV0dXJuIHkudmFsdWUuc2l6ZT09MDtjYXNlXFxcIm5vdGhpbmdcXFwiOnJldHVybiEwfX1OLmVtcHR5PXU7ZnVuY3Rpb24gbCh5LHcpe3N3aXRjaCh5LnR5cGUpe2Nhc2VcXFwiZXZlcnl0aGluZ1xcXCI6cmV0dXJuIHc7Y2FzZVxcXCJub3RoaW5nXFxcIjpyZXR1cm4gTi5FTVBUWV9TRVQ7Y2FzZVxcXCJhdG9tXFxcIjpyZXR1cm4geS52YWx1ZTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiBJKHcseS52YWx1ZSl9fU4ucmVzb2x2ZT1sO2Z1bmN0aW9uIGYoeSl7cmV0dXJuIGQoeSx3PT53KX1OLmludGVyc2VjdD1mO2Z1bmN0aW9uIGQoeSx3KXtyZXR1cm4gbSh5LHY9PlNlLnN1Y2Nlc3Modyh2KSkpLm9yRWxzZVRocm93KCl9Ti5sYXp5SW50ZXJzZWN0PWQ7ZnVuY3Rpb24gbSh5LHcpe2xldCB2PVtdLHg9W107Zm9yKGxldCBDIG9mIHkpe2xldCBWPXcoQyk7aWYoIVYuc3VjY2Vzc2Z1bClyZXR1cm4gVi5jYXN0KCk7bGV0IGo9Vi52YWx1ZTtpZihqIT09dm9pZCAwKXtpZih1KGopKXJldHVybiBTZS5zdWNjZXNzKE4uTk9USElORyk7ai50eXBlIT09XFxcImV2ZXJ5dGhpbmdcXFwiJiYoai50eXBlPT1cXFwiYXRvbVxcXCI/di5wdXNoKGoudmFsdWUpOmoudHlwZT09XFxcIm5lZ2F0ZWRcXFwiJiZ4LnB1c2goai52YWx1ZSkpfX1yZXR1cm4gdi5sZW5ndGg9PTAmJngubGVuZ3RoPT0wP1NlLnN1Y2Nlc3MoTi5FVkVSWVRISU5HKTp2Lmxlbmd0aD4wJiZ4Lmxlbmd0aD09MD9TZS5zdWNjZXNzKHIoRCh2KSkpOnYubGVuZ3RoPT0wJiZ4Lmxlbmd0aD4wP1NlLnN1Y2Nlc3MobyhUKHgpKSk6U2Uuc3VjY2VzcyhOLmF0b20oSShEKHYpLFQoeCkpKSl9Ti5sYXp5RmFpbGFibGVJbnRlcnNlY3Rpb249bTtmdW5jdGlvbiBoKHkpe3JldHVybiBiKHksdz0+dyl9Ti51bmlvbj1oO2Z1bmN0aW9uIGIoeSx3KXtyZXR1cm4gZyh5LHY9PlNlLnN1Y2Nlc3Modyh2KSkpLm9yRWxzZVRocm93KCl9Ti5sYXp5VW5pb249YjtmdW5jdGlvbiBnKHksdyl7bGV0IHY9W10seD1bXTtmb3IobGV0IEMgb2YgeSl7bGV0IFY9dyhDKTtpZighVi5zdWNjZXNzZnVsKXJldHVybiBWLmNhc3QoKTtsZXQgaj1WLnZhbHVlO2lmKGohPT12b2lkIDApe2lmKGoudHlwZT09PVxcXCJldmVyeXRoaW5nXFxcIilyZXR1cm4gU2Uuc3VjY2VzcyhOLkVWRVJZVEhJTkcpO3Uoail8fChqLnR5cGU9PVxcXCJhdG9tXFxcIj92LnB1c2goai52YWx1ZSk6ai50eXBlPT1cXFwibmVnYXRlZFxcXCImJngucHVzaChqLnZhbHVlKSl9fXJldHVybiB2Lmxlbmd0aD09MCYmeC5sZW5ndGg9PTA/U2Uuc3VjY2VzcyhOLk5PVEhJTkcpOnYubGVuZ3RoPjAmJngubGVuZ3RoPT0wP1NlLnN1Y2Nlc3MoTi5hdG9tKFQodikpKTp2Lmxlbmd0aD09MCYmeC5sZW5ndGg+MD9TZS5zdWNjZXNzKE4ubmVnYXRlZChEKHgpKSk6U2Uuc3VjY2VzcyhvKEkoRCh4KSxUKHYpKSkpfU4ubGF6eUZhaWxhYmxlVW5pb249ZztmdW5jdGlvbiBEKHkpe2lmKHkubGVuZ3RoPT0wKXJldHVybiBuZXcgU2V0O2lmKHkubGVuZ3RoPT0xKXJldHVybiB5WzBdO2xldCB3PVtdLmNvbmNhdCh5KS5zb3J0KCh2LHgpPT52LnNpemUteC5zaXplKTtmb3IoO3cubGVuZ3RoPjE7KXtsZXQgdj1uZXcgU2V0LHg9dy5wb3AoKTtmb3IobGV0IEMgb2Ygd1swXSl4LmhhcyhDKSYmdi5hZGQoQyk7d1swXT12fXJldHVybiB3WzBdfU4uc2V0SW50ZXJzZWN0PUQ7ZnVuY3Rpb24gVCh5KXtpZih5Lmxlbmd0aD09MClyZXR1cm4gbmV3IFNldDtpZih5Lmxlbmd0aD09MSlyZXR1cm4geVswXTtsZXQgdz1uZXcgU2V0O2ZvcihsZXQgdiBvZiB5KWZvcihsZXQgeCBvZiB2KXcuYWRkKHgpO3JldHVybiB3fU4uc2V0VW5pb249VDtmdW5jdGlvbiBJKHksdyl7aWYoeS5zaXplPncuc2l6ZSl7bGV0IHY9bmV3IFNldCh5KTtmb3IobGV0IHggb2Ygdyl2LmRlbGV0ZSh4KTtyZXR1cm4gdn1lbHNle2xldCB2PW5ldyBTZXQ7Zm9yKGxldCB4IG9mIHkpdy5oYXMoeCl8fHYuYWRkKHgpO3JldHVybiB2fX1OLnNldEludGVyc2VjdE5lZ2F0aW9uPUl9KShZdHx8KFl0PXt9KSk7dmFyIHNlOyhnPT57Zy5ST1c9XFxcIiRyb3dcXFwiO2Z1bmN0aW9uIGUoRCl7cmV0dXJue3R5cGU6XFxcInZhcmlhYmxlXFxcIixuYW1lOkR9fWcudmFyaWFibGU9ZTtmdW5jdGlvbiB0KEQpe3JldHVybnt0eXBlOlxcXCJsaXRlcmFsXFxcIix2YWx1ZTpEfX1nLmxpdGVyYWw9dDtmdW5jdGlvbiByKEQsVCxJKXtyZXR1cm57dHlwZTpcXFwiYmluYXJ5b3BcXFwiLGxlZnQ6RCxvcDpULHJpZ2h0Okl9fWcuYmluYXJ5T3A9cjtmdW5jdGlvbiBzKEQsVCl7cmV0dXJue3R5cGU6XFxcImJpbmFyeW9wXFxcIixsZWZ0OkQscmlnaHQ6VCxvcDpcXFwiaW5kZXhcXFwifX1nLmluZGV4PXM7ZnVuY3Rpb24gaShEKXtsZXQgVD1ELnNwbGl0KFxcXCIuXFxcIiksST1nLnZhcmlhYmxlKFRbMF0pO2ZvcihsZXQgTj0xO048VC5sZW5ndGg7TisrKUk9Zy5pbmRleChJLGcubGl0ZXJhbChUW05dKSk7cmV0dXJuIEl9Zy5pbmRleFZhcmlhYmxlPWk7ZnVuY3Rpb24gbyhELFQpe3JldHVybnt0eXBlOlxcXCJsYW1iZGFcXFwiLGFyZ3VtZW50czpELHZhbHVlOlR9fWcubGFtYmRhPW87ZnVuY3Rpb24gYShELFQpe3JldHVybnt0eXBlOlxcXCJmdW5jdGlvblxcXCIsZnVuYzpELGFyZ3VtZW50czpUfX1nLmZ1bmM9YTtmdW5jdGlvbiB1KEQpe3JldHVybnt0eXBlOlxcXCJsaXN0XFxcIix2YWx1ZXM6RH19Zy5saXN0PXU7ZnVuY3Rpb24gbChEKXtyZXR1cm57dHlwZTpcXFwib2JqZWN0XFxcIix2YWx1ZXM6RH19Zy5vYmplY3Q9bDtmdW5jdGlvbiBmKEQpe3JldHVybnt0eXBlOlxcXCJuZWdhdGVkXFxcIixjaGlsZDpEfX1nLm5lZ2F0ZT1mO2Z1bmN0aW9uIGQoRCl7cmV0dXJuIEQ9PVxcXCI8PVxcXCJ8fEQ9PVxcXCI8XFxcInx8RD09XFxcIj5cXFwifHxEPT1cXFwiPj1cXFwifHxEPT1cXFwiIT1cXFwifHxEPT1cXFwiPVxcXCJ9Zy5pc0NvbXBhcmVPcD1kO2Z1bmN0aW9uIG0oRCxUPW5ldyBTZXQoW2cuUk9XXSkpe3N3aXRjaChELnR5cGUpe2Nhc2VcXFwiYmluYXJ5b3BcXFwiOnJldHVybiBELm9wPT09XFxcImluZGV4XFxcIiYmRC5sZWZ0LnR5cGU9PVxcXCJ2YXJpYWJsZVxcXCImJkQubGVmdC5uYW1lPT1nLlJPVyYmRC5yaWdodC50eXBlPT1cXFwibGl0ZXJhbFxcXCImJmV0LmlzU3RyaW5nKEQucmlnaHQudmFsdWUpP1QuaGFzKEQucmlnaHQudmFsdWUpP25ldyBTZXQ6bmV3IFNldChbRC5yaWdodC52YWx1ZV0pOll0LnNldFVuaW9uKFttKEQubGVmdCxUKSxtKEQucmlnaHQsVCldKTtjYXNlXFxcImZ1bmN0aW9uXFxcIjpyZXR1cm4gWXQuc2V0VW5pb24oRC5hcmd1bWVudHMubWFwKE49Pm0oTixUKSkpO2Nhc2VcXFwibGFtYmRhXFxcIjpsZXQgST1UIT1udWxsP1Q6bmV3IFNldDtmb3IobGV0IE4gb2YgRC5hcmd1bWVudHMpSS5hZGQoTik7cmV0dXJuIG0oRC52YWx1ZSxJKTtjYXNlXFxcImxpc3RcXFwiOnJldHVybiBZdC5zZXRVbmlvbihELnZhbHVlcy5tYXAoTj0+bShOLFQpKSk7Y2FzZVxcXCJuZWdhdGVkXFxcIjpyZXR1cm4gbShELmNoaWxkLFQpO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gWXQuc2V0VW5pb24oT2JqZWN0LnZhbHVlcyhELnZhbHVlcykubWFwKE49Pm0oTixUKSkpO2Nhc2VcXFwidmFyaWFibGVcXFwiOnJldHVybiBUJiZULmhhcyhELm5hbWUpP25ldyBTZXQ6bmV3IFNldChbRC5uYW1lXSk7Y2FzZVxcXCJsaXRlcmFsXFxcIjpyZXR1cm4gbmV3IFNldH19Zy51bmJvdW5kVmFyaWFibGVzPW07ZnVuY3Rpb24gaChEKXtzd2l0Y2goRC50eXBlKXtjYXNlXFxcImJpbmFyeW9wXFxcIjpyZXR1cm4gRC5vcD09PVxcXCJpbmRleFxcXCI/YCR7aChELmxlZnQpfVske2goRC5yaWdodCl9XWA6YCR7aChELmxlZnQpfSAke0Qub3B9ICR7aChELnJpZ2h0KX1gO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybmAke2goRC5mdW5jKX0oJHtELmFyZ3VtZW50cy5tYXAoaCkuam9pbihcXFwiLCBcXFwiKX0pYDtjYXNlXFxcImxhbWJkYVxcXCI6cmV0dXJuYCgke0QuYXJndW1lbnRzLmpvaW4oXFxcIiwgXFxcIil9KSA9PiAke2goRC52YWx1ZSl9YDtjYXNlXFxcImxpc3RcXFwiOnJldHVybmBbJHtELnZhbHVlcy5tYXAoaCkuam9pbihcXFwiLCBcXFwiKX1dYDtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybmAhJHtoKEQuY2hpbGQpfWA7Y2FzZVxcXCJvYmplY3RcXFwiOnJldHVybmB7JHtPYmplY3QuZW50cmllcyhELnZhbHVlcykubWFwKChbSSxOXSk9PmAke0l9OiAke2goTil9YCkuam9pbihcXFwiLCBcXFwiKX19YDtjYXNlXFxcInZhcmlhYmxlXFxcIjpyZXR1cm4gRC5uYW1lO2Nhc2VcXFwibGl0ZXJhbFxcXCI6bGV0IFQ9ZXQud3JhcFZhbHVlKEQudmFsdWUpO2lmKCFUKXJldHVyblxcXCJudWxsXFxcIjtzd2l0Y2goVC50eXBlKXtjYXNlXFxcInN0cmluZ1xcXCI6cmV0dXJuYFxcXCIke1QudmFsdWV9XFxcImA7ZGVmYXVsdDpyZXR1cm4gZXQudG9TdHJpbmcoVC52YWx1ZSl9fX1nLnRvU3RyaW5nPWgsZy5OVUxMPWcubGl0ZXJhbChudWxsKX0pKHNlfHwoc2U9e30pKTt2YXIgej1GLmNyZWF0ZUxhbmd1YWdlKHtudW1iZXI6bj0+Ri5yZWdleHAoLy0/WzAtOV0rKFxcXFwuWzAtOV0rKT8vKS5tYXAoZT0+TnVtYmVyLnBhcnNlRmxvYXQoZSkpLmRlc2MoXFxcIm51bWJlclxcXCIpLHN0cmluZzpuPT5GLnN0cmluZygnXFxcIicpLnRoZW4oRi5hbHQobi5lc2NhcGVDaGFyYWN0ZXIsRi5ub25lT2YoJ1xcXCJcXFxcXFxcXCcpKS5hdExlYXN0KDApLm1hcChlPT5lLmpvaW4oXFxcIlxcXCIpKSkuc2tpcChGLnN0cmluZygnXFxcIicpKS5kZXNjKFxcXCJzdHJpbmdcXFwiKSxlc2NhcGVDaGFyYWN0ZXI6bj0+Ri5zdHJpbmcoXFxcIlxcXFxcXFxcXFxcIikudGhlbihGLmFueSkubWFwKGU9PmU9PT0nXFxcIic/J1xcXCInOmU9PT1cXFwiXFxcXFxcXFxcXFwiP1xcXCJcXFxcXFxcXFxcXCI6XFxcIlxcXFxcXFxcXFxcIitlKSxib29sOm49PkYucmVnZXhwKC90cnVlfGZhbHNlfFRydWV8RmFsc2UvKS5tYXAoZT0+ZS50b0xvd2VyQ2FzZSgpPT1cXFwidHJ1ZVxcXCIpLmRlc2MoXFxcImJvb2xlYW5cXFwiKSx0YWc6bj0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIiNcXFwiKSxGLmFsdChGLnJlZ2V4cCgvW15cXFxcdTIwMDAtXFxcXHUyMDZGXFxcXHUyRTAwLVxcXFx1MkU3RichXFxcIiMkJSYoKSorLC46Ozw9Pj9AXmB7fH1+XFxcXFtcXFxcXVxcXFxcXFxcXFxcXHNdLykuZGVzYyhcXFwidGV4dFxcXCIpKS5tYW55KCksKGUsdCk9PmUrdC5qb2luKFxcXCJcXFwiKSkuZGVzYyhcXFwidGFnXFxcIiksaWRlbnRpZmllcjpuPT5GLnNlcU1hcChGLmFsdChGLnJlZ2V4cCgvW1xcXFxwe0xldHRlcn0kXS91KSxGLnJlZ2V4cChxdSkuZGVzYyhcXFwidGV4dFxcXCIpKSxGLmFsdChGLnJlZ2V4cCgvWzAtOVxcXFxwe0xldHRlcn0kXy1dL3UpLEYucmVnZXhwKHF1KS5kZXNjKFxcXCJ0ZXh0XFxcIikpLm1hbnkoKSwoZSx0KT0+ZSt0LmpvaW4oXFxcIlxcXCIpKS5kZXNjKFxcXCJ2YXJpYWJsZVxcXCIpLGxpbms6bj0+Ri5yZWdleHAoL1xcXFxbXFxcXFsoW15cXFxcW1xcXFxdXSo/KVxcXFxdXFxcXF0vdSwxKS5tYXAoZT0+T2UucGFyc2VJbm5lcihlKSkuZGVzYyhcXFwiZmlsZSBsaW5rXFxcIiksZW1iZWRMaW5rOm49PkYuc2VxTWFwKEYuc3RyaW5nKFxcXCIhXFxcIikuYXRNb3N0KDEpLG4ubGluaywoZSx0KT0+KGUubGVuZ3RoPjAmJih0LmVtYmVkPSEwKSx0KSkuZGVzYyhcXFwiZmlsZSBsaW5rXFxcIiksYmluYXJ5UGx1c01pbnVzOm49PkYucmVnZXhwKC9cXFxcK3wtLykubWFwKGU9PmUpLmRlc2MoXFxcIicrJyBvciAnLSdcXFwiKSxiaW5hcnlNdWxEaXY6bj0+Ri5yZWdleHAoL1xcXFwqfFxcXFwvfCUvKS5tYXAoZT0+ZSkuZGVzYyhcXFwiJyonIG9yICcvJyBvciAnJSdcXFwiKSxiaW5hcnlDb21wYXJlT3A6bj0+Ri5yZWdleHAoLz49fDw9fCE9fD58PHw9LykubWFwKGU9PmUpLmRlc2MoXFxcIic+PScgb3IgJzw9JyBvciAnIT0nIG9yICc9JyBvciAnPicgb3IgJzwnXFxcIiksYmluYXJ5QW5kT3A6bj0+Ri5yZWdleHAoL2FuZHwmL2kpLm1hcChlPT5cXFwiJlxcXCIpLmRlc2MoXFxcIidhbmQnXFxcIiksYmluYXJ5T3JPcDpuPT5GLnJlZ2V4cCgvb3J8XFxcXHwvaSkubWFwKGU9PlxcXCJ8XFxcIikuZGVzYyhcXFwiJ29yJ1xcXCIpLHJvb3REYXRlOm49PkYuc2VxTWFwKEYucmVnZXhwKC9cXFxcZHs0fS8pLEYuc3RyaW5nKFxcXCItXFxcIiksRi5yZWdleHAoL1xcXFxkezJ9LyksKGUsdCxyKT0+cS5mcm9tT2JqZWN0KHt5ZWFyOk51bWJlci5wYXJzZUludChlKSxtb250aDpOdW1iZXIucGFyc2VJbnQocil9KSkuZGVzYyhcXFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXFxcIiksZGF0ZVNob3J0aGFuZDpuPT5GLmFsdCguLi5PYmplY3Qua2V5cyhVdSkuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLm1hcChGLnN0cmluZykpLGRhdGU6bj0+T2Yobi5yb290RGF0ZSxlPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiLVxcXCIpLEYucmVnZXhwKC9cXFxcZHsyfS8pLCh0LHIpPT5lLnNldCh7ZGF5Ok51bWJlci5wYXJzZUludChyKX0pKSxlPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiVFxcXCIpLEYucmVnZXhwKC9cXFxcZHsyfS8pLCh0LHIpPT5lLnNldCh7aG91cjpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIjpcXFwiKSxGLnJlZ2V4cCgvXFxcXGR7Mn0vKSwodCxyKT0+ZS5zZXQoe21pbnV0ZTpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIjpcXFwiKSxGLnJlZ2V4cCgvXFxcXGR7Mn0vKSwodCxyKT0+ZS5zZXQoe3NlY29uZDpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5hbHQoRi5zZXFNYXAoRi5zdHJpbmcoXFxcIi5cXFwiKSxGLnJlZ2V4cCgvXFxcXGR7M30vKSwodCxyKT0+ZS5zZXQoe21pbGxpc2Vjb25kOk51bWJlci5wYXJzZUludChyKX0pKSxGLnN1Y2NlZWQoZSkpLGU9PkYuYWx0KEYuc2VxTWFwKEYuc3RyaW5nKFxcXCIrXFxcIikub3IoRi5zdHJpbmcoXFxcIi1cXFwiKSksRi5yZWdleHAoL1xcXFxkezEsMn0oOlxcXFxkezJ9KT8vKSwodCxyKT0+ZS5zZXRab25lKFxcXCJVVENcXFwiK3Qrcix7a2VlcExvY2FsVGltZTohMH0pKSxGLnNlcU1hcChGLnN0cmluZyhcXFwiWlxcXCIpLCgpPT5lLnNldFpvbmUoXFxcInV0Y1xcXCIse2tlZXBMb2NhbFRpbWU6ITB9KSksRi5zZXFNYXAoRi5zdHJpbmcoXFxcIltcXFwiKSxGLnJlZ2V4cCgvWzAtOUEtWmEteistXFxcXC9dKy91KSxGLnN0cmluZyhcXFwiXVxcXCIpLCh0LHIscyk9PmUuc2V0Wm9uZShyLHtrZWVwTG9jYWxUaW1lOiEwfSkpKSkuYXNzZXJ0KGU9PmUuaXNWYWxpZCxcXFwidmFsaWQgZGF0ZVxcXCIpLmRlc2MoXFxcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXVxcXCIpLGRhdGVQbHVzOm49PkYuYWx0KG4uZGF0ZVNob3J0aGFuZC5tYXAoZT0+VXVbZV0oKSksbi5kYXRlKS5kZXNjKFxcXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10gb3IgaW4gc2hvcnRoYW5kXFxcIiksZHVyYXRpb25UeXBlOm49PkYuYWx0KC4uLk9iamVjdC5rZXlzKFZ1KS5zb3J0KChlLHQpPT50Lmxlbmd0aC1lLmxlbmd0aCkubWFwKEYuc3RyaW5nKSksZHVyYXRpb246bj0+Ri5zZXFNYXAobi5udW1iZXIsRi5vcHRXaGl0ZXNwYWNlLG4uZHVyYXRpb25UeXBlLChlLHQscik9PlZ1W3JdLm1hcFVuaXRzKHM9PnMqZSkpLnNlcEJ5MShGLnN0cmluZyhcXFwiLFxcXCIpLnRyaW0oRi5vcHRXaGl0ZXNwYWNlKS5vcihGLm9wdFdoaXRlc3BhY2UpKS5tYXAoZT0+ZS5yZWR1Y2UoKHQscik9PnQucGx1cyhyKSkpLmRlc2MoXFxcImR1cmF0aW9uIGxpa2UgNGhyMm1pblxcXCIpLHJhd051bGw6bj0+Ri5zdHJpbmcoXFxcIm51bGxcXFwiKSxhdG9tSW5saW5lRmllbGQ6bj0+Ri5hbHQobi5kYXRlLG4uZHVyYXRpb24ubWFwKGU9Pk1pKGUpKSxuLnN0cmluZyxuLnRhZyxuLmVtYmVkTGluayxuLmJvb2wsbi5udW1iZXIsbi5yYXdOdWxsKSxpbmxpbmVGaWVsZExpc3Q6bj0+bi5hdG9tSW5saW5lRmllbGQuc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKG4uYXRvbUlubGluZUZpZWxkKSksaW5saW5lRmllbGQ6bj0+Ri5hbHQoRi5zZXFNYXAobi5hdG9tSW5saW5lRmllbGQsRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5pbmxpbmVGaWVsZExpc3QsKGUsdCxyKT0+W2VdLmNvbmNhdChyKSksbi5hdG9tSW5saW5lRmllbGQpfSkscXU9bmV3IFJlZ0V4cChGbigpLFxcXCJcXFwiKSxWdT17eWVhcjpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5ZWFyczpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5cjpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5cnM6Qi5mcm9tT2JqZWN0KHt5ZWFyczoxfSksbW9udGg6Qi5mcm9tT2JqZWN0KHttb250aHM6MX0pLG1vbnRoczpCLmZyb21PYmplY3Qoe21vbnRoczoxfSksbW86Qi5mcm9tT2JqZWN0KHttb250aHM6MX0pLG1vczpCLmZyb21PYmplY3Qoe21vbnRoczoxfSksd2VlazpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3ZWVrczpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3azpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3a3M6Qi5mcm9tT2JqZWN0KHt3ZWVrczoxfSksdzpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSxkYXk6Qi5mcm9tT2JqZWN0KHtkYXlzOjF9KSxkYXlzOkIuZnJvbU9iamVjdCh7ZGF5czoxfSksZDpCLmZyb21PYmplY3Qoe2RheXM6MX0pLGhvdXI6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaG91cnM6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaHI6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaHJzOkIuZnJvbU9iamVjdCh7aG91cnM6MX0pLGg6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksbWludXRlOkIuZnJvbU9iamVjdCh7bWludXRlczoxfSksbWludXRlczpCLmZyb21PYmplY3Qoe21pbnV0ZXM6MX0pLG1pbjpCLmZyb21PYmplY3Qoe21pbnV0ZXM6MX0pLG1pbnM6Qi5mcm9tT2JqZWN0KHttaW51dGVzOjF9KSxtOkIuZnJvbU9iamVjdCh7bWludXRlczoxfSksc2Vjb25kOkIuZnJvbU9iamVjdCh7c2Vjb25kczoxfSksc2Vjb25kczpCLmZyb21PYmplY3Qoe3NlY29uZHM6MX0pLHNlYzpCLmZyb21PYmplY3Qoe3NlY29uZHM6MX0pLHNlY3M6Qi5mcm9tT2JqZWN0KHtzZWNvbmRzOjF9KSxzOkIuZnJvbU9iamVjdCh7c2Vjb25kczoxfSl9LFV1PXtub3c6KCk9PnEubG9jYWwoKSx0b2RheTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcImRheVxcXCIpLHllc3RlcmRheTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcImRheVxcXCIpLm1pbnVzKEIuZnJvbU9iamVjdCh7ZGF5czoxfSkpLHRvbW9ycm93OigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwiZGF5XFxcIikucGx1cyhCLmZyb21PYmplY3Qoe2RheXM6MX0pKSxzb3c6KCk9PnEubG9jYWwoKS5zdGFydE9mKFxcXCJ3ZWVrXFxcIiksXFxcInN0YXJ0LW9mLXdlZWtcXFwiOigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwid2Vla1xcXCIpLGVvdzooKT0+cS5sb2NhbCgpLmVuZE9mKFxcXCJ3ZWVrXFxcIiksXFxcImVuZC1vZi13ZWVrXFxcIjooKT0+cS5sb2NhbCgpLmVuZE9mKFxcXCJ3ZWVrXFxcIiksc295OigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwieWVhclxcXCIpLFxcXCJzdGFydC1vZi15ZWFyXFxcIjooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcInllYXJcXFwiKSxlb3k6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwieWVhclxcXCIpLFxcXCJlbmQtb2YteWVhclxcXCI6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwieWVhclxcXCIpLHNvbTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcIm1vbnRoXFxcIiksXFxcInN0YXJ0LW9mLW1vbnRoXFxcIjooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcIm1vbnRoXFxcIiksZW9tOigpPT5xLmxvY2FsKCkuZW5kT2YoXFxcIm1vbnRoXFxcIiksXFxcImVuZC1vZi1tb250aFxcXCI6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwibW9udGhcXFwiKX0sS3U9Ri5jcmVhdGVMYW5ndWFnZSh7dmFyaWFibGU6bj0+ei5pZGVudGlmaWVyLm1hcChzZS52YXJpYWJsZSkuZGVzYyhcXFwidmFyaWFibGVcXFwiKSxudW1iZXI6bj0+ei5udW1iZXIubWFwKHNlLmxpdGVyYWwpLmRlc2MoXFxcIm51bWJlclxcXCIpLHN0cmluZzpuPT56LnN0cmluZy5tYXAoc2UubGl0ZXJhbCkuZGVzYyhcXFwic3RyaW5nXFxcIiksYm9vbDpuPT56LmJvb2wubWFwKHNlLmxpdGVyYWwpLmRlc2MoXFxcImJvb2xlYW5cXFwiKSxkYXRlOm49PlN0KFxcXCJkYXRlXFxcIix6LmRhdGVQbHVzKS5tYXAoKFtlLHRdKT0+c2UubGl0ZXJhbCh0KSkuZGVzYyhcXFwiZGF0ZVxcXCIpLGR1cmF0aW9uOm49PlN0KFxcXCJkdXJcXFwiLHouZHVyYXRpb24pLm1hcCgoW2UsdF0pPT5zZS5saXRlcmFsKHQpKS5kZXNjKFxcXCJkdXJhdGlvblxcXCIpLG51bGw6bj0+ei5yYXdOdWxsLm1hcChlPT5zZS5OVUxMKSxsaW5rOm49PnoubGluay5tYXAoc2UubGl0ZXJhbCksbGlzdDpuPT5uLmV4cHJlc3Npb24uc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLndyYXAoRi5zdHJpbmcoXFxcIltcXFwiKS5za2lwKEYub3B0V2hpdGVzcGFjZSksRi5vcHRXaGl0ZXNwYWNlLnRoZW4oRi5zdHJpbmcoXFxcIl1cXFwiKSkpLm1hcChlPT5zZS5saXN0KGUpKS5kZXNjKFxcXCJsaXN0XFxcIiksb2JqZWN0Om49PkYuc2VxTWFwKHouaWRlbnRpZmllci5vcih6LnN0cmluZyksRi5zdHJpbmcoXFxcIjpcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5leHByZXNzaW9uLChlLHQscik9Pih7bmFtZTplLHZhbHVlOnJ9KSkuc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLndyYXAoRi5zdHJpbmcoXFxcIntcXFwiKS5za2lwKEYub3B0V2hpdGVzcGFjZSksRi5vcHRXaGl0ZXNwYWNlLnRoZW4oRi5zdHJpbmcoXFxcIn1cXFwiKSkpLm1hcChlPT57bGV0IHQ9e307Zm9yKGxldCByIG9mIGUpdFtyLm5hbWVdPXIudmFsdWU7cmV0dXJuIHNlLm9iamVjdCh0KX0pLmRlc2MoXFxcIm9iamVjdCAoJ3sgYTogMSwgYjogMiB9JylcXFwiKSxhdG9tOm49PkYuYWx0KHouZW1iZWRMaW5rLm1hcChlPT5zZS5saXRlcmFsKGUpKSxuLm5lZ2F0ZWQsbi5saW5rLG4ubGlzdCxuLm9iamVjdCxuLmxhbWJkYSxuLnBhcmVucyxuLmJvb2wsbi5udW1iZXIsbi5zdHJpbmcsbi5kYXRlLG4uZHVyYXRpb24sbi5udWxsLG4udmFyaWFibGUpLGluZGV4Om49PkYuc2VxTWFwKG4uYXRvbSxGLmFsdChuLmRvdFBvc3RmaXgsbi5pbmRleFBvc3RmaXgsbi5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwoZSx0KT0+e2xldCByPWU7Zm9yKGxldCBzIG9mIHQpc3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJkb3RcXFwiOnI9c2UuaW5kZXgocixzZS5saXRlcmFsKHMuZXhwcikpO2JyZWFrO2Nhc2VcXFwiaW5kZXhcXFwiOnI9c2UuaW5kZXgocixzLmV4cHIpO2JyZWFrO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnI9c2UuZnVuYyhyLHMuZXhwcnMpO2JyZWFrfXJldHVybiByfSksbmVnYXRlZDpuPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiIVxcXCIpLG4uaW5kZXgsKGUsdCk9PnNlLm5lZ2F0ZSh0KSkuZGVzYyhcXFwibmVnYXRlZCBmaWVsZFxcXCIpLHBhcmVuczpuPT5uLmV4cHJlc3Npb24udHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSxsYW1iZGE6bj0+Ri5zZXFNYXAoei5pZGVudGlmaWVyLnNlcEJ5KEYuc3RyaW5nKFxcXCIsXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpKS53cmFwKEYuc3RyaW5nKFxcXCIoXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpLEYuc3RyaW5nKFxcXCIpXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpKSxGLnN0cmluZyhcXFwiPT5cXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5leHByZXNzaW9uLChlLHQscik9Pih7dHlwZTpcXFwibGFtYmRhXFxcIixhcmd1bWVudHM6ZSx2YWx1ZTpyfSkpLGRvdFBvc3RmaXg6bj0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIi5cXFwiKSx6LmlkZW50aWZpZXIsKGUsdCk9Pih7dHlwZTpcXFwiZG90XFxcIixleHByOnR9KSksaW5kZXhQb3N0Zml4Om49PkYuc2VxTWFwKEYuc3RyaW5nKFxcXCJbXFxcIiksRi5vcHRXaGl0ZXNwYWNlLG4uZXhwcmVzc2lvbixGLm9wdFdoaXRlc3BhY2UsRi5zdHJpbmcoXFxcIl1cXFwiKSwoZSx0LHIscyxpKT0+KHt0eXBlOlxcXCJpbmRleFxcXCIsZXhwcjpyfSkpLGZ1bmN0aW9uUG9zdGZpeDpuPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiKFxcXCIpLEYub3B0V2hpdGVzcGFjZSxuLmV4cHJlc3Npb24uc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLEYub3B0V2hpdGVzcGFjZSxGLnN0cmluZyhcXFwiKVxcXCIpLChlLHQscixzLGkpPT4oe3R5cGU6XFxcImZ1bmN0aW9uXFxcIixleHByczpyfSkpLGJpbmFyeU11bERpdjpuPT5NbihuLmluZGV4LHouYmluYXJ5TXVsRGl2LHNlLmJpbmFyeU9wKSxiaW5hcnlQbHVzTWludXM6bj0+TW4obi5iaW5hcnlNdWxEaXYsei5iaW5hcnlQbHVzTWludXMsc2UuYmluYXJ5T3ApLGJpbmFyeUNvbXBhcmU6bj0+TW4obi5iaW5hcnlQbHVzTWludXMsei5iaW5hcnlDb21wYXJlT3Asc2UuYmluYXJ5T3ApLGJpbmFyeUJvb2xlYW46bj0+TW4obi5iaW5hcnlDb21wYXJlLHouYmluYXJ5QW5kT3Aub3Ioei5iaW5hcnlPck9wKSxzZS5iaW5hcnlPcCksYmluYXJ5T3A6bj0+bi5iaW5hcnlCb29sZWFuLGV4cHJlc3Npb246bj0+bi5iaW5hcnlPcH0pLGxiPUYuY3JlYXRlTGFuZ3VhZ2Uoe3F1ZXJ5VGFnOm49PnoudGFnLm1hcChlPT4oe3R5cGU6XFxcInRhZ2dlZFxcXCIsdmFsdWU6ZX0pKSxxdWVyeUlkOm49PlN0KFxcXCJpZFxcXCIsei5zdHJpbmcpLm1hcCgoW2UsdF0pPT4oe3R5cGU6XFxcImlkXFxcIix2YWx1ZTp0fSkpLHF1ZXJ5VHlwZTpuPT5GLnN0cmluZyhcXFwiQFxcXCIpLnRoZW4oei5pZGVudGlmaWVyKS5tYXAoZT0+KHt0eXBlOlxcXCJ0eXBlZFxcXCIsdmFsdWU6ZX0pKSxxdWVyeVBhdGg6bj0+U3QoRi5yZWdleHAoL2U/cGF0aC9pKS5kZXNjKFxcXCJbZV1wYXRoXFxcIiksei5zdHJpbmcpLm1hcCgoW2UsdF0pPT4oe3R5cGU6XFxcInBhdGhcXFwiLHZhbHVlOnQsZXhhY3Q6ZS50b0xvd2VyQ2FzZSgpPT09XFxcImVwYXRoXFxcIn0pKSxxdWVyeVBhcmVudE9mOm49PlN0KEYucmVnZXhwKC9wYXJlbnRvZnxzdXBlcnRyZWUvaSkuZGVzYyhcXFwicGFyZW50b2ZcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJwYXJlbnQtb2ZcXFwiLGNoaWxkcmVuOnQsaW5jbHVzaXZlOmUudG9Mb3dlckNhc2UoKT09PVxcXCJzdXBlcnRyZWVcXFwifSkpLHF1ZXJ5Q2hpbGRPZjpuPT5TdChGLnJlZ2V4cCgvY2hpbGRvZnxzdWJ0cmVlL2kpLmRlc2MoXFxcImNoaWxkb2ZcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJjaGlsZC1vZlxcXCIscGFyZW50czp0LGluY2x1c2l2ZTplLnRvTG93ZXJDYXNlKCk9PT1cXFwic3VidHJlZVxcXCJ9KSkscXVlcnlTaW1wbGVMaW5rZWQ6bj0+ei5saW5rLm1hcChlPT4oe3R5cGU6XFxcImxpbmtlZFxcXCIsc291cmNlOnt0eXBlOlxcXCJsaW5rXFxcIix2YWx1ZTplfSxkaXJlY3Rpb246XFxcImluY29taW5nXFxcIn0pKSxxdWVyeUxpbmtlZDpuPT5TdChGLnJlZ2V4cCgvbGlua3N0b3xsaW5rZWRmcm9tfGNvbm5lY3RlZC9pKS5kZXNjKFxcXCJjb25uZWN0ZWRcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJsaW5rZWRcXFwiLHNvdXJjZTp0LGRpcmVjdGlvbjplLnRvTG93ZXJDYXNlKCk9PVxcXCJsaW5rc3RvXFxcIj9cXFwiaW5jb21pbmdcXFwiOmUudG9Mb3dlckNhc2UoKT09XFxcImxpbmtlZGZyb21cXFwiP1xcXCJvdXRnb2luZ1xcXCI6XFxcImJvdGhcXFwifSkpLHF1ZXJ5RXhpc3RzOm49PlN0KEYucmVnZXhwKC9leGlzdHMvaSkuZGVzYyhcXFwiZXhpc3RzXFxcIiksei5pZGVudGlmaWVyLm9yKHouc3RyaW5nKSkubWFwKChbZSx0XSk9Pih7dHlwZTpcXFwiZmllbGRcXFwiLHZhbHVlOnR9KSkscXVlcnlRdW90ZWRFeHByZXNzaW9uOm49PlN0KEYucmVnZXhwKC9leHByL2kpLmRlc2MoXFxcImV4cHJcXFwiKSxLdS5leHByZXNzaW9uKS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJleHByZXNzaW9uXFxcIixleHByZXNzaW9uOnR9KSkscXVlcnlSYXdFeHByZXNzaW9uOm49Pkt1LmJpbmFyeUNvbXBhcmUubWFwKGU9Pih7dHlwZTpcXFwiZXhwcmVzc2lvblxcXCIsZXhwcmVzc2lvbjplfSkpLHF1ZXJ5UGFyZW5zOm49Pm4ucXVlcnkudHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSxxdWVyeU5lZ2F0ZTpuPT5GLnN0cmluZyhcXFwiIVxcXCIpLnNraXAoRi5vcHRXaGl0ZXNwYWNlKS50aGVuKG4ucXVlcnlBdG9tKS5tYXAoZT0+KHt0eXBlOlxcXCJub3RcXFwiLGVsZW1lbnQ6ZX0pKSxxdWVyeUF0b206bj0+Ri5hbHQobi5xdWVyeVBhcmVucyxuLnF1ZXJ5TmVnYXRlLG4ucXVlcnlTaW1wbGVMaW5rZWQsbi5xdWVyeVRhZyxuLnF1ZXJ5VHlwZSxuLnF1ZXJ5SWQsbi5xdWVyeUV4aXN0cyxuLnF1ZXJ5Q2hpbGRPZixuLnF1ZXJ5UGFyZW50T2Ysbi5xdWVyeUxpbmtlZCxuLnF1ZXJ5UGF0aCxuLnF1ZXJ5UXVvdGVkRXhwcmVzc2lvbixuLnF1ZXJ5UmF3RXhwcmVzc2lvbikscXVlcnlBbmRzOm49Pk1uKG4ucXVlcnlBdG9tLHouYmluYXJ5QW5kT3AsKGUsdCxyKT0+KHt0eXBlOlxcXCJhbmRcXFwiLGVsZW1lbnRzOltlLHJdfSkpLHF1ZXJ5T3JzOm49Pk1uKG4ucXVlcnlBbmRzLHouYmluYXJ5T3JPcCwoZSx0LHIpPT4oe3R5cGU6XFxcIm9yXFxcIixlbGVtZW50czpbZSxyXX0pKSxxdWVyeTpuPT5uLnF1ZXJ5T3JzLnRyaW0oRi5vcHRXaGl0ZXNwYWNlKX0pO2Z1bmN0aW9uIE1uKG4sZSx0KXtyZXR1cm4gRi5zZXFNYXAobixGLnNlcShGLm9wdFdoaXRlc3BhY2UsZSxGLm9wdFdoaXRlc3BhY2UsbikubWFueSgpLChyLHMpPT57aWYocy5sZW5ndGg9PTApcmV0dXJuIHI7bGV0IGk9dChyLHNbMF1bMV0sc1swXVszXSk7Zm9yKGxldCBvPTE7bzxzLmxlbmd0aDtvKyspaT10KGksc1tvXVsxXSxzW29dWzNdKTtyZXR1cm4gaX0pfWZ1bmN0aW9uIFN0KG4sZSl7bGV0IHQ9dHlwZW9mIG49PVxcXCJzdHJpbmdcXFwiP0Yuc3RyaW5nKG4pOm47cmV0dXJuIEYuc2VxTWFwKHQuc2tpcChGLm9wdFdoaXRlc3BhY2UpLGUudHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSwocixzKT0+W3Isc10pfWZ1bmN0aW9uIE9mKG4sLi4uZSl7cmV0dXJuIEYuY3VzdG9tKCh0LHIpPT4ocyxpKT0+e2xldCBvPW4uXyhzLGkpO2lmKCFvLnN0YXR1cylyZXR1cm4gbztmb3IobGV0IGEgb2YgZSl7bGV0IHU9YShvLnZhbHVlKS5fKHMsby5pbmRleCk7aWYoIXUuc3RhdHVzKXJldHVybiBvO289dX1yZXR1cm4gb30pfXZhciBadD1WcihucygpKTtmdW5jdGlvbiBHdChuLGUpe2xldCB0PXt9O2ZvcihsZXRbcixzXW9mIE9iamVjdC5lbnRyaWVzKG4pKXRbcl09ZShzKTtyZXR1cm4gdH12YXIgX247KHI9PntyLk5PT1BfTk9STUFMSVpFUj1zPT5zO2Z1bmN0aW9uIGUocyl7bGV0IGk9ZXQud3JhcFZhbHVlKHMpO2lmKCFpKXJldHVybiBudWxsO3N3aXRjaChpPT1udWxsP3ZvaWQgMDppLnR5cGUpe2Nhc2VcXFwiYXJyYXlcXFwiOnJldHVybiBpLnZhbHVlLm1hcChyLmpzb24pO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gR3QoaS52YWx1ZSxyLmpzb24pO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJueyRfdHlwZTpcXFwiZGF0ZVxcXCIsdmFsdWU6aS52YWx1ZS50b0lTTyh7aW5jbHVkZU9mZnNldDohMH0pfTtjYXNlXFxcImxpbmtcXFwiOnJldHVybnskX3R5cGU6XFxcImxpbmtcXFwiLHZhbHVlOmkudmFsdWUudG9PYmplY3QoKX07Y2FzZVxcXCJkdXJhdGlvblxcXCI6cmV0dXJueyRfdHlwZTpcXFwiZHVyYXRpb25cXFwiLHZhbHVlOmkudmFsdWUudG9JU08oKX07Y2FzZVxcXCJib29sZWFuXFxcIjpjYXNlXFxcIm51bWJlclxcXCI6Y2FzZVxcXCJzdHJpbmdcXFwiOnJldHVybiBpLnZhbHVlO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOmNhc2VcXFwibnVsbFxcXCI6cmV0dXJuIG51bGx9fXIuanNvbj1lO2Z1bmN0aW9uIHQocyxpPXIuTk9PUF9OT1JNQUxJWkVSKXtpZihzPT1udWxsKXJldHVybiBudWxsO2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIGkocy5tYXAobz0+ci52YWx1ZShvLGkpKSk7aWYodHlwZW9mIHM9PVxcXCJvYmplY3RcXFwiKXtpZighKFxcXCIkX3R5cGVcXFwiaW4gcykpcmV0dXJuIEd0KHMsYT0+ci52YWx1ZShhLGkpKTtsZXQgbz1zLiRfdHlwZTtzd2l0Y2gobyl7Y2FzZVxcXCJkYXRlXFxcIjpyZXR1cm4gaShxLmZyb21JU08ocy52YWx1ZSx7c2V0Wm9uZTohMH0pKTtjYXNlXFxcImR1cmF0aW9uXFxcIjpyZXR1cm4gaShCLmZyb21JU08ocy52YWx1ZSkpO2Nhc2VcXFwibGlua1xcXCI6cmV0dXJuIGkoT2UuZnJvbU9iamVjdChzLnZhbHVlKSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBzZXJpYWxpemVkIHR5cGUgJyR7b30nIWApfX1yZXR1cm4gaShzKX1yLnZhbHVlPXR9KShfbnx8KF9uPXt9KSk7ZnVuY3Rpb24gV3Uobil7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbix7dmFsdWU6X24uanNvbihuLnZhbHVlKX0pfWZ1bmN0aW9uICRzKG4sZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAodD0+JHModCxlKSk6e2tleTpuLmtleSxyYXc6bi52YWx1ZSx2YWx1ZTpOZihuLnZhbHVlKSxwb3NpdGlvbjp7bGluZTplLHN0YXJ0Om4uc3RhcnQsc3RhcnRWYWx1ZTpuLnN0YXJ0VmFsdWUsZW5kOm4uZW5kfSx3cmFwcGluZzpuLndyYXBwaW5nfX12YXIgUHM9T2JqZWN0LmZyZWV6ZSh7XFxcIltcXFwiOlxcXCJdXFxcIixcXFwiKFxcXCI6XFxcIilcXFwifSk7ZnVuY3Rpb24gSWYobixlLHQscil7bGV0IHM9MCxpPSExO2ZvcihsZXQgbz1lO288bi5sZW5ndGg7bysrKXtsZXQgYT1uLmNoYXJBdChvKTtpZihhPT1cXFwiXFxcXFxcXFxcXFwiKXtpPSFpO2NvbnRpbnVlfWlmKGkpe2k9ITE7Y29udGludWV9aWYoYT09dD9zKys6YT09ciYmcy0tLHM8MClyZXR1cm57dmFsdWU6bi5zdWJzdHJpbmcoZSxvKS50cmltKCksZW5kSW5kZXg6bysxfTtpPSExfX1mdW5jdGlvbiBIdShuLGUpe2xldCB0PW4uaW5kZXhPZihcXFwiOjpcXFwiLGUpO2lmKCEodDwwKSlyZXR1cm57a2V5Om4uc3Vic3RyaW5nKGUsdCkudHJpbSgpLHZhbHVlSW5kZXg6dCsyfX1mdW5jdGlvbiBMZihuLGUpe2xldCB0PW4uY2hhckF0KGUpLHI9SHUobixlKzEpO2lmKHI9PT12b2lkIDApcmV0dXJuO2ZvcihsZXQgaSBvZiBPYmplY3Qua2V5cyhQcykuY29uY2F0KE9iamVjdC52YWx1ZXMoUHMpKSlpZihyLmtleS5pbmNsdWRlcyhpKSlyZXR1cm47bGV0IHM9SWYobixyLnZhbHVlSW5kZXgsdCxQc1t0XSk7aWYocyE9PXZvaWQgMClyZXR1cm57a2V5OnIua2V5LHZhbHVlOnMudmFsdWUsc3RhcnQ6ZSxzdGFydFZhbHVlOnIudmFsdWVJbmRleCxlbmQ6cy5lbmRJbmRleCx3cmFwcGluZzp0fX1mdW5jdGlvbiBOZihuKXtpZihuLnRyaW0oKT09XFxcIlxcXCIpcmV0dXJuIG51bGw7bGV0IGU9ei5pbmxpbmVGaWVsZC5wYXJzZShuKTtyZXR1cm4gZS5zdGF0dXM/ZS52YWx1ZTpufWZ1bmN0aW9uIEp1KG4sZT0hMSl7bGV0IHQ9W107Zm9yKGxldCBzIG9mIE9iamVjdC5rZXlzKFBzKSl7bGV0IGk9bi5pbmRleE9mKHMpO2Zvcig7aT49MDspe2xldCBvPUxmKG4saSk7aWYoIW8pe2k9bi5pbmRleE9mKHMsaSsxKTtjb250aW51ZX10LnB1c2gobyksaT1uLmluZGV4T2YocyxvLmVuZCl9fWUmJih0PXQuY29uY2F0KHFmKG4pKSksdC5zb3J0KChzLGkpPT5zLnN0YXJ0LWkuc3RhcnQpO2xldCByPVtdO2ZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cysrKShzPT0wfHxyW3IubGVuZ3RoLTFdLmVuZDx0W3NdLnN0YXJ0KSYmci5wdXNoKHRbc10pO3JldHVybiByfXZhciBBZj1adC5hbHQoWnQucmVnZXhwKG5ldyBSZWdFeHAoRm4oKSxcXFwidVxcXCIpKSxadC5yZWdleHAoL1swLTlcXFxccHtMZXR0ZXJ9XFxcXHdcXFxcc18vLV0rL3UpKS5tYW55KCkubWFwKG49Pm4uam9pbihcXFwiXFxcIikpLE1mPVp0LnJlZ2V4cCgvW14wLTlcXFxcd1xcXFxwe0xldHRlcn1dKi91KS50aGVuKEFmKS5za2lwKFp0LnJlZ2V4cCgvW19cXFxcKn5gXSovdSkpO2Z1bmN0aW9uIHp1KG4pe2xldCBlPUh1KG4sMCk7aWYoIWUpcmV0dXJuO2xldCB0PU1mLnBhcnNlKGUua2V5KTtpZih0LnN0YXR1cylyZXR1cm57a2V5OnQudmFsdWUsdmFsdWU6bi5zdWJzdHJpbmcoZS52YWx1ZUluZGV4KS50cmltKCksc3RhcnQ6MCxzdGFydFZhbHVlOmUudmFsdWVJbmRleCxlbmQ6bi5sZW5ndGh9fXZhciBfZj0vXFxcXHV7Mjc5NX1cXFxccyooXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0pL3UsQmY9Lyg/OlxcXFx1ezFGNEM1fXxcXFxcdXsxRjRDNn18XFxcXHV7MUY1RDN9XFxcXHV7RkUwRn0/KVxcXFxzKihcXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfSkvdSxQZj0vXFxcXHV7MjcwNX1cXFxccyooXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0pL3UsJGY9L1tcXFxcdXsyM0YzfVxcXFx1ezIzMUJ9XVxcXFxzKihcXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfSkvdSxSZj0vXFxcXHV7MUY2RUJ9XFxcXHMqKFxcXFxkezR9LVxcXFxkezJ9LVxcXFxkezJ9KS91LGpmPVt7cmVnZXg6X2Ysa2V5OlxcXCJjcmVhdGVkXFxcIn0se3JlZ2V4OlJmLGtleTpcXFwic3RhcnRcXFwifSx7cmVnZXg6JGYsa2V5OlxcXCJzY2hlZHVsZWRcXFwifSx7cmVnZXg6QmYsa2V5OlxcXCJkdWVcXFwifSx7cmVnZXg6UGYsa2V5OlxcXCJjb21wbGV0aW9uXFxcIn1dO2Z1bmN0aW9uIHFmKG4pe2xldCBlPVtdO2ZvcihsZXR7cmVnZXg6dCxrZXk6cn1vZiBqZil7bGV0IHM9dC5leGVjKG4pO3MmJmUucHVzaCh7a2V5OnIsdmFsdWU6c1sxXSxzdGFydDpzLmluZGV4LHN0YXJ0VmFsdWU6cy5pbmRleCsxLGVuZDpzLmluZGV4K3NbMF0ubGVuZ3RoLHdyYXBwaW5nOlxcXCJlbW9qaS1zaG9ydGhhbmRcXFwifSl9cmV0dXJuIGV9dmFyIFJzOyh0PT57ZnVuY3Rpb24gbihyKXtsZXQgcz1ldC53cmFwVmFsdWUoZSk7aWYoIXMpcmV0dXJuIG51bGw7c3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJzdHJpbmdcXFwiOmNhc2VcXFwiYm9vbGVhblxcXCI6Y2FzZVxcXCJudWxsXFxcIjpjYXNlXFxcIm51bWJlclxcXCI6cmV0dXJuIHMudmFsdWU7Y2FzZVxcXCJhcnJheVxcXCI6cmV0dXJuIHMudmFsdWUubWFwKG4pO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIHMudmFsdWUudG9JU08oKTtjYXNlXFxcImR1cmF0aW9uXFxcIjpyZXR1cm4gcy52YWx1ZS50b0h1bWFuKCk7Y2FzZVxcXCJmdW5jdGlvblxcXCI6cmV0dXJuIG51bGw7Y2FzZVxcXCJsaW5rXFxcIjpyZXR1cm4gcy52YWx1ZS5tYXJrZG93bigpO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gR3Qocy52YWx1ZSxuKX19dC55YW1sPW47ZnVuY3Rpb24gZShyKXtpZihyPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiByPT1cXFwib2JqZWN0XFxcIilpZihBcnJheS5pc0FycmF5KHIpKXtsZXQgcz1bXTtmb3IobGV0IGkgb2YgcilzLnB1c2goZShpKSk7cmV0dXJuIHN9ZWxzZXtpZihyIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gcS5mcm9tSlNEYXRlKHIpO3tsZXQgcz1yLGk9e307Zm9yKGxldCBvIGluIHMpaVtvXT1lKHNbb10pO3JldHVybiBpfX1lbHNle2lmKHR5cGVvZiByPT1cXFwibnVtYmVyXFxcIilyZXR1cm4gcjtpZih0eXBlb2Ygcj09XFxcImJvb2xlYW5cXFwiKXJldHVybiByO2lmKHR5cGVvZiByPT1cXFwic3RyaW5nXFxcIil7bGV0IHM9ei5kYXRlLnBhcnNlKHIpO2lmKHMuc3RhdHVzKXJldHVybiBzLnZhbHVlO2xldCBpPXouZHVyYXRpb24ucGFyc2Uocik7aWYoaS5zdGF0dXMpcmV0dXJuIGkudmFsdWU7bGV0IG89ei5saW5rLnBhcnNlKHIpO3JldHVybiBvLnN0YXR1cz9vLnZhbHVlOnJ9fXJldHVybiBudWxsfXQubGl0ZXJhbD1lfSkoUnN8fChScz17fSkpO3ZhciBWZj0vYGBgeWFtbDpkYXRhL2ksVWY9L14oPzpgYGB8fn5+KSguKikkL2ltLEtmPS9eW1xcXFxzPl0qKFxcXFxkK1xcXFwufFxcXFxkK1xcXFwpfFxcXFwqfC18XFxcXCspXFxcXHMqKFxcXFxbLnswLDF9XFxcXF0pP1xcXFxzKiguKikkL211O2Z1bmN0aW9uIFp1KG4sZSx0LHIpe2xldHtsaW5lczpzLG1ldGFkYXRhOmksZnJvbnRtYXR0ZXI6byxzZWN0aW9uczphfT1GbyhuLGUsdCk7cmV0dXJuIG5ldyBwbyhuLHIscy5sZW5ndGgsaSxhLG8pLmJ1aWxkKCl9ZnVuY3Rpb24gRm8obixlLHQpe3ZhciBiLGcsRCxULEksTix5LHcsdix4LEMsVixqLFksZWUsYWU7bGV0IHI9dC5mcm9udG1hdHRlcj9HdSh0LmZyb250bWF0dGVyKTp2b2lkIDAscz1lLnNwbGl0KC9cXFxcclxcXFxufFxcXFxyfFxcXFxuLyksaT1uZXcgJGUsbz1bXSxhPShiPXQuaGVhZGluZ3MpIT1udWxsP2I6W107YS5zb3J0KChPLCQpPT5PLnBvc2l0aW9uLnN0YXJ0LmxpbmUtJC5wb3NpdGlvbi5zdGFydC5saW5lKTtsZXQgdT1uZXcganMuZGVmYXVsdCh2b2lkIDAsKE8sJCk9Pk8tJCk7Zm9yKGxldCBPPTA7TzxhLmxlbmd0aDtPKyspe2xldCAkPWFbT10sUT0kLnBvc2l0aW9uLnN0YXJ0LmxpbmUsdWU9Tz09YS5sZW5ndGgtMT9zLmxlbmd0aDphW08rMV0ucG9zaXRpb24uc3RhcnQubGluZSxEZT1uZXcgX3IoUSx1ZSwkLmhlYWRpbmcsJC5sZXZlbCxPKzEpO3Uuc2V0KFEsRGUpfWlmKHUuc2l6ZT09MCl7aWYoIVl1KHMsMCxzLmxlbmd0aCkpe2xldCBPPW5ldyBfcigwLHMubGVuZ3RoLEVuKG4pLDEsMCk7dS5zZXQoMCxPKX19ZWxzZXtsZXQgTz0oZz11LmdldFBhaXJPck5leHRIaWdoZXIoMCkpPT1udWxsP3ZvaWQgMDpnWzFdO2lmKE8uc3RhcnQ+MCYmIVl1KHMsMCxPLnN0YXJ0KSl7bGV0ICQ9bmV3IF9yKDAsTy5zdGFydCxFbihuKSwxLDApO3Uuc2V0KDAsJCl9fWxldCBsPW5ldyBqcy5kZWZhdWx0KHZvaWQgMCwoTywkKT0+Ty0kKSxmPTE7Zm9yKGxldCBPIG9mIHQuc2VjdGlvbnN8fFtdKXtpZihPLnR5cGU9PT1cXFwiaGVhZGluZ1xcXCIpY29udGludWU7bGV0ICQ9Ty5wb3NpdGlvbi5zdGFydC5saW5lLFE9Ty5wb3NpdGlvbi5lbmQubGluZSsxLHVlPXNbJF07aWYoTy50eXBlPT09XFxcImxpc3RcXFwiKWwuc2V0KCQsbmV3IERvKCQsUSxmKyssTy5pZCkpO2Vsc2UgaWYoTy50eXBlPT1cXFwiY29kZVxcXCImJlZmLnRlc3QodWUpKXtsZXQgRGU9cy5zbGljZSgkKzEsUS0xKS5qb2luKGBcXG5gKS5yZXBsYWNlKC9cXFxcdC9nbSxcXFwiICBcXFwiKSxSZT1HdShjbyhEZSkpO2wuc2V0KCQsbmV3IHlvKCQsUSxmKyssUmUsTy5pZCkpfWVsc2UgaWYoTy50eXBlPT09XFxcImNvZGVcXFwiKXtsZXQgRGU9dWUubWF0Y2goVWYpO2lmKCFEZSlsLnNldCgkLG5ldyBxcygkLFEsZisrLFtdLFxcXCJpbmRlbnRcXFwiLCQsUSxPLmlkKSk7ZWxzZXtsZXQgUmU9RGUubGVuZ3RoPjEmJkRlWzFdP0RlWzFdLnNwbGl0KFxcXCIsXFxcIik6W107bC5zZXQoJCxuZXcgcXMoJCxRLGYrKyxSZSxcXFwiZmVuY2VkXFxcIiwkKzEsUS0xLE8uaWQpKX19ZWxzZSBsLnNldCgkLG5ldyBnbygkLFEsZisrLE8udHlwZSxPLmlkKSl9Zm9yKGxldCBPIG9mIGwudmFsdWVzKCkpKEQ9Y3QoTy5zdGFydCx1KSk9PW51bGx8fEQuYmxvY2soTyk7bGV0IGQ9L15bXFxcXHRcXFxcZlxcXFx2IF0qW1xcXFwtK1xcXFwqXVxcXFxzKFxcXFxbLlxcXFxdXFxcXHMpPy8sbT0vXig+P1xcXFxzPykqKFxcXFx0fFxcXFxzKSovZyxoPW5ldyBqcy5kZWZhdWx0KHZvaWQgMCwoTywkKT0+Ty0kKTtmb3IobGV0IE8gb2YgdC5saXN0SXRlbXN8fFtdKXtsZXQgUT1zW08ucG9zaXRpb24uc3RhcnQubGluZV0ubWF0Y2goS2YpLHVlLERlO1EmJih1ZT1RWzFdLERlPVFbM10pO2xldCBSZT1uZXcgYm8oTy5wb3NpdGlvbi5zdGFydC5saW5lLE8ucG9zaXRpb24uZW5kLmxpbmUrMSxPLnBhcmVudCx1ZSxPLmlkLE8udGFzayxEZSk7aC5zZXQoUmUuc3RhcnQsUmUpfWZvcihsZXQgTyBvZiBoLnZhbHVlcygpKWlmKE8ucGFyZW50TGluZTwwKXtsZXQgJD1sLmdldCgtTy5wYXJlbnRMaW5lKTtpZighJHx8JC50eXBlIT09XFxcImxpc3RcXFwiKWNvbnRpbnVlOyQuaXRlbXMucHVzaChPKX1lbHNlKFQ9aC5nZXQoTy5wYXJlbnRMaW5lKSk9PW51bGx8fFQuZWxlbWVudHMucHVzaChPKTtmb3IobGV0IE8gb2YoST10LnRhZ3MpIT1udWxsP0k6W10pe2xldCAkPU8udGFnLnN0YXJ0c1dpdGgoXFxcIiNcXFwiKT9PLnRhZzpcXFwiI1xcXCIrTy50YWcsUT1PLnBvc2l0aW9uLnN0YXJ0LmxpbmU7aS50YWcoJCksKE49Y3QoUSx1KSk9PW51bGx8fE4ubWV0YWRhdGEudGFnKCQpLCh5PWN0KFEsbCkpPT1udWxsfHx5Lm1ldGFkYXRhLnRhZygkKSwodz1jdChRLGgpKT09bnVsbHx8dy5tZXRhZGF0YS50YWcoJCl9aWYodC5mcm9udG1hdHRlcilmb3IobGV0IE8gb2YgV2YodC5mcm9udG1hdHRlcikpe2xldCAkPU8uc3RhcnRzV2l0aChcXFwiI1xcXCIpP086XFxcIiNcXFwiK087aS50YWcoJCl9Zm9yKGxldCBPIG9mKHY9dC5saW5rcykhPW51bGw/djpbXSl7bGV0ICQ9T2UuaW5mZXIoTy5saW5rKSxRPU8ucG9zaXRpb24uc3RhcnQubGluZTtpLmxpbmsoJCksKHg9Y3QoUSx1KSk9PW51bGx8fHgubWV0YWRhdGEubGluaygkKSwoQz1jdChRLGwpKT09bnVsbHx8Qy5tZXRhZGF0YS5saW5rKCQpLChWPWN0KFEsaCkpPT1udWxsfHxWLm1ldGFkYXRhLmxpbmsoJCl9Zm9yKGxldCBPIG9mKGo9dC5mcm9udG1hdHRlckxpbmtzKSE9bnVsbD9qOltdKWkubGluayhPZS5pbmZlcihPLmxpbmssITEsTy5kaXNwbGF5VGV4dCkpO2ZvcihsZXQgTyBvZiBFbyhzKSl7bGV0ICQ9Ty5wb3NpdGlvbi5saW5lO2kuaW5saW5lRmllbGQoTyksKFk9Y3QoJCx1KSk9PW51bGx8fFkubWV0YWRhdGEuaW5saW5lRmllbGQoTyksKGVlPWN0KCQsbCkpPT1udWxsfHxlZS5tZXRhZGF0YS5pbmxpbmVGaWVsZChPKSwoYWU9Y3QoJCxoKSk9PW51bGx8fGFlLm1ldGFkYXRhLmlubGluZUZpZWxkKE8pfXJldHVybiBvLnB1c2goLi4udS52YWx1ZXMoKSkse2xpbmVzOnMsZnJvbnRtYXR0ZXI6cixtZXRhZGF0YTppLHNlY3Rpb25zOm99fWZ1bmN0aW9uIFl1KG4sZSx0KXtmb3IobGV0IHI9ZTtyPHQ7cisrKWlmKG5bcl0udHJpbSgpIT09XFxcIlxcXCIpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24qRW8obil7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2xldCB0PW5bZV07aWYodC5sZW5ndGg+MzI3Njh8fCF0LmluY2x1ZGVzKFxcXCI6OlxcXCIpKWNvbnRpbnVlO2xldCByPUp1KHQpO2lmKHIubGVuZ3RoPjApZm9yKGxldCBzIG9mIHIpeWllbGQgJHMocyxlKTtlbHNle2xldCBzPXp1KHQpO3MmJih5aWVsZCAkcyhzLGUpKX19fWZ1bmN0aW9uIEd1KG4pe2xldCBlPXt9O2ZvcihsZXQgdCBvZiBPYmplY3Qua2V5cyhuKSl7bGV0IHI9blt0XTtlW3QudG9Mb3dlckNhc2UoKV09e2tleTp0LHZhbHVlOl9uLmpzb24oUnMubGl0ZXJhbChyKSkscmF3OnJ9fXJldHVybiBlfWZ1bmN0aW9uIGN0KG4sZSl7dmFyIHI7bGV0IHQ9KHI9ZS5nZXRQYWlyT3JOZXh0TG93ZXIobikpPT1udWxsP3ZvaWQgMDpyWzFdO2lmKHQmJnQuZW5kPj1uKXJldHVybiB0fWZ1bmN0aW9uIFdmKG4pe3JldHVybiBPYmplY3Qua2V5cyhuKS5maWx0ZXIodD0+dC50b0xvd2VyQ2FzZSgpPT1cXFwidGFnc1xcXCJ8fHQudG9Mb3dlckNhc2UoKT09XFxcInRhZ1xcXCIpLm1hcCh0PT5RdShuW3RdLC9bLFxcXFxzXSsvKSkucmVkdWNlKCh0LHIpPT50LmNvbmNhdChyKSxbXSkubWFwKHQ9PnQuc3RhcnRzV2l0aChcXFwiI1xcXCIpP3Q6XFxcIiNcXFwiK3QpfWZ1bmN0aW9uIFF1KG4sZSl7cmV0dXJuIG49PW51bGx8fG49PW51bGw/W106QXJyYXkuaXNBcnJheShuKT9uLmZpbHRlcih0PT4hIXQpLm1hcCh0PT5RdSh0LGUpKS5yZWR1Y2UoKHQscik9PnQuY29uY2F0KHIpLFtdKTooXFxcIlxcXCIrbikuc3BsaXQoZSkuZmlsdGVyKHQ9PiEhdCkubWFwKHQ9PnQudHJpbSgpKS5maWx0ZXIodD0+dC5sZW5ndGg+MCl9dmFyICRlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy50YWdzPW5ldyBTZXQ7dGhpcy5saW5rcz1bXTt0aGlzLmlubGluZUZpZWxkcz17fX10YWcoZSl7dGhpcy50YWdzLmFkZChlKX1saW5rKGUpe3RoaXMubGlua3MuZmluZCh0PT50LmVxdWFscyhlKSl8fHRoaXMubGlua3MucHVzaChlKX1pbmxpbmVGaWVsZChlKXtsZXQgdD1lLmtleS50b0xvd2VyQ2FzZSgpO09iamVjdC5rZXlzKHRoaXMuaW5saW5lRmllbGRzKS5zb21lKHI9PnIudG9Mb3dlckNhc2UoKT09dCl8fCh0aGlzLmlubGluZUZpZWxkc1t0XT1lKX1maW5pc2hUYWdzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy50YWdzKX1maW5pc2hMaW5rcygpe3JldHVybiB0aGlzLmxpbmtzLm1hcChlPT5lLnRvT2JqZWN0KCkpfWZpbmlzaElubGluZUZpZWxkcygpe3JldHVybiBHdCh0aGlzLmlubGluZUZpZWxkcyxXdSl9fSxwbz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixzLGksbyl7dGhpcy5wYXRoPWU7dGhpcy5zdGF0cz10O3RoaXMubGVuZ3RoPXI7dGhpcy5tZXRhZGF0YT1zO3RoaXMuc2VjdGlvbnM9aTt0aGlzLmZyb250bWF0dGVyPW99YnVpbGQoKXtyZXR1cm57JHBhdGg6dGhpcy5wYXRoLCRjdGltZTp0aGlzLnN0YXRzLmN0aW1lLCRtdGltZTp0aGlzLnN0YXRzLm10aW1lLCRzaXplOnRoaXMuc3RhdHMuc2l6ZSwkZXh0ZW5zaW9uOlZhKHRoaXMucGF0aCksJHBvc2l0aW9uOntzdGFydDowLGVuZDp0aGlzLmxlbmd0aH0sJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkc2VjdGlvbnM6dGhpcy5zZWN0aW9ucy5tYXAoZT0+ZS5idWlsZCgpKSwkZnJvbnRtYXR0ZXI6dGhpcy5mcm9udG1hdHRlcn19fSxfcj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixzLGkpe3RoaXMuc3RhcnQ9ZTt0aGlzLmVuZD10O3RoaXMudGl0bGU9cjt0aGlzLmxldmVsPXM7dGhpcy5vcmRpbmFsPWk7dGhpcy5ibG9ja3M9W107dGhpcy5tZXRhZGF0YT1uZXcgJGV9YmxvY2soZSl7dGhpcy5ibG9ja3MucHVzaChlKX1idWlsZCgpe3JldHVybnskdGl0bGU6dGhpcy50aXRsZSwkb3JkaW5hbDp0aGlzLm9yZGluYWwsJGxldmVsOnRoaXMubGV2ZWwsJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkcG9zaXRpb246e3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfSwkYmxvY2tzOnRoaXMuYmxvY2tzLm1hcChlPT5lLmJ1aWxkKCkpfX19LERvPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLHMpe3RoaXMuc3RhcnQ9ZTt0aGlzLmVuZD10O3RoaXMub3JkaW5hbD1yO3RoaXMuYmxvY2tJZD1zO3RoaXMudHlwZT1cXFwibGlzdFxcXCI7dGhpcy5tZXRhZGF0YT1uZXcgJGU7dGhpcy5pdGVtcz1bXX1idWlsZCgpe3JldHVybnskb3JkaW5hbDp0aGlzLm9yZGluYWwsJHBvc2l0aW9uOntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH0sJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkdHlwZTpcXFwibGlzdFxcXCIsJGJsb2NrSWQ6dGhpcy5ibG9ja0lkLCRlbGVtZW50czp0aGlzLml0ZW1zLm1hcChlPT5lLmJ1aWxkKCkpfX19LHFzPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLHMsaSxvLGEsdSl7dGhpcy5zdGFydD1lO3RoaXMuZW5kPXQ7dGhpcy5vcmRpbmFsPXI7dGhpcy5sYW5ndWFnZXM9czt0aGlzLnN0eWxlPWk7dGhpcy5jb250ZW50U3RhcnQ9bzt0aGlzLmNvbnRlbnRFbmQ9YTt0aGlzLmJsb2NrSWQ9dTt0aGlzLnR5cGU9XFxcImNvZGVibG9ja1xcXCI7dGhpcy5tZXRhZGF0YT1uZXcgJGV9YnVpbGQoKXtyZXR1cm57JHR5cGU6XFxcImNvZGVibG9ja1xcXCIsJG9yZGluYWw6dGhpcy5vcmRpbmFsLCRwb3NpdGlvbjp7c3RhcnQ6dGhpcy5zdGFydCxlbmQ6dGhpcy5lbmR9LCRpbmZpZWxkczp0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLCR0YWdzOnRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLCRsaW5rczp0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksJGJsb2NrSWQ6dGhpcy5ibG9ja0lkLCRsYW5ndWFnZXM6dGhpcy5sYW5ndWFnZXMsJHN0eWxlOnRoaXMuc3R5bGUsJGNvbnRlbnRQb3NpdGlvbjp7c3RhcnQ6dGhpcy5jb250ZW50U3RhcnQsZW5kOnRoaXMuY29udGVudEVuZH19fX0seW89Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIscyxpKXt0aGlzLnN0YXJ0PWU7dGhpcy5lbmQ9dDt0aGlzLm9yZGluYWw9cjt0aGlzLmRhdGE9czt0aGlzLmJsb2NrSWQ9aTt0aGlzLnR5cGU9XFxcImRhdGFibG9ja1xcXCI7dGhpcy5tZXRhZGF0YT1uZXcgJGV9YnVpbGQoKXtyZXR1cm57JHR5cGU6XFxcImRhdGFibG9ja1xcXCIsJG9yZGluYWw6dGhpcy5vcmRpbmFsLCRwb3NpdGlvbjp7c3RhcnQ6dGhpcy5zdGFydCxlbmQ6dGhpcy5lbmR9LCRpbmZpZWxkczp0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLCR0YWdzOnRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLCRsaW5rczp0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksJGJsb2NrSWQ6dGhpcy5ibG9ja0lkLCRkYXRhOnRoaXMuZGF0YX19fSxnbz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixzLGkpe3RoaXMuc3RhcnQ9ZTt0aGlzLmVuZD10O3RoaXMub3JkaW5hbD1yO3RoaXMudHlwZT1zO3RoaXMuYmxvY2tJZD1pO3RoaXMubWV0YWRhdGE9bmV3ICRlfWJ1aWxkKCl7cmV0dXJueyR0eXBlOnRoaXMudHlwZSwkb3JkaW5hbDp0aGlzLm9yZGluYWwsJHBvc2l0aW9uOntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH0sJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkYmxvY2tJZDp0aGlzLmJsb2NrSWR9fX0sYm89Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIscyxpLG8sYSl7dGhpcy5zdGFydD1lO3RoaXMuZW5kPXQ7dGhpcy5wYXJlbnRMaW5lPXI7dGhpcy5zeW1ib2w9czt0aGlzLmJsb2NrSWQ9aTt0aGlzLnN0YXR1cz1vO3RoaXMudGV4dD1hO3RoaXMubWV0YWRhdGE9bmV3ICRlO3RoaXMuZWxlbWVudHM9W119YnVpbGQoKXtyZXR1cm57JHBhcmVudExpbmU6dGhpcy5wYXJlbnRMaW5lLCRwb3NpdGlvbjp7c3RhcnQ6dGhpcy5zdGFydCxlbmQ6dGhpcy5lbmR9LCRibG9ja0lkOnRoaXMuYmxvY2tJZCwkZWxlbWVudHM6dGhpcy5lbGVtZW50cy5tYXAoZT0+ZS5idWlsZCgpKSwkdHlwZTp0aGlzLnN0YXR1cz9cXFwidGFza1xcXCI6XFxcImxpc3RcXFwiLCRpbmZpZWxkczp0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLCR0YWdzOnRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLCRsaW5rczp0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksJHN0YXR1czp0aGlzLnN0YXR1cywkc3ltYm9sOnRoaXMuc3ltYm9sLCR0ZXh0OnRoaXMudGV4dH19fTtmdW5jdGlvbiBYdShuLGUsdCxyKXt2YXIgbztsZXQgcz1uZXcgVG8obixyKSxpPUpTT04ucGFyc2UoZSk7Zm9yKGxldCBhIG9mIGkubm9kZXMpaWYoYS50eXBlIT1cXFwiZ3JvdXBcXFwiKWlmKGEudHlwZT09XFxcInRleHRcXFwiKXtsZXR7ZnJvbnRtYXR0ZXI6dSxtZXRhZGF0YTpsLGxpbmVzOmYsc2VjdGlvbnM6ZH09Rm8obixhLnRleHQsdC5jYWNoZXNbYS5pZF0pLG09bmV3IFZzKG4sYS5pZCxhLHUpO2QuZm9yRWFjaChoPT5tLnNlY3Rpb24oaCkpLHMuY2FyZChtKTtmb3IobGV0IGggaW4gbC50YWdzKXMubWV0YWRhdGEudGFnKGgpO2ZvcihsZXQgaCBvZihvPWwubGlua3MpIT1udWxsP286W10pcy5tZXRhZGF0YS5saW5rKGgpO2ZvcihsZXQgaCBvZiBFbyhmKSlzLm1ldGFkYXRhLmlubGluZUZpZWxkKGgpfWVsc2V7bGV0IHU9bmV3IFZzKG4sYS5pZCxhKTtzLmNhcmQodSl9cmV0dXJuIHMuYnVpbGQoKX12YXIgd289Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGF0aD1lO3RoaXMuaWQ9dDt0aGlzLm5vZGVKc29uPXI7dGhpcy5tZXRhZGF0YT1uZXcgJGV9YnVpbGQoKXtyZXR1cm57JGZpbGU6dGhpcy5wYXRoLCRpZDp0aGlzLmlkLCRwb3NpdGlvbjp7eDp0aGlzLm5vZGVKc29uLngseTp0aGlzLm5vZGVKc29uLnl9LCRkaW1lbnNpb25zOnt3aWR0aDp0aGlzLm5vZGVKc29uLndpZHRoLGhlaWdodDp0aGlzLm5vZGVKc29uLmhlaWdodH0sJGNvbG9yOnRoaXMubm9kZUpzb24uY29sb3IsJGxpbms6T2UuZmlsZSh0aGlzLnBhdGgpLndpdGhCbG9jayh0aGlzLmlkKS50b09iamVjdCgpfX19LFZzPWNsYXNzIGV4dGVuZHMgd297Y29uc3RydWN0b3IodCxyLHMsaSl7c3VwZXIodCxyLHMpO3RoaXMucGF0aD10O3RoaXMuaWQ9cjt0aGlzLm5vZGVKc29uPXM7dGhpcy5mcm9udG1hdHRlcj1pO3RoaXMuc2VjdGlvbnM9W119c2VjdGlvbih0KXtyZXR1cm4gdGhpcy5zZWN0aW9ucy5wdXNoKHQpLHR9YnVpbGQoKXtzd2l0Y2godGhpcy5ub2RlSnNvbi50eXBlKXtjYXNlXFxcInRleHRcXFwiOnJldHVybiB5ZShSKHt9LHN1cGVyLmJ1aWxkKCkpLHskaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkZnJvbnRtYXR0ZXI6dGhpcy5mcm9udG1hdHRlciwkc2VjdGlvbnM6dGhpcy5zZWN0aW9ucy5tYXAodD0+dC5idWlsZCgpKSwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCR0eXBlOlxcXCJ0ZXh0LWNhcmRcXFwiLCRjb2xvcjp0aGlzLm5vZGVKc29uLmNvbG9yfSk7Y2FzZVxcXCJmaWxlXFxcIjpyZXR1cm4geWUoUih7fSxzdXBlci5idWlsZCgpKSx7JGxpbmtlZEZpbGU6dGhpcy5ub2RlSnNvbi5maWxlfSk7Y2FzZVxcXCJsaW5rXFxcIjpyZXR1cm4geWUoUih7fSxzdXBlci5idWlsZCgpKSx7JHVybDp0aGlzLm5vZGVKc29uLnVybH0pfX19LFRvPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wYXRoPWU7dGhpcy5zdGF0cz10O3RoaXMuY2FyZHM9W107dGhpcy5tZXRhZGF0YT1uZXcgJGV9Y2FyZChlKXtyZXR1cm4gdGhpcy5jYXJkcy5wdXNoKGUpLGV9YnVpbGQoKXtyZXR1cm57JGNhcmRzOnRoaXMuY2FyZHMubWFwKGU9PmUuYnVpbGQoKSksJGN0aW1lOnRoaXMuc3RhdHMuY3RpbWUsJG10aW1lOnRoaXMuc3RhdHMubXRpbWUsJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkcGF0aDp0aGlzLnBhdGgsJHNpemU6dGhpcy5zdGF0cy5zaXplfX19O29ubWVzc2FnZT1hc3luYyBuPT57dHJ5e2xldCBlPW4uZGF0YTtpZihlLnR5cGU9PT1cXFwibWFya2Rvd25cXFwiKXtsZXQgdD1adShlLnBhdGgsZS5jb250ZW50cyxlLm1ldGFkYXRhLGUuc3RhdCk7cG9zdE1lc3NhZ2Uoe3R5cGU6XFxcIm1hcmtkb3duXFxcIixyZXN1bHQ6dH0pfWVsc2UgaWYoZS50eXBlPT09XFxcImNhbnZhc1xcXCIpe2xldCB0PVh1KGUucGF0aCxlLmNvbnRlbnRzLGUuaW5kZXgsZS5zdGF0KTtwb3N0TWVzc2FnZSh7dHlwZTpcXFwiY2FudmFzXFxcIixyZXN1bHQ6dH0pfWVsc2UgcG9zdE1lc3NhZ2UoeyRlcnJvcjpcXFwiVW5zdXBwb3J0ZWQgaW1wb3J0IG1ldGhvZC5cXFwifSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihgRGF0YWNvcmUgSW5kZXhlciBmYWlsZWQgdG8gaW5kZXggJHtuLmRhdGEucGF0aH06ICR7ZX1gKSxwb3N0TWVzc2FnZSh7JGVycm9yOmUubWVzc2FnZX0pfX07XFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxld29nSUNKMlpYSnphVzl1SWpvZ015d0tJQ0FpYzI5MWNtTmxjeUk2SUZzaUxpNHZMaTR2Y0dGeWMybHRiVzl1TDJKMWFXeGtMM0JoY25OcGJXMXZiaTUxYldRdWJXbHVMbXB6SWl3Z0lpNHVMeTR1TDNOdmNuUmxaQzFpZEhKbFpTOWlLM1J5WldVdWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMMlZ5Y205eWN5NXFjeUlzSUNJdUxpOHVMaTlzZFhodmJpOXpjbU12YVcxd2JDOW1iM0p0WVhSekxtcHpJaXdnSWk0dUx5NHVMMngxZUc5dUwzTnlZeTlwYlhCc0wzVjBhV3d1YW5NaUxDQWlMaTR2TGk0dmJIVjRiMjR2YzNKakwybHRjR3d2Wlc1bmJHbHphQzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmFXMXdiQzltYjNKdFlYUjBaWEl1YW5NaUxDQWlMaTR2TGk0dmJIVjRiMjR2YzNKakwybHRjR3d2YVc1MllXeHBaQzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmVtOXVaUzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmVtOXVaWE12YzNsemRHVnRXbTl1WlM1cWN5SXNJQ0l1TGk4dUxpOXNkWGh2Ymk5emNtTXZlbTl1WlhNdlNVRk9RVnB2Ym1VdWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMM3B2Ym1WekwyWnBlR1ZrVDJabWMyVjBXbTl1WlM1cWN5SXNJQ0l1TGk4dUxpOXNkWGh2Ymk5emNtTXZlbTl1WlhNdmFXNTJZV3hwWkZwdmJtVXVhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDJsdGNHd3ZlbTl1WlZWMGFXd3Vhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDNObGRIUnBibWR6TG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OXBiWEJzTDJ4dlkyRnNaUzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmFXMXdiQzl5WldkbGVGQmhjbk5sY2k1cWN5SXNJQ0l1TGk4dUxpOXNkWGh2Ymk5emNtTXZaSFZ5WVhScGIyNHVhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDJsdWRHVnlkbUZzTG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OXBibVp2TG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OXBiWEJzTDJScFptWXVhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDJsdGNHd3ZaR2xuYVhSekxtcHpJaXdnSWk0dUx5NHVMMngxZUc5dUwzTnlZeTlwYlhCc0wzUnZhMlZ1VUdGeWMyVnlMbXB6SWl3Z0lpNHVMeTR1TDJ4MWVHOXVMM055WXk5cGJYQnNMMk52Ym5abGNuTnBiMjV6TG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OWtZWFJsZEdsdFpTNXFjeUlzSUNJdUxpOHVMaTh1TGk5emNtTXZkWFJwYkhNdmJtOXliV0ZzYVhwbGNuTXVkSE1pTENBaUxpNHZMaTR2WlcxdmFta3RjbVZuWlhndmFXNWtaWGd1Yldweklpd2dJaTR1THk0dUx5NHVMM055WXk5bGVIQnlaWE56YVc5dUwyeHBibXN1ZEhNaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmJtOWtaWE12YVdSbGJuUnBkSGt1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmRtbHphWFF1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdlpHOWpMMlJwY21WamRHbDJaWE11YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdlpHOWpMMkZ1WTJodmNuTXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Wkc5akwyRndjR3g1VW1WMmFYWmxjaTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5dWIyUmxjeTkwYjBwVExtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMjV2WkdWekwwNXZaR1V1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmJtOWtaWE12UVd4cFlYTXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Ym05a1pYTXZVMk5oYkdGeUxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMlJ2WXk5amNtVmhkR1ZPYjJSbExtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMjV2WkdWekwwTnZiR3hsWTNScGIyNHVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVVOdmJXMWxiblF1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMzUnlhVzVuYVdaNUwyWnZiR1JHYkc5M1RHbHVaWE11YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMzUnlhVzVuYVdaNUwzTjBjbWx1WjJsbWVWTjBjbWx1Wnk1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpkSEpwYm1kcFpua3ZjM1J5YVc1bmFXWjVMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sUVlXbHlMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDJ4dlp5NXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZlV0Z0YkMweExqRXZiV1Z5WjJVdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZibTlrWlhNdllXUmtVR0ZwY2xSdlNsTk5ZWEF1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmJtOWtaWE12VUdGcGNpNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6ZEhKcGJtZHBabmt2YzNSeWFXNW5hV1o1UTI5c2JHVmpkR2x2Ymk1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXViMlJsY3k5WlFVMU1UV0Z3TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzTmphR1Z0WVM5amIyMXRiMjR2YldGd0xtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMjV2WkdWekwxbEJUVXhUWlhFdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwyTnZiVzF2Ymk5elpYRXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzJOb1pXMWhMMk52YlcxdmJpOXpkSEpwYm1jdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwyTnZiVzF2Ymk5dWRXeHNMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNOamFHVnRZUzlqYjNKbEwySnZiMnd1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMzUnlhVzVuYVdaNUwzTjBjbWx1WjJsbWVVNTFiV0psY2k1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdlkyOXlaUzltYkc5aGRDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZZMjl5WlM5cGJuUXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzJOb1pXMWhMMk52Y21VdmMyTm9aVzFoTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzTmphR1Z0WVM5cWMyOXVMM05qYUdWdFlTNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZlV0Z0YkMweExqRXZZbWx1WVhKNUxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMM05qYUdWdFlTOTVZVzFzTFRFdU1TOXdZV2x5Y3k1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdmVXRnRiQzB4TGpFdmIyMWhjQzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5elkyaGxiV0V2ZVdGdGJDMHhMakV2WW05dmJDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZlV0Z0YkMweExqRXZabXh2WVhRdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwzbGhiV3d0TVM0eEwybHVkQzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5elkyaGxiV0V2ZVdGdGJDMHhMakV2YzJWMExtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMM05qYUdWdFlTOTVZVzFzTFRFdU1TOTBhVzFsYzNSaGJYQXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzJOb1pXMWhMM2xoYld3dE1TNHhMM05qYUdWdFlTNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZkR0ZuY3k1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdlUyTm9aVzFoTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzTjBjbWx1WjJsbWVTOXpkSEpwYm1kcFpubEViMk4xYldWdWRDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzlrYjJNdlJHOWpkVzFsYm5RdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZaWEp5YjNKekxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMk52YlhCdmMyVXZjbVZ6YjJ4MlpTMXdjbTl3Y3k1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOWpiMjF3YjNObEwzVjBhV3d0WTI5dWRHRnBibk10Ym1WM2JHbHVaUzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDNWMGFXd3RabXh2ZHkxcGJtUmxiblF0WTJobFkyc3Vhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2WTI5dGNHOXpaUzkxZEdsc0xXMWhjQzFwYm1Oc2RXUmxjeTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDNKbGMyOXNkbVV0WW14dlkyc3RiV0Z3TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyTnZiWEJ2YzJVdmNtVnpiMngyWlMxaWJHOWpheTF6WlhFdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZZMjl0Y0c5elpTOXlaWE52YkhabExXVnVaQzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDNKbGMyOXNkbVV0Wm14dmR5MWpiMnhzWldOMGFXOXVMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDJOdmJYQnZjMlV2WTI5dGNHOXpaUzFqYjJ4c1pXTjBhVzl1TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyTnZiWEJ2YzJVdmNtVnpiMngyWlMxaWJHOWpheTF6WTJGc1lYSXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2WTI5dGNHOXpaUzl5WlhOdmJIWmxMV1pzYjNjdGMyTmhiR0Z5TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyTnZiWEJ2YzJVdlkyOXRjRzl6WlMxelkyRnNZWEl1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdlkyOXRjRzl6WlM5MWRHbHNMV1Z0Y0hSNUxYTmpZV3hoY2kxd2IzTnBkR2x2Ymk1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOWpiMjF3YjNObEwyTnZiWEJ2YzJVdGJtOWtaUzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDJOdmJYQnZjMlV0Wkc5akxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMk52YlhCdmMyVXZZMjl0Y0c5elpYSXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Y0dGeWMyVXZZM04wTFhacGMybDBMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNCaGNuTmxMMk56ZEM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXdZWEp6WlM5c1pYaGxjaTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5d1lYSnpaUzlzYVc1bExXTnZkVzUwWlhJdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjR0Z5YzJVdmNHRnljMlZ5TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzQjFZbXhwWXkxaGNHa3Vhbk1pTENBaUxpNHZMaTR2TGk0dmMzSmpMMmx1WkdWNEwybHRjRzl5ZEM5dFlYSnJaRzkzYmk1MGN5SXNJQ0l1TGk4dUxpOHVMaTl6Y21NdlpYaHdjbVZ6YzJsdmJpOXdZWEp6WlhJdWRITWlMQ0FpTGk0dkxpNHZMaTR2YzNKakwyVjRjSEpsYzNOcGIyNHZiR2wwWlhKaGJDNTBjeUlzSUNJdUxpOHVMaTh1TGk5emNtTXZZWEJwTDNKbGMzVnNkQzUwY3lJc0lDSXVMaTh1TGk4dUxpOXpjbU12Wlhod2NtVnpjMmx2Ymk5bWFXeDBaWEp6TG5Seklpd2dJaTR1THk0dUx5NHVMM055WXk5bGVIQnlaWE56YVc5dUwyVjRjSEpsYzNOcGIyNHVkSE1pTENBaUxpNHZMaTR2TGk0dmMzSmpMMmx1WkdWNEwybHRjRzl5ZEM5cGJteHBibVV0Wm1sbGJHUXVkSE1pTENBaUxpNHZMaTR2TGk0dmMzSmpMM1YwYVd4ekwyUmhkR0V1ZEhNaUxDQWlMaTR2TGk0dkxpNHZjM0pqTDJsdVpHVjRMM1I1Y0dWekwycHpiMjR2WTI5dGJXOXVMblJ6SWl3Z0lpNHVMeTR1THk0dUwzTnlZeTlwYm1SbGVDOTBlWEJsY3k5NVlXMXNMblJ6SWl3Z0lpNHVMeTR1THk0dUwzTnlZeTlwYm1SbGVDOXBiWEJ2Y25RdlkyRnVkbUZ6TG5Seklpd2dJaTR1THk0dUx5NHVMM055WXk5cGJtUmxlQzkzWldJdGQyOXlhMlZ5TDJsdGNHOXlkR1Z5TG5kdmNtdGxjaTUwY3lKZExBb2dJQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZJRnNpSVdaMWJtTjBhVzl1S0c0c2RDbDdYQ0p2WW1wbFkzUmNJajA5ZEhsd1pXOW1JR1Y0Y0c5eWRITW1KbHdpYjJKcVpXTjBYQ0k5UFhSNWNHVnZaaUJ0YjJSMWJHVS9iVzlrZFd4bExtVjRjRzl5ZEhNOWRDZ3BPbHdpWm5WdVkzUnBiMjVjSWowOWRIbHdaVzltSUdSbFptbHVaU1ltWkdWbWFXNWxMbUZ0WkQ5a1pXWnBibVVvVzEwc2RDazZYQ0p2WW1wbFkzUmNJajA5ZEhsd1pXOW1JR1Y0Y0c5eWRITS9aWGh3YjNKMGN5NVFZWEp6YVcxdGIyNDlkQ2dwT200dVVHRnljMmx0Ylc5dVBYUW9LWDBvWENKMWJtUmxabWx1WldSY0lpRTlkSGx3Wlc5bUlITmxiR1kvYzJWc1pqcDBhR2x6TEdaMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUdaMWJtTjBhVzl1S0c0cGUzWmhjaUIwUFh0OU8yWjFibU4wYVc5dUlISW9aU2w3YVdZb2RGdGxYU2x5WlhSMWNtNGdkRnRsWFM1bGVIQnZjblJ6TzNaaGNpQjFQWFJiWlYwOWUyazZaU3hzT2lFeExHVjRjRzl5ZEhNNmUzMTlPM0psZEhWeWJpQnVXMlZkTG1OaGJHd29kUzVsZUhCdmNuUnpMSFVzZFM1bGVIQnZjblJ6TEhJcExIVXViRDBoTUN4MUxtVjRjRzl5ZEhOOWNtVjBkWEp1SUhJdWJUMXVMSEl1WXoxMExISXVaRDFtZFc1amRHbHZiaWh1TEhRc1pTbDdjaTV2S0c0c2RDbDhmRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNodUxIUXNlMk52Ym1acFozVnlZV0pzWlRvaE1TeGxiblZ0WlhKaFlteGxPaUV3TEdkbGREcGxmU2w5TEhJdWNqMW1kVzVqZEdsdmJpaHVLWHRQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2JpeGNJbDlmWlhOTmIyUjFiR1ZjSWl4N2RtRnNkV1U2SVRCOUtYMHNjaTV1UFdaMWJtTjBhVzl1S0c0cGUzWmhjaUIwUFc0bUptNHVYMTlsYzAxdlpIVnNaVDltZFc1amRHbHZiaWdwZTNKbGRIVnliaUJ1TG1SbFptRjFiSFI5T21aMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUc1OU8zSmxkSFZ5YmlCeUxtUW9kQ3hjSW1GY0lpeDBLU3gwZlN4eUxtODlablZ1WTNScGIyNG9iaXgwS1h0eVpYUjFjbTRnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0c0c2RDbDlMSEl1Y0QxY0lsd2lMSElvY2k1elBUQXBmU2hiWm5WdVkzUnBiMjRvYml4MExISXBlMXdpZFhObElITjBjbWxqZEZ3aU8yWjFibU4wYVc5dUlHVW9iaWw3YVdZb0lTaDBhR2x6SUdsdWMzUmhibU5sYjJZZ1pTa3BjbVYwZFhKdUlHNWxkeUJsS0c0cE8zUm9hWE11WHoxdWZYWmhjaUIxUFdVdWNISnZkRzkwZVhCbE8yWjFibU4wYVc5dUlHOG9iaXgwS1h0bWIzSW9kbUZ5SUhJOU1EdHlQRzQ3Y2lzcktYUW9jaWw5Wm5WdVkzUnBiMjRnYVNodUxIUXNjaWw3Y21WMGRYSnVJR1oxYm1OMGFXOXVLRzRzZENsN2J5aDBMbXhsYm1kMGFDeG1kVzVqZEdsdmJpaHlLWHR1S0hSYmNsMHNjaXgwS1gwcGZTaG1kVzVqZEdsdmJpaHlMR1VzZFNsN2REMXVLSFFzY2l4bExIVXBmU3h5S1N4MGZXWjFibU4wYVc5dUlHRW9iaXgwS1h0eVpYUjFjbTRnYVNobWRXNWpkR2x2YmloMExISXNaU3gxS1h0eVpYUjFjbTRnZEM1amIyNWpZWFFvVzI0b2NpeGxMSFVwWFNsOUxGdGRMSFFwZldaMWJtTjBhVzl1SUdZb2JpeDBLWHQyWVhJZ2NqMTdkam93TEdKMVpqcDBmVHR5WlhSMWNtNGdieWh1TEdaMWJtTjBhVzl1S0NsN2RtRnlJRzQ3Y2oxN2RqcHlMblk4UERGOEtHNDljaTVpZFdZc2Jsc3dYVDQrTnlrc1luVm1PbVoxYm1OMGFXOXVLRzRwZTNaaGNpQjBQV2tvWm5WdVkzUnBiMjRvYml4MExISXNaU2w3Y21WMGRYSnVJRzR1WTI5dVkyRjBLSEk5UFQxbExteGxibWQwYUMweFAwSjFabVpsY2k1bWNtOXRLRnQwTERCZEtTNXlaV0ZrVlVsdWRERTJRa1VvTUNrNlpTNXlaV0ZrVlVsdWRERTJRa1VvY2lrcGZTeGJYU3h1S1R0eVpYUjFjbTRnUW5WbVptVnlMbVp5YjIwb1lTaG1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNG9ianc4TVNZMk5UVXpOU2srUGpoOUxIUXBLWDBvY2k1aWRXWXBmWDBwTEhKOVpuVnVZM1JwYjI0Z1l5Z3BlM0psZEhWeWJsd2lkVzVrWldacGJtVmtYQ0loUFhSNWNHVnZaaUJDZFdabVpYSjlablZ1WTNScGIyNGdjeWdwZTJsbUtDRmpLQ2twZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpUW5WbVptVnlJR2RzYjJKaGJDQmtiMlZ6SUc1dmRDQmxlR2x6ZERzZ2NHeGxZWE5sSUhWelpTQjNaV0p3WVdOcklHbG1JSGx2ZFNCdVpXVmtJSFJ2SUhCaGNuTmxJRUoxWm1abGNuTWdhVzRnZEdobElHSnliM2R6WlhJdVhDSXBmV1oxYm1OMGFXOXVJR3dvYmlsN2N5Z3BPM1poY2lCMFBXa29ablZ1WTNScGIyNG9iaXgwS1h0eVpYUjFjbTRnYml0MGZTd3dMRzRwTzJsbUtIUWxPQ0U5TUNsMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKVWFHVWdZbWwwY3lCYlhDSXJiaTVxYjJsdUtGd2lMQ0JjSWlrclhDSmRJR0ZrWkNCMWNDQjBieUJjSWl0MEsxd2lJSGRvYVdOb0lHbHpJRzV2ZENCaGJpQmxkbVZ1SUc1MWJXSmxjaUJ2WmlCaWVYUmxjenNnZEdobElIUnZkR0ZzSUhOb2IzVnNaQ0JpWlNCa2FYWnBjMmxpYkdVZ1lua2dPRndpS1R0MllYSWdjaXgxUFhRdk9DeHZQU2h5UFdaMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCdVBqUTRmU3hwS0daMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlHNThmQ2h5S0hRcFAzUTZiaWw5TEc1MWJHd3NiaWtwTzJsbUtHOHBkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHOHJYQ0lnWW1sMElISmhibWRsSUhKbGNYVmxjM1JsWkNCbGVHTmxaV1J6SURRNElHSnBkQ0FvTmlCaWVYUmxLU0JPZFcxaVpYSWdiV0Y0TGx3aUtUdHlaWFIxY200Z2JtVjNJR1VvWm5WdVkzUnBiMjRvZEN4eUtYdDJZWElnWlQxMUszSTdjbVYwZFhKdUlHVStkQzVzWlc1bmRHZy9lQ2h5TEhVdWRHOVRkSEpwYm1jb0tTdGNJaUJpZVhSbGMxd2lLVHBpS0dVc2FTaG1kVzVqZEdsdmJpaHVMSFFwZTNaaGNpQnlQV1lvZEN4dUxtSjFaaWs3Y21WMGRYSnVlMk52Ykd3NmJpNWpiMnhzTG1OdmJtTmhkQ2h5TG5ZcExHSjFaanB5TG1KMVpuMTlMSHRqYjJ4c09sdGRMR0oxWmpwMExuTnNhV05sS0hJc1pTbDlMRzRwTG1OdmJHd3BmU2w5Wm5WdVkzUnBiMjRnYUNodUxIUXBlM0psZEhWeWJpQnVaWGNnWlNobWRXNWpkR2x2YmloeUxHVXBlM0psZEhWeWJpQnpLQ2tzWlN0MFBuSXViR1Z1WjNSb1AzZ29aU3gwSzF3aUlHSjVkR1Z6SUdadmNpQmNJaXR1S1RwaUtHVXJkQ3h5TG5Oc2FXTmxLR1VzWlN0MEtTbDlLWDFtZFc1amRHbHZiaUJ3S0c0c2RDbDdhV1lvWENKdWRXMWlaWEpjSWlFOWRIbHdaVzltS0hJOWRDbDhmRTFoZEdndVpteHZiM0lvY2lraFBUMXlmSHgwUERCOGZIUStOaWwwYUhKdmR5QnVaWGNnUlhKeWIzSW9iaXRjSWlCeVpYRjFhWEpsY3lCcGJuUmxaMlZ5SUd4bGJtZDBhQ0JwYmlCeVlXNW5aU0JiTUN3Z05sMHVYQ0lwTzNaaGNpQnlmV1oxYm1OMGFXOXVJR1FvYmlsN2NtVjBkWEp1SUhBb1hDSjFhVzUwUWtWY0lpeHVLU3hvS0Z3aWRXbHVkRUpGS0Z3aUsyNHJYQ0lwWENJc2Jpa3ViV0Z3S0daMWJtTjBhVzl1S0hRcGUzSmxkSFZ5YmlCMExuSmxZV1JWU1c1MFFrVW9NQ3h1S1gwcGZXWjFibU4wYVc5dUlIWW9iaWw3Y21WMGRYSnVJSEFvWENKMWFXNTBURVZjSWl4dUtTeG9LRndpZFdsdWRFeEZLRndpSzI0clhDSXBYQ0lzYmlrdWJXRndLR1oxYm1OMGFXOXVLSFFwZTNKbGRIVnliaUIwTG5KbFlXUlZTVzUwVEVVb01DeHVLWDBwZldaMWJtTjBhVzl1SUdjb2JpbDdjbVYwZFhKdUlIQW9YQ0pwYm5SQ1JWd2lMRzRwTEdnb1hDSnBiblJDUlNoY0lpdHVLMXdpS1Z3aUxHNHBMbTFoY0NobWRXNWpkR2x2YmloMEtYdHlaWFIxY200Z2RDNXlaV0ZrU1c1MFFrVW9NQ3h1S1gwcGZXWjFibU4wYVc5dUlHMG9iaWw3Y21WMGRYSnVJSEFvWENKcGJuUk1SVndpTEc0cExHZ29YQ0pwYm5STVJTaGNJaXR1SzF3aUtWd2lMRzRwTG0xaGNDaG1kVzVqZEdsdmJpaDBLWHR5WlhSMWNtNGdkQzV5WldGa1NXNTBURVVvTUN4dUtYMHBmV1oxYm1OMGFXOXVJSGtvYmlsN2NtVjBkWEp1SUc0Z2FXNXpkR0Z1WTJWdlppQmxmV1oxYm1OMGFXOXVJRVVvYmlsN2NtVjBkWEp1WENKYmIySnFaV04wSUVGeWNtRjVYVndpUFQwOWUzMHVkRzlUZEhKcGJtY3VZMkZzYkNodUtYMW1kVzVqZEdsdmJpQjNLRzRwZTNKbGRIVnliaUJqS0NrbUprSjFabVpsY2k1cGMwSjFabVpsY2lodUtYMW1kVzVqZEdsdmJpQmlLRzRzZENsN2NtVjBkWEp1ZTNOMFlYUjFjem9oTUN4cGJtUmxlRHB1TEhaaGJIVmxPblFzWm5WeWRHaGxjM1E2TFRFc1pYaHdaV04wWldRNlcxMTlmV1oxYm1OMGFXOXVJSGdvYml4MEtYdHlaWFIxY200Z1JTaDBLWHg4S0hROVczUmRLU3g3YzNSaGRIVnpPaUV4TEdsdVpHVjRPaTB4TEhaaGJIVmxPbTUxYkd3c1puVnlkR2hsYzNRNmJpeGxlSEJsWTNSbFpEcDBmWDFtZFc1amRHbHZiaUJDS0c0c2RDbDdhV1lvSVhRcGNtVjBkWEp1SUc0N2FXWW9iaTVtZFhKMGFHVnpkRDUwTG1aMWNuUm9aWE4wS1hKbGRIVnliaUJ1TzNaaGNpQnlQVzR1Wm5WeWRHaGxjM1E5UFQxMExtWjFjblJvWlhOMFAyWjFibU4wYVc5dUtHNHNkQ2w3YVdZb1puVnVZM1JwYjI0b0tYdHBaaWgyYjJsa0lEQWhQVDFsTGw5emRYQndiM0owYzFObGRDbHlaWFIxY200Z1pTNWZjM1Z3Y0c5eWRITlRaWFE3ZG1GeUlHNDlYQ0oxYm1SbFptbHVaV1JjSWlFOWRIbHdaVzltSUZObGREdHlaWFIxY200Z1pTNWZjM1Z3Y0c5eWRITlRaWFE5Yml4dWZTZ3BKaVpCY25KaGVTNW1jbTl0S1h0bWIzSW9kbUZ5SUhJOWJtVjNJRk5sZENodUtTeDFQVEE3ZFR4MExteGxibWQwYUR0MUt5c3BjaTVoWkdRb2RGdDFYU2s3ZG1GeUlHODlRWEp5WVhrdVpuSnZiU2h5S1R0eVpYUjFjbTRnYnk1emIzSjBLQ2tzYjMxbWIzSW9kbUZ5SUdrOWUzMHNZVDB3TzJFOGJpNXNaVzVuZEdnN1lTc3JLV2xiYmx0aFhWMDlJVEE3Wm05eUtIWmhjaUJtUFRBN1pqeDBMbXhsYm1kMGFEdG1LeXNwYVZ0MFcyWmRYVDBoTUR0MllYSWdZejFiWFR0bWIzSW9kbUZ5SUhNZ2FXNGdhU2tvZTMwcExtaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29hU3h6S1NZbVl5NXdkWE5vS0hNcE8zSmxkSFZ5YmlCakxuTnZjblFvS1N4amZTaHVMbVY0Y0dWamRHVmtMSFF1Wlhod1pXTjBaV1FwT25RdVpYaHdaV04wWldRN2NtVjBkWEp1ZTNOMFlYUjFjenB1TG5OMFlYUjFjeXhwYm1SbGVEcHVMbWx1WkdWNExIWmhiSFZsT200dWRtRnNkV1VzWm5WeWRHaGxjM1E2ZEM1bWRYSjBhR1Z6ZEN4bGVIQmxZM1JsWkRweWZYMTJZWElnYWoxN2ZUdG1kVzVqZEdsdmJpQlRLRzRzZENsN2FXWW9keWh1S1NseVpYUjFjbTU3YjJabWMyVjBPblFzYkdsdVpUb3RNU3hqYjJ4MWJXNDZMVEY5TzI0Z2FXNGdhbng4S0dwYmJsMDllMzBwTzJadmNpaDJZWElnY2oxcVcyNWRMR1U5TUN4MVBUQXNiejB3TEdrOWREdHBQajB3T3lsN2FXWW9hU0JwYmlCeUtYdGxQWEpiYVYwdWJHbHVaU3d3UFQwOWJ5WW1LRzg5Y2x0cFhTNXNhVzVsVTNSaGNuUXBPMkp5WldGcmZTaGNJbHhjYmx3aVBUMDliaTVqYUdGeVFYUW9hU2w4ZkZ3aVhGeHlYQ0k5UFQxdUxtTm9ZWEpCZENocEtTWW1YQ0pjWEc1Y0lpRTlQVzR1WTJoaGNrRjBLR2tyTVNrcEppWW9kU3NyTERBOVBUMXZKaVlvYnoxcEt6RXBLU3hwTFMxOWRtRnlJR0U5WlN0MUxHWTlkQzF2TzNKbGRIVnliaUJ5VzNSZFBYdHNhVzVsT21Fc2JHbHVaVk4wWVhKME9tOTlMSHR2Wm1aelpYUTZkQ3hzYVc1bE9tRXJNU3hqYjJ4MWJXNDZaaXN4ZlgxbWRXNWpkR2x2YmlCZktHNHBlMmxtS0NGNUtHNHBLWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbTV2ZENCaElIQmhjbk5sY2pvZ1hDSXJiaWw5Wm5WdVkzUnBiMjRnVENodUxIUXBlM0psZEhWeWJsd2ljM1J5YVc1blhDSTlQWFI1Y0dWdlppQnVQMjR1WTJoaGNrRjBLSFFwT201YmRGMTlablZ1WTNScGIyNGdUeWh1S1h0cFppaGNJbTUxYldKbGNsd2lJVDEwZVhCbGIyWWdiaWwwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0p1YjNRZ1lTQnVkVzFpWlhJNklGd2lLMjRwZldaMWJtTjBhVzl1SUdzb2JpbDdhV1lvWENKbWRXNWpkR2x2Ymx3aUlUMTBlWEJsYjJZZ2JpbDBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSnViM1FnWVNCbWRXNWpkR2x2YmpvZ1hDSXJiaWw5Wm5WdVkzUnBiMjRnVUNodUtYdHBaaWhjSW5OMGNtbHVaMXdpSVQxMGVYQmxiMllnYmlsMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKdWIzUWdZU0J6ZEhKcGJtYzZJRndpSzI0cGZYWmhjaUJ4UFRJc1FUMHpMRWs5T0N4R1BUVXFTU3hOUFRRcVNTeDZQVndpSUNCY0lqdG1kVzVqZEdsdmJpQlNLRzRzZENsN2NtVjBkWEp1SUc1bGR5QkJjbkpoZVNoMEt6RXBMbXB2YVc0b2JpbDlablZ1WTNScGIyNGdWU2h1TEhRc2NpbDdkbUZ5SUdVOWRDMXVMbXhsYm1kMGFEdHlaWFIxY200Z1pUdzlNRDl1T2xJb2NpeGxLU3R1ZldaMWJtTjBhVzl1SUZjb2JpeDBMSElzWlNsN2NtVjBkWEp1ZTJaeWIyMDZiaTEwUGpBL2JpMTBPakFzZEc4NmJpdHlQbVUvWlRwdUszSjlmV1oxYm1OMGFXOXVJRVFvYml4MEtYdDJZWElnY2l4bExIVXNieXhtTEdNOWRDNXBibVJsZUN4elBXTXViMlptYzJWMExHdzlNVHRwWmloelBUMDliaTVzWlc1bmRHZ3BjbVYwZFhKdVhDSkhiM1FnZEdobElHVnVaQ0J2WmlCMGFHVWdhVzV3ZFhSY0lqdHBaaWgzS0c0cEtYdDJZWElnYUQxekxYTWxTU3h3UFhNdGFDeGtQVmNvYUN4R0xFMHJTU3h1TG14bGJtZDBhQ2tzZGoxaEtHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQmhLR1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJWS0c0dWRHOVRkSEpwYm1jb01UWXBMRElzWENJd1hDSXBmU3h1S1gwc1puVnVZM1JwYjI0b2JpeDBLWHQyWVhJZ2NqMXVMbXhsYm1kMGFDeGxQVnRkTEhVOU1EdHBaaWh5UEQxMEtYSmxkSFZ5Ymx0dUxuTnNhV05sS0NsZE8yWnZjaWgyWVhJZ2J6MHdPMjg4Y2p0dkt5c3BaVnQxWFh4OFpTNXdkWE5vS0Z0ZEtTeGxXM1ZkTG5CMWMyZ29ibHR2WFNrc0tHOHJNU2tsZEQwOU1DWW1kU3NyTzNKbGRIVnliaUJsZlNodUxuTnNhV05sS0dRdVpuSnZiU3hrTG5SdktTNTBiMHBUVDA0b0tTNWtZWFJoTEVrcEtUdHZQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUF3UFQwOWJpNW1jbTl0SmlZeFBUMDliaTUwYno5N1puSnZiVHB1TG1aeWIyMHNkRzg2Ymk1MGIzMDZlMlp5YjIwNmJpNW1jbTl0TDBrc2RHODZUV0YwYUM1bWJHOXZjaWh1TG5Sdkwwa3BmWDBvWkNrc1pUMW9MMGtzY2owektuQXNjRDQ5TkNZbUtISXJQVEVwTEd3OU1peDFQV0VvWm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUc0dWJHVnVaM1JvUEQwMFAyNHVhbTlwYmloY0lpQmNJaWs2Ymk1emJHbGpaU2d3TERRcExtcHZhVzRvWENJZ1hDSXBLMXdpSUNCY0lpdHVMbk5zYVdObEtEUXBMbXB2YVc0b1hDSWdYQ0lwZlN4MktTd29aajBvT0Nvb2J5NTBiejR3UDI4dWRHOHRNVHB2TG5SdktTa3VkRzlUZEhKcGJtY29NVFlwTG14bGJtZDBhQ2s4TWlZbUtHWTlNaWw5Wld4elpYdDJZWElnWnoxdUxuTndiR2wwS0M5Y1hISmNYRzU4VzF4Y2JseGNjbHhjZFRJd01qaGNYSFV5TURJNVhTOHBPM0k5WXk1amIyeDFiVzR0TVN4bFBXTXViR2x1WlMweExHODlWeWhsTEhFc1FTeG5MbXhsYm1kMGFDa3NkVDFuTG5Oc2FXTmxLRzh1Wm5KdmJTeHZMblJ2S1N4bVBXOHVkRzh1ZEc5VGRISnBibWNvS1M1c1pXNW5kR2g5ZG1GeUlHMDlaUzF2TG1aeWIyMDdjbVYwZFhKdUlIY29iaWttSmlobVBTZzRLaWh2TG5SdlBqQS9ieTUwYnkweE9tOHVkRzhwS1M1MGIxTjBjbWx1WnlneE5pa3ViR1Z1WjNSb0tUd3lKaVlvWmoweUtTeHBLR1oxYm1OMGFXOXVLSFFzWlN4MUtYdDJZWElnYVN4aFBYVTlQVDF0TEdNOVlUOWNJajRnWENJNmVqdHlaWFIxY200Z2FUMTNLRzRwUDFVb0tEZ3FLRzh1Wm5KdmJTdDFLU2t1ZEc5VGRISnBibWNvTVRZcExHWXNYQ0l3WENJcE9sVW9LRzh1Wm5KdmJTdDFLekVwTG5SdlUzUnlhVzVuS0Nrc1ppeGNJaUJjSWlrc1cxMHVZMjl1WTJGMEtIUXNXMk1yYVN0Y0lpQjhJRndpSzJWZExHRS9XM29yVWloY0lpQmNJaXhtS1N0Y0lpQjhJRndpSzFVb1hDSmNJaXh5TEZ3aUlGd2lLU3RTS0Z3aVhsd2lMR3dwWFRwYlhTbDlMRnRkTEhVcExtcHZhVzRvWENKY1hHNWNJaWw5Wm5WdVkzUnBiMjRnVGlodUxIUXBlM0psZEhWeWJsdGNJbHhjYmx3aUxGd2lMUzBnVUVGU1UwbE9SeUJHUVVsTVJVUWdYQ0lyVWloY0lpMWNJaXcxTUNrc1hDSmNYRzVjWEc1Y0lpeEVLRzRzZENrc1hDSmNYRzVjWEc1Y0lpd29jajEwTG1WNGNHVmpkR1ZrTERFOVBUMXlMbXhsYm1kMGFEOWNJa1Y0Y0dWamRHVmtPbHhjYmx4Y2Jsd2lLM0piTUYwNlhDSkZlSEJsWTNSbFpDQnZibVVnYjJZZ2RHaGxJR1p2Ykd4dmQybHVaem9nWEZ4dVhGeHVYQ0lyY2k1cWIybHVLRndpTENCY0lpa3BMRndpWEZ4dVhDSmRMbXB2YVc0b1hDSmNJaWs3ZG1GeUlISjlablZ1WTNScGIyNGdSeWh1S1h0eVpYUjFjbTRnZG05cFpDQXdJVDA5Ymk1bWJHRm5jejl1TG1ac1lXZHpPbHR1TG1kc2IySmhiRDljSW1kY0lqcGNJbHdpTEc0dWFXZHViM0psUTJGelpUOWNJbWxjSWpwY0lsd2lMRzR1YlhWc2RHbHNhVzVsUDF3aWJWd2lPbHdpWENJc2JpNTFibWxqYjJSbFAxd2lkVndpT2x3aVhDSXNiaTV6ZEdsamEzay9YQ0o1WENJNlhDSmNJbDB1YW05cGJpaGNJbHdpS1gxbWRXNWpkR2x2YmlCREtDbDdabTl5S0haaGNpQnVQVnRkTG5Oc2FXTmxMbU5oYkd3b1lYSm5kVzFsYm5SektTeDBQVzR1YkdWdVozUm9MSEk5TUR0eVBIUTdjaXM5TVNsZktHNWJjbDBwTzNKbGRIVnliaUJsS0daMWJtTjBhVzl1S0hJc1pTbDdabTl5S0haaGNpQjFMRzg5Ym1WM0lFRnljbUY1S0hRcExHazlNRHRwUEhRN2FTczlNU2w3YVdZb0lTaDFQVUlvYmx0cFhTNWZLSElzWlNrc2RTa3BMbk4wWVhSMWN5bHlaWFIxY200Z2RUdHZXMmxkUFhVdWRtRnNkV1VzWlQxMUxtbHVaR1Y0ZlhKbGRIVnliaUJDS0dJb1pTeHZLU3gxS1gwcGZXWjFibU4wYVc5dUlFb29LWHQyWVhJZ2JqMWJYUzV6YkdsalpTNWpZV3hzS0dGeVozVnRaVzUwY3lrN2FXWW9NRDA5UFc0dWJHVnVaM1JvS1hSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW5ObGNVMWhjQ0J1WldWa2N5QmhkQ0JzWldGemRDQnZibVVnWVhKbmRXMWxiblJjSWlrN2RtRnlJSFE5Ymk1d2IzQW9LVHR5WlhSMWNtNGdheWgwS1N4RExtRndjR3g1S0c1MWJHd3NiaWt1YldGd0tHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQjBMbUZ3Y0d4NUtHNTFiR3dzYmlsOUtYMW1kVzVqZEdsdmJpQlVLQ2w3ZG1GeUlHNDlXMTB1YzJ4cFkyVXVZMkZzYkNoaGNtZDFiV1Z1ZEhNcExIUTliaTVzWlc1bmRHZzdhV1lvTUQwOVBYUXBjbVYwZFhKdUlGa29YQ0o2WlhKdklHRnNkR1Z5Ym1GMFpYTmNJaWs3Wm05eUtIWmhjaUJ5UFRBN2NqeDBPM0lyUFRFcFh5aHVXM0pkS1R0eVpYUjFjbTRnWlNobWRXNWpkR2x2YmloMExISXBlMlp2Y2loMllYSWdaU3gxUFRBN2RUeHVMbXhsYm1kMGFEdDFLejB4S1dsbUtDaGxQVUlvYmx0MVhTNWZLSFFzY2lrc1pTa3BMbk4wWVhSMWN5bHlaWFIxY200Z1pUdHlaWFIxY200Z1pYMHBmV1oxYm1OMGFXOXVJRllvYml4MEtYdHlaWFIxY200Z1NDaHVMSFFwTG05eUtGZ29XMTBwS1gxbWRXNWpkR2x2YmlCSUtHNHNkQ2w3Y21WMGRYSnVJRjhvYmlrc1h5aDBLU3hLS0c0c2RDNTBhR1Z1S0c0cExtMWhibmtvS1N4bWRXNWpkR2x2YmlodUxIUXBlM0psZEhWeWJsdHVYUzVqYjI1allYUW9kQ2w5S1gxbWRXNWpkR2x2YmlCTEtHNHBlMUFvYmlrN2RtRnlJSFE5WENJblhDSXJiaXRjSWlkY0lqdHlaWFIxY200Z1pTaG1kVzVqZEdsdmJpaHlMR1VwZTNaaGNpQjFQV1VyYmk1c1pXNW5kR2dzYnoxeUxuTnNhV05sS0dVc2RTazdjbVYwZFhKdUlHODlQVDF1UDJJb2RTeHZLVHA0S0dVc2RDbDlLWDFtZFc1amRHbHZiaUJSS0c0c2RDbDdJV1oxYm1OMGFXOXVLRzRwZTJsbUtDRW9iaUJwYm5OMFlXNWpaVzltSUZKbFowVjRjQ2twZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpYm05MElHRWdjbVZuWlhod09pQmNJaXR1S1R0bWIzSW9kbUZ5SUhROVJ5aHVLU3h5UFRBN2NqeDBMbXhsYm1kMGFEdHlLeXNwZTNaaGNpQmxQWFF1WTJoaGNrRjBLSElwTzJsbUtGd2lhVndpSVQwOVpTWW1YQ0p0WENJaFBUMWxKaVpjSW5WY0lpRTlQV1VtSmx3aWMxd2lJVDA5WlNsMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNWdWMzVndjRzl5ZEdWa0lISmxaMlY0Y0NCbWJHRm5JRndpSnl0bEt5ZGNJam9nSnl0dUtYMTlLRzRwTEdGeVozVnRaVzUwY3k1c1pXNW5kR2crUFRJL1R5aDBLVHAwUFRBN2RtRnlJSEk5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUZKbFowVjRjQ2hjSWw0b1B6cGNJaXR1TG5OdmRYSmpaU3RjSWlsY0lpeEhLRzRwS1gwb2Jpa3NkVDFjSWx3aUsyNDdjbVYwZFhKdUlHVW9ablZ1WTNScGIyNG9iaXhsS1h0MllYSWdiejF5TG1WNFpXTW9iaTV6YkdsalpTaGxLU2s3YVdZb2J5bDdhV1lvTUR3OWRDWW1kRHc5Ynk1c1pXNW5kR2dwZTNaaGNpQnBQVzliTUYwc1lUMXZXM1JkTzNKbGRIVnliaUJpS0dVcmFTNXNaVzVuZEdnc1lTbDljbVYwZFhKdUlIZ29aU3hjSW5aaGJHbGtJRzFoZEdOb0lHZHliM1Z3SUNnd0lIUnZJRndpSzI4dWJHVnVaM1JvSzF3aUtTQnBiaUJjSWl0MUtYMXlaWFIxY200Z2VDaGxMSFVwZlNsOVpuVnVZM1JwYjI0Z1dDaHVLWHR5WlhSMWNtNGdaU2htZFc1amRHbHZiaWgwTEhJcGUzSmxkSFZ5YmlCaUtISXNiaWw5S1gxbWRXNWpkR2x2YmlCWktHNHBlM0psZEhWeWJpQmxLR1oxYm1OMGFXOXVLSFFzY2lsN2NtVjBkWEp1SUhnb2NpeHVLWDBwZldaMWJtTjBhVzl1SUZvb2JpbDdhV1lvZVNodUtTbHlaWFIxY200Z1pTaG1kVzVqZEdsdmJpaDBMSElwZTNaaGNpQmxQVzR1WHloMExISXBPM0psZEhWeWJpQmxMbWx1WkdWNFBYSXNaUzUyWVd4MVpUMWNJbHdpTEdWOUtUdHBaaWhjSW5OMGNtbHVaMXdpUFQxMGVYQmxiMllnYmlseVpYUjFjbTRnV2loTEtHNHBLVHRwWmlodUlHbHVjM1JoYm1ObGIyWWdVbVZuUlhod0tYSmxkSFZ5YmlCYUtGRW9iaWtwTzNSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW01dmRDQmhJSE4wY21sdVp5d2djbVZuWlhod0xDQnZjaUJ3WVhKelpYSTZJRndpSzI0cGZXWjFibU4wYVc5dUlDUW9iaWw3Y21WMGRYSnVJRjhvYmlrc1pTaG1kVzVqZEdsdmJpaDBMSElwZTNaaGNpQmxQVzR1WHloMExISXBMSFU5ZEM1emJHbGpaU2h5TEdVdWFXNWtaWGdwTzNKbGRIVnliaUJsTG5OMFlYUjFjejk0S0hJc0oyNXZkQ0JjSWljcmRTc25YQ0luS1RwaUtISXNiblZzYkNsOUtYMW1kVzVqZEdsdmJpQnViaWh1S1h0eVpYUjFjbTRnYXlodUtTeGxLR1oxYm1OMGFXOXVLSFFzY2lsN2RtRnlJR1U5VENoMExISXBPM0psZEhWeWJpQnlQSFF1YkdWdVozUm9KaVp1S0dVcFAySW9jaXN4TEdVcE9uZ29jaXhjSW1FZ1kyaGhjbUZqZEdWeUwySjVkR1VnYldGMFkyaHBibWNnWENJcmJpbDlLWDFtZFc1amRHbHZiaUIwYmlodUxIUXBlMkZ5WjNWdFpXNTBjeTVzWlc1bmRHZzhNaVltS0hROWJpeHVQWFp2YVdRZ01DazdkbUZ5SUhJOVpTaG1kVzVqZEdsdmJpaHVMR1VwZTNKbGRIVnliaUJ5TGw4OWRDZ3BMbDhzY2k1ZktHNHNaU2w5S1R0eVpYUjFjbTRnYmo5eUxtUmxjMk1vYmlrNmNuMW1kVzVqZEdsdmJpQnliaWdwZTNKbGRIVnliaUJaS0Z3aVptRnVkR0Z6ZVMxc1lXNWtMMlZ0Y0hSNVhDSXBmWFV1Y0dGeWMyVTlablZ1WTNScGIyNG9iaWw3YVdZb1hDSnpkSEpwYm1kY0lpRTlkSGx3Wlc5bUlHNG1KaUYzS0c0cEtYUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0lpNXdZWEp6WlNCdGRYTjBJR0psSUdOaGJHeGxaQ0IzYVhSb0lHRWdjM1J5YVc1bklHOXlJRUoxWm1abGNpQmhjeUJwZEhNZ1lYSm5kVzFsYm5SY0lpazdkbUZ5SUhRc2NqMTBhR2x6TG5OcmFYQW9ZVzRwTGw4b2Jpd3dLVHR5WlhSMWNtNGdkRDF5TG5OMFlYUjFjejk3YzNSaGRIVnpPaUV3TEhaaGJIVmxPbkl1ZG1Gc2RXVjlPbnR6ZEdGMGRYTTZJVEVzYVc1a1pYZzZVeWh1TEhJdVpuVnlkR2hsYzNRcExHVjRjR1ZqZEdWa09uSXVaWGh3WldOMFpXUjlMR1JsYkdWMFpTQnFXMjVkTEhSOUxIVXVkSEo1VUdGeWMyVTlablZ1WTNScGIyNG9iaWw3ZG1GeUlIUTlkR2hwY3k1d1lYSnpaU2h1S1R0cFppaDBMbk4wWVhSMWN5bHlaWFIxY200Z2RDNTJZV3gxWlR0MllYSWdjajFPS0c0c2RDa3NaVDF1WlhjZ1JYSnliM0lvY2lrN2RHaHliM2NnWlM1MGVYQmxQVndpVUdGeWMybHRiVzl1UlhKeWIzSmNJaXhsTG5KbGMzVnNkRDEwTEdWOUxIVXVZWE56WlhKMFBXWjFibU4wYVc5dUtHNHNkQ2w3Y21WMGRYSnVJSFJvYVhNdVkyaGhhVzRvWm5WdVkzUnBiMjRvY2lsN2NtVjBkWEp1SUc0b2Npay9XQ2h5S1RwWktIUXBmU2w5TEhVdWIzSTlablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRlFvZEdocGN5eHVLWDBzZFM1MGNtbHRQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUIwYUdsekxuZHlZWEFvYml4dUtYMHNkUzUzY21Gd1BXWjFibU4wYVc5dUtHNHNkQ2w3Y21WMGRYSnVJRW9vYml4MGFHbHpMSFFzWm5WdVkzUnBiMjRvYml4MEtYdHlaWFIxY200Z2RIMHBmU3gxTG5Sb2NuVTlablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRzRvZEdocGN5bDlMSFV1ZEdobGJqMW1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNGdYeWh1S1N4REtIUm9hWE1zYmlrdWJXRndLR1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJ1V3pGZGZTbDlMSFV1YldGdWVUMW1kVzVqZEdsdmJpZ3BlM1poY2lCdVBYUm9hWE03Y21WMGRYSnVJR1VvWm5WdVkzUnBiMjRvZEN4eUtYdG1iM0lvZG1GeUlHVTlXMTBzZFQxMmIybGtJREE3T3lsN2FXWW9JU2gxUFVJb2JpNWZLSFFzY2lrc2RTa3BMbk4wWVhSMWN5bHlaWFIxY200Z1FpaGlLSElzWlNrc2RTazdhV1lvY2owOVBYVXVhVzVrWlhncGRHaHliM2NnYm1WM0lFVnljbTl5S0Z3aWFXNW1hVzVwZEdVZ2JHOXZjQ0JrWlhSbFkzUmxaQ0JwYmlBdWJXRnVlU2dwSUhCaGNuTmxjaUF0TFMwZ1kyRnNiR2x1WnlBdWJXRnVlU2dwSUc5dUlHRWdjR0Z5YzJWeUlIZG9hV05vSUdOaGJpQmhZMk5sY0hRZ2VtVnlieUJqYUdGeVlXTjBaWEp6SUdseklIVnpkV0ZzYkhrZ2RHaGxJR05oZFhObFhDSXBPM0k5ZFM1cGJtUmxlQ3hsTG5CMWMyZ29kUzUyWVd4MVpTbDlmU2w5TEhVdWRHbGxWMmwwYUQxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z1VDaHVLU3gwYUdsekxtMWhjQ2htZFc1amRHbHZiaWgwS1h0cFppaG1kVzVqZEdsdmJpaHVLWHRwWmlnaFJTaHVLU2wwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0p1YjNRZ1lXNGdZWEp5WVhrNklGd2lLMjRwZlNoMEtTeDBMbXhsYm1kMGFDbDdVQ2gwV3pCZEtUdG1iM0lvZG1GeUlISTlkRnN3WFN4bFBURTdaVHgwTG14bGJtZDBhRHRsS3lzcFVDaDBXMlZkS1N4eUt6MXVLM1JiWlYwN2NtVjBkWEp1SUhKOWNtVjBkWEp1WENKY0luMHBmU3gxTG5ScFpUMW1kVzVqZEdsdmJpZ3BlM0psZEhWeWJpQjBhR2x6TG5ScFpWZHBkR2dvWENKY0lpbDlMSFV1ZEdsdFpYTTlablZ1WTNScGIyNG9iaXgwS1h0MllYSWdjajEwYUdsek8zSmxkSFZ5YmlCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvUERJbUppaDBQVzRwTEU4b2Jpa3NUeWgwS1N4bEtHWjFibU4wYVc5dUtHVXNkU2w3Wm05eUtIWmhjaUJ2UFZ0ZExHazlkbTlwWkNBd0xHRTlkbTlwWkNBd0xHWTlNRHRtUEc0N1ppczlNU2w3YVdZb1lUMUNLR2s5Y2k1ZktHVXNkU2tzWVNrc0lXa3VjM1JoZEhWektYSmxkSFZ5YmlCaE8zVTlhUzVwYm1SbGVDeHZMbkIxYzJnb2FTNTJZV3gxWlNsOVptOXlLRHRtUEhRbUppaGhQVUlvYVQxeUxsOG9aU3gxS1N4aEtTeHBMbk4wWVhSMWN5azdaaXM5TVNsMVBXa3VhVzVrWlhnc2J5NXdkWE5vS0drdWRtRnNkV1VwTzNKbGRIVnliaUJDS0dJb2RTeHZLU3hoS1gwcGZTeDFMbkpsYzNWc2REMW1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNGdkR2hwY3k1dFlYQW9ablZ1WTNScGIyNG9LWHR5WlhSMWNtNGdibjBwZlN4MUxtRjBUVzl6ZEQxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2RHaHBjeTUwYVcxbGN5Z3dMRzRwZlN4MUxtRjBUR1ZoYzNROVpuVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlFb29kR2hwY3k1MGFXMWxjeWh1S1N4MGFHbHpMbTFoYm5rb0tTeG1kVzVqZEdsdmJpaHVMSFFwZTNKbGRIVnliaUJ1TG1OdmJtTmhkQ2gwS1gwcGZTeDFMbTFoY0QxbWRXNWpkR2x2YmlodUtYdHJLRzRwTzNaaGNpQjBQWFJvYVhNN2NtVjBkWEp1SUdVb1puVnVZM1JwYjI0b2NpeGxLWHQyWVhJZ2RUMTBMbDhvY2l4bEtUdHlaWFIxY200Z2RTNXpkR0YwZFhNL1FpaGlLSFV1YVc1a1pYZ3NiaWgxTG5aaGJIVmxLU2tzZFNrNmRYMHBmU3gxTG1OdmJuUnlZVzFoY0QxbWRXNWpkR2x2YmlodUtYdHJLRzRwTzNaaGNpQjBQWFJvYVhNN2NtVjBkWEp1SUdVb1puVnVZM1JwYjI0b2NpeGxLWHQyWVhJZ2RUMTBMbkJoY25ObEtHNG9jaTV6YkdsalpTaGxLU2twTzNKbGRIVnliaUIxTG5OMFlYUjFjejlpS0dVcmNpNXNaVzVuZEdnc2RTNTJZV3gxWlNrNmRYMHBmU3gxTG5CeWIyMWhjRDFtZFc1amRHbHZiaWh1TEhRcGUzSmxkSFZ5YmlCcktHNHBMR3NvZENrc2RHaHBjeTVqYjI1MGNtRnRZWEFvYmlrdWJXRndLSFFwZlN4MUxuTnJhWEE5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUVNb2RHaHBjeXh1S1M1dFlYQW9ablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRzViTUYxOUtYMHNkUzV0WVhKclBXWjFibU4wYVc5dUtDbDdjbVYwZFhKdUlFb29aVzRzZEdocGN5eGxiaXhtZFc1amRHbHZiaWh1TEhRc2NpbDdjbVYwZFhKdWUzTjBZWEowT200c2RtRnNkV1U2ZEN4bGJtUTZjbjE5S1gwc2RTNXViMlJsUFdaMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCS0tHVnVMSFJvYVhNc1pXNHNablZ1WTNScGIyNG9kQ3h5TEdVcGUzSmxkSFZ5Ym50dVlXMWxPbTRzZG1Gc2RXVTZjaXh6ZEdGeWREcDBMR1Z1WkRwbGZYMHBmU3gxTG5ObGNFSjVQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJXS0hSb2FYTXNiaWw5TEhVdWMyVndRbmt4UFdaMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCSUtIUm9hWE1zYmlsOUxIVXViRzl2YTJGb1pXRmtQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUIwYUdsekxuTnJhWEFvV2lodUtTbDlMSFV1Ym05MFJtOXNiRzkzWldSQ2VUMW1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNGdkR2hwY3k1emEybHdLQ1FvYmlrcGZTeDFMbVJsYzJNOVpuVnVZM1JwYjI0b2JpbDdSU2h1S1h4OEtHNDlXMjVkS1R0MllYSWdkRDEwYUdsek8zSmxkSFZ5YmlCbEtHWjFibU4wYVc5dUtISXNaU2w3ZG1GeUlIVTlkQzVmS0hJc1pTazdjbVYwZFhKdUlIVXVjM1JoZEhWemZId29kUzVsZUhCbFkzUmxaRDF1S1N4MWZTbDlMSFV1Wm1Gc2JHSmhZMnM5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUhSb2FYTXViM0lvV0NodUtTbDlMSFV1WVhBOVpuVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlFb29iaXgwYUdsekxHWjFibU4wYVc5dUtHNHNkQ2w3Y21WMGRYSnVJRzRvZENsOUtYMHNkUzVqYUdGcGJqMW1kVzVqZEdsdmJpaHVLWHQyWVhJZ2REMTBhR2x6TzNKbGRIVnliaUJsS0daMWJtTjBhVzl1S0hJc1pTbDdkbUZ5SUhVOWRDNWZLSElzWlNrN2NtVjBkWEp1SUhVdWMzUmhkSFZ6UDBJb2JpaDFMblpoYkhWbEtTNWZLSElzZFM1cGJtUmxlQ2tzZFNrNmRYMHBmU3gxTG1OdmJtTmhkRDExTG05eUxIVXVaVzF3ZEhrOWNtNHNkUzV2WmoxWUxIVmJYQ0ptWVc1MFlYTjVMV3hoYm1RdllYQmNJbDA5ZFM1aGNDeDFXMXdpWm1GdWRHRnplUzFzWVc1a0wyTm9ZV2x1WENKZFBYVXVZMmhoYVc0c2RWdGNJbVpoYm5SaGMza3RiR0Z1WkM5amIyNWpZWFJjSWwwOWRTNWpiMjVqWVhRc2RWdGNJbVpoYm5SaGMza3RiR0Z1WkM5bGJYQjBlVndpWFQxMUxtVnRjSFI1TEhWYlhDSm1ZVzUwWVhONUxXeGhibVF2YjJaY0lsMDlkUzV2Wml4MVcxd2labUZ1ZEdGemVTMXNZVzVrTDIxaGNGd2lYVDExTG0xaGNEdDJZWElnWlc0OVpTaG1kVzVqZEdsdmJpaHVMSFFwZTNKbGRIVnliaUJpS0hRc1V5aHVMSFFwS1gwcExIVnVQV1VvWm5WdVkzUnBiMjRvYml4MEtYdHlaWFIxY200Z2RENDliaTVzWlc1bmRHZy9lQ2gwTEZ3aVlXNTVJR05vWVhKaFkzUmxjaTlpZVhSbFhDSXBPbUlvZENzeExFd29iaXgwS1NsOUtTeHZiajFsS0daMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlHSW9iaTVzWlc1bmRHZ3NiaTV6YkdsalpTaDBLU2w5S1N4aGJqMWxLR1oxYm1OMGFXOXVLRzRzZENsN2NtVjBkWEp1SUhROGJpNXNaVzVuZEdnL2VDaDBMRndpUlU5R1hDSXBPbUlvZEN4dWRXeHNLWDBwTEdadVBWRW9MMXN3TFRsZEx5a3VaR1Z6WXloY0ltRWdaR2xuYVhSY0lpa3NZMjQ5VVNndld6QXRPVjBxTHlrdVpHVnpZeWhjSW05d2RHbHZibUZzSUdScFoybDBjMXdpS1N4emJqMVJLQzliWVMxNlhTOXBLUzVrWlhOaktGd2lZU0JzWlhSMFpYSmNJaWtzYkc0OVVTZ3ZXMkV0ZWwwcUwya3BMbVJsYzJNb1hDSnZjSFJwYjI1aGJDQnNaWFIwWlhKelhDSXBMR2h1UFZFb0wxeGNjeW92S1M1a1pYTmpLRndpYjNCMGFXOXVZV3dnZDJocGRHVnpjR0ZqWlZ3aUtTeHdiajFSS0M5Y1hITXJMeWt1WkdWell5aGNJbmRvYVhSbGMzQmhZMlZjSWlrc1pHNDlTeWhjSWx4Y2Nsd2lLU3gyYmoxTEtGd2lYRnh1WENJcExHZHVQVXNvWENKY1hISmNYRzVjSWlrc2JXNDlWQ2huYml4MmJpeGtiaWt1WkdWell5aGNJbTVsZDJ4cGJtVmNJaWtzZVc0OVZDaHRiaXhoYmlrN1pTNWhiR3c5YjI0c1pTNWhiSFE5VkN4bExtRnVlVDExYml4bExtTnlQV1J1TEdVdVkzSmxZWFJsVEdGdVozVmhaMlU5Wm5WdVkzUnBiMjRvYmlsN2RtRnlJSFE5ZTMwN1ptOXlLSFpoY2lCeUlHbHVJRzRwS0h0OUtTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzRzY2lrbUptWjFibU4wYVc5dUtISXBlM1JiY2wwOWRHNG9ablZ1WTNScGIyNG9LWHR5WlhSMWNtNGdibHR5WFNoMEtYMHBmU2h5S1R0eVpYUjFjbTRnZEgwc1pTNWpjbXhtUFdkdUxHVXVZM1Z6ZEc5dFBXWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQmxLRzRvWWl4NEtTbDlMR1V1WkdsbmFYUTlabTRzWlM1a2FXZHBkSE05WTI0c1pTNWxiWEIwZVQxeWJpeGxMbVZ1WkQxNWJpeGxMbVZ2WmoxaGJpeGxMbVpoYVd3OVdTeGxMbVp2Y20xaGRFVnljbTl5UFU0c1pTNXBibVJsZUQxbGJpeGxMbWx6VUdGeWMyVnlQWGtzWlM1c1lYcDVQWFJ1TEdVdWJHVjBkR1Z5UFhOdUxHVXViR1YwZEdWeWN6MXNiaXhsTG14bVBYWnVMR1V1Ykc5dmEyRm9aV0ZrUFZvc1pTNXRZV3RsUm1GcGJIVnlaVDE0TEdVdWJXRnJaVk4xWTJObGMzTTlZaXhsTG01bGQyeHBibVU5Ylc0c1pTNXViMjVsVDJZOVpuVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlHNXVLR1oxYm1OMGFXOXVLSFFwZTNKbGRIVnliaUJ1TG1sdVpHVjRUMllvZENrOE1IMHBMbVJsYzJNb1hDSnViMjVsSUc5bUlDZGNJaXR1SzF3aUoxd2lLWDBzWlM1dWIzUkdiMnhzYjNkbFpFSjVQU1FzWlM1dlpqMVlMR1V1YjI1bFQyWTlablZ1WTNScGIyNG9iaWw3Wm05eUtIWmhjaUIwUFc0dWMzQnNhWFFvWENKY0lpa3NjajB3TzNJOGRDNXNaVzVuZEdnN2Npc3JLWFJiY2wwOVhDSW5YQ0lyZEZ0eVhTdGNJaWRjSWp0eVpYUjFjbTRnYm00b1puVnVZM1JwYjI0b2RDbDdjbVYwZFhKdUlHNHVhVzVrWlhoUFppaDBLVDQ5TUgwcExtUmxjMk1vZENsOUxHVXViM0IwVjJocGRHVnpjR0ZqWlQxb2JpeGxMbEJoY25ObGNqMWxMR1V1Y21GdVoyVTlablZ1WTNScGIyNG9iaXgwS1h0eVpYUjFjbTRnYm00b1puVnVZM1JwYjI0b2NpbDdjbVYwZFhKdUlHNDhQWEltSm5JOFBYUjlLUzVrWlhOaktHNHJYQ0l0WENJcmRDbDlMR1V1Y21WblpYZzlVU3hsTG5KbFoyVjRjRDFSTEdVdWMyVndRbms5Vml4bExuTmxjRUo1TVQxSUxHVXVjMlZ4UFVNc1pTNXpaWEZOWVhBOVNpeGxMbk5sY1U5aWFqMW1kVzVqZEdsdmJpZ3BlMlp2Y2loMllYSWdiaXgwUFh0OUxISTlNQ3gxUFNodVBXRnlaM1Z0Wlc1MGN5eEJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaHVLU2tzYnoxMUxteGxibWQwYUN4cFBUQTdhVHh2TzJrclBURXBlM1poY2lCaFBYVmJhVjA3YVdZb0lYa29ZU2twZTJsbUtFVW9ZU2ttSmpJOVBUMWhMbXhsYm1kMGFDWW1YQ0p6ZEhKcGJtZGNJajA5ZEhsd1pXOW1JR0ZiTUYwbUpua29ZVnN4WFNrcGUzWmhjaUJtUFdGYk1GMDdhV1lvVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0hRc1ppa3BkR2h5YjNjZ2JtVjNJRVZ5Y205eUtGd2ljMlZ4VDJKcU9pQmtkWEJzYVdOaGRHVWdhMlY1SUZ3aUsyWXBPM1JiWmwwOUlUQXNjaXNyTzJOdmJuUnBiblZsZlhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW5ObGNVOWlhaUJoY21kMWJXVnVkSE1nYlhWemRDQmlaU0J3WVhKelpYSnpJRzl5SUZ0emRISnBibWNzSUhCaGNuTmxjbDBnWVhKeVlYa2djR0ZwY25NdVhDSXBmWDFwWmlnd1BUMDljaWwwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0p6WlhGUFltb2daWGh3WldOMGN5QmhkQ0JzWldGemRDQnZibVVnYm1GdFpXUWdjR0Z5YzJWeUxDQm1iM1Z1WkNCNlpYSnZYQ0lwTzNKbGRIVnliaUJsS0daMWJtTjBhVzl1S0c0c2RDbDdabTl5S0haaGNpQnlMR1U5ZTMwc2FUMHdPMms4Ynp0cEt6MHhLWHQyWVhJZ1lTeG1PMmxtS0VVb2RWdHBYU2svS0dFOWRWdHBYVnN3WFN4bVBYVmJhVjFiTVYwcE9paGhQVzUxYkd3c1pqMTFXMmxkS1N3aEtISTlRaWhtTGw4b2JpeDBLU3h5S1NrdWMzUmhkSFZ6S1hKbGRIVnliaUJ5TzJFbUppaGxXMkZkUFhJdWRtRnNkV1VwTEhROWNpNXBibVJsZUgxeVpYUjFjbTRnUWloaUtIUXNaU2tzY2lsOUtYMHNaUzV6ZEhKcGJtYzlTeXhsTG5OMVkyTmxaV1E5V0N4bExuUmhhMlZYYUdsc1pUMW1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNGdheWh1S1N4bEtHWjFibU4wYVc5dUtIUXNjaWw3Wm05eUtIWmhjaUJsUFhJN1pUeDBMbXhsYm1kMGFDWW1iaWhNS0hRc1pTa3BPeWxsS3lzN2NtVjBkWEp1SUdJb1pTeDBMbk5zYVdObEtISXNaU2twZlNsOUxHVXVkR1Z6ZEQxdWJpeGxMbmRvYVhSbGMzQmhZMlU5Y0c0c1pWdGNJbVpoYm5SaGMza3RiR0Z1WkM5bGJYQjBlVndpWFQxeWJpeGxXMXdpWm1GdWRHRnplUzFzWVc1a0wyOW1YQ0pkUFZnc1pTNUNhVzVoY25rOWUySnBkRk5sY1Rwc0xHSnBkRk5sY1U5aWFqcG1kVzVqZEdsdmJpaHVLWHR6S0NrN2RtRnlJSFE5ZTMwc2NqMHdMR1U5WVNobWRXNWpkR2x2YmlodUtYdHBaaWhGS0c0cEtYdDJZWElnWlQxdU8ybG1LREloUFQxbExteGxibWQwYUNsMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKYlhDSXJaUzVxYjJsdUtGd2lMQ0JjSWlrclhDSmRJSE5vYjNWc1pDQmlaU0JzWlc1bmRHZ2dNaXdnWjI5MElHeGxibWQwYUNCY0lpdGxMbXhsYm1kMGFDazdhV1lvVUNobFd6QmRLU3hQS0dWYk1WMHBMRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2gwTEdWYk1GMHBLWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbVIxY0d4cFkyRjBaU0JyWlhrZ2FXNGdZbWwwVTJWeFQySnFPaUJjSWl0bFd6QmRLVHR5WlhSMWNtNGdkRnRsV3pCZFhUMGhNQ3h5S3lzc1pYMXlaWFIxY200Z1R5aHVLU3hiYm5Wc2JDeHVYWDBzYmlrN2FXWW9jand4S1hSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW1KcGRGTmxjVTlpYWlCbGVIQmxZM1J6SUdGMElHeGxZWE4wSUc5dVpTQnVZVzFsWkNCd1lXbHlMQ0JuYjNRZ1cxd2lLMjR1YW05cGJpaGNJaXdnWENJcEsxd2lYVndpS1R0MllYSWdkVDFoS0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCdVd6QmRmU3hsS1R0eVpYUjFjbTRnYkNoaEtHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQnVXekZkZlN4bEtTa3ViV0Z3S0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCcEtHWjFibU4wYVc5dUtHNHNkQ2w3Y21WMGRYSnVJRzUxYkd3aFBUMTBXekJkSmlZb2JsdDBXekJkWFQxMFd6RmRLU3h1ZlN4N2ZTeGhLR1oxYm1OMGFXOXVLSFFzY2lsN2NtVjBkWEp1VzNRc2JsdHlYVjE5TEhVcEtYMHBmU3hpZVhSbE9tWjFibU4wYVc5dUtHNHBlMmxtS0hNb0tTeFBLRzRwTEc0K01qVTFLWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbFpoYkhWbElITndaV05wWm1sbFpDQjBieUJpZVhSbElHTnZibk4wY25WamRHOXlJQ2hjSWl0dUsxd2lQVEI0WENJcmJpNTBiMU4wY21sdVp5Z3hOaWtyWENJcElHbHpJR3hoY21kbGNpQnBiaUIyWVd4MVpTQjBhR0Z1SUdFZ2MybHVaMnhsSUdKNWRHVXVYQ0lwTzNaaGNpQjBQU2h1UGpFMVAxd2lNSGhjSWpwY0lqQjRNRndpS1N0dUxuUnZVM1J5YVc1bktERTJLVHR5WlhSMWNtNGdaU2htZFc1amRHbHZiaWh5TEdVcGUzWmhjaUIxUFV3b2NpeGxLVHR5WlhSMWNtNGdkVDA5UFc0L1lpaGxLekVzZFNrNmVDaGxMSFFwZlNsOUxHSjFabVpsY2pwbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2FDaGNJbUoxWm1abGNsd2lMRzRwTG0xaGNDaG1kVzVqZEdsdmJpaHVLWHR5WlhSMWNtNGdRblZtWm1WeUxtWnliMjBvYmlsOUtYMHNaVzVqYjJSbFpGTjBjbWx1WnpwbWRXNWpkR2x2YmlodUxIUXBlM0psZEhWeWJpQm9LRndpYzNSeWFXNW5YQ0lzZENrdWJXRndLR1oxYm1OMGFXOXVLSFFwZTNKbGRIVnliaUIwTG5SdlUzUnlhVzVuS0c0cGZTbDlMSFZwYm5SQ1JUcGtMSFZwYm5RNFFrVTZaQ2d4S1N4MWFXNTBNVFpDUlRwa0tESXBMSFZwYm5Rek1rSkZPbVFvTkNrc2RXbHVkRXhGT25Zc2RXbHVkRGhNUlRwMktERXBMSFZwYm5ReE5reEZPbllvTWlrc2RXbHVkRE15VEVVNmRpZzBLU3hwYm5SQ1JUcG5MR2x1ZERoQ1JUcG5LREVwTEdsdWRERTJRa1U2WnlneUtTeHBiblF6TWtKRk9tY29OQ2tzYVc1MFRFVTZiU3hwYm5RNFRFVTZiU2d4S1N4cGJuUXhOa3hGT20wb01pa3NhVzUwTXpKTVJUcHRLRFFwTEdac2IyRjBRa1U2YUNoY0ltWnNiMkYwUWtWY0lpdzBLUzV0WVhBb1puVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlHNHVjbVZoWkVac2IyRjBRa1VvTUNsOUtTeG1iRzloZEV4Rk9tZ29YQ0ptYkc5aGRFeEZYQ0lzTkNrdWJXRndLR1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJ1TG5KbFlXUkdiRzloZEV4RktEQXBmU2tzWkc5MVlteGxRa1U2YUNoY0ltUnZkV0pzWlVKRlhDSXNPQ2t1YldGd0tHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQnVMbkpsWVdSRWIzVmliR1ZDUlNnd0tYMHBMR1J2ZFdKc1pVeEZPbWdvWENKa2IzVmliR1ZNUlZ3aUxEZ3BMbTFoY0NobWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2JpNXlaV0ZrUkc5MVlteGxURVVvTUNsOUtYMHNiaTVsZUhCdmNuUnpQV1Y5WFNsOUtUc2lMQ0FpWENKMWMyVWdjM1J5YVdOMFhDSTdYSEpjYm5aaGNpQmZYMlY0ZEdWdVpITWdQU0FvZEdocGN5QW1KaUIwYUdsekxsOWZaWGgwWlc1a2N5a2dmSHdnS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIWmhjaUJsZUhSbGJtUlRkR0YwYVdOeklEMGdablZ1WTNScGIyNGdLR1FzSUdJcElIdGNjbHh1SUNBZ0lDQWdJQ0JsZUhSbGJtUlRkR0YwYVdOeklEMGdUMkpxWldOMExuTmxkRkJ5YjNSdmRIbHdaVTltSUh4OFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNoN0lGOWZjSEp2ZEc5Zlh6b2dXMTBnZlNCcGJuTjBZVzVqWlc5bUlFRnljbUY1SUNZbUlHWjFibU4wYVc5dUlDaGtMQ0JpS1NCN0lHUXVYMTl3Y205MGIxOWZJRDBnWWpzZ2ZTa2dmSHhjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdablZ1WTNScGIyNGdLR1FzSUdJcElIc2dabTl5SUNoMllYSWdjQ0JwYmlCaUtTQnBaaUFvVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0dJc0lIQXBLU0JrVzNCZElEMGdZbHR3WFRzZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaWGgwWlc1a1UzUmhkR2xqY3loa0xDQmlLVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdLR1FzSUdJcElIdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdJZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQmlJQ0U5UFNCdWRXeHNLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpUTJ4aGMzTWdaWGgwWlc1a2N5QjJZV3gxWlNCY0lpQXJJRk4wY21sdVp5aGlLU0FySUZ3aUlHbHpJRzV2ZENCaElHTnZibk4wY25WamRHOXlJRzl5SUc1MWJHeGNJaWs3WEhKY2JpQWdJQ0FnSUNBZ1pYaDBaVzVrVTNSaGRHbGpjeWhrTENCaUtUdGNjbHh1SUNBZ0lDQWdJQ0JtZFc1amRHbHZiaUJmWHlncElIc2dkR2hwY3k1amIyNXpkSEoxWTNSdmNpQTlJR1E3SUgxY2NseHVJQ0FnSUNBZ0lDQmtMbkJ5YjNSdmRIbHdaU0E5SUdJZ1BUMDlJRzUxYkd3Z1B5QlBZbXBsWTNRdVkzSmxZWFJsS0dJcElEb2dLRjlmTG5CeWIzUnZkSGx3WlNBOUlHSXVjSEp2ZEc5MGVYQmxMQ0J1WlhjZ1gxOG9LU2s3WEhKY2JpQWdJQ0I5TzF4eVhHNTlLU2dwTzF4eVhHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKZlgyVnpUVzlrZFd4bFhDSXNJSHNnZG1Gc2RXVTZJSFJ5ZFdVZ2ZTazdYSEpjYm1WNGNHOXlkSE11Ulcxd2RIbENWSEpsWlNBOUlHVjRjRzl5ZEhNdVlYTlRaWFFnUFNCbGVIQnZjblJ6TG5OcGJYQnNaVU52YlhCaGNtRjBiM0lnUFNCbGVIQnZjblJ6TG1SbFptRjFiSFJEYjIxd1lYSmhkRzl5SUQwZ2RtOXBaQ0F3TzF4eVhHNHZLaXBjY2x4dUlDb2dRMjl0Y0dGeVpYTWdSR1ZtWVhWc2RFTnZiWEJoY21GaWJHVnpJSFJ2SUdadmNtMGdZU0J6ZEhKcFkzUWdjR0Z5ZEdsaGJDQnZjbVJsY21sdVp5NWNjbHh1SUNwY2NseHVJQ29nU0dGdVpHeGxjeUFyTHkwd0lHRnVaQ0JPWVU0Z2JHbHJaU0JOWVhBNklFNWhUaUJwY3lCbGNYVmhiQ0IwYnlCT1lVNHNJR0Z1WkNBdE1DQnBjeUJsY1hWaGJDQjBieUFyTUM1Y2NseHVJQ3BjY2x4dUlDb2dRWEp5WVhseklHRnlaU0JqYjIxd1lYSmxaQ0IxYzJsdVp5QW5QQ2NnWVc1a0lDYytKeXdnZDJocFkyZ2diV0Y1SUdOaGRYTmxJSFZ1Wlhod1pXTjBaV1FnWlhGMVlXeHBkSGs2WEhKY2JpQXFJR1p2Y2lCbGVHRnRjR3hsSUZzeFhTQjNhV3hzSUdKbElHTnZibk5wWkdWeVpXUWdaWEYxWVd3Z2RHOGdXeWN4SjEwdVhISmNiaUFxWEhKY2JpQXFJRlIzYnlCdlltcGxZM1J6SUhkcGRHZ2daWEYxWVd3Z2RtRnNkV1ZQWmlCamIyMXdZWEpsSUhSb1pTQnpZVzFsTENCaWRYUWdZMjl0Y0dGeVpTQjFibVZ4ZFdGc0lIUnZYSEpjYmlBcUlIQnlhVzFwZEdsMlpYTWdkR2hoZENCb1lYWmxJSFJvWlNCellXMWxJSFpoYkhWbExseHlYRzRnS2k5Y2NseHVablZ1WTNScGIyNGdaR1ZtWVhWc2RFTnZiWEJoY21GMGIzSW9ZU3dnWWlrZ2UxeHlYRzRnSUNBZ0x5OGdVM0JsWTJsaGJDQmpZWE5sSUdacGJtbDBaU0J1ZFcxaVpYSnpJR1pwY25OMElHWnZjaUJ3WlhKbWIzSnRZVzVqWlM1Y2NseHVJQ0FnSUM4dklFNXZkR1VnZEdoaGRDQjBhR1VnZEhKcFkyc2diMllnZFhOcGJtY2dKMkVnTFNCaUp5QmhibVFnWTJobFkydHBibWNnWm05eUlFNWhUaUIwYnlCa1pYUmxZM1FnYm05dUxXNTFiV0psY25OY2NseHVJQ0FnSUM4dklHUnZaWE1nYm05MElIZHZjbXNnYVdZZ2RHaGxJSE4wY21sdVozTWdZWEpsSUc1MWJXVnlhV01nS0dWNE9pQmNJalZjSWlrdUlGUm9hWE1nZDI5MWJHUWdiR1ZoWkdsdVp5QnRiM04wSUZ4eVhHNGdJQ0FnTHk4Z1kyOXRjR0Z5YVhOdmJpQm1kVzVqZEdsdmJuTWdkWE5wYm1jZ2RHaGhkQ0JoY0hCeWIyRmphQ0IwYnlCbVlXbHNJSFJ2SUdoaGRtVWdkSEpoYm5OcGRHbDJhWFI1TGx4eVhHNGdJQ0FnYVdZZ0tFNTFiV0psY2k1cGMwWnBibWwwWlNoaEtTQW1KaUJPZFcxaVpYSXVhWE5HYVc1cGRHVW9ZaWtwSUh0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lTQXRJR0k3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0F2THlCVWFHVWdaR1ZtWVhWc2RDQThJR0Z1WkNBK0lHOXdaWEpoZEc5eWN5QmhjbVVnYm05MElIUnZkR0ZzYkhrZ2IzSmtaWEpsWkM0Z1ZHOGdZV3hzYjNjZ2RIbHdaWE1nZEc4Z1ltVWdiV2w0WldSY2NseHVJQ0FnSUM4dklHbHVJR0VnYzJsdVoyeGxJR052Ykd4bFkzUnBiMjRzSUdOdmJYQmhjbVVnZEhsd1pYTWdZVzVrSUc5eVpHVnlJSFpoYkhWbGN5QnZaaUJrYVdabVpYSmxiblFnZEhsd1pYTWdZbmtnZEhsd1pTNWNjbHh1SUNBZ0lIWmhjaUIwWVNBOUlIUjVjR1Z2WmlCaE8xeHlYRzRnSUNBZ2RtRnlJSFJpSUQwZ2RIbHdaVzltSUdJN1hISmNiaUFnSUNCcFppQW9kR0VnSVQwOUlIUmlLU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSaElEd2dkR0lnUHlBdE1TQTZJREU3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JwWmlBb2RHRWdQVDA5SUNkdlltcGxZM1FuS1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnYzNSaGJtUmhjbVJwZW1Wa0lFcGhkbUZUWTNKcGNIUWdZblZuT2lCdWRXeHNJR2x6SUc1dmRDQmhiaUJ2WW1wbFkzUXNJR0oxZENCMGVYQmxiMllnYzJGNWN5QnBkQ0JwYzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoSUQwOVBTQnVkV3hzS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZaUE5UFQwZ2JuVnNiQ0EvSURBZ09pQXRNVHRjY2x4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoaUlEMDlQU0J1ZFd4c0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTVR0Y2NseHVJQ0FnSUNBZ0lDQmhJRDBnWVM1MllXeDFaVTltS0NrN1hISmNiaUFnSUNBZ0lDQWdZaUE5SUdJdWRtRnNkV1ZQWmlncE8xeHlYRzRnSUNBZ0lDQWdJSFJoSUQwZ2RIbHdaVzltSUdFN1hISmNiaUFnSUNBZ0lDQWdkR0lnUFNCMGVYQmxiMllnWWp0Y2NseHVJQ0FnSUNBZ0lDQXZMeUJFWldGc0lIZHBkR2dnZEdobElIUjNieUIyWVd4MVpVOW1LQ2x6SUhCeWIyUjFZMmx1WnlCa2FXWm1aWEpsYm5RZ2RIbHdaWE5jY2x4dUlDQWdJQ0FnSUNCcFppQW9kR0VnSVQwOUlIUmlLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBZU0E4SUhSaUlEOGdMVEVnT2lBeE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSDFjY2x4dUlDQWdJQzh2SUdFZ1lXNWtJR0lnWVhKbElHNXZkeUIwYUdVZ2MyRnRaU0IwZVhCbExDQmhibVFnZDJsc2JDQmlaU0JoSUc1MWJXSmxjaXdnYzNSeWFXNW5JRzl5SUdGeWNtRjVJRnh5WEc0Z0lDQWdMeThnS0hkb2FXTm9JSGRsSUdGemMzVnRaU0JvYjJ4a2N5QnVkVzFpWlhKeklHOXlJSE4wY21sdVozTXBMQ0J2Y2lCemIyMWxkR2hwYm1jZ2RXNXpkWEJ3YjNKMFpXUXVYSEpjYmlBZ0lDQnBaaUFvWVNBOElHSXBYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQzB4TzF4eVhHNGdJQ0FnYVdZZ0tHRWdQaUJpS1Z4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBeE8xeHlYRzRnSUNBZ2FXWWdLR0VnUFQwOUlHSXBYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJREE3WEhKY2JpQWdJQ0F2THlCUGNtUmxjaUJPWVU0Z2JHVnpjeUIwYUdGdUlHOTBhR1Z5SUc1MWJXSmxjbk5jY2x4dUlDQWdJR2xtSUNoT2RXMWlaWEl1YVhOT1lVNG9ZU2twWEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU1MWJXSmxjaTVwYzA1aFRpaGlLU0EvSURBZ09pQXRNVHRjY2x4dUlDQWdJR1ZzYzJVZ2FXWWdLRTUxYldKbGNpNXBjMDVoVGloaUtTbGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdNVHRjY2x4dUlDQWdJQzh2SUZSb2FYTWdZMjkxYkdRZ1ltVWdkSGR2SUc5aWFtVmpkSE1nS0dVdVp5NGdXemRkSUdGdVpDQmJKemNuWFNrZ2RHaGhkQ0JoY21WdUozUWdiM0prWlhKbFpGeHlYRzRnSUNBZ2NtVjBkWEp1SUVGeWNtRjVMbWx6UVhKeVlYa29ZU2tnUHlBd0lEb2dUblZ0WW1WeUxrNWhUanRjY2x4dWZWeHlYRzVsZUhCdmNuUnpMbVJsWm1GMWJIUkRiMjF3WVhKaGRHOXlJRDBnWkdWbVlYVnNkRU52YlhCaGNtRjBiM0k3WEhKY2JqdGNjbHh1Wm5WdVkzUnBiMjRnYzJsdGNHeGxRMjl0Y0dGeVlYUnZjaWhoTENCaUtTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z1lTQStJR0lnUHlBeElEb2dZU0E4SUdJZ1B5QXRNU0E2SURBN1hISmNibjFjY2x4dVpYaHdiM0owY3k1emFXMXdiR1ZEYjIxd1lYSmhkRzl5SUQwZ2MybHRjR3hsUTI5dGNHRnlZWFJ2Y2p0Y2NseHVPMXh5WEc0dktpcGNjbHh1SUNvZ1FTQnlaV0Z6YjI1aFlteDVJR1poYzNRZ1kyOXNiR1ZqZEdsdmJpQnZaaUJyWlhrdGRtRnNkV1VnY0dGcGNuTWdkMmwwYUNCaElIQnZkMlZ5Wm5Wc0lFRlFTUzVjY2x4dUlDb2dUR0Z5WjJWc2VTQmpiMjF3WVhScFlteGxJSGRwZEdnZ2RHaGxJSE4wWVc1a1lYSmtJRTFoY0M0Z1FsUnlaV1VnYVhNZ1lTQkNLeUIwY21WbElHUmhkR0VnYzNSeWRXTjBkWEpsTEZ4eVhHNGdLaUJ6YnlCMGFHVWdZMjlzYkdWamRHbHZiaUJwY3lCemIzSjBaV1FnWW5rZ2EyVjVMbHh5WEc0Z0tseHlYRzRnS2lCQ0t5QjBjbVZsY3lCMFpXNWtJSFJ2SUhWelpTQnRaVzF2Y25rZ2JXOXlaU0JsWm1acFkybGxiblJzZVNCMGFHRnVJR2hoYzJoMFlXSnNaWE1nYzNWamFDQmhjeUIwYUdWY2NseHVJQ29nYzNSaGJtUmhjbVFnVFdGd0xDQmxjM0JsWTJsaGJHeDVJSGRvWlc0Z2RHaGxJR052Ykd4bFkzUnBiMjRnWTI5dWRHRnBibk1nWVNCc1lYSm5aU0J1ZFcxaVpYSWdiMlpjY2x4dUlDb2dhWFJsYlhNdUlFaHZkMlYyWlhJc0lHMWhhVzUwWVdsdWFXNW5JSFJvWlNCemIzSjBJRzl5WkdWeUlHMWhhMlZ6SUhSb1pXMGdiVzlrWlhOMGJIa2djMnh2ZDJWeU9seHlYRzRnS2lCUEtHeHZaeUJ6YVhwbEtTQnlZWFJvWlhJZ2RHaGhiaUJQS0RFcExpQlVhR2x6SUVJcklIUnlaV1VnYVcxd2JHVnRaVzUwWVhScGIyNGdjM1Z3Y0c5eWRITWdUeWd4S1Z4eVhHNGdLaUJtWVhOMElHTnNiMjVwYm1jdUlFbDBJR0ZzYzI4Z2MzVndjRzl5ZEhNZ1puSmxaWHBsS0Nrc0lIZG9hV05vSUdOaGJpQmlaU0IxYzJWa0lIUnZJR1Z1YzNWeVpTQjBhR0YwWEhKY2JpQXFJR0VnUWxSeVpXVWdhWE1nYm05MElHTm9ZVzVuWldRZ1lXTmphV1JsYm5SaGJHeDVMbHh5WEc0Z0tseHlYRzRnS2lCRGIyNW1kWE5wYm1kc2VTd2dkR2hsSUVWVE5pQk5ZWEF1Wm05eVJXRmphQ2hqS1NCdFpYUm9iMlFnWTJGc2JITWdZeWgyWVd4MVpTeHJaWGtwSUdsdWMzUmxZV1FnYjJaY2NseHVJQ29nWXloclpYa3NkbUZzZFdVcExDQnBiaUJqYjI1MGNtRnpkQ0IwYnlCdmRHaGxjaUJ0WlhSb2IyUnpJSE4xWTJnZ1lYTWdjMlYwS0NrZ1lXNWtJR1Z1ZEhKcFpYTW9LVnh5WEc0Z0tpQjNhR2xqYUNCd2RYUWdkR2hsSUd0bGVTQm1hWEp6ZEM0Z1NTQmpZVzRnYjI1c2VTQmhjM04xYldVZ2RHaGhkQ0IwYUdVZ2IzSmtaWElnZDJGeklISmxkbVZ5YzJWa0lHOXVYSEpjYmlBcUlIUm9aU0IwYUdWdmNua2dkR2hoZENCMWMyVnljeUIzYjNWc1pDQjFjM1ZoYkd4NUlIZGhiblFnZEc4Z1pYaGhiV2x1WlNCMllXeDFaWE1nWVc1a0lHbG5ibTl5WlNCclpYbHpMbHh5WEc0Z0tpQkNWSEpsWlNkeklHWnZja1ZoWTJnb0tTQjBhR1Z5WldadmNtVWdkMjl5YTNNZ2RHaGxJSE5oYldVZ2QyRjVMQ0JpZFhRZ1lTQnpaV052Ym1RZ2JXVjBhRzlrWEhKY2JpQXFJR0F1Wm05eVJXRmphRkJoYVhJb0tHdGxlU3gyWVd4MVpTazlQbnN1TGk1OUtXQWdhWE1nY0hKdmRtbGtaV1FnZDJocFkyZ2djMlZ1WkhNZ2VXOTFJSFJvWlNCclpYbGNjbHh1SUNvZ1ptbHljM1FnWVc1a0lIUm9aU0IyWVd4MVpTQnpaV052Ym1RN0lIUm9hWE1nYldWMGFHOWtJR2x6SUhOc2FXZG9kR3g1SUdaaGMzUmxjaUJpWldOaGRYTmxJR2wwSUdselhISmNiaUFxSUhSb1pTQmNJbTVoZEdsMlpWd2lJR1p2Y2kxbFlXTm9JRzFsZEdodlpDQm1iM0lnZEdocGN5QmpiR0Z6Y3k1Y2NseHVJQ3BjY2x4dUlDb2dUM1YwSUc5bUlIUm9aU0JpYjNnc0lFSlVjbVZsSUhOMWNIQnZjblJ6SUd0bGVYTWdkR2hoZENCaGNtVWdiblZ0WW1WeWN5d2djM1J5YVc1bmN5d2dZWEp5WVhseklHOW1YSEpjYmlBcUlHNTFiV0psY25NdmMzUnlhVzVuY3l3Z1JHRjBaU3dnWVc1a0lHOWlhbVZqZEhNZ2RHaGhkQ0JvWVhabElHRWdkbUZzZFdWUFppZ3BJRzFsZEdodlpDQnlaWFIxY201cGJtY2dZVnh5WEc0Z0tpQnVkVzFpWlhJZ2IzSWdjM1J5YVc1bkxpQlBkR2hsY2lCa1lYUmhJSFI1Y0dWekxDQnpkV05vSUdGeklHRnljbUY1Y3lCdlppQkVZWFJsSUc5eUlHTjFjM1J2YlZ4eVhHNGdLaUJ2WW1wbFkzUnpMQ0J5WlhGMWFYSmxJR0VnWTNWemRHOXRJR052YlhCaGNtRjBiM0lzSUhkb2FXTm9JSGx2ZFNCdGRYTjBJSEJoYzNNZ1lYTWdkR2hsSUhObFkyOXVaRnh5WEc0Z0tpQmhjbWQxYldWdWRDQjBieUIwYUdVZ1kyOXVjM1J5ZFdOMGIzSWdLSFJvWlNCbWFYSnpkQ0JoY21kMWJXVnVkQ0JwY3lCaGJpQnZjSFJwYjI1aGJDQnNhWE4wSUc5bVhISmNiaUFxSUdsdWFYUnBZV3dnYVhSbGJYTXBMaUJUZVcxaWIyeHpJR05oYm01dmRDQmlaU0IxYzJWa0lHRnpJR3RsZVhNZ1ltVmpZWFZ6WlNCMGFHVjVJR0Z5WlNCMWJtOXlaR1Z5WldSY2NseHVJQ29nS0c5dVpTQlRlVzFpYjJ3Z2FYTWdibVYyWlhJZ1hDSm5jbVZoZEdWeVhDSWdiM0lnWENKc1pYTnpYQ0lnZEdoaGJpQmhibTkwYUdWeUtTNWNjbHh1SUNwY2NseHVJQ29nUUdWNFlXMXdiR1ZjY2x4dUlDb2dSMmwyWlc0Z1lTQjdibUZ0WlRvZ2MzUnlhVzVuTENCaFoyVTZJRzUxYldKbGNuMGdiMkpxWldOMExDQjViM1VnWTJGdUlHTnlaV0YwWlNCaElIUnlaV1VnYzI5eWRHVmtJR0o1WEhKY2JpQXFJRzVoYldVZ1lXNWtJSFJvWlc0Z1lua2dZV2RsSUd4cGEyVWdkR2hwY3pwY2NseHVJQ3BjY2x4dUlDb2dJQ0FnSUhaaGNpQjBjbVZsSUQwZ2JtVjNJRUpVY21WbEtIVnVaR1ZtYVc1bFpDd2dLR0VzSUdJcElEMCtJSHRjY2x4dUlDb2dJQ0FnSUNBZ2FXWWdLR0V1Ym1GdFpTQStJR0l1Ym1GdFpTbGNjbHh1SUNvZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTVRzZ0x5OGdVbVYwZFhKdUlHRWdiblZ0WW1WeUlENHdJSGRvWlc0Z1lTQStJR0pjY2x4dUlDb2dJQ0FnSUNBZ1pXeHpaU0JwWmlBb1lTNXVZVzFsSUR3Z1lpNXVZVzFsS1Z4eVhHNGdLaUFnSUNBZ0lDQWdJSEpsZEhWeWJpQXRNVHNnTHk4Z1VtVjBkWEp1SUdFZ2JuVnRZbVZ5SUR3d0lIZG9aVzRnWVNBOElHSmNjbHh1SUNvZ0lDQWdJQ0FnWld4elpTQXZMeUJ1WVcxbGN5QmhjbVVnWlhGMVlXd2dLRzl5SUdsdVkyOXRjR0Z5WVdKc1pTbGNjbHh1SUNvZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVM1aFoyVWdMU0JpTG1GblpUc2dMeThnVW1WMGRYSnVJRDR3SUhkb1pXNGdZUzVoWjJVZ1BpQmlMbUZuWlZ4eVhHNGdLaUFnSUNBZ2ZTazdYSEpjYmlBcVhISmNiaUFxSUNBZ0lDQjBjbVZsTG5ObGRDaDdibUZ0WlRwY0lrSnBiR3hjSWl3Z1lXZGxPakUzZlN3Z1hDSm9ZWEJ3ZVZ3aUtUdGNjbHh1SUNvZ0lDQWdJSFJ5WldVdWMyVjBLSHR1WVcxbE9sd2lSbkpoYmx3aUxDQmhaMlU2TkRCOUxDQmNJbUoxYzNrZ0ppQnpkSEpsYzNObFpGd2lLVHRjY2x4dUlDb2dJQ0FnSUhSeVpXVXVjMlYwS0h0dVlXMWxPbHdpUW1sc2JGd2lMQ0JoWjJVNk5UVjlMQ0JjSW5KbFkyVnVkR3g1SUd4aGFXUWdiMlptWENJcE8xeHlYRzRnS2lBZ0lDQWdkSEpsWlM1bWIzSkZZV05vVUdGcGNpZ29heXdnZGlrZ1BUNGdlMXh5WEc0Z0tpQWdJQ0FnSUNCamIyNXpiMnhsTG14dlp5aGdUbUZ0WlRvZ0pIdHJMbTVoYldWOUlFRm5aVG9nSkh0ckxtRm5aWDBnVTNSaGRIVnpPaUFrZTNaOVlDazdYSEpjYmlBcUlDQWdJQ0I5S1R0Y2NseHVJQ3BjY2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1WEhKY2JpQXFJRlJvWlNCY0luSmhibWRsWENJZ2JXVjBhRzlrY3lBb1lHWnZja1ZoWTJnc0lHWnZjbEpoYm1kbExDQmxaR2wwVW1GdVoyVmdLU0IzYVd4c0lISmxkSFZ5YmlCMGFHVWdiblZ0WW1WeVhISmNiaUFxSUc5bUlHVnNaVzFsYm5SeklIUm9ZWFFnZDJWeVpTQnpZMkZ1Ym1Wa0xpQkpiaUJoWkdScGRHbHZiaXdnZEdobElHTmhiR3hpWVdOcklHTmhiaUJ5WlhSMWNtNGdlMkp5WldGck9sSjlYSEpjYmlBcUlIUnZJSE4wYjNBZ1pXRnliSGtnWVc1a0lISmxkSFZ5YmlCU0lHWnliMjBnZEdobElHOTFkR1Z5SUdaMWJtTjBhVzl1TGx4eVhHNGdLbHh5WEc0Z0tpQXRJRlJQUkU4NklGUmxjM1FnY0dWeVptOXliV0Z1WTJVZ2IyWWdjSEpsWVd4c2IyTmhkR2x1WnlCMllXeDFaWE1nWVhKeVlYa2dZWFFnYldGNElITnBlbVZjY2x4dUlDb2dMU0JVVDBSUE9pQkJaR1FnWm1GemRDQnBibWwwYVdGc2FYcGhkR2x2YmlCM2FHVnVJR0VnYzI5eWRHVmtJR0Z5Y21GNUlHbHpJSEJ5YjNacFpHVmtJSFJ2SUdOdmJuTjBjblZqZEc5eVhISmNiaUFxWEhKY2JpQXFJRVp2Y2lCdGIzSmxJR1J2WTNWdFpXNTBZWFJwYjI0Z2MyVmxJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzl4ZDJWeWRHbGxMMkowY21WbExYUjVjR1Z6WTNKcGNIUmNjbHh1SUNwY2NseHVJQ29nUVhKbElIbHZkU0JoSUVNaklHUmxkbVZzYjNCbGNqOGdXVzkxSUcxcFoyaDBJR3hwYTJVZ2RHaGxJSE5wYldsc1lYSWdaR0YwWVNCemRISjFZM1IxY21WeklFa2diV0ZrWlNCbWIzSWdReU02WEhKY2JpQXFJRUpFYVdOMGFXOXVZWEo1TENCQ1RHbHpkQ3dnWlhSakxpQlRaV1VnYUhSMGNEb3ZMMk52Y21VdWJHOTVZeTV1WlhRdlkyOXNiR1ZqZEdsdmJuTXZYSEpjYmlBcVhISmNiaUFxSUVCaGRYUm9iM0lnUkdGMmFXUWdVR2xsY0dkeVlYTnpYSEpjYmlBcUwxeHlYRzUyWVhJZ1FsUnlaV1VnUFNBdktpb2dRR05zWVhOeklDb3ZJQ2htZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBdktpcGNjbHh1SUNBZ0lDQXFJRWx1YVhScFlXeHBlbVZ6SUdGdUlHVnRjSFI1SUVJcklIUnlaV1V1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnWTI5dGNHRnlaU0JEZFhOMGIyMGdablZ1WTNScGIyNGdkRzhnWTI5dGNHRnlaU0J3WVdseWN5QnZaaUJsYkdWdFpXNTBjeUJwYmlCMGFHVWdkSEpsWlM1Y2NseHVJQ0FnSUNBcUlDQWdTV1lnYm05MElITndaV05wWm1sbFpDd2daR1ZtWVhWc2RFTnZiWEJoY21GMGIzSWdkMmxzYkNCaVpTQjFjMlZrSUhkb2FXTm9JR2x6SUhaaGJHbGtJR0Z6SUd4dmJtY2dZWE1nU3lCbGVIUmxibVJ6SUVSbFptRjFiSFJEYjIxd1lYSmhZbXhsTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdWdWRISnBaWE1nUVNCelpYUWdiMllnYTJWNUxYWmhiSFZsSUhCaGFYSnpJSFJ2SUdsdWFYUnBZV3hwZW1VZ2RHaGxJSFJ5WldWY2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCdFlYaE9iMlJsVTJsNlpTQkNjbUZ1WTJocGJtY2dabUZqZEc5eUlDaHRZWGhwYlhWdElHbDBaVzF6SUc5eUlHTm9hV3hrY21WdUlIQmxjaUJ1YjJSbEtWeHlYRzRnSUNBZ0lDb2dJQ0JOZFhOMElHSmxJR2x1SUhKaGJtZGxJRFF1TGpJMU5pNGdTV1lnZFc1a1pXWnBibVZrSUc5eUlEdzBJSFJvWlc0Z1pHVm1ZWFZzZENCcGN5QjFjMlZrT3lCcFppQStNalUySUhSb1pXNGdNalUyTGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCbWRXNWpkR2x2YmlCQ1ZISmxaU2hsYm5SeWFXVnpMQ0JqYjIxd1lYSmxMQ0J0WVhoT2IyUmxVMmw2WlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzSnZiM1FnUFNCRmJYQjBlVXhsWVdZN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1ZmMybDZaU0E5SURBN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1ZmJXRjRUbTlrWlZOcGVtVWdQU0J0WVhoT2IyUmxVMmw2WlNBK1BTQTBJRDhnVFdGMGFDNXRhVzRvYldGNFRtOWtaVk5wZW1Vc0lESTFOaWtnT2lBek1qdGNjbHh1SUNBZ0lDQWdJQ0IwYUdsekxsOWpiMjF3WVhKbElEMGdZMjl0Y0dGeVpTQjhmQ0JrWldaaGRXeDBRMjl0Y0dGeVlYUnZjanRjY2x4dUlDQWdJQ0FnSUNCcFppQW9aVzUwY21sbGN5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSUVlXbHljeWhsYm5SeWFXVnpLVHRjY2x4dUlDQWdJSDFjY2x4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoQ1ZISmxaUzV3Y205MGIzUjVjR1VzSUZ3aWMybDZaVndpTENCN1hISmNiaUFnSUNBZ0lDQWdMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUNBZ0lDQXZMeUJGVXpZZ1RXRndQRXNzVmo0Z2JXVjBhRzlrY3lBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnSUNBZ0lDOHFLaUJIWlhSeklIUm9aU0J1ZFcxaVpYSWdiMllnYTJWNUxYWmhiSFZsSUhCaGFYSnpJR2x1SUhSb1pTQjBjbVZsTGlBcUwxeHlYRzRnSUNBZ0lDQWdJR2RsZERvZ1puVnVZM1JwYjI0Z0tDa2dleUJ5WlhSMWNtNGdkR2hwY3k1ZmMybDZaVHNnZlN4Y2NseHVJQ0FnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUJtWVd4elpTeGNjbHh1SUNBZ0lDQWdJQ0JqYjI1bWFXZDFjbUZpYkdVNklIUnlkV1ZjY2x4dUlDQWdJSDBwTzF4eVhHNGdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtFSlVjbVZsTG5CeWIzUnZkSGx3WlN3Z1hDSnNaVzVuZEdoY0lpd2dlMXh5WEc0Z0lDQWdJQ0FnSUM4cUtpQkhaWFJ6SUhSb1pTQnVkVzFpWlhJZ2IyWWdhMlY1TFhaaGJIVmxJSEJoYVhKeklHbHVJSFJvWlNCMGNtVmxMaUFxTDF4eVhHNGdJQ0FnSUNBZ0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjeTVmYzJsNlpUc2dmU3hjY2x4dUlDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQm1ZV3h6WlN4Y2NseHVJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVmNjbHh1SUNBZ0lIMHBPMXh5WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0VKVWNtVmxMbkJ5YjNSdmRIbHdaU3dnWENKcGMwVnRjSFI1WENJc0lIdGNjbHh1SUNBZ0lDQWdJQ0F2S2lvZ1VtVjBkWEp1Y3lCMGNuVmxJR2xtWmlCMGFHVWdkSEpsWlNCamIyNTBZV2x1Y3lCdWJ5QnJaWGt0ZG1Gc2RXVWdjR0ZwY25NdUlDb3ZYSEpjYmlBZ0lDQWdJQ0FnWjJWME9pQm1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUIwYUdsekxsOXphWHBsSUQwOVBTQXdPeUI5TEZ4eVhHNGdJQ0FnSUNBZ0lHVnVkVzFsY21GaWJHVTZJR1poYkhObExGeHlYRzRnSUNBZ0lDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaVnh5WEc0Z0lDQWdmU2s3WEhKY2JpQWdJQ0F2S2lvZ1VtVnNaV0Z6WlhNZ2RHaGxJSFJ5WldVZ2MyOGdkR2hoZENCcGRITWdjMmw2WlNCcGN5QXdMaUFxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbU5zWldGeUlEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUWdQU0JGYlhCMGVVeGxZV1k3WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYzJsNlpTQTlJREE3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGSjFibk1nWVNCbWRXNWpkR2x2YmlCbWIzSWdaV0ZqYUNCclpYa3RkbUZzZFdVZ2NHRnBjaXdnYVc0Z2IzSmtaWElnWm5KdmJTQnpiV0ZzYkdWemRDQjBiMXh5WEc0Z0lDQWdJQ29nSUd4aGNtZGxjM1FnYTJWNUxpQkdiM0lnWTI5dGNHRjBhV0pwYkdsMGVTQjNhWFJvSUVWVE5pQk5ZWEFzSUhSb1pTQmhjbWQxYldWdWRDQnZjbVJsY2lCMGIxeHlYRzRnSUNBZ0lDb2dJSFJvWlNCallXeHNZbUZqYXlCcGN5QmlZV05yZDJGeVpITTZJSFpoYkhWbElHWnBjbk4wTENCMGFHVnVJR3RsZVM0Z1EyRnNiQ0JtYjNKRllXTm9VR0ZwY2x4eVhHNGdJQ0FnSUNvZ0lHbHVjM1JsWVdRZ2RHOGdjbVZqWldsMlpTQjBhR1VnYTJWNUlHRnpJSFJvWlNCbWFYSnpkQ0JoY21kMWJXVnVkQzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0IwYUdselFYSm5JRWxtSUhCeWIzWnBaR1ZrTENCMGFHbHpJSEJoY21GdFpYUmxjaUJwY3lCaGMzTnBaMjVsWkNCaGN5QjBhR1VnWUhSb2FYTmdYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdkbUZzZFdVZ1ptOXlJR1ZoWTJnZ1kyRnNiR0poWTJzdVhISmNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjBhR1VnYm5WdFltVnlJRzltSUhaaGJIVmxjeUIwYUdGMElIZGxjbVVnYzJWdWRDQjBieUIwYUdVZ1kyRnNiR0poWTJzc1hISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ2IzSWdkR2hsSUZJZ2RtRnNkV1VnYVdZZ2RHaGxJR05oYkd4aVlXTnJJSEpsZEhWeWJtVmtJSHRpY21WaGF6cFNmUzRnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVtYjNKRllXTm9JRDBnWm5WdVkzUnBiMjRnS0dOaGJHeGlZV05yTENCMGFHbHpRWEpuS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUY5MGFHbHpJRDBnZEdocGN6dGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjMEZ5WnlBaFBUMGdkVzVrWldacGJtVmtLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZV3hzWW1GamF5QTlJR05oYkd4aVlXTnJMbUpwYm1Rb2RHaHBjMEZ5WnlrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Wm05eVJXRmphRkJoYVhJb1puVnVZM1JwYjI0Z0tHc3NJSFlwSUhzZ2NtVjBkWEp1SUdOaGJHeGlZV05yS0hZc0lHc3NJRjkwYUdsektUc2dmU2s3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGSjFibk1nWVNCbWRXNWpkR2x2YmlCbWIzSWdaV0ZqYUNCclpYa3RkbUZzZFdVZ2NHRnBjaXdnYVc0Z2IzSmtaWElnWm5KdmJTQnpiV0ZzYkdWemRDQjBiMXh5WEc0Z0lDQWdJQ29nSUd4aGNtZGxjM1FnYTJWNUxpQlVhR1VnWTJGc2JHSmhZMnNnWTJGdUlISmxkSFZ5YmlCN1luSmxZV3M2VW4wZ0tIZG9aWEpsSUZJZ2FYTWdZVzU1SUhaaGJIVmxYSEpjYmlBZ0lDQWdLaUFnWlhoalpYQjBJSFZ1WkdWbWFXNWxaQ2tnZEc4Z2MzUnZjQ0JwYlcxbFpHbGhkR1ZzZVNCaGJtUWdjbVYwZFhKdUlGSWdabkp2YlNCbWIzSkZZV05vVUdGcGNpNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnZia1p2ZFc1a0lFRWdablZ1WTNScGIyNGdkR2hoZENCcGN5QmpZV3hzWldRZ1ptOXlJR1ZoWTJnZ2EyVjVMWFpoYkhWbElIQmhhWEl1SUZSb2FYTmNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQmpZVzRnY21WMGRYSnVJSHRpY21WaGF6cFNmU0IwYnlCemRHOXdJR1ZoY214NUlIZHBkR2dnY21WemRXeDBJRkl1WEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnVkdobElISmxZWE52YmlCMGFHRjBJSGx2ZFNCdGRYTjBJSEpsZEhWeWJpQjdZbkpsWVdzNlVuMGdhVzV6ZEdWaFpDQnZaaUJ6YVcxd2JIa2dVbHh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR2wwYzJWc1ppQnBjeUJtYjNJZ1kyOXVjMmx6ZEdWdVkza2dkMmwwYUNCbFpHbDBVbUZ1WjJVb0tTd2dkMmhwWTJnZ1lXeHNiM2R6WEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnYlhWc2RHbHdiR1VnWVdOMGFXOXVjeXdnYm05MElHcDFjM1FnWW5KbFlXdHBibWN1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYVc1cGRHbGhiRU52ZFc1MFpYSWdWR2hwY3lCcGN5QjBhR1VnZG1Gc2RXVWdiMllnZEdobElIUm9hWEprSUdGeVozVnRaVzUwSUc5bVhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ1lHOXVSbTkxYm1SZ0lIUm9aU0JtYVhKemRDQjBhVzFsSUdsMElHbHpJR05oYkd4bFpDNGdWR2hsSUdOdmRXNTBaWElnYVc1amNtVmhjMlZ6WEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnWW5rZ2IyNWxJR1ZoWTJnZ2RHbHRaU0JnYjI1R2IzVnVaR0FnYVhNZ1kyRnNiR1ZrTGlCRVpXWmhkV3gwSUhaaGJIVmxPaUF3WEhKY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCMGFHVWdiblZ0WW1WeUlHOW1JSEJoYVhKeklITmxiblFnZEc4Z2RHaGxJR05oYkd4aVlXTnJJQ2h3YkhWeklHbHVhWFJwWVd4RGIzVnVkR1Z5TEZ4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUdsbUlIbHZkU0J3Y205MmFXUmxaQ0J2Ym1VcExpQkpaaUIwYUdVZ1kyRnNiR0poWTJzZ2NtVjBkWEp1WldRZ2UySnlaV0ZyT2xKOUlIUm9aVzVjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0IwYUdVZ1VpQjJZV3gxWlNCcGN5QnlaWFIxY201bFpDQnBibk4wWldGa0xpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtWnZja1ZoWTJoUVlXbHlJRDBnWm5WdVkzUnBiMjRnS0dOaGJHeGlZV05yTENCcGJtbDBhV0ZzUTI5MWJuUmxjaWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJzYjNjZ1BTQjBhR2x6TG0xcGJrdGxlU2dwTENCb2FXZG9JRDBnZEdocGN5NXRZWGhMWlhrb0tUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bWIzSlNZVzVuWlNoc2IzY3NJR2hwWjJnc0lIUnlkV1VzSUdOaGJHeGlZV05yTENCcGJtbDBhV0ZzUTI5MWJuUmxjaWs3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcVhISmNiaUFnSUNBZ0tpQkdhVzVrY3lCaElIQmhhWElnYVc0Z2RHaGxJSFJ5WldVZ1lXNWtJSEpsZEhWeWJuTWdkR2hsSUdGemMyOWphV0YwWldRZ2RtRnNkV1V1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnWkdWbVlYVnNkRlpoYkhWbElHRWdkbUZzZFdVZ2RHOGdjbVYwZFhKdUlHbG1JSFJvWlNCclpYa2dkMkZ6SUc1dmRDQm1iM1Z1WkM1Y2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIUm9aU0IyWVd4MVpTd2diM0lnWkdWbVlYVnNkRlpoYkhWbElHbG1JSFJvWlNCclpYa2dkMkZ6SUc1dmRDQm1iM1Z1WkM1Y2NseHVJQ0FnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEYjIxd2RYUmhkR2x2Ym1Gc0lHTnZiWEJzWlhocGRIazZJRThvYkc5bklITnBlbVVwWEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVuWlhRZ1BTQm1kVzVqZEdsdmJpQW9hMlY1TENCa1pXWmhkV3gwVm1Gc2RXVXBJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZjbTl2ZEM1blpYUW9hMlY1TENCa1pXWmhkV3gwVm1Gc2RXVXNJSFJvYVhNcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLbHh5WEc0Z0lDQWdJQ29nUVdSa2N5QnZjaUJ2ZG1WeWQzSnBkR1Z6SUdFZ2EyVjVMWFpoYkhWbElIQmhhWElnYVc0Z2RHaGxJRUlySUhSeVpXVXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhMlY1SUhSb1pTQnJaWGtnYVhNZ2RYTmxaQ0IwYnlCa1pYUmxjbTFwYm1VZ2RHaGxJSE52Y25RZ2IzSmtaWElnYjJaY2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNCa1lYUmhJR2x1SUhSb1pTQjBjbVZsTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhaaGJIVmxJR1JoZEdFZ2RHOGdZWE56YjJOcFlYUmxJSGRwZEdnZ2RHaGxJR3RsZVNBb2IzQjBhVzl1WVd3cFhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2IzWmxjbmR5YVhSbElGZG9aWFJvWlhJZ2RHOGdiM1psY25keWFYUmxJR0Z1SUdWNGFYTjBhVzVuSUd0bGVTMTJZV3gxWlNCd1lXbHlYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdLR1JsWm1GMWJIUTZJSFJ5ZFdVcExpQkpaaUIwYUdseklHbHpJR1poYkhObElHRnVaQ0IwYUdWeVpTQnBjeUJoYmlCbGVHbHpkR2x1WjF4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUd0bGVTMTJZV3gxWlNCd1lXbHlJSFJvWlc0Z2RHaHBjeUJ0WlhSb2IyUWdhR0Z6SUc1dklHVm1abVZqZEM1Y2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIUnlkV1VnYVdZZ1lTQnVaWGNnYTJWNUxYWmhiSFZsSUhCaGFYSWdkMkZ6SUdGa1pHVmtMbHh5WEc0Z0lDQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZiWEIxZEdGMGFXOXVZV3dnWTI5dGNHeGxlR2wwZVRvZ1R5aHNiMmNnYzJsNlpTbGNjbHh1SUNBZ0lDQXFJRTV2ZEdVNklIZG9aVzRnYjNabGNuZHlhWFJwYm1jZ1lTQndjbVYyYVc5MWN5QmxiblJ5ZVN3Z2RHaGxJR3RsZVNCcGN5QjFjR1JoZEdWa1hISmNiaUFnSUNBZ0tpQmhjeUIzWld4c0lHRnpJSFJvWlNCMllXeDFaUzRnVkdocGN5Qm9ZWE1nYm04Z1pXWm1aV04wSUhWdWJHVnpjeUIwYUdVZ2JtVjNJR3RsZVZ4eVhHNGdJQ0FnSUNvZ2FHRnpJR1JoZEdFZ2RHaGhkQ0JrYjJWeklHNXZkQ0JoWm1abFkzUWdhWFJ6SUhOdmNuUWdiM0prWlhJdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1elpYUWdQU0JtZFc1amRHbHZiaUFvYTJWNUxDQjJZV3gxWlN3Z2IzWmxjbmR5YVhSbEtTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WDNKdmIzUXVhWE5UYUdGeVpXUXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUWdQU0IwYUdsekxsOXliMjkwTG1Oc2IyNWxLQ2s3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJSFJvYVhNdVgzSnZiM1F1YzJWMEtHdGxlU3dnZG1Gc2RXVXNJRzkyWlhKM2NtbDBaU3dnZEdocGN5azdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tISmxjM1ZzZENBOVBUMGdkSEoxWlNCOGZDQnlaWE4xYkhRZ1BUMDlJR1poYkhObEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh5WEc0Z0lDQWdJQ0FnSUM4dklGSnZiM1FnYm05a1pTQm9ZWE1nYzNCc2FYUXNJSE52SUdOeVpXRjBaU0JoSUc1bGR5QnliMjkwSUc1dlpHVXVYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NWZjbTl2ZENBOUlHNWxkeUJDVG05a1pVbHVkR1Z5Ym1Gc0tGdDBhR2x6TGw5eWIyOTBMQ0J5WlhOMWJIUmRLVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaXBjY2x4dUlDQWdJQ0FxSUZKbGRIVnlibk1nZEhKMVpTQnBaaUIwYUdVZ2EyVjVJR1Y0YVhOMGN5QnBiaUIwYUdVZ1Fpc2dkSEpsWlN3Z1ptRnNjMlVnYVdZZ2JtOTBMbHh5WEc0Z0lDQWdJQ29nVlhObElHZGxkQ2dwSUdadmNpQmlaWE4wSUhCbGNtWnZjbTFoYm1ObE95QjFjMlVnYUdGektDa2dhV1lnZVc5MUlHNWxaV1FnZEc5Y2NseHVJQ0FnSUNBcUlHUnBjM1JwYm1kMWFYTm9JR0psZEhkbFpXNGdYQ0oxYm1SbFptbHVaV1FnZG1Gc2RXVmNJaUJoYm1RZ1hDSnJaWGtnYm05MElIQnlaWE5sYm5SY0lpNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnJaWGtnUzJWNUlIUnZJR1JsZEdWamRGeHlYRzRnSUNBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJYQjFkR0YwYVc5dVlXd2dZMjl0Y0d4bGVHbDBlVG9nVHloc2IyY2djMmw2WlNsY2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1oaGN5QTlJR1oxYm1OMGFXOXVJQ2hyWlhrcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bWIzSlNZVzVuWlNoclpYa3NJR3RsZVN3Z2RISjFaU3dnZFc1a1pXWnBibVZrS1NBaFBUMGdNRHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2S2lwY2NseHVJQ0FnSUNBcUlGSmxiVzkyWlhNZ1lTQnphVzVuYkdVZ2EyVjVMWFpoYkhWbElIQmhhWElnWm5KdmJTQjBhR1VnUWlzZ2RISmxaUzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JyWlhrZ1MyVjVJSFJ2SUdacGJtUmNjbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSFJ5ZFdVZ2FXWWdZU0J3WVdseUlIZGhjeUJtYjNWdVpDQmhibVFnY21WdGIzWmxaQ3dnWm1Gc2MyVWdiM1JvWlhKM2FYTmxMbHh5WEc0Z0lDQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZiWEIxZEdGMGFXOXVZV3dnWTI5dGNHeGxlR2wwZVRvZ1R5aHNiMmNnYzJsNlpTbGNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtUmxiR1YwWlNBOUlHWjFibU4wYVc5dUlDaHJaWGtwSUh0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVsWkdsMFVtRnVaMlVvYTJWNUxDQnJaWGtzSUhSeWRXVXNJRVJsYkdWMFpWSmhibWRsS1NBaFBUMGdNRHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkMmwwYUNBOUlHWjFibU4wYVc5dUlDaHJaWGtzSUhaaGJIVmxMQ0J2ZG1WeWQzSnBkR1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYm5VZ1BTQjBhR2x6TG1Oc2IyNWxLQ2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MUxuTmxkQ2hyWlhrc0lIWmhiSFZsTENCdmRtVnlkM0pwZEdVcElIeDhJRzkyWlhKM2NtbDBaU0EvSUc1MUlEb2dkR2hwY3p0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpb2dVbVYwZFhKdWN5QmhJR052Y0hrZ2IyWWdkR2hsSUhSeVpXVWdkMmwwYUNCMGFHVWdjM0JsWTJsbWFXVmtJR3RsZVMxMllXeDFaU0J3WVdseWN5QnpaWFF1SUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1ZDJsMGFGQmhhWEp6SUQwZ1puVnVZM1JwYjI0Z0tIQmhhWEp6TENCdmRtVnlkM0pwZEdVcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2JuVWdQU0IwYUdsekxtTnNiMjVsS0NrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNTFMbk5sZEZCaGFYSnpLSEJoYVhKekxDQnZkbVZ5ZDNKcGRHVXBJQ0U5UFNBd0lIeDhJRzkyWlhKM2NtbDBaU0EvSUc1MUlEb2dkR2hwY3p0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpb2dVbVYwZFhKdWN5QmhJR052Y0hrZ2IyWWdkR2hsSUhSeVpXVWdkMmwwYUNCMGFHVWdjM0JsWTJsbWFXVmtJR3RsZVhNZ2NISmxjMlZ1ZEM1Y2NseHVJQ0FnSUNBcUlDQkFjR0Z5WVcwZ2EyVjVjeUJVYUdVZ2EyVjVjeUIwYnlCaFpHUXVJRWxtSUdFZ2EyVjVJR2x6SUdGc2NtVmhaSGtnY0hKbGMyVnVkQ0JwYmlCMGFHVWdkSEpsWlN4Y2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNBZ2JtVnBkR2hsY2lCMGFHVWdaWGhwYzNScGJtY2dhMlY1SUc1dmNpQjBhR1VnWlhocGMzUnBibWNnZG1Gc2RXVWdhWE1nYlc5a2FXWnBaV1F1WEhKY2JpQWdJQ0FnS2lBZ1FIQmhjbUZ0SUhKbGRIVnlibFJvYVhOSlpsVnVZMmhoYm1kbFpDQnBaaUIwY25WbExDQnlaWFIxY201eklIUm9hWE1nYVdZZ1lXeHNJR3RsZVhNZ1lXeHlaV0ZrZVZ4eVhHNGdJQ0FnSUNvZ0lHVjRhWE4wWldRdUlGQmxjbVp2Y20xaGJtTmxJRzV2ZEdVNklHUjFaU0IwYnlCMGFHVWdZWEpqYUdsMFpXTjBkWEpsSUc5bUlIUm9hWE1nWTJ4aGMzTXNJR0ZzYkZ4eVhHNGdJQ0FnSUNvZ0lHNXZaR1VvY3lrZ2JHVmhaR2x1WnlCMGJ5QmxlR2x6ZEdsdVp5QnJaWGx6SUdGeVpTQmpiRzl1WldRZ1pYWmxiaUJwWmlCMGFHVWdZMjlzYkdWamRHbHZiaUJwYzF4eVhHNGdJQ0FnSUNvZ0lIVnNkR2x0WVhSbGJIa2dkVzVqYUdGdVoyVmtMbHh5WEc0Z0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNTNhWFJvUzJWNWN5QTlJR1oxYm1OMGFXOXVJQ2hyWlhsekxDQnlaWFIxY201VWFHbHpTV1pWYm1Ob1lXNW5aV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYm5VZ1BTQjBhR2x6TG1Oc2IyNWxLQ2tzSUdOb1lXNW5aV1FnUFNCbVlXeHpaVHRjY2x4dUlDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCcElEMGdNRHNnYVNBOElHdGxlWE11YkdWdVozUm9PeUJwS3lzcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdOb1lXNW5aV1FnUFNCdWRTNXpaWFFvYTJWNWMxdHBYU3dnZFc1a1pXWnBibVZrTENCbVlXeHpaU2tnZkh3Z1kyaGhibWRsWkR0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtJQ1ltSUNGamFHRnVaMlZrSUQ4Z2RHaHBjeUE2SUc1MU8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJTWlhSMWNtNXpJR0VnWTI5d2VTQnZaaUIwYUdVZ2RISmxaU0IzYVhSb0lIUm9aU0J6Y0dWamFXWnBaV1FnYTJWNUlISmxiVzkyWldRdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtJR2xtSUhSeWRXVXNJSEpsZEhWeWJuTWdkR2hwY3lCcFppQjBhR1VnYTJWNUlHUnBaRzRuZENCbGVHbHpkQzVjY2x4dUlDQWdJQ0FxSUNCUVpYSm1iM0p0WVc1alpTQnViM1JsT2lCa2RXVWdkRzhnZEdobElHRnlZMmhwZEdWamRIVnlaU0J2WmlCMGFHbHpJR05zWVhOekxDQnViMlJsS0hNcElHeGxZV1JwYm1kY2NseHVJQ0FnSUNBcUlDQjBieUIzYUdWeVpTQjBhR1VnYTJWNUlIZHZkV3hrSUdoaGRtVWdZbVZsYmlCemRHOXlaV1FnWVhKbElHTnNiMjVsWkNCbGRtVnVJSGRvWlc0Z2RHaGxJR3RsZVZ4eVhHNGdJQ0FnSUNvZ0lIUjFjbTV6SUc5MWRDQnViM1FnZEc4Z1pYaHBjM1FnWVc1a0lIUm9aU0JqYjJ4c1pXTjBhVzl1SUdseklIVnVZMmhoYm1kbFpDNWNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExuZHBkR2h2ZFhRZ1BTQm1kVzVqZEdsdmJpQW9hMlY1TENCeVpYUjFjbTVVYUdselNXWlZibU5vWVc1blpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NTNhWFJvYjNWMFVtRnVaMlVvYTJWNUxDQnJaWGtzSUhSeWRXVXNJSEpsZEhWeWJsUm9hWE5KWmxWdVkyaGhibWRsWkNrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdZU0JqYjNCNUlHOW1JSFJvWlNCMGNtVmxJSGRwZEdnZ2RHaGxJSE53WldOcFptbGxaQ0JyWlhseklISmxiVzkyWldRdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtJR2xtSUhSeWRXVXNJSEpsZEhWeWJuTWdkR2hwY3lCcFppQnViMjVsSUc5bUlIUm9aU0JyWlhselhISmNiaUFnSUNBZ0tpQWdaWGhwYzNSbFpDNGdVR1Z5Wm05eWJXRnVZMlVnYm05MFpUb2daSFZsSUhSdklIUm9aU0JoY21Ob2FYUmxZM1IxY21VZ2IyWWdkR2hwY3lCamJHRnpjeXhjY2x4dUlDQWdJQ0FxSUNCdWIyUmxLSE1wSUd4bFlXUnBibWNnZEc4Z2QyaGxjbVVnZEdobElHdGxlU0IzYjNWc1pDQm9ZWFpsSUdKbFpXNGdjM1J2Y21Wa0lHRnlaU0JqYkc5dVpXUmNjbHh1SUNBZ0lDQXFJQ0JsZG1WdUlIZG9aVzRnZEdobElHdGxlU0IwZFhKdWN5QnZkWFFnYm05MElIUnZJR1Y0YVhOMExseHlYRzRnSUNBZ0lDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWQybDBhRzkxZEV0bGVYTWdQU0JtZFc1amRHbHZiaUFvYTJWNWN5d2djbVYwZFhKdVZHaHBjMGxtVlc1amFHRnVaMlZrS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUc1MUlEMGdkR2hwY3k1amJHOXVaU2dwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRTNWtaV3hsZEdWTFpYbHpLR3RsZVhNcElIeDhJQ0Z5WlhSMWNtNVVhR2x6U1daVmJtTm9ZVzVuWldRZ1B5QnVkU0E2SUhSb2FYTTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nWVNCamIzQjVJRzltSUhSb1pTQjBjbVZsSUhkcGRHZ2dkR2hsSUhOd1pXTnBabWxsWkNCeVlXNW5aU0J2WmlCclpYbHpJSEpsYlc5MlpXUXVJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkMmwwYUc5MWRGSmhibWRsSUQwZ1puVnVZM1JwYjI0Z0tHeHZkeXdnYUdsbmFDd2dhVzVqYkhWa1pVaHBaMmdzSUhKbGRIVnlibFJvYVhOSlpsVnVZMmhoYm1kbFpDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnVkU0E5SUhSb2FYTXVZMnh2Ym1Vb0tUdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2JuVXVaR1ZzWlhSbFVtRnVaMlVvYkc5M0xDQm9hV2RvTENCcGJtTnNkV1JsU0dsbmFDa2dQVDA5SURBZ0ppWWdjbVYwZFhKdVZHaHBjMGxtVlc1amFHRnVaMlZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nWVNCamIzQjVJRzltSUhSb1pTQjBjbVZsSUhkcGRHZ2djR0ZwY25NZ2NtVnRiM1psWkNCM2FHVnVaWFpsY2lCMGFHVWdZMkZzYkdKaFkydGNjbHh1SUNBZ0lDQXFJQ0JtZFc1amRHbHZiaUJ5WlhSMWNtNXpJR1poYkhObExpQmdkMmhsY21Vb0tXQWdhWE1nWVNCemVXNXZibmx0SUdadmNpQjBhR2x6SUcxbGRHaHZaQzRnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVtYVd4MFpYSWdQU0JtZFc1amRHbHZiaUFvWTJGc2JHSmhZMnNzSUhKbGRIVnlibFJvYVhOSlpsVnVZMmhoYm1kbFpDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnVkU0E5SUhSb2FYTXVaM0psWldSNVEyeHZibVVvS1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWkdWc08xeHlYRzRnSUNBZ0lDQWdJRzUxTG1Wa2FYUkJiR3dvWm5WdVkzUnBiMjRnS0dzc0lIWXNJR2twSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmpZV3hzWW1GamF5aHJMQ0IyTENCcEtTbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmtaV3dnUFNCRVpXeGxkR1U3WEhKY2JpQWdJQ0FnSUNBZ2ZTazdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tDRmtaV3dnSmlZZ2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm5VN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdZU0JqYjNCNUlHOW1JSFJvWlNCMGNtVmxJSGRwZEdnZ1lXeHNJSFpoYkhWbGN5QmhiSFJsY21Wa0lHSjVJR0VnWTJGc2JHSmhZMnNnWm5WdVkzUnBiMjR1SUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1YldGd1ZtRnNkV1Z6SUQwZ1puVnVZM1JwYjI0Z0tHTmhiR3hpWVdOcktTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlIUnRjQ0E5SUh0OU8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCdWRTQTlJSFJvYVhNdVozSmxaV1I1UTJ4dmJtVW9LVHRjY2x4dUlDQWdJQ0FnSUNCdWRTNWxaR2wwUVd4c0tHWjFibU4wYVc5dUlDaHJMQ0IyTENCcEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGJYQXVkbUZzZFdVZ1BTQmpZV3hzWW1GamF5aDJMQ0JyTENCcEtTd2dkRzF3TzF4eVhHNGdJQ0FnSUNBZ0lIMHBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1Y21Wa2RXTmxJRDBnWm5WdVkzUnBiMjRnS0dOaGJHeGlZV05yTENCcGJtbDBhV0ZzVm1Gc2RXVXBJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdhU0E5SURBc0lIQWdQU0JwYm1sMGFXRnNWbUZzZFdVN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdsMElEMGdkR2hwY3k1bGJuUnlhV1Z6S0hSb2FYTXViV2x1UzJWNUtDa3NJRkpsZFhObFpFRnljbUY1S1N3Z2JtVjRkRHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvSVNodVpYaDBJRDBnYVhRdWJtVjRkQ2dwS1M1a2IyNWxLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQndJRDBnWTJGc2JHSmhZMnNvY0N3Z2JtVjRkQzUyWVd4MVpTd2dhU3NyTENCMGFHbHpLVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY0R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdMeThnU1hSbGNtRjBiM0lnYldWMGFHOWtjeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUM4cUtpQlNaWFIxY201eklHRnVJR2wwWlhKaGRHOXlJSFJvWVhRZ2NISnZkbWxrWlhNZ2FYUmxiWE1nYVc0Z2IzSmtaWElnS0dGelkyVnVaR2x1WnlCdmNtUmxjaUJwWmx4eVhHNGdJQ0FnSUNvZ0lIUm9aU0JqYjJ4c1pXTjBhVzl1SjNNZ1kyOXRjR0Z5WVhSdmNpQjFjMlZ6SUdGelkyVnVaR2x1WnlCdmNtUmxjaXdnWVhNZ2FYTWdkR2hsSUdSbFptRjFiSFF1S1Z4eVhHNGdJQ0FnSUNvZ0lFQndZWEpoYlNCc2IzZGxjM1JMWlhrZ1JtbHljM1FnYTJWNUlIUnZJR0psSUdsMFpYSmhkR1ZrTENCdmNpQjFibVJsWm1sdVpXUWdkRzhnYzNSaGNuUWdZWFJjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0FnYldsdVMyVjVLQ2t1SUVsbUlIUm9aU0J6Y0dWamFXWnBaV1FnYTJWNUlHUnZaWE51SjNRZ1pYaHBjM1FnZEdobGJpQnBkR1Z5WVhScGIyNWNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQWdjM1JoY25SeklHRjBJSFJvWlNCdVpYaDBJR2hwWjJobGNpQnJaWGtnS0dGalkyOXlaR2x1WnlCMGJ5QjBhR1VnWTI5dGNHRnlZWFJ2Y2lrdVhISmNiaUFnSUNBZ0tpQWdRSEJoY21GdElISmxkWE5sWkVGeWNtRjVJRTl3ZEdsdmJtRnNJR0Z5Y21GNUlIVnpaV1FnY21Wd1pXRjBaV1JzZVNCMGJ5QnpkRzl5WlNCclpYa3RkbUZzZFdWY2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNBZ2NHRnBjbk1zSUhSdklHRjJiMmxrSUdOeVpXRjBhVzVuSUdFZ2JtVjNJR0Z5Y21GNUlHOXVJR1YyWlhKNUlHbDBaWEpoZEdsdmJpNWNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtVnVkSEpwWlhNZ1BTQm1kVzVqZEdsdmJpQW9iRzkzWlhOMFMyVjVMQ0J5WlhWelpXUkJjbkpoZVNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcGJtWnZJRDBnZEdocGN5NW1hVzVrVUdGMGFDaHNiM2RsYzNSTFpYa3BPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHBibVp2SUQwOVBTQjFibVJsWm1sdVpXUXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGRHVnlZWFJ2Y2lncE8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCdWIyUmxjWFZsZFdVZ1BTQnBibVp2TG01dlpHVnhkV1YxWlN3Z2JtOWtaV2x1WkdWNElEMGdhVzVtYnk1dWIyUmxhVzVrWlhnc0lHeGxZV1lnUFNCcGJtWnZMbXhsWVdZN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhOMFlYUmxJRDBnY21WMWMyVmtRWEp5WVhrZ0lUMDlJSFZ1WkdWbWFXNWxaQ0EvSURFZ09pQXdPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnS0d4dmQyVnpkRXRsZVNBOVBUMGdkVzVrWldacGJtVmtJRDhnTFRFZ09pQnNaV0ZtTG1sdVpHVjRUMllvYkc5M1pYTjBTMlY1TENBd0xDQjBhR2x6TGw5amIyMXdZWEpsS1NBdElERXBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJwZEdWeVlYUnZjaWhtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdwMWJYQTZJR1p2Y2lBb096c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvYzNSaGRHVXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURBNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dySzJrZ1BDQnNaV0ZtTG10bGVYTXViR1Z1WjNSb0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnWkc5dVpUb2dabUZzYzJVc0lIWmhiSFZsT2lCYmJHVmhaaTVyWlhselcybGRMQ0JzWldGbUxuWmhiSFZsYzF0cFhWMGdmVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGRHVWdQU0F5TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElERTZYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNncksya2dQQ0JzWldGbUxtdGxlWE11YkdWdVozUm9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFZ6WldSQmNuSmhlVnN3WFNBOUlHeGxZV1l1YTJWNWMxdHBYU3dnY21WMWMyVmtRWEp5WVhsYk1WMGdQU0JzWldGbUxuWmhiSFZsYzF0cFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3SUdSdmJtVTZJR1poYkhObExDQjJZV3gxWlRvZ2NtVjFjMlZrUVhKeVlYa2dmVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SURJN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQXlPbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCQlpIWmhibU5sSUhSdklIUm9aU0J1WlhoMElHeGxZV1lnYm05a1pWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnNaWFpsYkNBOUlDMHhPenNwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNncksyeGxkbVZzSUQ0OUlHNXZaR1Z4ZFdWMVpTNXNaVzVuZEdncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkR0YwWlNBOUlETTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVWdhblZ0Y0R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dySzI1dlpHVnBibVJsZUZ0c1pYWmxiRjBnUENCdWIyUmxjWFZsZFdWYmJHVjJaV3hkTG14bGJtZDBhQ2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tEc2diR1YyWld3Z1BpQXdPeUJzWlhabGJDMHRLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsY1hWbGRXVmJiR1YyWld3Z0xTQXhYU0E5SUc1dlpHVnhkV1YxWlZ0c1pYWmxiRjFiYm05a1pXbHVaR1Y0VzJ4bGRtVnNYVjB1WTJocGJHUnlaVzQ3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsYVc1a1pYaGJiR1YyWld3Z0xTQXhYU0E5SURBN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1ZoWmlBOUlHNXZaR1Z4ZFdWMVpWc3dYVnR1YjJSbGFXNWtaWGhiTUYxZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJRDBnTFRFN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBZWFJsSUQwZ2NtVjFjMlZrUVhKeVlYa2dJVDA5SUhWdVpHVm1hVzVsWkNBL0lERWdPaUF3TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElETTZYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJR1J2Ym1VNklIUnlkV1VzSUhaaGJIVmxPaUIxYm1SbFptbHVaV1FnZlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSDBwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtpQlNaWFIxY201eklHRnVJR2wwWlhKaGRHOXlJSFJvWVhRZ2NISnZkbWxrWlhNZ2FYUmxiWE1nYVc0Z2NtVjJaWEp6WldRZ2IzSmtaWEl1WEhKY2JpQWdJQ0FnS2lBZ1FIQmhjbUZ0SUdocFoyaGxjM1JMWlhrZ1MyVjVJR0YwSUhkb2FXTm9JSFJ2SUhOMFlYSjBJR2wwWlhKaGRHbHVaeXdnYjNJZ2RXNWtaV1pwYm1Wa0lIUnZYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdJSE4wWVhKMElHRjBJRzFoZUV0bGVTZ3BMaUJKWmlCMGFHVWdjM0JsWTJsbWFXVmtJR3RsZVNCa2IyVnpiaWQwSUdWNGFYTjBJSFJvWlc0Z2FYUmxjbUYwYVc5dVhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ0lITjBZWEowY3lCaGRDQjBhR1VnYm1WNGRDQnNiM2RsY2lCclpYa2dLR0ZqWTI5eVpHbHVaeUIwYnlCMGFHVWdZMjl0Y0dGeVlYUnZjaWt1WEhKY2JpQWdJQ0FnS2lBZ1FIQmhjbUZ0SUhKbGRYTmxaRUZ5Y21GNUlFOXdkR2x2Ym1Gc0lHRnljbUY1SUhWelpXUWdjbVZ3WldGMFpXUnNlU0IwYnlCemRHOXlaU0JyWlhrdGRtRnNkV1ZjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0FnY0dGcGNuTXNJSFJ2SUdGMmIybGtJR055WldGMGFXNW5JR0VnYm1WM0lHRnljbUY1SUc5dUlHVjJaWEo1SUdsMFpYSmhkR2x2Ymk1Y2NseHVJQ0FnSUNBcUlDQkFjR0Z5WVcwZ2MydHBjRWhwWjJobGMzUWdTV1ptSUhSb2FYTWdabXhoWnlCcGN5QjBjblZsSUdGdVpDQjBhR1VnYUdsbmFHVnpkRXRsZVNCbGVHbHpkSE1nYVc0Z2RHaGxYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdJR052Ykd4bFkzUnBiMjRzSUhSb1pTQndZV2x5SUcxaGRHTm9hVzVuSUdocFoyaGxjM1JMWlhrZ2FYTWdjMnRwY0hCbFpDd2dibTkwSUdsMFpYSmhkR1ZrTGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1Wlc1MGNtbGxjMUpsZG1WeWMyVmtJRDBnWm5WdVkzUnBiMjRnS0docFoyaGxjM1JMWlhrc0lISmxkWE5sWkVGeWNtRjVMQ0J6YTJsd1NHbG5hR1Z6ZENrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNob2FXZG9aWE4wUzJWNUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYUdsbmFHVnpkRXRsZVNBOUlIUm9hWE11YldGNFMyVjVLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSE5yYVhCSWFXZG9aWE4wSUQwZ2RXNWtaV1pwYm1Wa08xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hR2xuYUdWemRFdGxlU0E5UFQwZ2RXNWtaV1pwYm1Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbDBaWEpoZEc5eUtDazdJQzh2SUdOdmJHeGxZM1JwYjI0Z2FYTWdaVzF3ZEhsY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlGOWhJRDBnZEdocGN5NW1hVzVrVUdGMGFDaG9hV2RvWlhOMFMyVjVLU0I4ZkNCMGFHbHpMbVpwYm1SUVlYUm9LSFJvYVhNdWJXRjRTMlY1S0NrcExDQnViMlJsY1hWbGRXVWdQU0JmWVM1dWIyUmxjWFZsZFdVc0lHNXZaR1ZwYm1SbGVDQTlJRjloTG01dlpHVnBibVJsZUN3Z2JHVmhaaUE5SUY5aExteGxZV1k3WEhKY2JpQWdJQ0FnSUNBZ1kyaGxZMnNvSVc1dlpHVnhkV1YxWlZzd1hTQjhmQ0JzWldGbUlEMDlQU0J1YjJSbGNYVmxkV1ZiTUYxYmJtOWtaV2x1WkdWNFd6QmRYU3dnWENKM1lYUWhYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJwSUQwZ2JHVmhaaTVwYm1SbGVFOW1LR2hwWjJobGMzUkxaWGtzSURBc0lIUm9hWE11WDJOdmJYQmhjbVVwTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2doYzJ0cGNFaHBaMmhsYzNRZ0ppWWdhU0E4SUd4bFlXWXVhMlY1Y3k1c1pXNW5kR2dnSmlZZ2RHaHBjeTVmWTI5dGNHRnlaU2hzWldGbUxtdGxlWE5iYVYwc0lHaHBaMmhsYzNSTFpYa3BJRHc5SURBcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdrckt6dGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2MzUmhkR1VnUFNCeVpYVnpaV1JCY25KaGVTQWhQVDBnZFc1a1pXWnBibVZrSUQ4Z01TQTZJREE3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsMFpYSmhkRzl5S0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FuVnRjRG9nWm05eUlDZzdPeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoemRHRjBaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ01EcGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0MwdGFTQStQU0F3S1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2daRzl1WlRvZ1ptRnNjMlVzSUhaaGJIVmxPaUJiYkdWaFppNXJaWGx6VzJsZExDQnNaV0ZtTG5aaGJIVmxjMXRwWFYwZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoZEdVZ1BTQXlPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURFNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2d0TFdrZ1BqMGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYxYzJWa1FYSnlZWGxiTUYwZ1BTQnNaV0ZtTG10bGVYTmJhVjBzSUhKbGRYTmxaRUZ5Y21GNVd6RmRJRDBnYkdWaFppNTJZV3gxWlhOYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCa2IyNWxPaUJtWVd4elpTd2dkbUZzZFdVNklISmxkWE5sWkVGeWNtRjVJSDA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1VnUFNBeU8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdNanBjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FXUjJZVzVqWlNCMGJ5QjBhR1VnYm1WNGRDQnNaV0ZtSUc1dlpHVmNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoMllYSWdiR1YyWld3Z1BTQXRNVHM3S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0t5dHNaWFpsYkNBK1BTQnViMlJsY1hWbGRXVXViR1Z1WjNSb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoZEdVZ1BTQXpPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5ScGJuVmxJR3AxYlhBN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvTFMxdWIyUmxhVzVrWlhoYmJHVjJaV3hkSUQ0OUlEQXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabTl5SUNnN0lHeGxkbVZzSUQ0Z01Ec2diR1YyWld3dExTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JtOWtaWEYxWlhWbFcyeGxkbVZzSUMwZ01WMGdQU0J1YjJSbGNYVmxkV1ZiYkdWMlpXeGRXMjV2WkdWcGJtUmxlRnRzWlhabGJGMWRMbU5vYVd4a2NtVnVPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JtOWtaV2x1WkdWNFcyeGxkbVZzSUMwZ01WMGdQU0J1YjJSbGNYVmxkV1ZiYkdWMlpXd2dMU0F4WFM1c1pXNW5kR2dnTFNBeE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsWVdZZ1BTQnViMlJsY1hWbGRXVmJNRjFiYm05a1pXbHVaR1Y0V3pCZFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0E5SUd4bFlXWXVhMlY1Y3k1c1pXNW5kR2c3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMFlYUmxJRDBnY21WMWMyVmtRWEp5WVhrZ0lUMDlJSFZ1WkdWbWFXNWxaQ0EvSURFZ09pQXdPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURNNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lHUnZibVU2SUhSeWRXVXNJSFpoYkhWbE9pQjFibVJsWm1sdVpXUWdmVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIMHBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxSUZWelpXUWdZbmtnWlc1MGNtbGxjeWdwSUdGdVpDQmxiblJ5YVdWelVtVjJaWEp6WldRb0tTQjBieUJ3Y21Wd1lYSmxJSFJ2SUhOMFlYSjBJR2wwWlhKaGRHbHVaeTVjY2x4dUlDQWdJQ0FxSUVsMElHUmxkbVZzYjNCeklHRWdYQ0p1YjJSbElIRjFaWFZsWENJZ1ptOXlJR1ZoWTJnZ2JtOXVMV3hsWVdZZ2JHVjJaV3dnYjJZZ2RHaGxJSFJ5WldVdVhISmNiaUFnSUNBZ0tpQk1aWFpsYkhNZ1lYSmxJRzUxYldKbGNtVmtJRndpWW05MGRHOXRMWFZ3WENJZ2MyOGdkR2hoZENCc1pYWmxiQ0F3SUdseklHRWdiR2x6ZENCdlppQnNaV0ZtWEhKY2JpQWdJQ0FnS2lCdWIyUmxjeUJtY205dElHRWdiRzkzTFd4bGRtVnNJRzV2Ymkxc1pXRm1JRzV2WkdVdUlGUm9aU0J4ZFdWMVpTQmhkQ0JoSUdkcGRtVnVJR3hsZG1Wc0lFeGNjbHh1SUNBZ0lDQXFJR052Ym5OcGMzUnpJRzltSUc1dlpHVnhkV1YxWlZ0TVhTQjNhR2xqYUNCcGN5QjBhR1VnWTJocGJHUnlaVzRnYjJZZ1lTQkNUbTlrWlVsdWRHVnlibUZzTEZ4eVhHNGdJQ0FnSUNvZ1lXNWtJRzV2WkdWcGJtUmxlRnRNWFN3Z2RHaGxJR04xY25KbGJuUWdhVzVrWlhnZ2QybDBhR2x1SUhSb1lYUWdZMmhwYkdRZ2JHbHpkQ3dnYzNWamFGeHlYRzRnSUNBZ0lDb2djM1ZqYUNCMGFHRjBJRzV2WkdWeGRXVjFaVnRNTFRGZElEMDlQU0J1YjJSbGNYVmxkV1ZiVEYxYmJtOWtaV2x1WkdWNFcweGRYUzVqYUdsc1pISmxiaTVjY2x4dUlDQWdJQ0FxSUNoSWIzZGxkbVZ5SUdsdWMybGtaU0IwYUdseklHWjFibU4wYVc5dUlIUm9aU0J2Y21SbGNpQnBjeUJ5WlhabGNuTmxaQzRwWEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVtYVc1a1VHRjBhQ0E5SUdaMWJtTjBhVzl1SUNoclpYa3BJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdibVY0ZEc1dlpHVWdQU0IwYUdsekxsOXliMjkwTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1YjJSbGNYVmxkV1VzSUc1dlpHVnBibVJsZUR0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYm1WNGRHNXZaR1V1YVhOTVpXRm1LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJRzV2WkdWeGRXVjFaU0E5SUVWdGNIUjVRWEp5WVhrc0lHNXZaR1ZwYm1SbGVDQTlJRVZ0Y0hSNVFYSnlZWGs3SUM4dklHRjJiMmxrSUdGc2JHOWpZWFJwYjI1elhISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnViMlJsY1hWbGRXVWdQU0JiWFN3Z2JtOWtaV2x1WkdWNElEMGdXMTA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR1FnUFNBd095QWhibVY0ZEc1dlpHVXVhWE5NWldGbU95QmtLeXNwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1Z4ZFdWMVpWdGtYU0E5SUc1bGVIUnViMlJsTG1Ob2FXeGtjbVZ1TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JtOWtaV2x1WkdWNFcyUmRJRDBnYTJWNUlEMDlQU0IxYm1SbFptbHVaV1FnUHlBd0lEb2dibVY0ZEc1dlpHVXVhVzVrWlhoUFppaHJaWGtzSURBc0lIUm9hWE11WDJOdmJYQmhjbVVwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzV2WkdWcGJtUmxlRnRrWFNBK1BTQnViMlJsY1hWbGRXVmJaRjB1YkdWdVozUm9LVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmpzZ0x5OGdabWx5YzNRZ2EyVjVJRDRnYldGNFMyVjVLQ2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1bGVIUnViMlJsSUQwZ2JtOWtaWEYxWlhWbFcyUmRXMjV2WkdWcGJtUmxlRnRrWFYwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pYRjFaWFZsTG5KbGRtVnljMlVvS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pXbHVaR1Y0TG5KbGRtVnljMlVvS1R0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnYm05a1pYRjFaWFZsT2lCdWIyUmxjWFZsZFdVc0lHNXZaR1ZwYm1SbGVEb2dibTlrWldsdVpHVjRMQ0JzWldGbU9pQnVaWGgwYm05a1pTQjlPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2x4eVhHNGdJQ0FnSUNvZ1EyOXRjSFYwWlhNZ2RHaGxJR1JwWm1abGNtVnVZMlZ6SUdKbGRIZGxaVzRnWUhSb2FYTmdJR0Z1WkNCZ2IzUm9aWEpnTGx4eVhHNGdJQ0FnSUNvZ1JtOXlJR1ZtWm1samFXVnVZM2tzSUhSb1pTQmthV1ptSUdseklISmxkSFZ5Ym1Wa0lIWnBZU0JwYm5adlkyRjBhVzl1Y3lCdlppQnpkWEJ3YkdsbFpDQm9ZVzVrYkdWeWN5NWNjbHh1SUNBZ0lDQXFJRlJvWlNCamIyMXdkWFJoZEdsdmJpQnBjeUJ2Y0hScGJXbDZaV1FnWm05eUlIUm9aU0JqWVhObElHbHVJSGRvYVdOb0lIUm9aU0IwZDI4Z2RISmxaWE1nYUdGMlpTQnNZWEpuWlNCaGJXOTFiblJ6WEhKY2JpQWdJQ0FnS2lCdlppQnphR0Z5WldRZ1pHRjBZU0FvYjJKMFlXbHVaV1FnWW5rZ1kyRnNiR2x1WnlCMGFHVWdZR05zYjI1bFlDQnZjaUJnZDJsMGFHQWdRVkJKY3lrZ1lXNWtJSGRwYkd3Z1lYWnZhV1JjY2x4dUlDQWdJQ0FxSUdGdWVTQnBkR1Z5WVhScGIyNGdiMllnYzJoaGNtVmtJSE4wWVhSbExseHlYRzRnSUNBZ0lDb2dWR2hsSUdoaGJtUnNaWEp6SUdOaGJpQmpZWFZ6WlNCamIyMXdkWFJoZEdsdmJpQjBieUJsWVhKc2VTQmxlR2wwSUdKNUlISmxkSFZ5Ym1sdVp5QjdZbkpsWVdzNklGSjlMbHh5WEc0Z0lDQWdJQ29nVG1WcGRHaGxjaUJ2WmlCMGFHVWdZMjlzYkdWamRHbHZibk1nYzJodmRXeGtJR0psSUdOb1lXNW5aV1FnWkhWeWFXNW5JSFJvWlNCamIyMXdZWEpwYzI5dUlIQnliMk5sYzNNZ0tHbHVJSGx2ZFhJZ1kyRnNiR0poWTJ0ektTd2dZWE1nZEdocGN5QnRaWFJvYjJRZ1lYTnpkVzFsY3lCMGFHVjVJSGRwYkd3Z2JtOTBJR0psSUcxMWRHRjBaV1F1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYjNSb1pYSWdWR2hsSUhSeVpXVWdkRzhnWTI5dGNIVjBaU0JoSUdScFptWWdZV2RoYVc1emRDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnZibXg1VkdocGN5QkRZV3hzWW1GamF5QnBiblp2YTJWa0lHWnZjaUJoYkd3Z2EyVjVjeUJ2Ym14NUlIQnlaWE5sYm5RZ2FXNGdZSFJvYVhOZ0xseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHOXViSGxQZEdobGNpQkRZV3hzWW1GamF5QnBiblp2YTJWa0lHWnZjaUJoYkd3Z2EyVjVjeUJ2Ym14NUlIQnlaWE5sYm5RZ2FXNGdZRzkwYUdWeVlDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQmthV1ptWlhKbGJuUWdRMkZzYkdKaFkyc2dhVzUyYjJ0bFpDQm1iM0lnWVd4c0lHdGxlWE1nZDJsMGFDQmthV1ptWlhKcGJtY2dkbUZzZFdWekxseHlYRzRnSUNBZ0lDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdVpHbG1aa0ZuWVdsdWMzUWdQU0JtZFc1amRHbHZiaUFvYjNSb1pYSXNJRzl1YkhsVWFHbHpMQ0J2Ym14NVQzUm9aWElzSUdScFptWmxjbVZ1ZENrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNodmRHaGxjaTVmWTI5dGNHRnlaU0FoUFQwZ2RHaHBjeTVmWTI5dGNHRnlaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pVY21WbElHTnZiWEJoY21GMGIzSnpJR0Z5WlNCdWIzUWdkR2hsSUhOaGJXVXVYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVwYzBWdGNIUjVJSHg4SUc5MGFHVnlMbWx6Ulcxd2RIa3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhWE5GYlhCMGVTQW1KaUJ2ZEdobGNpNXBjMFZ0Y0hSNUtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdTV1lnYjI1bElIUnlaV1VnYVhNZ1pXMXdkSGtzSUdWMlpYSjVkR2hwYm1jZ2QybHNiQ0JpWlNCaGJpQnZibXg1VkdocGN5OXZibXg1VDNSb1pYSXVYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHpSVzF3ZEhrcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyNXNlVTkwYUdWeUlEMDlQU0IxYm1SbFptbHVaV1FnUHlCMWJtUmxabWx1WldRZ09pQkNWSEpsWlM1emRHVndWRzlGYm1Rb1FsUnlaV1V1YldGclpVUnBabVpEZFhKemIzSW9iM1JvWlhJcExDQnZibXg1VDNSb1pYSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyNXNlVlJvYVhNZ1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSUhWdVpHVm1hVzVsWkNBNklFSlVjbVZsTG5OMFpYQlViMFZ1WkNoQ1ZISmxaUzV0WVd0bFJHbG1aa04xY25OdmNpaDBhR2x6S1N3Z2IyNXNlVlJvYVhNcE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBdkx5QkRkWEp6YjNJdFltRnpaV1FnWkdsbVppQmhiR2R2Y21sMGFHMGdhWE1nWVhNZ1ptOXNiRzkzY3pwY2NseHVJQ0FnSUNBZ0lDQXZMeUF0SUZWdWRHbHNJRzVsYVhSb1pYSWdZM1Z5YzI5eUlHaGhjeUJ1WVhacFoyRjBaV1FnZEc4Z2RHaGxJR1Z1WkNCdlppQjBhR1VnZEhKbFpTd2daRzhnZEdobElHWnZiR3h2ZDJsdVp6cGNjbHh1SUNBZ0lDQWdJQ0F2THlBZ0xTQkpaaUIwYUdVZ1lIUm9hWE5nSUdOMWNuTnZjaUJwY3lCY0ltSmxhR2x1WkZ3aUlIUm9aU0JnYjNSb1pYSmdJR04xY25OdmNpQW9jM1J5YVdOMGJIa2dQQ3dnZG1saElHTnZiWEJoY21VcExDQmhaSFpoYm1ObElHbDBMbHh5WEc0Z0lDQWdJQ0FnSUM4dklDQXRJRTkwYUdWeWQybHpaU3dnWVdSMllXNWpaU0IwYUdVZ1lHOTBhR1Z5WUNCamRYSnpiM0l1WEhKY2JpQWdJQ0FnSUNBZ0x5OGdJQzBnUVc1NUlIUnBiV1VnWVNCamRYSnpiM0lnYVhNZ2MzUmxjSEJsWkN3Z2NHVnlabTl5YlNCMGFHVWdabTlzYkc5M2FXNW5PbHh5WEc0Z0lDQWdJQ0FnSUM4dklDQWdJQzBnU1dZZ1pXbDBhR1Z5SUdOMWNuTnZjaUJ3YjJsdWRITWdkRzhnWVNCclpYa3ZkbUZzZFdVZ2NHRnBjanBjY2x4dUlDQWdJQ0FnSUNBdkx5QWdJQ0FnSUMwZ1NXWWdkR2hwYzBOMWNuTnZjaUE5UFQwZ2IzUm9aWEpEZFhKemIzSWdZVzVrSUhSb1pTQjJZV3gxWlhNZ1pHbG1abVZ5TENCcGRDQnBjeUJoSUVScFptWmxjbVZ1ZEM1Y2NseHVJQ0FnSUNBZ0lDQXZMeUFnSUNBZ0lDMGdTV1lnZEdocGMwTjFjbk52Y2lBK0lHOTBhR1Z5UTNWeWMyOXlJR0Z1WkNCdmRHaGxja04xY25OdmNpQnBjeUJoZENCaElHdGxlUzkyWVd4MVpTQndZV2x5TENCcGRDQnBjeUJoYmlCUGJteDVUM1JvWlhJdVhISmNiaUFnSUNBZ0lDQWdMeThnSUNBZ0lDQXRJRWxtSUhSb2FYTkRkWEp6YjNJZ1BDQnZkR2hsY2tOMWNuTnZjaUJoYm1RZ2RHaHBjME4xY25OdmNpQnBjeUJoZENCaElHdGxlUzkyWVd4MVpTQndZV2x5TENCcGRDQnBjeUJoYmlCUGJteDVWR2hwY3lCaGN5QnNiMjVuSUdGeklIUm9aU0J0YjNOMElISmxZMlZ1ZENCY2NseHVJQ0FnSUNBZ0lDQXZMeUFnSUNBZ0lDQWdZM1Z5YzI5eUlITjBaWEFnZDJGeklDcHViM1FxSUc5MGFHVnlRM1Z5YzI5eUlHRmtkbUZ1WTJsdVp5Qm1jbTl0SUdFZ2RHbGxMaUJVYUdVZ1pYaDBjbUVnWTI5dVpHbDBhVzl1SUdGMmIybGtjeUJsY25KdmJtVnZkWE1nVDI1c2VVOTBhR1Z5SUdOaGJHeHpJRnh5WEc0Z0lDQWdJQ0FnSUM4dklDQWdJQ0FnSUNCMGFHRjBJSGR2ZFd4a0lHOWpZM1Z5SUdSMVpTQjBieUJ2ZEdobGNrTjFjbk52Y2lCaVpXbHVaeUIwYUdVZ1hDSnNaV0ZrWlhKY0lpNWNjbHh1SUNBZ0lDQWdJQ0F2THlBZ0lDQXRJRTkwYUdWeWQybHpaU3dnYVdZZ1ltOTBhQ0JqZFhKemIzSnpJSEJ2YVc1MElIUnZJRzV2WkdWekxDQmpiMjF3WVhKbElIUm9aVzB1SUVsbUlIUm9aWGtnWVhKbElHVnhkV0ZzSUdKNUlISmxabVZ5Wlc1alpTQW9jMmhoY21Wa0tTd2djMnRwY0Z4eVhHNGdJQ0FnSUNBZ0lDOHZJQ0FnSUNBZ1ltOTBhQ0JqZFhKemIzSnpJSFJ2SUhSb1pTQnVaWGgwSUc1dlpHVWdhVzRnZEdobElIZGhiR3N1WEhKY2JpQWdJQ0FnSUNBZ0x5OGdMU0JQYm1ObElHOXVaU0JqZFhKemIzSWdhR0Z6SUdacGJtbHphR1ZrSUhOMFpYQndhVzVuTENCaGJua2djbVZ0WVdsdWFXNW5JSE4wWlhCeklDaHBaaUJoYm5rcElHRnlaU0IwWVd0bGJpQmhibVFnYTJWNUwzWmhiSFZsSUhCaGFYSnpJR0Z5WlNCc2IyZG5aV1JjY2x4dUlDQWdJQ0FnSUNBdkx5QWdJR0Z6SUU5dWJIbFBkR2hsY2lBb2FXWWdiM1JvWlhKRGRYSnpiM0lnYVhNZ2MzUmxjSEJwYm1jcElHOXlJRTl1YkhsVWFHbHpJQ2hwWmlCMGFHbHpRM1Z5YzI5eUlHbHpJSE4wWlhCd2FXNW5LUzVjY2x4dUlDQWdJQ0FnSUNBdkx5QlVhR2x6SUdGc1oyOXlhWFJvYlNCbmFYWmxjeUIwYUdVZ1kzSnBkR2xqWVd3Z1ozVmhjbUZ1ZEdWbElIUm9ZWFFnWVd4c0lHeHZZMkYwYVc5dWN5QW9ZbTkwYUNCdWIyUmxjeUJoYm1RZ2EyVjVMM1poYkhWbElIQmhhWEp6S1NCcGJpQmliM1JvSUhSeVpXVnpJSFJvWVhRZ1hISmNiaUFnSUNBZ0lDQWdMeThnWVhKbElHbGtaVzUwYVdOaGJDQmllU0IyWVd4MVpTQW9ZVzVrSUhCdmMzTnBZbXg1SUdKNUlISmxabVZ5Wlc1alpTa2dkMmxzYkNCaVpTQjJhWE5wZEdWa0lDcGhkQ0IwYUdVZ2MyRnRaU0IwYVcxbEtpQmllU0IwYUdVZ1kzVnljMjl5Y3k1Y2NseHVJQ0FnSUNBZ0lDQXZMeUJVYUdseklISmxiVzkyWlhNZ2RHaGxJSEJ2YzNOcFltbHNhWFI1SUc5bUlHVnRhWFIwYVc1bklHbHVZMjl5Y21WamRDQmthV1ptY3l3Z1lYTWdkMlZzYkNCaGN5QmhiR3h2ZDJsdVp5Qm1iM0lnYzJ0cGNIQnBibWNnYzJoaGNtVmtJRzV2WkdWekxseHlYRzRnSUNBZ0lDQWdJSFpoY2lCZlkyOXRjR0Z5WlNBOUlIUm9hWE11WDJOdmJYQmhjbVU3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSFJvYVhORGRYSnpiM0lnUFNCQ1ZISmxaUzV0WVd0bFJHbG1aa04xY25OdmNpaDBhR2x6S1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYjNSb1pYSkRkWEp6YjNJZ1BTQkNWSEpsWlM1dFlXdGxSR2xtWmtOMWNuTnZjaWh2ZEdobGNpazdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1NYUWdaRzlsYzI0bmRDQnRZWFIwWlhJZ2FHOTNJSFJvYVhOVGRHVndjR1ZrVEdGemRDQnBjeUJwYm1sMGFXRnNhWHBsWkM1Y2NseHVJQ0FnSUNBZ0lDQXZMeUJUZEdWd0lHOXlaR1Z5SUdseklHOXViSGtnZFhObFpDQjNhR1Z1SUdWcGRHaGxjaUJqZFhKemIzSWdhWE1nWVhRZ1lTQnNaV0ZtTENCaGJtUWdZM1Z5YzI5eWN5QmhiSGRoZVhNZ2MzUmhjblFnWVhRZ1lTQnViMlJsTGx4eVhHNGdJQ0FnSUNBZ0lIWmhjaUIwYUdselUzVmpZMlZ6Y3lBOUlIUnlkV1VzSUc5MGFHVnlVM1ZqWTJWemN5QTlJSFJ5ZFdVc0lIQnlaWFpEZFhKemIzSlBjbVJsY2lBOUlFSlVjbVZsTG1OdmJYQmhjbVVvZEdocGMwTjFjbk52Y2l3Z2IzUm9aWEpEZFhKemIzSXNJRjlqYjIxd1lYSmxLVHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvZEdocGMxTjFZMk5sYzNNZ0ppWWdiM1JvWlhKVGRXTmpaWE56S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQmpkWEp6YjNKUGNtUmxjaUE5SUVKVWNtVmxMbU52YlhCaGNtVW9kR2hwYzBOMWNuTnZjaXdnYjNSb1pYSkRkWEp6YjNJc0lGOWpiMjF3WVhKbEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJSFJvYVhOTVpXRm1JRDBnZEdocGMwTjFjbk52Y2k1c1pXRm1MQ0IwYUdselNXNTBaWEp1WVd4VGNHbHVaU0E5SUhSb2FYTkRkWEp6YjNJdWFXNTBaWEp1WVd4VGNHbHVaU3dnZEdocGMweGxkbVZzU1c1a2FXTmxjeUE5SUhSb2FYTkRkWEp6YjNJdWJHVjJaV3hKYm1ScFkyVnpPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnYjNSb1pYSk1aV0ZtSUQwZ2IzUm9aWEpEZFhKemIzSXViR1ZoWml3Z2IzUm9aWEpKYm5SbGNtNWhiRk53YVc1bElEMGdiM1JvWlhKRGRYSnpiM0l1YVc1MFpYSnVZV3hUY0dsdVpTd2diM1JvWlhKTVpYWmxiRWx1WkdsalpYTWdQU0J2ZEdobGNrTjFjbk52Y2k1c1pYWmxiRWx1WkdsalpYTTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdselRHVmhaaUI4ZkNCdmRHaGxja3hsWVdZcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUVsbUlIUm9aU0JqZFhKemIzSnpJSGRsY21VZ1lYUWdkR2hsSUhOaGJXVWdiRzlqWVhScGIyNGdiR0Z6ZENCemRHVndMQ0IwYUdWdUlIUm9aWEpsSUdseklHNXZJSGR2Y21zZ2RHOGdZbVVnWkc5dVpTNWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNod2NtVjJRM1Z5YzI5eVQzSmtaWElnSVQwOUlEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNWeWMyOXlUM0prWlhJZ1BUMDlJREFwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhOTVpXRm1JQ1ltSUc5MGFHVnlUR1ZoWmlBbUppQmthV1ptWlhKbGJuUXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRVZ4ZFdGc0lHdGxlWE1zSUdOb1pXTnJJR1p2Y2lCdGIyUnBabWxqWVhScGIyNXpYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdkbUZzVkdocGN5QTlJSFJvYVhOTVpXRm1MblpoYkhWbGMxdDBhR2x6VEdWMlpXeEpibVJwWTJWelczUm9hWE5NWlhabGJFbHVaR2xqWlhNdWJHVnVaM1JvSUMwZ01WMWRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJSFpoYkU5MGFHVnlJRDBnYjNSb1pYSk1aV0ZtTG5aaGJIVmxjMXR2ZEdobGNreGxkbVZzU1c1a2FXTmxjMXR2ZEdobGNreGxkbVZzU1c1a2FXTmxjeTVzWlc1bmRHZ2dMU0F4WFYwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lVOWlhbVZqZEM1cGN5aDJZV3hVYUdsekxDQjJZV3hQZEdobGNpa3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1pHbG1abVZ5Wlc1MEtIUm9hWE5EZFhKemIzSXVZM1Z5Y21WdWRFdGxlU3dnZG1Gc1ZHaHBjeXdnZG1Gc1QzUm9aWElwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ0ppWWdjbVZ6ZFd4MExtSnlaV0ZyS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTG1KeVpXRnJPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dOMWNuTnZjazl5WkdWeUlENGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpaaUIwYUdseklHbHpJSFJvWlNCallYTmxMQ0IzWlNCcmJtOTNJSFJvWVhRZ1pXbDBhR1Z5T2x4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QXhMaUJ2ZEdobGNrTjFjbk52Y2lCemRHVndjR1ZrSUd4aGMzUWdabkp2YlNCaElITjBZWEowYVc1bklIQnZjMmwwYVc5dUlIUm9ZWFFnZEhKaGFXeGxaQ0IwYUdselEzVnljMjl5TENCaGJtUWdhWE1nYzNScGJHd2dZbVZvYVc1a0xDQnZjbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlBeUxpQjBhR2x6UTNWeWMyOXlJSE4wWlhCd1pXUWdiR0Z6ZENCaGJtUWdiR1ZoY0daeWIyZG5aV1FnYjNSb1pYSkRkWEp6YjNKY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdSV2wwYUdWeUlHOW1JSFJvWlhObElHTmhjMlZ6SUdseklHRnVJRndpYjI1c2VTQnZkR2hsY2x3aVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h2ZEdobGNreGxZV1lnSmlZZ2IyNXNlVTkwYUdWeUtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdiM1JvWlhKV1lXd2dQU0J2ZEdobGNreGxZV1l1ZG1Gc2RXVnpXMjkwYUdWeVRHVjJaV3hKYm1ScFkyVnpXMjkwYUdWeVRHVjJaV3hKYm1ScFkyVnpMbXhsYm1kMGFDQXRJREZkWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCdmJteDVUM1JvWlhJb2IzUm9aWEpEZFhKemIzSXVZM1Z5Y21WdWRFdGxlU3dnYjNSb1pYSldZV3dwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKbGMzVnNkQ0FtSmlCeVpYTjFiSFF1WW5KbFlXc3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZEM1aWNtVmhhenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHZibXg1VkdocGN5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHaHBjMHhsWVdZZ0ppWWdjSEpsZGtOMWNuTnZjazl5WkdWeUlDRTlQU0F3S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2RtRnNWR2hwY3lBOUlIUm9hWE5NWldGbUxuWmhiSFZsYzF0MGFHbHpUR1YyWld4SmJtUnBZMlZ6VzNSb2FYTk1aWFpsYkVsdVpHbGpaWE11YkdWdVozUm9JQzBnTVYxZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHOXViSGxVYUdsektIUm9hWE5EZFhKemIzSXVZM1Z5Y21WdWRFdGxlU3dnZG1Gc1ZHaHBjeWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBJQ1ltSUhKbGMzVnNkQzVpY21WaGF5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTG1KeVpXRnJPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLQ0YwYUdselRHVmhaaUFtSmlBaGIzUm9aWEpNWldGbUlDWW1JR04xY25OdmNrOXlaR1Z5SUQwOVBTQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdiR0Z6ZEZSb2FYTWdQU0IwYUdselNXNTBaWEp1WVd4VGNHbHVaUzVzWlc1bmRHZ2dMU0F4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR3hoYzNSUGRHaGxjaUE5SUc5MGFHVnlTVzUwWlhKdVlXeFRjR2x1WlM1c1pXNW5kR2dnTFNBeE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUc1dlpHVlVhR2x6SUQwZ2RHaHBjMGx1ZEdWeWJtRnNVM0JwYm1WYmJHRnpkRlJvYVhOZFczUm9hWE5NWlhabGJFbHVaR2xqWlhOYmJHRnpkRlJvYVhOZFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdWIyUmxUM1JvWlhJZ1BTQnZkR2hsY2tsdWRHVnlibUZzVTNCcGJtVmJiR0Z6ZEU5MGFHVnlYVnR2ZEdobGNreGxkbVZzU1c1a2FXTmxjMXRzWVhOMFQzUm9aWEpkWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YjJSbFQzUm9aWElnUFQwOUlHNXZaR1ZVYUdsektTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISmxka04xY25OdmNrOXlaR1Z5SUQwZ01EdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpVM1ZqWTJWemN5QTlJRUpVY21WbExuTjBaWEFvZEdocGMwTjFjbk52Y2l3Z2RISjFaU2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM1JvWlhKVGRXTmpaWE56SUQwZ1FsUnlaV1V1YzNSbGNDaHZkR2hsY2tOMWNuTnZjaXdnZEhKMVpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NISmxka04xY25OdmNrOXlaR1Z5SUQwZ1kzVnljMjl5VDNKa1pYSTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqZFhKemIzSlBjbVJsY2lBOElEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTlRkV05qWlhOeklEMGdRbFJ5WldVdWMzUmxjQ2gwYUdselEzVnljMjl5S1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkwYUdWeVUzVmpZMlZ6Y3lBOUlFSlVjbVZsTG5OMFpYQW9iM1JvWlhKRGRYSnpiM0lwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpVM1ZqWTJWemN5QW1KaUJ2Ym14NVZHaHBjeWxjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFSlVjbVZsTG1acGJtbHphRU4xY25OdmNsZGhiR3NvZEdocGMwTjFjbk52Y2l3Z2IzUm9aWEpEZFhKemIzSXNJRjlqYjIxd1lYSmxMQ0J2Ym14NVZHaHBjeWs3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLRzkwYUdWeVUzVmpZMlZ6Y3lBbUppQnZibXg1VDNSb1pYSXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCQ1ZISmxaUzVtYVc1cGMyaERkWEp6YjNKWFlXeHJLRzkwYUdWeVEzVnljMjl5TENCMGFHbHpRM1Z5YzI5eUxDQmZZMjl0Y0dGeVpTd2diMjVzZVU5MGFHVnlLVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUM4dklFaGxiSEJsY2lCdFpYUm9iMlJ6SUdadmNpQmthV1ptUVdkaGFXNXpkQ0F2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHlYRzRnSUNBZ1FsUnlaV1V1Wm1sdWFYTm9RM1Z5YzI5eVYyRnNheUE5SUdaMWJtTjBhVzl1SUNoamRYSnpiM0lzSUdOMWNuTnZja1pwYm1semFHVmtMQ0JqYjIxd1lYSmxTMlY1Y3l3Z1kyRnNiR0poWTJzcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ1kyOXRjR0Z5WldRZ1BTQkNWSEpsWlM1amIyMXdZWEpsS0dOMWNuTnZjaXdnWTNWeWMyOXlSbWx1YVhOb1pXUXNJR052YlhCaGNtVkxaWGx6S1R0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvWTI5dGNHRnlaV1FnUFQwOUlEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGQ1ZISmxaUzV6ZEdWd0tHTjFjbk52Y2lrcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamIyMXdZWEpsWkNBOElEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMmhsWTJzb1ptRnNjMlVzSUZ3aVkzVnljMjl5SUhkaGJHc2dkR1Z5YldsdVlYUmxaQ0JsWVhKc2VWd2lLVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFSlVjbVZsTG5OMFpYQlViMFZ1WkNoamRYSnpiM0lzSUdOaGJHeGlZV05yS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1ZISmxaUzV6ZEdWd1ZHOUZibVFnUFNCbWRXNWpkR2x2YmlBb1kzVnljMjl5TENCallXeHNZbUZqYXlrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCallXNVRkR1Z3SUQwZ2RISjFaVHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvWTJGdVUzUmxjQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2JHVmhaaUE5SUdOMWNuTnZjaTVzWldGbUxDQnNaWFpsYkVsdVpHbGpaWE1nUFNCamRYSnpiM0l1YkdWMlpXeEpibVJwWTJWekxDQmpkWEp5Wlc1MFMyVjVJRDBnWTNWeWMyOXlMbU4xY25KbGJuUkxaWGs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1pXRm1LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdkbUZzZFdVZ1BTQnNaV0ZtTG5aaGJIVmxjMXRzWlhabGJFbHVaR2xqWlhOYmJHVjJaV3hKYm1ScFkyVnpMbXhsYm1kMGFDQXRJREZkWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JqWVd4c1ltRmpheWhqZFhKeVpXNTBTMlY1TENCMllXeDFaU2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MElDWW1JSEpsYzNWc2RDNWljbVZoYXlsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MExtSnlaV0ZyTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYmxOMFpYQWdQU0JDVkhKbFpTNXpkR1Z3S0dOMWNuTnZjaWs3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdRbFJ5WldVdWJXRnJaVVJwWm1aRGRYSnpiM0lnUFNCbWRXNWpkR2x2YmlBb2RISmxaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJmY205dmRDQTlJSFJ5WldVdVgzSnZiM1FzSUdobGFXZG9kQ0E5SUhSeVpXVXVhR1ZwWjJoME8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJR2hsYVdkb2REb2dhR1ZwWjJoMExDQnBiblJsY201aGJGTndhVzVsT2lCYlcxOXliMjkwWFYwc0lHeGxkbVZzU1c1a2FXTmxjem9nV3pCZExDQnNaV0ZtT2lCMWJtUmxabWx1WldRc0lHTjFjbkpsYm5STFpYazZJRjl5YjI5MExtMWhlRXRsZVNncElIMDdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xWEhKY2JpQWdJQ0FnS2lCQlpIWmhibU5sY3lCMGFHVWdZM1Z5YzI5eUlIUnZJSFJvWlNCdVpYaDBJSE4wWlhBZ2FXNGdkR2hsSUhkaGJHc2diMllnYVhSeklIUnlaV1V1WEhKY2JpQWdJQ0FnS2lCRGRYSnpiM0p6SUdGeVpTQjNZV3hyWldRZ1ltRmphM2RoY21SeklHbHVJSE52Y25RZ2IzSmtaWElzSUdGeklIUm9hWE1nWVd4c2IzZHpJSFJvWlcwZ2RHOGdiR1YyWlhKaFoyVWdiV0Y0UzJWNUtDa2dhVzRnYjNKa1pYSWdkRzhnWW1VZ1kyOXRjR0Z5WldRZ2FXNGdUeWd4S1M1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCamRYSnpiM0lnVkdobElHTjFjbk52Y2lCMGJ5QnpkR1Z3WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYzNSbGNGUnZUbTlrWlNCSlppQjBjblZsTENCMGFHVWdZM1Z5YzI5eUlIZHBiR3dnWW1VZ1lXUjJZVzVqWldRZ2RHOGdkR2hsSUc1bGVIUWdibTlrWlNBb2MydHBjSEJwYm1jZ2RtRnNkV1Z6S1Z4eVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2RISjFaU0JwWmlCMGFHVWdjM1JsY0NCM1lYTWdZMjl0Y0d4bGRHVmtJR0Z1WkNCbVlXeHpaU0JwWmlCMGFHVWdjM1JsY0NCM2IzVnNaQ0JvWVhabElHTmhkWE5sWkNCMGFHVWdZM1Z5YzI5eUlIUnZJRzF2ZG1VZ1ltVjViMjVrSUhSb1pTQmxibVFnYjJZZ2RHaGxJSFJ5WldVdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5OMFpYQWdQU0JtZFc1amRHbHZiaUFvWTNWeWMyOXlMQ0J6ZEdWd1ZHOU9iMlJsS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdsdWRHVnlibUZzVTNCcGJtVWdQU0JqZFhKemIzSXVhVzUwWlhKdVlXeFRjR2x1WlN3Z2JHVjJaV3hKYm1ScFkyVnpJRDBnWTNWeWMyOXlMbXhsZG1Wc1NXNWthV05sY3l3Z2JHVmhaaUE5SUdOMWNuTnZjaTVzWldGbU8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNoemRHVndWRzlPYjJSbElEMDlQU0IwY25WbElIeDhJR3hsWVdZcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR3hsZG1Wc2MweGxibWQwYUNBOUlHeGxkbVZzU1c1a2FXTmxjeTVzWlc1bmRHZzdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRk4wWlhBZ2RHOGdkR2hsSUc1bGVIUWdibTlrWlNCdmJteDVJR2xtT2x4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlBdElGZGxJR0Z5WlNCbGVIQnNhV05wZEd4NUlHUnBjbVZqZEdWa0lIUnZJSFpwWVNCemRHVndWRzlPYjJSbExDQnZjbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUF0SUZSb1pYSmxJR0Z5WlNCdWJ5QnJaWGt2ZG1Gc2RXVWdjR0ZwY25NZ2JHVm1kQ0IwYnlCemRHVndJSFJ2SUdsdUlIUm9hWE1nYkdWaFpseHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM1JsY0ZSdlRtOWtaU0E5UFQwZ2RISjFaU0I4ZkNCc1pYWmxiRWx1WkdsalpYTmJiR1YyWld4elRHVnVaM1JvSUMwZ01WMGdQVDA5SURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCemNHbHVaVXhsYm1kMGFDQTlJR2x1ZEdWeWJtRnNVM0JwYm1VdWJHVnVaM1JvTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdVbTl2ZENCcGN5QnNaV0ZtWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM0JwYm1WTVpXNW5kR2dnUFQwOUlEQXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1YyRnNheUJpWVdOcklIVndJSFJvWlNCMGNtVmxJSFZ1ZEdsc0lIZGxJR1pwYm1RZ1lTQnVaWGNnYzNWaWRISmxaU0IwYnlCa1pYTmpaVzVrSUdsdWRHOWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdWIyUmxUR1YyWld4SmJtUmxlQ0E5SUhOd2FXNWxUR1Z1WjNSb0lDMGdNVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQnNaWFpsYkVsdVpHVjRWMkZzYTBKaFkyc2dQU0J1YjJSbFRHVjJaV3hKYm1SbGVEdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaHNaWFpsYkVsdVpHVjRWMkZzYTBKaFkyc2dQajBnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHNaWFpsYkVsdVpHbGpaWE5iYkdWMlpXeEpibVJsZUZkaGJHdENZV05yWFNBK0lEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHeGxkbVZzU1c1a1pYaFhZV3hyUW1GamF5QThJR3hsZG1Wc2MweGxibWQwYUNBdElERXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRkpsYlc5MlpTQnNaV0ZtSUhOMFlYUmxJR1p5YjIwZ1kzVnljMjl5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpkWEp6YjNJdWJHVmhaaUE5SUhWdVpHVm1hVzVsWkR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZG1Wc1NXNWthV05sY3k1d2IzQW9LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpaaUIzWlNCM1lXeHJaV1FnZFhCM1lYSmtjeUJ3WVhOMElHRnVlU0JwYm5SbGNtNWhiQ0J1YjJSbExDQnpiR2xqWlNCMGFHVnRJRzkxZEZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR1YyWld4SmJtUmxlRmRoYkd0Q1lXTnJJRHdnYm05a1pVeGxkbVZzU1c1a1pYZ3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnpiM0l1YVc1MFpYSnVZV3hUY0dsdVpTQTlJR2x1ZEdWeWJtRnNVM0JwYm1VdWMyeHBZMlVvTUN3Z2JHVjJaV3hKYm1SbGVGZGhiR3RDWVdOcklDc2dNU2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFMXZkbVVnZEc4Z2JtVjNJR2x1ZEdWeWJtRnNJRzV2WkdWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzVnljMjl5TG1OMWNuSmxiblJMWlhrZ1BTQnBiblJsY201aGJGTndhVzVsVzJ4bGRtVnNTVzVrWlhoWFlXeHJRbUZqYTExYkxTMXNaWFpsYkVsdVpHbGpaWE5iYkdWMlpXeEpibVJsZUZkaGJHdENZV05yWFYwdWJXRjRTMlY1S0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYWmxiRWx1WkdWNFYyRnNhMEpoWTJzdExUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFTjFjbk52Y2lCcGN5QnBiaUIwYUdVZ1ptRnlJR3hsWm5RZ2JHVmhaaUJ2WmlCMGFHVWdkSEpsWlN3Z2JtOGdiVzl5WlNCdWIyUmxjeUIwYnlCbGJuVnRaWEpoZEdWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRTF2ZG1VZ2RHOGdibVYzSUd4bFlXWWdkbUZzZFdWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUIyWVd4MVpVbHVaR1Y0SUQwZ0xTMXNaWFpsYkVsdVpHbGpaWE5iYkdWMlpXeHpUR1Z1WjNSb0lDMGdNVjA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnpiM0l1WTNWeWNtVnVkRXRsZVNBOUlHeGxZV1l1YTJWNWMxdDJZV3gxWlVsdVpHVjRYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdleUF2THlCRGRYSnpiM0lnWkc5bGN5QnViM1FnY0c5cGJuUWdkRzhnWVNCMllXeDFaU0JwYmlCaElHeGxZV1lzSUhOdklHMXZkbVVnWkc5M2JuZGhjbVJ6WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdVpYaDBUR1YyWld3Z1BTQnBiblJsY201aGJGTndhVzVsTG14bGJtZDBhRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOMWNuSmxiblJNWlhabGJDQTlJRzVsZUhSTVpYWmxiQ0F0SURFN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnViMlJsSUQwZ2FXNTBaWEp1WVd4VGNHbHVaVnRqZFhKeVpXNTBUR1YyWld4ZFcyeGxkbVZzU1c1a2FXTmxjMXRqZFhKeVpXNTBUR1YyWld4ZFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzV2WkdVdWFYTk1aV0ZtS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJGYm5SbGNtbHVaeUJwYm5SdklHRWdiR1ZoWmk0Z1UyVjBJSFJvWlNCamRYSnpiM0lnZEc4Z2NHOXBiblFnWVhRZ2RHaGxJR3hoYzNRZ2EyVjVMM1poYkhWbElIQmhhWEl1WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnpiM0l1YkdWaFppQTlJRzV2WkdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZWElnZG1Gc2RXVkpibVJsZUNBOUlHeGxkbVZzU1c1a2FXTmxjMXR1WlhoMFRHVjJaV3hkSUQwZ2JtOWtaUzUyWVd4MVpYTXViR1Z1WjNSb0lDMGdNVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOMWNuTnZjaTVqZFhKeVpXNTBTMlY1SUQwZ2JtOWtaUzVyWlhselczWmhiSFZsU1c1a1pYaGRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR05vYVd4a2NtVnVJRDBnYm05a1pTNWphR2xzWkhKbGJqdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1ZEdWeWJtRnNVM0JwYm1WYmJtVjRkRXhsZG1Wc1hTQTlJR05vYVd4a2NtVnVPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHTm9hV3hrU1c1a1pYZ2dQU0JqYUdsc1pISmxiaTVzWlc1bmRHZ2dMU0F4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjJaV3hKYm1ScFkyVnpXMjVsZUhSTVpYWmxiRjBnUFNCamFHbHNaRWx1WkdWNE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5YzI5eUxtTjFjbkpsYm5STFpYa2dQU0JqYUdsc1pISmxibHRqYUdsc1pFbHVaR1Y0WFM1dFlYaExaWGtvS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xWEhKY2JpQWdJQ0FnS2lCRGIyMXdZWEpsY3lCMGFHVWdkSGR2SUdOMWNuTnZjbk11SUZKbGRIVnlibk1nWVNCMllXeDFaU0JwYm1ScFkyRjBhVzVuSUhkb2FXTm9JR04xY25OdmNpQnBjeUJoYUdWaFpDQnBiaUJoSUhkaGJHc3VYSEpjYmlBZ0lDQWdLaUJPYjNSbElIUm9ZWFFnWTNWeWMyOXljeUJoY21VZ1lXUjJZVzVqWldRZ2FXNGdjbVYyWlhKelpTQnpiM0owYVc1bklHOXlaR1Z5TGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzVqYjIxd1lYSmxJRDBnWm5WdVkzUnBiMjRnS0dOMWNuTnZja0VzSUdOMWNuTnZja0lzSUdOdmJYQmhjbVZMWlhsektTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHaGxhV2RvZEVFZ1BTQmpkWEp6YjNKQkxtaGxhV2RvZEN3Z1kzVnljbVZ1ZEV0bGVVRWdQU0JqZFhKemIzSkJMbU4xY25KbGJuUkxaWGtzSUd4bGRtVnNTVzVrYVdObGMwRWdQU0JqZFhKemIzSkJMbXhsZG1Wc1NXNWthV05sY3p0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYUdWcFoyaDBRaUE5SUdOMWNuTnZja0l1YUdWcFoyaDBMQ0JqZFhKeVpXNTBTMlY1UWlBOUlHTjFjbk52Y2tJdVkzVnljbVZ1ZEV0bGVTd2diR1YyWld4SmJtUnBZMlZ6UWlBOUlHTjFjbk52Y2tJdWJHVjJaV3hKYm1ScFkyVnpPMXh5WEc0Z0lDQWdJQ0FnSUM4dklGSmxkbVZ5YzJVZ2RHaGxJR052YlhCaGNtbHpiMjRnYjNKa1pYSXNJR0Z6SUdOMWNuTnZjbk1nWVhKbElHRmtkbUZ1WTJWa0lHbHVJSEpsZG1WeWMyVWdjMjl5ZEdsdVp5QnZjbVJsY2x4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJyWlhsRGIyMXdZWEpwYzI5dUlEMGdZMjl0Y0dGeVpVdGxlWE1vWTNWeWNtVnVkRXRsZVVJc0lHTjFjbkpsYm5STFpYbEJLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hMlY1UTI5dGNHRnlhWE52YmlBaFBUMGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhMlY1UTI5dGNHRnlhWE52Ymp0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1RtOXliV0ZzYVhwbElHUmxjSFJvSUhaaGJIVmxjeUJ5Wld4aGRHbDJaU0IwYnlCMGFHVWdjMmh2Y25SbGMzUWdkSEpsWlM1Y2NseHVJQ0FnSUNBZ0lDQXZMeUJVYUdseklHVnVjM1Z5WlhNZ2RHaGhkQ0JqYjI1amRYSnlaVzUwSUdOMWNuTnZjaUIzWVd4cmN5QnZaaUIwY21WbGN5QnZaaUJrYVdabVpYSnBibWNnYUdWcFoyaDBjeUJqWVc0Z2NtVnNhV0ZpYkhrZ2JHRnVaQ0J2YmlCemFHRnlaV1FnYm05a1pYTWdZWFFnZEdobElITmhiV1VnZEdsdFpTNWNjbHh1SUNBZ0lDQWdJQ0F2THlCVWJ5QmhZMk52YlhCc2FYTm9JSFJvYVhNc0lHRWdZM1Z5YzI5eUlIUm9ZWFFnYVhNZ2IyNGdZVzRnYVc1MFpYSnVZV3dnYm05a1pTQmhkQ0JrWlhCMGFDQkVNU0IzYVhSb0lHMWhlRXRsZVNCWUlHbHpJR052Ym5OcFpHVnlaV1FnWENKaVpXaHBibVJjSWlCaElHTjFjbk52Y2lCdmJpQmhibHh5WEc0Z0lDQWdJQ0FnSUM4dklHbHVkR1Z5Ym1Gc0lHNXZaR1VnWVhRZ1pHVndkR2dnUkRJZ2QybDBhQ0J0WVhoTFpYa2dXU3dnZDJobGJpQkVNU0E4SUVReUxpQlVhSFZ6TENCaGJIZGhlWE1nZDJGc2EybHVaeUIwYUdVZ1kzVnljMjl5SUhSb1lYUWdhWE1nWENKaVpXaHBibVJjSWlCM2FXeHNJR0ZzYkc5M0lIUm9aU0JqZFhKemIzSmNjbHh1SUNBZ0lDQWdJQ0F2THlCaGRDQnphR0ZzYkc5M1pYSWdaR1Z3ZEdnZ0tHSjFkQ0JsY1hWaGJDQnRZWGhMWlhrcElIUnZJRndpWTJGMFkyZ2dkWEJjSWlCaGJtUWdiR0Z1WkNCdmJpQnphR0Z5WldRZ2JtOWtaWE11WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR2hsYVdkb2RFMXBiaUE5SUdobGFXZG9kRUVnUENCb1pXbG5hSFJDSUQ4Z2FHVnBaMmgwUVNBNklHaGxhV2RvZEVJN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdSbGNIUm9RVTV2Y20xaGJHbDZaV1FnUFNCc1pYWmxiRWx1WkdsalpYTkJMbXhsYm1kMGFDQXRJQ2hvWldsbmFIUkJJQzBnYUdWcFoyaDBUV2x1S1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWkdWd2RHaENUbTl5YldGc2FYcGxaQ0E5SUd4bGRtVnNTVzVrYVdObGMwSXViR1Z1WjNSb0lDMGdLR2hsYVdkb2RFSWdMU0JvWldsbmFIUk5hVzRwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCa1pYQjBhRUZPYjNKdFlXeHBlbVZrSUMwZ1pHVndkR2hDVG05eWJXRnNhWHBsWkR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdkx5QkZibVFnYjJZZ2FHVnNjR1Z5SUcxbGRHaHZaSE1nWm05eUlHUnBabVpCWjJGcGJuTjBJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNjbHh1SUNBZ0lDOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nWVNCdVpYY2dhWFJsY21GMGIzSWdabTl5SUdsMFpYSmhkR2x1WnlCMGFHVWdhMlY1Y3lCdlppQmxZV05vSUhCaGFYSWdhVzRnWVhOalpXNWthVzVuSUc5eVpHVnlMbHh5WEc0Z0lDQWdJQ29nSUVCd1lYSmhiU0JtYVhKemRFdGxlVG9nVFdsdWFXMTFiU0JyWlhrZ2RHOGdhVzVqYkhWa1pTQnBiaUIwYUdVZ2IzVjBjSFYwTGlBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG10bGVYTWdQU0JtZFc1amRHbHZiaUFvWm1seWMzUkxaWGtwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVhRZ1BTQjBhR2x6TG1WdWRISnBaWE1vWm1seWMzUkxaWGtzSUZKbGRYTmxaRUZ5Y21GNUtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWFJsY21GMGIzSW9ablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2JpQTlJR2wwTG01bGVIUW9LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c0dWRtRnNkV1VwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdUxuWmhiSFZsSUQwZ2JpNTJZV3gxWlZzd1hUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc0N1hISmNiaUFnSUNBZ0lDQWdmU2s3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGSmxkSFZ5Ym5NZ1lTQnVaWGNnYVhSbGNtRjBiM0lnWm05eUlHbDBaWEpoZEdsdVp5QjBhR1VnZG1Gc2RXVnpJRzltSUdWaFkyZ2djR0ZwY2lCcGJpQnZjbVJsY2lCaWVTQnJaWGt1WEhKY2JpQWdJQ0FnS2lBZ1FIQmhjbUZ0SUdacGNuTjBTMlY1T2lCTmFXNXBiWFZ0SUd0bGVTQjNhRzl6WlNCaGMzTnZZMmxoZEdWa0lIWmhiSFZsSUdseklHbHVZMngxWkdWa0lHbHVJSFJvWlNCdmRYUndkWFF1SUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1ZG1Gc2RXVnpJRDBnWm5WdVkzUnBiMjRnS0dacGNuTjBTMlY1S1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdsMElEMGdkR2hwY3k1bGJuUnlhV1Z6S0dacGNuTjBTMlY1TENCU1pYVnpaV1JCY25KaGVTazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2wwWlhKaGRHOXlLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHNGdQU0JwZEM1dVpYaDBLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodUxuWmhiSFZsS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JpNTJZV3gxWlNBOUlHNHVkbUZzZFdWYk1WMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdU8xeHlYRzRnSUNBZ0lDQWdJSDBwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaENWSEpsWlM1d2NtOTBiM1I1Y0dVc0lGd2liV0Y0VG05a1pWTnBlbVZjSWl3Z2UxeHlYRzRnSUNBZ0lDQWdJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhISmNiaUFnSUNBZ0lDQWdMeThnUVdSa2FYUnBiMjVoYkNCdFpYUm9iMlJ6SUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUNBZ0lDQXZLaW9nVW1WMGRYSnVjeUIwYUdVZ2JXRjRhVzExYlNCdWRXMWlaWElnYjJZZ1kyaHBiR1J5Wlc0dmRtRnNkV1Z6SUdKbFptOXlaU0J1YjJSbGN5QjNhV3hzSUhOd2JHbDBMaUFxTDF4eVhHNGdJQ0FnSUNBZ0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZiV0Y0VG05a1pWTnBlbVU3WEhKY2JpQWdJQ0FnSUNBZ2ZTeGNjbHh1SUNBZ0lDQWdJQ0JsYm5WdFpYSmhZbXhsT2lCbVlXeHpaU3hjY2x4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdWY2NseHVJQ0FnSUgwcE8xeHlYRzRnSUNBZ0x5b3FJRWRsZEhNZ2RHaGxJR3h2ZDJWemRDQnJaWGtnYVc0Z2RHaGxJSFJ5WldVdUlFTnZiWEJzWlhocGRIazZJRThvYkc5bklITnBlbVVwSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1YldsdVMyVjVJRDBnWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjeTVmY205dmRDNXRhVzVMWlhrb0tUc2dmVHRjY2x4dUlDQWdJQzhxS2lCSFpYUnpJSFJvWlNCb2FXZG9aWE4wSUd0bGVTQnBiaUIwYUdVZ2RISmxaUzRnUTI5dGNHeGxlR2wwZVRvZ1R5Z3hLU0FxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbTFoZUV0bGVTQTlJR1oxYm1OMGFXOXVJQ2dwSUhzZ2NtVjBkWEp1SUhSb2FYTXVYM0p2YjNRdWJXRjRTMlY1S0NrN0lIMDdYSEpjYmlBZ0lDQXZLaW9nVVhWcFkydHNlU0JqYkc5dVpYTWdkR2hsSUhSeVpXVWdZbmtnYldGeWEybHVaeUIwYUdVZ2NtOXZkQ0J1YjJSbElHRnpJSE5vWVhKbFpDNWNjbHh1SUNBZ0lDQXFJQ0JDYjNSb0lHTnZjR2xsY3lCeVpXMWhhVzRnWldScGRHRmliR1V1SUZkb1pXNGdlVzkxSUcxdlpHbG1lU0JsYVhSb1pYSWdZMjl3ZVN3Z1lXNTVYSEpjYmlBZ0lDQWdLaUFnYm05a1pYTWdkR2hoZENCaGNtVWdjMmhoY21Wa0lDaHZjaUJ3YjNSbGJuUnBZV3hzZVNCemFHRnlaV1FwSUdKbGRIZGxaVzRnZEdobElIUjNiMXh5WEc0Z0lDQWdJQ29nSUdOdmNHbGxjeUJoY21VZ1kyeHZibVZrSUhOdklIUm9ZWFFnZEdobElHTm9ZVzVuWlhNZ1pHOGdibTkwSUdGbVptVmpkQ0J2ZEdobGNpQmpiM0JwWlhNdVhISmNiaUFnSUNBZ0tpQWdWR2hwY3lCcGN5QnJibTkzYmlCaGN5QmpiM0I1TFc5dUxYZHlhWFJsSUdKbGFHRjJhVzl5TENCdmNpQmNJbXhoZW5rZ1kyOXdlV2x1WjF3aUxpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtTnNiMjVsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRdWFYTlRhR0Z5WldRZ1BTQjBjblZsTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J1WlhjZ1FsUnlaV1VvZFc1a1pXWnBibVZrTENCMGFHbHpMbDlqYjIxd1lYSmxMQ0IwYUdsekxsOXRZWGhPYjJSbFUybDZaU2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVnpkV3gwTGw5eWIyOTBJRDBnZEdocGN5NWZjbTl2ZER0Y2NseHVJQ0FnSUNBZ0lDQnlaWE4xYkhRdVgzTnBlbVVnUFNCMGFHbHpMbDl6YVhwbE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkJsY21admNtMXpJR0VnWjNKbFpXUjVJR05zYjI1bExDQnBiVzFsWkdsaGRHVnNlU0JrZFhCc2FXTmhkR2x1WnlCaGJua2dibTlrWlhNZ2RHaGhkQ0JoY21WY2NseHVJQ0FnSUNBcUlDQnViM1FnWTNWeWNtVnVkR3g1SUcxaGNtdGxaQ0JoY3lCemFHRnlaV1FzSUdsdUlHOXlaR1Z5SUhSdklHRjJiMmxrSUcxaGNtdHBibWNnWVc1NVhISmNiaUFnSUNBZ0tpQWdZV1JrYVhScGIyNWhiQ0J1YjJSbGN5QmhjeUJ6YUdGeVpXUXVYSEpjYmlBZ0lDQWdLaUFnUUhCaGNtRnRJR1p2Y21ObElFTnNiMjVsSUdGc2JDQnViMlJsY3l3Z1pYWmxiaUJ6YUdGeVpXUWdiMjVsY3k1Y2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1keVpXVmtlVU5zYjI1bElEMGdablZ1WTNScGIyNGdLR1p2Y21ObEtTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHNWxkeUJDVkhKbFpTaDFibVJsWm1sdVpXUXNJSFJvYVhNdVgyTnZiWEJoY21Vc0lIUm9hWE11WDIxaGVFNXZaR1ZUYVhwbEtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhOMWJIUXVYM0p2YjNRZ1BTQjBhR2x6TGw5eWIyOTBMbWR5WldWa2VVTnNiMjVsS0dadmNtTmxLVHRjY2x4dUlDQWdJQ0FnSUNCeVpYTjFiSFF1WDNOcGVtVWdQU0IwYUdsekxsOXphWHBsTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlFZGxkSE1nWVc0Z1lYSnlZWGtnWm1sc2JHVmtJSGRwZEdnZ2RHaGxJR052Ym5SbGJuUnpJRzltSUhSb1pTQjBjbVZsTENCemIzSjBaV1FnWW5rZ2EyVjVJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkRzlCY25KaGVTQTlJR1oxYm1OMGFXOXVJQ2h0WVhoTVpXNW5kR2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYldGNFRHVnVaM1JvSUQwOVBTQjJiMmxrSURBcElIc2diV0Y0VEdWdVozUm9JRDBnTUhnM1JrWkdSa1pHUmpzZ2ZWeHlYRzRnSUNBZ0lDQWdJSFpoY2lCdGFXNGdQU0IwYUdsekxtMXBia3RsZVNncExDQnRZWGdnUFNCMGFHbHpMbTFoZUV0bGVTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHRhVzRnSVQwOUlIVnVaR1ZtYVc1bFpDbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaMlYwVW1GdVoyVW9iV2x1TENCdFlYZ3NJSFJ5ZFdVc0lHMWhlRXhsYm1kMGFDazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRnRkTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtpQkhaWFJ6SUdGdUlHRnljbUY1SUc5bUlHRnNiQ0JyWlhsekxDQnpiM0owWldRZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1clpYbHpRWEp5WVhrZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RITWdQU0JiWFR0Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eWIyOTBMbVp2Y2xKaGJtZGxLSFJvYVhNdWJXbHVTMlY1S0Nrc0lIUm9hWE11YldGNFMyVjVLQ2tzSUhSeWRXVXNJR1poYkhObExDQjBhR2x6TENBd0xDQm1kVzVqZEdsdmJpQW9heXdnZGlrZ2V5QnlaWE4xYkhSekxuQjFjMmdvYXlrN0lIMHBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUnpPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCSFpYUnpJR0Z1SUdGeWNtRjVJRzltSUdGc2JDQjJZV3gxWlhNc0lITnZjblJsWkNCaWVTQnJaWGtnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzUyWVd4MVpYTkJjbkpoZVNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MGN5QTlJRnRkTzF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUXVabTl5VW1GdVoyVW9kR2hwY3k1dGFXNUxaWGtvS1N3Z2RHaHBjeTV0WVhoTFpYa29LU3dnZEhKMVpTd2dabUZzYzJVc0lIUm9hWE1zSURBc0lHWjFibU4wYVc5dUlDaHJMQ0IyS1NCN0lISmxjM1ZzZEhNdWNIVnphQ2gyS1RzZ2ZTazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2RITTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUVkbGRITWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBhVzVuSUhSb1pTQjBjbVZsSjNNZ1pHRjBZU0JpWVhObFpDQnZiaUIwYjBGeWNtRjVLQ2t1SUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1ZEc5VGRISnBibWNnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWRHOUJjbkpoZVNncExuUnZVM1J5YVc1bktDazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZOMGIzSmxjeUJoSUd0bGVTMTJZV3gxWlNCd1lXbHlJRzl1YkhrZ2FXWWdkR2hsSUd0bGVTQmtiMlZ6YmlkMElHRnNjbVZoWkhrZ1pYaHBjM1FnYVc0Z2RHaGxJSFJ5WldVdVhISmNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjBjblZsSUdsbUlHRWdibVYzSUd0bGVTQjNZWE1nWVdSa1pXUmNjbHh1SUNBZ0lDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWMyVjBTV1pPYjNSUWNtVnpaVzUwSUQwZ1puVnVZM1JwYjI0Z0tHdGxlU3dnZG1Gc2RXVXBJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXpaWFFvYTJWNUxDQjJZV3gxWlN3Z1ptRnNjMlVwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtpQlNaWFIxY201eklIUm9aU0J1WlhoMElIQmhhWElnZDJodmMyVWdhMlY1SUdseklHeGhjbWRsY2lCMGFHRnVJSFJvWlNCemNHVmphV1pwWldRZ2EyVjVJQ2h2Y2lCMWJtUmxabWx1WldRZ2FXWWdkR2hsY21VZ2FYTWdibTl1WlNrdVhISmNiaUFnSUNBZ0tpQkpaaUJyWlhrZ1BUMDlJSFZ1WkdWbWFXNWxaQ3dnZEdocGN5Qm1kVzVqZEdsdmJpQnlaWFIxY201eklIUm9aU0JzYjNkbGMzUWdjR0ZwY2k1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCclpYa2dWR2hsSUd0bGVTQjBieUJ6WldGeVkyZ2dabTl5TGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhKbGRYTmxaRUZ5Y21GNUlFOXdkR2x2Ym1Gc0lHRnljbUY1SUhWelpXUWdjbVZ3WldGMFpXUnNlU0IwYnlCemRHOXlaU0JyWlhrdGRtRnNkV1VnY0dGcGNuTXNJSFJ2WEhKY2JpQWdJQ0FnS2lCaGRtOXBaQ0JqY21WaGRHbHVaeUJoSUc1bGR5QmhjbkpoZVNCdmJpQmxkbVZ5ZVNCcGRHVnlZWFJwYjI0dVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1dVpYaDBTR2xuYUdWeVVHRnBjaUE5SUdaMWJtTjBhVzl1SUNoclpYa3NJSEpsZFhObFpFRnljbUY1S1NCN1hISmNiaUFnSUNBZ0lDQWdjbVYxYzJWa1FYSnlZWGtnUFNCeVpYVnpaV1JCY25KaGVTQjhmQ0JiWFR0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYTJWNUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSnZiM1F1YldsdVVHRnBjaWh5WlhWelpXUkJjbkpoZVNrN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXliMjkwTG1kbGRGQmhhWEpQY2s1bGVIUklhV2RvWlhJb2EyVjVMQ0IwYUdsekxsOWpiMjF3WVhKbExDQm1ZV3h6WlN3Z2NtVjFjMlZrUVhKeVlYa3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCU1pYUjFjbTV6SUhSb1pTQnVaWGgwSUd0bGVTQnNZWEpuWlhJZ2RHaGhiaUIwYUdVZ2MzQmxZMmxtYVdWa0lHdGxlU3dnYjNJZ2RXNWtaV1pwYm1Wa0lHbG1JSFJvWlhKbElHbHpJRzV2Ym1VdVhISmNiaUFnSUNBZ0tpQWdRV3h6Ynl3Z2JtVjRkRWhwWjJobGNrdGxlU2gxYm1SbFptbHVaV1FwSUhKbGRIVnlibk1nZEdobElHeHZkMlZ6ZENCclpYa3VYSEpjYmlBZ0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNXVaWGgwU0dsbmFHVnlTMlY1SUQwZ1puVnVZM1JwYjI0Z0tHdGxlU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ3SUQwZ2RHaHBjeTV1WlhoMFNHbG5hR1Z5VUdGcGNpaHJaWGtzSUZKbGRYTmxaRUZ5Y21GNUtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjQ0FtSmlCd1d6QmRPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCU1pYUjFjbTV6SUhSb1pTQnVaWGgwSUhCaGFYSWdkMmh2YzJVZ2EyVjVJR2x6SUhOdFlXeHNaWElnZEdoaGJpQjBhR1VnYzNCbFkybG1hV1ZrSUd0bGVTQW9iM0lnZFc1a1pXWnBibVZrSUdsbUlIUm9aWEpsSUdseklHNXZibVVwTGx4eVhHNGdJQ0FnSUNvZ0lFbG1JR3RsZVNBOVBUMGdkVzVrWldacGJtVmtMQ0IwYUdseklHWjFibU4wYVc5dUlISmxkSFZ5Ym5NZ2RHaGxJR2hwWjJobGMzUWdjR0ZwY2k1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCclpYa2dWR2hsSUd0bGVTQjBieUJ6WldGeVkyZ2dabTl5TGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhKbGRYTmxaRUZ5Y21GNUlFOXdkR2x2Ym1Gc0lHRnljbUY1SUhWelpXUWdjbVZ3WldGMFpXUnNlU0IwYnlCemRHOXlaU0JyWlhrdGRtRnNkV1VnY0dGcGNuTXNJSFJ2WEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnWVhadmFXUWdZM0psWVhScGJtY2dZU0J1WlhjZ1lYSnlZWGtnWldGamFDQjBhVzFsSUhsdmRTQmpZV3hzSUhSb2FYTWdiV1YwYUc5a0xseHlYRzRnSUNBZ0lDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWJtVjRkRXh2ZDJWeVVHRnBjaUE5SUdaMWJtTjBhVzl1SUNoclpYa3NJSEpsZFhObFpFRnljbUY1S1NCN1hISmNiaUFnSUNBZ0lDQWdjbVYxYzJWa1FYSnlZWGtnUFNCeVpYVnpaV1JCY25KaGVTQjhmQ0JiWFR0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYTJWNUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSnZiM1F1YldGNFVHRnBjaWh5WlhWelpXUkJjbkpoZVNrN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXliMjkwTG1kbGRGQmhhWEpQY2s1bGVIUk1iM2RsY2loclpYa3NJSFJvYVhNdVgyTnZiWEJoY21Vc0lHWmhiSE5sTENCeVpYVnpaV1JCY25KaGVTazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nZEdobElHNWxlSFFnYTJWNUlITnRZV3hzWlhJZ2RHaGhiaUIwYUdVZ2MzQmxZMmxtYVdWa0lHdGxlU3dnYjNJZ2RXNWtaV1pwYm1Wa0lHbG1JSFJvWlhKbElHbHpJRzV2Ym1VdVhISmNiaUFnSUNBZ0tpQWdRV3h6Ynl3Z2JtVjRkRXh2ZDJWeVMyVjVLSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVjeUIwYUdVZ2FHbG5hR1Z6ZENCclpYa3VYSEpjYmlBZ0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNXVaWGgwVEc5M1pYSkxaWGtnUFNCbWRXNWpkR2x2YmlBb2EyVjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSEFnUFNCMGFHbHpMbTVsZUhSTWIzZGxjbEJoYVhJb2EyVjVMQ0JTWlhWelpXUkJjbkpoZVNrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIQWdKaVlnY0Zzd1hUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaW9nVW1WMGRYSnVjeUIwYUdVZ2EyVjVMWFpoYkhWbElIQmhhWElnWVhOemIyTnBZWFJsWkNCM2FYUm9JSFJvWlNCemRYQndiR2xsWkNCclpYa2dhV1lnYVhRZ1pYaHBjM1J6WEhKY2JpQWdJQ0FnS2lBZ2IzSWdkR2hsSUhCaGFYSWdZWE56YjJOcFlYUmxaQ0IzYVhSb0lIUm9aU0J1WlhoMElHeHZkMlZ5SUhCaGFYSWdiM1JvWlhKM2FYTmxMaUJKWmlCMGFHVnlaU0JwY3lCdWIxeHlYRzRnSUNBZ0lDb2dJRzVsZUhRZ2JHOTNaWElnY0dGcGNpd2dkVzVrWldacGJtVmtJR2x6SUhKbGRIVnlibVZrTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUd0bGVTQlVhR1VnYTJWNUlIUnZJSE5sWVhKamFDQm1iM0l1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY21WMWMyVmtRWEp5WVhrZ1QzQjBhVzl1WVd3Z1lYSnlZWGtnZFhObFpDQnlaWEJsWVhSbFpHeDVJSFJ2SUhOMGIzSmxJR3RsZVMxMllXeDFaU0J3WVdseWN5d2dkRzljY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0JoZG05cFpDQmpjbVZoZEdsdVp5QmhJRzVsZHlCaGNuSmhlU0JsWVdOb0lIUnBiV1VnZVc5MUlHTmhiR3dnZEdocGN5QnRaWFJvYjJRdVhISmNiaUFnSUNBZ0tpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtZGxkRkJoYVhKUGNrNWxlSFJNYjNkbGNpQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lISmxkWE5sWkVGeWNtRjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0p2YjNRdVoyVjBVR0ZwY2s5eVRtVjRkRXh2ZDJWeUtHdGxlU3dnZEdocGN5NWZZMjl0Y0dGeVpTd2dkSEoxWlN3Z2NtVjFjMlZrUVhKeVlYa2dmSHdnVzEwcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJTWlhSMWNtNXpJSFJvWlNCclpYa3RkbUZzZFdVZ2NHRnBjaUJoYzNOdlkybGhkR1ZrSUhkcGRHZ2dkR2hsSUhOMWNIQnNhV1ZrSUd0bGVTQnBaaUJwZENCbGVHbHpkSE5jY2x4dUlDQWdJQ0FxSUNCdmNpQjBhR1VnY0dGcGNpQmhjM052WTJsaGRHVmtJSGRwZEdnZ2RHaGxJRzVsZUhRZ2JHOTNaWElnY0dGcGNpQnZkR2hsY25kcGMyVXVJRWxtSUhSb1pYSmxJR2x6SUc1dlhISmNiaUFnSUNBZ0tpQWdibVY0ZENCc2IzZGxjaUJ3WVdseUxDQjFibVJsWm1sdVpXUWdhWE1nY21WMGRYSnVaV1F1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYTJWNUlGUm9aU0JyWlhrZ2RHOGdjMlZoY21Ob0lHWnZjaTVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0J5WlhWelpXUkJjbkpoZVNCUGNIUnBiMjVoYkNCaGNuSmhlU0IxYzJWa0lISmxjR1ZoZEdWa2JIa2dkRzhnYzNSdmNtVWdhMlY1TFhaaGJIVmxJSEJoYVhKekxDQjBiMXh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR0YyYjJsa0lHTnlaV0YwYVc1bklHRWdibVYzSUdGeWNtRjVJR1ZoWTJnZ2RHbHRaU0I1YjNVZ1kyRnNiQ0IwYUdseklHMWxkR2h2WkM1Y2NseHVJQ0FnSUNBcUlDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdVoyVjBVR0ZwY2s5eVRtVjRkRWhwWjJobGNpQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lISmxkWE5sWkVGeWNtRjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0p2YjNRdVoyVjBVR0ZwY2s5eVRtVjRkRWhwWjJobGNpaHJaWGtzSUhSb2FYTXVYMk52YlhCaGNtVXNJSFJ5ZFdVc0lISmxkWE5sWkVGeWNtRjVJSHg4SUZ0ZEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaW9nUldScGRITWdkR2hsSUhaaGJIVmxJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQmhJR3RsZVNCcGJpQjBhR1VnZEhKbFpTd2dhV1lnYVhRZ1lXeHlaV0ZrZVNCbGVHbHpkSE11WEhKY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCMGNuVmxJR2xtSUhSb1pTQnJaWGtnWlhocGMzUmxaQ3dnWm1Gc2MyVWdhV1lnYm05MExseHlYRzRnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1amFHRnVaMlZKWmxCeVpYTmxiblFnUFNCbWRXNWpkR2x2YmlBb2EyVjVMQ0IyWVd4MVpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmthWFJTWVc1blpTaHJaWGtzSUd0bGVTd2dkSEoxWlN3Z1puVnVZM1JwYjI0Z0tHc3NJSFlwSUhzZ2NtVjBkWEp1SUNoN0lIWmhiSFZsT2lCMllXeDFaU0I5S1RzZ2ZTa2dJVDA5SURBN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FYSEpjYmlBZ0lDQWdLaUJDZFdsc1pITWdZVzRnWVhKeVlYa2diMllnY0dGcGNuTWdabkp2YlNCMGFHVWdjM0JsWTJsbWFXVmtJSEpoYm1kbElHOW1JR3RsZVhNc0lITnZjblJsWkNCaWVTQnJaWGt1WEhKY2JpQWdJQ0FnS2lCRllXTm9JSEpsZEhWeWJtVmtJSEJoYVhJZ2FYTWdZV3h6YnlCaGJpQmhjbkpoZVRvZ2NHRnBjbHN3WFNCcGN5QjBhR1VnYTJWNUxDQndZV2x5V3pGZElHbHpJSFJvWlNCMllXeDFaUzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JzYjNjZ1ZHaGxJR1pwY25OMElHdGxlU0JwYmlCMGFHVWdZWEp5WVhrZ2QybHNiQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnWUd4dmQyQXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhR2xuYUNCVWFHbHpJRzFsZEdodlpDQnlaWFIxY201eklIZG9aVzRnWVNCclpYa2diR0Z5WjJWeUlIUm9ZVzRnZEdocGN5QnBjeUJ5WldGamFHVmtMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR2x1WTJ4MVpHVklhV2RvSUVsbUlIUm9aU0JnYUdsbmFHQWdhMlY1SUdseklIQnlaWE5sYm5Rc0lHbDBjeUJ3WVdseUlIZHBiR3dnWW1VZ2FXNWpiSFZrWldSY2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNCcGJpQjBhR1VnYjNWMGNIVjBJR2xtSUdGdVpDQnZibXg1SUdsbUlIUm9hWE1nY0dGeVlXMWxkR1Z5SUdseklIUnlkV1V1SUU1dmRHVTZJR2xtSUhSb1pWeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHQnNiM2RnSUd0bGVTQnBjeUJ3Y21WelpXNTBMQ0JwZENCcGN5QmhiSGRoZVhNZ2FXNWpiSFZrWldRZ2FXNGdkR2hsSUc5MWRIQjFkQzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0J0WVhoTVpXNW5kR2dnVEdWdVozUm9JR3hwYldsMExpQm5aWFJTWVc1blpTQjNhV3hzSUhOMGIzQWdjMk5oYm01cGJtY2dkR2hsSUhSeVpXVWdkMmhsYmx4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHVWdZWEp5WVhrZ2NtVmhZMmhsY3lCMGFHbHpJSE5wZW1VdVhISmNiaUFnSUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dGNIVjBZWFJwYjI1aGJDQmpiMjF3YkdWNGFYUjVPaUJQS0hKbGMzVnNkQzVzWlc1bmRHZ2dLeUJzYjJjZ2MybDZaU2xjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbWRsZEZKaGJtZGxJRDBnWm5WdVkzUnBiMjRnS0d4dmR5d2dhR2xuYUN3Z2FXNWpiSFZrWlVocFoyZ3NJRzFoZUV4bGJtZDBhQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2h0WVhoTVpXNW5kR2dnUFQwOUlIWnZhV1FnTUNrZ2V5QnRZWGhNWlc1bmRHZ2dQU0F3ZUROR1JrWkdSa1k3SUgxY2NseHVJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBjeUE5SUZ0ZE8xeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzSnZiM1F1Wm05eVVtRnVaMlVvYkc5M0xDQm9hV2RvTENCcGJtTnNkV1JsU0dsbmFDd2dabUZzYzJVc0lIUm9hWE1zSURBc0lHWjFibU4wYVc5dUlDaHJMQ0IyS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkSE11Y0hWemFDaGJheXdnZGwwcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBjeTVzWlc1bmRHZ2dQaUJ0WVhoTVpXNW5kR2dnUHlCQ2NtVmhheUE2SUhWdVpHVm1hVzVsWkR0Y2NseHVJQ0FnSUNBZ0lDQjlLVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBjenRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2S2lvZ1FXUmtjeUJoYkd3Z2NHRnBjbk1nWm5KdmJTQmhJR3hwYzNRZ2IyWWdhMlY1TFhaaGJIVmxJSEJoYVhKekxseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElIQmhhWEp6SUZCaGFYSnpJSFJ2SUdGa1pDQjBieUIwYUdseklIUnlaV1V1SUVsbUlIUm9aWEpsSUdGeVpTQmtkWEJzYVdOaGRHVWdhMlY1Y3l4Y2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNCc1lYUmxjaUJ3WVdseWN5QmpkWEp5Wlc1MGJIa2diM1psY25keWFYUmxJR1ZoY214cFpYSWdiMjVsY3lBb1pTNW5MaUJiV3pBc01WMHNXekFzTjExZFhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ1lYTnpiMk5wWVhSbGN5QXdJSGRwZEdnZ055NHBYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdiM1psY25keWFYUmxJRmRvWlhSb1pYSWdkRzhnYjNabGNuZHlhWFJsSUhCaGFYSnpJSFJvWVhRZ1lXeHlaV0ZrZVNCbGVHbHpkQ0FvYVdZZ1ptRnNjMlVzWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnY0dGcGNuTmJhVjBnYVhNZ2FXZHViM0psWkNCM2FHVnVJSFJvWlNCclpYa2djR0ZwY25OYmFWMWJNRjBnWVd4eVpXRmtlU0JsZUdsemRITXVLVnh5WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nVkdobElHNTFiV0psY2lCdlppQndZV2x5Y3lCaFpHUmxaQ0IwYnlCMGFHVWdZMjlzYkdWamRHbHZiaTVjY2x4dUlDQWdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkRiMjF3ZFhSaGRHbHZibUZzSUdOdmJYQnNaWGhwZEhrNklFOG9jR0ZwY25NdWJHVnVaM1JvSUNvZ2JHOW5LSE5wZW1VZ0t5QndZV2x5Y3k1c1pXNW5kR2dwS1Z4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1YzJWMFVHRnBjbk1nUFNCbWRXNWpkR2x2YmlBb2NHRnBjbk1zSUc5MlpYSjNjbWwwWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCaFpHUmxaQ0E5SURBN1hISmNiaUFnSUNBZ0lDQWdabTl5SUNoMllYSWdhU0E5SURBN0lHa2dQQ0J3WVdseWN5NXNaVzVuZEdnN0lHa3JLeWxjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVjMlYwS0hCaGFYSnpXMmxkV3pCZExDQndZV2x5YzF0cFhWc3hYU3dnYjNabGNuZHlhWFJsS1NsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRmtaR1ZrS3lzN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRmtaR1ZrTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtseHlYRzRnSUNBZ0lDb2dVMk5oYm5NZ2RHaGxJSE53WldOcFptbGxaQ0J5WVc1blpTQnZaaUJyWlhsekxDQnBiaUJoYzJObGJtUnBibWNnYjNKa1pYSWdZbmtnYTJWNUxseHlYRzRnSUNBZ0lDb2dUbTkwWlRvZ2RHaGxJR05oYkd4aVlXTnJJR0J2YmtadmRXNWtZQ0J0ZFhOMElHNXZkQ0JwYm5ObGNuUWdiM0lnY21WdGIzWmxJR2wwWlcxeklHbHVJSFJvWlZ4eVhHNGdJQ0FnSUNvZ1kyOXNiR1ZqZEdsdmJpNGdSRzlwYm1jZ2MyOGdiV0Y1SUdOaGRYTmxJR2x1WTI5eWNtVmpkQ0JrWVhSaElIUnZJR0psSUhObGJuUWdkRzhnZEdobFhISmNiaUFnSUNBZ0tpQmpZV3hzWW1GamF5QmhablJsY25kaGNtUXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdiRzkzSUZSb1pTQm1hWEp6ZENCclpYa2djMk5oYm01bFpDQjNhV3hzSUdKbElHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYnlCZ2JHOTNZQzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JvYVdkb0lGTmpZVzV1YVc1bklITjBiM0J6SUhkb1pXNGdZU0JyWlhrZ2JHRnlaMlZ5SUhSb1lXNGdkR2hwY3lCcGN5QnlaV0ZqYUdWa0xseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHbHVZMngxWkdWSWFXZG9JRWxtSUhSb1pTQmdhR2xuYUdBZ2EyVjVJR2x6SUhCeVpYTmxiblFzSUdCdmJrWnZkVzVrWUNCcGN5QmpZV3hzWldRZ1ptOXlYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdkR2hoZENCbWFXNWhiQ0J3WVdseUlHbG1JR0Z1WkNCdmJteDVJR2xtSUhSb2FYTWdjR0Z5WVcxbGRHVnlJR2x6SUhSeWRXVXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdiMjVHYjNWdVpDQkJJR1oxYm1OMGFXOXVJSFJvWVhRZ2FYTWdZMkZzYkdWa0lHWnZjaUJsWVdOb0lHdGxlUzEyWVd4MVpTQndZV2x5TGlCVWFHbHpYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdablZ1WTNScGIyNGdZMkZ1SUhKbGRIVnliaUI3WW5KbFlXczZVbjBnZEc4Z2MzUnZjQ0JsWVhKc2VTQjNhWFJvSUhKbGMzVnNkQ0JTTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdsdWFYUnBZV3hEYjNWdWRHVnlJRWx1YVhScFlXd2dkR2hwY21RZ1lYSm5kVzFsYm5RZ2IyWWdiMjVHYjNWdVpDNGdWR2hwY3lCMllXeDFaVnh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR2x1WTNKbFlYTmxjeUJpZVNCdmJtVWdaV0ZqYUNCMGFXMWxJR0J2YmtadmRXNWtZQ0JwY3lCallXeHNaV1F1SUVSbFptRjFiSFE2SURCY2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklGUm9aU0J1ZFcxaVpYSWdiMllnZG1Gc2RXVnpJR1p2ZFc1a0xDQnZjaUJTSUdsbUlIUm9aU0JqWVd4c1ltRmpheUJ5WlhSMWNtNWxaRnh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR0I3WW5KbFlXczZVbjFnSUhSdklITjBiM0FnWldGeWJIa3VYSEpjYmlBZ0lDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXRjSFYwWVhScGIyNWhiQ0JqYjIxd2JHVjRhWFI1T2lCUEtHNTFiV0psY2lCdlppQnBkR1Z0Y3lCelkyRnVibVZrSUNzZ2JHOW5JSE5wZW1VcFhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1bWIzSlNZVzVuWlNBOUlHWjFibU4wYVc5dUlDaHNiM2NzSUdocFoyZ3NJR2x1WTJ4MVpHVklhV2RvTENCdmJrWnZkVzVrTENCcGJtbDBhV0ZzUTI5MWJuUmxjaWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ5SUQwZ2RHaHBjeTVmY205dmRDNW1iM0pTWVc1blpTaHNiM2NzSUdocFoyZ3NJR2x1WTJ4MVpHVklhV2RvTENCbVlXeHpaU3dnZEdocGN5d2dhVzVwZEdsaGJFTnZkVzUwWlhJZ2ZId2dNQ3dnYjI1R2IzVnVaQ2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUJ5SUQwOVBTQmNJbTUxYldKbGNsd2lJRDhnY2lBNklISXVZbkpsWVdzN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FYSEpjYmlBZ0lDQWdLaUJUWTJGdWN5QmhibVFnY0c5MFpXNTBhV0ZzYkhrZ2JXOWthV1pwWlhNZ2RtRnNkV1Z6SUdadmNpQmhJSE4xWW5ObGNYVmxibU5sSUc5bUlHdGxlWE11WEhKY2JpQWdJQ0FnS2lCT2IzUmxPaUIwYUdVZ1kyRnNiR0poWTJzZ1lHOXVSbTkxYm1SZ0lITm9iM1ZzWkNCcFpHVmhiR3g1SUdKbElHRWdjSFZ5WlNCbWRXNWpkR2x2Ymk1Y2NseHVJQ0FnSUNBcUlDQWdVM0JsWTJacFkyRnNiSGtzSUdsMElHMTFjM1FnYm05MElHbHVjMlZ5ZENCcGRHVnRjeXdnWTJGc2JDQmpiRzl1WlNncExDQnZjaUJqYUdGdVoyVmNjbHh1SUNBZ0lDQXFJQ0FnZEdobElHTnZiR3hsWTNScGIyNGdaWGhqWlhCMElIWnBZU0J5WlhSMWNtNGdkbUZzZFdVN0lHOTFkQzF2WmkxaVlXNWtJR1ZrYVhScGJtY2diV0Y1WEhKY2JpQWdJQ0FnS2lBZ0lHTmhkWE5sSUdGdUlHVjRZMlZ3ZEdsdmJpQnZjaUJ0WVhrZ1kyRjFjMlVnYVc1amIzSnlaV04wSUdSaGRHRWdkRzhnWW1VZ2MyVnVkQ0IwYjF4eVhHNGdJQ0FnSUNvZ0lDQjBhR1VnWTJGc2JHSmhZMnNnS0dSMWNHeHBZMkYwWlNCdmNpQnRhWE56WldRZ2FYUmxiWE1wTGlCSmRDQnRkWE4wSUc1dmRDQmpZWFZ6WlNCaFhISmNiaUFnSUNBZ0tpQWdJR05zYjI1bEtDa2diMllnZEdobElHTnZiR3hsWTNScGIyNHNJRzkwYUdWeWQybHpaU0IwYUdVZ1kyeHZibVVnWTI5MWJHUWdZbVVnYlc5a2FXWnBaV1JjY2x4dUlDQWdJQ0FxSUNBZ1lua2dZMmhoYm1kbGN5QnlaWEYxWlhOMFpXUWdZbmtnZEdobElHTmhiR3hpWVdOckxseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHeHZkeUJVYUdVZ1ptbHljM1FnYTJWNUlITmpZVzV1WldRZ2QybHNiQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnWUd4dmQyQXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhR2xuYUNCVFkyRnVibWx1WnlCemRHOXdjeUIzYUdWdUlHRWdhMlY1SUd4aGNtZGxjaUIwYUdGdUlIUm9hWE1nYVhNZ2NtVmhZMmhsWkM1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCcGJtTnNkV1JsU0dsbmFDQkpaaUIwYUdVZ1lHaHBaMmhnSUd0bGVTQnBjeUJ3Y21WelpXNTBMQ0JnYjI1R2IzVnVaR0FnYVhNZ1kyRnNiR1ZrSUdadmNseHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lIUm9ZWFFnWm1sdVlXd2djR0ZwY2lCcFppQmhibVFnYjI1c2VTQnBaaUIwYUdseklIQmhjbUZ0WlhSbGNpQnBjeUIwY25WbExseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHOXVSbTkxYm1RZ1FTQm1kVzVqZEdsdmJpQjBhR0YwSUdseklHTmhiR3hsWkNCbWIzSWdaV0ZqYUNCclpYa3RkbUZzZFdVZ2NHRnBjaTRnVkdocGMxeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHWjFibU4wYVc5dUlHTmhiaUJ5WlhSMWNtNGdZSHQyWVd4MVpUcDJmV0FnZEc4Z1kyaGhibWRsSUhSb1pTQjJZV3gxWlNCaGMzTnZZMmxoZEdWa1hISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ2QybDBhQ0IwYUdVZ1kzVnljbVZ1ZENCclpYa3NJR0I3WkdWc1pYUmxPblJ5ZFdWOVlDQjBieUJrWld4bGRHVWdkR2hsSUdOMWNuSmxiblFnY0dGcGNpeGNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQmdlMkp5WldGck9sSjlZQ0IwYnlCemRHOXdJR1ZoY214NUlIZHBkR2dnY21WemRXeDBJRklzSUc5eUlHbDBJR05oYmlCeVpYUjFjbTRnYm05MGFHbHVaMXh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJQ2gxYm1SbFptbHVaV1FnYjNJZ2UzMHBJSFJ2SUdOaGRYTmxJRzV2SUdWbVptVmpkQ0JoYm1RZ1kyOXVkR2x1ZFdVZ2FYUmxjbUYwYVc1bkxseHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHQjdZbkpsWVdzNlVuMWdJR05oYmlCaVpTQmpiMjFpYVc1bFpDQjNhWFJvSUc5dVpTQnZaaUIwYUdVZ2IzUm9aWElnZEhkdklHTnZiVzFoYm1SekxseHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lGUm9aU0IwYUdseVpDQmhjbWQxYldWdWRDQmdZMjkxYm5SbGNtQWdhWE1nZEdobElHNTFiV0psY2lCdlppQnBkR1Z0Y3lCcGRHVnlZWFJsWkZ4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUhCeVpYWnBiM1Z6YkhrN0lHbDBJR1Z4ZFdGc2N5QXdJSGRvWlc0Z1lHOXVSbTkxYm1SZ0lHbHpJR05oYkd4bFpDQjBhR1VnWm1seWMzUWdkR2x0WlM1Y2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklGUm9aU0J1ZFcxaVpYSWdiMllnZG1Gc2RXVnpJSE5qWVc1dVpXUXNJRzl5SUZJZ2FXWWdkR2hsSUdOaGJHeGlZV05ySUhKbGRIVnlibVZrWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnWUh0aWNtVmhhenBTZldBZ2RHOGdjM1J2Y0NCbFlYSnNlUzVjY2x4dUlDQWdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHlYRzRnSUNBZ0lDb2dJQ0JEYjIxd2RYUmhkR2x2Ym1Gc0lHTnZiWEJzWlhocGRIazZJRThvYm5WdFltVnlJRzltSUdsMFpXMXpJSE5qWVc1dVpXUWdLeUJzYjJjZ2MybDZaU2xjY2x4dUlDQWdJQ0FxSUNBZ1RtOTBaVG9nYVdZZ2RHaGxJSFJ5WldVZ2FHRnpJR0psWlc0Z1kyeHZibVZrSUhkcGRHZ2dZMnh2Ym1Vb0tTd2dZVzU1SUhOb1lYSmxaRnh5WEc0Z0lDQWdJQ29nSUNCdWIyUmxjeUJoY21VZ1kyOXdhV1ZrSUdKbFptOXlaU0JnYjI1R2IzVnVaR0FnYVhNZ1kyRnNiR1ZrTGlCVWFHbHpJSFJoYTJWeklFOG9iaWtnZEdsdFpWeHlYRzRnSUNBZ0lDb2dJQ0IzYUdWeVpTQnVJR2x6SUhCeWIzQnZjblJwYjI1aGJDQjBieUIwYUdVZ1lXMXZkVzUwSUc5bUlITm9ZWEpsWkNCa1lYUmhJSE5qWVc1dVpXUXVYSEpjYmlBZ0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNWxaR2wwVW1GdVoyVWdQU0JtZFc1amRHbHZiaUFvYkc5M0xDQm9hV2RvTENCcGJtTnNkV1JsU0dsbmFDd2diMjVHYjNWdVpDd2dhVzVwZEdsaGJFTnZkVzUwWlhJcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2NtOXZkQ0E5SUhSb2FYTXVYM0p2YjNRN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hKdmIzUXVhWE5UYUdGeVpXUXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUWdQU0J5YjI5MElEMGdjbTl2ZEM1amJHOXVaU2dwTzF4eVhHNGdJQ0FnSUNBZ0lIUnllU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeUlEMGdjbTl2ZEM1bWIzSlNZVzVuWlNoc2IzY3NJR2hwWjJnc0lHbHVZMngxWkdWSWFXZG9MQ0IwY25WbExDQjBhR2x6TENCcGJtbDBhV0ZzUTI5MWJuUmxjaUI4ZkNBd0xDQnZia1p2ZFc1a0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUJ5SUQwOVBTQmNJbTUxYldKbGNsd2lJRDhnY2lBNklISXVZbkpsWVdzN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdacGJtRnNiSGtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2FYTlRhR0Z5WldRZ1BTQjJiMmxrSURBN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2h5YjI5MExtdGxlWE11YkdWdVozUm9JRHc5SURFZ0ppWWdJWEp2YjNRdWFYTk1aV0ZtS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMU5vWVhKbFpDQjhmQ0FvYVhOVGFHRnlaV1FnUFNCeWIyOTBMbWx6VTJoaGNtVmtLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRZ1BTQnliMjkwSUQwZ2NtOXZkQzVyWlhsekxteGxibWQwYUNBOVBUMGdNQ0EvSUVWdGNIUjVUR1ZoWmlBNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205dmRDNWphR2xzWkhKbGJsc3dYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJKWmlCaGJua2dZVzVqWlhOMGIzSWdiMllnZEdobElHNWxkeUJ5YjI5MElIZGhjeUJ6YUdGeVpXUXNJSFJvWlNCdVpYY2djbTl2ZENCdGRYTjBJR0ZzYzI4Z1ltVWdjMmhoY21Wa1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMU5vWVhKbFpDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205dmRDNXBjMU5vWVhKbFpDQTlJSFJ5ZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZOaGJXVWdZWE1nWUdWa2FYUlNZVzVuWldBZ1pYaGpaWEIwSUhSb1lYUWdkR2hsSUdOaGJHeGlZV05ySUdseklHTmhiR3hsWkNCbWIzSWdZV3hzSUhCaGFYSnpMaUFxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbVZrYVhSQmJHd2dQU0JtZFc1amRHbHZiaUFvYjI1R2IzVnVaQ3dnYVc1cGRHbGhiRU52ZFc1MFpYSXBJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxaR2wwVW1GdVoyVW9kR2hwY3k1dGFXNUxaWGtvS1N3Z2RHaHBjeTV0WVhoTFpYa29LU3dnZEhKMVpTd2diMjVHYjNWdVpDd2dhVzVwZEdsaGJFTnZkVzUwWlhJcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLbHh5WEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJoSUhKaGJtZGxJRzltSUd0bGVTMTJZV3gxWlNCd1lXbHljeUJtY205dElIUm9aU0JDS3lCMGNtVmxMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR3h2ZHlCVWFHVWdabWx5YzNRZ2EyVjVJSE5qWVc1dVpXUWdkMmxzYkNCaVpTQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z1lHeHZkMkF1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYUdsbmFDQlRZMkZ1Ym1sdVp5QnpkRzl3Y3lCM2FHVnVJR0VnYTJWNUlHeGhjbWRsY2lCMGFHRnVJSFJvYVhNZ2FYTWdjbVZoWTJobFpDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnBibU5zZFdSbFNHbG5hQ0JUY0dWamFXWnBaWE1nZDJobGRHaGxjaUIwYUdVZ1lHaHBaMmhnSUd0bGVTd2dhV1lnY0hKbGMyVnVkQ3dnYVhNZ1pHVnNaWFJsWkM1Y2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklGUm9aU0J1ZFcxaVpYSWdiMllnYTJWNUxYWmhiSFZsSUhCaGFYSnpJSFJvWVhRZ2QyVnlaU0JrWld4bGRHVmtMbHh5WEc0Z0lDQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZiWEIxZEdGMGFXOXVZV3dnWTI5dGNHeGxlR2wwZVRvZ1R5aHNiMmNnYzJsNlpTQXJJRzUxYldKbGNpQnZaaUJwZEdWdGN5QmtaV3hsZEdWa0tWeHlYRzRnSUNBZ0lDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdVpHVnNaWFJsVW1GdVoyVWdQU0JtZFc1amRHbHZiaUFvYkc5M0xDQm9hV2RvTENCcGJtTnNkV1JsU0dsbmFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmthWFJTWVc1blpTaHNiM2NzSUdocFoyZ3NJR2x1WTJ4MVpHVklhV2RvTENCRVpXeGxkR1ZTWVc1blpTazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUVSbGJHVjBaWE1nWVNCelpYSnBaWE1nYjJZZ2EyVjVjeUJtY205dElIUm9aU0JqYjJ4c1pXTjBhVzl1TGlBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1SbGJHVjBaVXRsZVhNZ1BTQm1kVzVqZEdsdmJpQW9hMlY1Y3lrZ2UxeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR2tnUFNBd0xDQnlJRDBnTURzZ2FTQThJR3RsZVhNdWJHVnVaM1JvT3lCcEt5c3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtUmxiR1YwWlNoclpYbHpXMmxkS1NsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISXJLenRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY2p0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29RbFJ5WldVdWNISnZkRzkwZVhCbExDQmNJbWhsYVdkb2RGd2lMQ0I3WEhKY2JpQWdJQ0FnSUNBZ0x5b3FJRWRsZEhNZ2RHaGxJR2hsYVdkb2RDQnZaaUIwYUdVZ2RISmxaVG9nZEdobElHNTFiV0psY2lCdlppQnBiblJsY201aGJDQnViMlJsY3lCaVpYUjNaV1Z1SUhSb1pWeHlYRzRnSUNBZ0lDQWdJQ0FxSUNCQ1ZISmxaU0J2WW1wbFkzUWdZVzVrSUdsMGN5QnNaV0ZtSUc1dlpHVnpJQ2g2WlhKdklHbG1JSFJvWlhKbElHRnlaU0J1YnlCcGJuUmxjbTVoYkNCdWIyUmxjeWt1SUNvdlhISmNiaUFnSUNBZ0lDQWdaMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ1YjJSbElEMGdkR2hwY3k1ZmNtOXZkRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdobGFXZG9kQ0E5SUMweE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FHbHNaU0FvYm05a1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBLeXM3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxJRDBnYm05a1pTNXBjMHhsWVdZZ1B5QjFibVJsWm1sdVpXUWdPaUJ1YjJSbExtTm9hV3hrY21WdVd6QmRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCb1pXbG5hSFE3WEhKY2JpQWdJQ0FnSUNBZ2ZTeGNjbHh1SUNBZ0lDQWdJQ0JsYm5WdFpYSmhZbXhsT2lCbVlXeHpaU3hjY2x4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdWY2NseHVJQ0FnSUgwcE8xeHlYRzRnSUNBZ0x5b3FJRTFoYTJWeklIUm9aU0J2WW1wbFkzUWdjbVZoWkMxdmJteDVJSFJ2SUdWdWMzVnlaU0JwZENCcGN5QnViM1FnWVdOamFXUmxiblJoYkd4NUlHMXZaR2xtYVdWa0xseHlYRzRnSUNBZ0lDb2dJRVp5WldWNmFXNW5JR1J2WlhNZ2JtOTBJR2hoZG1VZ2RHOGdZbVVnY0dWeWJXRnVaVzUwT3lCMWJtWnlaV1Y2WlNncElISmxkbVZ5YzJWeklIUm9aU0JsWm1abFkzUXVYSEpjYmlBZ0lDQWdLaUFnVkdocGN5QnBjeUJoWTJOdmJYQnNhWE5vWldRZ1lua2djbVZ3YkdGamFXNW5JRzExZEdGMGIzSWdablZ1WTNScGIyNXpJSGRwZEdnZ1lTQm1kVzVqZEdsdmJseHlYRzRnSUNBZ0lDb2dJSFJvWVhRZ2RHaHliM2R6SUdGdUlFVnljbTl5TGlCRGIyMXdZWEpsWkNCMGJ5QjFjMmx1WnlCaElIQnliM0JsY25SNUlDaGxMbWN1SUhSb2FYTXVhWE5HY205NlpXNHBYSEpjYmlBZ0lDQWdLaUFnZEdocGN5QnBiWEJzWlcxbGJuUmhkR2x2YmlCbmFYWmxjeUJpWlhSMFpYSWdjR1Z5Wm05eWJXRnVZMlVnYVc0Z2JtOXVMV1p5YjNwbGJpQkNWSEpsWlhNdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1bWNtVmxlbVVnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlIUWdQU0IwYUdsek8xeHlYRzRnSUNBZ0lDQWdJQzh2SUU1dmRHVTZJR0ZzYkNCdmRHaGxjaUJ0ZFhSaGRHOXljeUIxYkhScGJXRjBaV3g1SUdOaGJHd2djMlYwS0NrZ2IzSWdaV1JwZEZKaGJtZGxLQ2tnWEhKY2JpQWdJQ0FnSUNBZ0x5OGdJQ0FnSUNBZ2MyOGdkMlVnWkc5dUozUWdibVZsWkNCMGJ5QnZkbVZ5Y21sa1pTQjBhRzl6WlNCdmRHaGxjbk11WEhKY2JpQWdJQ0FnSUNBZ2RDNWpiR1ZoY2lBOUlIUXVjMlYwSUQwZ2RDNWxaR2wwVW1GdVoyVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWtGMGRHVnRjSFJsWkNCMGJ5QnRiMlJwWm5rZ1lTQm1jbTk2Wlc0Z1FsUnlaV1ZjSWlrN1hISmNiaUFnSUNBZ0lDQWdmVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2S2lvZ1JXNXpkWEpsY3lCdGRYUmhkR2x2Ym5NZ1lYSmxJR0ZzYkc5M1pXUXNJSEpsZG1WeWMybHVaeUIwYUdVZ1pXWm1aV04wSUc5bUlHWnlaV1Y2WlNncExpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExuVnVabkpsWlhwbElEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDOHZJRUIwY3kxcFoyNXZjbVVnWENKVWFHVWdiM0JsY21GdVpDQnZaaUJoSUNka1pXeGxkR1VuSUc5d1pYSmhkRzl5SUcxMWMzUWdZbVVnYjNCMGFXOXVZV3d1WENKY2NseHVJQ0FnSUNBZ0lDQXZMeUFnSUNBZ0lDQWdJQ0FnSUNoM2NtOXVaem9nWkdWc1pYUmxJR1J2WlhNZ2JtOTBJR0ZtWm1WamRDQjBhR1VnY0hKdmRHOTBlWEJsTGlsY2NseHVJQ0FnSUNBZ0lDQmtaV3hsZEdVZ2RHaHBjeTVqYkdWaGNqdGNjbHh1SUNBZ0lDQWdJQ0F2THlCQWRITXRhV2R1YjNKbFhISmNiaUFnSUNBZ0lDQWdaR1ZzWlhSbElIUm9hWE11YzJWME8xeHlYRzRnSUNBZ0lDQWdJQzh2SUVCMGN5MXBaMjV2Y21WY2NseHVJQ0FnSUNBZ0lDQmtaV3hsZEdVZ2RHaHBjeTVsWkdsMFVtRnVaMlU3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtFSlVjbVZsTG5CeWIzUnZkSGx3WlN3Z1hDSnBjMFp5YjNwbGJsd2lMQ0I3WEhKY2JpQWdJQ0FnSUNBZ0x5b3FJRkpsZEhWeWJuTWdkSEoxWlNCcFppQjBhR1VnZEhKbFpTQmhjSEJsWVhKeklIUnZJR0psSUdaeWIzcGxiaTRnS2k5Y2NseHVJQ0FnSUNBZ0lDQm5aWFE2SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhR0Z6VDNkdVVISnZjR1Z5ZEhrb0oyVmthWFJTWVc1blpTY3BPMXh5WEc0Z0lDQWdJQ0FnSUgwc1hISmNiaUFnSUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nWm1Gc2MyVXNYSEpjYmlBZ0lDQWdJQ0FnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsWEhKY2JpQWdJQ0I5S1R0Y2NseHVJQ0FnSUM4cUtpQlRZMkZ1Y3lCMGFHVWdkSEpsWlNCbWIzSWdjMmxuYm5NZ2IyWWdjMlZ5YVc5MWN5QmlkV2R6SUNobExtY3VJSFJvYVhNdWMybDZaU0JrYjJWemJpZDBJRzFoZEdOb1hISmNiaUFnSUNBZ0tpQWdiblZ0WW1WeUlHOW1JR1ZzWlcxbGJuUnpMQ0JwYm5SbGNtNWhiQ0J1YjJSbGN5QnViM1FnWTJGamFHbHVaeUJ0WVhnZ1pXeGxiV1Z1ZENCd2NtOXdaWEpzZVM0dUxpbGNjbHh1SUNBZ0lDQXFJQ0JEYjIxd2RYUmhkR2x2Ym1Gc0lHTnZiWEJzWlhocGRIazZJRThvYm5WdFltVnlJRzltSUc1dlpHVnpLU3dnYVM1bExpQlBLSE5wZW1VcExpQlVhR2x6SUcxbGRHaHZaRnh5WEc0Z0lDQWdJQ29nSUhOcmFYQnpJSFJvWlNCdGIzTjBJR1Y0Y0dWdWMybDJaU0IwWlhOMElDMGdkMmhsZEdobGNpQmhiR3dnYTJWNWN5QmhjbVVnYzI5eWRHVmtJQzBnWW5WMElHbDBYSEpjYmlBZ0lDQWdLaUFnWkc5bGN5QmphR1ZqYXlCMGFHRjBJRzFoZUV0bGVTZ3BJRzltSUhSb1pTQmphR2xzWkhKbGJpQnZaaUJwYm5SbGNtNWhiQ0J1YjJSbGN5QmhjbVVnYzI5eWRHVmtMaUFxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbU5vWldOclZtRnNhV1FnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlITnBlbVVnUFNCMGFHbHpMbDl5YjI5MExtTm9aV05yVm1Gc2FXUW9NQ3dnZEdocGN5d2dNQ2s3WEhKY2JpQWdJQ0FnSUNBZ1kyaGxZMnNvYzJsNlpTQTlQVDBnZEdocGN5NXphWHBsTENCY0luTnBlbVVnYldsemJXRjBZMmc2SUdOdmRXNTBaV1FnWENJc0lITnBlbVVzSUZ3aVluVjBJSE4wYjNKbFpGd2lMQ0IwYUdsekxuTnBlbVVwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUhKbGRIVnliaUJDVkhKbFpUdGNjbHh1ZlNncEtUdGNjbHh1Wlhod2IzSjBjeTVrWldaaGRXeDBJRDBnUWxSeVpXVTdYSEpjYmk4cUtpQkJJRlI1Y0dWVFkzSnBjSFFnYUdWc2NHVnlJR1oxYm1OMGFXOXVJSFJvWVhRZ2MybHRjR3g1SUhKbGRIVnlibk1nYVhSeklHRnlaM1Z0Wlc1MExDQjBlWEJsWkNCaGMxeHlYRzRnS2lBZ1lFbFRiM0owWldSVFpYUThTejVnSUdsbUlIUm9aU0JDVkhKbFpTQnBiWEJzWlcxbGJuUnpJR2wwTENCaGN5QnBkQ0JrYjJWeklHbG1JR0JXSUdWNGRHVnVaSE1nZFc1a1pXWnBibVZrWUM1Y2NseHVJQ29nSUVsbUlHQldZQ0JqWVc1dWIzUWdZbVVnWUhWdVpHVm1hVzVsWkdBc0lHbDBJSEpsZEhWeWJuTWdZSFZ1YTI1dmQyNWdJR2x1YzNSbFlXUXVJRTl5SUdGMElHeGxZWE4wTENCMGFHRjBYSEpjYmlBcUlDQjNZWE1nZEdobElHbHVkR1Z1ZEdsdmJpd2dZblYwSUZSNWNHVlRZM0pwY0hRZ2FYTWdZV04wYVc1bklIZGxhWEprSUdGdVpDQnRZWGtnY21WMGRYSnVJR0JKVTI5eWRHVmtVMlYwUEVzK1lGeHlYRzRnS2lBZ1pYWmxiaUJwWmlCZ1ZtQWdZMkZ1SjNRZ1ltVWdZSFZ1WkdWbWFXNWxaR0FnS0dScGMyTjFjM05wYjI0NklHSjBjbVZsTFhSNWNHVnpZM0pwY0hRZ2FYTnpkV1VnSXpFMEtTQXFMMXh5WEc1bWRXNWpkR2x2YmlCaGMxTmxkQ2hpZEhKbFpTa2dlMXh5WEc0Z0lDQWdjbVYwZFhKdUlHSjBjbVZsTzF4eVhHNTlYSEpjYm1WNGNHOXlkSE11WVhOVFpYUWdQU0JoYzFObGREdGNjbHh1YVdZZ0tGTjViV0p2YkNBbUppQlRlVzFpYjJ3dWFYUmxjbUYwYjNJcElDOHZJR2wwWlhKaGRHOXlJR2x6SUdWeGRXbDJZV3hsYm5RZ2RHOGdaVzUwY21sbGN5Z3BYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dWYlUzbHRZbTlzTG1sMFpYSmhkRzl5WFNBOUlFSlVjbVZsTG5CeWIzUnZkSGx3WlM1bGJuUnlhV1Z6TzF4eVhHNUNWSEpsWlM1d2NtOTBiM1I1Y0dVdWQyaGxjbVVnUFNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1Wm1sc2RHVnlPMXh5WEc1Q1ZISmxaUzV3Y205MGIzUjVjR1V1YzJWMFVtRnVaMlVnUFNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1YzJWMFVHRnBjbk03WEhKY2JrSlVjbVZsTG5CeWIzUnZkSGx3WlM1aFpHUWdQU0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVjMlYwT3lBdkx5Qm1iM0lnWTI5dGNHRjBhV0pwYkdsMGVTQjNhWFJvSUVsVFpYUlRhVzVyUEVzK1hISmNibVoxYm1OMGFXOXVJR2wwWlhKaGRHOXlLRzVsZUhRcElIdGNjbHh1SUNBZ0lHbG1JQ2h1WlhoMElEMDlQU0IyYjJsa0lEQXBJSHNnYm1WNGRDQTlJQ2htZFc1amRHbHZiaUFvS1NCN0lISmxkSFZ5YmlBb2V5QmtiMjVsT2lCMGNuVmxMQ0IyWVd4MVpUb2dkVzVrWldacGJtVmtJSDBwT3lCOUtUc2dmVnh5WEc0Z0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUhzZ2JtVjRkRG9nYm1WNGRDQjlPMXh5WEc0Z0lDQWdhV1lnS0ZONWJXSnZiQ0FtSmlCVGVXMWliMnd1YVhSbGNtRjBiM0lwWEhKY2JpQWdJQ0FnSUNBZ2NtVnpkV3gwVzFONWJXSnZiQzVwZEdWeVlYUnZjbDBnUFNCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQjBhR2x6T3lCOU8xeHlYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjY2x4dWZWeHlYRzR2S2lvZ1RHVmhaaUJ1YjJSbElDOGdZbUZ6WlNCamJHRnpjeTRnS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3ZYSEpjYm5aaGNpQkNUbTlrWlNBOUlDOHFLaUJBWTJ4aGMzTWdLaThnS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlFSk9iMlJsS0d0bGVYTXNJSFpoYkhWbGN5a2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGx6SUQwOVBTQjJiMmxrSURBcElIc2dhMlY1Y3lBOUlGdGRPeUI5WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVyWlhseklEMGdhMlY1Y3p0Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TG5aaGJIVmxjeUE5SUhaaGJIVmxjeUI4ZkNCMWJtUmxabFpoYkhNN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1cGMxTm9ZWEpsWkNBOUlIVnVaR1ZtYVc1bFpEdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hDVG05a1pTNXdjbTkwYjNSNWNHVXNJRndpYVhOTVpXRm1YQ0lzSUh0Y2NseHVJQ0FnSUNBZ0lDQm5aWFE2SUdaMWJtTjBhVzl1SUNncElIc2djbVYwZFhKdUlIUm9hWE11WTJocGJHUnlaVzRnUFQwOUlIVnVaR1ZtYVc1bFpEc2dmU3hjY2x4dUlDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQm1ZV3h6WlN4Y2NseHVJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVmNjbHh1SUNBZ0lIMHBPMXh5WEc0Z0lDQWdMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2WEhKY2JpQWdJQ0F2THlCVGFHRnlaV1FnYldWMGFHOWtjeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUVKT2IyUmxMbkJ5YjNSdmRIbHdaUzV0WVhoTFpYa2dQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YTJWNWMxdDBhR2x6TG10bGVYTXViR1Z1WjNSb0lDMGdNVjA3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHk4Z1NXWWdhMlY1SUc1dmRDQm1iM1Z1WkN3Z2NtVjBkWEp1Y3lCcFhtWmhhV3hZYjNJZ2QyaGxjbVVnYVNCcGN5QjBhR1VnYVc1elpYSjBhVzl1SUdsdVpHVjRMbHh5WEc0Z0lDQWdMeThnUTJGc2JHVnljeUIwYUdGMElHUnZiaWQwSUdOaGNtVWdkMmhsZEdobGNpQjBhR1Z5WlNCM1lYTWdZU0J0WVhSamFDQjNhV3hzSUhObGRDQm1ZV2xzV0c5eVBUQXVYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWFXNWtaWGhQWmlBOUlHWjFibU4wYVc5dUlDaHJaWGtzSUdaaGFXeFliM0lzSUdOdGNDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnJaWGx6SUQwZ2RHaHBjeTVyWlhsek8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCc2J5QTlJREFzSUdocElEMGdhMlY1Y3k1c1pXNW5kR2dzSUcxcFpDQTlJR2hwSUQ0K0lERTdYSEpjYmlBZ0lDQWdJQ0FnZDJocGJHVWdLR3h2SUR3Z2FHa3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdNZ1BTQmpiWEFvYTJWNWMxdHRhV1JkTENCclpYa3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWXlBOElEQXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYnlBOUlHMXBaQ0FySURFN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dNZ1BpQXdLU0F2THlCclpYa2dQQ0JyWlhselcyMXBaRjFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdocElEMGdiV2xrTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqSUQwOVBTQXdLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzFwWkR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCaklHbHpJRTVoVGlCdmNpQnZkR2hsY25kcGMyVWdhVzUyWVd4cFpGeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d0bGVTQTlQVDBnYTJWNUtTQXZMeUJoZENCc1pXRnpkQ0IwYUdVZ2MyVmhjbU5vSUd0bGVTQnBjeUJ1YjNRZ1RtRk9YSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUd0bGVYTXViR1Z1WjNSb08xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJa0pVY21WbE9pQk9ZVTRnZDJGeklIVnpaV1FnWVhNZ1lTQnJaWGxjSWlrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYldsa0lEMGdLR3h2SUNzZ2FHa3BJRDQrSURFN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ0YVdRZ1hpQm1ZV2xzV0c5eU8xeHlYRzRnSUNBZ0lDQWdJQzh2SUZWdWNtOXNiR1ZrSUhabGNuTnBiMjQ2SUdKbGJtTm9iV0Z5YTNNZ2MyaHZkeUJ6WVcxbElITndaV1ZrTENCdWIzUWdkMjl5ZEdnZ2RYTnBibWRjY2x4dUlDQWdJQ0FnSUNBdktuWmhjaUJwSUQwZ01Td2dZem9nYm5WdFltVnlJRDBnTUN3Z2MzVnRJRDBnTUR0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYTJWNWN5NXNaVzVuZEdnZ1BqMGdOQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdhU0E5SURNN1hISmNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2EyVjVjeTVzWlc1bmRHZ2dQajBnT0NrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcElEMGdOenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d0bGVYTXViR1Z1WjNSb0lENDlJREUyS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJREUxTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGx6TG14bGJtZDBhQ0ErUFNBek1pa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBOUlETXhPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHdGxlWE11YkdWdVozUm9JRDQ5SURZMEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrZ1BTQXhNamM3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHa2dLejBnS0dNZ1BTQnBJRHdnYTJWNWN5NXNaVzVuZEdnZ1B5QmpiWEFvYTJWNWMxdHBYU3dnYTJWNUtTQTZJREVwSUR3Z01DQS9JRFkwSURvZ0xUWTBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRXMGdLejBnWXp0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBb1l5QTlJR2tnUENCclpYbHpMbXhsYm1kMGFDQS9JR050Y0NoclpYbHpXMmxkTENCclpYa3BJRG9nTVNrZ1BDQXdJRDhnTXpJZ09pQXRNekk3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjFiU0FyUFNCak8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBclBTQW9ZeUE5SUdrZ1BDQnJaWGx6TG14bGJtZDBhQ0EvSUdOdGNDaHJaWGx6VzJsZExDQnJaWGtwSURvZ01Ta2dQQ0F3SUQ4Z01UWWdPaUF0TVRZN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkVzBnS3owZ1l6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBb1l5QTlJR2tnUENCclpYbHpMbXhsYm1kMGFDQS9JR050Y0NoclpYbHpXMmxkTENCclpYa3BJRG9nTVNrZ1BDQXdJRDhnT0NBNklDMDRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSE4xYlNBclBTQmpPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHa2dLejBnS0dNZ1BTQnBJRHdnYTJWNWN5NXNaVzVuZEdnZ1B5QmpiWEFvYTJWNWMxdHBYU3dnYTJWNUtTQTZJREVwSUR3Z01DQS9JRFFnT2lBdE5EdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2MzVnRJQ3M5SUdNN1hISmNiaUFnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQnBJQ3M5SUNoaklEMGdhU0E4SUd0bGVYTXViR1Z1WjNSb0lEOGdZMjF3S0d0bGVYTmJhVjBzSUd0bGVTa2dPaUF4S1NBOElEQWdQeUF5SURvZ0xUSTdYSEpjYmlBZ0lDQWdJQ0FnSUNCemRXMGdLejBnWXp0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnYVNBclBTQW9ZeUE5SUdrZ1BDQnJaWGx6TG14bGJtZDBhQ0EvSUdOdGNDaHJaWGx6VzJsZExDQnJaWGtwSURvZ01Ta2dQQ0F3SUQ4Z01TQTZJQzB4TzF4eVhHNGdJQ0FnSUNBZ0lHTWdQU0JwSUR3Z2EyVjVjeTVzWlc1bmRHZ2dQeUJqYlhBb2EyVjVjMXRwWFN3Z2EyVjVLU0E2SURFN1hISmNiaUFnSUNBZ0lDQWdjM1Z0SUNzOUlHTTdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHTWdQQ0F3S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FySzJrN1hISmNiaUFnSUNBZ0lDQWdJQ0JqSUQwZ2FTQThJR3RsZVhNdWJHVnVaM1JvSUQ4Z1kyMXdLR3RsZVhOYmFWMHNJR3RsZVNrZ09pQXhPMXh5WEc0Z0lDQWdJQ0FnSUNBZ2MzVnRJQ3M5SUdNN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHpkVzBnSVQwOUlITjFiU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0d0bGVTQTlQVDBnYTJWNUtTQXZMeUJoZENCc1pXRnpkQ0IwYUdVZ2MyVmhjbU5vSUd0bGVTQnBjeUJ1YjNRZ1RtRk9YSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCclpYbHpMbXhsYm1kMGFDQmVJR1poYVd4WWIzSTdYSEpjYmlBZ0lDQWdJQ0FnSUNCbGJITmxYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0lrSlVjbVZsT2lCT1lVNGdkMkZ6SUhWelpXUWdZWE1nWVNCclpYbGNJaWs3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpJRDA5UFNBd0lEOGdhU0E2SUdrZ1hpQm1ZV2xzV0c5eU95b3ZYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUM4dklFeGxZV1lnVG05a1pUb2diV2x6WXlBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWJXbHVTMlY1SUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtdGxlWE5iTUYwN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1V1Y0hKdmRHOTBlWEJsTG0xcGJsQmhhWElnUFNCbWRXNWpkR2x2YmlBb2NtVjFjMlZrUVhKeVlYa3BJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1clpYbHpMbXhsYm1kMGFDQTlQVDBnTUNsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjY2x4dUlDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3dYU0E5SUhSb2FYTXVhMlY1YzFzd1hUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhWelpXUkJjbkpoZVZzeFhTQTlJSFJvYVhNdWRtRnNkV1Z6V3pCZE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWFZ6WldSQmNuSmhlVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVG05a1pTNXdjbTkwYjNSNWNHVXViV0Y0VUdGcGNpQTlJR1oxYm1OMGFXOXVJQ2h5WlhWelpXUkJjbkpoZVNrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbXRsZVhNdWJHVnVaM1JvSUQwOVBTQXdLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCc1lYTjBTVzVrWlhnZ1BTQjBhR2x6TG10bGVYTXViR1Z1WjNSb0lDMGdNVHRjY2x4dUlDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3dYU0E5SUhSb2FYTXVhMlY1YzF0c1lYTjBTVzVrWlhoZE8xeHlYRzRnSUNBZ0lDQWdJSEpsZFhObFpFRnljbUY1V3pGZElEMGdkR2hwY3k1MllXeDFaWE5iYkdGemRFbHVaR1Y0WFR0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVjFjMlZrUVhKeVlYazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdRazV2WkdVdWNISnZkRzkwZVhCbExtTnNiMjVsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQjJJRDBnZEdocGN5NTJZV3gxWlhNN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJDVG05a1pTaDBhR2x6TG10bGVYTXVjMnhwWTJVb01Da3NJSFlnUFQwOUlIVnVaR1ZtVm1Gc2N5QS9JSFlnT2lCMkxuTnNhV05sS0RBcEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdVozSmxaV1I1UTJ4dmJtVWdQU0JtZFc1amRHbHZiaUFvWm05eVkyVXBJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXBjMU5vWVhKbFpDQW1KaUFoWm05eVkyVWdQeUIwYUdseklEb2dkR2hwY3k1amJHOXVaU2dwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxMbkJ5YjNSdmRIbHdaUzVuWlhRZ1BTQm1kVzVqZEdsdmJpQW9hMlY1TENCa1pXWmhkV3gwVm1Gc2RXVXNJSFJ5WldVcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2FTQTlJSFJvYVhNdWFXNWtaWGhQWmloclpYa3NJQzB4TENCMGNtVmxMbDlqYjIxd1lYSmxLVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVNBOElEQWdQeUJrWldaaGRXeDBWbUZzZFdVZ09pQjBhR2x6TG5aaGJIVmxjMXRwWFR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1WjJWMFVHRnBjazl5VG1WNGRFeHZkMlZ5SUQwZ1puVnVZM1JwYjI0Z0tHdGxlU3dnWTI5dGNHRnlaU3dnYVc1amJIVnphWFpsTENCeVpYVnpaV1JCY25KaGVTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnZEdocGN5NXBibVJsZUU5bUtHdGxlU3dnTFRFc0lHTnZiWEJoY21VcE8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcGJtUmxlRTl5VEc5M1pYSWdQU0JwSUR3Z01DQS9JSDVwSUMwZ01TQTZJQ2hwYm1Oc2RYTnBkbVVnUHlCcElEb2dhU0F0SURFcE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNocGJtUmxlRTl5VEc5M1pYSWdQajBnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3dYU0E5SUhSb2FYTXVhMlY1YzF0cGJtUmxlRTl5VEc5M1pYSmRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFZ6WldSQmNuSmhlVnN4WFNBOUlIUm9hWE11ZG1Gc2RXVnpXMmx1WkdWNFQzSk1iM2RsY2wwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhWelpXUkJjbkpoZVR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVG05a1pTNXdjbTkwYjNSNWNHVXVaMlYwVUdGcGNrOXlUbVY0ZEVocFoyaGxjaUE5SUdaMWJtTjBhVzl1SUNoclpYa3NJR052YlhCaGNtVXNJR2x1WTJ4MWMybDJaU3dnY21WMWMyVmtRWEp5WVhrcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2FTQTlJSFJvYVhNdWFXNWtaWGhQWmloclpYa3NJQzB4TENCamIyMXdZWEpsS1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVc1a1pYaFBja3h2ZDJWeUlEMGdhU0E4SURBZ1B5QithU0E2SUNocGJtTnNkWE5wZG1VZ1B5QnBJRG9nYVNBcklERXBPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnJaWGx6SUQwZ2RHaHBjeTVyWlhsek8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNocGJtUmxlRTl5VEc5M1pYSWdQQ0JyWlhsekxteGxibWQwYUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3dYU0E5SUd0bGVYTmJhVzVrWlhoUGNreHZkMlZ5WFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMWMyVmtRWEp5WVhsYk1WMGdQU0IwYUdsekxuWmhiSFZsYzF0cGJtUmxlRTl5VEc5M1pYSmRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVjFjMlZrUVhKeVlYazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1V1Y0hKdmRHOTBlWEJsTG1Ob1pXTnJWbUZzYVdRZ1BTQm1kVzVqZEdsdmJpQW9aR1Z3ZEdnc0lIUnlaV1VzSUdKaGMyVkpibVJsZUNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCclRDQTlJSFJvYVhNdWEyVjVjeTVzWlc1bmRHZ3NJSFpNSUQwZ2RHaHBjeTUyWVd4MVpYTXViR1Z1WjNSb08xeHlYRzRnSUNBZ0lDQWdJR05vWldOcktIUm9hWE11ZG1Gc2RXVnpJRDA5UFNCMWJtUmxabFpoYkhNZ1B5QnJUQ0E4UFNCMlRDQTZJR3RNSUQwOVBTQjJUQ3dnWENKclpYbHpMM1poYkhWbGN5QnNaVzVuZEdnZ2JXbHpiV0YwWTJnNklHUmxjSFJvWENJc0lHUmxjSFJvTENCY0luZHBkR2dnYkdWdVozUm9jMXdpTENCclRDd2dka3dzSUZ3aVlXNWtJR0poYzJWSmJtUmxlRndpTENCaVlYTmxTVzVrWlhncE8xeHlYRzRnSUNBZ0lDQWdJQzh2SUU1dmRHVTZJSGRsSUdSdmJpZDBJR05vWldOcklHWnZjaUJjSW01dlpHVWdkRzl2SUhOdFlXeHNYQ0lnWW1WallYVnpaU0J6YjIxbGRHbHRaWE1nWVNCdWIyUmxYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1kyRnVJR3hsWjJsMGFXMWhkR1ZzZVNCb1lYWmxJSE5wZW1VZ01TNGdWR2hwY3lCdlkyTjFjbk1nYVdZZ2RHaGxjbVVnYVhNZ1lTQmlZWFJqYUNCY2NseHVJQ0FnSUNBZ0lDQXZMeUJrWld4bGRHbHZiaXdnYkdWaGRtbHVaeUJoSUc1dlpHVWdiMllnYzJsNlpTQXhMQ0JoYm1RZ2RHaGxJSE5wWW14cGJtZHpJR0Z5WlNCbWRXeHNJSE52WEhKY2JpQWdJQ0FnSUNBZ0x5OGdhWFFnWTJGdUozUWdZbVVnYldWeVoyVmtJSGRwZEdnZ1lXUnFZV05sYm5RZ2JtOWtaWE11SUVodmQyVjJaWElzSUhSb1pTQndZWEpsYm5RZ2QybHNiRnh5WEc0Z0lDQWdJQ0FnSUM4dklIWmxjbWxtZVNCMGFHRjBJSFJvWlNCaGRtVnlZV2RsSUc1dlpHVWdjMmw2WlNCcGN5QmhkQ0JzWldGemRDQm9ZV3htSUc5bUlIUm9aU0J0WVhocGJYVnRMbHh5WEc0Z0lDQWdJQ0FnSUdOb1pXTnJLR1JsY0hSb0lEMDlJREFnZkh3Z2Ewd2dQaUF3TENCY0ltVnRjSFI1SUd4bFlXWWdZWFFnWkdWd2RHaGNJaXdnWkdWd2RHZ3NJRndpWVc1a0lHSmhjMlZKYm1SbGVGd2lMQ0JpWVhObFNXNWtaWGdwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCclREdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnTHk4Z1RHVmhaaUJPYjJSbE9pQnpaWFFnSmlCdWIyUmxJSE53YkdsMGRHbHVaeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNjbHh1SUNBZ0lFSk9iMlJsTG5CeWIzUnZkSGx3WlM1elpYUWdQU0JtZFc1amRHbHZiaUFvYTJWNUxDQjJZV3gxWlN3Z2IzWmxjbmR5YVhSbExDQjBjbVZsS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdrZ1BTQjBhR2x6TG1sdVpHVjRUMllvYTJWNUxDQXRNU3dnZEhKbFpTNWZZMjl0Y0dGeVpTazdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHa2dQQ0F3S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHdGxlU0JrYjJWeklHNXZkQ0JsZUdsemRDQjVaWFJjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhU0E5SUg1cE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGNtVmxMbDl6YVhwbEt5czdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtdGxlWE11YkdWdVozUm9JRHdnZEhKbFpTNWZiV0Y0VG05a1pWTnBlbVVwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx1YzJWeWRFbHVUR1ZoWmlocExDQnJaWGtzSUhaaGJIVmxMQ0IwY21WbEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklGUm9hWE1nYkdWaFppQnViMlJsSUdseklHWjFiR3dnWVc1a0lHMTFjM1FnYzNCc2FYUmNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdVpYZFNhV2RvZEZOcFlteHBibWNnUFNCMGFHbHpMbk53YkdsMFQyWm1VbWxuYUhSVGFXUmxLQ2tzSUhSaGNtZGxkQ0E5SUhSb2FYTTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FTQStJSFJvYVhNdWEyVjVjeTVzWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJQzA5SUhSb2FYTXVhMlY1Y3k1c1pXNW5kR2c3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR0Z5WjJWMElEMGdibVYzVW1sbmFIUlRhV0pzYVc1bk8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdGeVoyVjBMbWx1YzJWeWRFbHVUR1ZoWmlocExDQnJaWGtzSUhaaGJIVmxMQ0IwY21WbEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGRTYVdkb2RGTnBZbXhwYm1jN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnWld4elpTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRXRsZVNCaGJISmxZV1I1SUdWNGFYTjBjMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYjNabGNuZHlhWFJsSUNFOVBTQm1ZV3h6WlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haaGJIVmxJQ0U5UFNCMWJtUmxabWx1WldRcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXlaV2xtZVZaaGJIVmxjeWdwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdkWE4xWVd4c2VTQjBhR2x6SUdseklHRWdibTh0YjNBc0lHSjFkQ0J6YjIxbElIVnpaWEp6SUcxaGVTQjNhWE5vSUhSdklHVmthWFFnZEdobElHdGxlVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6VzJsZElEMGdhMlY1TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4MVpYTmJhVjBnUFNCMllXeDFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lFSk9iMlJsTG5CeWIzUnZkSGx3WlM1eVpXbG1lVlpoYkhWbGN5QTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTJZV3gxWlhNZ1BUMDlJSFZ1WkdWbVZtRnNjeWxjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZG1Gc2RXVnpJRDBnZEdocGN5NTJZV3gxWlhNdWMyeHBZMlVvTUN3Z2RHaHBjeTVyWlhsekxteGxibWQwYUNrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZG1Gc2RXVnpPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbExuQnliM1J2ZEhsd1pTNXBibk5sY25SSmJreGxZV1lnUFNCbWRXNWpkR2x2YmlBb2FTd2dhMlY1TENCMllXeDFaU3dnZEhKbFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhMlY1Y3k1emNHeHBZMlVvYVN3Z01Dd2dhMlY1S1R0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTJZV3gxWlhNZ1BUMDlJSFZ1WkdWbVZtRnNjeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9kVzVrWldaV1lXeHpMbXhsYm1kMGFDQThJSFJ5WldVdVgyMWhlRTV2WkdWVGFYcGxLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZFc1a1pXWldZV3h6TG5CMWMyZ29kVzVrWldacGJtVmtLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1MllXeDFaWE1nUFNCMWJtUmxabFpoYkhNdWMyeHBZMlVvTUN3Z2RHaHBjeTVyWlhsekxteGxibWQwYUNBdElERXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11ZG1Gc2RXVnpMbk53YkdsalpTaHBMQ0F3TENCMllXeDFaU2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdRazV2WkdVdWNISnZkRzkwZVhCbExuUmhhMlZHY205dFVtbG5hSFFnUFNCbWRXNWpkR2x2YmlBb2NtaHpLU0I3WEhKY2JpQWdJQ0FnSUNBZ0x5OGdVbVZ0YVc1a1pYSTZJSEJoY21WdWRDQnViMlJsSUcxMWMzUWdkWEJrWVhSbElHbDBjeUJqYjNCNUlHOW1JR3RsZVNCbWIzSWdkR2hwY3lCdWIyUmxYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1lYTnpaWEowT2lCdVpXbDBhR1Z5SUc1dlpHVWdhWE1nYzJoaGNtVmtYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1lYTnpaWEowSUhKb2N5NXJaWGx6TG14bGJtZDBhQ0ErSUNodFlYaE9iMlJsVTJsNlpTOHlJQ1ltSUhSb2FYTXVhMlY1Y3k1c1pXNW5kR2c4YldGNFRtOWtaVk5wZW1VcFhISmNiaUFnSUNBZ0lDQWdkbUZ5SUhZZ1BTQjBhR2x6TG5aaGJIVmxjenRjY2x4dUlDQWdJQ0FnSUNCcFppQW9jbWh6TG5aaGJIVmxjeUE5UFQwZ2RXNWtaV1pXWVd4ektTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gySUNFOVBTQjFibVJsWmxaaGJITXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyTG5CMWMyZ29kVzVrWldacGJtVmtLVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhZZ1BTQjBhR2x6TG5KbGFXWjVWbUZzZFdWektDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIWXVjSFZ6YUNoeWFITXVkbUZzZFdWekxuTm9hV1owS0NrcE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCMGFHbHpMbXRsZVhNdWNIVnphQ2h5YUhNdWEyVjVjeTV6YUdsbWRDZ3BLVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVG05a1pTNXdjbTkwYjNSNWNHVXVkR0ZyWlVaeWIyMU1aV1owSUQwZ1puVnVZM1JwYjI0Z0tHeG9jeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDOHZJRkpsYldsdVpHVnlPaUJ3WVhKbGJuUWdibTlrWlNCdGRYTjBJSFZ3WkdGMFpTQnBkSE1nWTI5d2VTQnZaaUJyWlhrZ1ptOXlJSFJvYVhNZ2JtOWtaVnh5WEc0Z0lDQWdJQ0FnSUM4dklHRnpjMlZ5ZERvZ2JtVnBkR2hsY2lCdWIyUmxJR2x6SUhOb1lYSmxaRnh5WEc0Z0lDQWdJQ0FnSUM4dklHRnpjMlZ5ZENCeWFITXVhMlY1Y3k1c1pXNW5kR2dnUGlBb2JXRjRUbTlrWlZOcGVtVXZNaUFtSmlCMGFHbHpMbXRsZVhNdWJHVnVaM1JvUEcxaGVFNXZaR1ZUYVhwbEtWeHlYRzRnSUNBZ0lDQWdJSFpoY2lCMklEMGdkR2hwY3k1MllXeDFaWE03WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR3hvY3k1MllXeDFaWE1nUFQwOUlIVnVaR1ZtVm1Gc2N5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZGlBaFBUMGdkVzVrWldaV1lXeHpLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZGk1MWJuTm9hV1owS0hWdVpHVm1hVzVsWkNrN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJJRDBnZEdocGN5NXlaV2xtZVZaaGJIVmxjeWdwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyTG5WdWMyaHBablFvYkdoekxuWmhiSFZsY3k1d2IzQW9LU2s3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdWEyVjVjeTUxYm5Ob2FXWjBLR3hvY3k1clpYbHpMbkJ2Y0NncEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWMzQnNhWFJQWm1aU2FXZG9kRk5wWkdVZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0x5OGdVbVZ0YVc1a1pYSTZJSEJoY21WdWRDQnViMlJsSUcxMWMzUWdkWEJrWVhSbElHbDBjeUJqYjNCNUlHOW1JR3RsZVNCbWIzSWdkR2hwY3lCdWIyUmxYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHaGhiR1lnUFNCMGFHbHpMbXRsZVhNdWJHVnVaM1JvSUQ0K0lERXNJR3RsZVhNZ1BTQjBhR2x6TG10bGVYTXVjM0JzYVdObEtHaGhiR1lwTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUIyWVd4MVpYTWdQU0IwYUdsekxuWmhiSFZsY3lBOVBUMGdkVzVrWldaV1lXeHpJRDhnZFc1a1pXWldZV3h6SURvZ2RHaHBjeTUyWVd4MVpYTXVjM0JzYVdObEtHaGhiR1lwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRazV2WkdVb2EyVjVjeXdnZG1Gc2RXVnpLVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHlYRzRnSUNBZ0x5OGdUR1ZoWmlCT2IyUmxPaUJ6WTJGdWJtbHVaeUFtSUdSbGJHVjBhVzl1Y3lBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJRUpPYjJSbExuQnliM1J2ZEhsd1pTNW1iM0pTWVc1blpTQTlJR1oxYm1OMGFXOXVJQ2hzYjNjc0lHaHBaMmdzSUdsdVkyeDFaR1ZJYVdkb0xDQmxaR2wwVFc5a1pTd2dkSEpsWlN3Z1kyOTFiblFzSUc5dVJtOTFibVFwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWTIxd0lEMGdkSEpsWlM1ZlkyOXRjR0Z5WlR0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVV4dmR5d2dhVWhwWjJnN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0docFoyZ2dQVDA5SUd4dmR5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdsdVkyeDFaR1ZJYVdkb0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnZkVzUwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwU0dsbmFDQTlJQ2hwVEc5M0lEMGdkR2hwY3k1cGJtUmxlRTltS0d4dmR5d2dMVEVzSUdOdGNDa3BJQ3NnTVR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbE1iM2NnUENBd0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnZkVzUwTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JsYkhObElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FVeHZkeUE5SUhSb2FYTXVhVzVrWlhoUFppaHNiM2NzSURBc0lHTnRjQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xJYVdkb0lEMGdkR2hwY3k1cGJtUmxlRTltS0docFoyZ3NJQzB4TENCamJYQXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVVocFoyZ2dQQ0F3S1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FVaHBaMmdnUFNCK2FVaHBaMmc3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x1WTJ4MVpHVklhV2RvSUQwOVBTQjBjblZsS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FVaHBaMmdyS3p0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHdGxlWE1nUFNCMGFHbHpMbXRsZVhNc0lIWmhiSFZsY3lBOUlIUm9hWE11ZG1Gc2RXVnpPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHZia1p2ZFc1a0lDRTlQU0IxYm1SbFptbHVaV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaDJZWElnYVNBOUlHbE1iM2M3SUdrZ1BDQnBTR2xuYURzZ2FTc3JLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdhMlY1SUQwZ2EyVjVjMXRwWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J2YmtadmRXNWtLR3RsZVN3Z2RtRnNkV1Z6VzJsZExDQmpiM1Z1ZENzcktUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnSVQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsWkdsMFRXOWtaU0E5UFQwZ2RISjFaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hMlY1SUNFOVBTQnJaWGx6VzJsZElIeDhJSFJvYVhNdWFYTlRhR0Z5WldRZ1BUMDlJSFJ5ZFdVcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pDVkhKbFpTQnBiR3hsWjJGc2JIa2dZMmhoYm1kbFpDQnZjaUJqYkc5dVpXUWdhVzRnWldScGRGSmhibWRsWENJcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBMbVJsYkdWMFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVyWlhsekxuTndiR2xqWlNocExDQXhLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuWmhiSFZsY3lBaFBUMGdkVzVrWldaV1lXeHpLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRtRnNkV1Z6TG5Od2JHbGpaU2hwTENBeEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSeVpXVXVYM05wZW1VdExUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrdExUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsSWFXZG9MUzA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2NtVnpkV3gwTG1oaGMwOTNibEJ5YjNCbGNuUjVLQ2QyWVd4MVpTY3BLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlhOYmFWMGdQU0J5WlhOMWJIUXVkbUZzZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxjM1ZzZEM1aWNtVmhheUFoUFQwZ2RXNWtaV1pwYm1Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdWc2MyVmNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOTFiblFnS3owZ2FVaHBaMmdnTFNCcFRHOTNPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYjNWdWREdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaW9nUVdSa2N5QmxiblJwY21VZ1kyOXVkR1Z1ZEhNZ2IyWWdjbWxuYUhRdGFHRnVaQ0J6YVdKc2FXNW5JQ2h5YUhNZ2FYTWdiR1ZtZENCMWJtTm9ZVzVuWldRcElDb3ZYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWJXVnlaMlZUYVdKc2FXNW5JRDBnWm5WdVkzUnBiMjRnS0hKb2N5d2dYeWtnZTF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11YTJWNWN5NXdkWE5vTG1Gd2NHeDVLSFJvYVhNdWEyVjVjeXdnY21oekxtdGxlWE1wTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuWmhiSFZsY3lBOVBUMGdkVzVrWldaV1lXeHpLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeWFITXVkbUZzZFdWeklEMDlQU0IxYm1SbFpsWmhiSE1wWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRtRnNkV1Z6SUQwZ2RHaHBjeTUyWVd4MVpYTXVjMnhwWTJVb01Dd2dkR2hwY3k1clpYbHpMbXhsYm1kMGFDazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11ZG1Gc2RXVnpMbkIxYzJndVlYQndiSGtvZEdocGN5NTJZV3gxWlhNc0lISm9jeTV5WldsbWVWWmhiSFZsY3lncEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQnlaWFIxY200Z1FrNXZaR1U3WEhKY2JuMG9LU2s3WEhKY2JpOHFLaUJKYm5SbGNtNWhiQ0J1YjJSbElDaHViMjR0YkdWaFppQnViMlJsS1NBcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2k5Y2NseHVkbUZ5SUVKT2IyUmxTVzUwWlhKdVlXd2dQU0F2S2lvZ1FHTnNZWE56SUNvdklDaG1kVzVqZEdsdmJpQW9YM04xY0dWeUtTQjdYSEpjYmlBZ0lDQmZYMlY0ZEdWdVpITW9RazV2WkdWSmJuUmxjbTVoYkN3Z1gzTjFjR1Z5S1R0Y2NseHVJQ0FnSUM4cUtseHlYRzRnSUNBZ0lDb2dWR2hwY3lCa2IyVnpJRzV2ZENCdFlYSnJJR0JqYUdsc1pISmxibUFnWVhNZ2MyaGhjbVZrTENCemJ5QnBkQ0JwY3lCMGFHVWdjbVZ6Y0c5dWMybGlhV3hwZEhrZ2IyWWdkR2hsSUdOaGJHeGxjbHh5WEc0Z0lDQWdJQ29nZEc4Z1pXNXpkWEpsSUdOb2FXeGtjbVZ1SUdGeVpTQmxhWFJvWlhJZ2JXRnlhMlZrSUhOb1lYSmxaQ3dnYjNJZ1lYSmxiaWQwSUdsdVkyeDFaR1ZrSUdsdUlHRnViM1JvWlhJZ2RISmxaUzVjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnUWs1dlpHVkpiblJsY201aGJDaGphR2xzWkhKbGJpd2dhMlY1Y3lrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCZmRHaHBjeUE5SUhSb2FYTTdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnJaWGx6S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUd0bGVYTWdQU0JiWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaDJZWElnYVNBOUlEQTdJR2tnUENCamFHbHNaSEpsYmk1c1pXNW5kR2c3SUdrckt5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVhOYmFWMGdQU0JqYUdsc1pISmxibHRwWFM1dFlYaExaWGtvS1R0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnWDNSb2FYTWdQU0JmYzNWd1pYSXVZMkZzYkNoMGFHbHpMQ0JyWlhsektTQjhmQ0IwYUdsek8xeHlYRzRnSUNBZ0lDQWdJRjkwYUdsekxtTm9hV3hrY21WdUlEMGdZMmhwYkdSeVpXNDdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRjkwYUdsek8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1WTJ4dmJtVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdOb2FXeGtjbVZ1SUQwZ2RHaHBjeTVqYUdsc1pISmxiaTV6YkdsalpTZ3dLVHRjY2x4dUlDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCcElEMGdNRHNnYVNBOElHTm9hV3hrY21WdUxteGxibWQwYURzZ2FTc3JLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmphR2xzWkhKbGJsdHBYUzVwYzFOb1lYSmxaQ0E5SUhSeWRXVTdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQ1RtOWtaVWx1ZEdWeWJtRnNLR05vYVd4a2NtVnVMQ0IwYUdsekxtdGxlWE11YzJ4cFkyVW9NQ2twTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxTVzUwWlhKdVlXd3VjSEp2ZEc5MGVYQmxMbWR5WldWa2VVTnNiMjVsSUQwZ1puVnVZM1JwYjI0Z0tHWnZjbU5sS1NCN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhWE5UYUdGeVpXUWdKaVlnSVdadmNtTmxLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjY2x4dUlDQWdJQ0FnSUNCMllYSWdiblVnUFNCdVpYY2dRazV2WkdWSmJuUmxjbTVoYkNoMGFHbHpMbU5vYVd4a2NtVnVMbk5zYVdObEtEQXBMQ0IwYUdsekxtdGxlWE11YzJ4cFkyVW9NQ2twTzF4eVhHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F3T3lCcElEd2diblV1WTJocGJHUnlaVzR1YkdWdVozUm9PeUJwS3lzcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUc1MUxtTm9hV3hrY21WdVcybGRJRDBnYm5VdVkyaHBiR1J5Wlc1YmFWMHVaM0psWldSNVEyeHZibVVvWm05eVkyVXBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaVWx1ZEdWeWJtRnNMbkJ5YjNSdmRIbHdaUzV0YVc1TFpYa2dQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTJocGJHUnlaVzViTUYwdWJXbHVTMlY1S0NrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1YldsdVVHRnBjaUE5SUdaMWJtTjBhVzl1SUNoeVpYVnpaV1JCY25KaGVTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTm9hV3hrY21WdVd6QmRMbTFwYmxCaGFYSW9jbVYxYzJWa1FYSnlZWGtwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxTVzUwWlhKdVlXd3VjSEp2ZEc5MGVYQmxMbTFoZUZCaGFYSWdQU0JtZFc1amRHbHZiaUFvY21WMWMyVmtRWEp5WVhrcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amFHbHNaSEpsYmx0MGFHbHpMbU5vYVd4a2NtVnVMbXhsYm1kMGFDQXRJREZkTG0xaGVGQmhhWElvY21WMWMyVmtRWEp5WVhrcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lFSk9iMlJsU1c1MFpYSnVZV3d1Y0hKdmRHOTBlWEJsTG1kbGRDQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lHUmxabUYxYkhSV1lXeDFaU3dnZEhKbFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnZEdocGN5NXBibVJsZUU5bUtHdGxlU3dnTUN3Z2RISmxaUzVmWTI5dGNHRnlaU2tzSUdOb2FXeGtjbVZ1SUQwZ2RHaHBjeTVqYUdsc1pISmxianRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVNBOElHTm9hV3hrY21WdUxteGxibWQwYUNBL0lHTm9hV3hrY21WdVcybGRMbWRsZENoclpYa3NJR1JsWm1GMWJIUldZV3gxWlN3Z2RISmxaU2tnT2lCMWJtUmxabWx1WldRN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1WjJWMFVHRnBjazl5VG1WNGRFeHZkMlZ5SUQwZ1puVnVZM1JwYjI0Z0tHdGxlU3dnWTI5dGNHRnlaU3dnYVc1amJIVnphWFpsTENCeVpYVnpaV1JCY25KaGVTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnZEdocGN5NXBibVJsZUU5bUtHdGxlU3dnTUN3Z1kyOXRjR0Z5WlNrc0lHTm9hV3hrY21WdUlEMGdkR2hwY3k1amFHbHNaSEpsYmp0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYVNBK1BTQmphR2xzWkhKbGJpNXNaVzVuZEdncFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtMWhlRkJoYVhJb2NtVjFjMlZrUVhKeVlYa3BPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQmphR2xzWkhKbGJsdHBYUzVuWlhSUVlXbHlUM0pPWlhoMFRHOTNaWElvYTJWNUxDQmpiMjF3WVhKbExDQnBibU5zZFhOcGRtVXNJSEpsZFhObFpFRnljbUY1S1R0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdhU0ErSURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOb2FXeGtjbVZ1VzJrZ0xTQXhYUzV0WVhoUVlXbHlLSEpsZFhObFpFRnljbUY1S1R0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlVsdWRHVnlibUZzTG5CeWIzUnZkSGx3WlM1blpYUlFZV2x5VDNKT1pYaDBTR2xuYUdWeUlEMGdablZ1WTNScGIyNGdLR3RsZVN3Z1kyOXRjR0Z5WlN3Z2FXNWpiSFZ6YVhabExDQnlaWFZ6WldSQmNuSmhlU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJwSUQwZ2RHaHBjeTVwYm1SbGVFOW1LR3RsZVN3Z01Dd2dZMjl0Y0dGeVpTa3NJR05vYVd4a2NtVnVJRDBnZEdocGN5NWphR2xzWkhKbGJpd2diR1Z1WjNSb0lEMGdZMmhwYkdSeVpXNHViR1Z1WjNSb08xeHlYRzRnSUNBZ0lDQWdJR2xtSUNocElENDlJR3hsYm1kMGFDbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnWTJocGJHUnlaVzViYVYwdVoyVjBVR0ZwY2s5eVRtVjRkRWhwWjJobGNpaHJaWGtzSUdOdmJYQmhjbVVzSUdsdVkyeDFjMmwyWlN3Z2NtVjFjMlZrUVhKeVlYa3BPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ1BUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCcElEd2diR1Z1WjNSb0lDMGdNU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMmhwYkdSeVpXNWJhU0FySURGZExtMXBibEJoYVhJb2NtVjFjMlZrUVhKeVlYa3BPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxTVzUwWlhKdVlXd3VjSEp2ZEc5MGVYQmxMbU5vWldOclZtRnNhV1FnUFNCbWRXNWpkR2x2YmlBb1pHVndkR2dzSUhSeVpXVXNJR0poYzJWSmJtUmxlQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJyVENBOUlIUm9hWE11YTJWNWN5NXNaVzVuZEdnc0lHTk1JRDBnZEdocGN5NWphR2xzWkhKbGJpNXNaVzVuZEdnN1hISmNiaUFnSUNBZ0lDQWdZMmhsWTJzb2Ewd2dQVDA5SUdOTUxDQmNJbXRsZVhNdlkyaHBiR1J5Wlc0Z2JHVnVaM1JvSUcxcGMyMWhkR05vT2lCa1pYQjBhRndpTENCa1pYQjBhQ3dnWENKc1pXNW5kR2h6WENJc0lHdE1MQ0JqVEN3Z1hDSmlZWE5sU1c1a1pYaGNJaXdnWW1GelpVbHVaR1Y0S1R0Y2NseHVJQ0FnSUNBZ0lDQmphR1ZqYXloclRDQStJREVnZkh3Z1pHVndkR2dnUGlBd0xDQmNJbWx1ZEdWeWJtRnNJRzV2WkdVZ2FHRnpJR3hsYm1kMGFGd2lMQ0JyVEN3Z1hDSmhkQ0JrWlhCMGFGd2lMQ0JrWlhCMGFDd2dYQ0ppWVhObFNXNWtaWGhjSWl3Z1ltRnpaVWx1WkdWNEtUdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2MybDZaU0E5SURBc0lHTWdQU0IwYUdsekxtTm9hV3hrY21WdUxDQnJJRDBnZEdocGN5NXJaWGx6TENCamFHbHNaRk5wZW1VZ1BTQXdPMXh5WEc0Z0lDQWdJQ0FnSUdadmNpQW9kbUZ5SUdrZ1BTQXdPeUJwSUR3Z1kwdzdJR2tyS3lrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCemFYcGxJQ3M5SUdOYmFWMHVZMmhsWTJ0V1lXeHBaQ2hrWlhCMGFDQXJJREVzSUhSeVpXVXNJR0poYzJWSmJtUmxlQ0FySUhOcGVtVXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmphR2xzWkZOcGVtVWdLejBnWTF0cFhTNXJaWGx6TG14bGJtZDBhRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMmhsWTJzb2MybDZaU0ErUFNCamFHbHNaRk5wZW1Vc0lGd2lkM1JtWENJc0lHSmhjMlZKYm1SbGVDazdJQzh2SUc1dklIZGhlU0IwYUdseklIZHBiR3dnWlhabGNpQm1ZV2xzWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR05vWldOcktHa2dQVDA5SURBZ2ZId2dZMXRwSUMwZ01WMHVZMjl1YzNSeWRXTjBiM0lnUFQwOUlHTmJhVjB1WTI5dWMzUnlkV04wYjNJc0lGd2lkSGx3WlNCdGFYTnRZWFJqYUN3Z1ltRnpaVWx1WkdWNE9sd2lMQ0JpWVhObFNXNWtaWGdwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kxdHBYUzV0WVhoTFpYa29LU0FoUFNCclcybGRLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJobFkyc29abUZzYzJVc0lGd2lhMlY1YzF0Y0lpd2dhU3dnWENKZElEMWNJaXdnYTF0cFhTd2dYQ0pwY3lCM2NtOXVaeXdnYzJodmRXeGtJR0psSUZ3aUxDQmpXMmxkTG0xaGVFdGxlU2dwTENCY0ltRjBJR1JsY0hSb1hDSXNJR1JsY0hSb0xDQmNJbUpoYzJWSmJtUmxlRndpTENCaVlYTmxTVzVrWlhncE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JU2hwSUQwOVBTQXdJSHg4SUhSeVpXVXVYMk52YlhCaGNtVW9hMXRwSUMwZ01WMHNJR3RiYVYwcElEd2dNQ2twWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamFHVmpheWhtWVd4elpTd2dYQ0p6YjNKMElIWnBiMnhoZEdsdmJpQmhkQ0JrWlhCMGFGd2lMQ0JrWlhCMGFDd2dYQ0pwYm1SbGVGd2lMQ0JwTENCY0ltdGxlWE5jSWl3Z2ExdHBJQzBnTVYwc0lHdGJhVjBwTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0F2THlBeU1ESXdMekE0T2lCQ1ZISmxaU0JrYjJWemJpZDBJR0ZzZDJGNWN5QmhkbTlwWkNCbmNtOXpjMng1SUhWdVpHVnljMmw2WldRZ2JtOWtaWE1zWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZblYwSUVGR1FVbExJSE4xWTJnZ2JtOWtaWE1nWVhKbElIQnlaWFIwZVNCb1lYSnRiR1Z6Y3l3Z2MyOGdZV05qWlhCMElIUm9aVzB1WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSFJ2YjJabGR5QTlJR05vYVd4a1UybDZaU0E5UFQwZ01Ec2dMeThnWTJocGJHUlRhWHBsSUR3Z0tIUnlaV1V1YldGNFRtOWtaVk5wZW1VZ1BqNGdNU2txWTB3N1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hSdmIyWmxkeUI4ZkNCamFHbHNaRk5wZW1VZ1BpQjBjbVZsTG0xaGVFNXZaR1ZUYVhwbElDb2dZMHdwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR05vWldOcktHWmhiSE5sTENCMGIyOW1aWGNnUHlCY0luUnZieUJtWlhkY0lpQTZJRndpZEc5dklHMWhibmxjSWl3Z1hDSmphR2xzWkhKbGJpQW9YQ0lzSUdOb2FXeGtVMmw2WlN3Z2MybDZaU3dnWENJcElHRjBJR1JsY0hSb1hDSXNJR1JsY0hSb0xDQmNJbTFoZUU1dlpHVlRhWHBsT2x3aUxDQjBjbVZsTG0xaGVFNXZaR1ZUYVhwbExDQmNJbU5vYVd4a2NtVnVMbXhsYm1kMGFEcGNJaXdnWTB3c0lGd2lZbUZ6WlVsdVpHVjRPbHdpTENCaVlYTmxTVzVrWlhncE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnphWHBsTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYSEpjYmlBZ0lDQXZMeUJKYm5SbGNtNWhiQ0JPYjJSbE9pQnpaWFFnSmlCdWIyUmxJSE53YkdsMGRHbHVaeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXVjMlYwSUQwZ1puVnVZM1JwYjI0Z0tHdGxlU3dnZG1Gc2RXVXNJRzkyWlhKM2NtbDBaU3dnZEhKbFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmpJRDBnZEdocGN5NWphR2xzWkhKbGJpd2diV0Y0SUQwZ2RISmxaUzVmYldGNFRtOWtaVk5wZW1Vc0lHTnRjQ0E5SUhSeVpXVXVYMk52YlhCaGNtVTdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHa2dQU0JOWVhSb0xtMXBiaWgwYUdsekxtbHVaR1Y0VDJZb2EyVjVMQ0F3TENCamJYQXBMQ0JqTG14bGJtZDBhQ0F0SURFcExDQmphR2xzWkNBOUlHTmJhVjA3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR05vYVd4a0xtbHpVMmhoY21Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCalcybGRJRDBnWTJocGJHUWdQU0JqYUdsc1pDNWpiRzl1WlNncE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNoamFHbHNaQzVyWlhsekxteGxibWQwYUNBK1BTQnRZWGdwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1kyaHBiR1FnYVhNZ1puVnNiRHNnYVc1elpYSjBhVzVuSUdGdWVYUm9hVzVuSUdWc2MyVWdkMmxzYkNCallYVnpaU0JoSUhOd2JHbDBMbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJUYUdsbWRHbHVaeUJoYmlCcGRHVnRJSFJ2SUhSb1pTQnNaV1owSUc5eUlISnBaMmgwSUhOcFlteHBibWNnYldGNUlHRjJiMmxrSUdFZ2MzQnNhWFF1WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZkbElHTmhiaUJrYnlCaElITm9hV1owSUdsbUlIUm9aU0JoWkdwaFkyVnVkQ0J1YjJSbElHbHpJRzV2ZENCbWRXeHNJR0Z1WkNCcFppQjBhR1ZjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWTNWeWNtVnVkQ0JyWlhrZ1kyRnVJSE4wYVd4c0lHSmxJSEJzWVdObFpDQnBiaUIwYUdVZ2MyRnRaU0J1YjJSbElHRm1kR1Z5SUhSb1pTQnphR2xtZEM1Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHOTBhR1Z5TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FTQStJREFnSmlZZ0tHOTBhR1Z5SUQwZ1kxdHBJQzBnTVYwcExtdGxlWE11YkdWdVozUm9JRHdnYldGNElDWW1JR050Y0NoamFHbHNaQzVyWlhseld6QmRMQ0JyWlhrcElEd2dNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzkwYUdWeUxtbHpVMmhoY21Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOYmFTQXRJREZkSUQwZ2IzUm9aWElnUFNCdmRHaGxjaTVqYkc5dVpTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNSb1pYSXVkR0ZyWlVaeWIyMVNhV2RvZENoamFHbHNaQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbXRsZVhOYmFTQXRJREZkSUQwZ2IzUm9aWEl1YldGNFMyVjVLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9LRzkwYUdWeUlEMGdZMXRwSUNzZ01WMHBJQ0U5UFNCMWJtUmxabWx1WldRZ0ppWWdiM1JvWlhJdWEyVjVjeTVzWlc1bmRHZ2dQQ0J0WVhnZ0ppWWdZMjF3S0dOb2FXeGtMbTFoZUV0bGVTZ3BMQ0JyWlhrcElEd2dNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzkwYUdWeUxtbHpVMmhoY21Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOYmFTQXJJREZkSUQwZ2IzUm9aWElnUFNCdmRHaGxjaTVqYkc5dVpTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNSb1pYSXVkR0ZyWlVaeWIyMU1aV1owS0dOb2FXeGtLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhMlY1YzF0cFhTQTlJR05iYVYwdWJXRjRTMlY1S0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHTm9hV3hrTG5ObGRDaHJaWGtzSUhaaGJIVmxMQ0J2ZG1WeWQzSnBkR1VzSUhSeVpXVXBPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ1BUMDlJR1poYkhObEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6VzJsZElEMGdZMmhwYkdRdWJXRjRTMlY1S0NrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hKbGMzVnNkQ0E5UFQwZ2RISjFaU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEhKY2JpQWdJQ0FnSUNBZ0x5OGdWR2hsSUdOb2FXeGtJR2hoY3lCemNHeHBkQ0JoYm1RZ1lISmxjM1ZzZEdBZ2FYTWdZU0J1WlhjZ2NtbG5hSFFnWTJocGJHUXVMaTRnWkc5bGN5QnBkQ0JtYVhRL1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhMlY1Y3k1c1pXNW5kR2dnUENCdFlYZ3BJSHNnTHk4Z2VXVnpYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc1elpYSjBLR2tnS3lBeExDQnlaWE4xYkhRcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3SUM4dklHNXZMQ0IzWlNCdGRYTjBJSE53YkdsMElHRnNjMjljY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUc1bGQxSnBaMmgwVTJsaWJHbHVaeUE5SUhSb2FYTXVjM0JzYVhSUFptWlNhV2RvZEZOcFpHVW9LU3dnZEdGeVoyVjBJRDBnZEdocGN6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR050Y0NoeVpYTjFiSFF1YldGNFMyVjVLQ2tzSUhSb2FYTXViV0Y0UzJWNUtDa3BJRDRnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR0Z5WjJWMElEMGdibVYzVW1sbmFIUlRhV0pzYVc1bk8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0F0UFNCMGFHbHpMbXRsZVhNdWJHVnVaM1JvTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJoY21kbGRDNXBibk5sY25Rb2FTQXJJREVzSUhKbGMzVnNkQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGRTYVdkb2RGTnBZbXhwYm1jN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2x4eVhHNGdJQ0FnSUNvZ1NXNXpaWEowY3lCZ1kyaHBiR1JnSUdGMElHbHVaR1Y0SUdCcFlDNWNjbHh1SUNBZ0lDQXFJRlJvYVhNZ1pHOWxjeUJ1YjNRZ2JXRnlheUJnWTJocGJHUmdJR0Z6SUhOb1lYSmxaQ3dnYzI4Z2FYUWdhWE1nZEdobElISmxjM0J2Ym5OcFltbHNhWFI1SUc5bUlIUm9aU0JqWVd4c1pYSmNjbHh1SUNBZ0lDQXFJSFJ2SUdWdWMzVnlaU0IwYUdGMElHVnBkR2hsY2lCamFHbHNaQ0JwY3lCdFlYSnJaV1FnYzJoaGNtVmtMQ0J2Y2lCcGRDQnBjeUJ1YjNRZ2FXNWpiSFZrWldRZ2FXNGdZVzV2ZEdobGNpQjBjbVZsTGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1RtOWtaVWx1ZEdWeWJtRnNMbkJ5YjNSdmRIbHdaUzVwYm5ObGNuUWdQU0JtZFc1amRHbHZiaUFvYVN3Z1kyaHBiR1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TG1Ob2FXeGtjbVZ1TG5Od2JHbGpaU2hwTENBd0xDQmphR2xzWkNrN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1clpYbHpMbk53YkdsalpTaHBMQ0F3TENCamFHbHNaQzV0WVhoTFpYa29LU2s3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcVhISmNiaUFnSUNBZ0tpQlRjR3hwZENCMGFHbHpJRzV2WkdVdVhISmNiaUFnSUNBZ0tpQk5iMlJwWm1sbGN5QjBhR2x6SUhSdklISmxiVzkyWlNCMGFHVWdjMlZqYjI1a0lHaGhiR1lnYjJZZ2RHaGxJR2wwWlcxekxDQnlaWFIxY201cGJtY2dZU0J6WlhCaGNtRjBaU0J1YjJSbElHTnZiblJoYVc1cGJtY2dkR2hsYlM1Y2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1YzNCc2FYUlBabVpTYVdkb2RGTnBaR1VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1lYTnpaWEowSUNGMGFHbHpMbWx6VTJoaGNtVmtPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQm9ZV3htSUQwZ2RHaHBjeTVqYUdsc1pISmxiaTVzWlc1bmRHZ2dQajRnTVR0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRUpPYjJSbFNXNTBaWEp1WVd3b2RHaHBjeTVqYUdsc1pISmxiaTV6Y0d4cFkyVW9hR0ZzWmlrc0lIUm9hWE11YTJWNWN5NXpjR3hwWTJVb2FHRnNaaWtwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxTVzUwWlhKdVlXd3VjSEp2ZEc5MGVYQmxMblJoYTJWR2NtOXRVbWxuYUhRZ1BTQm1kVzVqZEdsdmJpQW9jbWh6S1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnVW1WdGFXNWtaWEk2SUhCaGNtVnVkQ0J1YjJSbElHMTFjM1FnZFhCa1lYUmxJR2wwY3lCamIzQjVJRzltSUd0bGVTQm1iM0lnZEdocGN5QnViMlJsWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZWE56WlhKME9pQnVaV2wwYUdWeUlHNXZaR1VnYVhNZ2MyaGhjbVZrWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZWE56WlhKMElISm9jeTVyWlhsekxteGxibWQwYUNBK0lDaHRZWGhPYjJSbFUybDZaUzh5SUNZbUlIUm9hWE11YTJWNWN5NXNaVzVuZEdnOGJXRjRUbTlrWlZOcGVtVXBYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6TG5CMWMyZ29jbWh6TG10bGVYTXVjMmhwWm5Rb0tTazdYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NWphR2xzWkhKbGJpNXdkWE5vS0hKb2N5NWphR2xzWkhKbGJpNXphR2xtZENncEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlVsdWRHVnlibUZzTG5CeWIzUnZkSGx3WlM1MFlXdGxSbkp2YlV4bFpuUWdQU0JtZFc1amRHbHZiaUFvYkdoektTQjdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1VtVnRhVzVrWlhJNklIQmhjbVZ1ZENCdWIyUmxJRzExYzNRZ2RYQmtZWFJsSUdsMGN5QmpiM0I1SUc5bUlHdGxlU0JtYjNJZ2RHaHBjeUJ1YjJSbFhISmNiaUFnSUNBZ0lDQWdMeThnWVhOelpYSjBPaUJ1WldsMGFHVnlJRzV2WkdVZ2FYTWdjMmhoY21Wa1hISmNiaUFnSUNBZ0lDQWdMeThnWVhOelpYSjBJSEpvY3k1clpYbHpMbXhsYm1kMGFDQStJQ2h0WVhoT2IyUmxVMmw2WlM4eUlDWW1JSFJvYVhNdWEyVjVjeTVzWlc1bmRHZzhiV0Y0VG05a1pWTnBlbVVwWEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVyWlhsekxuVnVjMmhwWm5Rb2JHaHpMbXRsZVhNdWNHOXdLQ2twTzF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WTJocGJHUnlaVzR1ZFc1emFHbG1kQ2hzYUhNdVkyaHBiR1J5Wlc0dWNHOXdLQ2twTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYSEpjYmlBZ0lDQXZMeUJKYm5SbGNtNWhiQ0JPYjJSbE9pQnpZMkZ1Ym1sdVp5QW1JR1JsYkdWMGFXOXVjeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnTHk4Z1RtOTBaVG9nWUdOdmRXNTBZQ0JwY3lCMGFHVWdibVY0ZENCMllXeDFaU0J2WmlCMGFHVWdkR2hwY21RZ1lYSm5kVzFsYm5RZ2RHOGdZRzl1Um05MWJtUmdMaUJjY2x4dUlDQWdJQzh2SUNBZ0lDQWdJRUVnYkdWaFppQnViMlJsSjNNZ1lHWnZjbEpoYm1kbFlDQm1kVzVqZEdsdmJpQnlaWFIxY201eklHRWdibVYzSUhaaGJIVmxJR1p2Y2lCMGFHbHpJR052ZFc1MFpYSXNYSEpjYmlBZ0lDQXZMeUFnSUNBZ0lDQjFibXhsYzNNZ2RHaGxJRzl3WlhKaGRHbHZiaUJwY3lCMGJ5QnpkRzl3SUdWaGNteDVMbHh5WEc0Z0lDQWdRazV2WkdWSmJuUmxjbTVoYkM1d2NtOTBiM1I1Y0dVdVptOXlVbUZ1WjJVZ1BTQm1kVzVqZEdsdmJpQW9iRzkzTENCb2FXZG9MQ0JwYm1Oc2RXUmxTR2xuYUN3Z1pXUnBkRTF2WkdVc0lIUnlaV1VzSUdOdmRXNTBMQ0J2YmtadmRXNWtLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR050Y0NBOUlIUnlaV1V1WDJOdmJYQmhjbVU3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR3RsZVhNZ1BTQjBhR2x6TG10bGVYTXNJR05vYVd4a2NtVnVJRDBnZEdocGN5NWphR2xzWkhKbGJqdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2FVeHZkeUE5SUhSb2FYTXVhVzVrWlhoUFppaHNiM2NzSURBc0lHTnRjQ2tzSUdrZ1BTQnBURzkzTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJwU0dsbmFDQTlJRTFoZEdndWJXbHVLR2hwWjJnZ1BUMDlJR3h2ZHlBL0lHbE1iM2NnT2lCMGFHbHpMbWx1WkdWNFQyWW9hR2xuYUN3Z01Dd2dZMjF3S1N3Z2EyVjVjeTVzWlc1bmRHZ2dMU0F4S1R0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvSVdWa2FYUk5iMlJsS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGTnBiWEJzWlNCallYTmxYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvT3lCcElEdzlJR2xJYVdkb095QnBLeXNwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JqYUdsc1pISmxibHRwWFM1bWIzSlNZVzVuWlNoc2IzY3NJR2hwWjJnc0lHbHVZMngxWkdWSWFXZG9MQ0JsWkdsMFRXOWtaU3dnZEhKbFpTd2dZMjkxYm5Rc0lHOXVSbTkxYm1RcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJ5WlhOMWJIUWdJVDA5SUNkdWRXMWlaWEluS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiM1Z1ZENBOUlISmxjM1ZzZER0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwSUR3OUlHbElhV2RvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSeWVTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tEc2dhU0E4UFNCcFNHbG5hRHNnYVNzcktTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05vYVd4a2NtVnVXMmxkTG1selUyaGhjbVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamFHbHNaSEpsYmx0cFhTQTlJR05vYVd4a2NtVnVXMmxkTG1Oc2IyNWxLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUdOb2FXeGtjbVZ1VzJsZExtWnZjbEpoYm1kbEtHeHZkeXdnYUdsbmFDd2dhVzVqYkhWa1pVaHBaMmdzSUdWa2FYUk5iMlJsTENCMGNtVmxMQ0JqYjNWdWRDd2diMjVHYjNWdVpDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdUbTkwWlRvZ2FXWWdZMmhwYkdSeVpXNWJhVjBnYVhNZ1pXMXdkSGtnZEdobGJpQnJaWGx6VzJsZFBYVnVaR1ZtYVc1bFpDNWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QWdJQ0FnSUNCVWFHbHpJR2x6SUdGdUlHbHVkbUZzYVdRZ2MzUmhkR1VzSUdKMWRDQnBkQ0JwY3lCbWFYaGxaQ0JpWld4dmR5NWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCclpYbHpXMmxkSUQwZ1kyaHBiR1J5Wlc1YmFWMHViV0Y0UzJWNUtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnlaWE4xYkhRZ0lUMDlJQ2R1ZFcxaVpYSW5LVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmRXNTBJRDBnY21WemRXeDBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1pwYm1Gc2JIa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1JHVnNaWFJwYjI1eklHMWhlU0JvWVhabElHOWpZM1Z5Y21Wa0xDQnpieUJzYjI5cklHWnZjaUJ2Y0hCdmNuUjFibWwwYVdWeklIUnZJRzFsY21kbElHNXZaR1Z6TGx4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR2hoYkdZZ1BTQjBjbVZsTGw5dFlYaE9iMlJsVTJsNlpTQStQaUF4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2xNYjNjZ1BpQXdLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbE1iM2N0TFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYVNBOUlHbElhV2RvT3lCcElENDlJR2xNYjNjN0lHa3RMU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamFHbHNaSEpsYmx0cFhTNXJaWGx6TG14bGJtZDBhQ0E4UFNCb1lXeG1LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGphR2xzWkhKbGJsdHBYUzVyWlhsekxteGxibWQwYUNBaFBUMGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1MGNubE5aWEpuWlNocExDQjBjbVZsTGw5dFlYaE9iMlJsVTJsNlpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdJQzh2SUdOb2FXeGtJR2x6SUdWdGNIUjVJU0JrWld4bGRHVWdhWFFoWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGx6TG5Od2JHbGpaU2hwTENBeEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOb2FXeGtjbVZ1TG5Od2JHbGpaU2hwTENBeEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGphR2xzWkhKbGJpNXNaVzVuZEdnZ0lUMDlJREFnSmlZZ1kyaHBiR1J5Wlc1Yk1GMHVhMlY1Y3k1c1pXNW5kR2dnUFQwOUlEQXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyaGxZMnNvWm1Gc2MyVXNJRndpWlcxd2RHbHVaWE56SUdKMVoxd2lLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOTFiblE3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlFMWxjbWRsY3lCamFHbHNaQ0JwSUhkcGRHZ2dZMmhwYkdRZ2FTc3hJR2xtSUhSb1pXbHlJR052YldKcGJtVmtJSE5wZW1VZ2FYTWdibTkwSUhSdmJ5QnNZWEpuWlNBcUwxeHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1ZEhKNVRXVnlaMlVnUFNCbWRXNWpkR2x2YmlBb2FTd2diV0Y0VTJsNlpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmphR2xzWkhKbGJpQTlJSFJvYVhNdVkyaHBiR1J5Wlc0N1hISmNiaUFnSUNBZ0lDQWdhV1lnS0drZ1BqMGdNQ0FtSmlCcElDc2dNU0E4SUdOb2FXeGtjbVZ1TG14bGJtZDBhQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyaHBiR1J5Wlc1YmFWMHVhMlY1Y3k1c1pXNW5kR2dnS3lCamFHbHNaSEpsYmx0cElDc2dNVjB1YTJWNWN5NXNaVzVuZEdnZ1BEMGdiV0Y0VTJsNlpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTm9hV3hrY21WdVcybGRMbWx6VTJoaGNtVmtLU0F2THlCamJHOXVaV1FnWVd4eVpXRmtlU0JWVGt4RlUxTWdhU0JwY3lCdmRYUnphV1JsSUhOallXNGdjbUZ1WjJWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUdsc1pISmxibHRwWFNBOUlHTm9hV3hrY21WdVcybGRMbU5zYjI1bEtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUdsc1pISmxibHRwWFM1dFpYSm5aVk5wWW14cGJtY29ZMmhwYkdSeVpXNWJhU0FySURGZExDQnRZWGhUYVhwbEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vYVd4a2NtVnVMbk53YkdsalpTaHBJQ3NnTVN3Z01TazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtdGxlWE11YzNCc2FXTmxLR2tnS3lBeExDQXhLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhMlY1YzF0cFhTQTlJR05vYVd4a2NtVnVXMmxkTG0xaGVFdGxlU2dwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2x4eVhHNGdJQ0FnSUNvZ1RXOTJaU0JqYUdsc1pISmxiaUJtY205dElHQnlhSE5nSUdsdWRHOGdkR2hwY3k1Y2NseHVJQ0FnSUNBcUlHQnlhSE5nSUcxMWMzUWdZbVVnY0dGeWRDQnZaaUIwYUdseklIUnlaV1VzSUdGdVpDQmlaU0J5WlcxdmRtVmtJR1p5YjIwZ2FYUWdZV1owWlhJZ2RHaHBjeUJqWVd4c1hISmNiaUFnSUNBZ0tpQW9iM1JvWlhKM2FYTmxJR2x6VTJoaGNtVmtJR1p2Y2lCcGRITWdZMmhwYkdSeVpXNGdZMjkxYkdRZ1ltVWdhVzVqYjNKeVpXTjBLUzVjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXViV1Z5WjJWVGFXSnNhVzVuSUQwZ1puVnVZM1JwYjI0Z0tISm9jeXdnYldGNFRtOWtaVk5wZW1VcElIdGNjbHh1SUNBZ0lDQWdJQ0F2THlCaGMzTmxjblFnSVhSb2FYTXVhWE5UYUdGeVpXUTdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHOXNaRXhsYm1kMGFDQTlJSFJvYVhNdWEyVjVjeTVzWlc1bmRHZzdYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6TG5CMWMyZ3VZWEJ3Ykhrb2RHaHBjeTVyWlhsekxDQnlhSE11YTJWNWN5azdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISm9jME5vYVd4a2NtVnVJRDBnY21oekxtTm9hV3hrY21WdU8xeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdVkyaHBiR1J5Wlc0dWNIVnphQzVoY0hCc2VTaDBhR2x6TG1Ob2FXeGtjbVZ1TENCeWFITkRhR2xzWkhKbGJpazdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tISm9jeTVwYzFOb1lYSmxaQ0FtSmlBaGRHaHBjeTVwYzFOb1lYSmxaQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCQmJHd2dZMmhwYkdSeVpXNGdiMllnWVNCemFHRnlaV1FnYm05a1pTQmhjbVVnYVcxd2JHbGphWFJzZVNCemFHRnlaV1FzSUdGdVpDQnphVzVqWlNCMGFHVnBjaUJ1WlhkY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2NHRnlaVzUwSUdseklHNXZkQ0J6YUdGeVpXUXNJSFJvWlhrZ2JYVnpkQ0J1YjNjZ1ltVWdaWGh3YkdsamFYUnNlU0J0WVhKclpXUWdZWE1nYzJoaGNtVmtMbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTURzZ2FTQThJSEpvYzBOb2FXeGtjbVZ1TG14bGJtZDBhRHNnYVNzcktWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbWh6UTJocGJHUnlaVzViYVYwdWFYTlRhR0Z5WldRZ1BTQjBjblZsTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0F2THlCSlppQnZkWElnWTJocGJHUnlaVzRnWVhKbElIUm9aVzF6Wld4MlpYTWdZV3h0YjNOMElHVnRjSFI1SUdSMVpTQjBieUJoSUcxaGMzTXRaR1ZzWlhSbExGeHlYRzRnSUNBZ0lDQWdJQzh2SUhSb1pYa2diV0Y1SUc1bFpXUWdkRzhnWW1VZ2JXVnlaMlZrSUhSdmJ5QW9ZblYwSUc5dWJIa2dkR2hsSUc5c1pFeGxibWQwYUMweElHRnVaQ0JwZEhOY2NseHVJQ0FnSUNBZ0lDQXZMeUJ5YVdkb2RDQnphV0pzYVc1bklITm9iM1ZzWkNCdVpXVmtJSFJvYVhNcExseHlYRzRnSUNBZ0lDQWdJSFJvYVhNdWRISjVUV1Z5WjJVb2IyeGtUR1Z1WjNSb0lDMGdNU3dnYldGNFRtOWtaVk5wZW1VcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCQ1RtOWtaVWx1ZEdWeWJtRnNPMXh5WEc1OUtFSk9iMlJsS1NrN1hISmNiaTh2SUU5d2RHbHRhWHBoZEdsdmJqb2dkR2hwY3lCaGNuSmhlU0J2WmlCZ2RXNWtaV1pwYm1Wa1lITWdhWE1nZFhObFpDQnBibk4wWldGa0lHOW1JR0VnYm05eWJXRnNYSEpjYmk4dklHRnljbUY1SUc5bUlIWmhiSFZsY3lCcGJpQnViMlJsY3lCM2FHVnlaU0JnZFc1a1pXWnBibVZrWUNCcGN5QjBhR1VnYjI1c2VTQjJZV3gxWlM1Y2NseHVMeThnU1hSeklHeGxibWQwYUNCcGN5QmxlSFJsYm1SbFpDQjBieUJ0WVhnZ2JtOWtaU0J6YVhwbElHOXVJR1pwY25OMElIVnpaVHNnYzJsdVkyVWdhWFFnWTJGdVhISmNiaTh2SUdKbElITm9ZWEpsWkNCaVpYUjNaV1Z1SUhSeVpXVnpJSGRwZEdnZ1pHbG1abVZ5Wlc1MElHMWhlR2x0ZFcxekxDQnBkSE1nYkdWdVozUm9JR05oYmlCdmJteDVYSEpjYmk4dklHbHVZM0psWVhObExDQnVaWFpsY2lCa1pXTnlaV0Z6WlM0Z1NYUnpJSFI1Y0dVZ2MyaHZkV3hrSUdKbElIVnVaR1ZtYVc1bFpGdGRJR0oxZENCemRISmhibWRsYkhsY2NseHVMeThnVkhsd1pWTmpjbWx3ZENCM2IyNG5kQ0JoYkd4dmR5QjBhR1VnWTI5dGNHRnlhWE52YmlCV1cxMGdQVDA5SUhWdVpHVm1hVzVsWkZ0ZExpQlVieUJ3Y21WMlpXNTBYSEpjYmk4dklIVnpaWEp6SUdaeWIyMGdiV0ZyYVc1bklIUm9hWE1nWVhKeVlYa2dkRzl2SUd4aGNtZGxMQ0JDVkhKbFpTQm9ZWE1nWVNCdFlYaHBiWFZ0SUc1dlpHVWdjMmw2WlM1Y2NseHVMeTljY2x4dUx5OGdSa0ZST2lCMWJtUmxabFpoYkhOYmFWMGdhWE1nWVd4eVpXRmtlU0IxYm1SbFptbHVaV1FzSUhOdklIZG9lU0JwYm1OeVpXRnpaU0IwYUdVZ1lYSnlZWGtnYzJsNlpUOWNjbHh1THk4Z1VtVmhaR2x1WnlCdmRYUnphV1JsSUhSb1pTQmliM1Z1WkhNZ2IyWWdZVzRnWVhKeVlYa2dhWE1nY21Wc1lYUnBkbVZzZVNCemJHOTNJR0psWTJGMWMyVWdhWFJjY2x4dUx5OGdhR0Z6SUhSb1pTQnphV1JsSUdWbVptVmpkQ0J2WmlCelkyRnVibWx1WnlCMGFHVWdjSEp2ZEc5MGVYQmxJR05vWVdsdUxseHlYRzUyWVhJZ2RXNWtaV1pXWVd4eklEMGdXMTA3WEhKY2JuWmhjaUJFWld4bGRHVWdQU0I3SUdSbGJHVjBaVG9nZEhKMVpTQjlMQ0JFWld4bGRHVlNZVzVuWlNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJRVJsYkdWMFpUc2dmVHRjY2x4dWRtRnlJRUp5WldGcklEMGdleUJpY21WaGF6b2dkSEoxWlNCOU8xeHlYRzUyWVhJZ1JXMXdkSGxNWldGbUlEMGdLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhaaGNpQnVJRDBnYm1WM0lFSk9iMlJsS0NrN1hISmNiaUFnSUNCdUxtbHpVMmhoY21Wa0lEMGdkSEoxWlR0Y2NseHVJQ0FnSUhKbGRIVnliaUJ1TzF4eVhHNTlLU2dwTzF4eVhHNTJZWElnUlcxd2RIbEJjbkpoZVNBOUlGdGRPMXh5WEc1MllYSWdVbVYxYzJWa1FYSnlZWGtnUFNCYlhUc2dMeThnWVhOemRXMWxaQ0IwYUhKbFlXUXRiRzlqWVd4Y2NseHVablZ1WTNScGIyNGdZMmhsWTJzb1ptRmpkQ2tnZTF4eVhHNGdJQ0FnZG1GeUlHRnlaM01nUFNCYlhUdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlGOXBJRDBnTVRzZ1gya2dQQ0JoY21kMWJXVnVkSE11YkdWdVozUm9PeUJmYVNzcktTQjdYSEpjYmlBZ0lDQWdJQ0FnWVhKbmMxdGZhU0F0SURGZElEMGdZWEpuZFcxbGJuUnpXMTlwWFR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdsbUlDZ2habUZqZENrZ2UxeHlYRzRnSUNBZ0lDQWdJR0Z5WjNNdWRXNXphR2xtZENnblFpc2dkSEpsWlNjcE95QXZMeUJoZENCaVpXZHBibTVwYm1jZ2IyWWdiV1Z6YzJGblpWeHlYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGhjbWR6TG1wdmFXNG9KeUFuS1NrN1hISmNiaUFnSUNCOVhISmNibjFjY2x4dUx5b3FJRUVnUWxSeVpXVWdabkp2ZW1WdUlHbHVJSFJvWlNCbGJYQjBlU0J6ZEdGMFpTNGdLaTljY2x4dVpYaHdiM0owY3k1RmJYQjBlVUpVY21WbElEMGdLR1oxYm1OMGFXOXVJQ2dwSUhzZ2RtRnlJSFFnUFNCdVpYY2dRbFJ5WldVb0tUc2dkQzVtY21WbGVtVW9LVHNnY21WMGRYSnVJSFE3SUgwcEtDazdYSEpjYmlJc0lDSXZMeUIwYUdWelpTQmhjbVZ1SjNRZ2NtVmhiR3g1SUhCeWFYWmhkR1VzSUdKMWRDQnViM0lnWVhKbElIUm9aWGtnY21WaGJHeDVJSFZ6WldaMWJDQjBieUJrYjJOMWJXVnVkRnh1WEc0dktpcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpOWNibU5zWVhOeklFeDFlRzl1UlhKeWIzSWdaWGgwWlc1a2N5QkZjbkp2Y2lCN2ZWeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJKYm5aaGJHbGtSR0YwWlZScGJXVkZjbkp2Y2lCbGVIUmxibVJ6SUV4MWVHOXVSWEp5YjNJZ2UxeHVJQ0JqYjI1emRISjFZM1J2Y2loeVpXRnpiMjRwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGdTVzUyWVd4cFpDQkVZWFJsVkdsdFpUb2dKSHR5WldGemIyNHVkRzlOWlhOellXZGxLQ2w5WUNrN1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdTVzUyWVd4cFpFbHVkR1Z5ZG1Gc1JYSnliM0lnWlhoMFpXNWtjeUJNZFhodmJrVnljbTl5SUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvY21WaGMyOXVLU0I3WEc0Z0lDQWdjM1Z3WlhJb1lFbHVkbUZzYVdRZ1NXNTBaWEoyWVd3NklDUjdjbVZoYzI5dUxuUnZUV1Z6YzJGblpTZ3BmV0FwTzF4dUlDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FIQnlhWFpoZEdWY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklFbHVkbUZzYVdSRWRYSmhkR2x2YmtWeWNtOXlJR1Y0ZEdWdVpITWdUSFY0YjI1RmNuSnZjaUI3WEc0Z0lHTnZibk4wY25WamRHOXlLSEpsWVhOdmJpa2dlMXh1SUNBZ0lITjFjR1Z5S0dCSmJuWmhiR2xrSUVSMWNtRjBhVzl1T2lBa2UzSmxZWE52Ymk1MGIwMWxjM05oWjJVb0tYMWdLVHRjYmlBZ2ZWeHVmVnh1WEc0dktpcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRGIyNW1iR2xqZEdsdVoxTndaV05wWm1sallYUnBiMjVGY25KdmNpQmxlSFJsYm1SeklFeDFlRzl1UlhKeWIzSWdlMzFjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1NXNTJZV3hwWkZWdWFYUkZjbkp2Y2lCbGVIUmxibVJ6SUV4MWVHOXVSWEp5YjNJZ2UxeHVJQ0JqYjI1emRISjFZM1J2Y2loMWJtbDBLU0I3WEc0Z0lDQWdjM1Z3WlhJb1lFbHVkbUZzYVdRZ2RXNXBkQ0FrZTNWdWFYUjlZQ2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1NXNTJZV3hwWkVGeVozVnRaVzUwUlhKeWIzSWdaWGgwWlc1a2N5Qk1kWGh2YmtWeWNtOXlJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1FIQnlhWFpoZEdWY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGcHZibVZKYzBGaWMzUnlZV04wUlhKeWIzSWdaWGgwWlc1a2N5Qk1kWGh2YmtWeWNtOXlJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb1hDSmFiMjVsSUdseklHRnVJR0ZpYzNSeVlXTjBJR05zWVhOelhDSXBPMXh1SUNCOVhHNTlYRzRpTENBaUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVjYm1OdmJuTjBJRzRnUFNCY0ltNTFiV1Z5YVdOY0lpeGNiaUFnY3lBOUlGd2ljMmh2Y25SY0lpeGNiaUFnYkNBOUlGd2liRzl1WjF3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFRlVSVjlUU0U5U1ZDQTlJSHRjYmlBZ2VXVmhjam9nYml4Y2JpQWdiVzl1ZEdnNklHNHNYRzRnSUdSaGVUb2diaXhjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRVFWUkZYMDFGUkNBOUlIdGNiaUFnZVdWaGNqb2diaXhjYmlBZ2JXOXVkR2c2SUhNc1hHNGdJR1JoZVRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUVZSRlgwMUZSRjlYU1ZSSVgxZEZSVXRFUVZrZ1BTQjdYRzRnSUhsbFlYSTZJRzRzWEc0Z0lHMXZiblJvT2lCekxGeHVJQ0JrWVhrNklHNHNYRzRnSUhkbFpXdGtZWGs2SUhNc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRUZVUlY5R1ZVeE1JRDBnZTF4dUlDQjVaV0Z5T2lCdUxGeHVJQ0J0YjI1MGFEb2diQ3hjYmlBZ1pHRjVPaUJ1TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFUkJWRVZmU0ZWSFJTQTlJSHRjYmlBZ2VXVmhjam9nYml4Y2JpQWdiVzl1ZEdnNklHd3NYRzRnSUdSaGVUb2diaXhjYmlBZ2QyVmxhMlJoZVRvZ2JDeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JVU1UxRlgxTkpUVkJNUlNBOUlIdGNiaUFnYUc5MWNqb2diaXhjYmlBZ2JXbHVkWFJsT2lCdUxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRlJKVFVWZlYwbFVTRjlUUlVOUFRrUlRJRDBnZTF4dUlDQm9iM1Z5T2lCdUxGeHVJQ0J0YVc1MWRHVTZJRzRzWEc0Z0lITmxZMjl1WkRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JVU1UxRlgxZEpWRWhmVTBoUFVsUmZUMFpHVTBWVUlEMGdlMXh1SUNCb2IzVnlPaUJ1TEZ4dUlDQnRhVzUxZEdVNklHNHNYRzRnSUhObFkyOXVaRG9nYml4Y2JpQWdkR2x0WlZwdmJtVk9ZVzFsT2lCekxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRlJKVFVWZlYwbFVTRjlNVDA1SFgwOUdSbE5GVkNBOUlIdGNiaUFnYUc5MWNqb2diaXhjYmlBZ2JXbHVkWFJsT2lCdUxGeHVJQ0J6WldOdmJtUTZJRzRzWEc0Z0lIUnBiV1ZhYjI1bFRtRnRaVG9nYkN4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlVTVTFGWHpJMFgxTkpUVkJNUlNBOUlIdGNiaUFnYUc5MWNqb2diaXhjYmlBZ2JXbHVkWFJsT2lCdUxGeHVJQ0JvYjNWeVEzbGpiR1U2SUZ3aWFESXpYQ0lzWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1ZFbE5SVjh5TkY5WFNWUklYMU5GUTA5T1JGTWdQU0I3WEc0Z0lHaHZkWEk2SUc0c1hHNGdJRzFwYm5WMFpUb2diaXhjYmlBZ2MyVmpiMjVrT2lCdUxGeHVJQ0JvYjNWeVEzbGpiR1U2SUZ3aWFESXpYQ0lzWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1ZFbE5SVjh5TkY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNBOUlIdGNiaUFnYUc5MWNqb2diaXhjYmlBZ2JXbHVkWFJsT2lCdUxGeHVJQ0J6WldOdmJtUTZJRzRzWEc0Z0lHaHZkWEpEZVdOc1pUb2dYQ0pvTWpOY0lpeGNiaUFnZEdsdFpWcHZibVZPWVcxbE9pQnpMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUZSSlRVVmZNalJmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ0E5SUh0Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQnpaV052Ym1RNklHNHNYRzRnSUdodmRYSkRlV05zWlRvZ1hDSm9Nak5jSWl4Y2JpQWdkR2x0WlZwdmJtVk9ZVzFsT2lCc0xGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJCVkVWVVNVMUZYMU5JVDFKVUlEMGdlMXh1SUNCNVpXRnlPaUJ1TEZ4dUlDQnRiMjUwYURvZ2JpeGNiaUFnWkdGNU9pQnVMRnh1SUNCb2IzVnlPaUJ1TEZ4dUlDQnRhVzUxZEdVNklHNHNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWUkpUVVZmVTBoUFVsUmZWMGxVU0Y5VFJVTlBUa1JUSUQwZ2UxeHVJQ0I1WldGeU9pQnVMRnh1SUNCdGIyNTBhRG9nYml4Y2JpQWdaR0Y1T2lCdUxGeHVJQ0JvYjNWeU9pQnVMRnh1SUNCdGFXNTFkR1U2SUc0c1hHNGdJSE5sWTI5dVpEb2diaXhjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRVFWUkZWRWxOUlY5TlJVUWdQU0I3WEc0Z0lIbGxZWEk2SUc0c1hHNGdJRzF2Ym5Sb09pQnpMRnh1SUNCa1lYazZJRzRzWEc0Z0lHaHZkWEk2SUc0c1hHNGdJRzFwYm5WMFpUb2diaXhjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRVFWUkZWRWxOUlY5TlJVUmZWMGxVU0Y5VFJVTlBUa1JUSUQwZ2UxeHVJQ0I1WldGeU9pQnVMRnh1SUNCdGIyNTBhRG9nY3l4Y2JpQWdaR0Y1T2lCdUxGeHVJQ0JvYjNWeU9pQnVMRnh1SUNCdGFXNTFkR1U2SUc0c1hHNGdJSE5sWTI5dVpEb2diaXhjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRVFWUkZWRWxOUlY5TlJVUmZWMGxVU0Y5WFJVVkxSRUZaSUQwZ2UxeHVJQ0I1WldGeU9pQnVMRnh1SUNCdGIyNTBhRG9nY3l4Y2JpQWdaR0Y1T2lCdUxGeHVJQ0IzWldWclpHRjVPaUJ6TEZ4dUlDQm9iM1Z5T2lCdUxGeHVJQ0J0YVc1MWRHVTZJRzRzWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFRlVSVlJKVFVWZlJsVk1UQ0E5SUh0Y2JpQWdlV1ZoY2pvZ2JpeGNiaUFnYlc5dWRHZzZJR3dzWEc0Z0lHUmhlVG9nYml4Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQjBhVzFsV205dVpVNWhiV1U2SUhNc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRUZVUlZSSlRVVmZSbFZNVEY5WFNWUklYMU5GUTA5T1JGTWdQU0I3WEc0Z0lIbGxZWEk2SUc0c1hHNGdJRzF2Ym5Sb09pQnNMRnh1SUNCa1lYazZJRzRzWEc0Z0lHaHZkWEk2SUc0c1hHNGdJRzFwYm5WMFpUb2diaXhjYmlBZ2MyVmpiMjVrT2lCdUxGeHVJQ0IwYVcxbFdtOXVaVTVoYldVNklITXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWUkpUVVZmU0ZWSFJTQTlJSHRjYmlBZ2VXVmhjam9nYml4Y2JpQWdiVzl1ZEdnNklHd3NYRzRnSUdSaGVUb2diaXhjYmlBZ2QyVmxhMlJoZVRvZ2JDeGNiaUFnYUc5MWNqb2diaXhjYmlBZ2JXbHVkWFJsT2lCdUxGeHVJQ0IwYVcxbFdtOXVaVTVoYldVNklHd3NYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWUkpUVVZmU0ZWSFJWOVhTVlJJWDFORlEwOU9SRk1nUFNCN1hHNGdJSGxsWVhJNklHNHNYRzRnSUcxdmJuUm9PaUJzTEZ4dUlDQmtZWGs2SUc0c1hHNGdJSGRsWld0a1lYazZJR3dzWEc0Z0lHaHZkWEk2SUc0c1hHNGdJRzFwYm5WMFpUb2diaXhjYmlBZ2MyVmpiMjVrT2lCdUxGeHVJQ0IwYVcxbFdtOXVaVTVoYldVNklHd3NYRzU5TzF4dUlpd2dJaThxWEc0Z0lGUm9hWE1nYVhNZ2FuVnpkQ0JoSUdwMWJtc2daSEpoZDJWeUxDQmpiMjUwWVdsdWFXNW5JR0Z1ZVhSb2FXNW5JSFZ6WldRZ1lXTnliM056SUcxMWJIUnBjR3hsSUdOc1lYTnpaWE11WEc0Z0lFSmxZMkYxYzJVZ1RIVjRiMjRnYVhNZ2MyMWhiR3dvYVhOb0tTd2dkR2hwY3lCemFHOTFiR1FnYzNSaGVTQnpiV0ZzYkNCaGJtUWdkMlVnZDI5dUozUWdkMjl5Y25rZ1lXSnZkWFFnYzNCc2FYUjBhVzVuWEc0Z0lHbDBJSFZ3SUdsdWRHOHNJSE5oZVN3Z2NHRnljMmx1WjFWMGFXd3Vhbk1nWVc1a0lHSmhjMmxqVlhScGJDNXFjeUJoYm1RZ2MyOGdiMjR1SUVKMWRDQjBhR1Y1SUdGeVpTQmthWFpwWkdWa0lIVndJR0o1SUdabFlYUjFjbVVnWVhKbFlTNWNiaW92WEc1Y2JtbHRjRzl5ZENCN0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlJSDBnWm5KdmJTQmNJaTR1TDJWeWNtOXljeTVxYzF3aU8xeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JseHVMeThnVkZsUVJWTmNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x6Vlc1a1pXWnBibVZrS0c4cElIdGNiaUFnY21WMGRYSnVJSFI1Y0dWdlppQnZJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTk9kVzFpWlhJb2J5a2dlMXh1SUNCeVpYUjFjbTRnZEhsd1pXOW1JRzhnUFQwOUlGd2liblZ0WW1WeVhDSTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwbHVkR1ZuWlhJb2J5a2dlMXh1SUNCeVpYUjFjbTRnZEhsd1pXOW1JRzhnUFQwOUlGd2liblZ0WW1WeVhDSWdKaVlnYnlBbElERWdQVDA5SURBN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzFOMGNtbHVaeWh2S1NCN1hHNGdJSEpsZEhWeWJpQjBlWEJsYjJZZ2J5QTlQVDBnWENKemRISnBibWRjSWp0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x6UkdGMFpTaHZLU0I3WEc0Z0lISmxkSFZ5YmlCUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG5SdlUzUnlhVzVuTG1OaGJHd29ieWtnUFQwOUlGd2lXMjlpYW1WamRDQkVZWFJsWFZ3aU8xeHVmVnh1WEc0dkx5QkRRVkJCUWtsTVNWUkpSVk5jYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGMxSmxiR0YwYVhabEtDa2dlMXh1SUNCMGNua2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnU1c1MGJDQWhQVDBnWENKMWJtUmxabWx1WldSY0lpQW1KaUFoSVVsdWRHd3VVbVZzWVhScGRtVlVhVzFsUm05eWJXRjBPMXh1SUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNTlYRzVjYmk4dklFOUNTa1ZEVkZNZ1FVNUVJRUZTVWtGWlUxeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiV0Y1WW1WQmNuSmhlU2gwYUdsdVp5a2dlMXh1SUNCeVpYUjFjbTRnUVhKeVlYa3VhWE5CY25KaGVTaDBhR2x1WnlrZ1B5QjBhR2x1WnlBNklGdDBhR2x1WjEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJpWlhOMFFua29ZWEp5TENCaWVTd2dZMjl0Y0dGeVpTa2dlMXh1SUNCcFppQW9ZWEp5TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUdGeWNpNXlaV1IxWTJVb0tHSmxjM1FzSUc1bGVIUXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQndZV2x5SUQwZ1cySjVLRzVsZUhRcExDQnVaWGgwWFR0Y2JpQWdJQ0JwWmlBb0lXSmxjM1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3WVdseU8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1kyOXRjR0Z5WlNoaVpYTjBXekJkTENCd1lXbHlXekJkS1NBOVBUMGdZbVZ6ZEZzd1hTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmxjM1E3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCd1lXbHlPMXh1SUNBZ0lIMWNiaUFnZlN3Z2JuVnNiQ2xiTVYwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3YVdOcktHOWlhaXdnYTJWNWN5a2dlMXh1SUNCeVpYUjFjbTRnYTJWNWN5NXlaV1IxWTJVb0tHRXNJR3NwSUQwK0lIdGNiaUFnSUNCaFcydGRJRDBnYjJKcVcydGRPMXh1SUNBZ0lISmxkSFZ5YmlCaE8xeHVJQ0I5TENCN2ZTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb1lYTlBkMjVRY205d1pYSjBlU2h2WW1vc0lIQnliM0FwSUh0Y2JpQWdjbVYwZFhKdUlFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaHZZbW9zSUhCeWIzQXBPMXh1ZlZ4dVhHNHZMeUJPVlUxQ1JWSlRJRUZPUkNCVFZGSkpUa2RUWEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGJuUmxaMlZ5UW1WMGQyVmxiaWgwYUdsdVp5d2dZbTkwZEc5dExDQjBiM0FwSUh0Y2JpQWdjbVYwZFhKdUlHbHpTVzUwWldkbGNpaDBhR2x1WnlrZ0ppWWdkR2hwYm1jZ1BqMGdZbTkwZEc5dElDWW1JSFJvYVc1bklEdzlJSFJ2Y0R0Y2JuMWNibHh1THk4Z2VDQWxJRzRnWW5WMElIUmhhMlZ6SUhSb1pTQnphV2R1SUc5bUlHNGdhVzV6ZEdWaFpDQnZaaUI0WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWm14dmIzSk5iMlFvZUN3Z2Jpa2dlMXh1SUNCeVpYUjFjbTRnZUNBdElHNGdLaUJOWVhSb0xtWnNiMjl5S0hnZ0x5QnVLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhaRk4wWVhKMEtHbHVjSFYwTENCdUlEMGdNaWtnZTF4dUlDQmpiMjV6ZENCcGMwNWxaeUE5SUdsdWNIVjBJRHdnTUR0Y2JpQWdiR1YwSUhCaFpHUmxaRHRjYmlBZ2FXWWdLR2x6VG1WbktTQjdYRzRnSUNBZ2NHRmtaR1ZrSUQwZ1hDSXRYQ0lnS3lBb1hDSmNJaUFySUMxcGJuQjFkQ2t1Y0dGa1UzUmhjblFvYml3Z1hDSXdYQ0lwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhCaFpHUmxaQ0E5SUNoY0lsd2lJQ3NnYVc1d2RYUXBMbkJoWkZOMFlYSjBLRzRzSUZ3aU1Gd2lLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdjR0ZrWkdWa08xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVkpiblJsWjJWeUtITjBjbWx1WnlrZ2UxeHVJQ0JwWmlBb2FYTlZibVJsWm1sdVpXUW9jM1J5YVc1bktTQjhmQ0J6ZEhKcGJtY2dQVDA5SUc1MWJHd2dmSHdnYzNSeWFXNW5JRDA5UFNCY0lsd2lLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnlaWFIxY200Z2NHRnljMlZKYm5Rb2MzUnlhVzVuTENBeE1DazdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJoY25ObFJteHZZWFJwYm1jb2MzUnlhVzVuS1NCN1hHNGdJR2xtSUNocGMxVnVaR1ZtYVc1bFpDaHpkSEpwYm1jcElIeDhJSE4wY21sdVp5QTlQVDBnYm5Wc2JDQjhmQ0J6ZEhKcGJtY2dQVDA5SUZ3aVhDSXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCd1lYSnpaVVpzYjJGMEtITjBjbWx1WnlrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sVFdsc2JHbHpLR1p5WVdOMGFXOXVLU0I3WEc0Z0lDOHZJRkpsZEhWeWJpQjFibVJsWm1sdVpXUWdLR2x1YzNSbFlXUWdiMllnTUNrZ2FXNGdkR2hsYzJVZ1kyRnpaWE1zSUhkb1pYSmxJR1p5WVdOMGFXOXVJR2x6SUc1dmRDQnpaWFJjYmlBZ2FXWWdLR2x6Vlc1a1pXWnBibVZrS0daeVlXTjBhVzl1S1NCOGZDQm1jbUZqZEdsdmJpQTlQVDBnYm5Wc2JDQjhmQ0JtY21GamRHbHZiaUE5UFQwZ1hDSmNJaWtnZTF4dUlDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZMjl1YzNRZ1ppQTlJSEJoY25ObFJteHZZWFFvWENJd0xsd2lJQ3NnWm5KaFkzUnBiMjRwSUNvZ01UQXdNRHRjYmlBZ0lDQnlaWFIxY200Z1RXRjBhQzVtYkc5dmNpaG1LVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY205MWJtUlVieWh1ZFcxaVpYSXNJR1JwWjJsMGN5d2dkRzkzWVhKa1dtVnlieUE5SUdaaGJITmxLU0I3WEc0Z0lHTnZibk4wSUdaaFkzUnZjaUE5SURFd0lDb3FJR1JwWjJsMGN5eGNiaUFnSUNCeWIzVnVaR1Z5SUQwZ2RHOTNZWEprV21WeWJ5QS9JRTFoZEdndWRISjFibU1nT2lCTllYUm9Mbkp2ZFc1a08xeHVJQ0J5WlhSMWNtNGdjbTkxYm1SbGNpaHVkVzFpWlhJZ0tpQm1ZV04wYjNJcElDOGdabUZqZEc5eU8xeHVmVnh1WEc0dkx5QkVRVlJGSUVKQlUwbERVMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOTVpXRndXV1ZoY2loNVpXRnlLU0I3WEc0Z0lISmxkSFZ5YmlCNVpXRnlJQ1VnTkNBOVBUMGdNQ0FtSmlBb2VXVmhjaUFsSURFd01DQWhQVDBnTUNCOGZDQjVaV0Z5SUNVZ05EQXdJRDA5UFNBd0tUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdSaGVYTkpibGxsWVhJb2VXVmhjaWtnZTF4dUlDQnlaWFIxY200Z2FYTk1aV0Z3V1dWaGNpaDVaV0Z5S1NBL0lETTJOaUE2SURNMk5UdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdSaGVYTkpiazF2Ym5Sb0tIbGxZWElzSUcxdmJuUm9LU0I3WEc0Z0lHTnZibk4wSUcxdlpFMXZiblJvSUQwZ1pteHZiM0pOYjJRb2JXOXVkR2dnTFNBeExDQXhNaWtnS3lBeExGeHVJQ0FnSUcxdlpGbGxZWElnUFNCNVpXRnlJQ3NnS0cxdmJuUm9JQzBnYlc5a1RXOXVkR2dwSUM4Z01USTdYRzVjYmlBZ2FXWWdLRzF2WkUxdmJuUm9JRDA5UFNBeUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUdselRHVmhjRmxsWVhJb2JXOWtXV1ZoY2lrZ1B5QXlPU0E2SURJNE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCYk16RXNJRzUxYkd3c0lETXhMQ0F6TUN3Z016RXNJRE13TENBek1Td2dNekVzSURNd0xDQXpNU3dnTXpBc0lETXhYVnR0YjJSTmIyNTBhQ0F0SURGZE8xeHVJQ0I5WEc1OVhHNWNiaTh2SUdOdmRtVnlkQ0JoSUdOaGJHVnVaR0Z5SUc5aWFtVmpkQ0IwYnlCaElHeHZZMkZzSUhScGJXVnpkR0Z0Y0NBb1pYQnZZMmdzSUdKMWRDQjNhWFJvSUhSb1pTQnZabVp6WlhRZ1ltRnJaV1FnYVc0cFhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2IySnFWRzlNYjJOaGJGUlRLRzlpYWlrZ2UxeHVJQ0JzWlhRZ1pDQTlJRVJoZEdVdVZWUkRLRnh1SUNBZ0lHOWlhaTU1WldGeUxGeHVJQ0FnSUc5aWFpNXRiMjUwYUNBdElERXNYRzRnSUNBZ2IySnFMbVJoZVN4Y2JpQWdJQ0J2WW1vdWFHOTFjaXhjYmlBZ0lDQnZZbW91YldsdWRYUmxMRnh1SUNBZ0lHOWlhaTV6WldOdmJtUXNYRzRnSUNBZ2IySnFMbTFwYkd4cGMyVmpiMjVrWEc0Z0lDazdYRzVjYmlBZ0x5OGdabTl5SUd4bFoyRmplU0J5WldGemIyNXpMQ0I1WldGeWN5QmlaWFIzWldWdUlEQWdZVzVrSURrNUlHRnlaU0JwYm5SbGNuQnlaWFJsWkNCaGN5QXhPVmhZT3lCeVpYWmxjblFnZEdoaGRGeHVJQ0JwWmlBb2IySnFMbmxsWVhJZ1BDQXhNREFnSmlZZ2IySnFMbmxsWVhJZ1BqMGdNQ2tnZTF4dUlDQWdJR1FnUFNCdVpYY2dSR0YwWlNoa0tUdGNiaUFnSUNCa0xuTmxkRlZVUTBaMWJHeFpaV0Z5S0dRdVoyVjBWVlJEUm5Wc2JGbGxZWElvS1NBdElERTVNREFwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUFyWkR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSGRsWld0elNXNVhaV1ZyV1dWaGNpaDNaV1ZyV1dWaGNpa2dlMXh1SUNCamIyNXpkQ0J3TVNBOVhHNGdJQ0FnSUNBb2QyVmxhMWxsWVhJZ0sxeHVJQ0FnSUNBZ0lDQk5ZWFJvTG1ac2IyOXlLSGRsWld0WlpXRnlJQzhnTkNrZ0xWeHVJQ0FnSUNBZ0lDQk5ZWFJvTG1ac2IyOXlLSGRsWld0WlpXRnlJQzhnTVRBd0tTQXJYRzRnSUNBZ0lDQWdJRTFoZEdndVpteHZiM0lvZDJWbGExbGxZWElnTHlBME1EQXBLU0FsWEc0Z0lDQWdJQ0EzTEZ4dUlDQWdJR3hoYzNRZ1BTQjNaV1ZyV1dWaGNpQXRJREVzWEc0Z0lDQWdjRElnUFNBb2JHRnpkQ0FySUUxaGRHZ3VabXh2YjNJb2JHRnpkQ0F2SURRcElDMGdUV0YwYUM1bWJHOXZjaWhzWVhOMElDOGdNVEF3S1NBcklFMWhkR2d1Wm14dmIzSW9iR0Z6ZENBdklEUXdNQ2twSUNVZ056dGNiaUFnY21WMGRYSnVJSEF4SUQwOVBTQTBJSHg4SUhBeUlEMDlQU0F6SUQ4Z05UTWdPaUExTWp0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFZ1ZEhKMWJtTmhkR1ZaWldGeUtIbGxZWElwSUh0Y2JpQWdhV1lnS0hsbFlYSWdQaUE1T1NrZ2UxeHVJQ0FnSUhKbGRIVnliaUI1WldGeU8xeHVJQ0I5SUdWc2MyVWdjbVYwZFhKdUlIbGxZWElnUGlBMk1DQS9JREU1TURBZ0t5QjVaV0Z5SURvZ01qQXdNQ0FySUhsbFlYSTdYRzU5WEc1Y2JpOHZJRkJCVWxOSlRrZGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJoY25ObFdtOXVaVWx1Wm04b2RITXNJRzltWm5ObGRFWnZjbTFoZEN3Z2JHOWpZV3hsTENCMGFXMWxXbTl1WlNBOUlHNTFiR3dwSUh0Y2JpQWdZMjl1YzNRZ1pHRjBaU0E5SUc1bGR5QkVZWFJsS0hSektTeGNiaUFnSUNCcGJuUnNUM0IwY3lBOUlIdGNiaUFnSUNBZ0lHaHZkWEpEZVdOc1pUb2dYQ0pvTWpOY0lpeGNiaUFnSUNBZ0lIbGxZWEk2SUZ3aWJuVnRaWEpwWTF3aUxGeHVJQ0FnSUNBZ2JXOXVkR2c2SUZ3aU1pMWthV2RwZEZ3aUxGeHVJQ0FnSUNBZ1pHRjVPaUJjSWpJdFpHbG5hWFJjSWl4Y2JpQWdJQ0FnSUdodmRYSTZJRndpTWkxa2FXZHBkRndpTEZ4dUlDQWdJQ0FnYldsdWRYUmxPaUJjSWpJdFpHbG5hWFJjSWl4Y2JpQWdJQ0I5TzF4dVhHNGdJR2xtSUNoMGFXMWxXbTl1WlNrZ2UxeHVJQ0FnSUdsdWRHeFBjSFJ6TG5ScGJXVmFiMjVsSUQwZ2RHbHRaVnB2Ym1VN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCdGIyUnBabWxsWkNBOUlIc2dkR2x0WlZwdmJtVk9ZVzFsT2lCdlptWnpaWFJHYjNKdFlYUXNJQzR1TG1sdWRHeFBjSFJ6SUgwN1hHNWNiaUFnWTI5dWMzUWdjR0Z5YzJWa0lEMGdibVYzSUVsdWRHd3VSR0YwWlZScGJXVkdiM0p0WVhRb2JHOWpZV3hsTENCdGIyUnBabWxsWkNsY2JpQWdJQ0F1Wm05eWJXRjBWRzlRWVhKMGN5aGtZWFJsS1Z4dUlDQWdJQzVtYVc1a0tDaHRLU0E5UGlCdExuUjVjR1V1ZEc5TWIzZGxja05oYzJVb0tTQTlQVDBnWENKMGFXMWxlbTl1Wlc1aGJXVmNJaWs3WEc0Z0lISmxkSFZ5YmlCd1lYSnpaV1FnUHlCd1lYSnpaV1F1ZG1Gc2RXVWdPaUJ1ZFd4c08xeHVmVnh1WEc0dkx5QnphV2R1WldSUFptWnpaWFFvSnkwMUp5d2dKek13SnlrZ0xUNGdMVE16TUZ4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOcFoyNWxaRTltWm5ObGRDaHZabVpJYjNWeVUzUnlMQ0J2Wm1aTmFXNTFkR1ZUZEhJcElIdGNiaUFnYkdWMElHOW1aa2h2ZFhJZ1BTQndZWEp6WlVsdWRDaHZabVpJYjNWeVUzUnlMQ0F4TUNrN1hHNWNiaUFnTHk4Z1pHOXVKM1FnZkh3Z2RHaHBjeUJpWldOaGRYTmxJSGRsSUhkaGJuUWdkRzhnY0hKbGMyVnlkbVVnTFRCY2JpQWdhV1lnS0U1MWJXSmxjaTVwYzA1aFRpaHZabVpJYjNWeUtTa2dlMXh1SUNBZ0lHOW1aa2h2ZFhJZ1BTQXdPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdiMlptVFdsdUlEMGdjR0Z5YzJWSmJuUW9iMlptVFdsdWRYUmxVM1J5TENBeE1Da2dmSHdnTUN4Y2JpQWdJQ0J2Wm1aTmFXNVRhV2R1WldRZ1BTQnZabVpJYjNWeUlEd2dNQ0I4ZkNCUFltcGxZM1F1YVhNb2IyWm1TRzkxY2l3Z0xUQXBJRDhnTFc5bVprMXBiaUE2SUc5bVprMXBianRjYmlBZ2NtVjBkWEp1SUc5bVpraHZkWElnS2lBMk1DQXJJRzltWmsxcGJsTnBaMjVsWkR0Y2JuMWNibHh1THk4Z1EwOUZVa05KVDA1Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHRnpUblZ0WW1WeUtIWmhiSFZsS1NCN1hHNGdJR052Ym5OMElHNTFiV1Z5YVdOV1lXeDFaU0E5SUU1MWJXSmxjaWgyWVd4MVpTazdYRzRnSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlGd2lZbTl2YkdWaGJsd2lJSHg4SUhaaGJIVmxJRDA5UFNCY0lsd2lJSHg4SUU1MWJXSmxjaTVwYzA1aFRpaHVkVzFsY21salZtRnNkV1VwS1Z4dUlDQWdJSFJvY205M0lHNWxkeUJKYm5aaGJHbGtRWEpuZFcxbGJuUkZjbkp2Y2loZ1NXNTJZV3hwWkNCMWJtbDBJSFpoYkhWbElDUjdkbUZzZFdWOVlDazdYRzRnSUhKbGRIVnliaUJ1ZFcxbGNtbGpWbUZzZFdVN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ1YjNKdFlXeHBlbVZQWW1wbFkzUW9iMkpxTENCdWIzSnRZV3hwZW1WeUtTQjdYRzRnSUdOdmJuTjBJRzV2Y20xaGJHbDZaV1FnUFNCN2ZUdGNiaUFnWm05eUlDaGpiMjV6ZENCMUlHbHVJRzlpYWlrZ2UxeHVJQ0FnSUdsbUlDaG9ZWE5QZDI1UWNtOXdaWEowZVNodlltb3NJSFVwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IySUQwZ2IySnFXM1ZkTzF4dUlDQWdJQ0FnYVdZZ0tIWWdQVDA5SUhWdVpHVm1hVzVsWkNCOGZDQjJJRDA5UFNCdWRXeHNLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJRzV2Y20xaGJHbDZaV1JiYm05eWJXRnNhWHBsY2loMUtWMGdQU0JoYzA1MWJXSmxjaWgyS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzV2Y20xaGJHbDZaV1E3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm1iM0p0WVhSUFptWnpaWFFvYjJabWMyVjBMQ0JtYjNKdFlYUXBJSHRjYmlBZ1kyOXVjM1FnYUc5MWNuTWdQU0JOWVhSb0xuUnlkVzVqS0UxaGRHZ3VZV0p6S0c5bVpuTmxkQ0F2SURZd0tTa3NYRzRnSUNBZ2JXbHVkWFJsY3lBOUlFMWhkR2d1ZEhKMWJtTW9UV0YwYUM1aFluTW9iMlptYzJWMElDVWdOakFwS1N4Y2JpQWdJQ0J6YVdkdUlEMGdiMlptYzJWMElENDlJREFnUHlCY0lpdGNJaUE2SUZ3aUxWd2lPMXh1WEc0Z0lITjNhWFJqYUNBb1ptOXliV0YwS1NCN1hHNGdJQ0FnWTJGelpTQmNJbk5vYjNKMFhDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z1lDUjdjMmxuYm4wa2UzQmhaRk4wWVhKMEtHaHZkWEp6TENBeUtYMDZKSHR3WVdSVGRHRnlkQ2h0YVc1MWRHVnpMQ0F5S1gxZ08xeHVJQ0FnSUdOaGMyVWdYQ0p1WVhKeWIzZGNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmdKSHR6YVdkdWZTUjdhRzkxY25OOUpIdHRhVzUxZEdWeklENGdNQ0EvSUdBNkpIdHRhVzUxZEdWemZXQWdPaUJjSWx3aWZXQTdYRzRnSUNBZ1kyRnpaU0JjSW5SbFkyaHBaVndpT2x4dUlDQWdJQ0FnY21WMGRYSnVJR0FrZTNOcFoyNTlKSHR3WVdSVGRHRnlkQ2hvYjNWeWN5d2dNaWw5Skh0d1lXUlRkR0Z5ZENodGFXNTFkR1Z6TENBeUtYMWdPMXh1SUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1VtRnVaMlZGY25KdmNpaGdWbUZzZFdVZ1ptOXliV0YwSUNSN1ptOXliV0YwZlNCcGN5QnZkWFFnYjJZZ2NtRnVaMlVnWm05eUlIQnliM0JsY25SNUlHWnZjbTFoZEdBcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBhVzFsVDJKcVpXTjBLRzlpYWlrZ2UxeHVJQ0J5WlhSMWNtNGdjR2xqYXlodlltb3NJRnRjSW1odmRYSmNJaXdnWENKdGFXNTFkR1ZjSWl3Z1hDSnpaV052Ym1SY0lpd2dYQ0p0YVd4c2FYTmxZMjl1WkZ3aVhTazdYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwWVc1aFVtVm5aWGdnUFZ4dUlDQXZXMEV0V21FdGVsOHJMVjE3TVN3eU5UWjlLRDg2T2o5Y1hDOWJRUzFhWVMxNk1DMDVYeXN0WFhzeExESTFObjBvUHpwY1hDOWJRUzFhWVMxNk1DMDVYeXN0WFhzeExESTFObjBwUHlrL0x6dGNiaUlzSUNKcGJYQnZjblFnS2lCaGN5QkdiM0p0WVhSeklHWnliMjBnWENJdUwyWnZjbTFoZEhNdWFuTmNJanRjYm1sdGNHOXlkQ0I3SUhCcFkyc2dmU0JtY205dElGd2lMaTkxZEdsc0xtcHpYQ0k3WEc1Y2JtWjFibU4wYVc5dUlITjBjbWx1WjJsbWVTaHZZbW9wSUh0Y2JpQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0c5aWFpd2dUMkpxWldOMExtdGxlWE1vYjJKcUtTNXpiM0owS0NrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpOWNibHh1Wlhod2IzSjBJR052Ym5OMElHMXZiblJvYzB4dmJtY2dQU0JiWEc0Z0lGd2lTbUZ1ZFdGeWVWd2lMRnh1SUNCY0lrWmxZbkoxWVhKNVhDSXNYRzRnSUZ3aVRXRnlZMmhjSWl4Y2JpQWdYQ0pCY0hKcGJGd2lMRnh1SUNCY0lrMWhlVndpTEZ4dUlDQmNJa3AxYm1WY0lpeGNiaUFnWENKS2RXeDVYQ0lzWEc0Z0lGd2lRWFZuZFhOMFhDSXNYRzRnSUZ3aVUyVndkR1Z0WW1WeVhDSXNYRzRnSUZ3aVQyTjBiMkpsY2x3aUxGeHVJQ0JjSWs1dmRtVnRZbVZ5WENJc1hHNGdJRndpUkdWalpXMWlaWEpjSWl4Y2JsMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnRiMjUwYUhOVGFHOXlkQ0E5SUZ0Y2JpQWdYQ0pLWVc1Y0lpeGNiaUFnWENKR1pXSmNJaXhjYmlBZ1hDSk5ZWEpjSWl4Y2JpQWdYQ0pCY0hKY0lpeGNiaUFnWENKTllYbGNJaXhjYmlBZ1hDSktkVzVjSWl4Y2JpQWdYQ0pLZFd4Y0lpeGNiaUFnWENKQmRXZGNJaXhjYmlBZ1hDSlRaWEJjSWl4Y2JpQWdYQ0pQWTNSY0lpeGNiaUFnWENKT2IzWmNJaXhjYmlBZ1hDSkVaV05jSWl4Y2JsMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnRiMjUwYUhOT1lYSnliM2NnUFNCYlhDSktYQ0lzSUZ3aVJsd2lMQ0JjSWsxY0lpd2dYQ0pCWENJc0lGd2lUVndpTENCY0lrcGNJaXdnWENKS1hDSXNJRndpUVZ3aUxDQmNJbE5jSWl3Z1hDSlBYQ0lzSUZ3aVRsd2lMQ0JjSWtSY0lsMDdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0YjI1MGFITW9iR1Z1WjNSb0tTQjdYRzRnSUhOM2FYUmphQ0FvYkdWdVozUm9LU0I3WEc0Z0lDQWdZMkZ6WlNCY0ltNWhjbkp2ZDF3aU9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZzdUxpNXRiMjUwYUhOT1lYSnliM2RkTzF4dUlDQWdJR05oYzJVZ1hDSnphRzl5ZEZ3aU9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZzdUxpNXRiMjUwYUhOVGFHOXlkRjA3WEc0Z0lDQWdZMkZ6WlNCY0lteHZibWRjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJiTGk0dWJXOXVkR2h6VEc5dVoxMDdYRzRnSUNBZ1kyRnpaU0JjSW01MWJXVnlhV05jSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJiWENJeFhDSXNJRndpTWx3aUxDQmNJak5jSWl3Z1hDSTBYQ0lzSUZ3aU5Wd2lMQ0JjSWpaY0lpd2dYQ0kzWENJc0lGd2lPRndpTENCY0lqbGNJaXdnWENJeE1Gd2lMQ0JjSWpFeFhDSXNJRndpTVRKY0lsMDdYRzRnSUNBZ1kyRnpaU0JjSWpJdFpHbG5hWFJjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJiWENJd01Wd2lMQ0JjSWpBeVhDSXNJRndpTUROY0lpd2dYQ0l3TkZ3aUxDQmNJakExWENJc0lGd2lNRFpjSWl3Z1hDSXdOMXdpTENCY0lqQTRYQ0lzSUZ3aU1EbGNJaXdnWENJeE1Gd2lMQ0JjSWpFeFhDSXNJRndpTVRKY0lsMDdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCM1pXVnJaR0Y1YzB4dmJtY2dQU0JiWEc0Z0lGd2lUVzl1WkdGNVhDSXNYRzRnSUZ3aVZIVmxjMlJoZVZ3aUxGeHVJQ0JjSWxkbFpHNWxjMlJoZVZ3aUxGeHVJQ0JjSWxSb2RYSnpaR0Y1WENJc1hHNGdJRndpUm5KcFpHRjVYQ0lzWEc0Z0lGd2lVMkYwZFhKa1lYbGNJaXhjYmlBZ1hDSlRkVzVrWVhsY0lpeGNibDA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0IzWldWclpHRjVjMU5vYjNKMElEMGdXMXdpVFc5dVhDSXNJRndpVkhWbFhDSXNJRndpVjJWa1hDSXNJRndpVkdoMVhDSXNJRndpUm5KcFhDSXNJRndpVTJGMFhDSXNJRndpVTNWdVhDSmRPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdkMlZsYTJSaGVYTk9ZWEp5YjNjZ1BTQmJYQ0pOWENJc0lGd2lWRndpTENCY0lsZGNJaXdnWENKVVhDSXNJRndpUmx3aUxDQmNJbE5jSWl3Z1hDSlRYQ0pkTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2QyVmxhMlJoZVhNb2JHVnVaM1JvS1NCN1hHNGdJSE4zYVhSamFDQW9iR1Z1WjNSb0tTQjdYRzRnSUNBZ1kyRnpaU0JjSW01aGNuSnZkMXdpT2x4dUlDQWdJQ0FnY21WMGRYSnVJRnN1TGk1M1pXVnJaR0Y1YzA1aGNuSnZkMTA3WEc0Z0lDQWdZMkZ6WlNCY0luTm9iM0owWENJNlhHNGdJQ0FnSUNCeVpYUjFjbTRnV3k0dUxuZGxaV3RrWVhselUyaHZjblJkTzF4dUlDQWdJR05oYzJVZ1hDSnNiMjVuWENJNlhHNGdJQ0FnSUNCeVpYUjFjbTRnV3k0dUxuZGxaV3RrWVhselRHOXVaMTA3WEc0Z0lDQWdZMkZ6WlNCY0ltNTFiV1Z5YVdOY0lqcGNiaUFnSUNBZ0lISmxkSFZ5YmlCYlhDSXhYQ0lzSUZ3aU1sd2lMQ0JjSWpOY0lpd2dYQ0kwWENJc0lGd2lOVndpTENCY0lqWmNJaXdnWENJM1hDSmRPMXh1SUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2JXVnlhV1JwWlcxeklEMGdXMXdpUVUxY0lpd2dYQ0pRVFZ3aVhUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHVnlZWE5NYjI1bklEMGdXMXdpUW1WbWIzSmxJRU5vY21semRGd2lMQ0JjSWtGdWJtOGdSRzl0YVc1cFhDSmRPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaWEpoYzFOb2IzSjBJRDBnVzF3aVFrTmNJaXdnWENKQlJGd2lYVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1Z5WVhOT1lYSnliM2NnUFNCYlhDSkNYQ0lzSUZ3aVFWd2lYVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWeVlYTW9iR1Z1WjNSb0tTQjdYRzRnSUhOM2FYUmphQ0FvYkdWdVozUm9LU0I3WEc0Z0lDQWdZMkZ6WlNCY0ltNWhjbkp2ZDF3aU9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZzdUxpNWxjbUZ6VG1GeWNtOTNYVHRjYmlBZ0lDQmpZWE5sSUZ3aWMyaHZjblJjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJiTGk0dVpYSmhjMU5vYjNKMFhUdGNiaUFnSUNCallYTmxJRndpYkc5dVoxd2lPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGc3VMaTVsY21GelRHOXVaMTA3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0WlhKcFpHbGxiVVp2Y2tSaGRHVlVhVzFsS0dSMEtTQjdYRzRnSUhKbGRIVnliaUJ0WlhKcFpHbGxiWE5iWkhRdWFHOTFjaUE4SURFeUlEOGdNQ0E2SURGZE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZDJWbGEyUmhlVVp2Y2tSaGRHVlVhVzFsS0dSMExDQnNaVzVuZEdncElIdGNiaUFnY21WMGRYSnVJSGRsWld0a1lYbHpLR3hsYm1kMGFDbGJaSFF1ZDJWbGEyUmhlU0F0SURGZE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYlc5dWRHaEdiM0pFWVhSbFZHbHRaU2hrZEN3Z2JHVnVaM1JvS1NCN1hHNGdJSEpsZEhWeWJpQnRiMjUwYUhNb2JHVnVaM1JvS1Z0a2RDNXRiMjUwYUNBdElERmRPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pYSmhSbTl5UkdGMFpWUnBiV1VvWkhRc0lHeGxibWQwYUNrZ2UxeHVJQ0J5WlhSMWNtNGdaWEpoY3loc1pXNW5kR2dwVzJSMExubGxZWElnUENBd0lEOGdNQ0E2SURGZE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWm05eWJXRjBVbVZzWVhScGRtVlVhVzFsS0hWdWFYUXNJR052ZFc1MExDQnVkVzFsY21saklEMGdYQ0poYkhkaGVYTmNJaXdnYm1GeWNtOTNJRDBnWm1Gc2MyVXBJSHRjYmlBZ1kyOXVjM1FnZFc1cGRITWdQU0I3WEc0Z0lDQWdlV1ZoY25NNklGdGNJbmxsWVhKY0lpd2dYQ0o1Y2k1Y0lsMHNYRzRnSUNBZ2NYVmhjblJsY25NNklGdGNJbkYxWVhKMFpYSmNJaXdnWENKeGRISXVYQ0pkTEZ4dUlDQWdJRzF2Ym5Sb2N6b2dXMXdpYlc5dWRHaGNJaXdnWENKdGJ5NWNJbDBzWEc0Z0lDQWdkMlZsYTNNNklGdGNJbmRsWld0Y0lpd2dYQ0ozYXk1Y0lsMHNYRzRnSUNBZ1pHRjVjem9nVzF3aVpHRjVYQ0lzSUZ3aVpHRjVYQ0lzSUZ3aVpHRjVjMXdpWFN4Y2JpQWdJQ0JvYjNWeWN6b2dXMXdpYUc5MWNsd2lMQ0JjSW1oeUxsd2lYU3hjYmlBZ0lDQnRhVzUxZEdWek9pQmJYQ0p0YVc1MWRHVmNJaXdnWENKdGFXNHVYQ0pkTEZ4dUlDQWdJSE5sWTI5dVpITTZJRnRjSW5ObFkyOXVaRndpTENCY0luTmxZeTVjSWwwc1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ2JHRnpkR0ZpYkdVZ1BTQmJYQ0pvYjNWeWMxd2lMQ0JjSW0xcGJuVjBaWE5jSWl3Z1hDSnpaV052Ym1SelhDSmRMbWx1WkdWNFQyWW9kVzVwZENrZ1BUMDlJQzB4TzF4dVhHNGdJR2xtSUNodWRXMWxjbWxqSUQwOVBTQmNJbUYxZEc5Y0lpQW1KaUJzWVhOMFlXSnNaU2tnZTF4dUlDQWdJR052Ym5OMElHbHpSR0Y1SUQwZ2RXNXBkQ0E5UFQwZ1hDSmtZWGx6WENJN1hHNGdJQ0FnYzNkcGRHTm9JQ2hqYjNWdWRDa2dlMXh1SUNBZ0lDQWdZMkZ6WlNBeE9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkVZWGtnUHlCY0luUnZiVzl5Y205M1hDSWdPaUJnYm1WNGRDQWtlM1Z1YVhSelczVnVhWFJkV3pCZGZXQTdYRzRnSUNBZ0lDQmpZWE5sSUMweE9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkVZWGtnUHlCY0lubGxjM1JsY21SaGVWd2lJRG9nWUd4aGMzUWdKSHQxYm1sMGMxdDFibWwwWFZzd1hYMWdPMXh1SUNBZ0lDQWdZMkZ6WlNBd09seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkVZWGtnUHlCY0luUnZaR0Y1WENJZ09pQmdkR2hwY3lBa2UzVnVhWFJ6VzNWdWFYUmRXekJkZldBN1hHNGdJQ0FnSUNCa1pXWmhkV3gwT2lBdkx5Qm1ZV3hzSUhSb2NtOTFaMmhjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnBjMGx1VUdGemRDQTlJRTlpYW1WamRDNXBjeWhqYjNWdWRDd2dMVEFwSUh4OElHTnZkVzUwSUR3Z01DeGNiaUFnSUNCbWJYUldZV3gxWlNBOUlFMWhkR2d1WVdKektHTnZkVzUwS1N4Y2JpQWdJQ0J6YVc1bmRXeGhjaUE5SUdadGRGWmhiSFZsSUQwOVBTQXhMRnh1SUNBZ0lHeHBiRlZ1YVhSeklEMGdkVzVwZEhOYmRXNXBkRjBzWEc0Z0lDQWdabTEwVlc1cGRDQTlJRzVoY25KdmQxeHVJQ0FnSUNBZ1B5QnphVzVuZFd4aGNseHVJQ0FnSUNBZ0lDQS9JR3hwYkZWdWFYUnpXekZkWEc0Z0lDQWdJQ0FnSURvZ2JHbHNWVzVwZEhOYk1sMGdmSHdnYkdsc1ZXNXBkSE5iTVYxY2JpQWdJQ0FnSURvZ2MybHVaM1ZzWVhKY2JpQWdJQ0FnSUQ4Z2RXNXBkSE5iZFc1cGRGMWJNRjFjYmlBZ0lDQWdJRG9nZFc1cGREdGNiaUFnY21WMGRYSnVJR2x6U1c1UVlYTjBJRDhnWUNSN1ptMTBWbUZzZFdWOUlDUjdabTEwVlc1cGRIMGdZV2R2WUNBNklHQnBiaUFrZTJadGRGWmhiSFZsZlNBa2UyWnRkRlZ1YVhSOVlEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdadmNtMWhkRk4wY21sdVp5aHJibTkzYmtadmNtMWhkQ2tnZTF4dUlDQXZMeUIwYUdWelpTQmhiR3dnYUdGMlpTQjBhR1VnYjJabWMyVjBjeUJ5WlcxdmRtVmtJR0psWTJGMWMyVWdkMlVnWkc5dUozUWdhR0YyWlNCaFkyTmxjM01nZEc4Z2RHaGxiVnh1SUNBdkx5QjNhWFJvYjNWMElHRnNiQ0IwYUdVZ2FXNTBiQ0J6ZEhWbVppQjBhR2x6SUdseklHSmhZMnRtYVd4c2FXNW5YRzRnSUdOdmJuTjBJR1pwYkhSbGNtVmtJRDBnY0dsamF5aHJibTkzYmtadmNtMWhkQ3dnVzF4dUlDQWdJQ0FnWENKM1pXVnJaR0Y1WENJc1hHNGdJQ0FnSUNCY0ltVnlZVndpTEZ4dUlDQWdJQ0FnWENKNVpXRnlYQ0lzWEc0Z0lDQWdJQ0JjSW0xdmJuUm9YQ0lzWEc0Z0lDQWdJQ0JjSW1SaGVWd2lMRnh1SUNBZ0lDQWdYQ0pvYjNWeVhDSXNYRzRnSUNBZ0lDQmNJbTFwYm5WMFpWd2lMRnh1SUNBZ0lDQWdYQ0p6WldOdmJtUmNJaXhjYmlBZ0lDQWdJRndpZEdsdFpWcHZibVZPWVcxbFhDSXNYRzRnSUNBZ0lDQmNJbWh2ZFhKRGVXTnNaVndpTEZ4dUlDQWdJRjBwTEZ4dUlDQWdJR3RsZVNBOUlITjBjbWx1WjJsbWVTaG1hV3gwWlhKbFpDa3NYRzRnSUNBZ1pHRjBaVlJwYldWSWRXZGxJRDBnWENKRlJVVkZMQ0JNVEV4TUlHUXNJSGw1ZVhrc0lHZzZiVzBnWVZ3aU8xeHVJQ0J6ZDJsMFkyZ2dLR3RsZVNrZ2UxeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlY5VFNFOVNWQ2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pOTDJRdmVYbDVlVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVJFRlVSVjlOUlVRcE9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVRFeE1JR1FzSUhsNWVYbGNJanRjYmlBZ0lDQmpZWE5sSUhOMGNtbHVaMmxtZVNoR2IzSnRZWFJ6TGtSQlZFVmZUVVZFWDFkSlZFaGZWMFZGUzBSQldTazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSkZSVVVzSUV4TVRDQmtMQ0I1ZVhsNVhDSTdYRzRnSUNBZ1kyRnpaU0J6ZEhKcGJtZHBabmtvUm05eWJXRjBjeTVFUVZSRlgwWlZURXdwT2x4dUlDQWdJQ0FnY21WMGRYSnVJRndpVEV4TVRDQmtMQ0I1ZVhsNVhDSTdYRzRnSUNBZ1kyRnpaU0J6ZEhKcGJtZHBabmtvUm05eWJXRjBjeTVFUVZSRlgwaFZSMFVwT2x4dUlDQWdJQ0FnY21WMGRYSnVJRndpUlVWRlJTd2dURXhNVENCa0xDQjVlWGw1WENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NVVTVTFGWDFOSlRWQk1SU2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pvT20xdElHRmNJanRjYmlBZ0lDQmpZWE5sSUhOMGNtbHVaMmxtZVNoR2IzSnRZWFJ6TGxSSlRVVmZWMGxVU0Y5VFJVTlBUa1JUS1RwY2JpQWdJQ0FnSUhKbGRIVnliaUJjSW1nNmJXMDZjM01nWVZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVWRWxOUlY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKb09tMXRJR0ZjSWp0Y2JpQWdJQ0JqWVhObElITjBjbWx1WjJsbWVTaEdiM0p0WVhSekxsUkpUVVZmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pvT20xdElHRmNJanRjYmlBZ0lDQmpZWE5sSUhOMGNtbHVaMmxtZVNoR2IzSnRZWFJ6TGxSSlRVVmZNalJmVTBsTlVFeEZLVHBjYmlBZ0lDQWdJSEpsZEhWeWJpQmNJa2hJT20xdFhDSTdYRzRnSUNBZ1kyRnpaU0J6ZEhKcGJtZHBabmtvUm05eWJXRjBjeTVVU1UxRlh6STBYMWRKVkVoZlUwVkRUMDVFVXlrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKSVNEcHRiVHB6YzF3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVWRWxOUlY4eU5GOVhTVlJJWDFOSVQxSlVYMDlHUmxORlZDazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSklTRHB0YlZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVWRWxOUlY4eU5GOVhTVlJJWDB4UFRrZGZUMFpHVTBWVUtUcGNiaUFnSUNBZ0lISmxkSFZ5YmlCY0lraElPbTF0WENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NUVRVlJGVkVsTlJWOVRTRTlTVkNrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKTkwyUXZlWGw1ZVN3Z2FEcHRiU0JoWENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NUVRVlJGVkVsTlJWOU5SVVFwT2x4dUlDQWdJQ0FnY21WMGRYSnVJRndpVEV4TUlHUXNJSGw1ZVhrc0lHZzZiVzBnWVZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZSbFZNVENrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKTVRFeE1JR1FzSUhsNWVYa3NJR2c2YlcwZ1lWd2lPMXh1SUNBZ0lHTmhjMlVnYzNSeWFXNW5hV1o1S0VadmNtMWhkSE11UkVGVVJWUkpUVVZmU0ZWSFJTazZYRzRnSUNBZ0lDQnlaWFIxY200Z1pHRjBaVlJwYldWSWRXZGxPMXh1SUNBZ0lHTmhjMlVnYzNSeWFXNW5hV1o1S0VadmNtMWhkSE11UkVGVVJWUkpUVVZmVTBoUFVsUmZWMGxVU0Y5VFJVTlBUa1JUS1RwY2JpQWdJQ0FnSUhKbGRIVnliaUJjSWswdlpDOTVlWGw1TENCb09tMXRPbk56SUdGY0lqdGNiaUFnSUNCallYTmxJSE4wY21sdVoybG1lU2hHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMDFGUkY5WFNWUklYMU5GUTA5T1JGTXBPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lURXhNSUdRc0lIbDVlWGtzSUdnNmJXMDZjM01nWVZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZUVVZFWDFkSlZFaGZWMFZGUzBSQldTazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSkZSVVVzSUdRZ1RFeE1JSGw1ZVhrc0lHZzZiVzBnWVZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZSbFZNVEY5WFNWUklYMU5GUTA5T1JGTXBPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lURXhNVENCa0xDQjVlWGw1TENCb09tMXRPbk56SUdGY0lqdGNiaUFnSUNCallYTmxJSE4wY21sdVoybG1lU2hHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMGhWUjBWZlYwbFVTRjlUUlVOUFRrUlRLVHBjYmlBZ0lDQWdJSEpsZEhWeWJpQmNJa1ZGUlVVc0lFeE1URXdnWkN3Z2VYbDVlU3dnYURwdGJUcHpjeUJoWENJN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQmtZWFJsVkdsdFpVaDFaMlU3WEc0Z0lIMWNibjFjYmlJc0lDSnBiWEJ2Y25RZ0tpQmhjeUJGYm1kc2FYTm9JR1p5YjIwZ1hDSXVMMlZ1WjJ4cGMyZ3Vhbk5jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRVp2Y20xaGRITWdabkp2YlNCY0lpNHZabTl5YldGMGN5NXFjMXdpTzF4dWFXMXdiM0owSUhzZ2NHRmtVM1JoY25RZ2ZTQm1jbTl0SUZ3aUxpOTFkR2xzTG1welhDSTdYRzVjYm1aMWJtTjBhVzl1SUhOMGNtbHVaMmxtZVZSdmEyVnVjeWh6Y0d4cGRITXNJSFJ2YTJWdVZHOVRkSEpwYm1jcElIdGNiaUFnYkdWMElITWdQU0JjSWx3aU8xeHVJQ0JtYjNJZ0tHTnZibk4wSUhSdmEyVnVJRzltSUhOd2JHbDBjeWtnZTF4dUlDQWdJR2xtSUNoMGIydGxiaTVzYVhSbGNtRnNLU0I3WEc0Z0lDQWdJQ0J6SUNzOUlIUnZhMlZ1TG5aaGJEdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY3lBclBTQjBiMnRsYmxSdlUzUnlhVzVuS0hSdmEyVnVMblpoYkNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJ6TzF4dWZWeHVYRzVqYjI1emRDQnRZV055YjFSdmEyVnVWRzlHYjNKdFlYUlBjSFJ6SUQwZ2UxeHVJQ0JFT2lCR2IzSnRZWFJ6TGtSQlZFVmZVMGhQVWxRc1hHNGdJRVJFT2lCR2IzSnRZWFJ6TGtSQlZFVmZUVVZFTEZ4dUlDQkVSRVE2SUVadmNtMWhkSE11UkVGVVJWOUdWVXhNTEZ4dUlDQkVSRVJFT2lCR2IzSnRZWFJ6TGtSQlZFVmZTRlZIUlN4Y2JpQWdkRG9nUm05eWJXRjBjeTVVU1UxRlgxTkpUVkJNUlN4Y2JpQWdkSFE2SUVadmNtMWhkSE11VkVsTlJWOVhTVlJJWDFORlEwOU9SRk1zWEc0Z0lIUjBkRG9nUm05eWJXRjBjeTVVU1UxRlgxZEpWRWhmVTBoUFVsUmZUMFpHVTBWVUxGeHVJQ0IwZEhSME9pQkdiM0p0WVhSekxsUkpUVVZmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ3hjYmlBZ1ZEb2dSbTl5YldGMGN5NVVTVTFGWHpJMFgxTkpUVkJNUlN4Y2JpQWdWRlE2SUVadmNtMWhkSE11VkVsTlJWOHlORjlYU1ZSSVgxTkZRMDlPUkZNc1hHNGdJRlJVVkRvZ1JtOXliV0YwY3k1VVNVMUZYekkwWDFkSlZFaGZVMGhQVWxSZlQwWkdVMFZVTEZ4dUlDQlVWRlJVT2lCR2IzSnRZWFJ6TGxSSlRVVmZNalJmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ3hjYmlBZ1pqb2dSbTl5YldGMGN5NUVRVlJGVkVsTlJWOVRTRTlTVkN4Y2JpQWdabVk2SUVadmNtMWhkSE11UkVGVVJWUkpUVVZmVFVWRUxGeHVJQ0JtWm1ZNklFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlJsVk1UQ3hjYmlBZ1ptWm1aam9nUm05eWJXRjBjeTVFUVZSRlZFbE5SVjlJVlVkRkxGeHVJQ0JHT2lCR2IzSnRZWFJ6TGtSQlZFVlVTVTFGWDFOSVQxSlVYMWRKVkVoZlUwVkRUMDVFVXl4Y2JpQWdSa1k2SUVadmNtMWhkSE11UkVGVVJWUkpUVVZmVFVWRVgxZEpWRWhmVTBWRFQwNUVVeXhjYmlBZ1JrWkdPaUJHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMFpWVEV4ZlYwbFVTRjlUUlVOUFRrUlRMRnh1SUNCR1JrWkdPaUJHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMGhWUjBWZlYwbFVTRjlUUlVOUFRrUlRMRnh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdOc1lYTnpJRVp2Y20xaGRIUmxjaUI3WEc0Z0lITjBZWFJwWXlCamNtVmhkR1VvYkc5allXeGxMQ0J2Y0hSeklEMGdlMzBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzSUVadmNtMWhkSFJsY2loc2IyTmhiR1VzSUc5d2RITXBPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJSEJoY25ObFJtOXliV0YwS0dadGRDa2dlMXh1SUNBZ0lHeGxkQ0JqZFhKeVpXNTBJRDBnYm5Wc2JDeGNiaUFnSUNBZ0lHTjFjbkpsYm5SR2RXeHNJRDBnWENKY0lpeGNiaUFnSUNBZ0lHSnlZV05yWlhSbFpDQTlJR1poYkhObE8xeHVJQ0FnSUdOdmJuTjBJSE53YkdsMGN5QTlJRnRkTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWm0xMExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpJRDBnWm0xMExtTm9ZWEpCZENocEtUdGNiaUFnSUNBZ0lHbG1JQ2hqSUQwOVBTQmNJaWRjSWlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWTNWeWNtVnVkRVoxYkd3dWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUhOd2JHbDBjeTV3ZFhOb0tIc2diR2wwWlhKaGJEb2dZbkpoWTJ0bGRHVmtMQ0IyWVd3NklHTjFjbkpsYm5SR2RXeHNJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5RZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCamRYSnlaVzUwUm5Wc2JDQTlJRndpWENJN1hHNGdJQ0FnSUNBZ0lHSnlZV05yWlhSbFpDQTlJQ0ZpY21GamEyVjBaV1E3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dKeVlXTnJaWFJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFJuVnNiQ0FyUFNCak8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGpJRDA5UFNCamRYSnlaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SR2RXeHNJQ3M5SUdNN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZM1Z5Y21WdWRFWjFiR3d1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSE53YkdsMGN5NXdkWE5vS0hzZ2JHbDBaWEpoYkRvZ1ptRnNjMlVzSUhaaGJEb2dZM1Z5Y21WdWRFWjFiR3dnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZM1Z5Y21WdWRFWjFiR3dnUFNCak8xeHVJQ0FnSUNBZ0lDQmpkWEp5Wlc1MElEMGdZenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWTNWeWNtVnVkRVoxYkd3dWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdjM0JzYVhSekxuQjFjMmdvZXlCc2FYUmxjbUZzT2lCaWNtRmphMlYwWldRc0lIWmhiRG9nWTNWeWNtVnVkRVoxYkd3Z2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhOd2JHbDBjenRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJ0WVdOeWIxUnZhMlZ1Vkc5R2IzSnRZWFJQY0hSektIUnZhMlZ1S1NCN1hHNGdJQ0FnY21WMGRYSnVJRzFoWTNKdlZHOXJaVzVVYjBadmNtMWhkRTl3ZEhOYmRHOXJaVzVkTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iRzlqWVd4bExDQm1iM0p0WVhSUGNIUnpLU0I3WEc0Z0lDQWdkR2hwY3k1dmNIUnpJRDBnWm05eWJXRjBUM0IwY3p0Y2JpQWdJQ0IwYUdsekxteHZZeUE5SUd4dlkyRnNaVHRjYmlBZ0lDQjBhR2x6TG5ONWMzUmxiVXh2WXlBOUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCbWIzSnRZWFJYYVhSb1UzbHpkR1Z0UkdWbVlYVnNkQ2hrZEN3Z2IzQjBjeWtnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbk41YzNSbGJVeHZZeUE5UFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXplWE4wWlcxTWIyTWdQU0IwYUdsekxteHZZeTV5WldSbFptRjFiSFJVYjFONWMzUmxiU2dwTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCa1ppQTlJSFJvYVhNdWMzbHpkR1Z0VEc5akxtUjBSbTl5YldGMGRHVnlLR1IwTENCN0lDNHVMblJvYVhNdWIzQjBjeXdnTGk0dWIzQjBjeUI5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdaR1l1Wm05eWJXRjBLQ2s3WEc0Z0lIMWNibHh1SUNCbWIzSnRZWFJFWVhSbFZHbHRaU2hrZEN3Z2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ1kyOXVjM1FnWkdZZ1BTQjBhR2x6TG14dll5NWtkRVp2Y20xaGRIUmxjaWhrZEN3Z2V5QXVMaTUwYUdsekxtOXdkSE1zSUM0dUxtOXdkSE1nZlNrN1hHNGdJQ0FnY21WMGRYSnVJR1JtTG1admNtMWhkQ2dwTzF4dUlDQjlYRzVjYmlBZ1ptOXliV0YwUkdGMFpWUnBiV1ZRWVhKMGN5aGtkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaR1lnUFNCMGFHbHpMbXh2WXk1a2RFWnZjbTFoZEhSbGNpaGtkQ3dnZXlBdUxpNTBhR2x6TG05d2RITXNJQzR1TG05d2RITWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHUm1MbVp2Y20xaGRGUnZVR0Z5ZEhNb0tUdGNiaUFnZlZ4dVhHNGdJSEpsYzI5c2RtVmtUM0IwYVc5dWN5aGtkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaR1lnUFNCMGFHbHpMbXh2WXk1a2RFWnZjbTFoZEhSbGNpaGtkQ3dnZXlBdUxpNTBhR2x6TG05d2RITXNJQzR1TG05d2RITWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHUm1MbkpsYzI5c2RtVmtUM0IwYVc5dWN5Z3BPMXh1SUNCOVhHNWNiaUFnYm5WdEtHNHNJSEFnUFNBd0tTQjdYRzRnSUNBZ0x5OGdkMlVnWjJWMElITnZiV1VnY0dWeVppQnZkWFFnYjJZZ1pHOXBibWNnZEdocGN5Qm9aWEpsTENCaGJtNXZlV2x1WjJ4NVhHNGdJQ0FnYVdZZ0tIUm9hWE11YjNCMGN5NW1iM0pqWlZOcGJYQnNaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSEJoWkZOMFlYSjBLRzRzSUhBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRzl3ZEhNZ1BTQjdJQzR1TG5Sb2FYTXViM0IwY3lCOU8xeHVYRzRnSUNBZ2FXWWdLSEFnUGlBd0tTQjdYRzRnSUNBZ0lDQnZjSFJ6TG5CaFpGUnZJRDBnY0R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1c2IyTXViblZ0WW1WeVJtOXliV0YwZEdWeUtHOXdkSE1wTG1admNtMWhkQ2h1S1R0Y2JpQWdmVnh1WEc0Z0lHWnZjbTFoZEVSaGRHVlVhVzFsUm5KdmJWTjBjbWx1Wnloa2RDd2dabTEwS1NCN1hHNGdJQ0FnWTI5dWMzUWdhMjV2ZDI1RmJtZHNhWE5vSUQwZ2RHaHBjeTVzYjJNdWJHbHpkR2x1WjAxdlpHVW9LU0E5UFQwZ1hDSmxibHdpTEZ4dUlDQWdJQ0FnZFhObFJHRjBaVlJwYldWR2IzSnRZWFIwWlhJZ1BTQjBhR2x6TG14dll5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBbUppQjBhR2x6TG14dll5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBaFBUMGdYQ0puY21WbmIzSjVYQ0lzWEc0Z0lDQWdJQ0J6ZEhKcGJtY2dQU0FvYjNCMGN5d2daWGgwY21GamRDa2dQVDRnZEdocGN5NXNiMk11WlhoMGNtRmpkQ2hrZEN3Z2IzQjBjeXdnWlhoMGNtRmpkQ2tzWEc0Z0lDQWdJQ0JtYjNKdFlYUlBabVp6WlhRZ1BTQW9iM0IwY3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb1pIUXVhWE5QWm1aelpYUkdhWGhsWkNBbUppQmtkQzV2Wm1aelpYUWdQVDA5SURBZ0ppWWdiM0IwY3k1aGJHeHZkMW9wSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSmFYQ0k3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pIUXVhWE5XWVd4cFpDQS9JR1IwTG5wdmJtVXVabTl5YldGMFQyWm1jMlYwS0dSMExuUnpMQ0J2Y0hSekxtWnZjbTFoZENrZ09pQmNJbHdpTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUcxbGNtbGthV1Z0SUQwZ0tDa2dQVDVjYmlBZ0lDQWdJQ0FnYTI1dmQyNUZibWRzYVhOb1hHNGdJQ0FnSUNBZ0lDQWdQeUJGYm1kc2FYTm9MbTFsY21sa2FXVnRSbTl5UkdGMFpWUnBiV1VvWkhRcFhHNGdJQ0FnSUNBZ0lDQWdPaUJ6ZEhKcGJtY29leUJvYjNWeU9pQmNJbTUxYldWeWFXTmNJaXdnYUc5MWNrTjVZMnhsT2lCY0ltZ3hNbHdpSUgwc0lGd2laR0Y1Y0dWeWFXOWtYQ0lwTEZ4dUlDQWdJQ0FnYlc5dWRHZ2dQU0FvYkdWdVozUm9MQ0J6ZEdGdVpHRnNiMjVsS1NBOVBseHVJQ0FnSUNBZ0lDQnJibTkzYmtWdVoyeHBjMmhjYmlBZ0lDQWdJQ0FnSUNBL0lFVnVaMnhwYzJndWJXOXVkR2hHYjNKRVlYUmxWR2x0WlNoa2RDd2diR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQWdJRG9nYzNSeWFXNW5LSE4wWVc1a1lXeHZibVVnUHlCN0lHMXZiblJvT2lCc1pXNW5kR2dnZlNBNklIc2diVzl1ZEdnNklHeGxibWQwYUN3Z1pHRjVPaUJjSW01MWJXVnlhV05jSWlCOUxDQmNJbTF2Ym5Sb1hDSXBMRnh1SUNBZ0lDQWdkMlZsYTJSaGVTQTlJQ2hzWlc1bmRHZ3NJSE4wWVc1a1lXeHZibVVwSUQwK1hHNGdJQ0FnSUNBZ0lHdHViM2R1Ulc1bmJHbHphRnh1SUNBZ0lDQWdJQ0FnSUQ4Z1JXNW5iR2x6YUM1M1pXVnJaR0Y1Um05eVJHRjBaVlJwYldVb1pIUXNJR3hsYm1kMGFDbGNiaUFnSUNBZ0lDQWdJQ0E2SUhOMGNtbHVaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoYm1SaGJHOXVaU0EvSUhzZ2QyVmxhMlJoZVRvZ2JHVnVaM1JvSUgwZ09pQjdJSGRsWld0a1lYazZJR3hsYm1kMGFDd2diVzl1ZEdnNklGd2liRzl1WjF3aUxDQmtZWGs2SUZ3aWJuVnRaWEpwWTF3aUlIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGd2lkMlZsYTJSaGVWd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ2JXRjVZbVZOWVdOeWJ5QTlJQ2gwYjJ0bGJpa2dQVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JtYjNKdFlYUlBjSFJ6SUQwZ1JtOXliV0YwZEdWeUxtMWhZM0p2Vkc5clpXNVViMFp2Y20xaGRFOXdkSE1vZEc5clpXNHBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1ptOXliV0YwVDNCMGN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtWnZjbTFoZEZkcGRHaFRlWE4wWlcxRVpXWmhkV3gwS0dSMExDQm1iM0p0WVhSUGNIUnpLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEc5clpXNDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JsY21FZ1BTQW9iR1Z1WjNSb0tTQTlQbHh1SUNBZ0lDQWdJQ0JyYm05M2JrVnVaMnhwYzJnZ1B5QkZibWRzYVhOb0xtVnlZVVp2Y2tSaGRHVlVhVzFsS0dSMExDQnNaVzVuZEdncElEb2djM1J5YVc1bktIc2daWEpoT2lCc1pXNW5kR2dnZlN3Z1hDSmxjbUZjSWlrc1hHNGdJQ0FnSUNCMGIydGxibFJ2VTNSeWFXNW5JRDBnS0hSdmEyVnVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDOHZJRmRvWlhKbElIQnZjM05wWW14bE9pQm9kSFJ3T2k4dlkyeGtjaTUxYm1samIyUmxMbTl5Wnk5MGNtRnVjMnhoZEdsdmJpOWtZWFJsTFhScGJXVXRNUzlrWVhSbExYUnBiV1VqVkU5RExWTjBZVzVrWVd4dmJtVXRkbk11TFVadmNtMWhkQzFUZEhsc1pYTmNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaDBiMnRsYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUcxelhHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lsTmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTUxYlNoa2RDNXRhV3hzYVhObFkyOXVaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5WY0lqcGNiaUFnSUNBZ0lDQWdJQ0F2THlCbVlXeHNjeUIwYUhKdmRXZG9YRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbE5UVTF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG0xcGJHeHBjMlZqYjI1a0xDQXpLVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnpaV052Ym1SelhHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luTmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTUxYlNoa2RDNXpaV052Ym1RcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnpjMXdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtHUjBMbk5sWTI5dVpDd2dNaWs3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdabkpoWTNScGIyNWhiQ0J6WldOdmJtUnpYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJblYxWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9UV0YwYUM1bWJHOXZjaWhrZEM1dGFXeHNhWE5sWTI5dVpDQXZJREV3S1N3Z01pazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJblYxZFZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLRTFoZEdndVpteHZiM0lvWkhRdWJXbHNiR2x6WldOdmJtUWdMeUF4TURBcEtUdGNiaUFnSUNBZ0lDQWdJQ0F2THlCdGFXNTFkR1Z6WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW0xY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1dGFXNTFkR1VwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdGJWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViblZ0S0dSMExtMXBiblYwWlN3Z01pazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2FHOTFjbk5jYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpYUZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG1odmRYSWdKU0F4TWlBOVBUMGdNQ0EvSURFeUlEb2daSFF1YUc5MWNpQWxJREV5S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWFHaGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTUxYlNoa2RDNW9iM1Z5SUNVZ01USWdQVDA5SURBZ1B5QXhNaUE2SUdSMExtaHZkWElnSlNBeE1pd2dNaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWtoY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1b2IzVnlLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpU0VoY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1b2IzVnlMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ2Wm1aelpYUmNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lXbHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQXJObHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdadmNtMWhkRTltWm5ObGRDaDdJR1p2Y20xaGREb2dYQ0p1WVhKeWIzZGNJaXdnWVd4c2IzZGFPaUIwYUdsekxtOXdkSE11WVd4c2IzZGFJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKYVdsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBck1EWTZNREJjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWIzSnRZWFJQWm1aelpYUW9leUJtYjNKdFlYUTZJRndpYzJodmNuUmNJaXdnWVd4c2IzZGFPaUIwYUdsekxtOXdkSE11WVd4c2IzZGFJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKYVdscGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3hwYTJVZ0t6QTJNREJjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWIzSnRZWFJQWm1aelpYUW9leUJtYjNKdFlYUTZJRndpZEdWamFHbGxYQ0lzSUdGc2JHOTNXam9nZEdocGN5NXZjSFJ6TG1Gc2JHOTNXaUI5S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVdscGFXbHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQkZVMVJjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa2RDNTZiMjVsTG05bVpuTmxkRTVoYldVb1pIUXVkSE1zSUhzZ1ptOXliV0YwT2lCY0luTm9iM0owWENJc0lHeHZZMkZzWlRvZ2RHaHBjeTVzYjJNdWJHOWpZV3hsSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmFXbHBhV2x3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0JGWVhOMFpYSnVJRk4wWVc1a1lYSmtJRlJwYldWY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmtkQzU2YjI1bExtOW1abk5sZEU1aGJXVW9aSFF1ZEhNc0lIc2dabTl5YldGME9pQmNJbXh2Ym1kY0lpd2diRzlqWVd4bE9pQjBhR2x6TG14dll5NXNiMk5oYkdVZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2VtOXVaVnh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0o2WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJRUZ0WlhKcFkyRXZUbVYzWDFsdmNtdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJrZEM1NmIyNWxUbUZ0WlR0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ0WlhKcFpHbGxiWE5jYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpWVZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzFsY21sa2FXVnRLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdaR0YwWlhOY2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWelpVUmhkR1ZVYVcxbFJtOXliV0YwZEdWeUlEOGdjM1J5YVc1bktIc2daR0Y1T2lCY0ltNTFiV1Z5YVdOY0lpQjlMQ0JjSW1SaGVWd2lLU0E2SUhSb2FYTXViblZ0S0dSMExtUmhlU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1Sa1hDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFhObFJHRjBaVlJwYldWR2IzSnRZWFIwWlhJZ1B5QnpkSEpwYm1jb2V5QmtZWGs2SUZ3aU1pMWthV2RwZEZ3aUlIMHNJRndpWkdGNVhDSXBJRG9nZEdocGN5NXVkVzBvWkhRdVpHRjVMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIzWldWclpHRjVjeUF0SUhOMFlXNWtZV3h2Ym1WY2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVkxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBeFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9aSFF1ZDJWbGEyUmhlU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1Oalkxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBblZIVmxjeWRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM1pXVnJaR0Y1S0Z3aWMyaHZjblJjSWl3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1OalkyTmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3hwYTJVZ0oxUjFaWE5rWVhrblhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkMlZsYTJSaGVTaGNJbXh2Ym1kY0lpd2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltTmpZMk5qWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJQ2RVSjF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZGxaV3RrWVhrb1hDSnVZWEp5YjNkY0lpd2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnZDJWbGEyUmhlWE1nTFNCbWIzSnRZWFJjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpUlZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0F4WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXVkMlZsYTJSaGVTazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJa1ZGUlZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0FuVkhWbGN5ZGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIzWldWclpHRjVLRndpYzJodmNuUmNJaXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pGUlVWRlhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSUNkVWRXVnpaR0Y1SjF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZGxaV3RrWVhrb1hDSnNiMjVuWENJc0lHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVJVVkZSVVZjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd4cGEyVWdKMVFuWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2QyVmxhMlJoZVNoY0ltNWhjbkp2ZDF3aUxDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnYlc5dWRHaHpJQzBnYzNSaGJtUmhiRzl1WlZ4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKTVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSURGY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjFjMlZFWVhSbFZHbHRaVVp2Y20xaGRIUmxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSE4wY21sdVp5aDdJRzF2Ym5Sb09pQmNJbTUxYldWeWFXTmNJaXdnWkdGNU9pQmNJbTUxYldWeWFXTmNJaUI5TENCY0ltMXZiblJvWENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTV1ZFcwb1pIUXViVzl1ZEdncE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSk1URndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQXdNU3dnWkc5bGMyNG5kQ0J6WldWdElIUnZJSGR2Y210Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjFjMlZFWVhSbFZHbHRaVVp2Y20xaGRIUmxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSE4wY21sdVp5aDdJRzF2Ym5Sb09pQmNJakl0WkdsbmFYUmNJaXdnWkdGNU9pQmNJbTUxYldWeWFXTmNJaUI5TENCY0ltMXZiblJvWENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTV1ZFcwb1pIUXViVzl1ZEdnc0lESXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pNVEV4Y0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHeHBhMlVnU21GdVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiVzl1ZEdnb1hDSnphRzl5ZEZ3aUxDQjBjblZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVRFeE1URndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQktZVzUxWVhKNVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiVzl1ZEdnb1hDSnNiMjVuWENJc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKTVRFeE1URndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQktYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYlc5dWRHZ29YQ0p1WVhKeWIzZGNJaXdnZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2JXOXVkR2h6SUMwZ1ptOXliV0YwWEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWsxY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHeHBhMlVnTVZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnpaVVJoZEdWVWFXMWxSbTl5YldGMGRHVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdjM1J5YVc1bktIc2diVzl1ZEdnNklGd2liblZ0WlhKcFkxd2lJSDBzSUZ3aWJXOXVkR2hjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCMGFHbHpMbTUxYlNoa2RDNXRiMjUwYUNrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lrMU5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElEQXhYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFhObFJHRjBaVlJwYldWR2IzSnRZWFIwWlhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCemRISnBibWNvZXlCdGIyNTBhRG9nWENJeUxXUnBaMmwwWENJZ2ZTd2dYQ0p0YjI1MGFGd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJSFJvYVhNdWJuVnRLR1IwTG0xdmJuUm9MQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVRVMU5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElFcGhibHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxdmJuUm9LRndpYzJodmNuUmNJaXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pOVFUxTlhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSUVwaGJuVmhjbmxjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdGIyNTBhQ2hjSW14dmJtZGNJaXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pOVFUxTlRWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNCS1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiVzl1ZEdnb1hDSnVZWEp5YjNkY0lpd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUhsbFlYSnpYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbmxjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd4cGEyVWdNakF4TkZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnpaVVJoZEdWVWFXMWxSbTl5YldGMGRHVnlJRDhnYzNSeWFXNW5LSHNnZVdWaGNqb2dYQ0p1ZFcxbGNtbGpYQ0lnZlN3Z1hDSjVaV0Z5WENJcElEb2dkR2hwY3k1dWRXMG9aSFF1ZVdWaGNpazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbmw1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJREUwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RYTmxSR0YwWlZScGJXVkdiM0p0WVhSMFpYSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1B5QnpkSEpwYm1jb2V5QjVaV0Z5T2lCY0lqSXRaR2xuYVhSY0lpQjlMQ0JjSW5sbFlYSmNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIwYUdsekxtNTFiU2hrZEM1NVpXRnlMblJ2VTNSeWFXNW5LQ2t1YzJ4cFkyVW9MVElwTENBeUtUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2llWGw1ZVZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0F3TURFeVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkWE5sUkdGMFpWUnBiV1ZHYjNKdFlYUjBaWEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJ6ZEhKcGJtY29leUI1WldGeU9pQmNJbTUxYldWeWFXTmNJaUI5TENCY0lubGxZWEpjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCMGFHbHpMbTUxYlNoa2RDNTVaV0Z5TENBMEtUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2llWGw1ZVhsNVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSURBd01EQXhNbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWelpVUmhkR1ZVYVcxbFJtOXliV0YwZEdWeVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2MzUnlhVzVuS0hzZ2VXVmhjam9nWENKdWRXMWxjbWxqWENJZ2ZTd2dYQ0o1WldGeVhDSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dkR2hwY3k1dWRXMG9aSFF1ZVdWaGNpd2dOaWs3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdaWEpoYzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKSFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSUVGRVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdaWEpoS0Z3aWMyaHZjblJjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lrZEhYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElFRnVibThnUkc5dGFXNXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWlhKaEtGd2liRzl1WjF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lSMGRIUjBkY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJsY21Fb1hDSnVZWEp5YjNkY0lpazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXRyWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9aSFF1ZDJWbGExbGxZWEl1ZEc5VGRISnBibWNvS1M1emJHbGpaU2d0TWlrc0lESXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pyYTJ0clhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXVkVzBvWkhRdWQyVmxhMWxsWVhJc0lEUXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pYWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9aSFF1ZDJWbGEwNTFiV0psY2lrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lsZFhYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXVkMlZsYTA1MWJXSmxjaXdnTWlrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltOWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTUxYlNoa2RDNXZjbVJwYm1Gc0tUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2liMjl2WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9aSFF1YjNKa2FXNWhiQ3dnTXlrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luRmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3hwYTJVZ01WeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG5GMVlYSjBaWElwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKeGNWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBd01WeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG5GMVlYSjBaWElzSURJcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSllYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1RXRjBhQzVtYkc5dmNpaGtkQzUwY3lBdklERXdNREFwS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWVGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViblZ0S0dSMExuUnpLVHRjYmlBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMWhlV0psVFdGamNtOG9kRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlPMXh1WEc0Z0lDQWdjbVYwZFhKdUlITjBjbWx1WjJsbWVWUnZhMlZ1Y3loR2IzSnRZWFIwWlhJdWNHRnljMlZHYjNKdFlYUW9abTEwS1N3Z2RHOXJaVzVVYjFOMGNtbHVaeWs3WEc0Z0lIMWNibHh1SUNCbWIzSnRZWFJFZFhKaGRHbHZia1p5YjIxVGRISnBibWNvWkhWeUxDQm1iWFFwSUh0Y2JpQWdJQ0JqYjI1emRDQjBiMnRsYmxSdlJtbGxiR1FnUFNBb2RHOXJaVzRwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaDBiMnRsYmxzd1hTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pUWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdYQ0p0YVd4c2FYTmxZMjl1WkZ3aU8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnpYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSnpaV052Ym1SY0lqdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2liVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGd2liV2x1ZFhSbFhDSTdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbWhjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbWh2ZFhKY0lqdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2laRndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGd2laR0Y1WENJN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luZGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0luZGxaV3RjSWp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVRWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aWJXOXVkR2hjSWp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWVWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aWVXVmhjbHdpTzF4dUlDQWdJQ0FnSUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIUnZhMlZ1Vkc5VGRISnBibWNnUFNBb2JHbHNaSFZ5S1NBOVBpQW9kRzlyWlc0cElEMCtJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiV0Z3Y0dWa0lEMGdkRzlyWlc1VWIwWnBaV3hrS0hSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhjSEJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG01MWJTaHNhV3hrZFhJdVoyVjBLRzFoY0hCbFpDa3NJSFJ2YTJWdUxteGxibWQwYUNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RHOXJaVzV6SUQwZ1JtOXliV0YwZEdWeUxuQmhjbk5sUm05eWJXRjBLR1p0ZENrc1hHNGdJQ0FnSUNCeVpXRnNWRzlyWlc1eklEMGdkRzlyWlc1ekxuSmxaSFZqWlNoY2JpQWdJQ0FnSUNBZ0tHWnZkVzVrTENCN0lHeHBkR1Z5WVd3c0lIWmhiQ0I5S1NBOVBpQW9iR2wwWlhKaGJDQS9JR1p2ZFc1a0lEb2dabTkxYm1RdVkyOXVZMkYwS0haaGJDa3BMRnh1SUNBZ0lDQWdJQ0JiWFZ4dUlDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUdOdmJHeGhjSE5sWkNBOUlHUjFjaTV6YUdsbWRGUnZLQzR1TG5KbFlXeFViMnRsYm5NdWJXRndLSFJ2YTJWdVZHOUdhV1ZzWkNrdVptbHNkR1Z5S0NoMEtTQTlQaUIwS1NrN1hHNGdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVlJ2YTJWdWN5aDBiMnRsYm5Nc0lIUnZhMlZ1Vkc5VGRISnBibWNvWTI5c2JHRndjMlZrS1NrN1hHNGdJSDFjYm4xY2JpSXNJQ0psZUhCdmNuUWdaR1ZtWVhWc2RDQmpiR0Z6Y3lCSmJuWmhiR2xrSUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvY21WaGMyOXVMQ0JsZUhCc1lXNWhkR2x2YmlrZ2UxeHVJQ0FnSUhSb2FYTXVjbVZoYzI5dUlEMGdjbVZoYzI5dU8xeHVJQ0FnSUhSb2FYTXVaWGh3YkdGdVlYUnBiMjRnUFNCbGVIQnNZVzVoZEdsdmJqdGNiaUFnZlZ4dVhHNGdJSFJ2VFdWemMyRm5aU2dwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVsZUhCc1lXNWhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UzUm9hWE11Y21WaGMyOXVmVG9nSkh0MGFHbHpMbVY0Y0d4aGJtRjBhVzl1ZldBN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbFlYTnZianRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnZXlCYWIyNWxTWE5CWW5OMGNtRmpkRVZ5Y205eUlIMGdabkp2YlNCY0lpNHZaWEp5YjNKekxtcHpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHbHVkR1Z5Wm1GalpWeHVJQ292WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JqYkdGemN5QmFiMjVsSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCMGVYQmxJRzltSUhwdmJtVmNiaUFnSUNvZ1FHRmljM1J5WVdOMFhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2RIbHdaU2dwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnV205dVpVbHpRV0p6ZEhKaFkzUkZjbkp2Y2lncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCdVlXMWxJRzltSUhSb2FYTWdlbTl1WlM1Y2JpQWdJQ29nUUdGaWMzUnlZV04wWEc0Z0lDQXFJRUIwZVhCbElIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQm5aWFFnYm1GdFpTZ3BJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dXbTl1WlVselFXSnpkSEpoWTNSRmNuSnZjaWdwTzF4dUlDQjlYRzVjYmlBZ1oyVjBJR2xoYm1GT1lXMWxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG01aGJXVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUIzYUdWMGFHVnlJSFJvWlNCdlptWnpaWFFnYVhNZ2EyNXZkMjRnZEc4Z1ltVWdabWw0WldRZ1ptOXlJSFJvWlNCM2FHOXNaU0I1WldGeUxseHVJQ0FnS2lCQVlXSnpkSEpoWTNSY2JpQWdJQ29nUUhSNWNHVWdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2FYTlZibWwyWlhKellXd29LU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRnB2Ym1WSmMwRmljM1J5WVdOMFJYSnliM0lvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklIUm9aU0J2Wm1aelpYUW5jeUJqYjIxdGIyNGdibUZ0WlNBb2MzVmphQ0JoY3lCRlUxUXBJR0YwSUhSb1pTQnpjR1ZqYVdacFpXUWdkR2x0WlhOMFlXMXdYRzRnSUNBcUlFQmhZbk4wY21GamRGeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnZEhNZ0xTQkZjRzlqYUNCdGFXeHNhWE5sWTI5dVpITWdabTl5SUhkb2FXTm9JSFJ2SUdkbGRDQjBhR1VnYm1GdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRTl3ZEdsdmJuTWdkRzhnWVdabVpXTjBJSFJvWlNCbWIzSnRZWFJjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11Wm05eWJXRjBJQzBnVjJoaGRDQnpkSGxzWlNCdlppQnZabVp6WlhRZ2RHOGdjbVYwZFhKdUxpQkJZMk5sY0hSeklDZHNiMjVuSnlCdmNpQW5jMmh2Y25RbkxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYjNCMGN5NXNiMk5oYkdVZ0xTQlhhR0YwSUd4dlkyRnNaU0IwYnlCeVpYUjFjbTRnZEdobElHOW1abk5sZENCdVlXMWxJR2x1TGx4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0J2Wm1aelpYUk9ZVzFsS0hSekxDQnZjSFJ6S1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUZwdmJtVkpjMEZpYzNSeVlXTjBSWEp5YjNJb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJvWlNCdlptWnpaWFFuY3lCMllXeDFaU0JoY3lCaElITjBjbWx1WjF4dUlDQWdLaUJBWVdKemRISmhZM1JjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIUnpJQzBnUlhCdlkyZ2diV2xzYkdselpXTnZibVJ6SUdadmNpQjNhR2xqYUNCMGJ5Qm5aWFFnZEdobElHOW1abk5sZEZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdabTl5YldGMElDMGdWMmhoZENCemRIbHNaU0J2WmlCdlptWnpaWFFnZEc4Z2NtVjBkWEp1TGx4dUlDQWdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdRV05qWlhCMGN5QW5ibUZ5Y205M0p5d2dKM05vYjNKMEp5d2diM0lnSjNSbFkyaHBaU2N1SUZKbGRIVnlibWx1WnlBbkt6WW5MQ0FuS3pBMk9qQXdKeXdnYjNJZ0p5c3dOakF3SnlCeVpYTndaV04wYVhabGJIbGNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ1ptOXliV0YwVDJabWMyVjBLSFJ6TENCbWIzSnRZWFFwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnV205dVpVbHpRV0p6ZEhKaFkzUkZjbkp2Y2lncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQjBhR1VnYjJabWMyVjBJR2x1SUcxcGJuVjBaWE1nWm05eUlIUm9hWE1nZW05dVpTQmhkQ0IwYUdVZ2MzQmxZMmxtYVdWa0lIUnBiV1Z6ZEdGdGNDNWNiaUFnSUNvZ1FHRmljM1J5WVdOMFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0IwY3lBdElFVndiMk5vSUcxcGJHeHBjMlZqYjI1a2N5Qm1iM0lnZDJocFkyZ2dkRzhnWTI5dGNIVjBaU0IwYUdVZ2IyWm1jMlYwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMWNiaUFnSUNvdlhHNGdJRzltWm5ObGRDaDBjeWtnZTF4dUlDQWdJSFJvY205M0lHNWxkeUJhYjI1bFNYTkJZbk4wY21GamRFVnljbTl5S0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIZG9aWFJvWlhJZ2RHaHBjeUJhYjI1bElHbHpJR1Z4ZFdGc0lIUnZJR0Z1YjNSb1pYSWdlbTl1WlZ4dUlDQWdLaUJBWVdKemRISmhZM1JjYmlBZ0lDb2dRSEJoY21GdElIdGFiMjVsZlNCdmRHaGxjbHB2Ym1VZ0xTQjBhR1VnZW05dVpTQjBieUJqYjIxd1lYSmxYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQmxjWFZoYkhNb2IzUm9aWEphYjI1bEtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lGcHZibVZKYzBGaWMzUnlZV04wUlhKeWIzSW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZDJobGRHaGxjaUIwYUdseklGcHZibVVnYVhNZ2RtRnNhV1F1WEc0Z0lDQXFJRUJoWW5OMGNtRmpkRnh1SUNBZ0tpQkFkSGx3WlNCN1ltOXZiR1ZoYm4xY2JpQWdJQ292WEc0Z0lHZGxkQ0JwYzFaaGJHbGtLQ2tnZTF4dUlDQWdJSFJvY205M0lHNWxkeUJhYjI1bFNYTkJZbk4wY21GamRFVnljbTl5S0NrN1hHNGdJSDFjYm4xY2JpSXNJQ0pwYlhCdmNuUWdleUJtYjNKdFlYUlBabVp6WlhRc0lIQmhjbk5sV205dVpVbHVabThnZlNCbWNtOXRJRndpTGk0dmFXMXdiQzkxZEdsc0xtcHpYQ0k3WEc1cGJYQnZjblFnV205dVpTQm1jbTl0SUZ3aUxpNHZlbTl1WlM1cWMxd2lPMXh1WEc1c1pYUWdjMmx1WjJ4bGRHOXVJRDBnYm5Wc2JEdGNibHh1THlvcVhHNGdLaUJTWlhCeVpYTmxiblJ6SUhSb1pTQnNiMk5oYkNCNmIyNWxJR1p2Y2lCMGFHbHpJRXBoZG1GVFkzSnBjSFFnWlc1MmFYSnZibTFsYm5RdVhHNGdLaUJBYVcxd2JHVnRaVzUwY3lCN1dtOXVaWDFjYmlBcUwxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1kyeGhjM01nVTNsemRHVnRXbTl1WlNCbGVIUmxibVJ6SUZwdmJtVWdlMXh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJR0VnYzJsdVoyeGxkRzl1SUdsdWMzUmhibU5sSUc5bUlIUm9aU0JzYjJOaGJDQjZiMjVsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMU41YzNSbGJWcHZibVY5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHbHVjM1JoYm1ObEtDa2dlMXh1SUNBZ0lHbG1JQ2h6YVc1bmJHVjBiMjRnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhOcGJtZHNaWFJ2YmlBOUlHNWxkeUJUZVhOMFpXMWFiMjVsS0NrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnphVzVuYkdWMGIyNDdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCblpYUWdkSGx3WlNncElIdGNiaUFnSUNCeVpYUjFjbTRnWENKemVYTjBaVzFjSWp0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR2RsZENCdVlXMWxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MGJDNUVZWFJsVkdsdFpVWnZjbTFoZENncExuSmxjMjlzZG1Wa1QzQjBhVzl1Y3lncExuUnBiV1ZhYjI1bE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUVCdmRtVnljbWxrWlNBcUtpOWNiaUFnWjJWMElHbHpWVzVwZG1WeWMyRnNLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJRzltWm5ObGRFNWhiV1VvZEhNc0lIc2dabTl5YldGMExDQnNiMk5oYkdVZ2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCd1lYSnpaVnB2Ym1WSmJtWnZLSFJ6TENCbWIzSnRZWFFzSUd4dlkyRnNaU2s3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm1iM0p0WVhSUFptWnpaWFFvZEhNc0lHWnZjbTFoZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUJtYjNKdFlYUlBabVp6WlhRb2RHaHBjeTV2Wm1aelpYUW9kSE1wTENCbWIzSnRZWFFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdiMlptYzJWMEtIUnpLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDMXVaWGNnUkdGMFpTaDBjeWt1WjJWMFZHbHRaWHB2Ym1WUFptWnpaWFFvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR1Z4ZFdGc2N5aHZkR2hsY2xwdmJtVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2IzUm9aWEphYjI1bExuUjVjR1VnUFQwOUlGd2ljM2x6ZEdWdFhDSTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCblpYUWdhWE5XWVd4cFpDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCN0lHWnZjbTFoZEU5bVpuTmxkQ3dnY0dGeWMyVmFiMjVsU1c1bWJ5d2dhWE5WYm1SbFptbHVaV1FzSUc5aWFsUnZURzlqWVd4VVV5QjlJR1p5YjIwZ1hDSXVMaTlwYlhCc0wzVjBhV3d1YW5OY0lqdGNibWx0Y0c5eWRDQmFiMjVsSUdaeWIyMGdYQ0l1TGk5NmIyNWxMbXB6WENJN1hHNWNibXhsZENCa2RHWkRZV05vWlNBOUlIdDlPMXh1Wm5WdVkzUnBiMjRnYldGclpVUlVSaWg2YjI1bEtTQjdYRzRnSUdsbUlDZ2haSFJtUTJGamFHVmJlbTl1WlYwcElIdGNiaUFnSUNCa2RHWkRZV05vWlZ0NmIyNWxYU0E5SUc1bGR5QkpiblJzTGtSaGRHVlVhVzFsUm05eWJXRjBLRndpWlc0dFZWTmNJaXdnZTF4dUlDQWdJQ0FnYUc5MWNqRXlPaUJtWVd4elpTeGNiaUFnSUNBZ0lIUnBiV1ZhYjI1bE9pQjZiMjVsTEZ4dUlDQWdJQ0FnZVdWaGNqb2dYQ0p1ZFcxbGNtbGpYQ0lzWEc0Z0lDQWdJQ0J0YjI1MGFEb2dYQ0l5TFdScFoybDBYQ0lzWEc0Z0lDQWdJQ0JrWVhrNklGd2lNaTFrYVdkcGRGd2lMRnh1SUNBZ0lDQWdhRzkxY2pvZ1hDSXlMV1JwWjJsMFhDSXNYRzRnSUNBZ0lDQnRhVzUxZEdVNklGd2lNaTFrYVdkcGRGd2lMRnh1SUNBZ0lDQWdjMlZqYjI1a09pQmNJakl0WkdsbmFYUmNJaXhjYmlBZ0lDQWdJR1Z5WVRvZ1hDSnphRzl5ZEZ3aUxGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCa2RHWkRZV05vWlZ0NmIyNWxYVHRjYm4xY2JseHVZMjl1YzNRZ2RIbHdaVlJ2VUc5eklEMGdlMXh1SUNCNVpXRnlPaUF3TEZ4dUlDQnRiMjUwYURvZ01TeGNiaUFnWkdGNU9pQXlMRnh1SUNCbGNtRTZJRE1zWEc0Z0lHaHZkWEk2SURRc1hHNGdJRzFwYm5WMFpUb2dOU3hjYmlBZ2MyVmpiMjVrT2lBMkxGeHVmVHRjYmx4dVpuVnVZM1JwYjI0Z2FHRmphM2xQWm1aelpYUW9aSFJtTENCa1lYUmxLU0I3WEc0Z0lHTnZibk4wSUdadmNtMWhkSFJsWkNBOUlHUjBaaTVtYjNKdFlYUW9aR0YwWlNrdWNtVndiR0ZqWlNndlhGeDFNakF3UlM5bkxDQmNJbHdpS1N4Y2JpQWdJQ0J3WVhKelpXUWdQU0F2S0Z4Y1pDc3BYRnd2S0Z4Y1pDc3BYRnd2S0Z4Y1pDc3BJQ2hCUkh4Q1F5a3NQeUFvWEZ4a0t5azZLRnhjWkNzcE9paGNYR1FyS1M4dVpYaGxZeWhtYjNKdFlYUjBaV1FwTEZ4dUlDQWdJRnNzSUdaTmIyNTBhQ3dnWmtSaGVTd2dabGxsWVhJc0lHWmhaRTl5UW1Nc0lHWkliM1Z5TENCbVRXbHVkWFJsTENCbVUyVmpiMjVrWFNBOUlIQmhjbk5sWkR0Y2JpQWdjbVYwZFhKdUlGdG1XV1ZoY2l3Z1prMXZiblJvTENCbVJHRjVMQ0JtWVdSUGNrSmpMQ0JtU0c5MWNpd2daazFwYm5WMFpTd2dabE5sWTI5dVpGMDdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIQmhjblJ6VDJabWMyVjBLR1IwWml3Z1pHRjBaU2tnZTF4dUlDQmpiMjV6ZENCbWIzSnRZWFIwWldRZ1BTQmtkR1l1Wm05eWJXRjBWRzlRWVhKMGN5aGtZWFJsS1R0Y2JpQWdZMjl1YzNRZ1ptbHNiR1ZrSUQwZ1cxMDdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1ptOXliV0YwZEdWa0xteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QjBlWEJsTENCMllXeDFaU0I5SUQwZ1ptOXliV0YwZEdWa1cybGRPMXh1SUNBZ0lHTnZibk4wSUhCdmN5QTlJSFI1Y0dWVWIxQnZjMXQwZVhCbFhUdGNibHh1SUNBZ0lHbG1JQ2gwZVhCbElEMDlQU0JjSW1WeVlWd2lLU0I3WEc0Z0lDQWdJQ0JtYVd4c1pXUmJjRzl6WFNBOUlIWmhiSFZsTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvSVdselZXNWtaV1pwYm1Wa0tIQnZjeWtwSUh0Y2JpQWdJQ0FnSUdacGJHeGxaRnR3YjNOZElEMGdjR0Z5YzJWSmJuUW9kbUZzZFdVc0lERXdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHWnBiR3hsWkR0Y2JuMWNibHh1YkdWMElHbGhibUZhYjI1bFEyRmphR1VnUFNCN2ZUdGNiaThxS2x4dUlDb2dRU0I2YjI1bElHbGtaVzUwYVdacFpXUWdZbmtnWVc0Z1NVRk9RU0JwWkdWdWRHbG1hV1Z5TENCc2FXdGxJRUZ0WlhKcFkyRXZUbVYzWDFsdmNtdGNiaUFxSUVCcGJYQnNaVzFsYm5SeklIdGFiMjVsZlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmpiR0Z6Y3lCSlFVNUJXbTl1WlNCbGVIUmxibVJ6SUZwdmJtVWdlMXh1SUNBdktpcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc1aGJXVWdMU0JhYjI1bElHNWhiV1ZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdTVUZPUVZwdmJtVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdZM0psWVhSbEtHNWhiV1VwSUh0Y2JpQWdJQ0JwWmlBb0lXbGhibUZhYjI1bFEyRmphR1ZiYm1GdFpWMHBJSHRjYmlBZ0lDQWdJR2xoYm1GYWIyNWxRMkZqYUdWYmJtRnRaVjBnUFNCdVpYY2dTVUZPUVZwdmJtVW9ibUZ0WlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnBZVzVoV205dVpVTmhZMmhsVzI1aGJXVmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGMyVjBJR3h2WTJGc0lHTmhZMmhsY3k0Z1UyaHZkV3hrSUc5dWJIa2dZbVVnYm1WalpYTnpZWEo1SUdsdUlIUmxjM1JwYm1jZ2MyTmxibUZ5YVc5ekxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0MmIybGtmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJSEpsYzJWMFEyRmphR1VvS1NCN1hHNGdJQ0FnYVdGdVlWcHZibVZEWVdOb1pTQTlJSHQ5TzF4dUlDQWdJR1IwWmtOaFkyaGxJRDBnZTMwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjNhR1YwYUdWeUlIUm9aU0J3Y205MmFXUmxaQ0J6ZEhKcGJtY2dhWE1nWVNCMllXeHBaQ0J6Y0dWamFXWnBaWEl1SUZSb2FYTWdiMjVzZVNCamFHVmphM01nZEdobElITjBjbWx1WnlkeklHWnZjbTFoZEN3Z2JtOTBJSFJvWVhRZ2RHaGxJSE53WldOcFptbGxjaUJwWkdWdWRHbG1hV1Z6SUdFZ2EyNXZkMjRnZW05dVpUc2djMlZsSUdselZtRnNhV1JhYjI1bElHWnZjaUIwYUdGMExseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnY3lBdElGUm9aU0J6ZEhKcGJtY2dkRzhnWTJobFkyc2dkbUZzYVdScGRIa2diMjVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVUZPUVZwdmJtVXVhWE5XWVd4cFpGTndaV05wWm1sbGNpaGNJa0Z0WlhKcFkyRXZUbVYzWDFsdmNtdGNJaWtnTHk4OVBpQjBjblZsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWxCVGtGYWIyNWxMbWx6Vm1Gc2FXUlRjR1ZqYVdacFpYSW9YQ0pUY0c5eWRINStZbXh2Y25CY0lpa2dMeTg5UGlCbVlXeHpaVnh1SUNBZ0tpQkFaR1Z3Y21WallYUmxaQ0JVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdaaGJITmxJR1p2Y2lCemIyMWxJSFpoYkdsa0lFbEJUa0VnYm1GdFpYTXVJRlZ6WlNCcGMxWmhiR2xrV205dVpTQnBibk4wWldGa0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0aWIyOXNaV0Z1ZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdselZtRnNhV1JUY0dWamFXWnBaWElvY3lrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdSYWIyNWxLSE1wTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2QyaGxkR2hsY2lCMGFHVWdjSEp2ZG1sa1pXUWdjM1J5YVc1bklHbGtaVzUwYVdacFpYTWdZU0J5WldGc0lIcHZibVZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIcHZibVVnTFNCVWFHVWdjM1J5YVc1bklIUnZJR05vWldOclhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVsQlRrRmFiMjVsTG1selZtRnNhV1JhYjI1bEtGd2lRVzFsY21sallTOU9aWGRmV1c5eWExd2lLU0F2THowK0lIUnlkV1ZjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVUZPUVZwdmJtVXVhWE5XWVd4cFpGcHZibVVvWENKR1lXNTBZWE5wWVM5RFlYTjBiR1ZjSWlrZ0x5ODlQaUJtWVd4elpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCSlFVNUJXbTl1WlM1cGMxWmhiR2xrV205dVpTaGNJbE53YjNKMGZuNWliRzl5Y0Z3aUtTQXZMejArSUdaaGJITmxYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2FYTldZV3hwWkZwdmJtVW9lbTl1WlNrZ2UxeHVJQ0FnSUdsbUlDZ2hlbTl1WlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lIMWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdibVYzSUVsdWRHd3VSR0YwWlZScGJXVkdiM0p0WVhRb1hDSmxiaTFWVTF3aUxDQjdJSFJwYldWYWIyNWxPaUI2YjI1bElIMHBMbVp2Y20xaGRDZ3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmU0JqWVhSamFDQW9aU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lHTnZibk4wY25WamRHOXlLRzVoYldVcElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dUlDQWdJQzhxS2lCQWNISnBkbUYwWlNBcUtpOWNiaUFnSUNCMGFHbHpMbnB2Ym1WT1lXMWxJRDBnYm1GdFpUdGNiaUFnSUNBdktpb2dRSEJ5YVhaaGRHVWdLaW92WEc0Z0lDQWdkR2hwY3k1MllXeHBaQ0E5SUVsQlRrRmFiMjVsTG1selZtRnNhV1JhYjI1bEtHNWhiV1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdaMlYwSUhSNWNHVW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlGd2lhV0Z1WVZ3aU8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUVCdmRtVnljbWxrWlNBcUtpOWNiaUFnWjJWMElHNWhiV1VvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWVtOXVaVTVoYldVN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2FYTlZibWwyWlhKellXd29LU0I3WEc0Z0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdiMlptYzJWMFRtRnRaU2gwY3l3Z2V5Qm1iM0p0WVhRc0lHeHZZMkZzWlNCOUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhCaGNuTmxXbTl1WlVsdVptOG9kSE1zSUdadmNtMWhkQ3dnYkc5allXeGxMQ0IwYUdsekxtNWhiV1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdabTl5YldGMFQyWm1jMlYwS0hSekxDQm1iM0p0WVhRcElIdGNiaUFnSUNCeVpYUjFjbTRnWm05eWJXRjBUMlptYzJWMEtIUm9hWE11YjJabWMyVjBLSFJ6S1N3Z1ptOXliV0YwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJRzltWm5ObGRDaDBjeWtnZTF4dUlDQWdJR052Ym5OMElHUmhkR1VnUFNCdVpYY2dSR0YwWlNoMGN5azdYRzVjYmlBZ0lDQnBaaUFvYVhOT1lVNG9aR0YwWlNrcElISmxkSFZ5YmlCT1lVNDdYRzVjYmlBZ0lDQmpiMjV6ZENCa2RHWWdQU0J0WVd0bFJGUkdLSFJvYVhNdWJtRnRaU2s3WEc0Z0lDQWdiR1YwSUZ0NVpXRnlMQ0J0YjI1MGFDd2daR0Y1TENCaFpFOXlRbU1zSUdodmRYSXNJRzFwYm5WMFpTd2djMlZqYjI1a1hTQTlJR1IwWmk1bWIzSnRZWFJVYjFCaGNuUnpYRzRnSUNBZ0lDQS9JSEJoY25SelQyWm1jMlYwS0dSMFppd2daR0YwWlNsY2JpQWdJQ0FnSURvZ2FHRmphM2xQWm1aelpYUW9aSFJtTENCa1lYUmxLVHRjYmx4dUlDQWdJR2xtSUNoaFpFOXlRbU1nUFQwOUlGd2lRa05jSWlrZ2UxeHVJQ0FnSUNBZ2VXVmhjaUE5SUMxTllYUm9MbUZpY3loNVpXRnlLU0FySURFN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1ltVmpZWFZ6WlNCM1pTZHlaU0IxYzJsdVp5Qm9iM1Z5TVRJZ1lXNWtJR2gwZEhCek9pOHZZblZuY3k1amFISnZiV2wxYlM1dmNtY3ZjQzlqYUhKdmJXbDFiUzlwYzNOMVpYTXZaR1YwWVdsc1AybGtQVEV3TWpVMU5qUW1ZMkZ1UFRJbWNUMGxNakl5TkNVelFUQXdKVEl5SlRJd1pHRjBaWFJwYldWbWIzSnRZWFJjYmlBZ0lDQmpiMjV6ZENCaFpHcDFjM1JsWkVodmRYSWdQU0JvYjNWeUlEMDlQU0F5TkNBL0lEQWdPaUJvYjNWeU8xeHVYRzRnSUNBZ1kyOXVjM1FnWVhOVlZFTWdQU0J2WW1wVWIweHZZMkZzVkZNb2UxeHVJQ0FnSUNBZ2VXVmhjaXhjYmlBZ0lDQWdJRzF2Ym5Sb0xGeHVJQ0FnSUNBZ1pHRjVMRnh1SUNBZ0lDQWdhRzkxY2pvZ1lXUnFkWE4wWldSSWIzVnlMRnh1SUNBZ0lDQWdiV2x1ZFhSbExGeHVJQ0FnSUNBZ2MyVmpiMjVrTEZ4dUlDQWdJQ0FnYldsc2JHbHpaV052Ym1RNklEQXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnNaWFFnWVhOVVV5QTlJQ3RrWVhSbE8xeHVJQ0FnSUdOdmJuTjBJRzkyWlhJZ1BTQmhjMVJUSUNVZ01UQXdNRHRjYmlBZ0lDQmhjMVJUSUMwOUlHOTJaWElnUGowZ01DQS9JRzkyWlhJZ09pQXhNREF3SUNzZ2IzWmxjanRjYmlBZ0lDQnlaWFIxY200Z0tHRnpWVlJESUMwZ1lYTlVVeWtnTHlBb05qQWdLaUF4TURBd0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQWIzWmxjbkpwWkdVZ0tpb3ZYRzRnSUdWeGRXRnNjeWh2ZEdobGNscHZibVVwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdiM1JvWlhKYWIyNWxMblI1Y0dVZ1BUMDlJRndpYVdGdVlWd2lJQ1ltSUc5MGFHVnlXbTl1WlM1dVlXMWxJRDA5UFNCMGFHbHpMbTVoYldVN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2FYTldZV3hwWkNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTJZV3hwWkR0Y2JpQWdmVnh1ZlZ4dUlpd2dJbWx0Y0c5eWRDQjdJR1p2Y20xaGRFOW1abk5sZEN3Z2MybG5ibVZrVDJabWMyVjBJSDBnWm5KdmJTQmNJaTR1TDJsdGNHd3ZkWFJwYkM1cWMxd2lPMXh1YVcxd2IzSjBJRnB2Ym1VZ1puSnZiU0JjSWk0dUwzcHZibVV1YW5OY0lqdGNibHh1YkdWMElITnBibWRzWlhSdmJpQTlJRzUxYkd3N1hHNWNiaThxS2x4dUlDb2dRU0I2YjI1bElIZHBkR2dnWVNCbWFYaGxaQ0J2Wm1aelpYUWdLRzFsWVc1cGJtY2dibThnUkZOVUtWeHVJQ29nUUdsdGNHeGxiV1Z1ZEhNZ2UxcHZibVY5WEc0Z0tpOWNibVY0Y0c5eWRDQmtaV1poZFd4MElHTnNZWE56SUVacGVHVmtUMlptYzJWMFdtOXVaU0JsZUhSbGJtUnpJRnB2Ym1VZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHRWdjMmx1WjJ4bGRHOXVJR2x1YzNSaGJtTmxJRzltSUZWVVExeHVJQ0FnS2lCQWNtVjBkWEp1SUh0R2FYaGxaRTltWm5ObGRGcHZibVY5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElIVjBZMGx1YzNSaGJtTmxLQ2tnZTF4dUlDQWdJR2xtSUNoemFXNW5iR1YwYjI0Z1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lITnBibWRzWlhSdmJpQTlJRzVsZHlCR2FYaGxaRTltWm5ObGRGcHZibVVvTUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnphVzVuYkdWMGIyNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHRnVJR2x1YzNSaGJtTmxJSGRwZEdnZ1lTQnpjR1ZqYVdacFpXUWdiMlptYzJWMFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2Wm1aelpYUWdMU0JVYUdVZ2IyWm1jMlYwSUdsdUlHMXBiblYwWlhOY2JpQWdJQ29nUUhKbGRIVnliaUI3Um1sNFpXUlBabVp6WlhSYWIyNWxmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2x1YzNSaGJtTmxLRzltWm5ObGRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdlptWnpaWFFnUFQwOUlEQWdQeUJHYVhobFpFOW1abk5sZEZwdmJtVXVkWFJqU1c1emRHRnVZMlVnT2lCdVpYY2dSbWw0WldSUFptWnpaWFJhYjI1bEtHOW1abk5sZENrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUdGdUlHbHVjM1JoYm1ObElHOW1JRVpwZUdWa1QyWm1jMlYwV205dVpTQm1jbTl0SUdFZ1ZWUkRJRzltWm5ObGRDQnpkSEpwYm1jc0lHeHBhMlVnWENKVlZFTXJObHdpWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpJQzBnVkdobElHOW1abk5sZENCemRISnBibWNnZEc4Z2NHRnljMlZjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSbWw0WldSUFptWnpaWFJhYjI1bExuQmhjbk5sVTNCbFkybG1hV1Z5S0Z3aVZWUkRLelpjSWlsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUm1sNFpXUlBabVp6WlhSYWIyNWxMbkJoY25ObFUzQmxZMmxtYVdWeUtGd2lWVlJES3pBMlhDSXBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFWnBlR1ZrVDJabWMyVjBXbTl1WlM1d1lYSnpaVk53WldOcFptbGxjaWhjSWxWVVF5MDJPakF3WENJcFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBacGVHVmtUMlptYzJWMFdtOXVaWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ3WVhKelpWTndaV05wWm1sbGNpaHpLU0I3WEc0Z0lDQWdhV1lnS0hNcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhJZ1BTQnpMbTFoZEdOb0tDOWVkWFJqS0Q4NktGc3JMVjFjWEdSN01Td3lmU2tvUHpvNktGeGNaSHN5ZlNrcFB5ay9KQzlwS1R0Y2JpQWdJQ0FnSUdsbUlDaHlLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JtbDRaV1JQWm1aelpYUmFiMjVsS0hOcFoyNWxaRTltWm5ObGRDaHlXekZkTENCeVd6SmRLU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2IyWm1jMlYwS1NCN1hHNGdJQ0FnYzNWd1pYSW9LVHRjYmlBZ0lDQXZLaW9nUUhCeWFYWmhkR1VnS2lvdlhHNGdJQ0FnZEdocGN5NW1hWGhsWkNBOUlHOW1abk5sZER0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR2RsZENCMGVYQmxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmNJbVpwZUdWa1hDSTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCblpYUWdibUZ0WlNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW1hWGhsWkNBOVBUMGdNQ0EvSUZ3aVZWUkRYQ0lnT2lCZ1ZWUkRKSHRtYjNKdFlYUlBabVp6WlhRb2RHaHBjeTVtYVhobFpDd2dYQ0p1WVhKeWIzZGNJaWw5WUR0Y2JpQWdmVnh1WEc0Z0lHZGxkQ0JwWVc1aFRtRnRaU2dwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVtYVhobFpDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVJYUmpMMVZVUTF3aU8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZRVYwWXk5SFRWUWtlMlp2Y20xaGRFOW1abk5sZENndGRHaHBjeTVtYVhobFpDd2dYQ0p1WVhKeWIzZGNJaWw5WUR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQnZabVp6WlhST1lXMWxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG01aGJXVTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCbWIzSnRZWFJQWm1aelpYUW9kSE1zSUdadmNtMWhkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQm1iM0p0WVhSUFptWnpaWFFvZEdocGN5NW1hWGhsWkN3Z1ptOXliV0YwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR2RsZENCcGMxVnVhWFpsY25OaGJDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHOW1abk5sZENncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW1hWGhsWkR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR1Z4ZFdGc2N5aHZkR2hsY2xwdmJtVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2IzUm9aWEphYjI1bExuUjVjR1VnUFQwOUlGd2labWw0WldSY0lpQW1KaUJ2ZEdobGNscHZibVV1Wm1sNFpXUWdQVDA5SUhSb2FYTXVabWw0WldRN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2FYTldZV3hwWkNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dWZWeHVJaXdnSW1sdGNHOXlkQ0JhYjI1bElHWnliMjBnWENJdUxpOTZiMjVsTG1welhDSTdYRzVjYmk4cUtseHVJQ29nUVNCNmIyNWxJSFJvWVhRZ1ptRnBiR1ZrSUhSdklIQmhjbk5sTGlCWmIzVWdjMmh2ZFd4a0lHNWxkbVZ5SUc1bFpXUWdkRzhnYVc1emRHRnVkR2xoZEdVZ2RHaHBjeTVjYmlBcUlFQnBiWEJzWlcxbGJuUnpJSHRhYjI1bGZWeHVJQ292WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JqYkdGemN5QkpiblpoYkdsa1dtOXVaU0JsZUhSbGJtUnpJRnB2Ym1VZ2UxeHVJQ0JqYjI1emRISjFZM1J2Y2loNmIyNWxUbUZ0WlNrZ2UxeHVJQ0FnSUhOMWNHVnlLQ2s3WEc0Z0lDQWdMeW9xSUNCQWNISnBkbUYwWlNBcUwxeHVJQ0FnSUhSb2FYTXVlbTl1WlU1aGJXVWdQU0I2YjI1bFRtRnRaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHZGxkQ0IwZVhCbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCY0ltbHVkbUZzYVdSY0lqdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQWIzWmxjbkpwWkdVZ0tpb3ZYRzRnSUdkbGRDQnVZVzFsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxucHZibVZPWVcxbE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUVCdmRtVnljbWxrWlNBcUtpOWNiaUFnWjJWMElHbHpWVzVwZG1WeWMyRnNLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJRzltWm5ObGRFNWhiV1VvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JtYjNKdFlYUlBabVp6WlhRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUZ3aVhDSTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCdlptWnpaWFFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR1Z4ZFdGc2N5Z3BJSHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm5aWFFnYVhOV1lXeHBaQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYm4xY2JpSXNJQ0l2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JseHVhVzF3YjNKMElGcHZibVVnWm5KdmJTQmNJaTR1TDNwdmJtVXVhbk5jSWp0Y2JtbHRjRzl5ZENCSlFVNUJXbTl1WlNCbWNtOXRJRndpTGk0dmVtOXVaWE12U1VGT1FWcHZibVV1YW5OY0lqdGNibWx0Y0c5eWRDQkdhWGhsWkU5bVpuTmxkRnB2Ym1VZ1puSnZiU0JjSWk0dUwzcHZibVZ6TDJacGVHVmtUMlptYzJWMFdtOXVaUzVxYzF3aU8xeHVhVzF3YjNKMElFbHVkbUZzYVdSYWIyNWxJR1p5YjIwZ1hDSXVMaTk2YjI1bGN5OXBiblpoYkdsa1dtOXVaUzVxYzF3aU8xeHVYRzVwYlhCdmNuUWdleUJwYzFWdVpHVm1hVzVsWkN3Z2FYTlRkSEpwYm1jc0lHbHpUblZ0WW1WeUlIMGdabkp2YlNCY0lpNHZkWFJwYkM1cWMxd2lPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYm05eWJXRnNhWHBsV205dVpTaHBibkIxZEN3Z1pHVm1ZWFZzZEZwdmJtVXBJSHRjYmlBZ2JHVjBJRzltWm5ObGREdGNiaUFnYVdZZ0tHbHpWVzVrWldacGJtVmtLR2x1Y0hWMEtTQjhmQ0JwYm5CMWRDQTlQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCa1pXWmhkV3gwV205dVpUdGNiaUFnZlNCbGJITmxJR2xtSUNocGJuQjFkQ0JwYm5OMFlXNWpaVzltSUZwdmJtVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2FXNXdkWFE3WEc0Z0lIMGdaV3h6WlNCcFppQW9hWE5UZEhKcGJtY29hVzV3ZFhRcEtTQjdYRzRnSUNBZ1kyOXVjM1FnYkc5M1pYSmxaQ0E5SUdsdWNIVjBMblJ2VEc5M1pYSkRZWE5sS0NrN1hHNGdJQ0FnYVdZZ0tHeHZkMlZ5WldRZ1BUMDlJRndpYkc5allXeGNJaUI4ZkNCc2IzZGxjbVZrSUQwOVBTQmNJbk41YzNSbGJWd2lLU0J5WlhSMWNtNGdaR1ZtWVhWc2RGcHZibVU3WEc0Z0lDQWdaV3h6WlNCcFppQW9iRzkzWlhKbFpDQTlQVDBnWENKMWRHTmNJaUI4ZkNCc2IzZGxjbVZrSUQwOVBTQmNJbWR0ZEZ3aUtTQnlaWFIxY200Z1JtbDRaV1JQWm1aelpYUmFiMjVsTG5WMFkwbHVjM1JoYm1ObE8xeHVJQ0FnSUdWc2MyVWdjbVYwZFhKdUlFWnBlR1ZrVDJabWMyVjBXbTl1WlM1d1lYSnpaVk53WldOcFptbGxjaWhzYjNkbGNtVmtLU0I4ZkNCSlFVNUJXbTl1WlM1amNtVmhkR1VvYVc1d2RYUXBPMXh1SUNCOUlHVnNjMlVnYVdZZ0tHbHpUblZ0WW1WeUtHbHVjSFYwS1NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJHYVhobFpFOW1abk5sZEZwdmJtVXVhVzV6ZEdGdVkyVW9hVzV3ZFhRcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0hSNWNHVnZaaUJwYm5CMWRDQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQnBibkIxZEM1dlptWnpaWFFnSmlZZ2RIbHdaVzltSUdsdWNIVjBMbTltWm5ObGRDQTlQVDBnWENKdWRXMWlaWEpjSWlrZ2UxeHVJQ0FnSUM4dklGUm9hWE1nYVhNZ1pIVnRZaXdnWW5WMElIUm9aU0JwYm5OMFlXNWpaVzltSUdOb1pXTnJJR0ZpYjNabElHUnZaWE51SjNRZ2MyVmxiU0IwYnlCeVpXRnNiSGtnZDI5eWExeHVJQ0FnSUM4dklITnZJSGRsSjNKbElHUjFZMnNnWTJobFkydHBibWNnYVhSY2JpQWdJQ0J5WlhSMWNtNGdhVzV3ZFhRN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkpiblpoYkdsa1dtOXVaU2hwYm5CMWRDazdYRzRnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnVTNsemRHVnRXbTl1WlNCbWNtOXRJRndpTGk5NmIyNWxjeTl6ZVhOMFpXMWFiMjVsTG1welhDSTdYRzVwYlhCdmNuUWdTVUZPUVZwdmJtVWdabkp2YlNCY0lpNHZlbTl1WlhNdlNVRk9RVnB2Ym1VdWFuTmNJanRjYm1sdGNHOXlkQ0JNYjJOaGJHVWdabkp2YlNCY0lpNHZhVzF3YkM5c2IyTmhiR1V1YW5OY0lqdGNibHh1YVcxd2IzSjBJSHNnYm05eWJXRnNhWHBsV205dVpTQjlJR1p5YjIwZ1hDSXVMMmx0Y0d3dmVtOXVaVlYwYVd3dWFuTmNJanRjYmx4dWJHVjBJRzV2ZHlBOUlDZ3BJRDArSUVSaGRHVXVibTkzS0Nrc1hHNGdJR1JsWm1GMWJIUmFiMjVsSUQwZ1hDSnplWE4wWlcxY0lpeGNiaUFnWkdWbVlYVnNkRXh2WTJGc1pTQTlJRzUxYkd3c1hHNGdJR1JsWm1GMWJIUk9kVzFpWlhKcGJtZFRlWE4wWlcwZ1BTQnVkV3hzTEZ4dUlDQmtaV1poZFd4MFQzVjBjSFYwUTJGc1pXNWtZWElnUFNCdWRXeHNMRnh1SUNCMGFISnZkMDl1U1c1MllXeHBaRHRjYmx4dUx5b3FYRzRnS2lCVFpYUjBhVzVuY3lCamIyNTBZV2x1Y3lCemRHRjBhV01nWjJWMGRHVnljeUJoYm1RZ2MyVjBkR1Z5Y3lCMGFHRjBJR052Ym5SeWIyd2dUSFY0YjI0bmN5QnZkbVZ5WVd4c0lHSmxhR0YyYVc5eUxpQk1kWGh2YmlCcGN5QmhJSE5wYlhCc1pTQnNhV0p5WVhKNUlIZHBkR2dnWm1WM0lHOXdkR2x2Ym5Nc0lHSjFkQ0IwYUdVZ2IyNWxjeUJwZENCa2IyVnpJR2hoZG1VZ2JHbDJaU0JvWlhKbExseHVJQ292WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JqYkdGemN5QlRaWFIwYVc1bmN5QjdYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUdOaGJHeGlZV05ySUdadmNpQnlaWFIxY201cGJtY2dkR2hsSUdOMWNuSmxiblFnZEdsdFpYTjBZVzF3TGx4dUlDQWdLaUJBZEhsd1pTQjdablZ1WTNScGIyNTlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUc1dmR5Z3BJSHRjYmlBZ0lDQnlaWFIxY200Z2JtOTNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZObGRDQjBhR1VnWTJGc2JHSmhZMnNnWm05eUlISmxkSFZ5Ym1sdVp5QjBhR1VnWTNWeWNtVnVkQ0IwYVcxbGMzUmhiWEF1WEc0Z0lDQXFJRlJvWlNCbWRXNWpkR2x2YmlCemFHOTFiR1FnY21WMGRYSnVJR0VnYm5WdFltVnlMQ0IzYUdsamFDQjNhV3hzSUdKbElHbHVkR1Z5Y0hKbGRHVmtJR0Z6SUdGdUlFVndiMk5vSUcxcGJHeHBjMlZqYjI1a0lHTnZkVzUwWEc0Z0lDQXFJRUIwZVhCbElIdG1kVzVqZEdsdmJuMWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1UyVjBkR2x1WjNNdWJtOTNJRDBnS0NrZ1BUNGdSR0YwWlM1dWIzY29LU0FySURNd01EQWdMeThnY0hKbGRHVnVaQ0JwZENCcGN5QXpJSE5sWTI5dVpITWdhVzRnZEdobElHWjFkSFZ5WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JUWlhSMGFXNW5jeTV1YjNjZ1BTQW9LU0E5UGlBd0lDOHZJR0ZzZDJGNWN5QndjbVYwWlc1a0lHbDBKM01nU21GdUlERXNJREU1TnpBZ1lYUWdiV2xrYm1sbmFIUWdhVzRnVlZSRElIUnBiV1ZjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ6WlhRZ2JtOTNLRzRwSUh0Y2JpQWdJQ0J1YjNjZ1BTQnVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZObGRDQjBhR1VnWkdWbVlYVnNkQ0IwYVcxbElIcHZibVVnZEc4Z1kzSmxZWFJsSUVSaGRHVlVhVzFsY3lCcGJpNGdSRzlsY3lCdWIzUWdZV1ptWldOMElHVjRhWE4wYVc1bklHbHVjM1JoYm1ObGN5NWNiaUFnSUNvZ1ZYTmxJSFJvWlNCMllXeDFaU0JjSW5ONWMzUmxiVndpSUhSdklISmxjMlYwSUhSb2FYTWdkbUZzZFdVZ2RHOGdkR2hsSUhONWMzUmxiU2R6SUhScGJXVWdlbTl1WlM1Y2JpQWdJQ29nUUhSNWNHVWdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnpaWFFnWkdWbVlYVnNkRnB2Ym1Vb2VtOXVaU2tnZTF4dUlDQWdJR1JsWm1GMWJIUmFiMjVsSUQwZ2VtOXVaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUdSbFptRjFiSFFnZEdsdFpTQjZiMjVsSUc5aWFtVmpkQ0JqZFhKeVpXNTBiSGtnZFhObFpDQjBieUJqY21WaGRHVWdSR0YwWlZScGJXVnpMaUJFYjJWeklHNXZkQ0JoWm1abFkzUWdaWGhwYzNScGJtY2dhVzV6ZEdGdVkyVnpMbHh1SUNBZ0tpQlVhR1VnWkdWbVlYVnNkQ0IyWVd4MVpTQnBjeUIwYUdVZ2MzbHpkR1Z0SjNNZ2RHbHRaU0I2YjI1bElDaDBhR1VnYjI1bElITmxkQ0J2YmlCMGFHVWdiV0ZqYUdsdVpTQjBhR0YwSUhKMWJuTWdkR2hwY3lCamIyUmxLUzVjYmlBZ0lDb2dRSFI1Y0dVZ2UxcHZibVY5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHUmxabUYxYkhSYWIyNWxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnViM0p0WVd4cGVtVmFiMjVsS0dSbFptRjFiSFJhYjI1bExDQlRlWE4wWlcxYWIyNWxMbWx1YzNSaGJtTmxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUdSbFptRjFiSFFnYkc5allXeGxJSFJ2SUdOeVpXRjBaU0JFWVhSbFZHbHRaWE1nZDJsMGFDNGdSRzlsY3lCdWIzUWdZV1ptWldOMElHVjRhWE4wYVc1bklHbHVjM1JoYm1ObGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1pHVm1ZWFZzZEV4dlkyRnNaU2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdaR1ZtWVhWc2RFeHZZMkZzWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlRaWFFnZEdobElHUmxabUYxYkhRZ2JHOWpZV3hsSUhSdklHTnlaV0YwWlNCRVlYUmxWR2x0WlhNZ2QybDBhQzRnUkc5bGN5QnViM1FnWVdabVpXTjBJR1Y0YVhOMGFXNW5JR2x1YzNSaGJtTmxjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCelpYUWdaR1ZtWVhWc2RFeHZZMkZzWlNoc2IyTmhiR1VwSUh0Y2JpQWdJQ0JrWldaaGRXeDBURzlqWVd4bElEMGdiRzlqWVd4bE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdaR1ZtWVhWc2RDQnVkVzFpWlhKcGJtY2djM2x6ZEdWdElIUnZJR055WldGMFpTQkVZWFJsVkdsdFpYTWdkMmwwYUM0Z1JHOWxjeUJ1YjNRZ1lXWm1aV04wSUdWNGFYTjBhVzVuSUdsdWMzUmhibU5sY3k1Y2JpQWdJQ29nUUhSNWNHVWdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnWkdWbVlYVnNkRTUxYldKbGNtbHVaMU41YzNSbGJTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1pHVm1ZWFZzZEU1MWJXSmxjbWx1WjFONWMzUmxiVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVFpYUWdkR2hsSUdSbFptRjFiSFFnYm5WdFltVnlhVzVuSUhONWMzUmxiU0IwYnlCamNtVmhkR1VnUkdGMFpWUnBiV1Z6SUhkcGRHZ3VJRVJ2WlhNZ2JtOTBJR0ZtWm1WamRDQmxlR2x6ZEdsdVp5QnBibk4wWVc1alpYTXVYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYzJWMElHUmxabUYxYkhST2RXMWlaWEpwYm1kVGVYTjBaVzBvYm5WdFltVnlhVzVuVTNsemRHVnRLU0I3WEc0Z0lDQWdaR1ZtWVhWc2RFNTFiV0psY21sdVoxTjVjM1JsYlNBOUlHNTFiV0psY21sdVoxTjVjM1JsYlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHUmxabUYxYkhRZ2IzVjBjSFYwSUdOaGJHVnVaR0Z5SUhSdklHTnlaV0YwWlNCRVlYUmxWR2x0WlhNZ2QybDBhQzRnUkc5bGN5QnViM1FnWVdabVpXTjBJR1Y0YVhOMGFXNW5JR2x1YzNSaGJtTmxjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdaR1ZtWVhWc2RFOTFkSEIxZEVOaGJHVnVaR0Z5S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJrWldaaGRXeDBUM1YwY0hWMFEyRnNaVzVrWVhJN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVMlYwSUhSb1pTQmtaV1poZFd4MElHOTFkSEIxZENCallXeGxibVJoY2lCMGJ5QmpjbVZoZEdVZ1JHRjBaVlJwYldWeklIZHBkR2d1SUVSdlpYTWdibTkwSUdGbVptVmpkQ0JsZUdsemRHbHVaeUJwYm5OMFlXNWpaWE11WEc0Z0lDQXFJRUIwZVhCbElIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2MyVjBJR1JsWm1GMWJIUlBkWFJ3ZFhSRFlXeGxibVJoY2lodmRYUndkWFJEWVd4bGJtUmhjaWtnZTF4dUlDQWdJR1JsWm1GMWJIUlBkWFJ3ZFhSRFlXeGxibVJoY2lBOUlHOTFkSEIxZEVOaGJHVnVaR0Z5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IzYUdWMGFHVnlJRXgxZUc5dUlIZHBiR3dnZEdoeWIzY2dkMmhsYmlCcGRDQmxibU52ZFc1MFpYSnpJR2x1ZG1Gc2FXUWdSR0YwWlZScGJXVnpMQ0JFZFhKaGRHbHZibk1zSUc5eUlFbHVkR1Z5ZG1Gc2MxeHVJQ0FnS2lCQWRIbHdaU0I3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ2RHaHliM2RQYmtsdWRtRnNhV1FvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvY205M1QyNUpiblpoYkdsa08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk5sZENCM2FHVjBhR1Z5SUV4MWVHOXVJSGRwYkd3Z2RHaHliM2NnZDJobGJpQnBkQ0JsYm1OdmRXNTBaWEp6SUdsdWRtRnNhV1FnUkdGMFpWUnBiV1Z6TENCRWRYSmhkR2x2Ym5Nc0lHOXlJRWx1ZEdWeWRtRnNjMXh1SUNBZ0tpQkFkSGx3WlNCN1ltOXZiR1ZoYm4xY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCelpYUWdkR2h5YjNkUGJrbHVkbUZzYVdRb2RDa2dlMXh1SUNBZ0lIUm9jbTkzVDI1SmJuWmhiR2xrSUQwZ2REdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhObGRDQk1kWGh2YmlkeklHZHNiMkpoYkNCallXTm9aWE11SUZOb2IzVnNaQ0J2Ym14NUlHSmxJRzVsWTJWemMyRnllU0JwYmlCMFpYTjBhVzVuSUhOalpXNWhjbWx2Y3k1Y2JpQWdJQ29nUUhKbGRIVnliaUI3ZG05cFpIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnlaWE5sZEVOaFkyaGxjeWdwSUh0Y2JpQWdJQ0JNYjJOaGJHVXVjbVZ6WlhSRFlXTm9aU2dwTzF4dUlDQWdJRWxCVGtGYWIyNWxMbkpsYzJWMFEyRmphR1VvS1R0Y2JpQWdmVnh1ZlZ4dUlpd2dJbWx0Y0c5eWRDQjdJSEJoWkZOMFlYSjBMQ0J5YjNWdVpGUnZMQ0JvWVhOU1pXeGhkR2wyWlNCOUlHWnliMjBnWENJdUwzVjBhV3d1YW5OY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUVWdVoyeHBjMmdnWm5KdmJTQmNJaTR2Wlc1bmJHbHphQzVxYzF3aU8xeHVhVzF3YjNKMElGTmxkSFJwYm1keklHWnliMjBnWENJdUxpOXpaWFIwYVc1bmN5NXFjMXdpTzF4dWFXMXdiM0owSUVSaGRHVlVhVzFsSUdaeWIyMGdYQ0l1TGk5a1lYUmxkR2x0WlM1cWMxd2lPMXh1YVcxd2IzSjBJRWxCVGtGYWIyNWxJR1p5YjIwZ1hDSXVMaTk2YjI1bGN5OUpRVTVCV205dVpTNXFjMXdpTzF4dVhHNHZMeUIwYjJSdklDMGdjbVZ0WVhBZ1kyRmphR2x1WjF4dVhHNXNaWFFnYVc1MGJFeEdRMkZqYUdVZ1BTQjdmVHRjYm1aMWJtTjBhVzl1SUdkbGRFTmhZMmhsWkV4R0tHeHZZMU4wY21sdVp5d2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lHTnZibk4wSUd0bGVTQTlJRXBUVDA0dWMzUnlhVzVuYVdaNUtGdHNiMk5UZEhKcGJtY3NJRzl3ZEhOZEtUdGNiaUFnYkdWMElHUjBaaUE5SUdsdWRHeE1Sa05oWTJobFcydGxlVjA3WEc0Z0lHbG1JQ2doWkhSbUtTQjdYRzRnSUNBZ1pIUm1JRDBnYm1WM0lFbHVkR3d1VEdsemRFWnZjbTFoZENoc2IyTlRkSEpwYm1jc0lHOXdkSE1wTzF4dUlDQWdJR2x1ZEd4TVJrTmhZMmhsVzJ0bGVWMGdQU0JrZEdZN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUdSMFpqdGNibjFjYmx4dWJHVjBJR2x1ZEd4RVZFTmhZMmhsSUQwZ2UzMDdYRzVtZFc1amRHbHZiaUJuWlhSRFlXTm9aV1JFVkVZb2JHOWpVM1J5YVc1bkxDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ1kyOXVjM1FnYTJWNUlEMGdTbE5QVGk1emRISnBibWRwWm5rb1cyeHZZMU4wY21sdVp5d2diM0IwYzEwcE8xeHVJQ0JzWlhRZ1pIUm1JRDBnYVc1MGJFUlVRMkZqYUdWYmEyVjVYVHRjYmlBZ2FXWWdLQ0ZrZEdZcElIdGNiaUFnSUNCa2RHWWdQU0J1WlhjZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDaHNiMk5UZEhKcGJtY3NJRzl3ZEhNcE8xeHVJQ0FnSUdsdWRHeEVWRU5oWTJobFcydGxlVjBnUFNCa2RHWTdYRzRnSUgxY2JpQWdjbVYwZFhKdUlHUjBaanRjYm4xY2JseHViR1YwSUdsdWRHeE9kVzFEWVdOb1pTQTlJSHQ5TzF4dVpuVnVZM1JwYjI0Z1oyVjBRMkZqYUdWa1NVNUdLR3h2WTFOMGNtbHVaeXdnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJR052Ym5OMElHdGxlU0E5SUVwVFQwNHVjM1J5YVc1bmFXWjVLRnRzYjJOVGRISnBibWNzSUc5d2RITmRLVHRjYmlBZ2JHVjBJR2x1WmlBOUlHbHVkR3hPZFcxRFlXTm9aVnRyWlhsZE8xeHVJQ0JwWmlBb0lXbHVaaWtnZTF4dUlDQWdJR2x1WmlBOUlHNWxkeUJKYm5Sc0xrNTFiV0psY2tadmNtMWhkQ2hzYjJOVGRISnBibWNzSUc5d2RITXBPMXh1SUNBZ0lHbHVkR3hPZFcxRFlXTm9aVnRyWlhsZElEMGdhVzVtTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJwYm1ZN1hHNTlYRzVjYm14bGRDQnBiblJzVW1Wc1EyRmphR1VnUFNCN2ZUdGNibVoxYm1OMGFXOXVJR2RsZEVOaFkyaGxaRkpVUmloc2IyTlRkSEpwYm1jc0lHOXdkSE1nUFNCN2ZTa2dlMXh1SUNCamIyNXpkQ0I3SUdKaGMyVXNJQzR1TG1OaFkyaGxTMlY1VDNCMGN5QjlJRDBnYjNCMGN6c2dMeThnWlhoamJIVmtaU0JnWW1GelpXQWdabkp2YlNCMGFHVWdiM0IwYVc5dWMxeHVJQ0JqYjI1emRDQnJaWGtnUFNCS1UwOU9Mbk4wY21sdVoybG1lU2hiYkc5alUzUnlhVzVuTENCallXTm9aVXRsZVU5d2RITmRLVHRjYmlBZ2JHVjBJR2x1WmlBOUlHbHVkR3hTWld4RFlXTm9aVnRyWlhsZE8xeHVJQ0JwWmlBb0lXbHVaaWtnZTF4dUlDQWdJR2x1WmlBOUlHNWxkeUJKYm5Sc0xsSmxiR0YwYVhabFZHbHRaVVp2Y20xaGRDaHNiMk5UZEhKcGJtY3NJRzl3ZEhNcE8xeHVJQ0FnSUdsdWRHeFNaV3hEWVdOb1pWdHJaWGxkSUQwZ2FXNW1PMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnBibVk3WEc1OVhHNWNibXhsZENCemVYTk1iMk5oYkdWRFlXTm9aU0E5SUc1MWJHdzdYRzVtZFc1amRHbHZiaUJ6ZVhOMFpXMU1iMk5oYkdVb0tTQjdYRzRnSUdsbUlDaHplWE5NYjJOaGJHVkRZV05vWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ6ZVhOTWIyTmhiR1ZEWVdOb1pUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnplWE5NYjJOaGJHVkRZV05vWlNBOUlHNWxkeUJKYm5Sc0xrUmhkR1ZVYVcxbFJtOXliV0YwS0NrdWNtVnpiMngyWldSUGNIUnBiMjV6S0NrdWJHOWpZV3hsTzF4dUlDQWdJSEpsZEhWeWJpQnplWE5NYjJOaGJHVkRZV05vWlR0Y2JpQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQndZWEp6WlV4dlkyRnNaVk4wY21sdVp5aHNiMk5oYkdWVGRISXBJSHRjYmlBZ0x5OGdTU0J5WldGc2JIa2dkMkZ1ZENCMGJ5QmhkbTlwWkNCM2NtbDBhVzVuSUdFZ1FrTlFJRFEzSUhCaGNuTmxjbHh1SUNBdkx5QnpaV1VzSUdVdVp5NGdhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM2R2YjI5eWJTOWlZM0F0TkRkY2JpQWdMeThnU1c1emRHVmhaQ3dnZDJVbmJHd2daRzhnZEdocGN6cGNibHh1SUNBdkx5QmhLU0JwWmlCMGFHVWdjM1J5YVc1bklHaGhjeUJ1YnlBdGRTQmxlSFJsYm5OcGIyNXpMQ0JxZFhOMElHeGxZWFpsSUdsMElHRnNiMjVsWEc0Z0lDOHZJR0lwSUdsbUlHbDBJR1J2WlhNc0lIVnpaU0JKYm5Sc0lIUnZJSEpsYzI5c2RtVWdaWFpsY25sMGFHbHVaMXh1SUNBdkx5QmpLU0JwWmlCSmJuUnNJR1poYVd4ekxDQjBjbmtnWVdkaGFXNGdkMmwwYUc5MWRDQjBhR1VnTFhWY2JseHVJQ0JqYjI1emRDQjFTVzVrWlhnZ1BTQnNiMk5oYkdWVGRISXVhVzVrWlhoUFppaGNJaTExTFZ3aUtUdGNiaUFnYVdZZ0tIVkpibVJsZUNBOVBUMGdMVEVwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdXMnh2WTJGc1pWTjBjbDA3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYkdWMElHOXdkR2x2Ym5NN1hHNGdJQ0FnWTI5dWMzUWdjMjFoYkd4bGNpQTlJR3h2WTJGc1pWTjBjaTV6ZFdKemRISnBibWNvTUN3Z2RVbHVaR1Y0S1R0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2IzQjBhVzl1Y3lBOUlHZGxkRU5oWTJobFpFUlVSaWhzYjJOaGJHVlRkSElwTG5KbGMyOXNkbVZrVDNCMGFXOXVjeWdwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUc5d2RHbHZibk1nUFNCblpYUkRZV05vWldSRVZFWW9jMjFoYkd4bGNpa3VjbVZ6YjJ4MlpXUlBjSFJwYjI1ektDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZXlCdWRXMWlaWEpwYm1kVGVYTjBaVzBzSUdOaGJHVnVaR0Z5SUgwZ1BTQnZjSFJwYjI1ek8xeHVJQ0FnSUM4dklISmxkSFZ5YmlCMGFHVWdjMjFoYkd4bGNpQnZibVVnYzI4Z2RHaGhkQ0IzWlNCallXNGdZWEJ3Wlc1a0lIUm9aU0JqWVd4bGJtUmhjaUJoYm1RZ2JuVnRZbVZ5YVc1bklHOTJaWEp5YVdSbGN5QjBieUJwZEZ4dUlDQWdJSEpsZEhWeWJpQmJjMjFoYkd4bGNpd2diblZ0WW1WeWFXNW5VM2x6ZEdWdExDQmpZV3hsYm1SaGNsMDdYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnYVc1MGJFTnZibVpwWjFOMGNtbHVaeWhzYjJOaGJHVlRkSElzSUc1MWJXSmxjbWx1WjFONWMzUmxiU3dnYjNWMGNIVjBRMkZzWlc1a1lYSXBJSHRjYmlBZ2FXWWdLRzkxZEhCMWRFTmhiR1Z1WkdGeUlIeDhJRzUxYldKbGNtbHVaMU41YzNSbGJTa2dlMXh1SUNBZ0lHeHZZMkZzWlZOMGNpQXJQU0JjSWkxMVhDSTdYRzVjYmlBZ0lDQnBaaUFvYjNWMGNIVjBRMkZzWlc1a1lYSXBJSHRjYmlBZ0lDQWdJR3h2WTJGc1pWTjBjaUFyUFNCZ0xXTmhMU1I3YjNWMGNIVjBRMkZzWlc1a1lYSjlZRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYm5WdFltVnlhVzVuVTNsemRHVnRLU0I3WEc0Z0lDQWdJQ0JzYjJOaGJHVlRkSElnS3owZ1lDMXVkUzBrZTI1MWJXSmxjbWx1WjFONWMzUmxiWDFnTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2JHOWpZV3hsVTNSeU8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCc2IyTmhiR1ZUZEhJN1hHNGdJSDFjYm4xY2JseHVablZ1WTNScGIyNGdiV0Z3VFc5dWRHaHpLR1lwSUh0Y2JpQWdZMjl1YzNRZ2JYTWdQU0JiWFR0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURFN0lHa2dQRDBnTVRJN0lHa3JLeWtnZTF4dUlDQWdJR052Ym5OMElHUjBJRDBnUkdGMFpWUnBiV1V1ZFhSaktESXdNVFlzSUdrc0lERXBPMXh1SUNBZ0lHMXpMbkIxYzJnb1ppaGtkQ2twTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ0Y3p0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYldGd1YyVmxhMlJoZVhNb1ppa2dlMXh1SUNCamIyNXpkQ0J0Y3lBOUlGdGRPMXh1SUNCbWIzSWdLR3hsZENCcElEMGdNVHNnYVNBOFBTQTNPeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0JrZENBOUlFUmhkR1ZVYVcxbExuVjBZeWd5TURFMkxDQXhNU3dnTVRNZ0t5QnBLVHRjYmlBZ0lDQnRjeTV3ZFhOb0tHWW9aSFFwS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYlhNN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUd4cGMzUlRkSFZtWmloc2IyTXNJR3hsYm1kMGFDd2daR1ZtWVhWc2RFOUxMQ0JsYm1kc2FYTm9SbTRzSUdsdWRHeEdiaWtnZTF4dUlDQmpiMjV6ZENCdGIyUmxJRDBnYkc5akxteHBjM1JwYm1kTmIyUmxLR1JsWm1GMWJIUlBTeWs3WEc1Y2JpQWdhV1lnS0cxdlpHVWdQVDA5SUZ3aVpYSnliM0pjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5SUdWc2MyVWdhV1lnS0cxdlpHVWdQVDA5SUZ3aVpXNWNJaWtnZTF4dUlDQWdJSEpsZEhWeWJpQmxibWRzYVhOb1JtNG9iR1Z1WjNSb0tUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnlaWFIxY200Z2FXNTBiRVp1S0d4bGJtZDBhQ2s3WEc0Z0lIMWNibjFjYmx4dVpuVnVZM1JwYjI0Z2MzVndjRzl5ZEhOR1lYTjBUblZ0WW1WeWN5aHNiMk1wSUh0Y2JpQWdhV1lnS0d4dll5NXVkVzFpWlhKcGJtZFRlWE4wWlcwZ0ppWWdiRzlqTG01MWJXSmxjbWx1WjFONWMzUmxiU0FoUFQwZ1hDSnNZWFJ1WENJcElIdGNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lHeHZZeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdQVDA5SUZ3aWJHRjBibHdpSUh4OFhHNGdJQ0FnSUNBaGJHOWpMbXh2WTJGc1pTQjhmRnh1SUNBZ0lDQWdiRzlqTG14dlkyRnNaUzV6ZEdGeWRITlhhWFJvS0Z3aVpXNWNJaWtnZkh4Y2JpQWdJQ0FnSUc1bGR5QkpiblJzTGtSaGRHVlVhVzFsUm05eWJXRjBLR3h2WXk1cGJuUnNLUzV5WlhOdmJIWmxaRTl3ZEdsdmJuTW9LUzV1ZFcxaVpYSnBibWRUZVhOMFpXMGdQVDA5SUZ3aWJHRjBibHdpWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVmVnh1WEc0dktpcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpOWNibHh1WTJ4aGMzTWdVRzlzZVU1MWJXSmxja1p2Y20xaGRIUmxjaUI3WEc0Z0lHTnZibk4wY25WamRHOXlLR2x1ZEd3c0lHWnZjbU5sVTJsdGNHeGxMQ0J2Y0hSektTQjdYRzRnSUNBZ2RHaHBjeTV3WVdSVWJ5QTlJRzl3ZEhNdWNHRmtWRzhnZkh3Z01EdGNiaUFnSUNCMGFHbHpMbVpzYjI5eUlEMGdiM0IwY3k1bWJHOXZjaUI4ZkNCbVlXeHpaVHRjYmx4dUlDQWdJR052Ym5OMElIc2djR0ZrVkc4c0lHWnNiMjl5TENBdUxpNXZkR2hsY2s5d2RITWdmU0E5SUc5d2RITTdYRzVjYmlBZ0lDQnBaaUFvSVdadmNtTmxVMmx0Y0d4bElIeDhJRTlpYW1WamRDNXJaWGx6S0c5MGFHVnlUM0IwY3lrdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FXNTBiRTl3ZEhNZ1BTQjdJSFZ6WlVkeWIzVndhVzVuT2lCbVlXeHpaU3dnTGk0dWIzQjBjeUI5TzF4dUlDQWdJQ0FnYVdZZ0tHOXdkSE11Y0dGa1ZHOGdQaUF3S1NCcGJuUnNUM0IwY3k1dGFXNXBiWFZ0U1c1MFpXZGxja1JwWjJsMGN5QTlJRzl3ZEhNdWNHRmtWRzg3WEc0Z0lDQWdJQ0IwYUdsekxtbHVaaUE5SUdkbGRFTmhZMmhsWkVsT1JpaHBiblJzTENCcGJuUnNUM0IwY3lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1ptOXliV0YwS0drcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGJtWXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHWnBlR1ZrSUQwZ2RHaHBjeTVtYkc5dmNpQS9JRTFoZEdndVpteHZiM0lvYVNrZ09pQnBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YVc1bUxtWnZjbTFoZENobWFYaGxaQ2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDOHZJSFJ2SUcxaGRHTm9JSFJvWlNCaWNtOTNjMlZ5SjNNZ2JuVnRZbVZ5Wm05eWJXRjBkR1Z5SUdSbFptRjFiSFJ6WEc0Z0lDQWdJQ0JqYjI1emRDQm1hWGhsWkNBOUlIUm9hWE11Wm14dmIzSWdQeUJOWVhSb0xtWnNiMjl5S0drcElEb2djbTkxYm1SVWJ5aHBMQ0F6S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3WVdSVGRHRnlkQ2htYVhobFpDd2dkR2hwY3k1d1lXUlVieWs3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUwxeHVYRzVqYkdGemN5QlFiMng1UkdGMFpVWnZjbTFoZEhSbGNpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtHUjBMQ0JwYm5Sc0xDQnZjSFJ6S1NCN1hHNGdJQ0FnZEdocGN5NXZjSFJ6SUQwZ2IzQjBjenRjYmx4dUlDQWdJR3hsZENCNk8xeHVJQ0FnSUdsbUlDaGtkQzU2YjI1bExtbHpWVzVwZG1WeWMyRnNLU0I3WEc0Z0lDQWdJQ0F2THlCVlZFTXRPQ0J2Y2lCRmRHTXZWVlJETFRnZ1lYSmxJRzV2ZENCd1lYSjBJRzltSUhSNlpHRjBZU3dnYjI1c2VTQkZkR012UjAxVUt6Z2dZVzVrSUhSb1pTQnNhV3RsTGx4dUlDQWdJQ0FnTHk4Z1ZHaGhkQ0JwY3lCM2FIa2dabWw0WldRdGIyWm1jMlYwSUZSYUlHbHpJSE5sZENCMGJ5QjBhR0YwSUhWdWJHVnpjeUJwZENCcGN6cGNiaUFnSUNBZ0lDOHZJREV1SUZKbGNISmxjMlZ1ZEdsdVp5QnZabVp6WlhRZ01DQjNhR1Z1SUZWVVF5QnBjeUIxYzJWa0lIUnZJRzFoYVc1MFlXbHVJSEJ5WlhacGIzVnpJR0psYUdGMmFXOXlJR0Z1WkNCa2IyVnpJRzV2ZENCaVpXTnZiV1VnUjAxVUxseHVJQ0FnSUNBZ0x5OGdNaTRnVlc1emRYQndiM0owWldRZ1lua2dkR2hsSUdKeWIzZHpaWEk2WEc0Z0lDQWdJQ0F2THlBZ0lDQXRJSE52YldVZ1pHOGdibTkwSUhOMWNIQnZjblFnUlhSakwxeHVJQ0FnSUNBZ0x5OGdJQ0FnTFNBOElFVjBZeTlIVFZRdE1UUXNJRDRnUlhSakwwZE5WQ3N4TWl3Z1lXNWtJRE13TFcxcGJuVjBaU0J2Y2lBME5TMXRhVzUxZEdVZ2IyWm1jMlYwY3lCaGNtVWdibTkwSUhCaGNuUWdiMllnZEhwa1lYUmhYRzRnSUNBZ0lDQmpiMjV6ZENCbmJYUlBabVp6WlhRZ1BTQXRNU0FxSUNoa2RDNXZabVp6WlhRZ0x5QTJNQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnZabVp6WlhSYUlEMGdaMjEwVDJabWMyVjBJRDQ5SURBZ1B5QmdSWFJqTDBkTlZDc2tlMmR0ZEU5bVpuTmxkSDFnSURvZ1lFVjBZeTlIVFZRa2UyZHRkRTltWm5ObGRIMWdPMXh1SUNBZ0lDQWdhV1lnS0dSMExtOW1abk5sZENBaFBUMGdNQ0FtSmlCSlFVNUJXbTl1WlM1amNtVmhkR1VvYjJabWMyVjBXaWt1ZG1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnZWlBOUlHOW1abk5sZEZvN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WkhRZ1BTQmtkRHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQzh2SUU1dmRDQmhiR3dnWm1sNFpXUXRiMlptYzJWMElIcHZibVZ6SUd4cGEyVWdSWFJqTHlzME9qTXdJR0Z5WlNCd2NtVnpaVzUwSUdsdUlIUjZaR0YwWVM1Y2JpQWdJQ0FnSUNBZ0x5OGdVMjhnZDJVZ2FHRjJaU0IwYnlCdFlXdGxJR1J2TGlCVWQyOGdZMkZ6WlhNNlhHNGdJQ0FnSUNBZ0lDOHZJREV1SUZSb1pTQm1iM0p0WVhRZ2IzQjBhVzl1Y3lCMFpXeHNJSFZ6SUhSdklITm9iM2NnZEdobElIcHZibVV1SUZkbElHTmhiaWQwSUdSdklIUm9ZWFFzSUhOdklIUm9aU0JpWlhOMFhHNGdJQ0FnSUNBZ0lDOHZJSGRsSUdOaGJpQmtieUJwY3lCbWIzSnRZWFFnZEdobElHUmhkR1VnYVc0Z1ZWUkRMbHh1SUNBZ0lDQWdJQ0F2THlBeUxpQlVhR1VnWm05eWJXRjBJRzl3ZEdsdmJuTWdaRzl1SjNRZ2RHVnNiQ0IxY3lCMGJ5QnphRzkzSUhSb1pTQjZiMjVsTGlCVWFHVnVJSGRsSUdOaGJpQmhaR3AxYzNRZ2RHaGxiVnh1SUNBZ0lDQWdJQ0F2THlCMGFHVWdkR2x0WlNCaGJtUWdkR1ZzYkNCMGFHVWdabTl5YldGMGRHVnlJSFJ2SUhOb2IzY2dhWFFnZEc4Z2RYTWdhVzRnVlZSRExDQnpieUIwYUdGMElIUm9aU0IwYVcxbElHbHpJSEpwWjJoMFhHNGdJQ0FnSUNBZ0lDOHZJR0Z1WkNCMGFHVWdZbUZrSUhwdmJtVWdaRzlsYzI0bmRDQnphRzkzSUhWd0xseHVJQ0FnSUNBZ0lDQjZJRDBnWENKVlZFTmNJanRjYmlBZ0lDQWdJQ0FnYVdZZ0tHOXdkSE11ZEdsdFpWcHZibVZPWVcxbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWtkQ0E5SUdSME8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpIUWdQU0JrZEM1dlptWnpaWFFnUFQwOUlEQWdQeUJrZENBNklFUmhkR1ZVYVcxbExtWnliMjFOYVd4c2FYTW9aSFF1ZEhNZ0t5QmtkQzV2Wm1aelpYUWdLaUEyTUNBcUlERXdNREFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJR2xtSUNoa2RDNTZiMjVsTG5SNWNHVWdQVDA5SUZ3aWMzbHpkR1Z0WENJcElIdGNiaUFnSUNBZ0lIUm9hWE11WkhRZ1BTQmtkRHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVrZENBOUlHUjBPMXh1SUNBZ0lDQWdlaUE5SUdSMExucHZibVV1Ym1GdFpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JwYm5Sc1QzQjBjeUE5SUhzZ0xpNHVkR2hwY3k1dmNIUnpJSDA3WEc0Z0lDQWdhV1lnS0hvcElIdGNiaUFnSUNBZ0lHbHVkR3hQY0hSekxuUnBiV1ZhYjI1bElEMGdlanRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVrZEdZZ1BTQm5aWFJEWVdOb1pXUkVWRVlvYVc1MGJDd2dhVzUwYkU5d2RITXBPMXh1SUNCOVhHNWNiaUFnWm05eWJXRjBLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1SMFppNW1iM0p0WVhRb2RHaHBjeTVrZEM1MGIwcFRSR0YwWlNncEtUdGNiaUFnZlZ4dVhHNGdJR1p2Y20xaGRGUnZVR0Z5ZEhNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaSFJtTG1admNtMWhkRlJ2VUdGeWRITW9kR2hwY3k1a2RDNTBiMHBUUkdGMFpTZ3BLVHRjYmlBZ2ZWeHVYRzRnSUhKbGMyOXNkbVZrVDNCMGFXOXVjeWdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1a2RHWXVjbVZ6YjJ4MlpXUlBjSFJwYjI1ektDazdYRzRnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWpiR0Z6Y3lCUWIyeDVVbVZzUm05eWJXRjBkR1Z5SUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYVc1MGJDd2dhWE5GYm1kc2FYTm9MQ0J2Y0hSektTQjdYRzRnSUNBZ2RHaHBjeTV2Y0hSeklEMGdleUJ6ZEhsc1pUb2dYQ0pzYjI1blhDSXNJQzR1TG05d2RITWdmVHRjYmlBZ0lDQnBaaUFvSVdselJXNW5iR2x6YUNBbUppQm9ZWE5TWld4aGRHbDJaU2dwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbkowWmlBOUlHZGxkRU5oWTJobFpGSlVSaWhwYm5Sc0xDQnZjSFJ6S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCbWIzSnRZWFFvWTI5MWJuUXNJSFZ1YVhRcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1eWRHWXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5KMFppNW1iM0p0WVhRb1kyOTFiblFzSUhWdWFYUXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUlc1bmJHbHphQzVtYjNKdFlYUlNaV3hoZEdsMlpWUnBiV1VvZFc1cGRDd2dZMjkxYm5Rc0lIUm9hWE11YjNCMGN5NXVkVzFsY21sakxDQjBhR2x6TG05d2RITXVjM1I1YkdVZ0lUMDlJRndpYkc5dVoxd2lLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JtYjNKdFlYUlViMUJoY25SektHTnZkVzUwTENCMWJtbDBLU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjblJtS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXlkR1l1Wm05eWJXRjBWRzlRWVhKMGN5aGpiM1Z1ZEN3Z2RXNXBkQ2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCYlhUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdOc1lYTnpJRXh2WTJGc1pTQjdYRzRnSUhOMFlYUnBZeUJtY205dFQzQjBjeWh2Y0hSektTQjdYRzRnSUNBZ2NtVjBkWEp1SUV4dlkyRnNaUzVqY21WaGRHVW9iM0IwY3k1c2IyTmhiR1VzSUc5d2RITXViblZ0WW1WeWFXNW5VM2x6ZEdWdExDQnZjSFJ6TG05MWRIQjFkRU5oYkdWdVpHRnlMQ0J2Y0hSekxtUmxabUYxYkhSVWIwVk9LVHRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJqY21WaGRHVW9iRzlqWVd4bExDQnVkVzFpWlhKcGJtZFRlWE4wWlcwc0lHOTFkSEIxZEVOaGJHVnVaR0Z5TENCa1pXWmhkV3gwVkc5RlRpQTlJR1poYkhObEtTQjdYRzRnSUNBZ1kyOXVjM1FnYzNCbFkybG1hV1ZrVEc5allXeGxJRDBnYkc5allXeGxJSHg4SUZObGRIUnBibWR6TG1SbFptRjFiSFJNYjJOaGJHVTdYRzRnSUNBZ0x5OGdkR2hsSUhONWMzUmxiU0JzYjJOaGJHVWdhWE1nZFhObFpuVnNJR1p2Y2lCb2RXMWhiaUJ5WldGa1lXSnNaU0J6ZEhKcGJtZHpJR0oxZENCaGJtNXZlV2x1WnlCbWIzSWdjR0Z5YzJsdVp5OW1iM0p0WVhSMGFXNW5JR3R1YjNkdUlHWnZjbTFoZEhOY2JpQWdJQ0JqYjI1emRDQnNiMk5oYkdWU0lEMGdjM0JsWTJsbWFXVmtURzlqWVd4bElIeDhJQ2hrWldaaGRXeDBWRzlGVGlBL0lGd2laVzR0VlZOY0lpQTZJSE41YzNSbGJVeHZZMkZzWlNncEtUdGNiaUFnSUNCamIyNXpkQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMVNJRDBnYm5WdFltVnlhVzVuVTNsemRHVnRJSHg4SUZObGRIUnBibWR6TG1SbFptRjFiSFJPZFcxaVpYSnBibWRUZVhOMFpXMDdYRzRnSUNBZ1kyOXVjM1FnYjNWMGNIVjBRMkZzWlc1a1lYSlNJRDBnYjNWMGNIVjBRMkZzWlc1a1lYSWdmSHdnVTJWMGRHbHVaM011WkdWbVlYVnNkRTkxZEhCMWRFTmhiR1Z1WkdGeU8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RHOWpZV3hsS0d4dlkyRnNaVklzSUc1MWJXSmxjbWx1WjFONWMzUmxiVklzSUc5MWRIQjFkRU5oYkdWdVpHRnlVaXdnYzNCbFkybG1hV1ZrVEc5allXeGxLVHRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJ5WlhObGRFTmhZMmhsS0NrZ2UxeHVJQ0FnSUhONWMweHZZMkZzWlVOaFkyaGxJRDBnYm5Wc2JEdGNiaUFnSUNCcGJuUnNSRlJEWVdOb1pTQTlJSHQ5TzF4dUlDQWdJR2x1ZEd4T2RXMURZV05vWlNBOUlIdDlPMXh1SUNBZ0lHbHVkR3hTWld4RFlXTm9aU0E5SUh0OU8xeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklHWnliMjFQWW1wbFkzUW9leUJzYjJOaGJHVXNJRzUxYldKbGNtbHVaMU41YzNSbGJTd2diM1YwY0hWMFEyRnNaVzVrWVhJZ2ZTQTlJSHQ5S1NCN1hHNGdJQ0FnY21WMGRYSnVJRXh2WTJGc1pTNWpjbVZoZEdVb2JHOWpZV3hsTENCdWRXMWlaWEpwYm1kVGVYTjBaVzBzSUc5MWRIQjFkRU5oYkdWdVpHRnlLVHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHeHZZMkZzWlN3Z2JuVnRZbVZ5YVc1bkxDQnZkWFJ3ZFhSRFlXeGxibVJoY2l3Z2MzQmxZMmxtYVdWa1RHOWpZV3hsS1NCN1hHNGdJQ0FnWTI5dWMzUWdXM0JoY25ObFpFeHZZMkZzWlN3Z2NHRnljMlZrVG5WdFltVnlhVzVuVTNsemRHVnRMQ0J3WVhKelpXUlBkWFJ3ZFhSRFlXeGxibVJoY2wwZ1BTQndZWEp6WlV4dlkyRnNaVk4wY21sdVp5aHNiMk5oYkdVcE8xeHVYRzRnSUNBZ2RHaHBjeTVzYjJOaGJHVWdQU0J3WVhKelpXUk1iMk5oYkdVN1hHNGdJQ0FnZEdocGN5NXVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BTQnVkVzFpWlhKcGJtY2dmSHdnY0dGeWMyVmtUblZ0WW1WeWFXNW5VM2x6ZEdWdElIeDhJRzUxYkd3N1hHNGdJQ0FnZEdocGN5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBOUlHOTFkSEIxZEVOaGJHVnVaR0Z5SUh4OElIQmhjbk5sWkU5MWRIQjFkRU5oYkdWdVpHRnlJSHg4SUc1MWJHdzdYRzRnSUNBZ2RHaHBjeTVwYm5Sc0lEMGdhVzUwYkVOdmJtWnBaMU4wY21sdVp5aDBhR2x6TG14dlkyRnNaU3dnZEdocGN5NXVkVzFpWlhKcGJtZFRlWE4wWlcwc0lIUm9hWE11YjNWMGNIVjBRMkZzWlc1a1lYSXBPMXh1WEc0Z0lDQWdkR2hwY3k1M1pXVnJaR0Y1YzBOaFkyaGxJRDBnZXlCbWIzSnRZWFE2SUh0OUxDQnpkR0Z1WkdGc2IyNWxPaUI3ZlNCOU8xeHVJQ0FnSUhSb2FYTXViVzl1ZEdoelEyRmphR1VnUFNCN0lHWnZjbTFoZERvZ2UzMHNJSE4wWVc1a1lXeHZibVU2SUh0OUlIMDdYRzRnSUNBZ2RHaHBjeTV0WlhKcFpHbGxiVU5oWTJobElEMGdiblZzYkR0Y2JpQWdJQ0IwYUdsekxtVnlZVU5oWTJobElEMGdlMzA3WEc1Y2JpQWdJQ0IwYUdsekxuTndaV05wWm1sbFpFeHZZMkZzWlNBOUlITndaV05wWm1sbFpFeHZZMkZzWlR0Y2JpQWdJQ0IwYUdsekxtWmhjM1JPZFcxaVpYSnpRMkZqYUdWa0lEMGdiblZzYkR0Y2JpQWdmVnh1WEc0Z0lHZGxkQ0JtWVhOMFRuVnRZbVZ5Y3lncElIdGNiaUFnSUNCcFppQW9kR2hwY3k1bVlYTjBUblZ0WW1WeWMwTmhZMmhsWkNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbVpoYzNST2RXMWlaWEp6UTJGamFHVmtJRDBnYzNWd2NHOXlkSE5HWVhOMFRuVnRZbVZ5Y3loMGFHbHpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVtWVhOMFRuVnRZbVZ5YzBOaFkyaGxaRHRjYmlBZ2ZWeHVYRzRnSUd4cGMzUnBibWROYjJSbEtDa2dlMXh1SUNBZ0lHTnZibk4wSUdselFXTjBkV0ZzYkhsRmJpQTlJSFJvYVhNdWFYTkZibWRzYVhOb0tDazdYRzRnSUNBZ1kyOXVjM1FnYUdGelRtOVhaV2x5Wkc1bGMzTWdQVnh1SUNBZ0lDQWdLSFJvYVhNdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUQwOVBTQnVkV3hzSUh4OElIUm9hWE11Ym5WdFltVnlhVzVuVTNsemRHVnRJRDA5UFNCY0lteGhkRzVjSWlrZ0ppWmNiaUFnSUNBZ0lDaDBhR2x6TG05MWRIQjFkRU5oYkdWdVpHRnlJRDA5UFNCdWRXeHNJSHg4SUhSb2FYTXViM1YwY0hWMFEyRnNaVzVrWVhJZ1BUMDlJRndpWjNKbFoyOXllVndpS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5CWTNSMVlXeHNlVVZ1SUNZbUlHaGhjMDV2VjJWcGNtUnVaWE56SUQ4Z1hDSmxibHdpSURvZ1hDSnBiblJzWENJN1hHNGdJSDFjYmx4dUlDQmpiRzl1WlNoaGJIUnpLU0I3WEc0Z0lDQWdhV1lnS0NGaGJIUnpJSHg4SUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVVNWhiV1Z6S0dGc2RITXBMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJNYjJOaGJHVXVZM0psWVhSbEtGeHVJQ0FnSUNBZ0lDQmhiSFJ6TG14dlkyRnNaU0I4ZkNCMGFHbHpMbk53WldOcFptbGxaRXh2WTJGc1pTeGNiaUFnSUNBZ0lDQWdZV3gwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBnZkh3Z2RHaHBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMHNYRzRnSUNBZ0lDQWdJR0ZzZEhNdWIzVjBjSFYwUTJGc1pXNWtZWElnZkh3Z2RHaHBjeTV2ZFhSd2RYUkRZV3hsYm1SaGNpeGNiaUFnSUNBZ0lDQWdZV3gwY3k1a1pXWmhkV3gwVkc5RlRpQjhmQ0JtWVd4elpWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaV1JsWm1GMWJIUlViMFZPS0dGc2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnNiMjVsS0hzZ0xpNHVZV3gwY3l3Z1pHVm1ZWFZzZEZSdlJVNDZJSFJ5ZFdVZ2ZTazdYRzRnSUgxY2JseHVJQ0J5WldSbFptRjFiSFJVYjFONWMzUmxiU2hoYkhSeklEMGdlMzBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amJHOXVaU2g3SUM0dUxtRnNkSE1zSUdSbFptRjFiSFJVYjBWT09pQm1ZV3h6WlNCOUtUdGNiaUFnZlZ4dVhHNGdJRzF2Ym5Sb2N5aHNaVzVuZEdnc0lHWnZjbTFoZENBOUlHWmhiSE5sTENCa1pXWmhkV3gwVDBzZ1BTQjBjblZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJR3hwYzNSVGRIVm1aaWgwYUdsekxDQnNaVzVuZEdnc0lHUmxabUYxYkhSUFN5d2dSVzVuYkdsemFDNXRiMjUwYUhNc0lDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2x1ZEd3Z1BTQm1iM0p0WVhRZ1B5QjdJRzF2Ym5Sb09pQnNaVzVuZEdnc0lHUmhlVG9nWENKdWRXMWxjbWxqWENJZ2ZTQTZJSHNnYlc5dWRHZzZJR3hsYm1kMGFDQjlMRnh1SUNBZ0lDQWdJQ0JtYjNKdFlYUlRkSElnUFNCbWIzSnRZWFFnUHlCY0ltWnZjbTFoZEZ3aUlEb2dYQ0p6ZEdGdVpHRnNiMjVsWENJN1hHNGdJQ0FnSUNCcFppQW9JWFJvYVhNdWJXOXVkR2h6UTJGamFHVmJabTl5YldGMFUzUnlYVnRzWlc1bmRHaGRLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViVzl1ZEdoelEyRmphR1ZiWm05eWJXRjBVM1J5WFZ0c1pXNW5kR2hkSUQwZ2JXRndUVzl1ZEdoektDaGtkQ2tnUFQ0Z2RHaHBjeTVsZUhSeVlXTjBLR1IwTENCcGJuUnNMQ0JjSW0xdmJuUm9YQ0lwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtMXZiblJvYzBOaFkyaGxXMlp2Y20xaGRGTjBjbDFiYkdWdVozUm9YVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhkbFpXdGtZWGx6S0d4bGJtZDBhQ3dnWm05eWJXRjBJRDBnWm1Gc2MyVXNJR1JsWm1GMWJIUlBTeUE5SUhSeWRXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2JHbHpkRk4wZFdabUtIUm9hWE1zSUd4bGJtZDBhQ3dnWkdWbVlYVnNkRTlMTENCRmJtZHNhWE5vTG5kbFpXdGtZWGx6TENBb0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnBiblJzSUQwZ1ptOXliV0YwWEc0Z0lDQWdJQ0FnSUNBZ1B5QjdJSGRsWld0a1lYazZJR3hsYm1kMGFDd2dlV1ZoY2pvZ1hDSnVkVzFsY21salhDSXNJRzF2Ym5Sb09pQmNJbXh2Ym1kY0lpd2daR0Y1T2lCY0ltNTFiV1Z5YVdOY0lpQjlYRzRnSUNBZ0lDQWdJQ0FnT2lCN0lIZGxaV3RrWVhrNklHeGxibWQwYUNCOUxGeHVJQ0FnSUNBZ0lDQm1iM0p0WVhSVGRISWdQU0JtYjNKdFlYUWdQeUJjSW1admNtMWhkRndpSURvZ1hDSnpkR0Z1WkdGc2IyNWxYQ0k3WEc0Z0lDQWdJQ0JwWmlBb0lYUm9hWE11ZDJWbGEyUmhlWE5EWVdOb1pWdG1iM0p0WVhSVGRISmRXMnhsYm1kMGFGMHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNaV1ZyWkdGNWMwTmhZMmhsVzJadmNtMWhkRk4wY2wxYmJHVnVaM1JvWFNBOUlHMWhjRmRsWld0a1lYbHpLQ2hrZENrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxtVjRkSEpoWTNRb1pIUXNJR2x1ZEd3c0lGd2lkMlZsYTJSaGVWd2lLVnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWQyVmxhMlJoZVhORFlXTm9aVnRtYjNKdFlYUlRkSEpkVzJ4bGJtZDBhRjA3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCdFpYSnBaR2xsYlhNb1pHVm1ZWFZzZEU5TElEMGdkSEoxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJzYVhOMFUzUjFabVlvWEc0Z0lDQWdJQ0IwYUdsekxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ1pHVm1ZWFZzZEU5TExGeHVJQ0FnSUNBZ0tDa2dQVDRnUlc1bmJHbHphQzV0WlhKcFpHbGxiWE1zWEc0Z0lDQWdJQ0FvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUVsdUlIUm9aVzl5ZVNCMGFHVnlaU0JqYjNWc1pDQmlaU0JoY21saWFYUnlZWEo1SUdSaGVTQndaWEpwYjJSekxpQlhaU2R5WlNCbmIyNXVZU0JoYzNOMWJXVWdkR2hsY21VZ1lYSmxJR1Y0WVdOMGJIa2dkSGR2WEc0Z0lDQWdJQ0FnSUM4dklHWnZjaUJCVFNCaGJtUWdVRTB1SUZSb2FYTWdhWE1nY0hKdlltRmliSGtnZDNKdmJtY3NJR0oxZENCcGRDZHpJRzFoYTJWeklIQmhjbk5wYm1jZ2QyRjVJR1ZoYzJsbGNpNWNiaUFnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbTFsY21sa2FXVnRRMkZqYUdVcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnBiblJzSUQwZ2V5Qm9iM1Z5T2lCY0ltNTFiV1Z5YVdOY0lpd2dhRzkxY2tONVkyeGxPaUJjSW1neE1sd2lJSDA3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV0WlhKcFpHbGxiVU5oWTJobElEMGdXMFJoZEdWVWFXMWxMblYwWXlneU1ERTJMQ0F4TVN3Z01UTXNJRGtwTENCRVlYUmxWR2x0WlM1MWRHTW9NakF4Tml3Z01URXNJREV6TENBeE9TbGRMbTFoY0NoY2JpQWdJQ0FnSUNBZ0lDQWdJQ2hrZENrZ1BUNGdkR2hwY3k1bGVIUnlZV04wS0dSMExDQnBiblJzTENCY0ltUmhlWEJsY21sdlpGd2lLVnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dFpYSnBaR2xsYlVOaFkyaGxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JsY21GektHeGxibWQwYUN3Z1pHVm1ZWFZzZEU5TElEMGdkSEoxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJzYVhOMFUzUjFabVlvZEdocGN5d2diR1Z1WjNSb0xDQmtaV1poZFd4MFQwc3NJRVZ1WjJ4cGMyZ3VaWEpoY3l3Z0tDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhVzUwYkNBOUlIc2daWEpoT2lCc1pXNW5kR2dnZlR0Y2JseHVJQ0FnSUNBZ0x5OGdWR2hwY3lCcGN5QndjbTlpYkdWdFlYUnBZeTRnUkdsbVptVnlaVzUwSUdOaGJHVnVaR0Z5Y3lCaGNtVWdaMjlwYm1jZ2RHOGdaR1ZtYVc1bElHVnlZWE1nZEc5MFlXeHNlU0JrYVdabVpYSmxiblJzZVM0Z1YyaGhkQ0JKSUc1bFpXUWdhWE1nZEdobElHMXBibWx0ZFcwZ2MyVjBJRzltSUdSaGRHVnpYRzRnSUNBZ0lDQXZMeUIwYnlCa1pXWnBibWwwWld4NUlHVnVkVzFsY21GMFpTQjBhR1Z0TGx4dUlDQWdJQ0FnYVdZZ0tDRjBhR2x6TG1WeVlVTmhZMmhsVzJ4bGJtZDBhRjBwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsY21GRFlXTm9aVnRzWlc1bmRHaGRJRDBnVzBSaGRHVlVhVzFsTG5WMFl5Z3ROREFzSURFc0lERXBMQ0JFWVhSbFZHbHRaUzUxZEdNb01qQXhOeXdnTVN3Z01TbGRMbTFoY0Nnb1pIUXBJRDArWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVsZUhSeVlXTjBLR1IwTENCcGJuUnNMQ0JjSW1WeVlWd2lLVnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxjbUZEWVdOb1pWdHNaVzVuZEdoZE8xeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdaWGgwY21GamRDaGtkQ3dnYVc1MGJFOXdkSE1zSUdacFpXeGtLU0I3WEc0Z0lDQWdZMjl1YzNRZ1pHWWdQU0IwYUdsekxtUjBSbTl5YldGMGRHVnlLR1IwTENCcGJuUnNUM0IwY3lrc1hHNGdJQ0FnSUNCeVpYTjFiSFJ6SUQwZ1pHWXVabTl5YldGMFZHOVFZWEowY3lncExGeHVJQ0FnSUNBZ2JXRjBZMmhwYm1jZ1BTQnlaWE4xYkhSekxtWnBibVFvS0cwcElEMCtJRzB1ZEhsd1pTNTBiMHh2ZDJWeVEyRnpaU2dwSUQwOVBTQm1hV1ZzWkNrN1hHNGdJQ0FnY21WMGRYSnVJRzFoZEdOb2FXNW5JRDhnYldGMFkyaHBibWN1ZG1Gc2RXVWdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdiblZ0WW1WeVJtOXliV0YwZEdWeUtHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lDOHZJSFJvYVhNZ1ptOXlZMlZ6YVcxd2JHVWdiM0IwYVc5dUlHbHpJRzVsZG1WeUlIVnpaV1FnS0hSb1pTQnZibXg1SUdOaGJHeGxjaUJ6YUc5eWRDMWphWEpqZFdsMGN5QnZiaUJwZEN3Z1luVjBJR2wwSUhObFpXMXpJSE5oWm1WeUlIUnZJR3hsWVhabEtWeHVJQ0FnSUM4dklDaHBiaUJqYjI1MGNtRnpkQ3dnZEdobElISmxjM1FnYjJZZ2RHaGxJR052Ym1ScGRHbHZiaUJwY3lCMWMyVmtJR2hsWVhacGJIa3BYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlFiMng1VG5WdFltVnlSbTl5YldGMGRHVnlLSFJvYVhNdWFXNTBiQ3dnYjNCMGN5NW1iM0pqWlZOcGJYQnNaU0I4ZkNCMGFHbHpMbVpoYzNST2RXMWlaWEp6TENCdmNIUnpLVHRjYmlBZ2ZWeHVYRzRnSUdSMFJtOXliV0YwZEdWeUtHUjBMQ0JwYm5Sc1QzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlFiMng1UkdGMFpVWnZjbTFoZEhSbGNpaGtkQ3dnZEdocGN5NXBiblJzTENCcGJuUnNUM0IwY3lrN1hHNGdJSDFjYmx4dUlDQnlaV3hHYjNKdFlYUjBaWElvYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUWIyeDVVbVZzUm05eWJXRjBkR1Z5S0hSb2FYTXVhVzUwYkN3Z2RHaHBjeTVwYzBWdVoyeHBjMmdvS1N3Z2IzQjBjeWs3WEc0Z0lIMWNibHh1SUNCc2FYTjBSbTl5YldGMGRHVnlLRzl3ZEhNZ1BTQjdmU2tnZTF4dUlDQWdJSEpsZEhWeWJpQm5aWFJEWVdOb1pXUk1SaWgwYUdsekxtbHVkR3dzSUc5d2RITXBPMXh1SUNCOVhHNWNiaUFnYVhORmJtZHNhWE5vS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0IwYUdsekxteHZZMkZzWlNBOVBUMGdYQ0psYmx3aUlIeDhYRzRnSUNBZ0lDQjBhR2x6TG14dlkyRnNaUzUwYjB4dmQyVnlRMkZ6WlNncElEMDlQU0JjSW1WdUxYVnpYQ0lnZkh4Y2JpQWdJQ0FnSUc1bGR5QkpiblJzTGtSaGRHVlVhVzFsUm05eWJXRjBLSFJvYVhNdWFXNTBiQ2t1Y21WemIyeDJaV1JQY0hScGIyNXpLQ2t1Ykc5allXeGxMbk4wWVhKMGMxZHBkR2dvWENKbGJpMTFjMXdpS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCbGNYVmhiSE1vYjNSb1pYSXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ2RHaHBjeTVzYjJOaGJHVWdQVDA5SUc5MGFHVnlMbXh2WTJGc1pTQW1KbHh1SUNBZ0lDQWdkR2hwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBnUFQwOUlHOTBhR1Z5TG01MWJXSmxjbWx1WjFONWMzUmxiU0FtSmx4dUlDQWdJQ0FnZEdocGN5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBOVBUMGdiM1JvWlhJdWIzVjBjSFYwUTJGc1pXNWtZWEpjYmlBZ0lDQXBPMXh1SUNCOVhHNTlYRzRpTENBaWFXMXdiM0owSUh0Y2JpQWdkVzUwY25WdVkyRjBaVmxsWVhJc1hHNGdJSE5wWjI1bFpFOW1abk5sZEN4Y2JpQWdjR0Z5YzJWSmJuUmxaMlZ5TEZ4dUlDQndZWEp6WlUxcGJHeHBjeXhjYmlBZ2FXRnVZVkpsWjJWNExGeHVJQ0JwYzFWdVpHVm1hVzVsWkN4Y2JpQWdjR0Z5YzJWR2JHOWhkR2x1WjF4dWZTQm1jbTl0SUZ3aUxpOTFkR2xzTG1welhDSTdYRzVwYlhCdmNuUWdLaUJoY3lCRmJtZHNhWE5vSUdaeWIyMGdYQ0l1TDJWdVoyeHBjMmd1YW5OY0lqdGNibWx0Y0c5eWRDQkdhWGhsWkU5bVpuTmxkRnB2Ym1VZ1puSnZiU0JjSWk0dUwzcHZibVZ6TDJacGVHVmtUMlptYzJWMFdtOXVaUzVxYzF3aU8xeHVhVzF3YjNKMElFbEJUa0ZhYjI1bElHWnliMjBnWENJdUxpOTZiMjVsY3k5SlFVNUJXbTl1WlM1cWMxd2lPMXh1WEc0dktseHVJQ29nVkdocGN5Qm1hV3hsSUdoaGJtUnNaWE1nY0dGeWMybHVaeUJtYjNJZ2QyVnNiQzF6Y0dWamFXWnBaV1FnWm05eWJXRjBjeTRnU0dWeVpTZHpJR2h2ZHlCcGRDQjNiM0pyY3pwY2JpQXFJRlIzYnlCMGFHbHVaM01nWjI4Z2FXNTBieUJ3WVhKemFXNW5PaUJoSUhKbFoyVjRJSFJ2SUcxaGRHTm9JSGRwZEdnZ1lXNWtJR0Z1SUdWNGRISmhZM1J2Y2lCMGJ5QjBZV3RsSUdGd1lYSjBJSFJvWlNCbmNtOTFjSE1nYVc0Z2RHaGxJRzFoZEdOb0xseHVJQ29nUVc0Z1pYaDBjbUZqZEc5eUlHbHpJR3AxYzNRZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUhSaGEyVnpJR0VnY21WblpYZ2diV0YwWTJnZ1lYSnlZWGtnWVc1a0lISmxkSFZ5Ym5NZ1lTQjdJSGxsWVhJNklDNHVMaXdnYlc5dWRHZzZJQzR1TGlCOUlHOWlhbVZqZEZ4dUlDb2djR0Z5YzJVb0tTQmtiMlZ6SUhSb1pTQjNiM0pySUc5bUlHVjRaV04xZEdsdVp5QjBhR1VnY21WblpYZ2dZVzVrSUdGd2NHeDVhVzVuSUhSb1pTQmxlSFJ5WVdOMGIzSXVJRWwwSUhSaGEyVnpJRzExYkhScGNHeGxJSEpsWjJWNEwyVjRkSEpoWTNSdmNpQndZV2x5Y3lCMGJ5QjBjbmtnYVc0Z2MyVnhkV1Z1WTJVdVhHNGdLaUJGZUhSeVlXTjBiM0p6SUdOaGJpQjBZV3RsSUdFZ1hDSmpkWEp6YjNKY0lpQnlaWEJ5WlhObGJuUnBibWNnZEdobElHOW1abk5sZENCcGJpQjBhR1VnYldGMFkyZ2dkRzhnYkc5dmF5QmhkQzRnVkdocGN5QnRZV3RsY3lCcGRDQmxZWE41SUhSdklHTnZiV0pwYm1VZ1pYaDBjbUZqZEc5eWN5NWNiaUFxSUdOdmJXSnBibVZGZUhSeVlXTjBiM0p6S0NrZ1pHOWxjeUIwYUdVZ2QyOXlheUJ2WmlCamIyMWlhVzVwYm1jZ2RHaGxiU3dnYTJWbGNHbHVaeUIwY21GamF5QnZaaUIwYUdVZ1kzVnljMjl5SUhSb2NtOTFaMmdnYlhWc2RHbHdiR1VnWlhoMGNtRmpkR2x2Ym5NdVhHNGdLaUJUYjIxbElHVjRkSEpoWTNScGIyNXpJR0Z5WlNCemRYQmxjaUJrZFcxaUlHRnVaQ0J6YVcxd2JHVlFZWEp6WlNCaGJtUWdabkp2YlZOMGNtbHVaM01nYUdWc2NDQkVVbGtnZEdobGJTNWNiaUFxTDF4dVhHNW1kVzVqZEdsdmJpQmpiMjFpYVc1bFVtVm5aWGhsY3lndUxpNXlaV2RsZUdWektTQjdYRzRnSUdOdmJuTjBJR1oxYkd3Z1BTQnlaV2RsZUdWekxuSmxaSFZqWlNnb1ppd2djaWtnUFQ0Z1ppQXJJSEl1YzI5MWNtTmxMQ0JjSWx3aUtUdGNiaUFnY21WMGRYSnVJRkpsWjBWNGNDaGdYaVI3Wm5Wc2JIMGtZQ2s3WEc1OVhHNWNibVoxYm1OMGFXOXVJR052YldKcGJtVkZlSFJ5WVdOMGIzSnpLQzR1TG1WNGRISmhZM1J2Y25NcElIdGNiaUFnY21WMGRYSnVJRzBnUFQ1Y2JpQWdJQ0JsZUhSeVlXTjBiM0p6WEc0Z0lDQWdJQ0F1Y21Wa2RXTmxLRnh1SUNBZ0lDQWdJQ0FvVzIxbGNtZGxaRlpoYkhNc0lHMWxjbWRsWkZwdmJtVXNJR04xY25OdmNsMHNJR1Y0S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdXM1poYkN3Z2VtOXVaU3dnYm1WNGRGMGdQU0JsZUNodExDQmpkWEp6YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmJleUF1TGk1dFpYSm5aV1JXWVd4ekxDQXVMaTUyWVd3Z2ZTd2dlbTl1WlNCOGZDQnRaWEpuWldSYWIyNWxMQ0J1WlhoMFhUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnVzN0OUxDQnVkV3hzTENBeFhWeHVJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0xuTnNhV05sS0RBc0lESXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQndZWEp6WlNoekxDQXVMaTV3WVhSMFpYSnVjeWtnZTF4dUlDQnBaaUFvY3lBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnY21WMGRYSnVJRnR1ZFd4c0xDQnVkV3hzWFR0Y2JpQWdmVnh1WEc0Z0lHWnZjaUFvWTI5dWMzUWdXM0psWjJWNExDQmxlSFJ5WVdOMGIzSmRJRzltSUhCaGRIUmxjbTV6S1NCN1hHNGdJQ0FnWTI5dWMzUWdiU0E5SUhKbFoyVjRMbVY0WldNb2N5azdYRzRnSUNBZ2FXWWdLRzBwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJsZUhSeVlXTjBiM0lvYlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJiYm5Wc2JDd2diblZzYkYwN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhOcGJYQnNaVkJoY25ObEtDNHVMbXRsZVhNcElIdGNiaUFnY21WMGRYSnVJQ2h0WVhSamFDd2dZM1Z5YzI5eUtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVjBJRDBnZTMwN1hHNGdJQ0FnYkdWMElHazdYRzVjYmlBZ0lDQm1iM0lnS0drZ1BTQXdPeUJwSUR3Z2EyVjVjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2NtVjBXMnRsZVhOYmFWMWRJRDBnY0dGeWMyVkpiblJsWjJWeUtHMWhkR05vVzJOMWNuTnZjaUFySUdsZEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRnR5WlhRc0lHNTFiR3dzSUdOMWNuTnZjaUFySUdsZE8xeHVJQ0I5TzF4dWZWeHVYRzR2THlCSlUwOGdZVzVrSUZOUlRDQndZWEp6YVc1blhHNWpiMjV6ZENCdlptWnpaWFJTWldkbGVDQTlJQzhvUHpvb1dpbDhLRnNyTFYxY1hHUmNYR1FwS0Q4Nk9qOG9YRnhrWEZ4a0tTay9LUzg3WEc1amIyNXpkQ0JwYzI5RmVIUmxibVJsWkZwdmJtVWdQU0JnS0Q4NkpIdHZabVp6WlhSU1pXZGxlQzV6YjNWeVkyVjlQeWcvT2x4Y1hGeGJLQ1I3YVdGdVlWSmxaMlY0TG5OdmRYSmpaWDBwWEZ4Y1hGMHBQeWsvWUR0Y2JtTnZibk4wSUdsemIxUnBiV1ZDWVhObFVtVm5aWGdnUFNBdktGeGNaRnhjWkNrb1B6bzZQeWhjWEdSY1hHUXBLRDg2T2o4b1hGeGtYRnhrS1NnL09sc3VMRjBvWEZ4a2V6RXNNekI5S1NrL0tUOHBQeTg3WEc1amIyNXpkQ0JwYzI5VWFXMWxVbVZuWlhnZ1BTQlNaV2RGZUhBb1lDUjdhWE52VkdsdFpVSmhjMlZTWldkbGVDNXpiM1Z5WTJWOUpIdHBjMjlGZUhSbGJtUmxaRnB2Ym1WOVlDazdYRzVqYjI1emRDQnBjMjlVYVcxbFJYaDBaVzV6YVc5dVVtVm5aWGdnUFNCU1pXZEZlSEFvWUNnL09sUWtlMmx6YjFScGJXVlNaV2RsZUM1emIzVnlZMlY5S1Q5Z0tUdGNibU52Ym5OMElHbHpiMWx0WkZKbFoyVjRJRDBnTHloYkt5MWRYRnhrZXpaOWZGeGNaSHMwZlNrb1B6b3RQeWhjWEdSY1hHUXBLRDg2TFQ4b1hGeGtYRnhrS1NrL0tUOHZPMXh1WTI5dWMzUWdhWE52VjJWbGExSmxaMlY0SUQwZ0x5aGNYR1I3TkgwcExUOVhLRnhjWkZ4Y1pDa29Qem90UHloY1hHUXBLVDh2TzF4dVkyOXVjM1FnYVhOdlQzSmthVzVoYkZKbFoyVjRJRDBnTHloY1hHUjdOSDBwTFQ4b1hGeGtlek45S1M4N1hHNWpiMjV6ZENCbGVIUnlZV04wU1ZOUFYyVmxhMFJoZEdFZ1BTQnphVzF3YkdWUVlYSnpaU2hjSW5kbFpXdFpaV0Z5WENJc0lGd2lkMlZsYTA1MWJXSmxjbHdpTENCY0luZGxaV3RFWVhsY0lpazdYRzVqYjI1emRDQmxlSFJ5WVdOMFNWTlBUM0prYVc1aGJFUmhkR0VnUFNCemFXMXdiR1ZRWVhKelpTaGNJbmxsWVhKY0lpd2dYQ0p2Y21ScGJtRnNYQ0lwTzF4dVkyOXVjM1FnYzNGc1dXMWtVbVZuWlhnZ1BTQXZLRnhjWkhzMGZTa3RLRnhjWkZ4Y1pDa3RLRnhjWkZ4Y1pDa3ZPeUF2THlCa2RXMWlaV1F0Wkc5M2JpQjJaWEp6YVc5dUlHOW1JSFJvWlNCSlUwOGdiMjVsWEc1amIyNXpkQ0J6Y1d4VWFXMWxVbVZuWlhnZ1BTQlNaV2RGZUhBb1hHNGdJR0FrZTJsemIxUnBiV1ZDWVhObFVtVm5aWGd1YzI5MWNtTmxmU0EvS0Q4NkpIdHZabVp6WlhSU1pXZGxlQzV6YjNWeVkyVjlmQ2drZTJsaGJtRlNaV2RsZUM1emIzVnlZMlY5S1NrL1lGeHVLVHRjYm1OdmJuTjBJSE54YkZScGJXVkZlSFJsYm5OcGIyNVNaV2RsZUNBOUlGSmxaMFY0Y0NoZ0tEODZJQ1I3YzNGc1ZHbHRaVkpsWjJWNExuTnZkWEpqWlgwcFAyQXBPMXh1WEc1bWRXNWpkR2x2YmlCcGJuUW9iV0YwWTJnc0lIQnZjeXdnWm1Gc2JHSmhZMnNwSUh0Y2JpQWdZMjl1YzNRZ2JTQTlJRzFoZEdOb1czQnZjMTA3WEc0Z0lISmxkSFZ5YmlCcGMxVnVaR1ZtYVc1bFpDaHRLU0EvSUdaaGJHeGlZV05ySURvZ2NHRnljMlZKYm5SbFoyVnlLRzBwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJsZUhSeVlXTjBTVk5QV1cxa0tHMWhkR05vTENCamRYSnpiM0lwSUh0Y2JpQWdZMjl1YzNRZ2FYUmxiU0E5SUh0Y2JpQWdJQ0I1WldGeU9pQnBiblFvYldGMFkyZ3NJR04xY25OdmNpa3NYRzRnSUNBZ2JXOXVkR2c2SUdsdWRDaHRZWFJqYUN3Z1kzVnljMjl5SUNzZ01Td2dNU2tzWEc0Z0lDQWdaR0Y1T2lCcGJuUW9iV0YwWTJnc0lHTjFjbk52Y2lBcklESXNJREVwWEc0Z0lIMDdYRzVjYmlBZ2NtVjBkWEp1SUZ0cGRHVnRMQ0J1ZFd4c0xDQmpkWEp6YjNJZ0t5QXpYVHRjYm4xY2JseHVablZ1WTNScGIyNGdaWGgwY21GamRFbFRUMVJwYldVb2JXRjBZMmdzSUdOMWNuTnZjaWtnZTF4dUlDQmpiMjV6ZENCcGRHVnRJRDBnZTF4dUlDQWdJR2h2ZFhKek9pQnBiblFvYldGMFkyZ3NJR04xY25OdmNpd2dNQ2tzWEc0Z0lDQWdiV2x1ZFhSbGN6b2dhVzUwS0cxaGRHTm9MQ0JqZFhKemIzSWdLeUF4TENBd0tTeGNiaUFnSUNCelpXTnZibVJ6T2lCcGJuUW9iV0YwWTJnc0lHTjFjbk52Y2lBcklESXNJREFwTEZ4dUlDQWdJRzFwYkd4cGMyVmpiMjVrY3pvZ2NHRnljMlZOYVd4c2FYTW9iV0YwWTJoYlkzVnljMjl5SUNzZ00xMHBYRzRnSUgwN1hHNWNiaUFnY21WMGRYSnVJRnRwZEdWdExDQnVkV3hzTENCamRYSnpiM0lnS3lBMFhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pYaDBjbUZqZEVsVFQwOW1abk5sZENodFlYUmphQ3dnWTNWeWMyOXlLU0I3WEc0Z0lHTnZibk4wSUd4dlkyRnNJRDBnSVcxaGRHTm9XMk4xY25OdmNsMGdKaVlnSVcxaGRHTm9XMk4xY25OdmNpQXJJREZkTEZ4dUlDQWdJR1oxYkd4UFptWnpaWFFnUFNCemFXZHVaV1JQWm1aelpYUW9iV0YwWTJoYlkzVnljMjl5SUNzZ01WMHNJRzFoZEdOb1cyTjFjbk52Y2lBcklESmRLU3hjYmlBZ0lDQjZiMjVsSUQwZ2JHOWpZV3dnUHlCdWRXeHNJRG9nUm1sNFpXUlBabVp6WlhSYWIyNWxMbWx1YzNSaGJtTmxLR1oxYkd4UFptWnpaWFFwTzF4dUlDQnlaWFIxY200Z1czdDlMQ0I2YjI1bExDQmpkWEp6YjNJZ0t5QXpYVHRjYm4xY2JseHVablZ1WTNScGIyNGdaWGgwY21GamRFbEJUa0ZhYjI1bEtHMWhkR05vTENCamRYSnpiM0lwSUh0Y2JpQWdZMjl1YzNRZ2VtOXVaU0E5SUcxaGRHTm9XMk4xY25OdmNsMGdQeUJKUVU1QldtOXVaUzVqY21WaGRHVW9iV0YwWTJoYlkzVnljMjl5WFNrZ09pQnVkV3hzTzF4dUlDQnlaWFIxY200Z1czdDlMQ0I2YjI1bExDQmpkWEp6YjNJZ0t5QXhYVHRjYm4xY2JseHVMeThnU1ZOUElIUnBiV1VnY0dGeWMybHVaMXh1WEc1amIyNXpkQ0JwYzI5VWFXMWxUMjVzZVNBOUlGSmxaMFY0Y0NoZ1hsUS9KSHRwYzI5VWFXMWxRbUZ6WlZKbFoyVjRMbk52ZFhKalpYMGtZQ2s3WEc1Y2JpOHZJRWxUVHlCa2RYSmhkR2x2YmlCd1lYSnphVzVuWEc1Y2JtTnZibk4wSUdsemIwUjFjbUYwYVc5dUlEMGdMMTR0UDFBb1B6b29Qem9vTFQ5Y1hHUjdNU3d5TUgwb1B6cGNYQzVjWEdSN01Td3lNSDBwUHlsWktUOG9Qem9vTFQ5Y1hHUjdNU3d5TUgwb1B6cGNYQzVjWEdSN01Td3lNSDBwUHlsTktUOG9Qem9vTFQ5Y1hHUjdNU3d5TUgwb1B6cGNYQzVjWEdSN01Td3lNSDBwUHlsWEtUOG9Qem9vTFQ5Y1hHUjdNU3d5TUgwb1B6cGNYQzVjWEdSN01Td3lNSDBwUHlsRUtUOG9QenBVS0Q4NktDMC9YRnhrZXpFc01qQjlLRDg2WEZ3dVhGeGtlekVzTWpCOUtUOHBTQ2svS0Q4NktDMC9YRnhrZXpFc01qQjlLRDg2WEZ3dVhGeGtlekVzTWpCOUtUOHBUU2svS0Q4NktDMC9YRnhrZXpFc01qQjlLU2cvT2xzdUxGMG9MVDljWEdSN01Td3lNSDBwS1Q5VEtUOHBQeWtrTHp0Y2JseHVablZ1WTNScGIyNGdaWGgwY21GamRFbFRUMFIxY21GMGFXOXVLRzFoZEdOb0tTQjdYRzRnSUdOdmJuTjBJRnRjYmlBZ0lDQnpMRnh1SUNBZ0lIbGxZWEpUZEhJc1hHNGdJQ0FnYlc5dWRHaFRkSElzWEc0Z0lDQWdkMlZsYTFOMGNpeGNiaUFnSUNCa1lYbFRkSElzWEc0Z0lDQWdhRzkxY2xOMGNpeGNiaUFnSUNCdGFXNTFkR1ZUZEhJc1hHNGdJQ0FnYzJWamIyNWtVM1J5TEZ4dUlDQWdJRzFwYkd4cGMyVmpiMjVrYzFOMGNseHVJQ0JkSUQwZ2JXRjBZMmc3WEc1Y2JpQWdZMjl1YzNRZ2FHRnpUbVZuWVhScGRtVlFjbVZtYVhnZ1BTQnpXekJkSUQwOVBTQmNJaTFjSWp0Y2JpQWdZMjl1YzNRZ2JtVm5ZWFJwZG1WVFpXTnZibVJ6SUQwZ2MyVmpiMjVrVTNSeUlDWW1JSE5sWTI5dVpGTjBjbHN3WFNBOVBUMGdYQ0l0WENJN1hHNWNiaUFnWTI5dWMzUWdiV0Y1WW1WT1pXZGhkR1VnUFNBb2JuVnRMQ0JtYjNKalpTQTlJR1poYkhObEtTQTlQbHh1SUNBZ0lHNTFiU0FoUFQwZ2RXNWtaV1pwYm1Wa0lDWW1JQ2htYjNKalpTQjhmQ0FvYm5WdElDWW1JR2hoYzA1bFoyRjBhWFpsVUhKbFptbDRLU2tnUHlBdGJuVnRJRG9nYm5WdE8xeHVYRzRnSUhKbGRIVnliaUJiWEc0Z0lDQWdlMXh1SUNBZ0lDQWdlV1ZoY25NNklHMWhlV0psVG1WbllYUmxLSEJoY25ObFJteHZZWFJwYm1jb2VXVmhjbE4wY2lrcExGeHVJQ0FnSUNBZ2JXOXVkR2h6T2lCdFlYbGlaVTVsWjJGMFpTaHdZWEp6WlVac2IyRjBhVzVuS0cxdmJuUm9VM1J5S1Nrc1hHNGdJQ0FnSUNCM1pXVnJjem9nYldGNVltVk9aV2RoZEdVb2NHRnljMlZHYkc5aGRHbHVaeWgzWldWclUzUnlLU2tzWEc0Z0lDQWdJQ0JrWVhsek9pQnRZWGxpWlU1bFoyRjBaU2h3WVhKelpVWnNiMkYwYVc1bktHUmhlVk4wY2lrcExGeHVJQ0FnSUNBZ2FHOTFjbk02SUcxaGVXSmxUbVZuWVhSbEtIQmhjbk5sUm14dllYUnBibWNvYUc5MWNsTjBjaWtwTEZ4dUlDQWdJQ0FnYldsdWRYUmxjem9nYldGNVltVk9aV2RoZEdVb2NHRnljMlZHYkc5aGRHbHVaeWh0YVc1MWRHVlRkSElwS1N4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SUcxaGVXSmxUbVZuWVhSbEtIQmhjbk5sUm14dllYUnBibWNvYzJWamIyNWtVM1J5S1N3Z2MyVmpiMjVrVTNSeUlEMDlQU0JjSWkwd1hDSXBMRnh1SUNBZ0lDQWdiV2xzYkdselpXTnZibVJ6T2lCdFlYbGlaVTVsWjJGMFpTaHdZWEp6WlUxcGJHeHBjeWh0YVd4c2FYTmxZMjl1WkhOVGRISXBMQ0J1WldkaGRHbDJaVk5sWTI5dVpITXBYRzRnSUNBZ2ZWeHVJQ0JkTzF4dWZWeHVYRzR2THlCVWFHVnpaU0JoY21VZ1lTQnNhWFIwYkdVZ1luSmhhVzVrWldGa0xpQkZSRlFnS25Ob2IzVnNaQ29nZEdWc2JDQjFjeUIwYUdGMElIZGxKM0psSUdsdUxDQnpZWGtzSUVGdFpYSnBZMkV2VG1WM1gxbHZjbXRjYmk4dklHRnVaQ0J1YjNRZ2FuVnpkQ0IwYUdGMElIZGxKM0psSUdsdUlDMHlOREFnS25KcFoyaDBJRzV2ZHlvdUlFSjFkQ0J6YVc1alpTQkpJR1J2YmlkMElIUm9hVzVySUhSb1pYTmxJR0Z5WlNCMWMyVmtJSFJvWVhRZ2IyWjBaVzVjYmk4dklFa25iU0JxZFhOMElHZHZhVzVuSUhSdklHbG5ibTl5WlNCMGFHRjBYRzVqYjI1emRDQnZZbk5QWm1aelpYUnpJRDBnZTF4dUlDQkhUVlE2SURBc1hHNGdJRVZFVkRvZ0xUUWdLaUEyTUN4Y2JpQWdSVk5VT2lBdE5TQXFJRFl3TEZ4dUlDQkRSRlE2SUMwMUlDb2dOakFzWEc0Z0lFTlRWRG9nTFRZZ0tpQTJNQ3hjYmlBZ1RVUlVPaUF0TmlBcUlEWXdMRnh1SUNCTlUxUTZJQzAzSUNvZ05qQXNYRzRnSUZCRVZEb2dMVGNnS2lBMk1DeGNiaUFnVUZOVU9pQXRPQ0FxSURZd1hHNTlPMXh1WEc1bWRXNWpkR2x2YmlCbWNtOXRVM1J5YVc1bmN5aDNaV1ZyWkdGNVUzUnlMQ0I1WldGeVUzUnlMQ0J0YjI1MGFGTjBjaXdnWkdGNVUzUnlMQ0JvYjNWeVUzUnlMQ0J0YVc1MWRHVlRkSElzSUhObFkyOXVaRk4wY2lrZ2UxeHVJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQjdYRzRnSUNBZ2VXVmhjam9nZVdWaGNsTjBjaTVzWlc1bmRHZ2dQVDA5SURJZ1B5QjFiblJ5ZFc1allYUmxXV1ZoY2lod1lYSnpaVWx1ZEdWblpYSW9lV1ZoY2xOMGNpa3BJRG9nY0dGeWMyVkpiblJsWjJWeUtIbGxZWEpUZEhJcExGeHVJQ0FnSUcxdmJuUm9PaUJGYm1kc2FYTm9MbTF2Ym5Sb2MxTm9iM0owTG1sdVpHVjRUMllvYlc5dWRHaFRkSElwSUNzZ01TeGNiaUFnSUNCa1lYazZJSEJoY25ObFNXNTBaV2RsY2loa1lYbFRkSElwTEZ4dUlDQWdJR2h2ZFhJNklIQmhjbk5sU1c1MFpXZGxjaWhvYjNWeVUzUnlLU3hjYmlBZ0lDQnRhVzUxZEdVNklIQmhjbk5sU1c1MFpXZGxjaWh0YVc1MWRHVlRkSElwWEc0Z0lIMDdYRzVjYmlBZ2FXWWdLSE5sWTI5dVpGTjBjaWtnY21WemRXeDBMbk5sWTI5dVpDQTlJSEJoY25ObFNXNTBaV2RsY2loelpXTnZibVJUZEhJcE8xeHVJQ0JwWmlBb2QyVmxhMlJoZVZOMGNpa2dlMXh1SUNBZ0lISmxjM1ZzZEM1M1pXVnJaR0Y1SUQxY2JpQWdJQ0FnSUhkbFpXdGtZWGxUZEhJdWJHVnVaM1JvSUQ0Z00xeHVJQ0FnSUNBZ0lDQS9JRVZ1WjJ4cGMyZ3VkMlZsYTJSaGVYTk1iMjVuTG1sdVpHVjRUMllvZDJWbGEyUmhlVk4wY2lrZ0t5QXhYRzRnSUNBZ0lDQWdJRG9nUlc1bmJHbHphQzUzWldWclpHRjVjMU5vYjNKMExtbHVaR1Y0VDJZb2QyVmxhMlJoZVZOMGNpa2dLeUF4TzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYm4xY2JseHVMeThnVWtaRElESTRNakl2TlRNeU1seHVZMjl1YzNRZ2NtWmpNamd5TWlBOUlDOWVLRDg2S0UxdmJueFVkV1Y4VjJWa2ZGUm9kWHhHY21sOFUyRjBmRk4xYmlrc1hGeHpLVDhvWEZ4a2V6RXNNbjBwWEZ4ektFcGhibnhHWldKOFRXRnlmRUZ3Y254TllYbDhTblZ1ZkVwMWJIeEJkV2Q4VTJWd2ZFOWpkSHhPYjNaOFJHVmpLVnhjY3loY1hHUjdNaXcwZlNsY1hITW9YRnhrWEZ4a0tUb29YRnhrWEZ4a0tTZy9Pam9vWEZ4a1hGeGtLU2svWEZ4ektEODZLRlZVZkVkTlZIeGJSVU5OVUYxYlUwUmRWQ2w4S0Z0YWVsMHBmQ2cvT2loYkt5MWRYRnhrWEZ4a0tTaGNYR1JjWEdRcEtTa2tMenRjYmx4dVpuVnVZM1JwYjI0Z1pYaDBjbUZqZEZKR1F6STRNaklvYldGMFkyZ3BJSHRjYmlBZ1kyOXVjM1FnVzF4dUlDQWdJQ0FnTEZ4dUlDQWdJQ0FnZDJWbGEyUmhlVk4wY2l4Y2JpQWdJQ0FnSUdSaGVWTjBjaXhjYmlBZ0lDQWdJRzF2Ym5Sb1UzUnlMRnh1SUNBZ0lDQWdlV1ZoY2xOMGNpeGNiaUFnSUNBZ0lHaHZkWEpUZEhJc1hHNGdJQ0FnSUNCdGFXNTFkR1ZUZEhJc1hHNGdJQ0FnSUNCelpXTnZibVJUZEhJc1hHNGdJQ0FnSUNCdlluTlBabVp6WlhRc1hHNGdJQ0FnSUNCdGFXeFBabVp6WlhRc1hHNGdJQ0FnSUNCdlptWkliM1Z5VTNSeUxGeHVJQ0FnSUNBZ2IyWm1UV2x1ZFhSbFUzUnlYRzRnSUNBZ1hTQTlJRzFoZEdOb0xGeHVJQ0FnSUhKbGMzVnNkQ0E5SUdaeWIyMVRkSEpwYm1kektIZGxaV3RrWVhsVGRISXNJSGxsWVhKVGRISXNJRzF2Ym5Sb1UzUnlMQ0JrWVhsVGRISXNJR2h2ZFhKVGRISXNJRzFwYm5WMFpWTjBjaXdnYzJWamIyNWtVM1J5S1R0Y2JseHVJQ0JzWlhRZ2IyWm1jMlYwTzF4dUlDQnBaaUFvYjJKelQyWm1jMlYwS1NCN1hHNGdJQ0FnYjJabWMyVjBJRDBnYjJKelQyWm1jMlYwYzF0dlluTlBabVp6WlhSZE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0cxcGJFOW1abk5sZENrZ2UxeHVJQ0FnSUc5bVpuTmxkQ0E5SURBN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2IyWm1jMlYwSUQwZ2MybG5ibVZrVDJabWMyVjBLRzltWmtodmRYSlRkSElzSUc5bVprMXBiblYwWlZOMGNpazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdXM0psYzNWc2RDd2dibVYzSUVacGVHVmtUMlptYzJWMFdtOXVaU2h2Wm1aelpYUXBYVHRjYm4xY2JseHVablZ1WTNScGIyNGdjSEpsY0hKdlkyVnpjMUpHUXpJNE1qSW9jeWtnZTF4dUlDQXZMeUJTWlcxdmRtVWdZMjl0YldWdWRITWdZVzVrSUdadmJHUnBibWNnZDJocGRHVnpjR0ZqWlNCaGJtUWdjbVZ3YkdGalpTQnRkV3gwYVhCc1pTMXpjR0ZqWlhNZ2QybDBhQ0JoSUhOcGJtZHNaU0J6Y0dGalpWeHVJQ0J5WlhSMWNtNGdjMXh1SUNBZ0lDNXlaWEJzWVdObEtDOWNYQ2hiWGlncFhTcGNYQ2w4VzF4Y2JseGNkRjB2Wnl3Z1hDSWdYQ0lwWEc0Z0lDQWdMbkpsY0d4aFkyVW9MeWhjWEhOY1hITXJLUzluTENCY0lpQmNJaWxjYmlBZ0lDQXVkSEpwYlNncE8xeHVmVnh1WEc0dkx5Qm9kSFJ3SUdSaGRHVmNibHh1WTI5dWMzUWdjbVpqTVRFeU15QTlJQzllS0UxdmJueFVkV1Y4VjJWa2ZGUm9kWHhHY21sOFUyRjBmRk4xYmlrc0lDaGNYR1JjWEdRcElDaEtZVzU4Um1WaWZFMWhjbnhCY0hKOFRXRjVmRXAxYm54S2RXeDhRWFZuZkZObGNIeFBZM1I4VG05MmZFUmxZeWtnS0Z4Y1pIczBmU2tnS0Z4Y1pGeGNaQ2s2S0Z4Y1pGeGNaQ2s2S0Z4Y1pGeGNaQ2tnUjAxVUpDOHNYRzRnSUhKbVl6ZzFNQ0E5SUM5ZUtFMXZibVJoZVh4VWRXVnpaR0Y1ZkZkbFpHNWxjMlJoZVh4VWFIVnljMlJoZVh4R2NtbGtZWGw4VTJGMGRYSmtZWGw4VTNWdVpHRjVLU3dnS0Z4Y1pGeGNaQ2t0S0VwaGJueEdaV0o4VFdGeWZFRndjbnhOWVhsOFNuVnVmRXAxYkh4QmRXZDhVMlZ3ZkU5amRIeE9iM1o4UkdWaktTMG9YRnhrWEZ4a0tTQW9YRnhrWEZ4a0tUb29YRnhrWEZ4a0tUb29YRnhrWEZ4a0tTQkhUVlFrTHl4Y2JpQWdZWE5qYVdrZ1BTQXZYaWhOYjI1OFZIVmxmRmRsWkh4VWFIVjhSbkpwZkZOaGRIeFRkVzRwSUNoS1lXNThSbVZpZkUxaGNueEJjSEo4VFdGNWZFcDFibnhLZFd4OFFYVm5mRk5sY0h4UFkzUjhUbTkyZkVSbFl5a2dLQ0JjWEdSOFhGeGtYRnhrS1NBb1hGeGtYRnhrS1Rvb1hGeGtYRnhrS1Rvb1hGeGtYRnhrS1NBb1hGeGtlelI5S1NRdk8xeHVYRzVtZFc1amRHbHZiaUJsZUhSeVlXTjBVa1pETVRFeU0wOXlPRFV3S0cxaGRHTm9LU0I3WEc0Z0lHTnZibk4wSUZzc0lIZGxaV3RrWVhsVGRISXNJR1JoZVZOMGNpd2diVzl1ZEdoVGRISXNJSGxsWVhKVGRISXNJR2h2ZFhKVGRISXNJRzFwYm5WMFpWTjBjaXdnYzJWamIyNWtVM1J5WFNBOUlHMWhkR05vTEZ4dUlDQWdJSEpsYzNWc2RDQTlJR1p5YjIxVGRISnBibWR6S0hkbFpXdGtZWGxUZEhJc0lIbGxZWEpUZEhJc0lHMXZiblJvVTNSeUxDQmtZWGxUZEhJc0lHaHZkWEpUZEhJc0lHMXBiblYwWlZOMGNpd2djMlZqYjI1a1UzUnlLVHRjYmlBZ2NtVjBkWEp1SUZ0eVpYTjFiSFFzSUVacGVHVmtUMlptYzJWMFdtOXVaUzUxZEdOSmJuTjBZVzVqWlYwN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdWNGRISmhZM1JCVTBOSlNTaHRZWFJqYUNrZ2UxeHVJQ0JqYjI1emRDQmJMQ0IzWldWclpHRjVVM1J5TENCdGIyNTBhRk4wY2l3Z1pHRjVVM1J5TENCb2IzVnlVM1J5TENCdGFXNTFkR1ZUZEhJc0lITmxZMjl1WkZOMGNpd2dlV1ZoY2xOMGNsMGdQU0J0WVhSamFDeGNiaUFnSUNCeVpYTjFiSFFnUFNCbWNtOXRVM1J5YVc1bmN5aDNaV1ZyWkdGNVUzUnlMQ0I1WldGeVUzUnlMQ0J0YjI1MGFGTjBjaXdnWkdGNVUzUnlMQ0JvYjNWeVUzUnlMQ0J0YVc1MWRHVlRkSElzSUhObFkyOXVaRk4wY2lrN1hHNGdJSEpsZEhWeWJpQmJjbVZ6ZFd4MExDQkdhWGhsWkU5bVpuTmxkRnB2Ym1VdWRYUmpTVzV6ZEdGdVkyVmRPMXh1ZlZ4dVhHNWpiMjV6ZENCcGMyOVpiV1JYYVhSb1ZHbHRaVVY0ZEdWdWMybHZibEpsWjJWNElEMGdZMjl0WW1sdVpWSmxaMlY0WlhNb2FYTnZXVzFrVW1WblpYZ3NJR2x6YjFScGJXVkZlSFJsYm5OcGIyNVNaV2RsZUNrN1hHNWpiMjV6ZENCcGMyOVhaV1ZyVjJsMGFGUnBiV1ZGZUhSbGJuTnBiMjVTWldkbGVDQTlJR052YldKcGJtVlNaV2RsZUdWektHbHpiMWRsWld0U1pXZGxlQ3dnYVhOdlZHbHRaVVY0ZEdWdWMybHZibEpsWjJWNEtUdGNibU52Ym5OMElHbHpiMDl5WkdsdVlXeFhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0SUQwZ1kyOXRZbWx1WlZKbFoyVjRaWE1vYVhOdlQzSmthVzVoYkZKbFoyVjRMQ0JwYzI5VWFXMWxSWGgwWlc1emFXOXVVbVZuWlhncE8xeHVZMjl1YzNRZ2FYTnZWR2x0WlVOdmJXSnBibVZrVW1WblpYZ2dQU0JqYjIxaWFXNWxVbVZuWlhobGN5aHBjMjlVYVcxbFVtVm5aWGdwTzF4dVhHNWpiMjV6ZENCbGVIUnlZV04wU1ZOUFdXMWtWR2x0WlVGdVpFOW1abk5sZENBOUlHTnZiV0pwYm1WRmVIUnlZV04wYjNKektGeHVJQ0JsZUhSeVlXTjBTVk5QV1cxa0xGeHVJQ0JsZUhSeVlXTjBTVk5QVkdsdFpTeGNiaUFnWlhoMGNtRmpkRWxUVDA5bVpuTmxkQ3hjYmlBZ1pYaDBjbUZqZEVsQlRrRmFiMjVsWEc0cE8xeHVZMjl1YzNRZ1pYaDBjbUZqZEVsVFQxZGxaV3RVYVcxbFFXNWtUMlptYzJWMElEMGdZMjl0WW1sdVpVVjRkSEpoWTNSdmNuTW9YRzRnSUdWNGRISmhZM1JKVTA5WFpXVnJSR0YwWVN4Y2JpQWdaWGgwY21GamRFbFRUMVJwYldVc1hHNGdJR1Y0ZEhKaFkzUkpVMDlQWm1aelpYUXNYRzRnSUdWNGRISmhZM1JKUVU1QldtOXVaVnh1S1R0Y2JtTnZibk4wSUdWNGRISmhZM1JKVTA5UGNtUnBibUZzUkdGMFpVRnVaRlJwYldVZ1BTQmpiMjFpYVc1bFJYaDBjbUZqZEc5eWN5aGNiaUFnWlhoMGNtRmpkRWxUVDA5eVpHbHVZV3hFWVhSaExGeHVJQ0JsZUhSeVlXTjBTVk5QVkdsdFpTeGNiaUFnWlhoMGNtRmpkRWxUVDA5bVpuTmxkQ3hjYmlBZ1pYaDBjbUZqZEVsQlRrRmFiMjVsWEc0cE8xeHVZMjl1YzNRZ1pYaDBjbUZqZEVsVFQxUnBiV1ZCYm1SUFptWnpaWFFnUFNCamIyMWlhVzVsUlhoMGNtRmpkRzl5Y3loY2JpQWdaWGgwY21GamRFbFRUMVJwYldVc1hHNGdJR1Y0ZEhKaFkzUkpVMDlQWm1aelpYUXNYRzRnSUdWNGRISmhZM1JKUVU1QldtOXVaVnh1S1R0Y2JseHVMeXBjYmlBcUlFQndjbWwyWVhSbFhHNGdLaTljYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCaGNuTmxTVk5QUkdGMFpTaHpLU0I3WEc0Z0lISmxkSFZ5YmlCd1lYSnpaU2hjYmlBZ0lDQnpMRnh1SUNBZ0lGdHBjMjlaYldSWGFYUm9WR2x0WlVWNGRHVnVjMmx2YmxKbFoyVjRMQ0JsZUhSeVlXTjBTVk5QV1cxa1ZHbHRaVUZ1WkU5bVpuTmxkRjBzWEc0Z0lDQWdXMmx6YjFkbFpXdFhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0TENCbGVIUnlZV04wU1ZOUFYyVmxhMVJwYldWQmJtUlBabVp6WlhSZExGeHVJQ0FnSUZ0cGMyOVBjbVJwYm1Gc1YybDBhRlJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ3dnWlhoMGNtRmpkRWxUVDA5eVpHbHVZV3hFWVhSbFFXNWtWR2x0WlYwc1hHNGdJQ0FnVzJsemIxUnBiV1ZEYjIxaWFXNWxaRkpsWjJWNExDQmxlSFJ5WVdOMFNWTlBWR2x0WlVGdVpFOW1abk5sZEYxY2JpQWdLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sVWtaRE1qZ3lNa1JoZEdVb2N5a2dlMXh1SUNCeVpYUjFjbTRnY0dGeWMyVW9jSEpsY0hKdlkyVnpjMUpHUXpJNE1qSW9jeWtzSUZ0eVptTXlPREl5TENCbGVIUnlZV04wVWtaRE1qZ3lNbDBwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjR0Z5YzJWSVZGUlFSR0YwWlNoektTQjdYRzRnSUhKbGRIVnliaUJ3WVhKelpTaGNiaUFnSUNCekxGeHVJQ0FnSUZ0eVptTXhNVEl6TENCbGVIUnlZV04wVWtaRE1URXlNMDl5T0RVd1hTeGNiaUFnSUNCYmNtWmpPRFV3TENCbGVIUnlZV04wVWtaRE1URXlNMDl5T0RVd1hTeGNiaUFnSUNCYllYTmphV2tzSUdWNGRISmhZM1JCVTBOSlNWMWNiaUFnS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJoY25ObFNWTlBSSFZ5WVhScGIyNG9jeWtnZTF4dUlDQnlaWFIxY200Z2NHRnljMlVvY3l3Z1cybHpiMFIxY21GMGFXOXVMQ0JsZUhSeVlXTjBTVk5QUkhWeVlYUnBiMjVkS1R0Y2JuMWNibHh1WTI5dWMzUWdaWGgwY21GamRFbFRUMVJwYldWUGJteDVJRDBnWTI5dFltbHVaVVY0ZEhKaFkzUnZjbk1vWlhoMGNtRmpkRWxUVDFScGJXVXBPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVkpVMDlVYVcxbFQyNXNlU2h6S1NCN1hHNGdJSEpsZEhWeWJpQndZWEp6WlNoekxDQmJhWE52VkdsdFpVOXViSGtzSUdWNGRISmhZM1JKVTA5VWFXMWxUMjVzZVYwcE8xeHVmVnh1WEc1amIyNXpkQ0J6Y1d4WmJXUlhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0SUQwZ1kyOXRZbWx1WlZKbFoyVjRaWE1vYzNGc1dXMWtVbVZuWlhnc0lITnhiRlJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ2s3WEc1amIyNXpkQ0J6Y1d4VWFXMWxRMjl0WW1sdVpXUlNaV2RsZUNBOUlHTnZiV0pwYm1WU1pXZGxlR1Z6S0hOeGJGUnBiV1ZTWldkbGVDazdYRzVjYm1OdmJuTjBJR1Y0ZEhKaFkzUkpVMDlVYVcxbFQyWm1jMlYwUVc1a1NVRk9RVnB2Ym1VZ1BTQmpiMjFpYVc1bFJYaDBjbUZqZEc5eWN5aGNiaUFnWlhoMGNtRmpkRWxUVDFScGJXVXNYRzRnSUdWNGRISmhZM1JKVTA5UFptWnpaWFFzWEc0Z0lHVjRkSEpoWTNSSlFVNUJXbTl1WlZ4dUtUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJoY25ObFUxRk1LSE1wSUh0Y2JpQWdjbVYwZFhKdUlIQmhjbk5sS0Z4dUlDQWdJSE1zWEc0Z0lDQWdXM054YkZsdFpGZHBkR2hVYVcxbFJYaDBaVzV6YVc5dVVtVm5aWGdzSUdWNGRISmhZM1JKVTA5WmJXUlVhVzFsUVc1a1QyWm1jMlYwWFN4Y2JpQWdJQ0JiYzNGc1ZHbHRaVU52YldKcGJtVmtVbVZuWlhnc0lHVjRkSEpoWTNSSlUwOVVhVzFsVDJabWMyVjBRVzVrU1VGT1FWcHZibVZkWEc0Z0lDazdYRzU5WEc0aUxDQWlhVzF3YjNKMElIc2dTVzUyWVd4cFpFRnlaM1Z0Wlc1MFJYSnliM0lzSUVsdWRtRnNhV1JFZFhKaGRHbHZia1Z5Y205eUxDQkpiblpoYkdsa1ZXNXBkRVZ5Y205eUlIMGdabkp2YlNCY0lpNHZaWEp5YjNKekxtcHpYQ0k3WEc1cGJYQnZjblFnUm05eWJXRjBkR1Z5SUdaeWIyMGdYQ0l1TDJsdGNHd3ZabTl5YldGMGRHVnlMbXB6WENJN1hHNXBiWEJ2Y25RZ1NXNTJZV3hwWkNCbWNtOXRJRndpTGk5cGJYQnNMMmx1ZG1Gc2FXUXVhbk5jSWp0Y2JtbHRjRzl5ZENCTWIyTmhiR1VnWm5KdmJTQmNJaTR2YVcxd2JDOXNiMk5oYkdVdWFuTmNJanRjYm1sdGNHOXlkQ0I3SUhCaGNuTmxTVk5QUkhWeVlYUnBiMjRzSUhCaGNuTmxTVk5QVkdsdFpVOXViSGtnZlNCbWNtOXRJRndpTGk5cGJYQnNMM0psWjJWNFVHRnljMlZ5TG1welhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCaGMwNTFiV0psY2l4Y2JpQWdhR0Z6VDNkdVVISnZjR1Z5ZEhrc1hHNGdJR2x6VG5WdFltVnlMRnh1SUNCcGMxVnVaR1ZtYVc1bFpDeGNiaUFnYm05eWJXRnNhWHBsVDJKcVpXTjBMRnh1SUNCeWIzVnVaRlJ2TEZ4dWZTQm1jbTl0SUZ3aUxpOXBiWEJzTDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENCVFpYUjBhVzVuY3lCbWNtOXRJRndpTGk5elpYUjBhVzVuY3k1cWMxd2lPMXh1WEc1amIyNXpkQ0JKVGxaQlRFbEVJRDBnWENKSmJuWmhiR2xrSUVSMWNtRjBhVzl1WENJN1hHNWNiaTh2SUhWdWFYUWdZMjl1ZG1WeWMybHZiaUJqYjI1emRHRnVkSE5jYm1WNGNHOXlkQ0JqYjI1emRDQnNiM2RQY21SbGNrMWhkSEpwZUNBOUlIdGNiaUFnSUNCM1pXVnJjem9nZTF4dUlDQWdJQ0FnWkdGNWN6b2dOeXhjYmlBZ0lDQWdJR2h2ZFhKek9pQTNJQ29nTWpRc1hHNGdJQ0FnSUNCdGFXNTFkR1Z6T2lBM0lDb2dNalFnS2lBMk1DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklEY2dLaUF5TkNBcUlEWXdJQ29nTmpBc1hHNGdJQ0FnSUNCdGFXeHNhWE5sWTI5dVpITTZJRGNnS2lBeU5DQXFJRFl3SUNvZ05qQWdLaUF4TURBd0xGeHVJQ0FnSUgwc1hHNGdJQ0FnWkdGNWN6b2dlMXh1SUNBZ0lDQWdhRzkxY25NNklESTBMRnh1SUNBZ0lDQWdiV2x1ZFhSbGN6b2dNalFnS2lBMk1DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklESTBJQ29nTmpBZ0tpQTJNQ3hjYmlBZ0lDQWdJRzFwYkd4cGMyVmpiMjVrY3pvZ01qUWdLaUEyTUNBcUlEWXdJQ29nTVRBd01DeGNiaUFnSUNCOUxGeHVJQ0FnSUdodmRYSnpPaUI3SUcxcGJuVjBaWE02SURZd0xDQnpaV052Ym1Sek9pQTJNQ0FxSURZd0xDQnRhV3hzYVhObFkyOXVaSE02SURZd0lDb2dOakFnS2lBeE1EQXdJSDBzWEc0Z0lDQWdiV2x1ZFhSbGN6b2dleUJ6WldOdmJtUnpPaUEyTUN3Z2JXbHNiR2x6WldOdmJtUnpPaUEyTUNBcUlERXdNREFnZlN4Y2JpQWdJQ0J6WldOdmJtUnpPaUI3SUcxcGJHeHBjMlZqYjI1a2N6b2dNVEF3TUNCOUxGeHVJQ0I5TEZ4dUlDQmpZWE4xWVd4TllYUnlhWGdnUFNCN1hHNGdJQ0FnZVdWaGNuTTZJSHRjYmlBZ0lDQWdJSEYxWVhKMFpYSnpPaUEwTEZ4dUlDQWdJQ0FnYlc5dWRHaHpPaUF4TWl4Y2JpQWdJQ0FnSUhkbFpXdHpPaUExTWl4Y2JpQWdJQ0FnSUdSaGVYTTZJRE0yTlN4Y2JpQWdJQ0FnSUdodmRYSnpPaUF6TmpVZ0tpQXlOQ3hjYmlBZ0lDQWdJRzFwYm5WMFpYTTZJRE0yTlNBcUlESTBJQ29nTmpBc1hHNGdJQ0FnSUNCelpXTnZibVJ6T2lBek5qVWdLaUF5TkNBcUlEWXdJQ29nTmpBc1hHNGdJQ0FnSUNCdGFXeHNhWE5sWTI5dVpITTZJRE0yTlNBcUlESTBJQ29nTmpBZ0tpQTJNQ0FxSURFd01EQXNYRzRnSUNBZ2ZTeGNiaUFnSUNCeGRXRnlkR1Z5Y3pvZ2UxeHVJQ0FnSUNBZ2JXOXVkR2h6T2lBekxGeHVJQ0FnSUNBZ2QyVmxhM002SURFekxGeHVJQ0FnSUNBZ1pHRjVjem9nT1RFc1hHNGdJQ0FnSUNCb2IzVnljem9nT1RFZ0tpQXlOQ3hjYmlBZ0lDQWdJRzFwYm5WMFpYTTZJRGt4SUNvZ01qUWdLaUEyTUN4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SURreElDb2dNalFnS2lBMk1DQXFJRFl3TEZ4dUlDQWdJQ0FnYldsc2JHbHpaV052Ym1Sek9pQTVNU0FxSURJMElDb2dOakFnS2lBMk1DQXFJREV3TURBc1hHNGdJQ0FnZlN4Y2JpQWdJQ0J0YjI1MGFITTZJSHRjYmlBZ0lDQWdJSGRsWld0ek9pQTBMRnh1SUNBZ0lDQWdaR0Y1Y3pvZ016QXNYRzRnSUNBZ0lDQm9iM1Z5Y3pvZ016QWdLaUF5TkN4Y2JpQWdJQ0FnSUcxcGJuVjBaWE02SURNd0lDb2dNalFnS2lBMk1DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklETXdJQ29nTWpRZ0tpQTJNQ0FxSURZd0xGeHVJQ0FnSUNBZ2JXbHNiR2x6WldOdmJtUnpPaUF6TUNBcUlESTBJQ29nTmpBZ0tpQTJNQ0FxSURFd01EQXNYRzRnSUNBZ2ZTeGNibHh1SUNBZ0lDNHVMbXh2ZDA5eVpHVnlUV0YwY21sNExGeHVJQ0I5TEZ4dUlDQmtZWGx6U1c1WlpXRnlRV05qZFhKaGRHVWdQU0F4TkRZd09UY3VNQ0F2SURRd01DeGNiaUFnWkdGNWMwbHVUVzl1ZEdoQlkyTjFjbUYwWlNBOUlERTBOakE1Tnk0d0lDOGdORGd3TUN4Y2JpQWdZV05qZFhKaGRHVk5ZWFJ5YVhnZ1BTQjdYRzRnSUNBZ2VXVmhjbk02SUh0Y2JpQWdJQ0FnSUhGMVlYSjBaWEp6T2lBMExGeHVJQ0FnSUNBZ2JXOXVkR2h6T2lBeE1peGNiaUFnSUNBZ0lIZGxaV3R6T2lCa1lYbHpTVzVaWldGeVFXTmpkWEpoZEdVZ0x5QTNMRnh1SUNBZ0lDQWdaR0Y1Y3pvZ1pHRjVjMGx1V1dWaGNrRmpZM1Z5WVhSbExGeHVJQ0FnSUNBZ2FHOTFjbk02SUdSaGVYTkpibGxsWVhKQlkyTjFjbUYwWlNBcUlESTBMRnh1SUNBZ0lDQWdiV2x1ZFhSbGN6b2daR0Y1YzBsdVdXVmhja0ZqWTNWeVlYUmxJQ29nTWpRZ0tpQTJNQ3hjYmlBZ0lDQWdJSE5sWTI5dVpITTZJR1JoZVhOSmJsbGxZWEpCWTJOMWNtRjBaU0FxSURJMElDb2dOakFnS2lBMk1DeGNiaUFnSUNBZ0lHMXBiR3hwYzJWamIyNWtjem9nWkdGNWMwbHVXV1ZoY2tGalkzVnlZWFJsSUNvZ01qUWdLaUEyTUNBcUlEWXdJQ29nTVRBd01DeGNiaUFnSUNCOUxGeHVJQ0FnSUhGMVlYSjBaWEp6T2lCN1hHNGdJQ0FnSUNCdGIyNTBhSE02SURNc1hHNGdJQ0FnSUNCM1pXVnJjem9nWkdGNWMwbHVXV1ZoY2tGalkzVnlZWFJsSUM4Z01qZ3NYRzRnSUNBZ0lDQmtZWGx6T2lCa1lYbHpTVzVaWldGeVFXTmpkWEpoZEdVZ0x5QTBMRnh1SUNBZ0lDQWdhRzkxY25NNklDaGtZWGx6U1c1WlpXRnlRV05qZFhKaGRHVWdLaUF5TkNrZ0x5QTBMRnh1SUNBZ0lDQWdiV2x1ZFhSbGN6b2dLR1JoZVhOSmJsbGxZWEpCWTJOMWNtRjBaU0FxSURJMElDb2dOakFwSUM4Z05DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklDaGtZWGx6U1c1WlpXRnlRV05qZFhKaGRHVWdLaUF5TkNBcUlEWXdJQ29nTmpBcElDOGdOQ3hjYmlBZ0lDQWdJRzFwYkd4cGMyVmpiMjVrY3pvZ0tHUmhlWE5KYmxsbFlYSkJZMk4xY21GMFpTQXFJREkwSUNvZ05qQWdLaUEyTUNBcUlERXdNREFwSUM4Z05DeGNiaUFnSUNCOUxGeHVJQ0FnSUcxdmJuUm9jem9nZTF4dUlDQWdJQ0FnZDJWbGEzTTZJR1JoZVhOSmJrMXZiblJvUVdOamRYSmhkR1VnTHlBM0xGeHVJQ0FnSUNBZ1pHRjVjem9nWkdGNWMwbHVUVzl1ZEdoQlkyTjFjbUYwWlN4Y2JpQWdJQ0FnSUdodmRYSnpPaUJrWVhselNXNU5iMjUwYUVGalkzVnlZWFJsSUNvZ01qUXNYRzRnSUNBZ0lDQnRhVzUxZEdWek9pQmtZWGx6U1c1TmIyNTBhRUZqWTNWeVlYUmxJQ29nTWpRZ0tpQTJNQ3hjYmlBZ0lDQWdJSE5sWTI5dVpITTZJR1JoZVhOSmJrMXZiblJvUVdOamRYSmhkR1VnS2lBeU5DQXFJRFl3SUNvZ05qQXNYRzRnSUNBZ0lDQnRhV3hzYVhObFkyOXVaSE02SUdSaGVYTkpiazF2Ym5Sb1FXTmpkWEpoZEdVZ0tpQXlOQ0FxSURZd0lDb2dOakFnS2lBeE1EQXdMRnh1SUNBZ0lIMHNYRzRnSUNBZ0xpNHViRzkzVDNKa1pYSk5ZWFJ5YVhnc1hHNGdJSDA3WEc1Y2JpOHZJSFZ1YVhSeklHOXlaR1Z5WldRZ1lua2djMmw2WlZ4dVkyOXVjM1FnYjNKa1pYSmxaRlZ1YVhSeklEMGdXMXh1SUNCY0lubGxZWEp6WENJc1hHNGdJRndpY1hWaGNuUmxjbk5jSWl4Y2JpQWdYQ0p0YjI1MGFITmNJaXhjYmlBZ1hDSjNaV1ZyYzF3aUxGeHVJQ0JjSW1SaGVYTmNJaXhjYmlBZ1hDSm9iM1Z5YzF3aUxGeHVJQ0JjSW0xcGJuVjBaWE5jSWl4Y2JpQWdYQ0p6WldOdmJtUnpYQ0lzWEc0Z0lGd2liV2xzYkdselpXTnZibVJ6WENJc1hHNWRPMXh1WEc1amIyNXpkQ0J5WlhabGNuTmxWVzVwZEhNZ1BTQnZjbVJsY21Wa1ZXNXBkSE11YzJ4cFkyVW9NQ2t1Y21WMlpYSnpaU2dwTzF4dVhHNHZMeUJqYkc5dVpTQnlaV0ZzYkhrZ2JXVmhibk1nWENKamNtVmhkR1VnWVc1dmRHaGxjaUJwYm5OMFlXNWpaU0JxZFhOMElHeHBhMlVnZEdocGN5QnZibVVzSUdKMWRDQjNhWFJvSUhSb1pYTmxJR05vWVc1blpYTmNJbHh1Wm5WdVkzUnBiMjRnWTJ4dmJtVW9aSFZ5TENCaGJIUnpMQ0JqYkdWaGNpQTlJR1poYkhObEtTQjdYRzRnSUM4dklHUmxaWEFnYldWeVoyVWdabTl5SUhaaGJITmNiaUFnWTI5dWMzUWdZMjl1WmlBOUlIdGNiaUFnSUNCMllXeDFaWE02SUdOc1pXRnlJRDhnWVd4MGN5NTJZV3gxWlhNZ09pQjdJQzR1TG1SMWNpNTJZV3gxWlhNc0lDNHVMaWhoYkhSekxuWmhiSFZsY3lCOGZDQjdmU2tnZlN4Y2JpQWdJQ0JzYjJNNklHUjFjaTVzYjJNdVkyeHZibVVvWVd4MGN5NXNiMk1wTEZ4dUlDQWdJR052Ym5abGNuTnBiMjVCWTJOMWNtRmplVG9nWVd4MGN5NWpiMjUyWlhKemFXOXVRV05qZFhKaFkza2dmSHdnWkhWeUxtTnZiblpsY25OcGIyNUJZMk4xY21GamVTeGNiaUFnZlR0Y2JpQWdjbVYwZFhKdUlHNWxkeUJFZFhKaGRHbHZiaWhqYjI1bUtUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1lXNTBhVlJ5ZFc1aktHNHBJSHRjYmlBZ2NtVjBkWEp1SUc0Z1BDQXdJRDhnVFdGMGFDNW1iRzl2Y2lodUtTQTZJRTFoZEdndVkyVnBiQ2h1S1R0Y2JuMWNibHh1THk4Z1RrSTZJRzExZEdGMFpYTWdjR0Z5WVcxbGRHVnljMXh1Wm5WdVkzUnBiMjRnWTI5dWRtVnlkQ2h0WVhSeWFYZ3NJR1p5YjIxTllYQXNJR1p5YjIxVmJtbDBMQ0IwYjAxaGNDd2dkRzlWYm1sMEtTQjdYRzRnSUdOdmJuTjBJR052Ym5ZZ1BTQnRZWFJ5YVhoYmRHOVZibWwwWFZ0bWNtOXRWVzVwZEYwc1hHNGdJQ0FnY21GM0lEMGdabkp2YlUxaGNGdG1jbTl0Vlc1cGRGMGdMeUJqYjI1MkxGeHVJQ0FnSUhOaGJXVlRhV2R1SUQwZ1RXRjBhQzV6YVdkdUtISmhkeWtnUFQwOUlFMWhkR2d1YzJsbmJpaDBiMDFoY0Z0MGIxVnVhWFJkS1N4Y2JpQWdJQ0F2THlCdmF5d2djMjhnZEdocGN5QnBjeUIzYVd4a0xDQmlkWFFnYzJWbElIUm9aU0J0WVhSeWFYZ2dhVzRnZEdobElIUmxjM1J6WEc0Z0lDQWdZV1JrWldRZ1BWeHVJQ0FnSUNBZ0lYTmhiV1ZUYVdkdUlDWW1JSFJ2VFdGd1czUnZWVzVwZEYwZ0lUMDlJREFnSmlZZ1RXRjBhQzVoWW5Nb2NtRjNLU0E4UFNBeElEOGdZVzUwYVZSeWRXNWpLSEpoZHlrZ09pQk5ZWFJvTG5SeWRXNWpLSEpoZHlrN1hHNGdJSFJ2VFdGd1czUnZWVzVwZEYwZ0t6MGdZV1JrWldRN1hHNGdJR1p5YjIxTllYQmJabkp2YlZWdWFYUmRJQzA5SUdGa1pHVmtJQ29nWTI5dWRqdGNibjFjYmx4dUx5OGdUa0k2SUcxMWRHRjBaWE1nY0dGeVlXMWxkR1Z5YzF4dVpuVnVZM1JwYjI0Z2JtOXliV0ZzYVhwbFZtRnNkV1Z6S0cxaGRISnBlQ3dnZG1Gc2N5a2dlMXh1SUNCeVpYWmxjbk5sVlc1cGRITXVjbVZrZFdObEtDaHdjbVYyYVc5MWN5d2dZM1Z5Y21WdWRDa2dQVDRnZTF4dUlDQWdJR2xtSUNnaGFYTlZibVJsWm1sdVpXUW9kbUZzYzF0amRYSnlaVzUwWFNrcElIdGNiaUFnSUNBZ0lHbG1JQ2h3Y21WMmFXOTFjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNTJaWEowS0cxaGRISnBlQ3dnZG1Gc2N5d2djSEpsZG1sdmRYTXNJSFpoYkhNc0lHTjFjbkpsYm5RcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdOMWNuSmxiblE3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCd2NtVjJhVzkxY3p0Y2JpQWdJQ0I5WEc0Z0lIMHNJRzUxYkd3cE8xeHVmVnh1WEc0dktpcGNiaUFxSUVFZ1JIVnlZWFJwYjI0Z2IySnFaV04wSUhKbGNISmxjMlZ1ZEhNZ1lTQndaWEpwYjJRZ2IyWWdkR2x0WlN3Z2JHbHJaU0JjSWpJZ2JXOXVkR2h6WENJZ2IzSWdYQ0l4SUdSaGVTd2dNU0JvYjNWeVhDSXVJRU52Ym1ObGNIUjFZV3hzZVN3Z2FYUW5jeUJxZFhOMElHRWdiV0Z3SUc5bUlIVnVhWFJ6SUhSdklIUm9aV2x5SUhGMVlXNTBhWFJwWlhNc0lHRmpZMjl0Y0dGdWFXVmtJR0o1SUhOdmJXVWdZV1JrYVhScGIyNWhiQ0JqYjI1bWFXZDFjbUYwYVc5dUlHRnVaQ0J0WlhSb2IyUnpJR1p2Y2lCamNtVmhkR2x1Wnl3Z2NHRnljMmx1Wnl3Z2FXNTBaWEp5YjJkaGRHbHVaeXdnZEhKaGJuTm1iM0p0YVc1bkxDQmhibVFnWm05eWJXRjBkR2x1WnlCMGFHVnRMaUJVYUdWNUlHTmhiaUJpWlNCMWMyVmtJRzl1SUhSb1pXbHlJRzkzYmlCdmNpQnBiaUJqYjI1cWRXNWpkR2x2YmlCM2FYUm9JRzkwYUdWeUlFeDFlRzl1SUhSNWNHVnpPeUJtYjNJZ1pYaGhiWEJzWlN3Z2VXOTFJR05oYmlCMWMyVWdlMEJzYVc1cklFUmhkR1ZVYVcxbEkzQnNkWE45SUhSdklHRmtaQ0JoSUVSMWNtRjBhVzl1SUc5aWFtVmpkQ0IwYnlCaElFUmhkR1ZVYVcxbExDQndjbTlrZFdOcGJtY2dZVzV2ZEdobGNpQkVZWFJsVkdsdFpTNWNiaUFxWEc0Z0tpQklaWEpsSUdseklHRWdZbkpwWldZZ2IzWmxjblpwWlhjZ2IyWWdZMjl0Ylc5dWJIa2dkWE5sWkNCdFpYUm9iMlJ6SUdGdVpDQm5aWFIwWlhKeklHbHVJRVIxY21GMGFXOXVPbHh1SUNwY2JpQXFJQ29nS2lwRGNtVmhkR2x2YmlvcUlGUnZJR055WldGMFpTQmhJRVIxY21GMGFXOXVMQ0IxYzJVZ2UwQnNhVzVySUVSMWNtRjBhVzl1STJaeWIyMU5hV3hzYVhOOUxDQjdRR3hwYm1zZ1JIVnlZWFJwYjI0alpuSnZiVTlpYW1WamRIMHNJRzl5SUh0QWJHbHVheUJFZFhKaGRHbHZiaU5tY205dFNWTlBmUzVjYmlBcUlDb2dLaXBWYm1sMElIWmhiSFZsY3lvcUlGTmxaU0IwYUdVZ2UwQnNhVzVySUVSMWNtRjBhVzl1STNsbFlYSnpmU3dnZTBCc2FXNXJJRVIxY21GMGFXOXVJMjF2Ym5Sb2MzMHNJSHRBYkdsdWF5QkVkWEpoZEdsdmJpTjNaV1ZyYzMwc0lIdEFiR2x1YXlCRWRYSmhkR2x2YmlOa1lYbHpmU3dnZTBCc2FXNXJJRVIxY21GMGFXOXVJMmh2ZFhKemZTd2dlMEJzYVc1cklFUjFjbUYwYVc5dUkyMXBiblYwWlhOOUxDQjdRR3hwYm1zZ1JIVnlZWFJwYjI0amMyVmpiMjVrYzMwc0lIdEFiR2x1YXlCRWRYSmhkR2x2YmlOdGFXeHNhWE5sWTI5dVpITjlJR0ZqWTJWemMyOXljeTVjYmlBcUlDb2dLaXBEYjI1bWFXZDFjbUYwYVc5dUtpb2dVMlZsSUNCN1FHeHBibXNnUkhWeVlYUnBiMjRqYkc5allXeGxmU0JoYm1RZ2UwQnNhVzVySUVSMWNtRjBhVzl1STI1MWJXSmxjbWx1WjFONWMzUmxiWDBnWVdOalpYTnpiM0p6TGx4dUlDb2dLaUFxS2xSeVlXNXpabTl5YldGMGFXOXVLaW9nVkc4Z1kzSmxZWFJsSUc1bGR5QkVkWEpoZEdsdmJuTWdiM1YwSUc5bUlHOXNaQ0J2Ym1WeklIVnpaU0I3UUd4cGJtc2dSSFZ5WVhScGIyNGpjR3gxYzMwc0lIdEFiR2x1YXlCRWRYSmhkR2x2YmlOdGFXNTFjMzBzSUh0QWJHbHVheUJFZFhKaGRHbHZiaU51YjNKdFlXeHBlbVY5TENCN1FHeHBibXNnUkhWeVlYUnBiMjRqYzJWMGZTd2dlMEJzYVc1cklFUjFjbUYwYVc5dUkzSmxZMjl1Wm1sbmRYSmxmU3dnZTBCc2FXNXJJRVIxY21GMGFXOXVJM05vYVdaMFZHOTlMQ0JoYm1RZ2UwQnNhVzVySUVSMWNtRjBhVzl1STI1bFoyRjBaWDB1WEc0Z0tpQXFJQ29xVDNWMGNIVjBLaW9nVkc4Z1kyOXVkbVZ5ZENCMGFHVWdSSFZ5WVhScGIyNGdhVzUwYnlCdmRHaGxjaUJ5WlhCeVpYTmxiblJoZEdsdmJuTXNJSE5sWlNCN1FHeHBibXNnUkhWeVlYUnBiMjRqWVhOOUxDQjdRR3hwYm1zZ1JIVnlZWFJwYjI0amRHOUpVMDk5TENCN1FHeHBibXNnUkhWeVlYUnBiMjRqZEc5R2IzSnRZWFI5TENCaGJtUWdlMEJzYVc1cklFUjFjbUYwYVc5dUkzUnZTbE5QVG4xY2JpQXFYRzRnS2lCVWFHVnlaU2R6SUdGeVpTQnRiM0psSUcxbGRHaHZaSE1nWkc5amRXMWxiblJsWkNCaVpXeHZkeTRnU1c0Z1lXUmthWFJwYjI0c0lHWnZjaUJ0YjNKbElHbHVabTl5YldGMGFXOXVJRzl1SUhOMVluUnNaWElnZEc5d2FXTnpJR3hwYTJVZ2FXNTBaWEp1WVhScGIyNWhiR2w2WVhScGIyNGdZVzVrSUhaaGJHbGthWFI1TENCelpXVWdkR2hsSUdWNGRHVnlibUZzSUdSdlkzVnRaVzUwWVhScGIyNHVYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdOc1lYTnpJRVIxY21GMGFXOXVJSHRjYmlBZ0x5b3FYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhqYjI1bWFXY3BJSHRjYmlBZ0lDQmpiMjV6ZENCaFkyTjFjbUYwWlNBOUlHTnZibVpwWnk1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrZ1BUMDlJRndpYkc5dVozUmxjbTFjSWlCOGZDQm1ZV3h6WlR0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQVlXTmpaWE56SUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG5aaGJIVmxjeUE5SUdOdmJtWnBaeTUyWVd4MVpYTTdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXNiMk1nUFNCamIyNW1hV2N1Ykc5aklIeDhJRXh2WTJGc1pTNWpjbVZoZEdVb0tUdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtTnZiblpsY25OcGIyNUJZMk4xY21GamVTQTlJR0ZqWTNWeVlYUmxJRDhnWENKc2IyNW5kR1Z5YlZ3aUlEb2dYQ0pqWVhOMVlXeGNJanRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbWx1ZG1Gc2FXUWdQU0JqYjI1bWFXY3VhVzUyWVd4cFpDQjhmQ0J1ZFd4c08xeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQmhZMk5sYzNNZ2NISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWJXRjBjbWw0SUQwZ1lXTmpkWEpoZEdVZ1B5QmhZMk4xY21GMFpVMWhkSEpwZUNBNklHTmhjM1ZoYkUxaGRISnBlRHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbWx6VEhWNGIyNUVkWEpoZEdsdmJpQTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElFUjFjbUYwYVc5dUlHWnliMjBnWVNCdWRXMWlaWElnYjJZZ2JXbHNiR2x6WldOdmJtUnpMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1kyOTFiblFnYjJZZ2JXbHNiR2x6WldOdmJtUnpYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjeUJtYjNJZ2NHRnljMmx1WjF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWJHOWpZV3hsUFNkbGJpMVZVeWRkSUMwZ2RHaGxJR3h2WTJGc1pTQjBieUIxYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEhNdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUMwZ2RHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdkRzhnZFhObFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NWpiMjUyWlhKemFXOXVRV05qZFhKaFkzazlKMk5oYzNWaGJDZGRJQzBnZEdobElHTnZiblpsY25OcGIyNGdjM2x6ZEdWdElIUnZJSFZ6WlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJtY205dFRXbHNiR2x6S0dOdmRXNTBMQ0J2Y0hSektTQjdYRzRnSUNBZ2NtVjBkWEp1SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QnRhV3hzYVhObFkyOXVaSE02SUdOdmRXNTBJSDBzSUc5d2RITXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUVSMWNtRjBhVzl1SUdaeWIyMGdZU0JLWVhaaFUyTnlhWEIwSUc5aWFtVmpkQ0IzYVhSb0lHdGxlWE1nYkdsclpTQW5lV1ZoY25NbklHRnVaQ0FuYUc5MWNuTW5MbHh1SUNBZ0tpQkpaaUIwYUdseklHOWlhbVZqZENCcGN5QmxiWEIwZVNCMGFHVnVJR0VnZW1WeWJ5QnRhV3hzYVhObFkyOXVaSE1nWkhWeVlYUnBiMjRnYVhNZ2NtVjBkWEp1WldRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1vZ0xTQjBhR1VnYjJKcVpXTjBJSFJ2SUdOeVpXRjBaU0IwYUdVZ1JHRjBaVlJwYldVZ1puSnZiVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2IySnFMbmxsWVhKelhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2WW1vdWNYVmhjblJsY25OY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRzlpYWk1dGIyNTBhSE5jYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTUzWldWcmMxeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYjJKcUxtUmhlWE5jYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTVvYjNWeWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYjJKcUxtMXBiblYwWlhOY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRzlpYWk1elpXTnZibVJ6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91Yldsc2JHbHpaV052Ym1SelhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYjNCMGN6MWJYVjBnTFNCdmNIUnBiMjV6SUdadmNpQmpjbVZoZEdsdVp5QjBhR2x6SUVSMWNtRjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1c2IyTmhiR1U5SjJWdUxWVlRKMTBnTFNCMGFHVWdiRzlqWVd4bElIUnZJSFZ6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiM0IwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBnTFNCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJTQjBieUIxYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxtTnZiblpsY25OcGIyNUJZMk4xY21GamVUMG5ZMkZ6ZFdGc0oxMGdMU0IwYUdVZ1kyOXVkbVZ5YzJsdmJpQnplWE4wWlcwZ2RHOGdkWE5sWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFIxY21GMGFXOXVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR1p5YjIxUFltcGxZM1FvYjJKcUxDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnBaaUFvYjJKcUlEMDlJRzUxYkd3Z2ZId2dkSGx3Wlc5bUlHOWlhaUFoUFQwZ1hDSnZZbXBsWTNSY0lpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamREb2dZWEpuZFcxbGJuUWdaWGh3WldOMFpXUWdkRzhnWW1VZ1lXNGdiMkpxWldOMExDQm5iM1FnSkh0Y2JpQWdJQ0FnSUNBZ0lDQnZZbW9nUFQwOUlHNTFiR3dnUHlCY0ltNTFiR3hjSWlBNklIUjVjR1Z2WmlCdlltcGNiaUFnSUNBZ0lDQWdmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJFZFhKaGRHbHZiaWg3WEc0Z0lDQWdJQ0IyWVd4MVpYTTZJRzV2Y20xaGJHbDZaVTlpYW1WamRDaHZZbW9zSUVSMWNtRjBhVzl1TG01dmNtMWhiR2w2WlZWdWFYUXBMRnh1SUNBZ0lDQWdiRzlqT2lCTWIyTmhiR1V1Wm5KdmJVOWlhbVZqZENodmNIUnpLU3hjYmlBZ0lDQWdJR052Ym5abGNuTnBiMjVCWTJOMWNtRmplVG9nYjNCMGN5NWpiMjUyWlhKemFXOXVRV05qZFhKaFkza3NYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkhWeVlYUnBiMjRnWm5KdmJTQkVkWEpoZEdsdmJreHBhMlV1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wSUh3Z2JuVnRZbVZ5SUh3Z1JIVnlZWFJwYjI1OUlHUjFjbUYwYVc5dVRHbHJaVnh1SUNBZ0tpQlBibVVnYjJZNlhHNGdJQ0FxSUMwZ2IySnFaV04wSUhkcGRHZ2dhMlY1Y3lCc2FXdGxJQ2Q1WldGeWN5Y2dZVzVrSUNkb2IzVnljeWN1WEc0Z0lDQXFJQzBnYm5WdFltVnlJSEpsY0hKbGMyVnVkR2x1WnlCdGFXeHNhWE5sWTI5dVpITmNiaUFnSUNvZ0xTQkVkWEpoZEdsdmJpQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCbWNtOXRSSFZ5WVhScGIyNU1hV3RsS0dSMWNtRjBhVzl1VEdsclpTa2dlMXh1SUNBZ0lHbG1JQ2hwYzA1MWJXSmxjaWhrZFhKaGRHbHZia3hwYTJVcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1JIVnlZWFJwYjI0dVpuSnZiVTFwYkd4cGN5aGtkWEpoZEdsdmJreHBhMlVwTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvUkhWeVlYUnBiMjR1YVhORWRYSmhkR2x2Ymloa2RYSmhkR2x2Ymt4cGEyVXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaSFZ5WVhScGIyNU1hV3RsTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvZEhsd1pXOW1JR1IxY21GMGFXOXVUR2xyWlNBOVBUMGdYQ0p2WW1wbFkzUmNJaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvWkhWeVlYUnBiMjVNYVd0bEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdWVzVyYm05M2JpQmtkWEpoZEdsdmJpQmhjbWQxYldWdWRDQWtlMlIxY21GMGFXOXVUR2xyWlgwZ2IyWWdkSGx3WlNBa2UzUjVjR1Z2WmlCa2RYSmhkR2x2Ymt4cGEyVjlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkhWeVlYUnBiMjRnWm5KdmJTQmhiaUJKVTA4Z09EWXdNU0JrZFhKaGRHbHZiaUJ6ZEhKcGJtY3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFpYaDBJQzBnZEdWNGRDQjBieUJ3WVhKelpWeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTWdabTl5SUhCaGNuTnBibWRjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJ6TG14dlkyRnNaVDBuWlc0dFZWTW5YU0F0SUhSb1pTQnNiMk5oYkdVZ2RHOGdkWE5sWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnZjSFJ6TG01MWJXSmxjbWx1WjFONWMzUmxiU0F0SUhSb1pTQnVkVzFpWlhKcGJtY2djM2x6ZEdWdElIUnZJSFZ6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdVkyOXVkbVZ5YzJsdmJrRmpZM1Z5WVdONVBTZGpZWE4xWVd3blhTQXRJSFJvWlNCamIyNTJaWEp6YVc5dUlITjVjM1JsYlNCMGJ5QjFjMlZjYmlBZ0lDb2dRSE5sWlNCb2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOUpVMDlmT0RZd01TTkVkWEpoZEdsdmJuTmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVWxUVHlnblVETlpOazB4VnpSRVZERXlTRE13VFRWVEp5a3VkRzlQWW1wbFkzUW9LU0F2THowK0lIc2dlV1ZoY25NNklETXNJRzF2Ym5Sb2N6b2dOaXdnZDJWbGEzTTZJREVzSUdSaGVYTTZJRFFzSUdodmRYSnpPaUF4TWl3Z2JXbHVkWFJsY3pvZ016QXNJSE5sWTI5dVpITTZJRFVnZlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFNWTlBLQ2RRVkRJelNDY3BMblJ2VDJKcVpXTjBLQ2tnTHk4OVBpQjdJR2h2ZFhKek9pQXlNeUI5WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxSlUwOG9KMUExV1ROTkp5a3VkRzlQWW1wbFkzUW9LU0F2THowK0lIc2dlV1ZoY25NNklEVXNJRzF2Ym5Sb2N6b2dNeUI5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFIxY21GMGFXOXVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR1p5YjIxSlUwOG9kR1Y0ZEN3Z2IzQjBjeWtnZTF4dUlDQWdJR052Ym5OMElGdHdZWEp6WldSZElEMGdjR0Z5YzJWSlUwOUVkWEpoZEdsdmJpaDBaWGgwS1R0Y2JpQWdJQ0JwWmlBb2NHRnljMlZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENod1lYSnpaV1FzSUc5d2RITXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkhWeVlYUnBiMjR1YVc1MllXeHBaQ2hjSW5WdWNHRnljMkZpYkdWY0lpd2dZSFJvWlNCcGJuQjFkQ0JjSWlSN2RHVjRkSDFjSWlCallXNG5kQ0JpWlNCd1lYSnpaV1FnWVhNZ1NWTlBJRGcyTURGZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSSFZ5WVhScGIyNGdabkp2YlNCaGJpQkpVMDhnT0RZd01TQjBhVzFsSUhOMGNtbHVaeTVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmxlSFFnTFNCMFpYaDBJSFJ2SUhCaGNuTmxYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjeUJtYjNJZ2NHRnljMmx1WjF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWJHOWpZV3hsUFNkbGJpMVZVeWRkSUMwZ2RHaGxJR3h2WTJGc1pTQjBieUIxYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEhNdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUMwZ2RHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdkRzhnZFhObFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NWpiMjUyWlhKemFXOXVRV05qZFhKaFkzazlKMk5oYzNWaGJDZGRJQzBnZEdobElHTnZiblpsY25OcGIyNGdjM2x6ZEdWdElIUnZJSFZ6WlZ4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpXNHVkMmxyYVhCbFpHbGhMbTl5Wnk5M2FXdHBMMGxUVDE4NE5qQXhJMVJwYldWelhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMUpVMDlVYVcxbEtDY3hNVG95TWpvek15NDBORFFuS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTVRFc0lHMXBiblYwWlhNNklESXlMQ0J6WldOdmJtUnpPaUF6TXl3Z2JXbHNiR2x6WldOdmJtUnpPaUEwTkRRZ2ZWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRTVk5QVkdsdFpTZ25NVEU2TURBbktTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5Qm9iM1Z5Y3pvZ01URXNJRzFwYm5WMFpYTTZJREFzSUhObFkyOXVaSE02SURBZ2ZWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRTVk5QVkdsdFpTZ25WREV4T2pBd0p5a3VkRzlQWW1wbFkzUW9LU0F2THowK0lIc2dhRzkxY25NNklERXhMQ0J0YVc1MWRHVnpPaUF3TENCelpXTnZibVJ6T2lBd0lIMWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVWxUVDFScGJXVW9KekV4TURBbktTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5Qm9iM1Z5Y3pvZ01URXNJRzFwYm5WMFpYTTZJREFzSUhObFkyOXVaSE02SURBZ2ZWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRTVk5QVkdsdFpTZ25WREV4TURBbktTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5Qm9iM1Z5Y3pvZ01URXNJRzFwYm5WMFpYTTZJREFzSUhObFkyOXVaSE02SURBZ2ZWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCbWNtOXRTVk5QVkdsdFpTaDBaWGgwTENCdmNIUnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czQmhjbk5sWkYwZ1BTQndZWEp6WlVsVFQxUnBiV1ZQYm14NUtIUmxlSFFwTzF4dUlDQWdJR2xtSUNod1lYSnpaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hCaGNuTmxaQ3dnYjNCMGN5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJFZFhKaGRHbHZiaTVwYm5aaGJHbGtLRndpZFc1d1lYSnpZV0pzWlZ3aUxDQmdkR2hsSUdsdWNIVjBJRndpSkh0MFpYaDBmVndpSUdOaGJpZDBJR0psSUhCaGNuTmxaQ0JoY3lCSlUwOGdPRFl3TVdBcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lXNGdhVzUyWVd4cFpDQkVkWEpoZEdsdmJpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhKbFlYTnZiaUF0SUhOcGJYQnNaU0J6ZEhKcGJtY2diMllnZDJoNUlIUm9hWE1nWkdGMFpYUnBiV1VnYVhNZ2FXNTJZV3hwWkM0Z1UyaHZkV3hrSUc1dmRDQmpiMjUwWVdsdUlIQmhjbUZ0WlhSbGNuTWdiM0lnWVc1NWRHaHBibWNnWld4elpTQmtZWFJoTFdSbGNHVnVaR1Z1ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMlY0Y0d4aGJtRjBhVzl1UFc1MWJHeGRJQzBnYkc5dVoyVnlJR1Y0Y0d4aGJtRjBhVzl1TENCdFlYa2dhVzVqYkhWa1pTQndZWEpoYldWMFpYSnpJR0Z1WkNCdmRHaGxjaUIxYzJWbWRXd2daR1ZpZFdkbmFXNW5JR2x1Wm05eWJXRjBhVzl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFIxY21GMGFXOXVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2x1ZG1Gc2FXUW9jbVZoYzI5dUxDQmxlSEJzWVc1aGRHbHZiaUE5SUc1MWJHd3BJSHRjYmlBZ0lDQnBaaUFvSVhKbFlYTnZiaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUtGd2libVZsWkNCMGJ5QnpjR1ZqYVdaNUlHRWdjbVZoYzI5dUlIUm9aU0JFZFhKaGRHbHZiaUJwY3lCcGJuWmhiR2xrWENJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR2x1ZG1Gc2FXUWdQU0J5WldGemIyNGdhVzV6ZEdGdVkyVnZaaUJKYm5aaGJHbGtJRDhnY21WaGMyOXVJRG9nYm1WM0lFbHVkbUZzYVdRb2NtVmhjMjl1TENCbGVIQnNZVzVoZEdsdmJpazdYRzVjYmlBZ0lDQnBaaUFvVTJWMGRHbHVaM011ZEdoeWIzZFBia2x1ZG1Gc2FXUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5aaGJHbGtSSFZ5WVhScGIyNUZjbkp2Y2locGJuWmhiR2xrS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJFZFhKaGRHbHZiaWg3SUdsdWRtRnNhV1FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2JtOXliV0ZzYVhwbFZXNXBkQ2gxYm1sMEtTQjdYRzRnSUNBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlIdGNiaUFnSUNBZ0lIbGxZWEk2SUZ3aWVXVmhjbk5jSWl4Y2JpQWdJQ0FnSUhsbFlYSnpPaUJjSW5sbFlYSnpYQ0lzWEc0Z0lDQWdJQ0J4ZFdGeWRHVnlPaUJjSW5GMVlYSjBaWEp6WENJc1hHNGdJQ0FnSUNCeGRXRnlkR1Z5Y3pvZ1hDSnhkV0Z5ZEdWeWMxd2lMRnh1SUNBZ0lDQWdiVzl1ZEdnNklGd2liVzl1ZEdoelhDSXNYRzRnSUNBZ0lDQnRiMjUwYUhNNklGd2liVzl1ZEdoelhDSXNYRzRnSUNBZ0lDQjNaV1ZyT2lCY0luZGxaV3R6WENJc1hHNGdJQ0FnSUNCM1pXVnJjem9nWENKM1pXVnJjMXdpTEZ4dUlDQWdJQ0FnWkdGNU9pQmNJbVJoZVhOY0lpeGNiaUFnSUNBZ0lHUmhlWE02SUZ3aVpHRjVjMXdpTEZ4dUlDQWdJQ0FnYUc5MWNqb2dYQ0pvYjNWeWMxd2lMRnh1SUNBZ0lDQWdhRzkxY25NNklGd2lhRzkxY25OY0lpeGNiaUFnSUNBZ0lHMXBiblYwWlRvZ1hDSnRhVzUxZEdWelhDSXNYRzRnSUNBZ0lDQnRhVzUxZEdWek9pQmNJbTFwYm5WMFpYTmNJaXhjYmlBZ0lDQWdJSE5sWTI5dVpEb2dYQ0p6WldOdmJtUnpYQ0lzWEc0Z0lDQWdJQ0J6WldOdmJtUnpPaUJjSW5ObFkyOXVaSE5jSWl4Y2JpQWdJQ0FnSUcxcGJHeHBjMlZqYjI1a09pQmNJbTFwYkd4cGMyVmpiMjVrYzF3aUxGeHVJQ0FnSUNBZ2JXbHNiR2x6WldOdmJtUnpPaUJjSW0xcGJHeHBjMlZqYjI1a2Mxd2lMRnh1SUNBZ0lIMWJkVzVwZENBL0lIVnVhWFF1ZEc5TWIzZGxja05oYzJVb0tTQTZJSFZ1YVhSZE8xeHVYRzRnSUNBZ2FXWWdLQ0Z1YjNKdFlXeHBlbVZrS1NCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkZWdWFYUkZjbkp2Y2loMWJtbDBLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnViM0p0WVd4cGVtVmtPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOb1pXTnJJR2xtSUdGdUlHOWlhbVZqZENCcGN5QmhJRVIxY21GMGFXOXVMaUJYYjNKcmN5QmhZM0p2YzNNZ1kyOXVkR1Y0ZENCaWIzVnVaR0Z5YVdWelhHNGdJQ0FxSUVCd1lYSmhiU0I3YjJKcVpXTjBmU0J2WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdhWE5FZFhKaGRHbHZiaWh2S1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2h2SUNZbUlHOHVhWE5NZFhodmJrUjFjbUYwYVc5dUtTQjhmQ0JtWVd4elpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ0lIUm9aU0JzYjJOaGJHVWdiMllnWVNCRWRYSmhkR2x2Yml3Z2MzVmphQ0FuWlc0dFIwSW5YRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdiRzlqWVd4bEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxteHZZeTVzYjJOaGJHVWdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJTQnZaaUJoSUVSMWNtRjBhVzl1TENCemRXTm9JQ2RpWlc1bkp5NGdWR2hsSUc1MWJXSmxjbWx1WnlCemVYTjBaVzBnYVhNZ2RYTmxaQ0IzYUdWdUlHWnZjbTFoZEhScGJtY2dkR2hsSUVSMWNtRjBhVzl1WEc0Z0lDQXFYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdiblZ0WW1WeWFXNW5VM2x6ZEdWdEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxteHZZeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRWRYSmhkR2x2YmlCbWIzSnRZWFIwWldRZ1lXTmpiM0prYVc1bklIUnZJSFJvWlNCemNHVmphV1pwWldRZ1ptOXliV0YwSUhOMGNtbHVaeTRnV1c5MUlHMWhlU0IxYzJVZ2RHaGxjMlVnZEc5clpXNXpPbHh1SUNBZ0tpQXFJR0JUWUNCbWIzSWdiV2xzYkdselpXTnZibVJ6WEc0Z0lDQXFJQ29nWUhOZ0lHWnZjaUJ6WldOdmJtUnpYRzRnSUNBcUlDb2dZRzFnSUdadmNpQnRhVzUxZEdWelhHNGdJQ0FxSUNvZ1lHaGdJR1p2Y2lCb2IzVnljMXh1SUNBZ0tpQXFJR0JrWUNCbWIzSWdaR0Y1YzF4dUlDQWdLaUFxSUdCM1lDQm1iM0lnZDJWbGEzTmNiaUFnSUNvZ0tpQmdUV0FnWm05eUlHMXZiblJvYzF4dUlDQWdLaUFxSUdCNVlDQm1iM0lnZVdWaGNuTmNiaUFnSUNvZ1RtOTBaWE02WEc0Z0lDQXFJQ29nUVdSa0lIQmhaR1JwYm1jZ1lua2djbVZ3WldGMGFXNW5JSFJvWlNCMGIydGxiaXdnWlM1bkxpQmNJbmw1WENJZ2NHRmtjeUIwYUdVZ2VXVmhjbk1nZEc4Z2RIZHZJR1JwWjJsMGN5d2dYQ0pvYUdob1hDSWdjR0ZrY3lCMGFHVWdhRzkxY25NZ2IzVjBJSFJ2SUdadmRYSWdaR2xuYVhSelhHNGdJQ0FxSUNvZ1ZHOXJaVzV6SUdOaGJpQmlaU0JsYzJOaGNHVmtJR0o1SUhkeVlYQndhVzVuSUhkcGRHZ2djMmx1WjJ4bElIRjFiM1JsY3k1Y2JpQWdJQ29nS2lCVWFHVWdaSFZ5WVhScGIyNGdkMmxzYkNCaVpTQmpiMjUyWlhKMFpXUWdkRzhnZEdobElITmxkQ0J2WmlCMWJtbDBjeUJwYmlCMGFHVWdabTl5YldGMElITjBjbWx1WnlCMWMybHVaeUI3UUd4cGJtc2dSSFZ5WVhScGIyNGpjMmhwWm5SVWIzMGdZVzVrSUhSb1pTQkVkWEpoZEdsdmJuTW5jeUJqYjI1MlpYSnphVzl1SUdGalkzVnlZV041SUhObGRIUnBibWN1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQm1iWFFnTFNCMGFHVWdabTl5YldGMElITjBjbWx1WjF4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NW1iRzl2Y2oxMGNuVmxYU0F0SUdac2IyOXlJRzUxYldWeWFXTmhiQ0IyWVd4MVpYTmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJSGxsWVhKek9pQXhMQ0JrWVhsek9pQTJMQ0J6WldOdmJtUnpPaUF5SUgwcExuUnZSbTl5YldGMEtGd2llU0JrSUhOY0lpa2dMeTg5UGlCY0lqRWdOaUF5WENKY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIbGxZWEp6T2lBeExDQmtZWGx6T2lBMkxDQnpaV052Ym1Sek9pQXlJSDBwTG5SdlJtOXliV0YwS0Z3aWVYa2daR1FnYzNOelhDSXBJQzh2UFQ0Z1hDSXdNU0F3TmlBd01ESmNJbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnZVdWaGNuTTZJREVzSUdSaGVYTTZJRFlzSUhObFkyOXVaSE02SURJZ2ZTa3VkRzlHYjNKdFlYUW9YQ0pOSUZOY0lpa2dMeTg5UGlCY0lqRXlJRFV4T0RRd01qQXdNRndpWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2Um05eWJXRjBLR1p0ZEN3Z2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ0x5OGdjbVYyWlhKelpTMWpiMjF3WVhRZ2MybHVZMlVnTVM0eU95QjNaU0JoYkhkaGVYTWdjbTkxYm1RZ1pHOTNiaUJ1YjNjc0lHNWxkbVZ5SUhWd0xDQmhibVFnZDJVZ1pHOGdhWFFnWW5rZ1pHVm1ZWFZzZEZ4dUlDQWdJR052Ym5OMElHWnRkRTl3ZEhNZ1BTQjdYRzRnSUNBZ0lDQXVMaTV2Y0hSekxGeHVJQ0FnSUNBZ1pteHZiM0k2SUc5d2RITXVjbTkxYm1RZ0lUMDlJR1poYkhObElDWW1JRzl3ZEhNdVpteHZiM0lnSVQwOUlHWmhiSE5sTEZ4dUlDQWdJSDA3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaRnh1SUNBZ0lDQWdQeUJHYjNKdFlYUjBaWEl1WTNKbFlYUmxLSFJvYVhNdWJHOWpMQ0JtYlhSUGNIUnpLUzVtYjNKdFlYUkVkWEpoZEdsdmJrWnliMjFUZEhKcGJtY29kR2hwY3l3Z1ptMTBLVnh1SUNBZ0lDQWdPaUJKVGxaQlRFbEVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnWVNCRWRYSmhkR2x2YmlCM2FYUm9JR0ZzYkNCMWJtbDBjeUJwYm1Oc2RXUmxaQzVjYmlBZ0lDb2dWRzhnYlc5a2FXWjVJR2wwY3lCaVpXaGhkbWx2Y2lCMWMyVWdkR2hsSUdCc2FYTjBVM1I1YkdWZ0lHRnVaQ0JoYm5rZ1NXNTBiQzVPZFcxaVpYSkdiM0p0WVhRZ2IzQjBhVzl1TENCMGFHOTFaMmdnWUhWdWFYUkVhWE53YkdGNVlDQnBjeUJsYzNCbFkybGhiR3g1SUhKbGJHVjJZVzUwTGx4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012VjJWaUwwcGhkbUZUWTNKcGNIUXZVbVZtWlhKbGJtTmxMMGRzYjJKaGJGOVBZbXBsWTNSekwwbHVkR3d2VG5WdFltVnlSbTl5YldGMFhHNGdJQ0FxSUVCd1lYSmhiU0J2Y0hSeklDMGdUMjRnYjNCMGFXOXVJRzlpYW1WamRDQjBieUJ2ZG1WeWNtbGtaU0IwYUdVZ1ptOXliV0YwZEdsdVp5NGdRV05qWlhCMGN5QjBhR1VnYzJGdFpTQnJaWGx6SUdGeklIUm9aU0J2Y0hScGIyNXpJSEJoY21GdFpYUmxjaUJ2WmlCMGFHVWdibUYwYVhabElHQkpiblF1VG5WdFltVnlSbTl5YldGMFlDQmpiMjV6ZEhKMVkzUnZjaXdnWVhNZ2QyVnNiQ0JoY3lCZ2JHbHpkRk4wZVd4bFlDNWNiaUFnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ29nWUdCZ2FuTmNiaUFnSUNvZ2RtRnlJR1IxY2lBOUlFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJrWVhsek9pQXhMQ0JvYjNWeWN6b2dOU3dnYldsdWRYUmxjem9nTmlCOUtWeHVJQ0FnS2lCa2RYSXVkRzlJZFcxaGJpZ3BJQzh2UFQ0Z0p6RWdaR0Y1TENBMUlHaHZkWEp6TENBMklHMXBiblYwWlhNblhHNGdJQ0FxSUdSMWNpNTBiMGgxYldGdUtIc2diR2x6ZEZOMGVXeGxPaUJjSW14dmJtZGNJaUI5S1NBdkx6MCtJQ2N4SUdSaGVTd2dOU0JvYjNWeWN5d2dZVzVrSURZZ2JXbHVkWFJsY3lkY2JpQWdJQ29nWkhWeUxuUnZTSFZ0WVc0b2V5QjFibWwwUkdsemNHeGhlVG9nWENKemFHOXlkRndpSUgwcElDOHZQVDRnSnpFZ1pHRjVMQ0ExSUdoeUxDQTJJRzFwYmlkY2JpQWdJQ29nWUdCZ1hHNGdJQ0FxTDF4dUlDQjBiMGgxYldGdUtHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lHTnZibk4wSUd3Z1BTQnZjbVJsY21Wa1ZXNXBkSE5jYmlBZ0lDQWdJQzV0WVhBb0tIVnVhWFFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNJRDBnZEdocGN5NTJZV3gxWlhOYmRXNXBkRjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMVZ1WkdWbWFXNWxaQ2gyWVd3cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ykc5alhHNGdJQ0FnSUNBZ0lDQWdMbTUxYldKbGNrWnZjbTFoZEhSbGNpaDdJSE4wZVd4bE9pQmNJblZ1YVhSY0lpd2dkVzVwZEVScGMzQnNZWGs2SUZ3aWJHOXVaMXdpTENBdUxpNXZjSFJ6TENCMWJtbDBPaUIxYm1sMExuTnNhV05sS0RBc0lDMHhLU0I5S1Z4dUlDQWdJQ0FnSUNBZ0lDNW1iM0p0WVhRb2RtRnNLVHRjYmlBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLQ2h1S1NBOVBpQnVLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG14dlkxeHVJQ0FnSUNBZ0xteHBjM1JHYjNKdFlYUjBaWElvZXlCMGVYQmxPaUJjSW1OdmJtcDFibU4wYVc5dVhDSXNJSE4wZVd4bE9pQnZjSFJ6TG14cGMzUlRkSGxzWlNCOGZDQmNJbTVoY25KdmQxd2lMQ0F1TGk1dmNIUnpJSDBwWEc0Z0lDQWdJQ0F1Wm05eWJXRjBLR3dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lTQktZWFpoVTJOeWFYQjBJRzlpYW1WamRDQjNhWFJvSUhSb2FYTWdSSFZ5WVhScGIyNG5jeUIyWVd4MVpYTXVYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUI1WldGeWN6b2dNU3dnWkdGNWN6b2dOaXdnYzJWamIyNWtjem9nTWlCOUtTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5QjVaV0Z5Y3pvZ01Td2daR0Y1Y3pvZ05pd2djMlZqYjI1a2N6b2dNaUI5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSFJ2VDJKcVpXTjBLQ2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0J5WlhSMWNtNGdlMzA3WEc0Z0lDQWdjbVYwZFhKdUlIc2dMaTR1ZEdocGN5NTJZV3gxWlhNZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVkWEpoZEdsdmJpNWNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5SlUwOWZPRFl3TVNORWRYSmhkR2x2Ym5OY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIbGxZWEp6T2lBekxDQnpaV052Ym1Sek9pQTBOU0I5S1M1MGIwbFRUeWdwSUM4dlBUNGdKMUF6V1ZRME5WTW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJ0YjI1MGFITTZJRFFzSUhObFkyOXVaSE02SURRMUlIMHBMblJ2U1ZOUEtDa2dMeTg5UGlBblVEUk5WRFExVXlkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHMXZiblJvY3pvZ05TQjlLUzUwYjBsVFR5Z3BJQzh2UFQ0Z0oxQTFUU2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUcxcGJuVjBaWE02SURVZ2ZTa3VkRzlKVTA4b0tTQXZMejArSUNkUVZEVk5KMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYldsc2JHbHpaV052Ym1Sek9pQTJJSDBwTG5SdlNWTlBLQ2tnTHk4OVBpQW5VRlF3TGpBd05sTW5YRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZTVk5QS0NrZ2UxeHVJQ0FnSUM4dklIZGxJR052ZFd4a0lIVnpaU0IwYUdVZ1ptOXliV0YwZEdWeUxDQmlkWFFnZEdocGN5QnBjeUJoYmlCbFlYTnBaWElnZDJGNUlIUnZJR2RsZENCMGFHVWdiV2x1YVcxMWJTQnpkSEpwYm1kY2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJRzUxYkd3N1hHNWNiaUFnSUNCc1pYUWdjeUE5SUZ3aVVGd2lPMXh1SUNBZ0lHbG1JQ2gwYUdsekxubGxZWEp6SUNFOVBTQXdLU0J6SUNzOUlIUm9hWE11ZVdWaGNuTWdLeUJjSWxsY0lqdGNiaUFnSUNCcFppQW9kR2hwY3k1dGIyNTBhSE1nSVQwOUlEQWdmSHdnZEdocGN5NXhkV0Z5ZEdWeWN5QWhQVDBnTUNrZ2N5QXJQU0IwYUdsekxtMXZiblJvY3lBcklIUm9hWE11Y1hWaGNuUmxjbk1nS2lBeklDc2dYQ0pOWENJN1hHNGdJQ0FnYVdZZ0tIUm9hWE11ZDJWbGEzTWdJVDA5SURBcElITWdLejBnZEdocGN5NTNaV1ZyY3lBcklGd2lWMXdpTzF4dUlDQWdJR2xtSUNoMGFHbHpMbVJoZVhNZ0lUMDlJREFwSUhNZ0t6MGdkR2hwY3k1a1lYbHpJQ3NnWENKRVhDSTdYRzRnSUNBZ2FXWWdLSFJvYVhNdWFHOTFjbk1nSVQwOUlEQWdmSHdnZEdocGN5NXRhVzUxZEdWeklDRTlQU0F3SUh4OElIUm9hWE11YzJWamIyNWtjeUFoUFQwZ01DQjhmQ0IwYUdsekxtMXBiR3hwYzJWamIyNWtjeUFoUFQwZ01DbGNiaUFnSUNBZ0lITWdLejBnWENKVVhDSTdYRzRnSUNBZ2FXWWdLSFJvYVhNdWFHOTFjbk1nSVQwOUlEQXBJSE1nS3owZ2RHaHBjeTVvYjNWeWN5QXJJRndpU0Z3aU8xeHVJQ0FnSUdsbUlDaDBhR2x6TG0xcGJuVjBaWE1nSVQwOUlEQXBJSE1nS3owZ2RHaHBjeTV0YVc1MWRHVnpJQ3NnWENKTlhDSTdYRzRnSUNBZ2FXWWdLSFJvYVhNdWMyVmpiMjVrY3lBaFBUMGdNQ0I4ZkNCMGFHbHpMbTFwYkd4cGMyVmpiMjVrY3lBaFBUMGdNQ2xjYmlBZ0lDQWdJQzh2SUhSb2FYTWdkMmxzYkNCb1lXNWtiR1VnWENKbWJHOWhkR2x1WnlCd2IybHVkQ0J0WVdSdVpYTnpYQ0lnWW5rZ2NtVnRiM1pwYm1jZ1pYaDBjbUVnWkdWamFXMWhiQ0J3YkdGalpYTmNiaUFnSUNBZ0lDOHZJR2gwZEhCek9pOHZjM1JoWTJ0dmRtVnlabXh2ZHk1amIyMHZjWFZsYzNScGIyNXpMelU0T0RBd05DOXBjeTFtYkc5aGRHbHVaeTF3YjJsdWRDMXRZWFJvTFdKeWIydGxibHh1SUNBZ0lDQWdjeUFyUFNCeWIzVnVaRlJ2S0hSb2FYTXVjMlZqYjI1a2N5QXJJSFJvYVhNdWJXbHNiR2x6WldOdmJtUnpJQzhnTVRBd01Dd2dNeWtnS3lCY0lsTmNJanRjYmlBZ0lDQnBaaUFvY3lBOVBUMGdYQ0pRWENJcElITWdLejBnWENKVU1GTmNJanRjYmlBZ0lDQnlaWFIxY200Z2N6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVkWEpoZEdsdmJpd2dabTl5YldGMGRHVmtJR0Z6SUdFZ2RHbHRaU0J2WmlCa1lYa3VYRzRnSUNBcUlFNXZkR1VnZEdoaGRDQjBhR2x6SUhkcGJHd2djbVYwZFhKdUlHNTFiR3dnYVdZZ2RHaGxJR1IxY21GMGFXOXVJR2x6SUdsdWRtRnNhV1FzSUc1bFoyRjBhWFpsTENCdmNpQmxjWFZoYkNCMGJ5QnZjaUJuY21WaGRHVnlJSFJvWVc0Z01qUWdhRzkxY25NdVhHNGdJQ0FxSUVCelpXVWdhSFIwY0hNNkx5OWxiaTUzYVd0cGNHVmthV0V1YjNKbkwzZHBhMmt2U1ZOUFh6ZzJNREVqVkdsdFpYTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hScGIyNXpYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YzNWd2NISmxjM05OYVd4c2FYTmxZMjl1WkhNOVptRnNjMlZkSUMwZ1pYaGpiSFZrWlNCdGFXeHNhWE5sWTI5dVpITWdabkp2YlNCMGFHVWdabTl5YldGMElHbG1JSFJvWlhrbmNtVWdNRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHZjSFJ6TG5OMWNIQnlaWE56VTJWamIyNWtjejFtWVd4elpWMGdMU0JsZUdOc2RXUmxJSE5sWTI5dVpITWdabkp2YlNCMGFHVWdabTl5YldGMElHbG1JSFJvWlhrbmNtVWdNRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHZjSFJ6TG1sdVkyeDFaR1ZRY21WbWFYZzlabUZzYzJWZElDMGdhVzVqYkhWa1pTQjBhR1VnWUZSZ0lIQnlaV1pwZUZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdVptOXliV0YwUFNkbGVIUmxibVJsWkNkZElDMGdZMmh2YjNObElHSmxkSGRsWlc0Z2RHaGxJR0poYzJsaklHRnVaQ0JsZUhSbGJtUmxaQ0JtYjNKdFlYUmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhKek9pQXhNU0I5S1M1MGIwbFRUMVJwYldVb0tTQXZMejArSUNjeE1Ub3dNRG93TUM0d01EQW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNVEVnZlNrdWRHOUpVMDlVYVcxbEtIc2djM1Z3Y0hKbGMzTk5hV3hzYVhObFkyOXVaSE02SUhSeWRXVWdmU2tnTHk4OVBpQW5NVEU2TURBNk1EQW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNVEVnZlNrdWRHOUpVMDlVYVcxbEtIc2djM1Z3Y0hKbGMzTlRaV052Ym1Sek9pQjBjblZsSUgwcElDOHZQVDRnSnpFeE9qQXdKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYUc5MWNuTTZJREV4SUgwcExuUnZTVk5QVkdsdFpTaDdJR2x1WTJ4MVpHVlFjbVZtYVhnNklIUnlkV1VnZlNrZ0x5ODlQaUFuVkRFeE9qQXdPakF3TGpBd01DZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhKek9pQXhNU0I5S1M1MGIwbFRUMVJwYldVb2V5Qm1iM0p0WVhRNklDZGlZWE5wWXljZ2ZTa2dMeTg5UGlBbk1URXdNREF3TGpBd01DZGNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ2RHOUpVMDlVYVcxbEtHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z2JuVnNiRHRjYmx4dUlDQWdJR052Ym5OMElHMXBiR3hwY3lBOUlIUm9hWE11ZEc5TmFXeHNhWE1vS1R0Y2JpQWdJQ0JwWmlBb2JXbHNiR2x6SUR3Z01DQjhmQ0J0YVd4c2FYTWdQajBnT0RZME1EQXdNREFwSUhKbGRIVnliaUJ1ZFd4c08xeHVYRzRnSUNBZ2IzQjBjeUE5SUh0Y2JpQWdJQ0FnSUhOMWNIQnlaWE56VFdsc2JHbHpaV052Ym1Sek9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUhOMWNIQnlaWE56VTJWamIyNWtjem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQnBibU5zZFdSbFVISmxabWw0T2lCbVlXeHpaU3hjYmlBZ0lDQWdJR1p2Y20xaGREb2dYQ0psZUhSbGJtUmxaRndpTEZ4dUlDQWdJQ0FnTGk0dWIzQjBjeXhjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RtRnNkV1VnUFNCMGFHbHpMbk5vYVdaMFZHOG9YQ0pvYjNWeWMxd2lMQ0JjSW0xcGJuVjBaWE5jSWl3Z1hDSnpaV052Ym1SelhDSXNJRndpYldsc2JHbHpaV052Ym1SelhDSXBPMXh1WEc0Z0lDQWdiR1YwSUdadGRDQTlJRzl3ZEhNdVptOXliV0YwSUQwOVBTQmNJbUpoYzJsalhDSWdQeUJjSW1ob2JXMWNJaUE2SUZ3aWFHZzZiVzFjSWp0Y2JseHVJQ0FnSUdsbUlDZ2hiM0IwY3k1emRYQndjbVZ6YzFObFkyOXVaSE1nZkh3Z2RtRnNkV1V1YzJWamIyNWtjeUFoUFQwZ01DQjhmQ0IyWVd4MVpTNXRhV3hzYVhObFkyOXVaSE1nSVQwOUlEQXBJSHRjYmlBZ0lDQWdJR1p0ZENBclBTQnZjSFJ6TG1admNtMWhkQ0E5UFQwZ1hDSmlZWE5wWTF3aUlEOGdYQ0p6YzF3aUlEb2dYQ0k2YzNOY0lqdGNiaUFnSUNBZ0lHbG1JQ2doYjNCMGN5NXpkWEJ3Y21WemMwMXBiR3hwYzJWamIyNWtjeUI4ZkNCMllXeDFaUzV0YVd4c2FYTmxZMjl1WkhNZ0lUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ1ptMTBJQ3M5SUZ3aUxsTlRVMXdpTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCemRISWdQU0IyWVd4MVpTNTBiMFp2Y20xaGRDaG1iWFFwTzF4dVhHNGdJQ0FnYVdZZ0tHOXdkSE11YVc1amJIVmtaVkJ5WldacGVDa2dlMXh1SUNBZ0lDQWdjM1J5SUQwZ1hDSlVYQ0lnS3lCemRISTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhOMGNqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4SUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSSFZ5WVhScGIyNGdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCS1UwOU9MbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQjBiMHBUVDA0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkRzlKVTA4b0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4SUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSSFZ5WVhScGIyNGdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCa1pXSjFaMmRwYm1jdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlUzUnlhVzVuS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuUnZTVk5QS0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhiaUJ0YVd4c2FYTmxZMjl1WkhNZ2RtRnNkV1VnYjJZZ2RHaHBjeUJFZFhKaGRHbHZiaTVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdkRzlOYVd4c2FYTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WVhNb1hDSnRhV3hzYVhObFkyOXVaSE5jSWlrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhiaUJ0YVd4c2FYTmxZMjl1WkhNZ2RtRnNkV1VnYjJZZ2RHaHBjeUJFZFhKaGRHbHZiaTRnUVd4cFlYTWdiMllnZTBCc2FXNXJJSFJ2VFdsc2JHbHpmVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQjJZV3gxWlU5bUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblJ2VFdsc2JHbHpLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1RXRnJaU0IwYUdseklFUjFjbUYwYVc5dUlHeHZibWRsY2lCaWVTQjBhR1VnYzNCbFkybG1hV1ZrSUdGdGIzVnVkQzRnVW1WMGRYSnVJR0VnYm1WM2JIa3RZMjl1YzNSeWRXTjBaV1FnUkhWeVlYUnBiMjR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSSFZ5WVhScGIyNThUMkpxWldOMGZHNTFiV0psY24wZ1pIVnlZWFJwYjI0Z0xTQlVhR1VnWVcxdmRXNTBJSFJ2SUdGa1pDNGdSV2wwYUdWeUlHRWdUSFY0YjI0Z1JIVnlZWFJwYjI0c0lHRWdiblZ0WW1WeUlHOW1JRzFwYkd4cGMyVmpiMjVrY3l3Z2RHaGxJRzlpYW1WamRDQmhjbWQxYldWdWRDQjBieUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0NsY2JpQWdJQ29nUUhKbGRIVnliaUI3UkhWeVlYUnBiMjU5WEc0Z0lDQXFMMXh1SUNCd2JIVnpLR1IxY21GMGFXOXVLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjBhR2x6TzF4dVhHNGdJQ0FnWTI5dWMzUWdaSFZ5SUQwZ1JIVnlZWFJwYjI0dVpuSnZiVVIxY21GMGFXOXVUR2xyWlNoa2RYSmhkR2x2Ymlrc1hHNGdJQ0FnSUNCeVpYTjFiSFFnUFNCN2ZUdGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdheUJ2WmlCdmNtUmxjbVZrVlc1cGRITXBJSHRjYmlBZ0lDQWdJR2xtSUNob1lYTlBkMjVRY205d1pYSjBlU2hrZFhJdWRtRnNkV1Z6TENCcktTQjhmQ0JvWVhOUGQyNVFjbTl3WlhKMGVTaDBhR2x6TG5aaGJIVmxjeXdnYXlrcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFcydGRJRDBnWkhWeUxtZGxkQ2hyS1NBcklIUm9hWE11WjJWMEtHc3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCamJHOXVaU2gwYUdsekxDQjdJSFpoYkhWbGN6b2djbVZ6ZFd4MElIMHNJSFJ5ZFdVcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRTFoYTJVZ2RHaHBjeUJFZFhKaGRHbHZiaUJ6YUc5eWRHVnlJR0o1SUhSb1pTQnpjR1ZqYVdacFpXUWdZVzF2ZFc1MExpQlNaWFIxY200Z1lTQnVaWGRzZVMxamIyNXpkSEoxWTNSbFpDQkVkWEpoZEdsdmJpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RWRYSmhkR2x2Ym54UFltcGxZM1I4Ym5WdFltVnlmU0JrZFhKaGRHbHZiaUF0SUZSb1pTQmhiVzkxYm5RZ2RHOGdjM1ZpZEhKaFkzUXVJRVZwZEdobGNpQmhJRXgxZUc5dUlFUjFjbUYwYVc5dUxDQmhJRzUxYldKbGNpQnZaaUJ0YVd4c2FYTmxZMjl1WkhNc0lIUm9aU0J2WW1wbFkzUWdZWEpuZFcxbGJuUWdkRzhnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENncFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSMWNtRjBhVzl1ZlZ4dUlDQWdLaTljYmlBZ2JXbHVkWE1vWkhWeVlYUnBiMjRwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJSFJvYVhNN1hHNWNiaUFnSUNCamIyNXpkQ0JrZFhJZ1BTQkVkWEpoZEdsdmJpNW1jbTl0UkhWeVlYUnBiMjVNYVd0bEtHUjFjbUYwYVc5dUtUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdiSFZ6S0dSMWNpNXVaV2RoZEdVb0tTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVTJOaGJHVWdkR2hwY3lCRWRYSmhkR2x2YmlCaWVTQjBhR1VnYzNCbFkybG1hV1ZrSUdGdGIzVnVkQzRnVW1WMGRYSnVJR0VnYm1WM2JIa3RZMjl1YzNSeWRXTjBaV1FnUkhWeVlYUnBiMjR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdablZ1WTNScGIyNTlJR1p1SUMwZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdGd2NHeDVJSFJ2SUdWaFkyZ2dkVzVwZEM0Z1FYSnBkSGtnYVhNZ01TQnZjaUF5T2lCMGFHVWdkbUZzZFdVZ2IyWWdkR2hsSUhWdWFYUWdZVzVrTENCdmNIUnBiMjVoYkd4NUxDQjBhR1VnZFc1cGRDQnVZVzFsTGlCTmRYTjBJSEpsZEhWeWJpQmhJRzUxYldKbGNpNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhKek9pQXhMQ0J0YVc1MWRHVnpPaUF6TUNCOUtTNXRZWEJWYm1sMGN5aDRJRDArSUhnZ0tpQXlLU0F2THowK0lIc2dhRzkxY25NNklESXNJRzFwYm5WMFpYTTZJRFl3SUgxY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeExDQnRhVzUxZEdWek9pQXpNQ0I5S1M1dFlYQlZibWwwY3lnb2VDd2dkU2tnUFQ0Z2RTQTlQVDBnWENKb2IzVnlYQ0lnUHlCNElDb2dNaUE2SUhncElDOHZQVDRnZXlCb2IzVnljem9nTWl3Z2JXbHVkWFJsY3pvZ016QWdmVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVkWEpoZEdsdmJuMWNiaUFnSUNvdlhHNGdJRzFoY0ZWdWFYUnpLR1p1S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2RDQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxuWmhiSFZsY3lrcElIdGNiaUFnSUNBZ0lISmxjM1ZzZEZ0clhTQTlJR0Z6VG5WdFltVnlLR1p1S0hSb2FYTXVkbUZzZFdWelcydGRMQ0JyS1NrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlNoMGFHbHpMQ0I3SUhaaGJIVmxjem9nY21WemRXeDBJSDBzSUhSeWRXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnZG1Gc2RXVWdiMllnZFc1cGRDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhWdWFYUWdMU0JoSUhWdWFYUWdjM1ZqYUNCaGN5QW5iV2x1ZFhSbEp5QnZjaUFuWkdGNUoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIdDVaV0Z5Y3pvZ01pd2daR0Y1Y3pvZ00zMHBMbWRsZENnbmVXVmhjbk1uS1NBdkx6MCtJREpjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3ZVdWaGNuTTZJRElzSUdSaGVYTTZJRE45S1M1blpYUW9KMjF2Ym5Sb2N5Y3BJQzh2UFQ0Z01GeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIdDVaV0Z5Y3pvZ01pd2daR0Y1Y3pvZ00zMHBMbWRsZENnblpHRjVjeWNwSUM4dlBUNGdNMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFvZFc1cGRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpXMFIxY21GMGFXOXVMbTV2Y20xaGJHbDZaVlZ1YVhRb2RXNXBkQ2xkTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGd2lVMlYwWENJZ2RHaGxJSFpoYkhWbGN5QnZaaUJ6Y0dWamFXWnBaV1FnZFc1cGRITXVJRkpsZEhWeWJpQmhJRzVsZDJ4NUxXTnZibk4wY25WamRHVmtJRVIxY21GMGFXOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2RtRnNkV1Z6SUMwZ1lTQnRZWEJ3YVc1bklHOW1JSFZ1YVhSeklIUnZJRzUxYldKbGNuTmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1pIVnlMbk5sZENoN0lIbGxZWEp6T2lBeU1ERTNJSDBwWEc0Z0lDQXFJRUJsZUdGdGNHeGxJR1IxY2k1elpYUW9leUJvYjNWeWN6b2dPQ3dnYldsdWRYUmxjem9nTXpBZ2ZTbGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JIVnlZWFJwYjI1OVhHNGdJQ0FxTDF4dUlDQnpaWFFvZG1Gc2RXVnpLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjBhR2x6TzF4dVhHNGdJQ0FnWTI5dWMzUWdiV2w0WldRZ1BTQjdJQzR1TG5Sb2FYTXVkbUZzZFdWekxDQXVMaTV1YjNKdFlXeHBlbVZQWW1wbFkzUW9kbUZzZFdWekxDQkVkWEpoZEdsdmJpNXViM0p0WVd4cGVtVlZibWwwS1NCOU8xeHVJQ0FnSUhKbGRIVnliaUJqYkc5dVpTaDBhR2x6TENCN0lIWmhiSFZsY3pvZ2JXbDRaV1FnZlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dYQ0pUWlhSY0lpQjBhR1VnYkc5allXeGxJR0Z1WkM5dmNpQnVkVzFpWlhKcGJtZFRlWE4wWlcwdUlDQlNaWFIxY201eklHRWdibVYzYkhrdFkyOXVjM1J5ZFdOMFpXUWdSSFZ5WVhScGIyNHVYRzRnSUNBcUlFQmxlR0Z0Y0d4bElHUjFjaTV5WldOdmJtWnBaM1Z5WlNoN0lHeHZZMkZzWlRvZ0oyVnVMVWRDSnlCOUtWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lISmxZMjl1Wm1sbmRYSmxLSHNnYkc5allXeGxMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNJR052Ym5abGNuTnBiMjVCWTJOMWNtRmplU0I5SUQwZ2UzMHBJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyTWdQU0IwYUdsekxteHZZeTVqYkc5dVpTaDdJR3h2WTJGc1pTd2diblZ0WW1WeWFXNW5VM2x6ZEdWdElIMHBMRnh1SUNBZ0lDQWdiM0IwY3lBOUlIc2diRzlqSUgwN1hHNWNiaUFnSUNCcFppQW9ZMjl1ZG1WeWMybHZia0ZqWTNWeVlXTjVLU0I3WEc0Z0lDQWdJQ0J2Y0hSekxtTnZiblpsY25OcGIyNUJZMk4xY21GamVTQTlJR052Ym5abGNuTnBiMjVCWTJOMWNtRmplVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1kyeHZibVVvZEdocGN5d2diM0IwY3lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIUm9aU0JzWlc1bmRHZ2diMllnZEdobElHUjFjbUYwYVc5dUlHbHVJSFJvWlNCemNHVmphV1pwWldRZ2RXNXBkQzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIVnVhWFFnTFNCaElIVnVhWFFnYzNWamFDQmhjeUFuYldsdWRYUmxjeWNnYjNJZ0oyUmhlWE1uWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZTNsbFlYSnpPaUF4ZlNrdVlYTW9KMlJoZVhNbktTQXZMejArSURNMk5WeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIdDVaV0Z5Y3pvZ01YMHBMbUZ6S0NkdGIyNTBhSE1uS1NBdkx6MCtJREV5WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZTJodmRYSnpPaUEyTUgwcExtRnpLQ2RrWVhsekp5a2dMeTg5UGlBeUxqVmNiaUFnSUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1lYTW9kVzVwZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5Ob2FXWjBWRzhvZFc1cGRDa3VaMlYwS0hWdWFYUXBJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsWkhWalpTQjBhR2x6SUVSMWNtRjBhVzl1SUhSdklHbDBjeUJqWVc1dmJtbGpZV3dnY21Wd2NtVnpaVzUwWVhScGIyNGdhVzRnYVhSeklHTjFjbkpsYm5RZ2RXNXBkSE11WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnljem9nTWl3Z1pHRjVjem9nTlRBd01DQjlLUzV1YjNKdFlXeHBlbVVvS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCNVpXRnljem9nTVRVc0lHUmhlWE02SURJMU5TQjlYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNVElzSUcxcGJuVjBaWE02SUMwME5TQjlLUzV1YjNKdFlXeHBlbVVvS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTVRFc0lHMXBiblYwWlhNNklERTFJSDFjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSSFZ5WVhScGIyNTlYRzRnSUNBcUwxeHVJQ0J1YjNKdFlXeHBlbVVvS1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUdOdmJuTjBJSFpoYkhNZ1BTQjBhR2x6TG5SdlQySnFaV04wS0NrN1hHNGdJQ0FnYm05eWJXRnNhWHBsVm1Gc2RXVnpLSFJvYVhNdWJXRjBjbWw0TENCMllXeHpLVHRjYmlBZ0lDQnlaWFIxY200Z1kyeHZibVVvZEdocGN5d2dleUIyWVd4MVpYTTZJSFpoYkhNZ2ZTd2dkSEoxWlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRDQjBhR2x6SUVSMWNtRjBhVzl1SUdsdWRHOGdhWFJ6SUhKbGNISmxjMlZ1ZEdGMGFXOXVJR2x1SUdFZ1pHbG1abVZ5Wlc1MElITmxkQ0J2WmlCMWJtbDBjeTVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUdodmRYSnpPaUF4TENCelpXTnZibVJ6T2lBek1DQjlLUzV6YUdsbWRGUnZLQ2R0YVc1MWRHVnpKeXdnSjIxcGJHeHBjMlZqYjI1a2N5Y3BMblJ2VDJKcVpXTjBLQ2tnTHk4OVBpQjdJRzFwYm5WMFpYTTZJRFl3TENCdGFXeHNhWE5sWTI5dVpITTZJRE13TURBd0lIMWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JIVnlZWFJwYjI1OVhHNGdJQ0FxTDF4dUlDQnphR2xtZEZSdktDNHVMblZ1YVhSektTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCMGFHbHpPMXh1WEc0Z0lDQWdhV1lnS0hWdWFYUnpMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RXNXBkSE1nUFNCMWJtbDBjeTV0WVhBb0tIVXBJRDArSUVSMWNtRjBhVzl1TG01dmNtMWhiR2w2WlZWdWFYUW9kU2twTzF4dVhHNGdJQ0FnWTI5dWMzUWdZblZwYkhRZ1BTQjdmU3hjYmlBZ0lDQWdJR0ZqWTNWdGRXeGhkR1ZrSUQwZ2UzMHNYRzRnSUNBZ0lDQjJZV3h6SUQwZ2RHaHBjeTUwYjA5aWFtVmpkQ2dwTzF4dUlDQWdJR3hsZENCc1lYTjBWVzVwZER0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2F5QnZaaUJ2Y21SbGNtVmtWVzVwZEhNcElIdGNiaUFnSUNBZ0lHbG1JQ2gxYm1sMGN5NXBibVJsZUU5bUtHc3BJRDQ5SURBcElIdGNiaUFnSUNBZ0lDQWdiR0Z6ZEZWdWFYUWdQU0JyTzF4dVhHNGdJQ0FnSUNBZ0lHeGxkQ0J2ZDI0Z1BTQXdPMXh1WEc0Z0lDQWdJQ0FnSUM4dklHRnVlWFJvYVc1bklIZGxJR2hoZG1WdUozUWdZbTlwYkdWa0lHUnZkMjRnZVdWMElITm9iM1ZzWkNCblpYUWdZbTlwYkdWa0lIUnZJSFJvYVhNZ2RXNXBkRnh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdGcklHbHVJR0ZqWTNWdGRXeGhkR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiM2R1SUNzOUlIUm9hWE11YldGMGNtbDRXMkZyWFZ0clhTQXFJR0ZqWTNWdGRXeGhkR1ZrVzJGclhUdGNiaUFnSUNBZ0lDQWdJQ0JoWTJOMWJYVnNZWFJsWkZ0aGExMGdQU0F3TzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdMeThnY0d4MWN5QmhibmwwYUdsdVp5QjBhR0YwSjNNZ1lXeHlaV0ZrZVNCcGJpQjBhR2x6SUhWdWFYUmNiaUFnSUNBZ0lDQWdhV1lnS0dselRuVnRZbVZ5S0haaGJITmJhMTBwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiM2R1SUNzOUlIWmhiSE5iYTEwN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBJRDBnVFdGMGFDNTBjblZ1WXlodmQyNHBPMXh1SUNBZ0lDQWdJQ0JpZFdsc2RGdHJYU0E5SUdrN1hHNGdJQ0FnSUNBZ0lHRmpZM1Z0ZFd4aGRHVmtXMnRkSUQwZ0tHOTNiaUFxSURFd01EQWdMU0JwSUNvZ01UQXdNQ2tnTHlBeE1EQXdPMXh1WEc0Z0lDQWdJQ0FnSUM4dklIQnNkWE1nWVc1NWRHaHBibWNnWm5WeWRHaGxjaUJrYjNkdUlIUm9aU0JqYUdGcGJpQjBhR0YwSUhOb2IzVnNaQ0JpWlNCeWIyeHNaV1FnZFhBZ2FXNGdkRzhnZEdocGMxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR1J2ZDI0Z2FXNGdkbUZzY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNodmNtUmxjbVZrVlc1cGRITXVhVzVrWlhoUFppaGtiM2R1S1NBK0lHOXlaR1Z5WldSVmJtbDBjeTVwYm1SbGVFOW1LR3NwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MlpYSjBLSFJvYVhNdWJXRjBjbWw0TENCMllXeHpMQ0JrYjNkdUxDQmlkV2xzZEN3Z2F5azdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRzkwYUdWeWQybHpaU3dnYTJWbGNDQnBkQ0JwYmlCMGFHVWdkMmx1WjNNZ2RHOGdZbTlwYkNCcGRDQnNZWFJsY2x4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNocGMwNTFiV0psY2loMllXeHpXMnRkS1NrZ2UxeHVJQ0FnSUNBZ0lDQmhZMk4xYlhWc1lYUmxaRnRyWFNBOUlIWmhiSE5iYTEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1lXNTVkR2hwYm1jZ2JHVm1kRzkyWlhJZ1ltVmpiMjFsY3lCMGFHVWdaR1ZqYVcxaGJDQm1iM0lnZEdobElHeGhjM1FnZFc1cGRGeHVJQ0FnSUM4dklHeGhjM1JWYm1sMElHMTFjM1FnWW1VZ1pHVm1hVzVsWkNCemFXNWpaU0IxYm1sMGN5QnBjeUJ1YjNRZ1pXMXdkSGxjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR3RsZVNCcGJpQmhZMk4xYlhWc1lYUmxaQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHRmpZM1Z0ZFd4aGRHVmtXMnRsZVYwZ0lUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ1luVnBiSFJiYkdGemRGVnVhWFJkSUNzOVhHNGdJQ0FnSUNBZ0lDQWdhMlY1SUQwOVBTQnNZWE4wVlc1cGRDQS9JR0ZqWTNWdGRXeGhkR1ZrVzJ0bGVWMGdPaUJoWTJOMWJYVnNZWFJsWkZ0clpYbGRJQzhnZEdocGN5NXRZWFJ5YVhoYmJHRnpkRlZ1YVhSZFcydGxlVjA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHTnNiMjVsS0hSb2FYTXNJSHNnZG1Gc2RXVnpPaUJpZFdsc2RDQjlMQ0IwY25WbEtTNXViM0p0WVd4cGVtVW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElHNWxaMkYwYVhabElHOW1JSFJvYVhNZ1JIVnlZWFJwYjI0dVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ01Td2djMlZqYjI1a2N6b2dNekFnZlNrdWJtVm5ZWFJsS0NrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2FHOTFjbk02SUMweExDQnpaV052Ym1Sek9pQXRNekFnZlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUc1bFoyRjBaU2dwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnWTI5dWMzUWdibVZuWVhSbFpDQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxuWmhiSFZsY3lrcElIdGNiaUFnSUNBZ0lHNWxaMkYwWldSYmExMGdQU0IwYUdsekxuWmhiSFZsYzF0clhTQTlQVDBnTUNBL0lEQWdPaUF0ZEdocGN5NTJZV3gxWlhOYmExMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqYkc5dVpTaDBhR2x6TENCN0lIWmhiSFZsY3pvZ2JtVm5ZWFJsWkNCOUxDQjBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElIbGxZWEp6TGx4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUhsbFlYSnpLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMblpoYkhWbGN5NTVaV0Z5Y3lCOGZDQXdJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdjWFZoY25SbGNuTXVYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdjWFZoY25SbGNuTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhSb2FYTXVkbUZzZFdWekxuRjFZWEowWlhKeklIeDhJREFnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0J0YjI1MGFITXVYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdiVzl1ZEdoektDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuWmhiSFZsY3k1dGIyNTBhSE1nZkh3Z01DQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElIZGxaV3R6WEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZDJWbGEzTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhSb2FYTXVkbUZzZFdWekxuZGxaV3R6SUh4OElEQWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQmtZWGx6TGx4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdSaGVYTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhSb2FYTXVkbUZzZFdWekxtUmhlWE1nZkh3Z01DQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHaHZkWEp6TGx4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdodmRYSnpLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMblpoYkhWbGN5NW9iM1Z5Y3lCOGZDQXdJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiV2x1ZFhSbGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTI1MWJXSmxjbjFjYmlBZ0lDb3ZYRzRnSUdkbGRDQnRhVzUxZEdWektDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuWmhiSFZsY3k1dGFXNTFkR1Z6SUh4OElEQWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQnpaV052Ym1SekxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdjMlZqYjI1a2N5Z3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtJRDhnZEdocGN5NTJZV3gxWlhNdWMyVmpiMjVrY3lCOGZDQXdJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiV2xzYkdselpXTnZibVJ6TGx4dUlDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JXbHNiR2x6WldOdmJtUnpLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMblpoYkhWbGN5NXRhV3hzYVhObFkyOXVaSE1nZkh3Z01DQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklIZG9aWFJvWlhJZ2RHaGxJRVIxY21GMGFXOXVJR2x6SUdsdWRtRnNhV1F1SUVsdWRtRnNhV1FnWkhWeVlYUnBiMjV6SUdGeVpTQnlaWFIxY201bFpDQmllU0JrYVdabUlHOXdaWEpoZEdsdmJuTmNiaUFnSUNvZ2IyNGdhVzUyWVd4cFpDQkVZWFJsVkdsdFpYTWdiM0lnU1c1MFpYSjJZV3h6TGx4dUlDQWdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnWjJWMElHbHpWbUZzYVdRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhVzUyWVd4cFpDQTlQVDBnYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUdWeWNtOXlJR052WkdVZ2FXWWdkR2hwY3lCRWRYSmhkR2x2YmlCaVpXTmhiV1VnYVc1MllXeHBaQ3dnYjNJZ2JuVnNiQ0JwWmlCMGFHVWdSSFZ5WVhScGIyNGdhWE1nZG1Gc2FXUmNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR2x1ZG1Gc2FXUlNaV0Z6YjI0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhVzUyWVd4cFpDQS9JSFJvYVhNdWFXNTJZV3hwWkM1eVpXRnpiMjRnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVc0Z1pYaHdiR0Z1WVhScGIyNGdiMllnZDJoNUlIUm9hWE1nUkhWeVlYUnBiMjRnWW1WallXMWxJR2x1ZG1Gc2FXUXNJRzl5SUc1MWJHd2dhV1lnZEdobElFUjFjbUYwYVc5dUlHbHpJSFpoYkdsa1hHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2FXNTJZV3hwWkVWNGNHeGhibUYwYVc5dUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx1ZG1Gc2FXUWdQeUIwYUdsekxtbHVkbUZzYVdRdVpYaHdiR0Z1WVhScGIyNGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRVZ4ZFdGc2FYUjVJR05vWldOclhHNGdJQ0FxSUZSM2J5QkVkWEpoZEdsdmJuTWdZWEpsSUdWeGRXRnNJR2xtWmlCMGFHVjVJR2hoZG1VZ2RHaGxJSE5oYldVZ2RXNXBkSE1nWVc1a0lIUm9aU0J6WVcxbElIWmhiSFZsY3lCbWIzSWdaV0ZqYUNCMWJtbDBMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUjFjbUYwYVc5dWZTQnZkR2hsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnWlhGMVlXeHpLRzkwYUdWeUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRZ2ZId2dJVzkwYUdWeUxtbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXViRzlqTG1WeGRXRnNjeWh2ZEdobGNpNXNiMk1wS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1puVnVZM1JwYjI0Z1pYRW9kakVzSUhZeUtTQjdYRzRnSUNBZ0lDQXZMeUJEYjI1emFXUmxjaUF3SUdGdVpDQjFibVJsWm1sdVpXUWdZWE1nWlhGMVlXeGNiaUFnSUNBZ0lHbG1JQ2gyTVNBOVBUMGdkVzVrWldacGJtVmtJSHg4SUhZeElEMDlQU0F3S1NCeVpYUjFjbTRnZGpJZ1BUMDlJSFZ1WkdWbWFXNWxaQ0I4ZkNCMk1pQTlQVDBnTUR0Y2JpQWdJQ0FnSUhKbGRIVnliaUIyTVNBOVBUMGdkakk3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0IxSUc5bUlHOXlaR1Z5WldSVmJtbDBjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRmxjU2gwYUdsekxuWmhiSFZsYzF0MVhTd2diM1JvWlhJdWRtRnNkV1Z6VzNWZEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQjlYRzU5WEc0aUxDQWlhVzF3YjNKMElFUmhkR1ZVYVcxbExDQjdJR1p5YVdWdVpHeDVSR0YwWlZScGJXVWdmU0JtY205dElGd2lMaTlrWVhSbGRHbHRaUzVxYzF3aU8xeHVhVzF3YjNKMElFUjFjbUYwYVc5dUlHWnliMjBnWENJdUwyUjFjbUYwYVc5dUxtcHpYQ0k3WEc1cGJYQnZjblFnVTJWMGRHbHVaM01nWm5KdmJTQmNJaTR2YzJWMGRHbHVaM011YW5OY0lqdGNibWx0Y0c5eWRDQjdJRWx1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5TENCSmJuWmhiR2xrU1c1MFpYSjJZV3hGY25KdmNpQjlJR1p5YjIwZ1hDSXVMMlZ5Y205eWN5NXFjMXdpTzF4dWFXMXdiM0owSUVsdWRtRnNhV1FnWm5KdmJTQmNJaTR2YVcxd2JDOXBiblpoYkdsa0xtcHpYQ0k3WEc1Y2JtTnZibk4wSUVsT1ZrRk1TVVFnUFNCY0lrbHVkbUZzYVdRZ1NXNTBaWEoyWVd4Y0lqdGNibHh1THk4Z1kyaGxZMnR6SUdsbUlIUm9aU0J6ZEdGeWRDQnBjeUJsY1hWaGJDQjBieUJ2Y2lCaVpXWnZjbVVnZEdobElHVnVaRnh1Wm5WdVkzUnBiMjRnZG1Gc2FXUmhkR1ZUZEdGeWRFVnVaQ2h6ZEdGeWRDd2daVzVrS1NCN1hHNGdJR2xtSUNnaGMzUmhjblFnZkh3Z0lYTjBZWEowTG1selZtRnNhV1FwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdTVzUwWlhKMllXd3VhVzUyWVd4cFpDaGNJbTFwYzNOcGJtY2diM0lnYVc1MllXeHBaQ0J6ZEdGeWRGd2lLVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDZ2haVzVrSUh4OElDRmxibVF1YVhOV1lXeHBaQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQkpiblJsY25aaGJDNXBiblpoYkdsa0tGd2liV2x6YzJsdVp5QnZjaUJwYm5aaGJHbGtJR1Z1WkZ3aUtUdGNiaUFnZlNCbGJITmxJR2xtSUNobGJtUWdQQ0J6ZEdGeWRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCSmJuUmxjblpoYkM1cGJuWmhiR2xrS0Z4dUlDQWdJQ0FnWENKbGJtUWdZbVZtYjNKbElITjBZWEowWENJc1hHNGdJQ0FnSUNCZ1ZHaGxJR1Z1WkNCdlppQmhiaUJwYm5SbGNuWmhiQ0J0ZFhOMElHSmxJR0ZtZEdWeUlHbDBjeUJ6ZEdGeWRDd2dZblYwSUhsdmRTQm9ZV1FnYzNSaGNuUTlKSHR6ZEdGeWRDNTBiMGxUVHlncGZTQmhibVFnWlc1a1BTUjdaVzVrTG5SdlNWTlBLQ2w5WUZ4dUlDQWdJQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQkJiaUJKYm5SbGNuWmhiQ0J2WW1wbFkzUWdjbVZ3Y21WelpXNTBjeUJoSUdoaGJHWXRiM0JsYmlCcGJuUmxjblpoYkNCdlppQjBhVzFsTENCM2FHVnlaU0JsWVdOb0lHVnVaSEJ2YVc1MElHbHpJR0VnZTBCc2FXNXJJRVJoZEdWVWFXMWxmUzRnUTI5dVkyVndkSFZoYkd4NUxDQnBkQ2R6SUdFZ1kyOXVkR0ZwYm1WeUlHWnZjaUIwYUc5elpTQjBkMjhnWlc1a2NHOXBiblJ6TENCaFkyTnZiWEJoYm1sbFpDQmllU0J0WlhSb2IyUnpJR1p2Y2lCamNtVmhkR2x1Wnl3Z2NHRnljMmx1Wnl3Z2FXNTBaWEp5YjJkaGRHbHVaeXdnWTI5dGNHRnlhVzVuTENCMGNtRnVjMlp2Y20xcGJtY3NJR0Z1WkNCbWIzSnRZWFIwYVc1bklIUm9aVzB1WEc0Z0tseHVJQ29nU0dWeVpTQnBjeUJoSUdKeWFXVm1JRzkyWlhKMmFXVjNJRzltSUhSb1pTQnRiM04wSUdOdmJXMXZibXg1SUhWelpXUWdiV1YwYUc5a2N5QmhibVFnWjJWMGRHVnljeUJwYmlCSmJuUmxjblpoYkRwY2JpQXFYRzRnS2lBcUlDb3FRM0psWVhScGIyNHFLaUJVYnlCamNtVmhkR1VnWVc0Z1NXNTBaWEoyWVd3c0lIVnpaU0I3UUd4cGJtc2dTVzUwWlhKMllXd2pabkp2YlVSaGRHVlVhVzFsYzMwc0lIdEFiR2x1YXlCSmJuUmxjblpoYkNOaFpuUmxjbjBzSUh0QWJHbHVheUJKYm5SbGNuWmhiQ05pWldadmNtVjlMQ0J2Y2lCN1FHeHBibXNnU1c1MFpYSjJZV3dqWm5KdmJVbFRUMzB1WEc0Z0tpQXFJQ29xUVdOalpYTnpiM0p6S2lvZ1ZYTmxJSHRBYkdsdWF5QkpiblJsY25aaGJDTnpkR0Z5ZEgwZ1lXNWtJSHRBYkdsdWF5QkpiblJsY25aaGJDTmxibVI5SUhSdklHZGxkQ0IwYUdVZ2MzUmhjblFnWVc1a0lHVnVaQzVjYmlBcUlDb2dLaXBKYm5SbGNuSnZaMkYwYVc5dUtpb2dWRzhnWVc1aGJIbDZaU0IwYUdVZ1NXNTBaWEoyWVd3c0lIVnpaU0I3UUd4cGJtc2dTVzUwWlhKMllXd2pZMjkxYm5SOUxDQjdRR3hwYm1zZ1NXNTBaWEoyWVd3amJHVnVaM1JvZlN3Z2UwQnNhVzVySUVsdWRHVnlkbUZzSTJoaGMxTmhiV1Y5TENCN1FHeHBibXNnU1c1MFpYSjJZV3dqWTI5dWRHRnBibk45TENCN1FHeHBibXNnU1c1MFpYSjJZV3dqYVhOQlpuUmxjbjBzSUc5eUlIdEFiR2x1YXlCSmJuUmxjblpoYkNOcGMwSmxabTl5WlgwdVhHNGdLaUFxSUNvcVZISmhibk5tYjNKdFlYUnBiMjRxS2lCVWJ5QmpjbVZoZEdVZ2IzUm9aWElnU1c1MFpYSjJZV3h6SUc5MWRDQnZaaUIwYUdseklHOXVaU3dnZFhObElIdEFiR2x1YXlCSmJuUmxjblpoYkNOelpYUjlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2pjM0JzYVhSQmRIMHNJSHRBYkdsdWF5QkpiblJsY25aaGJDTnpjR3hwZEVKNWZTd2dlMEJzYVc1cklFbHVkR1Z5ZG1Gc0kyUnBkbWxrWlVWeGRXRnNiSGw5TENCN1FHeHBibXNnU1c1MFpYSjJZV3dqYldWeVoyVjlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2plRzl5ZlN3Z2UwQnNhVzVySUVsdWRHVnlkbUZzSTNWdWFXOXVmU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJMmx1ZEdWeWMyVmpkR2x2Ym4wc0lHOXlJSHRBYkdsdWF5QkpiblJsY25aaGJDTmthV1ptWlhKbGJtTmxmUzVjYmlBcUlDb2dLaXBEYjIxd1lYSnBjMjl1S2lvZ1ZHOGdZMjl0Y0dGeVpTQjBhR2x6SUVsdWRHVnlkbUZzSUhSdklHRnViM1JvWlhJZ2IyNWxMQ0IxYzJVZ2UwQnNhVzVySUVsdWRHVnlkbUZzSTJWeGRXRnNjMzBzSUh0QWJHbHVheUJKYm5SbGNuWmhiQ052ZG1WeWJHRndjMzBzSUh0QWJHbHVheUJKYm5SbGNuWmhiQ05oWW5WMGMxTjBZWEowZlN3Z2UwQnNhVzVySUVsdWRHVnlkbUZzSTJGaWRYUnpSVzVrZlN3Z2UwQnNhVzVySUVsdWRHVnlkbUZzSTJWdVozVnNabk45WEc0Z0tpQXFJQ29xVDNWMGNIVjBLaW9nVkc4Z1kyOXVkbVZ5ZENCMGFHVWdTVzUwWlhKMllXd2dhVzUwYnlCdmRHaGxjaUJ5WlhCeVpYTmxiblJoZEdsdmJuTXNJSE5sWlNCN1FHeHBibXNnU1c1MFpYSjJZV3dqZEc5VGRISnBibWQ5TENCN1FHeHBibXNnU1c1MFpYSjJZV3dqZEc5SlUwOTlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2pkRzlKVTA5RVlYUmxmU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJM1J2U1ZOUFZHbHRaWDBzSUh0QWJHbHVheUJKYm5SbGNuWmhiQ04wYjBadmNtMWhkSDBzSUdGdVpDQjdRR3hwYm1zZ1NXNTBaWEoyWVd3amRHOUVkWEpoZEdsdmJuMHVYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdOc1lYTnpJRWx1ZEdWeWRtRnNJSHRjYmlBZ0x5b3FYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhqYjI1bWFXY3BJSHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbk1nUFNCamIyNW1hV2N1YzNSaGNuUTdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NWxJRDBnWTI5dVptbG5MbVZ1WkR0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQVlXTmpaWE56SUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1sdWRtRnNhV1FnUFNCamIyNW1hV2N1YVc1MllXeHBaQ0I4ZkNCdWRXeHNPMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJoWTJObGMzTWdjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVhWE5NZFhodmJrbHVkR1Z5ZG1Gc0lEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lXNGdhVzUyWVd4cFpDQkpiblJsY25aaGJDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhKbFlYTnZiaUF0SUhOcGJYQnNaU0J6ZEhKcGJtY2diMllnZDJoNUlIUm9hWE1nU1c1MFpYSjJZV3dnYVhNZ2FXNTJZV3hwWkM0Z1UyaHZkV3hrSUc1dmRDQmpiMjUwWVdsdUlIQmhjbUZ0WlhSbGNuTWdiM0lnWVc1NWRHaHBibWNnWld4elpTQmtZWFJoTFdSbGNHVnVaR1Z1ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMlY0Y0d4aGJtRjBhVzl1UFc1MWJHeGRJQzBnYkc5dVoyVnlJR1Y0Y0d4aGJtRjBhVzl1TENCdFlYa2dhVzVqYkhWa1pTQndZWEpoYldWMFpYSnpJR0Z1WkNCdmRHaGxjaUIxYzJWbWRXd2daR1ZpZFdkbmFXNW5JR2x1Wm05eWJXRjBhVzl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMGx1ZEdWeWRtRnNmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2x1ZG1Gc2FXUW9jbVZoYzI5dUxDQmxlSEJzWVc1aGRHbHZiaUE5SUc1MWJHd3BJSHRjYmlBZ0lDQnBaaUFvSVhKbFlYTnZiaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUtGd2libVZsWkNCMGJ5QnpjR1ZqYVdaNUlHRWdjbVZoYzI5dUlIUm9aU0JKYm5SbGNuWmhiQ0JwY3lCcGJuWmhiR2xrWENJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR2x1ZG1Gc2FXUWdQU0J5WldGemIyNGdhVzV6ZEdGdVkyVnZaaUJKYm5aaGJHbGtJRDhnY21WaGMyOXVJRG9nYm1WM0lFbHVkbUZzYVdRb2NtVmhjMjl1TENCbGVIQnNZVzVoZEdsdmJpazdYRzVjYmlBZ0lDQnBaaUFvVTJWMGRHbHVaM011ZEdoeWIzZFBia2x1ZG1Gc2FXUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5aaGJHbGtTVzUwWlhKMllXeEZjbkp2Y2locGJuWmhiR2xrS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNuWmhiQ2g3SUdsdWRtRnNhV1FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaGJpQkpiblJsY25aaGJDQm1jbTl0SUdFZ2MzUmhjblFnUkdGMFpWUnBiV1VnWVc1a0lHRnVJR1Z1WkNCRVlYUmxWR2x0WlM0Z1NXNWpiSFZ6YVhabElHOW1JSFJvWlNCemRHRnlkQ0JpZFhRZ2JtOTBJSFJvWlNCbGJtUXVYRzRnSUNBcUlFQndZWEpoYlNCN1JHRjBaVlJwYldWOFJHRjBaWHhQWW1wbFkzUjlJSE4wWVhKMFhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y4UkdGMFpYeFBZbXBsWTNSOUlHVnVaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEpiblJsY25aaGJIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm1jbTl0UkdGMFpWUnBiV1Z6S0hOMFlYSjBMQ0JsYm1RcElIdGNiaUFnSUNCamIyNXpkQ0JpZFdsc2RGTjBZWEowSUQwZ1puSnBaVzVrYkhsRVlYUmxWR2x0WlNoemRHRnlkQ2tzWEc0Z0lDQWdJQ0JpZFdsc2RFVnVaQ0E5SUdaeWFXVnVaR3g1UkdGMFpWUnBiV1VvWlc1a0tUdGNibHh1SUNBZ0lHTnZibk4wSUhaaGJHbGtZWFJsUlhKeWIzSWdQU0IyWVd4cFpHRjBaVk4wWVhKMFJXNWtLR0oxYVd4MFUzUmhjblFzSUdKMWFXeDBSVzVrS1R0Y2JseHVJQ0FnSUdsbUlDaDJZV3hwWkdGMFpVVnljbTl5SUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1NXNTBaWEoyWVd3b2UxeHVJQ0FnSUNBZ0lDQnpkR0Z5ZERvZ1luVnBiSFJUZEdGeWRDeGNiaUFnSUNBZ0lDQWdaVzVrT2lCaWRXbHNkRVZ1WkN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkbUZzYVdSaGRHVkZjbkp2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdGdUlFbHVkR1Z5ZG1Gc0lHWnliMjBnWVNCemRHRnlkQ0JFWVhSbFZHbHRaU0JoYm1RZ1lTQkVkWEpoZEdsdmJpQjBieUJsZUhSbGJtUWdkRzh1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjhSR0YwWlh4UFltcGxZM1I5SUhOMFlYSjBYRzRnSUNBcUlFQndZWEpoYlNCN1JIVnlZWFJwYjI1OFQySnFaV04wZkc1MWJXSmxjbjBnWkhWeVlYUnBiMjRnTFNCMGFHVWdiR1Z1WjNSb0lHOW1JSFJvWlNCSmJuUmxjblpoYkM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3U1c1MFpYSjJZV3g5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWVdaMFpYSW9jM1JoY25Rc0lHUjFjbUYwYVc5dUtTQjdYRzRnSUNBZ1kyOXVjM1FnWkhWeUlEMGdSSFZ5WVhScGIyNHVabkp2YlVSMWNtRjBhVzl1VEdsclpTaGtkWEpoZEdsdmJpa3NYRzRnSUNBZ0lDQmtkQ0E5SUdaeWFXVnVaR3g1UkdGMFpWUnBiV1VvYzNSaGNuUXBPMXh1SUNBZ0lISmxkSFZ5YmlCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLR1IwTENCa2RDNXdiSFZ6S0dSMWNpa3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoYmlCSmJuUmxjblpoYkNCbWNtOXRJR0Z1SUdWdVpDQkVZWFJsVkdsdFpTQmhibVFnWVNCRWRYSmhkR2x2YmlCMGJ5QmxlSFJsYm1RZ1ltRmphM2RoY21SeklIUnZMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUmhkR1ZVYVcxbGZFUmhkR1Y4VDJKcVpXTjBmU0JsYm1SY2JpQWdJQ29nUUhCaGNtRnRJSHRFZFhKaGRHbHZibnhQWW1wbFkzUjhiblZ0WW1WeWZTQmtkWEpoZEdsdmJpQXRJSFJvWlNCc1pXNW5kR2dnYjJZZ2RHaGxJRWx1ZEdWeWRtRnNMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdEpiblJsY25aaGJIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QmlaV1p2Y21Vb1pXNWtMQ0JrZFhKaGRHbHZiaWtnZTF4dUlDQWdJR052Ym5OMElHUjFjaUE5SUVSMWNtRjBhVzl1TG1aeWIyMUVkWEpoZEdsdmJreHBhMlVvWkhWeVlYUnBiMjRwTEZ4dUlDQWdJQ0FnWkhRZ1BTQm1jbWxsYm1Sc2VVUmhkR1ZVYVcxbEtHVnVaQ2s3WEc0Z0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vWkhRdWJXbHVkWE1vWkhWeUtTd2daSFFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaGJpQkpiblJsY25aaGJDQm1jbTl0SUdGdUlFbFRUeUE0TmpBeElITjBjbWx1Wnk1Y2JpQWdJQ29nUVdOalpYQjBjeUJnUEhOMFlYSjBQaTg4Wlc1a1BtQXNJR0E4YzNSaGNuUStMenhrZFhKaGRHbHZiajVnTENCaGJtUWdZRHhrZFhKaGRHbHZiajR2UEdWdVpENWdJR1p2Y20xaGRITXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFpYaDBJQzBnZEdobElFbFRUeUJ6ZEhKcGJtY2dkRzhnY0dGeWMyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUZ0dmNIUnpYU0F0SUc5d2RHbHZibk1nZEc4Z2NHRnpjeUI3UUd4cGJtc2dSR0YwWlZScGJXVWpabkp2YlVsVFQzMGdZVzVrSUc5d2RHbHZibUZzYkhrZ2UwQnNhVzVySUVSMWNtRjBhVzl1STJaeWIyMUpVMDk5WEc0Z0lDQXFJRUJ6WldVZ2FIUjBjSE02THk5bGJpNTNhV3RwY0dWa2FXRXViM0puTDNkcGEya3ZTVk5QWHpnMk1ERWpWR2x0WlY5cGJuUmxjblpoYkhOY2JpQWdJQ29nUUhKbGRIVnliaUI3U1c1MFpYSjJZV3g5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJVbFRUeWgwWlhoMExDQnZjSFJ6S1NCN1hHNGdJQ0FnWTI5dWMzUWdXM01zSUdWZElEMGdLSFJsZUhRZ2ZId2dYQ0pjSWlrdWMzQnNhWFFvWENJdlhDSXNJRElwTzF4dUlDQWdJR2xtSUNoeklDWW1JR1VwSUh0Y2JpQWdJQ0FnSUd4bGRDQnpkR0Z5ZEN3Z2MzUmhjblJKYzFaaGJHbGtPMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2MzUmhjblFnUFNCRVlYUmxWR2x0WlM1bWNtOXRTVk5QS0hNc0lHOXdkSE1wTzF4dUlDQWdJQ0FnSUNCemRHRnlkRWx6Vm1Gc2FXUWdQU0J6ZEdGeWRDNXBjMVpoYkdsa08xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0J6ZEdGeWRFbHpWbUZzYVdRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2JHVjBJR1Z1WkN3Z1pXNWtTWE5XWVd4cFpEdGNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdWdVpDQTlJRVJoZEdWVWFXMWxMbVp5YjIxSlUwOG9aU3dnYjNCMGN5azdYRzRnSUNBZ0lDQWdJR1Z1WkVselZtRnNhV1FnUFNCbGJtUXVhWE5XWVd4cFpEdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJQ0FnWlc1a1NYTldZV3hwWkNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9jM1JoY25SSmMxWmhiR2xrSUNZbUlHVnVaRWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbVp5YjIxRVlYUmxWR2x0WlhNb2MzUmhjblFzSUdWdVpDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaSFZ5SUQwZ1JIVnlZWFJwYjI0dVpuSnZiVWxUVHlobExDQnZjSFJ6S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1IxY2k1cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtRm1kR1Z5S0hOMFlYSjBMQ0JrZFhJcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR1Z1WkVselZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWkhWeUlEMGdSSFZ5WVhScGIyNHVabkp2YlVsVFR5aHpMQ0J2Y0hSektUdGNiaUFnSUNBZ0lDQWdhV1lnS0dSMWNpNXBjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbUpsWm05eVpTaGxibVFzSUdSMWNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUVsdWRHVnlkbUZzTG1sdWRtRnNhV1FvWENKMWJuQmhjbk5oWW14bFhDSXNJR0IwYUdVZ2FXNXdkWFFnWENJa2UzUmxlSFI5WENJZ1kyRnVKM1FnWW1VZ2NHRnljMlZrSUdGeklFbFRUeUE0TmpBeFlDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTJobFkyc2dhV1lnWVc0Z2IySnFaV04wSUdseklHRnVJRWx1ZEdWeWRtRnNMaUJYYjNKcmN5QmhZM0p2YzNNZ1kyOXVkR1Y0ZENCaWIzVnVaR0Z5YVdWelhHNGdJQ0FxSUVCd1lYSmhiU0I3YjJKcVpXTjBmU0J2WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdhWE5KYm5SbGNuWmhiQ2h2S1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2h2SUNZbUlHOHVhWE5NZFhodmJrbHVkR1Z5ZG1Gc0tTQjhmQ0JtWVd4elpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJvWlNCemRHRnlkQ0J2WmlCMGFHVWdTVzUwWlhKMllXeGNiaUFnSUNvZ1FIUjVjR1VnZTBSaGRHVlVhVzFsZlZ4dUlDQWdLaTljYmlBZ1oyVjBJSE4wWVhKMEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuTWdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdkR2hsSUdWdVpDQnZaaUIwYUdVZ1NXNTBaWEoyWVd4Y2JpQWdJQ29nUUhSNWNHVWdlMFJoZEdWVWFXMWxmVnh1SUNBZ0tpOWNiaUFnWjJWMElHVnVaQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1cGMxWmhiR2xrSUQ4Z2RHaHBjeTVsSURvZ2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhkb1pYUm9aWElnZEdocGN5QkpiblJsY25aaGJDZHpJR1Z1WkNCcGN5QmhkQ0JzWldGemRDQnBkSE1nYzNSaGNuUXNJRzFsWVc1cGJtY2dkR2hoZENCMGFHVWdTVzUwWlhKMllXd2dhWE51SjNRZ0oySmhZMnQzWVhKa2N5Y3VYRzRnSUNBcUlFQjBlWEJsSUh0aWIyOXNaV0Z1ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR2x6Vm1Gc2FXUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVc1MllXeHBaRkpsWVhOdmJpQTlQVDBnYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUdWeWNtOXlJR052WkdVZ2FXWWdkR2hwY3lCSmJuUmxjblpoYkNCcGN5QnBiblpoYkdsa0xDQnZjaUJ1ZFd4c0lHbG1JSFJvWlNCSmJuUmxjblpoYkNCcGN5QjJZV3hwWkZ4dUlDQWdLaUJBZEhsd1pTQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdsdWRtRnNhV1JTWldGemIyNG9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVc1MllXeHBaQ0EvSUhSb2FYTXVhVzUyWVd4cFpDNXlaV0Z6YjI0Z09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lXNGdaWGh3YkdGdVlYUnBiMjRnYjJZZ2QyaDVJSFJvYVhNZ1NXNTBaWEoyWVd3Z1ltVmpZVzFsSUdsdWRtRnNhV1FzSUc5eUlHNTFiR3dnYVdZZ2RHaGxJRWx1ZEdWeWRtRnNJR2x6SUhaaGJHbGtYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdhVzUyWVd4cFpFVjRjR3hoYm1GMGFXOXVLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1sdWRtRnNhV1FnUHlCMGFHbHpMbWx1ZG1Gc2FXUXVaWGh3YkdGdVlYUnBiMjRnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHeGxibWQwYUNCdlppQjBhR1VnU1c1MFpYSjJZV3dnYVc0Z2RHaGxJSE53WldOcFptbGxaQ0IxYm1sMExseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRDQXRJSFJvWlNCMWJtbDBJQ2h6ZFdOb0lHRnpJQ2RvYjNWeWN5Y2diM0lnSjJSaGVYTW5LU0IwYnlCeVpYUjFjbTRnZEdobElHeGxibWQwYUNCcGJpNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ2JHVnVaM1JvS0hWdWFYUWdQU0JjSW0xcGJHeHBjMlZqYjI1a2Mxd2lLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhSb2FYTXVkRzlFZFhKaGRHbHZiaWd1TGk1YmRXNXBkRjBwTG1kbGRDaDFibWwwS1NBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhSb1pTQmpiM1Z1ZENCdlppQnRhVzUxZEdWekxDQm9iM1Z5Y3l3Z1pHRjVjeXdnYlc5dWRHaHpMQ0J2Y2lCNVpXRnljeUJwYm1Oc2RXUmxaQ0JwYmlCMGFHVWdTVzUwWlhKMllXd3NJR1YyWlc0Z2FXNGdjR0Z5ZEM1Y2JpQWdJQ29nVlc1c2FXdGxJSHRBYkdsdWF5QkpiblJsY25aaGJDTnNaVzVuZEdoOUlIUm9hWE1nWTI5MWJuUnpJSE5sWTNScGIyNXpJRzltSUhSb1pTQmpZV3hsYm1SaGNpd2dibTkwSUhCbGNtbHZaSE1nYjJZZ2RHbHRaU3dnWlM1bkxpQnpjR1ZqYVdaNWFXNW5JQ2RrWVhrblhHNGdJQ0FxSUdGemEzTWdKM2RvWVhRZ1pHRjBaWE1nWVhKbElHbHVZMngxWkdWa0lHbHVJSFJvYVhNZ2FXNTBaWEoyWVd3L0p5d2dibTkwSUNkb2IzY2diV0Z1ZVNCa1lYbHpJR3h2Ym1jZ2FYTWdkR2hwY3lCcGJuUmxjblpoYkQ4blhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiZFc1cGREMG5iV2xzYkdselpXTnZibVJ6SjEwZ0xTQjBhR1VnZFc1cGRDQnZaaUIwYVcxbElIUnZJR052ZFc1MExseHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCamIzVnVkQ2gxYm1sMElEMGdYQ0p0YVd4c2FYTmxZMjl1WkhOY0lpa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1RtRk9PMXh1SUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnZEdocGN5NXpkR0Z5ZEM1emRHRnlkRTltS0hWdWFYUXBMRnh1SUNBZ0lDQWdaVzVrSUQwZ2RHaHBjeTVsYm1RdWMzUmhjblJQWmloMWJtbDBLVHRjYmlBZ0lDQnlaWFIxY200Z1RXRjBhQzVtYkc5dmNpaGxibVF1WkdsbVppaHpkR0Z5ZEN3Z2RXNXBkQ2t1WjJWMEtIVnVhWFFwS1NBcklERTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUIzYUdWMGFHVnlJSFJvYVhNZ1NXNTBaWEoyWVd3bmN5QnpkR0Z5ZENCaGJtUWdaVzVrSUdGeVpTQmliM1JvSUdsdUlIUm9aU0J6WVcxbElIVnVhWFFnYjJZZ2RHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RXNXBkQ0F0SUhSb1pTQjFibWwwSUc5bUlIUnBiV1VnZEc4Z1kyaGxZMnNnYzJGdFpXNWxjM01nYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUdoaGMxTmhiV1VvZFc1cGRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxtbHpSVzF3ZEhrb0tTQjhmQ0IwYUdsekxtVXViV2x1ZFhNb01Ta3VhR0Z6VTJGdFpTaDBhR2x6TG5Nc0lIVnVhWFFwSURvZ1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhkb1pYUm9aWElnZEdocGN5QkpiblJsY25aaGJDQm9ZWE1nZEdobElITmhiV1VnYzNSaGNuUWdZVzVrSUdWdVpDQkVZWFJsVkdsdFpYTXVYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQnBjMFZ0Y0hSNUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk11ZG1Gc2RXVlBaaWdwSUQwOVBTQjBhR2x6TG1VdWRtRnNkV1ZQWmlncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9hWE1nU1c1MFpYSjJZV3duY3lCemRHRnlkQ0JwY3lCaFpuUmxjaUIwYUdVZ2MzQmxZMmxtYVdWa0lFUmhkR1ZVYVcxbExseHVJQ0FnS2lCQWNHRnlZVzBnZTBSaGRHVlVhVzFsZlNCa1lYUmxWR2x0WlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnYVhOQlpuUmxjaWhrWVhSbFZHbHRaU2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWN5QStJR1JoZEdWVWFXMWxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvYVhNZ1NXNTBaWEoyWVd3bmN5QmxibVFnYVhNZ1ltVm1iM0psSUhSb1pTQnpjR1ZqYVdacFpXUWdSR0YwWlZScGJXVXVYRzRnSUNBcUlFQndZWEpoYlNCN1JHRjBaVlJwYldWOUlHUmhkR1ZVYVcxbFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCcGMwSmxabTl5WlNoa1lYUmxWR2x0WlNrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaU0E4UFNCa1lYUmxWR2x0WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2QyaGxkR2hsY2lCMGFHbHpJRWx1ZEdWeWRtRnNJR052Ym5SaGFXNXpJSFJvWlNCemNHVmphV1pwWldRZ1JHRjBaVlJwYldVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y5SUdSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JqYjI1MFlXbHVjeWhrWVhSbFZHbHRaU2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWN5QThQU0JrWVhSbFZHbHRaU0FtSmlCMGFHbHpMbVVnUGlCa1lYUmxWR2x0WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQmNJbE5sZEhOY0lpQjBhR1VnYzNSaGNuUWdZVzVrTDI5eUlHVnVaQ0JrWVhSbGN5NGdVbVYwZFhKdWN5QmhJRzVsZDJ4NUxXTnZibk4wY25WamRHVmtJRWx1ZEdWeWRtRnNMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2RtRnNkV1Z6SUMwZ2RHaGxJSFpoYkhWbGN5QjBieUJ6WlhSY2JpQWdJQ29nUUhCaGNtRnRJSHRFWVhSbFZHbHRaWDBnZG1Gc2RXVnpMbk4wWVhKMElDMGdkR2hsSUhOMFlYSjBhVzVuSUVSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjlJSFpoYkhWbGN5NWxibVFnTFNCMGFHVWdaVzVrYVc1bklFUmhkR1ZVYVcxbFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBsdWRHVnlkbUZzZlZ4dUlDQWdLaTljYmlBZ2MyVjBLSHNnYzNSaGNuUXNJR1Z1WkNCOUlEMGdlMzBwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbVp5YjIxRVlYUmxWR2x0WlhNb2MzUmhjblFnZkh3Z2RHaHBjeTV6TENCbGJtUWdmSHdnZEdocGN5NWxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVGNHeHBkQ0IwYUdseklFbHVkR1Z5ZG1Gc0lHRjBJR1ZoWTJnZ2IyWWdkR2hsSUhOd1pXTnBabWxsWkNCRVlYUmxWR2x0WlhOY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1RVlYUmxWR2x0WlgwZ1pHRjBaVlJwYldWeklDMGdkR2hsSUhWdWFYUWdiMllnZEdsdFpTQjBieUJqYjNWdWRDNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1FYSnlZWGw5WEc0Z0lDQXFMMXh1SUNCemNHeHBkRUYwS0M0dUxtUmhkR1ZVYVcxbGN5a2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1cxMDdYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtJRDBnWkdGMFpWUnBiV1Z6WEc0Z0lDQWdJQ0FnSUM1dFlYQW9abkpwWlc1a2JIbEVZWFJsVkdsdFpTbGNiaUFnSUNBZ0lDQWdMbVpwYkhSbGNpZ29aQ2tnUFQ0Z2RHaHBjeTVqYjI1MFlXbHVjeWhrS1NsY2JpQWdJQ0FnSUNBZ0xuTnZjblFvS1N4Y2JpQWdJQ0FnSUhKbGMzVnNkSE1nUFNCYlhUdGNiaUFnSUNCc1pYUWdleUJ6SUgwZ1BTQjBhR2x6TEZ4dUlDQWdJQ0FnYVNBOUlEQTdYRzVjYmlBZ0lDQjNhR2xzWlNBb2N5QThJSFJvYVhNdVpTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1lXUmtaV1FnUFNCemIzSjBaV1JiYVYwZ2ZId2dkR2hwY3k1bExGeHVJQ0FnSUNBZ0lDQnVaWGgwSUQwZ0syRmtaR1ZrSUQ0Z0szUm9hWE11WlNBL0lIUm9hWE11WlNBNklHRmtaR1ZrTzF4dUlDQWdJQ0FnY21WemRXeDBjeTV3ZFhOb0tFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vY3l3Z2JtVjRkQ2twTzF4dUlDQWdJQ0FnY3lBOUlHNWxlSFE3WEc0Z0lDQWdJQ0JwSUNzOUlERTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkSE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1UzQnNhWFFnZEdocGN5QkpiblJsY25aaGJDQnBiblJ2SUhOdFlXeHNaWElnU1c1MFpYSjJZV3h6TENCbFlXTm9JRzltSUhSb1pTQnpjR1ZqYVdacFpXUWdiR1Z1WjNSb0xseHVJQ0FnS2lCTVpXWjBJRzkyWlhJZ2RHbHRaU0JwY3lCbmNtOTFjR1ZrSUdsdWRHOGdZU0J6YldGc2JHVnlJR2x1ZEdWeWRtRnNYRzRnSUNBcUlFQndZWEpoYlNCN1JIVnlZWFJwYjI1OFQySnFaV04wZkc1MWJXSmxjbjBnWkhWeVlYUnBiMjRnTFNCVWFHVWdiR1Z1WjNSb0lHOW1JR1ZoWTJnZ2NtVnpkV3gwYVc1bklHbHVkR1Z5ZG1Gc0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUhOd2JHbDBRbmtvWkhWeVlYUnBiMjRwSUh0Y2JpQWdJQ0JqYjI1emRDQmtkWElnUFNCRWRYSmhkR2x2Ymk1bWNtOXRSSFZ5WVhScGIyNU1hV3RsS0dSMWNtRjBhVzl1S1R0Y2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrSUh4OElDRmtkWEl1YVhOV1lXeHBaQ0I4ZkNCa2RYSXVZWE1vWENKdGFXeHNhWE5sWTI5dVpITmNJaWtnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnZXlCeklIMGdQU0IwYUdsekxGeHVJQ0FnSUNBZ2FXUjRJRDBnTVN4Y2JpQWdJQ0FnSUc1bGVIUTdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1cxMDdYRzRnSUNBZ2QyaHBiR1VnS0hNZ1BDQjBhR2x6TG1VcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdGa1pHVmtJRDBnZEdocGN5NXpkR0Z5ZEM1d2JIVnpLR1IxY2k1dFlYQlZibWwwY3lnb2VDa2dQVDRnZUNBcUlHbGtlQ2twTzF4dUlDQWdJQ0FnYm1WNGRDQTlJQ3RoWkdSbFpDQStJQ3QwYUdsekxtVWdQeUIwYUdsekxtVWdPaUJoWkdSbFpEdGNiaUFnSUNBZ0lISmxjM1ZzZEhNdWNIVnphQ2hKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektITXNJRzVsZUhRcEtUdGNiaUFnSUNBZ0lITWdQU0J1WlhoME8xeHVJQ0FnSUNBZ2FXUjRJQ3M5SURFN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2RITTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVTNCc2FYUWdkR2hwY3lCSmJuUmxjblpoYkNCcGJuUnZJSFJvWlNCemNHVmphV1pwWldRZ2JuVnRZbVZ5SUc5bUlITnRZV3hzWlhJZ2FXNTBaWEoyWVd4ekxseHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYm5WdFltVnlUMlpRWVhKMGN5QXRJRlJvWlNCdWRXMWlaWElnYjJZZ1NXNTBaWEoyWVd4eklIUnZJR1JwZG1sa1pTQjBhR1VnU1c1MFpYSjJZV3dnYVc1MGJ5NWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1FYSnlZWGw5WEc0Z0lDQXFMMXh1SUNCa2FYWnBaR1ZGY1hWaGJHeDVLRzUxYldKbGNrOW1VR0Z5ZEhNcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTndiR2wwUW5rb2RHaHBjeTVzWlc1bmRHZ29LU0F2SUc1MWJXSmxjazltVUdGeWRITXBMbk5zYVdObEtEQXNJRzUxYldKbGNrOW1VR0Z5ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9hWE1nU1c1MFpYSjJZV3dnYjNabGNteGhjSE1nZDJsMGFDQjBhR1VnYzNCbFkybG1hV1ZrSUVsdWRHVnlkbUZzWEc0Z0lDQXFJRUJ3WVhKaGJTQjdTVzUwWlhKMllXeDlJRzkwYUdWeVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCdmRtVnliR0Z3Y3lodmRHaGxjaWtnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1VZ1BpQnZkR2hsY2k1eklDWW1JSFJvYVhNdWN5QThJRzkwYUdWeUxtVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSGRvWlhSb1pYSWdkR2hwY3lCSmJuUmxjblpoYkNkeklHVnVaQ0JwY3lCaFpHcGhZMlZ1ZENCMGJ5QjBhR1VnYzNCbFkybG1hV1ZrSUVsdWRHVnlkbUZzSjNNZ2MzUmhjblF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdTVzUwWlhKMllXeDlJRzkwYUdWeVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCaFluVjBjMU4wWVhKMEtHOTBhR1Z5S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCeVpYUjFjbTRnSzNSb2FYTXVaU0E5UFQwZ0syOTBhR1Z5TG5NN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIZG9aWFJvWlhJZ2RHaHBjeUJKYm5SbGNuWmhiQ2R6SUhOMFlYSjBJR2x6SUdGa2FtRmpaVzUwSUhSdklIUm9aU0J6Y0dWamFXWnBaV1FnU1c1MFpYSjJZV3duY3lCbGJtUXVYRzRnSUNBcUlFQndZWEpoYlNCN1NXNTBaWEoyWVd4OUlHOTBhR1Z5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JoWW5WMGMwVnVaQ2h2ZEdobGNpa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdjbVYwZFhKdUlDdHZkR2hsY2k1bElEMDlQU0FyZEdocGN5NXpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvYVhNZ1NXNTBaWEoyWVd3Z1pXNW5kV3htY3lCMGFHVWdjM1JoY25RZ1lXNWtJR1Z1WkNCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUVsdWRHVnlkbUZzTGx4dUlDQWdLaUJBY0dGeVlXMGdlMGx1ZEdWeWRtRnNmU0J2ZEdobGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0aWIyOXNaV0Z1ZlZ4dUlDQWdLaTljYmlBZ1pXNW5kV3htY3lodmRHaGxjaWtnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWN5QThQU0J2ZEdobGNpNXpJQ1ltSUhSb2FYTXVaU0ErUFNCdmRHaGxjaTVsTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCM2FHVjBhR1Z5SUhSb2FYTWdTVzUwWlhKMllXd2dhR0Z6SUhSb1pTQnpZVzFsSUhOMFlYSjBJR0Z1WkNCbGJtUWdZWE1nZEdobElITndaV05wWm1sbFpDQkpiblJsY25aaGJDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0SmJuUmxjblpoYkgwZ2IzUm9aWEpjYmlBZ0lDb2dRSEpsZEhWeWJpQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJR1Z4ZFdGc2N5aHZkR2hsY2lrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrSUh4OElDRnZkR2hsY2k1cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjeTVsY1hWaGJITW9iM1JvWlhJdWN5a2dKaVlnZEdocGN5NWxMbVZ4ZFdGc2N5aHZkR2hsY2k1bEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdZVzRnU1c1MFpYSjJZV3dnY21Wd2NtVnpaVzUwYVc1bklIUm9aU0JwYm5SbGNuTmxZM1JwYjI0Z2IyWWdkR2hwY3lCSmJuUmxjblpoYkNCaGJtUWdkR2hsSUhOd1pXTnBabWxsWkNCSmJuUmxjblpoYkM1Y2JpQWdJQ29nVTNCbFkybG1hV05oYkd4NUxDQjBhR1VnY21WemRXeDBhVzVuSUVsdWRHVnlkbUZzSUdoaGN5QjBhR1VnYldGNGFXMTFiU0J6ZEdGeWRDQjBhVzFsSUdGdVpDQjBhR1VnYldsdWFXMTFiU0JsYm1RZ2RHbHRaU0J2WmlCMGFHVWdkSGR2SUVsdWRHVnlkbUZzY3k1Y2JpQWdJQ29nVW1WMGRYSnVjeUJ1ZFd4c0lHbG1JSFJvWlNCcGJuUmxjbk5sWTNScGIyNGdhWE1nWlcxd2RIa3NJRzFsWVc1cGJtY3NJSFJvWlNCcGJuUmxjblpoYkhNZ1pHOXVKM1FnYVc1MFpYSnpaV04wTGx4dUlDQWdLaUJBY0dGeVlXMGdlMGx1ZEdWeWRtRnNmU0J2ZEdobGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0SmJuUmxjblpoYkgxY2JpQWdJQ292WEc0Z0lHbHVkR1Z5YzJWamRHbHZiaWh2ZEdobGNpa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQmpiMjV6ZENCeklEMGdkR2hwY3k1eklENGdiM1JvWlhJdWN5QS9JSFJvYVhNdWN5QTZJRzkwYUdWeUxuTXNYRzRnSUNBZ0lDQmxJRDBnZEdocGN5NWxJRHdnYjNSb1pYSXVaU0EvSUhSb2FYTXVaU0E2SUc5MGFHVnlMbVU3WEc1Y2JpQWdJQ0JwWmlBb2N5QStQU0JsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbVp5YjIxRVlYUmxWR2x0WlhNb2N5d2daU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUJoYmlCSmJuUmxjblpoYkNCeVpYQnlaWE5sYm5ScGJtY2dkR2hsSUhWdWFXOXVJRzltSUhSb2FYTWdTVzUwWlhKMllXd2dZVzVrSUhSb1pTQnpjR1ZqYVdacFpXUWdTVzUwWlhKMllXd3VYRzRnSUNBcUlGTndaV05wWm1sallXeHNlU3dnZEdobElISmxjM1ZzZEdsdVp5QkpiblJsY25aaGJDQm9ZWE1nZEdobElHMXBibWx0ZFcwZ2MzUmhjblFnZEdsdFpTQmhibVFnZEdobElHMWhlR2x0ZFcwZ1pXNWtJSFJwYldVZ2IyWWdkR2hsSUhSM2J5QkpiblJsY25aaGJITXVYRzRnSUNBcUlFQndZWEpoYlNCN1NXNTBaWEoyWVd4OUlHOTBhR1Z5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMGx1ZEdWeWRtRnNmVnh1SUNBZ0tpOWNiaUFnZFc1cGIyNG9iM1JvWlhJcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ1kyOXVjM1FnY3lBOUlIUm9hWE11Y3lBOElHOTBhR1Z5TG5NZ1B5QjBhR2x6TG5NZ09pQnZkR2hsY2k1ekxGeHVJQ0FnSUNBZ1pTQTlJSFJvYVhNdVpTQStJRzkwYUdWeUxtVWdQeUIwYUdsekxtVWdPaUJ2ZEdobGNpNWxPMXh1SUNBZ0lISmxkSFZ5YmlCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLSE1zSUdVcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRTFsY21kbElHRnVJR0Z5Y21GNUlHOW1JRWx1ZEdWeWRtRnNjeUJwYm5SdklHRWdaWEYxYVhaaGJHVnVkQ0J0YVc1cGJXRnNJSE5sZENCdlppQkpiblJsY25aaGJITXVYRzRnSUNBcUlFTnZiV0pwYm1WeklHOTJaWEpzWVhCd2FXNW5JR0Z1WkNCaFpHcGhZMlZ1ZENCSmJuUmxjblpoYkhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR2x1ZEdWeWRtRnNjMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdEJjbkpoZVgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCdFpYSm5aU2hwYm5SbGNuWmhiSE1wSUh0Y2JpQWdJQ0JqYjI1emRDQmJabTkxYm1Rc0lHWnBibUZzWFNBOUlHbHVkR1Z5ZG1Gc2MxeHVJQ0FnSUNBZ0xuTnZjblFvS0dFc0lHSXBJRDArSUdFdWN5QXRJR0l1Y3lsY2JpQWdJQ0FnSUM1eVpXUjFZMlVvWEc0Z0lDQWdJQ0FnSUNoYmMyOW1ZWElzSUdOMWNuSmxiblJkTENCcGRHVnRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NGamRYSnlaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdXM052Wm1GeUxDQnBkR1Z0WFR0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR04xY25KbGJuUXViM1psY214aGNITW9hWFJsYlNrZ2ZId2dZM1Z5Y21WdWRDNWhZblYwYzFOMFlYSjBLR2wwWlcwcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVzNOdlptRnlMQ0JqZFhKeVpXNTBMblZ1YVc5dUtHbDBaVzBwWFR0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRnR6YjJaaGNpNWpiMjVqWVhRb1cyTjFjbkpsYm5SZEtTd2dhWFJsYlYwN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCYlcxMHNJRzUxYkd4ZFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUdsbUlDaG1hVzVoYkNrZ2UxeHVJQ0FnSUNBZ1ptOTFibVF1Y0hWemFDaG1hVzVoYkNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQm1iM1Z1WkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z1lXNGdZWEp5WVhrZ2IyWWdTVzUwWlhKMllXeHpJSEpsY0hKbGMyVnVkR2x1WnlCMGFHVWdjM0JoYm5NZ2IyWWdkR2x0WlNCMGFHRjBJRzl1YkhrZ1lYQndaV0Z5SUdsdUlHOXVaU0J2WmlCMGFHVWdjM0JsWTJsbWFXVmtJRWx1ZEdWeWRtRnNjeTVjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ2FXNTBaWEoyWVd4elhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBGeWNtRjVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJSGh2Y2locGJuUmxjblpoYkhNcElIdGNiaUFnSUNCc1pYUWdjM1JoY25RZ1BTQnVkV3hzTEZ4dUlDQWdJQ0FnWTNWeWNtVnVkRU52ZFc1MElEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1cxMHNYRzRnSUNBZ0lDQmxibVJ6SUQwZ2FXNTBaWEoyWVd4ekxtMWhjQ2dvYVNrZ1BUNGdXMXh1SUNBZ0lDQWdJQ0I3SUhScGJXVTZJR2t1Y3l3Z2RIbHdaVG9nWENKelhDSWdmU3hjYmlBZ0lDQWdJQ0FnZXlCMGFXMWxPaUJwTG1Vc0lIUjVjR1U2SUZ3aVpWd2lJSDBzWEc0Z0lDQWdJQ0JkS1N4Y2JpQWdJQ0FnSUdac1lYUjBaVzVsWkNBOUlFRnljbUY1TG5CeWIzUnZkSGx3WlM1amIyNWpZWFFvTGk0dVpXNWtjeWtzWEc0Z0lDQWdJQ0JoY25JZ1BTQm1iR0YwZEdWdVpXUXVjMjl5ZENnb1lTd2dZaWtnUFQ0Z1lTNTBhVzFsSUMwZ1lpNTBhVzFsS1R0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnZaaUJoY25JcElIdGNiaUFnSUNBZ0lHTjFjbkpsYm5SRGIzVnVkQ0FyUFNCcExuUjVjR1VnUFQwOUlGd2ljMXdpSUQ4Z01TQTZJQzB4TzF4dVhHNGdJQ0FnSUNCcFppQW9ZM1Z5Y21WdWRFTnZkVzUwSUQwOVBTQXhLU0I3WEc0Z0lDQWdJQ0FnSUhOMFlYSjBJRDBnYVM1MGFXMWxPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hOMFlYSjBJQ1ltSUN0emRHRnlkQ0FoUFQwZ0sya3VkR2x0WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RITXVjSFZ6YUNoSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLSE4wWVhKMExDQnBMblJwYldVcEtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhOMFlYSjBJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnU1c1MFpYSjJZV3d1YldWeVoyVW9jbVZ6ZFd4MGN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJR0Z1SUVsdWRHVnlkbUZzSUhKbGNISmxjMlZ1ZEdsdVp5QjBhR1VnYzNCaGJpQnZaaUIwYVcxbElHbHVJSFJvYVhNZ1NXNTBaWEoyWVd3Z2RHaGhkQ0JrYjJWemJpZDBJRzkyWlhKc1lYQWdkMmwwYUNCaGJua2diMllnZEdobElITndaV05wWm1sbFpDQkpiblJsY25aaGJITXVYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVTVzUwWlhKMllXeDlJR2x1ZEdWeWRtRnNjMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdEJjbkpoZVgxY2JpQWdJQ292WEc0Z0lHUnBabVpsY21WdVkyVW9MaTR1YVc1MFpYSjJZV3h6S1NCN1hHNGdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbmh2Y2loYmRHaHBjMTB1WTI5dVkyRjBLR2x1ZEdWeWRtRnNjeWtwWEc0Z0lDQWdJQ0F1YldGd0tDaHBLU0E5UGlCMGFHbHpMbWx1ZEdWeWMyVmpkR2x2YmlocEtTbGNiaUFnSUNBZ0lDNW1hV3gwWlhJb0tHa3BJRDArSUdrZ0ppWWdJV2t1YVhORmJYQjBlU2dwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nU1c1MFpYSjJZV3dnWVhCd2NtOXdjbWxoZEdVZ1ptOXlJR1JsWW5WbloybHVaeTVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdkRzlUZEhKcGJtY29LU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQkpUbFpCVEVsRU8xeHVJQ0FnSUhKbGRIVnliaUJnV3lSN2RHaHBjeTV6TG5SdlNWTlBLQ2w5SUZ4MU1qQXhNeUFrZTNSb2FYTXVaUzUwYjBsVFR5Z3BmU2xnTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lXNGdTVk5QSURnMk1ERXRZMjl0Y0d4cFlXNTBJSE4wY21sdVp5QnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQjBhR2x6SUVsdWRHVnlkbUZzTGx4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpXNHVkMmxyYVhCbFpHbGhMbTl5Wnk5M2FXdHBMMGxUVDE4NE5qQXhJMVJwYldWZmFXNTBaWEoyWVd4elhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdWR2hsSUhOaGJXVWdiM0IwYVc5dWN5QmhjeUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlKVTA5OVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlNWTlBLRzl3ZEhNcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUVsT1ZrRk1TVVE3WEc0Z0lDQWdjbVYwZFhKdUlHQWtlM1JvYVhNdWN5NTBiMGxUVHlodmNIUnpLWDB2Skh0MGFHbHpMbVV1ZEc5SlUwOG9iM0IwY3lsOVlEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnWkdGMFpTQnZaaUIwYUdseklFbHVkR1Z5ZG1Gc0xseHVJQ0FnS2lCVWFHVWdkR2x0WlNCamIyMXdiMjVsYm5SeklHRnlaU0JwWjI1dmNtVmtMbHh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2Wlc0dWQybHJhWEJsWkdsaExtOXlaeTkzYVd0cEwwbFRUMTg0TmpBeEkxUnBiV1ZmYVc1MFpYSjJZV3h6WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2U1ZOUFJHRjBaU2dwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJRWxPVmtGTVNVUTdYRzRnSUNBZ2NtVjBkWEp1SUdBa2UzUm9hWE11Y3k1MGIwbFRUMFJoZEdVb0tYMHZKSHQwYUdsekxtVXVkRzlKVTA5RVlYUmxLQ2w5WUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhMV052YlhCc2FXRnVkQ0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2x0WlNCdlppQjBhR2x6SUVsdWRHVnlkbUZzTGx4dUlDQWdLaUJVYUdVZ1pHRjBaU0JqYjIxd2IyNWxiblJ6SUdGeVpTQnBaMjV2Y21Wa0xseHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZaVzR1ZDJscmFYQmxaR2xoTG05eVp5OTNhV3RwTDBsVFQxODROakF4STFScGJXVmZhVzUwWlhKMllXeHpYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnVkdobElITmhiV1VnYjNCMGFXOXVjeUJoY3lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5SlUwOTlYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZTVk5QVkdsdFpTaHZjSFJ6S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUJKVGxaQlRFbEVPMXh1SUNBZ0lISmxkSFZ5YmlCZ0pIdDBhR2x6TG5NdWRHOUpVMDlVYVcxbEtHOXdkSE1wZlM4a2UzUm9hWE11WlM1MGIwbFRUMVJwYldVb2IzQjBjeWw5WUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nU1c1MFpYSjJZV3dnWm05eWJXRjBkR1ZrSUdGalkyOXlaR2x1WnlCMGJ5QjBhR1VnYzNCbFkybG1hV1ZrSUdadmNtMWhkQ0J6ZEhKcGJtY3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCa1lYUmxSbTl5YldGMElDMGdkR2hsSUdadmNtMWhkQ0J6ZEhKcGJtY3VJRlJvYVhNZ2MzUnlhVzVuSUdadmNtMWhkSE1nZEdobElITjBZWEowSUdGdVpDQmxibVFnZEdsdFpTNGdVMlZsSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjBadmNtMWhkSDBnWm05eUlHUmxkR0ZwYkhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXVjMlZ3WVhKaGRHOXlJRDBnSUNjZ1hIVXlNREV6SUNkZElDMGdZU0J6WlhCaGNtRjBiM0lnZEc4Z2NHeGhZMlVnWW1WMGQyVmxiaUIwYUdVZ2MzUmhjblFnWVc1a0lHVnVaQ0J5WlhCeVpYTmxiblJoZEdsdmJuTmNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ2RHOUdiM0p0WVhRb1pHRjBaVVp2Y20xaGRDd2dleUJ6WlhCaGNtRjBiM0lnUFNCY0lpQmNkVEl3TVRNZ1hDSWdmU0E5SUh0OUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCSlRsWkJURWxFTzF4dUlDQWdJSEpsZEhWeWJpQmdKSHQwYUdsekxuTXVkRzlHYjNKdFlYUW9aR0YwWlVadmNtMWhkQ2w5Skh0elpYQmhjbUYwYjNKOUpIdDBhR2x6TG1VdWRHOUdiM0p0WVhRb1pHRjBaVVp2Y20xaGRDbDlZRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnWVNCRWRYSmhkR2x2YmlCeVpYQnlaWE5sYm5ScGJtY2dkR2hsSUhScGJXVWdjM0JoYm01bFpDQmllU0IwYUdseklHbHVkR1Z5ZG1Gc0xseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaM3h6ZEhKcGJtZGJYWDBnVzNWdWFYUTlXeWR0YVd4c2FYTmxZMjl1WkhNblhWMGdMU0IwYUdVZ2RXNXBkQ0J2Y2lCMWJtbDBjeUFvYzNWamFDQmhjeUFuYUc5MWNuTW5JRzl5SUNka1lYbHpKeWtnZEc4Z2FXNWpiSFZrWlNCcGJpQjBhR1VnWkhWeVlYUnBiMjR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ2IzQjBhVzl1Y3lCMGFHRjBJR0ZtWm1WamRDQjBhR1VnWTNKbFlYUnBiMjRnYjJZZ2RHaGxJRVIxY21GMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVqYjI1MlpYSnphVzl1UVdOamRYSmhZM2s5SjJOaGMzVmhiQ2RkSUMwZ2RHaGxJR052Ym5abGNuTnBiMjRnYzNsemRHVnRJSFJ2SUhWelpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLR1IwTVN3Z1pIUXlLUzUwYjBSMWNtRjBhVzl1S0NrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2JXbHNiR2x6WldOdmJtUnpPaUE0T0RRNE9USTFOeUI5WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1ZEdWeWRtRnNMbVp5YjIxRVlYUmxWR2x0WlhNb1pIUXhMQ0JrZERJcExuUnZSSFZ5WVhScGIyNG9KMlJoZVhNbktTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5QmtZWGx6T2lBeExqQXlOREU0TVRJeE5USTNOemMzTnpnZ2ZWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLR1IwTVN3Z1pIUXlLUzUwYjBSMWNtRjBhVzl1S0ZzbmFHOTFjbk1uTENBbmJXbHVkWFJsY3lkZEtTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5Qm9iM1Z5Y3pvZ01qUXNJRzFwYm5WMFpYTTZJRE0wTGpneU1EazFJSDFjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzUwWlhKMllXd3Vabkp2YlVSaGRHVlVhVzFsY3loa2RERXNJR1IwTWlrdWRHOUVkWEpoZEdsdmJpaGJKMmh2ZFhKekp5d2dKMjFwYm5WMFpYTW5MQ0FuYzJWamIyNWtjeWRkS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTWpRc0lHMXBiblYwWlhNNklETTBMQ0J6WldOdmJtUnpPaUEwT1M0eU5UY2dmVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkpiblJsY25aaGJDNW1jbTl0UkdGMFpWUnBiV1Z6S0dSME1Td2daSFF5S1M1MGIwUjFjbUYwYVc5dUtDZHpaV052Ym1Sekp5a3VkRzlQWW1wbFkzUW9LU0F2THowK0lIc2djMlZqYjI1a2N6b2dPRGcwT0RrdU1qVTNJSDFjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSSFZ5WVhScGIyNTlYRzRnSUNBcUwxeHVJQ0IwYjBSMWNtRjBhVzl1S0hWdWFYUXNJRzl3ZEhNcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUVSMWNtRjBhVzl1TG1sdWRtRnNhV1FvZEdocGN5NXBiblpoYkdsa1VtVmhjMjl1S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WlM1a2FXWm1LSFJvYVhNdWN5d2dkVzVwZEN3Z2IzQjBjeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VuVnVJRzFoY0VadUlHOXVJSFJvWlNCcGJuUmxjblpoYkNCemRHRnlkQ0JoYm1RZ1pXNWtMQ0J5WlhSMWNtNXBibWNnWVNCdVpYY2dTVzUwWlhKMllXd2dabkp2YlNCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxjMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UyWjFibU4wYVc5dWZTQnRZWEJHYmx4dUlDQWdLaUJBY21WMGRYSnVJSHRKYm5SbGNuWmhiSDFjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzUwWlhKMllXd3Vabkp2YlVSaGRHVlVhVzFsY3loa2RERXNJR1IwTWlrdWJXRndSVzVrY0c5cGJuUnpLR1Z1WkhCdmFXNTBJRDArSUdWdVpIQnZhVzUwTG5SdlZWUkRLQ2twWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1ZEdWeWRtRnNMbVp5YjIxRVlYUmxWR2x0WlhNb1pIUXhMQ0JrZERJcExtMWhjRVZ1WkhCdmFXNTBjeWhsYm1Sd2IybHVkQ0E5UGlCbGJtUndiMmx1ZEM1d2JIVnpLSHNnYUc5MWNuTTZJRElnZlNrcFhHNGdJQ0FxTDF4dUlDQnRZWEJGYm1Sd2IybHVkSE1vYldGd1JtNHBJSHRjYmlBZ0lDQnlaWFIxY200Z1NXNTBaWEoyWVd3dVpuSnZiVVJoZEdWVWFXMWxjeWh0WVhCR2JpaDBhR2x6TG5NcExDQnRZWEJHYmloMGFHbHpMbVVwS1R0Y2JpQWdmVnh1ZlZ4dUlpd2dJbWx0Y0c5eWRDQkVZWFJsVkdsdFpTQm1jbTl0SUZ3aUxpOWtZWFJsZEdsdFpTNXFjMXdpTzF4dWFXMXdiM0owSUZObGRIUnBibWR6SUdaeWIyMGdYQ0l1TDNObGRIUnBibWR6TG1welhDSTdYRzVwYlhCdmNuUWdURzlqWVd4bElHWnliMjBnWENJdUwybHRjR3d2Ykc5allXeGxMbXB6WENJN1hHNXBiWEJ2Y25RZ1NVRk9RVnB2Ym1VZ1puSnZiU0JjSWk0dmVtOXVaWE12U1VGT1FWcHZibVV1YW5OY0lqdGNibWx0Y0c5eWRDQjdJRzV2Y20xaGJHbDZaVnB2Ym1VZ2ZTQm1jbTl0SUZ3aUxpOXBiWEJzTDNwdmJtVlZkR2xzTG1welhDSTdYRzVjYm1sdGNHOXlkQ0I3SUdoaGMxSmxiR0YwYVhabElIMGdabkp2YlNCY0lpNHZhVzF3YkM5MWRHbHNMbXB6WENJN1hHNWNiaThxS2x4dUlDb2dWR2hsSUVsdVptOGdZMnhoYzNNZ1kyOXVkR0ZwYm5NZ2MzUmhkR2xqSUcxbGRHaHZaSE1nWm05eUlISmxkSEpwWlhacGJtY2daMlZ1WlhKaGJDQjBhVzFsSUdGdVpDQmtZWFJsSUhKbGJHRjBaV1FnWkdGMFlTNGdSbTl5SUdWNFlXMXdiR1VzSUdsMElHaGhjeUJ0WlhSb2IyUnpJR1p2Y2lCbWFXNWthVzVuSUc5MWRDQnBaaUJoSUhScGJXVWdlbTl1WlNCb1lYTWdZU0JFVTFRc0lHWnZjaUJzYVhOMGFXNW5JSFJvWlNCdGIyNTBhSE1nYVc0Z1lXNTVJSE4xY0hCdmNuUmxaQ0JzYjJOaGJHVXNJR0Z1WkNCbWIzSWdaR2x6WTI5MlpYSnBibWNnZDJocFkyZ2diMllnVEhWNGIyNGdabVZoZEhWeVpYTWdZWEpsSUdGMllXbHNZV0pzWlNCcGJpQjBhR1VnWTNWeWNtVnVkQ0JsYm5acGNtOXViV1Z1ZEM1Y2JpQXFMMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdZMnhoYzNNZ1NXNW1ieUI3WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2QyaGxkR2hsY2lCMGFHVWdjM0JsWTJsbWFXVmtJSHB2Ym1VZ1kyOXVkR0ZwYm5NZ1lTQkVVMVF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZGcHZibVY5SUZ0NmIyNWxQU2RzYjJOaGJDZGRJQzBnV205dVpTQjBieUJqYUdWamF5NGdSR1ZtWVhWc2RITWdkRzhnZEdobElHVnVkbWx5YjI1dFpXNTBKM01nYkc5allXd2dlbTl1WlM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJvWVhORVUxUW9lbTl1WlNBOUlGTmxkSFJwYm1kekxtUmxabUYxYkhSYWIyNWxLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NISnZkRzhnUFNCRVlYUmxWR2x0WlM1dWIzY29LUzV6WlhSYWIyNWxLSHB2Ym1VcExuTmxkQ2g3SUcxdmJuUm9PaUF4TWlCOUtUdGNibHh1SUNBZ0lISmxkSFZ5YmlBaGVtOXVaUzVwYzFWdWFYWmxjbk5oYkNBbUppQndjbTkwYnk1dlptWnpaWFFnSVQwOUlIQnliM1J2TG5ObGRDaDdJRzF2Ym5Sb09pQTJJSDBwTG05bVpuTmxkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZDJobGRHaGxjaUIwYUdVZ2MzQmxZMmxtYVdWa0lIcHZibVVnYVhNZ1lTQjJZV3hwWkNCSlFVNUJJSE53WldOcFptbGxjaTVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIcHZibVVnTFNCYWIyNWxJSFJ2SUdOb1pXTnJYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2FYTldZV3hwWkVsQlRrRmFiMjVsS0hwdmJtVXBJSHRjYmlBZ0lDQnlaWFIxY200Z1NVRk9RVnB2Ym1VdWFYTldZV3hwWkZwdmJtVW9lbTl1WlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRITWdkR2hsSUdsdWNIVjBJR2x1ZEc4Z1lTQjdRR3hwYm1zZ1dtOXVaWDBnYVc1emRHRnVZMlV1WEc0Z0lDQXFYRzRnSUNBcUlDb2dTV1lnWUdsdWNIVjBZQ0JwY3lCaGJISmxZV1I1SUdFZ1dtOXVaU0JwYm5OMFlXNWpaU3dnYVhRZ2FYTWdjbVYwZFhKdVpXUWdkVzVqYUdGdVoyVmtMbHh1SUNBZ0tpQXFJRWxtSUdCcGJuQjFkR0FnYVhNZ1lTQnpkSEpwYm1jZ1kyOXVkR0ZwYm1sdVp5QmhJSFpoYkdsa0lIUnBiV1VnZW05dVpTQnVZVzFsTENCaElGcHZibVVnYVc1emRHRnVZMlZjYmlBZ0lDb2dJQ0IzYVhSb0lIUm9ZWFFnYm1GdFpTQnBjeUJ5WlhSMWNtNWxaQzVjYmlBZ0lDb2dLaUJKWmlCZ2FXNXdkWFJnSUdseklHRWdjM1J5YVc1bklIUm9ZWFFnWkc5bGMyNG5kQ0J5WldabGNpQjBieUJoSUd0dWIzZHVJSFJwYldVZ2VtOXVaU3dnWVNCYWIyNWxYRzRnSUNBcUlDQWdhVzV6ZEdGdVkyVWdkMmwwYUNCN1FHeHBibXNnV205dVpTTnBjMVpoYkdsa2ZTQTlQU0JtWVd4elpTQnBjeUJ5WlhSMWNtNWxaQzVjYmlBZ0lDb2dLaUJKWmlCZ2FXNXdkWFFnYVhNZ1lTQnVkVzFpWlhJc0lHRWdXbTl1WlNCcGJuTjBZVzVqWlNCM2FYUm9JSFJvWlNCemNHVmphV1pwWldRZ1ptbDRaV1FnYjJabWMyVjBYRzRnSUNBcUlDQWdhVzRnYldsdWRYUmxjeUJwY3lCeVpYUjFjbTVsWkM1Y2JpQWdJQ29nS2lCSlppQmdhVzV3ZFhSZ0lHbHpJR0J1ZFd4c1lDQnZjaUJnZFc1a1pXWnBibVZrWUN3Z2RHaGxJR1JsWm1GMWJIUWdlbTl1WlNCcGN5QnlaWFIxY201bFpDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ4V205dVpYeHVkVzFpWlhKOUlGdHBibkIxZEYwZ0xTQjBhR1VnZG1Gc2RXVWdkRzhnWW1VZ1kyOXVkbVZ5ZEdWa1hHNGdJQ0FxSUVCeVpYUjFjbTRnZTFwdmJtVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdibTl5YldGc2FYcGxXbTl1WlNocGJuQjFkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnViM0p0WVd4cGVtVmFiMjVsS0dsdWNIVjBMQ0JUWlhSMGFXNW5jeTVrWldaaGRXeDBXbTl1WlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlHRnVJR0Z5Y21GNUlHOW1JSE4wWVc1a1lXeHZibVVnYlc5dWRHZ2dibUZ0WlhNdVhHNGdJQ0FxSUVCelpXVWdhSFIwY0hNNkx5OWtaWFpsYkc5d1pYSXViVzk2YVd4c1lTNXZjbWN2Wlc0dFZWTXZaRzlqY3k5WFpXSXZTbUYyWVZOamNtbHdkQzlTWldabGNtVnVZMlV2UjJ4dlltRnNYMDlpYW1WamRITXZSR0YwWlZScGJXVkdiM0p0WVhSY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRzWlc1bmRHZzlKMnh2Ym1jblhTQXRJSFJvWlNCc1pXNW5kR2dnYjJZZ2RHaGxJRzF2Ym5Sb0lISmxjSEpsYzJWdWRHRjBhVzl1TENCemRXTm9JR0Z6SUZ3aWJuVnRaWEpwWTF3aUxDQmNJakl0WkdsbmFYUmNJaXdnWENKdVlYSnliM2RjSWl3Z1hDSnphRzl5ZEZ3aUxDQmNJbXh2Ym1kY0lseHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbXh2WTJGc1pWMGdMU0IwYUdVZ2JHOWpZV3hsSUdOdlpHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbTUxYldKbGNtbHVaMU41YzNSbGJUMXVkV3hzWFNBdElIUm9aU0J1ZFcxaVpYSnBibWNnYzNsemRHVnRYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOUFltbzliblZzYkYwZ0xTQmhiaUJsZUdsemRHbHVaeUJzYjJOaGJHVWdiMkpxWldOMElIUnZJSFZ6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWIzVjBjSFYwUTJGc1pXNWtZWEk5SjJkeVpXZHZjbmtuWFNBdElIUm9aU0JqWVd4bGJtUmhjbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkpibVp2TG0xdmJuUm9jeWdwV3pCZElDOHZQVDRnSjBwaGJuVmhjbmtuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dWJXOXVkR2h6S0NkemFHOXlkQ2NwV3pCZElDOHZQVDRnSjBwaGJpZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NXNW1ieTV0YjI1MGFITW9KMjUxYldWeWFXTW5LVnN3WFNBdkx6MCtJQ2N4SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JKYm1adkxtMXZiblJvY3lnbmMyaHZjblFuTENCN0lHeHZZMkZzWlRvZ0oyWnlMVU5CSnlCOUlDbGJNRjBnTHk4OVBpQW5hbUZ1ZGk0blhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVsdVptOHViVzl1ZEdoektDZHVkVzFsY21sakp5d2dleUJzYjJOaGJHVTZJQ2RoY2ljZ2ZTbGJNRjBnTHk4OVBpQW5YSFV3TmpZeEoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCSmJtWnZMbTF2Ym5Sb2N5Z25iRzl1Wnljc0lIc2diM1YwY0hWMFEyRnNaVzVrWVhJNklDZHBjMnhoYldsakp5QjlLVnN3WFNBdkx6MCtJQ2RTWVdKcFhIVXdNa0pDSUVrblhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBGeWNtRjVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJRzF2Ym5Sb2N5aGNiaUFnSUNCc1pXNW5kR2dnUFNCY0lteHZibWRjSWl4Y2JpQWdJQ0I3SUd4dlkyRnNaU0E5SUc1MWJHd3NJRzUxYldKbGNtbHVaMU41YzNSbGJTQTlJRzUxYkd3c0lHeHZZMDlpYWlBOUlHNTFiR3dzSUc5MWRIQjFkRU5oYkdWdVpHRnlJRDBnWENKbmNtVm5iM0o1WENJZ2ZTQTlJSHQ5WEc0Z0lDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBb2JHOWpUMkpxSUh4OElFeHZZMkZzWlM1amNtVmhkR1VvYkc5allXeGxMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNJRzkxZEhCMWRFTmhiR1Z1WkdGeUtTa3ViVzl1ZEdoektHeGxibWQwYUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlHRnVJR0Z5Y21GNUlHOW1JR1p2Y20xaGRDQnRiMjUwYUNCdVlXMWxjeTVjYmlBZ0lDb2dSbTl5YldGMElHMXZiblJvY3lCa2FXWm1aWElnWm5KdmJTQnpkR0Z1WkdGc2IyNWxJRzF2Ym5Sb2N5QnBiaUIwYUdGMElIUm9aWGtuY21VZ2JXVmhiblFnZEc4Z1lYQndaV0Z5SUc1bGVIUWdkRzhnZEdobElHUmhlU0J2WmlCMGFHVWdiVzl1ZEdndUlFbHVJSE52YldVZ2JHRnVaM1ZoWjJWekxDQjBhR0YwWEc0Z0lDQXFJR05vWVc1blpYTWdkR2hsSUhOMGNtbHVaeTVjYmlBZ0lDb2dVMlZsSUh0QWJHbHVheUJKYm1adkkyMXZiblJvYzMxY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRzWlc1bmRHZzlKMnh2Ym1jblhTQXRJSFJvWlNCc1pXNW5kR2dnYjJZZ2RHaGxJRzF2Ym5Sb0lISmxjSEpsYzJWdWRHRjBhVzl1TENCemRXTm9JR0Z6SUZ3aWJuVnRaWEpwWTF3aUxDQmNJakl0WkdsbmFYUmNJaXdnWENKdVlYSnliM2RjSWl3Z1hDSnphRzl5ZEZ3aUxDQmNJbXh2Ym1kY0lseHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbXh2WTJGc1pWMGdMU0IwYUdVZ2JHOWpZV3hsSUdOdlpHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbTUxYldKbGNtbHVaMU41YzNSbGJUMXVkV3hzWFNBdElIUm9aU0J1ZFcxaVpYSnBibWNnYzNsemRHVnRYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOUFltbzliblZzYkYwZ0xTQmhiaUJsZUdsemRHbHVaeUJzYjJOaGJHVWdiMkpxWldOMElIUnZJSFZ6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWIzVjBjSFYwUTJGc1pXNWtZWEk5SjJkeVpXZHZjbmtuWFNBdElIUm9aU0JqWVd4bGJtUmhjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdEJjbkpoZVgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCdGIyNTBhSE5HYjNKdFlYUW9YRzRnSUNBZ2JHVnVaM1JvSUQwZ1hDSnNiMjVuWENJc1hHNGdJQ0FnZXlCc2IyTmhiR1VnUFNCdWRXeHNMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMGdQU0J1ZFd4c0xDQnNiMk5QWW1vZ1BTQnVkV3hzTENCdmRYUndkWFJEWVd4bGJtUmhjaUE5SUZ3aVozSmxaMjl5ZVZ3aUlIMGdQU0I3ZlZ4dUlDQXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tHeHZZMDlpYWlCOGZDQk1iMk5oYkdVdVkzSmxZWFJsS0d4dlkyRnNaU3dnYm5WdFltVnlhVzVuVTNsemRHVnRMQ0J2ZFhSd2RYUkRZV3hsYm1SaGNpa3BMbTF2Ym5Sb2N5aHNaVzVuZEdnc0lIUnlkV1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCaGJpQmhjbkpoZVNCdlppQnpkR0Z1WkdGc2IyNWxJSGRsWldzZ2JtRnRaWE11WEc0Z0lDQXFJRUJ6WldVZ2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlYWldJdlNtRjJZVk5qY21sd2RDOVNaV1psY21WdVkyVXZSMnh2WW1Gc1gwOWlhbVZqZEhNdlJHRjBaVlJwYldWR2IzSnRZWFJjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHNaVzVuZEdnOUoyeHZibWNuWFNBdElIUm9aU0JzWlc1bmRHZ2diMllnZEdobElIZGxaV3RrWVhrZ2NtVndjbVZ6Wlc1MFlYUnBiMjRzSUhOMVkyZ2dZWE1nWENKdVlYSnliM2RjSWl3Z1hDSnphRzl5ZEZ3aUxDQmNJbXh2Ym1kY0lpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hScGIyNXpYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVmRJQzBnZEdobElHeHZZMkZzWlNCamIyUmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMDliblZzYkYwZ0xTQjBhR1VnYm5WdFltVnlhVzVuSUhONWMzUmxiVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Ykc5alQySnFQVzUxYkd4ZElDMGdZVzRnWlhocGMzUnBibWNnYkc5allXeGxJRzlpYW1WamRDQjBieUIxYzJWY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NTNaV1ZyWkdGNWN5Z3BXekJkSUM4dlBUNGdKMDF2Ym1SaGVTZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NXNW1ieTUzWldWclpHRjVjeWduYzJodmNuUW5LVnN3WFNBdkx6MCtJQ2ROYjI0blhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVsdVptOHVkMlZsYTJSaGVYTW9KM05vYjNKMEp5d2dleUJzYjJOaGJHVTZJQ2RtY2kxRFFTY2dmU2xiTUYwZ0x5ODlQaUFuYkhWdUxpZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NXNW1ieTUzWldWclpHRjVjeWduYzJodmNuUW5MQ0I3SUd4dlkyRnNaVG9nSjJGeUp5QjlLVnN3WFNBdkx6MCtJQ2RjZFRBMk1qZGNkVEEyTkRSY2RUQTJNamRjZFRBMk1rSmNkVEEyTkRaY2RUQTJORUZjZFRBMk5EWW5YRzRnSUNBcUlFQnlaWFIxY200Z2UwRnljbUY1ZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUhkbFpXdGtZWGx6S0d4bGJtZDBhQ0E5SUZ3aWJHOXVaMXdpTENCN0lHeHZZMkZzWlNBOUlHNTFiR3dzSUc1MWJXSmxjbWx1WjFONWMzUmxiU0E5SUc1MWJHd3NJR3h2WTA5aWFpQTlJRzUxYkd3Z2ZTQTlJSHQ5S1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2hzYjJOUFltb2dmSHdnVEc5allXeGxMbU55WldGMFpTaHNiMk5oYkdVc0lHNTFiV0psY21sdVoxTjVjM1JsYlN3Z2JuVnNiQ2twTG5kbFpXdGtZWGx6S0d4bGJtZDBhQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdGdUlHRnljbUY1SUc5bUlHWnZjbTFoZENCM1pXVnJJRzVoYldWekxseHVJQ0FnS2lCR2IzSnRZWFFnZDJWbGEyUmhlWE1nWkdsbVptVnlJR1p5YjIwZ2MzUmhibVJoYkc5dVpTQjNaV1ZyWkdGNWN5QnBiaUIwYUdGMElIUm9aWGtuY21VZ2JXVmhiblFnZEc4Z1lYQndaV0Z5SUc1bGVIUWdkRzhnYlc5eVpTQmtZWFJsSUdsdVptOXliV0YwYVc5dUxpQkpiaUJ6YjIxbElHeGhibWQxWVdkbGN5d2dkR2hoZEZ4dUlDQWdLaUJqYUdGdVoyVnpJSFJvWlNCemRISnBibWN1WEc0Z0lDQXFJRk5sWlNCN1FHeHBibXNnU1c1bWJ5TjNaV1ZyWkdGNWMzMWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0c1pXNW5kR2c5SjJ4dmJtY25YU0F0SUhSb1pTQnNaVzVuZEdnZ2IyWWdkR2hsSUcxdmJuUm9JSEpsY0hKbGMyVnVkR0YwYVc5dUxDQnpkV05vSUdGeklGd2libUZ5Y205M1hDSXNJRndpYzJodmNuUmNJaXdnWENKc2IyNW5YQ0l1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ2IzQjBhVzl1YzF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWJHOWpZV3hsUFc1MWJHeGRJQzBnZEdobElHeHZZMkZzWlNCamIyUmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMDliblZzYkYwZ0xTQjBhR1VnYm5WdFltVnlhVzVuSUhONWMzUmxiVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Ykc5alQySnFQVzUxYkd4ZElDMGdZVzRnWlhocGMzUnBibWNnYkc5allXeGxJRzlpYW1WamRDQjBieUIxYzJWY2JpQWdJQ29nUUhKbGRIVnliaUI3UVhKeVlYbDlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdkMlZsYTJSaGVYTkdiM0p0WVhRb1hHNGdJQ0FnYkdWdVozUm9JRDBnWENKc2IyNW5YQ0lzWEc0Z0lDQWdleUJzYjJOaGJHVWdQU0J1ZFd4c0xDQnVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BTQnVkV3hzTENCc2IyTlBZbW9nUFNCdWRXeHNJSDBnUFNCN2ZWeHVJQ0FwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR3h2WTA5aWFpQjhmQ0JNYjJOaGJHVXVZM0psWVhSbEtHeHZZMkZzWlN3Z2JuVnRZbVZ5YVc1blUzbHpkR1Z0TENCdWRXeHNLU2t1ZDJWbGEyUmhlWE1vYkdWdVozUm9MQ0IwY25WbEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdZVzRnWVhKeVlYa2diMllnYldWeWFXUnBaVzF6TGx4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxteHZZMkZzWlYwZ0xTQjBhR1VnYkc5allXeGxJR052WkdWY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NXRaWEpwWkdsbGJYTW9LU0F2THowK0lGc2dKMEZOSnl3Z0oxQk5KeUJkWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dWJXVnlhV1JwWlcxektIc2diRzlqWVd4bE9pQW5iWGtuSUgwcElDOHZQVDRnV3lBblhIVXhNREUwWEhVeE1ETTJYSFV4TURFMFhIVXhNREF3WEhVeE1ETkJKeXdnSjF4MU1UQXdRVngxTVRBeE5GeDFNVEF6TVNjZ1hWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ0WlhKcFpHbGxiWE1vZXlCc2IyTmhiR1VnUFNCdWRXeHNJSDBnUFNCN2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCTWIyTmhiR1V1WTNKbFlYUmxLR3h2WTJGc1pTa3ViV1Z5YVdScFpXMXpLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdGdUlHRnljbUY1SUc5bUlHVnlZWE1zSUhOMVkyZ2dZWE1nV3lkQ1F5Y3NJQ2RCUkNkZExpQlVhR1VnYkc5allXeGxJR05oYmlCaVpTQnpjR1ZqYVdacFpXUXNJR0oxZENCMGFHVWdZMkZzWlc1a1lYSWdjM2x6ZEdWdElHbHpJR0ZzZDJGNWN5QkhjbVZuYjNKcFlXNHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmJHVnVaM1JvUFNkemFHOXlkQ2RkSUMwZ2RHaGxJR3hsYm1kMGFDQnZaaUIwYUdVZ1pYSmhJSEpsY0hKbGMyVnVkR0YwYVc5dUxDQnpkV05vSUdGeklGd2ljMmh2Y25SY0lpQnZjaUJjSW14dmJtZGNJaTVjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1c2IyTmhiR1ZkSUMwZ2RHaGxJR3h2WTJGc1pTQmpiMlJsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dVpYSmhjeWdwSUM4dlBUNGdXeUFuUWtNbkxDQW5RVVFuSUYxY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NWxjbUZ6S0Nkc2IyNW5KeWtnTHk4OVBpQmJJQ2RDWldadmNtVWdRMmh5YVhOMEp5d2dKMEZ1Ym04Z1JHOXRhVzVwSnlCZFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVsdVptOHVaWEpoY3lnbmJHOXVaeWNzSUhzZ2JHOWpZV3hsT2lBblpuSW5JSDBwSUM4dlBUNGdXeUFuWVhaaGJuUWdTbHgxTURCRk9YTjFjeTFEYUhKcGMzUW5MQ0FuWVhCeVhIVXdNRVU0Y3lCS1hIVXdNRVU1YzNWekxVTm9jbWx6ZENjZ1hWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJsY21GektHeGxibWQwYUNBOUlGd2ljMmh2Y25SY0lpd2dleUJzYjJOaGJHVWdQU0J1ZFd4c0lIMGdQU0I3ZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJNYjJOaGJHVXVZM0psWVhSbEtHeHZZMkZzWlN3Z2JuVnNiQ3dnWENKbmNtVm5iM0o1WENJcExtVnlZWE1vYkdWdVozUm9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElITmxkQ0J2WmlCaGRtRnBiR0ZpYkdVZ1ptVmhkSFZ5WlhNZ2FXNGdkR2hwY3lCbGJuWnBjbTl1YldWdWRDNWNiaUFnSUNvZ1UyOXRaU0JtWldGMGRYSmxjeUJ2WmlCTWRYaHZiaUJoY21VZ2JtOTBJR0YyWVdsc1lXSnNaU0JwYmlCaGJHd2daVzUyYVhKdmJtMWxiblJ6TGlCR2IzSWdaWGhoYlhCc1pTd2diMjRnYjJ4a1pYSWdZbkp2ZDNObGNuTXNJSEpsYkdGMGFYWmxJSFJwYldVZ1ptOXliV0YwZEdsdVp5QnpkWEJ3YjNKMElHbHpJRzV2ZENCaGRtRnBiR0ZpYkdVdUlGVnpaU0IwYUdseklHWjFibU4wYVc5dUlIUnZJR1pwWjNWeVpTQnZkWFFnYVdZZ2RHaGhkQ2R6SUhSb1pTQmpZWE5sTGx4dUlDQWdLaUJMWlhsek9seHVJQ0FnS2lBcUlHQnlaV3hoZEdsMlpXQTZJSGRvWlhSb1pYSWdkR2hwY3lCbGJuWnBjbTl1YldWdWRDQnpkWEJ3YjNKMGN5QnlaV3hoZEdsMlpTQjBhVzFsSUdadmNtMWhkSFJwYm1kY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NW1aV0YwZFhKbGN5Z3BJQzh2UFQ0Z2V5QnlaV3hoZEdsMlpUb2dabUZzYzJVZ2ZWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UFltcGxZM1I5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm1WaGRIVnlaWE1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJSHNnY21Wc1lYUnBkbVU2SUdoaGMxSmxiR0YwYVhabEtDa2dmVHRjYmlBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCRWRYSmhkR2x2YmlCbWNtOXRJRndpTGk0dlpIVnlZWFJwYjI0dWFuTmNJanRjYmx4dVpuVnVZM1JwYjI0Z1pHRjVSR2xtWmlobFlYSnNhV1Z5TENCc1lYUmxjaWtnZTF4dUlDQmpiMjV6ZENCMWRHTkVZWGxUZEdGeWRDQTlJQ2hrZENrZ1BUNGdaSFF1ZEc5VlZFTW9NQ3dnZXlCclpXVndURzlqWVd4VWFXMWxPaUIwY25WbElIMHBMbk4wWVhKMFQyWW9YQ0prWVhsY0lpa3VkbUZzZFdWUFppZ3BMRnh1SUNBZ0lHMXpJRDBnZFhSalJHRjVVM1JoY25Rb2JHRjBaWElwSUMwZ2RYUmpSR0Y1VTNSaGNuUW9aV0Z5YkdsbGNpazdYRzRnSUhKbGRIVnliaUJOWVhSb0xtWnNiMjl5S0VSMWNtRjBhVzl1TG1aeWIyMU5hV3hzYVhNb2JYTXBMbUZ6S0Z3aVpHRjVjMXdpS1NrN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdocFoyaFBjbVJsY2tScFptWnpLR04xY25OdmNpd2diR0YwWlhJc0lIVnVhWFJ6S1NCN1hHNGdJR052Ym5OMElHUnBabVpsY25NZ1BTQmJYRzRnSUNBZ1cxd2llV1ZoY25OY0lpd2dLR0VzSUdJcElEMCtJR0l1ZVdWaGNpQXRJR0V1ZVdWaGNsMHNYRzRnSUNBZ1cxd2ljWFZoY25SbGNuTmNJaXdnS0dFc0lHSXBJRDArSUdJdWNYVmhjblJsY2lBdElHRXVjWFZoY25SbGNsMHNYRzRnSUNBZ1cxd2liVzl1ZEdoelhDSXNJQ2hoTENCaUtTQTlQaUJpTG0xdmJuUm9JQzBnWVM1dGIyNTBhQ0FySUNoaUxubGxZWElnTFNCaExubGxZWElwSUNvZ01USmRMRnh1SUNBZ0lGdGNiaUFnSUNBZ0lGd2lkMlZsYTNOY0lpeGNiaUFnSUNBZ0lDaGhMQ0JpS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhlWE1nUFNCa1lYbEVhV1ptS0dFc0lHSXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdLR1JoZVhNZ0xTQW9aR0Y1Y3lBbElEY3BLU0F2SURjN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUYwc1hHNGdJQ0FnVzF3aVpHRjVjMXdpTENCa1lYbEVhV1ptWFN4Y2JpQWdYVHRjYmx4dUlDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ2UzMDdYRzRnSUd4bGRDQnNiM2RsYzNSUGNtUmxjaXdnYUdsbmFGZGhkR1Z5TzF4dVhHNGdJR1p2Y2lBb1kyOXVjM1FnVzNWdWFYUXNJR1JwWm1abGNsMGdiMllnWkdsbVptVnljeWtnZTF4dUlDQWdJR2xtSUNoMWJtbDBjeTVwYm1SbGVFOW1LSFZ1YVhRcElENDlJREFwSUh0Y2JpQWdJQ0FnSUd4dmQyVnpkRTl5WkdWeUlEMGdkVzVwZER0Y2JseHVJQ0FnSUNBZ2JHVjBJR1JsYkhSaElEMGdaR2xtWm1WeUtHTjFjbk52Y2l3Z2JHRjBaWElwTzF4dUlDQWdJQ0FnYUdsbmFGZGhkR1Z5SUQwZ1kzVnljMjl5TG5Cc2RYTW9leUJiZFc1cGRGMDZJR1JsYkhSaElIMHBPMXh1WEc0Z0lDQWdJQ0JwWmlBb2FHbG5hRmRoZEdWeUlENGdiR0YwWlhJcElIdGNiaUFnSUNBZ0lDQWdZM1Z5YzI5eUlEMGdZM1Z5YzI5eUxuQnNkWE1vZXlCYmRXNXBkRjA2SUdSbGJIUmhJQzBnTVNCOUtUdGNiaUFnSUNBZ0lDQWdaR1ZzZEdFZ0xUMGdNVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR04xY25OdmNpQTlJR2hwWjJoWFlYUmxjanRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WemRXeDBjMXQxYm1sMFhTQTlJR1JsYkhSaE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCYlkzVnljMjl5TENCeVpYTjFiSFJ6TENCb2FXZG9WMkYwWlhJc0lHeHZkMlZ6ZEU5eVpHVnlYVHRjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1puVnVZM1JwYjI0Z0tHVmhjbXhwWlhJc0lHeGhkR1Z5TENCMWJtbDBjeXdnYjNCMGN5a2dlMXh1SUNCc1pYUWdXMk4xY25OdmNpd2djbVZ6ZFd4MGN5d2dhR2xuYUZkaGRHVnlMQ0JzYjNkbGMzUlBjbVJsY2wwZ1BTQm9hV2RvVDNKa1pYSkVhV1ptY3lobFlYSnNhV1Z5TENCc1lYUmxjaXdnZFc1cGRITXBPMXh1WEc0Z0lHTnZibk4wSUhKbGJXRnBibWx1WjAxcGJHeHBjeUE5SUd4aGRHVnlJQzBnWTNWeWMyOXlPMXh1WEc0Z0lHTnZibk4wSUd4dmQyVnlUM0prWlhKVmJtbDBjeUE5SUhWdWFYUnpMbVpwYkhSbGNpaGNiaUFnSUNBb2RTa2dQVDRnVzF3aWFHOTFjbk5jSWl3Z1hDSnRhVzUxZEdWelhDSXNJRndpYzJWamIyNWtjMXdpTENCY0ltMXBiR3hwYzJWamIyNWtjMXdpWFM1cGJtUmxlRTltS0hVcElENDlJREJjYmlBZ0tUdGNibHh1SUNCcFppQW9iRzkzWlhKUGNtUmxjbFZ1YVhSekxteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJR2xtSUNob2FXZG9WMkYwWlhJZ1BDQnNZWFJsY2lrZ2UxeHVJQ0FnSUNBZ2FHbG5hRmRoZEdWeUlEMGdZM1Z5YzI5eUxuQnNkWE1vZXlCYmJHOTNaWE4wVDNKa1pYSmRPaUF4SUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaG9hV2RvVjJGMFpYSWdJVDA5SUdOMWNuTnZjaWtnZTF4dUlDQWdJQ0FnY21WemRXeDBjMXRzYjNkbGMzUlBjbVJsY2wwZ1BTQW9jbVZ6ZFd4MGMxdHNiM2RsYzNSUGNtUmxjbDBnZkh3Z01Da2dLeUJ5WlcxaGFXNXBibWROYVd4c2FYTWdMeUFvYUdsbmFGZGhkR1Z5SUMwZ1kzVnljMjl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0JrZFhKaGRHbHZiaUE5SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2NtVnpkV3gwY3l3Z2IzQjBjeWs3WEc1Y2JpQWdhV1lnS0d4dmQyVnlUM0prWlhKVmJtbDBjeTVzWlc1bmRHZ2dQaUF3S1NCN1hHNGdJQ0FnY21WMGRYSnVJRVIxY21GMGFXOXVMbVp5YjIxTmFXeHNhWE1vY21WdFlXbHVhVzVuVFdsc2JHbHpMQ0J2Y0hSektWeHVJQ0FnSUNBZ0xuTm9hV1owVkc4b0xpNHViRzkzWlhKUGNtUmxjbFZ1YVhSektWeHVJQ0FnSUNBZ0xuQnNkWE1vWkhWeVlYUnBiMjRwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJrZFhKaGRHbHZianRjYmlBZ2ZWeHVmVnh1SWl3Z0ltTnZibk4wSUc1MWJXSmxjbWx1WjFONWMzUmxiWE1nUFNCN1hHNGdJR0Z5WVdJNklGd2lXMXhjZFRBMk5qQXRYRngxTURZMk9WMWNJaXhjYmlBZ1lYSmhZbVY0ZERvZ1hDSmJYRngxTURaR01DMWNYSFV3TmtZNVhWd2lMRnh1SUNCaVlXeHBPaUJjSWx0Y1hIVXhRalV3TFZ4Y2RURkNOVGxkWENJc1hHNGdJR0psYm1jNklGd2lXMXhjZFRBNVJUWXRYRngxTURsRlJsMWNJaXhjYmlBZ1pHVjJZVG9nWENKYlhGeDFNRGsyTmkxY1hIVXdPVFpHWFZ3aUxGeHVJQ0JtZFd4c2QybGtaVG9nWENKYlhGeDFSa1l4TUMxY1hIVkdSakU1WFZ3aUxGeHVJQ0JuZFdweU9pQmNJbHRjWEhVd1FVVTJMVnhjZFRCQlJVWmRYQ0lzWEc0Z0lHaGhibWxrWldNNklGd2lXMXgxTXpBd04zeGNkVFJGTURCOFhIVTBSVGhEZkZ4MU5FVXdPWHhjZFRVMlJFSjhYSFUwUlRrMGZGeDFOVEUyUkh4Y2RUUkZNRE44WEhVMU1UWkNmRngxTkVVMVJGMWNJaXhjYmlBZ2EyaHRjam9nWENKYlhGeDFNVGRGTUMxY1hIVXhOMFU1WFZ3aUxGeHVJQ0JyYm1SaE9pQmNJbHRjWEhVd1EwVTJMVnhjZFRCRFJVWmRYQ0lzWEc0Z0lHeGhiMjg2SUZ3aVcxeGNkVEJGUkRBdFhGeDFNRVZFT1YxY0lpeGNiaUFnYkdsdFlqb2dYQ0piWEZ4MU1UazBOaTFjWEhVeE9UUkdYVndpTEZ4dUlDQnRiSGx0T2lCY0lsdGNYSFV3UkRZMkxWeGNkVEJFTmtaZFhDSXNYRzRnSUcxdmJtYzZJRndpVzF4Y2RURTRNVEF0WEZ4MU1UZ3hPVjFjSWl4Y2JpQWdiWGx0Y2pvZ1hDSmJYRngxTVRBME1DMWNYSFV4TURRNVhWd2lMRnh1SUNCdmNubGhPaUJjSWx0Y1hIVXdRalkyTFZ4Y2RUQkNOa1pkWENJc1hHNGdJSFJoYld4a1pXTTZJRndpVzF4Y2RUQkNSVFl0WEZ4MU1FSkZSbDFjSWl4Y2JpQWdkR1ZzZFRvZ1hDSmJYRngxTUVNMk5pMWNYSFV3UXpaR1hWd2lMRnh1SUNCMGFHRnBPaUJjSWx0Y1hIVXdSVFV3TFZ4Y2RUQkZOVGxkWENJc1hHNGdJSFJwWW5RNklGd2lXMXhjZFRCR01qQXRYRngxTUVZeU9WMWNJaXhjYmlBZ2JHRjBiam9nWENKY1hGeGNaRndpTEZ4dWZUdGNibHh1WTI5dWMzUWdiblZ0WW1WeWFXNW5VM2x6ZEdWdGMxVlVSakUySUQwZ2UxeHVJQ0JoY21GaU9pQmJNVFl6TWl3Z01UWTBNVjBzWEc0Z0lHRnlZV0psZUhRNklGc3hOemMyTENBeE56ZzFYU3hjYmlBZ1ltRnNhVG9nV3pZNU9USXNJRGN3TURGZExGeHVJQ0JpWlc1bk9pQmJNalV6TkN3Z01qVTBNMTBzWEc0Z0lHUmxkbUU2SUZzeU5EQTJMQ0F5TkRFMVhTeGNiaUFnWm5Wc2JIZHBaR1U2SUZzMk5USTVOaXdnTmpVek1ETmRMRnh1SUNCbmRXcHlPaUJiTWpjNU1Dd2dNamM1T1Ywc1hHNGdJR3RvYlhJNklGczJNVEV5TENBMk1USXhYU3hjYmlBZ2EyNWtZVG9nV3pNek1ESXNJRE16TVRGZExGeHVJQ0JzWVc5dk9pQmJNemM1TWl3Z016Z3dNVjBzWEc0Z0lHeHBiV0k2SUZzMk5EY3dMQ0EyTkRjNVhTeGNiaUFnYld4NWJUb2dXek0wTXpBc0lETTBNemxkTEZ4dUlDQnRiMjVuT2lCYk5qRTJNQ3dnTmpFMk9WMHNYRzRnSUcxNWJYSTZJRnMwTVRZd0xDQTBNVFk1WFN4Y2JpQWdiM0o1WVRvZ1d6STVNVGdzSURJNU1qZGRMRnh1SUNCMFlXMXNaR1ZqT2lCYk16QTBOaXdnTXpBMU5WMHNYRzRnSUhSbGJIVTZJRnN6TVRjMExDQXpNVGd6WFN4Y2JpQWdkR2hoYVRvZ1d6TTJOalFzSURNMk56TmRMRnh1SUNCMGFXSjBPaUJiTXpnM01pd2dNemc0TVYwc1hHNTlPMXh1WEc1amIyNXpkQ0JvWVc1cFpHVmpRMmhoY25NZ1BTQnVkVzFpWlhKcGJtZFRlWE4wWlcxekxtaGhibWxrWldNdWNtVndiR0ZqWlNndlcxeGNXM3hjWEYxZEwyY3NJRndpWENJcExuTndiR2wwS0Z3aVhDSXBPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVkVhV2RwZEhNb2MzUnlLU0I3WEc0Z0lHeGxkQ0IyWVd4MVpTQTlJSEJoY25ObFNXNTBLSE4wY2l3Z01UQXBPMXh1SUNCcFppQW9hWE5PWVU0b2RtRnNkV1VwS1NCN1hHNGdJQ0FnZG1Gc2RXVWdQU0JjSWx3aU8xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MzUnlMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJSbElEMGdjM1J5TG1Ob1lYSkRiMlJsUVhRb2FTazdYRzVjYmlBZ0lDQWdJR2xtSUNoemRISmJhVjB1YzJWaGNtTm9LRzUxYldKbGNtbHVaMU41YzNSbGJYTXVhR0Z1YVdSbFl5a2dJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJSFpoYkhWbElDczlJR2hoYm1sa1pXTkRhR0Z5Y3k1cGJtUmxlRTltS0hOMGNsdHBYU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUd0bGVTQnBiaUJ1ZFcxaVpYSnBibWRUZVhOMFpXMXpWVlJHTVRZcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmJiV2x1TENCdFlYaGRJRDBnYm5WdFltVnlhVzVuVTNsemRHVnRjMVZVUmpFMlcydGxlVjA3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR052WkdVZ1BqMGdiV2x1SUNZbUlHTnZaR1VnUEQwZ2JXRjRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlNBclBTQmpiMlJsSUMwZ2JXbHVPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjR0Z5YzJWSmJuUW9kbUZzZFdVc0lERXdLVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHUnBaMmwwVW1WblpYZ29leUJ1ZFcxaVpYSnBibWRUZVhOMFpXMGdmU3dnWVhCd1pXNWtJRDBnWENKY0lpa2dlMXh1SUNCeVpYUjFjbTRnYm1WM0lGSmxaMFY0Y0NoZ0pIdHVkVzFpWlhKcGJtZFRlWE4wWlcxelcyNTFiV0psY21sdVoxTjVjM1JsYlNCOGZDQmNJbXhoZEc1Y0lsMTlKSHRoY0hCbGJtUjlZQ2s3WEc1OVhHNGlMQ0FpYVcxd2IzSjBJSHNnY0dGeWMyVk5hV3hzYVhNc0lHbHpWVzVrWldacGJtVmtMQ0IxYm5SeWRXNWpZWFJsV1dWaGNpd2djMmxuYm1Wa1QyWm1jMlYwTENCb1lYTlBkMjVRY205d1pYSjBlU0I5SUdaeWIyMGdYQ0l1TDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENCR2IzSnRZWFIwWlhJZ1puSnZiU0JjSWk0dlptOXliV0YwZEdWeUxtcHpYQ0k3WEc1cGJYQnZjblFnUm1sNFpXUlBabVp6WlhSYWIyNWxJR1p5YjIwZ1hDSXVMaTk2YjI1bGN5OW1hWGhsWkU5bVpuTmxkRnB2Ym1VdWFuTmNJanRjYm1sdGNHOXlkQ0JKUVU1QldtOXVaU0JtY205dElGd2lMaTR2ZW05dVpYTXZTVUZPUVZwdmJtVXVhbk5jSWp0Y2JtbHRjRzl5ZENCRVlYUmxWR2x0WlNCbWNtOXRJRndpTGk0dlpHRjBaWFJwYldVdWFuTmNJanRjYm1sdGNHOXlkQ0I3SUdScFoybDBVbVZuWlhnc0lIQmhjbk5sUkdsbmFYUnpJSDBnWm5KdmJTQmNJaTR2WkdsbmFYUnpMbXB6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjVtYkdsamRHbHVaMU53WldOcFptbGpZWFJwYjI1RmNuSnZjaUI5SUdaeWIyMGdYQ0l1TGk5bGNuSnZjbk11YW5OY0lqdGNibHh1WTI5dWMzUWdUVWxUVTBsT1IxOUdWRkFnUFNCY0ltMXBjM05wYm1jZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDNW1iM0p0WVhSVWIxQmhjblJ6SUhOMWNIQnZjblJjSWp0Y2JseHVablZ1WTNScGIyNGdhVzUwVlc1cGRDaHlaV2RsZUN3Z2NHOXpkQ0E5SUNocEtTQTlQaUJwS1NCN1hHNGdJSEpsZEhWeWJpQjdJSEpsWjJWNExDQmtaWE5sY2pvZ0tGdHpYU2tnUFQ0Z2NHOXpkQ2h3WVhKelpVUnBaMmwwY3loektTa2dmVHRjYm4xY2JseHVZMjl1YzNRZ1RrSlRVQ0E5SUZOMGNtbHVaeTVtY205dFEyaGhja052WkdVb01UWXdLVHRjYm1OdmJuTjBJSE53WVdObFQzSk9RbE5RSUQwZ1lGc2dKSHRPUWxOUWZWMWdPMXh1WTI5dWMzUWdjM0JoWTJWUGNrNUNVMUJTWldkRmVIQWdQU0J1WlhjZ1VtVm5SWGh3S0hOd1lXTmxUM0pPUWxOUUxDQmNJbWRjSWlrN1hHNWNibVoxYm1OMGFXOXVJR1pwZUV4cGMzUlNaV2RsZUNoektTQjdYRzRnSUM4dklHMWhhMlVnWkc5MGN5QnZjSFJwYjI1aGJDQmhibVFnWVd4emJ5QnRZV3RsSUhSb1pXMGdiR2wwWlhKaGJGeHVJQ0F2THlCdFlXdGxJSE53WVdObElHRnVaQ0J1YjI0Z1luSmxZV3RoWW14bElITndZV05sSUdOb1lYSmhZM1JsY25NZ2FXNTBaWEpqYUdGdVoyVmhZbXhsWEc0Z0lISmxkSFZ5YmlCekxuSmxjR3hoWTJVb0wxeGNMaTluTENCY0lseGNYRnd1UDF3aUtTNXlaWEJzWVdObEtITndZV05sVDNKT1FsTlFVbVZuUlhod0xDQnpjR0ZqWlU5eVRrSlRVQ2s3WEc1OVhHNWNibVoxYm1OMGFXOXVJSE4wY21sd1NXNXpaVzV6YVhScGRtbDBhV1Z6S0hNcElIdGNiaUFnY21WMGRYSnVJSE5jYmlBZ0lDQXVjbVZ3YkdGalpTZ3ZYRnd1TDJjc0lGd2lYQ0lwSUM4dklHbG5ibTl5WlNCa2IzUnpJSFJvWVhRZ2QyVnlaU0J0WVdSbElHOXdkR2x2Ym1Gc1hHNGdJQ0FnTG5KbGNHeGhZMlVvYzNCaFkyVlBjazVDVTFCU1pXZEZlSEFzSUZ3aUlGd2lLU0F2THlCcGJuUmxjbU5vWVc1blpTQnpjR0ZqWlNCaGJtUWdibUp6Y0Z4dUlDQWdJQzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCdmJtVlBaaWh6ZEhKcGJtZHpMQ0J6ZEdGeWRFbHVaR1Y0S1NCN1hHNGdJR2xtSUNoemRISnBibWR6SUQwOVBTQnVkV3hzS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUhKbFoyVjRPaUJTWldkRmVIQW9jM1J5YVc1bmN5NXRZWEFvWm1sNFRHbHpkRkpsWjJWNEtTNXFiMmx1S0Z3aWZGd2lLU2tzWEc0Z0lDQWdJQ0JrWlhObGNqb2dLRnR6WFNrZ1BUNWNiaUFnSUNBZ0lDQWdjM1J5YVc1bmN5NW1hVzVrU1c1a1pYZ29LR2twSUQwK0lITjBjbWx3U1c1elpXNXphWFJwZG1sMGFXVnpLSE1wSUQwOVBTQnpkSEpwY0VsdWMyVnVjMmwwYVhacGRHbGxjeWhwS1NrZ0t5QnpkR0Z5ZEVsdVpHVjRMRnh1SUNBZ0lIMDdYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnYjJabWMyVjBLSEpsWjJWNExDQm5jbTkxY0hNcElIdGNiaUFnY21WMGRYSnVJSHNnY21WblpYZ3NJR1JsYzJWeU9pQW9XeXdnYUN3Z2JWMHBJRDArSUhOcFoyNWxaRTltWm5ObGRDaG9MQ0J0S1N3Z1ozSnZkWEJ6SUgwN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhOcGJYQnNaU2h5WldkbGVDa2dlMXh1SUNCeVpYUjFjbTRnZXlCeVpXZGxlQ3dnWkdWelpYSTZJQ2hiYzEwcElEMCtJSE1nZlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWlhOallYQmxWRzlyWlc0b2RtRnNkV1VwSUh0Y2JpQWdjbVYwZFhKdUlIWmhiSFZsTG5KbGNHeGhZMlVvTDF0Y1hDMWNYRnRjWEYxN2ZTZ3BLaXMvTGl4Y1hGeGNYRnhlSkh3alhGeHpYUzluTENCY0lseGNYRndrSmx3aUtUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2RXNXBkRVp2Y2xSdmEyVnVLSFJ2YTJWdUxDQnNiMk1wSUh0Y2JpQWdZMjl1YzNRZ2IyNWxJRDBnWkdsbmFYUlNaV2RsZUNoc2IyTXBMRnh1SUNBZ0lIUjNieUE5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zeWZWd2lLU3hjYmlBZ0lDQjBhSEpsWlNBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luc3pmVndpS1N4Y2JpQWdJQ0JtYjNWeUlEMGdaR2xuYVhSU1pXZGxlQ2hzYjJNc0lGd2llelI5WENJcExGeHVJQ0FnSUhOcGVDQTlJR1JwWjJsMFVtVm5aWGdvYkc5akxDQmNJbnMyZlZ3aUtTeGNiaUFnSUNCdmJtVlBjbFIzYnlBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luc3hMREo5WENJcExGeHVJQ0FnSUc5dVpWUnZWR2h5WldVZ1BTQmthV2RwZEZKbFoyVjRLR3h2WXl3Z1hDSjdNU3d6ZlZ3aUtTeGNiaUFnSUNCdmJtVlViMU5wZUNBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luc3hMRFo5WENJcExGeHVJQ0FnSUc5dVpWUnZUbWx1WlNBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luc3hMRGw5WENJcExGeHVJQ0FnSUhSM2IxUnZSbTkxY2lBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luc3lMRFI5WENJcExGeHVJQ0FnSUdadmRYSlViMU5wZUNBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luczBMRFo5WENJcExGeHVJQ0FnSUd4cGRHVnlZV3dnUFNBb2RDa2dQVDRnS0hzZ2NtVm5aWGc2SUZKbFowVjRjQ2hsYzJOaGNHVlViMnRsYmloMExuWmhiQ2twTENCa1pYTmxjam9nS0Z0elhTa2dQVDRnY3l3Z2JHbDBaWEpoYkRvZ2RISjFaU0I5S1N4Y2JpQWdJQ0IxYm1sMFlYUmxJRDBnS0hRcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNoMGIydGxiaTVzYVhSbGNtRnNLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJzYVhSbGNtRnNLSFFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYzNkcGRHTm9JQ2gwTG5aaGJDa2dlMXh1SUNBZ0lDQWdJQ0F2THlCbGNtRmNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lrZGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG1WeVlYTW9YQ0p6YUc5eWRGd2lMQ0JtWVd4elpTa3NJREFwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpUjBkY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMjVsVDJZb2JHOWpMbVZ5WVhNb1hDSnNiMjVuWENJc0lHWmhiSE5sS1N3Z01DazdYRzRnSUNBZ0lDQWdJQzh2SUhsbFlYSnpYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSjVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvYjI1bFZHOVRhWGdwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpZVhsY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaDBkMjlVYjBadmRYSXNJSFZ1ZEhKMWJtTmhkR1ZaWldGeUtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lubDVlWGxjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENobWIzVnlLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbmw1ZVhsNVhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1ZEZWdWFYUW9abTkxY2xSdlUybDRLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbmw1ZVhsNWVWd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLSE5wZUNrN1hHNGdJQ0FnSUNBZ0lDOHZJRzF2Ym5Sb2MxeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVRWd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLRzl1WlU5eVZIZHZLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJazFOWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2RIZHZLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJazFOVFZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnZibVZQWmloc2IyTXViVzl1ZEdoektGd2ljMmh2Y25SY0lpd2dkSEoxWlN3Z1ptRnNjMlVwTENBeEtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lrMU5UVTFjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyNWxUMllvYkc5akxtMXZiblJvY3loY0lteHZibWRjSWl3Z2RISjFaU3dnWm1Gc2MyVXBMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSWt4Y0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaHZibVZQY2xSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSk1URndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJuUlZibWwwS0hSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSk1URXhjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyNWxUMllvYkc5akxtMXZiblJvY3loY0luTm9iM0owWENJc0lHWmhiSE5sTENCbVlXeHpaU2tzSURFcE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVRFeE1URndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdmJtVlBaaWhzYjJNdWJXOXVkR2h6S0Z3aWJHOXVaMXdpTENCbVlXeHpaU3dnWm1Gc2MyVXBMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ0x5OGdaR0YwWlhOY2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaHZibVZQY2xSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSmtaRndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJuUlZibWwwS0hSM2J5azdYRzRnSUNBZ0lDQWdJQzh2SUc5eVpHbHVZV3h6WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0p2WENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2IyNWxWRzlVYUhKbFpTazdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSnZiMjljSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENoMGFISmxaU2s3WEc0Z0lDQWdJQ0FnSUM4dklIUnBiV1ZjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJa2hJWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2RIZHZLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJa2hjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENodmJtVlBjbFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKb2FGd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLSFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKb1hDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1ZEZWdWFYUW9iMjVsVDNKVWQyOHBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2liVzFjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENoMGQyOHBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2liVndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJuUlZibWwwS0c5dVpVOXlWSGR2S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW5GY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaHZibVZQY2xSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSnhjVndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJuUlZibWwwS0hSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSnpYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvYjI1bFQzSlVkMjhwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpYzNOY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaDBkMjhwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpVTF3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblJWYm1sMEtHOXVaVlJ2VkdoeVpXVXBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lVMU5UWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2RHaHlaV1VwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpZFZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnphVzF3YkdVb2IyNWxWRzlPYVc1bEtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0luVjFYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOcGJYQnNaU2h2Ym1WUGNsUjNieWs3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0oxZFhWY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUwVlc1cGRDaHZibVVwTzF4dUlDQWdJQ0FnSUNBdkx5QnRaWEpwWkdsbGJWeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVlWd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2Ym1WUFppaHNiMk11YldWeWFXUnBaVzF6S0Nrc0lEQXBPMXh1SUNBZ0lDQWdJQ0F2THlCM1pXVnJXV1ZoY2lBb2F5bGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0ltdHJhMnRjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENobWIzVnlLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbXRyWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2RIZHZWRzlHYjNWeUxDQjFiblJ5ZFc1allYUmxXV1ZoY2lrN1hHNGdJQ0FnSUNBZ0lDOHZJSGRsWld0T2RXMWlaWElnS0ZjcFhHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKWFhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1ZEZWdWFYUW9iMjVsVDNKVWQyOHBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lWMWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENoMGQyOHBPMXh1SUNBZ0lDQWdJQ0F2THlCM1pXVnJaR0Y1YzF4dUlDQWdJQ0FnSUNCallYTmxJRndpUlZ3aU9seHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVkxd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLRzl1WlNrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKRlJVVmNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG5kbFpXdGtZWGx6S0Z3aWMyaHZjblJjSWl3Z1ptRnNjMlVzSUdaaGJITmxLU3dnTVNrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKRlJVVkZYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5dVpVOW1LR3h2WXk1M1pXVnJaR0Y1Y3loY0lteHZibWRjSWl3Z1ptRnNjMlVzSUdaaGJITmxLU3dnTVNrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKalkyTmNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG5kbFpXdGtZWGx6S0Z3aWMyaHZjblJjSWl3Z2RISjFaU3dnWm1Gc2MyVXBMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW1OalkyTmNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG5kbFpXdGtZWGx6S0Z3aWJHOXVaMXdpTENCMGNuVmxMQ0JtWVd4elpTa3NJREVwTzF4dUlDQWdJQ0FnSUNBdkx5QnZabVp6WlhRdmVtOXVaVnh1SUNBZ0lDQWdJQ0JqWVhObElGd2lXbHdpT2x4dUlDQWdJQ0FnSUNCallYTmxJRndpV2xwY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMlptYzJWMEtHNWxkeUJTWldkRmVIQW9ZQ2hiS3kxZEpIdHZibVZQY2xSM2J5NXpiM1Z5WTJWOUtTZy9Pam9vSkh0MGQyOHVjMjkxY21ObGZTa3BQMkFwTENBeUtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lscGFXbHdpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdlptWnpaWFFvYm1WM0lGSmxaMFY0Y0NoZ0tGc3JMVjBrZTI5dVpVOXlWSGR2TG5OdmRYSmpaWDBwS0NSN2RIZHZMbk52ZFhKalpYMHBQMkFwTENBeUtUdGNiaUFnSUNBZ0lDQWdMeThnZDJVZ1pHOXVKM1FnYzNWd2NHOXlkQ0JhV2xwYUlDaFFVMVFwSUc5eUlGcGFXbHBhSUNoUVlXTnBabWxqSUZOMFlXNWtZWEprSUZScGJXVXBJR2x1SUhCaGNuTnBibWRjYmlBZ0lDQWdJQ0FnTHk4Z1ltVmpZWFZ6WlNCM1pTQmtiMjRuZENCb1lYWmxJR0Z1ZVNCM1lYa2dkRzhnWm1sbmRYSmxJRzkxZENCM2FHRjBJSFJvWlhrZ1lYSmxYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSjZYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOcGJYQnNaU2d2VzJFdGVsOHJMUzlkZXpFc01qVTJmVDh2YVNrN1hHNGdJQ0FnSUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHeHBkR1Z5WVd3b2RDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZUdGNibHh1SUNCamIyNXpkQ0IxYm1sMElEMGdkVzVwZEdGMFpTaDBiMnRsYmlrZ2ZId2dlMXh1SUNBZ0lHbHVkbUZzYVdSU1pXRnpiMjQ2SUUxSlUxTkpUa2RmUmxSUUxGeHVJQ0I5TzF4dVhHNGdJSFZ1YVhRdWRHOXJaVzRnUFNCMGIydGxianRjYmx4dUlDQnlaWFIxY200Z2RXNXBkRHRjYm4xY2JseHVZMjl1YzNRZ2NHRnlkRlI1Y0dWVGRIbHNaVlJ2Vkc5clpXNVdZV3dnUFNCN1hHNGdJSGxsWVhJNklIdGNiaUFnSUNCY0lqSXRaR2xuYVhSY0lqb2dYQ0o1ZVZ3aUxGeHVJQ0FnSUc1MWJXVnlhV002SUZ3aWVYbDVlWGxjSWl4Y2JpQWdmU3hjYmlBZ2JXOXVkR2c2SUh0Y2JpQWdJQ0J1ZFcxbGNtbGpPaUJjSWsxY0lpeGNiaUFnSUNCY0lqSXRaR2xuYVhSY0lqb2dYQ0pOVFZ3aUxGeHVJQ0FnSUhOb2IzSjBPaUJjSWsxTlRWd2lMRnh1SUNBZ0lHeHZibWM2SUZ3aVRVMU5UVndpTEZ4dUlDQjlMRnh1SUNCa1lYazZJSHRjYmlBZ0lDQnVkVzFsY21sak9pQmNJbVJjSWl4Y2JpQWdJQ0JjSWpJdFpHbG5hWFJjSWpvZ1hDSmtaRndpTEZ4dUlDQjlMRnh1SUNCM1pXVnJaR0Y1T2lCN1hHNGdJQ0FnYzJodmNuUTZJRndpUlVWRlhDSXNYRzRnSUNBZ2JHOXVaem9nWENKRlJVVkZYQ0lzWEc0Z0lIMHNYRzRnSUdSaGVYQmxjbWx2WkRvZ1hDSmhYQ0lzWEc0Z0lHUmhlVkJsY21sdlpEb2dYQ0poWENJc1hHNGdJR2h2ZFhJNklIdGNiaUFnSUNCdWRXMWxjbWxqT2lCY0ltaGNJaXhjYmlBZ0lDQmNJakl0WkdsbmFYUmNJam9nWENKb2FGd2lMRnh1SUNCOUxGeHVJQ0J0YVc1MWRHVTZJSHRjYmlBZ0lDQnVkVzFsY21sak9pQmNJbTFjSWl4Y2JpQWdJQ0JjSWpJdFpHbG5hWFJjSWpvZ1hDSnRiVndpTEZ4dUlDQjlMRnh1SUNCelpXTnZibVE2SUh0Y2JpQWdJQ0J1ZFcxbGNtbGpPaUJjSW5OY0lpeGNiaUFnSUNCY0lqSXRaR2xuYVhSY0lqb2dYQ0p6YzF3aUxGeHVJQ0I5TEZ4dWZUdGNibHh1Wm5WdVkzUnBiMjRnZEc5clpXNUdiM0pRWVhKMEtIQmhjblFzSUd4dlkyRnNaU3dnWm05eWJXRjBUM0IwY3lrZ2UxeHVJQ0JqYjI1emRDQjdJSFI1Y0dVc0lIWmhiSFZsSUgwZ1BTQndZWEowTzF4dVhHNGdJR2xtSUNoMGVYQmxJRDA5UFNCY0lteHBkR1Z5WVd4Y0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCc2FYUmxjbUZzT2lCMGNuVmxMRnh1SUNBZ0lDQWdkbUZzT2lCMllXeDFaU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjM1I1YkdVZ1BTQm1iM0p0WVhSUGNIUnpXM1I1Y0dWZE8xeHVYRzRnSUd4bGRDQjJZV3dnUFNCd1lYSjBWSGx3WlZOMGVXeGxWRzlVYjJ0bGJsWmhiRnQwZVhCbFhUdGNiaUFnYVdZZ0tIUjVjR1Z2WmlCMllXd2dQVDA5SUZ3aWIySnFaV04wWENJcElIdGNiaUFnSUNCMllXd2dQU0IyWVd4YmMzUjViR1ZkTzF4dUlDQjlYRzVjYmlBZ2FXWWdLSFpoYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JzYVhSbGNtRnNPaUJtWVd4elpTeGNiaUFnSUNBZ0lIWmhiQ3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYm4xY2JseHVablZ1WTNScGIyNGdZblZwYkdSU1pXZGxlQ2gxYm1sMGN5a2dlMXh1SUNCamIyNXpkQ0J5WlNBOUlIVnVhWFJ6TG0xaGNDZ29kU2tnUFQ0Z2RTNXlaV2RsZUNrdWNtVmtkV05sS0NobUxDQnlLU0E5UGlCZ0pIdG1mU2drZTNJdWMyOTFjbU5sZlNsZ0xDQmNJbHdpS1R0Y2JpQWdjbVYwZFhKdUlGdGdYaVI3Y21WOUpHQXNJSFZ1YVhSelhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2JXRjBZMmdvYVc1d2RYUXNJSEpsWjJWNExDQm9ZVzVrYkdWeWN5a2dlMXh1SUNCamIyNXpkQ0J0WVhSamFHVnpJRDBnYVc1d2RYUXViV0YwWTJnb2NtVm5aWGdwTzF4dVhHNGdJR2xtSUNodFlYUmphR1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdZV3hzSUQwZ2UzMDdYRzRnSUNBZ2JHVjBJRzFoZEdOb1NXNWtaWGdnUFNBeE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnBiaUJvWVc1a2JHVnljeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHaGhjMDkzYmxCeWIzQmxjblI1S0doaGJtUnNaWEp6TENCcEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm9JRDBnYUdGdVpHeGxjbk5iYVYwc1hHNGdJQ0FnSUNBZ0lDQWdaM0p2ZFhCeklEMGdhQzVuY205MWNITWdQeUJvTG1keWIzVndjeUFySURFZ09pQXhPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXZ3ViR2wwWlhKaGJDQW1KaUJvTG5SdmEyVnVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lXeHNXMmd1ZEc5clpXNHVkbUZzV3pCZFhTQTlJR2d1WkdWelpYSW9iV0YwWTJobGN5NXpiR2xqWlNodFlYUmphRWx1WkdWNExDQnRZWFJqYUVsdVpHVjRJQ3NnWjNKdmRYQnpLU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2JXRjBZMmhKYm1SbGVDQXJQU0JuY205MWNITTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJiYldGMFkyaGxjeXdnWVd4c1hUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnlaWFIxY200Z1cyMWhkR05vWlhNc0lIdDlYVHRjYmlBZ2ZWeHVmVnh1WEc1bWRXNWpkR2x2YmlCa1lYUmxWR2x0WlVaeWIyMU5ZWFJqYUdWektHMWhkR05vWlhNcElIdGNiaUFnWTI5dWMzUWdkRzlHYVdWc1pDQTlJQ2gwYjJ0bGJpa2dQVDRnZTF4dUlDQWdJSE4zYVhSamFDQW9kRzlyWlc0cElIdGNiaUFnSUNBZ0lHTmhjMlVnWENKVFhDSTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbTFwYkd4cGMyVmpiMjVrWENJN1hHNGdJQ0FnSUNCallYTmxJRndpYzF3aU9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSnpaV052Ym1SY0lqdGNiaUFnSUNBZ0lHTmhjMlVnWENKdFhDSTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbTFwYm5WMFpWd2lPMXh1SUNBZ0lDQWdZMkZ6WlNCY0ltaGNJanBjYmlBZ0lDQWdJR05oYzJVZ1hDSklYQ0k2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJjSW1odmRYSmNJanRjYmlBZ0lDQWdJR05oYzJVZ1hDSmtYQ0k2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJjSW1SaGVWd2lPMXh1SUNBZ0lDQWdZMkZ6WlNCY0ltOWNJanBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRndpYjNKa2FXNWhiRndpTzF4dUlDQWdJQ0FnWTJGelpTQmNJa3hjSWpwY2JpQWdJQ0FnSUdOaGMyVWdYQ0pOWENJNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0ltMXZiblJvWENJN1hHNGdJQ0FnSUNCallYTmxJRndpZVZ3aU9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSjVaV0Z5WENJN1hHNGdJQ0FnSUNCallYTmxJRndpUlZ3aU9seHVJQ0FnSUNBZ1kyRnpaU0JjSW1OY0lqcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGd2lkMlZsYTJSaGVWd2lPMXh1SUNBZ0lDQWdZMkZ6WlNCY0lsZGNJanBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRndpZDJWbGEwNTFiV0psY2x3aU8xeHVJQ0FnSUNBZ1kyRnpaU0JjSW10Y0lqcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGd2lkMlZsYTFsbFlYSmNJanRjYmlBZ0lDQWdJR05oYzJVZ1hDSnhYQ0k2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJjSW5GMVlYSjBaWEpjSWp0Y2JpQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQnNaWFFnZW05dVpTQTlJRzUxYkd3N1hHNGdJR3hsZENCemNHVmphV1pwWTA5bVpuTmxkRHRjYmlBZ2FXWWdLQ0ZwYzFWdVpHVm1hVzVsWkNodFlYUmphR1Z6TG5vcEtTQjdYRzRnSUNBZ2VtOXVaU0E5SUVsQlRrRmFiMjVsTG1OeVpXRjBaU2h0WVhSamFHVnpMbm9wTzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0ZwYzFWdVpHVm1hVzVsWkNodFlYUmphR1Z6TGxvcEtTQjdYRzRnSUNBZ2FXWWdLQ0Y2YjI1bEtTQjdYRzRnSUNBZ0lDQjZiMjVsSUQwZ2JtVjNJRVpwZUdWa1QyWm1jMlYwV205dVpTaHRZWFJqYUdWekxsb3BPMXh1SUNBZ0lIMWNiaUFnSUNCemNHVmphV1pwWTA5bVpuTmxkQ0E5SUcxaGRHTm9aWE11V2p0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2doYVhOVmJtUmxabWx1WldRb2JXRjBZMmhsY3k1eEtTa2dlMXh1SUNBZ0lHMWhkR05vWlhNdVRTQTlJQ2h0WVhSamFHVnpMbkVnTFNBeEtTQXFJRE1nS3lBeE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGcGMxVnVaR1ZtYVc1bFpDaHRZWFJqYUdWekxtZ3BLU0I3WEc0Z0lDQWdhV1lnS0cxaGRHTm9aWE11YUNBOElERXlJQ1ltSUcxaGRHTm9aWE11WVNBOVBUMGdNU2tnZTF4dUlDQWdJQ0FnYldGMFkyaGxjeTVvSUNzOUlERXlPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9iV0YwWTJobGN5NW9JRDA5UFNBeE1pQW1KaUJ0WVhSamFHVnpMbUVnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJRzFoZEdOb1pYTXVhQ0E5SURBN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2FXWWdLRzFoZEdOb1pYTXVSeUE5UFQwZ01DQW1KaUJ0WVhSamFHVnpMbmtwSUh0Y2JpQWdJQ0J0WVhSamFHVnpMbmtnUFNBdGJXRjBZMmhsY3k1NU8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGcGMxVnVaR1ZtYVc1bFpDaHRZWFJqYUdWekxuVXBLU0I3WEc0Z0lDQWdiV0YwWTJobGN5NVRJRDBnY0dGeWMyVk5hV3hzYVhNb2JXRjBZMmhsY3k1MUtUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMElIWmhiSE1nUFNCUFltcGxZM1F1YTJWNWN5aHRZWFJqYUdWektTNXlaV1IxWTJVb0tISXNJR3NwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JtSUQwZ2RHOUdhV1ZzWkNocktUdGNiaUFnSUNCcFppQW9aaWtnZTF4dUlDQWdJQ0FnY2x0bVhTQTlJRzFoZEdOb1pYTmJhMTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlISTdYRzRnSUgwc0lIdDlLVHRjYmx4dUlDQnlaWFIxY200Z1czWmhiSE1zSUhwdmJtVXNJSE53WldOcFptbGpUMlptYzJWMFhUdGNibjFjYmx4dWJHVjBJR1IxYlcxNVJHRjBaVlJwYldWRFlXTm9aU0E5SUc1MWJHdzdYRzVjYm1aMWJtTjBhVzl1SUdkbGRFUjFiVzE1UkdGMFpWUnBiV1VvS1NCN1hHNGdJR2xtSUNnaFpIVnRiWGxFWVhSbFZHbHRaVU5oWTJobEtTQjdYRzRnSUNBZ1pIVnRiWGxFWVhSbFZHbHRaVU5oWTJobElEMGdSR0YwWlZScGJXVXVabkp2YlUxcGJHeHBjeWd4TlRVMU5UVTFOVFUxTlRVMUtUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQmtkVzF0ZVVSaGRHVlVhVzFsUTJGamFHVTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHMWhlV0psUlhod1lXNWtUV0ZqY205VWIydGxiaWgwYjJ0bGJpd2diRzlqWVd4bEtTQjdYRzRnSUdsbUlDaDBiMnRsYmk1c2FYUmxjbUZzS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJ2YTJWdU8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1ptOXliV0YwVDNCMGN5QTlJRVp2Y20xaGRIUmxjaTV0WVdOeWIxUnZhMlZ1Vkc5R2IzSnRZWFJQY0hSektIUnZhMlZ1TG5aaGJDazdYRzVjYmlBZ2FXWWdLQ0ZtYjNKdFlYUlBjSFJ6S1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJ2YTJWdU8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1ptOXliV0YwZEdWeUlEMGdSbTl5YldGMGRHVnlMbU55WldGMFpTaHNiMk5oYkdVc0lHWnZjbTFoZEU5d2RITXBPMXh1SUNCamIyNXpkQ0J3WVhKMGN5QTlJR1p2Y20xaGRIUmxjaTVtYjNKdFlYUkVZWFJsVkdsdFpWQmhjblJ6S0dkbGRFUjFiVzE1UkdGMFpWUnBiV1VvS1NrN1hHNWNiaUFnWTI5dWMzUWdkRzlyWlc1eklEMGdjR0Z5ZEhNdWJXRndLQ2h3S1NBOVBpQjBiMnRsYmtadmNsQmhjblFvY0N3Z2JHOWpZV3hsTENCbWIzSnRZWFJQY0hSektTazdYRzVjYmlBZ2FXWWdLSFJ2YTJWdWN5NXBibU5zZFdSbGN5aDFibVJsWm1sdVpXUXBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnZhMlZ1TzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUhSdmEyVnVjenRjYm4xY2JseHVablZ1WTNScGIyNGdaWGh3WVc1a1RXRmpjbTlVYjJ0bGJuTW9kRzlyWlc1ekxDQnNiMk5oYkdVcElIdGNiaUFnY21WMGRYSnVJRUZ5Y21GNUxuQnliM1J2ZEhsd1pTNWpiMjVqWVhRb0xpNHVkRzlyWlc1ekxtMWhjQ2dvZENrZ1BUNGdiV0Y1WW1WRmVIQmhibVJOWVdOeWIxUnZhMlZ1S0hRc0lHeHZZMkZzWlNrcEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZUhCc1lXbHVSbkp2YlZSdmEyVnVjeWhzYjJOaGJHVXNJR2x1Y0hWMExDQm1iM0p0WVhRcElIdGNiaUFnWTI5dWMzUWdkRzlyWlc1eklEMGdaWGh3WVc1a1RXRmpjbTlVYjJ0bGJuTW9SbTl5YldGMGRHVnlMbkJoY25ObFJtOXliV0YwS0dadmNtMWhkQ2tzSUd4dlkyRnNaU2tzWEc0Z0lDQWdkVzVwZEhNZ1BTQjBiMnRsYm5NdWJXRndLQ2gwS1NBOVBpQjFibWwwUm05eVZHOXJaVzRvZEN3Z2JHOWpZV3hsS1Nrc1hHNGdJQ0FnWkdsemNYVmhiR2xtZVdsdVoxVnVhWFFnUFNCMWJtbDBjeTVtYVc1a0tDaDBLU0E5UGlCMExtbHVkbUZzYVdSU1pXRnpiMjRwTzF4dVhHNGdJR2xtSUNoa2FYTnhkV0ZzYVdaNWFXNW5WVzVwZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3SUdsdWNIVjBMQ0IwYjJ0bGJuTXNJR2x1ZG1Gc2FXUlNaV0Z6YjI0NklHUnBjM0YxWVd4cFpubHBibWRWYm1sMExtbHVkbUZzYVdSU1pXRnpiMjRnZlR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCamIyNXpkQ0JiY21WblpYaFRkSEpwYm1jc0lHaGhibVJzWlhKelhTQTlJR0oxYVd4a1VtVm5aWGdvZFc1cGRITXBMRnh1SUNBZ0lDQWdjbVZuWlhnZ1BTQlNaV2RGZUhBb2NtVm5aWGhUZEhKcGJtY3NJRndpYVZ3aUtTeGNiaUFnSUNBZ0lGdHlZWGROWVhSamFHVnpMQ0J0WVhSamFHVnpYU0E5SUcxaGRHTm9LR2x1Y0hWMExDQnlaV2RsZUN3Z2FHRnVaR3hsY25NcExGeHVJQ0FnSUNBZ1czSmxjM1ZzZEN3Z2VtOXVaU3dnYzNCbFkybG1hV05QWm1aelpYUmRJRDBnYldGMFkyaGxjMXh1SUNBZ0lDQWdJQ0EvSUdSaGRHVlVhVzFsUm5KdmJVMWhkR05vWlhNb2JXRjBZMmhsY3lsY2JpQWdJQ0FnSUNBZ09pQmJiblZzYkN3Z2JuVnNiQ3dnZFc1a1pXWnBibVZrWFR0Y2JpQWdJQ0JwWmlBb2FHRnpUM2R1VUhKdmNHVnlkSGtvYldGMFkyaGxjeXdnWENKaFhDSXBJQ1ltSUdoaGMwOTNibEJ5YjNCbGNuUjVLRzFoZEdOb1pYTXNJRndpU0Z3aUtTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRU52Ym1ac2FXTjBhVzVuVTNCbFkybG1hV05oZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0lrTmhiaWQwSUdsdVkyeDFaR1VnYldWeWFXUnBaVzBnZDJobGJpQnpjR1ZqYVdaNWFXNW5JREkwTFdodmRYSWdabTl5YldGMFhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3SUdsdWNIVjBMQ0IwYjJ0bGJuTXNJSEpsWjJWNExDQnlZWGROWVhSamFHVnpMQ0J0WVhSamFHVnpMQ0J5WlhOMWJIUXNJSHB2Ym1Vc0lITndaV05wWm1salQyWm1jMlYwSUgwN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sUm5KdmJWUnZhMlZ1Y3loc2IyTmhiR1VzSUdsdWNIVjBMQ0JtYjNKdFlYUXBJSHRjYmlBZ1kyOXVjM1FnZXlCeVpYTjFiSFFzSUhwdmJtVXNJSE53WldOcFptbGpUMlptYzJWMExDQnBiblpoYkdsa1VtVmhjMjl1SUgwZ1BTQmxlSEJzWVdsdVJuSnZiVlJ2YTJWdWN5aHNiMk5oYkdVc0lHbHVjSFYwTENCbWIzSnRZWFFwTzF4dUlDQnlaWFIxY200Z1czSmxjM1ZzZEN3Z2VtOXVaU3dnYzNCbFkybG1hV05QWm1aelpYUXNJR2x1ZG1Gc2FXUlNaV0Z6YjI1ZE8xeHVmVnh1SWl3Z0ltbHRjRzl5ZENCN1hHNGdJR2x1ZEdWblpYSkNaWFIzWldWdUxGeHVJQ0JwYzB4bFlYQlpaV0Z5TEZ4dUlDQjBhVzFsVDJKcVpXTjBMRnh1SUNCa1lYbHpTVzVaWldGeUxGeHVJQ0JrWVhselNXNU5iMjUwYUN4Y2JpQWdkMlZsYTNOSmJsZGxaV3RaWldGeUxGeHVJQ0JwYzBsdWRHVm5aWElzWEc1OUlHWnliMjBnWENJdUwzVjBhV3d1YW5OY0lqdGNibWx0Y0c5eWRDQkpiblpoYkdsa0lHWnliMjBnWENJdUwybHVkbUZzYVdRdWFuTmNJanRjYmx4dVkyOXVjM1FnYm05dVRHVmhjRXhoWkdSbGNpQTlJRnN3TENBek1Td2dOVGtzSURrd0xDQXhNakFzSURFMU1Td2dNVGd4TENBeU1USXNJREkwTXl3Z01qY3pMQ0F6TURRc0lETXpORjBzWEc0Z0lHeGxZWEJNWVdSa1pYSWdQU0JiTUN3Z016RXNJRFl3TENBNU1Td2dNVEl4TENBeE5USXNJREU0TWl3Z01qRXpMQ0F5TkRRc0lESTNOQ3dnTXpBMUxDQXpNelZkTzF4dVhHNW1kVzVqZEdsdmJpQjFibWwwVDNWMFQyWlNZVzVuWlNoMWJtbDBMQ0IyWVd4MVpTa2dlMXh1SUNCeVpYUjFjbTRnYm1WM0lFbHVkbUZzYVdRb1hHNGdJQ0FnWENKMWJtbDBJRzkxZENCdlppQnlZVzVuWlZ3aUxGeHVJQ0FnSUdCNWIzVWdjM0JsWTJsbWFXVmtJQ1I3ZG1Gc2RXVjlJQ2h2WmlCMGVYQmxJQ1I3ZEhsd1pXOW1JSFpoYkhWbGZTa2dZWE1nWVNBa2UzVnVhWFI5TENCM2FHbGphQ0JwY3lCcGJuWmhiR2xrWUZ4dUlDQXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmtZWGxQWmxkbFpXc29lV1ZoY2l3Z2JXOXVkR2dzSUdSaGVTa2dlMXh1SUNCamIyNXpkQ0JrSUQwZ2JtVjNJRVJoZEdVb1JHRjBaUzVWVkVNb2VXVmhjaXdnYlc5dWRHZ2dMU0F4TENCa1lYa3BLVHRjYmx4dUlDQnBaaUFvZVdWaGNpQThJREV3TUNBbUppQjVaV0Z5SUQ0OUlEQXBJSHRjYmlBZ0lDQmtMbk5sZEZWVVEwWjFiR3haWldGeUtHUXVaMlYwVlZSRFJuVnNiRmxsWVhJb0tTQXRJREU1TURBcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2FuTWdQU0JrTG1kbGRGVlVRMFJoZVNncE8xeHVYRzRnSUhKbGRIVnliaUJxY3lBOVBUMGdNQ0EvSURjZ09pQnFjenRjYm4xY2JseHVablZ1WTNScGIyNGdZMjl0Y0hWMFpVOXlaR2x1WVd3b2VXVmhjaXdnYlc5dWRHZ3NJR1JoZVNrZ2UxeHVJQ0J5WlhSMWNtNGdaR0Y1SUNzZ0tHbHpUR1ZoY0ZsbFlYSW9lV1ZoY2lrZ1B5QnNaV0Z3VEdGa1pHVnlJRG9nYm05dVRHVmhjRXhoWkdSbGNpbGJiVzl1ZEdnZ0xTQXhYVHRjYm4xY2JseHVablZ1WTNScGIyNGdkVzVqYjIxd2RYUmxUM0prYVc1aGJDaDVaV0Z5TENCdmNtUnBibUZzS1NCN1hHNGdJR052Ym5OMElIUmhZbXhsSUQwZ2FYTk1aV0Z3V1dWaGNpaDVaV0Z5S1NBL0lHeGxZWEJNWVdSa1pYSWdPaUJ1YjI1TVpXRndUR0ZrWkdWeUxGeHVJQ0FnSUcxdmJuUm9NQ0E5SUhSaFlteGxMbVpwYm1SSmJtUmxlQ2dvYVNrZ1BUNGdhU0E4SUc5eVpHbHVZV3dwTEZ4dUlDQWdJR1JoZVNBOUlHOXlaR2x1WVd3Z0xTQjBZV0pzWlZ0dGIyNTBhREJkTzF4dUlDQnlaWFIxY200Z2V5QnRiMjUwYURvZ2JXOXVkR2d3SUNzZ01Td2daR0Y1SUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUwxeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaM0psWjI5eWFXRnVWRzlYWldWcktHZHlaV2RQWW1vcElIdGNiaUFnWTI5dWMzUWdleUI1WldGeUxDQnRiMjUwYUN3Z1pHRjVJSDBnUFNCbmNtVm5UMkpxTEZ4dUlDQWdJRzl5WkdsdVlXd2dQU0JqYjIxd2RYUmxUM0prYVc1aGJDaDVaV0Z5TENCdGIyNTBhQ3dnWkdGNUtTeGNiaUFnSUNCM1pXVnJaR0Y1SUQwZ1pHRjVUMlpYWldWcktIbGxZWElzSUcxdmJuUm9MQ0JrWVhrcE8xeHVYRzRnSUd4bGRDQjNaV1ZyVG5WdFltVnlJRDBnVFdGMGFDNW1iRzl2Y2lnb2IzSmthVzVoYkNBdElIZGxaV3RrWVhrZ0t5QXhNQ2tnTHlBM0tTeGNiaUFnSUNCM1pXVnJXV1ZoY2p0Y2JseHVJQ0JwWmlBb2QyVmxhMDUxYldKbGNpQThJREVwSUh0Y2JpQWdJQ0IzWldWcldXVmhjaUE5SUhsbFlYSWdMU0F4TzF4dUlDQWdJSGRsWld0T2RXMWlaWElnUFNCM1pXVnJjMGx1VjJWbGExbGxZWElvZDJWbGExbGxZWElwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLSGRsWld0T2RXMWlaWElnUGlCM1pXVnJjMGx1VjJWbGExbGxZWElvZVdWaGNpa3BJSHRjYmlBZ0lDQjNaV1ZyV1dWaGNpQTlJSGxsWVhJZ0t5QXhPMXh1SUNBZ0lIZGxaV3RPZFcxaVpYSWdQU0F4TzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhkbFpXdFpaV0Z5SUQwZ2VXVmhjanRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUI3SUhkbFpXdFpaV0Z5TENCM1pXVnJUblZ0WW1WeUxDQjNaV1ZyWkdGNUxDQXVMaTUwYVcxbFQySnFaV04wS0dkeVpXZFBZbW9wSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIzWldWclZHOUhjbVZuYjNKcFlXNG9kMlZsYTBSaGRHRXBJSHRjYmlBZ1kyOXVjM1FnZXlCM1pXVnJXV1ZoY2l3Z2QyVmxhMDUxYldKbGNpd2dkMlZsYTJSaGVTQjlJRDBnZDJWbGEwUmhkR0VzWEc0Z0lDQWdkMlZsYTJSaGVVOW1TbUZ1TkNBOUlHUmhlVTltVjJWbGF5aDNaV1ZyV1dWaGNpd2dNU3dnTkNrc1hHNGdJQ0FnZVdWaGNrbHVSR0Y1Y3lBOUlHUmhlWE5KYmxsbFlYSW9kMlZsYTFsbFlYSXBPMXh1WEc0Z0lHeGxkQ0J2Y21ScGJtRnNJRDBnZDJWbGEwNTFiV0psY2lBcUlEY2dLeUIzWldWclpHRjVJQzBnZDJWbGEyUmhlVTltU21GdU5DQXRJRE1zWEc0Z0lDQWdlV1ZoY2p0Y2JseHVJQ0JwWmlBb2IzSmthVzVoYkNBOElERXBJSHRjYmlBZ0lDQjVaV0Z5SUQwZ2QyVmxhMWxsWVhJZ0xTQXhPMXh1SUNBZ0lHOXlaR2x1WVd3Z0t6MGdaR0Y1YzBsdVdXVmhjaWg1WldGeUtUdGNiaUFnZlNCbGJITmxJR2xtSUNodmNtUnBibUZzSUQ0Z2VXVmhja2x1UkdGNWN5a2dlMXh1SUNBZ0lIbGxZWElnUFNCM1pXVnJXV1ZoY2lBcklERTdYRzRnSUNBZ2IzSmthVzVoYkNBdFBTQmtZWGx6U1c1WlpXRnlLSGRsWld0WlpXRnlLVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0I1WldGeUlEMGdkMlZsYTFsbFlYSTdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQjdJRzF2Ym5Sb0xDQmtZWGtnZlNBOUlIVnVZMjl0Y0hWMFpVOXlaR2x1WVd3b2VXVmhjaXdnYjNKa2FXNWhiQ2s3WEc0Z0lISmxkSFZ5YmlCN0lIbGxZWElzSUcxdmJuUm9MQ0JrWVhrc0lDNHVMblJwYldWUFltcGxZM1FvZDJWbGEwUmhkR0VwSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuY21WbmIzSnBZVzVVYjA5eVpHbHVZV3dvWjNKbFowUmhkR0VwSUh0Y2JpQWdZMjl1YzNRZ2V5QjVaV0Z5TENCdGIyNTBhQ3dnWkdGNUlIMGdQU0JuY21WblJHRjBZVHRjYmlBZ1kyOXVjM1FnYjNKa2FXNWhiQ0E5SUdOdmJYQjFkR1ZQY21ScGJtRnNLSGxsWVhJc0lHMXZiblJvTENCa1lYa3BPMXh1SUNCeVpYUjFjbTRnZXlCNVpXRnlMQ0J2Y21ScGJtRnNMQ0F1TGk1MGFXMWxUMkpxWldOMEtHZHlaV2RFWVhSaEtTQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2IzSmthVzVoYkZSdlIzSmxaMjl5YVdGdUtHOXlaR2x1WVd4RVlYUmhLU0I3WEc0Z0lHTnZibk4wSUhzZ2VXVmhjaXdnYjNKa2FXNWhiQ0I5SUQwZ2IzSmthVzVoYkVSaGRHRTdYRzRnSUdOdmJuTjBJSHNnYlc5dWRHZ3NJR1JoZVNCOUlEMGdkVzVqYjIxd2RYUmxUM0prYVc1aGJDaDVaV0Z5TENCdmNtUnBibUZzS1R0Y2JpQWdjbVYwZFhKdUlIc2dlV1ZoY2l3Z2JXOXVkR2dzSUdSaGVTd2dMaTR1ZEdsdFpVOWlhbVZqZENodmNtUnBibUZzUkdGMFlTa2dmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHaGhjMGx1ZG1Gc2FXUlhaV1ZyUkdGMFlTaHZZbW9wSUh0Y2JpQWdZMjl1YzNRZ2RtRnNhV1JaWldGeUlEMGdhWE5KYm5SbFoyVnlLRzlpYWk1M1pXVnJXV1ZoY2lrc1hHNGdJQ0FnZG1Gc2FXUlhaV1ZySUQwZ2FXNTBaV2RsY2tKbGRIZGxaVzRvYjJKcUxuZGxaV3RPZFcxaVpYSXNJREVzSUhkbFpXdHpTVzVYWldWcldXVmhjaWh2WW1vdWQyVmxhMWxsWVhJcEtTeGNiaUFnSUNCMllXeHBaRmRsWld0a1lYa2dQU0JwYm5SbFoyVnlRbVYwZDJWbGJpaHZZbW91ZDJWbGEyUmhlU3dnTVN3Z055azdYRzVjYmlBZ2FXWWdLQ0YyWVd4cFpGbGxZWElwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkVzVwZEU5MWRFOW1VbUZ1WjJVb1hDSjNaV1ZyV1dWaGNsd2lMQ0J2WW1vdWQyVmxhMWxsWVhJcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0NGMllXeHBaRmRsWldzcElIdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRFOTFkRTltVW1GdVoyVW9YQ0ozWldWclhDSXNJRzlpYWk1M1pXVnJLVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDZ2hkbUZzYVdSWFpXVnJaR0Y1S1NCN1hHNGdJQ0FnY21WMGRYSnVJSFZ1YVhSUGRYUlBabEpoYm1kbEtGd2lkMlZsYTJSaGVWd2lMQ0J2WW1vdWQyVmxhMlJoZVNrN1hHNGdJSDBnWld4elpTQnlaWFIxY200Z1ptRnNjMlU3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9ZWE5KYm5aaGJHbGtUM0prYVc1aGJFUmhkR0VvYjJKcUtTQjdYRzRnSUdOdmJuTjBJSFpoYkdsa1dXVmhjaUE5SUdselNXNTBaV2RsY2lodlltb3VlV1ZoY2lrc1hHNGdJQ0FnZG1Gc2FXUlBjbVJwYm1Gc0lEMGdhVzUwWldkbGNrSmxkSGRsWlc0b2IySnFMbTl5WkdsdVlXd3NJREVzSUdSaGVYTkpibGxsWVhJb2IySnFMbmxsWVhJcEtUdGNibHh1SUNCcFppQW9JWFpoYkdsa1dXVmhjaWtnZTF4dUlDQWdJSEpsZEhWeWJpQjFibWwwVDNWMFQyWlNZVzVuWlNoY0lubGxZWEpjSWl3Z2IySnFMbmxsWVhJcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0NGMllXeHBaRTl5WkdsdVlXd3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RXNXBkRTkxZEU5bVVtRnVaMlVvWENKdmNtUnBibUZzWENJc0lHOWlhaTV2Y21ScGJtRnNLVHRjYmlBZ2ZTQmxiSE5sSUhKbGRIVnliaUJtWVd4elpUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGMwbHVkbUZzYVdSSGNtVm5iM0pwWVc1RVlYUmhLRzlpYWlrZ2UxeHVJQ0JqYjI1emRDQjJZV3hwWkZsbFlYSWdQU0JwYzBsdWRHVm5aWElvYjJKcUxubGxZWElwTEZ4dUlDQWdJSFpoYkdsa1RXOXVkR2dnUFNCcGJuUmxaMlZ5UW1WMGQyVmxiaWh2WW1vdWJXOXVkR2dzSURFc0lERXlLU3hjYmlBZ0lDQjJZV3hwWkVSaGVTQTlJR2x1ZEdWblpYSkNaWFIzWldWdUtHOWlhaTVrWVhrc0lERXNJR1JoZVhOSmJrMXZiblJvS0c5aWFpNTVaV0Z5TENCdlltb3ViVzl1ZEdncEtUdGNibHh1SUNCcFppQW9JWFpoYkdsa1dXVmhjaWtnZTF4dUlDQWdJSEpsZEhWeWJpQjFibWwwVDNWMFQyWlNZVzVuWlNoY0lubGxZWEpjSWl3Z2IySnFMbmxsWVhJcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0NGMllXeHBaRTF2Ym5Sb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhWdWFYUlBkWFJQWmxKaGJtZGxLRndpYlc5dWRHaGNJaXdnYjJKcUxtMXZiblJvS1R0Y2JpQWdmU0JsYkhObElHbG1JQ2doZG1Gc2FXUkVZWGtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkVzVwZEU5MWRFOW1VbUZ1WjJVb1hDSmtZWGxjSWl3Z2IySnFMbVJoZVNrN1hHNGdJSDBnWld4elpTQnlaWFIxY200Z1ptRnNjMlU3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9ZWE5KYm5aaGJHbGtWR2x0WlVSaGRHRW9iMkpxS1NCN1hHNGdJR052Ym5OMElIc2dhRzkxY2l3Z2JXbHVkWFJsTENCelpXTnZibVFzSUcxcGJHeHBjMlZqYjI1a0lIMGdQU0J2WW1vN1hHNGdJR052Ym5OMElIWmhiR2xrU0c5MWNpQTlYRzRnSUNBZ0lDQnBiblJsWjJWeVFtVjBkMlZsYmlob2IzVnlMQ0F3TENBeU15a2dmSHhjYmlBZ0lDQWdJQ2hvYjNWeUlEMDlQU0F5TkNBbUppQnRhVzUxZEdVZ1BUMDlJREFnSmlZZ2MyVmpiMjVrSUQwOVBTQXdJQ1ltSUcxcGJHeHBjMlZqYjI1a0lEMDlQU0F3S1N4Y2JpQWdJQ0IyWVd4cFpFMXBiblYwWlNBOUlHbHVkR1ZuWlhKQ1pYUjNaV1Z1S0cxcGJuVjBaU3dnTUN3Z05Ua3BMRnh1SUNBZ0lIWmhiR2xrVTJWamIyNWtJRDBnYVc1MFpXZGxja0psZEhkbFpXNG9jMlZqYjI1a0xDQXdMQ0ExT1Nrc1hHNGdJQ0FnZG1Gc2FXUk5hV3hzYVhObFkyOXVaQ0E5SUdsdWRHVm5aWEpDWlhSM1pXVnVLRzFwYkd4cGMyVmpiMjVrTENBd0xDQTVPVGtwTzF4dVhHNGdJR2xtSUNnaGRtRnNhV1JJYjNWeUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhWdWFYUlBkWFJQWmxKaGJtZGxLRndpYUc5MWNsd2lMQ0JvYjNWeUtUdGNiaUFnZlNCbGJITmxJR2xtSUNnaGRtRnNhV1JOYVc1MWRHVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RXNXBkRTkxZEU5bVVtRnVaMlVvWENKdGFXNTFkR1ZjSWl3Z2JXbHVkWFJsS1R0Y2JpQWdmU0JsYkhObElHbG1JQ2doZG1Gc2FXUlRaV052Ym1RcElIdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRFOTFkRTltVW1GdVoyVW9YQ0p6WldOdmJtUmNJaXdnYzJWamIyNWtLVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDZ2hkbUZzYVdSTmFXeHNhWE5sWTI5dVpDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtbDBUM1YwVDJaU1lXNW5aU2hjSW0xcGJHeHBjMlZqYjI1a1hDSXNJRzFwYkd4cGMyVmpiMjVrS1R0Y2JpQWdmU0JsYkhObElISmxkSFZ5YmlCbVlXeHpaVHRjYm4xY2JpSXNJQ0pwYlhCdmNuUWdSSFZ5WVhScGIyNGdabkp2YlNCY0lpNHZaSFZ5WVhScGIyNHVhbk5jSWp0Y2JtbHRjRzl5ZENCSmJuUmxjblpoYkNCbWNtOXRJRndpTGk5cGJuUmxjblpoYkM1cWMxd2lPMXh1YVcxd2IzSjBJRk5sZEhScGJtZHpJR1p5YjIwZ1hDSXVMM05sZEhScGJtZHpMbXB6WENJN1hHNXBiWEJ2Y25RZ1NXNW1ieUJtY205dElGd2lMaTlwYm1adkxtcHpYQ0k3WEc1cGJYQnZjblFnUm05eWJXRjBkR1Z5SUdaeWIyMGdYQ0l1TDJsdGNHd3ZabTl5YldGMGRHVnlMbXB6WENJN1hHNXBiWEJ2Y25RZ1JtbDRaV1JQWm1aelpYUmFiMjVsSUdaeWIyMGdYQ0l1TDNwdmJtVnpMMlpwZUdWa1QyWm1jMlYwV205dVpTNXFjMXdpTzF4dWFXMXdiM0owSUV4dlkyRnNaU0JtY205dElGd2lMaTlwYlhCc0wyeHZZMkZzWlM1cWMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ2FYTlZibVJsWm1sdVpXUXNYRzRnSUcxaGVXSmxRWEp5WVhrc1hHNGdJR2x6UkdGMFpTeGNiaUFnYVhOT2RXMWlaWElzWEc0Z0lHSmxjM1JDZVN4Y2JpQWdaR0Y1YzBsdVRXOXVkR2dzWEc0Z0lHUmhlWE5KYmxsbFlYSXNYRzRnSUdselRHVmhjRmxsWVhJc1hHNGdJSGRsWld0elNXNVhaV1ZyV1dWaGNpeGNiaUFnYm05eWJXRnNhWHBsVDJKcVpXTjBMRnh1SUNCeWIzVnVaRlJ2TEZ4dUlDQnZZbXBVYjB4dlkyRnNWRk1zWEc0Z0lIQmhaRk4wWVhKMExGeHVmU0JtY205dElGd2lMaTlwYlhCc0wzVjBhV3d1YW5OY0lqdGNibWx0Y0c5eWRDQjdJRzV2Y20xaGJHbDZaVnB2Ym1VZ2ZTQm1jbTl0SUZ3aUxpOXBiWEJzTDNwdmJtVlZkR2xzTG1welhDSTdYRzVwYlhCdmNuUWdaR2xtWmlCbWNtOXRJRndpTGk5cGJYQnNMMlJwWm1ZdWFuTmNJanRjYm1sdGNHOXlkQ0I3SUhCaGNuTmxVa1pETWpneU1rUmhkR1VzSUhCaGNuTmxTVk5QUkdGMFpTd2djR0Z5YzJWSVZGUlFSR0YwWlN3Z2NHRnljMlZUVVV3Z2ZTQm1jbTl0SUZ3aUxpOXBiWEJzTDNKbFoyVjRVR0Z5YzJWeUxtcHpYQ0k3WEc1cGJYQnZjblFnZXlCd1lYSnpaVVp5YjIxVWIydGxibk1zSUdWNGNHeGhhVzVHY205dFZHOXJaVzV6SUgwZ1puSnZiU0JjSWk0dmFXMXdiQzkwYjJ0bGJsQmhjbk5sY2k1cWMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1ozSmxaMjl5YVdGdVZHOVhaV1ZyTEZ4dUlDQjNaV1ZyVkc5SGNtVm5iM0pwWVc0c1hHNGdJR2R5WldkdmNtbGhibFJ2VDNKa2FXNWhiQ3hjYmlBZ2IzSmthVzVoYkZSdlIzSmxaMjl5YVdGdUxGeHVJQ0JvWVhOSmJuWmhiR2xrUjNKbFoyOXlhV0Z1UkdGMFlTeGNiaUFnYUdGelNXNTJZV3hwWkZkbFpXdEVZWFJoTEZ4dUlDQm9ZWE5KYm5aaGJHbGtUM0prYVc1aGJFUmhkR0VzWEc0Z0lHaGhjMGx1ZG1Gc2FXUlVhVzFsUkdGMFlTeGNibjBnWm5KdmJTQmNJaTR2YVcxd2JDOWpiMjUyWlhKemFXOXVjeTVxYzF3aU8xeHVhVzF3YjNKMElDb2dZWE1nUm05eWJXRjBjeUJtY205dElGd2lMaTlwYlhCc0wyWnZjbTFoZEhNdWFuTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlMRnh1SUNCRGIyNW1iR2xqZEdsdVoxTndaV05wWm1sallYUnBiMjVGY25KdmNpeGNiaUFnU1c1MllXeHBaRlZ1YVhSRmNuSnZjaXhjYmlBZ1NXNTJZV3hwWkVSaGRHVlVhVzFsUlhKeWIzSXNYRzU5SUdaeWIyMGdYQ0l1TDJWeWNtOXljeTVxYzF3aU8xeHVhVzF3YjNKMElFbHVkbUZzYVdRZ1puSnZiU0JjSWk0dmFXMXdiQzlwYm5aaGJHbGtMbXB6WENJN1hHNWNibU52Ym5OMElFbE9Wa0ZNU1VRZ1BTQmNJa2x1ZG1Gc2FXUWdSR0YwWlZScGJXVmNJanRjYm1OdmJuTjBJRTFCV0Y5RVFWUkZJRDBnT0M0Mk5HVXhOVHRjYmx4dVpuVnVZM1JwYjI0Z2RXNXpkWEJ3YjNKMFpXUmFiMjVsS0hwdmJtVXBJSHRjYmlBZ2NtVjBkWEp1SUc1bGR5QkpiblpoYkdsa0tGd2lkVzV6ZFhCd2IzSjBaV1FnZW05dVpWd2lMQ0JnZEdobElIcHZibVVnWENJa2UzcHZibVV1Ym1GdFpYMWNJaUJwY3lCdWIzUWdjM1Z3Y0c5eWRHVmtZQ2s3WEc1OVhHNWNiaTh2SUhkbElHTmhZMmhsSUhkbFpXc2daR0YwWVNCdmJpQjBhR1VnUkZRZ2IySnFaV04wSUdGdVpDQjBhR2x6SUdsdWRHVnliV1ZrYVdGMFpYTWdkR2hsSUdOaFkyaGxYRzVtZFc1amRHbHZiaUJ3YjNOemFXSnNlVU5oWTJobFpGZGxaV3RFWVhSaEtHUjBLU0I3WEc0Z0lHbG1JQ2hrZEM1M1pXVnJSR0YwWVNBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUdSMExuZGxaV3RFWVhSaElEMGdaM0psWjI5eWFXRnVWRzlYWldWcktHUjBMbU1wTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJrZEM1M1pXVnJSR0YwWVR0Y2JuMWNibHh1THk4Z1kyeHZibVVnY21WaGJHeDVJRzFsWVc1ekxDQmNJbTFoYTJVZ1lTQnVaWGNnYjJKcVpXTjBJSGRwZEdnZ2RHaGxjMlVnYlc5a2FXWnBZMkYwYVc5dWMxd2lMaUJoYkd3Z1hDSnpaWFIwWlhKelhDSWdjbVZoYkd4NUlIVnpaU0IwYUdselhHNHZMeUIwYnlCamNtVmhkR1VnWVNCdVpYY2diMkpxWldOMElIZG9hV3hsSUc5dWJIa2dZMmhoYm1kcGJtY2djMjl0WlNCdlppQjBhR1VnY0hKdmNHVnlkR2xsYzF4dVpuVnVZM1JwYjI0Z1kyeHZibVVvYVc1emRDd2dZV3gwY3lrZ2UxeHVJQ0JqYjI1emRDQmpkWEp5Wlc1MElEMGdlMXh1SUNBZ0lIUnpPaUJwYm5OMExuUnpMRnh1SUNBZ0lIcHZibVU2SUdsdWMzUXVlbTl1WlN4Y2JpQWdJQ0JqT2lCcGJuTjBMbU1zWEc0Z0lDQWdiem9nYVc1emRDNXZMRnh1SUNBZ0lHeHZZem9nYVc1emRDNXNiMk1zWEc0Z0lDQWdhVzUyWVd4cFpEb2dhVzV6ZEM1cGJuWmhiR2xrTEZ4dUlDQjlPMXh1SUNCeVpYUjFjbTRnYm1WM0lFUmhkR1ZVYVcxbEtIc2dMaTR1WTNWeWNtVnVkQ3dnTGk0dVlXeDBjeXdnYjJ4a09pQmpkWEp5Wlc1MElIMHBPMXh1ZlZ4dVhHNHZMeUJtYVc1a0lIUm9aU0J5YVdkb2RDQnZabVp6WlhRZ1lTQm5hWFpsYmlCc2IyTmhiQ0IwYVcxbExpQlVhR1VnYnlCcGJuQjFkQ0JwY3lCdmRYSWdaM1ZsYzNNc0lIZG9hV05vSUdSbGRHVnliV2x1WlhNZ2QyaHBZMmhjYmk4dklHOW1abk5sZENCM1pTZHNiQ0J3YVdOcklHbHVJR0Z0WW1sbmRXOTFjeUJqWVhObGN5QW9aUzVuTGlCMGFHVnlaU0JoY21VZ2RIZHZJRE1nUVUxeklHSXZZeUJHWVd4c1ltRmpheUJFVTFRcFhHNW1kVzVqZEdsdmJpQm1hWGhQWm1aelpYUW9iRzlqWVd4VVV5d2dieXdnZEhvcElIdGNiaUFnTHk4Z1QzVnlJRlZVUXlCMGFXMWxJR2x6SUdwMWMzUWdZU0JuZFdWemN5QmlaV05oZFhObElHOTFjaUJ2Wm1aelpYUWdhWE1nYW5WemRDQmhJR2QxWlhOelhHNGdJR3hsZENCMWRHTkhkV1Z6Y3lBOUlHeHZZMkZzVkZNZ0xTQnZJQ29nTmpBZ0tpQXhNREF3TzF4dVhHNGdJQzh2SUZSbGMzUWdkMmhsZEdobGNpQjBhR1VnZW05dVpTQnRZWFJqYUdWeklIUm9aU0J2Wm1aelpYUWdabTl5SUhSb2FYTWdkSE5jYmlBZ1kyOXVjM1FnYnpJZ1BTQjBlaTV2Wm1aelpYUW9kWFJqUjNWbGMzTXBPMXh1WEc0Z0lDOHZJRWxtSUhOdkxDQnZabVp6WlhRZ1pHbGtiaWQwSUdOb1lXNW5aU0JoYm1RZ2QyVW5jbVVnWkc5dVpWeHVJQ0JwWmlBb2J5QTlQVDBnYnpJcElIdGNiaUFnSUNCeVpYUjFjbTRnVzNWMFkwZDFaWE56TENCdlhUdGNiaUFnZlZ4dVhHNGdJQzh2SUVsbUlHNXZkQ3dnWTJoaGJtZGxJSFJvWlNCMGN5QmllU0IwYUdVZ1pHbG1abVZ5Wlc1alpTQnBiaUIwYUdVZ2IyWm1jMlYwWEc0Z0lIVjBZMGQxWlhOeklDMDlJQ2h2TWlBdElHOHBJQ29nTmpBZ0tpQXhNREF3TzF4dVhHNGdJQzh2SUVsbUlIUm9ZWFFnWjJsMlpYTWdkWE1nZEdobElHeHZZMkZzSUhScGJXVWdkMlVnZDJGdWRDd2dkMlVuY21VZ1pHOXVaVnh1SUNCamIyNXpkQ0J2TXlBOUlIUjZMbTltWm5ObGRDaDFkR05IZFdWemN5azdYRzRnSUdsbUlDaHZNaUE5UFQwZ2J6TXBJSHRjYmlBZ0lDQnlaWFIxY200Z1czVjBZMGQxWlhOekxDQnZNbDA3WEc0Z0lIMWNibHh1SUNBdkx5QkpaaUJwZENkeklHUnBabVpsY21WdWRDd2dkMlVuY21VZ2FXNGdZU0JvYjJ4bElIUnBiV1V1SUZSb1pTQnZabVp6WlhRZ2FHRnpJR05vWVc1blpXUXNJR0oxZENCMGFHVWdkMlVnWkc5dUozUWdZV1JxZFhOMElIUm9aU0IwYVcxbFhHNGdJSEpsZEhWeWJpQmJiRzlqWVd4VVV5QXRJRTFoZEdndWJXbHVLRzh5TENCdk15a2dLaUEyTUNBcUlERXdNREFzSUUxaGRHZ3ViV0Y0S0c4eUxDQnZNeWxkTzF4dWZWeHVYRzR2THlCamIyNTJaWEowSUdGdUlHVndiMk5vSUhScGJXVnpkR0Z0Y0NCcGJuUnZJR0VnWTJGc1pXNWtZWElnYjJKcVpXTjBJSGRwZEdnZ2RHaGxJR2RwZG1WdUlHOW1abk5sZEZ4dVpuVnVZM1JwYjI0Z2RITlViMDlpYWloMGN5d2diMlptYzJWMEtTQjdYRzRnSUhSeklDczlJRzltWm5ObGRDQXFJRFl3SUNvZ01UQXdNRHRjYmx4dUlDQmpiMjV6ZENCa0lEMGdibVYzSUVSaGRHVW9kSE1wTzF4dVhHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ2VXVmhjam9nWkM1blpYUlZWRU5HZFd4c1dXVmhjaWdwTEZ4dUlDQWdJRzF2Ym5Sb09pQmtMbWRsZEZWVVEwMXZiblJvS0NrZ0t5QXhMRnh1SUNBZ0lHUmhlVG9nWkM1blpYUlZWRU5FWVhSbEtDa3NYRzRnSUNBZ2FHOTFjam9nWkM1blpYUlZWRU5JYjNWeWN5Z3BMRnh1SUNBZ0lHMXBiblYwWlRvZ1pDNW5aWFJWVkVOTmFXNTFkR1Z6S0Nrc1hHNGdJQ0FnYzJWamIyNWtPaUJrTG1kbGRGVlVRMU5sWTI5dVpITW9LU3hjYmlBZ0lDQnRhV3hzYVhObFkyOXVaRG9nWkM1blpYUlZWRU5OYVd4c2FYTmxZMjl1WkhNb0tTeGNiaUFnZlR0Y2JuMWNibHh1THk4Z1kyOXVkbVZ5ZENCaElHTmhiR1Z1WkdGeUlHOWlhbVZqZENCMGJ5QmhJR1Z3YjJOb0lIUnBiV1Z6ZEdGdGNGeHVablZ1WTNScGIyNGdiMkpxVkc5VVV5aHZZbW9zSUc5bVpuTmxkQ3dnZW05dVpTa2dlMXh1SUNCeVpYUjFjbTRnWm1sNFQyWm1jMlYwS0c5aWFsUnZURzlqWVd4VVV5aHZZbW9wTENCdlptWnpaWFFzSUhwdmJtVXBPMXh1ZlZ4dVhHNHZMeUJqY21WaGRHVWdZU0J1WlhjZ1JGUWdhVzV6ZEdGdVkyVWdZbmtnWVdSa2FXNW5JR0VnWkhWeVlYUnBiMjRzSUdGa2FuVnpkR2x1WnlCbWIzSWdSRk5VYzF4dVpuVnVZM1JwYjI0Z1lXUnFkWE4wVkdsdFpTaHBibk4wTENCa2RYSXBJSHRjYmlBZ1kyOXVjM1FnYjFCeVpTQTlJR2x1YzNRdWJ5eGNiaUFnSUNCNVpXRnlJRDBnYVc1emRDNWpMbmxsWVhJZ0t5Qk5ZWFJvTG5SeWRXNWpLR1IxY2k1NVpXRnljeWtzWEc0Z0lDQWdiVzl1ZEdnZ1BTQnBibk4wTG1NdWJXOXVkR2dnS3lCTllYUm9MblJ5ZFc1aktHUjFjaTV0YjI1MGFITXBJQ3NnVFdGMGFDNTBjblZ1WXloa2RYSXVjWFZoY25SbGNuTXBJQ29nTXl4Y2JpQWdJQ0JqSUQwZ2UxeHVJQ0FnSUNBZ0xpNHVhVzV6ZEM1akxGeHVJQ0FnSUNBZ2VXVmhjaXhjYmlBZ0lDQWdJRzF2Ym5Sb0xGeHVJQ0FnSUNBZ1pHRjVPbHh1SUNBZ0lDQWdJQ0JOWVhSb0xtMXBiaWhwYm5OMExtTXVaR0Y1TENCa1lYbHpTVzVOYjI1MGFDaDVaV0Z5TENCdGIyNTBhQ2twSUN0Y2JpQWdJQ0FnSUNBZ1RXRjBhQzUwY25WdVl5aGtkWEl1WkdGNWN5a2dLMXh1SUNBZ0lDQWdJQ0JOWVhSb0xuUnlkVzVqS0dSMWNpNTNaV1ZyY3lrZ0tpQTNMRnh1SUNBZ0lIMHNYRzRnSUNBZ2JXbHNiR2x6Vkc5QlpHUWdQU0JFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0h0Y2JpQWdJQ0FnSUhsbFlYSnpPaUJrZFhJdWVXVmhjbk1nTFNCTllYUm9MblJ5ZFc1aktHUjFjaTU1WldGeWN5a3NYRzRnSUNBZ0lDQnhkV0Z5ZEdWeWN6b2daSFZ5TG5GMVlYSjBaWEp6SUMwZ1RXRjBhQzUwY25WdVl5aGtkWEl1Y1hWaGNuUmxjbk1wTEZ4dUlDQWdJQ0FnYlc5dWRHaHpPaUJrZFhJdWJXOXVkR2h6SUMwZ1RXRjBhQzUwY25WdVl5aGtkWEl1Ylc5dWRHaHpLU3hjYmlBZ0lDQWdJSGRsWld0ek9pQmtkWEl1ZDJWbGEzTWdMU0JOWVhSb0xuUnlkVzVqS0dSMWNpNTNaV1ZyY3lrc1hHNGdJQ0FnSUNCa1lYbHpPaUJrZFhJdVpHRjVjeUF0SUUxaGRHZ3VkSEoxYm1Nb1pIVnlMbVJoZVhNcExGeHVJQ0FnSUNBZ2FHOTFjbk02SUdSMWNpNW9iM1Z5Y3l4Y2JpQWdJQ0FnSUcxcGJuVjBaWE02SUdSMWNpNXRhVzUxZEdWekxGeHVJQ0FnSUNBZ2MyVmpiMjVrY3pvZ1pIVnlMbk5sWTI5dVpITXNYRzRnSUNBZ0lDQnRhV3hzYVhObFkyOXVaSE02SUdSMWNpNXRhV3hzYVhObFkyOXVaSE1zWEc0Z0lDQWdmU2t1WVhNb1hDSnRhV3hzYVhObFkyOXVaSE5jSWlrc1hHNGdJQ0FnYkc5allXeFVVeUE5SUc5aWFsUnZURzlqWVd4VVV5aGpLVHRjYmx4dUlDQnNaWFFnVzNSekxDQnZYU0E5SUdacGVFOW1abk5sZENoc2IyTmhiRlJUTENCdlVISmxMQ0JwYm5OMExucHZibVVwTzF4dVhHNGdJR2xtSUNodGFXeHNhWE5VYjBGa1pDQWhQVDBnTUNrZ2UxeHVJQ0FnSUhSeklDczlJRzFwYkd4cGMxUnZRV1JrTzF4dUlDQWdJQzh2SUhSb1lYUWdZMjkxYkdRZ2FHRjJaU0JqYUdGdVoyVmtJSFJvWlNCdlptWnpaWFFnWW5rZ1oyOXBibWNnYjNabGNpQmhJRVJUVkN3Z1luVjBJSGRsSUhkaGJuUWdkRzhnYTJWbGNDQjBhR1VnZEhNZ2RHaGxJSE5oYldWY2JpQWdJQ0J2SUQwZ2FXNXpkQzU2YjI1bExtOW1abk5sZENoMGN5azdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdleUIwY3l3Z2J5QjlPMXh1ZlZ4dVhHNHZMeUJvWld4d1pYSWdkWE5sWm5Wc0lHbHVJSFIxY201cGJtY2dkR2hsSUhKbGMzVnNkSE1nYjJZZ2NHRnljMmx1WnlCcGJuUnZJSEpsWVd3Z1pHRjBaWE5jYmk4dklHSjVJR2hoYm1Sc2FXNW5JSFJvWlNCNmIyNWxJRzl3ZEdsdmJuTmNibVoxYm1OMGFXOXVJSEJoY25ObFJHRjBZVlJ2UkdGMFpWUnBiV1VvY0dGeWMyVmtMQ0J3WVhKelpXUmFiMjVsTENCdmNIUnpMQ0JtYjNKdFlYUXNJSFJsZUhRc0lITndaV05wWm1salQyWm1jMlYwS1NCN1hHNGdJR052Ym5OMElIc2djMlYwV205dVpTd2dlbTl1WlNCOUlEMGdiM0IwY3p0Y2JpQWdhV1lnS0hCaGNuTmxaQ0FtSmlCUFltcGxZM1F1YTJWNWN5aHdZWEp6WldRcExteGxibWQwYUNBaFBUMGdNQ2tnZTF4dUlDQWdJR052Ym5OMElHbHVkR1Z5Y0hKbGRHRjBhVzl1V205dVpTQTlJSEJoY25ObFpGcHZibVVnZkh3Z2VtOXVaU3hjYmlBZ0lDQWdJR2x1YzNRZ1BTQkVZWFJsVkdsdFpTNW1jbTl0VDJKcVpXTjBLSEJoY25ObFpDd2dlMXh1SUNBZ0lDQWdJQ0F1TGk1dmNIUnpMRnh1SUNBZ0lDQWdJQ0I2YjI1bE9pQnBiblJsY25CeVpYUmhkR2x2YmxwdmJtVXNYRzRnSUNBZ0lDQWdJSE53WldOcFptbGpUMlptYzJWMExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUhObGRGcHZibVVnUHlCcGJuTjBJRG9nYVc1emRDNXpaWFJhYjI1bEtIcHZibVVwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJFWVhSbFZHbHRaUzVwYm5aaGJHbGtLRnh1SUNBZ0lDQWdibVYzSUVsdWRtRnNhV1FvWENKMWJuQmhjbk5oWW14bFhDSXNJR0IwYUdVZ2FXNXdkWFFnWENJa2UzUmxlSFI5WENJZ1kyRnVKM1FnWW1VZ2NHRnljMlZrSUdGeklDUjdabTl5YldGMGZXQXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dWZWeHVYRzR2THlCcFppQjViM1VnZDJGdWRDQjBieUJ2ZFhSd2RYUWdZU0IwWldOb2JtbGpZV3dnWm05eWJXRjBJQ2hsTG1jdUlGSkdReUF5T0RJeUtTd2dkR2hwY3lCb1pXeHdaWEpjYmk4dklHaGxiSEJ6SUdoaGJtUnNaU0IwYUdVZ1pHVjBZV2xzYzF4dVpuVnVZM1JwYjI0Z2RHOVVaV05vUm05eWJXRjBLR1IwTENCbWIzSnRZWFFzSUdGc2JHOTNXaUE5SUhSeWRXVXBJSHRjYmlBZ2NtVjBkWEp1SUdSMExtbHpWbUZzYVdSY2JpQWdJQ0EvSUVadmNtMWhkSFJsY2k1amNtVmhkR1VvVEc5allXeGxMbU55WldGMFpTaGNJbVZ1TFZWVFhDSXBMQ0I3WEc0Z0lDQWdJQ0FnSUdGc2JHOTNXaXhjYmlBZ0lDQWdJQ0FnWm05eVkyVlRhVzF3YkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1M1bWIzSnRZWFJFWVhSbFZHbHRaVVp5YjIxVGRISnBibWNvWkhRc0lHWnZjbTFoZENsY2JpQWdJQ0E2SUc1MWJHdzdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIUnZTVk5QUkdGMFpTaHZMQ0JsZUhSbGJtUmxaQ2tnZTF4dUlDQmpiMjV6ZENCc2IyNW5SbTl5YldGMElEMGdieTVqTG5sbFlYSWdQaUE1T1RrNUlIeDhJRzh1WXk1NVpXRnlJRHdnTUR0Y2JpQWdiR1YwSUdNZ1BTQmNJbHdpTzF4dUlDQnBaaUFvYkc5dVowWnZjbTFoZENBbUppQnZMbU11ZVdWaGNpQStQU0F3S1NCaklDczlJRndpSzF3aU8xeHVJQ0JqSUNzOUlIQmhaRk4wWVhKMEtHOHVZeTU1WldGeUxDQnNiMjVuUm05eWJXRjBJRDhnTmlBNklEUXBPMXh1WEc0Z0lHbG1JQ2hsZUhSbGJtUmxaQ2tnZTF4dUlDQWdJR01nS3owZ1hDSXRYQ0k3WEc0Z0lDQWdZeUFyUFNCd1lXUlRkR0Z5ZENodkxtTXViVzl1ZEdncE8xeHVJQ0FnSUdNZ0t6MGdYQ0l0WENJN1hHNGdJQ0FnWXlBclBTQndZV1JUZEdGeWRDaHZMbU11WkdGNUtUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQmpJQ3M5SUhCaFpGTjBZWEowS0c4dVl5NXRiMjUwYUNrN1hHNGdJQ0FnWXlBclBTQndZV1JUZEdGeWRDaHZMbU11WkdGNUtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z1l6dGNibjFjYmx4dVpuVnVZM1JwYjI0Z2RHOUpVMDlVYVcxbEtGeHVJQ0J2TEZ4dUlDQmxlSFJsYm1SbFpDeGNiaUFnYzNWd2NISmxjM05UWldOdmJtUnpMRnh1SUNCemRYQndjbVZ6YzAxcGJHeHBjMlZqYjI1a2N5eGNiaUFnYVc1amJIVmtaVTltWm5ObGRDeGNiaUFnWlhoMFpXNWtaV1JhYjI1bFhHNHBJSHRjYmlBZ2JHVjBJR01nUFNCd1lXUlRkR0Z5ZENodkxtTXVhRzkxY2lrN1hHNGdJR2xtSUNobGVIUmxibVJsWkNrZ2UxeHVJQ0FnSUdNZ0t6MGdYQ0k2WENJN1hHNGdJQ0FnWXlBclBTQndZV1JUZEdGeWRDaHZMbU11YldsdWRYUmxLVHRjYmlBZ0lDQnBaaUFvYnk1akxuTmxZMjl1WkNBaFBUMGdNQ0I4ZkNBaGMzVndjSEpsYzNOVFpXTnZibVJ6S1NCN1hHNGdJQ0FnSUNCaklDczlJRndpT2x3aU8xeHVJQ0FnSUgxY2JpQWdmU0JsYkhObElIdGNiaUFnSUNCaklDczlJSEJoWkZOMFlYSjBLRzh1WXk1dGFXNTFkR1VwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLRzh1WXk1elpXTnZibVFnSVQwOUlEQWdmSHdnSVhOMWNIQnlaWE56VTJWamIyNWtjeWtnZTF4dUlDQWdJR01nS3owZ2NHRmtVM1JoY25Rb2J5NWpMbk5sWTI5dVpDazdYRzVjYmlBZ0lDQnBaaUFvYnk1akxtMXBiR3hwYzJWamIyNWtJQ0U5UFNBd0lIeDhJQ0Z6ZFhCd2NtVnpjMDFwYkd4cGMyVmpiMjVrY3lrZ2UxeHVJQ0FnSUNBZ1l5QXJQU0JjSWk1Y0lqdGNiaUFnSUNBZ0lHTWdLejBnY0dGa1UzUmhjblFvYnk1akxtMXBiR3hwYzJWamIyNWtMQ0F6S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCcFppQW9hVzVqYkhWa1pVOW1abk5sZENrZ2UxeHVJQ0FnSUdsbUlDaHZMbWx6VDJabWMyVjBSbWw0WldRZ0ppWWdieTV2Wm1aelpYUWdQVDA5SURBZ0ppWWdJV1Y0ZEdWdVpHVmtXbTl1WlNrZ2UxeHVJQ0FnSUNBZ1l5QXJQU0JjSWxwY0lqdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHOHVieUE4SURBcElIdGNiaUFnSUNBZ0lHTWdLejBnWENJdFhDSTdYRzRnSUNBZ0lDQmpJQ3M5SUhCaFpGTjBZWEowS0UxaGRHZ3VkSEoxYm1Nb0xXOHVieUF2SURZd0tTazdYRzRnSUNBZ0lDQmpJQ3M5SUZ3aU9sd2lPMXh1SUNBZ0lDQWdZeUFyUFNCd1lXUlRkR0Z5ZENoTllYUm9MblJ5ZFc1aktDMXZMbThnSlNBMk1Da3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCaklDczlJRndpSzF3aU8xeHVJQ0FnSUNBZ1l5QXJQU0J3WVdSVGRHRnlkQ2hOWVhSb0xuUnlkVzVqS0c4dWJ5QXZJRFl3S1NrN1hHNGdJQ0FnSUNCaklDczlJRndpT2x3aU8xeHVJQ0FnSUNBZ1l5QXJQU0J3WVdSVGRHRnlkQ2hOWVhSb0xuUnlkVzVqS0c4dWJ5QWxJRFl3S1NrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2FXWWdLR1Y0ZEdWdVpHVmtXbTl1WlNrZ2UxeHVJQ0FnSUdNZ0t6MGdYQ0piWENJZ0t5QnZMbnB2Ym1VdWFXRnVZVTVoYldVZ0t5QmNJbDFjSWp0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWXp0Y2JuMWNibHh1THk4Z1pHVm1ZWFZzZEhNZ1ptOXlJSFZ1YzNCbFkybG1hV1ZrSUhWdWFYUnpJR2x1SUhSb1pTQnpkWEJ3YjNKMFpXUWdZMkZzWlc1a1lYSnpYRzVqYjI1emRDQmtaV1poZFd4MFZXNXBkRlpoYkhWbGN5QTlJSHRjYmlBZ0lDQnRiMjUwYURvZ01TeGNiaUFnSUNCa1lYazZJREVzWEc0Z0lDQWdhRzkxY2pvZ01DeGNiaUFnSUNCdGFXNTFkR1U2SURBc1hHNGdJQ0FnYzJWamIyNWtPaUF3TEZ4dUlDQWdJRzFwYkd4cGMyVmpiMjVrT2lBd0xGeHVJQ0I5TEZ4dUlDQmtaV1poZFd4MFYyVmxhMVZ1YVhSV1lXeDFaWE1nUFNCN1hHNGdJQ0FnZDJWbGEwNTFiV0psY2pvZ01TeGNiaUFnSUNCM1pXVnJaR0Y1T2lBeExGeHVJQ0FnSUdodmRYSTZJREFzWEc0Z0lDQWdiV2x1ZFhSbE9pQXdMRnh1SUNBZ0lITmxZMjl1WkRvZ01DeGNiaUFnSUNCdGFXeHNhWE5sWTI5dVpEb2dNQ3hjYmlBZ2ZTeGNiaUFnWkdWbVlYVnNkRTl5WkdsdVlXeFZibWwwVm1Gc2RXVnpJRDBnZTF4dUlDQWdJRzl5WkdsdVlXdzZJREVzWEc0Z0lDQWdhRzkxY2pvZ01DeGNiaUFnSUNCdGFXNTFkR1U2SURBc1hHNGdJQ0FnYzJWamIyNWtPaUF3TEZ4dUlDQWdJRzFwYkd4cGMyVmpiMjVrT2lBd0xGeHVJQ0I5TzF4dVhHNHZMeUJWYm1sMGN5QnBiaUIwYUdVZ2MzVndjRzl5ZEdWa0lHTmhiR1Z1WkdGeWN5d2djMjl5ZEdWa0lHSjVJR0pwWjI1bGMzTmNibU52Ym5OMElHOXlaR1Z5WldSVmJtbDBjeUE5SUZ0Y0lubGxZWEpjSWl3Z1hDSnRiMjUwYUZ3aUxDQmNJbVJoZVZ3aUxDQmNJbWh2ZFhKY0lpd2dYQ0p0YVc1MWRHVmNJaXdnWENKelpXTnZibVJjSWl3Z1hDSnRhV3hzYVhObFkyOXVaRndpWFN4Y2JpQWdiM0prWlhKbFpGZGxaV3RWYm1sMGN5QTlJRnRjYmlBZ0lDQmNJbmRsWld0WlpXRnlYQ0lzWEc0Z0lDQWdYQ0ozWldWclRuVnRZbVZ5WENJc1hHNGdJQ0FnWENKM1pXVnJaR0Y1WENJc1hHNGdJQ0FnWENKb2IzVnlYQ0lzWEc0Z0lDQWdYQ0p0YVc1MWRHVmNJaXhjYmlBZ0lDQmNJbk5sWTI5dVpGd2lMRnh1SUNBZ0lGd2liV2xzYkdselpXTnZibVJjSWl4Y2JpQWdYU3hjYmlBZ2IzSmtaWEpsWkU5eVpHbHVZV3hWYm1sMGN5QTlJRnRjSW5sbFlYSmNJaXdnWENKdmNtUnBibUZzWENJc0lGd2lhRzkxY2x3aUxDQmNJbTFwYm5WMFpWd2lMQ0JjSW5ObFkyOXVaRndpTENCY0ltMXBiR3hwYzJWamIyNWtYQ0pkTzF4dVhHNHZMeUJ6ZEdGdVpHRnlaR2w2WlNCallYTmxJR0Z1WkNCd2JIVnlZV3hwZEhrZ2FXNGdkVzVwZEhOY2JtWjFibU4wYVc5dUlHNXZjbTFoYkdsNlpWVnVhWFFvZFc1cGRDa2dlMXh1SUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrSUQwZ2UxeHVJQ0FnSUhsbFlYSTZJRndpZVdWaGNsd2lMRnh1SUNBZ0lIbGxZWEp6T2lCY0lubGxZWEpjSWl4Y2JpQWdJQ0J0YjI1MGFEb2dYQ0p0YjI1MGFGd2lMRnh1SUNBZ0lHMXZiblJvY3pvZ1hDSnRiMjUwYUZ3aUxGeHVJQ0FnSUdSaGVUb2dYQ0prWVhsY0lpeGNiaUFnSUNCa1lYbHpPaUJjSW1SaGVWd2lMRnh1SUNBZ0lHaHZkWEk2SUZ3aWFHOTFjbHdpTEZ4dUlDQWdJR2h2ZFhKek9pQmNJbWh2ZFhKY0lpeGNiaUFnSUNCdGFXNTFkR1U2SUZ3aWJXbHVkWFJsWENJc1hHNGdJQ0FnYldsdWRYUmxjem9nWENKdGFXNTFkR1ZjSWl4Y2JpQWdJQ0J4ZFdGeWRHVnlPaUJjSW5GMVlYSjBaWEpjSWl4Y2JpQWdJQ0J4ZFdGeWRHVnljem9nWENKeGRXRnlkR1Z5WENJc1hHNGdJQ0FnYzJWamIyNWtPaUJjSW5ObFkyOXVaRndpTEZ4dUlDQWdJSE5sWTI5dVpITTZJRndpYzJWamIyNWtYQ0lzWEc0Z0lDQWdiV2xzYkdselpXTnZibVE2SUZ3aWJXbHNiR2x6WldOdmJtUmNJaXhjYmlBZ0lDQnRhV3hzYVhObFkyOXVaSE02SUZ3aWJXbHNiR2x6WldOdmJtUmNJaXhjYmlBZ0lDQjNaV1ZyWkdGNU9pQmNJbmRsWld0a1lYbGNJaXhjYmlBZ0lDQjNaV1ZyWkdGNWN6b2dYQ0ozWldWclpHRjVYQ0lzWEc0Z0lDQWdkMlZsYTI1MWJXSmxjam9nWENKM1pXVnJUblZ0WW1WeVhDSXNYRzRnSUNBZ2QyVmxhM051ZFcxaVpYSTZJRndpZDJWbGEwNTFiV0psY2x3aUxGeHVJQ0FnSUhkbFpXdHVkVzFpWlhKek9pQmNJbmRsWld0T2RXMWlaWEpjSWl4Y2JpQWdJQ0IzWldWcmVXVmhjam9nWENKM1pXVnJXV1ZoY2x3aUxGeHVJQ0FnSUhkbFpXdDVaV0Z5Y3pvZ1hDSjNaV1ZyV1dWaGNsd2lMRnh1SUNBZ0lHOXlaR2x1WVd3NklGd2liM0prYVc1aGJGd2lMRnh1SUNCOVczVnVhWFF1ZEc5TWIzZGxja05oYzJVb0tWMDdYRzVjYmlBZ2FXWWdLQ0Z1YjNKdFlXeHBlbVZrS1NCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkZWdWFYUkZjbkp2Y2loMWJtbDBLVHRjYmx4dUlDQnlaWFIxY200Z2JtOXliV0ZzYVhwbFpEdGNibjFjYmx4dUx5OGdkR2hwY3lCcGN5QmhJR1IxYldKbFpDQmtiM2R1SUhabGNuTnBiMjRnYjJZZ1puSnZiVTlpYW1WamRDZ3BJSFJvWVhRZ2NuVnVjeUJoWW05MWRDQTJNQ1VnWm1GemRHVnlYRzR2THlCaWRYUWdaRzlsYzI0bmRDQmtieUJoYm5rZ2RtRnNhV1JoZEdsdmJpd2diV0ZyWlhNZ1lTQmlkVzVqYUNCdlppQmhjM04xYlhCMGFXOXVjeUJoWW05MWRDQjNhR0YwSUhWdWFYUnpYRzR2THlCaGNtVWdjSEpsYzJWdWRDd2dZVzVrSUhOdklHOXVMbHh1Wm5WdVkzUnBiMjRnY1hWcFkydEVWQ2h2WW1vc0lHOXdkSE1wSUh0Y2JpQWdZMjl1YzNRZ2VtOXVaU0E5SUc1dmNtMWhiR2w2WlZwdmJtVW9iM0IwY3k1NmIyNWxMQ0JUWlhSMGFXNW5jeTVrWldaaGRXeDBXbTl1WlNrc1hHNGdJQ0FnYkc5aklEMGdURzlqWVd4bExtWnliMjFQWW1wbFkzUW9iM0IwY3lrc1hHNGdJQ0FnZEhOT2IzY2dQU0JUWlhSMGFXNW5jeTV1YjNjb0tUdGNibHh1SUNCc1pYUWdkSE1zSUc4N1hHNWNiaUFnTHk4Z1lYTnpkVzFsSUhkbElHaGhkbVVnZEdobElHaHBaMmhsY2kxdmNtUmxjaUIxYm1sMGMxeHVJQ0JwWmlBb0lXbHpWVzVrWldacGJtVmtLRzlpYWk1NVpXRnlLU2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZFNCdlppQnZjbVJsY21Wa1ZXNXBkSE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMVZ1WkdWbWFXNWxaQ2h2WW1wYmRWMHBLU0I3WEc0Z0lDQWdJQ0FnSUc5aWFsdDFYU0E5SUdSbFptRjFiSFJWYm1sMFZtRnNkV1Z6VzNWZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR2x1ZG1Gc2FXUWdQU0JvWVhOSmJuWmhiR2xrUjNKbFoyOXlhV0Z1UkdGMFlTaHZZbW9wSUh4OElHaGhjMGx1ZG1Gc2FXUlVhVzFsUkdGMFlTaHZZbW9wTzF4dUlDQWdJR2xtSUNocGJuWmhiR2xrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkdGMFpWUnBiV1V1YVc1MllXeHBaQ2hwYm5aaGJHbGtLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdlptWnpaWFJRY205MmFYTWdQU0I2YjI1bExtOW1abk5sZENoMGMwNXZkeWs3WEc0Z0lDQWdXM1J6TENCdlhTQTlJRzlpYWxSdlZGTW9iMkpxTENCdlptWnpaWFJRY205MmFYTXNJSHB2Ym1VcE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lIUnpJRDBnZEhOT2IzYzdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdibVYzSUVSaGRHVlVhVzFsS0hzZ2RITXNJSHB2Ym1Vc0lHeHZZeXdnYnlCOUtUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pHbG1abEpsYkdGMGFYWmxLSE4wWVhKMExDQmxibVFzSUc5d2RITXBJSHRjYmlBZ1kyOXVjM1FnY205MWJtUWdQU0JwYzFWdVpHVm1hVzVsWkNodmNIUnpMbkp2ZFc1a0tTQS9JSFJ5ZFdVZ09pQnZjSFJ6TG5KdmRXNWtMRnh1SUNBZ0lHWnZjbTFoZENBOUlDaGpMQ0IxYm1sMEtTQTlQaUI3WEc0Z0lDQWdJQ0JqSUQwZ2NtOTFibVJVYnloakxDQnliM1Z1WkNCOGZDQnZjSFJ6TG1OaGJHVnVaR0Z5ZVNBL0lEQWdPaUF5TENCMGNuVmxLVHRjYmlBZ0lDQWdJR052Ym5OMElHWnZjbTFoZEhSbGNpQTlJR1Z1WkM1c2IyTXVZMnh2Ym1Vb2IzQjBjeWt1Y21Wc1JtOXliV0YwZEdWeUtHOXdkSE1wTzF4dUlDQWdJQ0FnY21WMGRYSnVJR1p2Y20xaGRIUmxjaTVtYjNKdFlYUW9ZeXdnZFc1cGRDazdYRzRnSUNBZ2ZTeGNiaUFnSUNCa2FXWm1aWElnUFNBb2RXNXBkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLRzl3ZEhNdVkyRnNaVzVrWVhKNUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFpXNWtMbWhoYzFOaGJXVW9jM1JoY25Rc0lIVnVhWFFwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHVnVaQzV6ZEdGeWRFOW1LSFZ1YVhRcExtUnBabVlvYzNSaGNuUXVjM1JoY25SUFppaDFibWwwS1N3Z2RXNXBkQ2t1WjJWMEtIVnVhWFFwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnY21WMGRYSnVJREE3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaVzVrTG1ScFptWW9jM1JoY25Rc0lIVnVhWFFwTG1kbGRDaDFibWwwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5TzF4dVhHNGdJR2xtSUNodmNIUnpMblZ1YVhRcElIdGNiaUFnSUNCeVpYUjFjbTRnWm05eWJXRjBLR1JwWm1abGNpaHZjSFJ6TG5WdWFYUXBMQ0J2Y0hSekxuVnVhWFFwTzF4dUlDQjlYRzVjYmlBZ1ptOXlJQ2hqYjI1emRDQjFibWwwSUc5bUlHOXdkSE11ZFc1cGRITXBJSHRjYmlBZ0lDQmpiMjV6ZENCamIzVnVkQ0E5SUdScFptWmxjaWgxYm1sMEtUdGNiaUFnSUNCcFppQW9UV0YwYUM1aFluTW9ZMjkxYm5RcElENDlJREVwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtYjNKdFlYUW9ZMjkxYm5Rc0lIVnVhWFFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdabTl5YldGMEtITjBZWEowSUQ0Z1pXNWtJRDhnTFRBZ09pQXdMQ0J2Y0hSekxuVnVhWFJ6VzI5d2RITXVkVzVwZEhNdWJHVnVaM1JvSUMwZ01WMHBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnNZWE4wVDNCMGN5aGhjbWRNYVhOMEtTQjdYRzRnSUd4bGRDQnZjSFJ6SUQwZ2UzMHNYRzRnSUNBZ1lYSm5jenRjYmlBZ2FXWWdLR0Z5WjB4cGMzUXViR1Z1WjNSb0lENGdNQ0FtSmlCMGVYQmxiMllnWVhKblRHbHpkRnRoY21kTWFYTjBMbXhsYm1kMGFDQXRJREZkSUQwOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdiM0IwY3lBOUlHRnlaMHhwYzNSYllYSm5UR2x6ZEM1c1pXNW5kR2dnTFNBeFhUdGNiaUFnSUNCaGNtZHpJRDBnUVhKeVlYa3Vabkp2YlNoaGNtZE1hWE4wS1M1emJHbGpaU2d3TENCaGNtZE1hWE4wTG14bGJtZDBhQ0F0SURFcE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHRnlaM01nUFNCQmNuSmhlUzVtY205dEtHRnlaMHhwYzNRcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCYmIzQjBjeXdnWVhKbmMxMDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FTQkVZWFJsVkdsdFpTQnBjeUJoYmlCcGJXMTFkR0ZpYkdVZ1pHRjBZU0J6ZEhKMVkzUjFjbVVnY21Wd2NtVnpaVzUwYVc1bklHRWdjM0JsWTJsbWFXTWdaR0YwWlNCaGJtUWdkR2x0WlNCaGJtUWdZV05qYjIxd1lXNTVhVzVuSUcxbGRHaHZaSE11SUVsMElHTnZiblJoYVc1eklHTnNZWE56SUdGdVpDQnBibk4wWVc1alpTQnRaWFJvYjJSeklHWnZjaUJqY21WaGRHbHVaeXdnY0dGeWMybHVaeXdnYVc1MFpYSnliMmRoZEdsdVp5d2dkSEpoYm5ObWIzSnRhVzVuTENCaGJtUWdabTl5YldGMGRHbHVaeUIwYUdWdExseHVJQ3BjYmlBcUlFRWdSR0YwWlZScGJXVWdZMjl0Y0hKcGMyVnpJRzltT2x4dUlDb2dLaUJCSUhScGJXVnpkR0Z0Y0M0Z1JXRmphQ0JFWVhSbFZHbHRaU0JwYm5OMFlXNWpaU0J5WldabGNuTWdkRzhnWVNCemNHVmphV1pwWXlCdGFXeHNhWE5sWTI5dVpDQnZaaUIwYUdVZ1ZXNXBlQ0JsY0c5amFDNWNiaUFxSUNvZ1FTQjBhVzFsSUhwdmJtVXVJRVZoWTJnZ2FXNXpkR0Z1WTJVZ2FYTWdZMjl1YzJsa1pYSmxaQ0JwYmlCMGFHVWdZMjl1ZEdWNGRDQnZaaUJoSUhOd1pXTnBabWxqSUhwdmJtVWdLR0o1SUdSbFptRjFiSFFnZEdobElHeHZZMkZzSUhONWMzUmxiU2R6SUhwdmJtVXBMbHh1SUNvZ0tpQkRiMjVtYVdkMWNtRjBhVzl1SUhCeWIzQmxjblJwWlhNZ2RHaGhkQ0JsWm1abFkzUWdhRzkzSUc5MWRIQjFkQ0J6ZEhKcGJtZHpJR0Z5WlNCbWIzSnRZWFIwWldRc0lITjFZMmdnWVhNZ1lHeHZZMkZzWldBc0lHQnVkVzFpWlhKcGJtZFRlWE4wWlcxZ0xDQmhibVFnWUc5MWRIQjFkRU5oYkdWdVpHRnlZQzVjYmlBcVhHNGdLaUJJWlhKbElHbHpJR0VnWW5KcFpXWWdiM1psY25acFpYY2diMllnZEdobElHMXZjM1FnWTI5dGJXOXViSGtnZFhObFpDQm1kVzVqZEdsdmJtRnNhWFI1SUdsMElIQnliM1pwWkdWek9seHVJQ3BjYmlBcUlDb2dLaXBEY21WaGRHbHZiaW9xT2lCVWJ5QmpjbVZoZEdVZ1lTQkVZWFJsVkdsdFpTQm1jbTl0SUdsMGN5QmpiMjF3YjI1bGJuUnpMQ0IxYzJVZ2IyNWxJRzltSUdsMGN5Qm1ZV04wYjNKNUlHTnNZWE56SUcxbGRHaHZaSE02SUh0QWJHbHVheUJFWVhSbFZHbHRaU05zYjJOaGJIMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjFkR045TENCaGJtUWdLRzF2YzNRZ1pteGxlR2xpYkhrcElIdEFiR2x1YXlCRVlYUmxWR2x0WlNObWNtOXRUMkpxWldOMGZTNGdWRzhnWTNKbFlYUmxJRzl1WlNCbWNtOXRJR0VnYzNSaGJtUmhjbVFnYzNSeWFXNW5JR1p2Y20xaGRDd2dkWE5sSUh0QWJHbHVheUJFWVhSbFZHbHRaU05tY205dFNWTlBmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJMlp5YjIxSVZGUlFmU3dnWVc1a0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNObWNtOXRVa1pETWpneU1uMHVJRlJ2SUdOeVpXRjBaU0J2Ym1VZ1puSnZiU0JoSUdOMWMzUnZiU0J6ZEhKcGJtY2dabTl5YldGMExDQjFjMlVnZTBCc2FXNXJJRVJoZEdWVWFXMWxJMlp5YjIxR2IzSnRZWFI5TGlCVWJ5QmpjbVZoZEdVZ2IyNWxJR1p5YjIwZ1lTQnVZWFJwZG1VZ1NsTWdaR0YwWlN3Z2RYTmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTm1jbTl0U2xORVlYUmxmUzVjYmlBcUlDb2dLaXBIY21WbmIzSnBZVzRnWTJGc1pXNWtZWElnWVc1a0lIUnBiV1VxS2pvZ1ZHOGdaWGhoYldsdVpTQjBhR1VnUjNKbFoyOXlhV0Z1SUhCeWIzQmxjblJwWlhNZ2IyWWdZU0JFWVhSbFZHbHRaU0JwYm1ScGRtbGtkV0ZzYkhrZ0tHa3VaU0JoY3lCdmNIQnZjMlZrSUhSdklHTnZiR3hsWTNScGRtVnNlU0IwYUhKdmRXZG9JSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMDlpYW1WamRIMHBMQ0IxYzJVZ2RHaGxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjVaV0Z5ZlN3Z2UwQnNhVzVySUVSaGRHVlVhVzFsSTIxdmJuUm9mU3hjYmlBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOa1lYbDlMQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWphRzkxY24wc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOdGFXNTFkR1Y5TENCN1FHeHBibXNnUkdGMFpWUnBiV1VqYzJWamIyNWtmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJMjFwYkd4cGMyVmpiMjVrZlNCaFkyTmxjM052Y25NdVhHNGdLaUFxSUNvcVYyVmxheUJqWVd4bGJtUmhjaW9xT2lCR2IzSWdTVk5QSUhkbFpXc2dZMkZzWlc1a1lYSWdZWFIwY21saWRYUmxjeXdnYzJWbElIUm9aU0I3UUd4cGJtc2dSR0YwWlZScGJXVWpkMlZsYTFsbFlYSjlMQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpkMlZsYTA1MWJXSmxjbjBzSUdGdVpDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamQyVmxhMlJoZVgwZ1lXTmpaWE56YjNKekxseHVJQ29nS2lBcUtrTnZibVpwWjNWeVlYUnBiMjRxS2lCVFpXVWdkR2hsSUh0QWJHbHVheUJFWVhSbFZHbHRaU05zYjJOaGJHVjlJR0Z1WkNCN1FHeHBibXNnUkdGMFpWUnBiV1VqYm5WdFltVnlhVzVuVTNsemRHVnRmU0JoWTJObGMzTnZjbk11WEc0Z0tpQXFJQ29xVkhKaGJuTm1iM0p0WVhScGIyNHFLam9nVkc4Z2RISmhibk5tYjNKdElIUm9aU0JFWVhSbFZHbHRaU0JwYm5SdklHOTBhR1Z5SUVSaGRHVlVhVzFsY3l3Z2RYTmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTnpaWFI5TENCN1FHeHBibXNnUkdGMFpWUnBiV1VqY21WamIyNW1hV2QxY21WOUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamMyVjBXbTl1Wlgwc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOelpYUk1iMk5oYkdWOUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVdWNHeDFjMzBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU050YVc1MWMzMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTmxibVJQWm4wc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOemRHRnlkRTltZlN3Z2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlZWUkRmU3dnWVc1a0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzZlM1Y2JpQXFJQ29nS2lwUGRYUndkWFFxS2pvZ1ZHOGdZMjl1ZG1WeWRDQjBhR1VnUkdGMFpWUnBiV1VnZEc4Z2IzUm9aWElnY21Wd2NtVnpaVzUwWVhScGIyNXpMQ0IxYzJVZ2RHaGxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMUpsYkdGMGFYWmxmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VW1Wc1lYUnBkbVZEWVd4bGJtUmhjbjBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjBwVFQwNTlMQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlKVTA5OUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOUlWRlJRZlN3Z2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlQySnFaV04wZlN3Z2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlVrWkRNamd5TW4wc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIxTjBjbWx1WjMwc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjBadmNtMWhkSDBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjAxcGJHeHBjMzBnWVc1a0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIwcFRSR0YwWlgwdVhHNGdLbHh1SUNvZ1ZHaGxjbVVuY3lCd2JHVnVkSGtnYjNSb1pYSnpJR1J2WTNWdFpXNTBaV1FnWW1Wc2IzY3VJRWx1SUdGa1pHbDBhVzl1TENCbWIzSWdiVzl5WlNCcGJtWnZjbTFoZEdsdmJpQnZiaUJ6ZFdKMGJHVnlJSFJ2Y0dsamN5QnNhV3RsSUdsdWRHVnlibUYwYVc5dVlXeHBlbUYwYVc5dUxDQjBhVzFsSUhwdmJtVnpMQ0JoYkhSbGNtNWhkR2wyWlNCallXeGxibVJoY25Nc0lIWmhiR2xrYVhSNUxDQmhibVFnYzI4Z2IyNHNJSE5sWlNCMGFHVWdaWGgwWlhKdVlXd2daRzlqZFcxbGJuUmhkR2x2Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdZMnhoYzNNZ1JHRjBaVlJwYldVZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdGalkyVnpjeUJ3Y21sMllYUmxYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2loamIyNW1hV2NwSUh0Y2JpQWdJQ0JqYjI1emRDQjZiMjVsSUQwZ1kyOXVabWxuTG5wdmJtVWdmSHdnVTJWMGRHbHVaM011WkdWbVlYVnNkRnB2Ym1VN1hHNWNiaUFnSUNCc1pYUWdhVzUyWVd4cFpDQTlYRzRnSUNBZ0lDQmpiMjVtYVdjdWFXNTJZV3hwWkNCOGZGeHVJQ0FnSUNBZ0tFNTFiV0psY2k1cGMwNWhUaWhqYjI1bWFXY3VkSE1wSUQ4Z2JtVjNJRWx1ZG1Gc2FXUW9YQ0pwYm5aaGJHbGtJR2x1Y0hWMFhDSXBJRG9nYm5Wc2JDa2dmSHhjYmlBZ0lDQWdJQ2doZW05dVpTNXBjMVpoYkdsa0lEOGdkVzV6ZFhCd2IzSjBaV1JhYjI1bEtIcHZibVVwSURvZ2JuVnNiQ2s3WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUdGalkyVnpjeUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RHaHBjeTUwY3lBOUlHbHpWVzVrWldacGJtVmtLR052Ym1acFp5NTBjeWtnUHlCVFpYUjBhVzVuY3k1dWIzY29LU0E2SUdOdmJtWnBaeTUwY3p0Y2JseHVJQ0FnSUd4bGRDQmpJRDBnYm5Wc2JDeGNiaUFnSUNBZ0lHOGdQU0J1ZFd4c08xeHVJQ0FnSUdsbUlDZ2hhVzUyWVd4cFpDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2RXNWphR0Z1WjJWa0lEMGdZMjl1Wm1sbkxtOXNaQ0FtSmlCamIyNW1hV2N1YjJ4a0xuUnpJRDA5UFNCMGFHbHpMblJ6SUNZbUlHTnZibVpwWnk1dmJHUXVlbTl1WlM1bGNYVmhiSE1vZW05dVpTazdYRzVjYmlBZ0lDQWdJR2xtSUNoMWJtTm9ZVzVuWldRcElIdGNiaUFnSUNBZ0lDQWdXMk1zSUc5ZElEMGdXMk52Ym1acFp5NXZiR1F1WXl3Z1kyOXVabWxuTG05c1pDNXZYVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOTBJRDBnZW05dVpTNXZabVp6WlhRb2RHaHBjeTUwY3lrN1hHNGdJQ0FnSUNBZ0lHTWdQU0IwYzFSdlQySnFLSFJvYVhNdWRITXNJRzkwS1R0Y2JpQWdJQ0FnSUNBZ2FXNTJZV3hwWkNBOUlFNTFiV0psY2k1cGMwNWhUaWhqTG5sbFlYSXBJRDhnYm1WM0lFbHVkbUZzYVdRb1hDSnBiblpoYkdsa0lHbHVjSFYwWENJcElEb2diblZzYkR0Y2JpQWdJQ0FnSUNBZ1l5QTlJR2x1ZG1Gc2FXUWdQeUJ1ZFd4c0lEb2dZenRjYmlBZ0lDQWdJQ0FnYnlBOUlHbHVkbUZzYVdRZ1B5QnVkV3hzSURvZ2IzUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NWZlbTl1WlNBOUlIcHZibVU3WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUdGalkyVnpjeUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RHaHBjeTVzYjJNZ1BTQmpiMjVtYVdjdWJHOWpJSHg4SUV4dlkyRnNaUzVqY21WaGRHVW9LVHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbWx1ZG1Gc2FXUWdQU0JwYm5aaGJHbGtPMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJoWTJObGMzTWdjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVkMlZsYTBSaGRHRWdQU0J1ZFd4c08xeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQmhZMk5sYzNNZ2NISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdVl5QTlJR003WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUdGalkyVnpjeUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RHaHBjeTV2SUQwZ2J6dGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtbHpUSFY0YjI1RVlYUmxWR2x0WlNBOUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNBdkx5QkRUMDVUVkZKVlExUmNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ1JHRjBaVlJwYldVZ1ptOXlJSFJvWlNCamRYSnlaVzUwSUdsdWMzUmhiblFzSUdsdUlIUm9aU0J6ZVhOMFpXMG5jeUIwYVcxbElIcHZibVV1WEc0Z0lDQXFYRzRnSUNBcUlGVnpaU0JUWlhSMGFXNW5jeUIwYnlCdmRtVnljbWxrWlNCMGFHVnpaU0JrWldaaGRXeDBJSFpoYkhWbGN5QnBaaUJ1WldWa1pXUXVYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtNXZkeWdwTG5SdlNWTlBLQ2tnTHk5K1BpQnViM2NnYVc0Z2RHaGxJRWxUVHlCbWIzSnRZWFJjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdibTkzS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JHRjBaVlJwYldVb2UzMHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUd4dlkyRnNJRVJoZEdWVWFXMWxYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmVXVmhjbDBnTFNCVWFHVWdZMkZzWlc1a1lYSWdlV1ZoY2k0Z1NXWWdiMjFwZEhSbFpDQW9ZWE1nYVc0c0lHTmhiR3dnWUd4dlkyRnNLQ2xnSUhkcGRHZ2dibThnWVhKbmRXMWxiblJ6S1N3Z2RHaGxJR04xY25KbGJuUWdkR2x0WlNCM2FXeHNJR0psSUhWelpXUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0dGIyNTBhRDB4WFNBdElGUm9aU0J0YjI1MGFDd2dNUzFwYm1SbGVHVmtYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYlpHRjVQVEZkSUMwZ1ZHaGxJR1JoZVNCdlppQjBhR1VnYlc5dWRHZ3NJREV0YVc1a1pYaGxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyaHZkWEk5TUYwZ0xTQlVhR1VnYUc5MWNpQnZaaUIwYUdVZ1pHRjVMQ0JwYmlBeU5DMW9iM1Z5SUhScGJXVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0dGFXNTFkR1U5TUYwZ0xTQlVhR1VnYldsdWRYUmxJRzltSUhSb1pTQm9iM1Z5TENCdFpXRnVhVzVuSUdFZ2JuVnRZbVZ5SUdKbGRIZGxaVzRnTUNCaGJtUWdOVGxjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHpaV052Ym1ROU1GMGdMU0JVYUdVZ2MyVmpiMjVrSUc5bUlIUm9aU0J0YVc1MWRHVXNJRzFsWVc1cGJtY2dZU0J1ZFcxaVpYSWdZbVYwZDJWbGJpQXdJR0Z1WkNBMU9WeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzIxcGJHeHBjMlZqYjI1a1BUQmRJQzBnVkdobElHMXBiR3hwYzJWamIyNWtJRzltSUhSb1pTQnpaV052Ym1Rc0lHMWxZVzVwYm1jZ1lTQnVkVzFpWlhJZ1ltVjBkMlZsYmlBd0lHRnVaQ0E1T1RsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29LU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMMzQrSUc1dmQxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2g3SUhwdmJtVTZJRndpUVcxbGNtbGpZUzlPWlhkZldXOXlhMXdpSUgwcElDQWdJQ0FnTHk5K1BpQnViM2NzSUdsdUlGVlRJR1ZoYzNRZ1kyOWhjM1FnZEdsdFpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2d5TURFM0tTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2Zmo0Z01qQXhOeTB3TVMwd01WUXdNRG93TURvd01GeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2d5TURFM0xDQXpLU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2Zmo0Z01qQXhOeTB3TXkwd01WUXdNRG93TURvd01GeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2d5TURFM0xDQXpMQ0F4TWl3Z2V5QnNiMk5oYkdVNklGd2labkpjSWlCOUtTQWdJQ0FnTHk5K1BpQXlNREUzTFRBekxURXlWREF3T2pBd09qQXdMQ0IzYVhSb0lHRWdSbkpsYm1Ob0lHeHZZMkZzWlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBekxDQXhNaXdnTlNrZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNeTB4TWxRd05Ub3dNRG93TUZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBekxDQXhNaXdnTlN3Z2V5QjZiMjVsT2lCY0luVjBZMXdpSUgwcElDQWdMeTkrUGlBeU1ERTNMVEF6TFRFeVZEQTFPakF3T2pBd0xDQnBiaUJWVkVOY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z015d2dNVElzSURVc0lEUTFLU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMMzQrSURJd01UY3RNRE10TVRKVU1EVTZORFU2TURCY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z015d2dNVElzSURVc0lEUTFMQ0F4TUNrZ0lDQWdJQ0FnSUNBZ0lDQXZMMzQrSURJd01UY3RNRE10TVRKVU1EVTZORFU2TVRCY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z015d2dNVElzSURVc0lEUTFMQ0F4TUN3Z056WTFLU0FnSUNBZ0lDQXZMMzQrSURJd01UY3RNRE10TVRKVU1EVTZORFU2TVRBdU56WTFYRzRnSUNBcUlFQnlaWFIxY200Z2UwUmhkR1ZVYVcxbGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHeHZZMkZzS0NrZ2UxeHVJQ0FnSUdOdmJuTjBJRnR2Y0hSekxDQmhjbWR6WFNBOUlHeGhjM1JQY0hSektHRnlaM1Z0Wlc1MGN5a3NYRzRnSUNBZ0lDQmJlV1ZoY2l3Z2JXOXVkR2dzSUdSaGVTd2dhRzkxY2l3Z2JXbHVkWFJsTENCelpXTnZibVFzSUcxcGJHeHBjMlZqYjI1a1hTQTlJR0Z5WjNNN1hHNGdJQ0FnY21WMGRYSnVJSEYxYVdOclJGUW9leUI1WldGeUxDQnRiMjUwYUN3Z1pHRjVMQ0JvYjNWeUxDQnRhVzUxZEdVc0lITmxZMjl1WkN3Z2JXbHNiR2x6WldOdmJtUWdmU3dnYjNCMGN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkdGMFpWUnBiV1VnYVc0Z1ZWUkRYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmVXVmhjbDBnTFNCVWFHVWdZMkZzWlc1a1lYSWdlV1ZoY2k0Z1NXWWdiMjFwZEhSbFpDQW9ZWE1nYVc0c0lHTmhiR3dnWUhWMFl5Z3BZQ0IzYVhSb0lHNXZJR0Z5WjNWdFpXNTBjeWtzSUhSb1pTQmpkWEp5Wlc1MElIUnBiV1VnZDJsc2JDQmlaU0IxYzJWa1hHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYlc5dWRHZzlNVjBnTFNCVWFHVWdiVzl1ZEdnc0lERXRhVzVrWlhobFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJSaGVUMHhYU0F0SUZSb1pTQmtZWGtnYjJZZ2RHaGxJRzF2Ym5Sb1hHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYUc5MWNqMHdYU0F0SUZSb1pTQm9iM1Z5SUc5bUlIUm9aU0JrWVhrc0lHbHVJREkwTFdodmRYSWdkR2x0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjFwYm5WMFpUMHdYU0F0SUZSb1pTQnRhVzUxZEdVZ2IyWWdkR2hsSUdodmRYSXNJRzFsWVc1cGJtY2dZU0J1ZFcxaVpYSWdZbVYwZDJWbGJpQXdJR0Z1WkNBMU9WeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNObFkyOXVaRDB3WFNBdElGUm9aU0J6WldOdmJtUWdiMllnZEdobElHMXBiblYwWlN3Z2JXVmhibWx1WnlCaElHNTFiV0psY2lCaVpYUjNaV1Z1SURBZ1lXNWtJRFU1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJiV2xzYkdselpXTnZibVE5TUYwZ0xTQlVhR1VnYldsc2JHbHpaV052Ym1RZ2IyWWdkR2hsSUhObFkyOXVaQ3dnYldWaGJtbHVaeUJoSUc1MWJXSmxjaUJpWlhSM1pXVnVJREFnWVc1a0lEazVPVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBhVzl1Y3lBdElHTnZibVpwWjNWeVlYUnBiMjRnYjNCMGFXOXVjeUJtYjNJZ2RHaGxJRVJoZEdWVWFXMWxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBhVzl1Y3k1c2IyTmhiR1ZkSUMwZ1lTQnNiMk5oYkdVZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJwYjI1ekxtOTFkSEIxZEVOaGJHVnVaR0Z5WFNBdElIUm9aU0J2ZFhSd2RYUWdZMkZzWlc1a1lYSWdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hScGIyNXpMbTUxYldKbGNtbHVaMU41YzNSbGJWMGdMU0IwYUdVZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlNCMGJ5QnpaWFFnYjI0Z2RHaGxJSEpsYzNWc2RHbHVaeUJFWVhSbFZHbHRaU0JwYm5OMFlXNWpaVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vS1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJRzV2ZDF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb01qQXhOeWtnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMMzQrSURJd01UY3RNREV0TURGVU1EQTZNREE2TURCYVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG5WMFl5Z3lNREUzTENBektTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2Zmo0Z01qQXhOeTB3TXkwd01WUXdNRG93TURvd01GcGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWRYUmpLREl3TVRjc0lETXNJREV5S1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk5K1BpQXlNREUzTFRBekxURXlWREF3T2pBd09qQXdXbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vTWpBeE55d2dNeXdnTVRJc0lEVXBJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJREl3TVRjdE1ETXRNVEpVTURVNk1EQTZNREJhWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMblYwWXlneU1ERTNMQ0F6TENBeE1pd2dOU3dnTkRVcElDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNeTB4TWxRd05UbzBOVG93TUZwY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVGNzSURNc0lERXlMQ0ExTENBME5Td2dleUJzYjJOaGJHVTZJRndpWm5KY0lpQjlLU0FnSUNBZ0lDQWdJQ0F2TDM0K0lESXdNVGN0TURNdE1USlVNRFU2TkRVNk1EQmFJSGRwZEdnZ1lTQkdjbVZ1WTJnZ2JHOWpZV3hsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMblYwWXlneU1ERTNMQ0F6TENBeE1pd2dOU3dnTkRVc0lERXdLU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNeTB4TWxRd05UbzBOVG94TUZwY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVGNzSURNc0lERXlMQ0ExTENBME5Td2dNVEFzSURjMk5Td2dleUJzYjJOaGJHVTZJRndpWm5KY0lpQjlLU0F2TDM0K0lESXdNVGN0TURNdE1USlVNRFU2TkRVNk1UQXVOelkxV2lCM2FYUm9JR0VnUm5KbGJtTm9JR3h2WTJGc1pWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxWR2x0WlgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCMWRHTW9LU0I3WEc0Z0lDQWdZMjl1YzNRZ1cyOXdkSE1zSUdGeVozTmRJRDBnYkdGemRFOXdkSE1vWVhKbmRXMWxiblJ6S1N4Y2JpQWdJQ0FnSUZ0NVpXRnlMQ0J0YjI1MGFDd2daR0Y1TENCb2IzVnlMQ0J0YVc1MWRHVXNJSE5sWTI5dVpDd2diV2xzYkdselpXTnZibVJkSUQwZ1lYSm5jenRjYmx4dUlDQWdJRzl3ZEhNdWVtOXVaU0E5SUVacGVHVmtUMlptYzJWMFdtOXVaUzUxZEdOSmJuTjBZVzVqWlR0Y2JpQWdJQ0J5WlhSMWNtNGdjWFZwWTJ0RVZDaDdJSGxsWVhJc0lHMXZiblJvTENCa1lYa3NJR2h2ZFhJc0lHMXBiblYwWlN3Z2MyVmpiMjVrTENCdGFXeHNhWE5sWTI5dVpDQjlMQ0J2Y0hSektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVWdZU0JFWVhSbFZHbHRaU0JtY205dElHRWdTbUYyWVZOamNtbHdkQ0JFWVhSbElHOWlhbVZqZEM0Z1ZYTmxjeUIwYUdVZ1pHVm1ZWFZzZENCNmIyNWxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUmhkR1Y5SUdSaGRHVWdMU0JoSUVwaGRtRlRZM0pwY0hRZ1JHRjBaU0J2WW1wbFkzUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RHbHZibk1nTFNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTWdabTl5SUhSb1pTQkVZWFJsVkdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaM3hhYjI1bGZTQmJiM0IwYVc5dWN5NTZiMjVsUFNkc2IyTmhiQ2RkSUMwZ2RHaGxJSHB2Ym1VZ2RHOGdjR3hoWTJVZ2RHaGxJRVJoZEdWVWFXMWxJR2x1ZEc5Y2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJVcFRSR0YwWlNoa1lYUmxMQ0J2Y0hScGIyNXpJRDBnZTMwcElIdGNiaUFnSUNCamIyNXpkQ0IwY3lBOUlHbHpSR0YwWlNoa1lYUmxLU0EvSUdSaGRHVXVkbUZzZFdWUFppZ3BJRG9nVG1GT08xeHVJQ0FnSUdsbUlDaE9kVzFpWlhJdWFYTk9ZVTRvZEhNcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdWFXNTJZV3hwWkNoY0ltbHVkbUZzYVdRZ2FXNXdkWFJjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdlbTl1WlZSdlZYTmxJRDBnYm05eWJXRnNhWHBsV205dVpTaHZjSFJwYjI1ekxucHZibVVzSUZObGRIUnBibWR6TG1SbFptRjFiSFJhYjI1bEtUdGNiaUFnSUNCcFppQW9JWHB2Ym1WVWIxVnpaUzVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSR0YwWlZScGJXVXVhVzUyWVd4cFpDaDFibk4xY0hCdmNuUmxaRnB2Ym1Vb2VtOXVaVlJ2VlhObEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkVZWFJsVkdsdFpTaDdYRzRnSUNBZ0lDQjBjem9nZEhNc1hHNGdJQ0FnSUNCNmIyNWxPaUI2YjI1bFZHOVZjMlVzWEc0Z0lDQWdJQ0JzYjJNNklFeHZZMkZzWlM1bWNtOXRUMkpxWldOMEtHOXdkR2x2Ym5NcExGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJRVJoZEdWVWFXMWxJR1p5YjIwZ1lTQnVkVzFpWlhJZ2IyWWdiV2xzYkdselpXTnZibVJ6SUhOcGJtTmxJSFJvWlNCbGNHOWphQ0FvYldWaGJtbHVaeUJ6YVc1alpTQXhJRXBoYm5WaGNua2dNVGszTUNBd01Eb3dNRG93TUNCVlZFTXBMaUJWYzJWeklIUm9aU0JrWldaaGRXeDBJSHB2Ym1VdVhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J0YVd4c2FYTmxZMjl1WkhNZ0xTQmhJRzUxYldKbGNpQnZaaUJ0YVd4c2FYTmxZMjl1WkhNZ2MybHVZMlVnTVRrM01DQlZWRU5jYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkR2x2Ym5NZ0xTQmpiMjVtYVdkMWNtRjBhVzl1SUc5d2RHbHZibk1nWm05eUlIUm9aU0JFWVhSbFZHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjN4YWIyNWxmU0JiYjNCMGFXOXVjeTU2YjI1bFBTZHNiMk5oYkNkZElDMGdkR2hsSUhwdmJtVWdkRzhnY0d4aFkyVWdkR2hsSUVSaGRHVlVhVzFsSUdsdWRHOWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnBiMjV6TG14dlkyRnNaVjBnTFNCaElHeHZZMkZzWlNCMGJ5QnpaWFFnYjI0Z2RHaGxJSEpsYzNWc2RHbHVaeUJFWVhSbFZHbHRaU0JwYm5OMFlXNWpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2IzQjBhVzl1Y3k1dmRYUndkWFJEWVd4bGJtUmhjaUF0SUhSb1pTQnZkWFJ3ZFhRZ1kyRnNaVzVrWVhJZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkR2x2Ym5NdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUMwZ2RHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJVMXBiR3hwY3lodGFXeHNhWE5sWTI5dVpITXNJRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDZ2hhWE5PZFcxaVpYSW9iV2xzYkdselpXTnZibVJ6S1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnWm5KdmJVMXBiR3hwY3lCeVpYRjFhWEpsY3lCaElHNTFiV1Z5YVdOaGJDQnBibkIxZEN3Z1luVjBJSEpsWTJWcGRtVmtJR0VnSkh0MGVYQmxiMllnYldsc2JHbHpaV052Ym1SemZTQjNhWFJvSUhaaGJIVmxJQ1I3Yldsc2JHbHpaV052Ym1SemZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHRhV3hzYVhObFkyOXVaSE1nUENBdFRVRllYMFJCVkVVZ2ZId2diV2xzYkdselpXTnZibVJ6SUQ0Z1RVRllYMFJCVkVVcElIdGNiaUFnSUNBZ0lDOHZJSFJvYVhNZ2FYTnVKM1FnY0dWeVptVmpkQ0JpWldOaGRYTmxJR0psWTJGMWMyVWdkMlVnWTJGdUlITjBhV3hzSUdWdVpDQjFjQ0J2ZFhRZ2IyWWdjbUZ1WjJVZ1ltVmpZWFZ6WlNCdlppQmhaR1JwZEdsdmJtRnNJSE5vYVdaMGFXNW5MQ0JpZFhRZ2FYUW5jeUJoSUhOMFlYSjBYRzRnSUNBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdWFXNTJZV3hwWkNoY0lsUnBiV1Z6ZEdGdGNDQnZkWFFnYjJZZ2NtRnVaMlZjSWlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUkdGMFpWUnBiV1VvZTF4dUlDQWdJQ0FnSUNCMGN6b2diV2xzYkdselpXTnZibVJ6TEZ4dUlDQWdJQ0FnSUNCNmIyNWxPaUJ1YjNKdFlXeHBlbVZhYjI1bEtHOXdkR2x2Ym5NdWVtOXVaU3dnVTJWMGRHbHVaM011WkdWbVlYVnNkRnB2Ym1VcExGeHVJQ0FnSUNBZ0lDQnNiMk02SUV4dlkyRnNaUzVtY205dFQySnFaV04wS0c5d2RHbHZibk1wTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElFUmhkR1ZVYVcxbElHWnliMjBnWVNCdWRXMWlaWElnYjJZZ2MyVmpiMjVrY3lCemFXNWpaU0IwYUdVZ1pYQnZZMmdnS0cxbFlXNXBibWNnYzJsdVkyVWdNU0JLWVc1MVlYSjVJREU1TnpBZ01EQTZNREE2TURBZ1ZWUkRLUzRnVlhObGN5QjBhR1VnWkdWbVlYVnNkQ0I2YjI1bExseHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYzJWamIyNWtjeUF0SUdFZ2JuVnRZbVZ5SUc5bUlITmxZMjl1WkhNZ2MybHVZMlVnTVRrM01DQlZWRU5jYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkR2x2Ym5NZ0xTQmpiMjVtYVdkMWNtRjBhVzl1SUc5d2RHbHZibk1nWm05eUlIUm9aU0JFWVhSbFZHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjN4YWIyNWxmU0JiYjNCMGFXOXVjeTU2YjI1bFBTZHNiMk5oYkNkZElDMGdkR2hsSUhwdmJtVWdkRzhnY0d4aFkyVWdkR2hsSUVSaGRHVlVhVzFsSUdsdWRHOWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnBiMjV6TG14dlkyRnNaVjBnTFNCaElHeHZZMkZzWlNCMGJ5QnpaWFFnYjI0Z2RHaGxJSEpsYzNWc2RHbHVaeUJFWVhSbFZHbHRaU0JwYm5OMFlXNWpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2IzQjBhVzl1Y3k1dmRYUndkWFJEWVd4bGJtUmhjaUF0SUhSb1pTQnZkWFJ3ZFhRZ1kyRnNaVzVrWVhJZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkR2x2Ym5NdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUMwZ2RHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJWTmxZMjl1WkhNb2MyVmpiMjVrY3l3Z2IzQjBhVzl1Y3lBOUlIdDlLU0I3WEc0Z0lDQWdhV1lnS0NGcGMwNTFiV0psY2loelpXTnZibVJ6S1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlLRndpWm5KdmJWTmxZMjl1WkhNZ2NtVnhkV2x5WlhNZ1lTQnVkVzFsY21sallXd2dhVzV3ZFhSY0lpazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JHRjBaVlJwYldVb2UxeHVJQ0FnSUNBZ0lDQjBjem9nYzJWamIyNWtjeUFxSURFd01EQXNYRzRnSUNBZ0lDQWdJSHB2Ym1VNklHNXZjbTFoYkdsNlpWcHZibVVvYjNCMGFXOXVjeTU2YjI1bExDQlRaWFIwYVc1bmN5NWtaV1poZFd4MFdtOXVaU2tzWEc0Z0lDQWdJQ0FnSUd4dll6b2dURzlqWVd4bExtWnliMjFQWW1wbFkzUW9iM0IwYVc5dWN5a3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkdGMFpWUnBiV1VnWm5KdmJTQmhJRXBoZG1GVFkzSnBjSFFnYjJKcVpXTjBJSGRwZEdnZ2EyVjVjeUJzYVd0bElDZDVaV0Z5SnlCaGJtUWdKMmh2ZFhJbklIZHBkR2dnY21WaGMyOXVZV0pzWlNCa1pXWmhkV3gwY3k1Y2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYWlBdElIUm9aU0J2WW1wbFkzUWdkRzhnWTNKbFlYUmxJSFJvWlNCRVlYUmxWR2x0WlNCbWNtOXRYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3VlV1ZoY2lBdElHRWdlV1ZoY2l3Z2MzVmphQ0JoY3lBeE9UZzNYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3ViVzl1ZEdnZ0xTQmhJRzF2Ym5Sb0xDQXhMVEV5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91WkdGNUlDMGdZU0JrWVhrZ2IyWWdkR2hsSUcxdmJuUm9MQ0F4TFRNeExDQmtaWEJsYm1ScGJtY2diMjRnZEdobElHMXZiblJvWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91YjNKa2FXNWhiQ0F0SUdSaGVTQnZaaUIwYUdVZ2VXVmhjaXdnTVMwek5qVWdiM0lnTXpZMlhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2WW1vdWQyVmxhMWxsWVhJZ0xTQmhiaUJKVTA4Z2QyVmxheUI1WldGeVhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2WW1vdWQyVmxhMDUxYldKbGNpQXRJR0Z1SUVsVFR5QjNaV1ZySUc1MWJXSmxjaXdnWW1WMGQyVmxiaUF4SUdGdVpDQTFNaUJ2Y2lBMU15d2daR1Z3Wlc1a2FXNW5JRzl1SUhSb1pTQjVaV0Z5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91ZDJWbGEyUmhlU0F0SUdGdUlFbFRUeUIzWldWclpHRjVMQ0F4TFRjc0lIZG9aWEpsSURFZ2FYTWdUVzl1WkdGNUlHRnVaQ0EzSUdseklGTjFibVJoZVZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiMkpxTG1odmRYSWdMU0JvYjNWeUlHOW1JSFJvWlNCa1lYa3NJREF0TWpOY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRzlpYWk1dGFXNTFkR1VnTFNCdGFXNTFkR1VnYjJZZ2RHaGxJR2h2ZFhJc0lEQXROVGxjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTV6WldOdmJtUWdMU0J6WldOdmJtUWdiMllnZEdobElHMXBiblYwWlN3Z01DMDFPVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2IySnFMbTFwYkd4cGMyVmpiMjVrSUMwZ2JXbHNiR2x6WldOdmJtUWdiMllnZEdobElITmxZMjl1WkN3Z01DMDVPVGxjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6SUdadmNpQmpjbVZoZEdsdVp5QjBhR2x6SUVSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZGcHZibVY5SUZ0dmNIUnpMbnB2Ym1VOUoyeHZZMkZzSjEwZ0xTQnBiblJsY25CeVpYUWdkR2hsSUc1MWJXSmxjbk1nYVc0Z2RHaGxJR052Ym5SbGVIUWdiMllnWVNCd1lYSjBhV04xYkdGeUlIcHZibVV1SUVOaGJpQjBZV3RsSUdGdWVTQjJZV3gxWlNCMFlXdGxiaUJoY3lCMGFHVWdabWx5YzNRZ1lYSm5kVzFsYm5RZ2RHOGdjMlYwV205dVpTZ3BYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVTlKM041YzNSbGJTZHpJR3h2WTJGc1pTZGRJQzBnWVNCc2IyTmhiR1VnZEc4Z2MyVjBJRzl1SUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RITXViM1YwY0hWMFEyRnNaVzVrWVhJZ0xTQjBhR1VnYjNWMGNIVjBJR05oYkdWdVpHRnlJSFJ2SUhObGRDQnZiaUIwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y0hSekxtNTFiV0psY21sdVoxTjVjM1JsYlNBdElIUm9aU0J1ZFcxaVpYSnBibWNnYzNsemRHVnRJSFJ2SUhObGRDQnZiaUIwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVBZbXBsWTNRb2V5QjVaV0Z5T2lBeE9UZ3lMQ0J0YjI1MGFEb2dOU3dnWkdGNU9pQXlOWDBwTG5SdlNWTlBSR0YwWlNncElDOHZQVDRnSnpFNU9ESXRNRFV0TWpVblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVBZbXBsWTNRb2V5QjVaV0Z5T2lBeE9UZ3lJSDBwTG5SdlNWTlBSR0YwWlNncElDOHZQVDRnSnpFNU9ESXRNREV0TURFblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5T2lBeE1Dd2diV2x1ZFhSbE9pQXlOaXdnYzJWamIyNWtPaUEySUgwcElDOHZmajRnZEc5a1lYa2dZWFFnTVRBNk1qWTZNRFpjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVabkp2YlU5aWFtVmpkQ2g3SUdodmRYSTZJREV3TENCdGFXNTFkR1U2SURJMkxDQnpaV052Ym1RNklEWWdmU3dnZXlCNmIyNWxPaUFuZFhSakp5QjlLU3hjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVabkp2YlU5aWFtVmpkQ2g3SUdodmRYSTZJREV3TENCdGFXNTFkR1U2SURJMkxDQnpaV052Ym1RNklEWWdmU3dnZXlCNmIyNWxPaUFuYkc5allXd25JSDBwWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCb2IzVnlPaUF4TUN3Z2JXbHVkWFJsT2lBeU5pd2djMlZqYjI1a09pQTJJSDBzSUhzZ2VtOXVaVG9nSjBGdFpYSnBZMkV2VG1WM1gxbHZjbXNuSUgwcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVBZbXBsWTNRb2V5QjNaV1ZyV1dWaGNqb2dNakF4Tml3Z2QyVmxhMDUxYldKbGNqb2dNaXdnZDJWbGEyUmhlVG9nTXlCOUtTNTBiMGxUVDBSaGRHVW9LU0F2THowK0lDY3lNREUyTFRBeExURXpKMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVZWFJsVkdsdFpYMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm1jbTl0VDJKcVpXTjBLRzlpYWl3Z2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ2IySnFJRDBnYjJKcUlIeDhJSHQ5TzF4dUlDQWdJR052Ym5OMElIcHZibVZVYjFWelpTQTlJRzV2Y20xaGJHbDZaVnB2Ym1Vb2IzQjBjeTU2YjI1bExDQlRaWFIwYVc1bmN5NWtaV1poZFd4MFdtOXVaU2s3WEc0Z0lDQWdhV1lnS0NGNmIyNWxWRzlWYzJVdWFYTldZV3hwWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUVSaGRHVlVhVzFsTG1sdWRtRnNhV1FvZFc1emRYQndiM0owWldSYWIyNWxLSHB2Ym1WVWIxVnpaU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIUnpUbTkzSUQwZ1UyVjBkR2x1WjNNdWJtOTNLQ2tzWEc0Z0lDQWdJQ0J2Wm1aelpYUlFjbTkyYVhNZ1BTQWhhWE5WYm1SbFptbHVaV1FvYjNCMGN5NXpjR1ZqYVdacFkwOW1abk5sZENsY2JpQWdJQ0FnSUNBZ1B5QnZjSFJ6TG5Od1pXTnBabWxqVDJabWMyVjBYRzRnSUNBZ0lDQWdJRG9nZW05dVpWUnZWWE5sTG05bVpuTmxkQ2gwYzA1dmR5a3NYRzRnSUNBZ0lDQnViM0p0WVd4cGVtVmtJRDBnYm05eWJXRnNhWHBsVDJKcVpXTjBLRzlpYWl3Z2JtOXliV0ZzYVhwbFZXNXBkQ2tzWEc0Z0lDQWdJQ0JqYjI1MFlXbHVjMDl5WkdsdVlXd2dQU0FoYVhOVmJtUmxabWx1WldRb2JtOXliV0ZzYVhwbFpDNXZjbVJwYm1Gc0tTeGNiaUFnSUNBZ0lHTnZiblJoYVc1elIzSmxaMjl5V1dWaGNpQTlJQ0ZwYzFWdVpHVm1hVzVsWkNodWIzSnRZV3hwZW1Wa0xubGxZWElwTEZ4dUlDQWdJQ0FnWTI5dWRHRnBibk5IY21WbmIzSk5SQ0E5SUNGcGMxVnVaR1ZtYVc1bFpDaHViM0p0WVd4cGVtVmtMbTF2Ym5Sb0tTQjhmQ0FoYVhOVmJtUmxabWx1WldRb2JtOXliV0ZzYVhwbFpDNWtZWGtwTEZ4dUlDQWdJQ0FnWTI5dWRHRnBibk5IY21WbmIzSWdQU0JqYjI1MFlXbHVjMGR5WldkdmNsbGxZWElnZkh3Z1kyOXVkR0ZwYm5OSGNtVm5iM0pOUkN4Y2JpQWdJQ0FnSUdSbFptbHVhWFJsVjJWbGEwUmxaaUE5SUc1dmNtMWhiR2w2WldRdWQyVmxhMWxsWVhJZ2ZId2dibTl5YldGc2FYcGxaQzUzWldWclRuVnRZbVZ5TEZ4dUlDQWdJQ0FnYkc5aklEMGdURzlqWVd4bExtWnliMjFQWW1wbFkzUW9iM0IwY3lrN1hHNWNiaUFnSUNBdkx5QmpZWE5sY3pwY2JpQWdJQ0F2THlCcWRYTjBJR0VnZDJWbGEyUmhlU0F0UGlCMGFHbHpJSGRsWldzbmN5QnBibk4wWVc1alpTQnZaaUIwYUdGMElIZGxaV3RrWVhrc0lHNXZJSGR2Y25KcFpYTmNiaUFnSUNBdkx5QW9aM0psWjI5eWFXRnVJR1JoZEdFZ2IzSWdiM0prYVc1aGJDa2dLeUFvZDJWbGExbGxZWElnYjNJZ2QyVmxhMDUxYldKbGNpa2dMVDRnWlhKeWIzSmNiaUFnSUNBdkx5QW9aM0psWjI5eWFXRnVJRzF2Ym5Sb0lHOXlJR1JoZVNrZ0t5QnZjbVJwYm1Gc0lDMCtJR1Z5Y205eVhHNGdJQ0FnTHk4Z2IzUm9aWEozYVhObElHcDFjM1FnZFhObElIZGxaV3R6SUc5eUlHOXlaR2x1WVd4eklHOXlJR2R5WldkdmNtbGhiaXdnWkdWd1pXNWthVzVuSUc5dUlIZG9ZWFFuY3lCemNHVmphV1pwWldSY2JseHVJQ0FnSUdsbUlDZ29ZMjl1ZEdGcGJuTkhjbVZuYjNJZ2ZId2dZMjl1ZEdGcGJuTlBjbVJwYm1Gc0tTQW1KaUJrWldacGJtbDBaVmRsWld0RVpXWXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJEYjI1bWJHbGpkR2x1WjFOd1pXTnBabWxqWVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSkRZVzRuZENCdGFYZ2dkMlZsYTFsbFlYSXZkMlZsYTA1MWJXSmxjaUIxYm1sMGN5QjNhWFJvSUhsbFlYSXZiVzl1ZEdndlpHRjVJRzl5SUc5eVpHbHVZV3h6WENKY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHTnZiblJoYVc1elIzSmxaMjl5VFVRZ0ppWWdZMjl1ZEdGcGJuTlBjbVJwYm1Gc0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRMjl1Wm14cFkzUnBibWRUY0dWamFXWnBZMkYwYVc5dVJYSnliM0lvWENKRFlXNG5kQ0J0YVhnZ2IzSmthVzVoYkNCa1lYUmxjeUIzYVhSb0lHMXZiblJvTDJSaGVWd2lLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCMWMyVlhaV1ZyUkdGMFlTQTlJR1JsWm1sdWFYUmxWMlZsYTBSbFppQjhmQ0FvYm05eWJXRnNhWHBsWkM1M1pXVnJaR0Y1SUNZbUlDRmpiMjUwWVdsdWMwZHlaV2R2Y2lrN1hHNWNiaUFnSUNBdkx5QmpiMjVtYVdkMWNtVWdiM1Z5YzJWc2RtVnpJSFJ2SUdSbFlXd2dkMmwwYUNCbmNtVm5iM0pwWVc0Z1pHRjBaWE1nYjNJZ2QyVmxheUJ6ZEhWbVpseHVJQ0FnSUd4bGRDQjFibWwwY3l4Y2JpQWdJQ0FnSUdSbFptRjFiSFJXWVd4MVpYTXNYRzRnSUNBZ0lDQnZZbXBPYjNjZ1BTQjBjMVJ2VDJKcUtIUnpUbTkzTENCdlptWnpaWFJRY205MmFYTXBPMXh1SUNBZ0lHbG1JQ2gxYzJWWFpXVnJSR0YwWVNrZ2UxeHVJQ0FnSUNBZ2RXNXBkSE1nUFNCdmNtUmxjbVZrVjJWbGExVnVhWFJ6TzF4dUlDQWdJQ0FnWkdWbVlYVnNkRlpoYkhWbGN5QTlJR1JsWm1GMWJIUlhaV1ZyVlc1cGRGWmhiSFZsY3p0Y2JpQWdJQ0FnSUc5aWFrNXZkeUE5SUdkeVpXZHZjbWxoYmxSdlYyVmxheWh2WW1wT2IzY3BPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9ZMjl1ZEdGcGJuTlBjbVJwYm1Gc0tTQjdYRzRnSUNBZ0lDQjFibWwwY3lBOUlHOXlaR1Z5WldSUGNtUnBibUZzVlc1cGRITTdYRzRnSUNBZ0lDQmtaV1poZFd4MFZtRnNkV1Z6SUQwZ1pHVm1ZWFZzZEU5eVpHbHVZV3hWYm1sMFZtRnNkV1Z6TzF4dUlDQWdJQ0FnYjJKcVRtOTNJRDBnWjNKbFoyOXlhV0Z1Vkc5UGNtUnBibUZzS0c5aWFrNXZkeWs3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lIVnVhWFJ6SUQwZ2IzSmtaWEpsWkZWdWFYUnpPMXh1SUNBZ0lDQWdaR1ZtWVhWc2RGWmhiSFZsY3lBOUlHUmxabUYxYkhSVmJtbDBWbUZzZFdWek8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklITmxkQ0JrWldaaGRXeDBJSFpoYkhWbGN5Qm1iM0lnYldsemMybHVaeUJ6ZEhWbVpseHVJQ0FnSUd4bGRDQm1iM1Z1WkVacGNuTjBJRDBnWm1Gc2MyVTdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQjFJRzltSUhWdWFYUnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjJJRDBnYm05eWJXRnNhWHBsWkZ0MVhUdGNiaUFnSUNBZ0lHbG1JQ2doYVhOVmJtUmxabWx1WldRb2Rpa3BJSHRjYmlBZ0lDQWdJQ0FnWm05MWJtUkdhWEp6ZENBOUlIUnlkV1U3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dadmRXNWtSbWx5YzNRcElIdGNiaUFnSUNBZ0lDQWdibTl5YldGc2FYcGxaRnQxWFNBOUlHUmxabUYxYkhSV1lXeDFaWE5iZFYwN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCdWIzSnRZV3hwZW1Wa1czVmRJRDBnYjJKcVRtOTNXM1ZkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUcxaGEyVWdjM1Z5WlNCMGFHVWdkbUZzZFdWeklIZGxJR2hoZG1VZ1lYSmxJR2x1SUhKaGJtZGxYRzRnSUNBZ1kyOXVjM1FnYUdsbmFHVnlUM0prWlhKSmJuWmhiR2xrSUQwZ2RYTmxWMlZsYTBSaGRHRmNiaUFnSUNBZ0lDQWdQeUJvWVhOSmJuWmhiR2xrVjJWbGEwUmhkR0VvYm05eWJXRnNhWHBsWkNsY2JpQWdJQ0FnSUNBZ09pQmpiMjUwWVdsdWMwOXlaR2x1WVd4Y2JpQWdJQ0FnSUNBZ1B5Qm9ZWE5KYm5aaGJHbGtUM0prYVc1aGJFUmhkR0VvYm05eWJXRnNhWHBsWkNsY2JpQWdJQ0FnSUNBZ09pQm9ZWE5KYm5aaGJHbGtSM0psWjI5eWFXRnVSR0YwWVNodWIzSnRZV3hwZW1Wa0tTeGNiaUFnSUNBZ0lHbHVkbUZzYVdRZ1BTQm9hV2RvWlhKUGNtUmxja2x1ZG1Gc2FXUWdmSHdnYUdGelNXNTJZV3hwWkZScGJXVkVZWFJoS0c1dmNtMWhiR2w2WldRcE8xeHVYRzRnSUNBZ2FXWWdLR2x1ZG1Gc2FXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQkVZWFJsVkdsdFpTNXBiblpoYkdsa0tHbHVkbUZzYVdRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHTnZiWEIxZEdVZ2RHaGxJR0ZqZEhWaGJDQjBhVzFsWEc0Z0lDQWdZMjl1YzNRZ1ozSmxaMjl5YVdGdUlEMGdkWE5sVjJWbGEwUmhkR0ZjYmlBZ0lDQWdJQ0FnUHlCM1pXVnJWRzlIY21WbmIzSnBZVzRvYm05eWJXRnNhWHBsWkNsY2JpQWdJQ0FnSUNBZ09pQmpiMjUwWVdsdWMwOXlaR2x1WVd4Y2JpQWdJQ0FnSUNBZ1B5QnZjbVJwYm1Gc1ZHOUhjbVZuYjNKcFlXNG9ibTl5YldGc2FYcGxaQ2xjYmlBZ0lDQWdJQ0FnT2lCdWIzSnRZV3hwZW1Wa0xGeHVJQ0FnSUNBZ1czUnpSbWx1WVd3c0lHOW1abk5sZEVacGJtRnNYU0E5SUc5aWFsUnZWRk1vWjNKbFoyOXlhV0Z1TENCdlptWnpaWFJRY205MmFYTXNJSHB2Ym1WVWIxVnpaU2tzWEc0Z0lDQWdJQ0JwYm5OMElEMGdibVYzSUVSaGRHVlVhVzFsS0h0Y2JpQWdJQ0FnSUNBZ2RITTZJSFJ6Um1sdVlXd3NYRzRnSUNBZ0lDQWdJSHB2Ym1VNklIcHZibVZVYjFWelpTeGNiaUFnSUNBZ0lDQWdiem9nYjJabWMyVjBSbWx1WVd3c1hHNGdJQ0FnSUNBZ0lHeHZZeXhjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnTHk4Z1ozSmxaMjl5YVdGdUlHUmhkR0VnS3lCM1pXVnJaR0Y1SUhObGNuWmxjeUJ2Ym14NUlIUnZJSFpoYkdsa1lYUmxYRzRnSUNBZ2FXWWdLRzV2Y20xaGJHbDZaV1F1ZDJWbGEyUmhlU0FtSmlCamIyNTBZV2x1YzBkeVpXZHZjaUFtSmlCdlltb3VkMlZsYTJSaGVTQWhQVDBnYVc1emRDNTNaV1ZyWkdGNUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdWFXNTJZV3hwWkNoY2JpQWdJQ0FnSUNBZ1hDSnRhWE50WVhSamFHVmtJSGRsWld0a1lYbGNJaXhjYmlBZ0lDQWdJQ0FnWUhsdmRTQmpZVzRuZENCemNHVmphV1o1SUdKdmRHZ2dZU0IzWldWclpHRjVJRzltSUNSN2JtOXliV0ZzYVhwbFpDNTNaV1ZyWkdGNWZTQmhibVFnWVNCa1lYUmxJRzltSUNSN2FXNXpkQzUwYjBsVFR5Z3BmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHbHVjM1E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ1JHRjBaVlJwYldVZ1puSnZiU0JoYmlCSlUwOGdPRFl3TVNCemRISnBibWRjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmxlSFFnTFNCMGFHVWdTVk5QSUhOMGNtbHVaMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk1nZEc4Z1lXWm1aV04wSUhSb1pTQmpjbVZoZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaM3hhYjI1bGZTQmJiM0IwY3k1NmIyNWxQU2RzYjJOaGJDZGRJQzBnZFhObElIUm9hWE1nZW05dVpTQnBaaUJ1YnlCdlptWnpaWFFnYVhNZ2MzQmxZMmxtYVdWa0lHbHVJSFJvWlNCcGJuQjFkQ0J6ZEhKcGJtY2dhWFJ6Wld4bUxpQlhhV3hzSUdGc2MyOGdZMjl1ZG1WeWRDQjBhR1VnZEdsdFpTQjBieUIwYUdseklIcHZibVZjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1elpYUmFiMjVsUFdaaGJITmxYU0F0SUc5MlpYSnlhV1JsSUhSb1pTQjZiMjVsSUhkcGRHZ2dZU0JtYVhobFpDMXZabVp6WlhRZ2VtOXVaU0J6Y0dWamFXWnBaV1FnYVc0Z2RHaGxJSE4wY21sdVp5QnBkSE5sYkdZc0lHbG1JR2wwSUhOd1pXTnBabWxsY3lCdmJtVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbXh2WTJGc1pUMG5jM2x6ZEdWdEozTWdiRzlqWVd4bEoxMGdMU0JoSUd4dlkyRnNaU0IwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXViM1YwY0hWMFEyRnNaVzVrWVhKZElDMGdkR2hsSUc5MWRIQjFkQ0JqWVd4bGJtUmhjaUIwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXViblZ0WW1WeWFXNW5VM2x6ZEdWdFhTQXRJSFJvWlNCdWRXMWlaWEpwYm1jZ2MzbHpkR1Z0SUhSdklITmxkQ0J2YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFKVTA4b0p6SXdNVFl0TURVdE1qVlVNRGs2TURnNk16UXVNVEl6SnlsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Wm5KdmJVbFRUeWduTWpBeE5pMHdOUzB5TlZRd09Ub3dPRG96TkM0eE1qTXJNRFk2TURBbktWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRTVk5QS0NjeU1ERTJMVEExTFRJMVZEQTVPakE0T2pNMExqRXlNeXN3Tmpvd01DY3NJSHR6WlhSYWIyNWxPaUIwY25WbGZTbGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdVpuSnZiVWxUVHlnbk1qQXhOaTB3TlMweU5WUXdPVG93T0Rvek5DNHhNak1uTENCN2VtOXVaVG9nSjNWMFl5ZDlLVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNW1jbTl0U1ZOUEtDY3lNREUyTFZjd05TMDBKeWxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlVsVFR5aDBaWGgwTENCdmNIUnpJRDBnZTMwcElIdGNiaUFnSUNCamIyNXpkQ0JiZG1Gc2N5d2djR0Z5YzJWa1dtOXVaVjBnUFNCd1lYSnpaVWxUVDBSaGRHVW9kR1Y0ZENrN1hHNGdJQ0FnY21WMGRYSnVJSEJoY25ObFJHRjBZVlJ2UkdGMFpWUnBiV1VvZG1Gc2N5d2djR0Z5YzJWa1dtOXVaU3dnYjNCMGN5d2dYQ0pKVTA4Z09EWXdNVndpTENCMFpYaDBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVNCRVlYUmxWR2x0WlNCbWNtOXRJR0Z1SUZKR1F5QXlPREl5SUhOMGNtbHVaMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHVjRkQ0F0SUhSb1pTQlNSa01nTWpneU1pQnpkSEpwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJwYjI1eklIUnZJR0ZtWm1WamRDQjBhR1VnWTNKbFlYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOFdtOXVaWDBnVzI5d2RITXVlbTl1WlQwbmJHOWpZV3duWFNBdElHTnZiblpsY25RZ2RHaGxJSFJwYldVZ2RHOGdkR2hwY3lCNmIyNWxMaUJUYVc1alpTQjBhR1VnYjJabWMyVjBJR2x6SUdGc2QyRjVjeUJ6Y0dWamFXWnBaV1FnYVc0Z2RHaGxJSE4wY21sdVp5QnBkSE5sYkdZc0lIUm9hWE1nYUdGeklHNXZJR1ZtWm1WamRDQnZiaUIwYUdVZ2FXNTBaWEp3Y21WMFlYUnBiMjRnYjJZZ2MzUnlhVzVuTENCdFpYSmxiSGtnZEdobElIcHZibVVnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBjeUJsZUhCeVpYTnpaV1FnYVc0dVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVjMlYwV205dVpUMW1ZV3h6WlYwZ0xTQnZkbVZ5Y21sa1pTQjBhR1VnZW05dVpTQjNhWFJvSUdFZ1ptbDRaV1F0YjJabWMyVjBJSHB2Ym1VZ2MzQmxZMmxtYVdWa0lHbHVJSFJvWlNCemRISnBibWNnYVhSelpXeG1MQ0JwWmlCcGRDQnpjR1ZqYVdacFpYTWdiMjVsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1c2IyTmhiR1U5SjNONWMzUmxiU2R6SUd4dlkyRnNaU2RkSUMwZ1lTQnNiMk5oYkdVZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11YjNWMGNIVjBRMkZzWlc1a1lYSWdMU0IwYUdVZ2IzVjBjSFYwSUdOaGJHVnVaR0Z5SUhSdklITmxkQ0J2YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnpMbTUxYldKbGNtbHVaMU41YzNSbGJTQXRJSFJvWlNCdWRXMWlaWEpwYm1jZ2MzbHpkR1Z0SUhSdklITmxkQ0J2YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFTUmtNeU9ESXlLQ2N5TlNCT2IzWWdNakF4TmlBeE16b3lNem94TWlCSFRWUW5LVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNW1jbTl0VWtaRE1qZ3lNaWduUm5KcExDQXlOU0JPYjNZZ01qQXhOaUF4TXpveU16b3hNaUFyTURZd01DY3BYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFTUmtNeU9ESXlLQ2N5TlNCT2IzWWdNakF4TmlBeE16b3lNeUJhSnlsY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJWSkdRekk0TWpJb2RHVjRkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdXM1poYkhNc0lIQmhjbk5sWkZwdmJtVmRJRDBnY0dGeWMyVlNSa015T0RJeVJHRjBaU2gwWlhoMEtUdGNiaUFnSUNCeVpYUjFjbTRnY0dGeWMyVkVZWFJoVkc5RVlYUmxWR2x0WlNoMllXeHpMQ0J3WVhKelpXUmFiMjVsTENCdmNIUnpMQ0JjSWxKR1F5QXlPREl5WENJc0lIUmxlSFFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElFUmhkR1ZVYVcxbElHWnliMjBnWVc0Z1NGUlVVQ0JvWldGa1pYSWdaR0YwWlZ4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dmQzZDNMbmN6TG05eVp5OVFjbTkwYjJOdmJITXZjbVpqTWpZeE5pOXlabU15TmpFMkxYTmxZek11YUhSdGJDTnpaV016TGpNdU1WeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdWNGRDQXRJSFJvWlNCSVZGUlFJR2hsWVdSbGNpQmtZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ2IzQjBhVzl1Y3lCMGJ5QmhabVpsWTNRZ2RHaGxJR055WldGMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZkZwdmJtVjlJRnR2Y0hSekxucHZibVU5SjJ4dlkyRnNKMTBnTFNCamIyNTJaWEowSUhSb1pTQjBhVzFsSUhSdklIUm9hWE1nZW05dVpTNGdVMmx1WTJVZ1NGUlVVQ0JrWVhSbGN5QmhjbVVnWVd4M1lYbHpJR2x1SUZWVVF5d2dkR2hwY3lCb1lYTWdibThnWldabVpXTjBJRzl1SUhSb1pTQnBiblJsY25CeVpYUmhkR2x2YmlCdlppQnpkSEpwYm1jc0lHMWxjbVZzZVNCMGFHVWdlbTl1WlNCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x6SUdWNGNISmxjM05sWkNCcGJpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmIzQjBjeTV6WlhSYWIyNWxQV1poYkhObFhTQXRJRzkyWlhKeWFXUmxJSFJvWlNCNmIyNWxJSGRwZEdnZ2RHaGxJR1pwZUdWa0xXOW1abk5sZENCNmIyNWxJSE53WldOcFptbGxaQ0JwYmlCMGFHVWdjM1J5YVc1bkxpQkdiM0lnU0ZSVVVDQmtZWFJsY3l3Z2RHaHBjeUJwY3lCaGJIZGhlWE1nVlZSRExDQnpieUIwYUdseklHOXdkR2x2YmlCcGN5QmxjWFZwZG1Gc1pXNTBJSFJ2SUhObGRIUnBibWNnZEdobElHQjZiMjVsWUNCdmNIUnBiMjRnZEc4Z0ozVjBZeWNzSUdKMWRDQjBhR2x6SUc5d2RHbHZiaUJwY3lCcGJtTnNkV1JsWkNCbWIzSWdZMjl1YzJsemRHVnVZM2tnZDJsMGFDQnphVzFwYkdGeUlHMWxkR2h2WkhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXNiMk5oYkdVOUozTjVjM1JsYlNkeklHeHZZMkZzWlNkZElDMGdZU0JzYjJOaGJHVWdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEhNdWIzVjBjSFYwUTJGc1pXNWtZWElnTFNCMGFHVWdiM1YwY0hWMElHTmhiR1Z1WkdGeUlIUnZJSE5sZENCdmJpQjBhR1VnY21WemRXeDBhVzVuSUVSaGRHVlVhVzFsSUdsdWMzUmhibU5sWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnZjSFJ6TG01MWJXSmxjbWx1WjFONWMzUmxiU0F0SUhSb1pTQnVkVzFpWlhKcGJtY2djM2x6ZEdWdElIUnZJSE5sZENCdmJpQjBhR1VnY21WemRXeDBhVzVuSUVSaGRHVlVhVzFsSUdsdWMzUmhibU5sWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxSVZGUlFLQ2RUZFc0c0lEQTJJRTV2ZGlBeE9UazBJREE0T2pRNU9qTTNJRWROVkNjcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMUlWRlJRS0NkVGRXNWtZWGtzSURBMkxVNXZkaTA1TkNBd09EbzBPVG96TnlCSFRWUW5LVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNW1jbTl0U0ZSVVVDZ25VM1Z1SUU1dmRpQWdOaUF3T0RvME9Ub3pOeUF4T1RrMEp5bGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1puSnZiVWhVVkZBb2RHVjRkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdXM1poYkhNc0lIQmhjbk5sWkZwdmJtVmRJRDBnY0dGeWMyVklWRlJRUkdGMFpTaDBaWGgwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjR0Z5YzJWRVlYUmhWRzlFWVhSbFZHbHRaU2gyWVd4ekxDQndZWEp6WldSYWIyNWxMQ0J2Y0hSekxDQmNJa2hVVkZCY0lpd2diM0IwY3lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSR0YwWlZScGJXVWdabkp2YlNCaGJpQnBibkIxZENCemRISnBibWNnWVc1a0lHWnZjbTFoZENCemRISnBibWN1WEc0Z0lDQXFJRVJsWm1GMWJIUnpJSFJ2SUdWdUxWVlRJR2xtSUc1dklHeHZZMkZzWlNCb1lYTWdZbVZsYmlCemNHVmphV1pwWldRc0lISmxaMkZ5Wkd4bGMzTWdiMllnZEdobElITjVjM1JsYlNkeklHeHZZMkZzWlM0Z1JtOXlJR0VnZEdGaWJHVWdiMllnZEc5clpXNXpJR0Z1WkNCMGFHVnBjaUJwYm5SbGNuQnlaWFJoZEdsdmJuTXNJSE5sWlNCYmFHVnlaVjBvYUhSMGNITTZMeTl0YjIxbGJuUXVaMmwwYUhWaUxtbHZMMngxZUc5dUx5TXZjR0Z5YzJsdVp6OXBaRDEwWVdKc1pTMXZaaTEwYjJ0bGJuTXBMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHVjRkQ0F0SUhSb1pTQnpkSEpwYm1jZ2RHOGdjR0Z5YzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR1p0ZENBdElIUm9aU0JtYjNKdFlYUWdkR2hsSUhOMGNtbHVaeUJwY3lCbGVIQmxZM1JsWkNCMGJ5QmlaU0JwYmlBb2MyVmxJSFJvWlNCc2FXNXJJR0psYkc5M0lHWnZjaUIwYUdVZ1ptOXliV0YwY3lsY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJwYjI1eklIUnZJR0ZtWm1WamRDQjBhR1VnWTNKbFlYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOFdtOXVaWDBnVzI5d2RITXVlbTl1WlQwbmJHOWpZV3duWFNBdElIVnpaU0IwYUdseklIcHZibVVnYVdZZ2JtOGdiMlptYzJWMElHbHpJSE53WldOcFptbGxaQ0JwYmlCMGFHVWdhVzV3ZFhRZ2MzUnlhVzVuSUdsMGMyVnNaaTRnVjJsc2JDQmhiSE52SUdOdmJuWmxjblFnZEdobElFUmhkR1ZVYVcxbElIUnZJSFJvYVhNZ2VtOXVaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHZjSFJ6TG5ObGRGcHZibVU5Wm1Gc2MyVmRJQzBnYjNabGNuSnBaR1VnZEdobElIcHZibVVnZDJsMGFDQmhJSHB2Ym1VZ2MzQmxZMmxtYVdWa0lHbHVJSFJvWlNCemRISnBibWNnYVhSelpXeG1MQ0JwWmlCcGRDQnpjR1ZqYVdacFpYTWdiMjVsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1c2IyTmhiR1U5SjJWdUxWVlRKMTBnTFNCaElHeHZZMkZzWlNCemRISnBibWNnZEc4Z2RYTmxJSGRvWlc0Z2NHRnljMmx1Wnk0Z1YybHNiQ0JoYkhOdklITmxkQ0IwYUdVZ1JHRjBaVlJwYldVZ2RHOGdkR2hwY3lCc2IyTmhiR1ZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11Ym5WdFltVnlhVzVuVTNsemRHVnRJQzBnZEdobElHNTFiV0psY21sdVp5QnplWE4wWlcwZ2RHOGdkWE5sSUhkb1pXNGdjR0Z5YzJsdVp5NGdWMmxzYkNCaGJITnZJSE5sZENCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJSFJ2SUhSb2FYTWdiblZ0WW1WeWFXNW5JSE41YzNSbGJWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYjNCMGN5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBdElIUm9aU0J2ZFhSd2RYUWdZMkZzWlc1a1lYSWdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJVWnZjbTFoZENoMFpYaDBMQ0JtYlhRc0lHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lHbG1JQ2hwYzFWdVpHVm1hVzVsWkNoMFpYaDBLU0I4ZkNCcGMxVnVaR1ZtYVc1bFpDaG1iWFFwS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkVGeVozVnRaVzUwUlhKeWIzSW9YQ0ptY205dFJtOXliV0YwSUhKbGNYVnBjbVZ6SUdGdUlHbHVjSFYwSUhOMGNtbHVaeUJoYm1RZ1lTQm1iM0p0WVhSY0lpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyTmhiR1VnUFNCdWRXeHNMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMGdQU0J1ZFd4c0lIMGdQU0J2Y0hSekxGeHVJQ0FnSUNBZ2JHOWpZV3hsVkc5VmMyVWdQU0JNYjJOaGJHVXVabkp2YlU5d2RITW9lMXh1SUNBZ0lDQWdJQ0JzYjJOaGJHVXNYRzRnSUNBZ0lDQWdJRzUxYldKbGNtbHVaMU41YzNSbGJTeGNiaUFnSUNBZ0lDQWdaR1ZtWVhWc2RGUnZSVTQ2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJRnQyWVd4ekxDQndZWEp6WldSYWIyNWxMQ0J6Y0dWamFXWnBZMDltWm5ObGRDd2dhVzUyWVd4cFpGMGdQU0J3WVhKelpVWnliMjFVYjJ0bGJuTW9iRzlqWVd4bFZHOVZjMlVzSUhSbGVIUXNJR1p0ZENrN1hHNGdJQ0FnYVdZZ0tHbHVkbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCRVlYUmxWR2x0WlM1cGJuWmhiR2xrS0dsdWRtRnNhV1FwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2NHRnljMlZFWVhSaFZHOUVZWFJsVkdsdFpTaDJZV3h6TENCd1lYSnpaV1JhYjI1bExDQnZjSFJ6TENCZ1ptOXliV0YwSUNSN1ptMTBmV0FzSUhSbGVIUXNJSE53WldOcFptbGpUMlptYzJWMEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsY0hKbFkyRjBaV1FnZFhObElHWnliMjFHYjNKdFlYUWdhVzV6ZEdWaFpGeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHWnliMjFUZEhKcGJtY29kR1Y0ZEN3Z1ptMTBMQ0J2Y0hSeklEMGdlMzBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSR0YwWlZScGJXVXVabkp2YlVadmNtMWhkQ2gwWlhoMExDQm1iWFFzSUc5d2RITXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUVSaGRHVlVhVzFsSUdaeWIyMGdZU0JUVVV3Z1pHRjBaU3dnZEdsdFpTd2diM0lnWkdGMFpYUnBiV1ZjYmlBZ0lDb2dSR1ZtWVhWc2RITWdkRzhnWlc0dFZWTWdhV1lnYm04Z2JHOWpZV3hsSUdoaGN5QmlaV1Z1SUhOd1pXTnBabWxsWkN3Z2NtVm5ZWEprYkdWemN5QnZaaUIwYUdVZ2MzbHpkR1Z0SjNNZ2JHOWpZV3hsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBaWGgwSUMwZ2RHaGxJSE4wY21sdVp5QjBieUJ3WVhKelpWeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTWdkRzhnWVdabVpXTjBJSFJvWlNCamNtVmhkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeGFiMjVsZlNCYmIzQjBjeTU2YjI1bFBTZHNiMk5oYkNkZElDMGdkWE5sSUhSb2FYTWdlbTl1WlNCcFppQnVieUJ2Wm1aelpYUWdhWE1nYzNCbFkybG1hV1ZrSUdsdUlIUm9aU0JwYm5CMWRDQnpkSEpwYm1jZ2FYUnpaV3htTGlCWGFXeHNJR0ZzYzI4Z1kyOXVkbVZ5ZENCMGFHVWdSR0YwWlZScGJXVWdkRzhnZEdocGN5QjZiMjVsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWMyVjBXbTl1WlQxbVlXeHpaVjBnTFNCdmRtVnljbWxrWlNCMGFHVWdlbTl1WlNCM2FYUm9JR0VnZW05dVpTQnpjR1ZqYVdacFpXUWdhVzRnZEdobElITjBjbWx1WnlCcGRITmxiR1lzSUdsbUlHbDBJSE53WldOcFptbGxjeUJ2Ym1WY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxteHZZMkZzWlQwblpXNHRWVk1uWFNBdElHRWdiRzlqWVd4bElITjBjbWx1WnlCMGJ5QjFjMlVnZDJobGJpQndZWEp6YVc1bkxpQlhhV3hzSUdGc2MyOGdjMlYwSUhSb1pTQkVZWFJsVkdsdFpTQjBieUIwYUdseklHeHZZMkZzWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiM0IwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBnTFNCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJTQjBieUIxYzJVZ2QyaGxiaUJ3WVhKemFXNW5MaUJYYVd4c0lHRnNjMjhnYzJWMElIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnZEc4Z2RHaHBjeUJ1ZFcxaVpYSnBibWNnYzNsemRHVnRYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnpMbTkxZEhCMWRFTmhiR1Z1WkdGeUlDMGdkR2hsSUc5MWRIQjFkQ0JqWVd4bGJtUmhjaUIwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRVMUZNS0NjeU1ERTNMVEExTFRFMUp5bGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdVpuSnZiVk5SVENnbk1qQXhOeTB3TlMweE5TQXdPVG94TWpvek5DY3BYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFUVVV3b0p6SXdNVGN0TURVdE1UVWdNRGs2TVRJNk16UXVNelF5SnlsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Wm5KdmJWTlJUQ2duTWpBeE55MHdOUzB4TlNBd09Ub3hNam96TkM0ek5ESXJNRFk2TURBbktWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRVMUZNS0NjeU1ERTNMVEExTFRFMUlEQTVPakV5T2pNMExqTTBNaUJCYldWeWFXTmhMMHh2YzE5QmJtZGxiR1Z6SnlsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Wm5KdmJWTlJUQ2duTWpBeE55MHdOUzB4TlNBd09Ub3hNam96TkM0ek5ESWdRVzFsY21sallTOU1iM05mUVc1blpXeGxjeWNzSUhzZ2MyVjBXbTl1WlRvZ2RISjFaU0I5S1Z4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVtY205dFUxRk1LQ2N5TURFM0xUQTFMVEUxSURBNU9qRXlPak0wTGpNME1pY3NJSHNnZW05dVpUb2dKMEZ0WlhKcFkyRXZURzl6WDBGdVoyVnNaWE1uSUgwcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVRVVXdvSnpBNU9qRXlPak0wTGpNME1pY3BYRzRnSUNBcUlFQnlaWFIxY200Z2UwUmhkR1ZVYVcxbGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHWnliMjFUVVV3b2RHVjRkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdXM1poYkhNc0lIQmhjbk5sWkZwdmJtVmRJRDBnY0dGeWMyVlRVVXdvZEdWNGRDazdYRzRnSUNBZ2NtVjBkWEp1SUhCaGNuTmxSR0YwWVZSdlJHRjBaVlJwYldVb2RtRnNjeXdnY0dGeWMyVmtXbTl1WlN3Z2IzQjBjeXdnWENKVFVVeGNJaXdnZEdWNGRDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0Z1SUdsdWRtRnNhV1FnUkdGMFpWUnBiV1V1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnlaV0Z6YjI0Z0xTQnphVzF3YkdVZ2MzUnlhVzVuSUc5bUlIZG9lU0IwYUdseklFUmhkR1ZVYVcxbElHbHpJR2x1ZG1Gc2FXUXVJRk5vYjNWc1pDQnViM1FnWTI5dWRHRnBiaUJ3WVhKaGJXVjBaWEp6SUc5eUlHRnVlWFJvYVc1bklHVnNjMlVnWkdGMFlTMWtaWEJsYm1SbGJuUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0bGVIQnNZVzVoZEdsdmJqMXVkV3hzWFNBdElHeHZibWRsY2lCbGVIQnNZVzVoZEdsdmJpd2diV0Y1SUdsdVkyeDFaR1VnY0dGeVlXMWxkR1Z5Y3lCaGJtUWdiM1JvWlhJZ2RYTmxablZzSUdSbFluVm5aMmx1WnlCcGJtWnZjbTFoZEdsdmJseHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxWR2x0WlgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCcGJuWmhiR2xrS0hKbFlYTnZiaXdnWlhod2JHRnVZWFJwYjI0Z1BTQnVkV3hzS1NCN1hHNGdJQ0FnYVdZZ0tDRnlaV0Z6YjI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblpoYkdsa1FYSm5kVzFsYm5SRmNuSnZjaWhjSW01bFpXUWdkRzhnYzNCbFkybG1lU0JoSUhKbFlYTnZiaUIwYUdVZ1JHRjBaVlJwYldVZ2FYTWdhVzUyWVd4cFpGd2lLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCcGJuWmhiR2xrSUQwZ2NtVmhjMjl1SUdsdWMzUmhibU5sYjJZZ1NXNTJZV3hwWkNBL0lISmxZWE52YmlBNklHNWxkeUJKYm5aaGJHbGtLSEpsWVhOdmJpd2daWGh3YkdGdVlYUnBiMjRwTzF4dVhHNGdJQ0FnYVdZZ0tGTmxkSFJwYm1kekxuUm9jbTkzVDI1SmJuWmhiR2xrS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkVSaGRHVlVhVzFsUlhKeWIzSW9hVzUyWVd4cFpDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JHRjBaVlJwYldVb2V5QnBiblpoYkdsa0lIMHBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYUdWamF5QnBaaUJoYmlCdlltcGxZM1FnYVhNZ1lXNGdhVzV6ZEdGdVkyVWdiMllnUkdGMFpWUnBiV1V1SUZkdmNtdHpJR0ZqY205emN5QmpiMjUwWlhoMElHSnZkVzVrWVhKcFpYTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dlltcGxZM1I5SUc5Y2JpQWdJQ29nUUhKbGRIVnliaUI3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJwYzBSaGRHVlVhVzFsS0c4cElIdGNiaUFnSUNCeVpYUjFjbTRnS0c4Z0ppWWdieTVwYzB4MWVHOXVSR0YwWlZScGJXVXBJSHg4SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnTHk4Z1NVNUdUMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElIWmhiSFZsSUc5bUlIVnVhWFF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjFibWwwSUMwZ1lTQjFibWwwSUhOMVkyZ2dZWE1nSjIxcGJuVjBaU2NnYjNJZ0oyUmhlU2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTnl3Z05Da3VaMlYwS0NkdGIyNTBhQ2NwT3lBdkx6MCtJRGRjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTnl3Z05Da3VaMlYwS0Nka1lYa25LVHNnTHk4OVBpQTBYRzRnSUNBcUlFQnlaWFIxY200Z2UyNTFiV0psY24xY2JpQWdJQ292WEc0Z0lHZGxkQ2gxYm1sMEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTmJkVzVwZEYwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjNhR1YwYUdWeUlIUm9aU0JFWVhSbFZHbHRaU0JwY3lCMllXeHBaQzRnU1c1MllXeHBaQ0JFWVhSbFZHbHRaWE1nYjJOamRYSWdkMmhsYmpwY2JpQWdJQ29nS2lCVWFHVWdSR0YwWlZScGJXVWdkMkZ6SUdOeVpXRjBaV1FnWm5KdmJTQnBiblpoYkdsa0lHTmhiR1Z1WkdGeUlHbHVabTl5YldGMGFXOXVMQ0J6ZFdOb0lHRnpJSFJvWlNBeE0zUm9JRzF2Ym5Sb0lHOXlJRVpsWW5KMVlYSjVJRE13WEc0Z0lDQXFJQ29nVkdobElFUmhkR1ZVYVcxbElIZGhjeUJqY21WaGRHVmtJR0o1SUdGdUlHOXdaWEpoZEdsdmJpQnZiaUJoYm05MGFHVnlJR2x1ZG1Gc2FXUWdaR0YwWlZ4dUlDQWdLaUJBZEhsd1pTQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJR2RsZENCcGMxWmhiR2xrS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHVkbUZzYVdRZ1BUMDlJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhiaUJsY25KdmNpQmpiMlJsSUdsbUlIUm9hWE1nUkdGMFpWUnBiV1VnYVhNZ2FXNTJZV3hwWkN3Z2IzSWdiblZzYkNCcFppQjBhR1VnUkdGMFpWUnBiV1VnYVhNZ2RtRnNhV1JjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lHZGxkQ0JwYm5aaGJHbGtVbVZoYzI5dUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx1ZG1Gc2FXUWdQeUIwYUdsekxtbHVkbUZzYVdRdWNtVmhjMjl1SURvZ2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdGdUlHVjRjR3hoYm1GMGFXOXVJRzltSUhkb2VTQjBhR2x6SUVSaGRHVlVhVzFsSUdKbFkyRnRaU0JwYm5aaGJHbGtMQ0J2Y2lCdWRXeHNJR2xtSUhSb1pTQkVZWFJsVkdsdFpTQnBjeUIyWVd4cFpGeHVJQ0FnS2lCQWRIbHdaU0I3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWjJWMElHbHVkbUZzYVdSRmVIQnNZVzVoZEdsdmJpZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYm5aaGJHbGtJRDhnZEdocGN5NXBiblpoYkdsa0xtVjRjR3hoYm1GMGFXOXVJRG9nYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJR3h2WTJGc1pTQnZaaUJoSUVSaGRHVlVhVzFsTENCemRXTm9JQ2RsYmkxSFFpY3VJRlJvWlNCc2IyTmhiR1VnYVhNZ2RYTmxaQ0IzYUdWdUlHWnZjbTFoZEhScGJtY2dkR2hsSUVSaGRHVlVhVzFsWEc0Z0lDQXFYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdiRzlqWVd4bEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxteHZZeTVzYjJOaGJHVWdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJTQnZaaUJoSUVSaGRHVlVhVzFsTENCemRXTm9JQ2RpWlc1bkp5NGdWR2hsSUc1MWJXSmxjbWx1WnlCemVYTjBaVzBnYVhNZ2RYTmxaQ0IzYUdWdUlHWnZjbTFoZEhScGJtY2dkR2hsSUVSaGRHVlVhVzFsWEc0Z0lDQXFYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdiblZ0WW1WeWFXNW5VM2x6ZEdWdEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxteHZZeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiM1YwY0hWMElHTmhiR1Z1WkdGeUlHOW1JR0VnUkdGMFpWUnBiV1VzSUhOMVkyZ2dKMmx6YkdGdGFXTW5MaUJVYUdVZ2IzVjBjSFYwSUdOaGJHVnVaR0Z5SUdseklIVnpaV1FnZDJobGJpQm1iM0p0WVhSMGFXNW5JSFJvWlNCRVlYUmxWR2x0WlZ4dUlDQWdLbHh1SUNBZ0tpQkFkSGx3WlNCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ1oyVjBJRzkxZEhCMWRFTmhiR1Z1WkdGeUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxteHZZeTV2ZFhSd2RYUkRZV3hsYm1SaGNpQTZJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQjBhVzFsSUhwdmJtVWdZWE56YjJOcFlYUmxaQ0IzYVhSb0lIUm9hWE1nUkdGMFpWUnBiV1V1WEc0Z0lDQXFJRUIwZVhCbElIdGFiMjVsZlZ4dUlDQWdLaTljYmlBZ1oyVjBJSHB2Ym1Vb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM3B2Ym1VN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQnVZVzFsSUc5bUlIUm9aU0IwYVcxbElIcHZibVV1WEc0Z0lDQXFJRUIwZVhCbElIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZW05dVpVNWhiV1VvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lIUm9hWE11ZW05dVpTNXVZVzFsSURvZ2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUhsbFlYSmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOU3dnTWpVcExubGxZWElnTHk4OVBpQXlNREUzWEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZVdWaGNpZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtJRDhnZEdocGN5NWpMbmxsWVhJZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCeGRXRnlkR1Z5WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVGNzSURVc0lESTFLUzV4ZFdGeWRHVnlJQzh2UFQ0Z01seHVJQ0FnS2lCQWRIbHdaU0I3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWjJWMElIRjFZWEowWlhJb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JRTFoZEdndVkyVnBiQ2gwYUdsekxtTXViVzl1ZEdnZ0x5QXpLU0E2SUU1aFRqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJRzF2Ym5Sb0lDZ3hMVEV5S1M1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z05Td2dNalVwTG0xdmJuUm9JQzh2UFQ0Z05WeHVJQ0FnS2lCQWRIbHdaU0I3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWjJWMElHMXZiblJvS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG1NdWJXOXVkR2dnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0JrWVhrZ2IyWWdkR2hsSUcxdmJuUm9JQ2d4TFRNd2FYTm9LUzVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTlN3Z01qVXBMbVJoZVNBdkx6MCtJREkxWEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnWkdGNUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxtTXVaR0Y1SURvZ1RtRk9PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnYUc5MWNpQnZaaUIwYUdVZ1pHRjVJQ2d3TFRJektTNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOU3dnTWpVc0lEa3BMbWh2ZFhJZ0x5ODlQaUE1WEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnYUc5MWNpZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtJRDhnZEdocGN5NWpMbWh2ZFhJZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCdGFXNTFkR1VnYjJZZ2RHaGxJR2h2ZFhJZ0tEQXROVGtwTGx4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBMUxDQXlOU3dnT1N3Z016QXBMbTFwYm5WMFpTQXZMejArSURNd1hHNGdJQ0FxSUVCMGVYQmxJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JXbHVkWFJsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG1NdWJXbHVkWFJsSURvZ1RtRk9PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnYzJWamIyNWtJRzltSUhSb1pTQnRhVzUxZEdVZ0tEQXROVGtwTGx4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBMUxDQXlOU3dnT1N3Z016QXNJRFV5S1M1elpXTnZibVFnTHk4OVBpQTFNbHh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJSE5sWTI5dVpDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtJRDhnZEdocGN5NWpMbk5sWTI5dVpDQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHMXBiR3hwYzJWamIyNWtJRzltSUhSb1pTQnpaV052Ym1RZ0tEQXRPVGs1S1M1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z05Td2dNalVzSURrc0lETXdMQ0ExTWl3Z05qVTBLUzV0YVd4c2FYTmxZMjl1WkNBdkx6MCtJRFkxTkZ4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUcxcGJHeHBjMlZqYjI1a0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxtTXViV2xzYkdselpXTnZibVFnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0IzWldWcklIbGxZWEpjYmlBZ0lDb2dRSE5sWlNCb2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOUpVMDlmZDJWbGExOWtZWFJsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURFeUxDQXpNU2t1ZDJWbGExbGxZWElnTHk4OVBpQXlNREUxWEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZDJWbGExbGxZWElvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lIQnZjM05wWW14NVEyRmphR1ZrVjJWbGEwUmhkR0VvZEdocGN5a3VkMlZsYTFsbFlYSWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQjNaV1ZySUc1MWJXSmxjaUJ2WmlCMGFHVWdkMlZsYXlCNVpXRnlJQ2d4TFRVeWFYTm9LUzVjYmlBZ0lDb2dRSE5sWlNCb2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOUpVMDlmZDJWbGExOWtZWFJsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVGNzSURVc0lESTFLUzUzWldWclRuVnRZbVZ5SUM4dlBUNGdNakZjYmlBZ0lDb2dRSFI1Y0dVZ2UyNTFiV0psY24xY2JpQWdJQ292WEc0Z0lHZGxkQ0IzWldWclRuVnRZbVZ5S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QndiM056YVdKc2VVTmhZMmhsWkZkbFpXdEVZWFJoS0hSb2FYTXBMbmRsWld0T2RXMWlaWElnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0JrWVhrZ2IyWWdkR2hsSUhkbFpXc3VYRzRnSUNBcUlERWdhWE1nVFc5dVpHRjVJR0Z1WkNBM0lHbHpJRk4xYm1SaGVWeHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZaVzR1ZDJscmFYQmxaR2xoTG05eVp5OTNhV3RwTDBsVFQxOTNaV1ZyWDJSaGRHVmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE5Dd2dNVEVzSURNeEtTNTNaV1ZyWkdGNUlDOHZQVDRnTkZ4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUhkbFpXdGtZWGtvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lIQnZjM05wWW14NVEyRmphR1ZrVjJWbGEwUmhkR0VvZEdocGN5a3VkMlZsYTJSaGVTQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHOXlaR2x1WVd3Z0tHMWxZVzVwYm1jZ2RHaGxJR1JoZVNCdlppQjBhR1VnZVdWaGNpbGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOU3dnTWpVcExtOXlaR2x1WVd3Z0x5ODlQaUF4TkRWY2JpQWdJQ29nUUhSNWNHVWdlMjUxYldKbGNueEVZWFJsVkdsdFpYMWNiaUFnSUNvdlhHNGdJR2RsZENCdmNtUnBibUZzS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5Qm5jbVZuYjNKcFlXNVViMDl5WkdsdVlXd29kR2hwY3k1aktTNXZjbVJwYm1Gc0lEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2FIVnRZVzRnY21WaFpHRmliR1VnYzJodmNuUWdiVzl1ZEdnZ2JtRnRaU3dnYzNWamFDQmhjeUFuVDJOMEp5NWNiaUFnSUNvZ1JHVm1ZWFZzZEhNZ2RHOGdkR2hsSUhONWMzUmxiU2R6SUd4dlkyRnNaU0JwWmlCdWJ5QnNiMk5oYkdVZ2FHRnpJR0psWlc0Z2MzQmxZMmxtYVdWa1hHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRjc0lERXdMQ0F6TUNrdWJXOXVkR2hUYUc5eWRDQXZMejArSUU5amRGeHVJQ0FnS2lCQWRIbHdaU0I3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWjJWMElHMXZiblJvVTJodmNuUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUVsdVptOHViVzl1ZEdoektGd2ljMmh2Y25SY0lpd2dleUJzYjJOUFltbzZJSFJvYVhNdWJHOWpJSDBwVzNSb2FYTXViVzl1ZEdnZ0xTQXhYU0E2SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0JvZFcxaGJpQnlaV0ZrWVdKc1pTQnNiMjVuSUcxdmJuUm9JRzVoYldVc0lITjFZMmdnWVhNZ0owOWpkRzlpWlhJbkxseHVJQ0FnS2lCRVpXWmhkV3gwY3lCMGJ5QjBhR1VnYzNsemRHVnRKM01nYkc5allXeGxJR2xtSUc1dklHeHZZMkZzWlNCb1lYTWdZbVZsYmlCemNHVmphV1pwWldSY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z01UQXNJRE13S1M1dGIyNTBhRXh2Ym1jZ0x5ODlQaUJQWTNSdlltVnlYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdiVzl1ZEdoTWIyNW5LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCSmJtWnZMbTF2Ym5Sb2N5aGNJbXh2Ym1kY0lpd2dleUJzYjJOUFltbzZJSFJvYVhNdWJHOWpJSDBwVzNSb2FYTXViVzl1ZEdnZ0xTQXhYU0E2SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0JvZFcxaGJpQnlaV0ZrWVdKc1pTQnphRzl5ZENCM1pXVnJaR0Y1TENCemRXTm9JR0Z6SUNkTmIyNG5MbHh1SUNBZ0tpQkVaV1poZFd4MGN5QjBieUIwYUdVZ2MzbHpkR1Z0SjNNZ2JHOWpZV3hsSUdsbUlHNXZJR3h2WTJGc1pTQm9ZWE1nWW1WbGJpQnpjR1ZqYVdacFpXUmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dNVEFzSURNd0tTNTNaV1ZyWkdGNVUyaHZjblFnTHk4OVBpQk5iMjVjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lHZGxkQ0IzWldWclpHRjVVMmh2Y25Rb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JRWx1Wm04dWQyVmxhMlJoZVhNb1hDSnphRzl5ZEZ3aUxDQjdJR3h2WTA5aWFqb2dkR2hwY3k1c2IyTWdmU2xiZEdocGN5NTNaV1ZyWkdGNUlDMGdNVjBnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnYUhWdFlXNGdjbVZoWkdGaWJHVWdiRzl1WnlCM1pXVnJaR0Y1TENCemRXTm9JR0Z6SUNkTmIyNWtZWGtuTGx4dUlDQWdLaUJFWldaaGRXeDBjeUIwYnlCMGFHVWdjM2x6ZEdWdEozTWdiRzlqWVd4bElHbG1JRzV2SUd4dlkyRnNaU0JvWVhNZ1ltVmxiaUJ6Y0dWamFXWnBaV1JjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTVRBc0lETXdLUzUzWldWclpHRjVURzl1WnlBdkx6MCtJRTF2Ym1SaGVWeHVJQ0FnS2lCQWRIbHdaU0I3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWjJWMElIZGxaV3RrWVhsTWIyNW5LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCSmJtWnZMbmRsWld0a1lYbHpLRndpYkc5dVoxd2lMQ0I3SUd4dlkwOWlham9nZEdocGN5NXNiMk1nZlNsYmRHaHBjeTUzWldWclpHRjVJQzBnTVYwZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ1ZWUkRJRzltWm5ObGRDQnZaaUIwYUdseklFUmhkR1ZVYVcxbElHbHVJRzFwYm5WMFpYTmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1YjJabWMyVjBJQzh2UFQ0Z0xUSTBNRnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vS1M1dlptWnpaWFFnTHk4OVBpQXdYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdiMlptYzJWMEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUFyZEdocGN5NXZJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdjMmh2Y25RZ2FIVnRZVzRnYm1GdFpTQm1iM0lnZEdobElIcHZibVVuY3lCamRYSnlaVzUwSUc5bVpuTmxkQ3dnWm05eUlHVjRZVzF3YkdVZ1hDSkZVMVJjSWlCdmNpQmNJa1ZFVkZ3aUxseHVJQ0FnS2lCRVpXWmhkV3gwY3lCMGJ5QjBhR1VnYzNsemRHVnRKM01nYkc5allXeGxJR2xtSUc1dklHeHZZMkZzWlNCb1lYTWdZbVZsYmlCemNHVmphV1pwWldSY2JpQWdJQ29nUUhSNWNHVWdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJR2RsZENCdlptWnpaWFJPWVcxbFUyaHZjblFvS1NCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YVhOV1lXeHBaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWVtOXVaUzV2Wm1aelpYUk9ZVzFsS0hSb2FYTXVkSE1zSUh0Y2JpQWdJQ0FnSUNBZ1ptOXliV0YwT2lCY0luTm9iM0owWENJc1hHNGdJQ0FnSUNBZ0lHeHZZMkZzWlRvZ2RHaHBjeTVzYjJOaGJHVXNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdiRzl1WnlCb2RXMWhiaUJ1WVcxbElHWnZjaUIwYUdVZ2VtOXVaU2R6SUdOMWNuSmxiblFnYjJabWMyVjBMQ0JtYjNJZ1pYaGhiWEJzWlNCY0lrVmhjM1JsY200Z1UzUmhibVJoY21RZ1ZHbHRaVndpSUc5eUlGd2lSV0Z6ZEdWeWJpQkVZWGxzYVdkb2RDQlVhVzFsWENJdVhHNGdJQ0FxSUVSbFptRjFiSFJ6SUhSdklIUm9aU0J6ZVhOMFpXMG5jeUJzYjJOaGJHVWdhV1lnYm04Z2JHOWpZV3hsSUdoaGN5QmlaV1Z1SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBZEhsd1pTQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUc5bVpuTmxkRTVoYldWTWIyNW5LQ2tnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5wdmJtVXViMlptYzJWMFRtRnRaU2gwYUdsekxuUnpMQ0I3WEc0Z0lDQWdJQ0FnSUdadmNtMWhkRG9nWENKc2IyNW5YQ0lzWEc0Z0lDQWdJQ0FnSUd4dlkyRnNaVG9nZEdocGN5NXNiMk5oYkdVc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IzYUdWMGFHVnlJSFJvYVhNZ2VtOXVaU2R6SUc5bVpuTmxkQ0JsZG1WeUlHTm9ZVzVuWlhNc0lHRnpJR2x1SUdFZ1JGTlVMbHh1SUNBZ0tpQkFkSGx3WlNCN1ltOXZiR1ZoYm4xY2JpQWdJQ292WEc0Z0lHZGxkQ0JwYzA5bVpuTmxkRVpwZUdWa0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxucHZibVV1YVhOVmJtbDJaWEp6WVd3Z09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IzYUdWMGFHVnlJSFJvWlNCRVlYUmxWR2x0WlNCcGN5QnBiaUJoSUVSVFZDNWNiaUFnSUNvZ1FIUjVjR1VnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCblpYUWdhWE5KYmtSVFZDZ3BJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXBjMDltWm5ObGRFWnBlR1ZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0FnSUhSb2FYTXViMlptYzJWMElENGdkR2hwY3k1elpYUW9leUJ0YjI1MGFEb2dNU3dnWkdGNU9pQXhJSDBwTG05bVpuTmxkQ0I4ZkZ4dUlDQWdJQ0FnSUNCMGFHbHpMbTltWm5ObGRDQStJSFJvYVhNdWMyVjBLSHNnYlc5dWRHZzZJRFVnZlNrdWIyWm1jMlYwWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhSeWRXVWdhV1lnZEdocGN5QkVZWFJsVkdsdFpTQnBjeUJwYmlCaElHeGxZWEFnZVdWaGNpd2dabUZzYzJVZ2IzUm9aWEozYVhObFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRZcExtbHpTVzVNWldGd1dXVmhjaUF2THowK0lIUnlkV1ZjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhNeWt1YVhOSmJreGxZWEJaWldGeUlDOHZQVDRnWm1Gc2MyVmNiaUFnSUNvZ1FIUjVjR1VnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCblpYUWdhWE5KYmt4bFlYQlpaV0Z5S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJwYzB4bFlYQlpaV0Z5S0hSb2FYTXVlV1ZoY2lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjBhR1VnYm5WdFltVnlJRzltSUdSaGVYTWdhVzRnZEdocGN5QkVZWFJsVkdsdFpTZHpJRzF2Ym5Sb1hHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRZc0lESXBMbVJoZVhOSmJrMXZiblJvSUM4dlBUNGdNamxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOaXdnTXlrdVpHRjVjMGx1VFc5dWRHZ2dMeTg5UGlBek1WeHVJQ0FnS2lCQWRIbHdaU0I3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWjJWMElHUmhlWE5KYmsxdmJuUm9LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmtZWGx6U1c1TmIyNTBhQ2gwYUdsekxubGxZWElzSUhSb2FYTXViVzl1ZEdncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdkR2hsSUc1MWJXSmxjaUJ2WmlCa1lYbHpJR2x1SUhSb2FYTWdSR0YwWlZScGJXVW5jeUI1WldGeVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRZcExtUmhlWE5KYmxsbFlYSWdMeTg5UGlBek5qWmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE15a3VaR0Y1YzBsdVdXVmhjaUF2THowK0lETTJOVnh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR1JoZVhOSmJsbGxZWElvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lHUmhlWE5KYmxsbFlYSW9kR2hwY3k1NVpXRnlLU0E2SUU1aFRqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJvWlNCdWRXMWlaWElnYjJZZ2QyVmxhM01nYVc0Z2RHaHBjeUJFWVhSbFZHbHRaU2R6SUhsbFlYSmNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5SlUwOWZkMlZsYTE5a1lYUmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01EUXBMbmRsWld0elNXNVhaV1ZyV1dWaGNpQXZMejArSURVelhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRNcExuZGxaV3R6U1c1WFpXVnJXV1ZoY2lBdkx6MCtJRFV5WEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZDJWbGEzTkpibGRsWld0WlpXRnlLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCM1pXVnJjMGx1VjJWbGExbGxZWElvZEdocGN5NTNaV1ZyV1dWaGNpa2dPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjBhR1VnY21WemIyeDJaV1FnU1c1MGJDQnZjSFJwYjI1eklHWnZjaUIwYUdseklFUmhkR1ZVYVcxbExseHVJQ0FnS2lCVWFHbHpJR2x6SUhWelpXWjFiQ0JwYmlCMWJtUmxjbk4wWVc1a2FXNW5JSFJvWlNCaVpXaGhkbWx2Y2lCdlppQm1iM0p0WVhSMGFXNW5JRzFsZEdodlpITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0IwYUdVZ2MyRnRaU0J2Y0hScGIyNXpJR0Z6SUhSdlRHOWpZV3hsVTNSeWFXNW5YRzRnSUNBcUlFQnlaWFIxY200Z2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lISmxjMjlzZG1Wa1RHOWpZV3hsVDNCMGFXOXVjeWh2Y0hSeklEMGdlMzBwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2WTJGc1pTd2diblZ0WW1WeWFXNW5VM2x6ZEdWdExDQmpZV3hsYm1SaGNpQjlJRDBnUm05eWJXRjBkR1Z5TG1OeVpXRjBaU2hjYmlBZ0lDQWdJSFJvYVhNdWJHOWpMbU5zYjI1bEtHOXdkSE1wTEZ4dUlDQWdJQ0FnYjNCMGMxeHVJQ0FnSUNrdWNtVnpiMngyWldSUGNIUnBiMjV6S0hSb2FYTXBPMXh1SUNBZ0lISmxkSFZ5YmlCN0lHeHZZMkZzWlN3Z2JuVnRZbVZ5YVc1blUzbHpkR1Z0TENCdmRYUndkWFJEWVd4bGJtUmhjam9nWTJGc1pXNWtZWElnZlR0Y2JpQWdmVnh1WEc0Z0lDOHZJRlJTUVU1VFJrOVNUVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQmNJbE5sZEZ3aUlIUm9aU0JFWVhSbFZHbHRaU2R6SUhwdmJtVWdkRzhnVlZSRExpQlNaWFIxY201eklHRWdibVYzYkhrdFkyOXVjM1J5ZFdOMFpXUWdSR0YwWlZScGJXVXVYRzRnSUNBcVhHNGdJQ0FxSUVWeGRXbDJZV3hsYm5RZ2RHOGdlMEJzYVc1cklFUmhkR1ZVYVcxbEkzTmxkRnB2Ym1WOUtDZDFkR01uS1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjltWm5ObGREMHdYU0F0SUc5d2RHbHZibUZzYkhrc0lHRnVJRzltWm5ObGRDQm1jbTl0SUZWVVF5QnBiaUJ0YVc1MWRHVnpYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmIzQjBjejE3ZlYwZ0xTQnZjSFJwYjI1eklIUnZJSEJoYzNNZ2RHOGdZSE5sZEZwdmJtVW9LV0JjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0IwYjFWVVF5aHZabVp6WlhRZ1BTQXdMQ0J2Y0hSeklEMGdlMzBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUmFiMjVsS0VacGVHVmtUMlptYzJWMFdtOXVaUzVwYm5OMFlXNWpaU2h2Wm1aelpYUXBMQ0J2Y0hSektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJjSWxObGRGd2lJSFJvWlNCRVlYUmxWR2x0WlNkeklIcHZibVVnZEc4Z2RHaGxJR2h2YzNRbmN5QnNiMk5oYkNCNmIyNWxMaUJTWlhSMWNtNXpJR0VnYm1WM2JIa3RZMjl1YzNSeWRXTjBaV1FnUkdGMFpWUnBiV1V1WEc0Z0lDQXFYRzRnSUNBcUlFVnhkV2wyWVd4bGJuUWdkRzhnWUhObGRGcHZibVVvSjJ4dlkyRnNKeWxnWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJoZEdWVWFXMWxmVnh1SUNBZ0tpOWNiaUFnZEc5TWIyTmhiQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUmFiMjVsS0ZObGRIUnBibWR6TG1SbFptRjFiSFJhYjI1bEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJjSWxObGRGd2lJSFJvWlNCRVlYUmxWR2x0WlNkeklIcHZibVVnZEc4Z2MzQmxZMmxtYVdWa0lIcHZibVV1SUZKbGRIVnlibk1nWVNCdVpYZHNlUzFqYjI1emRISjFZM1JsWkNCRVlYUmxWR2x0WlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRbmtnWkdWbVlYVnNkQ3dnZEdobElITmxkSFJsY2lCclpXVndjeUIwYUdVZ2RXNWtaWEpzZVdsdVp5QjBhVzFsSUhSb1pTQnpZVzFsSUNoaGN5QnBiaXdnZEdobElITmhiV1VnZEdsdFpYTjBZVzF3S1N3Z1luVjBJSFJvWlNCdVpYY2dhVzV6ZEdGdVkyVWdkMmxzYkNCeVpYQnZjblFnWkdsbVptVnlaVzUwSUd4dlkyRnNJSFJwYldWeklHRnVaQ0JqYjI1emFXUmxjaUJFVTFSeklIZG9aVzRnYldGcmFXNW5JR052YlhCMWRHRjBhVzl1Y3l3Z1lYTWdkMmwwYUNCN1FHeHBibXNnUkdGMFpWUnBiV1VqY0d4MWMzMHVJRmx2ZFNCdFlYa2dkMmx6YUNCMGJ5QjFjMlVnZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VEc5allXeDlJR0Z1WkNCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5VlZFTjlJSGRvYVdOb0lIQnliM1pwWkdVZ2MybHRjR3hsSUdOdmJuWmxibWxsYm1ObElIZHlZWEJ3WlhKeklHWnZjaUJqYjIxdGIyNXNlU0IxYzJWa0lIcHZibVZ6TGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeGFiMjVsZlNCYmVtOXVaVDBuYkc5allXd25YU0F0SUdFZ2VtOXVaU0JwWkdWdWRHbG1hV1Z5TGlCQmN5QmhJSE4wY21sdVp5d2dkR2hoZENCallXNGdZbVVnWVc1NUlFbEJUa0VnZW05dVpTQnpkWEJ3YjNKMFpXUWdZbmtnZEdobElHaHZjM1FnWlc1MmFYSnZibTFsYm5Rc0lHOXlJR0VnWm1sNFpXUXRiMlptYzJWMElHNWhiV1VnYjJZZ2RHaGxJR1p2Y20wZ0oxVlVReXN6Snl3Z2IzSWdkR2hsSUhOMGNtbHVaM01nSjJ4dlkyRnNKeUJ2Y2lBbmRYUmpKeTRnV1c5MUlHMWhlU0JoYkhOdklITjFjSEJzZVNCaGJpQnBibk4wWVc1alpTQnZaaUJoSUh0QWJHbHVheUJFWVhSbFZHbHRaU05hYjI1bGZTQmpiR0Z6Y3k1Y2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJwYjI1elhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVhMlZsY0V4dlkyRnNWR2x0WlQxbVlXeHpaVjBnTFNCSlppQjBjblZsTENCaFpHcDFjM1FnZEdobElIVnVaR1Z5YkhscGJtY2dkR2x0WlNCemJ5QjBhR0YwSUhSb1pTQnNiMk5oYkNCMGFXMWxJSE4wWVhseklIUm9aU0J6WVcxbExDQmlkWFFnYVc0Z2RHaGxJSFJoY21kbGRDQjZiMjVsTGlCWmIzVWdjMmh2ZFd4a0lISmhjbVZzZVNCdVpXVmtJSFJvYVhNdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSaGRHVlVhVzFsZlZ4dUlDQWdLaTljYmlBZ2MyVjBXbTl1WlNoNmIyNWxMQ0I3SUd0bFpYQk1iMk5oYkZScGJXVWdQU0JtWVd4elpTd2dhMlZsY0VOaGJHVnVaR0Z5VkdsdFpTQTlJR1poYkhObElIMGdQU0I3ZlNrZ2UxeHVJQ0FnSUhwdmJtVWdQU0J1YjNKdFlXeHBlbVZhYjI1bEtIcHZibVVzSUZObGRIUnBibWR6TG1SbFptRjFiSFJhYjI1bEtUdGNiaUFnSUNCcFppQW9lbTl1WlM1bGNYVmhiSE1vZEdocGN5NTZiMjVsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hlbTl1WlM1cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkdGMFpWUnBiV1V1YVc1MllXeHBaQ2gxYm5OMWNIQnZjblJsWkZwdmJtVW9lbTl1WlNrcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JzWlhRZ2JtVjNWRk1nUFNCMGFHbHpMblJ6TzF4dUlDQWdJQ0FnYVdZZ0tHdGxaWEJNYjJOaGJGUnBiV1VnZkh3Z2EyVmxjRU5oYkdWdVpHRnlWR2x0WlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdlptWnpaWFJIZFdWemN5QTlJSHB2Ym1VdWIyWm1jMlYwS0hSb2FYTXVkSE1wTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoYzA5aWFpQTlJSFJvYVhNdWRHOVBZbXBsWTNRb0tUdGNiaUFnSUNBZ0lDQWdXMjVsZDFSVFhTQTlJRzlpYWxSdlZGTW9ZWE5QWW1vc0lHOW1abk5sZEVkMVpYTnpMQ0I2YjI1bEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCamJHOXVaU2gwYUdsekxDQjdJSFJ6T2lCdVpYZFVVeXdnZW05dVpTQjlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nWENKVFpYUmNJaUIwYUdVZ2JHOWpZV3hsTENCdWRXMWlaWEpwYm1kVGVYTjBaVzBzSUc5eUlHOTFkSEIxZEVOaGJHVnVaR0Z5TGlCU1pYUjFjbTV6SUdFZ2JtVjNiSGt0WTI5dWMzUnlkV04wWldRZ1JHRjBaVlJwYldVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J3Y205d1pYSjBhV1Z6SUMwZ2RHaGxJSEJ5YjNCbGNuUnBaWE1nZEc4Z2MyVjBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UY3NJRFVzSURJMUtTNXlaV052Ym1acFozVnlaU2g3SUd4dlkyRnNaVG9nSjJWdUxVZENKeUI5S1Z4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDFjYmlBZ0lDb3ZYRzRnSUhKbFkyOXVabWxuZFhKbEtIc2diRzlqWVd4bExDQnVkVzFpWlhKcGJtZFRlWE4wWlcwc0lHOTFkSEIxZEVOaGJHVnVaR0Z5SUgwZ1BTQjdmU2tnZTF4dUlDQWdJR052Ym5OMElHeHZZeUE5SUhSb2FYTXViRzlqTG1Oc2IyNWxLSHNnYkc5allXeGxMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNJRzkxZEhCMWRFTmhiR1Z1WkdGeUlIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCamJHOXVaU2gwYUdsekxDQjdJR3h2WXlCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJjSWxObGRGd2lJSFJvWlNCc2IyTmhiR1V1SUZKbGRIVnlibk1nWVNCdVpYZHNlUzFqYjI1emRISjFZM1JsWkNCRVlYUmxWR2x0WlM1Y2JpQWdJQ29nU25WemRDQmhJR052Ym5abGJtbGxiblFnWVd4cFlYTWdabTl5SUhKbFkyOXVabWxuZFhKbEtIc2diRzlqWVd4bElIMHBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UY3NJRFVzSURJMUtTNXpaWFJNYjJOaGJHVW9KMlZ1TFVkQ0p5bGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQnpaWFJNYjJOaGJHVW9iRzlqWVd4bEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZqYjI1bWFXZDFjbVVvZXlCc2IyTmhiR1VnZlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dYQ0pUWlhSY0lpQjBhR1VnZG1Gc2RXVnpJRzltSUhOd1pXTnBabWxsWkNCMWJtbDBjeTRnVW1WMGRYSnVjeUJoSUc1bGQyeDVMV052Ym5OMGNuVmpkR1ZrSUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJaYjNVZ1kyRnVJRzl1YkhrZ2MyVjBJSFZ1YVhSeklIZHBkR2dnZEdocGN5QnRaWFJvYjJRN0lHWnZjaUJjSW5ObGRIUnBibWRjSWlCdFpYUmhaR0YwWVN3Z2MyVmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTnlaV052Ym1acFozVnlaWDBnWVc1a0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOelpYUmFiMjVsZlM1Y2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJSFpoYkhWbGN5QXRJR0VnYldGd2NHbHVaeUJ2WmlCMWJtbDBjeUIwYnlCdWRXMWlaWEp6WEc0Z0lDQXFJRUJsZUdGdGNHeGxJR1IwTG5ObGRDaDdJSGxsWVhJNklESXdNVGNnZlNsY2JpQWdJQ29nUUdWNFlXMXdiR1VnWkhRdWMyVjBLSHNnYUc5MWNqb2dPQ3dnYldsdWRYUmxPaUF6TUNCOUtWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCa2RDNXpaWFFvZXlCM1pXVnJaR0Y1T2lBMUlIMHBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElHUjBMbk5sZENoN0lIbGxZWEk2SURJd01EVXNJRzl5WkdsdVlXdzZJREl6TkNCOUtWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxWR2x0WlgxY2JpQWdJQ292WEc0Z0lITmxkQ2gyWVd4MVpYTXBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlIUm9hWE03WEc1Y2JpQWdJQ0JqYjI1emRDQnViM0p0WVd4cGVtVmtJRDBnYm05eWJXRnNhWHBsVDJKcVpXTjBLSFpoYkhWbGN5d2dibTl5YldGc2FYcGxWVzVwZENrc1hHNGdJQ0FnSUNCelpYUjBhVzVuVjJWbGExTjBkV1ptSUQxY2JpQWdJQ0FnSUNBZ0lXbHpWVzVrWldacGJtVmtLRzV2Y20xaGJHbDZaV1F1ZDJWbGExbGxZWElwSUh4OFhHNGdJQ0FnSUNBZ0lDRnBjMVZ1WkdWbWFXNWxaQ2h1YjNKdFlXeHBlbVZrTG5kbFpXdE9kVzFpWlhJcElIeDhYRzRnSUNBZ0lDQWdJQ0ZwYzFWdVpHVm1hVzVsWkNodWIzSnRZV3hwZW1Wa0xuZGxaV3RrWVhrcExGeHVJQ0FnSUNBZ1kyOXVkR0ZwYm5OUGNtUnBibUZzSUQwZ0lXbHpWVzVrWldacGJtVmtLRzV2Y20xaGJHbDZaV1F1YjNKa2FXNWhiQ2tzWEc0Z0lDQWdJQ0JqYjI1MFlXbHVjMGR5WldkdmNsbGxZWElnUFNBaGFYTlZibVJsWm1sdVpXUW9ibTl5YldGc2FYcGxaQzU1WldGeUtTeGNiaUFnSUNBZ0lHTnZiblJoYVc1elIzSmxaMjl5VFVRZ1BTQWhhWE5WYm1SbFptbHVaV1FvYm05eWJXRnNhWHBsWkM1dGIyNTBhQ2tnZkh3Z0lXbHpWVzVrWldacGJtVmtLRzV2Y20xaGJHbDZaV1F1WkdGNUtTeGNiaUFnSUNBZ0lHTnZiblJoYVc1elIzSmxaMjl5SUQwZ1kyOXVkR0ZwYm5OSGNtVm5iM0paWldGeUlIeDhJR052Ym5SaGFXNXpSM0psWjI5eVRVUXNYRzRnSUNBZ0lDQmtaV1pwYm1sMFpWZGxaV3RFWldZZ1BTQnViM0p0WVd4cGVtVmtMbmRsWld0WlpXRnlJSHg4SUc1dmNtMWhiR2w2WldRdWQyVmxhMDUxYldKbGNqdGNibHh1SUNBZ0lHbG1JQ2dvWTI5dWRHRnBibk5IY21WbmIzSWdmSHdnWTI5dWRHRnBibk5QY21ScGJtRnNLU0FtSmlCa1pXWnBibWwwWlZkbFpXdEVaV1lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRGIyNW1iR2xqZEdsdVoxTndaV05wWm1sallYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lDQWdYQ0pEWVc0bmRDQnRhWGdnZDJWbGExbGxZWEl2ZDJWbGEwNTFiV0psY2lCMWJtbDBjeUIzYVhSb0lIbGxZWEl2Ylc5dWRHZ3ZaR0Y1SUc5eUlHOXlaR2x1WVd4elhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR052Ym5SaGFXNXpSM0psWjI5eVRVUWdKaVlnWTI5dWRHRnBibk5QY21ScGJtRnNLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUTI5dVpteHBZM1JwYm1kVGNHVmphV1pwWTJGMGFXOXVSWEp5YjNJb1hDSkRZVzRuZENCdGFYZ2diM0prYVc1aGJDQmtZWFJsY3lCM2FYUm9JRzF2Ym5Sb0wyUmhlVndpS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2JXbDRaV1E3WEc0Z0lDQWdhV1lnS0hObGRIUnBibWRYWldWclUzUjFabVlwSUh0Y2JpQWdJQ0FnSUcxcGVHVmtJRDBnZDJWbGExUnZSM0psWjI5eWFXRnVLSHNnTGk0dVozSmxaMjl5YVdGdVZHOVhaV1ZyS0hSb2FYTXVZeWtzSUM0dUxtNXZjbTFoYkdsNlpXUWdmU2s3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2doYVhOVmJtUmxabWx1WldRb2JtOXliV0ZzYVhwbFpDNXZjbVJwYm1Gc0tTa2dlMXh1SUNBZ0lDQWdiV2w0WldRZ1BTQnZjbVJwYm1Gc1ZHOUhjbVZuYjNKcFlXNG9leUF1TGk1bmNtVm5iM0pwWVc1VWIwOXlaR2x1WVd3b2RHaHBjeTVqS1N3Z0xpNHVibTl5YldGc2FYcGxaQ0I5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdiV2w0WldRZ1BTQjdJQzR1TG5Sb2FYTXVkRzlQWW1wbFkzUW9LU3dnTGk0dWJtOXliV0ZzYVhwbFpDQjlPMXh1WEc0Z0lDQWdJQ0F2THlCcFppQjNaU0JrYVdSdUozUWdjMlYwSUhSb1pTQmtZWGtnWW5WMElIZGxJR1Z1WkdWa0lIVndJRzl1SUdGdUlHOTJaWEptYkc5M0lHUmhkR1VzWEc0Z0lDQWdJQ0F2THlCMWMyVWdkR2hsSUd4aGMzUWdaR0Y1SUc5bUlIUm9aU0J5YVdkb2RDQnRiMjUwYUZ4dUlDQWdJQ0FnYVdZZ0tHbHpWVzVrWldacGJtVmtLRzV2Y20xaGJHbDZaV1F1WkdGNUtTa2dlMXh1SUNBZ0lDQWdJQ0J0YVhobFpDNWtZWGtnUFNCTllYUm9MbTFwYmloa1lYbHpTVzVOYjI1MGFDaHRhWGhsWkM1NVpXRnlMQ0J0YVhobFpDNXRiMjUwYUNrc0lHMXBlR1ZrTG1SaGVTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnVzNSekxDQnZYU0E5SUc5aWFsUnZWRk1vYldsNFpXUXNJSFJvYVhNdWJ5d2dkR2hwY3k1NmIyNWxLVHRjYmlBZ0lDQnlaWFIxY200Z1kyeHZibVVvZEdocGN5d2dleUIwY3l3Z2J5QjlLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQlpHUWdZU0J3WlhKcGIyUWdiMllnZEdsdFpTQjBieUIwYUdseklFUmhkR1ZVYVcxbElHRnVaQ0J5WlhSMWNtNGdkR2hsSUhKbGMzVnNkR2x1WnlCRVlYUmxWR2x0WlZ4dUlDQWdLbHh1SUNBZ0tpQkJaR1JwYm1jZ2FHOTFjbk1zSUcxcGJuVjBaWE1zSUhObFkyOXVaSE1zSUc5eUlHMXBiR3hwYzJWamIyNWtjeUJwYm1OeVpXRnpaWE1nZEdobElIUnBiV1Z6ZEdGdGNDQmllU0IwYUdVZ2NtbG5hSFFnYm5WdFltVnlJRzltSUcxcGJHeHBjMlZqYjI1a2N5NGdRV1JrYVc1bklHUmhlWE1zSUcxdmJuUm9jeXdnYjNJZ2VXVmhjbk1nYzJocFpuUnpJSFJvWlNCallXeGxibVJoY2l3Z1lXTmpiM1Z1ZEdsdVp5Qm1iM0lnUkZOVWN5QmhibVFnYkdWaGNDQjVaV0Z5Y3lCaGJHOXVaeUIwYUdVZ2QyRjVMaUJVYUhWekxDQmdaSFF1Y0d4MWN5aDdJR2h2ZFhKek9pQXlOQ0I5S1dBZ2JXRjVJSEpsYzNWc2RDQnBiaUJoSUdScFptWmxjbVZ1ZENCMGFXMWxJSFJvWVc0Z1lHUjBMbkJzZFhNb2V5QmtZWGx6T2lBeElIMHBZQ0JwWmlCMGFHVnlaU2R6SUdFZ1JGTlVJSE5vYVdaMElHbHVJR0psZEhkbFpXNHVYRzRnSUNBcUlFQndZWEpoYlNCN1JIVnlZWFJwYjI1OFQySnFaV04wZkc1MWJXSmxjbjBnWkhWeVlYUnBiMjRnTFNCVWFHVWdZVzF2ZFc1MElIUnZJR0ZrWkM0Z1JXbDBhR1Z5SUdFZ1RIVjRiMjRnUkhWeVlYUnBiMjRzSUdFZ2JuVnRZbVZ5SUc5bUlHMXBiR3hwYzJWamIyNWtjeXdnZEdobElHOWlhbVZqZENCaGNtZDFiV1Z1ZENCMGJ5QkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLQ2xjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWNHeDFjeWd4TWpNcElDOHZmajRnYVc0Z01USXpJRzFwYkd4cGMyVmpiMjVrYzF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNXdiSFZ6S0hzZ2JXbHVkWFJsY3pvZ01UVWdmU2tnTHk5K1BpQnBiaUF4TlNCdGFXNTFkR1Z6WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuQnNkWE1vZXlCa1lYbHpPaUF4SUgwcElDOHZmajRnZEdocGN5QjBhVzFsSUhSdmJXOXljbTkzWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuQnNkWE1vZXlCa1lYbHpPaUF0TVNCOUtTQXZMMzQrSUhSb2FYTWdkR2x0WlNCNVpYTjBaWEprWVhsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VjR3gxY3loN0lHaHZkWEp6T2lBekxDQnRhVzUxZEdWek9pQXhNeUI5S1NBdkwzNCtJR2x1SURNZ2FISXNJREV6SUcxcGJseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV3YkhWektFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNeXdnYldsdWRYUmxjem9nTVRNZ2ZTa3BJQzh2Zmo0Z2FXNGdNeUJvY2l3Z01UTWdiV2x1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJoZEdWVWFXMWxmVnh1SUNBZ0tpOWNiaUFnY0d4MWN5aGtkWEpoZEdsdmJpa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQmpiMjV6ZENCa2RYSWdQU0JFZFhKaGRHbHZiaTVtY205dFJIVnlZWFJwYjI1TWFXdGxLR1IxY21GMGFXOXVLVHRjYmlBZ0lDQnlaWFIxY200Z1kyeHZibVVvZEdocGN5d2dZV1JxZFhOMFZHbHRaU2gwYUdsekxDQmtkWElwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlRkV0owY21GamRDQmhJSEJsY21sdlpDQnZaaUIwYVcxbElIUnZJSFJvYVhNZ1JHRjBaVlJwYldVZ1lXNWtJSEpsZEhWeWJpQjBhR1VnY21WemRXeDBhVzVuSUVSaGRHVlVhVzFsWEc0Z0lDQXFJRk5sWlNCN1FHeHBibXNnUkdGMFpWUnBiV1VqY0d4MWMzMWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RWRYSmhkR2x2Ym54UFltcGxZM1I4Ym5WdFltVnlmU0JrZFhKaGRHbHZiaUF0SUZSb1pTQmhiVzkxYm5RZ2RHOGdjM1ZpZEhKaFkzUXVJRVZwZEdobGNpQmhJRXgxZUc5dUlFUjFjbUYwYVc5dUxDQmhJRzUxYldKbGNpQnZaaUJ0YVd4c2FYTmxZMjl1WkhNc0lIUm9aU0J2WW1wbFkzUWdZWEpuZFcxbGJuUWdkRzhnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENncFhHNGdJQ0JBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDFjYmlBZ0lDb3ZYRzRnSUcxcGJuVnpLR1IxY21GMGFXOXVLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJR052Ym5OMElHUjFjaUE5SUVSMWNtRjBhVzl1TG1aeWIyMUVkWEpoZEdsdmJreHBhMlVvWkhWeVlYUnBiMjRwTG01bFoyRjBaU2dwTzF4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlNoMGFHbHpMQ0JoWkdwMWMzUlVhVzFsS0hSb2FYTXNJR1IxY2lrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRndpVTJWMFhDSWdkR2hwY3lCRVlYUmxWR2x0WlNCMGJ5QjBhR1VnWW1WbmFXNXVhVzVuSUc5bUlHRWdkVzVwZENCdlppQjBhVzFsTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkVzVwZENBdElGUm9aU0IxYm1sMElIUnZJR2R2SUhSdklIUm9aU0JpWldkcGJtNXBibWNnYjJZdUlFTmhiaUJpWlNBbmVXVmhjaWNzSUNkeGRXRnlkR1Z5Snl3Z0oyMXZiblJvSnl3Z0ozZGxaV3NuTENBblpHRjVKeXdnSjJodmRYSW5MQ0FuYldsdWRYUmxKeXdnSjNObFkyOXVaQ2NzSUc5eUlDZHRhV3hzYVhObFkyOXVaQ2N1WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURNc0lETXBMbk4wWVhKMFQyWW9KMjF2Ym5Sb0p5a3VkRzlKVTA5RVlYUmxLQ2s3SUM4dlBUNGdKekl3TVRRdE1ETXRNREVuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURNc0lETXBMbk4wWVhKMFQyWW9KM2xsWVhJbktTNTBiMGxUVDBSaGRHVW9LVHNnTHk4OVBpQW5NakF4TkMwd01TMHdNU2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOQ3dnTXl3Z015a3VjM1JoY25SUFppZ25kMlZsYXljcExuUnZTVk5QUkdGMFpTZ3BPeUF2THowK0lDY3lNREUwTFRBekxUQXpKeXdnZDJWbGEzTWdZV3gzWVhseklITjBZWEowSUc5dUlFMXZibVJoZVhOY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4TkN3Z015d2dNeXdnTlN3Z016QXBMbk4wWVhKMFQyWW9KMlJoZVNjcExuUnZTVk5QVkdsdFpTZ3BPeUF2THowK0lDY3dNRG93TUM0d01EQXRNRFU2TURBblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRRc0lETXNJRE1zSURVc0lETXdLUzV6ZEdGeWRFOW1LQ2RvYjNWeUp5a3VkRzlKVTA5VWFXMWxLQ2s3SUM4dlBUNGdKekExT2pBd09qQXdMakF3TUMwd05Ub3dNQ2RjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGeWRFOW1LSFZ1YVhRcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ1kyOXVjM1FnYnlBOUlIdDlMRnh1SUNBZ0lDQWdibTl5YldGc2FYcGxaRlZ1YVhRZ1BTQkVkWEpoZEdsdmJpNXViM0p0WVd4cGVtVlZibWwwS0hWdWFYUXBPMXh1SUNBZ0lITjNhWFJqYUNBb2JtOXliV0ZzYVhwbFpGVnVhWFFwSUh0Y2JpQWdJQ0FnSUdOaGMyVWdYQ0o1WldGeWMxd2lPbHh1SUNBZ0lDQWdJQ0J2TG0xdmJuUm9JRDBnTVR0Y2JpQWdJQ0FnSUM4dklHWmhiR3h6SUhSb2NtOTFaMmhjYmlBZ0lDQWdJR05oYzJVZ1hDSnhkV0Z5ZEdWeWMxd2lPbHh1SUNBZ0lDQWdZMkZ6WlNCY0ltMXZiblJvYzF3aU9seHVJQ0FnSUNBZ0lDQnZMbVJoZVNBOUlERTdYRzRnSUNBZ0lDQXZMeUJtWVd4c2N5QjBhSEp2ZFdkb1hHNGdJQ0FnSUNCallYTmxJRndpZDJWbGEzTmNJanBjYmlBZ0lDQWdJR05oYzJVZ1hDSmtZWGx6WENJNlhHNGdJQ0FnSUNBZ0lHOHVhRzkxY2lBOUlEQTdYRzRnSUNBZ0lDQXZMeUJtWVd4c2N5QjBhSEp2ZFdkb1hHNGdJQ0FnSUNCallYTmxJRndpYUc5MWNuTmNJanBjYmlBZ0lDQWdJQ0FnYnk1dGFXNTFkR1VnUFNBd08xeHVJQ0FnSUNBZ0x5OGdabUZzYkhNZ2RHaHliM1ZuYUZ4dUlDQWdJQ0FnWTJGelpTQmNJbTFwYm5WMFpYTmNJanBjYmlBZ0lDQWdJQ0FnYnk1elpXTnZibVFnUFNBd08xeHVJQ0FnSUNBZ0x5OGdabUZzYkhNZ2RHaHliM1ZuYUZ4dUlDQWdJQ0FnWTJGelpTQmNJbk5sWTI5dVpITmNJanBjYmlBZ0lDQWdJQ0FnYnk1dGFXeHNhWE5sWTI5dVpDQTlJREE3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNCY0ltMXBiR3hwYzJWamIyNWtjMXdpT2x4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQzh2SUc1dklHUmxabUYxYkhRc0lHbHVkbUZzYVdRZ2RXNXBkSE1nZEdoeWIzY2dhVzRnYm05eWJXRnNhWHBsVlc1cGRDZ3BYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzV2Y20xaGJHbDZaV1JWYm1sMElEMDlQU0JjSW5kbFpXdHpYQ0lwSUh0Y2JpQWdJQ0FnSUc4dWQyVmxhMlJoZVNBOUlERTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzV2Y20xaGJHbDZaV1JWYm1sMElEMDlQU0JjSW5GMVlYSjBaWEp6WENJcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhFZ1BTQk5ZWFJvTG1ObGFXd29kR2hwY3k1dGIyNTBhQ0F2SURNcE8xeHVJQ0FnSUNBZ2J5NXRiMjUwYUNBOUlDaHhJQzBnTVNrZ0tpQXpJQ3NnTVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUW9ieWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1hDSlRaWFJjSWlCMGFHbHpJRVJoZEdWVWFXMWxJSFJ2SUhSb1pTQmxibVFnS0cxbFlXNXBibWNnZEdobElHeGhjM1FnYldsc2JHbHpaV052Ym1RcElHOW1JR0VnZFc1cGRDQnZaaUIwYVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IxYm1sMElDMGdWR2hsSUhWdWFYUWdkRzhnWjI4Z2RHOGdkR2hsSUdWdVpDQnZaaTRnUTJGdUlHSmxJQ2Q1WldGeUp5d2dKM0YxWVhKMFpYSW5MQ0FuYlc5dWRHZ25MQ0FuZDJWbGF5Y3NJQ2RrWVhrbkxDQW5hRzkxY2ljc0lDZHRhVzUxZEdVbkxDQW5jMlZqYjI1a0p5d2diM0lnSjIxcGJHeHBjMlZqYjI1a0p5NWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE5Dd2dNeXdnTXlrdVpXNWtUMllvSjIxdmJuUm9KeWt1ZEc5SlUwOG9LVHNnTHk4OVBpQW5NakF4TkMwd015MHpNVlF5TXpvMU9UbzFPUzQ1T1RrdE1EVTZNREFuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURNc0lETXBMbVZ1WkU5bUtDZDVaV0Z5SnlrdWRHOUpVMDhvS1RzZ0x5ODlQaUFuTWpBeE5DMHhNaTB6TVZReU16bzFPVG8xT1M0NU9Ua3RNRFU2TURBblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRRc0lETXNJRE1wTG1WdVpFOW1LQ2QzWldWckp5a3VkRzlKVTA4b0tUc2dMeThnUFQ0Z0p6SXdNVFF0TURNdE1EbFVNak02TlRrNk5Ua3VPVGs1TFRBMU9qQXdKeXdnZDJWbGEzTWdjM1JoY25RZ2IyNGdUVzl1WkdGNWMxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2d5TURFMExDQXpMQ0F6TENBMUxDQXpNQ2t1Wlc1a1QyWW9KMlJoZVNjcExuUnZTVk5QS0NrN0lDOHZQVDRnSnpJd01UUXRNRE10TUROVU1qTTZOVGs2TlRrdU9UazVMVEExT2pBd0oxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1c2IyTmhiQ2d5TURFMExDQXpMQ0F6TENBMUxDQXpNQ2t1Wlc1a1QyWW9KMmh2ZFhJbktTNTBiMGxUVHlncE95QXZMejArSUNjeU1ERTBMVEF6TFRBelZEQTFPalU1T2pVNUxqazVPUzB3TlRvd01DZGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQmxibVJQWmloMWJtbDBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaRnh1SUNBZ0lDQWdQeUIwYUdsekxuQnNkWE1vZXlCYmRXNXBkRjA2SURFZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0F1YzNSaGNuUlBaaWgxYm1sMEtWeHVJQ0FnSUNBZ0lDQWdJQzV0YVc1MWN5Z3hLVnh1SUNBZ0lDQWdPaUIwYUdsek8xeHVJQ0I5WEc1Y2JpQWdMeThnVDFWVVVGVlVYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lTQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaU0JtYjNKdFlYUjBaV1FnWVdOamIzSmthVzVuSUhSdklIUm9aU0J6Y0dWamFXWnBaV1FnWm05eWJXRjBJSE4wY21sdVp5NWNiaUFnSUNvZ0tpcFpiM1VnYldGNUlHNXZkQ0IzWVc1MElIUm9hWE11S2lvZ1UyVmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXlJR0VnYlc5eVpTQm1iR1Y0YVdKc1pTQm1iM0p0WVhSMGFXNW5JSFJ2YjJ3dUlFWnZjaUJoSUhSaFlteGxJRzltSUhSdmEyVnVjeUJoYm1RZ2RHaGxhWElnYVc1MFpYSndjbVYwWVhScGIyNXpMQ0J6WldVZ1cyaGxjbVZkS0doMGRIQnpPaTh2Ylc5dFpXNTBMbWRwZEdoMVlpNXBieTlzZFhodmJpOGpMMlp2Y20xaGRIUnBibWMvYVdROWRHRmliR1V0YjJZdGRHOXJaVzV6S1M1Y2JpQWdJQ29nUkdWbVlYVnNkSE1nZEc4Z1pXNHRWVk1nYVdZZ2JtOGdiRzlqWVd4bElHaGhjeUJpWldWdUlITndaV05wWm1sbFpDd2djbVZuWVhKa2JHVnpjeUJ2WmlCMGFHVWdjM2x6ZEdWdEozTWdiRzlqWVd4bExseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWm0xMElDMGdkR2hsSUdadmNtMWhkQ0J6ZEhKcGJtZGNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hSeklIUnZJRzkyWlhKeWFXUmxJSFJvWlNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTWdiMjRnZEdocGN5QkVZWFJsVkdsdFpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjBadmNtMWhkQ2duZVhsNWVTQk1URXdnWkdRbktTQXZMejArSUNjeU1ERTNJRUZ3Y2lBeU1pZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1YzJWMFRHOWpZV3hsS0NkbWNpY3BMblJ2Um05eWJXRjBLQ2Q1ZVhsNUlFeE1UQ0JrWkNjcElDOHZQVDRnSnpJd01UY2dZWFp5TGlBeU1pZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1ZEc5R2IzSnRZWFFvSjNsNWVYa2dURXhNSUdSa0p5d2dleUJzYjJOaGJHVTZJRndpWm5KY0lpQjlLU0F2THowK0lDY3lNREUzSUdGMmNpNGdNakluWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuUnZSbTl5YldGMEtGd2lTRWdnSjJodmRYSnpJR0Z1WkNjZ2JXMGdKMjFwYm5WMFpYTW5YQ0lwSUM4dlBUNGdKekl3SUdodmRYSnpJR0Z1WkNBMU5TQnRhVzUxZEdWekoxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCMGIwWnZjbTFoZENobWJYUXNJRzl3ZEhNZ1BTQjdmU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1JjYmlBZ0lDQWdJRDhnUm05eWJXRjBkR1Z5TG1OeVpXRjBaU2gwYUdsekxteHZZeTV5WldSbFptRjFiSFJVYjBWT0tHOXdkSE1wS1M1bWIzSnRZWFJFWVhSbFZHbHRaVVp5YjIxVGRISnBibWNvZEdocGN5d2dabTEwS1Z4dUlDQWdJQ0FnT2lCSlRsWkJURWxFTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lTQnNiMk5oYkdsNlpXUWdjM1J5YVc1bklISmxjSEpsYzJWdWRHbHVaeUIwYUdseklHUmhkR1V1SUVGalkyVndkSE1nZEdobElITmhiV1VnYjNCMGFXOXVjeUJoY3lCMGFHVWdTVzUwYkM1RVlYUmxWR2x0WlVadmNtMWhkQ0JqYjI1emRISjFZM1J2Y2lCaGJtUWdZVzU1SUhCeVpYTmxkSE1nWkdWbWFXNWxaQ0JpZVNCTWRYaHZiaXdnYzNWamFDQmhjeUJnUkdGMFpWUnBiV1V1UkVGVVJWOUdWVXhNWUNCdmNpQmdSR0YwWlZScGJXVXVWRWxOUlY5VFNVMVFURVZnTGx4dUlDQWdLaUJVYUdVZ1pYaGhZM1FnWW1Wb1lYWnBiM0lnYjJZZ2RHaHBjeUJ0WlhSb2IyUWdhWE1nWW5KdmQzTmxjaTF6Y0dWamFXWnBZeXdnWW5WMElHbHVJR2RsYm1WeVlXd2dhWFFnZDJsc2JDQnlaWFIxY200Z1lXNGdZWEJ3Y205d2NtbGhkR1VnY21Wd2NtVnpaVzUwWVhScGIyNWNiaUFnSUNvZ2IyWWdkR2hsSUVSaGRHVlVhVzFsSUdsdUlIUm9aU0JoYzNOcFoyNWxaQ0JzYjJOaGJHVXVYRzRnSUNBcUlFUmxabUYxYkhSeklIUnZJSFJvWlNCemVYTjBaVzBuY3lCc2IyTmhiR1VnYVdZZ2JtOGdiRzlqWVd4bElHaGhjeUJpWldWdUlITndaV05wWm1sbFpGeHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZaR1YyWld4dmNHVnlMbTF2ZW1sc2JHRXViM0puTDJWdUxWVlRMMlJ2WTNNdlYyVmlMMHBoZG1GVFkzSnBjSFF2VW1WbVpYSmxibU5sTDBkc2IySmhiRjlQWW1wbFkzUnpMMFJoZEdWVWFXMWxSbTl5YldGMFhHNGdJQ0FxSUVCd1lYSmhiU0JtYjNKdFlYUlBjSFJ6SUh0UFltcGxZM1I5SUMwZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDQmpiMjV6ZEhKMVkzUnZjaUJ2Y0hScGIyNXpJR0Z1WkNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hSeklIUnZJRzkyWlhKeWFXUmxJSFJvWlNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTWdiMjRnZEdocGN5QkVZWFJsVkdsdFpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjB4dlkyRnNaVk4wY21sdVp5Z3BPeUF2THowK0lEUXZNakF2TWpBeE4xeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV6WlhSTWIyTmhiR1VvSjJWdUxXZGlKeWt1ZEc5TWIyTmhiR1ZUZEhKcGJtY29LVHNnTHk4OVBpQW5NakF2TURRdk1qQXhOeWRjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWRHOU1iMk5oYkdWVGRISnBibWNvZXlCc2IyTmhiR1U2SUNkbGJpMW5ZaWNnZlNrN0lDOHZQVDRnSnpJd0x6QTBMekl3TVRjblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG01dmR5Z3BMblJ2VEc5allXeGxVM1J5YVc1bktFUmhkR1ZVYVcxbExrUkJWRVZmUmxWTVRDazdJQzh2UFQ0Z0owRndjbWxzSURJd0xDQXlNREUzSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMHh2WTJGc1pWTjBjbWx1WnloRVlYUmxWR2x0WlM1VVNVMUZYMU5KVFZCTVJTazdJQzh2UFQ0Z0p6RXhPak15SUVGTkoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjB4dlkyRnNaVk4wY21sdVp5aEVZWFJsVkdsdFpTNUVRVlJGVkVsTlJWOVRTRTlTVkNrN0lDOHZQVDRnSnpRdk1qQXZNakF4Tnl3Z01URTZNeklnUVUwblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG01dmR5Z3BMblJ2VEc5allXeGxVM1J5YVc1bktIc2dkMlZsYTJSaGVUb2dKMnh2Ym1jbkxDQnRiMjUwYURvZ0oyeHZibWNuTENCa1lYazZJQ2N5TFdScFoybDBKeUI5S1RzZ0x5ODlQaUFuVkdoMWNuTmtZWGtzSUVGd2NtbHNJREl3SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMHh2WTJGc1pWTjBjbWx1WnloN0lIZGxaV3RrWVhrNklDZHphRzl5ZENjc0lHMXZiblJvT2lBbmMyaHZjblFuTENCa1lYazZJQ2N5TFdScFoybDBKeXdnYUc5MWNqb2dKekl0WkdsbmFYUW5MQ0J0YVc1MWRHVTZJQ2N5TFdScFoybDBKeUI5S1RzZ0x5ODlQaUFuVkdoMUxDQkJjSElnTWpBc0lERXhPakkzSUVGTkoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjB4dlkyRnNaVk4wY21sdVp5aDdJR2h2ZFhJNklDY3lMV1JwWjJsMEp5d2diV2x1ZFhSbE9pQW5NaTFrYVdkcGRDY3NJR2h2ZFhKRGVXTnNaVG9nSjJneU15Y2dmU2s3SUM4dlBUNGdKekV4T2pNeUoxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCMGIweHZZMkZzWlZOMGNtbHVaeWhtYjNKdFlYUlBjSFJ6SUQwZ1JtOXliV0YwY3k1RVFWUkZYMU5JVDFKVUxDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtYRzRnSUNBZ0lDQS9JRVp2Y20xaGRIUmxjaTVqY21WaGRHVW9kR2hwY3k1c2IyTXVZMnh2Ym1Vb2IzQjBjeWtzSUdadmNtMWhkRTl3ZEhNcExtWnZjbTFoZEVSaGRHVlVhVzFsS0hSb2FYTXBYRzRnSUNBZ0lDQTZJRWxPVmtGTVNVUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJoYmlCaGNuSmhlU0J2WmlCbWIzSnRZWFFnWENKd1lYSjBjMXdpTENCdFpXRnVhVzVuSUdsdVpHbDJhV1IxWVd3Z2RHOXJaVzV6SUdGc2IyNW5JSGRwZEdnZ2JXVjBZV1JoZEdFdUlGUm9hWE1nYVhNZ1lXeHNiM2R6SUdOaGJHeGxjbk1nZEc4Z2NHOXpkQzF3Y205alpYTnpJR2x1WkdsMmFXUjFZV3dnYzJWamRHbHZibk1nYjJZZ2RHaGxJR1p2Y20xaGRIUmxaQ0J2ZFhSd2RYUXVYRzRnSUNBcUlFUmxabUYxYkhSeklIUnZJSFJvWlNCemVYTjBaVzBuY3lCc2IyTmhiR1VnYVdZZ2JtOGdiRzlqWVd4bElHaGhjeUJpWldWdUlITndaV05wWm1sbFpGeHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZaR1YyWld4dmNHVnlMbTF2ZW1sc2JHRXViM0puTDJWdUxWVlRMMlJ2WTNNdlYyVmlMMHBoZG1GVFkzSnBjSFF2VW1WbVpYSmxibU5sTDBkc2IySmhiRjlQWW1wbFkzUnpMMFJoZEdWVWFXMWxSbTl5YldGMEwyWnZjbTFoZEZSdlVHRnlkSE5jYmlBZ0lDb2dRSEJoY21GdElHOXdkSE1nZTA5aWFtVmpkSDBnTFNCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMElHTnZibk4wY25WamRHOXlJRzl3ZEdsdmJuTXNJSE5oYldVZ1lYTWdZSFJ2VEc5allXeGxVM1J5YVc1bllDNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1ZEc5TWIyTmhiR1ZRWVhKMGN5Z3BPeUF2THowK0lGdGNiaUFnSUNvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dlBUNGdJQ0I3SUhSNWNHVTZJQ2RrWVhrbkxDQjJZV3gxWlRvZ0p6STFKeUI5TEZ4dUlDQWdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeTg5UGlBZ0lIc2dkSGx3WlRvZ0oyeHBkR1Z5WVd3bkxDQjJZV3gxWlRvZ0p5OG5JSDBzWEc0Z0lDQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMejArSUNBZ2V5QjBlWEJsT2lBbmJXOXVkR2duTENCMllXeDFaVG9nSnpBMUp5QjlMRnh1SUNBZ0tpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5ODlQaUFnSUhzZ2RIbHdaVG9nSjJ4cGRHVnlZV3duTENCMllXeDFaVG9nSnk4bklIMHNYRzRnSUNBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx6MCtJQ0FnZXlCMGVYQmxPaUFuZVdWaGNpY3NJSFpoYkhWbE9pQW5NVGs0TWljZ2ZWeHVJQ0FnS2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4OVBpQmRYRzRnSUNBcUwxeHVJQ0IwYjB4dlkyRnNaVkJoY25SektHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUmNiaUFnSUNBZ0lEOGdSbTl5YldGMGRHVnlMbU55WldGMFpTaDBhR2x6TG14dll5NWpiRzl1WlNodmNIUnpLU3dnYjNCMGN5a3VabTl5YldGMFJHRjBaVlJwYldWUVlYSjBjeWgwYUdsektWeHVJQ0FnSUNBZ09pQmJYVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdGdUlFbFRUeUE0TmpBeExXTnZiWEJzYVdGdWRDQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk5jYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1emRYQndjbVZ6YzAxcGJHeHBjMlZqYjI1a2N6MW1ZV3h6WlYwZ0xTQmxlR05zZFdSbElHMXBiR3hwYzJWamIyNWtjeUJtY205dElIUm9aU0JtYjNKdFlYUWdhV1lnZEdobGVTZHlaU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWMzVndjSEpsYzNOVFpXTnZibVJ6UFdaaGJITmxYU0F0SUdWNFkyeDFaR1VnYzJWamIyNWtjeUJtY205dElIUm9aU0JtYjNKdFlYUWdhV1lnZEdobGVTZHlaU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWFXNWpiSFZrWlU5bVpuTmxkRDEwY25WbFhTQXRJR2x1WTJ4MVpHVWdkR2hsSUc5bVpuTmxkQ3dnYzNWamFDQmhjeUFuV2ljZ2IzSWdKeTB3TkRvd01DZGNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmIzQjBjeTVsZUhSbGJtUmxaRnB2Ym1VOWRISjFaVjBnTFNCaFpHUWdkR2hsSUhScGJXVWdlbTl1WlNCbWIzSnRZWFFnWlhoMFpXNXphVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1bWIzSnRZWFE5SjJWNGRHVnVaR1ZrSjEwZ0xTQmphRzl2YzJVZ1ltVjBkMlZsYmlCMGFHVWdZbUZ6YVdNZ1lXNWtJR1Y0ZEdWdVpHVmtJR1p2Y20xaGRGeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9NVGs0TXl3Z05Td2dNalVwTG5SdlNWTlBLQ2tnTHk4OVBpQW5NVGs0TWkwd05TMHlOVlF3TURvd01Eb3dNQzR3TURCYUoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjBsVFR5Z3BJQzh2UFQ0Z0p6SXdNVGN0TURRdE1qSlVNakE2TkRjNk1EVXVNek0xTFRBME9qQXdKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1MGIwbFRUeWg3SUdsdVkyeDFaR1ZQWm1aelpYUTZJR1poYkhObElIMHBJQzh2UFQ0Z0p6SXdNVGN0TURRdE1qSlVNakE2TkRjNk1EVXVNek0xSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMGxUVHloN0lHWnZjbTFoZERvZ0oySmhjMmxqSnlCOUtTQXZMejArSUNjeU1ERTNNRFF5TWxReU1EUTNNRFV1TXpNMUxUQTBNREFuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2U1ZOUEtIdGNiaUFnSUNCbWIzSnRZWFFnUFNCY0ltVjRkR1Z1WkdWa1hDSXNYRzRnSUNBZ2MzVndjSEpsYzNOVFpXTnZibVJ6SUQwZ1ptRnNjMlVzWEc0Z0lDQWdjM1Z3Y0hKbGMzTk5hV3hzYVhObFkyOXVaSE1nUFNCbVlXeHpaU3hjYmlBZ0lDQnBibU5zZFdSbFQyWm1jMlYwSUQwZ2RISjFaU3hjYmlBZ0lDQmxlSFJsYm1SbFpGcHZibVVnUFNCbVlXeHpaU3hjYmlBZ2ZTQTlJSHQ5S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1Y0ZENBOUlHWnZjbTFoZENBOVBUMGdYQ0psZUhSbGJtUmxaRndpTzF4dVhHNGdJQ0FnYkdWMElHTWdQU0IwYjBsVFQwUmhkR1VvZEdocGN5d2daWGgwS1R0Y2JpQWdJQ0JqSUNzOUlGd2lWRndpTzF4dUlDQWdJR01nS3owZ2RHOUpVMDlVYVcxbEtIUm9hWE1zSUdWNGRDd2djM1Z3Y0hKbGMzTlRaV052Ym1SekxDQnpkWEJ3Y21WemMwMXBiR3hwYzJWamIyNWtjeXdnYVc1amJIVmtaVTltWm5ObGRDd2daWGgwWlc1a1pXUmFiMjVsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdGdUlFbFRUeUE0TmpBeExXTnZiWEJzYVdGdWRDQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaU2R6SUdSaGRHVWdZMjl0Y0c5dVpXNTBYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Wm05eWJXRjBQU2RsZUhSbGJtUmxaQ2RkSUMwZ1kyaHZiM05sSUdKbGRIZGxaVzRnZEdobElHSmhjMmxqSUdGdVpDQmxlSFJsYm1SbFpDQm1iM0p0WVhSY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktERTVPRElzSURVc0lESTFLUzUwYjBsVFQwUmhkR1VvS1NBdkx6MCtJQ2N4T1RneUxUQTFMVEkxSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb01UazRNaXdnTlN3Z01qVXBMblJ2U1ZOUFJHRjBaU2g3SUdadmNtMWhkRG9nSjJKaGMybGpKeUI5S1NBdkx6MCtJQ2N4T1RneU1EVXlOU2RjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdkRzlKVTA5RVlYUmxLSHNnWm05eWJXRjBJRDBnWENKbGVIUmxibVJsWkZ3aUlIMGdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZEc5SlUwOUVZWFJsS0hSb2FYTXNJR1p2Y20xaGRDQTlQVDBnWENKbGVIUmxibVJsWkZ3aUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpTZHpJSGRsWldzZ1pHRjBaVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vTVRrNE1pd2dOU3dnTWpVcExuUnZTVk5QVjJWbGEwUmhkR1VvS1NBdkx6MCtJQ2N4T1RneUxWY3lNUzB5SjF4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0IwYjBsVFQxZGxaV3RFWVhSbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGIxUmxZMmhHYjNKdFlYUW9kR2hwY3l3Z1hDSnJhMnRyTFNkWEoxZFhMV05jSWlrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhiaUJKVTA4Z09EWXdNUzFqYjIxd2JHbGhiblFnYzNSeWFXNW5JSEpsY0hKbGMyVnVkR0YwYVc5dUlHOW1JSFJvYVhNZ1JHRjBaVlJwYldVbmN5QjBhVzFsSUdOdmJYQnZibVZ1ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NXpkWEJ3Y21WemMwMXBiR3hwYzJWamIyNWtjejFtWVd4elpWMGdMU0JsZUdOc2RXUmxJRzFwYkd4cGMyVmpiMjVrY3lCbWNtOXRJSFJvWlNCbWIzSnRZWFFnYVdZZ2RHaGxlU2R5WlNBd1hHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVjM1Z3Y0hKbGMzTlRaV052Ym1SelBXWmhiSE5sWFNBdElHVjRZMngxWkdVZ2MyVmpiMjVrY3lCbWNtOXRJSFJvWlNCbWIzSnRZWFFnYVdZZ2RHaGxlU2R5WlNBd1hHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVhVzVqYkhWa1pVOW1abk5sZEQxMGNuVmxYU0F0SUdsdVkyeDFaR1VnZEdobElHOW1abk5sZEN3Z2MzVmphQ0JoY3lBbldpY2diM0lnSnkwd05Eb3dNQ2RjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1bGVIUmxibVJsWkZwdmJtVTlkSEoxWlYwZ0xTQmhaR1FnZEdobElIUnBiV1VnZW05dVpTQm1iM0p0WVhRZ1pYaDBaVzV6YVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVhVzVqYkhWa1pWQnlaV1pwZUQxbVlXeHpaVjBnTFNCcGJtTnNkV1JsSUhSb1pTQmdWR0FnY0hKbFptbDRYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVtYjNKdFlYUTlKMlY0ZEdWdVpHVmtKMTBnTFNCamFHOXZjMlVnWW1WMGQyVmxiaUIwYUdVZ1ltRnphV01nWVc1a0lHVjRkR1Z1WkdWa0lHWnZjbTFoZEZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb0tTNXpaWFFvZXlCb2IzVnlPaUEzTENCdGFXNTFkR1U2SURNMElIMHBMblJ2U1ZOUFZHbHRaU2dwSUM4dlBUNGdKekEzT2pNME9qRTVMak0yTVZvblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG5WMFl5Z3BMbk5sZENoN0lHaHZkWEk2SURjc0lHMXBiblYwWlRvZ016UXNJSE5sWTI5dVpITTZJREFzSUcxcGJHeHBjMlZqYjI1a2N6b2dNQ0I5S1M1MGIwbFRUMVJwYldVb2V5QnpkWEJ3Y21WemMxTmxZMjl1WkhNNklIUnlkV1VnZlNrZ0x5ODlQaUFuTURjNk16UmFKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vS1M1elpYUW9leUJvYjNWeU9pQTNMQ0J0YVc1MWRHVTZJRE0wSUgwcExuUnZTVk5QVkdsdFpTaDdJR1p2Y20xaGREb2dKMkpoYzJsakp5QjlLU0F2THowK0lDY3dOek0wTVRrdU16WXhXaWRjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0NrdWMyVjBLSHNnYUc5MWNqb2dOeXdnYldsdWRYUmxPaUF6TkNCOUtTNTBiMGxUVDFScGJXVW9leUJwYm1Oc2RXUmxVSEpsWm1sNE9pQjBjblZsSUgwcElDOHZQVDRnSjFRd056b3pORG94T1M0ek5qRmFKMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQjBiMGxUVDFScGJXVW9lMXh1SUNBZ0lITjFjSEJ5WlhOelRXbHNiR2x6WldOdmJtUnpJRDBnWm1Gc2MyVXNYRzRnSUNBZ2MzVndjSEpsYzNOVFpXTnZibVJ6SUQwZ1ptRnNjMlVzWEc0Z0lDQWdhVzVqYkhWa1pVOW1abk5sZENBOUlIUnlkV1VzWEc0Z0lDQWdhVzVqYkhWa1pWQnlaV1pwZUNBOUlHWmhiSE5sTEZ4dUlDQWdJR1Y0ZEdWdVpHVmtXbTl1WlNBOUlHWmhiSE5sTEZ4dUlDQWdJR1p2Y20xaGRDQTlJRndpWlhoMFpXNWtaV1JjSWl4Y2JpQWdmU0E5SUh0OUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0JqSUQwZ2FXNWpiSFZrWlZCeVpXWnBlQ0EvSUZ3aVZGd2lJRG9nWENKY0lqdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnWXlBclhHNGdJQ0FnSUNCMGIwbFRUMVJwYldVb1hHNGdJQ0FnSUNBZ0lIUm9hWE1zWEc0Z0lDQWdJQ0FnSUdadmNtMWhkQ0E5UFQwZ1hDSmxlSFJsYm1SbFpGd2lMRnh1SUNBZ0lDQWdJQ0J6ZFhCd2NtVnpjMU5sWTI5dVpITXNYRzRnSUNBZ0lDQWdJSE4xY0hCeVpYTnpUV2xzYkdselpXTnZibVJ6TEZ4dUlDQWdJQ0FnSUNCcGJtTnNkV1JsVDJabWMyVjBMRnh1SUNBZ0lDQWdJQ0JsZUhSbGJtUmxaRnB2Ym1WY2JpQWdJQ0FnSUNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lXNGdVa1pESURJNE1qSXRZMjl0Y0dGMGFXSnNaU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb01qQXhOQ3dnTnl3Z01UTXBMblJ2VWtaRE1qZ3lNaWdwSUM4dlBUNGdKMU4xYml3Z01UTWdTblZzSURJd01UUWdNREE2TURBNk1EQWdLekF3TURBblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRRc0lEY3NJREV6S1M1MGIxSkdRekk0TWpJb0tTQXZMejArSUNkVGRXNHNJREV6SUVwMWJDQXlNREUwSURBd09qQXdPakF3SUMwd05EQXdKMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQjBiMUpHUXpJNE1qSW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnZWR1ZqYUVadmNtMWhkQ2gwYUdsekxDQmNJa1ZGUlN3Z1pHUWdURXhNSUhsNWVYa2dTRWc2YlcwNmMzTWdXbHBhWENJc0lHWmhiSE5sS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nUkdGMFpWUnBiV1VnWVhCd2NtOXdjbWxoZEdVZ1ptOXlJSFZ6WlNCcGJpQklWRlJRSUdobFlXUmxjbk11SUZSb1pTQnZkWFJ3ZFhRZ2FYTWdZV3gzWVhseklHVjRjSEpsYzNObFpDQnBiaUJIVFZRdVhHNGdJQ0FxSUZOd1pXTnBabWxqWVd4c2VTd2dkR2hsSUhOMGNtbHVaeUJqYjI1bWIzSnRjeUIwYnlCU1JrTWdNVEV5TXk1Y2JpQWdJQ29nUUhObFpTQm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3ZVSEp2ZEc5amIyeHpMM0ptWXpJMk1UWXZjbVpqTWpZeE5pMXpaV016TG1oMGJXd2pjMlZqTXk0ekxqRmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWRYUmpLREl3TVRRc0lEY3NJREV6S1M1MGIwaFVWRkFvS1NBdkx6MCtJQ2RUZFc0c0lERXpJRXAxYkNBeU1ERTBJREF3T2pBd09qQXdJRWROVkNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVFFzSURjc0lERXpMQ0F4T1NrdWRHOUlWRlJRS0NrZ0x5ODlQaUFuVTNWdUxDQXhNeUJLZFd3Z01qQXhOQ0F4T1Rvd01Eb3dNQ0JIVFZRblhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlNGUlVVQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkRzlVWldOb1JtOXliV0YwS0hSb2FYTXVkRzlWVkVNb0tTd2dYQ0pGUlVVc0lHUmtJRXhNVENCNWVYbDVJRWhJT20xdE9uTnpJQ2RIVFZRblhDSXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpTQmhjSEJ5YjNCeWFXRjBaU0JtYjNJZ2RYTmxJR2x1SUZOUlRDQkVZWFJsWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMblYwWXlneU1ERTBMQ0EzTENBeE15a3VkRzlUVVV4RVlYUmxLQ2tnTHk4OVBpQW5NakF4TkMwd055MHhNeWRjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdkRzlUVVV4RVlYUmxLQ2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUnZTVk5QUkdGMFpTaDBhR2x6TENCMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSR0YwWlZScGJXVWdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCVFVVd2dWR2x0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NXBibU5zZFdSbFdtOXVaVDFtWVd4elpWMGdMU0JwYm1Oc2RXUmxJSFJvWlNCNmIyNWxMQ0J6ZFdOb0lHRnpJQ2RCYldWeWFXTmhMMDVsZDE5WmIzSnJKeTRnVDNabGNuSnBaR1Z6SUdsdVkyeDFaR1ZQWm1aelpYUXVYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YVc1amJIVmtaVTltWm5ObGREMTBjblZsWFNBdElHbHVZMngxWkdVZ2RHaGxJRzltWm5ObGRDd2djM1ZqYUNCaGN5QW5XaWNnYjNJZ0p5MHdORG93TUNkY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NXBibU5zZFdSbFQyWm1jMlYwVTNCaFkyVTlkSEoxWlYwZ0xTQnBibU5zZFdSbElIUm9aU0J6Y0dGalpTQmlaWFIzWldWdUlIUm9aU0IwYVcxbElHRnVaQ0IwYUdVZ2IyWm1jMlYwTENCemRXTm9JR0Z6SUNjd05Ub3hOVG94Tmk0ek5EVWdMVEEwT2pBd0oxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9LUzUwYjFOUlRDZ3BJQzh2UFQ0Z0p6QTFPakUxT2pFMkxqTTBOU2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWRHOVRVVXdvS1NBdkx6MCtJQ2N3TlRveE5Ub3hOaTR6TkRVZ0xUQTBPakF3SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMU5SVENoN0lHbHVZMngxWkdWUFptWnpaWFE2SUdaaGJITmxJSDBwSUM4dlBUNGdKekExT2pFMU9qRTJMak0wTlNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VkRzlUVVV3b2V5QnBibU5zZFdSbFdtOXVaVG9nWm1Gc2MyVWdmU2tnTHk4OVBpQW5NRFU2TVRVNk1UWXVNelExSUVGdFpYSnBZMkV2VG1WM1gxbHZjbXNuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2VTFGTVZHbHRaU2g3SUdsdVkyeDFaR1ZQWm1aelpYUWdQU0IwY25WbExDQnBibU5zZFdSbFdtOXVaU0E5SUdaaGJITmxMQ0JwYm1Oc2RXUmxUMlptYzJWMFUzQmhZMlVnUFNCMGNuVmxJSDBnUFNCN2ZTa2dlMXh1SUNBZ0lHeGxkQ0JtYlhRZ1BTQmNJa2hJT20xdE9uTnpMbE5UVTF3aU8xeHVYRzRnSUNBZ2FXWWdLR2x1WTJ4MVpHVmFiMjVsSUh4OElHbHVZMngxWkdWUFptWnpaWFFwSUh0Y2JpQWdJQ0FnSUdsbUlDaHBibU5zZFdSbFQyWm1jMlYwVTNCaFkyVXBJSHRjYmlBZ0lDQWdJQ0FnWm0xMElDczlJRndpSUZ3aU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR2x1WTJ4MVpHVmFiMjVsS1NCN1hHNGdJQ0FnSUNBZ0lHWnRkQ0FyUFNCY0lucGNJanRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvYVc1amJIVmtaVTltWm5ObGRDa2dlMXh1SUNBZ0lDQWdJQ0JtYlhRZ0t6MGdYQ0phV2x3aU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIwYjFSbFkyaEdiM0p0WVhRb2RHaHBjeXdnWm0xMExDQjBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nUkdGMFpWUnBiV1VnWVhCd2NtOXdjbWxoZEdVZ1ptOXlJSFZ6WlNCcGJpQlRVVXdnUkdGMFpWUnBiV1ZjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWFXNWpiSFZrWlZwdmJtVTlabUZzYzJWZElDMGdhVzVqYkhWa1pTQjBhR1VnZW05dVpTd2djM1ZqYUNCaGN5QW5RVzFsY21sallTOU9aWGRmV1c5eWF5Y3VJRTkyWlhKeWFXUmxjeUJwYm1Oc2RXUmxUMlptYzJWMExseHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0dmNIUnpMbWx1WTJ4MVpHVlBabVp6WlhROWRISjFaVjBnTFNCcGJtTnNkV1JsSUhSb1pTQnZabVp6WlhRc0lITjFZMmdnWVhNZ0oxb25JRzl5SUNjdE1EUTZNREFuWEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWFXNWpiSFZrWlU5bVpuTmxkRk53WVdObFBYUnlkV1ZkSUMwZ2FXNWpiSFZrWlNCMGFHVWdjM0JoWTJVZ1ltVjBkMlZsYmlCMGFHVWdkR2x0WlNCaGJtUWdkR2hsSUc5bVpuTmxkQ3dnYzNWamFDQmhjeUFuTURVNk1UVTZNVFl1TXpRMUlDMHdORG93TUNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVFFzSURjc0lERXpLUzUwYjFOUlRDZ3BJQzh2UFQ0Z0p6SXdNVFF0TURjdE1UTWdNREE2TURBNk1EQXVNREF3SUZvblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRRc0lEY3NJREV6S1M1MGIxTlJUQ2dwSUM4dlBUNGdKekl3TVRRdE1EY3RNVE1nTURBNk1EQTZNREF1TURBd0lDMHdORG93TUNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4TkN3Z055d2dNVE1wTG5SdlUxRk1LSHNnYVc1amJIVmtaVTltWm5ObGREb2dabUZzYzJVZ2ZTa2dMeTg5UGlBbk1qQXhOQzB3TnkweE15QXdNRG93TURvd01DNHdNREFuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURjc0lERXpLUzUwYjFOUlRDaDdJR2x1WTJ4MVpHVmFiMjVsT2lCMGNuVmxJSDBwSUM4dlBUNGdKekl3TVRRdE1EY3RNVE1nTURBNk1EQTZNREF1TURBd0lFRnRaWEpwWTJFdlRtVjNYMWx2Y21zblhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlUxRk1LRzl3ZEhNZ1BTQjdmU2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3ZEdocGN5NTBiMU5SVEVSaGRHVW9LWDBnSkh0MGFHbHpMblJ2VTFGTVZHbHRaU2h2Y0hSektYMWdPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpTQmhjSEJ5YjNCeWFXRjBaU0JtYjNJZ1pHVmlkV2RuYVc1blhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlUzUnlhVzVuS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5SdlNWTlBLQ2tnT2lCSlRsWkJURWxFTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2RHaGxJR1Z3YjJOb0lHMXBiR3hwYzJWamIyNWtjeUJ2WmlCMGFHbHpJRVJoZEdWVWFXMWxMaUJCYkdsaGN5QnZaaUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlOYVd4c2FYTjlYRzRnSUNBcUlFQnlaWFIxY200Z2UyNTFiV0psY24xY2JpQWdJQ292WEc0Z0lIWmhiSFZsVDJZb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkRzlOYVd4c2FYTW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhSb1pTQmxjRzlqYUNCdGFXeHNhWE5sWTI5dVpITWdiMllnZEdocGN5QkVZWFJsVkdsdFpTNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ2RHOU5hV3hzYVhNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRITWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjBhR1VnWlhCdlkyZ2djMlZqYjI1a2N5QnZaaUIwYUdseklFUmhkR1ZVYVcxbExseHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCMGIxTmxZMjl1WkhNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRITWdMeUF4TURBd0lEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2RHaGxJR1Z3YjJOb0lITmxZMjl1WkhNZ0tHRnpJR0VnZDJodmJHVWdiblZ0WW1WeUtTQnZaaUIwYUdseklFUmhkR1ZVYVcxbExseHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCMGIxVnVhWGhKYm5SbFoyVnlLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCTllYUm9MbVpzYjI5eUtIUm9hWE11ZEhNZ0x5QXhNREF3S1NBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdGdUlFbFRUeUE0TmpBeElISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nUkdGMFpWUnBiV1VnWVhCd2NtOXdjbWxoZEdVZ1ptOXlJSFZ6WlNCcGJpQktVMDlPTGx4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0IwYjBwVFQwNG9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZEc5SlUwOG9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ1FsTlBUaUJ6WlhKcFlXeHBlbUZpYkdVZ1pYRjFhWFpoYkdWdWRDQjBieUIwYUdseklFUmhkR1ZVYVcxbExseHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxmVnh1SUNBZ0tpOWNiaUFnZEc5Q1UwOU9LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5SdlNsTkVZWFJsS0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhJRXBoZG1GVFkzSnBjSFFnYjJKcVpXTjBJSGRwZEdnZ2RHaHBjeUJFWVhSbFZHbHRaU2R6SUhsbFlYSXNJRzF2Ym5Sb0xDQmtZWGtzSUdGdVpDQnpieUJ2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJRzl3ZEhNZ0xTQnZjSFJwYjI1eklHWnZjaUJuWlc1bGNtRjBhVzVuSUhSb1pTQnZZbXBsWTNSY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NXBibU5zZFdSbFEyOXVabWxuUFdaaGJITmxYU0F0SUdsdVkyeDFaR1VnWTI5dVptbG5kWEpoZEdsdmJpQmhkSFJ5YVdKMWRHVnpJR2x1SUhSb1pTQnZkWFJ3ZFhSY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VkRzlQWW1wbFkzUW9LU0F2THowK0lIc2dlV1ZoY2pvZ01qQXhOeXdnYlc5dWRHZzZJRFFzSUdSaGVUb2dNaklzSUdodmRYSTZJREl3TENCdGFXNTFkR1U2SURRNUxDQnpaV052Ym1RNklEUXlMQ0J0YVd4c2FYTmxZMjl1WkRvZ01qWTRJSDFjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdkRzlQWW1wbFkzUW9iM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjdmVHRjYmx4dUlDQWdJR052Ym5OMElHSmhjMlVnUFNCN0lDNHVMblJvYVhNdVl5QjlPMXh1WEc0Z0lDQWdhV1lnS0c5d2RITXVhVzVqYkhWa1pVTnZibVpwWnlrZ2UxeHVJQ0FnSUNBZ1ltRnpaUzV2ZFhSd2RYUkRZV3hsYm1SaGNpQTlJSFJvYVhNdWIzVjBjSFYwUTJGc1pXNWtZWEk3WEc0Z0lDQWdJQ0JpWVhObExtNTFiV0psY21sdVoxTjVjM1JsYlNBOUlIUm9hWE11Ykc5akxtNTFiV0psY21sdVoxTjVjM1JsYlR0Y2JpQWdJQ0FnSUdKaGMyVXViRzlqWVd4bElEMGdkR2hwY3k1c2IyTXViRzlqWVd4bE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZbUZ6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdTbUYyWVZOamNtbHdkQ0JFWVhSbElHVnhkV2wyWVd4bGJuUWdkRzhnZEdocGN5QkVZWFJsVkdsdFpTNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaWDFjYmlBZ0lDb3ZYRzRnSUhSdlNsTkVZWFJsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JHRjBaU2gwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5SeklEb2dUbUZPS1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRU5QVFZCQlVrVmNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSb1pTQmthV1ptWlhKbGJtTmxJR0psZEhkbFpXNGdkSGR2SUVSaGRHVlVhVzFsY3lCaGN5QmhJRVIxY21GMGFXOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUmhkR1ZVYVcxbGZTQnZkR2hsY2tSaGRHVlVhVzFsSUMwZ2RHaGxJRVJoZEdWVWFXMWxJSFJ2SUdOdmJYQmhjbVVnZEdocGN5QnZibVVnZEc5Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDhjM1J5YVc1blcxMTlJRnQxYm1sMFBWc25iV2xzYkdselpXTnZibVJ6SjExZElDMGdkR2hsSUhWdWFYUWdiM0lnWVhKeVlYa2diMllnZFc1cGRITWdLSE4xWTJnZ1lYTWdKMmh2ZFhKekp5QnZjaUFuWkdGNWN5Y3BJSFJ2SUdsdVkyeDFaR1VnYVc0Z2RHaGxJR1IxY21GMGFXOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk1nZEdoaGRDQmhabVpsWTNRZ2RHaGxJR055WldGMGFXOXVJRzltSUhSb1pTQkVkWEpoZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXVZMjl1ZG1WeWMybHZia0ZqWTNWeVlXTjVQU2RqWVhOMVlXd25YU0F0SUhSb1pTQmpiMjUyWlhKemFXOXVJSE41YzNSbGJTQjBieUIxYzJWY2JpQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDb2dkbUZ5SUdreElEMGdSR0YwWlZScGJXVXVabkp2YlVsVFR5Z25NVGs0TWkwd05TMHlOVlF3T1RvME5TY3BMRnh1SUNBZ0tpQWdJQ0FnYVRJZ1BTQkVZWFJsVkdsdFpTNW1jbTl0U1ZOUEtDY3hPVGd6TFRFd0xURTBWREV3T2pNd0p5azdYRzRnSUNBcUlHa3lMbVJwWm1Zb2FURXBMblJ2VDJKcVpXTjBLQ2tnTHk4OVBpQjdJRzFwYkd4cGMyVmpiMjVrY3pvZ05ETTRNRGMxTURBd01EQWdmVnh1SUNBZ0tpQnBNaTVrYVdabUtHa3hMQ0FuYUc5MWNuTW5LUzUwYjA5aWFtVmpkQ2dwSUM4dlBUNGdleUJvYjNWeWN6b2dNVEl4TmpndU56VWdmVnh1SUNBZ0tpQnBNaTVrYVdabUtHa3hMQ0JiSjIxdmJuUm9jeWNzSUNka1lYbHpKMTBwTG5SdlQySnFaV04wS0NrZ0x5ODlQaUI3SUcxdmJuUm9jem9nTVRZc0lHUmhlWE02SURFNUxqQXpNVEkxSUgxY2JpQWdJQ29nYVRJdVpHbG1aaWhwTVN3Z1d5ZHRiMjUwYUhNbkxDQW5aR0Y1Y3ljc0lDZG9iM1Z5Y3lkZEtTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5QnRiMjUwYUhNNklERTJMQ0JrWVhsek9pQXhPU3dnYUc5MWNuTTZJREF1TnpVZ2ZWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lHUnBabVlvYjNSb1pYSkVZWFJsVkdsdFpTd2dkVzVwZENBOUlGd2liV2xzYkdselpXTnZibVJ6WENJc0lHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0lIeDhJQ0Z2ZEdobGNrUmhkR1ZVYVcxbExtbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCRWRYSmhkR2x2Ymk1cGJuWmhiR2xrS0Z3aVkzSmxZWFJsWkNCaWVTQmthV1ptYVc1bklHRnVJR2x1ZG1Gc2FXUWdSR0YwWlZScGJXVmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1pIVnlUM0IwY3lBOUlIc2diRzlqWVd4bE9pQjBhR2x6TG14dlkyRnNaU3dnYm5WdFltVnlhVzVuVTNsemRHVnRPaUIwYUdsekxtNTFiV0psY21sdVoxTjVjM1JsYlN3Z0xpNHViM0IwY3lCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnZFc1cGRITWdQU0J0WVhsaVpVRnljbUY1S0hWdWFYUXBMbTFoY0NoRWRYSmhkR2x2Ymk1dWIzSnRZV3hwZW1WVmJtbDBLU3hjYmlBZ0lDQWdJRzkwYUdWeVNYTk1ZWFJsY2lBOUlHOTBhR1Z5UkdGMFpWUnBiV1V1ZG1Gc2RXVlBaaWdwSUQ0Z2RHaHBjeTUyWVd4MVpVOW1LQ2tzWEc0Z0lDQWdJQ0JsWVhKc2FXVnlJRDBnYjNSb1pYSkpjMHhoZEdWeUlEOGdkR2hwY3lBNklHOTBhR1Z5UkdGMFpWUnBiV1VzWEc0Z0lDQWdJQ0JzWVhSbGNpQTlJRzkwYUdWeVNYTk1ZWFJsY2lBL0lHOTBhR1Z5UkdGMFpWUnBiV1VnT2lCMGFHbHpMRnh1SUNBZ0lDQWdaR2xtWm1Wa0lEMGdaR2xtWmlobFlYSnNhV1Z5TENCc1lYUmxjaXdnZFc1cGRITXNJR1IxY2s5d2RITXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHOTBhR1Z5U1hOTVlYUmxjaUEvSUdScFptWmxaQzV1WldkaGRHVW9LU0E2SUdScFptWmxaRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElHUnBabVpsY21WdVkyVWdZbVYwZDJWbGJpQjBhR2x6SUVSaGRHVlVhVzFsSUdGdVpDQnlhV2RvZENCdWIzY3VYRzRnSUNBcUlGTmxaU0I3UUd4cGJtc2dSR0YwWlZScGJXVWpaR2xtWm4xY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDhjM1J5YVc1blcxMTlJRnQxYm1sMFBWc25iV2xzYkdselpXTnZibVJ6SjExZElDMGdkR2hsSUhWdWFYUWdiM0lnZFc1cGRITWdkVzVwZEhNZ0tITjFZMmdnWVhNZ0oyaHZkWEp6SnlCdmNpQW5aR0Y1Y3ljcElIUnZJR2x1WTJ4MVpHVWdhVzRnZEdobElHUjFjbUYwYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWN5QjBhR0YwSUdGbVptVmpkQ0IwYUdVZ1kzSmxZWFJwYjI0Z2IyWWdkR2hsSUVSMWNtRjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrOUoyTmhjM1ZoYkNkZElDMGdkR2hsSUdOdmJuWmxjbk5wYjI0Z2MzbHpkR1Z0SUhSdklIVnpaVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVkWEpoZEdsdmJuMWNiaUFnSUNvdlhHNGdJR1JwWm1aT2IzY29kVzVwZENBOUlGd2liV2xzYkdselpXTnZibVJ6WENJc0lHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVJwWm1Zb1JHRjBaVlJwYldVdWJtOTNLQ2tzSUhWdWFYUXNJRzl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQmhiaUJKYm5SbGNuWmhiQ0J6Y0dGdWJtbHVaeUJpWlhSM1pXVnVJSFJvYVhNZ1JHRjBaVlJwYldVZ1lXNWtJR0Z1YjNSb1pYSWdSR0YwWlZScGJXVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0RVlYUmxWR2x0WlgwZ2IzUm9aWEpFWVhSbFZHbHRaU0F0SUhSb1pTQnZkR2hsY2lCbGJtUWdjRzlwYm5RZ2IyWWdkR2hsSUVsdWRHVnlkbUZzWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMGx1ZEdWeWRtRnNmVnh1SUNBZ0tpOWNiaUFnZFc1MGFXd29iM1JvWlhKRVlYUmxWR2x0WlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QkpiblJsY25aaGJDNW1jbTl0UkdGMFpWUnBiV1Z6S0hSb2FYTXNJRzkwYUdWeVJHRjBaVlJwYldVcElEb2dkR2hwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2QyaGxkR2hsY2lCMGFHbHpJRVJoZEdWVWFXMWxJR2x6SUdsdUlIUm9aU0J6WVcxbElIVnVhWFFnYjJZZ2RHbHRaU0JoY3lCaGJtOTBhR1Z5SUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJJYVdkb1pYSXRiM0prWlhJZ2RXNXBkSE1nYlhWemRDQmhiSE52SUdKbElHbGtaVzUwYVdOaGJDQm1iM0lnZEdocGN5Qm1kVzVqZEdsdmJpQjBieUJ5WlhSMWNtNGdZSFJ5ZFdWZ0xseHVJQ0FnS2lCT2IzUmxJSFJvWVhRZ2RHbHRaU0I2YjI1bGN5QmhjbVVnS2lwcFoyNXZjbVZrS2lvZ2FXNGdkR2hwY3lCamIyMXdZWEpwYzI5dUxDQjNhR2xqYUNCamIyMXdZWEpsY3lCMGFHVWdLaXBzYjJOaGJDb3FJR05oYkdWdVpHRnlJSFJwYldVdUlGVnpaU0I3UUd4cGJtc2dSR0YwWlZScGJXVWpjMlYwV205dVpYMGdkRzhnWTI5dWRtVnlkQ0J2Ym1VZ2IyWWdkR2hsSUdSaGRHVnpJR2xtSUc1bFpXUmxaQzVjYmlBZ0lDb2dRSEJoY21GdElIdEVZWFJsVkdsdFpYMGdiM1JvWlhKRVlYUmxWR2x0WlNBdElIUm9aU0J2ZEdobGNpQkVZWFJsVkdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRDQXRJSFJvWlNCMWJtbDBJRzltSUhScGJXVWdkRzhnWTJobFkyc2djMkZ0Wlc1bGMzTWdiMjVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWFHRnpVMkZ0WlNodmRHaGxja1JVTENBblpHRjVKeWs3SUM4dmZqNGdkSEoxWlNCcFppQnZkR2hsY2tSVUlHbHpJR2x1SUhSb1pTQnpZVzFsSUdOMWNuSmxiblFnWTJGc1pXNWtZWElnWkdGNVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCb1lYTlRZVzFsS0c5MGFHVnlSR0YwWlZScGJXVXNJSFZ1YVhRcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUdaaGJITmxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2FXNXdkWFJOY3lBOUlHOTBhR1Z5UkdGMFpWUnBiV1V1ZG1Gc2RXVlBaaWdwTzF4dUlDQWdJR052Ym5OMElHRmthblZ6ZEdWa1ZHOWFiMjVsSUQwZ2RHaHBjeTV6WlhSYWIyNWxLRzkwYUdWeVJHRjBaVlJwYldVdWVtOXVaU3dnZXlCclpXVndURzlqWVd4VWFXMWxPaUIwY25WbElIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCaFpHcDFjM1JsWkZSdldtOXVaUzV6ZEdGeWRFOW1LSFZ1YVhRcElEdzlJR2x1Y0hWMFRYTWdKaVlnYVc1d2RYUk5jeUE4UFNCaFpHcDFjM1JsWkZSdldtOXVaUzVsYm1SUFppaDFibWwwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkZjWFZoYkdsMGVTQmphR1ZqYTF4dUlDQWdLaUJVZDI4Z1JHRjBaVlJwYldWeklHRnlaU0JsY1hWaGJDQnBabVlnZEdobGVTQnlaWEJ5WlhObGJuUWdkR2hsSUhOaGJXVWdiV2xzYkdselpXTnZibVFzSUdoaGRtVWdkR2hsSUhOaGJXVWdlbTl1WlNCaGJtUWdiRzlqWVhScGIyNHNJR0Z1WkNCaGNtVWdZbTkwYUNCMllXeHBaQzVjYmlBZ0lDb2dWRzhnWTI5dGNHRnlaU0JxZFhOMElIUm9aU0J0YVd4c2FYTmxZMjl1WkNCMllXeDFaWE1zSUhWelpTQmdLMlIwTVNBOVBUMGdLMlIwTW1BdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y5SUc5MGFHVnlJQzBnZEdobElHOTBhR1Z5SUVSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JsY1hWaGJITW9iM1JvWlhJcElIdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnZEdocGN5NXBjMVpoYkdsa0lDWW1YRzRnSUNBZ0lDQnZkR2hsY2k1cGMxWmhiR2xrSUNZbVhHNGdJQ0FnSUNCMGFHbHpMblpoYkhWbFQyWW9LU0E5UFQwZ2IzUm9aWEl1ZG1Gc2RXVlBaaWdwSUNZbVhHNGdJQ0FnSUNCMGFHbHpMbnB2Ym1VdVpYRjFZV3h6S0c5MGFHVnlMbnB2Ym1VcElDWW1YRzRnSUNBZ0lDQjBhR2x6TG14dll5NWxjWFZoYkhNb2IzUm9aWEl1Ykc5aktWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhJSE4wY21sdVp5QnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQmhJSFJvYVhNZ2RHbHRaU0J5Wld4aGRHbDJaU0IwYnlCdWIzY3NJSE4xWTJnZ1lYTWdYQ0pwYmlCMGQyOGdaR0Y1YzF3aUxpQkRZVzRnYjI1c2VTQnBiblJsY201aGRHbHZibUZzYVhwbElHbG1JSGx2ZFhKY2JpQWdJQ29nY0d4aGRHWnZjbTBnYzNWd2NHOXlkSE1nU1c1MGJDNVNaV3hoZEdsMlpWUnBiV1ZHYjNKdFlYUXVJRkp2ZFc1a2N5QmtiM2R1SUdKNUlHUmxabUYxYkhRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hScGIyNXpJQzBnYjNCMGFXOXVjeUIwYUdGMElHRm1abVZqZENCMGFHVWdiM1YwY0hWMFhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y5SUZ0dmNIUnBiMjV6TG1KaGMyVTlSR0YwWlZScGJXVXVibTkzS0NsZElDMGdkR2hsSUVSaGRHVlVhVzFsSUhSdklIVnpaU0JoY3lCMGFHVWdZbUZ6YVhNZ2RHOGdkMmhwWTJnZ2RHaHBjeUIwYVcxbElHbHpJR052YlhCaGNtVmtMaUJFWldaaGRXeDBjeUIwYnlCdWIzY3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBhVzl1Y3k1emRIbHNaVDFjSW14dmJtZGNJbDBnTFNCMGFHVWdjM1I1YkdVZ2IyWWdkVzVwZEhNc0lHMTFjM1FnWW1VZ1hDSnNiMjVuWENJc0lGd2ljMmh2Y25SY0lpd2diM0lnWENKdVlYSnliM2RjSWx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeHpkSEpwYm1kYlhYMGdiM0IwYVc5dWN5NTFibWwwSUMwZ2RYTmxJR0VnYzNCbFkybG1hV01nZFc1cGRDQnZjaUJoY25KaGVTQnZaaUIxYm1sMGN6c2dhV1lnYjIxcGRIUmxaQ3dnYjNJZ1lXNGdZWEp5WVhrc0lIUm9aU0J0WlhSb2IyUWdkMmxzYkNCd2FXTnJJSFJvWlNCaVpYTjBJSFZ1YVhRdUlGVnpaU0JoYmlCaGNuSmhlU0J2Y2lCdmJtVWdiMllnWENKNVpXRnljMXdpTENCY0luRjFZWEowWlhKelhDSXNJRndpYlc5dWRHaHpYQ0lzSUZ3aWQyVmxhM05jSWl3Z1hDSmtZWGx6WENJc0lGd2lhRzkxY25OY0lpd2dYQ0p0YVc1MWRHVnpYQ0lzSUc5eUlGd2ljMlZqYjI1a2Mxd2lYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkR2x2Ym5NdWNtOTFibVE5ZEhKMVpWMGdMU0IzYUdWMGFHVnlJSFJ2SUhKdmRXNWtJSFJvWlNCdWRXMWlaWEp6SUdsdUlIUm9aU0J2ZFhSd2RYUXVYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmIzQjBhVzl1Y3k1d1lXUmthVzVuUFRCZElDMGdjR0ZrWkdsdVp5QnBiaUJ0YVd4c2FYTmxZMjl1WkhNdUlGUm9hWE1nWVd4c2IzZHpJSGx2ZFNCMGJ5QnliM1Z1WkNCMWNDQjBhR1VnY21WemRXeDBJR2xtSUdsMElHWnBkSE1nYVc1emFXUmxJSFJvWlNCMGFISmxjMmh2YkdRdUlFUnZiaWQwSUhWelpTQnBiaUJqYjIxaWFXNWhkR2x2YmlCM2FYUm9JSHR5YjNWdVpEb2dabUZzYzJWOUlHSmxZMkYxYzJVZ2RHaGxJR1JsWTJsdFlXd2diM1YwY0hWMElIZHBiR3dnYVc1amJIVmtaU0IwYUdVZ2NHRmtaR2x1Wnk1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEdsdmJuTXViRzlqWVd4bElDMGdiM1psY25KcFpHVWdkR2hsSUd4dlkyRnNaU0J2WmlCMGFHbHpJRVJoZEdWVWFXMWxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnBiMjV6TG01MWJXSmxjbWx1WjFONWMzUmxiU0F0SUc5MlpYSnlhV1JsSUhSb1pTQnVkVzFpWlhKcGJtZFRlWE4wWlcwZ2IyWWdkR2hwY3lCRVlYUmxWR2x0WlM0Z1ZHaGxJRWx1ZEd3Z2MzbHpkR1Z0SUcxaGVTQmphRzl2YzJVZ2JtOTBJSFJ2SUdodmJtOXlJSFJvYVhOY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VjR3gxY3loN0lHUmhlWE02SURFZ2ZTa3VkRzlTWld4aGRHbDJaU2dwSUM4dlBUNGdYQ0pwYmlBeElHUmhlVndpWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuTmxkRXh2WTJGc1pTaGNJbVZ6WENJcExuUnZVbVZzWVhScGRtVW9leUJrWVhsek9pQXhJSDBwSUM4dlBUNGdYQ0prWlc1MGNtOGdaR1VnTVNCa1hIVXdNRVZFWVZ3aVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG01dmR5Z3BMbkJzZFhNb2V5QmtZWGx6T2lBeElIMHBMblJ2VW1Wc1lYUnBkbVVvZXlCc2IyTmhiR1U2SUZ3aVpuSmNJaUI5S1NBdkx6MCtJRndpWkdGdWN5QXlNeUJvWlhWeVpYTmNJbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1dGFXNTFjeWg3SUdSaGVYTTZJRElnZlNrdWRHOVNaV3hoZEdsMlpTZ3BJQzh2UFQ0Z1hDSXlJR1JoZVhNZ1lXZHZYQ0pjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWJXbHVkWE1vZXlCa1lYbHpPaUF5SUgwcExuUnZVbVZzWVhScGRtVW9leUIxYm1sME9pQmNJbWh2ZFhKelhDSWdmU2tnTHk4OVBpQmNJalE0SUdodmRYSnpJR0ZuYjF3aVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG01dmR5Z3BMbTFwYm5WektIc2dhRzkxY25NNklETTJJSDBwTG5SdlVtVnNZWFJwZG1Vb2V5QnliM1Z1WkRvZ1ptRnNjMlVnZlNrZ0x5ODlQaUJjSWpFdU5TQmtZWGx6SUdGbmIxd2lYRzRnSUNBcUwxeHVJQ0IwYjFKbGJHRjBhWFpsS0c5d2RHbHZibk1nUFNCN2ZTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQmpiMjV6ZENCaVlYTmxJRDBnYjNCMGFXOXVjeTVpWVhObElIeDhJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZTMwc0lIc2dlbTl1WlRvZ2RHaHBjeTU2YjI1bElIMHBMRnh1SUNBZ0lDQWdjR0ZrWkdsdVp5QTlJRzl3ZEdsdmJuTXVjR0ZrWkdsdVp5QS9JQ2gwYUdseklEd2dZbUZ6WlNBL0lDMXZjSFJwYjI1ekxuQmhaR1JwYm1jZ09pQnZjSFJwYjI1ekxuQmhaR1JwYm1jcElEb2dNRHRjYmlBZ0lDQnNaWFFnZFc1cGRITWdQU0JiWENKNVpXRnljMXdpTENCY0ltMXZiblJvYzF3aUxDQmNJbVJoZVhOY0lpd2dYQ0pvYjNWeWMxd2lMQ0JjSW0xcGJuVjBaWE5jSWl3Z1hDSnpaV052Ym1SelhDSmRPMXh1SUNBZ0lHeGxkQ0IxYm1sMElEMGdiM0IwYVc5dWN5NTFibWwwTzF4dUlDQWdJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLRzl3ZEdsdmJuTXVkVzVwZENrcElIdGNiaUFnSUNBZ0lIVnVhWFJ6SUQwZ2IzQjBhVzl1Y3k1MWJtbDBPMXh1SUNBZ0lDQWdkVzVwZENBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1JwWm1aU1pXeGhkR2wyWlNoaVlYTmxMQ0IwYUdsekxuQnNkWE1vY0dGa1pHbHVaeWtzSUh0Y2JpQWdJQ0FnSUM0dUxtOXdkR2x2Ym5Nc1hHNGdJQ0FnSUNCdWRXMWxjbWxqT2lCY0ltRnNkMkY1YzF3aUxGeHVJQ0FnSUNBZ2RXNXBkSE1zWEc0Z0lDQWdJQ0IxYm1sMExGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCa1lYUmxJSEpsYkdGMGFYWmxJSFJ2SUhSdlpHRjVMQ0J6ZFdOb0lHRnpJRndpZVdWemRHVnlaR0Y1WENJZ2IzSWdYQ0p1WlhoMElHMXZiblJvWENJdVhHNGdJQ0FxSUU5dWJIa2dhVzUwWlhKdVlYUnBiMjVoYkdsNlpYTWdiMjRnY0d4aGRHWnZjbTF6SUhSb1lYUWdjM1Z3Y0c5eWRITWdTVzUwYkM1U1pXeGhkR2wyWlZScGJXVkdiM0p0WVhRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hScGIyNXpJQzBnYjNCMGFXOXVjeUIwYUdGMElHRm1abVZqZENCMGFHVWdiM1YwY0hWMFhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y5SUZ0dmNIUnBiMjV6TG1KaGMyVTlSR0YwWlZScGJXVXVibTkzS0NsZElDMGdkR2hsSUVSaGRHVlVhVzFsSUhSdklIVnpaU0JoY3lCMGFHVWdZbUZ6YVhNZ2RHOGdkMmhwWTJnZ2RHaHBjeUIwYVcxbElHbHpJR052YlhCaGNtVmtMaUJFWldaaGRXeDBjeUIwYnlCdWIzY3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnBiMjV6TG14dlkyRnNaU0F0SUc5MlpYSnlhV1JsSUhSb1pTQnNiMk5oYkdVZ2IyWWdkR2hwY3lCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiM0IwYVc5dWN5NTFibWwwSUMwZ2RYTmxJR0VnYzNCbFkybG1hV01nZFc1cGREc2dhV1lnYjIxcGRIUmxaQ3dnZEdobElHMWxkR2h2WkNCM2FXeHNJSEJwWTJzZ2RHaGxJSFZ1YVhRdUlGVnpaU0J2Ym1VZ2IyWWdYQ0o1WldGeWMxd2lMQ0JjSW5GMVlYSjBaWEp6WENJc0lGd2liVzl1ZEdoelhDSXNJRndpZDJWbGEzTmNJaXdnYjNJZ1hDSmtZWGx6WENKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEdsdmJuTXViblZ0WW1WeWFXNW5VM2x6ZEdWdElDMGdiM1psY25KcFpHVWdkR2hsSUc1MWJXSmxjbWx1WjFONWMzUmxiU0J2WmlCMGFHbHpJRVJoZEdWVWFXMWxMaUJVYUdVZ1NXNTBiQ0J6ZVhOMFpXMGdiV0Y1SUdOb2IyOXpaU0J1YjNRZ2RHOGdhRzl1YjNJZ2RHaHBjMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1d2JIVnpLSHNnWkdGNWN6b2dNU0I5S1M1MGIxSmxiR0YwYVhabFEyRnNaVzVrWVhJb0tTQXZMejArSUZ3aWRHOXRiM0p5YjNkY0lseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV6WlhSTWIyTmhiR1VvWENKbGMxd2lLUzV3YkhWektIc2daR0Y1Y3pvZ01TQjlLUzUwYjFKbGJHRjBhWFpsS0NrZ0x5ODlQaUJjSWx3aWJXRmNkVEF3UmpGaGJtRmNJbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1d2JIVnpLSHNnWkdGNWN6b2dNU0I5S1M1MGIxSmxiR0YwYVhabFEyRnNaVzVrWVhJb2V5QnNiMk5oYkdVNklGd2labkpjSWlCOUtTQXZMejArSUZ3aVpHVnRZV2x1WENKY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3ViV2x1ZFhNb2V5QmtZWGx6T2lBeUlIMHBMblJ2VW1Wc1lYUnBkbVZEWVd4bGJtUmhjaWdwSUM4dlBUNGdYQ0l5SUdSaGVYTWdZV2R2WENKY2JpQWdJQ292WEc0Z0lIUnZVbVZzWVhScGRtVkRZV3hsYm1SaGNpaHZjSFJwYjI1eklEMGdlMzBwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJRzUxYkd3N1hHNWNiaUFnSUNCeVpYUjFjbTRnWkdsbVpsSmxiR0YwYVhabEtHOXdkR2x2Ym5NdVltRnpaU0I4ZkNCRVlYUmxWR2x0WlM1bWNtOXRUMkpxWldOMEtIdDlMQ0I3SUhwdmJtVTZJSFJvYVhNdWVtOXVaU0I5S1N3Z2RHaHBjeXdnZTF4dUlDQWdJQ0FnTGk0dWIzQjBhVzl1Y3l4Y2JpQWdJQ0FnSUc1MWJXVnlhV002SUZ3aVlYVjBiMXdpTEZ4dUlDQWdJQ0FnZFc1cGRITTZJRnRjSW5sbFlYSnpYQ0lzSUZ3aWJXOXVkR2h6WENJc0lGd2laR0Y1YzF3aVhTeGNiaUFnSUNBZ0lHTmhiR1Z1WkdGeWVUb2dkSEoxWlN4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2RHaGxJRzFwYmlCdlppQnpaWFpsY21Gc0lHUmhkR1VnZEdsdFpYTmNiaUFnSUNvZ1FIQmhjbUZ0SUhzdUxpNUVZWFJsVkdsdFpYMGdaR0YwWlZScGJXVnpJQzBnZEdobElFUmhkR1ZVYVcxbGN5Qm1jbTl0SUhkb2FXTm9JSFJ2SUdOb2IyOXpaU0IwYUdVZ2JXbHVhVzExYlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDBnZEdobElHMXBiaUJFWVhSbFZHbHRaU3dnYjNJZ2RXNWtaV1pwYm1Wa0lHbG1JR05oYkd4bFpDQjNhWFJvSUc1dklHRnlaM1Z0Wlc1MFhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2JXbHVLQzR1TG1SaGRHVlVhVzFsY3lrZ2UxeHVJQ0FnSUdsbUlDZ2haR0YwWlZScGJXVnpMbVYyWlhKNUtFUmhkR1ZVYVcxbExtbHpSR0YwWlZScGJXVXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MllXeHBaRUZ5WjNWdFpXNTBSWEp5YjNJb1hDSnRhVzRnY21WeGRXbHlaWE1nWVd4c0lHRnlaM1Z0Wlc1MGN5QmlaU0JFWVhSbFZHbHRaWE5jSWlrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmlaWE4wUW5rb1pHRjBaVlJwYldWekxDQW9hU2tnUFQ0Z2FTNTJZV3gxWlU5bUtDa3NJRTFoZEdndWJXbHVLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElHMWhlQ0J2WmlCelpYWmxjbUZzSUdSaGRHVWdkR2x0WlhOY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1RVlYUmxWR2x0WlgwZ1pHRjBaVlJwYldWeklDMGdkR2hsSUVSaGRHVlVhVzFsY3lCbWNtOXRJSGRvYVdOb0lIUnZJR05vYjI5elpTQjBhR1VnYldGNGFXMTFiVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVZWFJsVkdsdFpYMGdkR2hsSUcxaGVDQkVZWFJsVkdsdFpTd2diM0lnZFc1a1pXWnBibVZrSUdsbUlHTmhiR3hsWkNCM2FYUm9JRzV2SUdGeVozVnRaVzUwWEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYldGNEtDNHVMbVJoZEdWVWFXMWxjeWtnZTF4dUlDQWdJR2xtSUNnaFpHRjBaVlJwYldWekxtVjJaWEo1S0VSaGRHVlVhVzFsTG1selJHRjBaVlJwYldVcEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUyWVd4cFpFRnlaM1Z0Wlc1MFJYSnliM0lvWENKdFlYZ2djbVZ4ZFdseVpYTWdZV3hzSUdGeVozVnRaVzUwY3lCaVpTQkVZWFJsVkdsdFpYTmNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCaVpYTjBRbmtvWkdGMFpWUnBiV1Z6TENBb2FTa2dQVDRnYVM1MllXeDFaVTltS0Nrc0lFMWhkR2d1YldGNEtUdGNiaUFnZlZ4dVhHNGdJQzh2SUUxSlUwTmNibHh1SUNBdktpcGNiaUFnSUNvZ1JYaHdiR0ZwYmlCb2IzY2dZU0J6ZEhKcGJtY2dkMjkxYkdRZ1ltVWdjR0Z5YzJWa0lHSjVJR1p5YjIxR2IzSnRZWFFvS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR1Y0ZENBdElIUm9aU0J6ZEhKcGJtY2dkRzhnY0dGeWMyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdadGRDQXRJSFJvWlNCbWIzSnRZWFFnZEdobElITjBjbWx1WnlCcGN5QmxlSEJsWTNSbFpDQjBieUJpWlNCcGJpQW9jMlZsSUdSbGMyTnlhWEIwYVc5dUtWeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGFXOXVjeUF0SUc5d2RHbHZibk1nZEdGclpXNGdZbmtnWm5KdmJVWnZjbTFoZENncFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJtY205dFJtOXliV0YwUlhod2JHRnBiaWgwWlhoMExDQm1iWFFzSUc5d2RHbHZibk1nUFNCN2ZTa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOWpZV3hsSUQwZ2JuVnNiQ3dnYm5WdFltVnlhVzVuVTNsemRHVnRJRDBnYm5Wc2JDQjlJRDBnYjNCMGFXOXVjeXhjYmlBZ0lDQWdJR3h2WTJGc1pWUnZWWE5sSUQwZ1RHOWpZV3hsTG1aeWIyMVBjSFJ6S0h0Y2JpQWdJQ0FnSUNBZ2JHOWpZV3hsTEZ4dUlDQWdJQ0FnSUNCdWRXMWlaWEpwYm1kVGVYTjBaVzBzWEc0Z0lDQWdJQ0FnSUdSbFptRjFiSFJVYjBWT09pQjBjblZsTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJR1Y0Y0d4aGFXNUdjbTl0Vkc5clpXNXpLR3h2WTJGc1pWUnZWWE5sTENCMFpYaDBMQ0JtYlhRcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUhWelpTQm1jbTl0Um05eWJXRjBSWGh3YkdGcGJpQnBibk4wWldGa1hHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1puSnZiVk4wY21sdVowVjRjR3hoYVc0b2RHVjRkQ3dnWm0xMExDQnZjSFJwYjI1eklEMGdlMzBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSR0YwWlZScGJXVXVabkp2YlVadmNtMWhkRVY0Y0d4aGFXNG9kR1Y0ZEN3Z1ptMTBMQ0J2Y0hScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUM4dklFWlBVazFCVkNCUVVrVlRSVlJUWEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdNVEF2TVRRdk1UazRNMXh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGWDFOSVQxSlVLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQkdiM0p0WVhSekxrUkJWRVZmVTBoUFVsUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VEc5allXeGxVM1J5YVc1bmZTQm1iM0p0WVhRZ2JHbHJaU0FuVDJOMElERTBMQ0F4T1RnekoxeHVJQ0FnS2lCQWRIbHdaU0I3VDJKcVpXTjBmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2RsZENCRVFWUkZYMDFGUkNncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVFUVZSRlgwMUZSRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5TWIyTmhiR1ZUZEhKcGJtZDlJR1p2Y20xaGRDQnNhV3RsSUNkR2Nta3NJRTlqZENBeE5Dd2dNVGs0TXlkY2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnUkVGVVJWOU5SVVJmVjBsVVNGOVhSVVZMUkVGWktDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCR2IzSnRZWFJ6TGtSQlZFVmZUVVZFWDFkSlZFaGZWMFZGUzBSQldUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlNYjJOaGJHVlRkSEpwYm1kOUlHWnZjbTFoZENCc2FXdGxJQ2RQWTNSdlltVnlJREUwTENBeE9UZ3pKMXh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGWDBaVlRFd29LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFWnZjbTFoZEhNdVJFRlVSVjlHVlV4TU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdKMVIxWlhOa1lYa3NJRTlqZEc5aVpYSWdNVFFzSURFNU9ETW5YRzRnSUNBcUlFQjBlWEJsSUh0UFltcGxZM1I5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElFUkJWRVZmU0ZWSFJTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JtOXliV0YwY3k1RVFWUkZYMGhWUjBVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5NRGs2TXpBZ1FVMG5MaUJQYm14NUlERXlMV2h2ZFhJZ2FXWWdkR2hsSUd4dlkyRnNaU0JwY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnVkVsTlJWOVRTVTFRVEVVb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11VkVsTlJWOVRTVTFRVEVVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5NRGs2TXpBNk1qTWdRVTBuTGlCUGJteDVJREV5TFdodmRYSWdhV1lnZEdobElHeHZZMkZzWlNCcGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1ZFbE5SVjlYU1ZSSVgxTkZRMDlPUkZNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11VkVsTlJWOVhTVlJJWDFORlEwOU9SRk03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlRHOWpZV3hsVTNSeWFXNW5mU0JtYjNKdFlYUWdiR2xyWlNBbk1EazZNekE2TWpNZ1FVMGdSVVJVSnk0Z1QyNXNlU0F4TWkxb2IzVnlJR2xtSUhSb1pTQnNiMk5oYkdVZ2FYTXVYRzRnSUNBcUlFQjBlWEJsSUh0UFltcGxZM1I5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElGUkpUVVZmVjBsVVNGOVRTRTlTVkY5UFJrWlRSVlFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVWRWxOUlY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOU1iMk5oYkdWVGRISnBibWQ5SUdadmNtMWhkQ0JzYVd0bElDY3dPVG96TURveU15QkJUU0JGWVhOMFpYSnVJRVJoZVd4cFoyaDBJRlJwYldVbkxpQlBibXg1SURFeUxXaHZkWElnYVdZZ2RHaGxJR3h2WTJGc1pTQnBjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdWRWxOUlY5WFNWUklYMHhQVGtkZlQwWkdVMFZVS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJHYjNKdFlYUnpMbFJKVFVWZlYwbFVTRjlNVDA1SFgwOUdSbE5GVkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOU1iMk5oYkdWVGRISnBibWQ5SUdadmNtMWhkQ0JzYVd0bElDY3dPVG96TUNjc0lHRnNkMkY1Y3lBeU5DMW9iM1Z5TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JVU1UxRlh6STBYMU5KVFZCTVJTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JtOXliV0YwY3k1VVNVMUZYekkwWDFOSlRWQk1SVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5TWIyTmhiR1ZUZEhKcGJtZDlJR1p2Y20xaGRDQnNhV3RsSUNjd09Ub3pNRG95TXljc0lHRnNkMkY1Y3lBeU5DMW9iM1Z5TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JVU1UxRlh6STBYMWRKVkVoZlUwVkRUMDVFVXlncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVVU1UxRlh6STBYMWRKVkVoZlUwVkRUMDVFVXp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOU1iMk5oYkdWVGRISnBibWQ5SUdadmNtMWhkQ0JzYVd0bElDY3dPVG96TURveU15QkZSRlFuTENCaGJIZGhlWE1nTWpRdGFHOTFjaTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdWRWxOUlY4eU5GOVhTVlJJWDFOSVQxSlVYMDlHUmxORlZDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JtOXliV0YwY3k1VVNVMUZYekkwWDFkSlZFaGZVMGhQVWxSZlQwWkdVMFZVTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ0p6QTVPak13T2pJeklFVmhjM1JsY200Z1JHRjViR2xuYUhRZ1ZHbHRaU2NzSUdGc2QyRjVjeUF5TkMxb2IzVnlMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQlVTVTFGWHpJMFgxZEpWRWhmVEU5T1IxOVBSa1pUUlZRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11VkVsTlJWOHlORjlYU1ZSSVgweFBUa2RmVDBaR1UwVlVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSnpFd0x6RTBMekU1T0RNc0lEazZNekFnUVUwbkxpQlBibXg1SURFeUxXaHZkWElnYVdZZ2RHaGxJR3h2WTJGc1pTQnBjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdSRUZVUlZSSlRVVmZVMGhQVWxRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11UkVGVVJWUkpUVVZmVTBoUFVsUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VEc5allXeGxVM1J5YVc1bmZTQm1iM0p0WVhRZ2JHbHJaU0FuTVRBdk1UUXZNVGs0TXl3Z09Ub3pNRG96TXlCQlRTY3VJRTl1YkhrZ01USXRhRzkxY2lCcFppQjBhR1VnYkc5allXeGxJR2x6TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JFUVZSRlZFbE5SVjlUU0U5U1ZGOVhTVlJJWDFORlEwOU9SRk1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZVMGhQVWxSZlYwbFVTRjlUUlVOUFRrUlRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSjA5amRDQXhOQ3dnTVRrNE15d2dPVG96TUNCQlRTY3VJRTl1YkhrZ01USXRhRzkxY2lCcFppQjBhR1VnYkc5allXeGxJR2x6TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JFUVZSRlZFbE5SVjlOUlVRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11UkVGVVJWUkpUVVZmVFVWRU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdKMDlqZENBeE5Dd2dNVGs0TXl3Z09Ub3pNRG96TXlCQlRTY3VJRTl1YkhrZ01USXRhRzkxY2lCcFppQjBhR1VnYkc5allXeGxJR2x6TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlUUlVOUFRrUlRLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQkdiM0p0WVhSekxrUkJWRVZVU1UxRlgwMUZSRjlYU1ZSSVgxTkZRMDlPUkZNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5SbkpwTENBeE5DQlBZM1FnTVRrNE15d2dPVG96TUNCQlRTY3VJRTl1YkhrZ01USXRhRzkxY2lCcFppQjBhR1VnYkc5allXeGxJR2x6TGx4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlYUlVWTFJFRlpLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQkdiM0p0WVhSekxrUkJWRVZVU1UxRlgwMUZSRjlYU1ZSSVgxZEZSVXRFUVZrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5UMk4wYjJKbGNpQXhOQ3dnTVRrNE15d2dPVG96TUNCQlRTQkZSRlFuTGlCUGJteDVJREV5TFdodmRYSWdhV1lnZEdobElHeHZZMkZzWlNCcGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1JFRlVSVlJKVFVWZlJsVk1UQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbTl5YldGMGN5NUVRVlJGVkVsTlJWOUdWVXhNTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ0owOWpkRzlpWlhJZ01UUXNJREU1T0RNc0lEazZNekE2TXpNZ1FVMGdSVVJVSnk0Z1QyNXNlU0F4TWkxb2IzVnlJR2xtSUhSb1pTQnNiMk5oYkdVZ2FYTXVYRzRnSUNBcUlFQjBlWEJsSUh0UFltcGxZM1I5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElFUkJWRVZVU1UxRlgwWlZURXhmVjBsVVNGOVRSVU5QVGtSVEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCR2IzSnRZWFJ6TGtSQlZFVlVTVTFGWDBaVlRFeGZWMGxVU0Y5VFJVTlBUa1JUTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ0owWnlhV1JoZVN3Z1QyTjBiMkpsY2lBeE5Dd2dNVGs0TXl3Z09Ub3pNQ0JCVFNCRllYTjBaWEp1SUVSaGVXeHBaMmgwSUZScGJXVW5MaUJQYm14NUlERXlMV2h2ZFhJZ2FXWWdkR2hsSUd4dlkyRnNaU0JwY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnUkVGVVJWUkpUVVZmU0ZWSFJTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JtOXliV0YwY3k1RVFWUkZWRWxOUlY5SVZVZEZPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSjBaeWFXUmhlU3dnVDJOMGIySmxjaUF4TkN3Z01UazRNeXdnT1Rvek1Eb3pNeUJCVFNCRllYTjBaWEp1SUVSaGVXeHBaMmgwSUZScGJXVW5MaUJQYm14NUlERXlMV2h2ZFhJZ2FXWWdkR2hsSUd4dlkyRnNaU0JwY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnUkVGVVJWUkpUVVZmU0ZWSFJWOVhTVlJJWDFORlEwOU9SRk1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZTRlZIUlY5WFNWUklYMU5GUTA5T1JGTTdYRzRnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1puSnBaVzVrYkhsRVlYUmxWR2x0WlNoa1lYUmxWR2x0WldsemFDa2dlMXh1SUNCcFppQW9SR0YwWlZScGJXVXVhWE5FWVhSbFZHbHRaU2hrWVhSbFZHbHRaV2x6YUNrcElIdGNiaUFnSUNCeVpYUjFjbTRnWkdGMFpWUnBiV1ZwYzJnN1hHNGdJSDBnWld4elpTQnBaaUFvWkdGMFpWUnBiV1ZwYzJnZ0ppWWdaR0YwWlZScGJXVnBjMmd1ZG1Gc2RXVlBaaUFtSmlCcGMwNTFiV0psY2loa1lYUmxWR2x0WldsemFDNTJZV3gxWlU5bUtDa3BLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFUmhkR1ZVYVcxbExtWnliMjFLVTBSaGRHVW9aR0YwWlZScGJXVnBjMmdwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLR1JoZEdWVWFXMWxhWE5vSUNZbUlIUjVjR1Z2WmlCa1lYUmxWR2x0WldsemFDQTlQVDBnWENKdlltcGxZM1JjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJFWVhSbFZHbHRaUzVtY205dFQySnFaV04wS0dSaGRHVlVhVzFsYVhOb0tUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUyWVd4cFpFRnlaM1Z0Wlc1MFJYSnliM0lvWEc0Z0lDQWdJQ0JnVlc1cmJtOTNiaUJrWVhSbGRHbHRaU0JoY21kMWJXVnVkRG9nSkh0a1lYUmxWR2x0WldsemFIMHNJRzltSUhSNWNHVWdKSHQwZVhCbGIyWWdaR0YwWlZScGJXVnBjMmg5WUZ4dUlDQWdJQ2s3WEc0Z0lIMWNibjFjYmlJc0lDSnBiWEJ2Y25RZ2V5QkVZWFJsVkdsdFpTd2dSSFZ5WVhScGIyNGdmU0JtY205dElGd2liSFY0YjI1Y0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUZBZ1puSnZiU0JjSW5CaGNuTnBiVzF2Ymx3aU8xeHVhVzF3YjNKMElHVnRiMnBwVW1WblpYZ2dabkp2YlNCY0ltVnRiMnBwTFhKbFoyVjRYQ0k3WEc1cGJYQnZjblFnZXlCTWFXNXJJSDBnWm5KdmJTQmNJbVY0Y0hKbGMzTnBiMjR2YkdsdWExd2lPMXh1WEc0dktpb2dWR1Z6ZEMxbGJuWnBjbTl1YldWdWRDMW1jbWxsYm1Sc2VTQm1kVzVqZEdsdmJpQjNhR2xqYUNCbVpYUmphR1Z6SUhSb1pTQmpkWEp5Wlc1MElITjVjM1JsYlNCc2IyTmhiR1V1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kzVnljbVZ1ZEV4dlkyRnNaU2dwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZDJsdVpHOTNJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0J5WlhSMWNtNGdYQ0psYmkxVlUxd2lPMXh1SUNBZ0lISmxkSFZ5YmlCM2FXNWtiM2N1Ym1GMmFXZGhkRzl5TG14aGJtZDFZV2RsTzF4dWZWeHVYRzR2THlCRVlYUmxMMVJwYldVZ1VtVnVaR1Z5YVc1blhHNWNiaThxS2lCT2IzSnRZV3hwZW1VZ1lTQmtkWEpoZEdsdmJpQjBieUJoYkd3Z2IyWWdkR2hsSUhCeWIzQmxjaUIxYm1sMGN5NGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ1YjNKdFlXeHBlbVZFZFhKaGRHbHZiaWhrZFhJNklFUjFjbUYwYVc5dUtTQjdYRzRnSUNBZ2FXWWdLR1IxY2lBOVBUMGdkVzVrWldacGJtVmtJSHg4SUdSMWNpQTlQVDBnYm5Wc2JDa2djbVYwZFhKdUlHUjFjanRjYmx4dUlDQWdJSEpsZEhWeWJpQmtkWEl1YzJocFpuUlVieWhjSW5sbFlYSnpYQ0lzSUZ3aWJXOXVkR2h6WENJc0lGd2lkMlZsYTNOY0lpd2dYQ0prWVhselhDSXNJRndpYUc5MWNuTmNJaXdnWENKdGFXNTFkR1Z6WENJc0lGd2ljMlZqYjI1a2Mxd2lMQ0JjSW0xcGJHeHBjMlZqYjI1a2Mxd2lLUzV1YjNKdFlXeHBlbVVvS1R0Y2JuMWNibHh1THlvcUlGTjBjbWx3SUhSb1pTQjBhVzFsSUdOdmJYQnZibVZ1ZEhNZ2IyWWdZU0JrWVhSbElIUnBiV1VnYjJKcVpXTjBMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOMGNtbHdWR2x0WlNoa2REb2dSR0YwWlZScGJXVXBPaUJFWVhSbFZHbHRaU0I3WEc0Z0lDQWdhV1lnS0dSMElEMDlQU0J1ZFd4c0lIeDhJR1IwSUQwOVBTQjFibVJsWm1sdVpXUXBJSEpsZEhWeWJpQmtkRHRjYmx4dUlDQWdJSEpsZEhWeWJpQkVZWFJsVkdsdFpTNW1jbTl0VDJKcVpXTjBLSHRjYmlBZ0lDQWdJQ0FnZVdWaGNqb2daSFF1ZVdWaGNpeGNiaUFnSUNBZ0lDQWdiVzl1ZEdnNklHUjBMbTF2Ym5Sb0xGeHVJQ0FnSUNBZ0lDQmtZWGs2SUdSMExtUmhlU3hjYmlBZ0lDQjlLVHRjYm4xY2JseHVMeW9xSUZSeWVTQjBieUJsZUhSeVlXTjBJR0VnV1ZsWldVMU5SRVFnWkdGMFpTQm1jbTl0SUdFZ2MzUnlhVzVuTGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVjRkSEpoWTNSRVlYUmxLSE4wY2pvZ2MzUnlhVzVuS1RvZ1JHRjBaVlJwYldVZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHeGxkQ0JrWVhSbFRXRjBZMmdnUFNBdktGeGNaSHMwZlNrdEtGeGNaSHN5ZlNrdEtGeGNaSHN5ZlNrdkxtVjRaV01vYzNSeUtUdGNiaUFnSUNCcFppQW9JV1JoZEdWTllYUmphQ2tnWkdGMFpVMWhkR05vSUQwZ0x5aGNYR1I3TkgwcEtGeGNaSHN5ZlNrb1hGeGtleko5S1M4dVpYaGxZeWh6ZEhJcE8xeHVJQ0FnSUdsbUlDaGtZWFJsVFdGMFkyZ3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElIbGxZWElnUFNCT2RXMWlaWEl1Y0dGeWMyVkpiblFvWkdGMFpVMWhkR05vV3pGZEtUdGNiaUFnSUNBZ0lDQWdiR1YwSUcxdmJuUm9JRDBnVG5WdFltVnlMbkJoY25ObFNXNTBLR1JoZEdWTllYUmphRnN5WFNrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JrWVhrZ1BTQk9kVzFpWlhJdWNHRnljMlZKYm5Rb1pHRjBaVTFoZEdOb1d6TmRLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnlMQ0J0YjI1MGFDd2daR0Y1SUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc1OVhHNWNiaThxS2lCU1pXNWtaWElnWVNCRVlYUmxWR2x0WlNCcGJpQmhJRzFwYm1sdFlXd2dabTl5YldGMElIUnZJSE5oZG1VZ2MzQmhZMlV1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtVnVaR1Z5VFdsdWFXMWhiRVJoZEdVb2RHbHRaVG9nUkdGMFpWUnBiV1VzSUdSaGRHVkdiM0p0WVhRNklITjBjbWx1Wnl3Z1pHRjBaVlJwYldWR2IzSnRZWFE2SUhOMGNtbHVaeXdnYkc5allXeGxQem9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQXZMeUJKWmlCMGFHVnlaU0JwY3lCdWJ5QnlaV3hsZG1GdWRDQjBhVzFsSUhOd1pXTnBabWxsWkN3Z1ptRnNiQ0JpWVdOcklIUnZJR3AxYzNRZ2NtVnVaR1Z5YVc1bklIUm9aU0JrWVhSbExseHVJQ0FnSUdsbUlDaDBhVzFsTG5ObFkyOXVaQ0E5UFNBd0lDWW1JSFJwYldVdWJXbHVkWFJsSUQwOUlEQWdKaVlnZEdsdFpTNW9iM1Z5SUQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJwYldVdWRHOU1iMk5oYkNncExuUnZSbTl5YldGMEtHUmhkR1ZHYjNKdFlYUXNJSHNnYkc5allXeGxJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjBhVzFsTG5SdlRHOWpZV3dvS1M1MGIwWnZjbTFoZENoa1lYUmxWR2x0WlVadmNtMWhkQ3dnZXlCc2IyTmhiR1VnZlNrN1hHNTlYRzVjYmk4cUtpQlNaVzVrWlhJZ1lTQmtkWEpoZEdsdmJpQnBiaUJoSUcxcGJtbHRZV3dnWm05eWJXRjBJSFJ2SUhOaGRtVWdjM0JoWTJVdUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZ1WkdWeVRXbHVhVzFoYkVSMWNtRjBhVzl1S0dSMWNqb2dSSFZ5WVhScGIyNHBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHUjFjaUE5SUc1dmNtMWhiR2w2WlVSMWNtRjBhVzl1S0dSMWNpazdYRzVjYmlBZ0lDQXZMeUJVVDBSUE9pQk1kWGh2YmlCa2IyVnpJRzV2ZENCb1lYWmxJRzExYkhScExXeHBibWQxWVd3dmJHOWpZV3hsTFdGM1lYSmxJR1IxY21GMGFXOXVJSEpsYm1SbGNtbHVaeTVjYmlBZ0lDQnNaWFFnY21WemRXeDBJRDBnWENKY0lqdGNiaUFnSUNCcFppQW9aSFZ5TG5sbFlYSnpLU0J5WlhOMWJIUWdLejBnWUNSN1pIVnlMbmxsWVhKemZTQjVaV0Z5Y3l3Z1lEdGNiaUFnSUNCcFppQW9aSFZ5TG0xdmJuUm9jeWtnY21WemRXeDBJQ3M5SUdBa2UyUjFjaTV0YjI1MGFITjlJRzF2Ym5Sb2N5d2dZRHRjYmlBZ0lDQnBaaUFvWkhWeUxuZGxaV3R6S1NCeVpYTjFiSFFnS3owZ1lDUjdaSFZ5TG5kbFpXdHpmU0IzWldWcmN5d2dZRHRjYmlBZ0lDQnBaaUFvWkhWeUxtUmhlWE1wSUhKbGMzVnNkQ0FyUFNCZ0pIdGtkWEl1WkdGNWMzMGdaR0Y1Y3l3Z1lEdGNiaUFnSUNCcFppQW9aSFZ5TG1odmRYSnpLU0J5WlhOMWJIUWdLejBnWUNSN1pIVnlMbWh2ZFhKemZTQm9iM1Z5Y3l3Z1lEdGNiaUFnSUNCcFppQW9aSFZ5TG0xcGJuVjBaWE1wSUhKbGMzVnNkQ0FyUFNCZ0pIdGtkWEl1YldsdWRYUmxjMzBnYldsdWRYUmxjeXdnWUR0Y2JpQWdJQ0JwWmlBb1pIVnlMbk5sWTI5dVpITXBJSEpsYzNWc2RDQXJQU0JnSkh0TllYUm9Mbkp2ZFc1a0tHUjFjaTV6WldOdmJtUnpLWDBnYzJWamIyNWtjeXdnWUR0Y2JpQWdJQ0JwWmlBb1pIVnlMbTFwYkd4cGMyVmpiMjVrY3lrZ2NtVnpkV3gwSUNzOUlHQWtlMDFoZEdndWNtOTFibVFvWkhWeUxtMXBiR3hwYzJWamIyNWtjeWw5SUcxekxDQmdPMXh1WEc0Z0lDQWdhV1lnS0hKbGMzVnNkQzVsYm1SelYybDBhQ2hjSWl3Z1hDSXBLU0J5WlhOMWJIUWdQU0J5WlhOMWJIUXVjM1ZpYzNSeWFXNW5LREFzSUhKbGMzVnNkQzVzWlc1bmRHZ2dMU0F5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVmVnh1WEc0dkx5QlFZWFJvSUhWMGFXeHBkR2xsY3k1Y2JseHVMeW9xSUVkbGRDQjBhR1VnWm05c1pHVnlJR052Ym5SaGFXNXBibWNnZEdobElHZHBkbVZ1SUhCaGRHZ2dLR2t1WlM0c0lHeHBhMlVnWTI5dGNIVjBhVzVuSUNkd1lYUm9MeTR1SnlrdUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVUdGeVpXNTBSbTlzWkdWeUtIQmhkR2c2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIQmhkR2d1YzNCc2FYUW9YQ0l2WENJcExuTnNhV05sS0RBc0lDMHhLUzVxYjJsdUtGd2lMMXdpS1R0Y2JuMWNibHh1THlvcUlFZGxkQ0IwYUdVZ1ptbHNaU0J1WVcxbElHWnZjaUIwYUdVZ1ptbHNaU0J5WldabGNtVnVZMlZrSUdsdUlIUm9aU0JuYVhabGJpQndZWFJvTENCaWVTQnpkSEpwY0hCcGJtY2dkR2hsSUhCaGNtVnVkQ0JtYjJ4a1pYSnpMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFWnBiR1ZPWVcxbEtIQmhkR2c2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIQmhkR2d1YVc1amJIVmtaWE1vWENJdlhDSXBJRDhnY0dGMGFDNXpkV0p6ZEhKcGJtY29jR0YwYUM1c1lYTjBTVzVrWlhoUFppaGNJaTljSWlrZ0t5QXhLU0E2SUhCaGRHZzdYRzU5WEc1Y2JpOHFLaUJIWlhRZ2RHaGxJRndpZEdsMGJHVmNJaUJtYjNJZ1lTQm1hV3hsTENCaWVTQnpkSEpwY0hCcGJtY2diM1JvWlhJZ2NHRnlkSE1nYjJZZ2RHaGxJSEJoZEdnZ1lYTWdkMlZzYkNCaGN5QjBhR1VnWlhoMFpXNXphVzl1TGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRVpwYkdWVWFYUnNaU2h3WVhSb09pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdsbUlDaHdZWFJvTG1sdVkyeDFaR1Z6S0Z3aUwxd2lLU2tnY0dGMGFDQTlJSEJoZEdndWMzVmljM1J5YVc1bktIQmhkR2d1YkdGemRFbHVaR1Y0VDJZb1hDSXZYQ0lwSUNzZ01TazdYRzRnSUNBZ2FXWWdLSEJoZEdndVpXNWtjMWRwZEdnb1hDSXViV1JjSWlrcElIQmhkR2dnUFNCd1lYUm9Mbk4xWW5OMGNtbHVaeWd3TENCd1lYUm9MbXhsYm1kMGFDQXRJRE1wTzF4dUlDQWdJSEpsZEhWeWJpQndZWFJvTzF4dWZWeHVYRzR2S2lvZ1IyVjBJSFJvWlNCbGVIUmxibk5wYjI0Z2IyWWdZU0JtYVd4bElHWnliMjBnZEdobElHWnBiR1VnY0dGMGFDNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSRmVIUmxibk5wYjI0b2NHRjBhRG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnBaaUFvSVhCaGRHZ3VhVzVqYkhWa1pYTW9YQ0l1WENJcEtTQnlaWFIxY200Z1hDSmNJanRjYmlBZ0lDQnlaWFIxY200Z2NHRjBhQzV6ZFdKemRISnBibWNvY0dGMGFDNXNZWE4wU1c1a1pYaFBaaWhjSWk1Y0lpa2dLeUF4S1R0Y2JuMWNibHh1THk4Z1ZHRm5JR1Y0ZEhKaFkzUnBiMjR1WEc1Y2JpOHFLaUJRWVhKelpTQmhiR3dnYzNWaWRHRm5jeUJ2ZFhRZ2IyWWdkR2hsSUdkcGRtVnVJSFJoWnk0Z1NTNWxMaXdnSTJobGJHeHZMMmt2WVcwZ2QyOTFiR1FnZVdsbGJHUWdXeU5vWld4c2J5OXBMMkZ0TENBamFHVnNiRzh2YVN3Z0kyaGxiR3h2WFM0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxlSFJ5WVdOMFUzVmlkR0ZuY3loMFlXZHpPaUJ6ZEhKcGJtY2dmQ0JKZEdWeVlXSnNaVHh6ZEhKcGJtYytLVG9nYzNSeWFXNW5XMTBnZTF4dUlDQWdJR3hsZENCeVpYTjFiSFFnUFNCYlhUdGNiaUFnSUNCbWIzSWdLR3hsZENCMFlXY2diMllnZEhsd1pXOW1JSFJoWjNNZ1BUMDlJRndpYzNSeWFXNW5YQ0lnUHlCYmRHRm5jMTBnT2lCMFlXZHpLU0I3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkQzV3ZFhOb0tIUmhaeWs3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2gwWVdjdWFXNWpiSFZrWlhNb1hDSXZYQ0lwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWVdjZ1BTQjBZV2N1YzNWaWMzUnlhVzVuS0RBc0lIUmhaeTVzWVhOMFNXNWtaWGhQWmloY0lpOWNJaWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvZEdGbktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc1OVhHNWNiaThxS2lCVGNHeHBkQ0JsWVdOb0lHSnNiMk5ySUdGdVpDQnpaV04wYVc5dUlHeHBibXNnYVc1MGJ5QjBhR1VnYjNKcFoybHVZV3dnYkdsdWF5QmhibVFnWVNCamIzSnlaWE53YjI1a2FXNW5JR1pwYkdVZ2JHbHVheTRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbGVIUnlZV04wUm1sc1pVeHBibXR6S0dWc2FXNXJjem9nVEdsdWExdGRLVG9nVEdsdWExdGRJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFE2SUV4cGJtdGJYU0E5SUZ0ZE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JHbHVheUJ2WmlCbGJHbHVhM01wSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwTG5CMWMyZ29iR2x1YXlrN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1ptbHNaVXhwYm1zZ1BTQnNhVzVyTG5SdlJtbHNaU2dwTzF4dUlDQWdJQ0FnSUNCcFppQW9iR2x1YXk1MGVYQmxJQ0U5SUZ3aVptbHNaVndpSUNZbUlDRnlaWE4xYkhRdVptbHVaQ2dvWlhocGMzUnBibWNwSUQwK0lHVjRhWE4wYVc1bkxtVnhkV0ZzY3lobWFXeGxUR2x1YXlrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFF1Y0hWemFDaG1hV3hsVEdsdWF5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dWZWeHVYRzR2THlCVGRISnBibWNnWlhOallYQnBibWNnWVc1a0lHTmhibTl1YVdOaGJHbDZZWFJwYjI0dVhHNWNiaThxS2x4dUlDb2dSWE5qWVhCbElISmxaMlY0SUdOb1lYSmhZM1JsY25NZ2FXNGdZU0J6ZEhKcGJtY3VYRzRnS2lCVFpXVWdhSFIwY0hNNkx5OWtaWFpsYkc5d1pYSXViVzk2YVd4c1lTNXZjbWN2Wlc0dFZWTXZaRzlqY3k5WFpXSXZTbUYyWVZOamNtbHdkQzlIZFdsa1pTOVNaV2QxYkdGeVgwVjRjSEpsYzNOcGIyNXpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pYTmpZWEJsVW1WblpYZ29jM1J5T2lCemRISnBibWNwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjM1J5TG5KbGNHeGhZMlVvTDFzdUtpcy9YaVI3ZlNncGZGdGNYRjFjWEZ4Y1hTOW5MQ0JjSWx4Y1hGd2tKbHdpS1R0Y2JuMWNibHh1WTI5dWMzUWdTRVZCUkVWU1gwTkJUazlPU1VOQlRFbGFSVkk2SUZBdVVHRnljMlZ5UEhOMGNtbHVaejRnUFNCUUxtRnNkQ2hjYmlBZ0lDQlFMbkpsWjJWNEtHNWxkeUJTWldkRmVIQW9aVzF2YW1sU1pXZGxlQ2dwTENCY0lsd2lLU2tzWEc0Z0lDQWdVQzV5WldkbGVDZ3ZXekF0T1Z4Y2NIdE1aWFIwWlhKOVh5MWRLeTkxS1N4Y2JpQWdJQ0JRTG5kb2FYUmxjM0JoWTJVdWJXRndLQ2hmS1NBOVBpQmNJaUJjSWlrc1hHNGdJQ0FnVUM1aGJua3ViV0Z3S0NoZktTQTlQaUJjSWlCY0lpbGNiaWxjYmlBZ0lDQXViV0Z1ZVNncFhHNGdJQ0FnTG0xaGNDZ29jbVZ6ZFd4MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUXVhbTlwYmloY0lsd2lLUzV6Y0d4cGRDZ3ZYRnh6S3k4cExtcHZhVzRvWENJZ1hDSXBMblJ5YVcwb0tUdGNiaUFnSUNCOUtUdGNibHh1THlvcVhHNGdLaUJPYjNKdFlXeHBlbVZ6SUhSb1pTQjBaWGgwSUdsdUlHRWdhR1ZoWkdWeUlIUnZJR0psSUhOdmJXVjBhR2x1WnlCMGFHRjBJR2x6SUdGamRIVmhiR3g1SUd4cGJtdGhZbXhsSUhSdkxpQlVhR2x6SUcxcGJXbGpjMXh1SUNvZ2FHOTNJRTlpYzJsa2FXRnVJR1J2WlhNZ2FYUW5jeUJ1YjNKdFlXeHBlbUYwYVc5dUxDQmpiMnhzWVhCemFXNW5JSEpsY0dWaGRHVmtJSE53WVdObGN5QmhibVFnYzNSeWFYQndhVzVuSUc5MWRDQmpiMjUwY205c0lHTm9ZWEpoWTNSbGNuTXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdWIzSnRZV3hwZW1WSVpXRmtaWEpHYjNKTWFXNXJLR2hsWVdSbGNqb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnU0VWQlJFVlNYME5CVGs5T1NVTkJURWxhUlZJdWRISjVVR0Z5YzJVb2FHVmhaR1Z5S1R0Y2JuMWNibHh1THk4Z1JtRnpkQ0JsZUhSeVlXTjBhVzl1SUc5bUlHeHBibVVnY21GdVoyVnpJR1p5YjIwZ2JHRnlaMlVnY0dsbFkyVnpJRzltSUhSbGVIUXVYRzVjYmk4cUtpQlZjR1JoZEdVZ2RHaGxJR3hwYm1VZ2NtRnVaMlVnWm5KdmJTQmJjM1JoY25Rc0lHVnVaQ2tnZDJsMGFDQjBhR1VnWjJsMlpXNGdablZ1WTNScGIyNHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYkdsdVpWSmxjR3hoWTJVb2RHVjRkRG9nYzNSeWFXNW5MQ0J6ZEdGeWREb2diblZ0WW1WeUxDQmxibVE2SUc1MWJXSmxjaXdnWm5WdVl6b2dLR3hwYm1VNklITjBjbWx1WnlrZ1BUNGdjM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0JiWkdGMFlTd2diMlptYzJWMFhTQTlJR3hwYm1WVGNHRnVLSFJsZUhRc0lITjBZWEowTENCbGJtUXBPMXh1SUNBZ0lHbG1JQ2doYjJabWMyVjBLU0J5WlhSMWNtNGdkR1Y0ZER0Y2JseHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0FnSUdSaGRHRXVjM1ZpYzNSeWFXNW5LREFzSUc5bVpuTmxkQzV6ZEdGeWRDa2dLeUJtZFc1aktHUmhkR0V1YzNWaWMzUnlhVzVuS0c5bVpuTmxkQzV6ZEdGeWRDd2diMlptYzJWMExtVnVaQ2twSUNzZ1pHRjBZUzV6ZFdKemRISnBibWNvYjJabWMyVjBMbVZ1WkNsY2JpQWdJQ0FwTzF4dWZWeHVYRzR2S2lvZ1JYaDBjbUZqZENCMGFHVWdiR2x1WlhNZ2FXNGdkR2hsSUhKaGJtZGxJRnR6ZEdGeWRDd2daVzVrS1N3Z1lYTWdkMlZzYkNCaGN5QjBhR1VnWVdOMGRXRnNJRzltWm5ObGRITWdiMllnZEdobElITjBZWEowSUdGdVpDQmxibVF1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JHbHVaVk53WVc0b1hHNGdJQ0FnZEdWNGREb2djM1J5YVc1bkxGeHVJQ0FnSUhOMFlYSjBPaUJ1ZFcxaVpYSXNYRzRnSUNBZ1pXNWtPaUJ1ZFcxaVpYSmNiaWs2SUZ0emRISnBibWNzSUhzZ2MzUmhjblE2SUc1MWJXSmxjanNnWlc1a09pQnVkVzFpWlhJZ2ZTQjhJSFZ1WkdWbWFXNWxaRjBnZTF4dUlDQWdJSE4wWVhKMElEMGdUV0YwYUM1dFlYZ29jM1JoY25Rc0lEQXBPMXh1SUNBZ0lHVnVaQ0E5SUUxaGRHZ3ViV0Y0S0dWdVpDd2dNQ2s3WEc1Y2JpQWdJQ0JwWmlBb2MzUmhjblFnUGowZ1pXNWtLU0J5WlhSMWNtNGdXMXdpWENJc0lIVnVaR1ZtYVc1bFpGMDdYRzVjYmlBZ0lDQXZMeUJUZEdGeWRDQmllU0JtYVc1a2FXNW5JSFJvWlNCemRHRnlkR2x1WnlCc2FXNWxJRzltWm5ObGRDNWNiaUFnSUNCamIyNXpkQ0J6ZEdGeWRFOW1abk5sZENBOUlITnJhWEJPWlhkc2FXNWxjeWgwWlhoMExDQXdMQ0J6ZEdGeWRDazdYRzRnSUNBZ2FXWWdLSE4wWVhKMFQyWm1jMlYwSUQwOUlDMHhLU0J5WlhSMWNtNGdXMXdpWENJc0lIVnVaR1ZtYVc1bFpGMDdYRzVjYmlBZ0lDQmpiMjV6ZENCbGJtUlBabVp6WlhRZ1BTQnphMmx3VG1WM2JHbHVaWE1vZEdWNGRDd2djM1JoY25SUFptWnpaWFFzSUdWdVpDQXRJSE4wWVhKMEtUdGNiaUFnSUNCcFppQW9aVzVrVDJabWMyVjBJRDA5SUMweEtTQnlaWFIxY200Z1czUmxlSFF1YzNWaWMzUnlhVzVuS0hOMFlYSjBUMlptYzJWMEtTd2dleUJ6ZEdGeWREb2djM1JoY25SUFptWnpaWFFzSUdWdVpEb2dkR1Y0ZEM1c1pXNW5kR2dnZlYwN1hHNGdJQ0FnWld4elpTQnlaWFIxY200Z1czUmxlSFF1YzNWaWMzUnlhVzVuS0hOMFlYSjBUMlptYzJWMExDQmxibVJQWm1aelpYUWdMU0F4S1N3Z2V5QnpkR0Z5ZERvZ2MzUmhjblJQWm1aelpYUXNJR1Z1WkRvZ1pXNWtUMlptYzJWMElDMGdNU0I5WFR0Y2JuMWNibHh1THlvcUlFVjRkSEpoWTNRZ2RHaGxJR3hwYm1WeklHbHVJSFJvWlNCeVlXNW5aU0JiYzNSaGNuUXNJR1Z1WkNrdUlGTjBZWEowSUdseklHbHVZMngxYzJsMlpTd2daVzVrSUdseklHVjRZMngxYzJsMlpTNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJzYVc1bFVtRnVaMlVvZEdWNGREb2djM1J5YVc1bkxDQnpkR0Z5ZERvZ2JuVnRZbVZ5TENCbGJtUTZJRzUxYldKbGNpazZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUd4cGJtVlRjR0Z1S0hSbGVIUXNJSE4wWVhKMExDQmxibVFwV3pCZE8xeHVmVnh1WEc0dktpb2dVMnRwY0NCN1kyOTFiblI5SUhSdmRHRnNJRzVsZDJ4cGJtVnpMQ0J5WlhSMWNtNXBibWNnZEdobElITjBZWEowSUc5bUlIUm9aU0JzYVc1bElIdGpiM1Z1ZEgwZ2JHbHVaWE1nWVdaMFpYSWdkR2hsSUdOMWNuSmxiblFnYkdsdVpTNGdTV1lnWTI5MWJuUWdhWE1nTUN3Z2RHaGxJR2x1YVhScFlXd2diMlptYzJWMElHbHpJSEpsZEhWeWJtVmtMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOcmFYQk9aWGRzYVc1bGN5aDBaWGgwT2lCemRISnBibWNzSUhOMFlYSjBPaUJ1ZFcxaVpYSXNJR052ZFc1ME9pQnVkVzFpWlhJcE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUdsbUlDaGpiM1Z1ZENBOVBTQXdLU0J5WlhSMWNtNGdjM1JoY25RN1hHNWNiaUFnSUNCc1pYUWdjRzl6YVhScGIyNGdQU0J6ZEdGeWREdGNiaUFnSUNCM2FHbHNaU0FvWTI5MWJuUWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lIQnZjMmwwYVc5dUlEMGdkR1Y0ZEM1cGJtUmxlRTltS0Z3aVhGeHVYQ0lzSUhCdmMybDBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEJ2YzJsMGFXOXVJRDA5SUMweEtTQnlaWFIxY200Z0xURTdYRzVjYmlBZ0lDQWdJQ0FnWTI5MWJuUXRMVHRjYmlBZ0lDQWdJQ0FnY0c5emFYUnBiMjRnS3owZ01UdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY0c5emFYUnBiMjQ3WEc1OVhHNGlMQ0FpWlhod2IzSjBJR1JsWm1GMWJIUWdLQ2tnUFQ0Z2UxeHVYSFF2THlCb2RIUndjem92TDIxMGFITXVZbVV2WlcxdmFtbGNibHgwY21WMGRYSnVJQzliSXlvd0xUbGRYRngxUmtVd1JqOWNYSFV5TUVVemZGdGNYSGhCT1Z4Y2VFRkZYRngxTWpBelExeGNkVEl3TkRsY1hIVXlNVEl5WEZ4MU1qRXpPVnhjZFRJeE9UUXRYRngxTWpFNU9WeGNkVEl4UVRsY1hIVXlNVUZCWEZ4MU1qTXhRVnhjZFRJek1VSmNYSFV5TXpJNFhGeDFNak5EUmx4Y2RUSXpSVVF0WEZ4MU1qTkZSbHhjZFRJelJqRmNYSFV5TTBZeVhGeDFNak5HT0MxY1hIVXlNMFpCWEZ4MU1qUkRNbHhjZFRJMVFVRmNYSFV5TlVGQ1hGeDFNalZDTmx4Y2RUSTFRekJjWEhVeU5VWkNYRngxTWpWR1ExeGNkVEkxUmtWY1hIVXlOakF3TFZ4Y2RUSTJNRFJjWEhVeU5qQkZYRngxTWpZeE1WeGNkVEkyTVRSY1hIVXlOakUxWEZ4MU1qWXhPRnhjZFRJMk1qQmNYSFV5TmpJeVhGeDFNall5TTF4Y2RUSTJNalpjWEhVeU5qSkJYRngxTWpZeVJWeGNkVEkyTWtaY1hIVXlOak00TFZ4Y2RUSTJNMEZjWEhVeU5qUXdYRngxTWpZME1seGNkVEkyTkRndFhGeDFNalkxTTF4Y2RUSTJOVVpjWEhVeU5qWXdYRngxTWpZMk0xeGNkVEkyTmpWY1hIVXlOalkyWEZ4MU1qWTJPRnhjZFRJMk4wSmNYSFV5TmpkRlhGeDFNalkzUmx4Y2RUSTJPVEpjWEhVeU5qazBMVnhjZFRJMk9UZGNYSFV5TmprNVhGeDFNalk1UWx4Y2RUSTJPVU5jWEhVeU5rRXdYRngxTWpaQk4xeGNkVEkyUVVGY1hIVXlOa0l3WEZ4MU1qWkNNVnhjZFRJMlFrUmNYSFV5TmtKRlhGeDFNalpETkZ4Y2RUSTJRemhjWEhVeU5rTkdYRngxTWpaRU1WeGNkVEkyUlRsY1hIVXlOa1l3TFZ4Y2RUSTJSalZjWEhVeU5rWTNYRngxTWpaR09GeGNkVEkyUmtGY1hIVXlOekF5WEZ4MU1qY3dPRnhjZFRJM01EbGNYSFV5TnpCR1hGeDFNamN4TWx4Y2RUSTNNVFJjWEhVeU56RTJYRngxTWpjeFJGeGNkVEkzTWpGY1hIVXlOek16WEZ4MU1qY3pORnhjZFRJM05EUmNYSFV5TnpRM1hGeDFNamMxTjF4Y2RUSTNOak5jWEhVeU4wRXhYRngxTWprek5GeGNkVEk1TXpWY1hIVXlRakExTFZ4Y2RUSkNNRGRjWEhVeVFqRkNYRngxTWtJeFExeGNkVEpDTlRWY1hIVXpNRE13WEZ4MU16QXpSRnhjZFRNeU9UZGNYSFV6TWprNVhWeGNkVVpGTUVZL2ZGdGNYSFV5TmpGRVhGeDFNamN3UTF4Y2RUSTNNRVJkS0Q4NlhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkZkZ4Y2RVWkZNRVlwUDN4YlhGeDFNamN3UVZ4Y2RUSTNNRUpkS0Q4NlhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkS1Q5OFcxeGNkVEl6UlRrdFhGeDFNak5GUTF4Y2RUSXpSakJjWEhVeU0wWXpYRngxTWpWR1JGeGNkVEkyT1ROY1hIVXlOa0V4WEZ4MU1qWkJRbHhjZFRJMlF6VmNYSFV5TmtORlhGeDFNalpFTkZ4Y2RUSTJSVUZjWEhVeU5rWkVYRngxTWpjd05WeGNkVEkzTWpoY1hIVXlOelJEWEZ4MU1qYzBSVnhjZFRJM05UTXRYRngxTWpjMU5WeGNkVEkzT1RVdFhGeDFNamM1TjF4Y2RUSTNRakJjWEhVeU4wSkdYRngxTWtJMU1GMThYRngxTWpaRU0xeGNkVVpGTUVZL0tEODZYRngxTWpBd1JGeGNkVVE0TTBSY1hIVkVRMEUxS1Q5OFhGeDFNalpHT1NnL09seGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFh4Y1hIVkdSVEJHS1Q4b1B6cGNYSFV5TURCRVcxeGNkVEkyTkRCY1hIVXlOalF5WFZ4Y2RVWkZNRVkvS1Q5OFhGeDFNamMyTkZ4Y2RVWkZNRVkvS0Q4NlhGeDFNakF3UkNnL09seGNkVVE0TTBSY1hIVkVSREkxZkZ4Y2RVUTRNMFZjWEhWRVJUYzVLU2svZkZ4Y2RVUTRNME1vUHpwYlhGeDFSRU13TkZ4Y2RVUkVOekJjWEhWRVJEY3hYRngxUkVRM1JWeGNkVVJFTjBaY1hIVkVSVEF5WEZ4MVJFVXpOMXhjZFVSR01qRmNYSFZFUmpJMExWeGNkVVJHTWtOY1hIVkVSak0yWEZ4MVJFWTNSRnhjZFVSR09UWmNYSFZFUmprM1hGeDFSRVk1T1MxY1hIVkVSamxDWEZ4MVJFWTVSVnhjZFVSR09VWmNYSFZFUmtORVhGeDFSRVpEUlZ4Y2RVUkdSRFF0WEZ4MVJFWkVSbHhjZFVSR1JqVmNYSFZFUmtZM1hWeGNkVVpGTUVZL2ZGdGNYSFZFUmpnMVhGeDFSRVpETWx4Y2RVUkdRemRkS0Q4NlhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkS1Q5OFcxeGNkVVJHUXpSY1hIVkVSa05CWFNnL09seGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFNrL0tEODZYRngxTWpBd1JGdGNYSFV5TmpRd1hGeDFNalkwTWwxY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUmtOQ1hGeDFSRVpEUTEwb1B6cGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwxOFhGeDFSa1V3UmlrL0tEODZYRngxTWpBd1JGdGNYSFV5TmpRd1hGeDFNalkwTWwxY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUTBOR1hGeDFSRVE0UlZ4Y2RVUkVPVEV0WEZ4MVJFUTVRVnhjZFVSRk1ERmNYSFZFUlRGQlhGeDFSRVV5Umx4Y2RVUkZNekl0WEZ4MVJFVXpObHhjZFVSRk16Z3RYRngxUkVVelFWeGNkVVJGTlRCY1hIVkVSVFV4WEZ4MVJFWXdNQzFjWEhWRVJqSXdYRngxUkVZeVJDMWNYSFZFUmpNMVhGeDFSRVl6TnkxY1hIVkVSalF6WEZ4MVJFWTBOUzFjWEhWRVJqUkJYRngxUkVZMFF5MWNYSFZFUmpkRFhGeDFSRVkzUlMxY1hIVkVSamcwWEZ4MVJFWTROaTFjWEhWRVJqa3pYRngxUkVaQk1DMWNYSFZFUmtNeFhGeDFSRVpETlZ4Y2RVUkdRelpjWEhWRVJrTTRYRngxUkVaRE9WeGNkVVJHUTBZdFhGeDFSRVpFTTF4Y2RVUkdSVEF0WEZ4MVJFWkdNRnhjZFVSR1JqZ3RYRngxUkVaR1JsMThYRngxUkVSRk5seGNkVVE0TTBOYlhGeDFSRVJGT0MxY1hIVkVSRVZEWEZ4MVJFUkZSVnhjZFVSRVJqRmNYSFZFUkVZeVhGeDFSRVJHTkZ4Y2RVUkVSall0WEZ4MVJFUkdRVnhjZFVSRVJrTmNYSFZFUkVaRVhGeDFSRVJHUmwxOFhGeDFSRVJGTjF4Y2RVUTRNME5iWEZ4MVJFUkZObHhjZFVSRVJUZGNYSFZFUkVVNUxWeGNkVVJFUlVaY1hIVkVSRVl4TFZ4Y2RVUkVSalJjWEhWRVJFWTJMVnhjZFVSRVJqbGNYSFZFUkVaQ1hGeDFSRVJHUTF4Y2RVUkVSa1ZjWEhWRVJFWkdYWHhjWEhWRVJFVTRYRngxUkRnelExdGNYSFZFUkVVMlhGeDFSRVJGT0Z4Y2RVUkVSVGxjWEhWRVJFVkNMVnhjZFVSRVJVVmNYSFZFUkVZd0xWeGNkVVJFUmpkY1hIVkVSRVpCTFZ4Y2RVUkVSa1pkZkZ4Y2RVUkVSVGxjWEhWRU9ETkRXMXhjZFVSRVJVRmNYSFZFUkVWRFhGeDFSRVJGUmx4Y2RVUkVSakJjWEhWRVJFWXlYRngxUkVSR05GeGNkVVJFUmtaZGZGeGNkVVJFUlVGY1hIVkVPRE5EVzF4Y2RVUkVSVFpjWEhWRVJFVTRYRngxUkVSRlFWeGNkVVJFUlVOY1hIVkVSRVZFWEZ4MVJFUkdOeTFjWEhWRVJFWkJYWHhjWEhWRVJFVkNYRngxUkRnelExdGNYSFZFUkVWRkxWeGNkVVJFUmpCY1hIVkVSRVl5WEZ4MVJFUkdORnhjZFVSRVJqZGRmRnhjZFVSRVJVTmNYSFZFT0RORFcxeGNkVVJFUlRaY1hIVkVSRVUzWEZ4MVJFUkZPUzFjWEhWRVJFVkZYRngxUkVSR01TMWNYSFZFUkVZelhGeDFSRVJHTlMxY1hIVkVSRVpCWEZ4MVJFUkdRMXhjZFVSRVJrVmRmRnhjZFVSRVJVUmNYSFZFT0RORFcxeGNkVVJFUmpCY1hIVkVSRVl5WEZ4MVJFUkdNMXhjZFVSRVJqZGNYSFZFUkVZNVhGeDFSRVJHUVYxOFhGeDFSRVJGUlZ4Y2RVUTRNME5iWEZ4MVJFUkZPQzFjWEhWRVJFVkJYRngxUkVSR01TMWNYSFZFUkVZMFhGeDFSRVJHTmkxY1hIVkVSRVk1WFh4Y1hIVkVSRVZHWEZ4MVJEZ3pRMXRjWEhWRVJFVkJYRngxUkVSR01seGNkVVJFUmpSY1hIVkVSRVkxWFh4Y1hIVkVSRVl3WEZ4MVJEZ3pRMXRjWEhWRVJFVkJYRngxUkVSRlF5MWNYSFZFUkVWRlhGeDFSRVJHTWx4Y2RVUkVSak5jWEhWRVJFWTFYRngxUkVSR04xeGNkVVJFUmtOY1hIVkVSRVpGWEZ4MVJFUkdSbDE4WEZ4MVJFUkdNVnhjZFVRNE0wTmJYRngxUkVSRk5pMWNYSFZFUkVVNFhGeDFSRVJGUlZ4Y2RVUkVSakJjWEhWRVJFWTNMVnhjZFVSRVJrSmNYSFZFUkVaRlhYeGNYSFZFUkVZeVhGeDFSRGd6UTF0Y1hIVkVSRVUyWEZ4MVJFUkZPQzFjWEhWRVJFVkVYRngxUkVSR01DMWNYSFZFUkVaR1hYeGNYSFZFUkVZelhGeDFSRGd6UTF0Y1hIVkVSRVUyWEZ4MVJFUkZPRnhjZFVSRVJVRXRYRngxUkVSRlExeGNkVVJFUlVWY1hIVkVSRVl4WEZ4MVJFUkdORnhjZFVSRVJqVmNYSFZFUkVZM1hGeDFSRVJHUVZ4Y2RVUkVSa1pkZkZ4Y2RVUkVSalJjWEhWRU9ETkRYRngxUkVSR01ueGNYSFZFUkVZMVhGeDFSRGd6UTF0Y1hIVkVSRVUyWEZ4MVJFUkZRUzFjWEhWRVJFVkVYRngxUkVSR01DMWNYSFZFUkVZelhGeDFSRVJHTnkxY1hIVkVSRVk1WEZ4MVJFUkdRMXhjZFVSRVJrVmRmRnhjZFVSRVJqWmNYSFZFT0RORFhGeDFSRVJGTm54Y1hIVkVSRVkzWEZ4MVJEZ3pRMXRjWEhWRVJFVkJYRngxUkVSR05GeGNkVVJFUmpoY1hIVkVSRVpCWEZ4MVJFUkdRMTE4WEZ4MVJFUkdPRnhjZFVRNE0wTmJYRngxUkVSRk5pMWNYSFZFUkVWQlhGeDFSRVJGUXkxY1hIVkVSRVkwWEZ4MVJFUkdOeTFjWEhWRVJFWTVYRngxUkVSR1FseGNkVVJFUmtRdFhGeDFSRVJHUmwxOFhGeDFSRVJHT1Z4Y2RVUTRNME5iWEZ4MVJFUkZObHhjZFVSRVJUaGNYSFZFUkVVNVhGeDFSRVJGUWkxY1hIVkVSRVZFWEZ4MVJFUkZSaTFjWEhWRVJFWTBYRngxUkVSR04xeGNkVVJFUmpsY1hIVkVSRVpDWEZ4MVJFUkdRMXhjZFVSRVJrWmRmRnhjZFVSRVJrRmNYSFZFT0RORFcxeGNkVVJFUlRaY1hIVkVSRVZEWEZ4MVJFUkdNbHhjZFVSRVJqTmNYSFZFUkVZNFhGeDFSRVJHUlZ4Y2RVUkVSa1pkZkZ4Y2RVUkVSa0pjWEhWRU9ETkRXMXhjZFVSRVJUWmNYSFZFUkVVNFhGeDFSRVJGUVZ4Y2RVUkVSVU5jWEhWRVJFVkZYRngxUkVSR00xeGNkVVJFUmtGZGZGeGNkVVJFUmtOY1hIVkVPRE5EVzF4Y2RVUkVSVUpjWEhWRVJFWTRYWHhjWEhWRVJFWkVYRngxUkRnelExeGNkVVJFUmpCOFhGeDFSRVJHUlZ4Y2RVUTRNME5iWEZ4MVJFUkZRVnhjZFVSRVJqbGRmRnhjZFVSRVJrWmNYSFZFT0RORFcxeGNkVVJFUlRaY1hIVkVSRVl5WEZ4MVJFUkdRMTE4WEZ4MVJFWTBOQ2cvT2x4Y2RUSXdNRVJjWEhWRU9ETkVYRngxUkVaRlFpay9mRnhjZFVSR05FSW9QenBjWEhVeU1EQkVYRngxUkRnelJGeGNkVVJHUlRrcFAzeGNYSFZFUmtNektEODZYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZEtUOG9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJOREJjWEhVeU5qUXlYVnhjZFVaRk1FWS9LRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnhjZFRJM1FURmNYSFZHUlRCR1B5a3BQM3hjWEhWRVJrWXpYRngxUmtVd1JqOG9QenBjWEhVeU1EQkVLRDg2WEZ4MU1qWkJOMXhjZFVaRk1FWS9mRnhjZFVRNE0wTmNYSFZFUmpBNEtTay9mRnhjZFVSR1JqUW9QenBjWEhVeU1EQkVYRngxTWpZeU1GeGNkVVpGTUVZL2ZGeGNkVVJDTkRCY1hIVkVRelkzWEZ4MVJFSTBNRnhjZFVSRE5qSmNYSFZFUWpRd0tEODZYRngxUkVNMk5WeGNkVVJDTkRCY1hIVkVRelpGWEZ4MVJFSTBNRnhjZFVSRE5qZDhYRngxUkVNM00xeGNkVVJDTkRCY1hIVkVRell6WEZ4MVJFSTBNRnhjZFVSRE56UjhYRngxUkVNM04xeGNkVVJDTkRCY1hIVkVRelpEWEZ4MVJFSTBNRnhjZFVSRE56TXBYRngxUkVJME1GeGNkVVJETjBZcFB5bDhYRngxUkRnelJDZy9PbHRjWEhWRVF6TkdYRngxUkVOR1JGeGNkVVJFTkRsY1hIVkVSRFJCWEZ4MVJFUTJSbHhjZFVSRU56QmNYSFZFUkRjelhGeDFSRVEzTmkxY1hIVkVSRGM1WEZ4MVJFUTROMXhjZFVSRU9FRXRYRngxUkVRNFJGeGNkVVJFUVRWY1hIVkVSRUU0WEZ4MVJFUkNNVnhjZFVSRVFqSmNYSFZFUkVKRFhGeDFSRVJETWkxY1hIVkVSRU0wWEZ4MVJFUkVNUzFjWEhWRVJFUXpYRngxUkVSRVF5MWNYSFZFUkVSRlhGeDFSRVJGTVZ4Y2RVUkVSVE5jWEhWRVJFVTRYRngxUkVSRlJseGNkVVJFUmpOY1hIVkVSRVpCWEZ4MVJFVkRRbHhjZFVSRlEwUXRYRngxUkVWRFJseGNkVVJGUlRBdFhGeDFSRVZGTlZ4Y2RVUkZSVGxjWEhWRVJVWXdYRngxUkVWR00xMWNYSFZHUlRCR1AzeGJYRngxUkVNME1seGNkVVJETkROY1hIVkVRelEyTFZ4Y2RVUkROVEJjWEhWRVF6WTJYRngxUkVNMk4xeGNkVVJETmtJdFhGeDFSRU0yUkZ4Y2RVUkROekpjWEhWRVF6YzBMVnhjZFVSRE56WmNYSFZFUXpjNFhGeDFSRU0zUTF4Y2RVUkRPRE5jWEhWRVF6ZzFYRngxUkVNNFJseGNkVVJET1RGY1hIVkVRMEZCWEZ4MVJFUTNRVnhjZFVSRU9UVmNYSFZFUkRrMlhGeDFSRVUwUTF4Y2RVUkZORVpjWEhWRVJVTXdYRngxUkVWRFExMG9QenBjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMHBQM3hiWEZ4MVJFTTJSVnhjZFVSRE56QmNYSFZFUXpjeFhGeDFSRU0zTTF4Y2RVUkROemRjWEhWRVF6Z3hYRngxUkVNNE1seGNkVVJET0RaY1hIVkVRemczWEZ4MVJFVTBOUzFjWEhWRVJUUTNYRngxUkVVMFFseGNkVVJGTkVSY1hIVkVSVFJGWEZ4MVJFVkJNMXhjZFVSRlFqUmNYSFZFUlVJMVhTZy9PbHhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaR1hTay9LRDg2WEZ4MU1qQXdSRnRjWEhVeU5qUXdYRngxTWpZME1sMWNYSFZHUlRCR1B5ay9mRnRjWEhWRVJEYzBYRngxUkVRNU1GMG9QenBjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMThYRngxUmtVd1Jpay9mRnRjWEhWRVF6QXdMVnhjZFVSRE1EZGNYSFZFUXpBNUxWeGNkVVJETVRSY1hIVkVRekUyTFZ4Y2RVUkRNalZjWEhWRVF6STNMVnhjZFVSRE0wRmNYSFZFUXpORExWeGNkVVJETTBWY1hIVkVRelF3WEZ4MVJFTTBORnhjZFVSRE5EVmNYSFZFUXpVeExWeGNkVVJETmpWY1hIVkVRelpCWEZ4MVJFTTNPUzFjWEhWRVF6ZENYRngxUkVNM1JDMWNYSFZFUXpnd1hGeDFSRU00TkZ4Y2RVUkRPRGd0WEZ4MVJFTTRSVnhjZFVSRE9UQmNYSFZFUXpreUxWeGNkVVJEUVRsY1hIVkVRMEZDTFZ4Y2RVUkRSa05jWEhWRVEwWkdMVnhjZFVSRU0wUmNYSFZFUkRSQ0xWeGNkVVJFTkVWY1hIVkVSRFV3TFZ4Y2RVUkVOamRjWEhWRVJFRTBYRngxUkVSR1FpMWNYSFZFUlRKRVhGeDFSRVV5UmkxY1hIVkVSVE0wWEZ4MVJFVXpOeTFjWEhWRVJUUXhYRngxUkVVME0xeGNkVVJGTkRSY1hIVkVSVFE0TFZ4Y2RVUkZORUZjWEhWRVJUZ3dMVnhjZFVSRlFUSmNYSFZFUlVFMExWeGNkVVJGUWpOY1hIVkVSVUkzTFZ4Y2RVUkZRa1pjWEhWRVJVTXhMVnhjZFVSRlF6VmNYSFZFUlVRd0xWeGNkVVJGUkRKY1hIVkVSVVExTFZ4Y2RVUkZSRGRjWEhWRVJVUkRMVnhjZFVSRlJFWmNYSFZFUlVWQ1hGeDFSRVZGUTF4Y2RVUkZSalF0WEZ4MVJFVkdRMXhjZFVSR1JUQXRYRngxUkVaRlFseGNkVVJHUmpCZGZGeGNkVVJETURnb1B6cGNYSFV5TURCRVhGeDFNa0l4UWlrL2ZGeGNkVVJETVRVb1B6cGNYSFV5TURCRVhGeDFSRGd6UlZ4Y2RVUkVRa0VwUDN4Y1hIVkVRekkyS0Q4NlhGeDFNakF3UkNnL09seGNkVEpDTVVKOFhGeDFSRGd6UkZ4Y2RVUkVNalVwS1Q5OFhGeDFSRU16UWlnL09seGNkVEl3TUVSY1hIVXlOelEwWEZ4MVJrVXdSajhwUDN4Y1hIVkVRelF4WEZ4MVJrVXdSajhvUHpwY1hIVXlNREJFWEZ4MVJEZ3pSRnhjZFVSRVJUaGNYSFZHUlRCR1B5ay9mRnhjZFVSRE5qZ29QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJDay9YRngxUkVNMk9IeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09UTmNYSFZFUmtFMFhGeDFSRVpCT0Z4Y2RVUkdSVUpjWEhWRVJrVkVYWHhjWEhWRU9ETkVLRDg2VzF4Y2RVUkROamhjWEhWRVF6WTVYVnhjZFRJd01FUmNYSFZFT0RORUtEODZYRngxUkVNMk5pZy9PbHhjZFRJd01FUmNYSFZFT0RORVhGeDFSRU0yTmlrL2ZGeGNkVVJETmpjb1B6cGNYSFV5TURCRVhGeDFSRGd6UkZ0Y1hIVkVRelkyWEZ4MVJFTTJOMTBwUHlsOFcxeGNkVVJEUWtKY1hIVkVRMEpEWEZ4MVJFUXlOMXhjZFVSRU1rTmNYSFZFUlRnd1hGeDFSRVU1TWwxOFhGeDFSRU0yTmlnL09seGNkVEl3TUVSY1hIVkVPRE5FWEZ4MVJFTTJOaWsvZkZ4Y2RVUkROamNvUHpwY1hIVXlNREJFWEZ4MVJEZ3pSRnRjWEhWRVF6WTJYRngxUkVNMk4xMHBQeWw4WEZ4MVJEZ3pSU2cvT2x0Y1hIVkVSRUZHWEZ4MVJFUkNRMXhjZFVSRVFrUmRLRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnRjWEhWRVJFSXdMVnhjZFVSRVFqTmRLU2w4WEZ4MVJEZ3pReWcvT2x4Y2RVUkdSa0lvUHpwY1hIVXlNREJFS0Q4NlcxeGNkVEkyT1RWY1hIVXlOamsyWEZ4MU1qY3dPRjFjWEhWR1JUQkdQM3hjWEhVeU56WTBYRngxUmtVd1JqOWNYSFV5TURCRVhGeDFSRGd6UkNnL09seGNkVVJET0VKY1hIVXlNREJFWEZ4MVJEZ3pSQ2svWEZ4MVJFTTJPRnhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaR1hYeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09UTmNYSFZFUmtFMFhGeDFSRVpCT0Z4Y2RVUkdSVUpjWEhWRVJrVkVYWHhjWEhWRU9ETkVXMXhjZFVSRFFrSmNYSFZFUTBKRFhGeDFSRVF5TjF4Y2RVUkVNa05jWEhWRVJUZ3dYRngxUkVVNU1sMThYRngxUkRnelJTZy9PbHRjWEhWRVJFRkdYRngxUkVSQ1ExeGNkVVJFUWtSZEtEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkVJd0xWeGNkVVJFUWpOZGZGeGNkVVJFTVVSY1hIVXlNREJFWEZ4MVJEZ3pSRnhjZFVSRE5qaGNYSFZFT0RORFcxeGNkVVJHUmtNdFhGeDFSRVpHUmwwcEtTay9mRnhjZFVSR1JrTW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJDay9YRngxUkVNMk9GeGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFh4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORVcxeGNkVVJEUWtKY1hIVkVRMEpEWEZ4MVJFUXlOMXhjZFVSRU1rTmNYSFZFUlRnd1hGeDFSRVU1TWwxOFhGeDFSRGd6UlNnL09sdGNYSFZFUkVGR1hGeDFSRVJDUTF4Y2RVUkVRa1JkS0Q4NlhGeDFNakF3UkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVSRUl3TFZ4Y2RVUkVRak5kZkZ4Y2RVUkVNVVJjWEhVeU1EQkVYRngxUkRnelJGeGNkVVJETmpoY1hIVkVPRE5EVzF4Y2RVUkdSa0pjWEhWRVJrWkVMVnhjZFVSR1JrWmRLU2twUDN4Y1hIVkVSa1pFS0Q4NlhGeDFNakF3UkNnL09sdGNYSFV5TmprMVhGeDFNalk1Tmx4Y2RUSTNNRGhkWEZ4MVJrVXdSajk4WEZ4MU1qYzJORnhjZFVaRk1FWS9YRngxTWpBd1JGeGNkVVE0TTBRb1B6cGNYSFZFUXpoQ1hGeDFNakF3UkZ4Y2RVUTRNMFFwUDF4Y2RVUkROamhjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMThYRngxUkRnelExdGNYSFZFUmpORlhGeDFSRVkzTTF4Y2RVUkdOME5jWEhWRVJqa3pYRngxUkVaQk5GeGNkVVJHUVRoY1hIVkVSa1ZDWEZ4MVJFWkZSRjE4WEZ4MVJEZ3pSRnRjWEhWRVEwSkNYRngxUkVOQ1ExeGNkVVJFTWpkY1hIVkVSREpEWEZ4MVJFVTRNRnhjZFVSRk9USmRmRnhjZFVRNE0wVW9QenBiWEZ4MVJFUkJSbHhjZFVSRVFrTmNYSFZFUkVKRVhTZy9PbHhjZFRJd01FUmNYSFV5TjBFeFhGeDFSa1V3Umo4cFAzeGJYRngxUkVSQ01DMWNYSFZFUkVJelhYeGNYSFZFUkRGRVhGeDFNakF3UkZ4Y2RVUTRNMFJjWEhWRVF6WTRYRngxUkRnelExdGNYSFZFUmtaQ1hGeDFSRVpHUTF4Y2RVUkdSa1ZjWEhWRVJrWkdYU2twS1Q5OFhGeDFSRVpHUlNnL09seGNkVEl3TUVRb1B6cGJYRngxTWpZNU5WeGNkVEkyT1RaY1hIVXlOekE0WFZ4Y2RVWkZNRVkvZkZ4Y2RUSTNOalJjWEhWR1JUQkdQMXhjZFRJd01FUmNYSFZFT0RORUtEODZYRngxUkVNNFFseGNkVEl3TUVSY1hIVkVPRE5FS1Q5Y1hIVkVRelk0WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRmRnhjZFVRNE0wTmJYRngxUkVZelJWeGNkVVJHTnpOY1hIVkVSamREWEZ4MVJFWTVNMXhjZFVSR1FUUmNYSFZFUmtFNFhGeDFSRVpGUWx4Y2RVUkdSVVJkZkZ4Y2RVUTRNMFJiWEZ4MVJFTkNRbHhjZFVSRFFrTmNYSFZFUkRJM1hGeDFSRVF5UTF4Y2RVUkZPREJjWEhWRVJUa3lYWHhjWEhWRU9ETkZLRDg2VzF4Y2RVUkVRVVpjWEhWRVJFSkRYRngxUkVSQ1JGMG9QenBjWEhVeU1EQkVYRngxTWpkQk1WeGNkVVpGTUVZL0tUOThXMXhjZFVSRVFqQXRYRngxUkVSQ00xMThYRngxUkVReFJGeGNkVEl3TUVSY1hIVkVPRE5FWEZ4MVJFTTJPRnhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaRVhGeDFSRVpHUmwwcEtTay9mRnhjZFVSR1JrWW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJDay9YRngxUkVNMk9GeGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFh4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORVcxeGNkVVJEUWtKY1hIVkVRMEpEWEZ4MVJFUXlOMXhjZFVSRU1rTmNYSFZFUlRnd1hGeDFSRVU1TWwxOFhGeDFSRGd6UlNnL09sdGNYSFZFUkVGR1hGeDFSRVJDUTF4Y2RVUkVRa1JkS0Q4NlhGeDFNakF3UkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVSRUl3TFZ4Y2RVUkVRak5kZkZ4Y2RVUkVNVVJjWEhVeU1EQkVYRngxUkRnelJGeGNkVVJETmpoY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSVjBwS1NrL0tTay9mRnhjZFVSRE5qa29QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJDay9XMXhjZFVSRE5qaGNYSFZFUXpZNVhYeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09UTmNYSFZFUmtFMFhGeDFSRVpCT0Z4Y2RVUkdSVUpjWEhWRVJrVkVYWHhjWEhWRU9ETkVLRDg2VzF4Y2RVUkRRa0pjWEhWRVEwSkRYRngxUkVReU4xeGNkVVJFTWtOY1hIVkVSVGd3WEZ4MVJFVTVNbDE4WEZ4MVJFTTJOaWcvT2x4Y2RUSXdNRVJjWEhWRU9ETkVYRngxUkVNMk5pay9mRnhjZFVSRE5qY29QenBjWEhVeU1EQkVYRngxUkRnelJGdGNYSFZFUXpZMlhGeDFSRU0yTjEwcFAzeGNYSFZFUXpZNVhGeDFNakF3UkZ4Y2RVUTRNMFFvUHpwY1hIVkVRelkyS0Q4NlhGeDFNakF3UkZ4Y2RVUTRNMFJjWEhWRVF6WTJLVDk4WEZ4MVJFTTJOeWcvT2x4Y2RUSXdNRVJjWEhWRU9ETkVXMXhjZFVSRE5qWmNYSFZFUXpZM1hTay9LU2w4WEZ4MVJEZ3pSU2cvT2x0Y1hIVkVSRUZHWEZ4MVJFUkNRMXhjZFVSRVFrUmRLRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnRjWEhWRVJFSXdMVnhjZFVSRVFqTmRLU2w4WEZ4MVJEZ3pReWcvT2x4Y2RVUkdSa0lvUHpwY1hIVXlNREJFS0Q4NlcxeGNkVEkyT1RWY1hIVXlOamsyWEZ4MU1qY3dPRjFjWEhWR1JUQkdQM3hjWEhVeU56WTBYRngxUmtVd1JqOWNYSFV5TURCRVhGeDFSRGd6UkNnL09sdGNYSFZFUXpZNFhGeDFSRU0yT1YxOFhGeDFSRU00UWx4Y2RUSXdNRVJjWEhWRU9ETkVXMXhjZFVSRE5qaGNYSFZFUXpZNVhTbGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwxOFhGeDFSRGd6UTF0Y1hIVkVSak5GWEZ4MVJFWTNNMXhjZFVSR04wTmNYSFZFUmprelhGeDFSRVpCTkZ4Y2RVUkdRVGhjWEhWRVJrVkNYRngxUkVaRlJGMThYRngxUkRnelJGdGNYSFZFUTBKQ1hGeDFSRU5DUTF4Y2RVUkVNamRjWEhWRVJESkRYRngxUkVVNE1GeGNkVVJGT1RKZGZGeGNkVVE0TTBVb1B6cGJYRngxUkVSQlJseGNkVVJFUWtOY1hIVkVSRUpFWFNnL09seGNkVEl3TUVSY1hIVXlOMEV4WEZ4MVJrVXdSajhwUDN4YlhGeDFSRVJDTUMxY1hIVkVSRUl6WFh4Y1hIVkVSREZFWEZ4MU1qQXdSRnhjZFVRNE0wUmJYRngxUkVNMk9GeGNkVVJETmpsZFhGeDFSRGd6UTF0Y1hIVkVSa1pETFZ4Y2RVUkdSa1pkS1NrcFAzeGNYSFZFUmtaREtEODZYRngxTWpBd1JDZy9PbHRjWEhVeU5qazFYRngxTWpZNU5seGNkVEkzTURoZFhGeDFSa1V3Umo5OFhGeDFNamMyTkZ4Y2RVWkZNRVkvWEZ4MU1qQXdSRnhjZFVRNE0wUW9QenBiWEZ4MVJFTTJPRnhjZFVSRE5qbGRmRnhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkZ0Y1hIVkVRelk0WEZ4MVJFTTJPVjBwWEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRmRnhjZFVRNE0wTmJYRngxUkVZelJWeGNkVVJHTnpOY1hIVkVSamREWEZ4MVJFWTVNMXhjZFVSR1FUUmNYSFZFUmtFNFhGeDFSRVpGUWx4Y2RVUkdSVVJkZkZ4Y2RVUTRNMFJiWEZ4MVJFTkNRbHhjZFVSRFFrTmNYSFZFUkRJM1hGeDFSRVF5UTF4Y2RVUkZPREJjWEhWRVJUa3lYWHhjWEhWRU9ETkZLRDg2VzF4Y2RVUkVRVVpjWEhWRVJFSkRYRngxUkVSQ1JGMG9QenBjWEhVeU1EQkVYRngxTWpkQk1WeGNkVVpGTUVZL0tUOThXMXhjZFVSRVFqQXRYRngxUkVSQ00xMThYRngxUkVReFJGeGNkVEl3TUVSY1hIVkVPRE5FVzF4Y2RVUkROamhjWEhWRVF6WTVYVnhjZFVRNE0wTmJYRngxUkVaR1FseGNkVVJHUmtRdFhGeDFSRVpHUmwwcEtTay9mRnhjZFVSR1JrUW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x0Y1hIVkVRelk0WEZ4MVJFTTJPVjE4WEZ4MVJFTTRRbHhjZFRJd01FUmNYSFZFT0RORVcxeGNkVVJETmpoY1hIVkVRelk1WFNsY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSbDE4WEZ4MVJEZ3pRMXRjWEhWRVJqTkZYRngxUkVZM00xeGNkVVJHTjBOY1hIVkVSamt6WEZ4MVJFWkJORnhjZFVSR1FUaGNYSFZFUmtWQ1hGeDFSRVpGUkYxOFhGeDFSRGd6UkZ0Y1hIVkVRMEpDWEZ4MVJFTkNRMXhjZFVSRU1qZGNYSFZFUkRKRFhGeDFSRVU0TUZ4Y2RVUkZPVEpkZkZ4Y2RVUTRNMFVvUHpwYlhGeDFSRVJCUmx4Y2RVUkVRa05jWEhWRVJFSkVYU2cvT2x4Y2RUSXdNRVJjWEhVeU4wRXhYRngxUmtVd1JqOHBQM3hiWEZ4MVJFUkNNQzFjWEhWRVJFSXpYWHhjWEhWRVJERkVYRngxTWpBd1JGeGNkVVE0TTBSYlhGeDFSRU0yT0Z4Y2RVUkROamxkWEZ4MVJEZ3pRMXRjWEhWRVJrWkNYRngxUkVaR1ExeGNkVVJHUmtWY1hIVkVSa1pHWFNrcEtUOThYRngxUkVaR1JTZy9PbHhjZFRJd01FUW9QenBiWEZ4MU1qWTVOVnhjZFRJMk9UWmNYSFV5TnpBNFhWeGNkVVpGTUVZL2ZGeGNkVEkzTmpSY1hIVkdSVEJHUDF4Y2RUSXdNRVJjWEhWRU9ETkVLRDg2VzF4Y2RVUkROamhjWEhWRVF6WTVYWHhjWEhWRVF6aENYRngxTWpBd1JGeGNkVVE0TTBSYlhGeDFSRU0yT0Z4Y2RVUkROamxkS1Z4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYWHhjWEhWRU9ETkRXMXhjZFVSR00wVmNYSFZFUmpjelhGeDFSRVkzUTF4Y2RVUkdPVE5jWEhWRVJrRTBYRngxUkVaQk9GeGNkVVJHUlVKY1hIVkVSa1ZFWFh4Y1hIVkVPRE5FVzF4Y2RVUkRRa0pjWEhWRVEwSkRYRngxUkVReU4xeGNkVVJFTWtOY1hIVkVSVGd3WEZ4MVJFVTVNbDE4WEZ4MVJEZ3pSU2cvT2x0Y1hIVkVSRUZHWEZ4MVJFUkNRMXhjZFVSRVFrUmRLRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnRjWEhWRVJFSXdMVnhjZFVSRVFqTmRmRnhjZFVSRU1VUmNYSFV5TURCRVhGeDFSRGd6UkZ0Y1hIVkVRelk0WEZ4MVJFTTJPVjFjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JGeGNkVVJHUmtaZEtTa3BQM3hjWEhWRVJrWkdLRDg2WEZ4MU1qQXdSQ2cvT2x0Y1hIVXlOamsxWEZ4MU1qWTVObHhjZFRJM01EaGRYRngxUmtVd1JqOThYRngxTWpjMk5GeGNkVVpGTUVZL1hGeDFNakF3UkZ4Y2RVUTRNMFFvUHpwYlhGeDFSRU0yT0Z4Y2RVUkROamxkZkZ4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJGdGNYSFZFUXpZNFhGeDFSRU0yT1YwcFhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkZkZ4Y2RVUTRNME5iWEZ4MVJFWXpSVnhjZFVSR056TmNYSFZFUmpkRFhGeDFSRVk1TTF4Y2RVUkdRVFJjWEhWRVJrRTRYRngxUkVaRlFseGNkVVJHUlVSZGZGeGNkVVE0TTBSYlhGeDFSRU5DUWx4Y2RVUkRRa05jWEhWRVJESTNYRngxUkVReVExeGNkVVJGT0RCY1hIVkVSVGt5WFh4Y1hIVkVPRE5GS0Q4NlcxeGNkVVJFUVVaY1hIVkVSRUpEWEZ4MVJFUkNSRjBvUHpwY1hIVXlNREJFWEZ4MU1qZEJNVnhjZFVaRk1FWS9LVDk4VzF4Y2RVUkVRakF0WEZ4MVJFUkNNMTE4WEZ4MVJFUXhSRnhjZFRJd01FUmNYSFZFT0RORVcxeGNkVVJETmpoY1hIVkVRelk1WFZ4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkZYU2twS1Q4cEtUOThYRngxUkVNMlJpZy9PbHhjZFRJd01FUmJYRngxTWpZME1GeGNkVEkyTkRKZFhGeDFSa1V3Umo4cFAzeGNYSFZFUkRjMUtEODZYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZGZGeGNkVVpGTUVZcFB5Zy9PbHhjZFRJd01FUmJYRngxTWpZME1GeGNkVEkyTkRKZFhGeDFSa1V3Umo4cFAzeGNYSFZFUlRKRktEODZYRngxTWpBd1JGeGNkVVE0TTBSY1hIVkVRMEU0S1Q5OFhGeDFSRVV6TlNnL09seGNkVEl3TUVSY1hIVkVPRE5FWEZ4MVJFTkJRaWsvZkZ4Y2RVUkZNellvUHpwY1hIVXlNREJFWEZ4MVJEZ3pRMXhjZFVSR01rSmNYSFZHUlRCR1B5ay9mRnhjZFVSRk5ESW9QenBjWEhVeU1EQkVXMXhjZFRJeE9UUmNYSFV5TVRrMVhWeGNkVVpGTUVZL0tUOThYRngxUkVWQ05pZy9PbHhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaR1hTay9LRDg2WEZ4MU1qQXdSQ2cvT2x0Y1hIVXlOalF3WEZ4MU1qWTBNbDFjWEhWR1JUQkdQeWcvT2x4Y2RUSXdNRVJjWEhVeU4wRXhYRngxUmtVd1JqOHBQM3hjWEhVeU4wRXhYRngxUmtVd1JqOHBLVDhwZkZ4Y2RVUTRNMFVvUHpwYlhGeDFSRVF3UTF4Y2RVUkVNRVpjWEhWRVJERTRMVnhjZFVSRU1VWmNYSFZFUkRNd0xWeGNkVVJFTXpSY1hIVkVSRE0yWEZ4MVJFUTNOMXhjZFVSRVFqVmNYSFZFUkVJMlhGeDFSRVJDUWx4Y2RVUkVSREpjWEhWRVJFUXpYRngxUkVSRU5WeGNkVVJGUXpNdFhGeDFSRVZETlZ4Y2RVUkZSakJjWEhWRVJVWXlMVnhjZFVSRlJqaGRLRDg2WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRLVDk4VzF4Y2RVUkVNalpjWEhWRVJETTFYRngxUkVRek55MWNYSFZFUkRNNVhGeDFSRVF6UkZ4Y2RVUkVNMFZjWEhWRVJFSTRYRngxUkVSQ09WeGNkVVJFUTBSY1hIVkVSRU5HWEZ4MVJFUkVORnhjZFVSRVJEWXRYRngxUkVSRVJGMG9QenBjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMHBQeWcvT2x4Y2RUSXdNRVJiWEZ4MU1qWTBNRnhjZFRJMk5ESmRYRngxUmtVd1JqOHBQM3hiWEZ4MVJFUkVSVnhjZFVSRVJFWmRLRDg2WEZ4MU1qQXdSRnRjWEhVeU5qUXdYRngxTWpZME1sMWNYSFZHUlRCR1B5ay9mRnRjWEhWRVJEQkVYRngxUkVRd1JWeGNkVVJFTVRBdFhGeDFSRVF4TjF4Y2RVUkVNakF0WEZ4MVJFUXlOVnhjZFVSRU1qY3RYRngxUkVReVJseGNkVVJFTTBGY1hIVkVSRE5HTFZ4Y2RVUkVORFZjWEhWRVJEUTNMVnhjZFVSRU56WmNYSFZFUkRjNExWeGNkVVJFUWpSY1hIVkVSRUkzWEZ4MVJFUkNRVnhjZFVSRVFrTXRYRngxUkVSRFExeGNkVVJFUkRCY1hIVkVSRVV3TFZ4Y2RVUkVSa1pjWEhWRVJUY3dMVnhjZFVSRk4wTmNYSFZFUlRnd0xWeGNkVVJGT0RsY1hIVkVSVGhHTFZ4Y2RVUkZRekpjWEhWRVJVTTJYRngxUkVWRFJTMWNYSFZFUlVSRFhGeDFSRVZFUmkxY1hIVkVSVVU1WFh4Y1hIVkVSRE5ES0Q4NlhGeDFNakF3UkZ0Y1hIVXlOalF3WEZ4MU1qWTBNbDFjWEhWR1JUQkdQM3hjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMHBQM3hjWEhWRVJFTkZLRDg2WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRLVDhvUHpwY1hIVXlNREJFS0Q4NlcxeGNkVEkyTkRCY1hIVXlOalF5WFZ4Y2RVWkZNRVkvS0Q4NlhGeDFNakF3UkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWsvZkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWtwUDN4Y1hIVkVSRVF4S0Q4NlhGeDFNakF3UkNnL09sdGNYSFV5TmprMVhGeDFNalk1Tmx4Y2RUSTNNRGhkWEZ4MVJrVXdSajk4WEZ4MVJEZ3pRMXRjWEhWRVJqTkZYRngxUkVZM00xeGNkVVJHTjBOY1hIVkVSamcwWEZ4MVJFWTVNMXhjZFVSR1FUUmNYSFZFUmtFNFhGeDFSRVpGUWx4Y2RVUkdSVVJkZkZ4Y2RVUTRNMFJiWEZ4MVJFTkNRbHhjZFVSRFFrTmNYSFZFUkRJM1hGeDFSRVF5UTF4Y2RVUkZPREJjWEhWRVJUa3lYWHhjWEhWRU9ETkZLRDg2VzF4Y2RVUkVRVVpjWEhWRVJFSkRYRngxUkVSQ1JGMG9QenBjWEhVeU1EQkVYRngxTWpkQk1WeGNkVVpGTUVZL0tUOThXMXhjZFVSRVFqQXRYRngxUkVSQ00xMThYRngxUkVReFJGeGNkVEl3TUVSY1hIVkVPRE5GWEZ4MVJFUkVNWHhjWEhWRVJFUXhYRngxTWpBd1JGeGNkVVE0TTBWY1hIVkVSRVF5S0Q4NlhGeDFNakF3UkZ4Y2RVUTRNMFZjWEhWRVJFUXlLVDk4WEZ4MVJFUkVNaWcvT2x4Y2RUSXdNRVJjWEhWRU9ETkZYRngxUkVSRU1pay9LU2w4WEZ4MVJEZ3pReWcvT2x4Y2RVUkdSa0lvUHpwY1hIVXlNREJFS0Q4NlcxeGNkVEkyT1RWY1hIVXlOamsyWEZ4MU1qY3dPRjFjWEhWR1JUQkdQM3hjWEhVeU56WTBYRngxUmtVd1JqOWNYSFV5TURCRUtEODZYRngxUkRnelJGeGNkVVJET0VKY1hIVXlNREJFS1Q5Y1hIVkVPRE5GWEZ4MVJFUkVNVnhjZFVRNE0wTmJYRngxUkVaR1F5MWNYSFZFUmtaR1hYeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09EUmNYSFZFUmprelhGeDFSRVpCTkZ4Y2RVUkdRVGhjWEhWRVJrVkNYRngxUkVaRlJGMThYRngxUkRnelJGdGNYSFZFUTBKQ1hGeDFSRU5DUTF4Y2RVUkVNamRjWEhWRVJESkRYRngxUkVVNE1GeGNkVVJGT1RKZGZGeGNkVVE0TTBVb1B6cGJYRngxUkVSQlJseGNkVVJFUWtOY1hIVkVSRUpFWFNnL09seGNkVEl3TUVSY1hIVXlOMEV4WEZ4MVJrVXdSajhwUDN4YlhGeDFSRVJDTUMxY1hIVkVSRUl6WFh4Y1hIVkVSREZFWEZ4MU1qQXdSRnhjZFVRNE0wVmNYSFZFUkVReFhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkS1NrcFAzeGNYSFZFUmtaREtEODZYRngxTWpBd1JDZy9PbHRjWEhVeU5qazFYRngxTWpZNU5seGNkVEkzTURoZFhGeDFSa1V3Umo5OFhGeDFNamMyTkZ4Y2RVWkZNRVkvWEZ4MU1qQXdSQ2cvT2x4Y2RVUTRNMFJjWEhWRVF6aENYRngxTWpBd1JDay9YRngxUkRnelJWeGNkVVJFUkRGY1hIVkVPRE5EVzF4Y2RVUkdSa0pjWEhWRVJrWkVMVnhjZFVSR1JrWmRmRnhjZFVRNE0wTmJYRngxUkVZelJWeGNkVVJHTnpOY1hIVkVSamREWEZ4MVJFWTRORnhjZFVSR09UTmNYSFZFUmtFMFhGeDFSRVpCT0Z4Y2RVUkdSVUpjWEhWRVJrVkVYWHhjWEhWRU9ETkVXMXhjZFVSRFFrSmNYSFZFUTBKRFhGeDFSRVF5TjF4Y2RVUkVNa05jWEhWRVJUZ3dYRngxUkVVNU1sMThYRngxUkRnelJTZy9PbHRjWEhWRVJFRkdYRngxUkVSQ1ExeGNkVVJFUWtSZEtEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkVJd0xWeGNkVVJFUWpOZGZGeGNkVVJFTVVSY1hIVXlNREJFWEZ4MVJEZ3pSVnhjZFVSRVJERmNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwwcEtTay9mRnhjZFVSR1JrUW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFS0Q4NlhGeDFSRGd6UkZ4Y2RVUkRPRUpjWEhVeU1EQkVLVDljWEhWRU9ETkZYRngxUkVSRU1WeGNkVVE0TTBOYlhGeDFSRVpHUWx4Y2RVUkdSa05jWEhWRVJrWkZYRngxUkVaR1JsMThYRngxUkRnelExdGNYSFZFUmpORlhGeDFSRVkzTTF4Y2RVUkdOME5jWEhWRVJqZzBYRngxUkVZNU0xeGNkVVJHUVRSY1hIVkVSa0U0WEZ4MVJFWkZRbHhjZFVSR1JVUmRmRnhjZFVRNE0wUmJYRngxUkVOQ1FseGNkVVJEUWtOY1hIVkVSREkzWEZ4MVJFUXlRMXhjZFVSRk9EQmNYSFZFUlRreVhYeGNYSFZFT0RORktEODZXMXhjZFVSRVFVWmNYSFZFUkVKRFhGeDFSRVJDUkYwb1B6cGNYSFV5TURCRVhGeDFNamRCTVZ4Y2RVWkZNRVkvS1Q5OFcxeGNkVVJFUWpBdFhGeDFSRVJDTTExOFhGeDFSRVF4UkZ4Y2RUSXdNRVJjWEhWRU9ETkZYRngxUkVSRU1WeGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFNrcEtUOThYRngxUkVaR1JTZy9PbHhjZFRJd01FUW9QenBiWEZ4MU1qWTVOVnhjZFRJMk9UWmNYSFV5TnpBNFhWeGNkVVpGTUVZL2ZGeGNkVEkzTmpSY1hIVkdSVEJHUDF4Y2RUSXdNRVFvUHpwY1hIVkVPRE5FWEZ4MVJFTTRRbHhjZFRJd01FUXBQMXhjZFVRNE0wVmNYSFZFUkVReFhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1JjWEhWRVJrWkdYWHhjWEhWRU9ETkRXMXhjZFVSR00wVmNYSFZFUmpjelhGeDFSRVkzUTF4Y2RVUkdPRFJjWEhWRVJqa3pYRngxUkVaQk5GeGNkVVJHUVRoY1hIVkVSa1ZDWEZ4MVJFWkZSRjE4WEZ4MVJEZ3pSRnRjWEhWRVEwSkNYRngxUkVOQ1ExeGNkVVJFTWpkY1hIVkVSREpEWEZ4MVJFVTRNRnhjZFVSRk9USmRmRnhjZFVRNE0wVW9QenBiWEZ4MVJFUkJSbHhjZFVSRVFrTmNYSFZFUkVKRVhTZy9PbHhjZFRJd01FUmNYSFV5TjBFeFhGeDFSa1V3Umo4cFAzeGJYRngxUkVSQ01DMWNYSFZFUkVJelhYeGNYSFZFUkRGRVhGeDFNakF3UkZ4Y2RVUTRNMFZjWEhWRVJFUXhYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZEtTa3BQM3hjWEhWRVJrWkdLRDg2WEZ4MU1qQXdSQ2cvT2x0Y1hIVXlOamsxWEZ4MU1qWTVObHhjZFRJM01EaGRYRngxUmtVd1JqOThYRngxTWpjMk5GeGNkVVpGTUVZL1hGeDFNakF3UkNnL09seGNkVVE0TTBSY1hIVkVRemhDWEZ4MU1qQXdSQ2svWEZ4MVJEZ3pSVnhjZFVSRVJERmNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUlYxOFhGeDFSRGd6UTF0Y1hIVkVSak5GWEZ4MVJFWTNNMXhjZFVSR04wTmNYSFZFUmpnMFhGeDFSRVk1TTF4Y2RVUkdRVFJjWEhWRVJrRTRYRngxUkVaRlFseGNkVVJHUlVSZGZGeGNkVVE0TTBSYlhGeDFSRU5DUWx4Y2RVUkRRa05jWEhWRVJESTNYRngxUkVReVExeGNkVVJGT0RCY1hIVkVSVGt5WFh4Y1hIVkVPRE5GS0Q4NlcxeGNkVVJFUVVaY1hIVkVSRUpEWEZ4MVJFUkNSRjBvUHpwY1hIVXlNREJFWEZ4MU1qZEJNVnhjZFVaRk1FWS9LVDk4VzF4Y2RVUkVRakF0WEZ4MVJFUkNNMTE4WEZ4MVJFUXhSRnhjZFRJd01FUmNYSFZFT0RORlhGeDFSRVJFTVZ4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYU2twS1Q4cEtUOThYRngxUkVWR01TZy9PbHhjZFVRNE0wTW9QenBjWEhWRVJrWkNLRDg2WEZ4MU1qQXdSRnhjZFVRNE0wVmNYSFZFUlVZeVhGeDFSRGd6UTF0Y1hIVkVSa1pETFZ4Y2RVUkdSa1pkS1Q5OFhGeDFSRVpHUXlnL09seGNkVEl3TUVSY1hIVkVPRE5GWEZ4MVJFVkdNbHhjZFVRNE0wTmJYRngxUkVaR1FseGNkVVJHUmtRdFhGeDFSRVpHUmwwcFAzeGNYSFZFUmtaRUtEODZYRngxTWpBd1JGeGNkVVE0TTBWY1hIVkVSVVl5WEZ4MVJEZ3pRMXRjWEhWRVJrWkNYRngxUkVaR1ExeGNkVVJHUmtWY1hIVkVSa1pHWFNrL2ZGeGNkVVJHUmtVb1B6cGNYSFV5TURCRVhGeDFSRGd6UlZ4Y2RVUkZSakpjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JGeGNkVVJHUmtaZEtUOThYRngxUkVaR1JpZy9PbHhjZFRJd01FUmNYSFZFT0RORlhGeDFSRVZHTWx4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkZYU2svS1NrL0tTOW5PMXh1ZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJuWlhSR2FXeGxWR2wwYkdVc0lHNXZjbTFoYkdsNlpVaGxZV1JsY2tadmNreHBibXNnZlNCbWNtOXRJRndpZFhScGJITXZibTl5YldGc2FYcGxjbk5jSWp0Y2JseHVMeW9xSUZSb1pTQlBZbk5wWkdsaGJpQW5iR2x1YXljc0lIVnpaV1FnWm05eUlIVnVhWEYxWld4NUlHUmxjMk55YVdKcGJtY2dZU0JtYVd4bExDQm9aV0ZrWlhJc0lHOXlJR0pzYjJOckxseHVJQ29nUUdkeWIzVndJRU52YlcxdmJpQlVlWEJsYzF4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1RHbHVheUI3WEc0Z0lDQWdMeW9xSUZSb1pTQm1hV3hsSUhCaGRHZ2dkR2hwY3lCc2FXNXJJSEJ2YVc1MGN5QjBieTRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdjR0YwYURvZ2MzUnlhVzVuTzF4dUlDQWdJQzhxS2lCVWFHVWdaR2x6Y0d4aGVTQnVZVzFsSUdGemMyOWphV0YwWldRZ2QybDBhQ0IwYUdVZ2JHbHVheTRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdaR2x6Y0d4aGVUODZJSE4wY21sdVp6dGNiaUFnSUNBdktpb2dWR2hsSUdKc2IyTnJJRWxFSUc5eUlHaGxZV1JsY2lCMGFHbHpJR3hwYm1zZ2NHOXBiblJ6SUhSdklIZHBkR2hwYmlCaElHWnBiR1VzSUdsbUlISmxiR1YyWVc1MExpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCemRXSndZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQWdJQzhxS2lCSmN5QjBhR2x6SUd4cGJtc2dZVzRnWlcxaVpXUmtaV1FnYkdsdWF5QW9iMllnWm05eWJTQW5JVnRiYUdWc2JHOWRYU2NwUHlBcUwxeHVJQ0FnSUhCMVlteHBZeUJsYldKbFpEb2dZbTl2YkdWaGJqdGNiaUFnSUNBdktpb2dWR2hsSUhSNWNHVWdiMllnZEdocGN5QnNhVzVyTENCM2FHbGphQ0JrWlhSbGNtMXBibVZ6SUhkb1lYUWdKM04xWW5CaGRHZ25JSEpsWm1WeWN5QjBieXdnYVdZZ1lXNTVkR2hwYm1jdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhSNWNHVTZJRndpWm1sc1pWd2lJSHdnWENKb1pXRmtaWEpjSWlCOElGd2lZbXh2WTJ0Y0lqdGNibHh1SUNBZ0lDOHFLaUJEY21WaGRHVWdZU0JzYVc1cklIUnZJR0VnYzNCbFkybG1hV01nWm1sc1pTNGdLaTljYmlBZ0lDQndkV0pzYVdNZ2MzUmhkR2xqSUdacGJHVW9jR0YwYURvZ2MzUnlhVzVuTENCbGJXSmxaRG9nWW05dmJHVmhiaUE5SUdaaGJITmxMQ0JrYVhOd2JHRjVQem9nYzNSeWFXNW5LVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVEdsdWF5aDdYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXMWlaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE53YkdGNUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNWaWNHRjBhRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSm1hV3hsWENJc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJKYm1abGNpQjBhR1VnZEhsd1pTQnZaaUIwYUdVZ2JHbHVheUJtY205dElIUm9aU0JtZFd4c0lHbHVkR1Z5Ym1Gc0lHeHBibXNnY0dGMGFDNGdLaTljYmlBZ0lDQndkV0pzYVdNZ2MzUmhkR2xqSUdsdVptVnlLR3hwYm10d1lYUm9PaUJ6ZEhKcGJtY3NJR1Z0WW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVc0lHUnBjM0JzWVhrL09pQnpkSEpwYm1jcE9pQk1hVzVySUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR3hwYm10d1lYUm9MbWx1WTJ4MVpHVnpLRndpSTE1Y0lpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J6Y0d4cGRDQTlJR3hwYm10d1lYUm9Mbk53YkdsMEtGd2lJMTVjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdUR2x1YXk1aWJHOWpheWh6Y0d4cGRGc3dYU3dnYzNCc2FYUmJNVjBzSUdWdFltVmtMQ0JrYVhOd2JHRjVLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoc2FXNXJjR0YwYUM1cGJtTnNkV1JsY3loY0lpTmNJaWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCemNHeHBkQ0E5SUd4cGJtdHdZWFJvTG5Od2JHbDBLRndpSTF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJNYVc1ckxtaGxZV1JsY2loemNHeHBkRnN3WFN3Z2MzQnNhWFJiTVYwc0lHVnRZbVZrTENCa2FYTndiR0Y1S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUhKbGRIVnliaUJNYVc1ckxtWnBiR1VvYkdsdWEzQmhkR2dzSUdWdFltVmtMQ0JrYVhOd2JHRjVLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUTNKbFlYUmxJR0VnYkdsdWF5QjBieUJoSUhOd1pXTnBabWxqSUdacGJHVWdZVzVrSUdobFlXUmxjaUJwYmlCMGFHRjBJR1pwYkdVdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhOMFlYUnBZeUJvWldGa1pYSW9jR0YwYURvZ2MzUnlhVzVuTENCb1pXRmtaWEk2SUhOMGNtbHVaeXdnWlcxaVpXUS9PaUJpYjI5c1pXRnVMQ0JrYVhOd2JHRjVQem9nYzNSeWFXNW5LVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJQzh2SUVobFlXUmxjbk1nYm1WbFpDQjBieUJpWlNCdWIzSnRZV3hwZW1Wa0lIUnZJR0ZzY0doaExXNTFiV1Z5YVdNZ0ppQjNhWFJvSUdWNGRISmhJSE53WVdOcGJtY2djbVZ0YjNabFpDNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJNYVc1cktIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJXSmxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnBjM0JzWVhrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZFdKd1lYUm9PaUJ1YjNKdFlXeHBlbVZJWldGa1pYSkdiM0pNYVc1cktHaGxZV1JsY2lrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQmNJbWhsWVdSbGNsd2lMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EzSmxZWFJsSUdFZ2JHbHVheUIwYnlCaElITndaV05wWm1saklHWnBiR1VnWVc1a0lHSnNiMk5ySUdsdUlIUm9ZWFFnWm1sc1pTNGdLaTljYmlBZ0lDQndkV0pzYVdNZ2MzUmhkR2xqSUdKc2IyTnJLSEJoZEdnNklITjBjbWx1Wnl3Z1lteHZZMnRKWkRvZ2MzUnlhVzVuTENCbGJXSmxaRDg2SUdKdmIyeGxZVzRzSUdScGMzQnNZWGsvT2lCemRISnBibWNwT2lCTWFXNXJJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCTWFXNXJLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiV0psWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JwYzNCc1lYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCemRXSndZWFJvT2lCaWJHOWphMGxrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSmliRzlqYTF3aUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nVEc5aFpDQmhJR3hwYm1zZ1puSnZiU0JwZENkeklISmhkeUJLVTA5T0lISmxjSEpsYzJWdWRHRjBhVzl1TGlBcUwxeHVJQ0FnSUhCMVlteHBZeUJ6ZEdGMGFXTWdabkp2YlU5aWFtVmpkQ2h2WW1wbFkzUTZJRXB6YjI1TWFXNXJLVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVEdsdWF5aHZZbXBsWTNRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkRjbVZoZEdVZ1lTQnNhVzVySUdKNUlIQmhjbk5wYm1jZ2FYUW5jeUJwYm5SbGNtbHZjaUJ3WVhKMElDaHBibk5wWkdVZ2IyWWdkR2hsSUNkYlcxMWRKeWt1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSE4wWVhScFl5QndZWEp6WlVsdWJtVnlLSEpoZDJ4cGJtczZJSE4wY21sdVp5azZJRXhwYm1zZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnVzJ4cGJtc3NJR1JwYzNCc1lYbGRJRDBnYzNCc2FYUlBibFZ1WlhOallYQmxaRkJwY0dVb2NtRjNiR2x1YXlrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCTWFXNXJMbWx1Wm1WeUtHeHBibXNzSUdaaGJITmxMQ0JrYVhOd2JHRjVLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndjbWwyWVhSbElHTnZibk4wY25WamRHOXlLR1pwWld4a2N6b2dVR0Z5ZEdsaGJEeE1hVzVyUGlrZ2UxeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0hSb2FYTXNJR1pwWld4a2N5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRlZ3WkdGMFpTQjBhR2x6SUd4cGJtc2dkMmwwYUNCaElHNWxkeUJ3WVhSb0xpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCM2FYUm9VR0YwYUNod1lYUm9PaUJ6ZEhKcGJtY3BPaUJNYVc1cklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJNYVc1cktFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lIUm9hWE1zSUhzZ2NHRjBhQ0I5S1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlGSmxkSFZ5YmlCaElHNWxkeUJzYVc1cklIZG9hV05vSUhCdmFXNTBjeUIwYnlCMGFHVWdjMkZ0WlNCc2IyTmhkR2x2YmlCaWRYUWdkMmwwYUNCaElHNWxkeUJrYVhOd2JHRjVJSFpoYkhWbExpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCM2FYUm9SR2x6Y0d4aGVTaGthWE53YkdGNVB6b2djM1J5YVc1bktUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUR2x1YXloUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCMGFHbHpMQ0I3SUdScGMzQnNZWGtnZlNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlNaWFIxY200Z1lTQnVaWGNnYkdsdWF5QjNhR2xqYUNCb1lYTWdkR2hsSUdkcGRtVnVJR1Z0WW1Wa1pHVmtJSE4wWVhSMWN5NGdLaTljYmlBZ0lDQndkV0pzYVdNZ2QybDBhRVZ0WW1Wa0tHVnRZbVZrT2lCaWIyOXNaV0Z1S1RvZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1WdFltVmtJRDA5SUdWdFltVmtLU0J5WlhSMWNtNGdkR2hwY3p0Y2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRXhwYm1zb1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2RHaHBjeXdnZXlCbGJXSmxaQ0I5S1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTnZiblpsY25RZ1lTQm1hV3hsSUd4cGJtc2dhVzUwYnlCaElHeHBibXNnZEc4Z1lTQnpjR1ZqYVdacFl5Qm9aV0ZrWlhJdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhkcGRHaElaV0ZrWlhJb2FHVmhaR1Z5T2lCemRISnBibWNwT2lCTWFXNXJJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRXhwYm1zdWFHVmhaR1Z5S0hSb2FYTXVjR0YwYUN3Z2FHVmhaR1Z5TENCMGFHbHpMbVZ0WW1Wa0xDQjBhR2x6TG1ScGMzQnNZWGtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGIyNTJaWEowSUdFZ1ptbHNaU0JzYVc1cklHbHVkRzhnWVNCc2FXNXJJSFJ2SUdFZ2MzQmxZMmxtYVdOaUlHeHZZMnN1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSGRwZEdoQ2JHOWpheWhpYkc5amF6b2djM1J5YVc1bktUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCTWFXNXJMbUpzYjJOcktIUm9hWE11Y0dGMGFDd2dZbXh2WTJzc0lIUm9hWE11WlcxaVpXUXNJSFJvYVhNdVpHbHpjR3hoZVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTm9aV05yY3lCbWIzSWdiR2x1YXlCbGNYVmhiR2wwZVNBb2FTNWxMaXdnZEdoaGRDQjBhR1VnYkdsdWEzTWdZWEpsSUhCdmFXNTBhVzVuSUhSdklIUm9aU0J6WVcxbElHVjRZV04wSUd4dlkyRjBhVzl1S1M0Z0tpOWNiaUFnSUNCd2RXSnNhV01nWlhGMVlXeHpLRzkwYUdWeU9pQk1hVzVyS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2ZEdobGNpQTlQU0IxYm1SbFptbHVaV1FnZkh3Z2IzUm9aWElnUFQwZ2JuVnNiQ2tnY21WMGRYSnVJR1poYkhObE8xeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5CaGRHZ2dQVDBnYjNSb1pYSXVjR0YwYUNBbUppQjBhR2x6TG5SNWNHVWdQVDBnYjNSb1pYSXVkSGx3WlNBbUppQjBhR2x6TG5OMVluQmhkR2dnUFQwZ2IzUm9aWEl1YzNWaWNHRjBhRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUTI5dWRtVnlkQ0IwYUdseklHeHBibXNnZEc4Z2FYUW5jeUJ0WVhKclpHOTNiaUJ5WlhCeVpYTmxiblJoZEdsdmJpNGdLaTljYmlBZ0lDQndkV0pzYVdNZ2RHOVRkSEpwYm1jb0tUb2djM1J5YVc1bklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YldGeWEyUnZkMjRvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVkbVZ5ZENCMGFHbHpJR3hwYm1zZ2RHOGdZU0J5WVhjZ2IySnFaV04wSUhkb2FXTm9JR2x6SUhObGNtbGhiR2w2WVhScGIyNHRabkpwWlc1a2JIa3VJQ292WEc0Z0lDQWdjSFZpYkdsaklIUnZUMkpxWldOMEtDazZJRXB6YjI1TWFXNXJJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2c2SUhSb2FYTXVjR0YwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklIUm9hWE11ZEhsd1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMVluQmhkR2c2SUhSb2FYTXVjM1ZpY0dGMGFDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdScGMzQnNZWGs2SUhSb2FYTXVaR2x6Y0d4aGVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdFltVmtPaUIwYUdsekxtVnRZbVZrTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkRiMjUyWlhKMElHRnVlU0JzYVc1cklHbHVkRzhnWVNCc2FXNXJJSFJ2SUdsMGN5Qm1hV3hsTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUIwYjBacGJHVW9LVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQk1hVzVyTG1acGJHVW9kR2hwY3k1d1lYUm9MQ0IwYUdsekxtVnRZbVZrTENCMGFHbHpMbVJwYzNCc1lYa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJEYjI1MlpYSjBJSFJvYVhNZ2JHbHVheUJwYm5SdklHRnVJR1Z0WW1Wa1pHVmtJR3hwYm1zdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhSdlJXMWlaV1FvS1RvZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxuZHBkR2hGYldKbFpDaDBjblZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVkbVZ5ZENCMGFHbHpJR3hwYm1zZ2FXNTBieUJoSUc1dmJpMWxiV0psWkdSbFpDQnNhVzVyTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUJtY205dFJXMWlaV1FvS1RvZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxuZHBkR2hGYldKbFpDaG1ZV3h6WlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTnZiblpsY25RZ2RHaHBjeUJzYVc1cklIUnZJRzFoY210a2IzZHVJSE52SUdsMElHTmhiaUJpWlNCeVpXNWtaWEpsWkM0Z0tpOWNiaUFnSUNCd2RXSnNhV01nYldGeWEyUnZkMjRvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJSEpsYzNWc2RDQTlJQ2gwYUdsekxtVnRZbVZrSUQ4Z1hDSWhYQ0lnT2lCY0lsd2lLU0FySUZ3aVcxdGNJaUFySUhSb2FYTXViMkp6YVdScFlXNU1hVzVyS0NrN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZENBclBTQmNJbnhjSWp0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwSUNzOUlIUm9hWE11WkdsemNHeGhlVTl5UkdWbVlYVnNkQ2dwTzF4dUlDQWdJQ0FnSUNCeVpYTjFiSFFnS3owZ1hDSmRYVndpTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJQWW5SaGFXNGdkR2hsSUdScGMzQnNZWGtnWm05eUlIUm9hWE1nYkdsdWF5QnBaaUJ3Y21WelpXNTBMQ0J2Y2lCeVpYUjFjbTRnWVNCemFXMXdiR1VnWkdWbVlYVnNkQ0JrYVhOd2JHRjVMaUFxTDF4dUlDQWdJSEIxWW14cFl5QmthWE53YkdGNVQzSkVaV1poZFd4MEtDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVrYVhOd2JHRjVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVrYVhOd2JHRjVPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSEpsYzNWc2RDQTlJR2RsZEVacGJHVlVhWFJzWlNoMGFHbHpMbkJoZEdncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11ZEhsd1pTQTlQU0JjSW1obFlXUmxjbHdpSUh4OElIUm9hWE11ZEhsd1pTQTlQU0JjSW1Kc2IyTnJYQ0lwSUhKbGMzVnNkQ0FyUFNCY0lpQStJRndpSUNzZ2RHaHBjeTV6ZFdKd1lYUm9PMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTnZiblpsY25RZ2RHaGxJR2x1Ym1WeUlIQmhjblFnYjJZZ2RHaGxJR3hwYm1zZ2RHOGdjMjl0WlhSb2FXNW5JSFJvWVhRZ1QySnphV1JwWVc0Z1kyRnVJRzl3Wlc0Z0x5QjFibVJsY25OMFlXNWtMaUFxTDF4dUlDQWdJSEIxWW14cFl5QnZZbk5wWkdsaGJreHBibXNvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWlhOallYQmxaQ0E5SUhSb2FYTXVjR0YwYUM1eVpYQnNZV05sS0Z3aWZGd2lMQ0JjSWx4Y1hGeDhYQ0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1MGVYQmxJRDA5SUZ3aWFHVmhaR1Z5WENJcElISmxkSFZ5YmlCbGMyTmhjR1ZrSUNzZ1hDSWpYQ0lnS3lCMGFHbHpMbk4xWW5CaGRHZy9MbkpsY0d4aFkyVW9YQ0o4WENJc0lGd2lYRnhjWEh4Y0lpazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMblI1Y0dVZ1BUMGdYQ0ppYkc5amExd2lLU0J5WlhSMWNtNGdaWE5qWVhCbFpDQXJJRndpSTE1Y0lpQXJJSFJvYVhNdWMzVmljR0YwYUQ4dWNtVndiR0ZqWlNoY0lueGNJaXdnWENKY1hGeGNmRndpS1R0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0J5WlhSMWNtNGdaWE5qWVhCbFpEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dWR2hsSUhOMGNtbHdjR1ZrSUc1aGJXVWdiMllnZEdobElHWnBiR1VnZEdocGN5QnNhVzVySUhCdmFXNTBjeUIwYnk0Z0tpOWNiaUFnSUNCd2RXSnNhV01nWm1sc1pVNWhiV1VvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdkbGRFWnBiR1ZVYVhSc1pTaDBhR2x6TG5CaGRHZ3BPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRk5sY21saGJHbDZaV1FnWm05eWJTQnZaaUJoSUd4cGJtc3VYRzRnS2lCQWFHbGtaR1Z1WEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTbk52Ymt4cGJtc2dlMXh1SUNBZ0lDOHFLaUJVYUdVZ1ptbHNaU0J3WVhSb0lIUm9hWE1nYkdsdWF5QndiMmx1ZEhNZ2RHOHVJQ292WEc0Z0lDQWdjR0YwYURvZ2MzUnlhVzVuTzF4dUlDQWdJQzhxS2lCVWFHVWdaR2x6Y0d4aGVTQnVZVzFsSUdGemMyOWphV0YwWldRZ2QybDBhQ0IwYUdVZ2JHbHVheTRnS2k5Y2JpQWdJQ0JrYVhOd2JHRjVQem9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJVYUdVZ1lteHZZMnNnU1VRZ2IzSWdhR1ZoWkdWeUlIUm9hWE1nYkdsdWF5QndiMmx1ZEhNZ2RHOGdkMmwwYUdsdUlHRWdabWxzWlN3Z2FXWWdjbVZzWlhaaGJuUXVJQ292WEc0Z0lDQWdjM1ZpY0dGMGFEODZJSE4wY21sdVp6dGNiaUFnSUNBdktpb2dTWE1nZEdocGN5QnNhVzVySUdGdUlHVnRZbVZrWkdWa0lHeHBibXNnS0c5bUlHWnZjbTBnSnlGYlcyaGxiR3h2WFYwbktUOGdLaTljYmlBZ0lDQmxiV0psWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSFI1Y0dVZ2IyWWdkR2hwY3lCc2FXNXJMQ0IzYUdsamFDQmtaWFJsY20xcGJtVnpJSGRvWVhRZ0ozTjFZbkJoZEdnbklISmxabVZ5Y3lCMGJ5d2dhV1lnWVc1NWRHaHBibWN1SUNvdlhHNGdJQ0FnZEhsd1pUb2dYQ0ptYVd4bFhDSWdmQ0JjSW1obFlXUmxjbHdpSUh3Z1hDSmliRzlqYTF3aU8xeHVmVnh1WEc0dktpb2dVM0JzYVhRZ2IyNGdkVzVsYzJOaGNHVmtJSEJwY0dWeklHbHVJR0Z1SUdsdWJtVnlJR3hwYm1zdVhHNGdLaUJBYUdsa1pHVnVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCemNHeHBkRTl1Vlc1bGMyTmhjR1ZrVUdsd1pTaHNhVzVyT2lCemRISnBibWNwT2lCYmMzUnlhVzVuTENCemRISnBibWNnZkNCMWJtUmxabWx1WldSZElIdGNiaUFnSUNCc1pYUWdjR2x3WlNBOUlDMHhPMXh1SUNBZ0lIZG9hV3hsSUNnb2NHbHdaU0E5SUd4cGJtc3VhVzVrWlhoUFppaGNJbnhjSWl3Z2NHbHdaU0FySURFcEtTQStQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h3YVhCbElENGdNQ0FtSmlCc2FXNXJXM0JwY0dVZ0xTQXhYU0E5UFNCY0lseGNYRnhjSWlrZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCYmJHbHVheTV6ZFdKemRISnBibWNvTUN3Z2NHbHdaU2t1Y21Wd2JHRmpaU2d2WEZ4Y1hGeGNmQzluTENCY0lueGNJaWtzSUd4cGJtc3VjM1ZpYzNSeWFXNW5LSEJwY0dVZ0t5QXhLVjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlGdHNhVzVyTG5KbGNHeGhZMlVvTDF4Y1hGeGNYSHd2Wnl3Z1hDSjhYQ0lwTENCMWJtUmxabWx1WldSZE8xeHVmVnh1SWl3Z0ltTnZibk4wSUVGTVNVRlRJRDBnVTNsdFltOXNMbVp2Y2lnbmVXRnRiQzVoYkdsaGN5Y3BPMXh1WTI5dWMzUWdSRTlESUQwZ1UzbHRZbTlzTG1admNpZ25lV0Z0YkM1a2IyTjFiV1Z1ZENjcE8xeHVZMjl1YzNRZ1RVRlFJRDBnVTNsdFltOXNMbVp2Y2lnbmVXRnRiQzV0WVhBbktUdGNibU52Ym5OMElGQkJTVklnUFNCVGVXMWliMnd1Wm05eUtDZDVZVzFzTG5CaGFYSW5LVHRjYm1OdmJuTjBJRk5EUVV4QlVpQTlJRk41YldKdmJDNW1iM0lvSjNsaGJXd3VjMk5oYkdGeUp5azdYRzVqYjI1emRDQlRSVkVnUFNCVGVXMWliMnd1Wm05eUtDZDVZVzFzTG5ObGNTY3BPMXh1WTI5dWMzUWdUazlFUlY5VVdWQkZJRDBnVTNsdFltOXNMbVp2Y2lnbmVXRnRiQzV1YjJSbExuUjVjR1VuS1R0Y2JtTnZibk4wSUdselFXeHBZWE1nUFNBb2JtOWtaU2tnUFQ0Z0lTRnViMlJsSUNZbUlIUjVjR1Z2WmlCdWIyUmxJRDA5UFNBbmIySnFaV04wSnlBbUppQnViMlJsVzA1UFJFVmZWRmxRUlYwZ1BUMDlJRUZNU1VGVE8xeHVZMjl1YzNRZ2FYTkViMk4xYldWdWRDQTlJQ2h1YjJSbEtTQTlQaUFoSVc1dlpHVWdKaVlnZEhsd1pXOW1JRzV2WkdVZ1BUMDlJQ2R2WW1wbFkzUW5JQ1ltSUc1dlpHVmJUazlFUlY5VVdWQkZYU0E5UFQwZ1JFOURPMXh1WTI5dWMzUWdhWE5OWVhBZ1BTQW9ibTlrWlNrZ1BUNGdJU0Z1YjJSbElDWW1JSFI1Y0dWdlppQnViMlJsSUQwOVBTQW5iMkpxWldOMEp5QW1KaUJ1YjJSbFcwNVBSRVZmVkZsUVJWMGdQVDA5SUUxQlVEdGNibU52Ym5OMElHbHpVR0ZwY2lBOUlDaHViMlJsS1NBOVBpQWhJVzV2WkdVZ0ppWWdkSGx3Wlc5bUlHNXZaR1VnUFQwOUlDZHZZbXBsWTNRbklDWW1JRzV2WkdWYlRrOUVSVjlVV1ZCRlhTQTlQVDBnVUVGSlVqdGNibU52Ym5OMElHbHpVMk5oYkdGeUlEMGdLRzV2WkdVcElEMCtJQ0VoYm05a1pTQW1KaUIwZVhCbGIyWWdibTlrWlNBOVBUMGdKMjlpYW1WamRDY2dKaVlnYm05a1pWdE9UMFJGWDFSWlVFVmRJRDA5UFNCVFEwRk1RVkk3WEc1amIyNXpkQ0JwYzFObGNTQTlJQ2h1YjJSbEtTQTlQaUFoSVc1dlpHVWdKaVlnZEhsd1pXOW1JRzV2WkdVZ1BUMDlJQ2R2WW1wbFkzUW5JQ1ltSUc1dlpHVmJUazlFUlY5VVdWQkZYU0E5UFQwZ1UwVlJPMXh1Wm5WdVkzUnBiMjRnYVhORGIyeHNaV04wYVc5dUtHNXZaR1VwSUh0Y2JpQWdJQ0JwWmlBb2JtOWtaU0FtSmlCMGVYQmxiMllnYm05a1pTQTlQVDBnSjI5aWFtVmpkQ2NwWEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvYm05a1pWdE9UMFJGWDFSWlVFVmRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUUxQlVEcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdVMFZST2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2FYTk9iMlJsS0c1dlpHVXBJSHRjYmlBZ0lDQnBaaUFvYm05a1pTQW1KaUIwZVhCbGIyWWdibTlrWlNBOVBUMGdKMjlpYW1WamRDY3BYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9ibTlrWlZ0T1QwUkZYMVJaVUVWZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRUZNU1VGVE9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQk5RVkE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZORFFVeEJVanBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnVTBWUk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dWZWeHVZMjl1YzNRZ2FHRnpRVzVqYUc5eUlEMGdLRzV2WkdVcElEMCtJQ2hwYzFOallXeGhjaWh1YjJSbEtTQjhmQ0JwYzBOdmJHeGxZM1JwYjI0b2JtOWtaU2twSUNZbUlDRWhibTlrWlM1aGJtTm9iM0k3WEc1Y2JtVjRjRzl5ZENCN0lFRk1TVUZUTENCRVQwTXNJRTFCVUN3Z1RrOUVSVjlVV1ZCRkxDQlFRVWxTTENCVFEwRk1RVklzSUZORlVTd2dhR0Z6UVc1amFHOXlMQ0JwYzBGc2FXRnpMQ0JwYzBOdmJHeGxZM1JwYjI0c0lHbHpSRzlqZFcxbGJuUXNJR2x6VFdGd0xDQnBjMDV2WkdVc0lHbHpVR0ZwY2l3Z2FYTlRZMkZzWVhJc0lHbHpVMlZ4SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYVhORWIyTjFiV1Z1ZEN3Z2FYTk9iMlJsTENCcGMxQmhhWElzSUdselEyOXNiR1ZqZEdsdmJpd2dhWE5OWVhBc0lHbHpVMlZ4TENCcGMxTmpZV3hoY2l3Z2FYTkJiR2xoY3lCOUlHWnliMjBnSnk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVYRzVqYjI1emRDQkNVa1ZCU3lBOUlGTjViV0p2YkNnblluSmxZV3NnZG1semFYUW5LVHRjYm1OdmJuTjBJRk5MU1ZBZ1BTQlRlVzFpYjJ3b0ozTnJhWEFnWTJocGJHUnlaVzRuS1R0Y2JtTnZibk4wSUZKRlRVOVdSU0E5SUZONWJXSnZiQ2duY21WdGIzWmxJRzV2WkdVbktUdGNiaThxS2x4dUlDb2dRWEJ3YkhrZ1lTQjJhWE5wZEc5eUlIUnZJR0Z1SUVGVFZDQnViMlJsSUc5eUlHUnZZM1Z0Wlc1MExseHVJQ3BjYmlBcUlGZGhiR3R6SUhSb2NtOTFaMmdnZEdobElIUnlaV1VnS0dSbGNIUm9MV1pwY25OMEtTQnpkR0Z5ZEdsdVp5Qm1jbTl0SUdCdWIyUmxZQ3dnWTJGc2JHbHVaeUJoWEc0Z0tpQmdkbWx6YVhSdmNtQWdablZ1WTNScGIyNGdkMmwwYUNCMGFISmxaU0JoY21kMWJXVnVkSE02WEc0Z0tpQWdJQzBnWUd0bGVXQTZJRVp2Y2lCelpYRjFaVzVqWlNCMllXeDFaWE1nWVc1a0lHMWhjQ0JnVUdGcGNtQXNJSFJvWlNCdWIyUmxKM01nYVc1a1pYZ2dhVzRnZEdobFhHNGdLaUFnSUNBZ1kyOXNiR1ZqZEdsdmJpNGdWMmwwYUdsdUlHRWdZRkJoYVhKZ0xDQmdKMnRsZVNkZ0lHOXlJR0FuZG1Gc2RXVW5ZQ3dnWTI5eWNtVnpjRzl1WkdsdVoyeDVMbHh1SUNvZ0lDQWdJR0J1ZFd4c1lDQm1iM0lnZEdobElISnZiM1FnYm05a1pTNWNiaUFxSUNBZ0xTQmdibTlrWldBNklGUm9aU0JqZFhKeVpXNTBJRzV2WkdVdVhHNGdLaUFnSUMwZ1lIQmhkR2hnT2lCVWFHVWdZVzVqWlhOMGNua2diMllnZEdobElHTjFjbkpsYm5RZ2JtOWtaUzVjYmlBcVhHNGdLaUJVYUdVZ2NtVjBkWEp1SUhaaGJIVmxJRzltSUhSb1pTQjJhWE5wZEc5eUlHMWhlU0JpWlNCMWMyVmtJSFJ2SUdOdmJuUnliMndnZEdobElIUnlZWFpsY25OaGJEcGNiaUFxSUNBZ0xTQmdkVzVrWldacGJtVmtZQ0FvWkdWbVlYVnNkQ2s2SUVSdklHNXZkR2hwYm1jZ1lXNWtJR052Ym5ScGJuVmxYRzRnS2lBZ0lDMGdZSFpwYzJsMExsTkxTVkJnT2lCRWJ5QnViM1FnZG1semFYUWdkR2hsSUdOb2FXeGtjbVZ1SUc5bUlIUm9hWE1nYm05a1pTd2dZMjl1ZEdsdWRXVWdkMmwwYUNCdVpYaDBYRzRnS2lBZ0lDQWdjMmxpYkdsdVoxeHVJQ29nSUNBdElHQjJhWE5wZEM1Q1VrVkJTMkE2SUZSbGNtMXBibUYwWlNCMGNtRjJaWEp6WVd3Z1kyOXRjR3hsZEdWc2VWeHVJQ29nSUNBdElHQjJhWE5wZEM1U1JVMVBWa1ZnT2lCU1pXMXZkbVVnZEdobElHTjFjbkpsYm5RZ2JtOWtaU3dnZEdobGJpQmpiMjUwYVc1MVpTQjNhWFJvSUhSb1pTQnVaWGgwSUc5dVpWeHVJQ29nSUNBdElHQk9iMlJsWURvZ1VtVndiR0ZqWlNCMGFHVWdZM1Z5Y21WdWRDQnViMlJsTENCMGFHVnVJR052Ym5ScGJuVmxJR0o1SUhacGMybDBhVzVuSUdsMFhHNGdLaUFnSUMwZ1lHNTFiV0psY21BNklGZG9hV3hsSUdsMFpYSmhkR2x1WnlCMGFHVWdhWFJsYlhNZ2IyWWdZU0J6WlhGMVpXNWpaU0J2Y2lCdFlYQXNJSE5sZENCMGFHVWdhVzVrWlhoY2JpQXFJQ0FnSUNCdlppQjBhR1VnYm1WNGRDQnpkR1Z3TGlCVWFHbHpJR2x6SUhWelpXWjFiQ0JsYzNCbFkybGhiR3g1SUdsbUlIUm9aU0JwYm1SbGVDQnZaaUIwYUdVZ1kzVnljbVZ1ZEZ4dUlDb2dJQ0FnSUc1dlpHVWdhR0Z6SUdOb1lXNW5aV1F1WEc0Z0tseHVJQ29nU1dZZ1lIWnBjMmwwYjNKZ0lHbHpJR0VnYzJsdVoyeGxJR1oxYm1OMGFXOXVMQ0JwZENCM2FXeHNJR0psSUdOaGJHeGxaQ0IzYVhSb0lHRnNiQ0IyWVd4MVpYTmNiaUFxSUdWdVkyOTFiblJsY21Wa0lHbHVJSFJvWlNCMGNtVmxMQ0JwYm1Oc2RXUnBibWNnWlM1bkxpQmdiblZzYkdBZ2RtRnNkV1Z6TGlCQmJIUmxjbTVoZEdsMlpXeDVMRnh1SUNvZ2MyVndZWEpoZEdVZ2RtbHphWFJ2Y2lCbWRXNWpkR2x2Ym5NZ2JXRjVJR0psSUdSbFptbHVaV1FnWm05eUlHVmhZMmdnWUUxaGNHQXNJR0JRWVdseVlDd2dZRk5sY1dBc1hHNGdLaUJnUVd4cFlYTmdJR0Z1WkNCZ1UyTmhiR0Z5WUNCdWIyUmxMaUJVYnlCa1pXWnBibVVnZEdobElITmhiV1VnZG1semFYUnZjaUJtZFc1amRHbHZiaUJtYjNJZ2JXOXlaU0IwYUdGdVhHNGdLaUJ2Ym1VZ2JtOWtaU0IwZVhCbExDQjFjMlVnZEdobElHQkRiMnhzWldOMGFXOXVZQ0FvYldGd0lHRnVaQ0J6WlhFcExDQmdWbUZzZFdWZ0lDaHRZWEFzSUhObGNTQW1JSE5qWVd4aGNpbGNiaUFxSUdGdVpDQmdUbTlrWldBZ0tHRnNhV0Z6TENCdFlYQXNJSE5sY1NBbUlITmpZV3hoY2lrZ2RHRnlaMlYwY3k0Z1QyWWdZV3hzSUhSb1pYTmxMQ0J2Ym14NUlIUm9aU0J0YjNOMFhHNGdLaUJ6Y0dWamFXWnBZeUJrWldacGJtVmtJRzl1WlNCM2FXeHNJR0psSUhWelpXUWdabTl5SUdWaFkyZ2dibTlrWlM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnZG1semFYUW9ibTlrWlN3Z2RtbHphWFJ2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFpwYzJsMGIzSmZJRDBnYVc1cGRGWnBjMmwwYjNJb2RtbHphWFJ2Y2lrN1hHNGdJQ0FnYVdZZ0tHbHpSRzlqZFcxbGJuUW9ibTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyUWdQU0IyYVhOcGRGOG9iblZzYkN3Z2JtOWtaUzVqYjI1MFpXNTBjeXdnZG1semFYUnZjbDhzSUU5aWFtVmpkQzVtY21WbGVtVW9XMjV2WkdWZEtTazdYRzRnSUNBZ0lDQWdJR2xtSUNoalpDQTlQVDBnVWtWTlQxWkZLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JtOWtaUzVqYjI1MFpXNTBjeUE5SUc1MWJHdzdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdkbWx6YVhSZktHNTFiR3dzSUc1dlpHVXNJSFpwYzJsMGIzSmZMQ0JQWW1wbFkzUXVabkpsWlhwbEtGdGRLU2s3WEc1OVhHNHZMeUJYYVhSb2IzVjBJSFJvWlNCZ1lYTWdjM2x0WW05c1lDQmpZWE4wY3l3Z1ZGTWdaR1ZqYkdGeVpYTWdkR2hsYzJVZ2FXNGdkR2hsSUdCMmFYTnBkR0JjYmk4dklHNWhiV1Z6Y0dGalpTQjFjMmx1WnlCZ2RtRnlZQ3dnWW5WMElIUm9aVzRnWTI5dGNHeGhhVzV6SUdGaWIzVjBJSFJvWVhRZ1ltVmpZWFZ6WlZ4dUx5OGdZSFZ1YVhGMVpTQnplVzFpYjJ4Z0lHMTFjM1FnWW1VZ1lHTnZibk4wWUM1Y2JpOHFLaUJVWlhKdGFXNWhkR1VnZG1semFYUWdkSEpoZG1WeWMyRnNJR052YlhCc1pYUmxiSGtnS2k5Y2JuWnBjMmwwTGtKU1JVRkxJRDBnUWxKRlFVczdYRzR2S2lvZ1JHOGdibTkwSUhacGMybDBJSFJvWlNCamFHbHNaSEpsYmlCdlppQjBhR1VnWTNWeWNtVnVkQ0J1YjJSbElDb3ZYRzUyYVhOcGRDNVRTMGxRSUQwZ1UwdEpVRHRjYmk4cUtpQlNaVzF2ZG1VZ2RHaGxJR04xY25KbGJuUWdibTlrWlNBcUwxeHVkbWx6YVhRdVVrVk5UMVpGSUQwZ1VrVk5UMVpGTzF4dVpuVnVZM1JwYjI0Z2RtbHphWFJmS0d0bGVTd2dibTlrWlN3Z2RtbHphWFJ2Y2l3Z2NHRjBhQ2tnZTF4dUlDQWdJR052Ym5OMElHTjBjbXdnUFNCallXeHNWbWx6YVhSdmNpaHJaWGtzSUc1dlpHVXNJSFpwYzJsMGIzSXNJSEJoZEdncE8xeHVJQ0FnSUdsbUlDaHBjMDV2WkdVb1kzUnliQ2tnZkh3Z2FYTlFZV2x5S0dOMGNtd3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGNHeGhZMlZPYjJSbEtHdGxlU3dnY0dGMGFDd2dZM1J5YkNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMmFYTnBkRjhvYTJWNUxDQmpkSEpzTENCMmFYTnBkRzl5TENCd1lYUm9LVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQmpkSEpzSUNFOVBTQW5jM2x0WW05c0p5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkRiMnhzWldOMGFXOXVLRzV2WkdVcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9JRDBnVDJKcVpXTjBMbVp5WldWNlpTaHdZWFJvTG1OdmJtTmhkQ2h1YjJSbEtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNXZaR1V1YVhSbGJYTXViR1Z1WjNSb095QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYVNBOUlIWnBjMmwwWHlocExDQnViMlJsTG1sMFpXMXpXMmxkTENCMmFYTnBkRzl5TENCd1lYUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdOcElEMDlQU0FuYm5WdFltVnlKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJR05wSUMwZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphU0E5UFQwZ1FsSkZRVXNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCQ1VrVkJTenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqYVNBOVBUMGdVa1ZOVDFaRktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1dlpHVXVhWFJsYlhNdWMzQnNhV05sS0drc0lERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDMDlJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselVHRnBjaWh1YjJSbEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhQ0E5SUU5aWFtVmpkQzVtY21WbGVtVW9jR0YwYUM1amIyNWpZWFFvYm05a1pTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTJzZ1BTQjJhWE5wZEY4b0oydGxlU2NzSUc1dlpHVXVhMlY1TENCMmFYTnBkRzl5TENCd1lYUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYXlBOVBUMGdRbEpGUVVzcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKU1JVRkxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyc2dQVDA5SUZKRlRVOVdSU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtdGxlU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqZGlBOUlIWnBjMmwwWHlnbmRtRnNkV1VuTENCdWIyUmxMblpoYkhWbExDQjJhWE5wZEc5eUxDQndZWFJvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamRpQTlQVDBnUWxKRlFVc3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFSlNSVUZMTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZM1lnUFQwOUlGSkZUVTlXUlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxMblpoYkhWbElEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZM1J5YkR0Y2JuMWNiaThxS2x4dUlDb2dRWEJ3YkhrZ1lXNGdZWE41Ym1NZ2RtbHphWFJ2Y2lCMGJ5QmhiaUJCVTFRZ2JtOWtaU0J2Y2lCa2IyTjFiV1Z1ZEM1Y2JpQXFYRzRnS2lCWFlXeHJjeUIwYUhKdmRXZG9JSFJvWlNCMGNtVmxJQ2hrWlhCMGFDMW1hWEp6ZENrZ2MzUmhjblJwYm1jZ1puSnZiU0JnYm05a1pXQXNJR05oYkd4cGJtY2dZVnh1SUNvZ1lIWnBjMmwwYjNKZ0lHWjFibU4wYVc5dUlIZHBkR2dnZEdoeVpXVWdZWEpuZFcxbGJuUnpPbHh1SUNvZ0lDQXRJR0JyWlhsZ09pQkdiM0lnYzJWeGRXVnVZMlVnZG1Gc2RXVnpJR0Z1WkNCdFlYQWdZRkJoYVhKZ0xDQjBhR1VnYm05a1pTZHpJR2x1WkdWNElHbHVJSFJvWlZ4dUlDb2dJQ0FnSUdOdmJHeGxZM1JwYjI0dUlGZHBkR2hwYmlCaElHQlFZV2x5WUN3Z1lDZHJaWGtuWUNCdmNpQmdKM1poYkhWbEoyQXNJR052Y25KbGMzQnZibVJwYm1kc2VTNWNiaUFxSUNBZ0lDQmdiblZzYkdBZ1ptOXlJSFJvWlNCeWIyOTBJRzV2WkdVdVhHNGdLaUFnSUMwZ1lHNXZaR1ZnT2lCVWFHVWdZM1Z5Y21WdWRDQnViMlJsTGx4dUlDb2dJQ0F0SUdCd1lYUm9ZRG9nVkdobElHRnVZMlZ6ZEhKNUlHOW1JSFJvWlNCamRYSnlaVzUwSUc1dlpHVXVYRzRnS2x4dUlDb2dWR2hsSUhKbGRIVnliaUIyWVd4MVpTQnZaaUIwYUdVZ2RtbHphWFJ2Y2lCdFlYa2dZbVVnZFhObFpDQjBieUJqYjI1MGNtOXNJSFJvWlNCMGNtRjJaWEp6WVd3NlhHNGdLaUFnSUMwZ1lGQnliMjFwYzJWZ09pQk5kWE4wSUhKbGMyOXNkbVVnZEc4Z2IyNWxJRzltSUhSb1pTQm1iMnhzYjNkcGJtY2dkbUZzZFdWelhHNGdLaUFnSUMwZ1lIVnVaR1ZtYVc1bFpHQWdLR1JsWm1GMWJIUXBPaUJFYnlCdWIzUm9hVzVuSUdGdVpDQmpiMjUwYVc1MVpWeHVJQ29nSUNBdElHQjJhWE5wZEM1VFMwbFFZRG9nUkc4Z2JtOTBJSFpwYzJsMElIUm9aU0JqYUdsc1pISmxiaUJ2WmlCMGFHbHpJRzV2WkdVc0lHTnZiblJwYm5WbElIZHBkR2dnYm1WNGRGeHVJQ29nSUNBZ0lITnBZbXhwYm1kY2JpQXFJQ0FnTFNCZ2RtbHphWFF1UWxKRlFVdGdPaUJVWlhKdGFXNWhkR1VnZEhKaGRtVnljMkZzSUdOdmJYQnNaWFJsYkhsY2JpQXFJQ0FnTFNCZ2RtbHphWFF1VWtWTlQxWkZZRG9nVW1WdGIzWmxJSFJvWlNCamRYSnlaVzUwSUc1dlpHVXNJSFJvWlc0Z1kyOXVkR2x1ZFdVZ2QybDBhQ0IwYUdVZ2JtVjRkQ0J2Ym1WY2JpQXFJQ0FnTFNCZ1RtOWtaV0E2SUZKbGNHeGhZMlVnZEdobElHTjFjbkpsYm5RZ2JtOWtaU3dnZEdobGJpQmpiMjUwYVc1MVpTQmllU0IyYVhOcGRHbHVaeUJwZEZ4dUlDb2dJQ0F0SUdCdWRXMWlaWEpnT2lCWGFHbHNaU0JwZEdWeVlYUnBibWNnZEdobElHbDBaVzF6SUc5bUlHRWdjMlZ4ZFdWdVkyVWdiM0lnYldGd0xDQnpaWFFnZEdobElHbHVaR1Y0WEc0Z0tpQWdJQ0FnYjJZZ2RHaGxJRzVsZUhRZ2MzUmxjQzRnVkdocGN5QnBjeUIxYzJWbWRXd2daWE53WldOcFlXeHNlU0JwWmlCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUdOMWNuSmxiblJjYmlBcUlDQWdJQ0J1YjJSbElHaGhjeUJqYUdGdVoyVmtMbHh1SUNwY2JpQXFJRWxtSUdCMmFYTnBkRzl5WUNCcGN5QmhJSE5wYm1kc1pTQm1kVzVqZEdsdmJpd2dhWFFnZDJsc2JDQmlaU0JqWVd4c1pXUWdkMmwwYUNCaGJHd2dkbUZzZFdWelhHNGdLaUJsYm1OdmRXNTBaWEpsWkNCcGJpQjBhR1VnZEhKbFpTd2dhVzVqYkhWa2FXNW5JR1V1Wnk0Z1lHNTFiR3hnSUhaaGJIVmxjeTRnUVd4MFpYSnVZWFJwZG1Wc2VTeGNiaUFxSUhObGNHRnlZWFJsSUhacGMybDBiM0lnWm5WdVkzUnBiMjV6SUcxaGVTQmlaU0JrWldacGJtVmtJR1p2Y2lCbFlXTm9JR0JOWVhCZ0xDQmdVR0ZwY21Bc0lHQlRaWEZnTEZ4dUlDb2dZRUZzYVdGellDQmhibVFnWUZOallXeGhjbUFnYm05a1pTNGdWRzhnWkdWbWFXNWxJSFJvWlNCellXMWxJSFpwYzJsMGIzSWdablZ1WTNScGIyNGdabTl5SUcxdmNtVWdkR2hoYmx4dUlDb2diMjVsSUc1dlpHVWdkSGx3WlN3Z2RYTmxJSFJvWlNCZ1EyOXNiR1ZqZEdsdmJtQWdLRzFoY0NCaGJtUWdjMlZ4S1N3Z1lGWmhiSFZsWUNBb2JXRndMQ0J6WlhFZ0ppQnpZMkZzWVhJcFhHNGdLaUJoYm1RZ1lFNXZaR1ZnSUNoaGJHbGhjeXdnYldGd0xDQnpaWEVnSmlCelkyRnNZWElwSUhSaGNtZGxkSE11SUU5bUlHRnNiQ0IwYUdWelpTd2diMjVzZVNCMGFHVWdiVzl6ZEZ4dUlDb2djM0JsWTJsbWFXTWdaR1ZtYVc1bFpDQnZibVVnZDJsc2JDQmlaU0IxYzJWa0lHWnZjaUJsWVdOb0lHNXZaR1V1WEc0Z0tpOWNibUZ6ZVc1aklHWjFibU4wYVc5dUlIWnBjMmwwUVhONWJtTW9ibTlrWlN3Z2RtbHphWFJ2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFpwYzJsMGIzSmZJRDBnYVc1cGRGWnBjMmwwYjNJb2RtbHphWFJ2Y2lrN1hHNGdJQ0FnYVdZZ0tHbHpSRzlqZFcxbGJuUW9ibTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyUWdQU0JoZDJGcGRDQjJhWE5wZEVGemVXNWpYeWh1ZFd4c0xDQnViMlJsTG1OdmJuUmxiblJ6TENCMmFYTnBkRzl5WHl3Z1QySnFaV04wTG1aeVpXVjZaU2hiYm05a1pWMHBLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTmtJRDA5UFNCU1JVMVBWa1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG1OdmJuUmxiblJ6SUQwZ2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0JoZDJGcGRDQjJhWE5wZEVGemVXNWpYeWh1ZFd4c0xDQnViMlJsTENCMmFYTnBkRzl5WHl3Z1QySnFaV04wTG1aeVpXVjZaU2hiWFNrcE8xeHVmVnh1THk4Z1YybDBhRzkxZENCMGFHVWdZR0Z6SUhONWJXSnZiR0FnWTJGemRITXNJRlJUSUdSbFkyeGhjbVZ6SUhSb1pYTmxJR2x1SUhSb1pTQmdkbWx6YVhSZ1hHNHZMeUJ1WVcxbGMzQmhZMlVnZFhOcGJtY2dZSFpoY21Bc0lHSjFkQ0IwYUdWdUlHTnZiWEJzWVdsdWN5QmhZbTkxZENCMGFHRjBJR0psWTJGMWMyVmNiaTh2SUdCMWJtbHhkV1VnYzNsdFltOXNZQ0J0ZFhOMElHSmxJR0JqYjI1emRHQXVYRzR2S2lvZ1ZHVnliV2x1WVhSbElIWnBjMmwwSUhSeVlYWmxjbk5oYkNCamIyMXdiR1YwWld4NUlDb3ZYRzUyYVhOcGRFRnplVzVqTGtKU1JVRkxJRDBnUWxKRlFVczdYRzR2S2lvZ1JHOGdibTkwSUhacGMybDBJSFJvWlNCamFHbHNaSEpsYmlCdlppQjBhR1VnWTNWeWNtVnVkQ0J1YjJSbElDb3ZYRzUyYVhOcGRFRnplVzVqTGxOTFNWQWdQU0JUUzBsUU8xeHVMeW9xSUZKbGJXOTJaU0IwYUdVZ1kzVnljbVZ1ZENCdWIyUmxJQ292WEc1MmFYTnBkRUZ6ZVc1akxsSkZUVTlXUlNBOUlGSkZUVTlXUlR0Y2JtRnplVzVqSUdaMWJtTjBhVzl1SUhacGMybDBRWE41Ym1OZktHdGxlU3dnYm05a1pTd2dkbWx6YVhSdmNpd2djR0YwYUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR04wY213Z1BTQmhkMkZwZENCallXeHNWbWx6YVhSdmNpaHJaWGtzSUc1dlpHVXNJSFpwYzJsMGIzSXNJSEJoZEdncE8xeHVJQ0FnSUdsbUlDaHBjMDV2WkdVb1kzUnliQ2tnZkh3Z2FYTlFZV2x5S0dOMGNtd3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGNHeGhZMlZPYjJSbEtHdGxlU3dnY0dGMGFDd2dZM1J5YkNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMmFYTnBkRUZ6ZVc1alh5aHJaWGtzSUdOMGNtd3NJSFpwYzJsMGIzSXNJSEJoZEdncE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUdOMGNtd2dJVDA5SUNkemVXMWliMnduS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzBOdmJHeGxZM1JwYjI0b2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoZEdnZ1BTQlBZbXBsWTNRdVpuSmxaWHBsS0hCaGRHZ3VZMjl1WTJGMEtHNXZaR1VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYm05a1pTNXBkR1Z0Y3k1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTnBJRDBnWVhkaGFYUWdkbWx6YVhSQmMzbHVZMThvYVN3Z2JtOWtaUzVwZEdWdGMxdHBYU3dnZG1semFYUnZjaXdnY0dGMGFDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYVNBOVBUMGdKMjUxYldKbGNpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrZ1BTQmphU0F0SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kya2dQVDA5SUVKU1JVRkxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUWxKRlFVczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZMmtnUFQwOUlGSkZUVTlXUlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtbDBaVzF6TG5Od2JHbGpaU2hwTENBeEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBdFBTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzFCaGFYSW9ibTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGRHZ2dQU0JQWW1wbFkzUXVabkpsWlhwbEtIQmhkR2d1WTI5dVkyRjBLRzV2WkdVcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05ySUQwZ1lYZGhhWFFnZG1semFYUkJjM2x1WTE4b0oydGxlU2NzSUc1dlpHVXVhMlY1TENCMmFYTnBkRzl5TENCd1lYUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYXlBOVBUMGdRbEpGUVVzcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKU1JVRkxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyc2dQVDA5SUZKRlRVOVdSU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtdGxlU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqZGlBOUlHRjNZV2wwSUhacGMybDBRWE41Ym1OZktDZDJZV3gxWlNjc0lHNXZaR1V1ZG1Gc2RXVXNJSFpwYzJsMGIzSXNJSEJoZEdncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjJJRDA5UFNCQ1VrVkJTeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdRbEpGUVVzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqZGlBOVBUMGdVa1ZOVDFaRktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1V1ZG1Gc2RXVWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqZEhKc08xeHVmVnh1Wm5WdVkzUnBiMjRnYVc1cGRGWnBjMmwwYjNJb2RtbHphWFJ2Y2lrZ2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2RtbHphWFJ2Y2lBOVBUMGdKMjlpYW1WamRDY2dKaVpjYmlBZ0lDQWdJQ0FnS0hacGMybDBiM0l1UTI5c2JHVmpkR2x2YmlCOGZDQjJhWE5wZEc5eUxrNXZaR1VnZkh3Z2RtbHphWFJ2Y2k1V1lXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ1FXeHBZWE02SUhacGMybDBiM0l1VG05a1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUUxaGNEb2dkbWx6YVhSdmNpNU9iMlJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdVMk5oYkdGeU9pQjJhWE5wZEc5eUxrNXZaR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQlRaWEU2SUhacGMybDBiM0l1VG05a1pWeHVJQ0FnSUNBZ0lDQjlMQ0IyYVhOcGRHOXlMbFpoYkhWbElDWW1JSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lFMWhjRG9nZG1semFYUnZjaTVXWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUZOallXeGhjam9nZG1semFYUnZjaTVXWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUZObGNUb2dkbWx6YVhSdmNpNVdZV3gxWlZ4dUlDQWdJQ0FnSUNCOUxDQjJhWE5wZEc5eUxrTnZiR3hsWTNScGIyNGdKaVlnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdUV0Z3T2lCMmFYTnBkRzl5TGtOdmJHeGxZM1JwYjI0c1hHNGdJQ0FnSUNBZ0lDQWdJQ0JUWlhFNklIWnBjMmwwYjNJdVEyOXNiR1ZqZEdsdmJseHVJQ0FnSUNBZ0lDQjlMQ0IyYVhOcGRHOXlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhacGMybDBiM0k3WEc1OVhHNW1kVzVqZEdsdmJpQmpZV3hzVm1semFYUnZjaWhyWlhrc0lHNXZaR1VzSUhacGMybDBiM0lzSUhCaGRHZ3BJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSFpwYzJsMGIzSWdQVDA5SUNkbWRXNWpkR2x2YmljcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMmFYTnBkRzl5S0d0bGVTd2dibTlrWlN3Z2NHRjBhQ2s3WEc0Z0lDQWdhV1lnS0dselRXRndLRzV2WkdVcEtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtbHphWFJ2Y2k1TllYQS9MaWhyWlhrc0lHNXZaR1VzSUhCaGRHZ3BPMXh1SUNBZ0lHbG1JQ2hwYzFObGNTaHViMlJsS1NsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhacGMybDBiM0l1VTJWeFB5NG9hMlY1TENCdWIyUmxMQ0J3WVhSb0tUdGNiaUFnSUNCcFppQW9hWE5RWVdseUtHNXZaR1VwS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZG1semFYUnZjaTVRWVdseVB5NG9hMlY1TENCdWIyUmxMQ0J3WVhSb0tUdGNiaUFnSUNCcFppQW9hWE5UWTJGc1lYSW9ibTlrWlNrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMmFYTnBkRzl5TGxOallXeGhjajh1S0d0bGVTd2dibTlrWlN3Z2NHRjBhQ2s3WEc0Z0lDQWdhV1lnS0dselFXeHBZWE1vYm05a1pTa3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJhWE5wZEc5eUxrRnNhV0Z6UHk0b2EyVjVMQ0J1YjJSbExDQndZWFJvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2NtVndiR0ZqWlU1dlpHVW9hMlY1TENCd1lYUm9MQ0J1YjJSbEtTQjdYRzRnSUNBZ1kyOXVjM1FnY0dGeVpXNTBJRDBnY0dGMGFGdHdZWFJvTG14bGJtZDBhQ0F0SURGZE8xeHVJQ0FnSUdsbUlDaHBjME52Ykd4bFkzUnBiMjRvY0dGeVpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNCd1lYSmxiblF1YVhSbGJYTmJhMlY1WFNBOUlHNXZaR1U3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tHbHpVR0ZwY2lod1lYSmxiblFwS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hyWlhrZ1BUMDlJQ2RyWlhrbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGeVpXNTBMbXRsZVNBOUlHNXZaR1U3WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGNtVnVkQzUyWVd4MVpTQTlJRzV2WkdVN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLR2x6Ukc5amRXMWxiblFvY0dGeVpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNCd1lYSmxiblF1WTI5dWRHVnVkSE1nUFNCdWIyUmxPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjSFFnUFNCcGMwRnNhV0Z6S0hCaGNtVnVkQ2tnUHlBbllXeHBZWE1uSURvZ0ozTmpZV3hoY2ljN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1EyRnVibTkwSUhKbGNHeGhZMlVnYm05a1pTQjNhWFJvSUNSN2NIUjlJSEJoY21WdWRHQXBPMXh1SUNBZ0lIMWNibjFjYmx4dVpYaHdiM0owSUhzZ2RtbHphWFFzSUhacGMybDBRWE41Ym1NZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCcGMwNXZaR1VnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QjJhWE5wZENCOUlHWnliMjBnSnk0dUwzWnBjMmwwTG1wekp6dGNibHh1WTI5dWMzUWdaWE5qWVhCbFEyaGhjbk1nUFNCN1hHNGdJQ0FnSnlFbk9pQW5KVEl4Snl4Y2JpQWdJQ0FuTENjNklDY2xNa01uTEZ4dUlDQWdJQ2RiSnpvZ0p5VTFRaWNzWEc0Z0lDQWdKMTBuT2lBbkpUVkVKeXhjYmlBZ0lDQW5leWM2SUNjbE4wSW5MRnh1SUNBZ0lDZDlKem9nSnlVM1JDZGNibjA3WEc1amIyNXpkQ0JsYzJOaGNHVlVZV2RPWVcxbElEMGdLSFJ1S1NBOVBpQjBiaTV5WlhCc1lXTmxLQzliSVN4YlhGeGRlMzFkTDJjc0lHTm9JRDArSUdWelkyRndaVU5vWVhKelcyTm9YU2s3WEc1amJHRnpjeUJFYVhKbFkzUnBkbVZ6SUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2loNVlXMXNMQ0IwWVdkektTQjdYRzRnSUNBZ0lDQWdJQzhxS2x4dUlDQWdJQ0FnSUNBZ0tpQlVhR1VnWkdseVpXTjBhWFpsY3kxbGJtUXZaRzlqTFhOMFlYSjBJRzFoY210bGNpQmdMUzB0WUM0Z1NXWWdZRzUxYkd4Z0xDQmhJRzFoY210bGNpQnRZWGtnYzNScGJHd2dZbVZjYmlBZ0lDQWdJQ0FnSUNvZ2FXNWpiSFZrWldRZ2FXNGdkR2hsSUdSdlkzVnRaVzUwSjNNZ2MzUnlhVzVuYVdacFpXUWdjbVZ3Y21WelpXNTBZWFJwYjI0dVhHNGdJQ0FnSUNBZ0lDQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtUnZZMU4wWVhKMElEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ0x5b3FJRlJvWlNCa2IyTXRaVzVrSUcxaGNtdGxjaUJnTGk0dVlDNGdJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaRzlqUlc1a0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZVdGdGJDQTlJRTlpYW1WamRDNWhjM05wWjI0b2UzMHNJRVJwY21WamRHbDJaWE11WkdWbVlYVnNkRmxoYld3c0lIbGhiV3dwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblJoWjNNZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQkVhWEpsWTNScGRtVnpMbVJsWm1GMWJIUlVZV2R6TENCMFlXZHpLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyeHZibVVvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOdmNIa2dQU0J1WlhjZ1JHbHlaV04wYVhabGN5aDBhR2x6TG5saGJXd3NJSFJvYVhNdWRHRm5jeWs3WEc0Z0lDQWdJQ0FnSUdOdmNIa3VaRzlqVTNSaGNuUWdQU0IwYUdsekxtUnZZMU4wWVhKME8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXdlVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSSFZ5YVc1bklIQmhjbk5wYm1jc0lHZGxkQ0JoSUVScGNtVmpkR2wyWlhNZ2FXNXpkR0Z1WTJVZ1ptOXlJSFJvWlNCamRYSnlaVzUwSUdSdlkzVnRaVzUwSUdGdVpGeHVJQ0FnSUNBcUlIVndaR0YwWlNCMGFHVWdjM1J5WldGdElITjBZWFJsSUdGalkyOXlaR2x1WnlCMGJ5QjBhR1VnWTNWeWNtVnVkQ0IyWlhKemFXOXVKM01nYzNCbFl5NWNiaUFnSUNBZ0tpOWNiaUFnSUNCaGRFUnZZM1Z0Wlc1MEtDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE1nUFNCdVpYY2dSR2x5WldOMGFYWmxjeWgwYUdsekxubGhiV3dzSUhSb2FYTXVkR0ZuY3lrN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTU1WVcxc0xuWmxjbk5wYjI0cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKekV1TVNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoZEU1bGVIUkViMk4xYldWdWRDQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjeExqSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVlYUk9aWGgwUkc5amRXMWxiblFnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxubGhiV3dnUFNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1Y0Y0d4cFkybDBPaUJFYVhKbFkzUnBkbVZ6TG1SbFptRjFiSFJaWVcxc0xtVjRjR3hwWTJsMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWlhKemFXOXVPaUFuTVM0eUoxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1MFlXZHpJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnUkdseVpXTjBhWFpsY3k1a1pXWmhkV3gwVkdGbmN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjenRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRSEJoY21GdElHOXVSWEp5YjNJZ0xTQk5ZWGtnWW1VZ1kyRnNiR1ZrSUdWMlpXNGdhV1lnZEdobElHRmpkR2x2YmlCM1lYTWdjM1ZqWTJWemMyWjFiRnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJR0IwY25WbFlDQnZiaUJ6ZFdOalpYTnpYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1lXUmtLR3hwYm1Vc0lHOXVSWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVZWFJPWlhoMFJHOWpkVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVlV0Z0YkNBOUlIc2daWGh3YkdsamFYUTZJRVJwY21WamRHbDJaWE11WkdWbVlYVnNkRmxoYld3dVpYaHdiR2xqYVhRc0lIWmxjbk5wYjI0NklDY3hMakVuSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuUmhaM01nUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCRWFYSmxZM1JwZG1WekxtUmxabUYxYkhSVVlXZHpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WVhST1pYaDBSRzlqZFcxbGJuUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWEowY3lBOUlHeHBibVV1ZEhKcGJTZ3BMbk53YkdsMEtDOWJJRnhjZEYwckx5azdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCd1lYSjBjeTV6YUdsbWRDZ3BPMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLRzVoYldVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKeVZVUVVjbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hCaGNuUnpMbXhsYm1kMGFDQWhQVDBnTWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLREFzSUNjbFZFRkhJR1JwY21WamRHbDJaU0J6YUc5MWJHUWdZMjl1ZEdGcGJpQmxlR0ZqZEd4NUlIUjNieUJ3WVhKMGN5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jR0Z5ZEhNdWJHVnVaM1JvSUR3Z01pbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdXMmhoYm1Sc1pTd2djSEpsWm1sNFhTQTlJSEJoY25Sek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZEdGbmMxdG9ZVzVrYkdWZElEMGdjSEpsWm1sNE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5KVmxCVFV3bk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1NVlXMXNMbVY0Y0d4cFkybDBJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0dGeWRITXViR1Z1WjNSb0lDRTlQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9NQ3dnSnlWWlFVMU1JR1JwY21WamRHbDJaU0J6YUc5MWJHUWdZMjl1ZEdGcGJpQmxlR0ZqZEd4NUlHOXVaU0J3WVhKMEp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1czWmxjbk5wYjI1ZElEMGdjR0Z5ZEhNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpsY25OcGIyNGdQVDA5SUNjeExqRW5JSHg4SUhabGNuTnBiMjRnUFQwOUlDY3hMakluS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWVXRnRiQzUyWlhKemFXOXVJRDBnZG1WeWMybHZianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnBjMVpoYkdsa0lEMGdMMTVjWEdRclhGd3VYRnhrS3lRdkxuUmxjM1FvZG1WeWMybHZiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb05pd2dZRlZ1YzNWd2NHOXlkR1ZrSUZsQlRVd2dkbVZ5YzJsdmJpQWtlM1psY25OcGIyNTlZQ3dnYVhOV1lXeHBaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvTUN3Z1lGVnVhMjV2ZDI0Z1pHbHlaV04wYVhabElDUjdibUZ0WlgxZ0xDQjBjblZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVZ6YjJ4MlpYTWdZU0IwWVdjc0lHMWhkR05vYVc1bklHaGhibVJzWlhNZ2RHOGdkR2h2YzJVZ1pHVm1hVzVsWkNCcGJpQWxWRUZISUdScGNtVmpkR2wyWlhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCU1pYTnZiSFpsWkNCMFlXY3NJSGRvYVdOb0lHMWhlU0JoYkhOdklHSmxJSFJvWlNCdWIyNHRjM0JsWTJsbWFXTWdkR0ZuSUdBbklTZGdJRzl5SUdGY2JpQWdJQ0FnS2lBZ0lHQW5JV3h2WTJGc0oyQWdkR0ZuTENCdmNpQmdiblZzYkdBZ2FXWWdkVzV5WlhOdmJIWmhZbXhsTGx4dUlDQWdJQ0FxTDF4dUlDQWdJSFJoWjA1aGJXVW9jMjkxY21ObExDQnZia1Z5Y205eUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoemIzVnlZMlVnUFQwOUlDY2hKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbklTYzdJQzh2SUc1dmJpMXpjR1ZqYVdacFl5QjBZV2RjYmlBZ0lDQWdJQ0FnYVdZZ0tITnZkWEpqWlZzd1hTQWhQVDBnSnlFbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0dCT2IzUWdZU0IyWVd4cFpDQjBZV2M2SUNSN2MyOTFjbU5sZldBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hOdmRYSmpaVnN4WFNBOVBUMGdKenduS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjJaWEppWVhScGJTQTlJSE52ZFhKalpTNXpiR2xqWlNneUxDQXRNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZG1WeVltRjBhVzBnUFQwOUlDY2hKeUI4ZkNCMlpYSmlZWFJwYlNBOVBUMGdKeUVoSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb1lGWmxjbUpoZEdsdElIUmhaM01nWVhKbGJpZDBJSEpsYzI5c2RtVmtMQ0J6YnlBa2UzTnZkWEpqWlgwZ2FYTWdhVzUyWVd4cFpDNWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6YjNWeVkyVmJjMjkxY21ObExteGxibWQwYUNBdElERmRJQ0U5UFNBblBpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpZ25WbVZ5WW1GMGFXMGdkR0ZuY3lCdGRYTjBJR1Z1WkNCM2FYUm9JR0VnUGljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFpsY21KaGRHbHRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRnNzSUdoaGJtUnNaU3dnYzNWbVptbDRYU0E5SUhOdmRYSmpaUzV0WVhSamFDZ3ZYaWd1S2lFcEtGdGVJVjBxS1NRdmN5azdYRzRnSUNBZ0lDQWdJR2xtSUNnaGMzVm1abWw0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaGdWR2hsSUNSN2MyOTFjbU5sZlNCMFlXY2dhR0Z6SUc1dklITjFabVpwZUdBcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNCMGFHbHpMblJoWjNOYmFHRnVaR3hsWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEJ5WldacGVDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEpsWm1sNElDc2daR1ZqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLSE4xWm1acGVDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtGTjBjbWx1WnlobGNuSnZjaWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hvWVc1a2JHVWdQVDA5SUNjaEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ6YjNWeVkyVTdJQzh2SUd4dlkyRnNJSFJoWjF4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0dCRGIzVnNaQ0J1YjNRZ2NtVnpiMngyWlNCMFlXYzZJQ1I3YzI5MWNtTmxmV0FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1IybDJaVzRnWVNCbWRXeHNlU0J5WlhOdmJIWmxaQ0IwWVdjc0lISmxkSFZ5Ym5NZ2FYUnpJSEJ5YVc1MFlXSnNaU0J6ZEhKcGJtY2dabTl5YlN4Y2JpQWdJQ0FnS2lCMFlXdHBibWNnYVc1MGJ5QmhZMk52ZFc1MElHTjFjbkpsYm5RZ2RHRm5JSEJ5WldacGVHVnpJR0Z1WkNCa1pXWmhkV3gwY3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwWVdkVGRISnBibWNvZEdGbktTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnVzJoaGJtUnNaU3dnY0hKbFptbDRYU0J2WmlCUFltcGxZM1F1Wlc1MGNtbGxjeWgwYUdsekxuUmhaM01wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHRm5Mbk4wWVhKMGMxZHBkR2dvY0hKbFptbDRLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhR0Z1Wkd4bElDc2daWE5qWVhCbFZHRm5UbUZ0WlNoMFlXY3VjM1ZpYzNSeWFXNW5LSEJ5WldacGVDNXNaVzVuZEdncEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR0ZuV3pCZElEMDlQU0FuSVNjZ1B5QjBZV2NnT2lCZ0lUd2tlM1JoWjMwK1lEdGNiaUFnSUNCOVhHNGdJQ0FnZEc5VGRISnBibWNvWkc5aktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeHBibVZ6SUQwZ2RHaHBjeTU1WVcxc0xtVjRjR3hwWTJsMFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUZ0Z0pWbEJUVXdnSkh0MGFHbHpMbmxoYld3dWRtVnljMmx2YmlCOGZDQW5NUzR5SjMxZ1hWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCYlhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RHRm5SVzUwY21sbGN5QTlJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11ZEdGbmN5azdYRzRnSUNBZ0lDQWdJR3hsZENCMFlXZE9ZVzFsY3p0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1J2WXlBbUppQjBZV2RGYm5SeWFXVnpMbXhsYm1kMGFDQStJREFnSmlZZ2FYTk9iMlJsS0dSdll5NWpiMjUwWlc1MGN5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSaFozTWdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpwYzJsMEtHUnZZeTVqYjI1MFpXNTBjeXdnS0Y5clpYa3NJRzV2WkdVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYTk9iMlJsS0c1dlpHVXBJQ1ltSUc1dlpHVXVkR0ZuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBZV2R6VzI1dlpHVXVkR0ZuWFNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhaMDVoYldWeklEMGdUMkpxWldOMExtdGxlWE1vZEdGbmN5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdGblRtRnRaWE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JiYUdGdVpHeGxMQ0J3Y21WbWFYaGRJRzltSUhSaFowVnVkSEpwWlhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaG9ZVzVrYkdVZ1BUMDlJQ2NoSVNjZ0ppWWdjSEpsWm1sNElEMDlQU0FuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaFpHOWpJSHg4SUhSaFowNWhiV1Z6TG5OdmJXVW9kRzRnUFQ0Z2RHNHVjM1JoY25SelYybDBhQ2h3Y21WbWFYZ3BLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0dBbFZFRkhJQ1I3YUdGdVpHeGxmU0FrZTNCeVpXWnBlSDFnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JHbHVaWE11YW05cGJpZ25YRnh1SnlrN1hHNGdJQ0FnZlZ4dWZWeHVSR2x5WldOMGFYWmxjeTVrWldaaGRXeDBXV0Z0YkNBOUlIc2daWGh3YkdsamFYUTZJR1poYkhObExDQjJaWEp6YVc5dU9pQW5NUzR5SnlCOU8xeHVSR2x5WldOMGFYWmxjeTVrWldaaGRXeDBWR0ZuY3lBOUlIc2dKeUVoSnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9pY2dmVHRjYmx4dVpYaHdiM0owSUhzZ1JHbHlaV04wYVhabGN5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpVMk5oYkdGeUxDQnBjME52Ykd4bFkzUnBiMjRnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QjJhWE5wZENCOUlHWnliMjBnSnk0dUwzWnBjMmwwTG1wekp6dGNibHh1THlvcVhHNGdLaUJXWlhKcFpua2dkR2hoZENCMGFHVWdhVzV3ZFhRZ2MzUnlhVzVuSUdseklHRWdkbUZzYVdRZ1lXNWphRzl5TGx4dUlDcGNiaUFxSUZkcGJHd2dkR2h5YjNjZ2IyNGdaWEp5YjNKekxseHVJQ292WEc1bWRXNWpkR2x2YmlCaGJtTm9iM0pKYzFaaGJHbGtLR0Z1WTJodmNpa2dlMXh1SUNBZ0lHbG1JQ2d2VzF4Y2VEQXdMVnhjZURFNVhGeHpMRnRjWEYxN2ZWMHZMblJsYzNRb1lXNWphRzl5S1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCellTQTlJRXBUVDA0dWMzUnlhVzVuYVdaNUtHRnVZMmh2Y2lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxelp5QTlJR0JCYm1Ob2IzSWdiWFZ6ZENCdWIzUWdZMjl1ZEdGcGJpQjNhR2wwWlhOd1lXTmxJRzl5SUdOdmJuUnliMndnWTJoaGNtRmpkR1Z5Y3pvZ0pIdHpZWDFnTzF4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvYlhObktUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNTlYRzVtZFc1amRHbHZiaUJoYm1Ob2IzSk9ZVzFsY3loeWIyOTBLU0I3WEc0Z0lDQWdZMjl1YzNRZ1lXNWphRzl5Y3lBOUlHNWxkeUJUWlhRb0tUdGNiaUFnSUNCMmFYTnBkQ2h5YjI5MExDQjdYRzRnSUNBZ0lDQWdJRlpoYkhWbEtGOXJaWGtzSUc1dlpHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YjJSbExtRnVZMmh2Y2lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGJtTm9iM0p6TG1Ga1pDaHViMlJsTG1GdVkyaHZjaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdZVzVqYUc5eWN6dGNibjFjYmk4cUtpQkdhVzVrSUdFZ2JtVjNJR0Z1WTJodmNpQnVZVzFsSUhkcGRHZ2dkR2hsSUdkcGRtVnVJR0J3Y21WbWFYaGdJR0Z1WkNCaElHOXVaUzFwYm1SbGVHVmtJSE4xWm1acGVDNGdLaTljYm1aMWJtTjBhVzl1SUdacGJtUk9aWGRCYm1Ob2IzSW9jSEpsWm1sNExDQmxlR05zZFdSbEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREU3SUhSeWRXVTdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdVlXMWxJRDBnWUNSN2NISmxabWw0ZlNSN2FYMWdPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXVjRZMngxWkdVdWFHRnpLRzVoYldVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVoYldVN1hHNGdJQ0FnZlZ4dWZWeHVablZ1WTNScGIyNGdZM0psWVhSbFRtOWtaVUZ1WTJodmNuTW9aRzlqTENCd2NtVm1hWGdwSUh0Y2JpQWdJQ0JqYjI1emRDQmhiR2xoYzA5aWFtVmpkSE1nUFNCYlhUdGNiaUFnSUNCamIyNXpkQ0J6YjNWeVkyVlBZbXBsWTNSeklEMGdibVYzSUUxaGNDZ3BPMXh1SUNBZ0lHeGxkQ0J3Y21WMlFXNWphRzl5Y3lBOUlHNTFiR3c3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdiMjVCYm1Ob2IzSTZJQ2h6YjNWeVkyVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZzYVdGelQySnFaV04wY3k1d2RYTm9LSE52ZFhKalpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWEJ5WlhaQmJtTm9iM0p6S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCeVpYWkJibU5vYjNKeklEMGdZVzVqYUc5eVRtRnRaWE1vWkc5aktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0Z1WTJodmNpQTlJR1pwYm1ST1pYZEJibU5vYjNJb2NISmxabWw0TENCd2NtVjJRVzVqYUc5eWN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJRVzVqYUc5eWN5NWhaR1FvWVc1amFHOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGJtTm9iM0k3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ0FnS2lCWGFYUm9JR05wY21OMWJHRnlJSEpsWm1WeVpXNWpaWE1zSUhSb1pTQnpiM1Z5WTJVZ2JtOWtaU0JwY3lCdmJteDVJSEpsYzI5c2RtVmtJR0ZtZEdWeUlHRnNiRnh1SUNBZ0lDQWdJQ0FnS2lCdlppQnBkSE1nWTJocGJHUWdibTlrWlhNZ1lYSmxMaUJVYUdseklHbHpJSGRvZVNCaGJtTm9iM0p6SUdGeVpTQnpaWFFnYjI1c2VTQmhablJsY2lCaGJHd2diMlpjYmlBZ0lDQWdJQ0FnSUNvZ2RHaGxJRzV2WkdWeklHaGhkbVVnWW1WbGJpQmpjbVZoZEdWa0xseHVJQ0FnSUNBZ0lDQWdLaTljYmlBZ0lDQWdJQ0FnYzJWMFFXNWphRzl5Y3pvZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J6YjNWeVkyVWdiMllnWVd4cFlYTlBZbXBsWTNSektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVm1JRDBnYzI5MWNtTmxUMkpxWldOMGN5NW5aWFFvYzI5MWNtTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhKbFppQTlQVDBnSjI5aWFtVmpkQ2NnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZtTG1GdVkyaHZjaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9hWE5UWTJGc1lYSW9jbVZtTG01dlpHVXBJSHg4SUdselEyOXNiR1ZqZEdsdmJpaHlaV1l1Ym05a1pTa3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxaaTV1YjJSbExtRnVZMmh2Y2lBOUlISmxaaTVoYm1Ob2IzSTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmxjbkp2Y2lBOUlHNWxkeUJGY25KdmNpZ25SbUZwYkdWa0lIUnZJSEpsYzI5c2RtVWdjbVZ3WldGMFpXUWdiMkpxWldOMElDaDBhR2x6SUhOb2IzVnNaQ0J1YjNRZ2FHRndjR1Z1S1NjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsY25KdmNpNXpiM1Z5WTJVZ1BTQnpiM1Z5WTJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHVnljbTl5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2MyOTFjbU5sVDJKcVpXTjBjMXh1SUNBZ0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lHRnVZMmh2Y2tselZtRnNhV1FzSUdGdVkyaHZjazVoYldWekxDQmpjbVZoZEdWT2IyUmxRVzVqYUc5eWN5d2dabWx1WkU1bGQwRnVZMmh2Y2lCOU8xeHVJaXdnSWk4cUtseHVJQ29nUVhCd2JHbGxjeUIwYUdVZ1NsTlBUaTV3WVhKelpTQnlaWFpwZG1WeUlHRnNaMjl5YVhSb2JTQmhjeUJrWldacGJtVmtJR2x1SUhSb1pTQkZRMDFCTFRJMk1pQnpjR1ZqTEZ4dUlDb2dhVzRnYzJWamRHbHZiaUF5TkM0MUxqRXVNU0JjSWxKMWJuUnBiV1VnVTJWdFlXNTBhV056T2lCSmJuUmxjbTVoYkdsNlpVcFRUMDVRY205d1pYSjBlVndpSUc5bUlIUm9aVnh1SUNvZ01qQXlNU0JsWkdsMGFXOXVPaUJvZEhSd2N6b3ZMM1JqTXprdVpYTXZaV050WVRJMk1pOGpjMlZqTFdwemIyNHVjR0Z5YzJWY2JpQXFYRzRnS2lCSmJtTnNkV1JsY3lCbGVIUmxibk5wYjI1eklHWnZjaUJvWVc1a2JHbHVaeUJOWVhBZ1lXNWtJRk5sZENCdlltcGxZM1J6TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJoY0hCc2VWSmxkbWwyWlhJb2NtVjJhWFpsY2l3Z2IySnFMQ0JyWlhrc0lIWmhiQ2tnZTF4dUlDQWdJR2xtSUNoMllXd2dKaVlnZEhsd1pXOW1JSFpoYkNBOVBUMGdKMjlpYW1WamRDY3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tFRnljbUY1TG1selFYSnlZWGtvZG1Gc0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd4bGJpQTlJSFpoYkM1c1pXNW5kR2c3SUdrZ1BDQnNaVzQ3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIWXdJRDBnZG1Gc1cybGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIWXhJRDBnWVhCd2JIbFNaWFpwZG1WeUtISmxkbWwyWlhJc0lIWmhiQ3dnVTNSeWFXNW5LR2twTENCMk1DazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxaGNuSmhlUzFrWld4bGRHVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZGpFZ1BUMDlJSFZ1WkdWbWFXNWxaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVnNaWFJsSUhaaGJGdHBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gyTVNBaFBUMGdkakFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiRnRwWFNBOUlIWXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSFpoYkNCcGJuTjBZVzVqWlc5bUlFMWhjQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JySUc5bUlFRnljbUY1TG1aeWIyMG9kbUZzTG10bGVYTW9LU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IyTUNBOUlIWmhiQzVuWlhRb2F5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RqRWdQU0JoY0hCc2VWSmxkbWwyWlhJb2NtVjJhWFpsY2l3Z2RtRnNMQ0JyTENCMk1DazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hZeElEMDlQU0IxYm1SbFptbHVaV1FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiQzVrWld4bGRHVW9heWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvZGpFZ0lUMDlJSFl3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3d1YzJWMEtHc3NJSFl4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoMllXd2dhVzV6ZEdGdVkyVnZaaUJUWlhRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RqQWdiMllnUVhKeVlYa3Vabkp2YlNoMllXd3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkakVnUFNCaGNIQnNlVkpsZG1sMlpYSW9jbVYyYVhabGNpd2dkbUZzTENCMk1Dd2dkakFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDJNU0E5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd3dVpHVnNaWFJsS0hZd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDJNU0FoUFQwZ2RqQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNMbVJsYkdWMFpTaDJNQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiQzVoWkdRb2RqRXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1cyc3NJSFl3WFNCdlppQlBZbXBsWTNRdVpXNTBjbWxsY3loMllXd3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkakVnUFNCaGNIQnNlVkpsZG1sMlpYSW9jbVYyYVhabGNpd2dkbUZzTENCckxDQjJNQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWXhJRDA5UFNCMWJtUmxabWx1WldRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsYkdWMFpTQjJZV3hiYTEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2RqRWdJVDA5SUhZd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4YmExMGdQU0IyTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NtVjJhWFpsY2k1allXeHNLRzlpYWl3Z2EyVjVMQ0IyWVd3cE8xeHVmVnh1WEc1bGVIQnZjblFnZXlCaGNIQnNlVkpsZG1sMlpYSWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5Qm9ZWE5CYm1Ob2IzSWdmU0JtY205dElDY3VMMmxrWlc1MGFYUjVMbXB6Snp0Y2JseHVMeW9xWEc0Z0tpQlNaV04xY25OcGRtVnNlU0JqYjI1MlpYSjBJR0Z1ZVNCdWIyUmxJRzl5SUdsMGN5QmpiMjUwWlc1MGN5QjBieUJ1WVhScGRtVWdTbUYyWVZOamNtbHdkRnh1SUNwY2JpQXFJRUJ3WVhKaGJTQjJZV3gxWlNBdElGUm9aU0JwYm5CMWRDQjJZV3gxWlZ4dUlDb2dRSEJoY21GdElHRnlaeUF0SUVsbUlHQjJZV3gxWldBZ1pHVm1hVzVsY3lCaElHQjBiMHBUVDA0b0tXQWdiV1YwYUc5a0xDQjFjMlVnZEdocGMxeHVJQ29nSUNCaGN5QnBkSE1nWm1seWMzUWdZWEpuZFcxbGJuUmNiaUFxSUVCd1lYSmhiU0JqZEhnZ0xTQkRiMjUyWlhKemFXOXVJR052Ym5SbGVIUXNJRzl5YVdkcGJtRnNiSGtnYzJWMElHbHVJRVJ2WTNWdFpXNTBJM1J2U2xNb0tTNGdTV1pjYmlBcUlDQWdZSHNnYTJWbGNEb2dkSEoxWlNCOVlDQnBjeUJ1YjNRZ2MyVjBMQ0J2ZFhSd2RYUWdjMmh2ZFd4a0lHSmxJSE4xYVhSaFlteGxJR1p2Y2lCS1UwOU9YRzRnS2lBZ0lITjBjbWx1WjJsbWFXTmhkR2x2Ymk1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnZEc5S1V5aDJZV3gxWlN3Z1lYSm5MQ0JqZEhncElIdGNiaUFnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNXZMWFZ1YzJGbVpTMXlaWFIxY201Y2JpQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2gyWVd4MVpTa3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlM1dFlYQW9LSFlzSUdrcElEMCtJSFJ2U2xNb2Rpd2dVM1J5YVc1bktHa3BMQ0JqZEhncEtUdGNiaUFnSUNCcFppQW9kbUZzZFdVZ0ppWWdkSGx3Wlc5bUlIWmhiSFZsTG5SdlNsTlBUaUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVjMkZtWlMxallXeHNYRzRnSUNBZ0lDQWdJR2xtSUNnaFkzUjRJSHg4SUNGb1lYTkJibU5vYjNJb2RtRnNkV1VwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsTG5SdlNsTlBUaWhoY21jc0lHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQjdJR0ZzYVdGelEyOTFiblE2SURBc0lHTnZkVzUwT2lBeExDQnlaWE02SUhWdVpHVm1hVzVsWkNCOU8xeHVJQ0FnSUNBZ0lDQmpkSGd1WVc1amFHOXljeTV6WlhRb2RtRnNkV1VzSUdSaGRHRXBPMXh1SUNBZ0lDQWdJQ0JqZEhndWIyNURjbVZoZEdVZ1BTQnlaWE1nUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdGMFlTNXlaWE1nUFNCeVpYTTdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXeGxkR1VnWTNSNExtOXVRM0psWVhSbE8xeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE1nUFNCMllXeDFaUzUwYjBwVFQwNG9ZWEpuTENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbTl1UTNKbFlYUmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbTl1UTNKbFlYUmxLSEpsY3lrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZGlhV2RwYm5RbklDWW1JQ0ZqZEhnL0xtdGxaWEFwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJPZFcxaVpYSW9kbUZzZFdVcE8xeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNibjFjYmx4dVpYaHdiM0owSUhzZ2RHOUtVeUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJR0Z3Y0d4NVVtVjJhWFpsY2lCOUlHWnliMjBnSnk0dUwyUnZZeTloY0hCc2VWSmxkbWwyWlhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnVGs5RVJWOVVXVkJGTENCcGMwUnZZM1Z0Wlc1MElIMGdabkp2YlNBbkxpOXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCMGIwcFRJSDBnWm5KdmJTQW5MaTkwYjBwVExtcHpKenRjYmx4dVkyeGhjM01nVG05a1pVSmhjMlVnZTF4dUlDQWdJR052Ym5OMGNuVmpkRzl5S0hSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtIUm9hWE1zSUU1UFJFVmZWRmxRUlN3Z2V5QjJZV3gxWlRvZ2RIbHdaU0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xSUVOeVpXRjBaU0JoSUdOdmNIa2diMllnZEdocGN5QnViMlJsTGlBZ0tpOWNiaUFnSUNCamJHOXVaU2dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTI5d2VTQTlJRTlpYW1WamRDNWpjbVZoZEdVb1QySnFaV04wTG1kbGRGQnliM1J2ZEhsd1pVOW1LSFJvYVhNcExDQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5Y3loMGFHbHpLU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5KaGJtZGxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXdlUzV5WVc1blpTQTlJSFJvYVhNdWNtRnVaMlV1YzJ4cFkyVW9LVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR052Y0hrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2lCQklIQnNZV2x1SUVwaGRtRlRZM0pwY0hRZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJ1YjJSbExpQXFMMXh1SUNBZ0lIUnZTbE1vWkc5akxDQjdJRzFoY0VGelRXRndMQ0J0WVhoQmJHbGhjME52ZFc1MExDQnZia0Z1WTJodmNpd2djbVYyYVhabGNpQjlJRDBnZTMwcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGcGMwUnZZM1Z0Wlc1MEtHUnZZeWtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLQ2RCSUdSdlkzVnRaVzUwSUdGeVozVnRaVzUwSUdseklISmxjWFZwY21Wa0p5azdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTjBlQ0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0Z1WTJodmNuTTZJRzVsZHlCTllYQW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnZZeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHdGxaWEE2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYQkJjMDFoY0RvZ2JXRndRWE5OWVhBZ1BUMDlJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhCTFpYbFhZWEp1WldRNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiV0Y0UVd4cFlYTkRiM1Z1ZERvZ2RIbHdaVzltSUcxaGVFRnNhV0Z6UTI5MWJuUWdQVDA5SUNkdWRXMWlaWEluSUQ4Z2JXRjRRV3hwWVhORGIzVnVkQ0E2SURFd01GeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE1nUFNCMGIwcFRLSFJvYVhNc0lDY25MQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JRzl1UVc1amFHOXlJRDA5UFNBblpuVnVZM1JwYjI0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCN0lHTnZkVzUwTENCeVpYTWdmU0J2WmlCamRIZ3VZVzVqYUc5eWN5NTJZV3gxWlhNb0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia0Z1WTJodmNpaHlaWE1zSUdOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlaWFpwZG1WeUlEMDlQU0FuWm5WdVkzUnBiMjRuWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR0Z3Y0d4NVVtVjJhWFpsY2loeVpYWnBkbVZ5TENCN0lDY25PaUJ5WlhNZ2ZTd2dKeWNzSUhKbGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ2NtVnpPMXh1SUNBZ0lIMWNibjFjYmx4dVpYaHdiM0owSUhzZ1RtOWtaVUpoYzJVZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCaGJtTm9iM0pKYzFaaGJHbGtJSDBnWm5KdmJTQW5MaTR2Wkc5akwyRnVZMmh2Y25NdWFuTW5PMXh1YVcxd2IzSjBJSHNnZG1semFYUWdmU0JtY205dElDY3VMaTkyYVhOcGRDNXFjeWM3WEc1cGJYQnZjblFnZXlCQlRFbEJVeXdnYVhOQmJHbGhjeXdnYVhORGIyeHNaV04wYVc5dUxDQnBjMUJoYVhJZ2ZTQm1jbTl0SUNjdUwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUU1dlpHVkNZWE5sSUgwZ1puSnZiU0FuTGk5T2IyUmxMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIUnZTbE1nZlNCbWNtOXRJQ2N1TDNSdlNsTXVhbk1uTzF4dVhHNWpiR0Z6Y3lCQmJHbGhjeUJsZUhSbGJtUnpJRTV2WkdWQ1lYTmxJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh6YjNWeVkyVXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9RVXhKUVZNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OdmRYSmpaU0E5SUhOdmRYSmpaVHRjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtIUm9hWE1zSUNkMFlXY25MQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaWFFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkQmJHbGhjeUJ1YjJSbGN5QmpZVzV1YjNRZ2FHRjJaU0IwWVdkekp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlNaWE52YkhabElIUm9aU0IyWVd4MVpTQnZaaUIwYUdseklHRnNhV0Z6SUhkcGRHaHBiaUJnWkc5allDd2dabWx1WkdsdVp5QjBhR1VnYkdGemRGeHVJQ0FnSUNBcUlHbHVjM1JoYm1ObElHOW1JSFJvWlNCZ2MyOTFjbU5sWUNCaGJtTm9iM0lnWW1WbWIzSmxJSFJvYVhNZ2JtOWtaUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnlaWE52YkhabEtHUnZZeWtnZTF4dUlDQWdJQ0FnSUNCc1pYUWdabTkxYm1RZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJSFpwYzJsMEtHUnZZeXdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdUbTlrWlRvZ0tGOXJaWGtzSUc1dlpHVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ibTlrWlNBOVBUMGdkR2hwY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIWnBjMmwwTGtKU1JVRkxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodWIyUmxMbUZ1WTJodmNpQTlQVDBnZEdocGN5NXpiM1Z5WTJVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p2ZFc1a0lEMGdibTlrWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWIzVnVaRHRjYmlBZ0lDQjlYRzRnSUNBZ2RHOUtVMDlPS0Y5aGNtY3NJR04wZUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOMGVDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhOdmRYSmpaVG9nZEdocGN5NXpiM1Z5WTJVZ2ZUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2V5QmhibU5vYjNKekxDQmtiMk1zSUcxaGVFRnNhV0Z6UTI5MWJuUWdmU0E5SUdOMGVEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyOTFjbU5sSUQwZ2RHaHBjeTV5WlhOdmJIWmxLR1J2WXlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYzI5MWNtTmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGMyY2dQU0JnVlc1eVpYTnZiSFpsWkNCaGJHbGhjeUFvZEdobElHRnVZMmh2Y2lCdGRYTjBJR0psSUhObGRDQmlaV1p2Y21VZ2RHaGxJR0ZzYVdGektUb2dKSHQwYUdsekxuTnZkWEpqWlgxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZKbFptVnlaVzVqWlVWeWNtOXlLRzF6WnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdiR1YwSUdSaGRHRWdQU0JoYm1Ob2IzSnpMbWRsZENoemIzVnlZMlVwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGSmxjMjlzZG1VZ1lXNWphRzl5Y3lCbWIzSWdUbTlrWlM1d2NtOTBiM1I1Y0dVdWRHOUtVeWdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBiMHBUS0hOdmRYSmpaU3dnYm5Wc2JDd2dZM1I0S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFZ1BTQmhibU5vYjNKekxtZGxkQ2h6YjNWeVkyVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4cUlHbHpkR0Z1WW5Wc0lHbG5ibTl5WlNCcFppQXFMMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXUmhkR0VnZkh3Z1pHRjBZUzV5WlhNZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JYTm5JRDBnSjFSb2FYTWdjMmh2ZFd4a0lHNXZkQ0JvWVhCd1pXNDZJRUZzYVdGeklHRnVZMmh2Y2lCM1lYTWdibTkwSUhKbGMyOXNkbVZrUHljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVW1WbVpYSmxibU5sUlhKeWIzSW9iWE5uS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvYldGNFFXeHBZWE5EYjNWdWRDQStQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaExtTnZkVzUwSUNzOUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aR0YwWVM1aGJHbGhjME52ZFc1MElEMDlQU0F3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSaGRHRXVZV3hwWVhORGIzVnVkQ0E5SUdkbGRFRnNhV0Z6UTI5MWJuUW9aRzlqTENCemIzVnlZMlVzSUdGdVkyaHZjbk1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dSaGRHRXVZMjkxYm5RZ0tpQmtZWFJoTG1Gc2FXRnpRMjkxYm5RZ1BpQnRZWGhCYkdsaGMwTnZkVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlhObklEMGdKMFY0WTJWemMybDJaU0JoYkdsaGN5QmpiM1Z1ZENCcGJtUnBZMkYwWlhNZ1lTQnlaWE52ZFhKalpTQmxlR2hoZFhOMGFXOXVJR0YwZEdGamF5YzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkpsWm1WeVpXNWpaVVZ5Y205eUtHMXpaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1JoZEdFdWNtVnpPMXh1SUNBZ0lIMWNiaUFnSUNCMGIxTjBjbWx1WnloamRIZ3NJRjl2YmtOdmJXMWxiblFzSUY5dmJrTm9iMjF3UzJWbGNDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpjbU1nUFNCZ0tpUjdkR2hwY3k1emIzVnlZMlY5WUR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR04wZUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWVc1amFHOXlTWE5XWVd4cFpDaDBhR2x6TG5OdmRYSmpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtOXdkR2x2Ym5NdWRtVnlhV1o1UVd4cFlYTlBjbVJsY2lBbUppQWhZM1I0TG1GdVkyaHZjbk11YUdGektIUm9hWE11YzI5MWNtTmxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzF6WnlBOUlHQlZibkpsYzI5c2RtVmtJR0ZzYVdGeklDaDBhR1VnWVc1amFHOXlJRzExYzNRZ1ltVWdjMlYwSUdKbFptOXlaU0IwYUdVZ1lXeHBZWE1wT2lBa2UzUm9hWE11YzI5MWNtTmxmV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRzF6WnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtbHRjR3hwWTJsMFMyVjVLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHR6Y21OOUlHQTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE55WXp0Y2JpQWdJQ0I5WEc1OVhHNW1kVzVqZEdsdmJpQm5aWFJCYkdsaGMwTnZkVzUwS0dSdll5d2dibTlrWlN3Z1lXNWphRzl5Y3lrZ2UxeHVJQ0FnSUdsbUlDaHBjMEZzYVdGektHNXZaR1VwS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOdmRYSmpaU0E5SUc1dlpHVXVjbVZ6YjJ4MlpTaGtiMk1wTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoYm1Ob2IzSWdQU0JoYm1Ob2IzSnpJQ1ltSUhOdmRYSmpaU0FtSmlCaGJtTm9iM0p6TG1kbGRDaHpiM1Z5WTJVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXNWphRzl5SUQ4Z1lXNWphRzl5TG1OdmRXNTBJQ29nWVc1amFHOXlMbUZzYVdGelEyOTFiblFnT2lBd08xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElHbG1JQ2hwYzBOdmJHeGxZM1JwYjI0b2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJR052ZFc1MElEMGdNRHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcGRHVnRJRzltSUc1dlpHVXVhWFJsYlhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR01nUFNCblpYUkJiR2xoYzBOdmRXNTBLR1J2WXl3Z2FYUmxiU3dnWVc1amFHOXljeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWXlBK0lHTnZkVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmRXNTBJRDBnWXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOTFiblE3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tHbHpVR0ZwY2lodWIyUmxLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JyWXlBOUlHZGxkRUZzYVdGelEyOTFiblFvWkc5akxDQnViMlJsTG10bGVTd2dZVzVqYUc5eWN5azdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWmpJRDBnWjJWMFFXeHBZWE5EYjNWdWRDaGtiMk1zSUc1dlpHVXVkbUZzZFdVc0lHRnVZMmh2Y25NcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1RXRjBhQzV0WVhnb2EyTXNJSFpqS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlERTdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lFRnNhV0Z6SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnVTBOQlRFRlNJSDBnWm5KdmJTQW5MaTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5Qk9iMlJsUW1GelpTQjlJR1p5YjIwZ0p5NHZUbTlrWlM1cWN5YzdYRzVwYlhCdmNuUWdleUIwYjBwVElIMGdabkp2YlNBbkxpOTBiMHBUTG1wekp6dGNibHh1WTI5dWMzUWdhWE5UWTJGc1lYSldZV3gxWlNBOUlDaDJZV3gxWlNrZ1BUNGdJWFpoYkhWbElIeDhJQ2gwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJQ2RtZFc1amRHbHZiaWNnSmlZZ2RIbHdaVzltSUhaaGJIVmxJQ0U5UFNBbmIySnFaV04wSnlrN1hHNWpiR0Z6Y3lCVFkyRnNZWElnWlhoMFpXNWtjeUJPYjJSbFFtRnpaU0I3WEc0Z0lDQWdZMjl1YzNSeWRXTjBiM0lvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9VME5CVEVGU0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1MllXeDFaU0E5SUhaaGJIVmxPMXh1SUNBZ0lIMWNiaUFnSUNCMGIwcFRUMDRvWVhKbkxDQmpkSGdwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOMGVEOHVhMlZsY0NBL0lIUm9hWE11ZG1Gc2RXVWdPaUIwYjBwVEtIUm9hWE11ZG1Gc2RXVXNJR0Z5Wnl3Z1kzUjRLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHOVRkSEpwYm1jb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQlRkSEpwYm1jb2RHaHBjeTUyWVd4MVpTazdYRzRnSUNBZ2ZWeHVmVnh1VTJOaGJHRnlMa0pNVDBOTFgwWlBURVJGUkNBOUlDZENURTlEUzE5R1QweEVSVVFuTzF4dVUyTmhiR0Z5TGtKTVQwTkxYMHhKVkVWU1FVd2dQU0FuUWt4UFEwdGZURWxVUlZKQlRDYzdYRzVUWTJGc1lYSXVVRXhCU1U0Z1BTQW5VRXhCU1U0bk8xeHVVMk5oYkdGeUxsRlZUMVJGWDBSUFZVSk1SU0E5SUNkUlZVOVVSVjlFVDFWQ1RFVW5PMXh1VTJOaGJHRnlMbEZWVDFSRlgxTkpUa2RNUlNBOUlDZFJWVTlVUlY5VFNVNUhURVVuTzF4dVhHNWxlSEJ2Y25RZ2V5QlRZMkZzWVhJc0lHbHpVMk5oYkdGeVZtRnNkV1VnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJCYkdsaGN5QjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwwRnNhV0Z6TG1wekp6dGNibWx0Y0c5eWRDQjdJR2x6VG05a1pTd2dhWE5RWVdseUxDQk5RVkFzSUZORlVTd2dhWE5FYjJOMWJXVnVkQ0I5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMmxrWlc1MGFYUjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGTmpZV3hoY2lCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDFOallXeGhjaTVxY3ljN1hHNWNibU52Ym5OMElHUmxabUYxYkhSVVlXZFFjbVZtYVhnZ1BTQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZKenRjYm1aMWJtTjBhVzl1SUdacGJtUlVZV2RQWW1wbFkzUW9kbUZzZFdVc0lIUmhaMDVoYldVc0lIUmhaM01wSUh0Y2JpQWdJQ0JwWmlBb2RHRm5UbUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUmphQ0E5SUhSaFozTXVabWxzZEdWeUtIUWdQVDRnZEM1MFlXY2dQVDA5SUhSaFowNWhiV1VwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWVdkUFltb2dQU0J0WVhSamFDNW1hVzVrS0hRZ1BUNGdJWFF1Wm05eWJXRjBLU0EvUHlCdFlYUmphRnN3WFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwWVdkUFltb3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUZSaFp5QWtlM1JoWjA1aGJXVjlJRzV2ZENCbWIzVnVaR0FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdGblQySnFPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdGbmN5NW1hVzVrS0hRZ1BUNGdkQzVwWkdWdWRHbG1lVDh1S0haaGJIVmxLU0FtSmlBaGRDNW1iM0p0WVhRcE8xeHVmVnh1Wm5WdVkzUnBiMjRnWTNKbFlYUmxUbTlrWlNoMllXeDFaU3dnZEdGblRtRnRaU3dnWTNSNEtTQjdYRzRnSUNBZ2FXWWdLR2x6Ukc5amRXMWxiblFvZG1Gc2RXVXBLVnh1SUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbExtTnZiblJsYm5Sek8xeHVJQ0FnSUdsbUlDaHBjMDV2WkdVb2RtRnNkV1VwS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYRzRnSUNBZ2FXWWdLR2x6VUdGcGNpaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRndJRDBnWTNSNExuTmphR1Z0WVZ0TlFWQmRMbU55WldGMFpVNXZaR1UvTGloamRIZ3VjMk5vWlcxaExDQnVkV3hzTENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0J0WVhBdWFYUmxiWE11Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdFlYQTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDJZV3gxWlNCcGJuTjBZVzVqWlc5bUlGTjBjbWx1WnlCOGZGeHVJQ0FnSUNBZ0lDQjJZV3gxWlNCcGJuTjBZVzVqWlc5bUlFNTFiV0psY2lCOGZGeHVJQ0FnSUNBZ0lDQjJZV3gxWlNCcGJuTjBZVzVqWlc5bUlFSnZiMnhsWVc0Z2ZIeGNiaUFnSUNBZ0lDQWdLSFI1Y0dWdlppQkNhV2RKYm5RZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbUlIWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1FtbG5TVzUwS1NBdkx5QnViM1FnYzNWd2NHOXlkR1ZrSUdWMlpYSjVkMmhsY21WY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdhSFIwY0hNNkx5OTBZek01TG1WekwyVmpiV0V5TmpJdkkzTmxZeTF6WlhKcFlXeHBlbVZxYzI5dWNISnZjR1Z5ZEhsY2JpQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCMllXeDFaUzUyWVd4MVpVOW1LQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhzZ1lXeHBZWE5FZFhCc2FXTmhkR1ZQWW1wbFkzUnpMQ0J2YmtGdVkyaHZjaXdnYjI1VVlXZFBZbW9zSUhOamFHVnRZU3dnYzI5MWNtTmxUMkpxWldOMGN5QjlJRDBnWTNSNE8xeHVJQ0FnSUM4dklFUmxkR1ZqZENCa2RYQnNhV05oZEdVZ2NtVm1aWEpsYm1ObGN5QjBieUIwYUdVZ2MyRnRaU0J2WW1wbFkzUWdKaUIxYzJVZ1FXeHBZWE1nYm05a1pYTWdabTl5SUdGc2JGeHVJQ0FnSUM4dklHRm1kR1Z5SUdacGNuTjBMaUJVYUdVZ1lISmxabUFnZDNKaGNIQmxjaUJoYkd4dmQzTWdabTl5SUdOcGNtTjFiR0Z5SUhKbFptVnlaVzVqWlhNZ2RHOGdjbVZ6YjJ4MlpTNWNiaUFnSUNCc1pYUWdjbVZtSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdsbUlDaGhiR2xoYzBSMWNHeHBZMkYwWlU5aWFtVmpkSE1nSmlZZ2RtRnNkV1VnSmlZZ2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUNBZ0lDQnlaV1lnUFNCemIzVnlZMlZQWW1wbFkzUnpMbWRsZENoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHlaV1lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGNtVm1MbUZ1WTJodmNpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaV1l1WVc1amFHOXlJRDBnYjI1QmJtTm9iM0lvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkJiR2xoY3loeVpXWXVZVzVqYUc5eUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbFppQTlJSHNnWVc1amFHOXlPaUJ1ZFd4c0xDQnViMlJsT2lCdWRXeHNJSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpiM1Z5WTJWUFltcGxZM1J6TG5ObGRDaDJZV3gxWlN3Z2NtVm1LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZEdGblRtRnRaVDh1YzNSaGNuUnpWMmwwYUNnbklTRW5LU2xjYmlBZ0lDQWdJQ0FnZEdGblRtRnRaU0E5SUdSbFptRjFiSFJVWVdkUWNtVm1hWGdnS3lCMFlXZE9ZVzFsTG5Oc2FXTmxLRElwTzF4dUlDQWdJR3hsZENCMFlXZFBZbW9nUFNCbWFXNWtWR0ZuVDJKcVpXTjBLSFpoYkhWbExDQjBZV2RPWVcxbExDQnpZMmhsYldFdWRHRm5jeWs3WEc0Z0lDQWdhV1lnS0NGMFlXZFBZbW9wSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElDWW1JSFI1Y0dWdlppQjJZV3gxWlM1MGIwcFRUMDRnUFQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibTh0ZFc1ellXWmxMV05oYkd4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdkbUZzZFdVdWRHOUtVMDlPS0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0NGMllXeDFaU0I4ZkNCMGVYQmxiMllnZG1Gc2RXVWdJVDA5SUNkdlltcGxZM1FuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2JtVjNJRk5qWVd4aGNpaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVm1LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsWmk1dWIyUmxJRDBnYm05a1pUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1YjJSbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJoWjA5aWFpQTlYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0JwYm5OMFlXNWpaVzltSUUxaGNGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdjMk5vWlcxaFcwMUJVRjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUZONWJXSnZiQzVwZEdWeVlYUnZjaUJwYmlCUFltcGxZM1FvZG1Gc2RXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2MyTm9aVzFoVzFORlVWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCelkyaGxiV0ZiVFVGUVhUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHOXVWR0ZuVDJKcUtTQjdYRzRnSUNBZ0lDQWdJRzl1VkdGblQySnFLSFJoWjA5aWFpazdYRzRnSUNBZ0lDQWdJR1JsYkdWMFpTQmpkSGd1YjI1VVlXZFBZbW83WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUc1dlpHVWdQU0IwWVdkUFltby9MbU55WldGMFpVNXZaR1ZjYmlBZ0lDQWdJQ0FnUHlCMFlXZFBZbW91WTNKbFlYUmxUbTlrWlNoamRIZ3VjMk5vWlcxaExDQjJZV3gxWlN3Z1kzUjRLVnh1SUNBZ0lDQWdJQ0E2SUhSNWNHVnZaaUIwWVdkUFltby9MbTV2WkdWRGJHRnpjejh1Wm5KdmJTQTlQVDBnSjJaMWJtTjBhVzl1SjF4dUlDQWdJQ0FnSUNBZ0lDQWdQeUIwWVdkUFltb3VibTlrWlVOc1lYTnpMbVp5YjIwb1kzUjRMbk5qYUdWdFlTd2dkbUZzZFdVc0lHTjBlQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dibVYzSUZOallXeGhjaWgyWVd4MVpTazdYRzRnSUNBZ2FXWWdLSFJoWjA1aGJXVXBYRzRnSUNBZ0lDQWdJRzV2WkdVdWRHRm5JRDBnZEdGblRtRnRaVHRjYmlBZ0lDQmxiSE5sSUdsbUlDZ2hkR0ZuVDJKcUxtUmxabUYxYkhRcFhHNGdJQ0FnSUNBZ0lHNXZaR1V1ZEdGbklEMGdkR0ZuVDJKcUxuUmhaenRjYmlBZ0lDQnBaaUFvY21WbUtWeHVJQ0FnSUNBZ0lDQnlaV1l1Ym05a1pTQTlJRzV2WkdVN1hHNGdJQ0FnY21WMGRYSnVJRzV2WkdVN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdOeVpXRjBaVTV2WkdVZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCamNtVmhkR1ZPYjJSbElIMGdabkp2YlNBbkxpNHZaRzlqTDJOeVpXRjBaVTV2WkdVdWFuTW5PMXh1YVcxd2IzSjBJSHNnYVhOT2IyUmxMQ0JwYzFCaGFYSXNJR2x6UTI5c2JHVmpkR2x2Yml3Z2FYTlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUU1dlpHVkNZWE5sSUgwZ1puSnZiU0FuTGk5T2IyUmxMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdZMjlzYkdWamRHbHZia1p5YjIxUVlYUm9LSE5qYUdWdFlTd2djR0YwYUN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0JzWlhRZ2RpQTlJSFpoYkhWbE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQndZWFJvTG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ0xTMXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3NnUFNCd1lYUm9XMmxkTzF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHc2dQVDA5SUNkdWRXMWlaWEluSUNZbUlFNTFiV0psY2k1cGMwbHVkR1ZuWlhJb2F5a2dKaVlnYXlBK1BTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmhXMnRkSUQwZ2RqdGNiaUFnSUNBZ0lDQWdJQ0FnSUhZZ1BTQmhPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RpQTlJRzVsZHlCTllYQW9XMXRyTENCMlhWMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCamNtVmhkR1ZPYjJSbEtIWXNJSFZ1WkdWbWFXNWxaQ3dnZTF4dUlDQWdJQ0FnSUNCaGJHbGhjMFIxY0d4cFkyRjBaVTlpYW1WamRITTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQnJaV1Z3Vlc1a1pXWnBibVZrT2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnYjI1QmJtTm9iM0k2SUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblZHaHBjeUJ6YUc5MWJHUWdibTkwSUdoaGNIQmxiaXdnY0d4bFlYTmxJSEpsY0c5eWRDQmhJR0oxWnk0bktUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYzJOb1pXMWhMRnh1SUNBZ0lDQWdJQ0J6YjNWeVkyVlBZbXBsWTNSek9pQnVaWGNnVFdGd0tDbGNiaUFnSUNCOUtUdGNibjFjYmk4dklGUjVjR1VnWjNWaGNtUWdhWE1nYVc1MFpXNTBhVzl1WVd4c2VTQmhJR3hwZEhSc1pTQjNjbTl1WnlCemJ5QmhjeUIwYnlCaVpTQnRiM0psSUhWelpXWjFiQ3hjYmk4dklHRnpJR2wwSUdSdlpYTWdibTkwSUdOdmRtVnlJSFZ1ZEhsd1lXSnNaU0JsYlhCMGVTQnViMjR0YzNSeWFXNW5JR2wwWlhKaFlteGxjeUFvWlM1bkxpQmJYU2t1WEc1amIyNXpkQ0JwYzBWdGNIUjVVR0YwYUNBOUlDaHdZWFJvS1NBOVBpQndZWFJvSUQwOUlHNTFiR3dnZkh4Y2JpQWdJQ0FvZEhsd1pXOW1JSEJoZEdnZ1BUMDlJQ2R2WW1wbFkzUW5JQ1ltSUNFaGNHRjBhRnRUZVcxaWIyd3VhWFJsY21GMGIzSmRLQ2t1Ym1WNGRDZ3BMbVJ2Ym1VcE8xeHVZMnhoYzNNZ1EyOXNiR1ZqZEdsdmJpQmxlSFJsYm1SeklFNXZaR1ZDWVhObElIdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsTENCelkyaGxiV0VwSUh0Y2JpQWdJQ0FnSUNBZ2MzVndaWElvZEhsd1pTazdYRzRnSUNBZ0lDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoMGFHbHpMQ0FuYzJOb1pXMWhKeXdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklITmphR1Z0WVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnVkVzFsY21GaWJHVTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZDNKcGRHRmliR1U2SUhSeWRXVmNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpTQmhJR052Y0hrZ2IyWWdkR2hwY3lCamIyeHNaV04wYVc5dUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhOamFHVnRZU0F0SUVsbUlHUmxabWx1WldRc0lHOTJaWEozY21sMFpYTWdkR2hsSUc5eWFXZHBibUZzSjNNZ2MyTm9aVzFoWEc0Z0lDQWdJQ292WEc0Z0lDQWdZMnh2Ym1Vb2MyTm9aVzFoS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOdmNIa2dQU0JQWW1wbFkzUXVZM0psWVhSbEtFOWlhbVZqZEM1blpYUlFjbTkwYjNSNWNHVlBaaWgwYUdsektTd2dUMkpxWldOMExtZGxkRTkzYmxCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y25Nb2RHaHBjeWtwTzF4dUlDQWdJQ0FnSUNCcFppQW9jMk5vWlcxaEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5d2VTNXpZMmhsYldFZ1BTQnpZMmhsYldFN1hHNGdJQ0FnSUNBZ0lHTnZjSGt1YVhSbGJYTWdQU0JqYjNCNUxtbDBaVzF6TG0xaGNDaHBkQ0E5UGlCcGMwNXZaR1VvYVhRcElIeDhJR2x6VUdGcGNpaHBkQ2tnUHlCcGRDNWpiRzl1WlNoelkyaGxiV0VwSURvZ2FYUXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV5WVc1blpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmNIa3VjbUZ1WjJVZ1BTQjBhR2x6TG5KaGJtZGxMbk5zYVdObEtDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiM0I1TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCWkdSeklHRWdkbUZzZFdVZ2RHOGdkR2hsSUdOdmJHeGxZM1JwYjI0dUlFWnZjaUJnSVNGdFlYQmdJR0Z1WkNCZ0lTRnZiV0Z3WUNCMGFHVWdkbUZzZFdVZ2JYVnpkRnh1SUNBZ0lDQXFJR0psSUdFZ1VHRnBjaUJwYm5OMFlXNWpaU0J2Y2lCaElHQjdJR3RsZVN3Z2RtRnNkV1VnZldBZ2IySnFaV04wTENCM2FHbGphQ0J0WVhrZ2JtOTBJR2hoZG1VZ1lTQnJaWGxjYmlBZ0lDQWdLaUIwYUdGMElHRnNjbVZoWkhrZ1pYaHBjM1J6SUdsdUlIUm9aU0J0WVhBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWVdSa1NXNG9jR0YwYUN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x6Ulcxd2RIbFFZWFJvS0hCaGRHZ3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoWkdRb2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUZ0clpYa3NJQzR1TG5KbGMzUmRJRDBnY0dGMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQjBhR2x6TG1kbGRDaHJaWGtzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x6UTI5c2JHVmpkR2x2YmlodWIyUmxLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtRmtaRWx1S0hKbGMzUXNJSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0c1dlpHVWdQVDA5SUhWdVpHVm1hVzVsWkNBbUppQjBhR2x6TG5OamFHVnRZU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkQ2hyWlhrc0lHTnZiR3hsWTNScGIyNUdjbTl0VUdGMGFDaDBhR2x6TG5OamFHVnRZU3dnY21WemRDd2dkbUZzZFdVcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFVjRjR1ZqZEdWa0lGbEJUVXdnWTI5c2JHVmpkR2x2YmlCaGRDQWtlMnRsZVgwdUlGSmxiV0ZwYm1sdVp5QndZWFJvT2lBa2UzSmxjM1I5WUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnRiM1psY3lCaElIWmhiSFZsSUdaeWIyMGdkR2hsSUdOdmJHeGxZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlIUm9aU0JwZEdWdElIZGhjeUJtYjNWdVpDQmhibVFnY21WdGIzWmxaQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQmtaV3hsZEdWSmJpaHdZWFJvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0clpYa3NJQzR1TG5KbGMzUmRJRDBnY0dGMGFEdGNiaUFnSUNBZ0lDQWdhV1lnS0hKbGMzUXViR1Z1WjNSb0lEMDlQU0F3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WkdWc1pYUmxLR3RsZVNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1dlpHVWdQU0IwYUdsekxtZGxkQ2hyWlhrc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5EYjJ4c1pXTjBhVzl1S0c1dlpHVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1dlpHVXVaR1ZzWlhSbFNXNG9jbVZ6ZENrN1hHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1JYaHdaV04wWldRZ1dVRk5UQ0JqYjJ4c1pXTjBhVzl1SUdGMElDUjdhMlY1ZlM0Z1VtVnRZV2x1YVc1bklIQmhkR2c2SUNSN2NtVnpkSDFnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WMGRYSnVjeUJwZEdWdElHRjBJR0JyWlhsZ0xDQnZjaUJnZFc1a1pXWnBibVZrWUNCcFppQnViM1FnWm05MWJtUXVJRUo1SUdSbFptRjFiSFFnZFc1M2NtRndjMXh1SUNBZ0lDQXFJSE5qWVd4aGNpQjJZV3gxWlhNZ1puSnZiU0IwYUdWcGNpQnpkWEp5YjNWdVpHbHVaeUJ1YjJSbE95QjBieUJrYVhOaFlteGxJSE5sZENCZ2EyVmxjRk5qWVd4aGNtQWdkRzljYmlBZ0lDQWdLaUJnZEhKMVpXQWdLR052Ykd4bFkzUnBiMjV6SUdGeVpTQmhiSGRoZVhNZ2NtVjBkWEp1WldRZ2FXNTBZV04wS1M1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JuWlhSSmJpaHdZWFJvTENCclpXVndVMk5oYkdGeUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElGdHJaWGtzSUM0dUxuSmxjM1JkSUQwZ2NHRjBhRHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdibTlrWlNBOUlIUm9hWE11WjJWMEtHdGxlU3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjBMbXhsYm1kMGFDQTlQVDBnTUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQWhhMlZsY0ZOallXeGhjaUFtSmlCcGMxTmpZV3hoY2lodWIyUmxLU0EvSUc1dlpHVXVkbUZzZFdVZ09pQnViMlJsTzF4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVhORGIyeHNaV04wYVc5dUtHNXZaR1VwSUQ4Z2JtOWtaUzVuWlhSSmJpaHlaWE4wTENCclpXVndVMk5oYkdGeUtTQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzRnSUNBZ2FHRnpRV3hzVG5Wc2JGWmhiSFZsY3loaGJHeHZkMU5qWVd4aGNpa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1cGRHVnRjeTVsZG1WeWVTaHViMlJsSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hhWE5RWVdseUtHNXZaR1VwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzRnUFNCdWIyUmxMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2h1SUQwOUlHNTFiR3dnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb1lXeHNiM2RUWTJGc1lYSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYTlRZMkZzWVhJb2Jpa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JpNTJZV3gxWlNBOVBTQnVkV3hzSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0Z1TG1OdmJXMWxiblJDWldadmNtVWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lXNHVZMjl0YldWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBaGJpNTBZV2NwS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQjBhR1VnWTI5c2JHVmpkR2x2YmlCcGJtTnNkV1JsY3lCaElIWmhiSFZsSUhkcGRHZ2dkR2hsSUd0bGVTQmdhMlY1WUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JvWVhOSmJpaHdZWFJvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0clpYa3NJQzR1TG5KbGMzUmRJRDBnY0dGMGFEdGNiaUFnSUNBZ0lDQWdhV1lnS0hKbGMzUXViR1Z1WjNSb0lEMDlQU0F3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YUdGektHdGxlU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQjBhR2x6TG1kbGRDaHJaWGtzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5EYjJ4c1pXTjBhVzl1S0c1dlpHVXBJRDhnYm05a1pTNW9ZWE5KYmloeVpYTjBLU0E2SUdaaGJITmxPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlRaWFJ6SUdFZ2RtRnNkV1VnYVc0Z2RHaHBjeUJqYjJ4c1pXTjBhVzl1TGlCR2IzSWdZQ0VoYzJWMFlDd2dZSFpoYkhWbFlDQnVaV1ZrY3lCMGJ5QmlaU0JoWEc0Z0lDQWdJQ29nWW05dmJHVmhiaUIwYnlCaFpHUXZjbVZ0YjNabElIUm9aU0JwZEdWdElHWnliMjBnZEdobElITmxkQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnpaWFJKYmlod1lYUm9MQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmJhMlY1TENBdUxpNXlaWE4wWFNBOUlIQmhkR2c3WEc0Z0lDQWdJQ0FnSUdsbUlDaHlaWE4wTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhRb2EyVjVMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdkR2hwY3k1blpYUW9hMlY1TENCMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzBOdmJHeGxZM1JwYjI0b2JtOWtaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pTNXpaWFJKYmloeVpYTjBMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNodWIyUmxJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdkR2hwY3k1elkyaGxiV0VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFFvYTJWNUxDQmpiMnhzWldOMGFXOXVSbkp2YlZCaGRHZ29kR2hwY3k1elkyaGxiV0VzSUhKbGMzUXNJSFpoYkhWbEtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkZlSEJsWTNSbFpDQlpRVTFNSUdOdmJHeGxZM1JwYjI0Z1lYUWdKSHRyWlhsOUxpQlNaVzFoYVc1cGJtY2djR0YwYURvZ0pIdHlaWE4wZldBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCRGIyeHNaV04wYVc5dUxDQmpiMnhzWldOMGFXOXVSbkp2YlZCaGRHZ3NJR2x6Ulcxd2RIbFFZWFJvSUgwN1hHNGlMQ0FpTHlvcVhHNGdLaUJUZEhKcGJtZHBabWxsY3lCaElHTnZiVzFsYm5RdVhHNGdLbHh1SUNvZ1JXMXdkSGtnWTI5dGJXVnVkQ0JzYVc1bGN5QmhjbVVnYkdWbWRDQmxiWEIwZVN4Y2JpQXFJR3hwYm1WeklHTnZibk5wYzNScGJtY2diMllnWVNCemFXNW5iR1VnYzNCaFkyVWdZWEpsSUhKbGNHeGhZMlZrSUdKNUlHQWpZQ3hjYmlBcUlHRnVaQ0JoYkd3Z2IzUm9aWElnYkdsdVpYTWdZWEpsSUhCeVpXWnBlR1ZrSUhkcGRHZ2dZU0JnSTJBdVhHNGdLaTljYm1OdmJuTjBJSE4wY21sdVoybG1lVU52YlcxbGJuUWdQU0FvYzNSeUtTQTlQaUJ6ZEhJdWNtVndiR0ZqWlNndlhpZy9JU1FwS0Q4NklDUXBQeTluYlN3Z0p5TW5LVHRjYm1aMWJtTjBhVzl1SUdsdVpHVnVkRU52YlcxbGJuUW9ZMjl0YldWdWRDd2dhVzVrWlc1MEtTQjdYRzRnSUNBZ2FXWWdLQzllWEZ4dUt5UXZMblJsYzNRb1kyOXRiV1Z1ZENrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamIyMXRaVzUwTG5OMVluTjBjbWx1WnlneEtUdGNiaUFnSUNCeVpYUjFjbTRnYVc1a1pXNTBJRDhnWTI5dGJXVnVkQzV5WlhCc1lXTmxLQzllS0Q4aElDb2tLUzluYlN3Z2FXNWtaVzUwS1NBNklHTnZiVzFsYm5RN1hHNTlYRzVqYjI1emRDQnNhVzVsUTI5dGJXVnVkQ0E5SUNoemRISXNJR2x1WkdWdWRDd2dZMjl0YldWdWRDa2dQVDRnYzNSeUxtVnVaSE5YYVhSb0tDZGNYRzRuS1Z4dUlDQWdJRDhnYVc1a1pXNTBRMjl0YldWdWRDaGpiMjF0Wlc1MExDQnBibVJsYm5RcFhHNGdJQ0FnT2lCamIyMXRaVzUwTG1sdVkyeDFaR1Z6S0NkY1hHNG5LVnh1SUNBZ0lDQWdJQ0EvSUNkY1hHNG5JQ3NnYVc1a1pXNTBRMjl0YldWdWRDaGpiMjF0Wlc1MExDQnBibVJsYm5RcFhHNGdJQ0FnSUNBZ0lEb2dLSE4wY2k1bGJtUnpWMmwwYUNnbklDY3BJRDhnSnljZ09pQW5JQ2NwSUNzZ1kyOXRiV1Z1ZER0Y2JseHVaWGh3YjNKMElIc2dhVzVrWlc1MFEyOXRiV1Z1ZEN3Z2JHbHVaVU52YlcxbGJuUXNJSE4wY21sdVoybG1lVU52YlcxbGJuUWdmVHRjYmlJc0lDSmpiMjV6ZENCR1QweEVYMFpNVDFjZ1BTQW5abXh2ZHljN1hHNWpiMjV6ZENCR1QweEVYMEpNVDBOTElEMGdKMkpzYjJOckp6dGNibU52Ym5OMElFWlBURVJmVVZWUFZFVkVJRDBnSjNGMWIzUmxaQ2M3WEc0dktpcGNiaUFxSUZSeWFXVnpJSFJ2SUd0bFpYQWdhVzV3ZFhRZ1lYUWdkWEFnZEc4Z1lHeHBibVZYYVdSMGFHQWdZMmhoY21GamRHVnljeXdnYzNCc2FYUjBhVzVuSUc5dWJIa2diMjRnYzNCaFkyVnpYRzRnS2lCdWIzUWdabTlzYkc5M1pXUWdZbmtnYm1WM2JHbHVaWE1nYjNJZ2MzQmhZMlZ6SUhWdWJHVnpjeUJnYlc5a1pXQWdhWE1nWUNkeGRXOTBaV1FuWUM0Z1RHbHVaWE1nWVhKbFhHNGdLaUIwWlhKdGFXNWhkR1ZrSUhkcGRHZ2dZRnhjYm1BZ1lXNWtJSE4wWVhKMFpXUWdkMmwwYUNCZ2FXNWtaVzUwWUM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnWm05c1pFWnNiM2RNYVc1bGN5aDBaWGgwTENCcGJtUmxiblFzSUcxdlpHVWdQU0FuWm14dmR5Y3NJSHNnYVc1a1pXNTBRWFJUZEdGeWRDd2diR2x1WlZkcFpIUm9JRDBnT0RBc0lHMXBia052Ym5SbGJuUlhhV1IwYUNBOUlESXdMQ0J2YmtadmJHUXNJRzl1VDNabGNtWnNiM2NnZlNBOUlIdDlLU0I3WEc0Z0lDQWdhV1lnS0NGc2FXNWxWMmxrZEdnZ2ZId2diR2x1WlZkcFpIUm9JRHdnTUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSbGVIUTdYRzRnSUNBZ2FXWWdLR3hwYm1WWGFXUjBhQ0E4SUcxcGJrTnZiblJsYm5SWGFXUjBhQ2xjYmlBZ0lDQWdJQ0FnYldsdVEyOXVkR1Z1ZEZkcFpIUm9JRDBnTUR0Y2JpQWdJQ0JqYjI1emRDQmxibVJUZEdWd0lEMGdUV0YwYUM1dFlYZ29NU0FySUcxcGJrTnZiblJsYm5SWGFXUjBhQ3dnTVNBcklHeHBibVZYYVdSMGFDQXRJR2x1WkdWdWRDNXNaVzVuZEdncE8xeHVJQ0FnSUdsbUlDaDBaWGgwTG14bGJtZDBhQ0E4UFNCbGJtUlRkR1Z3S1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdWNGREdGNiaUFnSUNCamIyNXpkQ0JtYjJ4a2N5QTlJRnRkTzF4dUlDQWdJR052Ym5OMElHVnpZMkZ3WldSR2IyeGtjeUE5SUh0OU8xeHVJQ0FnSUd4bGRDQmxibVFnUFNCc2FXNWxWMmxrZEdnZ0xTQnBibVJsYm5RdWJHVnVaM1JvTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYVc1a1pXNTBRWFJUZEdGeWRDQTlQVDBnSjI1MWJXSmxjaWNwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x1WkdWdWRFRjBVM1JoY25RZ1BpQnNhVzVsVjJsa2RHZ2dMU0JOWVhSb0xtMWhlQ2d5TENCdGFXNURiMjUwWlc1MFYybGtkR2dwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdabTlzWkhNdWNIVnphQ2d3S1R0Y2JpQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXNWtJRDBnYkdsdVpWZHBaSFJvSUMwZ2FXNWtaVzUwUVhSVGRHRnlkRHRjYmlBZ0lDQjlYRzRnSUNBZ2JHVjBJSE53YkdsMElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lHeGxkQ0J3Y21WMklEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lHeGxkQ0J2ZG1WeVpteHZkeUE5SUdaaGJITmxPMXh1SUNBZ0lHeGxkQ0JwSUQwZ0xURTdYRzRnSUNBZ2JHVjBJR1Z6WTFOMFlYSjBJRDBnTFRFN1hHNGdJQ0FnYkdWMElHVnpZMFZ1WkNBOUlDMHhPMXh1SUNBZ0lHbG1JQ2h0YjJSbElEMDlQU0JHVDB4RVgwSk1UME5MS1NCN1hHNGdJQ0FnSUNBZ0lHa2dQU0JqYjI1emRXMWxUVzl5WlVsdVpHVnVkR1ZrVEdsdVpYTW9kR1Y0ZEN3Z2FTd2dhVzVrWlc1MExteGxibWQwYUNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwSUNFOVBTQXRNU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnVaQ0E5SUdrZ0t5QmxibVJUZEdWd08xeHVJQ0FnSUgxY2JpQWdJQ0JtYjNJZ0tHeGxkQ0JqYURzZ0tHTm9JRDBnZEdWNGRGc29hU0FyUFNBeEtWMHBPeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9iVzlrWlNBOVBUMGdSazlNUkY5UlZVOVVSVVFnSmlZZ1kyZ2dQVDA5SUNkY1hGeGNKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaWE5qVTNSaGNuUWdQU0JwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaDBaWGgwVzJrZ0t5QXhYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM2duT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJQ3M5SURNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwSUNzOUlEVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oxVW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDczlJRGs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHa2dLejBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnpZMFZ1WkNBOUlHazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHTm9JRDA5UFNBblhGeHVKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0cxdlpHVWdQVDA5SUVaUFRFUmZRa3hQUTBzcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJR052Ym5OMWJXVk5iM0psU1c1a1pXNTBaV1JNYVc1bGN5aDBaWGgwTENCcExDQnBibVJsYm5RdWJHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkNBOUlHa2dLeUJwYm1SbGJuUXViR1Z1WjNSb0lDc2daVzVrVTNSbGNEdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOd2JHbDBJRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuSUNjZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbVYySUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISmxkaUFoUFQwZ0p5QW5JQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRpQWhQVDBnSjF4Y2JpY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3Y21WMklDRTlQU0FuWEZ4MEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUhOd1lXTmxJSE4xY25KdmRXNWtaV1FnWW5rZ2JtOXVMWE53WVdObElHTmhiaUJpWlNCeVpYQnNZV05sWkNCM2FYUm9JRzVsZDJ4cGJtVWdLeUJwYm1SbGJuUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpYaDBJRDBnZEdWNGRGdHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzVsZUhRZ0ppWWdibVY0ZENBaFBUMGdKeUFuSUNZbUlHNWxlSFFnSVQwOUlDZGNYRzRuSUNZbUlHNWxlSFFnSVQwOUlDZGNYSFFuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpjR3hwZENBOUlHazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FTQStQU0JsYm1RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNCc2FYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXNaSE11Y0hWemFDaHpjR3hwZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1Z1WkNBOUlITndiR2wwSUNzZ1pXNWtVM1JsY0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM0JzYVhRZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLRzF2WkdVZ1BUMDlJRVpQVEVSZlVWVlBWRVZFS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUhkb2FYUmxMWE53WVdObElHTnZiR3hsWTNSbFpDQmhkQ0JsYm1RZ2JXRjVJSE4wY21WMFkyZ2djR0Z6ZENCc2FXNWxWMmxrZEdoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tIQnlaWFlnUFQwOUlDY2dKeUI4ZkNCd2NtVjJJRDA5UFNBblhGeDBKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRpQTlJR05vTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBaWGgwV3locElDczlJREVwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MlpYSm1iRzkzSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCQlkyTnZkVzUwSUdadmNpQnVaWGRzYVc1bElHVnpZMkZ3WlN3Z1luVjBJR1J2YmlkMElHSnlaV0ZySUhCeVpXTmxaR2x1WnlCbGMyTmhjR1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYWlBOUlHa2dQaUJsYzJORmJtUWdLeUF4SUQ4Z2FTQXRJRElnT2lCbGMyTlRkR0Z5ZENBdElERTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFSmhhV3dnYjNWMElHbG1JR3hwYm1WWGFXUjBhQ0FtSUcxcGJrTnZiblJsYm5SWGFXUjBhQ0JoY21VZ2MyaHZjblJsY2lCMGFHRnVJR0Z1SUdWelkyRndaU0J6ZEhKcGJtZGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnpZMkZ3WldSR2IyeGtjMXRxWFNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwWlhoME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjJ4a2N5NXdkWE5vS0dvcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYzJOaGNHVmtSbTlzWkhOYmFsMGdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYm1RZ1BTQnFJQ3NnWlc1a1UzUmxjRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzQnNhWFFnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZkbVZ5Wm14dmR5QTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIQnlaWFlnUFNCamFEdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHOTJaWEptYkc5M0lDWW1JRzl1VDNabGNtWnNiM2NwWEc0Z0lDQWdJQ0FnSUc5dVQzWmxjbVpzYjNjb0tUdGNiaUFnSUNCcFppQW9abTlzWkhNdWJHVnVaM1JvSUQwOVBTQXdLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR1Y0ZER0Y2JpQWdJQ0JwWmlBb2IyNUdiMnhrS1Z4dUlDQWdJQ0FnSUNCdmJrWnZiR1FvS1R0Y2JpQWdJQ0JzWlhRZ2NtVnpJRDBnZEdWNGRDNXpiR2xqWlNnd0xDQm1iMnhrYzFzd1hTazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm1iMnhrY3k1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm1iMnhrSUQwZ1ptOXNaSE5iYVYwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpDQTlJR1p2YkdSelcya2dLeUF4WFNCOGZDQjBaWGgwTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHWnZiR1FnUFQwOUlEQXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYTWdQU0JnWEZ4dUpIdHBibVJsYm5SOUpIdDBaWGgwTG5Oc2FXTmxLREFzSUdWdVpDbDlZRHRjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iVzlrWlNBOVBUMGdSazlNUkY5UlZVOVVSVVFnSmlZZ1pYTmpZWEJsWkVadmJHUnpXMlp2YkdSZEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjeUFyUFNCZ0pIdDBaWGgwVzJadmJHUmRmVnhjWEZ4Z08xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WeklDczlJR0JjWEc0a2UybHVaR1Z1ZEgwa2UzUmxlSFF1YzJ4cFkyVW9abTlzWkNBcklERXNJR1Z1WkNsOVlEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY21Wek8xeHVmVnh1THlvcVhHNGdLaUJRY21WemRXMWxjeUJnYVNBcklERmdJR2x6SUdGMElIUm9aU0J6ZEdGeWRDQnZaaUJoSUd4cGJtVmNiaUFxSUVCeVpYUjFjbTV6SUdsdVpHVjRJRzltSUd4aGMzUWdibVYzYkdsdVpTQnBiaUJ0YjNKbExXbHVaR1Z1ZEdWa0lHSnNiMk5yWEc0Z0tpOWNibVoxYm1OMGFXOXVJR052Ym5OMWJXVk5iM0psU1c1a1pXNTBaV1JNYVc1bGN5aDBaWGgwTENCcExDQnBibVJsYm5RcElIdGNiaUFnSUNCc1pYUWdaVzVrSUQwZ2FUdGNiaUFnSUNCc1pYUWdjM1JoY25RZ1BTQnBJQ3NnTVR0Y2JpQWdJQ0JzWlhRZ1kyZ2dQU0IwWlhoMFczTjBZWEowWFR0Y2JpQWdJQ0IzYUdsc1pTQW9ZMmdnUFQwOUlDY2dKeUI4ZkNCamFDQTlQVDBnSjF4Y2RDY3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHa2dQQ0J6ZEdGeWRDQXJJR2x1WkdWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyZ2dQU0IwWlhoMFd5c3JhVjA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtieUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBaWGgwV3lzcmFWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlIZG9hV3hsSUNoamFDQW1KaUJqYUNBaFBUMGdKMXhjYmljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0lEMGdhVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowSUQwZ2FTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmphQ0E5SUhSbGVIUmJjM1JoY25SZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJsYm1RN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUVaUFRFUmZRa3hQUTBzc0lFWlBURVJmUmt4UFZ5d2dSazlNUkY5UlZVOVVSVVFzSUdadmJHUkdiRzkzVEdsdVpYTWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5VFkyRnNZWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dabTlzWkVac2IzZE1hVzVsY3l3Z1JrOU1SRjlSVlU5VVJVUXNJRVpQVEVSZlJreFBWeXdnUms5TVJGOUNURTlEU3lCOUlHWnliMjBnSnk0dlptOXNaRVpzYjNkTWFXNWxjeTVxY3ljN1hHNWNibU52Ym5OMElHZGxkRVp2YkdSUGNIUnBiMjV6SUQwZ0tHTjBlQ3dnYVhOQ2JHOWpheWtnUFQ0Z0tIdGNiaUFnSUNCcGJtUmxiblJCZEZOMFlYSjBPaUJwYzBKc2IyTnJJRDhnWTNSNExtbHVaR1Z1ZEM1c1pXNW5kR2dnT2lCamRIZ3VhVzVrWlc1MFFYUlRkR0Z5ZEN4Y2JpQWdJQ0JzYVc1bFYybGtkR2c2SUdOMGVDNXZjSFJwYjI1ekxteHBibVZYYVdSMGFDeGNiaUFnSUNCdGFXNURiMjUwWlc1MFYybGtkR2c2SUdOMGVDNXZjSFJwYjI1ekxtMXBia052Ym5SbGJuUlhhV1IwYUZ4dWZTazdYRzR2THlCQmJITnZJR05vWldOcmN5Qm1iM0lnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBbExDQmhjeUJ3WVhKemFXNW5JSFJvWlNCdmRYUndkWFFnWVhNZ1dVRk5UQ0F4TGpFZ2QybHNiRnh1THk4Z2NISmxjM1Z0WlNCMGFHRjBKM01nYzNSaGNuUnBibWNnWVNCdVpYY2daRzlqZFcxbGJuUXVYRzVqYjI1emRDQmpiMjUwWVdsdWMwUnZZM1Z0Wlc1MFRXRnlhMlZ5SUQwZ0tITjBjaWtnUFQ0Z0wxNG9KWHd0TFMxOFhGd3VYRnd1WEZ3dUtTOXRMblJsYzNRb2MzUnlLVHRjYm1aMWJtTjBhVzl1SUd4cGJtVk1aVzVuZEdoUGRtVnlUR2x0YVhRb2MzUnlMQ0JzYVc1bFYybGtkR2dzSUdsdVpHVnVkRXhsYm1kMGFDa2dlMXh1SUNBZ0lHbG1JQ2doYkdsdVpWZHBaSFJvSUh4OElHeHBibVZYYVdSMGFDQThJREFwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCamIyNXpkQ0JzYVcxcGRDQTlJR3hwYm1WWGFXUjBhQ0F0SUdsdVpHVnVkRXhsYm1kMGFEdGNiaUFnSUNCamIyNXpkQ0J6ZEhKTVpXNGdQU0J6ZEhJdWJHVnVaM1JvTzF4dUlDQWdJR2xtSUNoemRISk1aVzRnUEQwZ2JHbHRhWFFwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNQ3dnYzNSaGNuUWdQU0F3T3lCcElEd2djM1J5VEdWdU95QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE4wY2x0cFhTQTlQVDBnSjF4Y2JpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwSUMwZ2MzUmhjblFnUGlCc2FXMXBkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMElEMGdhU0FySURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MzUnlUR1Z1SUMwZ2MzUmhjblFnUEQwZ2JHbHRhWFFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVmVnh1Wm5WdVkzUnBiMjRnWkc5MVlteGxVWFZ2ZEdWa1UzUnlhVzVuS0haaGJIVmxMQ0JqZEhncElIdGNiaUFnSUNCamIyNXpkQ0JxYzI5dUlEMGdTbE5QVGk1emRISnBibWRwWm5rb2RtRnNkV1VwTzF4dUlDQWdJR2xtSUNoamRIZ3ViM0IwYVc5dWN5NWtiM1ZpYkdWUmRXOTBaV1JCYzBwVFQwNHBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnFjMjl1TzF4dUlDQWdJR052Ym5OMElIc2dhVzF3YkdsamFYUkxaWGtnZlNBOUlHTjBlRHRjYmlBZ0lDQmpiMjV6ZENCdGFXNU5kV3gwYVV4cGJtVk1aVzVuZEdnZ1BTQmpkSGd1YjNCMGFXOXVjeTVrYjNWaWJHVlJkVzkwWldSTmFXNU5kV3gwYVV4cGJtVk1aVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdhVzVrWlc1MElEMGdZM1I0TG1sdVpHVnVkQ0I4ZkNBb1kyOXVkR0ZwYm5ORWIyTjFiV1Z1ZEUxaGNtdGxjaWgyWVd4MVpTa2dQeUFuSUNBbklEb2dKeWNwTzF4dUlDQWdJR3hsZENCemRISWdQU0FuSnp0Y2JpQWdJQ0JzWlhRZ2MzUmhjblFnUFNBd08xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdMQ0JqYUNBOUlHcHpiMjViYVYwN0lHTm9PeUJqYUNBOUlHcHpiMjViS3l0cFhTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1kyZ2dQVDA5SUNjZ0p5QW1KaUJxYzI5dVcya2dLeUF4WFNBOVBUMGdKMXhjWEZ3bklDWW1JR3B6YjI1YmFTQXJJREpkSUQwOVBTQW5iaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUhOd1lXTmxJR0psWm05eVpTQnVaWGRzYVc1bElHNWxaV1J6SUhSdklHSmxJR1Z6WTJGd1pXUWdkRzhnYm05MElHSmxJR1p2YkdSbFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlDczlJR3B6YjI0dWMyeHBZMlVvYzNSaGNuUXNJR2twSUNzZ0oxeGNYRndnSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2tnS3owZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMFlYSjBJRDBnYVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05vSUQwZ0oxeGNYRnduTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYUNBOVBUMGdKMXhjWEZ3bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2hxYzI5dVcya2dLeUF4WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhJZ0t6MGdhbk52Ymk1emJHbGpaU2h6ZEdGeWRDd2dhU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpiMlJsSUQwZ2FuTnZiaTV6ZFdKemRISW9hU0FySURJc0lEUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaGpiMlJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbk1EQXdNQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY2lBclBTQW5YRnhjWERBbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2N3TURBM0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUNkY1hGeGNZU2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p6QXdNR0luT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhJZ0t6MGdKMXhjWEZ4Mkp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuTURBeFlpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNBblhGeGNYR1VuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDY3dNRGcxSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlDczlJQ2RjWEZ4Y1RpYzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpBd1lUQW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ0oxeGNYRnhmSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5NakF5T0NjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0FuWEZ4Y1hFd25PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjeU1ESTVKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlDZGNYRnhjVUNjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamIyUmxMbk4xWW5OMGNpZ3dMQ0F5S1NBOVBUMGdKekF3SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNBblhGeGNYSGduSUNzZ1kyOWtaUzV6ZFdKemRISW9NaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNCcWMyOXVMbk4xWW5OMGNpaHBMQ0EyS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrZ0t6MGdOVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMElEMGdhU0FySURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5iaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYlhCc2FXTnBkRXRsZVNCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FuTnZibHRwSUNzZ01sMGdQVDA5SUNkY0lpY2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3B6YjI0dWJHVnVaM1JvSUR3Z2JXbHVUWFZzZEdsTWFXNWxUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJQ3M5SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCbWIyeGthVzVuSUhkcGJHd2daV0YwSUdacGNuTjBJRzVsZDJ4cGJtVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNCcWMyOXVMbk5zYVdObEtITjBZWEowTENCcEtTQXJJQ2RjWEc1Y1hHNG5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tHcHpiMjViYVNBcklESmRJRDA5UFNBblhGeGNYQ2NnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnFjMjl1VzJrZ0t5QXpYU0E5UFQwZ0oyNG5JQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FuTnZibHRwSUNzZ05GMGdJVDA5SUNkY0lpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdLejBnSjF4Y2JpYzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBclBTQXlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlHbHVaR1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklITndZV05sSUdGbWRHVnlJRzVsZDJ4cGJtVWdibVZsWkhNZ2RHOGdZbVVnWlhOallYQmxaQ0IwYnlCdWIzUWdZbVVnWm05c1pHVmtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYW5OdmJsdHBJQ3NnTWwwZ1BUMDlJQ2NnSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ0oxeGNYRnduTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBclBTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RZ1BTQnBJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDczlJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhOMGNpQTlJSE4wWVhKMElEOGdjM1J5SUNzZ2FuTnZiaTV6YkdsalpTaHpkR0Z5ZENrZ09pQnFjMjl1TzF4dUlDQWdJSEpsZEhWeWJpQnBiWEJzYVdOcGRFdGxlVnh1SUNBZ0lDQWdJQ0EvSUhOMGNseHVJQ0FnSUNBZ0lDQTZJR1p2YkdSR2JHOTNUR2x1WlhNb2MzUnlMQ0JwYm1SbGJuUXNJRVpQVEVSZlVWVlBWRVZFTENCblpYUkdiMnhrVDNCMGFXOXVjeWhqZEhnc0lHWmhiSE5sS1NrN1hHNTlYRzVtZFc1amRHbHZiaUJ6YVc1bmJHVlJkVzkwWldSVGRISnBibWNvZG1Gc2RXVXNJR04wZUNrZ2UxeHVJQ0FnSUdsbUlDaGpkSGd1YjNCMGFXOXVjeTV6YVc1bmJHVlJkVzkwWlNBOVBUMGdabUZzYzJVZ2ZIeGNiaUFnSUNBZ0lDQWdLR04wZUM1cGJYQnNhV05wZEV0bGVTQW1KaUIyWVd4MVpTNXBibU5zZFdSbGN5Z25YRnh1SnlrcElIeDhYRzRnSUNBZ0lDQWdJQzliSUZ4Y2RGMWNYRzU4WEZ4dVd5QmNYSFJkTHk1MFpYTjBLSFpoYkhWbEtTQXZMeUJ6YVc1bmJHVWdjWFZ2ZEdWa0lITjBjbWx1WnlCallXNG5kQ0JvWVhabElHeGxZV1JwYm1jZ2IzSWdkSEpoYVd4cGJtY2dkMmhwZEdWemNHRmpaU0JoY205MWJtUWdibVYzYkdsdVpWeHVJQ0FnSUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdSdmRXSnNaVkYxYjNSbFpGTjBjbWx1WnloMllXeDFaU3dnWTNSNEtUdGNiaUFnSUNCamIyNXpkQ0JwYm1SbGJuUWdQU0JqZEhndWFXNWtaVzUwSUh4OElDaGpiMjUwWVdsdWMwUnZZM1Z0Wlc1MFRXRnlhMlZ5S0haaGJIVmxLU0EvSUNjZ0lDY2dPaUFuSnlrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ1hDSW5YQ0lnS3lCMllXeDFaUzV5WlhCc1lXTmxLQzhuTDJjc0lGd2lKeWRjSWlrdWNtVndiR0ZqWlNndlhGeHVLeTluTENCZ0pDWmNYRzRrZTJsdVpHVnVkSDFnS1NBcklGd2lKMXdpTzF4dUlDQWdJSEpsZEhWeWJpQmpkSGd1YVcxd2JHbGphWFJMWlhsY2JpQWdJQ0FnSUNBZ1B5QnlaWE5jYmlBZ0lDQWdJQ0FnT2lCbWIyeGtSbXh2ZDB4cGJtVnpLSEpsY3l3Z2FXNWtaVzUwTENCR1QweEVYMFpNVDFjc0lHZGxkRVp2YkdSUGNIUnBiMjV6S0dOMGVDd2dabUZzYzJVcEtUdGNibjFjYm1aMWJtTjBhVzl1SUhGMWIzUmxaRk4wY21sdVp5aDJZV3gxWlN3Z1kzUjRLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnphVzVuYkdWUmRXOTBaU0I5SUQwZ1kzUjRMbTl3ZEdsdmJuTTdYRzRnSUNBZ2JHVjBJSEZ6TzF4dUlDQWdJR2xtSUNoemFXNW5iR1ZSZFc5MFpTQTlQVDBnWm1Gc2MyVXBYRzRnSUNBZ0lDQWdJSEZ6SUQwZ1pHOTFZbXhsVVhWdmRHVmtVM1J5YVc1bk8xeHVJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm9ZWE5FYjNWaWJHVWdQU0IyWVd4MVpTNXBibU5zZFdSbGN5Z25YQ0luS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYUdGelUybHVaMnhsSUQwZ2RtRnNkV1V1YVc1amJIVmtaWE1vWENJblhDSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FHRnpSRzkxWW14bElDWW1JQ0ZvWVhOVGFXNW5iR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhjeUE5SUhOcGJtZHNaVkYxYjNSbFpGTjBjbWx1Wnp0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FHRnpVMmx1WjJ4bElDWW1JQ0ZvWVhORWIzVmliR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhjeUE5SUdSdmRXSnNaVkYxYjNSbFpGTjBjbWx1Wnp0Y2JpQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NYTWdQU0J6YVc1bmJHVlJkVzkwWlNBL0lITnBibWRzWlZGMWIzUmxaRk4wY21sdVp5QTZJR1J2ZFdKc1pWRjFiM1JsWkZOMGNtbHVaenRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhGektIWmhiSFZsTENCamRIZ3BPMXh1ZlZ4dUx5OGdWR2hsSUc1bFoyRjBhWFpsSUd4dmIydGlaV2hwYm1RZ1lYWnZhV1J6SUdFZ2NHOXNlVzV2YldsaGJDQnpaV0Z5WTJnc1hHNHZMeUJpZFhRZ2FYTnVKM1FnYzNWd2NHOXlkR1ZrSUhsbGRDQnZiaUJUWVdaaGNtazZJR2gwZEhCek9pOHZZMkZ1YVhWelpTNWpiMjB2YW5NdGNtVm5aWGh3TFd4dmIydGlaV2hwYm1SY2JteGxkQ0JpYkc5amEwVnVaRTVsZDJ4cGJtVnpPMXh1ZEhKNUlIdGNiaUFnSUNCaWJHOWphMFZ1WkU1bGQyeHBibVZ6SUQwZ2JtVjNJRkpsWjBWNGNDZ25LRjU4S0Q4OElWeGNiaWtwWEZ4dUt5Zy9JVnhjYm53a0tTY3NJQ2RuSnlrN1hHNTlYRzVqWVhSamFDQjdYRzRnSUNBZ1lteHZZMnRGYm1ST1pYZHNhVzVsY3lBOUlDOWNYRzRyS0Q4aFhGeHVmQ1FwTDJjN1hHNTlYRzVtZFc1amRHbHZiaUJpYkc5amExTjBjbWx1WnloN0lHTnZiVzFsYm5Rc0lIUjVjR1VzSUhaaGJIVmxJSDBzSUdOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnWW14dlkydFJkVzkwWlN3Z1kyOXRiV1Z1ZEZOMGNtbHVaeXdnYkdsdVpWZHBaSFJvSUgwZ1BTQmpkSGd1YjNCMGFXOXVjenRjYmlBZ0lDQXZMeUF4TGlCQ2JHOWpheUJqWVc0bmRDQmxibVFnYVc0Z2QyaHBkR1Z6Y0dGalpTQjFibXhsYzNNZ2RHaGxJR3hoYzNRZ2JHbHVaU0JwY3lCdWIyNHRaVzF3ZEhrdVhHNGdJQ0FnTHk4Z01pNGdVM1J5YVc1bmN5QmpiMjV6YVhOMGFXNW5JRzltSUc5dWJIa2dkMmhwZEdWemNHRmpaU0JoY21VZ1ltVnpkQ0J5Wlc1a1pYSmxaQ0JsZUhCc2FXTnBkR3g1TGx4dUlDQWdJR2xtSUNnaFlteHZZMnRSZFc5MFpTQjhmQ0F2WEZ4dVcxeGNkQ0JkS3lRdkxuUmxjM1FvZG1Gc2RXVXBJSHg4SUM5ZVhGeHpLaVF2TG5SbGMzUW9kbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnhkVzkwWldSVGRISnBibWNvZG1Gc2RXVXNJR04wZUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHbHVaR1Z1ZENBOUlHTjBlQzVwYm1SbGJuUWdmSHhjYmlBZ0lDQWdJQ0FnS0dOMGVDNW1iM0pqWlVKc2IyTnJTVzVrWlc1MElIeDhJR052Ym5SaGFXNXpSRzlqZFcxbGJuUk5ZWEpyWlhJb2RtRnNkV1VwSUQ4Z0p5QWdKeUE2SUNjbktUdGNiaUFnSUNCamIyNXpkQ0JzYVhSbGNtRnNJRDBnWW14dlkydFJkVzkwWlNBOVBUMGdKMnhwZEdWeVlXd25YRzRnSUNBZ0lDQWdJRDhnZEhKMVpWeHVJQ0FnSUNBZ0lDQTZJR0pzYjJOclVYVnZkR1VnUFQwOUlDZG1iMnhrWldRbklIeDhJSFI1Y0dVZ1BUMDlJRk5qWVd4aGNpNUNURTlEUzE5R1QweEVSVVJjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdabUZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nZEhsd1pTQTlQVDBnVTJOaGJHRnlMa0pNVDBOTFgweEpWRVZTUVV4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lIUnlkV1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUNGc2FXNWxUR1Z1WjNSb1QzWmxja3hwYldsMEtIWmhiSFZsTENCc2FXNWxWMmxrZEdnc0lHbHVaR1Z1ZEM1c1pXNW5kR2dwTzF4dUlDQWdJR2xtSUNnaGRtRnNkV1VwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJzYVhSbGNtRnNJRDhnSjN4Y1hHNG5JRG9nSno1Y1hHNG5PMXh1SUNBZ0lDOHZJR1JsZEdWeWJXbHVaU0JqYUc5dGNHbHVaeUJtY205dElIZG9hWFJsYzNCaFkyVWdZWFFnZG1Gc2RXVWdaVzVrWEc0Z0lDQWdiR1YwSUdOb2IyMXdPMXh1SUNBZ0lHeGxkQ0JsYm1SVGRHRnlkRHRjYmlBZ0lDQm1iM0lnS0dWdVpGTjBZWEowSUQwZ2RtRnNkV1V1YkdWdVozUm9PeUJsYm1SVGRHRnlkQ0ErSURBN0lDMHRaVzVrVTNSaGNuUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmdnUFNCMllXeDFaVnRsYm1SVGRHRnlkQ0F0SURGZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWTJnZ0lUMDlJQ2RjWEc0bklDWW1JR05vSUNFOVBTQW5YRngwSnlBbUppQmphQ0FoUFQwZ0p5QW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNBZ0lHeGxkQ0JsYm1RZ1BTQjJZV3gxWlM1emRXSnpkSEpwYm1jb1pXNWtVM1JoY25RcE8xeHVJQ0FnSUdOdmJuTjBJR1Z1WkU1c1VHOXpJRDBnWlc1a0xtbHVaR1Y0VDJZb0oxeGNiaWNwTzF4dUlDQWdJR2xtSUNobGJtUk9iRkJ2Y3lBOVBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ1kyaHZiWEFnUFNBbkxTYzdJQzh2SUhOMGNtbHdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0haaGJIVmxJRDA5UFNCbGJtUWdmSHdnWlc1a1RteFFiM01nSVQwOUlHVnVaQzVzWlc1bmRHZ2dMU0F4S1NCN1hHNGdJQ0FnSUNBZ0lHTm9iMjF3SUQwZ0p5c25PeUF2THlCclpXVndYRzRnSUNBZ0lDQWdJR2xtSUNodmJrTm9iMjF3UzJWbGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVEyaHZiWEJMWldWd0tDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JqYUc5dGNDQTlJQ2NuT3lBdkx5QmpiR2x3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hsYm1RcElIdGNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1BTQjJZV3gxWlM1emJHbGpaU2d3TENBdFpXNWtMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJR2xtSUNobGJtUmJaVzVrTG14bGJtZDBhQ0F0SURGZElEMDlQU0FuWEZ4dUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdVpDQTlJR1Z1WkM1emJHbGpaU2d3TENBdE1TazdYRzRnSUNBZ0lDQWdJR1Z1WkNBOUlHVnVaQzV5WlhCc1lXTmxLR0pzYjJOclJXNWtUbVYzYkdsdVpYTXNJR0FrSmlSN2FXNWtaVzUwZldBcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCa1pYUmxjbTFwYm1VZ2FXNWtaVzUwSUdsdVpHbGpZWFJ2Y2lCbWNtOXRJSGRvYVhSbGMzQmhZMlVnWVhRZ2RtRnNkV1VnYzNSaGNuUmNiaUFnSUNCc1pYUWdjM1JoY25SWGFYUm9VM0JoWTJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JzWlhRZ2MzUmhjblJGYm1RN1hHNGdJQ0FnYkdWMElITjBZWEowVG14UWIzTWdQU0F0TVR0Y2JpQWdJQ0JtYjNJZ0tITjBZWEowUlc1a0lEMGdNRHNnYzNSaGNuUkZibVFnUENCMllXeDFaUzVzWlc1bmRHZzdJQ3NyYzNSaGNuUkZibVFwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJnZ1BTQjJZV3gxWlZ0emRHRnlkRVZ1WkYwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqYUNBOVBUMGdKeUFuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjM1JoY25SWGFYUm9VM0JoWTJVZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFDQTlQVDBnSjF4Y2JpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRTVzVUc5eklEMGdjM1JoY25SRmJtUTdYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUgxY2JpQWdJQ0JzWlhRZ2MzUmhjblFnUFNCMllXeDFaUzV6ZFdKemRISnBibWNvTUN3Z2MzUmhjblJPYkZCdmN5QThJSE4wWVhKMFJXNWtJRDhnYzNSaGNuUk9iRkJ2Y3lBcklERWdPaUJ6ZEdGeWRFVnVaQ2s3WEc0Z0lDQWdhV1lnS0hOMFlYSjBLU0I3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnZG1Gc2RXVXVjM1ZpYzNSeWFXNW5LSE4wWVhKMExteGxibWQwYUNrN1hHNGdJQ0FnSUNBZ0lITjBZWEowSUQwZ2MzUmhjblF1Y21Wd2JHRmpaU2d2WEZ4dUt5OW5MQ0JnSkNZa2UybHVaR1Z1ZEgxZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdhVzVrWlc1MFUybDZaU0E5SUdsdVpHVnVkQ0EvSUNjeUp5QTZJQ2N4SnpzZ0x5OGdjbTl2ZENCcGN5QmhkQ0F0TVZ4dUlDQWdJR3hsZENCb1pXRmtaWElnUFNBb2JHbDBaWEpoYkNBL0lDZDhKeUE2SUNjK0p5a2dLeUFvYzNSaGNuUlhhWFJvVTNCaFkyVWdQeUJwYm1SbGJuUlRhWHBsSURvZ0p5Y3BJQ3NnWTJodmJYQTdYRzRnSUNBZ2FXWWdLR052YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnYUdWaFpHVnlJQ3M5SUNjZ0p5QXJJR052YlcxbGJuUlRkSEpwYm1jb1kyOXRiV1Z1ZEM1eVpYQnNZV05sS0M4Z1AxdGNYSEpjWEc1ZEt5OW5MQ0FuSUNjcEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0c5dVEyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UTI5dGJXVnVkQ2dwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYkdsMFpYSmhiQ2tnZTF4dUlDQWdJQ0FnSUNCMllXeDFaU0E5SUhaaGJIVmxMbkpsY0d4aFkyVW9MMXhjYmlzdlp5d2dZQ1FtSkh0cGJtUmxiblI5WUNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCZ0pIdG9aV0ZrWlhKOVhGeHVKSHRwYm1SbGJuUjlKSHR6ZEdGeWRIMGtlM1poYkhWbGZTUjdaVzVrZldBN1hHNGdJQ0FnZlZ4dUlDQWdJSFpoYkhWbElEMGdkbUZzZFdWY2JpQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb0wxeGNiaXN2Wnl3Z0oxeGNiaVFtSnlsY2JpQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb0x5Zy9PbDU4WEZ4dUtTaGJYRngwSUYwdUtpa29Qem9vVzF4Y2JseGNkQ0JkS2lsY1hHNG9QeUZiWEZ4dVhGeDBJRjBwS1Q4dlp5d2dKeVF4SkRJbktTQXZMeUJ0YjNKbExXbHVaR1Z1ZEdWa0lHeHBibVZ6SUdGeVpXNG5kQ0JtYjJ4a1pXUmNiaUFnSUNBZ0lDQWdMeThnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYaUJ0YjNKbExXbHVaQzRnWGlCbGJYQjBlU0FnSUNBZ1hpQmpZWEIwZFhKbElHNWxlSFFnWlcxd2RIa2diR2x1WlhNZ2IyNXNlU0JoZENCbGJtUWdiMllnYVc1a1pXNTBYRzRnSUNBZ0lDQWdJQzV5WlhCc1lXTmxLQzljWEc0ckwyY3NJR0FrSmlSN2FXNWtaVzUwZldBcE8xeHVJQ0FnSUdOdmJuTjBJR0p2WkhrZ1BTQm1iMnhrUm14dmQweHBibVZ6S0dBa2UzTjBZWEowZlNSN2RtRnNkV1Y5Skh0bGJtUjlZQ3dnYVc1a1pXNTBMQ0JHVDB4RVgwSk1UME5MTENCblpYUkdiMnhrVDNCMGFXOXVjeWhqZEhnc0lIUnlkV1VwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3YUdWaFpHVnlmVnhjYmlSN2FXNWtaVzUwZlNSN1ltOWtlWDFnTzF4dWZWeHVablZ1WTNScGIyNGdjR3hoYVc1VGRISnBibWNvYVhSbGJTd2dZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QjBlWEJsTENCMllXeDFaU0I5SUQwZ2FYUmxiVHRjYmlBZ0lDQmpiMjV6ZENCN0lHRmpkSFZoYkZOMGNtbHVaeXdnYVcxd2JHbGphWFJMWlhrc0lHbHVaR1Z1ZEN3Z2FXNWtaVzUwVTNSbGNDd2dhVzVHYkc5M0lIMGdQU0JqZEhnN1hHNGdJQ0FnYVdZZ0tDaHBiWEJzYVdOcGRFdGxlU0FtSmlCMllXeDFaUzVwYm1Oc2RXUmxjeWduWEZ4dUp5a3BJSHg4WEc0Z0lDQWdJQ0FnSUNocGJrWnNiM2NnSmlZZ0wxdGJYRnhkZTMwc1hTOHVkR1Z6ZENoMllXeDFaU2twS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeGRXOTBaV1JUZEhKcGJtY29kbUZzZFdVc0lHTjBlQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2doZG1Gc2RXVWdmSHhjYmlBZ0lDQWdJQ0FnTDE1YlhGeHVYRngwSUN4YlhGeGRlMzBqSmlvaGZENG5YQ0lsUUdCZGZGNWJQeTFkSkh4ZVd6OHRYVnNnWEZ4MFhYeGJYRnh1T2wxYklGeGNkRjE4V3lCY1hIUmRYRnh1ZkZ0Y1hHNWNYSFFnWFNOOFcxeGNibHhjZENBNlhTUXZMblJsYzNRb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRzV2ZENCaGJHeHZkMlZrT2x4dUlDQWdJQ0FnSUNBdkx5QXRJR1Z0Y0hSNUlITjBjbWx1Wnl3Z0p5MG5JRzl5SUNjL0oxeHVJQ0FnSUNBZ0lDQXZMeUF0SUhOMFlYSjBJSGRwZEdnZ1lXNGdhVzVrYVdOaGRHOXlJR05vWVhKaFkzUmxjaUFvWlhoalpYQjBJRnMvT2kxZEtTQnZjaUF2V3o4dFhTQXZYRzRnSUNBZ0lDQWdJQzh2SUMwZ0oxeGNiaUFuTENBbk9pQW5JRzl5SUNjZ1hGeHVKeUJoYm5sM2FHVnlaVnh1SUNBZ0lDQWdJQ0F2THlBdElDY2pKeUJ1YjNRZ2NISmxZMlZrWldRZ1lua2dZU0J1YjI0dGMzQmhZMlVnWTJoaGNseHVJQ0FnSUNBZ0lDQXZMeUF0SUdWdVpDQjNhWFJvSUNjZ0p5QnZjaUFuT2lkY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdGNHeHBZMmwwUzJWNUlIeDhJR2x1Um14dmR5QjhmQ0FoZG1Gc2RXVXVhVzVqYkhWa1pYTW9KMXhjYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhGMWIzUmxaRk4wY21sdVp5aDJZV3gxWlN3Z1kzUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQmliRzlqYTFOMGNtbHVaeWhwZEdWdExDQmpkSGdzSUc5dVEyOXRiV1Z1ZEN3Z2IyNURhRzl0Y0V0bFpYQXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9JV2x0Y0d4cFkybDBTMlY1SUNZbVhHNGdJQ0FnSUNBZ0lDRnBia1pzYjNjZ0ppWmNiaUFnSUNBZ0lDQWdkSGx3WlNBaFBUMGdVMk5oYkdGeUxsQk1RVWxPSUNZbVhHNGdJQ0FnSUNBZ0lIWmhiSFZsTG1sdVkyeDFaR1Z6S0NkY1hHNG5LU2tnZTF4dUlDQWdJQ0FnSUNBdkx5QlhhR1Z5WlNCaGJHeHZkMlZrSUNZZ2RIbHdaU0J1YjNRZ2MyVjBJR1Y0Y0d4cFkybDBiSGtzSUhCeVpXWmxjaUJpYkc5amF5QnpkSGxzWlNCbWIzSWdiWFZzZEdsc2FXNWxJSE4wY21sdVozTmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHSnNiMk5yVTNSeWFXNW5LR2wwWlcwc0lHTjBlQ3dnYjI1RGIyMXRaVzUwTENCdmJrTm9iMjF3UzJWbGNDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGpiMjUwWVdsdWMwUnZZM1Z0Wlc1MFRXRnlhMlZ5S0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9hVzVrWlc1MElEMDlQU0FuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExtWnZjbU5sUW14dlkydEpibVJsYm5RZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHSnNiMk5yVTNSeWFXNW5LR2wwWlcwc0lHTjBlQ3dnYjI1RGIyMXRaVzUwTENCdmJrTm9iMjF3UzJWbGNDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVcxd2JHbGphWFJMWlhrZ0ppWWdhVzVrWlc1MElEMDlQU0JwYm1SbGJuUlRkR1Z3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjWFZ2ZEdWa1UzUnlhVzVuS0haaGJIVmxMQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSE4wY2lBOUlIWmhiSFZsTG5KbGNHeGhZMlVvTDF4Y2Jpc3ZaeXdnWUNRbVhGeHVKSHRwYm1SbGJuUjlZQ2s3WEc0Z0lDQWdMeThnVm1WeWFXWjVJSFJvWVhRZ2IzVjBjSFYwSUhkcGJHd2dZbVVnY0dGeWMyVmtJR0Z6SUdFZ2MzUnlhVzVuTENCaGN5QmxMbWN1SUhCc1lXbHVJRzUxYldKbGNuTWdZVzVrWEc0Z0lDQWdMeThnWW05dmJHVmhibk1nWjJWMElIQmhjbk5sWkNCM2FYUm9JSFJvYjNObElIUjVjR1Z6SUdsdUlIWXhMaklnS0dVdVp5NGdKelF5Snl3Z0ozUnlkV1VuSUNZZ0p6QXVPV1V0TXljcExGeHVJQ0FnSUM4dklHRnVaQ0J2ZEdobGNuTWdhVzRnZGpFdU1TNWNiaUFnSUNCcFppQW9ZV04wZFdGc1UzUnlhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhSbGMzUWdQU0FvZEdGbktTQTlQaUIwWVdjdVpHVm1ZWFZzZENBbUppQjBZV2N1ZEdGbklDRTlQU0FuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YzNSeUp5QW1KaUIwWVdjdWRHVnpkRDh1ZEdWemRDaHpkSElwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUdOdmJYQmhkQ3dnZEdGbmN5QjlJRDBnWTNSNExtUnZZeTV6WTJobGJXRTdYRzRnSUNBZ0lDQWdJR2xtSUNoMFlXZHpMbk52YldVb2RHVnpkQ2tnZkh3Z1kyOXRjR0YwUHk1emIyMWxLSFJsYzNRcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEYxYjNSbFpGTjBjbWx1WnloMllXeDFaU3dnWTNSNEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR2x0Y0d4cFkybDBTMlY1WEc0Z0lDQWdJQ0FnSUQ4Z2MzUnlYRzRnSUNBZ0lDQWdJRG9nWm05c1pFWnNiM2RNYVc1bGN5aHpkSElzSUdsdVpHVnVkQ3dnUms5TVJGOUdURTlYTENCblpYUkdiMnhrVDNCMGFXOXVjeWhqZEhnc0lHWmhiSE5sS1NrN1hHNTlYRzVtZFc1amRHbHZiaUJ6ZEhKcGJtZHBabmxUZEhKcGJtY29hWFJsYlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCcGJYQnNhV05wZEV0bGVTd2dhVzVHYkc5M0lIMGdQU0JqZEhnN1hHNGdJQ0FnWTI5dWMzUWdjM01nUFNCMGVYQmxiMllnYVhSbGJTNTJZV3gxWlNBOVBUMGdKM04wY21sdVp5ZGNiaUFnSUNBZ0lDQWdQeUJwZEdWdFhHNGdJQ0FnSUNBZ0lEb2dUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dhWFJsYlN3Z2V5QjJZV3gxWlRvZ1UzUnlhVzVuS0dsMFpXMHVkbUZzZFdVcElIMHBPMXh1SUNBZ0lHeGxkQ0I3SUhSNWNHVWdmU0E5SUdsMFpXMDdYRzRnSUNBZ2FXWWdLSFI1Y0dVZ0lUMDlJRk5qWVd4aGNpNVJWVTlVUlY5RVQxVkNURVVwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdabTl5WTJVZ1pHOTFZbXhsSUhGMWIzUmxjeUJ2YmlCamIyNTBjbTlzSUdOb1lYSmhZM1JsY25NZ0ppQjFibkJoYVhKbFpDQnpkWEp5YjJkaGRHVnpYRzRnSUNBZ0lDQWdJR2xtSUNndlcxeGNlREF3TFZ4Y2VEQTRYRng0TUdJdFhGeDRNV1pjWEhnM1ppMWNYSGc1Wmx4Y2RYdEVPREF3ZlMxY1hIVjdSRVpHUm4xZEwzVXVkR1Z6ZENoemN5NTJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbElEMGdVMk5oYkdGeUxsRlZUMVJGWDBSUFZVSk1SVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnWDNOMGNtbHVaMmxtZVNBOUlDaGZkSGx3WlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLRjkwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRk5qWVd4aGNpNUNURTlEUzE5R1QweEVSVVE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZOallXeGhjaTVDVEU5RFMxOU1TVlJGVWtGTU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJYQnNhV05wZEV0bGVTQjhmQ0JwYmtac2IzZGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCeGRXOTBaV1JUZEhKcGJtY29jM011ZG1Gc2RXVXNJR04wZUNrZ0x5OGdZbXh2WTJ0eklHRnlaU0J1YjNRZ2RtRnNhV1FnYVc1emFXUmxJR1pzYjNjZ1kyOXVkR0ZwYm1WeWMxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUdKc2IyTnJVM1J5YVc1bktITnpMQ0JqZEhnc0lHOXVRMjl0YldWdWRDd2diMjVEYUc5dGNFdGxaWEFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCVFkyRnNZWEl1VVZWUFZFVmZSRTlWUWt4Rk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa2IzVmliR1ZSZFc5MFpXUlRkSEpwYm1jb2MzTXVkbUZzZFdVc0lHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZOallXeGhjaTVSVlU5VVJWOVRTVTVIVEVVNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOcGJtZHNaVkYxYjNSbFpGTjBjbWx1WnloemN5NTJZV3gxWlN3Z1kzUjRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnVTJOaGJHRnlMbEJNUVVsT09seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd2JHRnBibE4wY21sdVp5aHpjeXdnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5TzF4dUlDQWdJR3hsZENCeVpYTWdQU0JmYzNSeWFXNW5hV1o1S0hSNWNHVXBPMXh1SUNBZ0lHbG1JQ2h5WlhNZ1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2V5QmtaV1poZFd4MFMyVjVWSGx3WlN3Z1pHVm1ZWFZzZEZOMGNtbHVaMVI1Y0dVZ2ZTQTlJR04wZUM1dmNIUnBiMjV6TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwSUQwZ0tHbHRjR3hwWTJsMFMyVjVJQ1ltSUdSbFptRjFiSFJMWlhsVWVYQmxLU0I4ZkNCa1pXWmhkV3gwVTNSeWFXNW5WSGx3WlR0Y2JpQWdJQ0FnSUNBZ2NtVnpJRDBnWDNOMGNtbHVaMmxtZVNoMEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hKbGN5QTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnVlc1emRYQndiM0owWldRZ1pHVm1ZWFZzZENCemRISnBibWNnZEhsd1pTQWtlM1I5WUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc1OVhHNWNibVY0Y0c5eWRDQjdJSE4wY21sdVoybG1lVk4wY21sdVp5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHRnVZMmh2Y2tselZtRnNhV1FnZlNCbWNtOXRJQ2N1TGk5a2IyTXZZVzVqYUc5eWN5NXFjeWM3WEc1cGJYQnZjblFnZXlCcGMxQmhhWElzSUdselFXeHBZWE1zSUdselRtOWtaU3dnYVhOVFkyRnNZWElzSUdselEyOXNiR1ZqZEdsdmJpQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUhOMGNtbHVaMmxtZVVOdmJXMWxiblFnZlNCbWNtOXRJQ2N1TDNOMGNtbHVaMmxtZVVOdmJXMWxiblF1YW5Nbk8xeHVhVzF3YjNKMElIc2djM1J5YVc1bmFXWjVVM1J5YVc1bklIMGdabkp2YlNBbkxpOXpkSEpwYm1kcFpubFRkSEpwYm1jdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZUZEhKcGJtZHBabmxEYjI1MFpYaDBLR1J2WXl3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUdOdmJuTjBJRzl3ZENBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTF4dUlDQWdJQ0FnSUNCaWJHOWphMUYxYjNSbE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCamIyMXRaVzUwVTNSeWFXNW5PaUJ6ZEhKcGJtZHBabmxEYjIxdFpXNTBMRnh1SUNBZ0lDQWdJQ0JrWldaaGRXeDBTMlY1Vkhsd1pUb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZEZOMGNtbHVaMVI1Y0dVNklDZFFURUZKVGljc1hHNGdJQ0FnSUNBZ0lHUnBjbVZqZEdsMlpYTTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lHUnZkV0pzWlZGMWIzUmxaRUZ6U2xOUFRqb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lHUnZkV0pzWlZGMWIzUmxaRTFwYmsxMWJIUnBUR2x1WlV4bGJtZDBhRG9nTkRBc1hHNGdJQ0FnSUNBZ0lHWmhiSE5sVTNSeU9pQW5abUZzYzJVbkxGeHVJQ0FnSUNBZ0lDQm1iRzkzUTI5c2JHVmpkR2x2YmxCaFpHUnBibWM2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJR2x1WkdWdWRGTmxjVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdiR2x1WlZkcFpIUm9PaUE0TUN4Y2JpQWdJQ0FnSUNBZ2JXbHVRMjl1ZEdWdWRGZHBaSFJvT2lBeU1DeGNiaUFnSUNBZ0lDQWdiblZzYkZOMGNqb2dKMjUxYkd3bkxGeHVJQ0FnSUNBZ0lDQnphVzF3YkdWTFpYbHpPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdjMmx1WjJ4bFVYVnZkR1U2SUc1MWJHd3NYRzRnSUNBZ0lDQWdJSFJ5ZFdWVGRISTZJQ2QwY25WbEp5eGNiaUFnSUNBZ0lDQWdkbVZ5YVdaNVFXeHBZWE5QY21SbGNqb2dkSEoxWlZ4dUlDQWdJSDBzSUdSdll5NXpZMmhsYldFdWRHOVRkSEpwYm1kUGNIUnBiMjV6TENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0JzWlhRZ2FXNUdiRzkzTzF4dUlDQWdJSE4zYVhSamFDQW9iM0IwTG1OdmJHeGxZM1JwYjI1VGRIbHNaU2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJQ2RpYkc5amF5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJrWnNiM2NnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2RtYkc5M0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVJteHZkeUE5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVSbXh2ZHlBOUlHNTFiR3c3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lHRnVZMmh2Y25NNklHNWxkeUJUWlhRb0tTeGNiaUFnSUNBZ0lDQWdaRzlqTEZ4dUlDQWdJQ0FnSUNCbWJHOTNRMjlzYkdWamRHbHZibEJoWkdScGJtYzZJRzl3ZEM1bWJHOTNRMjlzYkdWamRHbHZibEJoWkdScGJtY2dQeUFuSUNjZ09pQW5KeXhjYmlBZ0lDQWdJQ0FnYVc1a1pXNTBPaUFuSnl4Y2JpQWdJQ0FnSUNBZ2FXNWtaVzUwVTNSbGNEb2dkSGx3Wlc5bUlHOXdkQzVwYm1SbGJuUWdQVDA5SUNkdWRXMWlaWEluSUQ4Z0p5QW5MbkpsY0dWaGRDaHZjSFF1YVc1a1pXNTBLU0E2SUNjZ0lDY3NYRzRnSUNBZ0lDQWdJR2x1Um14dmR5eGNiaUFnSUNBZ0lDQWdiM0IwYVc5dWN6b2diM0IwWEc0Z0lDQWdmVHRjYm4xY2JtWjFibU4wYVc5dUlHZGxkRlJoWjA5aWFtVmpkQ2gwWVdkekxDQnBkR1Z0S1NCN1hHNGdJQ0FnYVdZZ0tHbDBaVzB1ZEdGbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMWhkR05vSUQwZ2RHRm5jeTVtYVd4MFpYSW9kQ0E5UGlCMExuUmhaeUE5UFQwZ2FYUmxiUzUwWVdjcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYldGMFkyZ3ViR1Z1WjNSb0lENGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdFlYUmphQzVtYVc1a0tIUWdQVDRnZEM1bWIzSnRZWFFnUFQwOUlHbDBaVzB1Wm05eWJXRjBLU0EvUHlCdFlYUmphRnN3WFR0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhSaFowOWlhaUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JzWlhRZ2IySnFPMXh1SUNBZ0lHbG1JQ2hwYzFOallXeGhjaWhwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0J2WW1vZ1BTQnBkR1Z0TG5aaGJIVmxPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2JXRjBZMmdnUFNCMFlXZHpMbVpwYkhSbGNpaDBJRDArSUhRdWFXUmxiblJwWm5rL0xpaHZZbW9wS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzFoZEdOb0xteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSbGMzUk5ZWFJqYUNBOUlHMWhkR05vTG1acGJIUmxjaWgwSUQwK0lIUXVkR1Z6ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHVnpkRTFoZEdOb0xteGxibWQwYUNBK0lEQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiV0YwWTJnZ1BTQjBaWE4wVFdGMFkyZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdGblQySnFJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhkR05vTG1acGJtUW9kQ0E5UGlCMExtWnZjbTFoZENBOVBUMGdhWFJsYlM1bWIzSnRZWFFwSUQ4L0lHMWhkR05vTG1acGJtUW9kQ0E5UGlBaGRDNW1iM0p0WVhRcE8xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdiMkpxSUQwZ2FYUmxiVHRjYmlBZ0lDQWdJQ0FnZEdGblQySnFJRDBnZEdGbmN5NW1hVzVrS0hRZ1BUNGdkQzV1YjJSbFEyeGhjM01nSmlZZ2IySnFJR2x1YzNSaGJtTmxiMllnZEM1dWIyUmxRMnhoYzNNcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0lYUmhaMDlpYWlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdVlXMWxJRDBnYjJKcVB5NWpiMjV6ZEhKMVkzUnZjajh1Ym1GdFpTQS9QeUIwZVhCbGIyWWdiMkpxTzF4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUZSaFp5QnViM1FnY21WemIyeDJaV1FnWm05eUlDUjdibUZ0WlgwZ2RtRnNkV1ZnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUmhaMDlpYWp0Y2JuMWNiaTh2SUc1bFpXUnpJSFJ2SUdKbElHTmhiR3hsWkNCaVpXWnZjbVVnZG1Gc2RXVWdjM1J5YVc1bmFXWnBaWElnZEc4Z1lXeHNiM2NnWm05eUlHTnBjbU4xYkdGeUlHRnVZMmh2Y2lCeVpXWnpYRzVtZFc1amRHbHZiaUJ6ZEhKcGJtZHBabmxRY205d2N5aHViMlJsTENCMFlXZFBZbW9zSUhzZ1lXNWphRzl5Y3l3Z1pHOWpJSDBwSUh0Y2JpQWdJQ0JwWmlBb0lXUnZZeTVrYVhKbFkzUnBkbVZ6S1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSnljN1hHNGdJQ0FnWTI5dWMzUWdjSEp2Y0hNZ1BTQmJYVHRjYmlBZ0lDQmpiMjV6ZENCaGJtTm9iM0lnUFNBb2FYTlRZMkZzWVhJb2JtOWtaU2tnZkh3Z2FYTkRiMnhzWldOMGFXOXVLRzV2WkdVcEtTQW1KaUJ1YjJSbExtRnVZMmh2Y2p0Y2JpQWdJQ0JwWmlBb1lXNWphRzl5SUNZbUlHRnVZMmh2Y2tselZtRnNhV1FvWVc1amFHOXlLU2tnZTF4dUlDQWdJQ0FnSUNCaGJtTm9iM0p6TG1Ga1pDaGhibU5vYjNJcE8xeHVJQ0FnSUNBZ0lDQndjbTl3Y3k1d2RYTm9LR0FtSkh0aGJtTm9iM0o5WUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElIUmhaeUE5SUc1dlpHVXVkR0ZuSUQ4Z2JtOWtaUzUwWVdjZ09pQjBZV2RQWW1vdVpHVm1ZWFZzZENBL0lHNTFiR3dnT2lCMFlXZFBZbW91ZEdGbk8xeHVJQ0FnSUdsbUlDaDBZV2NwWEc0Z0lDQWdJQ0FnSUhCeWIzQnpMbkIxYzJnb1pHOWpMbVJwY21WamRHbDJaWE11ZEdGblUzUnlhVzVuS0hSaFp5a3BPMXh1SUNBZ0lISmxkSFZ5YmlCd2NtOXdjeTVxYjJsdUtDY2dKeWs3WEc1OVhHNW1kVzVqZEdsdmJpQnpkSEpwYm1kcFpua29hWFJsYlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ2FXWWdLR2x6VUdGcGNpaHBkR1Z0S1NsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsMFpXMHVkRzlUZEhKcGJtY29ZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLVHRjYmlBZ0lDQnBaaUFvYVhOQmJHbGhjeWhwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbVJ2WXk1a2FYSmxZM1JwZG1WektWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2wwWlcwdWRHOVRkSEpwYm1jb1kzUjRLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTjBlQzV5WlhOdmJIWmxaRUZzYVdGelpYTS9MbWhoY3locGRHVnRLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhnUTJGdWJtOTBJSE4wY21sdVoybG1lU0JqYVhKamRXeGhjaUJ6ZEhKMVkzUjFjbVVnZDJsMGFHOTFkQ0JoYkdsaGN5QnViMlJsYzJBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjBlQzV5WlhOdmJIWmxaRUZzYVdGelpYTXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0TG5KbGMyOXNkbVZrUVd4cFlYTmxjeTVoWkdRb2FYUmxiU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExuSmxjMjlzZG1Wa1FXeHBZWE5sY3lBOUlHNWxkeUJUWlhRb1cybDBaVzFkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2wwWlcwZ1BTQnBkR1Z0TG5KbGMyOXNkbVVvWTNSNExtUnZZeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhSaFowOWlhaUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2FYTk9iMlJsS0dsMFpXMHBYRzRnSUNBZ0lDQWdJRDhnYVhSbGJWeHVJQ0FnSUNBZ0lDQTZJR04wZUM1a2IyTXVZM0psWVhSbFRtOWtaU2hwZEdWdExDQjdJRzl1VkdGblQySnFPaUJ2SUQwK0lDaDBZV2RQWW1vZ1BTQnZLU0I5S1R0Y2JpQWdJQ0JwWmlBb0lYUmhaMDlpYWlsY2JpQWdJQ0FnSUNBZ2RHRm5UMkpxSUQwZ1oyVjBWR0ZuVDJKcVpXTjBLR04wZUM1a2IyTXVjMk5vWlcxaExuUmhaM01zSUc1dlpHVXBPMXh1SUNBZ0lHTnZibk4wSUhCeWIzQnpJRDBnYzNSeWFXNW5hV1o1VUhKdmNITW9ibTlrWlN3Z2RHRm5UMkpxTENCamRIZ3BPMXh1SUNBZ0lHbG1JQ2h3Y205d2N5NXNaVzVuZEdnZ1BpQXdLVnh1SUNBZ0lDQWdJQ0JqZEhndWFXNWtaVzUwUVhSVGRHRnlkQ0E5SUNoamRIZ3VhVzVrWlc1MFFYUlRkR0Z5ZENBL1B5QXdLU0FySUhCeWIzQnpMbXhsYm1kMGFDQXJJREU3WEc0Z0lDQWdZMjl1YzNRZ2MzUnlJRDBnZEhsd1pXOW1JSFJoWjA5aWFpNXpkSEpwYm1kcFpua2dQVDA5SUNkbWRXNWpkR2x2YmlkY2JpQWdJQ0FnSUNBZ1B5QjBZV2RQWW1vdWMzUnlhVzVuYVdaNUtHNXZaR1VzSUdOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NsY2JpQWdJQ0FnSUNBZ09pQnBjMU5qWVd4aGNpaHViMlJsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJ6ZEhKcGJtZHBabmxUZEhKcGJtY29ibTlrWlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCdWIyUmxMblJ2VTNSeWFXNW5LR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2s3WEc0Z0lDQWdhV1lnS0NGd2NtOXdjeWxjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY2p0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5UWTJGc1lYSW9ibTlrWlNrZ2ZId2djM1J5V3pCZElEMDlQU0FuZXljZ2ZId2djM1J5V3pCZElEMDlQU0FuV3lkY2JpQWdJQ0FnSUNBZ1B5QmdKSHR3Y205d2MzMGdKSHR6ZEhKOVlGeHVJQ0FnSUNBZ0lDQTZJR0FrZTNCeWIzQnpmVnhjYmlSN1kzUjRMbWx1WkdWdWRIMGtlM04wY24xZ08xeHVmVnh1WEc1bGVIQnZjblFnZXlCamNtVmhkR1ZUZEhKcGJtZHBabmxEYjI1MFpYaDBMQ0J6ZEhKcGJtZHBabmtnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJwYzBOdmJHeGxZM1JwYjI0c0lHbHpUbTlrWlN3Z2FYTlRZMkZzWVhJc0lHbHpVMlZ4SUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdlUyTmhiR0Z5TG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lU0I5SUdaeWIyMGdKeTR2YzNSeWFXNW5hV1o1TG1wekp6dGNibWx0Y0c5eWRDQjdJR3hwYm1WRGIyMXRaVzUwTENCcGJtUmxiblJEYjIxdFpXNTBJSDBnWm5KdmJTQW5MaTl6ZEhKcGJtZHBabmxEYjIxdFpXNTBMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdjM1J5YVc1bmFXWjVVR0ZwY2loN0lHdGxlU3dnZG1Gc2RXVWdmU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJoYkd4T2RXeHNWbUZzZFdWekxDQmtiMk1zSUdsdVpHVnVkQ3dnYVc1a1pXNTBVM1JsY0N3Z2IzQjBhVzl1Y3pvZ2V5QmpiMjF0Wlc1MFUzUnlhVzVuTENCcGJtUmxiblJUWlhFc0lITnBiWEJzWlV0bGVYTWdmU0I5SUQwZ1kzUjRPMXh1SUNBZ0lHeGxkQ0JyWlhsRGIyMXRaVzUwSUQwZ0tHbHpUbTlrWlNoclpYa3BJQ1ltSUd0bGVTNWpiMjF0Wlc1MEtTQjhmQ0J1ZFd4c08xeHVJQ0FnSUdsbUlDaHphVzF3YkdWTFpYbHpLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGxEYjIxdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oxZHBkR2dnYzJsdGNHeGxJR3RsZVhNc0lHdGxlU0J1YjJSbGN5QmpZVzV1YjNRZ2FHRjJaU0JqYjIxdFpXNTBjeWNwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzBOdmJHeGxZM1JwYjI0b2EyVjVLU0I4ZkNBb0lXbHpUbTlrWlNoclpYa3BJQ1ltSUhSNWNHVnZaaUJyWlhrZ1BUMDlJQ2R2WW1wbFkzUW5LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JYTm5JRDBnSjFkcGRHZ2djMmx0Y0d4bElHdGxlWE1zSUdOdmJHeGxZM1JwYjI0Z1kyRnVibTkwSUdKbElIVnpaV1FnWVhNZ1lTQnJaWGtnZG1Gc2RXVW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0cxelp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2JHVjBJR1Y0Y0d4cFkybDBTMlY1SUQwZ0lYTnBiWEJzWlV0bGVYTWdKaVpjYmlBZ0lDQWdJQ0FnS0NGclpYa2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDaHJaWGxEYjIxdFpXNTBJQ1ltSUhaaGJIVmxJRDA5SUc1MWJHd2dKaVlnSVdOMGVDNXBia1pzYjNjcElIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNCcGMwTnZiR3hsWTNScGIyNG9hMlY1S1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0dselUyTmhiR0Z5S0d0bGVTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JR3RsZVM1MGVYQmxJRDA5UFNCVFkyRnNZWEl1UWt4UFEwdGZSazlNUkVWRUlIeDhJR3RsZVM1MGVYQmxJRDA5UFNCVFkyRnNZWEl1UWt4UFEwdGZURWxVUlZKQlRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dkSGx3Wlc5bUlHdGxlU0E5UFQwZ0oyOWlhbVZqZENjcEtUdGNiaUFnSUNCamRIZ2dQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JqZEhnc0lIdGNiaUFnSUNBZ0lDQWdZV3hzVG5Wc2JGWmhiSFZsY3pvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUdsdGNHeHBZMmwwUzJWNU9pQWhaWGh3YkdsamFYUkxaWGtnSmlZZ0tITnBiWEJzWlV0bGVYTWdmSHdnSVdGc2JFNTFiR3hXWVd4MVpYTXBMRnh1SUNBZ0lDQWdJQ0JwYm1SbGJuUTZJR2x1WkdWdWRDQXJJR2x1WkdWdWRGTjBaWEJjYmlBZ0lDQjlLVHRjYmlBZ0lDQnNaWFFnYTJWNVEyOXRiV1Z1ZEVSdmJtVWdQU0JtWVd4elpUdGNiaUFnSUNCc1pYUWdZMmh2YlhCTFpXVndJRDBnWm1Gc2MyVTdYRzRnSUNBZ2JHVjBJSE4wY2lBOUlITjBjbWx1WjJsbWVTaHJaWGtzSUdOMGVDd2dLQ2tnUFQ0Z0tHdGxlVU52YlcxbGJuUkViMjVsSUQwZ2RISjFaU2tzSUNncElEMCtJQ2hqYUc5dGNFdGxaWEFnUFNCMGNuVmxLU2s3WEc0Z0lDQWdhV1lnS0NGbGVIQnNhV05wZEV0bGVTQW1KaUFoWTNSNExtbHVSbXh2ZHlBbUppQnpkSEl1YkdWdVozUm9JRDRnTVRBeU5Da2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2MybHRjR3hsUzJWNWN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVjJsMGFDQnphVzF3YkdVZ2EyVjVjeXdnYzJsdVoyeGxJR3hwYm1VZ2MyTmhiR0Z5SUcxMWMzUWdibTkwSUhOd1lXNGdiVzl5WlNCMGFHRnVJREV3TWpRZ1kyaGhjbUZqZEdWeWN5Y3BPMXh1SUNBZ0lDQWdJQ0JsZUhCc2FXTnBkRXRsZVNBOUlIUnlkV1U3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hqZEhndWFXNUdiRzkzS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoYkd4T2RXeHNWbUZzZFdWeklIeDhJSFpoYkhWbElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGxEYjIxdFpXNTBSRzl1WlNBbUppQnZia052YlcxbGJuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYjIxdFpXNTBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2MzUnlJRDA5UFNBbkp5QS9JQ2MvSnlBNklHVjRjR3hwWTJsMFMyVjVJRDhnWUQ4Z0pIdHpkSEo5WUNBNklITjBjanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDZ29ZV3hzVG5Wc2JGWmhiSFZsY3lBbUppQWhjMmx0Y0d4bFMyVjVjeWtnZkh3Z0tIWmhiSFZsSUQwOUlHNTFiR3dnSmlZZ1pYaHdiR2xqYVhSTFpYa3BLU0I3WEc0Z0lDQWdJQ0FnSUhOMGNpQTlJR0EvSUNSN2MzUnlmV0E3WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGxEYjIxdFpXNTBJQ1ltSUNGclpYbERiMjF0Wlc1MFJHOXVaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlHeHBibVZEYjIxdFpXNTBLSE4wY2l3Z1kzUjRMbWx1WkdWdWRDd2dZMjl0YldWdWRGTjBjbWx1WnloclpYbERiMjF0Wlc1MEtTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTJodmJYQkxaV1Z3SUNZbUlHOXVRMmh2YlhCTFpXVndLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNURhRzl0Y0V0bFpYQW9LVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY2p0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0d0bGVVTnZiVzFsYm5SRWIyNWxLVnh1SUNBZ0lDQWdJQ0JyWlhsRGIyMXRaVzUwSUQwZ2JuVnNiRHRjYmlBZ0lDQnBaaUFvWlhod2JHbGphWFJMWlhrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0d0bGVVTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhJZ0t6MGdiR2x1WlVOdmJXMWxiblFvYzNSeUxDQmpkSGd1YVc1a1pXNTBMQ0JqYjIxdFpXNTBVM1J5YVc1bktHdGxlVU52YlcxbGJuUXBLVHRjYmlBZ0lDQWdJQ0FnYzNSeUlEMGdZRDhnSkh0emRISjlYRnh1Skh0cGJtUmxiblI5T21BN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnpkSElnUFNCZ0pIdHpkSEo5T21BN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hyWlhsRGIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlHeHBibVZEYjIxdFpXNTBLSE4wY2l3Z1kzUjRMbWx1WkdWdWRDd2dZMjl0YldWdWRGTjBjbWx1WnloclpYbERiMjF0Wlc1MEtTazdYRzRnSUNBZ2ZWeHVJQ0FnSUd4bGRDQjJjMklzSUhaallpd2dkbUZzZFdWRGIyMXRaVzUwTzF4dUlDQWdJR2xtSUNocGMwNXZaR1VvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUhaellpQTlJQ0VoZG1Gc2RXVXVjM0JoWTJWQ1pXWnZjbVU3WEc0Z0lDQWdJQ0FnSUhaallpQTlJSFpoYkhWbExtTnZiVzFsYm5SQ1pXWnZjbVU3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxRMjl0YldWdWRDQTlJSFpoYkhWbExtTnZiVzFsYm5RN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjJjMklnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZG1OaUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1ZEYjIxdFpXNTBJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxJQ1ltSUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnSjI5aWFtVmpkQ2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlHUnZZeTVqY21WaGRHVk9iMlJsS0haaGJIVmxLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kzUjRMbWx0Y0d4cFkybDBTMlY1SUQwZ1ptRnNjMlU3WEc0Z0lDQWdhV1lnS0NGbGVIQnNhV05wZEV0bGVTQW1KaUFoYTJWNVEyOXRiV1Z1ZENBbUppQnBjMU5qWVd4aGNpaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lHTjBlQzVwYm1SbGJuUkJkRk4wWVhKMElEMGdjM1J5TG14bGJtZDBhQ0FySURFN1hHNGdJQ0FnWTJodmJYQkxaV1Z3SUQwZ1ptRnNjMlU3WEc0Z0lDQWdhV1lnS0NGcGJtUmxiblJUWlhFZ0ppWmNiaUFnSUNBZ0lDQWdhVzVrWlc1MFUzUmxjQzVzWlc1bmRHZ2dQajBnTWlBbUpseHVJQ0FnSUNBZ0lDQWhZM1I0TG1sdVJteHZkeUFtSmx4dUlDQWdJQ0FnSUNBaFpYaHdiR2xqYVhSTFpYa2dKaVpjYmlBZ0lDQWdJQ0FnYVhOVFpYRW9kbUZzZFdVcElDWW1YRzRnSUNBZ0lDQWdJQ0YyWVd4MVpTNW1iRzkzSUNZbVhHNGdJQ0FnSUNBZ0lDRjJZV3gxWlM1MFlXY2dKaVpjYmlBZ0lDQWdJQ0FnSVhaaGJIVmxMbUZ1WTJodmNpa2dlMXh1SUNBZ0lDQWdJQ0F2THlCSlppQnBibVJsYm5SVFpYRWdQVDA5SUdaaGJITmxMQ0JqYjI1emFXUmxjaUFuTFNBbklHRnpJSEJoY25RZ2IyWWdhVzVrWlc1MFlYUnBiMjRnZDJobGNtVWdjRzl6YzJsaWJHVmNiaUFnSUNBZ0lDQWdZM1I0TG1sdVpHVnVkQ0E5SUdOMGVDNXBibVJsYm5RdWMzVmljM1J5YVc1bktESXBPMXh1SUNBZ0lIMWNiaUFnSUNCc1pYUWdkbUZzZFdWRGIyMXRaVzUwUkc5dVpTQTlJR1poYkhObE8xeHVJQ0FnSUdOdmJuTjBJSFpoYkhWbFUzUnlJRDBnYzNSeWFXNW5hV1o1S0haaGJIVmxMQ0JqZEhnc0lDZ3BJRDArSUNoMllXeDFaVU52YlcxbGJuUkViMjVsSUQwZ2RISjFaU2tzSUNncElEMCtJQ2hqYUc5dGNFdGxaWEFnUFNCMGNuVmxLU2s3WEc0Z0lDQWdiR1YwSUhkeklEMGdKeUFuTzF4dUlDQWdJR2xtSUNoclpYbERiMjF0Wlc1MElIeDhJSFp6WWlCOGZDQjJZMklwSUh0Y2JpQWdJQ0FnSUNBZ2QzTWdQU0IyYzJJZ1B5QW5YRnh1SnlBNklDY25PMXh1SUNBZ0lDQWdJQ0JwWmlBb2RtTmlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamN5QTlJR052YlcxbGJuUlRkSEpwYm1jb2RtTmlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZHpJQ3M5SUdCY1hHNGtlMmx1WkdWdWRFTnZiVzFsYm5Rb1kzTXNJR04wZUM1cGJtUmxiblFwZldBN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxVM1J5SUQwOVBTQW5KeUFtSmlBaFkzUjRMbWx1Um14dmR5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSGR6SUQwOVBTQW5YRnh1SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCM2N5QTlJQ2RjWEc1Y1hHNG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QzTWdLejBnWUZ4Y2JpUjdZM1I0TG1sdVpHVnVkSDFnTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLQ0ZsZUhCc2FXTnBkRXRsZVNBbUppQnBjME52Ykd4bFkzUnBiMjRvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFp6TUNBOUlIWmhiSFZsVTNSeVd6QmRPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViREFnUFNCMllXeDFaVk4wY2k1cGJtUmxlRTltS0NkY1hHNG5LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhR0Z6VG1WM2JHbHVaU0E5SUc1c01DQWhQVDBnTFRFN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdac2IzY2dQU0JqZEhndWFXNUdiRzkzSUQ4L0lIWmhiSFZsTG1ac2IzY2dQejhnZG1Gc2RXVXVhWFJsYlhNdWJHVnVaM1JvSUQwOVBTQXdPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FHRnpUbVYzYkdsdVpTQjhmQ0FoWm14dmR5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR2hoYzFCeWIzQnpUR2x1WlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0doaGMwNWxkMnhwYm1VZ0ppWWdLSFp6TUNBOVBUMGdKeVluSUh4OElIWnpNQ0E5UFQwZ0p5RW5LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnpjREFnUFNCMllXeDFaVk4wY2k1cGJtUmxlRTltS0NjZ0p5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haek1DQTlQVDBnSnlZbklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOd01DQWhQVDBnTFRFZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNBd0lEd2dibXd3SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbFUzUnlXM053TUNBcklERmRJRDA5UFNBbklTY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzQXdJRDBnZG1Gc2RXVlRkSEl1YVc1a1pYaFBaaWduSUNjc0lITndNQ0FySURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNBd0lEMDlQU0F0TVNCOGZDQnViREFnUENCemNEQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdoaGMxQnliM0J6VEdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdoaGMxQnliM0J6VEdsdVpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjNjeUE5SUdCY1hHNGtlMk4wZUM1cGJtUmxiblI5WUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElHbG1JQ2gyWVd4MVpWTjBjaUE5UFQwZ0p5Y2dmSHdnZG1Gc2RXVlRkSEpiTUYwZ1BUMDlJQ2RjWEc0bktTQjdYRzRnSUNBZ0lDQWdJSGR6SUQwZ0p5YzdYRzRnSUNBZ2ZWeHVJQ0FnSUhOMGNpQXJQU0IzY3lBcklIWmhiSFZsVTNSeU8xeHVJQ0FnSUdsbUlDaGpkSGd1YVc1R2JHOTNLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlVOdmJXMWxiblJFYjI1bElDWW1JRzl1UTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMjl0YldWdWRDZ3BPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNoMllXeDFaVU52YlcxbGJuUWdKaVlnSVhaaGJIVmxRMjl0YldWdWRFUnZibVVwSUh0Y2JpQWdJQ0FnSUNBZ2MzUnlJQ3M5SUd4cGJtVkRiMjF0Wlc1MEtITjBjaXdnWTNSNExtbHVaR1Z1ZEN3Z1kyOXRiV1Z1ZEZOMGNtbHVaeWgyWVd4MVpVTnZiVzFsYm5RcEtUdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQnBaaUFvWTJodmJYQkxaV1Z3SUNZbUlHOXVRMmh2YlhCTFpXVndLU0I3WEc0Z0lDQWdJQ0FnSUc5dVEyaHZiWEJMWldWd0tDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ6ZEhJN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUhOMGNtbHVaMmxtZVZCaGFYSWdmVHRjYmlJc0lDSm1kVzVqZEdsdmJpQmtaV0oxWnloc2IyZE1aWFpsYkN3Z0xpNHViV1Z6YzJGblpYTXBJSHRjYmlBZ0lDQnBaaUFvYkc5blRHVjJaV3dnUFQwOUlDZGtaV0oxWnljcFhHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdWJHOW5LQzR1TG0xbGMzTmhaMlZ6S1R0Y2JuMWNibVoxYm1OMGFXOXVJSGRoY200b2JHOW5UR1YyWld3c0lIZGhjbTVwYm1jcElIdGNiaUFnSUNCcFppQW9iRzluVEdWMlpXd2dQVDA5SUNka1pXSjFaeWNnZkh3Z2JHOW5UR1YyWld3Z1BUMDlJQ2QzWVhKdUp5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhCeWIyTmxjM01nSVQwOUlDZDFibVJsWm1sdVpXUW5JQ1ltSUhCeWIyTmxjM011WlcxcGRGZGhjbTVwYm1jcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y205alpYTnpMbVZ0YVhSWFlYSnVhVzVuS0hkaGNtNXBibWNwTzF4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9kMkZ5Ym1sdVp5azdYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCa1pXSjFaeXdnZDJGeWJpQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpVMk5oYkdGeUxDQnBjMEZzYVdGekxDQnBjMU5sY1N3Z2FYTk5ZWEFnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dVhHNHZMeUJKWmlCMGFHVWdkbUZzZFdVZ1lYTnpiMk5wWVhSbFpDQjNhWFJvSUdFZ2JXVnlaMlVnYTJWNUlHbHpJR0VnYzJsdVoyeGxJRzFoY0hCcGJtY2dibTlrWlN3Z1pXRmphQ0J2Wmx4dUx5OGdhWFJ6SUd0bGVTOTJZV3gxWlNCd1lXbHljeUJwY3lCcGJuTmxjblJsWkNCcGJuUnZJSFJvWlNCamRYSnlaVzUwSUcxaGNIQnBibWNzSUhWdWJHVnpjeUIwYUdVZ2EyVjVYRzR2THlCaGJISmxZV1I1SUdWNGFYTjBjeUJwYmlCcGRDNGdTV1lnZEdobElIWmhiSFZsSUdGemMyOWphV0YwWldRZ2QybDBhQ0IwYUdVZ2JXVnlaMlVnYTJWNUlHbHpJR0ZjYmk4dklITmxjWFZsYm1ObExDQjBhR1Z1SUhSb2FYTWdjMlZ4ZFdWdVkyVWdhWE1nWlhod1pXTjBaV1FnZEc4Z1kyOXVkR0ZwYmlCdFlYQndhVzVuSUc1dlpHVnpJR0Z1WkNCbFlXTm9YRzR2THlCdlppQjBhR1Z6WlNCdWIyUmxjeUJwY3lCdFpYSm5aV1FnYVc0Z2RIVnliaUJoWTJOdmNtUnBibWNnZEc4Z2FYUnpJRzl5WkdWeUlHbHVJSFJvWlNCelpYRjFaVzVqWlM1Y2JpOHZJRXRsZVhNZ2FXNGdiV0Z3Y0dsdVp5QnViMlJsY3lCbFlYSnNhV1Z5SUdsdUlIUm9aU0J6WlhGMVpXNWpaU0J2ZG1WeWNtbGtaU0JyWlhseklITndaV05wWm1sbFpDQnBibHh1THk4Z2JHRjBaWElnYldGd2NHbHVaeUJ1YjJSbGN5NGdMUzBnYUhSMGNEb3ZMM2xoYld3dWIzSm5MM1I1Y0dVdmJXVnlaMlV1YUhSdGJGeHVZMjl1YzNRZ1RVVlNSMFZmUzBWWklEMGdKenc4Snp0Y2JtTnZibk4wSUcxbGNtZGxJRDBnZTF4dUlDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIyWVd4MVpTQTlQVDBnVFVWU1IwVmZTMFZaSUh4OFhHNGdJQ0FnSUNBZ0lDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZHplVzFpYjJ3bklDWW1JSFpoYkhWbExtUmxjMk55YVhCMGFXOXVJRDA5UFNCTlJWSkhSVjlMUlZrcExGeHVJQ0FnSUdSbFptRjFiSFE2SUNkclpYa25MRnh1SUNBZ0lIUmhaem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T20xbGNtZGxKeXhjYmlBZ0lDQjBaWE4wT2lBdlhqdzhKQzhzWEc0Z0lDQWdjbVZ6YjJ4MlpUb2dLQ2tnUFQ0Z1QySnFaV04wTG1GemMybG5iaWh1WlhjZ1UyTmhiR0Z5S0ZONWJXSnZiQ2hOUlZKSFJWOUxSVmtwS1N3Z2UxeHVJQ0FnSUNBZ0lDQmhaR1JVYjBwVFRXRndPaUJoWkdSTlpYSm5aVlJ2U2xOTllYQmNiaUFnSUNCOUtTeGNiaUFnSUNCemRISnBibWRwWm5rNklDZ3BJRDArSUUxRlVrZEZYMHRGV1Z4dWZUdGNibU52Ym5OMElHbHpUV1Z5WjJWTFpYa2dQU0FvWTNSNExDQnJaWGtwSUQwK0lDaHRaWEpuWlM1cFpHVnVkR2xtZVNoclpYa3BJSHg4WEc0Z0lDQWdLR2x6VTJOaGJHRnlLR3RsZVNrZ0ppWmNiaUFnSUNBZ0lDQWdLQ0ZyWlhrdWRIbHdaU0I4ZkNCclpYa3VkSGx3WlNBOVBUMGdVMk5oYkdGeUxsQk1RVWxPS1NBbUpseHVJQ0FnSUNBZ0lDQnRaWEpuWlM1cFpHVnVkR2xtZVNoclpYa3VkbUZzZFdVcEtTa2dKaVpjYmlBZ0lDQmpkSGcvTG1Sdll5NXpZMmhsYldFdWRHRm5jeTV6YjIxbEtIUmhaeUE5UGlCMFlXY3VkR0ZuSUQwOVBTQnRaWEpuWlM1MFlXY2dKaVlnZEdGbkxtUmxabUYxYkhRcE8xeHVablZ1WTNScGIyNGdZV1JrVFdWeVoyVlViMHBUVFdGd0tHTjBlQ3dnYldGd0xDQjJZV3gxWlNrZ2UxeHVJQ0FnSUhaaGJIVmxJRDBnWTNSNElDWW1JR2x6UVd4cFlYTW9kbUZzZFdVcElEOGdkbUZzZFdVdWNtVnpiMngyWlNoamRIZ3VaRzlqS1NBNklIWmhiSFZsTzF4dUlDQWdJR2xtSUNocGMxTmxjU2gyWVd4MVpTa3BYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYVhRZ2IyWWdkbUZzZFdVdWFYUmxiWE1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRaWEpuWlZaaGJIVmxLR04wZUN3Z2JXRndMQ0JwZENrN1hHNGdJQ0FnWld4elpTQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdhWFFnYjJZZ2RtRnNkV1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRaWEpuWlZaaGJIVmxLR04wZUN3Z2JXRndMQ0JwZENrN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQnRaWEpuWlZaaGJIVmxLR04wZUN3Z2JXRndMQ0IyWVd4MVpTazdYRzU5WEc1bWRXNWpkR2x2YmlCdFpYSm5aVlpoYkhWbEtHTjBlQ3dnYldGd0xDQjJZV3gxWlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSE52ZFhKalpTQTlJR04wZUNBbUppQnBjMEZzYVdGektIWmhiSFZsS1NBL0lIWmhiSFZsTG5KbGMyOXNkbVVvWTNSNExtUnZZeWtnT2lCMllXeDFaVHRjYmlBZ0lDQnBaaUFvSVdselRXRndLSE52ZFhKalpTa3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25UV1Z5WjJVZ2MyOTFjbU5sY3lCdGRYTjBJR0psSUcxaGNITWdiM0lnYldGd0lHRnNhV0Z6WlhNbktUdGNiaUFnSUNCamIyNXpkQ0J6Y21OTllYQWdQU0J6YjNWeVkyVXVkRzlLVTA5T0tHNTFiR3dzSUdOMGVDd2dUV0Z3S1R0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUZ0clpYa3NJSFpoYkhWbFhTQnZaaUJ6Y21OTllYQXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhjQ0JwYm5OMFlXNWpaVzltSUUxaGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0Z0WVhBdWFHRnpLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRndMbk5sZENoclpYa3NJSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2h0WVhBZ2FXNXpkR0Z1WTJWdlppQlRaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1aFpHUW9hMlY1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDZ2hUMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzFoY0N3Z2EyVjVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0cxaGNDd2dhMlY1TENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDNKcGRHRmliR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVmNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ0WVhBN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdGa1pFMWxjbWRsVkc5S1UwMWhjQ3dnYVhOTlpYSm5aVXRsZVN3Z2JXVnlaMlVnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUIzWVhKdUlIMGdabkp2YlNBbkxpNHZiRzluTG1wekp6dGNibWx0Y0c5eWRDQjdJR2x6VFdWeVoyVkxaWGtzSUdGa1pFMWxjbWRsVkc5S1UwMWhjQ0I5SUdaeWIyMGdKeTR1TDNOamFHVnRZUzk1WVcxc0xURXVNUzl0WlhKblpTNXFjeWM3WEc1cGJYQnZjblFnZXlCamNtVmhkR1ZUZEhKcGJtZHBabmxEYjI1MFpYaDBJSDBnWm5KdmJTQW5MaTR2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVM1cWN5YzdYRzVwYlhCdmNuUWdleUJwYzA1dlpHVWdmU0JtY205dElDY3VMMmxrWlc1MGFYUjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIUnZTbE1nZlNCbWNtOXRJQ2N1TDNSdlNsTXVhbk1uTzF4dVhHNW1kVzVqZEdsdmJpQmhaR1JRWVdseVZHOUtVMDFoY0NoamRIZ3NJRzFoY0N3Z2V5QnJaWGtzSUhaaGJIVmxJSDBwSUh0Y2JpQWdJQ0JwWmlBb2FYTk9iMlJsS0d0bGVTa2dKaVlnYTJWNUxtRmtaRlJ2U2xOTllYQXBYRzRnSUNBZ0lDQWdJR3RsZVM1aFpHUlViMHBUVFdGd0tHTjBlQ3dnYldGd0xDQjJZV3gxWlNrN1hHNGdJQ0FnTHk4Z1ZFOUVUem9nVTJodmRXeGtJR1J5YjNBZ2RHaHBjeUJ6Y0dWamFXRnNJR05oYzJVZ1ptOXlJR0poY21VZ1BEd2dhR0Z1Wkd4cGJtZGNiaUFnSUNCbGJITmxJR2xtSUNocGMwMWxjbWRsUzJWNUtHTjBlQ3dnYTJWNUtTbGNiaUFnSUNBZ0lDQWdZV1JrVFdWeVoyVlViMHBUVFdGd0tHTjBlQ3dnYldGd0xDQjJZV3gxWlNrN1hHNGdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHcHpTMlY1SUQwZ2RHOUtVeWhyWlhrc0lDY25MQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYldGd0lHbHVjM1JoYm1ObGIyWWdUV0Z3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWMyVjBLR3B6UzJWNUxDQjBiMHBUS0haaGJIVmxMQ0JxYzB0bGVTd2dZM1I0S1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9iV0Z3SUdsdWMzUmhibU5sYjJZZ1UyVjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEF1WVdSa0tHcHpTMlY1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjBjbWx1WjB0bGVTQTlJSE4wY21sdVoybG1lVXRsZVNoclpYa3NJR3B6UzJWNUxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FuTldZV3gxWlNBOUlIUnZTbE1vZG1Gc2RXVXNJSE4wY21sdVowdGxlU3dnWTNSNEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHpkSEpwYm1kTFpYa2dhVzRnYldGd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2h0WVhBc0lITjBjbWx1WjB0bGVTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nYW5OV1lXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVkVzFsY21GaWJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNGdHpkSEpwYm1kTFpYbGRJRDBnYW5OV1lXeDFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2JXRndPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2MzUnlhVzVuYVdaNVMyVjVLR3RsZVN3Z2FuTkxaWGtzSUdOMGVDa2dlMXh1SUNBZ0lHbG1JQ2hxYzB0bGVTQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDY25PMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdhbk5MWlhrZ0lUMDlJQ2R2WW1wbFkzUW5LVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdVM1J5YVc1bktHcHpTMlY1S1R0Y2JpQWdJQ0JwWmlBb2FYTk9iMlJsS0d0bGVTa2dKaVlnWTNSNFB5NWtiMk1wSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSeVEzUjRJRDBnWTNKbFlYUmxVM1J5YVc1bmFXWjVRMjl1ZEdWNGRDaGpkSGd1Wkc5akxDQjdmU2s3WEc0Z0lDQWdJQ0FnSUhOMGNrTjBlQzVoYm1Ob2IzSnpJRDBnYm1WM0lGTmxkQ2dwTzF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHNXZaR1VnYjJZZ1kzUjRMbUZ1WTJodmNuTXVhMlY1Y3lncEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeVEzUjRMbUZ1WTJodmNuTXVZV1JrS0c1dlpHVXVZVzVqYUc5eUtUdGNiaUFnSUNBZ0lDQWdjM1J5UTNSNExtbHVSbXh2ZHlBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUhOMGNrTjBlQzVwYmxOMGNtbHVaMmxtZVV0bGVTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOMGNrdGxlU0E5SUd0bGVTNTBiMU4wY21sdVp5aHpkSEpEZEhncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOMGVDNXRZWEJMWlhsWFlYSnVaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCcWMyOXVVM1J5SUQwZ1NsTlBUaTV6ZEhKcGJtZHBabmtvYzNSeVMyVjVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hxYzI5dVUzUnlMbXhsYm1kMGFDQStJRFF3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdwemIyNVRkSElnUFNCcWMyOXVVM1J5TG5OMVluTjBjbWx1Wnlnd0xDQXpOaWtnS3lBbkxpNHVYQ0luTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkMkZ5YmloamRIZ3VaRzlqTG05d2RHbHZibk11Ykc5blRHVjJaV3dzSUdCTFpYbHpJSGRwZEdnZ1kyOXNiR1ZqZEdsdmJpQjJZV3gxWlhNZ2QybHNiQ0JpWlNCemRISnBibWRwWm1sbFpDQmtkV1VnZEc4Z1NsTWdUMkpxWldOMElISmxjM1J5YVdOMGFXOXVjem9nSkh0cWMyOXVVM1J5ZlM0Z1UyVjBJRzFoY0VGelRXRndPaUIwY25WbElIUnZJSFZ6WlNCdlltcGxZM1FnYTJWNWN5NWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV0WVhCTFpYbFhZWEp1WldRZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRISkxaWGs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2hxYzB0bGVTazdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lHRmtaRkJoYVhKVWIwcFRUV0Z3SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnWTNKbFlYUmxUbTlrWlNCOUlHWnliMjBnSnk0dUwyUnZZeTlqY21WaGRHVk9iMlJsTG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVkJoYVhJZ2ZTQm1jbTl0SUNjdUxpOXpkSEpwYm1kcFpua3ZjM1J5YVc1bmFXWjVVR0ZwY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJoWkdSUVlXbHlWRzlLVTAxaGNDQjlJR1p5YjIwZ0p5NHZZV1JrVUdGcGNsUnZTbE5OWVhBdWFuTW5PMXh1YVcxd2IzSjBJSHNnVGs5RVJWOVVXVkJGTENCUVFVbFNMQ0JwYzA1dlpHVWdmU0JtY205dElDY3VMMmxrWlc1MGFYUjVMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdZM0psWVhSbFVHRnBjaWhyWlhrc0lIWmhiSFZsTENCamRIZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCcklEMGdZM0psWVhSbFRtOWtaU2hyWlhrc0lIVnVaR1ZtYVc1bFpDd2dZM1I0S1R0Y2JpQWdJQ0JqYjI1emRDQjJJRDBnWTNKbFlYUmxUbTlrWlNoMllXeDFaU3dnZFc1a1pXWnBibVZrTENCamRIZ3BPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dVR0ZwY2lockxDQjJLVHRjYm4xY2JtTnNZWE56SUZCaGFYSWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLR3RsZVN3Z2RtRnNkV1VnUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaDBhR2x6TENCT1QwUkZYMVJaVUVVc0lIc2dkbUZzZFdVNklGQkJTVklnZlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YTJWNUlEMGdhMlY1TzF4dUlDQWdJQ0FnSUNCMGFHbHpMblpoYkhWbElEMGdkbUZzZFdVN1hHNGdJQ0FnZlZ4dUlDQWdJR05zYjI1bEtITmphR1Z0WVNrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnZXlCclpYa3NJSFpoYkhWbElIMGdQU0IwYUdsek8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOT2IyUmxLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JyWlhrZ1BTQnJaWGt1WTJ4dmJtVW9jMk5vWlcxaEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0dselRtOWtaU2gyWVd4MVpTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUhaaGJIVmxMbU5zYjI1bEtITmphR1Z0WVNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dVR0ZwY2loclpYa3NJSFpoYkhWbEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEc5S1UwOU9LRjhzSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZV2x5SUQwZ1kzUjRQeTV0WVhCQmMwMWhjQ0EvSUc1bGR5Qk5ZWEFvS1NBNklIdDlPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZV1JrVUdGcGNsUnZTbE5OWVhBb1kzUjRMQ0J3WVdseUxDQjBhR2x6S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkRzlUZEhKcGJtY29ZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqZEhnL0xtUnZZMXh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QnpkSEpwYm1kcFpubFFZV2x5S0hSb2FYTXNJR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dTbE5QVGk1emRISnBibWRwWm5rb2RHaHBjeWs3WEc0Z0lDQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QlFZV2x5TENCamNtVmhkR1ZRWVdseUlIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2FYTk9iMlJsTENCcGMxQmhhWElnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnpkSEpwYm1kcFpua2dmU0JtY205dElDY3VMM04wY21sdVoybG1lUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnNhVzVsUTI5dGJXVnVkQ3dnYVc1a1pXNTBRMjl0YldWdWRDQjlJR1p5YjIwZ0p5NHZjM1J5YVc1bmFXWjVRMjl0YldWdWRDNXFjeWM3WEc1Y2JtWjFibU4wYVc5dUlITjBjbWx1WjJsbWVVTnZiR3hsWTNScGIyNG9ZMjlzYkdWamRHbHZiaXdnWTNSNExDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ1kyOXVjM1FnWm14dmR5QTlJR04wZUM1cGJrWnNiM2NnUHo4Z1kyOXNiR1ZqZEdsdmJpNW1iRzkzTzF4dUlDQWdJR052Ym5OMElITjBjbWx1WjJsbWVTQTlJR1pzYjNjZ1B5QnpkSEpwYm1kcFpubEdiRzkzUTI5c2JHVmpkR2x2YmlBNklITjBjbWx1WjJsbWVVSnNiMk5yUTI5c2JHVmpkR2x2Ymp0Y2JpQWdJQ0J5WlhSMWNtNGdjM1J5YVc1bmFXWjVLR052Ykd4bFkzUnBiMjRzSUdOMGVDd2diM0IwYVc5dWN5azdYRzU5WEc1bWRXNWpkR2x2YmlCemRISnBibWRwWm5sQ2JHOWphME52Ykd4bFkzUnBiMjRvZXlCamIyMXRaVzUwTENCcGRHVnRjeUI5TENCamRIZ3NJSHNnWW14dlkydEpkR1Z0VUhKbFptbDRMQ0JtYkc5M1EyaGhjbk1zSUdsMFpXMUpibVJsYm5Rc0lHOXVRMmh2YlhCTFpXVndMQ0J2YmtOdmJXMWxiblFnZlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYVc1a1pXNTBMQ0J2Y0hScGIyNXpPaUI3SUdOdmJXMWxiblJUZEhKcGJtY2dmU0I5SUQwZ1kzUjRPMXh1SUNBZ0lHTnZibk4wSUdsMFpXMURkSGdnUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCamRIZ3NJSHNnYVc1a1pXNTBPaUJwZEdWdFNXNWtaVzUwTENCMGVYQmxPaUJ1ZFd4c0lIMHBPMXh1SUNBZ0lHeGxkQ0JqYUc5dGNFdGxaWEFnUFNCbVlXeHpaVHNnTHk4Z1pteGhaeUJtYjNJZ2RHaGxJSEJ5WldObFpHbHVaeUJ1YjJSbEozTWdjM1JoZEhWelhHNGdJQ0FnWTI5dWMzUWdiR2x1WlhNZ1BTQmJYVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR2wwWlcxekxteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2wwWlcwZ1BTQnBkR1Z0YzF0cFhUdGNiaUFnSUNBZ0lDQWdiR1YwSUdOdmJXMWxiblFnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk9iMlJsS0dsMFpXMHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdOb2IyMXdTMlZsY0NBbUppQnBkR1Z0TG5Od1lXTmxRbVZtYjNKbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29KeWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZV1JrUTI5dGJXVnVkRUpsWm05eVpTaGpkSGdzSUd4cGJtVnpMQ0JwZEdWdExtTnZiVzFsYm5SQ1pXWnZjbVVzSUdOb2IyMXdTMlZsY0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUmxiUzVqYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdQU0JwZEdWdExtTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWE5RWVdseUtHbDBaVzBwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnBheUE5SUdselRtOWtaU2hwZEdWdExtdGxlU2tnUHlCcGRHVnRMbXRsZVNBNklHNTFiR3c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVdzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdOb2IyMXdTMlZsY0NBbUppQnBheTV6Y0dGalpVSmxabTl5WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR2x1WlhNdWNIVnphQ2duSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lXUmtRMjl0YldWdWRFSmxabTl5WlNoamRIZ3NJR3hwYm1WekxDQnBheTVqYjIxdFpXNTBRbVZtYjNKbExDQmphRzl0Y0V0bFpYQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR05vYjIxd1MyVmxjQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2MzUnlJRDBnYzNSeWFXNW5hV1o1S0dsMFpXMHNJR2wwWlcxRGRIZ3NJQ2dwSUQwK0lDaGpiMjF0Wlc1MElEMGdiblZzYkNrc0lDZ3BJRDArSUNoamFHOXRjRXRsWlhBZ1BTQjBjblZsS1NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUd4cGJtVkRiMjF0Wlc1MEtITjBjaXdnYVhSbGJVbHVaR1Z1ZEN3Z1kyOXRiV1Z1ZEZOMGNtbHVaeWhqYjIxdFpXNTBLU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaGphRzl0Y0V0bFpYQWdKaVlnWTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9iMjF3UzJWbGNDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR0pzYjJOclNYUmxiVkJ5WldacGVDQXJJSE4wY2lrN1hHNGdJQ0FnZlZ4dUlDQWdJR3hsZENCemRISTdYRzRnSUNBZ2FXWWdLR3hwYm1WekxteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNCemRISWdQU0JtYkc5M1EyaGhjbk11YzNSaGNuUWdLeUJtYkc5M1EyaGhjbk11Wlc1a08xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjM1J5SUQwZ2JHbHVaWE5iTUYwN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F4T3lCcElEd2diR2x1WlhNdWJHVnVaM1JvT3lBcksya3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JzYVc1bGMxdHBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNCc2FXNWxJRDhnWUZ4Y2JpUjdhVzVrWlc1MGZTUjdiR2x1WlgxZ0lEb2dKMXhjYmljN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHTnZiVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdjM1J5SUNzOUlDZGNYRzRuSUNzZ2FXNWtaVzUwUTI5dGJXVnVkQ2hqYjIxdFpXNTBVM1J5YVc1bktHTnZiVzFsYm5RcExDQnBibVJsYm5RcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYjI1RGIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVEYjIxdFpXNTBLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tHTm9iMjF3UzJWbGNDQW1KaUJ2YmtOb2IyMXdTMlZsY0NsY2JpQWdJQ0FnSUNBZ2IyNURhRzl0Y0V0bFpYQW9LVHRjYmlBZ0lDQnlaWFIxY200Z2MzUnlPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2MzUnlhVzVuYVdaNVJteHZkME52Ykd4bFkzUnBiMjRvZXlCcGRHVnRjeUI5TENCamRIZ3NJSHNnWm14dmQwTm9ZWEp6TENCcGRHVnRTVzVrWlc1MElIMHBJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHbHVaR1Z1ZEN3Z2FXNWtaVzUwVTNSbGNDd2dabXh2ZDBOdmJHeGxZM1JwYjI1UVlXUmthVzVuT2lCbVkxQmhaR1JwYm1jc0lHOXdkR2x2Ym5NNklIc2dZMjl0YldWdWRGTjBjbWx1WnlCOUlIMGdQU0JqZEhnN1hHNGdJQ0FnYVhSbGJVbHVaR1Z1ZENBclBTQnBibVJsYm5SVGRHVndPMXh1SUNBZ0lHTnZibk4wSUdsMFpXMURkSGdnUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCamRIZ3NJSHRjYmlBZ0lDQWdJQ0FnYVc1a1pXNTBPaUJwZEdWdFNXNWtaVzUwTEZ4dUlDQWdJQ0FnSUNCcGJrWnNiM2M2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSFI1Y0dVNklHNTFiR3hjYmlBZ0lDQjlLVHRjYmlBZ0lDQnNaWFFnY21WeFRtVjNiR2x1WlNBOUlHWmhiSE5sTzF4dUlDQWdJR3hsZENCc2FXNWxjMEYwVm1Gc2RXVWdQU0F3TzF4dUlDQWdJR052Ym5OMElHeHBibVZ6SUQwZ1cxMDdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkR1Z0Y3k1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2FYUmxiWE5iYVYwN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JqYjIxdFpXNTBJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdhV1lnS0dselRtOWtaU2hwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwdWMzQmhZMlZDWldadmNtVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR2x1WlhNdWNIVnphQ2duSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoWkdSRGIyMXRaVzUwUW1WbWIzSmxLR04wZUN3Z2JHbHVaWE1zSUdsMFpXMHVZMjl0YldWdWRFSmxabTl5WlN3Z1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMFpXMHVZMjl0YldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF0Wlc1MElEMGdhWFJsYlM1amIyMXRaVzUwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbHpVR0ZwY2locGRHVnRLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FXc2dQU0JwYzA1dlpHVW9hWFJsYlM1clpYa3BJRDhnYVhSbGJTNXJaWGtnT2lCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2xyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2xyTG5Od1lXTmxRbVZtYjNKbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0NjbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhaR1JEYjIxdFpXNTBRbVZtYjNKbEtHTjBlQ3dnYkdsdVpYTXNJR2xyTG1OdmJXMWxiblJDWldadmNtVXNJR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVdzdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4VG1WM2JHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnBkaUE5SUdselRtOWtaU2hwZEdWdExuWmhiSFZsS1NBL0lHbDBaVzB1ZG1Gc2RXVWdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDJLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDJMbU52YlcxbGJuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblFnUFNCcGRpNWpiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwZGk1amIyMXRaVzUwUW1WbWIzSmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYRk9aWGRzYVc1bElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBaVzB1ZG1Gc2RXVWdQVDBnYm5Wc2JDQW1KaUJwYXo4dVkyOXRiV1Z1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiVzFsYm5RZ1BTQnBheTVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoamIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ4VG1WM2JHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJR3hsZENCemRISWdQU0J6ZEhKcGJtZHBabmtvYVhSbGJTd2dhWFJsYlVOMGVDd2dLQ2tnUFQ0Z0tHTnZiVzFsYm5RZ1BTQnVkV3hzS1NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwSUR3Z2FYUmxiWE11YkdWdVozUm9JQzBnTVNsY2JpQWdJQ0FnSUNBZ0lDQWdJSE4wY2lBclBTQW5MQ2M3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlDczlJR3hwYm1WRGIyMXRaVzUwS0hOMGNpd2dhWFJsYlVsdVpHVnVkQ3dnWTI5dGJXVnVkRk4wY21sdVp5aGpiMjF0Wlc1MEtTazdYRzRnSUNBZ0lDQWdJR2xtSUNnaGNtVnhUbVYzYkdsdVpTQW1KaUFvYkdsdVpYTXViR1Z1WjNSb0lENGdiR2x1WlhOQmRGWmhiSFZsSUh4OElITjBjaTVwYm1Oc2RXUmxjeWduWEZ4dUp5a3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnhUbVYzYkdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29jM1J5S1R0Y2JpQWdJQ0FnSUNBZ2JHbHVaWE5CZEZaaGJIVmxJRDBnYkdsdVpYTXViR1Z1WjNSb08xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQjdJSE4wWVhKMExDQmxibVFnZlNBOUlHWnNiM2REYUdGeWN6dGNiaUFnSUNCcFppQW9iR2x1WlhNdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEdGeWRDQXJJR1Z1WkR0Y2JpQWdJQ0I5WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doY21WeFRtVjNiR2x1WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiR1Z1SUQwZ2JHbHVaWE11Y21Wa2RXTmxLQ2h6ZFcwc0lHeHBibVVwSUQwK0lITjFiU0FySUd4cGJtVXViR1Z1WjNSb0lDc2dNaXdnTWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhGT1pYZHNhVzVsSUQwZ1kzUjRMbTl3ZEdsdmJuTXViR2x1WlZkcFpIUm9JRDRnTUNBbUppQnNaVzRnUGlCamRIZ3ViM0IwYVc5dWN5NXNhVzVsVjJsa2RHZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tISmxjVTVsZDJ4cGJtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J6ZEhJZ1BTQnpkR0Z5ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYkdsdVpTQnZaaUJzYVc1bGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ2JHbHVaU0EvSUdCY1hHNGtlMmx1WkdWdWRGTjBaWEI5Skh0cGJtUmxiblI5Skh0c2FXNWxmV0FnT2lBblhGeHVKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCZ0pIdHpkSEo5WEZ4dUpIdHBibVJsYm5SOUpIdGxibVI5WUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHR6ZEdGeWRIMGtlMlpqVUdGa1pHbHVaMzBrZTJ4cGJtVnpMbXB2YVc0b0p5QW5LWDBrZTJaalVHRmtaR2x1WjMwa2UyVnVaSDFnTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVablZ1WTNScGIyNGdZV1JrUTI5dGJXVnVkRUpsWm05eVpTaDdJR2x1WkdWdWRDd2diM0IwYVc5dWN6b2dleUJqYjIxdFpXNTBVM1J5YVc1bklIMGdmU3dnYkdsdVpYTXNJR052YlcxbGJuUXNJR05vYjIxd1MyVmxjQ2tnZTF4dUlDQWdJR2xtSUNoamIyMXRaVzUwSUNZbUlHTm9iMjF3UzJWbGNDbGNiaUFnSUNBZ0lDQWdZMjl0YldWdWRDQTlJR052YlcxbGJuUXVjbVZ3YkdGalpTZ3ZYbHhjYmlzdkxDQW5KeWs3WEc0Z0lDQWdhV1lnS0dOdmJXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVdNZ1BTQnBibVJsYm5SRGIyMXRaVzUwS0dOdmJXMWxiblJUZEhKcGJtY29ZMjl0YldWdWRDa3NJR2x1WkdWdWRDazdYRzRnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvYVdNdWRISnBiVk4wWVhKMEtDa3BPeUF2THlCQmRtOXBaQ0JrYjNWaWJHVWdhVzVrWlc1MElHOXVJR1pwY25OMElHeHBibVZjYmlBZ0lDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCN0lITjBjbWx1WjJsbWVVTnZiR3hsWTNScGIyNGdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QnpkSEpwYm1kcFpubERiMnhzWldOMGFXOXVJSDBnWm5KdmJTQW5MaTR2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVVOdmJHeGxZM1JwYjI0dWFuTW5PMXh1YVcxd2IzSjBJSHNnWVdSa1VHRnBjbFJ2U2xOTllYQWdmU0JtY205dElDY3VMMkZrWkZCaGFYSlViMHBUVFdGd0xtcHpKenRjYm1sdGNHOXlkQ0I3SUVOdmJHeGxZM1JwYjI0Z2ZTQm1jbTl0SUNjdUwwTnZiR3hsWTNScGIyNHVhbk1uTzF4dWFXMXdiM0owSUhzZ2FYTlFZV2x5TENCcGMxTmpZV3hoY2l3Z1RVRlFJSDBnWm5KdmJTQW5MaTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlFZV2x5TENCamNtVmhkR1ZRWVdseUlIMGdabkp2YlNBbkxpOVFZV2x5TG1wekp6dGNibWx0Y0c5eWRDQjdJR2x6VTJOaGJHRnlWbUZzZFdVZ2ZTQm1jbTl0SUNjdUwxTmpZV3hoY2k1cWN5YzdYRzVjYm1aMWJtTjBhVzl1SUdacGJtUlFZV2x5S0dsMFpXMXpMQ0JyWlhrcElIdGNiaUFnSUNCamIyNXpkQ0JySUQwZ2FYTlRZMkZzWVhJb2EyVjVLU0EvSUd0bGVTNTJZV3gxWlNBNklHdGxlVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2wwSUc5bUlHbDBaVzF6S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzFCaGFYSW9hWFFwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUXVhMlY1SUQwOVBTQnJaWGtnZkh3Z2FYUXVhMlY1SUQwOVBTQnJLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzFOallXeGhjaWhwZEM1clpYa3BJQ1ltSUdsMExtdGxlUzUyWVd4MVpTQTlQVDBnYXlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVhRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYm4xY2JtTnNZWE56SUZsQlRVeE5ZWEFnWlhoMFpXNWtjeUJEYjJ4c1pXTjBhVzl1SUh0Y2JpQWdJQ0J6ZEdGMGFXTWdaMlYwSUhSaFowNWhiV1VvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmJXRndKenRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9jMk5vWlcxaEtTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUtFMUJVQ3dnYzJOb1pXMWhLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXBkR1Z0Y3lBOUlGdGRPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJJR2RsYm1WeWFXTWdZMjlzYkdWamRHbHZiaUJ3WVhKemFXNW5JRzFsZEdodlpDQjBhR0YwSUdOaGJpQmlaU0JsZUhSbGJtUmxaRnh1SUNBZ0lDQXFJSFJ2SUc5MGFHVnlJRzV2WkdVZ1kyeGhjM05sY3lCMGFHRjBJR2x1YUdWeWFYUWdabkp2YlNCWlFVMU1UV0Z3WEc0Z0lDQWdJQ292WEc0Z0lDQWdjM1JoZEdsaklHWnliMjBvYzJOb1pXMWhMQ0J2WW1vc0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUd0bFpYQlZibVJsWm1sdVpXUXNJSEpsY0d4aFkyVnlJSDBnUFNCamRIZzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMWhjQ0E5SUc1bGR5QjBhR2x6S0hOamFHVnRZU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR0ZrWkNBOUlDaHJaWGtzSUhaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGNHeGhZMlZ5SUQwOVBTQW5ablZ1WTNScGIyNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdjbVZ3YkdGalpYSXVZMkZzYkNodlltb3NJR3RsZVN3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoeVpYQnNZV05sY2lrZ0ppWWdJWEpsY0d4aFkyVnlMbWx1WTJ4MVpHVnpLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haaGJIVmxJQ0U5UFNCMWJtUmxabWx1WldRZ2ZId2dhMlZsY0ZWdVpHVm1hVzVsWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVhWFJsYlhNdWNIVnphQ2hqY21WaGRHVlFZV2x5S0d0bGVTd2dkbUZzZFdVc0lHTjBlQ2twTzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQnBaaUFvYjJKcUlHbHVjM1JoYm1ObGIyWWdUV0Z3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUZ0clpYa3NJSFpoYkhWbFhTQnZaaUJ2WW1vcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lXUmtLR3RsZVN3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHOWlhaUFtSmlCMGVYQmxiMllnYjJKcUlEMDlQU0FuYjJKcVpXTjBKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JyWlhrZ2IyWWdUMkpxWldOMExtdGxlWE1vYjJKcUtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhaR1FvYTJWNUxDQnZZbXBiYTJWNVhTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCelkyaGxiV0V1YzI5eWRFMWhjRVZ1ZEhKcFpYTWdQVDA5SUNkbWRXNWpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1emIzSjBLSE5qYUdWdFlTNXpiM0owVFdGd1JXNTBjbWxsY3lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhjRHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRV1JrY3lCaElIWmhiSFZsSUhSdklIUm9aU0JqYjJ4c1pXTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJRzkyWlhKM2NtbDBaU0F0SUVsbUlHNXZkQ0J6WlhRZ1lIUnlkV1ZnTENCMWMybHVaeUJoSUd0bGVTQjBhR0YwSUdseklHRnNjbVZoWkhrZ2FXNGdkR2hsWEc0Z0lDQWdJQ29nSUNCamIyeHNaV04wYVc5dUlIZHBiR3dnZEdoeWIzY3VJRTkwYUdWeWQybHpaU3dnYjNabGNuZHlhWFJsY3lCMGFHVWdjSEpsZG1sdmRYTWdkbUZzZFdVdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWVdSa0tIQmhhWElzSUc5MlpYSjNjbWwwWlNrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnWDNCaGFYSTdYRzRnSUNBZ0lDQWdJR2xtSUNocGMxQmhhWElvY0dGcGNpa3BYRzRnSUNBZ0lDQWdJQ0FnSUNCZmNHRnBjaUE5SUhCaGFYSTdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLQ0Z3WVdseUlIeDhJSFI1Y0dWdlppQndZV2x5SUNFOVBTQW5iMkpxWldOMEp5QjhmQ0FoS0NkclpYa25JR2x1SUhCaGFYSXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJKYmlCVWVYQmxVMk55YVhCMExDQjBhR2x6SUc1bGRtVnlJR2hoY0hCbGJuTXVYRzRnSUNBZ0lDQWdJQ0FnSUNCZmNHRnBjaUE5SUc1bGR5QlFZV2x5S0hCaGFYSXNJSEJoYVhJL0xuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQmZjR0ZwY2lBOUlHNWxkeUJRWVdseUtIQmhhWEl1YTJWNUxDQndZV2x5TG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjSEpsZGlBOUlHWnBibVJRWVdseUtIUm9hWE11YVhSbGJYTXNJRjl3WVdseUxtdGxlU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE52Y25SRmJuUnlhV1Z6SUQwZ2RHaHBjeTV6WTJobGJXRS9Mbk52Y25STllYQkZiblJ5YVdWek8xeHVJQ0FnSUNBZ0lDQnBaaUFvY0hKbGRpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0Z2ZG1WeWQzSnBkR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JMWlhrZ0pIdGZjR0ZwY2k1clpYbDlJR0ZzY21WaFpIa2djMlYwWUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCR2IzSWdjMk5oYkdGeWN5d2dhMlZsY0NCMGFHVWdiMnhrSUc1dlpHVWdKaUJwZEhNZ1kyOXRiV1Z1ZEhNZ1lXNWtJR0Z1WTJodmNuTmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMU5qWVd4aGNpaHdjbVYyTG5aaGJIVmxLU0FtSmlCcGMxTmpZV3hoY2xaaGJIVmxLRjl3WVdseUxuWmhiSFZsS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJMblpoYkhWbExuWmhiSFZsSUQwZ1gzQmhhWEl1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjSEpsZGk1MllXeDFaU0E5SUY5d1lXbHlMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSE52Y25SRmJuUnlhV1Z6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnBJRDBnZEdocGN5NXBkR1Z0Y3k1bWFXNWtTVzVrWlhnb2FYUmxiU0E5UGlCemIzSjBSVzUwY21sbGN5aGZjR0ZwY2l3Z2FYUmxiU2tnUENBd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBJRDA5UFNBdE1TbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1sMFpXMXpMbkIxYzJnb1gzQmhhWElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNdWMzQnNhV05sS0drc0lEQXNJRjl3WVdseUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNdWNIVnphQ2hmY0dGcGNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1pHVnNaWFJsS0d0bGVTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkQ0E5SUdacGJtUlFZV2x5S0hSb2FYTXVhWFJsYlhNc0lHdGxlU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hhWFFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JsYkNBOUlIUm9hWE11YVhSbGJYTXVjM0JzYVdObEtIUm9hWE11YVhSbGJYTXVhVzVrWlhoUFppaHBkQ2tzSURFcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHVnNMbXhsYm1kMGFDQStJREE3WEc0Z0lDQWdmVnh1SUNBZ0lHZGxkQ2hyWlhrc0lHdGxaWEJUWTJGc1lYSXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhWFFnUFNCbWFXNWtVR0ZwY2loMGFHbHpMbWwwWlcxekxDQnJaWGtwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdhWFEvTG5aaGJIVmxPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdLQ0ZyWldWd1UyTmhiR0Z5SUNZbUlHbHpVMk5oYkdGeUtHNXZaR1VwSUQ4Z2JtOWtaUzUyWVd4MVpTQTZJRzV2WkdVcElEOC9JSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzRnSUNBZ2FHRnpLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0lTRm1hVzVrVUdGcGNpaDBhR2x6TG1sMFpXMXpMQ0JyWlhrcE8xeHVJQ0FnSUgxY2JpQWdJQ0J6WlhRb2EyVjVMQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtRmtaQ2h1WlhjZ1VHRnBjaWhyWlhrc0lIWmhiSFZsS1N3Z2RISjFaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQmpkSGdnTFNCRGIyNTJaWEp6YVc5dUlHTnZiblJsZUhRc0lHOXlhV2RwYm1Gc2JIa2djMlYwSUdsdUlFUnZZM1Z0Wlc1MEkzUnZTbE1vS1Z4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UTJ4aGMzTjlJRlI1Y0dVZ0xTQkpaaUJ6WlhRc0lHWnZjbU5sY3lCMGFHVWdjbVYwZFhKdVpXUWdZMjlzYkdWamRHbHZiaUIwZVhCbFhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ1NXNXpkR0Z1WTJVZ2IyWWdWSGx3WlN3Z1RXRndMQ0J2Y2lCUFltcGxZM1JjYmlBZ0lDQWdLaTljYmlBZ0lDQjBiMHBUVDA0b1h5d2dZM1I0TENCVWVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFoY0NBOUlGUjVjR1VnUHlCdVpYY2dWSGx3WlNncElEb2dZM1I0UHk1dFlYQkJjMDFoY0NBL0lHNWxkeUJOWVhBb0tTQTZJSHQ5TzF4dUlDQWdJQ0FnSUNCcFppQW9ZM1I0UHk1dmJrTnlaV0YwWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJR04wZUM1dmJrTnlaV0YwWlNodFlYQXBPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdsMFpXMGdiMllnZEdocGN5NXBkR1Z0Y3lsY2JpQWdJQ0FnSUNBZ0lDQWdJR0ZrWkZCaGFYSlViMHBUVFdGd0tHTjBlQ3dnYldGd0xDQnBkR1Z0S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGNEdGNiaUFnSUNCOVhHNGdJQ0FnZEc5VGRISnBibWNvWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWTNSNEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRXBUVDA0dWMzUnlhVzVuYVdaNUtIUm9hWE1wTzF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHbDBaVzBnYjJZZ2RHaHBjeTVwZEdWdGN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZwYzFCaGFYSW9hWFJsYlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCTllYQWdhWFJsYlhNZ2JYVnpkQ0JoYkd3Z1ltVWdjR0ZwY25NN0lHWnZkVzVrSUNSN1NsTlBUaTV6ZEhKcGJtZHBabmtvYVhSbGJTbDlJR2x1YzNSbFlXUmdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUM1aGJHeE9kV3hzVm1Gc2RXVnpJQ1ltSUhSb2FYTXVhR0Z6UVd4c1RuVnNiRlpoYkhWbGN5aG1ZV3h6WlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqZEhnZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQmpkSGdzSUhzZ1lXeHNUblZzYkZaaGJIVmxjem9nZEhKMVpTQjlLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVU52Ykd4bFkzUnBiMjRvZEdocGN5d2dZM1I0TENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpYkc5amEwbDBaVzFRY21WbWFYZzZJQ2NuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabXh2ZDBOb1lYSnpPaUI3SUhOMFlYSjBPaUFuZXljc0lHVnVaRG9nSjMwbklIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCcGRHVnRTVzVrWlc1ME9pQmpkSGd1YVc1a1pXNTBJSHg4SUNjbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGFHOXRjRXRsWlhBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtOdmJXMWxiblJjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dWZWeHVYRzVsZUhCdmNuUWdleUJaUVUxTVRXRndMQ0JtYVc1a1VHRnBjaUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJR2x6VFdGd0lIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1uTzF4dWFXMXdiM0owSUhzZ1dVRk5URTFoY0NCOUlHWnliMjBnSnk0dUx5NHVMMjV2WkdWekwxbEJUVXhOWVhBdWFuTW5PMXh1WEc1amIyNXpkQ0J0WVhBZ1BTQjdYRzRnSUNBZ1kyOXNiR1ZqZEdsdmJqb2dKMjFoY0Njc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCdWIyUmxRMnhoYzNNNklGbEJUVXhOWVhBc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZiV0Z3Snl4Y2JpQWdJQ0J5WlhOdmJIWmxLRzFoY0N3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdselRXRndLRzFoY0NrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLQ2RGZUhCbFkzUmxaQ0JoSUcxaGNIQnBibWNnWm05eUlIUm9hWE1nZEdGbkp5azdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnRZWEE3WEc0Z0lDQWdmU3hjYmlBZ0lDQmpjbVZoZEdWT2IyUmxPaUFvYzJOb1pXMWhMQ0J2WW1vc0lHTjBlQ2tnUFQ0Z1dVRk5URTFoY0M1bWNtOXRLSE5qYUdWdFlTd2diMkpxTENCamRIZ3BYRzU5TzF4dVhHNWxlSEJ2Y25RZ2V5QnRZWEFnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJqY21WaGRHVk9iMlJsSUgwZ1puSnZiU0FuTGk0dlpHOWpMMk55WldGMFpVNXZaR1V1YW5Nbk8xeHVhVzF3YjNKMElIc2djM1J5YVc1bmFXWjVRMjlzYkdWamRHbHZiaUI5SUdaeWIyMGdKeTR1TDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sRGIyeHNaV04wYVc5dUxtcHpKenRjYm1sdGNHOXlkQ0I3SUVOdmJHeGxZM1JwYjI0Z2ZTQm1jbTl0SUNjdUwwTnZiR3hsWTNScGIyNHVhbk1uTzF4dWFXMXdiM0owSUhzZ1UwVlJMQ0JwYzFOallXeGhjaUI5SUdaeWIyMGdKeTR2YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dhWE5UWTJGc1lYSldZV3gxWlNCOUlHWnliMjBnSnk0dlUyTmhiR0Z5TG1wekp6dGNibWx0Y0c5eWRDQjdJSFJ2U2xNZ2ZTQm1jbTl0SUNjdUwzUnZTbE11YW5Nbk8xeHVYRzVqYkdGemN5QlpRVTFNVTJWeElHVjRkR1Z1WkhNZ1EyOXNiR1ZqZEdsdmJpQjdYRzRnSUNBZ2MzUmhkR2xqSUdkbGRDQjBZV2RPWVcxbEtDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbk5sY1NjN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMGNuVmpkRzl5S0hOamFHVnRZU2tnZTF4dUlDQWdJQ0FnSUNCemRYQmxjaWhUUlZFc0lITmphR1Z0WVNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YVhSbGJYTWdQU0JiWFR0Y2JpQWdJQ0I5WEc0Z0lDQWdZV1JrS0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNdWNIVnphQ2gyWVd4MVpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGSmxiVzkyWlhNZ1lTQjJZV3gxWlNCbWNtOXRJSFJvWlNCamIyeHNaV04wYVc5dUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1lHdGxlV0FnYlhWemRDQmpiMjUwWVdsdUlHRWdjbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdZVzRnYVc1MFpXZGxjaUJtYjNJZ2RHaHBjeUIwYnlCemRXTmpaV1ZrTGx4dUlDQWdJQ0FxSUVsMElHMWhlU0JpWlNCM2NtRndjR1ZrSUdsdUlHRWdZRk5qWVd4aGNtQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdkR2hsSUdsMFpXMGdkMkZ6SUdadmRXNWtJR0Z1WkNCeVpXMXZkbVZrTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1JsYkdWMFpTaHJaWGtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVdSNElEMGdZWE5KZEdWdFNXNWtaWGdvYTJWNUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJwWkhnZ0lUMDlJQ2R1ZFcxaVpYSW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtaV3dnUFNCMGFHbHpMbWwwWlcxekxuTndiR2xqWlNocFpIZ3NJREVwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdWc0xteGxibWQwYUNBK0lEQTdYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRDaHJaWGtzSUd0bFpYQlRZMkZzWVhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FXUjRJRDBnWVhOSmRHVnRTVzVrWlhnb2EyVjVLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCcFpIZ2dJVDA5SUNkdWRXMWlaWEluS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FYUWdQU0IwYUdsekxtbDBaVzF6VzJsa2VGMDdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQWhhMlZsY0ZOallXeGhjaUFtSmlCcGMxTmpZV3hoY2locGRDa2dQeUJwZEM1MllXeDFaU0E2SUdsME8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ2RHaGxJR052Ykd4bFkzUnBiMjRnYVc1amJIVmtaWE1nWVNCMllXeDFaU0IzYVhSb0lIUm9aU0JyWlhrZ1lHdGxlV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJnYTJWNVlDQnRkWE4wSUdOdmJuUmhhVzRnWVNCeVpYQnlaWE5sYm5SaGRHbHZiaUJ2WmlCaGJpQnBiblJsWjJWeUlHWnZjaUIwYUdseklIUnZJSE4xWTJObFpXUXVYRzRnSUNBZ0lDb2dTWFFnYldGNUlHSmxJSGR5WVhCd1pXUWdhVzRnWVNCZ1UyTmhiR0Z5WUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JvWVhNb2EyVjVLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2xrZUNBOUlHRnpTWFJsYlVsdVpHVjRLR3RsZVNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnYVdSNElEMDlQU0FuYm5WdFltVnlKeUFtSmlCcFpIZ2dQQ0IwYUdsekxtbDBaVzF6TG14bGJtZDBhRHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlYwY3lCaElIWmhiSFZsSUdsdUlIUm9hWE1nWTI5c2JHVmpkR2x2Ymk0Z1JtOXlJR0FoSVhObGRHQXNJR0IyWVd4MVpXQWdibVZsWkhNZ2RHOGdZbVVnWVZ4dUlDQWdJQ0FxSUdKdmIyeGxZVzRnZEc4Z1lXUmtMM0psYlc5MlpTQjBhR1VnYVhSbGJTQm1jbTl0SUhSb1pTQnpaWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJKWmlCZ2EyVjVZQ0JrYjJWeklHNXZkQ0JqYjI1MFlXbHVJR0VnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnWVc0Z2FXNTBaV2RsY2l3Z2RHaHBjeUIzYVd4c0lIUm9jbTkzTGx4dUlDQWdJQ0FxSUVsMElHMWhlU0JpWlNCM2NtRndjR1ZrSUdsdUlHRWdZRk5qWVd4aGNtQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2MyVjBLR3RsZVN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVdSNElEMGdZWE5KZEdWdFNXNWtaWGdvYTJWNUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJwWkhnZ0lUMDlJQ2R1ZFcxaVpYSW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCRmVIQmxZM1JsWkNCaElIWmhiR2xrSUdsdVpHVjRMQ0J1YjNRZ0pIdHJaWGw5TG1BcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVjJJRDBnZEdocGN5NXBkR1Z0YzF0cFpIaGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTlRZMkZzWVhJb2NISmxkaWtnSmlZZ2FYTlRZMkZzWVhKV1lXeDFaU2gyWVd4MVpTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJMblpoYkhWbElEMGdkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVhSbGJYTmJhV1I0WFNBOUlIWmhiSFZsTzF4dUlDQWdJSDFjYmlBZ0lDQjBiMHBUVDA0b1h5d2dZM1I0S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhObGNTQTlJRnRkTzF4dUlDQWdJQ0FnSUNCcFppQW9ZM1I0UHk1dmJrTnlaV0YwWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJR04wZUM1dmJrTnlaV0YwWlNoelpYRXBPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FYUmxiU0J2WmlCMGFHbHpMbWwwWlcxektWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWeExuQjFjMmdvZEc5S1V5aHBkR1Z0TENCVGRISnBibWNvYVNzcktTd2dZM1I0S1NrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCelpYRTdYRzRnSUNBZ2ZWeHVJQ0FnSUhSdlUzUnlhVzVuS0dOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOMGVDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOMGNtbHVaMmxtZVVOdmJHeGxZM1JwYjI0b2RHaHBjeXdnWTNSNExDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWJHOWphMGwwWlcxUWNtVm1hWGc2SUNjdElDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbWJHOTNRMmhoY25NNklIc2djM1JoY25RNklDZGJKeXdnWlc1a09pQW5YU2NnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2wwWlcxSmJtUmxiblE2SUNoamRIZ3VhVzVrWlc1MElIeDhJQ2NuS1NBcklDY2dJQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia05vYjIxd1MyVmxjQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMjl0YldWdWRGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdaeWIyMG9jMk5vWlcxaExDQnZZbW9zSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJSEpsY0d4aFkyVnlJSDBnUFNCamRIZzdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxjU0E5SUc1bGR5QjBhR2x6S0hOamFHVnRZU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZZbW9nSmlZZ1UzbHRZbTlzTG1sMFpYSmhkRzl5SUdsdUlFOWlhbVZqZENodlltb3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVNBOUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcGRDQnZaaUJ2WW1vcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSEpsY0d4aFkyVnlJRDA5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3RsZVNBOUlHOWlhaUJwYm5OMFlXNWpaVzltSUZObGRDQS9JR2wwSURvZ1UzUnlhVzVuS0drckt5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMElEMGdjbVZ3YkdGalpYSXVZMkZzYkNodlltb3NJR3RsZVN3Z2FYUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WlhFdWFYUmxiWE11Y0hWemFDaGpjbVZoZEdWT2IyUmxLR2wwTENCMWJtUmxabWx1WldRc0lHTjBlQ2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6WlhFN1hHNGdJQ0FnZlZ4dWZWeHVablZ1WTNScGIyNGdZWE5KZEdWdFNXNWtaWGdvYTJWNUtTQjdYRzRnSUNBZ2JHVjBJR2xrZUNBOUlHbHpVMk5oYkdGeUtHdGxlU2tnUHlCclpYa3VkbUZzZFdVZ09pQnJaWGs3WEc0Z0lDQWdhV1lnS0dsa2VDQW1KaUIwZVhCbGIyWWdhV1I0SUQwOVBTQW5jM1J5YVc1bkp5bGNiaUFnSUNBZ0lDQWdhV1I0SUQwZ1RuVnRZbVZ5S0dsa2VDazdYRzRnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUJwWkhnZ1BUMDlJQ2R1ZFcxaVpYSW5JQ1ltSUU1MWJXSmxjaTVwYzBsdWRHVm5aWElvYVdSNEtTQW1KaUJwWkhnZ1BqMGdNRnh1SUNBZ0lDQWdJQ0EvSUdsa2VGeHVJQ0FnSUNBZ0lDQTZJRzUxYkd3N1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUZsQlRVeFRaWEVnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJwYzFObGNTQjlJR1p5YjIwZ0p5NHVMeTR1TDI1dlpHVnpMMmxrWlc1MGFYUjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGbEJUVXhUWlhFZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVpRVTFNVTJWeExtcHpKenRjYmx4dVkyOXVjM1FnYzJWeElEMGdlMXh1SUNBZ0lHTnZiR3hsWTNScGIyNDZJQ2R6WlhFbkxGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2JtOWtaVU5zWVhOek9pQlpRVTFNVTJWeExGeHVJQ0FnSUhSaFp6b2dKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbk5sY1Njc1hHNGdJQ0FnY21WemIyeDJaU2h6WlhFc0lHOXVSWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGcGMxTmxjU2h6WlhFcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWduUlhod1pXTjBaV1FnWVNCelpYRjFaVzVqWlNCbWIzSWdkR2hwY3lCMFlXY25LVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE5sY1R0Y2JpQWdJQ0I5TEZ4dUlDQWdJR055WldGMFpVNXZaR1U2SUNoelkyaGxiV0VzSUc5aWFpd2dZM1I0S1NBOVBpQlpRVTFNVTJWeExtWnliMjBvYzJOb1pXMWhMQ0J2WW1vc0lHTjBlQ2xjYm4wN1hHNWNibVY0Y0c5eWRDQjdJSE5sY1NCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUhOMGNtbHVaMmxtZVZOMGNtbHVaeUI5SUdaeWIyMGdKeTR1THk0dUwzTjBjbWx1WjJsbWVTOXpkSEpwYm1kcFpubFRkSEpwYm1jdWFuTW5PMXh1WEc1amIyNXpkQ0J6ZEhKcGJtY2dQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKM04wY21sdVp5Y3NYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwemRISW5MRnh1SUNBZ0lISmxjMjlzZG1VNklITjBjaUE5UGlCemRISXNYRzRnSUNBZ2MzUnlhVzVuYVdaNUtHbDBaVzBzSUdOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NrZ2UxeHVJQ0FnSUNBZ0lDQmpkSGdnUFNCUFltcGxZM1F1WVhOemFXZHVLSHNnWVdOMGRXRnNVM1J5YVc1bk9pQjBjblZsSUgwc0lHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEhKcGJtZHBabmxUZEhKcGJtY29hWFJsYlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tUdGNiaUFnSUNCOVhHNTlPMXh1WEc1bGVIQnZjblFnZXlCemRISnBibWNnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dVhHNWpiMjV6ZENCdWRXeHNWR0ZuSUQwZ2UxeHVJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCMllXeDFaU0E5UFNCdWRXeHNMRnh1SUNBZ0lHTnlaV0YwWlU1dlpHVTZJQ2dwSUQwK0lHNWxkeUJUWTJGc1lYSW9iblZzYkNrc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB1ZFd4c0p5eGNiaUFnSUNCMFpYTjBPaUF2WGlnL09uNThXMDV1WFhWc2JIeE9WVXhNS1Q4a0x5eGNiaUFnSUNCeVpYTnZiSFpsT2lBb0tTQTlQaUJ1WlhjZ1UyTmhiR0Z5S0c1MWJHd3BMRnh1SUNBZ0lITjBjbWx1WjJsbWVUb2dLSHNnYzI5MWNtTmxJSDBzSUdOMGVDa2dQVDRnZEhsd1pXOW1JSE52ZFhKalpTQTlQVDBnSjNOMGNtbHVaeWNnSmlZZ2JuVnNiRlJoWnk1MFpYTjBMblJsYzNRb2MyOTFjbU5sS1Z4dUlDQWdJQ0FnSUNBL0lITnZkWEpqWlZ4dUlDQWdJQ0FnSUNBNklHTjBlQzV2Y0hScGIyNXpMbTUxYkd4VGRISmNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHNTFiR3hVWVdjZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCVFkyRnNZWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5VFkyRnNZWEl1YW5Nbk8xeHVYRzVqYjI1emRDQmliMjlzVkdGbklEMGdlMXh1SUNBZ0lHbGtaVzUwYVdaNU9pQjJZV3gxWlNBOVBpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZGliMjlzWldGdUp5eGNiaUFnSUNCa1pXWmhkV3gwT2lCMGNuVmxMRnh1SUNBZ0lIUmhaem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T21KdmIyd25MRnh1SUNBZ0lIUmxjM1E2SUM5ZUtEODZXMVIwWFhKMVpYeFVVbFZGZkZ0R1psMWhiSE5sZkVaQlRGTkZLU1F2TEZ4dUlDQWdJSEpsYzI5c2RtVTZJSE4wY2lBOVBpQnVaWGNnVTJOaGJHRnlLSE4wY2xzd1hTQTlQVDBnSjNRbklIeDhJSE4wY2xzd1hTQTlQVDBnSjFRbktTeGNiaUFnSUNCemRISnBibWRwWm5rb2V5QnpiM1Z5WTJVc0lIWmhiSFZsSUgwc0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9jMjkxY21ObElDWW1JR0p2YjJ4VVlXY3VkR1Z6ZEM1MFpYTjBLSE52ZFhKalpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMklEMGdjMjkxY21ObFd6QmRJRDA5UFNBbmRDY2dmSHdnYzI5MWNtTmxXekJkSUQwOVBTQW5WQ2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZG1Gc2RXVWdQVDA5SUhOMktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCemIzVnlZMlU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxJRDhnWTNSNExtOXdkR2x2Ym5NdWRISjFaVk4wY2lBNklHTjBlQzV2Y0hScGIyNXpMbVpoYkhObFUzUnlPMXh1SUNBZ0lIMWNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHSnZiMnhVWVdjZ2ZUdGNiaUlzSUNKbWRXNWpkR2x2YmlCemRISnBibWRwWm5sT2RXMWlaWElvZXlCbWIzSnRZWFFzSUcxcGJrWnlZV04wYVc5dVJHbG5hWFJ6TENCMFlXY3NJSFpoYkhWbElIMHBJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuWW1sbmFXNTBKeWxjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRk4wY21sdVp5aDJZV3gxWlNrN1hHNGdJQ0FnWTI5dWMzUWdiblZ0SUQwZ2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5SnlBL0lIWmhiSFZsSURvZ1RuVnRZbVZ5S0haaGJIVmxLVHRjYmlBZ0lDQnBaaUFvSVdselJtbHVhWFJsS0c1MWJTa3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBjMDVoVGlodWRXMHBJRDhnSnk1dVlXNG5JRG9nYm5WdElEd2dNQ0EvSUNjdExtbHVaaWNnT2lBbkxtbHVaaWM3WEc0Z0lDQWdiR1YwSUc0Z1BTQktVMDlPTG5OMGNtbHVaMmxtZVNoMllXeDFaU2s3WEc0Z0lDQWdhV1lnS0NGbWIzSnRZWFFnSmlaY2JpQWdJQ0FnSUNBZ2JXbHVSbkpoWTNScGIyNUVhV2RwZEhNZ0ppWmNiaUFnSUNBZ0lDQWdLQ0YwWVdjZ2ZId2dkR0ZuSUQwOVBTQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZabXh2WVhRbktTQW1KbHh1SUNBZ0lDQWdJQ0F2WGx4Y1pDOHVkR1Z6ZENodUtTa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJRzR1YVc1a1pYaFBaaWduTGljcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVNBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHa2dQU0J1TG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHNGdLejBnSnk0bk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR3hsZENCa0lEMGdiV2x1Um5KaFkzUnBiMjVFYVdkcGRITWdMU0FvYmk1c1pXNW5kR2dnTFNCcElDMGdNU2s3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hrTFMwZ1BpQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JpQXJQU0FuTUNjN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QnpkSEpwYm1kcFpubE9kVzFpWlhJZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCVFkyRnNZWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5VFkyRnNZWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2djM1J5YVc1bmFXWjVUblZ0WW1WeUlIMGdabkp2YlNBbkxpNHZMaTR2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVU1MWJXSmxjaTVxY3ljN1hHNWNibU52Ym5OMElHWnNiMkYwVG1GT0lEMGdlMXh1SUNBZ0lHbGtaVzUwYVdaNU9pQjJZV3gxWlNBOVBpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZHVkVzFpWlhJbkxGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2Wm14dllYUW5MRnh1SUNBZ0lIUmxjM1E2SUM5ZUtEODZXeTByWFQ5Y1hDNG9QenBwYm1aOFNXNW1mRWxPUmlsOFhGd3VibUZ1ZkZ4Y0xrNWhUbnhjWEM1T1FVNHBKQzhzWEc0Z0lDQWdjbVZ6YjJ4MlpUb2djM1J5SUQwK0lITjBjaTV6YkdsalpTZ3RNeWt1ZEc5TWIzZGxja05oYzJVb0tTQTlQVDBnSjI1aGJpZGNiaUFnSUNBZ0lDQWdQeUJPWVU1Y2JpQWdJQ0FnSUNBZ09pQnpkSEpiTUYwZ1BUMDlJQ2N0SjF4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJPZFcxaVpYSXVUa1ZIUVZSSlZrVmZTVTVHU1U1SlZGbGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1RuVnRZbVZ5TGxCUFUwbFVTVlpGWDBsT1JrbE9TVlJaTEZ4dUlDQWdJSE4wY21sdVoybG1lVG9nYzNSeWFXNW5hV1o1VG5WdFltVnlYRzU5TzF4dVkyOXVjM1FnWm14dllYUkZlSEFnUFNCN1hHNGdJQ0FnYVdSbGJuUnBabms2SUhaaGJIVmxJRDArSUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnSjI1MWJXSmxjaWNzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcG1iRzloZENjc1hHNGdJQ0FnWm05eWJXRjBPaUFuUlZoUUp5eGNiaUFnSUNCMFpYTjBPaUF2WGxzdEsxMC9LRDg2WEZ3dVd6QXRPVjByZkZzd0xUbGRLeWcvT2x4Y0xsc3dMVGxkS2lrL0tWdGxSVjFiTFN0ZFAxc3dMVGxkS3lRdkxGeHVJQ0FnSUhKbGMyOXNkbVU2SUhOMGNpQTlQaUJ3WVhKelpVWnNiMkYwS0hOMGNpa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNUtHNXZaR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYm5WdElEMGdUblZ0WW1WeUtHNXZaR1V1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5HYVc1cGRHVW9iblZ0S1NBL0lHNTFiUzUwYjBWNGNHOXVaVzUwYVdGc0tDa2dPaUJ6ZEhKcGJtZHBabmxPZFcxaVpYSW9ibTlrWlNrN1hHNGdJQ0FnZlZ4dWZUdGNibU52Ym5OMElHWnNiMkYwSUQwZ2UxeHVJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkdWRXMWlaWEluTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZabXh2WVhRbkxGeHVJQ0FnSUhSbGMzUTZJQzllV3kwclhUOG9QenBjWEM1Yk1DMDVYU3Q4V3pBdE9WMHJYRnd1V3pBdE9WMHFLU1F2TEZ4dUlDQWdJSEpsYzI5c2RtVW9jM1J5S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1dlpHVWdQU0J1WlhjZ1UyTmhiR0Z5S0hCaGNuTmxSbXh2WVhRb2MzUnlLU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1J2ZENBOUlITjBjaTVwYm1SbGVFOW1LQ2N1SnlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hrYjNRZ0lUMDlJQzB4SUNZbUlITjBjbHR6ZEhJdWJHVnVaM1JvSUMwZ01WMGdQVDA5SUNjd0p5bGNiaUFnSUNBZ0lDQWdJQ0FnSUc1dlpHVXViV2x1Um5KaFkzUnBiMjVFYVdkcGRITWdQU0J6ZEhJdWJHVnVaM1JvSUMwZ1pHOTBJQzBnTVR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1dlpHVTdYRzRnSUNBZ2ZTeGNiaUFnSUNCemRISnBibWRwWm5rNklITjBjbWx1WjJsbWVVNTFiV0psY2x4dWZUdGNibHh1Wlhod2IzSjBJSHNnWm14dllYUXNJR1pzYjJGMFJYaHdMQ0JtYkc5aGRFNWhUaUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVTUxYldKbGNpQjlJR1p5YjIwZ0p5NHVMeTR1TDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sT2RXMWlaWEl1YW5Nbk8xeHVYRzVqYjI1emRDQnBiblJKWkdWdWRHbG1lU0E5SUNoMllXeDFaU2tnUFQ0Z2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBblltbG5hVzUwSnlCOGZDQk9kVzFpWlhJdWFYTkpiblJsWjJWeUtIWmhiSFZsS1R0Y2JtTnZibk4wSUdsdWRGSmxjMjlzZG1VZ1BTQW9jM1J5TENCdlptWnpaWFFzSUhKaFpHbDRMQ0I3SUdsdWRFRnpRbWxuU1c1MElIMHBJRDArSUNocGJuUkJjMEpwWjBsdWRDQS9JRUpwWjBsdWRDaHpkSElwSURvZ2NHRnljMlZKYm5Rb2MzUnlMbk4xWW5OMGNtbHVaeWh2Wm1aelpYUXBMQ0J5WVdScGVDa3BPMXh1Wm5WdVkzUnBiMjRnYVc1MFUzUnlhVzVuYVdaNUtHNXZaR1VzSUhKaFpHbDRMQ0J3Y21WbWFYZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCN0lIWmhiSFZsSUgwZ1BTQnViMlJsTzF4dUlDQWdJR2xtSUNocGJuUkpaR1Z1ZEdsbWVTaDJZV3gxWlNrZ0ppWWdkbUZzZFdVZ1BqMGdNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEJ5WldacGVDQXJJSFpoYkhWbExuUnZVM1J5YVc1bktISmhaR2w0S1R0Y2JpQWdJQ0J5WlhSMWNtNGdjM1J5YVc1bmFXWjVUblZ0WW1WeUtHNXZaR1VwTzF4dWZWeHVZMjl1YzNRZ2FXNTBUMk4wSUQwZ2UxeHVJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCcGJuUkpaR1Z1ZEdsbWVTaDJZV3gxWlNrZ0ppWWdkbUZzZFdVZ1BqMGdNQ3hjYmlBZ0lDQmtaV1poZFd4ME9pQjBjblZsTEZ4dUlDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9tbHVkQ2NzWEc0Z0lDQWdabTl5YldGME9pQW5UME5VSnl4Y2JpQWdJQ0IwWlhOME9pQXZYakJ2V3pBdE4xMHJKQzhzWEc0Z0lDQWdjbVZ6YjJ4MlpUb2dLSE4wY2l3Z1gyOXVSWEp5YjNJc0lHOXdkQ2tnUFQ0Z2FXNTBVbVZ6YjJ4MlpTaHpkSElzSURJc0lEZ3NJRzl3ZENrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1T2lCdWIyUmxJRDArSUdsdWRGTjBjbWx1WjJsbWVTaHViMlJsTENBNExDQW5NRzhuS1Z4dWZUdGNibU52Ym5OMElHbHVkQ0E5SUh0Y2JpQWdJQ0JwWkdWdWRHbG1lVG9nYVc1MFNXUmxiblJwWm5rc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanBwYm5RbkxGeHVJQ0FnSUhSbGMzUTZJQzllV3kwclhUOWJNQzA1WFNza0x5eGNiaUFnSUNCeVpYTnZiSFpsT2lBb2MzUnlMQ0JmYjI1RmNuSnZjaXdnYjNCMEtTQTlQaUJwYm5SU1pYTnZiSFpsS0hOMGNpd2dNQ3dnTVRBc0lHOXdkQ2tzWEc0Z0lDQWdjM1J5YVc1bmFXWjVPaUJ6ZEhKcGJtZHBabmxPZFcxaVpYSmNibjA3WEc1amIyNXpkQ0JwYm5SSVpYZ2dQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJR2x1ZEVsa1pXNTBhV1o1S0haaGJIVmxLU0FtSmlCMllXeDFaU0ErUFNBd0xGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YVc1MEp5eGNiaUFnSUNCbWIzSnRZWFE2SUNkSVJWZ25MRnh1SUNBZ0lIUmxjM1E2SUM5ZU1IaGJNQzA1WVMxbVFTMUdYU3NrTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvYzNSeUxDQmZiMjVGY25KdmNpd2diM0IwS1NBOVBpQnBiblJTWlhOdmJIWmxLSE4wY2l3Z01pd2dNVFlzSUc5d2RDa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnViMlJsSUQwK0lHbHVkRk4wY21sdVoybG1lU2h1YjJSbExDQXhOaXdnSnpCNEp5bGNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHbHVkQ3dnYVc1MFNHVjRMQ0JwYm5SUFkzUWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QnRZWEFnZlNCbWNtOXRJQ2N1TGk5amIyMXRiMjR2YldGd0xtcHpKenRjYm1sdGNHOXlkQ0I3SUc1MWJHeFVZV2NnZlNCbWNtOXRJQ2N1TGk5amIyMXRiMjR2Ym5Wc2JDNXFjeWM3WEc1cGJYQnZjblFnZXlCelpYRWdmU0JtY205dElDY3VMaTlqYjIxdGIyNHZjMlZ4TG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVp5QjlJR1p5YjIwZ0p5NHVMMk52YlcxdmJpOXpkSEpwYm1jdWFuTW5PMXh1YVcxd2IzSjBJSHNnWW05dmJGUmhaeUI5SUdaeWIyMGdKeTR2WW05dmJDNXFjeWM3WEc1cGJYQnZjblFnZXlCbWJHOWhkRTVoVGl3Z1pteHZZWFJGZUhBc0lHWnNiMkYwSUgwZ1puSnZiU0FuTGk5bWJHOWhkQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnBiblJQWTNRc0lHbHVkQ3dnYVc1MFNHVjRJSDBnWm5KdmJTQW5MaTlwYm5RdWFuTW5PMXh1WEc1amIyNXpkQ0J6WTJobGJXRWdQU0JiWEc0Z0lDQWdiV0Z3TEZ4dUlDQWdJSE5sY1N4Y2JpQWdJQ0J6ZEhKcGJtY3NYRzRnSUNBZ2JuVnNiRlJoWnl4Y2JpQWdJQ0JpYjI5c1ZHRm5MRnh1SUNBZ0lHbHVkRTlqZEN4Y2JpQWdJQ0JwYm5Rc1hHNGdJQ0FnYVc1MFNHVjRMRnh1SUNBZ0lHWnNiMkYwVG1GT0xGeHVJQ0FnSUdac2IyRjBSWGh3TEZ4dUlDQWdJR1pzYjJGMFhHNWRPMXh1WEc1bGVIQnZjblFnZXlCelkyaGxiV0VnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ2JXRndJSDBnWm5KdmJTQW5MaTR2WTI5dGJXOXVMMjFoY0M1cWN5YzdYRzVwYlhCdmNuUWdleUJ6WlhFZ2ZTQm1jbTl0SUNjdUxpOWpiMjF0YjI0dmMyVnhMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdhVzUwU1dSbGJuUnBabmtvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBblltbG5hVzUwSnlCOGZDQk9kVzFpWlhJdWFYTkpiblJsWjJWeUtIWmhiSFZsS1R0Y2JuMWNibU52Ym5OMElITjBjbWx1WjJsbWVVcFRUMDRnUFNBb2V5QjJZV3gxWlNCOUtTQTlQaUJLVTA5T0xuTjBjbWx1WjJsbWVTaDJZV3gxWlNrN1hHNWpiMjV6ZENCcWMyOXVVMk5oYkdGeWN5QTlJRnRjYmlBZ0lDQjdYRzRnSUNBZ0lDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJQ2R6ZEhKcGJtY25MRnh1SUNBZ0lDQWdJQ0JrWldaaGRXeDBPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwemRISW5MRnh1SUNBZ0lDQWdJQ0J5WlhOdmJIWmxPaUJ6ZEhJZ1BUNGdjM1J5TEZ4dUlDQWdJQ0FnSUNCemRISnBibWRwWm5rNklITjBjbWx1WjJsbWVVcFRUMDVjYmlBZ0lDQjlMRnh1SUNBZ0lIdGNiaUFnSUNBZ0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFpoYkhWbElEMDlJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lHTnlaV0YwWlU1dlpHVTZJQ2dwSUQwK0lHNWxkeUJUWTJGc1lYSW9iblZzYkNrc1hHNGdJQ0FnSUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUhSaFp6b2dKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbTUxYkd3bkxGeHVJQ0FnSUNBZ0lDQjBaWE4wT2lBdlhtNTFiR3drTHl4Y2JpQWdJQ0FnSUNBZ2NtVnpiMngyWlRvZ0tDa2dQVDRnYm5Wc2JDeGNiaUFnSUNBZ0lDQWdjM1J5YVc1bmFXWjVPaUJ6ZEhKcGJtZHBabmxLVTA5T1hHNGdJQ0FnZlN4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkaWIyOXNaV0Z1Snl4Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZZbTl2YkNjc1hHNGdJQ0FnSUNBZ0lIUmxjM1E2SUM5ZWRISjFaWHhtWVd4elpTUXZMRnh1SUNBZ0lDQWdJQ0J5WlhOdmJIWmxPaUJ6ZEhJZ1BUNGdjM1J5SUQwOVBTQW5kSEoxWlNjc1hHNGdJQ0FnSUNBZ0lITjBjbWx1WjJsbWVUb2djM1J5YVc1bmFXWjVTbE5QVGx4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0JwWkdWdWRHbG1lVG9nYVc1MFNXUmxiblJwWm5rc1hHNGdJQ0FnSUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUhSaFp6b2dKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbWx1ZENjc1hHNGdJQ0FnSUNBZ0lIUmxjM1E2SUM5ZUxUOG9Qem93ZkZzeExUbGRXekF0T1YwcUtTUXZMRnh1SUNBZ0lDQWdJQ0J5WlhOdmJIWmxPaUFvYzNSeUxDQmZiMjVGY25KdmNpd2dleUJwYm5SQmMwSnBaMGx1ZENCOUtTQTlQaUJwYm5SQmMwSnBaMGx1ZENBL0lFSnBaMGx1ZENoemRISXBJRG9nY0dGeWMyVkpiblFvYzNSeUxDQXhNQ2tzWEc0Z0lDQWdJQ0FnSUhOMGNtbHVaMmxtZVRvZ0tIc2dkbUZzZFdVZ2ZTa2dQVDRnYVc1MFNXUmxiblJwWm5rb2RtRnNkV1VwSUQ4Z2RtRnNkV1V1ZEc5VGRISnBibWNvS1NBNklFcFRUMDR1YzNSeWFXNW5hV1o1S0haaGJIVmxLVnh1SUNBZ0lIMHNYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iblZ0WW1WeUp5eGNiaUFnSUNBZ0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2Wm14dllYUW5MRnh1SUNBZ0lDQWdJQ0IwWlhOME9pQXZYaTAvS0Q4Nk1IeGJNUzA1WFZzd0xUbGRLaWtvUHpwY1hDNWJNQzA1WFNvcFB5Zy9PbHRsUlYxYkxTdGRQMXN3TFRsZEt5ay9KQzhzWEc0Z0lDQWdJQ0FnSUhKbGMyOXNkbVU2SUhOMGNpQTlQaUJ3WVhKelpVWnNiMkYwS0hOMGNpa3NYRzRnSUNBZ0lDQWdJSE4wY21sdVoybG1lVG9nYzNSeWFXNW5hV1o1U2xOUFRseHVJQ0FnSUgxY2JsMDdYRzVqYjI1emRDQnFjMjl1UlhKeWIzSWdQU0I3WEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDY25MRnh1SUNBZ0lIUmxjM1E2SUM5ZUx5eGNiaUFnSUNCeVpYTnZiSFpsS0hOMGNpd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR0JWYm5KbGMyOXNkbVZrSUhCc1lXbHVJSE5qWVd4aGNpQWtlMHBUVDA0dWMzUnlhVzVuYVdaNUtITjBjaWw5WUNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRISTdYRzRnSUNBZ2ZWeHVmVHRjYm1OdmJuTjBJSE5qYUdWdFlTQTlJRnR0WVhBc0lITmxjVjB1WTI5dVkyRjBLR3B6YjI1VFkyRnNZWEp6TENCcWMyOXVSWEp5YjNJcE8xeHVYRzVsZUhCdmNuUWdleUJ6WTJobGJXRWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVRZMkZzWVhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnYzNSeWFXNW5hV1o1VTNSeWFXNW5JSDBnWm5KdmJTQW5MaTR2TGk0dmMzUnlhVzVuYVdaNUwzTjBjbWx1WjJsbWVWTjBjbWx1Wnk1cWN5YzdYRzVjYm1OdmJuTjBJR0pwYm1GeWVTQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQlZhVzUwT0VGeWNtRjVMQ0F2THlCQ2RXWm1aWElnYVc1b1pYSnBkSE1nWm5KdmJTQlZhVzUwT0VGeWNtRjVYRzRnSUNBZ1pHVm1ZWFZzZERvZ1ptRnNjMlVzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlltbHVZWEo1Snl4Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pYUjFjbTV6SUdFZ1FuVm1abVZ5SUdsdUlHNXZaR1VnWVc1a0lHRnVJRlZwYm5RNFFYSnlZWGtnYVc0Z1luSnZkM05sY25OY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUZSdklIVnpaU0IwYUdVZ2NtVnpkV3gwYVc1bklHSjFabVpsY2lCaGN5QmhiaUJwYldGblpTd2dlVzkxSjJ4c0lIZGhiblFnZEc4Z1pHOGdjMjl0WlhSb2FXNW5JR3hwYTJVNlhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBZ0lHTnZibk4wSUdKc2IySWdQU0J1WlhjZ1FteHZZaWhiWW5WbVptVnlYU3dnZXlCMGVYQmxPaUFuYVcxaFoyVXZhbkJsWnljZ2ZTbGNiaUFnSUNBZ0tpQWdJR1J2WTNWdFpXNTBMbkYxWlhKNVUyVnNaV04wYjNJb0p5TndhRzkwYnljcExuTnlZeUE5SUZWU1RDNWpjbVZoZEdWUFltcGxZM1JWVWt3b1lteHZZaWxjYmlBZ0lDQWdLaTljYmlBZ0lDQnlaWE52YkhabEtITnlZeXdnYjI1RmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlFSjFabVpsY2lBOVBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFSjFabVpsY2k1bWNtOXRLSE55WXl3Z0oySmhjMlUyTkNjcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSFI1Y0dWdlppQmhkRzlpSUQwOVBTQW5ablZ1WTNScGIyNG5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJQYmlCSlJTQXhNU3dnWVhSdllpZ3BJR05oYmlkMElHaGhibVJzWlNCdVpYZHNhVzVsYzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUnlJRDBnWVhSdllpaHpjbU11Y21Wd2JHRmpaU2d2VzF4Y2JseGNjbDB2Wnl3Z0p5Y3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKMVptWmxjaUE5SUc1bGR5QlZhVzUwT0VGeWNtRjVLSE4wY2k1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6ZEhJdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZblZtWm1WeVcybGRJRDBnYzNSeUxtTm9ZWEpEYjJSbFFYUW9hU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1luVm1abVZ5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpZ25WR2hwY3lCbGJuWnBjbTl1YldWdWRDQmtiMlZ6SUc1dmRDQnpkWEJ3YjNKMElISmxZV1JwYm1jZ1ltbHVZWEo1SUhSaFozTTdJR1ZwZEdobGNpQkNkV1ptWlhJZ2IzSWdZWFJ2WWlCcGN5QnlaWEYxYVhKbFpDY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOeVl6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMHNYRzRnSUNBZ2MzUnlhVzVuYVdaNUtIc2dZMjl0YldWdWRDd2dkSGx3WlN3Z2RtRnNkV1VnZlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHSjFaaUE5SUhaaGJIVmxPeUF2THlCamFHVmphMlZrSUdWaGNteHBaWElnWW5rZ1ltbHVZWEo1TG1sa1pXNTBhV1o1S0NsY2JpQWdJQ0FnSUNBZ2JHVjBJSE4wY2p0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQkNkV1ptWlhJZ1BUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wY2lBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luVm1JR2x1YzNSaGJtTmxiMllnUW5WbVptVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1luVm1MblJ2VTNSeWFXNW5LQ2RpWVhObE5qUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklFSjFabVpsY2k1bWNtOXRLR0oxWmk1aWRXWm1aWElwTG5SdlUzUnlhVzVuS0NkaVlYTmxOalFuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDBlWEJsYjJZZ1luUnZZU0E5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSE1nUFNBbkp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1luVm1MbXhsYm1kMGFEc2dLeXRwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhNZ0t6MGdVM1J5YVc1bkxtWnliMjFEYUdGeVEyOWtaU2hpZFdaYmFWMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJRDBnWW5SdllTaHpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblZHaHBjeUJsYm5acGNtOXViV1Z1ZENCa2IyVnpJRzV2ZENCemRYQndiM0owSUhkeWFYUnBibWNnWW1sdVlYSjVJSFJoWjNNN0lHVnBkR2hsY2lCQ2RXWm1aWElnYjNJZ1luUnZZU0JwY3lCeVpYRjFhWEpsWkNjcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNnaGRIbHdaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1VnUFNCVFkyRnNZWEl1UWt4UFEwdGZURWxVUlZKQlREdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVWdJVDA5SUZOallXeGhjaTVSVlU5VVJWOUVUMVZDVEVVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYm1WWGFXUjBhQ0E5SUUxaGRHZ3ViV0Y0S0dOMGVDNXZjSFJwYjI1ekxteHBibVZYYVdSMGFDQXRJR04wZUM1cGJtUmxiblF1YkdWdVozUm9MQ0JqZEhndWIzQjBhVzl1Y3k1dGFXNURiMjUwWlc1MFYybGtkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JpQTlJRTFoZEdndVkyVnBiQ2h6ZEhJdWJHVnVaM1JvSUM4Z2JHbHVaVmRwWkhSb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYm1WeklEMGdibVYzSUVGeWNtRjVLRzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBc0lHOGdQU0F3T3lCcElEd2dianNnS3l0cExDQnZJQ3M5SUd4cGJtVlhhV1IwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6VzJsZElEMGdjM1J5TG5OMVluTjBjaWh2TENCc2FXNWxWMmxrZEdncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5SUQwZ2JHbHVaWE11YW05cGJpaDBlWEJsSUQwOVBTQlRZMkZzWVhJdVFreFBRMHRmVEVsVVJWSkJUQ0EvSUNkY1hHNG5JRG9nSnlBbktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjM1J5YVc1bmFXWjVVM1J5YVc1bktIc2dZMjl0YldWdWRDd2dkSGx3WlN3Z2RtRnNkV1U2SUhOMGNpQjlMQ0JqZEhnc0lHOXVRMjl0YldWdWRDd2diMjVEYUc5dGNFdGxaWEFwTzF4dUlDQWdJSDFjYm4wN1hHNWNibVY0Y0c5eWRDQjdJR0pwYm1GeWVTQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpVMlZ4TENCcGMxQmhhWElzSUdselRXRndJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dVR0ZwY2l3Z1kzSmxZWFJsVUdGcGNpQjlJR1p5YjIwZ0p5NHVMeTR1TDI1dlpHVnpMMUJoYVhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnVTJOaGJHRnlJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12VTJOaGJHRnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGbEJUVXhUWlhFZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVpRVTFNVTJWeExtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2NtVnpiMngyWlZCaGFYSnpLSE5sY1N3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUdsbUlDaHBjMU5sY1NoelpYRXBLU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MyVnhMbWwwWlcxekxteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVhSbGJTQTlJSE5sY1M1cGRHVnRjMXRwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxQmhhWElvYVhSbGJTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGMwMWhjQ2hwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGRHVnRMbWwwWlcxekxteGxibWQwYUNBK0lERXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvSjBWaFkyZ2djR0ZwY2lCdGRYTjBJR2hoZG1VZ2FYUnpJRzkzYmlCelpYRjFaVzVqWlNCcGJtUnBZMkYwYjNJbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lXbHlJRDBnYVhSbGJTNXBkR1Z0YzFzd1hTQjhmQ0J1WlhjZ1VHRnBjaWh1WlhjZ1UyTmhiR0Z5S0c1MWJHd3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUmxiUzVqYjIxdFpXNTBRbVZtYjNKbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVdseUxtdGxlUzVqYjIxdFpXNTBRbVZtYjNKbElEMGdjR0ZwY2k1clpYa3VZMjl0YldWdWRFSmxabTl5WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCZ0pIdHBkR1Z0TG1OdmJXMWxiblJDWldadmNtVjlYRnh1Skh0d1lXbHlMbXRsZVM1amIyMXRaVzUwUW1WbWIzSmxmV0JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nYVhSbGJTNWpiMjF0Wlc1MFFtVm1iM0psTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBkR1Z0TG1OdmJXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kyNGdQU0J3WVdseUxuWmhiSFZsSUQ4L0lIQmhhWEl1YTJWNU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYmk1amIyMXRaVzUwSUQwZ1kyNHVZMjl0YldWdWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmdKSHRwZEdWdExtTnZiVzFsYm5SOVhGeHVKSHRqYmk1amIyMXRaVzUwZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2FYUmxiUzVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdElEMGdjR0ZwY2p0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxjUzVwZEdWdGMxdHBYU0E5SUdselVHRnBjaWhwZEdWdEtTQS9JR2wwWlcwZ09pQnVaWGNnVUdGcGNpaHBkR1Z0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb0owVjRjR1ZqZEdWa0lHRWdjMlZ4ZFdWdVkyVWdabTl5SUhSb2FYTWdkR0ZuSnlrN1hHNGdJQ0FnY21WMGRYSnVJSE5sY1R0Y2JuMWNibVoxYm1OMGFXOXVJR055WldGMFpWQmhhWEp6S0hOamFHVnRZU3dnYVhSbGNtRmliR1VzSUdOMGVDa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2NtVndiR0ZqWlhJZ2ZTQTlJR04wZUR0Y2JpQWdJQ0JqYjI1emRDQndZV2x5Y3lBOUlHNWxkeUJaUVUxTVUyVnhLSE5qYUdWdFlTazdYRzRnSUNBZ2NHRnBjbk11ZEdGbklEMGdKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbkJoYVhKekp6dGNiaUFnSUNCc1pYUWdhU0E5SURBN1hHNGdJQ0FnYVdZZ0tHbDBaWEpoWW14bElDWW1JRk41YldKdmJDNXBkR1Z5WVhSdmNpQnBiaUJQWW1wbFkzUW9hWFJsY21GaWJHVXBLVnh1SUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwZENCdlppQnBkR1Z5WVdKc1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnlaWEJzWVdObGNpQTlQVDBnSjJaMWJtTjBhVzl1SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDQTlJSEpsY0d4aFkyVnlMbU5oYkd3b2FYUmxjbUZpYkdVc0lGTjBjbWx1WnlocEt5c3BMQ0JwZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2EyVjVMQ0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaEJjbkpoZVM1cGMwRnljbUY1S0dsMEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGRDNXNaVzVuZEdnZ1BUMDlJRElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhMlY1SUQwZ2FYUmJNRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2FYUmJNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loZ1JYaHdaV04wWldRZ1cydGxlU3dnZG1Gc2RXVmRJSFIxY0d4bE9pQWtlMmwwZldBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWFFnSmlZZ2FYUWdhVzV6ZEdGdVkyVnZaaUJQWW1wbFkzUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnJaWGx6SUQwZ1QySnFaV04wTG10bGVYTW9hWFFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGx6TG14bGJtZDBhQ0E5UFQwZ01Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCclpYa2dQU0JyWlhseld6QmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUdsMFcydGxlVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtHQkZlSEJsWTNSbFpDQjBkWEJzWlNCM2FYUm9JRzl1WlNCclpYa3NJRzV2ZENBa2UydGxlWE11YkdWdVozUm9mU0JyWlhsellDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhMlY1SUQwZ2FYUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVdseWN5NXBkR1Z0Y3k1d2RYTm9LR055WldGMFpWQmhhWElvYTJWNUxDQjJZV3gxWlN3Z1kzUjRLU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjR0ZwY25NN1hHNTlYRzVqYjI1emRDQndZV2x5Y3lBOUlIdGNiaUFnSUNCamIyeHNaV04wYVc5dU9pQW5jMlZ4Snl4Y2JpQWdJQ0JrWldaaGRXeDBPaUJtWVd4elpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB3WVdseWN5Y3NYRzRnSUNBZ2NtVnpiMngyWlRvZ2NtVnpiMngyWlZCaGFYSnpMRnh1SUNBZ0lHTnlaV0YwWlU1dlpHVTZJR055WldGMFpWQmhhWEp6WEc1OU8xeHVYRzVsZUhCdmNuUWdleUJqY21WaGRHVlFZV2x5Y3l3Z2NHRnBjbk1zSUhKbGMyOXNkbVZRWVdseWN5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpVMk5oYkdGeUxDQnBjMUJoYVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCMGIwcFRJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12ZEc5S1V5NXFjeWM3WEc1cGJYQnZjblFnZXlCWlFVMU1UV0Z3SUgwZ1puSnZiU0FuTGk0dkxpNHZibTlrWlhNdldVRk5URTFoY0M1cWN5YzdYRzVwYlhCdmNuUWdleUJaUVUxTVUyVnhJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12V1VGTlRGTmxjUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnlaWE52YkhabFVHRnBjbk1zSUdOeVpXRjBaVkJoYVhKeklIMGdabkp2YlNBbkxpOXdZV2x5Y3k1cWN5YzdYRzVjYm1Oc1lYTnpJRmxCVFV4UFRXRndJR1Y0ZEdWdVpITWdXVUZOVEZObGNTQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdJQ0FnSUhOMWNHVnlLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZV1JrSUQwZ1dVRk5URTFoY0M1d2NtOTBiM1I1Y0dVdVlXUmtMbUpwYm1Rb2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaR1ZzWlhSbElEMGdXVUZOVEUxaGNDNXdjbTkwYjNSNWNHVXVaR1ZzWlhSbExtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBJRDBnV1VGTlRFMWhjQzV3Y205MGIzUjVjR1V1WjJWMExtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFHRnpJRDBnV1VGTlRFMWhjQzV3Y205MGIzUjVjR1V1YUdGekxtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVjBJRDBnV1VGTlRFMWhjQzV3Y205MGIzUjVjR1V1YzJWMExtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdWRHRm5JRDBnV1VGTlRFOU5ZWEF1ZEdGbk8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSlppQmdZM1I0WUNCcGN5Qm5hWFpsYml3Z2RHaGxJSEpsZEhWeWJpQjBlWEJsSUdseklHRmpkSFZoYkd4NUlHQk5ZWEE4ZFc1cmJtOTNiaXdnZFc1cmJtOTNiajVnTEZ4dUlDQWdJQ0FxSUdKMWRDQlVlWEJsVTJOeWFYQjBJSGR2YmlkMElHRnNiRzkzSUhkcFpHVnVhVzVuSUhSb1pTQnphV2R1WVhSMWNtVWdiMllnWVNCamFHbHNaQ0J0WlhSb2IyUXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RHOUtVMDlPS0Y4c0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkWEJsY2k1MGIwcFRUMDRvWHlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGNDQTlJRzVsZHlCTllYQW9LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTjBlRDh1YjI1RGNtVmhkR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkSGd1YjI1RGNtVmhkR1VvYldGd0tUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J3WVdseUlHOW1JSFJvYVhNdWFYUmxiWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCclpYa3NJSFpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHpVR0ZwY2lod1lXbHlLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVTQTlJSFJ2U2xNb2NHRnBjaTVyWlhrc0lDY25MQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2RHOUtVeWh3WVdseUxuWmhiSFZsTENCclpYa3NJR04wZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCclpYa2dQU0IwYjBwVEtIQmhhWElzSUNjbkxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzFoY0M1b1lYTW9hMlY1S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjA5eVpHVnlaV1FnYldGd2N5QnRkWE4wSUc1dmRDQnBibU5zZFdSbElHUjFjR3hwWTJGMFpTQnJaWGx6SnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWMyVjBLR3RsZVN3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdFlYQTdYRzRnSUNBZ2ZWeHVJQ0FnSUhOMFlYUnBZeUJtY205dEtITmphR1Z0WVN3Z2FYUmxjbUZpYkdVc0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3WVdseWN5QTlJR055WldGMFpWQmhhWEp6S0hOamFHVnRZU3dnYVhSbGNtRmliR1VzSUdOMGVDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOXRZWEFnUFNCdVpYY2dkR2hwY3lncE8xeHVJQ0FnSUNBZ0lDQnZiV0Z3TG1sMFpXMXpJRDBnY0dGcGNuTXVhWFJsYlhNN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdmJXRndPMXh1SUNBZ0lIMWNibjFjYmxsQlRVeFBUV0Z3TG5SaFp5QTlJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB2YldGd0p6dGNibU52Ym5OMElHOXRZWEFnUFNCN1hHNGdJQ0FnWTI5c2JHVmpkR2x2YmpvZ0ozTmxjU2NzWEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFpoYkhWbElHbHVjM1JoYm1ObGIyWWdUV0Z3TEZ4dUlDQWdJRzV2WkdWRGJHRnpjem9nV1VGTlRFOU5ZWEFzWEc0Z0lDQWdaR1ZtWVhWc2REb2dabUZzYzJVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZiMjFoY0Njc1hHNGdJQ0FnY21WemIyeDJaU2h6WlhFc0lHOXVSWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NHRnBjbk1nUFNCeVpYTnZiSFpsVUdGcGNuTW9jMlZ4TENCdmJrVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWbGJrdGxlWE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0I3SUd0bGVTQjlJRzltSUhCaGFYSnpMbWwwWlcxektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5UWTJGc1lYSW9hMlY1S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6WldWdVMyVjVjeTVwYm1Oc2RXUmxjeWhyWlhrdWRtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9ZRTl5WkdWeVpXUWdiV0Z3Y3lCdGRYTjBJRzV2ZENCcGJtTnNkV1JsSUdSMWNHeHBZMkYwWlNCclpYbHpPaUFrZTJ0bGVTNTJZV3gxWlgxZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sWlc1TFpYbHpMbkIxYzJnb2EyVjVMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1aGMzTnBaMjRvYm1WM0lGbEJUVXhQVFdGd0tDa3NJSEJoYVhKektUdGNiaUFnSUNCOUxGeHVJQ0FnSUdOeVpXRjBaVTV2WkdVNklDaHpZMmhsYldFc0lHbDBaWEpoWW14bExDQmpkSGdwSUQwK0lGbEJUVXhQVFdGd0xtWnliMjBvYzJOb1pXMWhMQ0JwZEdWeVlXSnNaU3dnWTNSNEtWeHVmVHRjYmx4dVpYaHdiM0owSUhzZ1dVRk5URTlOWVhBc0lHOXRZWEFnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dVhHNW1kVzVqZEdsdmJpQmliMjlzVTNSeWFXNW5hV1o1S0hzZ2RtRnNkV1VzSUhOdmRYSmpaU0I5TENCamRIZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCaWIyOXNUMkpxSUQwZ2RtRnNkV1VnUHlCMGNuVmxWR0ZuSURvZ1ptRnNjMlZVWVdjN1hHNGdJQ0FnYVdZZ0tITnZkWEpqWlNBbUppQmliMjlzVDJKcUxuUmxjM1F1ZEdWemRDaHpiM1Z5WTJVcEtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MyOTFjbU5sTzF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlNBL0lHTjBlQzV2Y0hScGIyNXpMblJ5ZFdWVGRISWdPaUJqZEhndWIzQjBhVzl1Y3k1bVlXeHpaVk4wY2p0Y2JuMWNibU52Ym5OMElIUnlkV1ZVWVdjZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIWmhiSFZsSUQwOVBTQjBjblZsTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZZbTl2YkNjc1hHNGdJQ0FnZEdWemREb2dMMTRvUHpwWmZIbDhXMWw1WFdWemZGbEZVM3hiVkhSZGNuVmxmRlJTVlVWOFcwOXZYVzU4VDA0cEpDOHNYRzRnSUNBZ2NtVnpiMngyWlRvZ0tDa2dQVDRnYm1WM0lGTmpZV3hoY2loMGNuVmxLU3hjYmlBZ0lDQnpkSEpwYm1kcFpuazZJR0p2YjJ4VGRISnBibWRwWm5sY2JuMDdYRzVqYjI1emRDQm1ZV3h6WlZSaFp5QTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkbUZzZFdVZ1BUMDlJR1poYkhObExGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2WW05dmJDY3NYRzRnSUNBZ2RHVnpkRG9nTDE0b1B6cE9mRzU4VzA1dVhXOThUazk4VzBabVhXRnNjMlY4UmtGTVUwVjhXMDl2WFdabWZFOUdSaWtrTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvS1NBOVBpQnVaWGNnVTJOaGJHRnlLR1poYkhObEtTeGNiaUFnSUNCemRISnBibWRwWm5rNklHSnZiMnhUZEhKcGJtZHBabmxjYm4wN1hHNWNibVY0Y0c5eWRDQjdJR1poYkhObFZHRm5MQ0IwY25WbFZHRm5JSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZVMk5oYkdGeUxtcHpKenRjYm1sdGNHOXlkQ0I3SUhOMGNtbHVaMmxtZVU1MWJXSmxjaUI5SUdaeWIyMGdKeTR1THk0dUwzTjBjbWx1WjJsbWVTOXpkSEpwYm1kcFpubE9kVzFpWlhJdWFuTW5PMXh1WEc1amIyNXpkQ0JtYkc5aGRFNWhUaUE5SUh0Y2JpQWdJQ0JwWkdWdWRHbG1lVG9nZG1Gc2RXVWdQVDRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYm5WdFltVnlKeXhjYmlBZ0lDQmtaV1poZFd4ME9pQjBjblZsTEZ4dUlDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9tWnNiMkYwSnl4Y2JpQWdJQ0IwWlhOME9pQXZYaWcvT2xzdEsxMC9YRnd1S0Q4NmFXNW1mRWx1Wm54SlRrWXBmRnhjTG01aGJueGNYQzVPWVU1OFhGd3VUa0ZPS1NRdkxGeHVJQ0FnSUhKbGMyOXNkbVU2SUNoemRISXBJRDArSUhOMGNpNXpiR2xqWlNndE15a3VkRzlNYjNkbGNrTmhjMlVvS1NBOVBUMGdKMjVoYmlkY2JpQWdJQ0FnSUNBZ1B5Qk9ZVTVjYmlBZ0lDQWdJQ0FnT2lCemRISmJNRjBnUFQwOUlDY3RKMXh1SUNBZ0lDQWdJQ0FnSUNBZ1B5Qk9kVzFpWlhJdVRrVkhRVlJKVmtWZlNVNUdTVTVKVkZsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nVG5WdFltVnlMbEJQVTBsVVNWWkZYMGxPUmtsT1NWUlpMRnh1SUNBZ0lITjBjbWx1WjJsbWVUb2djM1J5YVc1bmFXWjVUblZ0WW1WeVhHNTlPMXh1WTI5dWMzUWdabXh2WVhSRmVIQWdQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKMjUxYldKbGNpY3NYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwbWJHOWhkQ2NzWEc0Z0lDQWdabTl5YldGME9pQW5SVmhRSnl4Y2JpQWdJQ0IwWlhOME9pQXZYbHN0SzEwL0tEODZXekF0T1YxYk1DMDVYMTBxS1Q4b1B6cGNYQzViTUMwNVgxMHFLVDliWlVWZFd5MHJYVDliTUMwNVhTc2tMeXhjYmlBZ0lDQnlaWE52YkhabE9pQW9jM1J5S1NBOVBpQndZWEp6WlVac2IyRjBLSE4wY2k1eVpYQnNZV05sS0M5ZkwyY3NJQ2NuS1Nrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1S0c1dlpHVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiblZ0SUQwZ1RuVnRZbVZ5S0c1dlpHVXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkdhVzVwZEdVb2JuVnRLU0EvSUc1MWJTNTBiMFY0Y0c5dVpXNTBhV0ZzS0NrZ09pQnpkSEpwYm1kcFpubE9kVzFpWlhJb2JtOWtaU2s3WEc0Z0lDQWdmVnh1ZlR0Y2JtTnZibk4wSUdac2IyRjBJRDBnZTF4dUlDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJQ2R1ZFcxaVpYSW5MRnh1SUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlpteHZZWFFuTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ4b1B6cGJNQzA1WFZzd0xUbGZYU29wUDF4Y0xsc3dMVGxmWFNva0x5eGNiaUFnSUNCeVpYTnZiSFpsS0hOMGNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2JtVjNJRk5qWVd4aGNpaHdZWEp6WlVac2IyRjBLSE4wY2k1eVpYQnNZV05sS0M5ZkwyY3NJQ2NuS1NrcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2IzUWdQU0J6ZEhJdWFXNWtaWGhQWmlnbkxpY3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pHOTBJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWmlBOUlITjBjaTV6ZFdKemRISnBibWNvWkc5MElDc2dNU2t1Y21Wd2JHRmpaU2d2WHk5bkxDQW5KeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWmx0bUxteGxibWQwYUNBdElERmRJRDA5UFNBbk1DY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibTlrWlM1dGFXNUdjbUZqZEdsdmJrUnBaMmwwY3lBOUlHWXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnViMlJsTzF4dUlDQWdJSDBzWEc0Z0lDQWdjM1J5YVc1bmFXWjVPaUJ6ZEhKcGJtZHBabmxPZFcxaVpYSmNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHWnNiMkYwTENCbWJHOWhkRVY0Y0N3Z1pteHZZWFJPWVU0Z2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCemRISnBibWRwWm5sT2RXMWlaWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXpkSEpwYm1kcFpua3ZjM1J5YVc1bmFXWjVUblZ0WW1WeUxtcHpKenRjYmx4dVkyOXVjM1FnYVc1MFNXUmxiblJwWm5rZ1BTQW9kbUZzZFdVcElEMCtJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKMkpwWjJsdWRDY2dmSHdnVG5WdFltVnlMbWx6U1c1MFpXZGxjaWgyWVd4MVpTazdYRzVtZFc1amRHbHZiaUJwYm5SU1pYTnZiSFpsS0hOMGNpd2diMlptYzJWMExDQnlZV1JwZUN3Z2V5QnBiblJCYzBKcFowbHVkQ0I5S1NCN1hHNGdJQ0FnWTI5dWMzUWdjMmxuYmlBOUlITjBjbHN3WFR0Y2JpQWdJQ0JwWmlBb2MybG5iaUE5UFQwZ0p5MG5JSHg4SUhOcFoyNGdQVDA5SUNjckp5bGNiaUFnSUNBZ0lDQWdiMlptYzJWMElDczlJREU3WEc0Z0lDQWdjM1J5SUQwZ2MzUnlMbk4xWW5OMGNtbHVaeWh2Wm1aelpYUXBMbkpsY0d4aFkyVW9MMTh2Wnl3Z0p5Y3BPMXh1SUNBZ0lHbG1JQ2hwYm5SQmMwSnBaMGx1ZENrZ2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tISmhaR2w0S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElESTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1J5SUQwZ1lEQmlKSHR6ZEhKOVlEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ09EcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnUFNCZ01HOGtlM04wY24xZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBeE5qcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnUFNCZ01IZ2tlM04wY24xZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUc0Z1BTQkNhV2RKYm5Rb2MzUnlLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE5wWjI0Z1BUMDlJQ2N0SnlBL0lFSnBaMGx1ZENndE1Ta2dLaUJ1SURvZ2JqdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdiaUE5SUhCaGNuTmxTVzUwS0hOMGNpd2djbUZrYVhncE8xeHVJQ0FnSUhKbGRIVnliaUJ6YVdkdUlEMDlQU0FuTFNjZ1B5QXRNU0FxSUc0Z09pQnVPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2FXNTBVM1J5YVc1bmFXWjVLRzV2WkdVc0lISmhaR2w0TENCd2NtVm1hWGdwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJSFpoYkhWbElIMGdQU0J1YjJSbE8xeHVJQ0FnSUdsbUlDaHBiblJKWkdWdWRHbG1lU2gyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1J5SUQwZ2RtRnNkV1V1ZEc5VGRISnBibWNvY21Ga2FYZ3BPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVZ1BDQXdJRDhnSnkwbklDc2djSEpsWm1sNElDc2djM1J5TG5OMVluTjBjaWd4S1NBNklIQnlaV1pwZUNBcklITjBjanRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOMGNtbHVaMmxtZVU1MWJXSmxjaWh1YjJSbEtUdGNibjFjYm1OdmJuTjBJR2x1ZEVKcGJpQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dhVzUwU1dSbGJuUnBabmtzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHBiblFuTEZ4dUlDQWdJR1p2Y20xaGREb2dKMEpKVGljc1hHNGdJQ0FnZEdWemREb2dMMTViTFN0ZFB6QmlXekF0TVY5ZEt5UXZMRnh1SUNBZ0lISmxjMjlzZG1VNklDaHpkSElzSUY5dmJrVnljbTl5TENCdmNIUXBJRDArSUdsdWRGSmxjMjlzZG1Vb2MzUnlMQ0F5TENBeUxDQnZjSFFwTEZ4dUlDQWdJSE4wY21sdVoybG1lVG9nYm05a1pTQTlQaUJwYm5SVGRISnBibWRwWm5rb2JtOWtaU3dnTWl3Z0p6QmlKeWxjYm4wN1hHNWpiMjV6ZENCcGJuUlBZM1FnUFNCN1hHNGdJQ0FnYVdSbGJuUnBabms2SUdsdWRFbGtaVzUwYVdaNUxGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YVc1MEp5eGNiaUFnSUNCbWIzSnRZWFE2SUNkUFExUW5MRnh1SUNBZ0lIUmxjM1E2SUM5ZVd5MHJYVDh3V3pBdE4xOWRLeVF2TEZ4dUlDQWdJSEpsYzI5c2RtVTZJQ2h6ZEhJc0lGOXZia1Z5Y205eUxDQnZjSFFwSUQwK0lHbHVkRkpsYzI5c2RtVW9jM1J5TENBeExDQTRMQ0J2Y0hRcExGeHVJQ0FnSUhOMGNtbHVaMmxtZVRvZ2JtOWtaU0E5UGlCcGJuUlRkSEpwYm1kcFpua29ibTlrWlN3Z09Dd2dKekFuS1Z4dWZUdGNibU52Ym5OMElHbHVkQ0E5SUh0Y2JpQWdJQ0JwWkdWdWRHbG1lVG9nYVc1MFNXUmxiblJwWm5rc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanBwYm5RbkxGeHVJQ0FnSUhSbGMzUTZJQzllV3kwclhUOWJNQzA1WFZzd0xUbGZYU29rTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvYzNSeUxDQmZiMjVGY25KdmNpd2diM0IwS1NBOVBpQnBiblJTWlhOdmJIWmxLSE4wY2l3Z01Dd2dNVEFzSUc5d2RDa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnpkSEpwYm1kcFpubE9kVzFpWlhKY2JuMDdYRzVqYjI1emRDQnBiblJJWlhnZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklHbHVkRWxrWlc1MGFXWjVMRnh1SUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmFXNTBKeXhjYmlBZ0lDQm1iM0p0WVhRNklDZElSVmduTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ4d2VGc3dMVGxoTFdaQkxVWmZYU3NrTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvYzNSeUxDQmZiMjVGY25KdmNpd2diM0IwS1NBOVBpQnBiblJTWlhOdmJIWmxLSE4wY2l3Z01pd2dNVFlzSUc5d2RDa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnViMlJsSUQwK0lHbHVkRk4wY21sdVoybG1lU2h1YjJSbExDQXhOaXdnSnpCNEp5bGNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHbHVkQ3dnYVc1MFFtbHVMQ0JwYm5SSVpYZ3NJR2x1ZEU5amRDQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpUV0Z3TENCcGMxQmhhWElzSUdselUyTmhiR0Z5SUgwZ1puSnZiU0FuTGk0dkxpNHZibTlrWlhNdmFXUmxiblJwZEhrdWFuTW5PMXh1YVcxd2IzSjBJSHNnVUdGcGNpd2dZM0psWVhSbFVHRnBjaUI5SUdaeWIyMGdKeTR1THk0dUwyNXZaR1Z6TDFCaGFYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ1dVRk5URTFoY0N3Z1ptbHVaRkJoYVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVpRVTFNVFdGd0xtcHpKenRjYmx4dVkyeGhjM01nV1VGTlRGTmxkQ0JsZUhSbGJtUnpJRmxCVFV4TllYQWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSE5qYUdWdFlTa2dlMXh1SUNBZ0lDQWdJQ0J6ZFhCbGNpaHpZMmhsYldFcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5SaFp5QTlJRmxCVFV4VFpYUXVkR0ZuTzF4dUlDQWdJSDFjYmlBZ0lDQmhaR1FvYTJWNUtTQjdYRzRnSUNBZ0lDQWdJR3hsZENCd1lXbHlPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTlFZV2x5S0d0bGVTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lXbHlJRDBnYTJWNU8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHJaWGtnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dWdlppQnJaWGtnUFQwOUlDZHZZbXBsWTNRbklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBbmEyVjVKeUJwYmlCclpYa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDZDJZV3gxWlNjZ2FXNGdhMlY1SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JyWlhrdWRtRnNkV1VnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQndZV2x5SUQwZ2JtVjNJRkJoYVhJb2EyVjVMbXRsZVN3Z2JuVnNiQ2s3WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGFYSWdQU0J1WlhjZ1VHRnBjaWhyWlhrc0lHNTFiR3dwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WMklEMGdabWx1WkZCaGFYSW9kR2hwY3k1cGRHVnRjeXdnY0dGcGNpNXJaWGtwTzF4dUlDQWdJQ0FnSUNCcFppQW9JWEJ5WlhZcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtbDBaVzF6TG5CMWMyZ29jR0ZwY2lrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVsbUlHQnJaV1Z3VUdGcGNtQWdhWE1nWUhSeWRXVmdMQ0J5WlhSMWNtNXpJSFJvWlNCUVlXbHlJRzFoZEdOb2FXNW5JR0JyWlhsZ0xseHVJQ0FnSUNBcUlFOTBhR1Z5ZDJselpTd2djbVYwZFhKdWN5QjBhR1VnZG1Gc2RXVWdiMllnZEdoaGRDQlFZV2x5SjNNZ2EyVjVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHZGxkQ2hyWlhrc0lHdGxaWEJRWVdseUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhhWElnUFNCbWFXNWtVR0ZwY2loMGFHbHpMbWwwWlcxekxDQnJaWGtwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSVd0bFpYQlFZV2x5SUNZbUlHbHpVR0ZwY2lod1lXbHlLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QnBjMU5qWVd4aGNpaHdZV2x5TG10bGVTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSEJoYVhJdWEyVjVMblpoYkhWbFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ09pQndZV2x5TG10bGVWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCd1lXbHlPMXh1SUNBZ0lIMWNiaUFnSUNCelpYUW9hMlY1TENCMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUNFOVBTQW5ZbTl2YkdWaGJpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUVWNGNHVmpkR1ZrSUdKdmIyeGxZVzRnZG1Gc2RXVWdabTl5SUhObGRDaHJaWGtzSUhaaGJIVmxLU0JwYmlCaElGbEJUVXdnYzJWMExDQnViM1FnSkh0MGVYQmxiMllnZG1Gc2RXVjlZQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJ5WlhZZ1BTQm1hVzVrVUdGcGNpaDBhR2x6TG1sMFpXMXpMQ0JyWlhrcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvY0hKbGRpQW1KaUFoZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVhSbGJYTXVjM0JzYVdObEtIUm9hWE11YVhSbGJYTXVhVzVrWlhoUFppaHdjbVYyS1N3Z01TazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvSVhCeVpYWWdKaVlnZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVhSbGJYTXVjSFZ6YUNodVpYY2dVR0ZwY2loclpYa3BLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBiMHBUVDA0b1h5d2dZM1I0S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRYQmxjaTUwYjBwVFQwNG9YeXdnWTNSNExDQlRaWFFwTzF4dUlDQWdJSDFjYmlBZ0lDQjBiMU4wY21sdVp5aGpkSGdzSUc5dVEyOXRiV1Z1ZEN3Z2IyNURhRzl0Y0V0bFpYQXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRmpkSGdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1NsTlBUaTV6ZEhKcGJtZHBabmtvZEdocGN5azdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWhoYzBGc2JFNTFiR3hXWVd4MVpYTW9kSEoxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjM1Z3WlhJdWRHOVRkSEpwYm1jb1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z1kzUjRMQ0I3SUdGc2JFNTFiR3hXWVd4MVpYTTZJSFJ5ZFdVZ2ZTa3NJRzl1UTI5dGJXVnVkQ3dnYjI1RGFHOXRjRXRsWlhBcE8xeHVJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oxTmxkQ0JwZEdWdGN5QnRkWE4wSUdGc2JDQm9ZWFpsSUc1MWJHd2dkbUZzZFdWekp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhOMFlYUnBZeUJtY205dEtITmphR1Z0WVN3Z2FYUmxjbUZpYkdVc0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUhKbGNHeGhZMlZ5SUgwZ1BTQmpkSGc3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sZENBOUlHNWxkeUIwYUdsektITmphR1Z0WVNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwZEdWeVlXSnNaU0FtSmlCVGVXMWliMnd1YVhSbGNtRjBiM0lnYVc0Z1QySnFaV04wS0dsMFpYSmhZbXhsS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJSFpoYkhWbElHOW1JR2wwWlhKaFlteGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYQnNZV05sY2lBOVBUMGdKMloxYm1OMGFXOXVKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCeVpYQnNZV05sY2k1allXeHNLR2wwWlhKaFlteGxMQ0IyWVd4MVpTd2dkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxkQzVwZEdWdGN5NXdkWE5vS0dOeVpXRjBaVkJoYVhJb2RtRnNkV1VzSUc1MWJHd3NJR04wZUNrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzJWME8xeHVJQ0FnSUgxY2JuMWNibGxCVFV4VFpYUXVkR0ZuSUQwZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9uTmxkQ2M3WEc1amIyNXpkQ0J6WlhRZ1BTQjdYRzRnSUNBZ1kyOXNiR1ZqZEdsdmJqb2dKMjFoY0Njc1hHNGdJQ0FnYVdSbGJuUnBabms2SUhaaGJIVmxJRDArSUhaaGJIVmxJR2x1YzNSaGJtTmxiMllnVTJWMExGeHVJQ0FnSUc1dlpHVkRiR0Z6Y3pvZ1dVRk5URk5sZEN4Y2JpQWdJQ0JrWldaaGRXeDBPaUJtWVd4elpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB6WlhRbkxGeHVJQ0FnSUdOeVpXRjBaVTV2WkdVNklDaHpZMmhsYldFc0lHbDBaWEpoWW14bExDQmpkSGdwSUQwK0lGbEJUVXhUWlhRdVpuSnZiU2h6WTJobGJXRXNJR2wwWlhKaFlteGxMQ0JqZEhncExGeHVJQ0FnSUhKbGMyOXNkbVVvYldGd0xDQnZia1Z5Y205eUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGMwMWhjQ2h0WVhBcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iV0Z3TG1oaGMwRnNiRTUxYkd4V1lXeDFaWE1vZEhKMVpTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1aGMzTnBaMjRvYm1WM0lGbEJUVXhUWlhRb0tTd2diV0Z3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0NkVFpYUWdhWFJsYlhNZ2JYVnpkQ0JoYkd3Z2FHRjJaU0J1ZFd4c0lIWmhiSFZsY3ljcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9KMFY0Y0dWamRHVmtJR0VnYldGd2NHbHVaeUJtYjNJZ2RHaHBjeUIwWVdjbktUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhjRHRjYmlBZ0lDQjlYRzU5TzF4dVhHNWxlSEJ2Y25RZ2V5QlpRVTFNVTJWMExDQnpaWFFnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJ6ZEhKcGJtZHBabmxPZFcxaVpYSWdmU0JtY205dElDY3VMaTh1TGk5emRISnBibWRwWm5rdmMzUnlhVzVuYVdaNVRuVnRZbVZ5TG1wekp6dGNibHh1THlvcUlFbHVkR1Z5Ym1Gc0lIUjVjR1Z6SUdoaGJtUnNaU0JpYVdkcGJuUWdZWE1nYm5WdFltVnlMQ0JpWldOaGRYTmxJRlJUSUdOaGJpZDBJR1pwWjNWeVpTQnBkQ0J2ZFhRdUlDb3ZYRzVtZFc1amRHbHZiaUJ3WVhKelpWTmxlR0ZuWlhOcGJXRnNLSE4wY2l3Z1lYTkNhV2RKYm5RcElIdGNiaUFnSUNCamIyNXpkQ0J6YVdkdUlEMGdjM1J5V3pCZE8xeHVJQ0FnSUdOdmJuTjBJSEJoY25SeklEMGdjMmxuYmlBOVBUMGdKeTBuSUh4OElITnBaMjRnUFQwOUlDY3JKeUEvSUhOMGNpNXpkV0p6ZEhKcGJtY29NU2tnT2lCemRISTdYRzRnSUNBZ1kyOXVjM1FnYm5WdElEMGdLRzRwSUQwK0lHRnpRbWxuU1c1MElEOGdRbWxuU1c1MEtHNHBJRG9nVG5WdFltVnlLRzRwTzF4dUlDQWdJR052Ym5OMElISmxjeUE5SUhCaGNuUnpYRzRnSUNBZ0lDQWdJQzV5WlhCc1lXTmxLQzlmTDJjc0lDY25LVnh1SUNBZ0lDQWdJQ0F1YzNCc2FYUW9Kem9uS1Z4dUlDQWdJQ0FnSUNBdWNtVmtkV05sS0NoeVpYTXNJSEFwSUQwK0lISmxjeUFxSUc1MWJTZzJNQ2tnS3lCdWRXMG9jQ2tzSUc1MWJTZ3dLU2s3WEc0Z0lDQWdjbVYwZFhKdUlDaHphV2R1SUQwOVBTQW5MU2NnUHlCdWRXMG9MVEVwSUNvZ2NtVnpJRG9nY21WektUdGNibjFjYmk4cUtseHVJQ29nYUdob2FEcHRiVHB6Y3k1emMzTmNiaUFxWEc0Z0tpQkpiblJsY201aGJDQjBlWEJsY3lCb1lXNWtiR1VnWW1sbmFXNTBJR0Z6SUc1MWJXSmxjaXdnWW1WallYVnpaU0JVVXlCallXNG5kQ0JtYVdkMWNtVWdhWFFnYjNWMExseHVJQ292WEc1bWRXNWpkR2x2YmlCemRISnBibWRwWm5sVFpYaGhaMlZ6YVcxaGJDaHViMlJsS1NCN1hHNGdJQ0FnYkdWMElIc2dkbUZzZFdVZ2ZTQTlJRzV2WkdVN1hHNGdJQ0FnYkdWMElHNTFiU0E5SUNodUtTQTlQaUJ1TzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkaWFXZHBiblFuS1Z4dUlDQWdJQ0FnSUNCdWRXMGdQU0J1SUQwK0lFSnBaMGx1ZENodUtUdGNiaUFnSUNCbGJITmxJR2xtSUNocGMwNWhUaWgyWVd4MVpTa2dmSHdnSVdselJtbHVhWFJsS0haaGJIVmxLU2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVTUxYldKbGNpaHViMlJsS1R0Y2JpQWdJQ0JzWlhRZ2MybG5iaUE5SUNjbk8xeHVJQ0FnSUdsbUlDaDJZV3gxWlNBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnYzJsbmJpQTlJQ2N0Snp0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1VnS2owZ2JuVnRLQzB4S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ1h6WXdJRDBnYm5WdEtEWXdLVHRjYmlBZ0lDQmpiMjV6ZENCd1lYSjBjeUE5SUZ0MllXeDFaU0FsSUY4Mk1GMDdJQzh2SUhObFkyOXVaSE1zSUdsdVkyeDFaR2x1WnlCdGMxeHVJQ0FnSUdsbUlDaDJZV3gxWlNBOElEWXdLU0I3WEc0Z0lDQWdJQ0FnSUhCaGNuUnpMblZ1YzJocFpuUW9NQ2s3SUM4dklHRjBJR3hsWVhOMElHOXVaU0E2SUdseklISmxjWFZwY21Wa1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlDaDJZV3gxWlNBdElIQmhjblJ6V3pCZEtTQXZJRjgyTUR0Y2JpQWdJQ0FnSUNBZ2NHRnlkSE11ZFc1emFHbG1kQ2gyWVd4MVpTQWxJRjgyTUNrN0lDOHZJRzFwYm5WMFpYTmNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxJRDQ5SURZd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUNoMllXeDFaU0F0SUhCaGNuUnpXekJkS1NBdklGODJNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhjblJ6TG5WdWMyaHBablFvZG1Gc2RXVXBPeUF2THlCb2IzVnljMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlBb2MybG5iaUFyWEc0Z0lDQWdJQ0FnSUhCaGNuUnpYRzRnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLRzRnUFQ0Z1UzUnlhVzVuS0c0cExuQmhaRk4wWVhKMEtESXNJQ2N3SnlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YW05cGJpZ25PaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZNREF3TURBd1hGeGtLaVF2TENBbkp5a2dMeThnSlNBMk1DQnRZWGtnYVc1MGNtOWtkV05sSUdWeWNtOXlYRzRnSUNBZ0tUdGNibjFjYm1OdmJuTjBJR2x1ZEZScGJXVWdQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKMkpwWjJsdWRDY2dmSHdnVG5WdFltVnlMbWx6U1c1MFpXZGxjaWgyWVd4MVpTa3NYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwcGJuUW5MRnh1SUNBZ0lHWnZjbTFoZERvZ0oxUkpUVVVuTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ5Yk1DMDVYVnN3TFRsZlhTb29Qem82V3pBdE5WMC9XekF0T1YwcEt5UXZMRnh1SUNBZ0lISmxjMjlzZG1VNklDaHpkSElzSUY5dmJrVnljbTl5TENCN0lHbHVkRUZ6UW1sblNXNTBJSDBwSUQwK0lIQmhjbk5sVTJWNFlXZGxjMmx0WVd3b2MzUnlMQ0JwYm5SQmMwSnBaMGx1ZENrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1T2lCemRISnBibWRwWm5sVFpYaGhaMlZ6YVcxaGJGeHVmVHRjYm1OdmJuTjBJR1pzYjJGMFZHbHRaU0E5SUh0Y2JpQWdJQ0JwWkdWdWRHbG1lVG9nZG1Gc2RXVWdQVDRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYm5WdFltVnlKeXhjYmlBZ0lDQmtaV1poZFd4ME9pQjBjblZsTEZ4dUlDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9tWnNiMkYwSnl4Y2JpQWdJQ0JtYjNKdFlYUTZJQ2RVU1UxRkp5eGNiaUFnSUNCMFpYTjBPaUF2WGxzdEsxMC9XekF0T1YxYk1DMDVYMTBxS0Q4Nk9sc3dMVFZkUDFzd0xUbGRLU3RjWEM1Yk1DMDVYMTBxSkM4c1hHNGdJQ0FnY21WemIyeDJaVG9nYzNSeUlEMCtJSEJoY25ObFUyVjRZV2RsYzJsdFlXd29jM1J5TENCbVlXeHpaU2tzWEc0Z0lDQWdjM1J5YVc1bmFXWjVPaUJ6ZEhKcGJtZHBabmxUWlhoaFoyVnphVzFoYkZ4dWZUdGNibU52Ym5OMElIUnBiV1Z6ZEdGdGNDQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQkVZWFJsTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZkR2x0WlhOMFlXMXdKeXhjYmlBZ0lDQXZMeUJKWmlCMGFHVWdkR2x0WlNCNmIyNWxJR2x6SUc5dGFYUjBaV1FzSUhSb1pTQjBhVzFsYzNSaGJYQWdhWE1nWVhOemRXMWxaQ0IwYnlCaVpTQnpjR1ZqYVdacFpXUWdhVzRnVlZSRExpQlVhR1VnZEdsdFpTQndZWEowWEc0Z0lDQWdMeThnYldGNUlHSmxJRzl0YVhSMFpXUWdZV3gwYjJkbGRHaGxjaXdnY21WemRXeDBhVzVuSUdsdUlHRWdaR0YwWlNCbWIzSnRZWFF1SUVsdUlITjFZMmdnWVNCallYTmxMQ0IwYUdVZ2RHbHRaU0J3WVhKMElHbHpYRzRnSUNBZ0x5OGdZWE56ZFcxbFpDQjBieUJpWlNBd01Eb3dNRG93TUZvZ0tITjBZWEowSUc5bUlHUmhlU3dnVlZSREtTNWNiaUFnSUNCMFpYTjBPaUJTWldkRmVIQW9KMTRvV3pBdE9WMTdOSDBwTFNoYk1DMDVYWHN4TERKOUtTMG9XekF0T1YxN01Td3lmU2tuSUNzZ0x5OGdXVmxaV1MxTmJTMUVaRnh1SUNBZ0lDQWdJQ0FuS0Q4Nkp5QXJJQzh2SUhScGJXVWdhWE1nYjNCMGFXOXVZV3hjYmlBZ0lDQWdJQ0FnSnlnL09uUjhWSHhiSUZ4Y1hGeDBYU3NwSnlBcklDOHZJSFFnZkNCVUlId2dkMmhwZEdWemNHRmpaVnh1SUNBZ0lDQWdJQ0FuS0Zzd0xUbGRlekVzTW4wcE9paGJNQzA1WFhzeExESjlLVG9vV3pBdE9WMTdNU3d5ZlNoY1hGeGNMbHN3TFRsZEt5ay9LU2NnS3lBdkx5QklhRHBOYlRwVGN5Z3VjM01wUDF4dUlDQWdJQ0FnSUNBbktEODZXeUJjWEZ4Y2RGMHFLRnA4V3kwclhWc3dNVEpkUDFzd0xUbGRLRDg2T2xzd0xUbGRleko5S1Q4cEtUOG5JQ3NnTHk4Z1dpQjhJQ3MxSUh3Z0xUQXpPak13WEc0Z0lDQWdJQ0FnSUNjcFB5UW5LU3hjYmlBZ0lDQnlaWE52YkhabEtITjBjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFDQTlJSE4wY2k1dFlYUmphQ2gwYVcxbGMzUmhiWEF1ZEdWemRDazdYRzRnSUNBZ0lDQWdJR2xtSUNnaGJXRjBZMmdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0p5RWhkR2x0WlhOMFlXMXdJR1Y0Y0dWamRITWdZU0JrWVhSbExDQnpkR0Z5ZEdsdVp5QjNhWFJvSUhsNWVYa3RiVzB0WkdRbktUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1d5d2dlV1ZoY2l3Z2JXOXVkR2dzSUdSaGVTd2dhRzkxY2l3Z2JXbHVkWFJsTENCelpXTnZibVJkSUQwZ2JXRjBZMmd1YldGd0tFNTFiV0psY2lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxcGJHeHBjMlZqSUQwZ2JXRjBZMmhiTjEwZ1B5Qk9kVzFpWlhJb0tHMWhkR05vV3pkZElDc2dKekF3SnlrdWMzVmljM1J5S0RFc0lETXBLU0E2SURBN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JrWVhSbElEMGdSR0YwWlM1VlZFTW9lV1ZoY2l3Z2JXOXVkR2dnTFNBeExDQmtZWGtzSUdodmRYSWdmSHdnTUN3Z2JXbHVkWFJsSUh4OElEQXNJSE5sWTI5dVpDQjhmQ0F3TENCdGFXeHNhWE5sWXlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhSNklEMGdiV0YwWTJoYk9GMDdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVpQW1KaUIwZWlBaFBUMGdKMW9uS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ1pDQTlJSEJoY25ObFUyVjRZV2RsYzJsdFlXd29kSG9zSUdaaGJITmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrS1NBOElETXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1FnS2owZ05qQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1lYUmxJQzA5SURZd01EQXdJQ29nWkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRVJoZEdVb1pHRjBaU2s3WEc0Z0lDQWdmU3hjYmlBZ0lDQnpkSEpwYm1kcFpuazZJQ2g3SUhaaGJIVmxJSDBwSUQwK0lIWmhiSFZsTG5SdlNWTlBVM1J5YVc1bktDa3VjbVZ3YkdGalpTZ3ZLQ2hVTURBNk1EQXBQem93TUNrL1hGd3VNREF3V2lRdkxDQW5KeWxjYm4wN1hHNWNibVY0Y0c5eWRDQjdJR1pzYjJGMFZHbHRaU3dnYVc1MFZHbHRaU3dnZEdsdFpYTjBZVzF3SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYldGd0lIMGdabkp2YlNBbkxpNHZZMjl0Ylc5dUwyMWhjQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnVkV3hzVkdGbklIMGdabkp2YlNBbkxpNHZZMjl0Ylc5dUwyNTFiR3d1YW5Nbk8xeHVhVzF3YjNKMElIc2djMlZ4SUgwZ1puSnZiU0FuTGk0dlkyOXRiVzl1TDNObGNTNXFjeWM3WEc1cGJYQnZjblFnZXlCemRISnBibWNnZlNCbWNtOXRJQ2N1TGk5amIyMXRiMjR2YzNSeWFXNW5MbXB6Snp0Y2JtbHRjRzl5ZENCN0lHSnBibUZ5ZVNCOUlHWnliMjBnSnk0dlltbHVZWEo1TG1wekp6dGNibWx0Y0c5eWRDQjdJSFJ5ZFdWVVlXY3NJR1poYkhObFZHRm5JSDBnWm5KdmJTQW5MaTlpYjI5c0xtcHpKenRjYm1sdGNHOXlkQ0I3SUdac2IyRjBUbUZPTENCbWJHOWhkRVY0Y0N3Z1pteHZZWFFnZlNCbWNtOXRJQ2N1TDJac2IyRjBMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHVkRUpwYml3Z2FXNTBUMk4wTENCcGJuUXNJR2x1ZEVobGVDQjlJR1p5YjIwZ0p5NHZhVzUwTG1wekp6dGNibWx0Y0c5eWRDQjdJRzFsY21kbElIMGdabkp2YlNBbkxpOXRaWEpuWlM1cWN5YzdYRzVwYlhCdmNuUWdleUJ2YldGd0lIMGdabkp2YlNBbkxpOXZiV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJSEJoYVhKeklIMGdabkp2YlNBbkxpOXdZV2x5Y3k1cWN5YzdYRzVwYlhCdmNuUWdleUJ6WlhRZ2ZTQm1jbTl0SUNjdUwzTmxkQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnBiblJVYVcxbExDQm1iRzloZEZScGJXVXNJSFJwYldWemRHRnRjQ0I5SUdaeWIyMGdKeTR2ZEdsdFpYTjBZVzF3TG1wekp6dGNibHh1WTI5dWMzUWdjMk5vWlcxaElEMGdXMXh1SUNBZ0lHMWhjQ3hjYmlBZ0lDQnpaWEVzWEc0Z0lDQWdjM1J5YVc1bkxGeHVJQ0FnSUc1MWJHeFVZV2NzWEc0Z0lDQWdkSEoxWlZSaFp5eGNiaUFnSUNCbVlXeHpaVlJoWnl4Y2JpQWdJQ0JwYm5SQ2FXNHNYRzRnSUNBZ2FXNTBUMk4wTEZ4dUlDQWdJR2x1ZEN4Y2JpQWdJQ0JwYm5SSVpYZ3NYRzRnSUNBZ1pteHZZWFJPWVU0c1hHNGdJQ0FnWm14dllYUkZlSEFzWEc0Z0lDQWdabXh2WVhRc1hHNGdJQ0FnWW1sdVlYSjVMRnh1SUNBZ0lHMWxjbWRsTEZ4dUlDQWdJRzl0WVhBc1hHNGdJQ0FnY0dGcGNuTXNYRzRnSUNBZ2MyVjBMRnh1SUNBZ0lHbHVkRlJwYldVc1hHNGdJQ0FnWm14dllYUlVhVzFsTEZ4dUlDQWdJSFJwYldWemRHRnRjRnh1WFR0Y2JseHVaWGh3YjNKMElIc2djMk5vWlcxaElIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2JXRndJSDBnWm5KdmJTQW5MaTlqYjIxdGIyNHZiV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJRzUxYkd4VVlXY2dmU0JtY205dElDY3VMMk52YlcxdmJpOXVkV3hzTG1wekp6dGNibWx0Y0c5eWRDQjdJSE5sY1NCOUlHWnliMjBnSnk0dlkyOXRiVzl1TDNObGNTNXFjeWM3WEc1cGJYQnZjblFnZXlCemRISnBibWNnZlNCbWNtOXRJQ2N1TDJOdmJXMXZiaTl6ZEhKcGJtY3Vhbk1uTzF4dWFXMXdiM0owSUhzZ1ltOXZiRlJoWnlCOUlHWnliMjBnSnk0dlkyOXlaUzlpYjI5c0xtcHpKenRjYm1sdGNHOXlkQ0I3SUdac2IyRjBMQ0JtYkc5aGRFVjRjQ3dnWm14dllYUk9ZVTRnZlNCbWNtOXRJQ2N1TDJOdmNtVXZabXh2WVhRdWFuTW5PMXh1YVcxd2IzSjBJSHNnYVc1MExDQnBiblJJWlhnc0lHbHVkRTlqZENCOUlHWnliMjBnSnk0dlkyOXlaUzlwYm5RdWFuTW5PMXh1YVcxd2IzSjBJSHNnYzJOb1pXMWhJSDBnWm5KdmJTQW5MaTlqYjNKbEwzTmphR1Z0WVM1cWN5YzdYRzVwYlhCdmNuUWdleUJ6WTJobGJXRWdZWE1nYzJOb1pXMWhKREVnZlNCbWNtOXRJQ2N1TDJwemIyNHZjMk5vWlcxaExtcHpKenRjYm1sdGNHOXlkQ0I3SUdKcGJtRnllU0I5SUdaeWIyMGdKeTR2ZVdGdGJDMHhMakV2WW1sdVlYSjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHMWxjbWRsSUgwZ1puSnZiU0FuTGk5NVlXMXNMVEV1TVM5dFpYSm5aUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnZiV0Z3SUgwZ1puSnZiU0FuTGk5NVlXMXNMVEV1TVM5dmJXRndMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIQmhhWEp6SUgwZ1puSnZiU0FuTGk5NVlXMXNMVEV1TVM5d1lXbHljeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnpZMmhsYldFZ1lYTWdjMk5vWlcxaEpESWdmU0JtY205dElDY3VMM2xoYld3dE1TNHhMM05qYUdWdFlTNXFjeWM3WEc1cGJYQnZjblFnZXlCelpYUWdmU0JtY205dElDY3VMM2xoYld3dE1TNHhMM05sZEM1cWN5YzdYRzVwYlhCdmNuUWdleUIwYVcxbGMzUmhiWEFzSUdac2IyRjBWR2x0WlN3Z2FXNTBWR2x0WlNCOUlHWnliMjBnSnk0dmVXRnRiQzB4TGpFdmRHbHRaWE4wWVcxd0xtcHpKenRjYmx4dVkyOXVjM1FnYzJOb1pXMWhjeUE5SUc1bGR5Qk5ZWEFvVzF4dUlDQWdJRnNuWTI5eVpTY3NJSE5qYUdWdFlWMHNYRzRnSUNBZ1d5ZG1ZV2xzYzJGbVpTY3NJRnR0WVhBc0lITmxjU3dnYzNSeWFXNW5YVjBzWEc0Z0lDQWdXeWRxYzI5dUp5d2djMk5vWlcxaEpERmRMRnh1SUNBZ0lGc25lV0Z0YkRFeEp5d2djMk5vWlcxaEpESmRMRnh1SUNBZ0lGc25lV0Z0YkMweExqRW5MQ0J6WTJobGJXRWtNbDFjYmwwcE8xeHVZMjl1YzNRZ2RHRm5jMEo1VG1GdFpTQTlJSHRjYmlBZ0lDQmlhVzVoY25rc1hHNGdJQ0FnWW05dmJEb2dZbTl2YkZSaFp5eGNiaUFnSUNCbWJHOWhkQ3hjYmlBZ0lDQm1iRzloZEVWNGNDeGNiaUFnSUNCbWJHOWhkRTVoVGl4Y2JpQWdJQ0JtYkc5aGRGUnBiV1VzWEc0Z0lDQWdhVzUwTEZ4dUlDQWdJR2x1ZEVobGVDeGNiaUFnSUNCcGJuUlBZM1FzWEc0Z0lDQWdhVzUwVkdsdFpTeGNiaUFnSUNCdFlYQXNYRzRnSUNBZ2JXVnlaMlVzWEc0Z0lDQWdiblZzYkRvZ2JuVnNiRlJoWnl4Y2JpQWdJQ0J2YldGd0xGeHVJQ0FnSUhCaGFYSnpMRnh1SUNBZ0lITmxjU3hjYmlBZ0lDQnpaWFFzWEc0Z0lDQWdkR2x0WlhOMFlXMXdYRzU5TzF4dVkyOXVjM1FnWTI5eVpVdHViM2R1VkdGbmN5QTlJSHRjYmlBZ0lDQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZZbWx1WVhKNUp6b2dZbWx1WVhKNUxGeHVJQ0FnSUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwdFpYSm5aU2M2SUcxbGNtZGxMRnh1SUNBZ0lDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHZiV0Z3SnpvZ2IyMWhjQ3hjYmlBZ0lDQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZjR0ZwY25Nbk9pQndZV2x5Y3l4Y2JpQWdJQ0FuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YzJWMEp6b2djMlYwTEZ4dUlDQWdJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanAwYVcxbGMzUmhiWEFuT2lCMGFXMWxjM1JoYlhCY2JuMDdYRzVtZFc1amRHbHZiaUJuWlhSVVlXZHpLR04xYzNSdmJWUmhaM01zSUhOamFHVnRZVTVoYldVc0lHRmtaRTFsY21kbFZHRm5LU0I3WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoVkdGbmN5QTlJSE5qYUdWdFlYTXVaMlYwS0hOamFHVnRZVTVoYldVcE8xeHVJQ0FnSUdsbUlDaHpZMmhsYldGVVlXZHpJQ1ltSUNGamRYTjBiMjFVWVdkektTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhaR1JOWlhKblpWUmhaeUFtSmlBaGMyTm9aVzFoVkdGbmN5NXBibU5zZFdSbGN5aHRaWEpuWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnYzJOb1pXMWhWR0ZuY3k1amIyNWpZWFFvYldWeVoyVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBNklITmphR1Z0WVZSaFozTXVjMnhwWTJVb0tUdGNiaUFnSUNCOVhHNGdJQ0FnYkdWMElIUmhaM01nUFNCelkyaGxiV0ZVWVdkek8xeHVJQ0FnSUdsbUlDZ2hkR0ZuY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaGpkWE4wYjIxVVlXZHpLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhaM01nUFNCYlhUdGNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnJaWGx6SUQwZ1FYSnlZWGt1Wm5KdmJTaHpZMmhsYldGekxtdGxlWE1vS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdVptbHNkR1Z5S0d0bGVTQTlQaUJyWlhrZ0lUMDlJQ2Q1WVcxc01URW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb2EyVjVJRDArSUVwVFQwNHVjM1J5YVc1bmFXWjVLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xtcHZhVzRvSnl3Z0p5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUZWdWEyNXZkMjRnYzJOb1pXMWhJRndpSkh0elkyaGxiV0ZPWVcxbGZWd2lPeUIxYzJVZ2IyNWxJRzltSUNSN2EyVjVjMzBnYjNJZ1pHVm1hVzVsSUdOMWMzUnZiVlJoWjNNZ1lYSnlZWGxnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2hqZFhOMGIyMVVZV2R6S1NrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSFJoWnlCdlppQmpkWE4wYjIxVVlXZHpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHRm5jeUE5SUhSaFozTXVZMjl1WTJGMEtIUmhaeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tIUjVjR1Z2WmlCamRYTjBiMjFVWVdkeklEMDlQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnSUNBZ0lIUmhaM01nUFNCamRYTjBiMjFVWVdkektIUmhaM011YzJ4cFkyVW9LU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hoWkdSTlpYSm5aVlJoWnlsY2JpQWdJQ0FnSUNBZ2RHRm5jeUE5SUhSaFozTXVZMjl1WTJGMEtHMWxjbWRsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR0ZuY3k1eVpXUjFZMlVvS0hSaFozTXNJSFJoWnlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBZV2RQWW1vZ1BTQjBlWEJsYjJZZ2RHRm5JRDA5UFNBbmMzUnlhVzVuSnlBL0lIUmhaM05DZVU1aGJXVmJkR0ZuWFNBNklIUmhaenRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBZV2RQWW1vcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFJoWjA1aGJXVWdQU0JLVTA5T0xuTjBjbWx1WjJsbWVTaDBZV2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2EyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektIUmhaM05DZVU1aGJXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbTFoY0NoclpYa2dQVDRnU2xOUFRpNXpkSEpwYm1kcFpua29hMlY1S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWFtOXBiaWduTENBbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnVlc1cmJtOTNiaUJqZFhOMGIyMGdkR0ZuSUNSN2RHRm5UbUZ0WlgwN0lIVnpaU0J2Ym1VZ2IyWWdKSHRyWlhsemZXQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hkR0ZuY3k1cGJtTnNkV1JsY3loMFlXZFBZbW9wS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdkR0ZuY3k1d2RYTm9LSFJoWjA5aWFpazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBZV2R6TzF4dUlDQWdJSDBzSUZ0ZEtUdGNibjFjYmx4dVpYaHdiM0owSUhzZ1kyOXlaVXR1YjNkdVZHRm5jeXdnWjJWMFZHRm5jeUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJRTFCVUN3Z1UwTkJURUZTTENCVFJWRWdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCdFlYQWdmU0JtY205dElDY3VMMk52YlcxdmJpOXRZWEF1YW5Nbk8xeHVhVzF3YjNKMElIc2djMlZ4SUgwZ1puSnZiU0FuTGk5amIyMXRiMjR2YzJWeExtcHpKenRjYm1sdGNHOXlkQ0I3SUhOMGNtbHVaeUI5SUdaeWIyMGdKeTR2WTI5dGJXOXVMM04wY21sdVp5NXFjeWM3WEc1cGJYQnZjblFnZXlCblpYUlVZV2R6TENCamIzSmxTMjV2ZDI1VVlXZHpJSDBnWm5KdmJTQW5MaTkwWVdkekxtcHpKenRjYmx4dVkyOXVjM1FnYzI5eWRFMWhjRVZ1ZEhKcFpYTkNlVXRsZVNBOUlDaGhMQ0JpS1NBOVBpQmhMbXRsZVNBOElHSXVhMlY1SUQ4Z0xURWdPaUJoTG10bGVTQStJR0l1YTJWNUlEOGdNU0E2SURBN1hHNWpiR0Z6Y3lCVFkyaGxiV0VnZTF4dUlDQWdJR052Ym5OMGNuVmpkRzl5S0hzZ1kyOXRjR0YwTENCamRYTjBiMjFVWVdkekxDQnRaWEpuWlN3Z2NtVnpiMngyWlV0dWIzZHVWR0ZuY3l3Z2MyTm9aVzFoTENCemIzSjBUV0Z3Ulc1MGNtbGxjeXdnZEc5VGRISnBibWRFWldaaGRXeDBjeUI5S1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTI5dGNHRjBJRDBnUVhKeVlYa3VhWE5CY25KaGVTaGpiMjF3WVhRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUdkbGRGUmhaM01vWTI5dGNHRjBMQ0FuWTI5dGNHRjBKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dZMjl0Y0dGMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5Qm5aWFJVWVdkektHNTFiR3dzSUdOdmJYQmhkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJtRnRaU0E5SUNoMGVYQmxiMllnYzJOb1pXMWhJRDA5UFNBbmMzUnlhVzVuSnlBbUppQnpZMmhsYldFcElIeDhJQ2RqYjNKbEp6dGNiaUFnSUNBZ0lDQWdkR2hwY3k1cmJtOTNibFJoWjNNZ1BTQnlaWE52YkhabFMyNXZkMjVVWVdkeklEOGdZMjl5WlV0dWIzZHVWR0ZuY3lBNklIdDlPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuUmhaM01nUFNCblpYUlVZV2R6S0dOMWMzUnZiVlJoWjNNc0lIUm9hWE11Ym1GdFpTd2diV1Z5WjJVcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5SdlUzUnlhVzVuVDNCMGFXOXVjeUE5SUhSdlUzUnlhVzVuUkdWbVlYVnNkSE1nUHo4Z2JuVnNiRHRjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtIUm9hWE1zSUUxQlVDd2dleUIyWVd4MVpUb2diV0Z3SUgwcE8xeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvZEdocGN5d2dVME5CVEVGU0xDQjdJSFpoYkhWbE9pQnpkSEpwYm1jZ2ZTazdYRzRnSUNBZ0lDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoMGFHbHpMQ0JUUlZFc0lIc2dkbUZzZFdVNklITmxjU0I5S1R0Y2JpQWdJQ0FnSUNBZ0x5OGdWWE5sWkNCaWVTQmpjbVZoZEdWTllYQW9LVnh1SUNBZ0lDQWdJQ0IwYUdsekxuTnZjblJOWVhCRmJuUnlhV1Z6SUQxY2JpQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dWdlppQnpiM0owVFdGd1JXNTBjbWxsY3lBOVBUMGdKMloxYm1OMGFXOXVKMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnYzI5eWRFMWhjRVZ1ZEhKcFpYTmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJSE52Y25STllYQkZiblJ5YVdWeklEMDlQU0IwY25WbFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnYzI5eWRFMWhjRVZ1ZEhKcFpYTkNlVXRsZVZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRzUxYkd3N1hHNGdJQ0FnZlZ4dUlDQWdJR05zYjI1bEtDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiM0I1SUQwZ1QySnFaV04wTG1OeVpXRjBaU2hUWTJobGJXRXVjSEp2ZEc5MGVYQmxMQ0JQWW1wbFkzUXVaMlYwVDNkdVVISnZjR1Z5ZEhsRVpYTmpjbWx3ZEc5eWN5aDBhR2x6S1NrN1hHNGdJQ0FnSUNBZ0lHTnZjSGt1ZEdGbmN5QTlJSFJvYVhNdWRHRm5jeTV6YkdsalpTZ3BPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMjl3ZVR0Y2JpQWdJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQjdJRk5qYUdWdFlTQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpUbTlrWlNCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJR055WldGMFpWTjBjbWx1WjJsbWVVTnZiblJsZUhRc0lITjBjbWx1WjJsbWVTQjlJR1p5YjIwZ0p5NHZjM1J5YVc1bmFXWjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHVaR1Z1ZEVOdmJXMWxiblFzSUd4cGJtVkRiMjF0Wlc1MElIMGdabkp2YlNBbkxpOXpkSEpwYm1kcFpubERiMjF0Wlc1MExtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2MzUnlhVzVuYVdaNVJHOWpkVzFsYm5Rb1pHOWpMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2JHbHVaWE1nUFNCYlhUdGNiaUFnSUNCc1pYUWdhR0Z6UkdseVpXTjBhWFpsY3lBOUlHOXdkR2x2Ym5NdVpHbHlaV04wYVhabGN5QTlQVDBnZEhKMVpUdGNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NWthWEpsWTNScGRtVnpJQ0U5UFNCbVlXeHpaU0FtSmlCa2IyTXVaR2x5WldOMGFYWmxjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrYVhJZ1BTQmtiMk11WkdseVpXTjBhWFpsY3k1MGIxTjBjbWx1Wnloa2IyTXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pHbHlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR1JwY2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JvWVhORWFYSmxZM1JwZG1WeklEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGtiMk11WkdseVpXTjBhWFpsY3k1a2IyTlRkR0Z5ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJR2hoYzBScGNtVmpkR2wyWlhNZ1BTQjBjblZsTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYUdGelJHbHlaV04wYVhabGN5bGNiaUFnSUNBZ0lDQWdiR2x1WlhNdWNIVnphQ2duTFMwdEp5azdYRzRnSUNBZ1kyOXVjM1FnWTNSNElEMGdZM0psWVhSbFUzUnlhVzVuYVdaNVEyOXVkR1Y0ZENoa2IyTXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHTnZibk4wSUhzZ1kyOXRiV1Z1ZEZOMGNtbHVaeUI5SUQwZ1kzUjRMbTl3ZEdsdmJuTTdYRzRnSUNBZ2FXWWdLR1J2WXk1amIyMXRaVzUwUW1WbWIzSmxLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHNhVzVsY3k1c1pXNW5kR2dnSVQwOUlERXBYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTUxYm5Ob2FXWjBLQ2NuS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNNZ1BTQmpiMjF0Wlc1MFUzUnlhVzVuS0dSdll5NWpiMjF0Wlc1MFFtVm1iM0psS1R0Y2JpQWdJQ0FnSUNBZ2JHbHVaWE11ZFc1emFHbG1kQ2hwYm1SbGJuUkRiMjF0Wlc1MEtHTnpMQ0FuSnlrcE8xeHVJQ0FnSUgxY2JpQWdJQ0JzWlhRZ1kyaHZiWEJMWldWd0lEMGdabUZzYzJVN1hHNGdJQ0FnYkdWMElHTnZiblJsYm5SRGIyMXRaVzUwSUQwZ2JuVnNiRHRjYmlBZ0lDQnBaaUFvWkc5akxtTnZiblJsYm5SektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGMwNXZaR1VvWkc5akxtTnZiblJsYm5SektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1J2WXk1amIyNTBaVzUwY3k1emNHRmpaVUpsWm05eVpTQW1KaUJvWVhORWFYSmxZM1JwZG1WektWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29KeWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dSdll5NWpiMjUwWlc1MGN5NWpiMjF0Wlc1MFFtVm1iM0psS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNNZ1BTQmpiMjF0Wlc1MFUzUnlhVzVuS0dSdll5NWpiMjUwWlc1MGN5NWpiMjF0Wlc1MFFtVm1iM0psS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tHbHVaR1Z1ZEVOdmJXMWxiblFvWTNNc0lDY25LU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QjBiM0F0YkdWMlpXd2dZbXh2WTJzZ2MyTmhiR0Z5Y3lCdVpXVmtJSFJ2SUdKbElHbHVaR1Z1ZEdWa0lHbG1JR1p2Ykd4dmQyVmtJR0o1SUdFZ1kyOXRiV1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZM1I0TG1admNtTmxRbXh2WTJ0SmJtUmxiblFnUFNBaElXUnZZeTVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR1Z1ZEVOdmJXMWxiblFnUFNCa2IyTXVZMjl1ZEdWdWRITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZia05vYjIxd1MyVmxjQ0E5SUdOdmJuUmxiblJEYjIxdFpXNTBJRDhnZFc1a1pXWnBibVZrSURvZ0tDa2dQVDRnS0dOb2IyMXdTMlZsY0NBOUlIUnlkV1VwTzF4dUlDQWdJQ0FnSUNCc1pYUWdZbTlrZVNBOUlITjBjbWx1WjJsbWVTaGtiMk11WTI5dWRHVnVkSE1zSUdOMGVDd2dLQ2tnUFQ0Z0tHTnZiblJsYm5SRGIyMXRaVzUwSUQwZ2JuVnNiQ2tzSUc5dVEyaHZiWEJMWldWd0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0dOdmJuUmxiblJEYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1ltOWtlU0FyUFNCc2FXNWxRMjl0YldWdWRDaGliMlI1TENBbkp5d2dZMjl0YldWdWRGTjBjbWx1WnloamIyNTBaVzUwUTI5dGJXVnVkQ2twTzF4dUlDQWdJQ0FnSUNCcFppQW9LR0p2WkhsYk1GMGdQVDA5SUNkOEp5QjhmQ0JpYjJSNVd6QmRJRDA5UFNBblBpY3BJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQnNhVzVsYzF0c2FXNWxjeTVzWlc1bmRHZ2dMU0F4WFNBOVBUMGdKeTB0TFNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGUnZjQzFzWlhabGJDQmliRzlqYXlCelkyRnNZWEp6SUhkcGRHZ2dZU0J3Y21WalpXUnBibWNnWkc5aklHMWhjbXRsY2lCdmRXZG9kQ0IwYnlCMWMyVWdkR2hsWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJ6WVcxbElHeHBibVVnWm05eUlIUm9aV2x5SUdobFlXUmxjaTVjYmlBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6VzJ4cGJtVnpMbXhsYm1kMGFDQXRJREZkSUQwZ1lDMHRMU0FrZTJKdlpIbDlZRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tHSnZaSGtwTzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDaHpkSEpwYm1kcFpua29aRzlqTG1OdmJuUmxiblJ6TENCamRIZ3BLVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR1J2WXk1a2FYSmxZM1JwZG1WelB5NWtiMk5GYm1RcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dSdll5NWpiMjF0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqY3lBOUlHTnZiVzFsYm5SVGRISnBibWNvWkc5akxtTnZiVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnpMbWx1WTJ4MVpHVnpLQ2RjWEc0bktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvSnk0dUxpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvYVc1a1pXNTBRMjl0YldWdWRDaGpjeXdnSnljcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29ZQzR1TGlBa2UyTnpmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDZ25MaTR1SnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJR3hsZENCa1l5QTlJR1J2WXk1amIyMXRaVzUwTzF4dUlDQWdJQ0FnSUNCcFppQW9aR01nSmlZZ1kyaHZiWEJMWldWd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdNZ1BTQmtZeTV5WlhCc1lXTmxLQzllWEZ4dUt5OHNJQ2NuS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1JqS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0tDRmphRzl0Y0V0bFpYQWdmSHdnWTI5dWRHVnVkRU52YlcxbGJuUXBJQ1ltSUd4cGJtVnpXMnhwYm1WekxteGxibWQwYUNBdElERmRJQ0U5UFNBbkp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LQ2NuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvYVc1a1pXNTBRMjl0YldWdWRDaGpiMjF0Wlc1MFUzUnlhVzVuS0dSaktTd2dKeWNwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdiR2x1WlhNdWFtOXBiaWduWEZ4dUp5a2dLeUFuWEZ4dUp6dGNibjFjYmx4dVpYaHdiM0owSUhzZ2MzUnlhVzVuYVdaNVJHOWpkVzFsYm5RZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCQmJHbGhjeUI5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMEZzYVdGekxtcHpKenRjYm1sdGNHOXlkQ0I3SUdselJXMXdkSGxRWVhSb0xDQmpiMnhzWldOMGFXOXVSbkp2YlZCaGRHZ2dmU0JtY205dElDY3VMaTl1YjJSbGN5OURiMnhzWldOMGFXOXVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lFNVBSRVZmVkZsUVJTd2dSRTlETENCcGMwNXZaR1VzSUdselEyOXNiR1ZqZEdsdmJpd2dhWE5UWTJGc1lYSWdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCUVlXbHlJSDBnWm5KdmJTQW5MaTR2Ym05a1pYTXZVR0ZwY2k1cWN5YzdYRzVwYlhCdmNuUWdleUIwYjBwVElIMGdabkp2YlNBbkxpNHZibTlrWlhNdmRHOUtVeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlRZMmhsYldFZ2ZTQm1jbTl0SUNjdUxpOXpZMmhsYldFdlUyTm9aVzFoTG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVVJ2WTNWdFpXNTBJSDBnWm5KdmJTQW5MaTR2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVVSdlkzVnRaVzUwTG1wekp6dGNibWx0Y0c5eWRDQjdJR0Z1WTJodmNrNWhiV1Z6TENCbWFXNWtUbVYzUVc1amFHOXlMQ0JqY21WaGRHVk9iMlJsUVc1amFHOXljeUI5SUdaeWIyMGdKeTR2WVc1amFHOXljeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QmhjSEJzZVZKbGRtbDJaWElnZlNCbWNtOXRJQ2N1TDJGd2NHeDVVbVYyYVhabGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCamNtVmhkR1ZPYjJSbElIMGdabkp2YlNBbkxpOWpjbVZoZEdWT2IyUmxMbXB6Snp0Y2JtbHRjRzl5ZENCN0lFUnBjbVZqZEdsMlpYTWdmU0JtY205dElDY3VMMlJwY21WamRHbDJaWE11YW5Nbk8xeHVYRzVqYkdGemN5QkViMk4xYldWdWRDQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9kbUZzZFdVc0lISmxjR3hoWTJWeUxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJQzhxS2lCQklHTnZiVzFsYm5RZ1ltVm1iM0psSUhSb2FYTWdSRzlqZFcxbGJuUWdLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NWpiMjF0Wlc1MFFtVm1iM0psSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnTHlvcUlFRWdZMjl0YldWdWRDQnBiVzFsWkdsaGRHVnNlU0JoWm5SbGNpQjBhR2x6SUVSdlkzVnRaVzUwSUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11WTI5dGJXVnVkQ0E5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQzhxS2lCRmNuSnZjbk1nWlc1amIzVnVkR1Z5WldRZ1pIVnlhVzVuSUhCaGNuTnBibWN1SUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11WlhKeWIzSnpJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDOHFLaUJYWVhKdWFXNW5jeUJsYm1OdmRXNTBaWEpsWkNCa2RYSnBibWNnY0dGeWMybHVaeTRnS2k5Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzWVhKdWFXNW5jeUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvZEdocGN5d2dUazlFUlY5VVdWQkZMQ0I3SUhaaGJIVmxPaUJFVDBNZ2ZTazdYRzRnSUNBZ0lDQWdJR3hsZENCZmNtVndiR0ZqWlhJZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlISmxjR3hoWTJWeUlEMDlQU0FuWm5WdVkzUnBiMjRuSUh4OElFRnljbUY1TG1selFYSnlZWGtvY21Wd2JHRmpaWElwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JmY21Wd2JHRmpaWElnUFNCeVpYQnNZV05sY2p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHZjSFJwYjI1eklEMDlQU0IxYm1SbFptbHVaV1FnSmlZZ2NtVndiR0ZqWlhJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk1nUFNCeVpYQnNZV05sY2p0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsY0d4aFkyVnlJRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5d2RDQTlJRTlpYW1WamRDNWhjM05wWjI0b2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1MFFYTkNhV2RKYm5RNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdhMlZsY0ZOdmRYSmpaVlJ2YTJWdWN6b2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJkTVpYWmxiRG9nSjNkaGNtNG5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NISmxkSFI1UlhKeWIzSnpPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeWFXTjBPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeWFXNW5TMlY1Y3pvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjFibWx4ZFdWTFpYbHpPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1WeWMybHZiam9nSnpFdU1pZGNiaUFnSUNBZ0lDQWdmU3dnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViM0IwYVc5dWN5QTlJRzl3ZER0Y2JpQWdJQ0FnSUNBZ2JHVjBJSHNnZG1WeWMybHZiaUI5SUQwZ2IzQjBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3o4dVgyUnBjbVZqZEdsMlpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WkdseVpXTjBhWFpsY3lBOUlHOXdkR2x2Ym5NdVgyUnBjbVZqZEdsMlpYTXVZWFJFYjJOMWJXVnVkQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVaR2x5WldOMGFYWmxjeTU1WVcxc0xtVjRjR3hwWTJsMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmxjbk5wYjI0Z1BTQjBhR2x6TG1ScGNtVmpkR2wyWlhNdWVXRnRiQzUyWlhKemFXOXVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaR2x5WldOMGFYWmxjeUE5SUc1bGR5QkVhWEpsWTNScGRtVnpLSHNnZG1WeWMybHZiaUI5S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVFkyaGxiV0VvZG1WeWMybHZiaXdnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ1YyVWdZMkZ1SjNRZ2NtVmhiR3g1SUd0dWIzY2dkR2hoZENCMGFHbHpJRzFoZEdOb1pYTWdRMjl1ZEdWdWRITXVYRzRnSUNBZ0lDQWdJSFJvYVhNdVkyOXVkR1Z1ZEhNZ1BWeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdQVDA5SUhWdVpHVm1hVzVsWkNBL0lHNTFiR3dnT2lCMGFHbHpMbU55WldGMFpVNXZaR1VvZG1Gc2RXVXNJRjl5WlhCc1lXTmxjaXdnYjNCMGFXOXVjeWs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpTQmhJR1JsWlhBZ1kyOXdlU0J2WmlCMGFHbHpJRVJ2WTNWdFpXNTBJR0Z1WkNCcGRITWdZMjl1ZEdWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkRkWE4wYjIwZ1RtOWtaU0IyWVd4MVpYTWdkR2hoZENCcGJtaGxjbWwwSUdaeWIyMGdZRTlpYW1WamRHQWdjM1JwYkd3Z2NtVm1aWElnZEc4Z2RHaGxhWElnYjNKcFoybHVZV3dnYVc1emRHRnVZMlZ6TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR05zYjI1bEtDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiM0I1SUQwZ1QySnFaV04wTG1OeVpXRjBaU2hFYjJOMWJXVnVkQzV3Y205MGIzUjVjR1VzSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRnRPVDBSRlgxUlpVRVZkT2lCN0lIWmhiSFZsT2lCRVQwTWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ1kyOXdlUzVqYjIxdFpXNTBRbVZtYjNKbElEMGdkR2hwY3k1amIyMXRaVzUwUW1WbWIzSmxPMXh1SUNBZ0lDQWdJQ0JqYjNCNUxtTnZiVzFsYm5RZ1BTQjBhR2x6TG1OdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUdOdmNIa3VaWEp5YjNKeklEMGdkR2hwY3k1bGNuSnZjbk11YzJ4cFkyVW9LVHRjYmlBZ0lDQWdJQ0FnWTI5d2VTNTNZWEp1YVc1bmN5QTlJSFJvYVhNdWQyRnlibWx1WjNNdWMyeHBZMlVvS1R0Y2JpQWdJQ0FnSUNBZ1kyOXdlUzV2Y0hScGIyNXpJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnZEdocGN5NXZjSFJwYjI1ektUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVaR2x5WldOMGFYWmxjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZjSGt1WkdseVpXTjBhWFpsY3lBOUlIUm9hWE11WkdseVpXTjBhWFpsY3k1amJHOXVaU2dwTzF4dUlDQWdJQ0FnSUNCamIzQjVMbk5qYUdWdFlTQTlJSFJvYVhNdWMyTm9aVzFoTG1Oc2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ1YyVWdZMkZ1SjNRZ2NtVmhiR3g1SUd0dWIzY2dkR2hoZENCMGFHbHpJRzFoZEdOb1pYTWdRMjl1ZEdWdWRITXVYRzRnSUNBZ0lDQWdJR052Y0hrdVkyOXVkR1Z1ZEhNZ1BTQnBjMDV2WkdVb2RHaHBjeTVqYjI1MFpXNTBjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdkR2hwY3k1amIyNTBaVzUwY3k1amJHOXVaU2hqYjNCNUxuTmphR1Z0WVNsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NWpiMjUwWlc1MGN6dGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVjbUZ1WjJVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjNCNUxuSmhibWRsSUQwZ2RHaHBjeTV5WVc1blpTNXpiR2xqWlNncE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXdlVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FJRUZrWkhNZ1lTQjJZV3gxWlNCMGJ5QjBhR1VnWkc5amRXMWxiblF1SUNvdlhHNGdJQ0FnWVdSa0tIWmhiSFZsS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoYzNObGNuUkRiMnhzWldOMGFXOXVLSFJvYVhNdVkyOXVkR1Z1ZEhNcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWpiMjUwWlc1MGN5NWhaR1FvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNiaUFnSUNBdktpb2dRV1JrY3lCaElIWmhiSFZsSUhSdklIUm9aU0JrYjJOMWJXVnVkQzRnS2k5Y2JpQWdJQ0JoWkdSSmJpaHdZWFJvTENCMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZWE56WlhKMFEyOXNiR1ZqZEdsdmJpaDBhR2x6TG1OdmJuUmxiblJ6S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVkyOXVkR1Z1ZEhNdVlXUmtTVzRvY0dGMGFDd2dkbUZzZFdVcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1VnWVNCdVpYY2dZRUZzYVdGellDQnViMlJsTENCbGJuTjFjbWx1WnlCMGFHRjBJSFJvWlNCMFlYSm5aWFFnWUc1dlpHVmdJR2hoY3lCMGFHVWdjbVZ4ZFdseVpXUWdZVzVqYUc5eUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1NXWWdZRzV2WkdWZ0lHRnNjbVZoWkhrZ2FHRnpJR0Z1SUdGdVkyaHZjaXdnWUc1aGJXVmdJR2x6SUdsbmJtOXlaV1F1WEc0Z0lDQWdJQ29nVDNSb1pYSjNhWE5sTENCMGFHVWdZRzV2WkdVdVlXNWphRzl5WUNCMllXeDFaU0IzYVd4c0lHSmxJSE5sZENCMGJ5QmdibUZ0WldBc1hHNGdJQ0FnSUNvZ2IzSWdhV1lnWVc0Z1lXNWphRzl5SUhkcGRHZ2dkR2hoZENCdVlXMWxJR2x6SUdGc2NtVmhaSGtnY0hKbGMyVnVkQ0JwYmlCMGFHVWdaRzlqZFcxbGJuUXNYRzRnSUNBZ0lDb2dZRzVoYldWZ0lIZHBiR3dnWW1VZ2RYTmxaQ0JoY3lCaElIQnlaV1pwZUNCbWIzSWdZU0J1WlhjZ2RXNXBjWFZsSUdGdVkyaHZjaTVjYmlBZ0lDQWdLaUJKWmlCZ2JtRnRaV0FnYVhNZ2RXNWtaV1pwYm1Wa0xDQjBhR1VnWjJWdVpYSmhkR1ZrSUdGdVkyaHZjaUIzYVd4c0lIVnpaU0FuWVNjZ1lYTWdZU0J3Y21WbWFYZ3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1kzSmxZWFJsUVd4cFlYTW9ibTlrWlN3Z2JtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JVzV2WkdVdVlXNWphRzl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndjbVYySUQwZ1lXNWphRzl5VG1GdFpYTW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtRnVZMmh2Y2lBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXdjbVZtWlhJdGJuVnNiR2x6YUMxamIyRnNaWE5qYVc1blhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lXNWhiV1VnZkh3Z2NISmxkaTVvWVhNb2JtRnRaU2tnUHlCbWFXNWtUbVYzUVc1amFHOXlLRzVoYldVZ2ZId2dKMkVuTENCd2NtVjJLU0E2SUc1aGJXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQmJHbGhjeWh1YjJSbExtRnVZMmh2Y2lrN1hHNGdJQ0FnZlZ4dUlDQWdJR055WldGMFpVNXZaR1VvZG1Gc2RXVXNJSEpsY0d4aFkyVnlMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUd4bGRDQmZjbVZ3YkdGalpYSWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NtVndiR0ZqWlhJZ1BUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdjbVZ3YkdGalpYSXVZMkZzYkNoN0lDY25PaUIyWVd4MVpTQjlMQ0FuSnl3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdYM0psY0d4aFkyVnlJRDBnY21Wd2JHRmpaWEk3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2h5WlhCc1lXTmxjaWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHdGxlVlJ2VTNSeUlEMGdLSFlwSUQwK0lIUjVjR1Z2WmlCMklEMDlQU0FuYm5WdFltVnlKeUI4ZkNCMklHbHVjM1JoYm1ObGIyWWdVM1J5YVc1bklIeDhJSFlnYVc1emRHRnVZMlZ2WmlCT2RXMWlaWEk3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaGMxTjBjaUE5SUhKbGNHeGhZMlZ5TG1acGJIUmxjaWhyWlhsVWIxTjBjaWt1YldGd0tGTjBjbWx1WnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lYTlRkSEl1YkdWdVozUm9JRDRnTUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYQnNZV05sY2lBOUlISmxjR3hoWTJWeUxtTnZibU5oZENoaGMxTjBjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZjbVZ3YkdGalpYSWdQU0J5WlhCc1lXTmxjanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNodmNIUnBiMjV6SUQwOVBTQjFibVJsWm1sdVpXUWdKaVlnY21Wd2JHRmpaWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzl3ZEdsdmJuTWdQU0J5WlhCc1lXTmxjanRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjR3hoWTJWeUlEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnWVd4cFlYTkVkWEJzYVdOaGRHVlBZbXBsWTNSekxDQmhibU5vYjNKUWNtVm1hWGdzSUdac2IzY3NJR3RsWlhCVmJtUmxabWx1WldRc0lHOXVWR0ZuVDJKcUxDQjBZV2NnZlNBOUlHOXdkR2x2Ym5NZ1B6OGdlMzA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnYjI1QmJtTm9iM0lzSUhObGRFRnVZMmh2Y25Nc0lITnZkWEpqWlU5aWFtVmpkSE1nZlNBOUlHTnlaV0YwWlU1dlpHVkJibU5vYjNKektIUm9hWE1zSUZ4dUlDQWdJQ0FnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwzQnlaV1psY2kxdWRXeHNhWE5vTFdOdllXeGxjMk5wYm1kY2JpQWdJQ0FnSUNBZ1lXNWphRzl5VUhKbFptbDRJSHg4SUNkaEp5azdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTjBlQ0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZzYVdGelJIVndiR2xqWVhSbFQySnFaV04wY3pvZ1lXeHBZWE5FZFhCc2FXTmhkR1ZQWW1wbFkzUnpJRDgvSUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCclpXVndWVzVrWldacGJtVmtPaUJyWldWd1ZXNWtaV1pwYm1Wa0lEOC9JR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1QmJtTm9iM0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZibFJoWjA5aWFpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGNHeGhZMlZ5T2lCZmNtVndiR0ZqWlhJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WTJobGJXRTZJSFJvYVhNdWMyTm9aVzFoTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMjkxY21ObFQySnFaV04wYzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnWTNKbFlYUmxUbTlrWlNoMllXeDFaU3dnZEdGbkxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNCcFppQW9abXh2ZHlBbUppQnBjME52Ykd4bFkzUnBiMjRvYm05a1pTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxMbVpzYjNjZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCelpYUkJibU5vYjNKektDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnViMlJsTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYjI1MlpYSjBJR0VnYTJWNUlHRnVaQ0JoSUhaaGJIVmxJR2x1ZEc4Z1lTQmdVR0ZwY21BZ2RYTnBibWNnZEdobElHTjFjbkpsYm5RZ2MyTm9aVzFoTEZ4dUlDQWdJQ0FxSUhKbFkzVnljMmwyWld4NUlIZHlZWEJ3YVc1bklHRnNiQ0IyWVd4MVpYTWdZWE1nWUZOallXeGhjbUFnYjNJZ1lFTnZiR3hsWTNScGIyNWdJRzV2WkdWekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdOeVpXRjBaVkJoYVhJb2EyVjVMQ0IyWVd4MVpTd2diM0IwYVc5dWN5QTlJSHQ5S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdzZ1BTQjBhR2x6TG1OeVpXRjBaVTV2WkdVb2EyVjVMQ0J1ZFd4c0xDQnZjSFJwYjI1ektUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RpQTlJSFJvYVhNdVkzSmxZWFJsVG05a1pTaDJZV3gxWlN3Z2JuVnNiQ3dnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VHRnBjaWhyTENCMktUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnRiM1psY3lCaElIWmhiSFZsSUdaeWIyMGdkR2hsSUdSdlkzVnRaVzUwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCMGFHVWdhWFJsYlNCM1lYTWdabTkxYm1RZ1lXNWtJSEpsYlc5MlpXUXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1pHVnNaWFJsS0d0bGVTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWE56WlhKMFEyOXNiR1ZqZEdsdmJpaDBhR2x6TG1OdmJuUmxiblJ6S1NBL0lIUm9hWE11WTI5dWRHVnVkSE11WkdWc1pYUmxLR3RsZVNrZ09pQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJoSUhaaGJIVmxJR1p5YjIwZ2RHaGxJR1J2WTNWdFpXNTBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJR0IwY25WbFlDQnBaaUIwYUdVZ2FYUmxiU0IzWVhNZ1ptOTFibVFnWVc1a0lISmxiVzkyWldRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWkdWc1pYUmxTVzRvY0dGMGFDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkZiWEIwZVZCaGRHZ29jR0YwYUNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1OdmJuUmxiblJ6SUQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FIUnpMV1Y0Y0dWamRDMWxjbkp2Y2lCUWNtVnpkVzFsWkNCcGJYQnZjM05wWW14bElHbG1JRk4wY21samRDQmxlSFJsYm1SeklHWmhiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJuUmxiblJ6SUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoYzNObGNuUkRiMnhzWldOMGFXOXVLSFJvYVhNdVkyOXVkR1Z1ZEhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhSb2FYTXVZMjl1ZEdWdWRITXVaR1ZzWlhSbFNXNG9jR0YwYUNsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGSmxkSFZ5Ym5NZ2FYUmxiU0JoZENCZ2EyVjVZQ3dnYjNJZ1lIVnVaR1ZtYVc1bFpHQWdhV1lnYm05MElHWnZkVzVrTGlCQ2VTQmtaV1poZFd4MElIVnVkM0poY0hOY2JpQWdJQ0FnS2lCelkyRnNZWElnZG1Gc2RXVnpJR1p5YjIwZ2RHaGxhWElnYzNWeWNtOTFibVJwYm1jZ2JtOWtaVHNnZEc4Z1pHbHpZV0pzWlNCelpYUWdZR3RsWlhCVFkyRnNZWEpnSUhSdlhHNGdJQ0FnSUNvZ1lIUnlkV1ZnSUNoamIyeHNaV04wYVc5dWN5QmhjbVVnWVd4M1lYbHpJSEpsZEhWeWJtVmtJR2x1ZEdGamRDa3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1oyVjBLR3RsZVN3Z2EyVmxjRk5qWVd4aGNpa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5EYjJ4c1pXTjBhVzl1S0hSb2FYTXVZMjl1ZEdWdWRITXBYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIUm9hWE11WTI5dWRHVnVkSE11WjJWMEtHdGxlU3dnYTJWbGNGTmpZV3hoY2lsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJTWlhSMWNtNXpJR2wwWlcwZ1lYUWdZSEJoZEdoZ0xDQnZjaUJnZFc1a1pXWnBibVZrWUNCcFppQnViM1FnWm05MWJtUXVJRUo1SUdSbFptRjFiSFFnZFc1M2NtRndjMXh1SUNBZ0lDQXFJSE5qWVd4aGNpQjJZV3gxWlhNZ1puSnZiU0IwYUdWcGNpQnpkWEp5YjNWdVpHbHVaeUJ1YjJSbE95QjBieUJrYVhOaFlteGxJSE5sZENCZ2EyVmxjRk5qWVd4aGNtQWdkRzljYmlBZ0lDQWdLaUJnZEhKMVpXQWdLR052Ykd4bFkzUnBiMjV6SUdGeVpTQmhiSGRoZVhNZ2NtVjBkWEp1WldRZ2FXNTBZV04wS1M1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JuWlhSSmJpaHdZWFJvTENCclpXVndVMk5oYkdGeUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGMwVnRjSFI1VUdGMGFDaHdZWFJvS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQWhhMlZsY0ZOallXeGhjaUFtSmlCcGMxTmpZV3hoY2loMGFHbHpMbU52Ym5SbGJuUnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnZEdocGN5NWpiMjUwWlc1MGN5NTJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTVqYjI1MFpXNTBjenRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2x6UTI5c2JHVmpkR2x2YmloMGFHbHpMbU52Ym5SbGJuUnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QjBhR2x6TG1OdmJuUmxiblJ6TG1kbGRFbHVLSEJoZEdnc0lHdGxaWEJUWTJGc1lYSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlIUm9aU0JrYjJOMWJXVnVkQ0JwYm1Oc2RXUmxjeUJoSUhaaGJIVmxJSGRwZEdnZ2RHaGxJR3RsZVNCZ2EyVjVZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm9ZWE1vYTJWNUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBjME52Ykd4bFkzUnBiMjRvZEdocGN5NWpiMjUwWlc1MGN5a2dQeUIwYUdsekxtTnZiblJsYm5SekxtaGhjeWhyWlhrcElEb2dabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCMGFHVWdaRzlqZFcxbGJuUWdhVzVqYkhWa1pYTWdZU0IyWVd4MVpTQmhkQ0JnY0dGMGFHQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2FHRnpTVzRvY0dGMGFDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkZiWEIwZVZCaGRHZ29jR0YwYUNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyNTBaVzUwY3lBaFBUMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5EYjJ4c1pXTjBhVzl1S0hSb2FYTXVZMjl1ZEdWdWRITXBJRDhnZEdocGN5NWpiMjUwWlc1MGN5NW9ZWE5KYmlod1lYUm9LU0E2SUdaaGJITmxPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlRaWFJ6SUdFZ2RtRnNkV1VnYVc0Z2RHaHBjeUJrYjJOMWJXVnVkQzRnUm05eUlHQWhJWE5sZEdBc0lHQjJZV3gxWldBZ2JtVmxaSE1nZEc4Z1ltVWdZVnh1SUNBZ0lDQXFJR0p2YjJ4bFlXNGdkRzhnWVdSa0wzSmxiVzkyWlNCMGFHVWdhWFJsYlNCbWNtOXRJSFJvWlNCelpYUXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2MyVjBLR3RsZVN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVkyOXVkR1Z1ZEhNZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FIUnpMV1Y0Y0dWamRDMWxjbkp2Y2lCWFpTQmpZVzRuZENCeVpXRnNiSGtnYTI1dmR5QjBhR0YwSUhSb2FYTWdiV0YwWTJobGN5QkRiMjUwWlc1MGN5NWNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVZMjl1ZEdWdWRITWdQU0JqYjJ4c1pXTjBhVzl1Um5KdmJWQmhkR2dvZEdocGN5NXpZMmhsYldFc0lGdHJaWGxkTENCMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1lYTnpaWEowUTI5c2JHVmpkR2x2YmloMGFHbHpMbU52Ym5SbGJuUnpLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1amIyNTBaVzUwY3k1elpYUW9hMlY1TENCMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVTJWMGN5QmhJSFpoYkhWbElHbHVJSFJvYVhNZ1pHOWpkVzFsYm5RdUlFWnZjaUJnSVNGelpYUmdMQ0JnZG1Gc2RXVmdJRzVsWldSeklIUnZJR0psSUdGY2JpQWdJQ0FnS2lCaWIyOXNaV0Z1SUhSdklHRmtaQzl5WlcxdmRtVWdkR2hsSUdsMFpXMGdabkp2YlNCMGFHVWdjMlYwTGx4dUlDQWdJQ0FxTDF4dUlDQWdJSE5sZEVsdUtIQmhkR2dzSUhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMFZ0Y0hSNVVHRjBhQ2h3WVhSb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdRSFJ6TFdWNGNHVmpkQzFsY25KdmNpQlhaU0JqWVc0bmRDQnlaV0ZzYkhrZ2EyNXZkeUIwYUdGMElIUm9hWE1nYldGMFkyaGxjeUJEYjI1MFpXNTBjeTVjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WTI5dWRHVnVkSE1nUFNCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoMGFHbHpMbU52Ym5SbGJuUnpJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRUIwY3kxbGVIQmxZM1F0WlhKeWIzSWdWMlVnWTJGdUozUWdjbVZoYkd4NUlHdHViM2NnZEdoaGRDQjBhR2x6SUcxaGRHTm9aWE1nUTI5dWRHVnVkSE11WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJuUmxiblJ6SUQwZ1kyOXNiR1ZqZEdsdmJrWnliMjFRWVhSb0tIUm9hWE11YzJOb1pXMWhMQ0JCY25KaGVTNW1jbTl0S0hCaGRHZ3BMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVhOelpYSjBRMjlzYkdWamRHbHZiaWgwYUdsekxtTnZiblJsYm5SektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpXNTBjeTV6WlhSSmJpaHdZWFJvTENCMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJoaGJtZGxJSFJvWlNCWlFVMU1JSFpsY25OcGIyNGdZVzVrSUhOamFHVnRZU0IxYzJWa0lHSjVJSFJvWlNCa2IyTjFiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQklHQnVkV3hzWUNCMlpYSnphVzl1SUdScGMyRmliR1Z6SUhOMWNIQnZjblFnWm05eUlHUnBjbVZqZEdsMlpYTXNJR1Y0Y0d4cFkybDBJSFJoWjNNc0lHRnVZMmh2Y25Nc0lHRnVaQ0JoYkdsaGMyVnpMbHh1SUNBZ0lDQXFJRWwwSUdGc2MyOGdjbVZ4ZFdseVpYTWdkR2hsSUdCelkyaGxiV0ZnSUc5d2RHbHZiaUIwYnlCaVpTQm5hWFpsYmlCaGN5QmhJR0JUWTJobGJXRmdJR2x1YzNSaGJtTmxJSFpoYkhWbExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1QzWmxjbkpwWkdWeklHRnNiQ0J3Y21WMmFXOTFjMng1SUhObGRDQnpZMmhsYldFZ2IzQjBhVzl1Y3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0J6WlhSVFkyaGxiV0VvZG1WeWMybHZiaXdnYjNCMGFXOXVjeUE5SUh0OUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1WeWMybHZiaUE5UFQwZ0oyNTFiV0psY2ljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWlhKemFXOXVJRDBnVTNSeWFXNW5LSFpsY25OcGIyNHBPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2IzQjBPMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFpsY25OcGIyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpFdU1TYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVaR2x5WldOMGFYWmxjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVrYVhKbFkzUnBkbVZ6TG5saGJXd3VkbVZ5YzJsdmJpQTlJQ2N4TGpFbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVrYVhKbFkzUnBkbVZ6SUQwZ2JtVjNJRVJwY21WamRHbDJaWE1vZXlCMlpYSnphVzl1T2lBbk1TNHhKeUI5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmNIUWdQU0I3SUhKbGMyOXNkbVZMYm05M2JsUmhaM002SUdaaGJITmxMQ0J6WTJobGJXRTZJQ2Q1WVcxc0xURXVNU2NnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpFdU1pYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R1WlhoMEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWthWEpsWTNScGRtVnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVJwY21WamRHbDJaWE11ZVdGdGJDNTJaWEp6YVc5dUlEMGdkbVZ5YzJsdmJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WkdseVpXTjBhWFpsY3lBOUlHNWxkeUJFYVhKbFkzUnBkbVZ6S0hzZ2RtVnljMmx2YmlCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZjSFFnUFNCN0lISmxjMjlzZG1WTGJtOTNibFJoWjNNNklIUnlkV1VzSUhOamFHVnRZVG9nSjJOdmNtVW5JSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRzUxYkd3NlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVpHbHlaV04wYVhabGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJSFJvYVhNdVpHbHlaV04wYVhabGN6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZjSFFnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4ySUQwZ1NsTlBUaTV6ZEhKcGJtZHBabmtvZG1WeWMybHZiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JGZUhCbFkzUmxaQ0FuTVM0eEp5d2dKekV1TWljZ2IzSWdiblZzYkNCaGN5Qm1hWEp6ZENCaGNtZDFiV1Z1ZEN3Z1luVjBJR1p2ZFc1a09pQWtlM04yZldBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRTV2ZENCMWMybHVaeUJnYVc1emRHRnVZMlZ2WmlCVFkyaGxiV0ZnSUhSdklHRnNiRzkzSUdadmNpQmtkV05ySUhSNWNHbHVaMXh1SUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1elkyaGxiV0VnYVc1emRHRnVZMlZ2WmlCUFltcGxZM1FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OamFHVnRZU0E5SUc5d2RHbHZibk11YzJOb1pXMWhPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2h2Y0hRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmphR1Z0WVNBOUlHNWxkeUJUWTJobGJXRW9UMkpxWldOMExtRnpjMmxuYmlodmNIUXNJRzl3ZEdsdmJuTXBLVHRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JYYVhSb0lHRWdiblZzYkNCWlFVMU1JSFpsY25OcGIyNHNJSFJvWlNCN0lITmphR1Z0WVRvZ1UyTm9aVzFoSUgwZ2IzQjBhVzl1SUdseklISmxjWFZwY21Wa1lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklHcHpiMjRnSmlCcWMyOXVRWEpuSUdGeVpTQnZibXg1SUhWelpXUWdabkp2YlNCMGIwcFRUMDRvS1Z4dUlDQWdJSFJ2U2xNb2V5QnFjMjl1TENCcWMyOXVRWEpuTENCdFlYQkJjMDFoY0N3Z2JXRjRRV3hwWVhORGIzVnVkQ3dnYjI1QmJtTm9iM0lzSUhKbGRtbDJaWElnZlNBOUlIdDlLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR04wZUNBOUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGdVkyaHZjbk02SUc1bGR5Qk5ZWEFvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1J2WXpvZ2RHaHBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHdGxaWEE2SUNGcWMyOXVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JXRndRWE5OWVhBNklHMWhjRUZ6VFdGd0lEMDlQU0IwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldGd1MyVjVWMkZ5Ym1Wa09pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoZUVGc2FXRnpRMjkxYm5RNklIUjVjR1Z2WmlCdFlYaEJiR2xoYzBOdmRXNTBJRDA5UFNBbmJuVnRZbVZ5SnlBL0lHMWhlRUZzYVdGelEyOTFiblFnT2lBeE1EQmNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ2RHOUtVeWgwYUdsekxtTnZiblJsYm5SekxDQnFjMjl1UVhKbklEOC9JQ2NuTENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUc5dVFXNWphRzl5SUQwOVBTQW5ablZ1WTNScGIyNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQjdJR052ZFc1MExDQnlaWE1nZlNCdlppQmpkSGd1WVc1amFHOXljeTUyWVd4MVpYTW9LU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtGdVkyaHZjaWh5WlhNc0lHTnZkVzUwS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUJ5WlhacGRtVnlJRDA5UFNBblpuVnVZM1JwYjI0blhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUdGd2NHeDVVbVYyYVhabGNpaHlaWFpwZG1WeUxDQjdJQ2NuT2lCeVpYTWdmU3dnSnljc0lISmxjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2djbVZ6TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCSUVwVFQwNGdjbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hsSUdSdlkzVnRaVzUwSUdCamIyNTBaVzUwYzJBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYW5OdmJrRnlaeUJWYzJWa0lHSjVJR0JLVTA5T0xuTjBjbWx1WjJsbWVXQWdkRzhnYVc1a2FXTmhkR1VnZEdobElHRnljbUY1SUdsdVpHVjRJRzl5WEc0Z0lDQWdJQ29nSUNCd2NtOXdaWEowZVNCdVlXMWxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIUnZTbE5QVGlocWMyOXVRWEpuTENCdmJrRnVZMmh2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTUwYjBwVEtIc2dhbk52YmpvZ2RISjFaU3dnYW5OdmJrRnlaeXdnYldGd1FYTk5ZWEE2SUdaaGJITmxMQ0J2YmtGdVkyaHZjaUI5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xSUVFZ1dVRk5UQ0J5WlhCeVpYTmxiblJoZEdsdmJpQnZaaUIwYUdVZ1pHOWpkVzFsYm5RdUlDb3ZYRzRnSUNBZ2RHOVRkSEpwYm1jb2IzQjBhVzl1Y3lBOUlIdDlLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1WeWNtOXljeTVzWlc1bmRHZ2dQaUF3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEViMk4xYldWdWRDQjNhWFJvSUdWeWNtOXljeUJqWVc1dWIzUWdZbVVnYzNSeWFXNW5hV1pwWldRbktUdGNiaUFnSUNBZ0lDQWdhV1lnS0NkcGJtUmxiblFuSUdsdUlHOXdkR2x2Ym5NZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNnaFRuVnRZbVZ5TG1selNXNTBaV2RsY2lodmNIUnBiMjV6TG1sdVpHVnVkQ2tnZkh3Z1RuVnRZbVZ5S0c5d2RHbHZibk11YVc1a1pXNTBLU0E4UFNBd0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY3lBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0c5d2RHbHZibk11YVc1a1pXNTBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1hDSnBibVJsYm5SY0lpQnZjSFJwYjI0Z2JYVnpkQ0JpWlNCaElIQnZjMmwwYVhabElHbHVkR1ZuWlhJc0lHNXZkQ0FrZTNOOVlDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVVJ2WTNWdFpXNTBLSFJvYVhNc0lHOXdkR2x2Ym5NcE8xeHVJQ0FnSUgxY2JuMWNibVoxYm1OMGFXOXVJR0Z6YzJWeWRFTnZiR3hsWTNScGIyNG9ZMjl1ZEdWdWRITXBJSHRjYmlBZ0lDQnBaaUFvYVhORGIyeHNaV04wYVc5dUtHTnZiblJsYm5SektTbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEZlSEJsWTNSbFpDQmhJRmxCVFV3Z1kyOXNiR1ZqZEdsdmJpQmhjeUJrYjJOMWJXVnVkQ0JqYjI1MFpXNTBjeWNwTzF4dWZWeHVYRzVsZUhCdmNuUWdleUJFYjJOMWJXVnVkQ0I5TzF4dUlpd2dJbU5zWVhOeklGbEJUVXhGY25KdmNpQmxlSFJsYm1SeklFVnljbTl5SUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lodVlXMWxMQ0J3YjNNc0lHTnZaR1VzSUcxbGMzTmhaMlVwSUh0Y2JpQWdJQ0FnSUNBZ2MzVndaWElvS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqYjJSbElEMGdZMjlrWlR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV0WlhOellXZGxJRDBnYldWemMyRm5aVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdiM01nUFNCd2IzTTdYRzRnSUNBZ2ZWeHVmVnh1WTJ4aGMzTWdXVUZOVEZCaGNuTmxSWEp5YjNJZ1pYaDBaVzVrY3lCWlFVMU1SWEp5YjNJZ2UxeHVJQ0FnSUdOdmJuTjBjblZqZEc5eUtIQnZjeXdnWTI5a1pTd2diV1Z6YzJGblpTa2dlMXh1SUNBZ0lDQWdJQ0J6ZFhCbGNpZ25XVUZOVEZCaGNuTmxSWEp5YjNJbkxDQndiM01zSUdOdlpHVXNJRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibjFjYm1Oc1lYTnpJRmxCVFV4WFlYSnVhVzVuSUdWNGRHVnVaSE1nV1VGTlRFVnljbTl5SUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lod2IzTXNJR052WkdVc0lHMWxjM05oWjJVcElIdGNiaUFnSUNBZ0lDQWdjM1Z3WlhJb0oxbEJUVXhYWVhKdWFXNW5KeXdnY0c5ekxDQmpiMlJsTENCdFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1OVhHNWpiMjV6ZENCd2NtVjBkR2xtZVVWeWNtOXlJRDBnS0hOeVl5d2diR01wSUQwK0lDaGxjbkp2Y2lrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hsY25KdmNpNXdiM05iTUYwZ1BUMDlJQzB4S1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdaWEp5YjNJdWJHbHVaVkJ2Y3lBOUlHVnljbTl5TG5CdmN5NXRZWEFvY0c5eklEMCtJR3hqTG14cGJtVlFiM01vY0c5ektTazdYRzRnSUNBZ1kyOXVjM1FnZXlCc2FXNWxMQ0JqYjJ3Z2ZTQTlJR1Z5Y205eUxteHBibVZRYjNOYk1GMDdYRzRnSUNBZ1pYSnliM0l1YldWemMyRm5aU0FyUFNCZ0lHRjBJR3hwYm1VZ0pIdHNhVzVsZlN3Z1kyOXNkVzF1SUNSN1kyOXNmV0E3WEc0Z0lDQWdiR1YwSUdOcElEMGdZMjlzSUMwZ01UdGNiaUFnSUNCc1pYUWdiR2x1WlZOMGNpQTlJSE55WTF4dUlDQWdJQ0FnSUNBdWMzVmljM1J5YVc1bktHeGpMbXhwYm1WVGRHRnlkSE5iYkdsdVpTQXRJREZkTENCc1l5NXNhVzVsVTNSaGNuUnpXMnhwYm1WZEtWeHVJQ0FnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZXMXhjYmx4Y2NsMHJKQzhzSUNjbktUdGNiaUFnSUNBdkx5QlVjbWx0SUhSdklHMWhlQ0E0TUNCamFHRnljeXdnYTJWbGNHbHVaeUJqYjJ3Z2NHOXphWFJwYjI0Z2JtVmhjaUIwYUdVZ2JXbGtaR3hsWEc0Z0lDQWdhV1lnS0dOcElENDlJRFl3SUNZbUlHeHBibVZUZEhJdWJHVnVaM1JvSUQ0Z09EQXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkSEpwYlZOMFlYSjBJRDBnVFdGMGFDNXRhVzRvWTJrZ0xTQXpPU3dnYkdsdVpWTjBjaTVzWlc1bmRHZ2dMU0EzT1NrN1hHNGdJQ0FnSUNBZ0lHeHBibVZUZEhJZ1BTQW5YSFV5TURJMkp5QXJJR3hwYm1WVGRISXVjM1ZpYzNSeWFXNW5LSFJ5YVcxVGRHRnlkQ2s3WEc0Z0lDQWdJQ0FnSUdOcElDMDlJSFJ5YVcxVGRHRnlkQ0F0SURFN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoc2FXNWxVM1J5TG14bGJtZDBhQ0ErSURnd0tWeHVJQ0FnSUNBZ0lDQnNhVzVsVTNSeUlEMGdiR2x1WlZOMGNpNXpkV0p6ZEhKcGJtY29NQ3dnTnprcElDc2dKMXgxTWpBeU5pYzdYRzRnSUNBZ0x5OGdTVzVqYkhWa1pTQndjbVYyYVc5MWN5QnNhVzVsSUdsdUlHTnZiblJsZUhRZ2FXWWdjRzlwYm5ScGJtY2dZWFFnYkdsdVpTQnpkR0Z5ZEZ4dUlDQWdJR2xtSUNoc2FXNWxJRDRnTVNBbUppQXZYaUFxSkM4dWRHVnpkQ2hzYVc1bFUzUnlMbk4xWW5OMGNtbHVaeWd3TENCamFTa3BLU0I3WEc0Z0lDQWdJQ0FnSUM4dklGSmxaMlY0Y0NCM2IyNG5kQ0J0WVhSamFDQnBaaUJ6ZEdGeWRDQnBjeUIwY21sdGJXVmtYRzRnSUNBZ0lDQWdJR3hsZENCd2NtVjJJRDBnYzNKakxuTjFZbk4wY21sdVp5aHNZeTVzYVc1bFUzUmhjblJ6VzJ4cGJtVWdMU0F5WFN3Z2JHTXViR2x1WlZOMFlYSjBjMXRzYVc1bElDMGdNVjBwTzF4dUlDQWdJQ0FnSUNCcFppQW9jSEpsZGk1c1pXNW5kR2dnUGlBNE1DbGNiaUFnSUNBZ0lDQWdJQ0FnSUhCeVpYWWdQU0J3Y21WMkxuTjFZbk4wY21sdVp5Z3dMQ0EzT1NrZ0t5QW5YSFV5TURJMlhGeHVKenRjYmlBZ0lDQWdJQ0FnYkdsdVpWTjBjaUE5SUhCeVpYWWdLeUJzYVc1bFUzUnlPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9MMXRlSUYwdkxuUmxjM1FvYkdsdVpWTjBjaWtwSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJR052ZFc1MElEMGdNVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ1pYSnliM0l1YkdsdVpWQnZjMXN4WFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1Z1WkNBbUppQmxibVF1YkdsdVpTQTlQVDBnYkdsdVpTQW1KaUJsYm1RdVkyOXNJRDRnWTI5c0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIzVnVkQ0E5SUUxaGRHZ3ViV0Y0S0RFc0lFMWhkR2d1YldsdUtHVnVaQzVqYjJ3Z0xTQmpiMndzSURnd0lDMGdZMmtwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2IybHVkR1Z5SUQwZ0p5QW5MbkpsY0dWaGRDaGphU2tnS3lBblhpY3VjbVZ3WldGMEtHTnZkVzUwS1R0Y2JpQWdJQ0FnSUNBZ1pYSnliM0l1YldWemMyRm5aU0FyUFNCZ09seGNibHhjYmlSN2JHbHVaVk4wY24xY1hHNGtlM0J2YVc1MFpYSjlYRnh1WUR0Y2JpQWdJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdleUJaUVUxTVJYSnliM0lzSUZsQlRVeFFZWEp6WlVWeWNtOXlMQ0JaUVUxTVYyRnlibWx1Wnl3Z2NISmxkSFJwWm5sRmNuSnZjaUI5TzF4dUlpd2dJbVoxYm1OMGFXOXVJSEpsYzI5c2RtVlFjbTl3Y3loMGIydGxibk1zSUhzZ1pteHZkeXdnYVc1a2FXTmhkRzl5TENCdVpYaDBMQ0J2Wm1aelpYUXNJRzl1UlhKeWIzSXNJSEJoY21WdWRFbHVaR1Z1ZEN3Z2MzUmhjblJQYms1bGQyeHBibVVnZlNrZ2UxeHVJQ0FnSUd4bGRDQnpjR0ZqWlVKbFptOXlaU0E5SUdaaGJITmxPMXh1SUNBZ0lHeGxkQ0JoZEU1bGQyeHBibVVnUFNCemRHRnlkRTl1VG1WM2JHbHVaVHRjYmlBZ0lDQnNaWFFnYUdGelUzQmhZMlVnUFNCemRHRnlkRTl1VG1WM2JHbHVaVHRjYmlBZ0lDQnNaWFFnWTI5dGJXVnVkQ0E5SUNjbk8xeHVJQ0FnSUd4bGRDQmpiMjF0Wlc1MFUyVndJRDBnSnljN1hHNGdJQ0FnYkdWMElHaGhjMDVsZDJ4cGJtVWdQU0JtWVd4elpUdGNiaUFnSUNCc1pYUWdjbVZ4VTNCaFkyVWdQU0JtWVd4elpUdGNiaUFnSUNCc1pYUWdkR0ZpSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnWVc1amFHOXlJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdkR0ZuSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnYm1WM2JHbHVaVUZtZEdWeVVISnZjQ0E5SUc1MWJHdzdYRzRnSUNBZ2JHVjBJR052YlcxaElEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ1ptOTFibVFnUFNCdWRXeHNPMXh1SUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJRzUxYkd3N1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMGIydGxiaUJ2WmlCMGIydGxibk1wSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsY1ZOd1lXTmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEc5clpXNHVkSGx3WlNBaFBUMGdKM053WVdObEp5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdUxuUjVjR1VnSVQwOUlDZHVaWGRzYVc1bEp5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdUxuUjVjR1VnSVQwOUlDZGpiMjF0WVNjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaTV2Wm1aelpYUXNJQ2ROU1ZOVFNVNUhYME5JUVZJbkxDQW5WR0ZuY3lCaGJtUWdZVzVqYUc5eWN5QnRkWE4wSUdKbElITmxjR0Z5WVhSbFpDQm1jbTl0SUhSb1pTQnVaWGgwSUhSdmEyVnVJR0o1SUhkb2FYUmxJSE53WVdObEp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYRlRjR0ZqWlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwWVdJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGhkRTVsZDJ4cGJtVWdKaVlnZEc5clpXNHVkSGx3WlNBaFBUMGdKMk52YlcxbGJuUW5JQ1ltSUhSdmEyVnVMblI1Y0dVZ0lUMDlJQ2R1Wlhkc2FXNWxKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvZEdGaUxDQW5WRUZDWDBGVFgwbE9SRVZPVkNjc0lDZFVZV0p6SUdGeVpTQnViM1FnWVd4c2IzZGxaQ0JoY3lCcGJtUmxiblJoZEdsdmJpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdGaUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUnZhMlZ1TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOd1lXTmxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCQmRDQjBhR1VnWkc5aklHeGxkbVZzTENCMFlXSnpJR0YwSUd4cGJtVWdjM1JoY25RZ2JXRjVJR0psSUhCaGNuTmxaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUdGeklHeGxZV1JwYm1jZ2QyaHBkR1VnYzNCaFkyVWdjbUYwYUdWeUlIUm9ZVzRnYVc1a1pXNTBZWFJwYjI0dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdTVzRnWVNCbWJHOTNJR052Ykd4bFkzUnBiMjRzSUc5dWJIa2dkR2hsSUhCaGNuTmxjaUJvWVc1a2JHVnpJR2x1WkdWdWRDNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdac2IzY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tHbHVaR2xqWVhSdmNpQWhQVDBnSjJSdll5MXpkR0Z5ZENjZ2ZId2dibVY0ZEQ4dWRIbHdaU0FoUFQwZ0oyWnNiM2N0WTI5c2JHVmpkR2x2YmljcElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVMbk52ZFhKalpTNXBibU5zZFdSbGN5Z25YRngwSnlrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdGaUlEMGdkRzlyWlc0N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHaGhjMU53WVdObElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWxiblFuT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZvWVhOVGNHRmpaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaXdnSjAxSlUxTkpUa2RmUTBoQlVpY3NJQ2REYjIxdFpXNTBjeUJ0ZFhOMElHSmxJSE5sY0dGeVlYUmxaQ0JtY205dElHOTBhR1Z5SUhSdmEyVnVjeUJpZVNCM2FHbDBaU0J6Y0dGalpTQmphR0Z5WVdOMFpYSnpKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMklnUFNCMGIydGxiaTV6YjNWeVkyVXVjM1ZpYzNSeWFXNW5LREVwSUh4OElDY2dKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdQU0JqWWp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblFnS3owZ1kyOXRiV1Z1ZEZObGNDQXJJR05pTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblJUWlhBZ1BTQW5KenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZEU1bGQyeHBibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyNWxkMnhwYm1Vbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hoZEU1bGQyeHBibVVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjIxdFpXNTBJQ3M5SUhSdmEyVnVMbk52ZFhKalpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzQmhZMlZDWldadmNtVWdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiVzFsYm5SVFpYQWdLejBnZEc5clpXNHVjMjkxY21ObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRjBUbVYzYkdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnpUbVYzYkdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR0Z1WTJodmNpQjhmQ0IwWVdjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZDJ4cGJtVkJablJsY2xCeWIzQWdQU0IwYjJ0bGJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm9ZWE5UY0dGalpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaGJtTm9iM0luT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGhibU5vYjNJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kRzlyWlc0c0lDZE5WVXhVU1ZCTVJWOUJUa05JVDFKVEp5d2dKMEVnYm05a1pTQmpZVzRnYUdGMlpTQmhkQ0J0YjNOMElHOXVaU0JoYm1Ob2IzSW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHOXJaVzR1YzI5MWNtTmxMbVZ1WkhOWGFYUm9LQ2M2SnlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kRzlyWlc0dWIyWm1jMlYwSUNzZ2RHOXJaVzR1YzI5MWNtTmxMbXhsYm1kMGFDQXRJREVzSUNkQ1FVUmZRVXhKUVZNbkxDQW5RVzVqYUc5eUlHVnVaR2x1WnlCcGJpQTZJR2x6SUdGdFltbG5kVzkxY3ljc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGdVkyaHZjaUE5SUhSdmEyVnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoemRHRnlkQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblFnUFNCMGIydGxiaTV2Wm1aelpYUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZWFJPWlhkc2FXNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhR0Z6VTNCaFkyVWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEZUY0dGalpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkMFlXY25PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUmhaeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaXdnSjAxVlRGUkpVRXhGWDFSQlIxTW5MQ0FuUVNCdWIyUmxJR05oYmlCb1lYWmxJR0YwSUcxdmMzUWdiMjVsSUhSaFp5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJoWnlBOUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHpkR0Z5ZENBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RZ1BTQjBiMnRsYmk1dlptWnpaWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhST1pYZHNhVzVsSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelUzQmhZMlVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhGVGNHRmpaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUdsdVpHbGpZWFJ2Y2pwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkRiM1ZzWkNCb1pYSmxJR2hoYm1Sc1pTQndjbVZqWldScGJtY2dZMjl0YldWdWRITWdaR2xtWm1WeVpXNTBiSGxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lXNWphRzl5SUh4OElIUmhaeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaXdnSjBKQlJGOVFVazlRWDA5U1JFVlNKeXdnWUVGdVkyaHZjbk1nWVc1a0lIUmhaM01nYlhWemRDQmlaU0JoWm5SbGNpQjBhR1VnSkh0MGIydGxiaTV6YjNWeVkyVjlJR2x1WkdsallYUnZjbUFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaG1iM1Z1WkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDBiMnRsYml3Z0oxVk9SVmhRUlVOVVJVUmZWRTlMUlU0bkxDQmdWVzVsZUhCbFkzUmxaQ0FrZTNSdmEyVnVMbk52ZFhKalpYMGdhVzRnSkh0bWJHOTNJRDgvSUNkamIyeHNaV04wYVc5dUozMWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNWdVpDQTlJSFJ2YTJWdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRjBUbVYzYkdsdVpTQTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHbGpZWFJ2Y2lBOVBUMGdKM05sY1MxcGRHVnRMV2x1WkNjZ2ZId2dhVzVrYVdOaGRHOXlJRDA5UFNBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnpVM0JoWTJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWhKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pteHZkeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTI5dGJXRXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIUnZhMlZ1TENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQlZibVY0Y0dWamRHVmtJQ3dnYVc0Z0pIdG1iRzkzZldBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjIxdFlTQTlJSFJ2YTJWdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZEU1bGQyeHBibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnpVM0JoWTJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pXeHpaU0JtWVd4c2RHaHliM1ZuYUZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIUnZhMlZ1TENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQlZibVY0Y0dWamRHVmtJQ1I3ZEc5clpXNHVkSGx3WlgwZ2RHOXJaVzVnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGRFNWxkMnhwYm1VZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1lYTlRjR0ZqWlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHeGhjM1FnUFNCMGIydGxibk5iZEc5clpXNXpMbXhsYm1kMGFDQXRJREZkTzF4dUlDQWdJR052Ym5OMElHVnVaQ0E5SUd4aGMzUWdQeUJzWVhOMExtOW1abk5sZENBcklHeGhjM1F1YzI5MWNtTmxMbXhsYm1kMGFDQTZJRzltWm5ObGREdGNiaUFnSUNCcFppQW9jbVZ4VTNCaFkyVWdKaVpjYmlBZ0lDQWdJQ0FnYm1WNGRDQW1KbHh1SUNBZ0lDQWdJQ0J1WlhoMExuUjVjR1VnSVQwOUlDZHpjR0ZqWlNjZ0ppWmNiaUFnSUNBZ0lDQWdibVY0ZEM1MGVYQmxJQ0U5UFNBbmJtVjNiR2x1WlNjZ0ppWmNiaUFnSUNBZ0lDQWdibVY0ZEM1MGVYQmxJQ0U5UFNBblkyOXRiV0VuSUNZbVhHNGdJQ0FnSUNBZ0lDaHVaWGgwTG5SNWNHVWdJVDA5SUNkelkyRnNZWEluSUh4OElHNWxlSFF1YzI5MWNtTmxJQ0U5UFNBbkp5a3BJSHRjYmlBZ0lDQWdJQ0FnYjI1RmNuSnZjaWh1WlhoMExtOW1abk5sZEN3Z0owMUpVMU5KVGtkZlEwaEJVaWNzSUNkVVlXZHpJR0Z1WkNCaGJtTm9iM0p6SUcxMWMzUWdZbVVnYzJWd1lYSmhkR1ZrSUdaeWIyMGdkR2hsSUc1bGVIUWdkRzlyWlc0Z1lua2dkMmhwZEdVZ2MzQmhZMlVuS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hSaFlpQW1KbHh1SUNBZ0lDQWdJQ0FvS0dGMFRtVjNiR2x1WlNBbUppQjBZV0l1YVc1a1pXNTBJRHc5SUhCaGNtVnVkRWx1WkdWdWRDa2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFEvTG5SNWNHVWdQVDA5SUNkaWJHOWpheTF0WVhBbklIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBQeTUwZVhCbElEMDlQU0FuWW14dlkyc3RjMlZ4SnlrcFhHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHRmlMQ0FuVkVGQ1gwRlRYMGxPUkVWT1ZDY3NJQ2RVWVdKeklHRnlaU0J1YjNRZ1lXeHNiM2RsWkNCaGN5QnBibVJsYm5SaGRHbHZiaWNwTzF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJR052YlcxaExGeHVJQ0FnSUNBZ0lDQm1iM1Z1WkN4Y2JpQWdJQ0FnSUNBZ2MzQmhZMlZDWldadmNtVXNYRzRnSUNBZ0lDQWdJR052YlcxbGJuUXNYRzRnSUNBZ0lDQWdJR2hoYzA1bGQyeHBibVVzWEc0Z0lDQWdJQ0FnSUdGdVkyaHZjaXhjYmlBZ0lDQWdJQ0FnZEdGbkxGeHVJQ0FnSUNBZ0lDQnVaWGRzYVc1bFFXWjBaWEpRY205d0xGeHVJQ0FnSUNBZ0lDQmxibVFzWEc0Z0lDQWdJQ0FnSUhOMFlYSjBPaUJ6ZEdGeWRDQS9QeUJsYm1SY2JpQWdJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdleUJ5WlhOdmJIWmxVSEp2Y0hNZ2ZUdGNiaUlzSUNKbWRXNWpkR2x2YmlCamIyNTBZV2x1YzA1bGQyeHBibVVvYTJWNUtTQjdYRzRnSUNBZ2FXWWdLQ0ZyWlhrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lITjNhWFJqYUNBb2EyVjVMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdZMkZ6WlNBbllXeHBZWE1uT2x4dUlDQWdJQ0FnSUNCallYTmxJQ2R6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZGtiM1ZpYkdVdGNYVnZkR1ZrTFhOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKM05wYm1kc1pTMXhkVzkwWldRdGMyTmhiR0Z5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYa3VjMjkxY21ObExtbHVZMngxWkdWektDZGNYRzRuS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGt1Wlc1a0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdjM1FnYjJZZ2EyVjVMbVZ1WkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hOMExuUjVjR1VnUFQwOUlDZHVaWGRzYVc1bEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JqWVhObElDZG1iRzkzTFdOdmJHeGxZM1JwYjI0bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcGRDQnZaaUJyWlhrdWFYUmxiWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElITjBJRzltSUdsMExuTjBZWEowS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNRdWRIbHdaU0E5UFQwZ0oyNWxkMnhwYm1VbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMExuTmxjQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnpkQ0J2WmlCcGRDNXpaWEFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MzUXVkSGx3WlNBOVBUMGdKMjVsZDJ4cGJtVW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYjI1MFlXbHVjMDVsZDJ4cGJtVW9hWFF1YTJWNUtTQjhmQ0JqYjI1MFlXbHVjMDVsZDJ4cGJtVW9hWFF1ZG1Gc2RXVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJSDFjYm4xY2JseHVaWGh3YjNKMElIc2dZMjl1ZEdGcGJuTk9aWGRzYVc1bElIMDdYRzRpTENBaWFXMXdiM0owSUhzZ1kyOXVkR0ZwYm5OT1pYZHNhVzVsSUgwZ1puSnZiU0FuTGk5MWRHbHNMV052Ym5SaGFXNXpMVzVsZDJ4cGJtVXVhbk1uTzF4dVhHNW1kVzVqZEdsdmJpQm1iRzkzU1c1a1pXNTBRMmhsWTJzb2FXNWtaVzUwTENCbVl5d2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHbG1JQ2htWXo4dWRIbHdaU0E5UFQwZ0oyWnNiM2N0WTI5c2JHVmpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pXNWtJRDBnWm1NdVpXNWtXekJkTzF4dUlDQWdJQ0FnSUNCcFppQW9aVzVrTG1sdVpHVnVkQ0E5UFQwZ2FXNWtaVzUwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FvWlc1a0xuTnZkWEpqWlNBOVBUMGdKMTBuSUh4OElHVnVaQzV6YjNWeVkyVWdQVDA5SUNkOUp5a2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJoYVc1elRtVjNiR2x1WlNobVl5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxelp5QTlJQ2RHYkc5M0lHVnVaQ0JwYm1ScFkyRjBiM0lnYzJodmRXeGtJR0psSUcxdmNtVWdhVzVrWlc1MFpXUWdkR2hoYmlCd1lYSmxiblFuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaGxibVFzSUNkQ1FVUmZTVTVFUlU1VUp5d2diWE5uTENCMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYm4xY2JseHVaWGh3YjNKMElIc2dabXh2ZDBsdVpHVnVkRU5vWldOcklIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2FYTlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVjYm1aMWJtTjBhVzl1SUcxaGNFbHVZMngxWkdWektHTjBlQ3dnYVhSbGJYTXNJSE5sWVhKamFDa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2RXNXBjWFZsUzJWNWN5QjlJRDBnWTNSNExtOXdkR2x2Ym5NN1hHNGdJQ0FnYVdZZ0tIVnVhWEYxWlV0bGVYTWdQVDA5SUdaaGJITmxLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnWTI5dWMzUWdhWE5GY1hWaGJDQTlJSFI1Y0dWdlppQjFibWx4ZFdWTFpYbHpJRDA5UFNBblpuVnVZM1JwYjI0blhHNGdJQ0FnSUNBZ0lEOGdkVzVwY1hWbFMyVjVjMXh1SUNBZ0lDQWdJQ0E2SUNoaExDQmlLU0E5UGlCaElEMDlQU0JpSUh4OElDaHBjMU5qWVd4aGNpaGhLU0FtSmlCcGMxTmpZV3hoY2loaUtTQW1KaUJoTG5aaGJIVmxJRDA5UFNCaUxuWmhiSFZsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWFJsYlhNdWMyOXRaU2h3WVdseUlEMCtJR2x6UlhGMVlXd29jR0ZwY2k1clpYa3NJSE5sWVhKamFDa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QnRZWEJKYm1Oc2RXUmxjeUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJRkJoYVhJZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5UVlXbHlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGbEJUVXhOWVhBZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5WlFVMU1UV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJSEpsYzI5c2RtVlFjbTl3Y3lCOUlHWnliMjBnSnk0dmNtVnpiMngyWlMxd2NtOXdjeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QmpiMjUwWVdsdWMwNWxkMnhwYm1VZ2ZTQm1jbTl0SUNjdUwzVjBhV3d0WTI5dWRHRnBibk10Ym1WM2JHbHVaUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5Qm1iRzkzU1c1a1pXNTBRMmhsWTJzZ2ZTQm1jbTl0SUNjdUwzVjBhV3d0Wm14dmR5MXBibVJsYm5RdFkyaGxZMnN1YW5Nbk8xeHVhVzF3YjNKMElIc2diV0Z3U1c1amJIVmtaWE1nZlNCbWNtOXRJQ2N1TDNWMGFXd3RiV0Z3TFdsdVkyeDFaR1Z6TG1wekp6dGNibHh1WTI5dWMzUWdjM1JoY25SRGIyeE5jMmNnUFNBblFXeHNJRzFoY0hCcGJtY2dhWFJsYlhNZ2JYVnpkQ0J6ZEdGeWRDQmhkQ0IwYUdVZ2MyRnRaU0JqYjJ4MWJXNG5PMXh1Wm5WdVkzUnBiMjRnY21WemIyeDJaVUpzYjJOclRXRndLSHNnWTI5dGNHOXpaVTV2WkdVc0lHTnZiWEJ2YzJWRmJYQjBlVTV2WkdVZ2ZTd2dZM1I0TENCaWJTd2diMjVGY25KdmNpd2dkR0ZuS1NCN1hHNGdJQ0FnWTI5dWMzUWdUbTlrWlVOc1lYTnpJRDBnZEdGblB5NXViMlJsUTJ4aGMzTWdQejhnV1VGTlRFMWhjRHRjYmlBZ0lDQmpiMjV6ZENCdFlYQWdQU0J1WlhjZ1RtOWtaVU5zWVhOektHTjBlQzV6WTJobGJXRXBPMXh1SUNBZ0lHbG1JQ2hqZEhndVlYUlNiMjkwS1Z4dUlDQWdJQ0FnSUNCamRIZ3VZWFJTYjI5MElEMGdabUZzYzJVN1hHNGdJQ0FnYkdWMElHOW1abk5sZENBOUlHSnRMbTltWm5ObGREdGNiaUFnSUNCc1pYUWdZMjl0YldWdWRFVnVaQ0E5SUc1MWJHdzdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMnhzU1hSbGJTQnZaaUJpYlM1cGRHVnRjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUhOMFlYSjBMQ0JyWlhrc0lITmxjQ3dnZG1Gc2RXVWdmU0E5SUdOdmJHeEpkR1Z0TzF4dUlDQWdJQ0FnSUNBdkx5QnJaWGtnY0hKdmNHVnlkR2xsYzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JyWlhsUWNtOXdjeUE5SUhKbGMyOXNkbVZRY205d2N5aHpkR0Z5ZEN3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1a2FXTmhkRzl5T2lBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoME9pQnJaWGtnUHo4Z2MyVndQeTViTUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MFNXNWtaVzUwT2lCaWJTNXBibVJsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRFOXVUbVYzYkdsdVpUb2dkSEoxWlZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FXMXdiR2xqYVhSTFpYa2dQU0FoYTJWNVVISnZjSE11Wm05MWJtUTdYRzRnSUNBZ0lDQWdJR2xtSUNocGJYQnNhV05wZEV0bGVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hyWlhrdWRIbHdaU0E5UFQwZ0oySnNiMk5yTFhObGNTY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvYjJabWMyVjBMQ0FuUWt4UFEwdGZRVk5mU1UxUVRFbERTVlJmUzBWWkp5d2dKMEVnWW14dlkyc2djMlZ4ZFdWdVkyVWdiV0Y1SUc1dmRDQmlaU0IxYzJWa0lHRnpJR0Z1SUdsdGNHeHBZMmwwSUcxaGNDQnJaWGtuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNnbmFXNWtaVzUwSnlCcGJpQnJaWGtnSmlZZ2EyVjVMbWx1WkdWdWRDQWhQVDBnWW0wdWFXNWtaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHOW1abk5sZEN3Z0owSkJSRjlKVGtSRlRsUW5MQ0J6ZEdGeWRFTnZiRTF6WnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVd0bGVWQnliM0J6TG1GdVkyaHZjaUFtSmlBaGEyVjVVSEp2Y0hNdWRHRm5JQ1ltSUNGelpYQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjIxdFpXNTBSVzVrSUQwZ2EyVjVVSEp2Y0hNdVpXNWtPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbFFjbTl3Y3k1amIyMXRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodFlYQXVZMjl0YldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVqYjIxdFpXNTBJQ3M5SUNkY1hHNG5JQ3NnYTJWNVVISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiV0Z3TG1OdmJXMWxiblFnUFNCclpYbFFjbTl3Y3k1amIyMXRaVzUwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hyWlhsUWNtOXdjeTV1Wlhkc2FXNWxRV1owWlhKUWNtOXdJSHg4SUdOdmJuUmhhVzV6VG1WM2JHbHVaU2hyWlhrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaHJaWGtnUHo4Z2MzUmhjblJiYzNSaGNuUXViR1Z1WjNSb0lDMGdNVjBzSUNkTlZVeFVTVXhKVGtWZlNVMVFURWxEU1ZSZlMwVlpKeXdnSjBsdGNHeHBZMmwwSUd0bGVYTWdibVZsWkNCMGJ5QmlaU0J2YmlCaElITnBibWRzWlNCc2FXNWxKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYTJWNVVISnZjSE11Wm05MWJtUS9MbWx1WkdWdWRDQWhQVDBnWW0wdWFXNWtaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLRzltWm5ObGRDd2dKMEpCUkY5SlRrUkZUbFFuTENCemRHRnlkRU52YkUxelp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z2EyVjVJSFpoYkhWbFhHNGdJQ0FnSUNBZ0lHTjBlQzVoZEV0bGVTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd0bGVWTjBZWEowSUQwZ2EyVjVVSEp2Y0hNdVpXNWtPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnJaWGxPYjJSbElEMGdhMlY1WEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR052YlhCdmMyVk9iMlJsS0dOMGVDd2dhMlY1TENCclpYbFFjbTl3Y3l3Z2IyNUZjbkp2Y2lsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU2hqZEhnc0lHdGxlVk4wWVhKMExDQnpkR0Z5ZEN3Z2JuVnNiQ3dnYTJWNVVISnZjSE1zSUc5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9ZM1I0TG5OamFHVnRZUzVqYjIxd1lYUXBYRzRnSUNBZ0lDQWdJQ0FnSUNCbWJHOTNTVzVrWlc1MFEyaGxZMnNvWW0wdWFXNWtaVzUwTENCclpYa3NJRzl1UlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0JqZEhndVlYUkxaWGtnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhjRWx1WTJ4MVpHVnpLR04wZUN3Z2JXRndMbWwwWlcxekxDQnJaWGxPYjJSbEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvYTJWNVUzUmhjblFzSUNkRVZWQk1TVU5CVkVWZlMwVlpKeXdnSjAxaGNDQnJaWGx6SUcxMWMzUWdZbVVnZFc1cGNYVmxKeWs3WEc0Z0lDQWdJQ0FnSUM4dklIWmhiSFZsSUhCeWIzQmxjblJwWlhOY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVlFjbTl3Y3lBOUlISmxjMjlzZG1WUWNtOXdjeWh6WlhBZ1B6OGdXMTBzSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2x1WkdsallYUnZjam9nSjIxaGNDMTJZV3gxWlMxcGJtUW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JtVjRkRG9nZG1Gc2RXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFE2SUd0bGVVNXZaR1V1Y21GdVoyVmJNbDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGeVpXNTBTVzVrWlc1ME9pQmliUzVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRTl1VG1WM2JHbHVaVG9nSVd0bGVTQjhmQ0JyWlhrdWRIbHdaU0E5UFQwZ0oySnNiMk5yTFhOallXeGhjaWRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lHOW1abk5sZENBOUlIWmhiSFZsVUhKdmNITXVaVzVrTzF4dUlDQWdJQ0FnSUNCcFppQW9kbUZzZFdWUWNtOXdjeTVtYjNWdVpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x0Y0d4cFkybDBTMlY1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbFB5NTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGJXRndKeUFtSmlBaGRtRnNkV1ZRY205d2N5NW9ZWE5PWlhkc2FXNWxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0c5bVpuTmxkQ3dnSjBKTVQwTkxYMEZUWDBsTlVFeEpRMGxVWDB0RldTY3NJQ2RPWlhOMFpXUWdiV0Z3Y0dsdVozTWdZWEpsSUc1dmRDQmhiR3h2ZDJWa0lHbHVJR052YlhCaFkzUWdiV0Z3Y0dsdVozTW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbTl3ZEdsdmJuTXVjM1J5YVdOMElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVWQnliM0J6TG5OMFlYSjBJRHdnZG1Gc2RXVlFjbTl3Y3k1bWIzVnVaQzV2Wm1aelpYUWdMU0F4TURJMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR3RsZVU1dlpHVXVjbUZ1WjJVc0lDZExSVmxmVDFaRlVsOHhNREkwWDBOSVFWSlRKeXdnSjFSb1pTQTZJR2x1WkdsallYUnZjaUJ0ZFhOMElHSmxJR0YwSUcxdmMzUWdNVEF5TkNCamFHRnljeUJoWm5SbGNpQjBhR1VnYzNSaGNuUWdiMllnWVc0Z2FXMXdiR2xqYVhRZ1lteHZZMnNnYldGd2NHbHVaeUJyWlhrbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUhaaGJIVmxJSFpoYkhWbFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjJZV3gxWlU1dlpHVWdQU0IyWVd4MVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdZMjl0Y0c5elpVNXZaR1VvWTNSNExDQjJZV3gxWlN3Z2RtRnNkV1ZRY205d2N5d2diMjVGY25KdmNpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJR052YlhCdmMyVkZiWEIwZVU1dlpHVW9ZM1I0TENCdlptWnpaWFFzSUhObGNDd2diblZzYkN3Z2RtRnNkV1ZRY205d2N5d2diMjVGY25KdmNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZM1I0TG5OamFHVnRZUzVqYjIxd1lYUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabXh2ZDBsdVpHVnVkRU5vWldOcktHSnRMbWx1WkdWdWRDd2dkbUZzZFdVc0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBJRDBnZG1Gc2RXVk9iMlJsTG5KaGJtZGxXekpkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NHRnBjaUE5SUc1bGR5QlFZV2x5S0d0bGVVNXZaR1VzSUhaaGJIVmxUbTlrWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbTl3ZEdsdmJuTXVhMlZsY0ZOdmRYSmpaVlJ2YTJWdWN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZV2x5TG5OeVkxUnZhMlZ1SUQwZ1kyOXNiRWwwWlcwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWFYUmxiWE11Y0hWemFDaHdZV2x5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd0bGVTQjNhWFJvSUc1dklIWmhiSFZsWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVcxd2JHbGphWFJMWlhrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loclpYbE9iMlJsTG5KaGJtZGxMQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2dKMGx0Y0d4cFkybDBJRzFoY0NCclpYbHpJRzVsWldRZ2RHOGdZbVVnWm05c2JHOTNaV1FnWW5rZ2JXRndJSFpoYkhWbGN5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGxPYjJSbExtTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVU1dlpHVXVZMjl0YldWdWRDQXJQU0FuWEZ4dUp5QXJJSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVU1dlpHVXVZMjl0YldWdWRDQTlJSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEJoYVhJZ1BTQnVaWGNnVUdGcGNpaHJaWGxPYjJSbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpkSGd1YjNCMGFXOXVjeTVyWldWd1UyOTFjbU5sVkc5clpXNXpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoYVhJdWMzSmpWRzlyWlc0Z1BTQmpiMnhzU1hSbGJUdGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1d2RYTm9LSEJoYVhJcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGpiMjF0Wlc1MFJXNWtJQ1ltSUdOdmJXMWxiblJGYm1RZ1BDQnZabVp6WlhRcFhHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb1kyOXRiV1Z1ZEVWdVpDd2dKMGxOVUU5VFUwbENURVVuTENBblRXRndJR052YlcxbGJuUWdkMmwwYUNCMGNtRnBiR2x1WnlCamIyNTBaVzUwSnlrN1hHNGdJQ0FnYldGd0xuSmhibWRsSUQwZ1cySnRMbTltWm5ObGRDd2diMlptYzJWMExDQmpiMjF0Wlc1MFJXNWtJRDgvSUc5bVpuTmxkRjA3WEc0Z0lDQWdjbVYwZFhKdUlHMWhjRHRjYm4xY2JseHVaWGh3YjNKMElIc2djbVZ6YjJ4MlpVSnNiMk5yVFdGd0lIMDdYRzRpTENBaWFXMXdiM0owSUhzZ1dVRk5URk5sY1NCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDFsQlRVeFRaWEV1YW5Nbk8xeHVhVzF3YjNKMElIc2djbVZ6YjJ4MlpWQnliM0J6SUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFhCeWIzQnpMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHWnNiM2RKYm1SbGJuUkRhR1ZqYXlCOUlHWnliMjBnSnk0dmRYUnBiQzFtYkc5M0xXbHVaR1Z1ZEMxamFHVmpheTVxY3ljN1hHNWNibVoxYm1OMGFXOXVJSEpsYzI5c2RtVkNiRzlqYTFObGNTaDdJR052YlhCdmMyVk9iMlJsTENCamIyMXdiM05sUlcxd2RIbE9iMlJsSUgwc0lHTjBlQ3dnWW5Nc0lHOXVSWEp5YjNJc0lIUmhaeWtnZTF4dUlDQWdJR052Ym5OMElFNXZaR1ZEYkdGemN5QTlJSFJoWno4dWJtOWtaVU5zWVhOeklEOC9JRmxCVFV4VFpYRTdYRzRnSUNBZ1kyOXVjM1FnYzJWeElEMGdibVYzSUU1dlpHVkRiR0Z6Y3loamRIZ3VjMk5vWlcxaEtUdGNiaUFnSUNCcFppQW9ZM1I0TG1GMFVtOXZkQ2xjYmlBZ0lDQWdJQ0FnWTNSNExtRjBVbTl2ZENBOUlHWmhiSE5sTzF4dUlDQWdJR2xtSUNoamRIZ3VZWFJMWlhrcFhHNGdJQ0FnSUNBZ0lHTjBlQzVoZEV0bGVTQTlJR1poYkhObE8xeHVJQ0FnSUd4bGRDQnZabVp6WlhRZ1BTQmljeTV2Wm1aelpYUTdYRzRnSUNBZ2JHVjBJR052YlcxbGJuUkZibVFnUFNCdWRXeHNPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdleUJ6ZEdGeWRDd2dkbUZzZFdVZ2ZTQnZaaUJpY3k1cGRHVnRjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y205d2N5QTlJSEpsYzI5c2RtVlFjbTl3Y3loemRHRnlkQ3dnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrYVdOaGRHOXlPaUFuYzJWeExXbDBaVzB0YVc1a0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUc1bGVIUTZJSFpoYkhWbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoY21WdWRFbHVaR1Z1ZERvZ1luTXVhVzVrWlc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGNuUlBiazVsZDJ4cGJtVTZJSFJ5ZFdWY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJR2xtSUNnaGNISnZjSE11Wm05MWJtUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3Y205d2N5NWhibU5vYjNJZ2ZId2djSEp2Y0hNdWRHRm5JSHg4SUhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsSUNZbUlIWmhiSFZsTG5SNWNHVWdQVDA5SUNkaWJHOWpheTF6WlhFbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLSEJ5YjNCekxtVnVaQ3dnSjBKQlJGOUpUa1JGVGxRbkxDQW5RV3hzSUhObGNYVmxibU5sSUdsMFpXMXpJRzExYzNRZ2MzUmhjblFnWVhRZ2RHaGxJSE5oYldVZ1kyOXNkVzF1SnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0c5bVpuTmxkQ3dnSjAxSlUxTkpUa2RmUTBoQlVpY3NJQ2RUWlhGMVpXNWpaU0JwZEdWdElIZHBkR2h2ZFhRZ0xTQnBibVJwWTJGMGIzSW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUkZibVFnUFNCd2NtOXdjeTVsYm1RN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEJ5YjNCekxtTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY1M1amIyMXRaVzUwSUQwZ2NISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2RtRnNkV1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdZMjl0Y0c5elpVNXZaR1VvWTNSNExDQjJZV3gxWlN3Z2NISnZjSE1zSUc5dVJYSnliM0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJR052YlhCdmMyVkZiWEIwZVU1dlpHVW9ZM1I0TENCd2NtOXdjeTVsYm1Rc0lITjBZWEowTENCdWRXeHNMQ0J3Y205d2N5d2diMjVGY25KdmNpazdYRzRnSUNBZ0lDQWdJR2xtSUNoamRIZ3VjMk5vWlcxaExtTnZiWEJoZENsY2JpQWdJQ0FnSUNBZ0lDQWdJR1pzYjNkSmJtUmxiblJEYUdWamF5aGljeTVwYm1SbGJuUXNJSFpoYkhWbExDQnZia1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdiMlptYzJWMElEMGdibTlrWlM1eVlXNW5aVnN5WFR0Y2JpQWdJQ0FnSUNBZ2MyVnhMbWwwWlcxekxuQjFjMmdvYm05a1pTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhObGNTNXlZVzVuWlNBOUlGdGljeTV2Wm1aelpYUXNJRzltWm5ObGRDd2dZMjl0YldWdWRFVnVaQ0EvUHlCdlptWnpaWFJkTzF4dUlDQWdJSEpsZEhWeWJpQnpaWEU3WEc1OVhHNWNibVY0Y0c5eWRDQjdJSEpsYzI5c2RtVkNiRzlqYTFObGNTQjlPMXh1SWl3Z0ltWjFibU4wYVc5dUlISmxjMjlzZG1WRmJtUW9aVzVrTENCdlptWnpaWFFzSUhKbGNWTndZV05sTENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnYkdWMElHTnZiVzFsYm5RZ1BTQW5KenRjYmlBZ0lDQnBaaUFvWlc1a0tTQjdYRzRnSUNBZ0lDQWdJR3hsZENCb1lYTlRjR0ZqWlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCc1pYUWdjMlZ3SUQwZ0p5YzdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnZEc5clpXNGdiMllnWlc1a0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0I3SUhOdmRYSmpaU3dnZEhsd1pTQjlJRDBnZEc5clpXNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCemQybDBZMmdnS0hSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpjR0ZqWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2hoYzFOd1lXTmxJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblkyOXRiV1Z1ZENjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxjVk53WVdObElDWW1JQ0ZvWVhOVGNHRmpaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kRzlyWlc0c0lDZE5TVk5UU1U1SFgwTklRVkluTENBblEyOXRiV1Z1ZEhNZ2JYVnpkQ0JpWlNCelpYQmhjbUYwWldRZ1puSnZiU0J2ZEdobGNpQjBiMnRsYm5NZ1lua2dkMmhwZEdVZ2MzQmhZMlVnWTJoaGNtRmpkR1Z5Y3ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpZaUE5SUhOdmRYSmpaUzV6ZFdKemRISnBibWNvTVNrZ2ZId2dKeUFuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdOdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjIxdFpXNTBJRDBnWTJJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblFnS3owZ2MyVndJQ3NnWTJJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY0NBOUlDY25PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ibVYzYkdsdVpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVndJQ3M5SUhOdmRYSmpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnpVM0JoWTJVZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIUnZhMlZ1TENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQlZibVY0Y0dWamRHVmtJQ1I3ZEhsd1pYMGdZWFFnYm05a1pTQmxibVJnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZENBclBTQnpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdJR052YlcxbGJuUXNJRzltWm5ObGRDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QnlaWE52YkhabFJXNWtJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dhWE5RWVdseUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdmFXUmxiblJwZEhrdWFuTW5PMXh1YVcxd2IzSjBJSHNnVUdGcGNpQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwxQmhhWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dXVUZOVEUxaGNDQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwxbEJUVXhOWVhBdWFuTW5PMXh1YVcxd2IzSjBJSHNnV1VGTlRGTmxjU0I5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMWxCVFV4VFpYRXVhbk1uTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlVWdVpDQjlJR1p5YjIwZ0p5NHZjbVZ6YjJ4MlpTMWxibVF1YW5Nbk8xeHVhVzF3YjNKMElIc2djbVZ6YjJ4MlpWQnliM0J6SUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFhCeWIzQnpMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHTnZiblJoYVc1elRtVjNiR2x1WlNCOUlHWnliMjBnSnk0dmRYUnBiQzFqYjI1MFlXbHVjeTF1Wlhkc2FXNWxMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHMWhjRWx1WTJ4MVpHVnpJSDBnWm5KdmJTQW5MaTkxZEdsc0xXMWhjQzFwYm1Oc2RXUmxjeTVxY3ljN1hHNWNibU52Ym5OMElHSnNiMk5yVFhObklEMGdKMEpzYjJOcklHTnZiR3hsWTNScGIyNXpJR0Z5WlNCdWIzUWdZV3hzYjNkbFpDQjNhWFJvYVc0Z1pteHZkeUJqYjJ4c1pXTjBhVzl1Y3ljN1hHNWpiMjV6ZENCcGMwSnNiMk5ySUQwZ0tIUnZhMlZ1S1NBOVBpQjBiMnRsYmlBbUppQW9kRzlyWlc0dWRIbHdaU0E5UFQwZ0oySnNiMk5yTFcxaGNDY2dmSHdnZEc5clpXNHVkSGx3WlNBOVBUMGdKMkpzYjJOckxYTmxjU2NwTzF4dVpuVnVZM1JwYjI0Z2NtVnpiMngyWlVac2IzZERiMnhzWldOMGFXOXVLSHNnWTI5dGNHOXpaVTV2WkdVc0lHTnZiWEJ2YzJWRmJYQjBlVTV2WkdVZ2ZTd2dZM1I0TENCbVl5d2diMjVGY25KdmNpd2dkR0ZuS1NCN1hHNGdJQ0FnWTI5dWMzUWdhWE5OWVhBZ1BTQm1ZeTV6ZEdGeWRDNXpiM1Z5WTJVZ1BUMDlJQ2Q3Snp0Y2JpQWdJQ0JqYjI1emRDQm1ZMDVoYldVZ1BTQnBjMDFoY0NBL0lDZG1iRzkzSUcxaGNDY2dPaUFuWm14dmR5QnpaWEYxWlc1alpTYzdYRzRnSUNBZ1kyOXVjM1FnVG05a1pVTnNZWE56SUQwZ0tIUmhaejh1Ym05a1pVTnNZWE56SUQ4L0lDaHBjMDFoY0NBL0lGbEJUVXhOWVhBZ09pQlpRVTFNVTJWeEtTazdYRzRnSUNBZ1kyOXVjM1FnWTI5c2JDQTlJRzVsZHlCT2IyUmxRMnhoYzNNb1kzUjRMbk5qYUdWdFlTazdYRzRnSUNBZ1kyOXNiQzVtYkc5M0lEMGdkSEoxWlR0Y2JpQWdJQ0JqYjI1emRDQmhkRkp2YjNRZ1BTQmpkSGd1WVhSU2IyOTBPMXh1SUNBZ0lHbG1JQ2hoZEZKdmIzUXBYRzRnSUNBZ0lDQWdJR04wZUM1aGRGSnZiM1FnUFNCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWTNSNExtRjBTMlY1S1Z4dUlDQWdJQ0FnSUNCamRIZ3VZWFJMWlhrZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JzWlhRZ2IyWm1jMlYwSUQwZ1ptTXViMlptYzJWMElDc2dabU11YzNSaGNuUXVjMjkxY21ObExteGxibWQwYUR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdaakxtbDBaVzF6TG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTnZiR3hKZEdWdElEMGdabU11YVhSbGJYTmJhVjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnYzNSaGNuUXNJR3RsZVN3Z2MyVndMQ0IyWVd4MVpTQjlJRDBnWTI5c2JFbDBaVzA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJ5YjNCeklEMGdjbVZ6YjJ4MlpWQnliM0J6S0hOMFlYSjBMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iRzkzT2lCbVkwNWhiV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBibVJwWTJGMGIzSTZJQ2RsZUhCc2FXTnBkQzFyWlhrdGFXNWtKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFE2SUd0bGVTQS9QeUJ6WlhBL0xsc3dYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lYSmxiblJKYm1SbGJuUTZJR1pqTG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowVDI1T1pYZHNhVzVsT2lCbVlXeHpaVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z3Y205d2N5NW1iM1Z1WkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRndjbTl3Y3k1aGJtTm9iM0lnSmlZZ0lYQnliM0J6TG5SaFp5QW1KaUFoYzJWd0lDWW1JQ0YyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocElEMDlQU0F3SUNZbUlIQnliM0J6TG1OdmJXMWhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hCeWIzQnpMbU52YlcxaExDQW5WVTVGV0ZCRlExUkZSRjlVVDB0RlRpY3NJR0JWYm1WNGNHVmpkR1ZrSUN3Z2FXNGdKSHRtWTA1aGJXVjlZQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVNBOElHWmpMbWwwWlcxekxteGxibWQwYUNBdElERXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvY0hKdmNITXVjM1JoY25Rc0lDZFZUa1ZZVUVWRFZFVkVYMVJQUzBWT0p5d2dZRlZ1Wlhod1pXTjBaV1FnWlcxd2RIa2dhWFJsYlNCcGJpQWtlMlpqVG1GdFpYMWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NISnZjSE11WTI5dGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTI5c2JDNWpiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiQzVqYjIxdFpXNTBJQ3M5SUNkY1hHNG5JQ3NnY0hKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiQzVqYjIxdFpXNTBJRDBnY0hKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWMElEMGdjSEp2Y0hNdVpXNWtPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5ScGJuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBjMDFoY0NBbUppQmpkSGd1YjNCMGFXOXVjeTV6ZEhKcFkzUWdKaVlnWTI5dWRHRnBibk5PWlhkc2FXNWxLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loclpYa3NJQzh2SUdOb1pXTnJaV1FnWW5rZ1kyOXVkR0ZwYm5OT1pYZHNhVzVsS0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBblRWVk1WRWxNU1U1RlgwbE5VRXhKUTBsVVgwdEZXU2NzSUNkSmJYQnNhV05wZENCclpYbHpJRzltSUdac2IzY2djMlZ4ZFdWdVkyVWdjR0ZwY25NZ2JtVmxaQ0IwYnlCaVpTQnZiaUJoSUhOcGJtZHNaU0JzYVc1bEp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHa2dQVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHdjbTl3Y3k1amIyMXRZU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLSEJ5YjNCekxtTnZiVzFoTENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQlZibVY0Y0dWamRHVmtJQ3dnYVc0Z0pIdG1ZMDVoYldWOVlDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWEJ5YjNCekxtTnZiVzFoS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvY0hKdmNITXVjM1JoY25Rc0lDZE5TVk5UU1U1SFgwTklRVkluTENCZ1RXbHpjMmx1WnlBc0lHSmxkSGRsWlc0Z0pIdG1ZMDVoYldWOUlHbDBaVzF6WUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NISnZjSE11WTI5dGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQndjbVYyU1hSbGJVTnZiVzFsYm5RZ1BTQW5KenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjI5d09pQm1iM0lnS0dOdmJuTjBJSE4wSUc5bUlITjBZWEowS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4zYVhSamFDQW9jM1F1ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblkyOXRiV0VuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jM0JoWTJVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXVnVkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISmxka2wwWlcxRGIyMXRaVzUwSUQwZ2MzUXVjMjkxY21ObExuTjFZbk4wY21sdVp5Z3hLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhheUJzYjI5d08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXlCc2IyOXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3Y21WMlNYUmxiVU52YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSEJ5WlhZZ1BTQmpiMnhzTG1sMFpXMXpXMk52Ykd3dWFYUmxiWE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxQmhhWElvY0hKbGRpa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbVYySUQwZ2NISmxkaTUyWVd4MVpTQS9QeUJ3Y21WMkxtdGxlVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEJ5WlhZdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCeVpYWXVZMjl0YldWdWRDQXJQU0FuWEZ4dUp5QXJJSEJ5WlhaSmRHVnRRMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISmxkaTVqYjIxdFpXNTBJRDBnY0hKbGRrbDBaVzFEYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2NtOXdjeTVqYjIxdFpXNTBJRDBnY0hKdmNITXVZMjl0YldWdWRDNXpkV0p6ZEhKcGJtY29jSEpsZGtsMFpXMURiMjF0Wlc1MExteGxibWQwYUNBcklERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0lXbHpUV0Z3SUNZbUlDRnpaWEFnSmlZZ0lYQnliM0J6TG1admRXNWtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJwZEdWdElHbHpJR0VnZG1Gc2RXVWdhVzRnWVNCelpYRmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGeDFNakU1TWlCclpYa2dKaUJ6WlhBZ1lYSmxJR1Z0Y0hSNUxDQnpkR0Z5ZENCa2IyVnpJRzV2ZENCcGJtTnNkV1JsSUQ4Z2IzSWdPbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVk9iMlJsSUQwZ2RtRnNkV1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUdOdmJYQnZjMlZPYjJSbEtHTjBlQ3dnZG1Gc2RXVXNJSEJ5YjNCekxDQnZia1Z5Y205eUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dZMjl0Y0c5elpVVnRjSFI1VG05a1pTaGpkSGdzSUhCeWIzQnpMbVZ1WkN3Z2MyVndMQ0J1ZFd4c0xDQndjbTl3Y3l3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjJ4c0xtbDBaVzF6TG5CMWMyZ29kbUZzZFdWT2IyUmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZENBOUlIWmhiSFZsVG05a1pTNXlZVzVuWlZzeVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMEpzYjJOcktIWmhiSFZsS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0haaGJIVmxUbTlrWlM1eVlXNW5aU3dnSjBKTVQwTkxYMGxPWDBaTVQxY25MQ0JpYkc5amEwMXpaeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJwZEdWdElHbHpJR0VnYTJWNUszWmhiSFZsSUhCaGFYSmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHdGxlU0IyWVd4MVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExtRjBTMlY1SUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd0bGVWTjBZWEowSUQwZ2NISnZjSE11Wlc1a08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhMlY1VG05a1pTQTlJR3RsZVZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1kyOXRjRzl6WlU1dlpHVW9ZM1I0TENCclpYa3NJSEJ5YjNCekxDQnZia1Z5Y205eUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dZMjl0Y0c5elpVVnRjSFI1VG05a1pTaGpkSGdzSUd0bGVWTjBZWEowTENCemRHRnlkQ3dnYm5Wc2JDd2djSEp2Y0hNc0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHpRbXh2WTJzb2EyVjVLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR3RsZVU1dlpHVXVjbUZ1WjJVc0lDZENURTlEUzE5SlRsOUdURTlYSnl3Z1lteHZZMnROYzJjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExtRjBTMlY1SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUIyWVd4MVpTQndjbTl3WlhKMGFXVnpYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpWQnliM0J6SUQwZ2NtVnpiMngyWlZCeWIzQnpLSE5sY0NBL1B5QmJYU3dnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdac2IzYzZJR1pqVG1GdFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJwWTJGMGIzSTZJQ2R0WVhBdGRtRnNkV1V0YVc1a0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVaWGgwT2lCMllXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJR3RsZVU1dlpHVXVjbUZ1WjJWYk1sMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWEpsYm5SSmJtUmxiblE2SUdaakxtbHVaR1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRTl1VG1WM2JHbHVaVG9nWm1Gc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsVUhKdmNITXVabTkxYm1RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdselRXRndJQ1ltSUNGd2NtOXdjeTVtYjNWdVpDQW1KaUJqZEhndWIzQjBhVzl1Y3k1emRISnBZM1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hObGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdjM1FnYjJZZ2MyVndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE4wSUQwOVBTQjJZV3gxWlZCeWIzQnpMbVp2ZFc1a0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM1F1ZEhsd1pTQTlQVDBnSjI1bGQyeHBibVVuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvYzNRc0lDZE5WVXhVU1V4SlRrVmZTVTFRVEVsRFNWUmZTMFZaSnl3Z0owbHRjR3hwWTJsMElHdGxlWE1nYjJZZ1pteHZkeUJ6WlhGMVpXNWpaU0J3WVdseWN5QnVaV1ZrSUhSdklHSmxJRzl1SUdFZ2MybHVaMnhsSUd4cGJtVW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jSEp2Y0hNdWMzUmhjblFnUENCMllXeDFaVkJ5YjNCekxtWnZkVzVrTG05bVpuTmxkQ0F0SURFd01qUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIWmhiSFZsVUhKdmNITXVabTkxYm1Rc0lDZExSVmxmVDFaRlVsOHhNREkwWDBOSVFWSlRKeXdnSjFSb1pTQTZJR2x1WkdsallYUnZjaUJ0ZFhOMElHSmxJR0YwSUcxdmMzUWdNVEF5TkNCamFHRnljeUJoWm5SbGNpQjBhR1VnYzNSaGNuUWdiMllnWVc0Z2FXMXdiR2xqYVhRZ1pteHZkeUJ6WlhGMVpXNWpaU0JyWlhrbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnbmMyOTFjbU5sSnlCcGJpQjJZV3gxWlNBbUppQjJZV3gxWlM1emIzVnlZMlVnSmlZZ2RtRnNkV1V1YzI5MWNtTmxXekJkSUQwOVBTQW5PaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RtRnNkV1VzSUNkTlNWTlRTVTVIWDBOSVFWSW5MQ0JnVFdsemMybHVaeUJ6Y0dGalpTQmhablJsY2lBNklHbHVJQ1I3Wm1OT1lXMWxmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgyWVd4MVpWQnliM0J6TG5OMFlYSjBMQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2dZRTFwYzNOcGJtY2dMQ0J2Y2lBNklHSmxkSGRsWlc0Z0pIdG1ZMDVoYldWOUlHbDBaVzF6WUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUIyWVd4MVpTQjJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1ZPYjJSbElEMGdkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lHTnZiWEJ2YzJWT2IyUmxLR04wZUN3Z2RtRnNkV1VzSUhaaGJIVmxVSEp2Y0hNc0lHOXVSWEp5YjNJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ09pQjJZV3gxWlZCeWIzQnpMbVp2ZFc1a1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU2hqZEhnc0lIWmhiSFZsVUhKdmNITXVaVzVrTENCelpYQXNJRzUxYkd3c0lIWmhiSFZsVUhKdmNITXNJRzl1UlhKeWIzSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gyWVd4MVpVNXZaR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5DYkc5amF5aDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kbUZzZFdWT2IyUmxMbkpoYm1kbExDQW5Ra3hQUTB0ZlNVNWZSa3hQVnljc0lHSnNiMk5yVFhObktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGxPYjJSbExtTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVU1dlpHVXVZMjl0YldWdWRDQXJQU0FuWEZ4dUp5QXJJSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVU1dlpHVXVZMjl0YldWdWRDQTlJSFpoYkhWbFVISnZjSE11WTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEJoYVhJZ1BTQnVaWGNnVUdGcGNpaHJaWGxPYjJSbExDQjJZV3gxWlU1dlpHVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR04wZUM1dmNIUnBiMjV6TG10bFpYQlRiM1Z5WTJWVWIydGxibk1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGcGNpNXpjbU5VYjJ0bGJpQTlJR052Ykd4SmRHVnRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x6VFdGd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRndJRDBnWTI5c2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYldGd1NXNWpiSFZrWlhNb1kzUjRMQ0J0WVhBdWFYUmxiWE1zSUd0bGVVNXZaR1VwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHdGxlVk4wWVhKMExDQW5SRlZRVEVsRFFWUkZYMHRGV1Njc0lDZE5ZWEFnYTJWNWN5QnRkWE4wSUdKbElIVnVhWEYxWlNjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdkWE5vS0hCaGFYSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRndJRDBnYm1WM0lGbEJUVXhOWVhBb1kzUjRMbk5qYUdWdFlTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiV0Z3TG1ac2IzY2dQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdkWE5vS0hCaGFYSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRkpoYm1kbElEMGdLSFpoYkhWbFRtOWtaU0EvUHlCclpYbE9iMlJsS1M1eVlXNW5aVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWNtRnVaMlVnUFNCYmEyVjVUbTlrWlM1eVlXNW5aVnN3WFN3Z1pXNWtVbUZ1WjJWYk1WMHNJR1Z1WkZKaGJtZGxXekpkWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyeHNMbWwwWlcxekxuQjFjMmdvYldGd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGRDQTlJSFpoYkhWbFRtOWtaU0EvSUhaaGJIVmxUbTlrWlM1eVlXNW5aVnN5WFNBNklIWmhiSFZsVUhKdmNITXVaVzVrTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHVjRjR1ZqZEdWa1JXNWtJRDBnYVhOTllYQWdQeUFuZlNjZ09pQW5YU2M3WEc0Z0lDQWdZMjl1YzNRZ1cyTmxMQ0F1TGk1bFpWMGdQU0JtWXk1bGJtUTdYRzRnSUNBZ2JHVjBJR05sVUc5eklEMGdiMlptYzJWME8xeHVJQ0FnSUdsbUlDaGpaU0FtSmlCalpTNXpiM1Z5WTJVZ1BUMDlJR1Y0Y0dWamRHVmtSVzVrS1Z4dUlDQWdJQ0FnSUNCalpWQnZjeUE5SUdObExtOW1abk5sZENBcklHTmxMbk52ZFhKalpTNXNaVzVuZEdnN1hHNGdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCbVkwNWhiV1ZiTUYwdWRHOVZjSEJsY2tOaGMyVW9LU0FySUdaalRtRnRaUzV6ZFdKemRISnBibWNvTVNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxelp5QTlJR0YwVW05dmRGeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCZ0pIdHVZVzFsZlNCdGRYTjBJR1Z1WkNCM2FYUm9JR0VnSkh0bGVIQmxZM1JsWkVWdVpIMWdYRzRnSUNBZ0lDQWdJQ0FnSUNBNklHQWtlMjVoYldWOUlHbHVJR0pzYjJOcklHTnZiR3hsWTNScGIyNGdiWFZ6ZENCaVpTQnpkV1ptYVdOcFpXNTBiSGtnYVc1a1pXNTBaV1FnWVc1a0lHVnVaQ0IzYVhSb0lHRWdKSHRsZUhCbFkzUmxaRVZ1WkgxZ08xeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHOW1abk5sZEN3Z1lYUlNiMjkwSUQ4Z0owMUpVMU5KVGtkZlEwaEJVaWNnT2lBblFrRkVYMGxPUkVWT1ZDY3NJRzF6WnlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqWlNBbUppQmpaUzV6YjNWeVkyVXViR1Z1WjNSb0lDRTlQU0F4S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaV1V1ZFc1emFHbG1kQ2hqWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNobFpTNXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkNBOUlISmxjMjlzZG1WRmJtUW9aV1VzSUdObFVHOXpMQ0JqZEhndWIzQjBhVzl1Y3k1emRISnBZM1FzSUc5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9aVzVrTG1OdmJXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamIyeHNMbU52YlcxbGJuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjlzYkM1amIyMXRaVzUwSUNzOUlDZGNYRzRuSUNzZ1pXNWtMbU52YlcxbGJuUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjlzYkM1amIyMXRaVzUwSUQwZ1pXNWtMbU52YlcxbGJuUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5c2JDNXlZVzVuWlNBOUlGdG1ZeTV2Wm1aelpYUXNJR05sVUc5ekxDQmxibVF1YjJabWMyVjBYVHRjYmlBZ0lDQjlYRzRnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJHd3VjbUZ1WjJVZ1BTQmJabU11YjJabWMyVjBMQ0JqWlZCdmN5d2dZMlZRYjNOZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZMjlzYkR0Y2JuMWNibHh1Wlhod2IzSjBJSHNnY21WemIyeDJaVVpzYjNkRGIyeHNaV04wYVc5dUlIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2FYTk9iMlJsSUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdlUyTmhiR0Z5TG1wekp6dGNibWx0Y0c5eWRDQjdJRmxCVFV4TllYQWdmU0JtY205dElDY3VMaTl1YjJSbGN5OVpRVTFNVFdGd0xtcHpKenRjYm1sdGNHOXlkQ0I3SUZsQlRVeFRaWEVnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlaUVUxTVUyVnhMbXB6Snp0Y2JtbHRjRzl5ZENCN0lISmxjMjlzZG1WQ2JHOWphMDFoY0NCOUlHWnliMjBnSnk0dmNtVnpiMngyWlMxaWJHOWpheTF0WVhBdWFuTW5PMXh1YVcxd2IzSjBJSHNnY21WemIyeDJaVUpzYjJOclUyVnhJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMV0pzYjJOckxYTmxjUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnlaWE52YkhabFJteHZkME52Ykd4bFkzUnBiMjRnZlNCbWNtOXRJQ2N1TDNKbGMyOXNkbVV0Wm14dmR5MWpiMnhzWldOMGFXOXVMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdjbVZ6YjJ4MlpVTnZiR3hsWTNScGIyNG9RMDRzSUdOMGVDd2dkRzlyWlc0c0lHOXVSWEp5YjNJc0lIUmhaMDVoYldVc0lIUmhaeWtnZTF4dUlDQWdJR052Ym5OMElHTnZiR3dnUFNCMGIydGxiaTUwZVhCbElEMDlQU0FuWW14dlkyc3RiV0Z3SjF4dUlDQWdJQ0FnSUNBL0lISmxjMjlzZG1WQ2JHOWphMDFoY0NoRFRpd2dZM1I0TENCMGIydGxiaXdnYjI1RmNuSnZjaXdnZEdGbktWeHVJQ0FnSUNBZ0lDQTZJSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZGliRzlqYXkxelpYRW5YRzRnSUNBZ0lDQWdJQ0FnSUNBL0lISmxjMjlzZG1WQ2JHOWphMU5sY1NoRFRpd2dZM1I0TENCMGIydGxiaXdnYjI1RmNuSnZjaXdnZEdGbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCeVpYTnZiSFpsUm14dmQwTnZiR3hsWTNScGIyNG9RMDRzSUdOMGVDd2dkRzlyWlc0c0lHOXVSWEp5YjNJc0lIUmhaeWs3WEc0Z0lDQWdZMjl1YzNRZ1EyOXNiQ0E5SUdOdmJHd3VZMjl1YzNSeWRXTjBiM0k3WEc0Z0lDQWdMeThnU1dZZ2QyVWdaMjkwSUdFZ2RHRm5UbUZ0WlNCdFlYUmphR2x1WnlCMGFHVWdZMnhoYzNNc0lHOXlJSFJvWlNCMFlXY2dibUZ0WlNCcGN5QW5JU2NzWEc0Z0lDQWdMeThnZEdobGJpQjFjMlVnZEdobElIUmhaMDVoYldVZ1puSnZiU0IwYUdVZ2JtOWtaU0JqYkdGemN5QjFjMlZrSUhSdklHTnlaV0YwWlNCcGRDNWNiaUFnSUNCcFppQW9kR0ZuVG1GdFpTQTlQVDBnSnlFbklIeDhJSFJoWjA1aGJXVWdQVDA5SUVOdmJHd3VkR0ZuVG1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JqYjJ4c0xuUmhaeUE5SUVOdmJHd3VkR0ZuVG1GdFpUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHTnZiR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2gwWVdkT1lXMWxLVnh1SUNBZ0lDQWdJQ0JqYjJ4c0xuUmhaeUE5SUhSaFowNWhiV1U3WEc0Z0lDQWdjbVYwZFhKdUlHTnZiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmpiMjF3YjNObFEyOXNiR1ZqZEdsdmJpaERUaXdnWTNSNExDQjBiMnRsYml3Z2NISnZjSE1zSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0JqYjI1emRDQjBZV2RVYjJ0bGJpQTlJSEJ5YjNCekxuUmhaenRjYmlBZ0lDQmpiMjV6ZENCMFlXZE9ZVzFsSUQwZ0lYUmhaMVJ2YTJWdVhHNGdJQ0FnSUNBZ0lEOGdiblZzYkZ4dUlDQWdJQ0FnSUNBNklHTjBlQzVrYVhKbFkzUnBkbVZ6TG5SaFowNWhiV1VvZEdGblZHOXJaVzR1YzI5MWNtTmxMQ0J0YzJjZ1BUNGdiMjVGY25KdmNpaDBZV2RVYjJ0bGJpd2dKMVJCUjE5U1JWTlBURlpGWDBaQlNVeEZSQ2NzSUcxelp5a3BPMXh1SUNBZ0lHbG1JQ2gwYjJ0bGJpNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGMyVnhKeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUdGdVkyaHZjaXdnYm1WM2JHbHVaVUZtZEdWeVVISnZjRG9nYm13Z2ZTQTlJSEJ5YjNCek8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCc1lYTjBVSEp2Y0NBOUlHRnVZMmh2Y2lBbUppQjBZV2RVYjJ0bGJseHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCaGJtTm9iM0l1YjJabWMyVjBJRDRnZEdGblZHOXJaVzR1YjJabWMyVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJoYm1Ob2IzSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJSFJoWjFSdmEyVnVYRzRnSUNBZ0lDQWdJQ0FnSUNBNklDaGhibU5vYjNJZ1B6OGdkR0ZuVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHRnpkRkJ5YjNBZ0ppWWdLQ0Z1YkNCOGZDQnViQzV2Wm1aelpYUWdQQ0JzWVhOMFVISnZjQzV2Wm1aelpYUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ0owMXBjM05wYm1jZ2JtVjNiR2x1WlNCaFpuUmxjaUJpYkc5amF5QnpaWEYxWlc1alpTQndjbTl3Y3ljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR3hoYzNSUWNtOXdMQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2diV1Z6YzJGblpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnWlhod1ZIbHdaU0E5SUhSdmEyVnVMblI1Y0dVZ1BUMDlJQ2RpYkc5amF5MXRZWEFuWEc0Z0lDQWdJQ0FnSUQ4Z0oyMWhjQ2RjYmlBZ0lDQWdJQ0FnT2lCMGIydGxiaTUwZVhCbElEMDlQU0FuWW14dlkyc3RjMlZ4SjF4dUlDQWdJQ0FnSUNBZ0lDQWdQeUFuYzJWeEoxeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCMGIydGxiaTV6ZEdGeWRDNXpiM1Z5WTJVZ1BUMDlJQ2Q3SjF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z0oyMWhjQ2RjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUNkelpYRW5PMXh1SUNBZ0lDOHZJSE5vYjNKMFkzVjBPaUJqYUdWamF5QnBaaUJwZENkeklHRWdaMlZ1WlhKcFl5QlpRVTFNVFdGd0lHOXlJRmxCVFV4VFpYRmNiaUFnSUNBdkx5QmlaV1p2Y21VZ2FuVnRjR2x1WnlCcGJuUnZJSFJvWlNCamRYTjBiMjBnZEdGbklHeHZaMmxqTGx4dUlDQWdJR2xtSUNnaGRHRm5WRzlyWlc0Z2ZIeGNiaUFnSUNBZ0lDQWdJWFJoWjA1aGJXVWdmSHhjYmlBZ0lDQWdJQ0FnZEdGblRtRnRaU0E5UFQwZ0p5RW5JSHg4WEc0Z0lDQWdJQ0FnSUNoMFlXZE9ZVzFsSUQwOVBTQlpRVTFNVFdGd0xuUmhaMDVoYldVZ0ppWWdaWGh3Vkhsd1pTQTlQVDBnSjIxaGNDY3BJSHg4WEc0Z0lDQWdJQ0FnSUNoMFlXZE9ZVzFsSUQwOVBTQlpRVTFNVTJWeExuUmhaMDVoYldVZ0ppWWdaWGh3Vkhsd1pTQTlQVDBnSjNObGNTY3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOdmJIWmxRMjlzYkdWamRHbHZiaWhEVGl3Z1kzUjRMQ0IwYjJ0bGJpd2diMjVGY25KdmNpd2dkR0ZuVG1GdFpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUd4bGRDQjBZV2NnUFNCamRIZ3VjMk5vWlcxaExuUmhaM011Wm1sdVpDaDBJRDArSUhRdWRHRm5JRDA5UFNCMFlXZE9ZVzFsSUNZbUlIUXVZMjlzYkdWamRHbHZiaUE5UFQwZ1pYaHdWSGx3WlNrN1hHNGdJQ0FnYVdZZ0tDRjBZV2NwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYTNRZ1BTQmpkSGd1YzJOb1pXMWhMbXR1YjNkdVZHRm5jMXQwWVdkT1lXMWxYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHdDBJQ1ltSUd0MExtTnZiR3hsWTNScGIyNGdQVDA5SUdWNGNGUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR04wZUM1elkyaGxiV0V1ZEdGbmN5NXdkWE5vS0U5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUd0MExDQjdJR1JsWm1GMWJIUTZJR1poYkhObElIMHBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhaeUE5SUd0ME8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHdDBQeTVqYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMFlXZFViMnRsYml3Z0owSkJSRjlEVDB4TVJVTlVTVTlPWDFSWlVFVW5MQ0JnSkh0cmRDNTBZV2Q5SUhWelpXUWdabTl5SUNSN1pYaHdWSGx3WlgwZ1kyOXNiR1ZqZEdsdmJpd2dZblYwSUdWNGNHVmpkSE1nSkh0cmRDNWpiMnhzWldOMGFXOXVmV0FzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDBZV2RVYjJ0bGJpd2dKMVJCUjE5U1JWTlBURlpGWDBaQlNVeEZSQ2NzSUdCVmJuSmxjMjlzZG1Wa0lIUmhaem9nSkh0MFlXZE9ZVzFsZldBc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMyOXNkbVZEYjJ4c1pXTjBhVzl1S0VOT0xDQmpkSGdzSUhSdmEyVnVMQ0J2YmtWeWNtOXlMQ0IwWVdkT1lXMWxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCamIyeHNJRDBnY21WemIyeDJaVU52Ykd4bFkzUnBiMjRvUTA0c0lHTjBlQ3dnZEc5clpXNHNJRzl1UlhKeWIzSXNJSFJoWjA1aGJXVXNJSFJoWnlrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ2RHRm5MbkpsYzI5c2RtVS9MaWhqYjJ4c0xDQnRjMmNnUFQ0Z2IyNUZjbkp2Y2loMFlXZFViMnRsYml3Z0oxUkJSMTlTUlZOUFRGWkZYMFpCU1V4RlJDY3NJRzF6Wnlrc0lHTjBlQzV2Y0hScGIyNXpLU0EvUHlCamIyeHNPMXh1SUNBZ0lHTnZibk4wSUc1dlpHVWdQU0JwYzA1dlpHVW9jbVZ6S1Z4dUlDQWdJQ0FnSUNBL0lISmxjMXh1SUNBZ0lDQWdJQ0E2SUc1bGR5QlRZMkZzWVhJb2NtVnpLVHRjYmlBZ0lDQnViMlJsTG5KaGJtZGxJRDBnWTI5c2JDNXlZVzVuWlR0Y2JpQWdJQ0J1YjJSbExuUmhaeUE5SUhSaFowNWhiV1U3WEc0Z0lDQWdhV1lnS0hSaFp6OHVabTl5YldGMEtWeHVJQ0FnSUNBZ0lDQnViMlJsTG1admNtMWhkQ0E5SUhSaFp5NW1iM0p0WVhRN1hHNGdJQ0FnY21WMGRYSnVJRzV2WkdVN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdOdmJYQnZjMlZEYjJ4c1pXTjBhVzl1SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnVTJOaGJHRnlJSDBnWm5KdmJTQW5MaTR2Ym05a1pYTXZVMk5oYkdGeUxtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2NtVnpiMngyWlVKc2IyTnJVMk5oYkdGeUtHTjBlQ3dnYzJOaGJHRnlMQ0J2YmtWeWNtOXlLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MzUmhjblFnUFNCelkyRnNZWEl1YjJabWMyVjBPMXh1SUNBZ0lHTnZibk4wSUdobFlXUmxjaUE5SUhCaGNuTmxRbXh2WTJ0VFkyRnNZWEpJWldGa1pYSW9jMk5oYkdGeUxDQmpkSGd1YjNCMGFXOXVjeTV6ZEhKcFkzUXNJRzl1UlhKeWIzSXBPMXh1SUNBZ0lHbG1JQ2doYUdWaFpHVnlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIyWVd4MVpUb2dKeWNzSUhSNWNHVTZJRzUxYkd3c0lHTnZiVzFsYm5RNklDY25MQ0J5WVc1blpUb2dXM04wWVhKMExDQnpkR0Z5ZEN3Z2MzUmhjblJkSUgwN1hHNGdJQ0FnWTI5dWMzUWdkSGx3WlNBOUlHaGxZV1JsY2k1dGIyUmxJRDA5UFNBblBpY2dQeUJUWTJGc1lYSXVRa3hQUTB0ZlJrOU1SRVZFSURvZ1UyTmhiR0Z5TGtKTVQwTkxYMHhKVkVWU1FVdzdYRzRnSUNBZ1kyOXVjM1FnYkdsdVpYTWdQU0J6WTJGc1lYSXVjMjkxY21ObElEOGdjM0JzYVhSTWFXNWxjeWh6WTJGc1lYSXVjMjkxY21ObEtTQTZJRnRkTzF4dUlDQWdJQzh2SUdSbGRHVnliV2x1WlNCMGFHVWdaVzVrSUc5bUlHTnZiblJsYm5RZ0ppQnpkR0Z5ZENCdlppQmphRzl0Y0dsdVoxeHVJQ0FnSUd4bGRDQmphRzl0Y0ZOMFlYSjBJRDBnYkdsdVpYTXViR1Z1WjNSb08xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQnNhVzVsY3k1c1pXNW5kR2dnTFNBeE95QnBJRDQ5SURBN0lDMHRhU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JqYjI1MFpXNTBJRDBnYkdsdVpYTmJhVjFiTVYwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqYjI1MFpXNTBJRDA5UFNBbkp5QjhmQ0JqYjI1MFpXNTBJRDA5UFNBblhGeHlKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9iMjF3VTNSaGNuUWdQU0JwTzF4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQjlYRzRnSUNBZ0x5OGdjMmh2Y25SamRYUWdabTl5SUdWdGNIUjVJR052Ym5SbGJuUnpYRzRnSUNBZ2FXWWdLR05vYjIxd1UzUmhjblFnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzZFdVZ1BTQm9aV0ZrWlhJdVkyaHZiWEFnUFQwOUlDY3JKeUFtSmlCc2FXNWxjeTVzWlc1bmRHZ2dQaUF3WEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JQ2RjWEc0bkxuSmxjR1ZoZENoTllYUm9MbTFoZUNneExDQnNhVzVsY3k1c1pXNW5kR2dnTFNBeEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ0p5YzdYRzRnSUNBZ0lDQWdJR3hsZENCbGJtUWdQU0J6ZEdGeWRDQXJJR2hsWVdSbGNpNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6WTJGc1lYSXVjMjkxY21ObEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0lDczlJSE5qWVd4aGNpNXpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCMllXeDFaU3dnZEhsd1pTd2dZMjl0YldWdWREb2dhR1ZoWkdWeUxtTnZiVzFsYm5Rc0lISmhibWRsT2lCYmMzUmhjblFzSUdWdVpDd2daVzVrWFNCOU8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCbWFXNWtJSFJvWlNCcGJtUmxiblJoZEdsdmJpQnNaWFpsYkNCMGJ5QjBjbWx0SUdaeWIyMGdjM1JoY25SY2JpQWdJQ0JzWlhRZ2RISnBiVWx1WkdWdWRDQTlJSE5qWVd4aGNpNXBibVJsYm5RZ0t5Qm9aV0ZrWlhJdWFXNWtaVzUwTzF4dUlDQWdJR3hsZENCdlptWnpaWFFnUFNCelkyRnNZWEl1YjJabWMyVjBJQ3NnYUdWaFpHVnlMbXhsYm1kMGFEdGNiaUFnSUNCc1pYUWdZMjl1ZEdWdWRGTjBZWEowSUQwZ01EdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHTm9iMjF3VTNSaGNuUTdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCYmFXNWtaVzUwTENCamIyNTBaVzUwWFNBOUlHeHBibVZ6VzJsZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWTI5dWRHVnVkQ0E5UFQwZ0p5Y2dmSHdnWTI5dWRHVnVkQ0E5UFQwZ0oxeGNjaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNob1pXRmtaWEl1YVc1a1pXNTBJRDA5UFNBd0lDWW1JR2x1WkdWdWRDNXNaVzVuZEdnZ1BpQjBjbWx0U1c1a1pXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ5YVcxSmJtUmxiblFnUFNCcGJtUmxiblF1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x1WkdWdWRDNXNaVzVuZEdnZ1BDQjBjbWx0U1c1a1pXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV1Z6YzJGblpTQTlJQ2RDYkc5amF5QnpZMkZzWVhKeklIZHBkR2dnYlc5eVpTMXBibVJsYm5SbFpDQnNaV0ZrYVc1bklHVnRjSFI1SUd4cGJtVnpJRzExYzNRZ2RYTmxJR0Z1SUdWNGNHeHBZMmwwSUdsdVpHVnVkR0YwYVc5dUlHbHVaR2xqWVhSdmNpYzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaHZabVp6WlhRZ0t5QnBibVJsYm5RdWJHVnVaM1JvTENBblRVbFRVMGxPUjE5RFNFRlNKeXdnYldWemMyRm5aU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hR1ZoWkdWeUxtbHVaR1Z1ZENBOVBUMGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwY21sdFNXNWtaVzUwSUQwZ2FXNWtaVzUwTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJsYm5SVGRHRnlkQ0E5SUdrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RISnBiVWx1WkdWdWRDQTlQVDBnTUNBbUppQWhZM1I0TG1GMFVtOXZkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFsYzNOaFoyVWdQU0FuUW14dlkyc2djMk5oYkdGeUlIWmhiSFZsY3lCcGJpQmpiMnhzWldOMGFXOXVjeUJ0ZFhOMElHSmxJR2x1WkdWdWRHVmtKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLRzltWm5ObGRDd2dKMEpCUkY5SlRrUkZUbFFuTENCdFpYTnpZV2RsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHOW1abk5sZENBclBTQnBibVJsYm5RdWJHVnVaM1JvSUNzZ1kyOXVkR1Z1ZEM1c1pXNW5kR2dnS3lBeE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCcGJtTnNkV1JsSUhSeVlXbHNhVzVuSUcxdmNtVXRhVzVrWlc1MFpXUWdaVzF3ZEhrZ2JHbHVaWE1nYVc0Z1kyOXVkR1Z1ZEZ4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCc2FXNWxjeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJR05vYjIxd1UzUmhjblE3SUMwdGFTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaWE5iYVYxYk1GMHViR1Z1WjNSb0lENGdkSEpwYlVsdVpHVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9iMjF3VTNSaGNuUWdQU0JwSUNzZ01UdGNiaUFnSUNCOVhHNGdJQ0FnYkdWMElIWmhiSFZsSUQwZ0p5YzdYRzRnSUNBZ2JHVjBJSE5sY0NBOUlDY25PMXh1SUNBZ0lHeGxkQ0J3Y21WMlRXOXlaVWx1WkdWdWRHVmtJRDBnWm1Gc2MyVTdYRzRnSUNBZ0x5OGdiR1ZoWkdsdVp5QjNhR2wwWlhOd1lXTmxJR2x6SUd0bGNIUWdhVzUwWVdOMFhHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCamIyNTBaVzUwVTNSaGNuUTdJQ3NyYVNsY2JpQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ2JHbHVaWE5iYVYxYk1GMHVjMnhwWTJVb2RISnBiVWx1WkdWdWRDa2dLeUFuWEZ4dUp6dGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdZMjl1ZEdWdWRGTjBZWEowT3lCcElEd2dZMmh2YlhCVGRHRnlkRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJR3hsZENCYmFXNWtaVzUwTENCamIyNTBaVzUwWFNBOUlHeHBibVZ6VzJsZE8xeHVJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdhVzVrWlc1MExteGxibWQwYUNBcklHTnZiblJsYm5RdWJHVnVaM1JvSUNzZ01UdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kzSnNaaUE5SUdOdmJuUmxiblJiWTI5dWRHVnVkQzVzWlc1bmRHZ2dMU0F4WFNBOVBUMGdKMXhjY2ljN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqY214bUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHVnVkQ0E5SUdOdmJuUmxiblF1YzJ4cFkyVW9NQ3dnTFRFcE8xeHVJQ0FnSUNBZ0lDQXZLaUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdhV1lnWVd4eVpXRmtlU0JqWVhWbmFIUWdhVzRnYkdWNFpYSWdLaTljYmlBZ0lDQWdJQ0FnYVdZZ0tHTnZiblJsYm5RZ0ppWWdhVzVrWlc1MExteGxibWQwYUNBOElIUnlhVzFKYm1SbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOeVl5QTlJR2hsWVdSbGNpNXBibVJsYm5SY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lDZGxlSEJzYVdOcGRDQnBibVJsYm5SaGRHbHZiaUJwYm1ScFkyRjBiM0luWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lBblptbHljM1FnYkdsdVpTYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WlhOellXZGxJRDBnWUVKc2IyTnJJSE5qWVd4aGNpQnNhVzVsY3lCdGRYTjBJRzV2ZENCaVpTQnNaWE56SUdsdVpHVnVkR1ZrSUhSb1lXNGdkR2hsYVhJZ0pIdHpjbU45WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9iMlptYzJWMElDMGdZMjl1ZEdWdWRDNXNaVzVuZEdnZ0xTQW9ZM0pzWmlBL0lESWdPaUF4S1N3Z0owSkJSRjlKVGtSRlRsUW5MQ0J0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZENBOUlDY25PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBlWEJsSUQwOVBTQlRZMkZzWVhJdVFreFBRMHRmVEVsVVJWSkJUQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVZ0t6MGdjMlZ3SUNzZ2FXNWtaVzUwTG5Oc2FXTmxLSFJ5YVcxSmJtUmxiblFwSUNzZ1kyOXVkR1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sY0NBOUlDZGNYRzRuTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbHVaR1Z1ZEM1c1pXNW5kR2dnUGlCMGNtbHRTVzVrWlc1MElIeDhJR052Ym5SbGJuUmJNRjBnUFQwOUlDZGNYSFFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCdGIzSmxMV2x1WkdWdWRHVmtJR052Ym5SbGJuUWdkMmwwYUdsdUlHRWdabTlzWkdWa0lHSnNiMk5yWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzJWd0lEMDlQU0FuSUNjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVndJRDBnSjF4Y2JpYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNnaGNISmxkazF2Y21WSmJtUmxiblJsWkNBbUppQnpaWEFnUFQwOUlDZGNYRzRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJQ2RjWEc1Y1hHNG5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ2MyVndJQ3NnYVc1a1pXNTBMbk5zYVdObEtIUnlhVzFKYm1SbGJuUXBJQ3NnWTI5dWRHVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNkY1hHNG5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NISmxkazF2Y21WSmJtUmxiblJsWkNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyOXVkR1Z1ZENBOVBUMGdKeWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUdWdGNIUjVJR3hwYm1WY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoelpYQWdQVDA5SUNkY1hHNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElDczlJQ2RjWEc0bk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNkY1hHNG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ2MyVndJQ3NnWTI5dWRHVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNjZ0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUhCeVpYWk5iM0psU1c1a1pXNTBaV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnpkMmwwWTJnZ0tHaGxZV1JsY2k1amFHOXRjQ2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJQ2N0SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjckp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQmphRzl0Y0ZOMFlYSjBPeUJwSUR3Z2JHbHVaWE11YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ0oxeGNiaWNnS3lCc2FXNWxjMXRwWFZzd1hTNXpiR2xqWlNoMGNtbHRTVzVrWlc1MEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlZ0MllXeDFaUzVzWlc1bmRHZ2dMU0F4WFNBaFBUMGdKMXhjYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ0oxeGNiaWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElDczlJQ2RjWEc0bk8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQmxibVFnUFNCemRHRnlkQ0FySUdobFlXUmxjaTVzWlc1bmRHZ2dLeUJ6WTJGc1lYSXVjMjkxY21ObExteGxibWQwYUR0Y2JpQWdJQ0J5WlhSMWNtNGdleUIyWVd4MVpTd2dkSGx3WlN3Z1kyOXRiV1Z1ZERvZ2FHVmhaR1Z5TG1OdmJXMWxiblFzSUhKaGJtZGxPaUJiYzNSaGNuUXNJR1Z1WkN3Z1pXNWtYU0I5TzF4dWZWeHVablZ1WTNScGIyNGdjR0Z5YzJWQ2JHOWphMU5qWVd4aGNraGxZV1JsY2loN0lHOW1abk5sZEN3Z2NISnZjSE1nZlN3Z2MzUnlhV04wTENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUdsbUlITm9iM1ZzWkNCdWIzUWdhR0Z3Y0dWdUlDb3ZYRzRnSUNBZ2FXWWdLSEJ5YjNCeld6QmRMblI1Y0dVZ0lUMDlJQ2RpYkc5amF5MXpZMkZzWVhJdGFHVmhaR1Z5SnlrZ2UxeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIQnliM0J6V3pCZExDQW5TVTFRVDFOVFNVSk1SU2NzSUNkQ2JHOWpheUJ6WTJGc1lYSWdhR1ZoWkdWeUlHNXZkQ0JtYjNWdVpDY3BPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2V5QnpiM1Z5WTJVZ2ZTQTlJSEJ5YjNCeld6QmRPMXh1SUNBZ0lHTnZibk4wSUcxdlpHVWdQU0J6YjNWeVkyVmJNRjA3WEc0Z0lDQWdiR1YwSUdsdVpHVnVkQ0E5SURBN1hHNGdJQ0FnYkdWMElHTm9iMjF3SUQwZ0p5YzdYRzRnSUNBZ2JHVjBJR1Z5Y205eUlEMGdMVEU3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURFN0lHa2dQQ0J6YjNWeVkyVXViR1Z1WjNSb095QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJnZ1BTQnpiM1Z5WTJWYmFWMDdYRzRnSUNBZ0lDQWdJR2xtSUNnaFkyaHZiWEFnSmlZZ0tHTm9JRDA5UFNBbkxTY2dmSHdnWTJnZ1BUMDlJQ2NySnlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYUc5dGNDQTlJR05vTzF4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUc0Z1BTQk9kVzFpWlhJb1kyZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZwYm1SbGJuUWdKaVlnYmlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxiblFnUFNCdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWlhKeWIzSWdQVDA5SUMweEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnljbTl5SUQwZ2IyWm1jMlYwSUNzZ2FUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCcFppQW9aWEp5YjNJZ0lUMDlJQzB4S1Z4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0dWeWNtOXlMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUdCQ2JHOWpheUJ6WTJGc1lYSWdhR1ZoWkdWeUlHbHVZMngxWkdWeklHVjRkSEpoSUdOb1lYSmhZM1JsY25NNklDUjdjMjkxY21ObGZXQXBPMXh1SUNBZ0lHeGxkQ0JvWVhOVGNHRmpaU0E5SUdaaGJITmxPMXh1SUNBZ0lHeGxkQ0JqYjIxdFpXNTBJRDBnSnljN1hHNGdJQ0FnYkdWMElHeGxibWQwYUNBOUlITnZkWEpqWlM1c1pXNW5kR2c3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURFN0lHa2dQQ0J3Y205d2N5NXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJSEJ5YjNCelcybGRPMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFJ2YTJWdUxuUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTndZV05sSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1lYTlRjR0ZqWlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJtWVd4c2RHaHliM1ZuYUZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJtVjNiR2x1WlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUNzOUlIUnZhMlZ1TG5OdmRYSmpaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGpiMjF0Wlc1MEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNSeWFXTjBJQ1ltSUNGb1lYTlRjR0ZqWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdKME52YlcxbGJuUnpJRzExYzNRZ1ltVWdjMlZ3WVhKaGRHVmtJR1p5YjIwZ2IzUm9aWElnZEc5clpXNXpJR0o1SUhkb2FYUmxJSE53WVdObElHTm9ZWEpoWTNSbGNuTW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hSdmEyVnVMQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2diV1Z6YzJGblpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQXJQU0IwYjJ0bGJpNXpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblFnUFNCMGIydGxiaTV6YjNWeVkyVXVjM1ZpYzNSeWFXNW5LREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWlhKeWIzSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kRzlyWlc0c0lDZFZUa1ZZVUVWRFZFVkVYMVJQUzBWT0p5d2dkRzlyWlc0dWJXVnpjMkZuWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUNzOUlIUnZhMlZ1TG5OdmRYSmpaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnYm1WNGRDQnphRzkxYkdRZ2JtOTBJR2hoY0hCbGJpQXFMMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCZ1ZXNWxlSEJsWTNSbFpDQjBiMnRsYmlCcGJpQmliRzlqYXlCelkyRnNZWElnYUdWaFpHVnlPaUFrZTNSdmEyVnVMblI1Y0dWOVlEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIUnZhMlZ1TENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHMWxjM05oWjJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSeklEMGdkRzlyWlc0dWMyOTFjbU5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBjeUFtSmlCMGVYQmxiMllnZEhNZ1BUMDlJQ2R6ZEhKcGJtY25LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnS3owZ2RITXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdJRzF2WkdVc0lHbHVaR1Z1ZEN3Z1kyaHZiWEFzSUdOdmJXMWxiblFzSUd4bGJtZDBhQ0I5TzF4dWZWeHVMeW9xSUVCeVpYUjFjbTV6SUVGeWNtRjVJRzltSUd4cGJtVnpJSE53YkdsMElIVndJR0Z6SUdCYmFXNWtaVzUwTENCamIyNTBaVzUwWFdBZ0tpOWNibVoxYm1OMGFXOXVJSE53YkdsMFRHbHVaWE1vYzI5MWNtTmxLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MzQnNhWFFnUFNCemIzVnlZMlV1YzNCc2FYUW9MMXhjYmlnZ0tpa3ZLVHRjYmlBZ0lDQmpiMjV6ZENCbWFYSnpkQ0E5SUhOd2JHbDBXekJkTzF4dUlDQWdJR052Ym5OMElHMGdQU0JtYVhKemRDNXRZWFJqYUNndlhpZ2dLaWt2S1R0Y2JpQWdJQ0JqYjI1emRDQnNhVzVsTUNBOUlHMC9MbHN4WFZ4dUlDQWdJQ0FnSUNBL0lGdHRXekZkTENCbWFYSnpkQzV6YkdsalpTaHRXekZkTG14bGJtZDBhQ2xkWEc0Z0lDQWdJQ0FnSURvZ1d5Y25MQ0JtYVhKemRGMDdYRzRnSUNBZ1kyOXVjM1FnYkdsdVpYTWdQU0JiYkdsdVpUQmRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F4T3lCcElEd2djM0JzYVhRdWJHVnVaM1JvT3lCcElDczlJRElwWEc0Z0lDQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb1czTndiR2wwVzJsZExDQnpjR3hwZEZ0cElDc2dNVjFkS1R0Y2JpQWdJQ0J5WlhSMWNtNGdiR2x1WlhNN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUhKbGMyOXNkbVZDYkc5amExTmpZV3hoY2lCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUZOallXeGhjaUI5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMU5qWVd4aGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCeVpYTnZiSFpsUlc1a0lIMGdabkp2YlNBbkxpOXlaWE52YkhabExXVnVaQzVxY3ljN1hHNWNibVoxYm1OMGFXOXVJSEpsYzI5c2RtVkdiRzkzVTJOaGJHRnlLSE5qWVd4aGNpd2djM1J5YVdOMExDQnZia1Z5Y205eUtTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCdlptWnpaWFFzSUhSNWNHVXNJSE52ZFhKalpTd2daVzVrSUgwZ1BTQnpZMkZzWVhJN1hHNGdJQ0FnYkdWMElGOTBlWEJsTzF4dUlDQWdJR3hsZENCMllXeDFaVHRjYmlBZ0lDQmpiMjV6ZENCZmIyNUZjbkp2Y2lBOUlDaHlaV3dzSUdOdlpHVXNJRzF6WnlrZ1BUNGdiMjVGY25KdmNpaHZabVp6WlhRZ0t5QnlaV3dzSUdOdlpHVXNJRzF6WnlrN1hHNGdJQ0FnYzNkcGRHTm9JQ2gwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJR05oYzJVZ0ozTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JmZEhsd1pTQTlJRk5qWVd4aGNpNVFURUZKVGp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdjR3hoYVc1V1lXeDFaU2h6YjNWeVkyVXNJRjl2YmtWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2R6YVc1bmJHVXRjWFZ2ZEdWa0xYTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JmZEhsd1pTQTlJRk5qWVd4aGNpNVJWVTlVUlY5VFNVNUhURVU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlITnBibWRzWlZGMWIzUmxaRlpoYkhWbEtITnZkWEpqWlN3Z1gyOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJR05oYzJVZ0oyUnZkV0pzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lGOTBlWEJsSUQwZ1UyTmhiR0Z5TGxGVlQxUkZYMFJQVlVKTVJUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDBnWkc5MVlteGxVWFZ2ZEdWa1ZtRnNkV1VvYzI5MWNtTmxMQ0JmYjI1RmNuSnZjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHNWxlSFFnYzJodmRXeGtJRzV2ZENCb1lYQndaVzRnS2k5Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9jMk5oYkdGeUxDQW5WVTVGV0ZCRlExUkZSRjlVVDB0RlRpY3NJR0JGZUhCbFkzUmxaQ0JoSUdac2IzY2djMk5oYkdGeUlIWmhiSFZsTENCaWRYUWdabTkxYm1RNklDUjdkSGx3WlgxZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJQ2NuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXRiV1Z1ZERvZ0p5Y3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbUZ1WjJVNklGdHZabVp6WlhRc0lHOW1abk5sZENBcklITnZkWEpqWlM1c1pXNW5kR2dzSUc5bVpuTmxkQ0FySUhOdmRYSmpaUzVzWlc1bmRHaGRYRzRnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQjJZV3gxWlVWdVpDQTlJRzltWm5ObGRDQXJJSE52ZFhKalpTNXNaVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdjbVVnUFNCeVpYTnZiSFpsUlc1a0tHVnVaQ3dnZG1Gc2RXVkZibVFzSUhOMGNtbGpkQ3dnYjI1RmNuSnZjaWs3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lIUjVjR1U2SUY5MGVYQmxMRnh1SUNBZ0lDQWdJQ0JqYjIxdFpXNTBPaUJ5WlM1amIyMXRaVzUwTEZ4dUlDQWdJQ0FnSUNCeVlXNW5aVG9nVzI5bVpuTmxkQ3dnZG1Gc2RXVkZibVFzSUhKbExtOW1abk5sZEYxY2JpQWdJQ0I5TzF4dWZWeHVablZ1WTNScGIyNGdjR3hoYVc1V1lXeDFaU2h6YjNWeVkyVXNJRzl1UlhKeWIzSXBJSHRjYmlBZ0lDQnNaWFFnWW1Ga1EyaGhjaUE5SUNjbk8xeHVJQ0FnSUhOM2FYUmphQ0FvYzI5MWNtTmxXekJkS1NCN1hHNGdJQ0FnSUNBZ0lDOHFJR2x6ZEdGdVluVnNJR2xuYm05eVpTQnVaWGgwSUhOb2IzVnNaQ0J1YjNRZ2FHRndjR1Z1SUNvdlhHNGdJQ0FnSUNBZ0lHTmhjMlVnSjF4Y2RDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCaVlXUkRhR0Z5SUQwZ0oyRWdkR0ZpSUdOb1lYSmhZM1JsY2ljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNBbkxDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCaVlXUkRhR0Z5SUQwZ0oyWnNiM2NnYVc1a2FXTmhkRzl5SUdOb1lYSmhZM1JsY2lBc0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JqWVhObElDY2xKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHSmhaRU5vWVhJZ1BTQW5aR2x5WldOMGFYWmxJR2x1WkdsallYUnZjaUJqYUdGeVlXTjBaWElnSlNjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNBbmZDYzZYRzRnSUNBZ0lDQWdJR05oYzJVZ0p6NG5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmlZV1JEYUdGeUlEMGdZR0pzYjJOcklITmpZV3hoY2lCcGJtUnBZMkYwYjNJZ0pIdHpiM1Z5WTJWYk1GMTlZRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTmhjMlVnSjBBbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNkZ0p6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ltRmtRMmhoY2lBOUlHQnlaWE5sY25abFpDQmphR0Z5WVdOMFpYSWdKSHR6YjNWeVkyVmJNRjE5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGlZV1JEYUdGeUtWeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtEQXNJQ2RDUVVSZlUwTkJURUZTWDFOVVFWSlVKeXdnWUZCc1lXbHVJSFpoYkhWbElHTmhibTV2ZENCemRHRnlkQ0IzYVhSb0lDUjdZbUZrUTJoaGNuMWdLVHRjYmlBZ0lDQnlaWFIxY200Z1ptOXNaRXhwYm1WektITnZkWEpqWlNrN1hHNTlYRzVtZFc1amRHbHZiaUJ6YVc1bmJHVlJkVzkwWldSV1lXeDFaU2h6YjNWeVkyVXNJRzl1UlhKeWIzSXBJSHRjYmlBZ0lDQnBaaUFvYzI5MWNtTmxXM052ZFhKalpTNXNaVzVuZEdnZ0xTQXhYU0FoUFQwZ1hDSW5YQ0lnZkh3Z2MyOTFjbU5sTG14bGJtZDBhQ0E5UFQwZ01TbGNiaUFnSUNBZ0lDQWdiMjVGY25KdmNpaHpiM1Z5WTJVdWJHVnVaM1JvTENBblRVbFRVMGxPUjE5RFNFRlNKeXdnWENKTmFYTnphVzVuSUdOc2IzTnBibWNnSjNGMWIzUmxYQ0lwTzF4dUlDQWdJSEpsZEhWeWJpQm1iMnhrVEdsdVpYTW9jMjkxY21ObExuTnNhV05sS0RFc0lDMHhLU2t1Y21Wd2JHRmpaU2d2Snljdlp5d2dYQ0luWENJcE8xeHVmVnh1Wm5WdVkzUnBiMjRnWm05c1pFeHBibVZ6S0hOdmRYSmpaU2tnZTF4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnVaV2RoZEdsMlpTQnNiMjlyWW1Wb2FXNWtJR2hsY21VZ1lXNWtJR2x1SUhSb1pTQmdjbVZnSUZKbFowVjRjQ0JwY3lCMGIxeHVJQ0FnSUNBcUlIQnlaWFpsYm5RZ1kyRjFjMmx1WnlCaElIQnZiSGx1YjIxcFlXd2djMlZoY21Ob0lIUnBiV1VnYVc0Z1kyVnlkR0ZwYmlCallYTmxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRlJvWlNCMGNua3RZMkYwWTJnZ2FYTWdabTl5SUZOaFptRnlhU3dnZDJocFkyZ2daRzlsYzI0bmRDQnpkWEJ3YjNKMElIUm9hWE1nZVdWME9seHVJQ0FnSUNBcUlHaDBkSEJ6T2k4dlkyRnVhWFZ6WlM1amIyMHZhbk10Y21WblpYaHdMV3h2YjJ0aVpXaHBibVJjYmlBZ0lDQWdLaTljYmlBZ0lDQnNaWFFnWm1seWMzUXNJR3hwYm1VN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdabWx5YzNRZ1BTQnVaWGNnVW1WblJYaHdLQ2NvTGlvL0tTZy9QQ0ZiSUZ4Y2RGMHBXeUJjWEhSZEtseGNjajljWEc0bkxDQW5jM2tuS1R0Y2JpQWdJQ0FnSUNBZ2JHbHVaU0E5SUc1bGR5QlNaV2RGZUhBb0oxc2dYRngwWFNvb0xpby9LU2cvT2lnL1BDRmJJRnhjZEYwcFd5QmNYSFJkS2lrL1hGeHlQMXhjYmljc0lDZHplU2NwTzF4dUlDQWdJSDFjYmlBZ0lDQmpZWFJqYUNCN1hHNGdJQ0FnSUNBZ0lHWnBjbk4wSUQwZ0x5Z3VLajhwV3lCY1hIUmRLbHhjY2o5Y1hHNHZjM2s3WEc0Z0lDQWdJQ0FnSUd4cGJtVWdQU0F2V3lCY1hIUmRLaWd1S2o4cFd5QmNYSFJkS2x4Y2NqOWNYRzR2YzNrN1hHNGdJQ0FnZlZ4dUlDQWdJR3hsZENCdFlYUmphQ0E5SUdacGNuTjBMbVY0WldNb2MyOTFjbU5sS1R0Y2JpQWdJQ0JwWmlBb0lXMWhkR05vS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzI5MWNtTmxPMXh1SUNBZ0lHeGxkQ0J5WlhNZ1BTQnRZWFJqYUZzeFhUdGNiaUFnSUNCc1pYUWdjMlZ3SUQwZ0p5QW5PMXh1SUNBZ0lHeGxkQ0J3YjNNZ1BTQm1hWEp6ZEM1c1lYTjBTVzVrWlhnN1hHNGdJQ0FnYkdsdVpTNXNZWE4wU1c1a1pYZ2dQU0J3YjNNN1hHNGdJQ0FnZDJocGJHVWdLQ2h0WVhSamFDQTlJR3hwYm1VdVpYaGxZeWh6YjNWeVkyVXBLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9iV0YwWTJoYk1WMGdQVDA5SUNjbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jMlZ3SUQwOVBTQW5YRnh1SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTWdLejBnYzJWd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNkY1hHNG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpJQ3M5SUhObGNDQXJJRzFoZEdOb1d6RmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVndJRDBnSnlBbk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEJ2Y3lBOUlHeHBibVV1YkdGemRFbHVaR1Y0TzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCc1lYTjBJRDBnTDFzZ1hGeDBYU29vTGlvcEwzTjVPMXh1SUNBZ0lHeGhjM1F1YkdGemRFbHVaR1Y0SUQwZ2NHOXpPMXh1SUNBZ0lHMWhkR05vSUQwZ2JHRnpkQzVsZUdWaktITnZkWEpqWlNrN1hHNGdJQ0FnY21WMGRYSnVJSEpsY3lBcklITmxjQ0FySUNodFlYUmphRDh1V3pGZElEOC9JQ2NuS1R0Y2JuMWNibVoxYm1OMGFXOXVJR1J2ZFdKc1pWRjFiM1JsWkZaaGJIVmxLSE52ZFhKalpTd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHeGxkQ0J5WlhNZ1BTQW5KenRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTVRzZ2FTQThJSE52ZFhKalpTNXNaVzVuZEdnZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyZ2dQU0J6YjNWeVkyVmJhVjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0oxeGNjaWNnSmlZZ2MyOTFjbU5sVzJrZ0t5QXhYU0E5UFQwZ0oxeGNiaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuWEZ4dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCbWIyeGtMQ0J2Wm1aelpYUWdmU0E5SUdadmJHUk9aWGRzYVc1bEtITnZkWEpqWlN3Z2FTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYTWdLejBnWm05c1pEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdrZ1BTQnZabVp6WlhRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZMmdnUFQwOUlDZGNYRnhjSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHNWxlSFFnUFNCemIzVnlZMlZiS3l0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05qSUQwZ1pYTmpZWEJsUTI5a1pYTmJibVY0ZEYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyTXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6SUNzOUlHTmpPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2JtVjRkQ0E5UFQwZ0oxeGNiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QnphMmx3SUdWelkyRndaV1FnYm1WM2JHbHVaWE1zSUdKMWRDQnpkR2xzYkNCMGNtbHRJSFJvWlNCbWIyeHNiM2RwYm1jZ2JHbHVaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhRZ1BTQnpiM1Z5WTJWYmFTQXJJREZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2h1WlhoMElEMDlQU0FuSUNjZ2ZId2dibVY0ZENBOVBUMGdKMXhjZENjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhRZ1BTQnpiM1Z5WTJWYkt5dHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHVaWGgwSUQwOVBTQW5YRnh5SnlBbUppQnpiM1Z5WTJWYmFTQXJJREZkSUQwOVBTQW5YRnh1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJSE5yYVhBZ1pYTmpZWEJsWkNCRFVreEdJRzVsZDJ4cGJtVnpMQ0JpZFhRZ2MzUnBiR3dnZEhKcGJTQjBhR1VnWm05c2JHOTNhVzVuSUd4cGJtVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVaWGgwSUQwZ2MyOTFjbU5sV3lzcmFTQXJJREZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2h1WlhoMElEMDlQU0FuSUNjZ2ZId2dibVY0ZENBOVBUMGdKMXhjZENjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhRZ1BTQnpiM1Z5WTJWYkt5dHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHVaWGgwSUQwOVBTQW5lQ2NnZkh3Z2JtVjRkQ0E5UFQwZ0ozVW5JSHg4SUc1bGVIUWdQVDA5SUNkVkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeGxibWQwYUNBOUlIc2dlRG9nTWl3Z2RUb2dOQ3dnVlRvZ09DQjlXMjVsZUhSZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjeUFyUFNCd1lYSnpaVU5vWVhKRGIyUmxLSE52ZFhKalpTd2dhU0FySURFc0lHeGxibWQwYUN3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQXJQU0JzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCeVlYY2dQU0J6YjNWeVkyVXVjM1ZpYzNSeUtHa2dMU0F4TENBeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHa2dMU0F4TENBblFrRkVYMFJSWDBWVFEwRlFSU2NzSUdCSmJuWmhiR2xrSUdWelkyRndaU0J6WlhGMVpXNWpaU0FrZTNKaGQzMWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhNZ0t6MGdjbUYzTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dOb0lEMDlQU0FuSUNjZ2ZId2dZMmdnUFQwOUlDZGNYSFFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCMGNtbHRJSFJ5WVdsc2FXNW5JSGRvYVhSbGMzQmhZMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhkelUzUmhjblFnUFNCcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHNWxlSFFnUFNCemIzVnlZMlZiYVNBcklERmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0c1bGVIUWdQVDA5SUNjZ0p5QjhmQ0J1WlhoMElEMDlQU0FuWEZ4MEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVaWGgwSUQwZ2MyOTFjbU5sV3lzcmFTQXJJREZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c1bGVIUWdJVDA5SUNkY1hHNG5JQ1ltSUNFb2JtVjRkQ0E5UFQwZ0oxeGNjaWNnSmlZZ2MyOTFjbU5sVzJrZ0t5QXlYU0E5UFQwZ0oxeGNiaWNwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGN5QXJQU0JwSUQ0Z2QzTlRkR0Z5ZENBL0lITnZkWEpqWlM1emJHbGpaU2gzYzFOMFlYSjBMQ0JwSUNzZ01Ta2dPaUJqYUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsY3lBclBTQmphRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYzI5MWNtTmxXM052ZFhKalpTNXNaVzVuZEdnZ0xTQXhYU0FoUFQwZ0oxd2lKeUI4ZkNCemIzVnlZMlV1YkdWdVozUm9JRDA5UFNBeEtWeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtITnZkWEpqWlM1c1pXNW5kR2dzSUNkTlNWTlRTVTVIWDBOSVFWSW5MQ0FuVFdsemMybHVaeUJqYkc5emFXNW5JRndpY1hWdmRHVW5LVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpPMXh1ZlZ4dUx5b3FYRzRnS2lCR2IyeGtJR0VnYzJsdVoyeGxJRzVsZDJ4cGJtVWdhVzUwYnlCaElITndZV05sTENCdGRXeDBhWEJzWlNCdVpYZHNhVzVsY3lCMGJ5Qk9JQzBnTVNCdVpYZHNhVzVsY3k1Y2JpQXFJRkJ5WlhOMWJXVnpJR0J6YjNWeVkyVmJiMlptYzJWMFhTQTlQVDBnSjF4Y2JpZGdYRzRnS2k5Y2JtWjFibU4wYVc5dUlHWnZiR1JPWlhkc2FXNWxLSE52ZFhKalpTd2diMlptYzJWMEtTQjdYRzRnSUNBZ2JHVjBJR1p2YkdRZ1BTQW5KenRjYmlBZ0lDQnNaWFFnWTJnZ1BTQnpiM1Z5WTJWYmIyWm1jMlYwSUNzZ01WMDdYRzRnSUNBZ2QyaHBiR1VnS0dOb0lEMDlQU0FuSUNjZ2ZId2dZMmdnUFQwOUlDZGNYSFFuSUh4OElHTm9JRDA5UFNBblhGeHVKeUI4ZkNCamFDQTlQVDBnSjF4Y2NpY3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTm9JRDA5UFNBblhGeHlKeUFtSmlCemIzVnlZMlZiYjJabWMyVjBJQ3NnTWwwZ0lUMDlJQ2RjWEc0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJR2xtSUNoamFDQTlQVDBnSjF4Y2JpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIyeGtJQ3M5SUNkY1hHNG5PMXh1SUNBZ0lDQWdJQ0J2Wm1aelpYUWdLejBnTVR0Y2JpQWdJQ0FnSUNBZ1kyZ2dQU0J6YjNWeVkyVmJiMlptYzJWMElDc2dNVjA3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2doWm05c1pDbGNiaUFnSUNBZ0lDQWdabTlzWkNBOUlDY2dKenRjYmlBZ0lDQnlaWFIxY200Z2V5Qm1iMnhrTENCdlptWnpaWFFnZlR0Y2JuMWNibU52Ym5OMElHVnpZMkZ3WlVOdlpHVnpJRDBnZTF4dUlDQWdJQ2N3SnpvZ0oxeGNNQ2NzSUM4dklHNTFiR3dnWTJoaGNtRmpkR1Z5WEc0Z0lDQWdZVG9nSjF4Y2VEQTNKeXdnTHk4Z1ltVnNiQ0JqYUdGeVlXTjBaWEpjYmlBZ0lDQmlPaUFuWEZ4aUp5d2dMeThnWW1GamEzTndZV05sWEc0Z0lDQWdaVG9nSjF4Y2VERmlKeXdnTHk4Z1pYTmpZWEJsSUdOb1lYSmhZM1JsY2x4dUlDQWdJR1k2SUNkY1hHWW5MQ0F2THlCbWIzSnRJR1psWldSY2JpQWdJQ0J1T2lBblhGeHVKeXdnTHk4Z2JHbHVaU0JtWldWa1hHNGdJQ0FnY2pvZ0oxeGNjaWNzSUM4dklHTmhjbkpwWVdkbElISmxkSFZ5Ymx4dUlDQWdJSFE2SUNkY1hIUW5MQ0F2THlCb2IzSnBlbTl1ZEdGc0lIUmhZbHh1SUNBZ0lIWTZJQ2RjWEhZbkxDQXZMeUIyWlhKMGFXTmhiQ0IwWVdKY2JpQWdJQ0JPT2lBblhGeDFNREE0TlNjc0lDOHZJRlZ1YVdOdlpHVWdibVY0ZENCc2FXNWxYRzRnSUNBZ1h6b2dKMXhjZFRBd1lUQW5MQ0F2THlCVmJtbGpiMlJsSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlZ4dUlDQWdJRXc2SUNkY1hIVXlNREk0Snl3Z0x5OGdWVzVwWTI5a1pTQnNhVzVsSUhObGNHRnlZWFJ2Y2x4dUlDQWdJRkE2SUNkY1hIVXlNREk1Snl3Z0x5OGdWVzVwWTI5a1pTQndZWEpoWjNKaGNHZ2djMlZ3WVhKaGRHOXlYRzRnSUNBZ0p5QW5PaUFuSUNjc1hHNGdJQ0FnSjF3aUp6b2dKMXdpSnl4Y2JpQWdJQ0FuTHljNklDY3ZKeXhjYmlBZ0lDQW5YRnhjWENjNklDZGNYRnhjSnl4Y2JpQWdJQ0FuWEZ4MEp6b2dKMXhjZENkY2JuMDdYRzVtZFc1amRHbHZiaUJ3WVhKelpVTm9ZWEpEYjJSbEtITnZkWEpqWlN3Z2IyWm1jMlYwTENCc1pXNW5kR2dzSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0JqYjI1emRDQmpZeUE5SUhOdmRYSmpaUzV6ZFdKemRISW9iMlptYzJWMExDQnNaVzVuZEdncE8xeHVJQ0FnSUdOdmJuTjBJRzlySUQwZ1kyTXViR1Z1WjNSb0lEMDlQU0JzWlc1bmRHZ2dKaVlnTDE1Yk1DMDVZUzFtUVMxR1hTc2tMeTUwWlhOMEtHTmpLVHRjYmlBZ0lDQmpiMjV6ZENCamIyUmxJRDBnYjJzZ1B5QndZWEp6WlVsdWRDaGpZeXdnTVRZcElEb2dUbUZPTzF4dUlDQWdJR2xtSUNocGMwNWhUaWhqYjJSbEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlZWGNnUFNCemIzVnlZMlV1YzNWaWMzUnlLRzltWm5ObGRDQXRJRElzSUd4bGJtZDBhQ0FySURJcE8xeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHOW1abk5sZENBdElESXNJQ2RDUVVSZlJGRmZSVk5EUVZCRkp5d2dZRWx1ZG1Gc2FXUWdaWE5qWVhCbElITmxjWFZsYm1ObElDUjdjbUYzZldBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtRjNPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnVTNSeWFXNW5MbVp5YjIxRGIyUmxVRzlwYm5Rb1kyOWtaU2s3WEc1OVhHNWNibVY0Y0c5eWRDQjdJSEpsYzI5c2RtVkdiRzkzVTJOaGJHRnlJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dhWE5UWTJGc1lYSXNJRk5EUVV4QlVpQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUZOallXeGhjaUI5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMU5qWVd4aGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCeVpYTnZiSFpsUW14dlkydFRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUwzSmxjMjlzZG1VdFlteHZZMnN0YzJOaGJHRnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lISmxjMjlzZG1WR2JHOTNVMk5oYkdGeUlIMGdabkp2YlNBbkxpOXlaWE52YkhabExXWnNiM2N0YzJOaGJHRnlMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdZMjl0Y0c5elpWTmpZV3hoY2loamRIZ3NJSFJ2YTJWdUxDQjBZV2RVYjJ0bGJpd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2RtRnNkV1VzSUhSNWNHVXNJR052YlcxbGJuUXNJSEpoYm1kbElIMGdQU0IwYjJ0bGJpNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGMyTmhiR0Z5SjF4dUlDQWdJQ0FnSUNBL0lISmxjMjlzZG1WQ2JHOWphMU5qWVd4aGNpaGpkSGdzSUhSdmEyVnVMQ0J2YmtWeWNtOXlLVnh1SUNBZ0lDQWdJQ0E2SUhKbGMyOXNkbVZHYkc5M1UyTmhiR0Z5S0hSdmEyVnVMQ0JqZEhndWIzQjBhVzl1Y3k1emRISnBZM1FzSUc5dVJYSnliM0lwTzF4dUlDQWdJR052Ym5OMElIUmhaMDVoYldVZ1BTQjBZV2RVYjJ0bGJseHVJQ0FnSUNBZ0lDQS9JR04wZUM1a2FYSmxZM1JwZG1WekxuUmhaMDVoYldVb2RHRm5WRzlyWlc0dWMyOTFjbU5sTENCdGMyY2dQVDRnYjI1RmNuSnZjaWgwWVdkVWIydGxiaXdnSjFSQlIxOVNSVk5QVEZaRlgwWkJTVXhGUkNjc0lHMXpaeWtwWEc0Z0lDQWdJQ0FnSURvZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnZEdGbk8xeHVJQ0FnSUdsbUlDaGpkSGd1YjNCMGFXOXVjeTV6ZEhKcGJtZExaWGx6SUNZbUlHTjBlQzVoZEV0bGVTa2dlMXh1SUNBZ0lDQWdJQ0IwWVdjZ1BTQmpkSGd1YzJOb1pXMWhXMU5EUVV4QlVsMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0hSaFowNWhiV1VwWEc0Z0lDQWdJQ0FnSUhSaFp5QTlJR1pwYm1SVFkyRnNZWEpVWVdkQ2VVNWhiV1VvWTNSNExuTmphR1Z0WVN3Z2RtRnNkV1VzSUhSaFowNWhiV1VzSUhSaFoxUnZhMlZ1TENCdmJrVnljbTl5S1R0Y2JpQWdJQ0JsYkhObElHbG1JQ2gwYjJ0bGJpNTBlWEJsSUQwOVBTQW5jMk5oYkdGeUp5bGNiaUFnSUNBZ0lDQWdkR0ZuSUQwZ1ptbHVaRk5qWVd4aGNsUmhaMEo1VkdWemRDaGpkSGdzSUhaaGJIVmxMQ0IwYjJ0bGJpd2diMjVGY25KdmNpazdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0IwWVdjZ1BTQmpkSGd1YzJOb1pXMWhXMU5EUVV4QlVsMDdYRzRnSUNBZ2JHVjBJSE5qWVd4aGNqdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE1nUFNCMFlXY3VjbVZ6YjJ4MlpTaDJZV3gxWlN3Z2JYTm5JRDArSUc5dVJYSnliM0lvZEdGblZHOXJaVzRnUHo4Z2RHOXJaVzRzSUNkVVFVZGZVa1ZUVDB4V1JWOUdRVWxNUlVRbkxDQnRjMmNwTENCamRIZ3ViM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSE5qWVd4aGNpQTlJR2x6VTJOaGJHRnlLSEpsY3lrZ1B5QnlaWE1nT2lCdVpYY2dVMk5oYkdGeUtISmxjeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQmxjbkp2Y2lCcGJuTjBZVzVqWlc5bUlFVnljbTl5SUQ4Z1pYSnliM0l1YldWemMyRm5aU0E2SUZOMGNtbHVaeWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kR0ZuVkc5clpXNGdQejhnZEc5clpXNHNJQ2RVUVVkZlVrVlRUMHhXUlY5R1FVbE1SVVFuTENCdGMyY3BPMXh1SUNBZ0lDQWdJQ0J6WTJGc1lYSWdQU0J1WlhjZ1UyTmhiR0Z5S0haaGJIVmxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2MyTmhiR0Z5TG5KaGJtZGxJRDBnY21GdVoyVTdYRzRnSUNBZ2MyTmhiR0Z5TG5OdmRYSmpaU0E5SUhaaGJIVmxPMXh1SUNBZ0lHbG1JQ2gwZVhCbEtWeHVJQ0FnSUNBZ0lDQnpZMkZzWVhJdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2FXWWdLSFJoWjA1aGJXVXBYRzRnSUNBZ0lDQWdJSE5qWVd4aGNpNTBZV2NnUFNCMFlXZE9ZVzFsTzF4dUlDQWdJR2xtSUNoMFlXY3VabTl5YldGMEtWeHVJQ0FnSUNBZ0lDQnpZMkZzWVhJdVptOXliV0YwSUQwZ2RHRm5MbVp2Y20xaGREdGNiaUFnSUNCcFppQW9ZMjl0YldWdWRDbGNiaUFnSUNBZ0lDQWdjMk5oYkdGeUxtTnZiVzFsYm5RZ1BTQmpiMjF0Wlc1ME8xeHVJQ0FnSUhKbGRIVnliaUJ6WTJGc1lYSTdYRzU5WEc1bWRXNWpkR2x2YmlCbWFXNWtVMk5oYkdGeVZHRm5RbmxPWVcxbEtITmphR1Z0WVN3Z2RtRnNkV1VzSUhSaFowNWhiV1VzSUhSaFoxUnZhMlZ1TENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnYVdZZ0tIUmhaMDVoYldVZ1BUMDlJQ2NoSnlsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOamFHVnRZVnRUUTBGTVFWSmRPeUF2THlCdWIyNHRjM0JsWTJsbWFXTWdkR0ZuWEc0Z0lDQWdZMjl1YzNRZ2JXRjBZMmhYYVhSb1ZHVnpkQ0E5SUZ0ZE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RHRm5JRzltSUhOamFHVnRZUzUwWVdkektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHRm5MbU52Ykd4bFkzUnBiMjRnSmlZZ2RHRm5MblJoWnlBOVBUMGdkR0ZuVG1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJoWnk1a1pXWmhkV3gwSUNZbUlIUmhaeTUwWlhOMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhkR05vVjJsMGFGUmxjM1F1Y0hWemFDaDBZV2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwWVdjN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMFlXY2diMllnYldGMFkyaFhhWFJvVkdWemRDbGNiaUFnSUNBZ0lDQWdhV1lnS0hSaFp5NTBaWE4wUHk1MFpYTjBLSFpoYkhWbEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwWVdjN1hHNGdJQ0FnWTI5dWMzUWdhM1FnUFNCelkyaGxiV0V1YTI1dmQyNVVZV2R6VzNSaFowNWhiV1ZkTzF4dUlDQWdJR2xtSUNocmRDQW1KaUFoYTNRdVkyOXNiR1ZqZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0F2THlCRmJuTjFjbVVnZEdoaGRDQjBhR1VnYTI1dmQyNGdkR0ZuSUdseklHRjJZV2xzWVdKc1pTQm1iM0lnYzNSeWFXNW5hV1o1YVc1bkxGeHVJQ0FnSUNBZ0lDQXZMeUJpZFhRZ1pHOWxjeUJ1YjNRZ1oyVjBJSFZ6WldRZ1lua2daR1ZtWVhWc2RDNWNiaUFnSUNBZ0lDQWdjMk5vWlcxaExuUmhaM011Y0hWemFDaFBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQnJkQ3dnZXlCa1pXWmhkV3gwT2lCbVlXeHpaU3dnZEdWemREb2dkVzVrWldacGJtVmtJSDBwS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUd0ME8xeHVJQ0FnSUgxY2JpQWdJQ0J2YmtWeWNtOXlLSFJoWjFSdmEyVnVMQ0FuVkVGSFgxSkZVMDlNVmtWZlJrRkpURVZFSnl3Z1lGVnVjbVZ6YjJ4MlpXUWdkR0ZuT2lBa2UzUmhaMDVoYldWOVlDd2dkR0ZuVG1GdFpTQWhQVDBnSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T25OMGNpY3BPMXh1SUNBZ0lISmxkSFZ5YmlCelkyaGxiV0ZiVTBOQlRFRlNYVHRjYm4xY2JtWjFibU4wYVc5dUlHWnBibVJUWTJGc1lYSlVZV2RDZVZSbGMzUW9leUJoZEV0bGVTd2daR2x5WldOMGFYWmxjeXdnYzJOb1pXMWhJSDBzSUhaaGJIVmxMQ0IwYjJ0bGJpd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHTnZibk4wSUhSaFp5QTlJSE5qYUdWdFlTNTBZV2R6TG1acGJtUW9kR0ZuSUQwK0lDaDBZV2N1WkdWbVlYVnNkQ0E5UFQwZ2RISjFaU0I4ZkNBb1lYUkxaWGtnSmlZZ2RHRm5MbVJsWm1GMWJIUWdQVDA5SUNkclpYa25LU2tnSmlaY2JpQWdJQ0FnSUNBZ2RHRm5MblJsYzNRL0xuUmxjM1FvZG1Gc2RXVXBLU0I4ZkNCelkyaGxiV0ZiVTBOQlRFRlNYVHRjYmlBZ0lDQnBaaUFvYzJOb1pXMWhMbU52YlhCaGRDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMjF3WVhRZ1BTQnpZMmhsYldFdVkyOXRjR0YwTG1acGJtUW9kR0ZuSUQwK0lIUmhaeTVrWldaaGRXeDBJQ1ltSUhSaFp5NTBaWE4wUHk1MFpYTjBLSFpoYkhWbEtTa2dQejljYmlBZ0lDQWdJQ0FnSUNBZ0lITmphR1Z0WVZ0VFEwRk1RVkpkTzF4dUlDQWdJQ0FnSUNCcFppQW9kR0ZuTG5SaFp5QWhQVDBnWTI5dGNHRjBMblJoWnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkSE1nUFNCa2FYSmxZM1JwZG1WekxuUmhaMU4wY21sdVp5aDBZV2N1ZEdGbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR056SUQwZ1pHbHlaV04wYVhabGN5NTBZV2RUZEhKcGJtY29ZMjl0Y0dGMExuUmhaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGMyY2dQU0JnVm1Gc2RXVWdiV0Y1SUdKbElIQmhjbk5sWkNCaGN5QmxhWFJvWlhJZ0pIdDBjMzBnYjNJZ0pIdGpjMzFnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDBiMnRsYml3Z0oxUkJSMTlTUlZOUFRGWkZYMFpCU1V4RlJDY3NJRzF6Wnl3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUmhaenRjYm4xY2JseHVaWGh3YjNKMElIc2dZMjl0Y0c5elpWTmpZV3hoY2lCOU8xeHVJaXdnSW1aMWJtTjBhVzl1SUdWdGNIUjVVMk5oYkdGeVVHOXphWFJwYjI0b2IyWm1jMlYwTENCaVpXWnZjbVVzSUhCdmN5a2dlMXh1SUNBZ0lHbG1JQ2hpWldadmNtVXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnZjeUE5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZjeUE5SUdKbFptOXlaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCd2IzTWdMU0F4T3lCcElENDlJREE3SUMwdGFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSE4wSUQwZ1ltVm1iM0psVzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2h6ZEM1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jM0JoWTJVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWxiblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMjVsZDJ4cGJtVW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFFnTFQwZ2MzUXVjMjkxY21ObExteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCVVpXTm9ibWxqWVd4c2VTd2dZVzRnWlcxd2RIa2djMk5oYkdGeUlHbHpJR2x0YldWa2FXRjBaV3g1SUdGbWRHVnlJSFJvWlNCc1lYTjBJRzV2YmkxbGJYQjBlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdibTlrWlN3Z1luVjBJR2wwSjNNZ2JXOXlaU0IxYzJWbWRXd2dkRzhnY0d4aFkyVWdhWFFnWVdaMFpYSWdZVzU1SUhkb2FYUmxjM0JoWTJVdVhHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZENBOUlHSmxabTl5WlZzcksybGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0hOMFB5NTBlWEJsSUQwOVBTQW5jM0JoWTJVbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWMElDczlJSE4wTG5OdmRYSmpaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1FnUFNCaVpXWnZjbVZiS3l0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ2Wm1aelpYUTdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lHVnRjSFI1VTJOaGJHRnlVRzl6YVhScGIyNGdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QkJiR2xoY3lCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDBGc2FXRnpMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHpVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdmFXUmxiblJwZEhrdWFuTW5PMXh1YVcxd2IzSjBJSHNnWTI5dGNHOXpaVU52Ykd4bFkzUnBiMjRnZlNCbWNtOXRJQ2N1TDJOdmJYQnZjMlV0WTI5c2JHVmpkR2x2Ymk1cWN5YzdYRzVwYlhCdmNuUWdleUJqYjIxd2IzTmxVMk5oYkdGeUlIMGdabkp2YlNBbkxpOWpiMjF3YjNObExYTmpZV3hoY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxSVzVrSUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFdWdVpDNXFjeWM3WEc1cGJYQnZjblFnZXlCbGJYQjBlVk5qWVd4aGNsQnZjMmwwYVc5dUlIMGdabkp2YlNBbkxpOTFkR2xzTFdWdGNIUjVMWE5qWVd4aGNpMXdiM05wZEdsdmJpNXFjeWM3WEc1Y2JtTnZibk4wSUVOT0lEMGdleUJqYjIxd2IzTmxUbTlrWlN3Z1kyOXRjRzl6WlVWdGNIUjVUbTlrWlNCOU8xeHVablZ1WTNScGIyNGdZMjl0Y0c5elpVNXZaR1VvWTNSNExDQjBiMnRsYml3Z2NISnZjSE1zSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0JqYjI1emRDQmhkRXRsZVNBOUlHTjBlQzVoZEV0bGVUdGNiaUFnSUNCamIyNXpkQ0I3SUhOd1lXTmxRbVZtYjNKbExDQmpiMjF0Wlc1MExDQmhibU5vYjNJc0lIUmhaeUI5SUQwZ2NISnZjSE03WEc0Z0lDQWdiR1YwSUc1dlpHVTdYRzRnSUNBZ2JHVjBJR2x6VTNKalZHOXJaVzRnUFNCMGNuVmxPMXh1SUNBZ0lITjNhWFJqYUNBb2RHOXJaVzR1ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0JqWVhObElDZGhiR2xoY3ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbElEMGdZMjl0Y0c5elpVRnNhV0Z6S0dOMGVDd2dkRzlyWlc0c0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHRnVZMmh2Y2lCOGZDQjBZV2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpd2dKMEZNU1VGVFgxQlNUMUJUSnl3Z0owRnVJR0ZzYVdGeklHNXZaR1VnYlhWemRDQnViM1FnYzNCbFkybG1lU0JoYm5rZ2NISnZjR1Z5ZEdsbGN5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKM05qWVd4aGNpYzZYRzRnSUNBZ0lDQWdJR05oYzJVZ0ozTnBibWRzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnWTJGelpTQW5aRzkxWW14bExYRjFiM1JsWkMxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNCallYTmxJQ2RpYkc5amF5MXpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pTQTlJR052YlhCdmMyVlRZMkZzWVhJb1kzUjRMQ0IwYjJ0bGJpd2dkR0ZuTENCdmJrVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaGJtTm9iM0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pTNWhibU5vYjNJZ1BTQmhibU5vYjNJdWMyOTFjbU5sTG5OMVluTjBjbWx1WnlneEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxdFlYQW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxelpYRW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZG1iRzkzTFdOdmJHeGxZM1JwYjI0bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pTQTlJR052YlhCdmMyVkRiMnhzWldOMGFXOXVLRU5PTENCamRIZ3NJSFJ2YTJWdUxDQndjbTl3Y3l3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lXNWphRzl5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1dlpHVXVZVzVqYUc5eUlEMGdZVzVqYUc5eUxuTnZkWEpqWlM1emRXSnpkSEpwYm1jb01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkbGNuSnZjaWRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUhSdmEyVnVMbTFsYzNOaFoyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJR0JWYm5OMWNIQnZjblJsWkNCMGIydGxiaUFvZEhsd1pUb2dKSHQwYjJ0bGJpNTBlWEJsZlNsZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpd2dKMVZPUlZoUVJVTlVSVVJmVkU5TFJVNG5MQ0J0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1VnUFNCamIyMXdiM05sUlcxd2RIbE9iMlJsS0dOMGVDd2dkRzlyWlc0dWIyWm1jMlYwTENCMWJtUmxabWx1WldRc0lHNTFiR3dzSUhCeWIzQnpMQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHpVM0pqVkc5clpXNGdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCcFppQW9ZVzVqYUc5eUlDWW1JRzV2WkdVdVlXNWphRzl5SUQwOVBTQW5KeWxjYmlBZ0lDQWdJQ0FnYjI1RmNuSnZjaWhoYm1Ob2IzSXNJQ2RDUVVSZlFVeEpRVk1uTENBblFXNWphRzl5SUdOaGJtNXZkQ0JpWlNCaGJpQmxiWEIwZVNCemRISnBibWNuS1R0Y2JpQWdJQ0JwWmlBb1lYUkxaWGtnSmlaY2JpQWdJQ0FnSUNBZ1kzUjRMbTl3ZEdsdmJuTXVjM1J5YVc1blMyVjVjeUFtSmx4dUlDQWdJQ0FnSUNBb0lXbHpVMk5oYkdGeUtHNXZaR1VwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbGIyWWdibTlrWlM1MllXeDFaU0FoUFQwZ0ozTjBjbWx1WnljZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNodWIyUmxMblJoWnlBbUppQnViMlJsTG5SaFp5QWhQVDBnSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T25OMGNpY3BLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQW5WMmwwYUNCemRISnBibWRMWlhsekxDQmhiR3dnYTJWNWN5QnRkWE4wSUdKbElITjBjbWx1WjNNbk8xeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIUmhaeUEvUHlCMGIydGxiaXdnSjA1UFRsOVRWRkpKVGtkZlMwVlpKeXdnYlhObktUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tITndZV05sUW1WbWIzSmxLVnh1SUNBZ0lDQWdJQ0J1YjJSbExuTndZV05sUW1WbWIzSmxJRDBnZEhKMVpUdGNiaUFnSUNCcFppQW9ZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHOXJaVzR1ZEhsd1pTQTlQVDBnSjNOallXeGhjaWNnSmlZZ2RHOXJaVzR1YzI5MWNtTmxJRDA5UFNBbkp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUc1dlpHVXVZMjl0YldWdWRDQTlJR052YlcxbGJuUTdYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJRzV2WkdVdVkyOXRiV1Z1ZEVKbFptOXlaU0E5SUdOdmJXMWxiblE3WEc0Z0lDQWdmVnh1SUNBZ0lDOHZJRUIwY3kxbGVIQmxZM1F0WlhKeWIzSWdWSGx3WlNCamFHVmphMmx1WnlCdGFYTnpaWE1nYldWaGJtbHVaeUJ2WmlCcGMxTnlZMVJ2YTJWdVhHNGdJQ0FnYVdZZ0tHTjBlQzV2Y0hScGIyNXpMbXRsWlhCVGIzVnlZMlZVYjJ0bGJuTWdKaVlnYVhOVGNtTlViMnRsYmlsY2JpQWdJQ0FnSUNBZ2JtOWtaUzV6Y21OVWIydGxiaUE5SUhSdmEyVnVPMXh1SUNBZ0lISmxkSFZ5YmlCdWIyUmxPMXh1ZlZ4dVpuVnVZM1JwYjI0Z1kyOXRjRzl6WlVWdGNIUjVUbTlrWlNoamRIZ3NJRzltWm5ObGRDd2dZbVZtYjNKbExDQndiM01zSUhzZ2MzQmhZMlZDWldadmNtVXNJR052YlcxbGJuUXNJR0Z1WTJodmNpd2dkR0ZuTENCbGJtUWdmU3dnYjI1RmNuSnZjaWtnZTF4dUlDQWdJR052Ym5OMElIUnZhMlZ1SUQwZ2UxeHVJQ0FnSUNBZ0lDQjBlWEJsT2lBbmMyTmhiR0Z5Snl4Y2JpQWdJQ0FnSUNBZ2IyWm1jMlYwT2lCbGJYQjBlVk5qWVd4aGNsQnZjMmwwYVc5dUtHOW1abk5sZEN3Z1ltVm1iM0psTENCd2IzTXBMRnh1SUNBZ0lDQWdJQ0JwYm1SbGJuUTZJQzB4TEZ4dUlDQWdJQ0FnSUNCemIzVnlZMlU2SUNjblhHNGdJQ0FnZlR0Y2JpQWdJQ0JqYjI1emRDQnViMlJsSUQwZ1kyOXRjRzl6WlZOallXeGhjaWhqZEhnc0lIUnZhMlZ1TENCMFlXY3NJRzl1UlhKeWIzSXBPMXh1SUNBZ0lHbG1JQ2hoYm1Ob2IzSXBJSHRjYmlBZ0lDQWdJQ0FnYm05a1pTNWhibU5vYjNJZ1BTQmhibU5vYjNJdWMyOTFjbU5sTG5OMVluTjBjbWx1WnlneEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0c1dlpHVXVZVzVqYUc5eUlEMDlQU0FuSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9ZVzVqYUc5eUxDQW5Ra0ZFWDBGTVNVRlRKeXdnSjBGdVkyaHZjaUJqWVc1dWIzUWdZbVVnWVc0Z1pXMXdkSGtnYzNSeWFXNW5KeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6Y0dGalpVSmxabTl5WlNsY2JpQWdJQ0FnSUNBZ2JtOWtaUzV6Y0dGalpVSmxabTl5WlNBOUlIUnlkV1U3WEc0Z0lDQWdhV1lnS0dOdmJXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2JtOWtaUzVqYjIxdFpXNTBJRDBnWTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnYm05a1pTNXlZVzVuWlZzeVhTQTlJR1Z1WkR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHNXZaR1U3WEc1OVhHNW1kVzVqZEdsdmJpQmpiMjF3YjNObFFXeHBZWE1vZXlCdmNIUnBiMjV6SUgwc0lIc2diMlptYzJWMExDQnpiM1Z5WTJVc0lHVnVaQ0I5TENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnWTI5dWMzUWdZV3hwWVhNZ1BTQnVaWGNnUVd4cFlYTW9jMjkxY21ObExuTjFZbk4wY21sdVp5Z3hLU2s3WEc0Z0lDQWdhV1lnS0dGc2FXRnpMbk52ZFhKalpTQTlQVDBnSnljcFhHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2IyWm1jMlYwTENBblFrRkVYMEZNU1VGVEp5d2dKMEZzYVdGeklHTmhibTV2ZENCaVpTQmhiaUJsYlhCMGVTQnpkSEpwYm1jbktUdGNiaUFnSUNCcFppQW9ZV3hwWVhNdWMyOTFjbU5sTG1WdVpITlhhWFJvS0NjNkp5a3BYRzRnSUNBZ0lDQWdJRzl1UlhKeWIzSW9iMlptYzJWMElDc2djMjkxY21ObExteGxibWQwYUNBdElERXNJQ2RDUVVSZlFVeEpRVk1uTENBblFXeHBZWE1nWlc1a2FXNW5JR2x1SURvZ2FYTWdZVzFpYVdkMWIzVnpKeXdnZEhKMVpTazdYRzRnSUNBZ1kyOXVjM1FnZG1Gc2RXVkZibVFnUFNCdlptWnpaWFFnS3lCemIzVnlZMlV1YkdWdVozUm9PMXh1SUNBZ0lHTnZibk4wSUhKbElEMGdjbVZ6YjJ4MlpVVnVaQ2hsYm1Rc0lIWmhiSFZsUlc1a0xDQnZjSFJwYjI1ekxuTjBjbWxqZEN3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnWVd4cFlYTXVjbUZ1WjJVZ1BTQmJiMlptYzJWMExDQjJZV3gxWlVWdVpDd2djbVV1YjJabWMyVjBYVHRjYmlBZ0lDQnBaaUFvY21VdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ1lXeHBZWE11WTI5dGJXVnVkQ0E5SUhKbExtTnZiVzFsYm5RN1hHNGdJQ0FnY21WMGRYSnVJR0ZzYVdGek8xeHVmVnh1WEc1bGVIQnZjblFnZXlCamIyMXdiM05sUlcxd2RIbE9iMlJsTENCamIyMXdiM05sVG05a1pTQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lFUnZZM1Z0Wlc1MElIMGdabkp2YlNBbkxpNHZaRzlqTDBSdlkzVnRaVzUwTG1wekp6dGNibWx0Y0c5eWRDQjdJR052YlhCdmMyVk9iMlJsTENCamIyMXdiM05sUlcxd2RIbE9iMlJsSUgwZ1puSnZiU0FuTGk5amIyMXdiM05sTFc1dlpHVXVhbk1uTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlVWdVpDQjlJR1p5YjIwZ0p5NHZjbVZ6YjJ4MlpTMWxibVF1YW5Nbk8xeHVhVzF3YjNKMElIc2djbVZ6YjJ4MlpWQnliM0J6SUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFhCeWIzQnpMbXB6Snp0Y2JseHVablZ1WTNScGIyNGdZMjl0Y0c5elpVUnZZeWh2Y0hScGIyNXpMQ0JrYVhKbFkzUnBkbVZ6TENCN0lHOW1abk5sZEN3Z2MzUmhjblFzSUhaaGJIVmxMQ0JsYm1RZ2ZTd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHTnZibk4wSUc5d2RITWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIc2dYMlJwY21WamRHbDJaWE02SUdScGNtVmpkR2wyWlhNZ2ZTd2diM0IwYVc5dWN5azdYRzRnSUNBZ1kyOXVjM1FnWkc5aklEMGdibVYzSUVSdlkzVnRaVzUwS0hWdVpHVm1hVzVsWkN3Z2IzQjBjeWs3WEc0Z0lDQWdZMjl1YzNRZ1kzUjRJRDBnZTF4dUlDQWdJQ0FnSUNCaGRFdGxlVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR0YwVW05dmREb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ1pHbHlaV04wYVhabGN6b2daRzlqTG1ScGNtVmpkR2wyWlhNc1hHNGdJQ0FnSUNBZ0lHOXdkR2x2Ym5NNklHUnZZeTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdJQ0J6WTJobGJXRTZJR1J2WXk1elkyaGxiV0ZjYmlBZ0lDQjlPMXh1SUNBZ0lHTnZibk4wSUhCeWIzQnpJRDBnY21WemIyeDJaVkJ5YjNCektITjBZWEowTENCN1hHNGdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dKMlJ2WXkxemRHRnlkQ2NzWEc0Z0lDQWdJQ0FnSUc1bGVIUTZJSFpoYkhWbElEOC9JR1Z1WkQ4dVd6QmRMRnh1SUNBZ0lDQWdJQ0J2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJRzl1UlhKeWIzSXNYRzRnSUNBZ0lDQWdJSEJoY21WdWRFbHVaR1Z1ZERvZ01DeGNiaUFnSUNBZ0lDQWdjM1JoY25SUGJrNWxkMnhwYm1VNklIUnlkV1ZjYmlBZ0lDQjlLVHRjYmlBZ0lDQnBaaUFvY0hKdmNITXVabTkxYm1RcElIdGNiaUFnSUNBZ0lDQWdaRzlqTG1ScGNtVmpkR2wyWlhNdVpHOWpVM1JoY25RZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCcFppQW9kbUZzZFdVZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNoMllXeDFaUzUwZVhCbElEMDlQU0FuWW14dlkyc3RiV0Z3SnlCOGZDQjJZV3gxWlM1MGVYQmxJRDA5UFNBbllteHZZMnN0YzJWeEp5a2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDRndjbTl3Y3k1b1lYTk9aWGRzYVc1bEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWh3Y205d2N5NWxibVFzSUNkTlNWTlRTVTVIWDBOSVFWSW5MQ0FuUW14dlkyc2dZMjlzYkdWamRHbHZiaUJqWVc1dWIzUWdjM1JoY25RZ2IyNGdjMkZ0WlNCc2FXNWxJSGRwZEdnZ1pHbHlaV04wYVhabGN5MWxibVFnYldGeWEyVnlKeWs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHZJRUIwY3kxbGVIQmxZM1F0WlhKeWIzSWdTV1lnUTI5dWRHVnVkSE1nYVhNZ2MyVjBMQ0JzWlhRbmN5QjBjblZ6ZENCMGFHVWdkWE5sY2x4dUlDQWdJR1J2WXk1amIyNTBaVzUwY3lBOUlIWmhiSFZsWEc0Z0lDQWdJQ0FnSUQ4Z1kyOXRjRzl6WlU1dlpHVW9ZM1I0TENCMllXeDFaU3dnY0hKdmNITXNJRzl1UlhKeWIzSXBYRzRnSUNBZ0lDQWdJRG9nWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU2hqZEhnc0lIQnliM0J6TG1WdVpDd2djM1JoY25Rc0lHNTFiR3dzSUhCeWIzQnpMQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQmpiMjV6ZENCamIyNTBaVzUwUlc1a0lEMGdaRzlqTG1OdmJuUmxiblJ6TG5KaGJtZGxXekpkTzF4dUlDQWdJR052Ym5OMElISmxJRDBnY21WemIyeDJaVVZ1WkNobGJtUXNJR052Ym5SbGJuUkZibVFzSUdaaGJITmxMQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQnBaaUFvY21VdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ1pHOWpMbU52YlcxbGJuUWdQU0J5WlM1amIyMXRaVzUwTzF4dUlDQWdJR1J2WXk1eVlXNW5aU0E5SUZ0dlptWnpaWFFzSUdOdmJuUmxiblJGYm1Rc0lISmxMbTltWm5ObGRGMDdYRzRnSUNBZ2NtVjBkWEp1SUdSdll6dGNibjFjYmx4dVpYaHdiM0owSUhzZ1kyOXRjRzl6WlVSdll5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lFUnBjbVZqZEdsMlpYTWdmU0JtY205dElDY3VMaTlrYjJNdlpHbHlaV04wYVhabGN5NXFjeWM3WEc1cGJYQnZjblFnZXlCRWIyTjFiV1Z1ZENCOUlHWnliMjBnSnk0dUwyUnZZeTlFYjJOMWJXVnVkQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlpRVTFNVjJGeWJtbHVaeXdnV1VGTlRGQmhjbk5sUlhKeWIzSWdmU0JtY205dElDY3VMaTlsY25KdmNuTXVhbk1uTzF4dWFXMXdiM0owSUhzZ2FYTkRiMnhzWldOMGFXOXVMQ0JwYzFCaGFYSWdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCamIyMXdiM05sUkc5aklIMGdabkp2YlNBbkxpOWpiMjF3YjNObExXUnZZeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnlaWE52YkhabFJXNWtJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMV1Z1WkM1cWN5YzdYRzVjYm1aMWJtTjBhVzl1SUdkbGRFVnljbTl5VUc5ektITnlZeWtnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYzNKaklEMDlQU0FuYm5WdFltVnlKeWxjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRnR6Y21Nc0lITnlZeUFySURGZE8xeHVJQ0FnSUdsbUlDaEJjbkpoZVM1cGMwRnljbUY1S0hOeVl5a3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpjbU11YkdWdVozUm9JRDA5UFNBeUlEOGdjM0pqSURvZ1czTnlZMXN3WFN3Z2MzSmpXekZkWFR0Y2JpQWdJQ0JqYjI1emRDQjdJRzltWm5ObGRDd2djMjkxY21ObElIMGdQU0J6Y21NN1hHNGdJQ0FnY21WMGRYSnVJRnR2Wm1aelpYUXNJRzltWm5ObGRDQXJJQ2gwZVhCbGIyWWdjMjkxY21ObElEMDlQU0FuYzNSeWFXNW5KeUEvSUhOdmRYSmpaUzVzWlc1bmRHZ2dPaUF4S1YwN1hHNTlYRzVtZFc1amRHbHZiaUJ3WVhKelpWQnlaV3gxWkdVb2NISmxiSFZrWlNrZ2UxeHVJQ0FnSUd4bGRDQmpiMjF0Wlc1MElEMGdKeWM3WEc0Z0lDQWdiR1YwSUdGMFEyOXRiV1Z1ZENBOUlHWmhiSE5sTzF4dUlDQWdJR3hsZENCaFpuUmxja1Z0Y0hSNVRHbHVaU0E5SUdaaGJITmxPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2djSEpsYkhWa1pTNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6YjNWeVkyVWdQU0J3Y21Wc2RXUmxXMmxkTzF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hOdmRYSmpaVnN3WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5JeWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dGJXVnVkQ0FyUFZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9ZMjl0YldWdWRDQTlQVDBnSnljZ1B5QW5KeUE2SUdGbWRHVnlSVzF3ZEhsTWFXNWxJRDhnSjF4Y2JseGNiaWNnT2lBblhGeHVKeWtnSzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0hOdmRYSmpaUzV6ZFdKemRISnBibWNvTVNrZ2ZId2dKeUFuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGRFTnZiVzFsYm5RZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGbWRHVnlSVzF3ZEhsTWFXNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDY2xKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NISmxiSFZrWlZ0cElDc2dNVjAvTGxzd1hTQWhQVDBnSnlNbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwSUNzOUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZWFJEYjIxdFpXNTBJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUZSb2FYTWdiV0Y1SUdKbElIZHliMjVuSUdGbWRHVnlJR1J2WXkxbGJtUXNJR0oxZENCcGJpQjBhR0YwSUdOaGMyVWdhWFFnWkc5bGMyNG5kQ0J0WVhSMFpYSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdGMFEyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZV1owWlhKRmJYQjBlVXhwYm1VZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGMFEyOXRiV1Z1ZENBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdJR052YlcxbGJuUXNJR0ZtZEdWeVJXMXdkSGxNYVc1bElIMDdYRzU5WEc0dktpcGNiaUFxSUVOdmJYQnZjMlVnWVNCemRISmxZVzBnYjJZZ1ExTlVJRzV2WkdWeklHbHVkRzhnWVNCemRISmxZVzBnYjJZZ1dVRk5UQ0JFYjJOMWJXVnVkSE11WEc0Z0tseHVJQ29nWUdCZ2RITmNiaUFxSUdsdGNHOXlkQ0I3SUVOdmJYQnZjMlZ5TENCUVlYSnpaWElnZlNCbWNtOXRJQ2Q1WVcxc0oxeHVJQ3BjYmlBcUlHTnZibk4wSUhOeVl6b2djM1J5YVc1bklEMGdMaTR1WEc0Z0tpQmpiMjV6ZENCMGIydGxibk1nUFNCdVpYY2dVR0Z5YzJWeUtDa3VjR0Z5YzJVb2MzSmpLVnh1SUNvZ1kyOXVjM1FnWkc5amN5QTlJRzVsZHlCRGIyMXdiM05sY2lncExtTnZiWEJ2YzJVb2RHOXJaVzV6S1Z4dUlDb2dZR0JnWEc0Z0tpOWNibU5zWVhOeklFTnZiWEJ2YzJWeUlIdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaHZjSFJwYjI1eklEMGdlMzBwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVrYjJNZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbUYwUkdseVpXTjBhWFpsY3lBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ5Wld4MVpHVWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsY25KdmNuTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzWVhKdWFXNW5jeUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05dVJYSnliM0lnUFNBb2MyOTFjbU5sTENCamIyUmxMQ0J0WlhOellXZGxMQ0IzWVhKdWFXNW5LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndiM01nUFNCblpYUkZjbkp2Y2xCdmN5aHpiM1Z5WTJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIZGhjbTVwYm1jcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzWVhKdWFXNW5jeTV3ZFhOb0tHNWxkeUJaUVUxTVYyRnlibWx1Wnlod2IzTXNJR052WkdVc0lHMWxjM05oWjJVcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WeWNtOXljeTV3ZFhOb0tHNWxkeUJaUVUxTVVHRnljMlZGY25KdmNpaHdiM01zSUdOdlpHVXNJRzFsYzNOaFoyVXBLVHRjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXdjbVZtWlhJdGJuVnNiR2x6YUMxamIyRnNaWE5qYVc1blhHNGdJQ0FnSUNBZ0lIUm9hWE11WkdseVpXTjBhWFpsY3lBOUlHNWxkeUJFYVhKbFkzUnBkbVZ6S0hzZ2RtVnljMmx2YmpvZ2IzQjBhVzl1Y3k1MlpYSnphVzl1SUh4OElDY3hMakluSUgwcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05d2RHbHZibk1nUFNCdmNIUnBiMjV6TzF4dUlDQWdJSDFjYmlBZ0lDQmtaV052Y21GMFpTaGtiMk1zSUdGbWRHVnlSRzlqS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhzZ1kyOXRiV1Z1ZEN3Z1lXWjBaWEpGYlhCMGVVeHBibVVnZlNBOUlIQmhjbk5sVUhKbGJIVmtaU2gwYUdsekxuQnlaV3gxWkdVcE8xeHVJQ0FnSUNBZ0lDQXZMMk52Ym5OdmJHVXViRzluS0hzZ1pHTTZJR1J2WXk1amIyMXRaVzUwTENCd2NtVnNkV1JsTENCamIyMXRaVzUwSUgwcFhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYjIxdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCa1l5QTlJR1J2WXk1amIyNTBaVzUwY3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaFpuUmxja1J2WXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUnZZeTVqYjIxdFpXNTBJRDBnWkc5akxtTnZiVzFsYm5RZ1B5QmdKSHRrYjJNdVkyOXRiV1Z1ZEgxY1hHNGtlMk52YlcxbGJuUjlZQ0E2SUdOdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoaFpuUmxja1Z0Y0hSNVRHbHVaU0I4ZkNCa2IyTXVaR2x5WldOMGFYWmxjeTVrYjJOVGRHRnlkQ0I4ZkNBaFpHTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrYjJNdVkyOXRiV1Z1ZEVKbFptOXlaU0E5SUdOdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGMwTnZiR3hsWTNScGIyNG9aR01wSUNZbUlDRmtZeTVtYkc5M0lDWW1JR1JqTG1sMFpXMXpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhWFFnUFNCa1l5NXBkR1Z0YzFzd1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOUVlXbHlLR2wwS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFFnUFNCcGRDNXJaWGs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMklnUFNCcGRDNWpiMjF0Wlc1MFFtVm1iM0psTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExtTnZiVzFsYm5SQ1pXWnZjbVVnUFNCallpQS9JR0FrZTJOdmJXMWxiblI5WEZ4dUpIdGpZbjFnSURvZ1kyOXRiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05pSUQwZ1pHTXVZMjl0YldWdWRFSmxabTl5WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1l5NWpiMjF0Wlc1MFFtVm1iM0psSUQwZ1kySWdQeUJnSkh0amIyMXRaVzUwZlZ4Y2JpUjdZMko5WUNBNklHTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLR0ZtZEdWeVJHOWpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWNIVnphQzVoY0hCc2VTaGtiMk11WlhKeWIzSnpMQ0IwYUdsekxtVnljbTl5Y3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JCY25KaGVTNXdjbTkwYjNSNWNHVXVjSFZ6YUM1aGNIQnNlU2hrYjJNdWQyRnlibWx1WjNNc0lIUm9hWE11ZDJGeWJtbHVaM01wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaRzlqTG1WeWNtOXljeUE5SUhSb2FYTXVaWEp5YjNKek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5akxuZGhjbTVwYm1keklEMGdkR2hwY3k1M1lYSnVhVzVuY3p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeVpXeDFaR1VnUFNCYlhUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1bGNuSnZjbk1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1M1lYSnVhVzVuY3lBOUlGdGRPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRkWEp5Wlc1MElITjBjbVZoYlNCemRHRjBkWE1nYVc1bWIzSnRZWFJwYjI0dVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCTmIzTjBiSGtnZFhObFpuVnNJR0YwSUhSb1pTQmxibVFnYjJZZ2FXNXdkWFFnWm05eUlHRnVJR1Z0Y0hSNUlITjBjbVZoYlM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0J6ZEhKbFlXMUpibVp2S0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dGJXVnVkRG9nY0dGeWMyVlFjbVZzZFdSbEtIUm9hWE11Y0hKbGJIVmtaU2t1WTI5dGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnBjbVZqZEdsMlpYTTZJSFJvYVhNdVpHbHlaV04wYVhabGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUdWeWNtOXljem9nZEdocGN5NWxjbkp2Y25Nc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzWVhKdWFXNW5jem9nZEdocGN5NTNZWEp1YVc1bmMxeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiMjF3YjNObElIUnZhMlZ1Y3lCcGJuUnZJR1J2WTNWdFpXNTBjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQm1iM0pqWlVSdll5QXRJRWxtSUhSb1pTQnpkSEpsWVcwZ1kyOXVkR0ZwYm5NZ2JtOGdaRzlqZFcxbGJuUXNJSE4wYVd4c0lHVnRhWFFnWVNCbWFXNWhiQ0JrYjJOMWJXVnVkQ0JwYm1Oc2RXUnBibWNnWVc1NUlHTnZiVzFsYm5SeklHRnVaQ0JrYVhKbFkzUnBkbVZ6SUhSb1lYUWdkMjkxYkdRZ1ltVWdZWEJ3YkdsbFpDQjBieUJoSUhOMVluTmxjWFZsYm5RZ1pHOWpkVzFsYm5RdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdWdVpFOW1abk5sZENBdElGTm9iM1ZzWkNCaVpTQnpaWFFnYVdZZ1lHWnZjbU5sUkc5allDQnBjeUJoYkhOdklITmxkQ3dnZEc4Z2MyVjBJSFJvWlNCa2IyTjFiV1Z1ZENCeVlXNW5aU0JsYm1RZ1lXNWtJSFJ2SUdsdVpHbGpZWFJsSUdWeWNtOXljeUJqYjNKeVpXTjBiSGt1WEc0Z0lDQWdJQ292WEc0Z0lDQWdLbU52YlhCdmMyVW9kRzlyWlc1ekxDQm1iM0pqWlVSdll5QTlJR1poYkhObExDQmxibVJQWm1aelpYUWdQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSFJ2YTJWdUlHOW1JSFJ2YTJWdWN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxtNWxlSFFvZEc5clpXNHBPMXh1SUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1bGJtUW9abTl5WTJWRWIyTXNJR1Z1WkU5bVpuTmxkQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLaUJCWkhaaGJtTmxJSFJvWlNCamIyMXdiM05sY2lCaWVTQnZibVVnUTFOVUlIUnZhMlZ1TGlBcUwxeHVJQ0FnSUNwdVpYaDBLSFJ2YTJWdUtTQjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9kRzlyWlc0dWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHbHlaV04wYVhabEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ScGNtVmpkR2wyWlhNdVlXUmtLSFJ2YTJWdUxuTnZkWEpqWlN3Z0tHOW1abk5sZEN3Z2JXVnpjMkZuWlN3Z2QyRnlibWx1WnlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3YjNNZ1BTQm5aWFJGY25KdmNsQnZjeWgwYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCdmMxc3dYU0FyUFNCdlptWnpaWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1RmNuSnZjaWh3YjNNc0lDZENRVVJmUkVsU1JVTlVTVlpGSnl3Z2JXVnpjMkZuWlN3Z2QyRnlibWx1WnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2NtVnNkV1JsTG5CMWMyZ29kRzlyWlc0dWMyOTFjbU5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbUYwUkdseVpXTjBhWFpsY3lBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjJOMWJXVnVkQ2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrYjJNZ1BTQmpiMjF3YjNObFJHOWpLSFJvYVhNdWIzQjBhVzl1Y3l3Z2RHaHBjeTVrYVhKbFkzUnBkbVZ6TENCMGIydGxiaXdnZEdocGN5NXZia1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWhkRVJwY21WamRHbDJaWE1nSmlZZ0lXUnZZeTVrYVhKbFkzUnBkbVZ6TG1SdlkxTjBZWEowS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVJYSnliM0lvZEc5clpXNHNJQ2ROU1ZOVFNVNUhYME5JUVZJbkxDQW5UV2x6YzJsdVp5QmthWEpsWTNScGRtVnpMV1Z1WkM5a2IyTXRjM1JoY25RZ2FXNWthV05oZEc5eUlHeHBibVVuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVJsWTI5eVlYUmxLR1J2WXl3Z1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1Sdll5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUWdkR2hwY3k1a2IyTTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1a2IyTWdQU0JrYjJNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoZEVScGNtVmpkR2wyWlhNZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMko1ZEdVdGIzSmtaWEl0YldGeWF5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6Y0dGalpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGpiMjF0Wlc1MEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMjVsZDJ4cGJtVW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNISmxiSFZrWlM1d2RYTm9LSFJ2YTJWdUxuTnZkWEpqWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkbGNuSnZjaWM2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQjBiMnRsYmk1emIzVnlZMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmdKSHQwYjJ0bGJpNXRaWE56WVdkbGZUb2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaDBiMnRsYmk1emIzVnlZMlVwZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIwYjJ0bGJpNXRaWE56WVdkbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWeWNtOXlJRDBnYm1WM0lGbEJUVXhRWVhKelpVVnljbTl5S0dkbGRFVnljbTl5VUc5ektIUnZhMlZ1S1N3Z0oxVk9SVmhRUlVOVVJVUmZWRTlMUlU0bkxDQnRjMmNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1GMFJHbHlaV04wYVhabGN5QjhmQ0FoZEdocGN5NWtiMk1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WlhKeWIzSnpMbkIxYzJnb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWtiMk11WlhKeWIzSnpMbkIxYzJnb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aRzlqTFdWdVpDYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11Wkc5aktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzF6WnlBOUlDZFZibVY0Y0dWamRHVmtJR1J2WXkxbGJtUWdkMmwwYUc5MWRDQndjbVZqWldScGJtY2daRzlqZFcxbGJuUW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ5Y205eWN5NXdkWE5vS0c1bGR5QlpRVTFNVUdGeWMyVkZjbkp2Y2loblpYUkZjbkp2Y2xCdmN5aDBiMnRsYmlrc0lDZFZUa1ZZVUVWRFZFVkVYMVJQUzBWT0p5d2diWE5uS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Sdll5NWthWEpsWTNScGRtVnpMbVJ2WTBWdVpDQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a0lEMGdjbVZ6YjJ4MlpVVnVaQ2gwYjJ0bGJpNWxibVFzSUhSdmEyVnVMbTltWm5ObGRDQXJJSFJ2YTJWdUxuTnZkWEpqWlM1c1pXNW5kR2dzSUhSb2FYTXVaRzlqTG05d2RHbHZibk11YzNSeWFXTjBMQ0IwYUdsekxtOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WkdWamIzSmhkR1VvZEdocGN5NWtiMk1zSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGJtUXVZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWXlBOUlIUm9hWE11Wkc5akxtTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpHOWpMbU52YlcxbGJuUWdQU0JrWXlBL0lHQWtlMlJqZlZ4Y2JpUjdaVzVrTG1OdmJXMWxiblI5WUNBNklHVnVaQzVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtUnZZeTV5WVc1blpWc3lYU0E5SUdWdVpDNXZabVp6WlhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaWEp5YjNKekxuQjFjMmdvYm1WM0lGbEJUVXhRWVhKelpVVnljbTl5S0dkbGRFVnljbTl5VUc5ektIUnZhMlZ1S1N3Z0oxVk9SVmhRUlVOVVJVUmZWRTlMUlU0bkxDQmdWVzV6ZFhCd2IzSjBaV1FnZEc5clpXNGdKSHQwYjJ0bGJpNTBlWEJsZldBcEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRZV3hzSUdGMElHVnVaQ0J2WmlCcGJuQjFkQ0IwYnlCNWFXVnNaQ0JoYm5rZ2NtVnRZV2x1YVc1bklHUnZZM1Z0Wlc1MExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdadmNtTmxSRzlqSUMwZ1NXWWdkR2hsSUhOMGNtVmhiU0JqYjI1MFlXbHVjeUJ1YnlCa2IyTjFiV1Z1ZEN3Z2MzUnBiR3dnWlcxcGRDQmhJR1pwYm1Gc0lHUnZZM1Z0Wlc1MElHbHVZMngxWkdsdVp5QmhibmtnWTI5dGJXVnVkSE1nWVc1a0lHUnBjbVZqZEdsMlpYTWdkR2hoZENCM2IzVnNaQ0JpWlNCaGNIQnNhV1ZrSUhSdklHRWdjM1ZpYzJWeGRXVnVkQ0JrYjJOMWJXVnVkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdaVzVrVDJabWMyVjBJQzBnVTJodmRXeGtJR0psSUhObGRDQnBaaUJnWm05eVkyVkViMk5nSUdseklHRnNjMjhnYzJWMExDQjBieUJ6WlhRZ2RHaGxJR1J2WTNWdFpXNTBJSEpoYm1kbElHVnVaQ0JoYm1RZ2RHOGdhVzVrYVdOaGRHVWdaWEp5YjNKeklHTnZjbkpsWTNSc2VTNWNiaUFnSUNBZ0tpOWNiaUFnSUNBcVpXNWtLR1p2Y21ObFJHOWpJRDBnWm1Gc2MyVXNJR1Z1WkU5bVpuTmxkQ0E5SUMweEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVJ2WXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWtaV052Y21GMFpTaDBhR2x6TG1Sdll5d2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDQjBhR2x6TG1Sdll6dGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaRzlqSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNobWIzSmpaVVJ2WXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiM0IwY3lBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZXlCZlpHbHlaV04wYVhabGN6b2dkR2hwY3k1a2FYSmxZM1JwZG1WeklIMHNJSFJvYVhNdWIzQjBhVzl1Y3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtiMk1nUFNCdVpYY2dSRzlqZFcxbGJuUW9kVzVrWldacGJtVmtMQ0J2Y0hSektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1GMFJHbHlaV04wYVhabGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVJYSnliM0lvWlc1a1QyWm1jMlYwTENBblRVbFRVMGxPUjE5RFNFRlNKeXdnSjAxcGMzTnBibWNnWkdseVpXTjBhWFpsY3kxbGJtUWdhVzVrYVdOaGRHOXlJR3hwYm1VbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSdll5NXlZVzVuWlNBOUlGc3dMQ0JsYm1SUFptWnpaWFFzSUdWdVpFOW1abk5sZEYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtUmxZMjl5WVhSbEtHUnZZeXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FnWkc5ak8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCRGIyMXdiM05sY2lCOU8xeHVJaXdnSW1OdmJuTjBJRUpTUlVGTElEMGdVM2x0WW05c0tDZGljbVZoYXlCMmFYTnBkQ2NwTzF4dVkyOXVjM1FnVTB0SlVDQTlJRk41YldKdmJDZ25jMnRwY0NCamFHbHNaSEpsYmljcE8xeHVZMjl1YzNRZ1VrVk5UMVpGSUQwZ1UzbHRZbTlzS0NkeVpXMXZkbVVnYVhSbGJTY3BPMXh1THlvcVhHNGdLaUJCY0hCc2VTQmhJSFpwYzJsMGIzSWdkRzhnWVNCRFUxUWdaRzlqZFcxbGJuUWdiM0lnYVhSbGJTNWNiaUFxWEc0Z0tpQlhZV3hyY3lCMGFISnZkV2RvSUhSb1pTQjBjbVZsSUNoa1pYQjBhQzFtYVhKemRDa2djM1JoY25ScGJtY2dabkp2YlNCMGFHVWdjbTl2ZEN3Z1kyRnNiR2x1WnlCaFhHNGdLaUJnZG1semFYUnZjbUFnWm5WdVkzUnBiMjRnZDJsMGFDQjBkMjhnWVhKbmRXMWxiblJ6SUhkb1pXNGdaVzUwWlhKcGJtY2daV0ZqYUNCcGRHVnRPbHh1SUNvZ0lDQXRJR0JwZEdWdFlEb2dWR2hsSUdOMWNuSmxiblFnYVhSbGJTd2dkMmhwWTJnZ2FXNWpiSFZrWldRZ2RHaGxJR1p2Ykd4dmQybHVaeUJ0WlcxaVpYSnpPbHh1SUNvZ0lDQWdJQzBnWUhOMFlYSjBPaUJUYjNWeVkyVlViMnRsYmx0ZFlDQmNkVEl3TVRNZ1UyOTFjbU5sSUhSdmEyVnVjeUJpWldadmNtVWdkR2hsSUd0bGVTQnZjaUIyWVd4MVpTeGNiaUFxSUNBZ0lDQWdJSEJ2YzNOcFlteDVJR2x1WTJ4MVpHbHVaeUJwZEhNZ1lXNWphRzl5SUc5eUlIUmhaeTVjYmlBcUlDQWdJQ0F0SUdCclpYay9PaUJVYjJ0bGJpQjhJRzUxYkd4Z0lGeDFNakF4TXlCVFpYUWdabTl5SUhCaGFYSWdkbUZzZFdWekxpQk5ZWGtnZEdobGJpQmlaU0JnYm5Wc2JHQXNJR2xtWEc0Z0tpQWdJQ0FnSUNCMGFHVWdhMlY1SUdKbFptOXlaU0IwYUdVZ1lEcGdJSE5sY0dGeVlYUnZjaUJwY3lCbGJYQjBlUzVjYmlBcUlDQWdJQ0F0SUdCelpYQS9PaUJUYjNWeVkyVlViMnRsYmx0ZFlDQmNkVEl3TVRNZ1UyOTFjbU5sSUhSdmEyVnVjeUJpWlhSM1pXVnVJSFJvWlNCclpYa2dZVzVrSUhSb1pTQjJZV3gxWlN4Y2JpQXFJQ0FnSUNBZ0lIZG9hV05vSUhOb2IzVnNaQ0JwYm1Oc2RXUmxJSFJvWlNCZ09tQWdiV0Z3SUhaaGJIVmxJR2x1WkdsallYUnZjaUJwWmlCZ2RtRnNkV1ZnSUdseklITmxkQzVjYmlBcUlDQWdJQ0F0SUdCMllXeDFaVDg2SUZSdmEyVnVZQ0JjZFRJd01UTWdWR2hsSUhaaGJIVmxJRzltSUdFZ2MyVnhkV1Z1WTJVZ2FYUmxiU3dnYjNJZ2IyWWdZU0J0WVhBZ2NHRnBjaTVjYmlBcUlDQWdMU0JnY0dGMGFHQTZJRlJvWlNCemRHVndjeUJtY205dElIUm9aU0J5YjI5MElIUnZJSFJvWlNCamRYSnlaVzUwSUc1dlpHVXNJR0Z6SUdGdUlHRnljbUY1SUc5bVhHNGdLaUFnSUNBZ1lGc25hMlY1SnlCOElDZDJZV3gxWlNjc0lHNTFiV0psY2wxZ0lIUjFjR3hsY3k1Y2JpQXFYRzRnS2lCVWFHVWdjbVYwZFhKdUlIWmhiSFZsSUc5bUlIUm9aU0IyYVhOcGRHOXlJRzFoZVNCaVpTQjFjMlZrSUhSdklHTnZiblJ5YjJ3Z2RHaGxJSFJ5WVhabGNuTmhiRHBjYmlBcUlDQWdMU0JnZFc1a1pXWnBibVZrWUNBb1pHVm1ZWFZzZENrNklFUnZJRzV2ZEdocGJtY2dZVzVrSUdOdmJuUnBiblZsWEc0Z0tpQWdJQzBnWUhacGMybDBMbE5MU1ZCZ09pQkVieUJ1YjNRZ2RtbHphWFFnZEdobElHTm9hV3hrY21WdUlHOW1JSFJvYVhNZ2RHOXJaVzRzSUdOdmJuUnBiblZsSUhkcGRHaGNiaUFxSUNBZ0lDQWdibVY0ZENCemFXSnNhVzVuWEc0Z0tpQWdJQzBnWUhacGMybDBMa0pTUlVGTFlEb2dWR1Z5YldsdVlYUmxJSFJ5WVhabGNuTmhiQ0JqYjIxd2JHVjBaV3g1WEc0Z0tpQWdJQzBnWUhacGMybDBMbEpGVFU5V1JXQTZJRkpsYlc5MlpTQjBhR1VnWTNWeWNtVnVkQ0JwZEdWdExDQjBhR1Z1SUdOdmJuUnBiblZsSUhkcGRHZ2dkR2hsSUc1bGVIUWdiMjVsWEc0Z0tpQWdJQzBnWUc1MWJXSmxjbUE2SUZObGRDQjBhR1VnYVc1a1pYZ2diMllnZEdobElHNWxlSFFnYzNSbGNDNGdWR2hwY3lCcGN5QjFjMlZtZFd3Z1pYTndaV05wWVd4c2VTQnBabHh1SUNvZ0lDQWdJSFJvWlNCcGJtUmxlQ0J2WmlCMGFHVWdZM1Z5Y21WdWRDQjBiMnRsYmlCb1lYTWdZMmhoYm1kbFpDNWNiaUFxSUNBZ0xTQmdablZ1WTNScGIyNWdPaUJFWldacGJtVWdkR2hsSUc1bGVIUWdkbWx6YVhSdmNpQm1iM0lnZEdocGN5QnBkR1Z0TGlCQlpuUmxjaUIwYUdVZ2IzSnBaMmx1WVd4Y2JpQXFJQ0FnSUNCMmFYTnBkRzl5SUdseklHTmhiR3hsWkNCdmJpQnBkR1Z0SUdWdWRISjVMQ0J1WlhoMElIWnBjMmwwYjNKeklHRnlaU0JqWVd4c1pXUWdZV1owWlhJZ2FHRnVaR3hwYm1kY2JpQXFJQ0FnSUNCaElHNXZiaTFsYlhCMGVTQmdhMlY1WUNCaGJtUWdkMmhsYmlCbGVHbDBhVzVuSUhSb1pTQnBkR1Z0TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUIyYVhOcGRDaGpjM1FzSUhacGMybDBiM0lwSUh0Y2JpQWdJQ0JwWmlBb0ozUjVjR1VuSUdsdUlHTnpkQ0FtSmlCamMzUXVkSGx3WlNBOVBUMGdKMlJ2WTNWdFpXNTBKeWxjYmlBZ0lDQWdJQ0FnWTNOMElEMGdleUJ6ZEdGeWREb2dZM04wTG5OMFlYSjBMQ0IyWVd4MVpUb2dZM04wTG5aaGJIVmxJSDA3WEc0Z0lDQWdYM1pwYzJsMEtFOWlhbVZqZEM1bWNtVmxlbVVvVzEwcExDQmpjM1FzSUhacGMybDBiM0lwTzF4dWZWeHVMeThnVjJsMGFHOTFkQ0IwYUdVZ1lHRnpJSE41YldKdmJHQWdZMkZ6ZEhNc0lGUlRJR1JsWTJ4aGNtVnpJSFJvWlhObElHbHVJSFJvWlNCZ2RtbHphWFJnWEc0dkx5QnVZVzFsYzNCaFkyVWdkWE5wYm1jZ1lIWmhjbUFzSUdKMWRDQjBhR1Z1SUdOdmJYQnNZV2x1Y3lCaFltOTFkQ0IwYUdGMElHSmxZMkYxYzJWY2JpOHZJR0IxYm1seGRXVWdjM2x0WW05c1lDQnRkWE4wSUdKbElHQmpiMjV6ZEdBdVhHNHZLaW9nVkdWeWJXbHVZWFJsSUhacGMybDBJSFJ5WVhabGNuTmhiQ0JqYjIxd2JHVjBaV3g1SUNvdlhHNTJhWE5wZEM1Q1VrVkJTeUE5SUVKU1JVRkxPMXh1THlvcUlFUnZJRzV2ZENCMmFYTnBkQ0IwYUdVZ1kyaHBiR1J5Wlc0Z2IyWWdkR2hsSUdOMWNuSmxiblFnYVhSbGJTQXFMMXh1ZG1semFYUXVVMHRKVUNBOUlGTkxTVkE3WEc0dktpb2dVbVZ0YjNabElIUm9aU0JqZFhKeVpXNTBJR2wwWlcwZ0tpOWNiblpwYzJsMExsSkZUVTlXUlNBOUlGSkZUVTlXUlR0Y2JpOHFLaUJHYVc1a0lIUm9aU0JwZEdWdElHRjBJR0J3WVhSb1lDQm1jbTl0SUdCamMzUmdJR0Z6SUhSb1pTQnliMjkwSUNvdlhHNTJhWE5wZEM1cGRHVnRRWFJRWVhSb0lEMGdLR056ZEN3Z2NHRjBhQ2tnUFQ0Z2UxeHVJQ0FnSUd4bGRDQnBkR1Z0SUQwZ1kzTjBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdXMlpwWld4a0xDQnBibVJsZUYwZ2IyWWdjR0YwYUNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMGIyc2dQU0JwZEdWdFB5NWJabWxsYkdSZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEc5cklDWW1JQ2RwZEdWdGN5Y2dhVzRnZEc5cktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcGRHVnRJRDBnZEc5ckxtbDBaVzF6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2FYUmxiVHRjYm4wN1hHNHZLaXBjYmlBcUlFZGxkQ0IwYUdVZ2FXMXRaV1JwWVhSbElIQmhjbVZ1ZENCamIyeHNaV04wYVc5dUlHOW1JSFJvWlNCcGRHVnRJR0YwSUdCd1lYUm9ZQ0JtY205dElHQmpjM1JnSUdGeklIUm9aU0J5YjI5MExseHVJQ3BjYmlBcUlGUm9jbTkzY3lCaGJpQmxjbkp2Y2lCcFppQjBhR1VnWTI5c2JHVmpkR2x2YmlCcGN5QnViM1FnWm05MWJtUXNJSGRvYVdOb0lITm9iM1ZzWkNCdVpYWmxjaUJvWVhCd1pXNGdhV1lnZEdobElHbDBaVzBnYVhSelpXeG1JR1Y0YVhOMGN5NWNiaUFxTDF4dWRtbHphWFF1Y0dGeVpXNTBRMjlzYkdWamRHbHZiaUE5SUNoamMzUXNJSEJoZEdncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCd1lYSmxiblFnUFNCMmFYTnBkQzVwZEdWdFFYUlFZWFJvS0dOemRDd2djR0YwYUM1emJHbGpaU2d3TENBdE1Ta3BPMXh1SUNBZ0lHTnZibk4wSUdacFpXeGtJRDBnY0dGMGFGdHdZWFJvTG14bGJtZDBhQ0F0SURGZFd6QmRPMXh1SUNBZ0lHTnZibk4wSUdOdmJHd2dQU0J3WVhKbGJuUS9MbHRtYVdWc1pGMDdYRzRnSUNBZ2FXWWdLR052Ykd3Z0ppWWdKMmwwWlcxekp5QnBiaUJqYjJ4c0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXNiRHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oxQmhjbVZ1ZENCamIyeHNaV04wYVc5dUlHNXZkQ0JtYjNWdVpDY3BPMXh1ZlR0Y2JtWjFibU4wYVc5dUlGOTJhWE5wZENod1lYUm9MQ0JwZEdWdExDQjJhWE5wZEc5eUtTQjdYRzRnSUNBZ2JHVjBJR04wY213Z1BTQjJhWE5wZEc5eUtHbDBaVzBzSUhCaGRHZ3BPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdZM1J5YkNBOVBUMGdKM041YldKdmJDY3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpkSEpzTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWm1sbGJHUWdiMllnV3lkclpYa25MQ0FuZG1Gc2RXVW5YU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJR2wwWlcxYlptbGxiR1JkTzF4dUlDQWdJQ0FnSUNCcFppQW9kRzlyWlc0Z0ppWWdKMmwwWlcxekp5QnBiaUIwYjJ0bGJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjBiMnRsYmk1cGRHVnRjeTVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOcElEMGdYM1pwYzJsMEtFOWlhbVZqZEM1bWNtVmxlbVVvY0dGMGFDNWpiMjVqWVhRb1cxdG1hV1ZzWkN3Z2FWMWRLU2tzSUhSdmEyVnVMbWwwWlcxelcybGRMQ0IyYVhOcGRHOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdOcElEMDlQU0FuYm5WdFltVnlKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJR05wSUMwZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphU0E5UFQwZ1FsSkZRVXNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCQ1VrVkJTenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqYVNBOVBUMGdVa1ZOVDFaRktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVMbWwwWlcxekxuTndiR2xqWlNocExDQXhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQXRQU0F4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdZM1J5YkNBOVBUMGdKMloxYm1OMGFXOXVKeUFtSmlCbWFXVnNaQ0E5UFQwZ0oydGxlU2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSeWJDQTlJR04wY213b2FYUmxiU3dnY0dGMGFDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUJqZEhKc0lEMDlQU0FuWm5WdVkzUnBiMjRuSUQ4Z1kzUnliQ2hwZEdWdExDQndZWFJvS1NBNklHTjBjbXc3WEc1OVhHNWNibVY0Y0c5eWRDQjdJSFpwYzJsMElIMDdYRzRpTENBaVpYaHdiM0owSUhzZ1kzSmxZWFJsVTJOaGJHRnlWRzlyWlc0c0lISmxjMjlzZG1WQmMxTmpZV3hoY2l3Z2MyVjBVMk5oYkdGeVZtRnNkV1VnZlNCbWNtOXRJQ2N1TDJOemRDMXpZMkZzWVhJdWFuTW5PMXh1Wlhod2IzSjBJSHNnYzNSeWFXNW5hV1o1SUgwZ1puSnZiU0FuTGk5amMzUXRjM1J5YVc1bmFXWjVMbXB6Snp0Y2JtVjRjRzl5ZENCN0lIWnBjMmwwSUgwZ1puSnZiU0FuTGk5amMzUXRkbWx6YVhRdWFuTW5PMXh1WEc0dktpb2dWR2hsSUdKNWRHVWdiM0prWlhJZ2JXRnlheUFxTDF4dVkyOXVjM1FnUWs5TklEMGdKMXhjZFh0R1JVWkdmU2M3WEc0dktpb2dVM1JoY25RZ2IyWWdaRzlqTFcxdlpHVWdLaTljYm1OdmJuTjBJRVJQUTFWTlJVNVVJRDBnSjF4Y2VEQXlKenNnTHk4Z1F6QTZJRk4wWVhKMElHOW1JRlJsZUhSY2JpOHFLaUJWYm1WNGNHVmpkR1ZrSUdWdVpDQnZaaUJtYkc5M0xXMXZaR1VnS2k5Y2JtTnZibk4wSUVaTVQxZGZSVTVFSUQwZ0oxeGNlREU0SnpzZ0x5OGdRekE2SUVOaGJtTmxiRnh1THlvcUlFNWxlSFFnZEc5clpXNGdhWE1nWVNCelkyRnNZWElnZG1Gc2RXVWdLaTljYm1OdmJuTjBJRk5EUVV4QlVpQTlJQ2RjWEhneFppYzdJQzh2SUVNd09pQlZibWwwSUZObGNHRnlZWFJ2Y2x4dUx5b3FJRUJ5WlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnZEc5clpXNWdJR2x6SUdFZ1pteHZkeUJ2Y2lCaWJHOWpheUJqYjJ4c1pXTjBhVzl1SUNvdlhHNWpiMjV6ZENCcGMwTnZiR3hsWTNScGIyNGdQU0FvZEc5clpXNHBJRDArSUNFaGRHOXJaVzRnSmlZZ0oybDBaVzF6SnlCcGJpQjBiMnRsYmp0Y2JpOHFLaUJBY21WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhSdmEyVnVZQ0JwY3lCaElHWnNiM2NnYjNJZ1lteHZZMnNnYzJOaGJHRnlPeUJ1YjNRZ1lXNGdZV3hwWVhNZ0tpOWNibU52Ym5OMElHbHpVMk5oYkdGeUlEMGdLSFJ2YTJWdUtTQTlQaUFoSVhSdmEyVnVJQ1ltWEc0Z0lDQWdLSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZHpZMkZzWVhJbklIeDhYRzRnSUNBZ0lDQWdJSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZHphVzVuYkdVdGNYVnZkR1ZrTFhOallXeGhjaWNnZkh4Y2JpQWdJQ0FnSUNBZ2RHOXJaVzR1ZEhsd1pTQTlQVDBnSjJSdmRXSnNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp5QjhmRnh1SUNBZ0lDQWdJQ0IwYjJ0bGJpNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGMyTmhiR0Z5SnlrN1hHNHZLaUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdibVY0ZENBcUwxeHVMeW9xSUVkbGRDQmhJSEJ5YVc1MFlXSnNaU0J5WlhCeVpYTmxiblJoZEdsdmJpQnZaaUJoSUd4bGVHVnlJSFJ2YTJWdUlDb3ZYRzVtZFc1amRHbHZiaUJ3Y21WMGRIbFViMnRsYmloMGIydGxiaWtnZTF4dUlDQWdJSE4zYVhSamFDQW9kRzlyWlc0cElIdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCQ1QwMDZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSnp4Q1QwMCtKenRjYmlBZ0lDQWdJQ0FnWTJGelpTQkVUME5WVFVWT1ZEcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuUEVSUFF6NG5PMXh1SUNBZ0lDQWdJQ0JqWVhObElFWk1UMWRmUlU1RU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2M4Umt4UFYxOUZUa1ErSnp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JUUTBGTVFWSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSnp4VFEwRk1RVkkrSnp0Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQktVMDlPTG5OMGNtbHVaMmxtZVNoMGIydGxiaWs3WEc0Z0lDQWdmVnh1ZlZ4dUx5b3FJRWxrWlc1MGFXWjVJSFJvWlNCMGVYQmxJRzltSUdFZ2JHVjRaWElnZEc5clpXNHVJRTFoZVNCeVpYUjFjbTRnWUc1MWJHeGdJR1p2Y2lCMWJtdHViM2R1SUhSdmEyVnVjeTRnS2k5Y2JtWjFibU4wYVc5dUlIUnZhMlZ1Vkhsd1pTaHpiM1Z5WTJVcElIdGNiaUFnSUNCemQybDBZMmdnS0hOdmRYSmpaU2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJRUpQVFRwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5ZbmwwWlMxdmNtUmxjaTF0WVhKckp6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCRVQwTlZUVVZPVkRwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5aRzlqTFcxdlpHVW5PMXh1SUNBZ0lDQWdJQ0JqWVhObElFWk1UMWRmUlU1RU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RtYkc5M0xXVnljbTl5TFdWdVpDYzdYRzRnSUNBZ0lDQWdJR05oYzJVZ1UwTkJURUZTT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZHpZMkZzWVhJbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjdExTMG5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNka2IyTXRjM1JoY25Rbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjdUxpNG5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNka2IyTXRaVzVrSnp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuSnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWEZ4dUp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblhGeHlYRnh1SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5ibVYzYkdsdVpTYzdYRzRnSUNBZ0lDQWdJR05oYzJVZ0p5MG5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkelpYRXRhWFJsYlMxcGJtUW5PMXh1SUNBZ0lDQWdJQ0JqWVhObElDYy9KenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSnpvbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2R0WVhBdGRtRnNkV1V0YVc1a0p6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNBbmV5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSjJac2IzY3RiV0Z3TFhOMFlYSjBKenRjYmlBZ0lDQWdJQ0FnWTJGelpTQW5mU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0oyWnNiM2N0YldGd0xXVnVaQ2M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMXNuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZG1iRzkzTFhObGNTMXpkR0Z5ZENjN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSjEwbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RtYkc5M0xYTmxjUzFsYm1Rbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjc0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuWTI5dGJXRW5PMXh1SUNBZ0lIMWNiaUFnSUNCemQybDBZMmdnS0hOdmRYSmpaVnN3WFNrZ2UxeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjZ0p6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblhGeDBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbmMzQmhZMlVuTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2NqSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5ZMjl0YldWdWRDYzdYRzRnSUNBZ0lDQWdJR05oYzJVZ0p5VW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNka2FYSmxZM1JwZG1VdGJHbHVaU2M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKeW9uT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZGhiR2xoY3ljN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSnlZbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RoYm1Ob2IzSW5PMXh1SUNBZ0lDQWdJQ0JqWVhObElDY2hKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbmRHRm5KenRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJaWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5jMmx1WjJ4bExYRjFiM1JsWkMxelkyRnNZWEluTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2RjSWljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlJ2ZFdKc1pTMXhkVzkwWldRdGMyTmhiR0Z5Snp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuZkNjNlhHNGdJQ0FnSUNBZ0lHTmhjMlVnSno0bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RpYkc5amF5MXpZMkZzWVhJdGFHVmhaR1Z5Snp0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc1OVhHNWNibVY0Y0c5eWRDQjdJRUpQVFN3Z1JFOURWVTFGVGxRc0lFWk1UMWRmUlU1RUxDQlRRMEZNUVZJc0lHbHpRMjlzYkdWamRHbHZiaXdnYVhOVFkyRnNZWElzSUhCeVpYUjBlVlJ2YTJWdUxDQjBiMnRsYmxSNWNHVWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QkNUMDBzSUVSUFExVk5SVTVVTENCR1RFOVhYMFZPUkN3Z1UwTkJURUZTSUgwZ1puSnZiU0FuTGk5amMzUXVhbk1uTzF4dVhHNHZLbHh1VTFSQlVsUWdMVDRnYzNSeVpXRnRYRzVjYm5OMGNtVmhiVnh1SUNCa2FYSmxZM1JwZG1VZ0xUNGdiR2x1WlMxbGJtUWdMVDRnYzNSeVpXRnRYRzRnSUdsdVpHVnVkQ0FySUd4cGJtVXRaVzVrSUMwK0lITjBjbVZoYlZ4dUlDQmJaV3h6WlYwZ0xUNGdiR2x1WlMxemRHRnlkRnh1WEc1c2FXNWxMV1Z1WkZ4dUlDQmpiMjF0Wlc1MElDMCtJR3hwYm1VdFpXNWtYRzRnSUc1bGQyeHBibVVnTFQ0Z0xseHVJQ0JwYm5CMWRDMWxibVFnTFQ0Z1JVNUVYRzVjYm14cGJtVXRjM1JoY25SY2JpQWdaRzlqTFhOMFlYSjBJQzArSUdSdlkxeHVJQ0JrYjJNdFpXNWtJQzArSUhOMGNtVmhiVnh1SUNCYlpXeHpaVjBnTFQ0Z2FXNWtaVzUwSUMwK0lHSnNiMk5yTFhOMFlYSjBYRzVjYm1Kc2IyTnJMWE4wWVhKMFhHNGdJSE5sY1MxcGRHVnRMWE4wWVhKMElDMCtJR0pzYjJOckxYTjBZWEowWEc0Z0lHVjRjR3hwWTJsMExXdGxlUzF6ZEdGeWRDQXRQaUJpYkc5amF5MXpkR0Z5ZEZ4dUlDQnRZWEF0ZG1Gc2RXVXRjM1JoY25RZ0xUNGdZbXh2WTJzdGMzUmhjblJjYmlBZ1cyVnNjMlZkSUMwK0lHUnZZMXh1WEc1a2IyTmNiaUFnYkdsdVpTMWxibVFnTFQ0Z2JHbHVaUzF6ZEdGeWRGeHVJQ0J6Y0dGalpYTWdMVDRnWkc5alhHNGdJR0Z1WTJodmNpQXRQaUJrYjJOY2JpQWdkR0ZuSUMwK0lHUnZZMXh1SUNCbWJHOTNMWE4wWVhKMElDMCtJR1pzYjNjZ0xUNGdaRzlqWEc0Z0lHWnNiM2N0Wlc1a0lDMCtJR1Z5Y205eUlDMCtJR1J2WTF4dUlDQnpaWEV0YVhSbGJTMXpkR0Z5ZENBdFBpQmxjbkp2Y2lBdFBpQmtiMk5jYmlBZ1pYaHdiR2xqYVhRdGEyVjVMWE4wWVhKMElDMCtJR1Z5Y205eUlDMCtJR1J2WTF4dUlDQnRZWEF0ZG1Gc2RXVXRjM1JoY25RZ0xUNGdaRzlqWEc0Z0lHRnNhV0Z6SUMwK0lHUnZZMXh1SUNCeGRXOTBaUzF6ZEdGeWRDQXRQaUJ4ZFc5MFpXUXRjMk5oYkdGeUlDMCtJR1J2WTF4dUlDQmliRzlqYXkxelkyRnNZWEl0YUdWaFpHVnlJQzArSUd4cGJtVXRaVzVrSUMwK0lHSnNiMk5yTFhOallXeGhjaWh0YVc0cElDMCtJR3hwYm1VdGMzUmhjblJjYmlBZ1cyVnNjMlZkSUMwK0lIQnNZV2x1TFhOallXeGhjaWhtWVd4elpTd2diV2x1S1NBdFBpQmtiMk5jYmx4dVpteHZkMXh1SUNCc2FXNWxMV1Z1WkNBdFBpQm1iRzkzWEc0Z0lITndZV05sY3lBdFBpQm1iRzkzWEc0Z0lHRnVZMmh2Y2lBdFBpQm1iRzkzWEc0Z0lIUmhaeUF0UGlCbWJHOTNYRzRnSUdac2IzY3RjM1JoY25RZ0xUNGdabXh2ZHlBdFBpQm1iRzkzWEc0Z0lHWnNiM2N0Wlc1a0lDMCtJQzVjYmlBZ2MyVnhMV2wwWlcwdGMzUmhjblFnTFQ0Z1pYSnliM0lnTFQ0Z1pteHZkMXh1SUNCbGVIQnNhV05wZEMxclpYa3RjM1JoY25RZ0xUNGdabXh2ZDF4dUlDQnRZWEF0ZG1Gc2RXVXRjM1JoY25RZ0xUNGdabXh2ZDF4dUlDQmhiR2xoY3lBdFBpQm1iRzkzWEc0Z0lIRjFiM1JsTFhOMFlYSjBJQzArSUhGMWIzUmxaQzF6WTJGc1lYSWdMVDRnWm14dmQxeHVJQ0JqYjIxdFlTQXRQaUJtYkc5M1hHNGdJRnRsYkhObFhTQXRQaUJ3YkdGcGJpMXpZMkZzWVhJb2RISjFaU3dnTUNrZ0xUNGdabXh2ZDF4dVhHNXhkVzkwWldRdGMyTmhiR0Z5WEc0Z0lIRjFiM1JsTFdWdVpDQXRQaUF1WEc0Z0lGdGxiSE5sWFNBdFBpQnhkVzkwWldRdGMyTmhiR0Z5WEc1Y2JtSnNiMk5yTFhOallXeGhjaWh0YVc0cFhHNGdJRzVsZDJ4cGJtVWdLeUJ3WldWcktHbHVaR1Z1ZENBOElHMXBiaWtnTFQ0Z0xseHVJQ0JiWld4elpWMGdMVDRnWW14dlkyc3RjMk5oYkdGeUtHMXBiaWxjYmx4dWNHeGhhVzR0YzJOaGJHRnlLR2x6TFdac2IzY3NJRzFwYmlsY2JpQWdjMk5oYkdGeUxXVnVaQ2hwY3kxbWJHOTNLU0F0UGlBdVhHNGdJSEJsWldzb2JtVjNiR2x1WlNBcklDaHBibVJsYm5RZ1BDQnRhVzRwS1NBdFBpQXVYRzRnSUZ0bGJITmxYU0F0UGlCd2JHRnBiaTF6WTJGc1lYSW9iV2x1S1Z4dUtpOWNibVoxYm1OMGFXOXVJR2x6Ulcxd2RIa29ZMmdwSUh0Y2JpQWdJQ0J6ZDJsMFkyZ2dLR05vS1NCN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnZFc1a1pXWnBibVZrT2x4dUlDQWdJQ0FnSUNCallYTmxJQ2NnSnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWEZ4dUp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblhGeHlKenBjYmlBZ0lDQWdJQ0FnWTJGelpTQW5YRngwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYm4xY2JtTnZibk4wSUdobGVFUnBaMmwwY3lBOUlHNWxkeUJUWlhRb0p6QXhNak0wTlRZM09EbEJRa05FUlVaaFltTmtaV1luS1R0Y2JtTnZibk4wSUhSaFowTm9ZWEp6SUQwZ2JtVjNJRk5sZENoY0lqQXhNak0wTlRZM09EbEJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNkxTTTdMejg2UUNZOUt5UmZMaUYrS2ljb0tWd2lLVHRjYm1OdmJuTjBJR1pzYjNkSmJtUnBZMkYwYjNKRGFHRnljeUE5SUc1bGR5QlRaWFFvSnl4YlhYdDlKeWs3WEc1amIyNXpkQ0JwYm5aaGJHbGtRVzVqYUc5eVEyaGhjbk1nUFNCdVpYY2dVMlYwS0NjZ0xGdGRlMzFjWEc1Y1hISmNYSFFuS1R0Y2JtTnZibk4wSUdselRtOTBRVzVqYUc5eVEyaGhjaUE5SUNoamFDa2dQVDRnSVdOb0lIeDhJR2x1ZG1Gc2FXUkJibU5vYjNKRGFHRnljeTVvWVhNb1kyZ3BPMXh1THlvcVhHNGdLaUJUY0d4cGRITWdZVzRnYVc1d2RYUWdjM1J5YVc1bklHbHVkRzhnYkdWNGFXTmhiQ0IwYjJ0bGJuTXNJR2t1WlM0Z2MyMWhiR3hsY2lCemRISnBibWR6SUhSb1lYUWdZWEpsWEc0Z0tpQmxZWE5wYkhrZ2FXUmxiblJwWm1saFlteGxJR0o1SUdCMGIydGxibk11ZEc5clpXNVVlWEJsS0NsZ0xseHVJQ3BjYmlBcUlFeGxlR2x1WnlCemRHRnlkSE1nWVd4M1lYbHpJR2x1SUdFZ1hDSnpkSEpsWVcxY0lpQmpiMjUwWlhoMExpQkpibU52YlhCc1pYUmxJR2x1Y0hWMElHMWhlU0JpWlNCaWRXWm1aWEpsWkZ4dUlDb2dkVzUwYVd3Z1lTQmpiMjF3YkdWMFpTQjBiMnRsYmlCallXNGdZbVVnWlcxcGRIUmxaQzVjYmlBcVhHNGdLaUJKYmlCaFpHUnBkR2x2YmlCMGJ5QnpiR2xqWlhNZ2IyWWdkR2hsSUc5eWFXZHBibUZzSUdsdWNIVjBMQ0IwYUdVZ1ptOXNiRzkzYVc1bklHTnZiblJ5YjJ3Z1kyaGhjbUZqZEdWeWMxeHVJQ29nYldGNUlHRnNjMjhnWW1VZ1pXMXBkSFJsWkRwY2JpQXFYRzRnS2lBdElHQmNYSGd3TW1BZ0tGTjBZWEowSUc5bUlGUmxlSFFwT2lCQklHUnZZM1Z0Wlc1MElITjBZWEowY3lCM2FYUm9JSFJvWlNCdVpYaDBJSFJ2YTJWdVhHNGdLaUF0SUdCY1hIZ3hPR0FnS0VOaGJtTmxiQ2s2SUZWdVpYaHdaV04wWldRZ1pXNWtJRzltSUdac2IzY3RiVzlrWlNBb2FXNWthV05oZEdWeklHRnVJR1Z5Y205eUtWeHVJQ29nTFNCZ1hGeDRNV1pnSUNoVmJtbDBJRk5sY0dGeVlYUnZjaWs2SUU1bGVIUWdkRzlyWlc0Z2FYTWdZU0J6WTJGc1lYSWdkbUZzZFdWY2JpQXFJQzBnWUZ4Y2RYdEdSVVpHZldBZ0tFSjVkR1VnYjNKa1pYSWdiV0Z5YXlrNklFVnRhWFIwWldRZ2MyVndZWEpoZEdWc2VTQnZkWFJ6YVdSbElHUnZZM1Z0Wlc1MGMxeHVJQ292WEc1amJHRnpjeUJNWlhobGNpQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDQWdLaUJHYkdGbklHbHVaR2xqWVhScGJtY2dkMmhsZEdobGNpQjBhR1VnWlc1a0lHOW1JSFJvWlNCamRYSnlaVzUwSUdKMVptWmxjaUJ0WVhKcmN5QjBhR1VnWlc1a0lHOW1YRzRnSUNBZ0lDQWdJQ0FxSUdGc2JDQnBibkIxZEZ4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1aGRFVnVaQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0F2S2lwY2JpQWdJQ0FnSUNBZ0lDb2dSWGh3YkdsamFYUWdhVzVrWlc1MElITmxkQ0JwYmlCaWJHOWpheUJ6WTJGc1lYSWdhR1ZoWkdWeUxDQmhjeUJoYmlCdlptWnpaWFFnWm5KdmJTQjBhR1VnWTNWeWNtVnVkRnh1SUNBZ0lDQWdJQ0FnS2lCdGFXNXBiWFZ0SUdsdVpHVnVkQ3dnYzI4Z1pTNW5MaUJ6WlhRZ2RHOGdNU0JtY205dElHRWdhR1ZoWkdWeUlHQjhNaXRnTGlCVFpYUWdkRzhnTFRFZ2FXWWdibTkwWEc0Z0lDQWdJQ0FnSUNBcUlHVjRjR3hwWTJsMGJIa2djMlYwTGx4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1aWJHOWphMU5qWVd4aGNrbHVaR1Z1ZENBOUlDMHhPMXh1SUNBZ0lDQWdJQ0F2S2lwY2JpQWdJQ0FnSUNBZ0lDb2dRbXh2WTJzZ2MyTmhiR0Z5Y3lCMGFHRjBJR2x1WTJ4MVpHVWdZU0FySUNoclpXVndLU0JqYUc5dGNHbHVaeUJwYm1ScFkyRjBiM0lnYVc0Z2RHaGxhWElnYUdWaFpHVnlYRzRnSUNBZ0lDQWdJQ0FxSUdsdVkyeDFaR1VnZEhKaGFXeHBibWNnWlcxd2RIa2diR2x1WlhNc0lIZG9hV05vSUdGeVpTQnZkR2hsY25kcGMyVWdaWGhqYkhWa1pXUWdabkp2YlNCMGFHVmNiaUFnSUNBZ0lDQWdJQ29nYzJOaGJHRnlKM01nWTI5dWRHVnVkSE11WEc0Z0lDQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Kc2IyTnJVMk5oYkdGeVMyVmxjQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0F2S2lvZ1EzVnljbVZ1ZENCcGJuQjFkQ0FxTDF4dUlDQWdJQ0FnSUNCMGFHbHpMbUoxWm1abGNpQTlJQ2NuTzF4dUlDQWdJQ0FnSUNBdktpcGNiaUFnSUNBZ0lDQWdJQ29nUm14aFp5QnViM1JwYm1jZ2QyaGxkR2hsY2lCMGFHVWdiV0Z3SUhaaGJIVmxJR2x1WkdsallYUnZjaUE2SUdOaGJpQnBiVzFsWkdsaGRHVnNlU0JtYjJ4c2IzY2dkR2hwYzF4dUlDQWdJQ0FnSUNBZ0tpQnViMlJsSUhkcGRHaHBiaUJoSUdac2IzY2dZMjl1ZEdWNGRDNWNiaUFnSUNBZ0lDQWdJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVabXh2ZDB0bGVTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQXZLaW9nUTI5MWJuUWdiMllnYzNWeWNtOTFibVJwYm1jZ1pteHZkeUJqYjJ4c1pXTjBhVzl1SUd4bGRtVnNjeTRnS2k5Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVtYkc5M1RHVjJaV3dnUFNBd08xeHVJQ0FnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FnSUNvZ1RXbHVhVzExYlNCc1pYWmxiQ0J2WmlCcGJtUmxiblJoZEdsdmJpQnlaWEYxYVhKbFpDQm1iM0lnYm1WNGRDQnNhVzVsY3lCMGJ5QmlaU0J3WVhKelpXUWdZWE1nWVZ4dUlDQWdJQ0FnSUNBZ0tpQndZWEowSUc5bUlIUm9aU0JqZFhKeVpXNTBJSE5qWVd4aGNpQjJZV3gxWlM1Y2JpQWdJQ0FnSUNBZ0lDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVG1WNGRDQTlJREE3WEc0Z0lDQWdJQ0FnSUM4cUtpQkpibVJsYm5SaGRHbHZiaUJzWlhabGJDQnZaaUIwYUdVZ1kzVnljbVZ1ZENCc2FXNWxMaUFxTDF4dUlDQWdJQ0FnSUNCMGFHbHpMbWx1WkdWdWRGWmhiSFZsSUQwZ01EdGNiaUFnSUNBZ0lDQWdMeW9xSUZCdmMybDBhVzl1SUc5bUlIUm9aU0J1WlhoMElGeGNiaUJqYUdGeVlXTjBaWEl1SUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11YkdsdVpVVnVaRkJ2Y3lBOUlHNTFiR3c3WEc0Z0lDQWdJQ0FnSUM4cUtpQlRkRzl5WlhNZ2RHaGxJSE4wWVhSbElHOW1JSFJvWlNCc1pYaGxjaUJwWmlCeVpXRmphR2x1WnlCMGFHVWdaVzVrSUc5bUlHbHVZM0J2YlhCc1pYUmxJR2x1Y0hWMElDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdWJtVjRkQ0E5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQzhxS2lCQklIQnZhVzUwWlhJZ2RHOGdZR0oxWm1abGNtQTdJSFJvWlNCamRYSnlaVzUwSUhCdmMybDBhVzl1SUc5bUlIUm9aU0JzWlhobGNpNGdLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NXdiM01nUFNBd08xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSFpXNWxjbUYwWlNCWlFVMU1JSFJ2YTJWdWN5Qm1jbTl0SUhSb1pTQmdjMjkxY21ObFlDQnpkSEpwYm1jdUlFbG1JR0JwYm1OdmJYQnNaWFJsWUN4Y2JpQWdJQ0FnS2lCaElIQmhjblFnYjJZZ2RHaGxJR3hoYzNRZ2JHbHVaU0J0WVhrZ1ltVWdiR1ZtZENCaGN5QmhJR0oxWm1abGNpQm1iM0lnZEdobElHNWxlSFFnWTJGc2JDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnlaWFIxY201eklFRWdaMlZ1WlhKaGRHOXlJRzltSUd4bGVHbGpZV3dnZEc5clpXNXpYRzRnSUNBZ0lDb3ZYRzRnSUNBZ0tteGxlQ2h6YjNWeVkyVXNJR2x1WTI5dGNHeGxkR1VnUFNCbVlXeHpaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9jMjkxY21ObEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlITnZkWEpqWlNBaFBUMGdKM04wY21sdVp5Y3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ1ZIbHdaVVZ5Y205eUtDZHpiM1Z5WTJVZ2FYTWdibTkwSUdFZ2MzUnlhVzVuSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtSjFabVpsY2lBOUlIUm9hWE11WW5WbVptVnlJRDhnZEdocGN5NWlkV1ptWlhJZ0t5QnpiM1Z5WTJVZ09pQnpiM1Z5WTJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxteHBibVZGYm1SUWIzTWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJvYVhNdVlYUkZibVFnUFNBaGFXNWpiMjF3YkdWMFpUdGNiaUFnSUNBZ0lDQWdiR1YwSUc1bGVIUWdQU0IwYUdsekxtNWxlSFFnUHo4Z0ozTjBjbVZoYlNjN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNodVpYaDBJQ1ltSUNocGJtTnZiWEJzWlhSbElIeDhJSFJvYVhNdWFHRnpRMmhoY25Nb01Ta3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JtVjRkQ0E5SUhscFpXeGtLaUIwYUdsekxuQmhjbk5sVG1WNGRDaHVaWGgwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZWFJNYVc1bFJXNWtLQ2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdhU0E5SUhSb2FYTXVjRzl6TzF4dUlDQWdJQ0FnSUNCc1pYUWdZMmdnUFNCMGFHbHpMbUoxWm1abGNsdHBYVHRjYmlBZ0lDQWdJQ0FnZDJocGJHVWdLR05vSUQwOVBTQW5JQ2NnZkh3Z1kyZ2dQVDA5SUNkY1hIUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyZ2dQU0IwYUdsekxtSjFabVpsY2xzcksybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXTm9JSHg4SUdOb0lEMDlQU0FuSXljZ2ZId2dZMmdnUFQwOUlDZGNYRzRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0oxeGNjaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVpZFdabVpYSmJhU0FySURGZElEMDlQU0FuWEZ4dUp6dGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQmphR0Z5UVhRb2Jpa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1aWRXWm1aWEpiZEdocGN5NXdiM01nS3lCdVhUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWRHbHVkV1ZUWTJGc1lYSW9iMlptYzJWMEtTQjdYRzRnSUNBZ0lDQWdJR3hsZENCamFDQTlJSFJvYVhNdVluVm1abVZ5VzI5bVpuTmxkRjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sdVpHVnVkRTVsZUhRZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVc1a1pXNTBJRDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaGphQ0E5UFQwZ0p5QW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vSUQwZ2RHaHBjeTVpZFdabVpYSmJLeXRwYm1SbGJuUWdLeUJ2Wm1aelpYUmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05vSUQwOVBTQW5YRnh5SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUc1bGVIUWdQU0IwYUdsekxtSjFabVpsY2x0cGJtUmxiblFnS3lCdlptWnpaWFFnS3lBeFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYm1WNGRDQTlQVDBnSjF4Y2JpY2dmSHdnS0NGdVpYaDBJQ1ltSUNGMGFHbHpMbUYwUlc1a0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzltWm5ObGRDQXJJR2x1WkdWdWRDQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWTJnZ1BUMDlJQ2RjWEc0bklIeDhJR2x1WkdWdWRDQStQU0IwYUdsekxtbHVaR1Z1ZEU1bGVIUWdmSHdnS0NGamFDQW1KaUFoZEdocGN5NWhkRVZ1WkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lHOW1abk5sZENBcklHbHVaR1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ0xURTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHTm9JRDA5UFNBbkxTY2dmSHdnWTJnZ1BUMDlJQ2N1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaSFFnUFNCMGFHbHpMbUoxWm1abGNpNXpkV0p6ZEhJb2IyWm1jMlYwTENBektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ29aSFFnUFQwOUlDY3RMUzBuSUh4OElHUjBJRDA5UFNBbkxpNHVKeWtnSmlZZ2FYTkZiWEIwZVNoMGFHbHpMbUoxWm1abGNsdHZabVp6WlhRZ0t5QXpYU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQzB4TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdlptWnpaWFE3WEc0Z0lDQWdmVnh1SUNBZ0lHZGxkRXhwYm1Vb0tTQjdYRzRnSUNBZ0lDQWdJR3hsZENCbGJtUWdQU0IwYUdsekxteHBibVZGYm1SUWIzTTdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWlc1a0lDRTlQU0FuYm5WdFltVnlKeUI4ZkNBb1pXNWtJQ0U5UFNBdE1TQW1KaUJsYm1RZ1BDQjBhR2x6TG5CdmN5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnVaQ0E5SUhSb2FYTXVZblZtWm1WeUxtbHVaR1Y0VDJZb0oxeGNiaWNzSUhSb2FYTXVjRzl6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWJHbHVaVVZ1WkZCdmN5QTlJR1Z1WkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvWlc1a0lEMDlQU0F0TVNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1GMFJXNWtJRDhnZEdocGN5NWlkV1ptWlhJdWMzVmljM1J5YVc1bktIUm9hWE11Y0c5ektTQTZJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtSjFabVpsY2x0bGJtUWdMU0F4WFNBOVBUMGdKMXhjY2ljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYm1RZ0xUMGdNVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVluVm1abVZ5TG5OMVluTjBjbWx1WnloMGFHbHpMbkJ2Y3l3Z1pXNWtLVHRjYmlBZ0lDQjlYRzRnSUNBZ2FHRnpRMmhoY25Nb2Jpa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2IzTWdLeUJ1SUR3OUlIUm9hWE11WW5WbVptVnlMbXhsYm1kMGFEdGNiaUFnSUNCOVhHNGdJQ0FnYzJWMFRtVjRkQ2h6ZEdGMFpTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtSjFabVpsY2lBOUlIUm9hWE11WW5WbVptVnlMbk4xWW5OMGNtbHVaeWgwYUdsekxuQnZjeWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjRzl6SUQwZ01EdGNiaUFnSUNBZ0lDQWdkR2hwY3k1c2FXNWxSVzVrVUc5eklEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV1WlhoMElEMGdjM1JoZEdVN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNiaUFnSUNCd1pXVnJLRzRwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZblZtWm1WeUxuTjFZbk4wY2loMGFHbHpMbkJ2Y3l3Z2JpazdYRzRnSUNBZ2ZWeHVJQ0FnSUNwd1lYSnpaVTVsZUhRb2JtVjRkQ2tnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0c1bGVIUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOMGNtVmhiU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxVM1J5WldGdEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RzYVc1bExYTjBZWEowSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNHRnljMlZNYVc1bFUzUmhjblFvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oySnNiMk5yTFhOMFlYSjBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVkNiRzlqYTFOMFlYSjBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNka2IyTW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpVUnZZM1Z0Wlc1MEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RtYkc5M0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWR2JHOTNRMjlzYkdWamRHbHZiaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmNYVnZkR1ZrTFhOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxVWFZ2ZEdWa1UyTmhiR0Z5S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d1lYSnpaVUpzYjJOclUyTmhiR0Z5S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHdiR0ZwYmkxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d1lYSnpaVkJzWVdsdVUyTmhiR0Z5S0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnS25CaGNuTmxVM1J5WldGdEtDa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2JHbHVaU0E5SUhSb2FYTXVaMlYwVEdsdVpTZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaU0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sZEU1bGVIUW9KM04wY21WaGJTY3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaVnN3WFNBOVBUMGdRazlOS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxJRDBnYkdsdVpTNXpkV0p6ZEhKcGJtY29NU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLR3hwYm1WYk1GMGdQVDA5SUNjbEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR1JwY2tWdVpDQTlJR3hwYm1VdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdOeklEMGdiR2x1WlM1cGJtUmxlRTltS0Njakp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FHbHNaU0FvWTNNZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTJnZ1BTQnNhVzVsVzJOeklDMGdNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTm9JRDA5UFNBbklDY2dmSHdnWTJnZ1BUMDlJQ2RjWEhRbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdScGNrVnVaQ0E5SUdOeklDMGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamN5QTlJR3hwYm1VdWFXNWtaWGhQWmlnbkl5Y3NJR056SUNzZ01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLSFJ5ZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamFDQTlJR3hwYm1WYlpHbHlSVzVrSUMwZ01WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuSUNjZ2ZId2dZMmdnUFQwOUlDZGNYSFFuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmthWEpGYm1RZ0xUMGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JpQTlJQ2g1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb1pHbHlSVzVrS1NrZ0t5QW9lV2xsYkdRcUlIUm9hWE11Y0hWemFGTndZV05sY3loMGNuVmxLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvYkdsdVpTNXNaVzVuZEdnZ0xTQnVLVHNnTHk4Z2NHOXpjMmxpYkdVZ1kyOXRiV1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2RYTm9UbVYzYkdsdVpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkemRISmxZVzBuTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtRjBUR2x1WlVWdVpDZ3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemNDQTlJSGxwWld4a0tpQjBhR2x6TG5CMWMyaFRjR0ZqWlhNb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvYkdsdVpTNXNaVzVuZEdnZ0xTQnpjQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1RtVjNiR2x1WlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2R6ZEhKbFlXMG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhscFpXeGtJRVJQUTFWTlJVNVVPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVk1hVzVsVTNSaGNuUW9LVHRjYmlBZ0lDQjlYRzRnSUNBZ0tuQmhjbk5sVEdsdVpWTjBZWEowS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamFDQTlJSFJvYVhNdVkyaGhja0YwS0RBcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOb0lDWW1JQ0YwYUdsekxtRjBSVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWMFRtVjRkQ2duYkdsdVpTMXpkR0Z5ZENjcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWTJnZ1BUMDlJQ2N0SnlCOGZDQmphQ0E5UFQwZ0p5NG5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZWFJGYm1RZ0ppWWdJWFJvYVhNdWFHRnpRMmhoY25Nb05Da3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWMFRtVjRkQ2duYkdsdVpTMXpkR0Z5ZENjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjeUE5SUhSb2FYTXVjR1ZsYXlnektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ29jeUE5UFQwZ0p5MHRMU2NnZkh3Z2N5QTlQVDBnSnk0dUxpY3BJQ1ltSUdselJXMXdkSGtvZEdocGN5NWphR0Z5UVhRb015a3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRU52ZFc1MEtETXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVm1Gc2RXVWdQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzVrWlc1MFRtVjRkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhNZ1BUMDlJQ2N0TFMwbklEOGdKMlJ2WXljZ09pQW5jM1J5WldGdEp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhR2x6TG1sdVpHVnVkRlpoYkhWbElEMGdlV2xsYkdRcUlIUm9hWE11Y0hWemFGTndZV05sY3lobVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sdVpHVnVkRTVsZUhRZ1BpQjBhR2x6TG1sdVpHVnVkRlpoYkhWbElDWW1JQ0ZwYzBWdGNIUjVLSFJvYVhNdVkyaGhja0YwS0RFcEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzVrWlc1MFRtVjRkQ0E5SUhSb2FYTXVhVzVrWlc1MFZtRnNkV1U3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d1lYSnpaVUpzYjJOclUzUmhjblFvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdLbkJoY25ObFFteHZZMnRUZEdGeWRDZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdXMk5vTUN3Z1kyZ3hYU0E5SUhSb2FYTXVjR1ZsYXlneUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGamFERWdKaVlnSVhSb2FYTXVZWFJGYm1RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUk9aWGgwS0NkaWJHOWpheTF6ZEdGeWRDY3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb0tHTm9NQ0E5UFQwZ0p5MG5JSHg4SUdOb01DQTlQVDBnSno4bklIeDhJR05vTUNBOVBUMGdKem9uS1NBbUppQnBjMFZ0Y0hSNUtHTm9NU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNGdQU0FvZVdsbGJHUXFJSFJvYVhNdWNIVnphRU52ZFc1MEtERXBLU0FySUNoNWFXVnNaQ29nZEdocGN5NXdkWE5vVTNCaFkyVnpLSFJ5ZFdVcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzVrWlc1MFRtVjRkQ0E5SUhSb2FYTXVhVzVrWlc1MFZtRnNkV1VnS3lBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5SV1lXeDFaU0FyUFNCdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxRbXh2WTJ0VGRHRnlkQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBblpHOWpKenRjYmlBZ0lDQjlYRzRnSUNBZ0tuQmhjbk5sUkc5amRXMWxiblFvS1NCN1hHNGdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVGNHRmpaWE1vZEhKMVpTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeHBibVVnUFNCMGFHbHpMbWRsZEV4cGJtVW9LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHBibVVnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhST1pYaDBLQ2RrYjJNbktUdGNiaUFnSUNBZ0lDQWdiR1YwSUc0Z1BTQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1NXNWthV05oZEc5eWN5Z3BPMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLR3hwYm1WYmJsMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnlNbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkIxYzJoRGIzVnVkQ2hzYVc1bExteGxibWQwYUNBdElHNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabUZzYkhSb2NtOTFaMmhjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnZFc1a1pXWnBibVZrT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhPWlhkc2FXNWxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxUR2x1WlZOMFlYSjBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkN0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMXNuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhEYjNWdWRDZ3hLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtWnNiM2RMWlhrZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVpzYjNkTVpYWmxiQ0E5SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkbWJHOTNKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjMwbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5YU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2RHaHBjeUJwY3lCaGJpQmxjbkp2Y2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhEYjNWdWRDZ3hLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlJ2WXljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDY3FKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9WVzUwYVd3b2FYTk9iM1JCYm1Ob2IzSkRhR0Z5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSjJSdll5YzdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RjSWljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2lKMXdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d1lYSnpaVkYxYjNSbFpGTmpZV3hoY2lncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5mQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjK0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVJQ3M5SUhscFpXeGtLaUIwYUdsekxuQmhjbk5sUW14dlkydFRZMkZzWVhKSVpXRmtaWElvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdUlDczlJSGxwWld4a0tpQjBhR2x6TG5CMWMyaFRjR0ZqWlhNb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRU52ZFc1MEtHeHBibVV1YkdWdVozUm9JQzBnYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUU1bGQyeHBibVVvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNHRnljMlZDYkc5amExTmpZV3hoY2lncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVlFiR0ZwYmxOallXeGhjaWdwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQ3B3WVhKelpVWnNiM2REYjJ4c1pXTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYm13c0lITndPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FXNWtaVzUwSUQwZ0xURTdYRzRnSUNBZ0lDQWdJR1J2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzVzSUQwZ2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUU1bGQyeHBibVVvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodWJDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemNDQTlJSGxwWld4a0tpQjBhR2x6TG5CMWMyaFRjR0ZqWlhNb1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzVrWlc1MFZtRnNkV1VnUFNCcGJtUmxiblFnUFNCemNEdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITndJRDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lITndJQ3M5SUhscFpXeGtLaUIwYUdsekxuQjFjMmhUY0dGalpYTW9kSEoxWlNrN1hHNGdJQ0FnSUNBZ0lIMGdkMmhwYkdVZ0tHNXNJQ3NnYzNBZ1BpQXdLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiR2x1WlNBOUlIUm9hWE11WjJWMFRHbHVaU2dwTzF4dUlDQWdJQ0FnSUNCcFppQW9iR2x1WlNBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5ObGRFNWxlSFFvSjJac2IzY25LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDaHBibVJsYm5RZ0lUMDlJQzB4SUNZbUlHbHVaR1Z1ZENBOElIUm9hWE11YVc1a1pXNTBUbVY0ZENBbUppQnNhVzVsV3pCZElDRTlQU0FuSXljcElIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBb2FXNWtaVzUwSUQwOVBTQXdJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0d4cGJtVXVjM1JoY25SelYybDBhQ2duTFMwdEp5a2dmSHdnYkdsdVpTNXpkR0Z5ZEhOWGFYUm9LQ2N1TGk0bktTa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYzBWdGNIUjVLR3hwYm1WYk0xMHBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUVd4c2IzZHBibWNnWm05eUlIUm9aU0IwWlhKdGFXNWhiQ0JkSUc5eUlIMGdZWFFnZEdobElITmhiV1VnS0hKaGRHaGxjaUIwYUdGdUlHZHlaV0YwWlhJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCcGJtUmxiblFnYkdWMlpXd2dZWE1nZEdobElHbHVhWFJwWVd3Z1d5QnZjaUI3SUdseklIUmxZMmh1YVdOaGJHeDVJR2x1ZG1Gc2FXUXNJR0oxZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWm1GcGJHbHVaeUJvWlhKbElIZHZkV3hrSUdKbElITjFjbkJ5YVhOcGJtY2dkRzhnZFhObGNuTXVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoZEVac2IzZEZibVJOWVhKclpYSWdQU0JwYm1SbGJuUWdQVDA5SUhSb2FYTXVhVzVrWlc1MFRtVjRkQ0F0SURFZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ac2IzZE1aWFpsYkNBOVBUMGdNU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNoc2FXNWxXekJkSUQwOVBTQW5YU2NnZkh3Z2JHbHVaVnN3WFNBOVBUMGdKMzBuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaFlYUkdiRzkzUlc1a1RXRnlhMlZ5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdkR2hwY3lCcGN5QmhiaUJsY25KdmNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11Wm14dmQweGxkbVZzSUQwZ01EdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNCR1RFOVhYMFZPUkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNHRnljMlZNYVc1bFUzUmhjblFvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCc1pYUWdiaUE5SURBN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoc2FXNWxXMjVkSUQwOVBTQW5MQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzRnS3owZ2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUVOdmRXNTBLREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiaUFyUFNCNWFXVnNaQ29nZEdocGN5NXdkWE5vVTNCaFkyVnpLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW1iRzkzUzJWNUlEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdiaUFyUFNCNWFXVnNaQ29nZEdocGN5NXdkWE5vU1c1a2FXTmhkRzl5Y3lncE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHeHBibVZiYmwwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdkVzVrWldacGJtVmtPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5abXh2ZHljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDY2pKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb2JHbHVaUzVzWlc1bmRHZ2dMU0J1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSjJac2IzY25PMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuZXljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGJKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bWJHOTNTMlY1SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW1iRzkzVEdWMlpXd2dLejBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSjJac2IzY25PMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuZlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGRKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bWJHOTNTMlY1SUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtWnNiM2RNWlhabGJDQXRQU0F4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtWnNiM2RNWlhabGJDQS9JQ2RtYkc5M0p5QTZJQ2RrYjJNbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5LaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRlZ1ZEdsc0tHbHpUbTkwUVc1amFHOXlRMmhoY2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkbWJHOTNKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjF3aUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0luWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVtYkc5M1MyVjVJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWUmRXOTBaV1JUWTJGc1lYSW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpvbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkQ0E5SUhSb2FYTXVZMmhoY2tGMEtERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVpzYjNkTFpYa2dmSHdnYVhORmJYQjBlU2h1WlhoMEtTQjhmQ0J1WlhoMElEMDlQU0FuTENjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW1iRzkzUzJWNUlEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CMWMyaERiM1Z1ZENneEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRk53WVdObGN5aDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZG1iRzkzSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJtWVd4c2RHaHliM1ZuYUZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ac2IzZExaWGtnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVlFiR0ZwYmxOallXeGhjaWdwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQ3B3WVhKelpWRjFiM1JsWkZOallXeGhjaWdwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY1hWdmRHVWdQU0IwYUdsekxtTm9ZWEpCZENnd0tUdGNiaUFnSUNBZ0lDQWdiR1YwSUdWdVpDQTlJSFJvYVhNdVluVm1abVZ5TG1sdVpHVjRUMllvY1hWdmRHVXNJSFJvYVhNdWNHOXpJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h4ZFc5MFpTQTlQVDBnWENJblhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNobGJtUWdJVDA5SUMweElDWW1JSFJvYVhNdVluVm1abVZ5VzJWdVpDQXJJREZkSUQwOVBTQmNJaWRjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJtUWdQU0IwYUdsekxtSjFabVpsY2k1cGJtUmxlRTltS0Z3aUoxd2lMQ0JsYm1RZ0t5QXlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR1J2ZFdKc1pTMXhkVzkwWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tHVnVaQ0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2JpQTlJREE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLSFJvYVhNdVluVm1abVZ5VzJWdVpDQXRJREVnTFNCdVhTQTlQVDBnSjF4Y1hGd25LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdUlDczlJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHNGdKU0F5SUQwOVBTQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYm1RZ1BTQjBhR2x6TG1KMVptWmxjaTVwYm1SbGVFOW1LQ2RjSWljc0lHVnVaQ0FySURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRTl1YkhrZ2JHOXZhMmx1WnlCbWIzSWdibVYzYkdsdVpYTWdkMmwwYUdsdUlIUm9aU0J4ZFc5MFpYTmNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NXSWdQU0IwYUdsekxtSjFabVpsY2k1emRXSnpkSEpwYm1jb01Dd2daVzVrS1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJRzVzSUQwZ2NXSXVhVzVrWlhoUFppZ25YRnh1Snl3Z2RHaHBjeTV3YjNNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYm13Z0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9ibXdnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZM01nUFNCMGFHbHpMbU52Ym5ScGJuVmxVMk5oYkdGeUtHNXNJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR056SUQwOVBTQXRNU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm13Z1BTQnhZaTVwYm1SbGVFOW1LQ2RjWEc0bkxDQmpjeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ibXdnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2RHaHBjeUJwY3lCaGJpQmxjbkp2Y2lCallYVnpaV1FnWW5rZ1lXNGdkVzVsZUhCbFkzUmxaQ0IxYm1sdVpHVnVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1Z1WkNBOUlHNXNJQzBnS0hGaVcyNXNJQzBnTVYwZ1BUMDlJQ2RjWEhJbklEOGdNaUE2SURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hsYm1RZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11WVhSRmJtUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWMFRtVjRkQ2duY1hWdmRHVmtMWE5qWVd4aGNpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXNWtJRDBnZEdocGN5NWlkV1ptWlhJdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVWIwbHVaR1Y0S0dWdVpDQXJJREVzSUdaaGJITmxLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVpteHZkMHhsZG1Wc0lEOGdKMlpzYjNjbklEb2dKMlJ2WXljN1hHNGdJQ0FnZlZ4dUlDQWdJQ3B3WVhKelpVSnNiMk5yVTJOaGJHRnlTR1ZoWkdWeUtDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtSnNiMk5yVTJOaGJHRnlTVzVrWlc1MElEMGdMVEU3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZbXh2WTJ0VFkyRnNZWEpMWldWd0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JwSUQwZ2RHaHBjeTV3YjNNN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoMGNuVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamFDQTlJSFJvYVhNdVluVm1abVZ5V3lzcmFWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMmdnUFQwOUlDY3JKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtSnNiMk5yVTJOaGJHRnlTMlZsY0NBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphQ0ErSUNjd0p5QW1KaUJqYUNBOFBTQW5PU2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWliRzlqYTFOallXeGhja2x1WkdWdWRDQTlJRTUxYldKbGNpaGphQ2tnTFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTJnZ0lUMDlJQ2N0SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNIVnphRlZ1ZEdsc0tHTm9JRDArSUdselJXMXdkSGtvWTJncElIeDhJR05vSUQwOVBTQW5JeWNwTzF4dUlDQWdJSDFjYmlBZ0lDQXFjR0Z5YzJWQ2JHOWphMU5qWVd4aGNpZ3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElHNXNJRDBnZEdocGN5NXdiM01nTFNBeE95QXZMeUJ0WVhrZ1ltVWdMVEVnYVdZZ2RHaHBjeTV3YjNNZ1BUMDlJREJjYmlBZ0lDQWdJQ0FnYkdWMElHbHVaR1Z1ZENBOUlEQTdYRzRnSUNBZ0lDQWdJR3hsZENCamFEdGNiaUFnSUNBZ0lDQWdiRzl2Y0RvZ1ptOXlJQ2hzWlhRZ2FTQTlJSFJvYVhNdWNHOXpPeUFvWTJnZ1BTQjBhR2x6TG1KMVptWmxjbHRwWFNrN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaGphQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKeUFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RZ0t6MGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5YRnh1SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibXdnUFNCcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUWdQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RjWEhJbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzVsZUhRZ1BTQjBhR2x6TG1KMVptWmxjbHRwSUNzZ01WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hibVY0ZENBbUppQWhkR2hwY3k1aGRFVnVaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5ObGRFNWxlSFFvSjJKc2IyTnJMWE5qWVd4aGNpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ibVY0ZENBOVBUMGdKMXhjYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUM4dklHWmhiR3gwYUhKdmRXZG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXc2diRzl2Y0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9JV05vSUNZbUlDRjBhR2x6TG1GMFJXNWtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwVG1WNGRDZ25ZbXh2WTJzdGMyTmhiR0Z5SnlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm1SbGJuUWdQajBnZEdocGN5NXBibVJsYm5ST1pYaDBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWliRzlqYTFOallXeGhja2x1WkdWdWRDQTlQVDBnTFRFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVwYm1SbGJuUk9aWGgwSUQwZ2FXNWtaVzUwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVwYm1SbGJuUk9aWGgwSUQxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1aWJHOWphMU5qWVd4aGNrbHVaR1Z1ZENBcklDaDBhR2x6TG1sdVpHVnVkRTVsZUhRZ1BUMDlJREFnUHlBeElEb2dkR2hwY3k1cGJtUmxiblJPWlhoMEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1J2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqY3lBOUlIUm9hWE11WTI5dWRHbHVkV1ZUWTJGc1lYSW9ibXdnS3lBeEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNNZ1BUMDlJQzB4S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWJDQTlJSFJvYVhNdVluVm1abVZ5TG1sdVpHVjRUMllvSjF4Y2JpY3NJR056S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnZDJocGJHVWdLRzVzSUNFOVBTQXRNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYm13Z1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtRjBSVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhST1pYaDBLQ2RpYkc5amF5MXpZMkZzWVhJbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViQ0E5SUhSb2FYTXVZblZtWm1WeUxteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdkx5QlVjbUZwYkdsdVp5QnBibk4xWm1acFkybGxiblJzZVNCcGJtUmxiblJsWkNCMFlXSnpJR0Z5WlNCcGJuWmhiR2xrTGx4dUlDQWdJQ0FnSUNBdkx5QlVieUJqWVhSamFDQjBhR0YwSUdSMWNtbHVaeUJ3WVhKemFXNW5MQ0IzWlNCcGJtTnNkV1JsSUhSb1pXMGdhVzRnZEdobElHSnNiMk5ySUhOallXeGhjaUIyWVd4MVpTNWNiaUFnSUNBZ0lDQWdiR1YwSUdrZ1BTQnViQ0FySURFN1hHNGdJQ0FnSUNBZ0lHTm9JRDBnZEdocGN5NWlkV1ptWlhKYmFWMDdYRzRnSUNBZ0lDQWdJSGRvYVd4bElDaGphQ0E5UFQwZ0p5QW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyZ2dQU0IwYUdsekxtSjFabVpsY2xzcksybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb1kyZ2dQVDA5SUNkY1hIUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjNhR2xzWlNBb1kyZ2dQVDA5SUNkY1hIUW5JSHg4SUdOb0lEMDlQU0FuSUNjZ2ZId2dZMmdnUFQwOUlDZGNYSEluSUh4OElHTm9JRDA5UFNBblhGeHVKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXeXNyYVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1YkNBOUlHa2dMU0F4TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tDRjBhR2x6TG1Kc2IyTnJVMk5oYkdGeVMyVmxjQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaRzhnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnBJRDBnYm13Z0xTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCamFDQTlJSFJvYVhNdVluVm1abVZ5VzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYUNBOVBUMGdKMXhjY2ljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vSUQwZ2RHaHBjeTVpZFdabVpYSmJMUzFwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWVhOMFEyaGhjaUE5SUdrN0lDOHZJRVJ5YjNBZ2RHaGxJR3hwYm1VZ2FXWWdiR0Z6ZENCamFHRnlJRzV2ZENCdGIzSmxJR2x1WkdWdWRHVmtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tHTm9JRDA5UFNBbklDY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOb0lEMGdkR2hwY3k1aWRXWm1aWEpiTFMxcFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJnZ1BUMDlJQ2RjWEc0bklDWW1JR2tnUGowZ2RHaHBjeTV3YjNNZ0ppWWdhU0FySURFZ0t5QnBibVJsYm5RZ1BpQnNZWE4wUTJoaGNpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm13Z1BTQnBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUhkb2FXeGxJQ2gwY25WbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I1YVdWc1pDQlRRMEZNUVZJN1hHNGdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVWIwbHVaR1Y0S0c1c0lDc2dNU3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpVeHBibVZUZEdGeWRDZ3BPMXh1SUNBZ0lIMWNiaUFnSUNBcWNHRnljMlZRYkdGcGJsTmpZV3hoY2lncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FXNUdiRzkzSUQwZ2RHaHBjeTVtYkc5M1RHVjJaV3dnUGlBd08xeHVJQ0FnSUNBZ0lDQnNaWFFnWlc1a0lEMGdkR2hwY3k1d2IzTWdMU0F4TzF4dUlDQWdJQ0FnSUNCc1pYUWdhU0E5SUhSb2FYTXVjRzl6SUMwZ01UdGNiaUFnSUNBZ0lDQWdiR1YwSUdOb08xeHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb0tHTm9JRDBnZEdocGN5NWlkV1ptWlhKYkt5dHBYU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamFDQTlQVDBnSnpvbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkQ0E5SUhSb2FYTXVZblZtWm1WeVcya2dLeUF4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5GYlhCMGVTaHVaWGgwS1NCOGZDQW9hVzVHYkc5M0lDWW1JR1pzYjNkSmJtUnBZMkYwYjNKRGFHRnljeTVvWVhNb2JtVjRkQ2twS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJtUWdQU0JwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTkZiWEIwZVNoamFDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2JtVjRkQ0E5SUhSb2FYTXVZblZtWm1WeVcya2dLeUF4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMmdnUFQwOUlDZGNYSEluS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodVpYaDBJRDA5UFNBblhGeHVKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBclBTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmdnUFNBblhGeHVKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhRZ1BTQjBhR2x6TG1KMVptWmxjbHRwSUNzZ01WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0lEMGdhVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHNWxlSFFnUFQwOUlDY2pKeUI4ZkNBb2FXNUdiRzkzSUNZbUlHWnNiM2RKYm1ScFkyRjBiM0pEYUdGeWN5NW9ZWE1vYm1WNGRDa3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyZ2dQVDA5SUNkY1hHNG5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOeklEMGdkR2hwY3k1amIyNTBhVzUxWlZOallXeGhjaWhwSUNzZ01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpjeUE5UFQwZ0xURXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0E5SUUxaGRHZ3ViV0Y0S0drc0lHTnpJQzBnTWlrN0lDOHZJSFJ2SUdGa2RtRnVZMlVzSUdKMWRDQnpkR2xzYkNCaFkyTnZkVzUwSUdadmNpQW5JQ01uWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHVSbXh2ZHlBbUppQm1iRzkzU1c1a2FXTmhkRzl5UTJoaGNuTXVhR0Z6S0dOb0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVrSUQwZ2FUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOb0lDWW1JQ0YwYUdsekxtRjBSVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWMFRtVjRkQ2duY0d4aGFXNHRjMk5oYkdGeUp5azdYRzRnSUNBZ0lDQWdJSGxwWld4a0lGTkRRVXhCVWp0Y2JpQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUZSdlNXNWtaWGdvWlc1a0lDc2dNU3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBia1pzYjNjZ1B5QW5abXh2ZHljZ09pQW5aRzlqSnp0Y2JpQWdJQ0I5WEc0Z0lDQWdLbkIxYzJoRGIzVnVkQ2h1S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h1SUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FnZEdocGN5NWlkV1ptWlhJdWMzVmljM1J5S0hSb2FYTXVjRzl6TENCdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjRzl6SUNzOUlHNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYmp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01EdGNiaUFnSUNCOVhHNGdJQ0FnS25CMWMyaFViMGx1WkdWNEtHa3NJR0ZzYkc5M1JXMXdkSGtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY3lBOUlIUm9hWE11WW5WbVptVnlMbk5zYVdObEtIUm9hWE11Y0c5ekxDQnBLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrSUhNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuQnZjeUFyUFNCekxteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hoYkd4dmQwVnRjSFI1S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRZ0p5YzdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQXdPMXh1SUNBZ0lIMWNiaUFnSUNBcWNIVnphRWx1WkdsallYUnZjbk1vS1NCN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTVqYUdGeVFYUW9NQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p5RW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9LSGxwWld4a0tpQjBhR2x6TG5CMWMyaFVZV2NvS1NrZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvZVdsbGJHUXFJSFJvYVhNdWNIVnphRk53WVdObGN5aDBjblZsS1NrZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvZVdsbGJHUXFJSFJvYVhNdWNIVnphRWx1WkdsallYUnZjbk1vS1NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5KaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dvZVdsbGJHUXFJSFJvYVhNdWNIVnphRlZ1ZEdsc0tHbHpUbTkwUVc1amFHOXlRMmhoY2lrcElDdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0hscFpXeGtLaUIwYUdsekxuQjFjMmhUY0dGalpYTW9kSEoxWlNrcElDdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0hscFpXeGtLaUIwYUdsekxuQjFjMmhKYm1ScFkyRjBiM0p6S0NrcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKeTBuT2lBdkx5QjBhR2x6SUdseklHRnVJR1Z5Y205eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDYy9Kem9nTHk4Z2RHaHBjeUJwY3lCaGJpQmxjbkp2Y2lCdmRYUnphV1JsSUdac2IzY2dZMjlzYkdWamRHbHZibk5jYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpvbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FXNUdiRzkzSUQwZ2RHaHBjeTVtYkc5M1RHVjJaV3dnUGlBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOb01TQTlJSFJvYVhNdVkyaGhja0YwS0RFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzBWdGNIUjVLR05vTVNrZ2ZId2dLR2x1Um14dmR5QW1KaUJtYkc5M1NXNWthV05oZEc5eVEyaGhjbk11YUdGektHTm9NU2twS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGFXNUdiRzkzS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5ST1pYaDBJRDBnZEdocGN5NXBibVJsYm5SV1lXeDFaU0FySURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSFJvYVhNdVpteHZkMHRsZVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVabXh2ZDB0bGVTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLQ2g1YVdWc1pDb2dkR2hwY3k1d2RYTm9RMjkxYm5Rb01Ta3BJQ3RjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2g1YVdWc1pDb2dkR2hwY3k1d2RYTm9VM0JoWTJWektIUnlkV1VwS1NBclhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUVsdVpHbGpZWFJ2Y25Nb0tTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdNRHRjYmlBZ0lDQjlYRzRnSUNBZ0tuQjFjMmhVWVdjb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbU5vWVhKQmRDZ3hLU0E5UFQwZ0p6d25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVNBOUlIUm9hWE11Y0c5eklDc2dNanRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tDRnBjMFZ0Y0hSNUtHTm9LU0FtSmlCamFDQWhQVDBnSno0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTm9JRDBnZEdocGN5NWlkV1ptWlhKYkt5dHBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NXdkWE5vVkc5SmJtUmxlQ2hqYUNBOVBUMGdKejRuSUQ4Z2FTQXJJREVnT2lCcExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJSFJvYVhNdWNHOXpJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCamFDQTlJSFJvYVhNdVluVm1abVZ5VzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLR05vS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJoWjBOb1lYSnpMbWhoY3loamFDa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOb0lEMGdkR2hwY3k1aWRXWm1aWEpiS3l0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphQ0E5UFQwZ0p5VW5JQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHaGxlRVJwWjJsMGN5NW9ZWE1vZEdocGN5NWlkV1ptWlhKYmFTQXJJREZkS1NBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JvWlhoRWFXZHBkSE11YUdGektIUm9hWE11WW5WbVptVnlXMmtnS3lBeVhTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyZ2dQU0IwYUdsekxtSjFabVpsY2xzb2FTQXJQU0F6S1YwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNIVnphRlJ2U1c1a1pYZ29hU3dnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lDcHdkWE5vVG1WM2JHbHVaU2dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJnZ1BTQjBhR2x6TG1KMVptWmxjbHQwYUdsekxuQnZjMTA3WEc0Z0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0oxeGNiaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUVOdmRXNTBLREVwTzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFDQTlQVDBnSjF4Y2NpY2dKaVlnZEdocGN5NWphR0Z5UVhRb01Ta2dQVDA5SUNkY1hHNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhscFpXeGtLaUIwYUdsekxuQjFjMmhEYjNWdWRDZ3lLVHRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJREE3WEc0Z0lDQWdmVnh1SUNBZ0lDcHdkWE5vVTNCaFkyVnpLR0ZzYkc5M1ZHRmljeWtnZTF4dUlDQWdJQ0FnSUNCc1pYUWdhU0E5SUhSb2FYTXVjRzl6SUMwZ01UdGNiaUFnSUNBZ0lDQWdiR1YwSUdOb08xeHVJQ0FnSUNBZ0lDQmtieUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmphQ0E5SUhSb2FYTXVZblZtWm1WeVd5c3JhVjA3WEc0Z0lDQWdJQ0FnSUgwZ2QyaHBiR1VnS0dOb0lEMDlQU0FuSUNjZ2ZId2dLR0ZzYkc5M1ZHRmljeUFtSmlCamFDQTlQVDBnSjF4Y2RDY3BLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiaUE5SUdrZ0xTQjBhR2x6TG5CdmN6dGNiaUFnSUNBZ0lDQWdhV1lnS0c0Z1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNCMGFHbHpMbUoxWm1abGNpNXpkV0p6ZEhJb2RHaHBjeTV3YjNNc0lHNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3YjNNZ1BTQnBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1TzF4dUlDQWdJSDFjYmlBZ0lDQXFjSFZ6YUZWdWRHbHNLSFJsYzNRcElIdGNiaUFnSUNBZ0lDQWdiR1YwSUdrZ1BTQjBhR2x6TG5CdmN6dGNiaUFnSUNBZ0lDQWdiR1YwSUdOb0lEMGdkR2hwY3k1aWRXWm1aWEpiYVYwN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNnaGRHVnpkQ2hqYUNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXeXNyYVYwN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NXdkWE5vVkc5SmJtUmxlQ2hwTENCbVlXeHpaU2s3WEc0Z0lDQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5Qk1aWGhsY2lCOU8xeHVJaXdnSWk4cUtseHVJQ29nVkhKaFkydHpJRzVsZDJ4cGJtVnpJR1IxY21sdVp5QndZWEp6YVc1bklHbHVJRzl5WkdWeUlIUnZJSEJ5YjNacFpHVWdZVzRnWldabWFXTnBaVzUwSUVGUVNTQm1iM0pjYmlBcUlHUmxkR1Z5YldsdWFXNW5JSFJvWlNCdmJtVXRhVzVrWlhobFpDQmdleUJzYVc1bExDQmpiMndnZldBZ2NHOXphWFJwYjI0Z1ptOXlJR0Z1ZVNCdlptWnpaWFJjYmlBcUlIZHBkR2hwYmlCMGFHVWdhVzV3ZFhRdVhHNGdLaTljYm1Oc1lYTnpJRXhwYm1WRGIzVnVkR1Z5SUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1c2FXNWxVM1JoY25SeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDQWdLaUJUYUc5MWJHUWdZbVVnWTJGc2JHVmtJR2x1SUdGelkyVnVaR2x1WnlCdmNtUmxjaTRnVDNSb1pYSjNhWE5sTENCallXeHNYRzRnSUNBZ0lDQWdJQ0FxSUdCc2FXNWxRMjkxYm5SbGNpNXNhVzVsVTNSaGNuUnpMbk52Y25Rb0tXQWdZbVZtYjNKbElHTmhiR3hwYm1jZ1lHeHBibVZRYjNNb0tXQXVYRzRnSUNBZ0lDQWdJQ0FxTDF4dUlDQWdJQ0FnSUNCMGFHbHpMbUZrWkU1bGQweHBibVVnUFNBb2IyWm1jMlYwS1NBOVBpQjBhR2x6TG14cGJtVlRkR0Z5ZEhNdWNIVnphQ2h2Wm1aelpYUXBPMXh1SUNBZ0lDQWdJQ0F2S2lwY2JpQWdJQ0FnSUNBZ0lDb2dVR1Z5Wm05eWJYTWdZU0JpYVc1aGNua2djMlZoY21Ob0lHRnVaQ0J5WlhSMWNtNXpJSFJvWlNBeExXbHVaR1Y0WldRZ2V5QnNhVzVsTENCamIyd2dmVnh1SUNBZ0lDQWdJQ0FnS2lCd2IzTnBkR2x2YmlCdlppQmdiMlptYzJWMFlDNGdTV1lnWUd4cGJtVWdQVDA5SURCZ0xDQmdZV1JrVG1WM1RHbHVaV0FnYUdGeklHNWxkbVZ5SUdKbFpXNWNiaUFnSUNBZ0lDQWdJQ29nWTJGc2JHVmtJRzl5SUdCdlptWnpaWFJnSUdseklHSmxabTl5WlNCMGFHVWdabWx5YzNRZ2EyNXZkMjRnYm1WM2JHbHVaUzVjYmlBZ0lDQWdJQ0FnSUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11YkdsdVpWQnZjeUE5SUNodlptWnpaWFFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQnNiM2NnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHaHBaMmdnUFNCMGFHbHpMbXhwYm1WVGRHRnlkSE11YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0d4dmR5QThJR2hwWjJncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGFXUWdQU0FvYkc5M0lDc2dhR2xuYUNrZ1BqNGdNVHNnTHk4Z1RXRjBhQzVtYkc5dmNpZ29iRzkzSUNzZ2FHbG5hQ2tnTHlBeUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxteHBibVZUZEdGeWRITmJiV2xrWFNBOElHOW1abk5sZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiRzkzSUQwZ2JXbGtJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdocFoyZ2dQU0J0YVdRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXNhVzVsVTNSaGNuUnpXMnh2ZDEwZ1BUMDlJRzltWm5ObGRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QnNhVzVsT2lCc2IzY2dLeUF4TENCamIydzZJREVnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc2IzY2dQVDA5SURBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2JHbHVaVG9nTUN3Z1kyOXNPaUJ2Wm1aelpYUWdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnZEdocGN5NXNhVzVsVTNSaGNuUnpXMnh2ZHlBdElERmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2JHbHVaVG9nYkc5M0xDQmpiMnc2SUc5bVpuTmxkQ0F0SUhOMFlYSjBJQ3NnTVNCOU8xeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibjFjYmx4dVpYaHdiM0owSUhzZ1RHbHVaVU52ZFc1MFpYSWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QjBiMnRsYmxSNWNHVWdmU0JtY205dElDY3VMMk56ZEM1cWN5YzdYRzVwYlhCdmNuUWdleUJNWlhobGNpQjlJR1p5YjIwZ0p5NHZiR1Y0WlhJdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCcGJtTnNkV1JsYzFSdmEyVnVLR3hwYzNRc0lIUjVjR1VwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUd4cGMzUXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdJQ0FnSUdsbUlDaHNhWE4wVzJsZExuUjVjR1VnUFQwOUlIUjVjR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc1OVhHNW1kVzVqZEdsdmJpQm1hVzVrVG05dVJXMXdkSGxKYm1SbGVDaHNhWE4wS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc2FYTjBMbXhsYm1kMGFEc2dLeXRwS1NCN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2JHbHpkRnRwWFM1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkemNHRmpaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkamIyMXRaVzUwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyNWxkMnhwYm1Vbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnTFRFN1hHNTlYRzVtZFc1amRHbHZiaUJwYzBac2IzZFViMnRsYmloMGIydGxiaWtnZTF4dUlDQWdJSE4zYVhSamFDQW9kRzlyWlc0L0xuUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWVd4cFlYTW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZHpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNkemFXNW5iR1V0Y1hWdmRHVmtMWE5qWVd4aGNpYzZYRzRnSUNBZ0lDQWdJR05oYzJVZ0oyUnZkV0pzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnWTJGelpTQW5abXh2ZHkxamIyeHNaV04wYVc5dUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JuMWNibVoxYm1OMGFXOXVJR2RsZEZCeVpYWlFjbTl3Y3lod1lYSmxiblFwSUh0Y2JpQWdJQ0J6ZDJsMFkyZ2dLSEJoY21WdWRDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSjJSdlkzVnRaVzUwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQndZWEpsYm5RdWMzUmhjblE3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMkpzYjJOckxXMWhjQ2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHbDBJRDBnY0dGeVpXNTBMbWwwWlcxelczQmhjbVZ1ZEM1cGRHVnRjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBkQzV6WlhBZ1B6OGdhWFF1YzNSaGNuUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTJGelpTQW5ZbXh2WTJzdGMyVnhKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYSmxiblF1YVhSbGJYTmJjR0Z5Wlc1MExtbDBaVzF6TG14bGJtZDBhQ0F0SURGZExuTjBZWEowTzF4dUlDQWdJQ0FnSUNBdktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2JtVjRkQ0J6YUc5MWJHUWdibTkwSUdoaGNIQmxiaUFxTDF4dUlDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGdGRPMXh1SUNBZ0lIMWNibjFjYmk4cUtpQk9iM1JsT2lCTllYa2diVzlrYVdaNUlHbHVjSFYwSUdGeWNtRjVJQ292WEc1bWRXNWpkR2x2YmlCblpYUkdhWEp6ZEV0bGVWTjBZWEowVUhKdmNITW9jSEpsZGlrZ2UxeHVJQ0FnSUdsbUlDaHdjbVYyTG14bGJtZDBhQ0E5UFQwZ01DbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGdGRPMXh1SUNBZ0lHeGxkQ0JwSUQwZ2NISmxkaTVzWlc1bmRHZzdYRzRnSUNBZ2JHOXZjRG9nZDJocGJHVWdLQzB0YVNBK1BTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvY0hKbGRsdHBYUzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjJNdGMzUmhjblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHRZWEF0ZG1Gc2RXVXRhVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTmxjUzFwZEdWdExXbHVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhheUJzYjI5d08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhkb2FXeGxJQ2h3Y21WMld5c3JhVjAvTG5SNWNHVWdQVDA5SUNkemNHRmpaU2NwSUh0Y2JpQWdJQ0FnSUNBZ0x5b2diRzl2Y0NBcUwxeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjSEpsZGk1emNHeHBZMlVvYVN3Z2NISmxkaTVzWlc1bmRHZ3BPMXh1ZlZ4dVpuVnVZM1JwYjI0Z1ptbDRSbXh2ZDFObGNVbDBaVzF6S0daaktTQjdYRzRnSUNBZ2FXWWdLR1pqTG5OMFlYSjBMblI1Y0dVZ1BUMDlJQ2RtYkc5M0xYTmxjUzF6ZEdGeWRDY3BJSHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcGRDQnZaaUJtWXk1cGRHVnRjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMExuTmxjQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNGcGRDNTJZV3gxWlNBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDRnBibU5zZFdSbGMxUnZhMlZ1S0dsMExuTjBZWEowTENBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjcElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJV2x1WTJ4MVpHVnpWRzlyWlc0b2FYUXVjMlZ3TENBbmJXRndMWFpoYkhWbExXbHVaQ2NwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwTG10bGVTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhRdWRtRnNkV1VnUFNCcGRDNXJaWGs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJR2wwTG10bGVUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOR2JHOTNWRzlyWlc0b2FYUXVkbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBkQzUyWVd4MVpTNWxibVFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JCY25KaGVTNXdjbTkwYjNSNWNHVXVjSFZ6YUM1aGNIQnNlU2hwZEM1MllXeDFaUzVsYm1Rc0lHbDBMbk5sY0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuWmhiSFZsTG1WdVpDQTlJR2wwTG5ObGNEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWNIVnphQzVoY0hCc2VTaHBkQzV6ZEdGeWRDd2dhWFF1YzJWd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV3hsZEdVZ2FYUXVjMlZ3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1ZlZ4dUx5b3FYRzRnS2lCQklGbEJUVXdnWTI5dVkzSmxkR1VnYzNsdWRHRjRJSFJ5WldVZ0tFTlRWQ2tnY0dGeWMyVnlYRzRnS2x4dUlDb2dZR0JnZEhOY2JpQXFJR052Ym5OMElITnlZem9nYzNSeWFXNW5JRDBnTGk0dVhHNGdLaUJtYjNJZ0tHTnZibk4wSUhSdmEyVnVJRzltSUc1bGR5QlFZWEp6WlhJb0tTNXdZWEp6WlNoemNtTXBLU0I3WEc0Z0tpQWdJQzh2SUhSdmEyVnVPaUJVYjJ0bGJseHVJQ29nZlZ4dUlDb2dZR0JnWEc0Z0tseHVJQ29nVkc4Z2RYTmxJSFJvWlNCd1lYSnpaWElnZDJsMGFDQmhJSFZ6WlhJdGNISnZkbWxrWldRZ2JHVjRaWEk2WEc0Z0tseHVJQ29nWUdCZ2RITmNiaUFxSUdaMWJtTjBhVzl1S2lCd1lYSnpaU2h6YjNWeVkyVTZJSE4wY21sdVp5d2diR1Y0WlhJNklFeGxlR1Z5S1NCN1hHNGdLaUFnSUdOdmJuTjBJSEJoY25ObGNpQTlJRzVsZHlCUVlYSnpaWElvS1Z4dUlDb2dJQ0JtYjNJZ0tHTnZibk4wSUd4bGVHVnRaU0J2WmlCc1pYaGxjaTVzWlhnb2MyOTFjbU5sS1NsY2JpQXFJQ0FnSUNCNWFXVnNaQ29nY0dGeWMyVnlMbTVsZUhRb2JHVjRaVzFsS1Z4dUlDb2dJQ0I1YVdWc1pDb2djR0Z5YzJWeUxtVnVaQ2dwWEc0Z0tpQjlYRzRnS2x4dUlDb2dZMjl1YzNRZ2MzSmpPaUJ6ZEhKcGJtY2dQU0F1TGk1Y2JpQXFJR052Ym5OMElHeGxlR1Z5SUQwZ2JtVjNJRXhsZUdWeUtDbGNiaUFxSUdadmNpQW9ZMjl1YzNRZ2RHOXJaVzRnYjJZZ2NHRnljMlVvYzNKakxDQnNaWGhsY2lrcElIdGNiaUFxSUNBZ0x5OGdkRzlyWlc0NklGUnZhMlZ1WEc0Z0tpQjlYRzRnS2lCZ1lHQmNiaUFxTDF4dVkyeGhjM01nVUdGeWMyVnlJSHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBY0dGeVlXMGdiMjVPWlhkTWFXNWxJQzBnU1dZZ1pHVm1hVzVsWkN3Z1kyRnNiR1ZrSUhObGNHRnlZWFJsYkhrZ2QybDBhQ0IwYUdVZ2MzUmhjblFnY0c5emFYUnBiMjRnYjJaY2JpQWdJQ0FnS2lBZ0lHVmhZMmdnYm1WM0lHeHBibVVnS0dsdUlHQndZWEp6WlNncFlDd2dhVzVqYkhWa2FXNW5JSFJvWlNCemRHRnlkQ0J2WmlCcGJuQjFkQ2t1WEc0Z0lDQWdJQ292WEc0Z0lDQWdZMjl1YzNSeWRXTjBiM0lvYjI1T1pYZE1hVzVsS1NCN1hHNGdJQ0FnSUNBZ0lDOHFLaUJKWmlCMGNuVmxMQ0J6Y0dGalpTQmhibVFnYzJWeGRXVnVZMlVnYVc1a2FXTmhkRzl5Y3lCamIzVnVkQ0JoY3lCcGJtUmxiblJoZEdsdmJpQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtRjBUbVYzVEdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDOHFLaUJKWmlCMGNuVmxMQ0J1WlhoMElIUnZhMlZ1SUdseklHRWdjMk5oYkdGeUlIWmhiSFZsSUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11WVhSVFkyRnNZWElnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnTHlvcUlFTjFjbkpsYm5RZ2FXNWtaVzUwWVhScGIyNGdiR1YyWld3Z0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1cGJtUmxiblFnUFNBd08xeHVJQ0FnSUNBZ0lDQXZLaW9nUTNWeWNtVnVkQ0J2Wm1aelpYUWdjMmx1WTJVZ2RHaGxJSE4wWVhKMElHOW1JSEJoY25OcGJtY2dLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NXZabVp6WlhRZ1BTQXdPMXh1SUNBZ0lDQWdJQ0F2S2lvZ1QyNGdkR2hsSUhOaGJXVWdiR2x1WlNCM2FYUm9JR0VnWW14dlkyc2diV0Z3SUd0bGVTQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQXZLaW9nVkc5d0lHbHVaR2xqWVhSbGN5QjBhR1VnYm05a1pTQjBhR0YwSjNNZ1kzVnljbVZ1ZEd4NUlHSmxhVzVuSUdKMWFXeDBJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoWTJzZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnTHlvcUlGUm9aU0J6YjNWeVkyVWdiMllnZEdobElHTjFjbkpsYm5RZ2RHOXJaVzRzSUhObGRDQnBiaUJ3WVhKelpTZ3BJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMjkxY21ObElEMGdKeWM3WEc0Z0lDQWdJQ0FnSUM4cUtpQlVhR1VnZEhsd1pTQnZaaUIwYUdVZ1kzVnljbVZ1ZENCMGIydGxiaXdnYzJWMElHbHVJSEJoY25ObEtDa2dLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NTBlWEJsSUQwZ0p5YzdYRzRnSUNBZ0lDQWdJQzh2SUUxMWMzUWdZbVVnWkdWbWFXNWxaQ0JoWm5SbGNpQmdibVY0ZENncFlGeHVJQ0FnSUNBZ0lDQjBhR2x6TG14bGVHVnlJRDBnYm1WM0lFeGxlR1Z5S0NrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YjI1T1pYZE1hVzVsSUQwZ2IyNU9aWGRNYVc1bE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCUVlYSnpaU0JnYzI5MWNtTmxZQ0JoY3lCaElGbEJUVXdnYzNSeVpXRnRMbHh1SUNBZ0lDQXFJRWxtSUdCcGJtTnZiWEJzWlhSbFlDd2dZU0J3WVhKMElHOW1JSFJvWlNCc1lYTjBJR3hwYm1VZ2JXRjVJR0psSUd4bFpuUWdZWE1nWVNCaWRXWm1aWElnWm05eUlIUm9aU0J1WlhoMElHTmhiR3d1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJGY25KdmNuTWdZWEpsSUc1dmRDQjBhSEp2ZDI0c0lHSjFkQ0I1YVdWc1pHVmtJR0Z6SUdCN0lIUjVjR1U2SUNkbGNuSnZjaWNzSUcxbGMzTmhaMlVnZldBZ2RHOXJaVzV6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nUVNCblpXNWxjbUYwYjNJZ2IyWWdkRzlyWlc1eklISmxjSEpsYzJWdWRHbHVaeUJsWVdOb0lHUnBjbVZqZEdsMlpTd2daRzlqZFcxbGJuUXNJR0Z1WkNCdmRHaGxjaUJ6ZEhKMVkzUjFjbVV1WEc0Z0lDQWdJQ292WEc0Z0lDQWdLbkJoY25ObEtITnZkWEpqWlN3Z2FXNWpiMjF3YkdWMFpTQTlJR1poYkhObEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbTl1VG1WM1RHbHVaU0FtSmlCMGFHbHpMbTltWm5ObGRDQTlQVDBnTUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNU9aWGRNYVc1bEtEQXBPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUd4bGVHVnRaU0J2WmlCMGFHbHpMbXhsZUdWeUxteGxlQ2h6YjNWeVkyVXNJR2x1WTI5dGNHeGxkR1VwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Ym1WNGRDaHNaWGhsYldVcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdsdVkyOXRjR3hsZEdVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1bGJtUW9LVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRV1IyWVc1alpTQjBhR1VnY0dGeWMyVnlJR0o1SUhSb1pTQmdjMjkxY21ObFlDQnZaaUJ2Ym1VZ2JHVjRhV05oYkNCMGIydGxiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQXFibVY0ZENoemIzVnlZMlVwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6YjNWeVkyVWdQU0J6YjNWeVkyVTdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbUYwVTJOaGJHRnlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1GMFUyTmhiR0Z5SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV6ZEdWd0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTltWm5ObGRDQXJQU0J6YjNWeVkyVXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFI1Y0dVZ1BTQjBiMnRsYmxSNWNHVW9jMjkxY21ObEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1lFNXZkQ0JoSUZsQlRVd2dkRzlyWlc0NklDUjdjMjkxY21ObGZXQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvZXlCMGVYQmxPaUFuWlhKeWIzSW5MQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTENCdFpYTnpZV2RsTENCemIzVnlZMlVnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOW1abk5sZENBclBTQnpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIUjVjR1VnUFQwOUlDZHpZMkZzWVhJbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbUYwVG1WM1RHbHVaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoZEZOallXeGhjaUE5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMblI1Y0dVZ1BTQW5jMk5oYkdGeUp6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVkSGx3WlNBOUlIUjVjR1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV6ZEdWd0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCemQybDBZMmdnS0hSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHVaWGRzYVc1bEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWhkRTVsZDB4cGJtVWdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtbHVaR1Z1ZENBOUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG05dVRtVjNUR2x1WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViMjVPWlhkTWFXNWxLSFJvYVhNdWIyWm1jMlYwSUNzZ2MyOTFjbU5sTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM053WVdObEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WVhST1pYZE1hVzVsSUNZbUlITnZkWEpqWlZzd1hTQTlQVDBnSnlBbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVwYm1SbGJuUWdLejBnYzI5MWNtTmxMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYldGd0xYWmhiSFZsTFdsdVpDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMyVnhMV2wwWlcwdGFXNWtKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVlYUk9aWGRNYVc1bEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVwYm1SbGJuUWdLejBnYzI5MWNtTmxMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOWpMVzF2WkdVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJac2IzY3RaWEp5YjNJdFpXNWtKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WVhST1pYZE1hVzVsSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTltWm5ObGRDQXJQU0J6YjNWeVkyVXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtpQkRZV3hzSUdGMElHVnVaQ0J2WmlCcGJuQjFkQ0IwYnlCd2RYTm9JRzkxZENCaGJua2djbVZ0WVdsdWFXNW5JR052Ym5OMGNuVmpkR2x2Ym5NZ0tpOWNiaUFnSUNBcVpXNWtLQ2tnZTF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvZEdocGN5NXpkR0ZqYXk1c1pXNW5kR2dnUGlBd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNHOXdLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHZGxkQ0J6YjNWeVkyVlViMnRsYmlncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUWdQU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCMGFHbHpMblI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlc1ME9pQjBhR2x6TG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITnZkWEpqWlRvZ2RHaHBjeTV6YjNWeVkyVmNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wTzF4dUlDQWdJSDFjYmlBZ0lDQXFjM1JsY0NncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RHOXdJRDBnZEdocGN5NXdaV1ZyS0RFcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTBlWEJsSUQwOVBTQW5aRzlqTFdWdVpDY2dKaVlnS0NGMGIzQWdmSHdnZEc5d0xuUjVjR1VnSVQwOUlDZGtiMk10Wlc1a0p5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNoMGFHbHpMbk4wWVdOckxteGxibWQwYUNBK0lEQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVdOckxuQjFjMmdvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJQ2RrYjJNdFpXNWtKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVG9nZEdocGN5NXpiM1Z5WTJWY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHOXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhscFpXeGtLaUIwYUdsekxuTjBjbVZoYlNncE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUnZjQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjJOMWJXVnVkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG1SdlkzVnRaVzUwS0hSdmNDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RoYkdsaGN5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzJsdVoyeGxMWEYxYjNSbFpDMXpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aRzkxWW14bExYRjFiM1JsWkMxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1elkyRnNZWElvZEc5d0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMkpzYjJOckxYTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhscFpXeGtLaUIwYUdsekxtSnNiMk5yVTJOaGJHRnlLSFJ2Y0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxdFlYQW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTVpYkc5amEwMWhjQ2gwYjNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZbXh2WTJzdGMyVnhKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11WW14dlkydFRaWEYxWlc1alpTaDBiM0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpteHZkeTFqYjJ4c1pXTjBhVzl1SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdVpteHZkME52Ykd4bFkzUnBiMjRvZEc5d0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlJ2WXkxbGJtUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTVrYjJOMWJXVnVkRVZ1WkNoMGIzQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4cUlHbHpkR0Z1WW5Wc0lHbG5ibTl5WlNCdVpYaDBJSE5vYjNWc1pDQnViM1FnYUdGd2NHVnVJQ292WEc0Z0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQnZjQ2dwTzF4dUlDQWdJSDFjYmlBZ0lDQndaV1ZyS0c0cElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzNSaFkydGJkR2hwY3k1emRHRmpheTVzWlc1bmRHZ2dMU0J1WFR0Y2JpQWdJQ0I5WEc0Z0lDQWdLbkJ2Y0NobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJR1Z5Y205eUlEOC9JSFJvYVhNdWMzUmhZMnN1Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0JwWmlCemFHOTFiR1FnYm05MElHaGhjSEJsYmlBcUwxeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSdmEyVnVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ0oxUnlhV1ZrSUhSdklIQnZjQ0JoYmlCbGJYQjBlU0J6ZEdGamF5YzdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ0I3SUhSNWNHVTZJQ2RsY25KdmNpY3NJRzltWm5ObGREb2dkR2hwY3k1dlptWnpaWFFzSUhOdmRYSmpaVG9nSnljc0lHMWxjM05oWjJVZ2ZUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gwYUdsekxuTjBZV05yTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FnZEc5clpXNDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IwYjNBZ1BTQjBhR2x6TG5CbFpXc29NU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEc5clpXNHVkSGx3WlNBOVBUMGdKMkpzYjJOckxYTmpZV3hoY2ljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJDYkc5amF5QnpZMkZzWVhKeklIVnpaU0IwYUdWcGNpQndZWEpsYm5RZ2NtRjBhR1Z5SUhSb1lXNGdhR1ZoWkdWeUlHbHVaR1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVMbWx1WkdWdWRDQTlJQ2RwYm1SbGJuUW5JR2x1SUhSdmNDQS9JSFJ2Y0M1cGJtUmxiblFnT2lBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9kRzlyWlc0dWRIbHdaU0E5UFQwZ0oyWnNiM2N0WTI5c2JHVmpkR2x2YmljZ0ppWWdkRzl3TG5SNWNHVWdQVDA5SUNka2IyTjFiV1Z1ZENjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJKWjI1dmNtVWdZV3hzSUdsdVpHVnVkQ0JtYjNJZ2RHOXdMV3hsZG1Wc0lHWnNiM2NnWTI5c2JHVmpkR2x2Ym5OY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIydGxiaTVwYm1SbGJuUWdQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZG1iRzkzTFdOdmJHeGxZM1JwYjI0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBlRVpzYjNkVFpYRkpkR1Z0Y3loMGIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUnZjQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOWpkVzFsYm5Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjNBdWRtRnNkV1VnUFNCMGIydGxianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZbXh2WTJzdGMyTmhiR0Z5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzl3TG5CeWIzQnpMbkIxYzJnb2RHOXJaVzRwT3lBdkx5Qmxjbkp2Y2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RpYkc5amF5MXRZWEFuT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHbDBJRDBnZEc5d0xtbDBaVzF6VzNSdmNDNXBkR1Z0Y3k1c1pXNW5kR2dnTFNBeFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDBMblpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiM0F1YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYlhTd2dhMlY1T2lCMGIydGxiaXdnYzJWd09pQmJYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViMjVMWlhsTWFXNWxJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGRDNXpaWEFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuWmhiSFZsSUQwZ2RHOXJaVzQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0dsMExDQjdJR3RsZVRvZ2RHOXJaVzRzSUhObGNEb2dXMTBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUNGcGRDNWxlSEJzYVdOcGRFdGxlVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWW14dlkyc3RjMlZ4SnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnBkQ0E5SUhSdmNDNXBkR1Z0YzF0MGIzQXVhWFJsYlhNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBkQzUyWVd4MVpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZjQzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblE2SUZ0ZExDQjJZV3gxWlRvZ2RHOXJaVzRnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuWmhiSFZsSUQwZ2RHOXJaVzQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RtYkc5M0xXTnZiR3hsWTNScGIyNG5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdsMElEMGdkRzl3TG1sMFpXMXpXM1J2Y0M1cGRHVnRjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGcGRDQjhmQ0JwZEM1MllXeDFaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2Y0M1cGRHVnRjeTV3ZFhOb0tIc2djM1JoY25RNklGdGRMQ0JyWlhrNklIUnZhMlZ1TENCelpYQTZJRnRkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwZEM1elpYQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzUyWVd4MVpTQTlJSFJ2YTJWdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLR2wwTENCN0lHdGxlVG9nZEc5clpXNHNJSE5sY0RvZ1cxMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHNWxlSFFnYzJodmRXeGtJRzV2ZENCb1lYQndaVzRnS2k5Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3YjNBb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNHOXdLSFJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnb2RHOXdMblI1Y0dVZ1BUMDlJQ2RrYjJOMWJXVnVkQ2NnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIzQXVkSGx3WlNBOVBUMGdKMkpzYjJOckxXMWhjQ2NnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIzQXVkSGx3WlNBOVBUMGdKMkpzYjJOckxYTmxjU2NwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkaWJHOWpheTF0WVhBbklIeDhJSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZGliRzlqYXkxelpYRW5LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hoYzNRZ1BTQjBiMnRsYmk1cGRHVnRjMXQwYjJ0bGJpNXBkR1Z0Y3k1c1pXNW5kR2dnTFNBeFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYkdGemRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBaGJHRnpkQzV6WlhBZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVd4aGMzUXVkbUZzZFdVZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGemRDNXpkR0Z5ZEM1c1pXNW5kR2dnUGlBd0lDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdacGJtUk9iMjVGYlhCMGVVbHVaR1Y0S0d4aGMzUXVjM1JoY25RcElEMDlQU0F0TVNBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvZEc5clpXNHVhVzVrWlc1MElEMDlQU0F3SUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lYTjBMbk4wWVhKMExtVjJaWEo1S0hOMElEMCtJSE4wTG5SNWNHVWdJVDA5SUNkamIyMXRaVzUwSnlCOGZDQnpkQzVwYm1SbGJuUWdQQ0IwYjJ0bGJpNXBibVJsYm5RcEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kRzl3TG5SNWNHVWdQVDA5SUNka2IyTjFiV1Z1ZENjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIzQXVaVzVrSUQwZ2JHRnpkQzV6ZEdGeWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHOXdMbWwwWlcxekxuQjFjMmdvZXlCemRHRnlkRG9nYkdGemRDNXpkR0Z5ZENCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEc5clpXNHVhWFJsYlhNdWMzQnNhV05sS0MweExDQXhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0tuTjBjbVZoYlNncElIdGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaDBhR2x6TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJScGNtVmpkR2wyWlMxc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDQjdJSFI1Y0dVNklDZGthWEpsWTNScGRtVW5MQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTENCemIzVnlZMlU2SUhSb2FYTXVjMjkxY21ObElIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZbmwwWlMxdmNtUmxjaTF0WVhKckp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM053WVdObEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMk52YlcxbGJuUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYm1WM2JHbHVaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUWdkR2hwY3k1emIzVnlZMlZVYjJ0bGJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGtiMk10Ylc5a1pTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjJNdGMzUmhjblFuT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkc5aklEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWkc5amRXMWxiblFuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRG9nVzExY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuUjVjR1VnUFQwOUlDZGtiMk10YzNSaGNuUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2IyTXVjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZV05yTG5CMWMyZ29aRzlqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZVdsbGJHUWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nSjJWeWNtOXlKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdFpYTnpZV2RsT2lCZ1ZXNWxlSEJsWTNSbFpDQWtlM1JvYVhNdWRIbHdaWDBnZEc5clpXNGdhVzRnV1VGTlRDQnpkSEpsWVcxZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzI5MWNtTmxPaUIwYUdsekxuTnZkWEpqWlZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JpQWdJQ0FxWkc5amRXMWxiblFvWkc5aktTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoa2IyTXVkbUZzZFdVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11YkdsdVpVVnVaQ2hrYjJNcE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWkc5akxYTjBZWEowSnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htYVc1a1RtOXVSVzF3ZEhsSmJtUmxlQ2hrYjJNdWMzUmhjblFwSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3YjNBb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWMzUmxjQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSdll5NXpkR0Z5ZEM1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyRnVZMmh2Y2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZDBZV2NuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMzQmhZMlVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblkyOXRiV1Z1ZENjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHVaWGRzYVc1bEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtiMk11YzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWW5ZZ1BTQjBhR2x6TG5OMFlYSjBRbXh2WTJ0V1lXeDFaU2hrYjJNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWW5ZcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZV05yTG5CMWMyZ29ZbllwTzF4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWlhKeWIzSW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGREb2dkR2hwY3k1dlptWnpaWFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldWemMyRm5aVG9nWUZWdVpYaHdaV04wWldRZ0pIdDBhR2x6TG5SNWNHVjlJSFJ2YTJWdUlHbHVJRmxCVFV3Z1pHOWpkVzFsYm5SZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITnZkWEpqWlRvZ2RHaHBjeTV6YjNWeVkyVmNiaUFnSUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnS25OallXeGhjaWh6WTJGc1lYSXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11ZEhsd1pTQTlQVDBnSjIxaGNDMTJZV3gxWlMxcGJtUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVjJJRDBnWjJWMFVISmxkbEJ5YjNCektIUm9hWE11Y0dWbGF5Z3lLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkQ0E5SUdkbGRFWnBjbk4wUzJWNVUzUmhjblJRY205d2N5aHdjbVYyS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCelpYQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jMk5oYkdGeUxtVnVaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJSE5qWVd4aGNpNWxibVE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWd0xuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJSE5qWVd4aGNpNWxibVE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZ3SUQwZ1czUm9hWE11YzI5MWNtTmxWRzlyWlc1ZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0Z3SUQwZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUNkaWJHOWpheTF0WVhBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2MyTmhiR0Z5TG05bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUTZJSE5qWVd4aGNpNXBibVJsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUmxiWE02SUZ0N0lITjBZWEowTENCclpYazZJSE5qWVd4aGNpd2djMlZ3SUgxZFhHNGdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dmJrdGxlVXhwYm1VZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRmphMXQwYUdsekxuTjBZV05yTG14bGJtZDBhQ0F0SURGZElEMGdiV0Z3TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbXhwYm1WRmJtUW9jMk5oYkdGeUtUdGNiaUFnSUNCOVhHNGdJQ0FnS21Kc2IyTnJVMk5oYkdGeUtITmpZV3hoY2lrZ2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzNCaFkyVW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXVnVkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCelkyRnNZWEl1Y0hKdmNITXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOallXeGhjaTV6YjNWeVkyVWdQU0IwYUdsekxuTnZkWEpqWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QmliRzlqYXkxelkyRnNZWElnYzI5MWNtTmxJR2x1WTJ4MVpHVnpJSFJ5WVdsc2FXNW5JRzVsZDJ4cGJtVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1GMFRtVjNUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5RZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbTl1VG1WM1RHbHVaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYm13Z1BTQjBhR2x6TG5OdmRYSmpaUzVwYm1SbGVFOW1LQ2RjWEc0bktTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNodWJDQWhQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2Yms1bGQweHBibVVvZEdocGN5NXZabVp6WlhRZ0t5QnViQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YkNBOUlIUm9hWE11YzI5MWNtTmxMbWx1WkdWNFQyWW9KMXhjYmljc0lHNXNLU0FySURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNHOXdLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBdktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2JtVjRkQ0J6YUc5MWJHUWdibTkwSUdoaGNIQmxiaUFxTDF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3YjNBb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV6ZEdWd0tDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0ttSnNiMk5yVFdGd0tHMWhjQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwZENBOUlHMWhjQzVwZEdWdGMxdHRZWEF1YVhSbGJYTXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdJQ0FnSUM4dklHbDBMbk5sY0NCcGN5QjBjblZsTFdsemFDQnBaaUJ3WVdseUlHRnNjbVZoWkhrZ2FHRnpJR3RsZVNCdmNpQTZJSE5sY0dGeVlYUnZjbHh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFJvYVhNdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJtVjNiR2x1WlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2Ymt0bGVVeHBibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUXVkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ0oyVnVaQ2NnYVc0Z2FYUXVkbUZzZFdVZ1B5QnBkQzUyWVd4MVpTNWxibVFnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeGhjM1FnUFNCQmNuSmhlUzVwYzBGeWNtRjVLR1Z1WkNrZ1B5QmxibVJiWlc1a0xteGxibWQwYUNBdElERmRJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYkdGemREOHVkSGx3WlNBOVBUMGdKMk52YlcxbGJuUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVrUHk1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2wwTG5ObGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpaWEF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5OMFlYSjBMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTndZV05sSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyTnZiVzFsYm5Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwZEM1MllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2wwTG5ObGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpaWEF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbUYwU1c1a1pXNTBaV1JEYjIxdFpXNTBLR2wwTG5OMFlYSjBMQ0J0WVhBdWFXNWtaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0hKbGRpQTlJRzFoY0M1cGRHVnRjMXR0WVhBdWFYUmxiWE11YkdWdVozUm9JQzBnTWwwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JsYm1RZ1BTQndjbVYyUHk1MllXeDFaVDh1Wlc1a08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb1pXNWtLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFRnljbUY1TG5CeWIzUnZkSGx3WlM1d2RYTm9MbUZ3Y0d4NUtHVnVaQ3dnYVhRdWMzUmhjblFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVaQzV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV3YjNBb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFF1YzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHVaR1Z1ZENBK1BTQnRZWEF1YVc1a1pXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaGRFMWhjRWx1WkdWdWRDQTlJQ0YwYUdsekxtOXVTMlY1VEdsdVpTQW1KaUIwYUdsekxtbHVaR1Z1ZENBOVBUMGdiV0Z3TG1sdVpHVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdGMFRtVjRkRWwwWlcwZ1BTQmhkRTFoY0VsdVpHVnVkQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNocGRDNXpaWEFnZkh3Z2FYUXVaWGh3YkdsamFYUkxaWGtwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUwZVhCbElDRTlQU0FuYzJWeExXbDBaVzB0YVc1a0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFWnZjaUJsYlhCMGVTQnViMlJsY3l3Z1lYTnphV2R1SUc1bGQyeHBibVV0YzJWd1lYSmhkR1ZrSUc1dmRDQnBibVJsYm5SbFpDQmxiWEIwZVNCMGIydGxibk1nZEc4Z1ptOXNiRzkzYVc1bklHNXZaR1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJRnRkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dGMFRtVjRkRWwwWlcwZ0ppWWdhWFF1YzJWd0lDWW1JQ0ZwZEM1MllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzVzSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JwZEM1elpYQXViR1Z1WjNSb095QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUWdQU0JwZEM1elpYQmJhVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjNhWFJqYUNBb2MzUXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYm1WM2JHbHVaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2Jtd3VjSFZ6YUNocEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOd1lXTmxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyTnZiVzFsYm5Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoemRDNXBibVJsYm5RZ1BpQnRZWEF1YVc1a1pXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViQzVzWlc1bmRHZ2dQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWJDNXNaVzVuZEdnZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YkM1c1pXNW5kR2dnUGowZ01pbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGNuUWdQU0JwZEM1elpYQXVjM0JzYVdObEtHNXNXekZkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllXNWphRzl5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2QwWVdjbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lYUk9aWGgwU1hSbGJTQjhmQ0JwZEM1MllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1d2RYTm9LSHNnYzNSaGNuUWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYUXVjMlZ3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpaWEF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuTjBZWEowTG5CMWMyZ29kR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJWNGNHeHBZMmwwTFd0bGVTMXBibVFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdsMExuTmxjQ0FtSmlBaGFYUXVaWGh3YkdsamFYUkxaWGtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuTjBZWEowTG5CMWMyZ29kR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzVsZUhCc2FXTnBkRXRsZVNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVhST1pYaDBTWFJsYlNCOGZDQnBkQzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV3ZFhOb0tIc2djM1JoY25Rc0lHVjRjR3hwWTJsMFMyVjVPaUIwY25WbElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lBbllteHZZMnN0YldGd0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZERvZ2RHaHBjeTVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJYTTZJRnQ3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBzSUdWNGNHeHBZMmwwUzJWNU9pQjBjblZsSUgxZFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVMyVjVUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R0WVhBdGRtRnNkV1V0YVc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDBMbVY0Y0d4cFkybDBTMlY1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2wwTG5ObGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBibU5zZFdSbGMxUnZhMlZ1S0dsMExuTjBZWEowTENBbmJtVjNiR2x1WlNjcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvYVhRc0lIc2dhMlY1T2lCdWRXeHNMQ0J6WlhBNklGdDBhR2x6TG5OdmRYSmpaVlJ2YTJWdVhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMElEMGdaMlYwUm1seWMzUkxaWGxUZEdGeWRGQnliM0J6S0dsMExuTjBZWEowS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJQ2RpYkc5amF5MXRZWEFuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyWm1jMlYwT2lCMGFHbHpMbTltWm5ObGRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWdWREb2dkR2hwY3k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRHVnRjem9nVzNzZ2MzUmhjblFzSUd0bGVUb2diblZzYkN3Z2MyVndPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWFF1ZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiWFN3Z2EyVjVPaUJ1ZFd4c0xDQnpaWEE2SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbHVZMngxWkdWelZHOXJaVzRvYVhRdWMyVndMQ0FuYldGd0xYWmhiSFZsTFdsdVpDY3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dKMkpzYjJOckxXMWhjQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGREb2dkR2hwY3k1dlptWnpaWFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWdWREb2dkR2hwY3k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwWlcxek9pQmJleUJ6ZEdGeWRDd2dhMlY1T2lCdWRXeHNMQ0J6WlhBNklGdDBhR2x6TG5OdmRYSmpaVlJ2YTJWdVhTQjlYVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTkdiRzkzVkc5clpXNG9hWFF1YTJWNUtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNGcGJtTnNkV1JsYzFSdmEyVnVLR2wwTG5ObGNDd2dKMjVsZDJ4cGJtVW5LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnWjJWMFJtbHljM1JMWlhsVGRHRnlkRkJ5YjNCektHbDBMbk4wWVhKMEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnJaWGtnUFNCcGRDNXJaWGs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWd0lEMGdhWFF1YzJWd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY0M1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ2RIbHdaU0JuZFdGeVpDQnBjeUIzY205dVp5Qm9aWEpsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVnNaWFJsSUdsMExtdGxlVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkFkSE10Wlhod1pXTjBMV1Z5Y205eUlIUjVjR1VnWjNWaGNtUWdhWE1nZDNKdmJtY2dhR1Z5WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxiR1YwWlNCcGRDNXpaWEE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dKMkpzYjJOckxXMWhjQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGREb2dkR2hwY3k1dlptWnpaWFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWdWREb2dkR2hwY3k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwWlcxek9pQmJleUJ6ZEdGeWRDd2dhMlY1TENCelpYQWdmVjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tITjBZWEowTG14bGJtZDBhQ0ErSURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCT2IzUWdZV04wZFdGc2JIa2dZWFFnYm1WNGRDQnBkR1Z0WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUXVjMlZ3SUQwZ2FYUXVjMlZ3TG1OdmJtTmhkQ2h6ZEdGeWRDd2dkR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzV6WlhBdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doYVhRdWMyVndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG1GemMybG5iaWhwZEN3Z2V5QnJaWGs2SUc1MWJHd3NJSE5sY0RvZ1czUm9hWE11YzI5MWNtTmxWRzlyWlc1ZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWFF1ZG1Gc2RXVWdmSHdnWVhST1pYaDBTWFJsYlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV3ZFhOb0tIc2djM1JoY25Rc0lHdGxlVG9nYm5Wc2JDd2djMlZ3T2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBibU5zZFdSbGMxUnZhMlZ1S0dsMExuTmxjQ3dnSjIxaGNDMTJZV3gxWlMxcGJtUW5LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaFkyc3VjSFZ6YUNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJQ2RpYkc5amF5MXRZWEFuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUTZJSFJvYVhNdWFXNWtaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdGN6b2dXM3NnYzNSaGNuUTZJRnRkTENCclpYazZJRzUxYkd3c0lITmxjRG9nVzNSb2FYTXVjMjkxY21ObFZHOXJaVzVkSUgxZFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEM1elpYQXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGhiR2xoY3ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHphVzVuYkdVdGNYVnZkR1ZrTFhOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aRzkxWW14bExYRjFiM1JsWkMxelkyRnNZWEluT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnpJRDBnZEdocGN5NW1iRzkzVTJOaGJHRnlLSFJvYVhNdWRIbHdaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hoZEU1bGVIUkpkR1Z0SUh4OElHbDBMblpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowTENCclpYazZJR1p6TENCelpYQTZJRnRkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2Ymt0bGVVeHBibVVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2wwTG5ObGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRmpheTV3ZFhOb0tHWnpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvYVhRc0lIc2dhMlY1T2lCbWN5d2djMlZ3T2lCYlhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNUxaWGxNYVc1bElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1luWWdQU0IwYUdsekxuTjBZWEowUW14dlkydFdZV3gxWlNodFlYQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZbllwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGhkRTFoY0VsdVpHVnVkQ0FtSmlCaWRpNTBlWEJsSUNFOVBTQW5ZbXh2WTJzdGMyVnhKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblFnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVdOckxuQjFjMmdvWW5ZcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CdmNDZ3BPMXh1SUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1emRHVndLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lDcGliRzlqYTFObGNYVmxibU5sS0hObGNTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkQ0E5SUhObGNTNXBkR1Z0YzF0elpYRXVhWFJsYlhNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9kR2hwY3k1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWFF1ZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a0lEMGdKMlZ1WkNjZ2FXNGdhWFF1ZG1Gc2RXVWdQeUJwZEM1MllXeDFaUzVsYm1RZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hoYzNRZ1BTQkJjbkpoZVM1cGMwRnljbUY1S0dWdVpDa2dQeUJsYm1SYlpXNWtMbXhsYm1kMGFDQXRJREZkSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHRnpkRDh1ZEhsd1pTQTlQVDBnSjJOdmJXMWxiblFuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a1B5NXdkWE5vS0hSb2FYTXVjMjkxY21ObFZHOXJaVzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WlhFdWFYUmxiWE11Y0hWemFDaDdJSE4wWVhKME9pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhRdWMzUmhjblF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpjR0ZqWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGpiMjF0Wlc1MEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhRdWRtRnNkV1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjUzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblE2SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVZWFJKYm1SbGJuUmxaRU52YlcxbGJuUW9hWFF1YzNSaGNuUXNJSE5sY1M1cGJtUmxiblFwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WMklEMGdjMlZ4TG1sMFpXMXpXM05sY1M1cGRHVnRjeTVzWlc1bmRHZ2dMU0F5WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkNBOUlIQnlaWFkvTG5aaGJIVmxQeTVsYm1RN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNobGJtUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1FYSnlZWGt1Y0hKdmRHOTBlWEJsTG5CMWMyZ3VZWEJ3Ykhrb1pXNWtMQ0JwZEM1emRHRnlkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWtMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZ4TG1sMFpXMXpMbkJ2Y0NncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzV6ZEdGeWRDNXdkWE5vS0hSb2FYTXVjMjkxY21ObFZHOXJaVzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaGJtTm9iM0luT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmRHRm5KenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUXVkbUZzZFdVZ2ZId2dkR2hwY3k1cGJtUmxiblFnUEQwZ2MyVnhMbWx1WkdWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFF1YzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkelpYRXRhWFJsYlMxcGJtUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx1WkdWdWRDQWhQVDBnYzJWeExtbHVaR1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwTG5aaGJIVmxJSHg4SUdsdVkyeDFaR1Z6Vkc5clpXNG9hWFF1YzNSaGNuUXNJQ2R6WlhFdGFYUmxiUzFwYm1RbktTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWeExtbDBaVzF6TG5CMWMyZ29leUJ6ZEdGeWREb2dXM1JvYVhNdWMyOTFjbU5sVkc5clpXNWRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhRdWMzUmhjblF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhVzVrWlc1MElENGdjMlZ4TG1sdVpHVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1luWWdQU0IwYUdsekxuTjBZWEowUW14dlkydFdZV3gxWlNoelpYRXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR0oyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0dKMktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbk4wWlhBb0tUdGNiaUFnSUNCOVhHNGdJQ0FnS21ac2IzZERiMnhzWldOMGFXOXVLR1pqS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdsMElEMGdabU11YVhSbGJYTmJabU11YVhSbGJYTXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5SNWNHVWdQVDA5SUNkbWJHOTNMV1Z5Y205eUxXVnVaQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCMGIzQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2J5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzl3SUQwZ2RHaHBjeTV3WldWcktERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQjNhR2xzWlNBb2RHOXdJQ1ltSUhSdmNDNTBlWEJsSUQwOVBTQW5abXh2ZHkxamIyeHNaV04wYVc5dUp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWm1NdVpXNWtMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2gwYUdsekxuUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RqYjIxdFlTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpYaHdiR2xqYVhRdGEyVjVMV2x1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGFYUWdmSHdnYVhRdWMyVndLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabU11YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBMbk4wWVhKMExuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R0WVhBdGRtRnNkV1V0YVc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBkQ0I4ZkNCcGRDNTJZV3gxWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdaakxtbDBaVzF6TG5CMWMyZ29leUJ6ZEdGeWREb2dXMTBzSUd0bGVUb2diblZzYkN3Z2MyVndPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2wwTG5ObGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBMbk5sY0M1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0dsMExDQjdJR3RsZVRvZ2JuVnNiQ3dnYzJWd09pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6Y0dGalpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblkyOXRiV1Z1ZENjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYm1WM2JHbHVaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZVzVqYUc5eUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkMFlXY25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2wwSUh4OElHbDBMblpoYkhWbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptTXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2wwTG5ObGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBMbk5sY0M1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzV6ZEdGeWRDNXdkWE5vS0hSb2FYTXVjMjkxY21ObFZHOXJaVzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWVd4cFlYTW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzJsdVoyeGxMWEYxYjNSbFpDMXpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJSdmRXSnNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtY3lBOUlIUm9hWE11Wm14dmQxTmpZV3hoY2loMGFHbHpMblI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXbDBJSHg4SUdsMExuWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1NdWFYUmxiWE11Y0hWemFDaDdJSE4wWVhKME9pQmJYU3dnYTJWNU9pQm1jeXdnYzJWd09pQmJYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWFF1YzJWd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0daektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG1GemMybG5iaWhwZEN3Z2V5QnJaWGs2SUdaekxDQnpaWEE2SUZ0ZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlpzYjNjdGJXRndMV1Z1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWm14dmR5MXpaWEV0Wlc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1NdVpXNWtMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHSjJJRDBnZEdocGN5NXpkR0Z5ZEVKc2IyTnJWbUZzZFdVb1ptTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHVnNjMlVnYzJodmRXeGtJRzV2ZENCb1lYQndaVzRnS2k5Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaWRpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlXTnJMbkIxYzJnb1luWXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNHOXdLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWMzUmxjQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGeVpXNTBJRDBnZEdocGN5NXdaV1ZyS0RJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQmhjbVZ1ZEM1MGVYQmxJRDA5UFNBbllteHZZMnN0YldGd0p5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2dvZEdocGN5NTBlWEJsSUQwOVBTQW5iV0Z3TFhaaGJIVmxMV2x1WkNjZ0ppWWdjR0Z5Wlc1MExtbHVaR1Z1ZENBOVBUMGdabU11YVc1a1pXNTBLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9kR2hwY3k1MGVYQmxJRDA5UFNBbmJtVjNiR2x1WlNjZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDRndZWEpsYm5RdWFYUmxiWE5iY0dGeVpXNTBMbWwwWlcxekxteGxibWQwYUNBdElERmRMbk5sY0NrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11YzNSbGNDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvZEdocGN5NTBlWEJsSUQwOVBTQW5iV0Z3TFhaaGJIVmxMV2x1WkNjZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWEpsYm5RdWRIbHdaU0FoUFQwZ0oyWnNiM2N0WTI5c2JHVmpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVjJJRDBnWjJWMFVISmxkbEJ5YjNCektIQmhjbVZ1ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUWdQU0JuWlhSR2FYSnpkRXRsZVZOMFlYSjBVSEp2Y0hNb2NISmxkaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sNFJteHZkMU5sY1VsMFpXMXpLR1pqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6WlhBZ1BTQm1ZeTVsYm1RdWMzQnNhV05sS0RFc0lHWmpMbVZ1WkM1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNDNXdkWE5vS0hSb2FYTXVjMjkxY21ObFZHOXJaVzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFoY0NBOUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dKMkpzYjJOckxXMWhjQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ1ptTXViMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUTZJR1pqTG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUmxiWE02SUZ0N0lITjBZWEowTENCclpYazZJR1pqTENCelpYQWdmVjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViMjVMWlhsTWFXNWxJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlXTnJXM1JvYVhNdWMzUmhZMnN1YkdWdVozUm9JQzBnTVYwZ1BTQnRZWEE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1c2FXNWxSVzVrS0daaktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JtYkc5M1UyTmhiR0Z5S0hSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YjI1T1pYZE1hVzVsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2Jtd2dQU0IwYUdsekxuTnZkWEpqWlM1cGJtUmxlRTltS0NkY1hHNG5LU0FySURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9ibXdnSVQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVUbVYzVEdsdVpTaDBhR2x6TG05bVpuTmxkQ0FySUc1c0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViQ0E5SUhSb2FYTXVjMjkxY21ObExtbHVaR1Y0VDJZb0oxeGNiaWNzSUc1c0tTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNWtaVzUwT2lCMGFHbHpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVG9nZEdocGN5NXpiM1Z5WTJWY2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGNuUkNiRzlqYTFaaGJIVmxLSEJoY21WdWRDa2dlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFJvYVhNdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllXeHBZWE1uT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMyTmhiR0Z5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTnBibWRzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJSdmRXSnNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVtYkc5M1UyTmhiR0Z5S0hSb2FYTXVkSGx3WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxelkyRnNZWEl0YUdWaFpHVnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWW14dlkyc3RjMk5oYkdGeUp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBPaUIwYUdsekxtOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhVzVrWlc1ME9pQjBhR2x6TG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISnZjSE02SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMjkxY21ObE9pQW5KMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkbWJHOTNMVzFoY0MxemRHRnlkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkbWJHOTNMWE5sY1MxemRHRnlkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nSjJac2IzY3RZMjlzYkdWamRHbHZiaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHVnVkRG9nZEdocGN5NXBibVJsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKME9pQjBhR2x6TG5OdmRYSmpaVlJ2YTJWdUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdGN6b2dXMTBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVaRG9nVzExY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jMlZ4TFdsMFpXMHRhVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lBbllteHZZMnN0YzJWeEp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBPaUIwYUdsekxtOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhVzVrWlc1ME9pQjBhR2x6TG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUmxiWE02SUZ0N0lITjBZWEowT2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NISmxkaUE5SUdkbGRGQnlaWFpRY205d2N5aHdZWEpsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnWjJWMFJtbHljM1JMWlhsVGRHRnlkRkJ5YjNCektIQnlaWFlwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMFlYSjBMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ0oySnNiMk5yTFcxaGNDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRG9nZEdocGN5NXZabVp6WlhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWdWREb2dkR2hwY3k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzF6T2lCYmV5QnpkR0Z5ZEN3Z1pYaHdiR2xqYVhSTFpYazZJSFJ5ZFdVZ2ZWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5iV0Z3TFhaaGJIVmxMV2x1WkNjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVMyVjVUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjSEpsZGlBOUlHZGxkRkJ5WlhaUWNtOXdjeWh3WVhKbGJuUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjBZWEowSUQwZ1oyVjBSbWx5YzNSTFpYbFRkR0Z5ZEZCeWIzQnpLSEJ5WlhZcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklDZGliRzlqYXkxdFlYQW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFE2SUhSb2FYTXViMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUTZJSFJvYVhNdWFXNWtaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z0Y3pvZ1czc2djM1JoY25Rc0lHdGxlVG9nYm5Wc2JDd2djMlZ3T2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmlBZ0lDQmhkRWx1WkdWdWRHVmtRMjl0YldWdWRDaHpkR0Z5ZEN3Z2FXNWtaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuUjVjR1VnSVQwOUlDZGpiMjF0Wlc1MEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhVzVrWlc1MElEdzlJR2x1WkdWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBZWEowTG1WMlpYSjVLSE4wSUQwK0lITjBMblI1Y0dVZ1BUMDlJQ2R1Wlhkc2FXNWxKeUI4ZkNCemRDNTBlWEJsSUQwOVBTQW5jM0JoWTJVbktUdGNiaUFnSUNCOVhHNGdJQ0FnS21SdlkzVnRaVzUwUlc1a0tHUnZZMFZ1WkNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTBlWEJsSUNFOVBTQW5aRzlqTFcxdlpHVW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWkc5alJXNWtMbVZ1WkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2IyTkZibVF1Wlc1a0xuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkc5alJXNWtMbVZ1WkNBOUlGdDBhR2x6TG5OdmRYSmpaVlJ2YTJWdVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5SNWNHVWdQVDA5SUNkdVpYZHNhVzVsSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0FxYkdsdVpVVnVaQ2gwYjJ0bGJpa2dlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFJvYVhNdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblkyOXRiV0VuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOWpMWE4wWVhKMEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlJ2WXkxbGJtUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWm14dmR5MXpaWEV0Wlc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlpzYjNjdGJXRndMV1Z1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHRZWEF0ZG1Gc2RXVXRhVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXpkR1Z3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabUZzYkhSb2NtOTFaMmhjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOd1lXTmxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWxiblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJoYkd3Z2IzUm9aWElnZG1Gc2RXVnpJR0Z5WlNCbGNuSnZjbk5jYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHOXJaVzR1Wlc1a0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJpNWxibVF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZhMlZ1TG1WdVpDQTlJRnQwYUdsekxuTnZkWEpqWlZSdmEyVnVYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTUwZVhCbElEMDlQU0FuYm1WM2JHbHVaU2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkJ2Y0NncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCUVlYSnpaWElnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJEYjIxd2IzTmxjaUI5SUdaeWIyMGdKeTR2WTI5dGNHOXpaUzlqYjIxd2IzTmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QkViMk4xYldWdWRDQjlJR1p5YjIwZ0p5NHZaRzlqTDBSdlkzVnRaVzUwTG1wekp6dGNibWx0Y0c5eWRDQjdJSEJ5WlhSMGFXWjVSWEp5YjNJc0lGbEJUVXhRWVhKelpVVnljbTl5SUgwZ1puSnZiU0FuTGk5bGNuSnZjbk11YW5Nbk8xeHVhVzF3YjNKMElIc2dkMkZ5YmlCOUlHWnliMjBnSnk0dmJHOW5MbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHpSRzlqZFcxbGJuUWdmU0JtY205dElDY3VMMjV2WkdWekwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUV4cGJtVkRiM1Z1ZEdWeUlIMGdabkp2YlNBbkxpOXdZWEp6WlM5c2FXNWxMV052ZFc1MFpYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ1VHRnljMlZ5SUgwZ1puSnZiU0FuTGk5d1lYSnpaUzl3WVhKelpYSXVhbk1uTzF4dVhHNW1kVzVqZEdsdmJpQndZWEp6WlU5d2RHbHZibk1vYjNCMGFXOXVjeWtnZTF4dUlDQWdJR052Ym5OMElIQnlaWFIwZVVWeWNtOXljeUE5SUc5d2RHbHZibk11Y0hKbGRIUjVSWEp5YjNKeklDRTlQU0JtWVd4elpUdGNiaUFnSUNCamIyNXpkQ0JzYVc1bFEyOTFiblJsY2lBOUlHOXdkR2x2Ym5NdWJHbHVaVU52ZFc1MFpYSWdmSHdnS0hCeVpYUjBlVVZ5Y205eWN5QW1KaUJ1WlhjZ1RHbHVaVU52ZFc1MFpYSW9LU2tnZkh3Z2JuVnNiRHRjYmlBZ0lDQnlaWFIxY200Z2V5QnNhVzVsUTI5MWJuUmxjaXdnY0hKbGRIUjVSWEp5YjNKeklIMDdYRzU5WEc0dktpcGNiaUFxSUZCaGNuTmxJSFJvWlNCcGJuQjFkQ0JoY3lCaElITjBjbVZoYlNCdlppQlpRVTFNSUdSdlkzVnRaVzUwY3k1Y2JpQXFYRzRnS2lCRWIyTjFiV1Z1ZEhNZ2MyaHZkV3hrSUdKbElITmxjR0Z5WVhSbFpDQm1jbTl0SUdWaFkyZ2diM1JvWlhJZ1lua2dZQzR1TG1BZ2IzSWdZQzB0TFdBZ2JXRnlhMlZ5SUd4cGJtVnpMbHh1SUNwY2JpQXFJRUJ5WlhSMWNtNXpJRWxtSUdGdUlHVnRjSFI1SUdCa2IyTnpZQ0JoY25KaGVTQnBjeUJ5WlhSMWNtNWxaQ3dnYVhRZ2QybHNiQ0JpWlNCdlppQjBlWEJsWEc0Z0tpQWdJRVZ0Y0hSNVUzUnlaV0Z0SUdGdVpDQmpiMjUwWVdsdUlHRmtaR2wwYVc5dVlXd2djM1J5WldGdElHbHVabTl5YldGMGFXOXVMaUJKYmx4dUlDb2dJQ0JVZVhCbFUyTnlhWEIwTENCNWIzVWdjMmh2ZFd4a0lIVnpaU0JnSjJWdGNIUjVKeUJwYmlCa2IyTnpZQ0JoY3lCaElIUjVjR1VnWjNWaGNtUWdabTl5SUdsMExseHVJQ292WEc1bWRXNWpkR2x2YmlCd1lYSnpaVUZzYkVSdlkzVnRaVzUwY3loemIzVnlZMlVzSUc5d2RHbHZibk1nUFNCN2ZTa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHbHVaVU52ZFc1MFpYSXNJSEJ5WlhSMGVVVnljbTl5Y3lCOUlEMGdjR0Z5YzJWUGNIUnBiMjV6S0c5d2RHbHZibk1wTzF4dUlDQWdJR052Ym5OMElIQmhjbk5sY2lBOUlHNWxkeUJRWVhKelpYSW9iR2x1WlVOdmRXNTBaWEkvTG1Ga1pFNWxkMHhwYm1VcE8xeHVJQ0FnSUdOdmJuTjBJR052YlhCdmMyVnlJRDBnYm1WM0lFTnZiWEJ2YzJWeUtHOXdkR2x2Ym5NcE8xeHVJQ0FnSUdOdmJuTjBJR1J2WTNNZ1BTQkJjbkpoZVM1bWNtOXRLR052YlhCdmMyVnlMbU52YlhCdmMyVW9jR0Z5YzJWeUxuQmhjbk5sS0hOdmRYSmpaU2twS1R0Y2JpQWdJQ0JwWmlBb2NISmxkSFI1UlhKeWIzSnpJQ1ltSUd4cGJtVkRiM1Z1ZEdWeUtWeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR1J2WXlCdlppQmtiMk56S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjJNdVpYSnliM0p6TG1admNrVmhZMmdvY0hKbGRIUnBabmxGY25KdmNpaHpiM1Z5WTJVc0lHeHBibVZEYjNWdWRHVnlLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtiMk11ZDJGeWJtbHVaM011Wm05eVJXRmphQ2h3Y21WMGRHbG1lVVZ5Y205eUtITnZkWEpqWlN3Z2JHbHVaVU52ZFc1MFpYSXBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJR2xtSUNoa2IyTnpMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJrYjJOek8xeHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVZWE56YVdkdUtGdGRMQ0I3SUdWdGNIUjVPaUIwY25WbElIMHNJR052YlhCdmMyVnlMbk4wY21WaGJVbHVabThvS1NrN1hHNTlYRzR2S2lvZ1VHRnljMlVnWVc0Z2FXNXdkWFFnYzNSeWFXNW5JR2x1ZEc4Z1lTQnphVzVuYkdVZ1dVRk5UQzVFYjJOMWJXVnVkQ0FxTDF4dVpuVnVZM1JwYjI0Z2NHRnljMlZFYjJOMWJXVnVkQ2h6YjNWeVkyVXNJRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkdsdVpVTnZkVzUwWlhJc0lIQnlaWFIwZVVWeWNtOXljeUI5SUQwZ2NHRnljMlZQY0hScGIyNXpLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHTnZibk4wSUhCaGNuTmxjaUE5SUc1bGR5QlFZWEp6WlhJb2JHbHVaVU52ZFc1MFpYSS9MbUZrWkU1bGQweHBibVVwTzF4dUlDQWdJR052Ym5OMElHTnZiWEJ2YzJWeUlEMGdibVYzSUVOdmJYQnZjMlZ5S0c5d2RHbHZibk1wTzF4dUlDQWdJQzh2SUdCa2IyTmdJR2x6SUdGc2QyRjVjeUJ6WlhRZ1lua2dZMjl0Y0c5elpTNWxibVFvZEhKMVpTa2dZWFFnZEdobElIWmxjbmtnYkdGMFpYTjBYRzRnSUNBZ2JHVjBJR1J2WXlBOUlHNTFiR3c3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JmWkc5aklHOW1JR052YlhCdmMyVnlMbU52YlhCdmMyVW9jR0Z5YzJWeUxuQmhjbk5sS0hOdmRYSmpaU2tzSUhSeWRXVXNJSE52ZFhKalpTNXNaVzVuZEdncEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFpHOWpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOWpJRDBnWDJSdll6dGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9aRzlqTG05d2RHbHZibk11Ykc5blRHVjJaV3dnSVQwOUlDZHphV3hsYm5RbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyTXVaWEp5YjNKekxuQjFjMmdvYm1WM0lGbEJUVXhRWVhKelpVVnljbTl5S0Y5a2IyTXVjbUZ1WjJVdWMyeHBZMlVvTUN3Z01pa3NJQ2ROVlV4VVNWQk1SVjlFVDBOVEp5d2dKMU52ZFhKalpTQmpiMjUwWVdsdWN5QnRkV3gwYVhCc1pTQmtiMk4xYldWdWRITTdJSEJzWldGelpTQjFjMlVnV1VGTlRDNXdZWEp6WlVGc2JFUnZZM1Z0Wlc1MGN5Z3BKeWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIQnlaWFIwZVVWeWNtOXljeUFtSmlCc2FXNWxRMjkxYm5SbGNpa2dlMXh1SUNBZ0lDQWdJQ0JrYjJNdVpYSnliM0p6TG1admNrVmhZMmdvY0hKbGRIUnBabmxGY25KdmNpaHpiM1Z5WTJVc0lHeHBibVZEYjNWdWRHVnlLU2s3WEc0Z0lDQWdJQ0FnSUdSdll5NTNZWEp1YVc1bmN5NW1iM0pGWVdOb0tIQnlaWFIwYVdaNVJYSnliM0lvYzI5MWNtTmxMQ0JzYVc1bFEyOTFiblJsY2lrcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaRzlqTzF4dWZWeHVablZ1WTNScGIyNGdjR0Z5YzJVb2MzSmpMQ0J5WlhacGRtVnlMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdiR1YwSUY5eVpYWnBkbVZ5SUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NtVjJhWFpsY2lBOVBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJQ0FnSUNCZmNtVjJhWFpsY2lBOUlISmxkbWwyWlhJN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLRzl3ZEdsdmJuTWdQVDA5SUhWdVpHVm1hVzVsWkNBbUppQnlaWFpwZG1WeUlDWW1JSFI1Y0dWdlppQnlaWFpwZG1WeUlEMDlQU0FuYjJKcVpXTjBKeWtnZTF4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6SUQwZ2NtVjJhWFpsY2p0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ1pHOWpJRDBnY0dGeWMyVkViMk4xYldWdWRDaHpjbU1zSUc5d2RHbHZibk1wTzF4dUlDQWdJR2xtSUNnaFpHOWpLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0JrYjJNdWQyRnlibWx1WjNNdVptOXlSV0ZqYUNoM1lYSnVhVzVuSUQwK0lIZGhjbTRvWkc5akxtOXdkR2x2Ym5NdWJHOW5UR1YyWld3c0lIZGhjbTVwYm1jcEtUdGNiaUFnSUNCcFppQW9aRzlqTG1WeWNtOXljeTVzWlc1bmRHZ2dQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hrYjJNdWIzQjBhVzl1Y3k1c2IyZE1aWFpsYkNBaFBUMGdKM05wYkdWdWRDY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJrYjJNdVpYSnliM0p6V3pCZE8xeHVJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtiMk11WlhKeWIzSnpJRDBnVzEwN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmtiMk11ZEc5S1V5aFBZbXBsWTNRdVlYTnphV2R1S0hzZ2NtVjJhWFpsY2pvZ1gzSmxkbWwyWlhJZ2ZTd2diM0IwYVc5dWN5a3BPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2MzUnlhVzVuYVdaNUtIWmhiSFZsTENCeVpYQnNZV05sY2l3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUd4bGRDQmZjbVZ3YkdGalpYSWdQU0J1ZFd4c08xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NtVndiR0ZqWlhJZ1BUMDlJQ2RtZFc1amRHbHZiaWNnZkh3Z1FYSnlZWGt1YVhOQmNuSmhlU2h5WlhCc1lXTmxjaWtwSUh0Y2JpQWdJQ0FnSUNBZ1gzSmxjR3hoWTJWeUlEMGdjbVZ3YkdGalpYSTdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0c5d2RHbHZibk1nUFQwOUlIVnVaR1ZtYVc1bFpDQW1KaUJ5WlhCc1lXTmxjaWtnZTF4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6SUQwZ2NtVndiR0ZqWlhJN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGVYQmxiMllnYjNCMGFXOXVjeUE5UFQwZ0ozTjBjbWx1WnljcFhHNGdJQ0FnSUNBZ0lHOXdkR2x2Ym5NZ1BTQnZjSFJwYjI1ekxteGxibWQwYUR0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUc5d2RHbHZibk1nUFQwOUlDZHVkVzFpWlhJbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbHVaR1Z1ZENBOUlFMWhkR2d1Y205MWJtUW9iM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJRzl3ZEdsdmJuTWdQU0JwYm1SbGJuUWdQQ0F4SUQ4Z2RXNWtaV1pwYm1Wa0lEb2dhVzVrWlc1MElENGdPQ0EvSUhzZ2FXNWtaVzUwT2lBNElIMGdPaUI3SUdsdVpHVnVkQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZG1Gc2RXVWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lHdGxaWEJWYm1SbFptbHVaV1FnZlNBOUlHOXdkR2x2Ym5NZ1B6OGdjbVZ3YkdGalpYSWdQejhnZTMwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYTJWbGNGVnVaR1ZtYVc1bFpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hwYzBSdlkzVnRaVzUwS0haaGJIVmxLU0FtSmlBaFgzSmxjR3hoWTJWeUtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1V1ZEc5VGRISnBibWNvYjNCMGFXOXVjeWs3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJFYjJOMWJXVnVkQ2gyWVd4MVpTd2dYM0psY0d4aFkyVnlMQ0J2Y0hScGIyNXpLUzUwYjFOMGNtbHVaeWh2Y0hScGIyNXpLVHRjYm4xY2JseHVaWGh3YjNKMElIc2djR0Z5YzJVc0lIQmhjbk5sUVd4c1JHOWpkVzFsYm5SekxDQndZWEp6WlVSdlkzVnRaVzUwTENCemRISnBibWRwWm5rZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCS2MyOXVUR2x1YXl3Z1RHbHVheUI5SUdaeWIyMGdYQ0psZUhCeVpYTnphVzl1TDJ4cGJtdGNJanRjYm1sdGNHOXlkQ0I3SUdkbGRFVjRkR1Z1YzJsdmJpd2daMlYwUm1sc1pWUnBkR3hsSUgwZ1puSnZiU0JjSW5WMGFXeHpMMjV2Y20xaGJHbDZaWEp6WENJN1hHNXBiWEJ2Y25RZ2V5QkRZV05vWldSTlpYUmhaR0YwWVN3Z1JtbHNaVk4wWVhSekxDQkdjbTl1ZEUxaGRIUmxja05oWTJobElIMGdabkp2YlNCY0ltOWljMmxrYVdGdVhDSTdYRzVwYlhCdmNuUWdleUJ3WVhKelpTQmhjeUJ3WVhKelpWbGhiV3dnZlNCbWNtOXRJRndpZVdGdGJGd2lPMXh1YVcxd2IzSjBJSHRrWldaaGRXeDBJR0Z6SUVKVWNtVmxmU0JtY205dElGd2ljMjl5ZEdWa0xXSjBjbVZsWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0FnSUVsdWJHbHVaVVpwWld4a0xGeHVJQ0FnSUVwemIyNUpibXhwYm1WR2FXVnNaQ3hjYmlBZ0lDQmhjMGx1YkdsdVpVWnBaV3hrTEZ4dUlDQWdJR1Y0ZEhKaFkzUkdkV3hzVEdsdVpVWnBaV3hrTEZ4dUlDQWdJR1Y0ZEhKaFkzUkpibXhwYm1WR2FXVnNaSE1zWEc0Z0lDQWdhbk52YmtsdWJHbHVaVVpwWld4a0xGeHVmU0JtY205dElGd2lMaTlwYm14cGJtVXRabWxsYkdSY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUNBZ1NuTnZiazFoY210a2IzZHVRbXh2WTJzc1hHNGdJQ0FnU25OdmJrMWhjbXRrYjNkdVRHbHpkRUpzYjJOckxGeHVJQ0FnSUVwemIyNU5ZWEpyWkc5M2JreHBjM1JKZEdWdExGeHVJQ0FnSUVwemIyNU5ZWEpyWkc5M2JsQmhaMlVzWEc0Z0lDQWdTbk52YmsxaGNtdGtiM2R1VTJWamRHbHZiaXhjYmlBZ0lDQktjMjl1VFdGeWEyUnZkMjVVWVhOclNYUmxiU3hjYmlBZ0lDQktjMjl1VFdGeWEyUnZkMjVFWVhSaFlteHZZMnNzWEc0Z0lDQWdTbk52YmsxaGNtdGtiM2R1UTI5a1pXSnNiMk5yTEZ4dUlDQWdJRXB6YjI1R2NtOXVkRzFoZEhSbGNrVnVkSEo1TEZ4dWZTQm1jbTl0SUZ3aWFXNWtaWGd2ZEhsd1pYTXZhbk52Ymk5dFlYSnJaRzkzYmx3aU8xeHVhVzF3YjNKMElIc2dTbk52YmtOdmJuWmxjbk5wYjI0Z2ZTQm1jbTl0SUZ3aWFXNWtaWGd2ZEhsd1pYTXZhbk52Ymk5amIyMXRiMjVjSWp0Y2JtbHRjRzl5ZENCN0lGbGhiV3hEYjI1MlpYSnphVzl1SUgwZ1puSnZiU0JjSW1sdVpHVjRMM1I1Y0dWekwzbGhiV3hjSWp0Y2JtbHRjRzl5ZENCN0lHMWhjRTlpYW1WamRGWmhiSFZsY3lCOUlHWnliMjBnWENKMWRHbHNjeTlrWVhSaFhDSTdYRzVjYmk4cUtpQk5ZWFJqYUdWeklIbGhiV3dnWkdGMFlXSnNiMk5yY3l3Z2QyaHBZMmdnYzJodmR5QjFjQ0JoY3lCcGJtUmxjR1Z1WkdWdWRDQnZZbXBsWTNSeklHbHVJSFJvWlNCa1lYUmhZMjl5WlNCcGJtUmxlQzRnS2k5Y2JtTnZibk4wSUZsQlRVeGZSRUZVUVY5U1JVZEZXQ0E5SUM5Z1lHQjVZVzFzT21SaGRHRXZhVHRjYmk4cUtpQk5ZWFJqYUdWeklIUm9aU0J6ZEdGeWRDQnZaaUJoYm5rZ1kyOWtaV0pzYjJOcklHWmxibU5sTGlBcUwxeHVZMjl1YzNRZ1EwOUVSVUpNVDBOTFgwWkZUa05GWDFKRlIwVllJRDBnTDE0b1B6cGdZR0I4Zm41K0tTZ3VLaWtrTDJsdE8xeHVMeW9xSUUxaGRHTm9aWE1nYkdsemRDQnBkR1Z0Y3lBb2FXNWpiSFZrYVc1bklHbHVjMmxrWlNCMFpYaDBJR0pzYjJOcmN5a3VJQ292WEc1amIyNXpkQ0JNU1ZOVVgwbFVSVTFmVWtWSFJWZ2dQU0F2WGx0Y1hITStYU29vWEZ4a0sxeGNMbnhjWEdRclhGd3BmRnhjS253dGZGeGNLeWxjWEhNcUtGeGNXeTU3TUN3eGZWeGNYU2svWEZ4ektpZ3VLaWtrTDIxMU8xeHVYRzR2S2lwY2JpQXFJRWRwZG1WdUlIUm9aU0J5WVhjZ2MyOTFjbU5sSUdGdVpDQlBZbk5wWkdsaGJpQnRaWFJoWkdGMFlTQm1iM0lnWVNCbmFYWmxiaUJ0WVhKclpHOTNiaUJtYVd4bExGeHVJQ29nY21WMGRYSnVJR1oxYkd3Z2JXRnlhMlJ2ZDI0Z1ptbHNaU0J0WlhSaFpHRjBZUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWhjbXRrYjNkdVNXMXdiM0owS0Z4dUlDQWdJSEJoZEdnNklITjBjbWx1Wnl4Y2JpQWdJQ0J0WVhKclpHOTNiam9nYzNSeWFXNW5MRnh1SUNBZ0lHMWxkR0ZrWVhSaE9pQkRZV05vWldSTlpYUmhaR0YwWVN4Y2JpQWdJQ0J6ZEdGMGN6b2dSbWxzWlZOMFlYUnpYRzRwT2lCS2MyOXVUV0Z5YTJSdmQyNVFZV2RsSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3hwYm1WekxDQnRaWFJoWkdGMFlUb2djR0ZuWlUxbGRHRmtZWFJoTENCbWNtOXVkRzFoZEhSbGNpd2djMlZqZEdsdmJuTWdmU0E5SUcxaGNtdGtiM2R1VTI5MWNtTmxTVzF3YjNKMEtIQmhkR2dzSUcxaGNtdGtiM2R1TENCdFpYUmhaR0YwWVNrN1hHNGdJQ0FnWTI5dWMzUWdjR0ZuWlNBOUlHNWxkeUJRWVdkbFJHRjBZU2h3WVhSb0xDQnpkR0YwY3l3Z2JHbHVaWE11YkdWdVozUm9MQ0J3WVdkbFRXVjBZV1JoZEdFc0lITmxZM1JwYjI1ekxDQm1jbTl1ZEcxaGRIUmxjaWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjR0ZuWlM1aWRXbHNaQ2dwTzF4dWZWeHVYRzR2S2lvZ1NXMXdiM0owSUcxaGNtdGtiM2R1SUdacGJHVWdiV1YwWVdSaGRHRXNJSEJ5YjJSMVkybHVaeUJoYkd3Z2NtVnNaWFpoYm5RZ2JXRnlhMlJ2ZDI0Z1pHRjBZUzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFlYSnJaRzkzYmxOdmRYSmpaVWx0Y0c5eWRDaGNiaUFnSUNCd1lYUm9PaUJ6ZEhKcGJtY3NYRzRnSUNBZ2JXRnlhMlJ2ZDI0NklITjBjbWx1Wnl4Y2JpQWdJQ0J0WlhSaFpHRjBZVG9nUTJGamFHVmtUV1YwWVdSaGRHRmNiaWs2SUh0Y2JpQWdJQ0JzYVc1bGN6b2djM1J5YVc1blcxMDdYRzRnSUNBZ2JXVjBZV1JoZEdFNklFMWxkR0ZrWVhSaE8xeHVJQ0FnSUdaeWIyNTBiV0YwZEdWeVB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1NuTnZia1p5YjI1MGJXRjBkR1Z5Ulc1MGNuaytPMXh1SUNBZ0lITmxZM1JwYjI1ek9pQlRaV04wYVc5dVJHRjBZVnRkTzF4dWZTQjdYRzRnSUNBZ1kyOXVjM1FnWm5KdmJuUnRZWFIwWlhJNklGSmxZMjl5WkR4emRISnBibWNzSUVwemIyNUdjbTl1ZEcxaGRIUmxja1Z1ZEhKNVBpQjhJSFZ1WkdWbWFXNWxaQ0E5SUcxbGRHRmtZWFJoTG1aeWIyNTBiV0YwZEdWeVhHNGdJQ0FnSUNBZ0lEOGdjR0Z5YzJWR2NtOXVkRzFoZEhSbGNrSnNiMk5yS0cxbGRHRmtZWFJoTG1aeWIyNTBiV0YwZEdWeUtWeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCc2FXNWxjeUE5SUcxaGNtdGtiM2R1TG5Od2JHbDBLQzljWEhKY1hHNThYRnh5ZkZ4Y2JpOHBPMXh1SUNBZ0lHTnZibk4wSUcxaGNtdGtiM2R1VFdWMFlXUmhkR0VnUFNCdVpYY2dUV1YwWVdSaGRHRW9LVHRjYmlBZ0lDQmpiMjV6ZENCelpXTjBhVzl1UVhKeVlYazZJRk5sWTNScGIyNUVZWFJoVzEwZ1BTQmJYVHRjYmlBZ0lDQXZMeTh2THk4dkx5OHZMeTh2TDF4dUlDQWdJQzh2SUZObFkzUnBiMjV6SUM4dlhHNGdJQ0FnTHk4dkx5OHZMeTh2THk4dkx5OWNibHh1SUNBZ0lHTnZibk4wSUcxbGRHRm9aV0ZrYVc1bmN5QTlJRzFsZEdGa1lYUmhMbWhsWVdScGJtZHpJRDgvSUZ0ZE8xeHVJQ0FnSUcxbGRHRm9aV0ZrYVc1bmN5NXpiM0owS0NoaExDQmlLU0E5UGlCaExuQnZjMmwwYVc5dUxuTjBZWEowTG14cGJtVWdMU0JpTG5CdmMybDBhVzl1TG5OMFlYSjBMbXhwYm1VcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYzJWamRHbHZibk1nUFNCdVpYY2dRbFJ5WldVOGJuVnRZbVZ5TENCVFpXTjBhVzl1UkdGMFlUNG9kVzVrWldacGJtVmtMQ0FvWVN3Z1lpa2dQVDRnWVNBdElHSXBPMXh1SUNBZ0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ01Ec2dhVzVrWlhnZ1BDQnRaWFJoYUdWaFpHbHVaM011YkdWdVozUm9PeUJwYm1SbGVDc3JLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1Z1ZEhKNUlEMGdiV1YwWVdobFlXUnBibWR6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25RZ1BTQmxiblJ5ZVM1d2IzTnBkR2x2Ymk1emRHRnlkQzVzYVc1bE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUWdQU0JwYm1SbGVDQTlQU0J0WlhSaGFHVmhaR2x1WjNNdWJHVnVaM1JvSUMwZ01TQS9JR3hwYm1WekxteGxibWQwYUNBNklHMWxkR0ZvWldGa2FXNW5jMXRwYm1SbGVDQXJJREZkTG5CdmMybDBhVzl1TG5OMFlYSjBMbXhwYm1VN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyVmpkR2x2YmlBOUlHNWxkeUJUWldOMGFXOXVSR0YwWVNoemRHRnlkQ3dnWlc1a0xDQmxiblJ5ZVM1b1pXRmthVzVuTENCbGJuUnllUzVzWlhabGJDd2dhVzVrWlhnZ0t5QXhLVHRjYmlBZ0lDQWdJQ0FnYzJWamRHbHZibk11YzJWMEtITjBZWEowTENCelpXTjBhVzl1S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCQlpHUWdZVzRnYVcxd2JHbGphWFFnYzJWamRHbHZiaUJtYjNJZ2RHaGxJRndpYUdWaFpHbHVaMXdpSUhObFkzUnBiMjRnYjJZZ2RHaGxJSEJoWjJVZ2FXWWdkR2hsY21VZ2FYTWdibTkwSUdGdUlHbHRiV1ZrYVdGMFpTQm9aV0ZrWlhJZ1luVjBJSFJvWlhKbElHbHpYRzRnSUNBZ0x5OGdjMjl0WlNCamIyNTBaVzUwSUdsdUlIUm9aU0JtYVd4bExpQkpaaUIwYUdWeVpTQmhjbVVnYjNSb1pYSWdjMlZqZEdsdmJuTXNJSFJvWlc0Z1oyOGdkWEFnZEc4Z2RHaGhkQ3dnYjNSb1pYSjNhWE5sTENCbmJ5Qm1iM0lnZEdobElHVnVkR2x5WlNCbWFXeGxMbHh1SUNBZ0lHbG1JQ2h6WldOMGFXOXVjeTV6YVhwbElEMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZsYlhCMGVXeHBibVZ6S0d4cGJtVnpMQ0F3TENCc2FXNWxjeTVzWlc1bmRHZ3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpXTjBhVzl1SUQwZ2JtVjNJRk5sWTNScGIyNUVZWFJoS0RBc0lHeHBibVZ6TG14bGJtZDBhQ3dnWjJWMFJtbHNaVlJwZEd4bEtIQmhkR2dwTENBeExDQXdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxZM1JwYjI1ekxuTmxkQ2d3TENCelpXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUM4dklFWnBibVFnZEdobElITjBZWEowSUc5bUlIUm9aU0JtYVhKemRDQnpaV04wYVc5dUxseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWFYSnpkQ0E5SUhObFkzUnBiMjV6TG1kbGRGQmhhWEpQY2s1bGVIUklhV2RvWlhJb01Day9MbHN4WFNFaE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNobWFYSnpkQzV6ZEdGeWRDQStJREFnSmlZZ0lXVnRjSFI1YkdsdVpYTW9iR2x1WlhNc0lEQXNJR1pwY25OMExuTjBZWEowS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZqZEdsdmJpQTlJRzVsZHlCVFpXTjBhVzl1UkdGMFlTZ3dMQ0JtYVhKemRDNXpkR0Z5ZEN3Z1oyVjBSbWxzWlZScGRHeGxLSEJoZEdncExDQXhMQ0F3S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWamRHbHZibk11YzJWMEtEQXNJSE5sWTNScGIyNHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeTh2THk4dkx5OHZMeTh2WEc0Z0lDQWdMeThnUW14dlkydHpJQzh2WEc0Z0lDQWdMeTh2THk4dkx5OHZMeTh2WEc1Y2JpQWdJQ0F2THlCQmJHd2dZbXh2WTJ0ek95QjNaU0IzYVd4c0lHRnpjMmxuYmlCMFlXZHpJR0Z1WkNCdmRHaGxjaUJ0WlhSaFpHRjBZU0IwYnlCaWJHOWphM01nWVhNZ2QyVWdaVzVqYjNWdWRHVnlJSFJvWlcwdUlFRjBJSFJvWlNCbGJtUXNJRzl1YkhrZ1lteHZZMnR6SUhSb1lYUmNiaUFnSUNBdkx5Qm9ZWFpsSUdGamRIVmhiQ0J0WlhSaFpHRjBZU0IzYVd4c0lHSmxJSE4wYjNKbFpDQjBieUJ6WVhabElHOXVJRzFsYlc5eWVTQndjbVZ6YzNWeVpTNWNiaUFnSUNCamIyNXpkQ0JpYkc5amEzTWdQU0J1WlhjZ1FsUnlaV1U4Ym5WdFltVnlMQ0JDYkc5amEwUmhkR0UrS0hWdVpHVm1hVzVsWkN3Z0tHRXNJR0lwSUQwK0lHRWdMU0JpS1R0Y2JpQWdJQ0JzWlhRZ1lteHZZMnRQY21ScGJtRnNJRDBnTVR0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdKc2IyTnJJRzltSUcxbGRHRmtZWFJoTG5ObFkzUnBiMjV6SUh4OElGdGRLU0I3WEc0Z0lDQWdJQ0FnSUM4dklGTnJhWEFnYUdWaFpHbHVaM01nWW14dlkydHpMQ0IzWlNCb1lXNWtiR1VnZEdobGJTQnpjR1ZqYVdGc2JIa2dZWE1nYzJWamRHbHZibk11WEc0Z0lDQWdJQ0FnSUdsbUlDaGliRzlqYXk1MGVYQmxJRDA5UFNCY0ltaGxZV1JwYm1kY0lpa2dZMjl1ZEdsdWRXVTdYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25RZ1BTQmliRzlqYXk1d2IzTnBkR2x2Ymk1emRHRnlkQzVzYVc1bE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUWdQU0JpYkc5amF5NXdiM05wZEdsdmJpNWxibVF1YkdsdVpTQXJJREU3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFRHbHVaU0E5SUd4cGJtVnpXM04wWVhKMFhUc2dMeThnZEc4Z2RYTmxJSFJ2SUdOb1pXTnJJSFJvWlNCamIyUmxZbXh2WTJzZ2RIbHdaVnh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGliRzlqYXk1MGVYQmxJRDA5UFNCY0lteHBjM1JjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW14dlkydHpMbk5sZENoemRHRnlkQ3dnYm1WM0lFeHBjM1JDYkc5amEwUmhkR0VvYzNSaGNuUXNJR1Z1WkN3Z1lteHZZMnRQY21ScGJtRnNLeXNzSUdKc2IyTnJMbWxrS1NrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZbXh2WTJzdWRIbHdaU0E5UFNCY0ltTnZaR1ZjSWlBbUppQlpRVTFNWDBSQlZFRmZVa1ZIUlZndWRHVnpkQ2h6ZEdGeWRFeHBibVVwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjVZVzFzT2lCemRISnBibWNnUFNCc2FXNWxjMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzV6YkdsalpTaHpkR0Z5ZENBcklERXNJR1Z1WkNBdElERXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbXB2YVc0b1hDSmNYRzVjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWNtVndiR0ZqWlNndlhGeDBMMmR0TENCY0lpQWdYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzQnNhWFE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRXB6YjI1R2NtOXVkRzFoZEhSbGNrVnVkSEo1UGlBOUlIQmhjbk5sUm5KdmJuUnRZWFIwWlhKQ2JHOWpheWh3WVhKelpWbGhiV3dvZVdGdGJDa3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmliRzlqYTNNdWMyVjBLSE4wWVhKMExDQnVaWGNnUkdGMFlXSnNiMk5yUkdGMFlTaHpkR0Z5ZEN3Z1pXNWtMQ0JpYkc5amEwOXlaR2x1WVd3ckt5d2djM0JzYVhRc0lHSnNiMk5yTG1sa0tTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvWW14dlkyc3VkSGx3WlNBOVBUMGdYQ0pqYjJSbFhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRU5vWldOcklHbG1JSFJvWlNCaWJHOWpheUJwY3lCbVpXNWpaV1F1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUmphQ0E5SUhOMFlYSjBUR2x1WlM1dFlYUmphQ2hEVDBSRlFreFBRMHRmUmtWT1EwVmZVa1ZIUlZncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnRZWFJqYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRlJvYVhNZ2FYTWdZVzRnYVc1a1pXNTBaV1F0YzNSNWJHVWdZMjlrWldKc2IyTnJMbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0pzYjJOcmN5NXpaWFFvYzNSaGNuUXNJRzVsZHlCRGIyUmxZbXh2WTJ0RVlYUmhLSE4wWVhKMExDQmxibVFzSUdKc2IyTnJUM0prYVc1aGJDc3JMQ0JiWFN3Z1hDSnBibVJsYm5SY0lpd2djM1JoY25Rc0lHVnVaQ3dnWW14dlkyc3VhV1FwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHRnVaM1ZoWjJWeklEMGdiV0YwWTJndWJHVnVaM1JvSUQ0Z01TQW1KaUJ0WVhSamFGc3hYU0EvSUcxaGRHTm9XekZkTG5Od2JHbDBLRndpTEZ3aUtTQTZJRnRkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKc2IyTnJjeTV6WlhRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1WlhjZ1EyOWtaV0pzYjJOclJHRjBZU2h6ZEdGeWRDd2daVzVrTENCaWJHOWphMDl5WkdsdVlXd3JLeXdnYkdGdVozVmhaMlZ6TENCY0ltWmxibU5sWkZ3aUxDQnpkR0Z5ZENBcklERXNJR1Z1WkNBdElERXNJR0pzYjJOckxtbGtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWJHOWphM011YzJWMEtITjBZWEowTENCdVpYY2dRbUZ6WlVKc2IyTnJSR0YwWVNoemRHRnlkQ3dnWlc1a0xDQmliRzlqYTA5eVpHbHVZV3dyS3l3Z1lteHZZMnN1ZEhsd1pTd2dZbXh2WTJzdWFXUXBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVGa1pDQmliRzlqYTNNZ2RHOGdjMlZqZEdsdmJuTXVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmliRzlqYXlCdlppQmliRzlqYTNNdWRtRnNkV1Z6S0NrcElIdGNiaUFnSUNBZ0lDQWdiRzl2YTNWd0tHSnNiMk5yTG5OMFlYSjBMQ0J6WldOMGFXOXVjeWsvTG1Kc2IyTnJLR0pzYjJOcktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5OHZMeTh2THk4dkwxeHVJQ0FnSUM4dklFeHBjM1J6SUM4dlhHNGdJQ0FnTHk4dkx5OHZMeTh2THk5Y2JseHVJQ0FnSUM4dklFRnNiQ0JzYVhOMElHbDBaVzF6SUdsdUlHeHBjM1J6TGlCVGRHRnlkQ0IzYVhSb0lHRWdjMmx0Y0d4bElIUnlhWFpwWVd3Z2NHRnpjeTVjYmlBZ0lDQmpiMjV6ZENCamIyNTBaVzUwVW1WblpYZ2dQU0F2WGx0Y1hIUmNYR1pjWEhZZ1hTcGJYRnd0SzF4Y0tsMWNYSE1vWEZ4YkxseGNYVnhjY3lrL0x6dGNiaUFnSUNCamIyNXpkQ0J0WVhKclpYSlNaV2RsZUNBOUlDOWVLRDQvWEZ4elB5a3FLRnhjZEh4Y1hITXBLaTluTzF4dUlDQWdJR052Ym5OMElHeHBjM1JKZEdWdGN5QTlJRzVsZHlCQ1ZISmxaVHh1ZFcxaVpYSXNJRXhwYzNSSmRHVnRSR0YwWVQ0b2RXNWtaV1pwYm1Wa0xDQW9ZU3dnWWlrZ1BUNGdZU0F0SUdJcE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQnNhWE4wSUc5bUlHMWxkR0ZrWVhSaExteHBjM1JKZEdWdGN5QjhmQ0JiWFNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCc2FXNWxJRDBnYkdsdVpYTmJiR2x6ZEM1d2IzTnBkR2x2Ymk1emRHRnlkQzVzYVc1bFhUdGNibHh1SUNBZ0lDQWdJQ0F2THlCVVQwUlBPaUJKYlhCc1pXMWxiblFnWm14aFp5QjNhR2xqYUNCemEybHdjeUJwYm1SbGVHbHVaeUJzYVhOMElHbDBaVzF6TGx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFDQTlJR3hwYm1VdWJXRjBZMmdvVEVsVFZGOUpWRVZOWDFKRlIwVllLVHRjYmlBZ0lDQWdJQ0FnYkdWMElITjViV0p2YkNBOUlIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSbGVIUWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRZWFJqYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNsdFltOXNJRDBnYldGMFkyaGJNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwSUQwZ2JXRjBZMmhiTTEwN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2JtVjNJRXhwYzNSSmRHVnRSR0YwWVNoY2JpQWdJQ0FnSUNBZ0lDQWdJR3hwYzNRdWNHOXphWFJwYjI0dWMzUmhjblF1YkdsdVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4cGMzUXVjRzl6YVhScGIyNHVaVzVrTG14cGJtVWdLeUF4TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiR2x6ZEM1d1lYSmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnplVzFpYjJ3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMExtbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHbHpkQzUwWVhOckxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGRGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0JzYVhOMFNYUmxiWE11YzJWMEtHbDBaVzB1YzNSaGNuUXNJR2wwWlcwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFbHVJSFJvWlNCelpXTnZibVFnYkdsemRDQndZWE56TENCaFkzUjFZV3hzZVNCamIyNXpkSEoxWTNRZ2RHaGxJR3hwYzNRZ2FHVnBjbUZ5WTJoNUxseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FYUmxiU0J2WmlCc2FYTjBTWFJsYlhNdWRtRnNkV1Z6S0NrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dsMFpXMHVjR0Z5Wlc1MFRHbHVaU0E4SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYzNSQ2JHOWpheUE5SUdKc2IyTnJjeTVuWlhRb0xXbDBaVzB1Y0dGeVpXNTBUR2x1WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXeHBjM1JDYkc5amF5QjhmQ0FoS0d4cGMzUkNiRzlqYXk1MGVYQmxJRDA5UFNCY0lteHBjM1JjSWlrcElHTnZiblJwYm5WbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBb2JHbHpkRUpzYjJOcklHRnpJRXhwYzNSQ2JHOWphMFJoZEdFcExtbDBaVzF6TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMFNYUmxiWE11WjJWMEtHbDBaVzB1Y0dGeVpXNTBUR2x1WlNrL0xtVnNaVzFsYm5SekxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeTh2THk4dkx5OHZYRzRnSUNBZ0x5OGdWR0ZuY3lBdkwxeHVJQ0FnSUM4dkx5OHZMeTh2THk5Y2JseHVJQ0FnSUM4dklFWnZjaUJsWVdOb0lIUmhaeXdnWVhOemFXZHVJR2wwSUhSdklIUm9aU0JoY0hCeWIzQnlhV0YwWlNCelpXTjBhVzl1SUdGdVpDQmliRzlqYXlCMGFHRjBJR2wwSUdseklHRWdjR0Z5ZENCdlppNWNiaUFnSUNCbWIzSWdLR052Ym5OMElIUmhaMlJsWmlCdlppQnRaWFJoWkdGMFlTNTBZV2R6SUQ4L0lGdGRLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFJoWnlBOUlIUmhaMlJsWmk1MFlXY3VjM1JoY25SelYybDBhQ2hjSWlOY0lpa2dQeUIwWVdka1pXWXVkR0ZuSURvZ1hDSWpYQ0lnS3lCMFlXZGtaV1l1ZEdGbk8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCc2FXNWxJRDBnZEdGblpHVm1MbkJ2YzJsMGFXOXVMbk4wWVhKMExteHBibVU3WEc0Z0lDQWdJQ0FnSUcxaGNtdGtiM2R1VFdWMFlXUmhkR0V1ZEdGbktIUmhaeWs3WEc1Y2JpQWdJQ0FnSUNBZ2JHOXZhM1Z3S0d4cGJtVXNJSE5sWTNScGIyNXpLVDh1YldWMFlXUmhkR0V1ZEdGbktIUmhaeWs3WEc0Z0lDQWdJQ0FnSUd4dmIydDFjQ2hzYVc1bExDQmliRzlqYTNNcFB5NXRaWFJoWkdGMFlTNTBZV2NvZEdGbktUdGNiaUFnSUNBZ0lDQWdiRzl2YTNWd0tHeHBibVVzSUd4cGMzUkpkR1Z0Y3lrL0xtMWxkR0ZrWVhSaExuUmhaeWgwWVdjcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFRmtaQ0JtY205dWRHMWhkSFJsY2lCMFlXZHpMbHh1SUNBZ0lHbG1JQ2h0WlhSaFpHRjBZUzVtY205dWRHMWhkSFJsY2lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpoZDNSaFp5QnZaaUJsZUhSeVlXTjBWR0ZuY3lodFpYUmhaR0YwWVM1bWNtOXVkRzFoZEhSbGNpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSaFp5QTlJSEpoZDNSaFp5NXpkR0Z5ZEhOWGFYUm9LRndpSTF3aUtTQS9JSEpoZDNSaFp5QTZJRndpSTF3aUlDc2djbUYzZEdGbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYldGeWEyUnZkMjVOWlhSaFpHRjBZUzUwWVdjb2RHRm5LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2THk4dkx5OHZMeTh2WEc0Z0lDQWdMeThnVEdsdWEzTWdMeTljYmlBZ0lDQXZMeTh2THk4dkx5OHZMMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdiR2x1YTJSbFppQnZaaUJ0WlhSaFpHRjBZUzVzYVc1cmN5QS9QeUJiWFNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCc2FXNXJJRDBnVEdsdWF5NXBibVpsY2loc2FXNXJaR1ZtTG14cGJtc3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnNhVzVsSUQwZ2JHbHVhMlJsWmk1d2IzTnBkR2x2Ymk1emRHRnlkQzVzYVc1bE8xeHVJQ0FnSUNBZ0lDQnRZWEpyWkc5M2JrMWxkR0ZrWVhSaExteHBibXNvYkdsdWF5azdYRzVjYmlBZ0lDQWdJQ0FnYkc5dmEzVndLR3hwYm1Vc0lITmxZM1JwYjI1ektUOHViV1YwWVdSaGRHRXViR2x1YXloc2FXNXJLVHRjYmlBZ0lDQWdJQ0FnYkc5dmEzVndLR3hwYm1Vc0lHSnNiMk5yY3lrL0xtMWxkR0ZrWVhSaExteHBibXNvYkdsdWF5azdYRzRnSUNBZ0lDQWdJR3h2YjJ0MWNDaHNhVzVsTENCc2FYTjBTWFJsYlhNcFB5NXRaWFJoWkdGMFlTNXNhVzVyS0d4cGJtc3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2WEc0Z0lDQWdMeThnUm5KdmJuUnRZWFIwWlhJZ1RHbHVhM01nTHk5Y2JpQWdJQ0F2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHVYRzRnSUNBZ0x5OGdSbkp2Ym5SdFlYUjBaWElnYkdsdWEzTWdZWEpsSUc5dWJIa2dZWE56YVdkdVpXUWdkRzhnZEdobElIQmhaMlV1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JzYVc1clpHVm1JRzltSUcxbGRHRmtZWFJoTG1aeWIyNTBiV0YwZEdWeVRHbHVhM01nUHo4Z1cxMHBJSHRjYmlBZ0lDQWdJQ0FnYldGeWEyUnZkMjVOWlhSaFpHRjBZUzVzYVc1cktFeHBibXN1YVc1bVpYSW9iR2x1YTJSbFppNXNhVzVyTENCbVlXeHpaU3dnYkdsdWEyUmxaaTVrYVhOd2JHRjVWR1Y0ZENrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2JpQWdJQ0F2THlCSmJteHBibVVnUm1sbGJHUnpJQzh2WEc0Z0lDQWdMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JtYVdWc1pDQnZaaUJwZEdWeVlYUmxTVzVzYVc1bFJtbGxiR1J6S0d4cGJtVnpLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzYVc1bElEMGdabWxsYkdRdWNHOXphWFJwYjI0dWJHbHVaVHRjYmlBZ0lDQWdJQ0FnYldGeWEyUnZkMjVOWlhSaFpHRjBZUzVwYm14cGJtVkdhV1ZzWkNobWFXVnNaQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2JHOXZhM1Z3S0d4cGJtVXNJSE5sWTNScGIyNXpLVDh1YldWMFlXUmhkR0V1YVc1c2FXNWxSbWxsYkdRb1ptbGxiR1FwTzF4dUlDQWdJQ0FnSUNCc2IyOXJkWEFvYkdsdVpTd2dZbXh2WTJ0ektUOHViV1YwWVdSaGRHRXVhVzVzYVc1bFJtbGxiR1FvWm1sbGJHUXBPMXh1SUNBZ0lDQWdJQ0JzYjI5cmRYQW9iR2x1WlN3Z2JHbHpkRWwwWlcxektUOHViV1YwWVdSaGRHRXVhVzVzYVc1bFJtbGxiR1FvWm1sbGJHUXBPMXh1SUNBZ0lIMWNiaUFnSUNCelpXTjBhVzl1UVhKeVlYa3VjSFZ6YUNndUxpNXpaV04wYVc5dWN5NTJZV3gxWlhNb0tTazdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ2JHbHVaWE1zWEc0Z0lDQWdJQ0FnSUdaeWIyNTBiV0YwZEdWeUxGeHVJQ0FnSUNBZ0lDQnRaWFJoWkdGMFlUb2diV0Z5YTJSdmQyNU5aWFJoWkdGMFlTeGNiaUFnSUNBZ0lDQWdjMlZqZEdsdmJuTTZJSE5sWTNScGIyNUJjbkpoZVN4Y2JpQWdJQ0I5TzF4dWZWeHVMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYRzR2THlCUVlYSnphVzVuSUVGcFpITWdMeTljYmk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4dVhHNHZLaW9nUTJobFkyc2dhV1lnZEdobElHZHBkbVZ1SUd4cGJtVWdjbUZ1WjJVZ2FYTWdZV3hzSUdWdGNIUjVMaUJUZEdGeWRDQnBjeUJwYm1Oc2RYTnBkbVVzSUdWdVpDQmxlR05zZFhOcGRtVXVJQ292WEc1bWRXNWpkR2x2YmlCbGJYQjBlV3hwYm1WektHeHBibVZ6T2lCemRISnBibWRiWFN3Z2MzUmhjblE2SUc1MWJXSmxjaXdnWlc1a09pQnVkVzFpWlhJcE9pQmliMjlzWldGdUlIdGNiaUFnSUNCbWIzSWdLR3hsZENCcGJtUmxlQ0E5SUhOMFlYSjBPeUJwYm1SbGVDQThJR1Z1WkRzZ2FXNWtaWGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpYTmJhVzVrWlhoZExuUnlhVzBvS1NBaFBUMGdYQ0pjSWlrZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGbHBaV3hrY3lCaGJHd2dhVzVzYVc1bElHWnBaV3hrY3lCbWIzVnVaQ0JwYmlCMGFHVWdaRzlqZFcxbGJuUWdZbmtnZEhKaGRtVnljMmx1WnlCc2FXNWxJR0o1SUd4cGJtVWdkR2h5YjNWbmFDQjBhR1VnWkc5amRXMWxiblF1SUZCbGNtWnZjbTF6SUhOdmJXVWdiM0IwYVcxcGVtRjBhVzl1YzF4dUlDb2dkRzhnYzJ0cGNDQmxlSFJ5WVMxc1lYSm5aU0JzYVc1bGN5d2dZVzVrSUdOaGJpQmlaU0JrYVhOaFlteGxaQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUtpQnBkR1Z5WVhSbFNXNXNhVzVsUm1sbGJHUnpLR052Ym5SbGJuUTZJSE4wY21sdVoxdGRLVG9nUjJWdVpYSmhkRzl5UEVsdWJHbHVaVVpwWld4a1BpQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2JHbHVaVzV2SUQwZ01Ec2diR2x1Wlc1dklEd2dZMjl1ZEdWdWRDNXNaVzVuZEdnN0lHeHBibVZ1YnlzcktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeHBibVVnUFNCamIyNTBaVzUwVzJ4cGJtVnViMTA3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdSbUZ6ZEMxaVlXbHNiM1YwSUdadmNpQnNhVzVsY3lCMGFHRjBJR0Z5WlNCMGIyOGdiRzl1WnlCdmNpQmtieUJ1YjNRZ1kyOXVkR0ZwYmlBbk9qb25MbHh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaUzVzWlc1bmRHZ2dQaUF6TWpjMk9DQjhmQ0FoYkdsdVpTNXBibU5zZFdSbGN5aGNJam82WENJcEtTQmpiMjUwYVc1MVpUdGNibHh1SUNBZ0lDQWdJQ0F2THlCVVQwUlBPaUJTWlMxaFpHUWdjM1Z3Y0c5eWRDQm1iM0lnZEdodmMyVWdZM1Z6ZEc5dElHVnRiMnBwSUdacFpXeGtjeUJ2YmlCMFlYTnJjeUJoYm1RZ2MybHRhV3hoY2k1Y2JpQWdJQ0FnSUNBZ2JHVjBJR2x1YkdsdVpVWnBaV3hrY3lBOUlHVjRkSEpoWTNSSmJteHBibVZHYVdWc1pITW9iR2x1WlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm14cGJtVkdhV1ZzWkhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FXWnBaV3hrSUc5bUlHbHViR2x1WlVacFpXeGtjeWtnZVdsbGJHUWdZWE5KYm14cGJtVkdhV1ZzWkNocFptbGxiR1FzSUd4cGJtVnVieWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnWm5Wc2JFeHBibVVnUFNCbGVIUnlZV04wUm5Wc2JFeHBibVZHYVdWc1pDaHNhVzVsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobWRXeHNUR2x1WlNrZ2VXbGxiR1FnWVhOSmJteHBibVZHYVdWc1pDaG1kV3hzVEdsdVpTd2diR2x1Wlc1dktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRlJ2Y0Mxc1pYWmxiQ0JtZFc1amRHbHZiaUIzYUdsamFDQnRZWEJ6SUdFZ1dVRk5UQ0JpYkc5amF5QXRJR2x1WTJ4MVpHbHVaeUJtY205dWRHMWhkSFJsY2lBdElHbHVkRzhnWm5KdmJuUnRZWFIwWlhJZ1pXNTBjbWxsY3k0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndZWEp6WlVaeWIyNTBiV0YwZEdWeVFteHZZMnNvWW14dlkyczZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRwT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JLYzI5dVJuSnZiblJ0WVhSMFpYSkZiblJ5ZVQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2REb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1NuTnZia1p5YjI1MGJXRjBkR1Z5Ulc1MGNuaytJRDBnZTMwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCclpYa2diMllnVDJKcVpXTjBMbXRsZVhNb1lteHZZMnNwS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhaaGJIVmxJRDBnWW14dlkydGJhMlY1WFR0Y2JseHVJQ0FnSUNBZ0lDQnlaWE4xYkhSYmEyVjVMblJ2VEc5M1pYSkRZWE5sS0NsZElEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2EyVjVPaUJyWlhrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dTbk52YmtOdmJuWmxjbk5wYjI0dWFuTnZiaWhaWVcxc1EyOXVkbVZ5YzJsdmJpNXNhWFJsY21Gc0tIWmhiSFZsS1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WVhjNklIWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JpOHFLaUJHYVc1a2N5QmhiaUJsYkdWdFpXNTBJSGRvYVdOb0lHTnZiblJoYVc1eklIUm9aU0JuYVhabGJpQnNhVzVsTGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHeHZiMnQxY0R4VUlHVjRkR1Z1WkhNZ2V5QnpkR0Z5ZERvZ2JuVnRZbVZ5T3lCbGJtUTZJRzUxYldKbGNpQjlQaWhzYVc1bE9pQnVkVzFpWlhJc0lIUnlaV1U2SUVKVWNtVmxQRzUxYldKbGNpd2dWRDRwT2lCVUlId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFFnUFNCMGNtVmxMbWRsZEZCaGFYSlBjazVsZUhSTWIzZGxjaWhzYVc1bEtUOHVXekZkTzF4dUlDQWdJR2xtSUNoMFlYSm5aWFFnSmlZZ2RHRnlaMlYwTG1WdVpDQStQU0JzYVc1bEtTQnlaWFIxY200Z2RHRnlaMlYwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYm4xY2JseHVMeW9xSUVWNGRISmhZM1FnZEdGbmN5QnBiblJsYkd4cFoyVnVkR3g1SUdaeWIyMGdabkp2Ym5SdFlYUjBaWEl1SUVoaGJtUnNaWE1nWVhKeVlYbHpMQ0J1ZFcxaVpYSnpMQ0JoYm1RZ2MzUnlhVzVuY3k0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxlSFJ5WVdOMFZHRm5jeWh0WlhSaFpHRjBZVG9nUm5KdmJuUk5ZWFIwWlhKRFlXTm9aU2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JzWlhRZ2RHRm5TMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLRzFsZEdGa1lYUmhLUzVtYVd4MFpYSW9LSFFwSUQwK0lIUXVkRzlNYjNkbGNrTmhjMlVvS1NBOVBTQmNJblJoWjNOY0lpQjhmQ0IwTG5SdlRHOTNaWEpEWVhObEtDa2dQVDBnWENKMFlXZGNJaWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR0ZuUzJWNWMxeHVJQ0FnSUNBZ0lDQXViV0Z3S0NocktTQTlQaUJ6Y0d4cGRFWnliMjUwYldGMGRHVnlWR0ZuVDNKQmJHbGhjeWh0WlhSaFpHRjBZVnRyWFN3Z0wxc3NYRnh6WFNzdktTbGNiaUFnSUNBZ0lDQWdMbkpsWkhWalpTZ29jQ3dnWXlrZ1BUNGdjQzVqYjI1allYUW9ZeWtzSUZ0ZEtWeHVJQ0FnSUNBZ0lDQXViV0Z3S0NoemRISXBJRDArSUNoemRISXVjM1JoY25SelYybDBhQ2hjSWlOY0lpa2dQeUJ6ZEhJZ09pQmNJaU5jSWlBcklITjBjaWtwTzF4dWZWeHVYRzR2S2lvZ1UzQnNhWFFnWVNCbWNtOXVkRzFoZEhSbGNpQnNhWE4wSUdsdWRHOGdjMlZ3WVhKaGRHVWdaV3hsYldWdWRITTdJR2hoYm1Sc1pYTWdZV04wZFdGc0lHeHBjM1J6TENCamIyMXRZU0J6WlhCaGNtRjBaV1FnYkdsemRITXNJR0Z1WkNCemFXNW5iR1VnWld4bGJXVnVkSE11SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MzQnNhWFJHY205dWRHMWhkSFJsY2xSaFowOXlRV3hwWVhNb1pHRjBZVG9nWVc1NUxDQnZiam9nVW1WblJYaHdLVG9nYzNSeWFXNW5XMTBnZTF4dUlDQWdJR2xtSUNoa1lYUmhJRDA5SUc1MWJHd2dmSHdnWkdGMFlTQTlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUJiWFR0Y2JpQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2hrWVhSaEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR0YwWVZ4dUlDQWdJQ0FnSUNBZ0lDQWdMbVpwYkhSbGNpZ29jeWtnUFQ0Z0lTRnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvY3lrZ1BUNGdjM0JzYVhSR2NtOXVkRzFoZEhSbGNsUmhaMDl5UVd4cFlYTW9jeXdnYjI0cEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5KbFpIVmpaU2dvY0N3Z1l5a2dQVDRnY0M1amIyNWpZWFFvWXlrc0lGdGRLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJHYjNKalpTQjBieUJoSUhOMGNtbHVaeUIwYnlCb1lXNWtiR1VnYm5WdFltVnljeUJoYm1RZ2MyOGdiMjR1WEc0Z0lDQWdjbVYwZFhKdUlDaGNJbHdpSUNzZ1pHRjBZU2xjYmlBZ0lDQWdJQ0FnTG5Od2JHbDBLRzl1S1Z4dUlDQWdJQ0FnSUNBdVptbHNkR1Z5S0NoMEtTQTlQaUFoSVhRcFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0hRcElEMCtJSFF1ZEhKcGJTZ3BLVnh1SUNBZ0lDQWdJQ0F1Wm1sc2RHVnlLQ2gwS1NBOVBpQjBMbXhsYm1kMGFDQStJREFwTzF4dWZWeHVYRzR2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHVMeThnUW5WcGJHUmxjaUJWZEdsc2FYUnBaWE1nTHk5Y2JpOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2WEc1Y2JpOHFLaUJEYjI1MmFXVnVaVzUwSUhOb1lYSmxaQ0IxZEdsc2FYUjVJR1p2Y2lCMGNtRmphMmx1WnlCdFpYUmhaR0YwWVNBdElHeHBibXR6TENCMFlXZHpMQ0JoYm1RZ2MyOGdiMjR1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVFdWMFlXUmhkR0VnZTF4dUlDQWdJSEIxWW14cFl5QjBZV2R6T2lCVFpYUThjM1J5YVc1blBpQTlJRzVsZHlCVFpYUW9LVHRjYmlBZ0lDQndkV0pzYVdNZ2JHbHVhM002SUV4cGJtdGJYU0E5SUZ0ZE8xeHVJQ0FnSUhCMVlteHBZeUJwYm14cGJtVkdhV1ZzWkhNNklGSmxZMjl5WkR4emRISnBibWNzSUVsdWJHbHVaVVpwWld4a1BpQTlJSHQ5TzF4dVhHNGdJQ0FnTHlvcUlFRmtaQ0JoSUhSaFp5QjBieUIwYUdVZ2JXVjBZV1JoZEdFdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhSaFp5aDBZV2M2SUhOMGNtbHVaeWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMblJoWjNNdVlXUmtLSFJoWnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFRmtaQ0JoSUd4cGJtc2dkRzhnZEdobElHMWxkR0ZrWVhSaExpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCc2FXNXJLR3hwYm1zNklFeHBibXNwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWJHbHVhM011Wm1sdVpDZ29kaWtnUFQ0Z2RpNWxjWFZoYkhNb2JHbHVheWtwS1NCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViR2x1YTNNdWNIVnphQ2hzYVc1cktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRV1JrSUdGdUlHbHViR2x1WlNCbWFXVnNaQ0IwYnlCMGFHVWdiV1YwWVdSaGRHRXVJQ292WEc0Z0lDQWdjSFZpYkdsaklHbHViR2x1WlVacFpXeGtLR1pwWld4a09pQkpibXhwYm1WR2FXVnNaQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzYjNkbGNpQTlJR1pwWld4a0xtdGxlUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvVDJKcVpXTjBMbXRsZVhNb2RHaHBjeTVwYm14cGJtVkdhV1ZzWkhNcExuTnZiV1VvS0d0bGVTa2dQVDRnYTJWNUxuUnZURzkzWlhKRFlYTmxLQ2tnUFQwZ2JHOTNaWElwS1NCeVpYUjFjbTQ3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm14cGJtVkdhV1ZzWkhOYmJHOTNaWEpkSUQwZ1ptbGxiR1E3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUZKbGRIVnliaUJoSUd4cGMzUWdiMllnZFc1cGNYVmxJR0ZrWkdWa0lIUmhaM011SUNvdlhHNGdJQ0FnY0hWaWJHbGpJR1pwYm1semFGUmhaM01vS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1FYSnlZWGt1Wm5KdmJTaDBhR2x6TG5SaFozTXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJTWlhSMWNtNGdZU0JzYVhOMElHOW1JRXBUVDA0dGMyVnlhV0ZzYVhwbFpDQnNhVzVyY3k0Z0tpOWNiaUFnSUNCd2RXSnNhV01nWm1sdWFYTm9UR2x1YTNNb0tUb2dTbk52Ymt4cGJtdGJYU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxteHBibXR6TG0xaGNDZ29iR2x1YXlrZ1BUNGdiR2x1YXk1MGIwOWlhbVZqZENncEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dVbVYwZFhKdUlHRWdiR2x6ZENCdlppQktVMDlPTFhObGNtbGhiR2w2WldRZ2FXNXNhVzVsSUdacFpXeGtjeTRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdabWx1YVhOb1NXNXNhVzVsUm1sbGJHUnpLQ2s2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRXB6YjI1SmJteHBibVZHYVdWc1pENGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiV0Z3VDJKcVpXTjBWbUZzZFdWektIUm9hWE11YVc1c2FXNWxSbWxsYkdSekxDQnFjMjl1U1c1c2FXNWxSbWxsYkdRcE8xeHVJQ0FnSUgxY2JuMWNibHh1THlvcUlFTnZiblpwWlc1bGJuUWdkWFJwYkdsMGVTQm1iM0lnWTI5dWMzUnlkV04wYVc1bklIQmhaMlVnYjJKcVpXTjBjeTRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJRWVdkbFJHRjBZU0I3WEc0Z0lDQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdjR0YwYURvZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnSUNCd2RXSnNhV01nYzNSaGRITTZJRVpwYkdWVGRHRjBjeXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR3hsYm1kMGFEb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2JXVjBZV1JoZEdFNklFMWxkR0ZrWVhSaExGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2MyVmpkR2x2Ym5NNklGTmxZM1JwYjI1RVlYUmhXMTBzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJtY205dWRHMWhkSFJsY2o4NklGSmxZMjl5WkR4emRISnBibWNzSUVwemIyNUdjbTl1ZEcxaGRIUmxja1Z1ZEhKNVBseHVJQ0FnSUNrZ2UzMWNibHh1SUNBZ0lIQjFZbXhwWXlCaWRXbHNaQ2dwT2lCS2MyOXVUV0Z5YTJSdmQyNVFZV2RsSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1J3WVhSb09pQjBhR2x6TG5CaGRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa1kzUnBiV1U2SUhSb2FYTXVjM1JoZEhNdVkzUnBiV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiWFJwYldVNklIUm9hWE11YzNSaGRITXViWFJwYldVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYzJsNlpUb2dkR2hwY3k1emRHRjBjeTV6YVhwbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdWNGRHVnVjMmx2YmpvZ1oyVjBSWGgwWlc1emFXOXVLSFJvYVhNdWNHRjBhQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtjRzl6YVhScGIyNDZJSHNnYzNSaGNuUTZJREFzSUdWdVpEb2dkR2hwY3k1c1pXNW5kR2dnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1IwWVdkek9pQjBhR2x6TG0xbGRHRmtZWFJoTG1acGJtbHphRlJoWjNNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSc2FXNXJjem9nZEdocGN5NXRaWFJoWkdGMFlTNW1hVzVwYzJoTWFXNXJjeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR2x1Wm1sbGJHUnpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUVsdWJHbHVaVVpwWld4a2N5Z3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pITmxZM1JwYjI1ek9pQjBhR2x6TG5ObFkzUnBiMjV6TG0xaGNDZ29lQ2tnUFQ0Z2VDNWlkV2xzWkNncEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSbWNtOXVkRzFoZEhSbGNqb2dkR2hwY3k1bWNtOXVkRzFoZEhSbGNpeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQjlYRzU5WEc1Y2JpOHFLaUJEYjI1MmFXVnVaVzUwSUhWMGFXeHBkSGtnWm05eUlHTnZibk4wY25WamRHbHVaeUJ0WVhKclpHOTNiaUJ6WldOMGFXOXVjeTRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJUWldOMGFXOXVSR0YwWVNCN1hHNGdJQ0FnY0hWaWJHbGpJR0pzYjJOcmN6b2dRbXh2WTJ0RVlYUmhXMTBnUFNCYlhUdGNiaUFnSUNCd2RXSnNhV01nYldWMFlXUmhkR0U2SUUxbGRHRmtZWFJoSUQwZ2JtVjNJRTFsZEdGa1lYUmhLQ2s3WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJ6ZEdGeWREb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1pXNWtPaUJ1ZFcxaVpYSXNYRzRnSUNBZ0lDQWdJSEIxWW14cFl5QjBhWFJzWlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnSUNCd2RXSnNhV01nYkdWMlpXdzZJRzUxYldKbGNpeGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHOXlaR2x1WVd3NklHNTFiV0psY2x4dUlDQWdJQ2tnZTMxY2JseHVJQ0FnSUhCMVlteHBZeUJpYkc5amF5aGliRzlqYXpvZ1FteHZZMnRFWVhSaEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdVlteHZZMnR6TG5CMWMyZ29ZbXh2WTJzcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJpZFdsc1pDZ3BPaUJLYzI5dVRXRnlhMlJ2ZDI1VFpXTjBhVzl1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1IwYVhSc1pUb2dkR2hwY3k1MGFYUnNaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnZjbVJwYm1Gc09pQjBhR2x6TG05eVpHbHVZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiR1YyWld3NklIUm9hWE11YkdWMlpXd3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2RHRm5jem9nZEdocGN5NXRaWFJoWkdGMFlTNW1hVzVwYzJoVVlXZHpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWthVzVtYVdWc1pITTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vU1c1c2FXNWxSbWxsYkdSektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2JHbHVhM002SUhSb2FYTXViV1YwWVdSaGRHRXVabWx1YVhOb1RHbHVhM01vS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1J3YjNOcGRHbHZiam9nZXlCemRHRnlkRG9nZEdocGN5NXpkR0Z5ZEN3Z1pXNWtPaUIwYUdsekxtVnVaQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR0pzYjJOcmN6b2dkR2hwY3k1aWJHOWphM011YldGd0tDaGliRzlqYXlrZ1BUNGdZbXh2WTJzdVluVnBiR1FvS1Nrc1hHNGdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVmVnh1WEc0dktpb2dRMjl1YzNSeWRXTjBjeUJ0WVhKclpHOTNiaUJzYVhOMElHSnNiMk5yY3lCemNHVmphV1pwWTJGc2JIa3VJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdUR2x6ZEVKc2IyTnJSR0YwWVNCN1hHNGdJQ0FnY0hWaWJHbGpJSFI1Y0dVNklITjBjbWx1WnlBOUlGd2liR2x6ZEZ3aU8xeHVJQ0FnSUhCMVlteHBZeUJ0WlhSaFpHRjBZVG9nVFdWMFlXUmhkR0VnUFNCdVpYY2dUV1YwWVdSaGRHRW9LVHRjYmlBZ0lDQndkV0pzYVdNZ2FYUmxiWE02SUV4cGMzUkpkR1Z0UkdGMFlWdGRJRDBnVzEwN1hHNWNiaUFnSUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2NIVmliR2xqSUhOMFlYSjBPaUJ1ZFcxaVpYSXNJSEIxWW14cFl5QmxibVE2SUc1MWJXSmxjaXdnY0hWaWJHbGpJRzl5WkdsdVlXdzZJRzUxYldKbGNpd2djSFZpYkdsaklHSnNiMk5yU1dRL09pQnpkSEpwYm1jcElIdDlYRzVjYmlBZ0lDQndkV0pzYVdNZ1luVnBiR1FvS1RvZ1NuTnZiazFoY210a2IzZHVUR2x6ZEVKc2IyTnJJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnZjbVJwYm1Gc09pQjBhR2x6TG05eVpHbHVZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtjRzl6YVhScGIyNDZJSHNnYzNSaGNuUTZJSFJvYVhNdWMzUmhjblFzSUdWdVpEb2dkR2hwY3k1bGJtUWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnBibVpwWld4a2N6b2dkR2hwY3k1dFpYUmhaR0YwWVM1bWFXNXBjMmhKYm14cGJtVkdhV1ZzWkhNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSMFlXZHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUZSaFozTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnNhVzVyY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaE1hVzVyY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhSNWNHVTZJRndpYkdsemRGd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHSnNiMk5yU1dRNklIUm9hWE11WW14dlkydEpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUmxiR1Z0Wlc1MGN6b2dkR2hwY3k1cGRHVnRjeTV0WVhBb0tHbDBaVzBwSUQwK0lHbDBaVzB1WW5WcGJHUW9LU2tzWEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lvZ1EyOXVjM1J5ZFdOMGN5QnRZWEpyWkc5M2JpQmpiMlJsWW14dlkydHpJSE53WldOcFptbGpZV3hzZVM0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRGIyUmxZbXh2WTJ0RVlYUmhJSHRjYmlBZ0lDQndkV0pzYVdNZ2RIbHdaVG9nYzNSeWFXNW5JRDBnWENKamIyUmxZbXh2WTJ0Y0lqdGNiaUFnSUNCd2RXSnNhV01nYldWMFlXUmhkR0U2SUUxbGRHRmtZWFJoSUQwZ2JtVjNJRTFsZEdGa1lYUmhLQ2s3WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJ6ZEdGeWREb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1pXNWtPaUJ1ZFcxaVpYSXNYRzRnSUNBZ0lDQWdJSEIxWW14cFl5QnZjbVJwYm1Gc09pQnVkVzFpWlhJc1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCc1lXNW5kV0ZuWlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2MzUjViR1U2SUZ3aWFXNWtaVzUwWENJZ2ZDQmNJbVpsYm1ObFpGd2lMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdZMjl1ZEdWdWRGTjBZWEowT2lCdWRXMWlaWElzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJqYjI1MFpXNTBSVzVrT2lCdWRXMWlaWElzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJpYkc5amEwbGtQem9nYzNSeWFXNW5YRzRnSUNBZ0tTQjdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHSjFhV3hrS0NrNklFcHpiMjVOWVhKclpHOTNia052WkdWaWJHOWpheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkSGx3WlRvZ1hDSmpiMlJsWW14dlkydGNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnZjbVJwYm1Gc09pQjBhR2x6TG05eVpHbHVZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtjRzl6YVhScGIyNDZJSHNnYzNSaGNuUTZJSFJvYVhNdWMzUmhjblFzSUdWdVpEb2dkR2hwY3k1bGJtUWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnBibVpwWld4a2N6b2dkR2hwY3k1dFpYUmhaR0YwWVM1bWFXNXBjMmhKYm14cGJtVkdhV1ZzWkhNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSMFlXZHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUZSaFozTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnNhVzVyY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaE1hVzVyY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdKc2IyTnJTV1E2SUhSb2FYTXVZbXh2WTJ0SlpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSc1lXNW5kV0ZuWlhNNklIUm9hWE11YkdGdVozVmhaMlZ6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKSE4wZVd4bE9pQjBhR2x6TG5OMGVXeGxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHTnZiblJsYm5SUWIzTnBkR2x2YmpvZ2V5QnpkR0Z5ZERvZ2RHaHBjeTVqYjI1MFpXNTBVM1JoY25Rc0lHVnVaRG9nZEdocGN5NWpiMjUwWlc1MFJXNWtJSDBzWEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lvZ1EyOXVjM1J5ZFdOMGN5QnRZWEpyWkc5M2JpQmtZWFJoWW14dlkydHpJSE53WldOcFptbGpZV3hzZVM0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRVlYUmhZbXh2WTJ0RVlYUmhJSHRjYmlBZ0lDQndkV0pzYVdNZ2RIbHdaVG9nYzNSeWFXNW5JRDBnWENKa1lYUmhZbXh2WTJ0Y0lqdGNiaUFnSUNCd2RXSnNhV01nYldWMFlXUmhkR0U2SUUxbGRHRmtZWFJoSUQwZ2JtVjNJRTFsZEdGa1lYUmhLQ2s3WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJ6ZEdGeWREb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1pXNWtPaUJ1ZFcxaVpYSXNYRzRnSUNBZ0lDQWdJSEIxWW14cFl5QnZjbVJwYm1Gc09pQnVkVzFpWlhJc1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCa1lYUmhPaUJTWldOdmNtUThjM1J5YVc1bkxDQktjMjl1Um5KdmJuUnRZWFIwWlhKRmJuUnllVDRzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJpYkc5amEwbGtQem9nYzNSeWFXNW5YRzRnSUNBZ0tTQjdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHSjFhV3hrS0NrNklFcHpiMjVOWVhKclpHOTNia1JoZEdGaWJHOWpheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkSGx3WlRvZ1hDSmtZWFJoWW14dlkydGNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnZjbVJwYm1Gc09pQjBhR2x6TG05eVpHbHVZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtjRzl6YVhScGIyNDZJSHNnYzNSaGNuUTZJSFJvYVhNdWMzUmhjblFzSUdWdVpEb2dkR2hwY3k1bGJtUWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnBibVpwWld4a2N6b2dkR2hwY3k1dFpYUmhaR0YwWVM1bWFXNXBjMmhKYm14cGJtVkdhV1ZzWkhNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSMFlXZHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUZSaFozTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnNhVzVyY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaE1hVzVyY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdKc2IyTnJTV1E2SUhSb2FYTXVZbXh2WTJ0SlpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSa1lYUmhPaUIwYUdsekxtUmhkR0VzWEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lvZ1FtRnpaU0JpYkc5amF5QnRaWFJoWkdGMFlTQjFjMlZrSUdadmNpQnViMjR0YzNCbFkybG1hV01nWW14dlkydHpMaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRUpoYzJWQ2JHOWphMFJoZEdFZ2UxeHVJQ0FnSUhCMVlteHBZeUJ0WlhSaFpHRjBZVG9nVFdWMFlXUmhkR0VnUFNCdVpYY2dUV1YwWVdSaGRHRW9LVHRjYmx4dUlDQWdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJSE4wWVhKME9pQnVkVzFpWlhJc1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCbGJtUTZJRzUxYldKbGNpeGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHOXlaR2x1WVd3NklHNTFiV0psY2l4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhSNWNHVTZJSE4wY21sdVp5eGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHSnNiMk5yU1dRL09pQnpkSEpwYm1kY2JpQWdJQ0FwSUh0OVhHNWNiaUFnSUNCd2RXSnNhV01nWW5WcGJHUW9LVG9nU25OdmJrMWhjbXRrYjNkdVFteHZZMnNnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdKSFI1Y0dVNklIUm9hWE11ZEhsd1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSdmNtUnBibUZzT2lCMGFHbHpMbTl5WkdsdVlXd3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2NHOXphWFJwYjI0NklIc2djM1JoY25RNklIUm9hWE11YzNSaGNuUXNJR1Z1WkRvZ2RHaHBjeTVsYm1RZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNScGJtWnBaV3hrY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaEpibXhwYm1WR2FXVnNaSE1vS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1IwWVdkek9pQjBhR2x6TG0xbGRHRmtZWFJoTG1acGJtbHphRlJoWjNNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSc2FXNXJjem9nZEdocGN5NXRaWFJoWkdGMFlTNW1hVzVwYzJoTWFXNXJjeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR0pzYjJOclNXUTZJSFJvYVhNdVlteHZZMnRKWkN4Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0IwZVhCbElFSnNiMk5yUkdGMFlTQTlJRXhwYzNSQ2JHOWphMFJoZEdFZ2ZDQkRiMlJsWW14dlkydEVZWFJoSUh3Z1JHRjBZV0pzYjJOclJHRjBZU0I4SUVKaGMyVkNiRzlqYTBSaGRHRTdYRzVjYmk4cUtpQlZkR2xzYVhSNUlHWnZjaUJqYjI1emRISjFZM1JwYm1jZ2JXRnlhMlJ2ZDI0Z2JHbHpkQ0JwZEdWdGN5NGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk1hWE4wU1hSbGJVUmhkR0VnZTF4dUlDQWdJSEIxWW14cFl5QnRaWFJoWkdGMFlUb2dUV1YwWVdSaGRHRWdQU0J1WlhjZ1RXVjBZV1JoZEdFb0tUdGNiaUFnSUNCd2RXSnNhV01nWld4bGJXVnVkSE02SUV4cGMzUkpkR1Z0UkdGMFlWdGRJRDBnVzEwN1hHNGdJQ0FnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0Z4dUlDQWdJQ0FnSUNCd2RXSnNhV01nYzNSaGNuUTZJRzUxYldKbGNpeGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHVnVaRG9nYm5WdFltVnlMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdjR0Z5Wlc1MFRHbHVaVG9nYm5WdFltVnlMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdjM2x0WW05c1B6b2djM1J5YVc1bkxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1lteHZZMnRKWkQ4NklITjBjbWx1Wnl4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhOMFlYUjFjejg2SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJSFJsZUhRL09pQnpkSEpwYm1kY2JpQWdJQ0FwSUh0OVhHNWNiaUFnSUNCd2RXSnNhV01nWW5WcGJHUW9LVG9nU25OdmJrMWhjbXRrYjNkdVRHbHpkRWwwWlcwZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCaGNtVnVkRXhwYm1VNklIUm9hWE11Y0dGeVpXNTBUR2x1WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1J3YjNOcGRHbHZiam9nZXlCemRHRnlkRG9nZEdocGN5NXpkR0Z5ZEN3Z1pXNWtPaUIwYUdsekxtVnVaQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR0pzYjJOclNXUTZJSFJvYVhNdVlteHZZMnRKWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1JsYkdWdFpXNTBjem9nZEdocGN5NWxiR1Z0Wlc1MGN5NXRZWEFvS0dWc1pXMWxiblFwSUQwK0lHVnNaVzFsYm5RdVluVnBiR1FvS1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrZEhsd1pUb2dkR2hwY3k1emRHRjBkWE1nUHlCY0luUmhjMnRjSWlBNklGd2liR2x6ZEZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdsdVptbGxiR1J6T2lCMGFHbHpMbTFsZEdGa1lYUmhMbVpwYm1semFFbHViR2x1WlVacFpXeGtjeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKSFJoWjNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9WR0ZuY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkd4cGJtdHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUV4cGJtdHpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtjM1JoZEhWek9pQjBhR2x6TG5OMFlYUjFjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnplVzFpYjJ3NklIUm9hWE11YzNsdFltOXNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pIUmxlSFE2SUhSb2FYTXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ2ZTQmhjeUJLYzI5dVRXRnlhMlJ2ZDI1VVlYTnJTWFJsYlR0Y2JpQWdJQ0I5WEc1OVhHNGlMQ0FpYVcxd2IzSjBJSHNnVEdsdWF5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMMnhwYm10Y0lqdGNibWx0Y0c5eWRDQjdJRVJoZEdWVWFXMWxMQ0JFZFhKaGRHbHZiaUI5SUdaeWIyMGdYQ0pzZFhodmJsd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ1VDQm1jbTl0SUZ3aWNHRnljMmx0Ylc5dVhDSTdYRzVwYlhCdmNuUWdlMXh1SUNBZ0lFSnBibUZ5ZVU5d0xGeHVJQ0FnSUVWNGNISmxjM05wYjI0c1hHNGdJQ0FnUlhod2NtVnpjMmx2Ym5Nc1hHNGdJQ0FnVEdGdFltUmhSWGh3Y21WemMybHZiaXhjYmlBZ0lDQk1hWE4wUlhod2NtVnpjMmx2Yml4Y2JpQWdJQ0JNYVhSbGNtRnNSWGh3Y21WemMybHZiaXhjYmlBZ0lDQlBZbXBsWTNSRmVIQnlaWE56YVc5dUxGeHVJQ0FnSUZaaGNtbGhZbXhsUlhod2NtVnpjMmx2Yml4Y2JuMGdabkp2YlNCY0lpNHZaWGh3Y21WemMybHZibHdpTzF4dWFXMXdiM0owSUdWdGIycHBVbVZuWlhnZ1puSnZiU0JjSW1WdGIycHBMWEpsWjJWNFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNBZ0lFbHVaR1Y0UTJocGJHUlBaaXhjYmlBZ0lDQkpibVJsZUZCaGRHZ3NYRzRnSUNBZ1NXNWtaWGhKWkN4Y2JpQWdJQ0JKYm1SbGVFNXZkQ3hjYmlBZ0lDQkpibVJsZUZCaGNtVnVkRTltTEZ4dUlDQWdJRWx1WkdWNFVYVmxjbmtzWEc0Z0lDQWdTVzVrWlhoVVlXZG5aV1FzWEc0Z0lDQWdTVzVrWlhoVWVYQmxaQ3hjYmlBZ0lDQkpibVJsZUV4cGJtdGxaQ3hjYmlBZ0lDQkpibVJsZUVacFpXeGtMRnh1SUNBZ0lFbHVaR1Y0Ulhod2NtVnpjMmx2Yml4Y2JuMGdabkp2YlNCY0ltbHVaR1Y0TDNSNWNHVnpMMmx1WkdWNExYRjFaWEo1WENJN1hHNXBiWEJ2Y25RZ2V5QnViM0p0WVd4cGVtVkVkWEpoZEdsdmJpQjlJR1p5YjIwZ1hDSjFkR2xzY3k5dWIzSnRZV3hwZW1WeWMxd2lPMXh1YVcxd2IzSjBJSHNnVEdsMFpYSmhiQ0I5SUdaeWIyMGdYQ0psZUhCeVpYTnphVzl1TDJ4cGRHVnlZV3hjSWp0Y2JseHVMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhHNHZMeUJRWVhKemFXNW5JRkJ5YVcxcGRHbDJaWE1nTHk5Y2JpOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4dVhHNHZLaW9nVUhKcGJXbDBhWFpsSUhCaGNuTnBibWNnWm05eUlHTnZiVzF2Ym14NUlITmxaVzRnZEhsd1pYTXVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZCeWFXMXBkR2wyWlhOTVlXNW5kV0ZuWlNCN1hHNGdJQ0FnYm5WdFltVnlPaUJ1ZFcxaVpYSTdYRzRnSUNBZ2MzUnlhVzVuT2lCemRISnBibWM3WEc0Z0lDQWdaWE5qWVhCbFEyaGhjbUZqZEdWeU9pQnpkSEpwYm1jN1hHNGdJQ0FnWW05dmJEb2dZbTl2YkdWaGJqdGNiaUFnSUNCMFlXYzZJSE4wY21sdVp6dGNiaUFnSUNCcFpHVnVkR2xtYVdWeU9pQnpkSEpwYm1jN1hHNGdJQ0FnYkdsdWF6b2dUR2x1YXp0Y2JpQWdJQ0JsYldKbFpFeHBibXM2SUV4cGJtczdYRzRnSUNBZ2NtOXZkRVJoZEdVNklFUmhkR1ZVYVcxbE8xeHVJQ0FnSUdSaGRHVlRhRzl5ZEdoaGJtUTZJR3RsZVc5bUlIUjVjR1Z2WmlCRVFWUkZYMU5JVDFKVVNFRk9SRk03WEc0Z0lDQWdaR0YwWlRvZ1JHRjBaVlJwYldVN1hHNGdJQ0FnWkdGMFpWQnNkWE02SUVSaGRHVlVhVzFsTzF4dUlDQWdJR1IxY21GMGFXOXVWSGx3WlRvZ2EyVjViMllnZEhsd1pXOW1JRVJWVWtGVVNVOU9YMVJaVUVWVE8xeHVJQ0FnSUdSMWNtRjBhVzl1T2lCRWRYSmhkR2x2Ymp0Y2JpQWdJQ0J5WVhkT2RXeHNPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0lDQmlhVzVoY25sUWJIVnpUV2x1ZFhNNklFSnBibUZ5ZVU5d08xeHVJQ0FnSUdKcGJtRnllVTExYkVScGRqb2dRbWx1WVhKNVQzQTdYRzRnSUNBZ1ltbHVZWEo1UTI5dGNHRnlaVTl3T2lCQ2FXNWhjbmxQY0R0Y2JpQWdJQ0JpYVc1aGNubEJibVJQY0RvZ1FtbHVZWEo1VDNBN1hHNGdJQ0FnWW1sdVlYSjVUM0pQY0RvZ1FtbHVZWEo1VDNBN1hHNWNiaUFnSUNBdkx5Qk1hWFJsY21Gc0lHWnBaV3hrSUhCaGNuTnBibWNnWm05eUlHbHVaMlZ6ZEdsdVp5QnBibXhwYm1VZ1ptbGxiR1J6SUdGdVpDQm1jbTl1ZEcxaGRIUmxjaTVjYmlBZ0lDQmhkRzl0U1c1c2FXNWxSbWxsYkdRNklFeHBkR1Z5WVd3N1hHNGdJQ0FnYVc1c2FXNWxSbWxsYkdSTWFYTjBPaUJNYVhSbGNtRnNXMTA3WEc0Z0lDQWdhVzVzYVc1bFJtbGxiR1E2SUV4cGRHVnlZV3c3WEc1OVhHNWNiaThxS2lCSmJYQnNaVzFsYm5SaGRHbHZibk1nWm05eUlHMWhibmtnY0hKcGJXbDBhWFpsY3k0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCUVVrbE5TVlJKVmtWVElEMGdVQzVqY21WaGRHVk1ZVzVuZFdGblpUeFFjbWx0YVhScGRtVnpUR0Z1WjNWaFoyVStLSHRjYmlBZ0lDQnVkVzFpWlhJNklDaGZLU0E5UGx4dUlDQWdJQ0FnSUNCUUxuSmxaMlY0Y0NndkxUOWJNQzA1WFNzb1hGd3VXekF0T1YwcktUOHZLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvYzNSeUtTQTlQaUJPZFcxaVpYSXVjR0Z5YzJWR2JHOWhkQ2h6ZEhJcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0p1ZFcxaVpYSmNJaWtzWEc1Y2JpQWdJQ0F2THlCQklIRjFiM1JsTFhOMWNuSnZkVzVrWldRZ2MzUnlhVzVuSUhkb2FXTm9JSE4xY0hCdmNuUnpJR1Z6WTJGd1pTQmphR0Z5WVdOMFpYSnpJQ2duWEZ3bktTNWNiaUFnSUNCemRISnBibWM2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JRTG5OMGNtbHVaeWduWENJbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5Sb1pXNG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzVoYkhRb2NTNWxjMk5oY0dWRGFHRnlZV04wWlhJc0lGQXVibTl1WlU5bUtDZGNJbHhjWEZ3bktTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG1GMFRHVmhjM1FvTUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbTFoY0Nnb1kyaGhjbk1wSUQwK0lHTm9ZWEp6TG1wdmFXNG9YQ0pjSWlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVjMnRwY0NoUUxuTjBjbWx1WnlnblhDSW5LU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWtaWE5qS0Z3aWMzUnlhVzVuWENJcExGeHVYRzRnSUNBZ1pYTmpZWEJsUTJoaGNtRmpkR1Z5T2lBb1h5a2dQVDVjYmlBZ0lDQWdJQ0FnVUM1emRISnBibWNvWENKY1hGeGNYQ0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVkR2hsYmloUUxtRnVlU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXRZWEFvS0dWelkyRndaV1FwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJKWmlCM1pTQmhjbVVnWlhOallYQnBibWNnWVNCaVlXTnJjMnhoYzJnZ2IzSWdZU0J4ZFc5MFpTd2djR0Z6Y3lCcGJpQnZiaUJwYmlCbGMyTmhjR1ZrSUdadmNtMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhOallYQmxaQ0E5UFQwZ0oxd2lKeWtnY21WMGRYSnVJQ2RjSWljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1Z6WTJGd1pXUWdQVDA5SUZ3aVhGeGNYRndpS1NCeVpYUjFjbTRnWENKY1hGeGNYQ0k3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnlaWFIxY200Z1hDSmNYRnhjWENJZ0t5QmxjMk5oY0dWa08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrc1hHNWNiaUFnSUNBdkx5QkJJR0p2YjJ4bFlXNGdkSEoxWlM5bVlXeHpaU0IyWVd4MVpTNWNiaUFnSUNCaWIyOXNPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV5WldkbGVIQW9MM1J5ZFdWOFptRnNjMlY4VkhKMVpYeEdZV3h6WlM4cFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaHpkSElwSUQwK0lITjBjaTUwYjB4dmQyVnlRMkZ6WlNncElEMDlJRndpZEhKMVpWd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtUmxjMk1vWENKaWIyOXNaV0Z1WENJcExGeHVYRzRnSUNBZ0x5OGdRU0IwWVdjZ2IyWWdkR2hsSUdadmNtMGdKeU56ZEhWbVppOW9aV3hzYnkxMGFHVnlaU2N1WEc0Z0lDQWdkR0ZuT2lBb1h5a2dQVDVjYmlBZ0lDQWdJQ0FnVUM1elpYRk5ZWEFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQlFMbk4wY21sdVp5aGNJaU5jSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JRTG1Gc2RDaFFMbkpsWjJWNGNDZ3ZXMTVjWEhVeU1EQXdMVnhjZFRJd05rWmNYSFV5UlRBd0xWeGNkVEpGTjBZbklWd2lJeVFsSmlncEtpc3NMam83UEQwK1AwQmVZSHQ4Zlg1Y1hGdGNYRjFjWEZ4Y1hGeHpYUzhwTG1SbGMyTW9YQ0owWlhoMFhDSXBLUzV0WVc1NUtDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBb2MzUmhjblFzSUhKbGMzUXBJRDArSUhOMFlYSjBJQ3NnY21WemRDNXFiMmx1S0Z3aVhDSXBYRzRnSUNBZ0lDQWdJQ2t1WkdWell5aGNJblJoWjF3aUtTeGNibHh1SUNBZ0lDOHZJRUVnZG1GeWFXRmliR1VnYVdSbGJuUnBabWxsY2l3Z2QyaHBZMmdnYVhNZ1lXeHdhR0Z1ZFcxbGNtbGpJR0Z1WkNCdGRYTjBJSE4wWVhKMElIZHBkR2dnWVNCc1pYUjBaWElnYjNJdUxpNGdaVzF2YW1rdVhHNGdJQ0FnYVdSbGJuUnBabWxsY2pvZ0tGOHBJRDArWEc0Z0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdVQzVoYkhRb1VDNXlaV2RsZUhBb0wxdGNYSEI3VEdWMGRHVnlmU1JkTDNVcExDQlFMbkpsWjJWNGNDaEZUVTlLU1Y5U1JVZEZXQ2t1WkdWell5aGNJblJsZUhSY0lpa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1VDNWhiSFFvVUM1eVpXZGxlSEFvTDFzd0xUbGNYSEI3VEdWMGRHVnlmU1JmTFYwdmRTa3NJRkF1Y21WblpYaHdLRVZOVDBwSlgxSkZSMFZZS1M1a1pYTmpLRndpZEdWNGRGd2lLU2t1YldGdWVTZ3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tHWnBjbk4wTENCeVpYTjBLU0E5UGlCbWFYSnpkQ0FySUhKbGMzUXVhbTlwYmloY0lsd2lLVnh1SUNBZ0lDQWdJQ0FwTG1SbGMyTW9YQ0oyWVhKcFlXSnNaVndpS1N4Y2JseHVJQ0FnSUM4dklFRnVJRTlpYzJsa2FXRnVJR3hwYm1zZ2IyWWdkR2hsSUdadmNtMGdXMXM4YkdsdWF6NWRYUzVjYmlBZ0lDQnNhVzVyT2lBb1h5a2dQVDVjYmlBZ0lDQWdJQ0FnVUM1eVpXZGxlSEFvTDF4Y1cxeGNXeWhiWGx4Y1cxeGNYVjBxUHlsY1hGMWNYRjB2ZFN3Z01TbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1dFlYQW9LR3hwYm10SmJtNWxjaWtnUFQ0Z1RHbHVheTV3WVhKelpVbHVibVZ5S0d4cGJtdEpibTVsY2lrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1WkdWell5aGNJbVpwYkdVZ2JHbHVhMXdpS1N4Y2JseHVJQ0FnSUM4dklFRnVJR1Z0WW1Wa1pHRmliR1VnYkdsdWF5QjNhR2xqYUNCallXNGdjM1JoY25RZ2QybDBhQ0FuSVNjdUlGUm9hWE1nYjNabGNteGhjSE1nZDJsMGFDQjBhR1VnYm05eWJXRnNJRzVsWjJGMGFXOXVJRzl3WlhKaGRHOXlMQ0J6YnlCcGRDQnBjeUJ2Ym14NVhHNGdJQ0FnTHk4Z2NISnZkbWxrWldRZ1ptOXlJRzFsZEdGa1lYUmhJSEJoY25OcGJtY3VYRzRnSUNBZ1pXMWlaV1JNYVc1ck9pQW9jU2tnUFQ1Y2JpQWdJQ0FnSUNBZ1VDNXpaWEZOWVhBb1VDNXpkSEpwYm1jb1hDSWhYQ0lwTG1GMFRXOXpkQ2d4S1N3Z2NTNXNhVzVyTENBb2NDd2diQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQXViR1Z1WjNSb0lENGdNQ2tnYkM1bGJXSmxaQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYkR0Y2JpQWdJQ0FnSUNBZ2ZTa3VaR1Z6WXloY0ltWnBiR1VnYkdsdWExd2lLU3hjYmx4dUlDQWdJQzh2SUVKcGJtRnllU0J3YkhWeklHOXlJRzFwYm5WeklHOXdaWEpoZEc5eUxseHVJQ0FnSUdKcGJtRnllVkJzZFhOTmFXNTFjem9nS0Y4cElEMCtYRzRnSUNBZ0lDQWdJRkF1Y21WblpYaHdLQzljWEN0OExTOHBYRzRnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLQ2h6ZEhJcElEMCtJSE4wY2lCaGN5QkNhVzVoY25sUGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1a1pYTmpLRndpSnlzbklHOXlJQ2N0SjF3aUtTeGNibHh1SUNBZ0lDOHZJRUpwYm1GeWVTQjBhVzFsY3lCdmNpQmthWFpwWkdVZ2IzQmxjbUYwYjNJdVhHNGdJQ0FnWW1sdVlYSjVUWFZzUkdsMk9pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1VDNXlaV2RsZUhBb0wxeGNLbnhjWEM5OEpTOHBYRzRnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLQ2h6ZEhJcElEMCtJSE4wY2lCaGN5QkNhVzVoY25sUGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1a1pYTmpLRndpSnlvbklHOXlJQ2N2SnlCdmNpQW5KU2RjSWlrc1hHNWNiaUFnSUNBdkx5QkNhVzVoY25rZ1kyOXRjR0Z5YVhOdmJpQnZjR1Z5WVhSdmNpNWNiaUFnSUNCaWFXNWhjbmxEYjIxd1lYSmxUM0E2SUNoZktTQTlQbHh1SUNBZ0lDQWdJQ0JRTG5KbFoyVjRjQ2d2UGoxOFBEMThJVDE4UG53OGZEMHZLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvYzNSeUtTQTlQaUJ6ZEhJZ1lYTWdRbWx1WVhKNVQzQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBdVpHVnpZeWhjSWljK1BTY2diM0lnSnp3OUp5QnZjaUFuSVQwbklHOXlJQ2M5SnlCdmNpQW5QaWNnYjNJZ0p6d25YQ0lwTEZ4dVhHNGdJQ0FnTHk4Z1FtbHVZWEo1SUdKdmIyeGxZVzRnWTI5dFltbHVZWFJwYjI0Z2IzQmxjbUYwYjNJdVhHNGdJQ0FnWW1sdVlYSjVRVzVrVDNBNklDaGZLU0E5UGx4dUlDQWdJQ0FnSUNCUUxuSmxaMlY0Y0NndllXNWtmQ1l2YVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tGOXpkSElwSUQwK0lGd2lKbHdpSUdGeklFSnBibUZ5ZVU5d0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0luWVc1a0oxd2lLU3hjYmlBZ0lDQmlhVzVoY25sUGNrOXdPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV5WldkbGVIQW9MMjl5ZkZ4Y2ZDOXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvWDNOMGNpa2dQVDRnWENKOFhDSWdZWE1nUW1sdVlYSjVUM0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVaR1Z6WXloY0lpZHZjaWRjSWlrc1hHNWNiaUFnSUNBdkx5QkJJR1JoZEdVZ2QyaHBZMmdnWTJGdUlHSmxJRmxaV1ZrdFRVMWJMVVJFVkVoSU9tMXRPbk56WFM1Y2JpQWdJQ0J5YjI5MFJHRjBaVG9nS0Y4cElEMCtYRzRnSUNBZ0lDQWdJRkF1YzJWeFRXRndLRkF1Y21WblpYaHdLQzljWEdSN05IMHZLU3dnVUM1emRISnBibWNvWENJdFhDSXBMQ0JRTG5KbFoyVjRjQ2d2WEZ4a2V6SjlMeWtzSUNoNVpXRnlMQ0JmTENCdGIyNTBhQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnlPaUJPZFcxaVpYSXVjR0Z5YzJWSmJuUW9lV1ZoY2lrc0lHMXZiblJvT2lCT2RXMWlaWEl1Y0dGeWMyVkpiblFvYlc5dWRHZ3BJSDBwTzF4dUlDQWdJQ0FnSUNCOUtTNWtaWE5qS0Z3aVpHRjBaU0JwYmlCbWIzSnRZWFFnV1ZsWldTMU5UVnN0UkVSVVNFZ3RUVTB0VTFNdVRWTmRYQ0lwTEZ4dUlDQWdJR1JoZEdWVGFHOXlkR2hoYm1RNklDaGZLU0E5UGx4dUlDQWdJQ0FnSUNCUUxtRnNkQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMazlpYW1WamRDNXJaWGx6S0VSQlZFVmZVMGhQVWxSSVFVNUVVeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1YzI5eWRDZ29ZU3dnWWlrZ1BUNGdZaTVzWlc1bmRHZ2dMU0JoTG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tGQXVjM1J5YVc1bktWeHVJQ0FnSUNBZ0lDQXBJR0Z6SUZBdVVHRnljMlZ5UEd0bGVXOW1JSFI1Y0dWdlppQkVRVlJGWDFOSVQxSlVTRUZPUkZNK0xGeHVJQ0FnSUdSaGRHVTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQmphR0ZwYms5d2REeEVZWFJsVkdsdFpUNG9YRzRnSUNBZ0lDQWdJQ0FnSUNCeExuSnZiM1JFWVhSbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0hsdE9pQkVZWFJsVkdsdFpTa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JRTG5ObGNVMWhjQ2hRTG5OMGNtbHVaeWhjSWkxY0lpa3NJRkF1Y21WblpYaHdLQzljWEdSN01uMHZLU3dnS0Y4c0lHUmhlU2tnUFQ0Z2VXMHVjMlYwS0hzZ1pHRjVPaUJPZFcxaVpYSXVjR0Z5YzJWSmJuUW9aR0Y1S1NCOUtTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBb2VXMWtPaUJFWVhSbFZHbHRaU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUUxuTmxjVTFoY0NoUUxuTjBjbWx1WnloY0lsUmNJaWtzSUZBdWNtVm5aWGh3S0M5Y1hHUjdNbjB2S1N3Z0tGOHNJR2h2ZFhJcElEMCtJSGx0WkM1elpYUW9leUJvYjNWeU9pQk9kVzFpWlhJdWNHRnljMlZKYm5Rb2FHOTFjaWtnZlNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0hsdFpHZzZJRVJoZEdWVWFXMWxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0ZBdWMzUnlhVzVuS0Z3aU9sd2lLU3dnVUM1eVpXZGxlSEFvTDF4Y1pIc3lmUzhwTENBb1h5d2diV2x1ZFhSbEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWJXUm9Mbk5sZENoN0lHMXBiblYwWlRvZ1RuVnRZbVZ5TG5CaGNuTmxTVzUwS0cxcGJuVjBaU2tnZlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0hsdFpHaHRPaUJFWVhSbFZHbHRaU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUUxuTmxjVTFoY0NoUUxuTjBjbWx1WnloY0lqcGNJaWtzSUZBdWNtVm5aWGh3S0M5Y1hHUjdNbjB2S1N3Z0tGOHNJSE5sWTI5dVpDa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXMWthRzB1YzJWMEtIc2djMlZqYjI1a09pQk9kVzFpWlhJdWNHRnljMlZKYm5Rb2MyVmpiMjVrS1NCOUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBb2VXMWthRzF6T2lCRVlYUmxWR2x0WlNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlFMbUZzZENoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzV6WlhGTllYQW9VQzV6ZEhKcGJtY29YQ0l1WENJcExDQlFMbkpsWjJWNGNDZ3ZYRnhrZXpOOUx5a3NJQ2hmTENCdGFXeHNhWE5sWTI5dVpDa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGx0WkdodGN5NXpaWFFvZXlCdGFXeHNhWE5sWTI5dVpEb2dUblZ0WW1WeUxuQmhjbk5sU1c1MEtHMXBiR3hwYzJWamIyNWtLU0I5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUUxuTjFZMk5sWldRb2VXMWthRzF6S1NBdkx5QndZWE56WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2hrZERvZ1JHRjBaVlJwYldVcElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzVoYkhRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRkF1YzJWeFRXRndLRkF1YzNSeWFXNW5LRndpSzF3aUtTNXZjaWhRTG5OMGNtbHVaeWhjSWkxY0lpa3BMQ0JRTG5KbFoyVjRjQ2d2WEZ4a2V6RXNNbjBvT2x4Y1pIc3lmU2svTHlrc0lDaHdiU3dnYUhJcElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtkQzV6WlhSYWIyNWxLRndpVlZSRFhDSWdLeUJ3YlNBcklHaHlMQ0I3SUd0bFpYQk1iMk5oYkZScGJXVTZJSFJ5ZFdVZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzV6WlhGTllYQW9VQzV6ZEhKcGJtY29YQ0phWENJcExDQW9LU0E5UGlCa2RDNXpaWFJhYjI1bEtGd2lkWFJqWENJc0lIc2dhMlZsY0V4dlkyRnNWR2x0WlRvZ2RISjFaU0I5S1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRkF1YzJWeFRXRndLRkF1YzNSeWFXNW5LRndpVzF3aUtTd2dVQzV5WldkbGVIQW9MMXN3TFRsQkxWcGhMWG9yTFZ4Y0wxMHJMM1VwTENCUUxuTjBjbWx1WnloY0lsMWNJaWtzSUNoZllTd2dlbTl1WlN3Z1gySXBJRDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrZEM1elpYUmFiMjVsS0hwdmJtVXNJSHNnYTJWbGNFeHZZMkZzVkdsdFpUb2dkSEoxWlNCOUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1WVhOelpYSjBLQ2hrZERvZ1JHRjBaVlJwYldVcElEMCtJR1IwTG1selZtRnNhV1FzSUZ3aWRtRnNhV1FnWkdGMFpWd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtUmxjMk1vWENKa1lYUmxJR2x1SUdadmNtMWhkQ0JaV1ZsWkxVMU5XeTFFUkZSSVNDMU5UUzFUVXk1TlUxMWNJaWtzWEc1Y2JpQWdJQ0F2THlCQklHUmhkR1VzSUhCc2RYTWdkbUZ5YVc5MWN5QnphRzl5ZEdoaGJtUWdkR2x0WlhNZ2IyWWdaR0Y1SUdsMElHTnZkV3hrSUdKbExseHVJQ0FnSUdSaGRHVlFiSFZ6T2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnVUM1aGJIUThSR0YwWlZScGJXVStLRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWtZWFJsVTJodmNuUm9ZVzVrTG0xaGNDZ29aQ2tnUFQ0Z1JFRlVSVjlUU0U5U1ZFaEJUa1JUVzJSZEtDa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWtZWFJsWEc0Z0lDQWdJQ0FnSUNrdVpHVnpZeWhjSW1SaGRHVWdhVzRnWm05eWJXRjBJRmxaV1ZrdFRVMWJMVVJFVkVoSUxVMU5MVk5UTGsxVFhTQnZjaUJwYmlCemFHOXlkR2hoYm1SY0lpa3NYRzVjYmlBZ0lDQXZMeUJCSUdSMWNtRjBhVzl1SUc5bUlIUnBiV1V1WEc0Z0lDQWdaSFZ5WVhScGIyNVVlWEJsT2lBb1h5a2dQVDVjYmlBZ0lDQWdJQ0FnVUM1aGJIUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNVBZbXBsWTNRdWEyVjVjeWhFVlZKQlZFbFBUbDlVV1ZCRlV5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVjMjl5ZENnb1lTd2dZaWtnUFQ0Z1lpNXNaVzVuZEdnZ0xTQmhMbXhsYm1kMGFDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXViV0Z3S0ZBdWMzUnlhVzVuS1Z4dUlDQWdJQ0FnSUNBcElHRnpJRkF1VUdGeWMyVnlQR3RsZVc5bUlIUjVjR1Z2WmlCRVZWSkJWRWxQVGw5VVdWQkZVejRzWEc0Z0lDQWdaSFZ5WVhScGIyNDZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQlFMbk5sY1UxaGNDaHhMbTUxYldKbGNpd2dVQzV2Y0hSWGFHbDBaWE53WVdObExDQnhMbVIxY21GMGFXOXVWSGx3WlN3Z0tHTnZkVzUwTENCZkxDQjBLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdSRlZTUVZSSlQwNWZWRmxRUlZOYmRGMHViV0Z3Vlc1cGRITW9LSGdwSUQwK0lIZ2dLaUJqYjNWdWRDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xuTmxjRUo1TVNoUUxuTjBjbWx1WnloY0lpeGNJaWt1ZEhKcGJTaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcExtOXlLRkF1YjNCMFYyaHBkR1Z6Y0dGalpTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLQ2hrZFhKaGRHbHZibk1wSUQwK0lHUjFjbUYwYVc5dWN5NXlaV1IxWTJVb0tIQXNJR01wSUQwK0lIQXVjR3gxY3loaktTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdVpHVnpZeWhjSW1SMWNtRjBhVzl1SUd4cGEyVWdOR2h5TW0xcGJsd2lLU3hjYmx4dUlDQWdJQzh2SUVFZ2NtRjNJRzUxYkd3Z2RtRnNkV1V1WEc0Z0lDQWdjbUYzVG5Wc2JEb2dLRjhwSUQwK0lGQXVjM1J5YVc1bktGd2liblZzYkZ3aUtTeGNibHh1SUNBZ0lDOHZJRWx1YkdsdVpTQm1hV1ZzWkNCMllXeDFaU0J3WVhKemFXNW5MbHh1SUNBZ0lHRjBiMjFKYm14cGJtVkdhV1ZzWkRvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUZBdVlXeDBLRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWtZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzVrZFhKaGRHbHZiaTV0WVhBb0tHUXBJRDArSUc1dmNtMWhiR2w2WlVSMWNtRjBhVzl1S0dRcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWMzUnlhVzVuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzUwWVdjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1WdFltVmtUR2x1YXl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1WW05dmJDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWJuVnRZbVZ5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzV5WVhkT2RXeHNYRzRnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdhVzVzYVc1bFJtbGxiR1JNYVhOME9pQW9jU2tnUFQ0Z2NTNWhkRzl0U1c1c2FXNWxSbWxsYkdRdWMyVndRbmtvVUM1emRISnBibWNvWENJc1hDSXBMblJ5YVcwb1VDNXZjSFJYYUdsMFpYTndZV05sS1M1c2IyOXJZV2hsWVdRb2NTNWhkRzl0U1c1c2FXNWxSbWxsYkdRcEtTeGNiaUFnSUNCcGJteHBibVZHYVdWc1pEb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVZV3gwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdVQzV6WlhGTllYQW9jUzVoZEc5dFNXNXNhVzVsUm1sbGJHUXNJRkF1YzNSeWFXNW5LRndpTEZ3aUtTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2tzSUhFdWFXNXNhVzVsUm1sbGJHUk1hWE4wTENBb1ppd2dYM01zSUd3cElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdXMlpkTG1OdmJtTmhkQ2hzS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVZWFJ2YlVsdWJHbHVaVVpwWld4a1hHNGdJQ0FnSUNBZ0lDa3NYRzU5S1R0Y2JseHVMeW9xSUVWdGIycHBJSEpsWjJWNExDQnpkSEp3Y0dsdVp5QmhibmtnY21WblpYZ2dabXhoWjNNZ2FYUWdhR0Z6TGlBcUwxeHVZMjl1YzNRZ1JVMVBTa2xmVWtWSFJWZ2dQU0J1WlhjZ1VtVm5SWGh3S0dWdGIycHBVbVZuWlhnb0tTd2dYQ0pjSWlrN1hHNWNiaThxS2lCUWNtOTJhV1JsY3lCaElHeHZiMnQxY0NCMFlXSnNaU0JtYjNJZ2RXNXBkQ0JrZFhKaGRHbHZibk1nYjJZZ2RHaGxJR2RwZG1WdUlIUjVjR1V1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkZWU1FWUkpUMDVmVkZsUVJWTWdQU0I3WEc0Z0lDQWdlV1ZoY2pvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJSGxsWVhKek9pQXhJSDBwTEZ4dUlDQWdJSGxsWVhKek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnZVdWaGNuTTZJREVnZlNrc1hHNGdJQ0FnZVhJNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUI1WldGeWN6b2dNU0I5S1N4Y2JpQWdJQ0I1Y25NNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUI1WldGeWN6b2dNU0I5S1N4Y2JseHVJQ0FnSUcxdmJuUm9PaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2JXOXVkR2h6T2lBeElIMHBMRnh1SUNBZ0lHMXZiblJvY3pvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJRzF2Ym5Sb2N6b2dNU0I5S1N4Y2JpQWdJQ0J0YnpvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJRzF2Ym5Sb2N6b2dNU0I5S1N4Y2JpQWdJQ0J0YjNNNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJ0YjI1MGFITTZJREVnZlNrc1hHNWNiaUFnSUNCM1pXVnJPaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2QyVmxhM002SURFZ2ZTa3NYRzRnSUNBZ2QyVmxhM002SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QjNaV1ZyY3pvZ01TQjlLU3hjYmlBZ0lDQjNhem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIZGxaV3R6T2lBeElIMHBMRnh1SUNBZ0lIZHJjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIZGxaV3R6T2lBeElIMHBMRnh1SUNBZ0lIYzZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCM1pXVnJjem9nTVNCOUtTeGNibHh1SUNBZ0lHUmhlVG9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHUmhlWE02SURFZ2ZTa3NYRzRnSUNBZ1pHRjVjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHUmhlWE02SURFZ2ZTa3NYRzRnSUNBZ1pEb2dSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUdSaGVYTTZJREVnZlNrc1hHNWNiaUFnSUNCb2IzVnlPaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2FHOTFjbk02SURFZ2ZTa3NYRzRnSUNBZ2FHOTFjbk02SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ01TQjlLU3hjYmlBZ0lDQm9jam9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeElIMHBMRnh1SUNBZ0lHaHljem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeElIMHBMRnh1SUNBZ0lHZzZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCb2IzVnljem9nTVNCOUtTeGNibHh1SUNBZ0lHMXBiblYwWlRvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJRzFwYm5WMFpYTTZJREVnZlNrc1hHNGdJQ0FnYldsdWRYUmxjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHMXBiblYwWlhNNklERWdmU2tzWEc0Z0lDQWdiV2x1T2lCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2diV2x1ZFhSbGN6b2dNU0I5S1N4Y2JpQWdJQ0J0YVc1ek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYldsdWRYUmxjem9nTVNCOUtTeGNiaUFnSUNCdE9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYldsdWRYUmxjem9nTVNCOUtTeGNibHh1SUNBZ0lITmxZMjl1WkRvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJSE5sWTI5dVpITTZJREVnZlNrc1hHNGdJQ0FnYzJWamIyNWtjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lITmxZMjl1WkhNNklERWdmU2tzWEc0Z0lDQWdjMlZqT2lCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2djMlZqYjI1a2N6b2dNU0I5S1N4Y2JpQWdJQ0J6WldOek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYzJWamIyNWtjem9nTVNCOUtTeGNiaUFnSUNCek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYzJWamIyNWtjem9nTVNCOUtTeGNibjA3WEc1Y2JpOHFLaUJUYUc5eWRHaGhibVFnWm05eUlHTnZiVzF2YmlCa1lYUmxjeUFvY21Wc1lYUnBkbVVnZEc4Z2NtbG5hSFFnYm05M0tTNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQkVRVlJGWDFOSVQxSlVTRUZPUkZNZ1BTQjdYRzRnSUNBZ2JtOTNPaUFvS1NBOVBpQkVZWFJsVkdsdFpTNXNiMk5oYkNncExGeHVJQ0FnSUhSdlpHRjVPaUFvS1NBOVBpQkVZWFJsVkdsdFpTNXNiMk5oYkNncExuTjBZWEowVDJZb1hDSmtZWGxjSWlrc1hHNGdJQ0FnZVdWemRHVnlaR0Y1T2lBb0tTQTlQbHh1SUNBZ0lDQWdJQ0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWMzUmhjblJQWmloY0ltUmhlVndpS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbTFwYm5WektFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJrWVhsek9pQXhJSDBwS1N4Y2JpQWdJQ0IwYjIxdmNuSnZkem9nS0NrZ1BUNWNiaUFnSUNBZ0lDQWdSR0YwWlZScGJXVXViRzlqWVd3b0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5OMFlYSjBUMllvWENKa1lYbGNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXdiSFZ6S0VSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QmtZWGx6T2lBeElIMHBLU3hjYmlBZ0lDQnpiM2M2SUNncElEMCtJRVJoZEdWVWFXMWxMbXh2WTJGc0tDa3VjM1JoY25SUFppaGNJbmRsWld0Y0lpa3NYRzRnSUNBZ1hDSnpkR0Z5ZEMxdlppMTNaV1ZyWENJNklDZ3BJRDArSUVSaGRHVlVhVzFsTG14dlkyRnNLQ2t1YzNSaGNuUlBaaWhjSW5kbFpXdGNJaWtzWEc0Z0lDQWdaVzkzT2lBb0tTQTlQaUJFWVhSbFZHbHRaUzVzYjJOaGJDZ3BMbVZ1WkU5bUtGd2lkMlZsYTF3aUtTeGNiaUFnSUNCY0ltVnVaQzF2WmkxM1pXVnJYQ0k2SUNncElEMCtJRVJoZEdWVWFXMWxMbXh2WTJGc0tDa3VaVzVrVDJZb1hDSjNaV1ZyWENJcExGeHVJQ0FnSUhOdmVUb2dLQ2tnUFQ0Z1JHRjBaVlJwYldVdWJHOWpZV3dvS1M1emRHRnlkRTltS0Z3aWVXVmhjbHdpS1N4Y2JpQWdJQ0JjSW5OMFlYSjBMVzltTFhsbFlYSmNJam9nS0NrZ1BUNGdSR0YwWlZScGJXVXViRzlqWVd3b0tTNXpkR0Z5ZEU5bUtGd2llV1ZoY2x3aUtTeGNiaUFnSUNCbGIzazZJQ2dwSUQwK0lFUmhkR1ZVYVcxbExteHZZMkZzS0NrdVpXNWtUMllvWENKNVpXRnlYQ0lwTEZ4dUlDQWdJRndpWlc1a0xXOW1MWGxsWVhKY0lqb2dLQ2tnUFQ0Z1JHRjBaVlJwYldVdWJHOWpZV3dvS1M1bGJtUlBaaWhjSW5sbFlYSmNJaWtzWEc0Z0lDQWdjMjl0T2lBb0tTQTlQaUJFWVhSbFZHbHRaUzVzYjJOaGJDZ3BMbk4wWVhKMFQyWW9YQ0p0YjI1MGFGd2lLU3hjYmlBZ0lDQmNJbk4wWVhKMExXOW1MVzF2Ym5Sb1hDSTZJQ2dwSUQwK0lFUmhkR1ZVYVcxbExteHZZMkZzS0NrdWMzUmhjblJQWmloY0ltMXZiblJvWENJcExGeHVJQ0FnSUdWdmJUb2dLQ2tnUFQ0Z1JHRjBaVlJwYldVdWJHOWpZV3dvS1M1bGJtUlBaaWhjSW0xdmJuUm9YQ0lwTEZ4dUlDQWdJRndpWlc1a0xXOW1MVzF2Ym5Sb1hDSTZJQ2dwSUQwK0lFUmhkR1ZVYVcxbExteHZZMkZzS0NrdVpXNWtUMllvWENKdGIyNTBhRndpS1N4Y2JuMDdYRzVjYmk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljYmk4dklFVjRjSEpsYzNOcGIyNGdUR0Z1WjNWaFoyVWdMeTljYmk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljYmx4dVpYaHdiM0owSUhSNWNHVWdVRzl6ZEdacGVFWnlZV2R0Wlc1MElEMWNiaUFnSUNCOElIc2dkSGx3WlRvZ1hDSmtiM1JjSWpzZ1pYaHdjam9nYzNSeWFXNW5JSDFjYmlBZ0lDQjhJSHNnZEhsd1pUb2dYQ0pwYm1SbGVGd2lPeUJsZUhCeU9pQkZlSEJ5WlhOemFXOXVJSDFjYmlBZ0lDQjhJSHNnZEhsd1pUb2dYQ0ptZFc1amRHbHZibHdpT3lCbGVIQnljem9nUlhod2NtVnpjMmx2Ymx0ZElIMDdYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUlhod2NtVnpjMmx2Ymt4aGJtZDFZV2RsSUh0Y2JpQWdJQ0IyWVhKcFlXSnNaVG9nVm1GeWFXRmliR1ZGZUhCeVpYTnphVzl1TzF4dUlDQWdJRzUxYldKbGNqb2dUR2wwWlhKaGJFVjRjSEpsYzNOcGIyNDdYRzRnSUNBZ1ltOXZiRG9nVEdsMFpYSmhiRVY0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdjM1J5YVc1bk9pQk1hWFJsY21Gc1JYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCa1lYUmxPaUJNYVhSbGNtRnNSWGh3Y21WemMybHZianRjYmlBZ0lDQmtkWEpoZEdsdmJqb2dUR2wwWlhKaGJFVjRjSEpsYzNOcGIyNDdYRzRnSUNBZ2JHbHVhem9nVEdsMFpYSmhiRVY0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdiblZzYkRvZ1RHbDBaWEpoYkVWNGNISmxjM05wYjI0N1hHNWNiaUFnSUNCc2FYTjBPaUJNYVhOMFJYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCdlltcGxZM1E2SUU5aWFtVmpkRVY0Y0hKbGMzTnBiMjQ3WEc1Y2JpQWdJQ0J1WldkaGRHVmtPaUJGZUhCeVpYTnphVzl1TzF4dUlDQWdJR0YwYjIwNklFVjRjSEpsYzNOcGIyNDdYRzRnSUNBZ2FXNWtaWGc2SUVWNGNISmxjM05wYjI0N1hHNGdJQ0FnYkdGdFltUmhPaUJNWVcxaVpHRkZlSEJ5WlhOemFXOXVPMXh1WEc0Z0lDQWdMeThnVUc5emRHWnBlQ0J3WVhKelpYSnpJR1p2Y2lCbWRXNWpkR2x2YmlCallXeHNjeUFtSUhSb1pTQnNhV3RsTGx4dUlDQWdJR1J2ZEZCdmMzUm1hWGc2SUZCdmMzUm1hWGhHY21GbmJXVnVkRHRjYmlBZ0lDQnBibVJsZUZCdmMzUm1hWGc2SUZCdmMzUm1hWGhHY21GbmJXVnVkRHRjYmlBZ0lDQm1kVzVqZEdsdmJsQnZjM1JtYVhnNklGQnZjM1JtYVhoR2NtRm5iV1Z1ZER0Y2JseHVJQ0FnSUM4dklFSnBibUZ5ZVNCdmNDQndZWEp6WlhKekxseHVJQ0FnSUdKcGJtRnllVTExYkVScGRqb2dSWGh3Y21WemMybHZianRjYmlBZ0lDQmlhVzVoY25sUWJIVnpUV2x1ZFhNNklFVjRjSEpsYzNOcGIyNDdYRzRnSUNBZ1ltbHVZWEo1UTI5dGNHRnlaVG9nUlhod2NtVnpjMmx2Ymp0Y2JpQWdJQ0JpYVc1aGNubENiMjlzWldGdU9pQkZlSEJ5WlhOemFXOXVPMXh1SUNBZ0lHSnBibUZ5ZVU5d09pQkZlSEJ5WlhOemFXOXVPMXh1SUNBZ0lIQmhjbVZ1Y3pvZ1JYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCbGVIQnlaWE56YVc5dU9pQkZlSEJ5WlhOemFXOXVPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGQmhjbk5sSUdadmNpQjBhR1VnWkdGMFlXTnZjbVVnWlhod2NtVnpjMmx2YmlCc1lXNW5kV0ZuWlN3Z2QyaHBZMmdnY0hKdmRtbGtaWE1nYzJsdGNHeGxJR0Z1WkNCMllXZDFaV3g1SUVwVExXeHZiMnRwYm1jZ1kyOXRjSFYwWVhScGIyNHVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JGV0ZCU1JWTlRTVTlPSUQwZ1VDNWpjbVZoZEdWTVlXNW5kV0ZuWlR4RmVIQnlaWE56YVc5dVRHRnVaM1ZoWjJVK0tIdGNiaUFnSUNBdkx5QkdhV1ZzWkNCd1lYSnphVzVuTGx4dUlDQWdJSFpoY21saFlteGxPaUFvWHlrZ1BUNGdVRkpKVFVsVVNWWkZVeTVwWkdWdWRHbG1hV1Z5TG0xaGNDaEZlSEJ5WlhOemFXOXVjeTUyWVhKcFlXSnNaU2t1WkdWell5aGNJblpoY21saFlteGxYQ0lwTEZ4dUlDQWdJRzUxYldKbGNqb2dLRjhwSUQwK0lGQlNTVTFKVkVsV1JWTXViblZ0WW1WeUxtMWhjQ2hGZUhCeVpYTnphVzl1Y3k1c2FYUmxjbUZzS1M1a1pYTmpLRndpYm5WdFltVnlYQ0lwTEZ4dUlDQWdJSE4wY21sdVp6b2dLRjhwSUQwK0lGQlNTVTFKVkVsV1JWTXVjM1J5YVc1bkxtMWhjQ2hGZUhCeVpYTnphVzl1Y3k1c2FYUmxjbUZzS1M1a1pYTmpLRndpYzNSeWFXNW5YQ0lwTEZ4dUlDQWdJR0p2YjJ3NklDaGZLU0E5UGlCUVVrbE5TVlJKVmtWVExtSnZiMnd1YldGd0tFVjRjSEpsYzNOcGIyNXpMbXhwZEdWeVlXd3BMbVJsYzJNb1hDSmliMjlzWldGdVhDSXBMRnh1SUNBZ0lHUmhkR1U2SUNoZktTQTlQbHh1SUNBZ0lDQWdJQ0JqY21WaGRHVkdkVzVqZEdsdmJpaGNJbVJoZEdWY0lpd2dVRkpKVFVsVVNWWkZVeTVrWVhSbFVHeDFjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXRZWEFvS0Z0ZlpuVnVZeXdnWkdGMFpWMHBJRDArSUVWNGNISmxjM05wYjI1ekxteHBkR1Z5WVd3b1pHRjBaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVaR1Z6WXloY0ltUmhkR1ZjSWlrc1hHNGdJQ0FnWkhWeVlYUnBiMjQ2SUNoZktTQTlQbHh1SUNBZ0lDQWdJQ0JqY21WaGRHVkdkVzVqZEdsdmJpaGNJbVIxY2x3aUxDQlFVa2xOU1ZSSlZrVlRMbVIxY21GMGFXOXVLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvVzE5bWRXNWpMQ0JrZFhKZEtTQTlQaUJGZUhCeVpYTnphVzl1Y3k1c2FYUmxjbUZzS0dSMWNpa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdVpHVnpZeWhjSW1SMWNtRjBhVzl1WENJcExGeHVJQ0FnSUc1MWJHdzZJQ2hmS1NBOVBpQlFVa2xOU1ZSSlZrVlRMbkpoZDA1MWJHd3ViV0Z3S0NoZktTQTlQaUJGZUhCeVpYTnphVzl1Y3k1T1ZVeE1LU3hjYmlBZ0lDQnNhVzVyT2lBb1h5a2dQVDRnVUZKSlRVbFVTVlpGVXk1c2FXNXJMbTFoY0NoRmVIQnlaWE56YVc5dWN5NXNhWFJsY21Gc0tTeGNiaUFnSUNCc2FYTjBPaUFvY1NrZ1BUNWNiaUFnSUNBZ0lDQWdjUzVsZUhCeVpYTnphVzl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQXVjMlZ3UW5rb1VDNXpkSEpwYm1jb1hDSXNYQ0lwTG5SeWFXMG9VQzV2Y0hSWGFHbDBaWE53WVdObEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1M2NtRndLRkF1YzNSeWFXNW5LRndpVzF3aUtTNXphMmx3S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2tzSUZBdWIzQjBWMmhwZEdWemNHRmpaUzUwYUdWdUtGQXVjM1J5YVc1bktGd2lYVndpS1NrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaHNLU0E5UGlCRmVIQnlaWE56YVc5dWN5NXNhWE4wS0d3cEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0pzYVhOMFhDSXBMRnh1SUNBZ0lHOWlhbVZqZERvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdVRkpKVFVsVVNWWkZVeTVwWkdWdWRHbG1hV1Z5TG05eUtGQlNTVTFKVkVsV1JWTXVjM1J5YVc1bktTeGNiaUFnSUNBZ0lDQWdJQ0FnSUZBdWMzUnlhVzVuS0Z3aU9sd2lLUzUwY21sdEtGQXViM0IwVjJocGRHVnpjR0ZqWlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1WNGNISmxjM05wYjI0c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FvYm1GdFpTd2dYM05sY0N3Z2RtRnNkV1VwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QnVZVzFsTENCMllXeDFaU0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVjMlZ3UW5rb1VDNXpkSEpwYm1jb1hDSXNYQ0lwTG5SeWFXMG9VQzV2Y0hSWGFHbDBaWE53WVdObEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1M2NtRndLRkF1YzNSeWFXNW5LRndpZTF3aUtTNXphMmx3S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2tzSUZBdWIzQjBWMmhwZEdWemNHRmpaUzUwYUdWdUtGQXVjM1J5YVc1bktGd2lmVndpS1NrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaDJZV3h6S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhKbGN6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1JYaHdjbVZ6YzJsdmJqNGdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR3hsZENCbGJuUnllU0J2WmlCMllXeHpLU0J5WlhOYlpXNTBjbmt1Ym1GdFpWMGdQU0JsYm5SeWVTNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUlhod2NtVnpjMmx2Ym5NdWIySnFaV04wS0hKbGN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0p2WW1wbFkzUWdLQ2Q3SUdFNklERXNJR0k2SURJZ2ZTY3BYQ0lwTEZ4dVhHNGdJQ0FnWVhSdmJUb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVZV3gwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVUd4aFkyVWdaVzFpWldRZ2JHbHVhM01nWVdKdmRtVWdibVZuWVhSbFpDQm1hV1ZzWkhNZ1lYTWdkR2hsZVNCaGNtVWdkR2hsSUhOd1pXTnBZV3dnY0dGeWMyVnlJR05oYzJVZ0p5RmJXM1JvYVc1blhWMG5JR0Z1WkNCaGNtVWdaMlZ1WlhKaGJHeDVJSFZ1WVcxaWFXZHBiM1Z6TGx4dUlDQWdJQ0FnSUNBZ0lDQWdVRkpKVFVsVVNWWkZVeTVsYldKbFpFeHBibXN1YldGd0tDaHNLU0E5UGlCRmVIQnlaWE56YVc5dWN5NXNhWFJsY21Gc0tHd3BLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVibVZuWVhSbFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWJHbHVheXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXViR2x6ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1YjJKcVpXTjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNXNZVzFpWkdFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG5CaGNtVnVjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVZbTl2YkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1Ym5WdFltVnlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNXpkSEpwYm1jc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1SaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCeExtUjFjbUYwYVc5dUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY1M1dWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNTJZWEpwWVdKc1pWeHVJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lHbHVaR1Y0T2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnVUM1elpYRk5ZWEFvY1M1aGRHOXRMQ0JRTG1Gc2RDaHhMbVJ2ZEZCdmMzUm1hWGdzSUhFdWFXNWtaWGhRYjNOMFptbDRMQ0J4TG1aMWJtTjBhVzl1VUc5emRHWnBlQ2t1YldGdWVTZ3BMQ0FvYjJKcUxDQndiM04wWm1sNFpYTXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCeVpYTjFiSFFnUFNCdlltbzdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR3hsZENCd2IzTjBJRzltSUhCdmMzUm1hWGhsY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjNhWFJqYUNBb2NHOXpkQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0prYjNSY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlFVjRjSEpsYzNOcGIyNXpMbWx1WkdWNEtISmxjM1ZzZEN3Z1JYaHdjbVZ6YzJsdmJuTXViR2wwWlhKaGJDaHdiM04wTG1WNGNISXBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2lhVzVrWlhoY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlFVjRjSEpsYzNOcGIyNXpMbWx1WkdWNEtISmxjM1ZzZEN3Z2NHOXpkQzVsZUhCeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpuVnVZM1JwYjI1Y0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlFVjRjSEpsYzNOcGIyNXpMbVoxYm1Nb2NtVnpkV3gwTENCd2IzTjBMbVY0Y0hKektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ2JtVm5ZWFJsWkRvZ0tIRXBJRDArSUZBdWMyVnhUV0Z3S0ZBdWMzUnlhVzVuS0Z3aUlWd2lLU3dnY1M1cGJtUmxlQ3dnS0Y4c0lHWnBaV3hrS1NBOVBpQkZlSEJ5WlhOemFXOXVjeTV1WldkaGRHVW9abWxsYkdRcEtTNWtaWE5qS0Z3aWJtVm5ZWFJsWkNCbWFXVnNaRndpS1N4Y2JpQWdJQ0J3WVhKbGJuTTZJQ2h4S1NBOVBpQnhMbVY0Y0hKbGMzTnBiMjR1ZEhKcGJTaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcExuZHlZWEFvVUM1emRISnBibWNvWENJb1hDSXBMQ0JRTG5OMGNtbHVaeWhjSWlsY0lpa3BMRnh1SUNBZ0lHeGhiV0prWVRvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdVRkpKVFVsVVNWWkZVeTVwWkdWdWRHbG1hV1Z5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG5ObGNFSjVLRkF1YzNSeWFXNW5LRndpTEZ3aUtTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG5keVlYQW9VQzV6ZEhKcGJtY29YQ0lvWENJcExuUnlhVzBvVUM1dmNIUlhhR2wwWlhOd1lXTmxLU3dnVUM1emRISnBibWNvWENJcFhDSXBMblJ5YVcwb1VDNXZjSFJYYUdsMFpYTndZV05sS1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JRTG5OMGNtbHVaeWhjSWowK1hDSXBMblJ5YVcwb1VDNXZjSFJYYUdsMFpYTndZV05sS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1Wlhod2NtVnpjMmx2Yml4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2hwWkdWdWRDd2dYMmxuYm05eVpTd2dkbUZzZFdVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQmNJbXhoYldKa1lWd2lMQ0JoY21kMWJXVnVkSE02SUdsa1pXNTBMQ0IyWVd4MVpTQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXBMRnh1WEc0Z0lDQWdaRzkwVUc5emRHWnBlRG9nS0hFcElEMCtJRkF1YzJWeFRXRndLRkF1YzNSeWFXNW5LRndpTGx3aUtTd2dVRkpKVFVsVVNWWkZVeTVwWkdWdWRHbG1hV1Z5TENBb1h5d2daWGh3Y2lrZ1BUNGdLSHNnZEhsd1pUb2dYQ0prYjNSY0lpd2daWGh3Y2lCOUtTa3NYRzRnSUNBZ2FXNWtaWGhRYjNOMFptbDRPaUFvY1NrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV6WlhGTllYQW9YRzRnSUNBZ0lDQWdJQ0FnSUNCUUxuTjBjbWx1WnloY0lsdGNJaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQlFMbTl3ZEZkb2FYUmxjM0JoWTJVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1WNGNISmxjM05wYjI0c1hHNGdJQ0FnSUNBZ0lDQWdJQ0JRTG05d2RGZG9hWFJsYzNCaFkyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCUUxuTjBjbWx1WnloY0lsMWNJaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQW9YeXdnWHpJc0lHVjRjSElzSUY4ekxDQmZOQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lIUjVjR1U2SUZ3aWFXNWtaWGhjSWl3Z1pYaHdjaUI5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJR1oxYm1OMGFXOXVVRzl6ZEdacGVEb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVjMlZ4VFdGd0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnVUM1emRISnBibWNvWENJb1hDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1VDNXZjSFJYYUdsMFpYTndZV05sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzVsZUhCeVpYTnphVzl1TG5ObGNFSjVLRkF1YzNSeWFXNW5LRndpTEZ3aUtTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2twTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdVQzV2Y0hSWGFHbDBaWE53WVdObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnVUM1emRISnBibWNvWENJcFhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tGOHNJRjh4TENCbGVIQnljeXdnWHpJc0lGOHpLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKbWRXNWpkR2x2Ymx3aUxDQmxlSEJ5Y3lCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBcExGeHVYRzRnSUNBZ0x5OGdWR2hsSUhCeVpXTmxaR1Z1WTJVZ2FHbGxjbUZ5WTJoNUlHOW1JRzl3WlhKaGRHOXljeUF0SUcxMWJIUnBjR3g1TDJScGRtbGtaU3dnWVdSa0wzTjFZblJ5WVdOMExDQmpiMjF3WVhKbExDQmhibVFnZEdobGJpQmliMjlzWldGdUlHOXdaWEpoZEdsdmJuTXVYRzRnSUNBZ1ltbHVZWEo1VFhWc1JHbDJPaUFvY1NrZ1BUNGdZM0psWVhSbFFtbHVZWEo1VUdGeWMyVnlLSEV1YVc1a1pYZ3NJRkJTU1UxSlZFbFdSVk11WW1sdVlYSjVUWFZzUkdsMkxDQkZlSEJ5WlhOemFXOXVjeTVpYVc1aGNubFBjQ2tzWEc0Z0lDQWdZbWx1WVhKNVVHeDFjMDFwYm5Wek9pQW9jU2tnUFQ0Z1kzSmxZWFJsUW1sdVlYSjVVR0Z5YzJWeUtIRXVZbWx1WVhKNVRYVnNSR2wyTENCUVVrbE5TVlJKVmtWVExtSnBibUZ5ZVZCc2RYTk5hVzUxY3l3Z1JYaHdjbVZ6YzJsdmJuTXVZbWx1WVhKNVQzQXBMRnh1SUNBZ0lHSnBibUZ5ZVVOdmJYQmhjbVU2SUNoeEtTQTlQaUJqY21WaGRHVkNhVzVoY25sUVlYSnpaWElvY1M1aWFXNWhjbmxRYkhWelRXbHVkWE1zSUZCU1NVMUpWRWxXUlZNdVltbHVZWEo1UTI5dGNHRnlaVTl3TENCRmVIQnlaWE56YVc5dWN5NWlhVzVoY25sUGNDa3NYRzRnSUNBZ1ltbHVZWEo1UW05dmJHVmhiam9nS0hFcElEMCtYRzRnSUNBZ0lDQWdJR055WldGMFpVSnBibUZ5ZVZCaGNuTmxjaWh4TG1KcGJtRnllVU52YlhCaGNtVXNJRkJTU1UxSlZFbFdSVk11WW1sdVlYSjVRVzVrVDNBdWIzSW9VRkpKVFVsVVNWWkZVeTVpYVc1aGNubFBjazl3S1N3Z1JYaHdjbVZ6YzJsdmJuTXVZbWx1WVhKNVQzQXBMRnh1SUNBZ0lHSnBibUZ5ZVU5d09pQW9jU2tnUFQ0Z2NTNWlhVzVoY25sQ2IyOXNaV0Z1TEZ4dVhHNGdJQ0FnWlhod2NtVnpjMmx2YmpvZ0tIRXBJRDArSUhFdVltbHVZWEo1VDNBc1hHNTlLVHRjYmx4dUx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNiaTh2SUZGMVpYSjVJRXhoYm1kMVlXZGxJQzh2WEc0dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHVYRzR2S2lvZ1UzVndjRzl5ZEdWa0lIUjVjR1Z6SUdsdUlIUm9aU0JuY21GdGJXRnlJR1p2Y2lCcGJtUmxlQ0J4ZFdWeWFXVnpMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCUmRXVnllVXhoYm1kMVlXZGxJSHRjYmlBZ0lDQnhkV1Z5ZVZSaFp6b2dTVzVrWlhoVVlXZG5aV1E3WEc0Z0lDQWdjWFZsY25sSlpEb2dTVzVrWlhoSlpEdGNiaUFnSUNCeGRXVnllVlI1Y0dVNklFbHVaR1Y0Vkhsd1pXUTdYRzRnSUNBZ2NYVmxjbmxRWVhSb09pQkpibVJsZUZCaGRHZzdYRzRnSUNBZ2NYVmxjbmxRWVhKbGJuUlBaam9nU1c1a1pYaFFZWEpsYm5SUFpqdGNiaUFnSUNCeGRXVnllVU5vYVd4a1QyWTZJRWx1WkdWNFEyaHBiR1JQWmp0Y2JpQWdJQ0J4ZFdWeWVWTnBiWEJzWlV4cGJtdGxaRG9nU1c1a1pYaE1hVzVyWldRN1hHNGdJQ0FnY1hWbGNubE1hVzVyWldRNklFbHVaR1Y0VEdsdWEyVmtPMXh1SUNBZ0lIRjFaWEo1UlhocGMzUnpPaUJKYm1SbGVFWnBaV3hrTzF4dUlDQWdJSEYxWlhKNVVYVnZkR1ZrUlhod2NtVnpjMmx2YmpvZ1NXNWtaWGhGZUhCeVpYTnphVzl1TzF4dUlDQWdJSEYxWlhKNVVtRjNSWGh3Y21WemMybHZiam9nU1c1a1pYaEZlSEJ5WlhOemFXOXVPMXh1SUNBZ0lIRjFaWEo1VG1WbllYUmxPaUJKYm1SbGVFNXZkRHRjYmlBZ0lDQnhkV1Z5ZVZCaGNtVnVjem9nU1c1a1pYaFJkV1Z5ZVR0Y2JpQWdJQ0J4ZFdWeWVVRjBiMjA2SUVsdVpHVjRVWFZsY25rN1hHNGdJQ0FnY1hWbGNubEJibVJ6T2lCSmJtUmxlRkYxWlhKNU8xeHVJQ0FnSUhGMVpYSjVUM0p6T2lCSmJtUmxlRkYxWlhKNU8xeHVJQ0FnSUhGMVpYSjVPaUJKYm1SbGVGRjFaWEo1TzF4dWZWeHVYRzR2S2lwY2JpQXFJRkJoY25ObGNpQm1iM0lnZEdobElIRjFaWEo1SUd4aGJtZDFZV2RsTGlCRWFXUWdTU0J5WldGc2JIa2dibVZsWkNCaElIRjFaWEo1SUd4aGJtZDFZV2RsSUdsdWMzUmxZV1FnYjJZZ2FuVnpkQ0JoSUdKbGRIUmxjaUJWU1Q4Z1VISnZZbUZpYkhrZ2JtOTBMbHh1SUNvZ1FuVjBJSEYxWlhKNUlHeGhibWQxWVdkbGN5QmhjbVVnWm5WdUlHWnZjaUIwYUdVZ2QyaHZiR1VnWm1GdGFXeDVJR0Z1WkNCaGRDQnpiMjFsSUhCdmFXNTBJSGx2ZFNCblpYUWdjMjhnZFhObFpDQjBieUIzY21sMGFXNW5JSFJvWlcwZ2RHaGhkRnh1SUNvZ2VXOTFJR1J2YmlkMElITjBiM0FnZEc4Z2RHaHBibXNnYVdZZ2VXOTFJQ3B1WldWa0tpQjBieUIzY21sMFpTQjBhR1Z0SUdGdWVXMXZjbVV1SUVsMEozTWdaMjl2WkNCMGVYQnBibWNnY0hKaFkzUnBZMlVnWm05eUlHVjJaWEo1YjI1bExseHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVVlZGVWxrZ1BTQlFMbU55WldGMFpVeGhibWQxWVdkbFBGRjFaWEo1VEdGdVozVmhaMlUrS0h0Y2JpQWdJQ0J4ZFdWeWVWUmhaem9nS0Y4cElEMCtJRkJTU1UxSlZFbFdSVk11ZEdGbkxtMWhjQ2dvZG1Gc2RXVXBJRDArSUNoN0lIUjVjR1U2SUZ3aWRHRm5aMlZrWENJc0lIWmhiSFZsSUgwcEtTeGNiaUFnSUNCeGRXVnllVWxrT2lBb1h5a2dQVDRnWTNKbFlYUmxSblZ1WTNScGIyNG9YQ0pwWkZ3aUxDQlFVa2xOU1ZSSlZrVlRMbk4wY21sdVp5a3ViV0Z3S0NoYlh5d2dhV1JkS1NBOVBpQW9leUIwZVhCbE9pQmNJbWxrWENJc0lIWmhiSFZsT2lCcFpDQjlLU2tzWEc0Z0lDQWdjWFZsY25sVWVYQmxPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV6ZEhKcGJtY29YQ0pBWENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1ZEdobGJpaFFVa2xOU1ZSSlZrVlRMbWxrWlc1MGFXWnBaWElwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXViV0Z3S0NoMllXeDFaU2tnUFQ0Z0tIc2dkSGx3WlRvZ1hDSjBlWEJsWkZ3aUxDQjJZV3gxWlRvZ2RtRnNkV1VnZlNrcExGeHVYRzRnSUNBZ2NYVmxjbmxRWVhSb09pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1kzSmxZWFJsUm5WdVkzUnBiMjRvVUM1eVpXZGxlSEFvTDJVL2NHRjBhQzlwS1M1a1pYTmpLRndpVzJWZGNHRjBhRndpS1N3Z1VGSkpUVWxVU1ZaRlV5NXpkSEpwYm1jcExtMWhjQ2dvVzJaMWJtTXNJSEJoZEdoZEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSndZWFJvWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2djR0YwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Y0WVdOME9pQm1kVzVqTG5SdlRHOTNaWEpEWVhObEtDa2dQVDA5SUZ3aVpYQmhkR2hjSWl4Y2JpQWdJQ0FnSUNBZ2ZTa3BMRnh1WEc0Z0lDQWdjWFZsY25sUVlYSmxiblJQWmpvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUdOeVpXRjBaVVoxYm1OMGFXOXVLRkF1Y21WblpYaHdLQzl3WVhKbGJuUnZabnh6ZFhCbGNuUnlaV1V2YVNrdVpHVnpZeWhjSW5CaGNtVnVkRzltWENJcExDQnhMbkYxWlhKNUtTNXRZWEFvS0Z0bWRXNWpMQ0JqYUdsc1pISmxibDBwSUQwK0lDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW5CaGNtVnVkQzF2Wmx3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJocGJHUnlaVzRzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBibU5zZFhOcGRtVTZJR1oxYm1NdWRHOU1iM2RsY2tOaGMyVW9LU0E5UFQwZ1hDSnpkWEJsY25SeVpXVmNJaXhjYmlBZ0lDQWdJQ0FnZlNrcExGeHVJQ0FnSUhGMVpYSjVRMmhwYkdSUFpqb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lHTnlaV0YwWlVaMWJtTjBhVzl1S0ZBdWNtVm5aWGh3S0M5amFHbHNaRzltZkhOMVluUnlaV1V2YVNrdVpHVnpZeWhjSW1Ob2FXeGtiMlpjSWlrc0lIRXVjWFZsY25rcExtMWhjQ2dvVzJaMWJtTXNJSEJoY21WdWRITmRLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dYQ0pqYUdsc1pDMXZabHdpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVkyeDFjMmwyWlRvZ1puVnVZeTUwYjB4dmQyVnlRMkZ6WlNncElEMDlQU0JjSW5OMVluUnlaV1ZjSWl4Y2JpQWdJQ0FnSUNBZ2ZTa3BMRnh1SUNBZ0lIRjFaWEo1VTJsdGNHeGxUR2x1YTJWa09pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1VGSkpUVWxVU1ZaRlV5NXNhVzVyTG0xaGNDZ29iR2x1YXlrZ1BUNGdLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aWJHbHVhMlZrWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6YjNWeVkyVTZJSHNnZEhsd1pUb2dYQ0pzYVc1clhDSXNJSFpoYkhWbE9pQnNhVzVySUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhKbFkzUnBiMjQ2SUZ3aWFXNWpiMjFwYm1kY0lpeGNiaUFnSUNBZ0lDQWdmU2twTEZ4dUlDQWdJSEYxWlhKNVRHbHVhMlZrT2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnWTNKbFlYUmxSblZ1WTNScGIyNG9VQzV5WldkbGVIQW9MMnhwYm10emRHOThiR2x1YTJWa1puSnZiWHhqYjI1dVpXTjBaV1F2YVNrdVpHVnpZeWhjSW1OdmJtNWxZM1JsWkZ3aUtTd2djUzV4ZFdWeWVTa3ViV0Z3S0NoYlpuVnVZeXdnYzI5MWNtTmxYU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJRndpYkdsdWEyVmtYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpiM1Z5WTJVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhKbFkzUnBiMjQ2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm5WdVl5NTBiMHh2ZDJWeVEyRnpaU2dwSUQwOUlGd2liR2x1YTNOMGIxd2lJRDhnWENKcGJtTnZiV2x1WjF3aUlEb2dablZ1WXk1MGIweHZkMlZ5UTJGelpTZ3BJRDA5SUZ3aWJHbHVhMlZrWm5KdmJWd2lJRDhnWENKdmRYUm5iMmx1WjF3aUlEb2dYQ0ppYjNSb1hDSXNYRzRnSUNBZ0lDQWdJSDBwS1N4Y2JpQWdJQ0J4ZFdWeWVVVjRhWE4wY3pvZ0tGOHBJRDArWEc0Z0lDQWdJQ0FnSUdOeVpXRjBaVVoxYm1OMGFXOXVLRkF1Y21WblpYaHdLQzlsZUdsemRITXZhU2t1WkdWell5aGNJbVY0YVhOMGMxd2lLU3dnVUZKSlRVbFVTVlpGVXk1cFpHVnVkR2xtYVdWeUxtOXlLRkJTU1UxSlZFbFdSVk11YzNSeWFXNW5LU2t1YldGd0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0Z0ZlpuVnVZeXdnYVdSbGJuUmRLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aVptbGxiR1JjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nYVdSbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtWeHVJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lIRjFaWEo1VVhWdmRHVmtSWGh3Y21WemMybHZiam9nS0hFcElEMCtYRzRnSUNBZ0lDQWdJR055WldGMFpVWjFibU4wYVc5dUtGQXVjbVZuWlhod0tDOWxlSEJ5TDJrcExtUmxjMk1vWENKbGVIQnlYQ0lwTENCRldGQlNSVk5UU1U5T0xtVjRjSEpsYzNOcGIyNHBMbTFoY0Nnb1cxOHNJR1Y0Y0hKZEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSmxlSEJ5WlhOemFXOXVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxlSEJ5WlhOemFXOXVPaUJsZUhCeUxGeHVJQ0FnSUNBZ0lDQjlLU2tzWEc0Z0lDQWdjWFZsY25sU1lYZEZlSEJ5WlhOemFXOXVPaUFvY1NrZ1BUNGdSVmhRVWtWVFUwbFBUaTVpYVc1aGNubERiMjF3WVhKbExtMWhjQ2dvWlhod2Npa2dQVDRnS0hzZ2RIbHdaVG9nWENKbGVIQnlaWE56YVc5dVhDSXNJR1Y0Y0hKbGMzTnBiMjQ2SUdWNGNISWdmU2twTEZ4dVhHNGdJQ0FnY1hWbGNubFFZWEpsYm5NNklDaHhLU0E5UGlCeExuRjFaWEo1TG5SeWFXMG9VQzV2Y0hSWGFHbDBaWE53WVdObEtTNTNjbUZ3S0ZBdWMzUnlhVzVuS0Z3aUtGd2lLU3dnVUM1emRISnBibWNvWENJcFhDSXBLU3hjYmlBZ0lDQnhkV1Z5ZVU1bFoyRjBaVG9nS0hFcElEMCtYRzRnSUNBZ0lDQWdJRkF1YzNSeWFXNW5LRndpSVZ3aUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5OcmFYQW9VQzV2Y0hSWGFHbDBaWE53WVdObEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5Sb1pXNG9jUzV4ZFdWeWVVRjBiMjBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXViV0Z3S0NoMllXeDFaU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCY0ltNXZkRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblE2SUhaaGJIVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTa3BMRnh1SUNBZ0lIRjFaWEo1UVhSdmJUb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVZV3gwUEVsdVpHVjRVWFZsY25rK0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnY1M1eGRXVnllVkJoY21WdWN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWNYVmxjbmxPWldkaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCeExuRjFaWEo1VTJsdGNHeGxUR2x1YTJWa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnY1M1eGRXVnllVlJoWnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1Y1hWbGNubFVlWEJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzV4ZFdWeWVVbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNXhkV1Z5ZVVWNGFYTjBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVjWFZsY25sRGFHbHNaRTltTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzV4ZFdWeWVWQmhjbVZ1ZEU5bUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY1M1eGRXVnllVXhwYm10bFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWNYVmxjbmxRWVhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnY1M1eGRXVnllVkYxYjNSbFpFVjRjSEpsYzNOcGIyNHNYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QkZlSEJ5WlhOemFXOXVjeUJoY21VZ1pYTnpaVzUwYVdGc2JIa2dkR2hsSUZ3aVkyRjBZMmd0WVd4c1hDSWdiMllnYjNSb1pYSjNhWE5sSUhWdWNHRnljMlZoWW14bElIUmxjbTF6TENCemJ5QjBhR1Y1SUhOb2IzVnNaQ0JuYnlCaFluTnZiSFYwWlNCc1lYTjBMbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNXhkV1Z5ZVZKaGQwVjRjSEpsYzNOcGIyNWNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQnhkV1Z5ZVVGdVpITTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQmpjbVZoZEdWQ2FXNWhjbmxRWVhKelpYSW9jUzV4ZFdWeWVVRjBiMjBzSUZCU1NVMUpWRWxXUlZNdVltbHVZWEo1UVc1a1QzQXNJQ2hzWldaMExDQmZiM0FzSUhKcFoyaDBLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dYQ0poYm1SY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJ6T2lCYmJHVm1kQ3dnY21sbmFIUmRMRnh1SUNBZ0lDQWdJQ0I5S1Nrc1hHNGdJQ0FnY1hWbGNubFBjbk02SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JqY21WaGRHVkNhVzVoY25sUVlYSnpaWElvY1M1eGRXVnllVUZ1WkhNc0lGQlNTVTFKVkVsV1JWTXVZbWx1WVhKNVQzSlBjQ3dnS0d4bFpuUXNJRjl2Y0N3Z2NtbG5hSFFwSUQwK0lDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW05eVhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1cyeGxablFzSUhKcFoyaDBYU3hjYmlBZ0lDQWdJQ0FnZlNrcExGeHVJQ0FnSUhGMVpYSjVPaUFvY1NrZ1BUNGdjUzV4ZFdWeWVVOXljeTUwY21sdEtGQXViM0IwVjJocGRHVnpjR0ZqWlNrc1hHNTlLVHRjYmx4dUx5b3FJRkpsZEhWeWJpQmhJRzVsZHlCd1lYSnpaWElnZDJocFkyZ2daWGhsWTNWMFpYTWdkR2hsSUhWdVpHVnliSGxwYm1jZ2NHRnljMlZ5SUdGdVpDQnlaWFIxY201eklHbDBKM01nY21GM0lITjBjbWx1WnlCeVpYQnlaWE5sYm5SaGRHbHZiaTRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCallYQjBkWEpsVW1GM1BGUStLR0poYzJVNklGQXVVR0Z5YzJWeVBGUStLVG9nVUM1UVlYSnpaWEk4VzFRc0lITjBjbWx1WjEwK0lIdGNiaUFnSUNCeVpYUjFjbTRnVUM1amRYTjBiMjBvS0Y5emRXTmpaWE56TENCZlptRnBiSFZ5WlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdLR2x1Y0hWMExDQnBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2NtVnpkV3gwSUQwZ0tHSmhjMlVnWVhNZ1lXNTVLUzVmS0dsdWNIVjBMQ0JwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGNtVnpkV3gwTG5OMFlYUjFjeWtnY21WMGRYSnVJSEpsYzNWc2REdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUhKbGMzVnNkQ3dnZXlCMllXeDFaVG9nVzNKbGMzVnNkQzUyWVd4MVpTd2dhVzV3ZFhRdWMzVmljM1J5YVc1bktHa3NJSEpsYzNWc2RDNXBibVJsZUNsZElIMHBPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDBwTzF4dWZWeHVYRzR2S2lvZ1EzSmxZWFJsSUdFZ2JHVm1kQzFoYzNOdlkybGhkR2wyWlNCaWFXNWhjbmtnY0dGeWMyVnlJSGRvYVdOb0lIQmhjbk5sY3lCMGFHVWdaMmwyWlc0Z2MzVmlMV1ZzWlcxbGJuUWdZVzVrSUhObGNHRnlZWFJ2Y2k0Z1NHRnVaR3hsY3lCM2FHbDBaWE53WVdObExpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR055WldGMFpVSnBibUZ5ZVZCaGNuTmxjanhVTENCVlBpaGNiaUFnSUNCamFHbHNaRG9nVUM1UVlYSnpaWEk4VkQ0c1hHNGdJQ0FnYzJWd09pQlFMbEJoY25ObGNqeFZQaXhjYmlBZ0lDQmpiMjFpYVc1bE9pQW9ZVG9nVkN3Z1lqb2dWU3dnWXpvZ1ZDa2dQVDRnVkZ4dUtUb2dVQzVRWVhKelpYSThWRDRnZTF4dUlDQWdJSEpsZEhWeWJpQlFMbk5sY1UxaGNDaGphR2xzWkN3Z1VDNXpaWEVvVUM1dmNIUlhhR2wwWlhOd1lXTmxMQ0J6WlhBc0lGQXViM0IwVjJocGRHVnpjR0ZqWlN3Z1kyaHBiR1FwTG0xaGJua29LU3dnS0dacGNuTjBMQ0J5WlhOMEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHlaWE4wTG14bGJtZDBhQ0E5UFNBd0tTQnlaWFIxY200Z1ptbHljM1E3WEc1Y2JpQWdJQ0FnSUNBZ2JHVjBJRzV2WkdVZ1BTQmpiMjFpYVc1bEtHWnBjbk4wTENCeVpYTjBXekJkV3pGZExDQnlaWE4wV3pCZFd6TmRLVHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVc1a1pYZ2dQU0F4T3lCcGJtUmxlQ0E4SUhKbGMzUXViR1Z1WjNSb095QnBibVJsZUNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxJRDBnWTI5dFltbHVaU2h1YjJSbExDQnlaWE4wVzJsdVpHVjRYVnN4WFN3Z2NtVnpkRnRwYm1SbGVGMWJNMTBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWIyUmxPMXh1SUNBZ0lIMHBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlNCaElIQmhjbk5sY2lCM2FHbGphQ0J3WVhKelpYTWdYRnc4Wm5WdVkzUnBiMjVjWEQ0b1hGdzhZWEpuYzF4Y1Bpa3VYRzRnS2lBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTnlaV0YwWlVaMWJtTjBhVzl1UEZRK0tHWjFibU02SUhOMGNtbHVaeUI4SUZBdVVHRnljMlZ5UEhOMGNtbHVaejRzSUdGeVozTTZJRkF1VUdGeWMyVnlQRlErS1RvZ1VDNVFZWEp6WlhJOFczTjBjbWx1Wnl3Z1ZGMCtJSHRjYmlBZ0lDQmpiMjV6ZENCeVpXRnNSblZ1WXlBOUlIUjVjR1Z2WmlCbWRXNWpJRDA5UFNCY0luTjBjbWx1WjF3aUlEOGdVQzV6ZEhKcGJtY29ablZ1WXlrZ09pQm1kVzVqTzF4dUlDQWdJSEpsZEhWeWJpQlFMbk5sY1UxaGNDaGNiaUFnSUNBZ0lDQWdjbVZoYkVaMWJtTXVjMnRwY0NoUUxtOXdkRmRvYVhSbGMzQmhZMlVwTEZ4dUlDQWdJQ0FnSUNCaGNtZHpMblJ5YVcwb1VDNXZjSFJYYUdsMFpYTndZV05sS1M1M2NtRndLRkF1YzNSeWFXNW5LRndpS0Z3aUtTd2dVQzV6ZEhKcGJtY29YQ0lwWENJcEtTeGNiaUFnSUNBZ0lDQWdLR1lzSUdFcElEMCtJRnRtTENCaFhWeHVJQ0FnSUNrN1hHNTlYRzVjYmk4cUtpQkRhR0ZwYm5NZ1lTQnNhWE4wSUc5bUlIQmhjbk5sY25NN0lIUm9aU0JtYVhKemRDQnZibVVnYlhWemRDQnpkV05qWldWa0xDQmlkWFFnWm05c2JHOTNhVzVuSUc5dVpYTWdiV0Y1SUdaaGFXd2dkMmwwYUc5MWRDQm1ZV2xzYVc1bklIUm9aU0J2ZG1WeVlXeHNJSEJoY25ObExpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR05vWVdsdVQzQjBQRlErS0dKaGMyVTZJRkF1VUdGeWMyVnlQRlErTENBdUxpNW1kVzVqY3pvZ0tDaHlPaUJVS1NBOVBpQlFMbEJoY25ObGNqeFVQaWxiWFNrNklGQXVVR0Z5YzJWeVBGUStJSHRjYmlBZ0lDQnlaWFIxY200Z1VDNWpkWE4wYjIwb0tGOXpkV05qWlhOekxDQmZabUZwYkhWeVpTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnS0dsdWNIVjBMQ0JwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdjbVZ6ZFd4MElEMGdLR0poYzJVZ1lYTWdZVzU1S1M1ZktHbHVjSFYwTENCcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hjbVZ6ZFd4MExuTjBZWFIxY3lrZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdablZ1WXlCdlppQm1kVzVqY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J1WlhoMElEMGdLR1oxYm1Nb2NtVnpkV3gwTG5aaGJIVmxJR0Z6SUZRcElHRnpJR0Z1ZVNrdVh5aHBibkIxZEN3Z2NtVnpkV3gwTG1sdVpHVjRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXNWxlSFF1YzNSaGRIVnpLU0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdibVY0ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOUtUdGNibjFjYmlJc0lDSXZLaXBjYmlBcUlFQnRiMlIxYkdVZ1pYaHdjbVZ6YzJsdmJuTmNiaUFxTDF4dWFXMXdiM0owSUhzZ1JHRjBaVlJwYldVc0lFUjFjbUYwYVc5dUlIMGdabkp2YlNCY0lteDFlRzl1WENJN1hHNXBiWEJ2Y25RZ2V5Qk1hVzVySUgwZ1puSnZiU0JjSW1WNGNISmxjM05wYjI0dmJHbHVhMXdpTzF4dWFXMXdiM0owSUhzZ2NtVnVaR1Z5VFdsdWFXMWhiRVJoZEdVc0lISmxibVJsY2sxcGJtbHRZV3hFZFhKaGRHbHZiaUI5SUdaeWIyMGdYQ0oxZEdsc2N5OXViM0p0WVd4cGVtVnljMXdpTzF4dVhHNHZMeUJTWlMxbGVIQnZjblJ6SUc5bUlIVnpaV1oxYkNCblpXNWxjbWxqSUhSNWNHVnpMbHh1Wlhod2IzSjBJSHNnVEdsdWF5QjlPMXh1WEc0dktpb2dVMmh2Y25Sb1lXNWtJR1p2Y2lCaElHMWhjSEJwYm1jZ1puSnZiU0JyWlhseklIUnZJSFpoYkhWbGN5NGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFUmhkR0ZQWW1wbFkzUWdQU0JTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTzF4dUx5b3FJRlJvWlNCc2FYUmxjbUZzSUhSNWNHVnpJSE4xY0hCdmNuUmxaQ0JpZVNCMGFHVWdjWFZsY25rZ1pXNW5hVzVsTGlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVEdsMFpYSmhiRlI1Y0dVZ1BWeHVJQ0FnSUh3Z1hDSmliMjlzWldGdVhDSmNiaUFnSUNCOElGd2liblZ0WW1WeVhDSmNiaUFnSUNCOElGd2ljM1J5YVc1blhDSmNiaUFnSUNCOElGd2laR0YwWlZ3aVhHNGdJQ0FnZkNCY0ltUjFjbUYwYVc5dVhDSmNiaUFnSUNCOElGd2liR2x1YTF3aVhHNGdJQ0FnZkNCY0ltRnljbUY1WENKY2JpQWdJQ0I4SUZ3aWIySnFaV04wWENKY2JpQWdJQ0I4SUZ3aVpuVnVZM1JwYjI1Y0lseHVJQ0FnSUh3Z1hDSnVkV3hzWENJN1hHNHZLaW9nVkdobElISmhkeUIyWVd4MVpYTWdkR2hoZENCaElHeHBkR1Z5WVd3Z1kyRnVJSFJoYTJVZ2IyNHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQk1hWFJsY21Gc0lEMWNiaUFnSUNCOElHSnZiMnhsWVc1Y2JpQWdJQ0I4SUc1MWJXSmxjbHh1SUNBZ0lId2djM1J5YVc1blhHNGdJQ0FnZkNCRVlYUmxWR2x0WlZ4dUlDQWdJSHdnUkhWeVlYUnBiMjVjYmlBZ0lDQjhJRXhwYm10Y2JpQWdJQ0I4SUVGeWNtRjVQRXhwZEdWeVlXdytYRzRnSUNBZ2ZDQkVZWFJoVDJKcVpXTjBYRzRnSUNBZ2ZDQkdkVzVqZEdsdmJseHVJQ0FnSUh3Z2JuVnNiRHRjYmx4dUx5b3FJRTFoY0hNZ2RHaGxJSE4wY21sdVp5QjBlWEJsSUhSdklHbDBKM01nWlhoMFpYSnVZV3dzSUVGUVNTMW1ZV05wYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjR1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JNYVhSbGNtRnNVbVZ3Y2p4VUlHVjRkR1Z1WkhNZ1RHbDBaWEpoYkZSNWNHVStJRDBnVkNCbGVIUmxibVJ6SUZ3aVltOXZiR1ZoYmx3aVhHNGdJQ0FnUHlCaWIyOXNaV0Z1WEc0Z0lDQWdPaUJVSUdWNGRHVnVaSE1nWENKdWRXMWlaWEpjSWx4dUlDQWdJRDhnYm5WdFltVnlYRzRnSUNBZ09pQlVJR1Y0ZEdWdVpITWdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lEOGdjM1J5YVc1blhHNGdJQ0FnT2lCVUlHVjRkR1Z1WkhNZ1hDSmtkWEpoZEdsdmJsd2lYRzRnSUNBZ1B5QkVkWEpoZEdsdmJseHVJQ0FnSURvZ1ZDQmxlSFJsYm1SeklGd2laR0YwWlZ3aVhHNGdJQ0FnUHlCRVlYUmxWR2x0WlZ4dUlDQWdJRG9nVkNCbGVIUmxibVJ6SUZ3aWJuVnNiRndpWEc0Z0lDQWdQeUJ1ZFd4c1hHNGdJQ0FnT2lCVUlHVjRkR1Z1WkhNZ1hDSnNhVzVyWENKY2JpQWdJQ0EvSUV4cGJtdGNiaUFnSUNBNklGUWdaWGgwWlc1a2N5QmNJbUZ5Y21GNVhDSmNiaUFnSUNBL0lFRnljbUY1UEV4cGRHVnlZV3crWEc0Z0lDQWdPaUJVSUdWNGRHVnVaSE1nWENKdlltcGxZM1JjSWx4dUlDQWdJRDhnUkdGMFlVOWlhbVZqZEZ4dUlDQWdJRG9nVkNCbGVIUmxibVJ6SUZ3aVpuVnVZM1JwYjI1Y0lseHVJQ0FnSUQ4Z1JuVnVZM1JwYjI1Y2JpQWdJQ0E2SUdGdWVUdGNibHh1THlvcUlFRWdkM0poY0hCbFpDQnNhWFJsY21Gc0lIWmhiSFZsSUhkb2FXTm9JR05oYmlCaVpTQnpkMmwwWTJobFpDQnZiaTRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRmR5WVhCd1pXUk1hWFJsY21Gc0lEMWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aWMzUnlhVzVuWENJK1hHNGdJQ0FnZkNCTWFYUmxjbUZzVjNKaGNIQmxjanhjSW01MWJXSmxjbHdpUGx4dUlDQWdJSHdnVEdsMFpYSmhiRmR5WVhCd1pYSThYQ0ppYjI5c1pXRnVYQ0krWEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbVJoZEdWY0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aVpIVnlZWFJwYjI1Y0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aWJHbHVhMXdpUGx4dUlDQWdJSHdnVEdsMFpYSmhiRmR5WVhCd1pYSThYQ0poY25KaGVWd2lQbHh1SUNBZ0lId2dUR2wwWlhKaGJGZHlZWEJ3WlhJOFhDSnZZbXBsWTNSY0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aVpuVnVZM1JwYjI1Y0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aWJuVnNiRndpUGp0Y2JseHVMeW9xSUVOdmJXSnBibVZ6SUdFZ2RHVjRkSFZoYkNCMGVYQmxJR0Z1WkNCMllXeDFaVHNnY0hKcGJXRnlhV3g1SUhWelpXWjFiQ0JtYjNJZ2MzZHBkR05vYVc1bklHOXVMbHh1SUNvZ1FHaHBaR1JsYmx4dUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXhwZEdWeVlXeFhjbUZ3Y0dWeVBGUWdaWGgwWlc1a2N5Qk1hWFJsY21Gc1ZIbHdaVDRnZTF4dUlDQWdJSFI1Y0dVNklGUTdYRzRnSUNBZ2RtRnNkV1U2SUV4cGRHVnlZV3hTWlhCeVBGUStPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQm9hV1JrWlc1Y2JpQXFJQ0JWZEdsc2FYUjVJR3hwWW5KaGNua2dabTl5SUdoaGJtUnNhVzVuSUd4cGRHVnlZV3dnZG1Gc2RXVnpMaUFxTDF4dVpYaHdiM0owSUc1aGJXVnpjR0ZqWlNCTWFYUmxjbUZzY3lCN1hHNGdJQ0FnTHlvcUlGTmxkSFJwYm1keklIVnpaV1FnZDJobGJpQm1iM0p0WVhSMGFXNW5JR3hwZEdWeVlXd2dkbUZzZFdWeklIUnZJSFJsZUhRdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdsdWRHVnlabUZqWlNCVWIxTjBjbWx1WjFObGRIUnBibWR6SUh0Y2JpQWdJQ0FnSUNBZ0x5b3FJRmRvWVhRZ1lTQnVkV3hzSUhkcGJHd2djbVZ1WkdWeUlHRnpMaUFxTDF4dUlDQWdJQ0FnSUNCdWRXeHNVbVZ3Y21WelpXNTBZWFJwYjI0NklITjBjbWx1Wnp0Y2JseHVJQ0FnSUNBZ0lDQXZLaW9nUkdGMFpTQm1iM0p0WVhRdUlDb3ZYRzRnSUNBZ0lDQWdJR1JoZEdWR2IzSnRZWFE2SUhOMGNtbHVaenRjYmx4dUlDQWdJQ0FnSUNBdktpb2dSR0YwWlMxMGFXMWxJR1p2Y20xaGRDNGdLaTljYmlBZ0lDQWdJQ0FnWkdGMFpWUnBiV1ZHYjNKdFlYUTZJSE4wY21sdVp6dGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dVMkZ1WlN3Z1JXNW5iR2x6YUMxaVlYTmxaQ0JrWldaaGRXeDBjeUJtYjNJZ1pHRjBaU0JtYjNKdFlYUnpMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQmpiMjV6ZENCRVJVWkJWVXhVWDFSUFgxTlVVa2xPUnpvZ1ZHOVRkSEpwYm1kVFpYUjBhVzVuY3lBOUlIdGNiaUFnSUNBZ0lDQWdiblZzYkZKbGNISmxjMlZ1ZEdGMGFXOXVPaUJjSWkxY0lpeGNibHh1SUNBZ0lDQWdJQ0JrWVhSbFJtOXliV0YwT2lCY0lrMU5UVTBnWkdRc0lIbDVlWGxjSWl4Y2JpQWdJQ0FnSUNBZ1pHRjBaVlJwYldWR2IzSnRZWFE2SUZ3aWFEcHRiU0JoSUMwZ1RVMU5UU0JrWkN3Z2VYbDVlVndpTEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVkbVZ5ZENCaGJpQmhjbUpwZEhKaGNua2dkbUZzZFdVZ2FXNTBieUJoSUhKbFlYTnZibUZpYkdVc0lFMWhjbXRrYjNkdUxXWnlhV1Z1Wkd4NUlITjBjbWx1WnlCcFppQndiM056YVdKc1pTNGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RHOVRkSEpwYm1jb1hHNGdJQ0FnSUNBZ0lHWnBaV3hrT2lCaGJua3NYRzRnSUNBZ0lDQWdJSE5sZEhScGJtYzZJRlJ2VTNSeWFXNW5VMlYwZEdsdVozTWdQU0JFUlVaQlZVeFVYMVJQWDFOVVVrbE9SeXhjYmlBZ0lDQWdJQ0FnY21WamRYSnphWFpsT2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlZjYmlBZ0lDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2QzSmhjSEJsWkNBOUlIZHlZWEJXWVd4MVpTaG1hV1ZzWkNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZDNKaGNIQmxaQ2tnY21WMGRYSnVJSE5sZEhScGJtY3ViblZzYkZKbGNISmxjMlZ1ZEdGMGFXOXVPMXh1WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvZDNKaGNIQmxaQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYm5Wc2JGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaWFIwYVc1bkxtNTFiR3hTWlhCeVpYTmxiblJoZEdsdmJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p6ZEhKcGJtZGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkM0poY0hCbFpDNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnVkVzFpWlhKY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ppYjI5c1pXRnVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRndpWENJZ0t5QjNjbUZ3Y0dWa0xuWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lteHBibXRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxaQzUyWVd4MVpTNXRZWEpyWkc5M2JpZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1aMWJtTjBhVzl1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVBHWjFibU4wYVc5dVBsd2lPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1GeWNtRjVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElISmxjM1ZzZENBOUlGd2lYQ0k3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxZM1Z5YzJsMlpTa2djbVZ6ZFd4MElDczlJRndpVzF3aU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBclBTQjNjbUZ3Y0dWa0xuWmhiSFZsTG0xaGNDZ29aaWtnUFQ0Z2RHOVRkSEpwYm1jb1ppd2djMlYwZEdsdVp5d2dkSEoxWlNrcExtcHZhVzRvWENJc0lGd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVmpkWEp6YVhabEtTQnlaWE4xYkhRZ0t6MGdYQ0pkWENJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdlltcGxZM1JjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJbnNnWENJZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVaVzUwY21sbGN5aDNjbUZ3Y0dWa0xuWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG0xaGNDZ29aU2tnUFQ0Z1pWc3dYU0FySUZ3aU9pQmNJaUFySUhSdlUzUnlhVzVuS0dWYk1WMHNJSE5sZEhScGJtY3NJSFJ5ZFdVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xtcHZhVzRvWENJc0lGd2lLU0FyWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGd2lJSDFjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2laR0YwWlZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpXNWtaWEpOYVc1cGJXRnNSR0YwWlNoM2NtRndjR1ZrTG5aaGJIVmxMQ0J6WlhSMGFXNW5MbVJoZEdWR2IzSnRZWFFzSUhObGRIUnBibWN1WkdGMFpWUnBiV1ZHYjNKdFlYUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SMWNtRjBhVzl1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGJtUmxjazFwYm1sdFlXeEVkWEpoZEdsdmJpaDNjbUZ3Y0dWa0xuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlhjbUZ3SUdFZ2JHbDBaWEpoYkNCMllXeDFaU0J6YnlCNWIzVWdZMkZ1SUhOM2FYUmphQ0J2YmlCcGRDQmxZWE5wYkhrdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUhkeVlYQldZV3gxWlNoMllXdzZJRXhwZEdWeVlXd3BPaUJYY21Gd2NHVmtUR2wwWlhKaGJDQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMDUxYkd3b2RtRnNLU2tnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0p1ZFd4c1hDSXNJSFpoYkhWbE9pQjJZV3dnZlR0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTk9kVzFpWlhJb2RtRnNLU2tnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXdnZG1Gc2RXVTZJSFpoYkNCOU8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBjMU4wY21sdVp5aDJZV3dwS1NCeVpYUjFjbTRnZXlCMGVYQmxPaUJjSW5OMGNtbHVaMXdpTENCMllXeDFaVG9nZG1Gc0lIMDdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6UW05dmJHVmhiaWgyWVd3cEtTQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltSnZiMnhsWVc1Y0lpd2dkbUZzZFdVNklIWmhiQ0I5TzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGMwUjFjbUYwYVc5dUtIWmhiQ2twSUhKbGRIVnliaUI3SUhSNWNHVTZJRndpWkhWeVlYUnBiMjVjSWl3Z2RtRnNkV1U2SUhaaGJDQjlPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzBSaGRHVW9kbUZzS1NrZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKa1lYUmxYQ0lzSUhaaGJIVmxPaUIyWVd3Z2ZUdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWE5CY25KaGVTaDJZV3dwS1NCeVpYUjFjbTRnZXlCMGVYQmxPaUJjSW1GeWNtRjVYQ0lzSUhaaGJIVmxPaUIyWVd3Z2ZUdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWE5NYVc1cktIWmhiQ2twSUhKbGRIVnliaUI3SUhSNWNHVTZJRndpYkdsdWExd2lMQ0IyWVd4MVpUb2dkbUZzSUgwN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbHpSblZ1WTNScGIyNG9kbUZzS1NrZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKbWRXNWpkR2x2Ymx3aUxDQjJZV3gxWlRvZ2RtRnNJSDA3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselQySnFaV04wS0haaGJDa3BJSEpsZEhWeWJpQjdJSFI1Y0dVNklGd2liMkpxWldOMFhDSXNJSFpoYkhWbE9pQjJZV3dnZlR0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJTWldOMWNuTnBkbVZzZVNCdFlYQWdZMjl0Y0d4bGVDQnZZbXBsWTNSeklHRjBJSFJvWlNCc1pXRjJaWE11SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJRzFoY0V4bFlYWmxjeWgyWVd3NklFeHBkR1Z5WVd3c0lHWjFibU02SUNoME9pQk1hWFJsY21Gc0tTQTlQaUJNYVhSbGNtRnNLVG9nVEdsMFpYSmhiQ0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMDlpYW1WamRDaDJZV3dwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2NtVnpkV3gwT2lCRVlYUmhUMkpxWldOMElEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQmJhMlY1TENCMllXeDFaVjBnYjJZZ1QySnFaV04wTG1WdWRISnBaWE1vZG1Gc0tTa2djbVZ6ZFd4MFcydGxlVjBnUFNCdFlYQk1aV0YyWlhNb2RtRnNkV1VzSUdaMWJtTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNocGMwRnljbUY1S0haaGJDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J5WlhOMWJIUTZJRXhwZEdWeVlXeGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnZG1Gc2RXVWdiMllnZG1Gc0tTQnlaWE4xYkhRdWNIVnphQ2h0WVhCTVpXRjJaWE1vZG1Gc2RXVXNJR1oxYm1NcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm5WdVl5aDJZV3dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTm9aV05ySUdsbUlIUjNieUJoY21KcGRISmhjbmtnYkdsMFpYSmhiSE1nWVhKbElHVnhkV0ZzTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJsY1hWaGJITW9abWx5YzNRNklFeHBkR1Z5WVd3Z2ZDQjFibVJsWm1sdVpXUXNJSE5sWTI5dVpEb2dUR2wwWlhKaGJDQjhJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5dGNHRnlaU2htYVhKemRDd2djMlZqYjI1a0tTQTlQU0F3TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGIyMXdZWEpsSUhSM2J5QmhjbUpwZEhKaGNua2dTbUYyWVZOamNtbHdkQ0IyWVd4MVpYTXVJRkJ5YjJSMVkyVnpJR0VnZEc5MFlXd2diM0prWlhKcGJtY2diM1psY2lCQlRsa2djRzl6YzJsaWJHVWdaR0YwWVdOdmNtVWdkbUZzZFdVdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdOdmJYQmhjbVVvWEc0Z0lDQWdJQ0FnSUhaaGJERTZJRXhwZEdWeVlXd2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUhaaGJESTZJRXhwZEdWeVlXd2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUd4cGJtdE9iM0p0WVd4cGVtVnlQem9nS0d4cGJtczZJSE4wY21sdVp5a2dQVDRnYzNSeWFXNW5YRzRnSUNBZ0tUb2diblZ0WW1WeUlIdGNiaUFnSUNBZ0lDQWdMeThnVW1WbVpYSmxibU5sSUdWeGRXRnNhWFI1SUMwZ2MyaHZjblFnWTJseVkzVnBkQzVjYmlBZ0lDQWdJQ0FnYVdZZ0tIWmhiREVnUFQwOUlIWmhiRElwSUhKbGRIVnliaUF3TzF4dVhHNGdJQ0FnSUNBZ0lDOHZJRWhoYm1Sc1pTQjFibVJsWm1sdVpXUXZiblZzYkhNZ1ptbHljM1F1WEc0Z0lDQWdJQ0FnSUdsbUlDaDJZV3d4SUQwOVBTQjFibVJsWm1sdVpXUXBJSFpoYkRFZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCcFppQW9kbUZzTWlBOVBUMGdkVzVrWldacGJtVmtLU0IyWVd3eUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkRFZ1BUMDlJRzUxYkd3Z0ppWWdkbUZzTWlBOVBUMGdiblZzYkNrZ2NtVjBkWEp1SURBN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIWmhiREVnUFQwOUlHNTFiR3dwSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2RtRnNNaUE5UFQwZ2JuVnNiQ2tnY21WMGRYSnVJREU3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdRU0J1YjI0dGJuVnNiQ0IyWVd4MVpTQnViM2NnZDJocFkyZ2dkMlVnWTJGdUlIZHlZWEFnSmlCamIyMXdZWEpsSUc5dUxseHVJQ0FnSUNBZ0lDQnNaWFFnZDNKaGNERWdQU0IzY21Gd1ZtRnNkV1VvZG1Gc01TazdYRzRnSUNBZ0lDQWdJR3hsZENCM2NtRndNaUE5SUhkeVlYQldZV3gxWlNoMllXd3lLVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9kM0poY0RFZ1BUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCM2NtRndNaUE5UFQwZ2RXNWtaV1pwYm1Wa0tTQnlaWFIxY200Z01EdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9kM0poY0RFZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJQzB4TzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoM2NtRndNaUE5UFQwZ2RXNWtaV1pwYm1Wa0tTQnlaWFIxY200Z01UdGNibHh1SUNBZ0lDQWdJQ0F2THlCVGFHOXlkQzFqYVhKamRXbDBJRzl1SUdScFptWmxjbVZ1ZENCMGVYQmxjeUJ2Y2lCdmJpQnlaV1psY21WdVkyVWdaWEYxWVd4cGRIa3VYRzRnSUNBZ0lDQWdJR2xtSUNoM2NtRndNUzUwZVhCbElDRTlJSGR5WVhBeUxuUjVjR1VwSUhKbGRIVnliaUIzY21Gd01TNTBlWEJsTG14dlkyRnNaVU52YlhCaGNtVW9kM0poY0RJdWRIbHdaU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaDNjbUZ3TVM1MllXeDFaU0E5UFQwZ2QzSmhjREl1ZG1Gc2RXVXBJSEpsZEhWeWJpQXdPMXh1WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvZDNKaGNERXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbk4wY21sdVoxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3TVM1MllXeDFaUzVzYjJOaGJHVkRiMjF3WVhKbEtIZHlZWEF5TG5aaGJIVmxJR0Z6SUhOMGNtbHVaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJuVnRZbVZ5WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSGR5WVhBeExuWmhiSFZsSUR3Z0tIZHlZWEF5TG5aaGJIVmxJR0Z6SUc1MWJXSmxjaWtwSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoM2NtRndNUzUyWVd4MVpTQTlQU0FvZDNKaGNESXVkbUZzZFdVZ1lYTWdiblZ0WW1WeUtTa2djbVYwZFhKdUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYm5Wc2JGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1KdmIyeGxZVzVjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kM0poY0RFdWRtRnNkV1VnUFQwZ2QzSmhjREl1ZG1Gc2RXVXBJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2NtVjBkWEp1SUhkeVlYQXhMblpoYkhWbElEOGdNU0E2SUMweE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXhwYm10Y0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYkdsdWF6RWdQU0IzY21Gd01TNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdiR2x1YXpJZ1BTQjNjbUZ3TWk1MllXeDFaU0JoY3lCTWFXNXJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCdWIzSnRZV3hwZW1VZ1BTQnNhVzVyVG05eWJXRnNhWHBsY2lBL1B5QW9LSGc2SUhOMGNtbHVaeWtnUFQ0Z2VDazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCWFpTQmpZVzRuZENCamIyMXdZWEpsSUdKNUlHWnBiR1VnYm1GdFpTQnZjaUJrYVhOd2JHRjVMQ0J6YVc1alpTQjBhR0YwSUhkdmRXeGtJR0p5WldGcklHeHBibXNnWlhGMVlXeHBkSGt1SUVOdmJYQmhjbVVnWW5rZ2NHRjBhQzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2NHRjBhRU52YlhCaGNtVWdQU0J1YjNKdFlXeHBlbVVvYkdsdWF6RXVjR0YwYUNrdWJHOWpZV3hsUTI5dGNHRnlaU2h1YjNKdFlXeHBlbVVvYkdsdWF6SXVjR0YwYUNrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3WVhSb1EyOXRjR0Z5WlNBaFBTQXdLU0J5WlhSMWNtNGdjR0YwYUVOdmJYQmhjbVU3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlVhR1Z1SUdOdmJYQmhjbVVnWW5rZ2RIbHdaUzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2RIbHdaVU52YlhCaGNtVWdQU0JzYVc1ck1TNTBlWEJsTG14dlkyRnNaVU52YlhCaGNtVW9iR2x1YXpJdWRIbHdaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1ZEYjIxd1lYSmxJQ0U5SURBcElISmxkSFZ5YmlCMGVYQmxRMjl0Y0dGeVpUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUZSb1pXNGdZMjl0Y0dGeVpTQmllU0J6ZFdKd1lYUm9JR1Y0YVhOMFpXNWpaUzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHbHVhekV1YzNWaWNHRjBhQ0FtSmlBaGJHbHVhekl1YzNWaWNHRjBhQ2tnY21WMGRYSnVJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnNhVzVyTVM1emRXSndZWFJvSUNZbUlHeHBibXN5TG5OMVluQmhkR2dwSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV3hwYm1zeExuTjFZbkJoZEdnZ0ppWWdJV3hwYm1zeUxuTjFZbkJoZEdncElISmxkSFZ5YmlBd08xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnVTJsdVkyVWdZbTkwYUNCb1lYWmxJR0VnYzNWaWNHRjBhQ3dnWTI5dGNHRnlaU0JpZVNCemRXSndZWFJvTGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFvYkdsdWF6RXVjM1ZpY0dGMGFDQS9QeUJjSWx3aUtTNXNiMk5oYkdWRGIyMXdZWEpsS0d4cGJtc3lMbk4xWW5CaGRHZ2dQejhnWENKY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpWkdGMFpWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3TVM1MllXeDFaU0E4SUNoM2NtRndNaTUyWVd4MVpTQmhjeUJFWVhSbFZHbHRaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QXRNVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklIZHlZWEF4TG5aaGJIVmxMbVZ4ZFdGc2N5aDNjbUZ3TWk1MllXeDFaU0JoY3lCRVlYUmxWR2x0WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUF3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKa2RYSmhkR2x2Ymx3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndNUzUyWVd4MVpTQThJQ2gzY21Gd01pNTJZV3gxWlNCaGN5QkVkWEpoZEdsdmJpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlBdE1WeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUhkeVlYQXhMblpoYkhWbExtVnhkV0ZzY3loM2NtRndNaTUyWVd4MVpTQmhjeUJFZFhKaGRHbHZiaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QXdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0poY25KaGVWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCbU1TQTlJSGR5WVhBeExuWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQm1NaUE5SUhkeVlYQXlMblpoYkhWbElHRnpJR0Z1ZVZ0ZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ01Ec2dhVzVrWlhnZ1BDQk5ZWFJvTG0xcGJpaG1NUzVzWlc1bmRHZ3NJR1l5TG14bGJtZDBhQ2s3SUdsdVpHVjRLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdOdmJYQWdQU0JqYjIxd1lYSmxLR1l4VzJsdVpHVjRYU3dnWmpKYmFXNWtaWGhkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOdmJYQWdJVDBnTUNrZ2NtVjBkWEp1SUdOdmJYQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1NUzVzWlc1bmRHZ2dMU0JtTWk1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWIySnFaV04wWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJRzh4SUQwZ2QzSmhjREV1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUc4eUlEMGdkM0poY0RJdWRtRnNkV1VnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYXpFZ1BTQkJjbkpoZVM1bWNtOXRLRTlpYW1WamRDNXJaWGx6S0c4eEtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdzeUlEMGdRWEp5WVhrdVpuSnZiU2hQWW1wbFkzUXVhMlY1Y3lodk1pa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3N4TG5OdmNuUW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JyTWk1emIzSjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhMlY1UTI5dGNHRnlaU0E5SUdOdmJYQmhjbVVvYXpFc0lHc3lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2EyVjVRMjl0Y0dGeVpTQWhQU0F3S1NCeVpYUjFjbTRnYTJWNVEyOXRjR0Z5WlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHdGxlU0J2WmlCck1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdZMjl0Y0NBOUlHTnZiWEJoY21Vb2J6RmJhMlY1WFN3Z2J6SmJhMlY1WFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamIyMXdJQ0U5SURBcElISmxkSFZ5YmlCamIyMXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUF3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltWjFibU4wYVc5dVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEQTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUm1sdVpDQjBhR1VnWTI5eWNtVnpjRzl1WkdsdVp5QmtZWFJoWTI5eVpTQjBlWEJsSUdadmNpQmhiaUJoY21KcGRISmhjbmtnZG1Gc2RXVXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlIUjVjR1ZQWmloMllXdzZJR0Z1ZVNrNklFeHBkR1Z5WVd4VWVYQmxJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhkeVlYQldZV3gxWlNoMllXd3BQeTUwZVhCbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkVaWFJsY20xcGJtVWdhV1lnZEdobElHZHBkbVZ1SUhaaGJIVmxJR2x6SUZ3aWRISjFkR2g1WENJZ0tHa3VaUzRzSUdseklHNXZiaTF1ZFd4c0lHRnVaQ0JvWVhNZ1pHRjBZU0JwYmlCcGRDa3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpWSEoxZEdoNUtHWnBaV3hrT2lCTWFYUmxjbUZzS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0IzY21Gd2NHVmtJRDBnZDNKaGNGWmhiSFZsS0dacFpXeGtLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjNjbUZ3Y0dWa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc1Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoM2NtRndjR1ZrTG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdWRXMWlaWEpjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxaQzUyWVd4MVpTQWhQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luTjBjbWx1WjF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1ZrTG5aaGJIVmxMbXhsYm1kMGFDQStJREE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVltOXZiR1ZoYmx3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1ZrTG5aaGJIVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW14cGJtdGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdJU0YzY21Gd2NHVmtMblpoYkhWbExuQmhkR2c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpHRjBaVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIzY21Gd2NHVmtMblpoYkhWbExuUnZUV2xzYkdsektDa2dJVDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmtkWEpoZEdsdmJsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3Y0dWa0xuWmhiSFZsTG1GektGd2ljMlZqYjI1a2Mxd2lLU0FoUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTlpYW1WamRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdWEyVjVjeWgzY21Gd2NHVmtMblpoYkhWbEtTNXNaVzVuZEdnZ1BpQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1GeWNtRjVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGR5WVhCd1pXUXVkbUZzZFdVdWJHVnVaM1JvSUQ0Z01EdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p1ZFd4c1hDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltWjFibU4wYVc5dVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1JHVmxjQ0JqYjNCNUlHRWdabWxsYkdRdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdSbFpYQkRiM0I1UEZRZ1pYaDBaVzVrY3lCTWFYUmxjbUZzUGlobWFXVnNaRG9nVkNrNklGUWdlMXh1SUNBZ0lDQWdJQ0JwWmlBb1ptbGxiR1FnUFQwOUlHNTFiR3dnZkh3Z1ptbGxiR1FnUFQwOUlIVnVaR1ZtYVc1bFpDa2djbVYwZFhKdUlHWnBaV3hrTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hNYVhSbGNtRnNjeTVwYzBGeWNtRjVLR1pwWld4a0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoYlhTQmhjeUJNYVhSbGNtRnNXMTBwTG1OdmJtTmhkQ2htYVdWc1pDNXRZWEFvS0hZcElEMCtJR1JsWlhCRGIzQjVLSFlwS1NrZ1lYTWdWRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoTWFYUmxjbUZzY3k1cGMwOWlhbVZqZENobWFXVnNaQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCeVpYTjFiSFE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRXhwZEdWeVlXdytJRDBnZTMwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JiYTJWNUxDQjJZV3gxWlYwZ2IyWWdUMkpxWldOMExtVnVkSEpwWlhNb1ptbGxiR1FwS1NCeVpYTjFiSFJiYTJWNVhTQTlJR1JsWlhCRGIzQjVLSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUWdZWE1nVkR0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1hV1ZzWkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkVaWFJsY20xcGJtVWdhV1lnZEdobElIWmhiSFZsSUdseklHRWdjM1J5YVc1bkxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMxTjBjbWx1WnloMllXdzZJR0Z1ZVNrNklIWmhiQ0JwY3lCemRISnBibWNnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSFpoYkNBOVBTQmNJbk4wY21sdVoxd2lPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJFWlhSbGNtMXBibVVnYVdZZ2RHaGxJSFpoYkhWbElHbHpJR0VnYm5WdFltVnlMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMDUxYldKbGNpaDJZV3c2SUdGdWVTazZJSFpoYkNCcGN5QnVkVzFpWlhJZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhaaGJDQTlQU0JjSW01MWJXSmxjbHdpTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRVpYUmxjbTFwYm1VZ2FXWWdkR2hsSUhaaGJIVmxJR2x6SUdFZ1pHRjBaUzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5FWVhSbEtIWmhiRG9nWVc1NUtUb2dkbUZzSUdseklFUmhkR1ZVYVcxbElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiQ0JwYm5OMFlXNWpaVzltSUVSaGRHVlVhVzFsTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRVpYUmxjbTFwYm1VZ2FXWWdkR2hsSUhaaGJIVmxJR2x6SUdFZ1pIVnlZWFJwYjI0dUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdselJIVnlZWFJwYjI0b2RtRnNPaUJoYm5rcE9pQjJZV3dnYVhNZ1JIVnlZWFJwYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNJR2x1YzNSaGJtTmxiMllnUkhWeVlYUnBiMjQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlNCcFppQjBhR1VnZG1Gc2RXVWdhWE1nYm5Wc2JDQnZjaUIxYm1SbFptbHVaV1F1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJR2x6VG5Wc2JDaDJZV3c2SUdGdWVTazZJSFpoYkNCcGN5QnVkV3hzSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiQ0E5UFQwZ2JuVnNiQ0I4ZkNCMllXd2dQVDA5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1JHVjBaWEp0YVc1bElHbG1JSFJvWlNCMllXeDFaU0JwY3lCaGJpQmhjbkpoZVM0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOQmNuSmhlU2gyWVd3NklHRnVlU2s2SUhaaGJDQnBjeUJoYm5sYlhTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQkJjbkpoZVM1cGMwRnljbUY1S0haaGJDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRVJsZEdWeWJXbHVaU0JwWmlCMGFHVWdkbUZzZFdVZ2FYTWdZU0JpYjI5c1pXRnVMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMEp2YjJ4bFlXNG9kbUZzT2lCaGJua3BPaUIyWVd3Z2FYTWdZbTl2YkdWaGJpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ2RtRnNJRDA5UFNCY0ltSnZiMnhsWVc1Y0lqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxJR2xtSUhSb1pTQjJZV3gxWlNCcGN5QmhJR3hwYm1zdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdselRHbHVheWgyWVd3NklHRnVlU2s2SUhaaGJDQnBjeUJNYVc1cklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiQ0JwYm5OMFlXNWpaVzltSUV4cGJtczdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRU5vWldOcmN5QnBaaUIwYUdVZ1oybDJaVzRnZG1Gc2RXVWdhWE1nWVc0Z2IySnFaV04wSUNoaGJtUWdibTkwSUdGdWVTQnZkR2hsY2lCa1lYUmhZMjl5WlMxeVpXTnZaMjVwZW1Wa0lHOWlhbVZqZEMxc2FXdGxJSFI1Y0dVcExpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwOWlhbVZqZENoMllXdzZJR0Z1ZVNrNklIWmhiQ0JwY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJDQWhQVDBnZFc1a1pXWnBibVZrSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbGIyWWdkbUZzSUQwOUlGd2liMkpxWldOMFhDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDRnBjMEZ5Y21GNUtIWmhiQ2tnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0ZwYzBSMWNtRjBhVzl1S0haaGJDa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDRnBjMFJoZEdVb2RtRnNLU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJV2x6VEdsdWF5aDJZV3dwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FoYVhOT2RXeHNLSFpoYkNsY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxjeUJwWmlCMGFHVWdaMmwyWlc0Z2RtRnNkV1VnYVhNZ1lTQnFZWFpoYzJOeWFYQjBJR1oxYm1OMGFXOXVMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMFoxYm1OMGFXOXVLSFpoYkRvZ1lXNTVLVG9nZG1Gc0lHbHpJRVoxYm1OMGFXOXVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQjJZV3dnUFQwZ1hDSm1kVzVqZEdsdmJsd2lPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRUVnWjNKdmRYQnBibWNnYjI0Z1lTQjBlWEJsSUhkb2FXTm9JSE4xY0hCdmNuUnpJSEpsWTNWeWMybDJaV3g1TFc1bGMzUmxaQ0JuY205MWNITXVYRzRnS2lCQVozSnZkWEFnUTI5dGJXOXVJRlI1Y0dWelhHNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFZHliM1Z3Uld4bGJXVnVkRHhVUGlBOUlIc2dhMlY1T2lCTWFYUmxjbUZzT3lCeWIzZHpPaUJIY205MWNHbHVaenhVUGlCOU8xeHVMeW9xWEc0Z0tpQkJJR2R5YjNWd2FXNW5MQ0IzYUdsamFDQmpZVzRnWW1VZ1pXbDBhR1Z5T2x4dUlDb2dMU0JoYmlCaGNuSmhlU0J2WmlCbGJHVnRaVzUwY3lCdlppQjBlWEJsSUdCVVlDd2diM0pjYmlBcUlDMGdZVzRnWVhKeVlYa2diMllnZTBCc2FXNXJJRWR5YjNWd1pXeGxiV1Z1ZEgxelhHNGdLbHh1SUNvZ1FHZHliM1Z3SUVOdmJXMXZiaUJVZVhCbGMxeHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQkhjbTkxY0dsdVp6eFVQaUE5SUZSYlhTQjhJRWR5YjNWd1JXeGxiV1Z1ZER4VVBsdGRPMXh1THlvcVhHNGdLaUJBYUdsa1pHVnVYRzRnS2k5Y2JtVjRjRzl5ZENCdVlXMWxjM0JoWTJVZ1IzSnZkWEJwYm1keklIdGNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxjeUJwWmlCMGFHVWdaMmwyWlc0Z1ozSnZkWEFnWlc1MGNua2dhWE1nWVNCemRHRnVaR0ZzYjI1bElIWmhiSFZsTENCdmNpQmhJR2R5YjNWd2FXNW5JRzltSUhOMVlpMWxiblJ5YVdWekxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwVnNaVzFsYm5SSGNtOTFjRHhVUGlobGJuUnllVG9nWVc1NUtUb2daVzUwY25rZ2FYTWdSM0p2ZFhCRmJHVnRaVzUwUEZRK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFeHBkR1Z5WVd4ekxtbHpUMkpxWldOMEtHVnVkSEo1S1NBbUppQlBZbXBsWTNRdWEyVjVjeWhsYm5SeWVTa3ViR1Z1WjNSb0lEMDlJRElnSmlZZ1hDSnJaWGxjSWlCcGJpQmxiblJ5ZVNBbUppQmNJbkp2ZDNOY0lpQnBiaUJsYm5SeWVUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxjeUJwWmlCMGFHVWdaMmwyWlc0Z1lYSnlZWGtnYVhNZ1lTQm5jbTkxY0dsdVp5QmhjbkpoZVM0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOSGNtOTFjR2x1Wnp4VVBpaGxiblJ5ZVRvZ1IzSnZkWEJwYm1jOFZENHBPaUJsYm5SeWVTQnBjeUJIY205MWNFVnNaVzFsYm5ROFZENWJYU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdWc1pXMWxiblFnYjJZZ1pXNTBjbmtwSUdsbUlDZ2hhWE5GYkdWdFpXNTBSM0p2ZFhBb1pXeGxiV1Z1ZENrcElISmxkSFZ5YmlCbVlXeHpaVHRjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxjeUJwWmlCMGFHVWdaMmwyWlc0Z1lYSnlZWGtnYVhNZ1lTQnNaV0ZtSUdGdVpDQm9ZWE1nYm04Z2MzVmlaM0p2ZFhCcGJtZHpMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMHhsWVdZOFZENG9aVzUwY25rNklFZHliM1Z3YVc1blBGUStLVG9nWlc1MGNua2dhWE1nVkZ0ZElIdGNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdaV3hsYldWdWRDQnZaaUJsYm5SeWVTa2dhV1lnS0dselJXeGxiV1Z1ZEVkeWIzVndLR1ZzWlcxbGJuUXBLU0J5WlhSMWNtNGdabUZzYzJVN1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOdmRXNTBJSFJvWlNCMGIzUmhiQ0J1ZFcxaVpYSWdiMllnWld4bGJXVnVkSE1nYVc0Z1lTQnlaV04xY25OcGRtVWdaM0p2ZFhCcGJtY3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHTnZkVzUwUEZRK0tHVnNaVzFsYm5Sek9pQkhjbTkxY0dsdVp6eFVQaUI4SUVkeWIzVndSV3hsYldWdWREeFVQaWs2SUc1MWJXSmxjaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMFZzWlcxbGJuUkhjbTkxY0NobGJHVnRaVzUwY3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJqYjNWdWRDaGxiR1Z0Wlc1MGN5NXliM2R6S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaHBjMGR5YjNWd2FXNW5LR1ZzWlcxbGJuUnpLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhKbGMzVnNkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0J6ZFdKbmNtOTFjQ0J2WmlCbGJHVnRaVzUwY3lrZ2NtVnpkV3gwSUNzOUlHTnZkVzUwS0hOMVltZHliM1Z3TG5KdmQzTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwY3k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1VtVmpkWEp6YVhabGJIa2djMnhwWTJVZ1lTQm5jbTkxY0dsdVp5d2djSEpsYzJWeWRtbHVaeUIwYUdVZ1ozSnZkWEFnYzNSeWRXTjBkWEpsSUhSb1lYUWdZMjl1ZEdGcGJuTWdaV3hsYldWdWRITWdXM04wWVhKMExpNHVaVzVrS1M0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYzJ4cFkyVThWRDRvWld4bGJXVnVkSE02SUVkeWIzVndhVzVuUEZRK0xDQnpkR0Z5ZERvZ2JuVnRZbVZ5TENCbGJtUTZJRzUxYldKbGNpazZJRWR5YjNWd2FXNW5QRlErSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1Z1WkNBOFBTQnpkR0Z5ZENrZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOTVpXRm1LR1ZzWlcxbGJuUnpLU2tnY21WMGRYSnVJR1ZzWlcxbGJuUnpMbk5zYVdObEtITjBZWEowTENCbGJtUXBPMXh1WEc0Z0lDQWdJQ0FnSUM4dklFWnBibVFnZEdobElHWnBjbk4wSUdkeWIzVndJSFJvWVhRZ1kyOXVkR0ZwYm5NZ2FXNWtaWGdnWUhOMFlYSjBZQzVjYmlBZ0lDQWdJQ0FnYkdWMElHbHVaR1Y0SUQwZ01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhObFpXNGdQU0F3TzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvYVc1a1pYZ2dQQ0JsYkdWdFpXNTBjeTVzWlc1bmRHZ2dKaVlnYzJWbGJpQXJJR052ZFc1MEtHVnNaVzFsYm5SelcybHVaR1Y0WFNrZ1BEMGdjM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObFpXNGdLejBnWTI5MWJuUW9aV3hsYldWdWRITmJhVzVrWlhoZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRLeXM3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQXZMeUJ6ZEdGeWRDQjNZWE1nWjNKbFlYUmxjaUIwYUdGdUlIUm9aU0JsYm5ScGNtVWdiR1Z1WjNSb0lHOW1JSFJvWlNCbmNtOTFjR2x1WjNNdVhHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm1SbGVDQStQU0JsYkdWdFpXNTBjeTVzWlc1bmRHZ3BJSEpsZEhWeWJpQmJYVHRjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WlhOMWJIUTZJSHNnYTJWNU9pQk1hWFJsY21Gc095QnliM2R6T2lCSGNtOTFjR2x1Wnp4VVBpQjlXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHbHVaR1Y0SUR3Z1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUNZbUlITmxaVzRnUENCbGJtUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdkeWIzVndJRDBnWld4bGJXVnVkSE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWjNKdmRYQlRhWHBsSUQwZ1kyOTFiblFvWjNKdmRYQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWjNKdmRYQlRkR0Z5ZENBOUlFMWhkR2d1YldGNEtITmxaVzRzSUhOMFlYSjBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdkeWIzVndSVzVrSUQwZ1RXRjBhQzV0YVc0b1ozSnZkWEJUYVhwbElDc2djMlZsYml3Z1pXNWtLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVUb2daM0p2ZFhBdWEyVjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEp2ZDNNNklITnNhV05sS0dkeWIzVndMbkp2ZDNNc0lHZHliM1Z3VTNSaGNuUWdMU0J6WldWdUxDQm5jbTkxY0VWdVpDQXRJSE5sWlc0cExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhObFpXNGdLejBnWjNKdmRYQlRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhnckt6dGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVmVnh1SWl3Z0lpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCaGNHbGNiaUFxTDF4dUx5b3FYRzRnS2lBZ1JuVnVZM1JwYjI1aGJDQnlaWFIxY200Z2RIbHdaU0JtYjNJZ1pYSnliM0lnYUdGdVpHeHBibWN1WEc0Z0tpQkFhR2xrWkdWdVhHNGdLaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRk4xWTJObGMzTThWQ3dnUlQ0Z2UxeHVJQ0FnSUhCMVlteHBZeUJ6ZFdOalpYTnpablZzT2lCMGNuVmxPMXh1WEc0Z0lDQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSEIxWW14cFl5QjJZV3gxWlRvZ1ZDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTjFZMk5sYzNObWRXd2dQU0IwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJ0WVhBOFZUNG9aam9nS0dFNklGUXBJRDArSUZVcE9pQlNaWE4xYkhROFZTd2dSVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lGTjFZMk5sYzNNb1ppaDBhR2x6TG5aaGJIVmxLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHWnNZWFJOWVhBOFZUNG9aam9nS0dFNklGUXBJRDArSUZKbGMzVnNkRHhWTENCRlBpazZJRkpsYzNWc2REeFZMQ0JGUGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbUtIUm9hWE11ZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCdFlYQkZjbkk4VlQ0b1pqb2dLR1U2SUVVcElEMCtJRlVwT2lCU1pYTjFiSFE4VkN3Z1ZUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3lCaGN5QmhibmtnWVhNZ1VtVnpkV3gwUEZRc0lGVStPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaWFXMWhjRHhVTWl3Z1JUSStLSE4xWTJNNklDaGhPaUJVS1NBOVBpQlVNaXdnWDJaaGFXdzZJQ2hpT2lCRktTQTlQaUJGTWlrNklGSmxjM1ZzZER4VU1pd2dSVEkrSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViV0Z3S0hOMVkyTXBJR0Z6SUdGdWVUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYjNKRmJITmxLRjkyWVd4MVpUb2dWQ2s2SUZRZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTUyWVd4MVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nWTJGemREeFZQaWdwT2lCU1pYTjFiSFE4VlN3Z1JUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3lCaGN5Qmhibms3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHOXlSV3h6WlZSb2NtOTNLRjl0WlhOellXZGxQem9nS0dVNklFVXBJRDArSUhOMGNtbHVaeWs2SUZRZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTUyWVd4MVpUdGNiaUFnSUNCOVhHNTlYRzVjYmk4cUtpQkdkVzVqZEdsdmJtRnNJSEpsZEhWeWJpQjBlWEJsSUdadmNpQmxjbkp2Y2lCb1lXNWtiR2x1Wnk1Y2JpQXFJRUJvYVdSa1pXNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoYVd4MWNtVThWQ3dnUlQ0Z2UxeHVJQ0FnSUhCMVlteHBZeUJ6ZFdOalpYTnpablZzT2lCbVlXeHpaVHRjYmx4dUlDQWdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWh3ZFdKc2FXTWdaWEp5YjNJNklFVXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkV05qWlhOelpuVnNJRDBnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUcxaGNEeFZQaWhmWmpvZ0tHRTZJRlFwSUQwK0lGVXBPaUJTWlhOMWJIUThWU3dnUlQ0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeUJoY3lCaGJua2dZWE1nUm1GcGJIVnlaVHhWTENCRlBqdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nWm14aGRFMWhjRHhWUGloZlpqb2dLR0U2SUZRcElEMCtJRkpsYzNWc2REeFZMQ0JGUGlrNklGSmxjM1ZzZER4VkxDQkZQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdseklHRnpJR0Z1ZVNCaGN5QkdZV2xzZFhKbFBGVXNJRVUrTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnRZWEJGY25JOFZUNG9aam9nS0dVNklFVXBJRDArSUZVcE9pQlNaWE4xYkhROFZDd2dWVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFWmhhV3gxY21Vb1ppaDBhR2x6TG1WeWNtOXlLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHSnBiV0Z3UEZReUxDQkZNajRvWDNOMVkyTTZJQ2hoT2lCVUtTQTlQaUJVTWl3Z1ptRnBiRG9nS0dJNklFVXBJRDArSUVVeUtUb2dVbVZ6ZFd4MFBGUXlMQ0JGTWo0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV0WVhCRmNuSW9abUZwYkNrZ1lYTWdZVzU1TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnZja1ZzYzJVb2RtRnNkV1U2SUZRcE9pQlVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJqWVhOMFBGVStLQ2s2SUZKbGMzVnNkRHhWTENCRlBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6SUdGeklHRnVlVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ2IzSkZiSE5sVkdoeWIzY29iV1Z6YzJGblpUODZJQ2hsT2lCRktTQTlQaUJ6ZEhKcGJtY3BPaUJVSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzFsYzNOaFoyVXBJSFJvY205M0lHNWxkeUJGY25KdmNpaHRaWE56WVdkbEtIUm9hWE11WlhKeWIzSXBLVHRjYmlBZ0lDQWdJQ0FnWld4elpTQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSmNJaUFySUhSb2FYTXVaWEp5YjNJcE8xeHVJQ0FnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJCSUcxdmJtRmthV01nY21WemRXeDBJSFI1Y0dVZ2QyaHBZMmdnYzNSdmNtVnpJR1ZwZEdobGNpQmNJbk4xWTJObGMzTmNJaUJ2Y2lCY0ltWmhhV3gxY21WY0lpNGdRVzRnWVd4MFpYSnVZWFJwZG1VZ2FHRnVaR3hwYm1jZ1pYaGpaWEIwYVc5dVlXd2dZbVZvWVhacGIzSmNiaUFxSUdKNUlIVnphVzVuSUhSb1pTQnlaWFIxY200Z2RtRnNkV1VnYVc1emRHVmhaQ0J2WmlCaGJpQmxlR05sY0hScGIyNHVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRkpsYzNWc2REeFVMQ0JGUGlBOUlGTjFZMk5sYzNNOFZDd2dSVDRnZkNCR1lXbHNkWEpsUEZRc0lFVStPMXh1WEc0dktpcGNiaUFxSUVCb2FXUmtaVzVjYmlBcUlFMXZibUZrYVdNZ0oxSmxjM1ZzZENjZ2RIbHdaU0IzYUdsamFDQmxibU5oY0hOMWJHRjBaWE1nZDJobGRHaGxjaUJoSUhCeWIyTmxaSFZ5WlNCemRXTmpaV1ZrWldRZ2IzSWdabUZwYkdWa0xDQmhjeUIzWld4c0lHRnpJR2wwSjNNZ2NtVjBkWEp1SUhaaGJIVmxMbHh1SUNvdlhHNWxlSEJ2Y25RZ2JtRnRaWE53WVdObElGSmxjM1ZzZENCN1hHNGdJQ0FnTHlvcUlFTnZibk4wY25WamRDQmhJRzVsZHlCemRXTmpaWE56SUhKbGMzVnNkQ0IzY21Gd2NHbHVaeUIwYUdVZ1oybDJaVzRnZG1Gc2RXVXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlITjFZMk5sYzNNOFZDd2dSVDRvZG1Gc2RXVTZJRlFwT2lCU1pYTjFiSFE4VkN3Z1JUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVYzSUZOMVkyTmxjM01vZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJEYjI1emRISjFZM1FnWVNCdVpYY2dabUZwYkhWeVpTQjJZV3gxWlNCM2NtRndjR2x1WnlCMGFHVWdaMmwyWlc0Z1pYSnliM0l1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJR1poYVd4MWNtVThWQ3dnUlQ0b1pYSnliM0k2SUVVcE9pQlNaWE4xYkhROFZDd2dSVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFWmhhV3gxY21Vb1pYSnliM0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCS2IybHVJSFIzYnlCeVpYTjFiSFJ6SUhkcGRHZ2dZU0JpYVMxbWRXNWpkR2x2YmlCaGJtUWdjbVYwZFhKdUlHRWdibVYzSUhKbGMzVnNkQzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdabXhoZEUxaGNESThWREVzSUZReUxDQlBMQ0JGUGloY2JpQWdJQ0FnSUNBZ1ptbHljM1E2SUZKbGMzVnNkRHhVTVN3Z1JUNHNYRzRnSUNBZ0lDQWdJSE5sWTI5dVpEb2dVbVZ6ZFd4MFBGUXlMQ0JGUGl4Y2JpQWdJQ0FnSUNBZ1pqb2dLR0U2SUZReExDQmlPaUJVTWlrZ1BUNGdVbVZ6ZFd4MFBFOHNJRVUrWEc0Z0lDQWdLVG9nVW1WemRXeDBQRThzSUVVK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0dacGNuTjBMbk4xWTJObGMzTm1kV3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoelpXTnZibVF1YzNWalkyVnpjMloxYkNrZ2NtVjBkWEp1SUdZb1ptbHljM1F1ZG1Gc2RXVXNJSE5sWTI5dVpDNTJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElISmxkSFZ5YmlCbVlXbHNkWEpsS0hObFkyOXVaQzVsY25KdmNpazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1GcGJIVnlaU2htYVhKemRDNWxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dTbTlwYmlCMGQyOGdjbVZ6ZFd4MGN5QjNhWFJvSUdFZ1lta3RablZ1WTNScGIyNGdZVzVrSUhKbGRIVnliaUJoSUc1bGR5QnlaWE4xYkhRdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUcxaGNESThWREVzSUZReUxDQlBMQ0JGUGloY2JpQWdJQ0FnSUNBZ1ptbHljM1E2SUZKbGMzVnNkRHhVTVN3Z1JUNHNYRzRnSUNBZ0lDQWdJSE5sWTI5dVpEb2dVbVZ6ZFd4MFBGUXlMQ0JGUGl4Y2JpQWdJQ0FnSUNBZ1pqb2dLR0U2SUZReExDQmlPaUJVTWlrZ1BUNGdUMXh1SUNBZ0lDazZJRkpsYzNWc2REeFBMQ0JGUGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWJHRjBUV0Z3TWlobWFYSnpkQ3dnYzJWamIyNWtMQ0FvWVN3Z1lpa2dQVDRnYzNWalkyVnpjeWhtS0dFc0lHSXBLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUUxaGNDQmhJR1poYVd4aFlteGxJR1oxYm1OMGFXOXVJRzkyWlhJZ1lXeHNJR1ZzWlcxbGJuUnpJR2x1SUhSb1pTQnNhWE4wTENCeVpYUjFjbTVwYm1jZ1pXRnliSGtnYjI0Z1ptRnBiSFZ5WlM0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYldGd1FXeHNQRlFzSUU4c0lFVStLR2x1Y0hWME9pQkpkR1Z5WVdKc1pUeFVQaXdnWm5WdVl6b2dLR2x1Y0hWME9pQlVLU0E5UGlCU1pYTjFiSFE4VHl3Z1JUNHBPaUJTWlhOMWJIUThUMXRkTENCRlBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElISmxjM1ZzZERvZ1QxdGRJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdaV3hsYldWdWRDQnZaaUJwYm5CMWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYjNWMGNIVjBJRDBnWm5WdVl5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hiM1YwY0hWMExuTjFZMk5sYzNObWRXd3BJSEpsZEhWeWJpQnZkWFJ3ZFhRdVkyRnpkQ2dwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNodmRYUndkWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZKbGMzVnNkQzV6ZFdOalpYTnpLSEpsYzNWc2RDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRU5oZEdOb0lHRnVlU0JsY25KdmNuTWdhVzRnWVNCallXeHNMQ0J5WlhSMWNtNXBibWNnWVNCeVpYTjFiSFFnYVc1emRHVmhaQzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdkSEo1YVc1blBGUStLR05oYkd3NklDZ3BJRDArSUZRcE9pQlNaWE4xYkhROFZDd2dSWEp5YjNJK0lIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlNaWE4xYkhRdWMzVmpZMlZ6Y3loallXeHNLQ2twTzF4dUlDQWdJQ0FnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGSmxjM1ZzZEM1bVlXbHNkWEpsS0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGIyNTJaWEowSUdFZ2NISnZiV2x6WlNCM2FHbGphQ0J0WVhrZ2RHaHliM2NnYVc1MGJ5QmhJSEJ5YjIxcGMyVWdkMmhwWTJnZ2NtVjBkWEp1Y3lCaElISmxjM1ZzZENCdlppQjBhR1VnYzNWalkyVnpjMloxYkNCMllXeDFaU0J2Y2lCaGJpQmxjbkp2Y2k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdZWE41Ym1NOFZENG9jSEp2YldselpUb2dVSEp2YldselpUeFVQaWs2SUZCeWIyMXBjMlU4VW1WemRXeDBQRlFzSUVWeWNtOXlQajRnZTF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZKbGMzVnNkQzV6ZFdOalpYTnpLR0YzWVdsMElIQnliMjFwYzJVcE8xeHVJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRkpsYzNWc2RDNW1ZV2xzZFhKbEtHVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnZXlCU1pYTjFiSFFnZlNCbWNtOXRJRndpWVhCcEwzSmxjM1ZzZEZ3aU8xeHVYRzR2S2lvZ1UzUmhkR2xqSUhObGRDQmxiR1Z0Wlc1MElIZG9hV05vSUcxaGRHTm9aWE1nWlhabGNubDBhR2x1Wnk0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUVWMlpYSjVkR2hwYm1jZ1BTQjdJSFI1Y0dVNklGd2laWFpsY25sMGFHbHVaMXdpSUgwN1hHNHZLaW9nVTNSaGRHbGpJSE5sZENCbGJHVnRaVzUwSUhkb2FXTm9JRzFoZEdOb1pYTWdibTkwYUdsdVp5NGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFNXZkR2hwYm1jZ1BTQjdJSFI1Y0dVNklGd2libTkwYUdsdVoxd2lJSDA3WEc0dktpb2dVMlYwSUhkb2FXTm9JRzFoZEdOb1pYTWdkR2hsSUc1bFoyRjBhVzl1SUc5bUlHRWdjMlYwTGlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVG1WbllYUmxaRHhVUGlBOUlIc2dkSGx3WlRvZ1hDSnVaV2RoZEdWa1hDSTdJSFpoYkhWbE9pQlRaWFE4VkQ0Z2ZUdGNiaThxS2lCVFpYUWdkMmhwWTJnZ2JXRjBZMmhsY3lCaGJpQmhZM1IxWVd3Z2MyVjBJRzltSUhaaGJIVmxjeTRnSUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JCZEc5dFBGUStJRDBnZXlCMGVYQmxPaUJjSW1GMGIyMWNJanNnZG1Gc2RXVTZJRk5sZER4VVBpQjlPMXh1WEc0dktpb2dRV0p6ZEhKaFkzUWdabWxzZEdWeUlIUjVjR1VnZDJocFkyZ2djbVZ3Y21WelpXNTBjeUIwYUdVZ2NtVnpkV3gwY3lCdlppQmhjSEJzZVdsdVp5Qm1hV3gwWlhJZ2IzQmxjbUYwYVc5dWN5QjBieUIwYUdVZ1pHRjBZU0J6ZEc5eVpTNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFWnBiSFJsY2p4VVBpQTlJRVYyWlhKNWRHaHBibWNnZkNCT2IzUm9hVzVuSUh3Z1FYUnZiVHhVUGlCOElFNWxaMkYwWldROFZENDdYRzVjYmk4cUtpQlZkR2xzYVhSNUlHWjFibU4wYVc5dWN5Qm1iM0lnWldabWFXTnBaVzUwYkhrZ2IzQmxjbUYwYVc1bklHOXVJR1pwYkhSbGNuTXVJQ292WEc1bGVIQnZjblFnYm1GdFpYTndZV05sSUVacGJIUmxjbk1nZTF4dUlDQWdJQzhxS2lCVGRHRjBhV01nWm1sc2RHVnlJSGRvYVdOb0lHMWhkR05vWlhNZ1pYWmxjbmwwYUdsdVp5NGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1kyOXVjM1FnUlZaRlVsbFVTRWxPUnpvZ1JYWmxjbmwwYUdsdVp5QTlJSHNnZEhsd1pUb2dYQ0psZG1WeWVYUm9hVzVuWENJZ2ZUdGNiaUFnSUNBdktpb2dVM1JoZEdsaklHWnBiSFJsY2lCM2FHbGphQ0J0WVhSamFHVnpJRzV2ZEdocGJtY3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHTnZibk4wSUU1UFZFaEpUa2M2SUU1dmRHaHBibWNnUFNCN0lIUjVjR1U2SUZ3aWJtOTBhR2x1WjF3aUlIMDdYRzRnSUNBZ0x5b3FJRVZ0Y0hSNUlITmxkQ0JqYjI1emRHRnVkQzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdZMjl1YzNRZ1JVMVFWRmxmVTBWVU9pQlRaWFE4WVc1NVBpQTlJRzVsZHlCVFpYUW9LVHRjYmx4dUlDQWdJQzhxS2lCRGIyNXpkSEoxWTNRZ1lTQnVaWGNnWVhSdmJTQm1hV3gwWlhJdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdGMGIyMDhWRDRvYzJWME9pQlRaWFE4VkQ0cE9pQkdhV3gwWlhJOFZENGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyVjBMbk5wZW1VZ1BUMGdNQ2tnY21WMGRYSnVJRTVQVkVoSlRrYzdYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0poZEc5dFhDSXNJSFpoYkhWbE9pQnpaWFFnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVjM1J5ZFdOMElHRWdabWxzZEdWeUlIUm9ZWFFnYldGMFkyaGxjeUJsZG1WeWVYUm9hVzVuSUc5eUlHNXZkR2hwYm1jdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdOdmJuTjBZVzUwUEZRK0tIWmhiSFZsT2lCaWIyOXNaV0Z1S1RvZ1JtbHNkR1Z5UEZRK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxLU0J5WlhSMWNtNGdSVlpGVWxsVVNFbE9SenRjYmlBZ0lDQWdJQ0FnWld4elpTQnlaWFIxY200Z1RrOVVTRWxPUnp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVjM1J5ZFdOMElHRWdibVYzSUdGMGIyMGdabWxzZEdWeUlIZG9hV05vSUdseklFNVBWRWhKVGtjZ2FXWWdjMlYwSUdseklIVnVaR1ZtYVc1bFpDNGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JuVnNiR0ZpYkdWQmRHOXRQRlErS0hObGREb2dVMlYwUEZRK0lId2dkVzVrWldacGJtVmtLVG9nUm1sc2RHVnlQRlErSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhObGRDQWhQVDBnZFc1a1pXWnBibVZrSUQ4Z1lYUnZiU2h6WlhRcElEb2dUazlVU0VsT1J6dGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRMjl1YzNSeWRXTjBJR0VnYm1WbllYUmxaQ0JoZEc5dElHWnBiSFJsY2k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYm1WbllYUmxaRHhVUGloelpYUTZJRk5sZER4VVBpazZJRVpwYkhSbGNqeFVQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHpaWFF1YzJsNlpTQTlQU0F3S1NCeVpYUjFjbTRnUlZaRlVsbFVTRWxPUnp0Y2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltNWxaMkYwWldSY0lpd2dkbUZzZFdVNklITmxkQ0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCUWNtOWtkV05sY3lCMGFHVWdibVZuWVhScGIyNGdiMllnWVNCbWFXeDBaWEl1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJRzVsWjJGMFpUeFVQaWhtYVd4MFpYSTZJRVpwYkhSbGNqeFVQaWs2SUVacGJIUmxjanhVUGlCN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb1ptbHNkR1Z5TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKbGRtVnllWFJvYVc1blhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFNVBWRWhKVGtjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2libTkwYUdsdVoxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQkZWa1ZTV1ZSSVNVNUhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1GMGIyMWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVZuWVhSbFpDaG1hV3gwWlhJdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltNWxaMkYwWldSY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lYUnZiU2htYVd4MFpYSXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRVJsZEdWeWJXbHVaU0JwWmlCMGFHVWdaMmwyWlc0Z1ptbHNkR1Z5SUdseklHUmxabWx1YVhScGRtVnNlU0JqZFhKeVpXNTBiSGtnWlcxd2RIa3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHVnRjSFI1UEZRK0tHWnBiSFJsY2pvZ1JtbHNkR1Z5UEZRK0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9abWxzZEdWeUxuUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmxkbVZ5ZVhSb2FXNW5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTVsWjJGMFpXUmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2lZWFJ2YlZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWFXeDBaWEl1ZG1Gc2RXVXVjMmw2WlNBOVBTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW01dmRHaHBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJTWlhOdmJIWmxJR0VnZEc5d0xXeGxkbVZzSUdacGJIUmxjaUIzYVhSb0lIUm9aU0J6WlhRZ2IyWWdZV3hzSUdGMllXbHNZV0pzWlNCdlltcGxZM1J6TGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJ5WlhOdmJIWmxQRlErS0dacGJIUmxjam9nUm1sc2RHVnlQRlErTENCbGRtVnllWFJvYVc1bk9pQlRaWFE4VkQ0cE9pQlRaWFE4VkQ0Z2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHWnBiSFJsY2k1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpYWmxjbmwwYUdsdVoxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmxkbVZ5ZVhSb2FXNW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW01dmRHaHBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUlUxUVZGbGZVMFZVTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltRjBiMjFjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1sc2RHVnlMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTVsWjJGMFpXUmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjMlYwU1c1MFpYSnpaV04wVG1WbllYUnBiMjRvWlhabGNubDBhR2x1Wnl3Z1ptbHNkR1Z5TG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCSmJuUmxjbk5sWTNRZ1lXNGdhWFJsY21GaWJHVWdiMllnWm1sc2RHVnljeTRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhVzUwWlhKelpXTjBQRlErS0dWc1pXMWxiblJ6T2lCSmRHVnlZV0pzWlR4R2FXeDBaWEk4VkQ0K0tUb2dSbWxzZEdWeVBGUStJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3hoZW5sSmJuUmxjbk5sWTNRb1pXeGxiV1Z1ZEhNc0lDaDRLU0E5UGlCNEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dTVzUwWlhKelpXTjBJR1pwYkhSbGNuTWdiR0Y2YVd4NUxDQnphRzl5ZEMxamFYSmpkV2wwYVc1bklHbG1JSFJvWlNCcGJuUmxjbk5sWTNScGIyNGdkMjkxYkdRZ2NISnZaSFZqWlNCT1QxUklTVTVITGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJzWVhwNVNXNTBaWEp6WldOMFBFa3NJRlErS0Z4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1NYUmxjbUZpYkdVOFNUNHNYRzRnSUNBZ0lDQWdJSEJ5YjJSMVkyVTZJQ2hwYm5CMWREb2dTU2tnUFQ0Z1JtbHNkR1Z5UEZRK0lId2dkVzVrWldacGJtVmtYRzRnSUNBZ0tUb2dSbWxzZEdWeVBGUStJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3hoZW5sR1lXbHNZV0pzWlVsdWRHVnljMlZqZEdsdmJpaGxiR1Z0Wlc1MGN5d2dLSGdwSUQwK0lGSmxjM1ZzZEM1emRXTmpaWE56S0hCeWIyUjFZMlVvZUNrcEtTNXZja1ZzYzJWVWFISnZkeWdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCSmJuUmxjbk5sWTNRZ1ptbHNkR1Z5Y3lCc1lYcHBiSGtzSUhOb2IzSjBMV05wY21OMWFYUnBibWNnYVdZZ2RHaGxJR2x1ZEdWeWMyVmpkR2x2YmlCM2IzVnNaQ0J3Y205a2RXTmxJRTVQVkVoSlRrY3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHeGhlbmxHWVdsc1lXSnNaVWx1ZEdWeWMyVmpkR2x2Ymp4SkxDQlVMQ0JGUGloY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEhNNklFbDBaWEpoWW14bFBFaytMRnh1SUNBZ0lDQWdJQ0J3Y205a2RXTmxPaUFvYVc1d2RYUTZJRWtwSUQwK0lGSmxjM1ZzZER4R2FXeDBaWEk4VkQ0Z2ZDQjFibVJsWm1sdVpXUXNJRVUrWEc0Z0lDQWdLVG9nVW1WemRXeDBQRVpwYkhSbGNqeFVQaXdnUlQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaGRHOXRjem9nVTJWMFBGUStXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVm5ZWFJwYjI1ek9pQlRaWFE4VkQ1YlhTQTlJRnRkTzF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCbGJHVnRaVzUwSUc5bUlHVnNaVzFsYm5SektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhsaVpVWnBiSFJsY2lBOUlIQnliMlIxWTJVb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXMWhlV0psUm1sc2RHVnlMbk4xWTJObGMzTm1kV3dwSUhKbGRIVnliaUJ0WVhsaVpVWnBiSFJsY2k1allYTjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnBiSFJsY2lBOUlHMWhlV0psUm1sc2RHVnlMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHWnBiSFJsY2lBOVBUMGdkVzVrWldacGJtVmtLU0JqYjI1MGFXNTFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUlcxd2RIa2dabWxzZEdWeWN5QjNhV3hzSUhCeWIyUjFZMlVnWVc0Z1pXMXdkSGtnYVc1MFpYSnpaV04wYVc5dUxseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnRjSFI1S0dacGJIUmxjaWtwSUhKbGRIVnliaUJTWlhOMWJIUXVjM1ZqWTJWemN5aE9UMVJJU1U1SEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFVldSVkpaVkVoSlRrY2dabWxzZEdWeWN5QmhjbVVnY21Wa2RXNWtZVzUwSUdsdUlFRk9SSE1zSUhOcmFYQWdkR2hsYlM1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobWFXeDBaWEl1ZEhsd1pTQTlQVDBnWENKbGRtVnllWFJvYVc1blhDSXBJR052Ym5ScGJuVmxPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJYYVd4c0lHOXViSGtnWW1VZ2JHVm1kQ0IzYVhSb0lHRjBiMjF6SUc5eUlHNWxaMkYwYVc5dWN5NWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaG1hV3gwWlhJdWRIbHdaU0E5UFNCY0ltRjBiMjFjSWlrZ1lYUnZiWE11Y0hWemFDaG1hV3gwWlhJdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9abWxzZEdWeUxuUjVjR1VnUFQwZ1hDSnVaV2RoZEdWa1hDSXBJRzVsWjJGMGFXOXVjeTV3ZFhOb0tHWnBiSFJsY2k1MllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQXZMeUJYWlNCemRHRnlkQ0IzYVhSb0lITnZiV1YwYUdsdVp5QnZaaUIwYUdVZ1ptOXliU0JoSUNZbUlHSWdKaVlnSVdNZ0ppWWdJV1F1WEc0Z0lDQWdJQ0FnSUM4dklFbG1JRzV2SUhSbGNtMXpMQ0IwYUdWdUlHVjJaWEo1ZEdocGJtY2dkMkZ6SUVWV1JWSlpWRWhKVGtjZ2MyOGdjbVYwZFhKdUlIUm9ZWFF1WEc0Z0lDQWdJQ0FnSUM4dklFbG1JRzl1YkhrZ1lYUnZiWE1zSUdwMWMzUWdhVzUwWlhKelpXTjBJSFJvWlcwZ0tHRWdKaVlnWWlrdVhHNGdJQ0FnSUNBZ0lDOHZJRWxtSUc5dWJIa2dibVZuWVhScGIyNXpMQ0IwYUdWdUlISmxkM0pwZEdVZ0lXTWdKaVlnSVdRZ1BUNGdJU2hqSUh4OElHUXBJR0Z1WkNCeVpYUjFjbTRnYm1WbllYUmxaQ2hqSUh4OElHUXBMbHh1SUNBZ0lDQWdJQ0F2THlCSlppQmliM1JvTENCamIyMXdkWFJsSUhnZ1BTQW9ZU0FtSmlCaUtTQmhibVFnZVNBOUlDaGpJSHg4SUdRcExDQmhibVFnZEdobGJpQmpiMjF3ZFhSbElIZ2dKaVlnSVhrdVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0dGMGIyMXpMbXhsYm1kMGFDQTlQU0F3SUNZbUlHNWxaMkYwYVc5dWN5NXNaVzVuZEdnZ1BUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGSmxjM1ZzZEM1emRXTmpaWE56S0VWV1JWSlpWRWhKVGtjcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR0YwYjIxekxteGxibWQwYUNBK0lEQWdKaVlnYm1WbllYUnBiMjV6TG14bGJtZDBhQ0E5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVW1WemRXeDBMbk4xWTJObGMzTW9ZWFJ2YlNoelpYUkpiblJsY25ObFkzUW9ZWFJ2YlhNcEtTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvWVhSdmJYTXViR1Z1WjNSb0lEMDlJREFnSmlZZ2JtVm5ZWFJwYjI1ekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCU1pYTjFiSFF1YzNWalkyVnpjeWh1WldkaGRHVmtLSE5sZEZWdWFXOXVLRzVsWjJGMGFXOXVjeWtwS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlNaWE4xYkhRdWMzVmpZMlZ6Y3loR2FXeDBaWEp6TG1GMGIyMG9jMlYwU1c1MFpYSnpaV04wVG1WbllYUnBiMjRvYzJWMFNXNTBaWEp6WldOMEtHRjBiMjF6S1N3Z2MyVjBWVzVwYjI0b2JtVm5ZWFJwYjI1ektTa3BLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCVmJtbHZiaUJtYVd4MFpYSnpMQ0J3Y205a2RXTnBibWNnWVNCemFXNW5iR1VnY21WemRXeDBJR1pwYkhSbGNpNGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RXNXBiMjQ4VkQ0b1ptbHNkR1Z5Y3pvZ1NYUmxjbUZpYkdVOFJtbHNkR1Z5UEZRK1BpazZJRVpwYkhSbGNqeFVQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJzWVhwNVZXNXBiMjRvWm1sc2RHVnljeXdnS0hncElEMCtJSGdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCVmJtbHZiaUJtYVd4MFpYSnpJR3hoZW1sc2VTd2djMmh2Y25RdFkybHlZM1ZwZEdsdVp5QnBaaUIwYUdVZ2RXNXBiMjRnZDI5MWJHUWdjSEp2WkhWalpTQkZWa1ZTV1ZSSVNVNUhMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnNZWHA1Vlc1cGIyNDhTU3dnVkQ0b1pXeGxiV1Z1ZEhNNklFbDBaWEpoWW14bFBFaytMQ0J3Y205a2RXTmxPaUFvYVc1d2RYUTZJRWtwSUQwK0lFWnBiSFJsY2p4VVBpQjhJSFZ1WkdWbWFXNWxaQ2s2SUVacGJIUmxjanhVUGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCc1lYcDVSbUZwYkdGaWJHVlZibWx2YmlobGJHVnRaVzUwY3l3Z0tIZ3BJRDArSUZKbGMzVnNkQzV6ZFdOalpYTnpLSEJ5YjJSMVkyVW9lQ2twS1M1dmNrVnNjMlZVYUhKdmR5Z3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJWYm1sdmJpQm1hV3gwWlhKeklHeGhlbWxzZVN3Z2MyaHZjblF0WTJseVkzVnBkR2x1WnlCcFppQjBhR1VnZFc1cGIyNGdkMjkxYkdRZ2NISnZaSFZqWlNCRlZrVlNXVlJJU1U1SExpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCc1lYcDVSbUZwYkdGaWJHVlZibWx2Ymp4SkxDQlVMQ0JGUGloY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEhNNklFbDBaWEpoWW14bFBFaytMRnh1SUNBZ0lDQWdJQ0J3Y205a2RXTmxPaUFvYVc1d2RYUTZJRWtwSUQwK0lGSmxjM1ZzZER4R2FXeDBaWEk4VkQ0Z2ZDQjFibVJsWm1sdVpXUXNJRVUrWEc0Z0lDQWdLVG9nVW1WemRXeDBQRVpwYkhSbGNqeFVQaXdnUlQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaGRHOXRjem9nVTJWMFBGUStXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVm5ZWFJwYjI1ek9pQlRaWFE4VkQ1YlhTQTlJRnRkTzF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCbGJHVnRaVzUwSUc5bUlHVnNaVzFsYm5SektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhsaVpVWnBiSFJsY2lBOUlIQnliMlIxWTJVb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXMWhlV0psUm1sc2RHVnlMbk4xWTJObGMzTm1kV3dwSUhKbGRIVnliaUJ0WVhsaVpVWnBiSFJsY2k1allYTjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnBiSFJsY2lBOUlHMWhlV0psUm1sc2RHVnlMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHWnBiSFJsY2lBOVBUMGdkVzVrWldacGJtVmtLU0JqYjI1MGFXNTFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUlZaRlVsbFVTRWxPUnlCbWFXeDBaWEp6SUhkcGJHd2djSEp2WkhWalpTQmxkbVZ5ZVhSb2FXNW5JR0ZzZDJGNWN5NWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaG1hV3gwWlhJdWRIbHdaU0E5UFQwZ1hDSmxkbVZ5ZVhSb2FXNW5YQ0lwSUhKbGRIVnliaUJTWlhOMWJIUXVjM1ZqWTJWemN5aEZWa1ZTV1ZSSVNVNUhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRVZ0Y0hSNUlHWnBiSFJsY25NZ1lYSmxJSEpsWkhWdVpHRnVkQzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsYlhCMGVTaG1hV3gwWlhJcEtTQmpiMjUwYVc1MVpUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdWMmxzYkNCdmJteDVJR0psSUd4bFpuUWdkMmwwYUNCaGRHOXRjeUJ2Y2lCdVpXZGhkR2x2Ym5NdVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1ptbHNkR1Z5TG5SNWNHVWdQVDBnWENKaGRHOXRYQ0lwSUdGMGIyMXpMbkIxYzJnb1ptbHNkR1Z5TG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHWnBiSFJsY2k1MGVYQmxJRDA5SUZ3aWJtVm5ZWFJsWkZ3aUtTQnVaV2RoZEdsdmJuTXVjSFZ6YUNobWFXeDBaWEl1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdUM0lnYVhNZ1lTQmlhWFFnYUdGeVpHVnlJSFJvWVc0Z1FVNUVJSE5wYm1ObElIbHZkU0JqWVc0Z1pXNWtJSFZ3SUhkcGRHZ2djMk5sYm1GeWFXOXpJR3hwYTJVZ1lTQjhmQ0FoWWl3Z2QyaHBZMmdnWVhKbFhHNGdJQ0FnSUNBZ0lDOHZJRzV2ZENCamIyMXdkWFJoWW14bElHUnBjbVZqZEd4NUxpQkliM2RsZG1WeUxDQjNaU0JqWVc0Z1pHOGdZbTl2YkdWaGJpQnNiMmRwWXlCMGJ5QmhiSGRoZVhNZ2NISnZaSFZqWlNCaElITnBibWRzWlZ4dUlDQWdJQ0FnSUNBdkx5QnpaWFF1WEc0Z0lDQWdJQ0FnSUM4dklFbG1JRzV2ZEdocGJtY2dQVDRnYm05MGFHbHVaeXdnYm04Z2JtOXVMV1Z0Y0hSNUlHWnBiSFJsY25NdVhHNGdJQ0FnSUNBZ0lDOHZJRWxtSUdGMGIyMXpJR0oxZENCdWJ5QnVaV2RoZEdsdmJuTWdLR0VnZkh3Z1lpQjhmQ0JqS1NBOVBpQmpiMjF3ZFhSbElIVnVhVzl1TGx4dUlDQWdJQ0FnSUNBdkx5QkpaaUJ1WldkaGRHbHZibk1nWW5WMElHNXZJR0YwYjIxeklDZ2hZU0I4ZkNBaFlpQjhmQ0FoWXlrZ1BUNGdjbVYzY21sMFpTQmhjeUFoS0dFZ0ppWWdZaUFtSmlCaktTNWNiaUFnSUNBZ0lDQWdMeThnU1dZZ1ltOTBhRG9nS0dFZ2ZId2dZaUI4ZkNBaFl5QjhmQ0FoWkNrZ1BUNGdZMjl0WW1sdVpTQmxZV05vSUhCaGNuUWdhVzUwYnlBb1lTQjhmQ0JpS1NCOGZDQW9JV01nZkh3Z0lXUXBJRDArSUNoaElIeDhJR0lwSUh4OElDRW9ZeUFtSmlCa0tTQTlQaUJsSUh4OElDRm1JRDArSUNFb0lXVWdKaVlnWmlrZ2QyaHBZMmhjYmlBZ0lDQWdJQ0FnTHk4Z1kyRnVJR0psSUdOdmJYQjFkR1ZrSUhWemFXNW5JR2x1ZEdWeWMyVmpkR2x2YmlCc2IyZHBZeTVjYmx4dUlDQWdJQ0FnSUNCcFppQW9ZWFJ2YlhNdWJHVnVaM1JvSUQwOUlEQWdKaVlnYm1WbllYUnBiMjV6TG14bGJtZDBhQ0E5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVW1WemRXeDBMbk4xWTJObGMzTW9UazlVU0VsT1J5azdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvWVhSdmJYTXViR1Z1WjNSb0lENGdNQ0FtSmlCdVpXZGhkR2x2Ym5NdWJHVnVaM1JvSUQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCU1pYTjFiSFF1YzNWalkyVnpjeWhHYVd4MFpYSnpMbUYwYjIwb2MyVjBWVzVwYjI0b1lYUnZiWE1wS1NrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZWFJ2YlhNdWJHVnVaM1JvSUQwOUlEQWdKaVlnYm1WbllYUnBiMjV6TG14bGJtZDBhQ0ErSURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJTWlhOMWJIUXVjM1ZqWTJWemN5aEdhV3gwWlhKekxtNWxaMkYwWldRb2MyVjBTVzUwWlhKelpXTjBLRzVsWjJGMGFXOXVjeWtwS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlNaWE4xYkhRdWMzVmpZMlZ6Y3lodVpXZGhkR1ZrS0hObGRFbHVkR1Z5YzJWamRFNWxaMkYwYVc5dUtITmxkRWx1ZEdWeWMyVmpkQ2h1WldkaGRHbHZibk1wTENCelpYUlZibWx2YmloaGRHOXRjeWtwS1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSV1ptYVdOcFpXNTBiSGtnWTI5dGNIVjBaU0IwYUdVZ2FXNTBaWEp6WldOMGFXOXVJRzltSUhObGRITXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlITmxkRWx1ZEdWeWMyVmpkRHhVUGloelpYUnpPaUJUWlhROFZENWJYU2s2SUZObGREeFVQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHpaWFJ6TG14bGJtZDBhQ0E5UFNBd0tTQnlaWFIxY200Z2JtVjNJRk5sZENncE8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHpaWFJ6TG14bGJtZDBhQ0E5UFNBeEtTQnlaWFIxY200Z2MyVjBjMXN3WFR0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJUYjNKMElHSjVJSE5wZW1VZ1lXNWtJR052YldKcGJtVWdjMjFoYkd4bGMzUWdZVzVrSUd4aGNtZGxjM1FnYzJWMElISmxjR1ZoZEdWa2JIa3VYRzRnSUNBZ0lDQWdJR3hsZENCemIzSjBaV1FnUFNBb1cxMGdZWE1nVTJWMFBGUStXMTBwTG1OdmJtTmhkQ2h6WlhSektTNXpiM0owS0NoaExDQmlLU0E5UGlCaExuTnBlbVVnTFNCaUxuTnBlbVVwTzF4dVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoemIzSjBaV1F1YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdibVYzSUZObGREeFVQaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHRnlaMlZ6ZENBOUlITnZjblJsWkM1d2IzQW9LU0U3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR1ZzWlcxbGJuUWdiMllnYzI5eWRHVmtXekJkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3hoY21kbGMzUXVhR0Z6S0dWc1pXMWxiblFwS1NCeVpYTjFiSFF1WVdSa0tHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0J6YjNKMFpXUmJNRjBnUFNCeVpYTjFiSFE3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MyOXlkR1ZrV3pCZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkZabVpwWTJsbGJuUnNlU0JqYjIxd2RYUmxJSFJvWlNCMWJtbHZiaUJ2WmlCelpYUnpMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnpaWFJWYm1sdmJqeFVQaWh6WlhSek9pQlRaWFE4VkQ1YlhTazZJRk5sZER4VVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoelpYUnpMbXhsYm1kMGFDQTlQU0F3S1NCeVpYUjFjbTRnYm1WM0lGTmxkQ2dwTzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoelpYUnpMbXhsYm1kMGFDQTlQU0F4S1NCeVpYUjFjbTRnYzJWMGMxc3dYVHRjYmx4dUlDQWdJQ0FnSUNBdkx5QkpKMjBnYm05MElITjFjbVVnYVdZZ2RHaGxjbVVnYVhNZ1lXNTVJSFZ6WldaMWJDQnZjSFJwYldsNllYUnBiMjRnWm05eUlITmxkQ0IxYm1sdmJuTXNJSE52SUdwMWMzUWdZV1JrSUhSb1pXMGdZV3hzSUVrZ1ozVmxjM011WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RDQTlJRzVsZHlCVFpYUThWRDRvS1R0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnpaWFFnYjJZZ2MyVjBjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JsYkdWdFpXNTBJRzltSUhObGRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDNWhaR1FvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJGWm1acFkybGxiblJzZVNCamIyMXdkWFJsSUdGMGIyMGdKaVlnSVc1bFoyRjBaV1F1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJSE5sZEVsdWRHVnljMlZqZEU1bFoyRjBhVzl1UEZRK0tHRjBiMjA2SUZObGREeFVQaXdnYm1WbllYUmxaRG9nVTJWMFBGUStLVG9nVTJWMFBGUStJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHRjBiMjB1YzJsNlpTQStJRzVsWjJGMFpXUXVjMmw2WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1ZFOUVUem9nVjI5MWJHUWdZbVVnYm1salpTQjBieUJoZG05cFpDQjBhR1VnWTI5d2VTd2djMmx1WTJVZ1NTZHRJRzV2ZENCemRYSmxJR2wwSjNNZ1lXNTVJR1poYzNSbGNpQjNhWFJvSUhSb1pTQmpiM0I1TGx4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ2JtVjNJRk5sZENoaGRHOXRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHVnNaVzFsYm5RZ2IyWWdibVZuWVhSbFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDNWtaV3hsZEdVb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lIMGdMeW9nWVhSdmJTNXphWHBsSUR3Z2JtVm5ZWFJwYjI0dWMybDZaU0FxTHlCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUc1bGR5QlRaWFE4VkQ0b0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdWc1pXMWxiblFnYjJZZ1lYUnZiU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHVaV2RoZEdWa0xtaGhjeWhsYkdWdFpXNTBLU2tnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemRXeDBMbUZrWkNobGJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnZXlCTWFYUmxjbUZzTENCTWFYUmxjbUZzY3lCOUlHWnliMjBnWENKbGVIQnlaWE56YVc5dUwyeHBkR1Z5WVd4Y0lqdGNibWx0Y0c5eWRDQjdJRVpwYkhSbGNuTWdmU0JtY205dElGd2lMaTltYVd4MFpYSnpYQ0k3WEc1Y2JpOHFLaUJEYjIxd1lYSnBjMjl1SUc5d1pYSmhkRzl5Y3lCM2FHbGphQ0I1YVdWc1pDQjBjblZsTDJaaGJITmxMaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdRMjl0Y0dGeVpVOXdJRDBnWENJK1hDSWdmQ0JjSWo0OVhDSWdmQ0JjSWp3OVhDSWdmQ0JjSWp4Y0lpQjhJRndpUFZ3aUlId2dYQ0loUFZ3aU8xeHVMeW9xSUVGeWFYUm9iV1YwYVdNZ2IzQmxjbUYwYjNKeklIZG9hV05vSUhscFpXeGtJRzUxYldKbGNuTWdZVzVrSUc5MGFHVnlJSFpoYkhWbGN5NGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFRnlhWFJvYldWMGFXTlBjQ0E5SUZ3aUsxd2lJSHdnWENJdFhDSWdmQ0JjSWlwY0lpQjhJRndpTDF3aUlId2dYQ0lsWENJZ2ZDQmNJaVpjSWlCOElGd2lmRndpTzF4dUx5b3FJRWx1WkdWNElHRWdkbUZzZFdVZ2FXNTBieUJoYm05MGFHVnlJSFpoYkhWbExpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1RHOW5hV05oYkU5d0lEMGdYQ0pwYm1SbGVGd2lPMXh1THlvcUlFRnNiQ0IyWVd4cFpDQmlhVzVoY25rZ2IzQmxjbUYwYjNKekxpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1FtbHVZWEo1VDNBZ1BTQkRiMjF3WVhKbFQzQWdmQ0JCY21sMGFHMWxkR2xqVDNBZ2ZDQk1iMmRwWTJGc1QzQTdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFVjRjSEpsYzNOcGIyNGdQVnh1SUNBZ0lId2dUR2wwWlhKaGJFVjRjSEpsYzNOcGIyNWNiaUFnSUNCOElGWmhjbWxoWW14bFJYaHdjbVZ6YzJsdmJseHVJQ0FnSUh3Z1RHbHpkRVY0Y0hKbGMzTnBiMjVjYmlBZ0lDQjhJRTlpYW1WamRFVjRjSEpsYzNOcGIyNWNiaUFnSUNCOElFSnBibUZ5ZVU5d1JYaHdjbVZ6YzJsdmJseHVJQ0FnSUh3Z1JuVnVZM1JwYjI1RmVIQnlaWE56YVc5dVhHNGdJQ0FnZkNCTVlXMWlaR0ZGZUhCeVpYTnphVzl1WEc0Z0lDQWdmQ0JPWldkaGRHVmtSWGh3Y21WemMybHZianRjYmx4dUx5b3FJRXhwZEdWeVlXd2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdjMjl0WlNCbWFXVnNaQ0IwZVhCbExpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JNYVhSbGNtRnNSWGh3Y21WemMybHZiaUI3WEc0Z0lDQWdkSGx3WlRvZ1hDSnNhWFJsY21Gc1hDSTdYRzRnSUNBZ2RtRnNkV1U2SUV4cGRHVnlZV3c3WEc1OVhHNWNiaThxS2lCQklIWmhjbWxoWW14bElHWnBaV3hrSUdadmNpQmhJSFpoY21saFlteGxJSGRwZEdnZ1lTQm5hWFpsYmlCdVlXMWxMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCV1lYSnBZV0pzWlVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUhSNWNHVTZJRndpZG1GeWFXRmliR1ZjSWp0Y2JpQWdJQ0J1WVcxbE9pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtpQkJJR3hwYzNRZ2JHbDBaWEpoYkN3Z2QyaHBZMmdnYVhNZ1lXNGdiM0prWlhKbFpDQmpiMnhzWldOMGFXOXVJRzltSUdacFpXeGtjeTRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1RHbHpkRVY0Y0hKbGMzTnBiMjRnZTF4dUlDQWdJSFI1Y0dVNklGd2liR2x6ZEZ3aU8xeHVJQ0FnSUhaaGJIVmxjem9nUlhod2NtVnpjMmx2Ymx0ZE8xeHVmVnh1WEc0dktpb2dRVzRnYjJKcVpXTjBJR3hwZEdWeVlXd3NJSGRvYVdOb0lHbHpJR0VnYldGd2NHbHVaeUJ2WmlCdVlXMWxJSFJ2SUdacFpXeGtMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCUFltcGxZM1JGZUhCeVpYTnphVzl1SUh0Y2JpQWdJQ0IwZVhCbE9pQmNJbTlpYW1WamRGd2lPMXh1SUNBZ0lIWmhiSFZsY3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnUlhod2NtVnpjMmx2Ymo0N1hHNTlYRzVjYmk4cUtpQkJJR0pwYm1GeWVTQnZjR1Z5WVhSdmNpQmxlSEJ5WlhOemFXOXVJSGRvYVdOb0lHTnZiV0pwYm1WeklIUjNieUJ6ZFdKdWIyUmxjeUJ6YjIxbGFHOTNMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCQ2FXNWhjbmxQY0VWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUhSNWNHVTZJRndpWW1sdVlYSjViM0JjSWp0Y2JpQWdJQ0JzWldaME9pQkZlSEJ5WlhOemFXOXVPMXh1SUNBZ0lISnBaMmgwT2lCRmVIQnlaWE56YVc5dU8xeHVJQ0FnSUc5d09pQkNhVzVoY25sUGNEdGNibjFjYmx4dUx5b3FJRUVnWm5WdVkzUnBiMjRnWlhod2NtVnpjMmx2YmlCM2FHbGphQ0JqWVd4c2N5QmhJR1oxYm1OMGFXOXVJRzl1SURBZ2IzSWdiVzl5WlNCaGNtZDFiV1Z1ZEhNdUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVoxYm1OMGFXOXVSWGh3Y21WemMybHZiaUI3WEc0Z0lDQWdkSGx3WlRvZ1hDSm1kVzVqZEdsdmJsd2lPMXh1SUNBZ0lDOHFLaUJGYVhSb1pYSWdkR2hsSUc1aGJXVWdiMllnZEdobElHWjFibU4wYVc5dUlHSmxhVzVuSUdOaGJHeGxaQ0J2Y2lCaElFWjFibU4wYVc5dUlHOWlhbVZqZEM0Z0tpOWNiaUFnSUNCbWRXNWpPaUJGZUhCeVpYTnphVzl1TzF4dUlDQWdJQzhxS2lCVWFHVWdiR2x6ZENCdlppQmhjbWQxYldWdWRITWdZbVZwYm1jZ2NHRnpjMlZrSUhSdklIUm9aU0JtZFc1amRHbHZiaTRnS2k5Y2JpQWdJQ0JoY21kMWJXVnVkSE02SUVWNGNISmxjM05wYjI1YlhUdGNibjFjYmx4dUx5b3FJRUZ1SUdsdWJHbHVaU0JtZFc1amRHbHZiaUJoWTJObGNIUnBibWNnYjI1bElHOXlJRzF2Y21VZ1lYSm5kVzFsYm5SeklHRnVaQ0J3Y205a2RXTnBibWNnWVNCMllXeDFaUzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1RHRnRZbVJoUlhod2NtVnpjMmx2YmlCN1hHNGdJQ0FnZEhsd1pUb2dYQ0pzWVcxaVpHRmNJanRjYmlBZ0lDQXZLaW9nUVc0Z2IzSmtaWEpsWkNCc2FYTjBJRzltSUc1aGJXVmtJR0Z5WjNWdFpXNTBjeTRnS2k5Y2JpQWdJQ0JoY21kMWJXVnVkSE02SUhOMGNtbHVaMXRkTzF4dUlDQWdJQzhxS2lCVWFHVWdabWxsYkdRZ2QyaHBZMmdnZDJsc2JDQmlaU0JsZG1Gc2RXRjBaV1FnZFhOcGJtY2dkR2hsSUdGeVozVnRaVzUwY3lCcGJpQmpiMjUwWlhoMExpQXFMMXh1SUNBZ0lIWmhiSFZsT2lCRmVIQnlaWE56YVc5dU8xeHVmVnh1WEc0dktpb2dRVzRnWlhod2NtVnpjMmx2YmlCM2FHbGphQ0J1WldkaGRHVnpJSFJvWlNCMllXeDFaU0J2WmlCMGFHVWdiM0pwWjJsdVlXd2dabWxsYkdRdUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRTVsWjJGMFpXUkZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQjBlWEJsT2lCY0ltNWxaMkYwWldSY0lqdGNibHh1SUNBZ0lDOHFLaUJVYUdVZ1kyaHBiR1FnWm1sbGJHUWdkRzhnYm1WbllYUmxMaUFxTDF4dUlDQWdJR05vYVd4a09pQkZlSEJ5WlhOemFXOXVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2JtRnRaWE53WVdObElFVjRjSEpsYzNOcGIyNXpJSHRjYmlBZ0lDQXZLaW9nVkdobElHbHRjR3hwWTJsMElHWnBaV3hrSUhKbFptVnlaVzVqYVc1bklIUm9aU0JqZFhKeVpXNTBJR1pwWld4a0xpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCamIyNXpkQ0JTVDFjNklITjBjbWx1WnlBOUlGd2lKSEp2ZDF3aU8xeHVYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUhaaGNtbGhZbXhsS0c1aGJXVTZJSE4wY21sdVp5azZJRlpoY21saFlteGxSWGh3Y21WemMybHZiaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhSNWNHVTZJRndpZG1GeWFXRmliR1ZjSWl3Z2JtRnRaU0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnNhWFJsY21Gc0tIWmhiSFZsT2lCTWFYUmxjbUZzS1RvZ1RHbDBaWEpoYkVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0lteHBkR1Z5WVd4Y0lpd2dkbUZzZFdVZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnWW1sdVlYSjVUM0FvYkdWbWREb2dSWGh3Y21WemMybHZiaXdnYjNBNklFSnBibUZ5ZVU5d0xDQnlhV2RvZERvZ1JYaHdjbVZ6YzJsdmJpazZJRVY0Y0hKbGMzTnBiMjRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCMGVYQmxPaUJjSW1KcGJtRnllVzl3WENJc0lHeGxablFzSUc5d0xDQnlhV2RvZENCOUlHRnpJRUpwYm1GeWVVOXdSWGh3Y21WemMybHZianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FXNWtaWGdvYjJKcU9pQkZlSEJ5WlhOemFXOXVMQ0JwYm1SbGVEb2dSWGh3Y21WemMybHZiaWs2SUVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltSnBibUZ5ZVc5d1hDSXNJR3hsWm5RNklHOWlhaXdnY21sbmFIUTZJR2x1WkdWNExDQnZjRG9nWENKcGJtUmxlRndpSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFTnZiblpsY25SeklHRWdjM1J5YVc1bklHbHVJR1J2ZEMxdWIzUmhkR2x2YmkxbWIzSnRZWFFnYVc1MGJ5QmhJSFpoY21saFlteGxJSGRvYVdOb0lHbHVaR1Y0WlhNdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdsdVpHVjRWbUZ5YVdGaWJHVW9ibUZ0WlRvZ2MzUnlhVzVuS1RvZ1JYaHdjbVZ6YzJsdmJpQjdYRzRnSUNBZ0lDQWdJR3hsZENCd1lYSjBjeUE5SUc1aGJXVXVjM0JzYVhRb1hDSXVYQ0lwTzF4dUlDQWdJQ0FnSUNCc1pYUWdjbVZ6ZFd4ME9pQkZlSEJ5WlhOemFXOXVJRDBnUlhod2NtVnpjMmx2Ym5NdWRtRnlhV0ZpYkdVb2NHRnlkSE5iTUYwcE8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBibVJsZUNBOUlERTdJR2x1WkdWNElEd2djR0Z5ZEhNdWJHVnVaM1JvT3lCcGJtUmxlQ3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JGZUhCeVpYTnphVzl1Y3k1cGJtUmxlQ2h5WlhOMWJIUXNJRVY0Y0hKbGMzTnBiMjV6TG14cGRHVnlZV3dvY0dGeWRITmJhVzVrWlhoZEtTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCc1lXMWlaR0VvWVhKbmN6b2djM1J5YVc1blcxMHNJSFpoYkhWbE9pQkZlSEJ5WlhOemFXOXVLVG9nVEdGdFltUmhSWGh3Y21WemMybHZiaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhSNWNHVTZJRndpYkdGdFltUmhYQ0lzSUdGeVozVnRaVzUwY3pvZ1lYSm5jeXdnZG1Gc2RXVWdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1puVnVZeWhtZFc1ak9pQkZlSEJ5WlhOemFXOXVMQ0JoY21kek9pQkZlSEJ5WlhOemFXOXVXMTBwT2lCR2RXNWpkR2x2YmtWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltWjFibU4wYVc5dVhDSXNJR1oxYm1Nc0lHRnlaM1Z0Wlc1MGN6b2dZWEpuY3lCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJzYVhOMEtIWmhiSFZsY3pvZ1JYaHdjbVZ6YzJsdmJsdGRLVG9nVEdsemRFVjRjSEpsYzNOcGIyNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQmNJbXhwYzNSY0lpd2dkbUZzZFdWeklIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUc5aWFtVmpkQ2gyWVd4MVpYTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFVjRjSEpsYzNOcGIyNCtLVG9nVDJKcVpXTjBSWGh3Y21WemMybHZiaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhSNWNHVTZJRndpYjJKcVpXTjBYQ0lzSUhaaGJIVmxjeUI5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnVaV2RoZEdVb1kyaHBiR1E2SUVWNGNISmxjM05wYjI0cE9pQk9aV2RoZEdWa1JYaHdjbVZ6YzJsdmJpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSFI1Y0dVNklGd2libVZuWVhSbFpGd2lMQ0JqYUdsc1pDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwTnZiWEJoY21WUGNDaHZjRG9nUW1sdVlYSjVUM0FwT2lCdmNDQnBjeUJEYjIxd1lYSmxUM0FnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYjNBZ1BUMGdYQ0k4UFZ3aUlIeDhJRzl3SUQwOUlGd2lQRndpSUh4OElHOXdJRDA5SUZ3aVBsd2lJSHg4SUc5d0lEMDlJRndpUGoxY0lpQjhmQ0J2Y0NBOVBTQmNJaUU5WENJZ2ZId2diM0FnUFQwZ1hDSTlYQ0k3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nWVNCelpYUWdiMllnWVd4c0lIVnVZbTkxYm1RZ2RtRnlhV0ZpYkdWeklDaHBMbVV1TENCMllYSnBZV0pzWlhNZ2JtOTBJSEJ5YjNacFpHVmtJR0o1SUdCeWIzZGdMQ0JzWVcxaVpHRnpMQ0J2Y2lCemFXMXBiR0Z5TGlrZ0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnZFc1aWIzVnVaRlpoY21saFlteGxjeWhsZUhCeU9pQkZlSEJ5WlhOemFXOXVMQ0JpYjNWdVpEb2dVMlYwUEhOMGNtbHVaejRnUFNCdVpYY2dVMlYwS0Z0U1QxZGRLU2s2SUZObGREeHpkSEpwYm1jK0lIdGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaGxlSEJ5TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKaWFXNWhjbmx2Y0Z3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRk53WldOcFlXd2dZMkZ6WlNCZ2NtOTNXMXdpTGk0dUxsd2lYV0F1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsZUhCeUxtOXdJRDA5UFNCY0ltbHVaR1Y0WENJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhod2NpNXNaV1owTG5SNWNHVWdQVDBnWENKMllYSnBZV0pzWlZ3aUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWNGNISXViR1ZtZEM1dVlXMWxJRDA5SUZKUFZ5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGVIQnlMbkpwWjJoMExuUjVjR1VnUFQwZ1hDSnNhWFJsY21Gc1hDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1RHbDBaWEpoYkhNdWFYTlRkSEpwYm1jb1pYaHdjaTV5YVdkb2RDNTJZV3gxWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHSnZkVzVrTG1oaGN5aGxlSEJ5TG5KcFoyaDBMblpoYkhWbEtTa2djbVYwZFhKdUlHNWxkeUJUWlhRb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnlaWFIxY200Z2JtVjNJRk5sZENoYlpYaHdjaTV5YVdkb2RDNTJZV3gxWlYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUU5MGFHVnlkMmx6WlNCcWRYTjBJR05vWldOcklHeGxablFnWVc1a0lISnBaMmgwTGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJHYVd4MFpYSnpMbk5sZEZWdWFXOXVLRnQxYm1KdmRXNWtWbUZ5YVdGaWJHVnpLR1Y0Y0hJdWJHVm1kQ3dnWW05MWJtUXBMQ0IxYm1KdmRXNWtWbUZ5YVdGaWJHVnpLR1Y0Y0hJdWNtbG5hSFFzSUdKdmRXNWtLVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltWjFibU4wYVc5dVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFWnBiSFJsY25NdWMyVjBWVzVwYjI0b1pYaHdjaTVoY21kMWJXVnVkSE11YldGd0tDaGhLU0E5UGlCMWJtSnZkVzVrVm1GeWFXRmliR1Z6S0dFc0lHSnZkVzVrS1NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXhoYldKa1lWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNWxkMEp2ZFc1a0lEMGdZbTkxYm1RZ1B6OGdibVYzSUZObGRDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWVhKbklHOW1JR1Y0Y0hJdVlYSm5kVzFsYm5SektTQnVaWGRDYjNWdVpDNWhaR1FvWVhKbktUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjFibUp2ZFc1a1ZtRnlhV0ZpYkdWektHVjRjSEl1ZG1Gc2RXVXNJRzVsZDBKdmRXNWtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc2FYTjBYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRVpwYkhSbGNuTXVjMlYwVlc1cGIyNG9aWGh3Y2k1MllXeDFaWE11YldGd0tDaDJLU0E5UGlCMWJtSnZkVzVrVm1GeWFXRmliR1Z6S0hZc0lHSnZkVzVrS1NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTVsWjJGMFpXUmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVpYjNWdVpGWmhjbWxoWW14bGN5aGxlSEJ5TG1Ob2FXeGtMQ0JpYjNWdVpDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYjJKcVpXTjBYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRVpwYkhSbGNuTXVjMlYwVlc1cGIyNG9UMkpxWldOMExuWmhiSFZsY3lobGVIQnlMblpoYkhWbGN5a3ViV0Z3S0NoMktTQTlQaUIxYm1KdmRXNWtWbUZ5YVdGaWJHVnpLSFlzSUdKdmRXNWtLU2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luWmhjbWxoWW14bFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dKdmRXNWtJQ1ltSUdKdmRXNWtMbWhoY3lobGVIQnlMbTVoYldVcEtTQnlaWFIxY200Z2JtVjNJRk5sZENncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnY21WMGRYSnVJRzVsZHlCVFpYUW9XMlY0Y0hJdWJtRnRaVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lteHBkR1Z5WVd4Y0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRk5sZENncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRkpsYm1SbGNpQmhiaUJsZUhCeVpYTnphVzl1SUdGeklHRWdjM1J5YVc1bkxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCMGIxTjBjbWx1WnlobGVIQnlPaUJGZUhCeVpYTnphVzl1S1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNobGVIQnlMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ppYVc1aGNubHZjRndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxlSEJ5TG05d0lEMDlQU0JjSW1sdVpHVjRYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHQWtlM1J2VTNSeWFXNW5LR1Y0Y0hJdWJHVm1kQ2w5V3lSN2RHOVRkSEpwYm1jb1pYaHdjaTV5YVdkb2RDbDlYV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UzUnZVM1J5YVc1bktHVjRjSEl1YkdWbWRDbDlJQ1I3Wlhod2NpNXZjSDBnSkh0MGIxTjBjbWx1WnlobGVIQnlMbkpwWjJoMEtYMWdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1aMWJtTjBhVzl1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UzUnZVM1J5YVc1bktHVjRjSEl1Wm5WdVl5bDlLQ1I3Wlhod2NpNWhjbWQxYldWdWRITXViV0Z3S0hSdlUzUnlhVzVuS1M1cWIybHVLRndpTENCY0lpbDlLV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJHRnRZbVJoWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBb0pIdGxlSEJ5TG1GeVozVnRaVzUwY3k1cWIybHVLRndpTENCY0lpbDlLU0E5UGlBa2UzUnZVM1J5YVc1bktHVjRjSEl1ZG1Gc2RXVXBmV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJHbHpkRndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJnV3lSN1pYaHdjaTUyWVd4MVpYTXViV0Z3S0hSdlUzUnlhVzVuS1M1cWIybHVLRndpTENCY0lpbDlYV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJtVm5ZWFJsWkZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCZ0lTUjdkRzlUZEhKcGJtY29aWGh3Y2k1amFHbHNaQ2w5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnZZbXBsWTNSY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lIc2tlMDlpYW1WamRDNWxiblJ5YVdWektHVjRjSEl1ZG1Gc2RXVnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLQ2hiYXl3Z2RsMHBJRDArSUdBa2UydDlPaUFrZTNSdlUzUnlhVzVuS0hZcGZXQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM1cWIybHVLRndpTENCY0lpbDlmV0E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWRtRnlhV0ZpYkdWY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1pYaHdjaTV1WVcxbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXhwZEdWeVlXeGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjNjbUZ3Y0dWa0lEMGdUR2wwWlhKaGJITXVkM0poY0ZaaGJIVmxLR1Y0Y0hJdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hkM0poY0hCbFpDa2djbVYwZFhKdUlGd2liblZzYkZ3aU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjNhWFJqYUNBb2QzSmhjSEJsWkM1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKemRISnBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJnWENJa2UzZHlZWEJ3WldRdWRtRnNkV1Y5WENKZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFeHBkR1Z5WVd4ekxuUnZVM1J5YVc1bktIZHlZWEJ3WldRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdWNGNHOXlkQ0JqYjI1emRDQk9WVXhNSUQwZ1JYaHdjbVZ6YzJsdmJuTXViR2wwWlhKaGJDaHVkV3hzS1R0Y2JuMWNiaUlzSUNJdktpb2dVR0Z5YzJVZ2FXNXNhVzVsSUdacFpXeGtjeUJoYm1RZ2IzUm9aWElnWlcxaVpXUmtaV1FnYldWMFlXUmhkR0VnYVc0Z1lTQnNhVzVsTGlBcUwxeHVYRzVwYlhCdmNuUWdleUJRVWtsTlNWUkpWa1ZUSUgwZ1puSnZiU0JjSW1WNGNISmxjM05wYjI0dmNHRnljMlZ5WENJN1hHNXBiWEJ2Y25RZ2V5Qk1hWFJsY21Gc0lIMGdabkp2YlNCY0ltVjRjSEpsYzNOcGIyNHZiR2wwWlhKaGJGd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ1VDQm1jbTl0SUZ3aWNHRnljMmx0Ylc5dVhDSTdYRzVwYlhCdmNuUWdaVzF2YW1sU1pXZGxlQ0JtY205dElGd2laVzF2YW1rdGNtVm5aWGhjSWp0Y2JtbHRjRzl5ZENCN0lFcHpiMjVEYjI1MlpYSnphVzl1TENCS2MyOXVUR2wwWlhKaGJDQjlJR1p5YjIwZ1hDSnBibVJsZUM5MGVYQmxjeTlxYzI5dUwyTnZiVzF2Ymx3aU8xeHVYRzR2S2lvZ1FTQndZWEp6WldRZ2FXNXNhVzVsSUdacFpXeGtJR1p5YjIwZ1lTQnpjR1ZqYVdacFl5QnNhVzVsTGlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQk1iMk5oYkVsdWJHbHVaVVpwWld4a0lIdGNiaUFnSUNBdktpb2dWR2hsSUhKaGR5QndZWEp6WldRZ2EyVjVMaUFxTDF4dUlDQWdJR3RsZVRvZ2MzUnlhVzVuTzF4dUlDQWdJQzhxS2lCVWFHVWdjbUYzSUhaaGJIVmxJRzltSUhSb1pTQm1hV1ZzWkM0Z0tpOWNiaUFnSUNCMllXeDFaVG9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJVYUdVZ2MzUmhjblFnWTI5c2RXMXVJRzltSUhSb1pTQm1hV1ZzWkM0Z0tpOWNiaUFnSUNCemRHRnlkRG9nYm5WdFltVnlPMXh1SUNBZ0lDOHFLaUJVYUdVZ2MzUmhjblFnWTI5c2RXMXVJRzltSUhSb1pTQXFkbUZzZFdVcUlHWnZjaUIwYUdVZ1ptbGxiR1F1SUNvdlhHNGdJQ0FnYzNSaGNuUldZV3gxWlRvZ2JuVnRZbVZ5TzF4dUlDQWdJQzhxS2lCVWFHVWdaVzVrSUdOdmJIVnRiaUJ2WmlCMGFHVWdabWxsYkdRdUlDb3ZYRzRnSUNBZ1pXNWtPaUJ1ZFcxaVpYSTdYRzRnSUNBZ0x5b3FJRWxtSUhSb2FYTWdhVzVzYVc1bElHWnBaV3hrSUhkaGN5QmtaV1pwYm1Wa0lIWnBZU0JoSUhkeVlYQndhVzVuSUNnbld5Y2diM0lnSnlnbklHOXlJQ2RzYVc1ckp5a3NJSFJvWlc0Z2RHaGxJSGR5WVhCd2FXNW5JSFJvWVhRZ2QyRnpJSFZ6WldRdUlDb3ZYRzRnSUNBZ2QzSmhjSEJwYm1jL09pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtpQkdkV3hzSUdsdWJHbHVaU0JtYVdWc1pDQnRaWFJoWkdGMFlTQm1iM0lnWVc0Z2IySnFaV04wTGlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkpibXhwYm1WR2FXVnNaQ0I3WEc0Z0lDQWdMeW9xSUZSb1pTQmhZM1IxWVd3Z2EyVjVJR1JsYzJOeWFXSnBibWNnZEdobElHbHViR2x1WlNCbWFXVnNaQzRnS2k5Y2JpQWdJQ0JyWlhrNklITjBjbWx1Wnp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSEpoZHlCMllXeDFaU0J2WmlCMGFHVWdhVzVzYVc1bElHWnBaV3hrTGlBcUwxeHVJQ0FnSUhKaGR6b2djM1J5YVc1bk8xeHVJQ0FnSUM4cUtpQlVhR1VnY0dGeWMyVmtJSFpoYkhWbExpQXFMMXh1SUNBZ0lIWmhiSFZsT2lCTWFYUmxjbUZzTzF4dUlDQWdJQzhxS2lCR2RXeHNJSEJ2YzJsMGFXOXVJR2x1Wm05eWJXRjBhVzl1SUdadmNpQjNhR1Z5WlNCMGFHVWdhVzVzYVc1bElHWnBaV3hrSUdseklHeHZZMkYwWldRZ2FXNGdkR2hsSUdSdlkzVnRaVzUwTGlBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCN1hHNGdJQ0FnSUNBZ0lDOHFLaUJVYUdVZ2JHbHVaU0J1ZFcxaVpYSWdkR2hsSUdsdWJHbHVaU0JtYVdWc1pDQmhjSEJsWVhKeklHOXVMaUFxTDF4dUlDQWdJQ0FnSUNCc2FXNWxPaUJ1ZFcxaVpYSTdYRzRnSUNBZ0lDQWdJQzhxS2lCVWFHVWdjM1JoY25RZ1kyOXNkVzF1SUc5bUlIUm9aU0JtYVdWc1pDNGdLaTljYmlBZ0lDQWdJQ0FnYzNSaGNuUTZJRzUxYldKbGNqdGNiaUFnSUNBZ0lDQWdMeW9xSUZSb1pTQnpkR0Z5ZENCamIyeDFiVzRnYjJZZ2RHaGxJQ3AyWVd4MVpTb2dabTl5SUhSb1pTQm1hV1ZzWkM0Z1NXMXRaV1JwWVhSbGJIa2dZV1owWlhJZ2RHaGxJQ2M2T2ljdUlDb3ZYRzRnSUNBZ0lDQWdJSE4wWVhKMFZtRnNkV1U2SUc1MWJXSmxjanRjYmlBZ0lDQWdJQ0FnTHlvcUlGUm9aU0JsYm1RZ1kyOXNkVzF1SUc5bUlIUm9aU0JtYVdWc1pDNGdLaTljYmlBZ0lDQWdJQ0FnWlc1a09pQnVkVzFpWlhJN1hHNGdJQ0FnZlR0Y2JpQWdJQ0F2S2lvZ1NXWWdkR2hwY3lCcGJteHBibVVnWm1sbGJHUWdkMkZ6SUdSbFptbHVaV1FnZG1saElHRWdkM0poY0hCcGJtY2dLQ2RiSnlCdmNpQW5LQ2NnYjNJZ0oyeHBibXNuS1N3Z2RHaGxiaUIwYUdVZ2QzSmhjSEJwYm1jZ2RHaGhkQ0IzWVhNZ2RYTmxaQzRnS2k5Y2JpQWdJQ0IzY21Gd2NHbHVaejg2SUhOMGNtbHVaenRjYm4xY2JseHVMeW9xSUVwVFQwNHNJSE5sY21saGJHbDZZV0pzWlNCeVpYQnlaWE5sYm5SaGRHbHZiaUJ2WmlCaGJpQnBibXhwYm1VZ1ptbGxiR1F1SUNvdlhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFcHpiMjVKYm14cGJtVkdhV1ZzWkNCN1hHNGdJQ0FnTHlvcUlGUm9aU0JoWTNSMVlXd2dhMlY1SUdSbGMyTnlhV0pwYm1jZ2RHaGxJR2x1YkdsdVpTQm1hV1ZzWkM0Z0tpOWNiaUFnSUNCclpYazZJSE4wY21sdVp6dGNiaUFnSUNBdktpb2dWR2hsSUhKaGR5QjJZV3gxWlNCdlppQjBhR1VnYVc1c2FXNWxJR1pwWld4a0xpQXFMMXh1SUNBZ0lISmhkem9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJVYUdVZ2NHRnljMlZrSUhaaGJIVmxMaUFxTDF4dUlDQWdJSFpoYkhWbE9pQktjMjl1VEdsMFpYSmhiRHRjYmlBZ0lDQXZLaW9nUm5Wc2JDQndiM05wZEdsdmJpQnBibVp2Y20xaGRHbHZiaUJtYjNJZ2QyaGxjbVVnZEdobElHbHViR2x1WlNCbWFXVnNaQ0JwY3lCc2IyTmhkR1ZrSUdsdUlIUm9aU0JrYjJOMWJXVnVkQzRnS2k5Y2JpQWdJQ0J3YjNOcGRHbHZiam9nZTF4dUlDQWdJQ0FnSUNBdktpb2dWR2hsSUd4cGJtVWdiblZ0WW1WeUlIUm9aU0JwYm14cGJtVWdabWxsYkdRZ1lYQndaV0Z5Y3lCdmJpNGdLaTljYmlBZ0lDQWdJQ0FnYkdsdVpUb2diblZ0WW1WeU8xeHVJQ0FnSUNBZ0lDQXZLaW9nVkdobElITjBZWEowSUdOdmJIVnRiaUJ2WmlCMGFHVWdabWxsYkdRdUlDb3ZYRzRnSUNBZ0lDQWdJSE4wWVhKME9pQnVkVzFpWlhJN1hHNGdJQ0FnSUNBZ0lDOHFLaUJVYUdVZ2MzUmhjblFnWTI5c2RXMXVJRzltSUhSb1pTQXFkbUZzZFdVcUlHWnZjaUIwYUdVZ1ptbGxiR1F1SUVsdGJXVmthV0YwWld4NUlHRm1kR1Z5SUhSb1pTQW5Pam9uTGlBcUwxeHVJQ0FnSUNBZ0lDQnpkR0Z5ZEZaaGJIVmxPaUJ1ZFcxaVpYSTdYRzRnSUNBZ0lDQWdJQzhxS2lCVWFHVWdaVzVrSUdOdmJIVnRiaUJ2WmlCMGFHVWdabWxsYkdRdUlDb3ZYRzRnSUNBZ0lDQWdJR1Z1WkRvZ2JuVnRZbVZ5TzF4dUlDQWdJSDA3WEc0Z0lDQWdMeW9xSUVsbUlIUm9hWE1nYVc1c2FXNWxJR1pwWld4a0lIZGhjeUJrWldacGJtVmtJSFpwWVNCaElIZHlZWEJ3YVc1bklDZ25XeWNnYjNJZ0p5Z25JRzl5SUNkc2FXNXJKeWtzSUhSb1pXNGdkR2hsSUhkeVlYQndhVzVuSUhSb1lYUWdkMkZ6SUhWelpXUXVJQ292WEc0Z0lDQWdkM0poY0hCcGJtYy9PaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JpOHFLaUJEYjI1MlpYSjBJR0Z1SUdsdWJHbHVaU0JtYVdWc1pDQjBieUJoSUVwVFQwNGdabTl5YldGMExpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3B6YjI1SmJteHBibVZHYVdWc1pDaG1hV1ZzWkRvZ1NXNXNhVzVsUm1sbGJHUXBPaUJLYzI5dVNXNXNhVzVsUm1sbGJHUWdlMXh1SUNBZ0lISmxkSFZ5YmlCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCbWFXVnNaQ3dnZXlCMllXeDFaVG9nU25OdmJrTnZiblpsY25OcGIyNHVhbk52YmlobWFXVnNaQzUyWVd4MVpTa2dmU2s3WEc1OVhHNWNiaThxS2lCRGIyNTJaWEowSUdFZ1NsTlBUaUJwYm14cGJtVWdabWxsYkdRZ1ltRmpheUIwYnlCaElISmxaM1ZzWVhJZ1ptbGxiR1F1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RtRnNkV1ZKYm14cGJtVkdhV1ZzWkNobWFXVnNaRG9nU25OdmJrbHViR2x1WlVacFpXeGtLVG9nU1c1c2FXNWxSbWxsYkdRZ2UxeHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JtYVdWc1pDd2dleUIyWVd4MVpUb2dTbk52YmtOdmJuWmxjbk5wYjI0dWRtRnNkV1VvWm1sbGJHUXVkbUZzZFdVcElIMHBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTkpibXhwYm1WR2FXVnNaQ2hzYjJOaGJEb2dURzlqWVd4SmJteHBibVZHYVdWc1pDd2diR2x1Wlc1dk9pQnVkVzFpWlhJcE9pQkpibXhwYm1WR2FXVnNaRHRjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzBsdWJHbHVaVVpwWld4a0tHeHZZMkZzT2lCTWIyTmhiRWx1YkdsdVpVWnBaV3hrVzEwc0lHeHBibVZ1YnpvZ2JuVnRZbVZ5S1RvZ1NXNXNhVzVsUm1sbGJHUmJYVHRjYmk4cUtpQkRiMjUyWlhKMElHRWdiRzlqWVd3Z2FXNXNhVzVsSUdacFpXeGtJR2x1ZEc4Z1lTQm1kV3hzSUdsdWJHbHVaU0JtYVdWc1pDQmllU0J3WlhKbWIzSnRhVzVuSUhCaGNuTnBibWNnWVc1a0lHRmtaR2x1WnlCMGFHVWdZMjl5Y21WamRDQnNhVzVsSUc1MWJXSmxjaTRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaGMwbHViR2x1WlVacFpXeGtLRnh1SUNBZ0lHeHZZMkZzT2lCTWIyTmhiRWx1YkdsdVpVWnBaV3hrSUh3Z1RHOWpZV3hKYm14cGJtVkdhV1ZzWkZ0ZExGeHVJQ0FnSUd4cGJtVnViem9nYm5WdFltVnlYRzRwT2lCSmJteHBibVZHYVdWc1pDQjhJRWx1YkdsdVpVWnBaV3hrVzEwZ2UxeHVJQ0FnSUdsbUlDaEJjbkpoZVM1cGMwRnljbUY1S0d4dlkyRnNLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYkc5allXd3ViV0Z3S0NobUtTQTlQaUJoYzBsdWJHbHVaVVpwWld4a0tHWXNJR3hwYm1WdWJ5a3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lHdGxlVG9nYkc5allXd3VhMlY1TEZ4dUlDQWdJQ0FnSUNCeVlYYzZJR3h2WTJGc0xuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCMllXeDFaVG9nY0dGeWMyVkpibXhwYm1WV1lXeDFaU2hzYjJOaGJDNTJZV3gxWlNrc1hHNGdJQ0FnSUNBZ0lIQnZjMmwwYVc5dU9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxPaUJzYVc1bGJtOHNYRzRnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRG9nYkc5allXd3VjM1JoY25Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRGWmhiSFZsT2lCc2IyTmhiQzV6ZEdGeWRGWmhiSFZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaVzVrT2lCc2IyTmhiQzVsYm1Rc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSGR5WVhCd2FXNW5PaUJzYjJOaGJDNTNjbUZ3Y0dsdVp5eGNiaUFnSUNCOU8xeHVmVnh1WEc0dktpb2dWR2hsSUhkeVlYQndaWElnWTJoaGNtRmpkR1Z5Y3lCMGFHRjBJR05oYmlCaVpTQjFjMlZrSUhSdklHUmxabWx1WlNCaGJpQnBibXhwYm1VZ1ptbGxiR1F1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnU1U1TVNVNUZYMFpKUlV4RVgxZFNRVkJRUlZKVE9pQlNaV0ZrYjI1c2VUeFNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrUGlBOUlFOWlhbVZqZEM1bWNtVmxlbVVvZTF4dUlDQWdJRndpVzF3aU9pQmNJbDFjSWl4Y2JpQWdJQ0JjSWloY0lqb2dYQ0lwWENJc1hHNTlLVHRjYmx4dUx5b3FYRzRnS2lCR2FXNWtJR0VnYldGMFkyaHBibWNnWTJ4dmMybHVaeUJpY21GamEyVjBJSFJvWVhRZ2IyTmpkWEp6SUdGMElHOXlJR0ZtZEdWeUlHQnpkR0Z5ZEdBc0lISmxjM0JsWTNScGJtY2dibVZ6ZEdsdVp5QmhibVFnWlhOallYQmxjeTRnU1dZZ1ptOTFibVFzWEc0Z0tpQnlaWFIxY201eklIUm9aU0IyWVd4MVpTQmpiMjUwWVdsdVpXUWdkMmwwYUdsdUlHRnVaQ0IwYUdVZ2MzUnlhVzVuSUdsdVpHVjRJR0ZtZEdWeUlIUm9aU0JsYm1RZ2IyWWdkR2hsSUhaaGJIVmxMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQm1hVzVrUTJ4dmMybHVaeWhjYmlBZ0lDQnNhVzVsT2lCemRISnBibWNzWEc0Z0lDQWdjM1JoY25RNklHNTFiV0psY2l4Y2JpQWdJQ0J2Y0dWdU9pQnpkSEpwYm1jc1hHNGdJQ0FnWTJ4dmMyVTZJSE4wY21sdVoxeHVLVG9nZXlCMllXeDFaVG9nYzNSeWFXNW5PeUJsYm1SSmJtUmxlRG9nYm5WdFltVnlJSDBnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUd4bGRDQnVaWE4wYVc1bklEMGdNRHRjYmlBZ0lDQnNaWFFnWlhOallYQmxaQ0E5SUdaaGJITmxPMXh1SUNBZ0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ2MzUmhjblE3SUdsdVpHVjRJRHdnYkdsdVpTNXNaVzVuZEdnN0lHbHVaR1Y0S3lzcElIdGNiaUFnSUNBZ0lDQWdiR1YwSUdOb1lYSWdQU0JzYVc1bExtTm9ZWEpCZENocGJtUmxlQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdRV3hzYjNkeklHWnZjaUJrYjNWaWJHVWdaWE5qWVhCbGN5QnNhV3RsSUNkY1hGeGNKeUIwYnlCaVpTQnlaVzVrWlhKbFpDQnViM0p0WVd4c2VTNWNiaUFnSUNBZ0lDQWdhV1lnS0dOb1lYSWdQVDBnWENKY1hGeGNYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Z6WTJGd1pXUWdQU0FoWlhOallYQmxaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1NXWWdaWE5qWVhCbFpDd2dhV2R1YjNKbElIUm9aU0J1WlhoMElHTm9ZWEpoWTNSbGNpQm1iM0lnWTI5dGNIVjBhVzVuSUc1bGMzUnBibWNzSUhKbFoyRnlaR3hsYzNNZ2IyWWdkMmhoZENCcGRDQnBjeTVjYmlBZ0lDQWdJQ0FnYVdZZ0tHVnpZMkZ3WldRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWelkyRndaV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHTm9ZWElnUFQwZ2IzQmxiaWtnYm1WemRHbHVaeXNyTzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFHRnlJRDA5SUdOc2IzTmxLU0J1WlhOMGFXNW5MUzA3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdUMjVzZVNCdlkyTjFjbk1nYVdZZ2QyVWdZWEpsSUc5dUlHRWdZMnh2YzJVZ1kyaGhjbUZqZEdWeUlHRnVaQ0IwY21obGNtVWdhWE1nYm04Z2JXOXlaU0J1WlhOMGFXNW5MbHh1SUNBZ0lDQWdJQ0JwWmlBb2JtVnpkR2x1WnlBOElEQXBJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQnNhVzVsTG5OMVluTjBjbWx1WnloemRHRnlkQ3dnYVc1a1pYZ3BMblJ5YVcwb0tTd2daVzVrU1c1a1pYZzZJR2x1WkdWNElDc2dNU0I5TzF4dVhHNGdJQ0FnSUNBZ0lHVnpZMkZ3WldRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1ZlZ4dVhHNHZLaW9nUm1sdVpDQjBhR1VnSnpvNkp5QnpaWEJoY21GMGIzSWdhVzRnWVc0Z2FXNXNhVzVsSUdacFpXeGtMaUFxTDF4dVpuVnVZM1JwYjI0Z1ptbHVaRk5sY0dGeVlYUnZjaWhzYVc1bE9pQnpkSEpwYm1jc0lITjBZWEowT2lCdWRXMWlaWElwT2lCN0lHdGxlVG9nYzNSeWFXNW5PeUIyWVd4MVpVbHVaR1Y0T2lCdWRXMWlaWElnZlNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ2JHVjBJSE5sY0NBOUlHeHBibVV1YVc1a1pYaFBaaWhjSWpvNlhDSXNJSE4wWVhKMEtUdGNiaUFnSUNCcFppQW9jMlZ3SUR3Z01Da2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lISmxkSFZ5YmlCN0lHdGxlVG9nYkdsdVpTNXpkV0p6ZEhKcGJtY29jM1JoY25Rc0lITmxjQ2t1ZEhKcGJTZ3BMQ0IyWVd4MVpVbHVaR1Y0T2lCelpYQWdLeUF5SUgwN1hHNTlYRzVjYmk4cUtpQlVjbmtnZEc4Z1kyOXRjR3hsZEdWc2VTQndZWEp6WlNCaGJpQnBibXhwYm1VZ1ptbGxiR1FnYzNSaGNuUnBibWNnWVhRZ2RHaGxJR2RwZG1WdUlIQnZjMmwwYVc5dUxpQkJjM04xYldWeklHQnpkR0Z5ZEdBZ2FYTWdiMjRnWVNCM2NtRndjR2x1WnlCamFHRnlZV04wWlhJdUlDb3ZYRzVtZFc1amRHbHZiaUJtYVc1a1UzQmxZMmxtYVdOSmJteHBibVZHYVdWc1pDaHNhVzVsT2lCemRISnBibWNzSUhOMFlYSjBPaUJ1ZFcxaVpYSXBPaUJNYjJOaGJFbHViR2x1WlVacFpXeGtJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0JzWlhRZ2IzQmxiaUE5SUd4cGJtVXVZMmhoY2tGMEtITjBZWEowS1R0Y2JseHVJQ0FnSUd4bGRDQnJaWGtnUFNCbWFXNWtVMlZ3WVhKaGRHOXlLR3hwYm1Vc0lITjBZWEowSUNzZ01TazdYRzRnSUNBZ2FXWWdLR3RsZVNBOVBUMGdkVzVrWldacGJtVmtLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdMeThnUm1GcGJDQjBhR1VnYldGMFkyZ2dhV1lnZDJVZ1ptbHVaQ0JoYm5rZ2MyVndZWEpoZEc5eUlHTm9ZWEpoWTNSbGNuTWdLRzV2ZENCaGJHeHZkMlZrSUdsdUlHdGxlWE1wTGx4dUlDQWdJR1p2Y2lBb2JHVjBJSE5sY0NCdlppQlBZbXBsWTNRdWEyVjVjeWhKVGt4SlRrVmZSa2xGVEVSZlYxSkJVRkJGVWxNcExtTnZibU5oZENoUFltcGxZM1F1ZG1Gc2RXVnpLRWxPVEVsT1JWOUdTVVZNUkY5WFVrRlFVRVZTVXlrcEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoclpYa3VhMlY1TG1sdVkyeDFaR1Z6S0hObGNDa3BJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2JHVjBJSFpoYkhWbElEMGdabWx1WkVOc2IzTnBibWNvYkdsdVpTd2dhMlY1TG5aaGJIVmxTVzVrWlhnc0lHOXdaVzRzSUVsT1RFbE9SVjlHU1VWTVJGOVhVa0ZRVUVWU1UxdHZjR1Z1WFNrN1hHNGdJQ0FnYVdZZ0tIWmhiSFZsSUQwOVBTQjFibVJsWm1sdVpXUXBJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQnJaWGs2SUd0bGVTNXJaWGtzWEc0Z0lDQWdJQ0FnSUhaaGJIVmxPaUIyWVd4MVpTNTJZV3gxWlN4Y2JpQWdJQ0FnSUNBZ2MzUmhjblE2SUhOMFlYSjBMRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRGWmhiSFZsT2lCclpYa3VkbUZzZFdWSmJtUmxlQ3hjYmlBZ0lDQWdJQ0FnWlc1a09pQjJZV3gxWlM1bGJtUkpibVJsZUN4Y2JpQWdJQ0FnSUNBZ2QzSmhjSEJwYm1jNklHOXdaVzRzWEc0Z0lDQWdmVHRjYm4xY2JseHVMeW9xSUZCaGNuTmxJR0VnZEdWNGRIVmhiQ0JwYm14cGJtVWdabWxsYkdRZ2RtRnNkV1VnYVc1MGJ5QnpiMjFsZEdocGJtY2dkMlVnWTJGdUlIZHZjbXNnZDJsMGFDNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3WVhKelpVbHViR2x1WlZaaGJIVmxLSFpoYkhWbE9pQnpkSEpwYm1jcE9pQk1hWFJsY21Gc0lIdGNiaUFnSUNBdkx5QkZiWEIwZVNCcGJteHBibVVnZG1Gc2RXVnpJQ2hwTG1VdUxDQnVieUIwWlhoMEtTQnphRzkxYkdRZ2JXRndJSFJ2SUc1MWJHd2dkRzhnYldGMFkyZ2diRzl1WnkxMFpYSnRJRVJoZEdGMmFXVjNJSE5sYldGdWRHbGpjeTVjYmlBZ0lDQXZMeUJPZFd4c0lHbHpJR0ZzYzI4Z1lTQnRiM0psSUhWdWFYWmxjbk5oYkNCMGVYQmxJSFJ2SUdSbFlXd2dkMmwwYUNCMGFHRnVJSE4wY21sdVozTXNJSE5wYm1ObElHRnNiQ0JtZFc1amRHbHZibk1nWVdOalpYQjBJRzUxYkd4ekxseHVJQ0FnSUdsbUlDaDJZV3gxWlM1MGNtbHRLQ2tnUFQwZ1hDSmNJaWtnY21WMGRYSnVJRzUxYkd3N1hHNWNiaUFnSUNBdkx5QlVhR1VnYzNSeWFYQndaV1FnYkdsMFpYSmhiQ0JtYVdWc1pDQndZWEp6WlhJZ2RXNWtaWEp6ZEdGdVpITWdZV3hzSUc5bUlIUm9aU0J1YjI0dFlYSnlZWGt2Ym05dUxXOWlhbVZqZENCbWFXVnNaSE1nWVc1a0lHTmhiaUJ3WVhKelpTQjBhR1Z0SUdadmNpQjFjeTVjYmlBZ0lDQXZMeUJKYm14cGJtVWdabWxsYkdRZ2IySnFaV04wY3lCaGNtVWdibTkwSUdOMWNuSmxiblJzZVNCemRYQndiM0owWldRN0lHbHViR2x1WlNCaGNuSmhlU0J2WW1wbFkzUnpJR2hoZG1VZ2RHOGdZbVVnYUdGdVpHeGxaQ0JpZVNCMGFHVWdjR0Z5YzJWeVhHNGdJQ0FnTHk4Z2MyVndZWEpoZEdWc2VTNWNiaUFnSUNCc1pYUWdhVzVzYVc1bElEMGdVRkpKVFVsVVNWWkZVeTVwYm14cGJtVkdhV1ZzWkM1d1lYSnpaU2gyWVd4MVpTazdYRzRnSUNBZ2FXWWdLR2x1YkdsdVpTNXpkR0YwZFhNcElISmxkSFZ5YmlCcGJteHBibVV1ZG1Gc2RXVTdYRzRnSUNBZ1pXeHpaU0J5WlhSMWNtNGdkbUZzZFdVN1hHNTlYRzVjYmk4cUtpQkZlSFJ5WVdOMGN5QnBibXhwYm1VZ1ptbGxiR1J6SUc5bUlIUm9aU0JtYjNKdElDZGJhMlY1T2pvZ2RtRnNkV1ZkSnlCbWNtOXRJR0VnYkdsdVpTQnZaaUIwWlhoMExpQlVhR2x6SUdseklHUnZibVVnYVc0Z1lTQnlaV3hoZEdsMlpXeDVYRzRnS2lCY0luSnZZblZ6ZEZ3aUlIZGhlU0IwYnlCaGRtOXBaQ0JtWVdsc2FXNW5JR1IxWlNCMGJ5QmlZV1FnYm1WemRHbHVaeUJ2Y2lCdmRHaGxjaUJwYm5SbGNtWmxjbWx1WnlCTllYSnJaRzkzYmlCemVXMWliMnh6T2x4dUlDcGNiaUFxSUMwZ1RHOXZheUJtYjNJZ1lXNTVJSGR5WVhCd1pYSnpJQ2duV3ljZ1lXNWtJQ2NvSnlrZ2FXNGdkR2hsSUd4cGJtVXNJSFJ5ZVdsdVp5QjBieUJ3WVhKelpTQjNhR0YwWlhabGNpQmpiMjFsY3lCaFpuUmxjaUJwZENCaGN5QmhiaUJwYm14cGJtVWdhMlY1T2pvdVhHNGdLaUF0SUVsbUlITjFZMk5sYzNObWRXd3NJSE5qWVc0Z2RXNTBhV3dnZVc5MUlHWnBibVFnWVNCdFlYUmphR2x1WnlCbGJtUWdZbkpoWTJ0bGRDd2dZVzVrSUhCaGNuTmxJSGRvWVhSbGRtVnlJSEpsYldGcGJuTWdZWE1nWVc0Z2FXNXNhVzVsSUhaaGJIVmxMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pYaDBjbUZqZEVsdWJHbHVaVVpwWld4a2N5aHNhVzVsT2lCemRISnBibWNzSUdsdVkyeDFaR1ZVWVhOclJtbGxiR1J6T2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlVwT2lCTWIyTmhiRWx1YkdsdVpVWnBaV3hrVzEwZ2UxeHVJQ0FnSUd4bGRDQm1hV1ZzWkhNNklFeHZZMkZzU1c1c2FXNWxSbWxsYkdSYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb2JHVjBJSGR5WVhCd1pYSWdiMllnVDJKcVpXTjBMbXRsZVhNb1NVNU1TVTVGWDBaSlJVeEVYMWRTUVZCUVJWSlRLU2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdabTkxYm1SSmJtUmxlQ0E5SUd4cGJtVXVhVzVrWlhoUFppaDNjbUZ3Y0dWeUtUdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHWnZkVzVrU1c1a1pYZ2dQajBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElIQmhjbk5sWkVacFpXeGtJRDBnWm1sdVpGTndaV05wWm1salNXNXNhVzVsUm1sbGJHUW9iR2x1WlN3Z1ptOTFibVJKYm1SbGVDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWEJoY25ObFpFWnBaV3hrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOTFibVJKYm1SbGVDQTlJR3hwYm1VdWFXNWtaWGhQWmloM2NtRndjR1Z5TENCbWIzVnVaRWx1WkdWNElDc2dNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnBaV3hrY3k1d2RYTm9LSEJoY25ObFpFWnBaV3hrS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2ZFc1a1NXNWtaWGdnUFNCc2FXNWxMbWx1WkdWNFQyWW9kM0poY0hCbGNpd2djR0Z5YzJWa1JtbGxiR1F1Wlc1a0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hwYm1Oc2RXUmxWR0Z6YTBacFpXeGtjeWtnWm1sbGJHUnpJRDBnWm1sbGJHUnpMbU52Ym1OaGRDaGxlSFJ5WVdOMFUzQmxZMmxoYkZSaGMydEdhV1ZzWkhNb2JHbHVaU2twTzF4dVhHNGdJQ0FnWm1sbGJHUnpMbk52Y25Rb0tHRXNJR0lwSUQwK0lHRXVjM1JoY25RZ0xTQmlMbk4wWVhKMEtUdGNibHh1SUNBZ0lHeGxkQ0JtYVd4MFpYSmxaRVpwWld4a2N6b2dURzlqWVd4SmJteHBibVZHYVdWc1pGdGRJRDBnVzEwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCbWFXVnNaSE11YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0drZ1BUMGdNQ0I4ZkNCbWFXeDBaWEpsWkVacFpXeGtjMXRtYVd4MFpYSmxaRVpwWld4a2N5NXNaVzVuZEdnZ0xTQXhYUzVsYm1RZ1BDQm1hV1ZzWkhOYmFWMHVjM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdacGJIUmxjbVZrUm1sbGJHUnpMbkIxYzJnb1ptbGxiR1J6VzJsZEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWm1sc2RHVnlaV1JHYVdWc1pITTdYRzU5WEc1Y2JpOHFLaUJXWVd4cFpHRjBaWE1nZEdoaGRDQmhJSEpoZHlCbWFXVnNaQ0J1WVcxbElHaGhjeUJoSUhaaGJHbGtJR1p2Y20wdUlDb3ZYRzVqYjI1emRDQkdWVXhNWDB4SlRrVmZTMFZaWDFCQlVsUTZJRkF1VUdGeWMyVnlQSE4wY21sdVp6NGdQU0JRTG1Gc2RDaGNiaUFnSUNCUUxuSmxaMlY0Y0NodVpYY2dVbVZuUlhod0tHVnRiMnBwVW1WblpYZ29LU3dnWENKMVhDSXBLU3hjYmlBZ0lDQlFMbkpsWjJWNGNDZ3ZXekF0T1Z4Y2NIdE1aWFIwWlhKOVhGeDNYRnh6WHk4dFhTc3ZkU2xjYmlsY2JpQWdJQ0F1YldGdWVTZ3BYRzRnSUNBZ0xtMWhjQ2dvY0dGeWRITXBJRDArSUhCaGNuUnpMbXB2YVc0b1hDSmNJaWtwTzF4dVhHNWpiMjV6ZENCR1ZVeE1YMHhKVGtWZlMwVlpYMUJCVWxORlVqb2dVQzVRWVhKelpYSThjM1J5YVc1blBpQTlJRkF1Y21WblpYaHdLQzliWGpBdE9WeGNkMXhjY0h0TVpYUjBaWEo5WFNvdmRTbGNiaUFnSUNBdWRHaGxiaWhHVlV4TVgweEpUa1ZmUzBWWlgxQkJVbFFwWEc0Z0lDQWdMbk5yYVhBb1VDNXlaV2RsZUhBb0wxdGZYRndxZm1CZEtpOTFLU2s3WEc1Y2JpOHFLaUJCZEhSbGJYQjBJSFJ2SUdWNGRISmhZM1FnWVNCbWRXeHNMV3hwYm1VZ1ptbGxiR1FnS0V0bGVUbzZJRlpoYkhWbElHTnZibk4xYldsdVp5QjBhR1VnWlc1MGFYSmxJR052Ym5SbGJuUWdiR2x1WlNrdUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaWGgwY21GamRFWjFiR3hNYVc1bFJtbGxiR1FvZEdWNGREb2djM1J5YVc1bktUb2dURzlqWVd4SmJteHBibVZHYVdWc1pDQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdiR1YwSUhObGNDQTlJR1pwYm1SVFpYQmhjbUYwYjNJb2RHVjRkQ3dnTUNrN1hHNGdJQ0FnYVdZZ0tDRnpaWEFwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0F2THlCWFpTQnVaV1ZrSUhSdklIQnZjM1F0Y0hKdlkyVnpjeUIwYUdVZ2EyVjVJSFJ2SUdSeWIzQWdkVzV1WldObGMzTmhjbmtnYjNCbGJtbHVaeUJoYm01dmRHRjBhVzl1Y3lCaGN5QjNaV3hzSUdGelhHNGdJQ0FnTHk4Z1pISnZjQ0J6ZFhKeWIzVnVaR2x1WnlCTllYSnJaRzkzYmk1Y2JpQWdJQ0JzWlhRZ2NtVmhiRXRsZVNBOUlFWlZURXhmVEVsT1JWOUxSVmxmVUVGU1UwVlNMbkJoY25ObEtITmxjQzVyWlhrcE8xeHVJQ0FnSUdsbUlDZ2hjbVZoYkV0bGVTNXpkR0YwZFhNcElISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNCclpYazZJSEpsWVd4TFpYa3VkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lIWmhiSFZsT2lCMFpYaDBMbk4xWW5OMGNtbHVaeWh6WlhBdWRtRnNkV1ZKYm1SbGVDa3VkSEpwYlNncExGeHVJQ0FnSUNBZ0lDQnpkR0Z5ZERvZ01DeGNiaUFnSUNBZ0lDQWdjM1JoY25SV1lXeDFaVG9nYzJWd0xuWmhiSFZsU1c1a1pYZ3NYRzRnSUNBZ0lDQWdJR1Z1WkRvZ2RHVjRkQzVzWlc1bmRHZ3NYRzRnSUNBZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRU5TUlVGVVJVUmZSRUZVUlY5U1JVZEZXQ0E5SUM5Y1hIVjdNamM1TlgxY1hITXFLRnhjWkhzMGZTMWNYR1I3TW4wdFhGeGtleko5S1M5MU8xeHVaWGh3YjNKMElHTnZibk4wSUVSVlJWOUVRVlJGWDFKRlIwVllJRDBnTHlnL09seGNkWHN4UmpSRE5YMThYRngxZXpGR05FTTJmWHhjWEhWN01VWTFSRE45WEZ4MWUwWkZNRVo5UHlsY1hITXFLRnhjWkhzMGZTMWNYR1I3TW4wdFhGeGtleko5S1M5MU8xeHVaWGh3YjNKMElHTnZibk4wSUVSUFRrVmZSRUZVUlY5U1JVZEZXQ0E5SUM5Y1hIVjdNamN3TlgxY1hITXFLRnhjWkhzMGZTMWNYR1I3TW4wdFhGeGtleko5S1M5MU8xeHVaWGh3YjNKMElHTnZibk4wSUZORFNFVkVWVXhGUkY5RVFWUkZYMUpGUjBWWUlEMGdMMXRjWEhWN01qTkdNMzFjWEhWN01qTXhRbjFkWEZ4ektpaGNYR1I3TkgwdFhGeGtleko5TFZ4Y1pIc3lmU2t2ZFR0Y2JtVjRjRzl5ZENCamIyNXpkQ0JUVkVGU1ZGOUVRVlJGWDFKRlIwVllJRDBnTDF4Y2RYc3hSalpGUW4xY1hITXFLRnhjWkhzMGZTMWNYR1I3TW4wdFhGeGtleko5S1M5MU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JVMVBTa2xmVWtWSFJWaEZVeUE5SUZ0Y2JpQWdJQ0I3SUhKbFoyVjRPaUJEVWtWQlZFVkVYMFJCVkVWZlVrVkhSVmdzSUd0bGVUb2dYQ0pqY21WaGRHVmtYQ0lnZlN4Y2JpQWdJQ0I3SUhKbFoyVjRPaUJUVkVGU1ZGOUVRVlJGWDFKRlIwVllMQ0JyWlhrNklGd2ljM1JoY25SY0lpQjlMRnh1SUNBZ0lIc2djbVZuWlhnNklGTkRTRVZFVlV4RlJGOUVRVlJGWDFKRlIwVllMQ0JyWlhrNklGd2ljMk5vWldSMWJHVmtYQ0lnZlN4Y2JpQWdJQ0I3SUhKbFoyVjRPaUJFVlVWZlJFRlVSVjlTUlVkRldDd2dhMlY1T2lCY0ltUjFaVndpSUgwc1hHNGdJQ0FnZXlCeVpXZGxlRG9nUkU5T1JWOUVRVlJGWDFKRlIwVllMQ0JyWlhrNklGd2lZMjl0Y0d4bGRHbHZibHdpSUgwc1hHNWRPMXh1WEc0dktpb2dVR0Z5YzJVZ2MzQmxZMmxoYkNCamIyMXdiR1YwWldRdlpIVmxMMlJ2Ym1VZ2RHRnpheUJtYVdWc1pITWdkMmhwWTJnZ1lYSmxJRzFoY210bFpDQjJhV0VnWlcxdmFta3VJQ292WEc1bWRXNWpkR2x2YmlCbGVIUnlZV04wVTNCbFkybGhiRlJoYzJ0R2FXVnNaSE1vYkdsdVpUb2djM1J5YVc1bktUb2dURzlqWVd4SmJteHBibVZHYVdWc1pGdGRJSHRjYmlBZ0lDQnNaWFFnY21WemRXeDBjem9nVEc5allXeEpibXhwYm1WR2FXVnNaRnRkSUQwZ1cxMDdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQjdJSEpsWjJWNExDQnJaWGtnZlNCdlppQkZUVTlLU1Y5U1JVZEZXRVZUS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHTm9JRDBnY21WblpYZ3VaWGhsWXloc2FXNWxLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnRZWFJqYUNrZ1kyOXVkR2x1ZFdVN1hHNWNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MGN5NXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3RsZVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQnRZWFJqYUZzeFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMFlYSjBPaUJ0WVhSamFDNXBibVJsZUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMFZtRnNkV1U2SUcxaGRHTm9MbWx1WkdWNElDc2dNU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnVaRG9nYldGMFkyZ3VhVzVrWlhnZ0t5QnRZWFJqYUZzd1hTNXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzY21Gd2NHbHVaem9nWENKbGJXOXFhUzF6YUc5eWRHaGhibVJjSWl4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkSE03WEc1OVhHNWNiaThxS2lCVFpYUnpJRzl5SUhKbGNHeGhZMlZ6SUhSb1pTQjJZV3gxWlNCdlppQmhiaUJwYm14cGJtVWdabWxsYkdRN0lHbG1JSFJvWlNCMllXeDFaU0JwY3lBbmRXNWtaV1pwYm1Wa0p5d2daR1ZzWlhSbGN5QjBhR1VnYTJWNUxpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5sZEVsdWJHbHVaVVpwWld4a0tITnZkWEpqWlRvZ2MzUnlhVzVuTENCclpYazZJSE4wY21sdVp5d2dkbUZzZFdVL09pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUd4bGRDQmxlR2x6ZEdsdVp5QTlJR1Y0ZEhKaFkzUkpibXhwYm1WR2FXVnNaSE1vYzI5MWNtTmxLVHRjYmlBZ0lDQnNaWFFnWlhocGMzUnBibWRMWlhseklEMGdaWGhwYzNScGJtY3VabWxzZEdWeUtDaG1LU0E5UGlCbUxtdGxlU0E5UFNCclpYa3BPMXh1WEc0Z0lDQWdMeThnUkc5dUozUWdaRzhnWVc1NWRHaHBibWNnYVdZZ2RHaGxjbVVnWVhKbElHUjFjR3hwWTJGMFpTQnJaWGx6SUU5U0lIUm9aU0JyWlhrZ1lXeHlaV0ZrZVNCa2IyVnpiaWQwSUdWNGFYTjBMbHh1SUNBZ0lHbG1JQ2hsZUdsemRHbHVaMHRsZVhNdWJHVnVaM1JvSUQ0Z01pQjhmQ0FvWlhocGMzUnBibWRMWlhsekxteGxibWQwYUNBOVBTQXdJQ1ltSUNGMllXeDFaU2twSUhKbGRIVnliaUJ6YjNWeVkyVTdYRzRnSUNBZ2JHVjBJR1Y0YVhOMGFXNW5TMlY1SUQwZ1pYaHBjM1JwYm1kTFpYbHpXekJkTzF4dVhHNGdJQ0FnYkdWMElHRnVibTkwWVhScGIyNGdQU0IyWVd4MVpTQS9JR0JiSkh0clpYbDlPam9nSkh0MllXeDFaWDFkWUNBNklGd2lYQ0k3WEc0Z0lDQWdhV1lnS0dWNGFYTjBhVzVuUzJWNUtTQjdYRzRnSUNBZ0lDQWdJR3hsZENCd2NtVm1hWGdnUFNCemIzVnlZMlV1YzNWaWMzUnlhVzVuS0RBc0lHVjRhWE4wYVc1blMyVjVMbk4wWVhKMEtUdGNiaUFnSUNBZ0lDQWdiR1YwSUhOMVptWnBlQ0E5SUhOdmRYSmpaUzV6ZFdKemRISnBibWNvWlhocGMzUnBibWRMWlhrdVpXNWtLVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9ZVzV1YjNSaGRHbHZiaWtnY21WMGRYSnVJR0FrZTNCeVpXWnBlSDBrZTJGdWJtOTBZWFJwYjI1OUpIdHpkV1ptYVhoOVlEdGNiaUFnSUNBZ0lDQWdaV3h6WlNCeVpYUjFjbTRnWUNSN2NISmxabWw0ZlNSN2MzVm1abWw0TG5SeWFXMVRkR0Z5ZENncGZXQTdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaGhibTV2ZEdGMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJnSkh0emIzVnlZMlV1ZEhKcGJVVnVaQ2dwZlNBa2UyRnVibTkwWVhScGIyNTlZRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2MyOTFjbU5sTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMlYwUlcxdmFtbFRhRzl5ZEdoaGJtUkRiMjF3YkdWMGFXOXVSbWxsYkdRb2MyOTFjbU5sT2lCemRISnBibWNzSUhaaGJIVmxQem9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCbGVHbHpkR2x1WnlBOUlHVjRkSEpoWTNSSmJteHBibVZHYVdWc1pITW9jMjkxY21ObExDQjBjblZsS1R0Y2JpQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVowdGxlWE1nUFNCbGVHbHpkR2x1Wnk1bWFXeDBaWElvS0dZcElEMCtJR1l1YTJWNUlEMDlQU0JjSW1OdmJYQnNaWFJwYjI1Y0lpQW1KaUJtTG5keVlYQndhVzVuSUQwOVBTQmNJbVZ0YjJwcExYTm9iM0owYUdGdVpGd2lLVHRjYmx4dUlDQWdJQzh2SUVSdmJpZDBJR1J2SUdGdWVYUm9hVzVuSUdsbUlIUm9aWEpsSUdGeVpTQmtkWEJzYVdOaGRHVWdhMlY1Y3lCUFVpQjBhR1VnYTJWNUlHRnNjbVZoWkhrZ1pHOWxjMjRuZENCbGVHbHpkQzVjYmlBZ0lDQnBaaUFvWlhocGMzUnBibWRMWlhsekxteGxibWQwYUNBK0lESWdmSHdnS0dWNGFYTjBhVzVuUzJWNWN5NXNaVzVuZEdnZ1BUMGdNQ0FtSmlBaGRtRnNkV1VwS1NCeVpYUjFjbTRnYzI5MWNtTmxPMXh1WEc0Z0lDQWdMeW9nVG04Z2QzSmhjSEJsY2l3Z1lXUmtJRzkzYmlCemNHRmphVzVuSUdGMElITjBZWEowSUNvdlhHNGdJQ0FnWTI5dWMzUWdZVzV1YjNSaGRHbHZiaUE5SUhaaGJIVmxJRDhnWUNCY2RUSTNNRFVnSkh0MllXeDFaWDFnSURvZ1hDSmNJanRjYmlBZ0lDQnNaWFFnWlhocGMzUnBibWRMWlhrZ1BTQmxlR2x6ZEdsdVowdGxlWE5iTUYwN1hHNGdJQ0FnYVdZZ0tHVjRhWE4wYVc1blMyVjVLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJ5WldacGVDQTlJSE52ZFhKalpTNXpkV0p6ZEhKcGJtY29NQ3dnWlhocGMzUnBibWRMWlhrdWMzUmhjblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFdabWFYZ2dQU0J6YjNWeVkyVXVjM1ZpYzNSeWFXNW5LR1Y0YVhOMGFXNW5TMlY1TG1WdVpDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHR3Y21WbWFYZ3VkSEpwYlVWdVpDZ3BmU1I3WVc1dWIzUmhkR2x2Ym4wa2UzTjFabVpwZUgxZ08xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJnSkh0emIzVnlZMlV1ZEhKcGJVVnVaQ2dwZlNSN1lXNXViM1JoZEdsdmJuMWdPMXh1SUNBZ0lIMWNibjFjYmlJc0lDSXZLaW9nVFdGd0lIUm9aU0IyWVd4MVpYTWdiMllnWVc0Z2IySnFaV04wTENCeVpYUjFjbTVwYm1jZ1lTQnVaWGNnYjJKcVpXTjBMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxaGNFOWlhbVZqZEZaaGJIVmxjenhXTENCVlBpaHZZbXBsWTNRNklGSmxZMjl5WkR4emRISnBibWNzSUZZK0xDQm1kVzVqT2lBb2VEb2dWaWtnUFQ0Z1ZTazZJRkpsWTI5eVpEeHpkSEpwYm1jc0lGVStJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRlUrSUQwZ2UzMDdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmJhMlY1TENCMllXeDFaVjBnYjJZZ1QySnFaV04wTG1WdWRISnBaWE1vYjJKcVpXTjBLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYTjFiSFJiYTJWNVhTQTlJR1oxYm1Nb2RtRnNkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNTlYRzRpTENBaWFXMXdiM0owSUhzZ1RHbHVheXdnU25OdmJreHBibXNnZlNCbWNtOXRJRndpWlhod2NtVnpjMmx2Ymk5c2FXNXJYQ0k3WEc1cGJYQnZjblFnZXlCTWFYUmxjbUZzTENCTWFYUmxjbUZzY3lCOUlHWnliMjBnWENKbGVIQnlaWE56YVc5dUwyeHBkR1Z5WVd4Y0lqdGNibWx0Y0c5eWRDQjdJRVJoZEdWVWFXMWxMQ0JFZFhKaGRHbHZiaUI5SUdaeWIyMGdYQ0pzZFhodmJsd2lPMXh1YVcxd2IzSjBJSHNnYldGd1QySnFaV04wVm1Gc2RXVnpJSDBnWm5KdmJTQmNJblYwYVd4ekwyUmhkR0ZjSWp0Y2JseHVMeW9xSUVwVFQwNHRjMlZ5YVdGc2FYcGxaQ0JsY1hWcGRtRnNaVzUwY3lCbWIzSWdiR2wwWlhKaGJITXVJQ292WEc1bGVIQnZjblFnZEhsd1pTQktjMjl1VEdsMFpYSmhiQ0E5WEc0Z0lDQWdmQ0JpYjI5c1pXRnVYRzRnSUNBZ2ZDQnVkVzFpWlhKY2JpQWdJQ0I4SUhOMGNtbHVaMXh1SUNBZ0lId2dleUFrWDNSNWNHVTZJRndpWkdGMFpWd2lPeUIyWVd4MVpUb2djM1J5YVc1bklIMWNiaUFnSUNCOElIc2dKRjkwZVhCbE9pQmNJbVIxY21GMGFXOXVYQ0k3SUhaaGJIVmxPaUJ6ZEhKcGJtY2dmVnh1SUNBZ0lId2dleUFrWDNSNWNHVTZJRndpYkdsdWExd2lPeUIyWVd4MVpUb2dTbk52Ymt4cGJtc2dmVnh1SUNBZ0lId2dRWEp5WVhrOFNuTnZia3hwZEdWeVlXdytYRzRnSUNBZ2ZDQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytYRzRnSUNBZ2ZDQnVkV3hzTzF4dVhHNWxlSEJ2Y25RZ2JtRnRaWE53WVdObElFcHpiMjVEYjI1MlpYSnphVzl1SUh0Y2JpQWdJQ0JsZUhCdmNuUWdZMjl1YzNRZ1RrOVBVRjlPVDFKTlFVeEpXa1ZTT2lBb2FXNXdkWFE2SUV4cGRHVnlZV3dwSUQwK0lFeHBkR1Z5WVd3Z1BTQW9hVzV3ZFhRcElEMCtJR2x1Y0hWME8xeHVYRzRnSUNBZ0x5b3FJRU52Ym5abGNuUWdZU0JzYVhSbGNtRnNJSFpoYkhWbElIUnZJR0VnYzJGbVpTd2djR1Z5YzJsemRHVnVkQ0JLVTA5T0lHVnhkV2wyWVd4bGJuUXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHcHpiMjRvYkdsMFpYSmhiRG9nVEdsMFpYSmhiQ2s2SUVwemIyNU1hWFJsY21Gc0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2QzSmhjSEJsWkNBOUlFeHBkR1Z5WVd4ekxuZHlZWEJXWVd4MVpTaHNhWFJsY21Gc0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGM2NtRndjR1ZrS1NCeVpYUjFjbTRnYm5Wc2JEdGNibHh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSGR5WVhCd1pXUS9MblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0poY25KaGVWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3Y0dWa0xuWmhiSFZsTG0xaGNDaEtjMjl1UTI5dWRtVnljMmx2Ymk1cWMyOXVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdlltcGxZM1JjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYldGd1QySnFaV04wVm1Gc2RXVnpLSGR5WVhCd1pXUXVkbUZzZFdVc0lFcHpiMjVEYjI1MlpYSnphVzl1TG1wemIyNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SaGRHVmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUFrWDNSNWNHVTZJRndpWkdGMFpWd2lMQ0IyWVd4MVpUb2dkM0poY0hCbFpDNTJZV3gxWlM1MGIwbFRUeWg3SUdsdVkyeDFaR1ZQWm1aelpYUTZJSFJ5ZFdVZ2ZTa2dmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc2FXNXJYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnSkY5MGVYQmxPaUJjSW14cGJtdGNJaXdnZG1Gc2RXVTZJSGR5WVhCd1pXUXVkbUZzZFdVdWRHOVBZbXBsWTNRb0tTQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SMWNtRjBhVzl1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ0pGOTBlWEJsT2lCY0ltUjFjbUYwYVc5dVhDSXNJSFpoYkhWbE9pQjNjbUZ3Y0dWa0xuWmhiSFZsTG5SdlNWTlBLQ2tnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmliMjlzWldGdVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYm5WdFltVnlYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWMzUnlhVzVuWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhkeVlYQndaV1F1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpWm5WdVkzUnBiMjVjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnVkV3hzWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYjI1MlpYSjBJR0VnU2xOUFRpQnNhWFJsY21Gc0lIUnZJR2wwSjNNZ1kyOXljbVZ6Y0c5dVpHbHVaeUJvZVdSeVlYUmxaQ0IyWVd4MVpTd2diM0IwYVc5dVlXeHNlU0JoY0hCc2VXbHVaMXh1SUNBZ0lDQXFJR0VnYm05eWJXRnNhWHBoZEdsdmJpQnpkR1Z3SUhSdklIUm9aU0J5WlhOMWJIUnBibWNnZG1Gc2RXVWdZVzVrSUdGdWVTQnNhWFJsY21Gc2N5QmpiMjUwWVdsdVpXUWdkMmwwYUdsdUlHbDBYRzRnSUNBZ0lDb2dLSE4xWTJnZ1lYTWdhV1lnZEdobElHeHBkR1Z5WVd3Z2FYTWdZU0JzYVhOMElHOXlJRzlpYW1WamRDa3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUhaaGJIVmxLR3B6YjI0NklFcHpiMjVNYVhSbGNtRnNMQ0J1YjNKdFlXeHBlbVZ5T2lBb2FXNXdkWFE2SUV4cGRHVnlZV3dwSUQwK0lFeHBkR1Z5WVd3Z1BTQk9UMDlRWDA1UFVrMUJURWxhUlZJcE9pQk1hWFJsY21Gc0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0dwemIyNGdQVDA5SUc1MWJHd2dmSHdnYW5OdmJpQTlQVDBnZFc1a1pXWnBibVZrS1NCeVpYUjFjbTRnYm5Wc2JEdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2hxYzI5dUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1dmNtMWhiR2w2WlhJb2FuTnZiaTV0WVhBb0tHbHVjSFYwS1NBOVBpQktjMjl1UTI5dWRtVnljMmx2Ymk1MllXeDFaU2hwYm5CMWRDd2dibTl5YldGc2FYcGxjaWtwS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBlWEJsYjJZZ2FuTnZiaUE5UFQwZ1hDSnZZbXBsWTNSY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0VvWENJa1gzUjVjR1ZjSWlCcGJpQnFjMjl1S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYldGd1QySnFaV04wVm1Gc2RXVnpLR3B6YjI0c0lDaDJLU0E5UGlCS2MyOXVRMjl1ZG1WeWMybHZiaTUyWVd4MVpTaDJJR0Z6SUVwemIyNU1hWFJsY21Gc0xDQnViM0p0WVd4cGVtVnlLU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIUjVjR1VnUFNCcWMyOXVXMXdpSkY5MGVYQmxYQ0pkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaDBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SaGRHVmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1dmNtMWhiR2w2WlhJb1JHRjBaVlJwYldVdVpuSnZiVWxUVHlocWMyOXVMblpoYkhWbExDQjdJSE5sZEZwdmJtVTZJSFJ5ZFdVZ2ZTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmtkWEpoZEdsdmJsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYm05eWJXRnNhWHBsY2loRWRYSmhkR2x2Ymk1bWNtOXRTVk5QS0dwemIyNHVkbUZzZFdVcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJHbHVhMXdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtOXliV0ZzYVhwbGNpaE1hVzVyTG1aeWIyMVBZbXBsWTNRb2FuTnZiaTUyWVd4MVpTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnVlc1eVpXTnZaMjVwZW1Wa0lITmxjbWxoYkdsNlpXUWdkSGx3WlNBbkpIdDBlWEJsZlNjaFlDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0F2THlCUWNtbHRhWFJwZG1VZ2RIbHdaU3dnY21WMGRYSnVJR0Z6SUdsekxseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtOXliV0ZzYVhwbGNpaHFjMjl1SUdGeklFeHBkR1Z5WVd3cE8xeHVJQ0FnSUgxY2JuMWNiaUlzSUNJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1a1pYaGhZbXhsYzF4dUlDb3ZYRzR2S2lvZ1ZYUnBiR2wwYVdWeklHWnZjaUJqYjI1MlpYSjBhVzVuSUd4cGRHVnlZV3dnZEhsd1pYTWdkRzhnWVc1a0lHWnliMjBnZEdobGFYSWdXVUZOVENCbWNtOXVkRzFoZEhSbGNpQnlaWEJ5WlhObGJuUmhkR2x2Ymk0Z0tpOWNibHh1YVcxd2IzSjBJSHNnVEdsMFpYSmhiQ3dnVEdsMFpYSmhiSE1nZlNCbWNtOXRJRndpWlhod2NtVnpjMmx2Ymk5c2FYUmxjbUZzWENJN1hHNXBiWEJ2Y25RZ2V5QlFVa2xOU1ZSSlZrVlRJSDBnWm5KdmJTQmNJbVY0Y0hKbGMzTnBiMjR2Y0dGeWMyVnlYQ0k3WEc1cGJYQnZjblFnZXlCRVlYUmxWR2x0WlNCOUlHWnliMjBnWENKc2RYaHZibHdpTzF4dWFXMXdiM0owSUhzZ2JXRndUMkpxWldOMFZtRnNkV1Z6SUgwZ1puSnZiU0JjSW5WMGFXeHpMMlJoZEdGY0lqdGNibHh1THlvcUlGbEJUVXd0Wm5KcFpXNWtiSGtnY21Wd2NtVnpaVzUwWVhScGIyNGdabTl5SUdFZ2JHbDBaWEpoYkM0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUZsaGJXeE1hWFJsY21Gc0lEMGdjM1J5YVc1bklId2diblZ0WW1WeUlId2dZbTl2YkdWaGJpQjhJRzUxYkd3Z2ZDQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJSHdnUVhKeVlYazhXV0Z0YkV4cGRHVnlZV3crTzF4dUx5b3FYRzRnS2lCQWFXNTBaWEp1WVd4Y2JpQXFMMXh1Wlhod2IzSjBJRzVoYldWemNHRmpaU0JaWVcxc1EyOXVkbVZ5YzJsdmJpQjdYRzRnSUNBZ0x5b3FJRU52Ym5abGNuUWdZU0JzYVhSbGNtRnNJR2x1ZEc4Z1lTQjVZVzFzSUdaeWFXVnVaR3g1SUhKbGNISmxjMlZ1ZEdGMGFXOXVMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQjVZVzFzS0haaGJIVmxPaUJNYVhSbGNtRnNLVG9nV1dGdGJFeHBkR1Z5WVd3Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCM2NtRndjR1ZrSUQwZ1RHbDBaWEpoYkhNdWQzSmhjRlpoYkhWbEtHeHBkR1Z5WVd3cE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhkeVlYQndaV1FwSUhKbGRIVnliaUJ1ZFd4c08xeHVYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9kM0poY0hCbFpDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2ljM1J5YVc1blhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpWW05dmJHVmhibHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltNTFiR3hjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnVkVzFpWlhKY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2QzSmhjSEJsWkM1MllXeDFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKaGNuSmhlVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIzY21Gd2NHVmtMblpoYkhWbExtMWhjQ2g1WVcxc0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0prWVhSbFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZHlZWEJ3WldRdWRtRnNkV1V1ZEc5SlUwOG9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKa2RYSmhkR2x2Ymx3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1ZrTG5aaGJIVmxMblJ2U0hWdFlXNG9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKbWRXNWpkR2x2Ymx3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW14cGJtdGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkM0poY0hCbFpDNTJZV3gxWlM1dFlYSnJaRzkzYmlncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTlpYW1WamRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnRZWEJQWW1wbFkzUldZV3gxWlhNb2QzSmhjSEJsWkM1MllXeDFaU3dnZVdGdGJDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nVW1WamRYSnphWFpsYkhrZ1kyOXVkbVZ5ZENCaElGbEJUVXdnYkdsMFpYSmhiQ0JwYm5SdklHRWdjbVZuZFd4aGNpQnNhWFJsY21Gc0lIWmhiSFZsTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJzYVhSbGNtRnNLSFpoYkhWbE9pQlpZVzFzVEdsMFpYSmhiQ2s2SUV4cGRHVnlZV3dnZTF4dUlDQWdJQ0FnSUNCcFppQW9kbUZzZFdVZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnY21WemRXeDBJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ1kyaHBiR1FnYjJZZ2RtRnNkV1VnWVhNZ1FYSnlZWGs4WVc1NVBpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFF1Y0hWemFDaHNhWFJsY21Gc0tHTm9hV3hrS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZG1Gc2RXVWdhVzV6ZEdGdVkyVnZaaUJFWVhSbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdSaGRHVlFZWEp6WlNBOUlFUmhkR1ZVYVcxbExtWnliMjFLVTBSaGRHVW9kbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa1lYUmxVR0Z5YzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCdlltcGxZM1FnUFNCMllXeDFaU0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J5WlhOMWJIUTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFeHBkR1Z5WVd3K0lEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYTJWNUlHbHVJRzlpYW1WamRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFJiYTJWNVhTQTlJR3hwZEdWeVlXd29iMkpxWldOMFcydGxlVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZEhsd1pXOW1JSFpoYkhWbElEMDlQU0JjSW01MWJXSmxjbHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQmNJbUp2YjJ4bFlXNWNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR1JoZEdWUVlYSnpaU0E5SUZCU1NVMUpWRWxXUlZNdVpHRjBaUzV3WVhKelpTaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pHRjBaVkJoY25ObExuTjBZWFIxY3lrZ2NtVjBkWEp1SUdSaGRHVlFZWEp6WlM1MllXeDFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdSMWNtRjBhVzl1VUdGeWMyVWdQU0JRVWtsTlNWUkpWa1ZUTG1SMWNtRjBhVzl1TG5CaGNuTmxLSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGtkWEpoZEdsdmJsQmhjbk5sTG5OMFlYUjFjeWtnY21WMGRYSnVJR1IxY21GMGFXOXVVR0Z5YzJVdWRtRnNkV1U3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCc2FXNXJVR0Z5YzJVZ1BTQlFVa2xOU1ZSSlZrVlRMbXhwYm1zdWNHRnljMlVvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3hwYm10UVlYSnpaUzV6ZEdGMGRYTXBJSEpsZEhWeWJpQnNhVzVyVUdGeWMyVXVkbUZzZFdVN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUM4dklFSmhZMnQxY0NCcFppQjNaU0JrYjI0bmRDQjFibVJsY25OMFlXNWtJSFJvWlNCMGVYQmxMbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1OVhHNGlMQ0FpYVcxd2IzSjBJSHNnUm1sc1pWTjBZWFJ6SUgwZ1puSnZiU0JjSW05aWMybGthV0Z1WENJN1hHNXBiWEJ2Y25RZ2V5QnBkR1Z5WVhSbFNXNXNhVzVsUm1sbGJHUnpMQ0J0WVhKclpHOTNibE52ZFhKalpVbHRjRzl5ZEN3Z1RXVjBZV1JoZEdFc0lGTmxZM1JwYjI1RVlYUmhJSDBnWm5KdmJTQmNJaTR2YldGeWEyUnZkMjVjSWp0Y2JtbHRjRzl5ZENCN0lFcHpiMjVHY205dWRHMWhkSFJsY2tWdWRISjVJSDBnWm5KdmJTQmNJbWx1WkdWNEwzUjVjR1Z6TDJwemIyNHZiV0Z5YTJSdmQyNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lDQWdRMkZ1ZG1GelRXVjBZV1JoZEdGSmJtUmxlQ3hjYmlBZ0lDQktjMjl1UW1GelpVTmhiblpoYzBOaGNtUXNYRzRnSUNBZ1NuTnZia05oYm5aaGN5eGNiaUFnSUNCS2MyOXVRMkZ1ZG1GelEyRnlaQ3hjYmlBZ0lDQktjMjl1UTJGdWRtRnpSbWxzWlVOaGNtUXNYRzRnSUNBZ1NuTnZia05oYm5aaGMxUmxlSFJEWVhKa0xGeHVJQ0FnSUVwemIyNURZVzUyWVhOWFpXSkRZWEprTEZ4dWZTQm1jbTl0SUZ3aWFXNWtaWGd2ZEhsd1pYTXZhbk52Ymk5allXNTJZWE5jSWp0Y2JtbHRjRzl5ZENCN0lFTmhiblpoYzBacGJHVkVZWFJoTENCRFlXNTJZWE5NYVc1clJHRjBZU3dnUTJGdWRtRnpWR1Y0ZEVSaGRHRXNJRU5oYm5aaGMwUmhkR0VnWVhNZ1NVTmhiblpoY3lCOUlHWnliMjBnWENKdlluTnBaR2xoYmk5allXNTJZWE5jSWp0Y2JtbHRjRzl5ZENCN0lFeHBibXNnZlNCbWNtOXRJRndpWlhod2NtVnpjMmx2Ymk5c2FXNXJYQ0k3WEc1Y2JpOHFLaUJKYlhCdmNuUWdZU0JqWVc1MllYTWdabWxzWlNCMWMybHVaeUIwYUdVZ1kyRnVkbUZ6SUcxbGRHRmtZWFJoTGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTmhiblpoYzBsdGNHOXlkQ2hjYmlBZ0lDQndZWFJvT2lCemRISnBibWNzWEc0Z0lDQWdjMjkxY21ObE9pQnpkSEpwYm1jc1hHNGdJQ0FnYVc1a1pYZzZJRU5oYm5aaGMwMWxkR0ZrWVhSaFNXNWtaWGhiWENKemRISnBibWRjSWwwc1hHNGdJQ0FnYzNSaGRITTZJRVpwYkdWVGRHRjBjMXh1S1RvZ1NuTnZia05oYm5aaGN5QjdYRzRnSUNBZ1kyOXVjM1FnWTJGdWRtRnpJRDBnYm1WM0lFTmhiblpoYzBSaGRHRW9jR0YwYUN3Z2MzUmhkSE1wTzF4dUlDQWdJR052Ym5OMElIQmhjbk5sWkNBOUlFcFRUMDR1Y0dGeWMyVW9jMjkxY21ObEtTQmhjeUJKUTJGdWRtRnpPMXh1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqSUc5bUlIQmhjbk5sWkM1dWIyUmxjeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZeTUwZVhCbElEMDlJRndpWjNKdmRYQmNJaWtnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpMblI1Y0dVZ1BUMGdYQ0owWlhoMFhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhzZ1puSnZiblJ0WVhSMFpYSXNJRzFsZEdGa1lYUmhMQ0JzYVc1bGN5d2djMlZqZEdsdmJuTWdmU0E5SUcxaGNtdGtiM2R1VTI5MWNtTmxTVzF3YjNKMEtIQmhkR2dzSUdNdWRHVjRkQ3dnYVc1a1pYZ3VZMkZqYUdWelcyTXVhV1JkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTmhjbVFnUFNCdVpYY2dRMkZ1ZG1GelEyRnlaRVJoZEdFb2NHRjBhQ3dnWXk1cFpDd2dZeXdnWm5KdmJuUnRZWFIwWlhJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWamRHbHZibk11Wm05eVJXRmphQ2dvYVNrZ1BUNGdZMkZ5WkM1elpXTjBhVzl1S0drcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGJuWmhjeTVqWVhKa0tHTmhjbVFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0IwWVdjZ2FXNGdiV1YwWVdSaGRHRXVkR0ZuY3lrZ1kyRnVkbUZ6TG0xbGRHRmtZWFJoTG5SaFp5aDBZV2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JzYVc1cklHOW1JRzFsZEdGa1lYUmhMbXhwYm10eklEOC9JRnRkS1NCallXNTJZWE11YldWMFlXUmhkR0V1YkdsdWF5aHNhVzVyS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWm1sbGJHUWdiMllnYVhSbGNtRjBaVWx1YkdsdVpVWnBaV3hrY3loc2FXNWxjeWtwSUdOaGJuWmhjeTV0WlhSaFpHRjBZUzVwYm14cGJtVkdhV1ZzWkNobWFXVnNaQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCallYSmtJRDBnYm1WM0lFTmhiblpoYzBOaGNtUkVZWFJoS0hCaGRHZ3NJR011YVdRc0lHTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnVkbUZ6TG1OaGNtUW9ZMkZ5WkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWTJGdWRtRnpMbUoxYVd4a0tDazdYRzU5WEc1Y2JpOHFLaUJOWlhSaFpHRjBZU0JtYjNJZ1lTQnpjR1ZqYVdacFl5QmpZVzUyWVhNZ1kyRnlaQzRnS2k5Y2JtRmljM1J5WVdOMElHTnNZWE56SUVGaWMzUnlZV04wUTJGdWRtRnpRMkZ5WkVSaGRHRWdlMXh1SUNBZ0lIQjFZbXhwWXlCdFpYUmhaR0YwWVRvZ1RXVjBZV1JoZEdFZ1BTQnVaWGNnVFdWMFlXUmhkR0VvS1R0Y2JseHVJQ0FnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0lDQWdJSEJ5YjNSbFkzUmxaQ0J1YjJSbFNuTnZiam9nUTJGdWRtRnpWR1Y0ZEVSaGRHRWdmQ0JEWVc1MllYTk1hVzVyUkdGMFlTQjhJRU5oYm5aaGMwWnBiR1ZFWVhSaFhHNGdJQ0FnS1NCN2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdKMWFXeGtLQ2s2SUVwemIyNUNZWE5sUTJGdWRtRnpRMkZ5WkNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrWm1sc1pUb2dkR2hwY3k1d1lYUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHbGtPaUIwYUdsekxtbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pIQnZjMmwwYVc5dU9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlRG9nZEdocGN5NXViMlJsU25OdmJpNTRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGs2SUhSb2FYTXVibTlrWlVwemIyNHVlU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBa1pHbHRaVzV6YVc5dWN6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRwWkhSb09pQjBhR2x6TG01dlpHVktjMjl1TG5kcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2hsYVdkb2REb2dkR2hwY3k1dWIyUmxTbk52Ymk1b1pXbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHTnZiRzl5T2lCMGFHbHpMbTV2WkdWS2MyOXVMbU52Ykc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkd4cGJtczZJRXhwYm1zdVptbHNaU2gwYUdsekxuQmhkR2dwTG5kcGRHaENiRzlqYXloMGFHbHpMbWxrS1M1MGIwOWlhbVZqZENncExGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRTFsZEdGa1lYUmhJR1p2Y2lCaElITndaV05wWm1saklHTmhjbVFnYVc0Z1lTQmpZVzUyWVhNZ2RtbGxkeTRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJEWVc1MllYTkRZWEprUkdGMFlTQmxlSFJsYm1SeklFRmljM1J5WVdOMFEyRnVkbUZ6UTJGeVpFUmhkR0VnZTF4dUlDQWdJSEIxWW14cFl5QnpaV04wYVc5dWN6b2dVMlZqZEdsdmJrUmhkR0ZiWFNBOUlGdGRPMXh1SUNBZ0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklIQmhkR2c2SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR2xrT2lCemRISnBibWNzWEc0Z0lDQWdJQ0FnSUhCeWIzUmxZM1JsWkNCdWIyUmxTbk52YmpvZ1EyRnVkbUZ6VkdWNGRFUmhkR0VnZkNCRFlXNTJZWE5NYVc1clJHRjBZU0I4SUVOaGJuWmhjMFpwYkdWRVlYUmhMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdabkp2Ym5SdFlYUjBaWEkvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JLYzI5dVJuSnZiblJ0WVhSMFpYSkZiblJ5ZVQ1Y2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ2MzVndaWElvY0dGMGFDd2dhV1FzSUc1dlpHVktjMjl1S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdjMlZqZEdsdmJpaHpaV04wYVc5dU9pQlRaV04wYVc5dVJHRjBZU2s2SUZObFkzUnBiMjVFWVhSaElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpXTjBhVzl1Y3k1d2RYTm9LSE5sWTNScGIyNHBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjMlZqZEdsdmJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nWW5WcGJHUW9LVG9nU25OdmJrTmhiblpoYzBOaGNtUWdlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFJvYVhNdWJtOWtaVXB6YjI0dWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luUmxlSFJjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTRvYzNWd1pYSXVZblZwYkdRb0tTQmhjeUJLYzI5dVFtRnpaVU5oYm5aaGMwTmhjbVFwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWthVzVtYVdWc1pITTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vU1c1c2FXNWxSbWxsYkdSektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNSbWNtOXVkRzFoZEhSbGNqb2dkR2hwY3k1bWNtOXVkRzFoZEhSbGNpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSkhObFkzUnBiMjV6T2lCMGFHbHpMbk5sWTNScGIyNXpMbTFoY0Nnb2VDa2dQVDRnZUM1aWRXbHNaQ2dwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKSFJoWjNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9WR0ZuY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FrYkdsdWEzTTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vVEdsdWEzTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0pIUjVjR1U2SUZ3aWRHVjRkQzFqWVhKa1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNSamIyeHZjam9nZEdocGN5NXViMlJsU25OdmJpNWpiMnh2Y2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUlHRnpJRXB6YjI1RFlXNTJZWE5VWlhoMFEyRnlaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKbWFXeGxYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjM1Z3WlhJdVluVnBiR1FvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKR3hwYm10bFpFWnBiR1U2SUhSb2FYTXVibTlrWlVwemIyNHVabWxzWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUlHRnpJRXB6YjI1RFlXNTJZWE5HYVd4bFEyRnlaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc2FXNXJYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjM1Z3WlhJdVluVnBiR1FvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKSFZ5YkRvZ2RHaHBjeTV1YjJSbFNuTnZiaTUxY213c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTQmhjeUJLYzI5dVEyRnVkbUZ6VjJWaVEyRnlaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSEpsZEhWeWJpQnVaWGRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYm4xY2JseHVMeW9xSUUxbGRHRmtZWFJoSUdadmNpQjBhR1VnZDJodmJHVWdZMkZ1ZG1GeklIQmhaMlVnWVhNZ1lTQjNhRzlzWlM0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRFlXNTJZWE5FWVhSaElIdGNiaUFnSUNCd2RXSnNhV01nWTJGeVpITTZJRU5oYm5aaGMwTmhjbVJFWVhSaFcxMGdQU0JiWFR0Y2JpQWdJQ0J3ZFdKc2FXTWdiV1YwWVdSaGRHRTZJRTFsZEdGa1lYUmhJRDBnYm1WM0lFMWxkR0ZrWVhSaEtDazdYRzVjYmlBZ0lDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9jSFZpYkdsaklIQmhkR2c2SUhOMGNtbHVaeXdnY0hWaWJHbGpJSE4wWVhSek9pQkdhV3hsVTNSaGRITXBJSHQ5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZMkZ5WkNoa09pQkRZVzUyWVhORFlYSmtSR0YwWVNrNklFTmhiblpoYzBOaGNtUkVZWFJoSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqWVhKa2N5NXdkWE5vS0dRcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pEdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nWW5WcGJHUW9LVG9nU25OdmJrTmhiblpoY3lCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrWTJGeVpITTZJSFJvYVhNdVkyRnlaSE11YldGd0tDaDRLU0E5UGlCNExtSjFhV3hrS0NrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdOMGFXMWxPaUIwYUdsekxuTjBZWFJ6TG1OMGFXMWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHMTBhVzFsT2lCMGFHbHpMbk4wWVhSekxtMTBhVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR2x1Wm1sbGJHUnpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUVsdWJHbHVaVVpwWld4a2N5Z3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHeHBibXR6T2lCMGFHbHpMbTFsZEdGa1lYUmhMbVpwYm1semFFeHBibXR6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrZEdGbmN6b2dkR2hwY3k1dFpYUmhaR0YwWVM1bWFXNXBjMmhVWVdkektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2NHRjBhRG9nZEdocGN5NXdZWFJvTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKSE5wZW1VNklIUm9hWE11YzNSaGRITXVjMmw2WlN4Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNTlYRzRpTENBaWFXMXdiM0owSUhzZ1kyRnVkbUZ6U1cxd2IzSjBJSDBnWm5KdmJTQmNJbWx1WkdWNEwybHRjRzl5ZEM5allXNTJZWE5jSWp0Y2JtbHRjRzl5ZENCN0lHMWhjbXRrYjNkdVNXMXdiM0owSUgwZ1puSnZiU0JjSW1sdVpHVjRMMmx0Y0c5eWRDOXRZWEpyWkc5M2Jsd2lPMXh1YVcxd2IzSjBJSHNnUTJGdWRtRnpTVzF3YjNKMFVtVnpkV3gwTENCSmJYQnZjblJEYjIxdFlXNWtMQ0JOWVhKclpHOTNia2x0Y0c5eWRGSmxjM1ZzZENCOUlHWnliMjBnWENKcGJtUmxlQzkzWldJdGQyOXlhMlZ5TDIxbGMzTmhaMlZjSWp0Y2JseHVMeW9xSUZkbFlpQjNiM0pyWlhJZ1pXNTBjbmtnY0c5cGJuUWdabTl5SUdsdGNHOXlkR2x1Wnk0Z0tpOWNibTl1YldWemMyRm5aU0E5SUdGemVXNWpJQ2hsZG1WdWRDa2dQVDRnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCbGRtVnVkQzVrWVhSaElHRnpJRWx0Y0c5eWRFTnZiVzFoYm1RN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0cxbGMzTmhaMlV1ZEhsd1pTQTlQVDBnWENKdFlYSnJaRzkzYmx3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhKclpHOTNiaUE5SUcxaGNtdGtiM2R1U1cxd2IzSjBLRzFsYzNOaFoyVXVjR0YwYUN3Z2JXVnpjMkZuWlM1amIyNTBaVzUwY3l3Z2JXVnpjMkZuWlM1dFpYUmhaR0YwWVN3Z2JXVnpjMkZuWlM1emRHRjBLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjRzl6ZEUxbGMzTmhaMlVvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJRndpYldGeWEyUnZkMjVjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFE2SUcxaGNtdGtiM2R1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JoY3lCTllYSnJaRzkzYmtsdGNHOXlkRkpsYzNWc2RDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvYldWemMyRm5aUzUwZVhCbElEMDlQU0JjSW1OaGJuWmhjMXdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpZVzUyWVhNZ1BTQmpZVzUyWVhOSmJYQnZjblFvYldWemMyRm5aUzV3WVhSb0xDQnRaWE56WVdkbExtTnZiblJsYm5SekxDQnRaWE56WVdkbExtbHVaR1Y0TENCdFpYTnpZV2RsTG5OMFlYUXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQndiM04wVFdWemMyRm5aU2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dYQ0pqWVc1MllYTmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUTZJR05oYm5aaGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1lYTWdRMkZ1ZG1GelNXMXdiM0owVW1WemRXeDBLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZjM1JOWlhOellXZGxLSHNnSkdWeWNtOXlPaUJjSWxWdWMzVndjRzl5ZEdWa0lHbHRjRzl5ZENCdFpYUm9iMlF1WENJZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0dCRVlYUmhZMjl5WlNCSmJtUmxlR1Z5SUdaaGFXeGxaQ0IwYnlCcGJtUmxlQ0FrZTJWMlpXNTBMbVJoZEdFdWNHRjBhSDA2SUNSN1pYSnliM0o5WUNrN1hHNGdJQ0FnSUNBZ0lIQnZjM1JOWlhOellXZGxLSHNnSkdWeWNtOXlPaUJsY25KdmNpNXRaWE56WVdkbElIMHBPMXh1SUNBZ0lIMWNibjA3WEc0aVhTd0tJQ0FpYldGd2NHbHVaM01pT2lBaU1HcEVRVUZCTEVsQlFVRkJMRWRCUVVGRExFZEJRVUVzUTBGQlFVTXNSMEZCUVVNc1MwRkJRU3hGUVVGRExGTkJRVk1zUlVGQlJVTXNSVUZCUlN4RFFVRlhMRTlCUVU5R0xFbEJRV3BDTEZWQlFXOURMRTlCUVU5RExFbEJRV3BDTEZOQlFYZENRU3hIUVVGUExGRkJRVkZETEVWQlFVVXNSVUZCWXl4UFFVRlBMRkZCUVc1Q0xGbEJRVEpDTEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1JVRkJSVUVzUTBGQlF5eEZRVUZaTEU5QlFVOUdMRWxCUVdwQ0xGTkJRWGxDUVN4SFFVRlJMRlZCUVZWRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEZWQlFWVkJMRVZCUVVVc1EwRkJReXhIUVVGbExFOUJRVThzVFVGQmNFSXNXVUZCZVVJc1MwRkJTMFlzUjBGQlN5eFZRVUZWTEVOQlFVTXNUMEZCVHl4VFFVRlRMRVZCUVVVc1EwRkJReXhKUVVGSlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4VFFVRlRReXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNSMEZCUjBZc1JVRkJSVVVzUTBGQlF5eEZRVUZGTEU5QlFVOUdMRVZCUVVWRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVsQlFVbERMRVZCUVVWSUxFVkJRVVZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVWQkxFVkJRVVVzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVGRlFTeERRVUZETEVWQlFVVXNTMEZCUzBNc1JVRkJSU3hSUVVGUlFTeEZRVUZGUVN4RlFVRkZMRkZCUVZGR0xFTkJRVU1zUlVGQlJVVXNSVUZCUlN4RlFVRkZMRWRCUVVkQkxFVkJRVVVzVDBGQlR5eERRVUZETEU5QlFVOUdMRVZCUVVVc1JVRkJSU3hGUVVGRlFTeEZRVUZGTEVWQlFVVkVMRVZCUVVWRExFVkJRVVVzUlVGQlJTeFRRVUZUUnl4RlFVRkZTaXhGUVVGRlJTeEZRVUZGTEVOQlFVTkVMRVZCUVVVc1JVRkJSVWNzUlVGQlJVb3NRMEZCUXl4SFFVRkhMRTlCUVU4c1pVRkJaVWtzUlVGQlJVb3NSVUZCUlN4RFFVRkRMR0ZCUVdFc1IwRkJSeXhYUVVGWExFZEJRVWNzU1VGQlNVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVVFzUlVGQlJTeEZRVUZGTEZOQlFWTkhMRVZCUVVVc1EwRkJReXhQUVVGUExHVkJRV1ZCTEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJVZ3NSVUZCUlN4RlFVRkZMRk5CUVZOSExFVkJRVVVzUTBGQlF5eEpRVUZKU2l4RlFVRkZTU3hIUVVGSFFTeEZRVUZGTEZkQlFWY3NWVUZCVlN4RFFVRkRMRTlCUVU5QkxFVkJRVVVzVDBGQlR5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBRU3hEUVVGRExFVkJRVVVzVDBGQlQwZ3NSVUZCUlN4RlFVRkZSQ3hGUVVGRkxFbEJRVWxCTEVOQlFVTXNSVUZCUlVFc1EwRkJReXhGUVVGRlF5eEZRVUZGTEVWQlFVVXNVMEZCVTBjc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOHNUMEZCVHl4VlFVRlZMR1ZCUVdVc1MwRkJTMGtzUlVGQlJVb3NRMEZCUXl4RFFVRkRMRVZCUVVWRExFVkJRVVVzUlVGQlJTeEhRVUZIUVN4RlFVRkZRU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRVZCUVVWRUxFVkJRVVZETEVWQlFVVXNRMEZCUXl4aFFVRmhMRk5CUVZORExFVkJRVVZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1owSkJRV2RDUml4SFFVRkhMRTlCUVU4c1NVRkJTVUVzUlVGQlJVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSVUVzUTBGQlF5eERRVUZETEVsQlFVbEVMRVZCUVVWRUxFVkJRVVVzVlVGQlZTeFRRVUZUUnl4RlFVRkZSQ3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNVVUZCVVVNc1JVRkJSU3hGUVVGRlFTeEZRVUZGUnl4RlFVRkZTQ3hKUVVGSlJDeEZRVUZGUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFN5eEZRVUZGUml4RlFVRkZTaXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4VFFVRlRSeXhGUVVGRlNpeEZRVUZGTEVOQlFVTkxMRVZCUVVWTUxFVkJRVVVzVDBGQlR5eFRRVUZUUXl4RlFVRkZMRU5CUVVOSExFVkJRVVZLTEVWQlFVVkRMRU5CUVVNc1JVRkJSVUVzUlVGQlJVUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGTkJRVk5ETEVWQlFVVkRMRVZCUVVWRExFVkJRVVVzUTBGQlEwZ3NSVUZCUlVrc1JVRkJSVW9zUlVGQlJVTXNSVUZCUlVNc1JVRkJSVU1zUTBGQlF5eERRVUZETEVWQlFVVkdMRU5CUVVNc1JVRkJSVVFzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlVrc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOU5MRVZCUVVVc1UwRkJVMDRzUlVGQlJVTXNSVUZCUlVNc1JVRkJSVU1zUlVGQlJTeERRVUZETEU5QlFVOUlMRVZCUVVVc1QwRkJUeXhEUVVGRFNTeEZRVUZGU0N4RlFVRkZReXhGUVVGRlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRlNDeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRUeXhGUVVGRlNDeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1NVRkJTVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4SlFVRkpSQ3hEUVVGRExFVkJRVVVzVDBGQlQwc3NSVUZCUlVRc1JVRkJSU3hWUVVGVkxFTkJRVU1zU1VGQlNVRXNSVUZCUlVnc1JVRkJSU3hEUVVGRExFVkJRVVZCTEVWQlFVVXNSMEZCUnl4SFFVRkhSeXhGUVVGRlNDeEZRVUZGTEVsQlFVbEhMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzU1VGQlNTeFRRVUZUUVN4RlFVRkZMRU5CUVVNc1NVRkJTVW9zUlVGQlJVMHNSVUZCUlN4VFFVRlRSaXhGUVVGRlNpeEZRVUZGUXl4SFFVRkZReXhIUVVGRkxFTkJRVU1zVDBGQlQwVXNSVUZCUlN4UFFVRlBTQ3hMUVVGSlF5eEhRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRMFlzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4aFFVRmhMRU5CUVVNc1JVRkJSVVVzUjBGQlJTeGhRVUZoUkN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJVY3NRMEZCUXl4RlFVRkZMRTlCUVU4c1QwRkJUeXhMUVVGTExFVkJRVVVzVTBGQlUwRXNSVUZCUlN4RFFVRkRMRTlCUVU5QkxFZEJRVWNzUlVGQlJTeFJRVUZSTEVOQlFVTXNSVUZCUlVvc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVZCTEVOQlFVTXNRMEZCUXl4VFFVRlRUeXhIUVVGSExFTkJRVU1zVDBGQmJVSXNUMEZCVHl4UlFVRndRaXhYUVVFd1FpeERRVUZETEZOQlFWTkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU5FTEVWQlFVVXNSVUZCUlN4TlFVRk5MRWxCUVVrc1RVRkJUU3dyUmtGQkswWXNRMEZCUXl4RFFVRkRMRk5CUVZORkxFVkJRVVZPTEVWQlFVVXNRMEZCUTBzc1JVRkJSU3hGUVVGRkxFbEJRVWxVTEVWQlFVVk5MRVZCUVVVc1UwRkJVMFlzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU5SkxFVkJRVVZLTEVOQlFVTXNSVUZCUlN4RlFVRkZTU3hEUVVGRExFVkJRVVVzUjBGQlIwb3NSVUZCUlN4SFFVRkhMRVZCUVVVc1RVRkJUU3hKUVVGSkxFMUJRVTBzWVVGQllVa3NSVUZCUlN4TFFVRkxMRWxCUVVrc1JVRkJSU3hsUVVGbFNpeEZRVUZGTERKRlFVRXlSU3hGUVVGRkxFbEJRVWxETEVWQlFVVkZMRVZCUVVWSUxFVkJRVVVzUlVGQlJVc3NSMEZCUjBvc1JVRkJSU3hUUVVGVFJ5eEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSU3hGUVVGRkxFVkJRVVZGTEVWQlFVVXNVMEZCVTBZc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOUpMRWxCUVVsSUxFVkJRVVZFTEVOQlFVTXNSVUZCUlVFc1JVRkJSVWtzUlVGQlJTeEZRVUZGTEV0QlFVdEJMRU5CUVVNc1IwRkJSeXhIUVVGSFF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4TlFVRk5RU3hGUVVGRkxEQkVRVUV3UkN4RlFVRkZMRTlCUVU4c1NVRkJTVWdzUlVGQlJTeFRRVUZUUml4RlFVRkZReXhGUVVGRkxFTkJRVU1zU1VGQlNVTXNSVUZCUlVNc1JVRkJSVVlzUlVGQlJTeFBRVUZQUXl4RlFVRkZSaXhGUVVGRkxFOUJRVTlYTEVWQlFVVldMRVZCUVVWRkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZGQlFWRXNSVUZCUlZNc1JVRkJSVllzUlVGQlJVa3NSVUZCUlN4VFFVRlRSaXhIUVVGRlNpeEhRVUZGTEVOQlFVTXNTVUZCU1VNc1IwRkJSVTBzUlVGQlJWQXNSMEZCUlVrc1IwRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeERRVUZETEV0QlFVdEJMRWRCUVVVc1MwRkJTeXhQUVVGUFNDeEhRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpRU3hIUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1NVRkJTVVFzUlVGQlJTeE5RVUZOUXl4RlFVRkZReXhEUVVGRExFTkJRVU1zUlVGQlJVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUVXl4RlFVRkZWQ3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVHl4SlFVRkpSU3hGUVVGRkxGTkJRVk5FTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhQUVVGUFR5eEZRVUZGTEVWQlFVVlFMRVZCUVVWR0xFVkJRVVZETEVWQlFVVXNUMEZCVDFVc1JVRkJSVlFzUlVGQlJVWXNSVUZCUlN4alFVRmpTU3hEUVVGRExFVkJRVVZSTEVWQlFVVldMRVZCUVVWR0xFVkJRVVZETEVWQlFVVXNUVUZCVFVNc1JVRkJSVUVzUlVGQlJVWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlUyTXNSVUZCUlZZc1JVRkJSVW9zUlVGQlJTeERRVUZETEVkQlFXRXNUMEZCVDBNc1JVRkJSVVFzU1VGQmJrSXNWVUZCZFVJc1MwRkJTeXhOUVVGTlF5eERRVUZETEVsQlFVbEJMRWRCUVVkRUxFVkJRVVVzUjBGQlIwRXNSVUZCUlN4RlFVRkZMRTFCUVUwc1NVRkJTU3hOUVVGTlNTeEZRVUZGTERKRFFVRXlReXhGUVVGRkxFbEJRVWxJTEVOQlFVTXNRMEZCUXl4VFFVRlRZeXhGUVVGRldDeEZRVUZGTEVOQlFVTXNUMEZCVDFVc1JVRkJSU3hUUVVGVFZpeERRVUZETEVWQlFVVlRMRVZCUVVVc1ZVRkJWVlFzUlVGQlJTeEpRVUZKUVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSU3hYUVVGWExFVkJRVVZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFdTeEZRVUZGV2l4RlFVRkZMRU5CUVVNc1QwRkJUMVVzUlVGQlJTeFRRVUZUVml4RFFVRkRMRVZCUVVWVExFVkJRVVVzVlVGQlZWUXNSVUZCUlN4SlFVRkpRU3hEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUU2l4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeFhRVUZYTEVWQlFVVkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUWVN4RlFVRkZZaXhGUVVGRkxFTkJRVU1zVDBGQlQxVXNSVUZCUlN4UlFVRlJWaXhEUVVGRExFVkJRVVZUTEVWQlFVVXNVMEZCVTFRc1JVRkJSU3hKUVVGSlFTeERRVUZETEVWQlFVVXNTVUZCU1N4VFFVRlRTaXhGUVVGRkxFTkJRVU1zVDBGQlQwRXNSVUZCUlN4VlFVRlZMRVZCUVVWSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRZeXhGUVVGRlpDeEZRVUZGTEVOQlFVTXNUMEZCVDFVc1JVRkJSU3hSUVVGUlZpeERRVUZETEVWQlFVVlRMRVZCUVVVc1UwRkJVMVFzUlVGQlJTeEpRVUZKUVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSU3hWUVVGVkxFVkJRVVZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFpTeEZRVUZGWml4RlFVRkZMRU5CUVVNc1QwRkJUMEVzWVVGQllVWXNRMEZCUXl4RFFVRkRMRk5CUVZOclFpeEZRVUZGYUVJc1JVRkJSU3hEUVVGRExFMUJRWGxDTEVOQlFVTXNSVUZCUlN4VFFVRlRMRXRCUVV0QkxFTkJRVU1zU1VGQmNrTXNaMEpCUVhORExFTkJRVU1zVTBGQlUybENMRVZCUVVWcVFpeEZRVUZGTEVOQlFVTXNUMEZCVDBrc1JVRkJSU3hIUVVGSExFOUJRVThzVTBGQlUwb3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVMUVzUlVGQlJWSXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFVrc1JVRkJSU3hOUVVGTlNpeEZRVUZGTEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlUxY3NSVUZCUlZBc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOXZRaXhGUVVGRmNFSXNRMEZCUXl4SlFVRkpRU3hGUVVGRkxFTkJRVU5CTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFZEJRVWNzVFVGQlRTeExRVUZMTEZOQlFWTkpMRVZCUVVVc1UwRkJVMG9zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVTNOQ0xFVkJRVVZzUWl4RlFVRkZTaXhGUVVGRkxFTkJRV2RDTEVkQlFWb3NRMEZCUTBFc1IwRkJZMGtzUlVGQlJTeFRRVUZUU2l4RlFVRkZMRk5CUVZNc1QwRkJUMGtzUlVGQlJTeEpRVUZKU0N4RlFVRkZSeXhGUVVGRkxGZEJRVmRLTEVWQlFVVXNVMEZCVXl4VFFVRlRTU3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJXVVVzUlVGQlJTeGxRVUZZTEU5QlFYZENMRTlCUVU5QkxFVkJRVVVzWVVGQllTeEpRVUZKUlN4SFFVRmxMRTlCUVU4c1MwRkJjRUlzV1VGQmQwSXNUMEZCVDBZc1JVRkJSU3hoUVVGaFJTeEhRVUZGUVN4RlFVRkRMRVZCUVVVc1IwRkJSeXhOUVVGTkxFdEJRVXNzUTBGQlF5eFJRVUZSU0N4RlFVRkZMRWxCUVVrc1NVRkJTVWNzUTBGQlF5eEZRVUZGUkN4RlFVRkZMRVZCUVVWQkxFVkJRVVZJTEVWQlFVVXNUMEZCVDBjc1NVRkJTVVlzUlVGQlJTeEpRVUZKUkN4RlFVRkZSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKUlN4RlFVRkZMRTFCUVUwc1MwRkJTMG9zUTBGQlF5eEZRVUZGTEU5QlFVOUpMRVZCUVVVc1MwRkJTeXhGUVVGRlFTeERRVUZETEVOQlFVTXNVVUZCVVVNc1IwRkJSU3hEUVVGRExFVkJRVVZwUWl4SFFVRkZMRVZCUVVWQkxFZEJRVVZ1UWl4RlFVRkZMRTlCUVU5dFFpeExRVUZKYWtJc1IwRkJSVVlzUlVGQlJXMUNMRVZCUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzVVVGQlVXaENMRWRCUVVVc1JVRkJSVUVzUjBGQlJWQXNSVUZCUlN4UFFVRlBUeXhMUVVGSlJDeEhRVUZGVGl4RlFVRkZUeXhGUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVsQlFVbERMRWRCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkZETEUxQlFVdElMRWxCUVVjc1EwRkJReXhIUVVGSExHVkJRV1VzUzBGQlMwRXNSMEZCUlVjc1JVRkJReXhIUVVGSFJDeEhRVUZGTEV0QlFVdERMRVZCUVVNc1JVRkJSU3hQUVVGUFJDeEhRVUZGTEV0QlFVc3NSVUZCUlVFc1JVRkJReXhGUVVGRlNpeEZRVUZGTEZOQlFWTktMRVZCUVVVc1VVRkJVU3hGUVVGRlFTeEZRVUZGTEZOQlFWTXNUVUZCVFN4RFFVRkRMRTlCUVU5SkxFVkJRVVVzVDBGQlR5eE5RVUZOUVN4RlFVRkZMRTFCUVUwc1RVRkJUVUVzUlVGQlJTeE5RVUZOTEZOQlFWTktMRVZCUVVVc1UwRkJVeXhUUVVGVFF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpkVUlzUlVGQlJTeERRVUZETEVWQlFVVXNVMEZCVTBNc1JVRkJSWEpDTEVWQlFVVktMRVZCUVVVc1EwRkJReXhIUVVGSGNVSXNSVUZCUldwQ0xFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNUMEZCVDBvc1JVRkJSU3hMUVVGTExFZEJRVWNzVDBGQlR5eEZRVUZGTEVWQlFVVkpMRXRCUVV0dlFpeEpRVUZKUVN4RlFVRkZjRUlzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJTQ3hGUVVGRmRVSXNSVUZCUlhCQ0xFTkJRVU1zUlVGQlJVWXNSVUZCUlN4RlFVRkZReXhGUVVGRkxFVkJRVVZGTEVWQlFVVXNSVUZCUlVNc1JVRkJSVTRzUlVGQlJVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSMEVzUzBGQlMwd3NSVUZCUlN4RFFVRkRReXhGUVVGRlJDeEZRVUZGU3l4RFFVRkRMRVZCUVVVc1MwRkJVMFFzU1VGQlNpeEpRVUZSUVN4RlFVRkZTaXhGUVVGRlN5eERRVUZETEVWQlFVVXNWMEZCVnl4TFFVRkxMRVZCUVZOR0xFVkJRVVVzVDBGQlQwVXNRMEZCUXl4SlFVRnFRanRCUVVGQkxFZEJRVEpDUml4RlFVRkZMRTlCUVU5RkxFTkJRVU1zU1VGQmFrSXNUVUZCTWtKR0xFVkJRVVVzVDBGQlQwVXNSVUZCUlN4RFFVRkRMRWxCUVc1Q08wRkJRVUVzUzBGQmQwSklMRWxCUVZGRkxFbEJRVW9zU1VGQlVVRXNSVUZCUlVNc1JVRkJSU3hKUVVGSlFTeEhRVUZITEVOQlFVTXNTVUZCU1dsQ0xFVkJRVVZ5UWl4RlFVRkZReXhGUVVGRlNTeEhRVUZGVUN4RlFVRkZTeXhGUVVGRkxFOUJRVTlLTEVWQlFVVkVMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXQxUWl4RlFVRkZMRlZCUVZWc1FpeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBUQ3hGUVVGRkxFdEJRVXQxUWl4RlFVRkZMRVZCUVVVc1QwRkJUMmhDTEVkQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVMjFDTEVWQlFVVjBRaXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZEWlN4RlFVRkZaaXhEUVVGRExFVkJRVVVzVFVGQlRTeEpRVUZKTEUxQlFVMHNhVUpCUVdsQ1FTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRkVUlzUlVGQlJYWkNMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZuUWl4UFFVRlBTU3hIUVVGcVFpeFRRVUZ0UWtFc1JVRkJSU3hQUVVGUFNpeERRVUZETEVWQlFVVkpMRVZCUVVWS0xFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTTBRaXhIUVVGRmVFSXNSVUZCUlN4RFFVRkRMRWRCUVdFc1QwRkJUMEVzUjBGQmFrSXNVMEZCYlVJc1RVRkJUU3hKUVVGSkxFMUJRVTBzYVVKQlFXbENRU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUZVVJc1IwRkJSWHBDTEVWQlFVVXNRMEZCUXl4SFFVRmxMRTlCUVU5QkxFZEJRVzVDTEZkQlFYRkNMRTFCUVUwc1NVRkJTU3hOUVVGTkxHMUNRVUZ0UWtFc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV6QkNMRVZCUVVVeFFpeEZRVUZGTEVOQlFVTXNSMEZCWVN4UFFVRlBRU3hIUVVGcVFpeFRRVUZ0UWl4TlFVRk5MRWxCUVVrc1RVRkJUU3hwUWtGQmFVSkJMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWt5UWl4RlFVRkZMRVZCUVVWRExFVkJRVVVzUlVGQlJVTXNSMEZCUlN4RlFVRkZReXhIUVVGRkxFVkJRVVZFTEVkQlFVVkZMRWRCUVVVc1JVRkJSVVlzUjBGQlJVY3NSMEZCUlN4TFFVRkxMRk5CUVZORExFZEJRVVZxUXl4RlFVRkZTaXhGUVVGRkxFTkJRVU1zVDBGQlR5eEpRVUZKTEUxQlFVMUJMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXRKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZOclF5eEhRVUZGYkVNc1JVRkJSVW9zUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVZHTEVWQlFVVkpMRVZCUVVVc1QwRkJUeXhQUVVGUFJpeEhRVUZITEVWQlFVVkZMRVZCUVVWcFF5eEhRVUZGY0VNc1JVRkJSVU1zUTBGQlF5eEZRVUZGUlN4RFFVRkRMRU5CUVVNc1UwRkJVMjFETEVkQlFVVnVReXhGUVVGRlNpeEZRVUZGUXl4RlFVRkZReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVdEZMRVZCUVVWS0xFVkJRVVVzUlVGQlJVa3NSVUZCUlVvc1JVRkJSU3hGUVVGRkxFZEJRVWRKTEVWQlFVVklMRVZCUVVWRExFVkJRVVZCTEVWQlFVVkZMRVZCUVVWSUxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTjFReXhIUVVGRmNFTXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFbEJRVWxETEVWQlFVVkRMRVZCUVVWRExFVkJRVVZGTEVWQlFVVkZMRVZCUVVWRExFVkJRVVZTTEVWQlFVVXNUVUZCVFZNc1IwRkJSVVFzUlVGQlJTeFBRVUZQUlN4SFFVRkZMRVZCUVVVc1IwRkJSMFFzUzBGQlNVd3NSVUZCUlN4UFFVRlBMRTFCUVUwc01rSkJRVEpDTEVkQlFVZHBRaXhGUVVGRmFrSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTVk1zUjBGQlJVb3NSMEZCUlVFc1IwRkJSWGRDTEVkQlFVVnVRaXhIUVVGRlRDeEhRVUZGU1N4SFFVRkZSU3hIUVVGRmQwSXNSMEZCUlRGQ0xFZEJRVVZ4UWl4SFFVRkZReXhIUVVGRlJpeEhRVUZGTjBJc1JVRkJSU3hOUVVGTkxFVkJRVVZaTEVkQlFVVXNSVUZCUlN4VFFVRlRXaXhIUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEZOQlFWTkJMRWRCUVVVc1EwRkJReXhQUVVGUGEwTXNSMEZCUld4RExFZEJRVVVzVTBGQlV5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSVUVzUlVGQlF5eERRVUZETEVWQlFVVXNVMEZCVTBFc1IwRkJSVW9zUjBGQlJTeERRVUZETEVsQlFVbERMRWRCUVVWSExFZEJRVVVzVDBGQlQwWXNSMEZCUlN4RFFVRkRMRVZCUVVWRExFZEJRVVVzUlVGQlJTeEhRVUZIUml4SlFVRkhSQ3hIUVVGRkxFMUJRVTBzUTBGQlEwa3NSMEZCUlN4TlFVRk5MRU5CUVVNc1JVRkJSU3hSUVVGUlF5eEhRVUZGTEVWQlFVVkJMRWRCUVVWS0xFZEJRVVZKTEV0QlFVbElMRWRCUVVWRExFVkJRVU1zUjBGQlIwUXNSMEZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRlFTeEhRVUZGUXl4RlFVRkRMRVZCUVVVc1MwRkJTME1zUjBGQlJVTXNSVUZCUXl4RFFVRkRMRWRCUVVkQkxFZEJRVVVzUjBGQlIwd3NTVUZCUnl4SFFVRkhSeXhMUVVGSkxFOUJRVTlFTEVWQlFVTXNSVUZCUlVVc1JVRkJSU3hOUVVGTlZ5eEhRVUZGTEV0QlFVdEJMRWRCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMYTBJc1JVRkJReXhEUVVGRExFVkJRVVUxUWl4RlFVRkZMRk5CUVZORUxFZEJRVVVzUTBGQlF5eFBRVUZYUVN4SFFVRkZMRTlCUVU0c1IwRkJaMEpCTEVkQlFVVXNTMEZCVGl4RlFVRlRMRU5CUVVNc1MwRkJTMEVzUjBGQlJTeExRVUZMTEVkQlFVZEJMRWRCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlMwRXNSMEZCUlN4TFFVRkxOa0lzUjBGQlJTeEhRVUZITEV0QlFVc3NUVUZCVFRkQ0xFZEJRVVVzUjBGQlJ6WkNMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVVZzUWl4RlFVRkRMRVZCUVVWaUxFVkJRVVZYTEVkQlFVVnZRaXhIUVVGRmFFTXNSVUZCUlN4RlFVRkZZU3hIUVVGRlFTeEpRVUZITEVsQlFVbGlMRWRCUVVjc1IwRkJSMU1zUjBGQlJTeEZRVUZGVUN4RlFVRkZMRVZCUVVVc1UwRkJVME1zUjBGQlJTeERRVUZETEU5QlFVOUJMRWRCUVVVc1VVRkJVU3hGUVVGRlFTeEhRVUZGTEV0QlFVc3NSMEZCUnl4RlFVRkZRU3hIUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4SFFVRkhMRVZCUVVVc1MwRkJTMEVzUjBGQlJTeE5RVUZOTEVOQlFVTXNSVUZCUlN4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRldTeEZRVUZETEVkQlFVZFVMRWRCUVVjc1IwRkJSMFlzUlVGQlJTeEhRVUZITEVWQlFVVkJMRVZCUVVVc1IwRkJSeXhGUVVGRlFTeEZRVUZGTEV0QlFVc3NVMEZCVXl4RlFVRkZMRVZCUVVVc1VVRkJVU3hKUVVGSlJTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVsVkxFZEJRVVZpTEVWQlFVVXNUVUZCVFN4NVFrRkJlVUlzUlVGQlJVZ3NSVUZCUlU4c1JVRkJSU3hQUVVGUExFVkJRVVZPTEVWQlFVVk5MRVZCUVVVc1MwRkJTeXhGUVVGRlNDeEZRVUZGYTBNc1IwRkJSWEpETEVWQlFVVTJRaXhGUVVGRlF5eEZRVUZGWml4SFFVRkZMRTFCUVUwc1JVRkJSV1FzUlVGQlJXTXNSMEZCUlN4TlFVRk5XaXhGUVVGRkxFdEJRVXRCTEVWQlFVVXNSVUZCUlN4RlFVRkZSU3hGUVVGRlJpeEZRVUZGTEVkQlFVY3NVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSllTeEhRVUZGYUVJc1JVRkJSVWNzUlVGQlJTeExRVUZMTEU5QlFVOW5RaXhGUVVGRmFrSXNRMEZCUXl4SlFVRkpSeXhIUVVGSExFZEJRVWRHTEVWQlFVVXNSMEZCUnl4RlFVRkZRU3hGUVVGRkxFZEJRVWNzUlVGQlJVRXNSVUZCUlN4TFFVRkxMRk5CUVZNc1JVRkJSU3hGUVVGRkxGRkJRVkVzU1VGQlNVVXNSVUZCUlN4SFFVRkhSQ3hGUVVGRkxGTkJRVk5PTEVkQlFVVkZMRWRCUVVWRExFZEJRVVVzUTBGQlF5eEpRVUZKUnl4SFFVRkZhVUlzUjBGQlJYQkNMRXRCUVVsbExFZEJRVVZXTEVkQlFVVmxMRWRCUVVVc1MwRkJTMkVzUjBGQlJTeFBRVUZQT1VJc1IwRkJSV1VzUlVGQlJXcENMRU5CUVVNc1JVRkJSV3RETEVsQlFVY3NSMEZCUjJwRExFVkJRVVVzUzBGQlMwWXNTMEZCU1N4VFFVRlRMRVZCUVVVc1JVRkJSVWtzUlVGQlJTeEhRVUZITEVWQlFVVXJRaXhKUVVGSGFrTXNSVUZCUlN4TFFVRkxSaXhIUVVGRkxFZEJRVWNzVTBGQlV5eEZRVUZGU1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzVDBGQlQxQXNSMEZCUlN4RFFVRkRVU3hIUVVGRlJpeEhRVUZGTEUxQlFVMUtMRVZCUVVNc1JVRkJSWEZDTEVkQlFVVXNRMEZCUTJFc1IwRkJSVU1zUjBGQlJTeEpRVUZKT1VJc1EwRkJReXhGUVVGRkxFMUJRVTByUWl4SFFVRkZMRWRCUVVkeVF5eEZRVUZGTEVkQlFVY3NSVUZCUlc5RExFZEJRVVVzU1VGQlNUTkNMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZVQ3hEUVVGRExFVkJRVVVzUzBGQlN6dEJRVUZCTEVOQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZOelF5eEhRVUZGY2tNc1JVRkJSVW9zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXp0QlFVRkJMRVZCUVVzc2NVSkJRWEZDY1VNc1IwRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdEJRVUZCTzBGQlFVRXNSVUZCVDBjc1IwRkJSWEJETEVWQlFVVktMRU5CUVVNc1JVRkJSVHRCUVVGQk8wRkJRVUVzUjBGQlVVTXNSVUZCUlVRc1JVRkJSU3hUUVVGaFF5eEZRVUZGTEZOQlFVNHNSVUZCWVR0QlFVRkJPMEZCUVVFc1JVRkJaMEpCTEVWQlFVVXNRMEZCUXl4RlFVRkZPMEZCUVVFN1FVRkJRU3hGUVVGelEwRXNSVUZCUlN4TFFVRkxMRWxCUVVrc1IwRkJSenRCUVVGQkxFTkJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpRU3hEUVVGRExFTkJRVU1zVTBGQlUzbERMRWRCUVVWMFF5eEZRVUZGTEVOQlFVTXNUMEZCWjBKQkxFVkJRVVVzVVVGQldDeFBRVUZwUWtFc1JVRkJSU3hOUVVGTkxFTkJRVU5CTEVWQlFVVXNUMEZCVHl4SlFVRkpMRWRCUVVkQkxFVkJRVVVzVjBGQlZ5eEpRVUZKTEVkQlFVZEJMRVZCUVVVc1ZVRkJWU3hKUVVGSkxFZEJRVWRCTEVWQlFVVXNVVUZCVVN4SlFVRkpMRWRCUVVkQkxFVkJRVVVzVDBGQlR5eEpRVUZKTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk4xUXl4SlFVRkhMRU5CUVVNc1VVRkJVWFpETEVWQlFVVXNRMEZCUXl4RlFVRkZMRTFCUVUwc1MwRkJTeXhUUVVGVExFVkJRVVZLTEVWQlFVVkpMRVZCUVVVc1QwRkJUMGdzUlVGQlJTeEZRVUZGUVN4RlFVRkZSQ3hGUVVGRlF5eEhRVUZITEVWQlFVVjVRaXhGUVVGRmRFSXNSVUZCUlVnc1EwRkJReXhEUVVGRExFVkJRVVVzVDBGQlQwTXNSVUZCUlN4VFFVRlRSQ3hGUVVGRlF5eEZRVUZGTEVOQlFVTXNVVUZCVVVNc1JVRkJSVVVzUlVGQlJTeEpRVUZKTEUxQlFVMU1MRU5CUVVNc1JVRkJSVTBzUlVGQlJTeEZRVUZGUVN4RlFVRkZUaXhGUVVGRlRTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVWSUxFVkJRVVZ0UWl4RlFVRkZiRUlzUlVGQlJVVXNRMEZCUXl4RlFVRkZMRVZCUVVWTUxFVkJRVVZETEVOQlFVTXNSVUZCUlVNc1EwRkJReXhIUVVGSExFOUJRVThzVDBGQlQwRXNSVUZCUlVVc1JVRkJSVU1zUTBGQlF5eEZRVUZGU0N4RlFVRkZMRTFCUVUxRUxFVkJRVVZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU5dFFpeEZRVUZGVml4RlFVRkZWaXhGUVVGRlJ5eERRVUZETEVWQlFVVkdMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUZVVNc1NVRkJSeXhEUVVGRExFbEJRVWw0UXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFdEJRVXNzVTBGQlV5eEZRVUZGTEVkQlFVOUJMRVZCUVVVc1UwRkJUaXhGUVVGaExFMUJRVTBzU1VGQlNTeE5RVUZOTEc5RFFVRnZReXhGUVVGRkxFbEJRVWxLTEVWQlFVVkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVTk1UWl4SFFVRkZOMElzUTBGQlF5eEZRVUZGTWtNc1IwRkJSU3hOUVVGTkxFdEJRVXQyUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFFTeEZRVUZGTEVOQlFVTXNUMEZCVDBvc1JVRkJSU3hOUVVGTkxFdEJRVXRKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVGVVTXNTVUZCUnl4RFFVRkRMRWxCUVVsNlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRXRCUVVzc1UwRkJVeXhGUVVGRlNpeEZRVUZGU1N4RlFVRkZMRTlCUVU4c1IwRkJUMG9zU1VGQlNpeEZRVUZOTEU5QlFVODRReXhIUVVGRkxHbENRVUZwUWl4RlFVRkZMRkZCUVZFM1F5eEZRVUZGTEVWQlFVVkJMRVZCUVVWRUxFVkJRVVZETEVkQlFVY3NSVUZCUlhsQ0xFVkJRVVYwUWl4RlFVRkZTQ3hEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQUXl4RlFVRkZMRk5CUVZOR0xFVkJRVVZETEVWQlFVVXNRMEZCUXl4UlFVRlJReXhGUVVGRlF5eEZRVUZGTEVWQlFVVkJMRVZCUVVWRExFVkJRVVVzVDBGQlQwUXNSMEZCUnl4RlFVRkZMRWxCUVVsRUxFVkJRVVZ2UWl4RlFVRkZiRUlzUlVGQlJVUXNRMEZCUXl4RlFVRkZMRVZCUVVWSUxFVkJRVVZETEVOQlFVTXNSVUZCUlVNc1EwRkJReXhIUVVGSExFOUJRVThzVDBGQlQwRXNSVUZCUlN4UFFVRlBRU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTTJReXhIUVVGRk0wTXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFOUJRVTluUkN4SFFVRkZOVU1zUlVGQlJVb3NRMEZCUXl4RlFVRkZMRWRCUVVkcFJDeEhRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFJDeEhRVUZGTlVNc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOHdRaXhGUVVGRmRFSXNRMEZCUXl4RlFVRkZjMElzUlVGQlJURkNMRU5CUVVNc1JVRkJSVFJETEVkQlFVVjRReXhGUVVGRlNpeEZRVUZGTEV0QlFVdEpMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlUwRXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlEwa3NRMEZCUXl4RlFVRkZMRTlCUVU5S0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRhMFFzUjBGQlJUbERMRVZCUVVVc1EwRkJRekJDTEVWQlFVVXhRaXhEUVVGRExFVkJRVVVzU1VGQlNVb3NSVUZCUlN4SlFVRkpTU3hGUVVGRkxFbEJRVWtzVDBGQlQwWXNSVUZCUlN4VFFVRlRSQ3hGUVVGRlF5eEZRVUZGTEVOQlFVTXNTVUZCU1VNc1JVRkJSVVFzUlVGQlJVVXNSVUZCUlN4UFFVRlBReXhGUVVGRlNpeEZRVUZGTEUxQlFVMURMRVZCUVVWRExFTkJRVU1zUlVGQlJTeFBRVUZQUlN4SlFVRkpSQ3hGUVVGRlVTeEZRVUZGVkN4RlFVRkZSU3hEUVVGRExFVkJRVVZOTEVWQlFVVlVMRVZCUVVWR0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRiVVFzUjBGQlJTOURMRVZCUVVWS0xFVkJRVVVzUlVGQlJTeFRRVUZUU1N4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRlFTeGhRVUZoTEZGQlFWRXNUVUZCVFN4SlFVRkpMRTFCUVUwc2FVSkJRV2xDUVN4RFFVRkRMRVZCUVVVc1VVRkJVVW9zUlVGQlJUQkRMRWRCUVVWMFF5eERRVUZETEVWQlFVVklMRVZCUVVVc1JVRkJSVUVzUlVGQlJVUXNSVUZCUlN4UFFVRlBReXhKUVVGSkxFTkJRVU1zU1VGQlNVTXNSVUZCUlVZc1JVRkJSU3hQUVVGUFF5eERRVUZETEVWQlFVVXNSMEZCVTBNc1NVRkJUaXhMUVVGbFFTeEpRVUZPTEV0QlFXVkJMRWxCUVU0c1MwRkJaVUVzU1VGQlRpeEpRVUZSTEUxQlFVMHNTVUZCU1N4TlFVRk5MRFJDUVVFMFFrRXNSVUZCUlN4TlFVRk5SU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZGUVN4RFFVRkRMRVZCUVVVc1ZVRkJWU3hSUVVGUkxFVkJRVVYzUWl4SFFVRkZOVUlzUTBGQlF5eEZRVUZGUVN4RlFVRkZMRVZCUVVVc1NVRkJTVU1zUlVGQlJTeFRRVUZUUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhQUVVGUExFOUJRVTlCTEVWQlFVVXNUMEZCVHl4SlFVRkpjME1zUjBGQlJYUkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVZCTEVOQlFVTXNSVUZCUlVRc1JVRkJSU3hIUVVGSFF5eEZRVUZGTEU5QlFVOUdMRVZCUVVVc1UwRkJVMFVzUlVGQlJVWXNSVUZCUlN4RFFVRkRMRWxCUVVsSExFVkJRVVZLTEVWQlFVVXNTMEZCUzBjc1JVRkJSU3hOUVVGTlJpeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZIVEN4SFFVRkhRU3hIUVVGSFN5eEZRVUZGTEU5QlFVOHNRMEZCUXl4SlFVRkpReXhGUVVGRlJDeEZRVUZGTEVOQlFVTXNSVUZCUld0Q0xFZEJRVVZzUWl4RlFVRkZUQ3hEUVVGRExFVkJRVVVzVDBGQlQxa3NSVUZCUlZZc1JVRkJSVWtzUlVGQlJTeFBRVUZQYVVJc1JVRkJReXhEUVVGRExFTkJRVU1zVDBGQlQxb3NSVUZCUlZRc1JVRkJSU3d5UWtGQk1rSkhMRVZCUVVVc1QwRkJUeXhSUVVGUlJpeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBVU3hGUVVGRlZDeEZRVUZGUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV6aERMRWRCUVVVM1F5eEZRVUZGTEVOQlFVTXNUMEZCVDBZc1JVRkJSU3hUUVVGVFJpeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1QwRkJUMWNzUlVGQlJWZ3NSVUZCUlVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXdReXhIUVVGRk1VTXNSVUZCUlN4RFFVRkRMRTlCUVU5R0xFVkJRVVVzVTBGQlUwWXNSVUZCUlVNc1JVRkJSU3hEUVVGRExFOUJRVTlWTEVWQlFVVldMRVZCUVVWSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRaMFFzUjBGQlJXaEVMRVZCUVVVc1EwRkJReXhIUVVGSFpTeEZRVUZGWml4RFFVRkRMRVZCUVVVc1QwRkJUMFlzUlVGQlJTeFRRVUZUUml4RlFVRkZReXhGUVVGRkxFTkJRVU1zU1VGQlNVTXNSVUZCUlVVc1JVRkJSU3hGUVVGRlNpeEZRVUZGUXl4RFFVRkRMRVZCUVVVc1QwRkJUME1zUlVGQlJTeE5RVUZOUkN4RlFVRkZReXhGUVVGRkxFMUJRVTBzUjBGQlIwRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJZU3hQUVVGUFJTeEhRVUZxUWl4VFFVRnRRaXhQUVVGUFowUXNSMEZCUlVZc1IwRkJSVGxETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVkQkxHRkJRV0VzVDBGQlR5eFBRVUZQWjBRc1IwRkJSVVFzUjBGQlJTOURMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzU1VGQlNTeE5RVUZOTEc5RFFVRnZRMEVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVTJsRUxFZEJRVVZxUkN4RlFVRkZMRU5CUVVNc1QwRkJUM05DTEVWQlFVVjBRaXhEUVVGRExFVkJRVVZHTEVWQlFVVXNVMEZCVTBZc1JVRkJSVU1zUlVGQlJTeERRVUZETEVsQlFVbERMRVZCUVVWRkxFVkJRVVVzUlVGQlJVb3NSVUZCUlVNc1EwRkJReXhGUVVGRlJTeEZRVUZGU0N4RlFVRkZMRTFCUVUxRExFVkJRVVZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU5QkxFVkJRVVVzVDBGQlQxTXNSVUZCUlZZc1JVRkJSU3hSUVVGUlJTeEZRVUZGTEVkQlFVY3NSVUZCUlZNc1JVRkJSVmdzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVM0ZFTEVkQlFVZHNSQ3hGUVVGRkxFTkJRVU1zVDBGQlQzbENMRWRCUVVWNlFpeERRVUZETEVWQlFVVkdMRVZCUVVVc1UwRkJVMFlzUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVY1UWl4RlFVRkZNMElzUlVGQlJVTXNRMEZCUXl4RlFVRkZMRTlCUVU5QkxFVkJRVVZFTEVWQlFVVXNVVUZCVVVrc1JVRkJSVVlzUTBGQlF5eEZRVUZGVlN4RlFVRkZXQ3hGUVVGRkxFVkJRVVZETEVOQlFVTXNSVUZCUlZNc1JVRkJSVllzUlVGQlJTdzJRa0ZCTmtKSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRiVVFzUjBGQlIyNUVMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFZRVUZWTEU5QlFVOHNTVUZCU1VFc1JVRkJSVWtzUlVGQlJVRXNSVUZCUlN4UlFVRlJMRWxCUVVsSUxFVkJRVVZETEVWQlFVVXNVMEZCVTBVc1JVRkJSVVlzUlVGQlJTeERRVUZETEU5QlFVOUVMRVZCUVVVc1JVRkJSVVFzUlVGQlJTeEZRVUZGTEVWQlFVVkRMRVZCUVVVc1JVRkJSVWNzUlVGQlJVWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUFJTeEZRVUZGU0N4RlFVRkZMRXRCUVV0SExFTkJRVU1zUlVGQlJVZ3NRMEZCUXl4RFFVRkRMRk5CUVZOMVJDeEpRVUZKTEVOQlFVTXNUMEZCVDFZc1IwRkJSU3h2UWtGQmIwSXNRMEZCUXl4RFFVRkRNME1zUlVGQlJTeE5RVUZOTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhIUVVGaExFOUJRVTlCTEVkQlFXcENMRlZCUVc5Q0xFTkJRVU5wUWl4RlFVRkZha0lzUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4TlFVRk5MQ3RFUVVFclJDeEZRVUZGTEVsQlFVbEtMRVZCUVVWRExFVkJRVVVzUzBGQlN5eExRVUZMZDBRc1JVRkJSU3hGUVVGRkxFVkJRVVZ5UkN4RlFVRkZMRU5CUVVNc1JVRkJSU3hQUVVGUFNpeEZRVUZGUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRVRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRYZENMRVZCUVVWeVFpeEZRVUZGU0N4RlFVRkZMRkZCUVZFc1JVRkJSU3hUUVVGVFFTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBkVUlzUlVGQlJYQkNMRU5CUVVNc1JVRkJSVW9zUTBGQlF5eEZRVUZGUnl4RlFVRkZMRk5CUVZNc1UwRkJVME1zUlVGQlJTeERRVUZETEVsQlFVbEtMRVZCUVVVc1MwRkJTeXhOUVVGTlNTeERRVUZETEVWQlFVVXNSMEZCUjBvc1JVRkJSU3hQUVVGUExFOUJRVTlCTEVWQlFVVXNUVUZCVFN4SlFVRkpReXhGUVVGRmQwTXNSMEZCUlhKRExFVkJRVVZLTEVOQlFVTXNSVUZCUlVVc1JVRkJSU3hKUVVGSkxFMUJRVTFFTEVOQlFVTXNSVUZCUlN4TlFVRk5ReXhGUVVGRkxFdEJRVXNzYVVKQlFXbENRU3hGUVVGRkxFOUJRVTlHTEVWQlFVVkZMRU5CUVVNc1JVRkJSVU1zUlVGQlJTeFBRVUZQTEZOQlFWTkRMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZQTEV0QlFVc3NUVUZCVFN4VFFVRlRReXhGUVVGRkxFTkJRVU1zVDBGQlQwY3NSVUZCUlVnc1EwRkJReXhGUVVGRlowUXNSMEZCUldoRUxFTkJRVU1zUlVGQlJUWkRMRWRCUVVVNVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVWSExFVkJRVVVzUjBGQlJ5eFRRVUZUUXl4RlFVRkZMRU5CUVVNc1QwRkJUM2xETEVkQlFVVXNTMEZCUzNwRExFTkJRVU1zUTBGQlF5eEZRVUZGUkN4RlFVRkZMRXRCUVVzc1UwRkJVME1zUlVGQlJTeERRVUZETEU5QlFVOHNTMEZCU3l4TFFVRkxRU3hGUVVGRlFTeERRVUZETEVOQlFVTXNSVUZCUlVRc1JVRkJSU3hMUVVGTExGTkJRVk5ETEVWQlFVVktMRVZCUVVVc1EwRkJReXhQUVVGUE5FTXNSMEZCUlhoRExFVkJRVVVzUzBGQlMwb3NSVUZCUlN4VFFVRlRTU3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVY3NSVUZCUlN4TFFVRkxMRk5CUVZORExFVkJRVVVzUTBGQlF5eFBRVUZQUVN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRlJDeEZRVUZGTEV0QlFVc3NVMEZCVTBNc1JVRkJSU3hEUVVGRExFOUJRVTl6UWl4RlFVRkZkRUlzUTBGQlF5eEZRVUZGZFVNc1IwRkJSU3hMUVVGTGRrTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1UwRkJVMEVzUlVGQlJTeERRVUZETEU5QlFVOUJMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGUkN4RlFVRkZMRXRCUVVzc1ZVRkJWU3hEUVVGRExFbEJRVWxETEVWQlFVVXNTMEZCU3l4UFFVRlBSaXhGUVVGRkxGTkJRVk5HTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhSUVVGUlF5eEZRVUZGTEVOQlFVTXNSVUZCUlVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGUVN4RlFVRkZiVUlzUlVGQlJXeENMRVZCUVVVc1JVRkJSVW9zUlVGQlJVTXNRMEZCUXl4RlFVRkZSU3hEUVVGRExFZEJRVWNzVDBGQlR5eFBRVUZQYlVJc1JVRkJSVllzUlVGQlJWZ3NSVUZCUlVNc1EwRkJReXhGUVVGRlF5eERRVUZETEVWQlFVVXNSMEZCUjBZc1NVRkJTVVVzUlVGQlJTeE5RVUZOTEUxQlFVMHNTVUZCU1N4TlFVRk5MR2RKUVVGblNTeEZRVUZGUml4RlFVRkZSU3hGUVVGRkxFMUJRVTFFTEVWQlFVVXNTMEZCUzBNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVFc1JVRkJSU3hSUVVGUkxGTkJRVk5ETEVWQlFVVXNRMEZCUXl4UFFVRlBNRUlzUlVGQlJURkNMRU5CUVVNc1JVRkJSU3hMUVVGTExFbEJRVWtzVTBGQlUwb3NSVUZCUlN4RFFVRkRMRWRCUVVjc1UwRkJVMGtzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUTJkQ0xFVkJRVVZvUWl4RFFVRkRMRVZCUVVVc1RVRkJUU3hKUVVGSkxFMUJRVTBzYVVKQlFXbENRU3hEUVVGRExFTkJRVU1zUlVGQlJVb3NRMEZCUXl4RlFVRkZRU3hGUVVGRkxFOUJRVThzUTBGQlF6aENMRVZCUVVVNVFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZGRExFVkJRVVZFTEVWQlFVVXNRMEZCUXl4RlFVRkZSU3hGUVVGRkxFVkJRVVZCTEVWQlFVVkdMRVZCUVVVc1QwRkJUMFVzU1VGQlNUUkNMRVZCUVVVNVFpeEZRVUZGUlN4RFFVRkRMRU5CUVVNc1JVRkJSVVFzUjBGQlIwY3NSVUZCUlVvc1JVRkJSVVVzUTBGQlF5eEZRVUZGTEU5QlFVOUVMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVkZMRVZCUVVVc1NVRkJTU3hWUVVGVkxFTkJRVU1zVDBGQlR5eExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUVVWQkxFVkJRVVVzVFVGQlRTeFRRVUZUUXl4RlFVRkZTaXhGUVVGRkxFTkJRVU1zU1VGQlNVTXNSVUZCUlN4TFFVRkxMRTlCUVU4c1ZVRkJWU3hQUVVGUExFbEJRVWxFTEVWQlFVVkpMRWRCUVVkM1FpeEhRVUZGZUVJc1EwRkJReXhGUVVGRmQwSXNSMEZCUlRWQ0xFTkJRVU1zUlVGQlJVVXNSVUZCUlN4VFFVRlRRU3hGUVVGRlF5eEZRVUZGTEVOQlFVTXNVVUZCVVVVc1JVRkJSU3hEUVVGRExFVkJRVVZETEVWQlFVVXNUMEZCVDJsQ0xFVkJRVVVzVDBGQlQyaENMRWRCUVVVc1JVRkJSVUVzUjBGQlJVZ3NSVUZCUlVjc1NVRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlIyZENMRVZCUVVWRUxFVkJRVVZvUWl4RlFVRkZUQ3hGUVVGRkxFVkJRVVZETEVWQlFVVkRMRU5CUVVNc1JVRkJSVzlDTEVOQlFVTXNSVUZCUlN4RFFVRkRha0lzUlVGQlJTeFBRVUZQTEU5QlFVOXBRaXhGUVVGRmNFSXNSVUZCUlVjc1JVRkJSU3hOUVVGTlJDeEZRVUZGTEV0QlFVdERMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlMwTXNSMEZCUlZBc1NVRkJTWFZDTEVWQlFVVkVMRVZCUVVWb1FpeEZRVUZGVEN4RlFVRkZMRVZCUVVWRExFVkJRVVZETEVOQlFVTXNSVUZCUlc5Q0xFTkJRVU1zUlVGQlJXcENMRVZCUVVVc1VVRkJVVU1zU1VGQlJ5eEZRVUZGU2l4RlFVRkZSeXhGUVVGRkxFMUJRVTFFTEVWQlFVVXNTMEZCUzBNc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlQyZENMRVZCUVVWV0xFVkJRVVZVTEVWQlFVVkZMRU5CUVVNc1JVRkJSV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSWEJDTEVWQlFVVXNUMEZCVHl4VFFVRlRReXhGUVVGRkxFTkJRVU1zVDBGQlR5eExRVUZMTEVsQlFVa3NWVUZCVlN4RFFVRkRMRTlCUVU5QkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVkVMRVZCUVVVc1QwRkJUeXhUUVVGVFF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4TFFVRkxMRTFCUVUwc1JVRkJSVUVzUTBGQlF5eERRVUZETEVWQlFVVkVMRVZCUVVVc1VVRkJVU3hUUVVGVFF5eEZRVUZGTEVOQlFVTXNUMEZCVDNkRExFZEJRVVVzUzBGQlN5eE5RVUZOZUVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUzBGQlN5eEZRVUZGTEZOQlFWTkJMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZQU1N4RlFVRkZMRTlCUVU5S0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVjc1JVRkJSU3hKUVVGSkxGTkJRVk5ETEVWQlFVVXNRMEZCUTNsQ0xFZEJRVVY2UWl4RFFVRkRMRVZCUVVVc1NVRkJTVW9zUlVGQlJTeExRVUZMTEU5QlFVOUZMRVZCUVVVc1UwRkJVMFFzUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVZJTEVWQlFVVXNSVUZCUlVNc1JVRkJSVU1zUTBGQlF5eEZRVUZGTEU5QlFVOURMRVZCUVVVc1QwRkJUMjFDTEVWQlFVVldMRVZCUVVWVUxFVkJRVVVzVFVGQlRVTXNSVUZCUlVRc1JVRkJSU3hMUVVGTExFTkJRVU1zUlVGQlJVRXNRMEZCUXl4RlFVRkZRU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGUVN4RlFVRkZMRlZCUVZVc1UwRkJVME1zUlVGQlJTeERRVUZEZVVJc1IwRkJSWHBDTEVOQlFVTXNSVUZCUlN4SlFVRkpTaXhGUVVGRkxFdEJRVXNzVDBGQlQwVXNSVUZCUlN4VFFVRlRSQ3hGUVVGRlF5eEZRVUZGTEVOQlFVTXNTVUZCU1VNc1JVRkJSVWdzUlVGQlJTeE5RVUZOU1N4RlFVRkZTQ3hGUVVGRkxFMUJRVTFETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1QwRkJUME1zUlVGQlJTeFBRVUZQVXl4RlFVRkZWaXhGUVVGRlJDeEZRVUZGTEU5QlFVOUZMRVZCUVVVc1MwRkJTeXhGUVVGRlFTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZRU3hGUVVGRkxFOUJRVThzVTBGQlUwTXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFOUJRVTgyUWl4SFFVRkZla0lzUTBGQlF5eEZRVUZGZVVJc1IwRkJSVGRDTEVOQlFVTXNSVUZCUlN4TFFVRkxMRlZCUVZWSkxFTkJRVU1zUlVGQlJTeEpRVUZKU2l4RFFVRkRMRU5CUVVNc1JVRkJSVWNzUlVGQlJTeExRVUZMTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhQUVVGUGRVTXNSMEZCUlN4TFFVRkxka01zUTBGQlF5eEZRVUZGTEVsQlFVa3NVMEZCVTBFc1JVRkJSU3hEUVVGRExFOUJRVTlCTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRlJDeEZRVUZGTEV0QlFVc3NWVUZCVlN4RFFVRkRMRTlCUVU5NVF5eEhRVUZGWXl4SFFVRkhMRXRCUVV0QkxFZEJRVWNzVTBGQlUzUkVMRVZCUVVWS0xFVkJRVVZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUVWNzUlVGQlJTeE5RVUZOU2l4RlFVRkZMRWxCUVVsRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVVc1JVRkJSU3hMUVVGTExGTkJRVk5ETEVWQlFVVXNRMEZCUXl4UFFVRlBkME1zUjBGQlJXTXNSMEZCUnl4TFFVRkxRU3hIUVVGSExGTkJRVk14UkN4RlFVRkZReXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVV0RkxFVkJRVVVzVFVGQlRVZ3NSVUZCUlN4TlFVRk5SQ3hGUVVGRkxFbEJRVWxGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVU1zUlVGQlJTeE5RVUZOTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhQUVVGUE1rTXNSMEZCUlN4TFFVRkxNME1zUTBGQlF5eERRVUZETEVWQlFVVkVMRVZCUVVVc1QwRkJUeXhUUVVGVFF5eEZRVUZGTEVOQlFVTXNUMEZCVHpSRExFZEJRVVVzUzBGQlN6VkRMRU5CUVVNc1EwRkJReXhGUVVGRlJDeEZRVUZGTEZWQlFWVXNVMEZCVTBNc1JVRkJSU3hEUVVGRExFOUJRVThzUzBGQlN5eExRVUZMWjBRc1IwRkJSV2hFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVWRUxFVkJRVVVzWTBGQll5eFRRVUZUUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhMUVVGTExFdEJRVXRwUkN4SFFVRkZha1FzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVRc1JVRkJSU3hMUVVGTExGTkJRVk5ETEVWQlFVVXNRMEZCUTJkQ0xFVkJRVVZvUWl4RFFVRkRMRWxCUVVsQkxFVkJRVVVzUTBGQlEwRXNRMEZCUXl4SFFVRkhMRWxCUVVsS0xFVkJRVVVzUzBGQlN5eFBRVUZQUlN4RlFVRkZMRk5CUVZORUxFVkJRVVZETEVWQlFVVXNRMEZCUXl4SlFVRkpReXhGUVVGRlNDeEZRVUZGTEVWQlFVVkRMRVZCUVVWRExFTkJRVU1zUlVGQlJTeFBRVUZQUXl4RlFVRkZMRk5CUVZOQkxFVkJRVVVzVTBGQlUwTXNSMEZCUjBRc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVRXNSVUZCUlN4VFFVRlRMRk5CUVZORExFVkJRVVVzUTBGQlF5eFBRVUZQTEV0QlFVc3NSMEZCUnpaRExFZEJRVVUzUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRlJDeEZRVUZGTEVkQlFVY3NVMEZCVTBNc1JVRkJSU3hEUVVGRExFOUJRVTkzUXl4SFFVRkZlRU1zUlVGQlJTeExRVUZMTEZOQlFWTkJMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZQU1N4RlFVRkZTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVkhMRVZCUVVVc1RVRkJUU3hUUVVGVFF5eEZRVUZGTEVOQlFVTXNTVUZCU1Vvc1JVRkJSU3hMUVVGTExFOUJRVTlGTEVWQlFVVXNVMEZCVTBRc1JVRkJSVU1zUlVGQlJTeERRVUZETEVsQlFVbERMRVZCUVVWSUxFVkJRVVVzUlVGQlJVTXNSVUZCUlVNc1EwRkJReXhGUVVGRkxFOUJRVTlETEVWQlFVVXNUMEZCVDIxQ0xFVkJRVVZzUWl4RlFVRkZSQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGUml4RlFVRkZSU3hGUVVGRkxFdEJRVXNzUlVGQlJVRXNRMEZCUXl4RlFVRkZRU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGUVN4RlFVRkZMRTlCUVU5QkxFVkJRVVVzUjBGQlIwRXNSVUZCUlN4TlFVRk5jVVFzUjBGQlIzSkVMRVZCUVVVc1IwRkJSemhETEVkQlFVVTVReXhGUVVGRkxHbENRVUZwUWl4RlFVRkZRU3hGUVVGRkxFZEJRVWRCTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVZCTEVWQlFVVXNUVUZCVFVFc1JVRkJSU3h4UWtGQmNVSXNSVUZCUlVFc1JVRkJSU3hQUVVGUFFTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRlFTeEZRVUZGTEUxQlFVMUJMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVkJMRVZCUVVVc1IwRkJSMEVzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSVUVzUlVGQlJTeEpRVUZKTEVsQlFVbDFSQ3hIUVVGSGVFUXNSVUZCUlN4VFFVRlRSU3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVDFrc1JVRkJSVm9zUlVGQlJYbENMRVZCUVVWeVFpeEZRVUZGU2l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVV5UkN4SFFVRkhla1FzUlVGQlJTeFRRVUZUUlN4RlFVRkZTaXhGUVVGRkxFTkJRVU1zVDBGQlQwRXNSMEZCUjBrc1JVRkJSU3hQUVVGUFR5eEZRVUZGV0N4RlFVRkZMRzlDUVVGdlFpeEZRVUZGV1N4RlFVRkZXaXhGUVVGRkxFVkJRVVV5UWl4RlFVRkZka0lzUlVGQlJVb3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk5FUXNSMEZCUnpGRUxFVkJRVVVzVTBGQlUwVXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFOUJRVTlaTEVWQlFVVlNMRVZCUVVVc1QwRkJUMEVzUlVGQlJTeE5RVUZOU2l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVY1UkN4SFFVRkhka1FzUlVGQlJTeFRRVUZUUlN4RlFVRkZTaXhGUVVGRkxFTkJRVU1zVDBGQlQwRXNSVUZCUlVrc1JVRkJSU3hQUVVGUFR5eEZRVUZGV0N4RlFVRkZMRXRCUVVzc1JVRkJSVmtzUlVGQlJWb3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVGRk5rUXNSMEZCUjFZc1IwRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eFRRVUZUTEVWQlFVVlhMRWRCUVVkWUxFZEJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NhVUpCUVdsQ0xFVkJRVVZaTEVkQlFVZGFMRWRCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzVlVGQlZTeEZRVUZGWVN4SFFVRkhZaXhIUVVGRkxGTkJRVk1zUlVGQlJTeExRVUZMTEd0Q1FVRnJRaXhGUVVGRll5eEhRVUZIWkN4SFFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExIRkNRVUZ4UWl4RlFVRkZaU3hIUVVGSFppeEhRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRmxCUVZrc1JVRkJSV2RDTEVkQlFVZHFRaXhIUVVGRkxFbEJRVWtzUlVGQlJXdENMRWRCUVVkc1FpeEhRVUZGTzBGQlFVRXNRMEZCU1N4RlFVRkZiVUlzUjBGQlIyNUNMRWRCUVVVN1FVRkJRU3hEUVVGTkxFVkJRVVZ2UWl4SFFVRkhla0lzUjBGQlJYZENMRWRCUVVkRUxFZEJRVWRFTEVWQlFVVXNSVUZCUlN4TFFVRkxMRk5CUVZNc1JVRkJSVWtzUjBGQlJ6RkNMRWRCUVVWNVFpeEhRVUZIWWl4RlFVRkZMRVZCUVVWMlJDeEZRVUZGTEVsQlFVa3dSQ3hIUVVGSE1VUXNSVUZCUlN4SlFVRkpNa01zUjBGQlJUTkRMRVZCUVVVc1NVRkJTWGxFTEVkQlFVZDZSQ3hGUVVGRkxFZEJRVWRwUlN4SFFVRkhha1VzUlVGQlJTeGxRVUZsTEZOQlFWTkZMRVZCUVVVc1EwRkJReXhKUVVGSlNpeEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJReXhMUVVGTFJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4bFFVRmxMRXRCUVV0QkxFVkJRVVZJTEVOQlFVTXNSMEZCUnl4VFFVRlRRU3hGUVVGRkxFTkJRVU5FTEVWQlFVVkRMRU5CUVVNc1JVRkJSWE5FTEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU5dVJDeEZRVUZGU0N4RFFVRkRMRVZCUVVWRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVNc1EwRkJReXhGUVVGRkxFOUJRVTlFTEVOQlFVTXNSVUZCUlVVc1JVRkJSU3hMUVVGTGJVVXNSMEZCUjI1RkxFVkJRVVVzVDBGQlR5eFRRVUZUUlN4RlFVRkZMRU5CUVVNc1QwRkJUMFlzUlVGQlJVVXNSVUZCUlZFc1JVRkJSVVFzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlZRc1JVRkJSU3hOUVVGTk1rUXNSMEZCUnpORUxFVkJRVVVzVDBGQlR6UkVMRWRCUVVjMVJDeEZRVUZGTEUxQlFVMXpSQ3hIUVVGSGRFUXNSVUZCUlN4SlFVRkpjVVVzUjBGQlIzSkZMRVZCUVVVc1NVRkJTWFZFTEVkQlFVZDJSQ3hGUVVGRkxFdEJRVXMwUXl4SFFVRkZOVU1zUlVGQlJTeFpRVUZaZFVNc1IwRkJSWFpETEVWQlFVVXNUVUZCVFhkRUxFZEJRVWQ0UkN4RlFVRkZMRk5CUVZOcFFpeEZRVUZGYWtJc1JVRkJSU3hMUVVGTGNVUXNSMEZCUjNKRUxFVkJRVVVzVDBGQlR6WkVMRWRCUVVjM1JDeEZRVUZGTEZGQlFWRTRSQ3hIUVVGSE9VUXNSVUZCUlN4SFFVRkhhMFVzUjBGQlIyeEZMRVZCUVVVc1ZVRkJWV3RFTEVkQlFVVnNSQ3hGUVVGRkxGbEJRVmxUTEVWQlFVVlVMRVZCUVVVc1dVRkJXVlVzUlVGQlJWWXNSVUZCUlN4UlFVRlJiMFVzUjBGQlIzQkZMRVZCUVVVc1QwRkJUeXhUUVVGVFJTeEZRVUZGTEVOQlFVTXNUMEZCVDJ0RUxFZEJRVWNzVTBGQlUzUkVMRVZCUVVVc1EwRkJReXhQUVVGUFNTeEZRVUZGTEZGQlFWRktMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEZsQlFWbEpMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVZHTEVWQlFVVXNZMEZCWTIxRUxFZEJRVVZ1UkN4RlFVRkZMRWRCUVVjclF5eEhRVUZGTDBNc1JVRkJSU3hOUVVGTkxGTkJRVk5GTEVWQlFVVXNRMEZCUXl4UlFVRlJTaXhGUVVGRlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZTQ3hGUVVGRkxFVkJRVVZCTEVWQlFVVkVMRVZCUVVVc1QwRkJUME1zU1VGQlNVUXNSVUZCUlVNc1EwRkJReXhGUVVGRkxFbEJRVWxFTEVWQlFVVkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFOUJRVTl4UkN4SFFVRkhMRk5CUVZOMFJDeEZRVUZGTEVOQlFVTXNUMEZCVDBrc1JVRkJSU3hSUVVGUlNpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTMEVzUTBGQlF5eERRVUZETEVWQlFVVkZMRVZCUVVVc1kwRkJZeXRFTEVkQlFVY3ZSQ3hGUVVGRkxFOUJRVTlCTEVWQlFVVkJMRVZCUVVVc1RVRkJUU3hUUVVGVFJTeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1QwRkJUM05FTEVkQlFVY3NVMEZCVTNKRUxFVkJRVVVzUTBGQlF5eFBRVUZQUnl4SFFVRkhTQ3hIUVVGSFFTeEhRVUZIUkN4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTFNTeEZRVUZGTEVsQlFVbEtMRU5CUVVNc1EwRkJReXhGUVVGRlJTeEZRVUZGTEUxQlFVMXBSQ3hIUVVGRmFrUXNSVUZCUlN4UFFVRlBhVVFzUjBGQlJXcEVMRVZCUVVVc1RVRkJUVFpETEVkQlFVVTNReXhGUVVGRkxFOUJRVTg0UXl4SFFVRkZPVU1zUlVGQlJTeEpRVUZKZVVNc1IwRkJSWHBETEVWQlFVVXNUMEZCVHpCRExFZEJRVVV4UXl4RlFVRkZMRTlCUVU4c1ZVRkJWU3hEUVVGRExGRkJRVkZGTEVWQlFVVktMRVZCUVVVc1EwRkJReXhGUVVGRlF5eEZRVUZGTEVWQlFVVkZMRWRCUVVkRExFVkJRVVVzVlVGQlZTeE5RVUZOTEZWQlFWVXNUVUZCVFN4TFFVRkxRU3hEUVVGRExFZEJRVWRETEVWQlFVVkdMRVZCUVVVc1QwRkJUMGNzUlVGQlJTeEZRVUZGUVN4RlFVRkZSQ3hGUVVGRlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkphVUlzUlVGQlJYQkNMRVZCUVVWSExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTmhMRVZCUVVWSkxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVZElMRVZCUVVWSExFTkJRVU1zUjBGQlQwRXNSVUZCUlN4VFFVRk9MRWRCUVhkQ0xFOUJRVTlCTEVWQlFVVXNRMEZCUXl4SFFVRndRaXhWUVVGMVFrb3NSVUZCUlVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVbG9RaXhGUVVGRlowSXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhQUVVGUExGVkJRVlVzWlVGQlpTeExRVUZMZGtJc1JVRkJSVThzUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4TlFVRk5MSGxDUVVGNVFrRXNRMEZCUXl4RlFVRkZVQ3hGUVVGRlR5eERRVUZETEVWQlFVVXNSMEZCUjA0c1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNiVVZCUVcxRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVOUJMRWxCUVVvc1JVRkJUU3hOUVVGTkxFbEJRVWtzVFVGQlRTeHpSRUZCYzBRc1JVRkJSU3hQUVVGUFF5eEZRVUZGTEZOQlFWTkZMRWRCUVVWS0xFZEJRVVVzUTBGQlF5eFJRVUZSUXl4SFFVRkZReXhIUVVGRkxFTkJRVU1zUlVGQlJVa3NSMEZCUlN4RlFVRkZRU3hIUVVGRlJDeEZRVUZGUXl4SlFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSmFVSXNSMEZCUldoQ0xFZEJRVVVzUjBGQlIyRXNSVUZCUldwQ0xFVkJRVVZITEVWQlFVTXNRMEZCUXl4SFFVRkhhVUlzUjBGQlJYQkNMRVZCUVVWSExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVkRMRWRCUVVWS0xFVkJRVVZITEVWQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVscFFpeEhRVUZGTEV0QlFVdG9RaXhIUVVGRlNpeEZRVUZGUnl4RlFVRkRMRWRCUVVjc1JVRkJSVXdzUjBGQlJYRkNMRVZCUVVWbUxFZEJRVVVzUlVGQlJVZ3NSMEZCUlVvc1JVRkJReXhGUVVGRlF5eEZRVUZETEVkQlFVY3NUMEZCVHl4UFFVRlBRU3hIUVVGRmMwSXNTMEZCU1hKQ0xFZEJRVVZ4UWl4RlFVRkRMRVZCUVVWMFFpeEhRVUZGTEU5QlFVOUVMRWRCUVVWRExFZEJRVVVzUzBGQlN5eERRVUZETEU5QlFVOXhRaXhGUVVGRlZpeEZRVUZGV2l4SFFVRkZSU3hGUVVGRExFVkJRVVZFTEVWQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVU1zUlVGQlJTeFBRVUZQWjBRc1IwRkJSV2hFTEVWQlFVVXNVVUZCVVN0RExFZEJRVVV2UXl4RlFVRkZMRlZCUVZVc1UwRkJVMFVzUlVGQlJTeERRVUZETEU5QlFVOTVRaXhIUVVGRmVrSXNRMEZCUXl4RlFVRkZSaXhGUVVGRkxGTkJRVk5HTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhSUVVGUlF5eEZRVUZGUkN4RlFVRkZReXhGUVVGRlJpeEZRVUZGTEZGQlFWRkpMRVZCUVVWMVFpeEZRVUZGTTBJc1JVRkJSVVVzUTBGQlF5eERRVUZETEVkQlFVZEJMRWxCUVVrc1QwRkJUMVVzUlVGQlJWWXNSVUZCUlVZc1JVRkJSU3hOUVVGTlF5eEZRVUZGUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVRXNSVUZCUlN4TFFVRkxiMFFzUjBGQlIzQkVMRVZCUVVVc1YwRkJWMmRGTEVkQlFVZG9SU3hGUVVGRkxHOUNRVUZ2UWl4RlFVRkZjMFFzUjBGQlIzUkVMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXJReXhIUVVGRkwwTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1QwRkJUMUVzUlVGQlJTeFZRVUZWTEZOQlFWTk9MRVZCUVVVc1EwRkJRMHNzUlVGQlJTeEZRVUZGTEVsQlFVbFVMRVZCUVVVc1EwRkJReXhGUVVGRlF5eEZRVUZGTEVWQlFVVkRMRVZCUVVVc1JVRkJSU3hUUVVGVFJTeEZRVUZGTEVOQlFVTXNSMEZCUjJkQ0xFVkJRVVZvUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSlJpeEZRVUZGUlN4RlFVRkZMRWRCUVU5R0xFVkJRVVVzVTBGQlRpeEZRVUZoTEUxQlFVMHNTVUZCU1N4TlFVRk5MRWxCUVVsQkxFVkJRVVVzUzBGQlN5eEpRVUZKTEVWQlFVVXNiME5CUVc5RFFTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhORUlzUlVGQlJUVkNMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVV3UWl4SFFVRkZNVUlzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRlZCUVZVc1pVRkJaU3hMUVVGTFJpeEZRVUZGUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzU1VGQlNTeE5RVUZOTEN0Q1FVRXJRa0VzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBSaXhGUVVGRlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVkRUxFbEJRVWxETEVOQlFVTXNRMEZCUXl4UFFVRlBNRUlzUjBGQlJYaENMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXRCTEVOQlFVTXNRMEZCUXl4RlFVRkZRU3hEUVVGRExFVkJRVVVzUjBGQlIwZ3NSVUZCUlN4RlFVRkZMRTFCUVUwc1NVRkJTU3hOUVVGTkxHMUVRVUZ0UkVjc1JVRkJSU3hMUVVGTExFbEJRVWtzUlVGQlJTeEhRVUZITEVWQlFVVXNTVUZCU1VRc1JVRkJSU3hGUVVGRkxGTkJRVk5ETEVWQlFVVXNRMEZCUXl4UFFVRlBRU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGUml4RFFVRkRMRVZCUVVVc1QwRkJUMUVzUlVGQlJTeEZRVUZGTEZOQlFWTk9MRVZCUVVVc1EwRkJReXhQUVVGUFFTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZSaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEZOQlFWTkZMRVZCUVVVc1EwRkJReXhQUVVGUFJTeEZRVUZGTEZOQlFWTkdMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZqUVN4RlFVRkZMRU5CUVVNc1NVRkJWaXhQUVVGalNTeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRlFTeEZRVUZGTEVOQlFVTXNSMEZCUjBrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZOQlFWTktMRVZCUVVWRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTkVMRVZCUVVWSkxFVkJRVVZJTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVWRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1UwRkJVME1zUlVGQlJTeERRVUZETEVkQlFVZExMRVZCUVVVc1JVRkJSVzFDTEVkQlFVVjRRaXhEUVVGRExFVkJRVVZCTEVWQlFVVXNTVUZCU1N4TlFVRk5MRWxCUVVrc1RVRkJUU3gzUTBGQmQwTkJMRVZCUVVVc1RVRkJUVUVzUlVGQlJTeFRRVUZUTEVWQlFVVXNSVUZCUlN3d1EwRkJNRU1zUlVGQlJTeEpRVUZKU2l4SFFVRkhTU3hGUVVGRkxFZEJRVWNzUzBGQlN5eFBRVUZQUVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hGUVVGRkxFOUJRVTlHTEVWQlFVVXNVMEZCVTBRc1JVRkJSVU1zUlVGQlJTeERRVUZETEVsQlFVbERMRVZCUVVWM1FpeEZRVUZGTVVJc1JVRkJSVU1zUTBGQlF5eEZRVUZGTEU5QlFVOURMRWxCUVVsRExFVkJRVVZSTEVWQlFVVldMRVZCUVVVc1JVRkJSVU1zUTBGQlF5eEZRVUZGVVN4RlFVRkZWQ3hGUVVGRlJpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1QwRkJUeXhUUVVGVFNTeEZRVUZGTEVOQlFVTXNUMEZCVDFNc1JVRkJSU3hUUVVGVFZDeERRVUZETEVWQlFVVXNTVUZCU1N4VFFVRlRRU3hGUVVGRkxFTkJRVU1zVDBGQlR5eFBRVUZQTEV0QlFVdEJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeGpRVUZqTEZOQlFWTkJMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZQWVN4RlFVRkZMRk5CUVZOaUxFTkJRVU1zUlVGQlJTeEpRVUZKTEZOQlFWTkJMRVZCUVVVc1EwRkJReXhQUVVGUFFTeEZRVUZGTEZOQlFWTkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQVnl4RlFVRkZMRkZCUVZGQkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZOQlFWTkJMRVZCUVVVc1EwRkJReXhGUVVGRkxGTkJRVk5CTEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU5RExFVkJRVVVzVVVGQlVVRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVMEVzUlVGQlJTeERRVUZETEVWQlFVVXNVMEZCVTBFc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRVTXNSVUZCUlN4UFFVRlBRU3hGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSUVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUlFTeEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5ReXhGUVVGRkxFOUJRVTlCTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZGQkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRkJMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkZNTEVWQlFVVXNWVUZCVlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFZDeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNVVUZCVVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUlVGQlJTeEpRVUZKTEZOQlFWTlVMRVZCUVVVc1EwRkJReXhQUVVGUFFTeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hUUVVGVFV5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1UwRkJVMVFzUlVGQlJTeERRVUZETEU5QlFVOUJMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTlRMRVZCUVVVc1YwRkJWeXhEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUVkN4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxGRkJRVkZHTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUTBFek1tUXNTVUZCUVhORkxFZEJRVUZETEVkQlFVRkRMRWxCUVVFc1kwRkRRU3hKUVVGSlF5eEhRVUZoUkN4SlFVRlJRU3hIUVVGTExGZEJRV1VzVlVGQldTeERRVU55UkN4SlFVRkpSU3hGUVVGblFpeFRRVUZWUXl4RlFVRkhReXhGUVVGSExFTkJRMmhETEU5QlFVRkdMRVZCUVdkQ0xFOUJRVThzWjBKQlEyeENMRU5CUVVVc1ZVRkJWeXhEUVVGRExFTkJRVVVzV1VGQllTeFBRVUZUTEZOQlFWVkRMRVZCUVVkRExFVkJRVWNzUTBGQlJVUXNSVUZCUlN4VlFVRlpReXhEUVVGSExFZEJRekZGTEZOQlFWVkVMRVZCUVVkRExFVkJRVWNzUTBGQlJTeFJRVUZUUXl4TFFVRkxSQ3hGUVVGUExFOUJRVThzVlVGQlZTeGxRVUZsTEV0QlFVdEJMRVZCUVVkRExFTkJRVU1zU1VGQlIwWXNSVUZCUlVVc1EwRkJReXhGUVVGSlJDeEZRVUZGUXl4RFFVRkRMRVZCUVVjc1JVRkROMFpJTEVWQlFXTkRMRVZCUVVkRExFTkJRVU1zUTBGRE4wSXNSVUZEUVN4UFFVRlBMRk5CUVZWRUxFVkJRVWRETEVWQlFVY3NRMEZEYmtJc1IwRkJTU3hQUVVGUFFTeEhRVUZOTEZsQlFXTkJMRWxCUVUwc1MwRkRha01zVFVGQlRTeEpRVUZKTEZWQlFWVXNkVUpCUVhsQ0xFOUJRVTlCTEVOQlFVTXNSVUZCU1N3clFrRkJLMElzUlVGRE5VWkdMRVZCUVdORExFVkJRVWRETEVOQlFVTXNSVUZEYkVJc1UwRkJVMFVzUjBGQlN5eERRVUZGTEV0QlFVc3NXVUZCWTBnc1EwRkJSeXhEUVVOMFEwRXNSVUZCUlN4VlFVRlpReXhKUVVGTkxFdEJRVThzVDBGQlR5eFBRVUZQUVN4RFFVRkRMRWRCUVV0RkxFVkJRVWNzVlVGQldVWXNSVUZCUlN4VlFVRlhMRWxCUVVsRkxFVkJRMjVHTEVOQlEwb3NSVUZCUnl4RlFVTklMRTlCUVU4c1pVRkJaVTRzUjBGQlV5eGhRVUZqTEVOQlFVVXNUVUZCVHl4RlFVRkxMRU5CUVVNc1JVRkROVVJCTEVkQlFWRXNWMEZCWVVFc1IwRkJVU3hOUVVGUlFTeEhRVUZSTEdsQ1FVRnRRa0VzUjBGQlVTeHJRa0ZCYjBJc1QwRlpOVVlzVTBGQlUwOHNSMEZCYTBKRExFVkJRVWRLTEVWQlFVY3NRMEZMTjBJc1IwRkJTU3hQUVVGUExGTkJRVk5KTEVOQlFVTXNSMEZCU3l4UFFVRlBMRk5CUVZOS0xFTkJRVU1zUlVGRGRrTXNUMEZCVDBrc1JVRkJTVW9zUlVGSlppeEpRVUZKU3l4RlFVRkxMRTlCUVU5RUxFVkJRMXBGTEVWQlFVc3NUMEZCVDA0c1JVRkRhRUlzUjBGQlNVc3NTVUZCVDBNc1JVRkRVQ3hQUVVGUFJDeEZRVUZMUXl4RlFVRkxMRWRCUVVzc1JVRkZNVUlzUjBGQlNVUXNTVUZCVHl4VFFVRlZMRU5CUldwQ0xFZEJRVWxFTEVsQlFVMHNTMEZEVGl4UFFVRlBTaXhKUVVGTkxFdEJRVThzUlVGQlNTeEhRVU4yUWl4SFFVRkpRU3hKUVVGTkxFdEJRMWdzVFVGQlR5eEhRVTFZTEVkQlRFRkpMRVZCUVVsQkxFVkJRVVVzVVVGQlVTeEZRVU5rU2l4RlFVRkpRU3hGUVVGRkxGRkJRVkVzUlVGRFpFc3NSVUZCU3l4UFFVRlBSQ3hGUVVOYVJTeEZRVUZMTEU5QlFVOU9MRVZCUlZKTExFbEJRVTlETEVWQlExQXNUMEZCVDBRc1JVRkJTME1zUlVGQlN5eEhRVUZMTEVOQlJUbENMRU5CUjBFc1QwRkJTVVlzUlVGQlNVb3NSVUZEUnl4SFFVTlFTU3hGUVVGSlNpeEZRVU5ITEVWQlExQkpMRWxCUVUxS0xFVkJRME1zUlVGRlVDeFBRVUZQTEUxQlFVMUpMRU5CUVVNc1JVRkRVQ3hQUVVGUExFMUJRVTFLTEVOQlFVTXNSVUZCU1N4RlFVRkpMRWRCUTNoQ0xFOUJRVThzVFVGQlRVRXNRMEZCUXl4RlFVTmFMRVZCUlVvc1RVRkJUU3hSUVVGUlNTeERRVUZETEVWQlFVa3NSVUZCU1N4UFFVRlBMRWRCUTNwRExFTkJRMEZTTEVkQlFWRXNhMEpCUVc5Q1R5eEhRVVUxUWl4VFFVRlRTU3hIUVVGcFFrZ3NSVUZCUjBvc1JVRkJSeXhEUVVNMVFpeFBRVUZQU1N4RlFVRkpTaXhGUVVGSkxFVkJRVWxKTEVWQlFVbEtMRVZCUVVrc1IwRkJTeXhEUVVOd1F5eERRVU5CU2l4SFFVRlJMR2xDUVVGdFFsY3NSMEZyUlROQ0xFbEJRVWxETEVkQlFYVkNMRlZCUVZrc1EwRlRia01zVTBGQlUwRXNSVUZCVFVNc1JVRkJVME1zUlVGQlUwTXNSVUZCWVN4RFFVTXhReXhMUVVGTExFMUJRVkZETEVkQlEySXNTMEZCU3l4TlFVRlJMRVZCUTJJc1MwRkJTeXhoUVVGbFJDeEhRVUZsTEVWQlFVa3NTMEZCU3l4SlFVRkpRU3hGUVVGaExFZEJRVWNzUlVGQlNTeEhRVU53UlN4TFFVRkxMRk5CUVZkRUxFZEJRVmRRTEVkQlEzWkNUU3hIUVVOQkxFdEJRVXNzVTBGQlUwRXNRMEZCVHl4RFFVTTNRaXhEUVVOQkxHTkJRVThzWlVGQlpVUXNSVUZCVFN4VlFVRlhMRTlCUVZFc1EwRkpNME1zU1VGQlN5eFZRVUZaTEVOQlFVVXNUMEZCVHl4TFFVRkxMRXRCUVU4c1JVRkRkRU1zVjBGQldTeEhRVU5hTEdGQlFXTXNSVUZEYkVJc1EwRkJReXhGUVVORUxFOUJRVThzWlVGQlpVRXNSVUZCVFN4VlFVRlhMRk5CUVZVc1EwRkZOME1zU1VGQlN5eFZRVUZaTEVOQlFVVXNUMEZCVHl4TFFVRkxMRXRCUVU4c1JVRkRkRU1zVjBGQldTeEhRVU5hTEdGQlFXTXNSVUZEYkVJc1EwRkJReXhGUVVORUxFOUJRVThzWlVGQlpVRXNSVUZCVFN4VlFVRlhMRlZCUVZjc1EwRkZPVU1zU1VGQlN5eFZRVUZaTEVOQlFVVXNUMEZCVHl4TFFVRkxMRkZCUVZVc1EwRkJSeXhGUVVNMVF5eFhRVUZaTEVkQlExb3NZVUZCWXl4RlFVTnNRaXhEUVVGRExFVkJSVVJCTEVWQlFVMHNWVUZCVlN4TlFVRlJMRlZCUVZrc1EwRkRhRU1zUzBGQlN5eE5RVUZSU1N4SFFVTmlMRXRCUVVzc1RVRkJVU3hEUVVOcVFpeEZRVk5CU2l4RlFVRk5MRlZCUVZVc1VVRkJWU3hUUVVGVlN5eEZRVUZWUXl4RlFVRlRMRU5CUTI1RUxFbEJRVWxETEVWQlFWRXNTMEZEV2l4UFFVRkpSQ3hKUVVGWkxGTkJRMXBFTEVWQlFWZEJMRVZCUVZNc1MwRkJTME1zUTBGQlR5eEhRVU0zUWl4TFFVRkxMRmxCUVZrc1UwRkJWVVVzUlVGQlIwTXNSVUZCUnl4RFFVRkZMRTlCUVU5S0xFVkJRVk5KTEVWQlFVZEVMRVZCUVVkRUxFTkJRVXNzUTBGQlJ5eERRVUZETEVOQlF6ZEZMRVZCWlVGUUxFVkJRVTBzVlVGQlZTeFpRVUZqTEZOQlFWVkxMRVZCUVZWTExFVkJRV2RDTEVOQlF6bEVMRWxCUVVsRExFVkJRVTBzUzBGQlN5eFBRVUZQTEVWQlFVZERMRVZCUVU4c1MwRkJTeXhQUVVGUExFVkJRelZETEU5QlFVOHNTMEZCU3l4VFFVRlRSQ3hGUVVGTFF5eEZRVUZOTEVkQlFVMVFMRVZCUVZWTExFTkJRV01zUTBGRGJFVXNSVUZQUVZZc1JVRkJUU3hWUVVGVkxFbEJRVTBzVTBGQlZXRXNSVUZCUzBNc1JVRkJZeXhEUVVNdlF5eFBRVUZQTEV0QlFVc3NUVUZCVFN4SlFVRkpSQ3hGUVVGTFF5eEZRVUZqTEVsQlFVa3NRMEZEYWtRc1JVRmxRV1FzUlVGQlRTeFZRVUZWTEVsQlFVMHNVMEZCVldFc1JVRkJTMFVzUlVGQlQwTXNSVUZCVnl4RFFVTXZReXhMUVVGTExFMUJRVTBzVjBGRFdDeExRVUZMTEUxQlFWRXNTMEZCU3l4TlFVRk5MRTFCUVUwc1IwRkRiRU1zU1VGQlNVTXNSVUZCVXl4TFFVRkxMRTFCUVUwc1NVRkJTVW9zUlVGQlMwVXNSVUZCVDBNc1JVRkJWeXhKUVVGSkxFVkJRM1pFTEU5QlFVbERMRWxCUVZjc1NVRkJVVUVzU1VGQlZ5eEhRVU4yUWtFc1IwRkZXQ3hMUVVGTExFMUJRVkVzU1VGQlNVTXNSMEZCWXl4RFFVRkRMRXRCUVVzc1RVRkJUMFFzUTBGQlRTeERRVUZETEVWQlF6VkRMRWRCUTFnc1JVRlJRV3BDTEVWQlFVMHNWVUZCVlN4SlFVRk5MRk5CUVZWaExFVkJRVXNzUTBGRGFrTXNUMEZCVHl4TFFVRkxMRk5CUVZOQkxFVkJRVXRCTEVWQlFVc3NSMEZCVFN4TlFVRlRMRWxCUVUwc1EwRkRlRVFzUlVGUFFXSXNSVUZCVFN4VlFVRlZMRTlCUVZNc1UwRkJWV0VzUlVGQlN5eERRVU53UXl4UFFVRlBMRXRCUVVzc1ZVRkJWVUVzUlVGQlMwRXNSVUZCU3l4SFFVRk5UU3hGUVVGWExFbEJRVTBzUTBGRE0wUXNSVUZEUVc1Q0xFVkJRVTBzVlVGQlZTeExRVUZQTEZOQlFWVmhMRVZCUVV0RkxFVkJRVTlETEVWQlFWY3NRMEZEY0VRc1NVRkJTVWtzUlVGQlN5eExRVUZMTEUxQlFVMHNSVUZEY0VJc1QwRkJUMEVzUlVGQlJ5eEpRVUZKVUN4RlFVRkxSU3hGUVVGUFF5eERRVUZUTEVkQlFVdEJMRVZCUVZsSkxFVkJRVXNzU1VGRE4wUXNSVUZGUVhCQ0xFVkJRVTBzVlVGQlZTeFZRVUZaTEZOQlFWVnhRaXhGUVVGUFRDeEZRVUZYTEVOQlEzQkVMRWxCUVVsSkxFVkJRVXNzUzBGQlN5eE5RVUZOTEVWQlEzQkNMRTlCUVU5QkxFVkJRVWNzVTBGQlUwTXNSVUZCVDB3c1EwRkJVeXhKUVVGTkxFZEJRVXRCTEVWQlFWbEpMRVZCUVVzc1NVRkRia1VzUlVGVFFYQkNMRVZCUVUwc1ZVRkJWU3hUUVVGWExGTkJRVlZ6UWl4RlFVRk5ReXhGUVVGMVFpeERRVVU1UkN4UlFVUkpTQ3hGUVVGTExFdEJRVXNzVFVGQlRTeEZRVUZIU1N4RlFVRlZMRWRCUTNoQ0xFVkJRVWtzUlVGQlJ5eEZRVUZKUml4RlFVRkxMRTlCUVZFc1NVRkROMEpGTEVWQlFWVktMRVZCUVVjc1NVRkJTVVVzUlVGQlN5eERRVUZETEVWQlFVY3NUMEZCVnl4RlFVRkxMRWRCUVV0RkxFVkJRMjVFTEU5QlFVOUVMRWRCUVhsQ0xFTkJRVU5ETEVWQlFWVXNTMEZCVDBvc1EwRkRkRVFzUlVGUFFYQkNMRVZCUVUwc1ZVRkJWU3hSUVVGVkxGTkJRVlZoTEVWQlFVdFZMRVZCUVhWQ0xFTkJRelZFTEU5QlFVOHNTMEZCU3l4aFFVRmhWaXhGUVVGTFFTeEZRVUZMTEVkQlFVMVZMRU5CUVhGQ0xFTkJRMnhGTEVWQlQwRjJRaXhGUVVGTkxGVkJRVlVzV1VGQll5eFRRVUZWYzBJc1JVRkJUVU1zUlVGQmRVSXNRMEZEYWtVc1NVRkJTVWdzUlVGQlN5eExRVUZMTEUxQlFVMHNSVUZEY0VJc1QwRkJUMEVzUlVGQlJ5eFhRVUZYUlN4RFFVRkpMRWRCUVVzc1EwRkJRME1zUlVGQmQwSklMRVZCUVVzc1NVRkRhRVVzUlVGRlFYQkNMRVZCUVUwc1ZVRkJWU3hoUVVGbExGTkJRVlZYTEVWQlFVdERMRVZCUVUxaExFVkJRV0ZHTEVWQlFYVkNMRU5CUTNCR0xFbEJRVWxJTEVWQlFVc3NTMEZCU3l4TlFVRk5MRVZCUTNCQ0xFOUJRVWxCTEVWQlFVY3NXVUZCV1ZRc1JVRkJTME1zUlVGQlRXRXNRMEZCVnl4SlFVRk5MRWRCUVV0R0xFVkJRM3BETEV0QlEwcElMRU5CUTFnc1JVRkhRWEJDTEVWQlFVMHNWVUZCVlN4UFFVRlRMRk5CUVZWTExFVkJRVlZyUWl4RlFVRjFRaXhEUVVOb1JTeEpRVUZKU0N4RlFVRkxMRXRCUVVzc1dVRkJXU3hGUVVOMFFrMHNSVUZMU2l4UFFVcEJUaXhGUVVGSExGRkJRVkVzVTBGQlZWb3NSVUZCUjBNc1JVRkJSMnRDTEVWQlFVY3NRMEZETVVJc1IwRkJTU3hEUVVGRGRFSXNSVUZCVTBjc1JVRkJSME1zUlVGQlIydENMRU5CUVVNc1JVRkRha0lzVDBGQlQwUXNSVUZCVFVVc1JVRkRja0lzUTBGQlF5eEZRVU5ITEVOQlFVTkdMRWRCUVU5SUxFVkJRMFFzUzBGRFNrZ3NRMEZEV0N4RlFVVkJjRUlzUlVGQlRTeFZRVUZWTEZWQlFWa3NVMEZCVlVzc1JVRkJWU3hEUVVNMVF5eEpRVUZKZDBJc1JVRkJUU3hEUVVGRExFVkJRMUJVTEVWQlFVc3NTMEZCU3l4WlFVRlpMRVZCUXpGQ0xFOUJRVUZCTEVWQlFVY3NVVUZCVVN4VFFVRlZXaXhGUVVGSFF5eEZRVUZIYTBJc1JVRkJSeXhEUVVNeFFpeFBRVUZQUlN4RlFVRkpMRTFCUVZGNFFpeEZRVUZUU1N4RlFVRkhSQ3hGUVVGSGJVSXNRMEZCUXl4RlFVRkhSU3hEUVVNeFF5eERRVUZETEVWQlEwMVVMRU5CUTFnc1JVRkRRWEJDTEVWQlFVMHNWVUZCVlN4UFFVRlRMRk5CUVZWTExFVkJRVlY1UWl4RlFVRmpMRU5CUjNaRUxGRkJSa2xJTEVWQlFVa3NSVUZCUjJ4RExFVkJRVWx4UXl4RlFVTllReXhGUVVGTExFdEJRVXNzVVVGQlVTeExRVUZMTEU5QlFVOHNSVUZCUjBNc1JVRkJWeXhGUVVGSFF5eEZRVU0xUXl4RlFVRkZRU3hGUVVGUFJpeEZRVUZITEV0QlFVc3NSMEZCUnl4TlFVTjJRblJETEVWQlFVbFpMRVZCUVZOYUxFVkJRVWQzUXl4RlFVRkxMRTFCUVU5T0xFbEJRVXNzU1VGQlNTeEZRVU42UXl4UFFVRlBiRU1zUTBGRFdDeEZRVmRCVHl4RlFVRk5MRlZCUVZVc1VVRkJWU3hUUVVGVmEwTXNSVUZCVjBNc1JVRkJZU3hEUVVONFJDeEpRVUZKUXl4RlFVRlBMRXRCUVVzc1UwRkJVMFlzUTBGQlV5eEZRVU5zUXl4SFFVRkpSU3hKUVVGVExFOUJRMVFzVDBGQlQwTXNSMEZCVXl4RlFVTndRaXhKUVVGSlF5eEZRVUZaUml4RlFVRkxMRlZCUVZkSExFVkJRVmxJTEVWQlFVc3NWVUZCVjBrc1JVRkJUMG9zUlVGQlN5eExRVU53UlVzc1JVRkJVVTRzU1VGQlowSXNUMEZCV1N4RlFVRkpMRVZCUTNoRFVpeEZRVUZMVHl4SlFVRmpMRTlCUVZrc1IwRkJTMDBzUlVGQlN5eFJRVUZSVGl4RlFVRlhMRVZCUVVjc1MwRkJTeXhSUVVGUkxFVkJRVWtzUlVGRGNFWXNUMEZCVDBjc1IwRkJVeXhWUVVGWkxFTkJRM2hDU3l4RlFVRk5MRTlCUTBZc1QwRkJVVVFzUlVGQlR5eERRVU5ZTEVsQlFVc3NSMEZEUkN4SFFVRkpMRVZCUVVWa0xFVkJRVWxoTEVWQlFVc3NTMEZCU3l4UFFVTm9RaXhOUVVGUExFTkJRVVVzUzBGQlRTeEhRVUZQTEUxQlFVOHNRMEZCUTBFc1JVRkJTeXhMUVVGTFlpeERRVUZETEVWQlFVZGhMRVZCUVVzc1QwRkJUMklzUTBGQlF5eERRVUZETEVOQlFVVXNSVUZEYUVWakxFVkJRVkVzUlVGRFVpeFRRVU5LTEVsQlFVc3NSMEZEUkN4SFFVRkpMRVZCUVVWa0xFVkJRVWxoTEVWQlFVc3NTMEZCU3l4UFFVTm9RaXhQUVVGQlRDeEZRVUZaTEVOQlFVTXNSVUZCU1Vzc1JVRkJTeXhMUVVGTFlpeERRVUZETEVWQlFVZFJMRVZCUVZrc1EwRkJReXhGUVVGSlN5eEZRVUZMTEU5QlFVOWlMRU5CUVVNc1JVRkRkRVFzUTBGQlJTeExRVUZOTEVkQlFVOHNUVUZCVDFFc1EwRkJXU3hGUVVVM1EwMHNSVUZCVVN4RlFVTmFMRWxCUVVzc1IwRkZSQ3hSUVVGVFJTeEZRVUZSTEV0QlFVMHNRMEZEYmtJc1IwRkJTU3hGUVVGRlFTeEhRVUZUVEN4RlFVRlZMRTlCUVZFc1EwRkROMEpITEVWQlFWRXNSVUZEVWl4VFFVRlRReXhEUVVOaUxFTkJRMEVzUjBGQlNTeEZRVUZGU0N4RlFVRlZTU3hEUVVGTExFVkJRVWxNTEVWQlFWVkxMRU5CUVVzc1JVRkJSU3hQUVVOMFF5eExRVU5TTEVOQlEwRXNTMEZCVDBFc1JVRkJVU3hGUVVGSFFTeEpRVU5rVEN4RlFVRlZTeXhGUVVGUkxFTkJRVU1zUlVGQlNVd3NSVUZCVlVzc1EwRkJTeXhGUVVGRlNpeEZRVUZWU1N4RFFVRkxMRU5CUVVNc1JVRkJSU3hUUVVNeFJFb3NSVUZCVlVrc1JVRkJVU3hEUVVGRExFVkJRVWtzUlVGRk0wSklMRVZCUVU5R0xFVkJRVlVzUTBGQlF5eEZRVUZGUXl4RlFVRlZMRU5CUVVNc1EwRkJReXhGUVVOb1Exb3NSVUZCU1N4SFFVTktZeXhGUVVGUlRpeEpRVUZuUWl4UFFVRlpMRVZCUVVrc1JVRkRlRU1zVTBGRFNpeEpRVUZMTEVkQlEwUXNUVUZCVHl4RFFVRkZMRXRCUVUwc1IwRkJUU3hOUVVGUExFMUJRVlVzUTBGRE9VTXNRMEZGVWl4RFFVRkRMRU5CUTB3c1JVRlZRVzVETEVWQlFVMHNWVUZCVlN4blFrRkJhMElzVTBGQlZUUkRMRVZCUVZsVUxFVkJRV0ZWTEVWQlFXRXNRMEZET1VVc1IwRkJTVVFzU1VGQlpTeFRRVU5tUVN4RlFVRmhMRXRCUVVzc1QwRkJUeXhGUVVONlFrTXNSVUZCWXl4UFFVTldSQ3hKUVVGbExGRkJRMllzVDBGQlQxQXNSMEZCVXl4RlFVVjRRaXhKUVVGSlV5eEZRVUZMTEV0QlFVc3NVMEZCVTBZc1EwRkJWU3hIUVVGTExFdEJRVXNzVTBGQlV5eExRVUZMTEU5QlFVOHNRMEZCUXl4RlFVRkhUaXhGUVVGWlVTeEZRVUZITEZWQlFWZFFMRVZCUVZsUExFVkJRVWNzVlVGQlYwNHNSVUZCVDAwc1JVRkJSeXhMUVVOc1NVTXNSMEZCVFN4RFFVRkRWQ3hGUVVGVkxFTkJRVU1zUjBGQlMwVXNTVUZCVTBZc1JVRkJWU3hEUVVGRExFVkJRVVZETEVWQlFWVXNRMEZCUXl4RFFVRkRMRVZCUVVjc1RVRkJUU3hGUVVOc1JTeEpRVUZKV2l4RlFVRkpZU3hGUVVGTExGRkJRVkZKTEVWQlFWa3NSVUZCUnl4TFFVRkxMRkZCUVZFc1JVRkROME1zUTBGQlEwTXNSMEZCWld4Q0xFVkJRVWxoTEVWQlFVc3NTMEZCU3l4UlFVRlZMRXRCUVVzc1UwRkJVMEVzUlVGQlN5eExRVUZMWWl4RFFVRkRMRVZCUVVkcFFpeERRVUZWTEVkQlFVc3NSMEZEYmtacVFpeEpRVU5LTEVsQlFVbGpMRVZCUVZGT0xFbEJRV2RDTEU5QlFWa3NSVUZCU1N4RlFVTTFReXhQUVVGUFJTeEhRVUZUTEZWQlFWa3NRMEZEZUVKTExFVkJRVTBzVDBGRFJpeFBRVUZSUkN4RlFVRlBMRU5CUTFnc1NVRkJTeXhIUVVORUxFZEJRVWtzUlVGQlJXUXNSMEZCU3l4RlFVTlFMRTFCUVU4c1EwRkJSU3hMUVVGTkxFZEJRVThzVFVGQlR5eERRVUZEWVN4RlFVRkxMRXRCUVV0aUxFTkJRVU1zUlVGQlIyRXNSVUZCU3l4UFFVRlBZaXhEUVVGRExFTkJRVU1zUTBGQlJTeEZRVU5vUldNc1JVRkJVU3hGUVVOU0xGTkJRMG9zU1VGQlN5eEhRVU5FTEVkQlFVa3NSVUZCUldRc1IwRkJTeXhGUVVOUUxFOUJRVUZSTEVWQlFWa3NRMEZCUXl4RlFVRkpTeXhGUVVGTExFdEJRVXRpTEVOQlFVTXNSVUZCUjFFc1JVRkJXU3hEUVVGRExFVkJRVWxMTEVWQlFVc3NUMEZCVDJJc1EwRkJReXhGUVVOMFJDeERRVUZGTEV0QlFVMHNSMEZCVHl4TlFVRlBVU3hEUVVGWkxFVkJSVGREVFN4RlFVRlJMRVZCUTFvc1NVRkJTeXhIUVVWRUxGRkJRVk5GTEVWQlFWRXNTMEZCVFN4RFFVTnVRaXhIUVVGSkxFVkJRVVZCTEVkQlFWTk1MRVZCUVZVc1QwRkJVU3hEUVVNM1FrY3NSVUZCVVN4RlFVTlNMRk5CUVZORExFTkJRMklzUTBGRFFTeEhRVUZKTEVWQlFVVklMRVZCUVZWSkxFTkJRVXNzUjBGQlN5eEZRVU4wUWl4TFFVTlNMRU5CUTBFc1MwRkJUMEVzUlVGQlVTeEZRVUZIUVN4SlFVTmtUQ3hGUVVGVlN5eEZRVUZSTEVOQlFVTXNSVUZCU1V3c1JVRkJWVXNzUTBGQlN5eEZRVUZGU2l4RlFVRlZTU3hEUVVGTExFTkJRVU1zUlVGQlJTeFRRVU14UkVvc1JVRkJWVWtzUlVGQlVTeERRVUZETEVWQlFVbE1MRVZCUVZWTExFVkJRVkVzUTBGQlF5eEZRVUZGTEU5QlFWTXNSVUZGZWtSSUxFVkJRVTlHTEVWQlFWVXNRMEZCUXl4RlFVRkZReXhGUVVGVkxFTkJRVU1zUTBGQlF5eEZRVU5vUTFvc1JVRkJTV0VzUlVGQlN5eExRVUZMTEU5QlEyUkRMRVZCUVZGT0xFbEJRV2RDTEU5QlFWa3NSVUZCU1N4RlFVTjRReXhUUVVOS0xFbEJRVXNzUjBGRFJDeE5RVUZQTEVOQlFVVXNTMEZCVFN4SFFVRk5MRTFCUVU4c1RVRkJWU3hEUVVNNVF5eERRVVZTTEVOQlFVTXNRMEZEVEN4RlFWVkJia01zUlVGQlRTeFZRVUZWTEZOQlFWY3NVMEZCVldFc1JVRkJTeXhEUVVOMFF5eEpRVUZKYlVNc1JVRkJWeXhMUVVGTExFMUJRMmhDVml4RlFVRlhReXhGUVVObUxFZEJRVWxUTEVWQlFWTXNUMEZEVkZZc1JVRkJXVmNzUjBGQldWWXNSVUZCV1ZVc1QwRkZia01zUTBGRFJGZ3NSVUZCV1N4RFFVRkRMRVZCUVVkRExFVkJRVmtzUTBGQlF5eEZRVU0zUWl4UlFVRlRhRVFzUlVGQlNTeEZRVUZITEVOQlFVTjVSQ3hGUVVGVExFOUJRVkY2UkN4SlFVRkxMRU5CUjI1RExFZEJSa0VyUXl4RlFVRlZMME1zUTBGQlF5eEZRVUZKZVVRc1JVRkJVeXhUUVVONFFsUXNSVUZCVldoRUxFTkJRVU1zUlVGQlNYTkNMRWxCUVZFc1QwRkJXU3hGUVVGSmJVTXNSVUZCVXl4UlFVRlJia01zUlVGQlN5eEZRVUZITEV0QlFVc3NVVUZCVVN4RlFVTjZSVEJDTEVWQlFWVm9SQ3hEUVVGRExFZEJRVXNyUXl4RlFVRlZMME1zUTBGQlF5eEZRVUZGTEU5QlF6ZENMRTlCUTBwNVJDeEZRVUZYVml4RlFVRlZMME1zUTBGQlF5eEZRVUZGWjBRc1JVRkJWV2hFTEVOQlFVTXNRMEZCUXl4RFFVTjRReXhEUVVOQkswTXNSVUZCVlN4UlFVRlJMRVZCUTJ4Q1F5eEZRVUZWTEZGQlFWRXNRMEZEZEVJc1EwRkRRU3hOUVVGUExFTkJRVVVzVlVGQlYwUXNSVUZCVnl4VlFVRlhReXhGUVVGWExFdEJRVTFUTEVOQlFWTXNRMEZEZUVVc1JVRmpRV2hFTEVWQlFVMHNWVUZCVlN4WlFVRmpMRk5CUVZWclJDeEZRVUZQUXl4RlFVRlZReXhGUVVGWFF5eEZRVUZYTEVOQlF6TkZMRWRCUVVsSUxFVkJRVTBzVjBGQllTeExRVUZMTEZOQlEzaENMRTFCUVUwc1NVRkJTU3hOUVVGTkxHOURRVUZ2UXl4RlFVVjRSQ3hIUVVGSkxFdEJRVXNzVTBGQlYwRXNSVUZCVFN4UlFVTjBRaXhQUVVGSkxFdEJRVXNzVTBGQlYwRXNSVUZCVFN4UlFVTjBRaXhQUVVWQkxFdEJRVXNzVVVGRFJVVXNTVUZCWXl4UFFVRlpMRTlCUVZsd1JDeEZRVUZOTEZWQlFWVkJMRVZCUVUwc1pVRkJaV3RFTEVOQlFVc3NSVUZCUjBVc1EwRkJVeXhGUVVOb1IwUXNTVUZCWVN4UFFVRlpMRTlCUVZsdVJDeEZRVUZOTEZWQlFWVkJMRVZCUVUwc1pVRkJaU3hKUVVGSkxFVkJRVWR0UkN4RFFVRlJMRVZCTUVKd1J5eFJRVTVKUnl4RlFVRlhMRXRCUVVzc1UwRkRhRUpETEVWQlFXRjJSQ3hGUVVGTkxHVkJRV1VzU1VGQlNTeEZRVU4wUTNkRUxFVkJRV040UkN4RlFVRk5MR1ZCUVdWclJDeERRVUZMTEVWQlIzaERUeXhGUVVGakxFZEJRVTFETEVWQlFXVXNSMEZCVFVNc1JVRkJhMEl6UkN4RlFVRk5MRkZCUVZGMVJDeEZRVUZaUXl4RlFVRmhSaXhEUVVGUkxFVkJRM1pIUnl4SFFVRmxReXhIUVVGakxFTkJRMmhETEVsQlFVbEZMRVZCUVdNMVJDeEZRVUZOTEZGQlFWRjFSQ3hGUVVGWlF5eEZRVUZoUml4RFFVRlJMRVZCUXpkRVR5eEZRVUZYVGl4RlFVRlhMRXRCUVUxUExFVkJRVzlDVUN4RlFVRlhMR05CUVdWUkxFVkJRVzFDVWl4RlFVRlhMR0ZCUTNoSFV5eEZRVUZaVWl4RlFVRlpMRXRCUVUxVExFVkJRWEZDVkN4RlFVRlpMR05CUVdWVkxFVkJRVzlDVml4RlFVRlpMR0ZCUTJ4SUxFZEJRVWxMTEVkQlFWbEhMRWRCUlZvc1IwRkJTVXdzU1VGQmIwSXNSMEZEY0VJc1IwRkJTVU1zU1VGQlowSXNSMEZEYUVJc1IwRkJTVU1zUjBGQldVY3NSMEZCWVZnc1JVRkJWeXhEUVVWd1F5eEpRVUZKWXl4RlFVRlZUaXhGUVVGVExFOUJRVTlGTEVWQlFXbENRU3hGUVVGcFFpeFBRVUZUTEVOQlFVTXNRMEZCUXl4RlFVTjJSVXNzUlVGQlYwb3NSVUZCVlN4UFFVRlBSU3hGUVVGclFrRXNSVUZCYTBJc1QwRkJVeXhEUVVGRExFTkJRVU1zUlVGREwwVXNSMEZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSME1zUlVGQlUwTXNRMEZCVVN4RlFVRkhMRU5CUXk5Q0xFbEJRVWx1UkN4RlFVRlRiME1zUlVGQlZVVXNSVUZCVnl4WFFVRlpXU3hGUVVGVFF5eERRVUZSTEVWQlF5OUVMRWRCUVVsdVJDeEhRVUZWUVN4RlFVRlBMRTFCUTJwQ0xFOUJRVTlCTEVWQlFVOHNTMEZEZEVJc1EwRkRTaXhWUVVWTE1rTXNSVUZCWXl4SFFVdHVRaXhIUVVGSlNTeEhRVUZoV2l4RlFVRlhMRU5CUTNoQ0xFbEJRVWxwUWl4RlFVRlhUQ3hGUVVGVkxFOUJRVTlGTEVWQlFXdENRU3hGUVVGclFpeFBRVUZUTEVOQlFVTXNRMEZCUXl4RlFVTXpSV3BFTEVWQlFWTnRReXhGUVVGVlNTeEZRVUZaTEZkQlFWbGhMRU5CUVZFc1JVRkRka1FzUjBGQlNYQkVMRWRCUVZWQkxFVkJRVThzVFVGRGFrSXNUMEZCVDBFc1JVRkJUeXhMUVVOMFFpeFZRVVZMYTBNc1IwRkRSRlVzUjBGQldVWXNTVUZCYjBJc1JVRkJSeXhEUVVOdVF5eEpRVUZKVVN4RlFVRlZUaXhGUVVGVExFOUJRVTlGTEVWQlFXbENRU3hGUVVGcFFpeFBRVUZUTEVOQlFVTXNRMEZCUXl4RlFVTjJSVGxETEVWQlFWTnJReXhGUVVGVFNTeEZRVUZYTEZkQlFWbFpMRU5CUVU4c1JVRkRjRVFzUjBGQlNXeEVMRWRCUVZWQkxFVkJRVThzVFVGRGFrSXNUMEZCVDBFc1JVRkJUeXhMUVVOMFFpeFhRVWxJTEVOQlFVTTBReXhIUVVGWkxFTkJRVU5ITEVkQlFXRktMRWxCUVdkQ0xFVkJRVWNzUTBGRGJrUXNTVUZCU1ZVc1JVRkJWMUlzUlVGQmEwSXNUMEZCVXl4RlFVTjBRMU1zUlVGQldVNHNSVUZCYlVJc1QwRkJVeXhGUVVONFEwOHNSVUZCVjFZc1JVRkJhMEpSTEVOQlFWRXNSVUZCUlZBc1JVRkJhVUpQTEVOQlFWRXNRMEZCUXl4RlFVTnFSVWNzUlVGQldWSXNSVUZCYlVKTkxFTkJRVk1zUlVGQlJVd3NSVUZCYTBKTExFTkJRVk1zUTBGQlF5eEZRVU14UlN4SFFVRkpSU3hKUVVGalJDeEZRVUZWTEVOQlEzaENZaXhGUVVGclFpeEZRVU5zUWtZc1JVRkJZM3BFTEVWQlFVMHNTMEZCUzNWRUxFVkJRVmtzUlVGQlNTeEZRVU42UTBjc1JVRkJaVEZFTEVWQlFVMHNTMEZCUzNkRUxFVkJRV0VzUlVGQlNTeEZRVU16UXl4UlFVTktMRU5CUTBvc1EwRkRRVWNzUlVGQmEwSkRMRVZCUTJSQkxFVkJRV01zUlVGRFpFZ3NSVUZCWTNwRUxFVkJRVTBzUzBGQlMzVkVMRU5CUVZVc1JVRkhia05ITEVWQlFXVXhSQ3hGUVVGTkxFdEJRVXQzUkN4RFFVRlhMRU5CUlRkRExFTkJRMEVzUjBGQlNVTXNSMEZCWlU0c1JVRkRaaXhQUVVGUGJrUXNSVUZCVFN4cFFrRkJhVUoxUkN4RlFVRlpReXhGUVVGaFJpeEZRVUZWU0N4RFFVRlJMRVZCUXpkRkxFZEJRVWxQTEVkQlFXZENUaXhGUVVOb1FpeFBRVUZQY0VRc1JVRkJUU3hwUWtGQmFVSjNSQ3hGUVVGaFJDeEZRVUZaUkN4RlFVRlZSaXhEUVVGVExFTkJRMnhHTEVWQlIwRndSQ3hGUVVGTkxHbENRVUZ0UWl4VFFVRlZNRVVzUlVGQlVVTXNSVUZCWjBKRExFVkJRV0YyUlN4RlFVRlZMRU5CUXpsRkxFbEJRVWwzUlN4RlFVRlhOMFVzUlVGQlRTeFJRVUZSTUVVc1JVRkJVVU1zUlVGQlowSkRMRU5CUVZjc1JVRkRhRVVzUjBGQlNVTXNTVUZCWVN4SFFVTmlMRWRCUVVrc1EwRkJRemRGTEVWQlFVMHNTMEZCU3pCRkxFTkJRVTBzUlVGRGJFSXNXVUZGUTBjc1JVRkJWeXhIUVVOb1FqbENMRWRCUVUwc1IwRkJUeXc0UWtGQk9FSXNSVUZGTDBNc1QwRkJUeTlETEVWQlFVMHNWVUZCVlRCRkxFVkJRVkZ5UlN4RFFVRlJMRU5CUXpORExFVkJRMEZNTEVWQlFVMHNWVUZCV1N4VFFVRlZNRVVzUlVGQlVYSkZMRVZCUVZVc1EwRkZNVU1zVVVGRVNYbEZMRVZCUVZVc1IwRkRVRUVzUjBGQlV5eERRVU5hTEVsQlFVbDBReXhGUVVGUGEwTXNSVUZCVHl4TFFVRk5TeXhGUVVGbFRDeEZRVUZQTEdGQlFXTk5MRVZCUVdGT0xFVkJRVThzVjBGRGFFWXNSMEZCU1d4RExFVkJRVTBzUTBGRFRpeEpRVUZKZWtJc1JVRkJVWGxDTEVWQlFVc3NUMEZCVDNWRExFVkJRV0ZCTEVWQlFXRXNUMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkRla1E1UkN4RlFVRlRXaXhGUVVGVE1rVXNSVUZCV1dwRkxFTkJRVXNzUlVGRGRrTXNSMEZCU1VVc1IwRkJWVUVzUlVGQlR5eE5RVU5xUWl4UFFVRlBRU3hGUVVGUExFdEJRM1JDTEVOQlEwRTJSQ3hGUVVGVk9VVXNSVUZCVFN4TFFVRkxNRVVzUTBGQlRTeERRVU12UWl4RFFVVktMRVZCUTBFeFJTeEZRVUZOTEdWQlFXbENMRk5CUVZWcFJpeEZRVUZOTEVOQlEyNURMRWxCUVVsRExFVkJRVkZFTEVWQlFVc3NUVUZCVDBVc1JVRkJVMFlzUlVGQlN5eFBRVU4wUXl4TlFVRlBMRU5CUVVVc1QwRkJVVVVzUlVGQlVTeGpRVUZsTEVOQlFVTXNRMEZCUTBRc1EwRkJTeXhEUVVGRExFVkJRVWNzWVVGQll5eERRVUZETEVOQlFVTXNSVUZCUnl4TFFVRk5MRTlCUVZjc1YwRkJXVUVzUlVGQlRTeFBRVUZQTEVOQlFVVXNRMEZEZEVnc1JVRlJRV3hHTEVWQlFVMHNTMEZCVHl4VFFVRlZNRVVzUlVGQlVWVXNSVUZCV1N4RFFVTjJReXhKUVVGSlF5eEZRVUZuUWxnc1JVRkJUeXhqUVVGbFN5eEZRVUZsVEN4RlFVRlBMR0ZCUVdOc1F5eEZRVUZQYTBNc1JVRkJUeXhMUVVNMVJpeEhRVUZKVlN4SlFVRmxMRWxCUVZFMVF5eEZRVUZOTEVOQlF6ZENMRWxCUVVrNFF5eEZRVUZsVUN4RlFVRmhMRTlCU1doRExFZEJRVWxMTEVsQlFXVXNTVUZCVVV3c1JVRkJZVThzUlVGQlpTeERRVUZETEVsQlFVMHNSVUZCUnl4RFFVTTNSQ3hKUVVGSlF5eEZRVUZqUml4RlFVRmpMRTlCUldoRExFZEJRVWxGTEVsQlFXZENMRVZCUTJoQ0xFMUJRVThzUjBGSldDeFJRVVpKUXl4RlFVRnBRa1FzUlVGQll5eEZRVU12UWtVc1JVRkJjVUpFTEVWQlEyeENReXhIUVVGelFpeEhRVUZITEVOQlF6VkNMRWRCUVVsV0xFVkJRV0ZWTEVOQlFXdENMRVZCUVVrc1JVRkRia01zVDBGQlNVRXNSVUZCY1VKSUxFVkJRV1VzU1VGRmNFTmFMRVZCUVU4c1MwRkJUeXhQUVVOa1N5eEZRVUZoTEVsQlFVa3NSMEZIYWtKVkxFVkJRWEZDUkN4SlFVTnlRbVFzUlVGQlR5eGpRVUZuUWxjc1JVRkJZeXhOUVVGTkxFVkJRVWRKTEVWQlFYRkNMRU5CUVVNc1IwRkZlRVZtTEVWQlFVOHNWMEZCWVZjc1JVRkJZMGtzUTBGQmEwSXNSVUZCUlN4RlFVRkZWaXhGUVVGaFZTeERRVUZyUWl4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVNeFJpeEhRVVZZUVN4SFFVTktMRU5CUlVFc1RVRkJUeXhGUVVOWUxFdEJRMHNzUTBGRlJDeEpRVUZKUXl4RlFVRmhMRVZCUVVWWUxFVkJRV0ZQTEVWQlFXVXNRMEZCUXl4RlFVTm9SQ3hQUVVGQldpeEZRVUZQTEZkQlFXRnNReXhGUVVGTExFdEJRVXRyUkN4RFFVRlZMRVZCUTJwRExFVkJRMWdzUTBGRFNpeExRVU5MTEVOQlEwUXNTVUZCU1VNc1JVRkJXVTRzUlVGQll5eFBRVU14UWs4c1JVRkJaVVFzUlVGQldTeEZRVU16UWtVc1JVRkJUMUlzUlVGQlkwOHNRMEZCV1N4RlFVRkZZaXhGUVVGaFlTeERRVUZaTEVOQlFVTXNSVUZEYWtVc1IwRkJTVU1zUlVGQlN5eFBRVUZSTEVOQlJXSnVRaXhGUVVGUExFdEJRVTl0UWl4RlFVTmtMRWxCUVVsSUxFVkJRV0ZZTEVWQlFXRlpMRU5CUVZNc1JVRkJTVVVzUlVGQlN5eFBRVUZQTEU5QlFWTXNSVUZEYUVWdVFpeEZRVUZQTEZkQlFXRnRRaXhGUVVGTExFdEJRVXRJTEVOQlFWVXNRMEZETlVNc1MwRkRTeXhEUVVORUxFbEJRVWxKTEVWQlFWZEVMRVZCUVVzc1UwRkRjRUpTTEVWQlFXTk5MRU5CUVZNc1JVRkJTVWNzUlVGRE0wSXNTVUZCU1VNc1JVRkJZVVFzUlVGQlV5eFBRVUZUTEVWQlEyNURaaXhGUVVGaFdTeERRVUZUTEVWQlFVbEpMRVZCUXpGQ2NrSXNSVUZCVHl4WFFVRmhiMElzUlVGQlUwTXNRMEZCVlN4RlFVRkZMRTlCUVU4c1EwRkRjRVFzUTBGRFFTeE5RVUZQTEVWQlExZ3NRMEZEU2l4RlFVdEJMMFlzUlVGQlRTeFJRVUZWTEZOQlFWVm5SeXhGUVVGVFF5eEZRVUZUY2tJc1JVRkJZU3hEUVVOeVJDeEpRVUZKYzBJc1JVRkJWVVlzUlVGQlVTeFBRVUZSUnl4RlFVRmpTQ3hGUVVGUkxGZEJRVmxKTEVWQlFXZENTaXhGUVVGUkxHRkJRM0JHU3l4RlFVRlZTaXhGUVVGUkxFOUJRVkZMTEVWQlFXTk1MRVZCUVZFc1YwRkJXVTBzUlVGQlowSk9MRVZCUVZFc1lVRkZjRVpQTEVWQlFXZENOVUlzUlVGQldUQkNMRVZCUVdGSUxFTkJRVmNzUlVGRGVFUXNSMEZCU1Vzc1NVRkJhMElzUlVGRGJFSXNUMEZCVDBFc1JVRlBXQ3hKUVVGSlF5eEZRVUZaVUN4RlFVRlZSeXhGUVVGVlNDeEZRVUZWUnl4RlFVTXhRMHNzUlVGQmJVSk9MRVZCUVdNc1VVRkJWVVlzUlVGQlZVOHNSMEZEY2tSRkxFVkJRVzFDU2l4RlFVRmpMRkZCUVZWR0xFVkJRVlZKTEVkQlEzcEVMRTlCUVU5RExFVkJRVzFDUXl4RFFVTTVRaXhGUVV0Qk0wY3NSVUZCVFN4VlFVRlZMRXRCUVU4c1UwRkJWVFJITEVWQlFWVXNRMEZEZGtNc1NVRkJTVGRGTEVWQlFVc3NTMEZCU3l4UlFVRlJOa1VzUlVGQlZUVkZMRVZCUVZjc1JVRkRNME1zVDBGQlQwc3NSMEZCVXl4VlFVRlpMRU5CUTNoQ0xFbEJRVWwzUlN4RlFVRkpPVVVzUlVGQlJ5eExRVUZMTEVWQlEyaENMRTlCUVVrNFJTeEZRVUZGTEZGQlEwWkJMRVZCUVVVc1RVRkJVVUVzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZEYUVKQkxFTkJRMWdzUTBGQlF5eERRVU5NTEVWQlIwRTNSeXhGUVVGTkxGVkJRVlVzVDBGQlV5eFRRVUZWTkVjc1JVRkJWU3hEUVVONlF5eEpRVUZKTjBVc1JVRkJTeXhMUVVGTExGRkJRVkUyUlN4RlFVRlZOVVVzUlVGQlZ5eEZRVU16UXl4UFFVRlBTeXhIUVVGVExGVkJRVmtzUTBGRGVFSXNTVUZCU1hkRkxFVkJRVWs1UlN4RlFVRkhMRXRCUVVzc1JVRkRhRUlzVDBGQlNUaEZMRVZCUVVVc1VVRkRSa0VzUlVGQlJTeE5RVUZSUVN4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVOb1FrRXNRMEZEV0N4RFFVRkRMRU5CUTB3c1JVRkRRU3hQUVVGUExHVkJRV1UzUnl4RlFVRk5MRlZCUVZjc1kwRkJaU3hEUVVsc1JDeEpRVUZMTEZWQlFWa3NRMEZEWWl4UFFVRlBMRXRCUVVzc1dVRkRhRUlzUlVGRFFTeFhRVUZaTEVkQlExb3NZVUZCWXl4RlFVTnNRaXhEUVVGRExFVkJSVVJCTEVWQlFVMHNWVUZCVlN4UFFVRlRMRlZCUVZrc1EwRkJSU3hQUVVGUExFdEJRVXNzVFVGQlRTeFBRVUZQTEVOQlFVY3NSVUZGYmtWQkxFVkJRVTBzVlVGQlZTeFBRVUZUTEZWQlFWa3NRMEZCUlN4UFFVRlBMRXRCUVVzc1RVRkJUU3hQUVVGUExFTkJRVWNzUlVGTmJrVkJMRVZCUVUwc1ZVRkJWU3hOUVVGUkxGVkJRVmtzUTBGRGFFTXNTMEZCU3l4TlFVRk5MRk5CUVZjc1IwRkRkRUlzU1VGQlNXbENMRVZCUVZNc1NVRkJTV3BDTEVWQlFVMHNUMEZCVnl4TFFVRkxMRk5CUVZVc1MwRkJTeXhaUVVGWkxFVkJRMnhGTEU5QlFVRnBRaXhGUVVGUExFMUJRVkVzUzBGQlN5eE5RVU53UWtFc1JVRkJUeXhOUVVGUkxFdEJRVXNzVFVGRFlrRXNRMEZEV0N4RlFVMUJha0lzUlVGQlRTeFZRVUZWTEZsQlFXTXNVMEZCVlRoSExFVkJRVThzUTBGRE0wTXNTVUZCU1RkR0xFVkJRVk1zU1VGQlNXcENMRVZCUVUwc1QwRkJWeXhMUVVGTExGTkJRVlVzUzBGQlN5eFpRVUZaTEVWQlEyeEZMRTlCUVVGcFFpeEZRVUZQTEUxQlFWRXNTMEZCU3l4TlFVRk5MRmxCUVZrMlJpeERRVUZMTEVWQlF6TkROMFlzUlVGQlR5eE5RVUZSTEV0QlFVc3NUVUZEWWtFc1EwRkRXQ3hGUVVWQmFrSXNSVUZCVFN4VlFVRlZMRkZCUVZVc1UwRkJWU3RITEVWQlFWY3NRMEZEZGtOQkxFbEJRV01zVTBGQlZVRXNSVUZCV1N4WlFVTjRReXhKUVVGSlF5eEZRVUZOTEV0QlFVc3NUMEZCVHl4RlFVRkhReXhGUVVGTkxFdEJRVXNzVDBGQlR5eEZRVU16UXl4UFFVRkpSQ3hKUVVGUkxFOUJRMFFzUzBGQlN5eFRRVUZUUVN4RlFVRkxReXhGUVVGTExFZEJRVTFHTEVOQlFWTXNSVUZETTBNc1EwRkJReXhEUVVOYUxFVkJSVUV2Unl4RlFVRk5MRlZCUVZVc1ZVRkJXU3hWUVVGWkxFTkJRM0JETEVsQlFVbHJTQ3hGUVVGVkxFTkJRVU1zUlVGRFppeFpRVUZMTEUxQlFVMHNVMEZCVXl4TFFVRkxMRTlCUVU4c1JVRkJSeXhMUVVGTExFOUJRVThzUlVGQlJ5eEhRVUZOTEVkQlFVOHNTMEZCVFN4RlFVRkhMRk5CUVZVeFJ5eEZRVUZIUXl4RlFVRkhMRU5CUVVWNVJ5eEZRVUZSTEV0QlFVc3hSeXhEUVVGRExFTkJRVWNzUTBGQlF5eEZRVU55UnpCSExFTkJRMWdzUlVGRlFXeElMRVZCUVUwc1ZVRkJWU3haUVVGakxGVkJRVmtzUTBGRGRFTXNTVUZCU1d0SUxFVkJRVlVzUTBGQlF5eEZRVU5tTEZsQlFVc3NUVUZCVFN4VFFVRlRMRXRCUVVzc1QwRkJUeXhGUVVGSExFdEJRVXNzVDBGQlR5eEZRVUZITEVkQlFVMHNSMEZCVHl4TFFVRk5MRVZCUVVjc1UwRkJWVEZITEVWQlFVZERMRVZCUVVjc1EwRkJSWGxITEVWQlFWRXNTMEZCUzNwSExFTkJRVU1zUTBGQlJ5eERRVUZETEVWQlEzSkhlVWNzUTBGRFdDeEZRVVZCYkVnc1JVRkJUU3hWUVVGVkxGTkJRVmNzVlVGQldTeERRVU51UXl4UFFVRlBMRXRCUVVzc1VVRkJVU3hGUVVGRkxGTkJRVk1zUTBGRGJrTXNSVUZKUVVFc1JVRkJUU3hWUVVGVkxHZENRVUZyUWl4VFFVRlZZU3hGUVVGTFJTeEZRVUZQTEVOQlEzQkVMRTlCUVU4c1MwRkJTeXhKUVVGSlJpeEZRVUZMUlN4RlFVRlBMRVZCUVVzc1EwRkRja01zUlVGUFFXWXNSVUZCVFN4VlFVRlZMR1ZCUVdsQ0xGTkJRVlZoTEVWQlFVdHpRaXhGUVVGaExFTkJSWHBFTEU5QlJFRkJMRVZCUVdOQkxFZEJRV1VzUTBGQlF5eEZRVU14UW5SQ0xFbEJRVkVzVDBGRFJDeExRVUZMTEUxQlFVMHNVVUZCVVhOQ0xFTkJRVmNzUlVGRmJFTXNTMEZCU3l4TlFVRk5MRzlDUVVGdlFuUkNMRVZCUVVzc1MwRkJTeXhUUVVGVkxFZEJRVTl6UWl4RFFVRlhMRU5CUTJoR0xFVkJTVUZ1UXl4RlFVRk5MRlZCUVZVc1kwRkJaMElzVTBGQlZXRXNSVUZCU3l4RFFVTXpReXhKUVVGSmNFSXNSVUZCU1N4TFFVRkxMR1ZCUVdWdlFpeEZRVUZMYlVJc1JVRkJWeXhGUVVNMVF5eFBRVUZQZGtNc1IwRkJTMEVzUlVGQlJTeERRVUZETEVOQlEyNUNMRVZCVDBGUExFVkJRVTBzVlVGQlZTeGpRVUZuUWl4VFFVRlZZU3hGUVVGTGMwSXNSVUZCWVN4RFFVVjRSQ3hQUVVSQlFTeEZRVUZqUVN4SFFVRmxMRU5CUVVNc1JVRkRNVUowUWl4SlFVRlJMRTlCUTBRc1MwRkJTeXhOUVVGTkxGRkJRVkZ6UWl4RFFVRlhMRVZCUld4RExFdEJRVXNzVFVGQlRTeHRRa0ZCYlVKMFFpeEZRVUZMTEV0QlFVc3NVMEZCVlN4SFFVRlBjMElzUTBGQlZ5eERRVU12UlN4RlFVbEJia01zUlVGQlRTeFZRVUZWTEdGQlFXVXNVMEZCVldFc1JVRkJTeXhEUVVNeFF5eEpRVUZKY0VJc1JVRkJTU3hMUVVGTExHTkJRV052UWl4RlFVRkxiVUlzUlVGQlZ5eEZRVU16UXl4UFFVRlBka01zUjBGQlMwRXNSVUZCUlN4RFFVRkRMRU5CUTI1Q0xFVkJVVUZQTEVWQlFVMHNWVUZCVlN4dFFrRkJjVUlzVTBGQlZXRXNSVUZCUzNOQ0xFVkJRV0VzUTBGRE4wUXNUMEZCVHl4TFFVRkxMRTFCUVUwc2JVSkJRVzFDZEVJc1JVRkJTeXhMUVVGTExGTkJRVlVzUjBGQlRYTkNMRWRCUVdVc1EwRkJReXhEUVVGRExFTkJRM0JHTEVWQlVVRnVReXhGUVVGTkxGVkJRVlVzYjBKQlFYTkNMRk5CUVZWaExFVkJRVXR6UWl4RlFVRmhMRU5CUXpsRUxFOUJRVThzUzBGQlN5eE5RVUZOTEc5Q1FVRnZRblJDTEVWQlFVc3NTMEZCU3l4VFFVRlZMRWRCUVUxelFpeEhRVUZsTEVOQlFVTXNRMEZCUXl4RFFVTnlSaXhGUVVsQmJrTXNSVUZCVFN4VlFVRlZMR2RDUVVGclFpeFRRVUZWWVN4RlFVRkxSU3hGUVVGUExFTkJRM0JFTEU5QlFVOHNTMEZCU3l4VlFVRlZSaXhGUVVGTFFTeEZRVUZMTEVkQlFVMHNVMEZCVlV3c1JVRkJSME1zUlVGQlJ5eERRVUZGTEUxQlFWRXNRMEZCUlN4TlFVRlBUU3hEUVVGTkxFTkJRVWtzUTBGQlF5eEpRVUZOTEVOQlF6bEdMRVZCWVVGbUxFVkJRVTBzVlVGQlZTeFRRVUZYTEZOQlFWVlhMRVZCUVV0RExFVkJRVTFoTEVWQlFXRnpSaXhGUVVGWExFTkJRMmhGUVN4SlFVRmpMRk5CUVZWQkxFVkJRVmtzVlVGRGVFTXNTVUZCU1Vjc1JVRkJWU3hEUVVGRExFVkJRMllzV1VGQlN5eE5RVUZOTEZOQlFWTjJSeXhGUVVGTFF5eEZRVUZOWVN4RlFVRmhMRWRCUVU4c1MwRkJUU3hGUVVGSExGTkJRVlZxUWl4RlFVRkhReXhGUVVGSExFTkJRM2hGTEU5QlFVRjVSeXhGUVVGUkxFdEJRVXNzUTBGQlF6RkhMRVZCUVVkRExFTkJRVU1zUTBGQlF5eEZRVU5hZVVjc1JVRkJVU3hQUVVGVFNDeEZRVUZaU1N4SFFVRlJMRTFCUTJoRUxFTkJRVU1zUlVGRFRVUXNRMEZEV0N4RlFWVkJiRWdzUlVGQlRTeFZRVUZWTEZOQlFWY3NVMEZCVlhGQ0xFVkJRVTlNTEVWQlFWY3NRMEZGYmtRc1VVRkVTVzlITEVWQlFWRXNSVUZEU0hwR0xFVkJRVWtzUlVGQlIwRXNSVUZCU1U0c1JVRkJUU3hQUVVGUlRTeEpRVU14UWl4TFFVRkxMRWxCUVVsT0xFVkJRVTFOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVkT0xFVkJRVTFOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVkWUxFTkJRVk1zUjBGRE5VTnZSeXhKUVVOU0xFOUJRVTlCTEVOQlExZ3NSVUZyUWtGd1NDeEZRVUZOTEZWQlFWVXNVMEZCVnl4VFFVRlZWeXhGUVVGTFF5eEZRVUZOWVN4RlFVRmhORVlzUlVGQlV6TkhMRVZCUVdkQ0xFTkJRMnhHTEVsQlFVazBSeXhGUVVGSkxFdEJRVXNzVFVGQlRTeFRRVUZUTTBjc1JVRkJTME1zUlVGQlRXRXNSVUZCWVN4SFFVRlBMRXRCUVUxbUxFZEJRV3RDTEVWQlFVY3lSeXhEUVVGUExFVkJRemRHTEU5QlFVOHNUMEZCVDBNc1IwRkJUU3hUUVVGWFFTeEZRVUZKUVN4RlFVRkZMRXRCUTNwRExFVkJPRUpCZEVnc1JVRkJUU3hWUVVGVkxGVkJRVmtzVTBGQlZWY3NSVUZCUzBNc1JVRkJUV0VzUlVGQllUUkdMRVZCUVZNelJ5eEZRVUZuUWl4RFFVTnVSaXhKUVVGSk5rY3NSVUZCVHl4TFFVRkxMRTFCUTFwQkxFVkJRVXNzVjBGRFRDeExRVUZMTEUxQlFWRkJMRVZCUVU5QkxFVkJRVXNzVFVGQlRTeEhRVU51UXl4SFFVRkpMRU5CUTBFc1NVRkJTVVFzUlVGQlNVTXNSVUZCU3l4VFFVRlROVWNzUlVGQlMwTXNSVUZCVFdFc1JVRkJZU3hIUVVGTkxFdEJRVTFtTEVkQlFXdENMRVZCUVVjeVJ5eERRVUZQTEVWQlEzUkdMRTlCUVU4c1QwRkJUME1zUjBGQlRTeFRRVUZYUVN4RlFVRkpRU3hGUVVGRkxFdEJRM3BETEZGQlEwRXNRMEZGU1N4UlFVUkpSU3hGUVVGWExFOUJRMUpFTEVWQlFVc3NTMEZCU3l4UlFVRlZMRWRCUVVzc1EwRkJRMEVzUlVGQlN5eFJRVU5zUTBNc1NVRkJZVUVzUlVGQlYwUXNSVUZCU3l4VlFVTTNRaXhMUVVGTExFMUJRVkZCTEVWQlFVOUJMRVZCUVVzc1MwRkJTeXhUUVVGWExFVkJRVWx1U0N4SFFVTjZRMjFJTEVWQlFVc3NVMEZCVXl4RFFVRkRMRVZCUjI1Q1F5eEpRVU5CUkN4RlFVRkxMRk5CUVZjc1IwRkZlRUlzUTBGRFNpeEZRVVZCZGtnc1JVRkJUU3hWUVVGVkxGRkJRVlVzVTBGQlZYRklMRVZCUVZNelJ5eEZRVUZuUWl4RFFVTjZSQ3hQUVVGUExFdEJRVXNzVlVGQlZTeExRVUZMTEU5QlFVOHNSVUZCUnl4TFFVRkxMRTlCUVU4c1JVRkJSeXhIUVVGTk1rY3NSVUZCVXpOSExFTkJRV01zUTBGRGNrWXNSVUZUUVZZc1JVRkJUU3hWUVVGVkxGbEJRV01zVTBGQlZWY3NSVUZCUzBNc1JVRkJUV0VzUlVGQllTeERRVU0xUkN4UFFVRlBMRXRCUVVzc1ZVRkJWV1FzUlVGQlMwTXNSVUZCVFdFc1JVRkJZVTRzUlVGQlZ5eERRVU0zUkN4RlFVVkJia0lzUlVGQlRTeFZRVUZWTEZkQlFXRXNVMEZCVlhOQ0xFVkJRVTBzUTBGRGVrTXNVVUZCVTBzc1JVRkJTU3hGUVVGSExFVkJRVWtzUlVGQlIwRXNSVUZCU1V3c1JVRkJTeXhQUVVGUlN5eEpRVU5vUXl4TFFVRkxMRTlCUVU5TUxFVkJRVXRMTEVOQlFVTXNRMEZCUXl4SFFVTnVRaXhKUVVOU0xFOUJRVThzUTBGRFdDeEZRVU5CTEU5QlFVOHNaVUZCWlROQ0xFVkJRVTBzVlVGQlZ5eFRRVUZWTEVOQlJ6ZERMRWxCUVVzc1ZVRkJXU3hEUVVkaUxGRkJSa2syUml4RlFVRlBMRXRCUVVzc1RVRkRXbFlzUlVGQlV5eEhRVU5PVlN4SFFVTklWaXhKUVVOQlZTeEZRVUZQUVN4RlFVRkxMRTlCUVZNc1QwRkJXVUVzUlVGQlN5eFRRVUZUTEVOQlFVTXNSVUZGY0VRc1QwRkJUMVlzUTBGRFdDeEZRVU5CTEZkQlFWa3NSMEZEV2l4aFFVRmpMRVZCUTJ4Q0xFTkJRVU1zUlVGUFJHNUdMRVZCUVUwc1ZVRkJWU3hQUVVGVExGVkJRVmtzUTBGRGFrTXNTVUZCU1hsSUxFVkJRVWtzUzBGSFVrRXNSVUZCUlN4TlFVRlJRU3hGUVVGRkxFbEJRVTFCTEVWQlFVVXNWVUZCV1N4VlFVRlpMRU5CUTNoRExFMUJRVTBzU1VGQlNTeE5RVUZOTEc5RFFVRnZReXhEUVVONFJDeERRVU5LTEVWQlJVRjZTQ3hGUVVGTkxGVkJRVlVzVTBGQlZ5eFZRVUZaTEVOQlIyNURMRTlCUVU4c1MwRkJTeXhOUVVWYUxFOUJRVThzUzBGQlN5eEpRVVZhTEU5QlFVOHNTMEZCU3l4VFFVTm9RaXhGUVVOQkxFOUJRVThzWlVGQlpVRXNSVUZCVFN4VlFVRlhMRmRCUVZrc1EwRkZMME1zU1VGQlN5eFZRVUZaTEVOQlEySXNUMEZCVHl4TFFVRkxMR1ZCUVdVc1YwRkJWeXhEUVVNeFF5eEZRVU5CTEZkQlFWa3NSMEZEV2l4aFFVRmpMRVZCUTJ4Q0xFTkJRVU1zUlVGTlJFRXNSVUZCVFN4VlFVRlZMRmRCUVdFc1ZVRkJXU3hEUVVOeVF5eEpRVUZKTUVnc1JVRkJUeXhMUVVGTExFMUJRVTBzVjBGQlZ5eEZRVUZITEV0QlFVMHNRMEZCUXl4RlFVTXpRek5GTEVkQlFVMHlSU3hKUVVGVExFdEJRVXNzUzBGQlRTd3dRa0ZCTWtKQkxFVkJRVTBzWVVGQll5eExRVUZMTEVsQlFVa3NRMEZEZEVZc1JVRkRUekZJTEVOQlExZ3NSVUZCUlN4RlFVTkdXaXhIUVVGUkxGRkJRVlZaTEVkQlRXeENMRk5CUVZNeVNDeEhRVUZOUXl4RlFVRlBMRU5CUTJ4Q0xFOUJRVTlCTEVOQlExZ3NRMEZEUVhoSkxFZEJRVkVzVFVGQlVYVkpMRWRCUTFvc1VVRkJWU3hQUVVGUExGZEJRMnBDTTBnc1IwRkJUU3hWUVVGVkxFOUJRVThzVVVGQlVTeEZRVUZKUVN4SFFVRk5MRlZCUVZVc1UwRkRka1JCTEVkQlFVMHNWVUZCVlN4TlFVRlJRU3hIUVVGTkxGVkJRVlVzVDBGRGVFTkJMRWRCUVUwc1ZVRkJWU3hUUVVGWFFTeEhRVUZOTEZWQlFWVXNVMEZETTBOQkxFZEJRVTBzVlVGQlZTeEpRVUZOUVN4SFFVRk5MRlZCUVZVc1NVRkRkRU1zVTBGQlUzRkRMRWRCUVZOS0xFVkJRVTBzUTBGRGFFSkJMRWxCUVZNc1UwRkJWVUVzUlVGQlVTeFZRVUZaTEVOQlFVVXNUVUZCVVN4RFFVRkZMRXRCUVUwc1IwRkJUU3hOUVVGUExFMUJRVlVzUTBGQlNTeEhRVU40Uml4SlFVRkphRUlzUlVGQlV5eERRVUZGTEV0QlFVMW5RaXhEUVVGTExFVkJRekZDTEU5QlFVa3NVVUZCVlN4UFFVRlBMRmRCUTJwQ2FFSXNSVUZCVHl4UFFVRlBMRkZCUVZFc1JVRkJTU3hWUVVGWkxFTkJRVVVzVDBGQlR5eEpRVUZOTEVkQlEyeEVRU3hEUVVOWUxFTkJSVUVzU1VGQlNUUkhMRWRCUVhWQ0xGVkJRVmtzUTBGRGJrTXNVMEZCVTBFc1JVRkJUWFpITEVWQlFVMTNSeXhGUVVGUkxFTkJRM0pDZUVjc1NVRkJVeXhUUVVGVlFTeEZRVUZQTEVOQlFVTXNSMEZETDBJc1MwRkJTeXhMUVVGUFFTeEZRVU5hTEV0QlFVc3NUMEZCVTNkSExFZEJRVlZETEVkQlEzaENMRXRCUVVzc1UwRkJWeXhOUVVOd1FpeERRVU5CTEdOQlFVOHNaVUZCWlVZc1JVRkJUU3hWUVVGWExGTkJRVlVzUTBGRE4wTXNTVUZCU3l4VlFVRlpMRU5CUVVVc1QwRkJUeXhMUVVGTExGZEJRV0VzVFVGQlZ5eEZRVU4yUkN4WFFVRlpMRWRCUTFvc1lVRkJZeXhGUVVOc1FpeERRVUZETEVWQlIwUkJMRVZCUVUwc1ZVRkJWU3hQUVVGVExGVkJRVmtzUTBGRGFrTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1MwRkJTeXhMUVVGTExFOUJRVk1zUTBGQlF5eERRVU42UXl4RlFVZEJRU3hGUVVGTkxGVkJRVlVzVVVGQlZTeFRRVUZWYUVnc1JVRkJTMjFJTEVWQlFWTkRMRVZCUVVzc1EwRkhia1FzVVVGR1NUTkhMRVZCUVU4c1MwRkJTeXhMUVVOYU5FY3NSVUZCU3l4RlFVRkhReXhGUVVGTE4wY3NSVUZCU3l4UFFVRlJPRWNzUlVGQlRVUXNSMEZCVFN4RlFVTnVRMFFzUlVGQlMwTXNSMEZCU1N4RFFVTmFMRWxCUVVsRkxFVkJRVWxLTEVWQlFVa3pSeXhGUVVGTE9FY3NRMEZCUnl4RlFVRkhka2dzUTBGQlJ5eEZRVU14UWl4SFFVRkpkMGdzUlVGQlNTeEZRVU5LU0N4RlFVRkxSU3hGUVVGTkxGVkJRMDVETEVWQlFVa3NSVUZEVkVZc1JVRkJTME1zVFVGRFNpeEpRVUZKUXl4SlFVRk5MRVZCUTFnc1QwRkJUMFFzUlVGSFVDeEhRVUZKZGtnc1NVRkJVVUVzUlVGRFVpeFBRVUZQVXl4RlFVRkxMRTlCUlZvc1RVRkJUU3hKUVVGSkxFMUJRVTBzT0VKQlFUaENMRVZCUlhSRU9FY3NSVUZCVDBZc1JVRkJTME1zUjBGQlR5eERRVU4yUWl4RFFVTkJMRTlCUVU5RExFVkJRVTFLTEVOQk5rTnFRaXhGUVVkQlNDeEZRVUZOTEZWQlFWVXNUMEZCVXl4VlFVRlpMRU5CUTJwRExFOUJRVThzUzBGQlN5eExRVUZMTEVOQlFVTXNRMEZEZEVJc1JVRkRRVUVzUlVGQlRTeFZRVUZWTEZGQlFWVXNVMEZCVlRGR0xFVkJRV0VzUTBGRE4wTXNSMEZCU1N4TFFVRkxMRXRCUVVzc1UwRkJWeXhGUVVWNlFpeFBRVUZCUVN4RlFVRlpMRU5CUVVNc1JVRkJTU3hMUVVGTExFdEJRVXNzUTBGQlF5eEZRVU0xUWtFc1JVRkJXU3hEUVVGRExFVkJRVWtzUzBGQlN5eFBRVUZQTEVOQlFVTXNSVUZEZGtKQkxFTkJRMWdzUlVGRFFUQkdMRVZCUVUwc1ZVRkJWU3hSUVVGVkxGTkJRVlV4Uml4RlFVRmhMRU5CUXpkRExFZEJRVWtzUzBGQlN5eExRVUZMTEZOQlFWY3NSVUZGZWtJc1MwRkJTVzFITEVWQlFWa3NTMEZCU3l4TFFVRkxMRTlCUVZNc1JVRkRia01zVDBGQlFXNUhMRVZCUVZrc1EwRkJReXhGUVVGSkxFdEJRVXNzUzBGQlMyMUhMRU5CUVZNc1JVRkRjRU51Unl4RlFVRlpMRU5CUVVNc1JVRkJTU3hMUVVGTExFOUJRVTl0Unl4RFFVRlRMRVZCUXk5Q2JrY3NSVUZEV0N4RlFVTkJNRVlzUlVGQlRTeFZRVUZWTEUxQlFWRXNWVUZCV1N4RFFVTm9ReXhKUVVGSmNFZ3NSVUZCU1N4TFFVRkxMRTlCUTJJc1QwRkJUeXhKUVVGSmIwZ3NSVUZCVFN4TFFVRkxMRXRCUVVzc1RVRkJUU3hEUVVGRExFVkJRVWR3U0N4SlFVRk5jMGdzUjBGQldYUklMRVZCUVVsQkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZEZWtVc1JVRkRRVzlJTEVWQlFVMHNWVUZCVlN4WlFVRmpMRk5CUVZWbUxFVkJRVThzUTBGRE0wTXNUMEZCVHl4TFFVRkxMRlZCUVZrc1EwRkJRMEVzUlVGQlVTeExRVUZQTEV0QlFVc3NUVUZCVFN4RFFVTjJSQ3hGUVVOQlpTeEZRVUZOTEZWQlFWVXNTVUZCVFN4VFFVRlZhRWdzUlVGQlMwTXNSVUZCWTIxRkxFVkJRVTBzUTBGRGNrUXNTVUZCU1hSRUxFVkJRVWtzUzBGQlN5eFJRVUZSWkN4RlFVRkxMRWRCUVVsdlJTeEZRVUZMTEZGQlFWRXNSVUZETTBNc1QwRkJUM1JFTEVWQlFVa3NSVUZCU1dJc1JVRkJaU3hMUVVGTExFOUJRVTloTEVOQlFVTXNRMEZETDBNc1JVRkRRV3RITEVWQlFVMHNWVUZCVlN4dFFrRkJjVUlzVTBGQlZXaElMRVZCUVV0WUxFVkJRVk54U1N4RlFVRlhjRWNzUlVGQllTeERRVU5xUml4SlFVRkpMRVZCUVVrc1MwRkJTeXhSUVVGUmRFSXNSVUZCU3l4SFFVRkpXQ3hEUVVGUExFVkJRMnBEYzBrc1JVRkJaU3hGUVVGSkxFVkJRVWtzUTBGQlF5eEZRVUZKTEVWQlFVdEVMRVZCUVZrc1JVRkJTU3hGUVVGSkxFVkJRM3BFTEVkQlFVbERMRWRCUVdkQ0xFVkJRMmhDTEU5QlFVRnlSeXhGUVVGWkxFTkJRVU1zUlVGQlNTeExRVUZMTEV0QlFVdHhSeXhEUVVGWkxFVkJRM1pEY2tjc1JVRkJXU3hEUVVGRExFVkJRVWtzUzBGQlN5eFBRVUZQY1Vjc1EwRkJXU3hGUVVOc1EzSkhMRU5CUjJZc1JVRkRRVEJHTEVWQlFVMHNWVUZCVlN4dlFrRkJjMElzVTBGQlZXaElMRVZCUVV0WUxFVkJRVk54U1N4RlFVRlhjRWNzUlVGQllTeERRVU5zUml4SlFVRkpMRVZCUVVrc1MwRkJTeXhSUVVGUmRFSXNSVUZCU3l4SFFVRkpXQ3hEUVVGUExFVkJRMnBEYzBrc1JVRkJaU3hGUVVGSkxFVkJRVWtzUTBGQlF5eEZRVUZMUkN4RlFVRlpMRVZCUVVrc1JVRkJTU3hGUVVOcVJHcElMRVZCUVU4c1MwRkJTeXhMUVVOb1FpeEhRVUZKYTBnc1JVRkJaV3hJTEVWQlFVc3NUMEZEY0VJc1QwRkJRV0VzUlVGQldTeERRVUZETEVWQlFVbGlMRVZCUVV0clNDeERRVUZaTEVWQlEyeERja2NzUlVGQldTeERRVUZETEVWQlFVa3NTMEZCU3l4UFFVRlBjVWNzUTBGQldTeEZRVU5zUTNKSExFTkJSMllzUlVGRFFUQkdMRVZCUVUwc1ZVRkJWU3hYUVVGaExGTkJRVlZaTEVWQlFVOTRSQ3hGUVVGTmVVUXNSVUZCVnl4RFFVTXpSQ3hKUVVGSlF5eEZRVUZMTEV0QlFVc3NTMEZCU3l4UFFVRlJReXhGUVVGTExFdEJRVXNzVDBGQlR5eFBRVU0xUXl4UFFVRkJOMFlzUjBGQlRTeExRVUZMTEZOQlFWZG5SaXhIUVVGWldTeEhRVUZOUXl4RlFVRkxSQ3hKUVVGUFF5eEZRVUZKTEhGRFFVRnpRMGdzUlVGQlR5eGxRVUZuUWtVc1JVRkJTVU1zUlVGQlNTeG5Ra0ZCYVVKR0xFTkJRVk1zUlVGTmRrb3pSaXhIUVVGTk1FWXNSMEZCVXl4SFFVRkxSU3hGUVVGTExFVkJRVWNzYzBKQlFYVkNSaXhGUVVGUExHZENRVUZwUWtNc1EwRkJVeXhGUVVNM1JVTXNRMEZEV0N4RlFVZEJaQ3hGUVVGTkxGVkJRVlVzU1VGQlRTeFRRVUZWYUVnc1JVRkJTMFVzUlVGQlQwTXNSVUZCVjJsRkxFVkJRVTBzUTBGRGVrUXNTVUZCU1N4RlFVRkpMRXRCUVVzc1VVRkJVWEJGTEVWQlFVc3NSMEZCU1c5RkxFVkJRVXNzVVVGQlVTeEZRVU16UXl4SFFVRkpMRVZCUVVrc1JVRkJSeXhEUVVsUUxFZEJSa0VzUlVGQlNTeERRVUZETEVWQlEweEJMRVZCUVVzc1VVRkRSQ3hMUVVGTExFdEJRVXNzVDBGQlUwRXNSVUZCU3l4aFFVTjRRaXhQUVVGUExFdEJRVXNzWVVGQllTeEZRVUZIY0VVc1JVRkJTMFVzUlVGQlQydEZMRU5CUVVrc1JVRkpOVU1zU1VGQlNUUkVMRVZCUVd0Q0xFdEJRVXNzYTBKQlFXdENMRVZCUVVkRExFVkJRVk1zUzBGRGVrUXNUMEZCU1N4RlFVRkpMRXRCUVVzc1MwRkJTeXhUUVVOa0xFZEJRVXNzUzBGQlN5eExRVUZMTEU5QlEyWkJMRVZCUVZORUxFZEJSV0pETEVWQlFVOHNZVUZCWVN4RlFVRkhha2tzUlVGQlMwVXNSVUZCVDJ0RkxFTkJRVWtzUlVGRGFFTTBSQ3hEUVVWbUxFdEJSMGtzVVVGQlNUZElMRWxCUVdNc1MwRkRWa1FzU1VGQlZTeFJRVU5XTEV0QlFVc3NXVUZCV1N4RlFVVnlRaXhMUVVGTExFdEJRVXNzUTBGQlF5eEZRVUZKUml4RlFVTm1MRXRCUVVzc1QwRkJUeXhEUVVGRExFVkJRVWxGTEVkQlJXUXNSVUZGWml4RlFVTkJPRWNzUlVGQlRTeFZRVUZWTEZsQlFXTXNWVUZCV1N4RFFVTjBReXhQUVVGSkxFdEJRVXNzVTBGQlYwVXNSMEZEVkN4TFFVRkxMRTlCUVZNc1MwRkJTeXhQUVVGUExFMUJRVTBzUlVGQlJ5eExRVUZMTEV0QlFVc3NUVUZCVFN4RlFVTjJSQ3hMUVVGTExFMUJRMmhDTEVWQlEwRkdMRVZCUVUwc1ZVRkJWU3hoUVVGbExGTkJRVlZzUnl4RlFVRkhaQ3hGUVVGTFJTeEZRVUZQYTBVc1JVRkJUU3hEUVVVeFJDeEhRVVJCTEV0QlFVc3NTMEZCU3l4UFFVRlBkRVFzUlVGQlJ5eEZRVUZIWkN4RFFVRkhMRVZCUTNSQ0xFdEJRVXNzVTBGQlYydElMRWRCUVZjc1EwRkRNMElzUzBGQlQwRXNSMEZCVlN4UFFVRlRPVU1zUlVGQlN5eGpRVU16UWpoRExFZEJRVlVzUzBGQlN5eE5RVUZUTEVWQlF6VkNMRWRCUVVsb1NDeEpRVUZWTEU5QlExWXNUVUZCVHl4SFFVZFFMRXRCUVVzc1QwRkJVMmRJTEVkQlFWVXNUVUZCVFN4RlFVRkhMRXRCUVVzc1MwRkJTeXhQUVVGVExFTkJRVU1zUTBGRk4wUXNRMEZEUVN4WlFVRkxMRTlCUVU4c1QwRkJUM0JITEVWQlFVY3NSVUZCUjFvc1EwRkJTeXhGUVVOMlFpeEZRVU5ZTEVWQlEwRTRSeXhGUVVGTkxGVkJRVlVzWTBGQlowSXNVMEZCVld0Q0xFVkJRVXNzUTBGSk0wTXNTVUZCU1hSSkxFVkJRVWtzUzBGQlN5eFBRVU5VYzBrc1JVRkJTU3hUUVVGWGFFSXNSMEZEV0hSSUxFbEJRVTF6U0N4SlFVTk9kRWdzUlVGQlJTeExRVUZMTEUxQlFWTXNSMEZIY0VKQkxFVkJRVWtzUzBGQlN5eFpRVUZaTEVWQlEzSkNRU3hGUVVGRkxFdEJRVXR6U1N4RlFVRkpMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJSVGRDTEV0QlFVc3NTMEZCU3l4TFFVRkxRU3hGUVVGSkxFdEJRVXNzVFVGQlRTeERRVUZETEVOQlEyNURMRVZCUTBGc1FpeEZRVUZOTEZWQlFWVXNZVUZCWlN4VFFVRlZiVUlzUlVGQlN5eERRVWt4UXl4SlFVRkpka2tzUlVGQlNTeExRVUZMTEU5QlExUjFTU3hGUVVGSkxGTkJRVmRxUWl4SFFVTllkRWdzU1VGQlRYTklMRWxCUTA1MFNDeEZRVUZGTEZGQlFWRXNUVUZCVXl4SFFVZDJRa0VzUlVGQlNTeExRVUZMTEZsQlFWa3NSVUZEY2tKQkxFVkJRVVVzVVVGQlVYVkpMRVZCUVVrc1QwRkJUeXhKUVVGSkxFTkJRVU1zUjBGRk9VSXNTMEZCU3l4TFFVRkxMRkZCUVZGQkxFVkJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZEY0VNc1JVRkRRVzVDTEVWQlFVMHNWVUZCVlN4clFrRkJiMElzVlVGQldTeERRVVUxUXl4SlFVRkpiMElzUlVGQlR5eExRVUZMTEV0QlFVc3NVVUZCVlN4RlFVRkhNMGdzUlVGQlR5eExRVUZMTEV0QlFVc3NUMEZCVHpKSUxFTkJRVWtzUlVGRE1VUnVRaXhGUVVGVExFdEJRVXNzVTBGQlYwTXNSMEZCV1VFc1IwRkJXU3hMUVVGTExFOUJRVThzVDBGQlQydENMRU5CUVVrc1JVRkROVVVzVDBGQlR5eEpRVUZKY0VJc1JVRkJUWFpITEVWQlFVMTNSeXhEUVVGTkxFTkJRMnBETEVWQlIwRkVMRVZCUVUwc1ZVRkJWU3hUUVVGWExGTkJRVlZzU0N4RlFVRkxReXhGUVVGTllTeEZRVUZoZVVnc1JVRkJWV3BGTEVWQlFVMXJSU3hGUVVGUE9VSXNSVUZCVXl4RFFVTjZSaXhKUVVGSldTeEZRVUZOYUVRc1JVRkJTeXhUUVVOWWJVVXNSVUZCVFVNc1JVRkRWaXhIUVVGSmVra3NTVUZCVTBRc1IwRkpWQ3hIUVVoSkxFTkJRVU5qTEVsQlJVdzBTQ3hIUVVGVFJDeEZRVUZQTEV0QlFVc3NVVUZCVVhwSkxFVkJRVXNzUjBGQlNYTklMRU5CUVVjc1IwRkJTeXhGUVVNeFEyMUNMRVZCUVU4c1IwRkRVQ3hQUVVGUFJDeFBRVWRZUXl4RlFVRlBMRXRCUVVzc1VVRkJVWHBKTEVWQlFVc3NSVUZCUjNOSUxFTkJRVWNzUlVGREwwSnZRaXhGUVVGUkxFdEJRVXNzVVVGQlVYcEpMRVZCUVUwc1IwRkJTWEZJTEVOQlFVY3NSVUZET1VKdlFpeEZRVUZSTEVWQlExSkJMRVZCUVZFc1EwRkJRMEVzUlVGRFNqVklMRWxCUVdkQ0xFbEJRM0pDTkVnc1NVRkZVaXhKUVVGSkwwZ3NSVUZCVHl4TFFVRkxMRXRCUVUxM1J5eEZRVUZUTEV0QlFVc3NUMEZEY0VNc1IwRkJTVlFzU1VGQldTeFBRVU5hTEZGQlFWTXhSaXhGUVVGSmVVZ3NSVUZCVFhwSUxFVkJRVWt3U0N4RlFVRlBNVWdzU1VGQlN5eERRVU12UWl4SlFVRkpaQ3hGUVVGTlV5eEZRVUZMU3l4RFFVRkRMRVZCUTFwV0xFVkJRVk52Unl4RlFVRlJlRWNzUlVGQlMybElMRVZCUVU5dVJ5eERRVUZETEVWQlFVZDNTQ3hIUVVGUExFVkJRelZETEVkQlFVbHNTU3hKUVVGWExFOUJRVmNzUTBGRGRFSXNSMEZCU1dsSkxFbEJRV0VzUjBGQlRTeERRVU51UWl4SFFVRkpja2tzU1VGQlVWTXNSVUZCUzBzc1EwRkJReXhIUVVGTExFdEJRVXNzVjBGQllTeEhRVU55UXl4TlFVRk5MRWxCUVVrc1RVRkJUU3huUkVGQlowUXNSVUZEYUVWV0xFVkJRVThzVVVGRFVDeExRVUZMTEV0QlFVc3NUMEZCVDFVc1JVRkJSeXhEUVVGRExFVkJRMnBDTEV0QlFVc3NVMEZCVjI5SExFbEJRMmhDTEV0QlFVc3NUMEZCVHl4UFFVRlBjRWNzUlVGQlJ5eERRVUZETEVWQlF6TkNjMFFzUlVGQlN5eFJRVU5NZEVRc1NVRkRRVEJJTEV0QlJVdHdTU3hGUVVGUExHVkJRV1VzVDBGQlR5eEpRVU5zUXpaSExFVkJRVTl1Unl4RFFVRkRMRVZCUVVsV0xFVkJRVThzVFVGRk0wSXNRMEZEUVN4SFFVRkpRU3hGUVVGUExGRkJRVlVzVDBGRGFrSXNUMEZCVDBFc1EwRkRaaXhEUVVOS0xFMUJSMEZyU1N4SFFVRlRSU3hGUVVGUlJDeEZRVU55UWl4UFFVRlBSQ3hEUVVOWUxFVkJSVUYwUWl4RlFVRk5MRlZCUVZVc1lVRkJaU3hUUVVGVmEwSXNSVUZCUzA4c1JVRkJSeXhEUVVVM1F5eEhRVVJCTEV0QlFVc3NTMEZCU3l4TFFVRkxMRTFCUVUwc1MwRkJTeXhMUVVGTlVDeEZRVUZKTEVsQlFVa3NSVUZEY0VNc1MwRkJTeXhUUVVGWGFFSXNSMEZCVnl4RFFVTXpRaXhIUVVGSlowSXNSVUZCU1N4VFFVRlhhRUlzUjBGRFppeFBRVU5LTEV0QlFVc3NUMEZCVXl4TFFVRkxMRTlCUVU4c1RVRkJUU3hGUVVGSExFdEJRVXNzUzBGQlN5eE5RVUZOTEVOQlEzWkVMRU5CUTBFc1MwRkJTeXhQUVVGUExFdEJRVXNzVFVGQlRTeExRVUZMTEU5QlFWRm5RaXhGUVVGSkxGbEJRVmtzUTBGQlF5eERRVU42UkN4RlFVTlBiRUlzUTBGRFdDeEZRVUZGTEVWQlJVVXpSeXhIUVVFclFpeFRRVUZWY1Vrc1JVRkJVU3hEUVVOcVJHeExMRWRCUVZVMlFpeEZRVUZsY1Vrc1EwRkJUU3hGUVVzdlFpeFRRVUZUY2trc1JVRkJZelJGTEVWQlFWVjRSU3hGUVVGTkxFTkJRMjVETEVsQlFVbG1MRVZCUVZFc1MwRkRXaXhIUVVGSkxFTkJRVU5sTEVWQlFVMHNRMEZEVUVFc1JVRkJUeXhEUVVGRExFVkJRMUlzVVVGQlV5eEZRVUZKTEVWQlFVY3NSVUZCU1hkRkxFVkJRVk1zVDBGQlVTeEpRVU5xUTNoRkxFVkJRVXNzUTBGQlF5eEZRVUZKZDBVc1JVRkJVeXhEUVVGRExFVkJRVVVzVDBGQlR5eERRVU55UXl4RFFVTkJMRTlCUVVGMlJpeEZRVUZSWjBvc1JVRkJUeXhMUVVGTExFdEJRVTFxU1N4RFFVRkpMRWRCUVVzc1MwRkRia05tTEVWQlFVMHNVMEZCVjNWR0xFVkJRMVoyUml4RFFVTllMRU5CUTBFc1QwRkJRVmNzUlVGQll5eFZRVUZWTEUxQlFWRXNWVUZCV1N4RFFVVjRReXhSUVVSSk5FVXNSVUZCVnl4TFFVRkxMRk5CUVZNc1RVRkJUU3hEUVVGRExFVkJRek5DYmtVc1JVRkJTU3hGUVVGSFFTeEZRVUZKYlVVc1JVRkJVeXhQUVVGUmJrVXNTVUZEYWtOdFJTeEZRVUZUYmtVc1EwRkJReXhGUVVGRkxGTkJRVmNzUjBGRE0wSXNUMEZCVHl4SlFVRkpWQ3hGUVVGak5FVXNSVUZCVlN4TFFVRkxMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGRGVrUXNSVUZEUVRWRkxFVkJRV01zVlVGQlZTeFpRVUZqTEZOQlFWVTBSaXhGUVVGUExFTkJRMjVFTEVkQlFVa3NTMEZCU3l4VlFVRlpMRU5CUVVOQkxFVkJRMnhDTEU5QlFVOHNTMEZGV0N4UlFVUkpNVVlzUlVGQlN5eEpRVUZKUml4RlFVRmpMRXRCUVVzc1UwRkJVeXhOUVVGTkxFTkJRVU1zUlVGQlJ5eExRVUZMTEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkROVVJUTEVWQlFVa3NSVUZCUjBFc1JVRkJTVkFzUlVGQlJ5eFRRVUZUTEU5QlFWRlBMRWxCUTNCRFVDeEZRVUZITEZOQlFWTlBMRU5CUVVNc1JVRkJTVkFzUlVGQlJ5eFRRVUZUVHl4RFFVRkRMRVZCUVVVc1dVRkJXVzFHTEVOQlFVc3NSVUZEY2tRc1QwRkJUekZHTEVOQlExZ3NSVUZEUVVZc1JVRkJZeXhWUVVGVkxFOUJRVk1zVlVGQldTeERRVU42UXl4UFFVRlBMRXRCUVVzc1UwRkJVeXhEUVVGRExFVkJRVVVzVDBGQlR5eERRVU51UXl4RlFVTkJRU3hGUVVGakxGVkJRVlVzVVVGQlZTeFRRVUZWYVVJc1JVRkJZU3hEUVVOeVJDeFBRVUZQTEV0QlFVc3NVMEZCVXl4RFFVRkRMRVZCUVVVc1VVRkJVVUVzUTBGQlZ5eERRVU12UXl4RlFVTkJha0lzUlVGQll5eFZRVUZWTEZGQlFWVXNVMEZCVldsQ0xFVkJRV0VzUTBGRGNrUXNUMEZCVHl4TFFVRkxMRk5CUVZNc1MwRkJTeXhUUVVGVExFOUJRVk1zUTBGQlF5eEZRVUZGTEZGQlFWRkJMRU5CUVZjc1EwRkRkRVVzUlVGRFFXcENMRVZCUVdNc1ZVRkJWU3hKUVVGTkxGTkJRVlZNTEVWQlFVdERMRVZCUVdOdFJTeEZRVUZOTEVOQlF6ZEVMRWxCUVVrc1JVRkJTU3hMUVVGTExGRkJRVkZ3UlN4RlFVRkxMRVZCUVVkdlJTeEZRVUZMTEZGQlFWRXNSVUZCUjJFc1JVRkJWeXhMUVVGTExGTkJRemRFTEU5QlFVOHNSVUZCU1VFc1JVRkJVeXhQUVVGVFFTeEZRVUZUTEVOQlFVTXNSVUZCUlN4SlFVRkpha1lzUlVGQlMwTXNSVUZCWTIxRkxFTkJRVWtzUlVGQlNTeE5RVU0xUlN4RlFVTkJMMFFzUlVGQll5eFZRVUZWTEcxQ1FVRnhRaXhUUVVGVlRDeEZRVUZMV0N4RlFVRlRjVWtzUlVGQlYzQkhMRVZCUVdFc1EwRkRla1lzU1VGQlNWSXNSVUZCU1N4TFFVRkxMRkZCUVZGa0xFVkJRVXNzUlVGQlIxZ3NRMEZCVHl4RlFVRkhORVlzUlVGQlZ5eExRVUZMTEZOQlEzWkVMRWRCUVVsdVJTeEhRVUZMYlVVc1JVRkJVeXhQUVVOa0xFOUJRVThzUzBGQlN5eFJRVUZSTTBRc1EwRkJWeXhGUVVOdVF5eEpRVUZKYkVJc1JVRkJVelpGTEVWQlFWTnVSU3hEUVVGRExFVkJRVVVzYlVKQlFXMUNaQ3hGUVVGTFdDeEZRVUZUY1Vrc1JVRkJWM0JITEVOQlFWY3NSVUZEYUVZc1QwRkJTV3hDTEVsQlFWY3NVVUZCWVZVc1JVRkJTU3hGUVVOeVFtMUZMRVZCUVZOdVJTeEZRVUZKTEVOQlFVTXNSVUZCUlN4UlFVRlJVU3hEUVVGWExFVkJSWFpEYkVJc1EwRkRXQ3hGUVVOQlF5eEZRVUZqTEZWQlFWVXNiMEpCUVhOQ0xGTkJRVlZNTEVWQlFVdFlMRVZCUVZOeFNTeEZRVUZYY0Vjc1JVRkJZU3hEUVVNeFJpeEpRVUZKVWl4RlFVRkpMRXRCUVVzc1VVRkJVV1FzUlVGQlN5eEZRVUZIV0N4RFFVRlBMRVZCUVVjMFJpeEZRVUZYTEV0QlFVc3NVMEZCVlRCRUxFVkJRVk14UkN4RlFVRlRMRTlCUTI1R0xFZEJRVWtzUlVGQlFXNUZMRWRCUVVzMlNDeEhRVVZVTEV0QlFVbDJTU3hGUVVGVE5rVXNSVUZCVTI1RkxFTkJRVU1zUlVGQlJTeHZRa0ZCYjBKa0xFVkJRVXRZTEVWQlFWTnhTU3hGUVVGWGNFY3NRMEZCVnl4RlFVTnFSaXhQUVVGSmJFSXNTVUZCVnl4UlFVRmhWU3hGUVVGSk5rZ3NSVUZCVXl4RlFVTTVRakZFTEVWQlFWTnVSU3hGUVVGSkxFTkJRVU1zUlVGQlJTeFJRVUZSVVN4RFFVRlhMRVZCUlhaRGJFSXNSVUZEV0N4RlFVTkJReXhGUVVGakxGVkJRVlVzVjBGQllTeFRRVUZWZFVnc1JVRkJUM2hFTEVWQlFVMTVSQ3hGUVVGWExFTkJRMjVGTEVsQlFVbERMRVZCUVVzc1MwRkJTeXhMUVVGTExFOUJRVkZqTEVWQlFVc3NTMEZCU3l4VFFVRlRMRTlCUXpsRE1VY3NSMEZCVFRSR0xFbEJRVTlqTEVWQlFVa3NkVU5CUVhkRGFFSXNSVUZCVHl4VlFVRlhSU3hGUVVGSll5eEZRVUZKTEZsQlFXRm1MRU5CUVZNc1JVRkRla2N6Uml4SFFVRk5ORVlzUlVGQlN5eEhRVUZMUml4RlFVRlJMRVZCUVVjc01rSkJRVFJDUlN4RlFVRkpMRmRCUVZsR0xFVkJRVThzV1VGQllVTXNRMEZCVXl4RlFVVndSeXhSUVVSSmFFSXNSVUZCVHl4RlFVRkhWeXhGUVVGSkxFdEJRVXNzVTBGQlZUZElMRVZCUVVrc1MwRkJTeXhMUVVGTmEwb3NSVUZCV1N4RlFVTnVSQzlJTEVWQlFVa3NSVUZCUjBFc1JVRkJTVGhJTEVWQlFVazVTQ3hKUVVOd1FpdEdMRWRCUVZGWExFVkJRVVV4Unl4RFFVRkRMRVZCUVVVc1YwRkJWemhITEVWQlFWRXNSVUZCUjNoRUxFVkJRVTE1UkN4RlFVRlphRUlzUTBGQlNTeEZRVU42UkdkRExFZEJRV0Z5UWl4RlFVRkZNVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NUMEZEZGtKdlFpeEhRVUZOTWtVc1IwRkJVV2RETEVWQlFWY3NUVUZCVDJoQ0xFTkJRVk1zUlVGRGVrTXpSaXhIUVVGTmNFSXNTVUZCVFN4SFFVRkxNRWNzUlVGQlJURkhMRVZCUVVrc1EwRkJReXhGUVVGRkxHTkJRV2RDTUVjc1JVRkJSVEZITEVOQlFVTXNSVUZCUlN4WlFVRmhMRFJDUVVFMlFpdEhMRU5CUVZNc1JVRkRPVVpNTEVWQlFVVXhSeXhEUVVGRExFVkJRVVVzVDBGQlR5eEhRVUZMYmtJc1JVRkJSVzFDTEVOQlFVTXNSMEZEY0VKdlFpeEhRVUZOTEVkQlFVOHNVVUZCVTNCQ0xFVkJRVWNzVFVGQlQyNUNMRVZCUVVWdFFpeERRVUZETEVWQlFVY3NkVUpCUVhkQ01FY3NSVUZCUlRGSExFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFVY3NWMEZCV1RoSExFVkJRVThzV1VGQllVTXNRMEZCVXl4RlFVTndTQzlITEVsQlFVMHNSMEZCUzNORUxFVkJRVXNzVTBGQlUzcEZMRVZCUVVWdFFpeEZRVUZKTEVOQlFVTXNSVUZCUjI1Q0xFVkJRVVZ0UWl4RFFVRkRMRU5CUVVNc1JVRkJTU3hIUVVNM1EyOUNMRWRCUVUwc1IwRkJUeXd3UWtGQk1rSXdSaXhGUVVGUExGRkJRVk01Unl4RlFVRkhMRTlCUVZGdVFpeEZRVUZGYlVJc1JVRkJTU3hEUVVGRExFVkJRVWR1UWl4RlFVRkZiVUlzUTBGQlF5eERRVUZETEVWQlNYcEdMRWxCUVVsblNTeEZRVUZUUkN4SlFVRmpMRVZCUXpOQ0xFOUJRVWxETEVkQlFWVkVMRVZCUVZsNlJTeEZRVUZMTEZsQlFXTjNSU3hKUVVONlF6RkhMRWRCUVUwc1IwRkJUelJITEVWQlFWTXNWVUZCV1N4WFFVRlpMR0ZCUVdORUxFVkJRVmRvUXl4RlFVRk5MR0ZCUVdObExFVkJRVThzWlVGQlowSjRSQ3hGUVVGTExGbEJRV0VzYlVKQlFXOUNkMFVzUlVGQlNTeGhRVUZqWml4RFFVRlRMRVZCUTJoTWFFSXNRMEZEV0N4RlFVZEJlRWNzUlVGQll5eFZRVUZWTEVsQlFVMHNVMEZCVlV3c1JVRkJTMFVzUlVGQlQwTXNSVUZCVjJsRkxFVkJRVTBzUTBGRGFrVXNTVUZCU1c5RUxFVkJRVWtzUzBGQlN5eFRRVUZWY0VJc1JVRkJUV2hETEVWQlFVc3NZVUZCWTJkRUxFVkJRVTFvUkN4RlFVRkxMRk5CUTNaRWRFUXNSVUZCU1N4TFFVRkxMRWxCUVVrc1MwRkJTeXhSUVVGUlpDeEZRVUZMTEVWQlFVZHZTQ3hEUVVGSExFVkJRVWRKTEVWQlFVVXNUMEZCVXl4RFFVRkRMRVZCUVVkMVFpeEZRVUZSZGtJc1JVRkJSVEZITEVOQlFVTXNSVUZIZEVVc1IwRkdTV2xKTEVWQlFVMHNWMEZEVG5aQ0xFVkJRVVV4Unl4RFFVRkRMRVZCUVVscFNTeEZRVUZSUVN4RlFVRk5MRTFCUVUwc1IwRkRNMEpCTEVWQlFVMHNTMEZCU3l4UlFVRlZNME1zUlVGQlN5eERRVXN4UWl4SlFVRkpMMFFzUlVGRFFYWkNMRVZCUVVrc1NVRkJUWFZDTEVWQlFWRnRSaXhGUVVGRk1VY3NSVUZCU1N4RFFVRkRMRWRCUVVjc1MwRkJTeXhQUVVGVGMwWXNSMEZCVDJkQ0xFVkJRVWt5UWl4RlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGSEwwa3NRMEZCUnl4RlFVRkpMRWRCUTNaRmNVTXNSVUZCVFN4WFFVTk9iVVlzUlVGQlJURkhMRVZCUVVrc1EwRkJReXhGUVVGSmRVSXNSVUZCVVVFc1JVRkJUU3hOUVVGTkxFZEJRMjVEUVN4RlFVRk5MR05CUVdNd1J5eERRVUZMTEVWQlEzcENMRXRCUVVzc1MwRkJTMnBKTEVWQlFVa3NRMEZCUXl4RlFVRkpkVUlzUlVGQlRTeFBRVUZQTEVsQlJURkNRU3hGUVVGUmJVWXNSVUZCUlRGSExFVkJRVWtzUTBGQlF5eExRVUZQTEZGQlFXRjFRaXhGUVVGTkxFdEJRVXNzVDBGQlV5dEVMRWRCUVU5blFpeEZRVUZKTWtJc1JVRkJUU3hQUVVGUExFVkJRVWN2U1N4RFFVRkhMRVZCUVVrc1NVRkRNMFp4UXl4RlFVRk5MRmRCUTA1dFJpeEZRVUZGTVVjc1JVRkJTU3hEUVVGRExFVkJRVWwxUWl4RlFVRlJRU3hGUVVGTkxFMUJRVTBzUjBGRGJrTkJMRVZCUVUwc1lVRkJZVEJITEVOQlFVc3NSVUZEZUVJc1MwRkJTeXhMUVVGTGFra3NRMEZCUXl4RlFVRkpNRWNzUlVGQlJURkhMRU5CUVVNc1JVRkJSU3hQUVVGUExFVkJSVzVETEVOQlEwRXNTVUZCU1ZZc1JVRkJVekpKTEVWQlFVMHNTVUZCU1M5SkxFVkJRVXRGTEVWQlFVOURMRVZCUVZkcFJTeERRVUZKTEVWQlEyeEVMRWRCUVVsb1JTeEpRVUZYTEVkQlExZ3NUVUZCVHl4SFFVVllMRWRCUkVFc1MwRkJTeXhMUVVGTFZTeERRVUZETEVWQlFVbHBTU3hGUVVGTkxFOUJRVThzUlVGRGVFSXpTU3hKUVVGWExFZEJRMWdzVFVGQlR5eEhRVVZZTEVkQlFVa3NTMEZCU3l4TFFVRkxMRTlCUVZOblJ5eEZRVU51UWl4WlFVRkxMRTlCUVU5MFJpeEZRVUZKTEVWQlFVZFdMRU5CUVUwc1JVRkRiRUlzUjBGSFVDeEpRVUZKTkVnc1JVRkJhMElzUzBGQlN5eHJRa0ZCYTBJc1JVRkJSME1zUlVGQlV5eExRVU42UkN4UFFVRkpZaXhGUVVGSmFFZ3NSVUZCVHl4UFFVRlBMRVZCUVVjc1MwRkJTeXhQUVVGUExFTkJRVU1zUlVGQlNTeEpRVU4wUXpaSUxFVkJRVk5FTEVWQlExUnNTQ3hIUVVGTExFdEJRVXNzUzBGQlN5eFJRVVZ1UW0xSUxFVkJRVThzVDBGQlQyNUlMRVZCUVVrc1JVRkJSMVlzUTBGQlRTeEZRVU53UWpSSUxFTkJSV1lzUlVGTlFUTklMRVZCUVdNc1ZVRkJWU3hQUVVGVExGTkJRVlZUTEVWQlFVZHBTU3hGUVVGUExFTkJRMnBFTEV0QlFVc3NVMEZCVXl4UFFVRlBha2tzUlVGQlJ5eEZRVUZIYVVrc1EwRkJTeXhGUVVOb1F5eExRVUZMTEV0QlFVc3NUMEZCVDJwSkxFVkJRVWNzUlVGQlIybEpMRVZCUVUwc1QwRkJUeXhEUVVGRExFTkJRM3BETEVWQlMwRXhTU3hGUVVGakxGVkJRVlVzYTBKQlFXOUNMRlZCUVZrc1EwRkZjRVFzU1VGQlNTdElMRVZCUVU4c1MwRkJTeXhUUVVGVExGRkJRVlVzUlVGRGJrTXNUMEZCVHl4SlFVRkpMMGdzUlVGQll5eExRVUZMTEZOQlFWTXNUMEZCVHl0SUxFTkJRVWtzUlVGQlJ5eExRVUZMTEV0QlFVc3NUMEZCVDBFc1EwRkJTU3hEUVVGRExFTkJReTlGTEVWQlEwRXZTQ3hGUVVGakxGVkJRVlVzWTBGQlowSXNVMEZCVlRaSUxFVkJRVXNzUTBGSmJrUXNTMEZCU3l4TFFVRkxMRXRCUVV0QkxFVkJRVWtzUzBGQlN5eE5RVUZOTEVOQlFVTXNSVUZETDBJc1MwRkJTeXhUUVVGVExFdEJRVXRCTEVWQlFVa3NVMEZCVXl4TlFVRk5MRU5CUVVNc1EwRkRNME1zUlVGRFFUZElMRVZCUVdNc1ZVRkJWU3hoUVVGbExGTkJRVlU0U0N4RlFVRkxMRU5CU1d4RUxFdEJRVXNzUzBGQlN5eFJRVUZSUVN4RlFVRkpMRXRCUVVzc1NVRkJTU3hEUVVGRExFVkJRMmhETEV0QlFVc3NVMEZCVXl4UlFVRlJRU3hGUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETEVOQlF6VkRMRVZCVFVFNVNDeEZRVUZqTEZWQlFWVXNVMEZCVnl4VFFVRlZVQ3hGUVVGTFF5eEZRVUZOWVN4RlFVRmhlVWdzUlVGQlZXcEZMRVZCUVUxclJTeEZRVUZQT1VJc1JVRkJVeXhEUVVOcVJ5eEpRVUZKV1N4RlFVRk5hRVFzUlVGQlN5eFRRVU5ZTTBRc1JVRkJUeXhMUVVGTExFdEJRVTEzUlN4RlFVRlhMRXRCUVVzc1UwRkRiRU56UkN4RlFVRlBMRXRCUVVzc1VVRkJVWHBKTEVWQlFVc3NSVUZCUjNOSUxFTkJRVWNzUlVGQlIzUkhMRVZCUVVsNVNDeEZRVU4wUTBNc1JVRkJVU3hMUVVGTExFbEJRVWw2U1N4SlFVRlRSQ3hGUVVGTmVVa3NSVUZCVHl4TFFVRkxMRkZCUVZGNFNTeEZRVUZOTEVWQlFVZHhTQ3hEUVVGSExFVkJRVWN6Unl4RlFVRkxMRTlCUVZNc1EwRkJReXhGUVVOMFJpeEhRVUZMTkVnc1IwRlRRU3hIUVVGSmRrZ3NSMEZCU3pCSUxFVkJRMVlzUjBGQlNTeERRVU5CTEV0QlFVOHhTQ3hIUVVGTE1FZ3NSVUZCVHpGSUxFbEJRVXNzUTBGRGFFSnRSU3hGUVVGVGJrVXNRMEZCUXl4RlFVRkZMRmRCUTFwdFJTeEZRVUZUYmtVc1EwRkJReXhGUVVGSmJVVXNSVUZCVTI1RkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVkQlEzQkRMRWxCUVVsV0xFVkJRVk0yUlN4RlFVRlRia1VzUTBGQlF5eEZRVUZGTEZOQlFWTm9RaXhGUVVGTFF5eEZRVUZOWVN4RlFVRmhlVWdzUlVGQlZXcEZMRVZCUVUxclJTeEZRVUZQT1VJc1EwRkJUeXhGUVVsNFJpeEhRVVJCTDBZc1JVRkJTMHNzUTBGQlF5eEZRVUZKYlVVc1JVRkJVMjVGTEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUTNwQ0xFOUJRVTlXTEVkQlFWY3NVMEZEYkVJc1QwRkJUMEVzUlVGRFdHdEpMRVZCUVZGc1NTeERRVU5hTEVOQlEwb3NVVUZEUVN4RFFVVkpMRWxCUVVsblNTeEZRVUZQYUVVc1JVRkJTeXhqUVVGblFpeEZRVWRvUXl4SlFVWkpiVVVzUlVGQlR5eEhRVU5RUVN4SlFVTkRla2dzUlVGQlNUQklMRVZCUVU4eFNDeEhRVUZMZVVnc1JVRkJUWHBJTEVsQlEyNUNiVVVzUlVGQlUyNUZMRU5CUVVNc1JVRkJSU3hMUVVGTExGRkJRVlZ6U0N4SlFVTjJRbTVFTEVWQlFWTnVSU3hEUVVGRExFVkJRVVVzUzBGQlN5eFRRVUZYTEVWQlF6VkNMRXRCUVVzc1UwRkJVMEVzUlVGQlIzTkVMRVZCUVVzc1dVRkJXU3hIUVVkc1F6TkVMRVZCUVVzc1QwRkJUMHNzUlVGQlJ5eERRVUZETEVWQlEyaENiVVVzUlVGQlV5eFBRVUZQYmtVc1JVRkJSeXhEUVVGRExFbEJTVFZDYlVVc1JVRkJVeXhUUVVGWExFZEJRVXRCTEVWQlFWTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1UwRkJWeXhIUVVOeVJDOURMRWRCUVUwc1IwRkJUeXhsUVVGbExFTkJRM0JETEUxQmRrTkJMRTFCUVU5d1FpeEhRVUZMTUVnc1JVRkJUekZJTEVsQlFVc3NRMEZEY0VJc1NVRkJTVllzUlVGQlV6WkZMRVZCUVZOdVJTeERRVUZETEVWQlFVVXNVMEZCVTJoQ0xFVkJRVXRETEVWQlFVMWhMRVZCUVdGNVNDeEZRVUZWYWtVc1JVRkJUV3RGTEVWQlFVODVRaXhEUVVGUExFVkJRM2hHTEVkQlFVa3NUMEZCVDNCSExFZEJRVmNzVTBGRGJFSXNUMEZCVDBFc1JVRkRXR3RKTEVWQlFWRnNTU3hEUVVOYUxFTkJiME5LTEU5QlFVOXJTU3hEUVVOWUxFVkJSVUZxU1N4RlFVRmpMRlZCUVZVc1UwRkJWeXhUUVVGVlV5eEZRVUZIYTBrc1JVRkJVeXhEUVVOeVJDeEpRVUZKTDBRc1JVRkJWeXhMUVVGTExGTkJRM0JDTEU5QlFVbHVSU3hIUVVGTExFZEJRVXRCTEVWQlFVa3NSVUZCU1cxRkxFVkJRVk1zVVVGRGRrSkJMRVZCUVZOdVJTeERRVUZETEVWQlFVVXNTMEZCU3l4UFFVRlRiVVVzUlVGQlUyNUZMRVZCUVVrc1EwRkJReXhGUVVGRkxFdEJRVXNzVVVGQlZXdEpMRWRCUTNKRUwwUXNSVUZCVTI1RkxFTkJRVU1zUlVGQlJTeFhRVU5hYlVVc1JVRkJVMjVGTEVOQlFVTXNSVUZCU1cxRkxFVkJRVk51UlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hIUVVOd1EyMUZMRVZCUVZOdVJTeERRVUZETEVWQlFVVXNZVUZCWVcxRkxFVkJRVk51UlN4RlFVRkpMRU5CUVVNc1JVRkJSMnRKTEVOQlFVOHNSVUZEYWtRdlJDeEZRVUZUTEU5QlFVOXVSU3hGUVVGSkxFVkJRVWNzUTBGQlF5eEZRVU40UWl4TFFVRkxMRXRCUVVzc1QwRkJUMEVzUlVGQlNTeEZRVUZITEVOQlFVTXNSVUZEZWtJc1MwRkJTeXhMUVVGTFFTeERRVUZETEVWQlFVbHRSU3hGUVVGVGJrVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1JVRkRNMElzU1VGSFVpeEZRVU5ZTEVWQlRVRlVMRVZCUVdNc1ZVRkJWU3hoUVVGbExGTkJRVlUyU0N4RlFVRkxOVWtzUlVGQllTeERRVVV2UkN4SlFVRkpNa29zUlVGQldTeExRVUZMTEV0QlFVc3NUMEZETVVJc1MwRkJTeXhMUVVGTExFdEJRVXNzVFVGQlRTeExRVUZMTEV0QlFVMW1MRVZCUVVrc1NVRkJTU3hGUVVONFF5eEpRVUZKWjBJc1JVRkJZMmhDTEVWQlFVa3NVMEZGZEVJc1IwRkVRU3hMUVVGTExGTkJRVk1zUzBGQlN5eE5RVUZOTEV0QlFVc3NVMEZCVldkQ0xFTkJRVmNzUlVGREwwTm9RaXhGUVVGSkxGVkJRVmtzUTBGQlF5eExRVUZMTEZOQlIzUkNMRkZCUVZOd1NDeEZRVUZKTEVWQlFVZEJMRVZCUVVsdlNTeEZRVUZaTEU5QlFWRndTU3hKUVVOd1EyOUpMRVZCUVZsd1NTeERRVUZETEVWQlFVVXNVMEZCVnl4SFFVdHNReXhMUVVGTExGTkJRVk50U1N4RlFVRlpMRVZCUVVjelNpeERRVUZYTEVOQlF6VkRMRVZCUTA5bExFTkJRMWdzUlVGQlJUSkhMRVZCUVVzc1JVRlpTRVVzUjBGQldTeERRVUZETEVWQlEySnVSeXhIUVVGVExFTkJRVVVzVDBGQlVTeEZRVUZMTEVWQlFVZFVMRWRCUVdNc1ZVRkJXU3hEUVVGRkxFOUJRVTlUTEVWQlFWRXNSVUZEZEVWMVJpeEhRVUZSTEVOQlFVVXNUVUZCVHl4RlFVRkxMRVZCUTNSQ0wwY3NSMEZCWVN4VlFVRlpMRU5CUTNwQ0xFbEJRVWtzUlVGQlNTeEpRVUZKZVVnc1IwRkRXaXhUUVVGRkxGTkJRVmNzUjBGRFRpeERRVU5ZTEVWQlFVY3NSVUZEUXpWRkxFZEJRV0VzUTBGQlF5eEZRVU5rYWtJc1IwRkJZeXhEUVVGRExFVkJRMjVDTEZOQlFWTmxMRWRCUVUxcFNDeEZRVUZOTEVOQlJXcENMRkZCUkVsRExFVkJRVThzUTBGQlF5eEZRVU5JUXl4RlFVRkxMRVZCUVVkQkxFVkJRVXNzVlVGQlZTeFBRVUZSUVN4SlFVTndRMFFzUlVGQlMwTXNSVUZCU3l4RFFVRkRMRVZCUVVrc1ZVRkJWVUVzUTBGQlJTeEZRVVV2UWl4SFFVRkpMRU5CUVVOR0xFVkJRMFFzVFVGQlFVTXNSVUZCU3l4UlFVRlJMRk5CUVZNc1JVRkRhRUlzU1VGQlNTeE5RVUZOUVN4RlFVRkxMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJSWFJETEVOQlJVRTNTeXhIUVVGUkxGZEJRV01zVlVGQldTeERRVUZGTEVsQlFVbHhTU3hGUVVGSkxFbEJRVWw2U0N4SFFVRlRMRTlCUVVGNVNDeEZRVUZGTEU5QlFVOHNSVUZCVlVFc1EwRkJSeXhGUVVGSExFbERkSEJFYkVZc1NVRkJUVEJETEVkQlFVNHNZMEZCZVVJc1MwRkJUU3hEUVVGRExFVkJTMjVDUXl4SFFVRk9MR05CUVcxRFJDeEZRVUZYTEVOQlEyNUVMRmxCUVZsRkxFVkJRVkVzUTBGRGJFSXNUVUZCVFN4eFFrRkJjVUpCTEVWQlFVOHNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkRha1FzUTBGRFJpeEZRVXRoUXl4SFFVRk9MR05CUVcxRFNDeEZRVUZYTEVOQlEyNUVMRmxCUVZsRkxFVkJRVkVzUTBGRGJFSXNUVUZCVFN4eFFrRkJjVUpCTEVWQlFVOHNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkRha1FzUTBGRFJpeEZRVXRoUlN4SFFVRk9MR05CUVcxRFNpeEZRVUZYTEVOQlEyNUVMRmxCUVZsRkxFVkJRVkVzUTBGRGJFSXNUVUZCVFN4eFFrRkJjVUpCTEVWQlFVOHNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkRha1FzUTBGRFJpeEZRVXRoUnl4SFFVRk9MR05CUVRSRFRDeEZRVUZYTEVOQlFVTXNSVUZMYkVSTkxFZEJRVTRzWTBGQkswSk9MRVZCUVZjc1EwRkRMME1zV1VGQldVOHNSVUZCVFN4RFFVTm9RaXhOUVVGTkxHZENRVUZuUWtFc1EwRkJTU3hGUVVGRkxFTkJRemxDTEVOQlEwWXNSVUZMWVVNc1IwRkJUaXhqUVVGdFExSXNSVUZCVnl4RFFVRkRMRVZCUzNwRFV5eEhRVUZPTEdOQlFXdERWQ3hGUVVGWExFTkJRMnhFTEdGQlFXTXNRMEZEV2l4TlFVRk5MREpDUVVFeVFpeERRVU51UXl4RFFVTkdMRVZEZUVSQkxFbEJRVTFWTEVWQlFVa3NWVUZEVWtNc1IwRkJTU3hSUVVOS1F5eEhRVUZKTEU5QlJVOURMRWRCUVdFc1EwRkRlRUlzUzBGQlRVZ3NSVUZEVGl4TlFVRlBRU3hGUVVOUUxFbEJRVXRCTEVOQlExQXNSVUZGWVVrc1IwRkJWeXhEUVVOMFFpeExRVUZOU2l4RlFVTk9MRTFCUVU5RExFZEJRMUFzU1VGQlMwUXNRMEZEVUN4RlFVVmhTeXhIUVVGM1FpeERRVU51UXl4TFFVRk5UQ3hGUVVOT0xFMUJRVTlETEVkQlExQXNTVUZCUzBRc1JVRkRUQ3hSUVVGVFF5eEZRVU5ZTEVWQlJXRkxMRWRCUVZrc1EwRkRka0lzUzBGQlRVNHNSVUZEVGl4TlFVRlBSU3hIUVVOUUxFbEJRVXRHTEVOQlExQXNSVUZGWVU4c1IwRkJXU3hEUVVOMlFpeExRVUZOVUN4RlFVTk9MRTFCUVU5RkxFZEJRMUFzU1VGQlMwWXNSVUZEVEN4UlFVRlRSU3hGUVVOWUxFVkJSV0ZOTEVkQlFXTXNRMEZEZWtJc1MwRkJUVklzUlVGRFRpeFBRVUZSUVN4RFFVTldMRVZCUldGVExFZEJRVzlDTEVOQlF5OUNMRXRCUVUxVUxFVkJRMDRzVDBGQlVVRXNSVUZEVWl4UFFVRlJRU3hEUVVOV0xFVkJSV0ZWTEVkQlFYbENMRU5CUTNCRExFdEJRVTFXTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhQUVVGUlFTeEZRVU5TTEdGQlFXTkRMRVZCUTJoQ0xFVkJSV0ZWTEVkQlFYZENMRU5CUTI1RExFdEJRVTFZTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhQUVVGUlFTeEZRVU5TTEdGQlFXTkZMRVZCUTJoQ0xFVkJSV0ZWTEVkQlFXbENMRU5CUXpWQ0xFdEJRVTFhTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhWUVVGWExFdEJRMklzUlVGRllXRXNSMEZCZFVJc1EwRkRiRU1zUzBGQlRXSXNSVUZEVGl4UFFVRlJRU3hGUVVOU0xFOUJRVkZCTEVWQlExSXNWVUZCVnl4TFFVTmlMRVZCUldGakxFZEJRVFJDTEVOQlEzWkRMRXRCUVUxa0xFVkJRMDRzVDBGQlVVRXNSVUZEVWl4UFFVRlJRU3hGUVVOU0xGVkJRVmNzVFVGRFdDeGhRVUZqUXl4RlFVTm9RaXhGUVVWaFl5eEhRVUV5UWl4RFFVTjBReXhMUVVGTlppeEZRVU5PTEU5QlFWRkJMRVZCUTFJc1QwRkJVVUVzUlVGRFVpeFZRVUZYTEUxQlExZ3NZVUZCWTBVc1JVRkRhRUlzUlVGRllXTXNSMEZCYVVJc1EwRkROVUlzUzBGQlRXaENMRVZCUTA0c1RVRkJUMEVzUlVGRFVDeEpRVUZMUVN4RlFVTk1MRXRCUVUxQkxFVkJRMDRzVDBGQlVVRXNRMEZEVml4RlFVVmhhVUlzUjBGQk9FSXNRMEZEZWtNc1MwRkJUV3BDTEVWQlEwNHNUVUZCVDBFc1JVRkRVQ3hKUVVGTFFTeEZRVU5NTEV0QlFVMUJMRVZCUTA0c1QwRkJVVUVzUlVGRFVpeFBRVUZSUVN4RFFVTldMRVZCUldGclFpeEhRVUZsTEVOQlF6RkNMRXRCUVUxc1FpeEZRVU5PTEUxQlFVOURMRWRCUTFBc1NVRkJTMFFzUlVGRFRDeExRVUZOUVN4RlFVTk9MRTlCUVZGQkxFTkJRMVlzUlVGRllXMUNMRWRCUVRSQ0xFTkJRM1pETEV0QlFVMXVRaXhGUVVOT0xFMUJRVTlETEVkQlExQXNTVUZCUzBRc1JVRkRUQ3hMUVVGTlFTeEZRVU5PTEU5QlFWRkJMRVZCUTFJc1QwRkJVVUVzUTBGRFZpeEZRVVZoYjBJc1IwRkJORUlzUTBGRGRrTXNTMEZCVFhCQ0xFVkJRMDRzVFVGQlQwTXNSMEZEVUN4SlFVRkxSQ3hGUVVOTUxGRkJRVk5ETEVkQlExUXNTMEZCVFVRc1JVRkRUaXhQUVVGUlFTeERRVU5XTEVWQlJXRnhRaXhIUVVGblFpeERRVU16UWl4TFFVRk5ja0lzUlVGRFRpeE5RVUZQUlN4SFFVTlFMRWxCUVV0R0xFVkJRMHdzUzBGQlRVRXNSVUZEVGl4UFFVRlJRU3hGUVVOU0xHRkJRV05ETEVWQlEyaENMRVZCUldGeFFpeEhRVUUyUWl4RFFVTjRReXhMUVVGTmRFSXNSVUZEVGl4TlFVRlBSU3hIUVVOUUxFbEJRVXRHTEVWQlEwd3NTMEZCVFVFc1JVRkRUaXhQUVVGUlFTeEZRVU5TTEU5QlFWRkJMRVZCUTFJc1lVRkJZME1zUlVGRGFFSXNSVUZGWVhOQ0xFZEJRV2RDTEVOQlF6TkNMRXRCUVUxMlFpeEZRVU5PTEUxQlFVOUZMRWRCUTFBc1NVRkJTMFlzUlVGRFRDeFJRVUZUUlN4SFFVTlVMRXRCUVUxR0xFVkJRMDRzVDBGQlVVRXNSVUZEVWl4aFFVRmpSU3hGUVVOb1FpeEZRVVZoYzBJc1IwRkJOa0lzUTBGRGVFTXNTMEZCVFhoQ0xFVkJRMDRzVFVGQlQwVXNSMEZEVUN4SlFVRkxSaXhGUVVOTUxGRkJRVk5GTEVkQlExUXNTMEZCVFVZc1JVRkRUaXhQUVVGUlFTeEZRVU5TTEU5QlFWRkJMRVZCUTFJc1lVRkJZMFVzUlVGRGFFSXNSVU5xUzA4c1UwRkJVM1ZDTEVWQlFWbERMRVZCUVVjc1EwRkROMElzVDBGQlR5eFBRVUZQUVN4SFFVRk5MRmRCUTNSQ0xFTkJSVThzVTBGQlUwTXNSMEZCVTBRc1JVRkJSeXhEUVVNeFFpeFBRVUZQTEU5QlFVOUJMRWRCUVUwc1VVRkRkRUlzUTBGRlR5eFRRVUZUUlN4SFFVRlZSaXhGUVVGSExFTkJRek5DTEU5QlFVOHNUMEZCVDBFc1IwRkJUU3hWUVVGWlFTeEZRVUZKTEVsQlFVMHNRMEZETlVNc1EwRkZUeXhUUVVGVFJ5eEhRVUZUU0N4RlFVRkhMRU5CUXpGQ0xFOUJRVThzVDBGQlQwRXNSMEZCVFN4UlFVTjBRaXhEUVVWUExGTkJRVk5KTEVkQlFVOUtMRVZCUVVjc1EwRkRlRUlzVDBGQlR5eFBRVUZQTEZWQlFWVXNVMEZCVXl4TFFVRkxRU3hEUVVGRExFbEJRVTBzWlVGREwwTXNRMEZKVHl4VFFVRlRTeXhKUVVGakxFTkJRelZDTEVkQlFVa3NRMEZEUml4UFFVRlBMRTlCUVU4c1RVRkJVeXhoUVVGbExFTkJRVU1zUTBGQlF5eExRVUZMTEd0Q1FVTXZReXhQUVVGVFF5eEZRVUZITEVOQlExWXNUVUZCVHl4RlFVTlVMRU5CUTBZc1EwRkpUeXhUUVVGVFF5eEhRVUZYUXl4RlFVRlBMRU5CUTJoRExFOUJRVThzVFVGQlRTeFJRVUZSUVN4RFFVRkxMRVZCUVVsQkxFVkJRVkVzUTBGQlEwRXNRMEZCU3l4RFFVTTVReXhEUVVWUExGTkJRVk5ETEVkQlFVOURMRVZCUVV0RExFVkJRVWxETEVWQlFWTXNRMEZEZGtNc1IwRkJTVVlzUlVGQlNTeFRRVUZYTEVWQlIyNUNMRTlCUVU5QkxFVkJRVWtzVDBGQlR5eERRVUZEUnl4RlFVRk5ReXhKUVVGVExFTkJRMmhETEVsQlFVMURMRVZCUVU4c1EwRkJRMG9zUlVGQlIwY3NRMEZCU1N4RlFVRkhRU3hEUVVGSkxFVkJRelZDTEU5QlFVdEVMRWRCUlUxRUxFVkJRVkZETEVWQlFVc3NRMEZCUXl4RlFVRkhSU3hGUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZOUml4RlFVRkxMRU5CUVVNc1JVRkRkRU5CTEVWQlJrRkZMRU5CVFZnc1JVRkJSeXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVU5hTEVOQlJVOHNVMEZCVTBNc1IwRkJTME1zUlVGQlMwTXNSVUZCVFN4RFFVTTVRaXhQUVVGUFFTeEZRVUZMTEU5QlFVOHNRMEZCUTBNc1JVRkJSME1zUzBGRGNrSkVMRVZCUVVWRExFTkJRVU1zUlVGQlNVZ3NSVUZCU1Vjc1EwRkJReXhGUVVOTVJDeEhRVU5PTEVOQlFVTXNRMEZCUXl4RFFVTlFMRU5CUlU4c1UwRkJVMFVzUjBGQlpVb3NSVUZCUzBzc1JVRkJUU3hEUVVONFF5eFBRVUZQTEU5QlFVOHNWVUZCVlN4bFFVRmxMRXRCUVV0TUxFVkJRVXRMTEVOQlFVa3NRMEZEZGtRc1EwRkpUeXhUUVVGVFF5eEhRVUZsWml4RlFVRlBaMElzUlVGQlVVTXNSVUZCU3l4RFFVTnFSQ3hQUVVGUGRrSXNSMEZCVlUwc1EwRkJTeXhIUVVGTFFTeEhRVUZUWjBJc1IwRkJWV2hDTEVkQlFWTnBRaXhEUVVONlJDeERRVWRQTEZOQlFWTkRMRWRCUVZORExFVkJRVWRETEVWQlFVY3NRMEZETjBJc1QwRkJUMFFzUlVGQlNVTXNSVUZCU1N4TFFVRkxMRTFCUVUxRUxFVkJRVWxETEVOQlFVTXNRMEZEYWtNc1EwRkZUeXhUUVVGVFF5eEhRVUZUUXl4RlFVRlBSaXhGUVVGSkxFVkJRVWNzUTBGRGNrTXNTVUZCVFVjc1JVRkJVVVFzUlVGQlVTeEZRVU5zUWtVc1JVRkRTaXhQUVVGSlJDeEZRVU5HUXl4RlFVRlRMRXRCUVU4c1IwRkJTeXhEUVVGRFJpeEhRVUZQTEZOQlFWTkdMRVZCUVVjc1IwRkJSeXhGUVVVMVEwa3NSMEZCVlN4SFFVRkxSaXhIUVVGUExGTkJRVk5HTEVWQlFVY3NSMEZCUnl4RlFVVm9RMGtzUTBGRFZDeERRVVZQTEZOQlFWTkRMRWRCUVdGRExFVkJRVkVzUTBGRGJrTXNSMEZCU1N4RlFVRkJia01zUlVGQldXMURMRU5CUVUwc1IwRkJTMEVzU1VGQlZ5eE5RVUZSUVN4SlFVRlhMRWxCUjNaRUxFOUJRVThzVTBGQlUwRXNSVUZCVVN4RlFVRkZMRU5CUlRsQ0xFTkJSVThzVTBGQlUwTXNSMEZCWTBRc1JVRkJVU3hEUVVOd1F5eEhRVUZKTEVWQlFVRnVReXhGUVVGWmJVTXNRMEZCVFN4SFFVRkxRU3hKUVVGWExFMUJRVkZCTEVsQlFWY3NTVUZIZGtRc1QwRkJUeXhYUVVGWFFTeERRVUZOTEVOQlJUVkNMRU5CUlU4c1UwRkJVMFVzUjBGQldVTXNSVUZCVlN4RFFVVndReXhIUVVGSkxFVkJRVUYwUXl4RlFVRlpjME1zUTBGQlVTeEhRVUZMUVN4SlFVRmhMRTFCUVZGQkxFbEJRV0VzU1VGRmVFUXNRMEZEVEN4SlFVRk5ReXhGUVVGSkxGZEJRVmNzUzBGQlQwUXNRMEZCVVN4RlFVRkpMRWxCUTNoRExFOUJRVThzUzBGQlN5eE5RVUZOUXl4RFFVRkRMRU5CUTNKQ0xFTkJRMFlzUTBGRlR5eFRRVUZUUXl4SFFVRlJReXhGUVVGUlF5eEZRVUZSUXl4RlFVRmhMRWRCUVU4c1EwRkRNVVFzU1VGQlRVTXNSVUZCVXl4SlFVRk5SaXhGUVVWeVFpeFBRVVJaUXl4RlFVRmhMRXRCUVVzc1RVRkJVU3hMUVVGTExFOUJRelZDUml4RlFVRlRSeXhEUVVGTkxFVkJRVWxCTEVOQlEzQkRMRU5CU1U4c1UwRkJVME1zUjBGQlYwTXNSVUZCVFN4RFFVTXZRaXhQUVVGUFFTeEZRVUZQTEVsQlFVMHNTVUZCVFVFc1JVRkJUeXhOUVVGUkxFZEJRVXRCTEVWQlFVOHNUVUZCVVN4RlFVTXZSQ3hEUVVWUExGTkJRVk5ETEVkQlFWZEVMRVZCUVUwc1EwRkRMMElzVDBGQlQwUXNSMEZCVjBNc1EwRkJTU3hGUVVGSkxFbEJRVTBzUjBGRGJFTXNRMEZGVHl4VFFVRlRSU3hIUVVGWlJpeEZRVUZOUnl4RlFVRlBMRU5CUTNaRExFbEJRVTFETEVWQlFWZDJRaXhIUVVGVGMwSXNSVUZCVVN4RlFVRkhMRVZCUVVVc1JVRkJTU3hGUVVONlEwVXNSVUZCVlV3c1IwRkJVVWNzUlVGQlVVTXNSMEZCV1N4SFFVVjRReXhQUVVGSlFTeEpRVUZoTEVWQlExSk1MRWRCUVZkTkxFTkJRVThzUlVGQlNTeEhRVUZMTEVkQlJUTkNMRU5CUVVNc1IwRkJTU3hMUVVGTkxFZEJRVWtzUjBGQlNTeEhRVUZKTEVkQlFVa3NSMEZCU1N4SFFVRkpMRWRCUVVrc1IwRkJTU3hIUVVGSkxFVkJRVVVzUlVGQlJVUXNSVUZCVnl4RFFVRkRMRU5CUlRGRkxFTkJSMDhzVTBGQlUwVXNSMEZCWVd4RExFVkJRVXNzUTBGRGFFTXNTVUZCU1cxRExFVkJRVWtzUzBGQlN5eEpRVU5ZYmtNc1JVRkJTU3hMUVVOS1FTeEZRVUZKTEUxQlFWRXNSVUZEV2tFc1JVRkJTU3hKUVVOS1FTeEZRVUZKTEV0QlEwcEJMRVZCUVVrc1QwRkRTa0VzUlVGQlNTeFBRVU5LUVN4RlFVRkpMRmRCUTA0c1JVRkhRU3hQUVVGSlFTeEZRVUZKTEV0QlFVOHNTMEZCVDBFc1JVRkJTU3hOUVVGUkxFbEJRMmhEYlVNc1JVRkJTU3hKUVVGSkxFdEJRVXRCTEVOQlFVTXNSVUZEWkVFc1JVRkJSU3hsUVVGbFFTeEZRVUZGTEdWQlFXVXNSVUZCU1N4SlFVRkpMRWRCUlhKRExFTkJRVU5CTEVOQlExWXNRMEZGVHl4VFFVRlRReXhIUVVGblFrTXNSVUZCVlN4RFFVTjRReXhKUVVGTlF5eEhRVU5FUkN4RlFVTkRMRXRCUVVzc1RVRkJUVUVzUlVGQlZ5eERRVUZETEVWQlEzWkNMRXRCUVVzc1RVRkJUVUVzUlVGQlZ5eEhRVUZITEVWQlEzcENMRXRCUVVzc1RVRkJUVUVzUlVGQlZ5eEhRVUZITEVkQlF6TkNMRVZCUTBaRkxFVkJRVTlHTEVWQlFWY3NSVUZEYkVKSExFZEJRVTFFTEVWQlFVOHNTMEZCU3l4TlFVRk5RU3hGUVVGUExFTkJRVU1zUlVGQlNTeExRVUZMTEUxQlFVMUJMRVZCUVU4c1IwRkJSeXhGUVVGSkxFdEJRVXNzVFVGQlRVRXNSVUZCVHl4SFFVRkhMRWRCUVVzc1JVRkRla1lzVDBGQlQwUXNTVUZCVHl4SFFVRkxSU3hKUVVGUExFVkJRVWtzUjBGQlN5eEZRVU55UXl4RFFVVlBMRk5CUVZORExFZEJRV1ZpTEVWQlFVMHNRMEZEYmtNc1QwRkJTVUVzUlVGQlR5eEhRVU5HUVN4RlFVTkxRU3hGUVVGUExFZEJRVXNzUzBGQlQwRXNSVUZCVHl4SlFVRlBRU3hEUVVOcVJDeERRVWxQTEZOQlFWTmpMRWRCUVdORExFVkJRVWxETEVWQlFXTkRMRVZCUVZGRExFVkJRVmNzUzBGQlRTeERRVU4yUlN4SlFVRk5ReXhGUVVGUExFbEJRVWtzUzBGQlMwb3NRMEZCUlN4RlFVTjBRa3NzUlVGQlZ5eERRVU5VTEZWQlFWY3NUVUZEV0N4TFFVRk5MRlZCUTA0c1RVRkJUeXhWUVVOUUxFbEJRVXNzVlVGRFRDeExRVUZOTEZWQlEwNHNUMEZCVVN4VFFVTldMRVZCUlVWR0xFbEJRMFpGTEVWQlFWTXNVMEZCVjBZc1IwRkhkRUlzU1VGQlRVY3NSVUZCVjBNc1JVRkJRU3hEUVVGRkxHRkJRV05PTEVkQlFXbENTU3hIUVVVMVEwY3NSVUZCVXl4SlFVRkpMRXRCUVVzc1pVRkJaVTRzUlVGQlVVa3NRMEZCVVN4RlFVTndSQ3hqUVVGalJpeERRVUZKTEVWQlEyeENMRXRCUVUxTExFZEJRVTFCTEVWQlFVVXNTMEZCU3l4WlFVRlpMRWxCUVUwc1kwRkJZeXhGUVVOMFJDeFBRVUZQUkN4RlFVRlRRU3hGUVVGUExFMUJRVkVzU1VGRGFrTXNRMEZIVHl4VFFVRlRSU3hIUVVGaFF5eEZRVUZaUXl4RlFVRmpMRU5CUTNKRUxFbEJRVWxETEVWQlFWVXNVMEZCVTBZc1JVRkJXU3hGUVVGRkxFVkJSMnBETEU5QlFVOHNUVUZCVFVVc1EwRkJUeXhKUVVOMFFrRXNSVUZCVlN4SFFVZGFMRWxCUVUxRExFVkJRVk1zVTBGQlUwWXNSVUZCWXl4RlFVRkZMRWRCUVVzc1JVRkRNME5ITEVWQlFXVkdMRVZCUVZVc1IwRkJTeXhQUVVGUExFZEJRVWRCTEVWQlFWTXNSVUZCUlN4RlFVRkpMRU5CUVVORExFVkJRVk5CTEVWQlEyNUZMRTlCUVU5RUxFVkJRVlVzUjBGQlMwVXNRMEZEZUVJc1EwRkpUeXhUUVVGVFF5eEhRVUZUUXl4RlFVRlBMRU5CUXpsQ0xFbEJRVTFETEVWQlFXVXNUMEZCVDBRc1EwRkJTeXhGUVVOcVF5eEhRVUZKTEU5QlFVOUJMRWRCUVZVc1YwRkJZVUVzU1VGQlZTeEpRVUZOTEU5QlFVOHNUVUZCVFVNc1EwRkJXU3hGUVVONlJTeE5RVUZOTEVsQlFVbERMRWRCUVhGQ0xITkNRVUZ6UWtZc1EwRkJTeXhGUVVGRkxFVkJRemxFTEU5QlFVOURMRU5CUTFRc1EwRkZUeXhUUVVGVFJTeEhRVUZuUWk5RUxFVkJRVXRuUlN4RlFVRlpMRU5CUXk5RExFbEJRVTFETEVWQlFXRXNRMEZCUXl4RlFVTndRaXhSUVVGWFF5eExRVUZMYkVVc1JVRkRaQ3hIUVVGSlNTeEhRVUZsU2l4RlFVRkxhMFVzUTBGQlF5eEZRVUZITEVOQlF6RkNMRWxCUVUxRExFVkJRVWx1UlN4RlFVRkphMFVzUTBGQlF5eEZRVU5tTEVkQlFYVkNReXhIUVVGTkxFdEJRVTBzVTBGRGJrTkdMRVZCUVZkRUxFVkJRVmRGTEVOQlFVTXNRMEZCUXl4RlFVRkpVQ3hIUVVGVFVTeERRVUZETEVOQlEzaERMRU5CUlVZc1QwRkJUMFlzUTBGRFZDeERRVVZQTEZOQlFWTkhMRWRCUVdGRExFVkJRVkZETEVWQlFWRXNRMEZETTBNc1NVRkJUVU1zUlVGQlVTeExRVUZMTEUxQlFVMHNTMEZCU3l4SlFVRkpSaXhGUVVGVExFVkJRVVVzUTBGQlF5eEZRVU0xUTBjc1JVRkJWU3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKU0N4RlFVRlRMRVZCUVVVc1EwRkJReXhGUVVNeFEwa3NSVUZCVDBvc1IwRkJWU3hGUVVGSkxFbEJRVTBzU1VGRk4wSXNUMEZCVVVNc1JVRkJVU3hEUVVOa0xFbEJRVXNzVVVGRFNDeE5RVUZQTEVkQlFVZEhMRU5CUVVrc1IwRkJSemRFTEVkQlFWTXlSQ3hGUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTTBRc1IwRkJVelJFTEVWQlFWTXNRMEZCUXl4RFFVRkRMRWRCUXpkRUxFbEJRVXNzVTBGRFNDeE5RVUZQTEVkQlFVZERMRU5CUVVrc1IwRkJSMFlzUTBGQlN5eEhRVUZIUXl4RlFVRlZMRVZCUVVrc1NVRkJTVUVzUTBGQlR5eEhRVUZMTEVWQlFVVXNSMEZETTBRc1NVRkJTeXhUUVVOSUxFMUJRVThzUjBGQlIwTXNRMEZCU1N4SFFVRkhOMFFzUjBGQlV6SkVMRVZCUVU4c1EwRkJReXhEUVVGRExFZEJRVWN6UkN4SFFVRlRORVFzUlVGQlV5eERRVUZETEVOQlFVTXNSMEZETlVRc1VVRkRSU3hOUVVGTkxFbEJRVWtzVjBGQlZ5eG5Ra0ZCWjBKR0xFTkJRVTBzYzBOQlFYTkRMRU5CUTNKR0xFTkJRMFlzUTBGRlR5eFRRVUZUU1N4SFFVRlhNVVVzUlVGQlN5eERRVU01UWl4UFFVRlBSQ3hIUVVGTFF5eEZRVUZMTEVOQlFVTXNUMEZCVVN4VFFVRlZMRk5CUVZVc1lVRkJZU3hEUVVGRExFTkJRemxFTEVOQlJVOHNTVUZCVFRKRkxFZEJRMWdzSzBWRGNsRkxMRWxCUVUxRExFZEJRV0VzUTBGRGVFSXNWVUZEUVN4WFFVTkJMRkZCUTBFc1VVRkRRU3hOUVVOQkxFOUJRMEVzVDBGRFFTeFRRVU5CTEZsQlEwRXNWVUZEUVN4WFFVTkJMRlZCUTBZc1JVRkZZVU1zUjBGQll5eERRVU42UWl4TlFVTkJMRTFCUTBFc1RVRkRRU3hOUVVOQkxFMUJRMEVzVFVGRFFTeE5RVU5CTEUxQlEwRXNUVUZEUVN4TlFVTkJMRTFCUTBFc1MwRkRSaXhGUVVWaFF5eEhRVUZsTEVOQlFVTXNTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWRCUVVjc1JVRkZhRVlzVTBGQlUwTXNSMEZCVDBNc1JVRkJVU3hEUVVNM1FpeFBRVUZSUVN4RlFVRlJMRU5CUTJRc1NVRkJTeXhUUVVOSUxFMUJRVThzUTBGQlF5eEhRVUZIUml4RlFVRlpMRVZCUTNwQ0xFbEJRVXNzVVVGRFNDeE5RVUZQTEVOQlFVTXNSMEZCUjBRc1JVRkJWeXhGUVVONFFpeEpRVUZMTEU5QlEwZ3NUVUZCVHl4RFFVRkRMRWRCUVVkRUxFVkJRVlVzUlVGRGRrSXNTVUZCU3l4VlFVTklMRTFCUVU4c1EwRkJReXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhMUVVGTkxFdEJRVTBzU1VGQlNTeEZRVU4yUlN4SlFVRkxMRlZCUTBnc1RVRkJUeXhEUVVGRExFdEJRVTBzUzBGQlRTeExRVUZOTEV0QlFVMHNTMEZCVFN4TFFVRk5MRXRCUVUwc1MwRkJUU3hMUVVGTkxFdEJRVTBzUzBGQlRTeEpRVUZKTEVWQlEyaEdMRkZCUTBVc1QwRkJUeXhKUVVOWUxFTkJRMFlzUTBGRlR5eEpRVUZOU3l4SFFVRmxMRU5CUXpGQ0xGTkJRMEVzVlVGRFFTeFpRVU5CTEZkQlEwRXNVMEZEUVN4WFFVTkJMRkZCUTBZc1JVRkZZVU1zUjBGQlowSXNRMEZCUXl4TlFVRlBMRTFCUVU4c1RVRkJUeXhOUVVGUExFMUJRVThzVFVGQlR5eExRVUZMTEVWQlJXaEZReXhIUVVGcFFpeERRVUZETEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFZEJRVWNzUlVGRmVrUXNVMEZCVTBNc1IwRkJVMG9zUlVGQlVTeERRVU12UWl4UFFVRlJRU3hGUVVGUkxFTkJRMlFzU1VGQlN5eFRRVU5JTEUxQlFVOHNRMEZCUXl4SFFVRkhSeXhGUVVGakxFVkJRek5DTEVsQlFVc3NVVUZEU0N4TlFVRlBMRU5CUVVNc1IwRkJSMFFzUlVGQllTeEZRVU14UWl4SlFVRkxMRTlCUTBnc1RVRkJUeXhEUVVGRExFZEJRVWRFTEVWQlFWa3NSVUZEZWtJc1NVRkJTeXhWUVVOSUxFMUJRVThzUTBGQlF5eEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhIUVVGSExFVkJRek5ETEZGQlEwVXNUMEZCVHl4SlFVTllMRU5CUTBZc1EwRkZUeXhKUVVGTlNTeEhRVUZaTEVOQlFVTXNTMEZCVFN4SlFVRkpMRVZCUlhaQ1F5eEhRVUZYTEVOQlFVTXNaMEpCUVdsQ0xHRkJRV0VzUlVGRk1VTkRMRWRCUVZrc1EwRkJReXhMUVVGTkxFbEJRVWtzUlVGRmRrSkRMRWRCUVdFc1EwRkJReXhKUVVGTExFZEJRVWNzUlVGRk5VSXNVMEZCVTBNc1IwRkJTMVFzUlVGQlVTeERRVU16UWl4UFFVRlJRU3hGUVVGUkxFTkJRMlFzU1VGQlN5eFRRVU5JTEUxQlFVOHNRMEZCUXl4SFFVRkhVU3hGUVVGVkxFVkJRM1pDTEVsQlFVc3NVVUZEU0N4TlFVRlBMRU5CUVVNc1IwRkJSMFFzUlVGQlV5eEZRVU4wUWl4SlFVRkxMRTlCUTBnc1RVRkJUeXhEUVVGRExFZEJRVWRFTEVWQlFWRXNSVUZEY2tJc1VVRkRSU3hQUVVGUExFbEJRMWdzUTBGRFJpeERRVVZQTEZOQlFWTkpMRWRCUVc5Q1F5eEZRVUZKTEVOQlEzUkRMRTlCUVU5T0xFZEJRVlZOTEVWQlFVY3NTMEZCVHl4SFFVRkxMRVZCUVVrc1EwRkJReXhEUVVOMlF5eERRVVZQTEZOQlFWTkRMRWRCUVcxQ1JDeEZRVUZKV0N4RlFVRlJMRU5CUXpkRExFOUJRVTlKTEVkQlFWTktMRU5CUVUwc1JVRkJSVmNzUlVGQlJ5eFJRVUZWTEVOQlFVTXNRMEZEZUVNc1EwRkZUeXhUUVVGVFJTeEhRVUZwUWtZc1JVRkJTVmdzUlVGQlVTeERRVU16UXl4UFFVRlBSQ3hIUVVGUFF5eERRVUZOTEVWQlFVVlhMRVZCUVVjc1RVRkJVU3hEUVVGRExFTkJRM0JETEVOQlJVOHNVMEZCVTBjc1IwRkJaVWdzUlVGQlNWZ3NSVUZCVVN4RFFVTjZReXhQUVVGUFV5eEhRVUZMVkN4RFFVRk5MRVZCUVVWWExFVkJRVWNzUzBGQlR5eEZRVUZKTEVWQlFVa3NRMEZCUXl4RFFVTjZReXhEUVVWUExGTkJRVk5KTEVkQlFXMUNReXhGUVVGTlF5eEZRVUZQUXl4RlFVRlZMRk5CUVZWRExFVkJRVk1zUjBGQlR5eERRVU5zUml4SlFVRk5ReXhGUVVGUkxFTkJRMW9zVFVGQlR5eERRVUZETEU5QlFWRXNTMEZCU3l4RlFVTnlRaXhUUVVGVkxFTkJRVU1zVlVGQlZ5eE5RVUZOTEVWQlF6VkNMRTlCUVZFc1EwRkJReXhSUVVGVExFdEJRVXNzUlVGRGRrSXNUVUZCVHl4RFFVRkRMRTlCUVZFc1MwRkJTeXhGUVVOeVFpeExRVUZOTEVOQlFVTXNUVUZCVHl4TlFVRlBMRTFCUVUwc1JVRkRNMElzVFVGQlR5eERRVUZETEU5QlFWRXNTMEZCU3l4RlFVTnlRaXhSUVVGVExFTkJRVU1zVTBGQlZTeE5RVUZOTEVWQlF6RkNMRkZCUVZNc1EwRkJReXhUUVVGVkxFMUJRVTBzUTBGRE5VSXNSVUZGVFVNc1JVRkJWeXhEUVVGRExGRkJRVk1zVlVGQlZ5eFRRVUZUTEVWQlFVVXNVVUZCVVV3c1EwRkJTU3hKUVVGTkxFZEJSVzVGTEVkQlFVbEZMRWxCUVZrc1VVRkJWVWNzUlVGQlZTeERRVU5zUXl4SlFVRk5ReXhGUVVGUlRpeEpRVUZUTEU5QlEzWkNMRTlCUVZGRExFVkJRVThzUTBGRFlpeEpRVUZMTEVkQlEwZ3NUMEZCVDBzc1JVRkJVU3hYUVVGaExGRkJRVkZHTEVWQlFVMUtMRU5CUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGRGNFUXNTVUZCU3l4SFFVTklMRTlCUVU5TkxFVkJRVkVzV1VGQll5eFJRVUZSUml4RlFVRk5TaXhEUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlEzSkVMRWxCUVVzc1IwRkRTQ3hQUVVGUFRTeEZRVUZSTEZGQlFWVXNVVUZCVVVZc1JVRkJUVW9zUTBGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVTnFSQ3hSUVVOR0xFTkJRMFlzUTBGRlFTeEpRVUZOVHl4RlFVRlhMRTlCUVU4c1IwRkJSMDRzUlVGQlR5eEZRVUZGTEVkQlFVdEJMRVZCUVZFc1JVRkRMME5QTEVWQlFWY3NTMEZCU3l4SlFVRkpVQ3hEUVVGTExFVkJRM3BDVVN4RlFVRlhSQ3hKUVVGaExFVkJRM2hDUlN4RlFVRlhUaXhGUVVGTlNpeERRVUZKTEVWQlEzSkNWeXhGUVVGVlVpeEZRVU5PVFN4RlFVTkZReXhGUVVGVExFTkJRVU1zUlVGRFZrRXNSVUZCVXl4RFFVRkRMRWRCUVV0QkxFVkJRVk1zUTBGQlF5eEZRVU16UWtRc1JVRkRRVXdzUlVGQlRVb3NRMEZCU1N4RlFVRkZMRU5CUVVNc1JVRkRZa0VzUlVGRFRpeFBRVUZQVHl4RlFVRlhMRWRCUVVkRExFTkJRVkVzU1VGQlNVY3NRMEZCVHl4UFFVRlRMRTFCUVUxSUxFTkJRVkVzU1VGQlNVY3NRMEZCVHl4RlFVTTFSU3hEUTJwTFFTeFRRVUZUUXl4SFFVRm5Ra01zUlVGQlVVTXNSVUZCWlN4RFFVTTVReXhKUVVGSlF5eEZRVUZKTEVkQlExSXNVVUZCVjBNc1MwRkJVMGdzUlVGRFpFY3NSVUZCVFN4UlFVTlNSQ3hIUVVGTFF5eEZRVUZOTEVsQlJWaEVMRWRCUVV0RUxFVkJRV05GTEVWQlFVMHNSMEZCUnl4RlFVZG9ReXhQUVVGUFJDeERRVU5VTEVOQlJVRXNTVUZCVFVVc1IwRkJlVUlzUTBGRE4wSXNSVUZCVjBNc1IwRkRXQ3hIUVVGWlF5eEhRVU5hTEVsQlFXRkRMRWRCUTJJc1MwRkJZME1zUjBGRFpDeEZRVUZYUXl4SFFVTllMRWRCUVZsRExFZEJRMW9zU1VGQllVTXNSMEZEWWl4TFFVRmpReXhIUVVOa0xFVkJRVmRETEVkQlExZ3NSMEZCV1VNc1IwRkRXaXhKUVVGaFF5eEhRVU5pTEV0QlFXTkRMRWRCUTJRc1JVRkJWME1zUjBGRFdDeEhRVUZaUXl4SFFVTmFMRWxCUVdGRExFZEJRMklzUzBGQlkwTXNSMEZEWkN4RlFVRlhReXhIUVVOWUxFZEJRVmxETEVkQlExb3NTVUZCWVVNc1IwRkRZaXhMUVVGalF5eEZRVU5vUWl4RlFVMXhRa01zUjBGQmNrSXNUVUZCY1VKRExFTkJRVlVzUTBGRE4wSXNUMEZCVHl4UFFVRlBReXhGUVVGUlF5eEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTXZRaXhQUVVGUExFbEJRVWxHTEVWQlFWVkRMRVZCUVZGRExFTkJRVWtzUTBGRGJrTXNRMEZGUVN4UFFVRlBMRmxCUVZsRExFVkJRVXNzUTBGRGRFSXNTVUZCU1VNc1JVRkJWU3hMUVVOYVF5eEZRVUZqTEVkQlEyUkRMRVZCUVZrc1IwRkRVbWhETEVWQlFWTXNRMEZCUXl4RlFVTm9RaXhSUVVGVGFVTXNSVUZCU1N4RlFVRkhRU3hGUVVGSlNpeEZRVUZKTEU5QlFWRkpMRWxCUVVzc1EwRkRia01zU1VGQlRVTXNSVUZCU1V3c1JVRkJTU3hQUVVGUFNTeERRVUZETEVWQlEyeENReXhKUVVGTkxFdEJRMHBJTEVWQlFWa3NUMEZCVXl4SFFVTjJRaTlDTEVWQlFVOHNTMEZCU3l4RFFVRkZMRkZCUVZOblF5eEZRVUZYTEVsQlFVdEVMRU5CUVZrc1EwRkJReXhGUVVWMFJFUXNSVUZCVlN4TFFVTldReXhGUVVGakxFZEJRMlJETEVWQlFWa3NRMEZCUTBFc1IwRkRTa0VzUjBGRlFVVXNTVUZCVFVvc1JVRkVaa01zUjBGQlpVY3NSMEZKV0Vnc1JVRkJXU3hQUVVGVExFZEJRM1pDTDBJc1JVRkJUeXhMUVVGTExFTkJRVVVzVVVGQlV5eEhRVUZQTEVsQlFVc3JRaXhEUVVGWkxFTkJRVU1zUlVGRmJFUkJMRVZCUVdOSExFVkJRMlJLTEVWQlFWVkpMRVZCUldRc1EwRkZRU3hQUVVGSlNDeEZRVUZaTEU5QlFWTXNSMEZEZGtJdlFpeEZRVUZQTEV0QlFVc3NRMEZCUlN4UlFVRlRaME1zUlVGQlZ5eEpRVUZMUkN4RFFVRlpMRU5CUVVNc1JVRkhMME12UWl4RFFVTlVMRU5CUlVFc1QwRkJUeXgxUWtGQmRVSkhMRVZCUVU4c1EwRkRia01zVDBGQlQwTXNSMEZCZFVKRUxFTkJRVXNzUTBGRGNrTXNRMEZGUVN4WlFVRlpkMElzUlVGQlVWRXNSVUZCV1N4RFFVTTVRaXhMUVVGTExFdEJRVTlCTEVWQlExb3NTMEZCU3l4SlFVRk5VaXhGUVVOWUxFdEJRVXNzVlVGQldTeEpRVU51UWl4RFFVVkJMSGRDUVVGM1FsTXNSVUZCU1ZJc1JVRkJUU3hEUVVOb1F5eFBRVUZKTEV0QlFVc3NXVUZCWXl4UFFVTnlRaXhMUVVGTExGVkJRVmtzUzBGQlN5eEpRVUZKTEd0Q1FVRnJRaXhIUVVWdVF5eExRVUZMTEZWQlFWVXNXVUZCV1ZFc1JVRkJTVU1zU1VGQlFTeEhRVUZMTEV0QlFVc3NUVUZCVTFRc1JVRkJUU3hGUVVONlJDeFBRVUZQTEVOQlEyNUNMRU5CUlVFc1pVRkJaVkVzUlVGQlNWSXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkZOVUlzVDBGRVZ5eExRVUZMTEVsQlFVa3NXVUZCV1ZFc1JVRkJTVU1zU1VGQlFTeEhRVUZMTEV0QlFVc3NUVUZCVTFRc1JVRkJUU3hGUVVOdVJDeFBRVUZQTEVOQlEyNUNMRU5CUlVFc2IwSkJRVzlDVVN4RlFVRkpVaXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVVZxUXl4UFFVUlhMRXRCUVVzc1NVRkJTU3haUVVGWlVTeEZRVUZKUXl4SlFVRkJMRWRCUVVzc1MwRkJTeXhOUVVGVFZDeEZRVUZOTEVWQlEyNUVMR05CUVdNc1EwRkRNVUlzUTBGRlFTeG5Ra0ZCWjBKUkxFVkJRVWxTTEVWQlFVOHNRMEZCUXl4RlFVRkhMRU5CUlRkQ0xFOUJSRmNzUzBGQlN5eEpRVUZKTEZsQlFWbFJMRVZCUVVsRExFbEJRVUVzUjBGQlN5eExRVUZMTEUxQlFWTlVMRVZCUVUwc1JVRkRia1FzWjBKQlFXZENMRU5CUXpWQ0xFTkJSVUVzU1VGQlNWVXNSVUZCUjBNc1JVRkJTU3hGUVVGSExFTkJSVm9zUjBGQlNTeExRVUZMTEV0QlFVc3NXVUZEV2l4UFFVRlBReXhIUVVGVFJpeEZRVUZIUXl4RFFVRkRMRVZCUjNSQ0xFbEJRVTFZTEVWQlFVOVRMRVZCUVVFc1IwRkJTeXhMUVVGTExFMUJSWFpDTEU5QlFVbEZMRVZCUVVrc1NVRkRUbGdzUlVGQlN5eE5RVUZSVnl4SFFVZFNMRXRCUVVzc1NVRkJTU3huUWtGQlowSllMRU5CUVVrc1JVRkJSU3hQUVVGUFZTeERRVUZETEVOQlEyaEVMRU5CUlVFc2VVSkJRWGxDUml4RlFVRkpVQ3hGUVVGTExFTkJRMmhETEVsQlFVMVpMRVZCUVdVc1MwRkJTeXhKUVVGSkxGbEJRVmtzU1VGQlRTeExRVU01UTBNc1JVRkJkVUlzUzBGQlN5eEpRVUZKTEdkQ1FVRnJRaXhMUVVGTExFbEJRVWtzYVVKQlFXMUNMRlZCUXpsRlF5eEZRVUZUTEVOQlFVTm1MRVZCUVUxblFpeEpRVUZaTEV0QlFVc3NTVUZCU1N4UlFVRlJVaXhGUVVGSlVpeEZRVUZOWjBJc1EwRkJUeXhGUVVNNVJFTXNSVUZCWjBKcVFpeEhRVU5XVVN4RlFVRkhMR1ZCUVdsQ1FTeEZRVUZITEZOQlFWY3NSMEZCUzFJc1JVRkJTeXhQUVVOMlF5eEpRVWRHVVN4RlFVRkhMRkZCUVZWQkxFVkJRVWNzUzBGQlN5eGhRVUZoUVN4RlFVRkhMRWRCUVVsU0xFVkJRVXNzVFVGQlRTeEZRVUZKTEVkQlJXcEZhMElzUlVGQlZ5eEpRVU5VVEN4RlFVTlpUU3hIUVVGdlFsZ3NRMEZCUlN4RlFVTTVRazhzUlVGQlR5eERRVUZGTEV0QlFVMHNWVUZCVnl4VlFVRlhMRXRCUVUwc1JVRkJSeXhYUVVGWExFVkJReTlFU3l4RlFVRlJMRU5CUVVORExFVkJRVkZETEVsQlEyWlVMRVZCUTFsVkxFZEJRV2xDWml4RlFVRkpZU3hEUVVGTkxFVkJRMjVEVGl4RlFVRlBUeXhGUVVGaExFTkJRVVVzVFVGQlQwUXNRMEZCVHl4RlFVRkpMRU5CUVVVc1RVRkJUMEVzUlVGQlVTeEpRVUZMTEZOQlFWVXNSVUZCUnl4UFFVRlBMRVZCUTNoR1J5eEZRVUZWTEVOQlFVTklMRVZCUVZGRExFbEJRMnBDVkN4RlFVTlpXU3hIUVVGdFFtcENMRVZCUVVsaExFTkJRVTBzUlVGRGNrTk9MRVZCUTBWUExFVkJRV0VzUTBGQlJTeFJRVUZUUkN4RFFVRlBMRVZCUVVrc1EwRkJSU3hSUVVGVFFTeEZRVUZSTEUxQlFVOHNUMEZCVVN4SlFVRkxMRk5CUVZVc1JVRkRjRVlzVTBGRFJpeEZRVU5PU3l4RlFVRmpia1FzUjBGQlZTeERRVU4wUWl4SlFVRk5aME1zUlVGQllWUXNSVUZCVlN4MVFrRkJkVUoyUWl4RFFVRkxMRVZCUTNwRUxFOUJRVWxuUXl4RlFVTkxMRXRCUVVzc2QwSkJRWGRDUXl4RlFVRkpSQ3hEUVVGVkxFVkJSVE5EYUVNc1EwRkZXQ3hGUVVOQmIwUXNSVUZCVDA0c1IwRkRURklzUlVGQmRVSmxMRWRCUVdWd1FpeEZRVUZKWVN4RFFVRk5MRVZCUVVsT0xFVkJRVThzUTBGQlJTeEpRVUZMVFN4RFFVRlBMRVZCUVVjc1MwRkJTeXhGUVVOdVJtaEVMRVZCUVdsQ1JTeEhRVUZWTEVOQlJYcENMRTlCUVZGQkxFVkJRVThzUTBGRllpeEpRVUZMTEVsQlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVscFF5eEZRVUZITEZkQlFWY3NSVUZEYUVNc1NVRkJTeXhKUVVWTUxFbEJRVXNzVFVGRFNDeFBRVUZQTEV0QlFVc3NTVUZCU1VFc1JVRkJSeXhaUVVGaExFTkJRVU1zUlVGRmJrTXNTVUZCU3l4SlFVTklMRTlCUVU4c1MwRkJTeXhKUVVGSlFTeEZRVUZITEUxQlFVMHNSVUZETTBJc1NVRkJTeXhMUVVOSUxFOUJRVThzUzBGQlN5eEpRVUZKUVN4RlFVRkhMRTlCUVZFc1EwRkJReXhGUVVVNVFpeEpRVUZMTEV0QlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVrc1MwRkJTeXhOUVVGTlFTeEZRVUZITEZsQlFXTXNSVUZCUlN4RlFVRkhMRU5CUVVNc1JVRkRjRVFzU1VGQlN5eE5RVU5JTEU5QlFVOHNTMEZCU3l4SlFVRkpMRXRCUVVzc1RVRkJUVUVzUlVGQlJ5eFpRVUZqTEVkQlFVY3NRMEZCUXl4RlFVVnNSQ3hKUVVGTExFbEJRMGdzVDBGQlR5eExRVUZMTEVsQlFVbEJMRVZCUVVjc1RVRkJUU3hGUVVNelFpeEpRVUZMTEV0QlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzVDBGQlVTeERRVUZETEVWQlJUbENMRWxCUVVzc1NVRkRTQ3hQUVVGUExFdEJRVXNzU1VGQlNVRXNSVUZCUnl4TFFVRlBMRXRCUVU4c1JVRkJTU3hIUVVGTFFTeEZRVUZITEV0QlFVOHNSVUZCUlN4RlFVTjRSQ3hKUVVGTExFdEJRMGdzVDBGQlR5eExRVUZMTEVsQlFVbEJMRVZCUVVjc1MwRkJUeXhMUVVGUExFVkJRVWtzUjBGQlMwRXNSVUZCUnl4TFFVRlBMRWRCUVVrc1EwRkJReXhGUVVNelJDeEpRVUZMTEVsQlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzU1VGQlNTeEZRVU42UWl4SlFVRkxMRXRCUTBnc1QwRkJUeXhMUVVGTExFbEJRVWxCTEVWQlFVY3NTMEZCVFN4RFFVRkRMRVZCUlRWQ0xFbEJRVXNzU1VGRlNDeFBRVUZQVXl4RlFVRmhMRU5CUVVVc1QwRkJVU3hUUVVGVkxFOUJRVkVzUzBGQlN5eExRVUZMTEUxQlFVOHNRMEZCUXl4RlFVTndSU3hKUVVGTExFdEJSVWdzVDBGQlQwRXNSVUZCWVN4RFFVRkZMRTlCUVZFc1VVRkJVeXhQUVVGUkxFdEJRVXNzUzBGQlN5eE5RVUZQTEVOQlFVTXNSVUZEYmtVc1NVRkJTeXhOUVVWSUxFOUJRVTlCTEVWQlFXRXNRMEZCUlN4UFFVRlJMRk5CUVZVc1QwRkJVU3hMUVVGTExFdEJRVXNzVFVGQlR5eERRVUZETEVWQlEzQkZMRWxCUVVzc1QwRkZTQ3hQUVVGUFZDeEZRVUZITEV0QlFVc3NWMEZCVjBFc1JVRkJSeXhIUVVGSkxFTkJRVVVzVDBGQlVTeFJRVUZUTEU5QlFWRXNTMEZCU3l4SlFVRkpMRTFCUVU4c1EwRkJReXhGUVVNdlJTeEpRVUZMTEZGQlJVZ3NUMEZCVDBFc1JVRkJSeXhMUVVGTExGZEJRVmRCTEVWQlFVY3NSMEZCU1N4RFFVRkZMRTlCUVZFc1QwRkJVU3hQUVVGUkxFdEJRVXNzU1VGQlNTeE5RVUZQTEVOQlFVTXNSVUZGT1VVc1NVRkJTeXhKUVVWSUxFOUJRVTlCTEVWQlFVY3NVMEZGV2l4SlFVRkxMRWxCUTBnc1QwRkJUMVVzUlVGQlV5eEZRVVZzUWl4SlFVRkxMRWxCUTBnc1QwRkJUMG9zUlVGQmRVSkRMRVZCUVU4c1EwRkJSU3hKUVVGTExGTkJRVlVzUlVGQlJ5eExRVUZMTEVWQlFVa3NTMEZCU3l4SlFVRkpVQ3hGUVVGSExFZEJRVWNzUlVGRGJrWXNTVUZCU3l4TFFVTklMRTlCUVU5TkxFVkJRWFZDUXl4RlFVRlBMRU5CUVVVc1NVRkJTeXhUUVVGVkxFVkJRVWNzUzBGQlN5eEZRVUZKTEV0QlFVc3NTVUZCU1ZBc1JVRkJSeXhKUVVGTExFTkJRVU1zUlVGRmRFWXNTVUZCU3l4SlFVVklMRTlCUVU4c1MwRkJTeXhKUVVGSlFTeEZRVUZITEU5QlFVOHNSVUZETlVJc1NVRkJTeXhOUVVWSUxFOUJRVTluUWl4RlFVRlJMRkZCUVZNc1JVRkJTU3hGUVVNNVFpeEpRVUZMTEU5QlJVZ3NUMEZCVDBFc1JVRkJVU3hQUVVGUkxFVkJRVWtzUlVGRE4wSXNTVUZCU3l4UlFVVklMRTlCUVU5QkxFVkJRVkVzVTBGQlZTeEZRVUZKTEVWQlJTOUNMRWxCUVVzc1NVRkZTQ3hQUVVGUExFdEJRVXNzU1VGQlNXaENMRVZCUVVjc1QwRkJUeXhGUVVNMVFpeEpRVUZMTEUxQlJVZ3NUMEZCVDJkQ0xFVkJRVkVzVVVGQlV5eEZRVUZMTEVWQlF5OUNMRWxCUVVzc1QwRkZTQ3hQUVVGUFFTeEZRVUZSTEU5QlFWRXNSVUZCU3l4RlFVTTVRaXhKUVVGTExGRkJSVWdzVDBGQlQwRXNSVUZCVVN4VFFVRlZMRVZCUVVzc1JVRkZhRU1zU1VGQlN5eEpRVVZJTEU5QlFVOVdMRVZCUTBoRExFVkJRVThzUTBGQlJTeE5RVUZQTEZWQlFWY3NTVUZCU3l4VFFVRlZMRVZCUVVjc1QwRkJUeXhGUVVOd1JDeExRVUZMTEVsQlFVbFFMRVZCUVVjc1MwRkJTeXhGUVVOMlFpeEpRVUZMTEV0QlJVZ3NUMEZCVDAwc1JVRkRTRU1zUlVGQlR5eERRVUZGTEUxQlFVOHNWVUZCVnl4SlFVRkxMRk5CUVZVc1JVRkJSeXhQUVVGUExFVkJRM0JFTEV0QlFVc3NTVUZCU1ZBc1JVRkJSeXhOUVVGUExFTkJRVU1zUlVGRE1VSXNTVUZCU3l4TlFVVklMRTlCUVU5WkxFVkJRVTBzVVVGQlV5eEZRVUZKTEVWQlF6VkNMRWxCUVVzc1QwRkZTQ3hQUVVGUFFTeEZRVUZOTEU5QlFWRXNSVUZCU1N4RlFVTXpRaXhKUVVGTExGRkJSVWdzVDBGQlQwRXNSVUZCVFN4VFFVRlZMRVZCUVVrc1JVRkZOMElzU1VGQlN5eEpRVVZJTEU5QlFVOU9MRVZCUTBoRExFVkJRVThzUTBGQlJTeE5RVUZQTEZOQlFWVXNSVUZCUnl4UFFVRlBMRVZCUTNCRExFdEJRVXNzU1VGQlNWQXNSVUZCUnl4TFFVRkxMRVZCUTNaQ0xFbEJRVXNzUzBGRlNDeFBRVUZQVFN4RlFVTklReXhGUVVGUExFTkJRVVVzVFVGQlR5eFRRVUZWTEVWQlFVY3NUMEZCVHl4RlFVTndReXhMUVVGTExFbEJRVWxRTEVWQlFVY3NUVUZCVHl4RFFVRkRMRVZCUXpGQ0xFbEJRVXNzVFVGRlNDeFBRVUZQV1N4RlFVRk5MRkZCUVZNc1JVRkJTeXhGUVVNM1FpeEpRVUZMTEU5QlJVZ3NUMEZCVDBFc1JVRkJUU3hQUVVGUkxFVkJRVXNzUlVGRE5VSXNTVUZCU3l4UlFVVklMRTlCUVU5QkxFVkJRVTBzVTBGQlZTeEZRVUZMTEVWQlJUbENMRWxCUVVzc1NVRkZTQ3hQUVVGUFRpeEZRVUYxUWtNc1JVRkJUeXhEUVVGRkxFdEJRVTBzVTBGQlZTeEZRVUZITEUxQlFVMHNSVUZCU1N4TFFVRkxMRWxCUVVsUUxFVkJRVWNzU1VGQlNTeEZRVU4wUml4SlFVRkxMRXRCUlVnc1QwRkJUMDBzUlVGRFNFTXNSVUZCVHl4RFFVRkZMRXRCUVUwc1UwRkJWU3hGUVVGSExFMUJRVTBzUlVGRGJFTXNTMEZCU3l4SlFVRkpVQ3hGUVVGSExFdEJRVXNzVTBGQlV5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkhMRU5CUVVNc1JVRkRPVU1zU1VGQlN5eFBRVVZJTEU5QlFVOU5MRVZCUTBoRExFVkJRVThzUTBGQlJTeExRVUZOTEZOQlFWVXNSVUZCUnl4TlFVRk5MRVZCUTJ4RExFdEJRVXNzU1VGQlNWQXNSVUZCUnl4TFFVRk5MRU5CUVVNc1JVRkRla0lzU1VGQlN5eFRRVVZJTEU5QlFVOU5MRVZCUTBoRExFVkJRVThzUTBGQlJTeExRVUZOTEZOQlFWVXNSVUZCUnl4TlFVRk5MRVZCUTJ4RExFdEJRVXNzU1VGQlNWQXNSVUZCUnl4TFFVRk5MRU5CUVVNc1JVRkZla0lzU1VGQlN5eEpRVVZJTEU5QlFVOXRRaXhGUVVGSkxFOUJRVThzUlVGRGNFSXNTVUZCU3l4TFFVVklMRTlCUVU5QkxFVkJRVWtzVFVGQlRTeEZRVU51UWl4SlFVRkxMRkZCUTBnc1QwRkJUMEVzUlVGQlNTeFJRVUZSTEVWQlEzSkNMRWxCUVVzc1MwRkRTQ3hQUVVGUExFdEJRVXNzU1VGQlNXNUNMRVZCUVVjc1UwRkJVeXhUUVVGVExFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVY3NRMEZCUXl4RlFVTnlSQ3hKUVVGTExFOUJRMGdzVDBGQlR5eExRVUZMTEVsQlFVbEJMRVZCUVVjc1UwRkJWU3hEUVVGRExFVkJRMmhETEVsQlFVc3NTVUZEU0N4UFFVRlBMRXRCUVVzc1NVRkJTVUVzUlVGQlJ5eFZRVUZWTEVWQlF5OUNMRWxCUVVzc1MwRkRTQ3hQUVVGUExFdEJRVXNzU1VGQlNVRXNSVUZCUnl4WFFVRlpMRU5CUVVNc1JVRkRiRU1zU1VGQlN5eEpRVU5JTEU5QlFVOHNTMEZCU3l4SlFVRkpRU3hGUVVGSExFOUJRVThzUlVGRE5VSXNTVUZCU3l4TlFVTklMRTlCUVU4c1MwRkJTeXhKUVVGSlFTeEZRVUZITEZGQlFWTXNRMEZCUXl4RlFVTXZRaXhKUVVGTExFbEJSVWdzVDBGQlR5eExRVUZMTEVsQlFVbEJMRVZCUVVjc1QwRkJUeXhGUVVNMVFpeEpRVUZMTEV0QlJVZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzVVVGQlV5eERRVUZETEVWQlF5OUNMRWxCUVVzc1NVRkRTQ3hQUVVGUExFdEJRVXNzU1VGQlNTeExRVUZMTEUxQlFVMUJMRVZCUVVjc1IwRkJTeXhIUVVGSkxFTkJRVU1zUlVGRE1VTXNTVUZCU3l4SlFVTklMRTlCUVU4c1MwRkJTeXhKUVVGSlFTeEZRVUZITEVWQlFVVXNSVUZEZGtJc1VVRkRSU3hQUVVGUGEwSXNSVUZCVjI1RUxFTkJRVXNzUTBGRE0wSXNRMEZEUml4RlFVVkdMRTlCUVU5S0xFZEJRV2RDTWtJc1JVRkJWU3haUVVGWlJ5eERRVUZITEVWQlFVYzFRaXhEUVVGaExFTkJRMnhGTEVOQlJVRXNlVUpCUVhsQ2QwUXNSVUZCU3pWQ0xFVkJRVXNzUTBGRGFrTXNTVUZCVFRaQ0xFVkJRV2RDZGtRc1IwRkJWU3hEUVVNMVFpeFBRVUZSUVN4RlFVRk5MRU5CUVVNc1JVRkJSeXhEUVVOb1FpeEpRVUZMTEVsQlEwZ3NUVUZCVHl4alFVTlVMRWxCUVVzc1NVRkRTQ3hOUVVGUExGTkJRMVFzU1VGQlN5eEpRVU5JTEUxQlFVOHNVMEZEVkN4SlFVRkxMRWxCUTBnc1RVRkJUeXhQUVVOVUxFbEJRVXNzU1VGRFNDeE5RVUZQTEUxQlExUXNTVUZCU3l4SlFVTklMRTFCUVU4c1QwRkRWQ3hKUVVGTExFbEJRMGdzVFVGQlR5eFJRVU5VTEVsQlFVc3NTVUZEU0N4TlFVRlBMRTlCUTFRc1VVRkRSU3hQUVVGUExFbEJRMWdzUTBGRFJpeEZRVU5CUml4RlFVRnBRakJFTEVkQlFWbDRSQ3hIUVVGVkxFTkJRM0pETEVsQlFVMTVSQ3hGUVVGVFJpeEZRVUZoZGtRc1EwRkJTeXhGUVVOcVF5eFBRVUZKZVVRc1JVRkRTeXhMUVVGTExFbEJRVWxFTEVWQlFVOHNTVUZCU1VNc1EwRkJUU3hGUVVGSGVrUXNSVUZCVFN4TlFVRk5MRVZCUlhwRFFTeERRVVZZTEVWQlEwRXdSQ3hGUVVGVGJrTXNSVUZCVlN4WlFVRlpSeXhEUVVGSExFVkJRMnhEYVVNc1JVRkJZVVFzUlVGQlR5eFBRVU5zUWl4RFFVRkRSU3hGUVVGUExFTkJRVVVzVVVGQlFVTXNSVUZCVXl4SlFVRkJReXhEUVVGSkxFbEJRVTlFTEVWQlFWVkVMRVZCUVZGQkxFVkJRVTBzVDBGQlQwVXNRMEZCUnl4RlFVTm9SU3hEUVVGRExFTkJRMGdzUlVGRFFVTXNSVUZCV1ZRc1JVRkJTU3hSUVVGUkxFZEJRVWRMTEVWQlFWY3NTVUZCU1Vvc1EwRkJXU3hGUVVGRkxFOUJRVkZUTEVkQlFVMUJMRU5CUVVNc1EwRkJReXhGUVVNeFJTeFBRVUZQY0VVc1IwRkJaMEk0UkN4RlFVRlJOVVFzUlVGQlkybEZMRU5CUVZNc1EwRkJReXhEUVVONlJDeERRVU5HTEVWRGRsbEJMRWxCUVhGQ1JTeEhRVUZ5UWl4TFFVRTJRaXhEUVVNelFpeFpRVUZaUXl4RlFVRlJReXhGUVVGaExFTkJReTlDTEV0QlFVc3NUMEZCVTBRc1JVRkRaQ3hMUVVGTExGbEJRV05ETEVOQlEzSkNMRU5CUlVFc1YwRkJXU3hEUVVOV0xFOUJRVWtzUzBGQlN5eFpRVU5CTEVkQlFVY3NTMEZCU3l4TlFVRk5MRXRCUVVzc1MwRkJTeXhYUVVGWExFZEJSVzVETEV0QlFVc3NUVUZGYUVJc1EwRkRSaXhGUTFKQkxFbEJRWEZDUXl4SFFVRnlRaXhMUVVFd1FpeERRVTE0UWl4SlFVRkpMRTFCUVU4c1EwRkRWQ3hOUVVGTkxFbEJRVWxETEVWQlExb3NRMEZQUVN4SlFVRkpMRTFCUVU4c1EwRkRWQ3hOUVVGTkxFbEJRVWxCTEVWQlExb3NRMEZGUVN4SlFVRkpMRlZCUVZjc1EwRkRZaXhQUVVGUExFdEJRVXNzU1VGRFpDeERRVTlCTEVsQlFVa3NZVUZCWXl4RFFVTm9RaXhOUVVGTkxFbEJRVWxCTEVWQlExb3NRMEZYUVN4WFFVRlhReXhGUVVGSlF5eEZRVUZOTEVOQlEyNUNMRTFCUVUwc1NVRkJTVVlzUlVGRFdpeERRVlZCTEdGQlFXRkRMRVZCUVVsRkxFVkJRVkVzUTBGRGRrSXNUVUZCVFN4SlFVRkpTQ3hGUVVOYUxFTkJVVUVzVDBGQlQwTXNSVUZCU1N4RFFVTlVMRTFCUVUwc1NVRkJTVVFzUlVGRFdpeERRVkZCTEU5QlFVOUpMRVZCUVZjc1EwRkRhRUlzVFVGQlRTeEpRVUZKU2l4RlFVTmFMRU5CVDBFc1NVRkJTU3hUUVVGVkxFTkJRMW9zVFVGQlRTeEpRVUZKUVN4RlFVTmFMRU5CUTBZc1JVTjJSa0VzU1VGQlNVc3NSMEZCV1N4TFFVMUxReXhIUVVGeVFpeE5RVUZ4UWtNc1ZVRkJiVUpETEVWQlFVc3NRMEZMTTBNc1YwRkJWeXhWUVVGWExFTkJRM0JDTEU5QlFVbElMRXRCUVdNc1QwRkRhRUpCTEVkQlFWa3NTVUZCU1VVc1IwRkZXRVlzUlVGRFZDeERRVWRCTEVsQlFVa3NUVUZCVHl4RFFVTlVMRTFCUVU4c1VVRkRWQ3hEUVVkQkxFbEJRVWtzVFVGQlR5eERRVU5VTEU5QlFVOHNTVUZCU1N4TFFVRkxMR1ZCUVdVc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4UlFVTnlSQ3hEUVVkQkxFbEJRVWtzWVVGQll5eERRVU5vUWl4TlFVRlBMRVZCUTFRc1EwRkhRU3hYUVVGWFNTeEZRVUZKTEVOQlFVVXNUMEZCUVVNc1JVRkJVU3hQUVVGQlF5eERRVUZQTEVWQlFVY3NRMEZEYWtNc1QwRkJUME1zUjBGQlkwZ3NSVUZCU1VNc1JVRkJVVU1zUTBGQlRTeERRVU42UXl4RFFVZEJMR0ZCUVdGR0xFVkJRVWxETEVWQlFWRXNRMEZEZGtJc1QwRkJUMGNzUjBGQllTeExRVUZMTEU5QlFVOUtMRU5CUVVVc1JVRkJSME1zUTBGQlRTeERRVU0zUXl4RFFVZEJMRTlCUVU5RUxFVkJRVWtzUTBGRFZDeE5RVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxRU3hEUVVGRkxFVkJRVVVzYTBKQlFXdENMRU5CUTNwRExFTkJSMEVzVDBGQlQwc3NSVUZCVnl4RFFVTm9RaXhQUVVGUFFTeEZRVUZWTEU5QlFWTXNVVUZETlVJc1EwRkhRU3hKUVVGSkxGTkJRVlVzUTBGRFdpeE5RVUZQTEVWQlExUXNRMEZEUml4RlEzcEVRU3hKUVVGSlF5eEhRVUZYTEVOQlFVTXNSVUZEYUVJc1UwRkJVME1zUjBGQlVVTXNSVUZCVFN4RFFVTnlRaXhQUVVGTFJpeEhRVUZUUlN4RFFVRkpMRWxCUTJoQ1JpeEhRVUZUUlN4RFFVRkpMRVZCUVVrc1NVRkJTU3hMUVVGTExHVkJRV1VzVVVGQlV5eERRVU5vUkN4UFFVRlJMRWRCUTFJc1UwRkJWVUVzUlVGRFZpeExRVUZOTEZWQlEwNHNUVUZCVHl4VlFVTlFMRWxCUVVzc1ZVRkRUQ3hMUVVGTkxGVkJRMDRzVDBGQlVTeFZRVU5TTEU5QlFWRXNWVUZEVWl4SlFVRkxMRTlCUTFBc1EwRkJReXhIUVVWSlJpeEhRVUZUUlN4RFFVRkpMRU5CUTNSQ0xFTkJSVUVzU1VGQlRVTXNSMEZCV1N4RFFVTm9RaXhMUVVGTkxFVkJRMDRzVFVGQlR5eEZRVU5RTEVsQlFVc3NSVUZEVEN4SlFVRkxMRVZCUTB3c1MwRkJUU3hGUVVOT0xFOUJRVkVzUlVGRFVpeFBRVUZSTEVOQlExWXNSVUZGUVN4VFFVRlRReXhIUVVGWlF5eEZRVUZMUXl4RlFVRk5MRU5CUXpsQ0xFbEJRVTFETEVWQlFWbEdMRVZCUVVrc1QwRkJUME1zUTBGQlNTeEZRVUZGTEZGQlFWRXNWVUZCVnl4RlFVRkZMRVZCUTNSRVJTeEZRVUZUTEd0RVFVRnJSQ3hMUVVGTFJDeERRVUZUTEVWQlEzcEZMRU5CUVVNc1EwRkJSVVVzUlVGQlVVTXNSVUZCVFVNc1JVRkJUME1zUlVGQlUwTXNSVUZCVDBNc1JVRkJVME1zUTBGQlR5eEZRVUZKVUN4RlFVTTVSQ3hOUVVGUExFTkJRVU5ITEVWQlFVOUdMRVZCUVZGRExFVkJRVTFGTEVWQlFWTkRMRVZCUVU5RExFVkJRVk5ETEVOQlFVOHNRMEZETDBRc1EwRkZRU3hUUVVGVFF5eEhRVUZaV0N4RlFVRkxReXhGUVVGTkxFTkJRemxDTEVsQlFVMURMRVZCUVZsR0xFVkJRVWtzWTBGQlkwTXNRMEZCU1N4RlFVTnNRMWNzUlVGQlV5eERRVUZETEVWQlEyaENMRkZCUVZORExFVkJRVWtzUlVGQlIwRXNSVUZCU1Znc1JVRkJWU3hQUVVGUlZ5eEpRVUZMTEVOQlEzcERMRWRCUVUwc1EwRkJSU3hMUVVGQlF5eEZRVUZOTEUxQlFVRkRMRU5CUVUwc1JVRkJTV0lzUlVGQlZWY3NRMEZCUXl4RlFVTTNRa2NzUlVGQlRXeENMRWRCUVZWblFpeERRVUZKTEVWQlJYUkNRU3hKUVVGVExFMUJRMWhHTEVWQlFVOUpMRU5CUVVjc1JVRkJTVVFzUlVGRFNrVXNSVUZCV1VRc1EwRkJSeXhKUVVONlFrb3NSVUZCVDBrc1EwRkJSeXhGUVVGSkxGTkJRVk5FTEVWQlFVOHNSVUZCUlN4RlFVVndReXhEUVVOQkxFOUJRVTlJTEVOQlExUXNRMEZGUVN4SlFVRkpUU3hIUVVGblFpeERRVUZETEVWQlMwRkRMRWRCUVhKQ0xFMUJRWEZDUXl4VlFVRnBRa01zUlVGQlN5eERRVXQ2UXl4UFFVRlBMRTlCUVU5RExFVkJRVTBzUTBGRGJFSXNUMEZCUzBvc1IwRkJZMGtzUTBGQlNTeEpRVU55UWtvc1IwRkJZMGtzUTBGQlNTeEZRVUZKTEVsQlFVbEdMRVZCUVZORkxFTkJRVWtzUjBGRmJFTktMRWRCUVdOSkxFTkJRVWtzUTBGRE0wSXNRMEZOUVN4UFFVRlBMRmxCUVdFc1EwRkRiRUpLTEVkQlFXZENMRU5CUVVNc1JVRkRha0oyUWl4SFFVRlhMRU5CUVVNc1EwRkRaQ3hEUVZWQkxFOUJRVThzYVVKQlFXbENORUlzUlVGQlJ5eERRVU42UWl4UFFVRlBMRXRCUVVzc1dVRkJXVUVzUTBGQlF5eERRVU16UWl4RFFWVkJMRTlCUVU4c1dVRkJXVEZDTEVWQlFVMHNRMEZEZGtJc1IwRkJTU3hEUVVGRFFTeEZRVU5JTEUxQlFVOHNSMEZGVkN4SFFVRkpMRU5CUTBZc1YwRkJTU3hMUVVGTExHVkJRV1VzVVVGQlV5eERRVUZGTEZOQlFWVkJMRU5CUVVzc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGRGNrUXNSVUZEVkN4UFFVRlRNa0lzUlVGQlJ5eERRVU5XTEUxQlFVOHNSVUZEVkN4RFFVTkdMRU5CUlVFc1dVRkJXVVlzUlVGQlRTeERRVU5vUWl4TlFVRk5MRVZCUlU0c1MwRkJTeXhUUVVGWFFTeEZRVVZvUWl4TFFVRkxMRTFCUVZGR0xFVkJRVk1zV1VGQldVVXNRMEZCU1N4RFFVTjRReXhEUVVkQkxFbEJRVWtzVFVGQlR5eERRVU5VTEUxQlFVOHNUVUZEVkN4RFFVZEJMRWxCUVVrc1RVRkJUeXhEUVVOVUxFOUJRVThzUzBGQlN5eFJRVU5rTEVOQlIwRXNTVUZCU1N4aFFVRmpMRU5CUTJoQ0xFMUJRVThzUlVGRFZDeERRVWRCTEZkQlFWZEhMRVZCUVVrc1EwRkJSU3hQUVVGQlF5eEZRVUZSTEU5QlFVRkRMRU5CUVU4c1JVRkJSeXhEUVVOcVF5eFBRVUZQUXl4SFFVRmpTQ3hGUVVGSlF5eEZRVUZSUXl4RlFVRlJMRXRCUVVzc1NVRkJTU3hEUVVOd1JDeERRVWRCTEdGQlFXRkdMRVZCUVVsRExFVkJRVkVzUTBGRGRrSXNUMEZCVDBjc1IwRkJZU3hMUVVGTExFOUJRVTlLTEVOQlFVVXNSVUZCUjBNc1EwRkJUU3hEUVVNM1F5eERRVWRCTEU5QlFVOUVMRVZCUVVrc1EwRkRWQ3hKUVVGTmVFSXNSVUZCVHl4SlFVRkpMRXRCUVV0M1FpeERRVUZGTEVWQlJYaENMRWRCUVVrc1RVRkJUWGhDTEVOQlFVa3NSVUZCUnl4TlFVRlBMRXRCUlhoQ0xFbEJRVTFFTEVWQlFVMUtMRWRCUVZFc1MwRkJTeXhKUVVGSkxFVkJRM3BDTEVOQlFVTnJReXhGUVVGTlF5eEZRVUZQUXl4RlFVRkxReXhGUVVGUlF5eEZRVUZOUXl4RlFVRlJReXhEUVVGTkxFVkJRVWx3UXl4RlFVRkpMR05CUTNaRVZ5eEhRVUZaV0N4RlFVRkxReXhEUVVGSkxFVkJRM0pDUml4SFFVRlpReXhGUVVGTFF5eERRVUZKTEVWQlJYSkNaME1zU1VGQlZ5eFBRVU5pU0N4RlFVRlBMRU5CUVVNc1MwRkJTeXhKUVVGSlFTeERRVUZKTEVWQlFVa3NSMEZOTTBJc1NVRkJUVThzUlVGQlVVTXNSMEZCWVN4RFFVTjZRaXhMUVVGQlVpeEZRVU5CTEUxQlFVRkRMRVZCUTBFc1NVRkJRVU1zUlVGRFFTeExRVTV0UWtVc1NVRkJVeXhIUVVGTExFVkJRVWxCTEVWQlQzSkRMRTlCUVVGRExFVkJRMEVzVDBGQlFVTXNSVUZEUVN4WlFVRmhMRU5CUTJZc1EwRkJReXhGUVVWSFJ5eEZRVUZQTEVOQlFVTjBReXhGUVVOT2RVTXNSVUZCVDBRc1JVRkJUeXhKUVVOd1FpeFBRVUZCUVN4SFFVRlJReXhIUVVGUkxFVkJRVWxCTEVWQlFVOHNTVUZCVDBFc1IwRkRNVUpJTEVWQlFWRkZMRWxCUVZNc1IwRkJTeXhKUVVOb1F5eERRVWRCTEU5QlFVOUZMRVZCUVZjc1EwRkRhRUlzVDBGQlQwRXNSVUZCVlN4UFFVRlRMRkZCUVZWQkxFVkJRVlVzVDBGQlV5eExRVUZMTEVsQlF6bEVMRU5CUjBFc1NVRkJTU3hUUVVGVkxFTkJRMW9zVDBGQlR5eExRVUZMTEV0QlEyUXNRMEZEUml4RlEzcE1RU3hKUVVGSlF5eEhRVUZaTEV0QlRVdERMRWRCUVhKQ0xFMUJRWEZDUXl4VlFVRjNRa01zUlVGQlN5eERRVXRvUkN4WFFVRlhMR0ZCUVdNc1EwRkRka0lzVDBGQlNVZ3NTMEZCWXl4UFFVTm9Ra0VzUjBGQldTeEpRVUZKUlN4RlFVRm5RaXhEUVVGRExFZEJSVFZDUml4RlFVTlVMRU5CVDBFc1QwRkJUeXhUUVVGVFNTeEZRVUZSTEVOQlEzUkNMRTlCUVU5QkxFbEJRVmNzUlVGQlNVWXNSVUZCWjBJc1dVRkJZeXhKUVVGSlFTeEZRVUZuUWtVc1EwRkJUU3hEUVVOb1JpeERRVlZCTEU5QlFVOHNaVUZCWlVNc1JVRkJSeXhEUVVOMlFpeEhRVUZKUVN4RlFVRkhMRU5CUTB3c1NVRkJUVU1zUlVGQlNVUXNSVUZCUlN4TlFVRk5MSFZEUVVGMVF5eEZRVU42UkN4SFFVRkpReXhGUVVOR0xFOUJRVThzU1VGQlNVb3NSVUZCWjBKTExFZEJRV0ZFTEVWQlFVVXNRMEZCUXl4RlFVRkhRU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlJYWkVMRU5CUTBFc1QwRkJUeXhKUVVOVUxFTkJSVUVzV1VGQldVWXNSVUZCVVN4RFFVTnNRaXhOUVVGTkxFVkJSVTRzUzBGQlN5eE5RVUZSUVN4RFFVTm1MRU5CUjBFc1NVRkJTU3hOUVVGUExFTkJRMVFzVFVGQlR5eFBRVU5VTEVOQlIwRXNTVUZCU1N4TlFVRlBMRU5CUTFRc1QwRkJUeXhMUVVGTExGRkJRVlVzUlVGQlNTeE5RVUZSTEUxQlFVMUpMRWRCUVdFc1MwRkJTeXhOUVVGUExGRkJRVkVzUTBGQlF5eEZRVU0xUlN4RFFVVkJMRWxCUVVrc1ZVRkJWeXhEUVVOaUxFOUJRVWtzUzBGQlN5eFJRVUZWTEVWQlExWXNWVUZGUVN4VlFVRlZRU3hIUVVGaExFTkJRVU1zUzBGQlN5eE5RVUZQTEZGQlFWRXNRMEZCUXl4RlFVVjRSQ3hEUVVkQkxGbEJRV0VzUTBGRFdDeFBRVUZQTEV0QlFVc3NTVUZEWkN4RFFVZEJMR0ZCUVdGRExFVkJRVWxETEVWQlFWRXNRMEZEZGtJc1QwRkJUMFlzUjBGQllTeExRVUZMTEUxQlFVOUZMRU5CUVUwc1EwRkRlRU1zUTBGSFFTeEpRVUZKTEdGQlFXTXNRMEZEYUVJc1RVRkJUeXhGUVVOVUxFTkJSMEVzVVVGQlV5eERRVU5RTEU5QlFVOHNTMEZCU3l4TFFVTmtMRU5CUjBFc1QwRkJUME1zUlVGQlZ5eERRVU5vUWl4UFFVRlBRU3hGUVVGVkxFOUJRVk1zVTBGQlYwRXNSVUZCVlN4UlFVRlZMRXRCUVVzc1MwRkRhRVVzUTBGSFFTeEpRVUZKTEZOQlFWVXNRMEZEV2l4TlFVRlBMRVZCUTFRc1EwRkRSaXhGUXk5R1FTeEpRVUZ4UWtNc1IwRkJja0lzWTBGQmVVTkRMRVZCUVVzc1EwRkROVU1zV1VGQldVTXNSVUZCVlN4RFFVTndRaXhOUVVGTkxFVkJSVTRzUzBGQlN5eFRRVUZYUVN4RFFVTnNRaXhEUVVkQkxFbEJRVWtzVFVGQlR5eERRVU5VTEUxQlFVOHNVMEZEVkN4RFFVZEJMRWxCUVVrc1RVRkJUeXhEUVVOVUxFOUJRVThzUzBGQlN5eFJRVU5rTEVOQlIwRXNTVUZCU1N4aFFVRmpMRU5CUTJoQ0xFMUJRVThzUlVGRFZDeERRVWRCTEZsQlFXRXNRMEZEV0N4UFFVRlBMRWxCUTFRc1EwRkhRU3hqUVVGbExFTkJRMklzVFVGQlR5eEZRVU5VTEVOQlIwRXNVVUZCVXl4RFFVTlFMRTFCUVU4c1NVRkRWQ3hEUVVkQkxGRkJRVk1zUTBGRFVDeE5RVUZQTEVWQlExUXNRMEZIUVN4SlFVRkpMRk5CUVZVc1EwRkRXaXhOUVVGUExFVkJRMVFzUTBGRFJpeEZRM3BEVHl4VFFVRlRReXhIUVVGalF5eEZRVUZQUXl4RlFVRmhMRU5CUTJoRUxFbEJRVWxETEVWQlEwb3NSMEZCU1VNc1JVRkJXVWdzUTBGQlN5eEhRVUZMUVN4SlFVRlZMRXRCUTJ4RExFOUJRVTlETEVWQlEwWXNSMEZCU1VRc1lVRkJhVUpKTEVkQlF6RkNMRTlCUVU5S0xFVkJRMFlzUjBGQlNVc3NSMEZCVTB3c1EwRkJTeXhGUVVGSExFTkJRekZDTEVsQlFVMU5MRVZCUVZWT0xFVkJRVTBzV1VGQldTeEZRVU5zUXl4UFFVRkpUU3hKUVVGWkxGTkJRVmRCTEVsQlFWa3NVMEZCYVVKTUxFVkJReTlEU3l4SlFVRlpMRTlCUVZOQkxFbEJRVmtzVFVGQlkwTXNSMEZCWjBJc1dVRkROVVJCTEVkQlFXZENMR1ZCUVdWRUxFTkJRVThzUjBGQlMwVXNSMEZCVXl4UFFVRlBVaXhEUVVGTExFTkJRemxGTEV0QlFVOHNVVUZCU1ZNc1IwRkJVMVFzUTBGQlN5eEZRVU5vUWs4c1IwRkJaMElzVTBGQlUxQXNRMEZCU3l4RlFVTTFRaXhQUVVGUFFTeEhRVUZWTEZWQlFWbEJMRVZCUVUwc1VVRkJWU3hQUVVGUFFTeEZRVUZOTEZGQlFWY3NVMEZIZGtWQkxFVkJSVUVzU1VGQlNWVXNSMEZCV1ZZc1EwRkJTeXhEUVVWb1F5eERRM3BDUVN4SlFVRkpWeXhIUVVGTkxFbEJRVTBzUzBGQlN5eEpRVUZKTEVWQlEzWkNReXhIUVVGakxGTkJRMlJETEVkQlFXZENMRXRCUTJoQ1F5eEhRVUY1UWl4TFFVTjZRa01zUjBGQmQwSXNTMEZEZUVKRExFZEJTMjFDUXl4RlFVRnlRaXhMUVVFNFFpeERRVXMxUWl4WFFVRlhMRXRCUVUwc1EwRkRaaXhQUVVGUFRpeEZRVU5VTEVOQlUwRXNWMEZCVnl4SlFVRkpUeXhGUVVGSExFTkJRMmhDVUN4SFFVRk5UeXhEUVVOU0xFTkJUMEVzVjBGQlZ5eFpRVUZaUXl4RlFVRk5MRU5CUXpOQ1VDeEhRVUZqVHl4RFFVTm9RaXhEUVU5QkxGZEJRVmNzWVVGQll5eERRVU4yUWl4UFFVRlBReXhIUVVGalVpeEhRVUZoVXl4SFFVRlhMRkZCUVZFc1EwRkRka1FzUTBGTlFTeFhRVUZYTEdWQlFXZENMRU5CUTNwQ0xFOUJRVTlTTEVWQlExUXNRMEZOUVN4WFFVRlhMR05CUVdOVExFVkJRVkVzUTBGREwwSlVMRWRCUVdkQ1V5eERRVU5zUWl4RFFVMUJMRmRCUVZjc2QwSkJRWGxDTEVOQlEyeERMRTlCUVU5U0xFVkJRMVFzUTBGTlFTeFhRVUZYTEhWQ1FVRjFRbE1zUlVGQmFVSXNRMEZEYWtSVUxFZEJRWGxDVXl4RFFVTXpRaXhEUVUxQkxGZEJRVmNzZFVKQlFYZENMRU5CUTJwRExFOUJRVTlTTEVWQlExUXNRMEZOUVN4WFFVRlhMSE5DUVVGelFsTXNSVUZCWjBJc1EwRkRMME5VTEVkQlFYZENVeXhEUVVNeFFpeERRVTFCTEZkQlFWY3NaMEpCUVdsQ0xFTkJRekZDTEU5QlFVOVNMRVZCUTFRc1EwRk5RU3hYUVVGWExHVkJRV1ZUTEVWQlFVY3NRMEZETTBKVUxFZEJRV2xDVXl4RFFVTnVRaXhEUVUxQkxFOUJRVThzWVVGQll5eERRVU51UWtNc1IwRkJUeXhYUVVGWExFVkJRMnhDUXl4SFFVRlRMRmRCUVZjc1EwRkRkRUlzUTBGRFJpeEZRM1JJUVN4SlFVRkpReXhIUVVGakxFTkJRVU1zUlVGRGJrSXNVMEZCVTBNc1IwRkJXVU1zUlVGQlYwTXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRla01zU1VGQlRVTXNSVUZCVFN4TFFVRkxMRlZCUVZVc1EwRkJRMFlzUlVGQlYwTXNRMEZCU1N4RFFVRkRMRVZCUTNoRFJTeEZRVUZOVEN4SFFVRlpTU3hEUVVGSExFVkJRM3BDTEU5QlFVdERMRWxCUTBoQkxFVkJRVTBzU1VGQlNTeExRVUZMTEZkQlFWZElMRVZCUVZkRExFTkJRVWtzUlVGRGVrTklMRWRCUVZsSkxFTkJRVWNzUlVGQlNVTXNSMEZGWkVFc1EwRkRWQ3hEUVVWQkxFbEJRVWxETEVkQlFXTXNRMEZCUXl4RlFVTnVRaXhUUVVGVFF5eEhRVUZoVEN4RlFVRlhReXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU14UXl4SlFVRk5ReXhGUVVGTkxFdEJRVXNzVlVGQlZTeERRVUZEUml4RlFVRlhReXhEUVVGSkxFTkJRVU1zUlVGRGVFTkZMRVZCUVUxRExFZEJRVmxHTEVOQlFVY3NSVUZEZWtJc1QwRkJTME1zU1VGRFNFRXNSVUZCVFN4SlFVRkpMRXRCUVVzc1pVRkJaVWdzUlVGQlYwTXNRMEZCU1N4RlFVTTNRMGNzUjBGQldVWXNRMEZCUnl4RlFVRkpReXhIUVVWa1FTeERRVU5VTEVOQlJVRXNTVUZCU1Vjc1IwRkJaU3hEUVVGRExFVkJRM0JDTEZOQlFWTkRMRWRCUVdGUUxFVkJRVmRETEVWQlFVOHNRMEZCUXl4RlFVRkhMRU5CUXpGRExFbEJRVTFETEVWQlFVMHNTMEZCU3l4VlFVRlZMRU5CUVVOR0xFVkJRVmRETEVOQlFVa3NRMEZCUXl4RlFVTjRRMDhzUlVGQlRVWXNSMEZCWVVvc1EwRkJSeXhGUVVNeFFpeFBRVUZMVFN4SlFVTklRU3hGUVVGTkxFbEJRVWtzUzBGQlN5eGhRVUZoVWl4RlFVRlhReXhEUVVGSkxFVkJRek5EU3l4SFFVRmhTaXhEUVVGSExFVkJRVWxOTEVkQlJXWkJMRU5CUTFRc1EwRkZRU3hKUVVGSlF5eEhRVUZsTEVOQlFVTXNSVUZEY0VJc1UwRkJVME1zUjBGQllWWXNSVUZCVjBNc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRE1VTXNTVUZCYTBOVkxFVkJRVUZXTEVWQlFURkNMRTFCUVVGWExFTkJNME5XTEVWQk1rTnZRMFFzUlVGQmFrSkZMRVZCUVVGRExFZEJRV2xDU0N4RlFVRnFRaXhEUVVGVUxGTkJRMFpVTEVWQlFVMHNTMEZCU3l4VlFVRlZMRU5CUVVOR0xFVkJRVmRoTEVOQlFWa3NRMEZCUXl4RlFVTm9SRXdzUlVGQlRVTXNSMEZCWVZBc1EwRkJSeXhGUVVNeFFpeFBRVUZMVFN4SlFVTklRU3hGUVVGTkxFbEJRVWtzUzBGQlN5eHRRa0ZCYlVKU0xFVkJRVmRETEVOQlFVa3NSVUZEYWtSUkxFZEJRV0ZRTEVOQlFVY3NSVUZCU1Uwc1IwRkZaa0VzUTBGRFZDeERRVVZCTEVsQlFVbFBMRWRCUVdsQ0xFdEJRM0pDTEZOQlFWTkRMRWxCUVdVc1EwRkRkRUlzVDBGQlNVUXNTMEZIUmtFc1IwRkJhVUlzU1VGQlNTeExRVUZMTEdWQlFXVXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeFBRVU4wUkVFc1IwRkZXQ3hEUVVWQkxGTkJRVk5GTEVkQlFXdENReXhGUVVGWExFTkJVM0JETEVsQlFVMURMRVZCUVZORUxFVkJRVlVzVVVGQlVTeExRVUZMTEVWQlEzUkRMRWRCUVVsRExFbEJRVmNzUjBGRFlpeE5RVUZQTEVOQlFVTkVMRU5CUVZNc1JVRkRXaXhEUVVOTUxFbEJRVWxGTEVWQlEwVkRMRVZCUVZWSUxFVkJRVlVzVlVGQlZTeEZRVUZIUXl4RFFVRk5MRVZCUXpkRExFZEJRVWtzUTBGRFJrTXNSVUZCVldZc1IwRkJZV0VzUTBGQlV5eEZRVUZGTEdkQ1FVRm5RaXhEUVVOd1JDeFBRVUZUU1N4RlFVRkhMRU5CUTFaR0xFVkJRVlZtTEVkQlFXRm5RaXhEUVVGUExFVkJRVVVzWjBKQlFXZENMRU5CUTJ4RUxFTkJSVUVzUjBGQlRTeERRVUZGTEdkQ1FVRkJSU3hGUVVGcFFpeFRRVUZCUXl4RFFVRlRMRVZCUVVsS0xFVkJSWFJETEUxQlFVOHNRMEZCUTBNc1JVRkJVMFVzUlVGQmFVSkRMRU5CUVZFc1EwRkROVU1zUTBGRFJpeERRVVZCTEZOQlFWTkRMRWRCUVdsQ1VDeEZRVUZYU3l4RlFVRnBRa2NzUlVGQlowSXNRMEZEY0VVc1QwRkJTVUVzUjBGQmEwSklMRXRCUTNCQ1RDeEhRVUZoTEV0QlJWUlJMRWxCUTBaU0xFZEJRV0VzVDBGQlQxRXNRMEZCWXl4SlFVZG9RMGdzU1VGRFJrd3NSMEZCWVN4UFFVRlBTeXhEUVVGbExFdEJSVGxDVEN4RFFVbFlMRU5CUlVFc1UwRkJVMU1zUjBGQlZVTXNSVUZCUnl4RFFVTndRaXhKUVVGTlF5eEZRVUZMTEVOQlFVTXNSVUZEV2l4UlFVRlRReXhGUVVGSkxFVkJRVWRCTEVkQlFVc3NSMEZCU1VFc1NVRkJTeXhEUVVNMVFpeEpRVUZOUXl4RlFVRkxReXhGUVVGVExFbEJRVWtzUzBGQlRVWXNSVUZCUnl4RFFVRkRMRVZCUTJ4RFJDeEZRVUZITEV0QlFVdEVMRVZCUVVWSExFTkJRVVVzUTBGQlF5eERRVU5tTEVOQlEwRXNUMEZCVDBZc1EwRkRWQ3hEUVVWQkxGTkJRVk5KTEVkQlFWbE1MRVZCUVVjc1EwRkRkRUlzU1VGQlRVTXNSVUZCU3l4RFFVRkRMRVZCUTFvc1VVRkJVME1zUlVGQlNTeEZRVUZIUVN4SFFVRkxMRVZCUVVkQkxFbEJRVXNzUTBGRE0wSXNTVUZCVFVNc1JVRkJTME1zUlVGQlV5eEpRVUZKTEV0QlFVMHNSMEZCU1N4SFFVRkxSaXhEUVVGRExFVkJRM2hEUkN4RlFVRkhMRXRCUVV0RUxFVkJRVVZITEVOQlFVVXNRMEZCUXl4RFFVTm1MRU5CUTBFc1QwRkJUMFlzUTBGRFZDeERRVVZCTEZOQlFWTkxMRWRCUVZWRExFVkJRVXRETEVWQlFWRkRMRVZCUVZkRExFVkJRVmRETEVWQlFWRXNRMEZETlVRc1NVRkJUVU1zUlVGQlQwd3NSVUZCU1N4WlFVRlpSU3hEUVVGVExFVkJSWFJETEU5QlFVbEhMRWxCUVZNc1VVRkRTaXhMUVVORlFTeEpRVUZUTEV0QlExaEdMRVZCUVZWR0xFTkJRVTBzUlVGRmFFSkhMRVZCUVU5SUxFTkJRVTBzUTBGRmVFSXNRMEZGUVN4VFFVRlRTeXhIUVVGdlFrNHNSVUZCU3l4RFFVTm9ReXhQUVVGSlFTeEZRVUZKTEdsQ1FVRnRRa0VzUlVGQlNTeHJRa0ZCYjBJc1QwRkRNVU1zUjBGSFRFRXNSVUZCU1N4clFrRkJiMElzVVVGRGVFSXNRMEZCUTBFc1JVRkJTU3hSUVVOTVFTeEZRVUZKTEU5QlFVOHNWMEZCVnl4SlFVRkpMRWRCUXpGQ0xFbEJRVWtzUzBGQlN5eGxRVUZsUVN4RlFVRkpMRWxCUVVrc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4clFrRkJiMElzVFVGSE9VVXNRMEZOUVN4SlFVRk5UeXhIUVVGT0xFdEJRVEJDTEVOQlEzaENMRmxCUVZsRExFVkJRVTFETEVWQlFXRXpReXhGUVVGTkxFTkJRMjVETEV0QlFVc3NUVUZCVVVFc1JVRkJTeXhQUVVGVExFVkJRek5DTEV0QlFVc3NUVUZCVVVFc1JVRkJTeXhQUVVGVExFZEJSVE5DTEVsQlFYVkRWU3hGUVVGQlZpeEZRVUV2UWl4UFFVRkJORU1zUlVGQlR5eE5RVUZCUXl4RFFTOUtia0lzUlVFclNqSkRia01zUlVGQlpHOURMRVZCUVVGcVF5eEhRVUZqU0N4RlFVRmtMRU5CUVdwQ0xGRkJRVThzVlVGRlppeEhRVUZKTEVOQlFVTnBReXhIUVVGbExFOUJRVThzUzBGQlMwY3NRMEZCVXl4RlFVRkZMRTlCUVZNc1JVRkJSeXhEUVVOeVJDeEpRVUZOUXl4RlFVRlhReXhGUVVGQkxFTkJRVVVzV1VGQllTeEpRVUZWYUVRc1IwRkRkRU5CTEVWQlFVc3NUVUZCVVN4SlFVRkhLME1zUlVGQlV5eHhRa0ZCZFVJdlF5eEZRVUZMTEU5QlEzcEVMRXRCUVVzc1NVRkJUVTBzUjBGQllXOURMRVZCUVUxTExFTkJRVkVzUTBGRGVFTXNRMEZEUml4RFFVVkJMRTlCUVU5c1FpeEZRVUZITEVOQlExSXNSMEZCU1N4TFFVRkxMRWxCUVVzc1EwRkRXaXhKUVVGTmIwSXNSVUZCVVN4TFFVRkxMRTFCUVZFc1MwRkJTeXhOUVVGTmNFSXNRMEZCUXl4RlFVRkpRU3hGUVVNelF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4UFFVRlBiMElzUTBGQlN5eERRVU01UWl4TFFVRlBMRU5CUlV3c1NVRkJUVUVzUlVGQlVTeExRVUZMTEUxQlFWRXNTMEZCU3l4TlFVRk5jRUlzUTBGQlF5eEZRVUZKY1VJc1IwRkJVWEpDTEVWQlFVY3NRMEZCUXl4RlFVTjJSQ3hQUVVGUGMwSXNSMEZCVTBZc1JVRkJUeXhMUVVGTExFdEJRVXNzUTBGRGJrTXNRMEZEUml4RFFVTkdMRVZCVFUxSExFZEJRVTRzUzBGQmQwSXNRMEZEZEVJc1dVRkJXWFJDTEVWQlFVbFpMRVZCUVUweFF5eEZRVUZOTEVOQlF6RkNMRXRCUVVzc1MwRkJUMEVzUlVGRldpeEpRVUZKY1VRc1JVRkRTaXhIUVVGSmRrSXNSVUZCUnl4TFFVRkxMRmxCUVdFc1EwRlBka0lzU1VGQlRYZENMRVZCUVZrc1NVRkJUWGhDTEVWQlFVY3NUMEZCVXl4SlFVTTVRbmxDTEVWQlFWVkVMRWRCUVdFc1JVRkJTU3hYUVVGWFFTeERRVUZUTEVkQlFVc3NWVUZCVlVFc1EwRkJVeXhIUVVONlJYaENMRVZCUVVjc1UwRkJWeXhIUVVGTE1FSXNSMEZCVXl4UFFVRlBSQ3hEUVVGUExFVkJRVVVzVDBGRE9VTkdMRVZCUVVsRkxFVkJRMG9zUzBGQlN5eEhRVUZMZWtJc1NVRlRWblZDTEVWQlFVa3NUVUZEUVhKRUxFVkJRVXNzWVVGRFVDeExRVUZMTEVkQlFVczRRaXhGUVVWV0xFdEJRVXNzUjBGQlMwRXNSVUZCUnl4VFFVRlhMRVZCUVVsQkxFVkJRVXRETEVWQlFWTXNWMEZCVjBRc1JVRkJSeXhIUVVGTFFTeEZRVUZITEU5QlFWTXNSMEZCU3l4SFFVRkpMRVZCUjNoR0xFMUJRVmRCTEVWQlFVY3NTMEZCU3l4UFFVRlRMRk5CUXpGQ0xFdEJRVXNzUjBGQlMwRXNSMEZGVml4TFFVRkxMRWRCUVV0QkxFVkJRMVoxUWl4RlFVRkpka0lzUlVGQlJ5eExRVUZMTEUxQlIyUXNTVUZCVFdsQ0xFVkJRVmRETEVWQlFVRXNSMEZCU3l4TFFVRkxMRTFCUTNaQ1N5eEpRVU5HVGl4RlFVRlRMRk5CUVZkTkxFZEJSWFJDTEV0QlFVc3NTVUZCVFdwRUxFZEJRV0Z6UXl4RlFVRk5TeXhEUVVGUkxFTkJRM2hETEVOQlJVRXNVVUZCVXl4RFFVTlFMRTlCUVU4c1MwRkJTeXhKUVVGSkxFOUJRVThzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVTXpReXhEUVVWQkxHVkJRV2RDTEVOQlEyUXNUMEZCVHl4TFFVRkxMRWxCUVVrc1kwRkJZeXhMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEVOQlEyeEVMRU5CUlVFc2FVSkJRV3RDTEVOQlEyaENMRTlCUVU4c1MwRkJTeXhKUVVGSkxHZENRVUZuUWl4RFFVTnNReXhEUVVOR0xFVkJTMDFWTEVkQlFVNHNTMEZCZFVJc1EwRkRja0lzV1VGQldXWXNSVUZCVFdkQ0xFVkJRVmN4UkN4RlFVRk5MRU5CUTJwRExFdEJRVXNzUzBGQlQyZEVMRVZCUVVFc1EwRkJSU3hOUVVGUExGRkJRVmRvUkN4SFFVTTFRaXhEUVVGRE1FUXNSMEZCWVVNc1IwRkJXU3hKUVVNMVFpeExRVUZMTEVsQlFVMXNSQ3hIUVVGaGFVTXNSVUZCVFRGRExFTkJRVWtzUlVGRmRFTXNRMEZGUVN4UFFVRlBORVFzUlVGQlQwTXNSVUZCVFN4RFFVTnNRaXhQUVVGSkxFdEJRVXNzU1VGRFFTeExRVUZMTEVsQlFVa3NUMEZCVDBRc1JVRkJUME1zUTBGQlNTeEZRVVZ1UWtNc1IwRkJiVUpFTEVWQlFVMUVMRVZCUVU4c1MwRkJTeXhMUVVGTExGRkJRVk1zUzBGQlN5eExRVUZMTEZGQlFWVXNUVUZCVFN4RFFVVm9SeXhEUVVWQkxHTkJRV05CTEVWQlFVOURMRVZCUVUwc1EwRkRla0lzVDBGQlNTeExRVUZMTEVsQlEwRXNTMEZCU3l4SlFVRkpMR05CUVdORUxFVkJRVTlETEVOQlFVa3NSVUZGYkVNc1EwRkJReXhEUVVWYUxFTkJRMFlzUlVGTmNVSkZMRWRCUVhKQ0xFMUJRWEZDUXl4RFFVRlBMRU5CUXpGQ0xFOUJRVThzVTBGQlUyaEZMRVZCUVUwc1EwRkRjRUlzVDBGQlQyZEZMRVZCUVU4c1QwRkJUMmhGTEVWQlFVc3NUMEZCVVVFc1JVRkJTeXhuUWtGQmFVSkJMRVZCUVVzc1pVRkJaMEpCTEVWQlFVc3NWMEZCVnl4RFFVTXZSaXhEUVVWQkxFOUJRVThzVDBGQlQybEZMRVZCUVZFelF5eEZRVUZwUWtjc1JVRkJaMEo1UXl4RlFVRmpMRWRCUVU4c1EwRkRNVVVzU1VGQlRVTXNSVUZCYTBKR0xFZEJRVlZITEVWQlFWTXNZMEZGY2tORExFVkJRVlZHTEVsQlFXOUNSQ3hGUVVGakxGRkJRVlZ1UkN4SFFVRmhMRWRCUTI1RmRVUXNSVUZCYlVKb1JDeEhRVUZ0UWpoRExFVkJRVk1zZFVKQlF5OURSeXhGUVVGclFqbERMRWRCUVd0Q01rTXNSVUZCVXl4elFrRkRia1FzVDBGQlR5eEpRVUZKU2l4RlFVRlBTeXhGUVVGVFF5eEZRVUZyUWtNc1JVRkJhVUpLTEVOQlFXVXNRMEZETDBVc1EwRkZRU3hQUVVGUExGbEJRV0VzUTBGRGJFSnlSQ3hIUVVGcFFpeExRVU5xUWxnc1IwRkJZeXhEUVVGRExFVkJRMlpGTEVkQlFXVXNRMEZCUXl4RlFVTm9Ra2NzUjBGQlpTeERRVUZETEVOQlEyeENMRU5CUlVFc1QwRkJUeXhYUVVGWExFTkJRVVVzVDBGQlFYbEVMRVZCUVZFc1owSkJRVUV6UXl4RlFVRnBRaXhsUVVGQlJ5eERRVUZsTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTJ4RkxFOUJRVTkxUXl4RlFVRlBMRTlCUVU5RExFVkJRVkV6UXl4RlFVRnBRa2NzUTBGQll5eERRVU01UkN4RFFVVkJMRmxCUVZsM1F5eEZRVUZSVHl4RlFVRlhMME1zUlVGQlowSXdReXhGUVVGcFFpeERRVU01UkN4SFFVRk5MRU5CUVVOTkxFVkJRV05ETEVWQlFYVkNReXhEUVVGdlFpeEZRVUZKTTBRc1IwRkJhMEpwUkN4RFFVRk5MRVZCUlRWR0xFdEJRVXNzVDBGQlUxRXNSVUZEWkN4TFFVRkxMR2RDUVVGclFrUXNSMEZCWVVVc1IwRkJlVUlzUzBGRE4wUXNTMEZCU3l4bFFVRnBRbXBFTEVkQlFXdENhMFFzUjBGQmQwSXNTMEZEYUVVc1MwRkJTeXhMUVVGUGJrUXNSMEZCYVVJc1MwRkJTeXhQUVVGUkxFdEJRVXNzWjBKQlFXbENMRXRCUVVzc1kwRkJZeXhGUVVWdVJpeExRVUZMTEdOQlFXZENMRU5CUVVVc1QwRkJVU3hEUVVGRExFVkJRVWNzVjBGQldTeERRVUZETEVOQlFVVXNSVUZEYkVRc1MwRkJTeXhaUVVGakxFTkJRVVVzVDBGQlVTeERRVUZETEVWQlFVY3NWMEZCV1N4RFFVRkRMRU5CUVVVc1JVRkRhRVFzUzBGQlN5eGpRVUZuUWl4TFFVTnlRaXhMUVVGTExGTkJRVmNzUTBGQlF5eEZRVVZxUWl4TFFVRkxMR2RDUVVGclFqSkRMRVZCUTNaQ0xFdEJRVXNzYTBKQlFXOUNMRWxCUXpOQ0xFTkJSVUVzU1VGQlNTeGhRVUZqTEVOQlEyaENMRTlCUVVrc1MwRkJTeXh0UWtGQmNVSXNUMEZETlVJc1MwRkJTeXhyUWtGQmIwSXpRaXhIUVVGdlFpeEpRVUZKTEVkQlJ6VkRMRXRCUVVzc2FVSkJRMlFzUTBGRlFTeGhRVUZqTEVOQlExb3NTVUZCVFc5RExFVkJRV1VzUzBGQlN5eFZRVUZWTEVWQlF6bENReXhIUVVOSUxFdEJRVXNzYTBKQlFXOUNMRTFCUVZFc1MwRkJTeXhyUWtGQmIwSXNWVUZETVVRc1MwRkJTeXhwUWtGQmJVSXNUVUZCVVN4TFFVRkxMR2xDUVVGdFFpeFhRVU16UkN4UFFVRlBSQ3hIUVVGblFrTXNSVUZCYVVJc1MwRkJUeXhOUVVOcVJDeERRVVZCTEUxQlFVMURMRVZCUVUwc1EwRkRWaXhOUVVGSkxFTkJRVU5CTEVkQlFWRXNUMEZCVHl4dlFrRkJiMEpCTEVOQlFVa3NSVUZCUlN4VFFVRlhMRVZCUTJoRUxFdEJSVUZrTEVWQlFVOHNUMEZEV21Nc1JVRkJTeXhSUVVGVkxFdEJRVXNzWjBKQlEzQkNRU3hGUVVGTExHbENRVUZ0UWl4TFFVRkxMR2RDUVVNM1FrRXNSVUZCU3l4blFrRkJhMElzUzBGQlN5eGxRVU0xUWtFc1JVRkJTeXhoUVVGbExFVkJRM1JDTEVOQlJVb3NRMEZGUVN4alFVRmpRU3hGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU4yUWl4UFFVRlBMRXRCUVVzc1RVRkJUVU1zUjBGQlFTOUNMRVZCUVVFc1IwRkJTemhDTEVkQlFVd3NRMEZCVnl4WlFVRmhMRVZCUVVzc1JVRkJReXhEUVVOc1JDeERRVVZCTEd0Q1FVRnJRa0VzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZETTBJc1QwRkJUeXhMUVVGTExFMUJRVTFETEVkQlFVRXZRaXhGUVVGQkxFZEJRVXM0UWl4SFFVRk1MRU5CUVZjc1dVRkJZU3hGUVVGTkxFVkJRVU1zUTBGRGJrUXNRMEZGUVN4UFFVRlBNME1zUlVGQlVUWkRMRVZCUVZNc1IwRkJUelZETEVWQlFWa3NSMEZCVFN4RFFVTXZReXhQUVVGUFNDeEhRVUZWTEV0QlFVMUZMRVZCUVZGRExFVkJRVzFDTmtNc1IwRkJVU3hKUVVGTkxFTkJRemxFTEVsQlFVMTJReXhGUVVGUGMwTXNSVUZCVXl4RFFVRkZMRTFCUVU4M1F5eEZRVUZSTEVsQlFVc3NVMEZCVlN4RlFVRkpMRU5CUVVVc1RVRkJUMEVzUTBGQlR5eEZRVU40UlN0RExFVkJRVmxHTEVWQlFWTXNVMEZCVnl4aFFVTnNReXhQUVVGTExFdEJRVXNzV1VGQldVVXNRMEZCVXl4RlFVRkZMME1zUTBGQlRTeEpRVU55UXl4TFFVRkxMRmxCUVZrclF5eERRVUZUTEVWQlFVVXZReXhEUVVGTkxFVkJRVWxVTEVkQlFWZEpMRWRCUVU4c1MwRkJTeXhSUVVGUlFTeEZRVUZKV1N4RlFVRk5MRTlCUVU4c1EwRkJReXhIUVVWc1JpeExRVUZMTEZsQlFWbDNReXhEUVVGVExFVkJRVVV2UXl4RFFVRk5MRU5CUXpORExFTkJRVU1zUTBGRFNDeERRVVZCTEZOQlFWTkJMRVZCUVZFMlF5eEZRVUZUTEVkQlFVODFReXhGUVVGWkxFZEJRVTBzUTBGRGFrUXNUMEZCVDBnc1IwRkJWU3hMUVVGTlJTeEZRVUZSUXl4RlFVRnRRaXRETEVkQlFWVXNTVUZCVFN4RFFVTm9SU3hKUVVGTmVrTXNSVUZCVDNORExFVkJRMUFzUTBGQlJTeFJRVUZUTjBNc1JVRkJVU3hMUVVGTkxGVkJRVmNzVFVGQlR5eFBRVUZSTEVsQlFVc3NVMEZCVlN4RlFVTnNSU3hEUVVGRkxGRkJRVk5CTEVOQlFVOHNSVUZEZEVJclF5eEZRVUZaUml4RlFVRlRMRk5CUVZjc1lVRkRiRU1zVDBGQlN5eExRVUZMTEdOQlFXTkZMRU5CUVZNc1JVRkJSUzlETEVOQlFVMHNTVUZEZGtNc1MwRkJTeXhqUVVGakswTXNRMEZCVXl4RlFVRkZMME1zUTBGQlRTeEZRVUZKU0N4SFFVRmhSaXhIUVVOdVJDeExRVUZMTEZGQlFWRkJMRVZCUVVsWkxFVkJRVTBzVTBGQlV5eERRVU5zUXl4SFFVVkxMRXRCUVVzc1kwRkJZM2RETEVOQlFWTXNSVUZCUlM5RExFTkJRVTBzUTBGRE4wTXNRMEZCUXl4RFFVTklMRU5CUlVFc1ZVRkJWVU1zUlVGQldTeEhRVUZOTEVOQlF6RkNMRTlCUVU5SUxFZEJRMHdzUzBGRFFTeFBRVU5CUnl4RlFVTkJMRWxCUVdOblJDeEhRVU5rTEVsQlFVMHNRMEZIU2l4SFFVRkpMRU5CUVVNc1MwRkJTeXhqUVVGbExFTkJRM1pDTEVsQlFVMHhReXhGUVVGUExFTkJRVVVzUzBGQlRTeFZRVUZYTEZWQlFWY3NTMEZCVFN4RlFVTnFSQ3hMUVVGTExHTkJRV2RDTEVOQlFVTllMRVZCUVZNc1NVRkJTU3hMUVVGTkxFZEJRVWtzUjBGQlNTeERRVUZETEVWQlFVZEJMRVZCUVZNc1NVRkJTU3hMUVVGTkxFZEJRVWtzUjBGQlNTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVTnNSa1FzUjBGQlR5eExRVUZMTEZGQlFWRkJMRVZCUVVsWkxFVkJRVTBzVjBGQlZ5eERRVU0xUXl4RFFVTkdMRU5CUlVFc1QwRkJUeXhMUVVGTExHRkJRMlFzUTBGRFJpeERRVU5HTEVOQlJVRXNTMEZCUzFBc1JVRkJVVU1zUlVGQldTeEhRVUZOTEVOQlF6ZENMRTlCUVU5SUxFZEJRVlVzUzBGQlRVVXNSVUZCVVVNc1JVRkJiVUpwUkN4SFFVRk5MRWxCUVUwc1EwRkROVVFzU1VGQlRUTkRMRVZCUVU4c1EwRkJSU3hKUVVGTFVDeERRVUZQTEVWQlNUTkNMRTlCUVVzc1MwRkJTeXhUUVVGVFFTeERRVUZOTEVsQlEzWkNMRXRCUVVzc1UwRkJVMEVzUTBGQlRTeEZRVUZKTEVOQlFVTktMRVZCUVZNc1NVRkJTU3hKUVVGTExFVkJRVWNzUTBGQlF5eEZRVUZIUVN4RlFVRlRMRWxCUVVrc1MwRkJUU3hGUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVdEVMRWRCUXk5RkxFdEJRVXNzVVVGQlVVRXNSVUZCU1Zrc1JVRkJUU3hMUVVGTExFTkJRemxDTEVkQlIwc3NTMEZCU3l4VFFVRlRVQ3hEUVVGTkxFTkJRemRDTEVOQlFVTXNRMEZEU0N4RFFVVkJMRkZCUVZGTUxFVkJRVWxwUWl4RlFVRlZkVU1zUlVGQlR5eERRVU16UWl4SlFVRk5ReXhGUVVGTExFdEJRVXNzV1VGQldYcEVMRVZCUVVscFFpeERRVUZSTEVWQlEzUkRlVU1zUlVGQlZVUXNSVUZCUnl4alFVRmpMRVZCUXpOQ1JTeEZRVUZYUkN4RlFVRlJMRXRCUVUxRkxFZEJRVTFCTEVWQlFVVXNTMEZCU3l4WlFVRlpMRWxCUVUxS0xFTkJRVXNzUlVGREwwUXNUMEZCVDBjc1JVRkJWMEVzUlVGQlV5eE5RVUZSTEVsQlEzSkRMRU5CUlVFc1owSkJRV2RDZWtZc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGSGVrSXNUMEZCVHl4SlFVRkplVU1zUjBGQmIwSXNTMEZCU3l4TFFVRk5la01zUlVGQlN5eGhRVUZsTEV0QlFVc3NXVUZCWVVFc1EwRkJTU3hEUVVOMFJpeERRVVZCTEZsQlFWazRRaXhGUVVGSmFVSXNSVUZCVnl4RFFVRkRMRVZCUVVjc1EwRkROMElzVDBGQlR5eEpRVUZKU3l4SFFVRnJRblJDTEVWQlFVa3NTMEZCU3l4TFFVRk5hVUlzUTBGQlVTeERRVU4wUkN4RFFVVkJMR0ZCUVdFdlF5eEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTjBRaXhQUVVGUExFbEJRVWw1UkN4SFFVRnBRaXhMUVVGTExFdEJRVTBzUzBGQlN5eFZRVUZWTEVWQlFVZDZSQ3hEUVVGSkxFTkJReTlFTEVOQlJVRXNZMEZCWTBFc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGRrSXNUMEZCVDBZc1IwRkJXU3hMUVVGTExFdEJRVTFGTEVOQlFVa3NRMEZEY0VNc1EwRkZRU3hYUVVGWkxFTkJRMVlzVDBGRFJTeExRVUZMTEZOQlFWY3NUVUZEYUVJc1MwRkJTeXhQUVVGUExGbEJRVmtzU1VGQlRTeFRRVU01UWl4SlFVRkpMRXRCUVVzc1pVRkJaU3hMUVVGTExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hQUVVGUExGZEJRVmNzVDBGQlR5eERRVVZzUml4RFFVVkJMRTlCUVU4eVJpeEZRVUZQTEVOQlExb3NUMEZEUlN4TFFVRkxMRk5CUVZkQkxFVkJRVTBzVVVGRGRFSXNTMEZCU3l4clFrRkJiMEpCTEVWQlFVMHNhVUpCUXk5Q0xFdEJRVXNzYVVKQlFXMUNRU3hGUVVGTkxHTkJSV3hETEVOQlEwWXNSVU5zWWtFc1UwRkJVME1zVFVGQmEwSkRMRVZCUVZNc1EwRkRiRU1zU1VGQlRVTXNSVUZCVDBRc1JVRkJVU3hQUVVGUExFTkJRVU5GTEVWQlFVY3NTVUZCVFVFc1JVRkJTU3hGUVVGRkxFOUJRVkVzUlVGQlJTeEZRVU4wUkN4UFFVRlBMRTlCUVU4c1NVRkJTVVFzUTBGQlNTeEhRVUZITEVOQlF6TkNMRU5CUlVFc1UwRkJVMFVzVFVGQmNVSkRMRVZCUVZrc1EwRkRlRU1zVDBGQlQwTXNSMEZEVEVRc1JVRkRSeXhQUVVORExFTkJRVU1zUTBGQlEwVXNSVUZCV1VNc1JVRkJXVU1zUTBGQlRTeEZRVUZIUXl4SlFVRlBMRU5CUTNoRExFZEJRVTBzUTBGQlEwTXNSVUZCUzBNc1JVRkJUVU1zUTBGQlNTeEZRVUZKU0N4RlFVRkhTaXhGUVVGSFJ5eERRVUZOTEVWQlEzUkRMRTFCUVU4c1EwRkJRMHNzU1VGQlFTeEhRVUZMVUN4SFFVRmxTU3hIUVVGUFF5eEhRVUZSU2l4RlFVRlpTeXhEUVVGSkxFTkJRemRFTEVWQlEwRXNRMEZCUXl4RFFVRkRMRVZCUVVjc1MwRkJUU3hEUVVGRExFTkJRMlFzUlVGRFF5eE5RVUZOTEVWQlFVY3NRMEZCUXl4RFFVTnFRaXhEUVVWQkxGTkJRVk5GTEVkQlFVMURMRXRCUVUxRExFVkJRVlVzUTBGRE4wSXNSMEZCU1VRc1IwRkJTeXhMUVVOUUxFMUJRVThzUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZIY0VJc1QwRkJWeXhEUVVGRFJTeEZRVUZQUXl4RFFVRlRMRWxCUVV0R0xFVkJRVlVzUTBGRGVrTXNTVUZCVFZnc1JVRkJTVmtzUlVGQlRTeExRVUZMUml4RFFVRkRMRVZCUTNSQ0xFZEJRVWxXTEVWQlEwWXNUMEZCVDJFc1JVRkJWV0lzUTBGQlF5eERRVVYwUWl4RFFVTkJMRTFCUVU4c1EwRkJReXhMUVVGTkxFbEJRVWtzUTBGRGNFSXNRMEZGUVN4VFFVRlRZeXhOUVVGbFF5eEZRVUZOTEVOQlF6VkNMRTFCUVU4c1EwRkJRME1zUlVGQlQySXNTVUZCVnl4RFFVTjRRaXhKUVVGTll5eEZRVUZOTEVOQlFVTXNSVUZEVkVNc1JVRkZTaXhKUVVGTFFTeEZRVUZKTEVWQlFVZEJMRVZCUVVsSUxFVkJRVXNzVDBGQlVVY3NTVUZETTBKRUxFVkJRVWxHTEVWQlFVdEhMRU5CUVVNc1EwRkJReXhGUVVGSlF5eEhRVUZoU0N4RlFVRk5ZaXhGUVVGVFpTeERRVUZETEVOQlFVTXNSVUZGTDBNc1RVRkJUeXhEUVVGRFJDeEZRVUZMTEV0QlFVMWtMRVZCUVZObExFTkJRVU1zUTBGREwwSXNRMEZEUml4RFFVZEJMRWxCUVUxRkxFZEJRV01zYTBOQlEyUkRMRWRCUVd0Q0xFMUJRVTFFTEVkQlFWa3NUVUZCVFN4WFFVRlhSU3hIUVVGVkxFMUJRVTBzVjBGRGNrVkRMRWRCUVcxQ0xITkVRVU51UWtNc1IwRkJaU3hQUVVGUExFZEJRVWRFTEVkQlFXbENMRTFCUVUwc1IwRkJSMFlzUlVGQlpTeEZRVUZGTEVWQlEzQkZTU3hIUVVGM1FpeFBRVUZQTEU5QlFVOUVMRWRCUVdFc1RVRkJUU3hKUVVGSkxFVkJRemRFUlN4SFFVRmpMRGhEUVVOa1F5eEhRVUZsTERoQ1FVTm1ReXhIUVVGclFpeHRRa0ZEYkVKRExFZEJRWEZDWml4SFFVRlpMRmRCUVZrc1lVRkJZeXhUUVVGVExFVkJRM0JGWjBJc1IwRkJkMEpvUWl4SFFVRlpMRTlCUVZFc1UwRkJVeXhGUVVOeVJHbENMRWRCUVdNc2QwSkJRMlJETEVkQlFXVXNUMEZEYmtJc1IwRkJSMVFzUjBGQmFVSXNUVUZCVFN4UlFVRlJTQ3hIUVVGWkxFMUJRVTBzUzBGQlMwVXNSMEZCVlN4TlFVRk5MRXRCUXpORkxFVkJRMDFYTEVkQlFYZENMRTlCUVU4c1QwRkJUMFFzUjBGQllTeE5RVUZOTEVsQlFVa3NSVUZGYmtVc1UwRkJVMFVzUjBGQlNXeENMRVZCUVU5dFFpeEZRVUZMUXl4RlFVRlZMRU5CUTJwRExFbEJRVTF3UXl4RlFVRkpaMElzUlVGQlRXMUNMRU5CUVVjc1JVRkRia0lzVDBGQlQwVXNSVUZCV1hKRExFTkJRVU1zUlVGQlNXOURMRVZCUVZkcVFpeEhRVUZoYmtJc1EwRkJReXhEUVVOdVJDeERRVVZCTEZOQlFWTnpReXhIUVVGamRFSXNSVUZCVDJJc1JVRkJVU3hEUVU5d1F5eE5RVUZQTEVOQlRrMHNRMEZEV0N4TFFVRk5LMElzUjBGQlNXeENMRVZCUVU5aUxFTkJRVTBzUlVGRGRrSXNUVUZCVHl0Q0xFZEJRVWxzUWl4RlFVRlBZaXhGUVVGVExFVkJRVWNzUTBGQlF5eEZRVU12UWl4SlFVRkxLMElzUjBGQlNXeENMRVZCUVU5aUxFVkJRVk1zUlVGQlJ5eERRVUZETEVOQlF5OUNMRVZCUldNc1MwRkJUVUVzUlVGQlV5eERRVUZETEVOQlEyaERMRU5CUlVFc1UwRkJVMjlETEVkQlFXVjJRaXhGUVVGUFlpeEZRVUZSTEVOQlVYSkRMRTFCUVU4c1EwRlFUU3hEUVVOWUxFMUJRVThyUWl4SFFVRkpiRUlzUlVGQlQySXNSVUZCVVN4RFFVRkRMRVZCUXpOQ0xGRkJRVk1yUWl4SFFVRkpiRUlzUlVGQlQySXNSVUZCVXl4RlFVRkhMRU5CUVVNc1JVRkRha01zVVVGQlV5dENMRWRCUVVsc1FpeEZRVUZQWWl4RlFVRlRMRVZCUVVjc1EwRkJReXhGUVVOcVF5eGhRVUZqY1VNc1IwRkJXWGhDTEVWQlFVMWlMRVZCUVZNc1EwRkJReXhEUVVGRExFTkJRemRETEVWQlJXTXNTMEZCVFVFc1JVRkJVeXhEUVVGRExFTkJRMmhETEVOQlJVRXNVMEZCVTNORExFZEJRV2xDZWtJc1JVRkJUMklzUlVGQlVTeERRVU4yUXl4SlFVRk5kVU1zUlVGQlVTeERRVUZETVVJc1JVRkJUV0lzUTBGQlRTeEhRVUZMTEVOQlFVTmhMRVZCUVUxaUxFVkJRVk1zUTBGQlF5eEZRVU12UTNkRExFVkJRV0ZETEVkQlFXRTFRaXhGUVVGTllpeEZRVUZUTEVOQlFVTXNSVUZCUjJFc1JVRkJUV0lzUlVGQlV5eERRVUZETEVOQlFVTXNSVUZET1VSSExFVkJRVTl2UXl4RlFVRlJMRXRCUVU5SExFZEJRV2RDTEZOQlFWTkdMRU5CUVZVc1JVRkRNMFFzVFVGQlR5eERRVUZETEVOQlFVTXNSVUZCUjNKRExFVkJRVTFJTEVWQlFWTXNRMEZCUXl4RFFVTTVRaXhEUVVWQkxGTkJRVk15UXl4SFFVRm5RamxDTEVWQlFVOWlMRVZCUVZFc1EwRkRkRU1zU1VGQlRVY3NSVUZCVDFVc1JVRkJUV0lzUTBGQlRTeEZRVUZKTkVNc1IwRkJVeXhQUVVGUEwwSXNSVUZCVFdJc1EwRkJUU3hEUVVGRExFVkJRVWtzUzBGRE9VUXNUVUZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSMGNzUlVGQlRVZ3NSVUZCVXl4RFFVRkRMRU5CUXpsQ0xFTkJTVUVzU1VGQlRUWkRMRWRCUVdNc1QwRkJUeXhOUVVGTmVrSXNSMEZCYVVJc1RVRkJUU3hIUVVGSExFVkJTWEpFTUVJc1IwRkJZeXdyVUVGRmNFSXNVMEZCVTBNc1IwRkJiVUpzUXl4RlFVRlBMRU5CUTJwRExFZEJRVTBzUTBGRFNrNHNSVUZEUVhsRExFVkJRMEZETEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVOQlEwWXNSVUZCU1RGRExFVkJSVVV5UXl4RlFVRnZRbXBFTEVWQlFVVXNRMEZCUXl4SlFVRk5MRWxCUXpkQ2EwUXNSVUZCYTBKSUxFZEJRV0ZCTEVWQlFWVXNRMEZCUXl4SlFVRk5MRWxCUldoRVNTeEZRVUZqTEVOQlFVTkRMRVZCUVV0RExFVkJRVkVzUzBGRGFFTkVMRWxCUVZFc1UwRkJZME1zUjBGQlZVUXNSMEZCVDBnc1IwRkJjMElzUTBGQlEwY3NSVUZCVFVFc1JVRkZkRVVzVFVGQlR5eERRVU5NTEVOQlEwVXNUVUZCVDBRc1JVRkJXVWNzUjBGQlkySXNRMEZCVHl4RFFVRkRMRVZCUTNwRExFOUJRVkZWTEVWQlFWbEhMRWRCUVdOYUxFTkJRVkVzUTBGQlF5eEZRVU16UXl4TlFVRlBVeXhGUVVGWlJ5eEhRVUZqV0N4RFFVRlBMRU5CUVVNc1JVRkRla01zUzBGQlRWRXNSVUZCV1Vjc1IwRkJZMVlzUTBGQlRTeERRVUZETEVWQlEzWkRMRTFCUVU5UExFVkJRVmxITEVkQlFXTlVMRU5CUVU4c1EwRkJReXhGUVVONlF5eFJRVUZUVFN4RlFVRlpSeXhIUVVGalVpeERRVUZUTEVOQlFVTXNSVUZETjBNc1VVRkJVMHNzUlVGQldVY3NSMEZCWTFBc1EwRkJVeXhGUVVGSFFTeEpRVUZqTEVsQlFVa3NSVUZEYWtVc1lVRkJZMGtzUlVGQldYSkNMRWRCUVZsclFpeERRVUZsTEVWQlFVZEZMRU5CUVdVc1EwRkRla1VzUTBGRFJpeERRVU5HTEVOQlMwRXNTVUZCVFVzc1IwRkJZU3hEUVVOcVFpeEpRVUZMTEVWQlEwd3NTVUZCU3l4SFFVRkxMRWRCUTFZc1NVRkJTeXhIUVVGTExFZEJRMVlzU1VGQlN5eEhRVUZMTEVkQlExWXNTVUZCU3l4SFFVRkxMRWRCUTFZc1NVRkJTeXhIUVVGTExFZEJRMVlzU1VGQlN5eEhRVUZMTEVkQlExWXNTVUZCU3l4SFFVRkxMRWRCUTFZc1NVRkJTeXhIUVVGTExFVkJRMW9zUlVGRlFTeFRRVUZUUXl4SFFVRlpReXhGUVVGWmFFSXNSVUZCVTBNc1JVRkJWVVVzUlVGQlVVTXNSVUZCVTBNc1JVRkJWME1zUlVGQlZ5eERRVU42Uml4SlFVRk5WeXhGUVVGVExFTkJRMklzUzBGQlRXcENMRVZCUVZFc1UwRkJWeXhGUVVGSmEwSXNSMEZCWld4RUxFZEJRV0ZuUXl4RFFVRlBMRU5CUVVNc1JVRkJTV2hETEVkQlFXRm5ReXhEUVVGUExFVkJRM3BHTEUxQlFXVnRRaXhIUVVGWkxGRkJRVkZzUWl4RFFVRlJMRVZCUVVrc1JVRkRMME1zU1VGQlMycERMRWRCUVdGdFF5eERRVUZOTEVWQlEzaENMRXRCUVUxdVF5eEhRVUZoYjBNc1EwRkJUeXhGUVVNeFFpeFBRVUZSY0VNc1IwRkJZWEZETEVOQlFWTXNRMEZEYUVNc1JVRkZRU3hQUVVGSlF5eEpRVUZYVnl4RlFVRlBMRTlCUVZOcVJDeEhRVUZoYzBNc1EwRkJVeXhIUVVOcVJGVXNTVUZEUmtNc1JVRkJUeXhSUVVOTVJDeEZRVUZYTEU5QlFWTXNSVUZEVWtrc1IwRkJZU3hSUVVGUlNpeERRVUZWTEVWQlFVa3NSVUZEYmtOTExFZEJRV01zVVVGQlVVd3NRMEZCVlN4RlFVRkpMRWRCUnpkRFF5eERRVU5VTEVOQlIwRXNTVUZCVFVzc1IwRkJWU3hyVFVGRmFFSXNVMEZCVTBNc1IwRkJaVEZFTEVWQlFVOHNRMEZETjBJc1IwRkJUU3hEUVVOR0xFTkJRMEZ0UkN4RlFVTkJZaXhGUVVOQlJpeEZRVU5CUkN4RlFVTkJTU3hGUVVOQlF5eEZRVU5CUXl4RlFVTkJhMElzUlVGRFFVTXNSVUZEUVVNc1JVRkRRVU1zUTBGRFJpeEZRVUZKT1VRc1JVRkRTbTlFTEVWQlFWTkdMRWRCUVZsRExFVkJRVmxvUWl4RlFVRlRReXhGUVVGVlJTeEZRVUZSUXl4RlFVRlRReXhGUVVGWFF5eERRVUZUTEVWQlJYWkdjMElzUlVGRFNpeFBRVUZKU2l4RlFVTkdTU3hGUVVGVFpDeEhRVUZYVlN4RFFVRlRMRVZCUTNCQ1F5eEZRVU5VUnl4RlFVRlRMRVZCUlZSQkxFVkJRVk51UXl4SFFVRmhhVU1zUlVGQldVTXNRMEZCV1N4RlFVZDZReXhEUVVGRFZpeEZRVUZSTEVsQlFVbDJRaXhIUVVGblFtdERMRU5CUVUwc1EwRkJReXhEUVVNM1F5eERRVVZCTEZOQlFWTkRMRWRCUVd0Q2RFVXNSVUZCUnl4RFFVVTFRaXhQUVVGUFFTeEZRVU5LTEZGQlFWRXNjVUpCUVhOQ0xFZEJRVWNzUlVGRGFrTXNVVUZCVVN4WFFVRlpMRWRCUVVjc1JVRkRka0lzUzBGQlN5eERRVU5XTEVOQlNVRXNTVUZCVFhWRkxFZEJRVlVzTmtoQlEyUkRMRWRCUVZNc2VVcEJRMVJETEVkQlFWRXNORWhCUlZZc1UwRkJVME1zUjBGQmIwSndSU3hGUVVGUExFTkJRMnhETEVkQlFVMHNRMEZCUXl4RFFVRkZiVVFzUlVGQldXSXNSVUZCVVVZc1JVRkJWVVFzUlVGQlUwa3NSVUZCVTBNc1JVRkJWME1zUTBGQlV5eEZRVUZKZWtNc1JVRkZha1lzVFVGQlR5eERRVVJKYTBRc1IwRkJXVU1zUlVGQldXaENMRVZCUVZORExFVkJRVlZGTEVWQlFWRkRMRVZCUVZORExFVkJRVmRETEVOQlFWTXNSVUZETTBWYUxFZEJRV2RDTEZkQlFWY3NRMEZETjBNc1EwRkZRU3hUUVVGVGQwTXNSMEZCWVhKRkxFVkJRVThzUTBGRE0wSXNSMEZCVFN4RFFVRkRMRU5CUVVWdFJDeEZRVUZaWml4RlFVRlZSU3hGUVVGUlF5eEZRVUZUUXl4RlFVRlhReXhGUVVGWFRpeERRVUZQTEVWQlFVbHVReXhGUVVWcVJpeE5RVUZQTEVOQlJFbHJSQ3hIUVVGWlF5eEZRVUZaYUVJc1JVRkJVME1zUlVGQlZVVXNSVUZCVVVNc1JVRkJVME1zUlVGQlYwTXNRMEZCVXl4RlFVTXpSVm9zUjBGQlowSXNWMEZCVnl4RFFVTTNReXhEUVVWQkxFbEJRVTE1UXl4SFFVRXJRalZHTEVkQlFXVm5ReXhIUVVGaFJDeEZRVUZ4UWl4RlFVTm9SamhFTEVkQlFXZEROMFlzUjBGQlpXbERMRWRCUVdOR0xFVkJRWEZDTEVWQlEyeEdLMFFzUjBGQmJVTTVSaXhIUVVGbGEwTXNSMEZCYVVKSUxFVkJRWEZDTEVWQlEzaEdaMFVzUjBGQmRVSXZSaXhIUVVGbE9FSXNSVUZCV1N4RlFVVnNSR3RGTEVkQlFUWkNOVVlzUjBGRGFrTjNReXhIUVVOQlF5eEhRVU5CUlN4SFFVTkJTeXhGUVVOR0xFVkJRMDAyUXl4SFFVRTRRamRHTEVkQlEyeERLMElzUjBGRFFWVXNSMEZEUVVVc1IwRkRRVXNzUlVGRFJpeEZRVU5OT0VNc1IwRkJLMEk1Uml4SFFVTnVRMmRETEVkQlEwRlRMRWRCUTBGRkxFZEJRMEZMTEVWQlEwWXNSVUZEVFN0RExFZEJRVEJDTDBZc1IwRkRPVUo1UXl4SFFVTkJSU3hIUVVOQlN5eEZRVU5HTEVWQlRVOHNVMEZCVTJkRUxFZEJRV0Z3Uml4RlFVRkhMRU5CUXpsQ0xFOUJRVTlFTEVkQlEweERMRVZCUTBFc1EwRkJRelJGTEVkQlFUaENTU3hGUVVFd1FpeEZRVU42UkN4RFFVRkRTQ3hIUVVFclFra3NSVUZCTWtJc1JVRkRNMFFzUTBGQlEwZ3NSMEZCYTBOSkxFVkJRVFJDTEVWQlF5OUVMRU5CUVVOSUxFZEJRWE5DU1N4RlFVRjFRaXhEUVVOb1JDeERRVU5HTEVOQlJVOHNVMEZCVTBVc1IwRkJhVUp5Uml4RlFVRkhMRU5CUTJ4RExFOUJRVTlFTEVkQlFVMTFSU3hIUVVGclFuUkZMRU5CUVVNc1JVRkJSeXhEUVVGREswUXNSMEZCVTBNc1JVRkJZeXhEUVVGRExFTkJRemxFTEVOQlJVOHNVMEZCVTNOQ0xFZEJRV04wUml4RlFVRkhMRU5CUXk5Q0xFOUJRVTlFTEVkQlEweERMRVZCUTBFc1EwRkJRM1ZGTEVkQlFWTkhMRVZCUVcxQ0xFVkJRemRDTEVOQlFVTkdMRWRCUVZGRkxFVkJRVzFDTEVWQlF6VkNMRU5CUVVORUxFZEJRVTlGTEVWQlFWa3NRMEZEZEVJc1EwRkRSaXhEUVVWUExGTkJRVk5aTEVkQlFXbENka1lzUlVGQlJ5eERRVU5zUXl4UFFVRlBSQ3hIUVVGTlF5eEZRVUZITEVOQlFVTjFReXhIUVVGaFF5eEZRVUZyUWl4RFFVRkRMRU5CUTI1RUxFTkJSVUVzU1VGQlRXZEVMRWRCUVhGQ2NFY3NSMEZCYTBKNVF5eEZRVUZqTEVWQlJYQkVMRk5CUVZNMFJDeEhRVUZwUW5wR0xFVkJRVWNzUTBGRGJFTXNUMEZCVDBRc1IwRkJUVU1zUlVGQlJ5eERRVUZEYzBNc1IwRkJZV3RFTEVWQlFXdENMRU5CUVVNc1EwRkRia1FzUTBGRlFTeEpRVUZOUlN4SFFVRXJRakZITEVkQlFXVnhReXhIUVVGaFJTeEZRVUZ4UWl4RlFVTm9SbTlGTEVkQlFYVkNNMGNzUjBGQlpYTkRMRVZCUVZrc1JVRkZiRVJ6UlN4SFFVRnJRM2hITEVkQlEzUkRlVU1zUjBGRFFVVXNSMEZEUVVzc1JVRkRSaXhGUVVWUExGTkJRVk41UkN4SFFVRlROMFlzUlVGQlJ5eERRVU14UWl4UFFVRlBSQ3hIUVVOTVF5eEZRVU5CTEVOQlFVTXdSaXhIUVVFNFFsWXNSVUZCTUVJc1JVRkRla1FzUTBGQlExY3NSMEZCYzBKRExFVkJRU3RDTEVOQlEzaEVMRU5CUTBZc1EwTnNWVUVzU1VGQlRVVXNSMEZCVlN4dFFrRkhTRU1zUjBGQmFVSXNRMEZETVVJc1RVRkJUeXhEUVVOTUxFdEJRVTBzUlVGRFRpeE5RVUZQTEVWQlFVa3NSMEZEV0N4UlFVRlRMRVZCUVVrc1IwRkJTeXhIUVVOc1FpeFJRVUZUTEVWQlFVa3NSMEZCU3l4SFFVRkxMRWRCUTNaQ0xHRkJRV01zUlVGQlNTeEhRVUZMTEVkQlFVc3NSMEZCU3l4SFFVTnVReXhGUVVOQkxFdEJRVTBzUTBGRFNpeE5RVUZQTEVkQlExQXNVVUZCVXl4SFFVRkxMRWRCUTJRc1VVRkJVeXhIUVVGTExFZEJRVXNzUjBGRGJrSXNZVUZCWXl4SFFVRkxMRWRCUVVzc1IwRkJTeXhIUVVNdlFpeEZRVU5CTEUxQlFVOHNRMEZCUlN4UlFVRlRMRWRCUVVrc1VVRkJVeXhIUVVGTExFZEJRVWtzWVVGQll5eEhRVUZMTEVkQlFVc3NSMEZCU3l4RlFVTnlSU3hSUVVGVExFTkJRVVVzVVVGQlV5eEhRVUZKTEdGQlFXTXNSMEZCU3l4SFFVRkxMRVZCUTJoRUxGRkJRVk1zUTBGQlJTeGhRVUZqTEVkQlFVc3NRMEZEYUVNc1JVRkRRVU1zUjBGQlpVTXNSVUZCUVN4RFFVTmlMRTFCUVU4c1EwRkRUQ3hUUVVGVkxFVkJRMVlzVDBGQlVTeEhRVU5TTEUxQlFVOHNSMEZEVUN4TFFVRk5MRWxCUTA0c1RVRkJUeXhKUVVGTkxFZEJRMklzVVVGQlV5eEpRVUZOTEVkQlFVc3NSMEZEY0VJc1VVRkJVeXhKUVVGTkxFZEJRVXNzUjBGQlN5eEhRVU42UWl4aFFVRmpMRWxCUVUwc1IwRkJTeXhIUVVGTExFZEJRVXNzUjBGRGNrTXNSVUZEUVN4VFFVRlZMRU5CUTFJc1QwRkJVU3hGUVVOU0xFMUJRVThzUjBGRFVDeExRVUZOTEVkQlEwNHNUVUZCVHl4SFFVRkxMRWRCUTFvc1VVRkJVeXhIUVVGTExFZEJRVXNzUjBGRGJrSXNVVUZCVXl4SFFVRkxMRWRCUVVzc1IwRkJTeXhIUVVONFFpeGhRVUZqTEVkQlFVc3NSMEZCU3l4SFFVRkxMRWRCUVVzc1IwRkRjRU1zUlVGRFFTeFBRVUZSTEVOQlEwNHNUVUZCVHl4RlFVTlFMRXRCUVUwc1IwRkRUaXhOUVVGUExFZEJRVXNzUjBGRFdpeFJRVUZUTEVkQlFVc3NSMEZCU3l4SFFVTnVRaXhSUVVGVExFZEJRVXNzUjBGQlN5eEhRVUZMTEVkQlEzaENMR0ZCUVdNc1IwRkJTeXhIUVVGTExFZEJRVXNzUjBGQlN5eEhRVU53UXl4SFFVVkhSaXhKUVVWTVJ5eEhRVUZ4UWl4UFFVRlhMRWxCUTJoRFF5eEhRVUZ6UWl4UFFVRlhMRXRCUTJwRFF5eEhRVUZwUWtnc1JVRkJRU3hEUVVObUxFMUJRVThzUTBGRFRDeFRRVUZWTEVWQlExWXNUMEZCVVN4SFFVTlNMRTFCUVU5RExFZEJRWEZDTEVWQlF6VkNMRXRCUVUxQkxFZEJRMDRzVFVGQlQwRXNSMEZCY1VJc1IwRkROVUlzVVVGQlUwRXNSMEZCY1VJc1IwRkJTeXhIUVVOdVF5eFJRVUZUUVN4SFFVRnhRaXhIUVVGTExFZEJRVXNzUjBGRGVFTXNZVUZCWTBFc1IwRkJjVUlzUjBGQlN5eEhRVUZMTEVkQlFVc3NSMEZEY0VRc1JVRkRRU3hUUVVGVkxFTkJRMUlzVDBGQlVTeEZRVU5TTEUxQlFVOUJMRWRCUVhGQ0xFZEJRelZDTEV0QlFVMUJMRWRCUVhGQ0xFVkJRek5DTEUxQlFWRkJMRWRCUVhGQ0xFZEJRVTBzUlVGRGJrTXNVVUZCVlVFc1IwRkJjVUlzUjBGQlN5eEhRVUZOTEVWQlF6RkRMRkZCUVZWQkxFZEJRWEZDTEVkQlFVc3NSMEZCU3l4SFFVRk5MRVZCUXk5RExHRkJRV1ZCTEVkQlFYRkNMRWRCUVVzc1IwRkJTeXhIUVVGTExFbEJRVkVzUTBGRE4wUXNSVUZEUVN4UFFVRlJMRU5CUTA0c1RVRkJUME1zUjBGQmMwSXNSVUZETjBJc1MwRkJUVUVzUjBGRFRpeE5RVUZQUVN4SFFVRnpRaXhIUVVNM1FpeFJRVUZUUVN4SFFVRnpRaXhIUVVGTExFZEJRM0JETEZGQlFWTkJMRWRCUVhOQ0xFZEJRVXNzUjBGQlN5eEhRVU42UXl4aFFVRmpRU3hIUVVGelFpeEhRVUZMTEVkQlFVc3NSMEZCU3l4SFFVTnlSQ3hIUVVOSFNpeEpRVWxFVFN4SFFVRmxMRU5CUTI1Q0xGRkJRMEVzVjBGRFFTeFRRVU5CTEZGQlEwRXNUMEZEUVN4UlFVTkJMRlZCUTBFc1ZVRkRRU3hqUVVOR0xFVkJSVTFETEVkQlFXVkVMRWRCUVdFc1RVRkJUU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVWR1UkN4VFFVRlRSU3hIUVVGTlF5eEZRVUZMUXl4RlFVRk5ReXhGUVVGUkxFZEJRVThzUTBGRmRrTXNTVUZCVFVNc1JVRkJUeXhEUVVOWUxFOUJRVkZFTEVWQlFWRkVMRVZCUVVzc1QwRkJVMUlzU1VGQlFTeEhRVUZMVHl4RlFVRkpMRkZCUVZsRExFVkJRVXNzVVVGQlZTeERRVUZETEVkQlEyNUZMRWxCUVV0RUxFVkJRVWtzU1VGQlNTeE5RVUZOUXl4RlFVRkxMRWRCUVVjc1JVRkRNMElzYlVKQlFXOUNRU3hGUVVGTExHOUNRVUZ6UWtRc1JVRkJTU3hyUWtGRGNrUXNSVUZEUVN4UFFVRlBMRWxCUVVsSkxFVkJRVk5FTEVOQlFVa3NRMEZETVVJc1EwRkZRU3hUUVVGVFJTeEhRVUZWTEVWQlFVY3NRMEZEY0VJc1QwRkJUeXhGUVVGSkxFVkJRVWtzUzBGQlN5eE5RVUZOTEVOQlFVTXNSVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVNMVF5eERRVWRCTEZOQlFWTkRMRWRCUVZGRExFVkJRVkZETEVWQlFWTkRMRVZCUVZWRExFVkJRVTlETEVWQlFWRXNRMEZEZWtRc1NVRkJUVU1zUlVGQlQwd3NSVUZCVDBrc1EwRkJUU3hGUVVGRlJpeERRVUZSTEVWQlEyeERTU3hGUVVGTlRDeEZRVUZSUXl4RFFVRlJMRVZCUVVsSExFVkJRekZDUlN4RlFVRlhMRXRCUVVzc1MwRkJTMFFzUTBGQlJ5eEpRVUZOTEV0QlFVc3NTMEZCUzBnc1JVRkJUVU1zUTBGQlRTeERRVUZETEVWQlJYSkVTU3hGUVVORkxFTkJRVU5FTEVkQlFWbEtMRVZCUVUxRExFTkJRVTBzU1VGQlRTeEhRVUZMTEV0QlFVc3NTVUZCU1VVc1EwRkJSeXhIUVVGTExFVkJRVWxTTEVkQlFWVlJMRU5CUVVjc1JVRkJTU3hMUVVGTExFMUJRVTFCTEVOQlFVY3NSVUZETlVaSUxFVkJRVTFETEVOQlFVMHNSMEZCUzBrc1JVRkRha0pRTEVWQlFWRkRMRU5CUVZFc1IwRkJTMDBzUlVGQlVVZ3NRMEZETDBJc1EwRkhRU3hUUVVGVFNTeEhRVUZuUWxRc1JVRkJVVlVzUlVGQlRTeERRVU55UTI1Q0xFZEJRV0VzVDBGQlR5eERRVUZEYjBJc1JVRkJWVU1zU1VGRGVFSkRMRVZCUVZsSUxFVkJRVXRGTEVOQlFVOHNRMEZCUXl4RlFVMXlRa1FzUjBGTVNFRXNSMEZEUmxvc1IwRkJVVU1zUlVGQlVWVXNSVUZCVFVNc1JVRkJWVVFzUlVGQlRVVXNRMEZCVHl4RlFVVjRRMEVzUjBGSlVpeEpRVUZKTEVOQlExUXNRMEZsUVN4SlFVRnhRbVlzUlVGQmNrSXNUVUZCY1VKcFFpeERRVUZUTEVOQlNUVkNMRmxCUVZsRExFVkJRVkVzUTBGRGJFSXNTVUZCVFVNc1JVRkJWMFFzUlVGQlR5eHhRa0ZCZFVJc1dVRkJZeXhIUVVrM1JDeExRVUZMTEU5QlFWTkJMRVZCUVU4c1QwRkpja0lzUzBGQlN5eEpRVUZOUVN4RlFVRlBMRXRCUVU5RkxFZEJRVThzVDBGQlR5eEZRVWwyUXl4TFFVRkxMRzFDUVVGeFFrUXNSVUZCVnl4WFFVRmhMRk5CU1d4RUxFdEJRVXNzVVVGQlZVUXNSVUZCVHl4VFFVRlhMRXRCU1dwRExFdEJRVXNzVDBGQlUwTXNSVUZCVnpOQ0xFZEJRV2xDU2l4SFFVa3hReXhMUVVGTExHZENRVUZyUWl4RlFVTjZRaXhEUVZkQkxFOUJRVThzVjBGQlYybERMRVZCUVU5RExFVkJRVTBzUTBGRE4wSXNUMEZCVDB3c1JVRkJVeXhYUVVGWExFTkJRVVVzWVVGQlkwa3NRMEZCVFN4RlFVRkhReXhEUVVGSkxFTkJRekZFTEVOQmNVSkJMRTlCUVU4c1YwRkJWME1zUlVGQlMwUXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRhRU1zUjBGQlNVTXNSMEZCVHl4TlFVRlJMRTlCUVU5QkxFZEJRVkVzVTBGRGFFTXNUVUZCVFN4SlFVRkpReXhIUVVOU0xDdEVRVU5GUkN4SlFVRlJMRXRCUVU4c1QwRkJVeXhQUVVGUFFTeERRVU5xUXl4RlFVTkdMRVZCUjBZc1QwRkJUeXhKUVVGSlRpeEZRVUZUTEVOQlEyeENMRTlCUVZGUkxFZEJRV2RDUml4RlFVRkxUaXhGUVVGVExHRkJRV0VzUlVGRGJrUXNTVUZCUzBjc1IwRkJUeXhYUVVGWFJTeERRVUZKTEVWQlF6TkNMRzFDUVVGdlFrRXNSVUZCU3l4clFrRkRNMElzUTBGQlF5eERRVU5JTEVOQldVRXNUMEZCVHl4cFFrRkJhVUpKTEVWQlFXTXNRMEZEY0VNc1IwRkJTVU1zUjBGQlUwUXNRMEZCV1N4RlFVTjJRaXhQUVVGUFZDeEZRVUZUTEZkQlFWZFRMRU5CUVZrc1JVRkRiRU1zUjBGQlNWUXNSVUZCVXl4WFFVRlhVeXhEUVVGWkxFVkJRM3BETEU5QlFVOUJMRVZCUTBZc1IwRkJTU3hQUVVGUFFTeEhRVUZwUWl4VFFVTnFReXhQUVVGUFZDeEZRVUZUTEZkQlFWZFRMRU5CUVZrc1JVRkZka01zVFVGQlRTeEpRVUZKUml4SFFVTlNMRFpDUVVFMlFrVXNRMEZCV1N4WlFVRlpMRTlCUVU5QkxFTkJRVmtzUlVGRE1VVXNRMEZGU2l4RFFXVkJMRTlCUVU4c1VVRkJVVVVzUlVGQlRVNHNSVUZCVFN4RFFVTjZRaXhIUVVGTkxFTkJRVU5QTEVOQlFVMHNSVUZCU1VNc1IwRkJhVUpHTEVOQlFVa3NSVUZEZEVNc1QwRkJTVU1zUlVGRFMxb3NSVUZCVXl4WFFVRlhXU3hGUVVGUlVDeERRVUZKTEVWQlJXaERUQ3hGUVVGVExGRkJRVkVzWVVGQll5eGpRVUZqVnl4RFFVRkpMQ3RDUVVFclFpeERRVVV6Uml4RFFXbENRU3hQUVVGUExGbEJRVmxCTEVWQlFVMU9MRVZCUVUwc1EwRkROMElzUjBGQlRTeERRVUZEVHl4RFFVRk5MRVZCUVVsRkxFZEJRV2xDU0N4RFFVRkpMRVZCUTNSRExFOUJRVWxETEVWQlEwdGFMRVZCUVZNc1YwRkJWMWtzUlVGQlVWQXNRMEZCU1N4RlFVVm9RMHdzUlVGQlV5eFJRVUZSTEdGQlFXTXNZMEZCWTFjc1EwRkJTU3dyUWtGQkswSXNRMEZGTTBZc1EwRlJRU3hQUVVGUExGRkJRVkZKTEVWQlFWRkRMRVZCUVdNc1MwRkJUU3hEUVVONlF5eEhRVUZKTEVOQlFVTkVMRVZCUTBnc1RVRkJUU3hKUVVGSlVpeEhRVUZ4UWl4clJFRkJhMFFzUlVGSGJrWXNTVUZCVFZVc1JVRkJWVVlzWVVGQmEwSkhMRWRCUVZWSUxFVkJRVk1zU1VGQlNVY3NSMEZCVVVnc1JVRkJVVU1zUTBGQlZ5eEZRVVZ3Uml4SFFVRkpSeXhGUVVGVExHVkJRMWdzVFVGQlRTeEpRVUZKUXl4SFFVRnhRa2dzUTBGQlR5eEZRVVYwUXl4UFFVRlBMRWxCUVVscVFpeEZRVUZUTEVOQlFVVXNVVUZCUVdsQ0xFTkJRVkVzUTBGQlF5eERRVVZ1UXl4RFFVdEJMRTlCUVU4c1kwRkJZMGtzUlVGQlRTeERRVU42UWl4SlFVRk5ReXhGUVVGaExFTkJRMnBDTEV0QlFVMHNVVUZEVGl4TlFVRlBMRkZCUTFBc1VVRkJVeXhYUVVOVUxGTkJRVlVzVjBGRFZpeE5RVUZQTEZOQlExQXNUMEZCVVN4VFFVTlNMRXRCUVUwc1VVRkRUaXhOUVVGUExGRkJRMUFzU1VGQlN5eFBRVU5NTEV0QlFVMHNUMEZEVGl4TFFVRk5MRkZCUTA0c1RVRkJUeXhSUVVOUUxFOUJRVkVzVlVGRFVpeFJRVUZUTEZWQlExUXNUMEZCVVN4VlFVTlNMRkZCUVZNc1ZVRkRWQ3haUVVGaExHVkJRMklzWVVGQll5eGpRVU5vUWl4RlFVRkZSQ3hIUVVGUFFTeEZRVUZMTEZsQlFWa3NRMEZCVVN4RlFVVnNReXhIUVVGSkxFTkJRVU5ETEVWQlFWa3NUVUZCVFN4SlFVRkpReXhIUVVGcFFrWXNRMEZCU1N4RlFVVm9SQ3hQUVVGUFF5eERRVU5VTEVOQlQwRXNUMEZCVHl4WFFVRlhSU3hGUVVGSExFTkJRMjVDTEU5QlFWRkJMRWRCUVV0QkxFVkJRVVVzYVVKQlFXOUNMRVZCUTNKRExFTkJUVUVzU1VGQlNTeFJRVUZUTEVOQlExZ3NUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhKUVVGSkxFOUJRVk1zU1VGRE1VTXNRMEZQUVN4SlFVRkpMR2xDUVVGclFpeERRVU53UWl4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFbEJRVWtzWjBKQlFXdENMRWxCUTI1RUxFTkJkMEpCTEZOQlFWTkRMRVZCUVV0d1FpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVVjJRaXhKUVVGTmNVSXNSVUZCVlVNc1IwRkJRWFpFTEVWQlFVRXNSMEZEV0dsRExFZEJSRmNzUTBGRlpDeE5RVUZQUVN4RlFVRkxMRkZCUVZVc1NVRkJVMEVzUlVGQlN5eFJRVUZWTEVWQlEyaEVMRWRCUTBFc1QwRkJUeXhMUVVGTExGRkJRMUoxUWl4SFFVRlZMRTlCUVU4c1MwRkJTeXhKUVVGTFJpeERRVUZQTEVWQlFVVXNlVUpCUVhsQ0xFdEJRVTFFTEVOQlFVY3NSVUZEZEVWNFJDeEZRVU5PTEVOQlpVRXNVVUZCVVc5RExFVkJRVThzUTBGQlF5eEZRVUZITEVOQlEycENMRWxCUVUxM1FpeEZRVUZKY2tRc1IwRkRVQ3hKUVVGTE5rTXNSMEZCVXl4RFFVTmlMRWxCUVUxVExFVkJRVTBzUzBGQlN5eFBRVUZQVkN4RFFVRkpMRVZCUXpWQ0xFOUJRVWwwUWl4RlFVRlpLMElzUTBGQlJ5eEZRVU5XTEV0QlJVWXNTMEZCU3l4SlFVTlVMR2RDUVVGblFrZ3NSMEZCUVhaRUxFVkJRVUVzUTBGQlJTeE5RVUZQTEU5QlFWRXNXVUZCWVN4UlFVRlhhVU1zUjBGQmVrTXNRMEZCSzBNc1MwRkJUV2RDTEVWQlFVc3NUVUZCVFN4RlFVRkhMRVZCUVVVc1EwRkJSU3hGUVVGRExFVkJRM2hHTEU5QlFVOVRMRU5CUVVjc1EwRkRaaXhEUVVGRExFVkJRMEVzVDBGQlVVTXNSMEZCVFVFc1EwRkJReXhGUVVWc1FpeFBRVUZQTEV0QlFVc3NTVUZEVkN4alFVRmpNMFFzUlVGQlFTeERRVUZGTEV0QlFVMHNZMEZCWlN4TlFVRlBhVU1zUlVGQlN5eFhRVUZoTEZWQlFXRkJMRVZCUVUwc1JVRkRha1lzVDBGQlQzZENMRU5CUVVNc1EwRkRZaXhEUVU5QkxGVkJRVmNzUTBGRFZDeFBRVUZMTEV0QlFVc3NVVUZEU0hwRUxFVkJRVUVzUjBGQlN5eExRVUZMTEZGQlJGTXNRMEZCUXl4RFFVVTNRaXhEUVZsQkxFOUJRVkVzUTBGRlRpeEhRVUZKTEVOQlFVTXNTMEZCU3l4UlFVRlRMRTlCUVU4c1MwRkZNVUlzU1VGQlNUUkVMRVZCUVVrc1NVRkRVaXhQUVVGSkxFdEJRVXNzVVVGQlZTeEpRVUZIUVN4SFFVRkxMRXRCUVVzc1RVRkJVU3hOUVVOd1F5eExRVUZMTEZOQlFWY3NSMEZCU3l4TFFVRkxMRmRCUVdFc1MwRkJSMEVzUjBGQlN5eExRVUZMTEU5QlFWTXNTMEZCU3l4VFFVRlhMRVZCUVVrc1MwRkRha1lzUzBGQlN5eFJRVUZWTEVsQlFVZEJMRWRCUVVzc1MwRkJTeXhOUVVGUkxFdEJRM0JETEV0QlFVc3NUMEZCVXl4SlFVRkhRU3hIUVVGTExFdEJRVXNzUzBGQlR5eE5RVU5zUXl4TFFVRkxMRkZCUVZVc1IwRkJTeXhMUVVGTExGVkJRVmtzUjBGQlN5eExRVUZMTEZWQlFWa3NSMEZCU3l4TFFVRkxMR1ZCUVdsQ0xFdEJRM2hHUVN4SFFVRkxMRXRCUTBnc1MwRkJTeXhSUVVGVkxFbEJRVWRCTEVkQlFVc3NTMEZCU3l4TlFVRlJMRXRCUTNCRExFdEJRVXNzVlVGQldTeEpRVUZIUVN4SFFVRkxMRXRCUVVzc1VVRkJWU3hOUVVONFF5eExRVUZMTEZWQlFWa3NSMEZCU3l4TFFVRkxMR1ZCUVdsQ0xFdEJSemxEUVN4SFFVRkxReXhIUVVGUkxFdEJRVXNzVVVGQlZTeExRVUZMTEdGQlFXVXNTVUZCVFN4RFFVRkRMRVZCUVVrc1MwRkRla1JFTEVsQlFVMHNUVUZCUzBFc1IwRkJTeXhQUVVOaVFTeERRVU5VTEVOQmEwSkJMRlZCUVZVelFpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTnVRaXhIUVVGSkxFTkJRVU1zUzBGQlN5eFJRVUZUTEU5QlFVOHNTMEZGTVVJc1NVRkJUVFpDTEVWQlFWTXNTMEZCU3l4VFFVRlRMRVZCUXpkQ0xFZEJRVWxCTEVWQlFWTXNSMEZCUzBFc1IwRkJWU3hOUVVGVkxFOUJRVThzUzBGRk4wTTNRaXhGUVVGUGFrTXNSVUZCUVN4RFFVTk1MSEZDUVVGelFpeEhRVU4wUWl4blFrRkJhVUlzUjBGRGFrSXNZMEZCWlN4SFFVTm1MRTlCUVZFc1dVRkRUR2xETEVkQlIwd3NTVUZCVFRoQ0xFVkJRVkVzUzBGQlN5eFJRVUZSTEZGQlFWTXNWVUZCVnl4VlFVRlhMR05CUVdNc1JVRkZjRVZXTEVWQlFVMXdRaXhGUVVGTExGTkJRVmNzVVVGQlZTeFBRVUZUTEZOQlJYcERMRU5CUVVOQkxFVkJRVXNzYVVKQlFXMUNPRUlzUlVGQlRTeFZRVUZaTEVkQlFVdEJMRVZCUVUwc1pVRkJhVUlzUzBGRGVrVldMRWRCUVU5d1FpeEZRVUZMTEZOQlFWY3NVVUZCVlN4TFFVRlBMRTlCUTNCRExFTkJRVU5CTEVWQlFVc3NjMEpCUVhkQ09FSXNSVUZCVFN4bFFVRnBRaXhMUVVOMlJGWXNSMEZCVHl4VFFVbFlMRWxCUVVsWExFVkJRVTFFTEVWQlFVMHNVMEZCVTFZc1EwRkJSeXhGUVVVMVFpeFBRVUZKY0VJc1JVRkJTeXhuUWtGRFVDdENMRVZCUVUwc1NVRkJUVUVzUjBGSFVFRXNRMEZEVkN4RFFVMUJMRkZCUVZNc1EwRkRVQ3hQUVVGUExFdEJRVXNzVFVGQlRTeERRVU53UWl4RFFVMUJMRlZCUVZjc1EwRkRWQ3hQUVVGUExFdEJRVXNzVFVGQlRTeERRVU53UWl4RFFVMUJMRlZCUVZjc1EwRkRWQ3hQUVVGUExFdEJRVXNzUjBGQlJ5eGpRVUZqTEVOQlF5OUNMRU5CVFVFc1UwRkJWU3hEUVVOU0xFOUJRVThzUzBGQlN5eFRRVUZUTEVOQlEzWkNMRU5CVDBFc1MwRkJTME1zUlVGQlZTeERRVU5pTEVkQlFVa3NRMEZCUXl4TFFVRkxMRkZCUVZNc1QwRkJUeXhMUVVVeFFpeEpRVUZOTVVRc1JVRkJUWEZDTEVWQlFWTXNhVUpCUVdsQ2NVTXNRMEZCVVN4RlFVTTFRME1zUlVGQlV5eERRVUZETEVWQlJWb3NVVUZCVjBNc1MwRkJTeTlFTEVsQlExWm5SU3hIUVVGbE4wUXNSVUZCU1N4UFFVRlJORVFzUTBGQlF5eEhRVUZMUXl4SFFVRmxMRXRCUVVzc1QwRkJVVVFzUTBGQlF5eExRVU5vUlVRc1JVRkJUME1zUTBGQlF5eEZRVUZKTlVRc1JVRkJTU3hKUVVGSk5FUXNRMEZCUXl4RlFVRkpMRXRCUVVzc1NVRkJTVUVzUTBGQlF5eEhRVWwyUXl4UFFVRlBOMFFzUjBGQlRTeExRVUZOTEVOQlFVVXNUMEZCVVRSRUxFTkJRVThzUlVGQlJ5eEZRVUZKTEVOQlF6ZERMRU5CVDBFc1RVRkJUVVFzUlVGQlZTeERRVU5rTEVkQlFVa3NRMEZCUXl4TFFVRkxMRkZCUVZNc1QwRkJUeXhMUVVVeFFpeEpRVUZOTVVRc1JVRkJUWEZDTEVWQlFWTXNhVUpCUVdsQ2NVTXNRMEZCVVN4RlFVTTVReXhQUVVGUExFdEJRVXNzUzBGQlN6RkVMRVZCUVVrc1QwRkJUeXhEUVVGRExFTkJReTlDTEVOQlUwRXNVMEZCVXpoRUxFVkJRVWtzUTBGRFdDeEhRVUZKTEVOQlFVTXNTMEZCU3l4UlFVRlRMRTlCUVU4c1MwRkRNVUlzU1VGQlRVZ3NSVUZCVXl4RFFVRkRMRVZCUTJoQ0xGRkJRVmRETEV0QlFVc3NUMEZCVHl4TFFVRkxMRXRCUVVzc1RVRkJUU3hGUVVOeVEwUXNSVUZCVDBNc1EwRkJReXhGUVVGSlJ5eEhRVUZUUkN4RlFVRkhMRXRCUVVzc1QwRkJUMFlzUTBGQlF5eEZRVUZIUVN4RFFVRkRMRU5CUVVNc1JVRkZOVU1zVDBGQlR6ZEVMRWRCUVUwc1MwRkJUU3hEUVVGRkxFOUJRVkUwUkN4RFFVRlBMRVZCUVVjc1JVRkJTU3hEUVVNM1F5eERRVlZCTEVsQlFVbHFRaXhGUVVGTkxFTkJRMUlzVDBGQlR5eExRVUZMY2tJc1JVRkJVeXhqUVVGamNVSXNRMEZCU1N4RFFVRkRMRU5CUXpGRExFTkJVMEVzU1VGQlNYTkNMRVZCUVZFc1EwRkRWaXhIUVVGSkxFTkJRVU1zUzBGQlN5eFJRVUZUTEU5QlFVOHNTMEZGTVVJc1NVRkJUVU1zUlVGQlVYaEZMRWxCUVVFc1IwRkJTeXhMUVVGTExGRkJRVmR2UXl4SFFVRm5RbTFETEVWQlFWRXpReXhGUVVGVExHRkJRV0VzUjBGRGFrWXNUMEZCVDNSQ0xFZEJRVTBzUzBGQlRTeERRVUZGTEU5QlFWRnJSU3hEUVVGTkxFTkJRVU1zUTBGRGRFTXNRMEZQUVN4WlFVRlpMRU5CUVVVc1QwRkJRVU1zUlVGQlVTeG5Ra0ZCUVVNc1JVRkJhVUlzYlVKQlFVRkRMRU5CUVcxQ0xFVkJRVWtzUTBGQlF5eEZRVUZITEVOQlEyaEZMRWxCUVUxRExFVkJRVTBzUzBGQlN5eEpRVUZKTEUxQlFVMHNRMEZCUlN4UFFVRkJTQ3hGUVVGUkxHZENRVUZCUXl4RFFVRm5RaXhEUVVGRExFVkJRM0JFZWtNc1JVRkJUeXhEUVVGRkxFbEJRVUV5UXl4RFFVRkpMRVZCUldZc1QwRkJTVVFzU1VGRFJqRkRMRVZCUVVzc2JVSkJRWEZDTUVNc1IwRkhja0p5UlN4SFFVRk5MRXRCUVUweVFpeERRVUZKTEVOQlEzcENMRU5CVlVFc1IwRkJSMmRDTEVWQlFVMHNRMEZEVUN4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExGRkJRVkZCTEVOQlFVa3NSVUZCUlN4SlFVRkpRU3hEUVVGSkxFVkJRVWtzUjBGRGRrUXNRMEZSUVN4WFFVRlpMRU5CUTFZc1IwRkJTU3hEUVVGRExFdEJRVXNzVVVGQlV5eFBRVUZQTEV0QlF6RkNMRWxCUVUxNlFpeEZRVUZQTEV0QlFVc3NVMEZCVXl4RlFVTXpRaXhQUVVGQlJDeEhRVUZuUWl4TFFVRkxMRTlCUVZGRExFTkJRVWtzUlVGRE1VSnNRaXhIUVVGTkxFdEJRVTBzUTBGQlJTeFBRVUZSYTBJc1EwRkJTeXhGUVVGSExFVkJRVWtzUTBGRE0wTXNRMEZQUVN4WFFVRlhjVVFzUlVGQlR5eERRVU5vUWl4SFFVRkpMRU5CUVVNc1MwRkJTeXhSUVVGVExFOUJRVThzUzBGRk1VSXNSMEZCU1VFc1JVRkJUU3hUUVVGWExFVkJRMjVDTEU5QlFVOHNTMEZIVkVFc1JVRkJVVUVzUlVGQlRTeEpRVUZMUXl4SFFVRk5iRVFzUlVGQlV5eGpRVUZqYTBRc1EwRkJReXhEUVVGRExFVkJSV3hFTEVsQlFVMURMRVZCUVZFc1EwRkJReXhGUVVOaVF5eEZRVUZqTEVOQlFVTXNSVUZEWm5oRUxFVkJRVThzUzBGQlN5eFRRVUZUTEVWQlEyNUNlVVFzUlVGRlNpeFJRVUZYWkN4TFFVRkxMMFFzUjBGRFpDeEhRVUZKZVVVc1JVRkJUU3hSUVVGUlZpeERRVUZETEVkQlFVc3NSVUZCUnl4RFFVTjZRbU1zUlVGQlYyUXNSVUZGV0N4SlFVRkpaU3hGUVVGTkxFVkJSMVlzVVVGQlYwTXNTMEZCVFVnc1JVRkRaa1VzUjBGQlR5eExRVUZMTEU5QlFVOURMRU5CUVVVc1JVRkJSV2hDTEVOQlFVTXNSVUZCU1dFc1JVRkJXVWNzUTBGQlJTeEZRVU14UTBnc1JVRkJXVWNzUTBGQlJTeEZRVUZKTEVWQlNXaENOME1zUjBGQlUyUXNSVUZCU3pKRExFTkJRVU1zUTBGQlF5eEpRVU5zUW1Vc1IwRkJUekZFTEVWQlFVc3lReXhEUVVGRExFZEJSMllzU1VGQlRXbENMRVZCUVVrc1MwRkJTeXhOUVVGTlJpeERRVUZITEVWQlEzaENTQ3hGUVVGTldpeERRVUZETEVWQlFVbHBRaXhGUVVOWVNpeEZRVUZaWWl4RFFVRkRMRWRCUVV0bExFVkJRVTBzU1VGQlQwVXNSVUZCU1N4TFFVRlJMRWxCUnpORExGRkJRVmRETEV0QlFWRTNSQ3hGUVVOaWNFSXNSMEZCWVN4UlFVRlJhVVlzUTBGQlNTeEZRVUZKYWtZc1IwRkJZU3hSUVVGUkswUXNRMEZCUXl4SFFVTnlSSFJFTEVkQlFWRXNTMEZCU3l4UFFVRlJWeXhGUVVGTk5rUXNSVUZCVFU0c1JVRkJUMW9zUTBGQlF5eERRVWt2UXl4TlFVRlhOMElzUjBGQlUyUXNSVUZCU3pKRExFTkJRVU1zUTBGQlF5eEpRVU42UW1Fc1JVRkJXV0lzUTBGQlF5eEZRVUZKTTBNc1JVRkJTekpETEVOQlFVTXNSMEZOTTBJc1VVRkJWMjFDTEV0QlFVOU9MRVZCUTFwQkxFVkJRVmxOTEVOQlFVY3NTVUZCVFN4SlFVTjJRbEFzUlVGQlRVVXNRMEZCVVN4SFFVTmFTeXhKUVVGUlRDeEZRVUZYUkN4RlFVRlpUU3hEUVVGSExFVkJRVWxPTEVWQlFWbE5MRU5CUVVjc1JVRkJTU3hMUVVGTExFOUJRVTlNTEVOQlFWRXNSVUZCUlVzc1EwRkJSeXhIUVVsNFJpeFBRVUZQYUVZc1IwRkJUU3hMUVVGTkxFTkJRVVVzVDBGQlVYbEZMRU5CUVUwc1JVRkJSeXhGUVVGSkxFVkJRVVVzVlVGQlZTeERRVU40UkN4RFFVOUJMRkZCUVZNc1EwRkRVQ3hIUVVGSkxFTkJRVU1zUzBGQlN5eFJRVUZUTEU5QlFVOHNTMEZETVVJc1NVRkJUVkVzUlVGQlZTeERRVUZETEVWQlEycENMRkZCUVZkd1FpeExRVUZMTEU5QlFVOHNTMEZCU3l4TFFVRkxMRTFCUVUwc1JVRkRja052UWl4RlFVRlJjRUlzUTBGQlF5eEZRVUZKTEV0QlFVc3NUMEZCVDBFc1EwRkJReXhKUVVGTkxFVkJRVWtzUlVGQlNTeERRVUZETEV0QlFVc3NUMEZCVDBFc1EwRkJReXhGUVVWNFJDeFBRVUZQTjBRc1IwRkJUU3hMUVVGTkxFTkJRVVVzVDBGQlVXbEdMRU5CUVZFc1JVRkJSeXhGUVVGSkxFTkJRemxETEVOQlRVRXNTVUZCU1N4UFFVRlJMRU5CUTFZc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eFBRVUZQTEU5QlFWTXNSVUZCU1N4SFFVTnFSQ3hEUVUxQkxFbEJRVWtzVlVGQlZ5eERRVU5pTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1QwRkJUeXhWUVVGWkxFVkJRVWtzUjBGRGNFUXNRMEZOUVN4SlFVRkpMRkZCUVZNc1EwRkRXQ3hQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEU5QlFVOHNVVUZCVlN4RlFVRkpMRWRCUTJ4RUxFTkJUVUVzU1VGQlNTeFBRVUZSTEVOQlExWXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhQUVVGUExFOUJRVk1zUlVGQlNTeEhRVU5xUkN4RFFVMUJMRWxCUVVrc1RVRkJUeXhEUVVOVUxFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NUMEZCVHl4TlFVRlJMRVZCUVVrc1IwRkRhRVFzUTBGTlFTeEpRVUZKTEU5QlFWRXNRMEZEVml4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFOUJRVThzVDBGQlV5eEZRVUZKTEVkQlEycEVMRU5CVFVFc1NVRkJTU3hUUVVGVkxFTkJRMW9zVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4UFFVRlBMRk5CUVZjc1JVRkJTU3hIUVVOdVJDeERRVTFCTEVsQlFVa3NVMEZCVlN4RFFVTmFMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzVDBGQlR5eFRRVUZYTEVWQlFVa3NSMEZEYmtRc1EwRk5RU3hKUVVGSkxHTkJRV1VzUTBGRGFrSXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhQUVVGUExHTkJRV2RDTEVWQlFVa3NSMEZEZUVRc1EwRlBRU3hKUVVGSkxGTkJRVlVzUTBGRFdpeFBRVUZQTEV0QlFVc3NWVUZCV1N4SlFVTXhRaXhEUVUxQkxFbEJRVWtzWlVGQlowSXNRMEZEYkVJc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eFJRVUZSTEU5QlFWTXNTVUZET1VNc1EwRk5RU3hKUVVGSkxHOUNRVUZ4UWl4RFFVTjJRaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEZGQlFWRXNXVUZCWXl4SlFVTnVSQ3hEUVZGQkxFOUJRVTlETEVWQlFVOHNRMEZMV2l4SFFVcEpMRU5CUVVNc1MwRkJTeXhUUVVGWExFTkJRVU5CTEVWQlFVMHNVMEZKZUVJc1EwRkJReXhMUVVGTExFbEJRVWtzVDBGQlQwRXNSVUZCVFN4SFFVRkhMRVZCUXpWQ0xFMUJRVThzUjBGSFZDeFRRVUZUUXl4RlFVRkhReXhGUVVGSlF5eEZRVUZKTEVOQlJXeENMRTlCUVVsRUxFbEJRVThzVVVGQllVRXNTVUZCVHl4RlFVRlZReXhKUVVGUExGRkJRV0ZCTEVsQlFVOHNSVUZETjBSRUxFbEJRVTlETEVOQlEyaENMRU5CUlVFc1VVRkJWMklzUzBGQlN6RkZMRWRCUTJRc1IwRkJTU3hEUVVGRGNVWXNSVUZCUnl4TFFVRkxMRTlCUVU5WUxFTkJRVU1zUlVGQlIxVXNSVUZCVFN4UFFVRlBWaXhEUVVGRExFTkJRVU1zUlVGRGNrTXNUVUZCVHl4SFFVZFlMRTFCUVU4c1JVRkRWQ3hEUVVOR0xFVkRPVE5DUVN4SlFVRk5ZeXhIUVVGVkxHMUNRVWRvUWl4VFFVRlRReXhIUVVGcFFrTXNSVUZCVDBNc1JVRkJTeXhEUVVOd1F5eE5RVUZKTEVOQlFVTkVMRWRCUVZNc1EwRkJRMEVzUlVGQlRTeFJRVU5hUlN4SFFVRlRMRkZCUVZFc01FSkJRVEJDTEVWQlEzcERMRU5CUVVORUxFZEJRVThzUTBGQlEwRXNSVUZCU1N4UlFVTm1ReXhIUVVGVExGRkJRVkVzZDBKQlFYZENMRVZCUTNaRFJDeEZRVUZOUkN4RlFVTlNSU3hIUVVGVExGRkJRMlFzYlVKQlEwRXNjVVZCUVhGRlJpeEZRVUZOTEUxQlFVMHNRMEZCUXl4WlFVRlpReXhGUVVGSkxFMUJRVTBzUTBGQlF5eEZRVU16Unl4RlFVVlBMRWxCUlZnc1EwRmpRU3hKUVVGeFFrTXNSMEZCY2tJc1RVRkJjVUpETEVOQlFWTXNRMEZKTlVJc1dVRkJXVU1zUlVGQlVTeERRVWxzUWl4TFFVRkxMRVZCUVVsQkxFVkJRVThzVFVGSmFFSXNTMEZCU3l4RlFVRkpRU3hGUVVGUExFbEJTV2hDTEV0QlFVc3NVVUZCVlVFc1JVRkJUeXhUUVVGWExFdEJTV3BETEV0QlFVc3NaMEpCUVd0Q0xFVkJRM3BDTEVOQlVVRXNUMEZCVHl4UlFVRlJReXhGUVVGUlF5eEZRVUZqTEV0QlFVMHNRMEZEZWtNc1IwRkJTU3hEUVVGRFJDeEZRVU5JTEUxQlFVMHNTVUZCU1VVc1IwRkJjVUlzYTBSQlFXdEVMRVZCUjI1R0xFbEJRVTFETEVWQlFWVklMR0ZCUVd0Q1NTeEhRVUZWU2l4RlFVRlRMRWxCUVVsSkxFZEJRVkZLTEVWQlFWRkRMRU5CUVZjc1JVRkZjRVlzUjBGQlNVa3NSVUZCVXl4bFFVTllMRTFCUVUwc1NVRkJTVU1zUjBGQmNVSklMRU5CUVU4c1JVRkZkRU1zVDBGQlR5eEpRVUZKVEN4RlFVRlRMRU5CUVVVc1VVRkJRVXNzUTBGQlVTeERRVUZETEVOQlJXNURMRU5CVVVFc1QwRkJUeXhqUVVGalVpeEZRVUZQUXl4RlFVRkxMRU5CUXk5Q0xFbEJRVTFYTEVWQlFXRkRMRWRCUVdsQ1lpeERRVUZMTEVWQlEzWkRZeXhGUVVGWFJDeEhRVUZwUWxvc1EwRkJSeXhGUVVVelFtTXNSVUZCWjBKb1FpeEhRVUZwUW1Fc1JVRkJXVVVzUTBGQlVTeEZRVVV6UkN4UFFVRkpReXhIUVVGcFFpeExRVU5hTEVsQlFVbGFMRVZCUVZNc1EwRkRiRUlzVFVGQlQxTXNSVUZEVUN4SlFVRkxSU3hEUVVOUUxFTkJRVU1zUlVGRlRVTXNRMEZGV0N4RFFWRkJMRTlCUVU4c1RVRkJUV1lzUlVGQlQyZENMRVZCUVZVc1EwRkROVUlzU1VGQlRVTXNSVUZCVFVNc1JVRkJVeXhwUWtGQmFVSkdMRU5CUVZFc1JVRkROVU5ITEVWQlFVdE9MRWRCUVdsQ1lpeERRVUZMTEVWQlF6ZENMRTlCUVU5SExFVkJRVk1zWTBGQlkyZENMRVZCUVVsQkxFVkJRVWNzUzBGQlMwWXNRMEZCUnl4RFFVRkRMRU5CUTJoRUxFTkJVVUVzVDBGQlR5eFBRVUZQYUVJc1JVRkJTMlVzUlVGQlZTeERRVU16UWl4SlFVRk5ReXhGUVVGTlF5eEZRVUZUTEdsQ1FVRnBRa1lzUTBGQlVTeEZRVU0xUTBjc1JVRkJTMDRzUjBGQmFVSmFMRU5CUVVjc1JVRkRNMElzVDBGQlQwVXNSVUZCVXl4alFVRmpaMElzUlVGQlJ5eE5RVUZOUml4RFFVRkhMRVZCUVVkRkxFTkJRVVVzUTBGRGFrUXNRMEZWUVN4UFFVRlBMRkZCUVZGRExFVkJRVTFETEVWQlFVMHNRMEZEZWtJc1IwRkJUU3hEUVVGRFF5eEZRVUZIUXl4RFFVRkRMRWRCUVV0SUxFZEJRVkVzU1VGQlNTeE5RVUZOTEVsQlFVc3NRMEZCUXl4RlFVTjRReXhIUVVGSlJTeEhRVUZMUXl4RlFVRkhMRU5CUTFZc1NVRkJTWFpDTEVWQlFVOTNRaXhGUVVOWUxFZEJRVWtzUTBGRFJuaENMRVZCUVZGNVFpeEZRVUZUTEZGQlFWRklMRVZCUVVkRUxFTkJRVWtzUlVGRGFFTkhMRVZCUVdWNFFpeEZRVUZOTEU5QlEzWkNMRTlCUVZOMVFpeEZRVUZITEVOQlExWkRMRVZCUVdVc1JVRkRha0lzUTBGRlFTeEpRVUZKZGtJc1JVRkJTM2xDTEVWQlExUXNSMEZCU1N4RFFVTkdla0lzUlVGQlRYZENMRVZCUVZNc1VVRkJVVVlzUlVGQlIwWXNRMEZCU1N4RlFVTTVRa3NzUlVGQllYcENMRVZCUVVrc1QwRkRia0lzVDBGQlUzTkNMRVZCUVVjc1EwRkRWa2NzUlVGQllTeEZRVU5tTEVOQlJVRXNSMEZCU1VZc1IwRkJaMEpGTEVWQlEyeENMRTlCUVU5MlFpeEZRVUZUTEdOQlFXTklMRVZCUVU5RExFTkJRVWNzUlVGSE1VTXNSMEZCU1hWQ0xFVkJRV01zUTBGRGFFSXNTVUZCVFZBc1JVRkJUVU1zUlVGQlV5eFJRVUZSU3l4RlFVRkhSaXhEUVVGSkxFVkJRM0JETEVkQlFVbEtMRVZCUVVrc1VVRkRUaXhQUVVGUFpDeEZRVUZUTEUxQlFVMUlMRVZCUVU5cFFpeERRVUZITEVOQlJYQkRMRk5CUVZkVExFVkJRVmtzUTBGRGNrSXNTVUZCVFZRc1JVRkJUVU1zUlVGQlV5eFJRVUZSU1N4RlFVRkhSQ3hEUVVGSkxFVkJRM0JETEVkQlFVbEtMRVZCUVVrc1VVRkRUaXhQUVVGUFpDeEZRVUZUTEU5QlFVOUdMRVZCUVV0blFpeERRVUZITEVOQlJXNURMRU5CUTBZc1EwRkRRU3hQUVVGUFpDeEZRVUZUTEZGQlFWRXNZVUZCWXl4alFVRmphVUlzUTBGQlNTd3JRa0ZCSzBJc1EwRkRla1lzUTBGUFFTeFBRVUZQTEZkQlFWZFBMRVZCUVVjc1EwRkRia0lzVDBGQlVVRXNSMEZCUzBFc1JVRkJSU3hwUWtGQmIwSXNSVUZEY2tNc1EwRk5RU3hKUVVGSkxFOUJRVkVzUTBGRFZpeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRVZCUVVrc1NVRkRha01zUTBGTlFTeEpRVUZKTEV0QlFVMHNRMEZEVWl4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFVkJRVWtzU1VGRGFrTXNRMEZOUVN4SlFVRkpMRk5CUVZVc1EwRkRXaXhQUVVGUExFdEJRVXNzWjBKQlFXdENMRWxCUTJoRExFTkJUVUVzU1VGQlNTeGxRVUZuUWl4RFFVTnNRaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEZGQlFWRXNUMEZCVXl4SlFVTTVReXhEUVUxQkxFbEJRVWtzYjBKQlFYRkNMRU5CUTNaQ0xFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NVVUZCVVN4WlFVRmpMRWxCUTI1RUxFTkJUMEVzVDBGQlQwTXNSVUZCVHl4bFFVRm5RaXhEUVVNMVFpeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRmRCUVdWQkxFTkJRVXNzUlVGQlJTeEpRVUZKUVN4RFFVRkpMRVZCUVVrc1IwRkRMMFFzUTBGVFFTeE5RVUZOUVN4RlFVRlBMR1ZCUVdkQ0xFTkJRek5DTEVkQlFVa3NRMEZCUXl4TFFVRkxMRkZCUVZNc1RVRkJUeXhMUVVNeFFpeEpRVUZOTlVJc1JVRkJVU3hMUVVGTExFMUJRVTBzVVVGQlVUUkNMRU5CUVVrc1JVRkRia016UWl4RlFVRk5MRXRCUVVzc1NVRkJTU3hSUVVGUk1rSXNRMEZCU1N4RlFVTTNRaXhQUVVGUExFdEJRVXNzVFVGQlRUTkNMRVZCUVVrc1MwRkJTMFFzUlVGQlR6UkNMRU5CUVVrc1JVRkJSU3hKUVVGSlFTeERRVUZKTEVOQlFVTXNSVUZCU1N4RFFVTjJSQ3hEUVU5QkxGRkJRVkZCTEVWQlFVMHNRMEZEV2l4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExGRkJRVkVzUjBGQlN5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1VVRkJVU3hMUVVGTExFVkJRVWRCTEVOQlFVa3NSVUZCU1N4RlFVTnNSaXhEUVUxQkxGTkJRVlVzUTBGRFVpeFBRVUZQTEV0QlFVc3NSVUZCUlN4UlFVRlJMRWxCUVUwc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGRE4wTXNRMEZQUVN4UlFVRlJReXhGUVVGVkxFTkJRMmhDTEU5QlFVc3NTMEZCU3l4UlFVTklMRXRCUVVzc1JVRkJTVUVzUlVGRVZTeEZRVVUxUWl4RFFVOUJMRk5CUVZOQkxFVkJRVlVzUTBGRGFrSXNUMEZCU3l4TFFVRkxMRkZCUTBnc1MwRkJTeXhIUVVGTFFTeEZRVVJUTEVWQlJUVkNMRU5CVDBFc1UwRkJVMEVzUlVGQlZTeERRVU5xUWl4UFFVRkxMRXRCUVVzc1VVRkRTQ3hMUVVGTExFZEJRVXRCTEVkQlFWa3NTMEZCU3l4RlFVRkpRU3hGUVVSYUxFVkJSVFZDTEVOQlUwRXNTVUZCU1N4RFFVRkZMRTFCUVVFM1FpeEZRVUZQTEVsQlFVRkRMRU5CUVVrc1JVRkJTU3hEUVVGRExFVkJRVWNzUTBGRGRrSXNUMEZCU3l4TFFVRkxMRkZCUTBoRkxFVkJRVk1zWTBGQlkwZ3NSMEZCVXl4TFFVRkxMRVZCUVVkRExFZEJRVThzUzBGQlN5eERRVUZETEVWQlJHeERMRWxCUlRWQ0xFTkJUMEVzVjBGQlZ6WkNMRVZCUVZjc1EwRkRjRUlzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4TlFVRlBMRU5CUVVNc1JVRkRNMElzU1VGQlRVTXNSVUZCVTBRc1JVRkRWaXhKUVVGSmFrSXNSVUZCWjBJc1JVRkRjRUlzVDBGQlVXMUNMRWRCUVUwc1MwRkJTeXhUUVVGVFFTeERRVUZETEVOQlFVTXNSVUZET1VJc1MwRkJTeXhGUVVOU1F5eEZRVUZWTEVOQlFVTXNSVUZEVkN4RFFVRkZMRU5CUVVVc1JVRkJTU3hMUVVOV0xFVkJRVWtzUlVGRlRpeExRVUZQTEVWQlFVa3NTMEZCU3l4SFFVRkhMRU5CUTJwQ0xFbEJRVTFETEVWQlFWRklMRVZCUVU4c1EwRkJReXhIUVVGTExFdEJRVXNzUlVGRE9VSkpMRVZCUVU4c1EwRkJRMFFzUlVGQlVTeERRVUZETEV0QlFVc3NSVUZCU1N4TFFVRkxMRVZCUVVsQkxFVkJRM0pEUkN4RlFVRlJMRXRCUVVzNVFpeEZRVUZUTEdOQlFXTXNSVUZCUjJkRExFTkJRVWtzUTBGQlF5eEZRVU0xUXl4RlFVRkpRU3hGUVVOS0xFZEJRVXNzUTBGRFVDeERRVVZCTEU5QlFVOUdMRU5CUTFRc1EwRlJRU3hSUVVGUmFrSXNSVUZCVlN4RFFVTm9RaXhKUVVGTlF5eEZRVUZOUXl4RlFVRlRMR2xDUVVGcFFrWXNRMEZCVVN4RlFVVTVReXhIUVVGSkxFTkJRVU1zUzBGQlN5eFRRVUZYTEVOQlFVTkRMRVZCUVVrc1UwRkJWMEVzUlVGQlNTeEhRVUZITEdOQlFXTXNTVUZCVFN4RlFVTTVSQ3hOUVVGUExFTkJRVU1zUlVGSFZpeEhRVUZKTEVOQlFVVXNSVUZCUVVzc1EwRkJSU3hGUVVGSkxFdEJRMVpqTEVWQlFVMHNSVUZEVGtRc1JVRkZTVVlzUlVGQlZTeERRVUZETEVWQlEycENMRXRCUVU5WUxFVkJRVWtzUzBGQlN5eEhRVUZITEVOQlEycENMRWxCUVUxWkxFVkJRVkVzUzBGQlN5eE5RVUZOTEV0QlFVdHFRaXhGUVVGSkxGTkJRVlZ2UWl4SFFVRk5RU3hGUVVGSlJDeERRVUZITEVOQlFVTXNSVUZETVVSRUxFVkJRVThzUTBGQlEwUXNSVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJTU3hMUVVGTExFVkJRVWxCTEVWQlEyNURSQ3hGUVVGUkxFdEJRVXM1UWl4RlFVRlRMR05CUVdOdFFpeEZRVUZIWVN4RFFVRkpMRU5CUVVNc1JVRkROVU5pTEVWQlFVbGhMRVZCUTBwRExFZEJRVThzUTBGRFZDeERRVVZCTEU5QlFVOUlMRU5CUTFRc1EwRlBRU3hqUVVGalN5eEZRVUZsTEVOQlF6TkNMRTlCUVVzc1MwRkJTeXhSUVVOSUxFdEJRVXNzVVVGQlVTeExRVUZMTEU5QlFVOHNSVUZCU1VFc1EwRkJZU3hGUVVGRkxFMUJRVTBzUlVGQlIwRXNRMEZCWVN4RlFVUXZReXhEUVVGRExFTkJSVGRDTEVOQlQwRXNVMEZCVTBNc1JVRkJUeXhEUVVOa0xFOUJRVThzUzBGQlN5eEZRVUZKUVN4RlFVRk5MRWRCUVVzc1MwRkJTeXhGUVVGSlFTeEZRVUZOTEVOQlF6VkRMRU5CVDBFc1YwRkJWMEVzUlVGQlR5eERRVU5vUWl4UFFVRkxMRXRCUVVzc1VVRkRTQ3hEUVVGRExFdEJRVXNzUjBGQlRTeERRVUZEUVN4RlFVRk5MRVZCUkVFc1JVRkZOVUlzUTBGUFFTeFRRVUZUUVN4RlFVRlBMRU5CUTJRc1QwRkJTeXhMUVVGTExGRkJRMGdzUTBGQlEwRXNSVUZCVFN4SFFVRk5MRU5CUVVNc1MwRkJTeXhGUVVSQkxFVkJSVFZDTEVOQlQwRXNVVUZCVVVFc1JVRkJUeXhEUVVOaUxFOUJRVXNzUzBGQlN5eFJRVU5JTEV0QlFVc3NSMEZCUzBFc1JVRkJUU3hIUVVGTExFdEJRVXNzUjBGQlMwRXNSVUZCVFN4RlFVUnNRaXhGUVVVMVFpeERRVTlCTEU5QlFVOUJMRVZCUVU4c1EwRkRXaXhOUVVGSkxFTkJRVU1zUzBGQlN5eFRRVUZYTEVOQlFVTkJMRVZCUVUwc1VVRkRia0lzUjBGSFJpeExRVUZMTEVWQlFVVXNUMEZCVDBFc1JVRkJUU3hEUVVGRExFZEJRVXNzUzBGQlN5eEZRVUZGTEU5QlFVOUJMRVZCUVUwc1EwRkJReXhEUVVONFJDeERRVk5CTEdGQlFXRkJMRVZCUVU4c1EwRkRiRUlzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4UFFVRlBMRXRCUXpGQ0xFbEJRVTFxUWl4RlFVRkpMRXRCUVVzc1JVRkJTV2xDTEVWQlFVMHNSVUZCU1N4TFFVRkxMRVZCUVVsQkxFVkJRVTBzUlVGRE1VTm9RaXhGUVVGSkxFdEJRVXNzUlVGQlNXZENMRVZCUVUwc1JVRkJTU3hMUVVGTExFVkJRVWxCTEVWQlFVMHNSVUZGZUVNc1QwRkJTV3BDTEVkQlFVdERMRVZCUTBFc1MwRkZRWEJDTEVWQlFWTXNZMEZCWTIxQ0xFVkJRVWRETEVOQlFVTXNRMEZGZEVNc1EwRlJRU3hOUVVGTlowSXNSVUZCVHl4RFFVTllMRWRCUVVrc1EwRkJReXhMUVVGTExGRkJRVk1zVDBGQlR5eExRVU14UWl4SlFVRk5ha0lzUlVGQlNTeExRVUZMTEVWQlFVbHBRaXhGUVVGTkxFVkJRVWtzUzBGQlN5eEZRVUZKUVN4RlFVRk5MRVZCUXpGRGFFSXNSVUZCU1N4TFFVRkxMRVZCUVVsblFpeEZRVUZOTEVWQlFVa3NTMEZCU3l4RlFVRkpRU3hGUVVGTkxFVkJRM2hETEU5QlFVOXdReXhGUVVGVExHTkJRV050UWl4RlFVRkhReXhEUVVGRExFTkJRM0JETEVOQlVVRXNUMEZCVHl4TlFVRk5hVUlzUlVGQlZ5eERRVU4wUWl4SFFVRk5MRU5CUVVORExFVkJRVTlETEVOQlFVc3NSVUZCU1VZc1JVRkRjRUlzUzBGQlN5eERRVUZEUnl4RlFVRkhReXhKUVVGTlJDeEZRVUZGTEVWQlFVbERMRVZCUVVVc1EwRkJReXhGUVVONFFpeFBRVU5ETEVOQlFVTXNRMEZCUTBNc1JVRkJUME1zUTBGQlR5eEZRVUZIUXl4SlFVTmFSQ3hGUVVWTlFTeEZRVUZSTEZOQlFWTkRMRU5CUVVrc1IwRkJTMFFzUlVGQlVTeFhRVUZYUXl4RFFVRkpMRVZCUTI1RUxFTkJRVU5HTEVWQlFVOURMRVZCUVZFc1RVRkJUVU1zUTBGQlNTeERRVUZETEVWQlJUTkNMRU5CUVVOR0xFVkJRVTBzVDBGQlR5eERRVUZEUXl4RFFVRlBMRU5CUVVNc1JVRkJSME1zUTBGQlNTeEZRVW81UWl4RFFVRkRSaXhGUVVGUFJTeERRVUZKTEVWQlQzWkNMRU5CUVVNc1EwRkJReXhGUVVGSExFbEJRVWtzUTBGRFdDeEZRVU5HTEU5QlFVbE1MRWRCUTBaRUxFVkJRVTBzUzBGQlMwTXNRMEZCU3l4RlFVVllSQ3hEUVVOVUxFTkJUMEVzVDBGQlR5eEpRVUZKUkN4RlFVRlhMRU5CUTNCQ0xFbEJRVWw0UXl4RlFVRlJMRXRCUTFablJDeEZRVUZsTEVWQlExaG1MRVZCUVZVc1EwRkJReXhGUVVObVowSXNSVUZCVDFRc1JVRkJWU3hKUVVGTFZTeEhRVUZOTEVOQlF6RkNMRU5CUVVVc1MwRkJUVUVzUlVGQlJTeEZRVUZITEV0QlFVMHNSMEZCU1N4RlFVTjJRaXhEUVVGRkxFdEJRVTFCTEVWQlFVVXNSVUZCUnl4TFFVRk5MRWRCUVVrc1EwRkRla0lzUTBGQlF5eEZRVU5FUXl4RlFVRlpMRTFCUVUwc1ZVRkJWU3hQUVVGUExFZEJRVWRHTEVOQlFVa3NSVUZETVVOSExFVkJRVTFFTEVWQlFWVXNTMEZCU3l4RFFVRkRVaXhGUVVGSFF5eEpRVUZOUkN4RlFVRkZMRXRCUVU5RExFVkJRVVVzU1VGQlNTeEZRVVZvUkN4UlFVRlhUU3hMUVVGTFJTeEZRVU5rU2l4SFFVRm5Ra1VzUlVGQlJTeFBRVUZUTEVsQlFVMHNSVUZCU1N4SFFVVnFRMFlzU1VGQmFVSXNSVUZEYmtKb1JDeEZRVUZSYTBRc1JVRkJSU3hOUVVWT2JFUXNSMEZCVXl4RFFVRkRRU3hIUVVGVkxFTkJRVU5yUkN4RlFVRkZMRTFCUTNwQ2FrSXNSVUZCVVN4TFFVRkxPVUlzUlVGQlV5eGpRVUZqU0N4RlFVRlBhMFFzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZIY0VSc1JDeEZRVUZSTEUxQlNWb3NUMEZCVDBjc1JVRkJVeXhOUVVGTk9FSXNRMEZCVHl4RFFVTXZRaXhEUVU5QkxHTkJRV05QTEVWQlFWY3NRMEZEZGtJc1QwRkJUM0pETEVWQlFWTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUGNVTXNRMEZCVXl4RFFVRkRMRVZCUTNwRExFbEJRVXRWTEVkQlFVMHNTMEZCU3l4aFFVRmhRU3hEUVVGRExFTkJRVU1zUlVGREwwSXNUMEZCVVVFc1IwRkJUVUVzUjBGQlN5eERRVUZEUVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVOd1F5eERRVTFCTEZWQlFWY3NRMEZEVkN4UFFVRkxMRXRCUVVzc1VVRkRTQ3hKUVVGSkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNWMEZCVFN4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJSRzVDY0VRc1JVRkZOVUlzUTBGUlFTeE5RVUZOZFVJc1JVRkJUU3hEUVVOV0xFOUJRVXNzUzBGQlN5eFJRVU5JTEVkQlFVY3NTMEZCU3l4RlFVRkZMRTFCUVUxQkxFTkJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NSVUZCUlN4TlFVRk5RU3hEUVVGSkxFTkJRVU1zUjBGRWVFSjJRaXhGUVVVMVFpeERRVkZCTEZkQlFWa3NRMEZEVml4UFFVRkxMRXRCUVVzc1VVRkRTQ3hIUVVGSExFdEJRVXNzUlVGQlJTeFZRVUZWTEVOQlFVTXNTVUZCU1N4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFZEJSSGhDUVN4RlFVVTFRaXhEUVZOQkxGVkJRVlYxUWl4RlFVRk5MRU5CUTJRc1QwRkJTeXhMUVVGTExGRkJRMGdzUjBGQlJ5eExRVUZMTEVWQlFVVXNWVUZCVlVFc1EwRkJTU3hEUVVGRExFbEJRVWtzUzBGQlN5eEZRVUZGTEZWQlFWVkJMRU5CUVVrc1EwRkJReXhIUVVSb1EzWkNMRVZCUlRWQ0xFTkJVMEVzVTBGQlUzVkVMRVZCUVZrc1EwRkJSU3hWUVVGQlF5eEZRVUZaTEZWQlFVMHNSVUZCU1N4RFFVRkRMRVZCUVVjc1EwRkRMME1zVDBGQlN5eExRVUZMTEZGQlEwZ3NSMEZCUnl4TFFVRkxMRVZCUVVVc1UwRkJVMFFzUTBGQlZTeERRVUZETEVkQlFVZERMRU5CUVZNc1IwRkJSeXhMUVVGTExFVkJRVVVzVTBGQlUwUXNRMEZCVlN4RFFVRkRMRWRCUkhKRWRrUXNSVUZGTlVJc1EwRmpRU3hYUVVGWE9FSXNSVUZCVFZBc1JVRkJUU3hEUVVOeVFpeFBRVUZMTEV0QlFVc3NVVUZIU0N4TFFVRkxMRVZCUVVVc1MwRkJTeXhMUVVGTExFVkJRVWRQTEVWQlFVMVFMRU5CUVVrc1JVRkdOVUpJTEVWQlFWTXNVVUZCVVN4TFFVRkxMR0ZCUVdFc1EwRkhPVU1zUTBGVFFTeGhRVUZoY1VNc1JVRkJUeXhEUVVOc1FpeFBRVUZQY0VRc1JVRkJVeXhqUVVGamIwUXNSVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSMEVzUlVGQlRTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVTTFSQ3hEUVVOR0xFVkRibXhDUVN4SlFVRnhRa01zUjBGQmNrSXNTMEZCTUVJc1EwRk5lRUlzVDBGQlR5eFBRVUZQUXl4RlFVRlBReXhGUVVGVExGbEJRV0VzUTBGRGVrTXNTVUZCVFVNc1JVRkJVVU1zUlVGQlV5eEpRVUZKTEVWQlFVVXNVVUZCVVVnc1EwRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlJTeE5RVUZQTEVWQlFVY3NRMEZCUXl4RlFVVTFSQ3hOUVVGUExFTkJRVU5CTEVWQlFVc3NZVUZCWlVVc1JVRkJUU3hUUVVGWFFTeEZRVUZOTEVsQlFVa3NRMEZCUlN4TlFVRlBMRU5CUVVVc1EwRkJReXhGUVVGRkxFMUJRM1pGTEVOQlQwRXNUMEZCVHl4blFrRkJaMEpHTEVWQlFVMHNRMEZETTBJc1QwRkJUMGtzUjBGQlV5eFpRVUZaU2l4RFFVRkpMRU5CUTJ4RExFTkJaMEpCTEU5QlFVOHNZMEZCWTBzc1JVRkJUeXhEUVVNeFFpeFBRVUZQUXl4SFFVRmpSQ3hGUVVGUFNpeEZRVUZUTEZkQlFWY3NRMEZEYkVRc1EwRnRRa0VzVDBGQlR5eFBRVU5NVFN4RlFVRlRMRTlCUTFRc1EwRkJSU3hQUVVGQlF5eEZRVUZUTEV0QlFVMHNaMEpCUVVGRExFVkJRV3RDTEV0QlFVMHNUMEZCUVVNc1JVRkJVeXhMUVVGTkxHVkJRVUZETEVWQlFXbENMRk5CUVZVc1JVRkJTU3hEUVVGRExFVkJRM2hHTEVOQlEwRXNUMEZCVVVRc1IwRkJWVVVzUjBGQlR5eFBRVUZQU2l4RlFVRlJReXhGUVVGcFFrVXNRMEZCWXl4SFFVRkhMRTlCUVU5S0xFTkJRVTBzUTBGRGVrWXNRMEZsUVN4UFFVRlBMR0ZCUTB4QkxFVkJRVk1zVDBGRFZDeERRVUZGTEU5QlFVRkRMRVZCUVZNc1MwRkJUU3huUWtGQlFVTXNSVUZCYTBJc1MwRkJUU3hQUVVGQlF5eEZRVUZUTEV0QlFVMHNaVUZCUVVNc1JVRkJhVUlzVTBGQlZTeEZRVUZKTEVOQlFVTXNSVUZEZUVZc1EwRkRRU3hQUVVGUlJDeEhRVUZWUlN4SFFVRlBMRTlCUVU5S0xFVkJRVkZETEVWQlFXbENSU3hEUVVGakxFZEJRVWNzVDBGQlQwb3NSVUZCVVN4RlFVRkpMRU5CUXk5R0xFTkJaMEpCTEU5QlFVOHNVMEZCVTBFc1JVRkJVeXhQUVVGUkxFTkJRVVVzVDBGQlFVTXNSVUZCVXl4TFFVRk5MR2RDUVVGQlF5eEZRVUZyUWl4TFFVRk5MRTlCUVVGRExFVkJRVk1zU1VGQlN5eEZRVUZKTEVOQlFVTXNSVUZCUnl4RFFVTTVSaXhQUVVGUlFTeEhRVUZWUlN4SFFVRlBMRTlCUVU5S0xFVkJRVkZETEVWQlFXbENMRWxCUVVrc1IwRkJSeXhUUVVGVFJpeERRVUZOTEVOQlEycEdMRU5CWTBFc1QwRkJUeXhsUVVOTVFTeEZRVUZUTEU5QlExUXNRMEZCUlN4UFFVRkJReXhGUVVGVExFdEJRVTBzWjBKQlFVRkRMRVZCUVd0Q0xFdEJRVTBzVDBGQlFVTXNSVUZCVXl4SlFVRkxMRVZCUVVrc1EwRkJReXhGUVVNMVJDeERRVU5CTEU5QlFWRkJMRWRCUVZWRkxFZEJRVThzVDBGQlQwb3NSVUZCVVVNc1JVRkJhVUlzU1VGQlNTeEhRVUZITEZOQlFWTkdMRVZCUVZFc1JVRkJTU3hEUVVOMlJpeERRVlZCTEU5QlFVOHNWVUZCVlN4RFFVRkZMRTlCUVVGRExFVkJRVk1zU1VGQlN5eEZRVUZKTEVOQlFVTXNSVUZCUnl4RFFVTjJReXhQUVVGUFNTeEhRVUZQTEU5QlFVOUtMRU5CUVUwc1JVRkJSU3hWUVVGVkxFTkJRM3BETEVOQldVRXNUMEZCVHl4TFFVRkxSQ3hGUVVGVExGRkJRVk1zUTBGQlJTeFBRVUZCUXl4RlFVRlRMRWxCUVVzc1JVRkJTU3hEUVVGRExFVkJRVWNzUTBGRGNFUXNUMEZCVDBrc1IwRkJUeXhQUVVGUFNpeEZRVUZSTEV0QlFVMHNVMEZCVXl4RlFVRkZMRXRCUVV0RUxFTkJRVTBzUTBGRE0wUXNRMEZWUVN4UFFVRlBMRlZCUVZjc1EwRkRhRUlzVFVGQlR5eERRVUZGTEZOQlFWVk5MRWRCUVZrc1EwRkJSU3hEUVVOdVF5eERRVU5HTEVWRGRFdEJMRk5CUVZORExFZEJRVkZETEVWQlFWTkRMRVZCUVU4c1EwRkRMMElzU1VGQlRVTXNSVUZCWlVNc1IwRkJUMEVzUlVGQlJ5eE5RVUZOTEVWQlFVY3NRMEZCUlN4alFVRmxMRVZCUVVzc1EwRkJReXhGUVVGRkxGRkJRVkVzUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZEZEVaRExFVkJRVXRHTEVWQlFWbEVMRU5CUVVzc1JVRkJTVU1zUlVGQldVWXNRMEZCVHl4RlFVTXZReXhQUVVGUExFdEJRVXNzVFVGQlRVc3NSVUZCVXl4WFFVRlhSQ3hEUVVGRkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZEZEVRc1EwRkZRU3hUUVVGVFJTeEhRVUZsUXl4RlFVRlJUaXhGUVVGUFR5eEZRVUZQTEVOQlF6VkRMRWxCUVUxRExFVkJRVlVzUTBGRFpDeERRVUZETEZGQlFWTXNRMEZCUXl4RlFVRkhReXhKUVVGTlFTeEZRVUZGTEV0QlFVOHNSVUZCUlN4SlFVRkpMRVZCUTI1RExFTkJRVU1zVjBGQldTeERRVUZETEVWQlFVZEJMRWxCUVUxQkxFVkJRVVVzVVVGQlZTeEZRVUZGTEU5QlFVOHNSVUZETlVNc1EwRkJReXhUUVVGVkxFTkJRVU1zUlVGQlIwRXNTVUZCVFVFc1JVRkJSU3hOUVVGUkxFVkJRVVVzVDBGQlUwRXNSVUZCUlN4TFFVRlBMRVZCUVVVc1RVRkJVU3hGUVVGRkxFVkJReTlFTEVOQlEwVXNVVUZEUVN4RFFVRkRMRVZCUVVkQkxFbEJRVTBzUTBGRFVpeEpRVUZOUXl4RlFVRlBXaXhIUVVGUkxFVkJRVWRYTEVOQlFVTXNSVUZEZWtJc1QwRkJVVU1zUlVGQlVVRXNSVUZCVHl4SFFVRk5MRU5CUXk5Q0xFTkJRMFlzUlVGRFFTeERRVUZETEU5QlFWRmFMRVZCUVU4c1EwRkRiRUlzUlVGRlRXRXNSVUZCVlN4RFFVRkRMRVZCUTJKRExFVkJRV0ZETEVWQlJXcENMRTlCUVZjc1EwRkJRME1zUlVGQlRVTXNRMEZCVFN4SlFVRkxVQ3hGUVVNelFpeEhRVUZKUkN4RlFVRk5MRkZCUVZGUExFTkJRVWtzUjBGQlN5eEZRVUZITEVOQlF6VkNSaXhGUVVGalJTeEZRVVZrTEVsQlFVbEZMRVZCUVZGRUxFVkJRVTlVTEVWQlFWRk9MRU5CUVVzc1JVRkRhRU5oTEVWQlFWbFFMRVZCUVU4c1MwRkJTeXhEUVVGRkxFTkJRVU5STEVOQlFVa3NSVUZCUjBVc1EwRkJUU3hEUVVGRExFVkJSWEpEU0N4RlFVRlpZaXhIUVVOa1RTeEZRVUZUUVN4RlFVRlBMRXRCUVVzc1EwRkJSU3hEUVVGRFVTeERRVUZKTEVWQlFVZEZMRVZCUVZFc1EwRkJSU3hEUVVGRExFVkJRekZEUVN4SFFVRlRMRWRCUlZSV0xFVkJRVk5QTEVWQlIxaEdMRVZCUVZGSExFTkJRVWtzUlVGQlNVVXNRMEZEYkVJc1EwRkhSaXhOUVVGUExFTkJRVU5XTEVWQlFWRkxMRVZCUVZORkxFVkJRVmRFTEVOQlFWY3NRMEZEYWtRc1EwRkZaU3hUUVVGU1N5eEhRVUZyUW14Q0xFVkJRVk5ETEVWQlFVOVBMRVZCUVU5WExFVkJRVTBzUTBGRGNFUXNSMEZCU1N4RFFVRkRXaXhGUVVGUlN5eEZRVUZUUlN4RlFVRlhSQ3hEUVVGWExFVkJRVWxRTEVkQlFXVk9MRVZCUVZORExFVkJRVTlQTEVOQlFVc3NSVUZGT1VWWkxFVkJRV3RDYmtJc1JVRkJVVTBzUlVGRk1VSmpMRVZCUVd0Q1lpeEZRVUZOTEU5QlF6TkNZeXhIUVVGTkxFTkJRVU1zVVVGQlV5eFZRVUZYTEZWQlFWY3NZMEZCWXl4RlFVRkZMRkZCUVZGQkxFTkJRVU1zUjBGQlN5eERRVU4yUlN4RlFVVkpSQ3hGUVVGblFpeFRRVUZYTEVsQlEzcENVQ3hGUVVGWllpeEpRVU5rWVN4RlFVRlpVQ3hGUVVGUExFdEJRVXNzUTBGQlJTeERRVUZEVFN4RFFVRlhMRVZCUVVjc1EwRkJSU3hEUVVGRExFZEJSekZEUXl4SlFVRmpVQ3hKUVVOb1Frc3NSVUZCVVVNc1EwRkJWeXhIUVVGTFJDeEZRVUZSUXl4RFFVRlhMRWRCUVVzc1IwRkJTMDhzUjBGQmJVSk9MRVZCUVZsUUxFdEJTWGhHTEVsQlFVMW5RaXhGUVVGWGJFSXNSVUZCVXl4WFFVRlhUeXhGUVVGVFR5eERRVUZKTEVWQlJXeEVMRTlCUVVsRkxFVkJRV2RDTEU5QlFWTXNSVUZEY0VKb1FpeEZRVUZUTEZkQlFWZGxMRVZCUVdsQ1JDeERRVUZKTEVWQlF6ZERMRkZCUVZFc1IwRkJSMFVzUTBGQlpTeEZRVU14UWl4TFFVRkxSU3hEUVVGUkxFVkJSVlJCTEVOQlJWZ3NRME16UlVFc1NVRkJUVU1zUjBGQmJVSXNRMEZEZGtJc1MwRkJUU3hyUWtGRFRpeFJRVUZUTEd0Q1FVTlVMRXRCUVUwc2EwSkJRMDRzUzBGQlRTeHJRa0ZEVGl4TFFVRk5MR3RDUVVOT0xGTkJRVlVzYTBKQlExWXNTMEZCVFN4clFrRkRUaXhSUVVGVExEQkZRVU5VTEV0QlFVMHNhMEpCUTA0c1MwRkJUU3hyUWtGRFRpeExRVUZOTEd0Q1FVTk9MRXRCUVUwc2EwSkJRMDRzUzBGQlRTeHJRa0ZEVGl4TFFVRk5MR3RDUVVOT0xFdEJRVTBzYTBKQlEwNHNTMEZCVFN4clFrRkRUaXhSUVVGVExHdENRVU5VTEV0QlFVMHNhMEpCUTA0c1MwRkJUU3hyUWtGRFRpeExRVUZOTEd0Q1FVTk9MRXRCUVUwc1MwRkRVaXhGUVVWTlF5eEhRVUYzUWl4RFFVTTFRaXhMUVVGTkxFTkJRVU1zUzBGQlRTeEpRVUZKTEVWQlEycENMRkZCUVZNc1EwRkJReXhMUVVGTkxFbEJRVWtzUlVGRGNFSXNTMEZCVFN4RFFVRkRMRXRCUVUwc1NVRkJTU3hGUVVOcVFpeExRVUZOTEVOQlFVTXNTMEZCVFN4SlFVRkpMRVZCUTJwQ0xFdEJRVTBzUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZEYWtJc1UwRkJWU3hEUVVGRExFMUJRVThzUzBGQlN5eEZRVU4yUWl4TFFVRk5MRU5CUVVNc1MwRkJUU3hKUVVGSkxFVkJRMnBDTEV0QlFVMHNRMEZCUXl4TFFVRk5MRWxCUVVrc1JVRkRha0lzUzBGQlRTeERRVUZETEV0QlFVMHNTVUZCU1N4RlFVTnFRaXhMUVVGTkxFTkJRVU1zUzBGQlRTeEpRVUZKTEVWQlEycENMRXRCUVUwc1EwRkJReXhMUVVGTkxFbEJRVWtzUlVGRGFrSXNTMEZCVFN4RFFVRkRMRXRCUVUwc1NVRkJTU3hGUVVOcVFpeExRVUZOTEVOQlFVTXNTMEZCVFN4SlFVRkpMRVZCUTJwQ0xFdEJRVTBzUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZEYWtJc1MwRkJUU3hEUVVGRExFdEJRVTBzU1VGQlNTeEZRVU5xUWl4UlFVRlRMRU5CUVVNc1MwRkJUU3hKUVVGSkxFVkJRM0JDTEV0QlFVMHNRMEZCUXl4TFFVRk5MRWxCUVVrc1JVRkRha0lzUzBGQlRTeERRVUZETEV0QlFVMHNTVUZCU1N4RlFVTnFRaXhMUVVGTkxFTkJRVU1zUzBGQlRTeEpRVUZKTEVOQlEyNUNMRVZCUlUxRExFZEJRV1ZHTEVkQlFXbENMRkZCUVZFc1VVRkJVU3hYUVVGWkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZGZGtVc1UwRkJVMGNzUjBGQldVTXNSVUZCU3l4RFFVTXZRaXhKUVVGSlF5eEZRVUZSTEZOQlFWTkVMRVZCUVVzc1JVRkJSU3hGUVVNMVFpeEhRVUZKTEUxQlFVMURMRU5CUVVzc1JVRkJSeXhEUVVOb1FrRXNSVUZCVVN4SFFVTlNMRkZCUVZORExFVkJRVWtzUlVGQlIwRXNSVUZCU1VZc1JVRkJTU3hQUVVGUlJTeEpRVUZMTEVOQlEyNURMRWxCUVUxRExFVkJRVTlJTEVWQlFVa3NWMEZCVjBVc1EwRkJReXhGUVVVM1FpeEhRVUZKUml4RlFVRkpSU3hEUVVGRExFVkJRVVVzVDBGQlQwNHNSMEZCYVVJc1QwRkJUeXhKUVVGTkxFZEJRemxEU3l4SFFVRlRTQ3hIUVVGaExGRkJRVkZGTEVWQlFVbEZMRU5CUVVNc1EwRkJReXhOUVVWd1F5eFRRVUZYUlN4TFFVRlBVQ3hIUVVGMVFpeERRVU4yUXl4SFFVRk5MRU5CUVVOUkxFVkJRVXRETEVOQlFVY3NSVUZCU1ZRc1IwRkJjMEpQTEVOQlFVY3NSVUZEZUVORUxFZEJRVkZGTEVkQlFVOUdMRWRCUVZGSExFbEJRM3BDVEN4SFFVRlRSU3hGUVVGUFJTeEZRVVZ3UWl4RFFVVktMRU5CUTBFc1QwRkJUeXhUUVVGVFNpeEZRVUZQTEVWQlFVVXNRMEZETTBJc1MwRkRSU3hSUVVGUFFTeERRVVZZTEVOQlJVOHNVMEZCVTAwc1IwRkJWeXhEUVVGRkxHZENRVUZCUXl4RFFVRm5RaXhGUVVGSFF5eEZRVUZUTEVkQlFVa3NRMEZETTBRc1QwRkJUeXhKUVVGSkxFOUJRVThzUjBGQlIySXNSMEZCYVVKWkxFZEJRVzFDTEUxQlFVMHNRMEZCUXl4SFFVRkhReXhEUVVGTkxFVkJRVVVzUTBGRE4wVXNRME5zUlVFc1NVRkJUVU1zUjBGQll5eHZSRUZGY0VJc1UwRkJVME1zUlVGQlVVTXNSVUZCVDBNc1JVRkJVVU1zUjBGQlRVRXNSVUZCUnl4RFFVTjJReXhOUVVGUExFTkJRVVVzVFVGQlFVWXNSVUZCVHl4TlFVRlBMRU5CUVVNc1EwRkJRMGNzUTBGQlF5eEpRVUZOUml4RlFVRkxSeXhIUVVGWlJDeERRVUZETEVOQlFVTXNRMEZCUlN4RFFVTjJSQ3hEUVVWQkxFbEJRVTFGTEVkQlFVOHNUMEZEVUVNc1IwRkJZeXhMUVVGTFJDeEZRVUZKTEVsQlEzWkNSU3hIUVVGdlFpeEpRVUZKTEU5QlFVOUVMRWRCUVdFc1IwRkJSeXhGUVVWeVJDeFRRVUZUUlN4SFFVRmhUQ3hGUVVGSExFTkJSM1pDTEU5QlFVOUJMRVZCUVVVc1VVRkJVU3hOUVVGUExFMUJRVTBzUlVGQlJTeFJRVUZSU1N4SFFVRnRRa1FzUlVGQlZ5eERRVU40UlN4RFFVVkJMRk5CUVZOSExFZEJRWEZDVGl4RlFVRkhMRU5CUXk5Q0xFOUJRVTlCTEVWQlEwb3NVVUZCVVN4TlFVRlBMRVZCUVVVc1JVRkRha0lzVVVGQlVVa3NSMEZCYlVJc1IwRkJSeXhGUVVNNVFpeFpRVUZaTEVOQlEycENMRU5CUlVFc1UwRkJVMGNzUjBGQlRVTXNSVUZCVTBNc1JVRkJXU3hEUVVOc1F5eFBRVUZKUkN4SlFVRlpMRXRCUTFBc1MwRkZRU3hEUVVOTUxFMUJRVThzVDBGQlQwRXNSVUZCVVN4SlFVRkpTQ3hGUVVGWkxFVkJRVVVzUzBGQlN5eEhRVUZITEVOQlFVTXNSVUZEYWtRc1RVRkJUeXhEUVVGRExFTkJRVU5NTEVOQlFVTXNTVUZEVWxFc1JVRkJVU3hWUVVGWFZDeEhRVUZOVHl4SFFVRnhRazRzUTBGQlF5eEpRVUZOVFN4SFFVRnhRbEFzUTBGQlF5eERRVUZETEVWQlFVbFZMRU5CUTNCR0xFTkJSVW9zUTBGRlFTeFRRVUZUUXl4SFFVRlBZaXhGUVVGUFl5eEZRVUZSTEVOQlF6ZENMRTFCUVU4c1EwRkJSU3hOUVVGQlpDeEZRVUZQTEUxQlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVWbExFVkJRVWRETEVOQlFVTXNTVUZCVFVNc1IwRkJZVVlzUlVGQlIwTXNRMEZCUXl4RlFVRkhMRTlCUVVGR0xFTkJRVThzUTBGRGJFVXNRMEZGUVN4VFFVRlRTU3hIUVVGUGJFSXNSVUZCVHl4RFFVTnlRaXhOUVVGUExFTkJRVVVzVFVGQlFVRXNSVUZCVHl4TlFVRlBMRU5CUVVNc1EwRkJRMGNzUTBGQlF5eEpRVUZOUVN4RFFVRkZMRU5CUTNCRExFTkJSVUVzVTBGQlUyZENMRWRCUVZsRExFVkJRVThzUTBGRE1VSXNUMEZCVDBFc1JVRkJUU3hSUVVGUkxEaENRVUVyUWl4TlFVRk5MRU5CUXpWRUxFTkJSVUVzVTBGQlUwTXNSMEZCWVVNc1JVRkJUME1zUlVGQlN5eERRVU5vUXl4SlFVRk5ReXhGUVVGTlF5eEhRVUZYUml4RFFVRkhMRVZCUTNoQ1J5eEZRVUZOUkN4SFFVRlhSaXhGUVVGTExFdEJRVXNzUlVGRE0wSkpMRVZCUVZGR0xFZEJRVmRHTEVWQlFVc3NTMEZCU3l4RlFVTTNRa3NzUlVGQlQwZ3NSMEZCVjBZc1JVRkJTeXhMUVVGTExFVkJRelZDVFN4RlFVRk5TaXhIUVVGWFJpeEZRVUZMTEV0QlFVc3NSVUZETTBKUExFVkJRVmRNTEVkQlFWZEdMRVZCUVVzc1QwRkJUeXhGUVVOc1ExRXNSVUZCWVU0c1IwRkJWMFlzUlVGQlN5eFBRVUZQTEVWQlEzQkRVeXhGUVVGWFVDeEhRVUZYUml4RlFVRkxMRTlCUVU4c1JVRkRiRU5WTEVWQlFWbFNMRWRCUVZkR0xFVkJRVXNzVDBGQlR5eEZRVU51UTFjc1JVRkJXVlFzUjBGQlYwWXNSVUZCU3l4UFFVRlBMRVZCUTI1RFdTeEZRVUZaVml4SFFVRlhSaXhGUVVGTExFOUJRVThzUlVGRGJrTmhMRVZCUVZkRExFbEJRVThzUTBGQlJTeE5RVUZQTEU5QlFVOXNRaXhIUVVGWmEwSXNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSeXhOUVVGUExFTkJRVU1zUTBGQlEyeERMRU5CUVVNc1NVRkJUVUVzUlVGQlJ5eFJRVUZUTEVWQlFVc3NSMEYzU0hCR2JVTXNSMEYyU0U5RUxFZEJRVTBzUTBGRFppeEhRVUZKWml4RlFVRk5MRkZCUTFJc1QwRkJUMk1zUlVGQlVVTXNRMEZCUXl4RlFVVnNRaXhQUVVGUlFTeEZRVUZGTEVsQlFVc3NRMEZGWWl4SlFVRkxMRWxCUTBnc1QwRkJUek5DTEVkQlFVMWhMRVZCUVVrc1MwRkJTeXhSUVVGVExFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlF6RkRMRWxCUVVzc1MwRkRTQ3hQUVVGUFlpeEhRVUZOWVN4RlFVRkpMRXRCUVVzc1QwRkJVU3hGUVVGTExFVkJRVWNzUTBGQlF5eEZRVVY2UXl4SlFVRkxMRWxCUTBnc1QwRkJUM2hDTEVWQlFWRnBReXhEUVVGUkxFVkJRM3BDTEVsQlFVc3NTMEZEU0N4UFFVRlBha01zUlVGQlVXMURMRVZCUVZkTExFVkJRV01zUlVGRE1VTXNTVUZCU3l4UFFVTklMRTlCUVU5NFF5eEZRVUZSTmtJc1EwRkJTU3hGUVVOeVFpeEpRVUZMTEZGQlEwZ3NUMEZCVHpkQ0xFVkJRVkZ2UXl4RFFVRlRMRVZCUXpGQ0xFbEJRVXNzVTBGRFNDeFBRVUZQY0VNc1JVRkJVVGhDTEVOQlFVY3NSVUZGY0VJc1NVRkJTeXhKUVVOSUxFOUJRVTg1UWl4RlFVRlJLMElzUTBGQlVTeEZRVU42UWl4SlFVRkxMRXRCUTBnc1QwRkJUeTlDTEVWQlFWRXlRaXhEUVVGSExFVkJRM0JDTEVsQlFVc3NUVUZEU0N4UFFVRlBhRUlzUjBGQlRXRXNSVUZCU1N4UFFVRlBMRkZCUVZNc1IwRkJUU3hGUVVGTExFVkJRVWNzUTBGQlF5eEZRVU5zUkN4SlFVRkxMRTlCUTBnc1QwRkJUMklzUjBGQlRXRXNSVUZCU1N4UFFVRlBMRTlCUVZFc1IwRkJUU3hGUVVGTExFVkJRVWNzUTBGQlF5eEZRVU5xUkN4SlFVRkxMRWxCUTBnc1QwRkJUM2hDTEVWQlFWRXJRaXhEUVVGUkxFVkJRM3BDTEVsQlFVc3NTMEZEU0N4UFFVRlBMMElzUlVGQlVUSkNMRU5CUVVjc1JVRkRjRUlzU1VGQlN5eE5RVU5JTEU5QlFVOW9RaXhIUVVGTllTeEZRVUZKTEU5QlFVOHNVVUZCVXl4SFFVRlBMRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJRMjVFTEVsQlFVc3NUMEZEU0N4UFFVRlBZaXhIUVVGTllTeEZRVUZKTEU5QlFVOHNUMEZCVVN4SFFVRlBMRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJSV3hFTEVsQlFVc3NTVUZEU0N4UFFVRlBlRUlzUlVGQlVTdENMRU5CUVZFc1JVRkRla0lzU1VGQlN5eExRVU5JTEU5QlFVOHZRaXhGUVVGUk1rSXNRMEZCUnl4RlFVVndRaXhKUVVGTExFbEJRMGdzVDBGQlR6TkNMRVZCUVZGblF5eERRVUZWTEVWQlF6TkNMRWxCUVVzc1RVRkRTQ3hQUVVGUGFFTXNSVUZCVVRSQ0xFTkJRVXNzUlVGRmRFSXNTVUZCU3l4TFFVTklMRTlCUVU4MVFpeEZRVUZSTWtJc1EwRkJSeXhGUVVOd1FpeEpRVUZMTEVsQlEwZ3NUMEZCVHpOQ0xFVkJRVkVyUWl4RFFVRlJMRVZCUTNwQ0xFbEJRVXNzUzBGRFNDeFBRVUZQTDBJc1JVRkJVVEpDTEVOQlFVY3NSVUZEY0VJc1NVRkJTeXhKUVVOSUxFOUJRVTh6UWl4RlFVRlJLMElzUTBGQlVTeEZRVU42UWl4SlFVRkxMRXRCUTBnc1QwRkJUeTlDTEVWQlFWRXlRaXhEUVVGSExFVkJRM0JDTEVsQlFVc3NTVUZEU0N4UFFVRlBNMElzUlVGQlVTdENMRU5CUVZFc1JVRkRla0lzU1VGQlN5eEpRVU5JTEU5QlFVOHZRaXhGUVVGUkswSXNRMEZCVVN4RlFVTjZRaXhKUVVGTExFdEJRMGdzVDBGQlR5OUNMRVZCUVZFeVFpeERRVUZITEVWQlEzQkNMRWxCUVVzc1NVRkRTQ3hQUVVGUE0wSXNSVUZCVVN0Q0xFTkJRVkVzUlVGRGVrSXNTVUZCU3l4TFFVTklMRTlCUVU4dlFpeEZRVUZSTWtJc1EwRkJSeXhGUVVOd1FpeEpRVUZMTEVsQlEwZ3NUMEZCVHpOQ0xFVkJRVkZuUXl4RFFVRlZMRVZCUXpOQ0xFbEJRVXNzVFVGRFNDeFBRVUZQYUVNc1JVRkJVVFJDTEVOQlFVc3NSVUZEZEVJc1NVRkJTeXhKUVVOSUxFOUJRVTlVTEVkQlFVOWxMRU5CUVZNc1JVRkRla0lzU1VGQlN5eExRVU5JTEU5QlFVOW1MRWRCUVU5WkxFTkJRVkVzUlVGRGVFSXNTVUZCU3l4TlFVTklMRTlCUVU4dlFpeEZRVUZSZVVJc1EwRkJSeXhGUVVWd1FpeEpRVUZMTEVsQlEwZ3NUMEZCVDJRc1IwRkJUV0VzUlVGQlNTeFZRVUZWTEVWQlFVY3NRMEZCUXl4RlFVVnFReXhKUVVGTExFOUJRMGdzVDBGQlQzaENMRVZCUVZFMlFpeERRVUZKTEVWQlEzSkNMRWxCUVVzc1MwRkRTQ3hQUVVGUE4wSXNSVUZCVVcxRExFVkJRVmRMTEVWQlFXTXNSVUZGTVVNc1NVRkJTeXhKUVVOSUxFOUJRVTk0UXl4RlFVRlJLMElzUTBGQlVTeEZRVU42UWl4SlFVRkxMRXRCUTBnc1QwRkJUeTlDTEVWQlFWRXlRaXhEUVVGSExFVkJSWEJDTEVsQlFVc3NTVUZEVEN4SlFVRkxMRWxCUTBnc1QwRkJUek5DTEVWQlFWRjVRaXhEUVVGSExFVkJRM0JDTEVsQlFVc3NUVUZEU0N4UFFVRlBaQ3hIUVVGTllTeEZRVUZKTEZOQlFWTXNVVUZCVXl4SFFVRlBMRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJRM0pFTEVsQlFVc3NUMEZEU0N4UFFVRlBZaXhIUVVGTllTeEZRVUZKTEZOQlFWTXNUMEZCVVN4SFFVRlBMRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJRM0JFTEVsQlFVc3NUVUZEU0N4UFFVRlBZaXhIUVVGTllTeEZRVUZKTEZOQlFWTXNVVUZCVXl4SFFVRk5MRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJRM0JFTEVsQlFVc3NUMEZEU0N4UFFVRlBZaXhIUVVGTllTeEZRVUZKTEZOQlFWTXNUMEZCVVN4SFFVRk5MRVZCUVVzc1JVRkJSeXhEUVVGRExFVkJSVzVFTEVsQlFVc3NTVUZEVEN4SlFVRkxMRXRCUTBnc1QwRkJUMVlzUjBGQlR5eEpRVUZKTEU5QlFVOHNVVUZCVVdsQ0xFVkJRVk1zVFVGQlRTeFRRVUZUU2l4RlFVRkpMRTFCUVUwc1MwRkJTeXhGUVVGSExFTkJRVU1zUlVGRE9VVXNTVUZCU3l4TlFVTklMRTlCUVU5aUxFZEJRVThzU1VGQlNTeFBRVUZQTEZGQlFWRnBRaXhGUVVGVExFMUJRVTBzUzBGQlMwb3NSVUZCU1N4TlFVRk5MRWxCUVVrc1JVRkJSeXhEUVVGRExFVkJSM3BGTEVsQlFVc3NTVUZEU0N4UFFVRlBVaXhIUVVGUExHOUNRVUZ2UWl4RlFVTndReXhSUVVORkxFOUJRVTlyUWl4RlFVRlJReXhEUVVGRExFTkJRM0JDTEVOQlEwWXNSMEZGYlVKbUxFTkJRVXNzUjBGQlN5eERRVU0zUWl4alFVRmxlRUlzUlVGRGFrSXNSVUZGUVN4UFFVRkJkME1zUlVGQlN5eE5RVUZSYUVJc1JVRkZUbWRDTEVOQlExUXNRMEZGUVN4SlFVRk5SU3hIUVVFd1FpeERRVU01UWl4TFFVRk5MRU5CUTBvc1ZVRkJWeXhMUVVOWUxGRkJRVk1zVDBGRFdDeEZRVU5CTEUxQlFVOHNRMEZEVEN4UlFVRlRMRWxCUTFRc1ZVRkJWeXhMUVVOWUxFMUJRVThzVFVGRFVDeExRVUZOTEUxQlExSXNSVUZEUVN4SlFVRkxMRU5CUTBnc1VVRkJVeXhKUVVOVUxGVkJRVmNzU1VGRFlpeEZRVU5CTEZGQlFWTXNRMEZEVUN4TlFVRlBMRTFCUTFBc1MwRkJUU3hOUVVOU0xFVkJRMEVzVlVGQlZ5eEpRVU5ZTEZWQlFWY3NTVUZEV0N4TFFVRk5MRU5CUTBvc1VVRkJVeXhKUVVOVUxGVkJRVmNzU1VGRFlpeEZRVU5CTEU5QlFWRXNRMEZEVGl4UlFVRlRMRWxCUTFRc1ZVRkJWeXhKUVVOaUxFVkJRMEVzVDBGQlVTeERRVU5PTEZGQlFWTXNTVUZEVkN4VlFVRlhMRWxCUTJJc1EwRkRSaXhGUVVWQkxGTkJRVk5ETEVkQlFXRkRMRVZCUVUxRExFVkJRVkZETEVWQlFWa3NRMEZET1VNc1IwRkJUU3hEUVVGRkxFdEJRVUZETEVWQlFVMHNUVUZCUVhwQ0xFTkJRVTBzUlVGQlNYTkNMRVZCUlhoQ0xFZEJRVWxITEVsQlFWTXNWVUZEV0N4TlFVRlBMRU5CUTB3c1VVRkJVeXhIUVVOVUxFbEJRVXQ2UWl4RFFVTlFMRVZCUjBZc1NVRkJUVEJDTEVWQlFWRkdMRVZCUVZkRExFTkJRVWtzUlVGRmVrSkZMRVZCUVUxUUxFZEJRWGRDU3l4RFFVRkpMRVZCUzNSRExFZEJTa2tzVDBGQlQwVXNSMEZCVVN4WFFVTnFRa0VzUlVGQlRVRXNSVUZCU1VRc1EwRkJTeXhIUVVkaVF5eEZRVU5HTEUxQlFVOHNRMEZEVEN4UlFVRlRMRWRCUTFRc1NVRkJRVUVzUTBGRFJpeERRVWxLTEVOQlJVRXNVMEZCVTBNc1IwRkJWME1zUlVGQlR5eERRVVY2UWl4TlFVRlBMRU5CUVVNc1NVRkVSMEVzUlVGQlRTeEpRVUZMUXl4SFFVRk5RU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTkRMRVZCUVVjc1NVRkJUU3hIUVVGSFFTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRWxCUVVzc1JVRkJSU3hEUVVNdlJDeEpRVUZMUml4RFFVRkxMRU5CUXpGQ0xFTkJSVUVzVTBGQlUwY3NSMEZCVFVNc1JVRkJUM0pFTEVWQlFVOXpSQ3hGUVVGVkxFTkJRM0pETEVsQlFVMURMRVZCUVZWR0xFVkJRVTBzVFVGQlRYSkVMRU5CUVVzc1JVRkZha01zUjBGQlNYVkVMRVZCUVZNc1EwRkRXQ3hKUVVGTlF5eEZRVUZOTEVOQlFVTXNSVUZEVkVNc1JVRkJZU3hGUVVOcVFpeFJRVUZYZGtRc1MwRkJTMjlFTEVWQlEyUXNSMEZCU1Vrc1IwRkJaVW9zUlVGQlZYQkVMRU5CUVVNc1JVRkJSeXhEUVVNdlFpeEpRVUZOWVN4RlFVRkpkVU1zUlVGQlUzQkVMRU5CUVVNc1JVRkRiRUpaTEVWQlFWTkRMRVZCUVVVc1QwRkJVMEVzUlVGQlJTeFBRVUZUTEVWQlFVa3NSVUZEYWtNc1EwRkJRMEVzUlVGQlJTeFRRVUZYUVN4RlFVRkZMRkZCUTJ4Q2VVTXNSVUZCU1hwRExFVkJRVVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVRkpRU3hGUVVGRkxFMUJRVTEzUXl4RlFVRlJMRTFCUVUxRkxFVkJRVmxCTEVWQlFXRXpReXhEUVVGTkxFTkJRVU1zUjBGRk9VVXlReXhIUVVGak0wTXNRMEZEYUVJc1EwRkZSaXhOUVVGUExFTkJRVU41UXl4RlFVRlRReXhEUVVGSExFTkJRM1JDTEV0QlEwVXNUMEZCVHl4RFFVRkRSQ3hGUVVGVExFTkJRVU1zUTBGQlF5eERRVVYyUWl4RFFVVkJMRk5CUVZOSkxFZEJRVzlDU2l4RlFVRlRMRU5CUTNCRExFbEJRVTFMTEVWQlFWZDBReXhIUVVGVkxFTkJRM3BDTEU5QlFWRkJMRVZCUVU4c1EwRkRZaXhKUVVGTExFbEJRMGdzVFVGQlR5eGpRVU5VTEVsQlFVc3NTVUZEU0N4TlFVRlBMRk5CUTFRc1NVRkJTeXhKUVVOSUxFMUJRVThzVTBGRFZDeEpRVUZMTEVsQlEwd3NTVUZCU3l4SlFVTklMRTFCUVU4c1QwRkRWQ3hKUVVGTExFbEJRMGdzVFVGQlR5eE5RVU5VTEVsQlFVc3NTVUZEU0N4TlFVRlBMRlZCUTFRc1NVRkJTeXhKUVVOTUxFbEJRVXNzU1VGRFNDeE5RVUZQTEZGQlExUXNTVUZCU3l4SlFVTklMRTFCUVU4c1QwRkRWQ3hKUVVGTExFbEJRMHdzU1VGQlN5eEpRVU5JTEUxQlFVOHNWVUZEVkN4SlFVRkxMRWxCUTBnc1RVRkJUeXhoUVVOVUxFbEJRVXNzU1VGRFNDeE5RVUZQTEZkQlExUXNTVUZCU3l4SlFVTklMRTFCUVU4c1ZVRkRWQ3hSUVVORkxFOUJRVThzU1VGRFdDeERRVU5HTEVWQlJVbDFReXhGUVVGUExFdEJRMUJETEVWQlEwb3NUMEZCUzBNc1JVRkJXVklzUlVGQlVTeERRVUZETEVsQlEzaENUU3hGUVVGUFJ5eEhRVUZUTEU5QlFVOVVMRVZCUVZFc1EwRkJReXhIUVVjM1FsRXNSVUZCV1ZJc1JVRkJVU3hEUVVGRExFbEJRMjVDVFN4SlFVTklRU3hGUVVGUExFbEJRVWxKTEVkQlFXZENWaXhGUVVGUkxFTkJRVU1zUjBGRmRFTlBMRVZCUVdsQ1VDeEZRVUZSTEVkQlIzUkNVU3hGUVVGWlVpeEZRVUZSTEVOQlFVTXNTVUZEZUVKQkxFVkJRVkVzUjBGQlMwRXNSVUZCVVN4RlFVRkpMRWRCUVVzc1JVRkJTU3hIUVVjdlFsRXNSVUZCV1ZJc1JVRkJVU3hEUVVGRExFbEJRM0JDUVN4RlFVRlJMRVZCUVVrc1NVRkJUVUVzUlVGQlVTeEpRVUZOTEVWQlEyeERRU3hGUVVGUkxFZEJRVXNzUjBGRFNrRXNSVUZCVVN4SlFVRk5MRWxCUVUxQkxFVkJRVkVzU1VGQlRTeEpRVU16UTBFc1JVRkJVU3hGUVVGSkxFbEJTVnBCTEVWQlFWRXNTVUZCVFN4SFFVRkxRU3hGUVVGUkxFbEJRemRDUVN4RlFVRlJMRVZCUVVrc1EwRkJRMEVzUlVGQlVTeEhRVWRzUWxFc1JVRkJXVklzUlVGQlVTeERRVUZETEVsQlEzaENRU3hGUVVGUkxFVkJRVWxYTEVkQlFWbFlMRVZCUVZFc1EwRkJReXhIUVZrMVFpeERRVlJOTEU5QlFVOHNTMEZCUzBFc1EwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlExa3NSVUZCUjBNc1NVRkJUU3hEUVVOcVJDeEpRVUZOYWtJc1JVRkJTVk1zUlVGQlVWRXNRMEZCUXl4RlFVTnVRaXhQUVVGSmFrSXNTVUZEUm1kQ0xFVkJRVVZvUWl4RFFVRkRMRVZCUVVsSkxFVkJRVkZoTEVOQlFVTXNSMEZIV0VRc1EwRkRWQ3hGUVVGSExFTkJRVU1zUTBGQlF5eEZRVVZUVGl4RlFVRk5ReXhEUVVGakxFTkJRM0JETEVOQlJVRXNTVUZCU1U4c1IwRkJjVUlzUzBGRmVrSXNVMEZCVTBNc1NVRkJiVUlzUTBGRE1VSXNUMEZCUzBRc1MwRkRTRUVzUjBGQmNVSkZMRVZCUVZNc1YwRkJWeXhoUVVGaExFZEJSMnBFUml4RlFVTlVMRU5CUlVFc1UwRkJVMGNzUjBGQmMwSnNSQ3hGUVVGUGNVSXNSVUZCVVN4RFFVTTFReXhIUVVGSmNrSXNSVUZCVFN4UlFVTlNMRTlCUVU5QkxFVkJSMVFzU1VGQlRYTkNMRVZCUVdFMlFpeEhRVUZWTEhWQ1FVRjFRbTVFTEVWQlFVMHNSMEZCUnl4RlFVVTNSQ3hIUVVGSkxFTkJRVU56UWl4RlFVTklMRTlCUVU5MFFpeEZRVTFVTEVsQlFVMXZSQ3hGUVVoWlJDeEhRVUZWTEU5QlFVODVRaXhGUVVGUlF5eERRVUZWTEVWQlF6ZENMRzlDUVVGdlFqQkNMRWRCUVdsQ0xFTkJRVU1zUlVGRmVrTXNTVUZCUzBzc1IwRkJUV3hETEVkQlFXRnJReXhGUVVGSGFFTXNSVUZCVVVNc1EwRkJWU3hEUVVGRExFVkJSVzVGTEU5QlFVazRRaXhGUVVGUExGTkJRVk1zVFVGQlV5eEZRVU53UW5CRUxFVkJSMFp2UkN4RFFVTlVMRU5CUlVFc1UwRkJVMFVzUjBGQmEwSkdMRVZCUVZFdlFpeEZRVUZSTEVOQlEzcERMRTlCUVU4c1RVRkJUU3hWUVVGVkxFOUJRVThzUjBGQlJ5dENMRVZCUVU4c1NVRkJTeXhIUVVGTlJpeEhRVUZ6UWl4RlFVRkhOMElzUTBGQlRTeERRVUZETEVOQlFVTXNRMEZEZEVZc1EwRk5UeXhUUVVGVGEwTXNSMEZCYTBKc1F5eEZRVUZSVlN4RlFVRlBlVUlzUlVGQlVTeERRVU4yUkN4SlFVRk5TaXhGUVVGVFJTeEhRVUZyUWtnc1IwRkJWU3haUVVGWlN5eERRVUZOTEVWQlFVZHVReXhEUVVGTkxFVkJRM0JGVFN4RlFVRlJlVUlzUlVGQlR5eEpRVUZMY2tNc1IwRkJUV2hDTEVkQlFXRm5RaXhGUVVGSFRTeERRVUZOTEVOQlFVTXNSVUZEYWtSdlF5eEZRVUZ2UWpsQ0xFVkJRVTBzUzBGQlRWb3NSMEZCVFVFc1JVRkJSU3hoUVVGaExFVkJSWFpFTEVkQlFVa3dReXhGUVVOR0xFMUJRVThzUTBGQlJTeE5RVUZCTVVJc1JVRkJUeXhQUVVGQmNVSXNSVUZCVVN4alFVRmxTeXhGUVVGclFpeGhRVUZqTEVWQlEyeEZMRU5CUTB3c1IwRkJUU3hEUVVGRFF5eEZRVUZoTVVJc1EwRkJVU3hGUVVGSlRpeEhRVUZYUXl4RFFVRkxMRVZCUXpsRGFrUXNSVUZCVVN4UFFVRlBaMFlzUlVGQllTeEhRVUZITEVWQlF5OUNMRU5CUVVORExFVkJRVmt4UWl4RFFVRlBMRVZCUVVsSUxFZEJRVTFETEVWQlFVOXlSQ3hGUVVGUGMwUXNRMEZCVVN4RlFVTndSQ3hEUVVGRE5FSXNSVUZCVVhKQ0xFVkJRVTFETEVOQlFXTXNSVUZCU1ZBc1JVRkROMEpKTEVkQlFXOUNTaXhEUVVGUExFVkJRek5DTEVOQlFVTXNTMEZCVFN4TFFVRk5MRTFCUVZNc1JVRkROVUlzUjBGQlNVY3NSMEZCWlVnc1JVRkJVeXhIUVVGSExFZEJRVXRITEVkQlFXVklMRVZCUVZNc1IwRkJSeXhGUVVNM1JDeE5RVUZOTEVsQlFVazBRaXhIUVVOU0xIVkVRVU5HTEVWQlJVWXNUVUZCVHl4RFFVRkZMRTFCUVVFNVFpeEZRVUZQTEU5QlFVRnhRaXhGUVVGUkxFMUJRVUV4UlN4RlFVRlBMRmRCUVVGcFJpeEZRVUZaTEZGQlFVRXhRaXhGUVVGVExFOUJRVUV5UWl4RlFVRlJMRXRCUVVGeVFpeEZRVUZOTEdWQlFVRkRMRU5CUVdVc1EwRkRia1lzUTBGRFJpeERRVVZQTEZOQlFWTnpRaXhIUVVGblFucERMRVZCUVZGVkxFVkJRVTk1UWl4RlFVRlJMRU5CUTNKRUxFZEJRVTBzUTBGQlJTeFBRVUZCU1N4RlFVRlJMRXRCUVVGeVFpeEZRVUZOTEdWQlFVRkRMRVZCUVdkQ0xHTkJRVUYxUWl4RFFVRmpMRVZCUVVsU0xFZEJRV3RDYkVNc1JVRkJVVlVzUlVGQlQzbENMRU5CUVUwc1JVRkRMMFlzVFVGQlR5eERRVUZEU1N4RlFVRlJja0lzUlVGQlRVTXNSVUZCWjBKMVFpeERRVUZoTEVOQlEzSkVMRU5EY21GQkxFbEJRVTFETEVkQlFXZENMRU5CUVVNc1JVRkJSeXhIUVVGSkxFZEJRVWtzUjBGQlNTeEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFZEJRVWNzUlVGRE1VVkRMRWRCUVdFc1EwRkJReXhGUVVGSExFZEJRVWtzUjBGQlNTeEhRVUZKTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzUjBGQlJ5eEZRVVZ5UlN4VFFVRlRReXhIUVVGbFF5eEZRVUZOUXl4RlFVRlBMRU5CUTI1RExFOUJRVThzU1VGQlNVTXNSMEZEVkN4dlFrRkRRU3hwUWtGQmFVSkVMRU5CUVVzc1lVRkJZU3hQUVVGUFFTeERRVUZMTEZWQlFWVkVMRU5CUVVrc2IwSkJReTlFTEVOQlEwWXNRMEZGUVN4VFFVRlRSeXhIUVVGVlF5eEZRVUZOUXl4RlFVRlBReXhGUVVGTExFTkJRMjVETEVsQlFVMURMRVZCUVVrc1NVRkJTU3hMUVVGTExFdEJRVXNzU1VGQlNVZ3NSVUZCVFVNc1JVRkJVU3hGUVVGSFF5eERRVUZITEVOQlFVTXNSVUZGTjBOR0xFVkJRVThzUzBGQlQwRXNSMEZCVVN4SFFVTjRRa2NzUlVGQlJTeGxRVUZsUVN4RlFVRkZMR1ZCUVdVc1JVRkJTU3hKUVVGSkxFVkJSelZETEVsQlFVMURMRVZCUVV0RUxFVkJRVVVzVlVGQlZTeEZRVVYyUWl4UFFVRlBReXhKUVVGUExFVkJRVWtzUlVGQlNVRXNRMEZEZUVJc1EwRkZRU3hUUVVGVFF5eEhRVUZsVEN4RlFVRk5ReXhGUVVGUFF5eEZRVUZMTEVOQlEzaERMRTlCUVU5QkxFZEJRVTlKTEVkQlFWZE9MRU5CUVVrc1JVRkJTVTRzUjBGQllVUXNTVUZCWlZFc1JVRkJVU3hEUVVGRExFTkJRM2hGTEVOQlJVRXNVMEZCVTAwc1IwRkJhVUpRTEVWQlFVMVJMRVZCUVZNc1EwRkRka01zU1VGQlRVTXNSVUZCVVVnc1IwRkJWMDRzUTBGQlNTeEZRVUZKVGl4SFFVRmhSQ3hIUVVNMVEybENMRVZCUVZORUxFVkJRVTBzVlVGQlZ5eEhRVUZOTEVWQlFVbEVMRU5CUVU4c1JVRkRNME5PTEVWQlFVMU5MRVZCUVZWRExFVkJRVTFETEVOQlFVMHNSVUZET1VJc1RVRkJUeXhEUVVGRkxFMUJRVTlCTEVWQlFWTXNSVUZCUnl4SlFVRkJVaXhEUVVGSkxFTkJRMnhETEVOQlRVOHNVMEZCVTFNc1IwRkJaMEpETEVWQlFWTXNRMEZEZGtNc1IwRkJUU3hEUVVGRkxFdEJRVUZhTEVWQlFVMHNUVUZCUVVNc1JVRkJUeXhKUVVGQlF5eERRVUZKTEVWQlFVbFZMRVZCUXpOQ1NpeEZRVUZWU0N4SFFVRmxUQ3hGUVVGTlF5eEZRVUZQUXl4RFFVRkhMRVZCUTNwRFZ5eEZRVUZWWkN4SFFVRlZReXhGUVVGTlF5eEZRVUZQUXl4RFFVRkhMRVZCUld4RFdTeEZRVUZoTEV0QlFVc3NUMEZCVDA0c1JVRkJWVXNzUlVGQlZTeEpRVUZOTEVOQlFVTXNSVUZEZEVSRkxFVkJSVVlzVDBGQlNVUXNSVUZCWVN4SFFVTm1ReXhGUVVGWFppeEZRVUZQTEVWQlEyeENZeXhGUVVGaFJTeEhRVUZuUWtRc1EwRkJVU3hIUVVNMVFrUXNSVUZCWVVVc1IwRkJaMEpvUWl4RFFVRkpMRWRCUXpGRFpTeEZRVUZYWml4RlFVRlBMRVZCUTJ4Q1l5eEZRVUZoTEVkQlJXSkRMRVZCUVZkbUxFVkJSMDVwUWl4RlFVRkJMRU5CUVVVc1UwRkJRVVlzUlVGQlZTeFhRVUZCUkN4RlFVRlpMRkZCUVVGRUxFZEJRVmxMTEVkQlFWZE9MRU5CUVU4c1JVRkRMMFFzUTBGRlR5eFRRVUZUVHl4SFFVRm5Ra01zUlVGQlZTeERRVU40UXl4SFFVRk5MRU5CUVVVc1UwRkJRVXdzUlVGQlZTeFhRVUZCUkN4RlFVRlpMRkZCUVVGRUxFTkJRVkVzUlVGQlNVOHNSVUZEZUVORExFVkJRV2RDZEVJc1IwRkJWV2RDTEVWQlFWVXNSVUZCUnl4RFFVRkRMRVZCUTNoRFR5eEZRVUZoUXl4SFFVRlhVaXhEUVVGUkxFVkJSVGxDVUN4RlFVRlZUU3hGUVVGaExFVkJRVWxFTEVWQlFWVlJMRVZCUVdkQ0xFVkJRM1pFY2tJc1JVRkZSVkVzUlVGQlZTeEhRVU5hVWl4RlFVRlBaU3hGUVVGWExFVkJRMnhDVUN4SFFVRlhaU3hIUVVGWGRrSXNRMEZCU1N4SFFVTnFRbEVzUlVGQlZXTXNSMEZEYmtKMFFpeEZRVUZQWlN4RlFVRlhMRVZCUTJ4Q1VDeEhRVUZYWlN4SFFVRlhVaXhEUVVGUkxFZEJSVGxDWml4RlFVRlBaU3hGUVVkVUxFZEJRVTBzUTBGQlJTeE5RVUZCWkN4RlFVRlBMRWxCUVVGRExFTkJRVWtzUlVGQlNVc3NSMEZCYVVKUUxFVkJRVTFSTEVOQlFVOHNSVUZEY2tRc1QwRkJUMU1zUlVGQlFTeERRVUZGTEV0QlFVRnFRaXhGUVVGTkxFMUJRVUZETEVWQlFVOHNTVUZCUVVNc1IwRkJVV2RDTEVkQlFWZEZMRU5CUVZFc1JVRkRia1FzUTBGRlR5eFRRVUZUU1N4SFFVRnRRa01zUlVGQlZTeERRVU16UXl4SFFVRk5MRU5CUVVVc1MwRkJRWHBDTEVWQlFVMHNUVUZCUVVNc1JVRkJUeXhKUVVGQlF5eERRVUZKTEVWQlFVbDFRaXhGUVVOMlFtcENMRVZCUVZWSUxFZEJRV1ZNTEVWQlFVMURMRVZCUVU5RExFTkJRVWNzUlVGREwwTXNUMEZCVDJVc1JVRkJRU3hEUVVGRkxFdEJRVUZxUWl4RlFVRk5MRkZCUVVGUkxFZEJRVmxWTEVkQlFWZFBMRU5CUVZFc1JVRkRhRVFzUTBGRlR5eFRRVUZUUXl4SFFVRnRRa01zUlVGQllTeERRVU01UXl4SFFVRk5MRU5CUVVVc1MwRkJRVE5DTEVWQlFVMHNVVUZCUVZFc1EwRkJVU3hGUVVGSmJVSXNSVUZEY0VJc1EwRkJSU3hOUVVGQk1VSXNSVUZCVHl4SlFVRkJReXhEUVVGSkxFVkJRVWxMTEVkQlFXbENVQ3hGUVVGTlVTeERRVUZQTEVWQlEzSkVMRTlCUVU5VExFVkJRVUVzUTBGQlJTeExRVUZCYWtJc1JVRkJUU3hOUVVGQlF5eEZRVUZQTEVsQlFVRkRMRWRCUVZGblFpeEhRVUZYVXl4RFFVRlhMRVZCUTNSRUxFTkJSVThzVTBGQlUwTXNSMEZCYlVKRExFVkJRVXNzUTBGRGRFTXNTVUZCVFVNc1JVRkJXVU1zUjBGQlZVWXNSVUZCU1N4UlFVRlJMRVZCUTNSRFJ5eEZRVUZaUXl4SFFVRmxTaXhGUVVGSkxGZEJRVmtzUlVGQlIySXNSMEZCWjBKaExFVkJRVWtzVVVGQlVTeERRVUZETEVWQlF6TkZTeXhGUVVGbFJDeEhRVUZsU2l4RlFVRkpMRkZCUVZNc1JVRkJSeXhEUVVGRExFVkJSV3BFTEU5QlFVdERMRVZCUlU5RkxFVkJSVUZGTEVWQlJVVXNSMEZFVEhaRExFZEJRV1VzVlVGQlYydERMRVZCUVVrc1QwRkJUeXhGUVVaeVEyeERMRWRCUVdVc1QwRkJVV3RETEVWQlFVa3NTVUZCU1N4RlFVWXZRbXhETEVkQlFXVXNWMEZCV1d0RExFVkJRVWtzVVVGQlVTeERRVTFzUkN4RFFVVlBMRk5CUVZOTkxFZEJRWE5DVGl4RlFVRkxMRU5CUTNwRExFbEJRVTFETEVWQlFWbERMRWRCUVZWR0xFVkJRVWtzU1VGQlNTeEZRVU5zUTA4c1JVRkJaVWdzUjBGQlpVb3NSVUZCU1N4UlFVRlRMRVZCUVVkT0xFZEJRVmROTEVWQlFVa3NTVUZCU1N4RFFVRkRMRVZCUlhCRkxFOUJRVXRETEVWQlJVOU5MRVZCUlVVc1IwRkVUSHBETEVkQlFXVXNWVUZCVjJ0RExFVkJRVWtzVDBGQlR5eEZRVVp5UTJ4RExFZEJRV1VzVDBGQlVXdERMRVZCUVVrc1NVRkJTU3hEUVVreFF5eERRVVZQTEZOQlFWTlJMRWRCUVhkQ1VpeEZRVUZMTEVOQlF6TkRMRWxCUVUxRExFVkJRVmxETEVkQlFWVkdMRVZCUVVrc1NVRkJTU3hGUVVOc1ExTXNSVUZCWVV3c1IwRkJaVW9zUlVGQlNTeE5RVUZQTEVWQlFVY3NSVUZCUlN4RlFVTTFRMVVzUlVGQlYwNHNSMEZCWlVvc1JVRkJTU3hKUVVGTExFVkJRVWRYTEVkQlFWbFlMRVZCUVVrc1MwRkJUVUVzUlVGQlNTeExRVUZMTEVOQlFVTXNSVUZGZUVVc1QwRkJTME1zUlVGRlQxRXNSVUZGUVVNc1JVRkZSU3hIUVVSTU5VTXNSMEZCWlN4TlFVRlBhME1zUlVGQlNTeEhRVUZITEVWQlJqZENiRU1zUjBGQlpTeFJRVUZUYTBNc1JVRkJTU3hMUVVGTExFVkJSbXBEYkVNc1IwRkJaU3hQUVVGUmEwTXNSVUZCU1N4SlFVRkpMRU5CVFRGRExFTkJSVThzVTBGQlUxa3NSMEZCYlVKYUxFVkJRVXNzUTBGRGRFTXNSMEZCVFN4RFFVRkZMRXRCUVVGaExFVkJRVTBzVDBGQlFVTXNSVUZCVVN4UFFVRkJReXhGUVVGUkxGbEJRVUZETEVOQlFWa3NSVUZCU1doQ0xFVkJRM2hEYVVJc1JVRkRSbUlzUjBGQlpWTXNSVUZCVFN4RlFVRkhMRVZCUVVVc1IwRkRla0pCTEVsQlFWTXNTVUZCVFVNc1NVRkJWeXhIUVVGTFF5eEpRVUZYTEVkQlFVdERMRWxCUVdkQ0xFVkJRMnhGUlN4RlFVRmpaQ3hIUVVGbFZTeEZRVUZSTEVWQlFVY3NSVUZCUlN4RlFVTXhRMHNzUlVGQlkyWXNSMEZCWlZjc1JVRkJVU3hGUVVGSExFVkJRVVVzUlVGRE1VTkxMRVZCUVcxQ2FFSXNSMEZCWlZrc1JVRkJZU3hGUVVGSExFZEJRVWNzUlVGRmRrUXNUMEZCUzBNc1JVRkZUME1zUlVGRlFVTXNSVUZGUVVNc1JVRkZSU3hIUVVSTWRFUXNSMEZCWlN4alFVRmxhMFFzUTBGQlZ5eEZRVVo2UTJ4RUxFZEJRV1VzVTBGQlZXbEVMRU5CUVUwc1JVRkdMMEpxUkN4SFFVRmxMRk5CUVZWblJDeERRVUZOTEVWQlJpOUNhRVFzUjBGQlpTeFBRVUZSSzBNc1EwRkJTU3hEUVZGMFF5eERRMjVJUVN4SlFVRk5VU3hIUVVGVkxHMUNRVU5XUXl4SFFVRlhMRTlCUldwQ0xGTkJRVk5ETEVkQlFXZENReXhGUVVGTkxFTkJRemRDTEU5QlFVOHNTVUZCU1VNc1IwRkJVU3h0UWtGQmIwSXNZVUZCWVVRc1JVRkJTeXhKUVVGSkxHOUNRVUZ2UWl4RFFVTnVSaXhEUVVkQkxGTkJRVk5GTEVkQlFYVkNReXhGUVVGSkxFTkJRMnhETEU5QlFVbEJMRVZCUVVjc1YwRkJZU3hQUVVOc1FrRXNSVUZCUnl4VFFVRlhReXhIUVVGblFrUXNSVUZCUnl4RFFVRkRMRWRCUlRkQ1FTeEZRVUZITEZGQlExb3NRMEZKUVN4VFFVRlRSU3hIUVVGTlF5eEZRVUZOUXl4RlFVRk5MRU5CUTNwQ0xFbEJRVTFETEVWQlFWVXNRMEZEWkN4SFFVRkpSaXhGUVVGTExFZEJRMVFzUzBGQlRVRXNSVUZCU3l4TFFVTllMRVZCUVVkQkxFVkJRVXNzUlVGRFVpeEZRVUZIUVN4RlFVRkxMRVZCUTFJc1NVRkJTMEVzUlVGQlN5eEpRVU5XTEZGQlFWTkJMRVZCUVVzc1QwRkRhRUlzUlVGRFFTeFBRVUZQTEVsQlFVbEhMRVZCUVZORExFZEJRVUZETEVsQlFVRXNSMEZCUzBnc1IwRkJXVVFzUjBGQmFrSXNRMEZCZFVJc1NVRkJTME1zUTBGQlVTeEZRVUZETEVOQlF6TkVMRU5CU1VFc1UwRkJVMGtzUjBGQlZVTXNSVUZCVTBNc1JVRkJSME1zUlVGQlNTeERRVVZxUXl4SlFVRkpReXhGUVVGWFNDeEZRVUZWUXl4RlFVRkpMRWRCUVVzc1NVRkhOVUpITEVWQlFVdEdMRVZCUVVjc1QwRkJUME1zUTBGQlVTeEZRVWMzUWl4SFFVRkpSaXhKUVVGTlJ5eEZRVU5TTEUxQlFVOHNRMEZCUTBRc1JVRkJWVVlzUTBGQlF5eEZRVWx5UWtVc1NVRkJZVU1zUlVGQlMwZ3NSMEZCU3l4SFFVRkxMRWxCUnpWQ0xFbEJRVTFKTEVWQlFVdElMRVZCUVVjc1QwRkJUME1zUTBGQlVTeEZRVU0zUWl4UFFVRkpReXhKUVVGUFF5eEZRVU5HTEVOQlFVTkdMRVZCUVZWRExFTkJRVVVzUlVGSlppeERRVUZEU2l4RlFVRlZMRXRCUVVzc1NVRkJTVWtzUlVGQlNVTXNRMEZCUlN4RlFVRkpMRWRCUVVzc1NVRkJUU3hMUVVGTExFbEJRVWxFTEVWQlFVbERMRU5CUVVVc1EwRkJReXhEUVVOc1JTeERRVWRCTEZOQlFWTkRMRWRCUVZGRExFVkJRVWxETEVWQlFWRXNRMEZETTBKRUxFZEJRVTFETEVWQlFWTXNSMEZCU3l4SlFVVndRaXhKUVVGTlF5eEZRVUZKTEVsQlFVa3NTMEZCUzBZc1EwRkJSU3hGUVVWeVFpeE5RVUZQTEVOQlEwd3NTMEZCVFVVc1JVRkJSU3hsUVVGbExFVkJRM1pDTEUxQlFVOUJMRVZCUVVVc1dVRkJXU3hGUVVGSkxFVkJRM3BDTEVsQlFVdEJMRVZCUVVVc1YwRkJWeXhGUVVOc1FpeExRVUZOUVN4RlFVRkZMRmxCUVZrc1JVRkRjRUlzVDBGQlVVRXNSVUZCUlN4alFVRmpMRVZCUTNoQ0xFOUJRVkZCTEVWQlFVVXNZMEZCWXl4RlFVTjRRaXhaUVVGaFFTeEZRVUZGTEcxQ1FVRnRRaXhEUVVOd1F5eERRVU5HTEVOQlIwRXNVMEZCVTBNc1IwRkJVVU1zUlVGQlMwZ3NSVUZCVVhKQ0xFVkJRVTBzUTBGRGJFTXNUMEZCVDFrc1IwRkJWV0VzUjBGQllVUXNRMEZCUnl4RlFVRkhTQ3hGUVVGUmNrSXNRMEZCU1N4RFFVTnNSQ3hEUVVkQkxGTkJRVk13UWl4SFFVRlhjRUlzUlVGQlRYRkNMRVZCUVVzc1EwRkROMElzU1VGQlRVTXNSVUZCVDNSQ0xFVkJRVXNzUlVGRGFFSjFRaXhGUVVGUGRrSXNSVUZCU3l4RlFVRkZMRXRCUVU4c1MwRkJTeXhOUVVGTmNVSXNSVUZCU1N4TFFVRkxMRVZCUTNwRFJ5eEZRVUZSZUVJc1JVRkJTeXhGUVVGRkxFMUJRVkVzUzBGQlN5eE5RVUZOY1VJc1JVRkJTU3hOUVVGTkxFVkJRVWtzUzBGQlN5eE5RVUZOUVN4RlFVRkpMRkZCUVZFc1JVRkJTU3hGUVVNelJVa3NSVUZCU1hKQ0xFZEJRVUZETEVWQlFVRXNSMEZEUTB3c1JVRkJTeXhIUVVST0xFTkJSVVlzUzBGQlFYVkNMRVZCUTBFc1RVRkJRVU1zUlVGRFFTeEpRVU5GTEV0QlFVc3NTVUZCU1hoQ0xFVkJRVXNzUlVGQlJTeEpRVUZMTUVJc1IwRkJXVWdzUlVGQlRVTXNRMEZCU3l4RFFVRkRMRVZCUXpkRExFdEJRVXNzVFVGQlRVZ3NSVUZCU1N4SlFVRkpMRVZCUTI1Q0xFdEJRVXNzVFVGQlRVRXNSVUZCU1N4TFFVRkxMRVZCUVVrc1EwRkROVUlzUjBGRFFVMHNSVUZCWTBNc1JVRkJVeXhYUVVGWExFTkJRMmhETEUxQlFVOVFMRVZCUVVrc1RVRkJVU3hMUVVGTExFMUJRVTFCTEVWQlFVa3NTMEZCU3l4RlFVTjJReXhUUVVGVlFTeEZRVUZKTEZOQlFWY3NTMEZCU3l4TlFVRk5RU3hGUVVGSkxGRkJRVkVzUlVGRGFFUXNUMEZCVVVFc1JVRkJTU3hQUVVGVExFdEJRVXNzVFVGQlRVRXNSVUZCU1N4TlFVRk5MRVZCUXpGRExFMUJRVTlCTEVWQlFVa3NUVUZCVVN4TFFVRkxMRTFCUVUxQkxFVkJRVWtzUzBGQlN5eEZRVU4yUXl4TFFVRk5RU3hGUVVGSkxFdEJRVThzUzBGQlN5eE5RVUZOUVN4RlFVRkpMRWxCUVVrc1JVRkRjRU1zVFVGQlQwRXNSVUZCU1N4TlFVTllMRkZCUVZOQkxFVkJRVWtzVVVGRFlpeFJRVUZUUVN4RlFVRkpMRkZCUTJJc1lVRkJZMEVzUlVGQlNTeFpRVU53UWl4RFFVRkRMRVZCUVVVc1IwRkJSeXhqUVVGakxFVkJRM0JDWkN4RlFVRlZXU3hIUVVGaFRTeERRVUZETEVWQlJYUkNMRU5CUVVOWUxFVkJRVWxPTEVOQlFVTXNSVUZCU1VZc1IwRkJWVU1zUlVGQlUyVXNSVUZCVFhSQ0xFVkJRVXNzU1VGQlNTeEZRVVZvUkN4UFFVRkpNa0lzU1VGQlowSXNTVUZEYkVKaUxFZEJRVTFoTEVWQlJVNXVRaXhGUVVGSlVpeEZRVUZMTEV0QlFVc3NUMEZCVDJNc1EwRkJSU3hIUVVkc1FpeERRVUZGTEVkQlFVRkJMRVZCUVVrc1JVRkJRVTRzUTBGQlJTeERRVU5xUWl4RFFVbEJMRk5CUVZOeFFpeEhRVUZ2UWtNc1JVRkJVVU1zUlVGQldVTXNSVUZCVFVNc1JVRkJVVU1zUlVGQlRVTXNSVUZCWjBJc1EwRkRia1lzUjBGQlRTeERRVUZGTEZGQlFVRkRMRVZCUVZNc1MwRkJRVEZETEVOQlFVc3NSVUZCU1hORExFVkJRekZDTEVkQlFVbEdMRWRCUVZVc1QwRkJUeXhMUVVGTFFTeERRVUZOTEVWQlFVVXNVMEZCVnl4RlFVRkhMRU5CUXpsRExFbEJRVTFQTEVWQlFYRkNUaXhIUVVGamNrTXNSVUZEZGtOTkxFVkJRVTlITEVWQlFWTXNWMEZCVnpKQ0xFVkJRVkV4UWl4SFFVRkJReXhGUVVGQkxFZEJRemxDTWtJc1IwRkVPRUlzUTBGRmFrTXNTMEZCVFVzc1JVRkRUaXhsUVVGQlJpeERRVU5HTEVWQlFVTXNSVUZEU0N4UFFVRlBReXhGUVVGVmNFTXNSVUZCVDBFc1JVRkJTeXhSUVVGUlRpeERRVUZKTEVOQlF6TkRMRXRCUTBVc1VVRkJUMU1zUlVGQlV5eFJRVU5rTEVsQlFVbFNMRWRCUVZFc1lVRkJZeXhqUVVGamRVTXNRMEZCU1N4M1FrRkJkMEpFTEVOQlFVMHNSVUZCUlN4RFFVTTVSU3hEUVVWS0xFTkJTVUVzVTBGQlUwc3NSMEZCWVhwRExFVkJRVWx2UXl4RlFVRlJUU3hGUVVGVExFZEJRVTBzUTBGREwwTXNUMEZCVHpGRExFVkJRVWNzVVVGRFRqSkRMRWRCUVZVc1QwRkJUME1zUjBGQlR5eFBRVUZQTEU5QlFVOHNSVUZCUnl4RFFVTjJReXhQUVVGQlJpeEZRVU5CTEZsQlFXRXNSVUZEWml4RFFVRkRMRVZCUVVVc2VVSkJRWGxDTVVNc1JVRkJTVzlETEVOQlFVMHNSVUZEZEVNc1NVRkRUaXhEUVVWQkxGTkJRVk5UTEVkQlFWVnNReXhGUVVGSGJVTXNSVUZCVlN4RFFVTTVRaXhKUVVGTlF5eEZRVUZoY0VNc1JVRkJSU3hGUVVGRkxFdEJRVThzVFVGQlVVRXNSVUZCUlN4RlFVRkZMRXRCUVU4c1JVRkROME5wUWl4RlFVRkpMRWRCUTFJc1QwRkJTVzFDTEVkQlFXTndReXhGUVVGRkxFVkJRVVVzVFVGQlVTeEpRVUZIYVVJc1IwRkJTeXhMUVVOMFEwRXNSMEZCUzI5Q0xFZEJRVk55UXl4RlFVRkZMRVZCUVVVc1MwRkJUVzlETEVWQlFXRXNSVUZCU1N4RFFVRkRMRVZCUlhSRFJDeEhRVU5HYkVJc1IwRkJTeXhKUVVOTVFTeEhRVUZMYjBJc1IwRkJVM0pETEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUTNaQ2FVSXNSMEZCU3l4SlFVTk1RU3hIUVVGTGIwSXNSMEZCVTNKRExFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlJYSkNhVUlzUjBGQlMyOUNMRWRCUVZOeVF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVTjJRbWxDTEVkQlFVdHZRaXhIUVVGVGNrTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1IwRkZhRUpwUWl4RFFVTlVMRU5CUlVFc1UwRkJVM0ZDTEVkQlExQjBReXhGUVVOQmJVTXNSVUZEUVVrc1JVRkRRVU1zUlVGRFFVTXNSVUZEUVVNc1JVRkRRU3hEUVVOQkxFbEJRVWw2UWl4RlFVRkpiMElzUjBGQlUzSkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRM3BDTEU5QlFVbHRReXhIUVVOR2JFSXNSMEZCU3l4SlFVTk1RU3hIUVVGTGIwSXNSMEZCVTNKRExFVkJRVVVzUlVGQlJTeE5RVUZOTEVkQlEzQkNRU3hGUVVGRkxFVkJRVVVzVTBGQlZ5eEhRVUZMTEVOQlFVTjFReXhMUVVOMlFuUkNMRWRCUVVzc1RVRkhVRUVzUjBGQlMyOUNMRWRCUVZOeVF5eEZRVUZGTEVWQlFVVXNUVUZCVFN4SFFVZDBRa0VzUlVGQlJTeEZRVUZGTEZOQlFWY3NSMEZCU3l4RFFVRkRkVU1zUzBGRGRrSjBRaXhIUVVGTGIwSXNSMEZCVTNKRExFVkJRVVVzUlVGQlJTeE5RVUZOTEVkQlJYQkNRU3hGUVVGRkxFVkJRVVVzWTBGQlowSXNSMEZCU3l4RFFVRkRkME1zUzBGRE5VSjJRaXhIUVVGTExFbEJRMHhCTEVkQlFVdHZRaXhIUVVGVGNrTXNSVUZCUlN4RlFVRkZMRmxCUVdFc1EwRkJReXhKUVVsb1EzbERMRWxCUTBWNlF5eEZRVUZGTEdWQlFXbENRU3hGUVVGRkxGTkJRVmNzUjBGQlN5eERRVUZETUVNc1JVRkRlRU42UWl4SFFVRkxMRWxCUTBscVFpeEZRVUZGTEVWQlFVa3NSMEZEWm1sQ0xFZEJRVXNzU1VGRFRFRXNSMEZCUzI5Q0xFZEJRVk1zUzBGQlN5eE5RVUZOTEVOQlFVTnlReXhGUVVGRkxFVkJRVWtzUlVGQlJTeERRVUZETEVWQlEyNURhVUlzUjBGQlN5eEpRVU5NUVN4SFFVRkxiMElzUjBGQlV5eExRVUZMTEUxQlFVMHNRMEZCUTNKRExFVkJRVVVzUlVGQlNTeEZRVUZGTEVOQlFVTXNTVUZGYmtOcFFpeEhRVUZMTEVsQlEweEJMRWRCUVV0dlFpeEhRVUZUTEV0QlFVc3NUVUZCVFhKRExFVkJRVVVzUlVGQlNTeEZRVUZGTEVOQlFVTXNSVUZEYkVOcFFpeEhRVUZMTEVsQlEweEJMRWRCUVV0dlFpeEhRVUZUTEV0QlFVc3NUVUZCVFhKRExFVkJRVVVzUlVGQlNTeEZRVUZGTEVOQlFVTXNTVUZKYkVNd1F5eEpRVU5HZWtJc1IwRkJTeXhKUVVGTmFrSXNSVUZCUlN4TFFVRkxMRk5CUVZjc1MwRkZlRUpwUWl4RFFVTlVMRU5CUjBFc1NVRkJUVEJDTEVkQlFXOUNMRU5CUTNSQ0xFMUJRVThzUlVGRFVDeEpRVUZMTEVWQlEwd3NTMEZCVFN4RlFVTk9MRTlCUVZFc1JVRkRVaXhQUVVGUkxFVkJRMUlzV1VGQllTeERRVU5tTEVWQlEwRkRMRWRCUVhkQ0xFTkJRM1JDTEZkQlFWa3NSVUZEV2l4UlFVRlRMRVZCUTFRc1MwRkJUU3hGUVVOT0xFOUJRVkVzUlVGRFVpeFBRVUZSTEVWQlExSXNXVUZCWVN4RFFVTm1MRVZCUTBGRExFZEJRVEpDTEVOQlEzcENMRkZCUVZNc1JVRkRWQ3hMUVVGTkxFVkJRMDRzVDBGQlVTeEZRVU5TTEU5QlFWRXNSVUZEVWl4WlFVRmhMRU5CUTJZc1JVRkhTVU1zUjBGQlpTeERRVUZETEU5QlFWRXNVVUZCVXl4TlFVRlBMRTlCUVZFc1UwRkJWU3hUUVVGVkxHRkJRV0VzUlVGRGNrWkRMRWRCUVcxQ0xFTkJRMnBDTEZkQlEwRXNZVUZEUVN4VlFVTkJMRTlCUTBFc1UwRkRRU3hUUVVOQkxHRkJRMFlzUlVGRFFVTXNSMEZCYzBJc1EwRkJReXhQUVVGUkxGVkJRVmNzVDBGQlVTeFRRVUZWTEZOQlFWVXNZVUZCWVN4RlFVZHlSaXhUUVVGVFF5eEhRVUZqUXl4RlFVRk5MRU5CUXpOQ0xFbEJRVTFETEVWQlFXRXNRMEZEYWtJc1MwRkJUU3hQUVVOT0xFMUJRVThzVDBGRFVDeE5RVUZQTEZGQlExQXNUMEZCVVN4UlFVTlNMRWxCUVVzc1RVRkRUQ3hMUVVGTkxFMUJRMDRzUzBGQlRTeFBRVU5PTEUxQlFVOHNUMEZEVUN4UFFVRlJMRk5CUTFJc1VVRkJVeXhUUVVOVUxGRkJRVk1zVlVGRFZDeFRRVUZWTEZWQlExWXNUMEZCVVN4VFFVTlNMRkZCUVZNc1UwRkRWQ3haUVVGaExHTkJRMklzWVVGQll5eGpRVU5rTEZGQlFWTXNWVUZEVkN4VFFVRlZMRlZCUTFZc1YwRkJXU3hoUVVOYUxGbEJRV0VzWVVGRFlpeFpRVUZoTEdGQlEySXNVMEZCVlN4WFFVTldMRlZCUVZjc1YwRkRXQ3hSUVVGVExGTkJRMWdzUlVGQlJVUXNSVUZCU3l4WlFVRlpMRU5CUVVNc1JVRkZjRUlzUjBGQlNTeERRVUZEUXl4RlFVRlpMRTFCUVUwc1NVRkJTVU1zUjBGQmFVSkdMRU5CUVVrc1JVRkZhRVFzVDBGQlQwTXNRMEZEVkN4RFFVdEJMRk5CUVZORkxFZEJRVkV6UXl4RlFVRkxZeXhGUVVGTkxFTkJRekZDTEVsQlFVMTBReXhGUVVGUGIwVXNSMEZCWXpsQ0xFVkJRVXNzUzBGQlRTdENMRVZCUVZNc1YwRkJWeXhGUVVONFJFTXNSVUZCVFhaQ0xFZEJRVThzVjBGQlYxUXNRMEZCU1N4RlFVTTFRbWxETEVWQlFWRkdMRVZCUVZNc1NVRkJTU3hGUVVWdVFtcEVMRVZCUVVrc1JVRkhVaXhIUVVGTGIwUXNSVUZCV1doRUxFVkJRVWtzU1VGQlNTeEZRV1YyUWtvc1JVRkJTMjFFTEUxQlpuRkNMRU5CUXpGQ0xGRkJRVmRGTEV0QlFVdGlMRWRCUTFaWkxFVkJRVmxvUkN4RlFVRkphVVFzUTBGQlF5eERRVUZETEVsQlEzQkNha1FzUlVGQlNXbEVMRU5CUVVNc1JVRkJTV2hDTEVkQlFXdENaMElzUTBGQlF5eEhRVWxvUXl4SlFVRk5ReXhGUVVGVlF5eEhRVUYzUW01RUxFTkJRVWNzUjBGQlMyOUVMRWRCUVcxQ2NFUXNRMEZCUnl4RlFVTjBSU3hIUVVGSmEwUXNSVUZEUml4UFFVRlBha1VzUlVGQlV5eFJRVUZSYVVVc1EwRkJUeXhGUVVkcVF5eEpRVUZOUnl4RlFVRmxOMFVzUlVGQlN5eFBRVUZQZFVVc1EwRkJTeXhGUVVOMFF5eERRVUZEYmtRc1JVRkJTU3hEUVVGRExFVkJRVWxITEVkQlFWRkRMRVZCUVV0eFJDeEZRVUZqTjBVc1EwRkJTU3hEUVVNelF5eERRVWxCTEU5QlFVOHNTVUZCU1ZNc1JVRkJVeXhEUVVGRkxFZEJRVUZYTEVWQlFVa3NTMEZCUVhCQ0xFVkJRVTBzU1VGQlFYTkZMRVZCUVVzc1EwRkJSU3hEUVVGRExFTkJRekZETEVOQlJVRXNVMEZCVTFFc1IwRkJZVU1zUlVGQlQwTXNSVUZCU3pGRExFVkJRVTBzUTBGRGRFTXNTVUZCVFRKRExFVkJRVkZVTEVWQlFWbHNReXhGUVVGTExFdEJRVXNzUlVGQlNTeEhRVUZQUVN4RlFVRkxMRTFCUTJ4RVF5eEZRVUZUTEVOQlFVTlNMRVZCUVVkcFF5eExRVU5ZYWtNc1JVRkJTVzFFTEVkQlFWRnVSQ3hGUVVGSGEwUXNSMEZCVXpORExFVkJRVXNzVlVGQldTeEZRVUZKTEVWQlFVY3NSVUZCU1N4RlFVTnNRekJETEVWQlFVa3NTVUZCU1N4TlFVRk5NVU1zUTBGQlNTeEZRVUZGTEdGQlFXRkJMRU5CUVVrc1JVRkRkRU1zVDBGQlQxQXNSVUZCUjJsRExFTkJRVWtzUjBGRmFrTnRRaXhGUVVGVmJrSXNSMEZEU2pGQ0xFVkJRVXNzVlVGRFJqQkRMRVZCUVVrc1VVRkJVVVFzUlVGQlQyWXNRMEZCU1N4RlFVVmtMRVZCUkV4blFpeEZRVUZKTEZGQlFWRm9RaXhEUVVGSkxFVkJRVVVzUzBGQlMyVXNSVUZCVFN4UlFVRlJaaXhEUVVGSkxFVkJRVWRCTEVOQlFVa3NSVUZCUlN4SlFVRkpRU3hEUVVGSkxFVkJSelZFWjBJc1JVRkJTU3hMUVVGTFJDeEZRVUZQWml4RFFVRkpMRVZCUVVVc1NVRkJTVUVzUTBGQlNTeEZRVWt6UXl4SFFVRkpNVUlzUlVGQlN5eExRVU5RTEU5QlFVOURMRVZCUVU4MFF5eEZRVUZQTjBNc1JVRkJTeXhKUVVGSkxFVkJRVWRCTEVWQlFVc3NTVUZCU1N4RlFVYzFReXhSUVVGWE1FSXNTMEZCVVRGQ0xFVkJRVXNzVFVGQlR5eERRVU0zUWl4SlFVRk5PRU1zUlVGQlVVUXNSVUZCVDI1Q0xFTkJRVWtzUlVGRGVrSXNSMEZCU1N4TFFVRkxMRWxCUVVsdlFpeERRVUZMTEVkQlFVc3NSVUZEY2tJc1QwRkJUemRETEVWQlFVODJReXhGUVVGUGNFSXNRMEZCU1N4RFFVVTNRaXhEUVVOQkxFOUJRVTk2UWl4RlFVRlBkME1zUlVGQlVVTXNSVUZCVFN4SFFVRkxMRVZCUVVjeFF5eEZRVUZMTEUxQlFVMUJMRVZCUVVzc1RVRkJUU3hQUVVGVExFTkJRVU1zUTBGQlF5eERRVU4yUlN4RFFVVkJMRk5CUVZNclF5eEhRVUZUUXl4RlFVRlRMRU5CUTNwQ0xFbEJRVWxvUkN4RlFVRlBMRU5CUVVNc1JVRkRWbWxFTEVWQlEwWXNUMEZCU1VRc1JVRkJVU3hQUVVGVExFZEJRVXNzVDBGQlQwRXNSVUZCVVVFc1JVRkJVU3hQUVVGVExFTkJRVU1zUjBGQlRTeFZRVU12UkdoRUxFVkJRVTluUkN4RlFVRlJRU3hGUVVGUkxFOUJRVk1zUTBGQlF5eEZRVU5xUTBNc1JVRkJUeXhOUVVGTkxFdEJRVXRFTEVOQlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVkQkxFVkJRVkVzVDBGQlV5eERRVUZETEVkQlJYUkVReXhGUVVGUExFMUJRVTBzUzBGQlMwUXNRMEZCVHl4RlFVVndRaXhEUVVGRGFFUXNSVUZCVFdsRUxFTkJRVWtzUTBGRGNFSXNRMEZ6UWtFc1NVRkJjVUk1UlN4RlFVRnlRaXhOUVVGeFFpdEZMRU5CUVZNc1EwRkpOVUlzV1VGQldVTXNSVUZCVVN4RFFVTnNRaXhKUVVGTmVrWXNSVUZCVDNsR0xFVkJRVThzVFVGQlVYQkNMRVZCUVZNc1dVRkZha05MTEVWQlEwWmxMRVZCUVU4c1ZVRkRUaXhQUVVGUExFMUJRVTFCTEVWQlFVOHNSVUZCUlN4RlFVRkpMRWxCUVVsNFJpeEhRVUZSTEdWQlFXVXNSVUZCU1N4UlFVTjRSRVFzUlVGQlN5eFJRVUZyUXl4TFFVRjRRa1FzUjBGQlowSkRMRU5CUVVrc1IwRkpka01zUzBGQlN5eEhRVUZMZDBVc1JVRkJXV2xDTEVWQlFVOHNSVUZCUlN4RlFVRkpjRUlzUlVGQlV5eEpRVUZKTEVWQlFVbHZRaXhGUVVGUExFZEJSVE5FTEVsQlFVa3hSQ3hGUVVGSkxFdEJRMDVxUWl4RlFVRkpMRXRCUTA0c1IwRkJTU3hEUVVGRE5FUXNSVUZIU0N4SFFVWnJRbVVzUlVGQlR5eExRVUZQUVN4RlFVRlBMRWxCUVVrc1MwRkJUeXhMUVVGTExFbEJRVTFCTEVWQlFVOHNTVUZCU1N4TFFVRkxMRTlCUVU5NlJpeERRVUZKTEVWQlIzUkdMRU5CUVVNclFpeEZRVUZIYWtJc1EwRkJReXhGUVVGSkxFTkJRVU15UlN4RlFVRlBMRWxCUVVrc1JVRkJSMEVzUlVGQlR5eEpRVUZKTEVOQlFVTXNUVUZETDBJc1EwRkRUQ3hKUVVGTlF5eEZRVUZMTVVZc1JVRkJTeXhQUVVGUExFdEJRVXNzUlVGQlJTeEZRVU01UWl0Q0xFVkJRVWxhTEVkQlFWRXNTMEZCU3l4SFFVRkpkVVVzUTBGQlJTeEZRVU4yUW1oQ0xFVkJRVlVzVDBGQlR5eE5RVUZOTTBNc1JVRkJSU3hKUVVGSkxFVkJRVWtzU1VGQlNUbENMRWRCUVZFc1pVRkJaU3hGUVVGSkxFdEJRMmhGT0VJc1JVRkJTVEpETEVWQlFWVXNTMEZCVHpORExFVkJRM0pDYWtJc1JVRkJTVFJFTEVWQlFWVXNTMEZCVDJkQ0xFTkJRM1pDTEVOQlRVWXNTMEZCU3l4TlFVRlJNVVlzUlVGSllpeExRVUZMTEVsQlFVMTVSaXhGUVVGUExFdEJRVTh4UXl4SFFVRlBMRTlCUVU4c1JVRkpka01zUzBGQlN5eFJRVUZWTWtJc1JVRkpaaXhMUVVGTExGTkJRVmNzUzBGSmFFSXNTMEZCU3l4RlFVRkpNME1zUlVGSlZDeExRVUZMTEVWQlFVbHFRaXhGUVVsVUxFdEJRVXNzWjBKQlFXdENMRVZCUTNwQ0xFTkJWMEVzVDBGQlR5eExRVUZOTEVOQlExZ3NUMEZCVHl4SlFVRkpNRVVzUlVGQlV5eERRVUZETEVOQlFVTXNRMEZEZUVJc1EwRjFRa0VzVDBGQlR5eFBRVUZSTEVOQlEySXNSMEZCVFN4RFFVRkRiRVFzUlVGQlRXbEVMRU5CUVVrc1JVRkJTVVlzUjBGQlV5eFRRVUZUTEVWQlEzSkRMRU5CUVVONFJDeEZRVUZOUXl4RlFVRlBOa1FzUlVGQlMwTXNSVUZCVFVNc1JVRkJVVU1zUlVGQlVVTXNRMEZCVnl4RlFVRkpVaXhGUVVNeFJDeFBRVUZQY0VJc1IwRkJVU3hEUVVGRkxFdEJRVUYwUXl4RlFVRk5MRTFCUVVGRExFVkJRVThzU1VGQlFUWkVMRVZCUVVzc1MwRkJRVU1zUlVGQlRTeFBRVUZCUXl4RlFVRlJMRTlCUVVGRExFVkJRVkVzV1VGQlFVTXNRMEZCV1N4RlFVRkhla1FzUTBGQlNTeERRVU01UlN4RFFUQkNRU3hQUVVGUExFdEJRVTBzUTBGRFdDeEhRVUZOTEVOQlFVTkJMRVZCUVUxcFJDeERRVUZKTEVWQlFVbEdMRWRCUVZNc1UwRkJVeXhGUVVOeVF5eERRVUZEZUVRc1JVRkJUVU1zUlVGQlR6WkVMRVZCUVV0RExFVkJRVTFETEVWQlFWRkRMRVZCUVZGRExFTkJRVmNzUlVGQlNWSXNSVUZGTVVRc1QwRkJRV3BFTEVWQlFVc3NTMEZCVHpCRUxFZEJRV2RDTEZsQlEzSkNOMElzUjBGQlVTeERRVUZGTEV0QlFVRjBReXhGUVVGTkxFMUJRVUZETEVWQlFVOHNTVUZCUVRaRUxFVkJRVXNzUzBGQlFVTXNSVUZCVFN4UFFVRkJReXhGUVVGUkxFOUJRVUZETEVWQlFWRXNXVUZCUVVNc1EwRkJXU3hGUVVGSGVrUXNRMEZCU1N4RFFVTTVSU3hEUVZOQkxFOUJRVThzVjBGQlZ6SkVMRVZCUVUxRExFVkJRVlVzUTBGQlF5eEZRVUZITEVOQlEzQkRMRWxCUVUwNVJTeEZRVUZMSzBVc1IwRkJUMFlzUTBGQlNTeEZRVUZKUVN4RlFVRkxMRkZCUVZFc1JVRkJTU3hKUVVNelF5eEhRVUZKTEU5QlFVOHNUVUZCVFRkRkxFTkJRVVVzUlVGRGFrSXNUMEZCVDI5RkxFVkJRVk1zVVVGQlVTeGxRVUZsTEVWQlIzcERMRWxCUVUxWkxFVkJRVmxvUXl4SFFVRmpPRUlzUlVGQlVTeExRVUZOTjBJc1JVRkJVeXhYUVVGWExFVkJRMnhGTEU5QlFVc3JRaXhGUVVGVkxGRkJTVklzU1VGQlNWb3NSVUZCVXl4RFFVTnNRaXhIUVVGSmNFVXNSVUZEU2l4TFFVRk5aMFlzUlVGRFRpeEpRVUZMY2tRc1IwRkJUeXhYUVVGWGJVUXNRMEZCVHl4RFFVTm9ReXhEUVVGRExFVkJVRkZXTEVWQlFWTXNVVUZCVVhwR0xFZEJRV2RDY1Vjc1EwRkJVeXhEUVVGRExFTkJVWFJFTEVOQldVRXNUMEZCVHl4WFFVRlhReXhGUVVGalNDeEZRVUZWTEVOQlFVTXNSVUZCUnl4RFFVTTFReXhIUVVGTFNTeEhRVUZUUkN4RFFVRlpMRVZCU1c1Q0xFOUJRVWxCTEVWQlFXVXNRMEZCUTNaSExFbEJRVmwxUnl4RlFVRmxka2NzUjBGRk4wTXdSaXhGUVVGVExGRkJRVkVzZDBKQlFYZENMRVZCUlhwRExFbEJRVWxCTEVWQlFWTXNRMEZEYkVJc1IwRkJTV0VzUlVGRFNpeExRVUZOYWtNc1IwRkJZemhDTEVWQlFWRXNTMEZCVFRkQ0xFVkJRVk1zVjBGQlZ5eEZRVU4wUkN4SlFVRkxkRUlzUjBGQlR5eFhRVUZYYlVRc1EwRkJUeXhEUVVOb1F5eERRVUZETEVWQldFUXNUVUZCVFN4SlFVRkpTeXhIUVVOU0xIbEVRVUY1UkN4UFFVRlBSaXhEUVVGWkxHVkJRV1ZCTEVOQlFWa3NSVUZEZWtjc1EwRlhTaXhEUVZsQkxFOUJRVThzV1VGQldVY3NSVUZCVTA0c1JVRkJWU3hEUVVGRExFVkJRVWNzUTBGRGVFTXNSMEZCUzBrc1IwRkJVMFVzUTBGQlR5eEZRVWR1UWl4UFFVRlBMRWxCUVVsb1FpeEZRVUZUTEVOQlEyeENMRWRCUVVsblFpeEZRVUZWTEVsQlEyUXNTMEZCVFhCRExFZEJRV000UWl4RlFVRlJMRXRCUVUwM1FpeEZRVUZUTEZkQlFWY3NSVUZEZEVRc1NVRkJTM1JDTEVkQlFVOHNWMEZCVjIxRUxFTkJRVThzUTBGRGFFTXNRMEZCUXl4RlFVNUVMRTFCUVUwc1NVRkJTVXNzUjBGQmNVSXNkME5CUVhkRExFTkJVVE5GTEVOQk9FSkJMRTlCUVU4c1YwRkJWeTlGTEVWQlFVdGpMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRMmhEWkN4RlFVRk5RU3hIUVVGUExFTkJRVU1zUlVGRFpDeEpRVUZOTkVVc1JVRkJXV2hETEVkQlFXTTVRaXhGUVVGTExFdEJRVTByUWl4RlFVRlRMRmRCUVZjc1JVRkRMMFFzUjBGQlNTeERRVUZESzBJc1JVRkJWU3hSUVVOaUxFOUJRVTlhTEVWQlFWTXNVVUZCVVhwR0xFZEJRV2RDY1Vjc1EwRkJVeXhEUVVGRExFVkJSM0JFTEVsQlFVMDNRaXhGUVVGUlJpeEZRVUZUTEVsQlFVa3NSVUZEZWtKUkxFVkJRV2RDVEN4RlFVRlpiRU1zUlVGQlN5eGpRVUZqTEVWQlJUTkRPRVFzUlVGQlZTeFBRVUZQTjBJc1EwRkJTeXhGUVVSMFFtcERMRVZCUVVzc1pVRkZWREpDTEVWQlFXRjNReXhIUVVGblFtcEdMRVZCUVV0MVF5eEZRVUZoTEVWQlF5OURNa01zUlVGQmEwSXNRMEZCUTJ4RExFVkJRVmxRTEVWQlFWY3NUMEZCVHl4RlFVTnFSREJETEVWQlFYRkNMRU5CUVVOdVF5eEZRVUZaVUN4RlFVRlhMRWxCUVVrc1JVRkRha1F5UXl4RlFVRnRRaXhEUVVGRGNFTXNSVUZCV1ZBc1JVRkJWeXhMUVVGTExFZEJRVXNzUTBGQlEwOHNSVUZCV1ZBc1JVRkJWeXhIUVVGSExFVkJRMmhHTkVNc1JVRkJhVUpHTEVkQlFYTkNReXhGUVVOMlEwVXNSVUZCYTBJM1F5eEZRVUZYTEZWQlFWbEJMRVZCUVZjc1YwRkRjRVJMTEVWQlFVMTJRaXhIUVVGUExGZEJRVmRVTEVOQlFVa3NSVUZST1VJc1NVRkJTM1ZGTEVkQlFXdENTQ3hKUVVGdlFra3NSVUZEZWtNc1RVRkJUU3hKUVVGSlF5eEhRVU5TTEhGRlFVTkdMRVZCUjBZc1IwRkJTVWdzUjBGQmIwSkdMRVZCUTNSQ0xFMUJRVTBzU1VGQlNVc3NSMEZCT0VJc2QwTkJRWGRETEVWQlIyeEdMRWxCUVUxRExFVkJRV05HTEVkQlFXOUNOME1zUlVGQlZ5eFRRVUZYTEVOQlFVTTBReXhGUVVjelJFa3NSVUZEUmtNc1JVRkRRVU1zUlVGQlUyaEhMRWRCUVZGdlJDeEZRVUZQVFN4RFFVRlpMRVZCUTJ4RGJVTXNSMEZEUmtNc1JVRkJVWEJFTEVkQlExSnhSQ3hGUVVGblFuaEVMRWRCUTJoQ2VVUXNSVUZCVXk5SExFZEJRV2RDSzBjc1EwRkJUU3hIUVVOMFFsUXNSMEZEVkU4c1JVRkJVVzVFTEVkQlExSnZSQ3hGUVVGblFuWkVMRWRCUTJoQ2QwUXNSVUZCVTBNc1IwRkJiVUpFTEVOQlFVMHNTVUZGYkVOR0xFVkJRVkZ5UkN4SFFVTlNjMFFzUlVGQlowSjZSQ3hKUVVsc1FpeEpRVUZKTkVRc1JVRkJZU3hIUVVOcVFpeFJRVUZYTlVNc1MwRkJTM2RETEVWQlFVOHNRMEZEY2tJc1NVRkJUVXNzUlVGQlNYSkVMRVZCUVZkUkxFTkJRVU1zUlVGRGFrSkVMRVZCUVZrNFF5eERRVUZETEVWQlJWQkVMRVZCUTFSd1JDeEZRVUZYVVN4RFFVRkRMRVZCUVVsNVF5eEZRVUZqZWtNc1EwRkJReXhGUVVVdlFsSXNSVUZCVjFFc1EwRkJReXhGUVVGSk1FTXNSVUZCVHpGRExFTkJRVU1zUlVGS2VFSTBReXhGUVVGaExFVkJUV3BDTEVOQlIwRXNTVUZCVFVVc1JVRkJjVUpRTEVWQlEzSkNVU3hIUVVGdFFuWkVMRU5CUVZVc1JVRkROMEo1UXl4RlFVTkJaU3hIUVVGelFuaEVMRU5CUVZVc1JVRkRhRU5WTEVkQlFYZENWaXhEUVVGVkxFVkJRM1JEVXl4RlFVRlZOa01zUjBGQmMwSXpReXhIUVVGdFFsZ3NRMEZCVlN4RlFVVXZSQ3hIUVVGSlV5eEZRVU5HTEU5QlFVOWpMRVZCUVZNc1VVRkJVV1FzUTBGQlR5eEZRVWxxUXl4SlFVRk5aMFFzUlVGQldWWXNSVUZEV2xjc1IwRkJaMEl4UkN4RFFVRlZMRVZCUXpGQ2VVTXNSVUZEUVd0Q0xFZEJRVzFDTTBRc1EwRkJWU3hGUVVNM1FrRXNSVUZEU2l4RFFVRkRORVFzUlVGQlUwTXNRMEZCVnl4RlFVRkpka2NzUjBGQlVXMUhMRVZCUVZjM1F5eEZRVUZqZFVJc1EwRkJVeXhGUVVOdVJUbEdMRVZCUVU4c1NVRkJTV3RHTEVWQlFWTXNRMEZEYkVJc1IwRkJTWEZETEVWQlEwb3NTMEZCVFhwQ0xFVkJRMDRzUlVGQlJ6QkNMRVZCUTBnc1NVRkJRWGhFTEVOQlEwWXNRMEZCUXl4RlFVZElMRTlCUVVsTUxFVkJRVmNzVTBGQlZ6UkRMRWRCUVd0Q2NrWXNSVUZCU1N4VlFVRlpiRUlzUlVGQlN5eFJRVU40Ukd0R0xFVkJRVk1zVVVGRFpDeHhRa0ZEUVN4MVEwRkJkVU4yUWl4RlFVRlhMRTlCUVU4c2EwSkJRV3RDTTBRc1JVRkJTeXhOUVVGTkxFTkJRVU1zUlVGRGVrWXNSVUZIUzBFc1EwRkRWQ3hEUVd0Q1FTeFBRVUZQTEZGQlFWRnJReXhGUVVGTlJpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTTVRaXhIUVVGTkxFTkJRVU41Uml4RlFVRk5NVVlzUTBGQlZTeEZRVUZKTWtZc1IwRkJZWGhHTEVOQlFVa3NSVUZETlVNc1QwRkJUMHdzUjBGQmIwSTBSaXhGUVVGTk1VWXNSVUZCV1VNc1JVRkJUU3hYUVVGWlJTeERRVUZKTEVOQlEzSkZMRU5CWjBKQkxFOUJRVThzV1VGQldVRXNSVUZCVFVZc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGJFTXNSMEZCVFN4RFFVRkRlVVlzUlVGQlRURkdMRU5CUVZVc1JVRkJTVFJHTEVkQlFXbENla1lzUTBGQlNTeEZRVU5vUkN4UFFVRlBUQ3hIUVVGdlFqUkdMRVZCUVUweFJpeEZRVUZaUXl4RlFVRk5MRmRCUVZsRkxFTkJRVWtzUTBGRGNrVXNRMEZwUWtFc1QwRkJUeXhUUVVGVFFTeEZRVUZOUml4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVNdlFpeEhRVUZOTEVOQlFVTjVSaXhGUVVGTk1VWXNRMEZCVlN4RlFVRkpOa1lzUjBGQll6RkdMRU5CUVVrc1JVRkROME1zVDBGQlQwd3NSMEZCYjBJMFJpeEZRVUZOTVVZc1JVRkJXVU1zUlVGQlRTeFBRVUZSUVN4RFFVRkpMRU5CUTJwRkxFTkJaVUVzVDBGQlR5eFhRVUZYUlN4RlFVRk5Na1lzUlVGQlN6ZEdMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRM1JETEVkQlFVbHJReXhGUVVGWmFFTXNRMEZCU1N4SFFVRkxaME1zUlVGQldUSkVMRU5CUVVjc1JVRkRkRU1zVFVGQlRTeEpRVUZKTlVJc1IwRkJjVUlzYTBSQlFXdEVMRVZCUjI1R0xFZEJRVTBzUTBGQlJTeFBRVUZCTmtJc1JVRkJVeXhMUVVGTkxHZENRVUZCUXl4RlFVRnJRaXhKUVVGTExFVkJRVWt2Uml4RlFVTm9SR2RITEVWQlFXTjJSaXhIUVVGUExGTkJRVk1zUTBGRE5VSXNUMEZCUVhGR0xFVkJRMEVzWjBKQlFVRkRMRVZCUTBFc1dVRkJZU3hGUVVObUxFTkJRVU1zUlVGRFJDeERRVUZEVGl4RlFVRk5NVVlzUlVGQldVa3NSVUZCWjBKcFF5eERRVUZQTEVWQlFVazJSQ3hIUVVGblFrUXNSVUZCWVRsR0xFVkJRVTB5Uml4RFFVRkhMRVZCUTNSR0xFOUJRVWw2UkN4RlFVTkxZeXhGUVVGVExGRkJRVkZrTEVOQlFVOHNSVUZGZUVKMlF5eEhRVUZ2UWpSR0xFVkJRVTB4Uml4RlFVRlpReXhGUVVGTkxGVkJRVlUyUml4RFFVRkhMRWRCUVVrelJpeEZRVUZOUXl4RFFVRmpMRU5CUlRWR0xFTkJTMEVzVDBGQlR5eFhRVUZYUkN4RlFVRk5Na1lzUlVGQlN6ZEdMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRM1JETEU5QlFVOXJSQ3hGUVVGVExGZEJRVmRvUkN4RlFVRk5Na1lzUlVGQlN6ZEdMRU5CUVVrc1EwRkROVU1zUTBGelFrRXNUMEZCVHl4UlFVRlJSU3hGUVVGTlJpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTTVRaXhIUVVGTkxFTkJRVU41Uml4RlFVRk5NVVlzUTBGQlZTeEZRVUZKYlVjc1IwRkJVMmhITEVOQlFVa3NSVUZEZUVNc1QwRkJUMHdzUjBGQmIwSTBSaXhGUVVGTk1VWXNSVUZCV1VNc1JVRkJUU3hOUVVGUFJTeERRVUZKTEVOQlEyaEZMRU5CVVVFc1QwRkJUeXhSUVVGUmFVY3NSVUZCVVVNc1JVRkJZeXhMUVVGTkxFTkJRM3BETEVkQlFVa3NRMEZCUTBRc1JVRkRTQ3hOUVVGTkxFbEJRVWxzUXl4SFFVRnhRaXhyUkVGQmEwUXNSVUZIYmtZc1NVRkJUVGRDTEVWQlFWVXJSQ3hoUVVGclFuaEpMRWRCUVZWM1NTeEZRVUZUTEVsQlFVbDRTU3hIUVVGUmQwa3NSVUZCVVVNc1EwRkJWeXhGUVVWd1JpeEhRVUZKY2tVc1JVRkJVeXhsUVVOWUxFMUJRVTBzU1VGQlNYTkZMRWRCUVhGQ2FrVXNRMEZCVHl4RlFVVjBReXhQUVVGUExFbEJRVWxqTEVWQlFWTXNRMEZCUlN4UlFVRkJaQ3hEUVVGUkxFTkJRVU1zUTBGRmJrTXNRMEZQUVN4UFFVRlBMRmRCUVZjMVJDeEZRVUZITEVOQlEyNUNMRTlCUVZGQkxFZEJRVXRCTEVWQlFVVXNhVUpCUVc5Q0xFVkJRM0pETEVOQlYwRXNTVUZCU1d0RUxFVkJRVTBzUTBGRFVpeFBRVUZQTEV0QlFVdEJMRU5CUVVrc1EwRkRiRUlzUTBGUlFTeEpRVUZKTEZOQlFWVXNRMEZEV2l4UFFVRlBMRXRCUVVzc1ZVRkJXU3hKUVVNeFFpeERRVTFCTEVsQlFVa3NaVUZCWjBJc1EwRkRiRUlzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4UlFVRlJMRTlCUVZNc1NVRkRPVU1zUTBGTlFTeEpRVUZKTEc5Q1FVRnhRaXhEUVVOMlFpeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRkZCUVZFc1dVRkJZeXhKUVVOdVJDeERRVTlCTEVsQlFVa3NVVUZCVXl4RFFVTllMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzU1VGQlNTeFBRVUZUTEVsQlF6RkRMRU5CVDBFc1NVRkJTU3hwUWtGQmEwSXNRMEZEY0VJc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eEpRVUZKTEdkQ1FVRnJRaXhKUVVOdVJDeERRVTlCTEVsQlFVa3NaMEpCUVdsQ0xFTkJRMjVDTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1NVRkJTU3hsUVVGcFFpeEpRVU5zUkN4RFFVMUJMRWxCUVVrc1RVRkJUeXhEUVVOVUxFOUJRVThzUzBGQlN5eExRVU5rTEVOQlRVRXNTVUZCU1N4VlFVRlhMRU5CUTJJc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eExRVUZMTEV0QlFVOHNTVUZEZWtNc1EwRlBRU3hKUVVGSkxFMUJRVThzUTBGRFZDeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRVZCUVVVc1MwRkJUeXhIUVVOMFF5eERRVTlCTEVsQlFVa3NVMEZCVlN4RFFVTmFMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzUzBGQlN5eExRVUZMTEVWQlFVVXNUVUZCVVN4RFFVRkRMRVZCUVVrc1IwRkRkRVFzUTBGUFFTeEpRVUZKTEU5QlFWRXNRMEZEVml4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFVkJRVVVzVFVGQlVTeEhRVU4yUXl4RFFVOUJMRWxCUVVrc1MwRkJUU3hEUVVOU0xFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NSVUZCUlN4SlFVRk5MRWRCUTNKRExFTkJUMEVzU1VGQlNTeE5RVUZQTEVOQlExUXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhGUVVGRkxFdEJRVThzUjBGRGRFTXNRMEZQUVN4SlFVRkpMRkZCUVZNc1EwRkRXQ3hQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEVWQlFVVXNUMEZCVXl4SFFVTjRReXhEUVU5QkxFbEJRVWtzVVVGQlV5eERRVU5ZTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1JVRkJSU3hQUVVGVExFZEJRM2hETEVOQlQwRXNTVUZCU1N4aFFVRmpMRU5CUTJoQ0xFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NSVUZCUlN4WlFVRmpMRWRCUXpkRExFTkJVVUVzU1VGQlNTeFZRVUZYTEVOQlEySXNUMEZCVHl4TFFVRkxMRkZCUVZVNVJDeEhRVUYxUWl4SlFVRkpMRVZCUVVVc1UwRkJWeXhIUVVOb1JTeERRVkZCTEVsQlFVa3NXVUZCWVN4RFFVTm1MRTlCUVU4c1MwRkJTeXhSUVVGVlFTeEhRVUYxUWl4SlFVRkpMRVZCUVVVc1YwRkJZU3hIUVVOc1JTeERRVk5CTEVsQlFVa3NVMEZCVlN4RFFVTmFMRTlCUVU4c1MwRkJTeXhSUVVGVlFTeEhRVUYxUWl4SlFVRkpMRVZCUVVVc1VVRkJWU3hIUVVNdlJDeERRVTlCTEVsQlFVa3NVMEZCVlN4RFFVTmFMRTlCUVU4c1MwRkJTeXhSUVVGVmEwZ3NSMEZCYlVJc1MwRkJTeXhEUVVGRExFVkJRVVVzVVVGQlZTeEhRVU0zUkN4RFFWRkJMRWxCUVVrc1dVRkJZU3hEUVVObUxFOUJRVThzUzBGQlN5eFJRVUZWZDBJc1IwRkJTeXhQUVVGUExGRkJRVk1zUTBGQlJTeFBRVUZSTEV0QlFVc3NSMEZCU1N4RFFVRkRMRVZCUVVVc1MwRkJTeXhOUVVGUkxFTkJRVU1zUlVGQlNTeEpRVU55Uml4RFFWRkJMRWxCUVVrc1YwRkJXU3hEUVVOa0xFOUJRVThzUzBGQlN5eFJRVUZWUVN4SFFVRkxMRTlCUVU4c1QwRkJVU3hEUVVGRkxFOUJRVkVzUzBGQlN5eEhRVUZKTEVOQlFVTXNSVUZCUlN4TFFVRkxMRTFCUVZFc1EwRkJReXhGUVVGSkxFbEJRM0JHTEVOQlVVRXNTVUZCU1N4alFVRmxMRU5CUTJwQ0xFOUJRVThzUzBGQlN5eFJRVUZWUVN4SFFVRkxMRk5CUVZNc1VVRkJVeXhEUVVGRkxFOUJRVkVzUzBGQlN5eEhRVUZKTEVOQlFVTXNSVUZCUlN4TFFVRkxMRkZCUVZVc1EwRkJReXhGUVVGSkxFbEJRM3BHTEVOQlVVRXNTVUZCU1N4aFFVRmpMRU5CUTJoQ0xFOUJRVThzUzBGQlN5eFJRVUZWUVN4SFFVRkxMRk5CUVZNc1QwRkJVU3hEUVVGRkxFOUJRVkVzUzBGQlN5eEhRVUZKTEVOQlFVTXNSVUZCUlN4TFFVRkxMRkZCUVZVc1EwRkJReXhGUVVGSkxFbEJRM2hHTEVOQlVVRXNTVUZCU1N4UlFVRlRMRU5CUTFnc1QwRkJUeXhMUVVGTExGRkJRVlVzUTBGQlF5eExRVUZMTEVWQlFVa3NSMEZEYkVNc1EwRlBRU3hKUVVGSkxHbENRVUZyUWl4RFFVTndRaXhQUVVGSkxFdEJRVXNzVVVGRFFTeExRVUZMTEV0QlFVc3NWMEZCVnl4TFFVRkxMRWRCUVVrc1EwRkRia01zVDBGQlVTeFJRVU5TTEU5QlFWRXNTMEZCU3l4TlFVTm1MRU5CUVVNc1JVRkZUU3hKUVVWWUxFTkJUMEVzU1VGQlNTeG5Ra0ZCYVVJc1EwRkRia0lzVDBGQlNTeExRVUZMTEZGQlEwRXNTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhIUVVGSkxFTkJRMjVETEU5QlFWRXNUMEZEVWl4UFFVRlJMRXRCUVVzc1RVRkRaaXhEUVVGRExFVkJSVTBzU1VGRldDeERRVTFCTEVsQlFVa3NaVUZCWjBJc1EwRkRiRUlzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4TFFVRkxMRmxCUVdNc1NVRkRhRVFzUTBGTlFTeEpRVUZKTEZOQlFWVXNRMEZEV2l4UFFVRkpMRXRCUVVzc1kwRkRRU3hIUVVkTUxFdEJRVXNzVDBGQlV5eExRVUZMTEVsQlFVa3NRMEZCUlN4TlFVRlBMRVZCUVVjc1NVRkJTeXhEUVVGRkxFTkJRVU1zUlVGQlJTeFJRVU0zUXl4TFFVRkxMRTlCUVZNc1MwRkJTeXhKUVVGSkxFTkJRVVVzVFVGQlR5eERRVUZGTEVOQlFVTXNSVUZCUlN4TlFVY3pReXhEUVZGQkxFbEJRVWtzWTBGQlpTeERRVU5xUWl4UFFVRlBReXhIUVVGWExFdEJRVXNzU1VGQlNTeERRVU0zUWl4RFFWRkJMRWxCUVVrc1lVRkJZeXhEUVVOb1FpeFBRVUZQTjBjc1IwRkJXU3hMUVVGTExFdEJRVTBzUzBGQlN5eExRVUZMTEVOQlF6RkRMRU5CVVVFc1NVRkJTU3haUVVGaExFTkJRMllzVDBGQlR5eExRVUZMTEZGQlFWVTRSeXhIUVVGWExFdEJRVXNzU1VGQlNTeEZRVUZKTEVkQlEyaEVMRU5CVTBFc1NVRkJTU3hwUWtGQmEwSXNRMEZEY0VJc1QwRkJUeXhMUVVGTExGRkJRVlZETEVkQlFXZENMRXRCUVVzc1VVRkJVU3hGUVVGSkxFZEJRM3BFTEVOQlVVRXNjMEpCUVhOQ2VrY3NSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRMMElzUjBGQlRTeERRVUZGTEU5QlFVRTRSaXhGUVVGUkxHZENRVUZCUXl4RlFVRnBRaXhUUVVGQlZ5eERRVUZUTEVWQlFVbHNSeXhIUVVGVkxFOUJRM1JFTEV0QlFVc3NTVUZCU1N4TlFVRk5VaXhEUVVGSkxFVkJRMjVDUVN4RFFVTkdMRVZCUVVVc1owSkJRV2RDTEVsQlFVa3NSVUZEZEVJc1RVRkJUeXhEUVVGRkxFOUJRVUU0Uml4RlFVRlJMR2RDUVVGQlF5eEZRVUZwUWl4bFFVRm5RbGNzUTBGQlV5eERRVU0zUkN4RFFWbEJMRTFCUVUwelNDeEZRVUZUTEVWQlFVZHBRaXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU16UWl4UFFVRlBMRXRCUVVzc1VVRkJVVEJFTEVkQlFXZENMRk5CUVZNelJTeERRVUZOTEVWQlFVZHBRaXhEUVVGSkxFTkJRelZFTEVOQlVVRXNVMEZCVlN4RFFVTlNMRTlCUVU4c1MwRkJTeXhSUVVGUkswSXNSVUZCVXl4WFFVRlhMRU5CUXpGRExFTkJWMEVzVVVGQlVYSkZMRVZCUVUwc1EwRkJSU3hqUVVGQmFVb3NSVUZCWjBJc1IwRkJUeXhwUWtGQlFVTXNSVUZCYlVJc1JVRkJUU3hGUVVGSkxFTkJRVU1zUlVGQlJ5eERRVVYwUlN4SFFVUkJiRW9zUlVGQlQyOUZMRWRCUVdOd1JTeEZRVUZOY1VVc1JVRkJVeXhYUVVGWExFVkJRek5EY2tVc1JVRkJTeXhQUVVGUExFdEJRVXNzU1VGQlNTeEZRVU4yUWl4UFFVRlBMRXRCUTBZc1IwRkJTMEVzUlVGQlN5eFJRVVZXTEVOQlEwd3NTVUZCU1cxS0xFVkJRVkVzUzBGQlN5eEhRVU5xUWl4SFFVRkpSaXhIUVVGcFFrTXNSVUZCYTBJc1EwRkRja01zU1VGQlRVVXNSVUZCWTNCS0xFVkJRVXNzVDBGQlR5eExRVUZMTEVWQlFVVXNSVUZEYWtOeFNpeEZRVUZSTEV0QlFVc3NVMEZCVXl4RlFVTTFRaXhEUVVGRFJpeERRVUZMTEVWQlFVazFTQ3hIUVVGUk9FZ3NSVUZCVDBRc1JVRkJZWEJLTEVOQlFVa3NRMEZETlVNc1EwRkRRU3hQUVVGUFN5eEhRVUZOTEV0QlFVMHNRMEZCUlN4SFFVRkpPRWtzUlVGQlR5eExRVUZCYmtvc1EwRkJTeXhEUVVGRExFTkJRM2hETEV0QlZFVXNVVUZCVDNkR0xFVkJRVk1zVVVGQlVYcEdMRWRCUVdkQ1F5eERRVUZKTEVOQlFVTXNRMEZWYWtRc1EwRlJRU3haUVVGWkxFTkJRVVVzVDBGQlFXOUpMRVZCUVZFc1owSkJRVUZETEVWQlFXbENMR1ZCUVVGcFFpeERRVUZsTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUXpWRUxFbEJRVTFvUml4RlFVRk5MRXRCUVVzc1NVRkJTU3hOUVVGTkxFTkJRVVVzVDBGQlFUaEVMRVZCUVZFc1owSkJRVUZETEVWQlFXbENMR1ZCUVVGcFFpeERRVUZsTEVOQlFVTXNSVUZEZEVVc1QwRkJUMnBLTEVkQlFVMHNTMEZCVFN4RFFVRkZMRWxCUVVGcFJTeERRVUZKTEVOQlFVTXNRMEZETlVJc1EwRlJRU3hWUVVGVk9FUXNSVUZCVVN4RFFVTm9RaXhQUVVGUExFdEJRVXNzV1VGQldTeERRVUZGTEU5QlFVRkJMRU5CUVU4c1EwRkJReXhEUVVOd1F5eERRVmxCTEVsQlFVbHRRaXhGUVVGUkxFTkJRMVlzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4UFFVRlBMRXRCUlRGQ0xFbEJRVTEwUml4RlFVRmhkME1zUjBGQlowSTRReXhGUVVGUmVFWXNSVUZCWVN4RlFVTjBSSGxHTEVWQlEwVXNRMEZCUTJoR0xFVkJRVmxRTEVWQlFWY3NVVUZCVVN4SFFVTm9ReXhEUVVGRFR5eEZRVUZaVUN4RlFVRlhMRlZCUVZVc1IwRkRiRU1zUTBGQlEwOHNSVUZCV1ZBc1JVRkJWeXhQUVVGUExFVkJRMnBEZVVNc1JVRkJhMElzUTBGQlEyeERMRVZCUVZsUUxFVkJRVmNzVDBGQlR5eEZRVU5xUkRCRExFVkJRWEZDTEVOQlFVTnVReXhGUVVGWlVDeEZRVUZYTEVsQlFVa3NSVUZEYWtReVF5eEZRVUZ0UWl4RFFVRkRjRU1zUlVGQldWQXNSVUZCVnl4TFFVRkxMRWRCUVVzc1EwRkJRMDhzUlVGQldWQXNSVUZCVnl4SFFVRkhMRVZCUTJoR05FTXNSVUZCYVVKR0xFZEJRWE5DUXl4RlFVTjJRMFVzUlVGQmEwSTNReXhGUVVGWExGVkJRVmxCTEVWQlFWY3NWMEZGZEVRc1NVRkJTelJETEVkQlFXdENTQ3hKUVVGdlFra3NSVUZEZWtNc1RVRkJUU3hKUVVGSlF5eEhRVU5TTEhGRlFVTkdMRVZCUjBZc1IwRkJTVWdzUjBGQmIwSkdMRVZCUTNSQ0xFMUJRVTBzU1VGQlNVc3NSMEZCT0VJc2QwTkJRWGRETEVWQlIyeEdMRWxCUVVrd1F5eEZRVU5CUkN4RlFVTkdReXhGUVVGUk9VSXNSMEZCWjBKb1NDeEpRVUZCTEVkQlFVdFFMRWRCUVdkQ0xFdEJRVXNzUTBGQlF5eEhRVUZOTmtRc1JVRkJXU3hGUVVNelJFOHNSVUZCV1ZBc1JVRkJWeXhQUVVGUExFZEJSM2hEZDBZc1JVRkJVVGxKTEVsQlFVRXNSMEZCU3l4TFFVRkxMRk5CUVZNc1IwRkJUWE5FTEVkQlNUZENUeXhGUVVGWlVDeEZRVUZYTEVkQlFVY3NTVUZETlVKM1JpeEZRVUZOTEVsQlFVMHNTMEZCU3l4SlFVRkpla2dzUjBGQldYbElMRVZCUVUwc1MwRkJUVUVzUlVGQlRTeExRVUZMTEVWQlFVZEJMRVZCUVUwc1IwRkJSeXhKUVZCMFJVRXNSVUZCVVRkQ0xFZEJRVzFDYWtnc1NVRkJRU3hIUVVGTGVVY3NSMEZCYlVJc1MwRkJTeXhEUVVGRExFZEJRVTF1UkN4RlFVRlpMRVZCVnpkRkxFZEJRVTBzUTBGQlF6ZERMRVZCUVVsT0xFTkJRVU1zUlVGQlNWTXNSMEZCVVd0SkxFVkJRVThzUzBGQlN5eEZRVUZITEV0QlFVc3NTVUZCU1N4RlFVTm9SQ3hQUVVGUGNFb3NSMEZCVFN4TFFVRk5MRU5CUVVVc1IwRkJRV1VzUlVGQlNTeEZRVUZCVGl4RFFVRkZMRU5CUVVNc1EwRkRPVUlzUTBGbFFTeExRVUZMTkVrc1JVRkJWU3hEUVVOaUxFZEJRVWtzUTBGQlF5eExRVUZMTEZGQlFWTXNUMEZCVHl4TFFVTXhRaXhKUVVGTkwwZ3NSVUZCVFU4c1JVRkJVeXhwUWtGQmFVSjNTQ3hEUVVGUkxFVkJRemxETEU5QlFVOXlTaXhIUVVGTkxFdEJRVTF4UWl4SFFVRlhMRXRCUVUxRExFTkJRVWNzUTBGQlF5eERRVU14UXl4RFFWRkJMRTFCUVUwclNDeEZRVUZWTEVOQlEyUXNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhQUVVGUExFdEJRekZDTEVsQlFVMHZTQ3hGUVVGTlR5eEZRVUZUTEdsQ1FVRnBRbmRJTEVOQlFWRXNSVUZCUlN4UFFVRlBMRVZCUTNaRUxFOUJRVTl5U2l4SFFVRk5MRXRCUVUxeFFpeEhRVUZYTEV0QlFVMURMRU5CUVVjc1EwRkJReXhEUVVNeFF5eERRVmxCTEZGQlFWRnhReXhGUVVGTkxFTkJRMW9zUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4UFFVRlBMRXRCUXpGQ0xFbEJRVTFzUkN4RlFVRkpMRU5CUVVNc1JVRkRWRFpKTEVWQlFXbENla2dzUlVGQlV5eGpRVUZqT0VJc1EwRkJTU3hGUVVNNVF5eFBRVUZSTWtZc1JVRkJaMElzUTBGRGRFSXNTVUZCU3l4UlFVTklOMGtzUlVGQlJTeE5RVUZSTEVWQlJWb3NTVUZCU3l4WFFVTk1MRWxCUVVzc1UwRkRTRUVzUlVGQlJTeEpRVUZOTEVWQlJWWXNTVUZCU3l4UlFVTk1MRWxCUVVzc1QwRkRTRUVzUlVGQlJTeExRVUZQTEVWQlJWZ3NTVUZCU3l4UlFVTklRU3hGUVVGRkxFOUJRVk1zUlVGRllpeEpRVUZMTEZWQlEwaEJMRVZCUVVVc1QwRkJVeXhGUVVWaUxFbEJRVXNzVlVGRFNFRXNSVUZCUlN4WlFVRmpMRVZCUTJoQ0xFMUJRMFlzU1VGQlN5eGxRVU5JTEV0QlJVb3NRMEZOUVN4SFFVcEpOa2tzU1VGQmJVSXNWVUZEY2tJM1NTeEZRVUZGTEZGQlFWVXNSMEZIVmpaSkxFbEJRVzFDTEZkQlFWa3NRMEZEYWtNc1NVRkJUVU1zUlVGQlNTeExRVUZMTEV0QlFVc3NTMEZCU3l4TlFVRlJMRU5CUVVNc1JVRkRiRU01U1N4RlFVRkZMRTlCUVZNNFNTeEZRVUZKTEVkQlFVc3NSVUZCU1N4RFFVTXhRaXhEUVVWQkxFOUJRVThzUzBGQlN5eEpRVUZKT1Vrc1EwRkJReXhEUVVOdVFpeERRVmxCTEUxQlFVMXJSQ3hGUVVGTkxFTkJRMVlzVDBGQlR5eExRVUZMTEZGQlExSXNTMEZCU3l4TFFVRkxMRU5CUVVVc1EwRkJRMEVzUTBGQlNTeEZRVUZITEVOQlFVVXNRMEZCUXl4RlFVTndRaXhSUVVGUlFTeERRVUZKTEVWQlExb3NUVUZCVFN4RFFVRkRMRVZCUTFZc1NVRkRUaXhEUVdkQ1FTeFRRVUZUYlVVc1JVRkJTemRHTEVWQlFVOHNRMEZCUXl4RlFVRkhMRU5CUTNaQ0xFOUJRVThzUzBGQlN5eFJRVU5TVVN4SFFVRlZMRTlCUVU4c1MwRkJTeXhKUVVGSkxHTkJRV05TTEVOQlFVa3NRMEZCUXl4RlFVRkZMSGxDUVVGNVFpeExRVUZOTmtZc1EwRkJSeXhGUVVOcVJuUkpMRVZCUTA0c1EwRnhRa0VzWlVGQlpXZExMRVZCUVhGQ1F5eEhRVUZaZUVnc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGVrUXNUMEZCVHl4TFFVRkxMRkZCUTFKUkxFZEJRVlVzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFZJc1EwRkJTU3hGUVVGSGRVZ3NRMEZCVlN4RlFVRkZMR1ZCUVdVc1NVRkJTU3hGUVVOMFJXaExMRVZCUTA0c1EwRmxRU3hqUVVGamVVTXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRka0lzVDBGQlR5eExRVUZMTEZGQlExSlJMRWRCUVZVc1QwRkJUeXhMUVVGTExFbEJRVWtzVFVGQlRWSXNRMEZCU1N4RlFVRkhRU3hEUVVGSkxFVkJRVVVzYjBKQlFXOUNMRWxCUVVrc1JVRkRja1VzUTBGQlF5eERRVU5RTEVOQlowSkJMRTFCUVUwc1EwRkRTaXhQUVVGQlF5eEZRVUZUTEZkQlExUXNaMEpCUVVGakxFVkJRV3RDTEVkQlEyeENMSEZDUVVGQlF5eEZRVUYxUWl4SFFVTjJRaXhqUVVGQlF5eEZRVUZuUWl4SFFVTm9RaXhoUVVGQlF5eEZRVUZsTEVWQlEycENMRVZCUVVrc1EwRkJReXhGUVVGSExFTkJRMDRzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZEVWl4UFFVRlBMRXRCUjFRc1NVRkJUWFZITEVWQlFVMTRTQ3hKUVVGWExGZEJSVzVDVWl4RlFVRkphVUlzUjBGQlZTeExRVUZOSzBjc1EwRkJSeXhGUVVNelFpeFBRVUZCYUVrc1IwRkJTeXhKUVVOTVFTeEhRVUZMY1VJc1IwRkJWU3hMUVVGTk1rY3NSVUZCU3pGSExFVkJRV2xDUXl4RlFVRnpRa01zUlVGQlpVTXNRMEZCV1N4RlFVTnlSbnBDTEVOQlExUXNRMEZWUVN4VlFVRlZMRU5CUVVVc1QwRkJRVkVzUlVGQlV5eFZRVUZYTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTNSRExFOUJRVXNzUzBGQlN5eFJRVWxJVXl4SFFVRlZMRXRCUVUxVUxFbEJRVmNzVlVGQlZTeEZRVWh1UXl4SlFVbFlMRU5CVDBFc1pVRkJaMElzUTBGRFpDeFBRVUZQU3l4SFFVRmhMRXRCUVUwc1kwRkJZeXhEUVVNeFF5eERRV2xDUVN4VlFVRlZMRU5CUTFJc2NVSkJRVUZWTEVWQlFYVkNMRWRCUTNaQ0xHZENRVUZCUkN4RlFVRnJRaXhIUVVOc1FpeGpRVUZCUlN4RlFVRm5RaXhIUVVOb1FpeGpRVUZCZVVjc1JVRkJaMElzUjBGRGFFSXNZVUZCUVhoSExFVkJRV1VzUjBGRFppeFBRVUZCYWtJc1JVRkJVeXhWUVVOWUxFVkJRVWtzUTBGQlF5eEZRVUZITEVOQlEwNHNUMEZCU3l4TFFVRkxMRk5CU1VaNVNDeEZRVUZuUWl4SlFVRk5MRWxCUnpWQ05VY3NSMEZEUlN4TFFVTkJZaXhKUVVGWExGZEJRMWhqTEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVOQlEwWXNSVUZpVHl4SlFXVllMRU5CVVVFc1YwRkJXU3hEUVVOV0xFOUJRVTlhTEVkQlFXRXNTMEZCVFN4blEwRkJhVU1zUlVGQlN5eERRVU5zUlN4RFFWVkJMRkZCUVZNc1EwRkRVQ3hQUVVGUFFTeEhRVUZoTEV0QlFVc3NUVUZCVFN4RlFVRkhMR2xEUVVGcFF5eERRVU55UlN4RFFVOUJMRmRCUVZrc1EwRkRWaXhQUVVGTExFdEJRVXNzVVVGSFNFa3NSMEZCVlN4TFFVRk5MRVZCUVVrc1JVRkdiRUlzU1VGSFdDeERRV05CTEZWQlFWVXNRMEZCUlN4alFVRkJUeXhGUVVGblFpeEhRVUZOTEZsQlFVRXdSeXhGUVVGakxFZEJRVThzYlVKQlFVRkRMRVZCUVhGQ0xFVkJRVXNzUlVGQlNTeERRVUZETEVWQlFVY3NRMEZEZGtZc1NVRkJTUzlDTEVWQlFVMHNaVUZGVml4UFFVRkpPRUlzUjBGQlpURkhMRXRCUTJJeVJ5eEpRVU5HTDBJc1IwRkJUeXhMUVVWTU9FSXNSVUZEUmpsQ0xFZEJRVThzU1VGRFJUVkZMRWxCUTFRMFJTeEhRVUZQTEU5QlNVcDJSaXhIUVVGaExFdEJRVTExUml4RlFVRkxMRVZCUVVrc1EwRkRja01zUTBGalFTeE5RVUZOTjBZc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRFppeFBRVUZMTEV0QlFVc3NVVUZKU0N4SFFVRkhMRXRCUVVzc1ZVRkJWU3hEUVVGRExFbEJRVWtzUzBGQlN5eFZRVUZWUVN4RFFVRkpMRU5CUVVNc1IwRklla01zU1VGSldDeERRVTFCTEZWQlFWY3NRMEZEVkN4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFMUJRVTBzUlVGQlNYcERMRVZCUTNaRExFTkJUVUVzVTBGQlZTeERRVU5TTEU5QlFVOHNTMEZCU3l4VFFVRlRMRU5CUTNaQ0xFTkJUVUVzVlVGQlZ5eERRVU5VTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1IwRkJTeXhIUVVOc1F5eERRVTFCTEZkQlFWa3NRMEZEVml4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFZEJRVXNzU1VGQlR5eEhRVU42UXl4RFFVMUJMR1ZCUVdkQ0xFTkJRMlFzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4TlFVRk5MRXRCUVVzc1IwRkJTeXhIUVVGSkxFVkJRVWtzUjBGRGNrUXNRMEZOUVN4UlFVRlRMRU5CUTFBc1QwRkJUeXhMUVVGTExFMUJRVTBzUTBGRGNFSXNRMEZOUVN4UlFVRlRMRU5CUTFBc1QwRkJUeXhMUVVGTExGTkJRVk1zUTBGRGRrSXNRMEZUUVN4VFFVRlRlVU1zUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEYkVJc1IwRkJTU3hEUVVGRExFdEJRVXNzVVVGQlV5eE5RVUZQTEVOQlFVTXNSVUZGTTBJc1NVRkJUVFpJTEVWQlFVOTRTaXhGUVVGQkxFZEJRVXNzUzBGQlN5eEhRVVYyUWl4UFFVRkpNa0lzUlVGQlN5eG5Ra0ZEVURaSUxFVkJRVXNzWlVGQmFVSXNTMEZCU3l4bFFVTXpRa0VzUlVGQlN5eG5Ra0ZCYTBJc1MwRkJTeXhKUVVGSkxHZENRVU5vUTBFc1JVRkJTeXhQUVVGVExFdEJRVXNzU1VGQlNTeFJRVVZzUWtFc1EwRkRWQ3hEUVUxQkxGVkJRVmNzUTBGRFZDeFBRVUZQTEVsQlFVa3NTMEZCU3l4TFFVRkxMRkZCUVZVc1MwRkJTeXhIUVVGTExFZEJRVWNzUTBGRE9VTXNRMEZ0UWtFc1MwRkJTME1zUlVGQlpYQkhMRVZCUVU4c1pVRkJaMEl4UWl4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVOd1JDeEhRVUZKTEVOQlFVTXNTMEZCU3l4VFFVRlhMRU5CUVVNNFNDeEZRVUZqTEZGQlEyeERMRTlCUVU5c1NTeEZRVUZUTEZGQlFWRXNkME5CUVhkRExFVkJSMnhGTEVsQlFVMXRTU3hGUVVGVk1Vb3NSVUZCUVN4RFFVRkZMRTlCUVZFc1MwRkJTeXhQUVVGUkxHZENRVUZwUWl4TFFVRkxMR2xDUVVGdlFqSkNMRWRCUlRORk1rVXNSVUZCVVhGRUxFZEJRVmQwUnl4RFFVRkpMRVZCUVVVc1NVRkJTVGxDTEVWQlFWTXNZVUZCWVN4RlFVTjJSSEZKTEVWQlFXVklMRVZCUVdNc1VVRkJVU3hGUVVGSkxFdEJRVXNzVVVGQlVTeEZRVU4wUkVrc1JVRkJWVVFzUlVGQlpTeExRVUZQU0N4RlFVTm9RMHNzUlVGQlVVWXNSVUZCWlVnc1JVRkJaMElzUzBGRGRrTk5MRVZCUVZORExFZEJRVXRJTEVWQlFWTkRMRVZCUVU5NFJDeEZRVUZQYjBRc1EwRkJUeXhGUVVVNVF5eFBRVUZQUlN4RlFVRmxSeXhGUVVGUExFOUJRVThzUlVGQlNVRXNRMEZETVVNc1EwRlZRU3hSUVVGUk1VY3NSVUZCVHl4bFFVRm5RakZDTEVWQlFVOHNRMEZCUXl4RlFVRkhMRU5CUTNoRExFOUJRVThzUzBGQlN5eExRVUZMYTBRc1JVRkJVeXhKUVVGSkxFVkJRVWQ0UWl4RlFVRk5NVUlzUTBGQlNTeERRVU0zUXl4RFFVOUJMRTFCUVUwNFNDeEZRVUZsTEVOQlEyNUNMRTlCUVU4c1MwRkJTeXhSUVVGVlVTeEhRVUZUTEdOQlFXTXNTMEZCVFZJc1EwRkJZU3hGUVVGSkxFbEJRM1JGTEVOQlYwRXNVVUZCVVVFc1JVRkJaWEJITEVWQlFVMHNRMEZETTBJc1IwRkJTU3hEUVVGRExFdEJRVXNzVVVGQlV5eE5RVUZQTEVkQlJURkNMRWxCUVUwMlJ5eEZRVUZWVkN4RlFVRmpMRkZCUVZFc1JVRkRhRU5WTEVWQlFXbENMRXRCUVVzc1VVRkJVVllzUlVGQll5eExRVUZOTEVOQlFVVXNZMEZCWlN4RlFVRkxMRU5CUVVNc1JVRkRMMFVzVDBGQlQxVXNSVUZCWlN4UlFVRlJPVWNzUTBGQlNTeEhRVUZMTmtjc1IwRkJWMEVzUjBGQlYwTXNSVUZCWlN4TlFVRk5PVWNzUTBGQlNTeERRVU40Uml4RFFWTkJMRTlCUVU4clJ5eEZRVUZQTEVOQlExb3NUMEZEUlN4TFFVRkxMRk5CUTB4QkxFVkJRVTBzVTBGRFRpeExRVUZMTEZGQlFWRXNTVUZCVFVFc1JVRkJUU3hSUVVGUkxFZEJRMnBETEV0QlFVc3NTMEZCU3l4UFFVRlBRU3hGUVVGTkxFbEJRVWtzUjBGRE0wSXNTMEZCU3l4SlFVRkpMRTlCUVU5QkxFVkJRVTBzUjBGQlJ5eERRVVUzUWl4RFFXOUNRU3hYUVVGWE4wVXNSVUZCVlN4RFFVRkRMRVZCUVVjc1EwRkRka0lzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4UFFVRlBMRXRCUXpGQ0xFbEJRVTFwUlN4RlFVRlBha1VzUlVGQlVTeE5RVUZSVml4RlFVRlRMRmRCUVZjc1EwRkJReXhGUVVGSExFTkJRVVVzUzBGQlRTeExRVUZMTEVsQlFVc3NRMEZCUXl4RlFVTjBSWGRHTEVWQlFWVTVSU3hGUVVGUkxGRkJRVmNzUzBGQlQybEZMRVZCUVU4c1EwRkJRMnBGTEVWQlFWRXNVVUZCVlVFc1JVRkJVU3hSUVVGWExFVkJReTlGWlN4RlFVRlJMRU5CUVVNc1VVRkJVeXhUUVVGVkxFOUJRVkVzVVVGQlV5eFZRVUZYTEZOQlFWTXNSVUZEYWtWcVJDeEZRVUZQYTBNc1JVRkJVU3hMUVVOdVFpeFBRVUZKTEUxQlFVMHNVVUZCVVVFc1JVRkJVU3hKUVVGSkxFbEJRelZDWlN4RlFVRlJaaXhGUVVGUkxFdEJRMmhDYkVNc1JVRkJUeXhSUVVWR1l5eEhRVUZoY1VZc1JVRkJUU3hMUVVGTExFdEJRVXRoTEVOQlFVOHNSVUZCUjNSTExFZEJRVUZETEVWQlFVRXNSMEZEZWtOMVJpeEhRVVI1UXl4RFFVVTFReXhSUVVGVExGTkJRMVFzVFVGQlFXVXNSVUZEUVN4TFFVRkJha1FzUTBGRFJpeEZRVUZETEVOQlEwZ3NRMEZsUVN4dFFrRkJiVUpyUXl4RlFVRlZMRU5CUVVNc1JVRkJSeXhEUVVNdlFpeFBRVUZMTEV0QlFVc3NVVUZGU0hCQ0xFZEJRV0Z2UWl4RlFVRlJMRTFCUVZGV0xFVkJRVk1zVjBGQlZ5eERRVUZETEVWQlFVY3NRMEZCUlN4TFFVRk5MRXRCUVVzc1NVRkJTeXhEUVVGRExFVkJRVWNzUzBGQlRUbEZMRWRCUVVGRExFVkJRVUVzUjBGRGJrWjFSaXhIUVVSdFJpeERRVVYwUml4UlFVRlRMRTlCUTFRc1RVRkJUeXhEUVVGRExGRkJRVk1zVTBGQlZTeE5RVUZOTEVWQlEycERMRlZCUVZjc1JVRkRZaXhGUVVGRExFVkJVSGxDTEVsQlVUVkNMRU5CVDBFc1QwRkJUeXhQUVVGUEswVXNSVUZCVnl4RFFVTjJRaXhIUVVGSkxFTkJRVU5CTEVWQlFWVXNUVUZCVFhwR0xFVkJRVk1zVlVGQlZTeEZRVU4wUXl4TlFVRk5MRWxCUVVsbExFZEJRWEZDTEhsRFFVRjVReXhGUVVVeFJTeFBRVUZQTWtVc1IwRkJUMFFzUlVGQldVVXNSMEZCVFVFc1JVRkJSU3hSUVVGUkxFVkJRVWNzUzBGQlN5eEhRVUZITEVOQlEzWkVMRU5CVDBFc1QwRkJUeXhQUVVGUFJpeEZRVUZYTEVOQlEzWkNMRWRCUVVrc1EwRkJRMEVzUlVGQlZTeE5RVUZOZWtZc1JVRkJVeXhWUVVGVkxFVkJRM1JETEUxQlFVMHNTVUZCU1dVc1IwRkJjVUlzZVVOQlFYbERMRVZCUlRGRkxFOUJRVTh5UlN4SFFVRlBSQ3hGUVVGWlJTeEhRVUZOUVN4RlFVRkZMRkZCUVZFc1JVRkJSeXhMUVVGTExFZEJRVWNzUTBGRGRrUXNRMEZYUVN4UFFVRlBMR3RDUVVGclFqTkpMRVZCUVUweVJpeEZRVUZMYWtNc1JVRkJWU3hEUVVGRExFVkJRVWNzUTBGRGFFUXNSMEZCVFN4RFFVRkZMRTlCUVVGclF5eEZRVUZUTEV0QlFVMHNaMEpCUVVGRExFVkJRV3RDTEVsQlFVc3NSVUZCU1c1RExFVkJRMmhFYjBNc1JVRkJZM1pHTEVkQlFVOHNVMEZCVXl4RFFVTTFRaXhQUVVGQmNVWXNSVUZEUVN4blFrRkJRVU1zUlVGRFFTeFpRVUZoTEVWQlEyWXNRMEZCUXl4RlFVTklMRTlCUVU4clF5eEhRVUZyUWpsRExFVkJRV0U1Uml4RlFVRk5Na1lzUTBGQlJ5eERRVU5xUkN4RFFVdEJMRTlCUVU4c2EwSkJRV3RDTTBZc1JVRkJUVEpHTEVWQlFVdHFReXhGUVVGVkxFTkJRVU1zUlVGQlJ5eERRVU5vUkN4UFFVRlBWaXhGUVVGVExHdENRVUZyUW1oRUxFVkJRVTB5Uml4RlFVRkxha01zUTBGQlR5eERRVU4wUkN4RFFWRkJMRmRCUVZjc1dVRkJZU3hEUVVOMFFpeFBRVUZsTkVRc1JVRkRha0lzUTBGTlFTeFhRVUZYTEZWQlFWY3NRMEZEY0VJc1QwRkJaWFZDTEVWQlEycENMRU5CVFVFc1YwRkJWeXgxUWtGQmQwSXNRMEZEYWtNc1QwRkJaVU1zUlVGRGFrSXNRMEZOUVN4WFFVRlhMRmRCUVZrc1EwRkRja0lzVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExGZEJRVmtzUTBGRGNrSXNUMEZCWlVNc1JVRkRha0lzUTBGTlFTeFhRVUZYTEdGQlFXTXNRMEZEZGtJc1QwRkJaVU1zUlVGRGFrSXNRMEZOUVN4WFFVRlhMRzFDUVVGdlFpeERRVU0zUWl4UFFVRmxReXhGUVVOcVFpeERRVTFCTEZkQlFWY3NkMEpCUVhsQ0xFTkJRMnhETEU5QlFXVkRMRVZCUTJwQ0xFTkJUVUVzVjBGQlZ5eDFRa0ZCZDBJc1EwRkRha01zVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExHZENRVUZwUWl4RFFVTXhRaXhQUVVGbFF5eEZRVU5xUWl4RFFVMUJMRmRCUVZjc2MwSkJRWFZDTEVOQlEyaERMRTlCUVdWRExFVkJRMnBDTEVOQlRVRXNWMEZCVnl3eVFrRkJORUlzUTBGRGNrTXNUMEZCWlVNc1JVRkRha0lzUTBGTlFTeFhRVUZYTERCQ1FVRXlRaXhEUVVOd1F5eFBRVUZsUXl4RlFVTnFRaXhEUVUxQkxGZEJRVmNzWjBKQlFXbENMRU5CUXpGQ0xFOUJRV1ZETEVWQlEycENMRU5CVFVFc1YwRkJWeXcyUWtGQk9FSXNRMEZEZGtNc1QwRkJaVU1zUlVGRGFrSXNRMEZOUVN4WFFVRlhMR05CUVdVc1EwRkRlRUlzVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExESkNRVUUwUWl4RFFVTnlReXhQUVVGbFF5eEZRVU5xUWl4RFFVMUJMRmRCUVZjc01rSkJRVFJDTEVOQlEzSkRMRTlCUVdWRExFVkJRMnBDTEVOQlRVRXNWMEZCVnl4bFFVRm5RaXhEUVVONlFpeFBRVUZsUXl4RlFVTnFRaXhEUVUxQkxGZEJRVmNzTkVKQlFUWkNMRU5CUTNSRExFOUJRV1ZETEVWQlEycENMRU5CVFVFc1YwRkJWeXhsUVVGblFpeERRVU42UWl4UFFVRmxReXhGUVVOcVFpeERRVTFCTEZkQlFWY3NORUpCUVRaQ0xFTkJRM1JETEU5QlFXVkRMRVZCUTJwQ0xFTkJRMFlzUlVGTFR5eFRRVUZUUXl4SFFVRnBRa01zUlVGQllTeERRVU0xUXl4SFFVRkpiRTBzUlVGQlV5eFhRVUZYYTAwc1EwRkJWeXhGUVVOcVF5eFBRVUZQUVN4RlFVTkdMRWRCUVVsQkxFZEJRV1ZCTEVWQlFWa3NVMEZCVjNKSExFZEJRVk54Unl4RlFVRlpMRkZCUVZFc1EwRkJReXhGUVVNM1JTeFBRVUZQYkUwc1JVRkJVeXhYUVVGWGEwMHNRMEZCVnl4RlFVTnFReXhIUVVGSlFTeEhRVUZsTEU5QlFVOUJMRWRCUVdkQ0xGTkJReTlETEU5QlFVOXNUU3hGUVVGVExGZEJRVmRyVFN4RFFVRlhMRVZCUlhSRExFMUJRVTBzU1VGQlNYQkhMRWRCUTFJc09FSkJRVGhDYjBjc1EwRkJWeXhoUVVGaExFOUJRVTlCTEVOQlFWY3NSVUZETVVVc1EwRkZTaXhEUXpGeFJVRXNTVUZCUVVNc1IwRkJiVUlzVTBORWJrSXNTVUZCVDBNc1IwRkJVU3hKUVVWUUxESm5Xa1JaUkN4VFFVRlRReXhIUVVGclFrTXNSVUZCWlN4RFFVTTNReXhQUVVGNVFrRXNSMEZCVVN4TFFVRmhRU3hGUVVWMlEwRXNSVUZCU1N4UlFVRlJMRkZCUVZNc1UwRkJWU3hSUVVGVExFOUJRVkVzVVVGQlV5eFZRVUZYTEZWQlFWY3NZMEZCWXl4RlFVRkZMRlZCUVZVc1EwRkRjRWdzUTBFMFFrOHNVMEZCVTBNc1IwRkJhMEpETEVWQlFXZENReXhGUVVGdlFrTXNSVUZCZDBKRExFVkJRWGxDTEVOQlJXNUlMRTlCUVVsSUxFVkJRVXNzVVVGQlZTeEhRVUZMUVN4RlFVRkxMRkZCUVZVc1IwRkJTMEVzUlVGQlN5eE5RVUZSTEVWQlF6bERRU3hGUVVGTExGRkJRVkVzUlVGQlJTeFRRVUZUUXl4RlFVRlpMRU5CUVVVc1QwRkJRVVVzUTBGQlR5eERRVUZETEVWQlIyeEVTQ3hGUVVGTExGRkJRVkVzUlVGQlJTeFRRVUZUUlN4RlFVRm5RaXhEUVVGRkxFOUJRVUZETEVOQlFVOHNRMEZCUXl4RFFVTTNSQ3hEUVVkUExGTkJRVk5ETEVkQlFYTkNReXhGUVVGMVFpeERRVU42UkVFc1JVRkJUVU1zUjBGQmEwSkVMRU5CUVVjc1JVRkhNMElzU1VGQlNVVXNSVUZCVXl4SFFVTmlMRTlCUVVsR0xFVkJRVWtzVVVGQlQwVXNSMEZCVlN4SFFVRkhSaXhGUVVGSkxFdEJRVXNzV1VGRGFrTkJMRVZCUVVrc1UwRkJVVVVzUjBGQlZTeEhRVUZIUml4RlFVRkpMRTFCUVUwc1lVRkRia05CTEVWQlFVa3NVVUZCVDBVc1IwRkJWU3hIUVVGSFJpeEZRVUZKTEV0QlFVc3NXVUZEYWtOQkxFVkJRVWtzVDBGQlRVVXNSMEZCVlN4SFFVRkhSaXhGUVVGSkxFbEJRVWtzVjBGREwwSkJMRVZCUVVrc1VVRkJUMFVzUjBGQlZTeEhRVUZIUml4RlFVRkpMRXRCUVVzc1dVRkRha05CTEVWQlFVa3NWVUZCVTBVc1IwRkJWU3hIUVVGSFJpeEZRVUZKTEU5QlFVOHNZMEZEY2tOQkxFVkJRVWtzVlVGQlUwVXNSMEZCVlN4SFFVRkhMRXRCUVVzc1RVRkJUVVlzUlVGQlNTeFBRVUZQTEVOQlFVTXNZMEZEYWtSQkxFVkJRVWtzWlVGQlkwVXNSMEZCVlN4SFFVRkhMRXRCUVVzc1RVRkJUVVlzUlVGQlNTeFpRVUZaTEVOQlFVTXNVMEZGTTBSRkxFVkJRVThzVTBGQlV5eEpRVUZKTEVsQlFVZEJMRVZCUVZOQkxFVkJRVThzVlVGQlZTeEZRVUZIUVN4RlFVRlBMRTlCUVZNc1EwRkJReXhIUVVOc1JVRXNRMEZEV0N4RFFXVlBMRk5CUVZORExFZEJRV0ZETEVWQlFYTkNMRU5CUXk5RExFOUJRVWxCTEVWQlFVc3NVMEZCVXl4SFFVRkhMRWxCUVVkQkxFVkJRVTlCTEVWQlFVc3NWVUZCVlVFc1JVRkJTeXhaUVVGWkxFZEJRVWNzUlVGQlNTeERRVUZETEVkQlEyNUZRU3hGUVVGTExGTkJRVk1zUzBGQlN5eEpRVUZIUVN4RlFVRlBRU3hGUVVGTExGVkJRVlVzUlVGQlIwRXNSVUZCU3l4UFFVRlRMRU5CUVVNc1IwRkRNMFJCTEVOQlExZ3NRMEZIVHl4VFFVRlRReXhIUVVGaFJDeEZRVUZ6UWl4RFFVTXZReXhQUVVGTFFTeEZRVUZMTEZOQlFWTXNSMEZCUnl4RlFVTm1RU3hGUVVGTExGVkJRVlZCTEVWQlFVc3NXVUZCV1N4SFFVRkhMRVZCUVVrc1EwRkJReXhGUVVSbUxFVkJSWEJETEVOQk1rTkJMRWxCUVUxRkxFZEJRVEpETEU5QlF6TkRMRk5CUVUwc1NVRkJTU3hQUVVGUFF5eEhRVUZYTEVWQlFVY3NSVUZCUlN4RFFVRkRMRVZCUTJ4RExGTkJRVTBzY1VKQlFYRkNMRVZCUXpOQ0xHTkJRVmNzU1VGQlMwTXNSMEZCVFN4SFFVRkhMRVZCUTNwQ0xFOUJRVWtzU1VGQlMwRXNSMEZCVFN4SFFVRkhMRU5CUTNoQ0xFVkJRMHNzUzBGQlN5eEZRVU5NTEVsQlFVdERMRWRCUTB0QkxFVkJRVThzUzBGQlN5eEZRVUZGTEVWQlFVVXNUVUZCVFN4TFFVRkxMRVZCUVVVc1MwRkJTeXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVU4wUkN4RlFVMUZMRk5CUVZORExFZEJRWFZDUXl4RlFVRjNRaXhEUVVNelJDeFBRVUZQVEN4SFFVRnhRaXhUUVVGVFN5eERRVUZOTEVOQlF5OURMRU5GZUVwUExFbEJRVTFETEVkQlFVNHNUVUZCVFVNc1EwRkJTeXhEUVdGa0xFOUJRV01zUzBGQlMwTXNSVUZCWTBNc1JVRkJhVUlzUjBGQlQwTXNSVUZCZDBJc1EwRkROMFVzVDBGQlR5eEpRVUZKU0N4RlFVRkxMRU5CUTFvc1MwRkJRVU1zUlVGRFFTeE5RVUZCUXl4RlFVTkJMRkZCUVVGRExFVkJRMEVzVVVGQlV5eFBRVU5VTEV0QlFVMHNUVUZEVml4RFFVRkRMRU5CUTB3c1EwRkhRU3hQUVVGakxFMUJRVTFETEVWQlFXdENSaXhGUVVGcFFpeEhRVUZQUXl4RlFVRjNRaXhEUVVOc1JpeEhRVUZKUXl4RlFVRlRMRk5CUVZNc1NVRkJTU3hGUVVGSExFTkJRM3BDTEVsQlFVbERMRVZCUVZGRUxFVkJRVk1zVFVGQlRTeEpRVUZKTEVWQlF5OUNMRTlCUVU5S0xFVkJRVXNzVFVGQlRVc3NSVUZCVFN4RFFVRkRMRVZCUVVkQkxFVkJRVTBzUTBGQlF5eEZRVUZIU0N4RlFVRlBReXhEUVVGUExFTkJRM2hFTEZOQlFWZERMRVZCUVZNc1UwRkJVeXhIUVVGSExFVkJRVWNzUTBGREwwSXNTVUZCU1VNc1JVRkJVVVFzUlVGQlV5eE5RVUZOTEVkQlFVY3NSVUZET1VJc1QwRkJUMG9zUlVGQlN5eFBRVUZQU3l4RlFVRk5MRU5CUVVNc1JVRkJSMEVzUlVGQlRTeERRVUZETEVWQlFVZElMRVZCUVU5RExFTkJRVThzUTBGRGVrUXNTMEZCVHl4UlFVRlBTQ3hGUVVGTExFdEJRVXRKTEVWQlFWVkdMRVZCUVU5RExFTkJRVThzUTBGRGNFUXNRMEZIUVN4UFFVRmpMRTlCUVU5R0xFVkJRV05MTEVWQlFXZENTaXhGUVVGcFFrTXNSVUZCZDBJc1EwRkZlRVlzVDBGQlR5eEpRVUZKU0N4RlFVRkxMRU5CUTFvc1MwRkJRVU1zUlVGRFFTeE5RVUZCUXl4RlFVTkJMRkZCUVVGRExFVkJRMEVzVVVGQlUwa3NSMEZCZFVKRUxFTkJRVTBzUlVGRGRFTXNTMEZCVFN4UlFVTldMRU5CUVVNc1EwRkRUQ3hEUVVkQkxFOUJRV01zVFVGQlRVd3NSVUZCWTA4c1JVRkJhVUpPTEVWQlFXbENReXhGUVVGM1FpeERRVU40Uml4UFFVRlBMRWxCUVVsSUxFVkJRVXNzUTBGRFdpeExRVUZCUXl4RlFVTkJMRTFCUVVGRExFVkJRMEVzVVVGQlFVTXNSVUZEUVN4UlFVRlRTeXhGUVVOVUxFdEJRVTBzVDBGRFZpeERRVUZETEVOQlEwd3NRMEZIUVN4UFFVRmpMRmRCUVZkRExFVkJRWGRDTEVOQlF6ZERMRTlCUVU4c1NVRkJTVlFzUlVGQlMxTXNRMEZCVFN4RFFVTXhRaXhEUVVkQkxFOUJRV01zVjBGQlYwTXNSVUZCZFVJc1EwRkROVU1zUjBGQlNTeERRVUZEUXl4RlFVRk5VaXhEUVVGUExFVkJRVWxUTEVkQlFYRkNSaXhEUVVGUExFVkJRMnhFTEU5QlFVOVdMRVZCUVVzc1RVRkJUVmNzUlVGQlRTeEhRVUZQVWl4RFFVRlBMRU5CUXpGRExFTkJSVkVzV1VGQldWVXNSVUZCZFVJc1EwRkRka01zVDBGQlR5eFBRVUZQTEV0QlFVMUJMRU5CUVUwc1EwRkRPVUlzUTBGSFR5eFRRVUZUV2l4RlFVRnZRaXhEUVVOb1F5eFBRVUZQTEVsQlFVbEVMRVZCUVVzc1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlJ5eExRVUZOTEVOQlFVVXNTMEZCUVVNc1EwRkJTeXhEUVVGRExFTkJRVU1zUTBGRGNrUXNRMEZIVHl4WlFVRlpSU3hGUVVGM1FpeERRVU4yUXl4UFFVRlBMRWxCUVVsSUxFVkJRVXNzVDBGQlR5eFBRVUZQTEVOQlFVTXNSVUZCUnl4TFFVRk5MRU5CUVVVc1VVRkJRVWNzUTBGQlVTeERRVUZETEVOQlFVTXNRMEZEZUVRc1EwRkhUeXhWUVVGVlJDeEZRVUZ6UWl4RFFVTnVReXhQUVVGSkxFdEJRVXNzVDBGQlUwRXNSVUZCWXl4TFFVVjZRaXhKUVVGSlJpeEZRVUZMTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVjc1MwRkJUU3hEUVVGRkxFMUJRVUZGTEVOQlFVMHNRMEZCUXl4RFFVRkRMRU5CUTNSRUxFTkJSMDhzVjBGQlYwa3NSVUZCYzBJc1EwRkRjRU1zVDBGQlQwNHNSVUZCU3l4UFFVRlBMRXRCUVVzc1MwRkJUVTBzUlVGQlVTeExRVUZMTEUxQlFVOHNTMEZCU3l4UFFVRlBMRU5CUTJ4RkxFTkJSMDhzVlVGQlZWRXNSVUZCY1VJc1EwRkRiRU1zVDBGQlQyUXNSVUZCU3l4TlFVRk5MRXRCUVVzc1MwRkJUV01zUlVGQlR5eExRVUZMTEUxQlFVOHNTMEZCU3l4UFFVRlBMRU5CUTJoRkxFTkJSMDhzVDBGQlQwTXNSVUZCYzBJc1EwRkRhRU1zVDBGQlNVRXNSMEZCVXl4TlFVRmhRU3hIUVVGVExFdEJRV0VzUjBGRmVrTXNTMEZCU3l4TlFVRlJRU3hGUVVGTkxFMUJRVkVzUzBGQlN5eE5RVUZSUVN4RlFVRk5MRTFCUVZFc1MwRkJTeXhUUVVGWFFTeEZRVUZOTEU5QlEzWkdMRU5CUjA4c1ZVRkJiVUlzUTBGRGRFSXNUMEZCVHl4TFFVRkxMRk5CUVZNc1EwRkRla0lzUTBGSFR5eFZRVUZ4UWl4RFFVTjRRaXhOUVVGUExFTkJRMGdzUzBGQlRTeExRVUZMTEV0QlExZ3NTMEZCVFN4TFFVRkxMRXRCUTFnc1VVRkJVeXhMUVVGTExGRkJRMlFzVVVGQlV5eExRVUZMTEZGQlEyUXNUVUZCVHl4TFFVRkxMRXRCUTJoQ0xFTkJRMG9zUTBGSFR5eFJRVUZsTEVOQlEyeENMRTlCUVU5bUxFVkJRVXNzUzBGQlN5eExRVUZMTEV0QlFVMHNTMEZCU3l4TlFVRlBMRXRCUVVzc1QwRkJUeXhEUVVONFJDeERRVWRQTEZOQlFXZENMRU5CUTI1Q0xFOUJRVThzUzBGQlN5eFZRVUZWTEVWQlFVa3NRMEZET1VJc1EwRkhUeXhYUVVGclFpeERRVU55UWl4UFFVRlBMRXRCUVVzc1ZVRkJWU3hGUVVGTExFTkJReTlDTEVOQlIwOHNWVUZCYlVJc1EwRkRkRUlzU1VGQlNXZENMRWRCUVZVc1MwRkJTeXhOUVVGUkxFbEJRVTBzU1VGQlRTeExRVUZQTEV0QlFVc3NZVUZCWVN4RlFVTm9SU3hQUVVGQlFTeEhRVUZWTEVsQlExWkJMRWRCUVZVc1MwRkJTeXhwUWtGQmFVSXNSVUZEYUVOQkxFZEJRVlVzUzBGRFNFRXNRMEZEV0N4RFFVZFBMR3RDUVVGdFFpeERRVU4wUWl4SFFVRkpMRXRCUVVzc1VVRkRUQ3hQUVVGUExFdEJRVXNzVVVGRFZDeERRVU5JTEVsQlFVbEJMRVZCUVZORExFZEJRV0VzUzBGQlN5eEpRVUZKTEVWQlEyNURMRTlCUVVrc1MwRkJTeXhOUVVGUkxGVkJRVmtzUzBGQlN5eE5RVUZSTEZkQlFWTkVMRWRCUVZVc1RVRkJVU3hMUVVGTExGTkJSVzVGUVN4RFFVTllMRU5CUTBvc1EwRkhUeXhqUVVGMVFpeERRWEJMYkVNc1NVRkJRVVVzUlVGQlFVTXNSVUZ4UzFFc1NVRkJUVU1zUlVGQlZTeExRVUZMTEV0QlFVc3NVVUZCVVN4SlFVRkxMRXRCUVVzc1JVRkROVU1zVDBGQlNTeExRVUZMTEUxQlFWRXNVMEZCYVVKQkxFVkJRVlVzVFVGQlRVWXNSVUZCUVN4TFFVRkxMRlZCUVV3c1dVRkJRVUVzUlVGQll5eFJRVUZSTEVsQlFVc3NVVUZEZWtVc1MwRkJTeXhOUVVGUkxGRkJRV2RDUlN4RlFVRlZMRTlCUVU5RUxFVkJRVUVzUzBGQlN5eFZRVUZNTEZsQlFVRkJMRVZCUVdNc1VVRkJVU3hKUVVGTExGRkJRMnBGUXl4RFFVTm9RaXhEUVVkUExGVkJRVzFDTEVOQlEzUkNMRTlCUVU5SUxFZEJRV0VzUzBGQlN5eEpRVUZKTEVOQlEycERMRU5CUTBvc1JVRnhRazhzVTBGQlUwd3NSMEZCY1VKRUxFVkJRVFJETEVOQlF6ZEZMRWxCUVVsVkxFVkJRVThzUjBGRFdDeE5RVUZSUVN4RlFVRlBWaXhGUVVGTExGRkJRVkVzU1VGQlMxVXNSVUZCVHl4RFFVRkRMRWxCUVUwc1IwRkRNME1zUjBGQlNTeEZRVUZCUVN4RlFVRlBMRWRCUVV0V0xFVkJRVXRWTEVWQlFVOHNRMEZCUXl4SFFVRkxMRTFCUTJ4RExFMUJRVThzUTBGQlExWXNSVUZCU3l4VlFVRlZMRVZCUVVkVkxFTkJRVWtzUlVGQlJTeFJRVUZSTEZGQlFWTXNSMEZCUnl4RlFVRkhWaXhGUVVGTExGVkJRVlZWTEVWQlFVOHNRMEZCUXl4RFFVRkRMRVZCUjI1R0xFMUJRVThzUTBGQlExWXNSVUZCU3l4UlFVRlJMRkZCUVZNc1IwRkJSeXhGUVVGSExFMUJRVk1zUTBGRGFrUXNRME0xVFVFc1NVRkJUVmNzUjBGQlVTeFBRVUZQTEVsQlFVa3NXVUZCV1N4RlFVTXZRa01zUjBGQlRTeFBRVUZQTEVsQlFVa3NaVUZCWlN4RlFVTm9RME1zUjBGQlRTeFBRVUZQTEVsQlFVa3NWVUZCVlN4RlFVTXpRa01zUjBGQlR5eFBRVUZQTEVsQlFVa3NWMEZCVnl4RlFVTTNRa01zUjBGQlV5eFBRVUZQTEVsQlFVa3NZVUZCWVN4RlFVTnFRME1zUjBGQlRTeFBRVUZQTEVsQlFVa3NWVUZCVlN4RlFVTXpRa01zUjBGQldTeFBRVUZQTEVsQlFVa3NaMEpCUVdkQ0xFVkJRM1pEUXl4SFFVRlhReXhIUVVGVExFTkJRVU1zUTBGQlEwRXNSMEZCVVN4UFFVRlBRU3hIUVVGVExGVkJRVmxCTEVWQlFVdEdMRVZCUVZNc1NVRkJUVTRzUjBGRE9VVlRMRWRCUVdORUxFZEJRVk1zUTBGQlF5eERRVUZEUVN4SFFVRlJMRTlCUVU5QkxFZEJRVk1zVlVGQldVRXNSVUZCUzBZc1JVRkJVeXhKUVVGTlRDeEhRVU5xUmxNc1IwRkJVMFlzUjBGQlV5eERRVUZETEVOQlFVTkJMRWRCUVZFc1QwRkJUMEVzUjBGQlV5eFZRVUZaUVN4RlFVRkxSaXhGUVVGVExFbEJRVTFLTEVkQlF6VkZVeXhGUVVGVlNDeEhRVUZUTEVOQlFVTXNRMEZCUTBFc1IwRkJVU3hQUVVGUFFTeEhRVUZUTEZWQlFWbEJMRVZCUVV0R0xFVkJRVk1zU1VGQlRVZ3NSMEZETjBWVExFVkJRVmxLTEVkQlFWTXNRMEZCUXl4RFFVRkRRU3hIUVVGUkxFOUJRVTlCTEVkQlFWTXNWVUZCV1VFc1JVRkJTMFlzUlVGQlV5eEpRVUZOUml4SFFVTXZSVk1zUjBGQlUwd3NSMEZCVXl4RFFVRkRMRU5CUVVOQkxFZEJRVkVzVDBGQlQwRXNSMEZCVXl4VlFVRlpRU3hGUVVGTFJpeEZRVUZUTEVsQlFVMUVMRWRCUTJ4R0xGTkJRVk5UTEVWQlFXRk9MRVZCUVUwc1EwRkRlRUlzUjBGQlNVRXNSMEZCVVN4UFFVRlBRU3hIUVVGVExGTkJRM2hDTEU5QlFWRkJMRVZCUVV0R0xFVkJRVk1zUlVGQlJ5eERRVU55UWl4TFFVRkxTaXhIUVVOTUxFdEJRVXRITEVkQlEwUXNUVUZCVHl4RlFVTm1MRU5CUTBvc1RVRkJUeXhGUVVOWUxFTkJRMEVzVTBGQlUxVXNSVUZCVDFBc1JVRkJUU3hEUVVOc1FpeEhRVUZKUVN4SFFVRlJMRTlCUVU5QkxFZEJRVk1zVTBGRGVFSXNUMEZCVVVFc1JVRkJTMFlzUlVGQlV5eEZRVUZITEVOQlEzSkNMRXRCUVV0T0xFZEJRMHdzUzBGQlMwVXNSMEZEVEN4TFFVRkxSU3hIUVVOTUxFdEJRVXRETEVkQlEwUXNUVUZCVHl4RlFVTm1MRU5CUTBvc1RVRkJUeXhGUVVOWUxFTkJRMEVzU1VGQlRWY3NSMEZCWVZJc1NVRkJWVWtzUlVGQlUwb3NRMEZCU1N4SFFVRkxUU3hGUVVGaFRpeERRVUZKTEVsQlFVMHNRMEZCUXl4RFFVRkRRU3hGUVVGTExFOURMMEkzUlN4SlFVRk5VeXhIUVVGUkxFOUJRVThzWVVGQllTeEZRVU0xUWtNc1IwRkJUeXhQUVVGUExHVkJRV1VzUlVGRE4wSkRMRWRCUVZNc1QwRkJUeXhoUVVGaExFVkJLMEp1UXl4VFFVRlRReXhIUVVGTlF5eEZRVUZOUXl4RlFVRlRMRU5CUXpGQ0xFbEJRVTFETEVWQlFWZERMRWRCUVZsR0xFTkJRVThzUlVGRGFFTkhMRWRCUVZkS0xFTkJRVWtzUlVGRFNrc3NSMEZCVHl4TFFVRk5UQ3hGUVVGTExGTkJRVlZGTEVWQlFWVXNUMEZCVHl4UFFVRlBMRU5CUVVOR0xFTkJRVWtzUTBGQlF5eERRVUZETEVsQlF6TkVSaXhMUVVOUVJTeEZRVUZMTEZOQlFWY3NUVUZIY0VKTExFZEJRVThzUzBGQlRVd3NSVUZCVFVVc1JVRkJWU3hQUVVGUExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEZEVRc1EwRkxRVWdzUjBGQlRTeE5RVUZSU0N4SFFVVmtSeXhIUVVGTkxFdEJRVTlHTEVkQlJXSkZMRWRCUVUwc1QwRkJVMFFzUjBGRFppeFRRVUZUVHl4SFFVRlBReXhGUVVGTFRpeEZRVUZOUXl4RlFVRlRUU3hGUVVGTkxFTkJRM1JETEVsQlFVMURMRVZCUVU5RExFZEJRVmxJTEVWQlFVdE9MRVZCUVUxRExFVkJRVk5OTEVOQlFVa3NSVUZEYWtRc1IwRkJTVWNzUlVGQlQwWXNRMEZCU1N4SFFVRkxSeXhGUVVGUFNDeERRVUZKTEVWQlF6TkNMRTlCUVVGSkxFZEJRVmxPTEVWQlFVdERMRVZCUVUxRExFTkJRVWtzUlVGRGNFSklMRWRCUVU5RExFVkJRVXRGTEVWQlFVMVFMRVZCUVZOTkxFTkJRVWtzUlVGRk1VTXNSMEZCU1N4UFFVRlBReXhIUVVGVExGVkJRMmhDTEVkQlFVbExMRVZCUVdGaUxFTkJRVWtzUlVGQlJ5eERRVU53UWs4c1JVRkJUeXhQUVVGUExFOUJRVTlCTEVWQlFVc3NUMEZCVDFBc1EwRkJTU3hEUVVGRExFVkJRM1JETEZGQlFWTXNSVUZCU1N4RlFVRkhMRVZCUVVsQkxFVkJRVXNzVFVGQlRTeFBRVUZSTEVWQlFVVXNSVUZCUnl4RFFVTjRReXhKUVVGTll5eEZRVUZMVkN4SFFVRlBMRVZCUVVkTUxFVkJRVXNzVFVGQlRTeERRVUZETEVWQlFVZERMRVZCUVZOTkxFTkJRVWtzUlVGRGFrUXNSMEZCU1N4UFFVRlBUeXhIUVVGUExGTkJRMlFzUlVGQlNVRXNSVUZCU3l4TlFVTlNMRWxCUVVsQkxFbEJRVTlzUWl4SFFVTmFMRTlCUVU5QkxFZEJRMFpyUWl4SlFVRlBhRUlzUzBGRFdrVXNSVUZCU3l4TlFVRk5MRTlCUVU4c1JVRkJSeXhEUVVGRExFVkJRM1JDTEVkQlFVc3NSMEZGWWl4RFFVTktMRk5CUTFOWExFVkJRVTlZTEVOQlFVa3NSVUZCUnl4RFFVTnVRazhzUlVGQlR5eFBRVUZQTEU5QlFVOUJMRVZCUVVzc1QwRkJUMUFzUTBGQlNTeERRVUZETEVWQlEzUkRMRWxCUVUxbExFVkJRVXRXTEVkQlFVOHNUVUZCVDB3c1JVRkJTeXhKUVVGTFF5eEZRVUZUVFN4RFFVRkpMRVZCUTJoRUxFZEJRVWxSTEVsQlFVOXVRaXhIUVVOUUxFOUJRVTlCTEVkQlEwWnRRaXhKUVVGUGFrSXNTMEZEV2tVc1JVRkJTeXhKUVVGTkxFMUJRMllzU1VGQlRXZENMRVZCUVV0WUxFZEJRVThzVVVGQlUwd3NSVUZCU3l4TlFVRlBReXhGUVVGVFRTeERRVUZKTEVWQlEzQkVMRWRCUVVsVExFbEJRVTl3UWl4SFFVTlFMRTlCUVU5QkxFZEJRMFp2UWl4SlFVRlBiRUlzUzBGRFdrVXNSVUZCU3l4TlFVRlJMRXRCUTNKQ0xFVkJSVW9zVDBGQlQxRXNRMEZEV0N4RFFXZERRU3hsUVVGbFV5eEhRVUZYYWtJc1JVRkJUVU1zUlVGQlV5eERRVU55UXl4SlFVRk5ReXhGUVVGWFF5eEhRVUZaUml4RFFVRlBMRVZCUTJoRFJ5eEhRVUZYU2l4RFFVRkpMRVZCUTBvc1RVRkJUV3RDTEVkQlFWa3NTMEZCVFd4Q0xFVkJRVXNzVTBGQlZVVXNSVUZCVlN4UFFVRlBMRTlCUVU4c1EwRkJRMFlzUTBGQlNTeERRVUZETEVOQlFVTXNTVUZEZEVWR0xFdEJRMUJGTEVWQlFVc3NVMEZCVnl4TlFVZHdRaXhOUVVGTmEwSXNSMEZCV1N4TFFVRk5iRUlzUlVGQlRVVXNSVUZCVlN4UFFVRlBMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRGFrVXNRMEZMUVdVc1IwRkJWeXhOUVVGUmNrSXNSMEZGYmtKeFFpeEhRVUZYTEV0QlFVOXdRaXhIUVVWc1FtOUNMRWRCUVZjc1QwRkJVMjVDTEVkQlEzQkNMR1ZCUVdWdlFpeEhRVUZaV2l4RlFVRkxUaXhGUVVGTlF5eEZRVUZUVFN4RlFVRk5MRU5CUTJwRUxFbEJRVTFETEVWQlFVOHNUVUZCVFVNc1IwRkJXVWdzUlVGQlMwNHNSVUZCVFVNc1JVRkJVMDBzUTBGQlNTeEZRVU4yUkN4SFFVRkpSeXhGUVVGUFJpeERRVUZKTEVkQlFVdEhMRVZCUVU5SUxFTkJRVWtzUlVGRE0wSXNUMEZCUVVrc1IwRkJXVTRzUlVGQlMwTXNSVUZCVFVNc1EwRkJTU3hGUVVOd1FsVXNSMEZCV1Zvc1JVRkJTMFVzUlVGQlRWQXNSVUZCVTAwc1EwRkJTU3hGUVVVdlF5eEhRVUZKTEU5QlFVOURMRWRCUVZNc1ZVRkRhRUlzUjBGQlNVc3NSVUZCWVdJc1EwRkJTU3hGUVVGSExFTkJRM0JDVHl4RlFVRlBMRTlCUVU4c1QwRkJUMEVzUlVGQlN5eFBRVUZQVUN4RFFVRkpMRU5CUVVNc1JVRkRkRU1zVVVGQlV5eEZRVUZKTEVWQlFVY3NSVUZCU1VFc1JVRkJTeXhOUVVGTkxFOUJRVkVzUlVGQlJTeEZRVUZITEVOQlEzaERMRWxCUVUxakxFVkJRVXNzVFVGQlRVa3NSMEZCV1N4RlFVRkhiRUlzUlVGQlN5eE5RVUZOTEVOQlFVTXNSVUZCUjBNc1JVRkJVMDBzUTBGQlNTeEZRVU0xUkN4SFFVRkpMRTlCUVU5UExFZEJRVThzVTBGRFpDeEZRVUZKUVN4RlFVRkxMRTFCUTFJc1NVRkJTVUVzU1VGQlQyeENMRWRCUTFvc1QwRkJUMEVzUjBGRFJtdENMRWxCUVU5b1FpeExRVU5hUlN4RlFVRkxMRTFCUVUwc1QwRkJUeXhGUVVGSExFTkJRVU1zUlVGRGRFSXNSMEZCU3l4SFFVVmlMRU5CUTBvc1UwRkRVMWNzUlVGQlQxZ3NRMEZCU1N4RlFVRkhMRU5CUTI1Q1R5eEZRVUZQTEU5QlFVOHNUMEZCVDBFc1JVRkJTeXhQUVVGUFVDeERRVUZKTEVOQlFVTXNSVUZEZEVNc1NVRkJUV1VzUlVGQlN5eE5RVUZOUnl4SFFVRlpMRTFCUVU5c1FpeEZRVUZMTEVsQlFVdERMRVZCUVZOTkxFTkJRVWtzUlVGRE0wUXNSMEZCU1ZFc1NVRkJUMjVDTEVkQlExQXNUMEZCVDBFc1IwRkRSbTFDTEVsQlFVOXFRaXhMUVVOYVJTeEZRVUZMTEVsQlFVMHNUVUZEWml4SlFVRk5aMElzUlVGQlN5eE5RVUZOUlN4SFFVRlpMRkZCUVZOc1FpeEZRVUZMTEUxQlFVOURMRVZCUVZOTkxFTkJRVWtzUlVGREwwUXNSMEZCU1ZNc1NVRkJUM0JDTEVkQlExQXNUMEZCVDBFc1IwRkRSbTlDTEVsQlFVOXNRaXhMUVVOYVJTeEZRVUZMTEUxQlFWRXNTMEZEY2tJc1JVRkZTaXhQUVVGUFVTeERRVU5ZTEVOQlEwRXNVMEZCVTB3c1IwRkJXVVlzUlVGQlV5eERRVU14UWl4UFFVRkpMRTlCUVU5QkxFZEJRVmtzVjBGRGJFSkJMRVZCUVZFc1dVRkJZMEVzUlVGQlVTeE5RVUZSUVN4RlFVRlJMRTlCUTNoRExFOUJRVThzVDBGQlR5eERRVU5xUWl4TlFVRlBRU3hGUVVGUkxFdEJRMllzU1VGQlMwRXNSVUZCVVN4TFFVTmlMRTlCUVZGQkxFVkJRVkVzUzBGRGFFSXNTVUZCUzBFc1JVRkJVU3hKUVVOcVFpeEZRVUZIUVN4RlFVRlJMRTlCUVZNc1EwRkRhRUlzU1VGQlMwRXNSVUZCVVN4TlFVTmlMRTlCUVZGQkxFVkJRVkVzVFVGRGFFSXNTVUZCUzBFc1JVRkJVU3hMUVVOcVFpeEZRVUZIUVN4RlFVRlJMRmxCUVdNc1EwRkRja0lzU1VGQlMwRXNSVUZCVVN4WFFVTmlMRWxCUVV0QkxFVkJRVkVzVlVGRGFrSXNSVUZCUjBFc1EwRkJUeXhGUVVWUVFTeERRVU5ZTEVOQlEwRXNVMEZCVTFFc1IwRkJXVWdzUlVGQlMwNHNSVUZCVFVNc1JVRkJVMDBzUlVGQlRTeERRWEpOTDBNc1NVRkJRVmtzUlVGQlFVTXNSVUZCUVVNc1JVRkJRVU1zUlVGQlFVTXNSVUZ6VFVrc1IwRkJTU3hQUVVGUGRFSXNSMEZCV1N4WFFVTnVRaXhQUVVGUFFTeEZRVUZSU3l4RlFVRkxUaXhGUVVGTlR5eERRVUZKTEVWQlEyeERMRWRCUVVscFFpeEhRVUZOZUVJc1EwRkJTU3hGUVVOV0xFOUJRVTl0UWl4RlFVRkJiRUlzUlVGQlVTeE5RVUZTTEZsQlFVRnJRaXhGUVVGQkxFdEJRVUZzUWl4RlFVRmpTeXhGUVVGTFRpeEZRVUZOVHl4SFFVTndReXhIUVVGSmEwSXNSMEZCVFhwQ0xFTkJRVWtzUlVGRFZpeFBRVUZQYjBJc1JVRkJRVzVDTEVWQlFWRXNUVUZCVWl4WlFVRkJiVUlzUlVGQlFTeExRVUZCYmtJc1JVRkJZMHNzUlVGQlMwNHNSVUZCVFU4c1IwRkRjRU1zUjBGQlNVa3NSVUZCVDFnc1EwRkJTU3hGUVVOWUxFOUJRVTl4UWl4RlFVRkJjRUlzUlVGQlVTeFBRVUZTTEZsQlFVRnZRaXhGUVVGQkxFdEJRVUZ3UWl4RlFVRmxTeXhGUVVGTFRpeEZRVUZOVHl4SFFVTnlReXhIUVVGSmJVSXNSVUZCVXpGQ0xFTkJRVWtzUlVGRFlpeFBRVUZQYzBJc1JVRkJRWEpDTEVWQlFWRXNVMEZCVWl4WlFVRkJjVUlzUlVGQlFTeExRVUZCY2tJc1JVRkJhVUpMTEVWQlFVdE9MRVZCUVUxUExFZEJRM1pETEVkQlFVbHZRaXhIUVVGUk0wSXNRMEZCU1N4RlFVTmFMRTlCUVU5MVFpeEZRVUZCZEVJc1JVRkJVU3hSUVVGU0xGbEJRVUZ6UWl4RlFVRkJMRXRCUVVGMFFpeEZRVUZuUWtzc1JVRkJTMDRzUlVGQlRVOHNSVUZGTVVNc1EwRkRRU3hUUVVGVFN5eEhRVUZaVGl4RlFVRkxReXhGUVVGTlVDeEZRVUZOTEVOQlEyeERMRWxCUVUwMFFpeEZRVUZUY2tJc1JVRkJTMEVzUlVGQlN5eFBRVUZUTEVOQlFVTXNSVUZEYmtNc1IwRkJTVTBzUlVGQllXVXNRMEZCVFN4RlFVTnVRa0VzUlVGQlR5eE5RVUZOZEVJc1EwRkJSeXhGUVVGSlRpeFZRVVZtVnl4RlFVRlBhVUlzUTBGQlRTeEZRVU5rZEVJc1NVRkJVU3hOUVVOU2MwSXNSVUZCVHl4SlFVRk5OVUlzUlVGRllqUkNMRVZCUVU4c1RVRkJVVFZDTEZWQlJXUkpMRWRCUVZkM1FpeERRVUZOTEVWQlEzUkNRU3hGUVVGUExGTkJRVmMxUWl4TlFVVnFRaXhEUVVORUxFbEJRVTAyUWl4RlFVRkxSaXhIUVVGUlF5eERRVUZOTEVWQlFVa3NVVUZCVlN4VFFVTjJReXhOUVVGTkxFbEJRVWtzVFVGQlRTdzBRa0ZCTkVKRExFTkJRVVVzVTBGQlV5eERRVU16UkN4RFFVTktMRU5EYms5QkxFbEJRVTFETEVkQlFXTXNRMEZEYUVJc1NVRkJTeXhOUVVOTUxFbEJRVXNzVFVGRFRDeEpRVUZMTEUxQlEwd3NTVUZCU3l4TlFVTk1MRWxCUVVzc1RVRkRUQ3hKUVVGTExFdEJRMVFzUlVGRFRVTXNSMEZCYVVKRExFZEJRVTlCTEVWQlFVY3NVVUZCVVN4aFFVRmpReXhIUVVGTlNDeEhRVUZaUnl4RFFVRkZMRU5CUVVNc1JVRkRkRVZETEVkQlFVNHNUVUZCVFVNc1EwRkJWeXhEUVVOaUxGbEJRVmxETEVWQlFVMURMRVZCUVUwc1EwRkxjRUlzUzBGQlN5eFRRVUZYTEV0QlJXaENMRXRCUVVzc1QwRkJVeXhIUVVOa0xFdEJRVXNzUzBGQlR5eFBRVUZQTEU5QlFVOHNRMEZCUXl4RlFVRkhSaXhGUVVGWExGbEJRV0ZETEVOQlFVa3NSVUZETVVRc1MwRkJTeXhMUVVGUExFOUJRVThzVDBGQlR5eERRVUZETEVWQlFVZEVMRVZCUVZjc1dVRkJZVVVzUTBGQlNTeERRVU01UkN4RFFVTkJMRTlCUVZFc1EwRkRTaXhKUVVGTlF5eEZRVUZQTEVsQlFVbElMRVZCUVZjc1MwRkJTeXhMUVVGTkxFdEJRVXNzU1VGQlNTeEZRVU5vUkN4UFFVRkJSeXhGUVVGTExGTkJRVmNzUzBGQlN5eFRRVU5rUVN4RFFVTllMRU5CUzBFc1dVRkJZU3hEUVVOVUxFbEJRVTFETEVWQlFVMHNTVUZCU1Vvc1JVRkJWeXhMUVVGTExFdEJRVTBzUzBGQlN5eEpRVUZKTEVWQlF5OURMRTlCUVZFc1MwRkJTeXhMUVVGTExGRkJRVk1zUTBGRGRrSXNTVUZCU3l4TlFVTkVMRXRCUVVzc1pVRkJhVUlzUjBGRGRFSXNUVUZEU2l4SlFVRkxMRTFCUTBRc1MwRkJTeXhsUVVGcFFpeEhRVU4wUWl4TFFVRkxMRXRCUVU4c1EwRkRVaXhUUVVGVlFTeEZRVUZYTEZsQlFWa3NVMEZEYWtNc1VVRkJVeXhMUVVOaUxFVkJRMEVzUzBGQlN5eExRVUZQTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVkQkxFVkJRVmNzVjBGQlZ5eEZRVU53UkN4TFFVTlNMRU5CUTBFc1QwRkJUMGtzUTBGRFdDeERRVXRCTEVsQlFVbERMRVZCUVUxRExFVkJRVk1zUTBGRFdDeExRVUZMTEdsQ1FVTk1MRXRCUVVzc1MwRkJUeXhEUVVGRkxGTkJRVlZPTEVWQlFWY3NXVUZCV1N4VFFVRlZMRkZCUVZNc1MwRkJUU3hGUVVONFJTeExRVUZMTEV0QlFVOHNUMEZCVHl4UFFVRlBMRU5CUVVNc1JVRkJSMEVzUlVGQlZ5eFhRVUZYTEVWQlEzQkVMRXRCUVVzc1pVRkJhVUlzU1VGRk1VSXNTVUZCVFU4c1JVRkJVVVlzUlVGQlN5eExRVUZMTEVWQlFVVXNUVUZCVFN4UlFVRlJMRVZCUTJ4RFJ5eEZRVUZQUkN4RlFVRk5MRTFCUVUwc1JVRkRla0lzVDBGQlVVTXNSVUZCVFN4RFFVTldMRWxCUVVzc1QwRkJVU3hEUVVOVUxFZEJRVWxFTEVWQlFVMHNVMEZCVnl4SlFVTnFRa1FzUlVGQlVTeEZRVUZITEdsRVFVRnBSQ3hGUVVONFJFTXNSVUZCVFN4UFFVRlRMRWRCUTJZc1RVRkJUeXhIUVVWbUxFZEJRVTBzUTBGQlEwVXNSVUZCVVVNc1EwRkJUU3hGUVVGSlNDeEZRVU42UWl4WlFVRkxMRXRCUVV0RkxFTkJRVTBzUlVGQlNVTXNSVUZEWWl4RlFVTllMRU5CUTBFc1NVRkJTeXhSUVVGVExFTkJSVllzUjBGRVFTeExRVUZMTEV0QlFVc3NVMEZCVnl4SFFVTnFRa2dzUlVGQlRTeFRRVUZYTEVWQlEycENMRTlCUVVGRUxFVkJRVkVzUlVGQlJ5eHBSRUZCYVVRc1JVRkRja1FzUjBGRldDeEhRVUZOTEVOQlFVTkxMRU5CUVU4c1JVRkJTVW9zUlVGRGJFSXNSMEZCU1Vrc1NVRkJXU3hQUVVGVFFTeEpRVUZaTEUxQlEycERMRmxCUVVzc1MwRkJTeXhSUVVGVlFTeEZRVU5pTEVkQlJVNHNRMEZEUkN4SlFVRk5ReXhGUVVGVkxHRkJRV0VzUzBGQlMwUXNRMEZCVHl4RlFVTjZReXhQUVVGQlRDeEZRVUZSTEVWQlFVY3NORUpCUVRSQ1N5eERRVUZQTEVkQlFVbERMRU5CUVU4c1JVRkRiRVFzUlVGRFdDeERRVU5LTEVOQlEwRXNVVUZEU1N4UFFVRkJUaXhGUVVGUkxFVkJRVWNzY1VKQlFYRkNSU3hEUVVGSkxFZEJRVWtzUlVGQlNTeEZRVU55UXl4RlFVTm1MRU5CUTBvc1EwRlBRU3hSUVVGUlN5eEZRVUZSVUN4RlFVRlRMRU5CUTNKQ0xFZEJRVWxQTEVsQlFWY3NTVUZEV0N4TlFVRlBMRWxCUTFnc1IwRkJTVUVzUlVGQlR5eERRVUZETEVsQlFVMHNTVUZEWkN4UFFVRkJVQ3hGUVVGUkxHOUNRVUZ2UWs4c1EwRkJUU3hGUVVGRkxFVkJRemRDTEV0QlJWZ3NSMEZCU1VFc1JVRkJUeXhEUVVGRExFbEJRVTBzU1VGQlN5eERRVU51UWl4SlFVRk5ReXhGUVVGWFJDeEZRVUZQTEUxQlFVMHNSVUZCUnl4RlFVRkZMRVZCUTI1RExFOUJRVWxETEVsQlFXRXNTMEZCVDBFc1NVRkJZU3hOUVVOcVExSXNSVUZCVVN4eFEwRkJjVU5QTEVOQlFVMHNZMEZCWXl4RlFVTXhSQ3hQUVVWUVFTeEZRVUZQUVN4RlFVRlBMRTlCUVZNc1EwRkJReXhKUVVGTkxFdEJRemxDVUN4RlFVRlJMR2xEUVVGcFF5eEZRVU4wUTFFc1JVRkRXQ3hEUVVOQkxFZEJRVTBzUTBGQlF5eERRVUZGVEN4RlFVRlJUU3hEUVVGTkxFVkJRVWxHTEVWQlFVOHNUVUZCVFN4WFFVRkRMR2xDUVVGbExFZEJRVU1zUjBGRGNFUkZMRWRCUTBSVUxFVkJRVkVzVDBGQlQwOHNRMEZCVFN4dlFrRkJiMElzUlVGRE4wTXNTVUZCVFVnc1JVRkJVeXhMUVVGTExFdEJRVXRFTEVOQlFVMHNSVUZETDBJc1IwRkJTVU1zUlVGRFFTeEhRVUZKTEVOQlEwRXNUMEZCVDBFc1JVRkJVeXh0UWtGQmJVSkxMRU5CUVUwc1EwRkROME1zVDBGRFQwTXNSVUZCVHl4RFFVTldMRTlCUVVGV0xFVkJRVkVzVDBGQlQxVXNRMEZCU3l4RFFVRkRMRVZCUTJRc1NVRkRXQ3hEUVVWS0xFOUJRVWxRTEVsQlFWY3NTVUZEU2trc1IwRkRXRkFzUlVGQlVTd3dRa0ZCTUVKUExFTkJRVTBzUlVGQlJTeEZRVU51UXl4TFFVTllMRU5CUzBFc1ZVRkJWVWtzUlVGQlN5eERRVU5ZTEU5QlFWY3NRMEZCUTFJc1JVRkJVVU1zUTBGQlRTeEpRVUZMTEU5QlFVOHNVVUZCVVN4TFFVRkxMRWxCUVVrc1JVRkRia1FzUjBGQlNVOHNSVUZCU1N4WFFVRlhVQ3hEUVVGTkxFVkJRM0pDTEU5QlFVOUVMRVZCUVZOaUxFZEJRV054UWl4RlFVRkpMRlZCUVZWUUxFVkJRVThzVFVGQlRTeERRVUZETEVWQlJXeEZMRTlCUVU5UExFVkJRVWtzUTBGQlF5eEpRVUZOTEVsQlFVMUJMRVZCUVUwc1MwRkJTMEVzUTBGQlJ5eEhRVU14UXl4RFFVTkJMRk5CUVZORExFVkJRVXNzUTBGRFZpeEpRVUZOUXl4RlFVRlJMRXRCUVVzc1MwRkJTeXhUUVVOc1FpeERRVUZETEZOQlFWTXNTMEZCU3l4TFFVRkxMRk5CUVZjc1MwRkJTeXhGUVVGRkxFVkJRM1JETEVOQlFVTXNSVUZEUkVNc1JVRkJZU3hQUVVGUExGRkJRVkVzUzBGQlN5eEpRVUZKTEVWQlEzWkRReXhGUVVOS0xFZEJRVWxJTEVkQlFVOUZMRVZCUVZjc1QwRkJVeXhIUVVGTFJTeEZRVUZQU2l4RlFVRkpMRkZCUVZFc1JVRkJSeXhEUVVOMFJDeEpRVUZOYUVJc1JVRkJUeXhEUVVGRExFVkJRMlJ4UWl4SFFVRk5UQ3hGUVVGSkxGTkJRVlVzUTBGQlEwMHNSVUZCVFVNc1NVRkJVeXhEUVVNMVFrZ3NSVUZCVDBjc1EwRkJTU3hIUVVGTFFTeEZRVUZMTEUxQlEzSkNka0lzUlVGQlMzVkNMRVZCUVVzc1IwRkJSeXhGUVVGSkxFZEJRM3BDTEVOQlFVTXNSVUZEUkVvc1JVRkJWeXhQUVVGUExFdEJRVXR1UWl4RFFVRkpMRU5CUXk5Q0xFMUJSVWx0UWl4RlFVRlhMRU5CUVVNc1JVRkRhRUlzVDBGQlZ5eERRVUZEV2l4RlFVRlJReXhEUVVGTkxFbEJRVXRWTEVWQlEzWkNXQ3hKUVVGWExFMUJRVkZETEVsQlFWY3NkVUpCUlRsQ0xFTkJRVU5STEVkQlFVOUhMRVZCUVZNc1MwRkJTM2hDTEVkQlFVMUJMRVZCUVVjc1YwRkJWMkVzUTBGQlRTeERRVUZETEVsQlEycEVVeXhGUVVGTkxFdEJRVXNzVVVGQlVWWXNRMEZCVFN4SlFVRkpReXhEUVVGTkxFVkJRVVVzUlVGRk4wTXNUMEZCVDFNc1JVRkJUU3hMUVVGTE8wRkJRVUVzUTBGQlNTeERRVU14UWl4RFFVTktMRVZCUTBGd1FpeEhRVUZYTEZsQlFXTXNRMEZCUlN4VFFVRlZMRWRCUVU4c1VVRkJVeXhMUVVGTkxFVkJRek5FUVN4SFFVRlhMRmxCUVdNc1EwRkJSU3hMUVVGTkxHOUNRVUZ4UWl4RlEzSkxkRVFzVTBGQlV6SkNMRWRCUVdORExFVkJRVkVzUTBGRE0wSXNSMEZCU1N4elFrRkJjMElzUzBGQlMwRXNRMEZCVFN4RlFVRkhMRU5CUlhCRExFbEJRVTFETEVWQlFVMHNOa1JCUkVRc1MwRkJTeXhWUVVGVlJDeERRVUZOTEVOQlF6SkRMRWRCUXpORkxFMUJRVTBzU1VGQlNTeE5RVUZOUXl4RFFVRkhMRU5CUTNaQ0xFTkJRMEVzVFVGQlR5eEZRVU5ZTEVOQlEwRXNVMEZCVTBNc1IwRkJXVU1zUlVGQlRTeERRVU4yUWl4SlFVRk5ReXhGUVVGVkxFbEJRVWtzU1VGRGNFSXNUMEZCUVVNc1IwRkJUVVlzUlVGQlRTeERRVU5TTEUxQlFVMUhMRVZCUVUxRExFVkJRVTBzUTBGRFZrRXNSVUZCU3l4UlFVTk1TQ3hGUVVGUkxFbEJRVWxITEVWQlFVc3NUVUZCVFN4RFFVTXZRaXhEUVVOS0xFTkJRVU1zUlVGRFRVZ3NRMEZEV0N4RFFVVkJMRk5CUVZOSkxFZEJRV05ETEVWQlFWRkRMRVZCUVZNc1EwRkRjRU1zVVVGQlUwTXNSVUZCU1N4SFFVRlRMRVZCUVVWQkxFVkJRVWNzUTBGRGRrSXNTVUZCVFVNc1JVRkJUeXhIUVVGSFNDeERRVUZOTEVkQlFVZEZMRU5CUVVNc1IwRkRNVUlzUjBGQlNTeERRVUZEUkN4RlFVRlJMRWxCUVVsRkxFTkJRVWtzUlVGRGFrSXNUMEZCVDBFc1EwRkRaaXhEUVVOS0xFTkJRMEVzVTBGQlUwTXNSMEZCYTBKRExFVkJRVXRNTEVWQlFWRXNRMEZEY0VNc1NVRkJUVTBzUlVGQlpTeERRVUZETEVWQlEyaENReXhGUVVGblFpeEpRVUZKTEVsQlEzUkNReXhGUVVGakxFdEJRMnhDTEUxQlFVOHNRMEZEU0N4VFFVRlhReXhIUVVGWExFTkJRMnhDU0N4RlFVRmhMRXRCUVV0SExFTkJRVTBzUlVGRGJrSkVMRWxCUTBSQkxFVkJRV05tTEVkQlFWbFpMRU5CUVVjc1IwRkRha01zU1VGQlRXUXNSVUZCVTFFc1IwRkJZME1zUlVGQlVWRXNRMEZCVnl4RlFVTm9SQ3hQUVVGQlFTeEZRVUZaTEVsQlFVbHFRaXhEUVVGTkxFVkJRMlpCTEVOQlExZ3NSVUZOUVN4WFFVRlpMRWxCUVUwc1EwRkRaQ3hSUVVGWGEwSXNTMEZCVlVnc1JVRkJZeXhEUVVNdlFpeEpRVUZOU1N4RlFVRk5TQ3hGUVVGakxFbEJRVWxGTEVOQlFVMHNSVUZEY0VNc1IwRkJTU3hQUVVGUFF5eEhRVUZSTEZWQlEyWkJMRVZCUVVrc1UwRkRTRU1zUlVGQlUwUXNSVUZCU1N4SlFVRkpMRWRCUVV0RkxFVkJRV0ZHTEVWQlFVa3NTVUZCU1N4SFFVTTFRMEVzUlVGQlNTeExRVUZMTEU5QlFWTkJMRVZCUVVrc1YwRkZja0lzUTBGRFJDeEpRVUZOUnl4RlFVRlJMRWxCUVVrc1RVRkJUU3cwUkVGQk5FUXNSVUZEY0VZc1RVRkJRVUVzUlVGQlRTeFBRVUZUU2l4RlFVTlVTU3hEUVVOV0xFTkJRMG9zUTBGRFNpeEZRVU5CTEdOQlFVRk9MRU5CUTBvc1EwRkRTaXhEUXpsRVFTeFRRVUZUVHl4SFFVRmhReXhGUVVGVFF5eEZRVUZMUXl4RlFVRkxReXhGUVVGTExFTkJRekZETEVkQlFVbEJMRWRCUVU4c1QwRkJUMEVzUjBGQlVTeFRRVU4wUWl4SFFVRkpMRTFCUVUwc1VVRkJVVUVzUTBGQlJ5eEZRVU5xUWl4UlFVRlRReXhGUVVGSkxFVkJRVWRETEVWQlFVMUdMRVZCUVVrc1QwRkJVVU1zUlVGQlNVTXNSVUZCU3l4RlFVRkZSQ3hGUVVGSExFTkJRelZETEVsQlFVMUZMRVZCUVV0SUxFVkJRVWxETEVOQlFVTXNSVUZEVmtjc1JVRkJTMUlzUjBGQllVTXNSVUZCVTBjc1JVRkJTeXhQUVVGUFF5eERRVUZETEVWQlFVZEZMRU5CUVVVc1JVRkZMME5ETEVsQlFVOHNUMEZEVUN4UFFVRlBTaXhGUVVGSlF5eERRVUZETEVWQlExQkhMRWxCUVU5RUxFbEJRMXBJTEVWQlFVbERMRU5CUVVNc1JVRkJTVWNzUlVGRGFrSXNVMEZGUzBvc1lVRkJaU3hKUVVOd1FpeFJRVUZYU3l4TFFVRkxMRTFCUVUwc1MwRkJTMHdzUlVGQlNTeExRVUZMTEVOQlFVTXNSVUZCUnl4RFFVTndReXhKUVVGTlJ5eEZRVUZMU0N4RlFVRkpMRWxCUVVsTExFTkJRVU1zUlVGRFpFUXNSVUZCUzFJc1IwRkJZVU1zUlVGQlUwY3NSVUZCUzBzc1JVRkJSMFlzUTBGQlJTeEZRVU4yUTBNc1NVRkJUeXhQUVVOUVNpeEZRVUZKTEU5QlFVOUxMRU5CUVVNc1JVRkRVRVFzU1VGQlQwUXNSMEZEV2tnc1JVRkJTU3hKUVVGSlN5eEZRVUZIUkN4RFFVRkZMRU5CUTNKQ0xGTkJSVXRLTEdGQlFXVXNTVUZEY0VJc1VVRkJWMGNzUzBGQlRTeE5RVUZOTEV0QlFVdElMRU5CUVVjc1JVRkJSeXhEUVVNNVFpeEpRVUZOU1N4RlFVRkxVaXhIUVVGaFF5eEZRVUZUUnl4RlFVRkxSeXhGUVVGSlFTeERRVUZGTEVWQlEzaERReXhKUVVGUExFOUJRMUJLTEVWQlFVa3NUMEZCVDBjc1EwRkJSU3hGUVVOU1F5eEpRVUZQUkN4SlFVTmFTQ3hGUVVGSkxFOUJRVTlITEVOQlFVVXNSVUZEWWtnc1JVRkJTU3hKUVVGSlNTeERRVUZGTEVWQlJXeENMRXRCUjBFc1VVRkJWeXhEUVVGRFF5eEZRVUZIUml4RFFVRkZMRWxCUVVzc1QwRkJUeXhSUVVGUlNDeERRVUZITEVWQlFVY3NRMEZEZGtNc1NVRkJUVWtzUlVGQlMxSXNSMEZCWVVNc1JVRkJVMGNzUlVGQlMwc3NSVUZCUjBZc1EwRkJSU3hGUVVOMlEwTXNTVUZCVHl4UFFVTlFMRTlCUVU5S0xFVkJRVWxMTEVOQlFVTXNSVUZEVUVRc1NVRkJUMFFzU1VGRFdrZ3NSVUZCU1Vzc1EwRkJReXhGUVVGSlJDeEZRVU5xUWl4RFFVZFNMRTlCUVU5UUxFVkJRVkVzUzBGQlMwTXNSVUZCUzBNc1JVRkJTME1zUTBGQlJ5eERRVU55UXl4RFEzaERRU3hUUVVGVFRTeEhRVUZMUXl4RlFVRlBReXhGUVVGTFF5eEZRVUZMTEVOQlJUTkNMRWRCUVVrc1RVRkJUU3hSUVVGUlJpeERRVUZMTEVWQlEyNUNMRTlCUVU5QkxFVkJRVTBzU1VGQlNTeERRVUZEUnl4RlFVRkhReXhKUVVGTlRDeEhRVUZMU1N4RlFVRkhMRTlCUVU5RExFTkJRVU1zUlVGQlIwWXNRMEZCUnl4RFFVRkRMRVZCUTNSRUxFZEJRVWxHTEVkQlFWTXNUMEZCVDBFc1JVRkJUU3hSUVVGWExGZEJRVmtzUTBGRk4wTXNSMEZCU1N4RFFVRkRSU3hIUVVGUExFTkJRVU5ITEVkQlFWVk1MRU5CUVVzc1JVRkRlRUlzVDBGQlQwRXNSVUZCVFN4UFFVRlBReXhGUVVGTFF5eERRVUZITEVWQlEyaERMRWxCUVUxSkxFVkJRVThzUTBGQlJTeFhRVUZaTEVWQlFVY3NUVUZCVHl4RlFVRkhMRWxCUVVzc1RVRkJWU3hGUVVOMlJFb3NSVUZCU1N4UlFVRlJMRWxCUVVsR0xFVkJRVTlOTEVOQlFVa3NSVUZETTBKS0xFVkJRVWtzVTBGQlYwc3NSMEZCVHl4RFFVTnNRa1FzUlVGQlN5eEpRVUZOUXl4RlFVTllMRTlCUVU5TUxFVkJRVWtzVVVGRFppeEZRVU5CTEVsQlFVMUxMRVZCUVUxUUxFVkJRVTBzVDBGQlQwTXNSVUZCUzBNc1EwRkJSeXhGUVVOcVF5eFBRVUZKUVN4RlFVRkpMRlZCUTBwQkxFVkJRVWtzVTBGQlUwc3NRMEZCUnl4RlFVTmlRU3hEUVVOWUxFTkJRMEVzVDBGQlNTeFBRVUZQVUN4SFFVRlZMRlZCUVZrc1JVRkJRMFVzUjBGQlFTeE5RVUZCUVN4RlFVRkxMRTFCUXpWQ0xFOUJRVTlHTEVOQlFVc3NSVUZEYUVKQkxFTkJRMWdzUTBNNVFrRXNTVUZCVFZFc1IwRkJUaXhMUVVGbExFTkJRMWdzV1VGQldVTXNSVUZCVFN4RFFVTmtMRTlCUVU4c1pVRkJaU3hMUVVGTlF5eEhRVUZYTEVOQlFVVXNUVUZCVDBRc1EwRkJTeXhEUVVGRExFTkJRekZFTEVOQlJVRXNUMEZCVVN4RFFVTktMRWxCUVUxRkxFVkJRVThzVDBGQlR5eFBRVUZQTEU5QlFVOHNaVUZCWlN4SlFVRkpMRVZCUVVjc1QwRkJUeXd3UWtGQk1FSXNTVUZCU1N4RFFVRkRMRVZCUXpsR0xFOUJRVWtzUzBGQlN5eFJRVU5NUVN4RlFVRkxMRTFCUVZFc1MwRkJTeXhOUVVGTkxFMUJRVTBzUjBGRE0wSkJMRU5CUTFnc1EwRkZRU3hMUVVGTFF5eEZRVUZMTEVOQlFVVXNVMEZCUVVNc1JVRkJWU3hqUVVGQlF5eEZRVUZsTEZOQlFVRkRMRVZCUVZVc1VVRkJRVU1zUTBGQlVTeEZRVUZKTEVOQlFVTXNSVUZCUnl4RFFVTXpSQ3hIUVVGSkxFTkJRVU5ETEVkQlFWZE1MRU5CUVVjc1JVRkRaaXhOUVVGTkxFbEJRVWtzVlVGQlZTeHBRMEZCYVVNc1JVRkRla1FzU1VGQlRVMHNSVUZCVFN4RFFVTlNMRkZCUVZNc1NVRkJTU3hKUVVOaUxFbEJRVUZPTEVWQlEwRXNTMEZCVFN4SFFVTk9MRk5CUVZWRExFbEJRV0VzUjBGRGRrSXNZVUZCWXl4SFFVTmtMR05CUVdVc1QwRkJUME1zUjBGQmEwSXNVMEZCVjBFc1JVRkJaMElzUjBGRGRrVXNSVUZEVFVzc1JVRkJUVU1zUjBGQlN5eExRVUZOTEVkQlFVbEdMRU5CUVVjc1JVRkRPVUlzUjBGQlNTeFBRVUZQU0N4SFFVRmhMRmRCUTNCQ0xFOUJRVmNzUTBGQlJTeE5RVUZCVFN4RlFVRlBMRWxCUVVGR0xFTkJRVWtzU1VGQlMwUXNSVUZCU1N4UlFVRlJMRTlCUVU4c1JVRkROVU5JTEVWQlFWTkpMRVZCUVV0RkxFTkJRVXNzUlVGRE0wSXNUMEZCVHl4UFFVRlBUQ3hIUVVGWkxGZEJRM0JDVFN4SFFVRmhUaXhGUVVGVExFTkJRVVVzUjBGQlNVY3NRMEZCU1N4RlFVRkhMRWRCUVVsQkxFTkJRVWNzUlVGRE1VTkJMRU5CUTFZc1EwRkRTaXhGUXpkQ1FTeEpRVUZOU1N4SFFVRk9MR05CUVc5Q1F5eEZRVUZUTEVOQlEzcENMRmxCUVZsRExFVkJRVkVzUTBGRGFFSXNUVUZCVFVNc1JVRkJTeXhGUVVOWUxFdEJRVXNzVDBGQlUwUXNSVUZEWkN4UFFVRlBMR1ZCUVdVc1MwRkJUU3hOUVVGUExFTkJReTlDTEV0QlFVMHNRMEZEUml4TlFVRk5MRWxCUVVrc1RVRkJUU3c0UWtGQk9FSXNRMEZEYkVRc1EwRkRTaXhEUVVGRExFTkJRMHdzUTBGTFFTeFJRVUZSUlN4RlFVRkxMRU5CUTFRc1NVRkJTVU1zUlVGRFNpeFBRVUZCUXl4SFFVRk5SaXhGUVVGTExFTkJRMUFzUzBGQlRTeERRVUZEUnl4RlFVRk5ReXhKUVVGVExFTkJRMnhDTEVkQlFVbEJMRWxCUVZNc1MwRkRWQ3hQUVVGUFJpeEhRVUZOTEUxQlEySkZMRVZCUVVzc1UwRkJWeXhMUVVGTExGTkJRM0pDU0N4RlFVRlJSeXhGUVVOb1FpeERRVU5LTEVOQlFVTXNSVUZEVFVnc1EwRkRXQ3hEUVVOQkxFOUJRVTlKTEVWQlFVMURMRVZCUVVzc1EwRkRaQ3hIUVVGSkxFTkJRVU5CTEVWQlEwUXNUVUZCVHl4RFFVRkZMRTlCUVZFc1MwRkJTeXhOUVVGUExFVkJRMnBETEVkQlFVMHNRMEZCUlN4UlFVRkJReXhGUVVGVExFbEJRVUZRTEVWQlFVc3NZMEZCUVZFc1EwRkJZeXhGUVVGSlJpeEZRVU5zUTFJc1JVRkJVeXhMUVVGTExGRkJRVkZGTEVOQlFVY3NSVUZETDBJc1IwRkJTU3hEUVVGRFJpeEZRVUZSTEVOQlExUXNTVUZCVFZjc1JVRkJUU3dyUkVGQkswUXNTMEZCU3l4TlFVRk5MRWRCUTNSR0xFMUJRVTBzU1VGQlNTeGxRVUZsUVN4RFFVRkhMRU5CUTJoRExFTkJRMEVzU1VGQlNVTXNSVUZCVDBnc1JVRkJVU3hKUVVGSlZDeERRVUZOTEVWQlR6ZENMRWRCVGt0WkxFbEJSVVJETEVkQlFVdGlMRVZCUVZFc1MwRkJUVkVzUTBGQlJ5eEZRVU4wUWtrc1JVRkJUMGdzUlVGQlVTeEpRVUZKVkN4RFFVRk5MRWRCUjNwQ0xFTkJRVU5aTEVkQlFWRkJMRVZCUVVzc1RVRkJVU3hQUVVGWExFTkJRMnBETEVsQlFVMUVMRVZCUVUwc2VVUkJRMW9zVFVGQlRTeEpRVUZKTEdWQlFXVkJMRU5CUVVjc1EwRkRhRU1zUTBGRFFTeEhRVUZKUkN4SFFVRnBRaXhKUVVOcVFrVXNSVUZCU3l4UFFVRlRMRVZCUTFaQkxFVkJRVXNzWVVGQlpTeEpRVU53UWtFc1JVRkJTeXhYUVVGaFJTeEhRVUZqV2l4RlFVRkxSaXhGUVVGUlV5eERRVUZQTEVkQlEzQkVSeXhGUVVGTExFMUJRVkZCTEVWQlFVc3NWMEZCWVVZc1IwRkJaU3hEUVVNNVF5eEpRVUZOUXl4RlFVRk5MQ3RFUVVOYUxFMUJRVTBzU1VGQlNTeGxRVUZsUVN4RFFVRkhMRU5CUTJoRExFTkJSVW9zVDBGQlQwTXNSVUZCU3l4SFFVTm9RaXhEUVVOQkxGTkJRVk5LTEVWQlFVdFBMRVZCUVZsRExFVkJRV01zUTBGRGNFTXNTVUZCVFVNc1JVRkJUU3hKUVVGSkxFdEJRVXNzVFVGQlRTeEhRVU16UWl4SFFVRkpWQ3hGUVVGTExFTkJSVXdzUjBGRVFWVXNSMEZCWXl4TFFVRkxMRTFCUVUwc1JVRkRja0pXTEVWQlFVa3NVVUZCVVN4clFrRkJiMElzUTBGQlEwRXNSVUZCU1N4UlFVRlJMRWxCUVVrc1MwRkJTeXhOUVVGTkxFVkJRVWNzUTBGREwwUXNTVUZCVFVjc1JVRkJUU3dyUkVGQkswUXNTMEZCU3l4TlFVRk5MRWRCUTNSR0xFMUJRVTBzU1VGQlNTeE5RVUZOUVN4RFFVRkhMRU5CUTNaQ0xFTkJRMEVzUjBGQlNVZ3NSVUZCU1N4WlFVTktMRTFCUVU4c1IwRkJSMU1zUTBGQlJ5eEhRVU55UWl4RFFVTkJMRTlCUVU5QkxFTkJRMWdzUTBGRFNpeEZRVU5CTEZOQlFWTklMRWRCUVdOYUxFVkJRVXRKTEVWQlFVMUhMRVZCUVZNc1EwRkRka01zUjBGQlNWVXNSMEZCVVdJc1EwRkJTU3hGUVVGSExFTkJRMllzU1VGQlRVNHNSVUZCVTAwc1JVRkJTeXhSUVVGUlNpeERRVUZITEVWQlEzcENhMElzUlVGQlUxZ3NSMEZCVjFRc1IwRkJWVk1zUlVGQlVTeEpRVUZKVkN4RFFVRk5MRVZCUTNSRUxFOUJRVTl2UWl4RlFVRlRRU3hGUVVGUExFMUJRVkZCTEVWQlFVOHNWMEZCWVN4RFFVTjJSQ3hUUVVOVFF5eEZRVUZoWml4RFFVRkpMRVZCUVVjc1EwRkRla0lzU1VGQlNXZENMRVZCUVZFc1JVRkRXaXhSUVVGWFF5eExRVUZSYWtJc1JVRkJTeXhOUVVGUExFTkJRek5DTEVsQlFVMXJRaXhGUVVGSlZpeEhRVUZqV2l4RlFVRkxjVUlzUlVGQlRXUXNRMEZCVHl4RlFVTjBRMlVzUlVGQlNVWXNTVUZEU2tFc1JVRkJVVVVzUlVGRGFFSXNRMEZEUVN4UFFVRlBSaXhEUVVOWUxGTkJRMU5ITEVWQlFVOXVRaXhEUVVGSkxFVkJRVWNzUTBGRGJrSXNTVUZCVFc5Q0xFVkJRVXRhTEVkQlFXTmFMRVZCUVV0SkxFVkJRVXNzU1VGQlMwY3NRMEZCVHl4RlFVTjZRMnRDTEVWQlFVdGlMRWRCUVdOYUxFVkJRVXRKTEVWQlFVc3NUVUZCVDBjc1EwRkJUeXhGUVVOcVJDeFBRVUZQTEV0QlFVc3NTVUZCU1dsQ0xFVkJRVWxETEVOQlFVVXNRMEZETVVJc1EwRkRRU3hOUVVGUExFVkJRMWdzUTBNNVJrRXNTVUZCVFVNc1IwRkJhVUpETEVkQlFWVXNRMEZCUTBFc1IwRkJWU3hQUVVGUFFTeEhRVUZWTEZsQlFXTXNUMEZCVDBFc1IwRkJWU3hUUVVOMFJrTXNSVUZCVGl4alFVRnhRa01zUlVGQlV5eERRVU14UWl4WlFVRlpSaXhGUVVGUExFTkJRMllzVFVGQlRVY3NSVUZCVFN4RlFVTmFMRXRCUVVzc1RVRkJVVWdzUTBGRGFrSXNRMEZEUVN4UFFVRlBTU3hGUVVGTFF5eEZRVUZMTEVOQlEySXNUMEZCVDBFc1IwRkJRU3hOUVVGQlFTeEZRVUZMTEV0QlFVOHNTMEZCU3l4TlFVRlJReXhIUVVGTExFdEJRVXNzVFVGQlQwWXNSVUZCUzBNc1EwRkJSeXhEUVVNM1JDeERRVU5CTEZWQlFWY3NRMEZEVUN4UFFVRlBMRTlCUVU4c1MwRkJTeXhMUVVGTExFTkJRelZDTEVOQlEwb3NSVUZEUVVvc1JVRkJUeXhoUVVGbExHVkJRM1JDUVN4RlFVRlBMR05CUVdkQ0xHZENRVU4yUWtFc1JVRkJUeXhOUVVGUkxGRkJRMlpCTEVWQlFVOHNZVUZCWlN4bFFVTjBRa0VzUlVGQlR5eGhRVUZsTEdWRGFrSjBRaXhKUVVGTlRTeEhRVUZ0UWl4eFFrRkRla0lzVTBGQlUwTXNSMEZCWTBNc1JVRkJUME1zUlVGQlUwTXNSVUZCVFN4RFFVdzNReXhKUVVGQlF5eEZRVTFKTEVkQlFVbEdMRVZCUVZNc1EwRkRWQ3hKUVVGTlJ5eEZRVUZSUml4RlFVRkxMRTlCUVU5SExFZEJRVXRCTEVWQlFVVXNUVUZCVVVvc1EwRkJUeXhGUVVNeFEwc3NSMEZCVTBnc1JVRkJRVU1zUlVGQlRTeExRVUZMUXl4SFFVRkxMRU5CUVVOQkxFVkJRVVVzVFVGQlRTeEpRVUY2UWl4TFFVRkJSaXhGUVVFNFFrTXNSVUZCVFN4RFFVRkRMRVZCUTNCRUxFZEJRVWtzUTBGQlEwVXNSVUZEUkN4TlFVRk5MRWxCUVVrc1RVRkJUU3hQUVVGUFRDeERRVUZQTEZsQlFWa3NSVUZET1VNc1QwRkJUMHNzUTBGRFdDeERRVU5CTEU5QlFVOUtMRVZCUVVzc1MwRkJTMGNzUjBGQlJTeERRV0oyUWl4SlFVRkJSaXhGUVdFd1FpeFJRVUZCUVN4RlFVRkJSU3hGUVVGRkxGZEJRVVlzV1VGQlFVWXNSVUZCUVN4TFFVRkJSU3hGUVVGaFRDeExRVUZWTEVOQlFVTkxMRVZCUVVVc1QwRkJUU3hEUVVNeFJDeERRVU5CTEZOQlFWTkZMRWRCUVZkUUxFVkJRVTlETEVWQlFWTlBMRVZCUVVzc1EwRm1la01zU1VGQlFVd3NSVUZCUVUwc1JVRkJRVU1zUlVGclFra3NSMEZHU1VNc1IwRkJWMWdzUTBGQlN5eEpRVU5vUWtFc1JVRkJVVUVzUlVGQlRTeFZRVU5rV1N4RlFVRlBXaXhEUVVGTExFVkJRMW9zVDBGQlQwRXNSVUZEV0N4SFFVRkpZU3hGUVVGUFlpeERRVUZMTEVWQlFVY3NRMEZEWml4SlFVRk5ZeXhIUVVGTlRDeEhRVUZCVGl4RlFVRkJTeXhGUVVGSkxFOUJRVTlQTEVWQlFVY3NSMEZCUlN4aFFVRm9RaXhaUVVGQlRpeEZRVUZCTEV0QlFVRk9MRVZCUVRaQ1N5eEZRVUZKTEU5QlFWRXNTMEZCVFVFc1IwRkRNMFFzVDBGQlFVMHNSVUZCU1N4TlFVRk5MRXRCUVV0a0xFTkJRVXNzUlVGRFltTXNRMEZEV0N4RlFVTkpaQ3hoUVVGcFFpeFJRVU5xUWtFc1lVRkJhVUlzVVVGRGFrSkJMR0ZCUVdsQ0xGTkJRMmhDTEU5QlFVOHNVVUZCVnl4aFFVRmxRU3hoUVVGcFFpeFZRVWR1UkVFc1JVRkJVVUVzUlVGQlRTeFJRVUZSTEVkQlJURkNMRWRCUVUwc1EwRkJSU3h6UWtGQlFXZENMRVZCUVhWQ0xGTkJRVUZETEVWQlFWVXNVMEZCUVVNc1JVRkJWU3hQUVVGQlF5eEZRVUZSTEdOQlFVRkRMRU5CUVdNc1JVRkJTVm9zUlVGSGVrVmhMRVZCUTBvc1IwRkJTVXdzUjBGQmVVSm9RaXhIUVVGVExFOUJRVTlCTEVkQlFWVXNVMEZCVlN4RFFVVTNSQ3hIUVVSQmNVSXNSVUZCVFVRc1JVRkJZeXhKUVVGSmNFSXNRMEZCU3l4RlFVTjZRbkZDTEVWQlEwRXNUMEZCUzBFc1JVRkJTU3hUUVVOTVFTeEZRVUZKTEU5QlFWTktMRVZCUVZOcVFpeERRVUZMTEVkQlEzaENMRWxCUVVselFpeEhRVUZOUkN4RlFVRkpMRTFCUVUwc1JVRkhNMEpCTEVWQlFVMHNRMEZCUlN4UFFVRlJMRXRCUVUwc1MwRkJUU3hKUVVGTExFVkJRMnBEUkN4RlFVRmpMRWxCUVVsd1FpeEZRVUZQY1VJc1EwRkJSeXhEUVVWd1F5eERRVU5KY0VJc1IwRkJRU3hOUVVGQlFTeEZRVUZUTEZkQlFWY3NVVUZEY0VKQkxFVkJRVlZJTEVkQlFXMUNSeXhGUVVGUkxFMUJRVTBzUTBGQlF5eEhRVU5vUkN4SlFVRkpTeXhGUVVGVFVDeEhRVUZqUXl4RlFVRlBReXhGUVVGVGEwSXNSVUZCVHl4SlFVRkpMRVZCUTNSRUxFZEJRVWtzUTBGQlEySXNSVUZCVVN4RFFVdFVMRWRCU2tsT0xFZEJRVk1zVDBGQlQwRXNSVUZCVFN4UlFVRlhMR0ZCUldwRFFTeEZRVUZSUVN4RlFVRk5MRTlCUVU4c1IwRkZja0lzUTBGQlEwRXNSMEZCVXl4UFFVRlBRU3hIUVVGVkxGTkJRVlVzUTBGRGNrTXNTVUZCVFhWQ0xFVkJRVThzU1VGQlNVTXNSVUZCVDNoQ0xFTkJRVXNzUlVGRE4wSXNUMEZCU1hGQ0xFbEJRMEZCTEVWQlFVa3NTMEZCVDBVc1IwRkRVa0VzUTBGRFdDeERRVU5CYWtJc1JVRkRTVTRzWVVGQmFVSXNTVUZEV0cxQ0xFVkJRVTlLTEVWQlFVY3NSVUZEVml4UFFVRlBMRmxCUVZrc1QwRkJUMllzUTBGQlN5eEZRVU16UW0xQ0xFVkJRVTlOTEVWQlFVY3NSVUZEVms0c1JVRkJUMG9zUlVGQlJ5eERRVU0xUWl4RFFVTkpSeXhKUVVOQlFTeEZRVUZUV2l4RFFVRk5MRVZCUTJZc1QwRkJUMFVzUlVGQlNTeFZRVVZtTEVsQlFVMWxMRVZCUVU5cVFpeEhRVUZCTEUxQlFVRkJMRVZCUVZFc1YwRkRaa0VzUlVGQlR5eFhRVUZYUlN4RlFVRkpMRTlCUVZGU0xFVkJRVTlSTEVOQlFVY3NSVUZEZUVNc1VVRkJUMFVzUlVGQlFVb3NSMEZCUVN4WlFVRkJRU3hGUVVGUkxGbEJRVklzV1VGQlFVa3NSVUZCYlVJc1QwRkJVeXhYUVVNdlFrb3NSVUZCVHl4VlFVRlZMRXRCUVV0RkxFVkJRVWtzVDBGQlVWSXNSVUZCVDFFc1EwRkJSeXhGUVVNMVF5eEpRVUZKWjBJc1JVRkJUM2hDTEVOQlFVc3NSVUZETVVJc1QwRkJTVU1zUlVGRFFYTkNMRVZCUVVzc1NVRkJUWFJDTEVWQlEweExMRVZCUVU4c1ZVRkRZbWxDTEVWQlFVc3NTVUZCVFdwQ0xFVkJRVThzUzBGRGJFSmxMRWxCUTBGQkxFVkJRVWtzUzBGQlQwVXNSMEZEVWtFc1EwRkRXQ3hEUTJ4R1FTeFRRVUZUUnl4SFFVRnRRa01zUlVGQlVVTXNSVUZCVFVNc1JVRkJUeXhEUVVNM1F5eEpRVUZKUXl4RlFVRkpSQ3hGUVVOU0xGRkJRVk5GTEVWQlFVbElMRVZCUVVzc1QwRkJVeXhGUVVGSFJ5eEhRVUZMTEVWQlFVY3NSVUZCUlVFc1JVRkJSeXhEUVVOMlF5eEpRVUZOUXl4RlFVRkpTaXhGUVVGTFJ5eERRVUZETEVWQlEyaENMRWRCUVVrc1QwRkJUME1zUjBGQlRTeFZRVUZaTEU5QlFVOHNWVUZCVlVFc1EwRkJReXhIUVVGTFFTeEhRVUZMTEVWQlFVY3NRMEZEZUVRc1NVRkJUVU1zUlVGQlNTeERRVUZETEVWQlExaEJMRVZCUVVWRUxFTkJRVU1zUlVGQlNVWXNSVUZEVUVFc1JVRkJTVWNzUTBGRFVpeE5RVVZKU0N4RlFVRkpMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU5GTEVWQlFVZEdMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJSVFZDTEVOQlEwRXNUMEZCVDBrc1IwRkJWMG9zUlVGQlJ5eFBRVUZYTEVOQlF6VkNMSE5DUVVGMVFpeEhRVU4yUWl4alFVRmxMRWRCUTJZc1UwRkJWU3hKUVVGTkxFTkJRMW9zVFVGQlRTeEpRVUZKTEUxQlFVMHNPRU5CUVRoRExFTkJRMnhGTEVWQlEwRXNUMEZCUVVnc1JVRkRRU3hqUVVGbExFbEJRVWtzUjBGRGRrSXNRMEZCUXl4RFFVTk1MRU5CUjBFc1NVRkJUVkVzUjBGQlpWQXNSMEZCVTBFc1IwRkJVU3hOUVVOcVF5eFBRVUZQUVN4SFFVRlRMRlZCUVZrc1EwRkJReXhEUVVGRFFTeEZRVUZMTEU5QlFVOHNVVUZCVVN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRelZFVVN4SFFVRk9MR05CUVhsQ1F5eEZRVUZUTEVOQlF6bENMRmxCUVZsRExFVkJRVTFZTEVWQlFWRXNRMEZEZEVJc1RVRkJUVmNzUTBGQlNTeEZRVU5XTEU5QlFVOHNaVUZCWlN4TFFVRk5MRk5CUVZVc1EwRkRiRU1zVFVGQlQxZ3NSVUZEVUN4aFFVRmpMRWRCUTJRc1YwRkJXU3hIUVVOYUxGTkJRVlVzUlVGRFpDeERRVUZETEVOQlEwd3NRMEZOUVN4TlFVRk5RU3hGUVVGUkxFTkJRMVlzU1VGQlRWa3NSVUZCVHl4UFFVRlBMRTlCUVU4c1QwRkJUeXhsUVVGbExFbEJRVWtzUlVGQlJ5eFBRVUZQTERCQ1FVRXdRaXhKUVVGSkxFTkJRVU1zUlVGRE9VWXNUMEZCU1Zvc1NVRkRRVmtzUlVGQlN5eFBRVUZUV2l4SFFVTnNRbGtzUlVGQlN5eE5RVUZSUVN4RlFVRkxMRTFCUVUwc1NVRkJTVU1zUjBGQlRVTXNSVUZCVDBRc1EwRkJSU3hIUVVGTFJTeEZRVUZQUml4RFFVRkZMRVZCUVVsQkxFVkJRVWNzVFVGQlRXSXNRMEZCVFN4RlFVRkpZU3hEUVVGRkxFVkJRemxGTEV0QlFVc3NVVUZEVEVRc1JVRkJTeXhOUVVGUkxFdEJRVXNzVFVGQlRTeE5RVUZOTEVkQlF6TkNRU3hEUVVOWUxFTkJUVUVzVFVGQlRWZ3NSVUZCVFVNc1JVRkJUeXhEUVVObUxFZEJRVWxOTEVkQlFWbFFMRU5CUVVrc1JVRkRhRUlzUzBGQlN5eEpRVUZKUXl4RFFVRkxMRTFCUTJJc1EwRkRSQ3hIUVVGTkxFTkJRVU5qTEVWQlFVc3NSMEZCUjBNc1EwRkJTU3hGUVVGSmFFSXNSVUZEYWtKcFFpeEZRVUZQTEV0QlFVc3NTVUZCU1VZc1JVRkJTeXhGUVVGSkxFVkJReTlDTEVkQlFVbEhMRVZCUVdGRUxFTkJRVWtzUlVGRGFrSkJMRVZCUVVzc1RVRkJUVVFzUlVGQlRXWXNRMEZCU3l4VlFVTnFRbWRDTEVsQlFWTXNVVUZCWVN4TFFVRkxMRTlCUTJoRExFdEJRVXNzU1VGQlNVWXNSVUZCUzJwQ0xFZEJRVzFDTEV0QlFVc3NUMEZCVVd0Q0xFVkJRVTFtTEVOQlFVc3NRMEZCUXl4TlFVVXhSQ3hQUVVGTkxFbEJRVWtzVFVGQlRTd3JRa0ZCSzBKakxFTkJRVWNzY1VKQlFYRkNReXhEUVVGSkxFVkJRVVVzUTBGRGNrWXNRMEZEU2l4RFFVdEJMRk5CUVZOb1FpeEZRVUZOTEVOQlExZ3NSMEZCVFN4RFFVRkRaU3hGUVVGTExFZEJRVWRETEVOQlFVa3NSVUZCU1doQ0xFVkJRM1pDTEVkQlFVbG5RaXhGUVVGTExGTkJRVmNzUlVGRGFFSXNUMEZCVHl4TFFVRkxMRTlCUVU5RUxFTkJRVWNzUlVGRE1VSXNTVUZCVFVVc1JVRkJUeXhMUVVGTExFbEJRVWxHTEVWQlFVc3NSVUZCU1N4RlFVTXZRaXhIUVVGSlJ5eEZRVUZoUkN4RFFVRkpMRVZCUTJwQ0xFOUJRVTlCTEVWQlFVc3NVMEZCVTBRc1EwRkJTU3hGUVVWNlFpeE5RVUZOTEVsQlFVa3NUVUZCVFN3clFrRkJLMEpFTEVOQlFVY3NjVUpCUVhGQ1F5eERRVUZKTEVWQlFVVXNRMEZEY2tZc1EwRk5RU3hOUVVGTmFFSXNSVUZCVFcxQ0xFVkJRVmtzUTBGRGNFSXNSMEZCVFN4RFFVRkRTaXhGUVVGTExFZEJRVWRETEVOQlFVa3NSVUZCU1doQ0xFVkJRMnBDYVVJc1JVRkJUeXhMUVVGTExFbEJRVWxHTEVWQlFVc3NSVUZCU1N4RlFVTXZRaXhQUVVGSlF5eEZRVUZMTEZOQlFWY3NSVUZEVkN4RFFVRkRSeXhIUVVGalF5eEZRVUZUU0N4RFFVRkpMRVZCUVVsQkxFVkJRVXNzVFVGQlVVRXNSVUZGTjBORExFVkJRV0ZFTEVOQlFVa3NSVUZCU1VFc1JVRkJTeXhOUVVGTlJDeEZRVUZOUnl4RFFVRlZMRVZCUVVrc1RVRkRia1VzUTBGRFFTeHBRa0ZCYVVKRkxFVkJRV0VzUTBGRE1VSXNUMEZCVHl4TFFVRkxMRTFCUVUwc1RVRkJUVW9zUjBGQlVTeERRVU0xUWl4SFFVRkpMRU5CUVVOSUxFVkJRVTlITEVOQlFVa3NSVUZEV2l4TlFVRlBMRWRCUTFnc1NVRkJUVXNzUlVGQlNVd3NSVUZCU3l4TlFVTm1MRTlCUVZGTExFZEJRVXNzVFVGRFVrUXNSMEZEUjBRc1JVRkJVMFVzUTBGQlF5eEhRVU5XUVN4RlFVRkZMRTlCUVZNc1RVRkRXQ3hEUVVGRFFTeEZRVUZGTEdWQlEwZ3NRMEZCUTBFc1JVRkJSU3hUUVVOSUxFTkJRVU5CTEVWQlFVVXNSMEZEWml4RFFVRkRMRU5CUTB3c1EwRkpRU3hOUVVGTmRFSXNSVUZCVFN4RFFVTlNMRWRCUVUwc1EwRkJRMlVzUlVGQlN5eEhRVUZIUXl4RFFVRkpMRVZCUVVsb1FpeEZRVU4yUWl4SFFVRkpaMElzUlVGQlN5eFRRVUZYTEVWQlEyaENMRTlCUVU4c1MwRkJTeXhKUVVGSlJDeERRVUZITEVWQlEzWkNMRWxCUVUxRkxFVkJRVThzUzBGQlN5eEpRVUZKUml4RlFVRkxMRVZCUVVrc1JVRkRMMElzVDBGQlQwY3NSVUZCWVVRc1EwRkJTU3hGUVVGSlFTeEZRVUZMTEUxQlFVMUVMRU5CUVVrc1JVRkJTU3hGUVVOdVJDeERRVXRCTEUxQlFVMW9RaXhGUVVGTlF5eEZRVUZQTEVOQlEyWXNSMEZCVFN4RFFVRkRZeXhGUVVGTExFZEJRVWRETEVOQlFVa3NSVUZCU1doQ0xFVkJRM1pDTEVkQlFVbG5RaXhGUVVGTExGTkJRVmNzUlVGRGFFSXNTMEZCU3l4SlFVRkpSQ3hGUVVGTFpDeERRVUZMTEUxQlJXeENMRU5CUTBRc1NVRkJUV2RDTEVWQlFVOHNTMEZCU3l4SlFVRkpSaXhGUVVGTExFVkJRVWtzUlVGREwwSXNSMEZCU1Vjc1JVRkJZVVFzUTBGQlNTeEZRVU5xUWtFc1JVRkJTeXhOUVVGTlJDeEZRVUZOWml4RFFVRkxMRlZCUTJwQ1owSXNTVUZCVXl4UlFVRmhMRXRCUVVzc1QwRkRhRU1zUzBGQlN5eEpRVUZKUml4RlFVRkxha0lzUjBGQmJVSXNTMEZCU3l4UFFVRlJhMElzUlVGQlRXWXNRMEZCU3l4RFFVRkRMRTFCUlRGRUxFOUJRVTBzU1VGQlNTeE5RVUZOTEN0Q1FVRXJRbU1zUTBGQlJ5eHhRa0ZCY1VKRExFTkJRVWtzUlVGQlJTeERRVU55Uml4RFFVTktMRU5CUTBvc1JVTjZTVUVzU1VGQlRVOHNSMEZCYjBKRExFZEJRVkZCTEVWQlFVa3NVVUZCVVN4clFrRkJiVUlzUjBGQlJ5eEZRVU53UlN4VFFVRlRReXhIUVVGalF5eEZRVUZUUXl4RlFVRlJMRU5CUTNCRExFMUJRVWtzVVVGQlVTeExRVUZMUkN4RFFVRlBMRVZCUTJKQkxFVkJRVkVzVlVGQlZTeERRVUZETEVWQlEzWkNReXhGUVVGVFJDeEZRVUZSTEZGQlFWRXNZVUZCWTBNc1EwRkJUU3hGUVVGSlJDeERRVU0xUkN4RFFVTkJMRWxCUVUxRkxFZEJRV01zUTBGQlEwb3NSVUZCUzBjc1JVRkJVVVFzU1VGQldVWXNSVUZCU1N4VFFVRlRPMEZCUVVFc1EwRkJTU3hGUVVONlJFTXNSMEZCWTBNc1JVRkJVME1zUTBGQlRTeEZRVU0zUWtRc1JVRkJVU3hUUVVGVE8wRkJRVUVzUTBGQlNTeEZRVU5xUWp0QlFVRkJMRVZCUVU5RUxFZEJRV05ETEVWQlFWTkRMRU5CUVUwc1IwRkRia05JTEVWQlFVa3NVMEZCVXl4SFFVRkhMRVZCUVVrc1IwRkJTeXhMUVVGUFJTeEZRMnBDTTBNc1NVRkJUVWNzUjBGQldTeFBRVU5hUXl4SFFVRmhMRkZCUTJKRExFZEJRV01zVTBGTmNFSXNVMEZCVTBNc1IwRkJZME1zUlVGQlRVTXNSVUZCVVVNc1JVRkJUeXhQUVVGUkxFTkJRVVVzWTBGQlFVTXNSVUZCWlN4VlFVRkJReXhGUVVGWkxFZEJRVWtzWjBKQlFVRkRMRVZCUVd0Q0xFZEJRVWtzVDBGQlFVTXNSVUZCVVN4WFFVRkJReXhEUVVGWExFVkJRVWtzUTBGQlF5eEZRVUZITEVOQlEyeEpMRWRCUVVrc1EwRkJRMGdzUjBGQllVRXNSVUZCV1N4RlFVTXhRaXhQUVVGUFNpeEZRVU5RU1N4RlFVRlpReXhKUVVOYVFTeEZRVUZyUWl4SFFVTjBRaXhKUVVGTlJ5eEZRVUZWTEV0QlFVc3NTVUZCU1N4RlFVRkpTQ3hGUVVGcFFpeEZRVUZKUkN4RlFVRlpTQ3hGUVVGUExFMUJRVTBzUlVGRE0wVXNSMEZCU1VRc1JVRkJTeXhSUVVGVlVTeEZRVU5tTEU5QlFVOVNMRVZCUTFnc1NVRkJUVk1zUlVGQlVTeERRVUZETEVWQlExUkRMRVZCUVdVc1EwRkJReXhGUVVOc1FrTXNSVUZCVFZBc1JVRkJXVWdzUlVGQlR5eFBRVU42UWl4UFFVRlBSU3hIUVVGclFpeFhRVU55UWtFc1JVRkJaMEpETEVWQlFWa3NTMEZCU3l4SlFVRkpMRVZCUVVkRExFTkJRV1VzUlVGRGRrUkpMRVZCUVUwc1MwRkJTeXhEUVVGRExFVkJSVnBGTEVWQlFVMVFMRVZCUVZsRUxFZEJSVEZDTEVsQlFVbFRMRVZCUTBGRExFVkJRMEZETEVWQlFWY3NSMEZEV0VNc1JVRkJTU3hIUVVOS1F5eEZRVUZYTEVkQlExaERMRVZCUVZNc1IwRkRWR1lzU1VGQlUwd3NTMEZEVkd0Q0xFVkJRVWxITEVkQlFYbENiRUlzUlVGQlRXVXNSVUZCUjJRc1JVRkJUeXhOUVVGTkxFVkJReTlEWXl4SlFVRk5MRXRCUTA1S0xFVkJRVTFKTEVWQlFVbFFMRWxCUld4Q0xGRkJRVk5YTEVWQlFVdEJMRVZCUVV0dVFpeEZRVUZOWlN4SFFVRkxMRU5CUVVVc1IwRkJTeXhEUVVOcVF5eEhRVUZKWWl4SlFVRlRTaXhKUVVGbGNVSXNTVUZCVHl4TFFVRk5MRU5CUlhKRExFOUJSRUZJTEVWQlFWZEVMRVZCUTBobUxFVkJRVXRsTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTJwQ0xFbEJRVXNzU1VGRFJFRXNSMEZCU3l4RlFVTk1MRTFCUTBvc1NVRkJTeXhKUVVORVFTeEhRVUZMTEVWQlEwd3NUVUZEU2l4SlFVRkxMRWxCUTBSQkxFZEJRVXNzUlVGRFRDeE5RVU5LTEZGQlEwbEJMRWRCUVVzc1EwRkRZaXhEUVVOQlJTeEZRVUZUUml4RFFVTmlMRU5CUTBFc1IwRkJTVWtzU1VGQlR6dEJRVUZCTEVWQlEwaHFRaXhKUVVGVFRDeExRVU5VYTBJc1JVRkJTVWNzUjBGQmVVSnNRaXhGUVVGTlpTeEZRVUZIWkN4RlFVRlBMRTFCUVUwc1IwRkRka1JWTEVWQlFVMUpMRVZCUVVsa0xFVkJRVThzVDBGQlUwOHNSVUZETVVKSkxFVkJRVkVzVjBGRlVDeERRVU5FTEVkQlFVbFBMRWxCUVU4c1MwRkRVRTRzUjBGRFFVRXNTVUZCVXl4TFFVTlVRU3hKUVVGVE8wRkJRVUVzUjBGRFZFRXNTVUZCVXl4SlFVRk5MRU5CUldZc1NVRkJUVThzUlVGQlQzQkNMRVZCUVV0bExFVkJRVWtzUTBGQlF5eEZRVU51UWtzc1IwRkJVVUVzU1VGQlV5eExRVUZQUVN4SlFVRlRPMEZCUVVFc1IwRkJVVUVzU1VGQlV5eE5RVU5zUkZJc1JVRkJVVWNzUlVGRGFFSXNRMEZEUVN4SFFVRkpRU3hIUVVGTFNpeEZRVU5NTEVkQlFVbERMRVZCUTBGSUxFVkJRVTBzUzBGQlMwY3NRMEZCU3l4RlFVTm9Ra1FzUlVGQlRVTXNSVUZCVVVvc1JVRkRaRWtzUlVGQlVTeGxRVVZJVml4SlFVRlRTaXhIUVVGaExFTkJSVE5DTEV0QlFVOWxMRWxCUVZNc1MwRkJUMEVzU1VGQlV5eExRVU0xUWtFc1JVRkJUMDBzUlVGRFVFRXNSVUZCUzI1Q0xFVkJRVTFsTEVkQlFVc3NRMEZCUlN4RlFVTnNRa1FzUlVGQlZ5eEhRVWRtTEVsQlFVMVBMRVZCUVVsT0xFVkJRVWxGTEVWQlFWTXNSVUZCU1VZc1JVRkJTU3hGUVVGSlF5eEZRVUZYTEVWQlJUbERMRWRCUVVsT0xFVkJRV0ZYTEVOQlFVTXNSVUZEWkN4UFFVRlBja0lzUlVGRFdGTXNSVUZCVFN4TFFVRkxXU3hEUVVGRExFVkJRMXBZTEVWQlFXRlhMRU5CUVVNc1JVRkJTU3hIUVVOc1FsWXNSVUZCVFZVc1JVRkJTV0lzUlVGRFZra3NSVUZCVVN4TlFVTmFMRTFCUlVsRkxFVkJRVmNzUlVGSGRrSXNRMEZEUVVRc1JVRkJUMDBzUTBGRFdDeERRVWRCTEVkQlJrbE1MRWRCUVZsUUxFZEJRMXBCTEVWQlFWY3NSVUZEV0VVc1JVRkJUU3hUUVVGWExFVkJRMnBDTEU5QlFVOVVMRVZCUTFCTkxFZEJRMEZCTEVWQlFVOHNSVUZEV0N4SlFVRkpaMElzUlVGQlRYUkNMRVZCUVVzc1RVRkJUU3hGUVVGSFV5eEZRVUZOTEVOQlFVTXNRMEZCUXl4RlFVTm9ReXhSUVVGVFRTeEZRVUZKTEVWQlFVZEJMRVZCUVVsT0xFVkJRVTBzVDBGQlVTeEZRVUZGVFN4RlFVRkhMRU5CUTI1RExFbEJRVTFSTEVWQlFVOWtMRVZCUVUxTkxFTkJRVU1zUlVGRFpFb3NSVUZCVFVZc1JVRkJUVTBzUlVGQlNTeERRVUZETEVkQlFVdG1MRVZCUVVzc1QwRkROMEoxUWl4SlFVRlRMRVZCUTFSRUxFVkJRVTA3UVVGQlFTeEZRVUZMY2tJc1EwRkJUU3hIUVVGSFJDeEZRVUZMTEUxQlFVMHNSVUZCUjFjc1EwRkJSeXhEUVVGRExFbEJSV3hEVkN4SlFVRlRTaXhKUVVGbFdTeEZRVUZoWVN4RFFVRkpMRWxCUTNwRFJDeEhRVUZQTEVkQlFVZDBRaXhGUVVGTGRVSXNRMEZCU1N4RFFVRkRMRTFCUTNoQ1JDeEhRVUZQTzBGQlFVRXNSVUZCUzNKQ0xFTkJRVTBzUjBGQlIwUXNSVUZCU3l4TlFVRk5kVUlzUlVGQlR5eEZRVUZIV2l4RFFVRkhMRU5CUVVNc1IwRkZkRVFzUTBGRFFTeFBRVUZQVnl4RFFVTllMRU5CUzBFc1UwRkJVMG9zUjBGQmVVSnNRaXhGUVVGTlpTeEZRVUZIWkN4RlFVRlJMRU5CUXk5RExFbEJRVWxWTEVWQlFVMUpMRVZCUTA1VExFVkJRVkZVTEVWQlFVa3NSVUZEV2trc1JVRkJTMjVDTEVWQlFVdDNRaXhEUVVGTExFVkJRMjVDTEV0QlFVOU1MRWxCUVU4c1MwRkJUMEVzU1VGQlR5eExRVU40UWl4SFFVRkpTaXhGUVVGSlV5eEZRVUZSZGtJc1JVRkRXbXRDTEVWQlFVdHVRaXhGUVVGTExFVkJRVVZsTEVOQlFVTXNUVUZGV2l4RFFVTkVMRWRCUTBsSkxFVkJRVXR1UWl4RlFVRkxMRVZCUVVWbExFTkJRVU1zVVVGRFVra3NSMEZCVFVFc1NVRkJUenRCUVVGQkxFZEJRM1JDVWl4RlFVRk5TU3hGUVVOT1V5eEZRVUZSVkN4RlFVRkpMRVZCUTFwSkxFVkJRVXR1UWl4RlFVRkxkMElzUTBGQlN5eERRVU51UWl4RFFVVktMRTlCUVU5aUxFTkJRMWdzUTBNMVNVRXNTVUZCVFdNc1IwRkJhVUlzUTBGQlEwTXNSVUZCUzBNc1MwRkJZU3hEUVVOMFF5eGpRVUZsUVN4RlFVRlZSQ3hGUVVGSkxFOUJRVThzVDBGQlUwRXNSVUZCU1N4alFVTnFSQ3hWUVVGWFFTeEZRVUZKTEZGQlFWRXNWVUZEZGtJc1owSkJRV2xDUVN4RlFVRkpMRkZCUVZFc1pVRkRha01zUjBGSFRVVXNSMEZCTUVKRExFZEJRVkVzYlVKQlFXMUNMRXRCUVV0QkxFTkJRVWNzUlVGRGJrVXNVMEZCVTBNc1IwRkJiMEpFTEVWQlFVdEZMRVZCUVZkRExFVkJRV01zUTBGRGRrUXNSMEZCU1N4RFFVRkRSQ3hIUVVGaFFTeEZRVUZaTEVWQlF6RkNMRTFCUVU4c1IwRkRXQ3hKUVVGTlJTeEZRVUZSUml4RlFVRlpReXhGUVVOd1FrVXNSVUZCVTB3c1JVRkJTU3hQUVVOdVFpeEhRVUZKU3l4SFFVRlZSQ3hGUVVOV0xFMUJRVThzUjBGRFdDeFJRVUZUTEVWQlFVa3NSVUZCUjBVc1JVRkJVU3hGUVVGSExFVkJRVWxFTEVWQlFWRXNSVUZCUlN4RlFVTnlReXhIUVVGSlRDeEZRVUZKTEVOQlFVTXNTVUZCVFR0QlFVRkJMRVZCUVUwc1EwRkRha0lzUjBGQlNTeEZRVUZKVFN4RlFVRlJSaXhGUVVOYUxFMUJRVThzUjBGRldDeEhRVVJCUlN4RlFVRlJMRVZCUVVrc1JVRkRVa1FzUlVGQlUwTXNSMEZCVTBZc1JVRkRiRUlzVFVGQlR5eEZRVU5tTEVOQlJVb3NUVUZCVHl4RlFVTllMRU5CUTBFc1UwRkJVMGNzUjBGQmJVSkRMRVZCUVU5WUxFVkJRVXNzUTBGRGNFTXNTVUZCVFZrc1JVRkJUeXhMUVVGTExGVkJRVlZFTEVOQlFVc3NSVUZEYWtNc1IwRkJTVmdzUlVGQlNTeFJRVUZSTEcxQ1FVTmFMRTlCUVU5WkxFVkJRMWdzUjBGQlRTeERRVUZGTEZsQlFVRkRMRU5CUVZrc1JVRkJTV0lzUlVGRGJFSmpMRVZCUVhGQ1pDeEZRVUZKTEZGQlFWRXNLMEpCUTJwRFpTeEZRVUZUWml4RlFVRkpMRk5CUVZkRkxFZEJRWFZDVXl4RFFVRkxMRVZCUVVrc1MwRkJUeXhKUVVOcVJWSXNSVUZCVFN4SFFVTk9UU3hGUVVGUkxFVkJRMW9zVVVGQlUwOHNSVUZCU1N4RlFVRkhReXhGUVVGTFRDeEZRVUZMU1N4RFFVRkRMRVZCUVVkRExFVkJRVWxCTEVWQlFVdE1MRVZCUVVzc1JVRkJSVWtzUTBGQlF5eEZRVkV6UXl4SFFWQkpReXhKUVVGUExFdEJRVTlNTEVWQlFVdEpMRVZCUVVrc1EwRkJReXhKUVVGTkxFMUJRVkZLTEVWQlFVdEpMRVZCUVVrc1EwRkJReXhKUVVGTkxFMUJSWFJFWWl4SFFVRlBVeXhGUVVGTExFMUJRVTFJTEVWQlFVOVBMRU5CUVVNc1JVRkJTU3hOUVVNNVFrRXNSMEZCU3l4RlFVTk1VQ3hGUVVGUlR5eEZRVU5TUXl4RlFVRkxMRTFCUlV4QkxFbEJRVThzUzBGRFVDeFBRVUZSVEN4RlFVRkxTU3hGUVVGSkxFTkJRVU1zUlVGQlJ5eERRVU5xUWl4SlFVRkxMRWxCUTBRc1EwRkRTV0lzUjBGQlQxTXNSVUZCU3l4TlFVRk5TQ3hGUVVGUFR5eERRVUZETEVWQlF6RkNMRWxCUVUxRkxFVkJRVTlPTEVWQlFVc3NUMEZCVDBrc1JVRkJTU3hGUVVGSExFTkJRVU1zUlVGRGFrTXNUMEZCVVVVc1JVRkJUU3hEUVVOV0xFbEJRVXNzVDBGRFJHWXNSMEZCVHl4TlFVTlFMRTFCUTBvc1NVRkJTeXhQUVVORVFTeEhRVUZQTEUxQlExQXNUVUZEU2l4SlFVRkxMRTlCUTBSQkxFZEJRVThzVFVGRFVDeE5RVU5LTEVsQlFVc3NUMEZEUkVFc1IwRkJUeXhOUVVOUUxFMUJRMG9zU1VGQlN5eFBRVU5FUVN4SFFVRlBMRTFCUTFBc1RVRkRTaXhKUVVGTExFOUJRMFJCTEVkQlFVOHNUVUZEVUN4TlFVTktMRWxCUVVzc1QwRkRSRUVzUjBGQlR5eE5RVU5RTEUxQlEwb3NTVUZCU3l4UFFVTkVRU3hIUVVGUExFMUJRMUFzVFVGRFNpeFJRVU5SWlN4RlFVRkxMRTlCUVU4c1JVRkJSeXhEUVVGRExFbEJRVTBzUzBGRGRFSm1MRWRCUVU4c1RVRkJVV1VzUlVGQlN5eFBRVUZQTEVOQlFVTXNSVUZGTlVKbUxFZEJRVTlUTEVWQlFVc3NUMEZCVDBrc1JVRkJSeXhEUVVGRExFTkJRMjVETEVOQlEwRkJMRWRCUVVzc1JVRkRURkFzUlVGQlVVOHNSVUZCU1N4RFFVTm9RaXhEUVVOQkxFMUJRMG9zU1VGQlN5eEpRVU5FTEVkQlFVbElMRWRCUTBGRUxFVkJRVXRKTEVWQlFVa3NRMEZCUXl4SlFVRk5MRXRCUTJoQ1NpeEZRVUZMTEU5QlFWTkZMRVZCUTJSRkxFZEJRVXNzVFVGRlNpeERRVWRFTEVsQlJFRmlMRWRCUVU5VExFVkJRVXNzVFVGQlRVZ3NSVUZCVDA4c1EwRkJReXhGUVVGSk8wRkJRVUU3UVVGQlFTeEZRVU4yUWtvc1JVRkJTMGtzUlVGQlNTeERRVUZETEVsQlFVMHNUVUZEYmtKS0xFVkJRVXRKTEVWQlFVa3NRMEZCUXl4SlFVRk5MRXRCUTJoQ1NpeEZRVUZMU1N4RlFVRkpMRU5CUVVNc1NVRkJUU3hMUVVOb1FtSXNSMEZCVHp0QlFVRkJMRVZCUTFCaExFZEJRVXNzUlVGRlZHSXNSMEZCVDFrc1JVRkZTRWdzUlVGQlMwa3NSVUZCU1N4RFFVRkRMRWxCUVUwc1RVRkRhRUppTEVkQlFVOHNUVUZEV0dFc1IwRkJTeXhGUVVOTVVDeEZRVUZSVHl4RlFVRkpMRU5CUTJoQ0xFTkJRMEVzVFVGRFNpeFJRVU5KUVN4SFFVRkxMRU5CUTJJc1EwRkZVaXhQUVVGQllpeEZRVUZOVFN4RlFVRlJUaXhGUVVGTlV5eEZRVUZMTEUxQlFVMUlMRU5CUVVzc1JVRkJTVWNzUlVGRGFrTkRMRVZCUTBSV0xFVkJRMEZuUWl4SFFVRmphRUlzUlVGQlMxa3NSVUZCVVVzc1IwRkJZWEpDTEVkQlFXVkRMRVZCUVVzc1JVRkJTeXhEUVVGRExFTkJRelZGTEVOQlEwRXNVMEZCVTNGQ0xFZEJRVzFDVml4RlFVRlBXQ3hGUVVGTExFTkJRM0JETEVkQlFVbEJMRVZCUVVrc1VVRkJVU3hqUVVGblFpeEpRVU16UWtFc1JVRkJTU3hoUVVGbFZ5eEZRVUZOTEZOQlFWTTdRVUZCUVN4RFFVRkpMRWRCUTNaRExHdENRVUZyUWl4TFFVRkxRU3hEUVVGTExFVkJSVFZDTEU5QlFVOUVMRWRCUVcxQ1F5eEZRVUZQV0N4RFFVRkhMRVZCUTNoRExFbEJRVTFsTEVWQlFWTm1MRVZCUVVrc1UwRkJWMFVzUjBGQmRVSlRMRU5CUVVzc1JVRkJTU3hMUVVGUExFbEJReTlFVnl4RlFVRk5MRWxCUVUxWUxFVkJRVTBzVVVGQlVTeExRVUZOTEVsQlFVa3NSVUZCUlN4UlFVRlJMRTlCUVZFN1FVRkJRU3hGUVVGUFNTeERRVUZOTEVWQlFVVXNSVUZCU1N4SlFVTXZSU3hQUVVGUFppeEZRVUZKTEZsQlEweHpRaXhGUVVOQlNDeEhRVUZqUnl4RlFVRkxVQ3hGUVVGUlVTeEhRVUZYZUVJc1IwRkJaVU1zUlVGQlN5eEZRVUZMTEVOQlFVTXNRMEZETVVVc1EwRkRRU3hUUVVGVGQwSXNSMEZCWVdJc1JVRkJUMWdzUlVGQlN5eERRVU01UWl4SFFVRk5MRU5CUVVVc1dVRkJRWGxDTEVOQlFWa3NSVUZCU1hwQ0xFVkJRVWtzVVVGRGVFSXdRaXhGUVVOS0xFZEJRVWxFTEVsQlFXZENMRWRCUTJoQ1F5eEZRVUZMYUVJc1QwRkRTaXhEUVVORUxFbEJRVTFwUWl4RlFVRlphRUlzUlVGQlRTeFRRVUZUTEVkQlFVY3NSVUZET1VKcFFpeEZRVUZaYWtJc1JVRkJUU3hUUVVGVExFZEJRVWNzUlVGRGFFTm5RaXhIUVVGaExFTkJRVU5ETEVWQlEyUkdMRVZCUVV0TUxFZEJRMEZQTEVkQlFXRXNRMEZCUTBRc1JVRkRia0pFTEVWQlFVdG9RaXhIUVVWTVowSXNSVUZCUzBRc1JVRkJZMG9zUjBGQmNVSllMRVZCUTJoRUxFTkJRMEVzVDBGQlQyZENMRVZCUVVkbUxFVkJRVTlZTEVOQlFVY3NRMEZEZUVJc1EwRkhRU3hKUVVGSk5rSXNSMEZEU2l4SFFVRkpMRU5CUTBGQkxFZEJRVzFDTEVsQlFVa3NUMEZCVHp0QlFVRkJPMEZCUVVFN1FVRkJRU3hMUVVFd1FpeEhRVUZITEVOQlF5OUVMRTlCUTAxRExFVkJRVUVzUTBGRFJrUXNSMEZCYlVJc1kwRkRka0lzUTBGRFFTeFRRVUZUUlN4SFFVRlpMRU5CUVVVc1VVRkJRVU1zUlVGQlV5eExRVUZCUXl4RlFVRk5MRTFCUVVGMFFpeERRVUZOTEVWQlFVZFlMRVZCUVV0clF5eEZRVUZYUXl4RlFVRmhMRU5CUTNoRkxFZEJRVTBzUTBGQlJTeFhRVUZCUXl4RlFVRlpMR05CUVVGRExFVkJRV1VzVlVGQlFXaERMRU5CUVZVc1JVRkJTVXdzUlVGQlNTeFJRVWR5UkN4SFFVRkpMRU5CUVVOdlF5eEhRVUZqTEZsQlFWa3NTMEZCUzNwQ0xFTkJRVXNzUjBGQlN5eFJRVUZSTEV0QlFVdEJMRU5CUVVzc1JVRkROVVFzVDBGQlQyRXNSMEZCWVdJc1JVRkJUMWdzUTBGQlJ5eEZRVVZzUXl4SlFVRk5aU3hGUVVGVFppeEZRVUZKTEZOQlEyUkJMRVZCUVVrc2EwSkJRVzlDUlN4SFFVRjFRbE1zUTBGQlN5eEZRVUZKTEV0QlFVOHNTVUZET1VReVFpeEZRVUZWUml4SlFVRmxMRlZCUTNwQ0xFZEJRMEZCTEVsQlFXVXNWVUZCV1Vnc1NVRkJVMDBzUlVGQlR5eGhRVU4yUXl4SFFVTkJUaXhKUVVGVFRTeEZRVUZQTEdOQlExb3NSMEZEUVN4RFFVRkRia01zUjBGQmIwSlBMRVZCUVU5T0xFVkJRVmRWTEVWQlFVOHNUVUZCVFN4RlFVTnNSU3hIUVVGSkxFTkJRVU5LTEVWQlEwUXNUMEZCVHpKQ0xFVkJRVlU3UVVGQlFTeEZRVUZSTzBGQlFVRXNSVUZGTjBJc1NVRkJTVVVzUlVGRFFVTXNSVUZEU2l4SlFVRkxRU3hGUVVGWE9VSXNSVUZCVFN4UFFVRlJPRUlzUlVGQlZ5eEZRVUZITEVWQlFVVkJMRVZCUVZVc1EwRkRjRVFzU1VGQlRYaENMRVZCUVV0T0xFVkJRVTA0UWl4RlFVRlhMRU5CUVVNc1JVRkROMElzUjBGQlNYaENMRWxCUVU4N1FVRkJRU3hIUVVGUlFTeEpRVUZQTEV0QlFWRkJMRWxCUVU4c1NVRkRja01zUzBGRFVpeERRVU5CTEVsQlFVbDVRaXhGUVVGTkwwSXNSVUZCVFN4VlFVRlZPRUlzUTBGQlVTeEZRVU0xUWtVc1JVRkJWMFFzUlVGQlNTeFJRVUZSTzBGQlFVRXNRMEZCU1N4RlFVTTNRa01zU1VGQllTeEhRVU5pU0N4RlFVRlJMRWxCUlVnM1FpeEpRVUZWSzBJc1IwRkJUME1zU1VGQllVUXNSVUZCU1N4UFFVRlRMRWRCUTJoRVJpeEZRVUZSTEVsQlEwcE1MRWRCUTBGQkxFVkJRVmtzUjBGSGFFSkxMRVZCUVZFc1IwRkZVa1VzU1VGRFFTOUNMRVZCUVZGQkxFVkJRVTBzVFVGQlRTeEZRVUZITEVOQlFVTXJRaXhGUVVGSkxFMUJRVTBzUlVGRE9VSkJMRVZCUVVsQkxFVkJRVWtzVDBGQlV5eERRVUZETEVsQlFVMDdRVUZCUVN4SlFVTjRRa0VzUlVGQlRVRXNSVUZCU1N4TlFVRk5MRVZCUVVjc1JVRkJSU3hIUVVONlFrRXNSVUZCVFVFc1JVRkJTU3hSUVVGUllpeEhRVUZyUWl4TFFVRkxaQ3hEUVVGTkxFVkJRVVVzUjBGSGNrUXNTVUZCU1RaQ0xFVkJRV2xDTEVkQlEycENReXhGUVVOQlF5eEZRVUZoTEVkQlEycENMRWxCUVV0RUxFVkJRVmNzUlVGQlIwRXNSVUZCVjJ4RExFVkJRVTBzVDBGQlVTeEZRVUZGYTBNc1JVRkJWU3hEUVVOd1JDeEpRVUZOTlVJc1JVRkJTMDRzUlVGQlRXdERMRU5CUVZFc1JVRkRla0lzUjBGQlNUVkNMRWxCUVU4c1NVRkRVREpDTEVWQlFXbENMRmRCUTFvelFpeEpRVUZQTzBGQlFVRXNSVUZEV2paQ0xFVkJRV0ZFTEUxQlJXSXNUVUZEVWl4RFFVTkJMRWxCUVVsd1F5eEZRVUZSUlN4RlFVRk5MRlZCUVZVc1JVRkJSMjFETEVWQlFXRkVMRVZCUVZkRExFVkJRV0VzUlVGQlNVUXNRMEZCVVN4RlFVTTFSWEJETEVsQlEwRkZMRVZCUVZGQkxFVkJRVTBzVlVGQlZVWXNSVUZCVFN4TlFVRk5MRVZCUTNCRFFTeEZRVUZSUVN4RlFVRk5MRkZCUVZFc1QwRkJVU3hMUVVGTFRTeERRVUZOTEVWQlFVVXNSMEZITDBNc1NVRkJTV2RETEVkQlFWVlVMRVZCUVZVc1NVRkJUU3hOUVVGUlRTeEZRVVJ1UWpkQ0xFVkJRVk1zU1VGQlRTeEpRVU5yUXl4SlFVRk5lVUlzUlVGTk1VVXNSMEZNU1ZJc1NVRkRRV1VzUjBGQlZTeEpRVUZOVml4RlFVRmpUQ3hGUVVGUkxGRkJRVkVzWVVGQll5eEhRVUZITEVOQlFVTXNSVUZETlVSRkxFZEJRMEZCTEVWQlFWVXNSMEZGWkVrc1JVRkRRU3hQUVVGQk0wSXNSVUZCVVVFc1JVRkJUU3hSUVVGUkxFOUJRVkVzUzBGQlMwa3NRMEZCVFN4RlFVRkZMRVZCUTNCRExFZEJRVWRuUXl4RFFVRk5PMEZCUVVFc1JVRkJTMmhETEVOQlFVMHNSMEZCUjA0c1EwRkJTeXhIUVVGSFJTeERRVUZMTEVkQlFVY3JRaXhEUVVGSExFZEJSWEpFTDBJc1JVRkJVVUVzUlVGRFNDeFJRVUZSTEU5QlFWRTdRVUZCUVN4SFFVRk5MRVZCUTNSQ0xGRkJRVkVzYVVSQlFXdEVMRTFCUVUwc1JVRkZhRVVzVVVGQlVTeFBRVUZSTEV0QlFVdEpMRU5CUVUwc1JVRkJSU3hGUVVOc1F5eEpRVUZOYVVNc1JVRkJUemRDTEVkQlFXTXNSMEZCUjFZc1EwRkJTeXhIUVVGSFJTeERRVUZMTEVkQlFVY3JRaXhEUVVGSExFZEJRVWt6UWl4RlFVRlJhME1zUjBGQldXeEVMRWRCUVdWRExFVkJRVXNzUlVGQlNTeERRVUZETEVWQlEyeEhMRTFCUVU4c1IwRkJSeXRETEVOQlFVMDdRVUZCUVN4RlFVRkxhRU1zUTBGQlRTeEhRVUZIYVVNc1EwRkJTU3hGUVVOMFF5eERRVU5CTEZOQlFWTkZMRWRCUVZsRExFVkJRVTF1UkN4RlFVRkxhME1zUlVGQlYwTXNSVUZCWVN4RFFVTndSQ3hIUVVGTkxFTkJRVVVzUzBGQlFVWXNSVUZCVFN4TlFVRkJkRUlzUTBGQlRTeEZRVUZKZDBNc1JVRkRiRUlzUTBGQlJTeGhRVUZCUXl4RlFVRmpMRmxCUVVGMlF5eEZRVUZoTEU5QlFVRkZMRVZCUVZFc1YwRkJRWE5ETEVWQlFWa3NUMEZCUVVNc1EwRkJUeXhGUVVGSmRFUXNSVUZEYkVVc1IwRkJTMkVzUjBGQlpVWXNSVUZCVFN4VFFVRlRPMEZCUVVFc1EwRkJTU3hIUVVOc1F6SkRMRWRCUVZVc1YwRkJWeXhMUVVGTE0wTXNRMEZCU3l4RlFVTm9ReXhQUVVGUFlTeEhRVUZoWWl4RlFVRlBXQ3hEUVVGSExFVkJSV3hETEVkQlFVa3NRMEZCUTFjc1IwRkRSQ3h2UmtGQmIwWXNTMEZCUzBFc1EwRkJTeXhGUVU4NVJpeFBRVUZQUlN4SFFVRmxlVU1zUjBGQlZTeERRVUZETTBNc1JVRkJUU3hUUVVGVE8wRkJRVUVzUTBGQlNTeEZRVU01UTJFc1IwRkJZV0lzUlVGQlQxZ3NRMEZCUnl4RlFVTjJRaXRDTEVkQlFWbHZRaXhGUVVGTmJrUXNSVUZCUzJ0RExFVkJRVmRETEVOQlFWY3NSVUZGZGtRc1IwRkJTU3hEUVVGRGRFSXNSMEZEUkN4RFFVRkRlVU1zUjBGRFJISkNMRWxCUVZOTkxFVkJRVThzVDBGRGFFSTFRaXhGUVVGTkxGTkJRVk03UVVGQlFTeERRVUZKTEVWQlJXNUNMRTlCUVU5dlFpeEhRVUZaYjBJc1JVRkJUVzVFTEVWQlFVdHJReXhGUVVGWFF5eERRVUZYTEVWQlJYaEVMRWRCUVVscVF5eEhRVUYxUWxNc1EwRkJTeXhGUVVGSExFTkJReTlDTEVkQlFVbEpMRWxCUVZjc1IwRkRXQ3hQUVVGQlppeEZRVUZKTEdsQ1FVRnRRaXhIUVVOb1FpdENMRWRCUVZsdlFpeEZRVUZOYmtRc1JVRkJTMnRETEVWQlFWZERMRU5CUVZjc1JVRkZia1FzUjBGQlNYUkNMRWRCUVdWRkxFbEJRVmR6UXl4RlFVTXZRaXhQUVVGUE4wSXNSMEZCWVdJc1JVRkJUMWdzUTBGQlJ5eERRVVYwUXl4RFFVTkJMRWxCUVUxSExFVkJRVTFSTEVWQlFVMHNVVUZCVVN4UFFVRlJPMEZCUVVFc1JVRkJUMGtzUTBGQlRTeEZRVUZGTEVWQlNXcEVMRWRCUVVseFF5eEZRVUZqTEVOQlEyUXNTVUZCVFVjc1JVRkJVVU1zUjBGQlN5eERRWFpTTTBJc1NVRkJRVU1zUlVGMVVqaENMRTlCUVVGRUxFVkJRVWtzVTBGQlYwRXNSVUZCU1N4TlFVRlJMREpDUVVFeVFrTXNSVUZCUVVRc1JVRkJTU3hQUVVGS0xGbEJRVUZETEVWQlFWVXNTMEZCUzNSRUxFdEJRM0pHTEVOQlFVVXNUMEZCUVhWRUxFVkJRVkVzUzBGQlFVTXNRMEZCU3l4RlFVRkpNMFFzUlVGQlNTeEpRVUZKTEU5QlEycERMRWRCUVVreVJDeEZRVUZMTEV0QlFVdEtMRU5CUVVrc1IwRkJTMGNzUjBGQlFTeE5RVUZCUVN4RlFVRlJMRXRCUVV0SUxFZEJRMmhETEU5QlFVOHZRaXhIUVVGaFlpeEZRVUZQV0N4RFFVRkhMRU5CUTNSRExFTkJRMEVzVDBGQlQyRXNSVUZEUkZZc1JVRkRRV2RDTEVkQlFXTm9RaXhGUVVGTFdTeEZRVUZSVVN4SFFVRlhlRUlzUjBGQlpVTXNSVUZCU3l4RlFVRkxMRU5CUVVNc1EwRkRNVVVzUTBGRFFTeFRRVUZUTkVRc1IwRkJaMEpVTEVWQlFVMXVSQ3hGUVVGTGEwTXNSVUZCVjBNc1JVRkJZU3hEUVVONFJDeEhRVUZOTEVOQlFVVXNXVUZCUVhSQ0xFVkJRV0VzVDBGQlFYbERMRU5CUVU4c1JVRkJTWFJFTEVWQlF6RkNOa1FzUlVGQlN5eFBRVUZQVml4RlFVRkxMRTlCUVZVc1UwRkRNMEpCTEVWQlEwRXNUMEZCVHl4UFFVRlBMRU5CUVVNc1JVRkJSMEVzUlVGQlRTeERRVUZGTEUxQlFVOHNUMEZCVDBFc1JVRkJTeXhMUVVGTExFTkJRVVVzUTBGQlF5eEZRVU4yUkN4RFFVRkZMRXRCUVVGc1FpeERRVUZMTEVWQlFVbHJRaXhGUVVOWWJFSXNTVUZCVTAwc1JVRkJUeXhqUVVWYUxHdEVRVUZyUkN4TFFVRkxjMElzUlVGQlJ5eExRVUZMTEVsQlF5OUVOVUlzUlVGQlQwMHNSVUZCVHl4alFVVjBRaXhKUVVGTmRVSXNSVUZCWTBNc1IwRkJWU3hEUVVNeFFpeFBRVUZSUVN4RlFVRlBMRU5CUTFnc1MwRkJTM2hDTEVWQlFVOHNZVUZEV2l4TFFVRkxRU3hGUVVGUExHTkJRMUlzVDBGQlR6RkNMRWRCUVdWNVF5eEZRVU5vUWpsQ0xFZEJRV0Z4UXl4RlFVRkhMRTFCUVU4M1JDeERRVUZITEVWQlF6RkNLMElzUjBGQldUaENMRVZCUVVrM1JDeEZRVUZMYTBNc1JVRkJWME1zUTBGQlZ5eEZRVU55UkN4TFFVRkxTU3hGUVVGUExHRkJRMUlzVDBGQlR6ZENMRWRCUVcxQ2JVUXNSVUZCUnl4TlFVRlBOMFFzUTBGQlJ5eEZRVU16UXl4TFFVRkxkVU1zUlVGQlR5eGhRVU5TTEU5QlFVOXNRaXhIUVVGdFFuZERMRVZCUVVjc1RVRkJUemRFTEVOQlFVY3NSVUZETTBNc1MwRkJTM1ZETEVWQlFVOHNUVUZEVWl4UFFVRlBWeXhIUVVGWlZ5eEZRVUZKTjBRc1JVRkJTMnRETEVWQlFWZERMRU5CUVZjc1JVRkRkRVFzVVVGRFNTeFBRVUZQTEVsQlEyWXNRMEZEU2l4RlFVTkpZaXhGUVVGTmQwTXNSVUZCVnpkQ0xFTkJRVWtzUlVGRGVrSXNSMEZCU1Znc1NVRkJVU3hMUVVGTkxFTkJRMlFzUjBGQlRTeERRVUZGTEdWQlFVRXdReXhGUVVGblFpeHJRa0ZCUVVNc1EwRkJhMElzUlVGQlNXcEZMRVZCUVVrc1VVRkROVU5yUlN4RlFVRkxja1FzUjBGQlpXMUVMRWRCUVcxQ1F5eEZRVVUzUXl4SFFVUkJNME1zUlVGQlRYZERMRVZCUVZkSkxFTkJRVU1zUlVGRFpEVkRMRWxCUVZFc1MwRkRVaXhOUVVGTkxFbEJRVWtzVFVGQlRTeHRRMEZCYlVNMFF5eERRVUZETEVWQlFVVXNRMEZET1VRc1EwRkRRU3hQUVVGUE5VTXNRMEZEV0N4RFEyaFZRU3hUUVVGVE5rTXNSMEZCZFVKRExFVkJRVXRETEVWQlFWTXNRMEZETVVNc1NVRkJUVU1zUlVGQlRTeFBRVUZQTEU5QlFVOHNRMEZEZEVJc1YwRkJXU3hIUVVOYUxHTkJRV1ZETEVkQlEyWXNaVUZCWjBJc1MwRkRhRUlzYTBKQlFXMUNMRkZCUTI1Q0xGZEJRVmtzUzBGRFdpeHRRa0ZCYjBJc1IwRkRjRUlzSzBKQlFXZERMRWRCUTJoRExGTkJRVlVzVVVGRFZpeHpRa0ZCZFVJc1IwRkRka0lzVlVGQlZ5eEhRVU5ZTEZWQlFWY3NSMEZEV0N4blFrRkJhVUlzUjBGRGFrSXNVVUZCVXl4UFFVTlVMRmRCUVZrc1IwRkRXaXhaUVVGaExFdEJRMklzVVVGQlV5eFBRVU5VTEdsQ1FVRnJRaXhGUVVOMFFpeEZRVUZIU0N4RlFVRkpMRTlCUVU4c1owSkJRV2xDUXl4RFFVRlBMRVZCUTJ4RFJ5eEZRVU5LTEU5QlFWRkdMRVZCUVVrc1owSkJRV2xDTEVOQlEzcENMRWxCUVVzc1VVRkRSRVVzUlVGQlV5eEhRVU5VTEUxQlEwb3NTVUZCU3l4UFFVTkVRU3hGUVVGVExFZEJRMVFzVFVGRFNpeFJRVU5KUVN4RlFVRlRMRWxCUTJwQ0xFTkJRMEVzVFVGQlR5eERRVU5JTEZGQlFWTXNTVUZCU1N4SlFVTmlMRWxCUVVGS0xFVkJRMEVzYzBKQlFYVkNSU3hGUVVGSkxITkNRVUYzUWl4SlFVRk5MRWRCUTNwRUxFOUJRVkVzUjBGRFVpeFhRVUZaTEU5QlFVOUJMRVZCUVVrc1VVRkJWeXhUUVVGWExFbEJRVWtzVDBGQlQwRXNSVUZCU1N4TlFVRk5MRVZCUVVrc1MwRkRkRVVzVDBGQlFVVXNSVUZEUVN4UlFVRlRSaXhEUVVOaUxFTkJRMG9zUTBGRFFTeFRRVUZUUnl4SFFVRmhReXhGUVVGTlF5eEZRVUZOTEVOQk9VTnNReXhKUVVGQlF5eEZRVUZCUXl4RlFVRkJReXhGUVVGQlF5eEZRU3REU1N4SFFVRkpTaXhGUVVGTExFbEJRVXNzUTBGRFZpeEpRVUZOU3l4RlFVRlJUaXhGUVVGTExFOUJRVTlQTEVkQlFVdEJMRVZCUVVVc1RVRkJVVTRzUlVGQlN5eEhRVUZITEVWQlEycEVMRWRCUVVsTExFVkJRVTBzVDBGQlV5eEZRVU5tTEU5QlFVOUtMRVZCUVVGSkxFVkJRVTBzUzBGQlMwTXNSMEZCUzBFc1JVRkJSU3hUUVVGWFRpeEZRVUZMTEUxQlFVMHNTVUZCZUVNc1MwRkJRVU1zUlVGQk5rTkpMRVZCUVUwc1EwRkJReXhEUVVOdVJTeERRVU5CTEVsQlFVbEZMRVZCUTBGRExFVkJRMG9zUjBGQlNVTXNSVUZCVTFRc1EwRkJTU3hGUVVGSExFTkJRMmhDVVN4RlFVRk5VaXhGUVVGTExFMUJRMWdzU1VGQlNVc3NSVUZCVVU0c1JVRkJTeXhQUVVGUFR5eEhRVUZGTEVOQmVFUnNReXhKUVVGQlRDeEZRWGRFY1VNc1QwRkJRVUVzUlVGQlFVc3NSVUZCUlN4WFFVRkdMRmxCUVVGTUxFVkJRVUVzUzBGQlFVc3NSVUZCWVVVc1IwRkJTU3hGUVVNNVF5eEhRVUZKU0N4RlFVRk5MRTlCUVZNc1JVRkJSeXhEUVVOc1FpeEpRVUZOU3l4RlFVRlpUQ3hGUVVGTkxFOUJRVTlETEVkQlFVdEJMRVZCUVVVc1NVRkJTU3hGUVVOMFEwa3NSVUZCVlN4UFFVRlRMRWxCUTI1Q1RDeEZRVUZSU3l4RlFVTm9RaXhEUVVOQlNDeEhRVU5KVEN4RlFVRkJSeXhGUVVGTkxFdEJRVXRETEVkQlFVdEJMRVZCUVVVc1UwRkJWMDRzUlVGQlN5eE5RVUZOTEVsQlFYaERMRXRCUVVGRkxFVkJRVFpEUnl4RlFVRk5MRXRCUVV0RExFZEJRVXNzUTBGQlEwRXNSVUZCUlN4TlFVRk5MRU5CUXpsRkxFMUJSVWxGTEVWQlFVMVNMRVZCUTA1UExFVkJRVk5TTEVWQlFVc3NTMEZCUzA4c1IwRkJTMEVzUlVGQlJTeFhRVUZoUlN4aFFVRmxSaXhGUVVGRkxGTkJRVk1zUlVGRmNrVXNSMEZCU1N4RFFVRkRReXhGUVVGUkxFTkJRMVFzU1VGQlRVa3NSMEZCVDFBc1IwRkJRVVFzUlVGQlFVc3NSMEZCUVN4WlFVRkJRU3hGUVVGTExHTkJRVXdzV1VGQlFVd3NSVUZCYTBJc1QwRkJiRUlzUzBGQlFVTXNSVUZCTUVJc1QwRkJUMGtzUlVGRE9VTXNUVUZCVFN4SlFVRkpMRTFCUVUwc2QwSkJRWGRDUnl4RFFVRkpMRkZCUVZFc1EwRkRlRVFzUTBGRFFTeFBRVUZQU2l4RFFVTllMRU5CUlVFc1UwRkJVMHNzUjBGQlpVTXNSVUZCVFU0c1JVRkJVU3hEUVVGRkxGRkJRVUZQTEVWQlFWTXNTVUZCUVhKQ0xFTkJRVWtzUlVGQlJ5eERRVU53UkN4SFFVRkpMRU5CUVVOQkxFVkJRVWtzVjBGRFRDeE5RVUZQTEVkQlExZ3NTVUZCVFhOQ0xFVkJRVkVzUTBGQlF5eEZRVU5VUXl4SFFVRlZVQ3hGUVVGVFNTeERRVUZKTEVkQlFVdEpMRVZCUVdGS0xFTkJRVWtzU1VGQlRVRXNSVUZCU3l4UFFVTXhSRWNzUjBGQlZVVXNSMEZCWTBZc1EwRkJUU3hKUVVNNVFrWXNSVUZCVVN4SlFVRkpSU3hEUVVGTkxFVkJRMnhDUkN4RlFVRk5MRXRCUVVzc1NVRkJTVU1zUTBGQlRTeEZRVUZGTEVkQlJUTkNMRWxCUVUxSExFVkJRVTFPTEVWQlFVc3NTVUZCVFVFc1JVRkJTeXhKUVVGTlRpeEZRVUZQTEZGQlFWVXNTMEZCVDBFc1JVRkJUeXhKUVVOcVJTeFBRVUZKV1N4SFFVTkJTaXhGUVVGTkxFdEJRVXQwUWl4RlFVRkpMRmRCUVZjc1ZVRkJWVEJDTEVOQlFVY3NRMEZCUXl4RlFVTnlRMG9zUlVGQlRTeExRVUZMTEVkQlFVY3NRMEZEZWtJc1EwRkRRU3hUUVVGVFN5eEhRVUZWY0VJc1JVRkJUWEZDTEVWQlFVdERMRVZCUVZkRExFVkJRV0VzUTBFeFJuUkVMRWxCUVVGMFFpeEZRVUZCUXl4RlFUSkdTU3hIUVVGSmMwSXNSVUZCVDNoQ0xFTkJRVWtzUlVGRFdDeFBRVUZQUVN4RlFVRkxMRk5CUVZOeFFpeEZRVUZMUXl4RlFVRlhReXhEUVVGWExFVkJRM0JFTEVkQlFVbEZMRWRCUVZGNlFpeERRVUZKTEVWQlFVY3NRMEZEWml4SFFVRkpjVUlzUlVGQlNTeEpRVUZKTEZkQlExSXNUMEZCVDNKQ0xFVkJRVXNzVTBGQlUzRkNMRU5CUVVjc1JVRkROVUlzU1VGQlNYQkNMRVZCUVVGdlFpeEZRVUZKTEd0Q1FVRktMRTFCUVVGd1FpeEZRVUZ4UWl4SlFVRkpSQ3hIUVVONlFpeE5RVUZOTEVsQlFVa3NWVUZCVlN4NVJFRkJlVVFzUlVGSGVrVnhRaXhGUVVGSkxHZENRVU5LUVN4RlFVRkpMR2RDUVVGblFpeEpRVUZKY2tJc1EwRkJTU3hGUVVVMVFuRkNMRVZCUVVrc1owSkJRV3RDTEVsQlFVa3NTVUZCU1N4RFFVRkRja0lzUTBGQlNTeERRVUZETEVWQlEzaERRU3hGUVVGUFFTeEZRVUZMTEZGQlFWRnhRaXhGUVVGSkxFZEJRVWNzUTBGRmJrTXNRMEZEUVN4SlFVRkpaQ3hGUVVORlRTeEZRVUZQWVN4RlFVRlBNVUlzUTBGQlNTeEZRVU5zUWtFc1JVRkRRWEZDTEVWQlFVa3NTVUZCU1N4WFFVRlhja0lzUlVGQlRTeERRVUZGTEZOQlFWVXlRaXhIUVVGTmNFSXNSVUZCVTI5Q0xFTkJRVWNzUTBGQlF5eEZRVU42UkhCQ0xFbEJRMFJCTEVWQlFWTlVMRWRCUVdGMVFpeEZRVUZKTEVsQlFVa3NUMEZCVHl4TFFVRk5VaXhEUVVGSkxFZEJRMjVFTEVsQlFVMUZMRVZCUVZGSUxFZEJRV1ZETEVWQlFVMU9MRVZCUVZGakxFTkJRVWNzUlVGRE1VTk9MRVZCUVUwc1QwRkJVeXhKUVVObVRTeEZRVUZKTEdkQ1FVRnBRbTVDTEVWQlFVRnRRaXhGUVVGSkxHZENRVUZLTEV0QlFVRnVRaXhGUVVGeFFpeEhRVUZMWVN4RlFVRk5MRTlCUVZNc1IwRkRiRVVzU1VGQlRXRXNSVUZCVFN4UFFVRlBja0lzUlVGQlR5eFhRVUZqTEZkQlEyeERRU3hGUVVGUExGVkJRVlZOTEVWQlFVMVJMRVZCUVV0RExFVkJRVmRETEVOQlFWY3NSVUZEYkVSa0xFVkJRVk5KTEVOQlFVa3NSVUZEVkdkQ0xFZEJRV2RDYUVJc1JVRkJUVkVzUlVGQlMwTXNSVUZCVjBNc1EwRkJWeXhGUVVOcVJGWXNSVUZCU3l4VFFVRlRVU3hGUVVGTFF5eEZRVUZYUXl4RFFVRlhMRVZCUTI1RUxFOUJRVXRTTEVWQlJVVk9MRVZCUVZOSkxFTkJRVWtzUjBGQlMyVXNSVUZCU1N4RFFVRkRMRWxCUVUwc1MwRkJUMEVzUlVGQlNTeERRVUZETEVsQlFVMHNTVUZEYUVRc1IwRkJSMklzUTBGQlN5eEpRVUZKWVN4RFFVRkhMRWRCUTJZc1IwRkJSMklzUTBGQlN6dEJRVUZCTEVWQlFVdE5MRVZCUVVrc1RVRkJUU3hIUVVGSFR5eERRVUZITEVkQlNIaENRU3hEUVVsbUxFTkRla2hCTEZOQlFWTkZMRWRCUVdNc1EwRkJSU3hKUVVGQlF5eEZRVUZMTEUxQlFVRkRMRU5CUVUwc1JVRkJSME1zUlVGQlMwTXNSVUZCVjBNc1JVRkJZU3hEUVV4d1JTeEpRVUZCUXl4RlFVRkJReXhGUVUxSkxFZEJRVTBzUTBGQlJTeGpRVUZCUXl4RlFVRmxMRWxCUVVGRExFVkJRVXNzVDBGQlFVTXNSVUZCVVN4WFFVRkJReXhGUVVGWkxGRkJRVk1zUTBGQlJTeGpRVUZCUXl4RlFVRmxMRlZCUVVGRExFVkJRVmNzVjBGQlFVTXNRMEZCVnl4RFFVRkZMRVZCUVVsWUxFVkJRMnhIV1N4RlFVRmpReXhGUVVGUFppeERRVUZITEVkQlFVdEJMRVZCUVVrc1UwRkJXU3hMUVVOcVJDeEhRVUZKWVN4RlFVRlpMRU5CUTFvc1IwRkJTVU1zUlVGRFFTeE5RVUZOTEVsQlFVa3NUVUZCVFN4clJFRkJhMFFzUlVGRmRFVXNSMEZCU1VVc1JVRkJZV2hDTEVOQlFVY3NSMEZCVFN4RFFVRkRaU3hGUVVGUFppeERRVUZITEVkQlFVc3NUMEZCVDBFc1IwRkJVU3hUUVVGWExFTkJRMmhGTEVsQlFVMXBRaXhGUVVGTkxEWkVRVU5hTEUxQlFVMHNTVUZCU1N4TlFVRk5RU3hEUVVGSExFTkJRM1pDTEVOQlEwb3NRMEZEUVN4SlFVRkpReXhGUVVGakxFTkJRVU5NTEVsQlEyUXNRMEZCUTJJc1IwRkRSMk1zUjBGQlkySXNSMEZCVXl4TlFVRlJMRU5CUVVORExFVkJRVWtzVVVGRGNrTmpMRVZCUVdGb1FpeERRVUZITEVsQlEyWnRRaXhGUVVGVGJrSXNRMEZCUnl4RlFVTlFRU3hGUVVGSkxFOUJRVk52UWl4RlFVRlBMR05CUVdkQ2NFSXNSVUZCU1N4UFFVRlRiMElzUlVGQlR5eGpRVU40UkN4UFFVRlBjRUlzUjBGQlVTeFhRVU0zUWtVc1JVRkJUU3hQUVVGUExFOUJRVThzUTBGQlF5eEZRVUZIUVN4RlFVRkxMRU5CUTNwQ0xHTkJRV1VzUjBGRFppeFpRVUZoTEVOQlFVTm5RaXhKUVVGblFrd3NSMEZCWXl4RFFVRkRUaXhIUVVNM1F5eFBRVUZSUlN4RlFVRlRReXhEUVVOeVFpeERRVUZETEVWQlEwUXNTVUZCU1Zjc1JVRkJhVUlzUjBGRGFrSkRMRVZCUVZrc1IwRkRXa01zUlVGQlRVTXNSMEZCVlhoQ0xFVkJRVXRGTEVWQlFVc3NTVUZCVDIxQ0xFVkJRV2xDTEVkQlFVOHNTVUZCVDBNc1JVRkJXU3hGUVVGTExFVkJRM0pHTEVkQlFVa3NRMEZCUTBvc1IwRkJaU3hEUVVGRGFFSXNSVUZCU1N4UlFVRlZjVUlzUlVGQlNTeFBRVUZUTEV0QlFVMHNRMEZEYkVRc1IwRkJTVllzUlVGRFFTeE5RVUZOTEVsQlFVa3NUVUZCVFN3NFJVRkJPRVVzUlVGRGJFZExMRVZCUVdNc1JVRkRiRUlzUTBGRFFTeEhRVUZKYUVJc1JVRkJTU3hSUVVOS0xFZEJRVWxMTEVkQlFXbENUaXhIUVVGVExFdEJRekZDTEU5QlFVbHZRaXhIUVVGclFteENMRWRCUTJ4Q1FTeEZRVUZWTEVWQlExQnZRaXhKUVVGUkxFZEJRVXNzU1VGQlRVd3NSVUZCWXl4TFFVRkxTeXhEUVVGSExFZEJRVXRCTEZWQlIyNUVhRUlzUjBGQmFVSXNRMEZCUTAwc1IwRkJaMEphTEVkQlFWTXNUVUZCVVdsQ0xFVkJRM3BFTEU5QlFVRkxMRVZCUVUwc1MwRkJTMEVzUTBGQlJ5eEhRVU5XVkN4SFFVRmpMRU5CUVVOUExFVkJRMlpGTEVkQlFVOUZMRWRCUVZsR0xFVkJRVXR5UWl4RlFVRkpMRTlCUVZGVExFVkJRV05ITEVOQlFWVXNRMEZCUXl4RlFVVjRSRkVzUjBGQllXeENMRWRCUTJ4Q1FTeEZRVUZaTEVWQlExUnRRaXhGUVVWUVJpeEpRVU5CVUN4RlFVRmhMRTFCUTJKSkxFZEJRMGxLTEVsQlEwRlRMRWRCUVU5RkxFZEJRVmxHTEVWQlFVdHlRaXhGUVVGSkxFOUJRVkZUTEVWQlFXTkhMRU5CUVZVc1EwRkJReXhIUVVOcVJWTXNSVUZCVFN4TFFVRkxRU3hEUVVGSE8wRkJRVUVzUlVGQlMyUXNRMEZCVFN4TlFVZDZRbU1zUlVGQlRTeEhRVUZIUVN4RFFVRkhMRWxCUTFKVUxFbEJRMEZUTEVkQlFVOUZMRWRCUVZsR0xFVkJRVXR5UWl4RlFVRkpMRTlCUVZGVExFVkJRV05ITEVOQlFWVXNRMEZCUXl4SlFVVnlSU3hKUVVGSldTeEZRVUZMUXl4RlFVRkxReXhGUVVOV1lpeEZRVUZQWkN4RFFVRkxMRWRCUTFwNVFpeEZRVUZOTEVOQlFVTXNRMEZCUTNwQ0xFVkJRVTBzV1VGRFpEQkNMRVZCUVUweFFpeEZRVUZOTEdOQlExb3lRaXhGUVVGbE0wSXNSVUZCVFN4VlFVZHlRbmxDTEVWQlFVMHNSMEZEVGtNc1JVRkJUU3hMUVVOT1F5eEZRVUZsTEV0QlExZ3pRaXhIUVVGVExFOUJRVTlCTEVkQlFWVXNWMEZETVVKQkxFVkJRVkZQTEVWQlFVa3NWMEZCVjFBc1EwRkJTeXhKUVVWd1EwTXNSVUZCU1N4WlFVRmpMRWRCUTJRc1EwRkJRMmRDTEVkQlFXVXNRMEZCUTBvc1IwRkJZMHNzUlVGQlUyeENMRU5CUVVzc1NVRkROME5ETEVWQlFVa3NZMEZCWjBKeFFpeEZRVUZKTEU5QlFWTXNSMEZEY2tORUxFVkJRVmtzUjBGRFVpeERRVUZEVml4SFFVTkVSaXhGUVVGWExGRkJRVlVzUjBGRGNrSXNRMEZCUTFJc1JVRkJTU3hSUVVOTUxFTkJRVU5uUWl4SFFVTkVWeXhIUVVGTk5VSXNRMEZCU3l4SFFVTllMRU5CUVVOQkxFVkJRVTBzVFVGRFVDeERRVUZEUVN4RlFVRk5MRXRCUTFBc1EwRkJRMEVzUlVGQlRTeFRRVVZRUXl4RlFVRkpMRTlCUVZOQkxFVkJRVWtzVDBGQlR5eFZRVUZWTEVOQlFVTXNSMEZGZGtNc1NVRkJTVFJDTEVWQlFXMUNMRWRCUTJwQ1F5eEZRVUZYVUN4SFFVRlZka0lzUlVGQlQwTXNSVUZCU3l4SlFVRlBORUlzUlVGQmJVSXNSMEZCVHl4SlFVRlBVaXhGUVVGWkxFVkJRVXNzUlVGRE5VWlZMRVZCUVVzc1NVRkRWQ3hIUVVGSmJFSXNSMEZCWTFrc1IwRkJUME1zUlVGQlN5eERRVVV4UWl4SFFVUkJTeXhGUVVGTFRpeEZRVUZOTzBGQlFVRXNSVUZCVHl4SFFVTmtReXhGUVVGTExFTkJRMHdzU1VGQlRVMHNSVUZCUzNSQ0xFVkJRV05uUWl4RFFVRkhMRVZCUXpWQ1N5eEhRVUZOTzBGQlFVRXNSVUZCUzBVc1IwRkJZMFFzUlVGQlNTOUNMRVZCUVVrc1RVRkJUU3hEUVVGRExFVkJRelZETEVOQlEwazJRaXhKUVVGaExFbEJRVTBzUTBGQlF6ZENMRVZCUVVrc1QwRkRjRUk0UWl4SlFVRlBPMEZCUVVFc1NVRkRVRUVzUlVGQlN6dEJRVUZCTzBGQlFVRXNSMEZIVkVFc1IwRkJUVHRCUVVGQkxFVkJRVXM1UWl4RlFVRkpMRTFCUVUwc1JVRkZOMElzVTBGRFV5eERRVUZEWjBJc1IwRkJaVVlzUlVGQllXWXNRMEZCU3l4RlFVRkhMRU5CUXpGRExFbEJRVTFyUXl4RlFVRk5TaXhGUVVGVExFTkJRVU1zUlVGRGFFSkxMRVZCUVUxTUxFVkJRVk1zVVVGQlVUdEJRVUZCTEVOQlFVa3NSVUZETTBKTkxFVkJRV0ZFTEVsQlFWRXNSMEZEY2tKRkxFbEJRVTlvUXl4SFFVRkJSQ3hGUVVGQlNDeEZRVUZKTEZOQlFVb3NTMEZCUVVjc1JVRkJZMG9zUlVGQlRTeFBRVUZ3UWl4TFFVRkJTeXhGUVVFMFFrd3NSVUZCVFN4TlFVRk5MRk5CUVZjc1JVRkRhRVVzUjBGQlNXOURMRWRCUVdNc1EwRkJRME1zUjBGQlRTeERRVU55UWl4SlFVRkpReXhIUVVGbExFZEJRMjVDTEVkQlFVbEdMRWxCUVdWR0xFbEJRVkVzUzBGQlQwRXNTVUZCVVN4TFFVRk5MRU5CUXpWRExFbEJRVWxMTEVWQlFVMVVMRVZCUVZNc1VVRkJVU3hIUVVGSExFVkJRekZDU1N4SlFVRlJMRXRCUTFKTExFbEJRVkVzU1VGRFVrRXNSVUZCVFVvc1IwRkRUa3dzUlVGQlUxTXNSVUZCVFN4RFFVRkRMRWxCUVUwc1RVRkRkRUpCTEVWQlFVMVVMRVZCUVZNc1VVRkJVU3hKUVVGTFV5eEZRVUZOTEVOQlFVTXNTVUZGYmtOQkxFbEJRVkVzU1VGQlRVb3NSVUZCVFVrc1MwRkRjRUpFTEVkQlFXVXNSMEZEZGtJc1EwRkRTMEVzUzBGRFJGQXNSVUZCU3p0QlFVRkJMRVZCUVVzNVFpeEZRVUZKTEUxQlFVMHNSMEZETlVJc1EwRkRTaXhOUVVOVE5rSXNTVUZCWVN4SlFVRk5RU3hGUVVGVExFTkJRVU1zU1VGQlRUdEJRVUZCTEV0QlEzaERReXhGUVVGTExFbEJSVlFzVDBGQlFWUXNSMEZCVDFNc1JVRkJTMFFzUlVGRFVqZENMRVZCUVVrc1QwRkRRVFJDTEVkQlFXOUNNMElzUjBGRGNFSkJMRVZCUVZVc1JVRkZWSGxDTEVkQlFXZENMRU5CUVVORkxFVkJRM1JDVUN4SFFVRlBSU3hIUVVGWlJpeEZRVUZMY2tJc1JVRkJTU3hQUVVGUlV5eEZRVUZqYVVJc1EwRkJXU3hEUVVGRExFVkJSVEZFVGl4SFFVRmhiRUlzUjBGRGJFSkJMRVZCUVZrc1JVRkZWRzFDTEVOQlExZ3NRME12U1VFc1UwRkJVMnRDTEVkQlFVdERMRVZCUVZWRExFVkJRVk1zUlVGRGVrSkVMRWxCUVdFc1UwRkJWMEVzU1VGQllTeFZRVU5xUXl4UFFVRlBMRk5CUVZrc1lVRkJaU3hSUVVGUkxGbEJRekZETEZGQlFWRXNXVUZCV1VNc1EwRkJUeXhGUVVVelFpeFJRVUZSTEV0QlFVdEJMRU5CUVU4c1JVRkZhRU1zUTBORVFTeEpRVUZOUXl4SFFVRlpMRXRCUTFwRExFZEJRVkVzUTBGRFZpeFRRVUZWUXl4SFFVRlRRU3hKUVVGVlJpeEpRVU40UWl4UFFVRlBSU3hIUVVGVkxGVkJRVmxCTEVWQlFVMHNZMEZCWjBKR0xFZEJRM2hFTEZGQlFWTXNUVUZEVkN4SlFVRkxMREJDUVVOTUxFdEJRVTBzVDBGRFRpeFJRVUZUTEVsQlFVMHNUMEZCVHl4UFFVRlBMRWxCUVVsSExFVkJRVThzVDBGQlQwZ3NSVUZCVXl4RFFVRkRMRVZCUVVjc1EwRkRlRVFzVjBGQldVa3NSVUZEYUVJc1EwRkJReXhGUVVORUxGVkJRVmNzU1VGQlRVb3NSVUZEY2tJc1JVRkRUVXNzUjBGQllTeERRVUZEUXl4RlFVRkxReXhMUVVGVFRpeEhRVUZOTEZOQlFWTk5MRU5CUVVjc1IwRkRMME5ETEVWQlFWTkVMRU5CUVVjc1NVRkRVaXhEUVVGRFFTeEZRVUZKTEUxQlFWRkJMRVZCUVVrc1QwRkJVMG9zUlVGQlR5eFJRVU5zUTBZc1IwRkJUU3hUUVVGVFRTeEZRVUZKTEV0QlFVc3NTMEZETlVKRUxFZEJRVUVzV1VGQlFVRXNSVUZCU3l4SlFVRkpMRTlCUVU4c1MwRkJTeXhMUVVGTFJ5eEhRVUZQUVN4RlFVRkpMRTFCUVZGU0xFZEJRVTBzUzBGQlQxRXNSVUZCU1N4VlFVTnNSU3hUUVVGVFRDeEhRVUZuUWtVc1JVRkJTMGtzUlVGQlMxSXNSVUZCVHl4RFFVVjBReXhIUVVSQlFTeEZRVUZSU1N4SFFVRlBTeXhIUVVGUlZDeERRVUZMTEVWQlFVbEJMRVZCUVUwc1VVRkJVVWtzUlVGQlNTeEhRVUZITEVWQlFVbEtMRVZCUTNKRVZTeEhRVUZOVml4RFFVRkxMRVZCUTFnc1VVRkJWMWNzUzBGQlRWZ3NSVUZCVFN4TlFVTnVRbGtzUjBGQlYxSXNSVUZCUzBrc1JVRkJTMGNzUTBGQlJTeFZRVU4wUWl4TlFVRk5MRkZCUVZGWUxFTkJRVXNzUlVGRGVFSXNVVUZCVjFjc1MwRkJUVmdzUlVGRFlsa3NSMEZCVjFJc1JVRkJTMGtzUlVGQlMwY3NRMEZCUlN4UFFVVXpRa01zUjBGQlYxSXNSVUZCUzBrc1JVRkJTMUlzUTBGQlN5eERRVU5zUXl4RFFVTkJMRk5CUVZOWkxFZEJRVmRTTEVWQlFVdEpMRVZCUVV0U0xFVkJRVThzUTBGRGFrTXNTVUZCVFdFc1JVRkJVMVFzUjBGQlQwc3NSMEZCVVZRc1EwRkJTeXhGUVVGSlFTeEZRVUZOTEZGQlFWRkpMRVZCUVVrc1IwRkJSeXhGUVVGSlNpeEZRVU5vUlN4SFFVRkpMRU5CUVVOakxFZEJRVTFFTEVOQlFVMHNSVUZEWWl4TlFVRk5MRWxCUVVrc1RVRkJUU3d5UTBGQk1rTXNSVUZETDBRc1NVRkJUVVVzUlVGQlUwWXNSVUZCVHl4UFFVRlBMRXRCUVUxVUxFVkJRVXNzUjBGQlJ5eEZRVU16UXl4UFFVRlhMRU5CUVVORExFVkJRVXRNTEVOQlFVc3NTVUZCUzJVc1JVRkRia0pRTEdGQlFXVXNTVUZEVmtFc1JVRkJTU3hKUVVGSlNDeERRVUZITEVkQlExcEhMRVZCUVVrc1NVRkJTVWdzUlVGQlMwd3NRMEZCU3l4RlFVVnFRbEVzWVVGQlpTeEpRVU53UWtFc1JVRkJTU3hKUVVGSlNDeERRVUZITEVWQlJVd3NUMEZCVHl4VlFVRlZMR1ZCUVdVc1MwRkJTMGNzUlVGQlMwZ3NRMEZCUnl4SFFVTnVSQ3hQUVVGUExHVkJRV1ZITEVWQlFVdElMRVZCUVVzc1EwRkROVUlzVFVGQlFVd3NSVUZEUVN4VFFVRlZMRWRCUTFZc1YwRkJXU3hIUVVOYUxHRkJRV01zUlVGRGJFSXNRMEZCUXl4RlFVZFVMRTlCUVU5UkxFTkJRMWdzUTBOMlJFRXNVMEZCVTFFc1IwRkJaVU1zUlVGQlMwTXNSVUZCU3l4RFFVRkZMRWxCUVVGRExFVkJRVXNzVFVGQlFVTXNRMEZCVFN4RlFVRkhMRU5CUXpsRExFZEJRVWxETEVWQlFVOUdMRU5CUVVjc1IwRkJTMEVzUlVGQlNTeFhRVU51UWtFc1JVRkJTU3hYUVVGWFJpeEZRVUZMUXl4RlFVRkxSU3hEUVVGTExGVkJSWHBDUlN4SFFVRlhUQ3hGUVVGTFJTeERRVUZITEVWQlEzaENTU3hIUVVGblFrNHNSVUZCUzBNc1JVRkJTMFVzUTBGQlN5eE5RVU01UWl4RFFVTkVMRWxCUVUxSkxFVkJRVkZETEVkQlFVdE9MRVZCUVVzc1IwRkJTVVlzUTBGQlJ5eEZRVU12UWl4SFFVRkpReXhoUVVGbExFbEJRMlpCTEVWQlFVa3NTVUZCU1Uwc1JVRkJUME1zUjBGQlMwd3NSVUZCVDBrc1JVRkJUMUFzUTBGQlJ5eERRVUZETEZWQlJXcERReXhoUVVGbExFbEJRM0JDUVN4RlFVRkpMRWxCUVVsTkxFTkJRVXNzVFVGRldpeERRVU5FTEVsQlFVMUZMRVZCUVZsRExFZEJRV0ZTTEVWQlFVdExMRVZCUVU5UUxFTkJRVWNzUlVGRGVFTlhMRVZCUVZWSUxFZEJRVXRNTEVWQlFVOU5MRVZCUVZkVUxFTkJRVWNzUlVGRGRFTlRMRXRCUVdGU0xFVkJRMklzVDBGQlR5eGxRVUZsUVN4RlFVRkxVU3hGUVVGWExFTkJRMnhETEUxQlFVOUZMRVZCUTFBc1UwRkJWU3hIUVVOV0xGZEJRVmtzUjBGRFdpeGhRVUZqTEVWQlEyeENMRU5CUVVNc1JVRkZSRllzUlVGQlNWRXNRMEZCVXl4RlFVRkpSU3hEUVVONlFpeERRVU5LTEVOQlEwRXNUMEZCVDFZc1EwRkRXQ3hEUVVOQkxGTkJRVk5UTEVkQlFXRlNMRVZCUVV0TExFVkJRVTlRTEVWQlFVc3NRMEZEYmtNc1IwRkJTVThzU1VGQlZTeExRVU5XTEUxQlFVOHNSMEZEV0N4SFFVRkpMRTlCUVU5QkxFZEJRVlVzVTBGRGFrSXNUMEZCVHl4UFFVRlBRU3hEUVVGTExFVkJRM1pDTEVkQlFVbElMRVZCUVU5R0xFTkJRVWNzU1VGQlMwWXNSMEZCUVN4TlFVRkJRU3hGUVVGTExFdEJRVXNzUTBGRGVrSXNTVUZCVFZrc1JVRkJVME1zUjBGQmRVSmlMRVZCUVVrc1NVRkJTeXhEUVVGRExFTkJRVU1zUlVGRGFrUlpMRVZCUVU4c1VVRkJWU3hKUVVGSkxFbEJRM0pDTEZGQlFWZEZMRXRCUVZGa0xFVkJRVWtzVVVGQlVTeExRVUZMTEVWQlEyaERXU3hGUVVGUExGRkJRVkVzU1VGQlNVVXNSVUZCU3l4TlFVRk5MRVZCUTJ4RFJpeEZRVUZQTEU5QlFWTXNSMEZEYUVKQkxFVkJRVThzWlVGQmFVSXNSMEZEZUVJc1NVRkJUVWNzUlVGQlUySXNSVUZCU1N4VFFVRlRWU3hEUVVGTkxFVkJRMnhETEVkQlFVa3NRMEZCUTFvc1JVRkJTU3hoUVVGakxFTkJRMjVDTEVsQlFVbG5RaXhGUVVGVkxFdEJRVXNzVlVGQlZVUXNRMEZCVFN4RlFVTXZRa01zUlVGQlVTeFBRVUZUTEV0QlEycENRU3hGUVVGVlFTeEZRVUZSTEZWQlFWVXNSVUZCUnl4RlFVRkZMRVZCUVVrc1VVRkRla05ETEVkQlFVdHFRaXhGUVVGSkxFbEJRVWtzVVVGQlVTeFRRVUZWTEd0R1FVRnJSbWRDTEVOQlFVOHNNRU5CUVRCRExFVkJRMnhMYUVJc1JVRkJTU3hoUVVGbExFVkJRM1pDTEVOQlEwRXNUMEZCVDJVc1EwRkRXQ3hEUVVOQkxFOUJRVThzUzBGQlN5eFZRVUZWVWl4RFFVRkxMRU5CUXk5Q0xFTkRkRVJCTEZOQlFWTlhMRWRCUVZkRExFVkJRVXRETEVWQlFVOURMRVZCUVVzc1EwRkRha01zU1VGQlRVTXNSVUZCU1VNc1IwRkJWMG9zUlVGQlN5eFBRVUZYUlN4RFFVRkhMRVZCUTJ4RFJ5eEZRVUZKUkN4SFFVRlhTQ3hGUVVGUExFOUJRVmRETEVOQlFVY3NSVUZETVVNc1QwRkJUeXhKUVVGSlNTeEhRVUZMU0N4RlFVRkhSU3hEUVVGRExFTkJRM2hDTEVOQlEwRXNTVUZCVFVNc1IwRkJUaXhOUVVGTlF5eERRVUZMTEVOQlExQXNXVUZCV1ZBc1JVRkJTME1zUlVGQlVTeExRVUZOTEVOQlF6TkNMRTlCUVU4c1pVRkJaU3hMUVVGTlR5eEhRVUZYTEVOQlFVVXNUVUZCVDBNc1JVRkJTeXhEUVVGRExFVkJRM1JFTEV0QlFVc3NTVUZCVFZRc1JVRkRXQ3hMUVVGTExFMUJRVkZETEVOQlEycENMRU5CUTBFc1RVRkJUVk1zUlVGQlVTeERRVU5XTEVkQlFVa3NRMEZCUlN4SlFVRkJWaXhGUVVGTExFMUJRVUZETEVOQlFVMHNSVUZCU1N4TFFVTnlRaXhQUVVGSlZTeEZRVUZQV0N4RFFVRkhMRWxCUTFaQkxFVkJRVTFCTEVWQlFVa3NUVUZCVFZVc1EwRkJUU3hIUVVOMFFrTXNSVUZCVDFZc1EwRkJTeXhKUVVOYVFTeEZRVUZSUVN4RlFVRk5MRTFCUVUxVExFTkJRVTBzUjBGRGRrSXNTVUZCU1Vnc1JVRkJTMUFzUlVGQlMwTXNRMEZCU3l4RFFVTTVRaXhEUVVOQkxFOUJRVTlYTEVWQlFVZFdMRVZCUVVzc1EwRkRXQ3hKUVVGTlZ5eEZRVUZQV0N4SFFVRkJMRTFCUVVGQkxFVkJRVXNzVTBGQlZ5eEpRVUZKTEVsQlFWRXNRMEZCUXl4RlFVTXhReXhQUVVGUFdTeEhRVUZsV2l4RlFVRkxWeXhGUVVGTkxFbEJRVWtzUTBGRGVrTXNRMEZEUVN4VFFVRlRXQ3hGUVVGTFlTeEZRVUZYUXl4RlFVRmhMRU5CUTJ4RExFOUJRVTlrTEVkQlFVRXNUVUZCUVVFc1JVRkJTeXhKUVVOT1pTeEhRVUZqTEV0QlFVMW1MRVZCUVV0aExFVkJRVmRETEVOQlFWY3NSVUZETDBNc1MwRkJTeXhWUVVGVkxFbEJRVWtzUTBGRE4wSXNRMEZEU2l4RlF6ZENRU3hUUVVGVFJTeEhRVUZ2UWtNc1JVRkJXVU1zUlVGQlMwTXNSVUZCVXl4RFFVcDJSQ3hKUVVGQlF5eEZRVTlKTEZOQlJtRkJMRVZCUVVGR0xFVkJRVWtzVTBGQlNpeExRVUZCUlN4RlFVRmpTQ3hGUVVGWExFMUJRMkpKTEVkQlFUQkNReXhKUVVOc1Ewd3NSVUZCV1VNc1JVRkJTME1zUTBGQlR5eERRVU0zUXl4RFFVTkJMRk5CUVZOSExFZEJRWGxDTEVOQlFVVXNVVUZCUVVNc1JVRkJVeXhOUVVGQlF5eERRVUZOTEVWQlFVZE9MRVZCUVVzc1EwRkJSU3huUWtGQlFVOHNSVUZCYVVJc1ZVRkJRVU1zUlVGQlZ5eFhRVUZCUXl4RlFVRlpMRmxCUVVGRExFVkJRV0VzVlVGQlFVTXNRMEZCVlN4RlFVRkhMRU5CUXpOSUxFZEJRVTBzUTBGQlJTeFBRVUZCUXl4RlFVRlJMRkZCUVZNc1EwRkJSU3hqUVVGQlF5eERRVUZqTEVOQlFVVXNSVUZCU1dJc1JVRkRla05qTEVWQlFWVXNUMEZCVHl4UFFVRlBMRU5CUVVNc1JVRkJSMlFzUlVGQlN5eERRVUZGTEU5QlFWRlRMRVZCUVZrc1MwRkJUU3hKUVVGTExFTkJRVU1zUlVGRGNrVk5MRVZCUVZrc1IwRkRWa01zUlVGQlVTeERRVUZETEVWQlEyWXNVVUZCVTBNc1JVRkJTU3hGUVVGSFFTeEZRVUZKV0N4RlFVRk5MRTlCUVZFc1JVRkJSVmNzUlVGQlJ5eERRVU51UXl4SlFVRk5ReXhGUVVGUFdpeEZRVUZOVnl4RFFVRkRMRVZCUTJoQ1dpeEZRVUZWTEV0QlEyUXNSMEZCU1dNc1JVRkJUMFFzUTBGQlNTeEZRVU5RTEVOQlFVTklMRWRCUVdGSExFVkJRVXNzWVVGRGJrSkdMRVZCUVUwc1MwRkJTeXhGUVVGRkxFVkJRMnBDU1N4SFFVRnBRbkJDTEVWQlFVdG5RaXhGUVVGUFJTeEZRVUZMTEdOQlFXVklMRU5CUVZNc1JVRkRkRVJITEVWQlFVc3NWVUZEVEdJc1JVRkJWV0VzUlVGQlN5eHBRa0ZGWkVjc1JVRkJUMGdzUTBGQlNTeEZRVUZITEVOQlEyNUNMRWxCUVUxSkxFVkJRVXRJTEVWQlFVOUVMRVZCUVVzc1IwRkJSeXhGUVVGSlFTeEZRVUZMTEVsQlFVMHNTMEZEY2tOSkxFbEJRMGtzUTBGQlExQXNSMEZCWVU4c1JVRkJSeXhoUVVOcVFrNHNSVUZCVFN4TFFVRkxMRVZCUVVVc1JVRkRha0pKTEVkQlFXbENjRUlzUlVGQlMyZENMRVZCUVU5TkxFVkJRVWNzWTBGQlpWQXNRMEZCVXl4RlFVVm9SU3hEUVVOQlFTeEZRVUZaTEVkQlExb3NTVUZCU1ZFc1JVRkJUVU1zUjBGQlZVNHNSVUZCVFVvc1JVRkJVeXhKUVVGUFZDeEZRVUZWTEV0QlFVOHNTVUZCVDFVc1JVRkJXU3hGUVVGTExFVkJReTlGVml4SlFVTkJhMElzUjBGQlQwVXNSMEZCV1VZc1JVRkJTMlFzUlVGQldVa3NSVUZCWTFJc1EwRkJUeXhEUVVGRExFZEJRekZFVlN4SFFVRmhWaXhKUVVOaVZTeEZRVUZaTEVsQlEyaENReXhGUVVGTkxFdEJRVXRVTEVWQlFXdENaMElzUTBGQlJ5eERRVU53UXl4RFFVTkJMRWxCUVVsQkxFVkJRMG9zUjBGQlNWQXNSVUZCVFN4VFFVRlhMRVZCUTJwQ1R5eEZRVUZOWml4RlFVRlZMRTFCUVZGQkxFVkJRVlVzVVVGRmFrTXNRMEZEUkdVc1JVRkJUVkFzUlVGQlRTeERRVUZETEVWQlEySXNVVUZCVTBNc1JVRkJTU3hGUVVGSFFTeEZRVUZKUkN4RlFVRk5MRTlCUVZFc1JVRkJSVU1zUlVGQlJ5eERRVU51UXl4SlFVRk5VeXhGUVVGUFZpeEZRVUZOUXl4RFFVRkRMRVZCUTNCQ1RTeEhRVUZQUnl4RlFVRlBPMEZCUVVFc1JVRkJTMlFzUTBGQlRTeEhRVUZIWXl4RFFVRkpMRWRCUVVzN1FVRkJRU3hEUVVONlF5eERRVU5LTEVOQlEwRXNUMEZCU1hKQ0xFZEJRMEZyUWl4SFFVRlBPMEZCUVVFc1JVRkJUMGtzUjBGQlkyUXNSVUZCWTFJc1EwRkJUeXhGUVVGSFR5eERRVUZOTEVWQlEzUkVSQ3hIUVVOQlFTeEZRVUZWTEVkQlJWUkpMRWRCUVdGTUxFZEJRMnhDUVN4RlFVRlpMRVZCUTFSaExFTkJRMWdzUTBGRFFTeFRRVUZUY0VJc1IwRkJkMElzUTBGQlJTeE5RVUZCUnl4RFFVRk5MRVZCUVVkT0xFVkJRVXNzUTBGQlJTeFZRVUZCVVN4RlFVRlhMRmRCUVVGRExFTkJRVmNzUlVGQlJ5eERRVU40UlN4SFFVRk5MRU5CUVVVc1QwRkJRVWNzUlVGQlVTeFhRVUZCWjBJc1JVRkJXU3h6UWtGQmRVSkRMRVZCUVZjc1VVRkJVeXhEUVVGRkxHTkJRVUZvUWl4RFFVRmpMRU5CUVVVc1JVRkJTV0lzUlVGRE4wWlRMRWRCUVdOdFFpeEZRVU5rTEVsQlFVMWtMRVZCUVZVc1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlIyUXNSVUZCU3l4RFFVTnVReXhQUVVGUlV5eEZRVU5TTEU5QlFWRXNSMEZEVWl4TFFVRk5MRWxCUTFZc1EwRkJReXhGUVVOSGNVSXNSVUZCWVN4SFFVTmlReXhGUVVGbExFVkJRMkptTEVWQlFWRXNRMEZCUXl4RlFVTm1MRkZCUVZORExFVkJRVWtzUlVGQlIwRXNSVUZCU1Znc1JVRkJUU3hQUVVGUkxFVkJRVVZYTEVWQlFVY3NRMEZEYmtNc1NVRkJUVU1zUlVGQlQxb3NSVUZCVFZjc1EwRkJReXhGUVVOb1Fsb3NSVUZCVlN4TFFVTmtMRWRCUVVsakxFVkJRVTlFTEVOQlFVa3NSVUZEVUVFc1JVRkJTeXhoUVVOTVJpeEZRVUZOTEV0QlFVc3NSVUZCUlN4RlFVTnFRa2tzUjBGQmFVSndRaXhGUVVGTFowSXNSVUZCVDBVc1JVRkJTeXhqUVVGbExFVkJRVXNzUlVGRGJFUkJMRVZCUVVzc1ZVRkRUR0lzUlVGQlZXRXNSVUZCU3l4cFFrRkZaRWNzUlVGQlQwZ3NRMEZCU1N4RlFVRkhMRU5CUTI1Q0xFbEJRVTFKTEVWQlFVdElMRVZCUVU5RUxFVkJRVXNzUjBGQlJ5eEZRVUZKUVN4RlFVRkxMRWxCUVUwc1MwRkRja05KTEVsQlEwbEJMRVZCUVVjc1lVRkRTRTRzUlVGQlRTeExRVUZMTEVWQlFVVXNSVUZEYWtKSkxFZEJRV2xDY0VJc1JVRkJTMmRDTEVWQlFVOU5MRVZCUVVjc1kwRkJaU3hGUVVGTExFVkJRMmhFUVN4RlFVRkhMRlZCUTBoUkxFVkJRV0VzUzBGRmNrSXNTVUZCVFVVc1JVRkJTMklzUlVGQlQwUXNSVUZCU3l4TFFVRkxMRVZCUVVsQkxFVkJRVXNzVFVGQlVTeExRVU42UTJNc1IwRkRTVUVzUlVGQlJ5eFZRVU5JTTBJc1JVRkJWVEpDTEVWQlFVY3NVMEZEWWtFc1JVRkJSeXhuUWtGRFNFWXNSVUZCWVN4TFFVVmFXaXhGUVVGTExFOUJRVk1zVDBGQlVVa3NSMEZCUVN4TlFVRkJRU3hGUVVGSkxGZEJReTlDYWtJc1JVRkJWV2xDTEVWQlFVY3NVVUZGY2tJc1EwRkRTV3BDTEVsQlEwRjVRaXhGUVVGaExFbEJRMnBDTEVsQlFVbFFMRVZCUVUxRExFZEJRVlZPTEVWQlFVMUtMRVZCUVZNc1NVRkJUMVFzUlVGQlZTeEpRVUZMTEVWQlEzSkVXU3hGUVVGSldDeEZRVUZOTEU5QlFWTXNTVUZEYmtKcFFpeEhRVUZQTEV0QlExQnNRaXhKUVVOQmEwSXNSMEZCVDBVc1IwRkJXVVlzUlVGQlMyUXNSVUZCV1Vrc1JVRkJZMUlzUTBGQlR5eERRVUZETEVkQlF6RkVMRU5CUVVONVFpeEpRVUZsWkN4RlFVRk5MRTlCUVZObExFZEJRV2RDVWl4RlFVRkpMRk5CUVZNN1FVRkJRU3hEUVVGSkxFdEJRMmhGVHl4RlFVRmhMRWxCUTJwQ1pDeEZRVUZOTEV0QlFVdFBMRU5CUVVjc1JVRkRaRkVzUlVGQlpXWXNSVUZCVFN4TlFVTjZRaXhEUVVOQkxFZEJRVTBzUTBGQlJTeE5RVUZCYVVJc1JVRkJUeXhKUVVGQlF5eERRVUZKTEVWQlFVa3hRaXhGUVVOMlFpeEhRVUZKVVN4RlFVRk5MRk5CUVZjc1JVRkRha0lzVDBGQlQybENMRVZCUVZGRExFVkJSMllzUjBGQlNTeERRVUZEU2l4RlFVRlpMRU5CUTJJc1NVRkJUVXNzUlVGQlRXNUNMRVZCUVUwc1QwRkJUeXhEUVVGRGIwSXNSVUZCUzFZc1NVRkJVMVVzUlVGQlRWWXNSVUZCU3l4UFFVRlRMRVZCUVVjc1EwRkJReXhGUVVOb1JVa3NSVUZCWVRsQ0xFVkJRVWtzVVVGQlVTeFZRVUZaTEVkQlFVdHRReXhGUVVGTmJrTXNSVUZCU1N4UlFVRlJMRk5CUTJoRkxFTkJRMEVzUjBGQlNUaENMRVZCUVZrc1EwRkRXaXhKUVVGSlVDeEZRVUZOVlN4RlFVTldMRkZCUVZkUUxFdEJRVkZXTEVWQlEyWlBMRWRCUVU5SExFVkJRVTg3UVVGQlFTeEZRVUZMUlN4RFFVRlZMRWRCUVVkb1FpeERRVUZOTEVkQlFVZGpMRU5CUVVrc1IwRkJTenRCUVVGQkxFVkJRM1JFTEUxQlFVOHNSMEZCUjBnc1EwRkJSenRCUVVGQkxFVkJRVXRZTEVOQlFVMHNSMEZCUjNOQ0xFTkJRVWNzUlVGRGJFTXNTMEZGU1N4UFFVRlBMRWRCUVVkRUxFTkJRVXNzUjBGQlIwb3NRMEZCVXl4SFFVRkhZaXhGUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVkQlFVZGhMRU5CUVZNc1IwRkJSMHNzUTBGQlJ5eEZRVWN6UlN4RFFVTkJMRk5CUVZOa0xFZEJRV2xDTEVOQlFVVXNUMEZCUVZJc1JVRkJVU3hSUVVGVExFTkJRVVVzWTBGQlFVTXNRMEZCWXl4RFFVRkZMRVZCUVVkSExFVkJRVTlZTEVWQlFWTlZMRVZCUVZjc1EwRkhla1lzUjBGR1NWWXNSMEZCVjFVc1NVRkRXRllzUlVGQlZVRXNSVUZCVVN4UlFVRlJMRTlCUVZFc1JVRkJSU3hIUVVOd1EwRXNSVUZCVXl4RFFVTlVMRWxCUVUxblF5eEZRVUZMVml4SFFVRmpaQ3hGUVVGalVpeERRVUZQTEVWQlFVZFBMRU5CUVUwc1JVRkRka1JKTEVWQlFVMHNTMEZCUzNGQ0xFVkJRVWNzVlVGQlZTeERRVUZETEVOQlF6ZENMRU5CUTBvc1EwTnlTVUVzVTBGQlUwTXNSMEZCVTBNc1JVRkJUME1zUlVGQlN5eERRVU14UWl4SlFVRk5ReXhGUVVGSlF5eEZRVUZUUml4RFFVRkhMRVZCUVVsQkxFVkJRVWtzVFVGQlVVRXNSVUZEZEVNc1VVRkJWMGNzUzBGQlRVb3NSVUZEWWl4SFFVRkpTeXhGUVVGUFJDeERRVUZGTEVsQlEweEJMRVZCUVVjc1RVRkJVVWdzUjBGQlQwY3NSVUZCUnl4TlFVRlJSaXhIUVVVM1FrTXNSVUZCVTBNc1JVRkJSeXhIUVVGSExFZEJRVXRCTEVWQlFVY3NTVUZCU1N4UlFVRlZSaXhIUVVOeVF5eFBRVUZQUlN4RFFVbDJRaXhEUVVOQkxFbEJRVTFGTEVkQlFVNHNZMEZCYzBKRExFVkJRVmNzUTBGRE4wSXNWMEZCVnl4VFFVRlZMRU5CUTJwQ0xFMUJRVThzZFVKQlExZ3NRMEZEUVN4WlFVRlpReXhGUVVGUkxFTkJRMmhDTEUxQlFVMURMRWRCUVV0RUxFTkJRVTBzUlVGRGFrSXNTMEZCU3l4TlFVRlJMRU5CUVVNc1EwRkRiRUlzUTBGTFFTeFBRVUZQTEV0QlFVdEJMRVZCUVZGRkxFVkJRVXRETEVWQlFVc3NRMEZETVVJc1IwRkJUU3hEUVVGRkxHTkJRVUZETEVWQlFXVXNVMEZCUVVNc1EwRkJVeXhGUVVGSlJpeEZRVU01UWtjc1JVRkJUU3hKUVVGSkxFdEJRVXRPTEVOQlFVMHNSVUZEY2tKUExFVkJRVTBzUTBGQlEyUXNSVUZCUzJVc1NVRkJWU3hEUVVONFFpeEhRVUZKTEU5QlFVOUlMRWRCUVdFc1YwRkRjRUpITEVWQlFWRklMRVZCUVZNc1MwRkJTMGdzUlVGQlMxUXNSVUZCUzJVc1EwRkJTeXhWUVVOb1F5eE5RVUZOTEZGQlFWRklMRU5CUVZFc1IwRkJTeXhEUVVGRFFTeEZRVUZUTEZOQlFWTmFMRU5CUVVjc1JVRkRkRVFzVVVGRFFXVXNTVUZCVlN4UlFVRmhTaXhKUVVOMlFrVXNSVUZCU1N4TlFVRk5MRXRCUVV0SExFZEJRVmRvUWl4RlFVRkxaU3hGUVVGUFRDeERRVUZITEVOQlFVTXNRMEZEYkVRc1JVRkRRU3hIUVVGSlJDeGhRVUZsTEVsQlEyWXNUMEZCVnl4RFFVRkRWQ3hGUVVGTFpTeERRVUZMTEVsQlFVdE9MRVZCUTNaQ1N5eEZRVUZKWkN4RlFVRkxaU3hEUVVGTExGVkJSV0pPTEVkQlFVOHNUMEZCVDBFc1IwRkJVU3hUUVVNelFpeFJRVUZYVkN4TFFVRlBMRTlCUVU4c1MwRkJTMU1zUTBGQlJ5eEZRVU0zUWtzc1JVRkJTV1FzUlVGQlMxTXNSVUZCU1ZRc1EwRkJSeXhEUVVGRExFVkJSWHBDTEU5QlFVa3NUMEZCVDA4c1JVRkJUeXhuUWtGQmJVSXNXVUZEYWtOTkxFVkJRVWtzVFVGQlRTeExRVUZMVGl4RlFVRlBMR05CUVdNc1JVRkZha05OTEVOQlExZ3NRMEZQUVN4SlFVRkpTU3hGUVVGTlF5eEZRVUZYTEVOQk4wUjZRaXhKUVVGQlF5eEZRVGhFVVN4SlFVRkpReXhGUVVOQmFFSXNSVUZCVDJFc1EwRkJTU3hGUVVOWVJ5eEZRVUZSU0N4RlFVTklMRU5CUVVOQkxFZEJRVkVzVDBGQlQwRXNSMEZCVXl4VlFVRlpMRVZCUVVVc1VVRkJVMEVzUjBGRmNrUkhMRVZCUVZFc1NVRkJTVU1zUjBGQlMwb3NSVUZCVFVFc1IwRkJRU3haUVVGQlFTeEZRVUZOTEV0QlFVc3NSVUZIYkVOSExFVkJRVkVzU1VGQlNVTXNSMEZCUzBvc1JVRkJTeXhKUVVGTFFTeEZRVUZMTEV0QlFVc3NSVUZEZWtNc1NVRkJUVXNzUlVGQlQzaENMRWRCUVZNc1MwRkJTeXhOUVVGUGMwSXNSVUZCVFN4SFFVRkhMRVZCUTNKRFJ5eEhRVUZqU2l4RlFVRkJMRXRCUVVzc1UwRkJUQ3haUVVGQlFTeEZRVUZoTEdWQlEycERMRWRCUVVsSExFVkJRVTBzUTBGRFRpeEhRVUZKTEVOQlFVTktMRVZCUTBRc1RVRkJUU3hKUVVGSkxFMUJRVTBzVDBGQlQwVXNSVUZCVFN4SFFVRkhMR05CUVdNc1JVRkZPVU5zUWl4RlFVRlRiMElzUlVGQlN5eExRVUZMTEVkQlFVdEZMRWRCUVdOS0xFVkJRVTBzUzBGQlN5eEZRVU5xUkVVc1JVRkJTeXhOUVVGTkxFMUJRVkZHTEVWQlFVMHNUVUZGZWtKRkxFVkJRVXNzVFVGQlVVWXNSVUZCVFN4TFFVTXpRaXhUUVVOVFJ5eEZRVUZoTEVOQlEyeENMRWxCUVUxRkxFVkJRVWtzUzBGQlN5eE5RVUZOTEZWQlFWVkRMRWRCUVZGSUxFVkJRVmxJTEVWQlFVOU5MRU5CUVVrc1JVRkJTU3hEUVVGRExFVkJReTlFUkN4SlFVRk5MRWRCUTA0c1MwRkJTeXhOUVVGTkxFdEJRVXRNTEVOQlFVc3NSVUZGY2tJc1MwRkJTeXhOUVVGTkxFOUJRVTlMTEVWQlFVY3NSVUZCUjB3c1EwRkJTeXhEUVVOeVF5eE5RVVZKTEV0QlFVc3NUVUZCVFN4TFFVRkxRU3hEUVVGTExFTkJSVGRDTEVOQlEwRXNUMEZCVDNCQ0xFVkJRVXNzUTBGRFVpeEpRVUZOUnl4RlFVRkxUQ3hIUVVGVExFdEJRVXNzVFVGQlQwVXNRMEZCUnl4RlFVTnVReXhQUVVGTFJ5eEZRVVZQTEV0QlFVc3NUVUZCVFN4UFFVRlBMRXRCUVVzc1RVRkJUU3hSUVVGUlFTeERRVUZGTEVWQlFVY3NRMEZCUXl4RlFVTTFReXhQUVVGVExFVkJSbFFzUlVGSFppeERRVU5CTEVsQlFVbElMRVZCUVVzeVFpeEZRVUZaTEVOQmNFZDZRaXhKUVVGQlVpeEZRWEZIVVN4SlFVRk5hRUlzUlVGQlMwd3NSMEZCVXl4TFFVRkxMRTFCUVU5RkxFTkJRVWNzUlVGRE4wSTBRaXhGUVVGUGVrSXNSMEZCUVN4WlFVRkJRU3hGUVVGSkxFMUJRMnBDTEU5QlFWRm5RaXhGUVVGQkxFTkJRVU5STEVkQlFXTjZRaXhGUVVGVE1FSXNRMEZCU1N4RlFVRkpRU3hGUVVGTExFMUJRVkZCTEVsQlFUZERMRXRCUVVGVUxFVkJRWE5FTEUxQlEyeEZMRU5CUTBFc1NVRkJTVzVDTEVWQlFVc3NRMEZEVEN4TlFVRlBMRU5CUVVNc1EwRkJRMFlzUjBGQlV5eExRVUZMTEUxQlFVOUZMRU5CUVVjc1EwRkRja01zUTBGRFFTeEpRVUZKUVN4RlFVRkxaU3hGUVVGUExFTkJRMW9zUzBGQlN5eEpRVUZKTEVsQlFVbE5MRWRCUVV0eVFpeEZRVUZMWlN4RFFVRkxMRVZCUVVjc1JVRkJTU3hEUVVOMlF5eERRVTFCTEU5QlFVOWpMRVZCUVVkdVFpeEZRVUZMYjBJc1JVRkJUU3hEUVVOcVFpeEpRVUZOYWtJc1JVRkJUV2xDTEVWQlFVOHNTVUZCU1VFc1JVRkJVM0JDTEVkQlFVRXNUVUZCUVVFc1JVRkJTeXhUUVVGWExFbEJRVWtzU1VGQlVTeERRVUZETEVWQlEzcEVRU3hIUVVGQkxFMUJRVUZCTEVWQlFVc3NWVUZEVEVFc1JVRkJTU3hUUVVGVFJ5eERRVUZITEVWQlEzQkNMRkZCUVZkaExFdEJRVkVzUzBGQlN5eE5RVU53UWtzc1IwRkJaWEpDTEVWQlFVdEhMRVZCUVV0aExFTkJRVWtzUlVGRGFrTXNUMEZCVDJJc1EwRkRXQ3hEUVVOQkxGTkJRVk5JTEVWQlFVdHpRaXhGUVVGWFF5eEZRVUZoTEVOQlEyeERMRWRCUVVrc1EwRkJRM1pDTEVWQlEwUXNUMEZCVHl4TFFVRkxMRlZCUVZVc1NVRkJTU3hGUVVNNVFpeFJRVUZYWjBJc1MwRkJVU3hMUVVGTExFMUJRM0JDTEVkQlFVa3NRMEZCUTNSQ0xFVkJRVTl6UWl4RFFVRkpMRVZCUTFvc1RVRkJUU3hKUVVGSkxFMUJRVTBzYzBOQlFYTkRMRXRCUVVzc1ZVRkJWVUVzUTBGQlNTeERRVUZETEZWQlFWVXNSVUZGTlVZc1RVRkJTU3hEUVVGRGFFSXNSVUZCU1N4bFFVRnBRaXhMUVVGTExHbENRVUZwUWl4RlFVRkxMRWxCUTJwRVFTeEZRVUZOTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVkQkxFVkJRVXNzUTBGQlJTeGpRVUZsTEVWQlFVc3NRMEZCUXl4SFFVTnFSSGRDTEVkQlFXOUNMRXRCUVUxNFFpeEZRVUZMTEVOQlEyeERMR2RDUVVGcFFpeEhRVU5xUWl4VlFVRlhMRU5CUVVVc1RVRkJUeXhKUVVGTExFbEJRVXNzUjBGQlNTeEZRVU5zUXl4WFFVRlpRU3hGUVVGSkxGRkJRVlVzUjBGRE1VSXNXVUZCUVhWQ0xFVkJRMEVzVlVGQlFVUXNRMEZEU2l4RFFVRkRMRU5CUTB3c1EwRkRTaXhGUXpGSlFTeEpRVUZOUnl4SFFVRk5MRU5CUTFJc1YwRkJXU3hOUVVOYUxGRkJRVk1zUjBGRFZDeFZRVUZYUXl4SFFVTllMRWxCUVVzc2QwSkJRMHdzVVVGQlVVUXNSVUZCUzBVc1JVRkJVeXhEUVVOc1FpeFBRVUZMUXl4SFFVRk5TQ3hEUVVGSExFZEJRMVpGTEVWQlFWRXNhVU5CUVdsRExFVkJRM1JEUml4RFFVTllMRVZCUTBFc1YwRkJXU3hEUVVGRFNTeEZRVUZSUXl4RlFVRkxReXhKUVVGUlRDeEhRVUZSTEV0QlFVdEhMRVZCUVZGRExFVkJRVXRETEVOQlFVY3NRMEZEYmtVc1JVTlFRU3hKUVVGTlF5eEhRVUZPTEdOQlFYTkNReXhGUVVGWExFTkJRemRDTEZkQlFWY3NVMEZCVlN4RFFVTnFRaXhOUVVGUExIVkNRVU5ZTEVOQlEwRXNXVUZCV1VNc1JVRkJVU3hEUVVOb1FpeE5RVUZOUXl4SFFVRkxSQ3hEUVVGTkxFVkJRMnBDTEV0QlFVc3NUVUZCVVN4RFFVRkRMRU5CUTJ4Q0xFTkJRMEVzU1VGQlNVVXNSVUZCVHl4RFFVTlFMRXRCUVVzc1RVRkJUU3hMUVVGTFFTeERRVUZMTEVOQlEzcENMRU5CVTBFc1QwRkJUME1zUlVGQlN5eERRVU5TTEVsQlFVMURMRVZCUVUxRExFZEJRVmxHTEVOQlFVY3NSVUZETTBJc1QwRkJTU3hQUVVGUFF5eEhRVUZSTEZOQlExSXNSMEZEUXl4TFFVRkxMRTFCUVUwc1QwRkJUMEVzUlVGQlN5eERRVUZETEVWQlEzcENMRTlCUVZNc1EwRkRlRUlzUTBGRFFTeEpRVUZKUkN4RlFVRkxSeXhGUVVGWkxFTkJRMnBDTEVsQlFVMUdMRVZCUVUxRExFZEJRVmxHTEVOQlFVY3NSVUZETTBJc1IwRkJTU3hQUVVGUFF5eEhRVUZSTEZOQlEyWXNUMEZEU2l4SlFVRk5SeXhGUVVGTExFdEJRVXNzVFVGQlRVZ3NRMEZCUnl4RlFVTjZRaXhOUVVGUExFTkJRVU5GTEVkQlFXTkZMRVZCUVZORUxFTkJRVVVzUlVGQlNVRXNSVUZCUnl4TlFVRlJRU3hEUVVOd1JDeERRVTlCTEVsQlFVbEtMRVZCUVVzc1EwRkRUQ3hKUVVGTlF5eEZRVUZOUXl4SFFVRlpSaXhEUVVGSExFVkJRek5DTEU5QlFVOHNUMEZCVDBNc1IwRkJVU3hWUVVGWlFTeEZRVUZOTEV0QlFVc3NUVUZCVFN4TlFVTjJSQ3hEUVZGQkxFbEJRVWxFTEVWQlFVdEVMRVZCUVU4c1EwRkRXaXhKUVVGTlJTeEZRVUZOUXl4SFFVRlpSaXhEUVVGSExFVkJRek5DTEVkQlFVa3NUMEZCVDBNc1IwRkJVU3hUUVVObUxFMUJRVTBzU1VGQlNTeE5RVUZOTEN0Q1FVRXJRa1FzUTBGQlJ5eEhRVUZITEVWQlEzcEVMRWxCUVUxTkxFVkJRVThzUzBGQlN5eE5RVUZOVEN4RFFVRkhMRVZCUTNaQ1NTeEZRVUZUUXl4RFFVRkpMRWRCUVV0RExFZEJRV05TTEVOQlFVc3NSVUZEY2tOUExFVkJRVXNzVFVGQlVWQXNSVUZGWWl4TFFVRkxMRTFCUVUxRkxFTkJRVWNzUlVGQlNVWXNRMEZETVVJc1EwRkRRU3hQUVVGUFV5eEZRVUZIUXl4RlFVRkxMRU5CUTFnc1NVRkJUVU1zUlVGQlRTeERRVUZETEVWQlExUkVMRWRCUVVFc1RVRkJRVUVzUlVGQlN5eFZRVU5NUVN4RlFVRkpMRk5CUVZORExFTkJRVWNzUlVGRGNFSXNTVUZCU1VNc1JVRkJTU3hGUVVOU0xGRkJRVmRETEV0QlFWRXNTMEZCU3l4TlFVTndRa1lzUlVGQlNTeExRVUZMUnl4SFFVRkxSQ3hGUVVGTkxFOUJRVTlFTEVkQlFVY3NSVUZCUjBZc1EwRkJSeXhEUVVGRExFVkJRM3BETEU5QlFVOURMRU5CUTFnc1EwRkRRU3hUUVVGVFJDeEZRVUZMU3l4RlFVRlhReXhGUVVGaExFTkJRMnhETEU5QlFVdE9MRVZCUlVWUExFZEJRVzlDTEV0QlFVMVFMRVZCUVVzc1EwRkRiRU1zWjBKQlFXbENMRXRCUTJwQ0xGVkJRVmNzUTBGQlJTeE5RVUZQTEVsQlFVc3NTVUZCU3l4SFFVRkpMRVZCUTJ4RExGbEJRV0ZCTEVWQlFVa3NVVUZCVlN4SlFVRk5MRXRCUTJwRExGbEJRVUZOTEVWQlEwRXNWVUZCUVVRc1EwRkRTaXhEUVVGRExFVkJVRlVzUzBGQlN5eFZRVUZWTEVsQlFVa3NRMEZSYkVNc1EwRkRRU3hQUVVGUExFdEJRVXRxUWl4RlFVRlJiMElzUlVGQlMxSXNSVUZCU3l4RFFVTXhRaXhIUVVGTkxFTkJRVVVzVTBGQlFWTXNRMEZCVXl4RlFVRkpWQ3hGUVVObVF5eEZRVUZOTEVsQlFVa3NTMEZCUzJJc1EwRkJUU3hGUVVNelFpeEhRVUZKYjBJc1IwRkJUeXhQUVVGUExGbEJRVmtzVDBGQlQwRXNRMEZCUnl4RlFVRkhMRU5CUTNaRExFbEJRVWxPTEVWQlFVa3NSVUZEVWl4UlFVRlRVQ3hMUVVGTllTeEZRVUZMTEVOQlEyaENMRWRCUVVrc1QwRkJUME1zUjBGQllTeFhRVUZaTEVOQlEyaERMRWxCUVUxc1FpeEZRVUZOYVVJc1lVRkJaU3hKUVVGTllpeEZRVUZMTEU5QlFVOVBMRWRCUVVjc1JVRkRhRVJRTEVWQlFVdGpMRVZCUVZNc1MwRkJTMFFzUlVGQlMycENMRVZCUVV0SkxFTkJRVVVzUTBGRGJrTXNRMEZEUVUwc1JVRkJTU3hOUVVGTkxFdEJRVXRUTEVkQlFWZG1MRVZCUVVrc1QwRkJWMHNzUTBGQlJ5eERRVUZETEVOQlEycEVMRU5CUTBvc1EwRkRRU3hQUVVGUFF5eERRVU5ZTEVOQlEwb3NSVUZEUVN4VFFVRlRVaXhIUVVGWlJpeEZRVUZMTEVOQlEzUkNMRWxCUVVsRExFVkJRVTFKTEVWQlFWTk1MRU5CUVVjc1JVRkJTVUVzUlVGQlNTeE5RVUZSUVN4RlFVTjBReXhQUVVGSlF5eEhRVUZQTEU5QlFVOUJMRWRCUVZFc1YwRkRkRUpCTEVWQlFVMHNUMEZCVDBFc1EwRkJSeXhIUVVOaUxFOUJRVTlCTEVkQlFWRXNWVUZCV1N4UFFVRlBMRlZCUVZWQkxFTkJRVWNzUjBGQlMwRXNSMEZCVHl4RlFVTTFSRUVzUlVGRFFTeEpRVU5XTEVORE0wZEJMRWxCUVUxdFFpeEhRVUZOTEVOQlExSXNWMEZCV1N4TlFVTmFMRkZCUVZNc1IwRkRWQ3hWUVVGWFF5eEhRVU5ZTEVsQlFVc3NkMEpCUTB3c1VVRkJVVVFzUlVGQlMwVXNSVUZCVXl4RFFVTnNRaXhQUVVGTFF5eEhRVUZOU0N4RFFVRkhMRWRCUTFaRkxFVkJRVkVzYTBOQlFXdERMRVZCUTNaRFJpeERRVU5ZTEVWQlEwRXNWMEZCV1N4RFFVRkRTU3hGUVVGUlF5eEZRVUZMUXl4SlFVRlJUQ3hIUVVGUkxFdEJRVXRITEVWQlFWRkRMRVZCUVV0RExFTkJRVWNzUTBGRGJrVXNSVU5hUVN4SlFVRk5ReXhIUVVGVExFTkJRMWdzVTBGQlZVTXNSMEZCVXl4UFFVRlBRU3hIUVVGVkxGTkJRM0JETEZGQlFWTXNSMEZEVkN4SlFVRkxMSGRDUVVOTUxGRkJRVk5ETEVkQlFVOUJMRVZCUTJoQ0xGVkJRVlZETEVWQlFVMURMRVZCUVV0RExFVkJRVmRETEVWQlFXRXNRMEZEZWtNc1QwRkJRVVlzUlVGQlRTeFBRVUZQTEU5QlFVOHNRMEZCUlN4aFFVRmpMRVZCUVVzc1JVRkJSMEVzUTBGQlJ5eEZRVU40UTBjc1IwRkJaMEpLTEVWQlFVMURMRVZCUVV0RExFVkJRVmRETEVOQlFWY3NRMEZETlVRc1EwRkRTaXhGUTFSQkxFbEJRVTFGTEVkQlFWVXNRMEZEV2l4VFFVRlZReXhIUVVGVFFTeEhRVUZUTEV0QlF6VkNMRmRCUVZrc1NVRkJUU3hKUVVGSlF5eEZRVUZQTEVsQlFVa3NSVUZEYWtNc1VVRkJVeXhIUVVOVUxFbEJRVXNzZVVKQlEwd3NTMEZCVFN4M1FrRkRUaXhSUVVGVExFbEJRVTBzU1VGQlNVRXNSVUZCVHl4SlFVRkpMRVZCUXpsQ0xGVkJRVmNzUTBGQlF5eERRVUZGTEU5QlFVRkRMRU5CUVU4c1JVRkJSME1zU1VGQlVTeFBRVUZQUkN4SFFVRlhMRlZCUVZsSUxFZEJRVkVzUzBGQlN5eExRVUZMUnl4RFFVRk5MRVZCUTJoR1FTeEZRVU5CUXl4RlFVRkpMRkZCUVZFc1QwRkRkRUlzUlVOV1FTeEpRVUZOUXl4SFFVRlZMRU5CUTFvc1UwRkJWVU1zUjBGQlV5eFBRVUZQUVN4SFFVRlZMRlZCUTNCRExGRkJRVk1zUjBGRFZDeEpRVUZMTEhsQ1FVTk1MRXRCUVUwc2IwTkJRMDRzVVVGQlUwTXNSMEZCVHl4SlFVRkpReXhGUVVGUFJDeEZRVUZKTEVOQlFVTXNTVUZCVFN4TFFVRlBRU3hGUVVGSkxFTkJRVU1zU1VGQlRTeEhRVUZITEVWQlF6TkVMRlZCUVZVc1EwRkJSU3hQUVVGQlJTeEZRVUZSTEUxQlFVRklMRU5CUVUwc1JVRkJSMGtzUlVGQlN5eERRVU01UWl4SFFVRkpSQ3hIUVVGVlNpeEhRVUZSTEV0QlFVc3NTMEZCUzBrc1EwRkJUU3hGUVVGSExFTkJRM0pETEVsQlFVMUZMRVZCUVV0R0xFVkJRVThzUTBGQlF5eEpRVUZOTEV0QlFVOUJMRVZCUVU4c1EwRkJReXhKUVVGTkxFbEJRemxETEVkQlFVbElMRWxCUVZWTExFVkJRMVlzVDBGQlQwWXNRMEZEWml4RFFVTkJMRTlCUVU5SUxFVkJRVkZKTEVWQlFVa3NVVUZCVVN4UlFVRlZRU3hGUVVGSkxGRkJRVkVzVVVGRGNrUXNRMEZEU2l4RlEyaENRU3hUUVVGVFJTeEhRVUZuUWl4RFFVRkZMRTlCUVVGRExFVkJRVkVzYTBKQlFVRkRMRVZCUVcxQ0xFbEJRVUZETEVWQlFVc3NUVUZCUVVNc1EwRkJUU3hGUVVGSExFTkJRMmhGTEVkQlFVa3NUMEZCVDBFc1IwRkJWU3hUUVVOcVFpeFBRVUZQTEU5QlFVOUJMRU5CUVVzc1JVRkRka0lzU1VGQlRVTXNSVUZCVFN4UFFVRlBSQ3hIUVVGVkxGTkJRVmRCTEVWQlFWRXNUMEZCVDBFc1EwRkJTeXhGUVVNMVJDeEhRVUZKTEVOQlFVTXNVMEZCVTBNc1EwRkJSeXhGUVVOaUxFOUJRVThzVFVGQlRVRXNRMEZCUnl4RlFVRkpMRTlCUVZOQkxFVkJRVTBzUlVGQlNTeFJRVUZWTEU5QlEzSkVMRWxCUVVsRExFVkJRVWtzUzBGQlN5eFZRVUZWUml4RFFVRkxMRVZCUXpWQ0xFZEJRVWtzUTBGQlEwZ3NSMEZEUkVNc1NVRkRReXhEUVVGRFF5eEhRVUZQUVN4SlFVRlJMRFJDUVVOcVFpeE5RVUZOTEV0QlFVdEhMRU5CUVVNc1JVRkJSeXhEUVVObUxFbEJRVWxETEVWQlFVbEVMRVZCUVVVc1VVRkJVU3hIUVVGSExFVkJRMnBDUXl4RlFVRkpMRWxCUTBwQkxFVkJRVWxFTEVWQlFVVXNUMEZEVGtFc1IwRkJTeXhMUVVWVUxFbEJRVWxGTEVWQlFVbE9MRWRCUVhGQ1NTeEZRVUZGTEU5QlFWTkRMRVZCUVVrc1IwRkROVU1zUzBGQlQwTXNTMEZCVFN4SFFVTlVSaXhIUVVGTExFZEJRMklzUTBGRFFTeFBRVUZQUVN4RFFVTllMRU5EYkVKQkxFbEJRVTFITEVkQlFWY3NRMEZEWWl4VFFVRlZReXhIUVVGVExFOUJRVTlCTEVkQlFWVXNVMEZEY0VNc1VVRkJVeXhIUVVOVUxFbEJRVXNzTUVKQlEwd3NTMEZCVFN4cFJFRkRUaXhSUVVGVFF5eEhRVUZQUVN4RlFVRkpMRTFCUVUwc1JVRkJSU3hGUVVGRkxGbEJRVmtzU1VGQlRTeE5RVU14UXl4SlFVTkJRU3hGUVVGSkxFTkJRVU1zU1VGQlRTeEpRVU5RTEU5QlFVOHNhMEpCUTFBc1QwRkJUeXhyUWtGRGFrSXNWVUZCVjBNc1JVRkRaaXhGUVVOTlF5eEhRVUZYTEVOQlEySXNVMEZCVlVnc1IwRkJVeXhQUVVGUFFTeEhRVUZWTEZOQlEzQkRMRkZCUVZNc1IwRkRWQ3hKUVVGTExEQkNRVU5NTEU5QlFWRXNUVUZEVWl4TFFVRk5MSGxFUVVOT0xGRkJRVk5ETEVkQlFVOHNWMEZCVjBFc1EwRkJSeXhGUVVNNVFpeFZRVUZWUnl4RlFVRk5MRU5CUTFvc1NVRkJUVU1zUlVGQlRTeFBRVUZQUkN4RlFVRkxMRXRCUVVzc1JVRkROMElzVDBGQlR5eFRRVUZUUXl4RFFVRkhMRVZCUVVsQkxFVkJRVWtzWTBGQll5eEZRVUZKU0N4SFFVRm5Ra1VzUTBGQlNTeERRVU55UlN4RFFVTktMRVZCUTAxRkxFZEJRVkVzUTBGRFZpeFRRVUZWVGl4SFFVRlRMRTlCUVU5QkxFZEJRVlVzVTBGRGNFTXNVVUZCVXl4SFFVTlVMRWxCUVVzc01FSkJRMHdzUzBGQlRTeHhRMEZEVGl4UlFVRlJReXhGUVVGTExFTkJRMVFzU1VGQlRVY3NSVUZCVHl4SlFVRkpSeXhGUVVGUExGZEJRVmRPTEVOQlFVY3NRMEZCUXl4RlFVTnFRMDhzUlVGQlRWQXNSVUZCU1N4UlFVRlJMRWRCUVVjc1JVRkRNMElzVDBGQlNVOHNTVUZCVVN4SlFVRk5VQ3hGUVVGSlFTeEZRVUZKTEU5QlFWTXNRMEZCUXl4SlFVRk5MRTFCUTNSRFJ5eEZRVUZMTEd0Q1FVRnZRa2dzUlVGQlNTeFBRVUZUVHl4RlFVRk5MRWRCUTNwRFNpeERRVU5ZTEVWQlEwRXNWVUZCVjBZc1JVRkRaaXhGUTNSRFFTeEpRVUZOVHl4SFFVRmxReXhIUVVGVkxFOUJRVTlCTEVkQlFWVXNWVUZCV1N4UFFVRlBMRlZCUVZWQkxFTkJRVXNzUlVGRE5VVkRMRWRCUVdFc1EwRkJRME1zUlVGQlMwTXNSVUZCVVVNc1JVRkJUeXhEUVVGRkxGbEJRVUZETEVOQlFWa3NTVUZCVDBFc1JVRkJZeXhQUVVGUFNDeERRVUZITEVWQlFVa3NVMEZCVTBFc1JVRkJTU3hWUVVGVlF5eERRVUZOTEVWQlFVZERMRU5CUVVzc1JVRkRPVWdzVTBGQlUwVXNSMEZCWVVNc1JVRkJUVWdzUlVGQlQwa3NSVUZCVVN4RFFVTjJReXhIUVVGTkxFTkJRVVVzVFVGQlFWSXNRMEZCVFN4RlFVRkpUeXhGUVVOc1FpeFBRVUZKVWl4SFFVRlpReXhEUVVGTExFZEJRVXRCTEVkQlFWTXNSVUZEZUVKUkxFVkJRVk5TTEVWQlFVMHNVMEZCVTBrc1EwRkJTeXhGUVVOcVEwc3NSMEZCWjBKR0xFTkJRVWtzUTBGREwwSXNRMEZEUVN4SlFVRk5SeXhIUVVGVExFTkJRMWdzVTBGQlZWWXNSMEZCVTBRc1IwRkJXVU1zUTBGQlN5eEhRVUZMUVN4SFFVRlRMRVZCUTJ4RUxGRkJRVk1zUjBGRFZDeEpRVUZMTEhkQ1FVTk1MRTlCUVZFc1RVRkRVaXhMUVVGTkxHRkJRMDRzVVVGQlV5eERRVUZEUlN4RlFVRkxVeXhGUVVGVlF5eEpRVUZSV0N4SFFVRlhReXhGUVVGTExFVkJRVWNzUlVGQlIxVXNRMEZCUnl4RlFVTXhSQ3hWUVVGWFRDeEhRVUZSUkN4SFFVRmhReXhGUVVGTkxFVkJRVWNzU1VGQlNTeERRVU5xUkN4RlFVTk5UU3hIUVVGTkxFTkJRMUlzVTBGQlZXUXNSMEZEVml4UlFVRlRMRWRCUTFRc1NVRkJTeXgzUWtGRFRDeExRVUZOTEdkQ1FVTk9MRkZCUVZNc1EwRkJRMGNzUlVGQlMxTXNSVUZCVlVNc1NVRkJVVmdzUjBGQlYwTXNSVUZCU3l4RlFVRkhMRWRCUVVsVkxFTkJRVWNzUlVGRE0wUXNWVUZCVjBnc1JVRkRaaXhGUVVOTlN5eEhRVUZUTEVOQlExZ3NVMEZCVldRc1IwRkJVMFFzUjBGQldVTXNRMEZCU3l4SFFVRkxRU3hIUVVGVExFVkJRMnhFTEZGQlFWTXNSMEZEVkN4SlFVRkxMSGRDUVVOTUxFOUJRVkVzVFVGRFVpeExRVUZOTEcxQ1FVTk9MRkZCUVZNc1EwRkJRMFVzUlVGQlMxTXNSVUZCVlVNc1NVRkJVVmdzUjBGQlYwTXNSVUZCU3l4RlFVRkhMRWRCUVVsVkxFTkJRVWNzUlVGRE0wUXNWVUZCVjB3c1IwRkJVVVFzUjBGQllVTXNSVUZCVFN4SFFVRkpMRWxCUVVrc1EwRkRiRVFzUlVNelFrRXNTVUZCVFZFc1IwRkJVeXhEUVVOWVF5eEhRVU5CUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4RlFVTktMRVZEYUVKQkxGTkJRVk5ETEVkQlFWbERMRVZCUVU4c1EwRkRlRUlzVDBGQlR5eFBRVUZQUVN4SFFVRlZMRlZCUVZrc1QwRkJUeXhWUVVGVlFTeERRVUZMTEVOQlF6bEVMRU5CUTBFc1NVRkJUVU1zUjBGQlowSXNRMEZCUXl4RFFVRkZMRTFCUVVGRUxFTkJRVTBzU1VGQlRTeExRVUZMTEZWQlFWVkJMRU5CUVVzc1JVRkRia1JGTEVkQlFXTXNRMEZEYUVJc1EwRkRTU3hUUVVGVlJpeEhRVUZUTEU5QlFVOUJMRWRCUVZVc1UwRkRjRU1zVVVGQlV5eEhRVU5VTEVsQlFVc3NkMEpCUTB3c1VVRkJVMGNzUjBGQlQwRXNSVUZEYUVJc1ZVRkJWMFlzUlVGRFppeEZRVU5CTEVOQlEwa3NVMEZCVlVRc1IwRkJVMEVzUjBGQlV5eExRVU0xUWl4WFFVRlpMRWxCUVUwc1NVRkJTVWtzUlVGQlR5eEpRVUZKTEVWQlEycERMRkZCUVZNc1IwRkRWQ3hKUVVGTExIbENRVU5NTEV0QlFVMHNVMEZEVGl4UlFVRlRMRWxCUVUwc1MwRkRaaXhWUVVGWFNDeEZRVU5tTEVWQlEwRXNRMEZEU1N4VFFVRlZSQ3hIUVVGVExFOUJRVTlCTEVkQlFWVXNWVUZEY0VNc1VVRkJVeXhIUVVOVUxFbEJRVXNzZVVKQlEwd3NTMEZCVFN4bFFVTk9MRkZCUVZOSExFZEJRVTlCTEVsQlFWRXNUMEZEZUVJc1ZVRkJWMFlzUlVGRFppeEZRVU5CTEVOQlEwa3NVMEZCVlVZc1IwRkRWaXhSUVVGVExFZEJRMVFzU1VGQlN5eDNRa0ZEVEN4TFFVRk5MSGRDUVVOT0xGRkJRVk1zUTBGQlEwa3NSVUZCUzBVc1JVRkJWU3hEUVVGRkxGbEJRVUZETEVOQlFWa3NTVUZCVFVFc1JVRkJZeXhQUVVGUFNDeERRVUZITEVWQlFVa3NVMEZCVTBFc1JVRkJTeXhGUVVGRkxFVkJRM3BHTEZWQlFWY3NRMEZCUXl4RFFVRkZMRTFCUVVGSUxFTkJRVTBzU1VGQlRVUXNSMEZCV1VNc1EwRkJTeXhGUVVGSlFTeEZRVUZOTEZOQlFWTXNSVUZCU1N4TFFVRkxMRlZCUVZWQkxFTkJRVXNzUTBGRE1VWXNSVUZEUVN4RFFVTkpMRk5CUVZWQkxFZEJRVk1zVDBGQlQwRXNSMEZCVlN4VFFVTndReXhSUVVGVExFZEJRMVFzU1VGQlN5d3dRa0ZEVEN4TFFVRk5MSGxFUVVOT0xGRkJRVk5ITEVkQlFVOHNWMEZCVjBFc1EwRkJSeXhGUVVNNVFpeFZRVUZYUml4RlFVTm1MRU5CUTBvc1JVRkRUVTBzUjBGQldTeERRVU5rTEZGQlFWTXNSMEZEVkN4SlFVRkxMRWRCUTB3c1MwRkJUU3hKUVVOT0xGRkJRVkZLTEVWQlFVdExMRVZCUVZNc1EwRkRiRUlzVDBGQlFVRXNSVUZCVVN3eVFrRkJNa0lzUzBGQlN5eFZRVUZWVEN4RFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVOcVJFRXNRMEZEV0N4RFFVTktMRVZCUTAxTkxFZEJRVk1zUTBGQlEwTXNSMEZCUzBNc1JVRkJSeXhGUVVGRkxFOUJRVTlVTEVkQlFXRkxMRVZCUVZNc1JVTjRSSFpFTEVsQlFVMUxMRWRCUVZNc1EwRkRXQ3hUUVVGVlF5eEhRVUZUUVN4aFFVRnBRaXhYUVVOd1F5eFJRVUZUTEVkQlExUXNTVUZCU3l3eVFrRlRUQ3hSUVVGUlF5eEZRVUZMUXl4RlFVRlRMRU5CUTJ4Q0xFZEJRVWtzVDBGQlR5eFJRVUZYTEZkQlEyeENMRTlCUVU4c1QwRkJUeXhMUVVGTFJDeEZRVUZMTEZGQlFWRXNSVUZGTDBJc1IwRkJTU3hQUVVGUExFMUJRVk1zVjBGQldTeERRVVZxUXl4SlFVRk5SU3hGUVVGTkxFdEJRVXRHTEVWQlFVa3NVVUZCVVN4VlFVRlhMRVZCUVVVc1EwRkJReXhGUVVOeVEwY3NSVUZCVXl4SlFVRkpMRmRCUVZkRUxFVkJRVWtzVFVGQlRTeEZRVU40UXl4UlFVRlRSU3hGUVVGSkxFVkJRVWRCTEVWQlFVbEdMRVZCUVVrc1QwRkJVU3hGUVVGRlJTeEZRVU01UWtRc1JVRkJUME1zUTBGQlF5eEZRVUZKUml4RlFVRkpMRmRCUVZkRkxFTkJRVU1zUlVGRGFFTXNUMEZCVDBRc1EwRkRXQ3hMUVVWSkxGRkJRVUZHTEVWQlFWRXNNRVpCUVRCR0xFVkJRek5HUkN4RFFVVm1MRVZCUTBFc1ZVRkJWU3hEUVVGRkxGRkJRVUZMTEVWQlFWTXNTMEZCUVVNc1JVRkJUU3hOUVVGQlVDeERRVUZOTEVWQlFVZFJMRVZCUVV0RExFVkJRVmRETEVWQlFXRXNRMEZETjBRc1NVRkJUVU1zUlVGQlRWZ3NSVUZEVWtjc1JVRkRTaXhIUVVGSkxFOUJRVThzVVVGQlZ5eFhRVU5zUWtFc1JVRkRTVkVzWVVGQlpTeFBRVU5VUVN4RlFVRkpMRk5CUVZNc1VVRkJVU3hGUVVOeVFpeFBRVUZQTEV0QlFVdEJMRVZCUVVrc1RVRkJUU3hGUVVGRkxGTkJRVk1zVVVGQlVTeFZRVVU1UXl4UFFVRlBMRTFCUVZNc1YwRkJXU3hEUVVOcVF5eEpRVUZKUXl4RlFVRkpMRWRCUTFJc1VVRkJVMUFzUlVGQlNTeEZRVUZIUVN4RlFVRkpUU3hGUVVGSkxFOUJRVkVzUlVGQlJVNHNSVUZET1VKUExFZEJRVXNzVDBGQlR5eGhRVUZoUkN4RlFVRkpUaXhEUVVGRExFTkJRVU1zUlVGRGJrTkdMRVZCUVUwc1MwRkJTMU1zUTBGQlF5eERRVU5vUWl4TFFVVkpMRTlCUVUwc1NVRkJTU3hOUVVGTkxEQkdRVUV3Uml4RlFVazVSeXhIUVVaTFRDeEpRVU5FUVN4RlFVRlBUU3hGUVVGUExHVkJRMlJPTEVsQlFWTk5MRVZCUVU4c1lVRkJZeXhEUVVNNVFpeEpRVUZOUXl4RlFVRlpMRXRCUVVzc1NVRkJTVTRzUlVGQlNTeFJRVUZSTEZWQlFWbEJMRVZCUVVrc1QwRkJUeXhQUVVGUlFTeEZRVUZKTEZGQlFWRXNaVUZCWlN4RlFVTXpSazhzUlVGQlNTeExRVUZMTEV0QlFVdGFMRVZCUVVrc1QwRkJVMWNzUTBGQlV5eEZRVU53UTBVc1JVRkJVU3hKUVVGSkxFMUJRVTFFTEVOQlFVTXNSVUZEZWtJc1VVRkJVMVlzUlVGQlNTeEZRVUZIV1N4RlFVRkpMRVZCUVVkYUxFVkJRVWxWTEVWQlFVY3NSVUZCUlZZc1JVRkJSMWtzUjBGQlMwZ3NSVUZEY0VORkxFVkJRVTFZTEVOQlFVTXNSVUZCU1VZc1JVRkJTU3hQUVVGUFl5eEZRVUZIU0N4RFFVRlRMRVZCUlhSRFdDeEZRVUZOWVN4RlFVRk5MRXRCUVV0VUxFbEJRVk5OTEVWQlFVOHNZMEZCWjBJN1FVRkJRU3hGUVVGUExFZEJRVWNzUTBGREwwUXNRMEZEUVN4UFFVRlBTeXhIUVVGblFpeERRVUZGTEZGQlFVRmFMRVZCUVZNc1MwRkJRVU1zUlVGQlRTeE5RVUZQU2l4RFFVRkpMRVZCUVVkTExFVkJRVXRETEVWQlFWZERMRU5CUVZjc1EwRkRja1lzUTBGRFNpeEZRekZFUVN4VFFVRlRVeXhIUVVGaFF5eEZRVUZMUXl4RlFVRlRMRU5CVEhCRExFbEJRVUZETEVWQlRVa3NSMEZCU1VNc1IwRkJUVWdzUTBGQlJ5eEZRVU5VTEZGQlFWTkpMRVZCUVVrc1JVRkJSMEVzUlVGQlNVb3NSVUZCU1N4TlFVRk5MRTlCUVZFc1JVRkJSVWtzUlVGQlJ5eERRVU4yUXl4SlFVRkpReXhGUVVGUFRDeEZRVUZKTEUxQlFVMUpMRU5CUVVNc1JVRkRkRUlzUjBGQlNTeERRVUZCUlN4RlFVRlBSQ3hEUVVGSkxFVkJSVllzU1VGQlNVVXNSMEZCVFVZc1EwRkJTU3hGUVVGSExFTkJRMlJCTEVWQlFVc3NUVUZCVFN4UFFVRlRMRWRCUTNCQ1NpeEZRVUZSTEdkRVFVRm5SQ3hGUVVNMVJDeEpRVUZOVHl4RlFVRlBTQ3hGUVVGTExFMUJRVTBzUTBGQlF5eEhRVUZMTEVsQlFVbEpMRWRCUVVzc1NVRkJTVU1zUlVGQlR5eEpRVUZKTEVOQlFVTXNSVUZMZGtRc1IwRktTVXdzUlVGQlN5eG5Ra0ZEVEVjc1JVRkJTeXhKUVVGSkxHTkJRV2RDUVN4RlFVRkxMRWxCUVVrc1kwRkROVUlzUjBGQlIwZ3NSVUZCU3l4aFFVRmhPMEZCUVVFc1JVRkJTMGNzUlVGQlN5eEpRVUZKTEdGQlFXRXNSMEZEYUVSSUxFVkJRVXNzWlVGRFdFRXNSVUZCU3l4UlFVRlRMRU5CUTJRc1NVRkJUVTBzUjBGQlMxUXNSVUZCUVUwc1JVRkJTeXhSUVVGTUxFdEJRVUZPTEVWQlFXTk5MRVZCUVVzc1NVRkRPVUpITEVWQlFVY3NVVUZCVlVFc1JVRkJSeXhSUVVOV0xFZEJRVWRPTEVWQlFVc3NUMEZCVHp0QlFVRkJMRVZCUVV0TkxFVkJRVWNzVDBGQlR5eEhRVU01UWs0c1JVRkJTeXhQUVVObUxFTkJRMEZCTEVWQlFVOUhMRU5CUTFnc1EwRkRRVklzUlVGQlNTeE5RVUZOU1N4RFFVRkRMRVZCUVVsRkxFVkJRVTlFTEVOQlFVa3NSVUZCU1VFc1JVRkJUeXhKUVVGSlNTeEhRVUZMU2l4RFFVRkpMRVZCUTNSRUxFMUJSMEZLTEVWQlFWRXNhME5CUVd0RExFVkJRemxETEU5QlFVOUVMRU5CUTFnc1EwRkRRU3hUUVVGVFdTeEhRVUZaUXl4RlFVRlJReXhGUVVGVlF5eEZRVUZMTEVOQlEzaERMRWRCUVUwc1EwRkJSU3hUUVVGQlF5eERRVUZUTEVWQlFVbEVMRVZCUTJaRkxFVkJRVkVzU1VGQlNVTXNSMEZCVVV3c1EwRkJUU3hGUVVOb1Ewa3NSVUZCVFN4SlFVRk5MREJDUVVOYUxFbEJRVWtzUlVGQlNTeEZRVU5TTEVkQlFVbElMRWRCUVZrc1QwRkJUeXhaUVVGWkxFOUJRVTlCTEVOQlFWRXNSVUZET1VNc1VVRkJVMHNzUzBGQlRVd3NSVUZCVlN4RFFVTnFRaXhQUVVGUFJTeEhRVUZoTEdGQlEzQkNSeXhGUVVGTFNDeEZRVUZUTEV0QlFVdEdMRVZCUVZVc1QwRkJUeXhIUVVGSExFVkJRVWRMTEVOQlFVVXNSMEZEYUVRc1NVRkJTVU1zUlVGQlMwTXNSVUZEVkN4SFFVRkpMRTFCUVUwc1VVRkJVVVlzUTBGQlJTeEZRVU5vUWl4SFFVRkpRU3hGUVVGSExGTkJRVmNzUlVGRFpFTXNSVUZCVFVRc1JVRkJSeXhEUVVGRExFVkJRMVpGTEVWQlFWRkdMRVZCUVVjc1EwRkJReXhOUVVkYUxFOUJRVTBzU1VGQlNTeFZRVUZWTEdkRFFVRm5RMEVzUTBGQlJTeEZRVUZGTEZWQlJYWkVRU3hIUVVGTlFTeGhRVUZqTEU5QlFWRXNRMEZEYWtNc1NVRkJUVWNzUlVGQlR5eFBRVUZQTEV0QlFVdElMRU5CUVVVc1JVRkRNMElzUjBGQlNVY3NSVUZCU3l4VFFVRlhMRVZCUTJoQ1JpeEZRVUZOUlN4RlFVRkxMRU5CUVVNc1JVRkRXa1FzUlVGQlVVWXNSVUZCUjBNc1EwRkJSeXhOUVVka0xFOUJRVTBzU1VGQlNTeFZRVUZWTEc5RFFVRnZRMFVzUlVGQlN5eE5RVUZOTEU5QlFVOHNRMEZGYkVZc1RVRkZTVVlzUlVGQlRVUXNSVUZGVmtZc1JVRkJUU3hOUVVGTkxFdEJRVXROTEVkQlFWZElMRVZCUVV0RExFVkJRVTlPTEVOQlFVY3NRMEZCUXl4RFFVTm9SQ3hEUVVOS0xFOUJRVTlGTEVOQlExZ3NRMEZEUVN4SlFVRk5RU3hIUVVGUkxFTkJRMVlzVjBGQldTeE5RVU5hTEZGQlFWTXNSMEZEVkN4SlFVRkxMREJDUVVOTUxGRkJRVk5zUWl4SFFVTlVMRmRCUVZsaExFVkJRMmhDTEVWRGNrVkJMRWxCUVUxWkxFZEJRVTRzVFVGQlRVTXNWVUZCYVVKRExFVkJRVkVzUTBGRE0wSXNZVUZCWXl4RFFVTldMRTFCUVUwc1JVRkRUaXhMUVVGTExFbEJRVTFETEVkQlFWRXNWVUZCVlN4SlFVRkpMRXRCUVVzc1NVRkJTU3hGUVVNeFF5eExRVUZMTEU5QlFWTkJMRWRCUVZFc1ZVRkJWU3hQUVVGUExFdEJRVXNzU1VGQlNTeEZRVU5vUkN4TFFVRkxMRWxCUVUxQkxFZEJRVkVzVlVGQlZTeEpRVUZKTEV0QlFVc3NTVUZCU1N4RlFVTXhReXhMUVVGTExFbEJRVTFCTEVkQlFWRXNWVUZCVlN4SlFVRkpMRXRCUVVzc1NVRkJTU3hGUVVNeFF5eExRVUZMTEVsQlFVMUJMRWRCUVZFc1ZVRkJWU3hKUVVGSkxFdEJRVXNzU1VGQlNTeEZRVU14UXl4TFFVRkxMRWxCUVUxR0xFVkJRVk1zUjBGRGVFSXNRMEZMUVN4UFFVRlBSeXhGUVVGSFF5eEZRVUZMTEVOQlExZ3NSMEZCU1N4RFFVRkRRU3hGUVVORUxFOUJRVThzVFVGQlRTeFBRVUZQUkN4RFFVRkRMRVZCUTNwQ0xFbEJRVTFGTEVWQlFVMHNTVUZCU1N4SlFVTmFSQ3hIUVVGQkxFMUJRVUZCTEVWQlFVc3NWVUZEVEVFc1JVRkJTU3hUUVVGVFF5eERRVUZITEVWQlEzQkNMRkZCUVZkRExFdEJRVkVzUzBGQlN5eE5RVUZQTEVOQlF6TkNMRWxCUVVsRExFVkJRVXRETEVWQlVWUXNSMEZRU1VNc1JVRkJUMGdzUTBGQlNTeEhRVU5ZUXl4RlFVRk5SeXhIUVVGTFNpeEZRVUZMTEVsQlFVc3NSMEZCU1VZc1EwRkJSeXhGUVVNMVFra3NSVUZCVVVVc1IwRkJTMG9zUlVGQlN5eE5RVUZQUXl4RlFVRkxTQ3hEUVVGSExFZEJSMnBEUnl4RlFVRk5SeXhIUVVGTFNpeEZRVUZOTEVkQlFVbEdMRU5CUVVjc1JVRkZlRUpETEVWQlFVa3NTVUZCU1VVc1EwRkJSeXhGUVVOWUxFMUJRVTBzU1VGQlNTeE5RVUZOTERoRFFVRTRReXhGUVVOc1JVWXNSVUZCU1N4SlFVRkpSU3hGUVVGTFF5eERRVUZMTEVOQlEzUkNMRU5CUTBFc1QwRkJUMGdzUTBGRFdDeERRVU5CTEU5QlFVOHNTMEZCUzAwc1JVRkJVVU1zUlVGQlZWSXNSVUZCU3l4RFFVTXZRaXhKUVVGTlV5eEZRVUZSUXl4SFFVRlpTQ3hGUVVGUlF5eEZRVUZWVWl4RFFVRkhMRVZCUTNwRFZ5eEZRVUZQTEVsQlFVa3NTMEZEYWtJc1QwRkJRVUVzUlVGQlN5eE5RVUZSUml4RlFVRk5MRTFCUTFwRkxFTkJRMWdzUTBGRFNpeEZRVU5CYUVJc1IwRkJVeXhKUVVGTkxIbENRVU5tTEVsQlFVMW5RaXhIUVVGUExFTkJRMVFzVjBGQldTeE5RVU5hTEZOQlFWVlFMRWRCUVZOQkxHRkJRV2xDTEVsQlEzQkRMRlZCUVZkVUxFZEJRMWdzVVVGQlV5eEhRVU5VTEVsQlFVc3NlVUpCUTB3c1VVRkJVV2xDTEVWQlFVdERMRVZCUVZNc1EwRkRiRUlzU1VGQlRVb3NSVUZCVVVzc1IwRkJZVVlzUlVGQlMwTXNRMEZCVHl4RlFVTnFRMFVzUlVGQlZ5eERRVUZETEVWQlEyeENMRTlCUVZjc1EwRkJSU3hKUVVGQldpeERRVUZKTEVsQlFVdE5MRVZCUVUwc1RVRkRjRUpQTEVWQlFWTmlMRU5CUVVjc1NVRkRVbGtzUlVGQlV5eFRRVUZUV2l4RlFVRkpMRXRCUVVzc1JVRkRNMEpWTEVWQlFWRXNhVVJCUVdsRVZpeEZRVUZKTEV0QlFVc3NSVUZCUlN4RlFVZHdSVmtzUlVGQlV5eExRVUZMV2l4RlFVRkpMRXRCUVVzc1IwRkpia01zVDBGQlR5eFBRVUZQTEU5QlFVOHNTVUZCU1ZJc1IwRkJXV01zUTBGQlN5eERRVU01UXl4RlFVTkJMRmRCUVZrc1EwRkJRMFlzUlVGQlVVTXNSVUZCVlZJc1NVRkJVVXdzUjBGQlV5eExRVUZMV1N4RlFVRlJReXhGUVVGVlVpeERRVUZITEVOQlF6bEZMRVZEY2tWQkxGTkJRVk5wUWl4SFFVRmpMRU5CUVVVc1RVRkJRVU1zUlVGQlR5eFBRVUZCUXl4RFFVRlBMRVZCUVVkRExFVkJRVXNzUTBGRk0wTXNUMEZCU1VRc1NVRkVXVVFzUlVGQlVVY3NSMEZCVlVNc1NVRkRXaXhMUVVGTExFdEJRVXRJTEVOQlFVMHNSVUZETTBKQkxFVkJRMHBFTEVWQlFWRkZMRVZCUVVrc1VVRkJVU3hSUVVGVlFTeEZRVUZKTEZGQlFWRXNVVUZEY2tRc1EwRkRRU3hKUVVGTlF5eEhRVUZWTEVOQlExb3NVMEZCVlVnc1IwRkJVMEVzU1VGQlZTeEhRVU0zUWl4UlFVRlRMRWRCUTFRc1NVRkJTeXg1UWtGRFRDeExRVUZOTERaRFFVTk9MRkZCUVZNc1NVRkJUU3hKUVVGSlN5eEZRVUZQTEVWQlFVa3NSVUZET1VJc1ZVRkJWMDRzUlVGRFppeEZRVU5OU3l4SFFVRlhMRU5CUTJJc1UwRkJWVW9zUjBGQlUwRXNTVUZCVlN4SFFVTTNRaXhSUVVGVExFZEJRMVFzU1VGQlN5eDVRa0ZEVEN4TFFVRk5MQ3REUVVOT0xGRkJRVk1zU1VGQlRTeEpRVUZKU3l4RlFVRlBMRVZCUVVzc1JVRkRMMElzVlVGQlYwNHNSVUZEWml4RlEzQkNRU3hKUVVGTlR5eEhRVUZYTEVOQlEySXNVMEZCVlVNc1IwRkJVeXhQUVVGUFFTeEhRVUZWTEZOQlEzQkRMRkZCUVZNc1IwRkRWQ3hKUVVGTExEQkNRVU5NTEV0QlFVMHNhVVJCUTA0c1VVRkJWVU1zUjBGQlVVRXNSVUZCU1N4TlFVRk5MRVZCUVVVc1JVRkJSU3haUVVGWkxFbEJRVTBzVFVGRE5VTXNTVUZEUVVFc1JVRkJTU3hEUVVGRExFbEJRVTBzU1VGRFVDeFBRVUZQTEd0Q1FVTlFMRTlCUVU4c2EwSkJRMnBDTEZWQlFWZERMRVZCUTJZc1JVRkRUVU1zUjBGQlZ5eERRVU5pTEZOQlFWVklMRWRCUVZNc1QwRkJUMEVzUjBGQlZTeFRRVU53UXl4UlFVRlRMRWRCUTFRc1NVRkJTeXd3UWtGRFRDeFBRVUZSTEUxQlExSXNTMEZCVFN4M1JFRkRUaXhSUVVGVlF5eEhRVUZSTEZkQlFWZEJMRVZCUVVrc1VVRkJVU3hMUVVGTkxFVkJRVVVzUTBGQlF5eEZRVU5zUkN4VlFVRlZSeXhGUVVGTkxFTkJRMW9zU1VGQlRVTXNSVUZCVFN4UFFVRlBSQ3hGUVVGTExFdEJRVXNzUlVGRE4wSXNUMEZCVHl4VFFVRlRReXhEUVVGSExFVkJRVWxCTEVWQlFVa3NZMEZCWXl4RlFVRkpTQ3hIUVVGblFrVXNRMEZCU1N4RFFVTnlSU3hEUVVOS0xFVkJRMDFGTEVkQlFWRXNRMEZEVml4VFFVRlZUaXhIUVVGVExFOUJRVTlCTEVkQlFWVXNVMEZEY0VNc1VVRkJVeXhIUVVOVUxFbEJRVXNzTUVKQlEwd3NTMEZCVFN4dlEwRkRUaXhSUVVGUlF5eEZRVUZMTEVOQlExUXNTVUZCVFVjc1JVRkJUeXhKUVVGSlJ5eEZRVUZQTEZkQlFWZE9MRVZCUVVrc1VVRkJVU3hMUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlEyNUVUeXhGUVVGTlVDeEZRVUZKTEZGQlFWRXNSMEZCUnl4RlFVTXpRaXhIUVVGSlR5eEpRVUZSTEVkQlFVa3NRMEZEV2l4SlFVRk5ReXhGUVVGSlVpeEZRVUZKTEZWQlFWVlBMRVZCUVUwc1EwRkJReXhGUVVGRkxGRkJRVkVzUzBGQlRTeEZRVUZGTEVWQlF6ZERReXhGUVVGRlFTeEZRVUZGTEU5QlFWTXNRMEZCUXl4SlFVRk5MRTFCUTNCQ1RDeEZRVUZMTEd0Q1FVRnZRa3NzUlVGQlJTeFBRVU51UXl4RFFVTkJMRTlCUVU5TUxFTkJRMWdzUlVGRFFTeFZRVUZYUml4RlFVTm1MRVZEZWtOQkxFbEJRVTFSTEVkQlFXVkRMRWRCUVZVc1QwRkJUMEVzUjBGQlZTeFZRVUZaTEU5QlFVOHNWVUZCVlVFc1EwRkJTeXhGUVVOc1JpeFRRVUZUUXl4SFFVRlhReXhGUVVGTFF5eEZRVUZSUXl4RlFVRlBMRU5CUVVVc1dVRkJRVU1zUTBGQldTeEZRVUZITEVOQlEzSkVMRWxCUVUxRExFVkJRVTlLTEVWQlFVa3NRMEZCUXl4RlFVbHNRaXhKUVVoSlNTeEpRVUZUTEV0QlFVOUJMRWxCUVZNc1QwRkRla0pJTEVkQlFWVXNSMEZEWkVRc1JVRkJUVUVzUlVGQlNTeFZRVUZWUXl4RFFVRk5MRVZCUVVVc1VVRkJVU3hMUVVGTkxFVkJRVVVzUlVGRGVFTkZMRVZCUVdFc1EwRkRZaXhQUVVGUlJDeEZRVUZQTEVOQlExZ3NTVUZCU3l4SFFVTkVSaXhGUVVGTkxFdEJRVXRCTEVOQlFVY3NSMEZEWkN4TlFVTktMRWxCUVVzc1IwRkRSRUVzUlVGQlRTeExRVUZMUVN4RFFVRkhMRWRCUTJRc1RVRkRTaXhKUVVGTExFbEJRMFJCTEVWQlFVMHNTMEZCUzBFc1EwRkJSeXhIUVVOa0xFdEJRMUlzUTBGRFFTeEpRVUZOU3l4RlFVRkpMRTlCUVU5TUxFTkJRVWNzUlVGRGNFSXNUMEZCVDBrc1NVRkJVeXhKUVVGTkxFOUJRVThzUlVGQlJTeEZRVUZKUXl4RlFVRkpRU3hEUVVNelF5eERRVU5CTEVsQlFVMUJMRVZCUVVrc1UwRkJVMHdzUlVGQlMwVXNRMEZCU3l4RlFVTTNRaXhQUVVGUFJTeEpRVUZUTEVsQlFVMHNSMEZCUzBNc1JVRkJTVUVzUTBGRGJrTXNRMEZEUVN4VFFVRlRReXhIUVVGaFF5eEZRVUZOVEN4RlFVRlBUU3hGUVVGUkxFTkJRM1pETEVkQlFVMHNRMEZCUlN4TlFVRkJWaXhEUVVGTkxFVkJRVWxUTEVWQlEyeENMRWRCUVVsV0xFZEJRVmxETEVOQlFVc3NSVUZCUnl4RFFVTndRaXhKUVVGTlJTeEZRVUZOUml4RlFVRk5MRk5CUVZOSkxFTkJRVXNzUlVGRGFFTXNUMEZCVDBvc1JVRkJVU3hGUVVGSkxFbEJRVTFWTEVWQlFWTlNMRVZCUVVrc1QwRkJUeXhEUVVGRExFVkJRVWxSTEVWQlFWTlNMRU5CUXk5RUxFTkJRMEVzVDBGQlQxTXNSMEZCWjBKR0xFTkJRVWtzUTBGREwwSXNRMEZEUVN4SlFVRk5SeXhIUVVGVExFTkJRMWdzVTBGQlZXSXNSMEZEVml4UlFVRlRMRWRCUTFRc1NVRkJTeXgzUWtGRFRDeFBRVUZSTEUxQlExSXNTMEZCVFN4dFFrRkRUaXhSUVVGVExFTkJRVU5ITEVWQlFVdFhMRVZCUVZWRExFbEJRVkZpTEVkQlFWZERMRVZCUVVzc1JVRkJSeXhGUVVGSFdTeERRVUZITEVWQlF6RkVMRlZCUVZkTUxFZEJRVkZFTEVkQlFXRkRMRVZCUVUwc1JVRkJSeXhKUVVGSkxFTkJRMnBFTEVWQlEwMU5MRWRCUVZNc1EwRkRXQ3hUUVVGVmFFSXNSMEZEVml4UlFVRlRMRWRCUTFRc1NVRkJTeXgzUWtGRFRDeFBRVUZSTEUxQlExSXNTMEZCVFN4clFrRkRUaXhSUVVGVExFTkJRVU5ITEVWQlFVdFhMRVZCUVZWRExFbEJRVkZpTEVkQlFWZERMRVZCUVVzc1JVRkJSeXhGUVVGSFdTeERRVUZITEVWQlF6RkVMRlZCUVZkTUxFZEJRVkZFTEVkQlFXRkRMRVZCUVUwc1JVRkJSeXhIUVVGSExFTkJRMmhFTEVWQlEwMVBMRWRCUVUwc1EwRkRVaXhUUVVGVmFrSXNSMEZEVml4UlFVRlRMRWRCUTFRc1NVRkJTeXgzUWtGRFRDeExRVUZOTEhOQ1FVTk9MRkZCUVZNc1EwRkJRMGNzUlVGQlMxY3NSVUZCVlVNc1NVRkJVV0lzUjBGQlYwTXNSVUZCU3l4RlFVRkhMRWRCUVVsWkxFTkJRVWNzUlVGRE0wUXNWVUZCVjBnc1JVRkRaaXhGUVVOTlRTeEhRVUZUTEVOQlExZ3NVMEZCVld4Q0xFZEJRMVlzVVVGQlV5eEhRVU5VTEVsQlFVc3NkMEpCUTB3c1QwRkJVU3hOUVVOU0xFdEJRVTBzZVVKQlEwNHNVVUZCVXl4RFFVRkRSeXhGUVVGTFZ5eEZRVUZWUXl4SlFVRlJZaXhIUVVGWFF5eEZRVUZMTEVWQlFVY3NSMEZCU1Zrc1EwRkJSeXhGUVVNelJDeFZRVUZYVEN4SFFVRlJSQ3hIUVVGaFF5eEZRVUZOTEVkQlFVa3NTVUZCU1N4RFFVTnNSQ3hGUTJoRlFTeEpRVUZOVXl4SFFVRk9MRTFCUVUxRExGVkJRV2RDUXl4RlFVRlJMRU5CUXpGQ0xGbEJRVmxETEVWQlFWRXNRMEZEYUVJc1RVRkJUVUVzUTBGQlRTeEZRVU5hTEV0QlFVc3NTVUZCVFVZc1JVRkJVU3hIUVVOMlFpeERRVU5CTEVsQlFVbEhMRVZCUVVzc1EwRkRUQ3hKUVVGSlF5eEZRVU5CUXl4RlFVRlBSaXhEUVVGSExFVkJRMVpETEVWQlFVOUVMRVZCUTBaQkxFZEJRMHdzVDBGQlQwRXNSMEZCVVN4VlFVTm1MRkZCUVZOQkxFZEJRMVFzVlVGQlYwRXNSMEZEV0VFc1JVRkJTU3hSUVVGVkxFdEJRMlJETEVWQlFVOHNTVUZCU1VVc1IwRkJTMGdzUlVGQlNTeEpRVUZMTEVsQlFVa3NSVUZGTjBKRExFVkJRVThzU1VGQlNVVXNSMEZCUzBnc1JVRkJTeXhKUVVGSkxFVkJRMmhDU1N4SFFVRlRMRXRCUVVzc1RVRkJUMGdzUlVGQlN5eEhRVUZITEVkQlJYUkRMRXRCUVVzc1RVRkJUU3hMUVVGTFFTeERRVUZKTEVOQlF6VkNMRU5CUzBFc1NVRkJTVVFzUlVGQlMwc3NSVUZCVlN4RFFVTm1MRWxCUVUxS0xFVkJRVTlITEVkQlFWTXNTMEZCU3l4TlFVRlBTaXhEUVVGSExFVkJRM0pETEUxQlFVOHNRMEZCUTBzc1IwRkJXVWdzUlVGQlQwUXNRMEZCU1N4RlFVTjZRa3NzUlVGQlUwd3NSVUZCU3l4SFFVRkhMRVZCUTJKQkxFVkJRVXNzU1VGQlNTeE5RVU5VUVN4RlFVRkxMRWxCUTFSQkxFTkJRMVlzUTBGRFFTeEpRVUZKUkN4RlFVRkxUeXhGUVVGUExFTkJRMW9zUjBGQlNTeFBRVUZQUVN4SFFVRlZMRlZCUTJwQ0xFMUJRVTBzU1VGQlNTeE5RVUZOTEdsRlFVRnBSU3hQUVVGUFFTeERRVUZMTEVWQlFVVXNSVUZEYmtjc1NVRkJUVU1zUlVGQlQwb3NSMEZCVXl4TFFVRkxMRTFCUVU5S0xFTkJRVWNzUlVGRGFrTlJMRWRCUVZFc1EwRkJRMFFzUlVGRFZDeExRVUZMTEUxQlFVMHNUMEZCVHl4TFFVRkxMRTFCUVUwc1VVRkJVVU1zUTBGQlNTeEZRVUZITEVOQlFVTXNSVUZGZUVNc1EwRkJRMEVzUjBGQlVVUXNSMEZEWkN4TFFVRkxMRTFCUVUwc1MwRkJTeXhKUVVGSlNpeEhRVUZMU0N4RFFVRkhMRU5CUVVNc1EwRkZja01zUTBGRFFTeFBRVUZQVXl4RlFVRkhReXhGUVVGTExFTkJRMWdzVDBGQlR5eE5RVUZOTEU5QlFVOUVMRVZCUVVkRExFVkJRVXNzUjBGQlJ5eERRVU51UXl4RFFVTkJMRk5CUVZOQkxFVkJRVXRETEVWQlFWZERMRVZCUVdFc1EwRkRiRU1zUjBGQlNTeERRVUZEUml4RlFVTkVMRTlCUVU4c1MwRkJTeXhWUVVGVkxFbEJRVWtzUlVGRE9VSXNSMEZCU1N4TFFVRkxMR2xDUVVGcFFpeEZRVUZKTEVWQlF6RkNMRTlCUVU4c1RVRkJUU3hUUVVGVExFOUJRVThzVDBGQlR5eERRVUZETEVWQlFVZEJMRVZCUVVzc1EwRkJSU3hqUVVGbExFVkJRVXNzUTBGQlF5eEZRVUZIUXl4RlFVRlhReXhEUVVGWExFVkJSVGRHTEUxQlFVMHNTVUZCU1N4TlFVRk5MSEZEUVVGeFF5eERRVU0zUkN4RFFVTkJMRTlCUVU4c1MwRkJTMklzUlVGQlVXTXNSVUZCVlVnc1JVRkJTeXhEUVVNdlFpeEhRVUZOTEVOQlFVVXNVMEZCUVVrc1EwRkJVeXhGUVVGSlNpeEZRVU5tU3l4RlFVRk5MRWxCUVVrc1MwRkJTMmhDTEVOQlFVMHNSVUZETTBJc1IwRkJTV01zUjBGQldTeFBRVUZQTEZsQlFWa3NUMEZCVDBFc1EwRkJVU3hGUVVNNVF5eFJRVUZUVGl4TFFVRlRUU3hGUVVOV0xFOUJRVTlETEVkQlFXRXNZVUZEY0VKUUxFVkJRVkZQTEVWQlFWTXNTMEZCUzBRc1JVRkJWVTRzUlVGQlQwRXNRMEZCU3l4SFFVTm9SRkVzUlVGQlNTeE5RVUZOTEV0QlFVdERMRWRCUVZkVUxFVkJRVThzUzBGQlRVY3NRMEZCUnl4RFFVRkRMRVZCUlc1RUxFOUJRVTlMTEVOQlExZ3NRMEZEU2l4RlFVTkJia0lzUjBGQlVTeEpRVUZOTEhkQ1FVTmtMRWxCUVUxdFFpeEhRVUZOTEVOQlExSXNWMEZCV1N4TlFVTmFMRk5CUVZWU0xFZEJRVk5CTEdGQlFXbENMRWxCUTNCRExGVkJRVmRZTEVkQlExZ3NVVUZCVXl4SFFVTlVMRWxCUVVzc2QwSkJRMHdzVjBGQldTeERRVUZEUnl4RlFVRlJZeXhGUVVGVlNDeEpRVUZSWkN4SFFVRlJMRXRCUVV0SExFVkJRVkZqTEVWQlFWVklMRU5CUVVjc1JVRkRla1VzVVVGQlVVOHNSVUZCUzBNc1JVRkJVeXhEUVVOc1FpeEhRVUZKUXl4SFFVRk5SaXhEUVVGSExFVkJRVWNzUTBGRFdpeEhRVUZKUVN4RlFVRkpMR2xDUVVGcFFpeEZRVUZKTEVWQlEzcENMRTlCUVU4c1QwRkJUeXhQUVVGUExFbEJRVWx5UWl4SFFVRlhjVUlzUTBGQlJ5eEZRVVYyUTBNc1JVRkJVU3h4UTBGQmNVTXNRMEZEY2tRc1RVRkZTVUVzUlVGQlVTeHBRMEZCYVVNc1JVRkROME1zVDBGQlQwUXNRMEZEV0N4RFFVTktMRVZEZGtaQkxGTkJRVk5ITEVkQlFXbENReXhGUVVGTFF5eEZRVUZWTEVOQlEzSkRMRWxCUVUxRExFVkJRVTlHTEVWQlFVa3NRMEZCUXl4RlFVTmFSeXhGUVVGUlJDeEpRVUZUTEV0QlFVOUJMRWxCUVZNc1NVRkJUVVlzUlVGQlNTeFZRVUZWTEVOQlFVTXNSVUZCU1VFc1JVRkRNVVJKTEVWQlFVOURMRWRCUVUxS0xFVkJRVmNzVDBGQlQwa3NRMEZCUXl4RlFVRkpMRTlCUVU5QkxFTkJRVU1zUlVGRE5VTkRMRVZCUVUxSUxFVkJRMUFzVVVGQlVTeExRVUZOTEVWQlFVVXNSVUZEYUVJc1RVRkJUU3hIUVVGSExFVkJRMVFzVDBGQlR5eERRVUZEUnl4RlFVRkxReXhKUVVGTlJDeEZRVUZOUml4RlFVRkpMRVZCUVVVc1JVRkJTVUVzUlVGQlNVY3NRMEZCUXl4RlFVRkhTQ3hGUVVGSkxFTkJRVU1zUTBGQlF5eEZRVU4wUkN4UFFVRlJSaXhKUVVGVExFbEJRVTFGTEVWQlFVa3NSVUZCUlN4RlFVRkpSU3hGUVVGTlFTeERRVU16UXl4RFFVMUJMRk5CUVZORkxFZEJRWEZDUXl4RlFVRk5MRU5CUTJoRExFZEJRVWtzUTBGQlJTeE5RVUZCUXl4RFFVRk5MRVZCUVVsRUxFVkJRMXBNTEVWQlFVOURMRWRCUVUxQkxFVkJRMnBDTEVkQlFVa3NUMEZCVDBzc1IwRkJWU3hUUVVOcVFrNHNSVUZCVFVNc1IwRkJTeXhQUVVGUFFTeERRVUZETEZWQlEyUXNUVUZCVFVzc1EwRkJTeXhIUVVGTExFTkJRVU1zVTBGQlUwRXNRMEZCU3l4RlFVTndReXhQUVVGUFF5eEhRVUZuUWtZc1EwRkJTU3hGUVVNdlFpeEpRVUZKVUN4RlFVRlBMRWRCUTFCUkxFVkJRVkVzU1VGRFVsSXNSVUZCVHl4SlFVTlFVU3hIUVVGVFRpeEZRVUZKTEVWQlFVVXNSMEZGYmtJc1NVRkJUVkVzUlVGQlRWSXNSVUZCU1N4RlFVRkZMRVZCUTFwRUxFVkJRVkVzUTBGQlEwOHNSVUZCVVVVc1EwRkJSeXhGUVVNeFFpeFBRVUZKUml4RlFVRlJMRWRCUTFKUUxFVkJRVTBzVVVGQlVTeERRVUZETEVkQlIyWlBMRWRCUVZOQkxFVkJRVkZRTEVWQlFVMHNRMEZCUXl4SFFVRkxVeXhGUVVNM1FsUXNSVUZCVFN4UlFVRlJUeXhGUVVGUlJTeERRVUZITEVWQlEzSkNSaXhIUVVGVExFdEJRMVJCTEVkQlFWTkJMRVZCUVZGUUxFVkJRVTBzUTBGQlF5eEhRVUZMVXl4RlFVTTNRbFFzUlVGQlRTeFJRVUZSVHl4RFFVRkxMRWxCUjI1Q1VpeEZRVU5LUXl4RlFVTkxMRWxCUVVsRkxFZEJRVXNzVDBGQlQwRXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSeXhIUVVGSExFTkJRVU1zUlVGRGJrTXNTMEZCU3l4SFFVRkhMRVZCUTFJc1VVRkJVU3hoUVVGakxFVkJRVVVzUTBGRmNrTXNRMEZEUVN4SlFVRk5VU3hIUVVGVkxFTkJRMW9zVTBGQlZVZ3NSMEZCVXl4UFFVRlBRU3hIUVVGVkxGVkJRVmtzVDBGQlR5eFZRVUZWUVN4RFFVRkxMRVZCUTNSRkxGRkJRVk1zUjBGRFZDeEpRVUZMTEhkQ1FVTk1MRTlCUVZFc1QwRkRVaXhMUVVGTkxIVkRRVU5PTEZGQlFWTXNRMEZCUTFZc1JVRkJTMk1zUlVGQlZTeERRVUZGTEZsQlFVRkRMRU5CUVZrc1NVRkJUV2hDTEVkQlFXbENReXhGUVVGTFpTeERRVUZYTEVWQlF6bEZMRlZCUVZkUUxFVkJRMllzUlVGRFRWRXNSMEZCV1N4RFFVTmtMRk5CUVZWT0xFZEJRVk1zVDBGQlQwRXNSMEZCVlN4VFFVTndReXhSUVVGVExFZEJRMVFzU1VGQlN5d3dRa0ZEVEN4UFFVRlJMRTlCUTFJc1MwRkJUU3huUkVGRFRpeFJRVUZUVml4SFFVRlBSQ3hIUVVGcFFrTXNSVUZCU3l4RlFVRkxMRVZCUXpORExGVkJRVmRSTEVWQlEyWXNSVUZEVFZNc1IwRkJXU3hEUVVOa0xGTkJRVlZRTEVkQlFWTkJMR0ZCUVdsQ0xFdEJRM0JETEZGQlFWTXNSMEZEVkN4SlFVRkxMRGhDUVVsTUxFdEJRVTBzVDBGQlR5d3lTa0ZMU2l4RlFVTlVMRkZCUVZGV0xFVkJRVXNzUTBGRFZDeEpRVUZOYTBJc1JVRkJVV3hDTEVWQlFVa3NUVUZCVFdsQ0xFZEJRVlVzU1VGQlNTeEZRVU4wUXl4SFFVRkpMRU5CUVVORExFVkJRMFFzVFVGQlRTeEpRVUZKTEUxQlFVMHNjMFJCUVhORUxFVkJRekZGTEVkQlFVMHNRMEZCUXl4RFFVRkZReXhGUVVGTlF5eEZRVUZQUXl4RlFVRkxReXhGUVVGTlF5eEZRVUZSUXl4RFFVRk5MRVZCUVVsT0xFVkJRVTBzU1VGQlNTeE5RVUZOTEVWQlF6ZEVUeXhGUVVGWFVDeEZRVUZOTEVOQlFVTXNSVUZCU1N4UlFVRlJRU3hGUVVGTkxFTkJRVU1zUlVGQlNTeE5RVUZOTEU5QlFVOHNSVUZCUnl4RFFVRkRMRU5CUVVNc1JVRkJTU3hGUVVOcVJWRXNSVUZCVHl4TFFVRkxMRWxCUVVsUUxFVkJRVTFETEVWQlFWRXNSVUZCUjBNc1JVRkJTME1zUjBGQlVTeEZRVUZIUXl4SFFVRlZMRVZCUVVkRExFZEJRVlVzUlVGQlIwTXNRMEZCVVN4RlFVTnFSa1VzUlVGQlMxUXNSVUZCVFN4RFFVRkRMRVZCUTJ4Q0xFZEJRVWxUTEVkQlFVMUJMRWxCUVU4c1NVRkJTeXhEUVVOc1FpeEpRVUZKTEVWQlFVazFRaXhIUVVGcFFqUkNMRVZCUVVrc1JVRkJTeXhGUVVNNVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4RlFVRkpMRXRCUTJRc1IwRkJTeXhKUVVOVVJDeEhRVUZSTEVsQlFWRXNRMEZEY0VJc1EwRkRRU3hQUVVGUExFbEJRVWtzUzBGQlMwRXNRMEZCU1N4RFFVTjRRaXhGUVVOQkxGVkJRVmNzUTBGQlF5eERRVUZGTEUxQlFVRm9RaXhEUVVGTkxFbEJRVTFCTEVWQlFVMHNXVUZCV1N4RlFVRkZMRkZCUVZFc2VVSkJRVEJDTEVWQlFVVXNRMEZEZEVZc1JVTndSa0VzU1VGQlRXdENMRWRCUVZNc1EwRkRXRU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1JVRkRTaXhGUTI1Q1FTeEpRVUZOUXl4SFFVRlZMRWxCUVVrc1NVRkJTU3hEUVVOd1FpeERRVUZETEU5QlFWRkRMRVZCUVUwc1JVRkRaaXhEUVVGRExGZEJRVmtzUTBGQlEwTXNSMEZCUzBNc1IwRkJTME1zUlVGQlRTeERRVUZETEVWQlF5OUNMRU5CUVVNc1QwRkJVVWdzUlVGQlVTeEZRVU5xUWl4RFFVRkRMRk5CUVZWQkxFVkJRVkVzUlVGRGJrSXNRMEZCUXl4WFFVRlpRU3hGUVVGUkxFTkJRM3BDTEVOQlFVTXNSVUZEUzBrc1IwRkJZU3hEUVVObUxFOUJRVUZETEVkQlEwRXNTMEZCVFVNc1IwRkRUaXhOUVVGQlF5eEhRVU5CTEZOQlFVRkRMRWRCUTBFc1UwRkJRVU1zUjBGRFFTeFZRVUZCUXl4SFFVTkJMRWxCUVVGRExFZEJRMEVzVDBGQlFVTXNSMEZEUVN4UFFVRkJReXhIUVVOQkxGRkJRVUZETEVkQlEwRXNTVUZCUVdJc1IwRkRRU3hOUVVGQll5eEhRVU5CTEV0QlFVMURMRWRCUTA0c1MwRkJRVU1zUjBGRFFTeE5RVUZCUXl4SFFVTkJMRWxCUVVGb1FpeEhRVU5CTEVsQlFVRnBRaXhIUVVOQkxGVkJRVUZETEVWQlEwb3NSVUZEVFVNc1IwRkJaMElzUTBGRGJFSXNNa0pCUVRSQ2FFSXNSMEZETlVJc01FSkJRVEpDVlN4SFFVTXpRaXg1UWtGQk1FSkZMRWRCUXpGQ0xEQkNRVUV5UWtNc1IwRkRNMElzZDBKQlFYbENReXhIUVVONlFpdzRRa0ZCSzBKRExFVkJRMjVETEVWQlEwRXNVMEZCVTBVc1IwRkJVVU1zUlVGQldVTXNSVUZCV1VNc1JVRkJZU3hEUVVOc1JDeEpRVUZOUXl4RlFVRmhNMElzUjBGQlVTeEpRVUZKZVVJc1EwRkJWU3hGUVVONlF5eEhRVUZKUlN4SFFVRmpMRU5CUVVOSUxFVkJRMllzVDBGQlQwVXNSMEZCWlN4RFFVRkRReXhGUVVGWExGTkJRVk5ZTEVWQlFVc3NSVUZETVVOWExFVkJRVmNzVDBGQlQxZ3NSVUZCU3l4RlFVTjJRbGNzUlVGQlZ5eE5RVUZOTEVWQlJUTkNMRWxCUVVsRExFVkJRVTlFTEVWQlExZ3NSMEZCU1N4RFFVRkRReXhGUVVORUxFZEJRVWtzVFVGQlRTeFJRVUZSU2l4RFFVRlZMRVZCUTNoQ1NTeEZRVUZQTEVOQlFVTXNUVUZEVUN4RFFVTkVMRWxCUVUxRExFVkJRVThzVFVGQlRTeExRVUZMTjBJc1IwRkJVU3hMUVVGTExFTkJRVU1zUlVGRGFrTXNUMEZCVHpoQ0xFZEJRVTlCTEVsQlFWRXNVVUZCVVN4RlFVTTVRaXhKUVVGSlFTeEhRVUZQTEV0QlFVc3NWVUZCVlVFc1EwRkJSeXhEUVVGRExFVkJRemxDTEV0QlFVc3NTVUZCU1N4RlFVTmtMRTFCUVUwc1NVRkJTU3hOUVVGTkxHMUNRVUZ0UWt3c1EwRkJWU3hwUWtGQmFVSkpMRU5CUVVrc05rSkJRVFpDTEVOQlEyNUhMRU5CUlVvc1IwRkJTU3hOUVVGTkxGRkJRVkZNTEVOQlFWVXNSVUZEZUVJc1VVRkJWMDhzUzBGQlQxQXNSVUZEWkVrc1JVRkJUMEVzUlVGQlN5eFBRVUZQUnl4RFFVRkhMRTlCUlhKQ0xFOUJRVTlRTEVkQlFXVXNZVUZETTBKSkxFVkJRVTlLTEVWQlFWZEpMRVZCUVVzc1RVRkJUU3hEUVVGRExFZEJSV3hETEU5QlFVbEdMRWxCUTBGRkxFVkJRVTlCTEVWQlFVc3NUMEZCVDFvc1JVRkJTeXhIUVVOeVFsa3NSVUZCU3l4UFFVRlBMRU5CUVVOQkxFVkJRVTFITEVsQlFWRXNRMEZET1VJc1NVRkJUVU1zUlVGQlV5eFBRVUZQUkN4SFFVRlJMRk5CUVZjeFFpeEhRVUZYTUVJc1EwRkJSeXhGUVVGSlFTeEZRVU16UkN4SFFVRkpMRU5CUVVORExFVkJRVkVzUTBGRFZDeEpRVUZOUXl4RlFVRlZMRXRCUVVzc1ZVRkJWVVlzUTBGQlJ5eEZRVU0xUWtZc1JVRkJUeXhQUVVGUExFdEJRVXQ0UWl4RlFVRlZMRVZCUXpsQ0xFbEJRVWw1UWl4SFFVRlBMRXRCUVVzc1ZVRkJWVUVzUTBGQlJ5eERRVUZETEVWQlF6bENMRXRCUVVzc1NVRkJTU3hGUVVOa0xFMUJRVTBzU1VGQlNTeE5RVUZOTEhOQ1FVRnpRa2NzUTBGQlR5eG5Ra0ZCWjBKS0xFTkJRVWtzUlVGQlJTeERRVU4yUlN4RFFVTkJMRTlCUVV0RUxFVkJRVXNzVTBGQlUwa3NRMEZCVFN4SFFVTnlRa29zUlVGQlN5eExRVUZMU1N4RFFVRk5MRVZCUTJKS0xFTkJRMWdzUlVGQlJ5eERRVUZETEVOQlFVTXNRMEZEVkN4RFEzWkdRU3hKUVVGTlRTeEhRVUZ6UWl4RFFVRkRReXhGUVVGSFF5eEpRVUZOUkN4RlFVRkZMRWxCUVUxRExFVkJRVVVzU1VGQlRTeEhRVUZMUkN4RlFVRkZMRWxCUVUxRExFVkJRVVVzU1VGQlRTeEZRVUZKTEVWQlEzcEZReXhIUVVGT0xFMUJRVTFETEVOQlFVOHNRMEZEVkN4WlFVRlpMRU5CUVVVc1QwRkJRVU1zUlVGQlVTeFhRVUZCUXl4RlFVRlpMRTFCUVVGRExFVkJRVThzYVVKQlFVRkRMRVZCUVd0Q0xFOUJRVUZETEVWQlFWRXNaVUZCUVVNc1JVRkJaMElzYVVKQlFVRkRMRU5CUVdsQ0xFVkJRVWNzUTBGRGJrY3NTMEZCU3l4UFFVRlRMRTFCUVUwc1VVRkJVVTRzUTBGQlRTeEZRVU0xUWs4c1IwRkJVVkFzUlVGQlVTeFJRVUZSTEVWQlEzaENRU3hGUVVOSlR5eEhRVUZSTEV0QlFVMVFMRU5CUVUwc1JVRkRjRUlzUzBGRFZpeExRVUZMTEV0QlFWRXNUMEZCVDBrc1IwRkJWeXhWUVVGWlFTeEhRVUZYTEU5QlEzUkVMRXRCUVVzc1ZVRkJXVVFzUlVGQmJVSkxMRWRCUVdkQ0xFTkJRVU1zUlVGRGNrUXNTMEZCU3l4TFFVRlBSQ3hIUVVGUlRpeEZRVUZaTEV0QlFVc3NTMEZCVFVNc1EwRkJTeXhGUVVOb1JDeExRVUZMTEdkQ1FVRnJRa2tzUjBGQlFTeExRVUZCUVN4RlFVRnZRaXhMUVVNelF5eFBRVUZQTEdWQlFXVXNTMEZCVFVjc1IwRkJTeXhEUVVGRkxFMUJRVTlETEVWQlFVa3NRMEZCUXl4RlFVTXZReXhQUVVGUExHVkJRV1VzUzBGQlRVTXNSMEZCVVN4RFFVRkZMRTFCUVU5RExFVkJRVThzUTBGQlF5eEZRVU55UkN4UFFVRlBMR1ZCUVdVc1MwRkJUVU1zUjBGQlN5eERRVUZGTEUxQlFVOURMRVZCUVVrc1EwRkJReXhGUVVVdlF5eExRVUZMTEdWQlEwUXNUMEZCVDFRc1IwRkJiVUlzVjBGRGNFSkJMRVZCUTBGQkxFbEJRVzFDTEVkQlEyWldMRWRCUTBFc1NVRkRiRUlzUTBGRFFTeFBRVUZSTEVOQlEwb3NTVUZCVFc5Q0xFVkJRVThzVDBGQlR5eFBRVUZQYUVJc1JVRkJUeXhWUVVGWExFOUJRVThzTUVKQlFUQkNMRWxCUVVrc1EwRkJReXhGUVVOdVJpeFBRVUZCWjBJc1JVRkJTeXhMUVVGUExFdEJRVXNzUzBGQlN5eE5RVUZOTEVWQlEzSkNRU3hEUVVOWUxFTkJRMG9zUlVNNVFrRXNVMEZCVTBNc1IwRkJhMEpETEVWQlFVdERMRVZCUVZNc1EwRktla01zU1VGQlFVTXNSVUZMU1N4SlFVRk5ReXhGUVVGUkxFTkJRVU1zUlVGRFdFTXNSVUZCWjBKSUxFVkJRVkVzWVVGQlpTeEhRVU16UXl4SFFVRkpRU3hGUVVGUkxHRkJRV1VzU1VGQlUwUXNSVUZCU1N4WFFVRlpMRU5CUTJoRUxFbEJRVTFMTEVWQlFVMU1MRVZCUVVrc1YwRkJWeXhUUVVGVFFTeERRVUZITEVWQlEyNURTeXhIUVVOQlJpeEZRVUZOTEV0QlFVdEZMRU5CUVVjc1JVRkRaRVFzUlVGQlowSXNTVUZGV0Vvc1JVRkJTU3hYUVVGWExGZEJRM0JDU1N4RlFVRm5RaXhIUVVONFFpeERRVU5KUVN4SFFVTkJSQ3hGUVVGTkxFdEJRVXNzUzBGQlN5eEZRVU53UWl4SlFVRk5SeXhGUVVGTlF5eEhRVUYxUWxBc1JVRkJTME1zUTBGQlR5eEZRVU42UXl4RFFVRkZMR05CUVVGUExFTkJRV01zUlVGQlNVWXNSVUZCU1N4UlFVTTVRaXhIUVVGSlRpeEZRVUZKTEdOQlFXVXNRMEZEWmtjc1JVRkJUU3hUUVVGWExFZEJRMnBDUVN4RlFVRk5MRkZCUVZFc1JVRkJSU3hGUVVOd1FpeEpRVUZOVFN4RlFVRkxSQ3hGUVVGalVpeEZRVUZKTEdGQlFXRXNSVUZETVVOSExFVkJRVTBzVVVGQlVVOHNSMEZCWTBRc1JVRkJTU3hGUVVGRkxFTkJRVU1zUTBGRGRrTXNRMEZEUVN4SlFVRkpSU3hGUVVGWkxFZEJRMXBETEVWQlFXbENMRXRCUTNKQ0xFZEJRVWxhTEVWQlFVa3NVMEZCVlN4RFFVTmtMRWRCUVVsaExFVkJRVTlpTEVWQlFVa3NVVUZCVVN4RlFVRkhMRU5CUjNSQ0xFZEJSa2xCTEVWQlFVa3NVMEZCVXl4aFFVRmxTU3hIUVVNMVFrUXNSVUZCVFN4TFFVRkxMRVZCUVVVc1JVRkRZa2dzUlVGQlNTeFRRVUZUTEdOQlFXVXNRMEZETlVJc1NVRkJUVk1zUlVGQlMwUXNSVUZCWTFJc1JVRkJTU3hUUVVGVExHRkJRV0VzUlVGRGJrUkhMRVZCUVUwc1MwRkJTMDhzUjBGQlkwUXNSVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkRjRU1zUTBGRlFVZ3NSVUZCU1N4cFFrRkJiVUlzUTBGQlF5eERRVUZEVGl4RlFVRkpMRkZCUXpkQ1dTeEZRVUZwUWxvc1JVRkJTU3hUUVVGVExFOUJRMnhETEVOQlEwRXNTVUZCVFdNc1JVRkJZMFlzUlVGQmFVSXNUMEZCV1N4SlFVRlBSQ3hGUVVGWkxFZEJRMmhGU1N4RlFVRlBReXhIUVVGVmFFSXNSVUZCU1N4VFFVRlZUU3hGUVVGTExFbEJRVTlOTEVWQlFXbENMRXRCUVU5RkxFTkJRVmNzUlVGRE9VVkdMRWxCUTBGSExFZEJRVkZGTEVkQlFWbEdMRVZCUVUwc1IwRkJTVkFzUlVGQlkwa3NRMEZCWXl4RFFVRkRMRWxCUXpGRVJ5eEZRVUZMTEVOQlFVTXNTVUZCVFN4TFFVRlBRU3hGUVVGTExFTkJRVU1zU1VGQlRTeE5RVU5vUTFvc1JVRkJUVUVzUlVGQlRTeFBRVUZUTEVOQlFVTXNTVUZCVFN4TlFVYzFRa0VzUlVGQlRVRXNSVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkJTU3hQUVVGUFdTeERRVUZKTEVkQlIzSkRXaXhGUVVGTkxFdEJRVXRaTEVOQlFVa3NRMEZEZGtJc1RVRkZTVm9zUlVGQlRTeExRVUZMWVN4SFFVRlZhRUlzUlVGQlNTeFRRVUZWVFN4RFFVRkhMRU5CUVVNc1JVRkZNME1zU1VGQlNVb3NSVUZCUVVZc1JVRkJTU3hoUVVGS0xFMUJRVUZGTEVWQlFXZENMRTlCUTJoQ0xFZEJRVWxHTEVWQlFVa3NVVUZCVXl4RFFVTmlMRWxCUVUxVExFVkJRVXRFTEVWQlFXTlNMRVZCUVVrc1QwRkJUeXhGUVVOb1ExTXNSVUZCUnl4VFFVRlRPMEZCUVVFc1EwRkJTU3hIUVVOb1FrNHNSVUZCVFN4TFFVRkxMRXRCUVVzc1JVRkRhRUpCTEVWQlFVMHNTMEZCUzA4c1IwRkJZMFFzUlVGQlNTeEZRVUZGTEVOQlFVTXNSMEZIYUVOT0xFVkJRVTBzUzBGQlN5eFBRVUZQVFN4RFFVRkZMRVZCUVVVc1EwRkZPVUlzVFVGRlNVNHNSVUZCVFN4TFFVRkxMRXRCUVVzc1RVRkhia0lzUTBGRFJDeEpRVUZKWlN4RlFVRkxiRUlzUlVGQlNTeFJRVU5VYTBJc1IwRkJUVkFzU1VGRFRrOHNSVUZCUzBFc1JVRkJSeXhSUVVGUkxFOUJRVkVzUlVGQlJTeEhRVU14UWtFc1MwRkRTeXhEUVVGRFVDeEhRVUZoUXl4SlFVRnRRbFFzUlVGQlRVRXNSVUZCVFN4UFFVRlRMRU5CUVVNc1NVRkJUU3hKUVVNNVJFRXNSVUZCVFN4TFFVRkxMRVZCUVVVc1JVRkRha0pCTEVWQlFVMHNTMEZCUzA4c1IwRkJZMFlzUlVGQlkxVXNRMEZCUlN4RlFVRkhMRVZCUVVVc1EwRkJReXhGUVVWMlJDeERRVU5CTEU5QlFVOW1MRVZCUVUwc1MwRkJTenRCUVVGQkxFTkJRVWtzUlVGQlNUdEJRVUZCTEVOQlF6bENMRU5EZEVWQkxFbEJRVTFuUWl4SFFVRk9MRTFCUVUxRExFTkJRVk1zUTBGRFdDeFpRVUZaUXl4RlFVRlBReXhGUVVGVlF5eEZRVUZUTEVOQlJXeERMRXRCUVVzc1kwRkJaMElzUzBGRmNrSXNTMEZCU3l4UlFVRlZMRXRCUldZc1MwRkJTeXhQUVVGVExFTkJRVU1zUlVGRlppeExRVUZMTEZOQlFWY3NRMEZCUXl4RlFVTnFRaXhQUVVGUExHVkJRV1VzUzBGQlRVTXNSMEZCVnl4RFFVRkZMRTFCUVU5RExFVkJRVWtzUTBGQlF5eEZRVU55UkN4SlFVRkpReXhGUVVGWkxFdEJRMW9zVDBGQlQwb3NSMEZCWVN4WlFVRmpMRTFCUVUwc1VVRkJVVUVzUTBGQlVTeEZRVU40UkVrc1JVRkJXVW9zUlVGRlVFTXNTVUZCV1N4UlFVRmhSQ3hKUVVNNVFrTXNSVUZCVlVRc1JVRkRWa0VzUlVGQlZ5eFJRVVZtTEVsQlFVMUxMRVZCUVUwc1QwRkJUeXhQUVVGUExFTkJRM1JDTEZsQlFXRXNSMEZEWWl4cFFrRkJhMElzUjBGRGJFSXNVMEZCVlN4UFFVTldMR0ZCUVdNc1IwRkRaQ3hQUVVGUkxFZEJRMUlzVjBGQldTeEhRVU5hTEZkQlFWa3NSMEZEV2l4UlFVRlRMRXRCUTJJc1JVRkJSMG9zUTBGQlR5eEZRVU5XTEV0QlFVc3NVVUZCVlVrc1JVRkRaaXhIUVVGSkxFTkJRVVVzVVVGQlFVTXNRMEZCVVN4RlFVRkpSQ3hGUVVOa1NpeEhRVUZCTEUxQlFVRkJMRVZCUVZNc1lVRkRWQ3hMUVVGTExGZEJRV0ZCTEVWQlFWRXNXVUZCV1N4WFFVRlhMRVZCUXpkRExFdEJRVXNzVjBGQlZ5eExRVUZMTEZkQlEzSkNTeXhGUVVGVkxFdEJRVXNzVjBGQlZ5eExRVUZMTEZWQlIyNURMRXRCUVVzc1YwRkJZU3hKUVVGSlF5eEhRVUZYTEVOQlFVVXNVVUZCUVVRc1EwRkJVU3hEUVVGRExFVkJRMmhFTEV0QlFVc3NWVUZCVlVFc1JVRkJVMHdzUTBGQlR5eEZRVVV2UWl4TFFVRkxMRk5CUTBSR0xFbEJRVlVzVDBGQldTeExRVUZQTEV0QlFVc3NWMEZCVjBFc1JVRkJUMHNzUlVGQlYwZ3NRMEZCVHl4RFFVTTVSU3hEUVUxQkxFOUJRVkVzUTBGRFNpeEpRVUZOVHl4RlFVRlBMRTlCUVU4c1QwRkJUMVlzUlVGQlV5eFZRVUZYTEVOQlF6TkRMRU5CUVVOSkxFVkJRVk1zUlVGQlJ5eERRVUZGTEUxQlFVOURMRVZCUVVrc1EwRkRPVUlzUTBGQlF5eEZRVU5FTEU5QlFVRkxMRVZCUVVzc1kwRkJaMElzUzBGQlN5eGpRVU14UWtFc1JVRkJTeXhSUVVGVkxFdEJRVXNzVVVGRGNFSkJMRVZCUVVzc1QwRkJVeXhMUVVGTExFOUJRVThzVFVGQlRTeEZRVU5vUTBFc1JVRkJTeXhUUVVGWExFdEJRVXNzVTBGQlV5eE5RVUZOTEVWQlEzQkRRU3hGUVVGTExGRkJRVlVzVDBGQlR5eFBRVUZQTEVOQlFVTXNSVUZCUnl4TFFVRkxMRTlCUVU4c1JVRkRla01zUzBGQlN5eGhRVU5NUVN4RlFVRkxMRmRCUVdFc1MwRkJTeXhYUVVGWExFMUJRVTBzUjBGRE5VTkJMRVZCUVVzc1QwRkJVeXhMUVVGTExFOUJRVThzVFVGQlRTeEZRVVZvUTBFc1JVRkJTeXhUUVVGWFF5eEZRVUZQTEV0QlFVc3NVVUZCVVN4RlFVTTVRaXhMUVVGTExGTkJRVk1zVFVGQlRVUXNSVUZCU3l4TlFVRk5MRVZCUXk5Q0xFdEJRVXNzVTBGRFVDeExRVUZMTEZGQlEweEJMRVZCUVVzc1RVRkJVU3hMUVVGTExFMUJRVTBzVFVGQlRTeEhRVU16UWtFc1EwRkRXQ3hEUVVWQkxFbEJRVWxVTEVWQlFVOHNRMEZEU0Zjc1IwRkJhVUlzUzBGQlN5eFJRVUZSTEVkQlF6bENMRXRCUVVzc1UwRkJVeXhKUVVGSldDeERRVUZMTEVOQlF5OUNMRU5CUlVFc1RVRkJUVmtzUlVGQlRWb3NSVUZCVHl4RFFVTllWeXhIUVVGcFFpeExRVUZMTEZGQlFWRXNSMEZET1VJc1MwRkJTeXhUUVVGVExFMUJRVTFETEVWQlFVMWFMRU5CUVVzc1EwRkRka01zUTBGVlFTeFpRVUZaWVN4RlFVRk5ReXhGUVVGTkxFTkJRM0JDTEVkQlFVa3NRMEZCUTBRc1JVRkJTeXhQUVVGUkxFTkJRMlFzU1VGQlRVVXNSVUZCVDBNc1IwRkJXU3hKUVVGSkxFVkJRemRDU0N4RlFVRkxMRTlCUlVRc1EwRkJRME1zUjBGQlVVTXNSVUZCU3l4SlFVRkpSQ3hEUVVGSkxFVkJRVWxITEVkQlFXTklMRWRCUVZFc1NVRkJTME1zUTBGQlNTeEZRVUZKUkN4RFFVTnlSU3hEUVVOQkxFOUJRVThzU1VGQlNVa3NSMEZCVFV3c1JVRkJTeXhOUVVGTkxFTkJRMmhETEVOQlEwRXNWMEZCVjJJc1JVRkJUME1zUlVGQlZVTXNSVUZCVXl4RFFVTnFReXhKUVVGSlJ5eEZRVU5LTEVkQlFVa3NUMEZCVDBvc1IwRkJZU3hYUVVOd1FrUXNSVUZCVVVNc1JVRkJVeXhMUVVGTExFTkJRVVVzUjBGQlNVUXNRMEZCVFN4RlFVRkhMRWRCUVVsQkxFTkJRVXNzUlVGRE9VTkxMRVZCUVZsS0xGVkJSVkFzVFVGQlRTeFJRVUZSUVN4RFFVRlJMRVZCUVVjc1EwRkRPVUlzU1VGQlRXdENMRVZCUVZsRExFZEJRVTBzVDBGQlQwRXNSMEZCVFN4VlFVRlpRU3hoUVVGaExGRkJRVlZCTEdGQlFXRXNUMEZETDBWRExFVkJRVkZ3UWl4RlFVRlRMRTlCUVU5clFpeERRVUZSTEVWQlFVVXNTVUZCU1N4TlFVRk5MRVZCUXpsRFJTeEZRVUZOTEU5QlFWTXNTVUZEWm5CQ0xFVkJRVmRCTEVWQlFWTXNUMEZCVDI5Q0xFTkJRVXNzUjBGRGNFTm9RaXhGUVVGWlNpeERRVU5vUWl4TlFVTlRReXhKUVVGWkxGRkJRV0ZFTEVsQlF6bENReXhGUVVGVlJDeEZRVU5XUVN4RlFVRlhMRkZCUldZc1IwRkJUU3hEUVVGRkxITkNRVUZCY1VJc1JVRkJkVUlzWVVGQlFVTXNSVUZCWXl4TFFVRkJReXhGUVVGTkxHTkJRVUZETEVWQlFXVXNVMEZCUVVNc1JVRkJWU3hKUVVGQlF5eERRVUZKTEVWQlFVbDZRaXhIUVVGQkxFdEJRVUZCTEVWQlFWY3NRMEZCUXl4RlFVTXhSaXhEUVVGRkxGTkJRVUV3UWl4RlFVRlZMRmRCUVVGRExFVkJRVmtzWTBGQlFVTXNRMEZCWXl4RlFVRkpReXhIUVVGclFpeExRVVZzUlZJc1IwRkJaMElzUjBGQlJ5eEZRVU5pVXl4RlFVRk5MRU5CUTFJc2MwSkJRWFZDVml4SFFVRkJMRXRCUVVGQkxFVkJRWGxDTEVkQlEyaEVMR05CUVdWSExFZEJRVUVzUzBGQlFVRXNSVUZCYVVJc1IwRkRhRU1zVTBGQlFVY3NSVUZEUVN4VFFVRkJSaXhGUVVOQkxGTkJRVlZ5UWl4RlFVTldMRTlCUVZFc1MwRkJTeXhQUVVOaUxHTkJRVUY1UWl4RFFVTktMRVZCUTAxcVFpeEZRVUZQYjBJc1IwRkJWMnBETEVWQlFVOHlRaXhGUVVGTFN5eERRVUZITEVWQlEzWkRMRTlCUVVsU0xFZEJRVkZWTEVWQlFXRnlRaXhEUVVGSkxFbEJRM3BDUVN4RlFVRkxMRXRCUVU4c1NVRkRhRUpuUWl4RlFVRlhMRVZCUTBwb1FpeERRVU5ZTEVOQlMwRXNWMEZCVjNOQ0xFVkJRVXR1UXl4RlFVRlBSU3hGUVVGVkxFTkJRVU1zUlVGQlJ5eERRVU5xUXl4SlFVRk5hME1zUlVGQlNTeExRVUZMTEZkQlFWZEVMRVZCUVVzc1MwRkJUV3BETEVOQlFVOHNSVUZEZEVOclFpeEZRVUZKTEV0QlFVc3NWMEZCVjNCQ0xFVkJRVThzUzBGQlRVVXNRMEZCVHl4RlFVTTVReXhQUVVGUExFbEJRVWx0UXl4SFFVRkxSQ3hGUVVGSGFFSXNRMEZCUXl4RFFVTjRRaXhEUVV0QkxFOUJRVTlsTEVWQlFVc3NRMEZEVWl4UFFVRlBlRUlzUjBGQmFVSXNTMEZCU3l4UlFVRlJMRVZCUVVrc1MwRkJTeXhUUVVGVExFOUJRVTkzUWl4RFFVRkhMRVZCUVVrc1JVRkRla1VzUTBGTFFTeFRRVUZUZGtJc1JVRkJUU3hEUVVOWUxFOUJRVWt3UWl4SFFVRlpNVUlzUTBGQlNTeEZRVU5hTEV0QlFVc3NWVUZCV1N4TFFVTldMRWxCUlZnc1MwRkJTeXhUUVVGWExFdEJRMVFzU1VGRlNrUXNSMEZCYVVJc1MwRkJTeXhSUVVGUkxFVkJReTlDTEV0QlFVc3NVMEZCVXl4VFFVRlRReXhEUVVGSkxFVkJRek5DTEVWQlExWXNRMEZOUVN4SlFVRkpkVUlzUlVGQlMwa3NSVUZCV1N4RFFVTnFRaXhQUVVGUFRDeEZRVUZoTEV0QlFVc3NVVUZCVVN4RlFVTXpRaXhMUVVGTExGTkJRVk1zU1VGQlNVTXNSVUZCUzBrc1EwRkJWU3hGUVVOcVF5eE5RVU5XTEVOQlRVRXNUVUZCVFROQ0xFVkJRVTB5UWl4RlFVRlpMRU5CUTNCQ0xFOUJRVWxFTEVkQlFWa3hRaXhEUVVGSkxFVkJRMVFzUTBGQlF6SkNMRWRCUVdORExFVkJRVk1zUzBGQlN5eFJRVUZSTEVWQlEzUkRMRXRCUVVzc1UwRkJVeXhOUVVOa0xFdEJRVXNzVTBGRFVrNHNSVUZCWVN4TFFVRkxMRkZCUVZFc1JVRkRNMElzUzBGQlN5eFRRVUZUTEUxQlFVMTBRaXhGUVVGTk1rSXNRMEZCVlN4RlFVTndReXhOUVVOV0xFTkJTVUVzU1VGQlNVb3NSVUZCU3l4RFFVTk1MRTlCUVU5RUxFVkJRV0VzUzBGQlN5eFJRVUZSTEVWQlFVa3NTMEZCU3l4VFFVRlRMRWxCUVVsRExFTkJRVWNzUlVGQlNTeEZRVU5zUlN4RFFVbEJMRTFCUVUxMlFpeEZRVUZOTEVOQlExSXNUMEZCU1RCQ0xFZEJRVmt4UWl4RFFVRkpMRVZCUTFRc1MwRkJTeXhYUVVGaExFOUJRM1JDYzBJc1JVRkJZU3hMUVVGTExGRkJRVkVzUlVGQlNTeExRVUZMTEZOQlFWTXNUVUZCVFhSQ0xFTkJRVWtzUlVGQlNTeEZRVU55UlN4RFFVdEJMRWxCUVVsMVFpeEZRVUZMYmtNc1JVRkJUeXhEUVVOU0xFdEJRVXNzVlVGQldTeExRVVZxUWl4TFFVRkxMRk5CUVZkNVF5eEhRVUZ0UWl4TFFVRkxMRTlCUVZFc1EwRkJRMDRzUTBGQlJ5eEZRVUZIYmtNc1EwRkJTeXhGUVVWMlJGY3NSMEZCYVVJc1MwRkJTeXhSUVVGUkxFZEJRMjVETEV0QlFVc3NVMEZCVXl4SlFVRkpkMElzUlVGQlMyNURMRU5CUVVzc1EwRkZjRU1zUTBGTFFTeE5RVUZOV1N4RlFVRk5XaXhGUVVGUExFTkJRMWh6UXl4SFFVRlpNVUlzUTBGQlNTeEZRVVZvUWl4TFFVRkxMRk5CUVZkYUxFVkJSVmdzUzBGQlN5eFZRVUZaTEV0QlJYUkNMRXRCUVVzc1UwRkJWM2xETEVkQlFXMUNMRXRCUVVzc1QwRkJVU3hOUVVGTkxFdEJRVXMzUWl4RFFVRkpMRVZCUVVkYUxFTkJRVXNzUlVGRmJFVlhMRWRCUVdsQ0xFdEJRVXNzVVVGQlVTeEhRVU51UXl4TFFVRkxMRk5CUVZNc1RVRkJUVU1zUlVGQlRWb3NRMEZCU3l4RFFVVjJReXhEUVZGQkxGVkJRVlZQTEVWQlFWTk1MRVZCUVZVc1EwRkJReXhGUVVGSExFTkJRM3BDTEU5QlFVOUxMRWRCUVZrc1YwRkRia0pCTEVWQlFWVXNUMEZCVDBFc1EwRkJUeXhIUVVNMVFpeEpRVUZKUkN4RlFVTktMRTlCUVZGRExFVkJRVk1zUTBGRFlpeEpRVUZMTEUxQlEwY3NTMEZCU3l4WFFVTk1MRXRCUVVzc1YwRkJWeXhMUVVGTExGRkJRVlVzVFVGRkwwSXNTMEZCU3l4WFFVRmhMRWxCUVVsRExFZEJRVmNzUTBGQlJTeFJRVUZUTEV0QlFVMHNRMEZCUXl4RlFVTjJSRVlzUlVGQlRTeERRVUZGTEdsQ1FVRnJRaXhIUVVGUExFOUJRVkVzVlVGQlZ5eEZRVU53UkN4TlFVTktMRWxCUVVzc1RVRkRUQ3hKUVVGTExFOUJRMGNzUzBGQlN5eFhRVU5NTEV0QlFVc3NWMEZCVnl4TFFVRkxMRkZCUVZWRExFVkJSUzlDTEV0QlFVc3NWMEZCWVN4SlFVRkpReXhIUVVGWExFTkJRVVVzVVVGQlFVUXNRMEZCVVN4RFFVRkRMRVZCUTJoRVJDeEZRVUZOTEVOQlFVVXNhVUpCUVd0Q0xFZEJRVTBzVDBGQlVTeE5RVUZQTEVWQlF5OURMRTFCUTBvc1MwRkJTeXhMUVVOSExFdEJRVXNzV1VGRFRDeFBRVUZQTEV0QlFVc3NWMEZEYUVKQkxFVkJRVTBzUzBGRFRpeE5RVU5LTEZGQlFWTXNRMEZEVEN4SlFVRk5iME1zUlVGQlN5eExRVUZMTEZWQlFWVnVReXhEUVVGUExFVkJRMnBETEUxQlFVMHNTVUZCU1N4TlFVRk5MQ3RFUVVFclJHMURMRU5CUVVVc1JVRkJSU3hEUVVOMlJpeERRVU5LTEVOQlJVRXNSMEZCU1hoRExFVkJRVkVzYTBKQlFXdENMRTlCUXpGQ0xFdEJRVXNzVDBGQlUwRXNSVUZCVVN4bFFVTnFRa2tzUlVGRFRDeExRVUZMTEU5QlFWTXNTVUZCU1hGRExFZEJRVThzVDBGQlR5eFBRVUZQY2tNc1JVRkJTMG9zUTBGQlR5eERRVUZETEUxQlJYQkVMRTlCUVUwc1NVRkJTU3hOUVVGTkxIRkZRVUZ4UlN4RFFVTTNSaXhEUVVWQkxFdEJRVXNzUTBGQlJTeExRVUZCTUVNc1JVRkJUU3hSUVVGQlF5eEZRVUZUTEZOQlFVRkRMRVZCUVZVc1kwRkJRVU1zUlVGQlpTeFRRVUZCYmtJc1JVRkJWU3hSUVVGQmIwSXNRMEZCVVN4RlFVRkpMRU5CUVVNc1JVRkJSeXhEUVVOeVJTeEpRVUZOYUVJc1JVRkJUU3hEUVVOU0xGRkJRVk1zU1VGQlNTeEpRVU5pTEVsQlFVc3NTMEZEVEN4TFFVRk5MRU5CUVVOWkxFVkJRMUFzVTBGQlZVVXNTVUZCWVN4SFFVTjJRaXhoUVVGakxFZEJRMlFzWTBGQlpTeFBRVUZQUXl4SFFVRnJRaXhUUVVGWFFTeEZRVUZuUWl4SFFVTjJSU3hGUVVOTlJTeEZRVUZOUXl4SFFVRkxMRXRCUVVzc1UwRkJWVXdzUjBGQlFTeExRVUZCUVN4RlFVRlhMRWRCUVVsaUxFTkJRVWNzUlVGRGJFUXNSMEZCU1N4UFFVRlBTaXhIUVVGaExGZEJRM0JDTEU5QlFWY3NRMEZCUlN4TlFVRkJkVUlzUlVGQlR5eEpRVUZCUml4RFFVRkpMRWxCUVV0cVFpeEZRVUZKTEZGQlFWRXNUMEZCVHl4RlFVTTFRMG9zUlVGQlUzRkNMRVZCUVV0RkxFTkJRVXNzUlVGRE0wSXNUMEZCVHl4UFFVRlBTQ3hIUVVGWkxGZEJRM0JDU1N4SFFVRmhTaXhGUVVGVExFTkJRVVVzUjBGQlNVTXNRMEZCU1N4RlFVRkhMRWRCUVVsQkxFTkJRVWNzUlVGRE1VTkJMRU5CUTFZc1EwRlBRU3hQUVVGUFNpeEZRVUZUYWtJc1JVRkJWU3hEUVVOMFFpeFBRVUZQTEV0QlFVc3NTMEZCU3l4RFFVRkZMRXRCUVUwc1IwRkJUU3hSUVVGQmFVSXNSVUZCVXl4VFFVRlZMRWRCUVU4c1UwRkJRV3BDTEVOQlFWTXNRMEZCUXl4RFFVTjJSU3hEUVVWQkxGTkJRVk14UWl4RlFVRlZMRU5CUVVNc1JVRkJSeXhEUVVOdVFpeEhRVUZKTEV0QlFVc3NUMEZCVHl4UFFVRlRMRVZCUTNKQ0xFMUJRVTBzU1VGQlNTeE5RVUZOTERSRFFVRTBReXhGUVVOb1JTeEhRVUZKTEZkQlFWbEJMRWxCUTFnc1EwRkJReXhQUVVGUExGVkJRVlZCTEVWQlFWRXNUVUZCVFN4SFFVRkxMRTlCUVU5QkxFVkJRVkVzVFVGQlRTeEhRVUZMTEVkQlFVa3NRMEZEY0VVc1NVRkJUVzFFTEVWQlFVa3NTMEZCU3l4VlFVRlZia1FzUlVGQlVTeE5RVUZOTEVWQlEzWkRMRTFCUVUwc1NVRkJTU3hOUVVGTkxHMUVRVUZ0UkcxRUxFTkJRVU1zUlVGQlJTeERRVU14UlN4RFFVTkJMRTlCUVU5RExFZEJRV3RDTEV0QlFVMXdSQ3hEUVVGUExFTkJRekZETEVOQlEwb3NSVUZEUVN4VFFVRlRVeXhIUVVGcFFqUkRMRVZCUVZVc1EwRkRhRU1zUjBGQlNYSkNMRVZCUVdGeFFpeERRVUZSTEVWQlEzSkNMRTFCUVU4c1IwRkRXQ3hOUVVGTkxFbEJRVWtzVFVGQlRTeHBSRUZCYVVRc1EwRkRja1VzUTBNMVZVRXNTVUZCVFVNc1IwRkJUaXhqUVVGM1FpeExRVUZOTEVOQlF6RkNMRmxCUVZsRExFVkJRVTFETEVWQlFVdERMRVZCUVUxRExFVkJRVk1zUTBGRGJFTXNUVUZCVFN4RlFVTk9MRXRCUVVzc1MwRkJUMGdzUlVGRFdpeExRVUZMTEV0QlFVOUZMRVZCUTFvc1MwRkJTeXhSUVVGVlF5eEZRVU5tTEV0QlFVc3NTVUZCVFVZc1EwRkRaaXhEUVVOS0xFVkJRMDFITEVkQlFVNHNZMEZCTmtKTUxFVkJRVlVzUTBGRGJrTXNXVUZCV1VVc1JVRkJTME1zUlVGQlRVTXNSVUZCVXl4RFFVTTFRaXhOUVVGTkxHbENRVUZyUWtZc1JVRkJTME1zUlVGQlRVTXNRMEZCVHl4RFFVTTVReXhEUVVOS0xFVkJRMDFGTEVkQlFVNHNZMEZCTUVKT0xFVkJRVlVzUTBGRGFFTXNXVUZCV1VVc1JVRkJTME1zUlVGQlRVTXNSVUZCVXl4RFFVTTFRaXhOUVVGTkxHTkJRV1ZHTEVWQlFVdERMRVZCUVUxRExFTkJRVThzUTBGRE0wTXNRMEZEU2l4RlFVTk5SeXhIUVVGblFpeERRVUZEUXl4RlFVRkxReXhKUVVGUlF5eEhRVUZWTEVOQlF6RkRMRWRCUVVsQkxFVkJRVTBzU1VGQlNTeERRVUZETEVsQlFVMHNSMEZEYWtJc1QwRkRTa0VzUlVGQlRTeFJRVUZWUVN4RlFVRk5MRWxCUVVrc1NVRkJTVklzUjBGQlQwOHNSVUZCUnl4UlFVRlJVQ3hEUVVGSExFTkJRVU1zUlVGRGNFUXNSMEZCVFN4RFFVRkZMRXRCUVVGVExFVkJRVTBzU1VGQlFVTXNRMEZCU1N4RlFVRkpSaXhGUVVGTkxGRkJRVkVzUTBGQlF5eEZRVU55UTBFc1JVRkJUU3hUUVVGWExGbEJRVmxETEVOQlFVa3NXVUZCV1VNc1EwRkJSeXhIUVVOb1JDeEpRVUZKUXl4RlFVRkxSQ3hGUVVGTkxFVkJRMWhGTEVWQlFWVk9MRVZCUTFRc1ZVRkJWVU1zUlVGQlJ5eFhRVUZYUlN4RlFVRlBMRU5CUVVNc1JVRkJSMFlzUlVGQlJ5eFhRVUZYUlN4RFFVRkpMRU5CUVVNc1JVRkRkRVFzVVVGQlVTeFhRVUZaTEVWQlFVVXNSVUZGTTBJc1IwRkJTVVVzUjBGQlRTeEpRVUZOUXl4RlFVRlJMRTlCUVZNc1IwRkJTU3hEUVVOcVF5eEpRVUZOUXl4RlFVRlpMRXRCUVVzc1NVRkJTVVlzUlVGQlN5eEhRVUZKUXl4RlFVRlJMRTlCUVZNc1JVRkJSU3hGUVVOMlJFRXNSVUZCVlN4VFFVRk5RU3hGUVVGUkxGVkJRVlZETEVOQlFWTXNSVUZETTBOR0xFZEJRVTFGTEVWQlFWa3NRMEZEZEVJc1EwRkpRU3hIUVVoSlJDeEZRVUZSTEU5QlFWTXNTMEZEYWtKQkxFVkJRVlZCTEVWQlFWRXNWVUZCVlN4RlFVRkhMRVZCUVVVc1JVRkJTU3hWUVVWeVEwZ3NSVUZCVHl4SFFVRkxMRTlCUVU4c1MwRkJTMGNzUlVGQlVTeFZRVUZWTEVWQlFVZEVMRU5CUVVVc1EwRkJReXhGUVVGSExFTkJSVzVFTEVsQlFVbEhMRVZCUVU5U0xFVkJRVWtzVlVGQlZVTXNSVUZCUnl4WFFVRlhSU3hGUVVGUExFTkJRVU1zUlVGQlIwWXNSVUZCUnl4WFFVRlhSU3hGUVVGUExFTkJRVU1zUTBGQlF5eEZRVU55UlVzc1JVRkJTeXhQUVVGVExFdEJRMlJCTEVWQlFVOUJMRVZCUVVzc1ZVRkJWU3hGUVVGSExFVkJRVVVzUlVGQlNUdEJRVUZCTEVkQlEyNURSaXhGUVVGVlJTeEZRVUZQUml4RFFVTnlRaXhEUVVOQkxFZEJRVWtzVDBGQlR5eExRVUZMUVN4RFFVRlBMRVZCUVVjc1EwRkRkRUlzU1VGQlNVY3NSVUZCVVN4RlFVTk9ReXhGUVVGTlVpeEZRVUZOTEZGQlFWRXNRMEZCUXl4RlFVTjJRbEVzUjBGQlQwRXNSVUZCU1N4UFFVRlRVQ3hIUVVGUlR5eEZRVUZKTEVsQlFVMU9MRWxCUTNSRFN5eEZRVUZSTEV0QlFVc3NTVUZCU1N4RlFVRkhMRXRCUVVzc1NVRkJTVU1zUlVGQlNTeEpRVUZOVGl4RlFVRkxMRWRCUVV0RExFTkJRVVVzUTBGQlF5eEhRVVY0UkN4SlFVRk5UU3hGUVVGVkxFbEJRVWtzVDBGQlQwNHNRMEZCUlN4RlFVRkpMRWxCUVVrc1QwRkJUMGtzUTBGQlN5eEZRVU5xUkZBc1JVRkJUU3hUUVVGWE8wRkJRVUU3UVVGQlFTeEZRVUZSU1N4RFFVRlBPMEZCUVVFc1JVRkJTMHNzUTBGQlR6dEJRVUZCTEVOQlEyaEVMRU5CUTBvc1JVTjBSRUVzVTBGQlUwTXNSMEZCWVVNc1JVRkJVU3hEUVVGRkxFdEJRVUZETEVWQlFVMHNWVUZCUVVNc1JVRkJWeXhMUVVGQlF5eEZRVUZOTEU5QlFVRkRMRVZCUVZFc1VVRkJRVU1zUlVGQlV5eGhRVUZCUXl4RlFVRmpMR1ZCUVVGRExFTkJRV1VzUlVGQlJ5eERRVU53Unl4SlFVRkpReXhGUVVGakxFZEJRMlJETEVWQlFWbEdMRVZCUTFwSExFVkJRVmRJTEVWQlExaEpMRVZCUVZVc1IwRkRWa01zUlVGQllTeEhRVU5pUXl4RlFVRmhMRWRCUTJKRExFVkJRVmNzUjBGRFdFTXNSVUZCVFN4TFFVTk9ReXhGUVVGVExFdEJRMVJETEVWQlFVMHNTMEZEVGtNc1JVRkJiVUlzUzBGRGJrSkRMRVZCUVZFc1MwRkRVa01zUlVGQlVTeExRVU5TUXl4RlFVRlJMRXRCUTFvc1VVRkJWME1zUzBGQlUzUkNMRVZCWTJoQ0xFOUJZa2xqTEVsQlEwbFJMRVZCUVUwc1QwRkJVeXhUUVVObVFTeEZRVUZOTEU5QlFWTXNWMEZEWmtFc1JVRkJUU3hQUVVGVExGTkJRMlpxUWl4RlFVRlJhVUlzUlVGQlRTeFBRVUZSTEdWQlFXZENMSFZGUVVGMVJTeEZRVU5xU0ZJc1JVRkJWeXhKUVVWWVF5eEpRVU5KVGl4SFFVRmhZU3hGUVVGTkxFOUJRVk1zVjBGQllVRXNSVUZCVFN4UFFVRlRMRmRCUTNoRWFrSXNSVUZCVVZVc1JVRkJTeXhuUWtGQmFVSXNjVU5CUVhGRExFVkJSWFpGUVN4RlFVRk5MRTFCUlVaUExFVkJRVTBzUzBGQlRTeERRVU5vUWl4SlFVRkxMRkZCU1Vjc1EwRkJRM0pDTEVsQlEwRkRMRWxCUVdNc1kwRkJaVU1zUjBGQlFTeFpRVUZCUVN4RlFVRk5MRkZCUVZNc2IwSkJRemREYlVJc1JVRkJUU3hQUVVGUExGTkJRVk1zUjBGQlNTeEpRVU14UWxBc1JVRkJUVThzUjBGRlZsb3NSVUZCVnl4SFFVTllMRTFCUTBvc1NVRkJTeXhWUVVGWExFTkJRMUJCTEVkQlEwUk1MRVZCUVZGcFFpeEZRVUZQTEdWQlFXZENMSGRGUVVGM1JTeEZRVU16Unl4SlFVRk5ReXhGUVVGTFJDeEZRVUZOTEU5QlFVOHNWVUZCVlN4RFFVRkRMRWRCUVVzc1NVRkRia05ZTEVWQlIwUkJMRWRCUVZkRExFVkJRV0ZYTEVWQlJuaENXaXhGUVVGVldTeEZRVWRrV0N4RlFVRmhMRWRCUTJKSUxFVkJRVmtzUjBGRFdpeExRVU5LTEVOQlEwRXNTVUZCU3l4VlFVTkhRU3hGUVVOSlJTeEZRVU5CUVN4SFFVRlhWeXhGUVVGTkxFOUJSV3BDWkN4RlFVRmpMRWRCUjJ4Q1NTeEhRVUZqVlN4RlFVRk5MRTlCUTNoQ1lpeEZRVUZaTEVkQlExcEpMRVZCUVdFc1NVRkRWRWNzUjBGQlZVTXNTMEZEVmtNc1JVRkJiVUpKTEVkQlEzWkNXaXhGUVVGWExFZEJRMWdzVFVGRFNpeEpRVUZMTEZOQlEwZE5MRWRCUTBGWUxFVkJRVkZwUWl4RlFVRlBMRzFDUVVGdlFpeHZRMEZCYjBNc1JVRkRka1ZCTEVWQlFVMHNUMEZCVHl4VFFVRlRMRWRCUVVjc1IwRkRla0pxUWl4RlFVRlJhVUlzUlVGQlRTeFBRVUZUUVN4RlFVRk5MRTlCUVU4c1QwRkJVeXhGUVVGSExGbEJRV0VzYTBOQlFXMURMRVZCUVVrc1JVRkRlRWRPTEVWQlFWTk5MRVZCUTB4RUxFbEJRVlVzVDBGRFZrRXNSVUZCVVVNc1JVRkJUU3hSUVVOc1FtSXNSVUZCV1N4SFFVTmFReXhGUVVGWExFZEJRMWhKTEVWQlFWY3NSMEZEV0N4TlFVTktMRWxCUVVzc1RVRkJUeXhEUVVOS1J5eEhRVU5CV2l4RlFVRlJhVUlzUlVGQlR5eG5Ra0ZCYVVJc2FVTkJRV2xETEVWQlEzSkZUQ3hGUVVGTlN5eEZRVU5HUkN4SlFVRlZMRTlCUTFaQkxFVkJRVkZETEVWQlFVMHNVVUZEYkVKaUxFVkJRVmtzUjBGRFdrTXNSVUZCVnl4SFFVTllTU3hGUVVGWExFZEJRMWdzUzBGRFNpeERRVU5CTEV0QlFVdGFMRWRCUlVkakxFZEJRVlZETEVsQlExWmFMRVZCUVZGcFFpeEZRVUZQTEdsQ1FVRnJRaXh6UTBGQmMwTkJMRVZCUVUwc1RVRkJUU3haUVVGWkxFVkJReTlHUml4SFFVTkJaaXhGUVVGUmFVSXNSVUZCVHl4dFFrRkJiMElzWTBGQlkwRXNSVUZCVFN4TlFVRk5MRTlCUVU5eVFpeEhRVUZCTEV0QlFVRkJMRVZCUVZFc1dVRkJXU3hGUVVGRkxFVkJRemxHYlVJc1JVRkJVVVVzUlVGRFVtSXNSVUZEU1ZBc1NVRkJZeXhuUWtGQmEwSkJMRWxCUVdNc2JVSkJRMnhFVVN4RlFVRlhMRWRCUTFnc1RVRkRTaXhKUVVGTExGRkJRMFFzUjBGQlNWUXNSVUZCVFN4RFFVTkdhMElzUjBGRFFXUXNSVUZCVVdsQ0xFVkJRVThzYlVKQlFXOUNMRzFDUVVGdFFuSkNMRU5CUVVrc1JVRkJSU3hGUVVOb1JXdENMRVZCUVZGSExFVkJRMUppTEVWQlFWa3NSMEZEV2tNc1JVRkJWeXhIUVVOWUxFdEJRMG9zUTBGRlNpeFJRVU5KVEN4RlFVRlJhVUlzUlVGQlR5eHRRa0ZCYjBJc1kwRkJZMEVzUlVGQlRTeEpRVUZKTEZGQlFWRXNSVUZEYmtWaUxFVkJRVmtzUjBGRFdrTXNSVUZCVnl4RlFVTnVRaXhEUVVWS0xFbEJRVTFqTEVWQlFVOTRRaXhGUVVGUFFTeEZRVUZQTEU5QlFWTXNRMEZCUXl4RlFVTXZRbmxDTEVWQlFVMUVMRVZCUVU5QkxFVkJRVXNzVDBGQlUwRXNSVUZCU3l4UFFVRlBMRTlCUVZOd1FpeEZRVU4wUkN4UFFVRkpWU3hIUVVOQldDeEhRVU5CUVN4RlFVRkxMRTlCUVZNc1UwRkRaRUVzUlVGQlN5eFBRVUZUTEZkQlEyUkJMRVZCUVVzc1QwRkJVeXhWUVVOaVFTeEZRVUZMTEU5QlFWTXNWVUZCV1VFc1JVRkJTeXhUUVVGWExFdEJRek5EUlN4RlFVRlJSaXhGUVVGTExFOUJRVkVzWlVGQlowSXNkVVZCUVhWRkxFVkJSVFZIV1N4SlFVTkZUaXhIUVVGaFRTeEZRVUZKTEZGQlFWVlVMRWxCUTNwQ1NDeEhRVUZCTEZsQlFVRkJMRVZCUVUwc1VVRkJVeXhqUVVObVFTeEhRVUZCTEZsQlFVRkJMRVZCUVUwc1VVRkJVeXhqUVVOdVFrVXNSVUZCVVZVc1JVRkJTeXhuUWtGQmFVSXNjVU5CUVhGRExFVkJRMmhGTEVOQlEwZ3NUVUZCUVVrc1JVRkRRU3hOUVVGQlF5eEZRVU5CTEZsQlFVRmFMRVZCUTBFc1VVRkJRVWNzUlVGRFFTeFhRVUZCUlN4RlFVTkJMRTlCUVVGSExFVkJRMEVzU1VGQlFVTXNSVUZEUVN4cFFrRkJRVU1zUlVGRFFTeEpRVUZCVHl4RlFVTkJMRTFCUVU5S0xFZEJRVUVzUzBGQlFVRXNSVUZCVTBrc1EwRkRjRUlzUTBGRFNpeERRMnBLUVN4VFFVRlRReXhIUVVGblFrTXNSVUZCU3l4RFFVTXhRaXhIUVVGSkxFTkJRVU5CTEVWQlEwUXNUMEZCVHl4TFFVTllMRTlCUVZGQkxFVkJRVWtzUzBGQlRTeERRVU5rTEVsQlFVc3NVVUZEVEN4SlFVRkxMRk5CUTB3c1NVRkJTeXgxUWtGRFRDeEpRVUZMTEhWQ1FVTkVMRWRCUVVsQkxFVkJRVWtzVDBGQlR5eFRRVUZUTzBGQlFVRXNRMEZCU1N4RlFVTjRRaXhOUVVGUExFZEJRMWdzUjBGQlNVRXNSVUZCU1N4TFFVTktMRkZCUVZkRExFdEJRVTFFTEVWQlFVa3NTVUZEYWtJc1IwRkJTVU1zUlVGQlJ5eFBRVUZUTEZWQlExb3NUVUZCVHl4SFFVTnVRaXhOUVVGUExFZEJRMWdzU1VGQlN5eHJRa0ZEUkN4UlFVRlhReXhMUVVGTlJpeEZRVUZKTEUxQlFVOHNRMEZEZUVJc1VVRkJWME1zUzBGQlRVTXNSVUZCUnl4TlFVTm9RaXhIUVVGSlJDeEZRVUZITEU5QlFWTXNWVUZEV2l4TlFVRlBMRWRCUTJZc1IwRkJTVU1zUlVGQlJ5eExRVU5JTEZGQlFWZEVMRXRCUVUxRExFVkJRVWNzU1VGRGFFSXNSMEZCU1VRc1JVRkJSeXhQUVVGVExGVkJRMW9zVFVGQlR5eEhRVU51UWl4SFFVRkpSaXhIUVVGblFrY3NSVUZCUnl4SFFVRkhMRWRCUVV0SUxFZEJRV2RDUnl4RlFVRkhMRXRCUVVzc1JVRkRia1FzVFVGQlR5eEZRVU5tTEVOQlEwRXNUVUZCVHl4SFFVTllMRkZCUTBrc1RVRkJUeXhGUVVObUxFTkJRMG9zUTBNM1FrRXNVMEZCVTBNc1IwRkJaMEpETEVWQlFWRkRMRVZCUVVsRExFVkJRVk1zUTBGRE1VTXNTVUZCU1VRc1IwRkJRU3haUVVGQlFTeEZRVUZKTEZGQlFWTXNhMEpCUVcxQ0xFTkJRMmhETEVsQlFVMUZMRVZCUVUxR0xFVkJRVWNzU1VGQlNTeERRVUZETEVWQlEyaENSU3hGUVVGSkxGTkJRVmRJTEVsQlEyUkhMRVZCUVVrc1UwRkJWeXhMUVVGUFFTeEZRVUZKTEZOQlFWY3NUVUZEZEVORExFZEJRV2RDU0N4RFFVRkZMRWRCUld4Q1F5eEZRVUZSUXl4RlFVRkxMR0ZCUkVRc2VVUkJRMjlDTEVWQlFVa3NRMEZGTlVNc1EwRkRTaXhEUTFaQkxGTkJRVk5GTEVkQlFWbERMRVZCUVV0RExFVkJRVTlETEVWQlFWRXNRMEZEY2tNc1IwRkJUU3hEUVVGRkxGZEJRVUZETEVOQlFWY3NSVUZCU1Vnc1JVRkJTU3hSUVVNelFpeEhRVUZKUnl4SlFVRmxMRWRCUTJZc1RVRkJUeXhIUVVOWUxFbEJRVTFETEVWQlFWVXNUMEZCVDBRc1IwRkJaU3hYUVVOb1EwRXNSVUZEUVN4RFFVRkRSU3hGUVVGSFF5eEpRVUZOUkN4SlFVRk5ReXhIUVVGTlF5eEZRVUZUUml4RFFVRkRMRWRCUVV0RkxFVkJRVk5FTEVOQlFVTXNSMEZCUzBRc1JVRkJSU3hSUVVGVlF5eEZRVUZGTEUxQlEzaEZMRTlCUVU5TUxFVkJRVTBzUzBGQlMwOHNSMEZCVVVvc1JVRkJVVWtzUlVGQlN5eEpRVUZMVGl4RFFVRk5MRU5CUVVNc1EwRkRka1FzUTBOSVFTeEpRVUZOVHl4SFFVRmpMR3RFUVVOd1FpeFRRVUZUUXl4SFFVRm5RaXhEUVVGRkxGbEJRVUZETEVWQlFXRXNhVUpCUVVGRExFTkJRV2xDTEVWQlFVZERMRVZCUVV0RExFVkJRVWxETEVWQlFWTkRMRVZCUVVzc1EwRlNia1lzU1VGQlFVTXNSVUZCUVVNc1JVRlRTU3hKUVVGTlF5eEhRVUZaUml4RlFVRkJSQ3hIUVVGQkxGbEJRVUZCTEVWQlFVc3NXVUZCVEN4TFFVRkJReXhGUVVGclFrY3NSMEZET1VKRExFVkJRVTBzU1VGQlNVWXNSVUZCVlU0c1JVRkJTU3hOUVVGTkxFVkJRMmhEUVN4RlFVRkpMRk5CUTBwQkxFVkJRVWtzVDBGQlV5eEpRVU5xUWl4SlFVRkpVeXhGUVVGVFVpeEZRVUZITEU5QlExcFRMRVZCUVdFc1MwRkRha0lzVVVGQlYwTXNTMEZCV1ZZc1JVRkJSeXhOUVVGUExFTkJRemRDTEVkQlFVMHNRMEZCUlN4TlFVRkJWeXhGUVVGUExFbEJRVUZETEVWQlFVc3NTVUZCUVVNc1JVRkJTeXhOUVVGQlF5eERRVUZOTEVWQlFVbEtMRVZCUlRkQ1N5eEZRVUZYUXl4SFFVRmhUQ3hGUVVGUExFTkJRMnBETEZWQlFWY3NiVUpCUTFnc1MwRkJUVU1zUjBGQlFTeExRVUZCUVN4RlFVRlBReXhIUVVGQkxGbEJRVUZCTEVWQlFVMHNSMEZEYmtJc1QwRkJRVXdzUlVGRFFTeFJRVUZCVUN4RlFVTkJMR0ZCUVdORUxFVkJRVWNzVDBGRGFrSXNaVUZCWjBJc1JVRkRjRUlzUTBGQlF5eEZRVU5MYVVJc1JVRkJZeXhEUVVGRFJpeEZRVUZUTEUxQlF6bENMRWRCUVVsRkxFVkJRV0VzUTBGUFlpeEhRVTVKVEN4SlFVTkpRU3hGUVVGSkxFOUJRVk1zV1VGRFlsZ3NSVUZCVVU4c1JVRkJVU3gzUWtGQmVVSXNlVVJCUVhsRUxFVkJRemRHTEZkQlFWbEpMRWRCUVU5QkxFVkJRVWtzVTBGQlYxb3NSVUZCUnl4UlFVTXhRME1zUlVGQlVVOHNSVUZCVVN4aFFVRmpZaXhGUVVGWExFZEJSVGRETEVOQlFVTnZRaXhGUVVGVExGRkJRVlVzUTBGQlEwRXNSVUZCVXl4TFFVRlBMRU5CUVVOR0xFVkJRVXNzUTBGRE0wTktMRVZCUVdGTkxFVkJRVk1zU1VGRGJFSkJMRVZCUVZNc1ZVRkRURklzUlVGQlNTeFJRVU5LUVN4RlFVRkpMRk5CUVZjN1FVRkJRU3hGUVVGUFVTeEZRVUZUTEZGQlJTOUNVaXhGUVVGSkxGRkJRVlZSTEVWQlFWTXNVMEZGTDBJc1VVRkRTaXhGUVVOSlFTeEZRVUZUTEd0Q1FVRnZRa2NzUjBGQlowSk9MRU5CUVVjc1NVRkRhRVJZTEVWQlFWRlhMRWRCUVVFc1MwRkJRVUVzUlVGQlQwUXNSVUZCVFVFc1JVRkJUU3hQUVVGVExFTkJRVU1zUlVGQlJ5eDVRa0ZCTUVJc01rTkJRVEpETEVOQlJYSklMRTlCUTFOUUxFVkJRVUZYTEVWQlFWTXNVVUZCVkN4WlFVRkJXQ3hGUVVGblFpeFZRVUZYU2l4RlFVRkhMRkZCUTI1RFF5eEZRVUZSVHl4RlFVRlJMR0ZCUVdOaUxFVkJRVmNzUlVGSE4wTkpMRVZCUVVrc1RVRkJVU3hIUVVOYUxFbEJRVTF2UWl4RlFVRlhTaXhGUVVGVExFbEJRM0JDU3l4RlFVRlZVaXhGUVVOV1ppeEZRVUZaUlN4RlFVRkxZU3hGUVVGTFJ5eEZRVUZWWkN4RFFVRlBMRVZCUTNaRFNDeEZRVUZwUWtNc1JVRkJTMjlDTEVWQlFWVlNMRVZCUVU4c1MwRkJUVWtzUlVGQlZXUXNRMEZCVHl4RlFVTm9SVVlzUlVGQlNTeFBRVUZQTEZGQlExaHpRaXhIUVVGblFuSkNMRVZCUVVjc1QwRkJVVmtzUlVGQlMxZ3NRMEZCVHl4RlFVTXpRMFlzUlVGQlNTeE5RVUZSTEVkQlExSjFRaXhIUVVGWmRrSXNSVUZCUzFFc1JVRkJTU3hOUVVGUFlTeERRVUZQTEVkQlEyNURia0lzUlVGQlVXdENMRVZCUVZVc1owSkJRV2xDTEhsQ1FVRjVRaXhGUVVWb1JTeEpRVUZOU1N4RlFVRmhVQ3hIUVVGaFNDeEhRVUZCTEV0QlFVRkJMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRM1pETEZWQlFWY3NaMEpCUTFnc1MwRkJUVU1zUlVGRFRpeFBRVUZSVFN4RlFVRlJMRTFCUVUwc1EwRkJReXhGUVVOMlFpeFJRVUZCYmtJc1JVRkRRU3hoUVVGalJDeEZRVUZITEU5QlEycENMR1ZCUVdkQ0xFTkJRVU5aTEVkQlFVOUJMRVZCUVVrc1QwRkJVeXhqUVVONlF5eERRVUZETEVWQlJVUXNSMEZFUVVvc1JVRkJVMlVzUlVGQlZ5eEpRVU5vUWtFc1JVRkJWeXhOUVVGUExFTkJRMlJPTEV0QlEwbElMRWRCUVVFc1dVRkJRVUVzUlVGQlR5eFJRVUZUTEdGQlFXVXNRMEZCUTFNc1JVRkJWeXhaUVVNelEzUkNMRVZCUVZGUExFVkJRVkVzZDBKQlFYbENMSEZFUVVGeFJDeEZRVU01UmxRc1JVRkJTU3hSUVVGUkxGRkJRMXBuUWl4RlFVRlRMRTFCUVZGUkxFVkJRVmNzVFVGQlRTeFBRVUZUTEUxQlF6TkRkRUlzUlVGQlVXMUNMRVZCUVZFc1RVRkJUeXh6UWtGQmRVSXNOa1pCUVRaR0xFZEJSMjVLTEVsQlFVMUpMRVZCUVZsV0xFVkJRMXBxUWl4RlFVRlpSU3hGUVVGTFpTeEZRVUZQVXl4RlFVRlpkRUlzUTBGQlR5eEZRVU16UTBnc1JVRkJhVUpETEVWQlFVdFRMRVZCUVZGTExFVkJRVXNzUzBGQlRWVXNSVUZCV1hSQ0xFTkJRVThzUlVGRE9VUkdMRVZCUVVrc1QwRkJUeXhSUVVOWWMwSXNSMEZCWjBKeVFpeEZRVUZITEU5QlFWRmpMRVZCUVU5aUxFTkJRVThzUlVGRE4wTlBMRVZCUVZOblFpeEZRVUZWTEUxQlFVMHNRMEZCUXl4RlFVTXhRaXhKUVVGTlF5eEZRVUZQTEVsQlFVbERMRWRCUVV0T0xFVkJRVk5KTEVOQlFWTXNSVUZEY0VONlFpeEZRVUZKTEZGQlFWRXNiVUpCUTFvd1FpeEZRVUZMTEZOQlFWZG1MRWRCUTNCQ1NDeEZRVUZKTEUxQlFVMHNTMEZCUzJ0Q0xFTkJRVWtzUTBGRGRrSXNTMEZEU3l4RFFVVkhVaXhIUVVOQmFFSXNSVUZCVVcxQ0xFVkJRVkVzVFVGQlR5eGxRVUZuUWl4eFJFRkJjVVFzUlVGRE5VWkhMRVZCUVZjc1ZVRkRVRWdzUlVGQlVTeFJRVU5TUVN4RlFVRlJMRk5CUVZjN1FVRkJRU3hGUVVGUFJ5eEZRVUZYTEZGQlJYSkRTQ3hGUVVGUkxGRkJRVlZITEVWQlFWY3NVMEZGY2tNc1NVRkJUVVVzUlVGQlR5eEpRVUZKUXl4SFFVRkxUaXhEUVVGUExFVkJRM3BDY2tJc1JVRkJTU3hSUVVGUkxHMUNRVU5hTUVJc1JVRkJTeXhUUVVGWFppeEhRVU53UWtnc1JVRkJTU3hOUVVGTkxFdEJRVXRyUWl4RFFVRkpMRU5CUTNaQ0xFTkJRMG9zUTBGRFFTeFBRVUZKYUVJc1IwRkJZMEVzUlVGQllVUXNSMEZETTBKUUxFVkJRVkZSTEVWQlFWa3NZVUZCWXl4dFEwRkJiVU1zUlVGRGVrVkdMRVZCUVVrc1RVRkJVU3hEUVVGRFVDeEZRVUZITEU5QlFWRlJMRVZCUVZGRExFZEJRVUVzUzBGQlFVRXNSVUZCWTBRc1EwRkJUU3hGUVVNM1EwUXNRMEZEV0N4RFF6VkhRU3hUUVVGVGIwSXNSMEZCWjBJc1EwRkJSU3haUVVGQlF5eEZRVUZoTEdsQ1FVRkJReXhEUVVGcFFpeEZRVUZIUXl4RlFVRkxReXhGUVVGSlF5eEZRVUZUUXl4RlFVRkxMRU5CU201R0xFbEJRVUZETEVWQlMwa3NTVUZCVFVNc1IwRkJXVVFzUlVGQlFVUXNSMEZCUVN4WlFVRkJRU3hGUVVGTExGbEJRVXdzUzBGQlFVTXNSVUZCYTBKRkxFZEJRemxDUXl4RlFVRk5MRWxCUVVsR0xFVkJRVlZNTEVWQlFVa3NUVUZCVFN4RlFVTm9RMEVzUlVGQlNTeFRRVU5LUVN4RlFVRkpMRTlCUVZNc1NVRkRZa0VzUlVGQlNTeFJRVU5LUVN4RlFVRkpMRTFCUVZFc1NVRkRhRUlzU1VGQlNWRXNSVUZCVTFBc1JVRkJSeXhQUVVOYVVTeEZRVUZoTEV0QlEycENMRTlCUVZjc1EwRkJSU3hOUVVGQlF5eEZRVUZQTEUxQlFVRkRMRU5CUVUwc1NVRkJTMVlzUlVGQlJ5eE5RVUZQTEVOQlEzSkRMRWxCUVUxWExFVkJRVkZETEVkQlFXRklMRVZCUVU4c1EwRkRPVUlzVlVGQlZ5eGxRVU5ZTEV0QlFVMURMRVZCUTA0c1QwRkJRVWdzUlVGRFFTeFJRVUZCVGl4RlFVTkJMR0ZCUVdORUxFVkJRVWNzVDBGRGFrSXNaVUZCWjBJc1JVRkRjRUlzUTBGQlF5eEZRVU5FTEVkQlFVa3NRMEZCUTFjc1JVRkJUU3hOUVVOUUxFZEJRVWxCTEVWQlFVMHNVVUZCVlVFc1JVRkJUU3hMUVVGUFJDeEZRVU42UWtFc1IwRkJVMEVzUlVGQlRTeFBRVUZUTEZsQlEzaENWQ3hGUVVGUlZTeEZRVUZOTEVsQlFVc3NZVUZCWXl4clJFRkJhMFFzUlVGRmJrWldMRVZCUVZGTkxFVkJRVkVzWlVGQlowSXNiVU5CUVcxRExFMUJSWFJGTEVOQlEwUkRMRVZCUVdGSExFVkJRVTBzU1VGRFprRXNSVUZCVFN4VlFVTk9UQ3hGUVVGSkxGRkJRVlZMTEVWQlFVMHNVMEZEZUVJc1VVRkRTaXhEUVVWS0xFbEJRVTFGTEVWQlFVOUlMRVZCUTFCaUxFVkJRVmxGTEVWQlFVdFhMRVZCUVU5RExFVkJRVTlXTEVOQlFVOHNSVUZEZEVOSUxFVkJRV2xDUXl4RlFVRkxXU3hGUVVGTkxFbEJRVXRHTEVWQlFVOHNTMEZCVFVVc1JVRkJUMVlzUTBGQlR5eEZRVU01UkVZc1JVRkJTU3hQUVVGUExGRkJRMWhsTEVkQlFXZENaQ3hGUVVGSExFOUJRVkZWTEVWQlFVOVVMRU5CUVU4c1JVRkROME5OTEVWQlFWTk5MRVZCUVVzc1RVRkJUU3hEUVVGRExFVkJRM0pDVUN4RlFVRkpMRTFCUVUwc1MwRkJTMDhzUTBGQlNTeERRVU4yUWl4RFFVTkJMRTlCUVVGUUxFVkJRVWtzVFVGQlVTeERRVUZEVGl4RlFVRkhMRTlCUVZGUExFVkJRVkZETEVkQlFVRXNTMEZCUVVFc1JVRkJZMFFzUTBGQlRTeEZRVU0zUTBRc1EwRkRXQ3hEUXpsRFFTeFRRVUZUVXl4SFFVRlhReXhGUVVGTFF5eEZRVUZSUXl4RlFVRlZReXhGUVVGVExFTkJRMmhFTEVsQlFVbERMRVZCUVZVc1IwRkRaQ3hIUVVGSlNpeEZRVUZMTEVOQlEwd3NTVUZCU1Vzc1JVRkJWeXhIUVVOWVF5eEZRVUZOTEVkQlExWXNVVUZCVjBNc1MwRkJVMUFzUlVGQlN5eERRVU55UWl4SFFVRk5MRU5CUVVVc1QwRkJRVkVzUlVGQlVTeExRVUZCUXl4RFFVRkxMRVZCUVVsR0xFVkJRM3BDTEU5QlFWRkZMRVZCUVUwc1EwRkRWaXhKUVVGTExGRkJRMFJLTEVWQlFWY3NSMEZEV0N4TlFVTktMRWxCUVVzc1ZVRkJWeXhEUVVOU1NDeEhRVUZaTEVOQlFVTkhMRWRCUTJKR0xFVkJRVkZKTEVWQlFVOHNaVUZCWjBJc2QwVkJRWGRGTEVWQlF6TkhMRWxCUVUxSExFVkJRVXRHTEVWQlFVOHNWVUZCVlN4RFFVRkRMRWRCUVVzc1NVRkROMEpLTEVWQlIwUkJMRWRCUVZkRkxFVkJRVTFKTEVWQlJtcENUaXhGUVVGVlRTeEZRVWRrU2l4RlFVRk5MRWRCUTA0c1MwRkRTaXhEUVVOQkxFbEJRVXNzVlVGRFIwWXNTVUZEUVVVc1IwRkJUMFVzUjBGRFdFZ3NSVUZCVnl4SFFVTllMRTFCUTBvc1VVRkRTVVlzUlVGQlVVa3NSVUZCVHl4dFFrRkJiMElzWTBGQlkwVXNRMEZCU1N4alFVRmpMRU5CUXpORkxFTkJRMEZTTEVkQlFWVlBMRVZCUVU4c1RVRkRja0lzUTBGRFNpeERRVU5CTEUxQlFVOHNRMEZCUlN4UlFVRkJTaXhGUVVGVExFOUJRVUZJTEVOQlFVOHNRMEZETjBJc1EwTjZRa0VzU1VGQlRWVXNSMEZCVnl3MFJFRkRXRU1zUjBGQlYwTXNSMEZCVlVFc1NVRkJWVUVzUlVGQlRTeFBRVUZUTEdGQlFXVkJMRVZCUVUwc1QwRkJVeXhoUVVOc1JpeFRRVUZUUXl4SFFVRnpRaXhEUVVGRkxGbEJRVUZETEVWQlFXRXNhVUpCUVVGRExFTkJRV2xDTEVWQlFVZERMRVZCUVV0RExFVkJRVWxETEVWQlFWTkRMRVZCUVVzc1EwRllla1lzU1VGQlFVTXNSVUZCUVVNc1JVRlpTU3hKUVVGTlF5eEZRVUZSVEN4RlFVRkhMRTFCUVUwc1UwRkJWeXhKUVVNMVFrMHNSVUZCVTBRc1JVRkJVU3hYUVVGaExHZENRVU01UWtVc1IwRkJZVW9zUlVGQlFVUXNSMEZCUVN4WlFVRkJRU3hGUVVGTExGbEJRVXdzUzBGQlFVTXNSVUZCYlVKRkxFVkJRVkZITEVkQlFWVkRMRWRCUTJ4RVF5eEZRVUZQTEVsQlFVbElMRVZCUVZWU0xFVkJRVWtzVFVGQlRTeEZRVU55UTFjc1JVRkJTeXhMUVVGUExFZEJRMW9zU1VGQlRVTXNSVUZCVTFvc1JVRkJTU3hQUVVObVdTeEpRVU5CV2l4RlFVRkpMRTlCUVZNc1NVRkRZa0VzUlVGQlNTeFJRVU5LUVN4RlFVRkpMRTFCUVZFc1NVRkRhRUlzU1VGQlNXRXNSVUZCVTFvc1JVRkJSeXhQUVVGVFFTeEZRVUZITEUxQlFVMHNUMEZCVHl4UFFVTjZReXhSUVVGVFlTeEZRVUZKTEVWQlFVZEJMRVZCUVVsaUxFVkJRVWNzVFVGQlRTeFBRVUZSTEVWQlFVVmhMRVZCUVVjc1EwRkRkRU1zU1VGQlRVTXNSVUZCVjJRc1JVRkJSeXhOUVVGTllTeERRVUZETEVWQlEzSkNMRU5CUVVVc1RVRkJRVVVzUlVGQlR5eEpRVUZCUXl4RlFVRkxMRWxCUVVGRExFVkJRVXNzVFVGQlFVTXNRMEZCVFN4RlFVRkpTaXhGUVVNM1Frc3NSVUZCVVVNc1IwRkJZVXdzUlVGQlR5eERRVU01UWl4TFFVRk5WQ3hGUVVOT0xGVkJRVmNzYlVKQlExZ3NTMEZCVFZVc1IwRkJRU3hMUVVGQlFTeEZRVUZQUXl4SFFVRkJMRmxCUVVGQkxFVkJRVTBzUjBGRGJrSXNUMEZCUVV3c1JVRkRRU3hSUVVGQldDeEZRVU5CTEdGQlFXTkVMRVZCUVVjc1QwRkRha0lzWlVGQlowSXNSVUZEY0VJc1EwRkJReXhGUVVORUxFZEJRVWtzUTBGQlEyMUNMRVZCUVUwc1RVRkJUeXhEUVVOa0xFZEJRVWtzUTBGQlEwRXNSVUZCVFN4UlFVRlZMRU5CUVVOQkxFVkJRVTBzUzBGQlR5eERRVUZEUml4SFFVRlBMRU5CUVVORExFVkJRVThzUTBGRE0wTk1MRWxCUVUwc1IwRkJTMDBzUlVGQlRTeE5RVU5xUW14Q0xFVkJRVkZyUWl4RlFVRk5MRTFCUVU4c2JVSkJRVzlDTEcxQ1FVRnRRbUlzUTBGQlRTeEZRVUZGTEVWQlF5OUVUeXhGUVVGSllpeEZRVUZITEUxQlFVMHNUMEZCVXl4SFFVTXpRa01zUlVGQlVXdENMRVZCUVUwc1RVRkJUeXh0UWtGQmIwSXNORUpCUVRSQ1lpeERRVUZOTEVWQlFVVXNSVUZETjBWaExFVkJRVTBzVlVGRFJsUXNSVUZCU3l4UlFVTk1RU3hGUVVGTExGTkJRVmM3UVVGQlFTeEZRVUZQVXl4RlFVRk5MRkZCUlRkQ1ZDeEZRVUZMTEZGQlFWVlRMRVZCUVUwc1UwRkZOMEpRTEVWQlFWTlBMRVZCUVUwc1NVRkRaaXhSUVVOS0xFTkJRMGtzUTBGQlEyUXNSMEZCVTA0c1JVRkJTU3hSUVVGUkxGRkJRVlZ6UWl4SFFVRm5Ra3dzUTBGQlJ5eEhRVU51UkdZc1JVRkJVV1VzUlVGRFVpeDVRa0ZCTUVJc2EwVkJRV3RGTEVOQlEzQkhMRU5CUTBFc1IwRkJTVWdzU1VGQlRTeEZRVU5HVFN4RlFVRk5MRTlCUTA1c1FpeEZRVUZSYTBJc1JVRkJUU3hOUVVGUExHMUNRVUZ2UWl4dFFrRkJiVUppTEVOQlFVMHNSVUZCUlN4VlFVZHVSV0VzUlVGQlRTeFBRVU5RYkVJc1JVRkJVV3RDTEVWQlFVMHNUVUZCVHl4bFFVRm5RaXh4UWtGQmNVSmlMRU5CUVUwc1VVRkJVU3hGUVVONFJXRXNSVUZCVFN4UlFVRlRMRU5CUTJZc1NVRkJTVWNzUlVGQmEwSXNSMEZEZEVKRExFVkJRVTBzVVVGQlYwTXNTMEZCVFZRc1JVRkRia0lzVDBGQlVWTXNSVUZCUnl4TFFVRk5MRU5CUTJJc1NVRkJTeXhSUVVOTUxFbEJRVXNzVVVGRFJDeE5RVU5LTEVsQlFVc3NWVUZEUkVZc1JVRkJhMEpGTEVWQlFVY3NUMEZCVHl4VlFVRlZMRU5CUVVNc1JVRkRka01zVFVGQlRVUXNSVUZEVml4UlFVTkpMRTFCUVUxQkxFTkJRMlFzUTBGRlNpeEhRVUZKUkN4RlFVRnBRaXhEUVVOcVFpeEpRVUZKUnl4RlFVRlBaaXhGUVVGTExFMUJRVTFCTEVWQlFVc3NUVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkRka05uUWl4RlFVRlBSQ3hEUVVGSkxFbEJRMWhCTEVkQlFVOXlRaXhGUVVGQmNVSXNSVUZCU3l4UlFVRk1MRXRCUVVGeVFpeEZRVUZqY1VJc1JVRkJTeXhMUVVNeFFrRXNSVUZCU3l4UlFVTk1RU3hGUVVGTExGTkJRVmM3UVVGQlFTeEZRVUZQU0N4RlFVVjJRa2NzUlVGQlN5eFJRVUZWU0N4RlFVTnVRa2dzUlVGQlRTeFJRVUZWUVN4RlFVRk5MRkZCUVZFc1ZVRkJWVWNzUlVGQlowSXNUMEZCVXl4RFFVRkRMRU5CUTNSRkxFTkJRMG9zUTBGRlNpeEhRVUZKTEVOQlFVTnFRaXhIUVVGVExFTkJRVU5aTEVkQlFVOHNRMEZCUTBVc1JVRkJUU3hOUVVGUExFTkJSMmhETEVsQlFVMVJMRVZCUVZsVUxFVkJRMXB5UWl4RlFVRlpSU3hGUVVGTGJVSXNSVUZCVDBNc1JVRkJUMnhDTEVOQlFVOHNSVUZEZEVOSUxFVkJRV2xDUXl4RlFVRkxiMElzUlVGQlRTeEpRVUZMUml4RlFVRkxMRXRCUVUxRkxFVkJRVTlzUWl4RFFVRlBMRVZCUTJoRlV5eEZRVUZMTEUxQlFVMHNTMEZCUzJsQ0xFTkJRVk1zUlVGRGVrSm1MRVZCUVZObExFVkJRVlVzVFVGQlRTeERRVUZETEVWQlEzUkNha01zUjBGQlVYZENMRU5CUVVzc1IwRkRZbXBDTEVWQlFWRXdRaXhGUVVGVkxFMUJRVThzWjBKQlFXbENiRU1zUlVGQlVTeERRVU14UkN4TFFVTkxMRU5CUjBSTkxFVkJRVWtzVFVGQlVTeEhRVU5hTEVsQlFVMDJRaXhGUVVGWFZDeEZRVUZOTEVsQlEycENWU3hGUVVGVllpeEZRVU5XYmtJc1JVRkJXVVVzUlVGQlMybENMRVZCUVV0SExFVkJRVTlzUWl4RFFVRlBMRVZCUTNCRFNDeEZRVUZwUWtNc1JVRkJTelpDTEVWQlFWVmlMRVZCUVU4c1MwRkJUVWtzUlVGQlQyeENMRU5CUVU4c1JVRkROMFJRTEVkQlFWRnpRaXhEUVVGSExFZEJRMWhtTEVWQlFWRTBRaXhGUVVGUkxFMUJRVThzWjBKQlFXbENjRU1zUlVGQlVTeEZRVU53UkUwc1JVRkJTU3hOUVVGUkxFZEJSVm9zU1VGQlRTdENMRVZCUVdGV0xFZEJRV0ZJTEVkQlFVRXNTMEZCUVVFc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGRrTXNTMEZCVFZnc1JVRkRUaXhWUVVGWExHZENRVU5ZTEV0QlFVMVpMRVZCUTA0c1QwRkJVVmNzUlVGQlVTeE5RVUZOTEVOQlFVTXNSVUZEZGtJc1VVRkJRVFZDTEVWQlEwRXNZVUZCWTBRc1JVRkJSeXhQUVVOcVFpeGxRVUZuUWl4RlFVTndRaXhEUVVGRExFVkJRMFFzUjBGQlNUaENMRVZCUVZjc1QwRkRXQ3hIUVVGSkxFTkJRVU42UWl4SFFVRlRMRU5CUVVOakxFVkJRVTBzVDBGQlUzQkNMRVZCUVVrc1VVRkJVU3hQUVVGUkxFTkJRemxETEVkQlFVbHJRaXhGUVVOQkxGRkJRVmRQTEV0QlFVMVFMRVZCUVVzc1EwRkRiRUlzUjBGQlNVOHNTVUZCVDAwc1JVRkJWeXhOUVVOc1FpeE5RVU5LTEVkQlFVbE9MRVZCUVVjc1QwRkJVeXhWUVVGWExFTkJRM1pDZGtJc1JVRkJVWFZDTEVWQlFVa3NlVUpCUVRCQ0xHdEZRVUZyUlN4RlFVTjRSeXhMUVVOS0xFTkJRMG9zUTBGRFFVd3NSVUZCVFN4TlFVRlJWeXhGUVVGWExFMUJRVTBzVDBGQlV5eE5RVU40UXpkQ0xFVkJRVkUyUWl4RlFVRlhMRTFCUVU4c2MwSkJRWFZDTERaR1FVRTJSaXhEUVVOMFNpeFBRVVZMV2l4SlFVTkVMRmRCUVZsQkxFZEJRVk5CTEVWQlFVMHNVVUZCVlVFc1JVRkJUU3hQUVVGUExFTkJRVU1zU1VGQlRTeEpRVU42UkdwQ0xFVkJRVkZwUWl4RlFVRlBMR1ZCUVdkQ0xEUkNRVUUwUWxvc1EwRkJUU3hGUVVGRkxFVkJSVzVGVEN4RlFVRlJOa0lzUlVGQlZ5eE5RVUZQTEdWQlFXZENMREJDUVVFd1FuaENMRU5CUVUwc1VVRkJVU3hIUVVjeFJpeEpRVUZOY1VJc1IwRkJXVlFzUlVGRFduSkNMRVZCUVZsRkxFVkJRVXR0UWl4RlFVRlBXU3hGUVVGWk4wSXNRMEZCVHl4RlFVTXpRelpDTEVWQlFWY3NUVUZEVUdoRExFVkJRV2xDUXl4RlFVRkxLMElzUlVGQlZ5eEpRVUZMWWl4RlFVRkxMRXRCUVUxaExFVkJRVmszUWl4RFFVRlBMRVZCUTNCRkxFdEJRMDR3UWl4SFFVTkpha01zUjBGQlVYZENMRU5CUVVzc1IwRkRZbXBDTEVWQlFWRXdRaXhIUVVGVkxFMUJRVThzWjBKQlFXbENiRU1zUlVGQlVTeEZRVVZxUkhGRExFVkJRVmNzVlVGRFdrUXNSVUZCVVN4UlFVTlNRU3hGUVVGUkxGTkJRVmM3UVVGQlFTeEZRVUZQUXl4RlFVRlhMRkZCUlhKRFJDeEZRVUZSTEZGQlFWVkRMRVZCUVZjc1UwRkZja01zU1VGQlRVTXNSMEZCVHl4SlFVRkpReXhIUVVGTFNDeEZRVUZUUml4RlFVRlRMRVZCUjNoRExFZEJSa2sxUWl4RlFVRkpMRkZCUVZFc2JVSkJRMXBuUXl4SFFVRkxMRk5CUVZkcVFpeEhRVU5vUWxRc1JVRkJUeXhEUVVOUUxFbEJRVTAwUWl4RlFVRk5ka0lzUlVGRFVuZENMRWRCUVZsdVF5eEZRVUZMYTBNc1JVRkJTU3hOUVVGUFNpeERRVUZQTEVkQlEyNUROVUlzUlVGQlVUSkNMRVZCUVZVc1owSkJRV2xDTEhsQ1FVRjVRaXhGUVVOb1JVc3NSVUZCU1N4TlFVRk5MRXRCUVV0R0xFVkJRVWtzUTBGRGRrSXNTMEZEU3l4RFFVTkVMRWxCUVUxRkxFVkJRVTBzU1VGQlNYcENMRWRCUVZGVUxFVkJRVWtzVFVGQlRTeEZRVU5zUTJ0RExFVkJRVWtzUzBGQlR5eEhRVU5ZUVN4RlFVRkpMRTFCUVUwc1MwRkJTMFlzUlVGQlNTeEZRVU51UWl4SlFVRk5TU3hIUVVGWlVpeEpRVUZCTEV0QlFVRkJMRWRCUVdGRkxFZEJRVk1zVFVGRGVFTkpMRVZCUVVrc1RVRkJVU3hEUVVGRFNpeEZRVUZSTEUxQlFVMHNRMEZCUXl4RlFVRkhUU3hGUVVGVExFTkJRVU1zUlVGQlIwRXNSVUZCVXl4RFFVRkRMRU5CUVVNc1JVRkRka1I2UWl4RlFVRkxMRTFCUVUwc1MwRkJTM1ZDTEVOQlFVY3NRMEZEZGtJc1EwRkRRWEpDTEVWQlFWTmxMRWRCUVZsQkxFZEJRVlVzVFVGQlRTeERRVUZETEVWQlFVbEhMRVZCUVZjc1IwRkRla1FzUTBGRFNpeERRVU5CTEVsQlFVMU5MRVZCUVdNdlFpeEZRVUZSTEVsQlFVMHNTVUZETlVJc1EwRkJRMmRETEVWQlFVa3NSMEZCUjBNc1EwRkJSU3hGUVVGSmRFTXNSVUZCUnl4SlFVTnVRblZETEVWQlFWRXpRaXhGUVVOYUxFZEJRVWw1UWl4SFFVRk5RU3hGUVVGSExGTkJRVmRFTEVWQlEzQkNSeXhGUVVGUlJpeEZRVUZITEU5QlFWTkJMRVZCUVVjc1QwRkJUeXhYUVVNM1FpeERRVU5FTEVsQlFVMUhMRVZCUVU5c1F5eEZRVUZQTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVsQkxFVkJRVThzVlVGQlZTeERRVUZETEVWQlEyNUViVU1zUlVGQlRUbENMRVZCUTA0c1IwRkJSelpDTEVOQlFVa3NiMEpCUVc5Q1NpeERRVUZYTEVkQlEzUkRMRWRCUVVkSkxFTkJRVWtzY1VWQlFYRkZTaXhEUVVGWExFZEJRemRHYmtNc1JVRkJVVmNzUlVGQlVVUXNSVUZCVXl4bFFVRnBRaXhoUVVGak9FSXNRMEZCUnl4RlFVTjJSRW9zUjBGQlRVRXNSVUZCUnl4UFFVRlBMRk5CUVZjc1IwRkRNMEpETEVWQlFVY3NVVUZCVVVRc1EwRkJSU3hEUVVOeVFpeERRVU5CTEVkQlFVbERMRVZCUVVjc1QwRkJVeXhGUVVGSExFTkJRMllzU1VGQlRVa3NSVUZCVFVNc1IwRkJWMHdzUlVGQlNVTXNSVUZCVDNoRExFVkJRVWtzVVVGQlVTeFBRVUZSUlN4RFFVRlBMRVZCUTNwRWVVTXNSVUZCU1N4VlFVTkJhRU1zUlVGQlN5eFJRVU5NUVN4RlFVRkxMRk5CUVZjN1FVRkJRU3hGUVVGUFowTXNSVUZCU1N4UlFVVXpRbWhETEVWQlFVc3NVVUZCVldkRExFVkJRVWtzVTBGRk0wSm9ReXhGUVVGTExFMUJRVkVzUTBGQlExWXNSVUZCUnl4UFFVRlJkVU1zUlVGQlQwY3NSVUZCU1N4TlFVRk5MRU5CUXpsRExFMUJSVWxvUXl4RlFVRkxMRTFCUVZFc1EwRkJRMVlzUlVGQlJ5eFBRVUZSZFVNc1JVRkJUMEVzUTBGQlN5eEZRVVY2UXl4UFFVRlBOMElzUTBGRFdDeERRM0JOUVN4VFFVRlRhME1zUjBGQmEwSkRMRVZCUVVsRExFVkJRVXRETEVWQlFVOURMRVZCUVZORExFVkJRVk5ETEVWQlFVc3NRMEZET1VRc1NVRkJUVU1zUlVGQlQwb3NSVUZCVFN4UFFVRlRMRmxCUTNSQ1N5eEhRVUZuUWxBc1JVRkJTVU1zUlVGQlMwTXNSVUZCVDBNc1JVRkJVMFVzUTBGQlJ5eEZRVU0xUTBnc1JVRkJUU3hQUVVGVExGbEJRMWhOTEVkQlFXZENVaXhGUVVGSlF5eEZRVUZMUXl4RlFVRlBReXhGUVVGVFJTeERRVUZITEVWQlF6VkRTU3hIUVVGelFsUXNSVUZCU1VNc1JVRkJTME1zUlVGQlQwTXNSVUZCVTBVc1EwRkJSeXhGUVVOMFJFc3NSVUZCVDBvc1JVRkJTeXhaUVVkc1FpeFBRVUZKUml4SlFVRlpMRXRCUVU5QkxFbEJRVmxOTEVWQlFVc3NVMEZEY0VOS0xFVkJRVXNzU1VGQlRVa3NSVUZCU3l4UlFVTlVTaXhKUVVWUVJpeEpRVU5CUlN4RlFVRkxMRWxCUVUxR0xFZEJRMUpGTEVWQlExZ3NRMEZEUVN4VFFVRlRTeXhIUVVGclFsZ3NSVUZCU1VNc1JVRkJTME1zUlVGQlQxVXNSVUZCVDFRc1JVRkJVeXhEUVhwQ00wUXNTVUZCUVZVc1JVRkJRVU1zUlVFd1Fra3NTVUZCVFVNc1JVRkJWMGdzUlVGQlRTeEpRVU5xUWxJc1JVRkJWMWNzUlVGRldHUXNSVUZCU1N4WFFVRlhMRkZCUVZGakxFVkJRVk1zVDBGQlVVTXNSMEZCVDJJc1JVRkJVVmtzUlVGQlZTeHhRa0ZCYzBKRExFTkJRVWNzUTBGQlF5eEZRVVF6Uml4TFFVVk9MRWRCUVVsa0xFVkJRVTBzVDBGQlV5eFpRVUZoTEVOQlF6VkNMRWRCUVUwc1EwRkJSU3hQUVVGQlpTeEZRVUZSTEdsQ1FVRnJRa01zUTBGQlJ5eEZRVUZKVGl4RlFVTnVRMDhzUlVGQlYwWXNSMEZCVlVZc1JVRkRja0pGTEVWQlFVOHNUMEZCVTBZc1JVRkJVeXhQUVVOeVFrVXNSVUZEUVVZc1JVRkRTRVVzUjBGQlFTeExRVUZCUVN4RlFVRlZSaXhGUVVOaVNTeEpRVUZoTEVOQlFVTkVMRWRCUVUxQkxFVkJRVWNzVDBGQlUwTXNSVUZCVXl4VFFVVjZRMmhDTEVWQlFWRm5RaXhGUVVGVkxHVkJSRVlzTkVOQlEzbENMRU5CUldwRUxFTkJRMEVzU1VGQlRVTXNSVUZCVld4Q0xFVkJRVTBzVDBGQlV5eFpRVU42UWl4TlFVTkJRU3hGUVVGTkxFOUJRVk1zV1VGRFdDeE5RVU5CUVN4RlFVRk5MRTFCUVUwc1UwRkJWeXhKUVVOdVFpeE5RVU5CTEUxQlIyUXNSMEZCU1N4RFFVRkRZU3hIUVVORUxFTkJRVU5ZTEVkQlEwUkJMRWxCUVZrc1MwRkRXRUVzU1VGQldXbENMRWRCUVZFc1UwRkJWMFFzU1VGQldTeFBRVU16UTJoQ0xFbEJRVmxyUWl4SFFVRlJMRk5CUVZkR0xFbEJRVmtzVFVGRE5VTXNUMEZCVDNKQ0xFZEJRV3RDUXl4RlFVRkpReXhGUVVGTFF5eEZRVUZQUXl4RlFVRlRReXhEUVVGUExFVkJSVGRFTEVsQlFVbERMRVZCUVUxS0xFVkJRVWtzVDBGQlR5eExRVUZMTEV0QlFVdHpRaXhIUVVGTFFTeEZRVUZGTEUxQlFWRnVRaXhIUVVGWGJVSXNSVUZCUlN4aFFVRmxTQ3hEUVVGUExFVkJRMnBHTEVkQlFVa3NRMEZCUTJZc1JVRkJTeXhEUVVOT0xFbEJRVTF0UWl4RlFVRkxka0lzUlVGQlNTeFBRVUZQTEZWQlFWVkhMRU5CUVU4c1JVRkRka01zUjBGQlNXOUNMRWRCUVUxQkxFVkJRVWNzWVVGQlpVb3NSVUZEZUVKdVFpeEZRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWQxUWl4RlFVRkpMRU5CUVVVc1VVRkJVeXhGUVVGTkxFTkJRVU1zUTBGQlF5eEZRVU01Ukc1Q0xFVkJRVTF0UWl4TlFVZE9MRkZCUVVsQkxFZEJRVUVzVFVGQlFVRXNSVUZCU1N4WFFVTktja0lzUlVGQlVWa3NSVUZCVlN4elFrRkJkVUlzUjBGQlIxTXNSVUZCUnl4SFFVRkhMR0ZCUVdGS0xFTkJRVThzTkVKQlFUUkNTU3hGUVVGSExGVkJRVlVzUjBGQlNTeEZRVUZKTEVWQlIzWklja0lzUlVGQlVWa3NSVUZCVlN4eFFrRkJjMElzYlVKQlFXMUNXQ3hEUVVGUExFZEJRVWtzUlVGQlNTeEZRVVYyUlV3c1IwRkJhMEpETEVWQlFVbERMRVZCUVV0RExFVkJRVTlETEVWQlFWTkRMRU5CUVU4c1EwRkZha1VzUTBGRFFTeEpRVUZOUlN4RlFVRlBVQ3hIUVVGclFrTXNSVUZCU1VNc1JVRkJTME1zUlVGQlQwTXNSVUZCVTBNc1JVRkJVME1zUTBGQlJ5eEZRVU01Ukc5Q0xFZEJRVTFZTEVkQlFVRkVMRVZCUVVGU0xFVkJRVWtzVlVGQlNpeFpRVUZCVVN4RlFVRkJMRXRCUVVGU0xFVkJRV05ETEVWQlFVMVZMRWRCUVU5aUxFVkJRVkZaTEVWQlFWVXNjVUpCUVhOQ1F5eERRVUZITEVWQlFVZG1MRVZCUVVrc1YwRkJOMFVzUzBGQlFXRXNSVUZCZVVaU0xFVkJReTlHYjBJc1JVRkJUME1zUlVGQlQwWXNRMEZCUnl4RlFVTnFRa0VzUlVGRFFTeEpRVUZKUnl4RlFVRlBTQ3hEUVVGSExFVkJRM0JDTEU5QlFVRkRMRVZCUVVzc1RVRkJVWEJDTEVWQlFVc3NUVUZEYkVKdlFpeEZRVUZMTEVsQlFVMTBRaXhGUVVOUVF5eEhRVUZCTEUxQlFVRkJMRVZCUVVzc1UwRkRUSEZDTEVWQlFVc3NUMEZCVTNKQ0xFVkJRVWtzVVVGRFpuRkNMRU5CUTFnc1EwTnVSa0VzVTBGQlUwY3NSMEZCYlVKRExFVkJRVXRETEVWQlFWRkRMRVZCUVZNc1EwRkRPVU1zU1VGQlRVTXNSVUZCVVVZc1JVRkJUeXhQUVVObVJ5eEZRVUZUUXl4SFFVRjFRa29zUlVGQlVVUXNSVUZCU1N4UlFVRlJMRTlCUVZGRkxFTkJRVThzUlVGRGVrVXNSMEZCU1N4RFFVRkRSU3hGUVVORUxFMUJRVThzUTBGQlJTeE5RVUZQTEVkQlFVa3NTMEZCVFN4TFFVRk5MRkZCUVZNc1IwRkJTU3hOUVVGUExFTkJRVU5FTEVWQlFVOUJMRVZCUVU5QkxFTkJRVXNzUTBGQlJTeEZRVU01UlN4SlFVRk5SeXhGUVVGUFJpeEZRVUZQTEU5QlFWTXNTVUZCVFVjc1JVRkJUeXhoUVVGbFFTeEZRVUZQTEdOQlF6RkVReXhGUVVGUlVDeEZRVUZQTEU5QlFWTlJMRWRCUVZkU0xFVkJRVThzVFVGQlRTeEZRVUZKTEVOQlFVTXNSVUZGZGtSVExFVkJRV0ZHTEVWQlFVMHNUMEZEZGtJc1VVRkJVMGNzUlVGQlNVZ3NSVUZCVFN4UFFVRlRMRVZCUVVkSExFZEJRVXNzUlVGQlJ5eEZRVUZGUVN4RlFVRkhMRU5CUTNoRExFbEJRVTFETEVWQlFWVktMRVZCUVUxSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlF6RkNMRWRCUVVsRExFbEJRVmtzU1VGQlRVRXNTVUZCV1N4TFFVTTVRa1lzUlVGQllVTXNUVUZGWWl4TlFVTlNMRU5CUlVFc1IwRkJTVVFzU1VGQlpTeEZRVUZITEVOQlEyeENMRWxCUVUxSExFVkJRVkZVTEVWQlFVOHNVVUZCVlN4TFFVRlBTU3hGUVVGTkxFOUJRVk1zUlVGREwwTTdRVUZCUVN4RlFVRkxMRTlCUVU4c1MwRkJTeXhKUVVGSkxFVkJRVWRCTEVWQlFVMHNUMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkRla01zUjBGRFJrMHNSVUZCVFZnc1JVRkJVVU1zUlVGQlR5eFBRVU42UWl4UFFVRkpTQ3hGUVVGUExGTkJRMUJoTEVkQlFVOWlMRVZCUVU4c1QwRkJUeXhSUVVOc1FpeERRVUZGTEUxQlFVRlpMRVZCUVU4c1MwRkJRVkFzUlVGQlRTeFJRVUZUUml4RlFVRlBMRkZCUVZNc1RVRkJUeXhEUVVGRFJDeEZRVUZQVnl4RlFVRkxRU3hEUVVGSExFTkJRVVVzUTBGRE5VVXNRMEZGUVN4SlFVRkpReXhGUVVGaFpDeEZRVUZQTEU5QlFWTkhMRVZCUVU4c1QwRkRjRU5aTEVWQlFWTm1MRVZCUVU4c1QwRkJVMGNzUlVGQlR5eFBRVU5vUTJFc1JVRkJaU3hGUVVOdVFpeFJRVUZUVGl4RlFVRkpMRVZCUVVkQkxFVkJRVWxFTEVWQlFWa3NSVUZCUlVNc1JVRkJSeXhEUVVOcVF5eEhRVUZOTEVOQlFVTlBMRVZCUVZGT0xFTkJRVThzUlVGQlNVb3NSVUZCVFVjc1EwRkJReXhGUVVOcVF5eEhRVUZKUXl4SlFVRlpMRWxCUVUxQkxFbEJRVmtzUzBGRE1VSlNMRVZCUVU4c1UwRkJWeXhIUVVGTFl5eEZRVUZQTEU5QlFWTklMRWxCUTNaRFFTeEZRVUZoUnl4RlFVRlBMRmxCUlhaQ0xFTkJRMGRCTEVWQlFVOHNUMEZCVTBnc1IwRkZhRUppTEVWQlFWRmpMRVZCUVZORkxFVkJRVThzVDBGQlVTeGxRVVJvUWl4cFIwRkRkVU1zUlVGRmRrUmtMRVZCUVU4c1UwRkJWeXhKUVVOc1FsY3NSVUZCWVVjc1JVRkJUeXhSUVVONFFrUXNSVUZCWlU0c1JVRkRXRWtzU1VGQlpTeEhRVUZMTEVOQlFVTm1MRVZCUVVrc1VVRkZla0pGTEVWQlFWRmpMRVZCUVZFc1lVRkVRU3h4UkVGRGNVSXNSVUZGZWtNc1MwRkRTaXhEUVVOQlFTeEhRVUZWUlN4RlFVRlBMRTlCUVZOT0xFVkJRVkVzVDBGQlV5eERRVU12UXl4RFFVVkJMRkZCUVZORUxFVkJRVWxJTEVWQlFVMHNUMEZCVXl4RlFVRkhSeXhIUVVGTFJDeEZRVUZaTEVWQlFVVkRMRVZCUXpGRFNDeEZRVUZOUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVk5KTEVsQlEzSkNUQ3hGUVVGaFF5eEZRVUZKTEVkQlJYcENMRWxCUVVsRkxFVkJRVkVzUjBGRFVrMHNSVUZCVFN4SFFVTk9ReXhGUVVGdFFpeEhRVVYyUWl4UlFVRlRWQ3hGUVVGSkxFVkJRVWRCTEVWQlFVbE5MRVZCUVdNc1JVRkJSVTRzUlVGRGFFTkZMRWRCUVZOTUxFVkJRVTFITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUVWtzUTBGQlZTeEZRVUZKTzBGQlFVRXNSVUZETjBNc1VVRkJVMG9zUlVGQlNVMHNSVUZCWTA0c1JVRkJTVVFzUlVGQldTeEZRVUZGUXl4RlFVRkhMRU5CUXpWRExFZEJRVWtzUTBGQlEwOHNSVUZCVVU0c1EwRkJUeXhGUVVGSlNpeEZRVUZOUnl4RFFVRkRMRVZCUXk5Q1N5eEhRVUZWUlN4RlFVRlBMRTlCUVZOT0xFVkJRVkVzVDBGQlV5eEZRVU16UXl4SlFVRk5VeXhGUVVGUFZDeEZRVUZSUVN4RlFVRlJMRTlCUVZNc1EwRkJReXhKUVVGTkxFdEJTVGRETEVkQlNFbFRMRWxCUTBGVUxFVkJRVlZCTEVWQlFWRXNUVUZCVFN4RlFVRkhMRVZCUVVVc1IwRkZOMEpCTEVkQlFWZE5MRVZCUVU4c1QwRkJVMGdzUlVGQldTeERRVWwyUXl4SlFVRk5UeXhGUVVGVkxESkVRVWhLYkVJc1JVRkJUeXhQUVVOaUxHbERRVU5CTEZsQlEzZEZMRWRCUXpsRlJpeEZRVUZSWXl4RlFVRlRTaXhGUVVGUkxGRkJRVlZUTEVWQlFVOHNSVUZCU1N4SFFVRkpMR0ZCUVdORExFTkJRVThzUlVGRGRrVktMRVZCUVZNc1JVRkRZaXhEUVVOSldpeEpRVUZUUXl4RlFVRlBMR1ZCUTJoQ1RTeEhRVUZUVFN4RlFVRk5SQ3hGUVVGUExFMUJRVTFJTEVOQlFWVXNSVUZCU1Vnc1JVRkRNVU5QTEVWQlFVMDdRVUZCUVN4SFFVVkVSQ3hGUVVGUExFOUJRVk5JTEVkQlFXTklMRVZCUVZFc1EwRkJReXhKUVVGTkxFdEJSVGxEVHl4SlFVRlJMRWxCUTFKQkxFVkJRVTA3UVVGQlFTeEZRVU5FTEVOQlFVTkRMRWRCUVc5Q1JDeEpRVUZSTzBGQlFVRXNTVUZEYkVOQkxFVkJRVTA3UVVGQlFUdEJRVUZCTEVkQlExWk9MRWRCUVZOTkxFVkJRVTFFTEVWQlFVOHNUVUZCVFVnc1EwRkJWU3hGUVVGSlNDeEZRVU14UTA4c1JVRkJUVHRCUVVGQkxFVkJRMDVETEVWQlFXMUNMRWxCUldSU0xFbEJRVmtzUjBGRllrOHNTVUZCVVR0QlFVRkJMRVZCUTFKT0xFZEJRVk03UVVGQlFTeEZRVVZVVFN4RlFVRk5PMEZCUVVFc1IwRkhWazRzUjBGQlUwMHNSVUZCVFZBc1JVRkRaazhzUlVGQlRTeEpRVU5PUXl4RlFVRnRRaXhIUVVVelFpeERRVU5CTEU5QlFWRm9RaXhGUVVGUExFMUJRVThzUTBGRGJFSXNTVUZCU3l4SlFVTkVMRTFCUTBvc1NVRkJTeXhKUVVORUxGRkJRVk5QTEVWQlFVbEVMRVZCUVZsRExFVkJRVWxJTEVWQlFVMHNUMEZCVVN4RlFVRkZSeXhGUVVONlEwVXNSMEZCVXp0QlFVRkJMRVZCUVU5TUxFVkJRVTFITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUVWtzUTBGQlZTeEZRVU0xUTBZc1JVRkJUVUVzUlVGQlRTeFBRVUZUTEVOQlFVTXNTVUZCVFR0QlFVRkJMRWxCUXpWQ1FTeEhRVUZUTzBGQlFVRXNSMEZEWWl4TlFVTktMRkZCUTBsQkxFZEJRVk03UVVGQlFTeERRVU5xUWl4RFFVTkJMRWxCUVUxRExFVkJRVTFZTEVWQlFWRkRMRVZCUVU4c1QwRkJVMGdzUlVGQlR5eFBRVUZQTEU5QlEyeEVMRTFCUVU4c1EwRkJSU3hOUVVGQldTeEZRVUZQTEV0QlFVRlFMRVZCUVUwc1VVRkJVMFlzUlVGQlR5eFJRVUZUTEUxQlFVOHNRMEZCUTBRc1JVRkJUMWNzUlVGQlMwRXNRMEZCUnl4RFFVRkZMRU5CUXpWRkxFTkJRMEVzVTBGQlUxUXNSMEZCZFVJc1EwRkJSU3hQUVVGQlZ5eEZRVUZSTEUxQlFVRlBMRU5CUVUwc1JVRkJSME1zUlVGQlVYUkNMRVZCUVZNc1EwRkZhRVVzUjBGQlNYRkNMRVZCUVUwc1EwRkJReXhGUVVGRkxFOUJRVk1zYzBKQlEyeENMRTlCUVVGeVFpeEZRVUZSY1VJc1JVRkJUU3hEUVVGRExFVkJRVWNzWVVGQll5d3JRa0ZCSzBJc1JVRkRlRVFzUzBGRldDeEhRVUZOTEVOQlFVVXNUMEZCUVVVc1EwRkJUeXhGUVVGSlJpeEZRVUZOTEVOQlFVTXNSVUZEY0VKSExFVkJRVTlFTEVWQlFVOHNRMEZCUXl4RlFVTnFRbEFzUlVGQlV5eEZRVU5VVXl4RlFVRlJMRWRCUTFKRExFVkJRVkVzUjBGRFdpeFJRVUZUYWtJc1JVRkJTU3hGUVVGSFFTeEZRVUZKWXl4RlFVRlBMRTlCUVZFc1JVRkJSV1FzUlVGQlJ5eERRVU53UXl4SlFVRk5hMElzUlVGQlMwb3NSVUZCVDJRc1EwRkJReXhGUVVOdVFpeEhRVUZKTEVOQlFVTm5RaXhKUVVGVlJTeEpRVUZQTEV0QlFVOUJMRWxCUVU4c1MwRkRhRU5HTEVWQlFWRkZMRTFCUTFBc1EwRkRSQ3hKUVVGTlF5eEZRVUZKTEU5QlFVOUVMRU5CUVVVc1JVRkRaaXhEUVVGRFdDeEhRVUZWV1N4RlFVTllXaXhGUVVGVFdTeEZRVU5LUml4SlFVRlZMRXRCUTJaQkxFVkJRVkZhTEVWQlFWTk1MRVZCUTNwQ0xFTkJRMG9zUTBGRFNXbENMRWxCUVZVc1NVRkRWakZDTEVWQlFWRXdRaXhGUVVGUExHMUNRVUZ2UWl4clJFRkJhMFJJTEVOQlFVMHNSVUZCUlN4RlFVTnFSeXhKUVVGSlRTeEZRVUZYTEVkQlExaERMRVZCUVZVc1IwRkRWa01zUlVGQlUxSXNSVUZCVHl4UFFVTndRaXhSUVVGVFpDeEZRVUZKTEVWQlFVZEJMRVZCUVVsWkxFVkJRVTBzVDBGQlVTeEZRVUZGV2l4RlFVRkhMRU5CUTI1RExFbEJRVTExUWl4RlFVRlJXQ3hGUVVGTldpeERRVUZETEVWQlEzSkNMRTlCUVZGMVFpeEZRVUZOTEV0QlFVMHNRMEZEYUVJc1NVRkJTeXhSUVVORVNDeEZRVUZYTEVkQlJXWXNTVUZCU3l4VlFVTkVSU3hIUVVGVlF5eEZRVUZOTEU5QlFVOHNUMEZEZGtJc1RVRkRTaXhKUVVGTExGVkJRMGRXTEVkQlFWVXNRMEZCUTA4c1IwRkZXRGRDTEVWQlFWRm5ReXhGUVVGUExHVkJSRU1zZDBWQlEzTkNMRVZCUlRGRFJDeEhRVUZWUXl4RlFVRk5MRTlCUVU4c1QwRkRka0pHTEVWQlFWVkZMRVZCUVUwc1QwRkJUeXhWUVVGVkxFTkJRVU1zUlVGRGJFTXNUVUZEU2l4SlFVRkxMRkZCUTBSb1F5eEZRVUZSWjBNc1JVRkJUeXh0UWtGQmIwSkJMRVZCUVUwc1QwRkJUeXhGUVVOb1JFUXNSMEZCVlVNc1JVRkJUU3hQUVVGUExFOUJRM1pDTEUxQlJVb3NVVUZCVXl4RFFVTk1MRWxCUVUxYUxFVkJRVlVzTkVOQlFUUkRXU3hGUVVGTkxFbEJRVWtzUjBGRGRFVm9ReXhGUVVGUlowTXNSVUZCVHl4dFFrRkJiMEphTEVOQlFVOHNSVUZETVVNc1NVRkJUV0VzUlVGQlMwUXNSVUZCVFN4UFFVTmlReXhIUVVGTkxFOUJRVTlCTEVkQlFVOHNWMEZEY0VKR0xFZEJRVlZGTEVWQlFVY3NUMEZEY2tJc1EwRkRTaXhEUVVOS0xFTkJRMEVzVFVGQlR5eERRVUZGTEV0QlFVRlVMRVZCUVUwc1QwRkJRVklzUlVGQlVTeE5RVUZCVXl4RlFVRlBMRkZCUVVGTExFVkJRVk1zVDBGQlFVTXNRMEZCVHl4RFFVTnNSQ3hEUVVWQkxGTkJRVk40UWl4SFFVRlhaMElzUlVGQlVTeERRVU40UWl4SlFVRk5WeXhGUVVGUldDeEZRVUZQTEUxQlFVMHNVVUZCVVN4RlFVTTNRbGtzUlVGQlVVUXNSVUZCVFN4RFFVRkRMRVZCUTJaRkxFVkJRVWxFTEVWQlFVMHNUVUZCVFN4UFFVRlBMRVZCU1haQ04wSXNSVUZCVVN4RFFVaEJPRUlzUjBGQlFTeE5RVUZCUVN4RlFVRkpMRWRCUTFvc1EwRkJRMEVzUlVGQlJTeERRVUZETEVWQlFVZEVMRVZCUVUwc1RVRkJUVU1zUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUXk5Q0xFTkJRVU1zUjBGQlNVUXNRMEZCU3l4RFFVTkpMRVZCUTNCQ0xGRkJRVk14UWl4RlFVRkpMRVZCUVVkQkxFVkJRVWw1UWl4RlFVRk5MRTlCUVZGNlFpeEhRVUZMTEVWQlEyNURTQ3hGUVVGTkxFdEJRVXNzUTBGQlF6UkNMRVZCUVUxNlFpeERRVUZETEVWQlFVZDVRaXhGUVVGTmVrSXNSVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOMlF5eFBRVUZQU0N4RFFVTllMRU5EYUUxQkxGTkJRVk1yUWl4SFFVRnJRa01zUlVGQlVVTXNSVUZCVVVNc1JVRkJVeXhEUVVOb1JDeEhRVUZOTEVOQlFVVXNUMEZCUVVNc1JVRkJVU3hMUVVGQlF5eEZRVUZOTEU5QlFVRkRMRVZCUVZFc1NVRkJRVU1zUTBGQlNTeEZRVUZKVGl4RlFVTnNRMDhzUlVGRFFVTXNSVUZEUlVNc1JVRkJWeXhEUVVGRFF5eEZRVUZMUXl4RlFVRk5ReXhKUVVGUlZpeEZRVUZSUXl4RlFVRlRUeXhGUVVGTFF5eEZRVUZOUXl4RFFVRkhMRVZCUTNCRkxFOUJRVkZTTEVWQlFVMHNRMEZEVml4SlFVRkxMRk5CUTBSSExFVkJRVkZOTEVWQlFVOHNUVUZEWmt3c1JVRkJVVTBzUjBGQlYxUXNSVUZCVVVrc1EwRkJVU3hGUVVOdVF5eE5RVU5LTEVsQlFVc3NkVUpCUTBSR0xFVkJRVkZOTEVWQlFVOHNZVUZEWmt3c1JVRkJVVThzUjBGQmEwSldMRVZCUVZGSkxFTkJRVkVzUlVGRE1VTXNUVUZEU2l4SlFVRkxMSFZDUVVORVJpeEZRVUZSVFN4RlFVRlBMR0ZCUTJaTUxFVkJRVkZSTEVkQlFXdENXQ3hGUVVGUlNTeERRVUZSTEVWQlF6RkRMRTFCUlVvc1VVRkRTU3hQUVVGQlVDeEZRVUZSUml4RlFVRlJMRzFDUVVGdlFpdzBRMEZCTkVOSkxFTkJRVWtzUlVGQlJTeEZRVU12UlN4RFFVTklMRTFCUVU4c1IwRkRVQ3hMUVVGTkxFdEJRMDRzVVVGQlV5eEhRVU5VTEUxQlFVOHNRMEZCUTBRc1JVRkJVVUVzUlVGQlUwVXNSVUZCVHl4UFFVRlJSaXhGUVVGVFJTeEZRVUZQTEUxQlFVMHNRMEZEYkVVc1EwRkRVaXhEUVVOQkxFbEJRVTFaTEVWQlFWZGtMRVZCUVZORkxFVkJRVThzVDBGRE0wSmhMRVZCUVV0RExFZEJRVmRpTEVWQlFVdFhMRVZCUVZWb1FpeEZRVUZSUXl4RFFVRlBMRVZCUTNCRUxFMUJRVThzUTBGRFNDeE5RVUZCVFN4RlFVTkJMRXRCUVUxRUxFVkJRMDRzVVVGQlUxY3NSVUZCUnl4UlFVTmFMRTFCUVU4c1EwRkJRMllzUlVGQlVXTXNSVUZCVlVNc1JVRkJSeXhOUVVGTkxFTkJRM1pETEVOQlEwb3NRMEZEUVN4VFFVRlRTaXhIUVVGWFZDeEZRVUZSU0N4RlFVRlRMRU5CUTJwRExFbEJRVWxyUWl4RlFVRlZMRWRCUTJRc1QwRkJVV1lzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZGWml4SlFVRkxMRWxCUTBSbExFVkJRVlVzYTBKQlExWXNUVUZEU2l4SlFVRkxMRWxCUTBSQkxFVkJRVlVzTmtKQlExWXNUVUZEU2l4SlFVRkxMRWxCUTBSQkxFVkJRVlVzYTBOQlExWXNUVUZEU2l4SlFVRkxMRWxCUTB3c1NVRkJTeXhKUVVGTExFTkJRMDVCTEVWQlFWVXNNRUpCUVRCQ1ppeEZRVUZQTEVOQlFVTXNRMEZCUXl4SFFVTTNReXhMUVVOS0xFTkJRMEVzU1VGQlN5eEpRVU5NTEVsQlFVc3NTVUZCU3l4RFFVTk9aU3hGUVVGVkxITkNRVUZ6UW1Zc1JVRkJUeXhEUVVGRExFTkJRVU1zUjBGRGVrTXNTMEZEU2l4RFFVTktMRU5CUTBFc1QwRkJTV1VzUjBGRFFXeENMRVZCUVZFc1JVRkJSeXh0UWtGQmIwSXNhVU5CUVdsRGEwSXNRMEZCVHl4RlFVRkZMRVZCUTNSRlF5eEhRVUZWYUVJc1EwRkJUU3hEUVVNelFpeERRVU5CTEZOQlFWTlZMRWRCUVd0Q1ZpeEZRVUZSU0N4RlFVRlRMRU5CUTNoRExFOUJRVWxITEVWQlFVOUJMRVZCUVU4c1QwRkJVeXhEUVVGRExFbEJRVTBzUzBGQlQwRXNSVUZCVHl4VFFVRlhMRWxCUTNaRVNDeEZRVUZSUnl4RlFVRlBMRTlCUVZFc1pVRkJaMElzZDBKQlFYZENMRVZCUXpWRVowSXNSMEZCVldoQ0xFVkJRVThzVFVGQlRTeEZRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1RVRkJUeXhIUVVGSExFTkJRelZFTEVOQlEwRXNVMEZCVTJkQ0xFZEJRVlZvUWl4RlFVRlJMRU5CZWtVelFpeEpRVUZCYVVJc1JVRnBSa2tzU1VGQlNVTXNSVUZCVDBNc1JVRkRXQ3hIUVVGSkxFTkJRMEZFTEVWQlFWRXNTVUZCU1N4UFFVRlBPMEZCUVVFc1JVRkJPRUlzU1VGQlNTeEZRVU55UkVNc1JVRkJUeXhKUVVGSkxFOUJRVTg3UVVGQlFTeEZRVUY1UXl4SlFVRkpMRU5CUTI1RkxFOUJRMDFETEVWQlFVRXNRMEZEUmtZc1JVRkJVU3hYUVVGRExITkNRVUZwUWl4SlFVRkZMRVZCUXpWQ1F5eEZRVUZQTEZkQlFVTXNOa0pCUVhWQ0xFbEJRVVVzUTBGRGNrTXNRMEZEUVN4SlFVRkpSU3hGUVVGUlNDeEZRVUZOTEV0QlFVdHNRaXhEUVVGTkxFVkJRemRDTEVkQlFVa3NRMEZCUTNGQ0xFVkJRMFFzVDBGQlQzSkNMRVZCUTFnc1NVRkJTWE5DTEVWQlFVMUVMRVZCUVUwc1EwRkJReXhGUVVOaVJTeEZRVUZOTEVsQlEwNURMRVZCUVUxT0xFVkJRVTBzVlVGRmFFSXNTVUZFUVVNc1JVRkJTeXhWUVVGWlN5eEZRVU5VU0N4RlFVRlJSaXhGUVVGTExFdEJRVXR1UWl4RFFVRk5MRWRCUTNoQ2NVSXNSVUZCVFN4RFFVRkRMRWxCUVUwc1IwRkRWRVVzU1VGQlVUdEJRVUZCTEVWQlExSkVMRWRCUVU5RExFVkJSVkJCTEVWQlFVMDdRVUZCUVN4SFFVZFdSQ3hIUVVGUFF5eEZRVUZOUml4RlFVRk5MRU5CUVVNc1JVRkRjRUpGTEVWQlFVMHNTMEZGVmtNc1JVRkJUVXdzUlVGQlN5eFZRVVZtTEVsQlFVMU5MRVZCUVU4c1YwRkJReXhqUVVGWExFbEJRVVVzUlVGRE0wSXNUMEZCUVVFc1JVRkJTeXhWUVVGWlJDeEZRVU5xUWtnc1JVRkJVVWtzUlVGQlN5eExRVUZMZWtJc1EwRkJUU3hGUVVOcVFuTkNMRVZCUVUxRExFbEJRVTlPTEVWQlFVRkpMRWRCUVVFc1dVRkJRVUVzUlVGQlVTeExRVUZTTEV0QlFVRktMRVZCUVdNc1IwRkRkRU1zUTBGRFFTeFRRVUZUVGl4SFFVRnJRbGdzUlVGQlVVZ3NSVUZCVXl4RFFVTjRReXhKUVVGSmVVSXNSVUZCVFN4SFFVTldMRkZCUVZOSkxFVkJRVWtzUlVGQlIwRXNSVUZCU1RGQ0xFVkJRVThzVDBGQlV5eEZRVUZITEVWQlFVVXdRaXhGUVVGSExFTkJRM2hETEVsQlFVMURMRVZCUVVzelFpeEZRVUZQTUVJc1EwRkJReXhGUVVOdVFpeEhRVUZKTEVWQlFVRkRMRWxCUVU4c1RVRkJVVE5DTEVWQlFVOHdRaXhGUVVGSkxFTkJRVU1zU1VGQlRUdEJRVUZCTEVkQlJYSkRMRWRCUVVsRExFbEJRVTg3UVVGQlFTeEZRVUZOTEVOQlEySXNSMEZCVFN4RFFVRkZMRXRCUVVGRExFVkJRVTBzVDBGQlFUbENMRU5CUVU4c1JVRkJTU3RDTEVkQlFWazNRaXhGUVVGUk1FSXNRMEZCUXl4RlFVTTVRMG9zUjBGQlQwMHNSVUZEVUVZc1JVRkJTVFZDTEVOQlExSXNVMEZEVXpaQ0xFbEJRVThzUzBGQlRTeERRVU5zUWl4SlFVRkpSeXhGUVVGUE9VSXNSVUZCVHl4RlFVRkZNRUlzUTBGQlF5eEZRVU5tU3l4RlFVRkxReXhIUVVGWlJpeERRVUZKTEVWQlF6TkNMRWRCUVVsRExFVkJRMEZVTEVkQlFVOVRMRlZCUTBaRUxFbEJRVk03UVVGQlFTeEZRVWRrTEVsQlJFRkJMRVZCUVU4NVFpeEZRVUZQTUVJc1JVRkJTU3hEUVVGRExFVkJRMXBKTEVsQlFWTXNTMEZCVDBFc1NVRkJVeXhMUVVNMVFrRXNSVUZCVHpsQ0xFVkJRVThzUlVGQlJUQkNMRVZCUVVrc1EwRkJReXhWUVVWd1Fra3NTVUZCVXl4TlFVRlJPVUlzUlVGQlR6QkNMRVZCUVVrc1EwRkJReXhKUVVGTk8wRkJRVUVzUlVGSGVFTXNTVUZFUVVrc1JVRkJUemxDTEVWQlFVOHNSVUZCUlRCQ0xFVkJRVWtzUTBGQlF5eEZRVU5rU1N4SlFVRlRMRXRCUVU5QkxFbEJRVk1zUzBGRE5VSkJMRVZCUVU4NVFpeEZRVUZQTEVWQlFVVXdRaXhGUVVGSkxFTkJRVU1zVlVGRmNFSkpMRWxCUVZNc1MwRkJUMEVzU1VGQlV5eExRVUZQUVN4SlFVRlRMRWxCUVVzc1EwRkRia1FzU1VGQlRVY3NSVUZCVXl4RFFVRkZMRVZCUVVjc1JVRkJSeXhGUVVGSExFVkJRVWNzUlVGQlJ5eERRVUZGTEVWQlFVVklMRU5CUVVrc1JVRkRlRU5TTEVkQlFVOVpMRWRCUVdOc1F5eEZRVUZSTUVJc1JVRkJTU3hGUVVGSFR5eEZRVUZSY0VNc1EwRkJUeXhGUVVOdVJEWkNMRWRCUVV0UExFTkJRMVFzUzBGRFN5eERRVU5FTEVsQlFVMUZMRVZCUVUxdVF5eEZRVUZQTEU5QlFVOHdRaXhGUVVGSkxFVkJRVWNzUTBGQlF5eEZRVU5zUXpkQ0xFVkJRVkUyUWl4RlFVRkpMRVZCUVVjc1owSkJRV2xDTERKQ1FVRXlRbE1zUTBGQlJ5eEZRVUZGTEVWQlEyaEZZaXhIUVVGUFlTeERRVU5ZTEVOQlEwb3NVMEZEVTFJc1NVRkJUeXhMUVVGUFFTeEpRVUZQTEVsQlFVMHNRMEZGYUVNc1NVRkJUVk1zUlVGQlZWWXNSVUZEV2trc1JVRkJUemxDTEVWQlFVOHdRaXhGUVVGSkxFTkJRVU1zUlVGRGRrSXNTMEZCVDBrc1NVRkJVeXhMUVVGUFFTeEpRVUZUTEV0QlF6VkNRU3hGUVVGUE9VSXNSVUZCVHl4RlFVRkZNRUlzUlVGQlNTeERRVUZETEVWQlEzSkNTU3hKUVVGVE8wRkJRVUVzUjBGQlVTeEZRVUZGUVN4SlFVRlRMRTFCUVZFNVFpeEZRVUZQTUVJc1JVRkJTU3hEUVVGRExFbEJRVTA3UVVGQlFTeExRVU4wUkVvc1IwRkJUMGtzUlVGQlNWVXNSVUZCVlhCRExFVkJRVThzVFVGQlRXOURMRVZCUVZOV0xFVkJRVWtzUTBGQlF5eEZRVUZKUXl4RlFVTTFSQ3hOUVVWSlRDeEhRVUZQU3l4RFFVVm1MRU5CUTBFc1QwRkJTVE5DTEVWQlFVOUJMRVZCUVU4c1QwRkJVeXhEUVVGRExFbEJRVTBzUzBGQlQwRXNSVUZCVHl4VFFVRlhMRWxCUTNaRVNDeEZRVUZSUnl4RlFVRlBMRTlCUVZFc1pVRkJaMElzZDBKQlFYZENMRVZCUXpWRWMwSXNRMEZEV0N4RFFVdEJMRk5CUVZOUExFZEJRVmszUWl4RlFVRlJSaXhGUVVGUkxFTkJRMnBETEVsQlFVazRRaXhGUVVGUExFZEJRMUJFTEVWQlFVc3pRaXhGUVVGUFJpeEZRVUZUTEVOQlFVTXNSVUZETVVJc1RVRkJUelpDTEVsQlFVOHNTMEZCVDBFc1NVRkJUeXhMUVVGUlFTeEpRVUZQTzBGQlFVRXNSMEZCVVVFc1NVRkJUeXhQUVVOc1JDeEZRVUZCUVN4SlFVRlBMRTFCUVZFelFpeEZRVUZQUml4RlFVRlRMRU5CUVVNc1NVRkJUVHRCUVVGQkxFbEJSWFJETmtJc1NVRkJUenRCUVVGQkxFbEJRMUJETEVkQlFWRTdRVUZCUVN4SFFVTmFPVUlzUjBGQlZTeEZRVU5XTmtJc1JVRkJTek5DTEVWQlFVOUdMRVZCUVZNc1EwRkJReXhGUVVVeFFpeFBRVUZMT0VJc1NVRkRSRUVzUlVGQlR5eExRVU5LTEVOQlFVVXNTMEZCUVVFc1JVRkJUU3hQUVVGQk9VSXNRMEZCVHl4RFFVTXhRaXhEUVVOQkxFbEJRVTFyUXl4SFFVRmpMRU5CUTJoQ0xFVkJRVXNzUzBGRFRDeEZRVUZITEU5QlEwZ3NSVUZCUnl4TFFVTklMRVZCUVVjc1QwRkRTQ3hGUVVGSExFdEJRMGdzUlVGQlJ6dEJRVUZCTEVWQlEwZ3NSVUZCUnl4TFFVTklMRVZCUVVjc1NVRkRTQ3hGUVVGSExFdEJRMGdzUlVGQlJ5eFBRVU5JTEVWQlFVY3NUMEZEU0N4RlFVRkhMRk5CUTBnc1JVRkJSeXhUUVVOSUxFbEJRVXNzU1VGRFRDeEpRVUZMTEVsQlEwd3NTVUZCU3l4SlFVTk1MRXRCUVUwc1MwRkRUaXhKUVVGTkxFZEJRMVlzUlVGRFFTeFRRVUZUUlN4SFFVRmpiRU1zUlVGQlVVWXNSVUZCVVcxRExFVkJRVkZ3UXl4RlFVRlRMRU5CUTNCRUxFbEJRVTFyUXl4RlFVRkxMMElzUlVGQlR5eFBRVUZQUml4RlFVRlJiVU1zUTBGQlRTeEZRVVZxUXpOQ0xFVkJSRXQ1UWl4RlFVRkhMRk5CUVZkRkxFZEJRVlVzYVVKQlFXbENMRXRCUVV0R0xFTkJRVVVzUlVGRGVrTXNVMEZCVTBFc1JVRkJTU3hGUVVGRkxFVkJRVWtzU1VGRGNrTXNSMEZCU1N4TlFVRk5la0lzUTBGQlNTeEZRVUZITEVOQlEySXNTVUZCVFRaQ0xFVkJRVTF1UXl4RlFVRlBMRTlCUVU5R0xFVkJRVk1zUlVGQlIyMURMRVZCUVZNc1EwRkJReXhGUVVOb1JDeFBRVUZCY0VNc1JVRkJVVU1zUlVGQlV5eEZRVUZITEdkQ1FVRnBRaXd5UWtGQk1rSnhReXhEUVVGSExFVkJRVVVzUlVGRE9VUkJMRU5CUTFnc1EwRkRRU3hQUVVGUExFOUJRVThzWTBGQll6ZENMRU5CUVVrc1EwRkRjRU1zUTBOMlRrRXNVMEZCVXl0Q0xFZEJRV05ETEVWQlFVdERMRVZCUVU5RExFVkJRVlZETEVWQlFWTXNRMEZEYkVRc1IwRkJUU3hEUVVGRkxFMUJRVUZETEVWQlFVOHNTMEZCUVVNc1JVRkJUU3hSUVVGQlF5eEZRVUZUTEUxQlFVRkRMRU5CUVUwc1JVRkJTVTRzUlVGQlRTeFBRVUZUTEdWQlEycEVUeXhIUVVGdFFsSXNSVUZCUzBNc1JVRkJUMFVzUTBGQlR5eEZRVU4wUTAwc1IwRkJhMEpTTEVWQlFVOUVMRVZCUVVrc1VVRkJVU3hQUVVGUlJ5eERRVUZQTEVWQlEzQkVUeXhGUVVGVlVpeEZRVU5XUml4RlFVRkpMRmRCUVZjc1VVRkJVVVVzUlVGQlV5eFBRVUZSVXl4SFFVRlBVaXhGUVVGUlJDeEZRVUZWTEhGQ1FVRnpRbE1zUTBGQlJ5eERRVUZETEVWQlF6TkdMRXRCUTBaRExFVkJRMEZhTEVWQlFVa3NVVUZCVVN4WlFVRmpRU3hGUVVGSkxFMUJRemxDV1N4RlFVRk5XaXhGUVVGSkxFOUJRVTloTEVWQlFVMHNSVUZGYkVKSUxFVkJRMHhGTEVWQlFVMUZMRWRCUVc5Q1pDeEZRVUZKTEU5QlFWRkpMRVZCUVU5TkxFVkJRVk5TTEVWQlFWVkRMRU5CUVU4c1JVRkRiRVZHTEVWQlFVMHNUMEZCVXl4VFFVTndRbGNzUlVGQlRVY3NSMEZCYjBKbUxFVkJRVXRKTEVWQlFVOUlMRVZCUVU5RkxFTkJRVThzUlVGRmNFUlRMRVZCUVUxYUxFVkJRVWtzVDBGQlQyRXNSVUZCVFN4RlFVTXpRaXhKUVVGSlJ5eEZRVU5LTEVkQlFVa3NRMEZEUVN4SlFVRk5ReXhGUVVGTlRDeEZRVUZKTEZGQlFWRlNMRVZCUVU5UExFZEJRVTlTTEVWQlFWRkVMRWRCUVVFc1MwRkJRVUVzUlVGQldVUXNSVUZCVHl4eFFrRkJjMEpWTEVOQlFVY3NSVUZCUjFnc1JVRkJTU3hQUVVGUExFVkJRM2hIWjBJc1JVRkJVMFVzUlVGQlUwUXNRMEZCUnl4RlFVRkpRU3hGUVVGTkxFbEJRVWxGTEVWQlFVOUdMRU5CUVVjc1EwRkRha1FzVDBGRFQwY3NSVUZCVHl4RFFVTldMRWxCUVUxVUxFVkJRVTFUTEdGQlFXbENMRTFCUVZGQkxFVkJRVTBzVVVGQlZTeFBRVUZQUVN4RFFVRkxMRVZCUTJwRmFrSXNSVUZCVVVRc1IwRkJRU3hMUVVGQlFTeEZRVUZaUkN4RlFVRlBMSEZDUVVGelFsVXNRMEZCUnl4RlFVTndSRXNzUlVGQlV5eEpRVUZKUnl4RlFVRlBaaXhEUVVGTExFTkJRemRDTEVOQlEwRXNUMEZCUVZrc1JVRkJUeXhOUVVGUlZDeEZRVU5tVXl4RlFVRlBMRTlCUVZOYUxFVkJRMXBETEVsQlEwRlhMRVZCUVU4c1MwRkJUMWdzUjBGRFpFc3NTVUZEUVUwc1JVRkJUeXhKUVVGTlRpeEhRVU5pUlN4RlFVRkpMRk5CUTBwSkxFVkJRVThzVDBGQlUwb3NSVUZCU1N4UlFVTndRazRzU1VGRFFWVXNSVUZCVHl4UlFVRlZWaXhIUVVOa1ZTeERRVU5ZTEVOQlEwRXNVMEZCVTBZc1IwRkJiMEpQTEVWQlFWRnFRaXhGUVVGUFRTeEZRVUZUVWl4RlFVRlZReXhGUVVGVExFTkJOVU40UlN4SlFVRkJiVUlzUlVFMlEwa3NSMEZCU1Zvc1NVRkJXU3hKUVVOYUxFOUJRVTlYTEVWQlFVOVNMRVZCUVUwc1JVRkRlRUlzU1VGQlRWVXNSVUZCWjBJc1EwRkJReXhGUVVOMlFpeFJRVUZYV0N4TFFVRlBVeXhGUVVGUExFdEJRM0pDTEVkQlFVa3NRMEZCUTFRc1JVRkJTU3haUVVGalFTeEZRVUZKTEUxQlFWRkdMRVZCUXk5Q0xFZEJRVWxGTEVWQlFVa3NVMEZCVjBFc1JVRkJTU3hMUVVOdVFsY3NSVUZCWXl4TFFVRkxXQ3hEUVVGSExFMUJSWFJDTEZGQlFVOUJMRVZCUjI1Q0xGRkJRVmRCTEV0QlFVOVhMRVZCUTJRc1NVRkJTVVFzUlVGQlFWWXNSVUZCU1N4UFFVRktMRTFCUVVGVkxFVkJRVlVzUzBGQlMyeENMRWRCUTJZc1QwRkJUMUVzUlVGRFppeEpRVUZOV1N4RlFVRkxTQ3hGUVVGUExGVkJRVlZZTEVOQlFVOHNSVUZEYmtNc1QwRkJTV01zUjBGQlRTeERRVUZEUVN4RlFVRkhMRmxCUjFaSUxFVkJRVThzUzBGQlN5eExRVUZMTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVkSExFVkJRVWtzUTBGQlJTeFJRVUZUTEVkQlFVOHNTMEZCVFN4TlFVRlZMRU5CUVVNc1EwRkJReXhGUVVOd1JVRXNTVUZGV0hKQ0xFVkJRVkZFTEVWQlFWVXNjVUpCUVhOQ0xHMUNRVUZ0UWxFc1EwRkJUeXhIUVVGSlFTeEpRVUZaTEhWQ1FVRjFRaXhGUVVOc1IxY3NSVUZCVDFJc1JVRkJUU3hGUVVONFFpeERRVU5CTEZOQlFWTkZMRWRCUVc5Q0xFTkJRVVVzVFVGQlFWVXNSVUZCVHl4WFFVRkJReXhGUVVGWkxFOUJRVUZNTEVOQlFVOHNSVUZCUjJwQ0xFVkJRVTlJTEVWQlFVOUZMRVZCUVZNc1EwRnlSVzVHTEVsQlFVRnRRaXhGUVhORlNTeEpRVUZOVml4RlFVRk5VeXhGUVVGUExFdEJRVXNzUzBGQlMxUXNSMEZCU1N4RFFYUkZja01zU1VGQlFWVXNSVUZ6UlhsRExFOUJRVUZXTEVWQlFVa3NWVUZCV1N4SlFVRlRZU3hIUVVGVFlpeEZRVUZKTEZWQlFWa3NWVUZEYmtaVkxFVkJRVUZXTEVWQlFVa3NUMEZCU2l4WlFVRkJWU3hGUVVGVkxFdEJRVXRzUWl4SlFVRk5MRWRCUVV0cFFpeEZRVUZQVWl4RlFVRk5MRVZCUXpORExFZEJRVWxSTEVWQlFVOHNUMEZCVVN4RFFVTm1MRWxCUVUxTkxFZEJRVk5NTEVWQlFVRkVMRVZCUVU4c1QwRkJUeXhMUVVGTFZDeEhRVUZKTEVOQmVrVTVReXhKUVVGQlZTeEZRWGxGYVVRc1QwRkJRVllzUlVGQlNTeFhRVUZYVlN4RlFVRkJWaXhGUVVGSkxFOUJRVW9zV1VGQlFWVXNSVUZCVlN4TFFVRkxiRUlzU1VGQlRTeEpRVUU1UkN4TFFVRkJhMElzUlVGRFdFUXNSVUZCVDFJc1JVRkJUU3hGUVVOcVFpeEhRVUZKUkN4RlFVRkpMRTFCUVZGbExFVkJRVThzU1VGQlN5eERRVU40UWl4SlFVRk5ReXhGUVVGTFJpeEZRVUZYTEZWQlFWVmtMRVZCUVVrc1IwRkJSeXhGUVVOcVEybENMRVZCUVV0SUxFVkJRVmNzVlVGQlZVTXNSVUZCVHl4SFFVRkhMRVZCUTNCRGFFSXNSVUZCVFN4cFEwRkJhVU5wUWl4RFFVRkZMRTlCUVU5RExFTkJRVVVzUjBGRGVFUXhRaXhGUVVGUlJpeEZRVUZQTEhGQ1FVRnpRbFVzUlVGQlN5eEZRVUZKTEVOQlEyeEVMRU5CUTBvc1EwRkRRU3hQUVVGUFF5eERRVU5ZTEVORGJrWkJMRk5CUVZOclFpeEhRVUZ2UWtNc1JVRkJVVU1zUlVGQlVVTXNSVUZCU3l4RFFVTTVReXhIUVVGSlJDeEZRVUZSTEVOQlEwcERMRWxCUVZFc1QwRkRVa0VzUlVGQlRVUXNSVUZCVHl4UlFVTnFRaXhSUVVGVFJTeEZRVUZKUkN4RlFVRk5MRVZCUVVkRExFZEJRVXNzUlVGQlJ5eEZRVUZGUVN4RlFVRkhMRU5CUXk5Q0xFbEJRVWxETEVWQlFVdElMRVZCUVU5RkxFTkJRVU1zUlVGRGFrSXNUMEZCVVVNc1JVRkJSeXhMUVVGTkxFTkJRMklzU1VGQlN5eFJRVU5NTEVsQlFVc3NWVUZEVEN4SlFVRkxMRlZCUTBSS0xFZEJRVlZKTEVWQlFVY3NUMEZCVHl4UFFVTndRaXhSUVVOU0xFTkJTVUVzU1VGRVFVRXNSVUZCUzBnc1JVRkJUeXhGUVVGRlJTeERRVUZETEVkQlExSkRMRWRCUVVFc1dVRkJRVUVzUlVGQlNTeFJRVUZUTEZOQlEyaENTaXhIUVVGVlNTeEZRVUZITEU5QlFVOHNUMEZEY0VKQkxFVkJRVXRJTEVWQlFVOHNSVUZCUlVVc1EwRkJReXhGUVVWdVFpeExRVU5LTEVOQlEwb3NRMEZEUVN4UFFVRlBTQ3hEUVVOWUxFTkRha0pCTEVsQlFVMUxMRWRCUVVzc1EwRkJSU3haUVVGQlF5eEhRVUZoTEdsQ1FVRkJReXhGUVVGcFFpeEZRVU16UXl4VFFVRlRSQ3hIUVVGWlJTeEZRVUZMUXl4RlFVRlBReXhGUVVGUFF5eEZRVUZUTEVOQlF6ZERMRWxCUVUxRExFVkJRVkZLTEVWQlFVa3NUVUZEV2l4RFFVRkZMRmxCUVVGTExFVkJRV0VzVVVGQlFVTXNSVUZCVXl4UFFVRkJReXhGUVVGUkxFbEJRVUZETEVOQlFVa3NSVUZCU1U0c1JVRkRNVU5QTEVWQlEwRkRMRVZCUVdFc1IwRkRha0lzVDBGQlVWUXNSVUZCVFN4TFFVRk5MRU5CUTJoQ0xFbEJRVXNzVVVGRFJGRXNSVUZCVDBVc1IwRkJZVmdzUlVGQlMwTXNSVUZCVDBVc1EwRkJUeXhIUVVOdVEwa3NSMEZCVlVNc1NVRkRWa3dzUlVGQlVVWXNSVUZCVHl4alFVRmxMQ3REUVVFclF5eEZRVU5xUml4TlFVTktMRWxCUVVzc1UwRkRUQ3hKUVVGTExIVkNRVU5NTEVsQlFVc3NkVUpCUTB3c1NVRkJTeXhsUVVORVVTeEZRVUZQUnl4SFFVRmpXaXhGUVVGTFF5eEZRVUZQVHl4RlFVRkxUQ3hEUVVGUExFVkJRM3BEU1N4SlFVTkJSU3hGUVVGTExFOUJRVk5HTEVWQlFVOHNUMEZCVHl4VlFVRlZMRU5CUVVNc1IwRkRNME1zVFVGRFNpeEpRVUZMTEZsQlEwd3NTVUZCU3l4WlFVTk1MRWxCUVVzc2EwSkJRMFJGTEVWQlFVOUpMRWRCUVd0Q2FFSXNSMEZCU1Vjc1JVRkJTME1zUlVGQlQwTXNSVUZCVDBNc1EwRkJUeXhGUVVOdVJFa3NTVUZEUVVVc1JVRkJTeXhQUVVGVFJpeEZRVUZQTEU5QlFVOHNWVUZCVlN4RFFVRkRMRWRCUXpORExFMUJRMG9zVVVGQlV5eERRVU5NTEVsQlFVMVBMRVZCUVZWaUxFVkJRVTBzVDBGQlV5eFJRVU42UWtFc1JVRkJUU3hSUVVOT0xEUkNRVUUwUWtFc1JVRkJUU3hKUVVGSkxFbEJRelZEUlN4RlFVRlJSaXhGUVVGUExHMUNRVUZ2UW1Fc1EwRkJUeXhGUVVNeFEwd3NSVUZCVDFZc1IwRkJhVUpETEVWQlFVdERMRVZCUVUwc1QwRkJVU3hQUVVGWExFdEJRVTFETEVWQlFVOURMRU5CUVU4c1JVRkRNVVZQTEVWQlFXRXNSVUZEYWtJc1EwRkRTaXhEUVVOQkxFOUJRVWxJTEVkQlFWVkZMRVZCUVVzc1UwRkJWeXhKUVVNeFFrNHNSVUZCVVVrc1JVRkJVU3haUVVGaExHdERRVUZyUXl4RlFVTXZSRWdzUjBGRFFVb3NSVUZCU1N4UlFVRlJMR0ZCUTFnc1EwRkJRMlVzUlVGQlUwNHNRMEZCU1N4SFFVTllMRTlCUVU5QkxFVkJRVXNzVDBGQlZTeFZRVU55UWtFc1JVRkJTeXhMUVVGUFFTeEZRVUZMTEUxQlFWRXNNRUpCUlRsQ1RpeEZRVUZSU3l4SFFVRkJMRXRCUVVGQkxFVkJRVTlRTEVWQlFVOHNhVUpCUkZZc01rTkJReXRDTEVWQlJUTkRTU3hKUVVOQlNTeEZRVUZMTEZsQlFXTXNTVUZEYmtKSUxFbEJRMGxNTEVWQlFVMHNUMEZCVXl4VlFVRlpRU3hGUVVGTkxGTkJRVmNzUjBGRE5VTlJMRVZCUVVzc1VVRkJWVWdzUlVGRlprY3NSVUZCU3l4alFVRm5Ra2dzUjBGSGVrSk9MRVZCUVVrc1VVRkJVU3hyUWtGQmIwSlZMRWxCUTJoRFJDeEZRVUZMTEZOQlFWZFNMRWRCUTJKUkxFTkJRMWdzUTBGRFFTeFRRVUZUVml4SFFVRnBRa01zUlVGQlMyZENMRVZCUVZGRExFVkJRVkZETEVWQlFVc3NRMEZCUlN4WlFVRkJZaXhGUVVGaExGRkJRVUZETEVWQlFWTXNUMEZCUVVNc1JVRkJVU3hKUVVGQlF5eEZRVUZMTEVsQlFVRlhMRU5CUVVrc1JVRkJSMmhDTEVWQlFWTXNRMEZEY2tjc1NVRkJUVVlzUlVGQlVTeERRVU5XTEV0QlFVMHNVMEZEVGl4UFFVRlJiVUlzUjBGQmIwSktMRVZCUVZGRExFVkJRVkZETEVOQlFVY3NSVUZETDBNc1QwRkJVU3hIUVVOU0xFOUJRVkVzUlVGRFdpeEZRVU5OVkN4RlFVRlBSeXhIUVVGaldpeEZRVUZMUXl4RlFVRlBUeXhGUVVGTFRDeERRVUZQTEVWQlEyNUVMRTlCUVVsSkxFbEJRMEZGTEVWQlFVc3NUMEZCVTBZc1JVRkJUeXhQUVVGUExGVkJRVlVzUTBGQlF5eEZRVU51UTBVc1JVRkJTeXhUUVVGWExFbEJRMmhDVGl4RlFVRlJTU3hGUVVGUkxGbEJRV0VzYTBOQlFXdERMRWRCUlc1RlJpeEpRVU5CU1N4RlFVRkxMRmxCUVdNc1NVRkRia0pJTEVsQlEwRkhMRVZCUVVzc1VVRkJWVWdzUlVGRFprY3NSVUZCU3l4TlFVRk5MRU5CUVVNc1JVRkJTVlVzUjBGRllsWXNRMEZEV0N4RFFVTkJMRk5CUVZORkxFZEJRV0VzUTBGQlJTeFJRVUZCVlN4RFFVRlJMRVZCUVVjc1EwRkJSU3hQUVVGQlRDeEZRVUZSTEU5QlFVRk5MRVZCUVZFc1NVRkJRVWdzUTBGQlNTeEZRVUZIYUVJc1JVRkJVeXhEUVVOcVJTeEpRVUZOYjBJc1JVRkJVU3hKUVVGSlF5eEhRVUZOUml4RlFVRlBMRlZCUVZVc1EwRkJReXhEUVVGRExFVkJRM1pEUXl4RlFVRk5MRk5CUVZjc1NVRkRha0p3UWl4RlFVRlJZU3hGUVVGUkxGbEJRV0VzYVVOQlFXbERMRVZCUXpsRVR5eEZRVUZOTEU5QlFVOHNVMEZCVXl4SFFVRkhMRWRCUTNwQ2NFSXNSVUZCVVdFc1JVRkJVMDBzUlVGQlR5eFBRVUZUTEVWQlFVY3NXVUZCWVN4cFEwRkJhME1zUlVGQlNTeEZRVU16Uml4SlFVRk5SeXhGUVVGWFZDeEZRVUZUVFN4RlFVRlBMRTlCUXpOQ1NTeEZRVUZMUXl4SFFVRlhVaXhGUVVGTFRTeEZRVUZWU2l4RlFVRlJMRTlCUVZGc1FpeERRVUZQTEVWQlF6VkVMRTlCUVVGdlFpeEZRVUZOTEUxQlFWRXNRMEZCUTFBc1JVRkJVVk1zUlVGQlZVTXNSVUZCUnl4TlFVRk5MRVZCUTNSRFFTeEZRVUZITEZWQlEwaElMRVZCUVUwc1VVRkJWVWNzUlVGQlJ5eFRRVU5vUWtnc1EwRkRXQ3hEUXpsR1FTeFRRVUZUU3l4SFFVRlhReXhGUVVGVFF5eEZRVUZaTEVOQlFVVXNUMEZCUVVNc1JVRkJVU3hOUVVGQlF5eEZRVUZQTEUxQlFVRkRMRVZCUVU4c1NVRkJRVU1zUTBGQlNTeEZRVUZIUXl4RlFVRlRMRU5CUXpkRkxFbEJRVTFETEVWQlFVOHNUMEZCVHl4UFFVRlBMRU5CUVVVc1dVRkJZVTRzUTBGQlZ5eEZRVUZIUkN4RFFVRlBMRVZCUTNwRVVTeEZRVUZOTEVsQlFVbERMRWRCUVZNc1QwRkJWMFlzUTBGQlNTeEZRVU5zUTBjc1JVRkJUU3hEUVVOU0xFMUJRVThzUjBGRFVDeFBRVUZSTEVkQlExSXNWMEZCV1VZc1JVRkJTU3hYUVVOb1FpeFJRVUZUUVN4RlFVRkpMRkZCUTJJc1QwRkJVVUVzUlVGQlNTeE5RVU5vUWl4RlFVTk5SeXhGUVVGUlF5eEhRVUZoVkN4RlFVRlBMRU5CUXpsQ0xGVkJRVmNzV1VGRFdDeExRVUZOUXl4SFFVRkJMRXRCUVVGQkxFVkJRVk5ETEVkQlFVRXNXVUZCUVVFc1JVRkJUU3hIUVVOeVFpeFBRVUZCU0N4RlFVTkJMRkZCUVVGSkxFVkJRMEVzWVVGQll5eEZRVU5rTEdWQlFXZENMRVZCUTNCQ0xFTkJRVU1zUlVGRFIwc3NSVUZCVFN4UlFVTk9TQ3hGUVVGSkxGZEJRVmNzVTBGQlZ5eEhRVU4wUWtvc1NVRkRRMEVzUlVGQlRTeFBRVUZUTEdGQlFXVkJMRVZCUVUwc1QwRkJVeXhqUVVNNVF5eERRVUZEVHl4RlFVRk5MRmxCUTFCTUxFVkJRVkZMTEVWQlFVMHNTVUZCU3l4bFFVRm5RaXgxUlVGQmRVVXNSMEZIYkVoSUxFVkJRVWtzVTBGQlYwb3NSVUZEVkZNc1IwRkJXVWdzUlVGQlMwNHNSVUZCVDA4c1JVRkJUMHdzUTBGQlR5eEZRVU4wUTFFc1IwRkJhVUpLTEVWQlFVdERMRVZCUVUwc1NVRkJTMUlzUlVGQlR5eExRVUZOVVN4RlFVRlBUQ3hEUVVGUExFVkJRMnhGTEVsQlFVMVRMRVZCUVdGUUxFVkJRVWtzVTBGQlV5eE5RVUZOTEVOQlFVTXNSVUZEYWtOUkxFVkJRVXRETEVkQlFWZGFMRVZCUVV0VkxFVkJRVmtzUjBGQlQxUXNRMEZCVHl4RlFVTnlSQ3hQUVVGSlZTeEZRVUZITEZWQlEwaFNMRVZCUVVrc1VVRkJWVkVzUlVGQlJ5eFRRVU55UWxJc1JVRkJTU3hOUVVGUkxFTkJRVU5PTEVWQlFWRmhMRVZCUVZsRExFVkJRVWNzVFVGQlRTeEZRVU51UTFJc1EwRkRXQ3hEUTJwRFFTeFRRVUZUVlN4SFFVRlpReXhGUVVGTExFTkJRM1JDTEVkQlFVa3NUMEZCVDBFc1IwRkJVU3hUUVVObUxFMUJRVThzUTBGQlEwRXNSVUZCUzBFc1JVRkJUU3hEUVVGRExFVkJRM2hDTEVkQlFVa3NUVUZCVFN4UlFVRlJRU3hEUVVGSExFVkJRMnBDTEU5QlFVOUJMRVZCUVVrc1UwRkJWeXhGUVVGSlFTeEZRVUZOTEVOQlFVTkJMRVZCUVVrc1EwRkJReXhGUVVGSFFTeEZRVUZKTEVOQlFVTXNRMEZCUXl4RlFVTnVSQ3hIUVVGTkxFTkJRVVVzVDBGQlFVTXNSVUZCVVN4UFFVRkJReXhEUVVGUExFVkJRVWxHTEVWQlF6TkNMRTFCUVU4c1EwRkJRME1zUlVGQlVVRXNSMEZCVlN4UFFVRlBReXhIUVVGWExGTkJRVmRCTEVWQlFVOHNUMEZCVXl4RlFVRkZMRU5CUXpkRkxFTkJRMEVzVTBGQlUwTXNSMEZCWVVNc1JVRkJVeXhEUVdZdlFpeEpRVUZCUXl4RlFXZENTU3hKUVVGSlF5eEZRVUZWTEVkQlExWkRMRVZCUVZrc1IwRkRXa01zUlVGQmFVSXNSMEZEY2tJc1VVRkJVeXhGUVVGSkxFVkJRVWNzUlVGQlNVb3NSVUZCVVN4UFFVRlJMRVZCUVVVc1JVRkJSeXhEUVVOeVF5eEpRVUZOUml4RlFVRlRSU3hGUVVGUkxFTkJRVU1zUlVGRGVFSXNUMEZCVVVZc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRFppeEpRVUZMTEVsQlEwUkpMRWxCUTB0QkxFbEJRVmtzUjBGQlN5eEhRVUZMUlN4RlFVRnBRanRCUVVGQk8wRkJRVUVzUlVGQlV6dEJRVUZCTEVsQlF6VkRUaXhGUVVGUExGVkJRVlVzUTBGQlF5eEhRVUZMTEV0QlEyaERTeXhGUVVGWkxFZEJRMXBETEVWQlFXbENMRWRCUTJwQ0xFMUJRMG9zU1VGQlN5eE5RVU5IU0N4RlFVRkJSQ3hGUVVGUkxFVkJRVWtzUTBGQlF5eEpRVUZpTEZsQlFVRkRMRVZCUVdsQ0xFMUJRVThzVFVGRGVFSXNSMEZCU3l4SFFVTlVSU3hGUVVGWkxFZEJRMW9zVFVGRFNpeFJRVVZUUVN4SlFVTkVReXhGUVVGcFFpeEpRVU55UWtRc1JVRkJXU3hGUVVOd1FpeERRVU5LTEVOQlEwRXNUVUZCVHl4RFFVRkZMRkZCUVVGRUxFVkJRVk1zWlVGQlFVVXNRMEZCWlN4RFFVTnlReXhEUVZsQkxFbEJRVTFETEVkQlFVNHNTMEZCWlN4RFFVTllMRmxCUVZsRExFVkJRVlVzUTBGQlF5eEZRVUZITEVOQlEzUkNMRXRCUVVzc1NVRkJUU3hMUVVOWUxFdEJRVXNzWVVGQlpTeEhRVU53UWl4TFFVRkxMRkZCUVZVc1EwRkJReXhGUVVOb1FpeExRVUZMTEU5QlFWTXNRMEZCUXl4RlFVTm1MRXRCUVVzc1UwRkJWeXhEUVVGRExFVkJRMnBDTEV0QlFVc3NVVUZCVlN4RFFVRkRVaXhGUVVGUlV5eEZRVUZOUXl4RlFVRlRReXhKUVVGWkxFTkJReTlETEVsQlFVMURMRVZCUVUxbUxFZEJRVmxITEVOQlFVMHNSVUZETVVKWExFVkJRMEVzUzBGQlN5eFRRVUZUTEV0QlFVc3NTVUZCU1VVc1IwRkJXVVFzUlVGQlMwZ3NSVUZCVFVNc1EwRkJUeXhEUVVGRExFVkJSWFJFTEV0QlFVc3NUMEZCVHl4TFFVRkxMRWxCUVVsSkxFZEJRV1ZHTEVWQlFVdElMRVZCUVUxRExFTkJRVThzUTBGQlF5eERRVU12UkN4RlFVVkJMRXRCUVVzc1YwRkJZU3hKUVVGSlN5eEhRVUZYTEVOQlFVVXNVVUZCVTFBc1JVRkJVU3hUUVVGWExFdEJRVTBzUTBGQlF5eEZRVU4wUlN4TFFVRkxMRkZCUVZWQkxFTkJRMjVDTEVOQlEwRXNVMEZCVTFFc1JVRkJTME1zUlVGQlZTeERRVU53UWl4SFFVRk5MRU5CUVVVc1VVRkJRV0lzUlVGQlV5eGxRVUZCUlN4RFFVRmxMRVZCUVVsTUxFZEJRV0VzUzBGQlN5eFBRVUZQTEVWQlJUZEVMRWRCUVVsSExFVkJRVk1zUTBGRFZDeEpRVUZOWXl4RlFVRkxSaXhGUVVGSkxGTkJRMllzUjBGQlNVTXNSVUZEUVVRc1JVRkJTU3hSUVVGVlFTeEZRVUZKTEZGQlFWVXNSMEZCUjBFc1JVRkJTU3hQUVVGUE8wRkJRVUVzUlVGQlMxb3NRMEZCVHl4SFFVRkxRU3hWUVVWMFJFVXNSMEZCYTBKVkxFVkJRVWtzVjBGQlZ5eFZRVUZaTEVOQlFVTkZMRVZCUTI1RVJpeEZRVUZKTEdOQlFXZENXaXhWUVVWbVpTeEZRVUZoUkN4RFFVRkZMRWRCUVVzc1EwRkJRMEVzUlVGQlJ5eE5RVUZSUVN4RlFVRkhMRTFCUVUwc1QwRkJVeXhGUVVGSExFTkJRekZFTEVsQlFVbEZMRVZCUVV0R0xFVkJRVWNzVFVGQlRTeERRVUZETEVWQlEyWkhMRVZCUVU5RUxFTkJRVVVzU1VGRFZFRXNSVUZCUzBFc1JVRkJSeXhMUVVOYUxFbEJRVTFGTEVWQlFVdEdMRVZCUVVjc1kwRkRaRUVzUlVGQlJ5eGpRVUZuUWtVc1JVRkJTeXhIUVVGSGJFSXNRMEZCVHp0QlFVRkJMRVZCUVV0clFpeERRVUZGTEVkQlFVdHNRaXhEUVVOc1JDeExRVU5MTEVOQlEwUXNTVUZCVFd0Q0xFVkJRVXRLTEVWQlFVY3NZMEZEWkVFc1JVRkJSeXhqUVVGblFra3NSVUZCU3l4SFFVRkhiRUlzUTBGQlR6dEJRVUZCTEVWQlFVdHJRaXhEUVVGRkxFZEJRVXRzUWl4RFFVTnNSQ3hEUVVOS0xFTkJRMGxoTEVkQlEwRXNUVUZCVFN4VlFVRlZMRXRCUVVzc1RVRkJUVVFzUlVGQlNTeFBRVUZSTEV0QlFVc3NUVUZCVFN4RlFVTnNSQ3hOUVVGTkxGVkJRVlVzUzBGQlN5eE5RVUZOUVN4RlFVRkpMRk5CUVZVc1MwRkJTeXhSUVVGUkxFbEJSM1JFUVN4RlFVRkpMRTlCUVZNc1MwRkJTeXhQUVVOc1FrRXNSVUZCU1N4VFFVRlhMRXRCUVVzc1ZVRkZlRUlzUzBGQlN5eFJRVUZWTEVOQlFVTXNSVUZEYUVJc1MwRkJTeXhQUVVGVExFTkJRVU1zUlVGRFppeExRVUZMTEZOQlFWY3NRMEZCUXl4RFFVTnlRaXhEUVUxQkxGbEJRV0VzUTBGRFZDeE5RVUZQTEVOQlEwZ3NVVUZCVTJZc1IwRkJZU3hMUVVGTExFOUJRVThzUlVGQlJTeFJRVU53UXl4WFFVRlpMRXRCUVVzc1YwRkRha0lzVDBGQlVTeExRVUZMTEU5QlEySXNVMEZCVlN4TFFVRkxMRkZCUTI1Q0xFTkJRMG9zUTBGUFFTeERRVUZETEZGQlFWRnpRaXhGUVVGUlF5eEZRVUZYTEVkQlFVOURMRVZCUVZrc1IwRkJTU3hEUVVNdlF5eFJRVUZYUXl4TFFVRlRTQ3hGUVVOb1FpeE5RVUZCU1N4RlFVRlBMRXRCUVVzc1MwRkJTMFFzUTBGQlN5eEhRVU14UWl4TlFVRkJReXhGUVVGUExFdEJRVXNzU1VGQlNVZ3NSVUZCVlVNc1EwRkJVeXhGUVVOMlF5eERRVVZCTEVOQlFVTXNTMEZCUzBNc1JVRkJUeXhEUVVOVUxFOUJRVkZCTEVWQlFVMHNTMEZCVFN4RFFVTm9RaXhKUVVGTExGbEJRMFFzUzBGQlN5eFhRVUZYTEVsQlFVbEJMRVZCUVUwc1QwRkJVU3hEUVVGRE0wSXNSVUZCVVZjc1JVRkJVME1zU1VGQldTeERRVU0xUkN4SlFVRk5ReXhGUVVGTlppeEhRVUZaTmtJc1EwRkJTeXhGUVVNM1FtUXNSVUZCU1N4RFFVRkRMRWRCUVV0aUxFVkJRMVlzUzBGQlN5eFJRVUZSWVN4RlFVRkxMR2RDUVVGcFFrWXNSVUZCVTBNc1EwRkJUeXhEUVVOMlJDeERRVUZETEVWQlEwUXNTMEZCU3l4UlFVRlJMRXRCUVV0bExFVkJRVTBzVFVGQlRTeEZRVU01UWl4TFFVRkxMR0ZCUVdVc1IwRkRjRUlzVFVGRFNpeEpRVUZMTEZkQlFWa3NRMEZEWWl4SlFVRk5WaXhGUVVGTldTeEhRVUZYTEV0QlFVc3NVVUZCVXl4TFFVRkxMRmRCUVZsR0xFVkJRVThzUzBGQlN5eFBRVUZQTEVWQlEzSkZMRXRCUVVzc1kwRkJaMElzUTBGQlExWXNSVUZCU1N4WFFVRlhMRlZCUTNKRExFdEJRVXNzVVVGQlVWVXNSVUZCVHl4bFFVRm5RaXhwUkVGQmFVUXNSVUZEZWtZc1MwRkJTeXhUUVVGVFZpeEZRVUZMTEVWQlFVc3NSVUZEY0VJc1MwRkJTeXhOUVVOTUxFMUJRVTBzUzBGQlN5eExRVU5tTEV0QlFVc3NTVUZCVFVFc1JVRkRXQ3hMUVVGTExHRkJRV1VzUjBGRGNFSXNTMEZEU2l4RFFVTkJMRWxCUVVzc2EwSkJRMHdzU1VGQlN5eFJRVU5FTEUxQlEwb3NTVUZCU3l4VlFVTk1MRWxCUVVzc1ZVRkRSQ3hMUVVGTExGRkJRVkVzUzBGQlMxVXNSVUZCVFN4TlFVRk5MRVZCUXpsQ0xFMUJRMG9zU1VGQlN5eFJRVUZUTEVOQlExWXNTVUZCVFVjc1JVRkJUVWdzUlVGQlRTeFBRVU5hTEVkQlFVZEJMRVZCUVUwc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZVRXNSVUZCVFN4TlFVRk5MRU5CUVVNc1IwRkRha1JCTEVWQlFVMHNVVUZEVGtrc1JVRkJVU3hKUVVGSmFFSXNSMEZCWldwQ0xFZEJRVmsyUWl4RFFVRkxMRVZCUVVjc2JVSkJRVzlDUnl4RFFVRkhMRVZCUTNoRkxFdEJRVXNzWTBGQlowSXNRMEZCUXl4TFFVRkxMRWxCUXpOQ0xFdEJRVXNzVDBGQlR5eExRVUZMUXl4RFFVRkxMRVZCUlhSQ0xFdEJRVXNzU1VGQlNTeFBRVUZQTEV0QlFVdEJMRU5CUVVzc1JVRkRPVUlzUzBGRFNpeERRVU5CTEVsQlFVc3NWVUZCVnl4RFFVTmFMRWRCUVVrc1EwRkJReXhMUVVGTExFbEJRVXNzUTBGRFdDeEpRVUZOUkN4RlFVRk5MR2RFUVVOYUxFdEJRVXNzVDBGQlR5eExRVUZMTEVsQlFVbG1MRWRCUVdWcVFpeEhRVUZaTmtJc1EwRkJTeXhGUVVGSExHMUNRVUZ2UWtjc1EwRkJSeXhEUVVGRExFVkJRMmhHTEV0QlEwb3NRMEZEUVN4TFFVRkxMRWxCUVVrc1YwRkJWeXhQUVVGVExFZEJRemRDTEVsQlFVMUZMRVZCUVUxRExFZEJRVmRPTEVWQlFVMHNTVUZCUzBFc1JVRkJUU3hQUVVGVFFTeEZRVUZOTEU5QlFVOHNUMEZCVVN4TFFVRkxMRWxCUVVrc1VVRkJVU3hQUVVGUkxFdEJRVXNzVDBGQlR5eEZRVVV6Unl4SFFVUkJMRXRCUVVzc1UwRkJVeXhMUVVGTExFbEJRVXNzUlVGQlNTeEZRVU40UWtzc1JVRkJTU3hSUVVGVExFTkJRMklzU1VGQlRXSXNSVUZCU3l4TFFVRkxMRWxCUVVrc1VVRkRjRUlzUzBGQlN5eEpRVUZKTEZGQlFWVkJMRVZCUVVzc1IwRkJSMEVzUTBGQlJUdEJRVUZCTEVWQlFVdGhMRVZCUVVrc1QwRkJUeXhIUVVGTFFTeEZRVUZKTEU5QlF6RkVMRU5CUTBFc1MwRkJTeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEZRVUZKUVN4RlFVRkpMRTlCUTNoQ0xFdEJRMG9zUTBGRFFTeFJRVU5KTEV0QlFVc3NUMEZCVHl4TFFVRkxMRWxCUVVscVFpeEhRVUZsYWtJc1IwRkJXVFpDTEVOQlFVc3NSVUZCUnl4dFFrRkJiMElzY1VKQlFYRkNRU3hGUVVGTkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlEzUklMRU5CUTBvc1EwRlBRU3hEUVVGRExFbEJRVWxHTEVWQlFWY3NSMEZCVDBNc1JVRkJXU3hIUVVGSkxFTkJRMjVETEVkQlFVa3NTMEZCU3l4SlFVTk1MRXRCUVVzc1UwRkJVeXhMUVVGTExFbEJRVXNzUlVGQlNTeEZRVU0xUWl4TlFVRk5MRXRCUVVzc1NVRkRXQ3hMUVVGTExFbEJRVTBzWVVGRlRrUXNSVUZCVlN4RFFVTm1MRWxCUVUxVExFVkJRVThzVDBGQlR5eFBRVUZQTEVOQlFVVXNXVUZCWVN4TFFVRkxMRlZCUVZjc1JVRkJSeXhMUVVGTExFOUJRVThzUlVGRGJrVnFRaXhGUVVGTkxFbEJRVWxyUWl4SFFVRlRMRTlCUVZkRUxFTkJRVWtzUlVGRGNFTXNTMEZCU3l4alFVTk1MRXRCUVVzc1VVRkJVVklzUlVGQlZ5eGxRVUZuUWl4MVEwRkJkVU1zUlVGRGJrWlVMRVZCUVVrc1RVRkJVU3hEUVVGRExFVkJRVWRUTEVWQlFWZEJMRU5CUVZNc1JVRkRjRU1zUzBGQlN5eFRRVUZUVkN4RlFVRkxMRVZCUVVzc1JVRkRlRUlzVFVGQlRVRXNRMEZEVml4RFFVTktMRU5CUTBvc1JVTjBUa0VzU1VGQlRXMUNMRWRCUVZFc1QwRkJUeXhoUVVGaExFVkJRelZDUXl4SFFVRlBMRTlCUVU4c1pVRkJaU3hGUVVNM1FrTXNSMEZCVXl4UFFVRlBMR0ZCUVdFc1JVRTJRbTVETEZOQlFWTkRMRWRCUVUxRExFVkJRVXRETEVWQlFWTXNRMEZEY2tJc1UwRkJWVVFzUjBGQlQwRXNSVUZCU1N4UFFVRlRMR0ZCUXpsQ1FTeEZRVUZOTEVOQlFVVXNUVUZCVDBFc1JVRkJTU3hOUVVGUExFMUJRVTlCTEVWQlFVa3NTMEZCVFN4SFFVTXZRMFVzUjBGQlR5eFBRVUZQTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVkR0xFVkJRVXRETEVOQlFVOHNRMEZETVVNc1EwRkxRVVlzUjBGQlRTeE5RVUZSU0N4SFFVVmtSeXhIUVVGTkxFdEJRVTlHTEVkQlJXSkZMRWRCUVUwc1QwRkJVMFFzUjBGRlprTXNSMEZCVFN4WFFVRmhMRU5CUVVORExFVkJRVXRITEVsQlFWTXNRMEZET1VJc1NVRkJTVU1zUlVGQlQwb3NSVUZEV0N4UFFVRlhMRU5CUVVOTExFVkJRVTlETEVOQlFVc3NTVUZCUzBnc1JVRkJUU3hEUVVNdlFpeEpRVUZOU1N4RlFVRk5TQ3hIUVVGQkxGbEJRVUZCTEVWQlFVOURMRWRCUTI1Q0xFZEJRVWxGTEVkQlFVOHNWVUZCVjBFc1JVRkRiRUpJTEVWQlFVOUhMRVZCUVVrc1RVRkJUVVFzUTBGQlN5eE5RVWQwUWl4UFFVTlNMRU5CUTBFc1QwRkJUMFlzUTBGRFdDeEZRVTFCVEN4SFFVRk5MR2xDUVVGdFFpeERRVUZEUXl4RlFVRkxSeXhKUVVGVExFTkJRM0JETEVsQlFVMUxMRVZCUVZOVUxFZEJRVTBzVjBGQlYwTXNSVUZCUzBjc1JVRkJTeXhOUVVGTkxFVkJRVWNzUlVGQlJTeERRVUZETEVWQlEyaEVSU3hGUVVGUlJpeEZRVUZMUVN4RlFVRkxMRTlCUVZNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGREwwSk5MRVZCUVU5RUxFZEJRVUVzV1VGQlFVRXNSVUZCVTBnc1IwRkRkRUlzUjBGQlNVa3NSMEZCVVN4VlFVRlhRU3hGUVVOdVFpeFBRVUZQUVN4RlFVTllMRTFCUVUwc1NVRkJTU3hOUVVGTkxEWkNRVUUyUWl4RFFVTnFSQ3hGUVVOQkxGTkJRVk5RTEVkQlFVOURMRVZCUVUxRExFVkJRVTFJTEVWQlFWTXNRMEZEYWtNc1NVRkJTVk1zUlVGQlQxUXNSVUZCVVVjc1JVRkJUVVFzUTBGQlNTeEZRVU0zUWl4SFFVRkpMRTlCUVU5UExFZEJRVk1zVTBGRGFFSXNUMEZCVDBFc1JVRkRXQ3hSUVVGWFRDeEpRVUZUTEVOQlFVTXNUVUZCVHl4UFFVRlBMRVZCUVVjc1EwRkRiRU1zU1VGQlRVMHNSVUZCVVZBc1JVRkJTME1zUTBGQlN5eEZRVU40UWl4SFFVRkpUU3hIUVVGVExGVkJRVmRCTEVWQlFVOHNRMEZETTBJc1VVRkJVME1zUlVGQlNTeEZRVUZIUVN4RlFVRkpSQ3hGUVVGTkxFMUJRVTBzVDBGQlVTeEZRVUZGUXl4RlFVRkhMRU5CUTNwRExFbEJRVTFETEVWQlFVdFlMRWRCUVU4c1QwRkJUeXhQUVVGUFF5eEZRVUZMTEU5QlFVOHNRMEZCUXl4RFFVRkRSU3hGUVVGUFR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVkRUxFVkJRVTBzVFVGQlRVTXNRMEZCUXl4RlFVRkhXQ3hEUVVGUExFVkJRMjVHTEVkQlFVa3NUMEZCVDFrc1IwRkJUeXhUUVVOa1JDeEZRVUZKUXl4RlFVRkxMRTFCUTFJc1NVRkJTVUVzU1VGQlQycENMRWRCUTFvc1QwRkJUMEVzUjBGRFJtbENMRWxCUVU5bUxFdEJRMXBoTEVWQlFVMHNUVUZCVFN4UFFVRlBReXhGUVVGSExFTkJRVU1zUlVGRGRrSkJMRWRCUVVzc1IwRkZZaXhEUVVOSkxFOUJRVTlHTEVkQlFWTXNXVUZCWTB3c1NVRkJWU3hSUVVONFEwc3NSVUZCVDBFc1JVRkJTMDRzUlVGQlRVUXNRMEZCU1N4RlFVTTVRaXhEUVVOS0xFTkJRMEVzVDBGQlR5eFBRVUZQVHl4SFFVRlRMRmRCUVdGQkxFVkJRVXRPTEVWQlFVMUVMRU5CUVVrc1JVRkJTVThzUTBGRE0wUXNRME42UmtFc1NVRkJUVWtzUjBGQlRTeFRRVVZPUXl4SFFVRlhMRWxCUlZoRExFZEJRVmNzU1VGRldFTXNSMEZCVXl4SlFUQkNaaXhUUVVGVFF5eEhRVUZWUXl4RlFVRlJMRU5CUTNaQ0xFOUJRVkZCTEVWQlFWRXNRMEZEV2l4TFFVRkxReXhIUVVORUxFMUJRVThzYTBKQlExZ3NTMEZCUzBNc1IwRkRSQ3hOUVVGUExGZEJRMWdzUzBGQlMwTXNSMEZEUkN4TlFVRlBMR2xDUVVOWUxFdEJRVXRETEVkQlEwUXNUVUZCVHl4VFFVTllMRWxCUVVzc1RVRkRSQ3hOUVVGUExGbEJRMWdzU1VGQlN5eE5RVU5FTEUxQlFVOHNWVUZEV0N4SlFVRkxMRWRCUTB3c1NVRkJTenRCUVVGQkxFVkJRMHdzU1VGQlN6dEJRVUZCTEVWQlEwUXNUVUZCVHl4VlFVTllMRWxCUVVzc1NVRkRSQ3hOUVVGUExHVkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNiVUpCUTFnc1NVRkJTeXhKUVVORUxFMUJRVThzWjBKQlExZ3NTVUZCU3l4SlFVTkVMRTFCUVU4c2FVSkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNaVUZEV0N4SlFVRkxMRWxCUTBRc1RVRkJUeXhwUWtGRFdDeEpRVUZMTEVsQlEwUXNUVUZCVHl4bFFVTllMRWxCUVVzc1NVRkRSQ3hOUVVGUExFOUJRMllzUTBGRFFTeFBRVUZSU2l4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVObUxFbEJRVXNzU1VGRFRDeEpRVUZMTEVsQlEwUXNUVUZCVHl4UlFVTllMRWxCUVVzc1NVRkRSQ3hOUVVGUExGVkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNhVUpCUTFnc1NVRkJTeXhKUVVORUxFMUJRVThzVVVGRFdDeEpRVUZMTEVsQlEwUXNUVUZCVHl4VFFVTllMRWxCUVVzc1NVRkRSQ3hOUVVGUExFMUJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNkVUpCUTFnc1NVRkJTeXhKUVVORUxFMUJRVThzZFVKQlExZ3NTVUZCU3l4SlFVTk1MRWxCUVVzc1NVRkRSQ3hOUVVGUExIRkNRVU5tTEVOQlEwRXNUMEZCVHl4SlFVTllMRU5ETVVKQkxGTkJRVk5MTEVkQlFWRkRMRVZCUVVrc1EwRkRha0lzVDBGQlVVRXNSVUZCU1N4RFFVTlNMRXRCUVVzc1QwRkRUQ3hKUVVGTExFbEJRMHdzU1VGQlN6dEJRVUZCTEVWQlEwd3NTVUZCU3l4TFFVTk1MRWxCUVVzc1NVRkRSQ3hOUVVGUExFZEJRMWdzVVVGRFNTeE5RVUZQTEVWQlEyWXNRMEZEU2l4RFFVTkJMRWxCUVUxRExFZEJRVmtzU1VGQlNTeEpRVUZKTEhkQ1FVRjNRaXhGUVVNMVEwTXNSMEZCVnl4SlFVRkpMRWxCUVVrc2JVWkJRVzFHTEVWQlEzUkhReXhIUVVGeFFpeEpRVUZKTEVsQlFVa3NUMEZCVHl4RlFVTndRME1zUjBGQmNVSXNTVUZCU1N4SlFVRkpPMEZCUVVFc1NVRkJZeXhGUVVNelEwTXNSMEZCYlVKTUxFZEJRVThzUTBGQlEwRXNSMEZCVFVrc1IwRkJiVUlzU1VGQlNVb3NRMEZCUlN4RlFXZENNVVJOTEVkQlFVNHNTMEZCV1N4RFFVTlNMR0ZCUVdNc1EwRkxWaXhMUVVGTExFMUJRVkVzUjBGTllpeExRVUZMTEd0Q1FVRnZRaXhIUVUxNlFpeExRVUZMTEdkQ1FVRnJRaXhIUVVWMlFpeExRVUZMTEU5QlFWTXNSMEZMWkN4TFFVRkxMRkZCUVZVc1IwRkZaaXhMUVVGTExGVkJRVmtzUlVGTGFrSXNTMEZCU3l4WFFVRmhMRVZCUld4Q0xFdEJRVXNzV1VGQll5eEZRVVZ1UWl4TFFVRkxMRmRCUVdFc1MwRkZiRUlzUzBGQlN5eExRVUZQTEV0QlJWb3NTMEZCU3l4SlFVRk5MRU5CUTJZc1EwRlBRU3hEUVVGRExFbEJRVWxETEVWQlFWRkRMRVZCUVdFc1IwRkJUeXhEUVhKS2NrTXNTVUZCUVVNc1JVRnpTbEVzUjBGQlNVWXNSVUZCVVN4RFFVTlNMRWRCUVVrc1QwRkJUMEVzUjBGQlZ5eFRRVU5zUWl4TlFVRk5MRlZCUVZVc2QwSkJRWGRDTEVWQlF6VkRMRXRCUVVzc1QwRkJVeXhMUVVGTExFOUJRVk1zUzBGQlN5eFBRVUZUUVN4RlFVRlRRU3hGUVVOdVJDeExRVUZMTEZkQlFXRXNTVUZEZEVJc1EwRkRRU3hMUVVGTExFMUJRVkVzUTBGQlEwTXNSVUZEWkN4SlFVRkpSU3hIUVVGUFJDeEZRVUZCTEV0QlFVc3NUMEZCVEN4TFFVRkJRU3hGUVVGaExGTkJRM2hDTEV0QlFVOURMRWxCUVZOR0xFZEJRV01zUzBGQlN5eFRRVUZUTEVOQlFVTXNTVUZEZWtORkxFVkJRVThzVFVGQlFVTXNSVUZCVHl4TFFVRkxMRlZCUVZWRUxFTkJRVWtzUlVGRGVrTXNRMEZEUVN4WFFVRlpMRU5CUTFJc1NVRkJTVVVzUlVGQlNTeExRVUZMTEVsQlExUmFMRVZCUVVzc1MwRkJTeXhQUVVGUFdTeERRVUZETEVWQlEzUkNMRXRCUVU5YUxFbEJRVThzUzBGQlQwRXNTVUZCVHl4TFFVTjRRa0VzUlVGQlN5eExRVUZMTEU5QlFVOHNSVUZCUlZrc1EwRkJReXhGUVVONFFpeE5RVUZKTEVOQlFVTmFMRWRCUVUxQkxFbEJRVThzUzBGQlQwRXNTVUZCVHp0QlFVRkJMRVZCUTNKQ0xFZEJRMUJCTEVsQlFVOHNTMEZEUVN4TFFVRkxMRTlCUVU5WkxFVkJRVWtzUTBGQlF5eEpRVUZOTzBGQlFVRXNSVUZETTBJc1JVRkRXQ3hEUVVOQkxFOUJRVTlETEVWQlFVY3NRMEZEVGl4UFFVRlBMRXRCUVVzc1QwRkJUeXhMUVVGTExFbEJRVTFCTEVOQlFVTXNRMEZEYmtNc1EwRkRRU3hsUVVGbFF5eEZRVUZSTEVOQlEyNUNMRWxCUVVsa0xFVkJRVXNzUzBGQlN5eFBRVUZQWXl4RFFVRk5MRVZCUXpOQ0xFZEJRVWtzUzBGQlN5eFhRVUZoTEVWQlFVY3NRMEZEY2tJc1NVRkJTVU1zUlVGQlV5eEZRVU5pTEV0QlFVOW1MRWxCUVU4c1MwRkRWa0VzUlVGQlN5eExRVUZMTEU5QlFVOHNSVUZCUldVc1JVRkJVMFFzUTBGQlRTeEZRVU4wUXl4SFFVRkpaQ3hKUVVGUExFdEJRVTBzUTBGRFlpeEpRVUZOVlN4RlFVRlBMRXRCUVVzc1QwRkJUMHNzUlVGQlUwUXNSVUZCVXl4RFFVRkRMRVZCUXpWRExFZEJRVWxLTEVsQlFWTTdRVUZCUVN4SFFVRlRMRU5CUVVOQkxFZEJRVkVzUTBGQlF5eExRVUZMTEUxQlEycERMRTlCUVU5SkxFVkJRVk5ETEVWQlFWTXNRMEZEYWtNc1EwRkRRU3hQUVVGUFppeEpRVUZQTzBGQlFVRXNSMEZCVVdVc1IwRkJWU3hMUVVGTExGbEJRV1VzUTBGQlEyWXNSMEZCVFN4RFFVRkRMRXRCUVVzc1RVRkRNMFJqTEVWQlFWTkRMRVZCUTFRc1JVRkRWaXhEUVVOQkxFZEJRVWxtTEVsQlFVOHNTMEZCVDBFc1NVRkJUeXhKUVVGTExFTkJRekZDTEVsQlFVMW5RaXhGUVVGTExFdEJRVXNzVDBGQlR5eFBRVUZQUml4RlFVRlJMRU5CUVVNc1JVRkRka01zU1VGQlMwVXNTVUZCVHl4UFFVRlRRU3hKUVVGUExGRkJRVlZxUWl4SFFVRlJMRXRCUVVzc1QwRkJUMlVzUlVGQlV5eERRVUZETEVOQlFVTXNSVUZEYWtVc1RVRkJUeXhGUVVObUxFTkJRMEVzVDBGQlQwRXNRMEZEV0N4RFFVTkJMRk5CUVZVc1EwRkRUaXhKUVVGSlJ5eEZRVUZOTEV0QlFVc3NWMEZMWml4UFFVcEpMRTlCUVU5QkxFZEJRVkVzVlVGQllVRXNTVUZCVVN4SlFVRk5RU3hGUVVGTkxFdEJRVXNzVDBGRGNrUkJMRVZCUVUwc1MwRkJTeXhQUVVGUExGRkJRVkU3UVVGQlFTeEZRVUZOTEV0QlFVc3NSMEZCUnl4RlFVTjRReXhMUVVGTExGZEJRV0ZCTEVkQlJXeENRU3hKUVVGUkxFZEJRMFFzUzBGQlN5eE5RVUZSTEV0QlFVc3NUMEZCVHl4VlFVRlZMRXRCUVVzc1IwRkJSeXhGUVVGSkxFMUJRM1JFTEV0QlFVc3NUMEZCVDBFc1JVRkJUU3hEUVVGRExFbEJRVTBzVDBGRGVrSkJMRWRCUVU4c1IwRkRTaXhMUVVGTExFOUJRVThzVlVGQlZTeExRVUZMTEVsQlFVdEJMRU5CUVVjc1JVRkRPVU1zUTBGRFFTeFRRVUZUU2l4RlFVRkhMRU5CUTFJc1QwRkJUeXhMUVVGTExFbEJRVTFCTEVkQlFVc3NTMEZCU3l4UFFVRlBMRTFCUTNaRExFTkJRMEVzVVVGQlVVc3NSVUZCVHl4RFFVTllMRmxCUVVzc1QwRkJVeXhMUVVGTExFOUJRVThzVlVGQlZTeExRVUZMTEVkQlFVY3NSVUZETlVNc1MwRkJTeXhKUVVGTkxFVkJRMWdzUzBGQlN5eFhRVUZoTEV0QlEyeENMRXRCUVVzc1MwRkJUMEVzUlVGRFRDeEpRVU5ZTEVOQlEwRXNTMEZCUzB3c1JVRkJSeXhEUVVOS0xFOUJRVThzUzBGQlN5eFBRVUZQTEU5QlFVOHNTMEZCU3l4SlFVRkxRU3hEUVVGRExFTkJRM3BETEVOQlEwRXNRMEZCUXl4VlFVRlZTQ3hGUVVGTkxFTkJRMklzVDBGQlVVRXNSVUZCVFN4RFFVTldMRWxCUVVzc1UwRkRSQ3hQUVVGUExFMUJRVUZETEVWQlFVOHNTMEZCU3l4WlFVRlpMRWRCUTI1RExFbEJRVXNzWVVGRFJDeFBRVUZQTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhsUVVGbExFZEJRM1JETEVsQlFVc3NZMEZEUkN4UFFVRlBMRTFCUVVGQkxFVkJRVThzUzBGQlN5eG5Ra0ZCWjBJc1IwRkRka01zU1VGQlN5eE5RVU5FTEU5QlFVOHNUVUZCUVVFc1JVRkJUeXhMUVVGTExHTkJRV01zUjBGRGNrTXNTVUZCU3l4UFFVTkVMRTlCUVU4c1RVRkJRVUVzUlVGQlR5eExRVUZMTEc5Q1FVRnZRaXhIUVVNelF5eEpRVUZMTEdkQ1FVTkVMRTlCUVU4c1RVRkJRVUVzUlVGQlR5eExRVUZMTEd0Q1FVRnJRaXhIUVVONlF5eEpRVUZMTEdWQlEwUXNUMEZCVHl4TlFVRkJRU3hGUVVGUExFdEJRVXNzYVVKQlFXbENMRWRCUTNoRExFbEJRVXNzWlVGRFJDeFBRVUZQTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhwUWtGQmFVSXNSVUZETlVNc1EwRkRTaXhEUVVOQkxFTkJRVU1zWVVGQll5eERRVU5ZTEVsQlFVbFJMRVZCUVU4c1MwRkJTeXhSUVVGUkxFVkJRM2hDTEVkQlFVbEJMRWxCUVZNc1MwRkRWQ3hQUVVGUExFdEJRVXNzVVVGQlVTeFJRVUZSTEVWQlMyaERMRWRCU2tsQkxFVkJRVXNzUTBGQlF5eEpRVUZOUXl4TFFVTmFMRTFCUVVGVUxFVkJRVThzUzBGQlN5eFZRVUZWTEVOQlFVTXNSMEZEZGtKUkxFVkJRVTlCTEVWQlFVc3NWVUZCVlN4RFFVRkRMRWRCUlhaQ1FTeEZRVUZMTEVOQlFVTXNTVUZCVFN4SlFVRkxMRU5CUTJwQ0xFbEJRVWxGTEVWQlFWTkdMRVZCUVVzc1QwRkRaRWNzUlVGQlMwZ3NSVUZCU3l4UlFVRlJMRWRCUVVjc1JVRkRla0lzUzBGQlQwY3NTVUZCVHl4SlFVRkpMRU5CUTJRc1NVRkJUWFJDTEVWQlFVdHRRaXhGUVVGTFJ5eEZRVUZMTEVOQlFVTXNSVUZEZEVJc1IwRkJTWFJDTEVsQlFVOHNTMEZCVDBFc1NVRkJUeXhKUVVGTkxFTkJRek5DY1VJc1JVRkJVME1zUlVGQlN5eEZRVU5rTEV0QlEwb3NUVUZGU1VFc1JVRkJTMGdzUlVGQlN5eFJRVUZSTEVsQlFVdEhMRVZCUVVzc1EwRkJReXhEUVVWeVF5eERRVU5CTEU5QlFXRXNRMEZEVkN4SlFVRk5kRUlzUlVGQlMyMUNMRVZCUVV0RkxFVkJRVk1zUTBGQlF5eEZRVU14UWl4SFFVRkpja0lzU1VGQlR5eExRVUZQUVN4SlFVRlBMRWxCUTNKQ2NVSXNSMEZCVlN4TlFVVldMRTFCUTFJc1EwRkRRU3hKUVVGTlVpeEhRVUZMTEUxQlFVRkdMRVZCUVU4c1MwRkJTeXhWUVVGVlZTeERRVUZOTEV0QlFVMHNUVUZCUVZZc1JVRkJUeXhMUVVGTExGZEJRVmNzUlVGQlNTeEpRVU40UlN4aFFVRkJRU3hGUVVGUExFdEJRVXNzVlVGQlZWRXNSVUZCU3l4UFFVRlRUaXhEUVVGRExFZEJRM0pETEV0QlFVc3NXVUZCV1N4RlFVTldMRkZCUTFnc1EwRkRRU3hIUVVGSkxFdEJRVXNzVlVGQlZTeEZRVUZITEVOQlEyeENMRWxCUVUxVkxFVkJRVXNzVFVGQlFWb3NSVUZCVHl4TFFVRkxMRmRCUVZjc1JVRkJTU3hIUVVOMFF5eGhRVUZCUVN4RlFVRlBMRXRCUVVzc1ZVRkJWVkVzUlVGQlN5eFBRVUZUU1N4RFFVRkZMRWRCUTNSRExFMUJRVUZhTEVWQlFVOHNTMEZCU3l4WlFVRlpMRWRCUTJwQ0xGRkJRMWdzUTBGRFFTeGhRVUZOWVN4SFFVTkRMRTFCUVVGaUxFVkJRVThzUzBGQlN5eGxRVUZsTEVWQlEzUkRMRU5CUTBFc1EwRkJReXhuUWtGQmFVSXNRMEZEWkN4SlFVRk5XQ3hGUVVGTExFdEJRVXNzVDBGQlR5eERRVUZETEVWQlEzaENMRWRCUVVrc1EwRkJRMEVzUjBGQlRTeERRVUZETEV0QlFVc3NUVUZEWWl4UFFVRlBMRXRCUVVzc1VVRkJVU3haUVVGWkxFVkJRM0JETEVkQlFVbEJMRWxCUVU4c1MwRkJUMEVzU1VGQlR5eEpRVUZMTEVOQlF6RkNMRWRCUVVrc1EwRkJReXhMUVVGTExFOUJRVk1zUTBGQlF5eExRVUZMTEZOQlFWTXNRMEZCUXl4RlFVTXZRaXhQUVVGUExFdEJRVXNzVVVGQlVTeFpRVUZaTEVWQlEzQkRMRWxCUVUxNVFpeEZRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUTNKQ0xFbEJRVXRCTEVsQlFVMHNUMEZCVTBFc1NVRkJUU3hSUVVGVk1VSXNSMEZCVVN4TFFVRkxMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRM1JFTEdGQlFVRlpMRVZCUVU4c1MwRkJTeXhWUVVGVkxFTkJRVU1zUjBGRGRrSXNTMEZCU3l4WlFVRmpMRVZCUTI1Q0xFdEJRVXNzVjBGQllTeEZRVU5ZWXl4SlFVRk5MRTFCUVZFc1RVRkJVU3hSUVVWeVF5eERRVU5CTEZsQlFVc3NXVUZCWXl4TlFVRkJaQ3hGUVVGUExFdEJRVXNzVjBGQlZ5eEZRVUZMTEVkQlF6TkRMRXRCUVVzc1YwRkJZU3hMUVVGTExHRkJRV1VzUTBGQlExb3NSMEZCVVN4TFFVRkxMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRemRFTEV0QlFVc3NWMEZCWVN4TFFVRkxMR0ZCUTNCQ0xFMUJRVUZaTEVWQlFVOHNTMEZCU3l4blFrRkJaMElzUlVGRGRrTXNRMEZEUVN4RFFVRkRMR2xDUVVGclFpeERRVU5tTEVkQlFVMHNRMEZCUTJVc1JVRkJTME1zUTBGQlJ5eEZRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUXpsQ0xFZEJRVWtzUTBGQlEwRXNSMEZCVHl4RFFVRkRMRXRCUVVzc1RVRkRaQ3hQUVVGUExFdEJRVXNzVVVGQlVTeGhRVUZoTEVWQlEzSkRMRWxCUVV0RUxFbEJRVkVzUzBGQlQwRXNTVUZCVVN4TFFVRlBRU3hKUVVGUkxFMUJRVkV6UWl4SFFVRlJORUlzUTBGQlJ5eEZRVUZITEVOQlF6ZEVMRWxCUVUxa0xFZEJRVXNzVFVGQlFVWXNSVUZCVHl4TFFVRkxMRlZCUVZVc1EwRkJReXhMUVVGTkxFMUJRVUZCTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVrc1NVRkRia1VzV1VGQlN5eFhRVUZoTEV0QlFVc3NXVUZCWXl4RlFVTnlReXhMUVVGTExHRkJRV1ZGTEVWQlEySXNUVUZCUVVZc1JVRkJUeXhMUVVGTExHZENRVUZuUWl4RlFVTjJReXhEUVVOQkxFMUJRVThzUzBGRFdDeERRVU5CTEVOQlFVTXNaVUZCWjBJc1EwRkRZaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NWMEZCVnl4RlFVRkpMRWRCUXpOQ0xFbEJRVTFSTEVWQlFVOHNTMEZCU3l4UlFVRlJMRVZCUXpGQ0xFZEJRVWxCTEVsQlFWTXNTMEZEVkN4UFFVRlBMRXRCUVVzc1VVRkJVU3hMUVVGTExFVkJRemRDTEVsQlFVbE9MRVZCUVVrc1RVRkJRVVlzUlVGQlR5eExRVUZMTEdWQlFXVXNSMEZEYmtNc1QwRkJVVkVzUlVGQlMwNHNRMEZCUXl4RlFVRkhMRU5CUTJJc1NVRkJTeXhKUVVORUxFMUJRVUZHTEVWQlFVOHNTMEZCU3l4VlFVRlZVU3hGUVVGTExFOUJRVk5PTEVOQlFVTXNSMEZGZWtNc1MwRkJTeXhQUVVORUxHRkJRVUZHTEVWQlFVOHNTMEZCU3l4WlFVRlpMRWRCUTJwQ0xFMUJRVUZCTEVWQlFVOHNTMEZCU3l4bFFVRmxMRWRCUTNSRExFbEJRVXNzU1VGRFRDeEpRVUZMTEVsQlEwUXNZVUZCUVVFc1JVRkJUeXhMUVVGTExGVkJRVlVzUTBGQlF5eEhRVU4yUWl4TFFVRkxMRkZCUVZVc1IwRkRaaXhMUVVGTExGVkJRVmtzUlVGRFZpeFBRVU5ZTEVsQlFVc3NTVUZEVEN4SlFVRkxMRWxCUlVRc1lVRkJRVUVzUlVGQlR5eExRVUZMTEZWQlFWVXNRMEZCUXl4SFFVTm9RaXhOUVVOWUxFbEJRVXNzU1VGRFJDeGhRVUZCUVN4RlFVRlBMRXRCUVVzc1ZVRkJWVTRzUlVGQlpTeEhRVU01UWl4TlFVTllMRWxCUVVzc1NVRkRUQ3hKUVVGTExFbEJRMFFzVDBGQlR5eE5RVUZCVFN4RlFVRlBMRXRCUVVzc2EwSkJRV3RDTEVkQlEzcERMRWxCUVVzc1NVRkRUQ3hKUVVGTExFbEJRMFFzVDBGQlFVVXNSMEZCU3l4TlFVRkJSaXhGUVVGUExFdEJRVXNzZFVKQlFYVkNMRWRCUTNoRFJTeEhRVUZMTEUxQlFVRkdMRVZCUVU4c1MwRkJTeXhYUVVGWExFVkJRVWtzUjBGRGFFTXNUVUZCUVVFc1JVRkJUeXhMUVVGTExGVkJRVlZSTEVWQlFVc3NUMEZCVTA0c1EwRkJReXhIUVVOeVF5eE5RVUZCUml4RlFVRlBMRXRCUVVzc1dVRkJXU3hIUVVOcVFpeE5RVUZCUVN4RlFVRlBMRXRCUVVzc2FVSkJRV2xDTEVkQlEzaERMRkZCUTBrc1QwRkJUeXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NhVUpCUVdsQ0xFVkJRelZETEVOQlEwb3NRMEZEUVN4RFFVRkRMSEZDUVVGelFpeERRVU51UWl4SlFVRkphVUlzUlVGQlNVd3NSVUZEU2xJc1JVRkJVeXhIUVVOaUxFZEJRMGxoTEVWQlFVc3NUVUZCUVdwQ0xFVkJRVThzUzBGQlN5eFpRVUZaTEVkQlEzcENhVUlzUlVGQlN5eEhRVU5NVEN4RlFVRkxMRTFCUVVGYUxFVkJRVThzUzBGQlN5eFhRVUZYTEVWQlFVc3NSMEZEYWtNc1MwRkJTeXhaUVVGalNTeEZRVUZUVVN4SFFVYzFRa0VzUlVGQlN5eEZRVVZVUVN4SFFVRk5MRTFCUVVGYUxFVkJRVThzUzBGQlN5eFhRVUZYTEVWQlFVa3NVMEZETlVKcFFpeEZRVUZMVEN4RlFVRkxMRWRCUTI1Q0xFbEJRVTFLTEVWQlFVOHNTMEZCU3l4UlFVRlJMRVZCUXpGQ0xFZEJRVWxCTEVsQlFWTXNTMEZEVkN4UFFVRlBMRXRCUVVzc1VVRkJVU3hOUVVGTkxFVkJRemxDTEVsQlFVdEtMRWxCUVZjc1NVRkJUVUVzUlVGQlV5eExRVUZMTEZsQlFXTkpMRVZCUVVzc1EwRkJReXhKUVVGTkxFdEJRM3BFU2l4SlFVRlhMRWxCUTFCSkxFVkJRVXNzVjBGQlZ5eExRVUZMTEVkQlFVdEJMRVZCUVVzc1YwRkJWeXhMUVVGTExFbEJRMmhFY0VJc1IwRkJVVzlDTEVWQlFVc3NRMEZCUXl4RFFVRkRMRWxCVDJZc1JVRkliMEpLTEVsQlFWY3NTMEZCU3l4WFFVRmhMRWRCUTJwRUxFdEJRVXNzV1VGQll5eEpRVU5zUWtrc1JVRkJTeXhEUVVGRExFbEJRVTBzUzBGQlQwRXNSVUZCU3l4RFFVRkRMRWxCUVUwc1RVRkhhRU1zV1VGQlN5eFZRVUZaTEVWQlEycENMRTFCUVUxVkxFZEJRME1zVFVGQlFXeENMRVZCUVU4c1MwRkJTeXhsUVVGbExFZEJSekZETEVsQlFVbEZMRVZCUVVrc1JVRkRVaXhMUVVGUFRTeEZRVUZMVGl4RFFVRkRMRWxCUVUwc1MwRkRaa0VzUjBGQlN5eE5RVUZCUml4RlFVRlBMRXRCUVVzc1ZVRkJWU3hEUVVGRExFZEJRelZDUlN4SFFVRkxMRTFCUVVGR0xFVkJRVThzUzBGQlN5eFhRVUZYTEVWQlFVa3NSMEZEYUVNc1MwRkJTeXhSUVVGVkxFZEJSMjVDTEU5QlJFRkZMRWRCUVVzc1RVRkJRVVlzUlVGQlR5eExRVUZMTEdWQlFXVXNSMEZEZUVKUkxFVkJRVXRPTEVOQlFVTXNSVUZCUnl4RFFVTmlMRXRCUVVzc1QwRkRSQ3hOUVVGUExFOUJRMWdzU1VGQlN5eEpRVU5FTEdGQlFVRkdMRVZCUVU4c1MwRkJTeXhWUVVGVlVTeEZRVUZMTEU5QlFWTk9MRU5CUVVNc1IwRkRPVUlzVDBGRFdDeEpRVUZMTEVsQlEwd3NTVUZCU3l4SlFVTkVMR0ZCUVVGR0xFVkJRVThzUzBGQlN5eFZRVUZWTEVOQlFVTXNSMEZEZGtJc1MwRkJTeXhSUVVGVkxFZEJRMllzUzBGQlN5eFhRVUZoTEVWQlExZ3NUMEZEV0N4SlFVRkxMRWxCUTB3c1NVRkJTeXhKUVVORUxHRkJRVUZCTEVWQlFVOHNTMEZCU3l4VlFVRlZMRU5CUVVNc1IwRkRka0lzUzBGQlN5eFJRVUZWTEVkQlEyWXNTMEZCU3l4WFFVRmhMRVZCUTFnc1MwRkJTeXhWUVVGWkxFOUJRVk1zVFVGRGNrTXNTVUZCU3l4SlFVTkVMR0ZCUVVGQkxFVkJRVThzUzBGQlN5eFZRVUZWVGl4RlFVRmxMRWRCUXpsQ0xFOUJRMWdzU1VGQlN5eEpRVU5NTEVsQlFVc3NTVUZEUkN4WlFVRkxMRkZCUVZVc1IwRkRVaXhOUVVGQlRTeEZRVUZQTEV0QlFVc3NhMEpCUVd0Q0xFZEJRM3BETEVsQlFVc3NTVUZCU3l4RFFVTk9MRWxCUVUxRUxFVkJRVThzUzBGQlN5eFBRVUZQTEVOQlFVTXNSVUZETVVJc1IwRkJTU3hMUVVGTExGTkJRVmRZTEVkQlFWRlhMRU5CUVVrc1IwRkJTMEVzU1VGQlV5eEpRVU14UXl4WlFVRkxMRkZCUVZVc1IwRkRaaXhOUVVGQlF5eEZRVUZQTEV0QlFVc3NWVUZCVlN4RFFVRkRMRWRCUTNaQ0xFMUJRVUZCTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVrc1IwRkRjRUlzVFVGRlppeERRVVZCTEZGQlEwa3NXVUZCU3l4UlFVRlZMRWRCUTFJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEdsQ1FVRnBRaXhGUVVNMVF5eERRVU5LTEVOQlEwRXNRMEZCUXl4dFFrRkJiMElzUTBGRGFrSXNTVUZCVFcxQ0xFVkJRVkVzUzBGQlN5eFBRVUZQTEVOQlFVTXNSVUZEZGtKaUxFVkJRVTBzUzBGQlN5eFBRVUZQTEZGQlFWRmhMRVZCUVU4c1MwRkJTeXhKUVVGTkxFTkJRVU1zUlVGRGFrUXNSMEZCU1VFc1NVRkJWU3hKUVVOV0xFdEJRVTlpTEVsQlFWRXNTVUZCVFN4TFFVRkxMRTlCUVU5QkxFVkJRVTBzUTBGQlF5eEpRVUZOTEV0QlF6RkRRU3hGUVVGTkxFdEJRVXNzVDBGQlR5eFJRVUZSTEVsQlFVdEJMRVZCUVUwc1EwRkJReXhOUVVreFF5eE5RVUZQUVN4SlFVRlJMRWxCUVVrc1EwRkRaaXhKUVVGSlNpeEZRVUZKTEVWQlExSXNTMEZCVHl4TFFVRkxMRTlCUVU5SkxFVkJRVTBzUlVGQlNVb3NRMEZCUXl4SlFVRk5MRTFCUTJoRFFTeEhRVUZMTEVWQlExUXNSMEZCU1VFc1JVRkJTU3hKUVVGTkxFVkJRMVlzVFVGRFNra3NSVUZCVFN4TFFVRkxMRTlCUVU4c1VVRkJVU3hKUVVGTFFTeEZRVUZOTEVOQlFVTXNRMEZETVVNc1EwRkhTaXhKUVVGTll5eEZRVUZMTEV0QlFVc3NUMEZCVHl4VlFVRlZMRVZCUVVka0xFTkJRVWNzUlVGRGJrTlhMRVZCUVV0SExFVkJRVWNzVVVGQlVUdEJRVUZCTEVWQlFVMHNTMEZCU3l4SFFVRkhMRVZCUTJ4RExFZEJRVWxJTEVsQlFVOHNSMEZCU1N4RFFVTllMRXRCUVU5QkxFbEJRVThzU1VGQlNTeERRVU5rTEVsQlFVMU9MRVZCUVVzc1MwRkJTeXhsUVVGbFRTeEZRVUZMTEVOQlFVTXNSVUZEY2tNc1IwRkJTVTRzU1VGQlR5eEhRVU5RTEUxQlEwcE5MRVZCUVV0SExFVkJRVWNzVVVGQlVUdEJRVUZCTEVWQlFVMVVMRU5CUVVVc1EwRkROVUlzUTBGRFNVMHNTVUZCVHl4TFFVVlFXQ3hGUVVGTlZ5eEhRVUZOUnl4RlFVRkhTQ3hGUVVGTExFTkJRVU1zU1VGQlRTeExRVUZQTEVWQlFVa3NSMEZGT1VNc1EwRkRRU3hIUVVGSldDeEpRVUZSTEVkQlFVa3NRMEZEV2l4SFFVRkpMRU5CUVVNc1MwRkJTeXhOUVVOT0xFOUJRVThzUzBGQlN5eFJRVUZSTEdWQlFXVXNSVUZEZGtOQkxFVkJRVTBzUzBGQlN5eFBRVUZQTEUxQlEzUkNMRU5CUTBFc1lVRkJRVTRzUlVGQlR5eExRVUZMTEZsQlFWbE5MRVZCUVUwc1JVRkJSeXhGUVVGTExFZEJReTlDTEV0QlFVc3NWVUZCV1N4UFFVRlRMRXRCUTNKRExFTkJRMEVzUTBGQlF5eDNRa0ZCZVVJc1EwRkRkRUlzUzBGQlN5eHJRa0ZCYjBJc1IwRkRla0lzUzBGQlN5eG5Ra0ZCYTBJc1IwRkRka0lzU1VGQlNVd3NSVUZCU1N4TFFVRkxMRWxCUTJJc1QwRkJZU3hEUVVOVUxFbEJRVTFhTEVWQlFVc3NTMEZCU3l4UFFVRlBMRVZCUVVWWkxFTkJRVU1zUlVGRE1VSXNSMEZCU1Zvc1NVRkJUeXhKUVVOUUxFdEJRVXNzWjBKQlFXdENMRmRCUTJ4Q1FTeEZRVUZMTEV0QlFVOUJMRWRCUVUwc1NVRkRka0lzUzBGQlN5eHJRa0ZCYjBJc1QwRkJUMEVzUTBGQlJTeEZRVUZKTEZWQlEycERRU3hKUVVGUExFbEJRMW9zUzBGRFVpeERRVU5CTEU5QlFVOHNUVUZCUVZjc1JVRkJUeXhMUVVGTExGVkJRVlZZTEVkQlFVMUVMRWRCUVZGRExFTkJRVVVzUjBGQlMwRXNTVUZCVHl4SFFVRkhMRVZCUTJoRkxFTkJRMEVzUTBGQlF5eHJRa0ZCYlVJc1EwRkRhRUlzU1VGQlNUUkNMRVZCUVVzc1MwRkJTeXhKUVVGTkxFVkJRMmhDWWl4RlFVRlRMRVZCUTFSbUxFVkJRMHBuUXl4RlFVRk5MRkZCUVZNc1JVRkJTU3hMUVVGTExFbEJRVTFvUXl4RlFVRkxMRXRCUVVzc1QwRkJUeXhEUVVGRExFVkJRVWtzUlVGQlJTeEZRVU5zUkN4UFFVRlJRU3hGUVVGSkxFTkJRMUlzU1VGQlN5eEpRVU5FWlN4SFFVRlZMRVZCUTFZc1RVRkRTaXhKUVVGTE8wRkJRVUVzUlVGRFJHRXNSVUZCU3l4RlFVTk1ZaXhGUVVGVExFVkJRMVFzVFVGRFNpeEpRVUZMTEV0QlFVMHNRMEZEVUN4SlFVRk5UQ3hGUVVGUExFdEJRVXNzVDBGQlR5eEZRVUZKTEVOQlFVTXNSVUZET1VJc1IwRkJTU3hEUVVGRFFTeEhRVUZSTEVOQlFVTXNTMEZCU3l4TlFVTm1MRTlCUVU4c1MwRkJTeXhSUVVGUkxHTkJRV01zUlVGRGRFTXNSMEZCU1VFc1NVRkJVenRCUVVGQkxFVkJRMVFzUzBGRFVpeERRVU5CTEZGQlEwa3NUVUZCVFhOQ0xFTkJRMlFzUTBGRlNpeEhRVUZKTEVOQlFVTm9ReXhIUVVGTkxFTkJRVU1zUzBGQlN5eE5RVU5pTEU5QlFVOHNTMEZCU3l4UlFVRlJMR05CUVdNc1JVRkRkRU1zUjBGQlNXVXNSMEZCVlN4TFFVRkxMRmRCUVZrc1EwRkRka0lzUzBGQlN5eHZRa0ZCYzBJc1IwRkRNMElzUzBGQlN5eFhRVUZoUVN4RlFVVnNRaXhMUVVGTExGZEJRMFFzUzBGQlN5eHRRa0ZCY1VJc1MwRkJTeXhoUVVGbExFVkJRVWtzUlVGQlNTeExRVUZMTEZsQlJXNUZMRVZCUVVjc1EwRkRReXhKUVVGTlR5eEZRVUZMTEV0QlFVc3NaVUZCWlUwc1JVRkJTeXhEUVVGRExFVkJRM0pETEVkQlFVbE9MRWxCUVU4c1IwRkRVQ3hOUVVOS1RTeEZRVUZMTEV0QlFVc3NUMEZCVHl4UlFVRlJPMEZCUVVFc1JVRkJUVTRzUTBGQlJTeERRVU55UXl4UFFVRlRUU3hKUVVGUExFbEJRMmhDTEVkQlFVbEJMRWxCUVU4c1IwRkJTU3hEUVVOWUxFZEJRVWtzUTBGQlF5eExRVUZMTEUxQlEwNHNUMEZCVHl4TFFVRkxMRkZCUVZFc1kwRkJZeXhGUVVOMFEwRXNSVUZCU3l4TFFVRkxMRTlCUVU4c1RVRkRja0lzUTBGRFNpeERRVWRCTEVsQlFVbG9RaXhGUVVGSlowSXNSVUZCU3l4RlFVVmlMRWxCUkVFMVFpeEZRVUZMTEV0QlFVc3NUMEZCVDFrc1EwRkJReXhGUVVOWVdpeEpRVUZQTEV0QlExWkJMRVZCUVVzc1MwRkJTeXhQUVVGUExFVkJRVVZaTEVOQlFVTXNSVUZEZUVJc1IwRkJTVm9zU1VGQlR5eEpRVUZOTEVOQlEySXNTMEZCVDBFc1NVRkJUeXhMUVVGUlFTeEpRVUZQTEV0QlFVOUJMRWxCUVU4c1RVRkJVVUVzU1VGQlR6dEJRVUZCTEVkQlEzUkVRU3hGUVVGTExFdEJRVXNzVDBGQlR5eEZRVUZGV1N4RFFVRkRMRVZCUTNoQ1owSXNSVUZCUzJoQ0xFVkJRVWtzUTBGRFlpeFRRVU5UTEVOQlFVTXNTMEZCU3l4blFrRkRXQ3hGUVVGSExFTkJRME1zU1VGQlNTeEZRVUZKWjBJc1JVRkJTeXhGUVVOVU5VSXNSVUZCU3l4TFFVRkxMRTlCUVU4c1EwRkJReXhGUVVOc1FrRXNTVUZCVHl4UFFVTlFRU3hGUVVGTExFdEJRVXNzVDBGQlR5eEZRVUZGTEVOQlFVTXNSMEZEZUVJc1NVRkJUV2xETEVWQlFWY3NSVUZEYWtJc1MwRkJUMnBETEVsQlFVOHNTMEZEVmtFc1JVRkJTeXhMUVVGTExFOUJRVThzUlVGQlJTeERRVUZETEVWQlEzaENMRWRCUVVsQkxFbEJRVTg3UVVGQlFTeEhRVUZSTEVkQlFVc3NTMEZCU3l4TFFVRlBMRVZCUVVrc1JVRkJTV1VzUlVGQlUydENMRVZCUTJwRVRDeEZRVUZMTEUxQlJVd3NUVUZEVWl4UFFVRlRMRWxCUldJc1lVRkJUVTBzUjBGRFRpeE5RVUZCZGtJc1JVRkJUeXhMUVVGTExGbEJRVmxwUWl4RlFVRkxMRVZCUVVjc1JVRkJTU3hIUVVNM1FpeE5RVUZCYWtJc1JVRkJUeXhMUVVGTExHVkJRV1VzUlVGRGRFTXNRMEZEUVN4RFFVRkRMR3RDUVVGdFFpeERRVU5vUWl4SlFVRk5kMElzUlVGQlV5eExRVUZMTEZWQlFWa3NSVUZETlVKc1FpeEZRVUZOTEV0QlFVc3NTVUZCVFN4RlFVTnFRa3dzUlVGQlNTeExRVUZMTEVsQlFVMHNSVUZEWmxvc1JVRkRTaXhMUVVGUlFTeEZRVUZMTEV0QlFVc3NUMEZCVHl4RlFVRkZXU3hEUVVGRExFZEJRM2hDTEVkQlFVbGFMRWxCUVU4c1NVRkJTeXhEUVVOYUxFbEJRVTFWTEVWQlFVOHNTMEZCU3l4UFFVRlBSU3hGUVVGSkxFTkJRVU1zUlVGRE9VSXNSMEZCU1dJc1IwRkJVVmNzUTBGQlNTeEhRVUZOZVVJc1IwRkJWV2hETEVkQlFXMUNMRWxCUVVsUExFTkJRVWtzUlVGRGRrUXNUVUZEU2s4c1JVRkJUVXdzUTBGRFZpeFRRVU5UWWl4SFFVRlJReXhEUVVGRkxFVkJRVWNzUTBGRGJFSXNTVUZCU1ZVc1JVRkJUeXhMUVVGTExFOUJRVTlGTEVWQlFVa3NRMEZCUXl4RlFWVTFRaXhIUVZSSldpeEpRVUZQTEU5QlEwaFZMRWxCUVZNN1FVRkJRU3hIUVVOVVJTeEhRVUZMTEVWQlEweGFMRVZCUVVzN1FVRkJRU3hGUVVOTVZTeEZRVUZQTEV0QlFVc3NUMEZCVDBVc1JVRkJTU3hEUVVGRExFZEJSM2hDU3l4RlFVRk5UQ3hIUVVWV1JpeEpRVUZUTEV0QlFWRjVRaXhIUVVGVmFFTXNSMEZCYlVJc1NVRkJTVThzUTBGQlNTeEZRVU4wUkN4TlFVTktMRWRCUVVsV0xFbEJRVTg3UVVGQlFTeEZRVUZOTEVOQlEySXNTVUZCVFhOQ0xFVkJRVXNzUzBGQlN5eGxRVUZsVml4RlFVRkpMRU5CUVVNc1JVRkRjRU1zUjBGQlNWVXNTVUZCVHl4SFFVTlFMRTFCUTBwV0xFVkJRVWtzUzBGQlN5eEpRVUZKUVN4RlFVRkhWU3hGUVVGTExFTkJRVU1zUTBGRE1VSXNRMEZEU2l4TFFVTkxMRU5CUTBRc1IwRkJTV0VzUjBGQlZXaERMRWRCUVcxQ0xFbEJRVWxJTEVOQlFVVXNSVUZEYmtNc1RVRkRTbWxDTEVWQlFVMU1MRU5CUTFZc1EwRkZTaXhOUVVGSkxFTkJRVU5hTEVkQlFVMHNRMEZCUXl4TFFVRkxMRTFCUTA0c1MwRkJTeXhSUVVGUkxHTkJRV01zUjBGRGRFTXNUVUZCVFd0RExFZEJRMDRzVFVGQlFYWkNMRVZCUVU4c1MwRkJTeXhaUVVGWlRTeEZRVUZOTEVWQlFVY3NSVUZCU1N4SFFVTTVRbXRDTEVWQlFWTXNUMEZCVXl4TlFVTTNRaXhEUVVOQkxFTkJRVU1zVlVGQlZYUkNMRVZCUVVjc1EwRkRWaXhQUVVGSlFTeEZRVUZKTEVkQlEwb3NUVUZCVFN4TFFVRkxMRTlCUVU4c1QwRkJUeXhMUVVGTExFbEJRVXRCTEVOQlFVTXNSVUZEY0VNc1MwRkJTeXhMUVVGUFFTeEZRVU5NUVN4SFFVVktMRU5CUTFnc1EwRkRRU3hEUVVGRExGbEJRVmxFTEVWQlFVZDNRaXhGUVVGWkxFTkJRM2hDTEVsQlFVMVlMRVZCUVVrc1MwRkJTeXhQUVVGUExFMUJRVTBzUzBGQlN5eEpRVUZMWWl4RFFVRkRMRVZCUTNaRExFOUJRVWxoTEVkQlEwRXNUVUZCVFVFc1JVRkRUaXhMUVVGTExFdEJRVTlCTEVWQlFVVXNUMEZEVUVFc1JVRkJSU3hUUVVWS1Z5eEpRVU5NTEV0QlFVMHNTVUZEU0N4RlFVTllMRU5CUTBFc1EwRkJReXhuUWtGQmFVSXNRMEZEWkN4UFFVRlJMRXRCUVVzc1QwRkJUeXhEUVVGRExFVkJRVWNzUTBGRGNFSXNTVUZCU3l4SlFVTkVMRTlCUVZNc1RVRkJRWHBDTEVWQlFVOHNTMEZCU3l4UlFVRlJMRXRCUTNoQ0xFMUJRVUZCTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVrc1MwRkRNMElzVFVGQlFVRXNSVUZCVHl4TFFVRkxMR1ZCUVdVc1NVRkRjRU1zU1VGQlN5eEpRVU5FTEU5QlFWTXNUVUZCUVVFc1JVRkJUeXhMUVVGTExGVkJRVlZPTEVWQlFXVXNTMEZEZWtNc1RVRkJRVTBzUlVGQlR5eExRVUZMTEZkQlFWY3NSVUZCU1N4TFFVTXpRaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NaVUZCWlN4SlFVTndReXhKUVVGTExFbEJRMHdzU1VGQlN5eEpRVU5NTEVsQlFVc3NTVUZCU3l4RFFVTk9MRWxCUVUxM1FpeEZRVUZUTEV0QlFVc3NWVUZCV1N4RlFVTXhRbElzUlVGQlRTeExRVUZMTEU5QlFVOHNRMEZCUXl4RlFVTjZRaXhIUVVGSk5VSXNSMEZCVVRSQ0xFTkJRVWNzUjBGQlRWRXNSMEZCVldoRExFZEJRVzFDTEVsQlFVbDNRaXhEUVVGSExFVkJRM0pFTEU5QlFVdFJMRVZCUlVrc1MwRkJTeXhWUVVOV0xFdEJRVXNzVVVGQlZTeEpRVVptTEV0QlFVc3NWMEZCWVN4TFFVRkxMRmxCUVdNc1IwRkhhRU1zVFVGQlFYaENMRVZCUVU4c1MwRkJTeXhWUVVGVkxFTkJRVU1zUzBGRE0wSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExGZEJRVmNzUlVGQlNTeExRVU16UWl4TlFVRkJRU3hGUVVGUExFdEJRVXNzWlVGQlpTeEhRVVY0UXl4RFFVTktMRU5CUTBFc1RVRkJUeXhGUVVOWUxFTkJRMEVzUTBGQlF5eFRRVUZWTEVOQlExQXNSMEZCU1N4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGTkxFbEJRVXNzUTBGRGVFSXNTVUZCU1VNc1JVRkJTU3hMUVVGTExFbEJRVTBzUlVGRFpsb3NSVUZCU3l4TFFVRkxMRTlCUVU5WkxFTkJRVU1zUlVGRGRFSXNTMEZCVHl4RFFVRkRZaXhIUVVGUlF5eERRVUZGTEVkQlFVdEJMRWxCUVU4c1MwRkRNVUpCTEVWQlFVc3NTMEZCU3l4UFFVRlBMRVZCUVVWWkxFTkJRVU1zUlVGRGVFSXNUMEZCVHl4TlFVRkJSQ3hGUVVGUExFdEJRVXNzV1VGQldWZ3NTVUZCVHl4SlFVRk5XU3hGUVVGSkxFVkJRVWxCTEVWQlFVY3NSVUZCU3l4RlFVTm9SU3hMUVVOTExFTkJRMFFzU1VGQlNVRXNSVUZCU1N4TFFVRkxMRWxCUVUwc1JVRkRabG9zUlVGQlN5eExRVUZMTEU5QlFVOVpMRU5CUVVNc1JVRkRkRUlzUzBGQlQxb3NSMEZEU0N4SFFVRkpSU3hIUVVGVExFbEJRVWxHTEVOQlFVVXNSVUZEWmtFc1JVRkJTeXhMUVVGTExFOUJRVThzUlVGQlJWa3NRMEZCUXl4VlFVTm1XaXhKUVVGUExFdEJRMXBETEVkQlFWVXNTVUZCU1N4TFFVRkxMRTlCUVU5WExFVkJRVWtzUTBGQlF5eERRVUZETEVkQlEyaERXQ3hIUVVGVkxFbEJRVWtzUzBGQlN5eFBRVUZQVnl4RlFVRkpMRU5CUVVNc1EwRkJReXhGUVVOb1Exb3NSVUZCU3l4TFFVRkxMRTlCUVZGWkxFZEJRVXNzUTBGQlJTeE5RVWQ2UWl4UFFVVlNMRTlCUVU4c1RVRkJRVVFzUlVGQlR5eExRVUZMTEZsQlFWbERMRVZCUVVjc1JVRkJTeXhGUVVNelF5eERRVU5LTEVOQlEwRXNRMEZCUXl4aFFVRmpMRU5CUTFnc1NVRkJUVm9zUlVGQlN5eExRVUZMTEU5QlFVOHNTMEZCU3l4SFFVRkhMRVZCUXk5Q0xFOUJRVWxCTEVsQlFVODdRVUZCUVN4RlFVTkJMRTFCUVVGWExFVkJRVThzUzBGQlN5eFZRVUZWTEVOQlFVTXNSMEZEZWtKWUxFbEJRVThzVFVGQlVTeExRVUZMTEU5QlFVOHNRMEZCUXl4SlFVRk5PMEZCUVVFc1JVRkRhRU1zVFVGQlFWY3NSVUZCVHl4TFFVRkxMRlZCUVZVc1EwRkJReXhIUVVWMlFpeERRVU5tTEVOQlEwRXNRMEZCUXl4WFFVRlhNRUlzUlVGQlZ5eERRVU51UWl4SlFVRkpla0lzUlVGQlNTeExRVUZMTEVsQlFVMHNSVUZEWmxvc1JVRkRTaXhIUVVOSlFTeEZRVUZMTEV0QlFVc3NUMEZCVHl4RlFVRkZXU3hEUVVGRExGRkJRMlphTEVsQlFVOHNTMEZCVVhGRExFZEJRV0Z5UXl4SlFVRlBMRXRCUXpWRExFbEJRVTFoTEVWQlFVbEVMRVZCUVVrc1MwRkJTeXhKUVVOdVFpeFBRVUZKUXl4RlFVRkpMRWxCUTBvc1RVRkJUU3hMUVVGTExFOUJRVThzVDBGQlR5eExRVUZMTEVsQlFVdEJMRU5CUVVNc1JVRkRjRU1zUzBGQlN5eEpRVUZOUkN4SFFVVlNReXhEUVVOWUxFTkJRMEVzUTBGQlF5eFZRVUZWZVVJc1JVRkJUU3hEUVVOaUxFbEJRVWt4UWl4RlFVRkpMRXRCUVVzc1NVRkRWRm9zUlVGQlN5eExRVUZMTEU5QlFVOVpMRU5CUVVNc1JVRkRkRUlzUzBGQlR5eERRVUZETUVJc1JVRkJTM1JETEVOQlFVVXNSMEZEV0VFc1JVRkJTeXhMUVVGTExFOUJRVThzUlVGQlJWa3NRMEZCUXl4RlFVTjRRaXhQUVVGUExFMUJRVUZFTEVWQlFVOHNTMEZCU3l4WlFVRlpReXhGUVVGSExFVkJRVXNzUlVGRE0wTXNRMEZEU2l4RlEzSnpRa0VzU1VGQlRUSkNMRWRCUVU0c1MwRkJhMElzUTBGRFpDeGhRVUZqTEVOQlExWXNTMEZCU3l4WFFVRmhMRU5CUVVNc1JVRkxia0lzUzBGQlN5eFhRVUZqUXl4SFFVRlhMRXRCUVVzc1YwRkJWeXhMUVVGTFFTeERRVUZOTEVWQlRYcEVMRXRCUVVzc1VVRkJWMEVzUjBGQlZ5eERRVU4yUWl4SlFVRkpReXhGUVVGTkxFVkJRMDVETEVWQlFVOHNTMEZCU3l4WFFVRlhMRTlCUXpOQ0xFdEJRVTlFTEVWQlFVMURMRWRCUVUwc1EwRkRaaXhKUVVGTlF5eEZRVUZQUml4RlFVRk5ReXhIUVVGVExFVkJRM2hDTEV0QlFVc3NWMEZCVjBNc1EwRkJSeXhGUVVGSlNDeEZRVU4yUWtNc1JVRkJUVVVzUlVGQlRTeEZRVVZhUkN4RlFVRlBReXhEUVVObUxFTkJRMEVzUjBGQlNTeExRVUZMTEZkQlFWZEdMRU5CUVVjc1NVRkJUVVFzUlVGRGVrSXNUVUZCVHl4RFFVRkZMRXRCUVUxRExFVkJRVTBzUlVGQlJ5eEpRVUZMTEVOQlFVVXNSVUZEYmtNc1IwRkJTVUVzU1VGQlVTeEZRVU5TTEUxQlFVOHNRMEZCUlN4TFFVRk5MRVZCUVVjc1NVRkJTMFFzUTBGQlR5eEZRVU5zUXl4SlFVRk5TU3hGUVVGUkxFdEJRVXNzVjBGQlYwZ3NSVUZCVFN4RFFVRkRMRVZCUTNKRExFMUJRVThzUTBGQlJTeExRVUZOUVN4RlFVRkxMRWxCUVV0RUxFVkJRVk5KTEVWQlFWRXNRMEZCUlN4RFFVTm9SQ3hEUVVOS0xFTkJRMG9zUlVOcVEwRXNVMEZCVTBNc1IwRkJZME1zUlVGQlRVTXNSVUZCVFN4RFFVTXZRaXhSUVVGVFF5eEZRVUZKTEVWQlFVZEJMRVZCUVVsR0xFVkJRVXNzVDBGQlVTeEZRVUZGUlN4RlFVTXZRaXhIUVVGSlJpeEZRVUZMUlN4RFFVRkRMRVZCUVVVc1QwRkJVMFFzUlVGRGFrSXNUVUZCVHl4SFFVTm1MRTFCUVU4c1JVRkRXQ3hEUVVOQkxGTkJRVk5GTEVkQlFXdENTQ3hGUVVGTkxFTkJRemRDTEZGQlFWTkZMRVZCUVVrc1JVRkJSMEVzUlVGQlNVWXNSVUZCU3l4UFFVRlJMRVZCUVVWRkxFVkJReTlDTEU5QlFWRkdMRVZCUVV0RkxFTkJRVU1zUlVGQlJTeExRVUZOTEVOQlEyeENMRWxCUVVzc1VVRkRUQ3hKUVVGTExGVkJRMHdzU1VGQlN5eFZRVU5FTEUxQlEwb3NVVUZEU1N4UFFVRlBRU3hEUVVObUxFTkJSVW9zVFVGQlR5eEZRVU5ZTEVOQlEwRXNVMEZCVTBVc1IwRkJXVU1zUlVGQlR5eERRVU40UWl4UFFVRlJRU3hIUVVGQkxGbEJRVUZCTEVWQlFVOHNTMEZCVFN4RFFVTnFRaXhKUVVGTExGRkJRMHdzU1VGQlN5eFRRVU5NTEVsQlFVc3NkVUpCUTB3c1NVRkJTeXgxUWtGRFRDeEpRVUZMTEd0Q1FVTkVMRTFCUVU4c1IwRkRXQ3hSUVVOSkxFMUJRVThzUlVGRFppeERRVU5LTEVOQlEwRXNVMEZCVTBNc1IwRkJZVU1zUlVGQlVTeERRV3hET1VJc1NVRkJRVU1zUlVGdFEwa3NUMEZCVVVRc1JVRkJUeXhMUVVGTkxFTkJRMnBDTEVsQlFVc3NWMEZEUkN4UFFVRlBRU3hGUVVGUExFMUJRMnhDTEVsQlFVc3NXVUZCWVN4RFFVTmtMRWxCUVUxRkxFVkJRVXRHTEVWQlFVOHNUVUZCVFVFc1JVRkJUeXhOUVVGTkxFOUJRVk1zUTBGQlF5eEZRVU12UXl4UFFVRlBReXhGUVVGQlF5eEZRVUZITEUxQlFVZ3NTMEZCUVVRc1JVRkJWVU1zUlVGQlJ5eExRVU40UWl4RFFVTkJMRWxCUVVzc1dVRkRSQ3hQUVVGUFJpeEZRVUZQTEUxQlFVMUJMRVZCUVU4c1RVRkJUU3hQUVVGVExFTkJRVU1zUlVGQlJTeE5RVVZxUkN4UlFVTkpMRTFCUVU4c1EwRkJReXhEUVVOb1FpeERRVU5LTEVOQlJVRXNVMEZCVTBjc1IwRkJjMEpETEVWQlFVMHNRMEZzUkhKRExFbEJRVUZJTEVWQmJVUkpMRWRCUVVsSExFVkJRVXNzVTBGQlZ5eEZRVU5vUWl4TlFVRlBMRU5CUVVNc1JVRkRXaXhKUVVGSlZDeEZRVUZKVXl4RlFVRkxMRTlCUTJKRExFVkJRVTBzUzBGQlR5eEZRVUZGVml4SFFVRkxMRWRCUTJoQ0xFOUJRVkZUTEVWQlFVdFVMRU5CUVVNc1JVRkJSU3hMUVVGTkxFTkJRMnhDTEVsQlFVc3NXVUZEVEN4SlFVRkxMRzFDUVVOTUxFbEJRVXNzWjBKQlEwd3NTVUZCU3l4bFFVTk1MRWxCUVVzc1ZVRkRSQ3hOUVVGTlZTeERRVU5rTEVOQlJVb3NUMEZCVDBvc1JVRkJRVWNzUlVGQlN5eEZRVUZGVkN4RFFVRkRMRWxCUVZJc1dVRkJRVTBzUlVGQlZ5eFJRVUZUTEZOQlFWTXNRMEZIY0VNc1QwRkJUMGNzUlVGQlN5eFBRVUZQVkN4RlFVRkhVeXhGUVVGTExFMUJRVTBzUTBGRGNrTXNRMEZEUVN4VFFVRlRSU3hIUVVGblFrTXNSVUZCU1N4RFFVTjZRaXhIUVVGSlFTeEZRVUZITEUxQlFVMHNUMEZCVXl4cFFrRkRiRUlzVVVGQlYwd3NTMEZCVFVzc1JVRkJSeXhOUVVOYVRDeEZRVUZITEV0QlEwZ3NRMEZCUTBFc1JVRkJSeXhQUVVOS0xFTkJRVU5XTEVkQlFXTlZMRVZCUVVjc1RVRkJUeXhyUWtGQmEwSXNSMEZETTBNc1EwRkJRMVlzUjBGQlkxVXNSVUZCUnl4SlFVRkxMR1ZCUVdVc1NVRkRiRU5CTEVWQlFVY3NUVUZEU0VFc1JVRkJSeXhOUVVGUlFTeEZRVUZITEV0QlEyeENMRTlCUVU5QkxFVkJRVWNzU1VGRFRrd3NSMEZCV1Vzc1JVRkJSeXhMUVVGTExFVkJRMmhDUVN4RlFVRkhMRTFCUVUwc1NVRkRWQ3hOUVVGTkxGVkJRVlVzUzBGQlN5eE5RVUZOUVN4RlFVRkhMRTFCUVUwc1NVRkJTMEVzUlVGQlJ5eEhRVUZITEVWQlJTOURRU3hGUVVGSExFMUJRVTBzU1VGQlRVRXNSVUZCUnl4SlFVZDBRaXhOUVVGTkxGVkJRVlVzUzBGQlN5eE5RVUZOUVN4RlFVRkhMRTFCUVU5QkxFVkJRVWNzUjBGQlJ5eEZRVU12UXl4UFFVRlBRU3hGUVVGSExFbEJTVEZDTEVOQk5FSkJMRWxCUVUxTkxFZEJRVTRzUzBGQllTeERRVXRVTEZsQlFWbERMRVZCUVZjc1EwRkZia0lzUzBGQlN5eFZRVUZaTEVkQlJXcENMRXRCUVVzc1UwRkJWeXhIUVVWb1FpeExRVUZMTEU5QlFWTXNSVUZGWkN4TFFVRkxMRTlCUVZNc1JVRkZaQ3hMUVVGTExGVkJRVmtzUjBGRmFrSXNTMEZCU3l4TlFVRlJMRU5CUVVNc1JVRkZaQ3hMUVVGTExFOUJRVk1zUjBGRlpDeExRVUZMTEV0QlFVOHNSMEZGV2l4TFFVRkxMRTFCUVZFc1NVRkJTVU1zUjBGRGFrSXNTMEZCU3l4VlFVRlpSQ3hEUVVOeVFpeERRVk5CTEVOQlFVTXNUVUZCVFVVc1JVRkJVVU1zUlVGQllTeEhRVUZQTEVOQlF6TkNMRXRCUVVzc1YwRkJZU3hMUVVGTExGTkJRVmNzUjBGRGJFTXNTMEZCU3l4VlFVRlZMRU5CUVVNc1JVRkRjRUlzVVVGQlYwTXNTMEZCVlN4TFFVRkxMRTFCUVUwc1NVRkJTVVlzUlVGQlVVTXNRMEZCVlN4RlFVTnNSQ3hOUVVGQlJTeEZRVUZQTEV0QlFVc3NTMEZCUzBRc1EwRkJUU3hIUVVOMFFrUXNTVUZEUkN4TlFVRkJSU3hGUVVGUExFdEJRVXNzU1VGQlNTeEhRVU40UWl4RFFVbEJMRU5CUVVNc1MwRkJTMGdzUlVGQlVTeERRVVZXTEVkQlJFRXNTMEZCU3l4UFFVRlRRU3hGUVVOV0xFdEJRVXNzVTBGQlZTeERRVU5tTEV0QlFVc3NVMEZCVnl4SFFVTm9RaXhOUVVGQlJ5eEZRVUZQTEV0QlFVc3NTMEZCU3l4SFFVTnFRaXhMUVVGTExGRkJRVlZJTEVWQlFVOHNUMEZEZEVJc1RVRkRTaXhEUVVOQkxFbEJRVTFxUWl4RlFVRlBjVUlzUjBGQlZVb3NRMEZCVFN4RlFVTTNRaXhIUVVGTGFrSXNSVUZMUVN4SFFVRkpRU3hKUVVGVExGTkJRMlFzUzBGQlN5eFZRVUZaTEVkQlEycENMRXRCUVVzc1UwRkJWeXhIUVVOb1FpeExRVUZMTEV0QlFVOHNZVUZGV0N4RFFVZEVMRTlCUmtFc1MwRkJTeXhMUVVGUFFTeEZRVU5hTEUxQlFVRnZRaXhGUVVGUExFdEJRVXNzUzBGQlN5eEhRVU5VY0VJc1JVRkJUU3hEUVVOV0xFbEJRVXNzVlVGRFJDeExRVUZMTEZWQlFWa3NSMEZEYWtJc1MwRkJTeXhQUVVGVExFVkJRMVlzUzBGQlN5eFhRVU5NTEV0QlFVc3NWVUZCVlN4TFFVRkxMRTlCUVZOcFFpeEZRVUZQTEUxQlFVMHNSVUZET1VNc1RVRkRTaXhKUVVGTExGRkJRMGNzUzBGQlN5eFhRVUZoUVN4RlFVRlBMRU5CUVVNc1NVRkJUU3hOUVVOb1F5eExRVUZMTEZGQlFWVkJMRVZCUVU4c1VVRkRNVUlzVFVGRFNpeEpRVUZMTEcxQ1FVTk1MRWxCUVVzc1owSkJRMHdzU1VGQlN5eGxRVU5ITEV0QlFVc3NXVUZEVEN4TFFVRkxMRkZCUVZWQkxFVkJRVThzVVVGRE1VSXNUVUZEU2l4SlFVRkxMRmRCUTB3c1NVRkJTeXhwUWtGRFJDeFBRVU5LTEZGQlEwa3NTMEZCU3l4VlFVRlpMRVZCUTNwQ0xFTkJRMEVzUzBGQlN5eFJRVUZWUVN4RlFVRlBMRTFCUXpGQ0xFdEJja05YTEVOQlExQXNTVUZCVFVzc1JVRkJWU3h4UWtGQmNVSk1MRU5CUVUwc1IwRkRNME1zVFVGQlFVY3NSVUZCVHl4TFFVRkxMRWxCUVVrc1EwRkJSU3hMUVVGTkxGRkJRVk1zVDBGQlVTeExRVUZMTEU5QlFWRXNVVUZCUVVVc1JVRkJVeXhQUVVGQlRDeERRVUZQTEVOQlFVTXNSMEZEZGtVc1MwRkJTeXhSUVVGVlFTeEZRVUZQTEUxQlF6RkNMRU5CYTBOS0xFTkJSVUVzUTBGQlF5eExRVUZOTEVOQlEwZ3NTMEZCVHl4TFFVRkxMRTFCUVUwc1QwRkJVeXhIUVVOMlFpeE5RVUZCUnl4RlFVRlBMRXRCUVVzc1NVRkJTU3hGUVVONFFpeERRVU5CTEVsQlFVa3NZVUZCWXl4RFFVOWtMRTFCVGxjc1EwRkRVQ3hMUVVGTkxFdEJRVXNzUzBGRFdDeFBRVUZSTEV0QlFVc3NUMEZEWWl4UFFVRlJMRXRCUVVzc1QwRkRZaXhQUVVGUkxFdEJRVXNzVFVGRGFrSXNRMEZGU2l4RFFVTkJMRU5CUVVNc1RVRkJUeXhEUVVOS0xFbEJRVTFITEVWQlFVMHNTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkRka0lzUjBGQlNTeExRVUZMTEU5QlFWTXNXVUZCWXl4RFFVRkRRU3hIUVVGUFFTeEZRVUZKTEU5QlFWTXNWMEZCV1N4RFFVTTNSQ3hMUVVGUExFdEJRVXNzVFVGQlRTeFBRVUZUTEVkQlEzWkNMRTFCUVVGSUxFVkJRVThzUzBGQlN5eEpRVUZKTEVkQlEzQkNMRXRCUVVzc1RVRkJUU3hMUVVGTExFTkJRMW9zUzBGQlRTeFZRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhOUVVOcVFpeERRVUZETEVWQlEwUXNUVUZEU2l4RFFVTkJMRWRCUVVrc1EwRkJRMGNzUlVGRFJDeFBRVUZQTEUxQlFVRklMRVZCUVU4c1MwRkJTeXhQUVVGUExFZEJRemxDTEU5QlFWRkhMRVZCUVVrc1MwRkJUU3hEUVVOa0xFbEJRVXNzVjBGRFJDeFBRVUZQTEUxQlFVRklMRVZCUVU4c1MwRkJTeXhUUVVGVFJ5eERRVUZITEVkQlEyNURMRWxCUVVzc1VVRkRUQ3hKUVVGTExGTkJRMHdzU1VGQlN5eDFRa0ZEVEN4SlFVRkxMSFZDUVVORUxFOUJRVThzVFVGQlFVZ3NSVUZCVHl4TFFVRkxMRTlCUVU5SExFTkJRVWNzUjBGRGFrTXNTVUZCU3l4bFFVTkVMRTlCUVU4c1RVRkJRVWdzUlVGQlR5eExRVUZMTEZsQlFWbEhMRU5CUVVjc1IwRkRkRU1zU1VGQlN5eFpRVU5FTEU5QlFVOHNUVUZCUVVnc1JVRkJUeXhMUVVGTExGTkJRVk5ITEVOQlFVY3NSMEZEYmtNc1NVRkJTeXhaUVVORUxFOUJRVThzVFVGQlFVZ3NSVUZCVHl4TFFVRkxMR05CUVdOSExFTkJRVWNzUjBGRGVFTXNTVUZCU3l4clFrRkRSQ3hQUVVGUExFMUJRVUZJTEVWQlFVOHNTMEZCU3l4bFFVRmxSeXhEUVVGSExFZEJRM3BETEVsQlFVc3NWVUZEUkN4UFFVRlBMRTFCUVVGSUxFVkJRVThzUzBGQlN5eFpRVUZaUnl4RFFVRkhMRVZCUXpGRExFTkJSVUVzVFVGQlFVZ3NSVUZCVHl4TFFVRkxMRWxCUVVrc1JVRkRjRUlzUTBGRFFTeExRVUZMU1N4RlFVRkhMRU5CUTBvc1QwRkJUeXhMUVVGTExFMUJRVTBzUzBGQlN5eE5RVUZOTEU5QlFWTkJMRU5CUVVNc1EwRkRNME1zUTBGRFFTeERRVUZETEVsQlFVbERMRVZCUVU4c1EwRkRVaXhKUVVGTmNrSXNSVUZCVVhGQ0xFZEJRVUVzUzBGQlFVRXNSVUZCVXl4TFFVRkxMRTFCUVUwc1NVRkJTU3hGUVVWMFF5eEhRVUZKTEVOQlFVTnlRaXhGUVVWRUxFdEJRVTBzUTBGQlJTeExRVUZOTEZGQlFWTXNUMEZCVVN4TFFVRkxMRTlCUVZFc1QwRkJVU3hIUVVGSkxGRkJSSGhETERaQ1FVTm5SQ3hWUVVVelJDeExRVUZMTEUxQlFVMHNVMEZCVnl4RlFVTXpRaXhOUVVGTlFTeE5RVVZNTEVOQlEwUXNTVUZCVFcxQ0xFVkJRVTBzUzBGQlN5eExRVUZMTEVOQlFVTXNSVUZYZGtJc1QwRldTVzVDTEVWQlFVMHNUMEZCVXl4bFFVVm1RU3hGUVVGTkxFOUJRVk1zVjBGQldXMUNMRVZCUVUxQkxFVkJRVWtzVDBGQlV5eEZRVVY2UTI1Q0xFVkJRVTBzVDBGQlV5eHRRa0ZCY1VKdFFpeEZRVUZKTEU5QlFWTXNZVUZGZEVSdVFpeEZRVUZOTEU5QlFWTXNSMEZGWmtFc1JVRkJUU3hQUVVGVExHMUNRVU5tVVN4SFFVRm5RbElzUTBGQlN5eEZRVU5xUW0xQ0xFVkJRVWtzUzBGQlRTeERRVU5rTEVsQlFVc3NWMEZEUkVFc1JVRkJTU3hOUVVGUmJrSXNSVUZEV2l4TlFVTktMRWxCUVVzc1pVRkRSRzFDTEVWQlFVa3NUVUZCVFN4TFFVRkxia0lzUTBGQlN5eEZRVU53UWl4TlFVTktMRWxCUVVzc1dVRkJZU3hEUVVOa0xFbEJRVTFKTEVWQlFVdGxMRVZCUVVrc1RVRkJUVUVzUlVGQlNTeE5RVUZOTEU5QlFWTXNRMEZCUXl4RlFVTjZReXhIUVVGSlppeEZRVUZITEUxQlFVOHNRMEZEVm1Vc1JVRkJTU3hOUVVGTkxFdEJRVXNzUTBGQlJTeE5RVUZQTEVOQlFVTXNSVUZCUnl4SlFVRkxia0lzUlVGQlR5eEpRVUZMTEVOQlFVTXNRMEZCUlN4RFFVRkRMRVZCUTJwRUxFdEJRVXNzVlVGQldTeEhRVU5xUWl4TlFVTktMRk5CUTFOSkxFVkJRVWNzU1VGRFVrRXNSVUZCUnl4TlFVRlJTaXhOUVVWV0xFTkJRMFFzVDBGQlR5eFBRVUZQU1N4RlFVRkpMRU5CUVVVc1NVRkJTMG9zUlVGQlR5eEpRVUZMTEVOQlFVTXNRMEZCUlN4RFFVRkRMRVZCUTNwRExFdEJRVXNzVlVGQldTeERRVUZEU1N4RlFVRkhMRmxCUTNKQ0xFMUJRMG9zUTBGRFFTeExRVU5LTEVOQlEwRXNTVUZCU3l4WlFVRmhMRU5CUTJRc1NVRkJUVUVzUlVGQlMyVXNSVUZCU1N4TlFVRk5RU3hGUVVGSkxFMUJRVTBzVDBGQlV5eERRVUZETEVWQlEzSkRaaXhGUVVGSExFMUJRMGhsTEVWQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVVc1RVRkJUeXhEUVVGRExFVkJRVWNzVFVGQlQyNUNMRU5CUVUwc1EwRkJReXhGUVVVeFEwa3NSVUZCUnl4TlFVRlJTaXhGUVVObUxFdEJRMG9zUTBGRFFTeEpRVUZMTEd0Q1FVRnRRaXhEUVVOd1FpeEpRVUZOU1N4RlFVRkxaU3hGUVVGSkxFMUJRVTFCTEVWQlFVa3NUVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkRja01zUTBGQlEyWXNSMEZCVFVFc1JVRkJSeXhOUVVOV1pTeEZRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkZMRTFCUVU4c1EwRkJReXhGUVVGSExFbEJRVXR1UWl4RlFVRlBMRWxCUVVzc1EwRkJReXhEUVVGRkxFTkJRVU1zUlVGRE5VTkpMRVZCUVVjc1NVRkRVa0VzUlVGQlJ5eE5RVUZSU2l4RlFVVllMRTlCUVU4c1QwRkJUMGtzUlVGQlNTeERRVUZGTEVsQlFVdEtMRVZCUVU4c1NVRkJTeXhEUVVGRExFTkJRVVVzUTBGQlF5eEZRVU0zUXl4TlFVTktMRU5CUlVFc1VVRkRTU3hOUVVGQlowSXNSVUZCVHl4TFFVRkxMRWxCUVVrc1IwRkRhRUlzVFVGQlFVRXNSVUZCVHl4TFFVRkxMRWxCUVVsb1FpeERRVUZMTEVWQlF6ZENMRU5CUTBFc1NVRkJTMjFDTEVWQlFVa3NUMEZCVXl4WlFVTmtRU3hGUVVGSkxFOUJRVk1zWVVGRFlrRXNSVUZCU1N4UFFVRlRMR1ZCUTFwdVFpeEZRVUZOTEU5QlFWTXNZVUZCWlVFc1JVRkJUU3hQUVVGVExHRkJRV01zUTBGRE5VUXNTVUZCVFhOQ0xFVkJRVTkwUWl4RlFVRk5MRTFCUVUxQkxFVkJRVTBzVFVGQlRTeFBRVUZUTEVOQlFVTXNSVUZETTBOelFpeEhRVU5CTEVOQlFVTkJMRVZCUVVzc1MwRkRUaXhEUVVGRFFTeEZRVUZMTEU5QlEwNUJMRVZCUVVzc1RVRkJUU3hQUVVGVExFZEJRM0JDZUVJc1IwRkJhMEozUWl4RlFVRkxMRXRCUVVzc1NVRkJUU3hMUVVOcVEzUkNMRVZCUVUwc1UwRkJWeXhIUVVOa2MwSXNSVUZCU3l4TlFVRk5MRTFCUVUxRExFZEJRVTFCTEVWQlFVY3NUMEZCVXl4WFFVRmhRU3hGUVVGSExFOUJRVk4yUWl4RlFVRk5MRTFCUVUwc1MwRkRlRVZ0UWl4RlFVRkpMRTlCUVZNc1YwRkRZa0VzUlVGQlNTeEpRVUZOUnl4RlFVRkxMRTFCUldaSUxFVkJRVWtzVFVGQlRTeExRVUZMTEVOQlFVVXNUVUZCVDBjc1JVRkJTeXhMUVVGTkxFTkJRVU1zUlVGRGVFTjBRaXhGUVVGTkxFMUJRVTBzVDBGQlR5eEhRVUZKTEVOQlFVTXNSVUZGYUVNc1EwRkRTaXhEUVVOS0xFTkJRMEVzUTBGQlF5eFJRVUZUTEVOQlEwNHNUMEZCVVN4TFFVRkxMRXRCUVUwc1EwRkRaaXhKUVVGTExHbENRVU5FTEV0QlFVMHNRMEZCUlN4TFFVRk5MRmxCUVdFc1QwRkJVU3hMUVVGTExFOUJRVkVzVDBGQlVTeExRVUZMTEUxQlFVOHNSVUZEY0VVc1QwRkRTaXhKUVVGTExHdENRVU5NTEVsQlFVc3NVVUZEVEN4SlFVRkxMRlZCUTB3c1NVRkJTeXhWUVVORUxFMUJRVTBzUzBGQlN5eFpRVU5ZTEU5QlEwb3NTVUZCU3l4WFFVTk1MRWxCUVVzc1dVRkJZU3hEUVVOa0xFbEJRVTEzUWl4RlFVRk5MRU5CUTFJc1MwRkJUU3hYUVVOT0xFOUJRVkVzUzBGQlN5eFBRVU5pTEUxQlFVOHNRMEZCUXl4RFFVTmFMRVZCUTBrc1MwRkJTeXhQUVVGVExHRkJRMlJCTEVWQlFVa3NUVUZCVFN4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVOdVF5eExRVUZMTEUxQlFVMHNTMEZCUzBFc1EwRkJSeXhGUVVOdVFpeE5RVU5LTEVOQlEwb3NRMEZEUVN4TFFVRk5MRU5CUTBZc1MwRkJUU3hSUVVOT0xFOUJRVkVzUzBGQlN5eFBRVU5pTEZGQlFWTXNZMEZCWXl4TFFVRkxMRWxCUVVrc2QwSkJRMmhETEU5QlFWRXNTMEZCU3l4TlFVTnFRaXhEUVVOS0xFTkJRMEVzUTBGQlF5eFRRVUZUUVN4RlFVRkxMRU5CUTFnc1IwRkJTVUVzUlVGQlNTeE5RVU5LTEU5QlFVOHNUVUZCUVZJc1JVRkJUeXhMUVVGTExGRkJRVkZSTEVOQlFVY3NSMEZEYkVNc1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEZsQlFXRXNRMEZEVmpGQ0xFZEJRV3RDTUVJc1JVRkJTU3hMUVVGTExFbEJRVTBzU1VGRGFrTXNUVUZCUVZJc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRGFFSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExFdEJRVXNzU1VGSGFrSlJMRVZCUVVrc1RVRkJUU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVU51UXl4TlFVTktMRU5CUTBFc1NVRkJTeXhUUVVOTUxFbEJRVXNzVFVGRFRDeEpRVUZMTEZGQlEwd3NTVUZCU3l4VlFVTk1MRWxCUVVzc1ZVRkRSRUVzUlVGQlNTeE5RVUZOTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUXk5Q0xFMUJRMUlzUTBGRFFTeEpRVUZOUXl4RlFVRkxMRXRCUVVzc1owSkJRV2RDUkN4RFFVRkhMRVZCUXk5Q1F5eEZRVU5CTEV0QlFVc3NUVUZCVFN4TFFVRkxRU3hEUVVGRkxFVkJSV3hDTEV0QlFVMHNRMEZEUml4TFFVRk5MRkZCUTA0c1QwRkJVU3hMUVVGTExFOUJRMklzVVVGQlV5eGpRVUZqTEV0QlFVc3NTVUZCU1N3d1FrRkRhRU1zVDBGQlVTeExRVUZMTEUxQlEycENMRU5CUlZJc1EwRkRRU3hEUVVGRExFOUJRVTlETEVWQlFWRXNRMEZEV2l4SFFVRkpMRXRCUVVzc1QwRkJVeXhuUWtGQmFVSXNRMEZETDBJc1NVRkJUWEJDTEVWQlFVOU1MRWRCUVdFc1MwRkJTeXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVU5vUXpCQ0xFVkJRVkYwUWl4SFFVRnpRa01zUTBGQlNTeEZRVU53UTNOQ0xFVkJRMEZHTEVWQlFVOHNTMEZEVUVVc1JVRkJUVVlzUlVGQlR5eEpRVU5pUlN4RlFVRkpMRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJRM3BDTEU5QlFVOUdMRVZCUVU4c1MwRkhaRVVzUlVGQlRTeERRVUZETEV0QlFVc3NWMEZCVnl4RlFVTXpRaXhKUVVGTlF5eEZRVUZOTEVOQlExSXNTMEZCVFN4WlFVTk9MRTlCUVZGSUxFVkJRVThzVDBGRFppeFBRVUZSUVN4RlFVRlBMRTlCUTJZc1RVRkJUeXhEUVVGRExFTkJRVVVzVFVGQlFVTXNSVUZCVHl4SlFVRkxSQ3hGUVVGUkxFbEJRVUZGTEVOQlFVa3NRMEZCUXl4RFFVTjJReXhGUVVOQkxFdEJRVXNzVlVGQldTeEhRVU5xUWl4TFFVRkxMRTFCUVUwc1MwRkJTeXhOUVVGTkxFOUJRVk1zUTBGQlF5eEZRVUZKUXl4RFFVTjRReXhOUVVWSkxFMUJRVUZpTEVWQlFVOHNTMEZCU3l4UlFVRlJWU3hEUVVGTkxFVkJRMnhETEVOQlEwRXNRMEZCUXl4WlFVRlpRU3hGUVVGUkxFTkJRMnBDTEU5QlFWRXNTMEZCU3l4TFFVRk5MRU5CUTJZc1NVRkJTeXhSUVVOTUxFbEJRVXNzVlVGRFRDeEpRVUZMTEZWQlEwUkJMRVZCUVU4c1RVRkJUU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVU5zUXl4UFFVTktMRWxCUVVzc1UwRkxSQ3hIUVVwQlFTeEZRVUZQTEU5QlFWTXNTMEZCU3l4UFFVVnlRaXhMUVVGTExGVkJRVmtzUjBGRGFrSXNTMEZCU3l4UFFVRlRMRVZCUTFZc1MwRkJTeXhWUVVGWExFTkJRMmhDTEVsQlFVbEpMRVZCUVVzc1MwRkJTeXhQUVVGUExGRkJRVkU3UVVGQlFTeERRVUZKTEVWQlFVa3NSVUZEY2tNc1MwRkJUMEVzU1VGQlR5eEhRVU5XTEV0QlFVc3NWVUZCVlN4TFFVRkxMRTlCUVZOQkxFTkJRVVVzUlVGREwwSkJMRVZCUVVzc1MwRkJTeXhQUVVGUExGRkJRVkU3UVVGQlFTeEZRVUZOUVN4RFFVRkZMRVZCUVVrc1EwRkZOME1zUTBGRFFTeE5RVUZCWkN4RlFVRlBMRXRCUVVzc1NVRkJTU3hIUVVOb1FpeE5RVVZLTEZGQlEwa3NUVUZCUVVFc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRGFFSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExFdEJRVXNzUlVGRGVrSXNRMEZEU2l4RFFVTkJMRU5CUVVNc1UwRkJVMkVzUlVGQlN5eERRWFJrYmtJc1NVRkJRVEZDTEVWQmRXUlJMRWxCUVUxRExFVkJRVXQ1UWl4RlFVRkpMRTFCUVUxQkxFVkJRVWtzVFVGQlRTeFBRVUZUTEVOQlFVTXNSVUZGZWtNc1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEZWQlJVUXNSMEZFUVN4TFFVRkxMRlZCUVZrc1IwRkRZbnBDTEVWQlFVY3NUVUZCVHl4RFFVTldMRWxCUVUweVFpeEZRVUZOTEZGQlFWTXpRaXhGUVVGSExFMUJRVkZCTEVWQlFVY3NUVUZCVFN4SlFVRk5MRTlCUTNwRGEwSXNSVUZCVHl4TlFVRk5MRkZCUVZGVExFTkJRVWNzUlVGQlNVRXNSVUZCU1VFc1JVRkJTU3hQUVVGVExFTkJRVU1zUlVGQlNTeFJRVU53UkZRc1IwRkJRU3haUVVGQlFTeEZRVUZOTEZGQlFWTXNWVUZEWmxNc1IwRkJRU3hOUVVGQlFTeEZRVUZMTEV0QlFVc3NTMEZCU3l4aFFVVm1SaXhGUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1EwRkJSU3hEUVVGRExFTkJRM0JFTEUxQlExTjZRaXhGUVVGSExFbEJRMUpCTEVWQlFVY3NTVUZCU1N4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVjMVFrRXNSVUZCUnl4TlFVRk5MRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJSV3hETEU5QlEwb3NTVUZCU3l4UlFVTk1MRWxCUVVzc1ZVRkRSQ3hIUVVGSlFTeEZRVUZITEUxQlEwaDVRaXhGUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1EwRkJSU3hEUVVGRExGVkJSWFpEZWtJc1JVRkJSeXhKUVVOU1FTeEZRVUZITEVsQlFVa3NTMEZCU3l4TFFVRkxMRmRCUVZjc1RVRkZNMElzUTBGRFJDeEhRVUZKTEV0QlFVc3NhMEpCUVd0Q1FTeEZRVUZITEUxQlFVOTVRaXhGUVVGSkxFMUJRVTBzUlVGQlJ5eERRVU01UXl4SlFVRk5ka0lzUlVGQlQzVkNMRVZCUVVrc1RVRkJUVUVzUlVGQlNTeE5RVUZOTEU5QlFWTXNRMEZCUXl4RlFVTnlRMFVzUjBGQlRUVkNMRVZCUVVGSExFZEJRVUVzV1VGQlFVRXNSVUZCVFN4UlFVRk9MRmxCUVVGSUxFVkJRV0VzU1VGRGVrSXNSMEZCU1N4TlFVRk5MRkZCUVZFMFFpeERRVUZITEVWQlFVY3NRMEZEY0VJc1RVRkJUU3hWUVVGVkxFdEJRVXNzVFVGQlRVRXNSVUZCU3pOQ0xFVkJRVWNzUzBGQlN5eEZRVU40UXpKQ0xFVkJRVWtzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZEZWtKR0xFVkJRVWtzVFVGQlRTeEpRVUZKTEVWQlEyUXNUVUZEU2l4RFFVTktMRU5CUTBGNlFpeEZRVUZITEUxQlFVMHNTMEZCU3l4TFFVRkxMRmRCUVZjc1EwRkRiRU1zUTBGRFFTeE5RVU5TTEVOQlEwRXNSMEZCU1N4TFFVRkxMRkZCUVZWNVFpeEZRVUZKTEU5QlFWRXNRMEZETTBJc1NVRkJUVWNzUlVGQll5eERRVUZETEV0QlFVc3NWMEZCWVN4TFFVRkxMRk5CUVZkSUxFVkJRVWtzVDBGRGNrUkpMRVZCUVdGRUxFbEJRMlExUWl4RlFVRkhMRXRCUVU5QkxFVkJRVWNzWTBGRFpDeExRVUZMTEU5QlFWTXNaVUZGWkhWQ0xFVkJRVkVzUTBGQlF5eEZRVU5pTEVkQlFVbE5MRWRCUVdNM1FpeEZRVUZITEV0QlFVOHNRMEZCUTBFc1JVRkJSeXhOUVVGUExFTkJRMjVETEVsQlFVMHdRaXhGUVVGTExFTkJRVU1zUlVGRFdpeFJRVUZUYWtNc1JVRkJTU3hGUVVGSFFTeEZRVUZKVHl4RlFVRkhMRWxCUVVrc1QwRkJVU3hGUVVGRlVDeEZRVUZITEVOQlEzQkRMRWxCUVUwd1FpeEZRVUZMYmtJc1JVRkJSeXhKUVVGSlVDeERRVUZETEVWQlEyNUNMRTlCUVZFd1FpeEZRVUZITEV0QlFVMHNRMEZEWWl4SlFVRkxMRlZCUTBSUExFVkJRVWNzUzBGQlMycERMRU5CUVVNc1JVRkRWQ3hOUVVOS0xFbEJRVXNzVVVGRFJDeE5RVU5LTEVsQlFVc3NWVUZEUnpCQ0xFVkJRVWNzVDBGQlUwMHNSVUZCU1N4VFFVTm9Ra01zUlVGQlJ5eFBRVUZUTEVkQlEyaENMRTFCUTBvc1VVRkRTVUVzUlVGQlJ5eFBRVUZUTEVOQlEzQkNMRU5CUTBvc1EwRkRTVUVzUlVGQlJ5eFJRVUZWTEVsQlEySklMRVZCUVZGMlFpeEZRVUZITEVsQlFVa3NUMEZCVHpCQ0xFVkJRVWNzUTBGQlF5eERRVUZETEVWQlEyNURMRU5CUTBFc1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEZOQlEwd3NTVUZCU3l4TlFVTkhSeXhIUVVGak4wSXNSVUZCUnl4UFFVTnFRblZDTEVWQlFVMHNTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkRNMEpGTEVWQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVVc1RVRkJRVVlzUTBGQlRTeERRVUZETEVWQlEzaENMRXRCUVVzc1ZVRkJXU3hKUVVWYWRrSXNSVUZCUnl4SlFVTlNRU3hGUVVGSExFbEJRVWtzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZITlVKQkxFVkJRVWNzVFVGQlRTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVVnNReXhQUVVOS0xFbEJRVXNzYlVKQlEwY3NRMEZCUTBFc1JVRkJSeXhMUVVGUExFTkJRVU5CTEVWQlFVY3NZVUZEWmtFc1JVRkJSeXhOUVVGTkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlF6bENRU3hGUVVGSExGbEJRV01zU1VGRldqWkNMRWRCUVdNM1FpeEZRVUZITEU5QlEzUkNkVUlzUlVGQlRTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVTXpRa1VzUlVGQlNTeE5RVUZOTEV0QlFVc3NRMEZCUlN4TlFVRkJSaXhGUVVGUExGbEJRV0VzUlVGQlN5eERRVUZETEVkQlJ6TkRMRXRCUVVzc1RVRkJUU3hMUVVGTExFTkJRMW9zUzBGQlRTeFpRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhQUVVOaUxFMUJRVThzUTBGQlF5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1JVRkJSeXhaUVVGaExFVkJRVXNzUTBGQlF5eERRVU0xUkN4RFFVRkRMRVZCUlV3c1MwRkJTeXhWUVVGWkxFZEJRMnBDTEU5QlEwb3NTVUZCU3l4blFrRkRSQ3hIUVVGSmRrSXNSVUZCUnl4WlFVTklMRWRCUVV0QkxFVkJRVWNzU1VGalNDeEhRVUZKUVN4RlFVRkhMRTFCUTFKNVFpeEZRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkZMRTFCUVU4c1EwRkJReXhGUVVGSExFbEJRVXNzUzBGQlRTeEpRVUZMTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhWUVVVelJHNURMRWRCUVdOVkxFVkJRVWNzU1VGQlN5eGxRVUZsTEVWQlF6RkRMRXRCUVVzc1RVRkJUU3hMUVVGTExFTkJRMW9zUzBGQlRTeFpRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhQUVVOaUxFMUJRVThzUTBGQlF5eERRVUZGTEUxQlFVRjFRaXhGUVVGUExFbEJRVXNzUzBGQlRTeEpRVUZMTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhEUVVONlJDeERRVUZETEZWQlJVazFRaXhIUVVGWlN5eEZRVUZITEVkQlFVY3NSMEZEZGtJc1EwRkJRMVlzUjBGQlkxVXNSVUZCUnl4SlFVRkxMRk5CUVZNc1JVRkJSeXhEUVVOdVF5eEpRVUZOZFVJc1JVRkJVWFJDTEVkQlFYTkNSQ3hGUVVGSExFdEJRVXNzUlVGRGRFTTRRaXhGUVVGTk9VSXNSVUZCUnl4SlFVTlVkMElzUlVGQlRYaENMRVZCUVVjc1NVRkRabmRDTEVWQlFVa3NTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkZla0lzVDBGQlQzaENMRVZCUVVjc1NVRkZWaXhQUVVGUFFTeEZRVUZITEVsQlExWXNTMEZCU3l4TlFVRk5MRXRCUVVzc1EwRkRXaXhMUVVGTkxGbEJRMDRzVDBGQlVTeExRVUZMTEU5QlEySXNUMEZCVVN4TFFVRkxMRTlCUTJJc1RVRkJUeXhEUVVGRExFTkJRVVVzVFVGQlFYVkNMRVZCUVU4c1NVRkJRVThzUlVGQlN5eEpRVUZCVGl4RFFVRkpMRU5CUVVNc1EwRkRMMElzUTBGQlF5eERRVU5NTEUxQlExTkVMRVZCUVUwc1QwRkJVeXhGUVVWd1FuWkNMRVZCUVVjc1NVRkJUVUVzUlVGQlJ5eEpRVUZKTEU5QlFVOTFRaXhGUVVGUExFdEJRVXNzVjBGQlZ5eEZRVWM1UTNaQ0xFVkJRVWNzU1VGQlNTeExRVUZMTEV0QlFVc3NWMEZCVnl4VlFUbERlRUpXTEVkQlFXTlZMRVZCUVVjc1RVRkJUeXhUUVVGVExFVkJRMnBETEU5QlFVOHNUMEZCVDBFc1JVRkJTU3hEUVVGRkxFbEJRVXNzUzBGQlRTeEpRVUZMTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhOUVVWMlJDeERRVU5FTEVsQlFVMTFRaXhGUVVGUmRFSXNSMEZCYzBKRUxFVkJRVWNzUzBGQlN5eEZRVU0xUXl4TFFVRkxMRTFCUVUwc1MwRkJTeXhEUVVOYUxFdEJRVTBzV1VGRFRpeFBRVUZSTEV0QlFVc3NUMEZEWWl4UFFVRlJMRXRCUVVzc1QwRkRZaXhOUVVGUExFTkJRVU1zUTBGQlJTeE5RVUZCZFVJc1JVRkJUeXhKUVVGTExFdEJRVTBzU1VGQlN5eERRVUZETEV0QlFVc3NWMEZCVnl4RFFVRkZMRU5CUVVNc1EwRkRla1FzUTBGQlF5eERRVU5NTEUxQmRVTkRka0lzUlVGQlJ5eEpRVWREUVN4RlFVRkhMRTlCUVZNMlFpeEZRVU5xUWtvc1JVRkJTU3hOUVVGTkxFdEJRVXNzUTBGQlJTeE5RVUZCUml4RlFVRlBMRWxCUVVzc1MwRkJUU3hKUVVGTExFTkJRVU1zUzBGQlN5eFhRVUZYTEVOQlFVVXNRMEZCUXl4RlFVVjJSR3BETEVkQlFXTlZMRVZCUVVjc1NVRkJTeXhsUVVGbExFVkJRekZETEV0QlFVc3NUVUZCVFN4TFFVRkxMRU5CUTFvc1MwRkJUU3haUVVOT0xFOUJRVkVzUzBGQlN5eFBRVU5pTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTFCUVU4c1EwRkJReXhEUVVGRkxFMUJRVThzUTBGQlF5eEZRVUZITEVsQlFVc3NTMEZCVFN4SlFVRkxMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVVVzUTBGQlF5eERRVU0zUkN4RFFVRkRMRVZCUjBSQkxFVkJRVWNzU1VGQlNTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFXUTFRaXhQUVVGUExFOUJRVTlCTEVWQlFVa3NRMEZCUlN4SlFVRkxMRXRCUVUwc1NVRkJTeXhEUVVGRExFdEJRVXNzVjBGQlZ5eERRVUZGTEVOQlFVTXNSVUZwUW1oRkxFdEJRVXNzVlVGQldTeEhRVU5xUWl4UFFVTktMRWxCUVVzc1VVRkRUQ3hKUVVGTExGTkJRMHdzU1VGQlN5eDFRa0ZEVEN4SlFVRkxMSFZDUVVGM1FpeERRVU42UWl4SlFVRk5LMElzUlVGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4SlFVRkpMRVZCUTJoRFJpeEhRVUZqTjBJc1JVRkJSeXhQUVVOcVFubENMRVZCUVVrc1RVRkJUU3hMUVVGTExFTkJRVVVzVFVGQlFVWXNSVUZCVHl4SlFVRkxVU3hGUVVGSkxFbEJRVXNzUTBGQlF5eERRVUZGTEVOQlFVTXNSVUZETVVNc1MwRkJTeXhWUVVGWkxFbEJSVm92UWl4RlFVRkhMRWxCUTFJc1MwRkJTeXhOUVVGTkxFdEJRVXNyUWl4RFFVRkZMRWRCUjJ4Q0xFOUJRVThzVDBGQlR5OUNMRVZCUVVrc1EwRkJSU3hKUVVGTEswSXNSVUZCU1N4SlFVRkxMRU5CUVVNc1EwRkJSU3hEUVVGRExFVkJRM1JETEV0QlFVc3NWVUZCV1N4SlFVVnlRaXhOUVVOS0xFTkJRMEVzVVVGQlV5eERRVU5NTEVsQlFVMVdMRVZCUVVzc1MwRkJTeXhuUWtGQlowSkpMRU5CUVVjc1JVRkRia01zUjBGQlNVb3NSVUZCU1N4RFFVTkJUeXhIUVVGbFVDeEZRVUZITEU5QlFWTXNZVUZETTBKSkxFVkJRVWtzVFVGQlRTeExRVUZMTEVOQlFVVXNUVUZCUVVZc1EwRkJUU3hEUVVGRExFVkJSVFZDTEV0QlFVc3NUVUZCVFN4TFFVRkxSaXhEUVVGRkxFVkJRMnhDTEUxQlEwb3NRMEZEU2l4RFFVTktMRU5CUTBvc1EwRkRRU3hOUVVGQlZDeEZRVUZQTEV0QlFVc3NTVUZCU1N4SFFVTm9RaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NTMEZCU3l4RlFVTnlRaXhEUVVOQkxFTkJRVU1zWTBGQlkyOUNMRVZCUVVzc1EwRXhjVUo0UWl4SlFVRkJha01zUlVFeWNVSlJMRWxCUVUxRExFVkJRVXRuUXl4RlFVRkpMRTFCUVUxQkxFVkJRVWtzVFVGQlRTeFBRVUZUTEVOQlFVTXNSVUZEZWtNc1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEZWQlEwUXNSMEZCU1doRExFVkJRVWNzVFVGQlR5eERRVU5XTEVsQlFVMHlRaXhGUVVGTkxGRkJRVk16UWl4RlFVRkhMRTFCUVZGQkxFVkJRVWNzVFVGQlRTeEpRVUZOTEU5QlEzcERhMElzUlVGQlR5eE5RVUZOTEZGQlFWRlRMRU5CUVVjc1JVRkJTVUVzUlVGQlNVRXNSVUZCU1N4UFFVRlRMRU5CUVVNc1JVRkJTU3hSUVVOd1JGUXNSMEZCUVN4WlFVRkJRU3hGUVVGTkxGRkJRVk1zVlVGRFpsTXNSMEZCUVN4TlFVRkJRU3hGUVVGTExFdEJRVXNzUzBGQlN5eGhRVVZtU3l4RlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRkxFMUJRVThzUTBGQlF5eExRVUZMTEZkQlFWY3NRMEZCUlN4RFFVRkRMRU5CUTNCRUxFMUJSVWxvUXl4RlFVRkhMRTFCUVUwc1MwRkJTeXhMUVVGTExGZEJRVmNzUlVGRGJFTXNUMEZEU2l4SlFVRkxMRkZCUTB3c1NVRkJTeXhWUVVORUxFZEJRVWxCTEVWQlFVY3NUVUZEU0dkRExFVkJRVWtzVFVGQlRTeExRVUZMTEVOQlFVVXNUVUZCVHl4RFFVRkRMRXRCUVVzc1YwRkJWeXhEUVVGRkxFTkJRVU1zVFVGRE0wTXNRMEZEUkN4SFFVRkpMRXRCUVVzc2EwSkJRV3RDYUVNc1JVRkJSeXhOUVVGUFowTXNSVUZCU1N4TlFVRk5MRVZCUVVjc1EwRkRPVU1zU1VGQlRUbENMRVZCUVU4NFFpeEZRVUZKTEUxQlFVMUJMRVZCUVVrc1RVRkJUU3hQUVVGVExFTkJRVU1zUlVGRGNrTk1MRWRCUVUwMVFpeEZRVUZCUnl4SFFVRkJMRmxCUVVGQkxFVkJRVTBzVVVGQlRpeFpRVUZCU0N4RlFVRmhMRWxCUTNwQ0xFZEJRVWtzVFVGQlRTeFJRVUZSTkVJc1EwRkJSeXhGUVVGSExFTkJRM0JDTEUxQlFVMHNWVUZCVlN4TFFVRkxMRTFCUVUxQkxFVkJRVXN6UWl4RlFVRkhMRXRCUVVzc1JVRkRlRU15UWl4RlFVRkpMRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJRM3BDU3l4RlFVRkpMRTFCUVUwc1NVRkJTU3hGUVVOa0xFMUJRMG9zUTBGRFNpeERRVU5CYUVNc1JVRkJSeXhOUVVGTkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVOQlEyeERMRU5CUTBFc1QwRkRTaXhKUVVGTExGTkJRMHdzU1VGQlN5eE5RVU5FTEVkQlFVbEJMRVZCUVVjc1QwRkJVeXhMUVVGTExGRkJRVlZuUXl4RlFVRkpMRTlCUXk5Q0xFMUJRMHBvUXl4RlFVRkhMRTFCUVUwc1MwRkJTeXhMUVVGTExGZEJRVmNzUlVGRE9VSXNUMEZEU2l4SlFVRkxMR1ZCUTBRc1IwRkJTU3hMUVVGTExGTkJRVmRuUXl4RlFVRkpMRTlCUTNCQ0xFMUJRMEZvUXl4RlFVRkhMRTlCUVZOV0xFZEJRV05WTEVWQlFVY3NUVUZCVHl4alFVRmpMRVZCUTJ4RVowTXNSVUZCU1N4TlFVRk5MRXRCUVVzc1EwRkJSU3hOUVVGUExFTkJRVU1zUzBGQlN5eFhRVUZYTEVOQlFVVXNRMEZCUXl4RlFVVTFRMmhETEVWQlFVY3NUVUZCVFN4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVOc1F5eE5RVU5TTEVOQlEwRXNSMEZCU1N4TFFVRkxMRTlCUVZOblF5eEZRVUZKTEU5QlFWRXNRMEZETVVJc1NVRkJUVmdzUlVGQlN5eExRVUZMTEdkQ1FVRm5RbGNzUTBGQlJ5eEZRVU51UXl4SFFVRkpXQ3hGUVVGSkxFTkJRMG9zUzBGQlN5eE5RVUZOTEV0QlFVdEJMRU5CUVVVc1JVRkRiRUlzVFVGRFNpeERRVU5LTEVOQlEwRXNUVUZCUVZRc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRGFFSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExFdEJRVXNzUlVGRGNrSXNRMEZEUVN4RFFVRkRMR1ZCUVdWUUxFVkJRVWtzUTBGRGFFSXNTVUZCVFV3c1JVRkJTMHNzUlVGQlJ5eE5RVUZOUVN4RlFVRkhMRTFCUVUwc1QwRkJVeXhEUVVGRExFVkJRM1pETEVkQlFVa3NTMEZCU3l4UFFVRlRMR2xDUVVGclFpeERRVU5vUXl4SlFVRkpWU3hGUVVOS0xFZEJRMGtzVFVGQlFVZ3NSVUZCVHl4TFFVRkxMRWxCUVVrc1IwRkRhRUpITEVWQlFVMHNTMEZCU3l4TFFVRkxMRU5CUVVNc1VVRkRXa0VzUjBGQlQwRXNSVUZCU1N4UFFVRlRMR3RDUVVOcVF5eFRRVU5UVml4RlFVRkhMRWxCUVVrc1UwRkJWeXhGUVVGSExFTkJRekZDTEU5QlFWRXNTMEZCU3l4TFFVRk5MRU5CUTJZc1NVRkJTeXhSUVVOTUxFbEJRVXNzYlVKQlEwY3NRMEZCUTB3c1IwRkJUVUVzUlVGQlJ5eEpRVU5XU3l4RlFVRkhMRTFCUVUwc1MwRkJTeXhEUVVGRkxFMUJRVThzUTBGQlF5eExRVUZMTEZkQlFWY3NRMEZCUlN4RFFVRkRMRVZCUlRORFRDeEZRVUZITEUxQlFVMHNTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkRiRU1zVDBGRFNpeEpRVUZMTEdkQ1FVTkhMRU5CUVVOQkxFZEJRVTFCTEVWQlFVY3NUVUZEVmtzc1JVRkJSeXhOUVVGTkxFdEJRVXNzUTBGQlJTeE5RVUZQTEVOQlFVTXNSVUZCUnl4SlFVRkxMRXRCUVUwc1NVRkJTeXhEUVVGRExFdEJRVXNzVjBGQlZ5eERRVUZGTEVOQlFVTXNSVUZETVVSTUxFVkJRVWNzU1VGRFVrRXNSVUZCUnl4SlFVRkpMRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJSVFZDTEU5QlFVOHNUMEZCVDBFc1JVRkJTU3hEUVVGRkxFbEJRVXNzUzBGQlRTeEpRVUZMTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhGUVVNMVJDeFBRVU5LTEVsQlFVc3NVVUZEVEN4SlFVRkxMRlZCUTB3c1NVRkJTeXhWUVVOTUxFbEJRVXNzVTBGRFRDeEpRVUZMTEUxQlEwY3NRMEZCUTBFc1IwRkJUVUVzUlVGQlJ5eE5RVU5XU3l4RlFVRkhMRTFCUVUwc1MwRkJTeXhEUVVGRkxFMUJRVThzUTBGQlF5eExRVUZMTEZkQlFWY3NRMEZCUlN4RFFVRkRMRVZCUTNSRFRDeEZRVUZITEVsQlExSkJMRVZCUVVjc1NVRkJTU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVVUxUWtFc1JVRkJSeXhOUVVGTkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlEyeERMRTlCUTBvc1NVRkJTeXhSUVVOTUxFbEJRVXNzVTBGRFRDeEpRVUZMTEhWQ1FVTk1MRWxCUVVzc2RVSkJRWGRDTEVOQlEzcENMRWxCUVUwclFpeEZRVUZMTEV0QlFVc3NWMEZCVnl4TFFVRkxMRWxCUVVrc1JVRkRhRU1zUTBGQlF5OUNMRWRCUVUxQkxFVkJRVWNzVFVGRFZrc3NSVUZCUnl4TlFVRk5MRXRCUVVzc1EwRkJSU3hOUVVGUExFTkJRVU1zUlVGQlJ5eEpRVUZMTUVJc1JVRkJTU3hKUVVGTExFTkJRVU1zUTBGQlJTeERRVUZETEVWQlEzaERMMElzUlVGQlJ5eEpRVU5TTEV0QlFVc3NUVUZCVFN4TFFVRkxLMElzUTBGQlJTeEZRVVZzUWl4UFFVRlBMRTlCUVU4dlFpeEZRVUZKTEVOQlFVVXNTVUZCU3l0Q0xFVkJRVWtzU1VGQlN5eERRVUZETEVOQlFVVXNRMEZCUXl4RlFVTXhReXhOUVVOS0xFTkJRMEVzU1VGQlN5eGxRVU5NTEVsQlFVc3NaVUZEUkRGQ0xFVkJRVWNzU1VGQlNTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVTTFRaXhOUVVOU0xFTkJRMEVzU1VGQlRXZENMRVZCUVVzc1MwRkJTeXhuUWtGQlowSm9RaXhEUVVGRkxFVkJSVGxDWjBJc1JVRkRRU3hMUVVGTExFMUJRVTBzUzBGQlMwRXNRMEZCUlN4SFFVVnNRaXhOUVVGQlZDeEZRVUZQTEV0QlFVc3NTVUZCU1N4SFFVTm9RaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NTMEZCU3l4SFFVVjZRaXhMUVVOTExFTkJRMFFzU1VGQlRXUXNSVUZCVXl4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVNeFFpeEhRVUZKUVN4RlFVRlBMRTlCUVZNc1kwRkRaQ3hMUVVGTExFOUJRVk1zYVVKQlFXMUNRU3hGUVVGUExGTkJRVmRQTEVWQlFVY3NVVUZEYmtRc1MwRkJTeXhQUVVGVExGZEJRMWdzUTBGQlExQXNSVUZCVHl4TlFVRk5RU3hGUVVGUExFMUJRVTBzVDBGQlV5eERRVUZETEVWQlFVVXNTMEZETDBNc1RVRkJRV01zUlVGQlR5eExRVUZMTEVsQlFVa3NSMEZEYUVJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEV0QlFVc3NWMEZGV2l4TFFVRkxMRTlCUVZNc2FVSkJRMjVDWkN4RlFVRlBMRTlCUVZNc2EwSkJRVzFDTEVOQlEyNURMRWxCUVUxSkxFVkJRVTlNTEVkQlFXRkRMRU5CUVUwc1JVRkRNVUo1UWl4RlFVRlJkRUlzUjBGQmMwSkRMRU5CUVVrc1JVRkRlRU5GTEVkQlFXZENReXhEUVVGRkxFVkJRMnhDTEVsQlFVMXRRaXhGUVVGTmJrSXNSVUZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSMEVzUlVGQlJ5eEpRVUZKTEUxQlFVMHNSVUZETVVOdFFpeEZRVUZKTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUTNwQ0xFbEJRVTFETEVWQlFVMHNRMEZEVWl4TFFVRk5MRmxCUTA0c1QwRkJVWEJDTEVWQlFVY3NUMEZEV0N4UFFVRlJRU3hGUVVGSExFOUJRMWdzVFVGQlR5eERRVUZETEVOQlFVVXNUVUZCUVd0Q0xFVkJRVThzU1VGQlMyeENMRVZCUVVrc1NVRkJRVzFDTEVOQlFVa3NRMEZCUXl4RFFVTnVReXhGUVVOQkxFdEJRVXNzVlVGQldTeEhRVU5xUWl4TFFVRkxMRTFCUVUwc1MwRkJTeXhOUVVGTkxFOUJRVk1zUTBGQlF5eEZRVUZKUXl4RFFVTjRReXhOUVVWSkxFMUJRVUZpTEVWQlFVOHNTMEZCU3l4UlFVRlJVQ3hEUVVGRkxFVkJSVGxDTEVOQlEwb3NRMEZEUVN4WFFVRlhZaXhGUVVGTkxFTkJRMklzUjBGQlNTeExRVUZMTEZWQlFWY3NRMEZEYUVJc1NVRkJTV3RETEVWQlFVc3NTMEZCU3l4UFFVRlBMRkZCUVZFN1FVRkJRU3hEUVVGSkxFVkJRVWtzUlVGRGNrTXNTMEZCVDBFc1NVRkJUeXhIUVVOV0xFdEJRVXNzVlVGQlZTeExRVUZMTEU5QlFWTkJMRU5CUVVVc1JVRkRMMEpCTEVWQlFVc3NTMEZCU3l4UFFVRlBMRkZCUVZFN1FVRkJRU3hGUVVGTlFTeERRVUZGTEVWQlFVa3NRMEZGTjBNc1EwRkRRU3hOUVVGUExFTkJRMGdzUzBGQlFXeERMRVZCUTBFc1QwRkJVU3hMUVVGTExFOUJRMklzVDBGQlVTeExRVUZMTEU5QlEySXNUMEZCVVN4TFFVRkxMRTFCUTJwQ0xFTkJRMG9zUTBGRFFTeG5Ra0ZCWjBKTkxFVkJRVkVzUTBGRGNFSXNUMEZCVVN4TFFVRkxMRXRCUVUwc1EwRkRaaXhKUVVGTExGRkJRMHdzU1VGQlN5eFRRVU5NTEVsQlFVc3NkVUpCUTB3c1NVRkJTeXgxUWtGRFJDeFBRVUZQTEV0QlFVc3NWMEZCVnl4TFFVRkxMRWxCUVVrc1JVRkRjRU1zU1VGQlN5eHpRa0ZEUkN4TlFVRlBMRU5CUTBnc1MwRkJUU3hsUVVOT0xFOUJRVkVzUzBGQlN5eFBRVU5pTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTFCUVU4c1EwRkJReXhMUVVGTExGZEJRVmNzUlVGRGVFSXNUMEZCVVN4RlFVTmFMRVZCUTBvc1NVRkJTeXhwUWtGRFRDeEpRVUZMTEdsQ1FVTkVMRTFCUVU4c1EwRkRTQ3hMUVVGTkxHdENRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhQUVVOaUxFMUJRVThzUzBGQlN5eFpRVU5hTEUxQlFVOHNRMEZCUXl4RlFVTlNMRWxCUVVzc1EwRkJReXhEUVVOV0xFVkJRMG9zU1VGQlN5eGxRVU5FTEUxQlFVOHNRMEZEU0N4TFFVRk5MRmxCUTA0c1QwRkJVU3hMUVVGTExFOUJRMklzVDBGQlVTeExRVUZMTEU5QlEySXNUVUZCVHl4RFFVRkRMRU5CUVVVc1RVRkJUeXhEUVVGRExFdEJRVXNzVjBGQlZ5eERRVUZGTEVOQlFVTXNRMEZEZWtNc1JVRkRTaXhKUVVGTExHMUNRVUZ2UWl4RFFVTnlRaXhMUVVGTExGVkJRVmtzUjBGRGFrSXNTVUZCVFVrc1JVRkJUMHdzUjBGQllVTXNRMEZCVFN4RlFVTXhRbmxDTEVWQlFWRjBRaXhIUVVGelFrTXNRMEZCU1N4RlFVTjRReXhQUVVGQmNVSXNSVUZCVFN4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVOd1FpeERRVU5JTEV0QlFVMHNXVUZEVGl4UFFVRlJMRXRCUVVzc1QwRkRZaXhQUVVGUkxFdEJRVXNzVDBGRFlpeE5RVUZQTEVOQlFVTXNRMEZCUlN4TlFVRkJRU3hGUVVGUExGbEJRV0VzUlVGQlN5eERRVUZETEVOQlEzaERMRU5CUTBvc1EwRkRRU3hKUVVGTExHZENRVUZwUWl4RFFVTnNRaXhMUVVGTExGVkJRVmtzUjBGRGFrSXNTVUZCVFhKQ0xFVkJRVTlNTEVkQlFXRkRMRU5CUVUwc1JVRkRNVUo1UWl4RlFVRlJkRUlzUjBGQmMwSkRMRU5CUVVrc1JVRkRlRU1zVFVGQlR5eERRVU5JTEV0QlFVMHNXVUZEVGl4UFFVRlJMRXRCUVVzc1QwRkRZaXhQUVVGUkxFdEJRVXNzVDBGRFlpeE5RVUZQTEVOQlFVTXNRMEZCUlN4TlFVRkJjVUlzUlVGQlR5eEpRVUZMTEV0QlFVMHNTVUZCU3l4RFFVRkRMRXRCUVVzc1YwRkJWeXhEUVVGRkxFTkJRVU1zUTBGRGVrUXNRMEZEU2l4RFFVTktMRU5CUTBFc1QwRkJUeXhKUVVOWUxFTkJRMEVzYTBKQlFXdENRU3hGUVVGUFZTeEZRVUZSTEVOQlJ6ZENMRTlCUmtrc1MwRkJTeXhQUVVGVExGZEJSV1FzUzBGQlN5eFJRVUZWUVN4RlFVTlNMRWRCUTBwV0xFVkJRVTBzVFVGQlRVb3NSMEZCVFVFc1JVRkJSeXhQUVVGVExGZEJRV0ZCTEVWQlFVY3NUMEZCVXl4UFFVRlBMRU5CUTNwRkxFTkJRMEVzUTBGQlF5eFpRVUZaWlN4RlFVRlJMRU5CUTJJc1MwRkJTeXhQUVVGVExHRkJRMVpCTEVWQlFVOHNTVUZEVUVFc1JVRkJUeXhKUVVGSkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlJXaERRU3hGUVVGUExFbEJRVTBzUTBGQlF5eExRVUZMTEZkQlFWY3NSVUZET1VJc1MwRkJTeXhQUVVGVExGbEJRMlFzVFVGQlFYUkNMRVZCUVU4c1MwRkJTeXhKUVVGSkxFbEJSVFZDTEVOQlEwRXNRMEZCUXl4UlFVRlJhRUlzUlVGQlR5eERRVU5hTEU5QlFWRXNTMEZCU3l4TFFVRk5MRU5CUTJZc1NVRkJTeXhSUVVOTUxFbEJRVXNzV1VGRFRDeEpRVUZMTEZWQlEwd3NTVUZCU3l4bFFVTk1MRWxCUVVzc1pVRkRUQ3hKUVVGTExHZENRVU5FTEUxQlFVRm5RaXhGUVVGUExFdEJRVXNzU1VGQlNTeEhRVU5vUWl4TlFVRkJRU3hGUVVGUExFdEJRVXNzUzBGQlN5eEhRVU5xUWl4TlFVTktMRWxCUVVzc1ZVRkRSQ3hMUVVGTExGVkJRVmtzUjBGRmNrSXNTVUZCU3l4UlFVTk1MRWxCUVVzc1ZVRkRUQ3hSUVVWUmFFSXNSVUZCVFN4SlFVTk9RU3hGUVVGTkxFbEJRVWtzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZGTDBKQkxFVkJRVTBzU1VGQlRTeERRVUZETEV0QlFVc3NWMEZCVnl4RlFVTTNRaXhMUVVGTExFOUJRVk1zV1VGRFpDeE5RVUZCWjBJc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRE5VSXNRMEZEU2l4RFFVTktMRVZETHpaQ1FTeFRRVUZUZFVJc1IwRkJZVU1zUlVGQlV5eERRVU16UWl4SlFVRk5ReXhGUVVGbFJDeEZRVUZSTEdWQlFXbENMRWRCUlRsRExFMUJRVThzUTBGQlJTeFpRVVJYUVN4RlFVRlJMR0ZCUVdkQ1F5eEhRVUZuUWl4SlFVRkpReXhKUVVGclFpeExRVU0xUkN4aFFVRkJSQ3hEUVVGaExFTkJRM1pETEVOQmVVSkJMRk5CUVZORkxFZEJRV05ETEVWQlFWRkRMRVZCUVZVc1EwRkJReXhGUVVGSExFTkJRM3BETEVkQlFVMHNRMEZCUlN4WlFVRkJReXhGUVVGaExHRkJRVUZETEVOQlFXRXNSVUZCU1VNc1IwRkJZVWdzUTBGQlR5eEZRVU53UkVrc1JVRkJVeXhKUVVGSlF5eEhRVUZQU2l4SFFVRkJMRmxCUVVGQkxFVkJRV0VzVlVGQlZTeEZRVU16UTBzc1JVRkJWeXhKUVVGSlF5eEhRVUZUVUN4RFFVRlBMRVZCUldwRFVTeEZRVUZOTEV0QlExWXNVVUZCVjBNc1MwRkJVVWdzUlVGQlV5eFJRVUZSUml4RlFVRlBMRTFCUVUxTUxFTkJRVTBzUlVGQlJ5eEhRVUZOUVN4RlFVRlBMRTFCUVUwc1JVRkRla1VzUjBGQlNTeERRVUZEVXl4RlFVTkVRU3hGUVVGTlF5eFZRVU5FUkN4RlFVRkpMRkZCUVZFc1YwRkJZU3hUUVVGVkxFTkJRM2hEUVN4RlFVRkpMRTlCUVU4c1MwRkJTeXhKUVVGSlJTeEhRVUZsUkN4RlFVRkxMRTFCUVUwc1RVRkJUU3hGUVVGSExFTkJRVU1zUlVGQlJ5eG5Ra0ZCYVVJc2VVVkJRWGxGTEVOQlFVTXNSVUZEZEVvc1MwRkRTaXhEUVVWS0xFOUJRVWxRTEVkQlFXZENSQ3hKUVVOb1FrOHNSVUZCU1N4UFFVRlBMRkZCUVZGSExFZEJRV05hTEVWQlFWRkZMRU5CUVZjc1EwRkJReXhGUVVOeVJFOHNSVUZCU1N4VFFVRlRMRkZCUVZGSExFZEJRV05hTEVWQlFWRkZMRU5CUVZjc1EwRkJReXhIUVVWd1JFOHNRMEZEV0N4RFFVTkJMRk5CUVZOSkxFZEJRVTFETEVWQlFVdERMRVZCUVZOa0xFVkJRVk1zUTBGRGJFTXNTVUZCU1dVc1JVRkRRU3hQUVVGUFJDeEhRVUZaTEZkQlEyNUNReXhGUVVGWFJDeEZRVVZPWkN4SlFVRlpMRkZCUVdGakxFZEJRVmNzVDBGQlQwRXNSMEZCV1N4WFFVTTFSR1FzUlVGQlZXTXNSMEZGWkN4SlFVRk5UaXhGUVVGTlZpeEhRVUZqWlN4RlFVRkxZaXhEUVVGUExFVkJRM1JETEVkQlFVa3NRMEZCUTFFc1JVRkRSQ3hQUVVGUExFdEJSVmdzUjBGRVFVRXNSVUZCU1N4VFFVRlRMRkZCUVZGUkxFZEJRVmRETEVkQlFVdFVMRVZCUVVrc1VVRkJVU3hUUVVGVlVTeERRVUZQTEVOQlFVTXNSVUZETDBSU0xFVkJRVWtzVDBGQlR5eFBRVUZUTEVWQlFVY3NRMEZEZGtJc1IwRkJTVUVzUlVGQlNTeFJRVUZSTEZkQlFXRXNVMEZEZWtJc1RVRkJUVUVzUlVGQlNTeFBRVUZQTEVOQlFVTXNSVUZGYkVKQkxFVkJRVWtzVDBGQlV5eERRVUZETEVOQlEzUkNMRU5CUTBFc1QwRkJUMEVzUlVGQlNTeExRVUZMTEU5QlFVOHNUMEZCVHl4RFFVRkZMRkZCUVZOUExFTkJRVk1zUlVGQlIyWXNRMEZCVHl4RFFVRkRMRU5CUTJwRkxFTkRlRVZCTEVsQlFVRnJRaXhIUVVFclFpeFRRMFl2UWl4SlFVRkJReXhGUVVGdFFpeFRRMnRHV2l4SlFVRlZReXhQUVVGV0xFTkJZMVZCTEVWQlFVRXNhMEpCUVhORExFTkJReTlETEcxQ1FVRnZRaXhKUVVWd1FpeFhRVUZaTEdkQ1FVTmFMR1ZCUVdkQ0xIZENRVU53UWl4RlFVZFBMRk5CUVZORExFVkJRMXBETEVWQlEwRkRMRVZCUVRSQ1NDeEZRVUZCTEd0Q1FVTTFRa2tzUlVGQmNVSXNSMEZEWml4RFFVTk9MRWxCUVVsRExFVkJRVlZETEVWQlFWVktMRU5CUVVzc1JVRkROMElzUjBGQlNTeERRVUZEUnl4RlFVRlRMRTlCUVU5R0xFVkJRVkVzYlVKQlJUZENMRTlCUVZGRkxFVkJRVkVzUzBGQlRTeERRVU5zUWl4SlFVRkxMRTlCUTBRc1QwRkJUMFlzUlVGQlVTeHRRa0ZEYmtJc1NVRkJTeXhUUVVORUxFOUJRVTlGTEVWQlFWRXNUVUZEYmtJc1NVRkJTeXhUUVVOTUxFbEJRVXNzVlVGRFJDeE5RVUZQTEVkQlFVdEJMRVZCUVZFc1RVRkRlRUlzU1VGQlN5eFBRVU5FTEU5QlFVOUJMRVZCUVZFc1RVRkJUU3hUUVVGVExFVkJRMnhETEVsQlFVc3NWMEZEUkN4TlFVRlBMR0ZCUTFnc1NVRkJTeXhSUVVORUxFbEJRVWxGTEVWQlFWTXNSMEZEWWl4UFFVRkpTQ3hKUVVGWFJ5eEhRVUZWTEV0QlEzcENRU3hIUVVGVlJpeEZRVUZSTEUxQlFVMHNTVUZCUzBjc1IwRkJUVkFzUlVGQlUwOHNSVUZCUjB3c1JVRkJVeXhGUVVGSkxFTkJRVU1zUlVGQlJTeExRVUZMTEVsQlFVa3NSVUZEY0VWRExFbEJRVmRITEVkQlFWVXNTMEZEYkVKQkxFVkJRMWdzU1VGQlN5eFRRVU5FTEUxQlEwa3NTMEZEUVN4UFFVRlBMRkZCUVZGR0xFVkJRVkVzUzBGQlN5eEZRVU4yUWl4SlFVRkxTU3hIUVVGTlFTeEZRVUZGTEVOQlFVTXNSVUZCU1N4TFFVRlBVaXhGUVVGVFVTeEZRVUZGTEVOQlFVTXNSVUZCUjA0c1JVRkJVeXhGUVVGSkxFTkJRVU1zUlVGRGRFUXNTMEZCU3l4SlFVRkpMRVZCUTJRc1MwRkZVaXhKUVVGTExFOUJRMFFzVDBGQlQwOHNSMEZCYTBKTUxFVkJRVkVzVFVGQlQwWXNSVUZCVVN4WFFVRlpRU3hGUVVGUkxHTkJRV01zUlVGRGRFWXNTVUZCU3l4WFFVTkVMRTlCUVU5UkxFZEJRWE5DVGl4RlFVRlJMRXRCUVVzc1EwRkRiRVFzUTBGRFNpeERRWFpEVDB3c1JVRkJVeXhUUVVGQlF5eEZRVEJEVkN4VFFVRlRTeXhGUVVGVlRTeEZRVUV3UXl4RFFVTm9SU3hQUVVGSlF5eEZRVUZQUkN4RFFVRkhMRVZCUVZVc1EwRkJSU3hMUVVGTkxFOUJRVkVzVFVGQlQwRXNRMEZCU1N4RlFVTXhRMFVzUlVGQlUwWXNRMEZCUnl4RlFVRlZMRU5CUVVVc1MwRkJUU3hUUVVGVkxFMUJRVTlCTEVOQlFVa3NSVUZEYmtSSExFVkJRVk5JTEVOQlFVY3NSVUZCVlN4RFFVRkZMRXRCUVUwc1UwRkJWU3hOUVVGUFFTeERRVUZKTEVWQlEyNUVTU3hGUVVGVlNpeERRVUZITEVWQlFWVXNRMEZCUlN4TFFVRk5MRlZCUVZjc1RVRkJUMEVzUTBGQlNTeEZRVU55UkVzc1JVRkJWMHdzUTBGQlJ5eEZRVUZWTEVOQlFVVXNTMEZCVFN4WFFVRlpMRTFCUVU5QkxFTkJRVWtzUlVGRGRrUk5MRVZCUVU5T0xFTkJRVWNzUlVGQlZTeERRVUZGTEV0QlFVMHNUMEZCVVN4TlFVRlBRU3hEUVVGSkxFVkJReTlEVHl4RlFVRlJVQ3hEUVVGSExFVkJRVlVzUTBGQlJTeExRVUZOTEZGQlFWTXNUVUZCVDBFc1EwRkJTU3hGUVVOcVJGRXNSVUZCVDFJc1EwRkJSeXhGUVVGVkxFTkJRVVVzUzBGQlRTeFBRVUZSTEUxQlFVOUJMRU5CUVVrc1JVRkRMME5UTEVWQlFWZFVMRU5CUVVjc1JVRkJWU3hEUVVGRkxFdEJRVTBzVjBGQldTeE5RVUZQUVN4RFFVRkpMRVZCUTNaRVZTeEZRVUZUVml4RFFVRkhMRVZCUVZVc1EwRkJSU3hMUVVGTkxGTkJRVlVzVFVGQlQwRXNRMEZCU1N4RlFVTjJSQ3hOUVVOVUxFTkJXazlhTEVWQlFWTXNWVUZCUVUwc1JVRmxWQ3hUUVVGVGFVSXNSVUZCVlZnc1JVRkJZMWtzUlVGQmQwTXNRMEZETlVVc1IwRkJTVVlzUlVGQlUxWXNRMEZCUnl4RlFVRkhMRU5CUTJZc1NVRkJTVXdzUlVGQmNVSXNRMEZCUXl4RlFVTXhRaXhQUVVGVExFTkJRVU5yUWl4RlFVRkxReXhEUVVGTExFbEJRVXNzVDBGQlR5eFJRVUZSWkN4RFFVRkhMRVZCUVVkTUxFVkJRVTlyUWl4RFFVRkhMRVZCUVVsR0xFVkJRVlZITEVWQlFVOUdMRU5CUVVrc1JVRkRha1lzVDBGQlQycENMRU5CUTFnc1UwRkJWMWtzUlVGQlVWQXNRMEZCUnl4RlFVRkhMRU5CUTNKQ0xFbEJRVWxNTEVWQlFXOUNMRU5CUVVNc1JVRkRla0lzVVVGQlUyMUNMRXRCUVZOa0xFVkJRVXRNTEVWQlFVOHNTMEZCUzJkQ0xFVkJRVlZITEVWQlFVOUdMRU5CUVVrc1EwRkJReXhGUVVONlJDeFBRVUZQYWtJc1EwRkRXQ3hMUVVOSkxGRkJRVTlwUWl4RlFVRkxXaXhEUVVGSExFTkJSWFpDTEVOQldrOWFMRVZCUVZNc1ZVRkJRWFZDTEVWQlpWUXNVMEZCVTBrc1JVRkJUME1zUlVGQk5FSkRMRVZCUVRaQ0xFTkJRelZGTEU5QlFVOURMRVZCUVZGR0xFVkJRVTlETEVOQlFVMHNSMEZCU3l4RFFVTnlReXhEUVVaUE4wSXNSVUZCVXl4UFFVRkJNa0lzUlVGTFZDeFRRVUZUUnl4RlFVTmFReXhGUVVOQlF5eEZRVU5CUXl4RlFVTk5MRU5CTTB4a0xFbEJRVUZETEVWQlFVRkRMRVZCYTAxUkxFZEJURWxLTEVsQlFWTkRMRWxCUjFSRUxFbEJRVk1zVTBGQlYwRXNSVUZCVHl4TlFVTXpRa01zU1VGQlV5eFRRVUZYUVN4RlFVRlBMRTFCUXpOQ1JDeEpRVUZUTEUxQlFWRkRMRWxCUVZNc1RVRkJUU3hOUVVGUExFZEJRM1JETEVkQlFVbEVMRWxCUVZNc1MwRkJUU3hOUVVGUExFZEJRekZDTEVkQlFVbERMRWxCUVZNc1MwRkJUU3hOUVVGUExFZEJSeTlDTEVsQlFVbEpMRVZCUVZFNVFpeEZRVUZWZVVJc1EwRkJTU3hGUVVOMFFrMHNSVUZCVVM5Q0xFVkJRVlV3UWl4RFFVRkpMRVZCUlRGQ0xFZEJRVWxKTEVsQlFWVXNVVUZCWVVNc1NVRkJWU3hQUVVGWExFMUJRVThzUjBGRGJFUXNSMEZCU1VRc1NVRkJWU3hQUVVGWExFMUJRVThzUjBGRGFFTXNSMEZCU1VNc1NVRkJWU3hQUVVGWExFMUJRVThzUjBGSGNrTXNSMEZCU1VRc1JVRkJUU3hOUVVGUlF5eEZRVUZOTEV0QlFVMHNUMEZCVDBRc1JVRkJUU3hMUVVGTExHTkJRV05ETEVWQlFVMHNTVUZCU1N4RlFVTjRSU3hIUVVGSlJDeEZRVUZOTEZGQlFWVkRMRVZCUVUwc1RVRkJUeXhOUVVGUExFZEJSWGhETEU5QlFWRkVMRVZCUVUwc1MwRkJUU3hEUVVOb1FpeEpRVUZMTEZOQlEwUXNUMEZCVDBFc1JVRkJUU3hOUVVGTkxHTkJRV05ETEVWQlFVMHNTMEZCWlN4RlFVTXhSQ3hKUVVGTExGTkJRMFFzVDBGQlNVUXNSVUZCVFN4TlFVRlRReXhGUVVGTkxFMUJRWGxDTEVkQlEzcERSQ3hGUVVGTkxFOUJRVlZETEVWQlFVMHNUVUZCZVVJc1JVRkRha1FzUlVGRFdDeEpRVUZMTEU5QlEwUXNUVUZCVHl4SFFVTllMRWxCUVVzc1ZVRkRSQ3hQUVVGSlJDeEZRVUZOTEU5QlFWTkRMRVZCUVUwc1RVRkJZeXhGUVVNelFrUXNSVUZCVFN4TlFVRlJMRVZCUVVrc1IwRkRiRU1zU1VGQlN5eFBRVU5FTEVsQlFVbEZMRVZCUVZGR0xFVkJRVTBzVFVGRFpFY3NSMEZCVVVZc1JVRkJUU3hOUVVOa1J5eEhRVUZaVUN4SFFVRkJMRXRCUVVGQkxFVkJRVzlDVVN4SlFVRmpRU3hIUVVjNVEwTXNSVUZCWTBZc1IwRkJWVVlzUlVGQlRTeEpRVUZKTEVWQlFVVXNZMEZCWTBVc1IwRkJWVVFzUjBGQlRTeEpRVUZKTEVOQlFVTXNSVUZETTBVc1IwRkJTVWNzUjBGQlpTeEZRVUZITEU5QlFVOUJMRVZCUnpkQ0xFbEJRVWxETEVWQlFXTk1MRVZCUVUwc1MwRkJTeXhqUVVGalF5eEhRVUZOTEVsQlFVa3NSVUZEY2tRc1QwRkJTVWtzUjBGQlpTeEZRVUZWUVN4RlFVZDZRa3dzUlVGQlRTeFRRVUZYTEVOQlFVTkRMRWRCUVUwc1VVRkJaMElzUlVGRGVFTXNRMEZCUTBRc1JVRkJUU3hUUVVGWFF5eEhRVUZOTEZGQlFXZENMRWRCUTNoRExFTkJRVU5FTEVWQlFVMHNVMEZCVnl4RFFVRkRReXhIUVVGTkxGRkJRV2RDTEVsQlIzSkRUQ3hGUVVGQlNTeEZRVUZOTEZWQlFVNHNTMEZCUVVvc1JVRkJhVUlzU1VGQlNTeGxRVUZqUXl4RlFVRkJTU3hIUVVGTkxGVkJRVTRzUzBGQlFVb3NSVUZCYVVJc1JVRkJSU3hGUVVOc1JTeEpRVUZMTEU5QlEwUXNUMEZCVDBNc1JVRkJUU3hOUVVGVFF5eEZRVUZOTEUxQlEzUkNMRWRCUTBGRUxFVkJRVTBzVFVGQlRTeFBRVUZQUXl4RlFVRk5MRXRCUVdsQ0xFVkJRekZETEVWQlEwRXNSVUZEVml4SlFVRkxMRmRCUTBRc1QwRkJUMFFzUlVGQlRTeE5RVUZUUXl4RlFVRk5MRTFCUTNSQ0xFZEJRMEZFTEVWQlFVMHNUVUZCVFN4UFFVRlBReXhGUVVGTkxFdEJRV2xDTEVWQlF6RkRMRVZCUTBFc1JVRkRWaXhKUVVGTExGRkJRMFFzU1VGQlNVOHNSVUZCUzFJc1JVRkJUU3hOUVVOWVV5eEhRVUZMVWl4RlFVRk5MRTFCUTJZc1VVRkJVMU1zUjBGQlVTeEZRVUZIUVN4SFFVRlJMRXRCUVVzc1NVRkJTVVlzUlVGQlJ5eFBRVUZSUXl4SFFVRkhMRTFCUVUwc1JVRkJSME1zUzBGQlV5eERRVU5xUlN4SlFVRkpReXhIUVVGUGFrSXNSVUZCVVdNc1JVRkJSMFVzUlVGQlN5eEZRVUZIUkN4SFFVRkhReXhGUVVGTExFTkJRVU1zUlVGRGRrTXNSMEZCU1VNc1NVRkJVU3hGUVVGSExFOUJRVTlCTEVWQlF6RkNMRU5CUTBFc1QwRkJUMGdzUlVGQlJ5eFBRVUZUUXl4SFFVRkhMRTlCUXpGQ0xFbEJRVXNzVTBGRFJDeEpRVUZKUnl4SFFVRkxXaXhGUVVGTkxFMUJRMWhoTEVkQlFVdGFMRVZCUVUwc1RVRkRXR0VzUjBGQlN5eE5RVUZOTEV0QlFVc3NUMEZCVHl4TFFVRkxSaXhGUVVGRkxFTkJRVU1zUlVGREwwSkhMRWRCUVVzc1RVRkJUU3hMUVVGTExFOUJRVThzUzBGQlMwWXNSVUZCUlN4RFFVRkRMRVZCUTI1RFF5eEhRVUZITEV0QlFVc3NSVUZEVWtNc1IwRkJSeXhMUVVGTExFVkJSVklzU1VGQlNVTXNSMEZCWVhSQ0xFVkJRVkZ2UWl4SFFVRkpReXhGUVVGRkxFVkJReTlDTEVkQlFVbERMRWxCUVdNc1JVRkJSeXhQUVVGUFFTeEhRVVUxUWl4UlFVRlRNMElzVFVGQlQzbENMRWRCUVVrc1EwRkRhRUlzU1VGQlNVZ3NSMEZCVDJwQ0xFVkJRVkZyUWl4SFFVRkhka0lzUlVGQlJ5eEZRVUZIZDBJc1IwRkJSM2hDTEVWQlFVY3NRMEZCUXl4RlFVTnVReXhIUVVGSmMwSXNTVUZCVVN4RlFVRkhMRTlCUVU5QkxFVkJRekZDTEVOQlJVRXNUVUZCVHl4SFFVTllMRWxCUVVzc1YwRkRSQ3hOUVVGUExFVkJRMllzUTBGRFNpeERRVzVIVHk5RExFVkJRVk1zVVVGQlFUaENMRVZCYzBkVUxGTkJRVk4xUWl4RlFVRlBla01zUlVGQmJVTXNRMEUzVWpsRUxFbEJRVUZ6UWl4RlFUaFNVU3hQUVVGUFFTeEZRVUZCTlVJc1JVRkJWVTBzUTBGQlJ5eEpRVUZpTEZsQlFVRnpRaXhGUVVGblFpeEpRVU16UWl4RFFVWlBiRU1zUlVGQlV5eFBRVUZCY1VRc1JVRkxWQ3hUUVVGVFF5eEZRVUZUY0VRc1JVRkJlVUlzUTBGRE9VTXNTVUZCU1Vjc1JVRkJWVU1zUlVGQlZVb3NRMEZCU3l4RlFVTTNRaXhIUVVGSkxFTkJRVU5ITEVWQlFWTXNUVUZCVHl4SFFVVnlRaXhQUVVGUlFTeEZRVUZSTEV0QlFVMHNRMEZEYkVJc1NVRkJTeXhUUVVORUxFOUJRVTlCTEVWQlFWRXNUMEZCVXl4RlFVTTFRaXhKUVVGTExGTkJRMFFzVDBGQlQwRXNSVUZCVVN4TlFVRk5MRTlCUVZNc1JVRkRiRU1zU1VGQlN5eFZRVU5FTEU5QlFVOUJMRVZCUVZFc1RVRkRia0lzU1VGQlN5eFBRVU5FTEUxQlFVOHNRMEZCUXl4RFFVRkRRU3hGUVVGUkxFMUJRVTBzUzBGRE0wSXNTVUZCU3l4UFFVTkVMRTlCUVU5QkxFVkJRVkVzVFVGQlRTeFRRVUZUTEVkQlFVc3NSVUZEZGtNc1NVRkJTeXhYUVVORUxFOUJRVTlCTEVWQlFWRXNUVUZCVFN4SFFVRkhMRk5CUVZNc1IwRkJTeXhGUVVNeFF5eEpRVUZMTEZOQlEwUXNUMEZCVHl4UFFVRlBMRXRCUVV0QkxFVkJRVkVzUzBGQlN5eEZRVUZGTEU5QlFWTXNSVUZETDBNc1NVRkJTeXhSUVVORUxFOUJRVTlCTEVWQlFWRXNUVUZCVFN4UFFVRlRMRVZCUTJ4RExFbEJRVXNzVDBGRFJDeE5RVUZQTEVkQlExZ3NTVUZCU3l4WFFVTkVMRTFCUVU4c1JVRkRaaXhEUVVOS0xFTkJNVUpQVEN4RlFVRlRMRk5CUVVGelJDeEZRVFpDVkN4VFFVRlRReXhGUVVFMFFuSkVMRVZCUVdFc1EwRkRja1FzUjBGQlNVRXNSMEZCVlN4TFFVRTJRaXhQUVVGUFFTeEZRVVZzUkN4SFFVRkpSaXhGUVVGVExGRkJRVkZGTEVOQlFVc3NSVUZEZEVJc1RVRkJVU3hEUVVGRExFVkJRV2RDTEU5QlFVOUJMRVZCUVUwc1NVRkJTM05FTEVkQlFVMUVMRVZCUVZORExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlF6RkVMRWRCUVVsNFJDeEZRVUZUTEZOQlFWTkZMRU5CUVVzc1JVRkJSeXhEUVVOcVF5eEpRVUZKU3l4RlFVRnJReXhEUVVGRExFVkJRM1pETEU5QlFWTXNRMEZCUTJ0Q0xFVkJRVXRETEVOQlFVc3NTVUZCU3l4UFFVRlBMRkZCUVZGNFFpeERRVUZMTEVWQlFVZExMRVZCUVU5clFpeERRVUZITEVWQlFVazRRaXhGUVVGVE4wSXNRMEZCU3l4RlFVTTFSU3hQUVVGUGJrSXNRMEZEV0N4TFFVTkpMRkZCUVU5TUxFTkJSV1lzUTBGYVQwWXNSVUZCVXl4VFFVRkJkVVFzUlVGbFZDeFRRVUZUZUVNc1JVRkJVMGdzUlVGQmVVSXNRMEZET1VNc1QwRkJUeXhQUVVGUFFTeEhRVUZQTEZGQlEzcENMRU5CUms5YUxFVkJRVk1zVTBGQlFXVXNSVUZMVkN4VFFVRlRSQ3hGUVVGVFJpeEZRVUY1UWl4RFFVTTVReXhQUVVGUExFOUJRVTlCTEVkQlFVOHNVVUZEZWtJc1EwRkdUMW9zUlVGQlV5eFRRVUZCWXl4RlFVdFVMRk5CUVZOSkxFVkJRVTlPTEVWQlFUSkNMRU5CUXpsRExFOUJRVTlCTEdGQlFXVTJReXhEUVVNeFFpeERRVVpQZWtRc1JVRkJVeXhQUVVGQmEwSXNSVUZMVkN4VFFVRlRSQ3hGUVVGWFRDeEZRVUV5UWl4RFFVTnNSQ3hQUVVGUFFTeGhRVUZsT0VNc1EwRkRNVUlzUTBGR1R6RkVMRVZCUVZNc1YwRkJRV2xDTEVWQlMxUXNVMEZCVTBvc1JVRkJUMFFzUlVGQmJVTXNRMEZEZEVRc1QwRkJUMEVzUjBGQlVTeEpRVU51UWl4RFFVWlBXaXhGUVVGVExFOUJRVUZoTEVWQlMxUXNVMEZCVTAwc1JVRkJVVkFzUlVGQmQwSXNRMEZETlVNc1QwRkJUeXhOUVVGTkxGRkJRVkZCTEVOQlFVY3NRMEZETlVJc1EwRkdUMW9zUlVGQlV5eFJRVUZCYlVJc1JVRkxWQ3hUUVVGVFNDeEZRVUZWU2l4RlFVRXdRaXhEUVVOb1JDeFBRVUZQTEU5QlFVOUJMRWRCUVZFc1UwRkRNVUlzUTBGR1Qxb3NSVUZCVXl4VlFVRkJaMElzUlVGTFZDeFRRVUZUU1N4RlFVRlBVaXhGUVVGMVFpeERRVU14UXl4UFFVRlBRU3hoUVVGbEswTXNSVUZETVVJc1EwRkdUek5FTEVWQlFWTXNUMEZCUVc5Q0xFVkJTMVFzVTBGQlUwVXNSVUZCVTFZc1JVRkJjME1zUTBGRE0wUXNUMEZEU1VFc1NVRkJVU3hSUVVOU0xFOUJRVTlCTEVkQlFVOHNWVUZEWkN4RFFVRkRUeXhGUVVGUlVDeERRVUZITEVkQlExb3NRMEZCUTBzc1JVRkJWMHdzUTBGQlJ5eEhRVU5tTEVOQlFVTk5MRVZCUVU5T0xFTkJRVWNzUjBGRFdDeERRVUZEVVN4RlFVRlBVaXhEUVVGSExFZEJRMWdzUTBGQlEwTXNSVUZCVDBRc1EwRkJSeXhEUVVWdVFpeERRVlpQV2l4RlFVRlRMRk5CUVVGelFpeEZRV0ZVTEZOQlFWTkVMRVZCUVZkVUxFVkJRVEpDTEVOQlEyeEVMRTlCUVU4c1QwRkJUMEVzUjBGQlR5eFZRVU42UWl4RFFVWlBXaXhGUVVGVExGZEJRVUZ4UWl4SlFTOVRTSEpDTEZGQlFVRXNTMEZ0VlZZc1NVRkJWVFJFTEU5QlFWWXNRMEZGU1N4VFFVRlRReXhGUVVGclFrTXNSVUZCYzBNc1EwRkRjRVVzVDBGQlR6bEVMRWRCUVZNc1UwRkJVemhFTEVOQlFVc3NSMEZCU3l4UFFVRlBMRXRCUVV0QkxFTkJRVXNzUlVGQlJTeFJRVUZWTEVkQlFVc3NVVUZCVTBFc1IwRkJVeXhUUVVGVlFTeERRVU55Unl4RFFVWlBSaXhGUVVGVExHVkJRVUZETEVWQlMxUXNVMEZCVTBVc1JVRkJZMFFzUlVGQlowUXNRMEZETVVVc1VVRkJVMFVzUzBGQlYwWXNSVUZCVHl4SFFVRkpMRU5CUVVORUxFVkJRV1ZITEVOQlFVOHNSVUZCUnl4TlFVRlBMRWRCUldoRkxFMUJRVThzUlVGRFdDeERRVXBQU2l4RlFVRlRMRmRCUVVGSExFVkJUMVFzVTBGQlUwVXNSVUZCVlVnc1JVRkJhME1zUTBGRGVFUXNVVUZCVTBVc1MwRkJWMFlzUlVGQlR5eEhRVUZKUkN4RlFVRmxSeXhEUVVGUExFVkJRVWNzVFVGQlR5eEhRVVV2UkN4TlFVRlBMRVZCUTFnc1EwRktUMG9zUlVGQlV5eFBRVUZCU3l4RlFVOVVMRk5CUVZORExFVkJRVk5ETEVWQlFXbEVMRU5CUTNSRkxFZEJRVWxPTEVWQlFXVk5MRU5CUVZFc1JVRkRka0lzVDBGQlQwUXNSVUZCVFVNc1JVRkJVeXhKUVVGSkxFVkJRM1pDTEVkQlFVbEtMRVZCUVZkSkxFTkJRVkVzUlVGQlJ5eERRVU0zUWl4SlFVRkpOVVFzUlVGQlV5eEZRVU5pTEZGQlFWTTJSQ3hMUVVGWlJDeEZRVUZWTlVRc1IwRkJWVEpFTEVWQlFVMUZMRVZCUVZNc1NVRkJTU3hGUVVNMVJDeFBRVUZQTjBRc1EwRkRXQ3hMUVVOSkxGRkJRVTgwUkN4RlFVRlRMRTFCUlhoQ0xFTkJWazlRTEVWQlFWTXNUVUZCUVUwc1JVRmhWQ3hUUVVGVFJ5eEZRVUZUUml4RlFVRjFRa2NzUlVGQlpVTXNSVUZCTUVJc1EwRkRja1lzUjBGQlNVRXNSMEZCVDBRc1JVRkJUeXhOUVVGUExFTkJRVU1zUlVGRE1VSXNSMEZCU1V3c1JVRkJUMFVzUTBGQlVTeEZRVUZITEU5QlFVOUJMRVZCUVZNc1RVRkJUVWNzUlVGQlQwTXNRMEZCUnl4RlFVZDBSQ3hKUVVGSmVrSXNSVUZCVVN4RlFVTlNNRUlzUlVGQlR5eEZRVU5ZTEV0QlFVOHhRaXhGUVVGUmNVSXNSVUZCVXl4UlFVRlZTeXhGUVVGUFRpeEZRVUZOUXl4RlFVRlRja0lzUTBGQlN5eERRVUZETEVkQlFVdDNRaXhIUVVNdlJFVXNSMEZCVVU0c1JVRkJUVU1zUlVGQlUzSkNMRU5CUVVzc1EwRkJReXhGUVVNM1FrRXNTVUZKU2l4SFFVRkpRU3hIUVVGVGNVSXNSVUZCVXl4UFFVRlJMRTFCUVU4c1EwRkJReXhGUVVWMFF5eEpRVUZOTlVRc1JVRkJaMFFzUTBGQlF5eEZRVU4yUkN4TFFVRlBkVU1zUlVGQlVYRkNMRVZCUVZNc1VVRkJWVXNzUlVGQlQwUXNSMEZCU3l4RFFVTXhReXhKUVVGTlJTeEZRVUZSVGl4RlFVRlRja0lzUTBGQlN5eEZRVU4wUWpSQ0xFVkJRVmxTTEVWQlFVMVBMRU5CUVVzc1JVRkRka0pGTEVWQlFXRXNTMEZCU3l4SlFVRkpTQ3hGUVVGTlJpeERRVUZMTEVWQlEycERUU3hGUVVGWExFdEJRVXNzU1VGQlNVWXNSVUZCV1VZc1JVRkJUVVFzUTBGQlJ5eEZRVVV2UTJoRkxFVkJRVThzUzBGQlN5eERRVU5TTEVsQlFVdHJSU3hGUVVGTkxFbEJRMWdzUzBGQlRVb3NSVUZCVFVrc1JVRkJUU3hMUVVGTlJTeEZRVUZoU0N4RlFVRk5TU3hGUVVGWFNpeERRVUZKTEVOQlF6bEVMRU5CUVVNc1JVRkZSRUVzUjBGQlVVVXNSVUZEVWpWQ0xFZEJRMG9zUTBGRlFTeFBRVUZQZGtNc1EwRkRXQ3hEUVdoRFQzRkVMRVZCUVZNc1RVRkJRVk1zU1VGc1EwaFVMRkZCUVVFc1MwTm9XbFlzU1VGQlRXbENMRWRCUVU0c1RVRkJUVU1zUTBGQll5eERRVWRvUWl4WlFVRnRRa01zUlVGQlZTeERRVUZXTEZkQlFVRkJMRVZCUTNSQ0xFdEJRVXNzVjBGQllTeEZRVU4wUWl4RFFVVlBMRWxCUVU5RExFVkJRVGhDTEVOQlEzaERMRTlCUVU4c1NVRkJTVVlzUlVGQlVVVXNSVUZCUlN4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVOd1F5eERRVVZQTEZGQlFWZEJMRVZCUVhsRExFTkJRM1pFTEU5QlFVOUJMRVZCUVVVc1MwRkJTeXhMUVVGTExFTkJRM1pDTEVOQlJVOHNUMEZCVlVFc1JVRkJPRUlzUTBGRE0wTXNUMEZCVHl4SlFVTllMRU5CUlU4c1RVRkJZME1zUlVGQmIwSkRMRVZCUVhGRExFTkJRekZGTEU5QlFVOHNTMEZCU3l4SlFVRkpSQ3hEUVVGSkxFTkJRM2hDTEVOQlJVOHNUMEZCVDBVc1JVRkJZeXhEUVVONFFpeFBRVUZQTEV0QlFVc3NTMEZEYUVJc1EwRkZUeXhOUVVGM1FpeERRVU16UWl4UFFVRlBMRWxCUTFnc1EwRkZUeXhaUVVGWlF5eEZRVUZuUXl4RFFVTXZReXhQUVVGUExFdEJRVXNzUzBGRGFFSXNRMEZEU2l4RlFVdGhReXhIUVVGT0xFMUJRVTFETEVOQlFXTXNRMEZIYUVJc1dVRkJiVUpETEVWQlFWVXNRMEZCVml4WFFVRkJRU3hGUVVOMFFpeExRVUZMTEZkQlFXRXNSVUZEZEVJc1EwRkZUeXhKUVVGUFF5eEZRVUVyUWl4RFFVTjZReXhQUVVGUExFbEJRMWdzUTBGRlR5eFJRVUZYUVN4RlFVRXdReXhEUVVONFJDeFBRVUZQTEVsQlExZ3NRMEZGVHl4UFFVRlZVaXhGUVVFNFFpeERRVU16UXl4UFFVRlBMRWxCUVVsTkxFVkJRVkZPTEVWQlFVVXNTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkRjRU1zUTBGRlR5eE5RVUZqVXl4RlFVRnhRa01zUlVGQmIwTXNRMEZETVVVc1QwRkJUeXhMUVVGTExFOUJRVTlCTEVOQlFVa3NRMEZETTBJc1EwRkZUeXhQUVVGUFdDeEZRVUZoTEVOQlEzWkNMRTlCUVU5QkxFTkJRMWdzUTBGRlR5eE5RVUYzUWl4RFFVTXpRaXhQUVVGUExFbEJRMWdzUTBGRlR5eFpRVUZaV1N4RlFVRXJRaXhEUVVNNVF5eE5RVUZKUVN4RlFVRmxMRWxCUVVrc1RVRkJUVUVzUlVGQlVTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVTnlReXhKUVVGSkxFMUJRVTBzUjBGQlN5eExRVUZMTEV0QlFVc3NRMEZEZUVNc1EwRkRTaXhGUVZscFFrTXNUMEZCVml4RFFVVkpMRk5CUVZORExFVkJRV05rTEVWQlFYZENMRU5CUTJ4RUxFOUJRVThzU1VGQlNVWXNSMEZCVVVVc1EwRkJTeXhEUVVNMVFpeERRVVpQWVN4RlFVRlRMRkZCUVVGRExFVkJTMVFzVTBGQlUwTXNSVUZCWTFBc1JVRkJkMElzUTBGRGJFUXNUMEZCVHl4SlFVRkpSaXhIUVVGUlJTeERRVUZMTEVOQlF6VkNMRU5CUms5TExFVkJRVk1zVVVGQlFVVXNSVUZMVkN4VFFVRlRReXhGUVVOYVF5eEZRVU5CUXl4RlFVTkJMRVZCUTFrc1EwRkRXaXhQUVVGSlJDeEZRVUZOTEZkQlEwWkRMRVZCUVU4c1YwRkJiVUlzUlVGQlJVUXNSVUZCVFN4TlFVRlBReXhGUVVGUExFdEJRVXNzUlVGRE4wTklMRVZCUVZGSExFVkJRVThzUzBGQlN5eEZRVVY2UWtnc1JVRkJVVVVzUlVGQlRTeExRVUZMTEVOQlJXeERMRU5CV0U5S0xFVkJRVk1zVTBGQlFVY3NSVUZqVkN4VFFVRlRSeXhGUVVOYVJpeEZRVU5CUXl4RlFVTkJMRVZCUTFrc1EwRkRXaXhQUVVGUFJpeEZRVUZUUXl4RlFVRlBReXhGUVVGUkxFTkJRVU5GTEVWQlFVZERMRWxCUVUxUUxFVkJRVkVzUlVGQlJVMHNSVUZCUjBNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRE4wUXNRMEZPVDFJc1JVRkJVeXhMUVVGQlRTeEZRVk5VTEZOQlFWTkhMRVZCUVdkQ1F5eEZRVUZ2UWtNc1JVRkJhMFFzUTBGRGJFY3NTVUZCVFVNc1JVRkJZeXhEUVVGRExFVkJRM0pDTEZGQlFWZERMRXRCUVZkSUxFVkJRVThzUTBGRGVrSXNTVUZCVFVrc1JVRkJVMGdzUlVGQlMwVXNRMEZCVHl4RlFVTXpRaXhIUVVGSkxFTkJRVU5ETEVWQlFVOHNWMEZCV1N4UFFVRlBRU3hGUVVGUExFdEJRVXNzUlVGRk0wTkdMRVZCUVU4c1MwRkJTMFVzUlVGQlR5eExRVUZMTEVOQlF6VkNMRU5CUlVFc1QwRkJUMlFzUlVGQlR5eFJRVUZSV1N4RFFVRk5MRU5CUTJoRExFTkJWazlhTEVWQlFWTXNUMEZCUVZNc1JVRmhWQ3hUUVVGVFRTeEZRVUZWUXl4RlFVRnBReXhEUVVOMlJDeEhRVUZKTEVOQlEwRXNUMEZCVDJoQ0xFVkJRVThzVVVGQlVXZENMRVZCUVVzc1EwRkJReXhEUVVOb1F5eFBRVUZUY2tJc1JVRkJUeXhEUVVOYUxFOUJRVTlMTEVWQlFVOHNVVUZCVVV3c1EwRkJTeXhEUVVNdlFpeERRVU5LTEVOQlRrOUxMRVZCUVZNc1QwRkJRV1VzUlVGVGFFSXNaVUZCYzBKRkxFVkJRVk5ETEVWQlFXZEVMRU5CUXpORkxFZEJRVWtzUTBGRFFTeFBRVUZQYkVJc1JVRkJUeXhSUVVGUkxFMUJRVTFyUWl4RFFVRlBMRU5CUTNaRExFOUJRVk4yUWl4RlFVRlBMRU5CUTFvc1QwRkJUMHNzUlVGQlR5eFJRVUZSVEN4RFFVRkxMRU5CUXk5Q0xFTkJRMG9zUTBGT1FVc3NSVUZCYzBJc1RVRkJRV2xDTEVsQmVrUlVha0lzVVVGQlFTeExRemxGVml4SlFVRlZiVUlzVDBGQlZpeERRVVZWUVN4RlFVRkJMRmRCUVhsQ0xFTkJRVVVzUzBGQlRTeFpRVUZoTEVWQlJUbERRU3hGUVVGQkxGRkJRVzFDTEVOQlFVVXNTMEZCVFN4VFFVRlZMRVZCUlhKRFFTeEZRVUZCTEZWQlFYTkNMRWxCUVVrc1NVRkhhRU1zVTBGQlUwTXNSVUZCVVVNc1JVRkJkMElzUTBGRE5VTXNUMEZCU1VFc1JVRkJTU3hOUVVGUkxFVkJRVlZHTEVWQlFVRXNVVUZGYmtJc1EwRkJSU3hMUVVGTkxFOUJRVkVzVFVGQlQwVXNRMEZCU1N4RFFVTjBReXhEUVVwUFJpeEZRVUZUTEV0QlFVRkRMRVZCVDFRc1UwRkJVMFVzUlVGQldVTXNSVUZCTWtJc1EwRkRia1FzVDBGQlNVRXNSVUZCWTBvc1JVRkJRU3hYUVVOT1FTeEZRVUZCTEU5QlEyaENMRU5CU0U5QkxFVkJRVk1zVTBGQlFVY3NSVUZOVkN4VFFVRlRSU3hGUVVGblFrZ3NSVUZCYjBNc1EwRkRhRVVzVDBGQlQwRXNTVUZCVVN4UFFVRlpSQ3hGUVVGTFF5eERRVUZITEVWQlFVbEdMRVZCUVVFc1QwRkRNME1zUTBGR1QwRXNSVUZCVXl4aFFVRkJTeXhGUVV0VUxGTkJRVk5ETEVWQlFWZEtMRVZCUVhkQ0xFTkJReTlETEU5QlFVbEJMRVZCUVVrc1RVRkJVU3hGUVVGVlJpeEZRVUZCTEZkQlJXNUNMRU5CUVVVc1MwRkJUU3hWUVVGWExFMUJRVTlGTEVOQlFVa3NRMEZEZWtNc1EwRktUMFlzUlVGQlV5eFJRVUZCVFN4RlFVOVVMRk5CUVZORExFVkJRVlZETEVWQlFUaENMRU5CUTNCRUxFOUJRVkZCTEVWQlFVOHNTMEZCVFN4RFFVTnFRaXhKUVVGTExHRkJRMFFzVDBGQlQxSXNSVUZCUVN4UlFVTllMRWxCUVVzc1ZVRkRSQ3hQUVVGUFFTeEZRVUZCTEZkQlExZ3NTVUZCU3l4UFFVTkVMRTlCUVU5TkxFVkJRVkZGTEVWQlFVOHNTMEZCU3l4RlFVTXZRaXhKUVVGTExGVkJRMFFzVDBGQlQxQXNSVUZCUzA4c1JVRkJUeXhMUVVGTExFTkJRMmhETEVOQlEwb3NRMEZZVDFJc1JVRkJVeXhQUVVGQlR5eEZRV05VTEZOQlFWTkZMRVZCUVZORUxFVkJRVFJDTEVOQlEycEVMRTlCUVZGQkxFVkJRVThzUzBGQlRTeERRVU5xUWl4SlFVRkxMR0ZCUTBRc1RVRkJUeXhIUVVOWUxFbEJRVXNzVlVGRFJDeE5RVUZQTEVkQlExZ3NTVUZCU3l4UFFVTkVMRTlCUVU5QkxFVkJRVThzVFVGQlRTeE5RVUZSTEVWQlEyaERMRWxCUVVzc1ZVRkRSQ3hOUVVGUExFVkJRMllzUTBGRFNpeERRVmhQVWl4RlFVRlRMRTFCUVVGVExFVkJZMVFzVTBGQlUwTXNSVUZCVjBZc1JVRkJiVUpITEVWQlFUUkNMRU5CUTNSRkxFOUJRVkZJTEVWQlFVOHNTMEZCVFN4RFFVTnFRaXhKUVVGTExHRkJRMFFzVDBGQlQwY3NSVUZEV0N4SlFVRkxMRlZCUTBRc1QwRkJUMWdzUlVGQlFTeFZRVU5ZTEVsQlFVc3NUMEZEUkN4UFFVRlBVU3hGUVVGUExFMUJRMnhDTEVsQlFVc3NWVUZEUkN4UFFVRlBTU3hGUVVGeFFrUXNSVUZCV1Vnc1JVRkJUeXhMUVVGTExFTkJRelZFTEVOQlEwb3NRMEZZVDFJc1JVRkJVeXhSUVVGQlZTeEZRV05VTEZOQlFWTkhMRVZCUVdGRExFVkJRVEJETEVOQlEyNUZMRTlCUVU5RExFVkJRV05FTEVWQlFWZEZMRWRCUVUxQkxFTkJRVU1zUTBGRE0wTXNRMEZHVDJoQ0xFVkJRVk1zVlVGQlFXRXNSVUZMVkN4VFFVRlRSU3hGUVVOYVJDeEZRVU5CUnl4RlFVTlRMRU5CUTFRc1QwRkJUME1zUlVGQmVVSktMRVZCUVZkRkxFZEJRVTFITEVkQlFVOHNVVUZCVVVZc1JVRkJVVVFzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WlFVRlpMRU5CUXpkR0xFTkJURTlvUWl4RlFVRlRMR05CUVVGbExFVkJVVlFzVTBGQlUwY3NSVUZEV2tvc1JVRkRRVWNzUlVGRGIwSXNRMEZEY0VJc1NVRkJUVWNzUlVGQmEwSXNRMEZCUXl4RlFVTnVRa01zUlVGQmMwSXNRMEZCUXl4RlFVTTNRaXhSUVVGVFF5eExRVUZYVWl4RlFVRlZMRU5CUXpGQ0xFbEJRVTFUTEVWQlFXTk9MRVZCUVZGTExFTkJRVThzUlVGRGJrTXNSMEZCU1N4RFFVRkRReXhGUVVGWkxGZEJRVmtzVDBGQlQwRXNSVUZCV1N4TFFVRkxMRVZCUlhKRUxFbEJRVTFtTEVWQlFWTmxMRVZCUVZrc1RVRkRNMElzUjBGQlNXWXNTVUZCVnl4UFFVZG1MRWxCUVVsRExFVkJRVTFFTEVOQlFVMHNSVUZCUnl4UFFVRlBWeXhIUVVGUExGRkJRVkZ1UWl4RlFVRkJMRTlCUVU4c1JVRkZOVU5STEVWQlFVOHNUMEZCVXl4bFFVZG9Ra0VzUlVGQlR5eE5RVUZSTEU5QlFWRlpMRVZCUVUwc1MwRkJTMW9zUlVGQlR5eExRVUZMTEVWQlEzcERRU3hGUVVGUExFMUJRVkVzVjBGQlYyRXNSVUZCVlN4TFFVRkxZaXhGUVVGUExFdEJRVXNzUjBGRGJFVXNRMEZSUVN4UFFVRkpXU3hGUVVGTkxGRkJRVlVzUjBGQlMwTXNSVUZCVlN4UlFVRlZMRVZCUTJ4RFJpeEhRVUZQTEZGQlFWRnVRaXhGUVVGQkxGVkJRVlVzUlVGRGVrSnZRaXhGUVVGTkxFOUJRVk1zUjBGQlMwTXNSVUZCVlN4UlFVRlZMRVZCUTNoRFJpeEhRVUZQTEZGQlFWRnNRaXhGUVVGTGRVSXNSVUZCWVVvc1EwRkJTeXhEUVVGRExFTkJRVU1zUlVGRGVFTkJMRVZCUVUwc1VVRkJWU3hIUVVGTFF5eEZRVUZWTEU5QlFWTXNSVUZEZUVOR0xFZEJRVThzVVVGQlVXSXNSVUZCVVcxQ0xFVkJRVk5LTEVOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUlRORFJpeEhRVUZQTEZGQlFWRnVRaXhGUVVGUkxFdEJRVXRaTEVWQlFYRkNXU3hGUVVGaFNpeERRVUZMTEVWQlFVZExMRVZCUVZOS0xFTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZGTVVjc1EwRjBRMDl5UWl4RlFVRlRMSGxDUVVGQmEwSXNSVUY1UTFRc1UwRkJVMUVzUlVGQlUwTXNSVUZCZVVNc1EwRkRPVVFzVDBGQlQwTXNSVUZCVlVRc1JVRkJWVmdzUjBGQlRVRXNRMEZCUXl4RFFVTjBReXhEUVVaUGFFSXNSVUZCVXl4TlFVRkJNRUlzUlVGTFZDeFRRVUZUUlN4RlFVRm5RbVFzUlVGQmRVSkhMRVZCUVhsRUxFTkJRelZITEU5QlFVOVpMRVZCUVd0Q1ppeEZRVUZYUlN4SFFVRk5SeXhIUVVGUExGRkJRVkZHTEVWQlFWRkVMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzV1VGQldTeERRVU4wUml4RFFVWlBhRUlzUlVGQlV5eFZRVUZCTkVJc1JVRkxWQ3hUUVVGVFF5eEZRVU5hWml4RlFVTkJSeXhGUVVOdlFpeERRVU53UWl4SlFVRk5SeXhGUVVGclFpeERRVUZETEVWQlEyNUNReXhGUVVGelFpeERRVUZETEVWQlF6ZENMRkZCUVZORExFdEJRVmRTTEVWQlFWVXNRMEZETVVJc1NVRkJUVk1zUlVGQlkwNHNSVUZCVVVzc1EwRkJUeXhGUVVOdVF5eEhRVUZKTEVOQlFVTkRMRVZCUVZrc1YwRkJXU3hQUVVGUFFTeEZRVUZaTEV0QlFVc3NSVUZGY2tRc1NVRkJUV1lzUlVGQlUyVXNSVUZCV1N4TlFVTXpRaXhIUVVGSlppeEpRVUZYTEU5QlIyWXNTVUZCU1VFc1JVRkJUeXhQUVVGVExHRkJRV01zVDBGQlQxY3NSMEZCVHl4UlFVRlJia0lzUlVGQlFTeFZRVUZWTEVWQlJUbEVVeXhGUVVGTlJDeERRVUZOTEVsQlIxcEJMRVZCUVU4c1RVRkJVU3hQUVVGUldTeEZRVUZOTEV0QlFVdGFMRVZCUVU4c1MwRkJTeXhGUVVONlEwRXNSVUZCVHl4TlFVRlJMRmRCUVZkaExFVkJRVlVzUzBGQlMySXNSVUZCVHl4TFFVRkxMRWRCUTJ4RkxFTkJWMEVzVDBGQlNWa3NSVUZCVFN4UlFVRlZMRWRCUVV0RExFVkJRVlVzVVVGQlZTeEZRVU5zUTBZc1IwRkJUeXhSUVVGUmJrSXNSVUZCUVN4UFFVRlBMRVZCUTNSQ2IwSXNSVUZCVFN4UFFVRlRMRWRCUVV0RExFVkJRVlVzVVVGQlZTeEZRVU40UTBZc1IwRkJUeXhSUVVGUmJrSXNSVUZCVVN4TFFVRkxlVUlzUlVGQlUwd3NRMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkROVU5CTEVWQlFVMHNVVUZCVlN4SFFVRkxReXhGUVVGVkxFOUJRVk1zUlVGRGVFTkdMRWRCUVU4c1VVRkJVVzVDTEVWQlFWRXNVVUZCVVhkQ0xFVkJRV0ZJTEVOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUlhaRVJpeEhRVUZQTEZGQlFWRmlMRVZCUVZGTkxFVkJRWEZDV1N4RlFVRmhTQ3hEUVVGVExFVkJRVWRKTEVWQlFWTk1MRU5CUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRmNrY3NRMEY2UTA5d1FpeEZRVUZUTEd0Q1FVRkJOa0lzUlVFMFExUXNVMEZCVTB3c1JVRkJaMEpOTEVWQlFYZENMRU5CUTNCRUxFZEJRVWxCTEVWQlFVc3NVVUZCVlN4RlFVRkhMRTlCUVU4c1NVRkJTU3hKUVVNMVFpeEhRVUZKUVN4RlFVRkxMRkZCUVZVc1JVRkJSeXhQUVVGUFFTeEZRVUZMTEVOQlFVTXNSVUZIZUVNc1NVRkJTVU1zUlVGQlZTeERRVUZETEVWQlFXVXNUMEZCVDBRc1EwRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlEwVXNSVUZCUjBNc1NVRkJUVVFzUlVGQlJTeExRVUZQUXl4RlFVRkZMRWxCUVVrc1JVRkZla1VzUzBGQlQwWXNSVUZCVHl4UFFVRlRMRWRCUVVjc1EwRkRkRUlzU1VGQlRVY3NSVUZCVXl4SlFVRkpMRWxCUTJKRExFVkJRVlZLTEVWQlFVOHNTVUZCU1N4RlFVVXpRaXhSUVVGVFZDeExRVUZYVXl4RlFVRlBMRU5CUVVNc1JVRkRjRUpKTEVWQlFWRXNTVUZCU1dJc1EwRkJUeXhIUVVGSFdTeEZRVUZQTEVsQlFVbGFMRU5CUVU4c1JVRkhhRVJUTEVWQlFVOHNRMEZCUXl4RlFVRkpSeXhEUVVOb1FpeERRVVZCTEU5QlFVOUlMRVZCUVU4c1EwRkJReXhEUVVOdVFpeERRVzVDVHk5Q0xFVkJRVk1zWVVGQlFYZENMRVZCYzBKVUxGTkJRVk5ETEVWQlFWbExMRVZCUVhkQ0xFTkJRMmhFTEVkQlFVbEJMRVZCUVVzc1VVRkJWU3hGUVVGSExFOUJRVThzU1VGQlNTeEpRVU0xUWl4SFFVRkpRU3hGUVVGTExGRkJRVlVzUlVGQlJ5eFBRVUZQUVN4RlFVRkxMRU5CUVVNc1JVRkhlRU1zU1VGQlRVa3NSVUZCVXl4SlFVRkpMRWxCUTI1Q0xGRkJRVmRvUXl4TFFVRlBORUlzUlVGRFpDeFJRVUZYVWl4TFFVRlhjRUlzUlVGRGJFSm5ReXhGUVVGUExFbEJRVWxhTEVOQlFVOHNSVUZKTVVJc1QwRkJUMWtzUTBGRFdDeERRV0pQYkVNc1JVRkJVeXhUUVVGQmVVSXNSVUZuUWxRc1UwRkJVMklzUlVGQmQwSllMRVZCUVdOTExFVkJRWGxDTEVOQlF6TkZMRWRCUVVsTUxFVkJRVXNzUzBGQlQwc3NSVUZCVVN4TFFVRk5MRU5CUlRGQ0xFbEJRVTAwUWl4RlFVRlRMRWxCUVVrc1NVRkJTV3BETEVOQlFVa3NSVUZETTBJc1VVRkJVM0ZDTEV0QlFWZG9RaXhGUVVOb1FqUkNMRVZCUVU4c1QwRkJUMW9zUTBGQlR5eEZRVWQ2UWl4UFFVRlBXU3hEUVVOWUxFdEJRWFZETEVOQlEyNURMRWxCUVUxQkxFVkJRVk1zU1VGQlNTeEpRVU51UWl4UlFVRlRXaXhMUVVGWGNrSXNSVUZEV2tzc1JVRkJVU3hKUVVGSlowSXNRMEZCVHl4SFFVTjJRbGtzUlVGQlR5eEpRVUZKV2l4RFFVRlBMRVZCUjNSQ0xFOUJRVTlaTEVOQlExZ3NRMEZEU2l4RFFXeENUMnhETEVWQlFWTXNjVUpCUVVGWkxFbEJPVTVJV2l4UlFVRkJMRXREYVVWV0xFbEJRVlZ2UXl4UFFVRldMRU5CUlZWQkxFVkJRVUVzU1VGQll5eFBRVVZ3UWl4VFFVRlRReXhGUVVGVFF5eEZRVUZyUXl4RFFVTjJSQ3hOUVVGUExFTkJRVVVzUzBGQlRTeFhRVUZaTEV0QlFVRkJMRU5CUVVzc1EwRkRjRU1zUTBGR1QwWXNSVUZCVXl4VFFVRkJReXhGUVVsVUxGTkJRVk5GTEVWQlFWRkRMRVZCUVcxRExFTkJRM1pFTEUxQlFVOHNRMEZCUlN4TFFVRk5MRlZCUVZjc1RVRkJRVUVzUTBGQlRTeERRVU53UXl4RFFVWlBTaXhGUVVGVExGRkJRVUZITEVWQlNWUXNVMEZCVTBVc1JVRkJVME1zUlVGQmEwSkRMRVZCUVdORExFVkJRU3RDTEVOQlEzQkdMRTFCUVU4c1EwRkJSU3hMUVVGTkxGZEJRVmtzUzBGQlFVWXNSVUZCVFN4SFFVRkJReXhGUVVGSkxFMUJRVUZETEVOQlFVMHNRMEZETDBNc1EwRkdUMUlzUlVGQlV5eFRRVUZCU3l4RlFVbFVMRk5CUVZOSkxFVkJRVTFETEVWQlFXbENSQ3hGUVVFclFpeERRVU5zUlN4TlFVRlBMRU5CUVVVc1MwRkJUU3hYUVVGWkxFdEJRVTFETEVWQlFVc3NUVUZCVDBRc1JVRkJUeXhIUVVGSkxFOUJRVkVzUTBGRGNFVXNRMEZHVDFRc1JVRkJVeXhOUVVGQlV5eEZRVXRVTEZOQlFWTkZMRVZCUVdOVUxFVkJRVEJDTEVOQlEzQkVMRWxCUVVsVkxFVkJRVkZXTEVWQlFVc3NUVUZCVFN4SFFVRkhMRVZCUTNSQ1Z5eEZRVUZ4UW1Jc1JVRkJXU3hUUVVGVFdTeEZRVUZOTEVOQlFVTXNRMEZCUXl4RlFVTjBSQ3hSUVVGVFNDeEZRVUZSTEVWQlFVZEJMRVZCUVZGSExFVkJRVTBzVDBGQlVVZ3NTVUZEZEVOSkxFVkJRVk5pTEVWQlFWa3NUVUZCVFdFc1JVRkJVV0lzUlVGQldTeFJRVUZSV1N4RlFVRk5TQ3hEUVVGTExFTkJRVU1zUTBGQlF5eEZRVWQ0UlN4UFFVRlBTU3hEUVVOWUxFTkJVazlpTEVWQlFWTXNZMEZCUVZjc1JVRlZWQ3hUUVVGVFJ5eEZRVUZQUXl4RlFVRm5RbGdzUlVGQmNVTXNRMEZEZUVVc1RVRkJUeXhEUVVGRkxFdEJRVTBzVTBGQlZTeFZRVUZYVnl4RlFVRk5MRTFCUVVGWUxFTkJRVTBzUTBGRGNFUXNRMEZHVDBvc1JVRkJVeXhQUVVGQll5eEZRVWxVTEZOQlFWTkZMRVZCUVV0QkxFVkJRV3RDUkN4RlFVRjNReXhEUVVNelJTeE5RVUZQTEVOQlFVVXNTMEZCVFN4WFFVRlpMRXRCUVVGRExFVkJRVTBzVlVGQlYwUXNRMEZCU3l4RFFVTnlSQ3hEUVVaUFppeEZRVUZUTEV0QlFVRm5RaXhGUVVsVUxGTkJRVk5ETEVWQlFVdERMRVZCUVhORExFTkJRM1pFTEUxQlFVOHNRMEZCUlN4TFFVRk5MRTlCUVZFc1QwRkJRVUVzUTBGQlR5eERRVU5zUXl4RFFVWlBiRUlzUlVGQlV5eExRVUZCYVVJc1JVRkpWQ3hUUVVGVFJTeEZRVUZQUkN4RlFVRnpSQ3hEUVVONlJTeE5RVUZQTEVOQlFVVXNTMEZCVFN4VFFVRlZMRTlCUVVGQkxFTkJRVThzUTBGRGNFTXNRMEZHVDJ4Q0xFVkJRVk1zVDBGQlFXMUNMRVZCU1ZRc1UwRkJVME1zUlVGQlQwTXNSVUZCYzBNc1EwRkRla1FzVFVGQlR5eERRVUZGTEV0QlFVMHNWVUZCVnl4TlFVRkJRU3hEUVVGTkxFTkJRM0JETEVOQlJrOXlRaXhGUVVGVExFOUJRVUZ2UWl4RlFVbFVMRk5CUVZORkxFVkJRVmxtTEVWQlFTdENMRU5CUTNaRUxFOUJRVTlCTEVkQlFVMHNUVUZCVVVFc1IwRkJUU3hMUVVGUFFTeEhRVUZOTEV0QlFVOUJMRWRCUVUwc1RVRkJVVUVzUjBGQlRTeE5RVUZSUVN4SFFVRk5MRWRCUTNKR0xFTkJSazlRTEVWQlFWTXNXVUZCUVhOQ0xFVkJTMVFzVTBGQlUwTXNSVUZCYVVKRExFVkJRV3RDUXl4RlFVRnhRaXhKUVVGSkxFbEJRVWtzUTBGQlEzcENMRVZCUVVFc1IwRkJSeXhEUVVGRExFVkJRV2RDTEVOQlEycEhMRTlCUVZGM1FpeEZRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRmRCUlVRc1QwRkRTVUVzUlVGQlN5eExRVUZQTEZOQlExcEJMRVZCUVVzc1MwRkJTeXhOUVVGUkxGbEJRMnhDUVN4RlFVRkxMRXRCUVVzc1RVRkJVWGhDTEVWQlFVRXNTMEZEYkVKM1FpeEZRVUZMTEUxQlFVMHNUVUZCVVN4WFFVTnVRa1VzUjBGQlV5eFRRVUZUUml4RlFVRkxMRTFCUVUwc1MwRkJTeXhGUVVVNVFrTXNSVUZCVFN4SlFVRkpSQ3hGUVVGTExFMUJRVTBzUzBGQlN5eEZRVUZWTEVsQlFVa3NTVUZEYUVNc1NVRkJTU3hKUVVGSkxFTkJRVU5CTEVWQlFVc3NUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkpia05ITEVkQlFWRXNVMEZCVXl4RFFVRkRTaXhGUVVGcFFrTXNSVUZCU3l4TFFVRk5ReXhEUVVGTExFVkJRVWRHTEVWQlFXbENReXhGUVVGTExFMUJRVTlETEVOQlFVc3NRMEZCUXl4RFFVRkRMRVZCUTNKSExFbEJRVXNzVjBGRFJDeFBRVUZQUlN4SFFVRlJMRk5CUVZOSUxFVkJRVXNzVlVGQlZTeEpRVUZMU1N4SFFVRk5UQ3hGUVVGcFFrc3NSVUZCUjBnc1EwRkJTeXhEUVVGRExFTkJRVU1zUlVGRGFrWXNTVUZCU3l4VFFVTkVMRWxCUVUxSkxFVkJRVmRLTEVkQlFVRXNTMEZCUVVFc1JVRkJVeXhKUVVGSkxFbEJRemxDTEZGQlFWZExMRXRCUVU5T0xFVkJRVXNzVlVGQlYwc3NSVUZCVXl4SlFVRkpReXhEUVVGSExFVkJSV3hFTEU5QlFVOVFMRVZCUVdsQ1F5eEZRVUZMTEUxQlFVOUxMRU5CUVZFc1JVRkRhRVFzU1VGQlN5eFBRVU5FTEU5QlFVOUdMRWRCUVZFc1UwRkJVMGdzUlVGQlN5eFBRVUZQTEVsQlFVdFBMRWRCUVUxU0xFVkJRV2xDVVN4RlFVRkhUaXhEUVVGTExFTkJRVU1zUTBGQlF5eEZRVU01UlN4SlFVRkxMRlZCUTBRc1QwRkJUMFlzUlVGQmFVSkRMRVZCUVVzc1RVRkJUME1zUTBGQlN5eEZRVU0zUXl4SlFVRkxMRk5CUTBRc1QwRkJUMFVzUjBGQlVTeFRRVUZUTEU5QlFVOHNUMEZCVDBnc1JVRkJTeXhOUVVGTkxFVkJRVVVzU1VGQlMwOHNSMEZCVFZJc1JVRkJhVUpSTEVWQlFVZE9MRU5CUVVzc1EwRkJReXhEUVVGRExFVkJRemRHTEVsQlFVc3NWMEZEUkN4UFFVRkpRU3hIUVVGVFFTeEZRVUZOTEVsQlFVbEVMRVZCUVVzc1NVRkJTU3hGUVVGVkxFbEJRVWtzU1VGRGJFTXNTVUZCU1N4SlFVRkpMRU5CUVVOQkxFVkJRVXNzU1VGQlNTeERRVUZETEVWQlEyNURMRWxCUVVzc1ZVRkRSQ3hQUVVGUExFbEJRVWtzUjBGRGJrSXNRMEZEU2l4RFFYQkRUM2hDTEVWQlFWTXNhVUpCUVVGMVFpeEZRWFZEVkN4VFFVRlRVeXhGUVVGVFVpeEZRVUV3UWl4RFFVTXZReXhQUVVGUlFTeEZRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRmRCUTBRc1QwRkJTVUVzUlVGQlN5eExRVUZQTEZGQlEwd3NSMEZCUjFFc1JVRkJVMUlzUlVGQlN5eEpRVUZKTEVOQlFVTXNTVUZCU1ZFc1JVRkJVMUlzUlVGQlN5eExRVUZMTEVOQlFVTXNTVUZIYkVRc1IwRkJSMUVzUlVGQlUxSXNSVUZCU3l4SlFVRkpMRU5CUVVNc1NVRkJTVUVzUlVGQlN5eEZRVUZGTEVsQlFVbFJMRVZCUVZOU0xFVkJRVXNzUzBGQlN5eERRVUZETEVkQlEzQkZMRWxCUVVzc1YwRkRSQ3hOUVVGUExFZEJRVWRSTEVWQlFWTlNMRVZCUVVzc1NVRkJTU3hEUVVGRExFbEJRVWxCTEVWQlFVc3NWVUZCVlN4SlFVRkpVU3hEUVVGUkxFVkJRVVVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTVUZETlVVc1NVRkJTeXhUUVVORUxFMUJRVThzU1VGQlNWSXNSVUZCU3l4VlFVRlZMRXRCUVVzc1NVRkJTU3hEUVVGRExGRkJRVkZSTEVWQlFWTlNMRVZCUVVzc1MwRkJTeXhEUVVGRExFZEJRM0JGTEVsQlFVc3NUMEZEUkN4TlFVRlBMRWxCUVVsQkxFVkJRVXNzVDBGQlR5eEpRVUZKVVN4RFFVRlJMRVZCUVVVc1MwRkJTeXhKUVVGSkxFTkJRVU1zU1VGRGJrUXNTVUZCU3l4VlFVTkVMRTFCUVU4c1NVRkJTVUVzUlVGQlUxSXNSVUZCU3l4TFFVRkxMRU5CUVVNc1IwRkRia01zU1VGQlN5eFRRVU5FTEUxQlFVOHNTVUZCU1N4UFFVRlBMRkZCUVZGQkxFVkJRVXNzVFVGQlRTeEZRVU5vUXl4SlFVRkpMRU5CUVVNc1EwRkJRMU1zUlVGQlIwWXNRMEZCUXl4SlFVRk5MRWRCUVVkRkxFTkJRVU1zUzBGQlMwUXNSVUZCVTBRc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGRGRFTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1NVRkRia0lzU1VGQlN5eFhRVU5FTEU5QlFVOVFMRVZCUVVzc1MwRkRhRUlzU1VGQlN5eFZRVU5FTEVsQlFVMVZMRVZCUVZWU0xFZEJRVk1zVlVGQlZVWXNSVUZCU3l4TFFVRkxMRVZCUXpkRExFZEJRVWtzUTBGQlExVXNSVUZCVXl4TlFVRlBMRTlCUTNKQ0xFOUJRVkZCTEVWQlFWRXNTMEZCVFN4RFFVTnNRaXhKUVVGTExGTkJRMFFzVFVGQlR5eEpRVUZKUVN4RlFVRlJMRXRCUVVzc1NVRkROVUlzVVVGRFNTeFBRVUZQVWl4SFFVRlRMRk5CUVZOUkxFVkJRVkVzUzBGQlN5eERRVU01UXl4RFFVTlNMRU5CUTBvc1EwRm9RMDlzUXl4RlFVRlRMRk5CUVVGblF5eEZRV3REU0doRExFVkJRVUVzUzBGQlQwRXNSVUZCV1N4UlFVRlJMRWxCUVVrc1NVRnFTUzlDUVN4UlFVRkJMRXRLWmxZc1NVRkJUVzFETEVWQlFXVXNhVUpCUVcxRExFTkJRek5FTEU5QlFWTkRMRWRCUTBnc1UwRkJUeXh4UWtGQmNVSXNSVUZEZWtJc1NVRkJTME1zUjBGQlVTeFBRVUZQTEZkQlFWZEJMRU5CUVVjc1EwRkJReXhGUVVOdVF5eExRVUZMTEZGQlFWRXNSVUZIZEVJc1QwRkJVME1zUjBGRFNDeFRRVUZQTEVkQlFVY3NSVUZEVUN4TFFVTkxMRTFCUVVsQkxFVkJRVVVzWjBKQlFXMUNMRk5CUVU4c1MwRkJTeXhEUVVGRExFVkJRMjVETEZGQlFWRXNRMEZCUXl4RlFVTlVMRWxCUVV0RExFZEJRVlZCTEVWQlFVMHNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkRkRU1zUlVGRFF5eExRVUZQTEZOQlFVOHNSMEZCUnl4RFFVRkRMRVZCUTJ4Q0xFdEJRVXNzVVVGQlVTeEZRVVYwUWl4blFrRkJhMEpJTEVkQlExb3NVMEZCVHl4SlFVRkpMRVZCUTFJc1MwRkJUeXhMUVVGSExFVkJRMVlzU1VGQlMwa3NSMEZGUlVFc1NVRkJXU3hKUVVGWkxFbEJRM2hDUVN4SlFVRlpMRXRCUVdFc1MwRkRha0lzUzBGQlQwRXNRMEZEZEVJc1JVRkhWQ3hMUVVGUFNpeEhRVU5FTEZOQlFVOHNkVUpCUVhWQ0xFVkJRek5DTEVsQlFVdERMRWRCUVZGQkxFVkJRVWtzV1VGQldTeEhRVUZMTEUxQlFVMHNSVUZEZUVNc1MwRkJTeXhUUVVGVExFVkJSM1pDTEVsQlFVMUVMRWRCUTBFc1UwRkRTU3hUUVVGUExFZEJRVWNzUlVGRFZpeE5RVUZOTEZOQlFVOHNhVVZCUVdsRkxFVkJRVVVzUzBGQlN5eE5RVUZOTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUTNKSExFTkJRVU5MTEVWQlFVOURMRWxCUVZORUxFVkJRVkZETEVWQlFVc3NTMEZCU3l4RlFVRkZMRU5CUTNwRExFVkJRVVVzUzBGQlN5eExRVUZMTEVWQlIyaENMRmRCUVdGT0xFZEJRMUFzVTBGRFNTeE5RVUZOTEZOQlFVOHNaMEpCUVdkQ0xFVkJRVXNzVTBGQlQwOHNSVUZCVnl4RlFVRkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFVkJRMnhGTEUxQlFVMHNVMEZCVHl4eFFrRkJjVUlzUlVGQlN5eFRRVUZQUVN4RlFVRlhMRVZCUVVVc1MwRkJTeXhOUVVGTkxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlEyaEdMRU5CUVVORExFVkJRVTlHTEVsQlFWTkZMRVZCUVZGR0xFVkJRVXNzUzBGQlN5eEZRVUZGTEVOQlEzcERMRVZCUVVVc1MwRkJTeXhWUVVGVkxFVkJSM0pDTEV0QlFVOU9MRWRCUTBRc1UwRkJUeXgxUWtGQmQwSXNRMEZCUXl4RlFVTTNRaXhKUVVGTFV5eEhRVUZqUXl4SFFVRkxMRmRCUVZkRUxFTkJRVk1zUTBGQlF5eEZRVU0zUXl4TFFVRkxMRmRCUVZjc1JVRkpla0lzVlVGQldWQXNSMEZEVGl4VFFVRlRMRk5CUVU4c1IwRkJSeXhGUVVGRkxFOUJRVThzUTBGQlF5eEZRVUZIUVN4RlFVRkZMRXRCUVUwc1EwRkJRMU1zUlVGQlIwTXNTMEZEZEVORUxFVkJRVVVzVDBGQlV5eEpRVUZIUXl4RlFVRkZMRTFCUVZFc1NVRkRja0pCTEVWQlExWXNSVUZCUlN4TFFVRkxMRmRCUVZjc1JVRkhka0lzWjBKQlFXdENXaXhIUVVOYUxGTkJRVThzVFVGQlRTeEZRVU5XTEVsQlFVdERMRWRCUVZGQkxFTkJRV1VzUlVGRE5VSXNTMEZCU3l4WlFVRlpMRVZCUnpGQ0xHRkJRV1ZFTEVkQlExUXNVMEZCVHl4VFFVRlRMRVZCUTJJc1NVRkJTME1zUjBGQlVVRXNRMEZCWlN4RlFVTTFRaXhMUVVGTExHMUNRVUZ0UWl4RlFVZHFReXhuUWtGQmEwSkVMRWRCUTFvc1UwRkJUeXhuUWtGQlowSXNSVUZEY0VJc1NVRkJTME1zUjBGQlVVRXNRMEZCWlN4RlFVTTFRaXhMUVVGTExESkRRVUV5UXl4RlFVZDZSQ3haUVVGalJDeEhRVU5TTEZOQlFVOHNVVUZCVVN4RlFVTmFMRWxCUVV0aExFZEJRVk1zUjBGQlpTeEZRVU0zUWl4TFFVRkxMRTlCUVU4c1JVRkRja0lzVjBGQllXSXNSMEZEVUN4VFFVRlBMRkZCUVZFc1JVRkRXaXhKUVVGTFlTeEhRVUZUTEVkQlFXVXNSVUZETjBJc1MwRkJTeXhOUVVGTkxFVkJSM0JDTEZOQlFWZGlMRWRCUTB3c1UwRkJVeXhUUVVGUExFOUJRVThzUlVGQlN5eFRRVUZQTEVkQlFVY3NSVUZCU3l4VFFVRlBMRTlCUVU4c1JVRkJSeXhEUVVGRFl5eEZRVUZOWkN4RlFVRkhaU3hKUVVNM1JFTXNSVUZCVXl4WFFVRlhMRU5CUVVVc1MwRkJUU3hQUVVGUExGTkJRVk5HTEVOQlFVa3NSVUZCUnl4TlFVRlBMRTlCUVU4c1UwRkJVME1zUTBGQlN5eERRVUZGTEVOQlFVTXNRMEZETlVZc1JVRkJSU3hMUVVGTExIbERRVUY1UXl4RlFVTnlSQ3hqUVVGblFtWXNSMEZEVml4TlFVTkZMRWRCUVVjc1QwRkJUeXhMUVVGTGFVSXNSVUZCWlN4RlFVTjZRaXhMUVVGTExFTkJRVU5ETEVWQlFVZERMRWxCUVUxQkxFVkJRVVVzVDBGQlUwUXNSVUZCUlN4TlFVRk5MRVZCUTJ4RExFbEJRVTBzVVVGQlRTeERRVU55UWl4RlFVTktMRXRCUVU5b1FpeEhRVU5JYTBJc1IwRkRTV3hDTEVWQlFVVXNVMEZEUkcxQ0xFZEJRMHNzVTBGQlV5eFRRVUZQTEVkQlFVY3NSVUZCU3l4VFFVRlBMRTlCUVU4c1JVRkJSeXhEUVVGRGNrSXNSVUZCUjNOQ0xFbEJRVkZFTEVWQlFVY3NTVUZCU1N4RFFVRkZMRWxCUVVzc1QwRkJUeXhUUVVGVFF5eERRVUZITEVOQlFVVXNRMEZCUXl4RFFVRkRMRVZCUXk5R1F5eEhRVU5MTEZOQlFWTXNVMEZCVHl4SFFVRkhMRVZCUVVzc1UwRkJUeXhQUVVGUExFVkJRVWNzUTBGQlEzWkNMRVZCUVVkM1FpeEpRVUZUUkN4RlFVRkpMRWxCUVVrc1EwRkJSU3hMUVVGTkxFOUJRVThzVTBGQlUwTXNRMEZCU1N4RFFVRkZMRU5CUVVNc1EwRkJReXhGUVVOdVIwTXNSMEZEU3l4VFFVRlRMRk5CUVU4c1IwRkJSeXhGUVVGTExGTkJRVThzVDBGQlR5eEZRVUZITEVOQlFVTjZRaXhGUVVGSE1FSXNTVUZETTBORUxFVkJRVXNzU1VGQlNTeERRVUZGTEU5QlFWRXNUMEZCVHl4VFFVRlRReXhEUVVGTkxFTkJRVVVzUTBGQlF5eERRVU5vUkN4RlFVTklReXhIUVVOTExGTkJRVk1zVTBGQlR5eEhRVUZITEVWQlFVc3NVMEZCVHl4UFFVRlBMRVZCUVVjc1EwRkJRek5DTEVWQlFVYzBRaXhKUVVNelEwUXNSVUZCVFN4SlFVRkpMRU5CUVVVc1QwRkJVU3hQUVVGUExGTkJRVk5ETEVOQlFVMHNRMEZCUlN4RFFVRkRMRU5CUTJwRUxFVkJRMGhETEVkQlEwc3NUVUZEU1N4VFFVRlRMRk5CUVU4c1IwRkJSeXhGUVVGTExGTkJRVThzVDBGQlR5eEZRVUZITEVOQlFVTTNRaXhGUVVGSE9FSXNTVUZETTBORUxFVkJRVThzU1VGQlNTeERRVUZGTEZsQlFXRXNUMEZCVHl4VFFVRlRReXhEUVVGWExFTkJRVVVzUTBGQlF5eERRVU0xUkN4RlFVTkZMRlZCUVZGRUxFTkJRVTBzUTBGRGNFSXNSVUZEU0VVc1IwRkRTeXhOUVVOSkxGTkJRVk1zVTBGQlR5eEhRVUZITEVWQlFVVXNSMEZCU3l4VFFVRlBMRWRCUVVjc1EwRkJReXhGUVVGTExGTkJRVThzYTBKQlFXdENMRVZCUVVjc1EwRkJRME1zUlVGQlNVTXNTVUZEZWtWR0xFVkJRVWNzVVVGQlVTeE5RVUZSUXl4RlFVRkxReXhGUVVGSkxFTkJRVVVzWTBGQlpTeEZRVUZMTEVOQlFVTXNRMEZEZGtRc1JVRkRSU3hUUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZITEVsQlFVMUdMRVZCUVVjc1VVRkJVU3hOUVVGUExFTkJRVVVzWTBGQlpTeEZRVUZMTEVOQlFVTXNRMEZCUXl4RlFVTjBSU3hUUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZMTEZOQlFVOHNiVUpCUVcxQ0xFVkJRVXNzVTBGQlR5eEhRVUZITEVWQlFVY3NRMEZCUTBjc1JVRkJTVU1zUlVGQlRVTXNTVUZETjBWTUxFVkJRVWNzVVVGQlVVa3NSVUZCVFN4RFFVRkZMR05CUVdVc1JVRkJTeXhEUVVGRExFTkJRelZETEVOQlEwb3NRMEZEVWl4RlFVTkxMRTlCUVZGS0xFZEJRV2xDUVN4RlFVRkhMRkZCUVZNc1dVRkJXU3hGUVVOcVJDeExRVUZMTEhsRFFVRjVReXhGUVVkMlJDeFRRVUZYTjBJc1IwRkRUQ3hOUVVORlFTeEZRVUZGTEdOQlFXTXNTVUZCUzIxRExFZEJRVTF3UWl4SFFVRm5RbTlDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUXk5RGJrTXNSVUZCUlN4SlFVTk9MRVZCUVVVc1MwRkJTeXg1UkVGQmVVUXNSVUZIY0VVc1lVRkJaVVlzUjBGRFZDeE5RVU5GTEVkQlFVY3NUMEZCVHl4TFFVRkxjME1zUlVGQll5eEZRVU40UWl4TFFVRkxMRU5CUVVOd1FpeEZRVUZIUXl4SlFVRk5RU3hGUVVGRkxFOUJRVk5FTEVWQlFVVXNUVUZCVFN4RlFVTnNReXhKUVVGTkxGRkJRVTBzUTBGRGNrSXNSVUZEU2l4VFFVRlhhRUlzUjBGRFRDeFRRVUZQUVN4RlFVRkZMRTlCUVZVc1owSkJRV1ZCTEVWQlFVVXNZVUZCWXl4RFFVRkRjVU1zUlVGQlQzWkRMRVZCUVVkM1F5eEpRVU16UkVZc1IwRkJaVVVzUTBGQlF5eEZRVUZGTEZOQlFWVkRMRWRCUVUxQkxFVkJRVWxHTEVOQlFVc3NRMEZETDBNc1JVRkRTeXhQUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZGTEV0QlFVOHNaVUZCWVN4RlFVRkZMRWRCUVVzc1pVRkJZU3hEUVVGRExFVkJRemxFTEVsQlFVdEhMRWRCUVdOQkxFVkJRVlVzVDBGQlR5eERRVUZETDBJc1JVRkJSMmRETEVsQlFVMW9ReXhGUVVGRkxFdEJRVXRuUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVONFJDeExRVUZMTEhWQ1FVRjFRaXhGUVVkeVF5eFJRVUZWTTBNc1IwRkJVU3hUUVVGUExFMUJRVTBzUlVGSEwwSXNaMEpCUVd0Q1JTeEhRVU5hTEUxQlEwVkJMRVZCUVVVc1MwRkRSa0VzUlVGQlJTeFRRVUZUTEVsQlFVdHRReXhIUVVGTlR5eEhRVUZyUWxBc1EwRkJReXhEUVVGRExFVkJRekZEYmtNc1JVRkJSU3hQUVVOR1FTeEZRVUZGTEVsQlEwWkJMRVZCUVVVc1ZVRkRSa0VzUlVGQlJTeExRVU5HUVN4RlFVRkZMRTlCUTBaQkxFVkJRVVVzVDBGRFRpeEZRVU5LTEdkQ1FVRnJRa0VzUjBGQlRVRXNSVUZCUlN4blFrRkJaMElzVFVGQlVTeFRRVUZQTEVkQlFVY3NSVUZCUlN4TFFVRlBMR1ZCUVdFc1JVRkJSU3hWUVVGVlFTeEZRVUZGTEdWQlFXVXNRMEZCUXl4RlFVTm9TQ3haUVVGalFTeEhRVU5TTEUxQlEwa3NVMEZCVDBFc1JVRkJSU3huUWtGQmJVSXNVMEZCVHl4SFFVRkhMRVZCUVVVc1MwRkJUeXhsUVVGaExFVkJRVWRCTEVWQlFVVXNaMEpCUVdsQ0xFTkJRVU15UXl4RlFVRkhReXhGUVVGSmJFTXNTVUZEZUVZc1EwRkJRMmxETEVOQlFVTXNSVUZCUlN4UFFVRlBha01zUTBGQlF5eERRVU5vUWl4RlFVTkJWaXhGUVVGRkxHVkJRMDRzUTBGRFVpeERRVUZETEVWQlIwdExMRWRCUVdNc1NVRkJTU3hQUVVGUGQwTXNSMEZCVnl4RlFVRkhMRVZCUVVVc1JVRkhiRU5VTEVkQlFXbENMRU5CUXpGQ0xFdEJRVTFWTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM1JETEUxQlFVOUJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzWkRMRWRCUVVsQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNCRExFbEJRVXRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJSWEpETEUxQlFVOUJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFOUJRVkVzUTBGQlJTeERRVUZETEVWQlEzaERMRTlCUVZGQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEU5QlFWRXNRMEZCUlN4RFFVRkRMRVZCUTNwRExFZEJRVWxCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTlCUVZFc1EwRkJSU3hEUVVGRExFVkJRM0pETEVsQlFVdEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFOUJRVkVzUTBGQlJTeERRVUZETEVWQlJYUkRMRXRCUVUxQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNSRExFMUJRVTlCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM1pETEVkQlFVbEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzQkRMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNKRExFVkJRVWRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJSVzVETEVsQlFVdEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFdEJRVTBzUTBGQlJTeERRVUZETEVWQlEzQkRMRXRCUVUxQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEV0QlFVMHNRMEZCUlN4RFFVRkRMRVZCUTNKRExFVkJRVWRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRXRCUVUwc1EwRkJSU3hEUVVGRExFVkJSV3hETEV0QlFVMUJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzUkRMRTFCUVU5QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNaRExFZEJRVWxCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM0JETEVsQlFVdEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzSkRMRVZCUVVkQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUlc1RExFOUJRVkZCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRekZETEZGQlFWTkJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlF6TkRMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUTNaRExFdEJRVTFCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRM2hETEVWQlFVZEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlJYSkRMRTlCUVZGQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUXpGRExGRkJRVk5CTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRek5ETEVsQlFVdEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlEzWkRMRXRCUVUxQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUTNoRExFVkJRVWRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFTkJRM3BETEVWQlIyRXZRaXhIUVVGclFpeERRVU16UWl4SlFVRkxMRWxCUVUxRUxFVkJRVk1zVFVGQlRTeEZRVU14UWl4TlFVRlBMRWxCUVUxQkxFVkJRVk1zVFVGQlRTeEZRVUZGTEZGQlFWRXNTMEZCU3l4RlFVTXpReXhWUVVGWExFbEJRMUJCTEVWQlFWTXNUVUZCVFN4RlFVTldMRkZCUVZFc1MwRkJTeXhGUVVOaUxFMUJRVTFuUXl4RlFVRlRMRmRCUVZjc1EwRkJSU3hMUVVGTkxFTkJRVVVzUTBGQlF5eERRVUZETEVWQlF5OURMRk5CUVZVc1NVRkRUbWhETEVWQlFWTXNUVUZCVFN4RlFVTldMRkZCUVZFc1MwRkJTeXhGUVVOaUxFdEJRVXRuUXl4RlFVRlRMRmRCUVZjc1EwRkJSU3hMUVVGTkxFTkJRVVVzUTBGQlF5eERRVUZETEVWQlF6bERMRWxCUVVzc1NVRkJUV2hETEVWQlFWTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1RVRkJUU3hGUVVNeFF5eG5Ra0ZCYVVJc1NVRkJUVUVzUlVGQlV5eE5RVUZOTEVWQlFVVXNVVUZCVVN4TlFVRk5MRVZCUTNSRUxFbEJRVXNzU1VGQlRVRXNSVUZCVXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hOUVVGTkxFVkJRM2hETEdOQlFXVXNTVUZCVFVFc1JVRkJVeXhOUVVGTkxFVkJRVVVzVFVGQlRTeE5RVUZOTEVWQlEyeEVMRWxCUVVzc1NVRkJUVUVzUlVGQlV5eE5RVUZOTEVWQlFVVXNVVUZCVVN4TlFVRk5MRVZCUXpGRExHZENRVUZwUWl4SlFVRk5RU3hGUVVGVExFMUJRVTBzUlVGQlJTeFJRVUZSTEUxQlFVMHNSVUZEZEVRc1NVRkJTeXhKUVVGTlFTeEZRVUZUTEUxQlFVMHNSVUZCUlN4TlFVRk5MRTFCUVUwc1JVRkRlRU1zWTBGQlpTeEpRVUZOUVN4RlFVRlRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFMUJRVTBzUlVGRGJFUXNTVUZCU3l4SlFVRk5RU3hGUVVGVExFMUJRVTBzUlVGQlJTeFJRVUZSTEU5QlFVOHNSVUZETTBNc2FVSkJRV3RDTEVsQlFVMUJMRVZCUVZNc1RVRkJUU3hGUVVGRkxGRkJRVkVzVDBGQlR5eEZRVU40UkN4SlFVRkxMRWxCUVUxQkxFVkJRVk1zVFVGQlRTeEZRVUZGTEUxQlFVMHNUMEZCVHl4RlFVTjZReXhsUVVGblFpeEpRVUZOUVN4RlFVRlRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFOUJRVThzUTBGRGVFUXNSVUVyUTJGcFF5eEhRVUZsTEdsQ1FVRnRReXhEUVVVelJDeFRRVUZYYWtRc1IwRkJUVVFzUlVGQlZ5eFhRVUZYTEVsQlFVbHRSQ3hIUVVGWkxGRkJRVkVzUlVGQlJTeExRVUZMTEZWQlFWVXNSVUZEYUVZc1QwRkJVMnhFTEVkQlFVMUVMRVZCUVZjc1QwRkJUeXhKUVVGSmJVUXNSMEZCV1N4UFFVRlBMRVZCUVVVc1MwRkJTeXhSUVVGUkxFVkJRM1pGTEU5QlFWTnNSQ3hIUVVGTlJDeEZRVUZYTEU5QlFVOHNTVUZCU1cxRUxFZEJRVmtzVDBGQlR5eEZRVUZGTEV0QlFVc3NVVUZCVVN4RlFVTjJSU3hMUVVGUGJFUXNSMEZCVFVRc1JVRkJWeXhMUVVGTExFbEJRVWx0UkN4SFFVRlpMRTlCUVU4c1JVRkJSU3hMUVVGTExGTkJRVk1zUlVGRGNFVXNTMEZCVDJ4RUxFZEJRMGh0UkN4SFFVRmxMRTlCUVZGd1JDeEZRVUZYTEZGQlFWRXNSVUZEY2tNc1NVRkJTU3hEUVVGRExFTkJRVU54UkN4RlFVRlBReXhEUVVGSkxFbEJRVTFJTEVkQlFWa3NVVUZCVVVjc1EwRkJTU3hEUVVGRExFVkJRMmhFTEV0QlFVc3NUVUZCVFN4RlFVTndRaXhUUVVGWGNrUXNSMEZEVUcxRUxFZEJRV1VzVFVGQlQzQkVMRVZCUVZjc1VVRkJVU3hGUVVOd1F5eEpRVUZKTEVOQlFVTXNRMEZCUTNGRUxFVkJRVTlGTEVOQlFVY3NTVUZCVFVvc1IwRkJXU3hSUVVGUlNTeERRVUZITEVOQlFVTXNSVUZET1VNc1MwRkJTeXhWUVVGVkxFVkJRM2hDTEV0QlFVOTBSQ3hIUVVGTlJDeEZRVUZYTEZGQlFWRXNTVUZCUzBNc1IwRkJUV3RFTEVkQlFWa3NTVUZCU1N4RlFVTXpSQ3hMUVVGUGJFUXNSMEZCVFVRc1JVRkJWeXhMUVVGTExFbEJRVWx0UkN4SFFVRlpMRTlCUVU4c1JVRkRjRVFzUzBGQlQyaEVMRWRCUTBoQkxFVkJRVVVzVjBGRFJ5eE5RVUZSTEZOQlFVOHNSMEZCUnl4RlFVRkZMRXRCUVU4c1pVRkJZU3hEUVVGRExFVkJRM3BETEV0QlFVOHNVMEZCVHl4SFFVRkhMRVZCUVVVc1MwRkJUeXhsUVVGaExFVkJRVXNzWjBKQlFXTXNTMEZCVHl4VFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRemRGTEVsQlFVdFZMRWRCUVUxelF5eEhRVUZaTEV0QlFVdDBReXhEUVVGRExFTkJRVU1zUlVGRE9VSXNTMEZCU3l4TlFVRk5MRVZCUTNCQ0xFOUJRVk5XTEVkQlEwZ3NVMEZEUlVnc1JVRkJWeXhYUVVGWExFZEJRVWRCTEVWQlFWY3NUVUZCVFN4RlFVTjRReXhUUVVGUExFZEJRVWNzUlVGQlJTeExRVUZQTEdWQlFXRXNSVUZEYkVOSExFVkJRVVVzVjBGRFJpeERRVUZEY1VRc1JVRkJUVU1zUlVGQlRVTXNTMEZEUml4RFFVRkZMRXRCUVVGR0xFVkJRVTBzVFVGQlFVVXNRMEZCVFN4RlFVVTNRaXhGUVVOTExFMUJRVkVzVTBGQlR5eEhRVUZITEVWQlFVVXNTMEZCVHl4bFFVRmhMRU5CUVVNc1JVRkRla01zUzBGQlR5eFRRVUZQTEVkQlFVY3NSVUZCUlN4TFFVRlBMR1ZCUVdFc1JVRkJTeXhuUWtGQll5eExRVUZQTEZOQlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkROMFVzU1VGQlMwTXNSMEZCVXl4RFFVTllMRWxCUVVsRExFVkJRV3RETEVOQlFVTXNSVUZEZGtNc1VVRkJVME1zUzBGQlUwWXNSVUZCVFVNc1JVRkJTVU1zUlVGQlRTeEpRVUZKTEVWQlFVbEJMRVZCUVUwc1RVRkRhRVFzVDBGQlQxWXNSMEZCV1N4UFFVRlBVeXhEUVVGSExFTkJRMnBETEVOQlFVTXNSVUZEUVN4TFFVRkxMREpDUVVFeVFpeEZRVVY2UXl4TFFVRlBla1FzUjBGRFJDeE5RVVZGU0N4RlFVRlhMRlZCUVZVc1NVRkJTMkVzUjBGQlRYTkRMRWRCUVZrc1VVRkJVWFJETEVOQlFVTXNRMEZCUXl4RlFVTjBSRllzUlVGQlJTeFJRVU5HUVN4RlFVRkZMRXRCUTBaQkxFVkJRVVVzUzBGRFJrRXNSVUZCUlN4UFFVTkdRU3hGUVVGRkxFOUJRMFpCTEVWQlFVVXNUMEZEUmtFc1JVRkJSU3hMUVVOR1FTeEZRVUZGTEU5QlEwWkJMRVZCUVVVc1QwRkRSa0VzUlVGQlJTeExRVU5HUVN4RlFVRkZMRk5CUTBaQkxFVkJRVVVzUzBGRFJrRXNSVUZCUlN4UlFVTk9MRVZCUTBvc1RVRkJVVUVzUjBGRFJpeFRRVUZQUVN4RlFVRkZMRXRCUVZFc1RVRkJTVUVzUlVGQlJTeFhRVUZaUVN4RlFVRkZMR0ZCUVdOQkxFVkJRVVVzWlVGQlpTeEZRVUZGTEV0QlFVc3NSVUZCUnl4RFFVRkRNa1FzUlVGQlMwTXNTVUZCWXl4RFFVTm9SeXhKUVVGSlF5eEZRVUZUUml4RlFVTmlMRkZCUVZOSExFdEJRVkZHTEVWQlEySXNUMEZCVVVVc1JVRkJTeXhMUVVGTkxFTkJRMllzU1VGQlN5eE5RVU5FUkN4RlFVRlRZaXhIUVVGWkxFMUJRVTFoTEVWQlFWRmlMRWRCUVZrc1VVRkJVV01zUlVGQlN5eEpRVUZKTEVOQlFVTXNSVUZEYWtVc1RVRkRTaXhKUVVGTExGRkJRMFJFTEVWQlFWTmlMRWRCUVZrc1RVRkJUV0VzUlVGQlVVTXNSVUZCU3l4SlFVRkpMRVZCUXpWRExFMUJRMG9zU1VGQlN5eFhRVU5FUkN4RlFVRlRZaXhIUVVGWkxFdEJRVXRoTEVWQlFWRkRMRVZCUVVzc1MwRkJTeXhGUVVNMVF5eExRVU5TTEVOQlIwb3NUMEZCVDBRc1EwRkRXQ3hEUVVGRExFVkJRMHdzVVVGQlZUZEVMRWRCUVZFc1UwRkJVeXhUUVVGUExFZEJRVWNzUlVGQlIwRXNSVUZCUlN4TlFVRlBMRU5CUVVOR0xFVkJRVWRwUlN4SlFVRlZaaXhIUVVGWkxFOUJRVTlsTEVOQlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1pVRkJaU3hGUVVNNVJ5eFBRVUZUTDBRc1IwRkJUVUVzUlVGQlJTeFhRVUZYTEV0QlFVOHNaVUZCWVN4RlFVRkZMRXRCUVU4c1UwRkJUeXhIUVVGSExFVkJRVXNzVTBGQlR5eEhRVUZITEVOQlFVTXNSVUZEYmtZc1QwRkJVMEVzUjBGRFNDeFRRVU5GU0N4RlFVRlhMRmRCUTA0c1RVRkJVU3hUUVVGUExFZEJRVWNzUlVGQlJTeExRVUZQTEdWQlFXRXNRMEZCUXl4RlFVTjZReXhMUVVGUExGTkJRVThzUjBGQlJ5eEZRVUZGTEV0QlFVOHNaVUZCWVN4RlFVRkxMRk5CUVU4c1IwRkJSeXhGUVVGRkxFdEJRVThzWlVGQllTeERRVUZETEVWQlEyaEdMRk5CUVU4c1NVRkJTU3hGUVVGRkxFdEJRVThzWlVGQllTeEZRVU51UTBjc1JVRkJSU3hYUVVOR0xFTkJRVU5uUlN4RlFVRlBReXhGUVVGVFZpeExRVU5PTEVOQlFVVXNTMEZCVFN4VFFVRlZMRlZCUVZkVExFVkJRVThzVFVGQlFWUXNRMEZCVFN4RlFVVjZSQ3hGUVVWS0xGZEJRV0YyUkN4SFFVRlJMRk5CUVZNc1UwRkJUeXhIUVVGSExFVkJRVWRJTEVWQlFWY3NWMEZCV1N4RFFVRkRReXhGUVVGSGIwVXNTMEZCVlN4RFFVRkZMRXRCUVUwc1RVRkJUeXhMUVVGQlFTeERRVUZMTEVWQlFVVXNSVUZEZEVjc1lVRkJaV3hGTEVkQlExUXNVMEZEU1N4VFFVRlBMRWRCUVVjc1JVRkRWaXhuUWtGRFJrRXNSVUZCUlN4WFFVTkJMR2RDUVVOQkxGTkJRVThzUjBGQlJ5eEZRVU5hTEVOQlFVTkdMRVZCUVVkeFJTeEZRVUZKUkN4RlFVRk5SU3hGUVVGSlF5eExRVU5RTEVOQlFVVXNTMEZCVFN4UlFVRlRMRXRCUVVGSUxFTkJRVXNzUlVGRmNrTXNSVUZEU2l4blFrRkJhMEpzUlN4SFFVTmFMRk5CUTBrc1UwRkJUeXhIUVVGSExFVkJRMVlzWjBKQlEwWkJMRVZCUVVVc1YwRkJWeXhOUVVGUkxGTkJRVThzUjBGQlJ5eEZRVUZGTEV0QlFVOHNaVUZCWVN4RFFVRkRMRVZCUTNCRUxHZENRVU5CTEZOQlFVOHNSMEZCUnl4RlFVTmFMRU5CUVVOR0xFVkJRVWQzUlN4RlFVRkpReXhGUVVGUFNpeEZRVUZKUXl4TFFVTlNMRU5CUVVVc1MwRkJUU3hYUVVGWkxFMUJRVUZITEVOQlFVMHNSVUZGZWtNc1JVRkhTaXhoUVVGbGRrVXNSMEZCVFhkRkxFZEJRVzFDZUVVc1JVRkJSU3hOUVVGUFNDeEZRVUZYTEdGQlFXTnRSQ3hIUVVGWkxGRkJRVkVzUlVGRE9VWXNaMEpCUVd0Q2FFUXNSMEZCVFhkRkxFZEJRVzFDZUVVc1JVRkJSU3hoUVVGalNDeEZRVUZYTEdkQ1FVRnBRbTFFTEVkQlFWa3NVVUZCVVN4RlFVTXpSeXhqUVVGblFtaEVMRWRCUVUxM1JTeEhRVUZ0UW5oRkxFVkJRVVVzWjBKQlFXbENTQ3hGUVVGWExHZENRVUZwUW0xRUxFZEJRVmtzVVVGQlVTeEZRVU0xUnl4alFVRm5RbWhFTEVkQlExcDNSU3hIUVVGdFFuaEZMRVZCUVVVc1kwRkJaVWdzUlVGQlZ5eFpRVUZaTEVkQlFVZEJMRVZCUVZjc1ZVRkJWU3hGUVVGSGJVUXNSMEZCV1N4UlFVRlJMRVZCUXpsSExGTkJRVmRvUkN4SFFVRk5RU3hGUVVGRkxHTkJSVzVDTEZkQlFXRkJMRWRCUVUxQkxFVkJRVVVzVVVGRGVrSXNRMEZCUXl4RlFXZERXWGxGTEVkQlFWVXNhVUpCUVRoQ0xFTkJRMnBFTEZOQlFWY3pSU3hIUVVGTlJDeEZRVUZYTEVsQlFVa3NTVUZCU3pCRUxFbEJRVmNzUTBGQlJTeExRVUZOTEZOQlFWVXNUVUZCUVVFc1EwRkJUU3hGUVVGRkxFVkJRekZGTEZGQlFWVjZSQ3hIUVVGTmJVUXNSMEZCWlN4TFFVRk5jRVFzUlVGQlZ5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVORExFVkJRVWMwUlN4RFFVRkZMRXRCUVU4c1EwRkJSU3hMUVVGTkxFdEJRVTBzVFVGQlQwRXNRMEZCUnl4RlFVRkZMRVZCUTNCSExGVkJRVmsxUlN4SFFVTk9MRk5CUVU4c1IwRkJSeXhGUVVOUUxFdEJRVXRFTEVWQlFWY3NWVUZCVlN4RlFVTXhRaXhKUVVGTE1FUXNTVUZCVnl4RFFVRkZMRXRCUVUwc1VVRkJVeXhOUVVGUFFTeERRVUZOTEVWQlFVVXNSVUZGZWtRc1ZVRkJXWHBFTEVkQlExSnRSQ3hIUVVGcFFpeFRRVUZQTEZOQlFWTXNSVUZCUlN4TFFVRkxMRk5CUVZNc1JVRkJSM0JFTEVWQlFWY3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE9FVXNSVUZCVFVNc1EwRkJTU3hMUVVGUExFTkJRekZHTEV0QlFVMHNUMEZEVGl4TlFVRlBRU3hGUVVOUUxFMUJRVTlFTEVWQlFVc3NXVUZCV1N4SlFVRk5MRTlCUTJ4RExFVkJRVVVzUlVGRlRpeGpRVUZuUWpORkxFZEJRMXBwUkN4SFFVRnBRaXhUUVVGUExIRkNRVUZ4UWl4RlFVRkZMRXRCUVVzc1ZVRkJWU3hGUVVGSGFrUXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU15UlN4RlFVRk5SU3hEUVVGUkxFdEJRVThzUTBGRGFrY3NTMEZCVFN4WlFVTk9MRk5CUVVGQkxFVkJRMEVzVlVGQlYwWXNSVUZCU3l4WlFVRlpMRWxCUVUwc1YwRkRkRU1zUlVGQlJTeEZRVU5PTEdGQlFXVXpSU3hIUVVOWWFVUXNSMEZCYVVJc1UwRkJUeXhyUWtGQmEwSXNSVUZCUlN4TFFVRkxMRk5CUVZNc1JVRkJSMnBFTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE1rVXNSVUZCVFVjc1EwRkJUeXhMUVVGUExFTkJRelZHTEV0QlFVMHNWMEZEVGl4UlFVRkJRU3hGUVVOQkxGVkJRVmRJTEVWQlFVc3NXVUZCV1N4SlFVRk5MRk5CUTNSRExFVkJRVVVzUlVGRFRpeHJRa0ZCYjBJM1JTeEhRVU5vUWtRc1JVRkJWeXhMUVVGTExFbEJRVXRyUml4SlFVRlZMRU5CUXpOQ0xFdEJRVTBzVTBGRFRpeFBRVUZSTEVOQlFVVXNTMEZCVFN4UFFVRlJMRTFCUVU5QkxFTkJRVXNzUlVGRGNFTXNWVUZCVnl4VlFVTm1MRVZCUVVVc1JVRkRUaXhaUVVGakwwVXNSMEZEVm1sRUxFZEJRV2xDTEZOQlFVOHNLMEpCUVN0Q0xFVkJRVVVzUzBGQlN5eFhRVUZYTEVWQlFVZHFSQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXpKRkxFVkJRVTFMTEVOQlFVMHNTMEZCVHl4RFFVTXhSeXhMUVVGTkxGTkJRMDRzVDBGQlFVRXNSVUZEUVN4VlFVTkpUQ3hGUVVGTExGbEJRVmtzUjBGQlN5eFZRVUZaTEZkQlFXRkJMRVZCUVVzc1dVRkJXU3hIUVVGTExHRkJRV1VzVjBGQllTeE5RVU42Unl4RlFVRkZMRVZCUTA0c1dVRkJZemRGTEVkQlExWnRSQ3hIUVVGcFFpeFRRVUZQTEZOQlFWTXNSVUZCUlN4TFFVRkxMRkZCUVZFc1JVRkJSM0JFTEVWQlFWY3NWMEZCVnl4SFFVRkhRU3hGUVVGWExFMUJRVTBzUTBGQlF5eEZRVUZGTEVsQlF6VkdMRU5CUVVNc1EwRkJRM0ZFTEVWQlFVOWpMRU5CUVVzc1MwRkJUeXhEUVVOcVFpeExRVUZOTEZGQlEwNHNUVUZCVDBFc1EwRkRXQ3hGUVVOS0xFVkJRMG9zYzBKQlFYZENhRVVzUjBGRGNFSnBSQ3hIUVVGcFFpeFRRVUZQTEU5QlFVOHNSVUZCUlN4TFFVRkxMRTFCUVUwc1JVRkJSMFlzUjBGQlZ5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVOcVJDeEZRVUZIYjBVc1EwRkJTU3hMUVVGUExFTkJRM1JHTEV0QlFVMHNZVUZEVGl4WFFVRlpRU3hEUVVOb1FpeEZRVUZGTEVWQlEwNHNiVUpCUVhGQ2JFVXNSMEZCVFN0RExFZEJRVmNzWTBGQll5eEpRVUZMYlVJc1NVRkJWU3hEUVVGRkxFdEJRVTBzWVVGQll5eFhRVUZaUVN4RFFVRkxMRVZCUVVVc1JVRkZOVWNzV1VGQlkyeEZMRWRCUVUxQkxFVkJRVVVzVFVGQlRTeExRVUZQTEdWQlFXRXNSVUZCUlN4TFFVRlBMRk5CUVU4c1IwRkJSeXhGUVVGTExGTkJRVThzUjBGQlJ5eERRVUZETEVWQlEyNUdMRmxCUVdOQkxFZEJRMUlzVTBGQlR5eEhRVUZITEVWQlExQXNTMEZCVHl4bFFVRmhMRVZCUTNCQ0xFdEJRVXRCTEVWQlFVVXNVMEZCVXl4RlFVTm9RaXhKUVVGTGRVUXNTVUZCVnl4RFFVTmlMRXRCUVUwc1RVRkRUaXhSUVVGVFFTeERRVU5pTEVWQlFVVXNSVUZEVml4VlFVRlpka1FzUjBGRFRpeE5RVU5GUVN4RlFVRkZMRmxCUTBaQkxFVkJRVVVzV1VGRFJrRXNSVUZCUlN4clFrRkRSa0VzUlVGQlJTeFRRVU5HUVN4RlFVRkZMRlZCUTBaQkxFVkJRVVVzVVVGRFJrRXNSVUZCUlN4WlFVTkdRU3hGUVVGRkxHRkJRMFpCTEVWQlFVVXNZMEZEUmtFc1JVRkJSU3haUVVOR1FTeEZRVUZGTEZWQlEwWkJMRVZCUVVVc2MwSkJSVVpCTEVWQlFVVXNhMEpCUTA0c1JVRkRTaXhWUVVGWlFTeEhRVU5TZDBVc1IwRkJiVUo0UlN4RlFVRkZMRlZCUVZkSUxFVkJRVmNzV1VGQllTeERRVUZEYjBZc1JVRkJUVU1zUlVGQlMwTXNTMEZCVnl4RFFVTXpSU3hMUVVGTkxFMUJRMDRzVTBGQlZTeERRVUZEUml4RlFVRk5SU3hEUVVGTExFTkJRekZDTEVWQlFVVXNSVUZEVGl4VFFVRlhia1lzUjBGRFVIZEZMRWRCUVcxQ2VFVXNSVUZCUlN4VlFVRlhTQ3hGUVVGWExGZEJRVmtzUTBGQlEyOUdMRVZCUVUxRExFVkJRVXRETEV0QlFWY3NRMEZETVVVc1MwRkJUU3hMUVVOT0xGTkJRVlVzUTBGQlEwWXNSVUZCVFVVc1EwRkJTeXhEUVVNeFFpeEZRVUZGTEVWQlEwNHNUVUZCVVc1R0xFZEJRVTFCTEVWQlFVVXNVMEZCVXl4TFFVRlBMR1ZCUVdFc1EwRkRha1FzUTBGQlF5eEZRV1ZOTEZOQlFWTnZSaXhIUVVOYVF5eEZRVU5CUXl4RlFVTkJReXhGUVVOWExFTkJRMWdzVDBGQlV5eFRRVUZQUml4RlFVRlRMRTFCUVUwc1owSkJRV1ZETEVWQlFVOHNaMEpCUVdWRUxFTkJRVXNzUlVGQlJTeExRVUZMTEVWQlFVY3NRMEZCUTBjc1JVRkJUME1zU1VGQlV5eERRVU5vUnl4SFFVRkpRU3hGUVVGTExGRkJRVlVzUlVGQlJ5eFBRVUZQUkN4RlFVVTNRaXhKUVVGSlJTeEZRVUZQU0N4RlFVRlJReXhGUVVGUFF5eEZRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVkQkxFVkJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVTm9SQ3hSUVVGVFJTeEZRVUZSTEVWQlFVZEJMRVZCUVZGR0xFVkJRVXNzVDBGQlVVVXNTVUZEY2tORUxFVkJRVTlJTEVWQlFWRkhMRVZCUVUxRUxFVkJRVXRGTEVOQlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVkR0xFVkJRVXRGTEVOQlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkZka1FzVDBGQlQwUXNRMEZEV0N4RFFVRkRMRU5CUTB3c1EwRkxUeXhUUVVGVFJTeEhRVUZyUWtNc1JVRkJhVU5ETEVWQlFUQkRMRU5CUTNwSExFbEJRVTFETEVWQlFWY3NUMEZCVDBZc1IwRkJVeXhUUVVGaExGTkJRVTlCTEVOQlFVa3NSVUZCU1VFc1JVRkROMFFzVDBGQlV5eFRRVU5NUlN4RlFVRlRMRXRCUVU4c1pVRkJZU3hGUVVNM1FrUXNSVUZCU3l4TFFVRlBMR1ZCUVdFc1JVRkJSU3hMUVVGUExGTkJRVThzUjBGQlJ5eEZRVUZMTEZOQlFVOHNSMEZCUnl4RFFVRkRMRVZCUXpWRUxFTkJRVU5GTEVWQlFVZERMRWxCUVUwc1EwRkJRMFFzUlVGQlIwTXNRMEZCUXl4RFFVTnVRaXhEUVVOS0xFTkJSMDhzVTBGQlUwTXNSMEZCV1VNc1MwRkJjMEpETEVWQlFTdERMRU5CUXpkR0xFOUJRVk1zVTBGQlR5eERRVUZEUXl4RlFVRlZReXhKUVVOb1FpeERRVUZEUXl4RlFVRlBMRWxCUVUwc1EwRkRha0lzU1VGQlNVTXNSVUZCVlV3c1JVRkJZU3hGUVVGRlNTeEZRVUZQTEVOQlFVTXNSVUZEY2tNc1IwRkJTU3hEUVVGRFF5eEZRVUZQTEU5QlFWRXNUMEZCVDBFc1JVRkZNMElzVVVGQlUxZ3NTMEZCVVU4c1JVRkJUeXhEUVVOd1FpeEpRVUZKU3l4RlFVRlJXaXhGUVVGTFZ5eEZRVUZQTEV0QlFWVXNSVUZCVlN4RlFVRkZSQ3hGUVVGUFF5eEZRVUZQTEV0QlFVc3NSVUZEYWtVc1IwRkJTU3hEUVVGRFF5eEZRVUZMTEU5QlFWRXNUMEZCVDBRc1JVRkZla0pCTEVWQlFWTkRMRU5CUTJJc1EwRkZRU3hQUVVGUFJDeERRVU5ZTEVOQlEwZ3NRMEZEVEN4RFN6VndRa0VzU1VGQlFVVXNSMEZCYlVJc1UwTklXaXhUUVVGVFF5eEhRVUZ6UWtNc1JVRkJNa0pETEVWQlFYTkRMRU5CUTI1SExFbEJRVTFETEVWQlFUUkNMRU5CUVVNc1JVRkRia01zVDBGQlZ5eERRVUZEUXl4RlFVRkxReXhEUVVGTExFbEJRVXNzVDBGQlR5eFJRVUZSU2l4RFFVRk5MRVZCUXpWRFJTeEZRVUZQUXl4RFFVRkhMRVZCUVVsR0xFVkJRVXRITEVOQlFVc3NSVUZITlVJc1QwRkJUMFlzUTBGRFdDeERRMU5QTEVsQlFWVkhMRTlCUVZZc1EwRkRWVUVzUlVGQlFTeG5Ra0ZCWjBSRExFZEJRVlZCTEVWQlIyaEZMRk5CUVZORExFVkJRVXRETEVWQlFTdENMRU5CUTJoRUxFbEJRVTFETEVWQlFWVkRMRWRCUVZNc1ZVRkJWVVlzUTBGQlR5eEZRVU14UXl4SFFVRkpMRU5CUVVORExFVkJRVk1zVDBGQlR5eExRVVZ5UWl4UFFVRlJRU3hIUVVGQkxGbEJRVUZCTEVWQlFWTXNTMEZCVFN4RFFVTnVRaXhKUVVGTExGRkJRMFFzVDBGQlQwRXNSVUZCVVN4TlFVRk5MRWxCUVVsS0xFVkJRV1VzU1VGQlNTeEZRVU5vUkN4SlFVRkxMRk5CUTBRc1QwRkJUMDBzUjBGQlowSkdMRVZCUVZFc1RVRkJUMG9zUlVGQlpTeEpRVUZKTEVWQlF6ZEVMRWxCUVVzc1QwRkRSQ3hOUVVGUExFTkJRVVVzVDBGQlVTeFBRVUZSTEUxQlFVOUpMRVZCUVZFc1RVRkJUU3hOUVVGTkxFTkJRVVVzWTBGQlpTeEZRVUZMTEVOQlFVTXNRMEZCUlN4RlFVTnFSaXhKUVVGTExFOUJRMFFzVFVGQlR5eERRVUZGTEU5QlFWRXNUMEZCVVN4TlFVRlBRU3hGUVVGUkxFMUJRVTBzVTBGQlV5eERRVUZGTEVWQlF6ZEVMRWxCUVVzc1YwRkRSQ3hOUVVGUExFTkJRVVVzVDBGQlVTeFhRVUZaTEUxQlFVOUJMRVZCUVZFc1RVRkJUU3hOUVVGTkxFTkJRVVVzUlVGRE9VUXNTVUZCU3l4VlFVTk1MRWxCUVVzc1UwRkRUQ3hKUVVGTExGTkJRMFFzVDBGQlQwRXNSVUZCVVN4TlFVTnVRaXhKUVVGTExGZEJRMHdzU1VGQlN5eFBRVU5FTEU5QlFVOHNTVUZEWml4RFFVTktMRU5CZGtKUFNpeEZRVUZUTEV0QlFVRkZMRVZCT0VKVUxGTkJRVk5MTEVWQlFVMU1MRVZCUVcxQ1RTeEZRVUV3UTFJc1JVRkJRU3huUWtGQk1FSXNRMEZEZWtjc1IwRkJTVVVzUjBGQlV5eExRVUUwUWl4UFFVRlBMRXRCUldoRUxFZEJRVWtzVFVGQlRTeFJRVUZSUVN4RFFVRkpMRVZCUTJ4Q0xFOUJRVTlOTEVWQlFWZE9MRVZCUVVzc1NVRkJTMFFzUjBGQlZVUXNSVUZCWlN4TlFVRk5ReXhGUVVGUFR5eERRVUZWTEVOQlFVTXNRMEZCUXl4RlFVTXpSU3hIUVVGSkxFOUJRVTlPTEVkQlFWTXNVMEZCVlN4RFFVTnFReXhIUVVGSkxFVkJRVVVzVjBGQldVRXNSMEZEWkN4UFFVRlBTU3hIUVVGblFrb3NSVUZCVDA4c1IwRkJUVlFzUlVGQlpTeE5RVUZOVXl4RlFVRnJRa1FzUTBGQlZTeERRVUZETEVWQlJURkdMRWxCUVUxRkxFVkJRVTlTTEVWQlFVc3NUMEZEYkVJc1QwRkJVVkVzUlVGQlRTeERRVU5XTEVsQlFVc3NUMEZEUkN4UFFVRlBSaXhGUVVGWFJ5eEZRVUZUTEZGQlFWRlVMRVZCUVVzc1RVRkJUeXhEUVVGRkxGRkJRVk1zUlVGQlN5eERRVUZETEVOQlFVTXNSVUZEY2tVc1NVRkJTeXhYUVVORUxFOUJRVTlOTEVWQlFWZEpMRVZCUVZNc1VVRkJVVllzUlVGQlN5eExRVUZMTEVOQlFVTXNSVUZEYkVRc1NVRkJTeXhQUVVORUxFOUJRVTlOTEVWQlFWZExMRWRCUVVzc1YwRkJWMWdzUlVGQlN5eExRVUZMTEVOQlFVTXNSVUZEYWtRc1VVRkRTU3hOUVVGTkxFbEJRVWtzVFVGQlRTeHBRMEZCYVVOUkxFTkJRVWtzU1VGQlNTeERRVU5xUlN4RFFVTktMRU5CUjBFc1QwRkJUMFlzUlVGQlYwNHNRMEZCWlN4RFFVTnlReXhEUVhoQ1QwWXNSVUZCVXl4TlFVRkJUeXhKUVd4RFNGQXNVVUZCUVN4TFJuTkVWaXhUUVVGVFl5eEhRVUZuUWtNc1JVRkJjVU1zUTBGRGFrVXNUMEZCVHl4UFFVRlBMRTlCUVU4c1EwRkJReXhGUVVGSFFTeEZRVUZQTEVOQlFVVXNUVUZCVDBNc1IwRkJaU3hMUVVGTFJDeEZRVUZOTEV0QlFVc3NRMEZCUlN4RFFVRkRMRU5CUXk5RkxFTkJWVThzVTBGQlUwVXNSMEZEV2tNc1JVRkRRVU1zUlVGRE1rSXNRMEZETTBJc1QwRkJTU3hOUVVGTkxGRkJRVkZFTEVOQlFVc3NSVUZEV2tFc1JVRkJUU3hKUVVGTFJTeEhRVUZOU0N4SFFVRmpSeXhGUVVGSFJDeERRVUZOTEVOQlFVTXNSVUZITjBNc1EwRkRTQ3hKUVVGTFJDeEZRVUZOTEVsQlExZ3NTVUZCUzBFc1JVRkJUU3hOUVVOWUxFMUJRVTlITEVkQlFXbENTQ3hGUVVGTkxFdEJRVXNzUlVGRGJrTXNVMEZCVlN4RFFVTk9MRXRCUVUxRExFVkJRMDRzVFVGQlQwUXNSVUZCVFN4TlFVTmlMRmRCUVZsQkxFVkJRVTBzVjBGRGJFSXNTVUZCUzBFc1JVRkJUU3hIUVVObUxFVkJRMEVzVTBGQlZVRXNSVUZCVFN4UlFVTndRaXhEUVVOS0xFTkJSMDhzU1VGQlRVa3NSMEZCTUVRc1QwRkJUeXhQUVVGUExFTkJRMnBHTEVsQlFVc3NTVUZEVEN4SlFVRkxMRWRCUTFRc1EwRkJReXhGUVUxRUxGTkJRVk5ETEVkQlEweERMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRVZCUXl0RExFTkJReTlETEVsQlFVbERMRVZCUVZVc1JVRkRWa01zUlVGQlZTeEhRVU5rTEZGQlFWTkRMRVZCUVZGTUxFVkJRVTlMTEVWQlFWRk9MRVZCUVVzc1QwRkJVVTBzU1VGQlV5eERRVU5zUkN4SlFVRkpReXhGUVVGUFVDeEZRVUZMTEU5QlFVOU5MRU5CUVVzc1JVRkhOVUlzUjBGQlNVTXNSMEZCVVN4TFFVRk5MRU5CUTJSR0xFVkJRVlVzUTBGQlEwRXNSVUZEV0N4UlFVTktMRU5CUjBFc1IwRkJTVUVzUlVGQlV5eERRVU5VUVN4RlFVRlZMRWRCUTFZc1VVRkRTaXhEUVUxQkxFZEJTa2xGTEVkQlFWRk1MRVZCUVUxRkxFbEJRMVJITEVkQlFWRktMRWRCUVU5RExFbEJSM0JDUVN4RlFVRlZMRVZCUVVjc1RVRkJUeXhEUVVGRkxFMUJRVTlLTEVWQlFVc3NWVUZCVlVNc1JVRkJUMHNzUTBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUnl4VFFVRlZRU3hGUVVGUkxFTkJRVVVzUlVGRk1VWkVMRVZCUVZVc1JVRkRaQ3hEUVVkS0xFTkJSMEVzVTBGQlUwY3NSMEZCWTFJc1JVRkJZME1zUlVGQlowVXNRMEZEYWtjc1NVRkJTVkVzUlVGQlRWUXNSVUZCU3l4UlFVRlJMRXRCUVUxRExFTkJRVXNzUlVGRGJFTXNSMEZCU1N4RlFVRkJVU3hGUVVGTkxFZEJSVllzVFVGQlR5eERRVUZGTEVsQlFVdFVMRVZCUVVzc1ZVRkJWVU1zUlVGQlQxRXNRMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJSeXhYUVVGWlFTeEZRVUZOTEVOQlFVVXNRMEZEZWtVc1EwRkhRU3hUUVVGVFF5eEhRVUYzUWxZc1JVRkJZME1zUlVGQk5rTXNRMEZEZUVZc1NVRkJTVU1zUlVGQlQwWXNSVUZCU3l4UFFVRlBReXhEUVVGTExFVkJSWGhDVlN4RlFVRk5TQ3hIUVVGalVpeEZRVUZOUXl4RlFVRlJMRU5CUVVNc1JVRkRka01zUjBGQlNWVXNTVUZCVVN4UFFVRlhMRTlCUjNaQ0xGRkJRVk5HTEV0QlFVOHNUMEZCVHl4TFFVRkxXQ3hGUVVGeFFpeEZRVUZGTEU5QlFVOHNUMEZCVHl4UFFVRlBRU3hGUVVGeFFpeERRVUZETEVWQlF6RkdMRWRCUVVsaExFVkJRVWtzU1VGQlNTeFRRVUZUUml4RFFVRkhMRVZCUVVjc1QwRkhMMElzU1VGQlNVY3NSVUZCVVdJc1IwRkJXVU1zUlVGQlRWY3NSVUZCU1N4WFFVRlpWQ3hGUVVGTlNpeEhRVUZ6UWtrc1EwRkJTU3hEUVVGRExFVkJReTlGTEVkQlFVbFZMRWxCUVZVc1QwRkZaQ3hOUVVGUExFTkJRMGdzU1VGQlMwUXNSVUZCU1N4SlFVTlVMRTFCUVU5RExFVkJRVTBzVFVGRFlpeE5RVUZQV0N4RlFVTlFMRmRCUVZsVkxFVkJRVWtzVjBGRGFFSXNTVUZCUzBNc1JVRkJUU3hUUVVOWUxGTkJRVlZXTEVOQlEyUXNRMEZEU2l4RFFVZFBMRk5CUVZOTUxFZEJRV2xDWlN4RlFVRjNRaXhEUVVkeVJDeEhRVUZKUVN4RlFVRk5MRXRCUVVzc1IwRkJTeXhIUVVGSkxFOUJRVThzUzBGTEwwSXNTVUZCU1VNc1JVRkJVME1zUlVGQlZ5eFpRVUZaTEUxQlFVMUdMRU5CUVVzc1JVRkRMME1zVDBGQlNVTXNSVUZCVHl4UFFVRmxRU3hGUVVGUExFMUJRM0pDUkN4RFFVTm9RaXhEUVZGUExGTkJRVk5ITEVkQlFXOUNaaXhGUVVGalowSXNSVUZCTmtJc1IwRkJNa0lzUTBGRGRFY3NTVUZCU1VNc1JVRkJOa0lzUTBGQlF5eEZRVU5zUXl4UlFVRlRReXhMUVVGWExFOUJRVThzUzBGQlMzQkNMRVZCUVhGQ0xFVkJRVWNzUTBGRGNFUXNTVUZCU1hGQ0xFVkJRV0Z1UWl4RlFVRkxMRkZCUVZGclFpeERRVUZQTEVWQlEzSkRMRXRCUVU5RExFZEJRV01zUjBGQlJ5eERRVU53UWl4SlFVRkpReXhGUVVGalZpeEhRVUYzUWxZc1JVRkJUVzFDTEVOQlFWVXNSVUZETVVRc1IwRkJTU3hEUVVGRFF5eEZRVUZoTEVOQlEyUkVMRVZCUVdGdVFpeEZRVUZMTEZGQlFWRnJRaXhGUVVGVFF5eEZRVUZoTEVOQlFVTXNSVUZEYWtRc1VVRkRTaXhEUVVWQlJpeEZRVUZQTEV0QlFVdEhMRU5CUVZjc1JVRkRka0pFTEVWQlFXRnVRaXhGUVVGTExGRkJRVkZyUWl4RlFVRlRSU3hGUVVGWkxFZEJRVWNzUTBGRGRFUXNRMEZEU2l4RFFVVkpTaXhKUVVGdFFrTXNSVUZCVTBFc1JVRkJUeXhQUVVGUFNTeEhRVUY1UW5KQ0xFTkJRVWtzUTBGQlF5eEhRVVUxUldsQ0xFVkJRVThzUzBGQlN5eERRVUZEU3l4RlFVRkhReXhKUVVGTlJDeEZRVUZGTEUxQlFWRkRMRVZCUVVVc1MwRkJTeXhGUVVWMlF5eEpRVUZKUXl4RlFVRnhReXhEUVVGRExFVkJRekZETEZGQlFWTkRMRVZCUVVrc1JVRkJSMEVzUlVGQlNWSXNSVUZCVHl4UFFVRlJVU3hMUVVNelFrRXNSMEZCU3l4SFFVRkxSQ3hGUVVGbFFTeEZRVUZsTEU5QlFWTXNRMEZCUXl4RlFVRkZMRWxCUVUxUUxFVkJRVTlSTEVOQlFVTXNSVUZCUlN4UlFVTndSVVFzUlVGQlpTeExRVUZMVUN4RlFVRlBVU3hEUVVGRExFTkJRVU1zUlVGSGNrTXNUMEZCVDBRc1EwRkRXQ3hEUVVkQkxFbEJRVTFGTEVkQlFYbERMRTlCUTNwRExGVkJRVThzU1VGQlNTeFBRVUZQUXl4SFFVRlhMRVZCUVVjc1IwRkJSeXhEUVVGRExFVkJRM0JETEZWQlFVOHNNRUpCUVRCQ0xFTkJRM1pETEVWQlEwc3NTMEZCU3l4RlFVTk1MRWxCUVV0RExFZEJRVlZCTEVWQlFVMHNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkZOVUpETEVkQlFUSkRMRlZCUVU4c2MwSkJRWE5DTEVWQlEzcEZMRXRCUVV0SUxFVkJRV3RDTEVWQlEzWkNMRXRCUVU4c1ZVRkJUeXhYUVVGWExFTkJRVU1zUlVGSGVFSXNVMEZCVTBrc1IwRkJjVUpETEVWQlFUUkRMRU5CUXpkRkxFbEJRVWwwUWl4RlFVRk5SQ3hIUVVGamRVSXNSVUZCVFN4RFFVRkRMRVZCUXk5Q0xFZEJRVWtzUTBGQlEzUkNMRVZCUVVzc1QwRkpWaXhKUVVGSmRVSXNSVUZCVlVnc1IwRkJjVUlzVFVGQlRYQkNMRVZCUVVrc1IwRkJSeXhGUVVOb1JDeEhRVUZMZFVJc1JVRkJVU3hQUVVWaUxFMUJRVThzUTBGRFNDeEpRVUZMUVN4RlFVRlJMRTFCUTJJc1RVRkJUMFFzUlVGQlN5eFZRVUZWZEVJc1JVRkJTU3hWUVVGVkxFVkJRVVVzUzBGQlN5eEZRVU16UXl4TlFVRlBMRVZCUTFBc1YwRkJXVUVzUlVGQlNTeFhRVU5vUWl4SlFVRkxjMElzUlVGQlN5eE5RVU5rTEVOQlEwb3NRMEZGVHl4SlFVRk5SU3hIUVVGeFFpeHJRMEZEY2tKRExFZEJRV2xDTEc5RlFVTnFRa01zUjBGQmEwSXNhME5CUTJ4Q1F5eEhRVUYxUWl3MFEwRkRka0pETEVkQlFXMUNMRzFEUVVWdVFrTXNSMEZCWjBJc1EwRkRla0lzUTBGQlJTeE5RVUZQVEN4SFFVRnZRaXhKUVVGTExGTkJRVlVzUlVGRE5VTXNRMEZCUlN4TlFVRlBTU3hIUVVGclFpeEpRVUZMTEU5QlFWRXNSVUZEZUVNc1EwRkJSU3hOUVVGUFJDeEhRVUZ6UWl4SlFVRkxMRmRCUVZrc1JVRkRhRVFzUTBGQlJTeE5RVUZQUml4SFFVRm5RaXhKUVVGTExFdEJRVTBzUlVGRGNFTXNRMEZCUlN4TlFVRlBReXhIUVVGcFFpeEpRVUZMTEZsQlFXRXNRMEZEYUVRc1JVRkhRU3hUUVVGVFpDeEhRVUY1UW5KQ0xFVkJRV3RETEVOQlEyaEZMRWxCUVVsMVF5eEZRVUU0UWl4RFFVRkRMRVZCUlc1RExFOUJRVk1zUTBGQlJTeE5RVUZCUXl4RlFVRlBMRWxCUVVFM1FpeERRVUZKTEVsQlFVc3lRaXhIUVVGbExFTkJRM1JETEVsQlFVMUhMRVZCUVZGRUxFVkJRVTBzUzBGQlMzaERMRU5CUVVrc1JVRkRlRUo1UXl4SFFVVk1SaXhGUVVGUkxFdEJRVXNzUTBGRFZDeEpRVUZCTlVJc1JVRkRRU3hOUVVGUE9FSXNSVUZCVFN4RFFVRkRMRVZCUTJRc1RVRkJUMEVzUlVGQlRTeE5RVU5pTEZkQlFWbEJMRVZCUVUwc1RVRkJVU3hGUVVNeFFpeEpRVUZMUVN4RlFVRk5MRTFCUVZGQkxFVkJRVTBzUTBGQlF5eEZRVUZGTEU5QlF6VkNMRk5CUVZVc2FVSkJRMlFzUTBGQlF5eERRVU5NTEVOQlJVRXNUMEZCVDBZc1EwRkRXQ3hEUjNwU1R5eEpRVUZWUnl4UFFVRldMRU5CUlVrc1UwRkJVME1zUlVGQlMwTXNSVUZCTmtJc1EwRkRPVU1zU1VGQlRVTXNSVUZCVlVNc1IwRkJVeXhWUVVGVlF5eERRVUZQTEVWQlF6RkRMRWRCUVVrc1EwRkJRMFlzUlVGQlV5eFBRVUZQTEV0QlJYSkNMRTlCUVZGQkxFVkJRVkVzUzBGQlRTeERRVU5zUWl4SlFVRkxMRk5CUTB3c1NVRkJTeXhWUVVOTUxFbEJRVXNzVDBGRFRDeEpRVUZMTEZOQlEwUXNUMEZCVDBFc1JVRkJVU3hOUVVOdVFpeEpRVUZMTEZGQlEwUXNUMEZCVDBFc1JVRkJVU3hOUVVGTkxFbEJRVWxHTEVOQlFVa3NSVUZEYWtNc1NVRkJTeXhQUVVORUxFOUJRVTlGTEVWQlFWRXNUVUZCVFN4TlFVRk5MRVZCUXk5Q0xFbEJRVXNzVjBGRFJDeFBRVUZQUVN4RlFVRlJMRTFCUVUwc1VVRkJVU3hGUVVOcVF5eEpRVUZMTEZkQlEwUXNUMEZCVHl4TFFVTllMRWxCUVVzc1QwRkRSQ3hQUVVGUFFTeEZRVUZSTEUxQlFVMHNVMEZCVXl4RlFVTnNReXhKUVVGTExGTkJRMFFzVDBGQlQwY3NSMEZCWjBKSUxFVkJRVkVzVFVGQlQwWXNRMEZCU1N4RFFVTnNSQ3hEUVVOS0xFTkJka0pQUkN4RlFVRlRMRXRCUVVGRExFVkJNRUpVTEZOQlFWTkpMRVZCUVZGSUxFVkJRVFpDTEVOQlEycEVMRWRCUVVsQkxFZEJRVk1zUzBGRFZDeFBRVUZQTEV0QlEwb3NSMEZCU1N4UFFVRlBRU3hIUVVGVkxGTkJRM2hDTEVkQlFVa3NUVUZCVFN4UlFVRlJRU3hEUVVGTExFVkJRVWNzUTBGRGRFSXNTVUZCU1Vzc1JVRkJVeXhEUVVGRExFVkJRMlFzVVVGQlUwTXNTMEZCVTA0c1JVRkRaRXNzUlVGQlR5eExRVUZMUml4RlFVRlJSeXhEUVVGTExFTkJRVU1zUlVGSE9VSXNUMEZCVDBRc1EwRkRXQ3hMUVVGUExFbEJRVWxNTEdGQlFXbENMRXRCUlhoQ0xFOUJSR2RDVHl4RlFVRlRMRmRCUVZkUUxFTkJRVXNzUlVGRmRFTXNRMEZEU0N4SlFVRkpVU3hGUVVGVFVpeEZRVU5VU3l4RlFVRnJReXhEUVVGRExFVkJRM1pETEZGQlFWTkpMRXRCUVU5RUxFVkJRMXBJTEVWQlFVOUpMRU5CUVVjc1JVRkJTVTRzUlVGQlVVc3NSVUZCVDBNc1EwRkJSeXhEUVVGRExFVkJSM0pETEU5QlFVOUtMRU5CUTFnc1RVRkRSeXhKUVVGSkxFOUJRVTlNTEVkQlFWVXNVMEZEZUVJc1QwRkJUMEVzUlVGRFNpeEhRVUZKTEU5QlFVOUJMRWRCUVZVc1ZVRkRlRUlzVDBGQlQwRXNSVUZEU2l4SFFVRkpMRTlCUVU5QkxFZEJRVlVzVTBGQlZTeERRVU5zUXl4SlFVRkpWU3hGUVVGWlF5eEZRVUZYTEV0QlFVc3NUVUZCVFZnc1EwRkJTeXhGUVVNelF5eEhRVUZKVlN4RlFVRlZMRTlCUVZFc1QwRkJUMEVzUlVGQlZTeE5RVVYyUXl4SlFVRkpSU3hGUVVGblFrUXNSVUZCVnl4VFFVRlRMRTFCUVUxWUxFTkJRVXNzUlVGRGJrUXNSMEZCU1Zrc1JVRkJZeXhQUVVGUkxFOUJRVTlCTEVWQlFXTXNUVUZGTDBNc1NVRkJTVU1zUlVGQldVWXNSVUZCVnl4TFFVRkxMRTFCUVUxWUxFTkJRVXNzUlVGRE0wTXNUMEZCU1dFc1JVRkJWU3hQUVVGbFFTeEZRVUZWTEUxQlJXaERZaXhEUVVOWUxFVkJSMEVzVDBGQlR5eEpRVU5ZTEVOQk1VTlBSaXhGUVVGVExGRkJRVUZMTEVsQk5VSklUQ3hSUVVGQkxFdFVZMnBDTEVsQlFVMW5RaXhIUVVGclFpeG5Ra0ZGYkVKRExFZEJRWGRDTEhOQ1FVVjRRa01zUjBGQmEwSXNlVVJCVFdwQ0xGTkJRVk5ETEVkQlExcERMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRVZCUTJkQ0xFTkJRMmhDTEVkQlFVMHNRMEZCUlN4TlFVRkJReXhGUVVGUExGTkJRVlZETEVWQlFXTXNXVUZCUVVNc1JVRkJZU3hUUVVGQlF5eERRVUZUTEVWQlFVbERMRWRCUVhGQ1VpeEZRVUZOUXl4RlFVRlZReXhEUVVGUkxFVkJSemxITEU5QlJtRXNTVUZCU1U4c1IwRkJVMVFzUlVGQlRVY3NSVUZCVDBNc1JVRkJUU3hQUVVGUlF5eEZRVUZqUlN4RlFVRlZSQ3hEUVVGWExFVkJSVFZGTEUxQlFVMHNRMEZEZEVJc1EwRkhUeXhUUVVGVFJTeEhRVU5hVWl4RlFVTkJReXhGUVVOQlF5eEZRVTFHTEVOQk4wUkdMRWxCUVVGUkxFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRWRCUVVGRExFZEJPRVJKTEVsQlFVMXVRaXhGUVVGblJVb3NSVUZCVXl4WlFVTjZSWGRDTEVkQlFYTkNlRUlzUlVGQlV5eFhRVUZYTEVWQlF6RkRMRTlCUTBGRkxFVkJRVkZJTEVWQlFWTXNUVUZCVFN4WlFVRlpMRVZCUTI1RE1FSXNSVUZCYlVJc1NVRkJTVU1zUjBGRGRrSkRMRVZCUVRoQ0xFTkJRVU1zUlVGTEwwSkRMRWRCUVdWd1FpeEZRVUZCVWl4RlFVRlRMRmRCUVZRc1MwRkJRVkVzUlVGQmNVSXNRMEZCUXl4RlFVTXpRMjlDTEVWQlFXRXNTMEZCU3l4RFFVRkRReXhGUVVGSFF5eEpRVUZOUkN4RlFVRkZMRk5CUVZNc1RVRkJUU3hMUVVGUFF5eEZRVUZGTEZOQlFWTXNUVUZCVFN4SlFVRkpMRVZCUlhwRkxFbEJRVTE2UWl4RlFVRlhMRWxCUVVrc1IwRkJRVEJDTEZGQlFUSkNMRTlCUVZjc1EwRkJRMFlzUlVGQlIwTXNTVUZCVFVRc1JVRkJTVU1zUTBGQlF5eEZRVU14UlN4UlFVRlRSU3hGUVVGUkxFVkJRVWRCTEVWQlFWRktMRVZCUVdFc1QwRkJVVWtzU1VGQlV5eERRVU4wUkN4SlFVRk5ReXhGUVVGUlRDeEZRVUZoU1N4RFFVRkxMRVZCUXpGQ1JTeEZRVUZSUkN4RlFVRk5MRk5CUVZNc1RVRkJUU3hMUVVNM1FrVXNSMEZCVFVnc1IwRkJVMG9zUlVGQllTeFBRVUZUTEVWQlFVa3hRaXhGUVVGTkxFOUJRVk13UWl4RlFVRmhTU3hGUVVGUkxFTkJRVU1zUlVGQlJTeFRRVUZUTEUxQlFVMHNTMEZGTDBaSkxFZEJRVlVzU1VGQlNVTXNSMEZCV1Vnc1JVRkJUME1zUjBGQlMwWXNSVUZCVFN4UlFVRlRRU3hGUVVGTkxFMUJRVTlFTEVWQlFWRXNRMEZCUXl4RlFVTnFSak5DTEVWQlFWTXNTVUZCU1RaQ0xFVkJRVTlGTEVWQlFVOHNRMEZETDBJc1EwRkpRU3hIUVVGSkwwSXNSVUZCVXl4TlFVRlJMRWRCUTJwQ0xFZEJRVWtzUTBGQlEybERMRWRCUVZkd1F5eEZRVUZQTEVWQlFVZEJMRVZCUVUwc1RVRkJUU3hGUVVGSExFTkJRM0pETEVsQlFVMXJReXhGUVVGVkxFbEJRVWxETEVkQlFWa3NSVUZCUjI1RExFVkJRVTBzVDBGQlVYRkRMRWRCUVdGNlF5eERRVUZKTEVWQlFVY3NSVUZCUnl4RFFVRkRMRVZCUTNwRlR5eEZRVUZUTEVsQlFVa3NSVUZCUnl0Q0xFTkJRVThzUTBGRE0wSXNUVUZEUnl4RFFVVklMRWxCUVUxSkxFZEJRVkV2UWl4RlFVRkJTaXhGUVVGVExHOUNRVUZ2UWl4RFFVRkRMRWxCUVRsQ0xGbEJRVUZKTEVWQlFXdERMRWRCUldoRUxFZEJRVWtyUWl4RlFVRk5MRTFCUVZFc1IwRkJTeXhEUVVGRFJpeEhRVUZYY0VNc1JVRkJUeXhGUVVGSGMwTXNSVUZCVFN4TFFVRkxMRVZCUVVjc1EwRkRka1FzU1VGQlRVb3NSVUZCVlN4SlFVRkpReXhIUVVGWkxFVkJRVWRITEVWQlFVMHNUVUZCVDBRc1IwRkJZWHBETEVOQlFVa3NSVUZCUnl4RlFVRkhMRU5CUVVNc1JVRkZlRVZQTEVWQlFWTXNTVUZCU1N4RlFVRkhLMElzUTBGQlR5eERRVU16UWl4RFFVTktMRU5CVVVFc1NVRkJUVXNzUlVGQlV5eEpRVUZKTEVkQlFVRldMRkZCUVhsQ0xFOUJRVmNzUTBGQlEwWXNSVUZCUjBNc1NVRkJUVVFzUlVGQlNVTXNRMEZCUXl4RlFVTnNSVmtzUlVGQlpTeEZRVU51UWl4UlFVRlhReXhMUVVGVE0wTXNSVUZCVXl4VlFVRlpMRU5CUVVNc1JVRkJSeXhEUVVWNlF5eEhRVUZKTWtNc1JVRkJUU3hQUVVGVExGVkJRVmNzVTBGRk9VSXNTVUZCVFZRc1JVRkJVVk1zUlVGQlRTeFRRVUZUTEUxQlFVMHNTMEZETjBKU0xFVkJRVTFSTEVWQlFVMHNVMEZCVXl4SlFVRkpMRXRCUVU4c1JVRkRhRU5ETEVkQlFWa3hReXhGUVVGTlowTXNRMEZCU3l4RlFVVTNRaXhIUVVGSlV5eEZRVUZOTEU5QlFWTXNUMEZEWmtZc1JVRkJUeXhKUVVGSlVDeEZRVUZQTEVsQlFVbFhMRWRCUVdOWUxFVkJRVTlETEVWQlFVdFBMRWxCUVdkQ1F5eEZRVUZOTEVWQlFVVXNRMEZCUXl4VlFVTnNSVUVzUlVGQlRTeE5RVUZSTEZGQlFWVnFSQ3hIUVVGblFpeExRVUZMYTBRc1JVRkJVeXhGUVVGSExFTkJRMmhGTEVsQlFVMUZMRWRCUVdVMVF5eEZRVU5vUWl4TlFVRk5aME1zUlVGQlVTeEZRVUZIUXl4RlFVRk5MRU5CUVVNc1JVRkRlRUlzUzBGQlN6dEJRVUZCTEVOQlFVa3NSVUZEVkN4UlFVRlJMRTlCUVZFc1NVRkJTU3hGUVVOdVFsa3NSMEZCT0VOMlFpeEhRVUZ6UW5kQ0xFZEJRVlZHTEVWQlFVa3NRMEZCUXl4RlFVVjZSa3dzUlVGQlR5eEpRVUZKVUN4RlFVRlBMRWxCUVVsbExFZEJRV05tTEVWQlFVOURMRVZCUVV0UExFbEJRV2RDU3l4SFFVRlBTaXhGUVVGTkxFVkJRVVVzUTBGQlF5eERRVU53Uml4VFFVRlhRU3hGUVVGTkxFOUJRVk1zVDBGQlVTeERRVVU1UWl4SlFVRk5UeXhIUVVGUlRpeEhRVUZWTEUxQlFVMXFSQ3hGUVVGeFFpeEZRVU51UkN4SFFVRkpMRU5CUVVOMVJDeEhRVVZFVkN4RlFVRlBMRWxCUVVsUUxFVkJRVThzU1VGQlNXbENMRWRCUVdOcVFpeEZRVUZQUXl4RlFVRkxUeXhKUVVGblFpeERRVUZETEVWQlFVY3NVMEZCVlZJc1JVRkJUME1zUlVGQlMxRXNSVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkRhRWNzUTBGRFNDeEpRVUZOVXl4SFFVRlpSaXhIUVVGTkxFOUJRVk1zUjBGQlMwRXNSMEZCVFN4RFFVRkRMRVZCUVVsQkxFZEJRVTBzUTBGQlF5eEZRVUZGTEUxQlFVMHNSMEZCUnl4RlFVRkpMRU5CUVVNc1JVRkRlRVZVTEVWQlFVOHNTVUZEU0ZBc1JVRkRRU3hKUVVGSmFVSXNSMEZCWTJwQ0xFVkJRVTlETEVWQlFVdFBMRWxCUVdkQ1ZTeEhRVUZYTEZOQlFWVnNRaXhGUVVGUkxFVkJRVWRETEVWQlFVMHNSVUZCUjFFc1JVRkJUU3hGUVVGRkxFTkJRMjVITEVOQlEwb3NRMEZEU2l4TlFVTkpSaXhGUVVGUExFbEJRVWxRTEVWQlFVOHNTVUZCU1cxQ0xFZEJRV051UWl4RlFVRlBReXhGUVVGTFR5eEpRVUZuUWtNc1JVRkJUU3hMUVVGTlFTeEZRVUZOTEVWQlFVVXNRMEZCUXl4RFFVVTNSaXhEUVVkQkxGRkJRVmRCTEV0QlFWTkdMRVZCUVU4c1QwRkJUeXhIUVVNNVFpOUNMRVZCUVVFMFF5eEhRVUZQV0N4RlFVRk5MRTFCUVU5MFF5eERRVUZSTEVsQlFUVkNMRTFCUVVGTExFVkJRU3RDTEUxQlFVMXBReXhIUVZGNlF5eEpRVUZOV1N4RlFVRmxMR2xEUVVObVF5eEZRVUZqTEhGQ1FVTmtReXhGUVVGWkxFbEJRVWtzUjBGQlFURkNMRkZCUVRSQ0xFOUJRVmNzUTBGQlEwWXNSVUZCUjBNc1NVRkJUVVFzUlVGQlNVTXNRMEZCUXl4RlFVVTFSU3hSUVVGWE5FSXNTMEZCVVRGRUxFVkJRVk1zVjBGQllTeERRVUZETEVWQlFVY3NRMEZKZWtNc1NVRkJUV3RFTEVWQlNFOW9SQ3hGUVVGTmQwUXNSVUZCU3l4VFFVRlRMRTFCUVUwc1NVRkJTU3hGUVVkNFFpeE5RVUZOT1VRc1JVRkJaU3hGUVVOd1F5dEVMRWRCUTBGRExFZEJRMEZXTEVsQlEwRlRMRWRCUVZOVUxFVkJRVTBzUTBGQlF5eEZRVU5vUWxVc1IwRkJUMVlzUlVGQlRTeERRVUZETEVkQlIyeENMRWxCUVUxWExFZEJRVThzU1VGQlNVTXNSMEZEWWtvc1JVRkJTeXhUUVVGVExFMUJRVTBzUzBGRGNFSkJMRVZCUVVzc1UwRkJVeXhKUVVGSkxFdEJRVThzUlVGRGVrSkJMRVZCUVVzc1QwRkRURU1zUjBGRFFVUXNSVUZCU3l4SFFVTk1RU3hGUVVGTExFdEJRMHhGTEVWQlEwb3NSVUZEUVVnc1JVRkJWU3hKUVVGSlNTeEhRVUZMTEUxQlFVOUJMRVZCUVVrc1EwRkRiRU1zUTBGSFFTeFJRVUZYUVN4TFFVRlJTaXhGUVVGVkxFOUJRVThzUlVGRGFFTXNSMEZCU1Vrc1JVRkJTeXhYUVVGaExFVkJRVWNzUTBGRGNrSXNTVUZCVFVVc1JVRkJXWFJDTEVWQlFVOHNTVUZCU1N4RFFVRkRiMElzUlVGQlN5eFZRVUZWTEVWQlF6ZERMRWRCUVVrc1EwRkJRMFVzUjBGQlpVRXNSVUZCVlN4UFFVRlRMRTlCUVZNc1UwRkZMME5CTEVWQlFUUkNMRTFCUVUwc1MwRkJTMFlzUTBGQlNTeERRVU5vUkN4TlFVTkpiRVFzUlVGQlFUaERMRVZCUVZVc1NVRkJTVWtzUlVGQlN5eFZRVUZWTEVsQlFUZENMRTFCUVVGc1JDeEZRVUZuUXl4VFFVRlRMRXRCUVV0clJDeEhRVk4wUkN4UlFVRlhSeXhMUVVGVmNFUXNSVUZCUVZvc1JVRkJVeXhQUVVGVUxFdEJRVUZaTEVWQlFXbENMRU5CUVVNc1JVRkJSeXhEUVVOMFF5eEpRVUZOY1VRc1JVRkJUVVFzUlVGQlR5eEpRVUZKTEZkQlFWY3NSMEZCUnl4RlFVRkpRU3hGUVVGUExFbEJRVTBzU1VGQlRVRXNSVUZCVHl4SlFVTTNSRVVzUlVGQlQwWXNSVUZCVHl4VFFVRlRMRTFCUVUwc1MwRkRia04yUXl4RlFVRnBRaXhKUVVGSmQwTXNRMEZCUnl4SFFVVjRRbkJFTEVWQlFVRjVReXhIUVVGUFdTeEZRVUZOTjBRc1EwRkJVU3hKUVVGeVFpeE5RVUZCVVN4RlFVRjNRaXhUUVVGVExFbEJRVWx2UkN4SlFVTnlRMjVFTEVWQlFVRjNReXhIUVVGUFdTeEZRVUZOZWtJc1EwRkJUU3hKUVVGdVFpeE5RVUZCTTBJc1JVRkJjMElzVTBGQlV5eEpRVUZKYlVRc1NVRkRia05zUkN4RlFVRkJkVU1zUjBGQlQxa3NSVUZCVFZRc1EwRkJVeXhKUVVGMFFpeE5RVUZCTVVNc1JVRkJlVUlzVTBGQlV5eEpRVUZKYTBRc1JVRkRNVU1zUTBGSFFTeEhRVUZKYWtVc1JVRkJVeXhaUVVOVUxGRkJRVmR0UlN4TFFVRlZReXhIUVVGWmNFVXNSVUZCVXl4WFFVRlhMRVZCUVVjc1EwRkRjRVFzU1VGQlRXbEZMRVZCUVUxRkxFVkJRVThzVjBGQlZ5eEhRVUZITEVWQlFVbEJMRVZCUVZNc1NVRkJUVUVzUlVGRGNFUXhReXhGUVVGcFFpeEpRVUZKZDBNc1EwRkJSeXhEUVVNMVFpeERRVTlLTEZGQlFWTkpMRXRCUVZkeVJDeEZRVUZCYUVJc1JVRkJVeXhSUVVGVUxFdEJRVUZuUWl4RlFVRnJRaXhEUVVGRExFVkJRVWNzUTBGRGRFTXNTVUZCVFhORUxFVkJRVTlETEVkQlFVc3NUVUZCVFVZc1JVRkJVU3hKUVVGSkxFVkJRemxDU0N4RlFVRlBSeXhGUVVGUkxGTkJRVk1zVFVGQlRTeExRVU53UXpWRExFVkJRV2xDTEV0QlFVczJReXhEUVVGSkxFZEJSVEZDY2tRc1JVRkJRWEZETEVkQlFVOVpMRVZCUVUwM1JDeERRVUZSTEVsQlFYSkNMRTFCUVVGWkxFVkJRWGRDTEZOQlFWTXNTMEZCUzNGRUxFbEJRM1JEY0VRc1JVRkJRVzlETEVkQlFVOVpMRVZCUVUxNlFpeERRVUZOTEVsQlFXNUNMRTFCUVVGMlFpeEZRVUZ6UWl4VFFVRlRMRXRCUVV0dlJDeEpRVU53UTI1RUxFVkJRVUZ0UXl4SFFVRlBXU3hGUVVGTlZDeERRVUZUTEVsQlFYUkNMRTFCUVVGMFF5eEZRVUY1UWl4VFFVRlRMRXRCUVV0dFJDeEZRVU16UXl4RFFVOUJMRkZCUVZkRUxFdEJRVmRxUkN4RlFVRkJjRUlzUlVGQlV5eHRRa0ZCVkN4TFFVRkJiMElzUlVGQk5rSXNRMEZCUXl4RlFVTm9SRXNzUlVGQmFVSXNTMEZCU3poRExFZEJRVXNzVFVGQlRVWXNSVUZCVVN4TFFVRk5MRWRCUVU5QkxFVkJRVkVzVjBGQlZ5eERRVUZETEVWQlR6bEZMRkZCUVZkSExFdEJRVk5ETEVkQlFXOUNka1VzUTBGQlN5eEZRVUZITEVOQlF6VkRMRWxCUVUxblJTeEZRVUZQVFN4RlFVRk5MRk5CUVZNc1MwRkROVUl2UXl4RlFVRnBRaXhaUVVGWkswTXNRMEZCU3l4SFFVVnNRMjVFTEVWQlFVRnBReXhIUVVGUFdTeEZRVUZOTjBRc1EwRkJVU3hKUVVGeVFpeE5RVUZCWjBJc1JVRkJkMElzVTBGQlV5eFpRVUZaYlVRc1NVRkROME5zUkN4SFFVRkJaME1zUjBGQlQxa3NSVUZCVFhwQ0xFTkJRVTBzU1VGQmJrSXNUVUZCUVc1Q0xFZEJRWE5DTEZOQlFWTXNXVUZCV1d0RUxFbEJRek5EYWtRc1IwRkJRU3RDTEVkQlFVOVpMRVZCUVUxVUxFTkJRVk1zU1VGQmRFSXNUVUZCUVd4RExFZEJRWGxDTEZOQlFWTXNXVUZCV1dsRUxFVkJRMnhFTEVOQlEwRXNUMEZCUVRkRExFVkJRV0VzUzBGQlN5eEhRVUZIZEVJc1JVRkJVeXhQUVVGUExFTkJRVU1zUlVGREwwSXNRMEZEU0N4TlFVRkJTQ3hGUVVOQkxGbEJRVUZGTEVWQlEwRXNVMEZCVlhGQ0xFVkJRMVlzVTBGQlZVVXNRMEZEWkN4RFFVTktMRU5CVFVFc1UwRkJVMWNzUjBGQlYzQkRMRVZCUVdsQ1owTXNSVUZCWlVNc1JVRkJjMElzUTBGRGRFVXNVVUZCVTBnc1JVRkJVVVVzUlVGQlQwWXNSVUZCVVVjc1JVRkJTMGdzU1VGRGFrTXNSMEZCU1RsQ0xFVkJRVTA0UWl4RFFVRkxMRVZCUVVVc1MwRkJTeXhKUVVGTkxFZEJRVWtzVFVGQlR5eEhRVWN6UXl4TlFVRlBMRVZCUTFnc1EwRk5UeXhUUVVGVmVVTXNSMEZCYjBKRExFVkJRVEpETEVOQlF6VkZMRkZCUVZORExFVkJRVk1zUlVGQlIwRXNSVUZCVTBRc1JVRkJVU3hQUVVGUlF5eEpRVUZWTEVOQlEzQkVMRWxCUVUxVUxFVkJRVTlSTEVWQlFWRkRMRU5CUVUwc1JVRkhNMElzUjBGQlNWUXNSVUZCU3l4UFFVRlRMRTlCUVZNc1EwRkJRMEVzUlVGQlN5eFRRVUZUTEVsQlFVa3NSVUZCUnl4VFFVZHFSQ3hKUVVGSlZTeEZRVUZsUXl4SFFVRnZRbGdzUTBGQlNTeEZRVU16UXl4SFFVRkpWU3hGUVVGaExFOUJRVk1zUlVGRGRFSXNVVUZCVTBVc1MwRkJWVVlzUlVGQll5eE5RVUZOUnl4SFFVRmpSQ3hGUVVGUlNDeERRVUZOTEUxQlEyaEZMRU5CUTBnc1NVRkJTVXNzUlVGQlYwTXNSMEZCY1VKbUxFTkJRVWtzUlVGRGNFTmpMRWxCUVZVc1RVRkJUVVFzUjBGQlkwTXNSVUZCVlV3c1EwRkJUU3hGUVVOMFJDeERRVU5LTEVOQlEwb3NRMEZIVHl4VFFVRlRia1FzUjBGQmMwSnRRaXhGUVVGclJTeERRVU53Unl4SlFVRk5kVU1zUlVGQkswTXNRMEZCUXl4RlFVTjBSQ3hSUVVGWFF5eExRVUZQTEU5QlFVOHNTMEZCUzNoRExFTkJRVXNzUlVGQlJ5eERRVU5zUXl4SlFVRk5lVU1zUlVGQlVYcERMRVZCUVUxM1F5eERRVUZITEVWQlJYWkNSQ3hGUVVGUFF5eEZRVUZKTEZsQlFWa3NRMEZCUXl4RlFVRkpMRU5CUTNoQ0xFbEJRVXRCTEVWQlEwd3NUVUZCVDBVc1IwRkJaU3hMUVVGTFF5eEhRVUZsTEZGQlFWRkdMRU5CUVVzc1EwRkJReXhGUVVONFJDeEpRVUZMUVN4RFFVTlVMRU5CUTBvc1EwRkZRU3hQUVVGUFJpeERRVU5ZTEVOQlIwOHNVMEZCVXpWQ0xFZEJRV2xFV1N4RlFVRmpjVUlzUlVGQmRVTXNRMEV6VkhSSUxFbEJRVUV2UlN4RlFUUlVTU3hKUVVGTlowWXNSMEZCVTJoR0xFVkJRVUVyUlN4RlFVRkxMRzFDUVVGdFFuSkNMRU5CUVVrc1NVRkJOVUlzV1VGQlFURkVMRVZCUVdkRExFZEJReTlETEVkQlFVbG5SaXhIUVVGVlFTeEZRVUZQTEV0QlFVOTBRaXhGUVVGTkxFOUJRVTl6UWl4RFFVYzNReXhEUVVkUExGTkJRVk53UWl4SFFVRlpjRVVzUlVGQmMwTXNRMEZIT1VRc1QwRkdZeXhQUVVGUExFdEJRVXRCTEVOQlFWRXNSVUZCUlN4UFFVRlJMRWRCUVUwc1JVRkJSU3haUVVGWkxFZEJRVXNzVVVGQlZTeEZRVUZGTEZsQlFWa3NSMEZCU3l4TFFVRkxMRVZCUjJ4SExFbEJRVXQ1Uml4SFFVRk5ReXhIUVVFeVFqRkdMRVZCUVZONVJpeERRVUZETEVWQlFVY3NVVUZCVVN4RFFVRkRMRVZCUXpWRUxFOUJRVThzUTBGQlEwVXNSVUZCUjBNc1NVRkJUVVFzUlVGQlJTeFBRVUZQUXl4RFFVRkRMRVZCUVVjc1EwRkJReXhEUVVGRExFVkJRMmhETEVsQlFVdERMRWRCUVZOQkxFVkJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVbEJMRVZCUVUwc1NVRkJUVUVzUTBGQlNTeERRVU0zUkN4RFFVZFBMRk5CUVZOSUxFZEJRVEpDU1N4RlFVRlhReXhGUVVGelFpeERRVU40UlN4UFFVRkpSQ3hIUVVGUkxFMUJRVkZCTEVkQlFWRXNTMEZCYTBJc1EwRkJReXhGUVVNelF5eE5RVUZOTEZGQlFWRkJMRU5CUVVrc1JVRkRXRUVzUlVGRFJpeFBRVUZSUlN4SFFVRk5MRU5CUVVNc1EwRkJRMEVzUTBGQlF5eEZRVU5xUWl4SlFVRkxRU3hIUVVGTlRpeEhRVUV5UWswc1JVRkJSMFFzUTBGQlJTeERRVUZETEVWQlF6VkRMRTlCUVU4c1EwRkJRMG9zUlVGQlIwTXNTVUZCVFVRc1JVRkJSU3hQUVVGUFF5eERRVUZETEVWQlFVY3NRMEZCUXl4RFFVRkRMRWRCU1dwRExFZEJRVXRGTEVkQlExSXNUVUZCVFVNc1EwRkJSU3hGUVVOU0xFOUJRVkVzUjBGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTnFRaXhKUVVGTExFZEJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZEYmtJc1QwRkJVU3hIUVVGTkxFVkJRVVVzVDBGQlV5eERRVUZETEVOQlEyNURMRU5CVDA4c1NVRkJUWEpGTEVkQlFVNHNTMEZCWlN4RFFVRm1MR05CUTBnc1MwRkJUeXhMUVVGdlFpeEpRVUZKTEVsQlF5OUNMRXRCUVU4c1RVRkJaMElzUTBGQlF5eEZRVU40UWl4TFFVRlBMR0ZCUVRSRExFTkJRVU1zUlVGSE4wTXNTVUZCU1hWRExFVkJRV0VzUTBGRGNFSXNTMEZCU3l4TFFVRkxMRWxCUVVsQkxFTkJRVWNzUTBGRGNrSXNRMEZIVHl4TFFVRkxTeXhGUVVGWkxFTkJRMmhDTEV0QlFVc3NUVUZCVFN4TFFVRk5Na0lzUjBGQlRVRXNSVUZCUlN4UFFVRlBNMElzUTBGQlNTeERRVUZETEVkQlEzcERMRXRCUVVzc1RVRkJUU3hMUVVGTFFTeERRVUZKTEVOQlEzaENMRU5CUjA4c1dVRkJXVVVzUlVGQmIwSXNRMEZEYmtNc1NVRkJUVEJDTEVWQlFWRXhRaXhGUVVGTkxFbEJRVWtzV1VGQldTeEZRVU5vUXl4UFFVRlBMRXRCUVVzc1MwRkJTeXhaUVVGWkxFVkJRVVVzUzBGQlRWY3NSMEZCVVVFc1JVRkJTU3haUVVGWkxFZEJRVXRsTEVOQlFVc3NTVUZGTTBVc1MwRkJTeXhoUVVGaFFTeERRVUZMTEVWQlFVa3hRaXhGUVVNdlFpeERRVWRQTEZsQlFYVkNMRU5CUXpGQ0xFOUJRVThzVFVGQlRTeExRVUZMTEV0QlFVc3NTVUZCU1N4RFFVTXZRaXhEUVVkUExHRkJRVEJDTEVOQlF6ZENMRTlCUVU4c1MwRkJTeXhOUVVGTkxFbEJRVXRHTEVkQlFWTkJMRVZCUVVzc1UwRkJVeXhEUVVGRExFTkJRMjVFTEVOQlIwOHNiMEpCUVhORUxFTkJRM3BFTEU5QlFVODJRaXhIUVVGblFpeExRVUZMTEdGQlFXTkRMRVZCUVdVc1EwRkROMFFzUTBGRFNpeEZRVWRoTjBZc1IwRkJUaXhMUVVGbExFTkJRMWdzV1VGRFNWUXNSVUZEUVVjc1JVRkRRVzlITEVWQlEwRnlSeXhGUVVOQlN5eEZRVU5CUkN4RlFVTlVMRU5CVGxNc1ZVRkJRVTRzUlVGRFFTeFhRVUZCUnl4RlFVTkJMRmxCUVVGdlJ5eEZRVU5CTEdOQlFVRnlSeXhGUVVOQkxHTkJRVUZMTEVWQlEwRXNhVUpCUVVGRUxFTkJRMUlzUTBGRlNTeFBRVUV3UWl4RFFVTTNRaXhOUVVGUExFTkJRMGdzVFVGQlR5eExRVUZMTEV0QlExb3NUMEZCVVN4TFFVRkxMRTFCUVUwc1RVRkRia0lzVDBGQlVTeExRVUZMTEUxQlFVMHNUVUZEYmtJc1RVRkJUeXhMUVVGTExFMUJRVTBzUzBGRGJFSXNWMEZCV1d0SExFZEJRV0VzUzBGQlN5eEpRVUZKTEVWQlEyeERMRlZCUVZjc1EwRkJSU3hOUVVGUExFVkJRVWNzU1VGQlN5eExRVUZMTEUxQlFVOHNSVUZEZUVNc1RVRkJUeXhMUVVGTExGTkJRVk1zVjBGQlZ5eEZRVU5vUXl4UFFVRlJMRXRCUVVzc1UwRkJVeXhaUVVGWkxFVkJRMnhETEZWQlFWY3NTMEZCU3l4VFFVRlRMRzFDUVVGdFFpeEZRVU0xUXl4VlFVRlhMRXRCUVVzc1UwRkJVeXhKUVVGTFF5eEhRVUZOUVN4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVNM1F5eGhRVUZqTEV0QlFVc3NWMEZEZGtJc1EwRkRTaXhEUVVOS0xFVkJSMkZzUlN4SFFVRk9MRXRCUVd0Q0xFTkJTV1FzV1VGRFNVZ3NSVUZEUVVNc1JVRkRRWEZGTEVWQlEwRkRMRVZCUTBGRExFVkJRMVFzUTBGTVV5eFhRVUZCZUVVc1JVRkRRU3hUUVVGQlF5eEZRVU5CTEZkQlFVRnhSU3hGUVVOQkxGZEJRVUZETEVWQlEwRXNZVUZCUVVNc1JVRlNXQ3hMUVVGUExFOUJRWE5DTEVOQlFVTXNSVUZET1VJc1MwRkJUeXhUUVVGeFFpeEpRVUZKYUVZc1JVRlJOMElzUTBGRlNTeE5RVUZOYVVJc1JVRkJhMElzUTBGRE0wSXNTMEZCU3l4UFFVRlBMRXRCUVV0QkxFTkJRVXNzUTBGRE1VSXNRMEZGVHl4UFFVRTJRaXhEUVVOb1F5eE5RVUZQTEVOQlEwZ3NUMEZCVVN4TFFVRkxMRTFCUTJJc1UwRkJWU3hMUVVGTExGRkJRMllzVDBGQlVTeExRVUZMTEUxQlEySXNUVUZCVHl4TFFVRkxMRk5CUVZNc1YwRkJWeXhGUVVOb1F5eFZRVUZYTEV0QlFVc3NVMEZCVXl4dFFrRkJiVUlzUlVGRE5VTXNUMEZCVVN4TFFVRkxMRk5CUVZNc1dVRkJXU3hGUVVOc1F5eFZRVUZYTEVOQlFVVXNUVUZCVHl4TFFVRkxMRTFCUVU4c1NVRkJTeXhMUVVGTExFZEJRVWtzUlVGRE9VTXNVVUZCVXl4TFFVRkxMRTlCUVU4c1NVRkJTMEVzUjBGQlZVRXNSVUZCVFN4TlFVRk5MRU5CUVVNc1EwRkRja1FzUTBGRFNpeERRVU5LTEVWQlIyRkZMRWRCUVU0c1MwRkJiMElzUTBGTGFFSXNXVUZCYlVKWUxFVkJRWE5DUXl4RlFVRnZRblZGTEVWQlFYZENReXhGUVVGclFpeERRVUZ3Uml4WFFVRkJla1VzUlVGQmMwSXNVMEZCUVVNc1JVRkJiMElzWVVGQlFYVkZMRVZCUVhkQ0xHRkJRVUZETEVWQlNqVkdMRXRCUVU4c1MwRkJaU3hQUVVOMFFpeExRVUZQTEZOQlFYRkNMRWxCUVVscVJpeEhRVU5vUXl4TFFVRlBMRTFCUVhkQ0xFTkJRVU1zUTBGRkswVXNRMEZGZUVjc1QwRkJLMElzUTBGRGJFTXNUVUZCVHl4RFFVTklMRk5CUVZVc1MwRkJTeXhSUVVObUxGVkJRVmNzUTBGQlJTeE5RVUZQTEV0QlFVc3NUVUZCVHl4SlFVRkxMRXRCUVVzc1IwRkJTU3hGUVVNNVF5eFZRVUZYTEV0QlFVc3NVMEZCVXl4dFFrRkJiVUlzUlVGRE5VTXNUVUZCVHl4TFFVRkxMRk5CUVZNc1YwRkJWeXhGUVVOb1F5eFBRVUZSTEV0QlFVc3NVMEZCVXl4WlFVRlpMRVZCUTJ4RExFMUJRVThzVDBGRFVDeFRRVUZWTEV0QlFVc3NVVUZEWml4VlFVRlhMRXRCUVVzc1RVRkJUU3hKUVVGTGJVTXNSMEZCVTBFc1JVRkJTeXhOUVVGTkxFTkJRVU1zUTBGRGNFUXNRMEZEU2l4RFFVTktMRVZCUjJGV0xFZEJRVTRzUzBGQmIwSXNRMEZKYUVJc1dVRkRTV3BDTEVWQlEwRkRMRVZCUTBGMVJTeEZRVU5CZEVRc1JVRkRRWGRFTEVWQlEwRkRMRVZCUTBGRExFVkJRMEZJTEVWQlExUXNRMEZTVXl4WFFVRkJla1VzUlVGRFFTeFRRVUZCUXl4RlFVTkJMR0ZCUVVGMVJTeEZRVU5CTEdWQlFVRjBSQ3hGUVVOQkxGZEJRVUYzUkN4RlFVTkJMR3RDUVVGQlF5eEZRVU5CTEdkQ1FVRkJReXhGUVVOQkxHRkJRVUZJTEVWQldGZ3NTMEZCVHl4TFFVRmxMRmxCUTNSQ0xFdEJRVThzVTBGQmNVSXNTVUZCU1dwR0xFVkJWemRDTEVOQlJVa3NUMEZCSzBJc1EwRkRiRU1zVFVGQlR5eERRVU5JTEUxQlFVOHNXVUZEVUN4VFFVRlZMRXRCUVVzc1VVRkRaaXhWUVVGWExFTkJRVVVzVFVGQlR5eExRVUZMTEUxQlFVOHNTVUZCU3l4TFFVRkxMRWRCUVVrc1JVRkRPVU1zVlVGQlZ5eExRVUZMTEZOQlFWTXNiVUpCUVcxQ0xFVkJRelZETEUxQlFVOHNTMEZCU3l4VFFVRlRMRmRCUVZjc1JVRkRhRU1zVDBGQlVTeExRVUZMTEZOQlFWTXNXVUZCV1N4RlFVTnNReXhUUVVGVkxFdEJRVXNzVVVGRFppeFhRVUZaTEV0QlFVc3NWVUZEYWtJc1QwRkJVU3hMUVVGTExFMUJRMklzYVVKQlFXdENMRU5CUVVVc1RVRkJUeXhMUVVGTExHRkJRV01zU1VGQlN5eExRVUZMTEZWQlFWY3NRMEZEZGtVc1EwRkRTaXhEUVVOS0xFVkJSMkYxUWl4SFFVRk9MRXRCUVc5Q0xFTkJTV2hDTEZsQlEwbG1MRVZCUTBGRExFVkJRMEYxUlN4RlFVTkJXaXhGUVVOQllTeEZRVU5VTEVOQlRGTXNWMEZCUVhwRkxFVkJRMEVzVTBGQlFVTXNSVUZEUVN4aFFVRkJkVVVzUlVGRFFTeFZRVUZCV2l4RlFVTkJMR0ZCUVVGaExFVkJVbGdzUzBGQlR5eExRVUZsTEZsQlEzUkNMRXRCUVU4c1UwRkJjVUlzU1VGQlNXcEdMRVZCVVRkQ0xFTkJSVWtzVDBGQkswSXNRMEZEYkVNc1RVRkJUeXhEUVVOSUxFMUJRVThzV1VGRFVDeFRRVUZWTEV0QlFVc3NVVUZEWml4VlFVRlhMRU5CUVVVc1RVRkJUeXhMUVVGTExFMUJRVThzU1VGQlN5eExRVUZMTEVkQlFVa3NSVUZET1VNc1ZVRkJWeXhMUVVGTExGTkJRVk1zYlVKQlFXMUNMRVZCUXpWRExFMUJRVThzUzBGQlN5eFRRVUZUTEZkQlFWY3NSVUZEYUVNc1QwRkJVU3hMUVVGTExGTkJRVk1zV1VGQldTeEZRVU5zUXl4VFFVRlZMRXRCUVVzc1VVRkRaaXhOUVVGUExFdEJRVXNzU1VGRGFFSXNRMEZEU2l4RFFVTktMRVZCUjJFeVFpeEhRVUZPTEV0QlFXOUNMRU5CUjJoQ0xGbEJRMGx1UWl4RlFVTkJReXhGUVVOQmRVVXNSVUZEUVVzc1JVRkRRVW9zUlVGRFZDeERRVXhUTEZkQlFVRjZSU3hGUVVOQkxGTkJRVUZETEVWQlEwRXNZVUZCUVhWRkxFVkJRMEVzVlVGQlFVc3NSVUZEUVN4aFFVRkJTaXhGUVZCWUxFdEJRVThzVTBGQmNVSXNTVUZCU1dwR0xFVkJVVGRDTEVOQlJVa3NUMEZCTWtJc1EwRkRPVUlzVFVGQlR5eERRVU5JTEUxQlFVOHNTMEZCU3l4TFFVTmFMRk5CUVZVc1MwRkJTeXhSUVVObUxGVkJRVmNzUTBGQlJTeE5RVUZQTEV0QlFVc3NUVUZCVHl4SlFVRkxMRXRCUVVzc1IwRkJTU3hGUVVNNVF5eFZRVUZYTEV0QlFVc3NVMEZCVXl4dFFrRkJiVUlzUlVGRE5VTXNUVUZCVHl4TFFVRkxMRk5CUVZNc1YwRkJWeXhGUVVOb1F5eFBRVUZSTEV0QlFVc3NVMEZCVXl4WlFVRlpMRVZCUTJ4RExGTkJRVlVzUzBGQlN5eFBRVU51UWl4RFFVTktMRU5CUTBvc1JVRkxZVzlETEVkQlFVNHNTMEZCYlVJc1EwRkhaaXhaUVVOSk5VSXNSVUZEUVVNc1JVRkRRVFpGTEVWQlEwRnlSQ3hGUVVOQlowUXNSVUZEUVUwc1JVRkRRWEpFTEVWQlExUXNRMEZRVXl4WFFVRkJNVUlzUlVGRFFTeFRRVUZCUXl4RlFVTkJMR2RDUVVGQk5rVXNSVUZEUVN4WlFVRkJja1FzUlVGRFFTeGhRVUZCWjBRc1JVRkRRU3haUVVGQlRTeEZRVU5CTEZWQlFVRnlSQ3hGUVZSWUxFdEJRVThzVTBGQmNVSXNTVUZCU1d4RExFZEJRMmhETEV0QlFVOHNVMEZCTWtJc1EwRkJReXhEUVZOb1F5eERRVVZKTEU5QlFUaENMRU5CUTJwRExFMUJRVThzUTBGRFNDeFpRVUZoTEV0QlFVc3NWMEZEYkVJc1ZVRkJWeXhEUVVGRkxFMUJRVThzUzBGQlN5eE5RVUZQTEVsQlFVc3NTMEZCU3l4SFFVRkpMRVZCUXpsRExGTkJRVlVzUzBGQlN5eFJRVU5tTEZWQlFWY3NTMEZCU3l4VFFVRlRMRWxCUVV0M1JpeEhRVUZaUVN4RlFVRlJMRTFCUVUwc1EwRkJReXhGUVVONlJDeE5RVUZQTEV0QlFVc3NUMEZCVXl4UFFVRlRMRTlCUXpsQ0xGVkJRVmNzUzBGQlN5eFRRVUZUTEcxQ1FVRnRRaXhGUVVNMVF5eE5RVUZQTEV0QlFVc3NVMEZCVXl4WFFVRlhMRVZCUTJoRExFOUJRVkVzUzBGQlN5eFRRVUZUTEZsQlFWa3NSVUZEYkVNc1VVRkJVeXhMUVVGTExFOUJRMlFzVVVGQlV5eExRVUZMTEU5QlEyUXNUVUZCVHl4TFFVRkxMRWxCUTJoQ0xFTkJRMG9zUTBGRFNpeEZWUzlxUWs4c1UwRkJVME1zUjBGRFdrTXNSVUZEUVVNc1JVRkRRVU1zUlVGRFFVTXNSVUZEVlN4RFFYSkNaQ3hKUVVGQlF5eEZRWE5DU1N4SlFVRk5ReXhGUVVGVExFbEJRVWxETEVkQlFWZE9MRVZCUVUxSExFTkJRVXNzUlVGRGJrTkpMRVZCUVZNc1MwRkJTeXhOUVVGTlRpeERRVUZOTEVWQlJXaERMRkZCUVZkUExFdEJRVXRFTEVWQlFVOHNUVUZEYmtJc1IwRkJTVU1zUlVGQlJTeE5RVUZSTEZGQlEyUXNSMEZCU1VFc1JVRkJSU3hOUVVGUkxFOUJRVkVzUTBGRGJFSXNSMEZCVFN4RFFVRkZMRmxCUVVGRExFVkJRV0VzVTBGQlFVTXNSVUZCVlN4TlFVRkJReXhGUVVGUExGTkJRVUZETEVOQlFWTXNSVUZCU1VNc1IwRkJjVUppTEVWQlFVMVJMRVZCUVVVc1MwRkJUVTRzUlVGQlRTeFBRVUZQVFN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVOc1IwMHNSVUZCVHl4SlFVRkpReXhIUVVGbFppeEZRVUZOVVN4RlFVRkZMRWRCUVVsQkxFVkJRVWRETEVOQlFWY3NSVUZETVVSSExFVkJRVk1zVVVGQlUwa3NSMEZCVFVZc1JVRkJTeXhSUVVGUlJTeERRVUZETEVOQlFVTXNSVUZEZGtOWUxFVkJRVThzUzBGQlMxTXNRMEZCU1N4RlFVTm9RaXhSUVVGWFJ5eExRVUZQVUN4RlFVRlRMRXRCUVUxTUxFVkJRVThzVTBGQlV5eEpRVUZKV1N4RFFVRkhMRVZCUTNoRUxGRkJRVmRETEV0QlFWRmtMRVZCUVVGTkxFVkJRVk1zVVVGQlZDeExRVUZCVGl4RlFVRnJRaXhEUVVGRExFVkJRVWRETEVWQlFVOHNVMEZCVXl4TFFVRkxZU3hEUVVGSkxFVkJRMnhGTEZGQlFWZERMRXRCUVZORExFZEJRVzlDVkN4RFFVRkxMRVZCUVVkT0xFVkJRVThzVTBGQlV5eFpRVUZaWXl4RFFVRkxMRU5CUTNKR0xFdEJRVThzUTBGRFNDeEpRVUZOVEN4RlFVRlBMRWxCUVVsRExFZEJRV1ZtTEVWQlFVMVJMRVZCUVVVc1IwRkJTVUVzUTBGQlF5eEZRVU0zUTBnc1JVRkJUeXhMUVVGTFV5eERRVUZKTEVOQlEzQkNMRU5CUjBvc1QwRkJUMVFzUlVGQlR5eE5RVUZOTEVOQlEzaENMRU5CUjBFc1NVRkJaV2RDTEVkQlFXWXNTMEZCYzBNc1EwRkhNMElzV1VGRFNYSkNMRVZCUTBGelFpeEZRVU5IUXl4RlFVTmFMRU5CU0ZNc1ZVRkJRWFpDTEVWQlEwRXNVVUZCUVhOQ0xFVkJRMGNzWTBGQlFVTXNSVUZNWkN4TFFVRlBMRk5CUVhGQ0xFbEJRVWxETEVWQlRUZENMRU5CUlVrc1QwRkJORUlzUTBGREwwSXNUVUZCVHl4RFFVTklMRTFCUVU4c1MwRkJTeXhMUVVOYUxFbEJRVXNzUzBGQlN5eEhRVU5XTEZWQlFWY3NRMEZEVUN4RlFVRkhMRXRCUVVzc1UwRkJVeXhGUVVOcVFpeEZRVUZITEV0QlFVc3NVMEZCVXl4RFFVTnlRaXhGUVVOQkxGbEJRV0VzUTBGRFZDeE5RVUZQTEV0QlFVc3NVMEZCVXl4TlFVTnlRaXhQUVVGUkxFdEJRVXNzVTBGQlV5eE5RVU14UWl4RlFVTkJMRTlCUVZFc1MwRkJTeXhUUVVGVExFMUJRM1JDTEUxQlFVOURMRWRCUVVzc1MwRkJTeXhMUVVGTExFbEJRVWtzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlN4RlFVRkZMRk5CUVZNc1EwRkROVVFzUTBGRFNpeERRVU5LTEVWQlIyRldMRWRCUVU0c1kwRkJOa0pOTEVWQlFYVkNMRU5CUldoRUxGbEJRMGx5UWl4RlFVTkJjMElzUlVGRFIwTXNSVUZEU0dRc1JVRkRWQ3hEUVVORkxFMUJRVTFVTEVWQlFVMXpRaXhGUVVGSlF5eERRVUZSTEVWQlRHcENMRlZCUVVGMlFpeEZRVU5CTEZGQlFVRnpRaXhGUVVOSExHTkJRVUZETEVWQlEwZ3NhVUpCUVVGa0xFVkJURmdzUzBGQlR5eFRRVUV3UWl4RFFVRkRMRU5CVVd4RExFTkJSVThzVVVGQlVXbENMRVZCUVcxRExFTkJRemxETEZsQlFVc3NVMEZCVXl4TFFVRkxRU3hEUVVGUExFVkJRMjVDUVN4RFFVTllMRU5CUlU4c1QwRkJkMElzUTBGRE0wSXNUMEZCVVN4TFFVRkxMRk5CUVZNc1MwRkJUU3hEUVVONFFpeEpRVUZMTEU5QlEwUXNUMEZCVDBNc1IwRkJRVU1zUlVGQlFTeEhRVU5ETEUxQlFVMHNUVUZCVFN4SFFVUmlMRU5CUlVnc1ZVRkJWeXhMUVVGTExGTkJRVk1zYlVKQlFXMUNMRVZCUXpWRExHRkJRV01zUzBGQlN5eFpRVU51UWl4VlFVRlhMRXRCUVVzc1UwRkJVeXhKUVVGTFF5eEhRVUZOUVN4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVNM1F5eE5RVUZQTEV0QlFVc3NVMEZCVXl4WFFVRlhMRVZCUTJoRExFOUJRVkVzUzBGQlN5eFRRVUZUTEZsQlFWa3NSVUZEYkVNc1RVRkJUeXhaUVVOUUxFOUJRVkVzUzBGQlN5eFRRVUZUTEV0QlF6RkNMRWRCUTBvc1NVRkJTeXhQUVVORUxFOUJRVTlHTEVkQlFVRkRMRVZCUVVFc1IwRkRRU3hOUVVGTkxFMUJRVTBzUjBGRVdpeERRVVZJTEZsQlFXRXNTMEZCU3l4VFFVRlRMRWxCUXk5Q0xFZEJRMG9zU1VGQlN5eFBRVU5FTEU5QlFVOUVMRWRCUVVGRExFVkJRVUVzUjBGRFFTeE5RVUZOTEUxQlFVMHNSMEZFV2l4RFFVVklMRXRCUVUwc1MwRkJTeXhUUVVGVExFZEJRM2hDTEVWQlJWSXNRMEZEU2l4RFFVTktMRVZCUjJGMFFpeEhRVUZPTEV0QlFXbENMRU5CU1dJc1dVRkJiVUpPTEVWQlFYRkNSeXhGUVVGclFpeERRVUYyUXl4VlFVRkJTQ3hGUVVGeFFpeFhRVUZCUnl4RlFVZ3ZReXhMUVVGUExFMUJRVEJDTEVOQlFVTXNSVUZEYkVNc1MwRkJUeXhUUVVGeFFpeEpRVUZKY1VJc1JVRkZhME1zUTBGRk0wUXNTMEZCUzAwc1JVRkJiVU1zUTBGRE0wTXNXVUZCU3l4TlFVRk5MRXRCUVV0QkxFTkJRVU1zUlVGRFZrRXNRMEZEV0N4RFFVVlBMRTlCUVc5Q0xFTkJRM1pDTEUxQlFVOHNRMEZEU0N4UFFVRlJMRXRCUVVzc1RVRkJUU3hKUVVGTFJDeEhRVUZOUVN4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVOMlF5eFBRVUZSTEV0QlFVc3NUVUZCVFN4TlFVTnVRaXhQUVVGUkxFdEJRVXNzVFVGQlRTeE5RVU51UWl4VlFVRlhMRXRCUVVzc1UwRkJVeXh0UWtGQmJVSXNSVUZETlVNc1QwRkJVU3hMUVVGTExGTkJRVk1zV1VGQldTeEZRVU5zUXl4TlFVRlBMRXRCUVVzc1UwRkJVeXhYUVVGWExFVkJRMmhETEUxQlFVOHNTMEZCU3l4TFFVTmFMRTFCUVU4c1MwRkJTeXhOUVVGTkxFbEJRM1JDTEVOQlEwb3NRMEZEU2l4RlEzaEpRU3hWUVVGWkxFMUJRVTlGTEVkQlFWVXNRMEZEZWtJc1IwRkJTU3hEUVVOQkxFbEJRVTFETEVWQlFWVkVMRVZCUVUwc1MwRkZkRUlzUjBGQlNVTXNSVUZCVVN4UFFVRlRMRmRCUVZrc1EwRkROMElzU1VGQlRVTXNSVUZCVjBNc1IwRkJaVVlzUlVGQlVTeExRVUZOUVN4RlFVRlJMRk5CUVZWQkxFVkJRVkVzVTBGQlZVRXNSVUZCVVN4SlFVRkpMRVZCUlRsR0xGbEJRVmtzUTBGRFVpeExRVUZOTEZkQlEwNHNUMEZCVVVNc1EwRkRXaXhEUVVGNVFpeERRVU0zUWl4VFFVRlhSQ3hGUVVGUkxFOUJRVk1zVTBGQlZTeERRVU5zUXl4SlFVRk5SeXhGUVVGVFF5eEhRVUZoU2l4RlFVRlJMRXRCUVUxQkxFVkJRVkVzVTBGQlZVRXNSVUZCVVN4TlFVRlBRU3hGUVVGUkxFbEJRVWtzUlVGRmRrWXNXVUZCV1N4RFFVTlNMRXRCUVUwc1UwRkRUaXhQUVVGUlJ5eERRVU5hTEVOQlFYVkNMRU5CUXpOQ0xFMUJRMGtzV1VGQldTeERRVUZGTEU5QlFWRXNORUpCUVRaQ0xFTkJRVU1zUTBGRk5VUXNUMEZCVTBVc1JVRkJUeXhEUVVOYUxGRkJRVkVzVFVGQlRTeHZRMEZCYjBOT0xFVkJRVTBzUzBGQlN5eEpRVUZKTEV0QlFVdE5MRU5CUVVzc1JVRkJSU3hGUVVNM1JTeFpRVUZaTEVOQlFVVXNUMEZCVVVFc1JVRkJUU3hQUVVGUkxFTkJRVU1zUTBGRGVrTXNRMEZEU2lJc0NpQWdJbTVoYldWeklqb2dXeUp5WlhGMWFYSmxYM0JoY25OcGJXMXZibDkxYldSZmJXbHVJaXdnSWw5ZlkyOXRiVzl1U2xOTmFXNGlMQ0FpWlhod2IzSjBjeUlzSUNKdGIyUjFiR1VpTENBaWRDSXNJQ0p5SWl3Z0ltVWlMQ0FpZFNJc0lDSnVJaXdnSW04aUxDQWlhU0lzSUNKbUlpd2dJbU1pTENBaWN5SXNJQ0pzSWl3Z0luZ2lMQ0FpWWlJc0lDSm9JaXdnSW5BaUxDQWlaQ0lzSUNKMklpd2dJbWNpTENBaWJTSXNJQ0o1SWl3Z0lrVWlMQ0FpZHlJc0lDSkNJaXdnSW1FaUxDQWlhaUlzSUNKVElpd2dJbDhpTENBaVRDSXNJQ0pQSWl3Z0ltc2lMQ0FpVUNJc0lDSnhJaXdnSWtFaUxDQWlTU0lzSUNKR0lpd2dJazBpTENBaWVpSXNJQ0pTSWl3Z0lsVWlMQ0FpVnlJc0lDSkVJaXdnSWs0aUxDQWlSeUlzSUNKRElpd2dJa29pTENBaVZDSXNJQ0paSWl3Z0lsWWlMQ0FpU0NJc0lDSllJaXdnSWtzaUxDQWlVU0lzSUNKYUlpd2dJaVFpTENBaWJtNGlMQ0FpZEc0aUxDQWljbTRpTENBaVlXNGlMQ0FpWlc0aUxDQWlkVzRpTENBaWIyNGlMQ0FpWm00aUxDQWlZMjRpTENBaWMyNGlMQ0FpYkc0aUxDQWlhRzRpTENBaWNHNGlMQ0FpWkc0aUxDQWlkbTRpTENBaVoyNGlMQ0FpYlc0aUxDQWllVzRpTENBaWNtVnhkV2x5WlY5aVgzUnlaV1VpTENBaVgxOWpiMjF0YjI1S1UwMXBiaUlzSUNKbGVIQnZjblJ6SWl3Z0lsOWZaWGgwWlc1a2N5SXNJQ0psZUhSbGJtUlRkR0YwYVdOeklpd2dJbVFpTENBaVlpSXNJQ0p3SWl3Z0lsOWZJaXdnSW1SbFptRjFiSFJEYjIxd1lYSmhkRzl5SWl3Z0ltRWlMQ0FpZEdFaUxDQWlkR0lpTENBaWMybHRjR3hsUTI5dGNHRnlZWFJ2Y2lJc0lDSkNWSEpsWlNJc0lDSmxiblJ5YVdWeklpd2dJbU52YlhCaGNtVWlMQ0FpYldGNFRtOWtaVk5wZW1VaUxDQWlSVzF3ZEhsTVpXRm1JaXdnSW1OaGJHeGlZV05ySWl3Z0luUm9hWE5CY21jaUxDQWlYM1JvYVhNaUxDQWlheUlzSUNKMklpd2dJbWx1YVhScFlXeERiM1Z1ZEdWeUlpd2dJbXh2ZHlJc0lDSm9hV2RvSWl3Z0ltdGxlU0lzSUNKa1pXWmhkV3gwVm1Gc2RXVWlMQ0FpZG1Gc2RXVWlMQ0FpYjNabGNuZHlhWFJsSWl3Z0luSmxjM1ZzZENJc0lDSkNUbTlrWlVsdWRHVnlibUZzSWl3Z0lrUmxiR1YwWlZKaGJtZGxJaXdnSW01MUlpd2dJbkJoYVhKeklpd2dJbXRsZVhNaUxDQWljbVYwZFhKdVZHaHBjMGxtVlc1amFHRnVaMlZrSWl3Z0ltTm9ZVzVuWldRaUxDQWlhVzVqYkhWa1pVaHBaMmdpTENBaVpHVnNJaXdnSW1raUxDQWlSR1ZzWlhSbElpd2dJblJ0Y0NJc0lDSnBibWwwYVdGc1ZtRnNkV1VpTENBaWFYUWlMQ0FpVW1WMWMyVmtRWEp5WVhraUxDQWlibVY0ZENJc0lDSnNiM2RsYzNSTFpYa2lMQ0FpY21WMWMyVmtRWEp5WVhraUxDQWlhVzVtYnlJc0lDSnBkR1Z5WVhSdmNpSXNJQ0p1YjJSbGNYVmxkV1VpTENBaWJtOWtaV2x1WkdWNElpd2dJbXhsWVdZaUxDQWljM1JoZEdVaUxDQWlhblZ0Y0NJc0lDSnNaWFpsYkNJc0lDSm9hV2RvWlhOMFMyVjVJaXdnSW5OcmFYQklhV2RvWlhOMElpd2dJbDloSWl3Z0ltTm9aV05ySWl3Z0ltNWxlSFJ1YjJSbElpd2dJa1Z0Y0hSNVFYSnlZWGtpTENBaWIzUm9aWElpTENBaWIyNXNlVlJvYVhNaUxDQWliMjVzZVU5MGFHVnlJaXdnSW1ScFptWmxjbVZ1ZENJc0lDSmZZMjl0Y0dGeVpTSXNJQ0owYUdselEzVnljMjl5SWl3Z0ltOTBhR1Z5UTNWeWMyOXlJaXdnSW5Sb2FYTlRkV05qWlhOeklpd2dJbTkwYUdWeVUzVmpZMlZ6Y3lJc0lDSndjbVYyUTNWeWMyOXlUM0prWlhJaUxDQWlZM1Z5YzI5eVQzSmtaWElpTENBaWRHaHBjMHhsWVdZaUxDQWlkR2hwYzBsdWRHVnlibUZzVTNCcGJtVWlMQ0FpZEdocGMweGxkbVZzU1c1a2FXTmxjeUlzSUNKdmRHaGxja3hsWVdZaUxDQWliM1JvWlhKSmJuUmxjbTVoYkZOd2FXNWxJaXdnSW05MGFHVnlUR1YyWld4SmJtUnBZMlZ6SWl3Z0luWmhiRlJvYVhNaUxDQWlkbUZzVDNSb1pYSWlMQ0FpYjNSb1pYSldZV3dpTENBaWJHRnpkRlJvYVhNaUxDQWliR0Z6ZEU5MGFHVnlJaXdnSW01dlpHVlVhR2x6SWl3Z0ltNXZaR1ZQZEdobGNpSXNJQ0pqZFhKemIzSWlMQ0FpWTNWeWMyOXlSbWx1YVhOb1pXUWlMQ0FpWTI5dGNHRnlaVXRsZVhNaUxDQWlZMjl0Y0dGeVpXUWlMQ0FpWTJGdVUzUmxjQ0lzSUNKc1pYWmxiRWx1WkdsalpYTWlMQ0FpWTNWeWNtVnVkRXRsZVNJc0lDSjBjbVZsSWl3Z0lsOXliMjkwSWl3Z0ltaGxhV2RvZENJc0lDSnpkR1Z3Vkc5T2IyUmxJaXdnSW1sdWRHVnlibUZzVTNCcGJtVWlMQ0FpYkdWMlpXeHpUR1Z1WjNSb0lpd2dJbk53YVc1bFRHVnVaM1JvSWl3Z0ltNXZaR1ZNWlhabGJFbHVaR1Y0SWl3Z0lteGxkbVZzU1c1a1pYaFhZV3hyUW1GamF5SXNJQ0oyWVd4MVpVbHVaR1Y0SWl3Z0ltNWxlSFJNWlhabGJDSXNJQ0pqZFhKeVpXNTBUR1YyWld3aUxDQWlibTlrWlNJc0lDSmphR2xzWkhKbGJpSXNJQ0pqYUdsc1pFbHVaR1Y0SWl3Z0ltTjFjbk52Y2tFaUxDQWlZM1Z5YzI5eVFpSXNJQ0pvWldsbmFIUkJJaXdnSW1OMWNuSmxiblJMWlhsQklpd2dJbXhsZG1Wc1NXNWthV05sYzBFaUxDQWlhR1ZwWjJoMFFpSXNJQ0pqZFhKeVpXNTBTMlY1UWlJc0lDSnNaWFpsYkVsdVpHbGpaWE5DSWl3Z0ltdGxlVU52YlhCaGNtbHpiMjRpTENBaWFHVnBaMmgwVFdsdUlpd2dJbVJsY0hSb1FVNXZjbTFoYkdsNlpXUWlMQ0FpWkdWd2RHaENUbTl5YldGc2FYcGxaQ0lzSUNKbWFYSnpkRXRsZVNJc0lDSnVJaXdnSW1admNtTmxJaXdnSW0xaGVFeGxibWQwYUNJc0lDSnRhVzRpTENBaWJXRjRJaXdnSW5KbGMzVnNkSE1pTENBaVFuSmxZV3NpTENBaVlXUmtaV1FpTENBaWIyNUdiM1Z1WkNJc0lDSnlJaXdnSW5KdmIzUWlMQ0FpYVhOVGFHRnlaV1FpTENBaWRDSXNJQ0p6YVhwbElpd2dJbUZ6VTJWMElpd2dJbUowY21WbElpd2dJa0pPYjJSbElpd2dJblpoYkhWbGN5SXNJQ0oxYm1SbFpsWmhiSE1pTENBaVptRnBiRmh2Y2lJc0lDSmpiWEFpTENBaWJHOGlMQ0FpYUdraUxDQWliV2xrSWl3Z0ltTWlMQ0FpYkdGemRFbHVaR1Y0SWl3Z0ltbHVZMngxYzJsMlpTSXNJQ0pwYm1SbGVFOXlURzkzWlhJaUxDQWlaR1Z3ZEdnaUxDQWlZbUZ6WlVsdVpHVjRJaXdnSW10TUlpd2dJblpNSWl3Z0ltNWxkMUpwWjJoMFUybGliR2x1WnlJc0lDSjBZWEpuWlhRaUxDQWljbWh6SWl3Z0lteG9jeUlzSUNKb1lXeG1JaXdnSW1Wa2FYUk5iMlJsSWl3Z0ltTnZkVzUwSWl3Z0ltbE1iM2NpTENBaWFVaHBaMmdpTENBaVh5SXNJQ0pmYzNWd1pYSWlMQ0FpYkdWdVozUm9JaXdnSW1OTUlpd2dJbU5vYVd4a1UybDZaU0lzSUNKMGIyOW1aWGNpTENBaVkyaHBiR1FpTENBaWJXRjRVMmw2WlNJc0lDSnZiR1JNWlc1bmRHZ2lMQ0FpY21oelEyaHBiR1J5Wlc0aUxDQWlabUZqZENJc0lDSmhjbWR6SWl3Z0lsOXBJaXdnSWt4MWVHOXVSWEp5YjNJaUxDQWlTVzUyWVd4cFpFUmhkR1ZVYVcxbFJYSnliM0lpTENBaWNtVmhjMjl1SWl3Z0lrbHVkbUZzYVdSSmJuUmxjblpoYkVWeWNtOXlJaXdnSWtsdWRtRnNhV1JFZFhKaGRHbHZia1Z5Y205eUlpd2dJa052Ym1ac2FXTjBhVzVuVTNCbFkybG1hV05oZEdsdmJrVnljbTl5SWl3Z0lrbHVkbUZzYVdSVmJtbDBSWEp5YjNJaUxDQWlkVzVwZENJc0lDSkpiblpoYkdsa1FYSm5kVzFsYm5SRmNuSnZjaUlzSUNKYWIyNWxTWE5CWW5OMGNtRmpkRVZ5Y205eUlpd2dJbTRpTENBaWN5SXNJQ0pzSWl3Z0lrUkJWRVZmVTBoUFVsUWlMQ0FpUkVGVVJWOU5SVVFpTENBaVJFRlVSVjlOUlVSZlYwbFVTRjlYUlVWTFJFRlpJaXdnSWtSQlZFVmZSbFZNVENJc0lDSkVRVlJGWDBoVlIwVWlMQ0FpVkVsTlJWOVRTVTFRVEVVaUxDQWlWRWxOUlY5WFNWUklYMU5GUTA5T1JGTWlMQ0FpVkVsTlJWOVhTVlJJWDFOSVQxSlVYMDlHUmxORlZDSXNJQ0pVU1UxRlgxZEpWRWhmVEU5T1IxOVBSa1pUUlZRaUxDQWlWRWxOUlY4eU5GOVRTVTFRVEVVaUxDQWlWRWxOUlY4eU5GOVhTVlJJWDFORlEwOU9SRk1pTENBaVZFbE5SVjh5TkY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNJc0lDSlVTVTFGWHpJMFgxZEpWRWhmVEU5T1IxOVBSa1pUUlZRaUxDQWlSRUZVUlZSSlRVVmZVMGhQVWxRaUxDQWlSRUZVUlZSSlRVVmZVMGhQVWxSZlYwbFVTRjlUUlVOUFRrUlRJaXdnSWtSQlZFVlVTVTFGWDAxRlJDSXNJQ0pFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlUUlVOUFRrUlRJaXdnSWtSQlZFVlVTVTFGWDAxRlJGOVhTVlJJWDFkRlJVdEVRVmtpTENBaVJFRlVSVlJKVFVWZlJsVk1UQ0lzSUNKRVFWUkZWRWxOUlY5R1ZVeE1YMWRKVkVoZlUwVkRUMDVFVXlJc0lDSkVRVlJGVkVsTlJWOUlWVWRGSWl3Z0lrUkJWRVZVU1UxRlgwaFZSMFZmVjBsVVNGOVRSVU5QVGtSVElpd2dJbWx6Vlc1a1pXWnBibVZrSWl3Z0ltOGlMQ0FpYVhOT2RXMWlaWElpTENBaWFYTkpiblJsWjJWeUlpd2dJbWx6VTNSeWFXNW5JaXdnSW1selJHRjBaU0lzSUNKb1lYTlNaV3hoZEdsMlpTSXNJQ0psSWl3Z0ltMWhlV0psUVhKeVlYa2lMQ0FpZEdocGJtY2lMQ0FpWW1WemRFSjVJaXdnSW1GeWNpSXNJQ0ppZVNJc0lDSmpiMjF3WVhKbElpd2dJbUpsYzNRaUxDQWlibVY0ZENJc0lDSndZV2x5SWl3Z0luQnBZMnNpTENBaWIySnFJaXdnSW10bGVYTWlMQ0FpWVNJc0lDSnJJaXdnSW1oaGMwOTNibEJ5YjNCbGNuUjVJaXdnSW5CeWIzQWlMQ0FpYVc1MFpXZGxja0psZEhkbFpXNGlMQ0FpWW05MGRHOXRJaXdnSW5SdmNDSXNJQ0ptYkc5dmNrMXZaQ0lzSUNKNElpd2dJbTRpTENBaWNHRmtVM1JoY25RaUxDQWlhVzV3ZFhRaUxDQWlhWE5PWldjaUxDQWljR0ZrWkdWa0lpd2dJbkJoY25ObFNXNTBaV2RsY2lJc0lDSnpkSEpwYm1jaUxDQWljR0Z5YzJWR2JHOWhkR2x1WnlJc0lDSndZWEp6WlUxcGJHeHBjeUlzSUNKbWNtRmpkR2x2YmlJc0lDSm1JaXdnSW5KdmRXNWtWRzhpTENBaWJuVnRZbVZ5SWl3Z0ltUnBaMmwwY3lJc0lDSjBiM2RoY21SYVpYSnZJaXdnSW1aaFkzUnZjaUlzSUNKcGMweGxZWEJaWldGeUlpd2dJbmxsWVhJaUxDQWlaR0Y1YzBsdVdXVmhjaUlzSUNKa1lYbHpTVzVOYjI1MGFDSXNJQ0p0YjI1MGFDSXNJQ0p0YjJSTmIyNTBhQ0lzSUNKdGIyUlpaV0Z5SWl3Z0ltOWlhbFJ2VEc5allXeFVVeUlzSUNKa0lpd2dJbmRsWld0elNXNVhaV1ZyV1dWaGNpSXNJQ0ozWldWcldXVmhjaUlzSUNKd01TSXNJQ0pzWVhOMElpd2dJbkF5SWl3Z0luVnVkSEoxYm1OaGRHVlpaV0Z5SWl3Z0luQmhjbk5sV205dVpVbHVabThpTENBaWRITWlMQ0FpYjJabWMyVjBSbTl5YldGMElpd2dJbXh2WTJGc1pTSXNJQ0owYVcxbFdtOXVaU0lzSUNKa1lYUmxJaXdnSW1sdWRHeFBjSFJ6SWl3Z0ltMXZaR2xtYVdWa0lpd2dJbDlmYzNCeVpXRmtWbUZzZFdWeklpd2dJbkJoY25ObFpDSXNJQ0p0SWl3Z0luTnBaMjVsWkU5bVpuTmxkQ0lzSUNKdlptWkliM1Z5VTNSeUlpd2dJbTltWmsxcGJuVjBaVk4wY2lJc0lDSnZabVpJYjNWeUlpd2dJbTltWmsxcGJpSXNJQ0p2Wm1aTmFXNVRhV2R1WldRaUxDQWlZWE5PZFcxaVpYSWlMQ0FpZG1Gc2RXVWlMQ0FpYm5WdFpYSnBZMVpoYkhWbElpd2dJa2x1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5SWl3Z0ltNXZjbTFoYkdsNlpVOWlhbVZqZENJc0lDSnViM0p0WVd4cGVtVnlJaXdnSW01dmNtMWhiR2w2WldRaUxDQWlkU0lzSUNKMklpd2dJbVp2Y20xaGRFOW1abk5sZENJc0lDSnZabVp6WlhRaUxDQWlabTl5YldGMElpd2dJbWh2ZFhKeklpd2dJbTFwYm5WMFpYTWlMQ0FpYzJsbmJpSXNJQ0owYVcxbFQySnFaV04wSWl3Z0ltbGhibUZTWldkbGVDSXNJQ0p0YjI1MGFITk1iMjVuSWl3Z0ltMXZiblJvYzFOb2IzSjBJaXdnSW0xdmJuUm9jMDVoY25KdmR5SXNJQ0p0YjI1MGFITWlMQ0FpYkdWdVozUm9JaXdnSW5kbFpXdGtZWGx6VEc5dVp5SXNJQ0ozWldWclpHRjVjMU5vYjNKMElpd2dJbmRsWld0a1lYbHpUbUZ5Y205M0lpd2dJbmRsWld0a1lYbHpJaXdnSW0xbGNtbGthV1Z0Y3lJc0lDSmxjbUZ6VEc5dVp5SXNJQ0psY21GelUyaHZjblFpTENBaVpYSmhjMDVoY25KdmR5SXNJQ0psY21Geklpd2dJbTFsY21sa2FXVnRSbTl5UkdGMFpWUnBiV1VpTENBaVpIUWlMQ0FpZDJWbGEyUmhlVVp2Y2tSaGRHVlVhVzFsSWl3Z0ltMXZiblJvUm05eVJHRjBaVlJwYldVaUxDQWlaWEpoUm05eVJHRjBaVlJwYldVaUxDQWlabTl5YldGMFVtVnNZWFJwZG1WVWFXMWxJaXdnSW5WdWFYUWlMQ0FpWTI5MWJuUWlMQ0FpYm5WdFpYSnBZeUlzSUNKdVlYSnliM2NpTENBaWRXNXBkSE1pTENBaWJHRnpkR0ZpYkdVaUxDQWlhWE5FWVhraUxDQWlhWE5KYmxCaGMzUWlMQ0FpWm0xMFZtRnNkV1VpTENBaWMybHVaM1ZzWVhJaUxDQWliR2xzVlc1cGRITWlMQ0FpWm0xMFZXNXBkQ0lzSUNKemRISnBibWRwWm5sVWIydGxibk1pTENBaWMzQnNhWFJ6SWl3Z0luUnZhMlZ1Vkc5VGRISnBibWNpTENBaWN5SXNJQ0owYjJ0bGJpSXNJQ0p0WVdOeWIxUnZhMlZ1Vkc5R2IzSnRZWFJQY0hSeklpd2dJa1JCVkVWZlUwaFBVbFFpTENBaVJFRlVSVjlOUlVRaUxDQWlSRUZVUlY5R1ZVeE1JaXdnSWtSQlZFVmZTRlZIUlNJc0lDSlVTVTFGWDFOSlRWQk1SU0lzSUNKVVNVMUZYMWRKVkVoZlUwVkRUMDVFVXlJc0lDSlVTVTFGWDFkSlZFaGZVMGhQVWxSZlQwWkdVMFZVSWl3Z0lsUkpUVVZmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ0lzSUNKVVNVMUZYekkwWDFOSlRWQk1SU0lzSUNKVVNVMUZYekkwWDFkSlZFaGZVMFZEVDA1RVV5SXNJQ0pVU1UxRlh6STBYMWRKVkVoZlUwaFBVbFJmVDBaR1UwVlVJaXdnSWxSSlRVVmZNalJmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ0lzSUNKRVFWUkZWRWxOUlY5VFNFOVNWQ0lzSUNKRVFWUkZWRWxOUlY5TlJVUWlMQ0FpUkVGVVJWUkpUVVZmUmxWTVRDSXNJQ0pFUVZSRlZFbE5SVjlJVlVkRklpd2dJa1JCVkVWVVNVMUZYMU5JVDFKVVgxZEpWRWhmVTBWRFQwNUVVeUlzSUNKRVFWUkZWRWxOUlY5TlJVUmZWMGxVU0Y5VFJVTlBUa1JUSWl3Z0lrUkJWRVZVU1UxRlgwWlZURXhmVjBsVVNGOVRSVU5QVGtSVElpd2dJa1JCVkVWVVNVMUZYMGhWUjBWZlYwbFVTRjlUUlVOUFRrUlRJaXdnSWtadmNtMWhkSFJsY2lJc0lDSmZSbTl5YldGMGRHVnlJaXdnSW14dlkyRnNaU0lzSUNKdmNIUnpJaXdnSW1adGRDSXNJQ0pqZFhKeVpXNTBJaXdnSW1OMWNuSmxiblJHZFd4c0lpd2dJbUp5WVdOclpYUmxaQ0lzSUNKcElpd2dJbU1pTENBaVptOXliV0YwVDNCMGN5SXNJQ0prZENJc0lDSmZYM053Y21WaFpGWmhiSFZsY3lJc0lDSnVJaXdnSW5BaUxDQWljR0ZrVTNSaGNuUWlMQ0FpYTI1dmQyNUZibWRzYVhOb0lpd2dJblZ6WlVSaGRHVlVhVzFsUm05eWJXRjBkR1Z5SWl3Z0luTjBjbWx1WnlJc0lDSmxlSFJ5WVdOMElpd2dJbVp2Y20xaGRFOW1abk5sZENJc0lDSnRaWEpwWkdsbGJTSXNJQ0p0WlhKcFpHbGxiVVp2Y2tSaGRHVlVhVzFsSWl3Z0ltMXZiblJvSWl3Z0lteGxibWQwYUNJc0lDSnpkR0Z1WkdGc2IyNWxJaXdnSW0xdmJuUm9SbTl5UkdGMFpWUnBiV1VpTENBaWQyVmxhMlJoZVNJc0lDSjNaV1ZyWkdGNVJtOXlSR0YwWlZScGJXVWlMQ0FpYldGNVltVk5ZV055YnlJc0lDSmxjbUVpTENBaVpYSmhSbTl5UkdGMFpWUnBiV1VpTENBaVpIVnlJaXdnSW5SdmEyVnVWRzlHYVdWc1pDSXNJQ0pzYVd4a2RYSWlMQ0FpYldGd2NHVmtJaXdnSW5SdmEyVnVjeUlzSUNKeVpXRnNWRzlyWlc1eklpd2dJbVp2ZFc1a0lpd2dJbXhwZEdWeVlXd2lMQ0FpZG1Gc0lpd2dJbU52Ykd4aGNITmxaQ0lzSUNKMElpd2dJa2x1ZG1Gc2FXUWlMQ0FpY21WaGMyOXVJaXdnSW1WNGNHeGhibUYwYVc5dUlpd2dJbHB2Ym1VaUxDQWlXbTl1WlVselFXSnpkSEpoWTNSRmNuSnZjaUlzSUNKMGN5SXNJQ0p2Y0hSeklpd2dJbVp2Y20xaGRDSXNJQ0p2ZEdobGNscHZibVVpTENBaWMybHVaMnhsZEc5dUlpd2dJbE41YzNSbGJWcHZibVVpTENBaVgxTjVjM1JsYlZwdmJtVWlMQ0FpV205dVpTSXNJQ0owY3lJc0lDSm1iM0p0WVhRaUxDQWliRzlqWVd4bElpd2dJbkJoY25ObFdtOXVaVWx1Wm04aUxDQWlabTl5YldGMFQyWm1jMlYwSWl3Z0ltOTBhR1Z5V205dVpTSXNJQ0prZEdaRFlXTm9aU0lzSUNKdFlXdGxSRlJHSWl3Z0lucHZibVVpTENBaWRIbHdaVlJ2VUc5eklpd2dJbWhoWTJ0NVQyWm1jMlYwSWl3Z0ltUjBaaUlzSUNKa1lYUmxJaXdnSW1admNtMWhkSFJsWkNJc0lDSndZWEp6WldRaUxDQWlaazF2Ym5Sb0lpd2dJbVpFWVhraUxDQWlabGxsWVhJaUxDQWlabUZrVDNKQ1l5SXNJQ0ptU0c5MWNpSXNJQ0ptVFdsdWRYUmxJaXdnSW1aVFpXTnZibVFpTENBaWNHRnlkSE5QWm1aelpYUWlMQ0FpWm1sc2JHVmtJaXdnSW1raUxDQWlkSGx3WlNJc0lDSjJZV3gxWlNJc0lDSndiM01pTENBaWFYTlZibVJsWm1sdVpXUWlMQ0FpYVdGdVlWcHZibVZEWVdOb1pTSXNJQ0pKUVU1QldtOXVaU0lzSUNKZlNVRk9RVnB2Ym1VaUxDQWlXbTl1WlNJc0lDSnVZVzFsSWl3Z0luTWlMQ0FpWlNJc0lDSjBjeUlzSUNKbWIzSnRZWFFpTENBaWJHOWpZV3hsSWl3Z0luQmhjbk5sV205dVpVbHVabThpTENBaVptOXliV0YwVDJabWMyVjBJaXdnSW5sbFlYSWlMQ0FpYlc5dWRHZ2lMQ0FpWkdGNUlpd2dJbUZrVDNKQ1l5SXNJQ0pvYjNWeUlpd2dJbTFwYm5WMFpTSXNJQ0p6WldOdmJtUWlMQ0FpWVhOVlZFTWlMQ0FpYjJKcVZHOU1iMk5oYkZSVElpd2dJbUZ6VkZNaUxDQWliM1psY2lJc0lDSnZkR2hsY2xwdmJtVWlMQ0FpYzJsdVoyeGxkRzl1SWl3Z0lrWnBlR1ZrVDJabWMyVjBXbTl1WlNJc0lDSmZSbWw0WldSUFptWnpaWFJhYjI1bElpd2dJbHB2Ym1VaUxDQWliMlptYzJWMElpd2dJbk1pTENBaWNpSXNJQ0p6YVdkdVpXUlBabVp6WlhRaUxDQWlabTl5YldGMFQyWm1jMlYwSWl3Z0luUnpJaXdnSW1admNtMWhkQ0lzSUNKdmRHaGxjbHB2Ym1VaUxDQWlTVzUyWVd4cFpGcHZibVVpTENBaVdtOXVaU0lzSUNKNmIyNWxUbUZ0WlNJc0lDSnViM0p0WVd4cGVtVmFiMjVsSWl3Z0ltbHVjSFYwSWl3Z0ltUmxabUYxYkhSYWIyNWxJaXdnSW05bVpuTmxkQ0lzSUNKcGMxVnVaR1ZtYVc1bFpDSXNJQ0phYjI1bElpd2dJbWx6VTNSeWFXNW5JaXdnSW14dmQyVnlaV1FpTENBaVJtbDRaV1JQWm1aelpYUmFiMjVsSWl3Z0lrbEJUa0ZhYjI1bElpd2dJbWx6VG5WdFltVnlJaXdnSWtsdWRtRnNhV1JhYjI1bElpd2dJbTV2ZHlJc0lDSmtaV1poZFd4MFdtOXVaU0lzSUNKa1pXWmhkV3gwVEc5allXeGxJaXdnSW1SbFptRjFiSFJPZFcxaVpYSnBibWRUZVhOMFpXMGlMQ0FpWkdWbVlYVnNkRTkxZEhCMWRFTmhiR1Z1WkdGeUlpd2dJblJvY205M1QyNUpiblpoYkdsa0lpd2dJbE5sZEhScGJtZHpJaXdnSW00aUxDQWllbTl1WlNJc0lDSnViM0p0WVd4cGVtVmFiMjVsSWl3Z0lsTjVjM1JsYlZwdmJtVWlMQ0FpYkc5allXeGxJaXdnSW01MWJXSmxjbWx1WjFONWMzUmxiU0lzSUNKdmRYUndkWFJEWVd4bGJtUmhjaUlzSUNKMElpd2dJa3h2WTJGc1pTSXNJQ0pKUVU1QldtOXVaU0lzSUNKcGJuUnNURVpEWVdOb1pTSXNJQ0puWlhSRFlXTm9aV1JNUmlJc0lDSnNiMk5UZEhKcGJtY2lMQ0FpYjNCMGN5SXNJQ0pyWlhraUxDQWlaSFJtSWl3Z0ltbHVkR3hFVkVOaFkyaGxJaXdnSW1kbGRFTmhZMmhsWkVSVVJpSXNJQ0pwYm5Sc1RuVnRRMkZqYUdVaUxDQWlaMlYwUTJGamFHVmtTVTVHSWl3Z0ltbHVaaUlzSUNKcGJuUnNVbVZzUTJGamFHVWlMQ0FpWjJWMFEyRmphR1ZrVWxSR0lpd2dJbDloSWl3Z0ltSmhjMlVpTENBaVkyRmphR1ZMWlhsUGNIUnpJaXdnSWw5ZmIySnFVbVZ6ZENJc0lDSnplWE5NYjJOaGJHVkRZV05vWlNJc0lDSnplWE4wWlcxTWIyTmhiR1VpTENBaWNHRnljMlZNYjJOaGJHVlRkSEpwYm1jaUxDQWliRzlqWVd4bFUzUnlJaXdnSW5WSmJtUmxlQ0lzSUNKdmNIUnBiMjV6SWl3Z0luTnRZV3hzWlhJaUxDQWlaU0lzSUNKdWRXMWlaWEpwYm1kVGVYTjBaVzBpTENBaVkyRnNaVzVrWVhJaUxDQWlhVzUwYkVOdmJtWnBaMU4wY21sdVp5SXNJQ0p2ZFhSd2RYUkRZV3hsYm1SaGNpSXNJQ0p0WVhCTmIyNTBhSE1pTENBaVppSXNJQ0p0Y3lJc0lDSnBJaXdnSW1SMElpd2dJa1JoZEdWVWFXMWxJaXdnSW0xaGNGZGxaV3RrWVhseklpd2dJbXhwYzNSVGRIVm1aaUlzSUNKc2IyTWlMQ0FpYkdWdVozUm9JaXdnSW1SbFptRjFiSFJQU3lJc0lDSmxibWRzYVhOb1JtNGlMQ0FpYVc1MGJFWnVJaXdnSW0xdlpHVWlMQ0FpYzNWd2NHOXlkSE5HWVhOMFRuVnRZbVZ5Y3lJc0lDSlFiMng1VG5WdFltVnlSbTl5YldGMGRHVnlJaXdnSW1sdWRHd2lMQ0FpWm05eVkyVlRhVzF3YkdVaUxDQWljR0ZrVkc4aUxDQWlabXh2YjNJaUxDQWliM1JvWlhKUGNIUnpJaXdnSW1sdWRHeFBjSFJ6SWl3Z0lsOWZjM0J5WldGa1ZtRnNkV1Z6SWl3Z0ltWnBlR1ZrSWl3Z0luSnZkVzVrVkc4aUxDQWljR0ZrVTNSaGNuUWlMQ0FpVUc5c2VVUmhkR1ZHYjNKdFlYUjBaWElpTENBaWVpSXNJQ0puYlhSUFptWnpaWFFpTENBaWIyWm1jMlYwV2lJc0lDSkpRVTVCV205dVpTSXNJQ0pRYjJ4NVVtVnNSbTl5YldGMGRHVnlJaXdnSW1selJXNW5iR2x6YUNJc0lDSm9ZWE5TWld4aGRHbDJaU0lzSUNKamIzVnVkQ0lzSUNKMWJtbDBJaXdnSW1admNtMWhkRkpsYkdGMGFYWmxWR2x0WlNJc0lDSk1iMk5oYkdVaUxDQWlYMHh2WTJGc1pTSXNJQ0pzYjJOaGJHVWlMQ0FpWkdWbVlYVnNkRlJ2UlU0aUxDQWljM0JsWTJsbWFXVmtURzlqWVd4bElpd2dJbE5sZEhScGJtZHpJaXdnSW14dlkyRnNaVklpTENBaWJuVnRZbVZ5YVc1blUzbHpkR1Z0VWlJc0lDSnZkWFJ3ZFhSRFlXeGxibVJoY2xJaUxDQWliblZ0WW1WeWFXNW5JaXdnSW5CaGNuTmxaRXh2WTJGc1pTSXNJQ0p3WVhKelpXUk9kVzFpWlhKcGJtZFRlWE4wWlcwaUxDQWljR0Z5YzJWa1QzVjBjSFYwUTJGc1pXNWtZWElpTENBaWFYTkJZM1IxWVd4c2VVVnVJaXdnSW1oaGMwNXZWMlZwY21SdVpYTnpJaXdnSW1Gc2RITWlMQ0FpWDE5emNISmxZV1JRY205d2N5SXNJQ0ptYjNKdFlYUWlMQ0FpYlc5dWRHaHpJaXdnSW1admNtMWhkRk4wY2lJc0lDSjNaV1ZyWkdGNWN5SXNJQ0p0WlhKcFpHbGxiWE1pTENBaVpYSmhjeUlzSUNKbWFXVnNaQ0lzSUNKa1ppSXNJQ0p5WlhOMWJIUnpJaXdnSW0xaGRHTm9hVzVuSWl3Z0ltMGlMQ0FpYjNSb1pYSWlMQ0FpWTI5dFltbHVaVkpsWjJWNFpYTWlMQ0FpY21WblpYaGxjeUlzSUNKbWRXeHNJaXdnSW1ZaUxDQWlZMjl0WW1sdVpVVjRkSEpoWTNSdmNuTWlMQ0FpWlhoMGNtRmpkRzl5Y3lJc0lDSnRJaXdnSW0xbGNtZGxaRlpoYkhNaUxDQWliV1Z5WjJWa1dtOXVaU0lzSUNKamRYSnpiM0lpTENBaVpYZ2lMQ0FpZG1Gc0lpd2dJbnB2Ym1VaUxDQWlibVY0ZENJc0lDSmZYM053Y21WaFpGWmhiSFZsY3lJc0lDSndZWEp6WlNJc0lDSnpJaXdnSW5CaGRIUmxjbTV6SWl3Z0luSmxaMlY0SWl3Z0ltVjRkSEpoWTNSdmNpSXNJQ0p6YVcxd2JHVlFZWEp6WlNJc0lDSnJaWGx6SWl3Z0ltMWhkR05vSWl3Z0luSmxkQ0lzSUNKcElpd2dJbkJoY25ObFNXNTBaV2RsY2lJc0lDSnZabVp6WlhSU1pXZGxlQ0lzSUNKcGMyOUZlSFJsYm1SbFpGcHZibVVpTENBaWFXRnVZVkpsWjJWNElpd2dJbWx6YjFScGJXVkNZWE5sVW1WblpYZ2lMQ0FpYVhOdlZHbHRaVkpsWjJWNElpd2dJbWx6YjFScGJXVkZlSFJsYm5OcGIyNVNaV2RsZUNJc0lDSnBjMjlaYldSU1pXZGxlQ0lzSUNKcGMyOVhaV1ZyVW1WblpYZ2lMQ0FpYVhOdlQzSmthVzVoYkZKbFoyVjRJaXdnSW1WNGRISmhZM1JKVTA5WFpXVnJSR0YwWVNJc0lDSmxlSFJ5WVdOMFNWTlBUM0prYVc1aGJFUmhkR0VpTENBaWMzRnNXVzFrVW1WblpYZ2lMQ0FpYzNGc1ZHbHRaVkpsWjJWNElpd2dJbk54YkZScGJXVkZlSFJsYm5OcGIyNVNaV2RsZUNJc0lDSnBiblFpTENBaWNHOXpJaXdnSW1aaGJHeGlZV05ySWl3Z0ltbHpWVzVrWldacGJtVmtJaXdnSW1WNGRISmhZM1JKVTA5WmJXUWlMQ0FpWlhoMGNtRmpkRWxUVDFScGJXVWlMQ0FpY0dGeWMyVk5hV3hzYVhNaUxDQWlaWGgwY21GamRFbFRUMDltWm5ObGRDSXNJQ0pzYjJOaGJDSXNJQ0ptZFd4c1QyWm1jMlYwSWl3Z0luTnBaMjVsWkU5bVpuTmxkQ0lzSUNKR2FYaGxaRTltWm5ObGRGcHZibVVpTENBaVpYaDBjbUZqZEVsQlRrRmFiMjVsSWl3Z0lrbEJUa0ZhYjI1bElpd2dJbWx6YjFScGJXVlBibXg1SWl3Z0ltbHpiMFIxY21GMGFXOXVJaXdnSW1WNGRISmhZM1JKVTA5RWRYSmhkR2x2YmlJc0lDSjVaV0Z5VTNSeUlpd2dJbTF2Ym5Sb1UzUnlJaXdnSW5kbFpXdFRkSElpTENBaVpHRjVVM1J5SWl3Z0ltaHZkWEpUZEhJaUxDQWliV2x1ZFhSbFUzUnlJaXdnSW5ObFkyOXVaRk4wY2lJc0lDSnRhV3hzYVhObFkyOXVaSE5UZEhJaUxDQWlhR0Z6VG1WbllYUnBkbVZRY21WbWFYZ2lMQ0FpYm1WbllYUnBkbVZUWldOdmJtUnpJaXdnSW0xaGVXSmxUbVZuWVhSbElpd2dJbTUxYlNJc0lDSm1iM0pqWlNJc0lDSndZWEp6WlVac2IyRjBhVzVuSWl3Z0ltOWljMDltWm5ObGRITWlMQ0FpWm5KdmJWTjBjbWx1WjNNaUxDQWlkMlZsYTJSaGVWTjBjaUlzSUNKeVpYTjFiSFFpTENBaWRXNTBjblZ1WTJGMFpWbGxZWElpTENBaWJXOXVkR2h6VTJodmNuUWlMQ0FpZDJWbGEyUmhlWE5NYjI1bklpd2dJbmRsWld0a1lYbHpVMmh2Y25RaUxDQWljbVpqTWpneU1pSXNJQ0psZUhSeVlXTjBVa1pETWpneU1pSXNJQ0p2WW5OUFptWnpaWFFpTENBaWJXbHNUMlptYzJWMElpd2dJbTltWmtodmRYSlRkSElpTENBaWIyWm1UV2x1ZFhSbFUzUnlJaXdnSW05bVpuTmxkQ0lzSUNKd2NtVndjbTlqWlhOelVrWkRNamd5TWlJc0lDSnlabU14TVRJeklpd2dJbkptWXpnMU1DSXNJQ0poYzJOcGFTSXNJQ0psZUhSeVlXTjBVa1pETVRFeU0wOXlPRFV3SWl3Z0ltVjRkSEpoWTNSQlUwTkpTU0lzSUNKcGMyOVpiV1JYYVhSb1ZHbHRaVVY0ZEdWdWMybHZibEpsWjJWNElpd2dJbWx6YjFkbFpXdFhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0SWl3Z0ltbHpiMDl5WkdsdVlXeFhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0SWl3Z0ltbHpiMVJwYldWRGIyMWlhVzVsWkZKbFoyVjRJaXdnSW1WNGRISmhZM1JKVTA5WmJXUlVhVzFsUVc1a1QyWm1jMlYwSWl3Z0ltVjRkSEpoWTNSSlUwOVhaV1ZyVkdsdFpVRnVaRTltWm5ObGRDSXNJQ0psZUhSeVlXTjBTVk5QVDNKa2FXNWhiRVJoZEdWQmJtUlVhVzFsSWl3Z0ltVjRkSEpoWTNSSlUwOVVhVzFsUVc1a1QyWm1jMlYwSWl3Z0luQmhjbk5sU1ZOUFJHRjBaU0lzSUNKd1lYSnpaVkpHUXpJNE1qSkVZWFJsSWl3Z0luQmhjbk5sU0ZSVVVFUmhkR1VpTENBaWNHRnljMlZKVTA5RWRYSmhkR2x2YmlJc0lDSmxlSFJ5WVdOMFNWTlBWR2x0WlU5dWJIa2lMQ0FpY0dGeWMyVkpVMDlVYVcxbFQyNXNlU0lzSUNKemNXeFpiV1JYYVhSb1ZHbHRaVVY0ZEdWdWMybHZibEpsWjJWNElpd2dJbk54YkZScGJXVkRiMjFpYVc1bFpGSmxaMlY0SWl3Z0ltVjRkSEpoWTNSSlUwOVVhVzFsVDJabWMyVjBRVzVrU1VGT1FWcHZibVVpTENBaWNHRnljMlZUVVV3aUxDQWlTVTVXUVV4SlJDSXNJQ0pzYjNkUGNtUmxjazFoZEhKcGVDSXNJQ0pqWVhOMVlXeE5ZWFJ5YVhnaUxDQWlYMTl6Y0hKbFlXUldZV3gxWlhNaUxDQWlaR0Y1YzBsdVdXVmhja0ZqWTNWeVlYUmxJaXdnSW1SaGVYTkpiazF2Ym5Sb1FXTmpkWEpoZEdVaUxDQWlZV05qZFhKaGRHVk5ZWFJ5YVhnaUxDQWliM0prWlhKbFpGVnVhWFJ6SWl3Z0luSmxkbVZ5YzJWVmJtbDBjeUlzSUNKamJHOXVaU0lzSUNKa2RYSWlMQ0FpWVd4MGN5SXNJQ0pqYkdWaGNpSXNJQ0pqYjI1bUlpd2dJa1IxY21GMGFXOXVJaXdnSW1GdWRHbFVjblZ1WXlJc0lDSmpiMjUyWlhKMElpd2dJbTFoZEhKcGVDSXNJQ0ptY205dFRXRndJaXdnSW1aeWIyMVZibWwwSWl3Z0luUnZUV0Z3SWl3Z0luUnZWVzVwZENJc0lDSmpiMjUySWl3Z0luSmhkeUlzSUNKellXMWxVMmxuYmlJc0lDSmhaR1JsWkNJc0lDSnViM0p0WVd4cGVtVldZV3gxWlhNaUxDQWlkbUZzY3lJc0lDSndjbVYyYVc5MWN5SXNJQ0pqZFhKeVpXNTBJaXdnSW1selZXNWtaV1pwYm1Wa0lpd2dJbDlFZFhKaGRHbHZiaUlzSUNKamIyNW1hV2NpTENBaVlXTmpkWEpoZEdVaUxDQWlURzlqWVd4bElpd2dJbU52ZFc1MElpd2dJbTl3ZEhNaUxDQWliMkpxSWl3Z0lrbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlJaXdnSW01dmNtMWhiR2w2WlU5aWFtVmpkQ0lzSUNKa2RYSmhkR2x2Ymt4cGEyVWlMQ0FpYVhOT2RXMWlaWElpTENBaWRHVjRkQ0lzSUNKd1lYSnpaV1FpTENBaWNHRnljMlZKVTA5RWRYSmhkR2x2YmlJc0lDSndZWEp6WlVsVFQxUnBiV1ZQYm14NUlpd2dJbkpsWVhOdmJpSXNJQ0psZUhCc1lXNWhkR2x2YmlJc0lDSnBiblpoYkdsa0lpd2dJa2x1ZG1Gc2FXUWlMQ0FpVTJWMGRHbHVaM01pTENBaVNXNTJZV3hwWkVSMWNtRjBhVzl1UlhKeWIzSWlMQ0FpZFc1cGRDSXNJQ0p1YjNKdFlXeHBlbVZrSWl3Z0lrbHVkbUZzYVdSVmJtbDBSWEp5YjNJaUxDQWlieUlzSUNKbWJYUWlMQ0FpWm0xMFQzQjBjeUlzSUNKZlgzTndjbVZoWkZCeWIzQnpJaXdnSWtadmNtMWhkSFJsY2lJc0lDSnNJaXdnSW5aaGJDSXNJQ0p1SWl3Z0luTWlMQ0FpY205MWJtUlVieUlzSUNKdGFXeHNhWE1pTENBaWRtRnNkV1VpTENBaWMzUnlJaXdnSW1SMWNtRjBhVzl1SWl3Z0luSmxjM1ZzZENJc0lDSnJJaXdnSW1oaGMwOTNibEJ5YjNCbGNuUjVJaXdnSW1adUlpd2dJbUZ6VG5WdFltVnlJaXdnSW5aaGJIVmxjeUlzSUNKdGFYaGxaQ0lzSUNKc2IyTmhiR1VpTENBaWJuVnRZbVZ5YVc1blUzbHpkR1Z0SWl3Z0ltTnZiblpsY25OcGIyNUJZMk4xY21GamVTSXNJQ0pzYjJNaUxDQWlkVzVwZEhNaUxDQWlkU0lzSUNKaWRXbHNkQ0lzSUNKaFkyTjFiWFZzWVhSbFpDSXNJQ0pzWVhOMFZXNXBkQ0lzSUNKdmQyNGlMQ0FpWVdzaUxDQWlhU0lzSUNKa2IzZHVJaXdnSW10bGVTSXNJQ0p1WldkaGRHVmtJaXdnSW05MGFHVnlJaXdnSW1WeElpd2dJbll4SWl3Z0luWXlJaXdnSWtsT1ZrRk1TVVFpTENBaWRtRnNhV1JoZEdWVGRHRnlkRVZ1WkNJc0lDSnpkR0Z5ZENJc0lDSmxibVFpTENBaVNXNTBaWEoyWVd3aUxDQWlYMGx1ZEdWeWRtRnNJaXdnSW1OdmJtWnBaeUlzSUNKeVpXRnpiMjRpTENBaVpYaHdiR0Z1WVhScGIyNGlMQ0FpU1c1MllXeHBaRUZ5WjNWdFpXNTBSWEp5YjNJaUxDQWlhVzUyWVd4cFpDSXNJQ0pKYm5aaGJHbGtJaXdnSWxObGRIUnBibWR6SWl3Z0lrbHVkbUZzYVdSSmJuUmxjblpoYkVWeWNtOXlJaXdnSW1KMWFXeDBVM1JoY25RaUxDQWlabkpwWlc1a2JIbEVZWFJsVkdsdFpTSXNJQ0ppZFdsc2RFVnVaQ0lzSUNKMllXeHBaR0YwWlVWeWNtOXlJaXdnSW1SMWNtRjBhVzl1SWl3Z0ltUjFjaUlzSUNKRWRYSmhkR2x2YmlJc0lDSmtkQ0lzSUNKMFpYaDBJaXdnSW05d2RITWlMQ0FpY3lJc0lDSmxJaXdnSW5OMFlYSjBTWE5XWVd4cFpDSXNJQ0pFWVhSbFZHbHRaU0lzSUNKbGJtUkpjMVpoYkdsa0lpd2dJbThpTENBaWRXNXBkQ0lzSUNKa1lYUmxWR2x0WlNJc0lDSmtZWFJsVkdsdFpYTWlMQ0FpYzI5eWRHVmtJaXdnSW1RaUxDQWljbVZ6ZFd4MGN5SXNJQ0poWkdSbFpDSXNJQ0p1WlhoMElpd2dJbWxrZUNJc0lDSjRJaXdnSW01MWJXSmxjazltVUdGeWRITWlMQ0FpYjNSb1pYSWlMQ0FpYVc1MFpYSjJZV3h6SWl3Z0ltWnZkVzVrSWl3Z0ltWnBibUZzSWl3Z0ltRWlMQ0FpWWlJc0lDSnpiMlpoY2lJc0lDSmpkWEp5Wlc1MElpd2dJbWwwWlcwaUxDQWlZM1Z5Y21WdWRFTnZkVzUwSWl3Z0ltVnVaSE1pTENBaWFTSXNJQ0ptYkdGMGRHVnVaV1FpTENBaVlYSnlJaXdnSW1SaGRHVkdiM0p0WVhRaUxDQWljMlZ3WVhKaGRHOXlJaXdnSW0xaGNFWnVJaXdnSWtsdVptOGlMQ0FpZW05dVpTSXNJQ0pUWlhSMGFXNW5jeUlzSUNKd2NtOTBieUlzSUNKRVlYUmxWR2x0WlNJc0lDSkpRVTVCV205dVpTSXNJQ0pwYm5CMWRDSXNJQ0p1YjNKdFlXeHBlbVZhYjI1bElpd2dJbXhsYm1kMGFDSXNJQ0pzYjJOaGJHVWlMQ0FpYm5WdFltVnlhVzVuVTNsemRHVnRJaXdnSW14dlkwOWlhaUlzSUNKdmRYUndkWFJEWVd4bGJtUmhjaUlzSUNKTWIyTmhiR1VpTENBaWFHRnpVbVZzWVhScGRtVWlMQ0FpWkdGNVJHbG1aaUlzSUNKbFlYSnNhV1Z5SWl3Z0lteGhkR1Z5SWl3Z0luVjBZMFJoZVZOMFlYSjBJaXdnSW1SMElpd2dJbTF6SWl3Z0lrUjFjbUYwYVc5dUlpd2dJbWhwWjJoUGNtUmxja1JwWm1aeklpd2dJbU4xY25OdmNpSXNJQ0oxYm1sMGN5SXNJQ0prYVdabVpYSnpJaXdnSW1JaUxDQWlaR0Y1Y3lJc0lDSnlaWE4xYkhSeklpd2dJbXh2ZDJWemRFOXlaR1Z5SWl3Z0ltaHBaMmhYWVhSbGNpSXNJQ0oxYm1sMElpd2dJbVJwWm1abGNpSXNJQ0prWld4MFlTSXNJQ0prYVdabVgyUmxabUYxYkhRaUxDQWliM0IwY3lJc0lDSnlaVzFoYVc1cGJtZE5hV3hzYVhNaUxDQWliRzkzWlhKUGNtUmxjbFZ1YVhSeklpd2dJblVpTENBaVpIVnlZWFJwYjI0aUxDQWliblZ0WW1WeWFXNW5VM2x6ZEdWdGN5SXNJQ0p1ZFcxaVpYSnBibWRUZVhOMFpXMXpWVlJHTVRZaUxDQWlhR0Z1YVdSbFkwTm9ZWEp6SWl3Z0luQmhjbk5sUkdsbmFYUnpJaXdnSW5OMGNpSXNJQ0oyWVd4MVpTSXNJQ0pwSWl3Z0ltTnZaR1VpTENBaWEyVjVJaXdnSW0xcGJpSXNJQ0p0WVhnaUxDQWlaR2xuYVhSU1pXZGxlQ0lzSUNKdWRXMWlaWEpwYm1kVGVYTjBaVzBpTENBaVlYQndaVzVrSWl3Z0lrMUpVMU5KVGtkZlJsUlFJaXdnSW1sdWRGVnVhWFFpTENBaWNtVm5aWGdpTENBaWNHOXpkQ0lzSUNKcElpd2dJbk1pTENBaWNHRnljMlZFYVdkcGRITWlMQ0FpVGtKVFVDSXNJQ0p6Y0dGalpVOXlUa0pUVUNJc0lDSnpjR0ZqWlU5eVRrSlRVRkpsWjBWNGNDSXNJQ0ptYVhoTWFYTjBVbVZuWlhnaUxDQWljM1J5YVhCSmJuTmxibk5wZEdsMmFYUnBaWE1pTENBaWIyNWxUMllpTENBaWMzUnlhVzVuY3lJc0lDSnpkR0Z5ZEVsdVpHVjRJaXdnSW05bVpuTmxkQ0lzSUNKbmNtOTFjSE1pTENBaWFDSXNJQ0p0SWl3Z0luTnBaMjVsWkU5bVpuTmxkQ0lzSUNKemFXMXdiR1VpTENBaVpYTmpZWEJsVkc5clpXNGlMQ0FpZG1Gc2RXVWlMQ0FpZFc1cGRFWnZjbFJ2YTJWdUlpd2dJblJ2YTJWdUlpd2dJbXh2WXlJc0lDSnZibVVpTENBaVpHbG5hWFJTWldkbGVDSXNJQ0owZDI4aUxDQWlkR2h5WldVaUxDQWlabTkxY2lJc0lDSnphWGdpTENBaWIyNWxUM0pVZDI4aUxDQWliMjVsVkc5VWFISmxaU0lzSUNKdmJtVlViMU5wZUNJc0lDSnZibVZVYjA1cGJtVWlMQ0FpZEhkdlZHOUdiM1Z5SWl3Z0ltWnZkWEpVYjFOcGVDSXNJQ0pzYVhSbGNtRnNJaXdnSW5RaUxDQWlkVzVwZENJc0lDSjFiblJ5ZFc1allYUmxXV1ZoY2lJc0lDSndZWEowVkhsd1pWTjBlV3hsVkc5VWIydGxibFpoYkNJc0lDSjBiMnRsYmtadmNsQmhjblFpTENBaWNHRnlkQ0lzSUNKc2IyTmhiR1VpTENBaVptOXliV0YwVDNCMGN5SXNJQ0owZVhCbElpd2dJbk4wZVd4bElpd2dJblpoYkNJc0lDSmlkV2xzWkZKbFoyVjRJaXdnSW5WdWFYUnpJaXdnSW5VaUxDQWlaaUlzSUNKdFlYUmphQ0lzSUNKcGJuQjFkQ0lzSUNKb1lXNWtiR1Z5Y3lJc0lDSnRZWFJqYUdWeklpd2dJbUZzYkNJc0lDSnRZWFJqYUVsdVpHVjRJaXdnSW1oaGMwOTNibEJ5YjNCbGNuUjVJaXdnSW1SaGRHVlVhVzFsUm5KdmJVMWhkR05vWlhNaUxDQWlkRzlHYVdWc1pDSXNJQ0o2YjI1bElpd2dJbk53WldOcFptbGpUMlptYzJWMElpd2dJbWx6Vlc1a1pXWnBibVZrSWl3Z0lrbEJUa0ZhYjI1bElpd2dJa1pwZUdWa1QyWm1jMlYwV205dVpTSXNJQ0p3WVhKelpVMXBiR3hwY3lJc0lDSnlJaXdnSW1zaUxDQWlaSFZ0YlhsRVlYUmxWR2x0WlVOaFkyaGxJaXdnSW1kbGRFUjFiVzE1UkdGMFpWUnBiV1VpTENBaVJHRjBaVlJwYldVaUxDQWliV0Y1WW1WRmVIQmhibVJOWVdOeWIxUnZhMlZ1SWl3Z0lrWnZjbTFoZEhSbGNpSXNJQ0owYjJ0bGJuTWlMQ0FpY0NJc0lDSmxlSEJoYm1STllXTnliMVJ2YTJWdWN5SXNJQ0psZUhCc1lXbHVSbkp2YlZSdmEyVnVjeUlzSUNKbWIzSnRZWFFpTENBaVpHbHpjWFZoYkdsbWVXbHVaMVZ1YVhRaUxDQWljbVZuWlhoVGRISnBibWNpTENBaWNtRjNUV0YwWTJobGN5SXNJQ0p5WlhOMWJIUWlMQ0FpUTI5dVpteHBZM1JwYm1kVGNHVmphV1pwWTJGMGFXOXVSWEp5YjNJaUxDQWljR0Z5YzJWR2NtOXRWRzlyWlc1eklpd2dJbWx1ZG1Gc2FXUlNaV0Z6YjI0aUxDQWlibTl1VEdWaGNFeGhaR1JsY2lJc0lDSnNaV0Z3VEdGa1pHVnlJaXdnSW5WdWFYUlBkWFJQWmxKaGJtZGxJaXdnSW5WdWFYUWlMQ0FpZG1Gc2RXVWlMQ0FpU1c1MllXeHBaQ0lzSUNKa1lYbFBabGRsWldzaUxDQWllV1ZoY2lJc0lDSnRiMjUwYUNJc0lDSmtZWGtpTENBaVpDSXNJQ0pxY3lJc0lDSmpiMjF3ZFhSbFQzSmthVzVoYkNJc0lDSnBjMHhsWVhCWlpXRnlJaXdnSW5WdVkyOXRjSFYwWlU5eVpHbHVZV3dpTENBaWIzSmthVzVoYkNJc0lDSjBZV0pzWlNJc0lDSnRiMjUwYURBaUxDQWlaM0psWjI5eWFXRnVWRzlYWldWcklpd2dJbWR5WldkUFltb2lMQ0FpZDJWbGEyUmhlU0lzSUNKM1pXVnJUblZ0WW1WeUlpd2dJbmRsWld0WlpXRnlJaXdnSW5kbFpXdHpTVzVYWldWcldXVmhjaUlzSUNKZlgzTndjbVZoWkZaaGJIVmxjeUlzSUNKMGFXMWxUMkpxWldOMElpd2dJbmRsWld0VWIwZHlaV2R2Y21saGJpSXNJQ0ozWldWclJHRjBZU0lzSUNKM1pXVnJaR0Y1VDJaS1lXNDBJaXdnSW5sbFlYSkpia1JoZVhNaUxDQWlaR0Y1YzBsdVdXVmhjaUlzSUNKbmNtVm5iM0pwWVc1VWIwOXlaR2x1WVd3aUxDQWlaM0psWjBSaGRHRWlMQ0FpYjNKa2FXNWhiRlJ2UjNKbFoyOXlhV0Z1SWl3Z0ltOXlaR2x1WVd4RVlYUmhJaXdnSW1oaGMwbHVkbUZzYVdSWFpXVnJSR0YwWVNJc0lDSnZZbW9pTENBaWRtRnNhV1JaWldGeUlpd2dJbWx6U1c1MFpXZGxjaUlzSUNKMllXeHBaRmRsWldzaUxDQWlhVzUwWldkbGNrSmxkSGRsWlc0aUxDQWlkbUZzYVdSWFpXVnJaR0Y1SWl3Z0ltaGhjMGx1ZG1Gc2FXUlBjbVJwYm1Gc1JHRjBZU0lzSUNKMllXeHBaRTl5WkdsdVlXd2lMQ0FpYUdGelNXNTJZV3hwWkVkeVpXZHZjbWxoYmtSaGRHRWlMQ0FpZG1Gc2FXUk5iMjUwYUNJc0lDSjJZV3hwWkVSaGVTSXNJQ0prWVhselNXNU5iMjUwYUNJc0lDSm9ZWE5KYm5aaGJHbGtWR2x0WlVSaGRHRWlMQ0FpYUc5MWNpSXNJQ0p0YVc1MWRHVWlMQ0FpYzJWamIyNWtJaXdnSW0xcGJHeHBjMlZqYjI1a0lpd2dJblpoYkdsa1NHOTFjaUlzSUNKMllXeHBaRTFwYm5WMFpTSXNJQ0oyWVd4cFpGTmxZMjl1WkNJc0lDSjJZV3hwWkUxcGJHeHBjMlZqYjI1a0lpd2dJa2xPVmtGTVNVUWlMQ0FpVFVGWVgwUkJWRVVpTENBaWRXNXpkWEJ3YjNKMFpXUmFiMjVsSWl3Z0lucHZibVVpTENBaVNXNTJZV3hwWkNJc0lDSndiM056YVdKc2VVTmhZMmhsWkZkbFpXdEVZWFJoSWl3Z0ltUjBJaXdnSW1keVpXZHZjbWxoYmxSdlYyVmxheUlzSUNKamJHOXVaU0lzSUNKcGJuTjBJaXdnSW1Gc2RITWlMQ0FpWTNWeWNtVnVkQ0lzSUNKRVlYUmxWR2x0WlNJc0lDSmZYM053Y21WaFpGQnliM0J6SWl3Z0lsOWZjM0J5WldGa1ZtRnNkV1Z6SWl3Z0ltWnBlRTltWm5ObGRDSXNJQ0pzYjJOaGJGUlRJaXdnSW04aUxDQWlkSG9pTENBaWRYUmpSM1ZsYzNNaUxDQWlieklpTENBaWJ6TWlMQ0FpZEhOVWIwOWlhaUlzSUNKMGN5SXNJQ0p2Wm1aelpYUWlMQ0FpWkNJc0lDSnZZbXBVYjFSVElpd2dJbTlpYWlJc0lDSnZZbXBVYjB4dlkyRnNWRk1pTENBaVlXUnFkWE4wVkdsdFpTSXNJQ0prZFhJaUxDQWliMUJ5WlNJc0lDSjVaV0Z5SWl3Z0ltMXZiblJvSWl3Z0ltTWlMQ0FpWkdGNWMwbHVUVzl1ZEdnaUxDQWliV2xzYkdselZHOUJaR1FpTENBaVJIVnlZWFJwYjI0aUxDQWljR0Z5YzJWRVlYUmhWRzlFWVhSbFZHbHRaU0lzSUNKd1lYSnpaV1FpTENBaWNHRnljMlZrV205dVpTSXNJQ0p2Y0hSeklpd2dJbVp2Y20xaGRDSXNJQ0owWlhoMElpd2dJbk53WldOcFptbGpUMlptYzJWMElpd2dJbk5sZEZwdmJtVWlMQ0FpYVc1MFpYSndjbVYwWVhScGIyNWFiMjVsSWl3Z0luUnZWR1ZqYUVadmNtMWhkQ0lzSUNKaGJHeHZkMW9pTENBaVJtOXliV0YwZEdWeUlpd2dJa3h2WTJGc1pTSXNJQ0owYjBsVFQwUmhkR1VpTENBaVpYaDBaVzVrWldRaUxDQWliRzl1WjBadmNtMWhkQ0lzSUNKd1lXUlRkR0Z5ZENJc0lDSjBiMGxUVDFScGJXVWlMQ0FpYzNWd2NISmxjM05UWldOdmJtUnpJaXdnSW5OMWNIQnlaWE56VFdsc2JHbHpaV052Ym1Seklpd2dJbWx1WTJ4MVpHVlBabVp6WlhRaUxDQWlaWGgwWlc1a1pXUmFiMjVsSWl3Z0ltUmxabUYxYkhSVmJtbDBWbUZzZFdWeklpd2dJbVJsWm1GMWJIUlhaV1ZyVlc1cGRGWmhiSFZsY3lJc0lDSmtaV1poZFd4MFQzSmthVzVoYkZWdWFYUldZV3gxWlhNaUxDQWliM0prWlhKbFpGVnVhWFJ6SWl3Z0ltOXlaR1Z5WldSWFpXVnJWVzVwZEhNaUxDQWliM0prWlhKbFpFOXlaR2x1WVd4VmJtbDBjeUlzSUNKdWIzSnRZV3hwZW1WVmJtbDBJaXdnSW5WdWFYUWlMQ0FpYm05eWJXRnNhWHBsWkNJc0lDSkpiblpoYkdsa1ZXNXBkRVZ5Y205eUlpd2dJbkYxYVdOclJGUWlMQ0FpYm05eWJXRnNhWHBsV205dVpTSXNJQ0pUWlhSMGFXNW5jeUlzSUNKc2IyTWlMQ0FpZEhOT2IzY2lMQ0FpYVhOVmJtUmxabWx1WldRaUxDQWlkU0lzSUNKcGJuWmhiR2xrSWl3Z0ltaGhjMGx1ZG1Gc2FXUkhjbVZuYjNKcFlXNUVZWFJoSWl3Z0ltaGhjMGx1ZG1Gc2FXUlVhVzFsUkdGMFlTSXNJQ0p2Wm1aelpYUlFjbTkyYVhNaUxDQWlaR2xtWmxKbGJHRjBhWFpsSWl3Z0luTjBZWEowSWl3Z0ltVnVaQ0lzSUNKeWIzVnVaQ0lzSUNKeWIzVnVaRlJ2SWl3Z0ltUnBabVpsY2lJc0lDSmpiM1Z1ZENJc0lDSnNZWE4wVDNCMGN5SXNJQ0poY21kTWFYTjBJaXdnSW1GeVozTWlMQ0FpWDBSaGRHVlVhVzFsSWl3Z0ltTnZibVpwWnlJc0lDSnZkQ0lzSUNKa1lYa2lMQ0FpYUc5MWNpSXNJQ0p0YVc1MWRHVWlMQ0FpYzJWamIyNWtJaXdnSW0xcGJHeHBjMlZqYjI1a0lpd2dJa1pwZUdWa1QyWm1jMlYwV205dVpTSXNJQ0prWVhSbElpd2dJbTl3ZEdsdmJuTWlMQ0FpYVhORVlYUmxJaXdnSW5wdmJtVlViMVZ6WlNJc0lDSnRhV3hzYVhObFkyOXVaSE1pTENBaWFYTk9kVzFpWlhJaUxDQWlTVzUyWVd4cFpFRnlaM1Z0Wlc1MFJYSnliM0lpTENBaWMyVmpiMjVrY3lJc0lDSnViM0p0WVd4cGVtVlBZbXBsWTNRaUxDQWlZMjl1ZEdGcGJuTlBjbVJwYm1Gc0lpd2dJbU52Ym5SaGFXNXpSM0psWjI5eVdXVmhjaUlzSUNKamIyNTBZV2x1YzBkeVpXZHZjazFFSWl3Z0ltTnZiblJoYVc1elIzSmxaMjl5SWl3Z0ltUmxabWx1YVhSbFYyVmxhMFJsWmlJc0lDSkRiMjVtYkdsamRHbHVaMU53WldOcFptbGpZWFJwYjI1RmNuSnZjaUlzSUNKMWMyVlhaV1ZyUkdGMFlTSXNJQ0oxYm1sMGN5SXNJQ0prWldaaGRXeDBWbUZzZFdWeklpd2dJbTlpYWs1dmR5SXNJQ0puY21WbmIzSnBZVzVVYjA5eVpHbHVZV3dpTENBaVptOTFibVJHYVhKemRDSXNJQ0oySWl3Z0ltaHBaMmhsY2s5eVpHVnlTVzUyWVd4cFpDSXNJQ0pvWVhOSmJuWmhiR2xrVjJWbGEwUmhkR0VpTENBaWFHRnpTVzUyWVd4cFpFOXlaR2x1WVd4RVlYUmhJaXdnSW1keVpXZHZjbWxoYmlJc0lDSjNaV1ZyVkc5SGNtVm5iM0pwWVc0aUxDQWliM0prYVc1aGJGUnZSM0psWjI5eWFXRnVJaXdnSW5SelJtbHVZV3dpTENBaWIyWm1jMlYwUm1sdVlXd2lMQ0FpZG1Gc2N5SXNJQ0p3WVhKelpVbFRUMFJoZEdVaUxDQWljR0Z5YzJWU1JrTXlPREl5UkdGMFpTSXNJQ0p3WVhKelpVaFVWRkJFWVhSbElpd2dJbVp0ZENJc0lDSnNiMk5oYkdVaUxDQWliblZ0WW1WeWFXNW5VM2x6ZEdWdElpd2dJbXh2WTJGc1pWUnZWWE5sSWl3Z0luQmhjbk5sUm5KdmJWUnZhMlZ1Y3lJc0lDSndZWEp6WlZOUlRDSXNJQ0p5WldGemIyNGlMQ0FpWlhod2JHRnVZWFJwYjI0aUxDQWlTVzUyWVd4cFpFUmhkR1ZVYVcxbFJYSnliM0lpTENBaVNXNW1ieUlzSUNKcGMweGxZWEJaWldGeUlpd2dJbVJoZVhOSmJsbGxZWElpTENBaWQyVmxhM05KYmxkbFpXdFpaV0Z5SWl3Z0ltTmhiR1Z1WkdGeUlpd2dJbXRsWlhCTWIyTmhiRlJwYldVaUxDQWlhMlZsY0VOaGJHVnVaR0Z5VkdsdFpTSXNJQ0p1WlhkVVV5SXNJQ0p2Wm1aelpYUkhkV1Z6Y3lJc0lDSmhjMDlpYWlJc0lDSnZkWFJ3ZFhSRFlXeGxibVJoY2lJc0lDSjJZV3gxWlhNaUxDQWljMlYwZEdsdVoxZGxaV3RUZEhWbVppSXNJQ0p0YVhobFpDSXNJQ0prZFhKaGRHbHZiaUlzSUNKdWIzSnRZV3hwZW1Wa1ZXNXBkQ0lzSUNKeElpd2dJbVp2Y20xaGRFOXdkSE1pTENBaVJFRlVSVjlUU0U5U1ZDSXNJQ0psZUhRaUxDQWlhVzVqYkhWa1pWQnlaV1pwZUNJc0lDSnBibU5zZFdSbFdtOXVaU0lzSUNKcGJtTnNkV1JsVDJabWMyVjBVM0JoWTJVaUxDQWlZbUZ6WlNJc0lDSnZkR2hsY2tSaGRHVlVhVzFsSWl3Z0ltUjFjazl3ZEhNaUxDQWliV0Y1WW1WQmNuSmhlU0lzSUNKdmRHaGxja2x6VEdGMFpYSWlMQ0FpWldGeWJHbGxjaUlzSUNKc1lYUmxjaUlzSUNKa2FXWm1aV1FpTENBaVpHbG1abDlrWldaaGRXeDBJaXdnSWtsdWRHVnlkbUZzSWl3Z0ltbHVjSFYwVFhNaUxDQWlZV1JxZFhOMFpXUlViMXB2Ym1VaUxDQWliM1JvWlhJaUxDQWljR0ZrWkdsdVp5SXNJQ0prWVhSbFZHbHRaWE1pTENBaVltVnpkRUo1SWl3Z0lta2lMQ0FpWlhod2JHRnBia1p5YjIxVWIydGxibk1pTENBaVJFRlVSVjlOUlVRaUxDQWlSRUZVUlY5TlJVUmZWMGxVU0Y5WFJVVkxSRUZaSWl3Z0lrUkJWRVZmUmxWTVRDSXNJQ0pFUVZSRlgwaFZSMFVpTENBaVZFbE5SVjlUU1UxUVRFVWlMQ0FpVkVsTlJWOVhTVlJJWDFORlEwOU9SRk1pTENBaVZFbE5SVjlYU1ZSSVgxTklUMUpVWDA5R1JsTkZWQ0lzSUNKVVNVMUZYMWRKVkVoZlRFOU9SMTlQUmtaVFJWUWlMQ0FpVkVsTlJWOHlORjlUU1UxUVRFVWlMQ0FpVkVsTlJWOHlORjlYU1ZSSVgxTkZRMDlPUkZNaUxDQWlWRWxOUlY4eU5GOVhTVlJJWDFOSVQxSlVYMDlHUmxORlZDSXNJQ0pVU1UxRlh6STBYMWRKVkVoZlRFOU9SMTlQUmtaVFJWUWlMQ0FpUkVGVVJWUkpUVVZmVTBoUFVsUWlMQ0FpUkVGVVJWUkpUVVZmVTBoUFVsUmZWMGxVU0Y5VFJVTlBUa1JUSWl3Z0lrUkJWRVZVU1UxRlgwMUZSQ0lzSUNKRVFWUkZWRWxOUlY5TlJVUmZWMGxVU0Y5VFJVTlBUa1JUSWl3Z0lrUkJWRVZVU1UxRlgwMUZSRjlYU1ZSSVgxZEZSVXRFUVZraUxDQWlSRUZVUlZSSlRVVmZSbFZNVENJc0lDSkVRVlJGVkVsTlJWOUdWVXhNWDFkSlZFaGZVMFZEVDA1RVV5SXNJQ0pFUVZSRlZFbE5SVjlJVlVkRklpd2dJa1JCVkVWVVNVMUZYMGhWUjBWZlYwbFVTRjlUUlVOUFRrUlRJaXdnSW1aeWFXVnVaR3g1UkdGMFpWUnBiV1VpTENBaVpHRjBaVlJwYldWcGMyZ2lMQ0FpVUNJc0lDSmxiVzlxYVY5eVpXZGxlRjlrWldaaGRXeDBJaXdnSW01dmNtMWhiR2w2WlVSMWNtRjBhVzl1SWl3Z0ltUjFjaUlzSUNKeVpXNWtaWEpOYVc1cGJXRnNSR0YwWlNJc0lDSjBhVzFsSWl3Z0ltUmhkR1ZHYjNKdFlYUWlMQ0FpWkdGMFpWUnBiV1ZHYjNKdFlYUWlMQ0FpYkc5allXeGxJaXdnSW5KbGJtUmxjazFwYm1sdFlXeEVkWEpoZEdsdmJpSXNJQ0prZFhJaUxDQWlibTl5YldGc2FYcGxSSFZ5WVhScGIyNGlMQ0FpY21WemRXeDBJaXdnSW1kbGRFWnBiR1ZVYVhSc1pTSXNJQ0p3WVhSb0lpd2dJbWRsZEVWNGRHVnVjMmx2YmlJc0lDSklSVUZFUlZKZlEwRk9UMDVKUTBGTVNWcEZVaUlzSUNKbGJXOXFhVjl5WldkbGVGOWtaV1poZFd4MElpd2dJbDhpTENBaWNtVnpkV3gwSWl3Z0ltNXZjbTFoYkdsNlpVaGxZV1JsY2tadmNreHBibXNpTENBaWFHVmhaR1Z5SWl3Z0lreHBibXNpTENBaVgweHBibXNpTENBaWNHRjBhQ0lzSUNKbGJXSmxaQ0lzSUNKa2FYTndiR0Y1SWl3Z0lteHBibXR3WVhSb0lpd2dJbk53YkdsMElpd2dJbWhsWVdSbGNpSXNJQ0p1YjNKdFlXeHBlbVZJWldGa1pYSkdiM0pNYVc1cklpd2dJbUpzYjJOclNXUWlMQ0FpYjJKcVpXTjBJaXdnSW5KaGQyeHBibXNpTENBaWJHbHVheUlzSUNKemNHeHBkRTl1Vlc1bGMyTmhjR1ZrVUdsd1pTSXNJQ0ptYVdWc1pITWlMQ0FpWW14dlkyc2lMQ0FpYjNSb1pYSWlMQ0FpY21WemRXeDBJaXdnSW1kbGRFWnBiR1ZVYVhSc1pTSXNJQ0pmWVNJc0lDSmZZaUlzSUNKbGMyTmhjR1ZrSWl3Z0luQnBjR1VpTENBaVFVeEpRVk1pTENBaVJFOURJaXdnSWsxQlVDSXNJQ0pRUVVsU0lpd2dJbE5EUVV4QlVpSXNJQ0pUUlZFaUxDQWlUazlFUlY5VVdWQkZJaXdnSW1selFXeHBZWE1pTENBaWJtOWtaU0lzSUNKcGMwUnZZM1Z0Wlc1MElpd2dJbWx6VFdGd0lpd2dJbWx6VUdGcGNpSXNJQ0pwYzFOallXeGhjaUlzSUNKcGMxTmxjU0lzSUNKcGMwTnZiR3hsWTNScGIyNGlMQ0FpYVhOT2IyUmxJaXdnSW1oaGMwRnVZMmh2Y2lJc0lDSkNVa1ZCU3lJc0lDSlRTMGxRSWl3Z0lsSkZUVTlXUlNJc0lDSjJhWE5wZENJc0lDSnViMlJsSWl3Z0luWnBjMmwwYjNJaUxDQWlkbWx6YVhSdmNsOGlMQ0FpYVc1cGRGWnBjMmwwYjNJaUxDQWlhWE5FYjJOMWJXVnVkQ0lzSUNKMmFYTnBkRjhpTENBaWEyVjVJaXdnSW5CaGRHZ2lMQ0FpWTNSeWJDSXNJQ0pqWVd4c1ZtbHphWFJ2Y2lJc0lDSnBjMDV2WkdVaUxDQWlhWE5RWVdseUlpd2dJbkpsY0d4aFkyVk9iMlJsSWl3Z0ltbHpRMjlzYkdWamRHbHZiaUlzSUNKamFTSXNJQ0pqYXlJc0lDSmpkaUlzSUNKMmFYTnBkRUZ6ZVc1aklpd2dJblpwYzJsMFFYTjVibU5mSWl3Z0lsOWhJaXdnSWw5aUlpd2dJbDlqSWl3Z0lsOWtJaXdnSWw5bElpd2dJbWx6VFdGd0lpd2dJbWx6VTJWeElpd2dJbWx6VTJOaGJHRnlJaXdnSW1selFXeHBZWE1pTENBaWNHRnlaVzUwSWl3Z0luQjBJaXdnSW1WelkyRndaVU5vWVhKeklpd2dJbVZ6WTJGd1pWUmhaMDVoYldVaUxDQWlkRzRpTENBaVkyZ2lMQ0FpUkdseVpXTjBhWFpsY3lJc0lDSmZSR2x5WldOMGFYWmxjeUlzSUNKNVlXMXNJaXdnSW5SaFozTWlMQ0FpWTI5d2VTSXNJQ0p5WlhNaUxDQWliR2x1WlNJc0lDSnZia1Z5Y205eUlpd2dJbkJoY25Seklpd2dJbTVoYldVaUxDQWlhR0Z1Wkd4bElpd2dJbkJ5WldacGVDSXNJQ0oyWlhKemFXOXVJaXdnSW1selZtRnNhV1FpTENBaWMyOTFjbU5sSWl3Z0luWmxjbUpoZEdsdElpd2dJbk4xWm1acGVDSXNJQ0psY25KdmNpSXNJQ0owWVdjaUxDQWlaRzlqSWl3Z0lteHBibVZ6SWl3Z0luUmhaMFZ1ZEhKcFpYTWlMQ0FpZEdGblRtRnRaWE1pTENBaWFYTk9iMlJsSWl3Z0luWnBjMmwwSWl3Z0lsOXJaWGtpTENBaWJtOWtaU0lzSUNKaGJtTm9iM0pKYzFaaGJHbGtJaXdnSW1GdVkyaHZjaUlzSUNKdGMyY2lMQ0FpWVc1amFHOXlUbUZ0WlhNaUxDQWljbTl2ZENJc0lDSmhibU5vYjNKeklpd2dJblpwYzJsMElpd2dJbDlyWlhraUxDQWlibTlrWlNJc0lDSm1hVzVrVG1WM1FXNWphRzl5SWl3Z0luQnlaV1pwZUNJc0lDSmxlR05zZFdSbElpd2dJbWtpTENBaWJtRnRaU0lzSUNKamNtVmhkR1ZPYjJSbFFXNWphRzl5Y3lJc0lDSmtiMk1pTENBaVlXeHBZWE5QWW1wbFkzUnpJaXdnSW5OdmRYSmpaVTlpYW1WamRITWlMQ0FpY0hKbGRrRnVZMmh2Y25NaUxDQWljMjkxY21ObElpd2dJbkpsWmlJc0lDSnBjMU5qWVd4aGNpSXNJQ0pwYzBOdmJHeGxZM1JwYjI0aUxDQWlaWEp5YjNJaUxDQWlZWEJ3YkhsU1pYWnBkbVZ5SWl3Z0luSmxkbWwyWlhJaUxDQWliMkpxSWl3Z0ltdGxlU0lzSUNKMllXd2lMQ0FpYVNJc0lDSnNaVzRpTENBaWRqQWlMQ0FpZGpFaUxDQWlheUlzSUNKMGIwcFRJaXdnSW5aaGJIVmxJaXdnSW1GeVp5SXNJQ0pqZEhnaUxDQWlkaUlzSUNKcElpd2dJbWhoYzBGdVkyaHZjaUlzSUNKa1lYUmhJaXdnSW5KbGN5SXNJQ0pPYjJSbFFtRnpaU0lzSUNKMGVYQmxJaXdnSWs1UFJFVmZWRmxRUlNJc0lDSmpiM0I1SWl3Z0ltUnZZeUlzSUNKdFlYQkJjMDFoY0NJc0lDSnRZWGhCYkdsaGMwTnZkVzUwSWl3Z0ltOXVRVzVqYUc5eUlpd2dJbkpsZG1sMlpYSWlMQ0FpYVhORWIyTjFiV1Z1ZENJc0lDSmpkSGdpTENBaWNtVnpJaXdnSW5SdlNsTWlMQ0FpWTI5MWJuUWlMQ0FpWVhCd2JIbFNaWFpwZG1WeUlpd2dJa0ZzYVdGeklpd2dJazV2WkdWQ1lYTmxJaXdnSW5OdmRYSmpaU0lzSUNKQlRFbEJVeUlzSUNKa2IyTWlMQ0FpWm05MWJtUWlMQ0FpZG1semFYUWlMQ0FpWDJ0bGVTSXNJQ0p1YjJSbElpd2dJbDloY21jaUxDQWlZM1I0SWl3Z0ltRnVZMmh2Y25NaUxDQWliV0Y0UVd4cFlYTkRiM1Z1ZENJc0lDSnRjMmNpTENBaVpHRjBZU0lzSUNKMGIwcFRJaXdnSW1kbGRFRnNhV0Z6UTI5MWJuUWlMQ0FpWDI5dVEyOXRiV1Z1ZENJc0lDSmZiMjVEYUc5dGNFdGxaWEFpTENBaWMzSmpJaXdnSW1GdVkyaHZja2x6Vm1Gc2FXUWlMQ0FpYVhOQmJHbGhjeUlzSUNKaGJtTm9iM0lpTENBaWFYTkRiMnhzWldOMGFXOXVJaXdnSW1OdmRXNTBJaXdnSW1sMFpXMGlMQ0FpWXlJc0lDSnBjMUJoYVhJaUxDQWlhMk1pTENBaWRtTWlMQ0FpYVhOVFkyRnNZWEpXWVd4MVpTSXNJQ0oyWVd4MVpTSXNJQ0pUWTJGc1lYSWlMQ0FpVG05a1pVSmhjMlVpTENBaVUwTkJURUZTSWl3Z0ltRnlaeUlzSUNKamRIZ2lMQ0FpZEc5S1V5SXNJQ0prWldaaGRXeDBWR0ZuVUhKbFptbDRJaXdnSW1acGJtUlVZV2RQWW1wbFkzUWlMQ0FpZG1Gc2RXVWlMQ0FpZEdGblRtRnRaU0lzSUNKMFlXZHpJaXdnSWw5aElpd2dJbTFoZEdOb0lpd2dJblFpTENBaWRHRm5UMkpxSWl3Z0ltTnlaV0YwWlU1dlpHVWlMQ0FpWTNSNElpd2dJbDlpSWl3Z0lsOWpJaXdnSW1selJHOWpkVzFsYm5RaUxDQWlhWE5PYjJSbElpd2dJbWx6VUdGcGNpSXNJQ0p0WVhBaUxDQWlUVUZRSWl3Z0ltRnNhV0Z6UkhWd2JHbGpZWFJsVDJKcVpXTjBjeUlzSUNKdmJrRnVZMmh2Y2lJc0lDSnZibFJoWjA5aWFpSXNJQ0p6WTJobGJXRWlMQ0FpYzI5MWNtTmxUMkpxWldOMGN5SXNJQ0p5WldZaUxDQWlRV3hwWVhNaUxDQWlibTlrWlNJc0lDSlRZMkZzWVhJaUxDQWlVMFZSSWl3Z0ltTnZiR3hsWTNScGIyNUdjbTl0VUdGMGFDSXNJQ0p6WTJobGJXRWlMQ0FpY0dGMGFDSXNJQ0oyWVd4MVpTSXNJQ0oySWl3Z0lta2lMQ0FpYXlJc0lDSmhJaXdnSW1OeVpXRjBaVTV2WkdVaUxDQWlhWE5GYlhCMGVWQmhkR2dpTENBaVEyOXNiR1ZqZEdsdmJpSXNJQ0pPYjJSbFFtRnpaU0lzSUNKMGVYQmxJaXdnSW1OdmNIa2lMQ0FpYVhRaUxDQWlhWE5PYjJSbElpd2dJbWx6VUdGcGNpSXNJQ0pyWlhraUxDQWljbVZ6ZENJc0lDSnViMlJsSWl3Z0ltbHpRMjlzYkdWamRHbHZiaUlzSUNKclpXVndVMk5oYkdGeUlpd2dJbWx6VTJOaGJHRnlJaXdnSW1Gc2JHOTNVMk5oYkdGeUlpd2dJbTRpTENBaWMzUnlhVzVuYVdaNVEyOXRiV1Z1ZENJc0lDSnpkSElpTENBaWFXNWtaVzUwUTI5dGJXVnVkQ0lzSUNKamIyMXRaVzUwSWl3Z0ltbHVaR1Z1ZENJc0lDSnNhVzVsUTI5dGJXVnVkQ0lzSUNKR1QweEVYMFpNVDFjaUxDQWlSazlNUkY5Q1RFOURTeUlzSUNKR1QweEVYMUZWVDFSRlJDSXNJQ0ptYjJ4a1JteHZkMHhwYm1Weklpd2dJblJsZUhRaUxDQWlhVzVrWlc1MElpd2dJbTF2WkdVaUxDQWlhVzVrWlc1MFFYUlRkR0Z5ZENJc0lDSnNhVzVsVjJsa2RHZ2lMQ0FpYldsdVEyOXVkR1Z1ZEZkcFpIUm9JaXdnSW05dVJtOXNaQ0lzSUNKdmJrOTJaWEptYkc5M0lpd2dJbVZ1WkZOMFpYQWlMQ0FpWm05c1pITWlMQ0FpWlhOallYQmxaRVp2YkdSeklpd2dJbVZ1WkNJc0lDSnpjR3hwZENJc0lDSndjbVYySWl3Z0ltOTJaWEptYkc5M0lpd2dJbWtpTENBaVpYTmpVM1JoY25RaUxDQWlaWE5qUlc1a0lpd2dJbU52Ym5OMWJXVk5iM0psU1c1a1pXNTBaV1JNYVc1bGN5SXNJQ0pqYUNJc0lDSnVaWGgwSWl3Z0ltb2lMQ0FpY21Weklpd2dJbVp2YkdRaUxDQWljM1JoY25RaUxDQWlaMlYwUm05c1pFOXdkR2x2Ym5NaUxDQWlZM1I0SWl3Z0ltbHpRbXh2WTJzaUxDQWlZMjl1ZEdGcGJuTkViMk4xYldWdWRFMWhjbXRsY2lJc0lDSnpkSElpTENBaWJHbHVaVXhsYm1kMGFFOTJaWEpNYVcxcGRDSXNJQ0pzYVc1bFYybGtkR2dpTENBaWFXNWtaVzUwVEdWdVozUm9JaXdnSW14cGJXbDBJaXdnSW5OMGNreGxiaUlzSUNKemRHRnlkQ0lzSUNKa2IzVmliR1ZSZFc5MFpXUlRkSEpwYm1jaUxDQWlkbUZzZFdVaUxDQWlhbk52YmlJc0lDSnBiWEJzYVdOcGRFdGxlU0lzSUNKdGFXNU5kV3gwYVV4cGJtVk1aVzVuZEdnaUxDQWlhVzVrWlc1MElpd2dJbWtpTENBaVkyZ2lMQ0FpWTI5a1pTSXNJQ0ptYjJ4a1JteHZkMHhwYm1Weklpd2dJa1pQVEVSZlVWVlBWRVZFSWl3Z0luTnBibWRzWlZGMWIzUmxaRk4wY21sdVp5SXNJQ0p5WlhNaUxDQWlSazlNUkY5R1RFOVhJaXdnSW5GMWIzUmxaRk4wY21sdVp5SXNJQ0p6YVc1bmJHVlJkVzkwWlNJc0lDSnhjeUlzSUNKb1lYTkViM1ZpYkdVaUxDQWlhR0Z6VTJsdVoyeGxJaXdnSW1Kc2IyTnJSVzVrVG1WM2JHbHVaWE1pTENBaVpTSXNJQ0ppYkc5amExTjBjbWx1WnlJc0lDSmpiMjF0Wlc1MElpd2dJblI1Y0dVaUxDQWliMjVEYjIxdFpXNTBJaXdnSW05dVEyaHZiWEJMWldWd0lpd2dJbUpzYjJOclVYVnZkR1VpTENBaVkyOXRiV1Z1ZEZOMGNtbHVaeUlzSUNKc2FYUmxjbUZzSWl3Z0lsTmpZV3hoY2lJc0lDSmphRzl0Y0NJc0lDSmxibVJUZEdGeWRDSXNJQ0psYm1RaUxDQWlaVzVrVG14UWIzTWlMQ0FpYzNSaGNuUlhhWFJvVTNCaFkyVWlMQ0FpYzNSaGNuUkZibVFpTENBaWMzUmhjblJPYkZCdmN5SXNJQ0pvWldGa1pYSWlMQ0FpWW05a2VTSXNJQ0pHVDB4RVgwSk1UME5MSWl3Z0luQnNZV2x1VTNSeWFXNW5JaXdnSW1sMFpXMGlMQ0FpWVdOMGRXRnNVM1J5YVc1bklpd2dJbWx1WkdWdWRGTjBaWEFpTENBaWFXNUdiRzkzSWl3Z0luUmxjM1FpTENBaWRHRm5JaXdnSWw5aElpd2dJbU52YlhCaGRDSXNJQ0owWVdkeklpd2dJbk4wY21sdVoybG1lVk4wY21sdVp5SXNJQ0p6Y3lJc0lDSmZjM1J5YVc1bmFXWjVJaXdnSWw5MGVYQmxJaXdnSW1SbFptRjFiSFJMWlhsVWVYQmxJaXdnSW1SbFptRjFiSFJUZEhKcGJtZFVlWEJsSWl3Z0luUWlMQ0FpWTNKbFlYUmxVM1J5YVc1bmFXWjVRMjl1ZEdWNGRDSXNJQ0prYjJNaUxDQWliM0IwYVc5dWN5SXNJQ0p2Y0hRaUxDQWljM1J5YVc1bmFXWjVRMjl0YldWdWRDSXNJQ0pwYmtac2IzY2lMQ0FpWjJWMFZHRm5UMkpxWldOMElpd2dJblJoWjNNaUxDQWlhWFJsYlNJc0lDSmZZU0lzSUNKZllpSXNJQ0pmWXlJc0lDSmZaQ0lzSUNKdFlYUmphQ0lzSUNKMElpd2dJblJoWjA5aWFpSXNJQ0p2WW1vaUxDQWlhWE5UWTJGc1lYSWlMQ0FpZEdWemRFMWhkR05vSWl3Z0ltNWhiV1VpTENBaWMzUnlhVzVuYVdaNVVISnZjSE1pTENBaWJtOWtaU0lzSUNKaGJtTm9iM0p6SWl3Z0luQnliM0J6SWl3Z0ltRnVZMmh2Y2lJc0lDSnBjME52Ykd4bFkzUnBiMjRpTENBaVlXNWphRzl5U1hOV1lXeHBaQ0lzSUNKMFlXY2lMQ0FpYzNSeWFXNW5hV1o1SWl3Z0ltTjBlQ0lzSUNKdmJrTnZiVzFsYm5RaUxDQWliMjVEYUc5dGNFdGxaWEFpTENBaWFYTlFZV2x5SWl3Z0ltbHpRV3hwWVhNaUxDQWlhWE5PYjJSbElpd2dJbThpTENBaWMzUnlJaXdnSW5OMGNtbHVaMmxtZVZOMGNtbHVaeUlzSUNKemRISnBibWRwWm5sUVlXbHlJaXdnSW10bGVTSXNJQ0oyWVd4MVpTSXNJQ0pqZEhnaUxDQWliMjVEYjIxdFpXNTBJaXdnSW05dVEyaHZiWEJMWldWd0lpd2dJbDloSWl3Z0lsOWlJaXdnSW1Gc2JFNTFiR3hXWVd4MVpYTWlMQ0FpWkc5aklpd2dJbWx1WkdWdWRDSXNJQ0pwYm1SbGJuUlRkR1Z3SWl3Z0ltTnZiVzFsYm5SVGRISnBibWNpTENBaWFXNWtaVzUwVTJWeElpd2dJbk5wYlhCc1pVdGxlWE1pTENBaWEyVjVRMjl0YldWdWRDSXNJQ0pwYzA1dlpHVWlMQ0FpYVhORGIyeHNaV04wYVc5dUlpd2dJbTF6WnlJc0lDSmxlSEJzYVdOcGRFdGxlU0lzSUNKcGMxTmpZV3hoY2lJc0lDSlRZMkZzWVhJaUxDQWlhMlY1UTI5dGJXVnVkRVJ2Ym1VaUxDQWlZMmh2YlhCTFpXVndJaXdnSW5OMGNpSXNJQ0p6ZEhKcGJtZHBabmtpTENBaWJHbHVaVU52YlcxbGJuUWlMQ0FpZG5OaUlpd2dJblpqWWlJc0lDSjJZV3gxWlVOdmJXMWxiblFpTENBaWFYTlRaWEVpTENBaWRtRnNkV1ZEYjIxdFpXNTBSRzl1WlNJc0lDSjJZV3gxWlZOMGNpSXNJQ0ozY3lJc0lDSmpjeUlzSUNKcGJtUmxiblJEYjIxdFpXNTBJaXdnSW5aek1DSXNJQ0p1YkRBaUxDQWlhR0Z6VG1WM2JHbHVaU0lzSUNKbWJHOTNJaXdnSW1oaGMxQnliM0J6VEdsdVpTSXNJQ0p6Y0RBaUxDQWlkMkZ5YmlJc0lDSnNiMmRNWlhabGJDSXNJQ0ozWVhKdWFXNW5JaXdnSWsxRlVrZEZYMHRGV1NJc0lDSnRaWEpuWlNJc0lDSjJZV3gxWlNJc0lDSlRZMkZzWVhJaUxDQWlZV1JrVFdWeVoyVlViMHBUVFdGd0lpd2dJbWx6VFdWeVoyVkxaWGtpTENBaVkzUjRJaXdnSW10bGVTSXNJQ0pwYzFOallXeGhjaUlzSUNKMFlXY2lMQ0FpYldGd0lpd2dJbWx6UVd4cFlYTWlMQ0FpYVhOVFpYRWlMQ0FpYVhRaUxDQWliV1Z5WjJWV1lXeDFaU0lzSUNKemIzVnlZMlVpTENBaWFYTk5ZWEFpTENBaWMzSmpUV0Z3SWl3Z0ltRmtaRkJoYVhKVWIwcFRUV0Z3SWl3Z0ltTjBlQ0lzSUNKdFlYQWlMQ0FpYTJWNUlpd2dJblpoYkhWbElpd2dJbWx6VG05a1pTSXNJQ0pwYzAxbGNtZGxTMlY1SWl3Z0ltRmtaRTFsY21kbFZHOUtVMDFoY0NJc0lDSnFjMHRsZVNJc0lDSjBiMHBUSWl3Z0luTjBjbWx1WjB0bGVTSXNJQ0p6ZEhKcGJtZHBabmxMWlhraUxDQWlhbk5XWVd4MVpTSXNJQ0p6ZEhKRGRIZ2lMQ0FpWTNKbFlYUmxVM1J5YVc1bmFXWjVRMjl1ZEdWNGRDSXNJQ0p1YjJSbElpd2dJbk4wY2t0bGVTSXNJQ0pxYzI5dVUzUnlJaXdnSW5kaGNtNGlMQ0FpWTNKbFlYUmxVR0ZwY2lJc0lDSnJaWGtpTENBaWRtRnNkV1VpTENBaVkzUjRJaXdnSW1zaUxDQWlZM0psWVhSbFRtOWtaU0lzSUNKMklpd2dJbEJoYVhJaUxDQWlYMUJoYVhJaUxDQWlUazlFUlY5VVdWQkZJaXdnSWxCQlNWSWlMQ0FpYzJOb1pXMWhJaXdnSW1selRtOWtaU0lzSUNKZklpd2dJbkJoYVhJaUxDQWlZV1JrVUdGcGNsUnZTbE5OWVhBaUxDQWliMjVEYjIxdFpXNTBJaXdnSW05dVEyaHZiWEJMWldWd0lpd2dJbk4wY21sdVoybG1lVkJoYVhJaUxDQWljM1J5YVc1bmFXWjVRMjlzYkdWamRHbHZiaUlzSUNKamIyeHNaV04wYVc5dUlpd2dJbU4wZUNJc0lDSnZjSFJwYjI1eklpd2dJbDloSWl3Z0luTjBjbWx1WjJsbWVVWnNiM2REYjJ4c1pXTjBhVzl1SWl3Z0luTjBjbWx1WjJsbWVVSnNiMk5yUTI5c2JHVmpkR2x2YmlJc0lDSmpiMjF0Wlc1MElpd2dJbWwwWlcxeklpd2dJbUpzYjJOclNYUmxiVkJ5WldacGVDSXNJQ0ptYkc5M1EyaGhjbk1pTENBaWFYUmxiVWx1WkdWdWRDSXNJQ0p2YmtOb2IyMXdTMlZsY0NJc0lDSnZia052YlcxbGJuUWlMQ0FpYVc1a1pXNTBJaXdnSW1OdmJXMWxiblJUZEhKcGJtY2lMQ0FpYVhSbGJVTjBlQ0lzSUNKamFHOXRjRXRsWlhBaUxDQWliR2x1WlhNaUxDQWlhU0lzSUNKcGRHVnRJaXdnSW1selRtOWtaU0lzSUNKaFpHUkRiMjF0Wlc1MFFtVm1iM0psSWl3Z0ltbHpVR0ZwY2lJc0lDSnBheUlzSUNKemRISWlMQ0FpYzNSeWFXNW5hV1o1SWl3Z0lteHBibVZEYjIxdFpXNTBJaXdnSW14cGJtVWlMQ0FpYVc1a1pXNTBRMjl0YldWdWRDSXNJQ0pwYm1SbGJuUlRkR1Z3SWl3Z0ltWmpVR0ZrWkdsdVp5SXNJQ0p5WlhGT1pYZHNhVzVsSWl3Z0lteHBibVZ6UVhSV1lXeDFaU0lzSUNKcGRpSXNJQ0p6ZEdGeWRDSXNJQ0psYm1RaUxDQWliR1Z1SWl3Z0luTjFiU0lzSUNKcFl5SXNJQ0ptYVc1a1VHRnBjaUlzSUNKcGRHVnRjeUlzSUNKclpYa2lMQ0FpYXlJc0lDSnBjMU5qWVd4aGNpSXNJQ0pwZENJc0lDSnBjMUJoYVhJaUxDQWlXVUZOVEUxaGNDSXNJQ0pEYjJ4c1pXTjBhVzl1SWl3Z0luTmphR1Z0WVNJc0lDSk5RVkFpTENBaWIySnFJaXdnSW1OMGVDSXNJQ0pyWldWd1ZXNWtaV1pwYm1Wa0lpd2dJbkpsY0d4aFkyVnlJaXdnSW0xaGNDSXNJQ0poWkdRaUxDQWlkbUZzZFdVaUxDQWlZM0psWVhSbFVHRnBjaUlzSUNKd1lXbHlJaXdnSW05MlpYSjNjbWwwWlNJc0lDSmZZU0lzSUNKZmNHRnBjaUlzSUNKUVlXbHlJaXdnSW5CeVpYWWlMQ0FpYzI5eWRFVnVkSEpwWlhNaUxDQWlhWE5UWTJGc1lYSldZV3gxWlNJc0lDSnBJaXdnSW1sMFpXMGlMQ0FpYTJWbGNGTmpZV3hoY2lJc0lDSnViMlJsSWl3Z0lsOGlMQ0FpVkhsd1pTSXNJQ0poWkdSUVlXbHlWRzlLVTAxaGNDSXNJQ0p2YmtOdmJXMWxiblFpTENBaWIyNURhRzl0Y0V0bFpYQWlMQ0FpYzNSeWFXNW5hV1o1UTI5c2JHVmpkR2x2YmlJc0lDSnRZWEFpTENBaVdVRk5URTFoY0NJc0lDSnZia1Z5Y205eUlpd2dJbWx6VFdGd0lpd2dJbk5qYUdWdFlTSXNJQ0p2WW1vaUxDQWlZM1I0SWl3Z0lsbEJUVXhUWlhFaUxDQWlRMjlzYkdWamRHbHZiaUlzSUNKelkyaGxiV0VpTENBaVUwVlJJaXdnSW5aaGJIVmxJaXdnSW10bGVTSXNJQ0pwWkhnaUxDQWlZWE5KZEdWdFNXNWtaWGdpTENBaWEyVmxjRk5qWVd4aGNpSXNJQ0pwZENJc0lDSnBjMU5qWVd4aGNpSXNJQ0p3Y21WMklpd2dJbWx6VTJOaGJHRnlWbUZzZFdVaUxDQWlYeUlzSUNKamRIZ2lMQ0FpYzJWeElpd2dJbWtpTENBaWFYUmxiU0lzSUNKMGIwcFRJaXdnSW05dVEyOXRiV1Z1ZENJc0lDSnZia05vYjIxd1MyVmxjQ0lzSUNKemRISnBibWRwWm5sRGIyeHNaV04wYVc5dUlpd2dJbTlpYWlJc0lDSnlaWEJzWVdObGNpSXNJQ0pqY21WaGRHVk9iMlJsSWl3Z0luTmxjU0lzSUNKWlFVMU1VMlZ4SWl3Z0ltOXVSWEp5YjNJaUxDQWlhWE5UWlhFaUxDQWljMk5vWlcxaElpd2dJbTlpYWlJc0lDSmpkSGdpTENBaWMzUnlhVzVuSWl3Z0luWmhiSFZsSWl3Z0luTjBjaUlzSUNKcGRHVnRJaXdnSW1OMGVDSXNJQ0p2YmtOdmJXMWxiblFpTENBaWIyNURhRzl0Y0V0bFpYQWlMQ0FpYzNSeWFXNW5hV1o1VTNSeWFXNW5JaXdnSW01MWJHeFVZV2NpTENBaWRtRnNkV1VpTENBaVUyTmhiR0Z5SWl3Z0luTnZkWEpqWlNJc0lDSmpkSGdpTENBaVltOXZiRlJoWnlJc0lDSjJZV3gxWlNJc0lDSnpkSElpTENBaVUyTmhiR0Z5SWl3Z0luTnZkWEpqWlNJc0lDSmpkSGdpTENBaWMzWWlMQ0FpYzNSeWFXNW5hV1o1VG5WdFltVnlJaXdnSW1admNtMWhkQ0lzSUNKdGFXNUdjbUZqZEdsdmJrUnBaMmwwY3lJc0lDSjBZV2NpTENBaWRtRnNkV1VpTENBaWJuVnRJaXdnSW00aUxDQWlhU0lzSUNKa0lpd2dJbVpzYjJGMFRtRk9JaXdnSW5aaGJIVmxJaXdnSW5OMGNpSXNJQ0p6ZEhKcGJtZHBabmxPZFcxaVpYSWlMQ0FpWm14dllYUkZlSEFpTENBaWJtOWtaU0lzSUNKdWRXMGlMQ0FpWm14dllYUWlMQ0FpVTJOaGJHRnlJaXdnSW1SdmRDSXNJQ0pwYm5SSlpHVnVkR2xtZVNJc0lDSjJZV3gxWlNJc0lDSnBiblJTWlhOdmJIWmxJaXdnSW5OMGNpSXNJQ0p2Wm1aelpYUWlMQ0FpY21Ga2FYZ2lMQ0FpYVc1MFFYTkNhV2RKYm5RaUxDQWlhVzUwVTNSeWFXNW5hV1o1SWl3Z0ltNXZaR1VpTENBaWNISmxabWw0SWl3Z0luTjBjbWx1WjJsbWVVNTFiV0psY2lJc0lDSnBiblJQWTNRaUxDQWlYMjl1UlhKeWIzSWlMQ0FpYjNCMElpd2dJbWx1ZENJc0lDSnBiblJJWlhnaUxDQWljMk5vWlcxaElpd2dJbTFoY0NJc0lDSnpaWEVpTENBaWMzUnlhVzVuSWl3Z0ltNTFiR3hVWVdjaUxDQWlZbTl2YkZSaFp5SXNJQ0pwYm5SUFkzUWlMQ0FpYVc1MElpd2dJbWx1ZEVobGVDSXNJQ0ptYkc5aGRFNWhUaUlzSUNKbWJHOWhkRVY0Y0NJc0lDSm1iRzloZENJc0lDSnBiblJKWkdWdWRHbG1lU0lzSUNKMllXeDFaU0lzSUNKemRISnBibWRwWm5sS1UwOU9JaXdnSW1wemIyNVRZMkZzWVhKeklpd2dJbk4wY2lJc0lDSlRZMkZzWVhJaUxDQWlYMjl1UlhKeWIzSWlMQ0FpYVc1MFFYTkNhV2RKYm5RaUxDQWlhbk52YmtWeWNtOXlJaXdnSW05dVJYSnliM0lpTENBaWMyTm9aVzFoSWl3Z0ltMWhjQ0lzSUNKelpYRWlMQ0FpWW1sdVlYSjVJaXdnSW5aaGJIVmxJaXdnSW5OeVl5SXNJQ0p2YmtWeWNtOXlJaXdnSW5OMGNpSXNJQ0ppZFdabVpYSWlMQ0FpYVNJc0lDSmpiMjF0Wlc1MElpd2dJblI1Y0dVaUxDQWlZM1I0SWl3Z0ltOXVRMjl0YldWdWRDSXNJQ0p2YmtOb2IyMXdTMlZsY0NJc0lDSmlkV1lpTENBaWN5SXNJQ0pUWTJGc1lYSWlMQ0FpYkdsdVpWZHBaSFJvSWl3Z0ltNGlMQ0FpYkdsdVpYTWlMQ0FpYnlJc0lDSnpkSEpwYm1kcFpubFRkSEpwYm1jaUxDQWljbVZ6YjJ4MlpWQmhhWEp6SWl3Z0luTmxjU0lzSUNKdmJrVnljbTl5SWl3Z0lsOWhJaXdnSW1selUyVnhJaXdnSW1raUxDQWlhWFJsYlNJc0lDSnBjMUJoYVhJaUxDQWlhWE5OWVhBaUxDQWljR0ZwY2lJc0lDSlFZV2x5SWl3Z0lsTmpZV3hoY2lJc0lDSmpiaUlzSUNKamNtVmhkR1ZRWVdseWN5SXNJQ0p6WTJobGJXRWlMQ0FpYVhSbGNtRmliR1VpTENBaVkzUjRJaXdnSW5KbGNHeGhZMlZ5SWl3Z0luQmhhWEp6SWl3Z0lsbEJUVXhUWlhFaUxDQWlhWFFpTENBaWEyVjVJaXdnSW5aaGJIVmxJaXdnSW10bGVYTWlMQ0FpWTNKbFlYUmxVR0ZwY2lJc0lDSlpRVTFNVDAxaGNDSXNJQ0pmV1VGTlRFOU5ZWEFpTENBaVdVRk5URk5sY1NJc0lDSlpRVTFNVFdGd0lpd2dJbDhpTENBaVkzUjRJaXdnSW0xaGNDSXNJQ0p3WVdseUlpd2dJbXRsZVNJc0lDSjJZV3gxWlNJc0lDSnBjMUJoYVhJaUxDQWlkRzlLVXlJc0lDSnpZMmhsYldFaUxDQWlhWFJsY21GaWJHVWlMQ0FpY0dGcGNuTWlMQ0FpWTNKbFlYUmxVR0ZwY25NaUxDQWliMjFoY0NJc0lDSnpaWEVpTENBaWIyNUZjbkp2Y2lJc0lDSnlaWE52YkhabFVHRnBjbk1pTENBaWMyVmxia3RsZVhNaUxDQWlhWE5UWTJGc1lYSWlMQ0FpWW05dmJGTjBjbWx1WjJsbWVTSXNJQ0oyWVd4MVpTSXNJQ0p6YjNWeVkyVWlMQ0FpWTNSNElpd2dJblJ5ZFdWVVlXY2lMQ0FpWm1Gc2MyVlVZV2NpTENBaVUyTmhiR0Z5SWl3Z0ltWnNiMkYwVG1GT0lpd2dJblpoYkhWbElpd2dJbk4wY2lJc0lDSnpkSEpwYm1kcFpubE9kVzFpWlhJaUxDQWlabXh2WVhSRmVIQWlMQ0FpYm05a1pTSXNJQ0p1ZFcwaUxDQWlabXh2WVhRaUxDQWlVMk5oYkdGeUlpd2dJbVJ2ZENJc0lDSm1JaXdnSW1sdWRFbGtaVzUwYVdaNUlpd2dJblpoYkhWbElpd2dJbWx1ZEZKbGMyOXNkbVVpTENBaWMzUnlJaXdnSW05bVpuTmxkQ0lzSUNKeVlXUnBlQ0lzSUNKcGJuUkJjMEpwWjBsdWRDSXNJQ0p6YVdkdUlpd2dJbTRpTENBaWFXNTBVM1J5YVc1bmFXWjVJaXdnSW01dlpHVWlMQ0FpY0hKbFptbDRJaXdnSW5OMGNtbHVaMmxtZVU1MWJXSmxjaUlzSUNKcGJuUkNhVzRpTENBaVgyOXVSWEp5YjNJaUxDQWliM0IwSWl3Z0ltbHVkRTlqZENJc0lDSnBiblFpTENBaWFXNTBTR1Y0SWl3Z0lsbEJUVXhUWlhRaUxDQWlYMWxCVFV4VFpYUWlMQ0FpV1VGTlRFMWhjQ0lzSUNKelkyaGxiV0VpTENBaWEyVjVJaXdnSW5CaGFYSWlMQ0FpYVhOUVlXbHlJaXdnSWxCaGFYSWlMQ0FpWm1sdVpGQmhhWElpTENBaWEyVmxjRkJoYVhJaUxDQWlhWE5UWTJGc1lYSWlMQ0FpZG1Gc2RXVWlMQ0FpY0hKbGRpSXNJQ0pmSWl3Z0ltTjBlQ0lzSUNKdmJrTnZiVzFsYm5RaUxDQWliMjVEYUc5dGNFdGxaWEFpTENBaWFYUmxjbUZpYkdVaUxDQWljbVZ3YkdGalpYSWlMQ0FpYzJWMElpd2dJbU55WldGMFpWQmhhWElpTENBaWJXRndJaXdnSW05dVJYSnliM0lpTENBaWFYTk5ZWEFpTENBaWNHRnljMlZUWlhoaFoyVnphVzFoYkNJc0lDSnpkSElpTENBaVlYTkNhV2RKYm5RaUxDQWljMmxuYmlJc0lDSndZWEowY3lJc0lDSnVkVzBpTENBaWJpSXNJQ0p5WlhNaUxDQWljQ0lzSUNKemRISnBibWRwWm5sVFpYaGhaMlZ6YVcxaGJDSXNJQ0p1YjJSbElpd2dJblpoYkhWbElpd2dJbk4wY21sdVoybG1lVTUxYldKbGNpSXNJQ0pmTmpBaUxDQWlhVzUwVkdsdFpTSXNJQ0pmYjI1RmNuSnZjaUlzSUNKcGJuUkJjMEpwWjBsdWRDSXNJQ0ptYkc5aGRGUnBiV1VpTENBaWRHbHRaWE4wWVcxd0lpd2dJbTFoZEdOb0lpd2dJbmxsWVhJaUxDQWliVzl1ZEdnaUxDQWlaR0Y1SWl3Z0ltaHZkWElpTENBaWJXbHVkWFJsSWl3Z0luTmxZMjl1WkNJc0lDSnRhV3hzYVhObFl5SXNJQ0prWVhSbElpd2dJblI2SWl3Z0luTmphR1Z0WVNJc0lDSnRZWEFpTENBaWMyVnhJaXdnSW5OMGNtbHVaeUlzSUNKdWRXeHNWR0ZuSWl3Z0luUnlkV1ZVWVdjaUxDQWlabUZzYzJWVVlXY2lMQ0FpYVc1MFFtbHVJaXdnSW1sdWRFOWpkQ0lzSUNKcGJuUWlMQ0FpYVc1MFNHVjRJaXdnSW1ac2IyRjBUbUZPSWl3Z0ltWnNiMkYwUlhod0lpd2dJbVpzYjJGMElpd2dJbUpwYm1GeWVTSXNJQ0p0WlhKblpTSXNJQ0p2YldGd0lpd2dJbkJoYVhKeklpd2dJbk5sZENJc0lDSnBiblJVYVcxbElpd2dJbVpzYjJGMFZHbHRaU0lzSUNKMGFXMWxjM1JoYlhBaUxDQWljMk5vWlcxaGN5SXNJQ0p6WTJobGJXRWlMQ0FpYldGd0lpd2dJbk5sY1NJc0lDSnpkSEpwYm1jaUxDQWlkR0ZuYzBKNVRtRnRaU0lzSUNKaWFXNWhjbmtpTENBaVltOXZiRlJoWnlJc0lDSm1iRzloZENJc0lDSm1iRzloZEVWNGNDSXNJQ0ptYkc5aGRFNWhUaUlzSUNKbWJHOWhkRlJwYldVaUxDQWlhVzUwSWl3Z0ltbHVkRWhsZUNJc0lDSnBiblJQWTNRaUxDQWlhVzUwVkdsdFpTSXNJQ0p0WlhKblpTSXNJQ0p1ZFd4c1ZHRm5JaXdnSW05dFlYQWlMQ0FpY0dGcGNuTWlMQ0FpYzJWMElpd2dJblJwYldWemRHRnRjQ0lzSUNKamIzSmxTMjV2ZDI1VVlXZHpJaXdnSW1kbGRGUmhaM01pTENBaVkzVnpkRzl0VkdGbmN5SXNJQ0p6WTJobGJXRk9ZVzFsSWl3Z0ltRmtaRTFsY21kbFZHRm5JaXdnSW5OamFHVnRZVlJoWjNNaUxDQWlkR0ZuY3lJc0lDSnJaWGx6SWl3Z0ltdGxlU0lzSUNKMFlXY2lMQ0FpZEdGblQySnFJaXdnSW5SaFowNWhiV1VpTENBaWMyOXlkRTFoY0VWdWRISnBaWE5DZVV0bGVTSXNJQ0poSWl3Z0ltSWlMQ0FpVTJOb1pXMWhJaXdnSWw5VFkyaGxiV0VpTENBaVkyOXRjR0YwSWl3Z0ltTjFjM1J2YlZSaFozTWlMQ0FpYldWeVoyVWlMQ0FpY21WemIyeDJaVXR1YjNkdVZHRm5jeUlzSUNKelkyaGxiV0VpTENBaWMyOXlkRTFoY0VWdWRISnBaWE1pTENBaWRHOVRkSEpwYm1kRVpXWmhkV3gwY3lJc0lDSm5aWFJVWVdkeklpd2dJbU52Y21WTGJtOTNibFJoWjNNaUxDQWlUVUZRSWl3Z0ltMWhjQ0lzSUNKVFEwRk1RVklpTENBaWMzUnlhVzVuSWl3Z0lsTkZVU0lzSUNKelpYRWlMQ0FpWTI5d2VTSXNJQ0p6ZEhKcGJtZHBabmxFYjJOMWJXVnVkQ0lzSUNKa2IyTWlMQ0FpYjNCMGFXOXVjeUlzSUNKZllTSXNJQ0pzYVc1bGN5SXNJQ0pvWVhORWFYSmxZM1JwZG1Weklpd2dJbVJwY2lJc0lDSmpkSGdpTENBaVkzSmxZWFJsVTNSeWFXNW5hV1o1UTI5dWRHVjRkQ0lzSUNKamIyMXRaVzUwVTNSeWFXNW5JaXdnSW1Oeklpd2dJbWx1WkdWdWRFTnZiVzFsYm5RaUxDQWlZMmh2YlhCTFpXVndJaXdnSW1OdmJuUmxiblJEYjIxdFpXNTBJaXdnSW1selRtOWtaU0lzSUNKdmJrTm9iMjF3UzJWbGNDSXNJQ0ppYjJSNUlpd2dJbk4wY21sdVoybG1lU0lzSUNKc2FXNWxRMjl0YldWdWRDSXNJQ0prWXlJc0lDSkViMk4xYldWdWRDSXNJQ0pmUkc5amRXMWxiblFpTENBaWRtRnNkV1VpTENBaWNtVndiR0ZqWlhJaUxDQWliM0IwYVc5dWN5SXNJQ0pPVDBSRlgxUlpVRVVpTENBaVJFOURJaXdnSWw5eVpYQnNZV05sY2lJc0lDSnZjSFFpTENBaWRtVnljMmx2YmlJc0lDSkVhWEpsWTNScGRtVnpJaXdnSW1OdmNIa2lMQ0FpYVhOT2IyUmxJaXdnSW1GemMyVnlkRU52Ykd4bFkzUnBiMjRpTENBaWNHRjBhQ0lzSUNKdWIyUmxJaXdnSW01aGJXVWlMQ0FpY0hKbGRpSXNJQ0poYm1Ob2IzSk9ZVzFsY3lJc0lDSm1hVzVrVG1WM1FXNWphRzl5SWl3Z0lrRnNhV0Z6SWl3Z0ltdGxlVlJ2VTNSeUlpd2dJbllpTENBaVlYTlRkSElpTENBaVlXeHBZWE5FZFhCc2FXTmhkR1ZQWW1wbFkzUnpJaXdnSW1GdVkyaHZjbEJ5WldacGVDSXNJQ0ptYkc5M0lpd2dJbXRsWlhCVmJtUmxabWx1WldRaUxDQWliMjVVWVdkUFltb2lMQ0FpZEdGbklpd2dJbTl1UVc1amFHOXlJaXdnSW5ObGRFRnVZMmh2Y25NaUxDQWljMjkxY21ObFQySnFaV04wY3lJc0lDSmpjbVZoZEdWT2IyUmxRVzVqYUc5eWN5SXNJQ0pqZEhnaUxDQWlZM0psWVhSbFRtOWtaU0lzSUNKcGMwTnZiR3hsWTNScGIyNGlMQ0FpYTJWNUlpd2dJbXNpTENBaVVHRnBjaUlzSUNKcGMwVnRjSFI1VUdGMGFDSXNJQ0pyWldWd1UyTmhiR0Z5SWl3Z0ltbHpVMk5oYkdGeUlpd2dJbU52Ykd4bFkzUnBiMjVHY205dFVHRjBhQ0lzSUNKemRpSXNJQ0pUWTJobGJXRWlMQ0FpYW5OdmJpSXNJQ0pxYzI5dVFYSm5JaXdnSW0xaGNFRnpUV0Z3SWl3Z0ltMWhlRUZzYVdGelEyOTFiblFpTENBaWNtVjJhWFpsY2lJc0lDSnlaWE1pTENBaWRHOUtVeUlzSUNKamIzVnVkQ0lzSUNKaGNIQnNlVkpsZG1sMlpYSWlMQ0FpY3lJc0lDSnpkSEpwYm1kcFpubEViMk4xYldWdWRDSXNJQ0pqYjI1MFpXNTBjeUlzSUNKWlFVMU1SWEp5YjNJaUxDQWlibUZ0WlNJc0lDSndiM01pTENBaVkyOWtaU0lzSUNKdFpYTnpZV2RsSWl3Z0lsbEJUVXhRWVhKelpVVnljbTl5SWl3Z0lsbEJUVXhYWVhKdWFXNW5JaXdnSW5CeVpYUjBhV1o1UlhKeWIzSWlMQ0FpYzNKaklpd2dJbXhqSWl3Z0ltVnljbTl5SWl3Z0lteHBibVVpTENBaVkyOXNJaXdnSW1OcElpd2dJbXhwYm1WVGRISWlMQ0FpZEhKcGJWTjBZWEowSWl3Z0luQnlaWFlpTENBaVkyOTFiblFpTENBaVpXNWtJaXdnSW5CdmFXNTBaWElpTENBaWNtVnpiMngyWlZCeWIzQnpJaXdnSW5SdmEyVnVjeUlzSUNKbWJHOTNJaXdnSW1sdVpHbGpZWFJ2Y2lJc0lDSnVaWGgwSWl3Z0ltOW1abk5sZENJc0lDSnZia1Z5Y205eUlpd2dJbkJoY21WdWRFbHVaR1Z1ZENJc0lDSnpkR0Z5ZEU5dVRtVjNiR2x1WlNJc0lDSnpjR0ZqWlVKbFptOXlaU0lzSUNKaGRFNWxkMnhwYm1VaUxDQWlhR0Z6VTNCaFkyVWlMQ0FpWTI5dGJXVnVkQ0lzSUNKamIyMXRaVzUwVTJWd0lpd2dJbWhoYzA1bGQyeHBibVVpTENBaWNtVnhVM0JoWTJVaUxDQWlkR0ZpSWl3Z0ltRnVZMmh2Y2lJc0lDSjBZV2NpTENBaWJtVjNiR2x1WlVGbWRHVnlVSEp2Y0NJc0lDSmpiMjF0WVNJc0lDSm1iM1Z1WkNJc0lDSnpkR0Z5ZENJc0lDSjBiMnRsYmlJc0lDSmpZaUlzSUNKc1lYTjBJaXdnSW1WdVpDSXNJQ0pqYjI1MFlXbHVjMDVsZDJ4cGJtVWlMQ0FpYTJWNUlpd2dJbk4wSWl3Z0ltbDBJaXdnSW1ac2IzZEpibVJsYm5SRGFHVmpheUlzSUNKcGJtUmxiblFpTENBaVptTWlMQ0FpYjI1RmNuSnZjaUlzSUNKbGJtUWlMQ0FpWTI5dWRHRnBibk5PWlhkc2FXNWxJaXdnSW0xaGNFbHVZMngxWkdWeklpd2dJbU4wZUNJc0lDSnBkR1Z0Y3lJc0lDSnpaV0Z5WTJnaUxDQWlkVzVwY1hWbFMyVjVjeUlzSUNKcGMwVnhkV0ZzSWl3Z0ltRWlMQ0FpWWlJc0lDSnBjMU5qWVd4aGNpSXNJQ0p3WVdseUlpd2dJbk4wWVhKMFEyOXNUWE5uSWl3Z0luSmxjMjlzZG1WQ2JHOWphMDFoY0NJc0lDSmpiMjF3YjNObFRtOWtaU0lzSUNKamIyMXdiM05sUlcxd2RIbE9iMlJsSWl3Z0ltTjBlQ0lzSUNKaWJTSXNJQ0p2YmtWeWNtOXlJaXdnSW5SaFp5SXNJQ0pmWVNJc0lDSmZZaUlzSUNKT2IyUmxRMnhoYzNNaUxDQWlXVUZOVEUxaGNDSXNJQ0p0WVhBaUxDQWliMlptYzJWMElpd2dJbU52YlcxbGJuUkZibVFpTENBaVkyOXNiRWwwWlcwaUxDQWljM1JoY25RaUxDQWlhMlY1SWl3Z0luTmxjQ0lzSUNKMllXeDFaU0lzSUNKclpYbFFjbTl3Y3lJc0lDSnlaWE52YkhabFVISnZjSE1pTENBaWFXMXdiR2xqYVhSTFpYa2lMQ0FpWTI5dWRHRnBibk5PWlhkc2FXNWxJaXdnSW10bGVWTjBZWEowSWl3Z0ltdGxlVTV2WkdVaUxDQWlabXh2ZDBsdVpHVnVkRU5vWldOcklpd2dJbTFoY0VsdVkyeDFaR1Z6SWl3Z0luWmhiSFZsVUhKdmNITWlMQ0FpZG1Gc2RXVk9iMlJsSWl3Z0luQmhhWElpTENBaVVHRnBjaUlzSUNKeVpYTnZiSFpsUW14dlkydFRaWEVpTENBaVkyOXRjRzl6WlU1dlpHVWlMQ0FpWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU0lzSUNKamRIZ2lMQ0FpWW5NaUxDQWliMjVGY25KdmNpSXNJQ0owWVdjaUxDQWlYMkVpTENBaVRtOWtaVU5zWVhOeklpd2dJbGxCVFV4VFpYRWlMQ0FpYzJWeElpd2dJbTltWm5ObGRDSXNJQ0pqYjIxdFpXNTBSVzVrSWl3Z0luTjBZWEowSWl3Z0luWmhiSFZsSWl3Z0luQnliM0J6SWl3Z0luSmxjMjlzZG1WUWNtOXdjeUlzSUNKdWIyUmxJaXdnSW1ac2IzZEpibVJsYm5SRGFHVmpheUlzSUNKeVpYTnZiSFpsUlc1a0lpd2dJbVZ1WkNJc0lDSnZabVp6WlhRaUxDQWljbVZ4VTNCaFkyVWlMQ0FpYjI1RmNuSnZjaUlzSUNKamIyMXRaVzUwSWl3Z0ltaGhjMU53WVdObElpd2dJbk5sY0NJc0lDSjBiMnRsYmlJc0lDSnpiM1Z5WTJVaUxDQWlkSGx3WlNJc0lDSmpZaUlzSUNKaWJHOWphMDF6WnlJc0lDSnBjMEpzYjJOcklpd2dJblJ2YTJWdUlpd2dJbkpsYzI5c2RtVkdiRzkzUTI5c2JHVmpkR2x2YmlJc0lDSmpiMjF3YjNObFRtOWtaU0lzSUNKamIyMXdiM05sUlcxd2RIbE9iMlJsSWl3Z0ltTjBlQ0lzSUNKbVl5SXNJQ0p2YmtWeWNtOXlJaXdnSW5SaFp5SXNJQ0pmWVNJc0lDSmZZaUlzSUNKcGMwMWhjQ0lzSUNKbVkwNWhiV1VpTENBaVRtOWtaVU5zWVhOeklpd2dJbGxCVFV4TllYQWlMQ0FpV1VGTlRGTmxjU0lzSUNKamIyeHNJaXdnSW1GMFVtOXZkQ0lzSUNKdlptWnpaWFFpTENBaWFTSXNJQ0pqYjJ4c1NYUmxiU0lzSUNKemRHRnlkQ0lzSUNKclpYa2lMQ0FpYzJWd0lpd2dJblpoYkhWbElpd2dJbkJ5YjNCeklpd2dJbkpsYzI5c2RtVlFjbTl3Y3lJc0lDSmpiMjUwWVdsdWMwNWxkMnhwYm1VaUxDQWljSEpsZGtsMFpXMURiMjF0Wlc1MElpd2dJbXh2YjNBaUxDQWljM1FpTENBaWNISmxkaUlzSUNKcGMxQmhhWElpTENBaWRtRnNkV1ZPYjJSbElpd2dJbXRsZVZOMFlYSjBJaXdnSW10bGVVNXZaR1VpTENBaWRtRnNkV1ZRY205d2N5SXNJQ0p3WVdseUlpd2dJbEJoYVhJaUxDQWliV0Z3SWl3Z0ltMWhjRWx1WTJ4MVpHVnpJaXdnSW1WdVpGSmhibWRsSWl3Z0ltVjRjR1ZqZEdWa1JXNWtJaXdnSW1ObElpd2dJbVZsSWl3Z0ltTmxVRzl6SWl3Z0ltNWhiV1VpTENBaWJYTm5JaXdnSW1WdVpDSXNJQ0p5WlhOdmJIWmxSVzVrSWl3Z0luSmxjMjlzZG1WRGIyeHNaV04wYVc5dUlpd2dJa05PSWl3Z0ltTjBlQ0lzSUNKMGIydGxiaUlzSUNKdmJrVnljbTl5SWl3Z0luUmhaMDVoYldVaUxDQWlkR0ZuSWl3Z0ltTnZiR3dpTENBaWNtVnpiMngyWlVKc2IyTnJUV0Z3SWl3Z0luSmxjMjlzZG1WQ2JHOWphMU5sY1NJc0lDSnlaWE52YkhabFJteHZkME52Ykd4bFkzUnBiMjRpTENBaVEyOXNiQ0lzSUNKamIyMXdiM05sUTI5c2JHVmpkR2x2YmlJc0lDSndjbTl3Y3lJc0lDSmZZU0lzSUNKZllpSXNJQ0owWVdkVWIydGxiaUlzSUNKdGMyY2lMQ0FpWVc1amFHOXlJaXdnSW01c0lpd2dJbXhoYzNSUWNtOXdJaXdnSW1WNGNGUjVjR1VpTENBaVdVRk5URTFoY0NJc0lDSlpRVTFNVTJWeElpd2dJblFpTENBaWEzUWlMQ0FpY21Weklpd2dJbTV2WkdVaUxDQWlhWE5PYjJSbElpd2dJbE5qWVd4aGNpSXNJQ0p5WlhOdmJIWmxRbXh2WTJ0VFkyRnNZWElpTENBaVkzUjRJaXdnSW5OallXeGhjaUlzSUNKdmJrVnljbTl5SWl3Z0luTjBZWEowSWl3Z0ltaGxZV1JsY2lJc0lDSndZWEp6WlVKc2IyTnJVMk5oYkdGeVNHVmhaR1Z5SWl3Z0luUjVjR1VpTENBaVUyTmhiR0Z5SWl3Z0lteHBibVZ6SWl3Z0luTndiR2wwVEdsdVpYTWlMQ0FpWTJodmJYQlRkR0Z5ZENJc0lDSnBJaXdnSW1OdmJuUmxiblFpTENBaWRtRnNkV1VpTENBaVpXNWtJaXdnSW5SeWFXMUpibVJsYm5RaUxDQWliMlptYzJWMElpd2dJbU52Ym5SbGJuUlRkR0Z5ZENJc0lDSnBibVJsYm5RaUxDQWljMlZ3SWl3Z0luQnlaWFpOYjNKbFNXNWtaVzUwWldRaUxDQWlZM0pzWmlJc0lDSnRaWE56WVdkbElpd2dJbkJ5YjNCeklpd2dJbk4wY21samRDSXNJQ0p6YjNWeVkyVWlMQ0FpYlc5a1pTSXNJQ0pqYUc5dGNDSXNJQ0psY25KdmNpSXNJQ0pqYUNJc0lDSnVJaXdnSW1oaGMxTndZV05sSWl3Z0ltTnZiVzFsYm5RaUxDQWliR1Z1WjNSb0lpd2dJblJ2YTJWdUlpd2dJblJ6SWl3Z0luTndiR2wwSWl3Z0ltWnBjbk4wSWl3Z0ltMGlMQ0FpY21WemIyeDJaVVpzYjNkVFkyRnNZWElpTENBaWMyTmhiR0Z5SWl3Z0luTjBjbWxqZENJc0lDSnZia1Z5Y205eUlpd2dJbTltWm5ObGRDSXNJQ0owZVhCbElpd2dJbk52ZFhKalpTSXNJQ0psYm1RaUxDQWlYM1I1Y0dVaUxDQWlkbUZzZFdVaUxDQWlYMjl1UlhKeWIzSWlMQ0FpY21Wc0lpd2dJbU52WkdVaUxDQWliWE5uSWl3Z0lsTmpZV3hoY2lJc0lDSndiR0ZwYmxaaGJIVmxJaXdnSW5OcGJtZHNaVkYxYjNSbFpGWmhiSFZsSWl3Z0ltUnZkV0pzWlZGMWIzUmxaRlpoYkhWbElpd2dJblpoYkhWbFJXNWtJaXdnSW5KbElpd2dJbkpsYzI5c2RtVkZibVFpTENBaVltRmtRMmhoY2lJc0lDSm1iMnhrVEdsdVpYTWlMQ0FpWDJFaUxDQWlabWx5YzNRaUxDQWliR2x1WlNJc0lDSmxJaXdnSW0xaGRHTm9JaXdnSW5KbGN5SXNJQ0p6WlhBaUxDQWljRzl6SWl3Z0lteGhjM1FpTENBaWFTSXNJQ0pqYUNJc0lDSm1iMnhrSWl3Z0ltWnZiR1JPWlhkc2FXNWxJaXdnSW01bGVIUWlMQ0FpWTJNaUxDQWlaWE5qWVhCbFEyOWtaWE1pTENBaWJHVnVaM1JvSWl3Z0luQmhjbk5sUTJoaGNrTnZaR1VpTENBaWNtRjNJaXdnSW5kelUzUmhjblFpTENBaVkyOXRjRzl6WlZOallXeGhjaUlzSUNKamRIZ2lMQ0FpZEc5clpXNGlMQ0FpZEdGblZHOXJaVzRpTENBaWIyNUZjbkp2Y2lJc0lDSjJZV3gxWlNJc0lDSjBlWEJsSWl3Z0ltTnZiVzFsYm5RaUxDQWljbUZ1WjJVaUxDQWljbVZ6YjJ4MlpVSnNiMk5yVTJOaGJHRnlJaXdnSW5KbGMyOXNkbVZHYkc5M1UyTmhiR0Z5SWl3Z0luUmhaMDVoYldVaUxDQWliWE5uSWl3Z0luUmhaeUlzSUNKVFEwRk1RVklpTENBaVptbHVaRk5qWVd4aGNsUmhaMEo1VG1GdFpTSXNJQ0ptYVc1a1UyTmhiR0Z5VkdGblFubFVaWE4wSWl3Z0luTmpZV3hoY2lJc0lDSnlaWE1pTENBaWFYTlRZMkZzWVhJaUxDQWlVMk5oYkdGeUlpd2dJbVZ5Y205eUlpd2dJbk5qYUdWdFlTSXNJQ0pmWVNJc0lDSnRZWFJqYUZkcGRHaFVaWE4wSWl3Z0ltdDBJaXdnSW1GMFMyVjVJaXdnSW1ScGNtVmpkR2wyWlhNaUxDQWlZMjl0Y0dGMElpd2dJblJ6SWl3Z0ltTnpJaXdnSW1WdGNIUjVVMk5oYkdGeVVHOXphWFJwYjI0aUxDQWliMlptYzJWMElpd2dJbUpsWm05eVpTSXNJQ0p3YjNNaUxDQWlhU0lzSUNKemRDSXNJQ0pEVGlJc0lDSmpiMjF3YjNObFRtOWtaU0lzSUNKamIyMXdiM05sUlcxd2RIbE9iMlJsSWl3Z0ltTjBlQ0lzSUNKMGIydGxiaUlzSUNKd2NtOXdjeUlzSUNKdmJrVnljbTl5SWl3Z0ltRjBTMlY1SWl3Z0luTndZV05sUW1WbWIzSmxJaXdnSW1OdmJXMWxiblFpTENBaVlXNWphRzl5SWl3Z0luUmhaeUlzSUNKdWIyUmxJaXdnSW1selUzSmpWRzlyWlc0aUxDQWlZMjl0Y0c5elpVRnNhV0Z6SWl3Z0ltTnZiWEJ2YzJWVFkyRnNZWElpTENBaVkyOXRjRzl6WlVOdmJHeGxZM1JwYjI0aUxDQWliV1Z6YzJGblpTSXNJQ0pwYzFOallXeGhjaUlzSUNKdlptWnpaWFFpTENBaVltVm1iM0psSWl3Z0luQnZjeUlzSUNKbGJtUWlMQ0FpWlcxd2RIbFRZMkZzWVhKUWIzTnBkR2x2YmlJc0lDSnZjSFJwYjI1eklpd2dJbk52ZFhKalpTSXNJQ0poYkdsaGN5SXNJQ0pCYkdsaGN5SXNJQ0oyWVd4MVpVVnVaQ0lzSUNKeVpTSXNJQ0p5WlhOdmJIWmxSVzVrSWl3Z0ltTnZiWEJ2YzJWRWIyTWlMQ0FpYjNCMGFXOXVjeUlzSUNKa2FYSmxZM1JwZG1Weklpd2dJbTltWm5ObGRDSXNJQ0p6ZEdGeWRDSXNJQ0oyWVd4MVpTSXNJQ0psYm1RaUxDQWliMjVGY25KdmNpSXNJQ0p2Y0hSeklpd2dJbVJ2WXlJc0lDSkViMk4xYldWdWRDSXNJQ0pqZEhnaUxDQWljSEp2Y0hNaUxDQWljbVZ6YjJ4MlpWQnliM0J6SWl3Z0ltTnZiWEJ2YzJWT2IyUmxJaXdnSW1OdmJYQnZjMlZGYlhCMGVVNXZaR1VpTENBaVkyOXVkR1Z1ZEVWdVpDSXNJQ0p5WlNJc0lDSnlaWE52YkhabFJXNWtJaXdnSW1kbGRFVnljbTl5VUc5eklpd2dJbk55WXlJc0lDSnZabVp6WlhRaUxDQWljMjkxY21ObElpd2dJbkJoY25ObFVISmxiSFZrWlNJc0lDSndjbVZzZFdSbElpd2dJbDloSWl3Z0ltTnZiVzFsYm5RaUxDQWlZWFJEYjIxdFpXNTBJaXdnSW1GbWRHVnlSVzF3ZEhsTWFXNWxJaXdnSWtOdmJYQnZjMlZ5SWl3Z0ltOXdkR2x2Ym5NaUxDQWlZMjlrWlNJc0lDSnRaWE56WVdkbElpd2dJbmRoY201cGJtY2lMQ0FpY0c5eklpd2dJbGxCVFV4WFlYSnVhVzVuSWl3Z0lsbEJUVXhRWVhKelpVVnljbTl5SWl3Z0lrUnBjbVZqZEdsMlpYTWlMQ0FpWkc5aklpd2dJbUZtZEdWeVJHOWpJaXdnSW1Saklpd2dJbWx6UTI5c2JHVmpkR2x2YmlJc0lDSnBkQ0lzSUNKcGMxQmhhWElpTENBaVkySWlMQ0FpZEc5clpXNXpJaXdnSW1admNtTmxSRzlqSWl3Z0ltVnVaRTltWm5ObGRDSXNJQ0owYjJ0bGJpSXNJQ0pmWDNscFpXeGtVM1JoY2lJc0lDSmpiMjF3YjNObFJHOWpJaXdnSW0xelp5SXNJQ0psY25KdmNpSXNJQ0psYm1RaUxDQWljbVZ6YjJ4MlpVVnVaQ0lzSUNKdmNIUnpJaXdnSWtSdlkzVnRaVzUwSWl3Z0lrSlNSVUZMSWl3Z0lsTkxTVkFpTENBaVVrVk5UMVpGSWl3Z0luWnBjMmwwSWl3Z0ltTnpkQ0lzSUNKMmFYTnBkRzl5SWl3Z0lsOTJhWE5wZENJc0lDSndZWFJvSWl3Z0ltbDBaVzBpTENBaVptbGxiR1FpTENBaWFXNWtaWGdpTENBaWRHOXJJaXdnSW5CaGNtVnVkQ0lzSUNKamIyeHNJaXdnSW1OMGNtd2lMQ0FpZEc5clpXNGlMQ0FpYVNJc0lDSmphU0lzSUNKQ1QwMGlMQ0FpUkU5RFZVMUZUbFFpTENBaVJreFBWMTlGVGtRaUxDQWlVME5CVEVGU0lpd2dJblJ2YTJWdVZIbHdaU0lzSUNKemIzVnlZMlVpTENBaVFrOU5JaXdnSWtSUFExVk5SVTVVSWl3Z0lrWk1UMWRmUlU1RUlpd2dJbE5EUVV4QlVpSXNJQ0pwYzBWdGNIUjVJaXdnSW1Ob0lpd2dJbWhsZUVScFoybDBjeUlzSUNKMFlXZERhR0Z5Y3lJc0lDSm1iRzkzU1c1a2FXTmhkRzl5UTJoaGNuTWlMQ0FpYVc1MllXeHBaRUZ1WTJodmNrTm9ZWEp6SWl3Z0ltbHpUbTkwUVc1amFHOXlRMmhoY2lJc0lDSk1aWGhsY2lJc0lDSnpiM1Z5WTJVaUxDQWlhVzVqYjIxd2JHVjBaU0lzSUNKZllTSXNJQ0p1WlhoMElpd2dJbDlmZVdsbGJHUlRkR0Z5SWl3Z0lta2lMQ0FpYmlJc0lDSnZabVp6WlhRaUxDQWlhVzVrWlc1MElpd2dJbVIwSWl3Z0ltVnVaQ0lzSUNKemRHRjBaU0lzSUNKc2FXNWxJaXdnSWtKUFRTSXNJQ0prYVhKRmJtUWlMQ0FpWTNNaUxDQWljM0FpTENBaVJFOURWVTFGVGxRaUxDQWljeUlzSUNKamFEQWlMQ0FpWTJneElpd2dJbTVzSWl3Z0lrWk1UMWRmUlU1RUlpd2dJbkYxYjNSbElpd2dJbkZpSWl3Z0lteHZiM0FpTENBaWJHRnpkRU5vWVhJaUxDQWlVME5CVEVGU0lpd2dJbWx1Um14dmR5SXNJQ0poYkd4dmQwVnRjSFI1SWl3Z0ltRnNiRzkzVkdGaWN5SXNJQ0owWlhOMElpd2dJa3hwYm1WRGIzVnVkR1Z5SWl3Z0ltOW1abk5sZENJc0lDSnNiM2NpTENBaWFHbG5hQ0lzSUNKdGFXUWlMQ0FpYzNSaGNuUWlMQ0FpYVc1amJIVmtaWE5VYjJ0bGJpSXNJQ0pzYVhOMElpd2dJblI1Y0dVaUxDQWlhU0lzSUNKbWFXNWtUbTl1Ulcxd2RIbEpibVJsZUNJc0lDSnBjMFpzYjNkVWIydGxiaUlzSUNKMGIydGxiaUlzSUNKblpYUlFjbVYyVUhKdmNITWlMQ0FpY0dGeVpXNTBJaXdnSWw5aElpd2dJbWwwSWl3Z0ltZGxkRVpwY25OMFMyVjVVM1JoY25SUWNtOXdjeUlzSUNKd2NtVjJJaXdnSW14dmIzQWlMQ0FpWm1sNFJteHZkMU5sY1VsMFpXMXpJaXdnSW1aaklpd2dJbEJoY25ObGNpSXNJQ0p2Yms1bGQweHBibVVpTENBaVRHVjRaWElpTENBaWMyOTFjbU5sSWl3Z0ltbHVZMjl0Y0d4bGRHVWlMQ0FpYkdWNFpXMWxJaXdnSWw5ZmVXbGxiR1JUZEdGeUlpd2dJblJ2YTJWdVZIbHdaU0lzSUNKdFpYTnpZV2RsSWl3Z0luUnZjQ0lzSUNKdUlpd2dJbVZ5Y205eUlpd2dJbXhoYzNRaUxDQWljM1FpTENBaVpHOWpJaXdnSW1KMklpd2dJbk5qWVd4aGNpSXNJQ0p6ZEdGeWRDSXNJQ0p6WlhBaUxDQWliV0Z3SWl3Z0ltNXNJaXdnSW1WdVpDSXNJQ0poZEUxaGNFbHVaR1Z1ZENJc0lDSmhkRTVsZUhSSmRHVnRJaXdnSW10bGVTSXNJQ0ptY3lJc0lDSnpaWEVpTENBaWFXNWtaVzUwSWl3Z0ltUnZZMFZ1WkNJc0lDSndZWEp6WlU5d2RHbHZibk1pTENBaWIzQjBhVzl1Y3lJc0lDSndjbVYwZEhsRmNuSnZjbk1pTENBaVRHbHVaVU52ZFc1MFpYSWlMQ0FpY0dGeWMyVkViMk4xYldWdWRDSXNJQ0p6YjNWeVkyVWlMQ0FpYjNCMGFXOXVjeUlzSUNKc2FXNWxRMjkxYm5SbGNpSXNJQ0p3Y21WMGRIbEZjbkp2Y25NaUxDQWljR0Z5YzJWUGNIUnBiMjV6SWl3Z0luQmhjbk5sY2lJc0lDSlFZWEp6WlhJaUxDQWlZMjl0Y0c5elpYSWlMQ0FpUTI5dGNHOXpaWElpTENBaVpHOWpJaXdnSWw5a2IyTWlMQ0FpV1VGTlRGQmhjbk5sUlhKeWIzSWlMQ0FpY0hKbGRIUnBabmxGY25KdmNpSXNJQ0p3WVhKelpTSXNJQ0p6Y21NaUxDQWljbVYyYVhabGNpSXNJQ0pmY21WMmFYWmxjaUlzSUNKM1lYSnVhVzVuSWl3Z0luZGhjbTRpTENBaWFXMXdiM0owWDNOdmNuUmxaRjlpZEhKbFpTSXNJQ0pRSWl3Z0lreHBkR1Z5WVd4eklpd2dJblJ2VTNSeWFXNW5JaXdnSW1acFpXeGtJaXdnSW5ObGRIUnBibWNpTENBaWNtVmpkWEp6YVhabElpd2dJbmR5WVhCd1pXUWlMQ0FpZDNKaGNGWmhiSFZsSWl3Z0luSmxjM1ZzZENJc0lDSm1JaXdnSW1VaUxDQWljbVZ1WkdWeVRXbHVhVzFoYkVSaGRHVWlMQ0FpY21WdVpHVnlUV2x1YVcxaGJFUjFjbUYwYVc5dUlpd2dJblpoYkNJc0lDSnBjMDUxYkd3aUxDQWlhWE5PZFcxaVpYSWlMQ0FpYVhOVGRISnBibWNpTENBaWFYTkNiMjlzWldGdUlpd2dJbWx6UkhWeVlYUnBiMjRpTENBaWFYTkVZWFJsSWl3Z0ltbHpRWEp5WVhraUxDQWlhWE5NYVc1cklpd2dJbWx6Um5WdVkzUnBiMjRpTENBaWFYTlBZbXBsWTNRaUxDQWliV0Z3VEdWaGRtVnpJaXdnSW1aMWJtTWlMQ0FpYTJWNUlpd2dJblpoYkhWbElpd2dJbVZ4ZFdGc2N5SXNJQ0ptYVhKemRDSXNJQ0p6WldOdmJtUWlMQ0FpWTI5dGNHRnlaU0lzSUNKMllXd3hJaXdnSW5aaGJESWlMQ0FpYkdsdWEwNXZjbTFoYkdsNlpYSWlMQ0FpWDJFaUxDQWlYMklpTENBaWQzSmhjREVpTENBaWQzSmhjRElpTENBaWJHbHVhekVpTENBaWJHbHVheklpTENBaWJtOXliV0ZzYVhwbElpd2dJbmdpTENBaWNHRjBhRU52YlhCaGNtVWlMQ0FpZEhsd1pVTnZiWEJoY21VaUxDQWlaakVpTENBaVpqSWlMQ0FpYVc1a1pYZ2lMQ0FpWTI5dGNDSXNJQ0p2TVNJc0lDSnZNaUlzSUNKck1TSXNJQ0pyTWlJc0lDSnJaWGxEYjIxd1lYSmxJaXdnSW5SNWNHVlBaaUlzSUNKcGMxUnlkWFJvZVNJc0lDSmtaV1Z3UTI5d2VTSXNJQ0oySWl3Z0lrUmhkR1ZVYVcxbElpd2dJa1IxY21GMGFXOXVJaXdnSWt4cGJtc2lMQ0FpUjNKdmRYQnBibWR6SWl3Z0ltbHpSV3hsYldWdWRFZHliM1Z3SWl3Z0ltVnVkSEo1SWl3Z0ltbHpSM0p2ZFhCcGJtY2lMQ0FpWld4bGJXVnVkQ0lzSUNKcGMweGxZV1lpTENBaVkyOTFiblFpTENBaVpXeGxiV1Z1ZEhNaUxDQWljM1ZpWjNKdmRYQWlMQ0FpYzJ4cFkyVWlMQ0FpYzNSaGNuUWlMQ0FpWlc1a0lpd2dJbk5sWlc0aUxDQWlaM0p2ZFhBaUxDQWlaM0p2ZFhCVGFYcGxJaXdnSW1keWIzVndVM1JoY25RaUxDQWlaM0p2ZFhCRmJtUWlMQ0FpVTNWalkyVnpjeUlzSUNKZlUzVmpZMlZ6Y3lJc0lDSjJZV3gxWlNJc0lDSm1JaXdnSW5OMVkyTWlMQ0FpWDJaaGFXd2lMQ0FpWDNaaGJIVmxJaXdnSWw5dFpYTnpZV2RsSWl3Z0lrWmhhV3gxY21VaUxDQWlYMFpoYVd4MWNtVWlMQ0FpWlhKeWIzSWlMQ0FpWDJZaUxDQWlYM04xWTJNaUxDQWlabUZwYkNJc0lDSnRaWE56WVdkbElpd2dJbEpsYzNWc2RDSXNJQ0p6ZFdOalpYTnpJaXdnSW1aaGFXeDFjbVVpTENBaVpteGhkRTFoY0RJaUxDQWlabWx5YzNRaUxDQWljMlZqYjI1a0lpd2dJbTFoY0RJaUxDQWlZU0lzSUNKaUlpd2dJbTFoY0VGc2JDSXNJQ0pwYm5CMWRDSXNJQ0ptZFc1aklpd2dJbkpsYzNWc2RDSXNJQ0psYkdWdFpXNTBJaXdnSW05MWRIQjFkQ0lzSUNKMGNubHBibWNpTENBaVkyRnNiQ0lzSUNKaGMzbHVZeUlzSUNKd2NtOXRhWE5sSWl3Z0lrWnBiSFJsY25NaUxDQWlZWFJ2YlNJc0lDSnpaWFFpTENBaVkyOXVjM1JoYm5RaUxDQWlkbUZzZFdVaUxDQWliblZzYkdGaWJHVkJkRzl0SWl3Z0ltNWxaMkYwWldRaUxDQWlibVZuWVhSbElpd2dJbVpwYkhSbGNpSXNJQ0psYlhCMGVTSXNJQ0p5WlhOdmJIWmxJaXdnSW1WMlpYSjVkR2hwYm1jaUxDQWljMlYwU1c1MFpYSnpaV04wVG1WbllYUnBiMjRpTENBaWFXNTBaWEp6WldOMElpd2dJbVZzWlcxbGJuUnpJaXdnSW14aGVubEpiblJsY25ObFkzUWlMQ0FpZUNJc0lDSndjbTlrZFdObElpd2dJbXhoZW5sR1lXbHNZV0pzWlVsdWRHVnljMlZqZEdsdmJpSXNJQ0pTWlhOMWJIUWlMQ0FpWVhSdmJYTWlMQ0FpYm1WbllYUnBiMjV6SWl3Z0ltVnNaVzFsYm5RaUxDQWliV0Y1WW1WR2FXeDBaWElpTENBaWMyVjBTVzUwWlhKelpXTjBJaXdnSW5ObGRGVnVhVzl1SWl3Z0luVnVhVzl1SWl3Z0ltWnBiSFJsY25NaUxDQWliR0Y2ZVZWdWFXOXVJaXdnSW14aGVubEdZV2xzWVdKc1pWVnVhVzl1SWl3Z0luTmxkSE1pTENBaWMyOXlkR1ZrSWl3Z0ltRWlMQ0FpWWlJc0lDSnlaWE4xYkhRaUxDQWliR0Z5WjJWemRDSXNJQ0pGZUhCeVpYTnphVzl1Y3lJc0lDSjJZWEpwWVdKc1pTSXNJQ0p1WVcxbElpd2dJbXhwZEdWeVlXd2lMQ0FpZG1Gc2RXVWlMQ0FpWW1sdVlYSjVUM0FpTENBaWJHVm1kQ0lzSUNKdmNDSXNJQ0p5YVdkb2RDSXNJQ0pwYm1SbGVDSXNJQ0p2WW1vaUxDQWlhVzVrWlhoV1lYSnBZV0pzWlNJc0lDSndZWEowY3lJc0lDSnlaWE4xYkhRaUxDQWliR0Z0WW1SaElpd2dJbUZ5WjNNaUxDQWlablZ1WXlJc0lDSnNhWE4wSWl3Z0luWmhiSFZsY3lJc0lDSnZZbXBsWTNRaUxDQWlibVZuWVhSbElpd2dJbU5vYVd4a0lpd2dJbWx6UTI5dGNHRnlaVTl3SWl3Z0luVnVZbTkxYm1SV1lYSnBZV0pzWlhNaUxDQWlaWGh3Y2lJc0lDSmliM1Z1WkNJc0lDSk1hWFJsY21Gc2N5SXNJQ0pHYVd4MFpYSnpJaXdnSW1FaUxDQWlibVYzUW05MWJtUWlMQ0FpWVhKbklpd2dJbllpTENBaWRHOVRkSEpwYm1jaUxDQWlheUlzSUNKM2NtRndjR1ZrSWl3Z0lsQlNTVTFKVkVsV1JWTWlMQ0FpWHlJc0lDSnpkSElpTENBaWNTSXNJQ0pqYUdGeWN5SXNJQ0psYzJOaGNHVmtJaXdnSW5OMFlYSjBJaXdnSW5KbGMzUWlMQ0FpUlUxUFNrbGZVa1ZIUlZnaUxDQWlabWx5YzNRaUxDQWliR2x1YTBsdWJtVnlJaXdnSWt4cGJtc2lMQ0FpY0NJc0lDSnNJaXdnSWw5emRISWlMQ0FpZVdWaGNpSXNJQ0p0YjI1MGFDSXNJQ0pFWVhSbFZHbHRaU0lzSUNKRVFWUkZYMU5JVDFKVVNFRk9SRk1pTENBaVlTSXNJQ0ppSWl3Z0ltTm9ZV2x1VDNCMElpd2dJbmx0SWl3Z0ltUmhlU0lzSUNKNWJXUWlMQ0FpYUc5MWNpSXNJQ0o1YldSb0lpd2dJbTFwYm5WMFpTSXNJQ0o1YldSb2JTSXNJQ0p6WldOdmJtUWlMQ0FpZVcxa2FHMXpJaXdnSW0xcGJHeHBjMlZqYjI1a0lpd2dJbVIwSWl3Z0luQnRJaXdnSW1oeUlpd2dJbDloSWl3Z0lucHZibVVpTENBaVgySWlMQ0FpWkNJc0lDSkVWVkpCVkVsUFRsOVVXVkJGVXlJc0lDSmpiM1Z1ZENJc0lDSjBJaXdnSW5naUxDQWlaSFZ5WVhScGIyNXpJaXdnSW1NaUxDQWlibTl5YldGc2FYcGxSSFZ5WVhScGIyNGlMQ0FpWmlJc0lDSmZjeUlzSUNKbGJXOXFhVjl5WldkbGVGOWtaV1poZFd4MElpd2dJa1IxY21GMGFXOXVJaXdnSWtWWVVGSkZVMU5KVDA0aUxDQWlSWGh3Y21WemMybHZibk1pTENBaVkzSmxZWFJsUm5WdVkzUnBiMjRpTENBaVgyWjFibU1pTENBaVpHRjBaU0lzSUNKa2RYSWlMQ0FpYm1GdFpTSXNJQ0pmYzJWd0lpd2dJblpoYkhWbElpd2dJblpoYkhNaUxDQWljbVZ6SWl3Z0ltVnVkSEo1SWl3Z0ltOWlhaUlzSUNKd2IzTjBabWw0WlhNaUxDQWljbVZ6ZFd4MElpd2dJbkJ2YzNRaUxDQWlabWxsYkdRaUxDQWlhV1JsYm5RaUxDQWlYMmxuYm05eVpTSXNJQ0psZUhCeUlpd2dJbDh5SWl3Z0lsOHpJaXdnSWw4MElpd2dJbDh4SWl3Z0ltVjRjSEp6SWl3Z0ltTnlaV0YwWlVKcGJtRnllVkJoY25ObGNpSXNJQ0pSVlVWU1dTSXNJQ0pwWkNJc0lDSm1kVzVqSWl3Z0luQmhkR2dpTENBaVkyaHBiR1J5Wlc0aUxDQWljR0Z5Wlc1MGN5SXNJQ0pzYVc1cklpd2dJbk52ZFhKalpTSXNJQ0pzWldaMElpd2dJbDl2Y0NJc0lDSnlhV2RvZENJc0lDSmpjbVZoZEdWQ2FXNWhjbmxRWVhKelpYSWlMQ0FpWTJocGJHUWlMQ0FpYzJWd0lpd2dJbU52YldKcGJtVWlMQ0FpWm1seWMzUWlMQ0FpY21WemRDSXNJQ0p1YjJSbElpd2dJbWx1WkdWNElpd2dJbU55WldGMFpVWjFibU4wYVc5dUlpd2dJbVoxYm1NaUxDQWlZWEpuY3lJc0lDSnlaV0ZzUm5WdVl5SXNJQ0ptSWl3Z0ltRWlMQ0FpWTJoaGFXNVBjSFFpTENBaVltRnpaU0lzSUNKbWRXNWpjeUlzSUNKZmMzVmpZMlZ6Y3lJc0lDSmZabUZwYkhWeVpTSXNJQ0pwYm5CMWRDSXNJQ0p5WlhOMWJIUWlMQ0FpYm1WNGRDSXNJQ0pRSWl3Z0ltMWhjRTlpYW1WamRGWmhiSFZsY3lJc0lDSnZZbXBsWTNRaUxDQWlablZ1WXlJc0lDSnlaWE4xYkhRaUxDQWlhMlY1SWl3Z0luWmhiSFZsSWl3Z0lrcHpiMjVEYjI1MlpYSnphVzl1SWl3Z0ltbHVjSFYwSWl3Z0ltcHpiMjRpTENBaWJHbDBaWEpoYkNJc0lDSjNjbUZ3Y0dWa0lpd2dJa3hwZEdWeVlXeHpJaXdnSW0xaGNFOWlhbVZqZEZaaGJIVmxjeUlzSUNKMllXeDFaU0lzSUNKdWIzSnRZV3hwZW1WeUlpd2dJbllpTENBaWRIbHdaU0lzSUNKRVlYUmxWR2x0WlNJc0lDSkVkWEpoZEdsdmJpSXNJQ0pNYVc1cklpd2dJbXB6YjI1SmJteHBibVZHYVdWc1pDSXNJQ0ptYVdWc1pDSXNJQ0pLYzI5dVEyOXVkbVZ5YzJsdmJpSXNJQ0poYzBsdWJHbHVaVVpwWld4a0lpd2dJbXh2WTJGc0lpd2dJbXhwYm1WdWJ5SXNJQ0ptSWl3Z0luQmhjbk5sU1c1c2FXNWxWbUZzZFdVaUxDQWlTVTVNU1U1RlgwWkpSVXhFWDFkU1FWQlFSVkpUSWl3Z0ltWnBibVJEYkc5emFXNW5JaXdnSW14cGJtVWlMQ0FpYzNSaGNuUWlMQ0FpYjNCbGJpSXNJQ0pqYkc5elpTSXNJQ0p1WlhOMGFXNW5JaXdnSW1WelkyRndaV1FpTENBaWFXNWtaWGdpTENBaVkyaGhjaUlzSUNKbWFXNWtVMlZ3WVhKaGRHOXlJaXdnSW5ObGNDSXNJQ0ptYVc1a1UzQmxZMmxtYVdOSmJteHBibVZHYVdWc1pDSXNJQ0pyWlhraUxDQWlkbUZzZFdVaUxDQWlhVzVzYVc1bElpd2dJbEJTU1UxSlZFbFdSVk1pTENBaVpYaDBjbUZqZEVsdWJHbHVaVVpwWld4a2N5SXNJQ0pwYm1Oc2RXUmxWR0Z6YTBacFpXeGtjeUlzSUNKbWFXVnNaSE1pTENBaWQzSmhjSEJsY2lJc0lDSm1iM1Z1WkVsdVpHVjRJaXdnSW5CaGNuTmxaRVpwWld4a0lpd2dJbVY0ZEhKaFkzUlRjR1ZqYVdGc1ZHRnphMFpwWld4a2N5SXNJQ0poSWl3Z0ltSWlMQ0FpWm1sc2RHVnlaV1JHYVdWc1pITWlMQ0FpYVNJc0lDSkdWVXhNWDB4SlRrVmZTMFZaWDFCQlVsUWlMQ0FpWlcxdmFtbGZjbVZuWlhoZlpHVm1ZWFZzZENJc0lDSndZWEowY3lJc0lDSkdWVXhNWDB4SlRrVmZTMFZaWDFCQlVsTkZVaUlzSUNKbGVIUnlZV04wUm5Wc2JFeHBibVZHYVdWc1pDSXNJQ0owWlhoMElpd2dJbkpsWVd4TFpYa2lMQ0FpUTFKRlFWUkZSRjlFUVZSRlgxSkZSMFZZSWl3Z0lrUlZSVjlFUVZSRlgxSkZSMFZZSWl3Z0lrUlBUa1ZmUkVGVVJWOVNSVWRGV0NJc0lDSlRRMGhGUkZWTVJVUmZSRUZVUlY5U1JVZEZXQ0lzSUNKVFZFRlNWRjlFUVZSRlgxSkZSMFZZSWl3Z0lrVk5UMHBKWDFKRlIwVllSVk1pTENBaWNtVnpkV3gwY3lJc0lDSnlaV2RsZUNJc0lDSnRZWFJqYUNJc0lDSlpZVzFzUTI5dWRtVnljMmx2YmlJc0lDSjVZVzFzSWl3Z0luWmhiSFZsSWl3Z0luZHlZWEJ3WldRaUxDQWlUR2wwWlhKaGJITWlMQ0FpYkdsMFpYSmhiQ0lzSUNKdFlYQlBZbXBsWTNSV1lXeDFaWE1pTENBaWNtVnpkV3gwSWl3Z0ltTm9hV3hrSWl3Z0lrUmhkR1ZVYVcxbElpd2dJbTlpYW1WamRDSXNJQ0pyWlhraUxDQWlaR0YwWlZCaGNuTmxJaXdnSWxCU1NVMUpWRWxXUlZNaUxDQWlaSFZ5WVhScGIyNVFZWEp6WlNJc0lDSnNhVzVyVUdGeWMyVWlMQ0FpV1VGTlRGOUVRVlJCWDFKRlIwVllJaXdnSWtOUFJFVkNURTlEUzE5R1JVNURSVjlTUlVkRldDSXNJQ0pNU1ZOVVgwbFVSVTFmVWtWSFJWZ2lMQ0FpYldGeWEyUnZkMjVKYlhCdmNuUWlMQ0FpY0dGMGFDSXNJQ0p0WVhKclpHOTNiaUlzSUNKdFpYUmhaR0YwWVNJc0lDSnpkR0YwY3lJc0lDSnNhVzVsY3lJc0lDSndZV2RsVFdWMFlXUmhkR0VpTENBaVpuSnZiblJ0WVhSMFpYSWlMQ0FpYzJWamRHbHZibk1pTENBaWJXRnlhMlJ2ZDI1VGIzVnlZMlZKYlhCdmNuUWlMQ0FpVUdGblpVUmhkR0VpTENBaVgyRWlMQ0FpWDJJaUxDQWlYMk1pTENBaVgyUWlMQ0FpWDJVaUxDQWlYMllpTENBaVgyY2lMQ0FpWDJnaUxDQWlYMmtpTENBaVgyb2lMQ0FpWDJzaUxDQWlYMndpTENBaVgyMGlMQ0FpWDI0aUxDQWlYMjhpTENBaVgzQWlMQ0FpY0dGeWMyVkdjbTl1ZEcxaGRIUmxja0pzYjJOcklpd2dJbTFoY210a2IzZHVUV1YwWVdSaGRHRWlMQ0FpVFdWMFlXUmhkR0VpTENBaWMyVmpkR2x2YmtGeWNtRjVJaXdnSW0xbGRHRm9aV0ZrYVc1bmN5SXNJQ0poSWl3Z0ltSWlMQ0FpUWxSeVpXVWlMQ0FpYVc1a1pYZ2lMQ0FpWlc1MGNua2lMQ0FpYzNSaGNuUWlMQ0FpWlc1a0lpd2dJbk5sWTNScGIyNGlMQ0FpVTJWamRHbHZia1JoZEdFaUxDQWlaVzF3ZEhsc2FXNWxjeUlzSUNKblpYUkdhV3hsVkdsMGJHVWlMQ0FpWm1seWMzUWlMQ0FpWW14dlkydHpJaXdnSW1Kc2IyTnJUM0prYVc1aGJDSXNJQ0ppYkc5amF5SXNJQ0p6ZEdGeWRFeHBibVVpTENBaVRHbHpkRUpzYjJOclJHRjBZU0lzSUNKNVlXMXNJaXdnSW5Od2JHbDBJaXdnSW5CaGNuTmxJaXdnSWtSaGRHRmliRzlqYTBSaGRHRWlMQ0FpYldGMFkyZ2lMQ0FpUTI5a1pXSnNiMk5yUkdGMFlTSXNJQ0pzWVc1bmRXRm5aWE1pTENBaVFtRnpaVUpzYjJOclJHRjBZU0lzSUNKc2IyOXJkWEFpTENBaVkyOXVkR1Z1ZEZKbFoyVjRJaXdnSW0xaGNtdGxjbEpsWjJWNElpd2dJbXhwYzNSSmRHVnRjeUlzSUNKc2FYTjBJaXdnSW5ONWJXSnZiQ0lzSUNKMFpYaDBJaXdnSW1sMFpXMGlMQ0FpVEdsemRFbDBaVzFFWVhSaElpd2dJbXhwYzNSQ2JHOWpheUlzSUNKMFlXZGtaV1lpTENBaWRHRm5JaXdnSW14cGJtVWlMQ0FpY21GM2RHRm5JaXdnSW1WNGRISmhZM1JVWVdkeklpd2dJbXhwYm10a1pXWWlMQ0FpYkdsdWF5SXNJQ0pNYVc1cklpd2dJbVpwWld4a0lpd2dJbWwwWlhKaGRHVkpibXhwYm1WR2FXVnNaSE1pTENBaVkyOXVkR1Z1ZENJc0lDSnNhVzVsYm04aUxDQWlhVzVzYVc1bFJtbGxiR1J6SWl3Z0ltVjRkSEpoWTNSSmJteHBibVZHYVdWc1pITWlMQ0FpYVdacFpXeGtJaXdnSW1GelNXNXNhVzVsUm1sbGJHUWlMQ0FpWm5Wc2JFeHBibVVpTENBaVpYaDBjbUZqZEVaMWJHeE1hVzVsUm1sbGJHUWlMQ0FpY21WemRXeDBJaXdnSW10bGVTSXNJQ0oyWVd4MVpTSXNJQ0pLYzI5dVEyOXVkbVZ5YzJsdmJpSXNJQ0paWVcxc1EyOXVkbVZ5YzJsdmJpSXNJQ0owY21WbElpd2dJblJoY21kbGRDSXNJQ0pySWl3Z0luTndiR2wwUm5KdmJuUnRZWFIwWlhKVVlXZFBja0ZzYVdGeklpd2dJbkFpTENBaVl5SXNJQ0p6ZEhJaUxDQWlaR0YwWVNJc0lDSnZiaUlzSUNKeklpd2dJbllpTENBaWJHOTNaWElpTENBaWJXRndUMkpxWldOMFZtRnNkV1Z6SWl3Z0ltcHpiMjVKYm14cGJtVkdhV1ZzWkNJc0lDSnNaVzVuZEdnaUxDQWlaMlYwUlhoMFpXNXphVzl1SWl3Z0luZ2lMQ0FpZEdsMGJHVWlMQ0FpYkdWMlpXd2lMQ0FpYjNKa2FXNWhiQ0lzSUNKaWJHOWphMGxrSWl3Z0luTjBlV3hsSWl3Z0ltTnZiblJsYm5SVGRHRnlkQ0lzSUNKamIyNTBaVzUwUlc1a0lpd2dJblI1Y0dVaUxDQWljR0Z5Wlc1MFRHbHVaU0lzSUNKemRHRjBkWE1pTENBaVpXeGxiV1Z1ZENJc0lDSmpZVzUyWVhOSmJYQnZjblFpTENBaWNHRjBhQ0lzSUNKemIzVnlZMlVpTENBaWFXNWtaWGdpTENBaWMzUmhkSE1pTENBaVgyRWlMQ0FpWTJGdWRtRnpJaXdnSWtOaGJuWmhjMFJoZEdFaUxDQWljR0Z5YzJWa0lpd2dJbU1pTENBaVpuSnZiblJ0WVhSMFpYSWlMQ0FpYldWMFlXUmhkR0VpTENBaWJHbHVaWE1pTENBaWMyVmpkR2x2Ym5NaUxDQWliV0Z5YTJSdmQyNVRiM1Z5WTJWSmJYQnZjblFpTENBaVkyRnlaQ0lzSUNKRFlXNTJZWE5EWVhKa1JHRjBZU0lzSUNKcElpd2dJblJoWnlJc0lDSnNhVzVySWl3Z0ltWnBaV3hrSWl3Z0ltbDBaWEpoZEdWSmJteHBibVZHYVdWc1pITWlMQ0FpUVdKemRISmhZM1JEWVc1MllYTkRZWEprUkdGMFlTSXNJQ0pwWkNJc0lDSnViMlJsU25OdmJpSXNJQ0pOWlhSaFpHRjBZU0lzSUNKTWFXNXJJaXdnSW5ObFkzUnBiMjRpTENBaVgxOXpjSEpsWVdSUWNtOXdjeUlzSUNKZlgzTndjbVZoWkZaaGJIVmxjeUlzSUNKNElpd2dJbVFpTENBaVpYWmxiblFpTENBaWJXVnpjMkZuWlNJc0lDSnRZWEpyWkc5M2JpSXNJQ0p0WVhKclpHOTNia2x0Y0c5eWRDSXNJQ0pqWVc1MllYTWlMQ0FpWTJGdWRtRnpTVzF3YjNKMElpd2dJbVZ5Y205eUlsMEtmUW89XFxuXCIpO1xufVxuIiwgIi8qKiBDb250cm9scyBhbmQgY3JlYXRlcyBEYXRhdmlldyBmaWxlIGltcG9ydGVycywgYWxsb3dpbmcgZm9yIGFzeW5jaHJvbm91cyBsb2FkaW5nIGFuZCBwYXJzaW5nIG9mIGZpbGVzLiAqL1xuXG5pbXBvcnQgSW1wb3J0V29ya2VyIGZyb20gXCJpbmRleC93ZWItd29ya2VyL2ltcG9ydGVyLndvcmtlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBGaWxlTWFuYWdlciwgTWV0YWRhdGFDYWNoZSwgVEZpbGUsIFZhdWx0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBDYW52YXNJbXBvcnQsIE1hcmtkb3duSW1wb3J0IH0gZnJvbSBcImluZGV4L3dlYi13b3JrZXIvbWVzc2FnZVwiO1xuaW1wb3J0IHsgRGVmZXJyZWQsIGRlZmVycmVkIH0gZnJvbSBcInV0aWxzL2RlZmVycmVkXCI7XG5cbmltcG9ydCB7IFF1ZXVlIH0gZnJvbSBcIkBkYXRhc3RydWN0dXJlcy1qcy9xdWV1ZVwiO1xuXG4vKiogU2V0dGluZ3MgZm9yIHRocm90dGxpbmcgaW1wb3J0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRUaHJvdHRsZSB7XG4gICAgLyoqIFRoZSBudW1iZXIgb2Ygd29ya2VycyB0byB1c2UgZm9yIGltcG9ydHMuICovXG4gICAgd29ya2VyczogbnVtYmVyO1xuICAgIC8qKiBBIG51bWJlciBiZXR3ZWVuIDAuMSBhbmQgMSB3aGljaCBpbmRpY2F0ZXMgdG90YWwgY3B1IHV0aWxpemF0aW9uIHRhcmdldDsgMC4xIG1lYW5zIHNwZW5kIDEwJSBvZiB0aW1lICAqL1xuICAgIHV0aWxpemF0aW9uOiBudW1iZXI7XG59XG5cbi8qKiBEZWZhdWx0IHRocm90dGxlIGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9USFJPVFRMRTogSW1wb3J0VGhyb3R0bGUgPSB7XG4gICAgd29ya2VyczogMixcbiAgICB1dGlsaXphdGlvbjogMC43NSxcbn07XG5cbi8qKiBNdWx0aS10aHJlYWRlZCBmaWxlIHBhcnNlciB3aGljaCBkZWJvdW5jZXMgcmFwaWQgZmlsZSByZXF1ZXN0cyBhdXRvbWF0aWNhbGx5LiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVJbXBvcnRlciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgLyogQmFja2dyb3VuZCB3b3JrZXJzIHdoaWNoIGRvIHRoZSBhY3R1YWwgZmlsZSBwYXJzaW5nLiAqL1xuICAgIHdvcmtlcnM6IE1hcDxudW1iZXIsIFBvb2xXb3JrZXI+O1xuICAgIC8qKiBUaGUgbmV4dCB3b3JrZXIgSUQgdG8gaGFuZCBvdXQuICovXG4gICAgbmV4dFdvcmtlcklkOiBudW1iZXI7XG4gICAgLyoqIElmIHRydWUsIHRoZSBpbXBvcnRlciBpcyBub3cgaW5hY3RpdmUgYW5kIHdpbGwgbm90IHByb2Nlc3MgZnVydGhlciBmaWxlcy4gKi9cbiAgICBzaHV0ZG93bjogYm9vbGVhbjtcblxuICAgIC8qKiBMaXN0IG9mIGZpbGVzIHdoaWNoIGhhdmUgYmVlbiBxdWV1ZWQgZm9yIGEgcmVsb2FkLiAqL1xuICAgIHF1ZXVlOiBRdWV1ZTxbVEZpbGUsIERlZmVycmVkPGFueT5dPjtcbiAgICAvKiogT3V0c3RhbmRpbmcgbG9hZHMgaW5kZXhlZCBieSBwYXRoLiAqL1xuICAgIG91dHN0YW5kaW5nOiBNYXA8c3RyaW5nLCBQcm9taXNlPGFueT4+O1xuICAgIC8qKiBUaHJvdHRsZSBzZXR0aW5ncy4gKi9cbiAgICB0aHJvdHRsZTogKCkgPT4gSW1wb3J0VGhyb3R0bGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB2YXVsdDogVmF1bHQsXG4gICAgICAgIHB1YmxpYyBmaWxlTWFuYWdlcjogRmlsZU1hbmFnZXIsXG4gICAgICAgIHB1YmxpYyBtZXRhZGF0YUNhY2hlOiBNZXRhZGF0YUNhY2hlLFxuICAgICAgICB0aHJvdHRsZT86ICgpID0+IEltcG9ydFRocm90dGxlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMud29ya2VycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5zaHV0ZG93biA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5leHRXb3JrZXJJZCA9IDA7XG4gICAgICAgIHRoaXMudGhyb3R0bGUgPSB0aHJvdHRsZSA/PyAoKCkgPT4gREVGQVVMVF9USFJPVFRMRSk7XG5cbiAgICAgICAgdGhpcy5xdWV1ZSA9IG5ldyBRdWV1ZSgpO1xuICAgICAgICB0aGlzLm91dHN0YW5kaW5nID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1ZXVlIHRoZSBnaXZlbiBmaWxlIGZvciBpbXBvcnRpbmcuIE11bHRpcGxlIGltcG9ydCByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgZmlsZSBpbiBhIHNob3J0IHRpbWUgcGVyaW9kIHdpbGwgYmUgZGUtYm91bmNlZFxuICAgICAqIGFuZCBhbGwgYmUgcmVzb2x2ZWQgYnkgYSBzaW5nbGUgYWN0dWFsIGZpbGUgcmVsb2FkLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbXBvcnQ8VD4oZmlsZTogVEZpbGUpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgLy8gRGUtYm91bmNlIHJlcGVhdGVkIHJlcXVlc3RzIGZvciB0aGUgc2FtZSBmaWxlLlxuICAgICAgICBsZXQgZXhpc3RpbmcgPSB0aGlzLm91dHN0YW5kaW5nLmdldChmaWxlLnBhdGgpO1xuICAgICAgICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcblxuICAgICAgICBsZXQgcHJvbWlzZSA9IGRlZmVycmVkPFQ+KCk7XG5cbiAgICAgICAgdGhpcy5vdXRzdGFuZGluZy5zZXQoZmlsZS5wYXRoLCBwcm9taXNlKTtcbiAgICAgICAgdGhpcy5xdWV1ZS5lbnF1ZXVlKFtmaWxlLCBwcm9taXNlXSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGUoKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuXG4gICAgLyoqIFJlc2V0IGFueSBhY3RpdmUgdGhyb3R0bGVzIG9uIHRoZSBpbXBvcnRlciAoc3VjaCBhcyBpZiB0aGUgdXRpbGl6YXRpb24gY2hhbmdlcykuICovXG4gICAgcHVibGljIHVudGhyb3R0bGUoKSB7XG4gICAgICAgIGZvciAobGV0IHdvcmtlciBvZiB0aGlzLndvcmtlcnMudmFsdWVzKCkpIHtcbiAgICAgICAgICAgIHdvcmtlci5hdmFpbGFibGVBdCA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUG9sbCBmcm9tIHRoZSBxdWV1ZSBhbmQgZXhlY3V0ZSBpZiB0aGVyZSBpcyBhbiBhdmFpbGFibGUgd29ya2VyLiAqL1xuICAgIHByaXZhdGUgYXN5bmMgc2NoZWR1bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnF1ZXVlLnNpemUoKSA9PSAwIHx8IHRoaXMuc2h1dGRvd24pIHJldHVybjtcblxuICAgICAgICBjb25zdCB3b3JrZXIgPSB0aGlzLmF2YWlsYWJsZVdvcmtlcigpO1xuICAgICAgICBpZiAoIXdvcmtlcikgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IFtmaWxlLCBwcm9taXNlXSA9IHRoaXMucXVldWUuZGVxdWV1ZSgpITtcbiAgICAgICAgd29ya2VyLmFjdGl2ZSA9IFtmaWxlLCBwcm9taXNlLCBEYXRlLm5vdygpXTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc3dpdGNoIChmaWxlLmV4dGVuc2lvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtYXJrZG93blwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJtZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgdGhpcy52YXVsdC5jYWNoZWRSZWFkKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICB3b3JrZXIhLndvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm1hcmtkb3duXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogY29udGVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0OiBmaWxlLnN0YXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKSxcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBNYXJrZG93bkltcG9ydCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFwiY2FudmFzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0aGlzLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtlciEud29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY2FudmFzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogY29udGVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0OiBmaWxlLnN0YXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogdGhpcy5maWxlTWFuYWdlci5saW5rVXBkYXRlcnMuY2FudmFzLmNhbnZhcy5pbmRleC5pbmRleFtmaWxlLnBhdGhdLFxuICAgICAgICAgICAgICAgICAgICB9IGFzIENhbnZhc0ltcG9ydCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0YWNvcmU6IEJhY2tncm91bmQgZmlsZSByZWxvYWRpbmcgZmFpbGVkLiBcIiArIGV4KTtcblxuICAgICAgICAgICAgLy8gTWVzc2FnZSBmYWlsZWQsIHJlbGVhc2UgdGhpcyB3b3JrZXIuXG4gICAgICAgICAgICB3b3JrZXIuYWN0aXZlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZpbmlzaCB0aGUgcGFyc2luZyBvZiBhIGZpbGUsIHBvdGVudGlhbGx5IHF1ZXVlaW5nIGEgbmV3IGZpbGUuICovXG4gICAgcHJpdmF0ZSBmaW5pc2god29ya2VyOiBQb29sV29ya2VyLCBkYXRhOiBhbnkpIHtcbiAgICAgICAgaWYgKCF3b3JrZXIuYWN0aXZlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFjb3JlOiBSZWNlaXZlZCBhIHN0YWxlIHdvcmtlciBtZXNzYWdlLiBJZ25vcmluZy5cIiwgZGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZmlsZSwgcHJvbWlzZSwgc3RhcnRdID0gd29ya2VyLmFjdGl2ZSE7XG5cbiAgICAgICAgLy8gUmVzb2x2ZSBwcm9taXNlcyB0byBsZXQgdXNlcnMga25vdyB0aGlzIGZpbGUgaGFzIGZpbmlzaGVkLlxuICAgICAgICBpZiAoXCIkZXJyb3JcIiBpbiBkYXRhKSBwcm9taXNlLnJlamVjdChkYXRhW1wiJGVycm9yXCJdKTtcbiAgICAgICAgZWxzZSBwcm9taXNlLnJlc29sdmUoZGF0YSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZpbGUgZnJvbSBvdXRzdGFuZGluZy5cbiAgICAgICAgdGhpcy5vdXRzdGFuZGluZy5kZWxldGUoZmlsZS5wYXRoKTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhpcyB3b3JrZXIgaWYgd2UgYXJlIG92ZXIgY2FwYWNpdHkuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgbm90aWZ5IHRoZSBxdWV1ZSB0aGlzIGZpbGUgaXMgYXZhaWxhYmxlIGZvciBuZXcgd29yay5cbiAgICAgICAgaWYgKHRoaXMud29ya2Vycy5zaXplID4gdGhpcy50aHJvdHRsZSgpLndvcmtlcnMpIHtcbiAgICAgICAgICAgIHRoaXMud29ya2Vycy5kZWxldGUod29ya2VyLmlkKTtcbiAgICAgICAgICAgIHRlcm1pbmF0ZSh3b3JrZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIGNvbnN0IHRocm90dGxlID0gTWF0aC5tYXgoMC4xLCB0aGlzLnRocm90dGxlKCkudXRpbGl6YXRpb24pIC0gMS4wO1xuICAgICAgICAgICAgY29uc3QgZGVsYXkgPSAobm93IC0gc3RhcnQpICogdGhyb3R0bGU7XG5cbiAgICAgICAgICAgIHdvcmtlci5hY3RpdmUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGlmIChkZWxheSA8PSAxZS0xMCkge1xuICAgICAgICAgICAgICAgIHdvcmtlci5hdmFpbGFibGVBdCA9IG5vdztcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdvcmtlci5hdmFpbGFibGVBdCA9IG5vdyArIGRlbGF5O1xuXG4gICAgICAgICAgICAgICAgLy8gTm90ZTogSSdtIHByZXR0eSBzdXJlIHRoaXMgd2lsbCBnYXJhdW50ZWUgdGhhdCB0aGlzIGV4ZWN1dGVzIEFGVEVSIGRlbGF5IG1pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgICAgICAvLyBzbyB0aGlzIHNob3VsZCBiZSBmaW5lOyBpZiBpdCdzIG5vdCwgd2UnbGwgaGF2ZSB0byBzd2FwIHRvIGFuIGV4dGVybmFsIHRpbWVvdXQgbG9vcFxuICAgICAgICAgICAgICAgIC8vIHdoaWNoIGluZmluaXRlbHkgcmVzY2hlZHVsZXMgaXRzZWxmIHRvIHRoZSBuZXh0IGF2YWlsYWJsZSBleGVjdXRpb24gdGltZS5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc2NoZWR1bGUuYmluZCh0aGlzKSwgZGVsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE9idGFpbiBhbiBhdmFpbGFibGUgd29ya2VyLCByZXR1cm5pbmcgdW5kZWZpbmVkIGlmIG9uZSBkb2VzIG5vdCBleGlzdC4gKi9cbiAgICBwcml2YXRlIGF2YWlsYWJsZVdvcmtlcigpOiBQb29sV29ya2VyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgZm9yIChsZXQgd29ya2VyIG9mIHRoaXMud29ya2Vycy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgaWYgKCF3b3JrZXIuYWN0aXZlICYmIHdvcmtlci5hdmFpbGFibGVBdCA8PSBub3cpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSBhIG5ldyB3b3JrZXIgaWYgd2UgY2FuLlxuICAgICAgICBpZiAodGhpcy53b3JrZXJzLnNpemUgPCB0aGlzLnRocm90dGxlKCkud29ya2Vycykge1xuICAgICAgICAgICAgbGV0IHdvcmtlciA9IHRoaXMubmV3V29ya2VyKCk7XG4gICAgICAgICAgICB0aGlzLndvcmtlcnMuc2V0KHdvcmtlci5pZCwgd29ya2VyKTtcbiAgICAgICAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBuZXcgd29ya2VyIGJvdW5kIHRvIHRoaXMgaW1wb3J0ZXIuICovXG4gICAgcHJpdmF0ZSBuZXdXb3JrZXIoKTogUG9vbFdvcmtlciB7XG4gICAgICAgIGxldCB3b3JrZXI6IFBvb2xXb3JrZXIgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy5uZXh0V29ya2VySWQrKyxcbiAgICAgICAgICAgIGF2YWlsYWJsZUF0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgd29ya2VyOiBuZXcgSW1wb3J0V29ya2VyKCksXG4gICAgICAgIH07XG5cbiAgICAgICAgd29ya2VyLndvcmtlci5vbm1lc3NhZ2UgPSAoZXZ0KSA9PiB0aGlzLmZpbmlzaCh3b3JrZXIsIGV2dC5kYXRhKTtcbiAgICAgICAgcmV0dXJuIHdvcmtlcjtcbiAgICB9XG5cbiAgICAvKiogUmVqZWN0IGFsbCBvdXRzdGFuZGluZyBwcm9taXNlcyBhbmQgY2xvc2UgYWxsIHdvcmtlcnMgb24gY2xvc2UuICovXG4gICAgcHVibGljIG9udW5sb2FkKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCB3b3JrZXIgb2YgdGhpcy53b3JrZXJzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICB0ZXJtaW5hdGUod29ya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlICghdGhpcy5xdWV1ZS5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGNvbnN0IFtfZmlsZSwgcHJvbWlzZV0gPSB0aGlzLnF1ZXVlLnBvcCgpITtcbiAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFwiVGVybWluYXRlZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2h1dGRvd24gPSB0cnVlO1xuICAgIH1cbn1cblxuLyoqIEEgd29ya2VyIGluIHRoZSBwb29sIG9mIGV4ZWN1dGluZyB3b3JrZXJzLiAqL1xuaW50ZXJmYWNlIFBvb2xXb3JrZXIge1xuICAgIC8qKiBUaGUgaWQgb2YgdGhpcyB3b3JrZXIuICovXG4gICAgaWQ6IG51bWJlcjtcbiAgICAvKiogVGhlIHJhdyB1bmRlcmx5aW5nIHdvcmtlci4gKi9cbiAgICB3b3JrZXI6IFdvcmtlcjtcbiAgICAvKiogVU5JWCB0aW1lIGluZGljYXRpbmcgdGhlIG5leHQgdGltZSB0aGlzIHdvcmtlciBpcyBhdmFpbGFibGUgZm9yIGV4ZWN1dGlvbiBhY2NvcmRpbmcgdG8gdGFyZ2V0IHV0aWxpemF0aW9uLiAqL1xuICAgIGF2YWlsYWJsZUF0OiBudW1iZXI7XG4gICAgLyoqIFRoZSBhY3RpdmUgcHJvbWlzZSB0aGlzIHdvcmtlciBpcyB3b3JraW5nIG9uLCBpZiBhbnkuICovXG4gICAgYWN0aXZlPzogW1RGaWxlLCBEZWZlcnJlZDxhbnk+LCBudW1iZXJdO1xufVxuXG4vKiogVGVybWluYXRlIGEgcG9vbCB3b3JrZXIuICovXG5mdW5jdGlvbiB0ZXJtaW5hdGUod29ya2VyOiBQb29sV29ya2VyKSB7XG4gICAgd29ya2VyLndvcmtlci50ZXJtaW5hdGUoKTtcblxuICAgIGlmICh3b3JrZXIuYWN0aXZlKSB3b3JrZXIuYWN0aXZlWzFdLnJlamVjdChcIlRlcm1pbmF0ZWRcIik7XG4gICAgd29ya2VyLmFjdGl2ZSA9IHVuZGVmaW5lZDtcbn1cbiIsICJpbXBvcnQgeyBkZWZlcnJlZCwgRGVmZXJyZWQgfSBmcm9tIFwidXRpbHMvZGVmZXJyZWRcIjtcbmltcG9ydCB7IERhdGFzdG9yZSwgU3Vic3RvcmVyIH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlQ2FjaGUgfSBmcm9tIFwiaW5kZXgvcGVyc2lzdGVyXCI7XG5pbXBvcnQgeyBJbmRleGFibGUsIElOREVYQUJMRV9FWFRFTlNJT05TIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgRmlsZUltcG9ydGVyLCBJbXBvcnRUaHJvdHRsZSB9IGZyb20gXCJpbmRleC93ZWItd29ya2VyL2ltcG9ydGVyXCI7XG5pbXBvcnQgeyBJbXBvcnRSZXN1bHQgfSBmcm9tIFwiaW5kZXgvd2ViLXdvcmtlci9tZXNzYWdlXCI7XG5pbXBvcnQgeyBBcHAsIENvbXBvbmVudCwgRXZlbnRSZWYsIEV2ZW50cywgTWV0YWRhdGFDYWNoZSwgVEFic3RyYWN0RmlsZSwgVEZpbGUsIFZhdWx0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgTWFya2Rvd25MaXN0QmxvY2ssIE1hcmtkb3duTGlzdEl0ZW0sIE1hcmtkb3duUGFnZSB9IGZyb20gXCIuL3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBHZW5lcmljRmlsZSB9IGZyb20gXCIuL3R5cGVzL2ZpbGVzXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgRW1iZWRRdWV1ZSB9IGZyb20gXCIuL2VtYmVkLXF1ZXVlXCI7XG5pbXBvcnQgeyBKc29uTWFya2Rvd25QYWdlIH0gZnJvbSBcIi4vdHlwZXMvanNvbi9tYXJrZG93blwiO1xuaW1wb3J0IHsgQ2FudmFzLCBDYW52YXNUZXh0Q2FyZCB9IGZyb20gXCIuL3R5cGVzL2NhbnZhc1wiO1xuXG4vKiogQ2VudHJhbCBBUEkgb2JqZWN0OyBoYW5kbGVzIGluaXRpYWxpemF0aW9uLCBldmVudHMsIGRlYm91bmNpbmcsIGFuZCBhY2Nlc3MgdG8gZGF0YWNvcmUgZnVuY3Rpb25hbGl0eS4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhY29yZSBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgLyoqIEFjY2VzcyB0byB0aGUgb2JzaWRpYW4gdmF1bHQuICovXG4gICAgdmF1bHQ6IFZhdWx0O1xuICAgIC8qKiBQcm92aWRlcyBhY2Nlc3MgdG8gcGVyLShtYXJrZG93biktZmlsZSBtZXRhZGF0YS4gKi9cbiAgICBtZXRhZGF0YUNhY2hlOiBNZXRhZGF0YUNhY2hlO1xuICAgIC8qKiBEYXRhY29yZSBldmVudHMsIG1haW5seSB1c2VkIHRvIHVwZGF0ZSBkb3duc3RyZWFtIHZpZXdzLiBUaGlzIG9iamVjdCBpcyBzaGFkb3dlZCBieSB0aGUgRGF0YWNvcmUgb2JqZWN0IGl0c2VsZi4gKi9cbiAgICBldmVudHM6IEV2ZW50cztcblxuICAgIC8qKiBJbi1tZW1vcnkgaW5kZXggb3ZlciBhbGwgc3RvcmVkIG1ldGFkYXRhLiAqL1xuICAgIGRhdGFzdG9yZTogRGF0YXN0b3JlO1xuICAgIC8qKiBBc3luY2hyb25vdXMgbXVsdGktdGhyZWFkZWQgZmlsZSBpbXBvcnRlciB3aXRoIHRocm90dGxpbmcuICovXG4gICAgaW1wb3J0ZXI6IEZpbGVJbXBvcnRlcjtcbiAgICAvKiogUXVldWUgb2YgYXN5bmNocm9ub3VzIHJlYWQgcmVxdWVzdHM7IGVuc3VyZXMgd2UgbGltaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgZmlsZSBsb2Fkcy4gKi9cbiAgICByZWFkczogRW1iZWRRdWV1ZTtcbiAgICAvKiogTG9jYWwtc3RvcmFnZSBiYWNrZWQgY2FjaGUgb2YgbWV0YWRhdGEgb2JqZWN0cy4gKi9cbiAgICBwZXJzaXN0ZXI6IExvY2FsU3RvcmFnZUNhY2hlO1xuICAgIC8qKiBPbmx5IHNldCB3aGVuIGRhdGFjb3JlIGlzIGluIHRoZSBtaWRzdCBvZiBpbml0aWFsaXphdGlvbjsgdHJhY2tzIGN1cnJlbnQgcHJvZ3Jlc3MuICovXG4gICAgaW5pdGlhbGl6ZXI/OiBEYXRhY29yZUluaXRpYWxpemVyO1xuICAgIC8qKiBJZiB0cnVlLCBkYXRhY29yZSBpcyBmdWxseSBoeWRyYXRlZCBhbmQgYWxsIGZpbGVzIGhhdmUgYmVlbiBpbmRleGVkLiAqL1xuICAgIGluaXRpYWxpemVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGFwcDogQXBwLCBwdWJsaWMgdmVyc2lvbjogc3RyaW5nLCBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy52YXVsdCA9IGFwcC52YXVsdDtcbiAgICAgICAgdGhpcy5tZXRhZGF0YUNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGU7XG4gICAgICAgIHRoaXMucGVyc2lzdGVyID0gbmV3IExvY2FsU3RvcmFnZUNhY2hlKFwicHJpbWFyeVwiLCB2ZXJzaW9uKTtcbiAgICAgICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5kYXRhc3RvcmUgPSBuZXcgRGF0YXN0b3JlKGFwcC52YXVsdCwgYXBwLm1ldGFkYXRhQ2FjaGUsIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuYWRkQ2hpbGQoXG4gICAgICAgICAgICAodGhpcy5pbXBvcnRlciA9IG5ldyBGaWxlSW1wb3J0ZXIoYXBwLnZhdWx0LCBhcHAuZmlsZU1hbmFnZXIsIGFwcC5tZXRhZGF0YUNhY2hlLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgd29ya2Vyczogc2V0dGluZ3MuaW1wb3J0ZXJOdW1UaHJlYWRzLFxuICAgICAgICAgICAgICAgICAgICB1dGlsaXphdGlvbjogTWF0aC5tYXgoMC4xLCBNYXRoLm1pbigxLjAsIHNldHRpbmdzLmltcG9ydGVyVXRpbGl6YXRpb24pKSxcbiAgICAgICAgICAgICAgICB9IGFzIEltcG9ydFRocm90dGxlO1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gVE9ETyAoYmxhY2tzbWl0aGd1KTogQWRkIGEgbmV3IHNldHRpbmcgZm9yIGVtYmVkIHF1ZXVlIGNvbmN1cnJlbmN5LlxuICAgICAgICB0aGlzLmFkZENoaWxkKCh0aGlzLnJlYWRzID0gbmV3IEVtYmVkUXVldWUoYXBwLnZhdWx0LCAoKSA9PiA4KSkpO1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIGN1cnJlbnQgaW5kZXggcmV2aXNpb24sIGZvciBkZXRlcm1pbmluZyBpZiBhbnl0aGluZyBoYXMgY2hhbmdlZC4gKi9cbiAgICBnZXQgcmV2aXNpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzdG9yZS5yZXZpc2lvbjtcbiAgICB9XG5cbiAgICAvKiogSW5pdGlhbGl6ZSBkYXRhY29yZSBieSBzY2FubmluZyBwZXJzaXN0ZWQgY2FjaGVzIGFuZCBhbGwgYXZhaWxhYmxlIGZpbGVzLCBhbmQgcXVldWVpbmcgcGFyc2VzIGFzIG5lZWRlZC4gKi9cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICAvLyBNZXRhZGF0YSBjYWNoZSBoYW5kbGVzIG1hcmtkb3duIGZpbGUgdXBkYXRlcy5cbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50KHRoaXMubWV0YWRhdGFDYWNoZS5vbihcInJlc29sdmVcIiwgKGZpbGUpID0+IHRoaXMucmVsb2FkKGZpbGUpKSk7XG5cbiAgICAgICAgLy8gUmVuYW1lcyBkbyBub3Qgc2V0IG9mZiB0aGUgbWV0YWRhdGEgY2FjaGU7IGNhdGNoIHRoZXNlIGV4cGxpY2l0bHkuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLnZhdWx0Lm9uKFwicmVuYW1lXCIsIHRoaXMucmVuYW1lLCB0aGlzKSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIGdlbmVyaWMgZmlsZSBjcmVhdGVzIGFuZCB1cGRhdGVzOyByZXNvbHZlIGdlbmVyYWxseSBvbmx5IGFwcGxpZXMgdG8gbWFya2Rvd24gZmlsZXNcbiAgICAgICAgLy8gYnV0IHdlIGRvIGtlZXAgYmFzaWMgbWV0YWRhdGEgYWJvdXQgYWxsIGZpbGVzLlxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoXG4gICAgICAgICAgICB0aGlzLnZhdWx0Lm9uKFwiY3JlYXRlXCIsIChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBieSB0aGUgbWV0YWRhdGEgY2FjaGUuXG4gICAgICAgICAgICAgICAgaWYgKElOREVYQUJMRV9FWFRFTlNJT05TLmhhcyhmaWxlLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoZmlsZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudChcbiAgICAgICAgICAgIHRoaXMudmF1bHQub24oXCJtb2RpZnlcIiwgKGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgVEZpbGUpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAvLyBIYW5kbGVkIGJ5IHRoZSBtZXRhZGF0YSBjYWNoZS5cbiAgICAgICAgICAgICAgICBpZiAoSU5ERVhBQkxFX0VYVEVOU0lPTlMuaGFzKGZpbGUuZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZChmaWxlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRmlsZSBjcmVhdGlvbiBkb2VzIGNhdXNlIGEgbWV0YWRhdGEgY2hhbmdlLCBidXQgZGVsZXRlcyBkbyBub3QuIENsZWFyIHRoZSBjYWNoZXMgZm9yIHRoaXMuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudChcbiAgICAgICAgICAgIHRoaXMudmF1bHQub24oXCJkZWxldGVcIiwgKGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YXN0b3JlLmRlbGV0ZShmaWxlLnBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pbmRleCgpO1xuICAgIH1cblxuICAgIC8qKiBTdGFydHMgdGhlIGJhY2tncm91bmQgaW5pdGlhbGl6ZXIuICovXG4gICAgaW5kZXgoKSB7XG4gICAgICAgIC8vIEFzeW5jaHJvbm91c2x5IGluaXRpYWxpemUgYWN0dWFsIGNvbnRlbnQgaW4gdGhlIGJhY2tncm91bmQgdXNpbmcgYSBsaWZlY3ljbGUtcmVzcGVjdGluZyBvYmplY3QuXG4gICAgICAgIGNvbnN0IGluaXQgPSAodGhpcy5pbml0aWFsaXplciA9IG5ldyBEYXRhY29yZUluaXRpYWxpemVyKHRoaXMpKTtcbiAgICAgICAgaW5pdC5maW5pc2hlZCgpLnRoZW4oKHN0YXRzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKGluaXQpO1xuXG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvblNlY3MgPSAoc3RhdHMuZHVyYXRpb25NcyAvIDEwMDAuMCkudG9GaXhlZCgzKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGBEYXRhY29yZTogSW1wb3J0ZWQgYWxsIGZpbGVzIGluIHRoZSB2YXVsdCBpbiAke2R1cmF0aW9uU2Vjc31zIGAgK1xuICAgICAgICAgICAgICAgICAgICBgKCR7c3RhdHMuaW1wb3J0ZWR9IGltcG9ydGVkLCAke3N0YXRzLmNhY2hlZH0gY2FjaGVkLCAke3N0YXRzLnNraXBwZWR9IHNraXBwZWQpLmBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuZGF0YXN0b3JlLnRvdWNoKCk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJ1cGRhdGVcIiwgdGhpcy5yZXZpc2lvbik7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJpbml0aWFsaXplZFwiKTtcblxuICAgICAgICAgICAgLy8gQ2xlYW4gdXAgYW55IGRvY3VtZW50cyB3aGljaCBubyBsb25nZXIgZXhpc3QgaW4gdGhlIHZhdWx0LlxuICAgICAgICAgICAgLy8gVE9ETzogSSB0aGluayB0aGlzIG1heSByYWNlIHdpdGggb3RoZXIgY29uY3VycmVudCBvcGVyYXRpb25zLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyBtYXkgbmVlZCB0byBoYXBwZW4gYXQgdGhlIHN0YXJ0IG9mIGluaXQgYW5kIG5vdCBhdCB0aGUgZW5kLlxuICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbGVzID0gdGhpcy52YXVsdC5nZXRGaWxlcygpLm1hcCgoZmlsZSkgPT4gZmlsZS5wYXRoKTtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdGVyXG4gICAgICAgICAgICAgICAgLnN5bmNocm9uaXplKGN1cnJlbnRGaWxlcylcbiAgICAgICAgICAgICAgICAudGhlbigoY2xlYXJlZCkgPT4gY29uc29sZS5sb2coYERhdGFjb3JlOiBkcm9wcGVkICR7Y2xlYXJlZC5zaXplfSBvdXQtb2YtZGF0ZSBmaWxlIG1ldGFkYXRhIGJsb2Nrcy5gKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkQ2hpbGQoaW5pdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5hbWUoZmlsZTogVEFic3RyYWN0RmlsZSwgb2xkUGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghKGZpbGUgaW5zdGFuY2VvZiBURmlsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlbGV0ZSB0aGUgZmlsZSBhdCB0aGUgb2xkIHBhdGgsIHRoZW4gcmVxdWVzdCBhIHJlbG9hZCBhdCB0aGUgbmV3IHBhdGguXG4gICAgICAgIC8vIFRoaXMgaXMgbGVzcyBvcHRpbWFsIHRoYW4gd2hhdCBjYW4gcHJvYmFibHkgYmUgZG9uZSwgYnV0IHBhdGhzIGFyZSB1c2VkIGluIGEgYnVuY2ggb2YgcGxhY2VzXG4gICAgICAgIC8vIChmb3Igc2VjdGlvbnMsIHRhc2tzLCBldGMgdG8gcmVmZXIgdG8gdGhlaXIgcGFyZW50IGZpbGUpIGFuZCBpdCByZXF1aXJlcyBzb21lIGZpbmVzc2UgdG8gZml4LlxuICAgICAgICB0aGlzLmRhdGFzdG9yZS5kZWxldGUob2xkUGF0aCk7XG4gICAgICAgIHRoaXMucmVsb2FkKGZpbGUpO1xuXG4gICAgICAgIC8vIFRPRE86IEZvciBjb3JyZWN0bmVzcywgcHJvYmFibHkgaGF2ZSB0byBlaXRoZXIgZml4IGxpbmtzIGluIGFsbCBsaW5rZWQgZmlsZXMgT1JcbiAgICAgICAgLy8ganVzdCBzdG9wIG5vcm1hbGl6aW5nIGxpbmtzIGluIHRoZSBzdG9yZS5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFkIGEgZmlsZSBmcm9tIHRoZSBPYnNpZGlhbiBjYWNoZSBlZmZpY2llbnRseSwgbGltaXRpbmcgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IHJlcXVlc3QgYW5kIGRlYm91bmNpbmdcbiAgICAgKiBtdWx0aXBsZSByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgZmlsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgcmVhZChmaWxlOiBURmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRzLnJlYWQoZmlsZSk7XG4gICAgfVxuXG4gICAgLyoqIFF1ZXVlIGEgZmlsZSBmb3IgcmVsb2FkaW5nOyB0aGlzIGlzIGRvbmUgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGJhY2tncm91bmQgYW5kIG1heSB0YWtlIGEgZmV3IHNlY29uZHMuICovXG4gICAgcHVibGljIGFzeW5jIHJlbG9hZChmaWxlOiBURmlsZSk6IFByb21pc2U8SW5kZXhhYmxlPiB7XG4gICAgICAgIC8vIEZpbHRlciBmaWxlcyBieSBmaWxlIGV4dGVuc2lvbnMuXG4gICAgICAgIGlmICghSU5ERVhBQkxFX0VYVEVOU0lPTlMuaGFzKGZpbGUuZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEdlbmVyaWNGaWxlKFxuICAgICAgICAgICAgICAgIGZpbGUucGF0aCxcbiAgICAgICAgICAgICAgICBEYXRlVGltZS5mcm9tTWlsbGlzKGZpbGUuc3RhdC5jdGltZSksXG4gICAgICAgICAgICAgICAgRGF0ZVRpbWUuZnJvbU1pbGxpcyhmaWxlLnN0YXQubXRpbWUpLFxuICAgICAgICAgICAgICAgIGZpbGUuc3RhdC5zaXplXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmRhdGFzdG9yZS5zdG9yZShyZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaW1wb3J0ZXIuaW1wb3J0PEltcG9ydFJlc3VsdD4oZmlsZSk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGltcG9ydCBmaWxlICcke2ZpbGUubmFtZX06ICR7cmVzdWx0LiRlcnJvcn1gKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQudHlwZSA9PT0gXCJtYXJrZG93blwiKSB7XG4gICAgICAgICAgICAvLyBQYXJzZSB0aGUgZmlsZSBhbmQgbm9ybWFsaXplIG1ldGFkYXRhIGZyb20gaXQuXG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBNYXJrZG93blBhZ2UuZnJvbShyZXN1bHQucmVzdWx0LCAobGluaykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJwYXRoID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmsucGF0aCwgcmVzdWx0LnJlc3VsdC4kcGF0aCEpO1xuICAgICAgICAgICAgICAgIGlmIChycGF0aCkgcmV0dXJuIGxpbmsud2l0aFBhdGgocnBhdGgucGF0aCk7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gbGluaztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBTdG9yZSBpdCByZWN1cnNpdmVseSBpbnRvIHRoZSBkYXRhc3RvcmUgZm9yIHF1ZXJ5aW5nLlxuICAgICAgICAgICAgdGhpcy5zdG9yZU1hcmtkb3duKHBhcnNlZCk7XG5cbiAgICAgICAgICAgIC8vIFdyaXRlIGl0IHRvIHRoZSBmaWxlIGNhY2hlIGZvciBmYXN0ZXIgbG9hZHMgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIHRoaXMucGVyc2lzdGVyLnN0b3JlRmlsZShwYXJzZWQuJHBhdGgsIHBhcnNlZC5qc29uKCkpO1xuXG4gICAgICAgICAgICAvLyBBbmQgZmluYWxseSB0cmlnZ2VyIGFuIHVwZGF0ZS5cbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcInVwZGF0ZVwiLCB0aGlzLnJldmlzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnR5cGUgPT09IFwiY2FudmFzXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IENhbnZhcy5mcm9tKHJlc3VsdC5yZXN1bHQsIChsaW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcnBhdGggPSB0aGlzLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QobGluay5wYXRoLCByZXN1bHQucmVzdWx0LiRwYXRoISk7XG4gICAgICAgICAgICAgICAgaWYgKHJwYXRoKSByZXR1cm4gbGluay53aXRoUGF0aChycGF0aC5wYXRoKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBsaW5rO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlQ2FudmFzKHBhcnNlZCk7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3Rlci5zdG9yZUZpbGUocGFyc2VkLiRwYXRoLCBwYXJzZWQuanNvbigpKTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcihcInVwZGF0ZVwiLCB0aGlzLnJldmlzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvdW50ZXJlZCB1bnJlY29nbml6ZWQgaW1wb3J0IHJlc3VsdCB0eXBlOiBcIiArIChyZXN1bHQgYXMgYW55KS50eXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RvcmVDYW52YXMoZGF0YTogQ2FudmFzKSB7XG4gICAgICAgIHRoaXMuZGF0YXN0b3JlLnN0b3JlKGRhdGEsIChvYmplY3QsIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICBzdG9yZShvYmplY3QuJGNhcmRzLCAoY2FyZCwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2FyZCBpbnN0YW5jZW9mIENhbnZhc1RleHRDYXJkKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlKGNhcmQuJHNlY3Rpb25zLCAoc2VjdGlvbiwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlKHNlY3Rpb24uJGJsb2NrcywgKGJsb2NrLCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9jayBpbnN0YW5jZW9mIE1hcmtkb3duTGlzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZSBzdG9yZSBmdW5jdGlvbiBmb3Igc3RvcmluZyBsaXN0IGhlaXJhcmNoaWVzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZVJlYzogU3Vic3RvcmVyPE1hcmtkb3duTGlzdEl0ZW0+ID0gKGl0ZW0sIHN0b3JlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUoaXRlbS4kZWxlbWVudHMsIHN0b3JlUmVjKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZShibG9jay4kZWxlbWVudHMsIHN0b3JlUmVjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBTdG9yZSBhIG1hcmtkb3duIGRvY3VtZW50LiAqL1xuICAgIHB1YmxpYyBzdG9yZU1hcmtkb3duKGRhdGE6IE1hcmtkb3duUGFnZSkge1xuICAgICAgICB0aGlzLmRhdGFzdG9yZS5zdG9yZShkYXRhLCAob2JqZWN0LCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgc3RvcmUob2JqZWN0LiRzZWN0aW9ucywgKHNlY3Rpb24sIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcmUoc2VjdGlvbi4kYmxvY2tzLCAoYmxvY2ssIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9jayBpbnN0YW5jZW9mIE1hcmtkb3duTGlzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWN1cnNpdmUgc3RvcmUgZnVuY3Rpb24gZm9yIHN0b3JpbmcgbGlzdCBoZWlyYXJjaGllcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlUmVjOiBTdWJzdG9yZXI8TWFya2Rvd25MaXN0SXRlbT4gPSAoaXRlbSwgc3RvcmUpID0+IHN0b3JlKGl0ZW0uJGVsZW1lbnRzLCBzdG9yZVJlYyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlKGJsb2NrLiRlbGVtZW50cywgc3RvcmVSZWMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gRXZlbnQgcHJvcG9nYXRpb24uXG5cbiAgICAvKiogQ2FsbGVkIHdoZW5ldmVyIHRoZSBpbmRleCB1cGRhdGVzIHRvIGEgbmV3IHJldmlzaW9uLiBUaGlzIGlzIHRoZSBicm9hZGVzdCBwb3NzaWJsZSBkYXRhY29yZSBldmVudC4gKi9cbiAgICBwdWJsaWMgb24oZXZ0OiBcInVwZGF0ZVwiLCBjYWxsYmFjazogKHJldmlzaW9uOiBudW1iZXIpID0+IGFueSwgY29udGV4dD86IGFueSk6IEV2ZW50UmVmO1xuICAgIHB1YmxpYyBvbihldnQ6IFwiaW5pdGlhbGl6ZWRcIiwgY2FsbGJhY2s6ICgpID0+IGFueSwgY29udGV4dD86IGFueSk6IEV2ZW50UmVmO1xuXG4gICAgb24oZXZ0OiBzdHJpbmcsIGNhbGxiYWNrOiAoLi4uZGF0YTogYW55KSA9PiBhbnksIGNvbnRleHQ/OiBhbnkpOiBFdmVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5vbihldnQsIGNhbGxiYWNrLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICAvKiogVW5zdWJzY3JpYmUgZnJvbSBhbiBldmVudCB1c2luZyB0aGUgZXZlbnQgYW5kIG9yaWdpbmFsIGNhbGxiYWNrLiAqL1xuICAgIG9mZihldnQ6IHN0cmluZywgY2FsbGJhY2s6ICguLi5kYXRhOiBhbnkpID0+IGFueSkge1xuICAgICAgICB0aGlzLmV2ZW50cy5vZmYoZXZ0LCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLyoqIFVuc3Vic2NyaWJlIGZyb20gYW4gZXZlbnQgdXNpbmcgdGhlIGV2ZW50IHJlZmVyZW5jZS4gICovXG4gICAgb2ZmcmVmKHJlZjogRXZlbnRSZWYpIHtcbiAgICAgICAgdGhpcy5ldmVudHMub2ZmcmVmKHJlZik7XG4gICAgfVxuXG4gICAgLyoqIFRyaWdnZXIgYW4gdXBkYXRlIGV2ZW50LiAqL1xuICAgIHByaXZhdGUgdHJpZ2dlcihldnQ6IFwidXBkYXRlXCIsIHJldmlzaW9uOiBudW1iZXIpOiB2b2lkO1xuICAgIC8qKiBUcmlnZ2VyIGFuIGluaXRpYWxpemF0aW9uIGV2ZW50LiAqL1xuICAgIHByaXZhdGUgdHJpZ2dlcihldnQ6IFwiaW5pdGlhbGl6ZWRcIik6IHZvaWQ7XG5cbiAgICAvKiogVHJpZ2dlciBhbiBldmVudC4gKi9cbiAgICBwcml2YXRlIHRyaWdnZXIoZXZ0OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoZXZ0LCAuLi5hcmdzKTtcbiAgICB9XG59XG5cbi8qKiBMaWZlY3ljbGUtcmVzcGVjdGluZyBmaWxlIHF1ZXVlIHdoaWNoIHdpbGwgaW1wb3J0IGZpbGVzLCByZWFkaW5nIHRoZW0gZnJvbSB0aGUgZmlsZSBjYWNoZSBpZiBuZWVkZWQuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmVJbml0aWFsaXplciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgLyoqIE51bWJlciBvZiBjb25jdXJyZW50IG9wZXJhdGlvbnMgdGhlIGluaXRpYWxpemVyIHdpbGwgcGVyZm9ybS4gKi9cbiAgICBzdGF0aWMgQkFUQ0hfU0laRTogbnVtYmVyID0gODtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBpbml0aWFsaXplciBzaG91bGQgY29udGludWUgdG8gcnVuLiAqL1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcblxuICAgIC8qKiBRdWV1ZSBvZiBmaWxlcyB0byBzdGlsbCBpbXBvcnQuICovXG4gICAgcXVldWU6IFRGaWxlW107XG4gICAgLyoqIFRoZSBmaWxlcyBhY3RpdmVseSBiZWluZyBpbXBvcnRlZC4gKi9cbiAgICBjdXJyZW50OiBURmlsZVtdO1xuICAgIC8qKiBEZWZlcnJlZCBwcm9taXNlIHdoaWNoIHJlc29sdmVzIHdoZW4gaW1wb3J0aW5nIGlzIGRvbmUuICovXG4gICAgZG9uZTogRGVmZXJyZWQ8SW5pdGlhbGl6YXRpb25TdGF0cz47XG5cbiAgICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiB0YXJnZXQgZmlsZXMgdG8gaW1wb3J0LiAqL1xuICAgIHRhcmdldFRvdGFsOiBudW1iZXI7XG4gICAgLyoqIFRoZSB0aW1lIHRoYXQgaW5pdCBzdGFydGVkIGluIG1pbGxpc2Vjb25kcy4gKi9cbiAgICBzdGFydDogbnVtYmVyO1xuICAgIC8qKiBUb3RhbCBudW1iZXIgb2YgZmlsZXMgdG8gaW1wb3J0LiAqL1xuICAgIGZpbGVzOiBudW1iZXI7XG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBpbXBvcnRlZCBmaWxlcyBzbyBmYXIuICovXG4gICAgaW5pdGlhbGl6ZWQ6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGltcG9ydGVkIGZpbGVzLiAqL1xuICAgIGltcG9ydGVkOiBudW1iZXI7XG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBza2lwcGVkIGZpbGVzLiAqL1xuICAgIHNraXBwZWQ6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGNhY2hlZCBmaWxlcy4gKi9cbiAgICBjYWNoZWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb3JlOiBEYXRhY29yZSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucXVldWUgPSB0aGlzLmNvcmUudmF1bHQuZ2V0RmlsZXMoKTtcbiAgICAgICAgdGhpcy50YXJnZXRUb3RhbCA9IHRoaXMucXVldWUubGVuZ3RoO1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5xdWV1ZS5sZW5ndGg7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgdGhpcy5kb25lID0gZGVmZXJyZWQoKTtcblxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdGhpcy5pbXBvcnRlZCA9IHRoaXMuc2tpcHBlZCA9IHRoaXMuY2FjaGVkID0gMDtcbiAgICB9XG5cbiAgICBhc3luYyBvbmxvYWQoKSB7XG4gICAgICAgIC8vIFF1ZXVlIEJBVENIX1NJWkUgZWxlbWVudHMgZnJvbSB0aGUgcXVldWUgdG8gaW1wb3J0LlxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5ydW5OZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIFByb21pc2Ugd2hpY2ggcmVzb2x2ZXMgd2hlbiB0aGUgaW5pdGlhbGl6YXRpb24gY29tcGxldGVzLiAqL1xuICAgIGZpbmlzaGVkKCk6IFByb21pc2U8SW5pdGlhbGl6YXRpb25TdGF0cz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb25lO1xuICAgIH1cblxuICAgIC8qKiBDYW5jZWwgaW5pdGlhbGl6YXRpb24uICovXG4gICAgb251bmxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZG9uZS5yZWplY3QoXCJJbml0aWFsaXphdGlvbiB3YXMgY2FuY2VsbGVkIGJlZm9yZSBjb21wbGV0aW5nLlwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQb2xsIGZvciBhbm90aGVyIHRhc2sgdG8gZXhlY3V0ZSBmcm9tIHRoZSBxdWV1ZS4gKi9cbiAgICBwcml2YXRlIHJ1bk5leHQoKSB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgbWF4IG51bWJlciBvZiBjb25jdXJyZW50IG9wZXJhdGlvbnMgYWxyZWFkeSBydW5uaW5nLlxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlIHx8IHRoaXMuY3VycmVudC5sZW5ndGggPj0gRGF0YWNvcmVJbml0aWFsaXplci5CQVRDSF9TSVpFKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGVyZSBpcyBzcGFjZSBhdmFpbGFibGUgdG8gZXhlY3V0ZSBhbm90aGVyLlxuICAgICAgICBjb25zdCBuZXh0ID0gdGhpcy5xdWV1ZS5wb3AoKTtcbiAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudC5wdXNoKG5leHQpO1xuICAgICAgICAgICAgdGhpcy5pbml0KG5leHQpXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4gdGhpcy5oYW5kbGVSZXN1bHQobmV4dCwgcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKHJlc3VsdCkgPT4gdGhpcy5oYW5kbGVSZXN1bHQobmV4dCwgcmVzdWx0KSk7XG5cbiAgICAgICAgICAgIHRoaXMucnVuTmV4dCgpO1xuICAgICAgICB9IGVsc2UgaWYgKCFuZXh0ICYmIHRoaXMuY3VycmVudC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gQWxsIHdvcmsgaXMgZG9uZSwgcmVzb2x2ZS5cbiAgICAgICAgICAgIHRoaXMuZG9uZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbk1zOiBEYXRlLm5vdygpIC0gdGhpcy5zdGFydCxcbiAgICAgICAgICAgICAgICBmaWxlczogdGhpcy5maWxlcyxcbiAgICAgICAgICAgICAgICBpbXBvcnRlZDogdGhpcy5pbXBvcnRlZCxcbiAgICAgICAgICAgICAgICBza2lwcGVkOiB0aGlzLnNraXBwZWQsXG4gICAgICAgICAgICAgICAgY2FjaGVkOiB0aGlzLmNhY2hlZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFByb2Nlc3MgdGhlIHJlc3VsdCBvZiBhbiBpbml0aWFsaXphdGlvbiBhbmQgcXVldWUgbW9yZSBydW5zLiAqL1xuICAgIHByaXZhdGUgaGFuZGxlUmVzdWx0KGZpbGU6IFRGaWxlLCByZXN1bHQ6IEluaXRpYWxpemF0aW9uUmVzdWx0KSB7XG4gICAgICAgIHRoaXMuY3VycmVudC5yZW1vdmUoZmlsZSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQrKztcblxuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJza2lwcGVkXCIpIHRoaXMuc2tpcHBlZCsrO1xuICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImltcG9ydGVkXCIpIHRoaXMuaW1wb3J0ZWQrKztcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJjYWNoZWRcIikgdGhpcy5jYWNoZWQrKztcblxuICAgICAgICAvLyBRdWV1ZSBtb3JlIGpvYnMgZm9yIHByb2Nlc3NpbmcuXG4gICAgICAgIHRoaXMucnVuTmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBJbml0aWFsaXplIGEgc3BlY2lmaWMgZmlsZS4gKi9cbiAgICBwcml2YXRlIGFzeW5jIGluaXQoZmlsZTogVEZpbGUpOiBQcm9taXNlPEluaXRpYWxpemF0aW9uUmVzdWx0PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgbG9hZGluZyBtYXJrZG93biBmaWxlcyBmcm9tIGNhY2hlLlxuICAgICAgICAgICAgY29uc3QgY2FjaGVkID0gYXdhaXQgdGhpcy5jb3JlLnBlcnNpc3Rlci5sb2FkRmlsZShmaWxlLnBhdGgpO1xuICAgICAgICAgICAgaWYgKGNhY2hlZCAmJiBjYWNoZWQudGltZSA+PSBmaWxlLnN0YXQubXRpbWUgJiYgY2FjaGVkLnZlcnNpb24gPT0gdGhpcy5jb3JlLnZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS5leHRlbnNpb24gPT09IFwibWRcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gTWFya2Rvd25QYWdlLmZyb20oY2FjaGVkLmRhdGEgYXMgSnNvbk1hcmtkb3duUGFnZSwgKGxpbmspID0+IGxpbmspO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvcmUuc3RvcmVNYXJrZG93bihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcImNhY2hlZFwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEb2VzIG5vdCBtYXRjaCBhbiBleGlzdGluZyBpbXBvcnQgdHlwZSwganVzdCByZWxvYWQgbm9ybWFsbHkuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvcmUucmVsb2FkKGZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcImltcG9ydGVkXCIgfTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0YWNvcmU6IEZhaWxlZCB0byBpbXBvcnQgZmlsZTogXCIsIGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJza2lwcGVkXCIgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIFN0YXRpc3RpY3MgYWJvdXQgYSBzdWNjZXNzZnVsIHZhdWx0IGluaXRpYWxpemF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXphdGlvblN0YXRzIHtcbiAgICAvKiogSG93IGxvbmcgaW5pdGlhbGl6YXRvbiB0b29rIGluIG1pbGlzZWNvbmRzLiAqL1xuICAgIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGZpbGVzIHRoYXQgd2VyZSBpbXBvcnRlZCAqL1xuICAgIGZpbGVzOiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2YgZmlsZXMgdGhhdCB3ZXJlIGxvYWRlZCBhbmQgaW1wb3J0ZWQgdmlhIGJhY2tncm91bmQgd29ya2Vycy4gKi9cbiAgICBpbXBvcnRlZDogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGZpbGVzIHRoYXQgd2VyZSBza2lwcGVkIGR1ZSB0byBubyBsb25nZXIgZXhpc3Rpbmcgb3Igbm90IGJlaW5nIHJlYWR5LiAqL1xuICAgIHNraXBwZWQ6IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiBmaWxlcyBsb2FkZWQgZnJvbSB0aGUgSW5kZXhlZERCIGNhY2hlLiAqL1xuICAgIGNhY2hlZDogbnVtYmVyO1xufVxuXG4vKiogVGhlIHJlc3VsdCBvZiBpbml0aWFsaXppbmcgYSBmaWxlLiAqL1xuaW50ZXJmYWNlIEluaXRpYWxpemF0aW9uUmVzdWx0IHtcbiAgICBzdGF0dXM6IFwic2tpcHBlZFwiIHwgXCJpbXBvcnRlZFwiIHwgXCJjYWNoZWRcIjtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgaW5kZXhhYmxlc1xuICovXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgRklMRV9UWVBFLCBGaWxlLCBJbmRleGFibGUsIExJTktBQkxFX1RZUEUsIExpbmthYmxlIH0gZnJvbSBcIi4vaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgRXh0cmFjdG9ycywgRklFTERCRUFSSU5HX1RZUEUsIEZpZWxkRXh0cmFjdG9yLCBGaWVsZGJlYXJpbmcgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcblxuLyoqIERhdGFjb3JlIHJlcHJlc2VudGF0aW9uIG9mIGEgZ2VuZXJpYyBmaWxlIHdpdGggbm8gYWRkaXRpb25hbCBwYXJzaW5nLiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyaWNGaWxlIGltcGxlbWVudHMgRmlsZSwgSW5kZXhhYmxlLCBGaWVsZGJlYXJpbmcsIExpbmthYmxlIHtcbiAgICBzdGF0aWMgVFlQRVM6IHN0cmluZ1tdID0gW0ZJTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEUsIExJTktBQkxFX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IEdlbmVyaWNGaWxlLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJGaWxlXCI7XG5cbiAgICAkcGF0aDogc3RyaW5nO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgY3JlYXRlZC4gKi9cbiAgICAkY3RpbWU6IERhdGVUaW1lO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgbW9kaWZpZWQuICovXG4gICAgJG10aW1lOiBEYXRlVGltZTtcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgc2l6ZSBvZiB0aGlzIHBhZ2UgaW4gYnl0ZXMuICovXG4gICAgJHNpemU6IG51bWJlcjtcbiAgICAvKiogVGhlIGV4dGVuc2lvbiBvZiB0aGUgZmlsZS4gKi9cbiAgICAkZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogc3RyaW5nLCBjdGltZTogRGF0ZVRpbWUsIG10aW1lOiBEYXRlVGltZSwgc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuJHBhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLiRjdGltZSA9IGN0aW1lO1xuICAgICAgICB0aGlzLiRtdGltZSA9IG10aW1lO1xuICAgICAgICB0aGlzLiRzaXplID0gc2l6ZTtcblxuICAgICAgICBjb25zdCBsYXN0RG90ID0gcGF0aC5sYXN0SW5kZXhPZihcIi5cIik7XG4gICAgICAgIHRoaXMuJGV4dGVuc2lvbiA9IGxhc3REb3QgPCAwID8gXCJcIiA6IHBhdGguc3Vic3RyaW5nKGxhc3REb3QgKyAxKTtcbiAgICB9XG5cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gR2VuZXJpY0ZpbGUuRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gR2VuZXJpY0ZpbGUuRklFTERfREVGKHRoaXMsIGtleSk/LlswXTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkLiAqL1xuICAgIHB1YmxpYyB2YWx1ZShrZXk6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZChrZXkpPy52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogVW5pcXVlIElEIGZvciB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgJGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cblxuICAgIC8qKiBUaGUgZmlsZSBmb3IgdGhlIGZpbGUgaXMgdGhlIGZpbGUuICovXG4gICAgZ2V0ICRmaWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cblxuICAgIC8qKiBBIGxpbmsgdG8gdGhlIGZpbGUuICovXG4gICAgZ2V0ICRsaW5rKCk6IExpbmsge1xuICAgICAgICByZXR1cm4gTGluay5maWxlKHRoaXMuJHBhdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIEZJRUxEX0RFRjogRmllbGRFeHRyYWN0b3I8R2VuZXJpY0ZpbGU+ID0gRXh0cmFjdG9ycy5pbnRyaW5zaWNzKCk7XG59XG4iLCAiaW1wb3J0IHsgUXVldWUgfSBmcm9tIFwiQGRhdGFzdHJ1Y3R1cmVzLWpzL3F1ZXVlXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBURmlsZSwgVmF1bHQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IERlZmVycmVkLCBkZWZlcnJlZCB9IGZyb20gXCJ1dGlscy9kZWZlcnJlZFwiO1xuXG4vKiogUXVldWVzIHVwIGxvYWRzIG9mIGZpbGVzIHRvIHJlZHVjZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBsb2Fkcy4gKi9cbmV4cG9ydCBjbGFzcyBFbWJlZFF1ZXVlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAvKiogU2V0IG9mIHBlbmRpbmcgbG9hZHMuICovXG4gICAgcHJpdmF0ZSBxdWV1ZTogUXVldWU8VEZpbGU+ID0gbmV3IFF1ZXVlKCk7XG4gICAgLyoqIFNldCBvZiBwcm9taXNlcyB3YWl0aW5nIG9uIGVhY2ggcGF0aC4gKi9cbiAgICBwcml2YXRlIHByb21pc2VzOiBNYXA8c3RyaW5nLCBEZWZlcnJlZDxzdHJpbmc+W10+ID0gbmV3IE1hcCgpO1xuICAgIC8qKiBBY3RpdmUgc2V0IG9mIGxvYWRzLiAqL1xuICAgIHByaXZhdGUgYWN0aXZlOiBNYXA8c3RyaW5nLCBQcm9taXNlPHN0cmluZz4+ID0gbmV3IE1hcCgpO1xuICAgIC8qKiBJZiB0cnVlLCBwcmV2ZW50IGFueSBmdXJ0aGVyIGxvYWRzLiAqL1xuICAgIHByaXZhdGUgc2h1dGRvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgdmF1bHQ6IFZhdWx0LCBwdWJsaWMgY29uY3VycmVuY3k6ICgpID0+IG51bWJlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBSZWFkIGEgZmlsZSBhc3luY2hyb25vdXNseSwgY29udHJvbGxpbmcgY29uY3VycmVuY3kgdG8gcHJldmVudCB0b28gbWFueSBmaWxlcyBiZWluZyBsb2FkZWQgc2ltdWx0YW5lb3VzbHkuICovXG4gICAgcHVibGljIGFzeW5jIHJlYWQoZmlsZTogVEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5zaHV0ZG93bikgcmV0dXJuIFByb21pc2UucmVqZWN0KFwiRW1iZWQgcXVldWUgaXMgc2h1dGRvd24uXCIpO1xuXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBkZWZlcnJlZDxzdHJpbmc+KCk7XG5cbiAgICAgICAgLy8gSWYgd2UgYXJlbid0IGFscmVhZHkgaW4gdGhlIHF1ZXVlLCBhZGQgb3Vyc2VsdmVzIHRvIHF1ZXVlLiBPdGhlcndpc2UganVzdCBhcHBlbmQgb3V0c2VsZnMgdG8gdGhlIGludGVyZXN0ZWQgd2F0Y2hlciBmb3IgdGhlIHF1ZXVlLlxuICAgICAgICBpZiAoIXRoaXMucHJvbWlzZXMuaGFzKGZpbGUucGF0aCkpIHtcbiAgICAgICAgICAgIHRoaXMucXVldWUucHVzaChmaWxlKTtcbiAgICAgICAgICAgIHRoaXMucHJvbWlzZXMuc2V0KGZpbGUucGF0aCwgW3Byb21pc2VdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvbWlzZXMuZ2V0KGZpbGUucGF0aCkhLnB1c2gocHJvbWlzZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjaGVkdWxlKCk7XG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIC8qKiBTY2hlZHVsZSBtb3JlIGxvYWRzIGZyb20gdGhlIHF1ZXVlIGludG8gdGhlIGFjdGl2ZSBzZXQgaWYgdGhlcmUgaXMgYXZhaWxhYmxlIHNwYWNlLiAqL1xuICAgIHByaXZhdGUgc2NoZWR1bGUoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZS5zaXplIDwgdGhpcy5jb25jdXJyZW5jeSgpICYmIHRoaXMucXVldWUuc2l6ZSgpID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMucXVldWUucG9wKCkhO1xuXG4gICAgICAgICAgICBjb25zdCByZWFkID0gdGhpcy52YXVsdC5jYWNoZWRSZWFkKGZpbGUpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUuc2V0KGZpbGUucGF0aCwgcmVhZCk7XG5cbiAgICAgICAgICAgIHJlYWQudGhlbigoY29udGVudCkgPT4gdGhpcy5maW5pc2goZmlsZSwgUmVzdWx0LnN1Y2Nlc3MoY29udGVudCkpKS5jYXRjaCgoZXJyb3IpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5maW5pc2goZmlsZSwgUmVzdWx0LmZhaWx1cmUoZXJyb3IpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDb21tdW5pY2F0ZSB0aGUgcmVzdWx0IG9mIGEgbG9hZGVkIGZpbGUgYW5kIHRoZW4gc2NoZWR1bGUgbW9yZSBmaWxlcyB0byBiZSBsb2FkZWQuICovXG4gICAgcHJpdmF0ZSBmaW5pc2goZmlsZTogVEZpbGUsIHJlc3VsdDogUmVzdWx0PHN0cmluZywgYW55Pikge1xuICAgICAgICB0aGlzLmFjdGl2ZS5kZWxldGUoZmlsZS5wYXRoKTtcblxuICAgICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMucHJvbWlzZXMuZ2V0KGZpbGUucGF0aCkgPz8gW107XG4gICAgICAgIHRoaXMucHJvbWlzZXMuZGVsZXRlKGZpbGUucGF0aCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5mb3JFYWNoKChwcm9taXNlKSA9PiBwcm9taXNlLnJlc29sdmUocmVzdWx0LnZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9taXNlcy5mb3JFYWNoKChwcm9taXNlKSA9PiBwcm9taXNlLnJlamVjdChyZXN1bHQuZXJyb3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2NoZWR1bGUoKTtcbiAgICB9XG5cbiAgICAvKiogQ2FuY2VsbCBhbGwgb3V0c3RhbmRpbmcgbG9hZHMgb24gdW5sb2FkLiAqL1xuICAgIHB1YmxpYyBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gUmVqZWN0IGFsbCBvdXRzdGFuZGluZyBsb2Fkcy5cbiAgICAgICAgZm9yIChjb25zdCBwcm9taXNlcyBvZiB0aGlzLnByb21pc2VzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5mb3JFYWNoKChwcm9taXNlKSA9PiBwcm9taXNlLnJlamVjdChcIkVtYmVkIHF1ZXVlIGlzIHNodXR0aW5nIGRvd24uXCIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2h1dGRvd24gPSB0cnVlO1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgaW5kZXhhYmxlc1xuICovXG5pbXBvcnQgeyBFeHRyYWN0b3JzLCBGaWVsZCwgRmllbGRiZWFyaW5nLCBGSUVMREJFQVJJTkdfVFlQRSwgRmllbGRFeHRyYWN0b3IgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgRklMRV9UWVBFLCBJbmRleGFibGUsIExpbmthYmxlLCBMSU5LQUJMRV9UWVBFLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIFRBR0dBQkxFX1RZUEUgfSBmcm9tIFwiLi9pbmRleGFibGVcIjtcbmltcG9ydCB7XG4gICAgQ2FyZERpbWVuc2lvbnMsXG4gICAgQ2FyZFBvcyxcbiAgICBKc29uQmFzZUNhbnZhc0NhcmQsXG4gICAgSnNvbkNhbnZhcyxcbiAgICBKc29uQ2FudmFzQ2FyZCxcbiAgICBKc29uQ2FudmFzRmlsZUNhcmQsXG4gICAgSnNvbkNhbnZhc1RleHRDYXJkLFxuICAgIEpzb25DYW52YXNXZWJDYXJkLFxufSBmcm9tIFwiLi9qc29uL2NhbnZhc1wiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQge1xuICAgIEZyb250bWF0dGVyRW50cnksXG4gICAgTGlua05vcm1hbGl6ZXIsXG4gICAgTWFya2Rvd25TZWN0aW9uLFxuICAgIE5PT1BfTk9STUFMSVpFUixcbiAgICBub3JtYWxpemVMaW5rcyxcbiAgICB2YWx1ZUZyb250bWF0dGVyRW50cnksXG59IGZyb20gXCIuL21hcmtkb3duXCI7XG5pbXBvcnQgeyBJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQgeyBGaWxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIEEgY2FudmFzIGZpbGUsIGNvbnNpc3Rpbmcgb2YgYSBzZXQgb2YgY2FudmFzIGNhcmRzLiAqL1xuZXhwb3J0IGNsYXNzIENhbnZhcyBpbXBsZW1lbnRzIExpbmthYmxlLCBGaWxlLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEluZGV4YWJsZSwgRmllbGRiZWFyaW5nIHtcbiAgICBzdGF0aWMgVFlQRVMgPSBbRklMRV9UWVBFLCBcImNhbnZhc1wiLCBUQUdHQUJMRV9UWVBFLCBMSU5LQUJMRV9UWVBFLCBGSUVMREJFQVJJTkdfVFlQRV07XG5cbiAgICAkdHlwZXM6IHN0cmluZ1tdID0gQ2FudmFzLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJDYW52YXNcIjtcblxuICAgICRjdGltZTogRGF0ZVRpbWU7XG4gICAgJG10aW1lOiBEYXRlVGltZTtcblxuICAgICRleHRlbnNpb246IHN0cmluZyA9IFwiY2FudmFzXCI7XG5cbiAgICBnZXQgJGZpbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cblxuICAgIGdldCAkaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cblxuICAgIGdldCAkbGluaygpIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZSh0aGlzLiRwYXRoKTtcbiAgICB9XG5cbiAgICAkcGF0aDogc3RyaW5nO1xuICAgICRjYXJkczogQmFzZUNhbnZhc0NhcmRbXSA9IFtdO1xuICAgICRzaXplOiBudW1iZXIgPSAwO1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAkbGlua3M6IExpbmtbXTtcbiAgICAkaW5maWVsZHM6IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPjtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxDYW52YXM+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgZ2V0IGZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICAgICAgcmV0dXJuIENhbnZhcy5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpZWxkKGtleTogc3RyaW5nKTogRmllbGQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQ2FudmFzLkZJRUxEX0RFRih0aGlzLCBrZXkpPy5bMF07XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbkNhbnZhcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkY2FyZHM6IHRoaXMuJGNhcmRzLm1hcCgoeCkgPT4geC5qc29uKCkpIGFzIEpzb25DYW52YXNDYXJkW10sXG4gICAgICAgICAgICAkY3RpbWU6IHRoaXMuJGN0aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkbXRpbWU6IHRoaXMuJG10aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkc2l6ZTogdGhpcy4kc2l6ZSxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy4kbGlua3MsXG4gICAgICAgICAgICAkcGF0aDogdGhpcy4kcGF0aCxcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy4kaW5maWVsZHMsXG4gICAgICAgICAgICAkdGFnczogdGhpcy4kdGFncyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25DYW52YXMsIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyID0gTk9PUF9OT1JNQUxJWkVSKTogQ2FudmFzIHtcbiAgICAgICAgY29uc3QgY2FyZHMgPSByYXcuJGNhcmRzXG4gICAgICAgICAgICAubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChzLiR0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ0ZXh0LWNhcmRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYW52YXNUZXh0Q2FyZC5mcm9tKHMsIHJhdy4kcGF0aCwgbm9ybWFsaXplcik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJmaWxlLWNhcmRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYW52YXNGaWxlQ2FyZC5mcm9tKHMpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwid2ViLWNhcmRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYW52YXNXZWJDYXJkLmZyb20ocywgcmF3LiRwYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcigoeCk6IHggaXMgQ2FudmFzVGV4dENhcmQgPT4gISF4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBDYW52YXMoe1xuICAgICAgICAgICAgJGNhcmRzOiBjYXJkcyxcbiAgICAgICAgICAgICRjdGltZTogRGF0ZVRpbWUuZnJvbU1pbGxpcyhyYXcuJGN0aW1lKSxcbiAgICAgICAgICAgICRtdGltZTogRGF0ZVRpbWUuZnJvbU1pbGxpcyhyYXcuJG10aW1lKSxcbiAgICAgICAgICAgICRzaXplOiByYXcuJHNpemUsXG4gICAgICAgICAgICAkZXh0ZW5zaW9uOiBcImNhbnZhc1wiLFxuICAgICAgICAgICAgJHBhdGg6IHJhdy4kcGF0aCxcbiAgICAgICAgICAgICRsaW5rczogcmF3LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkaW5maWVsZHM6IHJhdy4kaW5maWVsZHMsXG4gICAgICAgICAgICAkdGFnczogcmF3LiR0YWdzLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBzdGF0aWMgRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxDYW52YXM+ID0gRXh0cmFjdG9ycy5tZXJnZShcbiAgICAgICAgRXh0cmFjdG9ycy5pbmxpbmVGaWVsZHMoKGYpID0+IGYuJGluZmllbGRzKSxcbiAgICAgICAgRXh0cmFjdG9ycy5pbnRyaW5zaWNzKClcbiAgICApO1xufVxuXG4vKiogQWxsIHN1cHBvcnRlZCBjYW52YXMgY2FyZCB0eXBlcy4gKi9cbmV4cG9ydCB0eXBlIENhbnZhc0NhcmQgPSBDYW52YXNUZXh0Q2FyZCB8IENhbnZhc0ZpbGVDYXJkIHwgQ2FudmFzV2ViQ2FyZDtcblxuLyoqIFNoYXJlZCBtZXRhZGF0YSBmb3IgYWxsIGNhbnZhcyBjYXJkcy4gKi9cbmFic3RyYWN0IGNsYXNzIEJhc2VDYW52YXNDYXJkIGltcGxlbWVudHMgSW5kZXhhYmxlLCBMaW5rYWJsZSB7XG4gICAgYWJzdHJhY3QgJHR5cGVzOiBzdHJpbmdbXTtcbiAgICBhYnN0cmFjdCAkdHlwZW5hbWU6IHN0cmluZztcbiAgICBhYnN0cmFjdCByZWFkb25seSAkdHlwZTogc3RyaW5nO1xuXG4gICAgJHJldmlzaW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRwb3NpdGlvbjogQ2FyZFBvcztcbiAgICAkZGltZW5zaW9uczogQ2FyZERpbWVuc2lvbnM7XG4gICAgJHBhcmVudD86IEluZGV4YWJsZTtcbiAgICAkZmlsZTogc3RyaW5nO1xuICAgICRjb2xvcj86IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPEJhc2VDYW52YXNDYXJkPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgIH1cblxuICAgIGdldCAkbGluaygpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZSh0aGlzLiRmaWxlKS53aXRoQmxvY2sodGhpcy4kaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25CYXNlQ2FudmFzQ2FyZCB7XG4gICAgICAgIGNvbnN0IHsgJGlkLCAkcG9zaXRpb24sICRjb2xvciwgJGRpbWVuc2lvbnMsICRmaWxlLCAkbGluayB9ID0gdGhpcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRpZCxcbiAgICAgICAgICAgICRwb3NpdGlvbixcbiAgICAgICAgICAgICRjb2xvcixcbiAgICAgICAgICAgICRkaW1lbnNpb25zLFxuICAgICAgICAgICAgJGZpbGUsXG4gICAgICAgICAgICAkbGluazogJGxpbmsudG9PYmplY3QoKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKiBDYW52YXMgY2FyZCB3aXRoIG1hcmtkb3duIHRleHQgaW4gaXQuICovXG5leHBvcnQgY2xhc3MgQ2FudmFzVGV4dENhcmQgZXh0ZW5kcyBCYXNlQ2FudmFzQ2FyZCBpbXBsZW1lbnRzIExpbmtiZWFyaW5nLCBUYWdnYWJsZSwgSW5kZXhhYmxlLCBGaWVsZGJlYXJpbmcge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcImNhbnZhcy1jYXJkXCIsIFwibWFya2Rvd25cIiwgXCJjYW52YXMtdGV4dC1jYXJkXCIsIFRBR0dBQkxFX1RZUEUsIExJTktBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBDYW52YXNUZXh0Q2FyZC5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiVGV4dCBDYXJkXCI7XG4gICAgJHR5cGU6IHN0cmluZyA9IFwiY2FudmFzLWNhcmRcIjtcbiAgICAkaWQ6IHN0cmluZztcblxuICAgICRmaWxlOiBzdHJpbmc7XG4gICAgJGxpbmtzOiBMaW5rW107XG4gICAgJHRhZ3M6IHN0cmluZ1tdO1xuICAgICR0aXRsZTogc3RyaW5nO1xuICAgICRwYXJlbnQ/OiBJbmRleGFibGU7XG4gICAgJHJldmlzaW9uPzogbnVtYmVyO1xuICAgICRpbmZpZWxkczogUmVjb3JkPHN0cmluZywgSW5saW5lRmllbGQ+O1xuICAgICRmcm9udG1hdHRlcj86IFJlY29yZDxzdHJpbmcsIEZyb250bWF0dGVyRW50cnk+O1xuXG4gICAgJGRpbWVuc2lvbnM6IENhcmREaW1lbnNpb25zO1xuICAgICRzZWN0aW9uczogTWFya2Rvd25TZWN0aW9uW107XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8Q2FudmFzVGV4dENhcmQ+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cblxuICAgIGdldCBmaWVsZHMoKTogRmllbGRbXSB7XG4gICAgICAgIHJldHVybiBDYW52YXNUZXh0Q2FyZC5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpZWxkKGtleTogc3RyaW5nKTogRmllbGQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQ2FudmFzVGV4dENhcmQuRklFTERfREVGKHRoaXMsIGtleSk/LlswXTtcbiAgICB9XG5cbiAgICBwdWJsaWMganNvbigpOiBKc29uQ2FudmFzVGV4dENhcmQge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdXBlci5qc29uKCksIHtcbiAgICAgICAgICAgICRpbmZpZWxkczogdGhpcy4kaW5maWVsZHMsXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMuJGxpbmtzLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMuJHRhZ3MsXG4gICAgICAgICAgICAkdHlwZTogXCJ0ZXh0LWNhcmRcIixcbiAgICAgICAgICAgICRzZWN0aW9uczogdGhpcy4kc2VjdGlvbnMubWFwKChhKSA9PiBhLmpzb24oKSksXG4gICAgICAgIH0pIGFzIEpzb25DYW52YXNUZXh0Q2FyZDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25DYW52YXNUZXh0Q2FyZCwgZmlsZTogc3RyaW5nLCBub3JtYWxpemVyOiBMaW5rTm9ybWFsaXplciA9IE5PT1BfTk9STUFMSVpFUikge1xuICAgICAgICBsZXQgJHNlY3Rpb25zID0gcmF3LiRzZWN0aW9ucy5tYXAoKHMpID0+IE1hcmtkb3duU2VjdGlvbi5mcm9tKHMsIGZpbGUsIG5vcm1hbGl6ZXIpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBDYW52YXNUZXh0Q2FyZCh7XG4gICAgICAgICAgICAkZmlsZTogZmlsZSxcbiAgICAgICAgICAgICRpZDogcmF3LiRpZCxcbiAgICAgICAgICAgICRzZWN0aW9ucyxcbiAgICAgICAgICAgICRsaW5rczogcmF3LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkZGltZW5zaW9uczogcmF3LiRkaW1lbnNpb25zLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiByYXcuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJGZyb250bWF0dGVyOiByYXcuJGZyb250bWF0dGVyXG4gICAgICAgICAgICAgICAgPyBtYXBPYmplY3RWYWx1ZXMocmF3LiRmcm9udG1hdHRlciwgKGZtKSA9PiBub3JtYWxpemVMaW5rcyh2YWx1ZUZyb250bWF0dGVyRW50cnkoZm0pLCBub3JtYWxpemVyKSlcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICRpbmZpZWxkczogcmF3LiRpbmZpZWxkcyxcbiAgICAgICAgICAgICR0YWdzOiByYXcuJHRhZ3MsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPENhbnZhc1RleHRDYXJkPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpLFxuICAgICAgICBFeHRyYWN0b3JzLmZyb250bWF0dGVyKChmKSA9PiBmLiRmcm9udG1hdHRlcilcbiAgICApO1xufVxuXG4vKiogQ2FudmFzIGNhcmQgdGhhdCBpcyBqdXN0IGEgZmlsZSBlbWJlZGRpbmcuICovXG5leHBvcnQgY2xhc3MgQ2FudmFzRmlsZUNhcmQgZXh0ZW5kcyBCYXNlQ2FudmFzQ2FyZCBpbXBsZW1lbnRzIEluZGV4YWJsZSB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wiY2FudmFzLWNhcmRcIiwgXCJtYXJrZG93blwiLCBcImNhbnZhcy1maWxlLWNhcmRcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IENhbnZhc1RleHRDYXJkLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJGaWxlIENhcmRcIjtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxDYW52YXNGaWxlQ2FyZD4pIHtcbiAgICAgICAgc3VwZXIoaW5pdCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgJHR5cGU6IHN0cmluZyA9IFwiZmlsZS1jYXJkXCI7XG4gICAgJGxpbmtlZEZpbGU6IHN0cmluZztcblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25DYW52YXNGaWxlQ2FyZCB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN1cGVyLmpzb24oKSwge1xuICAgICAgICAgICAgJGxpbmtlZEZpbGU6IHRoaXMuJGxpbmtlZEZpbGUsXG4gICAgICAgICAgICAkdHlwZTogXCJmaWxlLWNhcmRcIixcbiAgICAgICAgfSkgYXMgSnNvbkNhbnZhc0ZpbGVDYXJkO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tKHJhdzogSnNvbkNhbnZhc0ZpbGVDYXJkKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FudmFzRmlsZUNhcmQoe1xuICAgICAgICAgICAgJGZpbGU6IHJhdy4kZmlsZSxcbiAgICAgICAgICAgICRpZDogcmF3LiRpZCxcbiAgICAgICAgICAgICRwb3NpdGlvbjogcmF3LiRwb3NpdGlvbixcbiAgICAgICAgICAgICRkaW1lbnNpb25zOiByYXcuJGRpbWVuc2lvbnMsXG4gICAgICAgICAgICAkbGlua2VkRmlsZTogcmF3LiRsaW5rZWRGaWxlLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYW52YXNXZWJDYXJkIGV4dGVuZHMgQmFzZUNhbnZhc0NhcmQgaW1wbGVtZW50cyBJbmRleGFibGUge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcImNhbnZhcy1jYXJkXCIsIFwibWFya2Rvd25cIiwgXCJjYW52YXMtd2ViLWNhcmRcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IENhbnZhc1RleHRDYXJkLlRZUEVTO1xuICAgIHJlYWRvbmx5ICR0eXBlOiBzdHJpbmcgPSBcIndlYi1jYXJkXCI7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIldlYiBDYXJkXCI7XG5cbiAgICAkdXJsOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8Q2FudmFzV2ViQ2FyZD4pIHtcbiAgICAgICAgc3VwZXIoaW5pdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbkNhbnZhc1dlYkNhcmQge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdXBlci5qc29uKCksIHtcbiAgICAgICAgICAgICR1cmw6IHRoaXMuJHVybCxcbiAgICAgICAgICAgICR0eXBlOiBcIndlYi1jYXJkXCIsXG4gICAgICAgIH0pIGFzIEpzb25DYW52YXNXZWJDYXJkO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tKHJhdzogSnNvbkNhbnZhc1dlYkNhcmQsIGZpbGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gbmV3IENhbnZhc1dlYkNhcmQoe1xuICAgICAgICAgICAgJGRpbWVuc2lvbnM6IHJhdy4kZGltZW5zaW9ucyxcbiAgICAgICAgICAgICRwb3NpdGlvbjogcmF3LiRwb3NpdGlvbixcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiByYXcuJGlkLFxuICAgICAgICAgICAgJHVybDogcmF3LiR1cmwsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsICIvKiogQWxsIGRhdGFjb3JlIHNldHRpbmdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5ncyB7XG4gICAgLyoqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0aGUgaW1wb3J0ZXIgd2lsbCB1c2UgZm9yIGltcG9ydGluZy4gKi9cbiAgICBpbXBvcnRlck51bVRocmVhZHM6IG51bWJlcjtcbiAgICAvKiogVGhlIENQVSB1dGlsaXphdGlvbiAoYmV0d2VlbiAwLjEgYW5kIDEuMCkgdGhhdCBpbXBvcnRlciB0aHJlYWRzIHNob3VsZCB1c2UuICovXG4gICAgaW1wb3J0ZXJVdGlsaXphdGlvbjogbnVtYmVyO1xuXG4gICAgLyoqIEFyZSBKUyB2aWV3cyBlbmFibGVkPyAqL1xuICAgIGVuYWJsZUpzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB2aWV3cyBhcmUgcGFnZWQgYnkgZGVmYXVsdC4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLFxuICAgICAqIHNpbmNlIHNob3dpbmcgaHVuZHJlZHMgb3IgdGhvdXNhbmRzIG9mIHJlc3VsdHMgY2FuIGJlIGZhaXJseSBzbG93IVxuICAgICAqL1xuICAgIGRlZmF1bHRQYWdpbmdFbmFibGVkOiBib29sZWFuO1xuICAgIC8qKiBEZWZhdWx0IHBhZ2luZyBzaXplIGZvciBhbGwgdmlld3MgKG51bWJlciBvZiBlbnRyaWVzIHBlciBwYWdlLikgKi9cbiAgICBkZWZhdWx0UGFnZVNpemU6IG51bWJlcjtcbiAgICAvKiogSWYgc2V0LCB2aWV3cyB3aWxsIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSB2aWV3IG9uIHBhZ2UgY2hhbmdlcy4gKi9cbiAgICBzY3JvbGxPblBhZ2VDaGFuZ2U6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGRlcHRoIHRoYXQgb2JqZWN0cyB3aWxsIGJlIHJlbmRlcmVkIHRvIChpLmUuLCBob3cgbWFueSBsZXZlbHMgb2Ygc3VicHJvcGVydGllc1xuICAgICAqIHdpbGwgYmUgcmVuZGVyZWQgYnkgZGVmYXVsdCkuIFRoaXMgYXZvaWRzIGluZmluaXRlIHJlY3Vyc2lvbiBkdWUgdG8gc2VsZiByZWZlcmVudGlhbCBvYmplY3RzXG4gICAgICogYW5kIGFsc28gZW5zdXJlcyB0aGF0IHJlbmRlcmluZyBvYmplY3RzIGlzIGFjY2VwdGFibHkgcGVyZm9ybWFudC5cbiAgICAgKi9cbiAgICBtYXhSZWN1cnNpdmVSZW5kZXJEZXB0aDogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSBkZWZhdWx0IGZvcm1hdCB0aGF0IGRhdGVzIGFyZSByZW5kZXJlZCBpbiAodXNpbmcgbHV4b24ncyBtb21lbnQtbGlrZSBmb3JtYXR0aW5nKS4gKi9cbiAgICBkZWZhdWx0RGF0ZUZvcm1hdDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBmb3JtYXQgdGhhdCBkYXRlLXRpbWVzIGFyZSByZW5kZXJlZCBpbiAodXNpbmcgbHV4b25zIG1vbWVudC1saWtlIGZvcm1hdHRpbmcpLiAqL1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuICAgIC8qKiBNYXJrZG93biB0ZXh0IGZvciBob3cgdG8gcmVuZGVyIG51bGwgdmFsdWVzIGluIHRhYmxlcyBvciBzaW1pbGFyLiAqL1xuICAgIHJlbmRlck51bGxBczogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gaW5kZXggaW5saW5lIGZpZWxkcyBieSBkZWZhdWx0LiBJbmxpbmUgZmllbGQgcGFyc2luZyByZXF1aXJlcyBhIGZ1bGwgc2NhbiBvZiB0aGUgZG9jdW1lbnQsIHdoaWNoIGNhbiBtYWtlIGluZGV4aW5nIHRha2UgMi0zeCBsb25nZXIuICovXG4gICAgaW5kZXhJbmxpbmVGaWVsZHM6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0byBpbmRleCBsaXN0IGFuZCB0YXNrIGl0ZW0gdGV4dCBhbmQgc3RhdGVzLiBJbmRleGluZyBsaXN0cyAmIHRhc2tzIHJlcXVpcmVzIHNvbWUgYWRkaXRpb25hbCByZWdleCBwYXJzaW5nIHdoaWNoIG1ha2VzIGluZGV4aW5nIG1vZGVzdGx5IHNsb3dlci4gKi9cbiAgICBpbmRleExpc3RJdGVtczogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGNoZWNrIHRhc2sgaXRlbXMgb2ZmIHJlY3Vyc2l2ZWx5IGluIGRhdGFjb3JlIHZpZXdzICovXG4gICAgcmVjdXJzaXZlVGFza0NvbXBsZXRpb246IGJvb2xlYW47XG5cbiAgICAvKiogTmFtZSBvZiB0aGUgaW5saW5lIGZpZWxkIGluIHdoaWNoIHRvIHN0b3JlIGNvbXBsZXRpb24gZGF0ZS90aW1lICovXG4gICAgdGFza0NvbXBsZXRpb25UZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogSWYgZW5hYmxlZCwgYXV0b21hdGljIGNvbXBsZXRpb25zIHdpbGwgdXNlIGVtb2ppIHNob3J0aGFuZCBcdTI3MDUgWVlZWS1NTS1ERCBpbnN0ZWFkIG9mIFtjb21wbGV0aW9uOjogZGF0ZV0uICovXG4gICAgdGFza0NvbXBsZXRpb25Vc2VFbW9qaVNob3J0aGFuZDogYm9vbGVhbjtcbn1cblxuLyoqIERlZmF1bHQgc2V0dGluZ3MgZm9yIHRoZSBwbHVnaW4uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogUmVhZG9ubHk8U2V0dGluZ3M+ID0gT2JqZWN0LmZyZWV6ZTxTZXR0aW5ncz4oe1xuICAgIGltcG9ydGVyTnVtVGhyZWFkczogMixcbiAgICBpbXBvcnRlclV0aWxpemF0aW9uOiAwLjc1LFxuXG4gICAgZW5hYmxlSnM6IGZhbHNlLFxuXG4gICAgZGVmYXVsdFBhZ2luZ0VuYWJsZWQ6IHRydWUsXG4gICAgZGVmYXVsdFBhZ2VTaXplOiA1MCxcbiAgICBzY3JvbGxPblBhZ2VDaGFuZ2U6IGZhbHNlLFxuXG4gICAgbWF4UmVjdXJzaXZlUmVuZGVyRGVwdGg6IDUsXG5cbiAgICBkZWZhdWx0RGF0ZUZvcm1hdDogXCJNTU1NIGRkLCB5eXl5XCIsXG4gICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0OiBcImg6bW0gYSAtIE1NTU0gZGQsIHl5eXlcIixcblxuICAgIHJlbmRlck51bGxBczogXCItXCIsXG5cbiAgICBpbmRleElubGluZUZpZWxkczogdHJ1ZSxcbiAgICBpbmRleExpc3RJdGVtczogdHJ1ZSxcbiAgICByZWN1cnNpdmVUYXNrQ29tcGxldGlvbjogZmFsc2UsXG4gICAgdGFza0NvbXBsZXRpb25UZXh0OiBcImNvbXBsZXRlZEF0XCIsXG4gICAgdGFza0NvbXBsZXRpb25Vc2VFbW9qaVNob3J0aGFuZDogZmFsc2UsXG59KTtcbiIsICJpbXBvcnQgeyBkZWJvdW5jZSwgSXRlbVZpZXcsIE1hcmtkb3duUmVuZGVyQ2hpbGQsIE1lbnUsIFZpZXdTdGF0ZVJlc3VsdCwgV29ya3NwYWNlTGVhZiB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgU2NyaXB0TGFuZ3VhZ2UgfSBmcm9tIFwidXRpbHMvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgRGF0YWNvcmVKU1JlbmRlcmVyLCBSZWFjdFJlbmRlcmVyIH0gZnJvbSBcIi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgRGF0YWNvcmVMb2NhbEFwaSB9IGZyb20gXCJhcGkvbG9jYWwtYXBpXCI7XG5pbXBvcnQgeyBEYXRhY29yZUFwaSB9IGZyb20gXCJhcGkvYXBpXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgR3JvdXAsIFN0YWNrIH0gZnJvbSBcImFwaS91aS9sYXlvdXRcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IFRleHRib3gsIFZhbmlsbGFTZWxlY3QgfSBmcm9tIFwiYXBpL3VpL2Jhc2ljc1wiO1xuaW1wb3J0IHsgdXNlSW5kZXhVcGRhdGVzIH0gZnJvbSBcIi4vaG9va3NcIjtcbmltcG9ydCB7IERBVEFDT1JFX0NPTlRFWFQsIEVycm9yTWVzc2FnZSB9IGZyb20gXCIuL21hcmtkb3duXCI7XG5pbXBvcnQgU2VsZWN0IGZyb20gXCJyZWFjdC1zZWxlY3RcIjtcblxuLyoqIEtleSBmb3IgZGF0YWNvcmUgSlMgcXVlcnkgdmlld3MuICovXG5leHBvcnQgY29uc3QgVklFV19UWVBFX0RBVEFDT1JFSlMgPSBcImRhdGFjb3JlanMtdmlld1wiO1xuXG4vKiogU3RvcmVzIHRoZSBjdXJyZW50IE9ic2lkaWFuIHZpZXcgb2JqZWN0LCBzbyBpdCBjYW4gYmUgbWFuaXB1bGF0ZWQgZnJvbSByZWFjdC4gKi9cbmNvbnN0IENVU1RPTV9WSUVXX0NPTlRFWFQgPSBjcmVhdGVDb250ZXh0PERhdGFjb3JlUXVlcnlWaWV3Pih1bmRlZmluZWQhKTtcblxuLyoqIFByb3ZpZGVzIG9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGEgZGF0YWNvcmUgdmlldyBwYW5lLiAqL1xuZnVuY3Rpb24gRGF0YWNvcmVWaWV3U2V0dGluZ3MoKSB7XG4gICAgY29uc3QgdmlldyA9IHVzZUNvbnRleHQoQ1VTVE9NX1ZJRVdfQ09OVEVYVCkgYXMgRGF0YWNvcmVRdWVyeVZpZXc7XG4gICAgY29uc3Qgc2V0Vmlld1N0YXRlID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gZGVib3VuY2UoKHN0YXRlOiBQYXJ0aWFsPERhdGFjb3JlVmlld1N0YXRlPikgPT4gdmlldy5zZXRTdGF0ZShzdGF0ZSwgeyBoaXN0b3J5OiBmYWxzZSB9KSwgNTAwKSxcbiAgICAgICAgW3ZpZXddXG4gICAgKTtcblxuICAgIGNvbnN0IFtsb2NhbFN0YXRlLCBzZXRMb2NhbFN0YXRlXSA9IHVzZVN0YXRlKHZpZXcuZ2V0U3RhdGUoKSk7XG4gICAgY29uc3Qgc2V0U3RhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKHN0YXRlOiBQYXJ0aWFsPERhdGFjb3JlVmlld1N0YXRlPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmluYWxTdGF0ZSA9IHsgLi4ubG9jYWxTdGF0ZSwgLi4uc3RhdGUgfTtcbiAgICAgICAgICAgIC8vIE5vdCBkZWJvdW5jZWQuXG4gICAgICAgICAgICBzZXRMb2NhbFN0YXRlKGZpbmFsU3RhdGUpO1xuXG4gICAgICAgICAgICAvLyBEZWJvdW5jZWQuXG4gICAgICAgICAgICBzZXRWaWV3U3RhdGUoZmluYWxTdGF0ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtsb2NhbFN0YXRlLCBzZXRMb2NhbFN0YXRlLCB2aWV3XVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8U3RhY2sgYWxpZ249XCJzdHJldGNoXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImNsaWNrYWJsZS1pY29uXCIgc3R5bGU9XCJhbGlnbi1zZWxmOiBzdGFydFwiIG9uQ2xpY2s9eygpID0+IHZpZXcudmlldyhcInNjcmlwdFwiKX0+XG4gICAgICAgICAgICAgICAge0JBQ0tfQlVUVE9OfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8R3JvdXAganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxoNj5WaWV3IFRpdGxlPC9oNj5cbiAgICAgICAgICAgICAgICA8VGV4dGJveFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3ZpZXcuZ2V0U3RhdGUoKS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTdGF0ZSh7IHRpdGxlOiBlLmN1cnJlbnRUYXJnZXQudmFsdWUgYXMgc3RyaW5nIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgPEdyb3VwIGp1c3RpZnk9XCJzcGFjZS1iZXR3ZWVuXCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDY+VmlldyBUeXBlPC9oNj5cbiAgICAgICAgICAgICAgICA8VmFuaWxsYVNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3ZpZXcuZ2V0U3RhdGUoKS5zb3VyY2VUeXBlfVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtMQU5HVUFHRV9PUFRJT05TfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bG9jYWxTdGF0ZS5zb3VyY2VUeXBlfVxuICAgICAgICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlPXsocykgPT4gc2V0U3RhdGUoeyBzb3VyY2VUeXBlOiBzIGFzIFNjcmlwdExhbmd1YWdlIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgPEdyb3VwIGp1c3RpZnk9XCJzcGFjZS1iZXR3ZWVuXCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDY+U2NyaXB0L1ZpZXcgc291cmNlPC9oNj5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgcmVzaXplOiBcInZlcnRpY2FsXCIsIG1pbldpZHRoOiBcIjc1JVwiLCBmb250RmFtaWx5OiBcIm1vbm9zcGFjZVwiIH19XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17bG9jYWxTdGF0ZS5zY3JpcHR9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbFN0YXRlLnNjcmlwdH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTdGF0ZSh7IHNjcmlwdDogZS5jdXJyZW50VGFyZ2V0LnZhbHVlIGFzIHN0cmluZyB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgICAgIDxHcm91cCBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgICAgICA8aDY+Q3VycmVudCBGaWxlPC9oNj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlRoZSBwYXRoIHJldHVybmVkIGJ5IGZ1bmN0aW9ucyBsaWtlIGB1c2VDdXJyZW50UGF0aGAgaW4gdGhpcyB2aWV3PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWluV2lkdGg6IFwiNTAlXCIgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxDdXJyZW50RmlsZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2xvY2FsU3RhdGUuY3VycmVudEZpbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHYpID0+IHNldFN0YXRlKHsgY3VycmVudEZpbGU6IHYgfSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICA8L1N0YWNrPlxuICAgICk7XG59XG5cbi8qKiBSZWFjdCBjb21wb25lbnQgZm9yIGFzeW5jaHJvbm91c2x5IHNob3dpbmcgdGhlIGFjdGl2ZSBzZXQgb2YgY3VycmVudCBmaWxlcyB0byBzZWxlY3Qgb25lIGZyb20uICovXG5mdW5jdGlvbiBDdXJyZW50RmlsZVNlbGVjdG9yKHtcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgb25DaGFuZ2UsXG59OiB7XG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbn0pIHtcbiAgICBjb25zdCBjb3JlID0gdXNlQ29udGV4dChEQVRBQ09SRV9DT05URVhUKTtcbiAgICBjb25zdCByZXZpc2lvbiA9IHVzZUluZGV4VXBkYXRlcyhjb3JlLCB7IGRlYm91bmNlOiAyMDAwIH0pO1xuXG4gICAgLy8gQ2FjaGVkIGxpc3Qgb2YgcmVsZXZhbnQgZmlsZXMsIHdoaWNoIGlzIG9ubHkgcmVjb21wdXRlZCBvbiB2YXVsdCBjaGFuZ2VzLlxuICAgIGNvbnN0IG9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvcmUudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLm1hcCgoZikgPT4gKHsgbGFiZWw6IGYucGF0aCwgdmFsdWU6IGYucGF0aCB9KSk7XG4gICAgfSwgW3JldmlzaW9uXSk7XG5cbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uID0gZGVmYXVsdFZhbHVlXG4gICAgICAgID8geyBsYWJlbDogXCJObyBmaWxlXCIsIHZhbHVlOiB1bmRlZmluZWQgfVxuICAgICAgICA6IHsgbGFiZWw6IGRlZmF1bHRWYWx1ZSwgdmFsdWU6IGRlZmF1bHRWYWx1ZSB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD1cImRhdGFjb3JlLXNlbGVjdGFibGVcIlxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0T3B0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhudiwgX2FtKSA9PiBvbkNoYW5nZShudj8udmFsdWUpfVxuICAgICAgICAgICAgdW5zdHlsZWRcbiAgICAgICAgLz5cbiAgICApO1xufVxuXG4vKiogU2VsZWN0YWJsZSBvcHRpb25zIGZvciBwaWNraW5nIHdoaWNoIGxhbmd1YWdlIHRvIGV4ZWN1dGUgdGhlIHNjcmlwdCBpbi4gKi9cbmNvbnN0IExBTkdVQUdFX09QVElPTlM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IFNjcmlwdExhbmd1YWdlIH1bXSA9IFtcbiAgICB7IGxhYmVsOiBcIkphdmFzY3JpcHRcIiwgdmFsdWU6IFwianNcIiB9LFxuICAgIHsgbGFiZWw6IFwiVHlwZXNjcmlwdFwiLCB2YWx1ZTogXCJ0c1wiIH0sXG4gICAgeyBsYWJlbDogXCJKYXZhc2NyaXB0IChKU1gpXCIsIHZhbHVlOiBcImpzeFwiIH0sXG4gICAgeyBsYWJlbDogXCJUeXBlc2NyaXB0IEpTWFwiLCB2YWx1ZTogXCJ0c3hcIiB9LFxuXTtcblxuLyoqIFNWRyBiYWNrIGJ1dHRvbiBzaG93biB0byBleGl0IHRoZSBzZXR0aW5ncyB2aWV3LiAqL1xuY29uc3QgQkFDS19CVVRUT04gPSAoXG4gICAgPHN2Z1xuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGNsYXNzPVwic3ZnLWljb24gbHVjaWRlLWFycm93LWxlZnRcIlxuICAgID5cbiAgICAgICAgPHBhdGggZD1cIm0xMiAxOS03LTcgNy03XCI+PC9wYXRoPlxuICAgICAgICA8cGF0aCBkPVwiTTE5IDEySDVcIj48L3BhdGg+XG4gICAgPC9zdmc+XG4pO1xuXG4vKiogU3RhdGUgZm9yIHRoZSBkYXRhY29yZSB2aWV3IHBhZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFjb3JlVmlld1N0YXRlIHtcbiAgICAvKiogQ3VzdG9tIHRpdGxlIGZvciB0aGUgdmlldyBwYW5lLiAqL1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIC8qKiBMYW5ndWFnZSB0aGF0IHRoZSBzY3JpcHQgd2lsbCBiZSBleGVjdXRlZCBpbi4gKi9cbiAgICBzb3VyY2VUeXBlPzogU2NyaXB0TGFuZ3VhZ2U7XG4gICAgLyoqIElmIGRlZmluZWQsIHRoZSBmaWxlIHRoZSB2aWV3IHdpbGwgYmUgcmVsYXRpdmUgdG8uICovXG4gICAgY3VycmVudEZpbGU/OiBzdHJpbmc7XG4gICAgLyoqIENvbnRlbnRzIG9mIHRoZSBzY3JpcHQuICovXG4gICAgc2NyaXB0Pzogc3RyaW5nO1xuICAgIC8qKiBUaGUgY3VycmVudCB2aWV3OyBkZWZhdWx0cyB0byAnc2V0dGluZ3MnIGZvciBpbml0aWFsaXphdGlvbi4gKi9cbiAgICB2aWV3PzogXCJzZXR0aW5nc1wiIHwgXCJzY3JpcHRcIjtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFjb3JlUXVlcnlWaWV3IGV4dGVuZHMgSXRlbVZpZXcge1xuICAgIC8qKiBJbnRlcm5hbCBjdXJyZW50IHN0YXRlIG9mIHRoZSB2aWV3OyBjYW4gYmUgbW9kaWZpZWQgYnkgc2V0U3RhdGUuICovXG4gICAgcHVibGljIGludGVybmFsU3RhdGU6IERhdGFjb3JlVmlld1N0YXRlID0ge1xuICAgICAgICB0aXRsZTogXCJOZXcgdmlld1wiLFxuICAgICAgICBzY3JpcHQ6IFwiXCIsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwianNcIixcbiAgICAgICAgdmlldzogXCJzZXR0aW5nc1wiLFxuICAgIH07XG5cbiAgICAvKiogVGhlIGN1cnJlbnQgYWN0aXZlIHZpZXcgLSBlaXRoZXIgdGhlIHNldHRpbmdzIHZpZXcgKi9cbiAgICBwcml2YXRlIGFjdGl2ZVZpZXc6IE1hcmtkb3duUmVuZGVyQ2hpbGQ7XG4gICAgcHJpdmF0ZSBhY3RpdmVWaWV3VHlwZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IobGVhZjogV29ya3NwYWNlTGVhZiwgcHVibGljIGFwaTogRGF0YWNvcmVBcGkpIHtcbiAgICAgICAgc3VwZXIobGVhZik7XG4gICAgICAgIHRoaXMucmVyZW5kZXIoKTtcbiAgICB9XG5cbiAgICAvKiogU2hvdWxkIGFsd2F5cyBiZSBWSUVXX1RZUEVfREFUQUNPUkVKUy4gKi9cbiAgICBnZXRWaWV3VHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gVklFV19UWVBFX0RBVEFDT1JFSlM7XG4gICAgfVxuXG4gICAgLyoqIFRleHQgc2hvd24gaW4gdGhlIHRpdGxlIHdpbmRvdy4gKi9cbiAgICBnZXREaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pbnRlcm5hbFN0YXRlLnRpdGxlfSAoRGF0YWNvcmVKUylgO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvbmxvYWQoKSB7XG4gICAgICAgIHRoaXMuY29udGVudEVsLmFkZENsYXNzKFwibWFya2Rvd24tcmVuZGVyZWRcIik7XG4gICAgICAgIHRoaXMucmVyZW5kZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcpIHRoaXMucmVtb3ZlQ2hpbGQodGhpcy5hY3RpdmVWaWV3KTtcbiAgICB9XG5cbiAgICAvKiogU3luY2hyb25pemVzIHRoZSBzY3JlZW4gc3RhdGUgdG8gcHJvcGVybHkgcmVmbGVjdCB0aGUgY3VycmVudCBpbnRlcm5hbCBzdGF0ZS4gKi9cbiAgICByZXJlbmRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sZWFmLnRhYkhlYWRlcklubmVyVGl0bGVFbC50ZXh0Q29udGVudCA9IHRoaXMudGl0bGVFbC50ZXh0Q29udGVudCA9IHRoaXMuZ2V0RGlzcGxheVRleHQoKTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmlld1R5cGUgPT0gdGhpcy5pbnRlcm5hbFN0YXRlLnZpZXcpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVWaWV3KSB0aGlzLnJlbW92ZUNoaWxkKHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIGlmICh0aGlzLmludGVybmFsU3RhdGUudmlldyA9PT0gXCJzZXR0aW5nc1wiKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXdUeXBlID0gXCJzZXR0aW5nc1wiO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gbmV3IFJlYWN0UmVuZGVyZXIoXG4gICAgICAgICAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgICAgICAgICAgdGhpcy5hcGkuY29yZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbCxcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsU3RhdGUuY3VycmVudEZpbGUgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIDxDVVNUT01fVklFV19DT05URVhULlByb3ZpZGVyIHZhbHVlPXt0aGlzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxEYXRhY29yZVZpZXdTZXR0aW5ncyAvPlxuICAgICAgICAgICAgICAgICAgICA8L0NVU1RPTV9WSUVXX0NPTlRFWFQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIGEgc2NyaXB0LCB0cnkgdG8gZXhlY3V0ZSBpdDsgb3RoZXJ3aXNlLCBzaG93IGEgcmVhc29uYWJsZSBlcnJvciBtZXNzYWdlLlxuICAgICAgICAgICAgdGhpcy5hY3RpdmVWaWV3VHlwZSA9IFwic2NyaXB0XCI7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN0YXRlLnNjcmlwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlldyA9IG5ldyBEYXRhY29yZUpTUmVuZGVyZXIoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRhY29yZUxvY2FsQXBpKHRoaXMuYXBpLCB0aGlzLmludGVybmFsU3RhdGUuY3VycmVudEZpbGUgfHwgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudEVsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsU3RhdGUuY3VycmVudEZpbGUgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLnNjcmlwdCB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsU3RhdGUuc291cmNlVHlwZSB8fCBcImpzXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBuZXcgUmVhY3RSZW5kZXJlcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBpLmNvcmUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudEVsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsU3RhdGUuY3VycmVudEZpbGUgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENVU1RPTV9WSUVXX0NPTlRFWFQuUHJvdmlkZXIgdmFsdWU9e3RoaXN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT1cIk5vIHNjcmlwdCBkZWZpbmVkIGZvciB0aGlzIHZpZXcuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ1VTVE9NX1ZJRVdfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZENoaWxkKHRoaXMuYWN0aXZlVmlldyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFN0YXRlO1xuICAgIH1cblxuICAgIC8qKiBVcGRhdGUgdGhlIHN0YXRlIG9mIHRoaXMgdmlldyB3aXRoIG5ldyBtZXRhZGF0YS4gR2VuZXJhbGx5IGNvbnRyb2xsZWQgYnkgdGhlIHNldHRpbmdzIHBhbmUuICovXG4gICAgcHVibGljIGFzeW5jIHNldFN0YXRlKHN0YXRlOiBEYXRhY29yZVZpZXdTdGF0ZSwgX3Jlc3VsdDogVmlld1N0YXRlUmVzdWx0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTdGF0ZSA9IHN0YXRlO1xuICAgICAgICB0aGlzLnJlcmVuZGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIFN3YXAgdGhlIGFjdGl2ZSB2aWV3LiAqL1xuICAgIHB1YmxpYyB2aWV3KG1vZGU6IFwic2V0dGluZ3NcIiB8IFwic2NyaXB0XCIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLnZpZXcgPSBtb2RlO1xuICAgICAgICB0aGlzLnJlcmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uT3BlbigpOiBQcm9taXNlPHZvaWQ+IHt9XG5cbiAgICAvKiogSGFuZGxlIGZvciByaWdodCBjbGljayBtZW51cy4gKi9cbiAgICBwdWJsaWMgb25QYW5lTWVudShtZW51OiBNZW51LCBzb3VyY2U6IFwibW9yZS1vcHRpb25zXCIgfCBcInRhYi1oZWFkZXJcIiB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoc291cmNlID09PSBcIm1vcmUtb3B0aW9uc1wiKSB7XG4gICAgICAgICAgICBtZW51LmFkZEl0ZW0oKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgaXQuc2V0SWNvbihcInNldHRpbmdzXCIpO1xuICAgICAgICAgICAgICAgIGl0LnNldFRpdGxlKFwiQ29uZmlndXJlIFZpZXdcIik7XG4gICAgICAgICAgICAgICAgaXQub25DbGljaygoZSkgPT4gdGhpcy52aWV3KFwic2V0dGluZ3NcIikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgRGF0YWNvcmUgfSBmcm9tIFwiaW5kZXgvZGF0YWNvcmVcIjtcbmltcG9ydCB7IHVzZUluZGV4VXBkYXRlcyB9IGZyb20gXCJ1aS9ob29rc1wiO1xuXG4vKiogUmVuZGVyIGEgaGVscGZ1bCBzdGF0dXMgaW5kaWNhdG9yIGluIHRoZSBzdGF0dXMgYmFyIG9mIGhvdyB0aGUgaW1wb3J0IGlzIGdvaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEluZGV4U3RhdHVzQmFyKHsgZGF0YWNvcmUgfTogeyBkYXRhY29yZTogRGF0YWNvcmUgfSkge1xuICAgIHVzZUluZGV4VXBkYXRlcyhkYXRhY29yZSwgeyBkZWJvdW5jZTogMjUwIH0pO1xuXG4gICAgLy8gV2hlbmV2ZXIgdGhlIHZpZXcgdXBkYXRlcywgZmlndXJlIG91dCB3aGF0IHN0YXRlIHdlIGFyZSBpbiBiYXNlZCBvbiBpZiBhbiBpbml0aWFsaXplciBpcyBwcmVzZW50LlxuICAgIGlmIChkYXRhY29yZS5pbml0aWFsaXplcikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgU2Nhbm5pbmcge2RhdGFjb3JlLmluaXRpYWxpemVyLmluaXRpYWxpemVkfSBvZiB7ZGF0YWNvcmUuaW5pdGlhbGl6ZXIuZmlsZXN9IGZpbGVzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChkYXRhY29yZS5pbXBvcnRlci5xdWV1ZS5zaXplKCkgPiAwKSB7XG4gICAgICAgIHJldHVybiA8c3Bhbj5VcGRhdGluZyB7ZGF0YWNvcmUuaW1wb3J0ZXIucXVldWUuc2l6ZSgpfSBmaWxlczwvc3Bhbj47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxzcGFuPntkYXRhY29yZS5kYXRhc3RvcmUuc2l6ZX0gb2JqZWN0czwvc3Bhbj47XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQSw0Q0FBQUEsVUFBQUMsU0FBQTtBQUFBO0FBRUEsYUFBU0MsV0FBVSxRQUFRO0FBQ3pCLFVBQUksRUFBRSxnQkFBZ0JBLGFBQVk7QUFDaEMsZUFBTyxJQUFJQSxXQUFVLE1BQU07QUFBQSxNQUM3QjtBQUNBLFdBQUssSUFBSTtBQUFBLElBQ1g7QUFFQSxRQUFJQyxLQUFJRCxXQUFVO0FBRWxCLGFBQVMsTUFBTUUsSUFBR0MsSUFBRztBQUNuQixVQUFJQyxLQUFJO0FBQ1IsV0FBS0EsSUFBR0EsS0FBSUYsSUFBR0UsTUFBSztBQUNsQixRQUFBRCxHQUFFQyxFQUFDO0FBQUEsTUFDTDtBQUFBLElBQ0Y7QUFFQSxhQUFTLFFBQVFELElBQUcsS0FBSztBQUN2QixZQUFNLElBQUksUUFBUSxTQUFTQyxJQUFHO0FBQzVCLFFBQUFELEdBQUUsSUFBSUMsRUFBQyxHQUFHQSxJQUFHLEdBQUc7QUFBQSxNQUNsQixDQUFDO0FBQUEsSUFDSDtBQUVBLGFBQVNDLFFBQU9GLElBQUcsTUFBTSxLQUFLO0FBQzVCLGNBQVEsU0FBUyxNQUFNQyxJQUFHRSxNQUFLO0FBQzdCLGVBQU9ILEdBQUUsTUFBTSxNQUFNQyxJQUFHRSxJQUFHO0FBQUEsTUFDN0IsR0FBRyxHQUFHO0FBQ04sYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLElBQUlILElBQUcsS0FBSztBQUNuQixhQUFPRTtBQUFBLFFBQ0wsU0FBUyxLQUFLLE1BQU1ELElBQUdHLElBQUc7QUFDeEIsaUJBQU8sSUFBSSxPQUFPLENBQUNKLEdBQUUsTUFBTUMsSUFBR0csRUFBQyxDQUFDLENBQUM7QUFBQSxRQUNuQztBQUFBLFFBQ0EsQ0FBQztBQUFBLFFBQ0Q7QUFBQSxNQUNGO0FBQUEs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O0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FBQUEsUUFDVCxLQUFLLFVBQVU7QUFDYixpQkFBTztBQUFBLFFBQ1QsS0FBSyxVQUFVO0FBQ2IsaUJBQU87QUFBQSxRQUNULEtBQUssVUFBVTtBQUNiLGlCQUFPO0FB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S0FBSyxJQUFJO0FBQzFELFlBQU0sT0FBTztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsTUFBTSxJQUFJLElBQUksSUFBSTtBQUN2RCxZQUFNLE1BQU07QUFBSSxNQUFBQSxXQUFVQSxXQUFVLEtBQUssSUFBSSxHQUFHLElBQUk7QUFDcEQsWUFBTSxRQUFRO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxPQUFPLElBQUksS0FBSyxJQUFJO0FBQzFELFlBQU0sU0FBUztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsUUFBUSxJQUFJLE1BQU0sSUFBSTtBQUM3RCxZQUFNLFNBQVM7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFFBQVEsSUFBSSxNQUFNLElBQUk7QUFDN0QsWUFBTSxTQUFTO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxRQUFRLElBQUksTUFBTSxJQUFJO0FBQzdELFlBQU0sU0FBUztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsUUFBUSxJQUFJLE1BQU0sSUFBSTtBQUM3RCxZQUFNLFNBQVM7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFFBQVEsSUFBSSxNQUFNLElBQUk7QUFDN0QsWUFBTSxTQUFTO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxRQUFRLElBQUksTUFBTSxJQUFJO0FBQzdELFlBQU0sU0FBUztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsUUFBUSxJQUFJLE1BQU0sSUFBSTtBQUM3RCxZQUFNLFNBQVM7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFFBQVEsSUFBSSxNQUFNLElBQUk7QUFDN0QsWUFBTSxTQUFTO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxRQUFRLElBQUksTUFBTSxJQUFJO0FBQzdELFlBQU0sU0FBUztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsUUFBUSxJQUFJLE1BQU0sSUFBSTtBQUM3RCxZQUFNLFFBQVE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLE9BQU8sSUFBSSxLQUFLLElBQUk7QUFDMUQsWUFBTSxZQUFZO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxXQUFXLElBQUksU0FBUyxJQUFJO0FBQ3RFLFlBQU0sV0FBVztBQUFJLE1BQUFBLFdBQVVBLFdBQVUsVUFBVSxJQUFJLFFBQVEsSUFBSTtBQUNuRSxZQUFNLFdBQVc7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFVBQVUsSUFBSSxRQUFRLElBQUk7QUFDbkUsWUFBTSxjQUFjO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxhQUFhLElBQUksV0FBVyxJQUFJO0FBQzVFLFlBQU0sZUFBZTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsY0FBYyxJQUFJLFlBQVksSUFBSTtBQUMvRSxZQUFNLFNBQVM7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFFBQVEsSUFBSSxNQUFNLElBQUk7QUFDN0QsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLG9CQUFvQjtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsbUJBQW1CLElBQUksaUJBQWlCLElBQUk7QUFDOUYsWUFBTSxZQUFZO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxXQUFXLElBQUksU0FBUyxJQUFJO0FBQ3RFLFlBQU0scUJBQXFCO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxvQkFBb0IsSUFBSSxrQkFBa0IsSUFBSTtBQUNqRyxZQUFNQyxTQUFRO0FBQUksTUFBQUQsV0FBVUEsV0FBVSxPQUFPLElBQUlDLE1BQUssSUFBSTtBQUMxRCxZQUFNLGFBQWE7QUFBSSxNQUFBRCxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxjQUFjO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxhQUFhLElBQUksV0FBVyxJQUFJO0FBQzVFLFlBQU0sYUFBYTtBQUFJLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxZQUFNLGFBQWE7QUFBSSxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsWUFBTSxhQUFhO0FBQUksTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFNLGFBQWE7QUFBSyxNQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsWUFBTSxhQUFhO0FBQUssTUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFlBQU0sYUFBYTtBQUFLLE1BQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxZQUFN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LE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFeEc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekcsVUFBVSxrQkFBa0IsYUFBYTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVoSjtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RyxVQUFVLGtCQUFrQixhQUFhO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRWhKLFVBQVUsa0JBQWtCLE9BQU87QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBO0FBQUEsTUFFNUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekcsVUFBVSxrQkFBa0IsV0FBVztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUvSSxVQUFVLGtCQUFrQixZQUFZO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRS9JO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXpHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXpHLFVBQVUsa0JBQWtCLFVBQVU7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFN0k7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFekcsVUFBVSxrQkFBa0IsVUFBVTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU3STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV4RyxPQUFPLFVBQVUsVUFBVSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXhJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRS9HO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUs7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTNHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFLO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXhHLE9BQU8sVUFBVSxTQUFTLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFdkk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFVBQVUsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV4STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxVQUFVLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFeEk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFNUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFVBQVUsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixnQkFBZ0I7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFbko7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLGFBQWEsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUzSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVoSDtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsYUFBYSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTNJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFlBQVk7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFL0k7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFlBQVksS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsV0FBVyxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXhJLE9BQU8sVUFBVSxPQUFPLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFckk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFOUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFNBQVMsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV2STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixTQUFTO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTVJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTVHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxXQUFXLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFM0ksVUFBVSxrQkFBa0IsWUFBWTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUvSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsWUFBWSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRWxIO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxVQUFVLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFeEk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFlBQVksS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsUUFBUSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXRJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFNBQVM7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFNUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLGFBQWEsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUzSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixRQUFRO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTNJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFdBQVc7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFOUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFL0csT0FBTyxVQUFVLE9BQU8sS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVySTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixlQUFlO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRWxKO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxXQUFXLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFeEksT0FBTyxVQUFVLE9BQU8sS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUzSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixVQUFVO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTdJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxlQUFlLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFN0k7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsY0FBYztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVqSixVQUFVLGtCQUFrQixPQUFPO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFVBQVU7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFN0k7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFFBQVEsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV0STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFdBQVc7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFOUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFOUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsY0FBYztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVqSjtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsUUFBUSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXRJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxTQUFTLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFdkk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFaEgsVUFBVSxrQkFBa0IsT0FBTztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFFBQVE7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFM0k7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsYUFBYTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUVoSjtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixZQUFZO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRS9JO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTVHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLGNBQWM7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFakosVUFBVSxrQkFBa0IsVUFBVTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU3STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLGFBQWE7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFaEo7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsWUFBWTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUvSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsV0FBVyxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXpJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQTtBQUFBLE1BRXBIO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLGNBQWM7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFako7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsUUFBUTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUzSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxVQUFVLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFeEk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFdBQVcsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV6STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRyxVQUFVLGtCQUFrQixXQUFXO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTlJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQTtBQUFBLE1BRTlHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTVHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxTQUFTLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFdkk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFVBQVUsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV4STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsU0FBUyxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXRJLE9BQU8sVUFBVSxRQUFRLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFdEk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsU0FBUztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU5STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsV0FBVyxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXpJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTVHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHLFVBQVUsa0JBQWtCLFdBQVc7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFOUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUcsVUFBVSxrQkFBa0IsVUFBVTtBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU3STtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUU1RztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsUUFBUSxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXRJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE9BRXpHLE9BQU8sVUFBVSxTQUFTLEtBQUs7QUFBQSxNQUFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFdkk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFNUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsTUFFMUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQU07QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBO0FBQUEsT0FFekcsT0FBTyxVQUFVLFVBQVUsS0FBSztBQUFBLE1BQUc7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUV4STtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxNQUUxRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUE7QUFBQSxPQUV6RyxPQUFPLFVBQVUsU0FBUyxLQUFLO0FBQUEsTUFBRztBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRXZJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFNO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQTtBQUFBLE1BRTFHO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBTTtBQUFBLE1BQUk7QUFBQSxNQUFJO0FBQUEsTUFBSTtBQUFBLE1BQUk7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R0FBRztBQUFBLE1BQ1YsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsT0FBTyxNQUFRO0FBQUEsTUFDaEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsT0FBTyxNQUFRO0FBQUEsTUFDaEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxPQUFPLE1BQVE7QUFBQSxNQUNoQixDQUFDLE9BQU8sTUFBUTtBQUFBLE1BQ2hCLENBQUMsT0FBTyxNQUFRO0FBQUEsTUFDaEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLE9BQU8sTUFBUTtBQUFBLE1BQ2hCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxPQUFPLE1BQVE7QUFBQSxNQUNoQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsTUFDbEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxNQUNqQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLE1BQ2pCLENBQUMsT0FBTyxNQUFRO0FBQUEsTUFDaEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLE1BQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLFNBQVMsUUFBUTtBQUFBLE1BQ2xCLENBQUMsVUFBVSxRQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFNB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QUNuQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsVUFBVSxRQUFRO0FBQUEsTUFDbkIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsUUFBUTtBQUFBLE1BQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsUUFBUTtBQUFBLE1BQ25CLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxXQUFXLFFBQVE7QUFBQSxNQUNwQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLFNBQVMsUUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLE1BQU0sUUFBUTtBQUFBLE1BQ2YsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLE9BQU8sUUFBUTtBQUFBLE1BQ2hCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFNBQVMsUUFBUTtBQUFBLE1BQ2xCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLE9BQU8sUUFBUTtBQUFBLE1BQ2hCLENBQUMsT0FBTyxRQUFRO0FBQUEsTUFDaEIsQ0FBQyxNQUFNLFFBQVE7QUFBQSxNQUNmLENBQUMsT0FBTyxRQUFRO0FBQUEsTUFDaEIsQ0FBQyxPQUFPLFFBQVE7QUFBQSxNQUNoQixDQUFDLE9BQU8sUUFBUTtBQUFBLE1BQ2hCLENBQUMsVUFBVSxRQUFRO0FBQUEsTUFDbkIsQ0FBQyxPQUFPLFFBQVE7QUFBQSxNQUNoQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxNQUFNLFFBQVE7QUFBQSxNQUNmLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxNQUFNLFFBQVE7QUFBQSxNQUNmLENBQUMsTUFBTSxRQUFRO0FBQUEsTUFDZixDQUFDLE9BQU8sUUFBUTtBQUFBLE1BQ2hCLENBQUMsT0FBTyxRQUFRO0FBQUEsTUFDaEIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxNQUNsQixDQUFDLFVBQVUsUUFBUTtBQUFBLE1BQ25CLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFNBQVMsUUFBUTtBQUFBLE1BQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsTUFDbEIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxNQUNuQixDQUFDLFVBQVUsUUFBUTtBQUFBLE1BQ25CLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxR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TTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUNSO0FBRUEsSUFBTSx3QkFBd0I7QUFBQSxFQUM1QixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDakIsU0FBUyxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ3BCLE1BQU0sQ0FBQyxNQUFNLElBQUk7QUFBQSxFQUNqQixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDakIsTUFBTSxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ2pCLFVBQVUsQ0FBQyxPQUFPLEtBQUs7QUFBQSxFQUN2QixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDakIsTUFBTSxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ2pCLE1BQU0sQ0FBQyxNQUFNLElBQUk7QUFBQSxFQUNqQixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDakIsTUFBTSxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ2pCLE1BQU0sQ0FBQyxNQUFNLElBQUk7QUFBQSxFQUNqQixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDakIsTUFBTSxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ2pCLE1BQU0sQ0FBQyxNQUFNLElBQUk7QUFBQSxFQUNqQixTQUFTLENBQUMsTUFBTSxJQUFJO0FBQUEsRUFDcEIsTUFBTSxDQUFDLE1BQU0sSUFBSTtBQUFBLEVBQ2pCLE1BQU0sQ0FBQyxNQUFNLElBQUk7QUFBQSxFQUNqQixNQUFNLENBQUMsTUFBTSxJQUFJO0FBQ25CO0FBRUEsSUFBTSxl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U0FBUyxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFBQSxFQUV0QyxNQUFNLFNBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQUEsRUFDdEMsT0FBTyxTQUFTLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUFBLEVBQ3ZDLElBQUksU0FBUyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFBQSxFQUNwQyxLQUFLLFNBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQUEsRUFDckMsR0FBRyxTQUFTLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUFBLEVBRW5DLEtBQUssU0FBUyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFBQSxFQUNwQyxNQUFNLFNBQVMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQUEsRUFDckMsR0FBRyxTQUFTLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUFBLEVBRWxDLE1BQU0sU0FBUyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFBQSxFQUN0QyxPQUFPLFNBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQUEsRUFDdkMsSUFBSSxTQUFTLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUFBLEVBQ3BDLEtBQUssU0FBUyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFBQSxFQUNyQyxHQUFHLFNBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQUEsRUFFbkMsUUFBUSxTQUFTLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUFBLEVBQzFDLFNBQVMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFBQSxFQUMzQyxLQUFLLFNBQVMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQUEsRUFDdkMsTUFBTSxTQUFTLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUFBLEVBQ3hDLEdBQUcsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFBQSxFQUVyQyxRQUFRLFNBQVMsV0FBVyxFQUFFLFNBQVMsRUFBRSxD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QSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FB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V0FBVyxFQUN2QixRQUFRLDhCQUE4QixFQUN0QyxRQUFRLDRGQUE0RixFQUNwRyxVQUFVLENBQUMsT0FBTztBQUNmLFNBQUcsU0FBUyxLQUFLLE9BQU8sU0FBUyx1QkFBdUIsRUFBRSxTQUFTLE9BQU8sUUFBUTtBQUM5RSxjQUFNLEtBQUssT0FBTyxlQUFlLEVBQUUseUJBQXlCLElBQUksQ0FBQztBQUFBLE1BQ3JFLENBQUM7QUFBQSxJQUNMLENBQUM7QUFFTCxTQUFLLFlBQVksU0FBUyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakQsUUFBSSwwQkFBUSxLQUFLLFdBQVcsRUFDdkIsUUFBUSxzQkFBc0IsRUFDOUIsUUFBUSxrRUFBa0UsRUFDMUUsUUFBUSxDQUFDQSxVQUFTO0FBQ2YsTUFBQUEsTUFBSyxTQUFTLEtBQUssT0FBTyxTQUFTLGtCQUFrQixFQUFFLFNBQVMsT0FBTyxVQUFVO0FBQzdFLGNBQU0sS0FBSyxPQUFPLGVBQWUsRUFBRSxvQkFBb0IsTUFBTSxDQUFDO0FBQUEsTUFDbEUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUVMLFFBQUksMEJBQVEsS0FBSyxXQUFXLEVBQ3ZCLFFBQVEseUNBQXlDLEVBQ2pEO0FBQUEsTUFDRztBQUFBLElBRUosRUFDQyxVQUFVLENBQUMsT0FBTztBQUNmLFNBQUcsU0FBUyxLQUFLLE9BQU8sU0FBUywrQkFBK0IsRUFBRSxTQUFTLE9BQU8sUUFBUTtBQUN0RixjQUFNLEtBQUssT0FBTyxlQUFlLEVBQUUsaUNBQWlDLElBQUksQ0FBQztBQUFBLE1BQzdFLENBQUM7QUFBQSxJQUNMLENBQUM7QUFBQSxFQUNUO0FBQ0o7IiwKICAibmFtZXMiOiBbImV4cG9ydHMiLCAibW9kdWxlIiwgIlBhcnNpbW1vbiIsICJfIiwgIm4iLCAiZiIsICJpIiwgInJlZHVjZSIsICJhcnIiLCAiYSIsICJ2IiwgImIiLCAieCIsICJ5IiwgImlzQXJyYXkiLCAibGVuZ3RoIiwgImlzSW50ZWdlciIsICJ0b0FycmF5IiwgImluZGV4IiwgImoiLCAiayIsICJwIiwgImMiLCAic3RyaW5nIiwgImNoYXIiLCAiY29sdW1uIiwgImxpbmVSYW5nZSIsICJwcmVmaXgiLCAic2VxIiwgInNlcU1hcCIsICJjcmVhdGVMYW5ndWFnZSIsICJrZXkiLCAiYWx0IiwgInN1Y2NlZWQiLCAiciIsICJuZXh0IiwgInNlbGYiLCAicyIsICJtaW4iLCAibWF4IiwgInRpbWVzIiwgImZuIiwgImciLCAiZW5kIiwgInJlZ2V4cCIsICJtYXRjaCIsICJ0ZXh0IiwgIm9uZU9mIiwgIm5vbmVPZiIsICJjdXN0b20iLCAiYmVnaW4iLCAiYW55IiwgIm9wdFdoaXRlc3BhY2UiLCAid2hpdGVzcGFjZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIkNvbnRleHR1YWxLZXl3b3JkIiwgImV4cG9ydHMiLCAiVG9rZW5UeXBlIiwgInJlZ2V4cCIsICJzdHJpbmciLCAiYXJyb3ciLCAiaGFzaCIsICJhc3NpZ24iLCAiX2RlZmF1bHQiLCAiX2V4dGVuZHMiLCAiX3R5cGVvZiIsICJleHBvcnRzIiwgImVuZCIsICJleHBvcnRzIiwgImNoYXJDb2RlcyIsICJjYXJldCIsICJleHBvcnRzIiwgImxpbmUiLCAiY29sdW1uIiwgImkiLCAiZXhwb3J0cyIsICJsIiwgImkiLCAiZXhwb3J0cyIsICJjaGFyIiwgImV4cG9ydHMiLCAiaSIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAibmV4dCIsICJleHBvcnRzIiwgIklkZW50aWZpZXJSb2xlIiwgIkpTWFJvbGUiLCAidG9rZW4iLCAibmV4dCIsICJpIiwgIm1hdGNoIiwgInNpemUiLCAiZXhwb3J0cyIsICJ0b2tlbiIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAib3B0aW9ucyIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAib3B0aW9ucyIsICJwcmVmaXgiLCAidG9rZW4iLCAicyIsICJ0ZXh0IiwgIndoaXRlc3BhY2UiLCAiaSIsICJjIiwgImV4cG9ydHMiLCAib3B0aW9ucyIsICJpIiwgInRva2VuIiwgImV4cG9ydHMiLCAib3B0aW9ucyIsICJpIiwgImNvbXBvbmVudHMiLCAidG9rZW4iLCAibGVuZ3RoIiwgImkiLCAiayIsICJpIiwgImMiLCAic2hpZnQiLCAibWF4IiwgInYiLCAiY2hhciIsICJsZW5ndGgiLCAibGluZSIsICJjb2x1bW4iLCAibmV4dCIsICJsIiwgImEiLCAiYiIsICJqIiwgIm1hdGNoIiwgImhhc2giLCAidXJsIiwgImkiLCAiaSIsICJsaW5lIiwgImoiLCAiYSIsICJiIiwgInNvdXJjZUluZGV4IiwgInBhcnNlIiwgIm9mZnNldCIsICJhcHBlbmQiLCAiY29sdW1uIiwgImlzU3RyaW5nIiwgImZyb20iLCAicyIsICJlbmNvZGUiLCAiZGVjb2RlIiwgImNsb25lIiwgImJzRm91bmQiLCAibWluIiwgIm1heCIsICJTZXRBcnJheSIsICJwdXQiLCAicmVtb3ZlIiwgImVuY29kZSIsICJUcmFjZU1hcCIsICJkZWNvZGVkTWFwcGluZ3MiLCAiaSIsICJsaW5lIiwgImoiLCAibGVuZ3RoIiwgInByZXYiLCAiZXhwb3J0cyIsICJvcHRpb25zIiwgImxpbmUiLCAiaSIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAidG9rZW4iLCAiaSIsICJleHBvcnRzIiwgInRva2VuIiwgImV4cG9ydHMiLCAicmVxdWlyZV91dGlsIiwgImV4cG9ydHMiLCAiZCIsICJiIiwgInAiLCAiVkVycm9yIiwgIk5vb3BDb250ZXh0IiwgIkRldGFpbENvbnRleHQiLCAidSIsICJpIiwgIm0iLCAiRGV0YWlsVW5pb25SZXNvbHZlciIsICJyZXF1aXJlX3R5cGVzIiwgImV4cG9ydHMiLCAiZCIsICJiIiwgInAiLCAiVFR5cGUiLCAibmFtZSIsICJUTmFtZSIsICJUTGl0ZXJhbCIsICJUQXJyYXkiLCAiaSIsICJfaSIsICJ0IiwgIlRUdXBsZSIsICJUVW5pb24iLCAibiIsICJUSW50ZXJzZWN0aW9uIiwgIlRFbnVtVHlwZSIsICJURW51bUxpdGVyYWwiLCAiVElmYWNlIiwgInYiLCAiVE9wdGlvbmFsIiwgIlRQcm9wIiwgIlRGdW5jIiwgIlRQYXJhbSIsICJUUGFyYW1MaXN0IiwgInBhcmFtIiwgIkJhc2ljVHlwZSIsICJhcnJheV8xIiwgImV4cG9ydHMiLCAicyIsICJpIiwgInIiLCAiayIsICJhIiwgImoiLCAiQ2hlY2tlciIsICJwIiwgImV4cG9ydHMiLCAidCIsICJleHBvcnRzIiwgIm9wdGlvbnMiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgIkZ1bmN0aW9uVHlwZSIsICJpIiwgImV4cG9ydHMiLCAicmVxdWlyZV90eXBlcyIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAiZXhwb3J0cyIsICJ0b2tlbiIsICJleHBvcnRzIiwgImRlY2xhcmF0aW9uIiwgInRva2VuIiwgImVuZCIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAiRmlsZSIsICJwYXJzZSIsICJleHBvcnRzIiwgInRva2VuIiwgImV4cG9ydHMiLCAidG9rZW4iLCAidDIiLCAidDMiLCAicHJlZml4IiwgImkiLCAiZXhwb3J0cyIsICJ0b2tlbiIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAiaSIsICJ0b2tlbiIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgInByZWZpeCIsICJ0b2tlbiIsICJpZGVudGlmaWVyIiwgImV4cG9ydHMiLCAib3B0aW9ucyIsICJpIiwgImV4cG9ydHMiLCAiZXhwb3J0cyIsICJpIiwgImZuIiwgIl8iLCAiXzIiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAidG9rZW4iLCAiaSIsICJleHBvcnRzIiwgIm9wdGlvbnMiLCAidG9rZW4iLCAiZXhwb3J0cyIsICJ0b2tlbiIsICJleHBvcnRzIiwgImkiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgIm9wdGlvbnMiLCAicHJlZml4IiwgInYiLCAicyIsICJpIiwgImV4cG9ydHMiLCAiTGluZXNBbmRDb2x1bW5zIiwgInN0cmluZyIsICJvZmZzZXQiLCAibGluZSIsICJjb2x1bW4iLCAiZXhwb3J0cyIsICJrIiwgImNvbXBvbmVudHMiLCAiaSIsICJ0b2tlbiIsICJlbmQiLCAicyIsICJsZW5ndGgiLCAiZXhwb3J0cyIsICJpIiwgInJlcXVpcmVfZGlzdCIsICJleHBvcnRzIiwgInRyYW5zZm9ybSIsICJvcHRpb25zIiwgImUiLCAiZXhwb3J0cyIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImsiLCAibCIsICJtIiwgIm4iLCAicCIsICJxIiwgInIiLCAidCIsICJ2IiwgInciLCAieCIsICJ5IiwgInoiLCAiYSIsICJ1IiwgIkEiLCAiZXhwb3J0cyIsICJFbGVtZW50IiwgImlzRWxlbWVudCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJpIiwgImUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX2V4dGVuZHMiLCAibiIsICJlIiwgInQiLCAiciIsICJleHBvcnRzIiwgInNsaWNlIiwgIm9wdGlvbnMiLCAidm5vZGVJZCIsICJpc1ZhbGlkRWxlbWVudCIsICJyZXJlbmRlclF1ZXVlIiwgInByZXZEZWJvdW5jZSIsICJkZWZlciIsICJkZXB0aFNvcnQiLCAiZXZlbnRDbG9jayIsICJldmVudFByb3h5IiwgImV2ZW50UHJveHlDYXB0dXJlIiwgImkiLCAiRU1QVFlfT0JKIiwgIkVNUFRZX0FSUiIsICJJU19OT05fRElNRU5TSU9OQUwiLCAiaXNBcnJheSIsICJBcnJheSIsICJhc3NpZ24iLCAib2JqIiwgInByb3BzIiwgInJlbW92ZU5vZGUiLCAibm9kZSIsICJwYXJlbnROb2RlIiwgInJlbW92ZUNoaWxkIiwgImNyZWF0ZUVsZW1lbnQiLCAidHlwZSIsICJjaGlsZHJlbiIsICJrZXkiLCAicmVmIiwgIm5vcm1hbGl6ZWRQcm9wcyIsICJhcmd1bWVudHMiLCAibGVuZ3RoIiwgImNhbGwiLCAiZGVmYXVsdFByb3BzIiwgImNyZWF0ZVZOb2RlIiwgIm9yaWdpbmFsIiwgInZub2RlIiwgIl9fayIsICJfXyIsICJfX2IiLCAiX19lIiwgIl9fZCIsICJfX2MiLCAiY29uc3RydWN0b3IiLCAiX192IiwgIl9faSIsICJfX3UiLCAiRnJhZ21lbnQiLCAiQmFzZUNvbXBvbmVudCIsICJjb250ZXh0IiwgInRoaXMiLCAiZ2V0RG9tU2libGluZyIsICJjaGlsZEluZGV4IiwgInNpYmxpbmciLCAidXBkYXRlUGFyZW50RG9tUG9pbnRlcnMiLCAiY2hpbGQiLCAiYmFzZSIsICJlbnF1ZXVlUmVuZGVyIiwgImMiLCAicHVzaCIsICJwcm9jZXNzIiwgIl9fciIsICJkZWJvdW5jZVJlbmRlcmluZyIsICJyZW5kZXJRdWV1ZUxlbmd0aCIsICJjb21wb25lbnQiLCAibmV3Vk5vZGUiLCAib2xkVk5vZGUiLCAib2xkRG9tIiwgImNvbW1pdFF1ZXVlIiwgInJlZlF1ZXVlIiwgInNvcnQiLCAic2hpZnQiLCAiX19QIiwgImRpZmYiLCAiX19uIiwgIm5hbWVzcGFjZVVSSSIsICJjb21taXRSb290IiwgImRpZmZDaGlsZHJlbiIsICJwYXJlbnREb20iLCAicmVuZGVyUmVzdWx0IiwgIm5ld1BhcmVudFZOb2RlIiwgIm9sZFBhcmVudFZOb2RlIiwgImdsb2JhbENvbnRleHQiLCAibmFtZXNwYWNlIiwgImV4Y2Vzc0RvbUNoaWxkcmVuIiwgImlzSHlkcmF0aW5nIiwgImNoaWxkVk5vZGUiLCAibmV3RG9tIiwgImZpcnN0Q2hpbGREb20iLCAib2xkQ2hpbGRyZW4iLCAibmV3Q2hpbGRyZW5MZW5ndGgiLCAiY29uc3RydWN0TmV3Q2hpbGRyZW5BcnJheSIsICJhcHBseVJlZiIsICJpbnNlcnQiLCAibmV4dFNpYmxpbmciLCAic2tld2VkSW5kZXgiLCAibWF0Y2hpbmdJbmRleCIsICJvbGRDaGlsZHJlbkxlbmd0aCIsICJyZW1haW5pbmdPbGRDaGlsZHJlbiIsICJza2V3IiwgIlN0cmluZyIsICJmaW5kTWF0Y2hpbmdJbmRleCIsICJ1bm1vdW50IiwgInBhcmVudFZOb2RlIiwgImNvbnRhaW5zIiwgImluc2VydEJlZm9yZSIsICJub2RlVHlwZSIsICJ4IiwgInkiLCAic2V0U3R5bGUiLCAic3R5bGUiLCAidmFsdWUiLCAic2V0UHJvcGVydHkiLCAidGVzdCIsICJkb20iLCAibmFtZSIsICJvbGRWYWx1ZSIsICJ1c2VDYXB0dXJlIiwgIm8iLCAiY3NzVGV4dCIsICJyZXBsYWNlIiwgInRvTG93ZXJDYXNlIiwgImwiLCAiX2F0dGFjaGVkIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsICJlIiwgInJlbW92ZUF0dHJpYnV0ZSIsICJzZXRBdHRyaWJ1dGUiLCAiY3JlYXRlRXZlbnRQcm94eSIsICJldmVudEhhbmRsZXIiLCAiX2Rpc3BhdGNoZWQiLCAiZXZlbnQiLCAidG1wIiwgImlzTmV3IiwgIm9sZFByb3BzIiwgIm9sZFN0YXRlIiwgInNuYXBzaG90IiwgImNsZWFyUHJvY2Vzc2luZ0V4Y2VwdGlvbiIsICJuZXdQcm9wcyIsICJpc0NsYXNzQ29tcG9uZW50IiwgInByb3ZpZGVyIiwgImNvbXBvbmVudENvbnRleHQiLCAicmVuZGVySG9vayIsICJjb3VudCIsICJuZXdUeXBlIiwgIm91dGVyIiwgInByb3RvdHlwZSIsICJyZW5kZXIiLCAiY29udGV4dFR5cGUiLCAiX19FIiwgImRvUmVuZGVyIiwgInN1YiIsICJzdGF0ZSIsICJfX2giLCAiX3NiIiwgIl9fcyIsICJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCAiY29tcG9uZW50V2lsbE1vdW50IiwgImNvbXBvbmVudERpZE1vdW50IiwgImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCAic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwgInNvbWUiLCAiY29tcG9uZW50V2lsbFVwZGF0ZSIsICJjb21wb25lbnREaWRVcGRhdGUiLCAiZ2V0Q2hpbGRDb250ZXh0IiwgImdldFNuYXBzaG90QmVmb3JlVXBkYXRlIiwgIk1PREVfSFlEUkFURSIsICJpbmRleE9mIiwgImRpZmZFbGVtZW50Tm9kZXMiLCAiZGlmZmVkIiwgInJvb3QiLCAiY2IiLCAibmV3SHRtbCIsICJvbGRIdG1sIiwgIm5ld0NoaWxkcmVuIiwgImlucHV0VmFsdWUiLCAiY2hlY2tlZCIsICJsb2NhbE5hbWUiLCAiZG9jdW1lbnQiLCAiY3JlYXRlVGV4dE5vZGUiLCAiY3JlYXRlRWxlbWVudE5TIiwgImlzIiwgIl9fbSIsICJkYXRhIiwgImNoaWxkTm9kZXMiLCAiYXR0cmlidXRlcyIsICJfX2h0bWwiLCAiaW5uZXJIVE1MIiwgImhhc1JlZlVubW91bnQiLCAiY3VycmVudCIsICJza2lwUmVtb3ZlIiwgInIiLCAiY29tcG9uZW50V2lsbFVubW91bnQiLCAicmVwbGFjZU5vZGUiLCAiZmlyc3RDaGlsZCIsICJlcnJvciIsICJlcnJvckluZm8iLCAiY3RvciIsICJoYW5kbGVkIiwgImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsICJzZXRTdGF0ZSIsICJjb21wb25lbnREaWRDYXRjaCIsICJ1bmRlZmluZWQiLCAidXBkYXRlIiwgImNhbGxiYWNrIiwgInMiLCAiZm9yY2VVcGRhdGUiLCAiUHJvbWlzZSIsICJ0aGVuIiwgImJpbmQiLCAicmVzb2x2ZSIsICJzZXRUaW1lb3V0IiwgImEiLCAiYiIsICJtIiwgImRlZmF1bHRWYWx1ZSIsICJjb250ZXh0SWQiLCAiQ29uc3VtZXIiLCAiY29udGV4dFZhbHVlIiwgIlByb3ZpZGVyIiwgInN1YnMiLCAiY3R4IiwgIlNldCIsICJfcHJvcHMiLCAiZm9yRWFjaCIsICJhZGQiLCAib2xkIiwgImRlbGV0ZSIsICJfIiwgImh5ZHJhdGUiLCAidSIsICJWIiwgInRvQ2hpbGRBcnJheSIsICJvdXQiLCAiY3VycmVudEluZGV4IiwgImN1cnJlbnRDb21wb25lbnQiLCAicHJldmlvdXNDb21wb25lbnQiLCAicHJldlJhZiIsICJjdXJyZW50SG9vayIsICJhZnRlclBhaW50RWZmZWN0cyIsICJvcHRpb25zIiwgIl9vcHRpb25zIiwgIm9sZEJlZm9yZURpZmYiLCAiX19iIiwgIm9sZEJlZm9yZVJlbmRlciIsICJfX3IiLCAib2xkQWZ0ZXJEaWZmIiwgImRpZmZlZCIsICJvbGRDb21taXQiLCAiX19jIiwgIm9sZEJlZm9yZVVubW91bnQiLCAidW5tb3VudCIsICJvbGRSb290IiwgIl9fIiwgImdldEhvb2tTdGF0ZSIsICJpbmRleCIsICJ0eXBlIiwgIl9faCIsICJob29rcyIsICJfX0giLCAibGVuZ3RoIiwgInB1c2giLCAidXNlU3RhdGUiLCAiaW5pdGlhbFN0YXRlIiwgInVzZVJlZHVjZXIiLCAiaW52b2tlT3JSZXR1cm4iLCAicmVkdWNlciIsICJpbml0IiwgImhvb2tTdGF0ZSIsICJfcmVkdWNlciIsICJhY3Rpb24iLCAiY3VycmVudFZhbHVlIiwgIl9fTiIsICJuZXh0VmFsdWUiLCAic2V0U3RhdGUiLCAiX2hhc1NjdUZyb21Ib29rcyIsICJ1cGRhdGVIb29rU3RhdGUiLCAicCIsICJzIiwgImMiLCAic3RhdGVIb29rcyIsICJmaWx0ZXIiLCAieCIsICJldmVyeSIsICJwcmV2U2N1IiwgImNhbGwiLCAidGhpcyIsICJzaG91bGRVcGRhdGUiLCAiZm9yRWFjaCIsICJob29rSXRlbSIsICJwcm9wcyIsICJzaG91bGRDb21wb25lbnRVcGRhdGUiLCAicHJldkNXVSIsICJjb21wb25lbnRXaWxsVXBkYXRlIiwgIl9fZSIsICJ0bXAiLCAidXNlTGF5b3V0RWZmZWN0IiwgImNhbGxiYWNrIiwgImFyZ3MiLCAic3RhdGUiLCAiX19zIiwgImFyZ3NDaGFuZ2VkIiwgIl9wZW5kaW5nQXJncyIsICJ1c2VNZW1vIiwgImZhY3RvcnkiLCAiZmx1c2hBZnRlclBhaW50RWZmZWN0cyIsICJjb21wb25lbnQiLCAic2hpZnQiLCAiX19QIiwgImludm9rZUNsZWFudXAiLCAiaW52b2tlRWZmZWN0IiwgImUiLCAiX192IiwgInZub2RlIiwgInBhcmVudERvbSIsICJfX2siLCAiX19tIiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJhZnRlck5leHRGcmFtZSIsICJjb21taXRRdWV1ZSIsICJzb21lIiwgImNiIiwgImhhc0Vycm9yZWQiLCAiSEFTX1JBRiIsICJyYWYiLCAiZG9uZSIsICJjbGVhclRpbWVvdXQiLCAidGltZW91dCIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJzZXRUaW1lb3V0IiwgImhvb2siLCAiY29tcCIsICJjbGVhbnVwIiwgIm9sZEFyZ3MiLCAibmV3QXJncyIsICJhcmciLCAiZiIsICJleHBvcnRzIiwgImNvbnRleHQiLCAicHJvdmlkZXIiLCAic3ViIiwgInZhbHVlIiwgImZvcm1hdHRlciIsICJ1c2VEZWJ1Z1ZhbHVlIiwgIm4iLCAiZXJyU3RhdGUiLCAiY29tcG9uZW50RGlkQ2F0Y2giLCAiZXJyIiwgImVycm9ySW5mbyIsICJ1bmRlZmluZWQiLCAicm9vdCIsICJtYXNrIiwgInJlZiIsICJjcmVhdGVIYW5kbGUiLCAiY3VycmVudCIsICJjb25jYXQiLCAiaCIsICJ5IiwgIm0iLCAiaW5pdGlhbFZhbHVlIiwgImQiLCAic2hhbGxvd0RpZmZlcnMiLCAiYSIsICJiIiwgImkiLCAiUHVyZUNvbXBvbmVudCIsICJwIiwgImMiLCAidGhpcyIsICJwcm9wcyIsICJjb250ZXh0IiwgIm1lbW8iLCAiY29tcGFyZXIiLCAic2hvdWxkVXBkYXRlIiwgIm5leHRQcm9wcyIsICJyZWYiLCAidXBkYXRlUmVmIiwgImNhbGwiLCAiY3VycmVudCIsICJNZW1vZWQiLCAic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwgImNyZWF0ZUVsZW1lbnQiLCAiZGlzcGxheU5hbWUiLCAibmFtZSIsICJwcm90b3R5cGUiLCAiaXNSZWFjdENvbXBvbmVudCIsICJfX2YiLCAiQ29tcG9uZW50IiwgImlzUHVyZVJlYWN0Q29tcG9uZW50IiwgInN0YXRlIiwgIm9sZERpZmZIb29rIiwgIm9wdGlvbnMiLCAiX19iIiwgInZub2RlIiwgInR5cGUiLCAiUkVBQ1RfRk9SV0FSRF9TWU1CT0wiLCAiU3ltYm9sIiwgImZvciIsICJmb3J3YXJkUmVmIiwgImZuIiwgIkZvcndhcmRlZCIsICJyZXN1bHQiLCAiJCR0eXBlb2YiLCAicmVuZGVyIiwgIm1hcEZuIiwgImNoaWxkcmVuIiwgInRvQ2hpbGRBcnJheSIsICJtYXAiLCAiQ2hpbGRyZW4iLCAiZm9yRWFjaCIsICJjb3VudCIsICJsZW5ndGgiLCAib25seSIsICJub3JtYWxpemVkIiwgInRvQXJyYXkiLCAib2xkQ2F0Y2hFcnJvciIsICJfX2UiLCAiZXJyb3IiLCAibmV3Vk5vZGUiLCAib2xkVk5vZGUiLCAiZXJyb3JJbmZvIiwgInRoZW4iLCAiY29tcG9uZW50IiwgIl9fIiwgIl9fYyIsICJfX2siLCAib2xkVW5tb3VudCIsICJ1bm1vdW50IiwgImRldGFjaGVkQ2xvbmUiLCAiZGV0YWNoZWRQYXJlbnQiLCAicGFyZW50RG9tIiwgIl9fSCIsICJlZmZlY3QiLCAib2JqIiwgIl9fUCIsICJjaGlsZCIsICJyZW1vdmVPcmlnaW5hbCIsICJvcmlnaW5hbFBhcmVudCIsICJfX3YiLCAiYXBwZW5kQ2hpbGQiLCAiU3VzcGVuc2UiLCAiX191IiwgIl9zdXNwZW5kZXJzIiwgInN1c3BlbmRlZCIsICJfX2EiLCAibGF6eSIsICJsb2FkZXIiLCAicHJvbSIsICJMYXp5IiwgImV4cG9ydHMiLCAiZGVmYXVsdCIsICJlIiwgIlN1c3BlbnNlTGlzdCIsICJfbmV4dCIsICJfbWFwIiwgIl9fUiIsICJwcm9taXNlIiwgInN1c3BlbmRpbmdWTm9kZSIsICJzdXNwZW5kaW5nQ29tcG9uZW50IiwgInB1c2giLCAicmVzb2x2ZSIsICJyZXNvbHZlZCIsICJvblJlc29sdmVkIiwgIm9uU3VzcGVuc2lvbkNvbXBsZXRlIiwgInN1c3BlbmRlZFZOb2RlIiwgIl9fTyIsICJzZXRTdGF0ZSIsICJwb3AiLCAiZm9yY2VVcGRhdGUiLCAiY29tcG9uZW50V2lsbFVubW91bnQiLCAiZG9jdW1lbnQiLCAiZGV0YWNoZWRDb21wb25lbnQiLCAiZmFsbGJhY2siLCAiRnJhZ21lbnQiLCAibGlzdCIsICJub2RlIiwgImRlbGV0ZSIsICJyZXZlYWxPcmRlciIsICJzaXplIiwgIkNvbnRleHRQcm92aWRlciIsICJnZXRDaGlsZENvbnRleHQiLCAiUG9ydGFsIiwgIl90aGlzIiwgImNvbnRhaW5lciIsICJfY29udGFpbmVyIiwgIl90ZW1wIiwgIm5vZGVUeXBlIiwgInBhcmVudE5vZGUiLCAiY2hpbGROb2RlcyIsICJjb250YWlucyIsICJpbnNlcnRCZWZvcmUiLCAiYmVmb3JlIiwgInJlbW92ZUNoaWxkIiwgInNwbGljZSIsICJpbmRleE9mIiwgImNyZWF0ZVBvcnRhbCIsICJlbCIsICJjb250YWluZXJJbmZvIiwgImRlbGVnYXRlZCIsICJnZXQiLCAidW5zdXNwZW5kIiwgIndyYXBwZWRVbnN1c3BlbmQiLCAiTWFwIiwgInJldmVyc2UiLCAic2V0IiwgImNvbXBvbmVudERpZFVwZGF0ZSIsICJjb21wb25lbnREaWRNb3VudCIsICJSRUFDVF9FTEVNRU5UX1RZUEUiLCAiQ0FNRUxfUFJPUFMiLCAiT05fQU5JIiwgIkNBTUVMX1JFUExBQ0UiLCAiSVNfRE9NIiwgIm9uQ2hhbmdlSW5wdXRUeXBlIiwgInRlc3QiLCAicGFyZW50IiwgImNhbGxiYWNrIiwgInRleHRDb250ZW50IiwgInByZWFjdFJlbmRlciIsICJoeWRyYXRlIiwgInByZWFjdEh5ZHJhdGUiLCAia2V5IiwgIk9iamVjdCIsICJkZWZpbmVQcm9wZXJ0eSIsICJjb25maWd1cmFibGUiLCAidiIsICJ3cml0YWJsZSIsICJ2YWx1ZSIsICJvbGRFdmVudEhvb2siLCAiZXZlbnQiLCAiZW1wdHkiLCAiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCAiY2FuY2VsQnViYmxlIiwgImlzRGVmYXVsdFByZXZlbnRlZCIsICJkZWZhdWx0UHJldmVudGVkIiwgInBlcnNpc3QiLCAibmF0aXZlRXZlbnQiLCAiY3VycmVudENvbXBvbmVudCIsICJjbGFzc05hbWVEZXNjcmlwdG9yTm9uRW51bWJlcmFibGUiLCAiZW51bWVyYWJsZSIsICJjbGFzcyIsICJvbGRWTm9kZUhvb2siLCAibm9ybWFsaXplZFByb3BzIiwgImlzTm9uRGFzaGVkVHlwZSIsICJsb3dlckNhc2VkIiwgInRvTG93ZXJDYXNlIiwgInJlcGxhY2UiLCAibXVsdGlwbGUiLCAiQXJyYXkiLCAiaXNBcnJheSIsICJzZWxlY3RlZCIsICJkZWZhdWx0VmFsdWUiLCAiY2xhc3NOYW1lIiwgIm9sZEJlZm9yZVJlbmRlciIsICJfX3IiLCAib2xkRGlmZmVkIiwgImRpZmZlZCIsICJkb20iLCAiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCAiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsICJyZWFkQ29udGV4dCIsICJfX24iLCAidXNlQ2FsbGJhY2siLCAidXNlQ29udGV4dCIsICJ1c2VEZWJ1Z1ZhbHVlIiwgInVzZURlZmVycmVkVmFsdWUiLCAidXNlRWZmZWN0IiwgInVzZUlkIiwgInVzZUltcGVyYXRpdmVIYW5kbGUiLCAidXNlSW5zZXJ0aW9uRWZmZWN0IiwgInVzZUxheW91dEVmZmVjdCIsICJ1c2VNZW1vIiwgInVzZVJlZHVjZXIiLCAidXNlUmVmIiwgInVzZVN0YXRlIiwgInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwgInVzZVRyYW5zaXRpb24iLCAiY3JlYXRlRmFjdG9yeSIsICJiaW5kIiwgImlzVmFsaWRFbGVtZW50IiwgImVsZW1lbnQiLCAiaXNGcmFnbWVudCIsICJpc01lbW8iLCAiU3RyaW5nIiwgInN0YXJ0c1dpdGgiLCAiY2xvbmVFbGVtZW50IiwgInByZWFjdENsb25lRWxlbWVudCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsICJmaW5kRE9NTm9kZSIsICJiYXNlIiwgInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwgImFyZyIsICJmbHVzaFN5bmMiLCAiU3RyaWN0TW9kZSIsICJzdGFydFRyYW5zaXRpb24iLCAiY2IiLCAidmFsIiwgImlzRWxlbWVudCIsICJzdWJzY3JpYmUiLCAiZ2V0U25hcHNob3QiLCAiX3VzZVN0YXRlIiwgIl9pbnN0YW5jZSIsICJfZ2V0U25hcHNob3QiLCAiZGlkU25hcHNob3RDaGFuZ2UiLCAiaW5zdCIsICJ4IiwgInkiLCAibGF0ZXN0R2V0U25hcHNob3QiLCAicHJldlZhbHVlIiwgIm5leHRWYWx1ZSIsICJpbmRleCIsICJ2ZXJzaW9uIiwgImNyZWF0ZUNvbnRleHQiLCAiY3JlYXRlUmVmIiwgInQiLCAibiIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaSIsICJtZW1vaXplT25lIiwgImlzRXF1YWwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX3R5cGVvZiIsICJvIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl90eXBlb2YiLCAidG9QcmltaXRpdmUiLCAidCIsICJyIiwgImUiLCAiaSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfdHlwZW9mIiwgInRvUHJpbWl0aXZlIiwgInRvUHJvcGVydHlLZXkiLCAidCIsICJpIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInRvUHJvcGVydHlLZXkiLCAiX2RlZmluZVByb3BlcnR5IiwgImUiLCAiciIsICJ0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm93bktleXMiLCAiZSIsICJyIiwgInQiLCAibyIsICJfb2JqZWN0U3ByZWFkMiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfYXJyYXlXaXRoSG9sZXMiLCAiciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfaXRlcmFibGVUb0FycmF5TGltaXQiLCAiciIsICJsIiwgInQiLCAiZSIsICJuIiwgImkiLCAidSIsICJhIiwgImYiLCAibyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfYXJyYXlMaWtlVG9BcnJheSIsICJyIiwgImEiLCAiZSIsICJuIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsICJyIiwgImEiLCAidCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfbm9uSXRlcmFibGVSZXN0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl9zbGljZWRUb0FycmF5IiwgInIiLCAiZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsICJyIiwgImUiLCAidCIsICJuIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsICJlIiwgInQiLCAibyIsICJyIiwgImkiLCAicyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfY2xhc3NDYWxsQ2hlY2siLCAiYSIsICJuIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInRvUHJvcGVydHlLZXkiLCAiX2RlZmluZVByb3BlcnRpZXMiLCAiZSIsICJyIiwgInQiLCAibyIsICJfY3JlYXRlQ2xhc3MiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX3NldFByb3RvdHlwZU9mIiwgInQiLCAiZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfaW5oZXJpdHMiLCAidCIsICJlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl9nZXRQcm90b3R5cGVPZiIsICJ0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCAidCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwgImUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX3R5cGVvZiIsICJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsICJ0IiwgImUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX2NyZWF0ZVN1cGVyIiwgInQiLCAiciIsICJlIiwgIm8iLCAicyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfYXJyYXlXaXRob3V0SG9sZXMiLCAiciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJfaXRlcmFibGVUb0FycmF5IiwgInIiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX25vbkl0ZXJhYmxlU3ByZWFkIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl90b0NvbnN1bWFibGVBcnJheSIsICJyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCAiZSIsICJ0IiwgImEiLCAib25DaGFuZ2UiLCAiY3NzIiwgImkiLCAic2l6ZSIsICJub2RlIiwgInN0eWxlcyIsICJ0cmFuc2Zvcm0iLCAiX3JlZiIsICJfcmVmMiIsICJzIiwgImZuIiwgInByZWZpeCIsICJzdHJpbmciLCAiY291bnRlciIsICJsZW5ndGgiLCAiaWNvbiIsICJyIiwgIm8iLCAiYyIsICJ0IiwgImsiLCAib2Zmc2V0IiwgImNvbW1lbnQiLCAib3B0aW9ucyIsICJzdHlsZSIsICJwcmVmaXhlcyIsICJuZXh0IiwgInBvc2l0aW9uIiwgImNvbnRlbnQiLCAicmVwbGFjZSIsICJlbmQiLCAibm9vcCIsICJ5IiwgInBhcnNlIiwgImUiLCAiYmluZEludGVybmFsNCIsICJiIiwgImQiLCAibWFzayIsICJwcm92aWRlcnMiLCAibiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJpIiwgIm4iLCAiZnJvbSIsICJzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInRleHQiLCAieCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJhc3NpZ24iLCAidGV4dCIsICJ4IiwgInkiLCAiaSIsICJjaGVja2VyIiwgImlzTm9kZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWwiLCAiZSIsICJvd25LZXlzIiwgIl9vYmplY3RTcHJlYWQyIiwgImkiLCAiX2RlZmluZVByb3BlcnR5IiwgIl90eXBlb2YiLCAib2JqIiwgIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwgIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsICJfdG9Db25zdW1hYmxlQXJyYXkiLCAiX2FycmF5V2l0aG91dEhvbGVzIiwgIl9pdGVyYWJsZVRvQXJyYXkiLCAiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwgIl9ub25JdGVyYWJsZVNwcmVhZCIsICJfYXJyYXlMaWtlVG9BcnJheSIsICJvIiwgIm4iLCAiZmxpcCIsICJzaXplIiwgInN0cmluZyIsICJtYXRjaCIsICJfZXhjbHVkZWQiLCAicyIsICJjb252ZXJ0IiwgImNyZWF0ZUVsZW1lbnQiLCAiUFJPRFVDVElPTiIsICJpY29uIiwgImRlZmF1bHRQcm9wcyIsICJGb250QXdlc29tZUljb24iLCAidHJhbnNmb3JtIiwgImV4cG9ydHMiLCAiZCIsICJiIiwgInAiLCAiYSIsICJCVHJlZSIsICJrIiwgInYiLCAiaSIsICJuZXh0IiwgImN1cnNvciIsICJub2RlIiwgIm4iLCAibWluIiwgIm1heCIsICJyIiwgInQiLCAic2l6ZSIsICJCTm9kZSIsICJsbyIsICJjIiwgIl8iLCAiQk5vZGVJbnRlcm5hbCIsICJsZW5ndGgiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZiIsICJnIiwgImRlZmluZSIsICJlIiwgInQiLCAibiIsICJyIiwgInMiLCAibyIsICJ1IiwgImEiLCAiaSIsICJsIiwgImdsb2JhbCIsICJQcm9taXNlIiwgInNlbGYiLCAiX3R5cGVvZiIsICJfY2xhc3NDYWxsQ2hlY2siLCAia2V5IiwgImxlbmd0aCIsICJpZGIiLCAib3B0aW9ucyIsICJqIiwgImsiLCAiZm9yYWdlIiwgImN1cnNvciIsICJ2YWx1ZSIsICJlcnIiLCAia2V5cyIsICJkYiIsICJwIiwgInNlcmlhbGl6ZSIsICJlcnJvciIsICJyZXNvbHZlIiwgInJlamVjdCIsICJzYW1lVmFsdWUiLCAieCIsICJ5IiwgImluY2x1ZGVzIiwgImlzQXJyYXkiLCAiTG9jYWxGb3JhZ2UiLCAiY29uZmlnIiwgImNvbmZpZ3VyZU1pc3NpbmdNZXRob2RzIiwgIm1ldGhvZE5vdEltcGxlbWVudGVkRmFjdG9yeSIsICJwcm9taXNlIiwgInNldERyaXZlclN1cHBvcnQiLCAic3VwcG9ydGVkRHJpdmVycyIsICJleHBvcnRzIiwgIlF1ZXVlIiwgInJlcXVpcmVfcXVldWUiLCAiZXhwb3J0cyIsICJRdWV1ZSIsICJvIiwgImUiLCAibmV4dCIsICJhIiwgImsiLCAieCIsICJuIiwgInN0cmluZyIsICJmIiwgImQiLCAicDIiLCAibSIsICJ1IiwgInYiLCAib2Zmc2V0IiwgImxlbmd0aCIsICJzIiwgInRva2VuIiwgImkiLCAiYyIsICJuIiwgInAiLCAic3RyaW5nIiwgImZvcm1hdE9mZnNldCIsICJsZW5ndGgiLCAidCIsICJpIiwgInMiLCAiZSIsICJzaW5nbGV0b24iLCAib2Zmc2V0IiwgInMiLCAiciIsICJkZWZhdWx0Wm9uZSIsICJvZmZzZXQiLCAibiIsICJ0IiwgIm9wdGlvbnMiLCAiZSIsICJmIiwgImkiLCAibGVuZ3RoIiwgImZsb29yIiwgInoiLCAibSIsICJmIiwgInIiLCAibSIsICJjdXJzb3IiLCAibmV4dCIsICJzIiwgInJlZ2V4IiwgIm1hdGNoIiwgImkiLCAib2Zmc2V0IiwgIm4iLCAiY29uZmlnIiwgInRleHQiLCAibyIsICJsIiwgInMiLCAiayIsICJmbiIsICJ1IiwgImkiLCAidjIiLCAiSU5WQUxJRCIsICJlbmQiLCAiY29uZmlnIiwgInRleHQiLCAicyIsICJlIiwgIm8iLCAiZCIsICJpIiwgIm5leHQiLCAieCIsICJhIiwgImIiLCAibGVuZ3RoIiwgImN1cnNvciIsICJhIiwgImIiLCAidSIsICJpIiwgIm1pbiIsICJtYXgiLCAiYXBwZW5kIiwgInJlZ2V4IiwgImkiLCAicyIsICJoIiwgIm0iLCAidG9rZW4iLCAidCIsICJ1IiwgImYiLCAiciIsICJrIiwgInAiLCAiZCIsICJpIiwgIklOVkFMSUQiLCAiY2xvbmUiLCAibyIsICJvMiIsICJvMyIsICJvZmZzZXQiLCAiZCIsICJjIiwgInRleHQiLCAib3JkZXJlZFVuaXRzIiwgInUiLCAiZW5kIiwgInJvdW5kIiwgImNvbmZpZyIsICJvcHRpb25zIiwgInYiLCAicSIsICJpIiwgImVtb2ppUmVnZXgiLCAiXyIsICJ0ZXh0IiwgImVuZCIsICJvZmZzZXQiLCAicG9zaXRpb24iLCAiUCIsICJMaXRlcmFscyIsICJmIiwgImUiLCAiaXNOdW1iZXIiLCAiaXNTdHJpbmciLCAiaXNEYXRlIiwgImlzQXJyYXkiLCAieCIsICJmMiIsICJvMiIsICJrMiIsICJ2IiwgIkdyb3VwaW5ncyIsICJzbGljZSIsICJlbmQiLCAiZiIsICJSZXN1bHQiLCAiYSIsICJiIiwgIkZpbHRlcnMiLCAieCIsICJhIiwgImIiLCAiYXRvbSIsICJuZWdhdGVkIiwgIkV4cHJlc3Npb25zIiwgImluZGV4IiwgImZ1bmMiLCAiYSIsICJ2IiwgImsiLCAiaW1wb3J0X2Vtb2ppX3JlZ2V4IiwgIl8iLCAicSIsICJwIiwgImwiLCAiYSIsICJiIiwgImQiLCAidCIsICJ4IiwgImMiLCAiZiIsICJlbW9qaVJlZ2V4IiwgIl8yIiwgIl8zIiwgImNvbWJpbmUiLCAibm9kZSIsICJmIiwgImEiLCAiaSIsICJuZXh0IiwgIm1hdGNoIiwgIm1hdGNoMiIsICJsIiwgInNsaWNlIiwgIm9wdGlvbnMiLCAidm5vZGVJZCIsICJpc1ZhbGlkRWxlbWVudCIsICJyZXJlbmRlclF1ZXVlIiwgInByZXZEZWJvdW5jZSIsICJkZWZlciIsICJkZXB0aFNvcnQiLCAiZXZlbnRDbG9jayIsICJldmVudFByb3h5IiwgImV2ZW50UHJveHlDYXB0dXJlIiwgImkiLCAiRU1QVFlfT0JKIiwgIkVNUFRZX0FSUiIsICJJU19OT05fRElNRU5TSU9OQUwiLCAiaXNBcnJheSIsICJBcnJheSIsICJhc3NpZ24iLCAib2JqIiwgInByb3BzIiwgInJlbW92ZU5vZGUiLCAibm9kZSIsICJwYXJlbnROb2RlIiwgInJlbW92ZUNoaWxkIiwgImNyZWF0ZUVsZW1lbnQiLCAidHlwZSIsICJjaGlsZHJlbiIsICJrZXkiLCAicmVmIiwgIm5vcm1hbGl6ZWRQcm9wcyIsICJhcmd1bWVudHMiLCAibGVuZ3RoIiwgImNhbGwiLCAiZGVmYXVsdFByb3BzIiwgImNyZWF0ZVZOb2RlIiwgIm9yaWdpbmFsIiwgInZub2RlIiwgIl9fayIsICJfXyIsICJfX2IiLCAiX19lIiwgIl9fZCIsICJfX2MiLCAiY29uc3RydWN0b3IiLCAiX192IiwgIl9faSIsICJfX3UiLCAiY3JlYXRlUmVmIiwgImN1cnJlbnQiLCAiRnJhZ21lbnQiLCAiQmFzZUNvbXBvbmVudCIsICJjb250ZXh0IiwgInRoaXMiLCAiZ2V0RG9tU2libGluZyIsICJjaGlsZEluZGV4IiwgInNpYmxpbmciLCAidXBkYXRlUGFyZW50RG9tUG9pbnRlcnMiLCAiY2hpbGQiLCAiYmFzZSIsICJlbnF1ZXVlUmVuZGVyIiwgImMiLCAicHVzaCIsICJwcm9jZXNzIiwgIl9fciIsICJkZWJvdW5jZVJlbmRlcmluZyIsICJyZW5kZXJRdWV1ZUxlbmd0aCIsICJjb21wb25lbnQiLCAibmV3Vk5vZGUiLCAib2xkVk5vZGUiLCAib2xkRG9tIiwgImNvbW1pdFF1ZXVlIiwgInJlZlF1ZXVlIiwgInNvcnQiLCAic2hpZnQiLCAiX19QIiwgImRpZmYiLCAiX19uIiwgIm5hbWVzcGFjZVVSSSIsICJjb21taXRSb290IiwgImRpZmZDaGlsZHJlbiIsICJwYXJlbnREb20iLCAicmVuZGVyUmVzdWx0IiwgIm5ld1BhcmVudFZOb2RlIiwgIm9sZFBhcmVudFZOb2RlIiwgImdsb2JhbENvbnRleHQiLCAibmFtZXNwYWNlIiwgImV4Y2Vzc0RvbUNoaWxkcmVuIiwgImlzSHlkcmF0aW5nIiwgImNoaWxkVk5vZGUiLCAibmV3RG9tIiwgImZpcnN0Q2hpbGREb20iLCAib2xkQ2hpbGRyZW4iLCAibmV3Q2hpbGRyZW5MZW5ndGgiLCAiY29uc3RydWN0TmV3Q2hpbGRyZW5BcnJheSIsICJhcHBseVJlZiIsICJpbnNlcnQiLCAibmV4dFNpYmxpbmciLCAic2tld2VkSW5kZXgiLCAibWF0Y2hpbmdJbmRleCIsICJvbGRDaGlsZHJlbkxlbmd0aCIsICJyZW1haW5pbmdPbGRDaGlsZHJlbiIsICJza2V3IiwgIlN0cmluZyIsICJmaW5kTWF0Y2hpbmdJbmRleCIsICJ1bm1vdW50IiwgInBhcmVudFZOb2RlIiwgImNvbnRhaW5zIiwgImluc2VydEJlZm9yZSIsICJub2RlVHlwZSIsICJ0b0NoaWxkQXJyYXkiLCAib3V0IiwgInNvbWUiLCAieCIsICJ5IiwgInNldFN0eWxlIiwgInN0eWxlIiwgInZhbHVlIiwgInNldFByb3BlcnR5IiwgInRlc3QiLCAiZG9tIiwgIm5hbWUiLCAib2xkVmFsdWUiLCAidXNlQ2FwdHVyZSIsICJvIiwgImNzc1RleHQiLCAicmVwbGFjZSIsICJ0b0xvd2VyQ2FzZSIsICJfYXR0YWNoZWQiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJyZW1vdmVFdmVudExpc3RlbmVyIiwgImUiLCAicmVtb3ZlQXR0cmlidXRlIiwgInNldEF0dHJpYnV0ZSIsICJjcmVhdGVFdmVudFByb3h5IiwgImV2ZW50SGFuZGxlciIsICJfZGlzcGF0Y2hlZCIsICJldmVudCIsICJ0bXAiLCAiaXNOZXciLCAib2xkUHJvcHMiLCAib2xkU3RhdGUiLCAic25hcHNob3QiLCAiY2xlYXJQcm9jZXNzaW5nRXhjZXB0aW9uIiwgIm5ld1Byb3BzIiwgImlzQ2xhc3NDb21wb25lbnQiLCAicHJvdmlkZXIiLCAiY29tcG9uZW50Q29udGV4dCIsICJyZW5kZXJIb29rIiwgImNvdW50IiwgIm5ld1R5cGUiLCAib3V0ZXIiLCAicHJvdG90eXBlIiwgInJlbmRlciIsICJjb250ZXh0VHlwZSIsICJfX0UiLCAiZG9SZW5kZXIiLCAic3ViIiwgInN0YXRlIiwgIl9faCIsICJfc2IiLCAiX19zIiwgImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsICJjb21wb25lbnRXaWxsTW91bnQiLCAiY29tcG9uZW50RGlkTW91bnQiLCAiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsICJzaG91bGRDb21wb25lbnRVcGRhdGUiLCAiY29tcG9uZW50V2lsbFVwZGF0ZSIsICJjb21wb25lbnREaWRVcGRhdGUiLCAiZ2V0Q2hpbGRDb250ZXh0IiwgImdldFNuYXBzaG90QmVmb3JlVXBkYXRlIiwgIk1PREVfSFlEUkFURSIsICJpbmRleE9mIiwgImRpZmZFbGVtZW50Tm9kZXMiLCAiZGlmZmVkIiwgInJvb3QiLCAiY2IiLCAibmV3SHRtbCIsICJvbGRIdG1sIiwgIm5ld0NoaWxkcmVuIiwgImlucHV0VmFsdWUiLCAiY2hlY2tlZCIsICJsb2NhbE5hbWUiLCAiZG9jdW1lbnQiLCAiY3JlYXRlVGV4dE5vZGUiLCAiY3JlYXRlRWxlbWVudE5TIiwgImlzIiwgIl9fbSIsICJkYXRhIiwgImNoaWxkTm9kZXMiLCAiYXR0cmlidXRlcyIsICJfX2h0bWwiLCAiaW5uZXJIVE1MIiwgImhhc1JlZlVubW91bnQiLCAic2tpcFJlbW92ZSIsICJyIiwgImNvbXBvbmVudFdpbGxVbm1vdW50IiwgInJlcGxhY2VOb2RlIiwgImZpcnN0Q2hpbGQiLCAiaHlkcmF0ZSIsICJjbG9uZUVsZW1lbnQiLCAiY3JlYXRlQ29udGV4dCIsICJkZWZhdWx0VmFsdWUiLCAiY29udGV4dElkIiwgIkNvbnN1bWVyIiwgImNvbnRleHRWYWx1ZSIsICJQcm92aWRlciIsICJzdWJzIiwgImN0eCIsICJTZXQiLCAiX3Byb3BzIiwgImZvckVhY2giLCAiYWRkIiwgIm9sZCIsICJkZWxldGUiLCAiZXJyb3IiLCAiZXJyb3JJbmZvIiwgImN0b3IiLCAiaGFuZGxlZCIsICJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCAic2V0U3RhdGUiLCAiY29tcG9uZW50RGlkQ2F0Y2giLCAidW5kZWZpbmVkIiwgInVwZGF0ZSIsICJjYWxsYmFjayIsICJzIiwgImZvcmNlVXBkYXRlIiwgIlByb21pc2UiLCAidGhlbiIsICJiaW5kIiwgInJlc29sdmUiLCAic2V0VGltZW91dCIsICJhIiwgImIiLCAiY3VycmVudEluZGV4IiwgImN1cnJlbnRDb21wb25lbnQiLCAicHJldmlvdXNDb21wb25lbnQiLCAicHJldlJhZiIsICJjdXJyZW50SG9vayIsICJhZnRlclBhaW50RWZmZWN0cyIsICJvcHRpb25zIiwgIl9vcHRpb25zIiwgIm9sZEJlZm9yZURpZmYiLCAiX19iIiwgIm9sZEJlZm9yZVJlbmRlciIsICJfX3IiLCAib2xkQWZ0ZXJEaWZmIiwgImRpZmZlZCIsICJvbGRDb21taXQiLCAiX19jIiwgIm9sZEJlZm9yZVVubW91bnQiLCAidW5tb3VudCIsICJvbGRSb290IiwgIl9fIiwgImdldEhvb2tTdGF0ZSIsICJpbmRleCIsICJ0eXBlIiwgIl9faCIsICJob29rcyIsICJfX0giLCAibGVuZ3RoIiwgInB1c2giLCAidXNlU3RhdGUiLCAiaW5pdGlhbFN0YXRlIiwgInVzZVJlZHVjZXIiLCAiaW52b2tlT3JSZXR1cm4iLCAicmVkdWNlciIsICJpbml0IiwgImhvb2tTdGF0ZSIsICJfcmVkdWNlciIsICJhY3Rpb24iLCAiY3VycmVudFZhbHVlIiwgIl9fTiIsICJuZXh0VmFsdWUiLCAic2V0U3RhdGUiLCAiX2hhc1NjdUZyb21Ib29rcyIsICJ1cGRhdGVIb29rU3RhdGUiLCAicCIsICJzIiwgImMiLCAic3RhdGVIb29rcyIsICJmaWx0ZXIiLCAieCIsICJldmVyeSIsICJwcmV2U2N1IiwgImNhbGwiLCAidGhpcyIsICJzaG91bGRVcGRhdGUiLCAiZm9yRWFjaCIsICJob29rSXRlbSIsICJwcm9wcyIsICJzaG91bGRDb21wb25lbnRVcGRhdGUiLCAicHJldkNXVSIsICJjb21wb25lbnRXaWxsVXBkYXRlIiwgIl9fZSIsICJ0bXAiLCAidXNlRWZmZWN0IiwgImNhbGxiYWNrIiwgImFyZ3MiLCAic3RhdGUiLCAiX19zIiwgImFyZ3NDaGFuZ2VkIiwgIl9wZW5kaW5nQXJncyIsICJ1c2VMYXlvdXRFZmZlY3QiLCAidXNlUmVmIiwgImluaXRpYWxWYWx1ZSIsICJ1c2VNZW1vIiwgImN1cnJlbnQiLCAidXNlSW1wZXJhdGl2ZUhhbmRsZSIsICJyZWYiLCAiY3JlYXRlSGFuZGxlIiwgImNvbmNhdCIsICJmYWN0b3J5IiwgInVzZUNhbGxiYWNrIiwgInVzZUNvbnRleHQiLCAiY29udGV4dCIsICJwcm92aWRlciIsICJzdWIiLCAidmFsdWUiLCAidXNlRGVidWdWYWx1ZSIsICJmb3JtYXR0ZXIiLCAibiIsICJ1c2VFcnJvckJvdW5kYXJ5IiwgImNiIiwgImVyclN0YXRlIiwgImNvbXBvbmVudERpZENhdGNoIiwgImVyciIsICJlcnJvckluZm8iLCAidW5kZWZpbmVkIiwgInVzZUlkIiwgInJvb3QiLCAiX192IiwgIl9fbSIsICJtYXNrIiwgImZsdXNoQWZ0ZXJQYWludEVmZmVjdHMiLCAiY29tcG9uZW50IiwgInNoaWZ0IiwgIl9fUCIsICJpbnZva2VDbGVhbnVwIiwgImludm9rZUVmZmVjdCIsICJlIiwgInZub2RlIiwgInBhcmVudERvbSIsICJfX2siLCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwgImFmdGVyTmV4dEZyYW1lIiwgImNvbW1pdFF1ZXVlIiwgInNvbWUiLCAiaGFzRXJyb3JlZCIsICJIQVNfUkFGIiwgInJhZiIsICJkb25lIiwgImNsZWFyVGltZW91dCIsICJ0aW1lb3V0IiwgImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwgInNldFRpbWVvdXQiLCAiaG9vayIsICJjb21wIiwgImNsZWFudXAiLCAib2xkQXJncyIsICJuZXdBcmdzIiwgImFyZyIsICJmIiwgInNoYWxsb3dEaWZmZXJzIiwgImEiLCAiYiIsICJpIiwgIlB1cmVDb21wb25lbnQiLCAicCIsICJjIiwgInRoaXMiLCAicHJvcHMiLCAiY29udGV4dCIsICJtZW1vIiwgImNvbXBhcmVyIiwgInNob3VsZFVwZGF0ZSIsICJuZXh0UHJvcHMiLCAicmVmIiwgInVwZGF0ZVJlZiIsICJjYWxsIiwgImN1cnJlbnQiLCAiTWVtb2VkIiwgInNob3VsZENvbXBvbmVudFVwZGF0ZSIsICJjcmVhdGVFbGVtZW50IiwgImRpc3BsYXlOYW1lIiwgIm5hbWUiLCAicHJvdG90eXBlIiwgImlzUmVhY3RDb21wb25lbnQiLCAiX19mIiwgIkNvbXBvbmVudCIsICJpc1B1cmVSZWFjdENvbXBvbmVudCIsICJzdGF0ZSIsICJvbGREaWZmSG9vayIsICJvcHRpb25zIiwgIl9fYiIsICJ2bm9kZSIsICJ0eXBlIiwgIlJFQUNUX0ZPUldBUkRfU1lNQk9MIiwgIlN5bWJvbCIsICJmb3IiLCAiZm9yd2FyZFJlZiIsICJmbiIsICJGb3J3YXJkZWQiLCAicmVzdWx0IiwgIiQkdHlwZW9mIiwgInJlbmRlciIsICJtYXBGbiIsICJjaGlsZHJlbiIsICJ0b0NoaWxkQXJyYXkiLCAibWFwIiwgIkNoaWxkcmVuIiwgImZvckVhY2giLCAiY291bnQiLCAibGVuZ3RoIiwgIm9ubHkiLCAibm9ybWFsaXplZCIsICJ0b0FycmF5IiwgIm9sZENhdGNoRXJyb3IiLCAiX19lIiwgImVycm9yIiwgIm5ld1ZOb2RlIiwgIm9sZFZOb2RlIiwgImVycm9ySW5mbyIsICJ0aGVuIiwgImNvbXBvbmVudCIsICJfXyIsICJfX2MiLCAiX19rIiwgIm9sZFVubW91bnQiLCAidW5tb3VudCIsICJkZXRhY2hlZENsb25lIiwgImRldGFjaGVkUGFyZW50IiwgInBhcmVudERvbSIsICJfX0giLCAiZWZmZWN0IiwgIm9iaiIsICJfX1AiLCAiY2hpbGQiLCAicmVtb3ZlT3JpZ2luYWwiLCAib3JpZ2luYWxQYXJlbnQiLCAiX192IiwgImFwcGVuZENoaWxkIiwgIlN1c3BlbnNlIiwgIl9fdSIsICJfc3VzcGVuZGVycyIsICJzdXNwZW5kZWQiLCAiX19hIiwgImxhenkiLCAibG9hZGVyIiwgInByb20iLCAiTGF6eSIsICJleHBvcnRzIiwgImRlZmF1bHQiLCAiZSIsICJTdXNwZW5zZUxpc3QiLCAiX25leHQiLCAiX21hcCIsICJfX1IiLCAicHJvbWlzZSIsICJzdXNwZW5kaW5nVk5vZGUiLCAic3VzcGVuZGluZ0NvbXBvbmVudCIsICJwdXNoIiwgInJlc29sdmUiLCAicmVzb2x2ZWQiLCAib25SZXNvbHZlZCIsICJvblN1c3BlbnNpb25Db21wbGV0ZSIsICJzdXNwZW5kZWRWTm9kZSIsICJfX08iLCAic2V0U3RhdGUiLCAicG9wIiwgImZvcmNlVXBkYXRlIiwgImNvbXBvbmVudFdpbGxVbm1vdW50IiwgImRvY3VtZW50IiwgImRldGFjaGVkQ29tcG9uZW50IiwgImZhbGxiYWNrIiwgIkZyYWdtZW50IiwgImxpc3QiLCAibm9kZSIsICJkZWxldGUiLCAicmV2ZWFsT3JkZXIiLCAic2l6ZSIsICJDb250ZXh0UHJvdmlkZXIiLCAiZ2V0Q2hpbGRDb250ZXh0IiwgIlBvcnRhbCIsICJfdGhpcyIsICJjb250YWluZXIiLCAiX2NvbnRhaW5lciIsICJfdGVtcCIsICJub2RlVHlwZSIsICJwYXJlbnROb2RlIiwgImNoaWxkTm9kZXMiLCAiY29udGFpbnMiLCAiaW5zZXJ0QmVmb3JlIiwgImJlZm9yZSIsICJyZW1vdmVDaGlsZCIsICJzcGxpY2UiLCAiaW5kZXhPZiIsICJjcmVhdGVQb3J0YWwiLCAiZWwiLCAiY29udGFpbmVySW5mbyIsICJkZWxlZ2F0ZWQiLCAiZ2V0IiwgInVuc3VzcGVuZCIsICJ3cmFwcGVkVW5zdXNwZW5kIiwgIk1hcCIsICJyZXZlcnNlIiwgInNldCIsICJjb21wb25lbnREaWRVcGRhdGUiLCAiY29tcG9uZW50RGlkTW91bnQiLCAiUkVBQ1RfRUxFTUVOVF9UWVBFIiwgIkNBTUVMX1BST1BTIiwgIk9OX0FOSSIsICJDQU1FTF9SRVBMQUNFIiwgIklTX0RPTSIsICJvbkNoYW5nZUlucHV0VHlwZSIsICJ0ZXN0IiwgInBhcmVudCIsICJjYWxsYmFjayIsICJ0ZXh0Q29udGVudCIsICJwcmVhY3RSZW5kZXIiLCAiaHlkcmF0ZSIsICJwcmVhY3RIeWRyYXRlIiwgImtleSIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAiY29uZmlndXJhYmxlIiwgInYiLCAid3JpdGFibGUiLCAidmFsdWUiLCAib2xkRXZlbnRIb29rIiwgImV2ZW50IiwgImVtcHR5IiwgImlzUHJvcGFnYXRpb25TdG9wcGVkIiwgImNhbmNlbEJ1YmJsZSIsICJpc0RlZmF1bHRQcmV2ZW50ZWQiLCAiZGVmYXVsdFByZXZlbnRlZCIsICJwZXJzaXN0IiwgIm5hdGl2ZUV2ZW50IiwgImN1cnJlbnRDb21wb25lbnQiLCAiY2xhc3NOYW1lRGVzY3JpcHRvck5vbkVudW1iZXJhYmxlIiwgImVudW1lcmFibGUiLCAiY2xhc3MiLCAib2xkVk5vZGVIb29rIiwgIm5vcm1hbGl6ZWRQcm9wcyIsICJpc05vbkRhc2hlZFR5cGUiLCAibG93ZXJDYXNlZCIsICJ0b0xvd2VyQ2FzZSIsICJyZXBsYWNlIiwgIm11bHRpcGxlIiwgIkFycmF5IiwgImlzQXJyYXkiLCAic2VsZWN0ZWQiLCAiZGVmYXVsdFZhbHVlIiwgImNsYXNzTmFtZSIsICJvbGRCZWZvcmVSZW5kZXIiLCAiX19yIiwgIm9sZERpZmZlZCIsICJkaWZmZWQiLCAiZG9tIiwgIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwgIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCAicmVhZENvbnRleHQiLCAiX19uIiwgInVzZUNhbGxiYWNrIiwgInVzZUNvbnRleHQiLCAidXNlRGVidWdWYWx1ZSIsICJ1c2VEZWZlcnJlZFZhbHVlIiwgInVzZUVmZmVjdCIsICJ1c2VJZCIsICJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwgInVzZUluc2VydGlvbkVmZmVjdCIsICJ1c2VMYXlvdXRFZmZlY3QiLCAidXNlTWVtbyIsICJ1c2VSZWR1Y2VyIiwgInVzZVJlZiIsICJ1c2VTdGF0ZSIsICJ1c2VTeW5jRXh0ZXJuYWxTdG9yZSIsICJ1c2VUcmFuc2l0aW9uIiwgImNyZWF0ZUZhY3RvcnkiLCAidHlwZSIsICJjcmVhdGVFbGVtZW50IiwgImJpbmQiLCAiaXNWYWxpZEVsZW1lbnQiLCAiZWxlbWVudCIsICIkJHR5cGVvZiIsICJSRUFDVF9FTEVNRU5UX1RZUEUiLCAiaXNGcmFnbWVudCIsICJGcmFnbWVudCIsICJpc01lbW8iLCAiZGlzcGxheU5hbWUiLCAiU3RyaW5nIiwgInN0YXJ0c1dpdGgiLCAiY2xvbmVFbGVtZW50IiwgInByZWFjdENsb25lRWxlbWVudCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsICJjb250YWluZXIiLCAiX19rIiwgInByZWFjdFJlbmRlciIsICJmaW5kRE9NTm9kZSIsICJjb21wb25lbnQiLCAiYmFzZSIsICJub2RlVHlwZSIsICJ1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyIsICJjYWxsYmFjayIsICJhcmciLCAiZmx1c2hTeW5jIiwgIlN0cmljdE1vZGUiLCAic3RhcnRUcmFuc2l0aW9uIiwgImNiIiwgInVzZURlZmVycmVkVmFsdWUiLCAidmFsIiwgInVzZVRyYW5zaXRpb24iLCAidXNlSW5zZXJ0aW9uRWZmZWN0IiwgInVzZUxheW91dEVmZmVjdCIsICJpc0VsZW1lbnQiLCAidXNlU3luY0V4dGVybmFsU3RvcmUiLCAic3Vic2NyaWJlIiwgImdldFNuYXBzaG90IiwgInZhbHVlIiwgIl91c2VTdGF0ZSIsICJ1c2VTdGF0ZSIsICJfaW5zdGFuY2UiLCAiX18iLCAiX2dldFNuYXBzaG90IiwgImZvcmNlVXBkYXRlIiwgImRpZFNuYXBzaG90Q2hhbmdlIiwgInVzZUVmZmVjdCIsICJpbnN0IiwgIngiLCAieSIsICJsYXRlc3RHZXRTbmFwc2hvdCIsICJwcmV2VmFsdWUiLCAibmV4dFZhbHVlIiwgImVycm9yIiwgImluZGV4IiwgInVzZUlkIiwgInVzZVJlZHVjZXIiLCAidXNlUmVmIiwgInVzZUltcGVyYXRpdmVIYW5kbGUiLCAidXNlTWVtbyIsICJ1c2VDYWxsYmFjayIsICJ1c2VDb250ZXh0IiwgInVzZURlYnVnVmFsdWUiLCAidmVyc2lvbiIsICJDaGlsZHJlbiIsICJyZW5kZXIiLCAiaHlkcmF0ZSIsICJjcmVhdGVQb3J0YWwiLCAiY3JlYXRlQ29udGV4dCIsICJjcmVhdGVSZWYiLCAiQ29tcG9uZW50IiwgIlB1cmVDb21wb25lbnQiLCAibWVtbyIsICJmb3J3YXJkUmVmIiwgIlN1c3BlbnNlIiwgIlN1c3BlbnNlTGlzdCIsICJsYXp5IiwgIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwgInZub2RlSWQiLCAiaXNBcnJheSIsICJBcnJheSIsICJjcmVhdGVWTm9kZSIsICJ0eXBlIiwgInByb3BzIiwgImtleSIsICJpc1N0YXRpY0NoaWxkcmVuIiwgIl9fc291cmNlIiwgIl9fc2VsZiIsICJyZWYiLCAiaSIsICJub3JtYWxpemVkUHJvcHMiLCAidm5vZGUiLCAiX19rIiwgIl9fIiwgIl9fYiIsICJfX2UiLCAiX19kIiwgIl9fYyIsICJjb25zdHJ1Y3RvciIsICJfX3YiLCAiX19pIiwgIl9fdSIsICJkZWZhdWx0UHJvcHMiLCAib3B0aW9ucyIsICJpbmxpbmUiLCAieCIsICJBIiwgIlQiLCAieSIsICJ1IiwgImVuZCIsICJxIiwgInAiLCAic3RhdGUiLCAidSIsICJ4IiwgIlQiLCAicSIsICJDIiwgImlubGluZSIsICJBIiwgInkiLCAidmFsdWUiLCAiYiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiXyIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaCIsICJUIiwgInkiLCAiQSIsICJlIiwgIkEiLCAieSIsICJxIiwgIngiLCAiaCIsICJ1IiwgImgiLCAieSIsICJlcnJvciIsICJ4IiwgImFwaSIsICJ1IiwgIlQiLCAic3R5bGUiLCAidSIsICJpbXBvcnRfb2JzaWRpYW4iLCAidSIsICJkaXNhYmxlZCIsICJvbkNoYW5nZSIsICJxIiwgIm1pbiIsICJtYXgiLCAib3B0aW9ucyIsICJlIiwgImljb24iLCAiYyIsICJGaWVsZGJlYXJpbmdzIiwgIkV4dHJhY3RvcnMiLCAia2V5IiwgImZyb250bWF0dGVyIiwgIlAiLCAiaW1wb3J0X2Vtb2ppX3JlZ2V4IiwgIkpzb25Db252ZXJzaW9uIiwgImpzb24iLCAidiIsICJsaW5lIiwgImNoYXIiLCAibGluZSIsICJhIiwgImIiLCAiaSIsICJlbW9qaVJlZ2V4IiwgImxpbmUiLCAicmVnZXgiLCAibWF0Y2giLCAiZiIsICJwcmVmaXgiLCAiZiIsICJsIiwgImkiLCAibGluZSIsICJ4IiwgIm8iLCAidCIsICJyIiwgImUiLCAiaSIsICJ0IiwgImkiLCAiZSIsICJyIiwgInQiLCAiZSIsICJyIiwgInQiLCAibyIsICJyIiwgInIiLCAibCIsICJ0IiwgImUiLCAibiIsICJpIiwgInUiLCAiYSIsICJmIiwgIm8iLCAiciIsICJhIiwgImUiLCAibiIsICJyIiwgImEiLCAidCIsICJyIiwgImUiLCAiciIsICJlIiwgInQiLCAibiIsICJlIiwgInQiLCAibyIsICJyIiwgImkiLCAicyIsICJfcmVmIiwgImgiLCAib25DaGFuZ2UiLCAicSIsICJ2YWx1ZSIsICJuIiwgImUiLCAidCIsICJyIiwgImEiLCAibiIsICJlIiwgInIiLCAidCIsICJvIiwgInQiLCAiZSIsICJ0IiwgImUiLCAidCIsICJ0IiwgIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCAiZSIsICJ0IiwgImUiLCAidCIsICJyIiwgImUiLCAibyIsICJzIiwgInIiLCAiciIsICJyIiwgImkiLCAib3B0aW9ucyIsICJTdHlsZVNoZWV0IiwgImUiLCAibGVuZ3RoIiwgIm1hdGNoIiwgImJlZ2luIiwgImVuZCIsICJsZW5ndGgiLCAiYmVnaW4iLCAiZW5kIiwgIndoaXRlc3BhY2UiLCAicGFyc2UiLCAib2Zmc2V0IiwgImxlbmd0aCIsICJjaGFyYWN0ZXIiLCAiY2hhcmFjdGVycyIsICJ3aGl0ZXNwYWNlIiwgInNpemUiLCAiaSIsICJqIiwgImsiLCAieCIsICJ5IiwgInoiLCAibGVuZ3RoIiwgImkiLCAibGVuZ3RoIiwgImkiLCAid2Vha01lbW9pemUiLCAiZm4iLCAiaWRlbnRpZmllcldpdGhQb2ludFRyYWNraW5nIiwgImJlZ2luIiwgImNoYXJhY3RlciIsICJ0b1J1bGVzIiwgImdldFJ1bGVzIiwgImNvbXBhdCIsICJpIiwgImsiLCAiaiIsICJyZW1vdmVMYWJlbCIsICJsZW5ndGgiLCAicHJlZml4ZXIiLCAibWF0Y2giLCAiY3JlYXRlQ2FjaGUiLCAib3B0aW9ucyIsICJub2RlIiwgInN0eWxpcyIsICJzdHlsZXMiLCAiX3N0eWxpcyIsICJfaW5zZXJ0IiwgImlzQnJvd3NlciIsICJjbGFzc05hbWVzIiwgInJlZ2lzdGVyU3R5bGVzIiwgImluc2VydFN0eWxlcyIsICJoIiwgImsiLCAiaSIsICJpc0RldmVsb3BtZW50IiwgImlzQ3VzdG9tUHJvcGVydHkiLCAiaXNQcm9jZXNzYWJsZVZhbHVlIiwgInByb2Nlc3NTdHlsZVZhbHVlIiwgIm1hdGNoIiwgInAyIiwgImtleWZyYW1lcyIsICJuZXh0IiwgInN0eWxlcyIsICJzdHJpbmciLCAiaSIsICJpc0Jyb3dzZXIiLCAic3luY0ZhbGxiYWNrIiwgImlzRGV2ZWxvcG1lbnQiLCAiaXNCcm93c2VyIiwgIndpdGhFbW90aW9uQ2FjaGUiLCAidyIsICJ4IiwgImlzQnJvd3NlciIsICJjcmVhdGVFbW90aW9uUHJvcHMiLCAiSW5zZXJ0aW9uIiwgIl9yZWYiLCAiaXNCcm93c2VyIiwgIl9yZWYyIiwgIm5leHQiLCAieCIsICJpc0RldmVsb3BtZW50IiwgImltcG9ydF9leHRlbmRzIiwgImpzeCIsICJpIiwgImtleWZyYW1lcyIsICJlIiwgInQiLCAidiIsICJ4IiwgInkiLCAibm9kZSIsICJfcmVmIiwgImdldENvbXB1dGVkU3R5bGUiLCAibm9kZSIsICJnZXRDb21wdXRlZFN0eWxlIiwgIm5vZGUiLCAiY3NzIiwgImdldENvbXB1dGVkU3R5bGUiLCAiJCIsICJ4IiwgInkiLCAib3B0aW9ucyIsICJlIiwgIl9yZWYiLCAibm9vcCIsICJwcmVmaXgiLCAiaSIsICJjbGVhblZhbHVlIiwgImNsZWFuQ29tbW9uUHJvcHMiLCAiZ2V0U3R5bGVQcm9wcyIsICJ0IiwgImIiLCAiYyIsICJkIiwgImUiLCAidyIsICJyZW1vdmVQcm9wcyIsICJfcmVmIiwgIl9yZWYyIiwgImNvbnRyb2xIZWlnaHQiLCAiY29lcmNlUGxhY2VtZW50IiwgInAiLCAibWVudUNTUyIsICJfb2JqZWN0U3ByZWFkMiIsICJib3JkZXJSYWRpdXMiLCAic3BhY2luZyIsICJjb2xvcnMiLCAiTWVudVBsYWNlciIsICJ4IiwgIkEiLCAiaCIsICJ1c2VMYXlvdXRFZmZlY3QiLCAiTWVudSIsICJtZW51TGlzdENTUyIsICJiYXNlVW5pdCIsICJNZW51TGlzdCIsICJub3RpY2VDU1MiLCAiTm9PcHRpb25zTWVzc2FnZSIsICJMb2FkaW5nTWVzc2FnZSIsICJtZW51UG9ydGFsQ1NTIiwgIm9mZnNldCIsICJwb3NpdGlvbiIsICJNZW51UG9ydGFsIiwgIlQiLCAicSIsICJQIiwgImNvbnRhaW5lckNTUyIsICJTZWxlY3RDb250YWluZXIiLCAidmFsdWVDb250YWluZXJDU1MiLCAiVmFsdWVDb250YWluZXIiLCAiaW5kaWNhdG9yc0NvbnRhaW5lckNTUyIsICJJbmRpY2F0b3JzQ29udGFpbmVyIiwgIlN2ZyIsICJzaXplIiwgIkNyb3NzSWNvbiIsICJEb3duQ2hldnJvbiIsICJiYXNlQ1NTIiwgIkRyb3Bkb3duSW5kaWNhdG9yIiwgIkNsZWFySW5kaWNhdG9yIiwgImluZGljYXRvclNlcGFyYXRvckNTUyIsICJJbmRpY2F0b3JTZXBhcmF0b3IiLCAibG9hZGluZ0luZGljYXRvckNTUyIsICJMb2FkaW5nRG90IiwgIkxvYWRpbmdJbmRpY2F0b3IiLCAiY3NzIiwgIkNvbnRyb2wiLCAiZ3JvdXBDU1MiLCAiR3JvdXAiLCAiZ3JvdXBIZWFkaW5nQ1NTIiwgIkdyb3VwSGVhZGluZyIsICJfZXhjbHVkZWQiLCAiaW5wdXRDU1MiLCAiaW5wdXRTdHlsZSIsICJJbnB1dCIsICJtdWx0aVZhbHVlQ1NTIiwgIm11bHRpVmFsdWVMYWJlbENTUyIsICJtdWx0aVZhbHVlUmVtb3ZlQ1NTIiwgIk11bHRpVmFsdWVHZW5lcmljIiwgIk11bHRpVmFsdWUiLCAiY29tcG9uZW50cyIsICJvcHRpb25DU1MiLCAiT3B0aW9uIiwgInBsYWNlaG9sZGVyQ1NTIiwgIlBsYWNlaG9sZGVyIiwgIlNpbmdsZVZhbHVlIiwgImRlZmF1bHRDb21wb25lbnRzIiwgIkExMXlUZXh0IiwgIm9wdGlvbnMiLCAiaXNBcHBsZURldmljZSIsICJnZXRBcnJheUluZGV4IiwgImRpc2FibGVkIiwgIkxpdmVSZWdpb24iLCAiZ2V0T3B0aW9uTGFiZWwiLCAiaXNPcHRpb25EaXNhYmxlZCIsICJzY3JlZW5SZWFkZXJTdGF0dXMiLCAiVCIsICJhc09wdGlvbiIsICJkIiwgImkiLCAiaiIsICJzdHJpcERpYWNyaXRpY3MiLCAibWF0Y2giLCAibWVtb2l6ZU9uZSIsICJ0cmltU3RyaW5nIiwgImRlZmF1bHRTdHJpbmdpZnkiLCAiY3JlYXRlRmlsdGVyIiwgImNvbmZpZyIsICJzdHJpbmdpZnkiLCAidHJpbSIsICJfZXhjbHVkZWQiLCAiX3JlZiIsICJjYW5jZWxTY3JvbGwiLCAiQSIsICJxIiwgInkiLCAiZSIsICJibHVyU2VsZWN0SW5wdXQiLCAidGFyZ2V0UmVmIiwgIl9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fIiwgIl9yZWYyIiwgIlJlcXVpcmVkSW5wdXQiLCAib25Gb2N1cyIsICJvbkNoYW5nZSIsICJmb3JtYXRHcm91cExhYmVsIiwgImNzcyIsICJfcmVmIiwgImdldE9wdGlvbkxhYmVsIiwgImdldE9wdGlvblZhbHVlIiwgImNhdGVnb3JpemVkT3B0aW9uIiwgIm9wdGlvbnMiLCAiZ2V0Rm9jdXNlZE9wdGlvbklkIiwgImkiLCAic2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyIsICJTZWxlY3QiLCAib25DaGFuZ2UiLCAiY3VzdG9tIiwgIl9yZWYyIiwgImUiLCAiaXNDbGVhcmFibGUiLCAiaXNPcHRpb25EaXNhYmxlZCIsICJmb3JtYXRHcm91cExhYmVsIiwgIklucHV0IiwgIk11bHRpVmFsdWUiLCAiTXVsdGlWYWx1ZUNvbnRhaW5lciIsICJNdWx0aVZhbHVlTGFiZWwiLCAiTXVsdGlWYWx1ZVJlbW92ZSIsICJTaW5nbGVWYWx1ZSIsICJQbGFjZWhvbGRlciIsICJDbGVhckluZGljYXRvciIsICJMb2FkaW5nSW5kaWNhdG9yIiwgIkRyb3Bkb3duSW5kaWNhdG9yIiwgIkluZGljYXRvclNlcGFyYXRvciIsICJHcm91cCIsICJHcm91cEhlYWRpbmciLCAiTWVudSIsICJNZW51TGlzdCIsICJNZW51UG9ydGFsIiwgIkxvYWRpbmdNZXNzYWdlIiwgIk5vT3B0aW9uc01lc3NhZ2UiLCAiT3B0aW9uIiwgImxvYWRpbmdNZXNzYWdlIiwgIm5vT3B0aW9uc01lc3NhZ2UiLCAicmVuZGVyIiwgImRlbGltaXRlciIsICJDb250cm9sIiwgIkluZGljYXRvcnNDb250YWluZXIiLCAiU2VsZWN0Q29udGFpbmVyIiwgIlZhbHVlQ29udGFpbmVyIiwgImltcG9ydF9vYmplY3RTcHJlYWQyIiwgImltcG9ydF9zbGljZWRUb0FycmF5IiwgImltcG9ydF9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsICJpbXBvcnRfY2xhc3NDYWxsQ2hlY2siLCAiaW1wb3J0X2NyZWF0ZUNsYXNzIiwgImltcG9ydF9pbmhlcml0cyIsICJpbXBvcnRfY3JlYXRlU3VwZXIiLCAiaW1wb3J0X3RvQ29uc3VtYWJsZUFycmF5IiwgImltcG9ydF90eXBlb2YiLCAiaW1wb3J0X3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsICJpbXBvcnRfZGVmaW5lUHJvcGVydHkiLCAiaW1wb3J0X3VzZV9pc29tb3JwaGljX2xheW91dF9lZmZlY3QiLCAidyIsICJvbkNoYW5nZSIsICJ1IiwgIkEiLCAieSIsICJlIiwgInUiLCAiY29uZmlnIiwgIlQiLCAiciIsICJpIiwgIl9hIiwgInUiLCAidGV4dCIsICJ0cmltIiwgIm1hdGNoIiwgImwiLCAieCIsICJ0IiwgIllhbWxDb252ZXJzaW9uIiwgImxpbmUiLCAib25DaGFuZ2UiLCAieCIsICJxIiwgInRleHQiLCAiaW5pdGlhbCIsICJUIiwgInAiLCAicyIsICJBIiwgInUiLCAieSIsICJjb25maWciLCAib25DaGFuZ2UiLCAieCIsICJvIiwgInYiLCAiZSIsICJ0ZXh0IiwgImlubGluZSIsICJoIiwgIngiLCAidSIsICJ1IiwgIlQiLCAieCIsICJhIiwgImgiLCAiY29tcGxldGVkUmVmIiwgIkEiLCAieSIsICJjIiwgImUiLCAiZiIsICJfYSIsICJ2IiwgIlQiLCAidSIsICJpIiwgInAiLCAiaCIsICJxIiwgInBhZ2UiLCAieCIsICJtaW4iLCAibWF4IiwgIl8iLCAiYSIsICJiIiwgIkEiLCAiVCIsICJ1IiwgImNvbHVtbiIsICJjb25maWciLCAieCIsICJ2IiwgInIiLCAiZSIsICJpY29uIiwgImljb24iLCAidSIsICJUIiwgInUiLCAiZiIsICJyIiwgImVuZCIsICJlIiwgInMiLCAibCIsICJjb3B5IiwgImEiLCAiYiIsICJ2IiwgIngiLCAiaSIsICJuZXh0IiwgIkRhdGFBcnJheSIsICJmcm9tIiwgIkNvZXJjZSIsICJzdHJpbmciLCAiZGVmZXJyZWQiLCAiYiIsICJsYW5ndWFnZSIsICJsaW5lIiwgInUiLCAiYiIsICJpbmxpbmUiLCAidGV4dCIsICJoIiwgImUiLCAibWluIiwgIm1heCIsICJvcHRpb25zIiwgIm9uQ2hhbmdlIiwgInEiLCAieCIsICJUIiwgImEiLCAibiIsICJUcmVlVXRpbHMiLCAibm9kZSIsICJuIiwgImwiLCAiZW5kIiwgInNsaWNlIiwgImluaXRpYWwiLCAiYSIsICJiIiwgInQiLCAiciIsICJxIiwgImsiLCAiVCIsICJwIiwgImNvbHVtbiIsICJ4IiwgInUiLCAiY29uZmlnIiwgImkiLCAidiIsICJ5IiwgImUiLCAiQSIsICJDb250ZXh0IiwgInMiLCAiX2EiLCAiYXBpIiwgImgiLCAicSIsICJwIiwgIlQiLCAieSIsICJ4IiwgIkEiLCAiaW5saW5lIiwgInUiLCAiZW5kIiwgImUiLCAicHJvY2VzcyIsICJQYXJzaW1tb24iLCAiZSIsICJpbXBvcnRfb2JzaWRpYW4iLCAicHJlZml4IiwgIkJUcmVlIiwgImEiLCAiYiIsICJhIiwgImIiLCAiYyIsICJ4IiwgImMiLCAic2VsZiIsICJrIiwgInAiLCAiRnVuY3Rpb25zIiwgIkRlZmF1bHRGdW5jdGlvbnMiLCAiXyIsICJhIiwgInQiLCAiZCIsICJlIiwgIl9uIiwgImwiLCAibGluayIsICJwYXJzZWREYXRlIiwgImYiLCAibWF0Y2giLCAiZGF0ZSIsICJuIiwgImIiLCAidiIsICJvYmplY3QiLCAibGlzdCIsICJzIiwgInN0ciIsICJzdHJpbmciLCAiZW5kIiwgImxlbmd0aCIsICJmdW5jdGlvbnMiLCAicyIsICJhIiwgImIiLCAiYXJncyIsICJyZXNvbHZlZCIsICJlIiwgIlZhcmlhYmxlcyIsICJmb2xkZWQiLCAiZiIsICJGaWx0ZXJUcmVlcyIsICJmaWx0ZXIiLCAiYSIsICJpZCIsICJsb2NhbGZvcmFnZSIsICJrIiwgIldvcmtlciIsICJpbXBvcnRfb2JzaWRpYW4iLCAibm93IiwgIldvcmtlciIsICJpbXBvcnRfb2JzaWRpYW4iLCAic2l6ZSIsICJpbXBvcnRfcXVldWUiLCAiaW1wb3J0X29ic2lkaWFuIiwgIngiLCAicyIsICJsIiwgImYiLCAiYSIsICJyZXN1bHQiLCAic3RvcmUiLCAibmV4dCIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgIngiLCAiVCIsICJoIiwgInEiLCAidSIsICJlIiwgInMiLCAidiIsICJvbkNoYW5nZSIsICJvcHRpb25zIiwgImYiLCAiYXBpIiwgInUiLCAiY29uZmlnIiwgInRleHQiLCAiZSJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNpbW1vbi9idWlsZC9wYXJzaW1tb24udW1kLm1pbi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvc2V0LWFycmF5L3NyYy9zZXQtYXJyYXkudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9zcmMvdmxxLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvc3JjL3N0cmluZ3MudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9zcmMvc2NvcGVzLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvc3JjL3NvdXJjZW1hcC1jb2RlYy50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvcmVzb2x2ZS11cmkvc3JjL3Jlc29sdmUtdXJpLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC90cmFjZS1tYXBwaW5nL3NyYy9yZXNvbHZlLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC90cmFjZS1tYXBwaW5nL3NyYy9zdHJpcC1maWxlbmFtZS50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvc291cmNlbWFwLXNlZ21lbnQudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcvc3JjL3NvcnQudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcvc3JjL2JpbmFyeS1zZWFyY2gudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcvc3JjL2J5LXNvdXJjZS50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvYW55LW1hcC50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvdHJhY2UtbWFwcGluZy9zcmMvdHJhY2UtbWFwcGluZy50cyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGpyaWRnZXdlbGwvZ2VuLW1hcHBpbmcvc3JjL3NvdXJjZW1hcC1zZWdtZW50LnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9nZW4tbWFwcGluZy9zcmMvZ2VuLW1hcHBpbmcudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWludGVyZmFjZS1jaGVja2VyL2Rpc3QvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvdHMtaW50ZXJmYWNlLWNoZWNrZXIvZGlzdC90eXBlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvdHMtaW50ZXJmYWNlLWNoZWNrZXIvZGlzdC9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbGluZXMtYW5kLWNvbHVtbnMvYnVpbGQvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvaGFzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2NoZWNrUHJvcFR5cGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zb3J0ZWQtYnRyZWUvYit0cmVlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sb2NhbGZvcmFnZS9kaXN0L2xvY2FsZm9yYWdlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZGF0YXN0cnVjdHVyZXMtanMvcXVldWUvc3JjL3F1ZXVlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZGF0YXN0cnVjdHVyZXMtanMvcXVldWUvaW5kZXguanMiLCAiLi4vLi4vc3JjL21haW4udHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9sdXhvbi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2Vycm9ycy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvZm9ybWF0cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvZW5nbGlzaC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvZm9ybWF0dGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9pbnZhbGlkLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmVzL3N5c3RlbVpvbmUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9JQU5BWm9uZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmVzL2ludmFsaWRab25lLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC96b25lVXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL3NldHRpbmdzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9sb2NhbGUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3JlZ2V4UGFyc2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvZHVyYXRpb24uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbnRlcnZhbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2luZm8uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2RpZmYuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2RpZ2l0cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvdG9rZW5QYXJzZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2NvbnZlcnNpb25zLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sdXhvbi9zcmMvZGF0ZXRpbWUuanMiLCAiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZXJzLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9lbW9qaS1yZWdleC9pbmRleC5tanMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vbGluay50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9wYXJzZXIudHMiLCAiLi4vLi4vc3JjL2V4cHJlc3Npb24vbGl0ZXJhbC50cyIsICIuLi8uLi9zcmMvYXBpL3Jlc3VsdC50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9maWx0ZXJzLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2V4cHJlc3Npb24udHMiLCAiLi4vLi4vc3JjL3VpL21hcmtkb3duLnRzeCIsICIuLi8uLi9zcmMvdXRpbHMvbWVkaWEudHMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvY29uc3RhbnRzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL3V0aWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvb3B0aW9ucy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtZWxlbWVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jb21wb25lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvZGlmZi9wcm9wcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jcmVhdGUtY29udGV4dC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9kaWZmL2NoaWxkcmVuLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2RpZmYvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2Nsb25lLWVsZW1lbnQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9zcmMvZGlmZi9jYXRjaC1lcnJvci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvdXRpbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvUHVyZUNvbXBvbmVudC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvbWVtby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvZm9yd2FyZFJlZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvQ2hpbGRyZW4uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9jb21wYXQvc3JjL3N1c3BlbnNlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9zdXNwZW5zZS1saXN0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3Qvc3JjL2NvbnN0YW50cy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcG9ydGFscy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9zcmMvcmVuZGVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9wcmVhY3QvY29tcGF0L3NyYy9pbmRleC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L2pzeC1ydW50aW1lL3NyYy91dGlscy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcHJlYWN0L3NyYy9jb25zdGFudHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3ByZWFjdC9qc3gtcnVudGltZS9zcmMvaW5kZXguanMiLCAiLi4vLi4vc3JjL2FwaS91aS9lbWJlZC50c3giLCAiLi4vLi4vc3JjL3VpL2phdmFzY3JpcHQudHN4IiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL3Rva2VuaXplci90eXBlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9wYXJzZXIvdG9rZW5pemVyL3N0YXRlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci91dGlsL2NoYXJjb2Rlcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9wYXJzZXIvdHJhdmVyc2VyL2Jhc2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL3RyYXZlcnNlci91dGlsLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci91dGlsL3doaXRlc3BhY2UuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL3V0aWwvaWRlbnRpZmllci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9wYXJzZXIvdG9rZW5pemVyL3JlYWRXb3JkVHJlZS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9wYXJzZXIvdG9rZW5pemVyL3JlYWRXb3JkLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci90b2tlbml6ZXIvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vdXRpbC9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci9wbHVnaW5zL2pzeC94aHRtbC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2dldEpTWFByYWdtYUluZm8uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vdHJhbnNmb3JtZXJzL1RyYW5zZm9ybWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3RyYW5zZm9ybWVycy9KU1hUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2dldE5vblR5cGVJZGVudGlmaWVycy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9DSlNJbXBvcnRQcm9jZXNzb3IuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vY29tcHV0ZVNvdXJjZU1hcC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9IZWxwZXJNYW5hZ2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL2lkZW50aWZ5U2hhZG93ZWRHbG9iYWxzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvZ2V0SWRlbnRpZmllck5hbWVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL05hbWVNYW5hZ2VyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL09wdGlvbnMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vT3B0aW9ucy1nZW4tdHlwZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL3RyYXZlcnNlci9sdmFsLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci9wbHVnaW5zL3R5cGVzY3JpcHQuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL3BsdWdpbnMvanN4L2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci9wbHVnaW5zL3R5cGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci90cmF2ZXJzZXIvZXhwcmVzc2lvbi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9wYXJzZXIvcGx1Z2lucy9mbG93LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci90cmF2ZXJzZXIvc3RhdGVtZW50LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3BhcnNlci90cmF2ZXJzZXIvaW5kZXguanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vcGFyc2VyL2luZGV4LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvaXNBc3luY09wZXJhdGlvbi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9Ub2tlblByb2Nlc3Nvci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2dldENsYXNzSW5mby5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2VsaWRlSW1wb3J0RXF1YWxzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvZ2V0RGVjbGFyYXRpb25JbmZvLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvaXNFeHBvcnRGcm9tLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3RyYW5zZm9ybWVycy9DSlNJbXBvcnRUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS90cmFuc2Zvcm1lcnMvRVNNSW1wb3J0VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vdHJhbnNmb3JtZXJzL0Zsb3dUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS90cmFuc2Zvcm1lcnMvSmVzdEhvaXN0VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vdHJhbnNmb3JtZXJzL051bWVyaWNTZXBhcmF0b3JUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS90cmFuc2Zvcm1lcnMvT3B0aW9uYWxDYXRjaEJpbmRpbmdUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS90cmFuc2Zvcm1lcnMvT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS90cmFuc2Zvcm1lcnMvUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3RyYW5zZm9ybWVycy9SZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3V0aWwvaXNJZGVudGlmaWVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdWNyYXNlL2Rpc3QvZXNtL3RyYW5zZm9ybWVycy9UeXBlU2NyaXB0VHJhbnNmb3JtZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N1Y3Jhc2UvZGlzdC9lc20vdHJhbnNmb3JtZXJzL1Jvb3RUcmFuc2Zvcm1lci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2Zvcm1hdFRva2Vucy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS91dGlsL2dldFRTSW1wb3J0ZWROYW1lcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3VjcmFzZS9kaXN0L2VzbS9pbmRleC5qcyIsICIuLi8uLi9zcmMvdXRpbHMvamF2YXNjcmlwdC50cyIsICIuLi8uLi9zcmMvdWkvaG9va3MudHMiLCAiLi4vLi4vc3JjL3VpL2xvYWRpbmctYm91bmRhcnkudHN4IiwgIi4uLy4uL3NyYy9hcGkvdWkvbGF5b3V0LnRzeCIsICIuLi8uLi9zcmMvYXBpL3VpL2Jhc2ljcy50c3giLCAiLi4vLi4vc3JjL2luZGV4L3R5cGVzL2luZGV4YWJsZS50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9maWVsZC50cyIsICIuLi8uLi9zcmMvaW5kZXgvaW1wb3J0L2lubGluZS1maWVsZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvZGF0YS50cyIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMvanNvbi9jb21tb24udHMiLCAiLi4vLi4vc3JjL2luZGV4L3R5cGVzL21hcmtkb3duLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJpbWl0aXZlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1Byb3BlcnR5S2V5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5LmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvdXNlU3RhdGVNYW5hZ2VyLTdlMWU4NDg5LmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2dldFByb3RvdHlwZU9mLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXIuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vc2hlZXQvZGlzdC9lbW90aW9uLXNoZWV0LmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9FbnVtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1V0aWxpdHkuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVG9rZW5pemVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1BhcnNlci5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9TZXJpYWxpemVyLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL01pZGRsZXdhcmUuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL21lbW9pemUvZGlzdC9lbW90aW9uLW1lbW9pemUuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9jYWNoZS9kaXN0L2Vtb3Rpb24tY2FjaGUuYnJvd3Nlci5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL3V0aWxzL2Rpc3QvZW1vdGlvbi11dGlscy5icm93c2VyLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaGFzaC9kaXN0L2Vtb3Rpb24taGFzaC5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL3VuaXRsZXNzL2Rpc3QvZW1vdGlvbi11bml0bGVzcy5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL3NlcmlhbGl6ZS9kaXN0L2Vtb3Rpb24tc2VyaWFsaXplLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MvZGlzdC9lbW90aW9uLXVzZS1pbnNlcnRpb24tZWZmZWN0LXdpdGgtZmFsbGJhY2tzLmJyb3dzZXIuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9yZWFjdC9kaXN0L2Vtb3Rpb24tZWxlbWVudC01NDg2YzUxYy5icm93c2VyLmVzbS5qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vcmVhY3QvZGlzdC9lbW90aW9uLXJlYWN0LmJyb3dzZXIuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90YWdnZWRUZW1wbGF0ZUxpdGVyYWwuanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS91dGlscy9kaXN0L2Zsb2F0aW5nLXVpLnV0aWxzLm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMuZG9tLm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2RvbS9kaXN0L2Zsb2F0aW5nLXVpLmRvbS5tanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QvZGlzdC91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmJyb3dzZXIuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9pbmRleC1hMzAxZjUyNi5lc20uanMiLCAiLi4vLi4vbm9kZV9tb2R1bGVzL21lbW9pemUtb25lL2Rpc3QvbWVtb2l6ZS1vbmUuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9TZWxlY3QtMWZkNTg4YzkuZXNtLmpzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9yZWFjdC1zZWxlY3QuZXNtLmpzIiwgIi4uLy4uL3NyYy91aS9maWVsZHMvYm9vbGVhbi1maWVsZC50c3giLCAiLi4vLi4vc3JjL3VpL2ZpZWxkcy9wcm9ncmVzcy1maWVsZC50c3giLCAiLi4vLi4vc3JjL3VpL2ZpZWxkcy9yYXRpbmcudHN4IiwgIi4uLy4uL3NyYy91dGlscy90YXNrLnRzIiwgIi4uLy4uL3NyYy9pbmRleC90eXBlcy95YW1sLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9lZGl0L2ZpZWxkLnRzIiwgIi4uLy4uL3NyYy91dGlscy9maWVsZHMudHMiLCAiLi4vLi4vc3JjL3VpL2ZpZWxkcy9lZGl0YWJsZS50c3giLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy9saXN0LnRzeCIsICIuLi8uLi9zcmMvYXBpL3VpL3ZpZXdzL3Rhc2sudHN4IiwgIi4uLy4uL3NyYy9hcGkvdWkvdmlld3MvcGFnaW5nLnRzeCIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lL2luZGV4LmVzLmpzIiwgIi4uLy4uL3NyYy9hcGkvdWkvdmlld3MvdGFibGUudHN4IiwgIi4uLy4uL3NyYy9hcGkvdWkvdmlld3MvY2FsbG91dC50c3giLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy9jYXJkcy50c3giLCAiLi4vLi4vc3JjL2FwaS9kYXRhLWFycmF5LnRzIiwgIi4uLy4uL3NyYy9hcGkvY29lcmNlLnRzIiwgIi4uLy4uL3NyYy91dGlscy9kZWZlcnJlZC50cyIsICIuLi8uLi9zcmMvYXBpL3NjcmlwdC1jYWNoZS50cyIsICIuLi8uLi9zcmMvdWkvZmllbGRzL2VkaXRhYmxlLWZpZWxkcy50c3giLCAiLi4vLi4vc3JjL2FwaS91aS92aWV3cy90cmVlLXRhYmxlLnRzeCIsICIuLi8uLi9zcmMvYXBpL2xvY2FsLWFwaS50c3giLCAiLi4vLi4vc3JjL2FwaS9hcGkudHMiLCAiLi4vLi4vc3JjL2luZGV4L3N0b3JhZ2UvZm9sZGVyLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9zdG9yYWdlL2ludmVydGVkLnRzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9mbGF0cXVldWUvaW5kZXguanMiLCAiLi4vLi4vc3JjL2luZGV4L3N0b3JhZ2UvZmllbGRzLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2JpbmFyeW9wLnRzIiwgIi4uLy4uL3NyYy9leHByZXNzaW9uL2Z1bmN0aW9ucy50cyIsICIuLi8uLi9zcmMvZXhwcmVzc2lvbi9ldmFsdWF0b3IudHMiLCAiLi4vLi4vc3JjL2luZGV4L3N0b3JhZ2UvcXVlcnktZXhlY3V0b3IudHMiLCAiLi4vLi4vc3JjL2luZGV4L2RhdGFzdG9yZS50cyIsICIuLi8uLi9zcmMvaW5kZXgvcGVyc2lzdGVyLnRzIiwgImlubGluZS13b3JrZXI6X19pbmxpbmUtd29ya2VyIiwgIi4uLy4uL3NyYy9pbmRleC93ZWItd29ya2VyL2ltcG9ydGVyLndvcmtlci50cyIsICIuLi8uLi9zcmMvaW5kZXgvd2ViLXdvcmtlci9pbXBvcnRlci50cyIsICIuLi8uLi9zcmMvaW5kZXgvZGF0YWNvcmUudHMiLCAiLi4vLi4vc3JjL2luZGV4L3R5cGVzL2ZpbGVzLnRzIiwgIi4uLy4uL3NyYy9pbmRleC9lbWJlZC1xdWV1ZS50cyIsICIuLi8uLi9zcmMvaW5kZXgvdHlwZXMvY2FudmFzLnRzIiwgIi4uLy4uL3NyYy9zZXR0aW5ncy50cyIsICIuLi8uLi9zcmMvdWkvdmlldy1wYWdlLnRzeCIsICIuLi8uLi9zcmMvdWkvaW5kZXgtc3RhdHVzLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIWZ1bmN0aW9uKG4sdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5QYXJzaW1tb249dCgpOm4uUGFyc2ltbW9uPXQoKX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXt9O2Z1bmN0aW9uIHIoZSl7aWYodFtlXSlyZXR1cm4gdFtlXS5leHBvcnRzO3ZhciB1PXRbZV09e2k6ZSxsOiExLGV4cG9ydHM6e319O3JldHVybiBuW2VdLmNhbGwodS5leHBvcnRzLHUsdS5leHBvcnRzLHIpLHUubD0hMCx1LmV4cG9ydHN9cmV0dXJuIHIubT1uLHIuYz10LHIuZD1mdW5jdGlvbihuLHQsZSl7ci5vKG4sdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDplfSl9LHIucj1mdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci5uPWZ1bmN0aW9uKG4pe3ZhciB0PW4mJm4uX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIG59O3JldHVybiByLmQodCxcImFcIix0KSx0fSxyLm89ZnVuY3Rpb24obix0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sdCl9LHIucD1cIlwiLHIoci5zPTApfShbZnVuY3Rpb24obix0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUobil7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKG4pO3RoaXMuXz1ufXZhciB1PWUucHJvdG90eXBlO2Z1bmN0aW9uIG8obix0KXtmb3IodmFyIHI9MDtyPG47cisrKXQocil9ZnVuY3Rpb24gaShuLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4sdCl7byh0Lmxlbmd0aCxmdW5jdGlvbihyKXtuKHRbcl0scix0KX0pfShmdW5jdGlvbihyLGUsdSl7dD1uKHQscixlLHUpfSxyKSx0fWZ1bmN0aW9uIGEobix0KXtyZXR1cm4gaShmdW5jdGlvbih0LHIsZSx1KXtyZXR1cm4gdC5jb25jYXQoW24ocixlLHUpXSl9LFtdLHQpfWZ1bmN0aW9uIGYobix0KXt2YXIgcj17djowLGJ1Zjp0fTtyZXR1cm4gbyhuLGZ1bmN0aW9uKCl7dmFyIG47cj17djpyLnY8PDF8KG49ci5idWYsblswXT4+NyksYnVmOmZ1bmN0aW9uKG4pe3ZhciB0PWkoZnVuY3Rpb24obix0LHIsZSl7cmV0dXJuIG4uY29uY2F0KHI9PT1lLmxlbmd0aC0xP0J1ZmZlci5mcm9tKFt0LDBdKS5yZWFkVUludDE2QkUoMCk6ZS5yZWFkVUludDE2QkUocikpfSxbXSxuKTtyZXR1cm4gQnVmZmVyLmZyb20oYShmdW5jdGlvbihuKXtyZXR1cm4objw8MSY2NTUzNSk+Pjh9LHQpKX0oci5idWYpfX0pLHJ9ZnVuY3Rpb24gYygpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBCdWZmZXJ9ZnVuY3Rpb24gcygpe2lmKCFjKCkpdGhyb3cgbmV3IEVycm9yKFwiQnVmZmVyIGdsb2JhbCBkb2VzIG5vdCBleGlzdDsgcGxlYXNlIHVzZSB3ZWJwYWNrIGlmIHlvdSBuZWVkIHRvIHBhcnNlIEJ1ZmZlcnMgaW4gdGhlIGJyb3dzZXIuXCIpfWZ1bmN0aW9uIGwobil7cygpO3ZhciB0PWkoZnVuY3Rpb24obix0KXtyZXR1cm4gbit0fSwwLG4pO2lmKHQlOCE9MCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgYml0cyBbXCIrbi5qb2luKFwiLCBcIikrXCJdIGFkZCB1cCB0byBcIit0K1wiIHdoaWNoIGlzIG5vdCBhbiBldmVuIG51bWJlciBvZiBieXRlczsgdGhlIHRvdGFsIHNob3VsZCBiZSBkaXZpc2libGUgYnkgOFwiKTt2YXIgcix1PXQvOCxvPShyPWZ1bmN0aW9uKG4pe3JldHVybiBuPjQ4fSxpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG58fChyKHQpP3Q6bil9LG51bGwsbikpO2lmKG8pdGhyb3cgbmV3IEVycm9yKG8rXCIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LlwiKTtyZXR1cm4gbmV3IGUoZnVuY3Rpb24odCxyKXt2YXIgZT11K3I7cmV0dXJuIGU+dC5sZW5ndGg/eChyLHUudG9TdHJpbmcoKStcIiBieXRlc1wiKTpiKGUsaShmdW5jdGlvbihuLHQpe3ZhciByPWYodCxuLmJ1Zik7cmV0dXJue2NvbGw6bi5jb2xsLmNvbmNhdChyLnYpLGJ1ZjpyLmJ1Zn19LHtjb2xsOltdLGJ1Zjp0LnNsaWNlKHIsZSl9LG4pLmNvbGwpfSl9ZnVuY3Rpb24gaChuLHQpe3JldHVybiBuZXcgZShmdW5jdGlvbihyLGUpe3JldHVybiBzKCksZSt0PnIubGVuZ3RoP3goZSx0K1wiIGJ5dGVzIGZvciBcIituKTpiKGUrdCxyLnNsaWNlKGUsZSt0KSl9KX1mdW5jdGlvbiBwKG4sdCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mKHI9dCl8fE1hdGguZmxvb3IocikhPT1yfHx0PDB8fHQ+Nil0aHJvdyBuZXcgRXJyb3IobitcIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uXCIpO3ZhciByfWZ1bmN0aW9uIGQobil7cmV0dXJuIHAoXCJ1aW50QkVcIixuKSxoKFwidWludEJFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50QkUoMCxuKX0pfWZ1bmN0aW9uIHYobil7cmV0dXJuIHAoXCJ1aW50TEVcIixuKSxoKFwidWludExFKFwiK24rXCIpXCIsbikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlYWRVSW50TEUoMCxuKX0pfWZ1bmN0aW9uIGcobil7cmV0dXJuIHAoXCJpbnRCRVwiLG4pLGgoXCJpbnRCRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50QkUoMCxuKX0pfWZ1bmN0aW9uIG0obil7cmV0dXJuIHAoXCJpbnRMRVwiLG4pLGgoXCJpbnRMRShcIituK1wiKVwiLG4pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWFkSW50TEUoMCxuKX0pfWZ1bmN0aW9uIHkobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBlfWZ1bmN0aW9uIEUobil7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT09e30udG9TdHJpbmcuY2FsbChuKX1mdW5jdGlvbiB3KG4pe3JldHVybiBjKCkmJkJ1ZmZlci5pc0J1ZmZlcihuKX1mdW5jdGlvbiBiKG4sdCl7cmV0dXJue3N0YXR1czohMCxpbmRleDpuLHZhbHVlOnQsZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHgobix0KXtyZXR1cm4gRSh0KXx8KHQ9W3RdKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6bixleHBlY3RlZDp0fX1mdW5jdGlvbiBCKG4sdCl7aWYoIXQpcmV0dXJuIG47aWYobi5mdXJ0aGVzdD50LmZ1cnRoZXN0KXJldHVybiBuO3ZhciByPW4uZnVydGhlc3Q9PT10LmZ1cnRoZXN0P2Z1bmN0aW9uKG4sdCl7aWYoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1lLl9zdXBwb3J0c1NldClyZXR1cm4gZS5fc3VwcG9ydHNTZXQ7dmFyIG49XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldDtyZXR1cm4gZS5fc3VwcG9ydHNTZXQ9bixufSgpJiZBcnJheS5mcm9tKXtmb3IodmFyIHI9bmV3IFNldChuKSx1PTA7dTx0Lmxlbmd0aDt1Kyspci5hZGQodFt1XSk7dmFyIG89QXJyYXkuZnJvbShyKTtyZXR1cm4gby5zb3J0KCksb31mb3IodmFyIGk9e30sYT0wO2E8bi5sZW5ndGg7YSsrKWlbblthXV09ITA7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDtmKyspaVt0W2ZdXT0hMDt2YXIgYz1bXTtmb3IodmFyIHMgaW4gaSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoaSxzKSYmYy5wdXNoKHMpO3JldHVybiBjLnNvcnQoKSxjfShuLmV4cGVjdGVkLHQuZXhwZWN0ZWQpOnQuZXhwZWN0ZWQ7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxpbmRleDpuLmluZGV4LHZhbHVlOm4udmFsdWUsZnVydGhlc3Q6dC5mdXJ0aGVzdCxleHBlY3RlZDpyfX12YXIgaj17fTtmdW5jdGlvbiBTKG4sdCl7aWYodyhuKSlyZXR1cm57b2Zmc2V0OnQsbGluZTotMSxjb2x1bW46LTF9O24gaW4ganx8KGpbbl09e30pO2Zvcih2YXIgcj1qW25dLGU9MCx1PTAsbz0wLGk9dDtpPj0wOyl7aWYoaSBpbiByKXtlPXJbaV0ubGluZSwwPT09byYmKG89cltpXS5saW5lU3RhcnQpO2JyZWFrfShcIlxcblwiPT09bi5jaGFyQXQoaSl8fFwiXFxyXCI9PT1uLmNoYXJBdChpKSYmXCJcXG5cIiE9PW4uY2hhckF0KGkrMSkpJiYodSsrLDA9PT1vJiYobz1pKzEpKSxpLS19dmFyIGE9ZSt1LGY9dC1vO3JldHVybiByW3RdPXtsaW5lOmEsbGluZVN0YXJ0Om99LHtvZmZzZXQ6dCxsaW5lOmErMSxjb2x1bW46ZisxfX1mdW5jdGlvbiBfKG4pe2lmKCF5KG4pKXRocm93IG5ldyBFcnJvcihcIm5vdCBhIHBhcnNlcjogXCIrbil9ZnVuY3Rpb24gTChuLHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBuP24uY2hhckF0KHQpOm5bdF19ZnVuY3Rpb24gTyhuKXtpZihcIm51bWJlclwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBudW1iZXI6IFwiK24pfWZ1bmN0aW9uIGsobil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBmdW5jdGlvbjogXCIrbil9ZnVuY3Rpb24gUChuKXtpZihcInN0cmluZ1wiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJub3QgYSBzdHJpbmc6IFwiK24pfXZhciBxPTIsQT0zLEk9OCxGPTUqSSxNPTQqSSx6PVwiICBcIjtmdW5jdGlvbiBSKG4sdCl7cmV0dXJuIG5ldyBBcnJheSh0KzEpLmpvaW4obil9ZnVuY3Rpb24gVShuLHQscil7dmFyIGU9dC1uLmxlbmd0aDtyZXR1cm4gZTw9MD9uOlIocixlKStufWZ1bmN0aW9uIFcobix0LHIsZSl7cmV0dXJue2Zyb206bi10PjA/bi10OjAsdG86bityPmU/ZTpuK3J9fWZ1bmN0aW9uIEQobix0KXt2YXIgcixlLHUsbyxmLGM9dC5pbmRleCxzPWMub2Zmc2V0LGw9MTtpZihzPT09bi5sZW5ndGgpcmV0dXJuXCJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXRcIjtpZih3KG4pKXt2YXIgaD1zLXMlSSxwPXMtaCxkPVcoaCxGLE0rSSxuLmxlbmd0aCksdj1hKGZ1bmN0aW9uKG4pe3JldHVybiBhKGZ1bmN0aW9uKG4pe3JldHVybiBVKG4udG9TdHJpbmcoMTYpLDIsXCIwXCIpfSxuKX0sZnVuY3Rpb24obix0KXt2YXIgcj1uLmxlbmd0aCxlPVtdLHU9MDtpZihyPD10KXJldHVybltuLnNsaWNlKCldO2Zvcih2YXIgbz0wO288cjtvKyspZVt1XXx8ZS5wdXNoKFtdKSxlW3VdLnB1c2gobltvXSksKG8rMSkldD09MCYmdSsrO3JldHVybiBlfShuLnNsaWNlKGQuZnJvbSxkLnRvKS50b0pTT04oKS5kYXRhLEkpKTtvPWZ1bmN0aW9uKG4pe3JldHVybiAwPT09bi5mcm9tJiYxPT09bi50bz97ZnJvbTpuLmZyb20sdG86bi50b306e2Zyb206bi5mcm9tL0ksdG86TWF0aC5mbG9vcihuLnRvL0kpfX0oZCksZT1oL0kscj0zKnAscD49NCYmKHIrPTEpLGw9Mix1PWEoZnVuY3Rpb24obil7cmV0dXJuIG4ubGVuZ3RoPD00P24uam9pbihcIiBcIik6bi5zbGljZSgwLDQpLmpvaW4oXCIgXCIpK1wiICBcIituLnNsaWNlKDQpLmpvaW4oXCIgXCIpfSx2KSwoZj0oOCooby50bz4wP28udG8tMTpvLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKGY9Mil9ZWxzZXt2YXIgZz1uLnNwbGl0KC9cXHJcXG58W1xcblxcclxcdTIwMjhcXHUyMDI5XS8pO3I9Yy5jb2x1bW4tMSxlPWMubGluZS0xLG89VyhlLHEsQSxnLmxlbmd0aCksdT1nLnNsaWNlKG8uZnJvbSxvLnRvKSxmPW8udG8udG9TdHJpbmcoKS5sZW5ndGh9dmFyIG09ZS1vLmZyb207cmV0dXJuIHcobikmJihmPSg4KihvLnRvPjA/by50by0xOm8udG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoZj0yKSxpKGZ1bmN0aW9uKHQsZSx1KXt2YXIgaSxhPXU9PT1tLGM9YT9cIj4gXCI6ejtyZXR1cm4gaT13KG4pP1UoKDgqKG8uZnJvbSt1KSkudG9TdHJpbmcoMTYpLGYsXCIwXCIpOlUoKG8uZnJvbSt1KzEpLnRvU3RyaW5nKCksZixcIiBcIiksW10uY29uY2F0KHQsW2MraStcIiB8IFwiK2VdLGE/W3orUihcIiBcIixmKStcIiB8IFwiK1UoXCJcIixyLFwiIFwiKStSKFwiXlwiLGwpXTpbXSl9LFtdLHUpLmpvaW4oXCJcXG5cIil9ZnVuY3Rpb24gTihuLHQpe3JldHVybltcIlxcblwiLFwiLS0gUEFSU0lORyBGQUlMRUQgXCIrUihcIi1cIiw1MCksXCJcXG5cXG5cIixEKG4sdCksXCJcXG5cXG5cIiwocj10LmV4cGVjdGVkLDE9PT1yLmxlbmd0aD9cIkV4cGVjdGVkOlxcblxcblwiK3JbMF06XCJFeHBlY3RlZCBvbmUgb2YgdGhlIGZvbGxvd2luZzogXFxuXFxuXCIrci5qb2luKFwiLCBcIikpLFwiXFxuXCJdLmpvaW4oXCJcIik7dmFyIHJ9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gdm9pZCAwIT09bi5mbGFncz9uLmZsYWdzOltuLmdsb2JhbD9cImdcIjpcIlwiLG4uaWdub3JlQ2FzZT9cImlcIjpcIlwiLG4ubXVsdGlsaW5lP1wibVwiOlwiXCIsbi51bmljb2RlP1widVwiOlwiXCIsbi5zdGlja3k/XCJ5XCI6XCJcIl0uam9pbihcIlwiKX1mdW5jdGlvbiBDKCl7Zm9yKHZhciBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PW4ubGVuZ3RoLHI9MDtyPHQ7cis9MSlfKG5bcl0pO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7Zm9yKHZhciB1LG89bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSs9MSl7aWYoISh1PUIobltpXS5fKHIsZSksdSkpLnN0YXR1cylyZXR1cm4gdTtvW2ldPXUudmFsdWUsZT11LmluZGV4fXJldHVybiBCKGIoZSxvKSx1KX0pfWZ1bmN0aW9uIEooKXt2YXIgbj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoMD09PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcInNlcU1hcCBuZWVkcyBhdCBsZWFzdCBvbmUgYXJndW1lbnRcIik7dmFyIHQ9bi5wb3AoKTtyZXR1cm4gayh0KSxDLmFwcGx5KG51bGwsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiB0LmFwcGx5KG51bGwsbil9KX1mdW5jdGlvbiBUKCl7dmFyIG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLHQ9bi5sZW5ndGg7aWYoMD09PXQpcmV0dXJuIFkoXCJ6ZXJvIGFsdGVybmF0ZXNcIik7Zm9yKHZhciByPTA7cjx0O3IrPTEpXyhuW3JdKTtyZXR1cm4gZShmdW5jdGlvbih0LHIpe2Zvcih2YXIgZSx1PTA7dTxuLmxlbmd0aDt1Kz0xKWlmKChlPUIoblt1XS5fKHQsciksZSkpLnN0YXR1cylyZXR1cm4gZTtyZXR1cm4gZX0pfWZ1bmN0aW9uIFYobix0KXtyZXR1cm4gSChuLHQpLm9yKFgoW10pKX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIF8obiksXyh0KSxKKG4sdC50aGVuKG4pLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybltuXS5jb25jYXQodCl9KX1mdW5jdGlvbiBLKG4pe1Aobik7dmFyIHQ9XCInXCIrbitcIidcIjtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PWUrbi5sZW5ndGgsbz1yLnNsaWNlKGUsdSk7cmV0dXJuIG89PT1uP2IodSxvKTp4KGUsdCl9KX1mdW5jdGlvbiBRKG4sdCl7IWZ1bmN0aW9uKG4pe2lmKCEobiBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKFwibm90IGEgcmVnZXhwOiBcIituKTtmb3IodmFyIHQ9RyhuKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBlPXQuY2hhckF0KHIpO2lmKFwiaVwiIT09ZSYmXCJtXCIhPT1lJiZcInVcIiE9PWUmJlwic1wiIT09ZSl0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHJlZ2V4cCBmbGFnIFwiJytlKydcIjogJytuKX19KG4pLGFyZ3VtZW50cy5sZW5ndGg+PTI/Tyh0KTp0PTA7dmFyIHI9ZnVuY3Rpb24obil7cmV0dXJuIFJlZ0V4cChcIl4oPzpcIituLnNvdXJjZStcIilcIixHKG4pKX0obiksdT1cIlwiK247cmV0dXJuIGUoZnVuY3Rpb24obixlKXt2YXIgbz1yLmV4ZWMobi5zbGljZShlKSk7aWYobyl7aWYoMDw9dCYmdDw9by5sZW5ndGgpe3ZhciBpPW9bMF0sYT1vW3RdO3JldHVybiBiKGUraS5sZW5ndGgsYSl9cmV0dXJuIHgoZSxcInZhbGlkIG1hdGNoIGdyb3VwICgwIHRvIFwiK28ubGVuZ3RoK1wiKSBpbiBcIit1KX1yZXR1cm4geChlLHUpfSl9ZnVuY3Rpb24gWChuKXtyZXR1cm4gZShmdW5jdGlvbih0LHIpe3JldHVybiBiKHIsbil9KX1mdW5jdGlvbiBZKG4pe3JldHVybiBlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHgocixuKX0pfWZ1bmN0aW9uIFoobil7aWYoeShuKSlyZXR1cm4gZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpO3JldHVybiBlLmluZGV4PXIsZS52YWx1ZT1cIlwiLGV9KTtpZihcInN0cmluZ1wiPT10eXBlb2YgbilyZXR1cm4gWihLKG4pKTtpZihuIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBaKFEobikpO3Rocm93IG5ldyBFcnJvcihcIm5vdCBhIHN0cmluZywgcmVnZXhwLCBvciBwYXJzZXI6IFwiK24pfWZ1bmN0aW9uICQobil7cmV0dXJuIF8obiksZShmdW5jdGlvbih0LHIpe3ZhciBlPW4uXyh0LHIpLHU9dC5zbGljZShyLGUuaW5kZXgpO3JldHVybiBlLnN0YXR1cz94KHIsJ25vdCBcIicrdSsnXCInKTpiKHIsbnVsbCl9KX1mdW5jdGlvbiBubihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7dmFyIGU9TCh0LHIpO3JldHVybiByPHQubGVuZ3RoJiZuKGUpP2IocisxLGUpOngocixcImEgY2hhcmFjdGVyL2J5dGUgbWF0Y2hpbmcgXCIrbil9KX1mdW5jdGlvbiB0bihuLHQpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9bixuPXZvaWQgMCk7dmFyIHI9ZShmdW5jdGlvbihuLGUpe3JldHVybiByLl89dCgpLl8sci5fKG4sZSl9KTtyZXR1cm4gbj9yLmRlc2Mobik6cn1mdW5jdGlvbiBybigpe3JldHVybiBZKFwiZmFudGFzeS1sYW5kL2VtcHR5XCIpfXUucGFyc2U9ZnVuY3Rpb24obil7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIG4mJiF3KG4pKXRocm93IG5ldyBFcnJvcihcIi5wYXJzZSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc3RyaW5nIG9yIEJ1ZmZlciBhcyBpdHMgYXJndW1lbnRcIik7dmFyIHQscj10aGlzLnNraXAoYW4pLl8obiwwKTtyZXR1cm4gdD1yLnN0YXR1cz97c3RhdHVzOiEwLHZhbHVlOnIudmFsdWV9OntzdGF0dXM6ITEsaW5kZXg6UyhuLHIuZnVydGhlc3QpLGV4cGVjdGVkOnIuZXhwZWN0ZWR9LGRlbGV0ZSBqW25dLHR9LHUudHJ5UGFyc2U9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5wYXJzZShuKTtpZih0LnN0YXR1cylyZXR1cm4gdC52YWx1ZTt2YXIgcj1OKG4sdCksZT1uZXcgRXJyb3Iocik7dGhyb3cgZS50eXBlPVwiUGFyc2ltbW9uRXJyb3JcIixlLnJlc3VsdD10LGV9LHUuYXNzZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXMuY2hhaW4oZnVuY3Rpb24ocil7cmV0dXJuIG4ocik/WChyKTpZKHQpfSl9LHUub3I9ZnVuY3Rpb24obil7cmV0dXJuIFQodGhpcyxuKX0sdS50cmltPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLndyYXAobixuKX0sdS53cmFwPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEoobix0aGlzLHQsZnVuY3Rpb24obix0KXtyZXR1cm4gdH0pfSx1LnRocnU9ZnVuY3Rpb24obil7cmV0dXJuIG4odGhpcyl9LHUudGhlbj1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKSxDKHRoaXMsbikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSl9LHUubWFueT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9W10sdT12b2lkIDA7Oyl7aWYoISh1PUIobi5fKHQsciksdSkpLnN0YXR1cylyZXR1cm4gQihiKHIsZSksdSk7aWYocj09PXUuaW5kZXgpdGhyb3cgbmV3IEVycm9yKFwiaW5maW5pdGUgbG9vcCBkZXRlY3RlZCBpbiAubWFueSgpIHBhcnNlciAtLS0gY2FsbGluZyAubWFueSgpIG9uIGEgcGFyc2VyIHdoaWNoIGNhbiBhY2NlcHQgemVybyBjaGFyYWN0ZXJzIGlzIHVzdWFsbHkgdGhlIGNhdXNlXCIpO3I9dS5pbmRleCxlLnB1c2godS52YWx1ZSl9fSl9LHUudGllV2l0aD1mdW5jdGlvbihuKXtyZXR1cm4gUChuKSx0aGlzLm1hcChmdW5jdGlvbih0KXtpZihmdW5jdGlvbihuKXtpZighRShuKSl0aHJvdyBuZXcgRXJyb3IoXCJub3QgYW4gYXJyYXk6IFwiK24pfSh0KSx0Lmxlbmd0aCl7UCh0WzBdKTtmb3IodmFyIHI9dFswXSxlPTE7ZTx0Lmxlbmd0aDtlKyspUCh0W2VdKSxyKz1uK3RbZV07cmV0dXJuIHJ9cmV0dXJuXCJcIn0pfSx1LnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoXCJcIil9LHUudGltZXM9ZnVuY3Rpb24obix0KXt2YXIgcj10aGlzO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PW4pLE8obiksTyh0KSxlKGZ1bmN0aW9uKGUsdSl7Zm9yKHZhciBvPVtdLGk9dm9pZCAwLGE9dm9pZCAwLGY9MDtmPG47Zis9MSl7aWYoYT1CKGk9ci5fKGUsdSksYSksIWkuc3RhdHVzKXJldHVybiBhO3U9aS5pbmRleCxvLnB1c2goaS52YWx1ZSl9Zm9yKDtmPHQmJihhPUIoaT1yLl8oZSx1KSxhKSxpLnN0YXR1cyk7Zis9MSl1PWkuaW5kZXgsby5wdXNoKGkudmFsdWUpO3JldHVybiBCKGIodSxvKSxhKX0pfSx1LnJlc3VsdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSx1LmF0TW9zdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy50aW1lcygwLG4pfSx1LmF0TGVhc3Q9ZnVuY3Rpb24obil7cmV0dXJuIEoodGhpcy50aW1lcyhuKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihuLHQpe3JldHVybiBuLmNvbmNhdCh0KX0pfSx1Lm1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10Ll8ocixlKTtyZXR1cm4gdS5zdGF0dXM/QihiKHUuaW5kZXgsbih1LnZhbHVlKSksdSk6dX0pfSx1LmNvbnRyYW1hcD1mdW5jdGlvbihuKXtrKG4pO3ZhciB0PXRoaXM7cmV0dXJuIGUoZnVuY3Rpb24ocixlKXt2YXIgdT10LnBhcnNlKG4oci5zbGljZShlKSkpO3JldHVybiB1LnN0YXR1cz9iKGUrci5sZW5ndGgsdS52YWx1ZSk6dX0pfSx1LnByb21hcD1mdW5jdGlvbihuLHQpe3JldHVybiBrKG4pLGsodCksdGhpcy5jb250cmFtYXAobikubWFwKHQpfSx1LnNraXA9ZnVuY3Rpb24obil7cmV0dXJuIEModGhpcyxuKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG5bMF19KX0sdS5tYXJrPWZ1bmN0aW9uKCl7cmV0dXJuIEooZW4sdGhpcyxlbixmdW5jdGlvbihuLHQscil7cmV0dXJue3N0YXJ0Om4sdmFsdWU6dCxlbmQ6cn19KX0sdS5ub2RlPWZ1bmN0aW9uKG4pe3JldHVybiBKKGVuLHRoaXMsZW4sZnVuY3Rpb24odCxyLGUpe3JldHVybntuYW1lOm4sdmFsdWU6cixzdGFydDp0LGVuZDplfX0pfSx1LnNlcEJ5PWZ1bmN0aW9uKG4pe3JldHVybiBWKHRoaXMsbil9LHUuc2VwQnkxPWZ1bmN0aW9uKG4pe3JldHVybiBIKHRoaXMsbil9LHUubG9va2FoZWFkPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnNraXAoWihuKSl9LHUubm90Rm9sbG93ZWRCeT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5za2lwKCQobikpfSx1LmRlc2M9ZnVuY3Rpb24obil7RShuKXx8KG49W25dKTt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzfHwodS5leHBlY3RlZD1uKSx1fSl9LHUuZmFsbGJhY2s9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMub3IoWChuKSl9LHUuYXA9ZnVuY3Rpb24obil7cmV0dXJuIEoobix0aGlzLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4odCl9KX0sdS5jaGFpbj1mdW5jdGlvbihuKXt2YXIgdD10aGlzO3JldHVybiBlKGZ1bmN0aW9uKHIsZSl7dmFyIHU9dC5fKHIsZSk7cmV0dXJuIHUuc3RhdHVzP0Iobih1LnZhbHVlKS5fKHIsdS5pbmRleCksdSk6dX0pfSx1LmNvbmNhdD11Lm9yLHUuZW1wdHk9cm4sdS5vZj1YLHVbXCJmYW50YXN5LWxhbmQvYXBcIl09dS5hcCx1W1wiZmFudGFzeS1sYW5kL2NoYWluXCJdPXUuY2hhaW4sdVtcImZhbnRhc3ktbGFuZC9jb25jYXRcIl09dS5jb25jYXQsdVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT11LmVtcHR5LHVbXCJmYW50YXN5LWxhbmQvb2ZcIl09dS5vZix1W1wiZmFudGFzeS1sYW5kL21hcFwiXT11Lm1hcDt2YXIgZW49ZShmdW5jdGlvbihuLHQpe3JldHVybiBiKHQsUyhuLHQpKX0pLHVuPWUoZnVuY3Rpb24obix0KXtyZXR1cm4gdD49bi5sZW5ndGg/eCh0LFwiYW55IGNoYXJhY3Rlci9ieXRlXCIpOmIodCsxLEwobix0KSl9KSxvbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGIobi5sZW5ndGgsbi5zbGljZSh0KSl9KSxhbj1lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ8bi5sZW5ndGg/eCh0LFwiRU9GXCIpOmIodCxudWxsKX0pLGZuPVEoL1swLTldLykuZGVzYyhcImEgZGlnaXRcIiksY249USgvWzAtOV0qLykuZGVzYyhcIm9wdGlvbmFsIGRpZ2l0c1wiKSxzbj1RKC9bYS16XS9pKS5kZXNjKFwiYSBsZXR0ZXJcIiksbG49USgvW2Etel0qL2kpLmRlc2MoXCJvcHRpb25hbCBsZXR0ZXJzXCIpLGhuPVEoL1xccyovKS5kZXNjKFwib3B0aW9uYWwgd2hpdGVzcGFjZVwiKSxwbj1RKC9cXHMrLykuZGVzYyhcIndoaXRlc3BhY2VcIiksZG49SyhcIlxcclwiKSx2bj1LKFwiXFxuXCIpLGduPUsoXCJcXHJcXG5cIiksbW49VChnbix2bixkbikuZGVzYyhcIm5ld2xpbmVcIikseW49VChtbixhbik7ZS5hbGw9b24sZS5hbHQ9VCxlLmFueT11bixlLmNyPWRuLGUuY3JlYXRlTGFuZ3VhZ2U9ZnVuY3Rpb24obil7dmFyIHQ9e307Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJmZ1bmN0aW9uKHIpe3Rbcl09dG4oZnVuY3Rpb24oKXtyZXR1cm4gbltyXSh0KX0pfShyKTtyZXR1cm4gdH0sZS5jcmxmPWduLGUuY3VzdG9tPWZ1bmN0aW9uKG4pe3JldHVybiBlKG4oYix4KSl9LGUuZGlnaXQ9Zm4sZS5kaWdpdHM9Y24sZS5lbXB0eT1ybixlLmVuZD15bixlLmVvZj1hbixlLmZhaWw9WSxlLmZvcm1hdEVycm9yPU4sZS5pbmRleD1lbixlLmlzUGFyc2VyPXksZS5sYXp5PXRuLGUubGV0dGVyPXNuLGUubGV0dGVycz1sbixlLmxmPXZuLGUubG9va2FoZWFkPVosZS5tYWtlRmFpbHVyZT14LGUubWFrZVN1Y2Nlc3M9YixlLm5ld2xpbmU9bW4sZS5ub25lT2Y9ZnVuY3Rpb24obil7cmV0dXJuIG5uKGZ1bmN0aW9uKHQpe3JldHVybiBuLmluZGV4T2YodCk8MH0pLmRlc2MoXCJub25lIG9mICdcIituK1wiJ1wiKX0sZS5ub3RGb2xsb3dlZEJ5PSQsZS5vZj1YLGUub25lT2Y9ZnVuY3Rpb24obil7Zm9yKHZhciB0PW4uc3BsaXQoXCJcIikscj0wO3I8dC5sZW5ndGg7cisrKXRbcl09XCInXCIrdFtyXStcIidcIjtyZXR1cm4gbm4oZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5kZXhPZih0KT49MH0pLmRlc2ModCl9LGUub3B0V2hpdGVzcGFjZT1obixlLlBhcnNlcj1lLGUucmFuZ2U9ZnVuY3Rpb24obix0KXtyZXR1cm4gbm4oZnVuY3Rpb24ocil7cmV0dXJuIG48PXImJnI8PXR9KS5kZXNjKG4rXCItXCIrdCl9LGUucmVnZXg9USxlLnJlZ2V4cD1RLGUuc2VwQnk9VixlLnNlcEJ5MT1ILGUuc2VxPUMsZS5zZXFNYXA9SixlLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXt9LHI9MCx1PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksbz11Lmxlbmd0aCxpPTA7aTxvO2krPTEpe3ZhciBhPXVbaV07aWYoIXkoYSkpe2lmKEUoYSkmJjI9PT1hLmxlbmd0aCYmXCJzdHJpbmdcIj09dHlwZW9mIGFbMF0mJnkoYVsxXSkpe3ZhciBmPWFbMF07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZikpdGhyb3cgbmV3IEVycm9yKFwic2VxT2JqOiBkdXBsaWNhdGUga2V5IFwiK2YpO3RbZl09ITAscisrO2NvbnRpbnVlfXRocm93IG5ldyBFcnJvcihcInNlcU9iaiBhcmd1bWVudHMgbXVzdCBiZSBwYXJzZXJzIG9yIFtzdHJpbmcsIHBhcnNlcl0gYXJyYXkgcGFpcnMuXCIpfX1pZigwPT09cil0aHJvdyBuZXcgRXJyb3IoXCJzZXFPYmogZXhwZWN0cyBhdCBsZWFzdCBvbmUgbmFtZWQgcGFyc2VyLCBmb3VuZCB6ZXJvXCIpO3JldHVybiBlKGZ1bmN0aW9uKG4sdCl7Zm9yKHZhciByLGU9e30saT0wO2k8bztpKz0xKXt2YXIgYSxmO2lmKEUodVtpXSk/KGE9dVtpXVswXSxmPXVbaV1bMV0pOihhPW51bGwsZj11W2ldKSwhKHI9QihmLl8obix0KSxyKSkuc3RhdHVzKXJldHVybiByO2EmJihlW2FdPXIudmFsdWUpLHQ9ci5pbmRleH1yZXR1cm4gQihiKHQsZSkscil9KX0sZS5zdHJpbmc9SyxlLnN1Y2NlZWQ9WCxlLnRha2VXaGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gayhuKSxlKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXI7ZTx0Lmxlbmd0aCYmbihMKHQsZSkpOyllKys7cmV0dXJuIGIoZSx0LnNsaWNlKHIsZSkpfSl9LGUudGVzdD1ubixlLndoaXRlc3BhY2U9cG4sZVtcImZhbnRhc3ktbGFuZC9lbXB0eVwiXT1ybixlW1wiZmFudGFzeS1sYW5kL29mXCJdPVgsZS5CaW5hcnk9e2JpdFNlcTpsLGJpdFNlcU9iajpmdW5jdGlvbihuKXtzKCk7dmFyIHQ9e30scj0wLGU9YShmdW5jdGlvbihuKXtpZihFKG4pKXt2YXIgZT1uO2lmKDIhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJbXCIrZS5qb2luKFwiLCBcIikrXCJdIHNob3VsZCBiZSBsZW5ndGggMiwgZ290IGxlbmd0aCBcIitlLmxlbmd0aCk7aWYoUChlWzBdKSxPKGVbMV0pLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGVbMF0pKXRocm93IG5ldyBFcnJvcihcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcIitlWzBdKTtyZXR1cm4gdFtlWzBdXT0hMCxyKyssZX1yZXR1cm4gTyhuKSxbbnVsbCxuXX0sbik7aWYocjwxKXRocm93IG5ldyBFcnJvcihcImJpdFNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYWlyLCBnb3QgW1wiK24uam9pbihcIiwgXCIpK1wiXVwiKTt2YXIgdT1hKGZ1bmN0aW9uKG4pe3JldHVybiBuWzBdfSxlKTtyZXR1cm4gbChhKGZ1bmN0aW9uKG4pe3JldHVybiBuWzFdfSxlKSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBpKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGwhPT10WzBdJiYoblt0WzBdXT10WzFdKSxufSx7fSxhKGZ1bmN0aW9uKHQscil7cmV0dXJuW3QsbltyXV19LHUpKX0pfSxieXRlOmZ1bmN0aW9uKG4pe2lmKHMoKSxPKG4pLG4+MjU1KXRocm93IG5ldyBFcnJvcihcIlZhbHVlIHNwZWNpZmllZCB0byBieXRlIGNvbnN0cnVjdG9yIChcIituK1wiPTB4XCIrbi50b1N0cmluZygxNikrXCIpIGlzIGxhcmdlciBpbiB2YWx1ZSB0aGFuIGEgc2luZ2xlIGJ5dGUuXCIpO3ZhciB0PShuPjE1P1wiMHhcIjpcIjB4MFwiKStuLnRvU3RyaW5nKDE2KTtyZXR1cm4gZShmdW5jdGlvbihyLGUpe3ZhciB1PUwocixlKTtyZXR1cm4gdT09PW4/YihlKzEsdSk6eChlLHQpfSl9LGJ1ZmZlcjpmdW5jdGlvbihuKXtyZXR1cm4gaChcImJ1ZmZlclwiLG4pLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gQnVmZmVyLmZyb20obil9KX0sZW5jb2RlZFN0cmluZzpmdW5jdGlvbihuLHQpe3JldHVybiBoKFwic3RyaW5nXCIsdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKG4pfSl9LHVpbnRCRTpkLHVpbnQ4QkU6ZCgxKSx1aW50MTZCRTpkKDIpLHVpbnQzMkJFOmQoNCksdWludExFOnYsdWludDhMRTp2KDEpLHVpbnQxNkxFOnYoMiksdWludDMyTEU6dig0KSxpbnRCRTpnLGludDhCRTpnKDEpLGludDE2QkU6ZygyKSxpbnQzMkJFOmcoNCksaW50TEU6bSxpbnQ4TEU6bSgxKSxpbnQxNkxFOm0oMiksaW50MzJMRTptKDQpLGZsb2F0QkU6aChcImZsb2F0QkVcIiw0KS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVhZEZsb2F0QkUoMCl9KSxmbG9hdExFOmgoXCJmbG9hdExFXCIsNCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWRGbG9hdExFKDApfSksZG91YmxlQkU6aChcImRvdWJsZUJFXCIsOCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlYWREb3VibGVCRSgwKX0pLGRvdWJsZUxFOmgoXCJkb3VibGVMRVwiLDgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZWFkRG91YmxlTEUoMCl9KX0sbi5leHBvcnRzPWV9XSl9KTsiLCAidHlwZSBLZXkgPSBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2w7XG5cbi8qKlxuICogU2V0QXJyYXkgYWN0cyBsaWtlIGEgYFNldGAgKGFsbG93aW5nIG9ubHkgb25lIG9jY3VycmVuY2Ugb2YgYSBzdHJpbmcgYGtleWApLCBidXQgcHJvdmlkZXMgdGhlXG4gKiBpbmRleCBvZiB0aGUgYGtleWAgaW4gdGhlIGJhY2tpbmcgYXJyYXkuXG4gKlxuICogVGhpcyBpcyBkZXNpZ25lZCB0byBhbGxvdyBzeW5jaHJvbml6aW5nIGEgc2Vjb25kIGFycmF5IHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBiYWNraW5nIGFycmF5LFxuICogbGlrZSBob3cgaW4gYSBzb3VyY2VtYXAgYHNvdXJjZXNDb250ZW50W2ldYCBpcyB0aGUgc291cmNlIGNvbnRlbnQgYXNzb2NpYXRlZCB3aXRoIGBzb3VyY2VbaV1gLFxuICogYW5kIHRoZXJlIGFyZSBuZXZlciBkdXBsaWNhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgU2V0QXJyYXk8VCBleHRlbmRzIEtleSA9IEtleT4ge1xuICBwcml2YXRlIGRlY2xhcmUgX2luZGV4ZXM6IFJlY29yZDxULCBudW1iZXIgfCB1bmRlZmluZWQ+O1xuICBkZWNsYXJlIGFycmF5OiByZWFkb25seSBUW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5faW5kZXhlcyA9IHsgX19wcm90b19fOiBudWxsIH0gYXMgYW55O1xuICAgIHRoaXMuYXJyYXkgPSBbXTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgUHVibGljU2V0PFQgZXh0ZW5kcyBLZXk+IHtcbiAgYXJyYXk6IFRbXTtcbiAgX2luZGV4ZXM6IFNldEFycmF5PFQ+WydfaW5kZXhlcyddO1xufVxuXG4vKipcbiAqIFR5cGVzY3JpcHQgZG9lc24ndCBhbGxvdyBmcmllbmQgYWNjZXNzIHRvIHByaXZhdGUgZmllbGRzLCBzbyB0aGlzIGp1c3QgY2FzdHMgdGhlIHNldCBpbnRvIGEgdHlwZVxuICogd2l0aCBwdWJsaWMgYWNjZXNzIG1vZGlmaWVycy5cbiAqL1xuZnVuY3Rpb24gY2FzdDxUIGV4dGVuZHMgS2V5PihzZXQ6IFNldEFycmF5PFQ+KTogUHVibGljU2V0PFQ+IHtcbiAgcmV0dXJuIHNldCBhcyBhbnk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXNzb2NpYXRlZCB3aXRoIGBrZXlgIGluIHRoZSBiYWNraW5nIGFycmF5LCBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQ8VCBleHRlbmRzIEtleT4oc2V0YXJyOiBTZXRBcnJheTxUPiwga2V5OiBUKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNhc3Qoc2V0YXJyKS5faW5kZXhlc1trZXldO1xufVxuXG4vKipcbiAqIFB1dHMgYGtleWAgaW50byB0aGUgYmFja2luZyBhcnJheSwgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4gUmV0dXJuc1xuICogdGhlIGluZGV4IG9mIHRoZSBga2V5YCBpbiB0aGUgYmFja2luZyBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1dDxUIGV4dGVuZHMgS2V5PihzZXRhcnI6IFNldEFycmF5PFQ+LCBrZXk6IFQpOiBudW1iZXIge1xuICAvLyBUaGUga2V5IG1heSBvciBtYXkgbm90IGJlIHByZXNlbnQuIElmIGl0IGlzIHByZXNlbnQsIGl0J3MgYSBudW1iZXIuXG4gIGNvbnN0IGluZGV4ID0gZ2V0KHNldGFyciwga2V5KTtcbiAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHJldHVybiBpbmRleDtcblxuICBjb25zdCB7IGFycmF5LCBfaW5kZXhlczogaW5kZXhlcyB9ID0gY2FzdChzZXRhcnIpO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5LnB1c2goa2V5KTtcbiAgcmV0dXJuIChpbmRleGVzW2tleV0gPSBsZW5ndGggLSAxKTtcbn1cblxuLyoqXG4gKiBQb3BzIHRoZSBsYXN0IGFkZGVkIGl0ZW0gb3V0IG9mIHRoZSBTZXRBcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvcDxUIGV4dGVuZHMgS2V5PihzZXRhcnI6IFNldEFycmF5PFQ+KTogdm9pZCB7XG4gIGNvbnN0IHsgYXJyYXksIF9pbmRleGVzOiBpbmRleGVzIH0gPSBjYXN0KHNldGFycik7XG4gIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBjb25zdCBsYXN0ID0gYXJyYXkucG9wKCkhO1xuICBpbmRleGVzW2xhc3RdID0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGtleSwgaWYgaXQgZXhpc3RzIGluIHRoZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmU8VCBleHRlbmRzIEtleT4oc2V0YXJyOiBTZXRBcnJheTxUPiwga2V5OiBUKTogdm9pZCB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0KHNldGFyciwga2V5KTtcbiAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICBjb25zdCB7IGFycmF5LCBfaW5kZXhlczogaW5kZXhlcyB9ID0gY2FzdChzZXRhcnIpO1xuICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrID0gYXJyYXlbaV07XG4gICAgYXJyYXlbaSAtIDFdID0gaztcbiAgICBpbmRleGVzW2tdIS0tO1xuICB9XG4gIGluZGV4ZXNba2V5XSA9IHVuZGVmaW5lZDtcbiAgYXJyYXkucG9wKCk7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBTdHJpbmdSZWFkZXIsIFN0cmluZ1dyaXRlciB9IGZyb20gJy4vc3RyaW5ncyc7XG5cbmV4cG9ydCBjb25zdCBjb21tYSA9ICcsJy5jaGFyQ29kZUF0KDApO1xuZXhwb3J0IGNvbnN0IHNlbWljb2xvbiA9ICc7Jy5jaGFyQ29kZUF0KDApO1xuXG5jb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcbmNvbnN0IGludFRvQ2hhciA9IG5ldyBVaW50OEFycmF5KDY0KTsgLy8gNjQgcG9zc2libGUgY2hhcnMuXG5jb25zdCBjaGFyVG9JbnQgPSBuZXcgVWludDhBcnJheSgxMjgpOyAvLyB6IGlzIDEyMiBpbiBBU0NJSVxuXG5mb3IgKGxldCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7XG4gIGNvbnN0IGMgPSBjaGFycy5jaGFyQ29kZUF0KGkpO1xuICBpbnRUb0NoYXJbaV0gPSBjO1xuICBjaGFyVG9JbnRbY10gPSBpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlSW50ZWdlcihyZWFkZXI6IFN0cmluZ1JlYWRlciwgcmVsYXRpdmU6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB2YWx1ZSA9IDA7XG4gIGxldCBzaGlmdCA9IDA7XG4gIGxldCBpbnRlZ2VyID0gMDtcblxuICBkbyB7XG4gICAgY29uc3QgYyA9IHJlYWRlci5uZXh0KCk7XG4gICAgaW50ZWdlciA9IGNoYXJUb0ludFtjXTtcbiAgICB2YWx1ZSB8PSAoaW50ZWdlciAmIDMxKSA8PCBzaGlmdDtcbiAgICBzaGlmdCArPSA1O1xuICB9IHdoaWxlIChpbnRlZ2VyICYgMzIpO1xuXG4gIGNvbnN0IHNob3VsZE5lZ2F0ZSA9IHZhbHVlICYgMTtcbiAgdmFsdWUgPj4+PSAxO1xuXG4gIGlmIChzaG91bGROZWdhdGUpIHtcbiAgICB2YWx1ZSA9IC0weDgwMDAwMDAwIHwgLXZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHJlbGF0aXZlICsgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVJbnRlZ2VyKGJ1aWxkZXI6IFN0cmluZ1dyaXRlciwgbnVtOiBudW1iZXIsIHJlbGF0aXZlOiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgZGVsdGEgPSBudW0gLSByZWxhdGl2ZTtcblxuICBkZWx0YSA9IGRlbHRhIDwgMCA/ICgtZGVsdGEgPDwgMSkgfCAxIDogZGVsdGEgPDwgMTtcbiAgZG8ge1xuICAgIGxldCBjbGFtcGVkID0gZGVsdGEgJiAwYjAxMTExMTtcbiAgICBkZWx0YSA+Pj49IDU7XG4gICAgaWYgKGRlbHRhID4gMCkgY2xhbXBlZCB8PSAwYjEwMDAwMDtcbiAgICBidWlsZGVyLndyaXRlKGludFRvQ2hhcltjbGFtcGVkXSk7XG4gIH0gd2hpbGUgKGRlbHRhID4gMCk7XG5cbiAgcmV0dXJuIG51bTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01vcmVWbHEocmVhZGVyOiBTdHJpbmdSZWFkZXIsIG1heDogbnVtYmVyKSB7XG4gIGlmIChyZWFkZXIucG9zID49IG1heCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcmVhZGVyLnBlZWsoKSAhPT0gY29tbWE7XG59XG4iLCAiY29uc3QgYnVmTGVuZ3RoID0gMTAyNCAqIDE2O1xuXG4vLyBQcm92aWRlIGEgZmFsbGJhY2sgZm9yIG9sZGVyIGVudmlyb25tZW50cy5cbmNvbnN0IHRkID1cbiAgdHlwZW9mIFRleHREZWNvZGVyICE9PSAndW5kZWZpbmVkJ1xuICAgID8gLyogI19fUFVSRV9fICovIG5ldyBUZXh0RGVjb2RlcigpXG4gICAgOiB0eXBlb2YgQnVmZmVyICE9PSAndW5kZWZpbmVkJ1xuICAgID8ge1xuICAgICAgICBkZWNvZGUoYnVmOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICAgICAgICBjb25zdCBvdXQgPSBCdWZmZXIuZnJvbShidWYuYnVmZmVyLCBidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVMZW5ndGgpO1xuICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICA6IHtcbiAgICAgICAgZGVjb2RlKGJ1ZjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgICAgICAgbGV0IG91dCA9ICcnO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICB9LFxuICAgICAgfTtcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlciB7XG4gIHBvcyA9IDA7XG4gIHByaXZhdGUgb3V0ID0gJyc7XG4gIHByaXZhdGUgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnVmTGVuZ3RoKTtcblxuICB3cml0ZSh2OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciB9ID0gdGhpcztcbiAgICBidWZmZXJbdGhpcy5wb3MrK10gPSB2O1xuICAgIGlmICh0aGlzLnBvcyA9PT0gYnVmTGVuZ3RoKSB7XG4gICAgICB0aGlzLm91dCArPSB0ZC5kZWNvZGUoYnVmZmVyKTtcbiAgICAgIHRoaXMucG9zID0gMDtcbiAgICB9XG4gIH1cblxuICBmbHVzaCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgYnVmZmVyLCBvdXQsIHBvcyB9ID0gdGhpcztcbiAgICByZXR1cm4gcG9zID4gMCA/IG91dCArIHRkLmRlY29kZShidWZmZXIuc3ViYXJyYXkoMCwgcG9zKSkgOiBvdXQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0cmluZ1JlYWRlciB7XG4gIHBvcyA9IDA7XG4gIHByaXZhdGUgZGVjbGFyZSBidWZmZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihidWZmZXI6IHN0cmluZykge1xuICAgIHRoaXMuYnVmZmVyID0gYnVmZmVyO1xuICB9XG5cbiAgbmV4dCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKyspO1xuICB9XG5cbiAgcGVlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKTtcbiAgfVxuXG4gIGluZGV4T2YoY2hhcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgcG9zIH0gPSB0aGlzO1xuICAgIGNvbnN0IGlkeCA9IGJ1ZmZlci5pbmRleE9mKGNoYXIsIHBvcyk7XG4gICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBidWZmZXIubGVuZ3RoIDogaWR4O1xuICB9XG59XG4iLCAiaW1wb3J0IHsgU3RyaW5nUmVhZGVyLCBTdHJpbmdXcml0ZXIgfSBmcm9tICcuL3N0cmluZ3MnO1xuaW1wb3J0IHsgY29tbWEsIGRlY29kZUludGVnZXIsIGVuY29kZUludGVnZXIsIGhhc01vcmVWbHEsIHNlbWljb2xvbiB9IGZyb20gJy4vdmxxJztcblxuY29uc3QgRU1QVFk6IGFueVtdID0gW107XG5cbnR5cGUgTGluZSA9IG51bWJlcjtcbnR5cGUgQ29sdW1uID0gbnVtYmVyO1xudHlwZSBLaW5kID0gbnVtYmVyO1xudHlwZSBOYW1lID0gbnVtYmVyO1xudHlwZSBWYXIgPSBudW1iZXI7XG50eXBlIFNvdXJjZXNJbmRleCA9IG51bWJlcjtcbnR5cGUgU2NvcGVzSW5kZXggPSBudW1iZXI7XG5cbnR5cGUgTWl4PEEsIEIsIE8+ID0gKEEgJiBPKSB8IChCICYgTyk7XG5cbmV4cG9ydCB0eXBlIE9yaWdpbmFsU2NvcGUgPSBNaXg8XG4gIFtMaW5lLCBDb2x1bW4sIExpbmUsIENvbHVtbiwgS2luZF0sXG4gIFtMaW5lLCBDb2x1bW4sIExpbmUsIENvbHVtbiwgS2luZCwgTmFtZV0sXG4gIHsgdmFyczogVmFyW10gfVxuPjtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVkUmFuZ2UgPSBNaXg8XG4gIFtMaW5lLCBDb2x1bW4sIExpbmUsIENvbHVtbl0sXG4gIFtMaW5lLCBDb2x1bW4sIExpbmUsIENvbHVtbiwgU291cmNlc0luZGV4LCBTY29wZXNJbmRleF0sXG4gIHtcbiAgICBjYWxsc2l0ZTogQ2FsbFNpdGUgfCBudWxsO1xuICAgIGJpbmRpbmdzOiBCaW5kaW5nW107XG4gICAgaXNTY29wZTogYm9vbGVhbjtcbiAgfVxuPjtcbmV4cG9ydCB0eXBlIENhbGxTaXRlID0gW1NvdXJjZXNJbmRleCwgTGluZSwgQ29sdW1uXTtcbnR5cGUgQmluZGluZyA9IEJpbmRpbmdFeHByZXNzaW9uUmFuZ2VbXTtcbmV4cG9ydCB0eXBlIEJpbmRpbmdFeHByZXNzaW9uUmFuZ2UgPSBbTmFtZV0gfCBbTmFtZSwgTGluZSwgQ29sdW1uXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU9yaWdpbmFsU2NvcGVzKGlucHV0OiBzdHJpbmcpOiBPcmlnaW5hbFNjb3BlW10ge1xuICBjb25zdCB7IGxlbmd0aCB9ID0gaW5wdXQ7XG4gIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIoaW5wdXQpO1xuICBjb25zdCBzY29wZXM6IE9yaWdpbmFsU2NvcGVbXSA9IFtdO1xuICBjb25zdCBzdGFjazogT3JpZ2luYWxTY29wZVtdID0gW107XG4gIGxldCBsaW5lID0gMDtcblxuICBmb3IgKDsgcmVhZGVyLnBvcyA8IGxlbmd0aDsgcmVhZGVyLnBvcysrKSB7XG4gICAgbGluZSA9IGRlY29kZUludGVnZXIocmVhZGVyLCBsaW5lKTtcbiAgICBjb25zdCBjb2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG5cbiAgICBpZiAoIWhhc01vcmVWbHEocmVhZGVyLCBsZW5ndGgpKSB7XG4gICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCkhO1xuICAgICAgbGFzdFsyXSA9IGxpbmU7XG4gICAgICBsYXN0WzNdID0gY29sdW1uO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qga2luZCA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTtcbiAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgY29uc3QgaGFzTmFtZSA9IGZpZWxkcyAmIDBiMDAwMTtcblxuICAgIGNvbnN0IHNjb3BlOiBPcmlnaW5hbFNjb3BlID0gKFxuICAgICAgaGFzTmFtZSA/IFtsaW5lLCBjb2x1bW4sIDAsIDAsIGtpbmQsIGRlY29kZUludGVnZXIocmVhZGVyLCAwKV0gOiBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kXVxuICAgICkgYXMgT3JpZ2luYWxTY29wZTtcblxuICAgIGxldCB2YXJzOiBWYXJbXSA9IEVNUFRZO1xuICAgIGlmIChoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkge1xuICAgICAgdmFycyA9IFtdO1xuICAgICAgZG8ge1xuICAgICAgICBjb25zdCB2YXJzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgICAgIHZhcnMucHVzaCh2YXJzSW5kZXgpO1xuICAgICAgfSB3aGlsZSAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpO1xuICAgIH1cbiAgICBzY29wZS52YXJzID0gdmFycztcblxuICAgIHNjb3Blcy5wdXNoKHNjb3BlKTtcbiAgICBzdGFjay5wdXNoKHNjb3BlKTtcbiAgfVxuXG4gIHJldHVybiBzY29wZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXM6IE9yaWdpbmFsU2NvcGVbXSk6IHN0cmluZyB7XG4gIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNjb3Blcy5sZW5ndGg7ICkge1xuICAgIGkgPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpLCB3cml0ZXIsIFswXSk7XG4gIH1cblxuICByZXR1cm4gd3JpdGVyLmZsdXNoKCk7XG59XG5cbmZ1bmN0aW9uIF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhcbiAgc2NvcGVzOiBPcmlnaW5hbFNjb3BlW10sXG4gIGluZGV4OiBudW1iZXIsXG4gIHdyaXRlcjogU3RyaW5nV3JpdGVyLFxuICBzdGF0ZTogW1xuICAgIG51bWJlciwgLy8gR2VuQ29sdW1uXG4gIF0sXG4pOiBudW1iZXIge1xuICBjb25zdCBzY29wZSA9IHNjb3Blc1tpbmRleF07XG4gIGNvbnN0IHsgMDogc3RhcnRMaW5lLCAxOiBzdGFydENvbHVtbiwgMjogZW5kTGluZSwgMzogZW5kQ29sdW1uLCA0OiBraW5kLCB2YXJzIH0gPSBzY29wZTtcblxuICBpZiAoaW5kZXggPiAwKSB3cml0ZXIud3JpdGUoY29tbWEpO1xuXG4gIHN0YXRlWzBdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHN0YXJ0TGluZSwgc3RhdGVbMF0pO1xuICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc3RhcnRDb2x1bW4sIDApO1xuICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwga2luZCwgMCk7XG5cbiAgY29uc3QgZmllbGRzID0gc2NvcGUubGVuZ3RoID09PSA2ID8gMGIwMDAxIDogMDtcbiAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7XG4gIGlmIChzY29wZS5sZW5ndGggPT09IDYpIGVuY29kZUludGVnZXIod3JpdGVyLCBzY29wZVs1XSwgMCk7XG5cbiAgZm9yIChjb25zdCB2IG9mIHZhcnMpIHtcbiAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgdiwgMCk7XG4gIH1cblxuICBmb3IgKGluZGV4Kys7IGluZGV4IDwgc2NvcGVzLmxlbmd0aDsgKSB7XG4gICAgY29uc3QgbmV4dCA9IHNjb3Blc1tpbmRleF07XG4gICAgY29uc3QgeyAwOiBsLCAxOiBjIH0gPSBuZXh0O1xuICAgIGlmIChsID4gZW5kTGluZSB8fCAobCA9PT0gZW5kTGluZSAmJiBjID49IGVuZENvbHVtbikpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpbmRleCA9IF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKTtcbiAgfVxuXG4gIHdyaXRlci53cml0ZShjb21tYSk7XG4gIHN0YXRlWzBdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGVuZExpbmUsIHN0YXRlWzBdKTtcbiAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGVuZENvbHVtbiwgMCk7XG5cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlR2VuZXJhdGVkUmFuZ2VzKGlucHV0OiBzdHJpbmcpOiBHZW5lcmF0ZWRSYW5nZVtdIHtcbiAgY29uc3QgeyBsZW5ndGggfSA9IGlucHV0O1xuICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTtcbiAgY29uc3QgcmFuZ2VzOiBHZW5lcmF0ZWRSYW5nZVtdID0gW107XG4gIGNvbnN0IHN0YWNrOiBHZW5lcmF0ZWRSYW5nZVtdID0gW107XG5cbiAgbGV0IGdlbkxpbmUgPSAwO1xuICBsZXQgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9IDA7XG4gIGxldCBkZWZpbml0aW9uU2NvcGVJbmRleCA9IDA7XG4gIGxldCBjYWxsc2l0ZVNvdXJjZXNJbmRleCA9IDA7XG4gIGxldCBjYWxsc2l0ZUxpbmUgPSAwO1xuICBsZXQgY2FsbHNpdGVDb2x1bW4gPSAwO1xuICBsZXQgYmluZGluZ0xpbmUgPSAwO1xuICBsZXQgYmluZGluZ0NvbHVtbiA9IDA7XG5cbiAgZG8ge1xuICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZignOycpO1xuICAgIGxldCBnZW5Db2x1bW4gPSAwO1xuXG4gICAgZm9yICg7IHJlYWRlci5wb3MgPCBzZW1pOyByZWFkZXIucG9zKyspIHtcbiAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pO1xuXG4gICAgICBpZiAoIWhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkge1xuICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCkhO1xuICAgICAgICBsYXN0WzJdID0gZ2VuTGluZTtcbiAgICAgICAgbGFzdFszXSA9IGdlbkNvbHVtbjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpZWxkcyA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTtcbiAgICAgIGNvbnN0IGhhc0RlZmluaXRpb24gPSBmaWVsZHMgJiAwYjAwMDE7XG4gICAgICBjb25zdCBoYXNDYWxsc2l0ZSA9IGZpZWxkcyAmIDBiMDAxMDtcbiAgICAgIGNvbnN0IGhhc1Njb3BlID0gZmllbGRzICYgMGIwMTAwO1xuXG4gICAgICBsZXQgY2FsbHNpdGU6IENhbGxTaXRlIHwgbnVsbCA9IG51bGw7XG4gICAgICBsZXQgYmluZGluZ3M6IEJpbmRpbmdbXSA9IEVNUFRZO1xuICAgICAgbGV0IHJhbmdlOiBHZW5lcmF0ZWRSYW5nZTtcbiAgICAgIGlmIChoYXNEZWZpbml0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRlZlNvdXJjZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBkZWZpbml0aW9uU291cmNlc0luZGV4KTtcbiAgICAgICAgZGVmaW5pdGlvblNjb3BlSW5kZXggPSBkZWNvZGVJbnRlZ2VyKFxuICAgICAgICAgIHJlYWRlcixcbiAgICAgICAgICBkZWZpbml0aW9uU291cmNlc0luZGV4ID09PSBkZWZTb3VyY2VzSW5kZXggPyBkZWZpbml0aW9uU2NvcGVJbmRleCA6IDAsXG4gICAgICAgICk7XG5cbiAgICAgICAgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9IGRlZlNvdXJjZXNJbmRleDtcbiAgICAgICAgcmFuZ2UgPSBbZ2VuTGluZSwgZ2VuQ29sdW1uLCAwLCAwLCBkZWZTb3VyY2VzSW5kZXgsIGRlZmluaXRpb25TY29wZUluZGV4XSBhcyBHZW5lcmF0ZWRSYW5nZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMF0gYXMgR2VuZXJhdGVkUmFuZ2U7XG4gICAgICB9XG5cbiAgICAgIHJhbmdlLmlzU2NvcGUgPSAhIWhhc1Njb3BlO1xuXG4gICAgICBpZiAoaGFzQ2FsbHNpdGUpIHtcbiAgICAgICAgY29uc3QgcHJldkNzaSA9IGNhbGxzaXRlU291cmNlc0luZGV4O1xuICAgICAgICBjb25zdCBwcmV2TGluZSA9IGNhbGxzaXRlTGluZTtcbiAgICAgICAgY2FsbHNpdGVTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgY2FsbHNpdGVTb3VyY2VzSW5kZXgpO1xuICAgICAgICBjb25zdCBzYW1lU291cmNlID0gcHJldkNzaSA9PT0gY2FsbHNpdGVTb3VyY2VzSW5kZXg7XG4gICAgICAgIGNhbGxzaXRlTGluZSA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzYW1lU291cmNlID8gY2FsbHNpdGVMaW5lIDogMCk7XG4gICAgICAgIGNhbGxzaXRlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihcbiAgICAgICAgICByZWFkZXIsXG4gICAgICAgICAgc2FtZVNvdXJjZSAmJiBwcmV2TGluZSA9PT0gY2FsbHNpdGVMaW5lID8gY2FsbHNpdGVDb2x1bW4gOiAwLFxuICAgICAgICApO1xuXG4gICAgICAgIGNhbGxzaXRlID0gW2NhbGxzaXRlU291cmNlc0luZGV4LCBjYWxsc2l0ZUxpbmUsIGNhbGxzaXRlQ29sdW1uXTtcbiAgICAgIH1cbiAgICAgIHJhbmdlLmNhbGxzaXRlID0gY2FsbHNpdGU7XG5cbiAgICAgIGlmIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHtcbiAgICAgICAgYmluZGluZ3MgPSBbXTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGJpbmRpbmdMaW5lID0gZ2VuTGluZTtcbiAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZ2VuQ29sdW1uO1xuICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb25zQ291bnQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgICAgICAgbGV0IGV4cHJlc3Npb25SYW5nZXM6IEJpbmRpbmdFeHByZXNzaW9uUmFuZ2VbXTtcbiAgICAgICAgICBpZiAoZXhwcmVzc2lvbnNDb3VudCA8IC0xKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzID0gW1tkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAtMTsgaSA+IGV4cHJlc3Npb25zQ291bnQ7IGktLSkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2QmwgPSBiaW5kaW5nTGluZTtcbiAgICAgICAgICAgICAgYmluZGluZ0xpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUpO1xuICAgICAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGJpbmRpbmdMaW5lID09PSBwcmV2QmwgPyBiaW5kaW5nQ29sdW1uIDogMCk7XG4gICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7XG4gICAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMucHVzaChbZXhwcmVzc2lvbiwgYmluZGluZ0xpbmUsIGJpbmRpbmdDb2x1bW5dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZXhwcmVzc2lvbnNDb3VudF1dO1xuICAgICAgICAgIH1cbiAgICAgICAgICBiaW5kaW5ncy5wdXNoKGV4cHJlc3Npb25SYW5nZXMpO1xuICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpO1xuICAgICAgfVxuICAgICAgcmFuZ2UuYmluZGluZ3MgPSBiaW5kaW5ncztcblxuICAgICAgcmFuZ2VzLnB1c2gocmFuZ2UpO1xuICAgICAgc3RhY2sucHVzaChyYW5nZSk7XG4gICAgfVxuXG4gICAgZ2VuTGluZSsrO1xuICAgIHJlYWRlci5wb3MgPSBzZW1pICsgMTtcbiAgfSB3aGlsZSAocmVhZGVyLnBvcyA8IGxlbmd0aCk7XG5cbiAgcmV0dXJuIHJhbmdlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXM6IEdlbmVyYXRlZFJhbmdlW10pOiBzdHJpbmcge1xuICBpZiAocmFuZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuXG4gIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICkge1xuICAgIGkgPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaSwgd3JpdGVyLCBbMCwgMCwgMCwgMCwgMCwgMCwgMF0pO1xuICB9XG5cbiAgcmV0dXJuIHdyaXRlci5mbHVzaCgpO1xufVxuXG5mdW5jdGlvbiBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKFxuICByYW5nZXM6IEdlbmVyYXRlZFJhbmdlW10sXG4gIGluZGV4OiBudW1iZXIsXG4gIHdyaXRlcjogU3RyaW5nV3JpdGVyLFxuICBzdGF0ZTogW1xuICAgIG51bWJlciwgLy8gR2VuTGluZVxuICAgIG51bWJlciwgLy8gR2VuQ29sdW1uXG4gICAgbnVtYmVyLCAvLyBEZWZTb3VyY2VzSW5kZXhcbiAgICBudW1iZXIsIC8vIERlZlNjb3Blc0luZGV4XG4gICAgbnVtYmVyLCAvLyBDYWxsU291cmNlc0luZGV4XG4gICAgbnVtYmVyLCAvLyBDYWxsTGluZVxuICAgIG51bWJlciwgLy8gQ2FsbENvbHVtblxuICBdLFxuKTogbnVtYmVyIHtcbiAgY29uc3QgcmFuZ2UgPSByYW5nZXNbaW5kZXhdO1xuICBjb25zdCB7XG4gICAgMDogc3RhcnRMaW5lLFxuICAgIDE6IHN0YXJ0Q29sdW1uLFxuICAgIDI6IGVuZExpbmUsXG4gICAgMzogZW5kQ29sdW1uLFxuICAgIGlzU2NvcGUsXG4gICAgY2FsbHNpdGUsXG4gICAgYmluZGluZ3MsXG4gIH0gPSByYW5nZTtcblxuICBpZiAoc3RhdGVbMF0gPCBzdGFydExpbmUpIHtcbiAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBzdGFydExpbmUpO1xuICAgIHN0YXRlWzBdID0gc3RhcnRMaW5lO1xuICAgIHN0YXRlWzFdID0gMDtcbiAgfSBlbHNlIGlmIChpbmRleCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGUoY29tbWEpO1xuICB9XG5cbiAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgcmFuZ2VbMV0sIHN0YXRlWzFdKTtcblxuICBjb25zdCBmaWVsZHMgPVxuICAgIChyYW5nZS5sZW5ndGggPT09IDYgPyAwYjAwMDEgOiAwKSB8IChjYWxsc2l0ZSA/IDBiMDAxMCA6IDApIHwgKGlzU2NvcGUgPyAwYjAxMDAgOiAwKTtcbiAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7XG5cbiAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gNikge1xuICAgIGNvbnN0IHsgNDogc291cmNlc0luZGV4LCA1OiBzY29wZXNJbmRleCB9ID0gcmFuZ2U7XG4gICAgaWYgKHNvdXJjZXNJbmRleCAhPT0gc3RhdGVbMl0pIHtcbiAgICAgIHN0YXRlWzNdID0gMDtcbiAgICB9XG4gICAgc3RhdGVbMl0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc291cmNlc0luZGV4LCBzdGF0ZVsyXSk7XG4gICAgc3RhdGVbM10gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVzSW5kZXgsIHN0YXRlWzNdKTtcbiAgfVxuXG4gIGlmIChjYWxsc2l0ZSkge1xuICAgIGNvbnN0IHsgMDogc291cmNlc0luZGV4LCAxOiBjYWxsTGluZSwgMjogY2FsbENvbHVtbiB9ID0gcmFuZ2UuY2FsbHNpdGUhO1xuICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzRdKSB7XG4gICAgICBzdGF0ZVs1XSA9IDA7XG4gICAgICBzdGF0ZVs2XSA9IDA7XG4gICAgfSBlbHNlIGlmIChjYWxsTGluZSAhPT0gc3RhdGVbNV0pIHtcbiAgICAgIHN0YXRlWzZdID0gMDtcbiAgICB9XG4gICAgc3RhdGVbNF0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc291cmNlc0luZGV4LCBzdGF0ZVs0XSk7XG4gICAgc3RhdGVbNV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgY2FsbExpbmUsIHN0YXRlWzVdKTtcbiAgICBzdGF0ZVs2XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBjYWxsQ29sdW1uLCBzdGF0ZVs2XSk7XG4gIH1cblxuICBpZiAoYmluZGluZ3MpIHtcbiAgICBmb3IgKGNvbnN0IGJpbmRpbmcgb2YgYmluZGluZ3MpIHtcbiAgICAgIGlmIChiaW5kaW5nLmxlbmd0aCA+IDEpIGVuY29kZUludGVnZXIod3JpdGVyLCAtYmluZGluZy5sZW5ndGgsIDApO1xuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGJpbmRpbmdbMF1bMF07XG4gICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwcmVzc2lvbiwgMCk7XG4gICAgICBsZXQgYmluZGluZ1N0YXJ0TGluZSA9IHN0YXJ0TGluZTtcbiAgICAgIGxldCBiaW5kaW5nU3RhcnRDb2x1bW4gPSBzdGFydENvbHVtbjtcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYmluZGluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBleHBSYW5nZSA9IGJpbmRpbmdbaV07XG4gICAgICAgIGJpbmRpbmdTdGFydExpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwUmFuZ2VbMV0hLCBiaW5kaW5nU3RhcnRMaW5lKTtcbiAgICAgICAgYmluZGluZ1N0YXJ0Q29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzJdISwgYmluZGluZ1N0YXJ0Q29sdW1uKTtcbiAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzBdISwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9yIChpbmRleCsrOyBpbmRleCA8IHJhbmdlcy5sZW5ndGg7ICkge1xuICAgIGNvbnN0IG5leHQgPSByYW5nZXNbaW5kZXhdO1xuICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDtcbiAgICBpZiAobCA+IGVuZExpbmUgfHwgKGwgPT09IGVuZExpbmUgJiYgYyA+PSBlbmRDb2x1bW4pKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaW5kZXggPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaW5kZXgsIHdyaXRlciwgc3RhdGUpO1xuICB9XG5cbiAgaWYgKHN0YXRlWzBdIDwgZW5kTGluZSkge1xuICAgIGNhdGNodXBMaW5lKHdyaXRlciwgc3RhdGVbMF0sIGVuZExpbmUpO1xuICAgIHN0YXRlWzBdID0gZW5kTGluZTtcbiAgICBzdGF0ZVsxXSA9IDA7XG4gIH0gZWxzZSB7XG4gICAgd3JpdGVyLndyaXRlKGNvbW1hKTtcbiAgfVxuICBzdGF0ZVsxXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIHN0YXRlWzFdKTtcblxuICByZXR1cm4gaW5kZXg7XG59XG5cbmZ1bmN0aW9uIGNhdGNodXBMaW5lKHdyaXRlcjogU3RyaW5nV3JpdGVyLCBsYXN0TGluZTogbnVtYmVyLCBsaW5lOiBudW1iZXIpIHtcbiAgZG8ge1xuICAgIHdyaXRlci53cml0ZShzZW1pY29sb24pO1xuICB9IHdoaWxlICgrK2xhc3RMaW5lIDwgbGluZSk7XG59XG4iLCAiaW1wb3J0IHsgY29tbWEsIGRlY29kZUludGVnZXIsIGVuY29kZUludGVnZXIsIGhhc01vcmVWbHEsIHNlbWljb2xvbiB9IGZyb20gJy4vdmxxJztcbmltcG9ydCB7IFN0cmluZ1dyaXRlciwgU3RyaW5nUmVhZGVyIH0gZnJvbSAnLi9zdHJpbmdzJztcblxuZXhwb3J0IHtcbiAgZGVjb2RlT3JpZ2luYWxTY29wZXMsXG4gIGVuY29kZU9yaWdpbmFsU2NvcGVzLFxuICBkZWNvZGVHZW5lcmF0ZWRSYW5nZXMsXG4gIGVuY29kZUdlbmVyYXRlZFJhbmdlcyxcbn0gZnJvbSAnLi9zY29wZXMnO1xuZXhwb3J0IHR5cGUgeyBPcmlnaW5hbFNjb3BlLCBHZW5lcmF0ZWRSYW5nZSwgQ2FsbFNpdGUsIEJpbmRpbmdFeHByZXNzaW9uUmFuZ2UgfSBmcm9tICcuL3Njb3Blcyc7XG5cbmV4cG9ydCB0eXBlIFNvdXJjZU1hcFNlZ21lbnQgPVxuICB8IFtudW1iZXJdXG4gIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cbiAgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuZXhwb3J0IHR5cGUgU291cmNlTWFwTGluZSA9IFNvdXJjZU1hcFNlZ21lbnRbXTtcbmV4cG9ydCB0eXBlIFNvdXJjZU1hcE1hcHBpbmdzID0gU291cmNlTWFwTGluZVtdO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlKG1hcHBpbmdzOiBzdHJpbmcpOiBTb3VyY2VNYXBNYXBwaW5ncyB7XG4gIGNvbnN0IHsgbGVuZ3RoIH0gPSBtYXBwaW5ncztcbiAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihtYXBwaW5ncyk7XG4gIGNvbnN0IGRlY29kZWQ6IFNvdXJjZU1hcE1hcHBpbmdzID0gW107XG4gIGxldCBnZW5Db2x1bW4gPSAwO1xuICBsZXQgc291cmNlc0luZGV4ID0gMDtcbiAgbGV0IHNvdXJjZUxpbmUgPSAwO1xuICBsZXQgc291cmNlQ29sdW1uID0gMDtcbiAgbGV0IG5hbWVzSW5kZXggPSAwO1xuXG4gIGRvIHtcbiAgICBjb25zdCBzZW1pID0gcmVhZGVyLmluZGV4T2YoJzsnKTtcbiAgICBjb25zdCBsaW5lOiBTb3VyY2VNYXBMaW5lID0gW107XG4gICAgbGV0IHNvcnRlZCA9IHRydWU7XG4gICAgbGV0IGxhc3RDb2wgPSAwO1xuICAgIGdlbkNvbHVtbiA9IDA7XG5cbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IHNlbWkpIHtcbiAgICAgIGxldCBzZWc6IFNvdXJjZU1hcFNlZ21lbnQ7XG5cbiAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pO1xuICAgICAgaWYgKGdlbkNvbHVtbiA8IGxhc3RDb2wpIHNvcnRlZCA9IGZhbHNlO1xuICAgICAgbGFzdENvbCA9IGdlbkNvbHVtbjtcblxuICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkge1xuICAgICAgICBzb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlc0luZGV4KTtcbiAgICAgICAgc291cmNlTGluZSA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VMaW5lKTtcbiAgICAgICAgc291cmNlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZUNvbHVtbik7XG5cbiAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkge1xuICAgICAgICAgIG5hbWVzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgbmFtZXNJbmRleCk7XG4gICAgICAgICAgc2VnID0gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW4sIG5hbWVzSW5kZXhdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnID0gW2dlbkNvbHVtbl07XG4gICAgICB9XG5cbiAgICAgIGxpbmUucHVzaChzZWcpO1xuICAgICAgcmVhZGVyLnBvcysrO1xuICAgIH1cblxuICAgIGlmICghc29ydGVkKSBzb3J0KGxpbmUpO1xuICAgIGRlY29kZWQucHVzaChsaW5lKTtcbiAgICByZWFkZXIucG9zID0gc2VtaSArIDE7XG4gIH0gd2hpbGUgKHJlYWRlci5wb3MgPD0gbGVuZ3RoKTtcblxuICByZXR1cm4gZGVjb2RlZDtcbn1cblxuZnVuY3Rpb24gc29ydChsaW5lOiBTb3VyY2VNYXBTZWdtZW50W10pIHtcbiAgbGluZS5zb3J0KHNvcnRDb21wYXJhdG9yKTtcbn1cblxuZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYTogU291cmNlTWFwU2VnbWVudCwgYjogU291cmNlTWFwU2VnbWVudCk6IG51bWJlciB7XG4gIHJldHVybiBhWzBdIC0gYlswXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZShkZWNvZGVkOiBTb3VyY2VNYXBNYXBwaW5ncyk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZDogUmVhZG9ubHk8U291cmNlTWFwTWFwcGluZ3M+KTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZShkZWNvZGVkOiBSZWFkb25seTxTb3VyY2VNYXBNYXBwaW5ncz4pOiBzdHJpbmcge1xuICBjb25zdCB3cml0ZXIgPSBuZXcgU3RyaW5nV3JpdGVyKCk7XG4gIGxldCBzb3VyY2VzSW5kZXggPSAwO1xuICBsZXQgc291cmNlTGluZSA9IDA7XG4gIGxldCBzb3VyY2VDb2x1bW4gPSAwO1xuICBsZXQgbmFtZXNJbmRleCA9IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07XG4gICAgaWYgKGkgPiAwKSB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTtcbiAgICBpZiAobGluZS5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuXG4gICAgbGV0IGdlbkNvbHVtbiA9IDA7XG5cbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpbmUubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHNlZ21lbnQgPSBsaW5lW2pdO1xuICAgICAgaWYgKGogPiAwKSB3cml0ZXIud3JpdGUoY29tbWEpO1xuXG4gICAgICBnZW5Db2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFswXSwgZ2VuQ29sdW1uKTtcblxuICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAxKSBjb250aW51ZTtcbiAgICAgIHNvdXJjZXNJbmRleCA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzFdLCBzb3VyY2VzSW5kZXgpO1xuICAgICAgc291cmNlTGluZSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzJdLCBzb3VyY2VMaW5lKTtcbiAgICAgIHNvdXJjZUNvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzNdLCBzb3VyY2VDb2x1bW4pO1xuXG4gICAgICBpZiAoc2VnbWVudC5sZW5ndGggPT09IDQpIGNvbnRpbnVlO1xuICAgICAgbmFtZXNJbmRleCA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzRdLCBuYW1lc0luZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd3JpdGVyLmZsdXNoKCk7XG59XG4iLCAiLy8gTWF0Y2hlcyB0aGUgc2NoZW1lIG9mIGEgVVJMLCBlZyBcImh0dHA6Ly9cIlxuY29uc3Qgc2NoZW1lUmVnZXggPSAvXltcXHcrLi1dKzpcXC9cXC8vO1xuXG4vKipcbiAqIE1hdGNoZXMgdGhlIHBhcnRzIG9mIGEgVVJMOlxuICogMS4gU2NoZW1lLCBpbmNsdWRpbmcgXCI6XCIsIGd1YXJhbnRlZWQuXG4gKiAyLiBVc2VyL3Bhc3N3b3JkLCBpbmNsdWRpbmcgXCJAXCIsIG9wdGlvbmFsLlxuICogMy4gSG9zdCwgZ3VhcmFudGVlZC5cbiAqIDQuIFBvcnQsIGluY2x1ZGluZyBcIjpcIiwgb3B0aW9uYWwuXG4gKiA1LiBQYXRoLCBpbmNsdWRpbmcgXCIvXCIsIG9wdGlvbmFsLlxuICogNi4gUXVlcnksIGluY2x1ZGluZyBcIj9cIiwgb3B0aW9uYWwuXG4gKiA3LiBIYXNoLCBpbmNsdWRpbmcgXCIjXCIsIG9wdGlvbmFsLlxuICovXG5jb25zdCB1cmxSZWdleCA9IC9eKFtcXHcrLi1dKzopXFwvXFwvKFteQC8jP10qQCk/KFteOi8jP10qKSg6XFxkKyk/KFxcL1teIz9dKik/KFxcP1teI10qKT8oIy4qKT8vO1xuXG4vKipcbiAqIEZpbGUgVVJMcyBhcmUgd2VpcmQuIFRoZXkgZG9udCcgbmVlZCB0aGUgcmVndWxhciBgLy9gIGluIHRoZSBzY2hlbWUsIHRoZXkgbWF5IG9yIG1heSBub3Qgc3RhcnRcbiAqIHdpdGggYSBsZWFkaW5nIGAvYCwgdGhleSBjYW4gaGF2ZSBhIGRvbWFpbiAoYnV0IG9ubHkgaWYgdGhleSBkb24ndCBzdGFydCB3aXRoIGEgV2luZG93cyBkcml2ZSkuXG4gKlxuICogMS4gSG9zdCwgb3B0aW9uYWwuXG4gKiAyLiBQYXRoLCB3aGljaCBtYXkgaW5jbHVkZSBcIi9cIiwgZ3VhcmFudGVlZC5cbiAqIDMuIFF1ZXJ5LCBpbmNsdWRpbmcgXCI/XCIsIG9wdGlvbmFsLlxuICogNC4gSGFzaCwgaW5jbHVkaW5nIFwiI1wiLCBvcHRpb25hbC5cbiAqL1xuY29uc3QgZmlsZVJlZ2V4ID0gL15maWxlOig/OlxcL1xcLygoPyFbYS16XTopW14vIz9dKik/KT8oXFwvP1teIz9dKikoXFw/W14jXSopPygjLiopPy9pO1xuXG50eXBlIFVybCA9IHtcbiAgc2NoZW1lOiBzdHJpbmc7XG4gIHVzZXI6IHN0cmluZztcbiAgaG9zdDogc3RyaW5nO1xuICBwb3J0OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbiAgaGFzaDogc3RyaW5nO1xuICB0eXBlOiBVcmxUeXBlO1xufTtcblxuY29uc3QgZW51bSBVcmxUeXBlIHtcbiAgRW1wdHkgPSAxLFxuICBIYXNoID0gMixcbiAgUXVlcnkgPSAzLFxuICBSZWxhdGl2ZVBhdGggPSA0LFxuICBBYnNvbHV0ZVBhdGggPSA1LFxuICBTY2hlbWVSZWxhdGl2ZSA9IDYsXG4gIEFic29sdXRlID0gNyxcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZVVybChpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBzY2hlbWVSZWdleC50ZXN0KGlucHV0KTtcbn1cblxuZnVuY3Rpb24gaXNTY2hlbWVSZWxhdGl2ZVVybChpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbnB1dC5zdGFydHNXaXRoKCcvLycpO1xufVxuXG5mdW5jdGlvbiBpc0Fic29sdXRlUGF0aChpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbnB1dC5zdGFydHNXaXRoKCcvJyk7XG59XG5cbmZ1bmN0aW9uIGlzRmlsZVVybChpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbnB1dC5zdGFydHNXaXRoKCdmaWxlOicpO1xufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlKGlucHV0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eWy4/I10vLnRlc3QoaW5wdXQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUFic29sdXRlVXJsKGlucHV0OiBzdHJpbmcpOiBVcmwge1xuICBjb25zdCBtYXRjaCA9IHVybFJlZ2V4LmV4ZWMoaW5wdXQpITtcbiAgcmV0dXJuIG1ha2VVcmwoXG4gICAgbWF0Y2hbMV0sXG4gICAgbWF0Y2hbMl0gfHwgJycsXG4gICAgbWF0Y2hbM10sXG4gICAgbWF0Y2hbNF0gfHwgJycsXG4gICAgbWF0Y2hbNV0gfHwgJy8nLFxuICAgIG1hdGNoWzZdIHx8ICcnLFxuICAgIG1hdGNoWzddIHx8ICcnLFxuICApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUZpbGVVcmwoaW5wdXQ6IHN0cmluZyk6IFVybCB7XG4gIGNvbnN0IG1hdGNoID0gZmlsZVJlZ2V4LmV4ZWMoaW5wdXQpITtcbiAgY29uc3QgcGF0aCA9IG1hdGNoWzJdO1xuICByZXR1cm4gbWFrZVVybChcbiAgICAnZmlsZTonLFxuICAgICcnLFxuICAgIG1hdGNoWzFdIHx8ICcnLFxuICAgICcnLFxuICAgIGlzQWJzb2x1dGVQYXRoKHBhdGgpID8gcGF0aCA6ICcvJyArIHBhdGgsXG4gICAgbWF0Y2hbM10gfHwgJycsXG4gICAgbWF0Y2hbNF0gfHwgJycsXG4gICk7XG59XG5cbmZ1bmN0aW9uIG1ha2VVcmwoXG4gIHNjaGVtZTogc3RyaW5nLFxuICB1c2VyOiBzdHJpbmcsXG4gIGhvc3Q6IHN0cmluZyxcbiAgcG9ydDogc3RyaW5nLFxuICBwYXRoOiBzdHJpbmcsXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIGhhc2g6IHN0cmluZyxcbik6IFVybCB7XG4gIHJldHVybiB7XG4gICAgc2NoZW1lLFxuICAgIHVzZXIsXG4gICAgaG9zdCxcbiAgICBwb3J0LFxuICAgIHBhdGgsXG4gICAgcXVlcnksXG4gICAgaGFzaCxcbiAgICB0eXBlOiBVcmxUeXBlLkFic29sdXRlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVVybChpbnB1dDogc3RyaW5nKTogVXJsIHtcbiAgaWYgKGlzU2NoZW1lUmVsYXRpdmVVcmwoaW5wdXQpKSB7XG4gICAgY29uc3QgdXJsID0gcGFyc2VBYnNvbHV0ZVVybCgnaHR0cDonICsgaW5wdXQpO1xuICAgIHVybC5zY2hlbWUgPSAnJztcbiAgICB1cmwudHlwZSA9IFVybFR5cGUuU2NoZW1lUmVsYXRpdmU7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGlmIChpc0Fic29sdXRlUGF0aChpbnB1dCkpIHtcbiAgICBjb25zdCB1cmwgPSBwYXJzZUFic29sdXRlVXJsKCdodHRwOi8vZm9vLmNvbScgKyBpbnB1dCk7XG4gICAgdXJsLnNjaGVtZSA9ICcnO1xuICAgIHVybC5ob3N0ID0gJyc7XG4gICAgdXJsLnR5cGUgPSBVcmxUeXBlLkFic29sdXRlUGF0aDtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgaWYgKGlzRmlsZVVybChpbnB1dCkpIHJldHVybiBwYXJzZUZpbGVVcmwoaW5wdXQpO1xuXG4gIGlmIChpc0Fic29sdXRlVXJsKGlucHV0KSkgcmV0dXJuIHBhcnNlQWJzb2x1dGVVcmwoaW5wdXQpO1xuXG4gIGNvbnN0IHVybCA9IHBhcnNlQWJzb2x1dGVVcmwoJ2h0dHA6Ly9mb28uY29tLycgKyBpbnB1dCk7XG4gIHVybC5zY2hlbWUgPSAnJztcbiAgdXJsLmhvc3QgPSAnJztcbiAgdXJsLnR5cGUgPSBpbnB1dFxuICAgID8gaW5wdXQuc3RhcnRzV2l0aCgnPycpXG4gICAgICA/IFVybFR5cGUuUXVlcnlcbiAgICAgIDogaW5wdXQuc3RhcnRzV2l0aCgnIycpXG4gICAgICA/IFVybFR5cGUuSGFzaFxuICAgICAgOiBVcmxUeXBlLlJlbGF0aXZlUGF0aFxuICAgIDogVXJsVHlwZS5FbXB0eTtcbiAgcmV0dXJuIHVybDtcbn1cblxuZnVuY3Rpb24gc3RyaXBQYXRoRmlsZW5hbWUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgYSBwYXRoIGVuZHMgd2l0aCBhIHBhcmVudCBkaXJlY3RvcnkgXCIuLlwiLCB0aGVuIGl0J3MgYSByZWxhdGl2ZSBwYXRoIHdpdGggZXhjZXNzIHBhcmVudFxuICAvLyBwYXRocy4gSXQncyBub3QgYSBmaWxlLCBzbyB3ZSBjYW4ndCBzdHJpcCBpdC5cbiAgaWYgKHBhdGguZW5kc1dpdGgoJy8uLicpKSByZXR1cm4gcGF0aDtcbiAgY29uc3QgaW5kZXggPSBwYXRoLmxhc3RJbmRleE9mKCcvJyk7XG4gIHJldHVybiBwYXRoLnNsaWNlKDAsIGluZGV4ICsgMSk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlUGF0aHModXJsOiBVcmwsIGJhc2U6IFVybCkge1xuICBub3JtYWxpemVQYXRoKGJhc2UsIGJhc2UudHlwZSk7XG5cbiAgLy8gSWYgdGhlIHBhdGggaXMganVzdCBhIFwiL1wiLCB0aGVuIGl0IHdhcyBhbiBlbXB0eSBwYXRoIHRvIGJlZ2luIHdpdGggKHJlbWVtYmVyLCB3ZSdyZSBhIHJlbGF0aXZlXG4gIC8vIHBhdGgpLlxuICBpZiAodXJsLnBhdGggPT09ICcvJykge1xuICAgIHVybC5wYXRoID0gYmFzZS5wYXRoO1xuICB9IGVsc2Uge1xuICAgIC8vIFJlc29sdXRpb24gaGFwcGVucyByZWxhdGl2ZSB0byB0aGUgYmFzZSBwYXRoJ3MgZGlyZWN0b3J5LCBub3QgdGhlIGZpbGUuXG4gICAgdXJsLnBhdGggPSBzdHJpcFBhdGhGaWxlbmFtZShiYXNlLnBhdGgpICsgdXJsLnBhdGg7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgcGF0aCBjYW4gaGF2ZSBlbXB0eSBkaXJlY3RvcmllcyBcIi8vXCIsIHVubmVlZGVkIHBhcmVudHMgXCJmb28vLi5cIiwgb3IgY3VycmVudCBkaXJlY3RvcnlcbiAqIFwiZm9vLy5cIi4gV2UgbmVlZCB0byBub3JtYWxpemUgdG8gYSBzdGFuZGFyZCByZXByZXNlbnRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUGF0aCh1cmw6IFVybCwgdHlwZTogVXJsVHlwZSkge1xuICBjb25zdCByZWwgPSB0eXBlIDw9IFVybFR5cGUuUmVsYXRpdmVQYXRoO1xuICBjb25zdCBwaWVjZXMgPSB1cmwucGF0aC5zcGxpdCgnLycpO1xuXG4gIC8vIFdlIG5lZWQgdG8gcHJlc2VydmUgdGhlIGZpcnN0IHBpZWNlIGFsd2F5cywgc28gdGhhdCB3ZSBvdXRwdXQgYSBsZWFkaW5nIHNsYXNoLiBUaGUgaXRlbSBhdFxuICAvLyBwaWVjZXNbMF0gaXMgYW4gZW1wdHkgc3RyaW5nLlxuICBsZXQgcG9pbnRlciA9IDE7XG5cbiAgLy8gUG9zaXRpdmUgaXMgdGhlIG51bWJlciBvZiByZWFsIGRpcmVjdG9yaWVzIHdlJ3ZlIG91dHB1dCwgdXNlZCBmb3IgcG9wcGluZyBhIHBhcmVudCBkaXJlY3RvcnkuXG4gIC8vIEVnLCBcImZvby9iYXIvLi5cIiB3aWxsIGhhdmUgYSBwb3NpdGl2ZSAyLCBhbmQgd2UgY2FuIGRlY3JlbWVudCB0byBiZSBsZWZ0IHdpdGgganVzdCBcImZvb1wiLlxuICBsZXQgcG9zaXRpdmUgPSAwO1xuXG4gIC8vIFdlIG5lZWQgdG8ga2VlcCBhIHRyYWlsaW5nIHNsYXNoIGlmIHdlIGVuY291bnRlciBhbiBlbXB0eSBkaXJlY3RvcnkgKGVnLCBzcGxpdHRpbmcgXCJmb28vXCIgd2lsbFxuICAvLyBnZW5lcmF0ZSBgW1wiZm9vXCIsIFwiXCJdYCBwaWVjZXMpLiBBbmQsIGlmIHdlIHBvcCBhIHBhcmVudCBkaXJlY3RvcnkuIEJ1dCBvbmNlIHdlIGVuY291bnRlciBhXG4gIC8vIHJlYWwgZGlyZWN0b3J5LCB3ZSB3b24ndCBuZWVkIHRvIGFwcGVuZCwgdW5sZXNzIHRoZSBvdGhlciBjb25kaXRpb25zIGhhcHBlbiBhZ2Fpbi5cbiAgbGV0IGFkZFRyYWlsaW5nU2xhc2ggPSBmYWxzZTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8IHBpZWNlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHBpZWNlID0gcGllY2VzW2ldO1xuXG4gICAgLy8gQW4gZW1wdHkgZGlyZWN0b3J5LCBjb3VsZCBiZSBhIHRyYWlsaW5nIHNsYXNoLCBvciBqdXN0IGEgZG91YmxlIFwiLy9cIiBpbiB0aGUgcGF0aC5cbiAgICBpZiAoIXBpZWNlKSB7XG4gICAgICBhZGRUcmFpbGluZ1NsYXNoID0gdHJ1ZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGVuY291bnRlciBhIHJlYWwgZGlyZWN0b3J5LCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gYXBwZW5kIGFueW1vcmUuXG4gICAgYWRkVHJhaWxpbmdTbGFzaCA9IGZhbHNlO1xuXG4gICAgLy8gQSBjdXJyZW50IGRpcmVjdG9yeSwgd2hpY2ggd2UgY2FuIGFsd2F5cyBkcm9wLlxuICAgIGlmIChwaWVjZSA9PT0gJy4nKSBjb250aW51ZTtcblxuICAgIC8vIEEgcGFyZW50IGRpcmVjdG9yeSwgd2UgbmVlZCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSByZWFsIGRpcmVjdG9yaWVzIHdlIGNhbiBwb3AuIEVsc2UsIHdlXG4gICAgLy8gaGF2ZSBhbiBleGNlc3Mgb2YgcGFyZW50cywgYW5kIHdlJ2xsIG5lZWQgdG8ga2VlcCB0aGUgXCIuLlwiLlxuICAgIGlmIChwaWVjZSA9PT0gJy4uJykge1xuICAgICAgaWYgKHBvc2l0aXZlKSB7XG4gICAgICAgIGFkZFRyYWlsaW5nU2xhc2ggPSB0cnVlO1xuICAgICAgICBwb3NpdGl2ZS0tO1xuICAgICAgICBwb2ludGVyLS07XG4gICAgICB9IGVsc2UgaWYgKHJlbCkge1xuICAgICAgICAvLyBJZiB3ZSdyZSBpbiBhIHJlbGF0aXZlUGF0aCwgdGhlbiB3ZSBuZWVkIHRvIGtlZXAgdGhlIGV4Y2VzcyBwYXJlbnRzLiBFbHNlLCBpbiBhbiBhYnNvbHV0ZVxuICAgICAgICAvLyBVUkwsIHByb3RvY29sIHJlbGF0aXZlIFVSTCwgb3IgYW4gYWJzb2x1dGUgcGF0aCwgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIGV4Y2Vzcy5cbiAgICAgICAgcGllY2VzW3BvaW50ZXIrK10gPSBwaWVjZTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFdlJ3ZlIGVuY291bnRlcmVkIGEgcmVhbCBkaXJlY3RvcnkuIE1vdmUgaXQgdG8gdGhlIG5leHQgaW5zZXJ0aW9uIHBvaW50ZXIsIHdoaWNoIGFjY291bnRzIGZvclxuICAgIC8vIGFueSBwb3BwZWQgb3IgZHJvcHBlZCBkaXJlY3Rvcmllcy5cbiAgICBwaWVjZXNbcG9pbnRlcisrXSA9IHBpZWNlO1xuICAgIHBvc2l0aXZlKys7XG4gIH1cblxuICBsZXQgcGF0aCA9ICcnO1xuICBmb3IgKGxldCBpID0gMTsgaSA8IHBvaW50ZXI7IGkrKykge1xuICAgIHBhdGggKz0gJy8nICsgcGllY2VzW2ldO1xuICB9XG4gIGlmICghcGF0aCB8fCAoYWRkVHJhaWxpbmdTbGFzaCAmJiAhcGF0aC5lbmRzV2l0aCgnLy4uJykpKSB7XG4gICAgcGF0aCArPSAnLyc7XG4gIH1cbiAgdXJsLnBhdGggPSBwYXRoO1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIHJlc29sdmUgYGlucHV0YCBVUkwvcGF0aCByZWxhdGl2ZSB0byBgYmFzZWAuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmUoaW5wdXQ6IHN0cmluZywgYmFzZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgaWYgKCFpbnB1dCAmJiAhYmFzZSkgcmV0dXJuICcnO1xuXG4gIGNvbnN0IHVybCA9IHBhcnNlVXJsKGlucHV0KTtcbiAgbGV0IGlucHV0VHlwZSA9IHVybC50eXBlO1xuXG4gIGlmIChiYXNlICYmIGlucHV0VHlwZSAhPT0gVXJsVHlwZS5BYnNvbHV0ZSkge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBwYXJzZVVybChiYXNlKTtcbiAgICBjb25zdCBiYXNlVHlwZSA9IGJhc2VVcmwudHlwZTtcblxuICAgIHN3aXRjaCAoaW5wdXRUeXBlKSB7XG4gICAgICBjYXNlIFVybFR5cGUuRW1wdHk6XG4gICAgICAgIHVybC5oYXNoID0gYmFzZVVybC5oYXNoO1xuICAgICAgLy8gZmFsbCB0aHJvdWdoXG5cbiAgICAgIGNhc2UgVXJsVHlwZS5IYXNoOlxuICAgICAgICB1cmwucXVlcnkgPSBiYXNlVXJsLnF1ZXJ5O1xuICAgICAgLy8gZmFsbCB0aHJvdWdoXG5cbiAgICAgIGNhc2UgVXJsVHlwZS5RdWVyeTpcbiAgICAgIGNhc2UgVXJsVHlwZS5SZWxhdGl2ZVBhdGg6XG4gICAgICAgIG1lcmdlUGF0aHModXJsLCBiYXNlVXJsKTtcbiAgICAgIC8vIGZhbGwgdGhyb3VnaFxuXG4gICAgICBjYXNlIFVybFR5cGUuQWJzb2x1dGVQYXRoOlxuICAgICAgICAvLyBUaGUgaG9zdCwgdXNlciwgYW5kIHBvcnQgYXJlIGpvaW5lZCwgeW91IGNhbid0IGNvcHkgb25lIHdpdGhvdXQgdGhlIG90aGVycy5cbiAgICAgICAgdXJsLnVzZXIgPSBiYXNlVXJsLnVzZXI7XG4gICAgICAgIHVybC5ob3N0ID0gYmFzZVVybC5ob3N0O1xuICAgICAgICB1cmwucG9ydCA9IGJhc2VVcmwucG9ydDtcbiAgICAgIC8vIGZhbGwgdGhyb3VnaFxuXG4gICAgICBjYXNlIFVybFR5cGUuU2NoZW1lUmVsYXRpdmU6XG4gICAgICAgIC8vIFRoZSBpbnB1dCBkb2Vzbid0IGhhdmUgYSBzY2hlbWEgYXQgbGVhc3QsIHNvIHdlIG5lZWQgdG8gY29weSBhdCBsZWFzdCB0aGF0IG92ZXIuXG4gICAgICAgIHVybC5zY2hlbWUgPSBiYXNlVXJsLnNjaGVtZTtcbiAgICB9XG4gICAgaWYgKGJhc2VUeXBlID4gaW5wdXRUeXBlKSBpbnB1dFR5cGUgPSBiYXNlVHlwZTtcbiAgfVxuXG4gIG5vcm1hbGl6ZVBhdGgodXJsLCBpbnB1dFR5cGUpO1xuXG4gIGNvbnN0IHF1ZXJ5SGFzaCA9IHVybC5xdWVyeSArIHVybC5oYXNoO1xuICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgIC8vIFRoaXMgaXMgaW1wb3NzaWJsZSwgYmVjYXVzZSBvZiB0aGUgZW1wdHkgY2hlY2tzIGF0IHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24uXG4gICAgLy8gY2FzZSBVcmxUeXBlLkVtcHR5OlxuXG4gICAgY2FzZSBVcmxUeXBlLkhhc2g6XG4gICAgY2FzZSBVcmxUeXBlLlF1ZXJ5OlxuICAgICAgcmV0dXJuIHF1ZXJ5SGFzaDtcblxuICAgIGNhc2UgVXJsVHlwZS5SZWxhdGl2ZVBhdGg6IHtcbiAgICAgIC8vIFRoZSBmaXJzdCBjaGFyIGlzIGFsd2F5cyBhIFwiL1wiLCBhbmQgd2UgbmVlZCBpdCB0byBiZSByZWxhdGl2ZS5cbiAgICAgIGNvbnN0IHBhdGggPSB1cmwucGF0aC5zbGljZSgxKTtcblxuICAgICAgaWYgKCFwYXRoKSByZXR1cm4gcXVlcnlIYXNoIHx8ICcuJztcblxuICAgICAgaWYgKGlzUmVsYXRpdmUoYmFzZSB8fCBpbnB1dCkgJiYgIWlzUmVsYXRpdmUocGF0aCkpIHtcbiAgICAgICAgLy8gSWYgYmFzZSBzdGFydGVkIHdpdGggYSBsZWFkaW5nIFwiLlwiLCBvciB0aGVyZSBpcyBubyBiYXNlIGFuZCBpbnB1dCBzdGFydGVkIHdpdGggYSBcIi5cIixcbiAgICAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSByZWxhdGl2ZSBwYXRoIHN0YXJ0cyB3aXRoIGEgXCIuXCIuIFdlIGRvbid0IGtub3cgaWZcbiAgICAgICAgLy8gcmVsYXRpdmUgc3RhcnRzIHdpdGggYSBcIi4uXCIsIHRob3VnaCwgc28gY2hlY2sgYmVmb3JlIHByZXBlbmRpbmcuXG4gICAgICAgIHJldHVybiAnLi8nICsgcGF0aCArIHF1ZXJ5SGFzaDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhdGggKyBxdWVyeUhhc2g7XG4gICAgfVxuXG4gICAgY2FzZSBVcmxUeXBlLkFic29sdXRlUGF0aDpcbiAgICAgIHJldHVybiB1cmwucGF0aCArIHF1ZXJ5SGFzaDtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdXJsLnNjaGVtZSArICcvLycgKyB1cmwudXNlciArIHVybC5ob3N0ICsgdXJsLnBvcnQgKyB1cmwucGF0aCArIHF1ZXJ5SGFzaDtcbiAgfVxufVxuIiwgImltcG9ydCByZXNvbHZlVXJpIGZyb20gJ0BqcmlkZ2V3ZWxsL3Jlc29sdmUtdXJpJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZShpbnB1dDogc3RyaW5nLCBiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAvLyBUaGUgYmFzZSBpcyBhbHdheXMgdHJlYXRlZCBhcyBhIGRpcmVjdG9yeSwgaWYgaXQncyBub3QgZW1wdHkuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3NvdXJjZS1tYXAvYmxvYi84Y2IzZWU1Ny9saWIvdXRpbC5qcyNMMzI3XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL2RhNGFkYmIzL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2RldnRvb2xzL2Zyb250X2VuZC9zZGsvU291cmNlTWFwLmpzI0w0MDAtTDQwMVxuICBpZiAoYmFzZSAmJiAhYmFzZS5lbmRzV2l0aCgnLycpKSBiYXNlICs9ICcvJztcblxuICByZXR1cm4gcmVzb2x2ZVVyaShpbnB1dCwgYmFzZSk7XG59XG4iLCAiLyoqXG4gKiBSZW1vdmVzIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3QgXCIvXCIsIGJ1dCBsZWF2ZXMgdGhlIHNsYXNoLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdHJpcEZpbGVuYW1lKHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcge1xuICBpZiAoIXBhdGgpIHJldHVybiAnJztcbiAgY29uc3QgaW5kZXggPSBwYXRoLmxhc3RJbmRleE9mKCcvJyk7XG4gIHJldHVybiBwYXRoLnNsaWNlKDAsIGluZGV4ICsgMSk7XG59XG4iLCAidHlwZSBHZW5lcmF0ZWRDb2x1bW4gPSBudW1iZXI7XG50eXBlIFNvdXJjZXNJbmRleCA9IG51bWJlcjtcbnR5cGUgU291cmNlTGluZSA9IG51bWJlcjtcbnR5cGUgU291cmNlQ29sdW1uID0gbnVtYmVyO1xudHlwZSBOYW1lc0luZGV4ID0gbnVtYmVyO1xuXG50eXBlIEdlbmVyYXRlZExpbmUgPSBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIFNvdXJjZU1hcFNlZ21lbnQgPVxuICB8IFtHZW5lcmF0ZWRDb2x1bW5dXG4gIHwgW0dlbmVyYXRlZENvbHVtbiwgU291cmNlc0luZGV4LCBTb3VyY2VMaW5lLCBTb3VyY2VDb2x1bW5dXG4gIHwgW0dlbmVyYXRlZENvbHVtbiwgU291cmNlc0luZGV4LCBTb3VyY2VMaW5lLCBTb3VyY2VDb2x1bW4sIE5hbWVzSW5kZXhdO1xuXG5leHBvcnQgdHlwZSBSZXZlcnNlU2VnbWVudCA9IFtTb3VyY2VDb2x1bW4sIEdlbmVyYXRlZExpbmUsIEdlbmVyYXRlZENvbHVtbl07XG5cbmV4cG9ydCBjb25zdCBDT0xVTU4gPSAwO1xuZXhwb3J0IGNvbnN0IFNPVVJDRVNfSU5ERVggPSAxO1xuZXhwb3J0IGNvbnN0IFNPVVJDRV9MSU5FID0gMjtcbmV4cG9ydCBjb25zdCBTT1VSQ0VfQ09MVU1OID0gMztcbmV4cG9ydCBjb25zdCBOQU1FU19JTkRFWCA9IDQ7XG5cbmV4cG9ydCBjb25zdCBSRVZfR0VORVJBVEVEX0xJTkUgPSAxO1xuZXhwb3J0IGNvbnN0IFJFVl9HRU5FUkFURURfQ09MVU1OID0gMjtcbiIsICJpbXBvcnQgeyBDT0xVTU4gfSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcblxuaW1wb3J0IHR5cGUgeyBTb3VyY2VNYXBTZWdtZW50IH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1heWJlU29ydChcbiAgbWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdLFxuICBvd25lZDogYm9vbGVhbixcbik6IFNvdXJjZU1hcFNlZ21lbnRbXVtdIHtcbiAgY29uc3QgdW5zb3J0ZWRJbmRleCA9IG5leHRVbnNvcnRlZFNlZ21lbnRMaW5lKG1hcHBpbmdzLCAwKTtcbiAgaWYgKHVuc29ydGVkSW5kZXggPT09IG1hcHBpbmdzLmxlbmd0aCkgcmV0dXJuIG1hcHBpbmdzO1xuXG4gIC8vIElmIHdlIG93biB0aGUgYXJyYXkgKG1lYW5pbmcgd2UgcGFyc2VkIGl0IGZyb20gSlNPTiksIHRoZW4gd2UncmUgZnJlZSB0byBkaXJlY3RseSBtdXRhdGUgaXQuIElmXG4gIC8vIG5vdCwgd2UgZG8gbm90IHdhbnQgdG8gbW9kaWZ5IHRoZSBjb25zdW1lcidzIGlucHV0IGFycmF5LlxuICBpZiAoIW93bmVkKSBtYXBwaW5ncyA9IG1hcHBpbmdzLnNsaWNlKCk7XG5cbiAgZm9yIChsZXQgaSA9IHVuc29ydGVkSW5kZXg7IGkgPCBtYXBwaW5ncy5sZW5ndGg7IGkgPSBuZXh0VW5zb3J0ZWRTZWdtZW50TGluZShtYXBwaW5ncywgaSArIDEpKSB7XG4gICAgbWFwcGluZ3NbaV0gPSBzb3J0U2VnbWVudHMobWFwcGluZ3NbaV0sIG93bmVkKTtcbiAgfVxuICByZXR1cm4gbWFwcGluZ3M7XG59XG5cbmZ1bmN0aW9uIG5leHRVbnNvcnRlZFNlZ21lbnRMaW5lKG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSwgc3RhcnQ6IG51bWJlcik6IG51bWJlciB7XG4gIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IG1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFpc1NvcnRlZChtYXBwaW5nc1tpXSkpIHJldHVybiBpO1xuICB9XG4gIHJldHVybiBtYXBwaW5ncy5sZW5ndGg7XG59XG5cbmZ1bmN0aW9uIGlzU29ydGVkKGxpbmU6IFNvdXJjZU1hcFNlZ21lbnRbXSk6IGJvb2xlYW4ge1xuICBmb3IgKGxldCBqID0gMTsgaiA8IGxpbmUubGVuZ3RoOyBqKyspIHtcbiAgICBpZiAobGluZVtqXVtDT0xVTU5dIDwgbGluZVtqIC0gMV1bQ09MVU1OXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gc29ydFNlZ21lbnRzKGxpbmU6IFNvdXJjZU1hcFNlZ21lbnRbXSwgb3duZWQ6IGJvb2xlYW4pOiBTb3VyY2VNYXBTZWdtZW50W10ge1xuICBpZiAoIW93bmVkKSBsaW5lID0gbGluZS5zbGljZSgpO1xuICByZXR1cm4gbGluZS5zb3J0KHNvcnRDb21wYXJhdG9yKTtcbn1cblxuZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYTogU291cmNlTWFwU2VnbWVudCwgYjogU291cmNlTWFwU2VnbWVudCk6IG51bWJlciB7XG4gIHJldHVybiBhW0NPTFVNTl0gLSBiW0NPTFVNTl07XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBTb3VyY2VNYXBTZWdtZW50LCBSZXZlcnNlU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuaW1wb3J0IHsgQ09MVU1OIH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5cbmV4cG9ydCB0eXBlIE1lbW9TdGF0ZSA9IHtcbiAgbGFzdEtleTogbnVtYmVyO1xuICBsYXN0TmVlZGxlOiBudW1iZXI7XG4gIGxhc3RJbmRleDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGxldCBmb3VuZCA9IGZhbHNlO1xuXG4vKipcbiAqIEEgYmluYXJ5IHNlYXJjaCBpbXBsZW1lbnRhdGlvbiB0aGF0IHJldHVybnMgdGhlIGluZGV4IGlmIGEgbWF0Y2ggaXMgZm91bmQuXG4gKiBJZiBubyBtYXRjaCBpcyBmb3VuZCwgdGhlbiB0aGUgbGVmdC1pbmRleCAodGhlIGluZGV4IGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbSB0aGF0IGNvbWVzIGp1c3RcbiAqIGJlZm9yZSB0aGUgZGVzaXJlZCBpbmRleCkgaXMgcmV0dXJuZWQuIFRvIG1haW50YWluIHByb3BlciBzb3J0IG9yZGVyLCBhIHNwbGljZSB3b3VsZCBoYXBwZW4gYXRcbiAqIHRoZSBuZXh0IGluZGV4OlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBhcnJheSA9IFsxLCAzXTtcbiAqIGNvbnN0IG5lZWRsZSA9IDI7XG4gKiBjb25zdCBpbmRleCA9IGJpbmFyeVNlYXJjaChhcnJheSwgbmVlZGxlLCAoaXRlbSwgbmVlZGxlKSA9PiBpdGVtIC0gbmVlZGxlKTtcbiAqXG4gKiBhc3NlcnQuZXF1YWwoaW5kZXgsIDApO1xuICogYXJyYXkuc3BsaWNlKGluZGV4ICsgMSwgMCwgbmVlZGxlKTtcbiAqIGFzc2VydC5kZWVwRXF1YWwoYXJyYXksIFsxLCAyLCAzXSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpbmFyeVNlYXJjaChcbiAgaGF5c3RhY2s6IFNvdXJjZU1hcFNlZ21lbnRbXSB8IFJldmVyc2VTZWdtZW50W10sXG4gIG5lZWRsZTogbnVtYmVyLFxuICBsb3c6IG51bWJlcixcbiAgaGlnaDogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgd2hpbGUgKGxvdyA8PSBoaWdoKSB7XG4gICAgY29uc3QgbWlkID0gbG93ICsgKChoaWdoIC0gbG93KSA+PiAxKTtcbiAgICBjb25zdCBjbXAgPSBoYXlzdGFja1ttaWRdW0NPTFVNTl0gLSBuZWVkbGU7XG5cbiAgICBpZiAoY21wID09PSAwKSB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gbWlkO1xuICAgIH1cblxuICAgIGlmIChjbXAgPCAwKSB7XG4gICAgICBsb3cgPSBtaWQgKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaWdoID0gbWlkIC0gMTtcbiAgICB9XG4gIH1cblxuICBmb3VuZCA9IGZhbHNlO1xuICByZXR1cm4gbG93IC0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwcGVyQm91bmQoXG4gIGhheXN0YWNrOiBTb3VyY2VNYXBTZWdtZW50W10gfCBSZXZlcnNlU2VnbWVudFtdLFxuICBuZWVkbGU6IG51bWJlcixcbiAgaW5kZXg6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGZvciAobGV0IGkgPSBpbmRleCArIDE7IGkgPCBoYXlzdGFjay5sZW5ndGg7IGluZGV4ID0gaSsrKSB7XG4gICAgaWYgKGhheXN0YWNrW2ldW0NPTFVNTl0gIT09IG5lZWRsZSkgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJCb3VuZChcbiAgaGF5c3RhY2s6IFNvdXJjZU1hcFNlZ21lbnRbXSB8IFJldmVyc2VTZWdtZW50W10sXG4gIG5lZWRsZTogbnVtYmVyLFxuICBpbmRleDogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgZm9yIChsZXQgaSA9IGluZGV4IC0gMTsgaSA+PSAwOyBpbmRleCA9IGktLSkge1xuICAgIGlmIChoYXlzdGFja1tpXVtDT0xVTU5dICE9PSBuZWVkbGUpIGJyZWFrO1xuICB9XG4gIHJldHVybiBpbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkU3RhdGUoKTogTWVtb1N0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBsYXN0S2V5OiAtMSxcbiAgICBsYXN0TmVlZGxlOiAtMSxcbiAgICBsYXN0SW5kZXg6IC0xLFxuICB9O1xufVxuXG4vKipcbiAqIFRoaXMgb3Zlcmx5IGNvbXBsaWNhdGVkIGJlYXN0IGlzIGp1c3QgdG8gcmVjb3JkIHRoZSBsYXN0IHRlc3RlZCBsaW5lL2NvbHVtbiBhbmQgdGhlIHJlc3VsdGluZ1xuICogaW5kZXgsIGFsbG93aW5nIHVzIHRvIHNraXAgYSBmZXcgdGVzdHMgaWYgbWFwcGluZ3MgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkQmluYXJ5U2VhcmNoKFxuICBoYXlzdGFjazogU291cmNlTWFwU2VnbWVudFtdIHwgUmV2ZXJzZVNlZ21lbnRbXSxcbiAgbmVlZGxlOiBudW1iZXIsXG4gIHN0YXRlOiBNZW1vU3RhdGUsXG4gIGtleTogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgY29uc3QgeyBsYXN0S2V5LCBsYXN0TmVlZGxlLCBsYXN0SW5kZXggfSA9IHN0YXRlO1xuXG4gIGxldCBsb3cgPSAwO1xuICBsZXQgaGlnaCA9IGhheXN0YWNrLmxlbmd0aCAtIDE7XG4gIGlmIChrZXkgPT09IGxhc3RLZXkpIHtcbiAgICBpZiAobmVlZGxlID09PSBsYXN0TmVlZGxlKSB7XG4gICAgICBmb3VuZCA9IGxhc3RJbmRleCAhPT0gLTEgJiYgaGF5c3RhY2tbbGFzdEluZGV4XVtDT0xVTU5dID09PSBuZWVkbGU7XG4gICAgICByZXR1cm4gbGFzdEluZGV4O1xuICAgIH1cblxuICAgIGlmIChuZWVkbGUgPj0gbGFzdE5lZWRsZSkge1xuICAgICAgLy8gbGFzdEluZGV4IG1heSBiZSAtMSBpZiB0aGUgcHJldmlvdXMgbmVlZGxlIHdhcyBub3QgZm91bmQuXG4gICAgICBsb3cgPSBsYXN0SW5kZXggPT09IC0xID8gMCA6IGxhc3RJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgaGlnaCA9IGxhc3RJbmRleDtcbiAgICB9XG4gIH1cbiAgc3RhdGUubGFzdEtleSA9IGtleTtcbiAgc3RhdGUubGFzdE5lZWRsZSA9IG5lZWRsZTtcblxuICByZXR1cm4gKHN0YXRlLmxhc3RJbmRleCA9IGJpbmFyeVNlYXJjaChoYXlzdGFjaywgbmVlZGxlLCBsb3csIGhpZ2gpKTtcbn1cbiIsICJpbXBvcnQgeyBDT0xVTU4sIFNPVVJDRVNfSU5ERVgsIFNPVVJDRV9MSU5FLCBTT1VSQ0VfQ09MVU1OIH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5pbXBvcnQgeyBtZW1vaXplZEJpbmFyeVNlYXJjaCwgdXBwZXJCb3VuZCB9IGZyb20gJy4vYmluYXJ5LXNlYXJjaCc7XG5cbmltcG9ydCB0eXBlIHsgUmV2ZXJzZVNlZ21lbnQsIFNvdXJjZU1hcFNlZ21lbnQgfSBmcm9tICcuL3NvdXJjZW1hcC1zZWdtZW50JztcbmltcG9ydCB0eXBlIHsgTWVtb1N0YXRlIH0gZnJvbSAnLi9iaW5hcnktc2VhcmNoJztcblxuZXhwb3J0IHR5cGUgU291cmNlID0ge1xuICBfX3Byb3RvX186IG51bGw7XG4gIFtsaW5lOiBudW1iZXJdOiBFeGNsdWRlPFJldmVyc2VTZWdtZW50LCBbbnVtYmVyXT5bXTtcbn07XG5cbi8vIFJlYnVpbGRzIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMsIHdpdGggbWFwcGluZ3MgdGhhdCBhcmUgb3JkZXJlZCBieSBzb3VyY2UgbGluZS9jb2x1bW4gaW5zdGVhZFxuLy8gb2YgZ2VuZXJhdGVkIGxpbmUvY29sdW1uLlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRCeVNvdXJjZXMoXG4gIGRlY29kZWQ6IHJlYWRvbmx5IFNvdXJjZU1hcFNlZ21lbnRbXVtdLFxuICBtZW1vczogTWVtb1N0YXRlW10sXG4pOiBTb3VyY2VbXSB7XG4gIGNvbnN0IHNvdXJjZXM6IFNvdXJjZVtdID0gbWVtb3MubWFwKGJ1aWxkTnVsbEFycmF5KTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlY29kZWQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBsaW5lID0gZGVjb2RlZFtpXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpbmUubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHNlZyA9IGxpbmVbal07XG4gICAgICBpZiAoc2VnLmxlbmd0aCA9PT0gMSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gc2VnW1NPVVJDRVNfSU5ERVhdO1xuICAgICAgY29uc3Qgc291cmNlTGluZSA9IHNlZ1tTT1VSQ0VfTElORV07XG4gICAgICBjb25zdCBzb3VyY2VDb2x1bW4gPSBzZWdbU09VUkNFX0NPTFVNTl07XG4gICAgICBjb25zdCBvcmlnaW5hbFNvdXJjZSA9IHNvdXJjZXNbc291cmNlSW5kZXhdO1xuICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lID0gKG9yaWdpbmFsU291cmNlW3NvdXJjZUxpbmVdIHx8PSBbXSk7XG4gICAgICBjb25zdCBtZW1vID0gbWVtb3Nbc291cmNlSW5kZXhdO1xuXG4gICAgICAvLyBUaGUgYmluYXJ5IHNlYXJjaCBlaXRoZXIgZm91bmQgYSBtYXRjaCwgb3IgaXQgZm91bmQgdGhlIGxlZnQtaW5kZXgganVzdCBiZWZvcmUgd2hlcmUgdGhlXG4gICAgICAvLyBzZWdtZW50IHNob3VsZCBnby4gRWl0aGVyIHdheSwgd2Ugd2FudCB0byBpbnNlcnQgYWZ0ZXIgdGhhdC4gQW5kIHRoZXJlIG1heSBiZSBtdWx0aXBsZVxuICAgICAgLy8gZ2VuZXJhdGVkIHNlZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCBhbiBvcmlnaW5hbCBsb2NhdGlvbiwgc28gdGhlcmUgbWF5IG5lZWQgdG8gbW92ZSBzZXZlcmFsXG4gICAgICAvLyBpbmRleGVzIGJlZm9yZSB3ZSBmaW5kIHdoZXJlIHdlIG5lZWQgdG8gaW5zZXJ0LlxuICAgICAgbGV0IGluZGV4ID0gdXBwZXJCb3VuZChcbiAgICAgICAgb3JpZ2luYWxMaW5lLFxuICAgICAgICBzb3VyY2VDb2x1bW4sXG4gICAgICAgIG1lbW9pemVkQmluYXJ5U2VhcmNoKG9yaWdpbmFsTGluZSwgc291cmNlQ29sdW1uLCBtZW1vLCBzb3VyY2VMaW5lKSxcbiAgICAgICk7XG5cbiAgICAgIG1lbW8ubGFzdEluZGV4ID0gKytpbmRleDtcbiAgICAgIGluc2VydChvcmlnaW5hbExpbmUsIGluZGV4LCBbc291cmNlQ29sdW1uLCBpLCBzZWdbQ09MVU1OXV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzb3VyY2VzO1xufVxuXG5mdW5jdGlvbiBpbnNlcnQ8VD4oYXJyYXk6IFRbXSwgaW5kZXg6IG51bWJlciwgdmFsdWU6IFQpIHtcbiAgZm9yIChsZXQgaSA9IGFycmF5Lmxlbmd0aDsgaSA+IGluZGV4OyBpLS0pIHtcbiAgICBhcnJheVtpXSA9IGFycmF5W2kgLSAxXTtcbiAgfVxuICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcbn1cblxuLy8gTnVsbCBhcnJheXMgYWxsb3cgdXMgdG8gdXNlIG9yZGVyZWQgaW5kZXgga2V5cyB3aXRob3V0IGFjdHVhbGx5IGFsbG9jYXRpbmcgY29udGlndW91cyBtZW1vcnkgbGlrZVxuLy8gYSByZWFsIGFycmF5LiBXZSB1c2UgYSBudWxsLXByb3RvdHlwZSBvYmplY3QgdG8gYXZvaWQgcHJvdG90eXBlIHBvbGx1dGlvbiBhbmQgZGVvcHRpbWl6YXRpb25zLlxuLy8gTnVtZXJpYyBwcm9wZXJ0aWVzIG9uIG9iamVjdHMgYXJlIG1hZ2ljYWxseSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IHRoZSBlbmdpbmUgcmVnYXJkbGVzcyBvZlxuLy8gdGhlIGluc2VydGlvbiBvcmRlci4gU28sIGJ5IHNldHRpbmcgYW55IG51bWVyaWMga2V5cywgZXZlbiBvdXQgb2Ygb3JkZXIsIHdlJ2xsIGdldCBhc2NlbmRpbmdcbi8vIG9yZGVyIHdoZW4gaXRlcmF0aW5nIHdpdGggZm9yLWluLlxuZnVuY3Rpb24gYnVpbGROdWxsQXJyYXk8VCBleHRlbmRzIHsgX19wcm90b19fOiBudWxsIH0+KCk6IFQge1xuICByZXR1cm4geyBfX3Byb3RvX186IG51bGwgfSBhcyBUO1xufVxuIiwgImltcG9ydCB7IFRyYWNlTWFwLCBwcmVzb3J0ZWREZWNvZGVkTWFwLCBkZWNvZGVkTWFwcGluZ3MgfSBmcm9tICcuL3RyYWNlLW1hcHBpbmcnO1xuaW1wb3J0IHtcbiAgQ09MVU1OLFxuICBTT1VSQ0VTX0lOREVYLFxuICBTT1VSQ0VfTElORSxcbiAgU09VUkNFX0NPTFVNTixcbiAgTkFNRVNfSU5ERVgsXG59IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERlY29kZWRTb3VyY2VNYXAsXG4gIERlY29kZWRTb3VyY2VNYXBYSW5wdXQsXG4gIEVuY29kZWRTb3VyY2VNYXBYSW5wdXQsXG4gIFNlY3Rpb25lZFNvdXJjZU1hcFhJbnB1dCxcbiAgU2VjdGlvbmVkU291cmNlTWFwSW5wdXQsXG4gIFNlY3Rpb25YSW5wdXQsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2VNYXBTZWdtZW50IH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5cbnR5cGUgQW55TWFwID0ge1xuICBuZXcgKG1hcDogU2VjdGlvbmVkU291cmNlTWFwSW5wdXQsIG1hcFVybD86IHN0cmluZyB8IG51bGwpOiBUcmFjZU1hcDtcbiAgKG1hcDogU2VjdGlvbmVkU291cmNlTWFwSW5wdXQsIG1hcFVybD86IHN0cmluZyB8IG51bGwpOiBUcmFjZU1hcDtcbn07XG5cbmV4cG9ydCBjb25zdCBBbnlNYXA6IEFueU1hcCA9IGZ1bmN0aW9uIChtYXAsIG1hcFVybCkge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZShtYXApO1xuXG4gIGlmICghKCdzZWN0aW9ucycgaW4gcGFyc2VkKSkge1xuICAgIHJldHVybiBuZXcgVHJhY2VNYXAocGFyc2VkIGFzIERlY29kZWRTb3VyY2VNYXBYSW5wdXQgfCBFbmNvZGVkU291cmNlTWFwWElucHV0LCBtYXBVcmwpO1xuICB9XG5cbiAgY29uc3QgbWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdID0gW107XG4gIGNvbnN0IHNvdXJjZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNvdXJjZXNDb250ZW50OiAoc3RyaW5nIHwgbnVsbClbXSA9IFtdO1xuICBjb25zdCBuYW1lczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgaWdub3JlTGlzdDogbnVtYmVyW10gPSBbXTtcblxuICByZWN1cnNlKFxuICAgIHBhcnNlZCxcbiAgICBtYXBVcmwsXG4gICAgbWFwcGluZ3MsXG4gICAgc291cmNlcyxcbiAgICBzb3VyY2VzQ29udGVudCxcbiAgICBuYW1lcyxcbiAgICBpZ25vcmVMaXN0LFxuICAgIDAsXG4gICAgMCxcbiAgICBJbmZpbml0eSxcbiAgICBJbmZpbml0eSxcbiAgKTtcblxuICBjb25zdCBqb2luZWQ6IERlY29kZWRTb3VyY2VNYXAgPSB7XG4gICAgdmVyc2lvbjogMyxcbiAgICBmaWxlOiBwYXJzZWQuZmlsZSxcbiAgICBuYW1lcyxcbiAgICBzb3VyY2VzLFxuICAgIHNvdXJjZXNDb250ZW50LFxuICAgIG1hcHBpbmdzLFxuICAgIGlnbm9yZUxpc3QsXG4gIH07XG5cbiAgcmV0dXJuIHByZXNvcnRlZERlY29kZWRNYXAoam9pbmVkKTtcbn0gYXMgQW55TWFwO1xuXG5mdW5jdGlvbiBwYXJzZTxUPihtYXA6IFQpOiBFeGNsdWRlPFQsIHN0cmluZz4ge1xuICByZXR1cm4gdHlwZW9mIG1hcCA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKG1hcCkgOiBtYXA7XG59XG5cbmZ1bmN0aW9uIHJlY3Vyc2UoXG4gIGlucHV0OiBTZWN0aW9uZWRTb3VyY2VNYXBYSW5wdXQsXG4gIG1hcFVybDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgbWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdLFxuICBzb3VyY2VzOiBzdHJpbmdbXSxcbiAgc291cmNlc0NvbnRlbnQ6IChzdHJpbmcgfCBudWxsKVtdLFxuICBuYW1lczogc3RyaW5nW10sXG4gIGlnbm9yZUxpc3Q6IG51bWJlcltdLFxuICBsaW5lT2Zmc2V0OiBudW1iZXIsXG4gIGNvbHVtbk9mZnNldDogbnVtYmVyLFxuICBzdG9wTGluZTogbnVtYmVyLFxuICBzdG9wQ29sdW1uOiBudW1iZXIsXG4pIHtcbiAgY29uc3QgeyBzZWN0aW9ucyB9ID0gaW5wdXQ7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB7IG1hcCwgb2Zmc2V0IH0gPSBzZWN0aW9uc1tpXTtcblxuICAgIGxldCBzbCA9IHN0b3BMaW5lO1xuICAgIGxldCBzYyA9IHN0b3BDb2x1bW47XG4gICAgaWYgKGkgKyAxIDwgc2VjdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0T2Zmc2V0ID0gc2VjdGlvbnNbaSArIDFdLm9mZnNldDtcbiAgICAgIHNsID0gTWF0aC5taW4oc3RvcExpbmUsIGxpbmVPZmZzZXQgKyBuZXh0T2Zmc2V0LmxpbmUpO1xuXG4gICAgICBpZiAoc2wgPT09IHN0b3BMaW5lKSB7XG4gICAgICAgIHNjID0gTWF0aC5taW4oc3RvcENvbHVtbiwgY29sdW1uT2Zmc2V0ICsgbmV4dE9mZnNldC5jb2x1bW4pO1xuICAgICAgfSBlbHNlIGlmIChzbCA8IHN0b3BMaW5lKSB7XG4gICAgICAgIHNjID0gY29sdW1uT2Zmc2V0ICsgbmV4dE9mZnNldC5jb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWRkU2VjdGlvbihcbiAgICAgIG1hcCxcbiAgICAgIG1hcFVybCxcbiAgICAgIG1hcHBpbmdzLFxuICAgICAgc291cmNlcyxcbiAgICAgIHNvdXJjZXNDb250ZW50LFxuICAgICAgbmFtZXMsXG4gICAgICBpZ25vcmVMaXN0LFxuICAgICAgbGluZU9mZnNldCArIG9mZnNldC5saW5lLFxuICAgICAgY29sdW1uT2Zmc2V0ICsgb2Zmc2V0LmNvbHVtbixcbiAgICAgIHNsLFxuICAgICAgc2MsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRTZWN0aW9uKFxuICBpbnB1dDogU2VjdGlvblhJbnB1dFsnbWFwJ10sXG4gIG1hcFVybDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgbWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdLFxuICBzb3VyY2VzOiBzdHJpbmdbXSxcbiAgc291cmNlc0NvbnRlbnQ6IChzdHJpbmcgfCBudWxsKVtdLFxuICBuYW1lczogc3RyaW5nW10sXG4gIGlnbm9yZUxpc3Q6IG51bWJlcltdLFxuICBsaW5lT2Zmc2V0OiBudW1iZXIsXG4gIGNvbHVtbk9mZnNldDogbnVtYmVyLFxuICBzdG9wTGluZTogbnVtYmVyLFxuICBzdG9wQ29sdW1uOiBudW1iZXIsXG4pIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2UoaW5wdXQpO1xuICBpZiAoJ3NlY3Rpb25zJyBpbiBwYXJzZWQpIHJldHVybiByZWN1cnNlKC4uLihhcmd1bWVudHMgYXMgdW5rbm93biBhcyBQYXJhbWV0ZXJzPHR5cGVvZiByZWN1cnNlPikpO1xuXG4gIGNvbnN0IG1hcCA9IG5ldyBUcmFjZU1hcChwYXJzZWQsIG1hcFVybCk7XG4gIGNvbnN0IHNvdXJjZXNPZmZzZXQgPSBzb3VyY2VzLmxlbmd0aDtcbiAgY29uc3QgbmFtZXNPZmZzZXQgPSBuYW1lcy5sZW5ndGg7XG4gIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVkTWFwcGluZ3MobWFwKTtcbiAgY29uc3QgeyByZXNvbHZlZFNvdXJjZXMsIHNvdXJjZXNDb250ZW50OiBjb250ZW50cywgaWdub3JlTGlzdDogaWdub3JlcyB9ID0gbWFwO1xuXG4gIGFwcGVuZChzb3VyY2VzLCByZXNvbHZlZFNvdXJjZXMpO1xuICBhcHBlbmQobmFtZXMsIG1hcC5uYW1lcyk7XG5cbiAgaWYgKGNvbnRlbnRzKSBhcHBlbmQoc291cmNlc0NvbnRlbnQsIGNvbnRlbnRzKTtcbiAgZWxzZSBmb3IgKGxldCBpID0gMDsgaSA8IHJlc29sdmVkU291cmNlcy5sZW5ndGg7IGkrKykgc291cmNlc0NvbnRlbnQucHVzaChudWxsKTtcblxuICBpZiAoaWdub3JlcykgZm9yIChsZXQgaSA9IDA7IGkgPCBpZ25vcmVzLmxlbmd0aDsgaSsrKSBpZ25vcmVMaXN0LnB1c2goaWdub3Jlc1tpXSArIHNvdXJjZXNPZmZzZXQpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGxpbmVJID0gbGluZU9mZnNldCArIGk7XG5cbiAgICAvLyBXZSBjYW4gb25seSBhZGQgc28gbWFueSBsaW5lcyBiZWZvcmUgd2Ugc3RlcCBpbnRvIHRoZSByYW5nZSB0aGF0IHRoZSBuZXh0IHNlY3Rpb24ncyBtYXBcbiAgICAvLyBjb250cm9scy4gV2hlbiB3ZSBnZXQgdG8gdGhlIGxhc3QgbGluZSwgdGhlbiB3ZSdsbCBzdGFydCBjaGVja2luZyB0aGUgc2VnbWVudHMgdG8gc2VlIGlmXG4gICAgLy8gdGhleSd2ZSBjcm9zc2VkIGludG8gdGhlIGNvbHVtbiByYW5nZS4gQnV0IGl0IG1heSBub3QgaGF2ZSBhbnkgY29sdW1ucyB0aGF0IG92ZXJzdGVwLCBzbyB3ZVxuICAgIC8vIHN0aWxsIG5lZWQgdG8gY2hlY2sgdGhhdCB3ZSBkb24ndCBvdmVyc3RlcCBsaW5lcywgdG9vLlxuICAgIGlmIChsaW5lSSA+IHN0b3BMaW5lKSByZXR1cm47XG5cbiAgICAvLyBUaGUgb3V0IGxpbmUgbWF5IGFscmVhZHkgZXhpc3QgaW4gbWFwcGluZ3MgKGlmIHdlJ3JlIGNvbnRpbnVpbmcgdGhlIGxpbmUgc3RhcnRlZCBieSBhXG4gICAgLy8gcHJldmlvdXMgc2VjdGlvbikuIE9yLCB3ZSBtYXkgaGF2ZSBqdW1wZWQgYWhlYWQgc2V2ZXJhbCBsaW5lcyB0byBzdGFydCB0aGlzIHNlY3Rpb24uXG4gICAgY29uc3Qgb3V0ID0gZ2V0TGluZShtYXBwaW5ncywgbGluZUkpO1xuICAgIC8vIE9uIHRoZSAwdGggbG9vcCwgdGhlIHNlY3Rpb24ncyBjb2x1bW4gb2Zmc2V0IHNoaWZ0cyB1cyBmb3J3YXJkLiBPbiBhbGwgb3RoZXIgbGluZXMgKHNpbmNlIHRoZVxuICAgIC8vIG1hcCBjYW4gYmUgbXVsdGlwbGUgbGluZXMpLCBpdCBkb2Vzbid0LlxuICAgIGNvbnN0IGNPZmZzZXQgPSBpID09PSAwID8gY29sdW1uT2Zmc2V0IDogMDtcblxuICAgIGNvbnN0IGxpbmUgPSBkZWNvZGVkW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3Qgc2VnID0gbGluZVtqXTtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNPZmZzZXQgKyBzZWdbQ09MVU1OXTtcblxuICAgICAgLy8gSWYgdGhpcyBzZWdtZW50IHN0ZXBzIGludG8gdGhlIGNvbHVtbiByYW5nZSB0aGF0IHRoZSBuZXh0IHNlY3Rpb24ncyBtYXAgY29udHJvbHMsIHdlIG5lZWRcbiAgICAgIC8vIHRvIHN0b3AgZWFybHkuXG4gICAgICBpZiAobGluZUkgPT09IHN0b3BMaW5lICYmIGNvbHVtbiA+PSBzdG9wQ29sdW1uKSByZXR1cm47XG5cbiAgICAgIGlmIChzZWcubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIG91dC5wdXNoKFtjb2x1bW5dKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNvdXJjZXNJbmRleCA9IHNvdXJjZXNPZmZzZXQgKyBzZWdbU09VUkNFU19JTkRFWF07XG4gICAgICBjb25zdCBzb3VyY2VMaW5lID0gc2VnW1NPVVJDRV9MSU5FXTtcbiAgICAgIGNvbnN0IHNvdXJjZUNvbHVtbiA9IHNlZ1tTT1VSQ0VfQ09MVU1OXTtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICBzZWcubGVuZ3RoID09PSA0XG4gICAgICAgICAgPyBbY29sdW1uLCBzb3VyY2VzSW5kZXgsIHNvdXJjZUxpbmUsIHNvdXJjZUNvbHVtbl1cbiAgICAgICAgICA6IFtjb2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc09mZnNldCArIHNlZ1tOQU1FU19JTkRFWF1dLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwZW5kPFQ+KGFycjogVFtdLCBvdGhlcjogVFtdKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb3RoZXIubGVuZ3RoOyBpKyspIGFyci5wdXNoKG90aGVyW2ldKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGluZTxUPihhcnI6IFRbXVtdLCBpbmRleDogbnVtYmVyKTogVFtdIHtcbiAgZm9yIChsZXQgaSA9IGFyci5sZW5ndGg7IGkgPD0gaW5kZXg7IGkrKykgYXJyW2ldID0gW107XG4gIHJldHVybiBhcnJbaW5kZXhdO1xufVxuIiwgImltcG9ydCB7IGVuY29kZSwgZGVjb2RlIH0gZnJvbSAnQGpyaWRnZXdlbGwvc291cmNlbWFwLWNvZGVjJztcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi9yZXNvbHZlJztcbmltcG9ydCBzdHJpcEZpbGVuYW1lIGZyb20gJy4vc3RyaXAtZmlsZW5hbWUnO1xuaW1wb3J0IG1heWJlU29ydCBmcm9tICcuL3NvcnQnO1xuaW1wb3J0IGJ1aWxkQnlTb3VyY2VzIGZyb20gJy4vYnktc291cmNlJztcbmltcG9ydCB7XG4gIG1lbW9pemVkU3RhdGUsXG4gIG1lbW9pemVkQmluYXJ5U2VhcmNoLFxuICB1cHBlckJvdW5kLFxuICBsb3dlckJvdW5kLFxuICBmb3VuZCBhcyBic0ZvdW5kLFxufSBmcm9tICcuL2JpbmFyeS1zZWFyY2gnO1xuaW1wb3J0IHtcbiAgQ09MVU1OLFxuICBTT1VSQ0VTX0lOREVYLFxuICBTT1VSQ0VfTElORSxcbiAgU09VUkNFX0NPTFVNTixcbiAgTkFNRVNfSU5ERVgsXG4gIFJFVl9HRU5FUkFURURfTElORSxcbiAgUkVWX0dFTkVSQVRFRF9DT0xVTU4sXG59IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFNvdXJjZU1hcFNlZ21lbnQsIFJldmVyc2VTZWdtZW50IH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIFNvdXJjZU1hcFYzLFxuICBEZWNvZGVkU291cmNlTWFwLFxuICBFbmNvZGVkU291cmNlTWFwLFxuICBJbnZhbGlkT3JpZ2luYWxNYXBwaW5nLFxuICBPcmlnaW5hbE1hcHBpbmcsXG4gIEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nLFxuICBHZW5lcmF0ZWRNYXBwaW5nLFxuICBTb3VyY2VNYXBJbnB1dCxcbiAgTmVlZGxlLFxuICBTb3VyY2VOZWVkbGUsXG4gIFNvdXJjZU1hcCxcbiAgRWFjaE1hcHBpbmcsXG4gIEJpYXMsXG4gIFhJbnB1dCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZSB9IGZyb20gJy4vYnktc291cmNlJztcbmltcG9ydCB0eXBlIHsgTWVtb1N0YXRlIH0gZnJvbSAnLi9iaW5hcnktc2VhcmNoJztcblxuZXhwb3J0IHR5cGUgeyBTb3VyY2VNYXBTZWdtZW50IH0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5leHBvcnQgdHlwZSB7XG4gIFNvdXJjZU1hcCxcbiAgRGVjb2RlZFNvdXJjZU1hcCxcbiAgRW5jb2RlZFNvdXJjZU1hcCxcbiAgU2VjdGlvbixcbiAgU2VjdGlvbmVkU291cmNlTWFwLFxuICBTb3VyY2VNYXBWMyxcbiAgQmlhcyxcbiAgRWFjaE1hcHBpbmcsXG4gIEdlbmVyYXRlZE1hcHBpbmcsXG4gIEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nLFxuICBJbnZhbGlkT3JpZ2luYWxNYXBwaW5nLFxuICBOZWVkbGUsXG4gIE9yaWdpbmFsTWFwcGluZyxcbiAgT3JpZ2luYWxNYXBwaW5nIGFzIE1hcHBpbmcsXG4gIFNlY3Rpb25lZFNvdXJjZU1hcElucHV0LFxuICBTb3VyY2VNYXBJbnB1dCxcbiAgU291cmNlTmVlZGxlLFxuICBYSW5wdXQsXG4gIEVuY29kZWRTb3VyY2VNYXBYSW5wdXQsXG4gIERlY29kZWRTb3VyY2VNYXBYSW5wdXQsXG4gIFNlY3Rpb25lZFNvdXJjZU1hcFhJbnB1dCxcbiAgU2VjdGlvblhJbnB1dCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBQdWJsaWNNYXAge1xuICBfZW5jb2RlZDogVHJhY2VNYXBbJ19lbmNvZGVkJ107XG4gIF9kZWNvZGVkOiBUcmFjZU1hcFsnX2RlY29kZWQnXTtcbiAgX2RlY29kZWRNZW1vOiBUcmFjZU1hcFsnX2RlY29kZWRNZW1vJ107XG4gIF9ieVNvdXJjZXM6IFRyYWNlTWFwWydfYnlTb3VyY2VzJ107XG4gIF9ieVNvdXJjZU1lbW9zOiBUcmFjZU1hcFsnX2J5U291cmNlTWVtb3MnXTtcbn1cblxuY29uc3QgTElORV9HVFJfWkVSTyA9ICdgbGluZWAgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCAobGluZXMgc3RhcnQgYXQgbGluZSAxKSc7XG5jb25zdCBDT0xfR1RSX0VRX1pFUk8gPSAnYGNvbHVtbmAgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCAoY29sdW1ucyBzdGFydCBhdCBjb2x1bW4gMCknO1xuXG5leHBvcnQgY29uc3QgTEVBU1RfVVBQRVJfQk9VTkQgPSAtMTtcbmV4cG9ydCBjb25zdCBHUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7XG5cbmV4cG9ydCB7IEFueU1hcCB9IGZyb20gJy4vYW55LW1hcCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFjZU1hcCBpbXBsZW1lbnRzIFNvdXJjZU1hcCB7XG4gIGRlY2xhcmUgdmVyc2lvbjogU291cmNlTWFwVjNbJ3ZlcnNpb24nXTtcbiAgZGVjbGFyZSBmaWxlOiBTb3VyY2VNYXBWM1snZmlsZSddO1xuICBkZWNsYXJlIG5hbWVzOiBTb3VyY2VNYXBWM1snbmFtZXMnXTtcbiAgZGVjbGFyZSBzb3VyY2VSb290OiBTb3VyY2VNYXBWM1snc291cmNlUm9vdCddO1xuICBkZWNsYXJlIHNvdXJjZXM6IFNvdXJjZU1hcFYzWydzb3VyY2VzJ107XG4gIGRlY2xhcmUgc291cmNlc0NvbnRlbnQ6IFNvdXJjZU1hcFYzWydzb3VyY2VzQ29udGVudCddO1xuICBkZWNsYXJlIGlnbm9yZUxpc3Q6IFNvdXJjZU1hcFYzWydpZ25vcmVMaXN0J107XG5cbiAgZGVjbGFyZSByZXNvbHZlZFNvdXJjZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIGRlY2xhcmUgX2VuY29kZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGRlY2xhcmUgX2RlY29kZWQ6IFNvdXJjZU1hcFNlZ21lbnRbXVtdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGRlY2xhcmUgX2RlY29kZWRNZW1vOiBNZW1vU3RhdGU7XG5cbiAgcHJpdmF0ZSBkZWNsYXJlIF9ieVNvdXJjZXM6IFNvdXJjZVtdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGRlY2xhcmUgX2J5U291cmNlTWVtb3M6IE1lbW9TdGF0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKG1hcDogU291cmNlTWFwSW5wdXQsIG1hcFVybD86IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBpc1N0cmluZyA9IHR5cGVvZiBtYXAgPT09ICdzdHJpbmcnO1xuXG4gICAgaWYgKCFpc1N0cmluZyAmJiAobWFwIGFzIHVua25vd24gYXMgeyBfZGVjb2RlZE1lbW86IGFueSB9KS5fZGVjb2RlZE1lbW8pIHJldHVybiBtYXAgYXMgVHJhY2VNYXA7XG5cbiAgICBjb25zdCBwYXJzZWQgPSAoaXNTdHJpbmcgPyBKU09OLnBhcnNlKG1hcCkgOiBtYXApIGFzIERlY29kZWRTb3VyY2VNYXAgfCBFbmNvZGVkU291cmNlTWFwO1xuXG4gICAgY29uc3QgeyB2ZXJzaW9uLCBmaWxlLCBuYW1lcywgc291cmNlUm9vdCwgc291cmNlcywgc291cmNlc0NvbnRlbnQgfSA9IHBhcnNlZDtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgdGhpcy5uYW1lcyA9IG5hbWVzIHx8IFtdO1xuICAgIHRoaXMuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7XG4gICAgdGhpcy5zb3VyY2VzID0gc291cmNlcztcbiAgICB0aGlzLnNvdXJjZXNDb250ZW50ID0gc291cmNlc0NvbnRlbnQ7XG4gICAgdGhpcy5pZ25vcmVMaXN0ID0gcGFyc2VkLmlnbm9yZUxpc3QgfHwgKHBhcnNlZCBhcyBYSW5wdXQpLnhfZ29vZ2xlX2lnbm9yZUxpc3QgfHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZnJvbSA9IHJlc29sdmUoc291cmNlUm9vdCB8fCAnJywgc3RyaXBGaWxlbmFtZShtYXBVcmwpKTtcbiAgICB0aGlzLnJlc29sdmVkU291cmNlcyA9IHNvdXJjZXMubWFwKChzKSA9PiByZXNvbHZlKHMgfHwgJycsIGZyb20pKTtcblxuICAgIGNvbnN0IHsgbWFwcGluZ3MgfSA9IHBhcnNlZDtcbiAgICBpZiAodHlwZW9mIG1hcHBpbmdzID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fZW5jb2RlZCA9IG1hcHBpbmdzO1xuICAgICAgdGhpcy5fZGVjb2RlZCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZW5jb2RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuX2RlY29kZWQgPSBtYXliZVNvcnQobWFwcGluZ3MsIGlzU3RyaW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWNvZGVkTWVtbyA9IG1lbW9pemVkU3RhdGUoKTtcbiAgICB0aGlzLl9ieVNvdXJjZXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fYnlTb3VyY2VNZW1vcyA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFR5cGVzY3JpcHQgZG9lc24ndCBhbGxvdyBmcmllbmQgYWNjZXNzIHRvIHByaXZhdGUgZmllbGRzLCBzbyB0aGlzIGp1c3QgY2FzdHMgdGhlIG1hcCBpbnRvIGEgdHlwZVxuICogd2l0aCBwdWJsaWMgYWNjZXNzIG1vZGlmaWVycy5cbiAqL1xuZnVuY3Rpb24gY2FzdChtYXA6IHVua25vd24pOiBQdWJsaWNNYXAge1xuICByZXR1cm4gbWFwIGFzIGFueTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBlbmNvZGVkIChWTFEgc3RyaW5nKSBmb3JtIG9mIHRoZSBTb3VyY2VNYXAncyBtYXBwaW5ncyBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZWRNYXBwaW5ncyhtYXA6IFRyYWNlTWFwKTogRW5jb2RlZFNvdXJjZU1hcFsnbWFwcGluZ3MnXSB7XG4gIHJldHVybiAoY2FzdChtYXApLl9lbmNvZGVkID8/PSBlbmNvZGUoY2FzdChtYXApLl9kZWNvZGVkISkpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGRlY29kZWQgKGFycmF5IG9mIGxpbmVzIG9mIHNlZ21lbnRzKSBmb3JtIG9mIHRoZSBTb3VyY2VNYXAncyBtYXBwaW5ncyBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZWRNYXBwaW5ncyhtYXA6IFRyYWNlTWFwKTogUmVhZG9ubHk8RGVjb2RlZFNvdXJjZU1hcFsnbWFwcGluZ3MnXT4ge1xuICByZXR1cm4gKGNhc3QobWFwKS5fZGVjb2RlZCB8fD0gZGVjb2RlKGNhc3QobWFwKS5fZW5jb2RlZCEpKTtcbn1cblxuLyoqXG4gKiBBIGxvdy1sZXZlbCBBUEkgdG8gZmluZCB0aGUgc2VnbWVudCBhc3NvY2lhdGVkIHdpdGggYSBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gKHRoaW5rLCBmcm9tIGFcbiAqIHN0YWNrIHRyYWNlKS4gTGluZSBhbmQgY29sdW1uIGhlcmUgYXJlIDAtYmFzZWQsIHVubGlrZSBgb3JpZ2luYWxQb3NpdGlvbkZvcmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVNlZ21lbnQoXG4gIG1hcDogVHJhY2VNYXAsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4pOiBSZWFkb25seTxTb3VyY2VNYXBTZWdtZW50PiB8IG51bGwge1xuICBjb25zdCBkZWNvZGVkID0gZGVjb2RlZE1hcHBpbmdzKG1hcCk7XG5cbiAgLy8gSXQncyBjb21tb24gZm9yIHBhcmVudCBzb3VyY2UgbWFwcyB0byBoYXZlIHBvaW50ZXJzIHRvIGxpbmVzIHRoYXQgaGF2ZSBub1xuICAvLyBtYXBwaW5nIChsaWtlIGEgXCIvLyMgc291cmNlTWFwcGluZ1VSTD1cIikgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGQgZmlsZS5cbiAgaWYgKGxpbmUgPj0gZGVjb2RlZC5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHNlZ21lbnRzID0gZGVjb2RlZFtsaW5lXTtcbiAgY29uc3QgaW5kZXggPSB0cmFjZVNlZ21lbnRJbnRlcm5hbChcbiAgICBzZWdtZW50cyxcbiAgICBjYXN0KG1hcCkuX2RlY29kZWRNZW1vLFxuICAgIGxpbmUsXG4gICAgY29sdW1uLFxuICAgIEdSRUFURVNUX0xPV0VSX0JPVU5ELFxuICApO1xuXG4gIHJldHVybiBpbmRleCA9PT0gLTEgPyBudWxsIDogc2VnbWVudHNbaW5kZXhdO1xufVxuXG4vKipcbiAqIEEgaGlnaGVyLWxldmVsIEFQSSB0byBmaW5kIHRoZSBzb3VyY2UvbGluZS9jb2x1bW4gYXNzb2NpYXRlZCB3aXRoIGEgZ2VuZXJhdGVkIGxpbmUvY29sdW1uXG4gKiAodGhpbmssIGZyb20gYSBzdGFjayB0cmFjZSkuIExpbmUgaXMgMS1iYXNlZCwgYnV0IGNvbHVtbiBpcyAwLWJhc2VkLCBkdWUgdG8gbGVnYWN5IGJlaGF2aW9yIGluXG4gKiBgc291cmNlLW1hcGAgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9yaWdpbmFsUG9zaXRpb25Gb3IoXG4gIG1hcDogVHJhY2VNYXAsXG4gIG5lZWRsZTogTmVlZGxlLFxuKTogT3JpZ2luYWxNYXBwaW5nIHwgSW52YWxpZE9yaWdpbmFsTWFwcGluZyB7XG4gIGxldCB7IGxpbmUsIGNvbHVtbiwgYmlhcyB9ID0gbmVlZGxlO1xuICBsaW5lLS07XG4gIGlmIChsaW5lIDwgMCkgdGhyb3cgbmV3IEVycm9yKExJTkVfR1RSX1pFUk8pO1xuICBpZiAoY29sdW1uIDwgMCkgdGhyb3cgbmV3IEVycm9yKENPTF9HVFJfRVFfWkVSTyk7XG5cbiAgY29uc3QgZGVjb2RlZCA9IGRlY29kZWRNYXBwaW5ncyhtYXApO1xuXG4gIC8vIEl0J3MgY29tbW9uIGZvciBwYXJlbnQgc291cmNlIG1hcHMgdG8gaGF2ZSBwb2ludGVycyB0byBsaW5lcyB0aGF0IGhhdmUgbm9cbiAgLy8gbWFwcGluZyAobGlrZSBhIFwiLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIpIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIGZpbGUuXG4gIGlmIChsaW5lID49IGRlY29kZWQubGVuZ3RoKSByZXR1cm4gT01hcHBpbmcobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG5cbiAgY29uc3Qgc2VnbWVudHMgPSBkZWNvZGVkW2xpbmVdO1xuICBjb25zdCBpbmRleCA9IHRyYWNlU2VnbWVudEludGVybmFsKFxuICAgIHNlZ21lbnRzLFxuICAgIGNhc3QobWFwKS5fZGVjb2RlZE1lbW8sXG4gICAgbGluZSxcbiAgICBjb2x1bW4sXG4gICAgYmlhcyB8fCBHUkVBVEVTVF9MT1dFUl9CT1VORCxcbiAgKTtcblxuICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm4gT01hcHBpbmcobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG5cbiAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcbiAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAxKSByZXR1cm4gT01hcHBpbmcobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG5cbiAgY29uc3QgeyBuYW1lcywgcmVzb2x2ZWRTb3VyY2VzIH0gPSBtYXA7XG4gIHJldHVybiBPTWFwcGluZyhcbiAgICByZXNvbHZlZFNvdXJjZXNbc2VnbWVudFtTT1VSQ0VTX0lOREVYXV0sXG4gICAgc2VnbWVudFtTT1VSQ0VfTElORV0gKyAxLFxuICAgIHNlZ21lbnRbU09VUkNFX0NPTFVNTl0sXG4gICAgc2VnbWVudC5sZW5ndGggPT09IDUgPyBuYW1lc1tzZWdtZW50W05BTUVTX0lOREVYXV0gOiBudWxsLFxuICApO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gcG9zaXRpb24gb2YgdGhlIHByb3ZpZGVkIHNvdXJjZS9saW5lL2NvbHVtbiBzb3VyY2UgcG9zaXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkZvcihcbiAgbWFwOiBUcmFjZU1hcCxcbiAgbmVlZGxlOiBTb3VyY2VOZWVkbGUsXG4pOiBHZW5lcmF0ZWRNYXBwaW5nIHwgSW52YWxpZEdlbmVyYXRlZE1hcHBpbmcge1xuICBjb25zdCB7IHNvdXJjZSwgbGluZSwgY29sdW1uLCBiaWFzIH0gPSBuZWVkbGU7XG4gIHJldHVybiBnZW5lcmF0ZWRQb3NpdGlvbihtYXAsIHNvdXJjZSwgbGluZSwgY29sdW1uLCBiaWFzIHx8IEdSRUFURVNUX0xPV0VSX0JPVU5ELCBmYWxzZSk7XG59XG5cbi8qKlxuICogRmluZHMgYWxsIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBwb3NpdGlvbnMgb2YgdGhlIHByb3ZpZGVkIHNvdXJjZS9saW5lL2NvbHVtbiBzb3VyY2UgcG9zaXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IobWFwOiBUcmFjZU1hcCwgbmVlZGxlOiBTb3VyY2VOZWVkbGUpOiBHZW5lcmF0ZWRNYXBwaW5nW10ge1xuICBjb25zdCB7IHNvdXJjZSwgbGluZSwgY29sdW1uLCBiaWFzIH0gPSBuZWVkbGU7XG4gIC8vIFNvdXJjZU1hcENvbnN1bWVyIHVzZXMgTEVBU1RfVVBQRVJfQk9VTkQgZm9yIHNvbWUgcmVhc29uLCBzbyB3ZSBmb2xsb3cgc3VpdC5cbiAgcmV0dXJuIGdlbmVyYXRlZFBvc2l0aW9uKG1hcCwgc291cmNlLCBsaW5lLCBjb2x1bW4sIGJpYXMgfHwgTEVBU1RfVVBQRVJfQk9VTkQsIHRydWUpO1xufVxuXG4vKipcbiAqIEl0ZXJhdGVzIGVhY2ggbWFwcGluZyBpbiBnZW5lcmF0ZWQgcG9zaXRpb24gb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlYWNoTWFwcGluZyhtYXA6IFRyYWNlTWFwLCBjYjogKG1hcHBpbmc6IEVhY2hNYXBwaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVkTWFwcGluZ3MobWFwKTtcbiAgY29uc3QgeyBuYW1lcywgcmVzb2x2ZWRTb3VyY2VzIH0gPSBtYXA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBzZWcgPSBsaW5lW2pdO1xuXG4gICAgICBjb25zdCBnZW5lcmF0ZWRMaW5lID0gaSArIDE7XG4gICAgICBjb25zdCBnZW5lcmF0ZWRDb2x1bW4gPSBzZWdbMF07XG4gICAgICBsZXQgc291cmNlID0gbnVsbDtcbiAgICAgIGxldCBvcmlnaW5hbExpbmUgPSBudWxsO1xuICAgICAgbGV0IG9yaWdpbmFsQ29sdW1uID0gbnVsbDtcbiAgICAgIGxldCBuYW1lID0gbnVsbDtcbiAgICAgIGlmIChzZWcubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHNvdXJjZSA9IHJlc29sdmVkU291cmNlc1tzZWdbMV1dO1xuICAgICAgICBvcmlnaW5hbExpbmUgPSBzZWdbMl0gKyAxO1xuICAgICAgICBvcmlnaW5hbENvbHVtbiA9IHNlZ1szXTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWcubGVuZ3RoID09PSA1KSBuYW1lID0gbmFtZXNbc2VnWzRdXTtcblxuICAgICAgY2Ioe1xuICAgICAgICBnZW5lcmF0ZWRMaW5lLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgb3JpZ2luYWxMaW5lLFxuICAgICAgICBvcmlnaW5hbENvbHVtbixcbiAgICAgICAgbmFtZSxcbiAgICAgIH0gYXMgRWFjaE1hcHBpbmcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzb3VyY2VJbmRleChtYXA6IFRyYWNlTWFwLCBzb3VyY2U6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHsgc291cmNlcywgcmVzb2x2ZWRTb3VyY2VzIH0gPSBtYXA7XG4gIGxldCBpbmRleCA9IHNvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuICBpZiAoaW5kZXggPT09IC0xKSBpbmRleCA9IHJlc29sdmVkU291cmNlcy5pbmRleE9mKHNvdXJjZSk7XG4gIHJldHVybiBpbmRleDtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHNvdXJjZSBjb250ZW50IGZvciBhIHBhcnRpY3VsYXIgc291cmNlLCBpZiBpdHMgZm91bmQuIFJldHVybnMgbnVsbCBpZiBub3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VDb250ZW50Rm9yKG1hcDogVHJhY2VNYXAsIHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHsgc291cmNlc0NvbnRlbnQgfSA9IG1hcDtcbiAgaWYgKHNvdXJjZXNDb250ZW50ID09IG51bGwpIHJldHVybiBudWxsO1xuICBjb25zdCBpbmRleCA9IHNvdXJjZUluZGV4KG1hcCwgc291cmNlKTtcbiAgcmV0dXJuIGluZGV4ID09PSAtMSA/IG51bGwgOiBzb3VyY2VzQ29udGVudFtpbmRleF07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgc291cmNlIGlzIG1hcmtlZCB0byBpZ25vcmUgYnkgdGhlIHNvdXJjZSBtYXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0lnbm9yZWQobWFwOiBUcmFjZU1hcCwgc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgeyBpZ25vcmVMaXN0IH0gPSBtYXA7XG4gIGlmIChpZ25vcmVMaXN0ID09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgaW5kZXggPSBzb3VyY2VJbmRleChtYXAsIHNvdXJjZSk7XG4gIHJldHVybiBpbmRleCA9PT0gLTEgPyBmYWxzZSA6IGlnbm9yZUxpc3QuaW5jbHVkZXMoaW5kZXgpO1xufVxuXG4vKipcbiAqIEEgaGVscGVyIHRoYXQgc2tpcHMgc29ydGluZyBvZiB0aGUgaW5wdXQgbWFwJ3MgbWFwcGluZ3MgYXJyYXksIHdoaWNoIGNhbiBiZSBleHBlbnNpdmUgZm9yIGxhcmdlclxuICogbWFwcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXNvcnRlZERlY29kZWRNYXAobWFwOiBEZWNvZGVkU291cmNlTWFwLCBtYXBVcmw/OiBzdHJpbmcpOiBUcmFjZU1hcCB7XG4gIGNvbnN0IHRyYWNlciA9IG5ldyBUcmFjZU1hcChjbG9uZShtYXAsIFtdKSwgbWFwVXJsKTtcbiAgY2FzdCh0cmFjZXIpLl9kZWNvZGVkID0gbWFwLm1hcHBpbmdzO1xuICByZXR1cm4gdHJhY2VyO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzb3VyY2VtYXAgb2JqZWN0ICh3aXRoIGRlY29kZWQgbWFwcGluZ3MpIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIGEgbGlicmFyeSB0aGF0IGV4cGVjdHNcbiAqIGEgc291cmNlbWFwLCBvciB0byBKU09OLnN0cmluZ2lmeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZWRNYXAoXG4gIG1hcDogVHJhY2VNYXAsXG4pOiBPbWl0PERlY29kZWRTb3VyY2VNYXAsICdtYXBwaW5ncyc+ICYgeyBtYXBwaW5nczogcmVhZG9ubHkgU291cmNlTWFwU2VnbWVudFtdW10gfSB7XG4gIHJldHVybiBjbG9uZShtYXAsIGRlY29kZWRNYXBwaW5ncyhtYXApKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc291cmNlbWFwIG9iamVjdCAod2l0aCBlbmNvZGVkIG1hcHBpbmdzKSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhIGxpYnJhcnkgdGhhdCBleHBlY3RzXG4gKiBhIHNvdXJjZW1hcCwgb3IgdG8gSlNPTi5zdHJpbmdpZnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVkTWFwKG1hcDogVHJhY2VNYXApOiBFbmNvZGVkU291cmNlTWFwIHtcbiAgcmV0dXJuIGNsb25lKG1hcCwgZW5jb2RlZE1hcHBpbmdzKG1hcCkpO1xufVxuXG5mdW5jdGlvbiBjbG9uZTxUIGV4dGVuZHMgc3RyaW5nIHwgcmVhZG9ubHkgU291cmNlTWFwU2VnbWVudFtdW10+KFxuICBtYXA6IFRyYWNlTWFwIHwgRGVjb2RlZFNvdXJjZU1hcCxcbiAgbWFwcGluZ3M6IFQsXG4pOiBUIGV4dGVuZHMgc3RyaW5nID8gRW5jb2RlZFNvdXJjZU1hcCA6IERlY29kZWRTb3VyY2VNYXAge1xuICByZXR1cm4ge1xuICAgIHZlcnNpb246IG1hcC52ZXJzaW9uLFxuICAgIGZpbGU6IG1hcC5maWxlLFxuICAgIG5hbWVzOiBtYXAubmFtZXMsXG4gICAgc291cmNlUm9vdDogbWFwLnNvdXJjZVJvb3QsXG4gICAgc291cmNlczogbWFwLnNvdXJjZXMsXG4gICAgc291cmNlc0NvbnRlbnQ6IG1hcC5zb3VyY2VzQ29udGVudCxcbiAgICBtYXBwaW5ncyxcbiAgICBpZ25vcmVMaXN0OiBtYXAuaWdub3JlTGlzdCB8fCAobWFwIGFzIFhJbnB1dCkueF9nb29nbGVfaWdub3JlTGlzdCxcbiAgfSBhcyBhbnk7XG59XG5cbmZ1bmN0aW9uIE9NYXBwaW5nKHNvdXJjZTogbnVsbCwgbGluZTogbnVsbCwgY29sdW1uOiBudWxsLCBuYW1lOiBudWxsKTogSW52YWxpZE9yaWdpbmFsTWFwcGluZztcbmZ1bmN0aW9uIE9NYXBwaW5nKFxuICBzb3VyY2U6IHN0cmluZyxcbiAgbGluZTogbnVtYmVyLFxuICBjb2x1bW46IG51bWJlcixcbiAgbmFtZTogc3RyaW5nIHwgbnVsbCxcbik6IE9yaWdpbmFsTWFwcGluZztcbmZ1bmN0aW9uIE9NYXBwaW5nKFxuICBzb3VyY2U6IHN0cmluZyB8IG51bGwsXG4gIGxpbmU6IG51bWJlciB8IG51bGwsXG4gIGNvbHVtbjogbnVtYmVyIHwgbnVsbCxcbiAgbmFtZTogc3RyaW5nIHwgbnVsbCxcbik6IE9yaWdpbmFsTWFwcGluZyB8IEludmFsaWRPcmlnaW5hbE1hcHBpbmcge1xuICByZXR1cm4geyBzb3VyY2UsIGxpbmUsIGNvbHVtbiwgbmFtZSB9IGFzIGFueTtcbn1cblxuZnVuY3Rpb24gR01hcHBpbmcobGluZTogbnVsbCwgY29sdW1uOiBudWxsKTogSW52YWxpZEdlbmVyYXRlZE1hcHBpbmc7XG5mdW5jdGlvbiBHTWFwcGluZyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogR2VuZXJhdGVkTWFwcGluZztcbmZ1bmN0aW9uIEdNYXBwaW5nKFxuICBsaW5lOiBudW1iZXIgfCBudWxsLFxuICBjb2x1bW46IG51bWJlciB8IG51bGwsXG4pOiBHZW5lcmF0ZWRNYXBwaW5nIHwgSW52YWxpZEdlbmVyYXRlZE1hcHBpbmcge1xuICByZXR1cm4geyBsaW5lLCBjb2x1bW4gfSBhcyBhbnk7XG59XG5cbmZ1bmN0aW9uIHRyYWNlU2VnbWVudEludGVybmFsKFxuICBzZWdtZW50czogU291cmNlTWFwU2VnbWVudFtdLFxuICBtZW1vOiBNZW1vU3RhdGUsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIGJpYXM6IEJpYXMsXG4pOiBudW1iZXI7XG5mdW5jdGlvbiB0cmFjZVNlZ21lbnRJbnRlcm5hbChcbiAgc2VnbWVudHM6IFJldmVyc2VTZWdtZW50W10sXG4gIG1lbW86IE1lbW9TdGF0ZSxcbiAgbGluZTogbnVtYmVyLFxuICBjb2x1bW46IG51bWJlcixcbiAgYmlhczogQmlhcyxcbik6IG51bWJlcjtcbmZ1bmN0aW9uIHRyYWNlU2VnbWVudEludGVybmFsKFxuICBzZWdtZW50czogU291cmNlTWFwU2VnbWVudFtdIHwgUmV2ZXJzZVNlZ21lbnRbXSxcbiAgbWVtbzogTWVtb1N0YXRlLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuICBiaWFzOiBCaWFzLFxuKTogbnVtYmVyIHtcbiAgbGV0IGluZGV4ID0gbWVtb2l6ZWRCaW5hcnlTZWFyY2goc2VnbWVudHMsIGNvbHVtbiwgbWVtbywgbGluZSk7XG4gIGlmIChic0ZvdW5kKSB7XG4gICAgaW5kZXggPSAoYmlhcyA9PT0gTEVBU1RfVVBQRVJfQk9VTkQgPyB1cHBlckJvdW5kIDogbG93ZXJCb3VuZCkoc2VnbWVudHMsIGNvbHVtbiwgaW5kZXgpO1xuICB9IGVsc2UgaWYgKGJpYXMgPT09IExFQVNUX1VQUEVSX0JPVU5EKSBpbmRleCsrO1xuXG4gIGlmIChpbmRleCA9PT0gLTEgfHwgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCkgcmV0dXJuIC0xO1xuICByZXR1cm4gaW5kZXg7XG59XG5cbmZ1bmN0aW9uIHNsaWNlR2VuZXJhdGVkUG9zaXRpb25zKFxuICBzZWdtZW50czogUmV2ZXJzZVNlZ21lbnRbXSxcbiAgbWVtbzogTWVtb1N0YXRlLFxuICBsaW5lOiBudW1iZXIsXG4gIGNvbHVtbjogbnVtYmVyLFxuICBiaWFzOiBCaWFzLFxuKTogR2VuZXJhdGVkTWFwcGluZ1tdIHtcbiAgbGV0IG1pbiA9IHRyYWNlU2VnbWVudEludGVybmFsKHNlZ21lbnRzLCBtZW1vLCBsaW5lLCBjb2x1bW4sIEdSRUFURVNUX0xPV0VSX0JPVU5EKTtcblxuICAvLyBXZSBpZ25vcmVkIHRoZSBiaWFzIHdoZW4gdHJhY2luZyB0aGUgc2VnbWVudCBzbyB0aGF0IHdlJ3JlIGd1YXJuYXRlZWQgdG8gZmluZCB0aGUgZmlyc3QgKGluXG4gIC8vIGluc2VydGlvbiBvcmRlcikgc2VnbWVudCB0aGF0IG1hdGNoZWQuIEV2ZW4gaWYgd2UgZGlkIHJlc3BlY3QgdGhlIGJpYXMgd2hlbiB0cmFjaW5nLCB3ZSB3b3VsZFxuICAvLyBzdGlsbCBuZWVkIHRvIGNhbGwgYGxvd2VyQm91bmQoKWAgdG8gZmluZCB0aGUgZmlyc3Qgc2VnbWVudCwgd2hpY2ggaXMgc2xvd2VyIHRoYW4ganVzdCBsb29raW5nXG4gIC8vIGZvciB0aGUgR1JFQVRFU1RfTE9XRVJfQk9VTkQgdG8gYmVnaW4gd2l0aC4gVGhlIG9ubHkgZGlmZmVyZW5jZSB0aGF0IG1hdHRlcnMgZm9yIHVzIGlzIHdoZW4gdGhlXG4gIC8vIGJpbmFyeSBzZWFyY2ggZGlkbid0IG1hdGNoLCBpbiB3aGljaCBjYXNlIEdSRUFURVNUX0xPV0VSX0JPVU5EIGp1c3QgbmVlZHMgdG8gaW5jcmVtZW50IHRvXG4gIC8vIG1hdGNoIExFQVNUX1VQUEVSX0JPVU5ELlxuICBpZiAoIWJzRm91bmQgJiYgYmlhcyA9PT0gTEVBU1RfVVBQRVJfQk9VTkQpIG1pbisrO1xuXG4gIGlmIChtaW4gPT09IC0xIHx8IG1pbiA9PT0gc2VnbWVudHMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgLy8gV2UgbWF5IGhhdmUgZm91bmQgdGhlIHNlZ21lbnQgdGhhdCBzdGFydGVkIGF0IGFuIGVhcmxpZXIgY29sdW1uLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGVuIHdlXG4gIC8vIG5lZWQgdG8gc2xpY2UgYWxsIGdlbmVyYXRlZCBzZWdtZW50cyB0aGF0IG1hdGNoIF90aGF0XyBjb2x1bW4sIGJlY2F1c2UgYWxsIHN1Y2ggc2VnbWVudHMgc3BhblxuICAvLyB0byBvdXIgZGVzaXJlZCBjb2x1bW4uXG4gIGNvbnN0IG1hdGNoZWRDb2x1bW4gPSBic0ZvdW5kID8gY29sdW1uIDogc2VnbWVudHNbbWluXVtDT0xVTU5dO1xuXG4gIC8vIFRoZSBiaW5hcnkgc2VhcmNoIGlzIG5vdCBndWFyYW50ZWVkIHRvIGZpbmQgdGhlIGxvd2VyIGJvdW5kIHdoZW4gYSBtYXRjaCB3YXNuJ3QgZm91bmQuXG4gIGlmICghYnNGb3VuZCkgbWluID0gbG93ZXJCb3VuZChzZWdtZW50cywgbWF0Y2hlZENvbHVtbiwgbWluKTtcbiAgY29uc3QgbWF4ID0gdXBwZXJCb3VuZChzZWdtZW50cywgbWF0Y2hlZENvbHVtbiwgbWluKTtcblxuICBjb25zdCByZXN1bHQgPSBbXTtcbiAgZm9yICg7IG1pbiA8PSBtYXg7IG1pbisrKSB7XG4gICAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW21pbl07XG4gICAgcmVzdWx0LnB1c2goR01hcHBpbmcoc2VnbWVudFtSRVZfR0VORVJBVEVEX0xJTkVdICsgMSwgc2VnbWVudFtSRVZfR0VORVJBVEVEX0NPTFVNTl0pKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbihcbiAgbWFwOiBUcmFjZU1hcCxcbiAgc291cmNlOiBzdHJpbmcsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIGJpYXM6IEJpYXMsXG4gIGFsbDogZmFsc2UsXG4pOiBHZW5lcmF0ZWRNYXBwaW5nIHwgSW52YWxpZEdlbmVyYXRlZE1hcHBpbmc7XG5mdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbihcbiAgbWFwOiBUcmFjZU1hcCxcbiAgc291cmNlOiBzdHJpbmcsXG4gIGxpbmU6IG51bWJlcixcbiAgY29sdW1uOiBudW1iZXIsXG4gIGJpYXM6IEJpYXMsXG4gIGFsbDogdHJ1ZSxcbik6IEdlbmVyYXRlZE1hcHBpbmdbXTtcbmZ1bmN0aW9uIGdlbmVyYXRlZFBvc2l0aW9uKFxuICBtYXA6IFRyYWNlTWFwLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgbGluZTogbnVtYmVyLFxuICBjb2x1bW46IG51bWJlcixcbiAgYmlhczogQmlhcyxcbiAgYWxsOiBib29sZWFuLFxuKTogR2VuZXJhdGVkTWFwcGluZyB8IEludmFsaWRHZW5lcmF0ZWRNYXBwaW5nIHwgR2VuZXJhdGVkTWFwcGluZ1tdIHtcbiAgbGluZS0tO1xuICBpZiAobGluZSA8IDApIHRocm93IG5ldyBFcnJvcihMSU5FX0dUUl9aRVJPKTtcbiAgaWYgKGNvbHVtbiA8IDApIHRocm93IG5ldyBFcnJvcihDT0xfR1RSX0VRX1pFUk8pO1xuXG4gIGNvbnN0IHsgc291cmNlcywgcmVzb2x2ZWRTb3VyY2VzIH0gPSBtYXA7XG4gIGxldCBzb3VyY2VJbmRleCA9IHNvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuICBpZiAoc291cmNlSW5kZXggPT09IC0xKSBzb3VyY2VJbmRleCA9IHJlc29sdmVkU291cmNlcy5pbmRleE9mKHNvdXJjZSk7XG4gIGlmIChzb3VyY2VJbmRleCA9PT0gLTEpIHJldHVybiBhbGwgPyBbXSA6IEdNYXBwaW5nKG51bGwsIG51bGwpO1xuXG4gIGNvbnN0IGdlbmVyYXRlZCA9IChjYXN0KG1hcCkuX2J5U291cmNlcyB8fD0gYnVpbGRCeVNvdXJjZXMoXG4gICAgZGVjb2RlZE1hcHBpbmdzKG1hcCksXG4gICAgKGNhc3QobWFwKS5fYnlTb3VyY2VNZW1vcyA9IHNvdXJjZXMubWFwKG1lbW9pemVkU3RhdGUpKSxcbiAgKSk7XG5cbiAgY29uc3Qgc2VnbWVudHMgPSBnZW5lcmF0ZWRbc291cmNlSW5kZXhdW2xpbmVdO1xuICBpZiAoc2VnbWVudHMgPT0gbnVsbCkgcmV0dXJuIGFsbCA/IFtdIDogR01hcHBpbmcobnVsbCwgbnVsbCk7XG5cbiAgY29uc3QgbWVtbyA9IGNhc3QobWFwKS5fYnlTb3VyY2VNZW1vcyFbc291cmNlSW5kZXhdO1xuXG4gIGlmIChhbGwpIHJldHVybiBzbGljZUdlbmVyYXRlZFBvc2l0aW9ucyhzZWdtZW50cywgbWVtbywgbGluZSwgY29sdW1uLCBiaWFzKTtcblxuICBjb25zdCBpbmRleCA9IHRyYWNlU2VnbWVudEludGVybmFsKHNlZ21lbnRzLCBtZW1vLCBsaW5lLCBjb2x1bW4sIGJpYXMpO1xuICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm4gR01hcHBpbmcobnVsbCwgbnVsbCk7XG5cbiAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcbiAgcmV0dXJuIEdNYXBwaW5nKHNlZ21lbnRbUkVWX0dFTkVSQVRFRF9MSU5FXSArIDEsIHNlZ21lbnRbUkVWX0dFTkVSQVRFRF9DT0xVTU5dKTtcbn1cbiIsICJ0eXBlIEdlbmVyYXRlZENvbHVtbiA9IG51bWJlcjtcbnR5cGUgU291cmNlc0luZGV4ID0gbnVtYmVyO1xudHlwZSBTb3VyY2VMaW5lID0gbnVtYmVyO1xudHlwZSBTb3VyY2VDb2x1bW4gPSBudW1iZXI7XG50eXBlIE5hbWVzSW5kZXggPSBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIFNvdXJjZU1hcFNlZ21lbnQgPVxuICB8IFtHZW5lcmF0ZWRDb2x1bW5dXG4gIHwgW0dlbmVyYXRlZENvbHVtbiwgU291cmNlc0luZGV4LCBTb3VyY2VMaW5lLCBTb3VyY2VDb2x1bW5dXG4gIHwgW0dlbmVyYXRlZENvbHVtbiwgU291cmNlc0luZGV4LCBTb3VyY2VMaW5lLCBTb3VyY2VDb2x1bW4sIE5hbWVzSW5kZXhdO1xuXG5leHBvcnQgY29uc3QgQ09MVU1OID0gMDtcbmV4cG9ydCBjb25zdCBTT1VSQ0VTX0lOREVYID0gMTtcbmV4cG9ydCBjb25zdCBTT1VSQ0VfTElORSA9IDI7XG5leHBvcnQgY29uc3QgU09VUkNFX0NPTFVNTiA9IDM7XG5leHBvcnQgY29uc3QgTkFNRVNfSU5ERVggPSA0O1xuIiwgImltcG9ydCB7IFNldEFycmF5LCBwdXQsIHJlbW92ZSB9IGZyb20gJ0BqcmlkZ2V3ZWxsL3NldC1hcnJheSc7XG5pbXBvcnQgeyBlbmNvZGUgfSBmcm9tICdAanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMnO1xuaW1wb3J0IHsgVHJhY2VNYXAsIGRlY29kZWRNYXBwaW5ncyB9IGZyb20gJ0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcnO1xuXG5pbXBvcnQge1xuICBDT0xVTU4sXG4gIFNPVVJDRVNfSU5ERVgsXG4gIFNPVVJDRV9MSU5FLFxuICBTT1VSQ0VfQ09MVU1OLFxuICBOQU1FU19JTkRFWCxcbn0gZnJvbSAnLi9zb3VyY2VtYXAtc2VnbWVudCc7XG5cbmltcG9ydCB0eXBlIHsgU291cmNlTWFwSW5wdXQgfSBmcm9tICdAanJpZGdld2VsbC90cmFjZS1tYXBwaW5nJztcbmltcG9ydCB0eXBlIHsgU291cmNlTWFwU2VnbWVudCB9IGZyb20gJy4vc291cmNlbWFwLXNlZ21lbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWNvZGVkU291cmNlTWFwLCBFbmNvZGVkU291cmNlTWFwLCBQb3MsIE1hcHBpbmcgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgeyBEZWNvZGVkU291cmNlTWFwLCBFbmNvZGVkU291cmNlTWFwLCBNYXBwaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9wdGlvbnMgPSB7XG4gIGZpbGU/OiBzdHJpbmcgfCBudWxsO1xuICBzb3VyY2VSb290Pzogc3RyaW5nIHwgbnVsbDtcbn07XG5cbmNvbnN0IE5PX05BTUUgPSAtMTtcblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgc3RhdGUgdG8gZ2VuZXJhdGUgYSBzb3VyY2VtYXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBHZW5NYXBwaW5nIHtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9uYW1lczogU2V0QXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9zb3VyY2VzOiBTZXRBcnJheTxzdHJpbmc+O1xuICBwcml2YXRlIGRlY2xhcmUgX3NvdXJjZXNDb250ZW50OiAoc3RyaW5nIHwgbnVsbClbXTtcbiAgcHJpdmF0ZSBkZWNsYXJlIF9tYXBwaW5nczogU291cmNlTWFwU2VnbWVudFtdW107XG4gIHByaXZhdGUgZGVjbGFyZSBfaWdub3JlTGlzdDogU2V0QXJyYXk8bnVtYmVyPjtcbiAgZGVjbGFyZSBmaWxlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIHNvdXJjZVJvb3Q6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoeyBmaWxlLCBzb3VyY2VSb290IH06IE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX25hbWVzID0gbmV3IFNldEFycmF5KCk7XG4gICAgdGhpcy5fc291cmNlcyA9IG5ldyBTZXRBcnJheSgpO1xuICAgIHRoaXMuX3NvdXJjZXNDb250ZW50ID0gW107XG4gICAgdGhpcy5fbWFwcGluZ3MgPSBbXTtcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xuICAgIHRoaXMuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7XG4gICAgdGhpcy5faWdub3JlTGlzdCA9IG5ldyBTZXRBcnJheSgpO1xuICB9XG59XG5cbmludGVyZmFjZSBQdWJsaWNNYXAge1xuICBfbmFtZXM6IEdlbk1hcHBpbmdbJ19uYW1lcyddO1xuICBfc291cmNlczogR2VuTWFwcGluZ1snX3NvdXJjZXMnXTtcbiAgX3NvdXJjZXNDb250ZW50OiBHZW5NYXBwaW5nWydfc291cmNlc0NvbnRlbnQnXTtcbiAgX21hcHBpbmdzOiBHZW5NYXBwaW5nWydfbWFwcGluZ3MnXTtcbiAgX2lnbm9yZUxpc3Q6IEdlbk1hcHBpbmdbJ19pZ25vcmVMaXN0J107XG59XG5cbi8qKlxuICogVHlwZXNjcmlwdCBkb2Vzbid0IGFsbG93IGZyaWVuZCBhY2Nlc3MgdG8gcHJpdmF0ZSBmaWVsZHMsIHNvIHRoaXMganVzdCBjYXN0cyB0aGUgbWFwIGludG8gYSB0eXBlXG4gKiB3aXRoIHB1YmxpYyBhY2Nlc3MgbW9kaWZpZXJzLlxuICovXG5mdW5jdGlvbiBjYXN0KG1hcDogdW5rbm93bik6IFB1YmxpY01hcCB7XG4gIHJldHVybiBtYXAgYXMgYW55O1xufVxuXG4vKipcbiAqIEEgbG93LWxldmVsIEFQSSB0byBhc3NvY2lhdGUgYSBnZW5lcmF0ZWQgcG9zaXRpb24gd2l0aCBhbiBvcmlnaW5hbCBzb3VyY2UgcG9zaXRpb24uIExpbmUgYW5kXG4gKiBjb2x1bW4gaGVyZSBhcmUgMC1iYXNlZCwgdW5saWtlIGBhZGRNYXBwaW5nYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlZ21lbnQoXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgZ2VuTGluZTogbnVtYmVyLFxuICBnZW5Db2x1bW46IG51bWJlcixcbiAgc291cmNlPzogbnVsbCxcbiAgc291cmNlTGluZT86IG51bGwsXG4gIHNvdXJjZUNvbHVtbj86IG51bGwsXG4gIG5hbWU/OiBudWxsLFxuICBjb250ZW50PzogbnVsbCxcbik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gYWRkU2VnbWVudChcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBnZW5MaW5lOiBudW1iZXIsXG4gIGdlbkNvbHVtbjogbnVtYmVyLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgc291cmNlTGluZTogbnVtYmVyLFxuICBzb3VyY2VDb2x1bW46IG51bWJlcixcbiAgbmFtZT86IG51bGwsXG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBudWxsLFxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWdtZW50KFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIGdlbkxpbmU6IG51bWJlcixcbiAgZ2VuQ29sdW1uOiBudW1iZXIsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBzb3VyY2VMaW5lOiBudW1iZXIsXG4gIHNvdXJjZUNvbHVtbjogbnVtYmVyLFxuICBuYW1lOiBzdHJpbmcsXG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBudWxsLFxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWdtZW50KFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIGdlbkxpbmU6IG51bWJlcixcbiAgZ2VuQ29sdW1uOiBudW1iZXIsXG4gIHNvdXJjZT86IHN0cmluZyB8IG51bGwsXG4gIHNvdXJjZUxpbmU/OiBudW1iZXIgfCBudWxsLFxuICBzb3VyY2VDb2x1bW4/OiBudW1iZXIgfCBudWxsLFxuICBuYW1lPzogc3RyaW5nIHwgbnVsbCxcbiAgY29udGVudD86IHN0cmluZyB8IG51bGwsXG4pOiB2b2lkIHtcbiAgcmV0dXJuIGFkZFNlZ21lbnRJbnRlcm5hbChcbiAgICBmYWxzZSxcbiAgICBtYXAsXG4gICAgZ2VuTGluZSxcbiAgICBnZW5Db2x1bW4sXG4gICAgc291cmNlLFxuICAgIHNvdXJjZUxpbmUsXG4gICAgc291cmNlQ29sdW1uLFxuICAgIG5hbWUsXG4gICAgY29udGVudCxcbiAgKTtcbn1cblxuLyoqXG4gKiBBIGhpZ2gtbGV2ZWwgQVBJIHRvIGFzc29jaWF0ZSBhIGdlbmVyYXRlZCBwb3NpdGlvbiB3aXRoIGFuIG9yaWdpbmFsIHNvdXJjZSBwb3NpdGlvbi4gTGluZSBpc1xuICogMS1iYXNlZCwgYnV0IGNvbHVtbiBpcyAwLWJhc2VkLCBkdWUgdG8gbGVnYWN5IGJlaGF2aW9yIGluIGBzb3VyY2UtbWFwYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTWFwcGluZyhcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBtYXBwaW5nOiB7XG4gICAgZ2VuZXJhdGVkOiBQb3M7XG4gICAgc291cmNlPzogbnVsbDtcbiAgICBvcmlnaW5hbD86IG51bGw7XG4gICAgbmFtZT86IG51bGw7XG4gICAgY29udGVudD86IG51bGw7XG4gIH0sXG4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hcHBpbmcoXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgbWFwcGluZzoge1xuICAgIGdlbmVyYXRlZDogUG9zO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIG9yaWdpbmFsOiBQb3M7XG4gICAgbmFtZT86IG51bGw7XG4gICAgY29udGVudD86IHN0cmluZyB8IG51bGw7XG4gIH0sXG4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hcHBpbmcoXG4gIG1hcDogR2VuTWFwcGluZyxcbiAgbWFwcGluZzoge1xuICAgIGdlbmVyYXRlZDogUG9zO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIG9yaWdpbmFsOiBQb3M7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmcgfCBudWxsO1xuICB9LFxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBhZGRNYXBwaW5nKFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIG1hcHBpbmc6IHtcbiAgICBnZW5lcmF0ZWQ6IFBvcztcbiAgICBzb3VyY2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIG9yaWdpbmFsPzogUG9zIHwgbnVsbDtcbiAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICBjb250ZW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgfSxcbik6IHZvaWQge1xuICByZXR1cm4gYWRkTWFwcGluZ0ludGVybmFsKGZhbHNlLCBtYXAsIG1hcHBpbmcgYXMgUGFyYW1ldGVyczx0eXBlb2YgYWRkTWFwcGluZ0ludGVybmFsPlsyXSk7XG59XG5cbi8qKlxuICogU2FtZSBhcyBgYWRkU2VnbWVudGAsIGJ1dCB3aWxsIG9ubHkgYWRkIHRoZSBzZWdtZW50IGlmIGl0IGdlbmVyYXRlcyB1c2VmdWwgaW5mb3JtYXRpb24gaW4gdGhlXG4gKiByZXN1bHRpbmcgbWFwLiBUaGlzIG9ubHkgd29ya3MgY29ycmVjdGx5IGlmIHNlZ21lbnRzIGFyZSBhZGRlZCAqKmluIG9yZGVyKiosIG1lYW5pbmcgeW91IHNob3VsZFxuICogbm90IGFkZCBhIHNlZ21lbnQgd2l0aCBhIGxvd2VyIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiB0aGFuIG9uZSB0aGF0IGNhbWUgYmVmb3JlLlxuICovXG5leHBvcnQgY29uc3QgbWF5YmVBZGRTZWdtZW50OiB0eXBlb2YgYWRkU2VnbWVudCA9IChcbiAgbWFwLFxuICBnZW5MaW5lLFxuICBnZW5Db2x1bW4sXG4gIHNvdXJjZSxcbiAgc291cmNlTGluZSxcbiAgc291cmNlQ29sdW1uLFxuICBuYW1lLFxuICBjb250ZW50LFxuKSA9PiB7XG4gIHJldHVybiBhZGRTZWdtZW50SW50ZXJuYWwoXG4gICAgdHJ1ZSxcbiAgICBtYXAsXG4gICAgZ2VuTGluZSxcbiAgICBnZW5Db2x1bW4sXG4gICAgc291cmNlLFxuICAgIHNvdXJjZUxpbmUsXG4gICAgc291cmNlQ29sdW1uLFxuICAgIG5hbWUsXG4gICAgY29udGVudCxcbiAgKTtcbn07XG5cbi8qKlxuICogU2FtZSBhcyBgYWRkTWFwcGluZ2AsIGJ1dCB3aWxsIG9ubHkgYWRkIHRoZSBtYXBwaW5nIGlmIGl0IGdlbmVyYXRlcyB1c2VmdWwgaW5mb3JtYXRpb24gaW4gdGhlXG4gKiByZXN1bHRpbmcgbWFwLiBUaGlzIG9ubHkgd29ya3MgY29ycmVjdGx5IGlmIG1hcHBpbmdzIGFyZSBhZGRlZCAqKmluIG9yZGVyKiosIG1lYW5pbmcgeW91IHNob3VsZFxuICogbm90IGFkZCBhIG1hcHBpbmcgd2l0aCBhIGxvd2VyIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiB0aGFuIG9uZSB0aGF0IGNhbWUgYmVmb3JlLlxuICovXG5leHBvcnQgY29uc3QgbWF5YmVBZGRNYXBwaW5nOiB0eXBlb2YgYWRkTWFwcGluZyA9IChtYXAsIG1hcHBpbmcpID0+IHtcbiAgcmV0dXJuIGFkZE1hcHBpbmdJbnRlcm5hbCh0cnVlLCBtYXAsIG1hcHBpbmcgYXMgUGFyYW1ldGVyczx0eXBlb2YgYWRkTWFwcGluZ0ludGVybmFsPlsyXSk7XG59O1xuXG4vKipcbiAqIEFkZHMvcmVtb3ZlcyB0aGUgY29udGVudCBvZiB0aGUgc291cmNlIGZpbGUgdG8gdGhlIHNvdXJjZSBtYXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRTb3VyY2VDb250ZW50KG1hcDogR2VuTWFwcGluZywgc291cmNlOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgY29uc3QgeyBfc291cmNlczogc291cmNlcywgX3NvdXJjZXNDb250ZW50OiBzb3VyY2VzQ29udGVudCB9ID0gY2FzdChtYXApO1xuICBjb25zdCBpbmRleCA9IHB1dChzb3VyY2VzLCBzb3VyY2UpO1xuICBzb3VyY2VzQ29udGVudFtpbmRleF0gPSBjb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SWdub3JlKG1hcDogR2VuTWFwcGluZywgc291cmNlOiBzdHJpbmcsIGlnbm9yZSA9IHRydWUpIHtcbiAgY29uc3QgeyBfc291cmNlczogc291cmNlcywgX3NvdXJjZXNDb250ZW50OiBzb3VyY2VzQ29udGVudCwgX2lnbm9yZUxpc3Q6IGlnbm9yZUxpc3QgfSA9IGNhc3QobWFwKTtcbiAgY29uc3QgaW5kZXggPSBwdXQoc291cmNlcywgc291cmNlKTtcbiAgaWYgKGluZGV4ID09PSBzb3VyY2VzQ29udGVudC5sZW5ndGgpIHNvdXJjZXNDb250ZW50W2luZGV4XSA9IG51bGw7XG4gIGlmIChpZ25vcmUpIHB1dChpZ25vcmVMaXN0LCBpbmRleCk7XG4gIGVsc2UgcmVtb3ZlKGlnbm9yZUxpc3QsIGluZGV4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc291cmNlbWFwIG9iamVjdCAod2l0aCBkZWNvZGVkIG1hcHBpbmdzKSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhIGxpYnJhcnkgdGhhdCBleHBlY3RzXG4gKiBhIHNvdXJjZW1hcCwgb3IgdG8gSlNPTi5zdHJpbmdpZnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RlY29kZWRNYXAobWFwOiBHZW5NYXBwaW5nKTogRGVjb2RlZFNvdXJjZU1hcCB7XG4gIGNvbnN0IHtcbiAgICBfbWFwcGluZ3M6IG1hcHBpbmdzLFxuICAgIF9zb3VyY2VzOiBzb3VyY2VzLFxuICAgIF9zb3VyY2VzQ29udGVudDogc291cmNlc0NvbnRlbnQsXG4gICAgX25hbWVzOiBuYW1lcyxcbiAgICBfaWdub3JlTGlzdDogaWdub3JlTGlzdCxcbiAgfSA9IGNhc3QobWFwKTtcbiAgcmVtb3ZlRW1wdHlGaW5hbExpbmVzKG1hcHBpbmdzKTtcblxuICByZXR1cm4ge1xuICAgIHZlcnNpb246IDMsXG4gICAgZmlsZTogbWFwLmZpbGUgfHwgdW5kZWZpbmVkLFxuICAgIG5hbWVzOiBuYW1lcy5hcnJheSxcbiAgICBzb3VyY2VSb290OiBtYXAuc291cmNlUm9vdCB8fCB1bmRlZmluZWQsXG4gICAgc291cmNlczogc291cmNlcy5hcnJheSxcbiAgICBzb3VyY2VzQ29udGVudCxcbiAgICBtYXBwaW5ncyxcbiAgICBpZ25vcmVMaXN0OiBpZ25vcmVMaXN0LmFycmF5LFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzb3VyY2VtYXAgb2JqZWN0ICh3aXRoIGVuY29kZWQgbWFwcGluZ3MpIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIGEgbGlicmFyeSB0aGF0IGV4cGVjdHNcbiAqIGEgc291cmNlbWFwLCBvciB0byBKU09OLnN0cmluZ2lmeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRW5jb2RlZE1hcChtYXA6IEdlbk1hcHBpbmcpOiBFbmNvZGVkU291cmNlTWFwIHtcbiAgY29uc3QgZGVjb2RlZCA9IHRvRGVjb2RlZE1hcChtYXApO1xuICByZXR1cm4ge1xuICAgIC4uLmRlY29kZWQsXG4gICAgbWFwcGluZ3M6IGVuY29kZShkZWNvZGVkLm1hcHBpbmdzIGFzIFNvdXJjZU1hcFNlZ21lbnRbXVtdKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IEdlbk1hcHBpbmcsIHVzaW5nIHRoZSBhbHJlYWR5IHByZXNlbnQgbWFwcGluZ3Mgb2YgdGhlIGlucHV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbU1hcChpbnB1dDogU291cmNlTWFwSW5wdXQpOiBHZW5NYXBwaW5nIHtcbiAgY29uc3QgbWFwID0gbmV3IFRyYWNlTWFwKGlucHV0KTtcbiAgY29uc3QgZ2VuID0gbmV3IEdlbk1hcHBpbmcoeyBmaWxlOiBtYXAuZmlsZSwgc291cmNlUm9vdDogbWFwLnNvdXJjZVJvb3QgfSk7XG5cbiAgcHV0QWxsKGNhc3QoZ2VuKS5fbmFtZXMsIG1hcC5uYW1lcyk7XG4gIHB1dEFsbChjYXN0KGdlbikuX3NvdXJjZXMsIG1hcC5zb3VyY2VzIGFzIHN0cmluZ1tdKTtcbiAgY2FzdChnZW4pLl9zb3VyY2VzQ29udGVudCA9IG1hcC5zb3VyY2VzQ29udGVudCB8fCBtYXAuc291cmNlcy5tYXAoKCkgPT4gbnVsbCk7XG4gIGNhc3QoZ2VuKS5fbWFwcGluZ3MgPSBkZWNvZGVkTWFwcGluZ3MobWFwKSBhcyBHZW5NYXBwaW5nWydfbWFwcGluZ3MnXTtcbiAgaWYgKG1hcC5pZ25vcmVMaXN0KSBwdXRBbGwoY2FzdChnZW4pLl9pZ25vcmVMaXN0LCBtYXAuaWdub3JlTGlzdCk7XG5cbiAgcmV0dXJuIGdlbjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIGhpZ2gtbGV2ZWwgbWFwcGluZyBvYmplY3RzIGZvciBldmVyeSByZWNvcmRlZCBzZWdtZW50LCB3aGljaCBjb3VsZCB0aGVuIGJlXG4gKiBwYXNzZWQgdG8gdGhlIGBzb3VyY2UtbWFwYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsTWFwcGluZ3MobWFwOiBHZW5NYXBwaW5nKTogTWFwcGluZ1tdIHtcbiAgY29uc3Qgb3V0OiBNYXBwaW5nW10gPSBbXTtcbiAgY29uc3QgeyBfbWFwcGluZ3M6IG1hcHBpbmdzLCBfc291cmNlczogc291cmNlcywgX25hbWVzOiBuYW1lcyB9ID0gY2FzdChtYXApO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWFwcGluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBsaW5lID0gbWFwcGluZ3NbaV07XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBzZWcgPSBsaW5lW2pdO1xuXG4gICAgICBjb25zdCBnZW5lcmF0ZWQgPSB7IGxpbmU6IGkgKyAxLCBjb2x1bW46IHNlZ1tDT0xVTU5dIH07XG4gICAgICBsZXQgc291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgb3JpZ2luYWw6IFBvcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChzZWcubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHNvdXJjZSA9IHNvdXJjZXMuYXJyYXlbc2VnW1NPVVJDRVNfSU5ERVhdXTtcbiAgICAgICAgb3JpZ2luYWwgPSB7IGxpbmU6IHNlZ1tTT1VSQ0VfTElORV0gKyAxLCBjb2x1bW46IHNlZ1tTT1VSQ0VfQ09MVU1OXSB9O1xuXG4gICAgICAgIGlmIChzZWcubGVuZ3RoID09PSA1KSBuYW1lID0gbmFtZXMuYXJyYXlbc2VnW05BTUVTX0lOREVYXV07XG4gICAgICB9XG5cbiAgICAgIG91dC5wdXNoKHsgZ2VuZXJhdGVkLCBzb3VyY2UsIG9yaWdpbmFsLCBuYW1lIH0gYXMgTWFwcGluZyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuLy8gVGhpcyBzcGxpdCBkZWNsYXJhdGlvbiBpcyBvbmx5IHNvIHRoYXQgdGVyc2VyIGNhbiBlbG1pbmlhdGUgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiBibG9jay5cbmZ1bmN0aW9uIGFkZFNlZ21lbnRJbnRlcm5hbDxTIGV4dGVuZHMgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oXG4gIHNraXBhYmxlOiBib29sZWFuLFxuICBtYXA6IEdlbk1hcHBpbmcsXG4gIGdlbkxpbmU6IG51bWJlcixcbiAgZ2VuQ29sdW1uOiBudW1iZXIsXG4gIHNvdXJjZTogUyxcbiAgc291cmNlTGluZTogUyBleHRlbmRzIHN0cmluZyA/IG51bWJlciA6IG51bGwgfCB1bmRlZmluZWQsXG4gIHNvdXJjZUNvbHVtbjogUyBleHRlbmRzIHN0cmluZyA/IG51bWJlciA6IG51bGwgfCB1bmRlZmluZWQsXG4gIG5hbWU6IFMgZXh0ZW5kcyBzdHJpbmcgPyBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIDogbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29udGVudDogUyBleHRlbmRzIHN0cmluZyA/IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgOiBudWxsIHwgdW5kZWZpbmVkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBfbWFwcGluZ3M6IG1hcHBpbmdzLFxuICAgIF9zb3VyY2VzOiBzb3VyY2VzLFxuICAgIF9zb3VyY2VzQ29udGVudDogc291cmNlc0NvbnRlbnQsXG4gICAgX25hbWVzOiBuYW1lcyxcbiAgfSA9IGNhc3QobWFwKTtcbiAgY29uc3QgbGluZSA9IGdldExpbmUobWFwcGluZ3MsIGdlbkxpbmUpO1xuICBjb25zdCBpbmRleCA9IGdldENvbHVtbkluZGV4KGxpbmUsIGdlbkNvbHVtbik7XG5cbiAgaWYgKCFzb3VyY2UpIHtcbiAgICBpZiAoc2tpcGFibGUgJiYgc2tpcFNvdXJjZWxlc3MobGluZSwgaW5kZXgpKSByZXR1cm47XG4gICAgcmV0dXJuIGluc2VydChsaW5lLCBpbmRleCwgW2dlbkNvbHVtbl0pO1xuICB9XG5cbiAgLy8gU2lnaCwgVHlwZVNjcmlwdCBjYW4ndCBmaWd1cmUgb3V0IHNvdXJjZUxpbmUgYW5kIHNvdXJjZUNvbHVtbiBhcmVuJ3QgbnVsbGlzaCBpZiBzb3VyY2VcbiAgLy8gaXNuJ3QgbnVsbGlzaC5cbiAgYXNzZXJ0PG51bWJlcj4oc291cmNlTGluZSk7XG4gIGFzc2VydDxudW1iZXI+KHNvdXJjZUNvbHVtbik7XG5cbiAgY29uc3Qgc291cmNlc0luZGV4ID0gcHV0KHNvdXJjZXMsIHNvdXJjZSk7XG4gIGNvbnN0IG5hbWVzSW5kZXggPSBuYW1lID8gcHV0KG5hbWVzLCBuYW1lKSA6IE5PX05BTUU7XG4gIGlmIChzb3VyY2VzSW5kZXggPT09IHNvdXJjZXNDb250ZW50Lmxlbmd0aCkgc291cmNlc0NvbnRlbnRbc291cmNlc0luZGV4XSA9IGNvbnRlbnQgPz8gbnVsbDtcblxuICBpZiAoc2tpcGFibGUgJiYgc2tpcFNvdXJjZShsaW5lLCBpbmRleCwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW4sIG5hbWVzSW5kZXgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIGluc2VydChcbiAgICBsaW5lLFxuICAgIGluZGV4LFxuICAgIG5hbWVcbiAgICAgID8gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW4sIG5hbWVzSW5kZXhdXG4gICAgICA6IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uXSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0PFQ+KF92YWw6IHVua25vd24pOiBhc3NlcnRzIF92YWwgaXMgVCB7XG4gIC8vIG5vb3AuXG59XG5cbmZ1bmN0aW9uIGdldExpbmUobWFwcGluZ3M6IFNvdXJjZU1hcFNlZ21lbnRbXVtdLCBpbmRleDogbnVtYmVyKTogU291cmNlTWFwU2VnbWVudFtdIHtcbiAgZm9yIChsZXQgaSA9IG1hcHBpbmdzLmxlbmd0aDsgaSA8PSBpbmRleDsgaSsrKSB7XG4gICAgbWFwcGluZ3NbaV0gPSBbXTtcbiAgfVxuICByZXR1cm4gbWFwcGluZ3NbaW5kZXhdO1xufVxuXG5mdW5jdGlvbiBnZXRDb2x1bW5JbmRleChsaW5lOiBTb3VyY2VNYXBTZWdtZW50W10sIGdlbkNvbHVtbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGluZGV4ID0gbGluZS5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSBpbmRleCAtIDE7IGkgPj0gMDsgaW5kZXggPSBpLS0pIHtcbiAgICBjb25zdCBjdXJyZW50ID0gbGluZVtpXTtcbiAgICBpZiAoZ2VuQ29sdW1uID49IGN1cnJlbnRbQ09MVU1OXSkgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiBpbnNlcnQ8VD4oYXJyYXk6IFRbXSwgaW5kZXg6IG51bWJlciwgdmFsdWU6IFQpIHtcbiAgZm9yIChsZXQgaSA9IGFycmF5Lmxlbmd0aDsgaSA+IGluZGV4OyBpLS0pIHtcbiAgICBhcnJheVtpXSA9IGFycmF5W2kgLSAxXTtcbiAgfVxuICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRW1wdHlGaW5hbExpbmVzKG1hcHBpbmdzOiBTb3VyY2VNYXBTZWdtZW50W11bXSkge1xuICBjb25zdCB7IGxlbmd0aCB9ID0gbWFwcGluZ3M7XG4gIGxldCBsZW4gPSBsZW5ndGg7XG4gIGZvciAobGV0IGkgPSBsZW4gLSAxOyBpID49IDA7IGxlbiA9IGksIGktLSkge1xuICAgIGlmIChtYXBwaW5nc1tpXS5sZW5ndGggPiAwKSBicmVhaztcbiAgfVxuICBpZiAobGVuIDwgbGVuZ3RoKSBtYXBwaW5ncy5sZW5ndGggPSBsZW47XG59XG5cbmZ1bmN0aW9uIHB1dEFsbDxUIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyPihzZXRhcnI6IFNldEFycmF5PFQ+LCBhcnJheTogVFtdKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHB1dChzZXRhcnIsIGFycmF5W2ldKTtcbn1cblxuZnVuY3Rpb24gc2tpcFNvdXJjZWxlc3MobGluZTogU291cmNlTWFwU2VnbWVudFtdLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIC8vIFRoZSBzdGFydCBvZiBhIGxpbmUgaXMgYWxyZWFkeSBzb3VyY2VsZXNzLCBzbyBhZGRpbmcgYSBzb3VyY2VsZXNzIHNlZ21lbnQgdG8gdGhlIGJlZ2lubmluZ1xuICAvLyBkb2Vzbid0IGdlbmVyYXRlIGFueSB1c2VmdWwgaW5mb3JtYXRpb24uXG4gIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuIHRydWU7XG5cbiAgY29uc3QgcHJldiA9IGxpbmVbaW5kZXggLSAxXTtcbiAgLy8gSWYgdGhlIHByZXZpb3VzIHNlZ21lbnQgaXMgYWxzbyBzb3VyY2VsZXNzLCB0aGVuIGFkZGluZyBhbm90aGVyIHNvdXJjZWxlc3Mgc2VnbWVudCBkb2Vzbid0XG4gIC8vIGdlbnJhdGUgYW55IG5ldyBpbmZvcm1hdGlvbi4gRWxzZSwgdGhpcyBzZWdtZW50IHdpbGwgZW5kIHRoZSBzb3VyY2UvbmFtZWQgc2VnbWVudCBhbmQgcG9pbnQgdG9cbiAgLy8gYSBzb3VyY2VsZXNzIHBvc2l0aW9uLCB3aGljaCBpcyB1c2VmdWwuXG4gIHJldHVybiBwcmV2Lmxlbmd0aCA9PT0gMTtcbn1cblxuZnVuY3Rpb24gc2tpcFNvdXJjZShcbiAgbGluZTogU291cmNlTWFwU2VnbWVudFtdLFxuICBpbmRleDogbnVtYmVyLFxuICBzb3VyY2VzSW5kZXg6IG51bWJlcixcbiAgc291cmNlTGluZTogbnVtYmVyLFxuICBzb3VyY2VDb2x1bW46IG51bWJlcixcbiAgbmFtZXNJbmRleDogbnVtYmVyLFxuKTogYm9vbGVhbiB7XG4gIC8vIEEgc291cmNlL25hbWVkIHNlZ21lbnQgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZSBnaXZlcyBwb3NpdGlvbiBhdCB0aGF0IGdlbkNvbHVtblxuICBpZiAoaW5kZXggPT09IDApIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBwcmV2ID0gbGluZVtpbmRleCAtIDFdO1xuXG4gIC8vIElmIHRoZSBwcmV2aW91cyBzZWdtZW50IGlzIHNvdXJjZWxlc3MsIHRoZW4gd2UncmUgdHJhbnNpdGlvbmluZyB0byBhIHNvdXJjZS5cbiAgaWYgKHByZXYubGVuZ3RoID09PSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlIHByZXZpb3VzIHNlZ21lbnQgbWFwcyB0byB0aGUgZXhhY3Qgc2FtZSBzb3VyY2UgcG9zaXRpb24sIHRoZW4gdGhpcyBzZWdtZW50IGRvZXNuJ3RcbiAgLy8gcHJvdmlkZSBhbnkgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uLlxuICByZXR1cm4gKFxuICAgIHNvdXJjZXNJbmRleCA9PT0gcHJldltTT1VSQ0VTX0lOREVYXSAmJlxuICAgIHNvdXJjZUxpbmUgPT09IHByZXZbU09VUkNFX0xJTkVdICYmXG4gICAgc291cmNlQ29sdW1uID09PSBwcmV2W1NPVVJDRV9DT0xVTU5dICYmXG4gICAgbmFtZXNJbmRleCA9PT0gKHByZXYubGVuZ3RoID09PSA1ID8gcHJldltOQU1FU19JTkRFWF0gOiBOT19OQU1FKVxuICApO1xufVxuXG5mdW5jdGlvbiBhZGRNYXBwaW5nSW50ZXJuYWw8UyBleHRlbmRzIHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KFxuICBza2lwYWJsZTogYm9vbGVhbixcbiAgbWFwOiBHZW5NYXBwaW5nLFxuICBtYXBwaW5nOiB7XG4gICAgZ2VuZXJhdGVkOiBQb3M7XG4gICAgc291cmNlOiBTO1xuICAgIG9yaWdpbmFsOiBTIGV4dGVuZHMgc3RyaW5nID8gUG9zIDogbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBuYW1lOiBTIGV4dGVuZHMgc3RyaW5nID8gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA6IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgY29udGVudDogUyBleHRlbmRzIHN0cmluZyA/IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgOiBudWxsIHwgdW5kZWZpbmVkO1xuICB9LFxuKSB7XG4gIGNvbnN0IHsgZ2VuZXJhdGVkLCBzb3VyY2UsIG9yaWdpbmFsLCBuYW1lLCBjb250ZW50IH0gPSBtYXBwaW5nO1xuICBpZiAoIXNvdXJjZSkge1xuICAgIHJldHVybiBhZGRTZWdtZW50SW50ZXJuYWwoXG4gICAgICBza2lwYWJsZSxcbiAgICAgIG1hcCxcbiAgICAgIGdlbmVyYXRlZC5saW5lIC0gMSxcbiAgICAgIGdlbmVyYXRlZC5jb2x1bW4sXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICApO1xuICB9XG4gIGFzc2VydDxQb3M+KG9yaWdpbmFsKTtcbiAgcmV0dXJuIGFkZFNlZ21lbnRJbnRlcm5hbChcbiAgICBza2lwYWJsZSxcbiAgICBtYXAsXG4gICAgZ2VuZXJhdGVkLmxpbmUgLSAxLFxuICAgIGdlbmVyYXRlZC5jb2x1bW4sXG4gICAgc291cmNlIGFzIHN0cmluZyxcbiAgICBvcmlnaW5hbC5saW5lIC0gMSxcbiAgICBvcmlnaW5hbC5jb2x1bW4sXG4gICAgbmFtZSxcbiAgICBjb250ZW50LFxuICApO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkRldGFpbENvbnRleHQgPSBleHBvcnRzLk5vb3BDb250ZXh0ID0gZXhwb3J0cy5WRXJyb3IgPSB2b2lkIDA7XG4vKipcbiAqIEVycm9yIHRocm93biBieSB2YWxpZGF0aW9uLiBCZXNpZGVzIGFuIGluZm9ybWF0aXZlIG1lc3NhZ2UsIGl0IGluY2x1ZGVzIHRoZSBwYXRoIHRvIHRoZVxuICogcHJvcGVydHkgd2hpY2ggdHJpZ2dlcmVkIHRoZSBmYWlsdXJlLlxuICovXG52YXIgVkVycm9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhWRXJyb3IsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVkVycm9yKHBhdGgsIG1lc3NhZ2UpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbWVzc2FnZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMucGF0aCA9IHBhdGg7XG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29yayBmb3IgaW5mbyBhYm91dCB0aGlzIHdvcmthcm91bmQuXG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfdGhpcywgVkVycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFZFcnJvcjtcbn0oRXJyb3IpKTtcbmV4cG9ydHMuVkVycm9yID0gVkVycm9yO1xuLyoqXG4gKiBGYXN0IGltcGxlbWVudGF0aW9uIG9mIElDb250ZXh0IHVzZWQgZm9yIGZpcnN0LXBhc3MgdmFsaWRhdGlvbi4gSWYgdGhhdCBmYWlscywgd2UgY2FuIHZhbGlkYXRlXG4gKiB1c2luZyBEZXRhaWxDb250ZXh0IHRvIGNvbGxlY3QgZXJyb3IgbWVzc2FnZXMuIFRoYXQncyBmYXN0ZXIgZm9yIHRoZSBjb21tb24gY2FzZSB3aGVuIG1lc3NhZ2VzXG4gKiBub3JtYWxseSBwYXNzIHZhbGlkYXRpb24uXG4gKi9cbnZhciBOb29wQ29udGV4dCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBOb29wQ29udGV4dCgpIHtcbiAgICB9XG4gICAgTm9vcENvbnRleHQucHJvdG90eXBlLmZhaWwgPSBmdW5jdGlvbiAocmVsUGF0aCwgbWVzc2FnZSwgc2NvcmUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgTm9vcENvbnRleHQucHJvdG90eXBlLnVuaW9uUmVzb2x2ZXIgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuICAgIE5vb3BDb250ZXh0LnByb3RvdHlwZS5jcmVhdGVDb250ZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcbiAgICBOb29wQ29udGV4dC5wcm90b3R5cGUucmVzb2x2ZVVuaW9uID0gZnVuY3Rpb24gKHVyKSB7IH07XG4gICAgcmV0dXJuIE5vb3BDb250ZXh0O1xufSgpKTtcbmV4cG9ydHMuTm9vcENvbnRleHQgPSBOb29wQ29udGV4dDtcbi8qKlxuICogQ29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgSUNvbnRleHQgdGhhdCBjb2xsZWN0cyBtZWFuaW5nZnVsbCBlcnJvcnMuXG4gKi9cbnZhciBEZXRhaWxDb250ZXh0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIERldGFpbENvbnRleHQoKSB7XG4gICAgICAgIC8vIFN0YWNrIG9mIHByb3BlcnR5IG5hbWVzIGFuZCBhc3NvY2lhdGVkIG1lc3NhZ2VzIGZvciByZXBvcnRpbmcgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy5cbiAgICAgICAgdGhpcy5fcHJvcE5hbWVzID0gW1wiXCJdO1xuICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IFtudWxsXTtcbiAgICAgICAgLy8gU2NvcmUgaXMgdXNlZCB0byBjaG9vc2UgdGhlIGJlc3QgdW5pb24gbWVtYmVyIHdob3NlIERldGFpbENvbnRleHQgdG8gdXNlIGZvciByZXBvcnRpbmcuXG4gICAgICAgIC8vIEhpZ2hlciBzY29yZSBtZWFucyBiZXR0ZXIgbWF0Y2ggKG9yIHJhdGhlciBsZXNzIHNldmVyZSBtaXNtYXRjaCkuXG4gICAgICAgIHRoaXMuX3Njb3JlID0gMDtcbiAgICB9XG4gICAgRGV0YWlsQ29udGV4dC5wcm90b3R5cGUuZmFpbCA9IGZ1bmN0aW9uIChyZWxQYXRoLCBtZXNzYWdlLCBzY29yZSkge1xuICAgICAgICB0aGlzLl9wcm9wTmFtZXMucHVzaChyZWxQYXRoKTtcbiAgICAgICAgdGhpcy5fbWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fc2NvcmUgKz0gc2NvcmU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIERldGFpbENvbnRleHQucHJvdG90eXBlLnVuaW9uUmVzb2x2ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGV0YWlsVW5pb25SZXNvbHZlcigpO1xuICAgIH07XG4gICAgRGV0YWlsQ29udGV4dC5wcm90b3R5cGUucmVzb2x2ZVVuaW9uID0gZnVuY3Rpb24gKHVuaW9uUmVzb2x2ZXIpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgdmFyIHUgPSB1bmlvblJlc29sdmVyO1xuICAgICAgICB2YXIgYmVzdCA9IG51bGw7XG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2MgPSB1LmNvbnRleHRzOyBfaSA8IF9jLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgdmFyIGN0eCA9IF9jW19pXTtcbiAgICAgICAgICAgIGlmICghYmVzdCB8fCBjdHguX3Njb3JlID49IGJlc3QuX3Njb3JlKSB7XG4gICAgICAgICAgICAgICAgYmVzdCA9IGN0eDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYmVzdCAmJiBiZXN0Ll9zY29yZSA+IDApIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuX3Byb3BOYW1lcykucHVzaC5hcHBseShfYSwgYmVzdC5fcHJvcE5hbWVzKTtcbiAgICAgICAgICAgIChfYiA9IHRoaXMuX21lc3NhZ2VzKS5wdXNoLmFwcGx5KF9iLCBiZXN0Ll9tZXNzYWdlcyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIERldGFpbENvbnRleHQucHJvdG90eXBlLmdldEVycm9yID0gZnVuY3Rpb24gKHBhdGgpIHtcbiAgICAgICAgdmFyIG1zZ1BhcnRzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSB0aGlzLl9wcm9wTmFtZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIHZhciBwID0gdGhpcy5fcHJvcE5hbWVzW2ldO1xuICAgICAgICAgICAgcGF0aCArPSAodHlwZW9mIHAgPT09IFwibnVtYmVyXCIpID8gXCJbXCIgKyBwICsgXCJdXCIgOiAocCA/IFwiLlwiICsgcCA6IFwiXCIpO1xuICAgICAgICAgICAgdmFyIG0gPSB0aGlzLl9tZXNzYWdlc1tpXTtcbiAgICAgICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgICAgICAgbXNnUGFydHMucHVzaChwYXRoICsgXCIgXCIgKyBtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFZFcnJvcihwYXRoLCBtc2dQYXJ0cy5qb2luKFwiOyBcIikpO1xuICAgIH07XG4gICAgRGV0YWlsQ29udGV4dC5wcm90b3R5cGUuZ2V0RXJyb3JEZXRhaWwgPSBmdW5jdGlvbiAocGF0aCkge1xuICAgICAgICB2YXIgZGV0YWlscyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5fcHJvcE5hbWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB2YXIgcCA9IHRoaXMuX3Byb3BOYW1lc1tpXTtcbiAgICAgICAgICAgIHBhdGggKz0gKHR5cGVvZiBwID09PSBcIm51bWJlclwiKSA/IFwiW1wiICsgcCArIFwiXVwiIDogKHAgPyBcIi5cIiArIHAgOiBcIlwiKTtcbiAgICAgICAgICAgIHZhciBtZXNzYWdlID0gdGhpcy5fbWVzc2FnZXNbaV07XG4gICAgICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIGRldGFpbHMucHVzaCh7IHBhdGg6IHBhdGgsIG1lc3NhZ2U6IG1lc3NhZ2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRldGFpbCA9IG51bGw7XG4gICAgICAgIGZvciAodmFyIGkgPSBkZXRhaWxzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgZGV0YWlsc1tpXS5uZXN0ZWQgPSBbZGV0YWlsXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRldGFpbCA9IGRldGFpbHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRldGFpbDtcbiAgICB9O1xuICAgIHJldHVybiBEZXRhaWxDb250ZXh0O1xufSgpKTtcbmV4cG9ydHMuRGV0YWlsQ29udGV4dCA9IERldGFpbENvbnRleHQ7XG52YXIgRGV0YWlsVW5pb25SZXNvbHZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEZXRhaWxVbmlvblJlc29sdmVyKCkge1xuICAgICAgICB0aGlzLmNvbnRleHRzID0gW107XG4gICAgfVxuICAgIERldGFpbFVuaW9uUmVzb2x2ZXIucHJvdG90eXBlLmNyZWF0ZUNvbnRleHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBjdHggPSBuZXcgRGV0YWlsQ29udGV4dCgpO1xuICAgICAgICB0aGlzLmNvbnRleHRzLnB1c2goY3R4KTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICB9O1xuICAgIHJldHVybiBEZXRhaWxVbmlvblJlc29sdmVyO1xufSgpKTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBub2RlcyB1c2VkIHRvIGRlZmluZSB0eXBlcyBhbmQgdmFsaWRhdGlvbnMgZm9yIG9iamVjdHMgYW5kIGludGVyZmFjZXMuXG4gKi9cbi8vIHRzbGludDpkaXNhYmxlOm5vLXNoYWRvd2VkLXZhcmlhYmxlIHByZWZlci1mb3Itb2ZcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5iYXNpY1R5cGVzID0gZXhwb3J0cy5CYXNpY1R5cGUgPSBleHBvcnRzLlRQYXJhbUxpc3QgPSBleHBvcnRzLlRQYXJhbSA9IGV4cG9ydHMucGFyYW0gPSBleHBvcnRzLlRGdW5jID0gZXhwb3J0cy5mdW5jID0gZXhwb3J0cy5UUHJvcCA9IGV4cG9ydHMuVE9wdGlvbmFsID0gZXhwb3J0cy5vcHQgPSBleHBvcnRzLlRJZmFjZSA9IGV4cG9ydHMuaWZhY2UgPSBleHBvcnRzLlRFbnVtTGl0ZXJhbCA9IGV4cG9ydHMuZW51bWxpdCA9IGV4cG9ydHMuVEVudW1UeXBlID0gZXhwb3J0cy5lbnVtdHlwZSA9IGV4cG9ydHMuVEludGVyc2VjdGlvbiA9IGV4cG9ydHMuaW50ZXJzZWN0aW9uID0gZXhwb3J0cy5UVW5pb24gPSBleHBvcnRzLnVuaW9uID0gZXhwb3J0cy5UVHVwbGUgPSBleHBvcnRzLnR1cGxlID0gZXhwb3J0cy5UQXJyYXkgPSBleHBvcnRzLmFycmF5ID0gZXhwb3J0cy5UTGl0ZXJhbCA9IGV4cG9ydHMubGl0ID0gZXhwb3J0cy5UTmFtZSA9IGV4cG9ydHMubmFtZSA9IGV4cG9ydHMuVFR5cGUgPSB2b2lkIDA7XG52YXIgdXRpbF8xID0gcmVxdWlyZShcIi4vdXRpbFwiKTtcbi8qKiBOb2RlIHRoYXQgcmVwcmVzZW50cyBhIHR5cGUuICovXG52YXIgVFR5cGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVFR5cGUoKSB7XG4gICAgfVxuICAgIHJldHVybiBUVHlwZTtcbn0oKSk7XG5leHBvcnRzLlRUeXBlID0gVFR5cGU7XG4vKiogUGFyc2VzIGEgdHlwZSBzcGVjIGludG8gYSBUVHlwZSBub2RlLiAqL1xuZnVuY3Rpb24gcGFyc2VTcGVjKHR5cGVTcGVjKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0eXBlU3BlYyA9PT0gXCJzdHJpbmdcIiA/IG5hbWUodHlwZVNwZWMpIDogdHlwZVNwZWM7XG59XG5mdW5jdGlvbiBnZXROYW1lZFR5cGUoc3VpdGUsIG5hbWUpIHtcbiAgICB2YXIgdHR5cGUgPSBzdWl0ZVtuYW1lXTtcbiAgICBpZiAoIXR0eXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gdHlwZSBcIiArIG5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gdHR5cGU7XG59XG4vKipcbiAqIERlZmluZXMgYSB0eXBlIG5hbWUsIGVpdGhlciBidWlsdC1pbiwgb3IgZGVmaW5lZCBpbiB0aGlzIHN1aXRlLiBJdCBjYW4gdHlwaWNhbGx5IGJlIGluY2x1ZGVkIGluXG4gKiB0aGUgc3BlY3MgYXMganVzdCBhIHBsYWluIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbmFtZSh2YWx1ZSkgeyByZXR1cm4gbmV3IFROYW1lKHZhbHVlKTsgfVxuZXhwb3J0cy5uYW1lID0gbmFtZTtcbnZhciBUTmFtZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVE5hbWUsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVE5hbWUobmFtZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgX3RoaXMuX2ZhaWxNc2cgPSBcImlzIG5vdCBhIFwiICsgbmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUTmFtZS5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0LCBhbGxvd2VkUHJvcHMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHR0eXBlID0gZ2V0TmFtZWRUeXBlKHN1aXRlLCB0aGlzLm5hbWUpO1xuICAgICAgICB2YXIgY2hlY2tlciA9IHR0eXBlLmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCwgYWxsb3dlZFByb3BzKTtcbiAgICAgICAgaWYgKHR0eXBlIGluc3RhbmNlb2YgQmFzaWNUeXBlIHx8IHR0eXBlIGluc3RhbmNlb2YgVE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVja2VyO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBjb21wbGV4IHR5cGVzLCBhZGQgYW4gYWRkaXRpb25hbCBcImlzIG5vdCBhIDxUeXBlPlwiIG1lc3NhZ2Ugb24gZmFpbHVyZS5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7IHJldHVybiBjaGVja2VyKHZhbHVlLCBjdHgpID8gdHJ1ZSA6IGN0eC5mYWlsKG51bGwsIF90aGlzLl9mYWlsTXNnLCAwKTsgfTtcbiAgICB9O1xuICAgIHJldHVybiBUTmFtZTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVE5hbWUgPSBUTmFtZTtcbi8qKlxuICogRGVmaW5lcyBhIGxpdGVyYWwgdmFsdWUsIGUuZy4gbGl0KCdoZWxsbycpIG9yIGxpdCgxMjMpLlxuICovXG5mdW5jdGlvbiBsaXQodmFsdWUpIHsgcmV0dXJuIG5ldyBUTGl0ZXJhbCh2YWx1ZSk7IH1cbmV4cG9ydHMubGl0ID0gbGl0O1xudmFyIFRMaXRlcmFsID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUTGl0ZXJhbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUTGl0ZXJhbCh2YWx1ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBfdGhpcy5uYW1lID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBfdGhpcy5fZmFpbE1zZyA9IFwiaXMgbm90IFwiICsgX3RoaXMubmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUTGl0ZXJhbC5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkgeyByZXR1cm4gKHZhbHVlID09PSBfdGhpcy52YWx1ZSkgPyB0cnVlIDogY3R4LmZhaWwobnVsbCwgX3RoaXMuX2ZhaWxNc2csIC0xKTsgfTtcbiAgICB9O1xuICAgIHJldHVybiBUTGl0ZXJhbDtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVExpdGVyYWwgPSBUTGl0ZXJhbDtcbi8qKlxuICogRGVmaW5lcyBhbiBhcnJheSB0eXBlLCBlLmcuIGFycmF5KCdudW1iZXInKS5cbiAqL1xuZnVuY3Rpb24gYXJyYXkodHlwZVNwZWMpIHsgcmV0dXJuIG5ldyBUQXJyYXkocGFyc2VTcGVjKHR5cGVTcGVjKSk7IH1cbmV4cG9ydHMuYXJyYXkgPSBhcnJheTtcbnZhciBUQXJyYXkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRBcnJheSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUQXJyYXkodHR5cGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMudHR5cGUgPSB0dHlwZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUQXJyYXkucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgaXRlbUNoZWNrZXIgPSB0aGlzLnR0eXBlLmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChudWxsLCBcImlzIG5vdCBhbiBhcnJheVwiLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgb2sgPSBpdGVtQ2hlY2tlcih2YWx1ZVtpXSwgY3R4KTtcbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChpLCBudWxsLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUQXJyYXk7XG59KFRUeXBlKSk7XG5leHBvcnRzLlRBcnJheSA9IFRBcnJheTtcbi8qKlxuICogRGVmaW5lcyBhIHR1cGxlIHR5cGUsIGUuZy4gdHVwbGUoJ3N0cmluZycsICdudW1iZXInKS5cbiAqL1xuZnVuY3Rpb24gdHVwbGUoKSB7XG4gICAgdmFyIHR5cGVTcGVjID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdHlwZVNwZWNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUVHVwbGUodHlwZVNwZWMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiBwYXJzZVNwZWModCk7IH0pKTtcbn1cbmV4cG9ydHMudHVwbGUgPSB0dXBsZTtcbnZhciBUVHVwbGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRUdXBsZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUVHVwbGUodHR5cGVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnR0eXBlcyA9IHR0eXBlcztcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUVHVwbGUucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgaXRlbUNoZWNrZXJzID0gdGhpcy50dHlwZXMubWFwKGZ1bmN0aW9uICh0KSB7IHJldHVybiB0LmdldENoZWNrZXIoc3VpdGUsIHN0cmljdCk7IH0pO1xuICAgICAgICB2YXIgY2hlY2tlciA9IGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKG51bGwsIFwiaXMgbm90IGFuIGFycmF5XCIsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtQ2hlY2tlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgb2sgPSBpdGVtQ2hlY2tlcnNbaV0odmFsdWVbaV0sIGN0eCk7XG4gICAgICAgICAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwoaSwgbnVsbCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGlmICghc3RyaWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2hlY2tlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tlcih2YWx1ZSwgY3R4KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPD0gaXRlbUNoZWNrZXJzLmxlbmd0aCA/IHRydWUgOlxuICAgICAgICAgICAgICAgIGN0eC5mYWlsKGl0ZW1DaGVja2Vycy5sZW5ndGgsIFwiaXMgZXh0cmFuZW91c1wiLCAyKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUVHVwbGU7XG59KFRUeXBlKSk7XG5leHBvcnRzLlRUdXBsZSA9IFRUdXBsZTtcbi8qKlxuICogRGVmaW5lcyBhIHVuaW9uIHR5cGUsIGUuZy4gdW5pb24oJ251bWJlcicsICdudWxsJykuXG4gKi9cbmZ1bmN0aW9uIHVuaW9uKCkge1xuICAgIHZhciB0eXBlU3BlYyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHR5cGVTcGVjW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBuZXcgVFVuaW9uKHR5cGVTcGVjLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gcGFyc2VTcGVjKHQpOyB9KSk7XG59XG5leHBvcnRzLnVuaW9uID0gdW5pb247XG52YXIgVFVuaW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUVW5pb24sIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVFVuaW9uKHR0eXBlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy50dHlwZXMgPSB0dHlwZXM7XG4gICAgICAgIHZhciBuYW1lcyA9IHR0eXBlcy5tYXAoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHQgaW5zdGFuY2VvZiBUTmFtZSB8fCB0IGluc3RhbmNlb2YgVExpdGVyYWwgPyB0Lm5hbWUgOiBudWxsOyB9KVxuICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfSk7XG4gICAgICAgIHZhciBvdGhlclR5cGVzID0gdHR5cGVzLmxlbmd0aCAtIG5hbWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG90aGVyVHlwZXMgPiAwKSB7XG4gICAgICAgICAgICAgICAgbmFtZXMucHVzaChvdGhlclR5cGVzICsgXCIgbW9yZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzLl9mYWlsTXNnID0gXCJpcyBub25lIG9mIFwiICsgbmFtZXMuam9pbihcIiwgXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMuX2ZhaWxNc2cgPSBcImlzIG5vbmUgb2YgXCIgKyBvdGhlclR5cGVzICsgXCIgdHlwZXNcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRVbmlvbi5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBpdGVtQ2hlY2tlcnMgPSB0aGlzLnR0eXBlcy5tYXAoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHQuZ2V0Q2hlY2tlcihzdWl0ZSwgc3RyaWN0KTsgfSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgdmFyIHVyID0gY3R4LnVuaW9uUmVzb2x2ZXIoKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIG9rID0gaXRlbUNoZWNrZXJzW2ldKHZhbHVlLCB1ci5jcmVhdGVDb250ZXh0KCkpO1xuICAgICAgICAgICAgICAgIGlmIChvaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdHgucmVzb2x2ZVVuaW9uKHVyKTtcbiAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChudWxsLCBfdGhpcy5fZmFpbE1zZywgMCk7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gVFVuaW9uO1xufShUVHlwZSkpO1xuZXhwb3J0cy5UVW5pb24gPSBUVW5pb247XG4vKipcbiAqIERlZmluZXMgYW4gaW50ZXJzZWN0aW9uIHR5cGUsIGUuZy4gaW50ZXJzZWN0aW9uKCdudW1iZXInLCAnbnVsbCcpLlxuICovXG5mdW5jdGlvbiBpbnRlcnNlY3Rpb24oKSB7XG4gICAgdmFyIHR5cGVTcGVjID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdHlwZVNwZWNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUSW50ZXJzZWN0aW9uKHR5cGVTcGVjLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gcGFyc2VTcGVjKHQpOyB9KSk7XG59XG5leHBvcnRzLmludGVyc2VjdGlvbiA9IGludGVyc2VjdGlvbjtcbnZhciBUSW50ZXJzZWN0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUSW50ZXJzZWN0aW9uLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRJbnRlcnNlY3Rpb24odHR5cGVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnR0eXBlcyA9IHR0eXBlcztcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUSW50ZXJzZWN0aW9uLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGFsbG93ZWRQcm9wcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgdmFyIGl0ZW1DaGVja2VycyA9IHRoaXMudHR5cGVzLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gdC5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QsIGFsbG93ZWRQcm9wcyk7IH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIHZhciBvayA9IGl0ZW1DaGVja2Vycy5ldmVyeShmdW5jdGlvbiAoY2hlY2tlcikgeyByZXR1cm4gY2hlY2tlcih2YWx1ZSwgY3R4KTsgfSk7XG4gICAgICAgICAgICBpZiAob2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChudWxsLCBudWxsLCAwKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUSW50ZXJzZWN0aW9uO1xufShUVHlwZSkpO1xuZXhwb3J0cy5USW50ZXJzZWN0aW9uID0gVEludGVyc2VjdGlvbjtcbi8qKlxuICogRGVmaW5lcyBhbiBlbnVtIHR5cGUsIGUuZy4gZW51bSh7J0EnOiAxLCAnQic6IDJ9KS5cbiAqL1xuZnVuY3Rpb24gZW51bXR5cGUodmFsdWVzKSB7XG4gICAgcmV0dXJuIG5ldyBURW51bVR5cGUodmFsdWVzKTtcbn1cbmV4cG9ydHMuZW51bXR5cGUgPSBlbnVtdHlwZTtcbnZhciBURW51bVR5cGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRFbnVtVHlwZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBURW51bVR5cGUobWVtYmVycykge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5tZW1iZXJzID0gbWVtYmVycztcbiAgICAgICAgX3RoaXMudmFsaWRWYWx1ZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIF90aGlzLl9mYWlsTXNnID0gXCJpcyBub3QgYSB2YWxpZCBlbnVtIHZhbHVlXCI7XG4gICAgICAgIF90aGlzLnZhbGlkVmFsdWVzID0gbmV3IFNldChPYmplY3Qua2V5cyhtZW1iZXJzKS5tYXAoZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIG1lbWJlcnNbbmFtZV07IH0pKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBURW51bVR5cGUucHJvdG90eXBlLmdldENoZWNrZXIgPSBmdW5jdGlvbiAoc3VpdGUsIHN0cmljdCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIHJldHVybiAoX3RoaXMudmFsaWRWYWx1ZXMuaGFzKHZhbHVlKSA/IHRydWUgOiBjdHguZmFpbChudWxsLCBfdGhpcy5fZmFpbE1zZywgMCkpO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRFbnVtVHlwZTtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVEVudW1UeXBlID0gVEVudW1UeXBlO1xuLyoqXG4gKiBEZWZpbmVzIGEgbGl0ZXJhbCBlbnVtIHZhbHVlLCBzdWNoIGFzIERpcmVjdGlvbi5VcCwgc3BlY2lmaWVkIGFzIGVudW1saXQoXCJEaXJlY3Rpb25cIiwgXCJVcFwiKS5cbiAqL1xuZnVuY3Rpb24gZW51bWxpdChuYW1lLCBwcm9wKSB7XG4gICAgcmV0dXJuIG5ldyBURW51bUxpdGVyYWwobmFtZSwgcHJvcCk7XG59XG5leHBvcnRzLmVudW1saXQgPSBlbnVtbGl0O1xudmFyIFRFbnVtTGl0ZXJhbCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVEVudW1MaXRlcmFsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRFbnVtTGl0ZXJhbChlbnVtTmFtZSwgcHJvcCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5lbnVtTmFtZSA9IGVudW1OYW1lO1xuICAgICAgICBfdGhpcy5wcm9wID0gcHJvcDtcbiAgICAgICAgX3RoaXMuX2ZhaWxNc2cgPSBcImlzIG5vdCBcIiArIGVudW1OYW1lICsgXCIuXCIgKyBwcm9wO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRFbnVtTGl0ZXJhbC5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciB0dHlwZSA9IGdldE5hbWVkVHlwZShzdWl0ZSwgdGhpcy5lbnVtTmFtZSk7XG4gICAgICAgIGlmICghKHR0eXBlIGluc3RhbmNlb2YgVEVudW1UeXBlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZSBcIiArIHRoaXMuZW51bU5hbWUgKyBcIiB1c2VkIGluIGVudW1saXQgaXMgbm90IGFuIGVudW0gdHlwZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdmFsID0gdHR5cGUubWVtYmVyc1t0aGlzLnByb3BdO1xuICAgICAgICBpZiAoIXR0eXBlLm1lbWJlcnMuaGFzT3duUHJvcGVydHkodGhpcy5wcm9wKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biB2YWx1ZSBcIiArIHRoaXMuZW51bU5hbWUgKyBcIi5cIiArIHRoaXMucHJvcCArIFwiIHVzZWQgaW4gZW51bWxpdFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHsgcmV0dXJuICh2YWx1ZSA9PT0gdmFsKSA/IHRydWUgOiBjdHguZmFpbChudWxsLCBfdGhpcy5fZmFpbE1zZywgLTEpOyB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRFbnVtTGl0ZXJhbDtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVEVudW1MaXRlcmFsID0gVEVudW1MaXRlcmFsO1xuZnVuY3Rpb24gbWFrZUlmYWNlUHJvcHMocHJvcHMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpLm1hcChmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbWFrZUlmYWNlUHJvcChuYW1lLCBwcm9wc1tuYW1lXSk7IH0pO1xufVxuZnVuY3Rpb24gbWFrZUlmYWNlUHJvcChuYW1lLCBwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AgaW5zdGFuY2VvZiBUT3B0aW9uYWwgP1xuICAgICAgICBuZXcgVFByb3AobmFtZSwgcHJvcC50dHlwZSwgdHJ1ZSkgOlxuICAgICAgICBuZXcgVFByb3AobmFtZSwgcGFyc2VTcGVjKHByb3ApLCBmYWxzZSk7XG59XG4vKipcbiAqIERlZmluZXMgYW4gaW50ZXJmYWNlLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXkgb2YgaW50ZXJmYWNlcyB0aGF0IGl0IGV4dGVuZHMsIGFuZCB0aGVcbiAqIHNlY29uZCBpcyBhbiBhcnJheSBvZiBwcm9wZXJ0aWVzLlxuICovXG5mdW5jdGlvbiBpZmFjZShiYXNlcywgcHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IFRJZmFjZShiYXNlcywgbWFrZUlmYWNlUHJvcHMocHJvcHMpKTtcbn1cbmV4cG9ydHMuaWZhY2UgPSBpZmFjZTtcbnZhciBUSWZhY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRJZmFjZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBUSWZhY2UoYmFzZXMsIHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLmJhc2VzID0gYmFzZXM7XG4gICAgICAgIF90aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIF90aGlzLnByb3BTZXQgPSBuZXcgU2V0KHByb3BzLm1hcChmdW5jdGlvbiAocCkgeyByZXR1cm4gcC5uYW1lOyB9KSk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVElmYWNlLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QsIGFsbG93ZWRQcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYmFzZUNoZWNrZXJzID0gdGhpcy5iYXNlcy5tYXAoZnVuY3Rpb24gKGIpIHsgcmV0dXJuIGdldE5hbWVkVHlwZShzdWl0ZSwgYikuZ2V0Q2hlY2tlcihzdWl0ZSwgc3RyaWN0KTsgfSk7XG4gICAgICAgIHZhciBwcm9wQ2hlY2tlcnMgPSB0aGlzLnByb3BzLm1hcChmdW5jdGlvbiAocHJvcCkgeyByZXR1cm4gcHJvcC50dHlwZS5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QpOyB9KTtcbiAgICAgICAgdmFyIHRlc3RDdHggPSBuZXcgdXRpbF8xLk5vb3BDb250ZXh0KCk7XG4gICAgICAgIC8vIENvbnNpZGVyIGEgcHJvcCByZXF1aXJlZCBpZiBpdCdzIG5vdCBvcHRpb25hbCBBTkQgZG9lcyBub3QgYWxsb3cgZm9yIHVuZGVmaW5lZCBhcyBhIHZhbHVlLlxuICAgICAgICB2YXIgaXNQcm9wUmVxdWlyZWQgPSB0aGlzLnByb3BzLm1hcChmdW5jdGlvbiAocHJvcCwgaSkge1xuICAgICAgICAgICAgcmV0dXJuICFwcm9wLmlzT3B0ICYmICFwcm9wQ2hlY2tlcnNbaV0odW5kZWZpbmVkLCB0ZXN0Q3R4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBjaGVja2VyID0gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwobnVsbCwgXCJpcyBub3QgYW4gb2JqZWN0XCIsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYXNlQ2hlY2tlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIWJhc2VDaGVja2Vyc1tpXSh2YWx1ZSwgY3R4KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wQ2hlY2tlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgbmFtZV8xID0gX3RoaXMucHJvcHNbaV0ubmFtZTtcbiAgICAgICAgICAgICAgICB2YXIgdiA9IHZhbHVlW25hbWVfMV07XG4gICAgICAgICAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNQcm9wUmVxdWlyZWRbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChuYW1lXzEsIFwiaXMgbWlzc2luZ1wiLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9rID0gcHJvcENoZWNrZXJzW2ldKHYsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChuYW1lXzEsIG51bGwsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGlmICghc3RyaWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2hlY2tlcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcFNldCA9IHRoaXMucHJvcFNldDtcbiAgICAgICAgaWYgKGFsbG93ZWRQcm9wcykge1xuICAgICAgICAgICAgdGhpcy5wcm9wU2V0LmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHsgcmV0dXJuIGFsbG93ZWRQcm9wcy5hZGQocHJvcCk7IH0pO1xuICAgICAgICAgICAgcHJvcFNldCA9IGFsbG93ZWRQcm9wcztcbiAgICAgICAgfVxuICAgICAgICAvLyBJbiBzdHJpY3QgbW9kZSwgY2hlY2sgYWxzbyBmb3IgdW5rbm93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkge1xuICAgICAgICAgICAgaWYgKCFjaGVja2VyKHZhbHVlLCBjdHgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghcHJvcFNldC5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5mYWlsKHByb3AsIFwiaXMgZXh0cmFuZW91c1wiLCAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBUSWZhY2U7XG59KFRUeXBlKSk7XG5leHBvcnRzLlRJZmFjZSA9IFRJZmFjZTtcbi8qKlxuICogRGVmaW5lcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSBvbiBhbiBpbnRlcmZhY2UuXG4gKi9cbmZ1bmN0aW9uIG9wdCh0eXBlU3BlYykgeyByZXR1cm4gbmV3IFRPcHRpb25hbChwYXJzZVNwZWModHlwZVNwZWMpKTsgfVxuZXhwb3J0cy5vcHQgPSBvcHQ7XG52YXIgVE9wdGlvbmFsID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUT3B0aW9uYWwsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVE9wdGlvbmFsKHR0eXBlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnR0eXBlID0gdHR5cGU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgVE9wdGlvbmFsLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGl0ZW1DaGVja2VyID0gdGhpcy50dHlwZS5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGl0ZW1DaGVja2VyKHZhbHVlLCBjdHgpO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgcmV0dXJuIFRPcHRpb25hbDtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVE9wdGlvbmFsID0gVE9wdGlvbmFsO1xuLyoqXG4gKiBEZWZpbmVzIGEgcHJvcGVydHkgaW4gYW4gaW50ZXJmYWNlLlxuICovXG52YXIgVFByb3AgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVFByb3AobmFtZSwgdHR5cGUsIGlzT3B0KSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMudHR5cGUgPSB0dHlwZTtcbiAgICAgICAgdGhpcy5pc09wdCA9IGlzT3B0O1xuICAgIH1cbiAgICByZXR1cm4gVFByb3A7XG59KCkpO1xuZXhwb3J0cy5UUHJvcCA9IFRQcm9wO1xuLyoqXG4gKiBEZWZpbmVzIGEgZnVuY3Rpb24uIFRoZSBmaXJzdCBhcmd1bWVudCBkZWNsYXJlcyB0aGUgZnVuY3Rpb24ncyByZXR1cm4gdHlwZSwgdGhlIHJlc3QgZGVjbGFyZVxuICogaXRzIHBhcmFtZXRlcnMuXG4gKi9cbmZ1bmN0aW9uIGZ1bmMocmVzdWx0U3BlYykge1xuICAgIHZhciBwYXJhbXMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBwYXJhbXNbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBuZXcgVEZ1bmMobmV3IFRQYXJhbUxpc3QocGFyYW1zKSwgcGFyc2VTcGVjKHJlc3VsdFNwZWMpKTtcbn1cbmV4cG9ydHMuZnVuYyA9IGZ1bmM7XG52YXIgVEZ1bmMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFRGdW5jLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRGdW5jKHBhcmFtTGlzdCwgcmVzdWx0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnBhcmFtTGlzdCA9IHBhcmFtTGlzdDtcbiAgICAgICAgX3RoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFRGdW5jLnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyB0cnVlIDogY3R4LmZhaWwobnVsbCwgXCJpcyBub3QgYSBmdW5jdGlvblwiLCAwKTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBURnVuYztcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVEZ1bmMgPSBURnVuYztcbi8qKlxuICogRGVmaW5lcyBhIGZ1bmN0aW9uIHBhcmFtZXRlci5cbiAqL1xuZnVuY3Rpb24gcGFyYW0obmFtZSwgdHlwZVNwZWMsIGlzT3B0KSB7XG4gICAgcmV0dXJuIG5ldyBUUGFyYW0obmFtZSwgcGFyc2VTcGVjKHR5cGVTcGVjKSwgQm9vbGVhbihpc09wdCkpO1xufVxuZXhwb3J0cy5wYXJhbSA9IHBhcmFtO1xudmFyIFRQYXJhbSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUUGFyYW0obmFtZSwgdHR5cGUsIGlzT3B0KSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMudHR5cGUgPSB0dHlwZTtcbiAgICAgICAgdGhpcy5pc09wdCA9IGlzT3B0O1xuICAgIH1cbiAgICByZXR1cm4gVFBhcmFtO1xufSgpKTtcbmV4cG9ydHMuVFBhcmFtID0gVFBhcmFtO1xuLyoqXG4gKiBEZWZpbmVzIGEgZnVuY3Rpb24gcGFyYW1ldGVyIGxpc3QuXG4gKi9cbnZhciBUUGFyYW1MaXN0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUUGFyYW1MaXN0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFRQYXJhbUxpc3QocGFyYW1zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBUUGFyYW1MaXN0LnByb3RvdHlwZS5nZXRDaGVja2VyID0gZnVuY3Rpb24gKHN1aXRlLCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGl0ZW1DaGVja2VycyA9IHRoaXMucGFyYW1zLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gdC50dHlwZS5nZXRDaGVja2VyKHN1aXRlLCBzdHJpY3QpOyB9KTtcbiAgICAgICAgdmFyIHRlc3RDdHggPSBuZXcgdXRpbF8xLk5vb3BDb250ZXh0KCk7XG4gICAgICAgIHZhciBpc1BhcmFtUmVxdWlyZWQgPSB0aGlzLnBhcmFtcy5tYXAoZnVuY3Rpb24gKHBhcmFtLCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gIXBhcmFtLmlzT3B0ICYmICFpdGVtQ2hlY2tlcnNbaV0odW5kZWZpbmVkLCB0ZXN0Q3R4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBjaGVja2VyID0gZnVuY3Rpb24gKHZhbHVlLCBjdHgpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwobnVsbCwgXCJpcyBub3QgYW4gYXJyYXlcIiwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1DaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBwID0gX3RoaXMucGFyYW1zW2ldO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtpXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1BhcmFtUmVxdWlyZWRbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHguZmFpbChwLm5hbWUsIFwiaXMgbWlzc2luZ1wiLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9rID0gaXRlbUNoZWNrZXJzW2ldKHZhbHVlW2ldLCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3R4LmZhaWwocC5uYW1lLCBudWxsLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoIXN0cmljdCkge1xuICAgICAgICAgICAgcmV0dXJuIGNoZWNrZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSwgY3R4KSB7XG4gICAgICAgICAgICBpZiAoIWNoZWNrZXIodmFsdWUsIGN0eCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoIDw9IGl0ZW1DaGVja2Vycy5sZW5ndGggPyB0cnVlIDpcbiAgICAgICAgICAgICAgICBjdHguZmFpbChpdGVtQ2hlY2tlcnMubGVuZ3RoLCBcImlzIGV4dHJhbmVvdXNcIiwgMik7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gVFBhcmFtTGlzdDtcbn0oVFR5cGUpKTtcbmV4cG9ydHMuVFBhcmFtTGlzdCA9IFRQYXJhbUxpc3Q7XG4vKipcbiAqIFNpbmdsZSBUVHlwZSBpbXBsZW1lbnRhdGlvbiBmb3IgYWxsIGJhc2ljIGJ1aWx0LWluIHR5cGVzLlxuICovXG52YXIgQmFzaWNUeXBlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhCYXNpY1R5cGUsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQmFzaWNUeXBlKHZhbGlkYXRvciwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy52YWxpZGF0b3IgPSB2YWxpZGF0b3I7XG4gICAgICAgIF90aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEJhc2ljVHlwZS5wcm90b3R5cGUuZ2V0Q2hlY2tlciA9IGZ1bmN0aW9uIChzdWl0ZSwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUsIGN0eCkgeyByZXR1cm4gX3RoaXMudmFsaWRhdG9yKHZhbHVlKSA/IHRydWUgOiBjdHguZmFpbChudWxsLCBfdGhpcy5tZXNzYWdlLCAwKTsgfTtcbiAgICB9O1xuICAgIHJldHVybiBCYXNpY1R5cGU7XG59KFRUeXBlKSk7XG5leHBvcnRzLkJhc2ljVHlwZSA9IEJhc2ljVHlwZTtcbi8qKlxuICogRGVmaW5lcyB0aGUgc3VpdGUgb2YgYmFzaWMgdHlwZXMuXG4gKi9cbmV4cG9ydHMuYmFzaWNUeXBlcyA9IHtcbiAgICBhbnk6IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHRydWU7IH0sIFwiaXMgaW52YWxpZFwiKSxcbiAgICBudW1iZXI6IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICh0eXBlb2YgdiA9PT0gXCJudW1iZXJcIik7IH0sIFwiaXMgbm90IGEgbnVtYmVyXCIpLFxuICAgIG9iamVjdDogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYpOyB9LCBcImlzIG5vdCBhbiBvYmplY3RcIiksXG4gICAgYm9vbGVhbjogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHR5cGVvZiB2ID09PSBcImJvb2xlYW5cIik7IH0sIFwiaXMgbm90IGEgYm9vbGVhblwiKSxcbiAgICBzdHJpbmc6IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIik7IH0sIFwiaXMgbm90IGEgc3RyaW5nXCIpLFxuICAgIHN5bWJvbDogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHR5cGVvZiB2ID09PSBcInN5bWJvbFwiKTsgfSwgXCJpcyBub3QgYSBzeW1ib2xcIiksXG4gICAgdm9pZDogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gKHYgPT0gbnVsbCk7IH0sIFwiaXMgbm90IHZvaWRcIiksXG4gICAgdW5kZWZpbmVkOiBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodiA9PT0gdW5kZWZpbmVkKTsgfSwgXCJpcyBub3QgdW5kZWZpbmVkXCIpLFxuICAgIG51bGw6IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICh2ID09PSBudWxsKTsgfSwgXCJpcyBub3QgbnVsbFwiKSxcbiAgICBuZXZlcjogbmV3IEJhc2ljVHlwZShmdW5jdGlvbiAodikgeyByZXR1cm4gZmFsc2U7IH0sIFwiaXMgdW5leHBlY3RlZFwiKSxcbiAgICBEYXRlOiBuZXcgQmFzaWNUeXBlKGdldElzTmF0aXZlQ2hlY2tlcihcIltvYmplY3QgRGF0ZV1cIiksIFwiaXMgbm90IGEgRGF0ZVwiKSxcbiAgICBSZWdFeHA6IG5ldyBCYXNpY1R5cGUoZ2V0SXNOYXRpdmVDaGVja2VyKFwiW29iamVjdCBSZWdFeHBdXCIpLCBcImlzIG5vdCBhIFJlZ0V4cFwiKSxcbn07XG4vLyBUaGlzIGFwcHJvYWNoIGZvciBjaGVja2luZyBuYXRpdmUgb2JqZWN0IHR5cGVzIG1pcnJvcnMgdGhhdCBvZiBsb2Rhc2guIEl0cyBhZHZhbnRhZ2Ugb3ZlclxuLy8gYGlzaW5zdGFuY2VgIGlzIHRoYXQgaXQgY2FuIHN0aWxsIHJldHVybiB0cnVlIGZvciBuYXRpdmUgb2JqZWN0cyBjcmVhdGVkIGluIGRpZmZlcmVudCBKU1xuLy8gZXhlY3V0aW9uIGVudmlyb25tZW50cy5cbnZhciBuYXRpdmVUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5mdW5jdGlvbiBnZXRJc05hdGl2ZUNoZWNrZXIodGFnKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICYmIG5hdGl2ZVRvU3RyaW5nLmNhbGwodikgPT09IHRhZzsgfTtcbn1cbmlmICh0eXBlb2YgQnVmZmVyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgZXhwb3J0cy5iYXNpY1R5cGVzLkJ1ZmZlciA9IG5ldyBCYXNpY1R5cGUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih2KTsgfSwgXCJpcyBub3QgYSBCdWZmZXJcIik7XG59XG52YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChhcnJheV8xKSB7XG4gICAgZXhwb3J0cy5iYXNpY1R5cGVzW2FycmF5XzEubmFtZV0gPSBuZXcgQmFzaWNUeXBlKGZ1bmN0aW9uICh2KSB7IHJldHVybiAodiBpbnN0YW5jZW9mIGFycmF5XzEpOyB9LCBcImlzIG5vdCBhIFwiICsgYXJyYXlfMS5uYW1lKTtcbn07XG4vLyBTdXBwb3J0IHR5cGVkIGFycmF5cyBvZiB2YXJpb3VzIGZsYXZvcnNcbmZvciAodmFyIF9pID0gMCwgX2EgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksXG4gICAgSW50MzJBcnJheSwgVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5LCBBcnJheUJ1ZmZlcl07IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgdmFyIGFycmF5XzEgPSBfYVtfaV07XG4gICAgX2xvb3BfMShhcnJheV8xKTtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBfX3NwcmVhZEFycmF5cyA9ICh0aGlzICYmIHRoaXMuX19zcHJlYWRBcnJheXMpIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxuICAgICAgICAgICAgcltrXSA9IGFbal07XG4gICAgcmV0dXJuIHI7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5DaGVja2VyID0gZXhwb3J0cy5jcmVhdGVDaGVja2VycyA9IHZvaWQgMDtcbnZhciB0eXBlc18xID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG52YXIgdXRpbF8xID0gcmVxdWlyZShcIi4vdXRpbFwiKTtcbi8qKlxuICogRXhwb3J0IGZ1bmN0aW9ucyB1c2VkIHRvIGRlZmluZSBpbnRlcmZhY2VzLlxuICovXG52YXIgdHlwZXNfMiA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVEFycmF5XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLlRBcnJheTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRFbnVtVHlwZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5URW51bVR5cGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJURW51bUxpdGVyYWxcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVEVudW1MaXRlcmFsOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVEZ1bmNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVEZ1bmM7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUSWZhY2VcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVElmYWNlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVExpdGVyYWxcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVExpdGVyYWw7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUTmFtZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UTmFtZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRPcHRpb25hbFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UT3B0aW9uYWw7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUUGFyYW1cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVFBhcmFtOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVFBhcmFtTGlzdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5UUGFyYW1MaXN0OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVFByb3BcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVFByb3A7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUVHVwbGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVFR1cGxlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVFR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVFR5cGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUVW5pb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuVFVuaW9uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVEludGVyc2VjdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5USW50ZXJzZWN0aW9uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYXJyYXlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuYXJyYXk7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJlbnVtbGl0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLmVudW1saXQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJlbnVtdHlwZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5lbnVtdHlwZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImZ1bmNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuZnVuYzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlmYWNlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLmlmYWNlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibGl0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLmxpdDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm5hbWVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIubmFtZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm9wdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5vcHQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwYXJhbVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZXNfMi5wYXJhbTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInR1cGxlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLnR1cGxlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidW5pb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIudW5pb247IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnRlcnNlY3Rpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVzXzIuaW50ZXJzZWN0aW9uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQmFzaWNUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlc18yLkJhc2ljVHlwZTsgfSB9KTtcbnZhciB1dGlsXzIgPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVkVycm9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB1dGlsXzIuVkVycm9yOyB9IH0pO1xuLyoqXG4gKiBUYWtlcyBvbmUgb2YgbW9yZSB0eXBlIHN1aXRlcyAoZS5nLiBhIG1vZHVsZSBnZW5lcmF0ZWQgYnkgYHRzLWludGVyZmFjZS1idWlsZGVyYCksIGFuZCBjb21iaW5lc1xuICogdGhlbSBpbnRvIGEgc3VpdGUgb2YgaW50ZXJmYWNlIGNoZWNrZXJzLiBJZiBhIHR5cGUgaXMgdXNlZCBieSBuYW1lLCB0aGF0IG5hbWUgc2hvdWxkIGJlIHByZXNlbnRcbiAqIGFtb25nIHRoZSBwYXNzZWQtaW4gdHlwZSBzdWl0ZXMuXG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBtYXBzIHR5cGUgbmFtZXMgdG8gQ2hlY2tlciBvYmplY3RzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVDaGVja2VycygpIHtcbiAgICB2YXIgdHlwZVN1aXRlID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdHlwZVN1aXRlW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHZhciBmdWxsU3VpdGUgPSBPYmplY3QuYXNzaWduLmFwcGx5KE9iamVjdCwgX19zcHJlYWRBcnJheXMoW3t9LCB0eXBlc18xLmJhc2ljVHlwZXNdLCB0eXBlU3VpdGUpKTtcbiAgICB2YXIgY2hlY2tlcnMgPSB7fTtcbiAgICBmb3IgKHZhciBfYSA9IDAsIHR5cGVTdWl0ZV8xID0gdHlwZVN1aXRlOyBfYSA8IHR5cGVTdWl0ZV8xLmxlbmd0aDsgX2ErKykge1xuICAgICAgICB2YXIgc3VpdGVfMSA9IHR5cGVTdWl0ZV8xW19hXTtcbiAgICAgICAgZm9yICh2YXIgX2IgPSAwLCBfYyA9IE9iamVjdC5rZXlzKHN1aXRlXzEpOyBfYiA8IF9jLmxlbmd0aDsgX2IrKykge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBfY1tfYl07XG4gICAgICAgICAgICBjaGVja2Vyc1tuYW1lXSA9IG5ldyBDaGVja2VyKGZ1bGxTdWl0ZSwgc3VpdGVfMVtuYW1lXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoZWNrZXJzO1xufVxuZXhwb3J0cy5jcmVhdGVDaGVja2VycyA9IGNyZWF0ZUNoZWNrZXJzO1xuLyoqXG4gKiBDaGVja2VyIGltcGxlbWVudHMgdmFsaWRhdGlvbiBvZiBvYmplY3RzLCBhbmQgYWxzbyBpbmNsdWRlcyBhY2Nlc3NvcnMgdG8gdmFsaWRhdGUgbWV0aG9kIGNhbGxzLlxuICogQ2hlY2tlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgdXNpbmcgYGNyZWF0ZUNoZWNrZXJzKClgLlxuICovXG52YXIgQ2hlY2tlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBDcmVhdGUgY2hlY2tlcnMgYnkgdXNpbmcgYGNyZWF0ZUNoZWNrZXJzKClgIGZ1bmN0aW9uLlxuICAgIGZ1bmN0aW9uIENoZWNrZXIoc3VpdGUsIHR0eXBlLCBfcGF0aCkge1xuICAgICAgICBpZiAoX3BhdGggPT09IHZvaWQgMCkgeyBfcGF0aCA9ICd2YWx1ZSc7IH1cbiAgICAgICAgdGhpcy5zdWl0ZSA9IHN1aXRlO1xuICAgICAgICB0aGlzLnR0eXBlID0gdHR5cGU7XG4gICAgICAgIHRoaXMuX3BhdGggPSBfcGF0aDtcbiAgICAgICAgdGhpcy5wcm9wcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKHR0eXBlIGluc3RhbmNlb2YgdHlwZXNfMS5USWZhY2UpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0dHlwZS5wcm9wczsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgcCA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnNldChwLm5hbWUsIHAudHR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hlY2tlclBsYWluID0gdGhpcy50dHlwZS5nZXRDaGVja2VyKHN1aXRlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY2hlY2tlclN0cmljdCA9IHRoaXMudHR5cGUuZ2V0Q2hlY2tlcihzdWl0ZSwgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgcGF0aCB0byByZXBvcnQgaW4gZXJyb3JzLCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFwidmFsdWVcIi4gKEUuZy4gaWYgdGhlIENoZWNrZXIgaXMgZm9yXG4gICAgICogYSBcInBlcnNvblwiIGludGVyZmFjZSwgc2V0IHBhdGggdG8gXCJwZXJzb25cIiB0byByZXBvcnQgZS5nLiBcInBlcnNvbi5uYW1lIGlzIG5vdCBhIHN0cmluZ1wiLilcbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5zZXRSZXBvcnRlZFBhdGggPSBmdW5jdGlvbiAocGF0aCkge1xuICAgICAgICB0aGlzLl9wYXRoID0gcGF0aDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIENoZWNrIHRoYXQgdGhlIGdpdmVuIHZhbHVlIHNhdGlzZmllcyB0aGlzIGNoZWNrZXIncyB0eXBlLCBvciB0aHJvdyBFcnJvci5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5jaGVjayA9IGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gdGhpcy5fZG9DaGVjayh0aGlzLmNoZWNrZXJQbGFpbiwgdmFsdWUpOyB9O1xuICAgIC8qKlxuICAgICAqIEEgZmFzdCBjaGVjayBmb3Igd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHZhbHVlIHNhdGlzZmllcyB0aGlzIENoZWNrZXIncyB0eXBlLiBUaGlzIHJldHVybnNcbiAgICAgKiB0cnVlIG9yIGZhbHNlLCBkb2VzIG5vdCBwcm9kdWNlIGFuIGVycm9yIG1lc3NhZ2UsIGFuZCBpcyBmYXN0IGJvdGggb24gc3VjY2VzcyBhbmQgb24gZmFpbHVyZS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZXJQbGFpbih2YWx1ZSwgbmV3IHV0aWxfMS5Ob29wQ29udGV4dCgpKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gZXJyb3Igb2JqZWN0IGRlc2NyaWJpbmcgdGhlIGVycm9ycyBpZiB0aGUgZ2l2ZW4gdmFsdWUgZG9lcyBub3Qgc2F0aXNmeSB0aGlzXG4gICAgICogQ2hlY2tlcidzIHR5cGUsIG9yIG51bGwgaWYgaXQgZG9lcy5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZG9WYWxpZGF0ZSh0aGlzLmNoZWNrZXJQbGFpbiwgdmFsdWUpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQ2hlY2sgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgc2F0aXNmaWVzIHRoaXMgY2hlY2tlcidzIHR5cGUgc3RyaWN0bHkuIFRoaXMgY2hlY2tzIHRoYXQgb2JqZWN0c1xuICAgICAqIGFuZCB0dXBsZXMgaGF2ZSBubyBleHRyYSBtZW1iZXJzLiBOb3RlIHRoYXQgdGhpcyBwcmV2ZW50cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBzbyB1c3VhbGx5XG4gICAgICogYSBwbGFpbiBjaGVjaygpIGlzIG1vcmUgYXBwcm9wcmlhdGUuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuc3RyaWN0Q2hlY2sgPSBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIHRoaXMuX2RvQ2hlY2sodGhpcy5jaGVja2VyU3RyaWN0LCB2YWx1ZSk7IH07XG4gICAgLyoqXG4gICAgICogQSBmYXN0IHN0cmljdCBjaGVjayBmb3Igd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHZhbHVlIHNhdGlzZmllcyB0aGlzIENoZWNrZXIncyB0eXBlLiBSZXR1cm5zXG4gICAgICogdHJ1ZSBvciBmYWxzZSwgZG9lcyBub3QgcHJvZHVjZSBhbiBlcnJvciBtZXNzYWdlLCBhbmQgaXMgZmFzdCBib3RoIG9uIHN1Y2Nlc3MgYW5kIG9uIGZhaWx1cmUuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuc3RyaWN0VGVzdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2VyU3RyaWN0KHZhbHVlLCBuZXcgdXRpbF8xLk5vb3BDb250ZXh0KCkpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBlcnJvciBvYmplY3QgZGVzY3JpYmluZyB0aGUgZXJyb3JzIGlmIHRoZSBnaXZlbiB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoaXNcbiAgICAgKiBDaGVja2VyJ3MgdHlwZSBzdHJpY3RseSwgb3IgbnVsbCBpZiBpdCBkb2VzLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLnN0cmljdFZhbGlkYXRlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kb1ZhbGlkYXRlKHRoaXMuY2hlY2tlclN0cmljdCwgdmFsdWUpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBjaGVja2VyIGlzIGZvciBhbiBpbnRlcmZhY2UsIHJldHVybnMgYSBDaGVja2VyIGZvciB0aGUgdHlwZSByZXF1aXJlZCBmb3IgdGhlIGdpdmVuXG4gICAgICogcHJvcGVydHkgb2YgdGhpcyBpbnRlcmZhY2UuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuZ2V0UHJvcCA9IGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgIHZhciB0dHlwZSA9IHRoaXMucHJvcHMuZ2V0KHByb3ApO1xuICAgICAgICBpZiAoIXR0eXBlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUeXBlIGhhcyBubyBwcm9wZXJ0eSBcIiArIHByb3ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tlcih0aGlzLnN1aXRlLCB0dHlwZSwgdGhpcy5fcGF0aCArIFwiLlwiICsgcHJvcCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGNoZWNrZXIgaXMgZm9yIGFuIGludGVyZmFjZSwgcmV0dXJucyBhIENoZWNrZXIgZm9yIHRoZSBhcmd1bWVudC1saXN0IHJlcXVpcmVkIHRvIGNhbGxcbiAgICAgKiB0aGUgZ2l2ZW4gbWV0aG9kIG9mIHRoaXMgaW50ZXJmYWNlLiBFLmcuIGlmIHRoaXMgQ2hlY2tlciBpcyBmb3IgdGhlIGludGVyZmFjZTpcbiAgICAgKiAgICBpbnRlcmZhY2UgRm9vIHtcbiAgICAgKiAgICAgIGZpbmQoczogc3RyaW5nLCBwb3M/OiBudW1iZXIpOiBudW1iZXI7XG4gICAgICogICAgfVxuICAgICAqIFRoZW4gbWV0aG9kQXJncyhcImZpbmRcIikuY2hlY2soLi4uKSB3aWxsIHN1Y2NlZWQgZm9yIFtcImZvb1wiXSBhbmQgW1wiZm9vXCIsIDNdLCBidXQgbm90IGZvciBbMTddLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLm1ldGhvZEFyZ3MgPSBmdW5jdGlvbiAobWV0aG9kTmFtZSkge1xuICAgICAgICB2YXIgdGZ1bmMgPSB0aGlzLl9nZXRNZXRob2QobWV0aG9kTmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tlcih0aGlzLnN1aXRlLCB0ZnVuYy5wYXJhbUxpc3QpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBjaGVja2VyIGlzIGZvciBhbiBpbnRlcmZhY2UsIHJldHVybnMgYSBDaGVja2VyIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBnaXZlblxuICAgICAqIG1ldGhvZCBvZiB0aGlzIGludGVyZmFjZS5cbiAgICAgKi9cbiAgICBDaGVja2VyLnByb3RvdHlwZS5tZXRob2RSZXN1bHQgPSBmdW5jdGlvbiAobWV0aG9kTmFtZSkge1xuICAgICAgICB2YXIgdGZ1bmMgPSB0aGlzLl9nZXRNZXRob2QobWV0aG9kTmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tlcih0aGlzLnN1aXRlLCB0ZnVuYy5yZXN1bHQpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBjaGVja2VyIGlzIGZvciBhIGZ1bmN0aW9uLCByZXR1cm5zIGEgQ2hlY2tlciBmb3IgaXRzIGFyZ3VtZW50LWxpc3QuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuZ2V0QXJncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCEodGhpcy50dHlwZSBpbnN0YW5jZW9mIHR5cGVzXzEuVEZ1bmMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnZXRBcmdzKCkgYXBwbGllZCB0byBub24tZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja2VyKHRoaXMuc3VpdGUsIHRoaXMudHR5cGUucGFyYW1MaXN0KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIElmIHRoaXMgY2hlY2tlciBpcyBmb3IgYSBmdW5jdGlvbiwgcmV0dXJucyBhIENoZWNrZXIgZm9yIGl0cyByZXN1bHQuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuZ2V0UmVzdWx0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoISh0aGlzLnR0eXBlIGluc3RhbmNlb2YgdHlwZXNfMS5URnVuYykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdldFJlc3VsdCgpIGFwcGxpZWQgdG8gbm9uLWZ1bmN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tlcih0aGlzLnN1aXRlLCB0aGlzLnR0eXBlLnJlc3VsdCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIHR5cGUgZm9yIHdoaWNoIHRoaXMgaXMgYSBjaGVja2VyLlxuICAgICAqL1xuICAgIENoZWNrZXIucHJvdG90eXBlLmdldFR5cGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR0eXBlO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIGNoZWNrKCkgYW5kIHN0cmljdENoZWNrKCkuXG4gICAgICovXG4gICAgQ2hlY2tlci5wcm90b3R5cGUuX2RvQ2hlY2sgPSBmdW5jdGlvbiAoY2hlY2tlckZ1bmMsIHZhbHVlKSB7XG4gICAgICAgIHZhciBub29wQ3R4ID0gbmV3IHV0aWxfMS5Ob29wQ29udGV4dCgpO1xuICAgICAgICBpZiAoIWNoZWNrZXJGdW5jKHZhbHVlLCBub29wQ3R4KSkge1xuICAgICAgICAgICAgdmFyIGRldGFpbEN0eCA9IG5ldyB1dGlsXzEuRGV0YWlsQ29udGV4dCgpO1xuICAgICAgICAgICAgY2hlY2tlckZ1bmModmFsdWUsIGRldGFpbEN0eCk7XG4gICAgICAgICAgICB0aHJvdyBkZXRhaWxDdHguZ2V0RXJyb3IodGhpcy5fcGF0aCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIENoZWNrZXIucHJvdG90eXBlLl9kb1ZhbGlkYXRlID0gZnVuY3Rpb24gKGNoZWNrZXJGdW5jLCB2YWx1ZSkge1xuICAgICAgICB2YXIgbm9vcEN0eCA9IG5ldyB1dGlsXzEuTm9vcENvbnRleHQoKTtcbiAgICAgICAgaWYgKGNoZWNrZXJGdW5jKHZhbHVlLCBub29wQ3R4KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRldGFpbEN0eCA9IG5ldyB1dGlsXzEuRGV0YWlsQ29udGV4dCgpO1xuICAgICAgICBjaGVja2VyRnVuYyh2YWx1ZSwgZGV0YWlsQ3R4KTtcbiAgICAgICAgcmV0dXJuIGRldGFpbEN0eC5nZXRFcnJvckRldGFpbCh0aGlzLl9wYXRoKTtcbiAgICB9O1xuICAgIENoZWNrZXIucHJvdG90eXBlLl9nZXRNZXRob2QgPSBmdW5jdGlvbiAobWV0aG9kTmFtZSkge1xuICAgICAgICB2YXIgdHR5cGUgPSB0aGlzLnByb3BzLmdldChtZXRob2ROYW1lKTtcbiAgICAgICAgaWYgKCF0dHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZSBoYXMgbm8gcHJvcGVydHkgXCIgKyBtZXRob2ROYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISh0dHlwZSBpbnN0YW5jZW9mIHR5cGVzXzEuVEZ1bmMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm9wZXJ0eSBcIiArIG1ldGhvZE5hbWUgKyBcIiBpcyBub3QgYSBtZXRob2RcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHR0eXBlO1xuICAgIH07XG4gICAgcmV0dXJuIENoZWNrZXI7XG59KCkpO1xuZXhwb3J0cy5DaGVja2VyID0gQ2hlY2tlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkxpbmVzQW5kQ29sdW1ucyA9IHZvaWQgMDtcbnZhciBMRiA9ICdcXG4nO1xudmFyIENSID0gJ1xccic7XG52YXIgTGluZXNBbmRDb2x1bW5zID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExpbmVzQW5kQ29sdW1ucyhzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgICAgIHZhciBvZmZzZXRzID0gWzBdO1xuICAgICAgICBmb3IgKHZhciBvZmZzZXQgPSAwOyBvZmZzZXQgPCBzdHJpbmcubGVuZ3RoOykge1xuICAgICAgICAgICAgc3dpdGNoIChzdHJpbmdbb2Zmc2V0XSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTEY6XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBMRi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHVzaChvZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENSOlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQ1IubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nW29mZnNldF0gPT09IExGKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gTEYubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHVzaChvZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQrKztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXRzID0gb2Zmc2V0cztcbiAgICB9XG4gICAgTGluZXNBbmRDb2x1bW5zLnByb3RvdHlwZS5sb2NhdGlvbkZvckluZGV4ID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLnN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBsaW5lID0gMDtcbiAgICAgICAgdmFyIG9mZnNldHMgPSB0aGlzLm9mZnNldHM7XG4gICAgICAgIHdoaWxlIChvZmZzZXRzW2xpbmUgKyAxXSA8PSBpbmRleCkge1xuICAgICAgICAgICAgbGluZSsrO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb2x1bW4gPSBpbmRleCAtIG9mZnNldHNbbGluZV07XG4gICAgICAgIHJldHVybiB7IGxpbmU6IGxpbmUsIGNvbHVtbjogY29sdW1uIH07XG4gICAgfTtcbiAgICBMaW5lc0FuZENvbHVtbnMucHJvdG90eXBlLmluZGV4Rm9yTG9jYXRpb24gPSBmdW5jdGlvbiAobG9jYXRpb24pIHtcbiAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lLCBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW47XG4gICAgICAgIGlmIChsaW5lIDwgMCB8fCBsaW5lID49IHRoaXMub2Zmc2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2x1bW4gPCAwIHx8IGNvbHVtbiA+IHRoaXMubGVuZ3RoT2ZMaW5lKGxpbmUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vZmZzZXRzW2xpbmVdICsgY29sdW1uO1xuICAgIH07XG4gICAgTGluZXNBbmRDb2x1bW5zLnByb3RvdHlwZS5sZW5ndGhPZkxpbmUgPSBmdW5jdGlvbiAobGluZSkge1xuICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5vZmZzZXRzW2xpbmVdO1xuICAgICAgICB2YXIgbmV4dE9mZnNldCA9IGxpbmUgPT09IHRoaXMub2Zmc2V0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IHRoaXMuc3RyaW5nLmxlbmd0aFxuICAgICAgICAgICAgOiB0aGlzLm9mZnNldHNbbGluZSArIDFdO1xuICAgICAgICByZXR1cm4gbmV4dE9mZnNldCAtIG9mZnNldDtcbiAgICB9O1xuICAgIHJldHVybiBMaW5lc0FuZENvbHVtbnM7XG59KCkpO1xuZXhwb3J0cy5MaW5lc0FuZENvbHVtbnMgPSBMaW5lc0FuZENvbHVtbnM7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExpbmVzQW5kQ29sdW1ucztcbiIsICIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSwgWWFob28hIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xudmFyIFJFQUNUX1NUQVRJQ1MgPSB7XG4gIGNoaWxkQ29udGV4dFR5cGVzOiB0cnVlLFxuICBjb250ZXh0VHlwZTogdHJ1ZSxcbiAgY29udGV4dFR5cGVzOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBnZXREZWZhdWx0UHJvcHM6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiB0cnVlLFxuICBtaXhpbnM6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBLTk9XTl9TVEFUSUNTID0ge1xuICBuYW1lOiB0cnVlLFxuICBsZW5ndGg6IHRydWUsXG4gIHByb3RvdHlwZTogdHJ1ZSxcbiAgY2FsbGVyOiB0cnVlLFxuICBjYWxsZWU6IHRydWUsXG4gIGFyZ3VtZW50czogdHJ1ZSxcbiAgYXJpdHk6IHRydWVcbn07XG52YXIgRk9SV0FSRF9SRUZfU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgcmVuZGVyOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWVcbn07XG52YXIgTUVNT19TVEFUSUNTID0ge1xuICAnJCR0eXBlb2YnOiB0cnVlLFxuICBjb21wYXJlOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgVFlQRV9TVEFUSUNTID0ge307XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5Gb3J3YXJkUmVmXSA9IEZPUldBUkRfUkVGX1NUQVRJQ1M7XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5NZW1vXSA9IE1FTU9fU1RBVElDUztcblxuZnVuY3Rpb24gZ2V0U3RhdGljcyhjb21wb25lbnQpIHtcbiAgLy8gUmVhY3QgdjE2LjExIGFuZCBiZWxvd1xuICBpZiAocmVhY3RJcy5pc01lbW8oY29tcG9uZW50KSkge1xuICAgIHJldHVybiBNRU1PX1NUQVRJQ1M7XG4gIH0gLy8gUmVhY3QgdjE2LjEyIGFuZCBhYm92ZVxuXG5cbiAgcmV0dXJuIFRZUEVfU1RBVElDU1tjb21wb25lbnRbJyQkdHlwZW9mJ11dIHx8IFJFQUNUX1NUQVRJQ1M7XG59XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIG9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5mdW5jdGlvbiBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIHNvdXJjZUNvbXBvbmVudCwgYmxhY2tsaXN0KSB7XG4gIGlmICh0eXBlb2Ygc291cmNlQ29tcG9uZW50ICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGRvbid0IGhvaXN0IG92ZXIgc3RyaW5nIChodG1sKSBjb21wb25lbnRzXG4gICAgaWYgKG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgdmFyIGluaGVyaXRlZENvbXBvbmVudCA9IGdldFByb3RvdHlwZU9mKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICAgIGlmIChpbmhlcml0ZWRDb21wb25lbnQgJiYgaW5oZXJpdGVkQ29tcG9uZW50ICE9PSBvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgICAgaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBpbmhlcml0ZWRDb21wb25lbnQsIGJsYWNrbGlzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICBpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICBrZXlzID0ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZUNvbXBvbmVudCkpO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXRTdGF0aWNzID0gZ2V0U3RhdGljcyh0YXJnZXRDb21wb25lbnQpO1xuICAgIHZhciBzb3VyY2VTdGF0aWNzID0gZ2V0U3RhdGljcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKCFLTk9XTl9TVEFUSUNTW2tleV0gJiYgIShibGFja2xpc3QgJiYgYmxhY2tsaXN0W2tleV0pICYmICEoc291cmNlU3RhdGljcyAmJiBzb3VyY2VTdGF0aWNzW2tleV0pICYmICEodGFyZ2V0U3RhdGljcyAmJiB0YXJnZXRTdGF0aWNzW2tleV0pKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZUNvbXBvbmVudCwga2V5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEF2b2lkIGZhaWx1cmVzIGZyb20gcmVhZC1vbmx5IHByb3BlcnRpZXNcbiAgICAgICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXRDb21wb25lbnQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldENvbXBvbmVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBob2lzdE5vblJlYWN0U3RhdGljcztcbiIsICIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwgIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIiwgIm1vZHVsZS5leHBvcnRzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuIiwgIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gcmVxdWlyZSgnLi9saWIvaGFzJyk7XG5cbiAgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24odGV4dCkge1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyB0ZXh0O1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHsgLyoqLyB9XG4gIH07XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIHZhbHVlcyBtYXRjaCB3aXRoIHRoZSB0eXBlIHNwZWNzLlxuICogRXJyb3IgbWVzc2FnZXMgYXJlIG1lbW9yaXplZCBhbmQgd2lsbCBvbmx5IGJlIHNob3duIG9uY2UuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHR5cGVTcGVjcyBNYXAgb2YgbmFtZSB0byBhIFJlYWN0UHJvcFR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSB2YWx1ZXMgUnVudGltZSB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHR5cGUtY2hlY2tlZFxuICogQHBhcmFtIHtzdHJpbmd9IGxvY2F0aW9uIGUuZy4gXCJwcm9wXCIsIFwiY29udGV4dFwiLCBcImNoaWxkIGNvbnRleHRcIlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbXBvbmVudE5hbWUgTmFtZSBvZiB0aGUgY29tcG9uZW50IGZvciBlcnJvciBtZXNzYWdlcy5cbiAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBnZXRTdGFjayBSZXR1cm5zIHRoZSBjb21wb25lbnQgc3RhY2suXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGdldFN0YWNrKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKFxuICAgICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgK1xuICAgICAgICAgICAgICAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICtcbiAgICAgICAgICAgICAgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXJyb3IgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciA9IGV4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciAmJiAhKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJyArXG4gICAgICAgICAgICBsb2NhdGlvbiArICcgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICcgKyB0eXBlb2YgZXJyb3IgKyAnLiAnICtcbiAgICAgICAgICAgICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICtcbiAgICAgICAgICAgICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgK1xuICAgICAgICAgICAgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yLm1lc3NhZ2VdID0gdHJ1ZTtcblxuICAgICAgICAgIHZhciBzdGFjayA9IGdldFN0YWNrID8gZ2V0U3RhY2soKSA6ICcnO1xuXG4gICAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICAgJ0ZhaWxlZCAnICsgbG9jYXRpb24gKyAnIHR5cGU6ICcgKyBlcnJvci5tZXNzYWdlICsgKHN0YWNrICE9IG51bGwgPyBzdGFjayA6ICcnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNldHMgd2FybmluZyBjYWNoZSB3aGVuIHRlc3RpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGUgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNoZWNrUHJvcFR5cGVzO1xuIiwgIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vbGliL2hhcycpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24odGV4dCkge1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyB0ZXh0O1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGwoKSB7XG4gIHJldHVybiBudWxsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gIC8qIGdsb2JhbCBTeW1ib2wgKi9cbiAgdmFyIElURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xuICB2YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlcmF0b3IgbWV0aG9kIGZ1bmN0aW9uIGNvbnRhaW5lZCBvbiB0aGUgaXRlcmFibGUgb2JqZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgaXRlcmFibGUgYXMgY29udGV4dDpcbiAgICpcbiAgICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAgICogICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAqICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChteUl0ZXJhYmxlKTtcbiAgICogICAgICAgLi4uXG4gICAqICAgICB9XG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICAgKiBAcmV0dXJuIHs/ZnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IG1heWJlSXRlcmFibGUgJiYgKElURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF0pO1xuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gICAqIHN1cHBsaWVkIHRvIFJlYWN0IGNvbXBvbmVudHMuIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAgICogICB2YXIgTXlBcnRpY2xlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAgICogICAgICAgZGVzY3JpcHRpb246IFByb3BzLnN0cmluZyxcbiAgICpcbiAgICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICAgKiAgICAgICBjYXRlZ29yeTogUHJvcHMub25lT2YoWydOZXdzJywnUGhvdG9zJ10pLmlzUmVxdWlyZWQsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICAgKiAgICAgICBkaWFsb2c6IFByb3BzLmluc3RhbmNlT2YoRGlhbG9nKS5pc1JlcXVpcmVkXG4gICAqICAgICB9LFxuICAgKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICAgKlxuICAgKiAgIHR5cGUgOj0gYXJyYXl8Ym9vbHxmdW5jfG9iamVjdHxudW1iZXJ8c3RyaW5nfG9uZU9mKFsuLi5dKXxpbnN0YW5jZU9mKC4uLilcbiAgICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gICAqXG4gICAqIEVhY2ggYW5kIGV2ZXJ5IGRlY2xhcmF0aW9uIHByb2R1Y2VzIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzaWduYXR1cmUuIFRoaXNcbiAgICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiAgdmFyIE15TGluayA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIG9yIFVSSSBwcm9wIG5hbWVkIFwiaHJlZlwiLlxuICAgKiAgICAgIGhyZWY6IGZ1bmN0aW9uKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICogICAgICAgIGlmIChwcm9wVmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcFZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgKiAgICAgICAgICAgICEocHJvcFZhbHVlIGluc3RhbmNlb2YgVVJJKSkge1xuICAgKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgKiAgICAgICAgICAgICdFeHBlY3RlZCBhIHN0cmluZyBvciBhbiBVUkkgZm9yICcgKyBwcm9wTmFtZSArICcgaW4gJyArXG4gICAqICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgKiAgICAgICAgICApO1xuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgcmVuZGVyOiBmdW5jdGlvbigpIHsuLi59XG4gICAqICB9KTtcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuXG4gIHZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2FycmF5JyksXG4gICAgYmlnaW50OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYmlnaW50JyksXG4gICAgYm9vbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Jvb2xlYW4nKSxcbiAgICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgICBudW1iZXI6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdudW1iZXInKSxcbiAgICBvYmplY3Q6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdvYmplY3QnKSxcbiAgICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcbiAgICBzeW1ib2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzeW1ib2wnKSxcblxuICAgIGFueTogY3JlYXRlQW55VHlwZUNoZWNrZXIoKSxcbiAgICBhcnJheU9mOiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIsXG4gICAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gICAgZWxlbWVudFR5cGU6IGNyZWF0ZUVsZW1lbnRUeXBlVHlwZUNoZWNrZXIoKSxcbiAgICBpbnN0YW5jZU9mOiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyLFxuICAgIG5vZGU6IGNyZWF0ZU5vZGVDaGVja2VyKCksXG4gICAgb2JqZWN0T2Y6IGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIsXG4gICAgb25lT2Y6IGNyZWF0ZUVudW1UeXBlQ2hlY2tlcixcbiAgICBvbmVPZlR5cGU6IGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIsXG4gICAgc2hhcGU6IGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIsXG4gICAgZXhhY3Q6IGNyZWF0ZVN0cmljdFNoYXBlVHlwZUNoZWNrZXIsXG4gIH07XG5cbiAgLyoqXG4gICAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG4gICAqL1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSovXG4gIGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgIC8vIFN0ZXBzIDEtNSwgNy0xMFxuICAgICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgfVxuICB9XG4gIC8qZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuXG4gIC8qKlxuICAgKiBXZSB1c2UgYW4gRXJyb3ItbGlrZSBvYmplY3QgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYXMgcGVvcGxlIG1heSBjYWxsXG4gICAqIFByb3BUeXBlcyBkaXJlY3RseSBhbmQgaW5zcGVjdCB0aGVpciBvdXRwdXQuIEhvd2V2ZXIsIHdlIGRvbid0IHVzZSByZWFsXG4gICAqIEVycm9ycyBhbnltb3JlLiBXZSBkb24ndCBpbnNwZWN0IHRoZWlyIHN0YWNrIGFueXdheSwgYW5kIGNyZWF0aW5nIHRoZW1cbiAgICogaXMgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgaWYgdGhleSBhcmUgY3JlYXRlZCB0b28gb2Z0ZW4sIHN1Y2ggYXMgd2hhdFxuICAgKiBoYXBwZW5zIGluIG9uZU9mVHlwZSgpIGZvciBhbnkgdHlwZSBiZWZvcmUgdGhlIG9uZSB0aGF0IG1hdGNoZWQuXG4gICAqL1xuICBmdW5jdGlvbiBQcm9wVHlwZUVycm9yKG1lc3NhZ2UsIGRhdGEpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuZGF0YSA9IGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnID8gZGF0YToge307XG4gICAgdGhpcy5zdGFjayA9ICcnO1xuICB9XG4gIC8vIE1ha2UgYGluc3RhbmNlb2YgRXJyb3JgIHN0aWxsIHdvcmsgZm9yIHJldHVybmVkIGVycm9ycy5cbiAgUHJvcFR5cGVFcnJvci5wcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIG1hbnVhbFByb3BUeXBlQ2FsbENhY2hlID0ge307XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPSAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja1R5cGUoaXNSZXF1aXJlZCwgcHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIGNvbXBvbmVudE5hbWUgPSBjb21wb25lbnROYW1lIHx8IEFOT05ZTU9VUztcbiAgICAgIHByb3BGdWxsTmFtZSA9IHByb3BGdWxsTmFtZSB8fCBwcm9wTmFtZTtcblxuICAgICAgaWYgKHNlY3JldCAhPT0gUmVhY3RQcm9wVHlwZXNTZWNyZXQpIHtcbiAgICAgICAgaWYgKHRocm93T25EaXJlY3RBY2Nlc3MpIHtcbiAgICAgICAgICAvLyBOZXcgYmVoYXZpb3Igb25seSBmb3IgdXNlcnMgb2YgYHByb3AtdHlwZXNgIHBhY2thZ2VcbiAgICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgJ1VzZSBgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKClgIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAgICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICAgICAgICApO1xuICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIC8vIE9sZCBiZWhhdmlvciBmb3IgcGVvcGxlIHVzaW5nIFJlYWN0LlByb3BUeXBlc1xuICAgICAgICAgIHZhciBjYWNoZUtleSA9IGNvbXBvbmVudE5hbWUgKyAnOicgKyBwcm9wTmFtZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGVbY2FjaGVLZXldICYmXG4gICAgICAgICAgICAvLyBBdm9pZCBzcGFtbWluZyB0aGUgY29uc29sZSBiZWNhdXNlIHRoZXkgYXJlIG9mdGVuIG5vdCBhY3Rpb25hYmxlIGV4Y2VwdCBmb3IgbGliIGF1dGhvcnNcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50IDwgM1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcHJpbnRXYXJuaW5nKFxuICAgICAgICAgICAgICAnWW91IGFyZSBtYW51YWxseSBjYWxsaW5nIGEgUmVhY3QuUHJvcFR5cGVzIHZhbGlkYXRpb24gJyArXG4gICAgICAgICAgICAgICdmdW5jdGlvbiBmb3IgdGhlIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgcHJvcCBvbiBgJyArIGNvbXBvbmVudE5hbWUgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKFxuICAgICAgICAgICdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJyksXG4gICAgICAgICAge2V4cGVjdGVkVHlwZTogZXhwZWN0ZWRUeXBlfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBleHBlY3RlZFR5cGVzID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5T2ZUeXBlQ2hlY2tlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgICB2YXIgY2hlY2tlclJlc3VsdCA9IGNoZWNrZXIocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChjaGVja2VyUmVzdWx0ID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hlY2tlclJlc3VsdC5kYXRhICYmIGhhcyhjaGVja2VyUmVzdWx0LmRhdGEsICdleHBlY3RlZFR5cGUnKSkge1xuICAgICAgICAgIGV4cGVjdGVkVHlwZXMucHVzaChjaGVja2VyUmVzdWx0LmRhdGEuZXhwZWN0ZWRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIGV4cGVjdGVkVHlwZXNNZXNzYWdlID0gKGV4cGVjdGVkVHlwZXMubGVuZ3RoID4gMCkgPyAnLCBleHBlY3RlZCBvbmUgb2YgdHlwZSBbJyArIGV4cGVjdGVkVHlwZXMuam9pbignLCAnKSArICddJzogJyc7XG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgJyArIGV4cGVjdGVkVHlwZXNNZXNzYWdlICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVOb2RlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghaXNOb2RlKHByb3BzW3Byb3BOYW1lXSkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBzdXBwbGllZCB0byAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBSZWFjdE5vZGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZhbGlkVmFsaWRhdG9yRXJyb3IoY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwga2V5LCB0eXBlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKFxuICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXkgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGUgKyAnYC4nXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIGNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbGlkYXRvckVycm9yKGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIGtleSwgZ2V0UHJlY2lzZVR5cGUoY2hlY2tlcikpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBlcnJvciA9IGNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVN0cmljdFNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgYWxsIGtleXMgaW4gY2FzZSBzb21lIGFyZSByZXF1aXJlZCBidXQgbWlzc2luZyBmcm9tIHByb3BzLlxuICAgICAgdmFyIGFsbEtleXMgPSBhc3NpZ24oe30sIHByb3BzW3Byb3BOYW1lXSwgc2hhcGVUeXBlcyk7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gYWxsS2V5cykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IHNoYXBlVHlwZXNba2V5XTtcbiAgICAgICAgaWYgKGhhcyhzaGFwZVR5cGVzLCBrZXkpICYmIHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIGludmFsaWRWYWxpZGF0b3JFcnJvcihjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBrZXksIGdldFByZWNpc2VUeXBlKGNoZWNrZXIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyBKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhzaGFwZVR5cGVzKSwgbnVsbCwgJyAgJylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHZhciBlcnJvciA9IGNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNOb2RlKHByb3BWYWx1ZSkge1xuICAgIHN3aXRjaCAodHlwZW9mIHByb3BWYWx1ZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gIXByb3BWYWx1ZTtcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gcHJvcFZhbHVlLmV2ZXJ5KGlzTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BWYWx1ZSA9PT0gbnVsbCB8fCBpc1ZhbGlkRWxlbWVudChwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4ocHJvcFZhbHVlKTtcbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwocHJvcFZhbHVlKTtcbiAgICAgICAgICB2YXIgc3RlcDtcbiAgICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gcHJvcFZhbHVlLmVudHJpZXMpIHtcbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgaWYgKCFpc05vZGUoc3RlcC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSXRlcmF0b3Igd2lsbCBwcm92aWRlIGVudHJ5IFtrLHZdIHR1cGxlcyByYXRoZXIgdGhhbiB2YWx1ZXMuXG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIHZhciBlbnRyeSA9IHN0ZXAudmFsdWU7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGlmICghaXNOb2RlKGVudHJ5WzFdKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc1N5bWJvbChwcm9wVHlwZSwgcHJvcFZhbHVlKSB7XG4gICAgLy8gTmF0aXZlIFN5bWJvbC5cbiAgICBpZiAocHJvcFR5cGUgPT09ICdzeW1ib2wnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBmYWxzeSB2YWx1ZSBjYW4ndCBiZSBhIFN5bWJvbFxuICAgIGlmICghcHJvcFZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gMTkuNC4zLjUgU3ltYm9sLnByb3RvdHlwZVtAQHRvU3RyaW5nVGFnXSA9PT0gJ1N5bWJvbCdcbiAgICBpZiAocHJvcFZhbHVlWydAQHRvU3RyaW5nVGFnJ10gPT09ICdTeW1ib2wnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBmb3Igbm9uLXNwZWMgY29tcGxpYW50IFN5bWJvbHMgd2hpY2ggYXJlIHBvbHlmaWxsZWQuXG4gICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgcHJvcFZhbHVlIGluc3RhbmNlb2YgU3ltYm9sKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBFcXVpdmFsZW50IG9mIGB0eXBlb2ZgIGJ1dCB3aXRoIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGFycmF5IGFuZCByZWdleHAuXG4gIGZ1bmN0aW9uIGdldFByb3BUeXBlKHByb3BWYWx1ZSkge1xuICAgIHZhciBwcm9wVHlwZSA9IHR5cGVvZiBwcm9wVmFsdWU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgcmV0dXJuICdhcnJheSc7XG4gICAgfVxuICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIC8vIE9sZCB3ZWJraXRzIChhdCBsZWFzdCB1bnRpbCBBbmRyb2lkIDQuMCkgcmV0dXJuICdmdW5jdGlvbicgcmF0aGVyIHRoYW5cbiAgICAgIC8vICdvYmplY3QnIGZvciB0eXBlb2YgYSBSZWdFeHAuIFdlJ2xsIG5vcm1hbGl6ZSB0aGlzIGhlcmUgc28gdGhhdCAvYmxhL1xuICAgICAgLy8gcGFzc2VzIFByb3BUeXBlcy5vYmplY3QuXG4gICAgICByZXR1cm4gJ29iamVjdCc7XG4gICAgfVxuICAgIGlmIChpc1N5bWJvbChwcm9wVHlwZSwgcHJvcFZhbHVlKSkge1xuICAgICAgcmV0dXJuICdzeW1ib2wnO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFR5cGU7XG4gIH1cblxuICAvLyBUaGlzIGhhbmRsZXMgbW9yZSB0eXBlcyB0aGFuIGBnZXRQcm9wVHlwZWAuIE9ubHkgdXNlZCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gIC8vIFNlZSBgY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXJgLlxuICBmdW5jdGlvbiBnZXRQcmVjaXNlVHlwZShwcm9wVmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHByb3BWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvcFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gJycgKyBwcm9wVmFsdWU7XG4gICAgfVxuICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgaWYgKHByb3BUeXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuICdkYXRlJztcbiAgICAgIH0gZWxzZSBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJldHVybiAncmVnZXhwJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gUmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHBvc3RmaXhlZCB0byBhIHdhcm5pbmcgYWJvdXQgYW4gaW52YWxpZCB0eXBlLlxuICAvLyBGb3IgZXhhbXBsZSwgXCJ1bmRlZmluZWRcIiBvciBcIm9mIHR5cGUgYXJyYXlcIlxuICBmdW5jdGlvbiBnZXRQb3N0Zml4Rm9yVHlwZVdhcm5pbmcodmFsdWUpIHtcbiAgICB2YXIgdHlwZSA9IGdldFByZWNpc2VUeXBlKHZhbHVlKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHJldHVybiAnYW4gJyArIHR5cGU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgY2FzZSAncmVnZXhwJzpcbiAgICAgICAgcmV0dXJuICdhICcgKyB0eXBlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0dXJucyBjbGFzcyBuYW1lIG9mIHRoZSBvYmplY3QsIGlmIGFueS5cbiAgZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKHByb3BWYWx1ZSkge1xuICAgIGlmICghcHJvcFZhbHVlLmNvbnN0cnVjdG9yIHx8ICFwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZSkge1xuICAgICAgcmV0dXJuIEFOT05ZTU9VUztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BWYWx1ZS5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgUmVhY3RQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMgPSBjaGVja1Byb3BUeXBlcztcbiAgUmVhY3RQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGUgPSBjaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZTtcbiAgUmVhY3RQcm9wVHlwZXMuUHJvcFR5cGVzID0gUmVhY3RQcm9wVHlwZXM7XG5cbiAgcmV0dXJuIFJlYWN0UHJvcFR5cGVzO1xufTtcbiIsICIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBkZXZlbG9wbWVudCBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICB2YXIgdGhyb3dPbkRpcmVjdEFjY2VzcyA9IHRydWU7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFR5cGVDaGVja2VycycpKFJlYWN0SXMuaXNFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcycpKCk7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbiAgICB9O1xyXG59KSgpO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRW1wdHlCVHJlZSA9IGV4cG9ydHMuYXNTZXQgPSBleHBvcnRzLnNpbXBsZUNvbXBhcmF0b3IgPSBleHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gdm9pZCAwO1xyXG4vKipcclxuICogQ29tcGFyZXMgRGVmYXVsdENvbXBhcmFibGVzIHRvIGZvcm0gYSBzdHJpY3QgcGFydGlhbCBvcmRlcmluZy5cclxuICpcclxuICogSGFuZGxlcyArLy0wIGFuZCBOYU4gbGlrZSBNYXA6IE5hTiBpcyBlcXVhbCB0byBOYU4sIGFuZCAtMCBpcyBlcXVhbCB0byArMC5cclxuICpcclxuICogQXJyYXlzIGFyZSBjb21wYXJlZCB1c2luZyAnPCcgYW5kICc+Jywgd2hpY2ggbWF5IGNhdXNlIHVuZXhwZWN0ZWQgZXF1YWxpdHk6XHJcbiAqIGZvciBleGFtcGxlIFsxXSB3aWxsIGJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gWycxJ10uXHJcbiAqXHJcbiAqIFR3byBvYmplY3RzIHdpdGggZXF1YWwgdmFsdWVPZiBjb21wYXJlIHRoZSBzYW1lLCBidXQgY29tcGFyZSB1bmVxdWFsIHRvXHJcbiAqIHByaW1pdGl2ZXMgdGhhdCBoYXZlIHRoZSBzYW1lIHZhbHVlLlxyXG4gKi9cclxuZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IoYSwgYikge1xyXG4gICAgLy8gU3BlY2lhbCBjYXNlIGZpbml0ZSBudW1iZXJzIGZpcnN0IGZvciBwZXJmb3JtYW5jZS5cclxuICAgIC8vIE5vdGUgdGhhdCB0aGUgdHJpY2sgb2YgdXNpbmcgJ2EgLSBiJyBhbmQgY2hlY2tpbmcgZm9yIE5hTiB0byBkZXRlY3Qgbm9uLW51bWJlcnNcclxuICAgIC8vIGRvZXMgbm90IHdvcmsgaWYgdGhlIHN0cmluZ3MgYXJlIG51bWVyaWMgKGV4OiBcIjVcIikuIFRoaXMgd291bGQgbGVhZGluZyBtb3N0IFxyXG4gICAgLy8gY29tcGFyaXNvbiBmdW5jdGlvbnMgdXNpbmcgdGhhdCBhcHByb2FjaCB0byBmYWlsIHRvIGhhdmUgdHJhbnNpdGl2aXR5LlxyXG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShhKSAmJiBOdW1iZXIuaXNGaW5pdGUoYikpIHtcclxuICAgICAgICByZXR1cm4gYSAtIGI7XHJcbiAgICB9XHJcbiAgICAvLyBUaGUgZGVmYXVsdCA8IGFuZCA+IG9wZXJhdG9ycyBhcmUgbm90IHRvdGFsbHkgb3JkZXJlZC4gVG8gYWxsb3cgdHlwZXMgdG8gYmUgbWl4ZWRcclxuICAgIC8vIGluIGEgc2luZ2xlIGNvbGxlY3Rpb24sIGNvbXBhcmUgdHlwZXMgYW5kIG9yZGVyIHZhbHVlcyBvZiBkaWZmZXJlbnQgdHlwZXMgYnkgdHlwZS5cclxuICAgIHZhciB0YSA9IHR5cGVvZiBhO1xyXG4gICAgdmFyIHRiID0gdHlwZW9mIGI7XHJcbiAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRhIDwgdGIgPyAtMSA6IDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGEgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgLy8gc3RhbmRhcmRpemVkIEphdmFTY3JpcHQgYnVnOiBudWxsIGlzIG5vdCBhbiBvYmplY3QsIGJ1dCB0eXBlb2Ygc2F5cyBpdCBpc1xyXG4gICAgICAgIGlmIChhID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gYiA9PT0gbnVsbCA/IDAgOiAtMTtcclxuICAgICAgICBlbHNlIGlmIChiID09PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICBhID0gYS52YWx1ZU9mKCk7XHJcbiAgICAgICAgYiA9IGIudmFsdWVPZigpO1xyXG4gICAgICAgIHRhID0gdHlwZW9mIGE7XHJcbiAgICAgICAgdGIgPSB0eXBlb2YgYjtcclxuICAgICAgICAvLyBEZWFsIHdpdGggdGhlIHR3byB2YWx1ZU9mKClzIHByb2R1Y2luZyBkaWZmZXJlbnQgdHlwZXNcclxuICAgICAgICBpZiAodGEgIT09IHRiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0YSA8IHRiID8gLTEgOiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGEgYW5kIGIgYXJlIG5vdyB0aGUgc2FtZSB0eXBlLCBhbmQgd2lsbCBiZSBhIG51bWJlciwgc3RyaW5nIG9yIGFycmF5IFxyXG4gICAgLy8gKHdoaWNoIHdlIGFzc3VtZSBob2xkcyBudW1iZXJzIG9yIHN0cmluZ3MpLCBvciBzb21ldGhpbmcgdW5zdXBwb3J0ZWQuXHJcbiAgICBpZiAoYSA8IGIpXHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgaWYgKGEgPiBiKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgaWYgKGEgPT09IGIpXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAvLyBPcmRlciBOYU4gbGVzcyB0aGFuIG90aGVyIG51bWJlcnNcclxuICAgIGlmIChOdW1iZXIuaXNOYU4oYSkpXHJcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihiKSA/IDAgOiAtMTtcclxuICAgIGVsc2UgaWYgKE51bWJlci5pc05hTihiKSlcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIC8vIFRoaXMgY291bGQgYmUgdHdvIG9iamVjdHMgKGUuZy4gWzddIGFuZCBbJzcnXSkgdGhhdCBhcmVuJ3Qgb3JkZXJlZFxyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgPyAwIDogTnVtYmVyLk5hTjtcclxufVxyXG5leHBvcnRzLmRlZmF1bHRDb21wYXJhdG9yID0gZGVmYXVsdENvbXBhcmF0b3I7XHJcbjtcclxuZnVuY3Rpb24gc2ltcGxlQ29tcGFyYXRvcihhLCBiKSB7XHJcbiAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA8IGIgPyAtMSA6IDA7XHJcbn1cclxuZXhwb3J0cy5zaW1wbGVDb21wYXJhdG9yID0gc2ltcGxlQ29tcGFyYXRvcjtcclxuO1xyXG4vKipcclxuICogQSByZWFzb25hYmx5IGZhc3QgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMgd2l0aCBhIHBvd2VyZnVsIEFQSS5cclxuICogTGFyZ2VseSBjb21wYXRpYmxlIHdpdGggdGhlIHN0YW5kYXJkIE1hcC4gQlRyZWUgaXMgYSBCKyB0cmVlIGRhdGEgc3RydWN0dXJlLFxyXG4gKiBzbyB0aGUgY29sbGVjdGlvbiBpcyBzb3J0ZWQgYnkga2V5LlxyXG4gKlxyXG4gKiBCKyB0cmVlcyB0ZW5kIHRvIHVzZSBtZW1vcnkgbW9yZSBlZmZpY2llbnRseSB0aGFuIGhhc2h0YWJsZXMgc3VjaCBhcyB0aGVcclxuICogc3RhbmRhcmQgTWFwLCBlc3BlY2lhbGx5IHdoZW4gdGhlIGNvbGxlY3Rpb24gY29udGFpbnMgYSBsYXJnZSBudW1iZXIgb2ZcclxuICogaXRlbXMuIEhvd2V2ZXIsIG1haW50YWluaW5nIHRoZSBzb3J0IG9yZGVyIG1ha2VzIHRoZW0gbW9kZXN0bHkgc2xvd2VyOlxyXG4gKiBPKGxvZyBzaXplKSByYXRoZXIgdGhhbiBPKDEpLiBUaGlzIEIrIHRyZWUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgTygxKVxyXG4gKiBmYXN0IGNsb25pbmcuIEl0IGFsc28gc3VwcG9ydHMgZnJlZXplKCksIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0XHJcbiAqIGEgQlRyZWUgaXMgbm90IGNoYW5nZWQgYWNjaWRlbnRhbGx5LlxyXG4gKlxyXG4gKiBDb25mdXNpbmdseSwgdGhlIEVTNiBNYXAuZm9yRWFjaChjKSBtZXRob2QgY2FsbHMgYyh2YWx1ZSxrZXkpIGluc3RlYWQgb2ZcclxuICogYyhrZXksdmFsdWUpLCBpbiBjb250cmFzdCB0byBvdGhlciBtZXRob2RzIHN1Y2ggYXMgc2V0KCkgYW5kIGVudHJpZXMoKVxyXG4gKiB3aGljaCBwdXQgdGhlIGtleSBmaXJzdC4gSSBjYW4gb25seSBhc3N1bWUgdGhhdCB0aGUgb3JkZXIgd2FzIHJldmVyc2VkIG9uXHJcbiAqIHRoZSB0aGVvcnkgdGhhdCB1c2VycyB3b3VsZCB1c3VhbGx5IHdhbnQgdG8gZXhhbWluZSB2YWx1ZXMgYW5kIGlnbm9yZSBrZXlzLlxyXG4gKiBCVHJlZSdzIGZvckVhY2goKSB0aGVyZWZvcmUgd29ya3MgdGhlIHNhbWUgd2F5LCBidXQgYSBzZWNvbmQgbWV0aG9kXHJcbiAqIGAuZm9yRWFjaFBhaXIoKGtleSx2YWx1ZSk9PnsuLi59KWAgaXMgcHJvdmlkZWQgd2hpY2ggc2VuZHMgeW91IHRoZSBrZXlcclxuICogZmlyc3QgYW5kIHRoZSB2YWx1ZSBzZWNvbmQ7IHRoaXMgbWV0aG9kIGlzIHNsaWdodGx5IGZhc3RlciBiZWNhdXNlIGl0IGlzXHJcbiAqIHRoZSBcIm5hdGl2ZVwiIGZvci1lYWNoIG1ldGhvZCBmb3IgdGhpcyBjbGFzcy5cclxuICpcclxuICogT3V0IG9mIHRoZSBib3gsIEJUcmVlIHN1cHBvcnRzIGtleXMgdGhhdCBhcmUgbnVtYmVycywgc3RyaW5ncywgYXJyYXlzIG9mXHJcbiAqIG51bWJlcnMvc3RyaW5ncywgRGF0ZSwgYW5kIG9iamVjdHMgdGhhdCBoYXZlIGEgdmFsdWVPZigpIG1ldGhvZCByZXR1cm5pbmcgYVxyXG4gKiBudW1iZXIgb3Igc3RyaW5nLiBPdGhlciBkYXRhIHR5cGVzLCBzdWNoIGFzIGFycmF5cyBvZiBEYXRlIG9yIGN1c3RvbVxyXG4gKiBvYmplY3RzLCByZXF1aXJlIGEgY3VzdG9tIGNvbXBhcmF0b3IsIHdoaWNoIHlvdSBtdXN0IHBhc3MgYXMgdGhlIHNlY29uZFxyXG4gKiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3IgKHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBvcHRpb25hbCBsaXN0IG9mXHJcbiAqIGluaXRpYWwgaXRlbXMpLiBTeW1ib2xzIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgYmVjYXVzZSB0aGV5IGFyZSB1bm9yZGVyZWRcclxuICogKG9uZSBTeW1ib2wgaXMgbmV2ZXIgXCJncmVhdGVyXCIgb3IgXCJsZXNzXCIgdGhhbiBhbm90aGVyKS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogR2l2ZW4gYSB7bmFtZTogc3RyaW5nLCBhZ2U6IG51bWJlcn0gb2JqZWN0LCB5b3UgY2FuIGNyZWF0ZSBhIHRyZWUgc29ydGVkIGJ5XHJcbiAqIG5hbWUgYW5kIHRoZW4gYnkgYWdlIGxpa2UgdGhpczpcclxuICpcclxuICogICAgIHZhciB0cmVlID0gbmV3IEJUcmVlKHVuZGVmaW5lZCwgKGEsIGIpID0+IHtcclxuICogICAgICAgaWYgKGEubmFtZSA+IGIubmFtZSlcclxuICogICAgICAgICByZXR1cm4gMTsgLy8gUmV0dXJuIGEgbnVtYmVyID4wIHdoZW4gYSA+IGJcclxuICogICAgICAgZWxzZSBpZiAoYS5uYW1lIDwgYi5uYW1lKVxyXG4gKiAgICAgICAgIHJldHVybiAtMTsgLy8gUmV0dXJuIGEgbnVtYmVyIDwwIHdoZW4gYSA8IGJcclxuICogICAgICAgZWxzZSAvLyBuYW1lcyBhcmUgZXF1YWwgKG9yIGluY29tcGFyYWJsZSlcclxuICogICAgICAgICByZXR1cm4gYS5hZ2UgLSBiLmFnZTsgLy8gUmV0dXJuID4wIHdoZW4gYS5hZ2UgPiBiLmFnZVxyXG4gKiAgICAgfSk7XHJcbiAqXHJcbiAqICAgICB0cmVlLnNldCh7bmFtZTpcIkJpbGxcIiwgYWdlOjE3fSwgXCJoYXBweVwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiRnJhblwiLCBhZ2U6NDB9LCBcImJ1c3kgJiBzdHJlc3NlZFwiKTtcclxuICogICAgIHRyZWUuc2V0KHtuYW1lOlwiQmlsbFwiLCBhZ2U6NTV9LCBcInJlY2VudGx5IGxhaWQgb2ZmXCIpO1xyXG4gKiAgICAgdHJlZS5mb3JFYWNoUGFpcigoaywgdikgPT4ge1xyXG4gKiAgICAgICBjb25zb2xlLmxvZyhgTmFtZTogJHtrLm5hbWV9IEFnZTogJHtrLmFnZX0gU3RhdHVzOiAke3Z9YCk7XHJcbiAqICAgICB9KTtcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoZSBcInJhbmdlXCIgbWV0aG9kcyAoYGZvckVhY2gsIGZvclJhbmdlLCBlZGl0UmFuZ2VgKSB3aWxsIHJldHVybiB0aGUgbnVtYmVyXHJcbiAqIG9mIGVsZW1lbnRzIHRoYXQgd2VyZSBzY2FubmVkLiBJbiBhZGRpdGlvbiwgdGhlIGNhbGxiYWNrIGNhbiByZXR1cm4ge2JyZWFrOlJ9XHJcbiAqIHRvIHN0b3AgZWFybHkgYW5kIHJldHVybiBSIGZyb20gdGhlIG91dGVyIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiAtIFRPRE86IFRlc3QgcGVyZm9ybWFuY2Ugb2YgcHJlYWxsb2NhdGluZyB2YWx1ZXMgYXJyYXkgYXQgbWF4IHNpemVcclxuICogLSBUT0RPOiBBZGQgZmFzdCBpbml0aWFsaXphdGlvbiB3aGVuIGEgc29ydGVkIGFycmF5IGlzIHByb3ZpZGVkIHRvIGNvbnN0cnVjdG9yXHJcbiAqXHJcbiAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9xd2VydGllL2J0cmVlLXR5cGVzY3JpcHRcclxuICpcclxuICogQXJlIHlvdSBhIEMjIGRldmVsb3Blcj8gWW91IG1pZ2h0IGxpa2UgdGhlIHNpbWlsYXIgZGF0YSBzdHJ1Y3R1cmVzIEkgbWFkZSBmb3IgQyM6XHJcbiAqIEJEaWN0aW9uYXJ5LCBCTGlzdCwgZXRjLiBTZWUgaHR0cDovL2NvcmUubG95Yy5uZXQvY29sbGVjdGlvbnMvXHJcbiAqXHJcbiAqIEBhdXRob3IgRGF2aWQgUGllcGdyYXNzXHJcbiAqL1xyXG52YXIgQlRyZWUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGFuIGVtcHR5IEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gY29tcGFyZSBDdXN0b20gZnVuY3Rpb24gdG8gY29tcGFyZSBwYWlycyBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZS5cclxuICAgICAqICAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdENvbXBhcmF0b3Igd2lsbCBiZSB1c2VkIHdoaWNoIGlzIHZhbGlkIGFzIGxvbmcgYXMgSyBleHRlbmRzIERlZmF1bHRDb21wYXJhYmxlLlxyXG4gICAgICogQHBhcmFtIGVudHJpZXMgQSBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGluaXRpYWxpemUgdGhlIHRyZWVcclxuICAgICAqIEBwYXJhbSBtYXhOb2RlU2l6ZSBCcmFuY2hpbmcgZmFjdG9yIChtYXhpbXVtIGl0ZW1zIG9yIGNoaWxkcmVuIHBlciBub2RlKVxyXG4gICAgICogICBNdXN0IGJlIGluIHJhbmdlIDQuLjI1Ni4gSWYgdW5kZWZpbmVkIG9yIDw0IHRoZW4gZGVmYXVsdCBpcyB1c2VkOyBpZiA+MjU2IHRoZW4gMjU2LlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBCVHJlZShlbnRyaWVzLCBjb21wYXJlLCBtYXhOb2RlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5fbWF4Tm9kZVNpemUgPSBtYXhOb2RlU2l6ZSA+PSA0ID8gTWF0aC5taW4obWF4Tm9kZVNpemUsIDI1NikgOiAzMjtcclxuICAgICAgICB0aGlzLl9jb21wYXJlID0gY29tcGFyZSB8fCBkZWZhdWx0Q29tcGFyYXRvcjtcclxuICAgICAgICBpZiAoZW50cmllcylcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWlycyhlbnRyaWVzKTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XHJcbiAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvLyBFUzYgTWFwPEssVj4gbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJsZW5ndGhcIiwge1xyXG4gICAgICAgIC8qKiBHZXRzIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIGluIHRoZSB0cmVlLiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0VtcHR5XCIsIHtcclxuICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmZiB0aGUgdHJlZSBjb250YWlucyBubyBrZXktdmFsdWUgcGFpcnMuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9zaXplID09PSAwOyB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICAvKiogUmVsZWFzZXMgdGhlIHRyZWUgc28gdGhhdCBpdHMgc2l6ZSBpcyAwLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBFbXB0eUxlYWY7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEVTNiBNYXAsIHRoZSBhcmd1bWVudCBvcmRlciB0b1xyXG4gICAgICogIHRoZSBjYWxsYmFjayBpcyBiYWNrd2FyZHM6IHZhbHVlIGZpcnN0LCB0aGVuIGtleS4gQ2FsbCBmb3JFYWNoUGFpclxyXG4gICAgICogIGluc3RlYWQgdG8gcmVjZWl2ZSB0aGUga2V5IGFzIHRoZSBmaXJzdCBhcmd1bWVudC5cclxuICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCB0aGlzIHBhcmFtZXRlciBpcyBhc3NpZ25lZCBhcyB0aGUgYHRoaXNgXHJcbiAgICAgKiAgICAgICAgdmFsdWUgZm9yIGVhY2ggY2FsbGJhY2suXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHZhbHVlcyB0aGF0IHdlcmUgc2VudCB0byB0aGUgY2FsbGJhY2ssXHJcbiAgICAgKiAgICAgICAgb3IgdGhlIFIgdmFsdWUgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkIHticmVhazpSfS4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24gKGNhbGxiYWNrLCB0aGlzQXJnKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAodGhpc0FyZyAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpc0FyZyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhaXIoZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuIGNhbGxiYWNrKHYsIGssIF90aGlzKTsgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJ1bnMgYSBmdW5jdGlvbiBmb3IgZWFjaCBrZXktdmFsdWUgcGFpciwgaW4gb3JkZXIgZnJvbSBzbWFsbGVzdCB0b1xyXG4gICAgICogIGxhcmdlc3Qga2V5LiBUaGUgY2FsbGJhY2sgY2FuIHJldHVybiB7YnJlYWs6Un0gKHdoZXJlIFIgaXMgYW55IHZhbHVlXHJcbiAgICAgKiAgZXhjZXB0IHVuZGVmaW5lZCkgdG8gc3RvcCBpbW1lZGlhdGVseSBhbmQgcmV0dXJuIFIgZnJvbSBmb3JFYWNoUGFpci5cclxuICAgICAqIEBwYXJhbSBvbkZvdW5kIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2gga2V5LXZhbHVlIHBhaXIuIFRoaXNcclxuICAgICAqICAgICAgICBmdW5jdGlvbiBjYW4gcmV0dXJuIHticmVhazpSfSB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIuXHJcbiAgICAgKiAgICAgICAgVGhlIHJlYXNvbiB0aGF0IHlvdSBtdXN0IHJldHVybiB7YnJlYWs6Un0gaW5zdGVhZCBvZiBzaW1wbHkgUlxyXG4gICAgICogICAgICAgIGl0c2VsZiBpcyBmb3IgY29uc2lzdGVuY3kgd2l0aCBlZGl0UmFuZ2UoKSwgd2hpY2ggYWxsb3dzXHJcbiAgICAgKiAgICAgICAgbXVsdGlwbGUgYWN0aW9ucywgbm90IGp1c3QgYnJlYWtpbmcuXHJcbiAgICAgKiBAcGFyYW0gaW5pdGlhbENvdW50ZXIgVGhpcyBpcyB0aGUgdmFsdWUgb2YgdGhlIHRoaXJkIGFyZ3VtZW50IG9mXHJcbiAgICAgKiAgICAgICAgYG9uRm91bmRgIHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC4gVGhlIGNvdW50ZXIgaW5jcmVhc2VzXHJcbiAgICAgKiAgICAgICAgYnkgb25lIGVhY2ggdGltZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBEZWZhdWx0IHZhbHVlOiAwXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhaXJzIHNlbnQgdG8gdGhlIGNhbGxiYWNrIChwbHVzIGluaXRpYWxDb3VudGVyLFxyXG4gICAgICogICAgICAgIGlmIHlvdSBwcm92aWRlZCBvbmUpLiBJZiB0aGUgY2FsbGJhY2sgcmV0dXJuZWQge2JyZWFrOlJ9IHRoZW5cclxuICAgICAqICAgICAgICB0aGUgUiB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmZvckVhY2hQYWlyID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciBsb3cgPSB0aGlzLm1pbktleSgpLCBoaWdoID0gdGhpcy5tYXhLZXkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShsb3csIGhpZ2gsIHRydWUsIGNhbGxiYWNrLCBpbml0aWFsQ291bnRlcik7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5kcyBhIHBhaXIgaW4gdGhlIHRyZWUgYW5kIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIGEgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEByZXR1cm5zIHRoZSB2YWx1ZSwgb3IgZGVmYXVsdFZhbHVlIGlmIHRoZSBrZXkgd2FzIG5vdCBmb3VuZC5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5nZXQoa2V5LCBkZWZhdWx0VmFsdWUsIHRoaXMpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBvciBvdmVyd3JpdGVzIGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIEIrIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNvcnQgb3JkZXIgb2ZcclxuICAgICAqICAgICAgICBkYXRhIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIGRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGtleSAob3B0aW9uYWwpXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGtleS12YWx1ZSBwYWlyXHJcbiAgICAgKiAgICAgICAgKGRlZmF1bHQ6IHRydWUpLiBJZiB0aGlzIGlzIGZhbHNlIGFuZCB0aGVyZSBpcyBhbiBleGlzdGluZ1xyXG4gICAgICogICAgICAgIGtleS12YWx1ZSBwYWlyIHRoZW4gdGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBuZXcga2V5LXZhbHVlIHBhaXIgd2FzIGFkZGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqIE5vdGU6IHdoZW4gb3ZlcndyaXRpbmcgYSBwcmV2aW91cyBlbnRyeSwgdGhlIGtleSBpcyB1cGRhdGVkXHJcbiAgICAgKiBhcyB3ZWxsIGFzIHRoZSB2YWx1ZS4gVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyB0aGUgbmV3IGtleVxyXG4gICAgICogaGFzIGRhdGEgdGhhdCBkb2VzIG5vdCBhZmZlY3QgaXRzIHNvcnQgb3JkZXIuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Jvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSB0aGlzLl9yb290LmNsb25lKCk7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX3Jvb3Quc2V0KGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdGhpcyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSB8fCByZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIC8vIFJvb3Qgbm9kZSBoYXMgc3BsaXQsIHNvIGNyZWF0ZSBhIG5ldyByb290IG5vZGUuXHJcbiAgICAgICAgdGhpcy5fcm9vdCA9IG5ldyBCTm9kZUludGVybmFsKFt0aGlzLl9yb290LCByZXN1bHRdKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgQisgdHJlZSwgZmFsc2UgaWYgbm90LlxyXG4gICAgICogVXNlIGdldCgpIGZvciBiZXN0IHBlcmZvcm1hbmNlOyB1c2UgaGFzKCkgaWYgeW91IG5lZWQgdG9cclxuICAgICAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gXCJ1bmRlZmluZWQgdmFsdWVcIiBhbmQgXCJrZXkgbm90IHByZXNlbnRcIi5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGRldGVjdFxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSYW5nZShrZXksIGtleSwgdHJ1ZSwgdW5kZWZpbmVkKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBzaW5nbGUga2V5LXZhbHVlIHBhaXIgZnJvbSB0aGUgQisgdHJlZS5cclxuICAgICAqIEBwYXJhbSBrZXkgS2V5IHRvIGZpbmRcclxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYSBwYWlyIHdhcyBmb3VuZCBhbmQgcmVtb3ZlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIERlbGV0ZVJhbmdlKSAhPT0gMDtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUpIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS12YWx1ZSBwYWlycyBzZXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aFBhaXJzID0gZnVuY3Rpb24gKHBhaXJzLCBvdmVyd3JpdGUpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCk7XHJcbiAgICAgICAgcmV0dXJuIG51LnNldFBhaXJzKHBhaXJzLCBvdmVyd3JpdGUpICE9PSAwIHx8IG92ZXJ3cml0ZSA/IG51IDogdGhpcztcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRyZWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleXMgcHJlc2VudC5cclxuICAgICAqICBAcGFyYW0ga2V5cyBUaGUga2V5cyB0byBhZGQuIElmIGEga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgdHJlZSxcclxuICAgICAqICAgICAgICAgbmVpdGhlciB0aGUgZXhpc3Rpbmcga2V5IG5vciB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbW9kaWZpZWQuXHJcbiAgICAgKiAgQHBhcmFtIHJldHVyblRoaXNJZlVuY2hhbmdlZCBpZiB0cnVlLCByZXR1cm5zIHRoaXMgaWYgYWxsIGtleXMgYWxyZWFkeVxyXG4gICAgICogIGV4aXN0ZWQuIFBlcmZvcm1hbmNlIG5vdGU6IGR1ZSB0byB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgY2xhc3MsIGFsbFxyXG4gICAgICogIG5vZGUocykgbGVhZGluZyB0byBleGlzdGluZyBrZXlzIGFyZSBjbG9uZWQgZXZlbiBpZiB0aGUgY29sbGVjdGlvbiBpc1xyXG4gICAgICogIHVsdGltYXRlbHkgdW5jaGFuZ2VkLlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS53aXRoS2V5cyA9IGZ1bmN0aW9uIChrZXlzLCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICB2YXIgbnUgPSB0aGlzLmNsb25lKCksIGNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGNoYW5nZWQgPSBudS5zZXQoa2V5c1tpXSwgdW5kZWZpbmVkLCBmYWxzZSkgfHwgY2hhbmdlZDtcclxuICAgICAgICByZXR1cm4gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkICYmICFjaGFuZ2VkID8gdGhpcyA6IG51O1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdHJlZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5IHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiB0aGUga2V5IGRpZG4ndCBleGlzdC5cclxuICAgICAqICBQZXJmb3JtYW5jZSBub3RlOiBkdWUgdG8gdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNsYXNzLCBub2RlKHMpIGxlYWRpbmdcclxuICAgICAqICB0byB3aGVyZSB0aGUga2V5IHdvdWxkIGhhdmUgYmVlbiBzdG9yZWQgYXJlIGNsb25lZCBldmVuIHdoZW4gdGhlIGtleVxyXG4gICAgICogIHR1cm5zIG91dCBub3QgdG8gZXhpc3QgYW5kIHRoZSBjb2xsZWN0aW9uIGlzIHVuY2hhbmdlZC5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLndpdGhvdXQgPSBmdW5jdGlvbiAoa2V5LCByZXR1cm5UaGlzSWZVbmNoYW5nZWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53aXRob3V0UmFuZ2Uoa2V5LCBrZXksIHRydWUsIHJldHVyblRoaXNJZlVuY2hhbmdlZCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXlzIHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0gcmV0dXJuVGhpc0lmVW5jaGFuZ2VkIGlmIHRydWUsIHJldHVybnMgdGhpcyBpZiBub25lIG9mIHRoZSBrZXlzXHJcbiAgICAgKiAgZXhpc3RlZC4gUGVyZm9ybWFuY2Ugbm90ZTogZHVlIHRvIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBjbGFzcyxcclxuICAgICAqICBub2RlKHMpIGxlYWRpbmcgdG8gd2hlcmUgdGhlIGtleSB3b3VsZCBoYXZlIGJlZW4gc3RvcmVkIGFyZSBjbG9uZWRcclxuICAgICAqICBldmVuIHdoZW4gdGhlIGtleSB0dXJucyBvdXQgbm90IHRvIGV4aXN0LlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dEtleXMgPSBmdW5jdGlvbiAoa2V5cywgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKSB7XHJcbiAgICAgICAgdmFyIG51ID0gdGhpcy5jbG9uZSgpO1xyXG4gICAgICAgIHJldHVybiBudS5kZWxldGVLZXlzKGtleXMpIHx8ICFyZXR1cm5UaGlzSWZVbmNoYW5nZWQgPyBudSA6IHRoaXM7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzIHJlbW92ZWQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUud2l0aG91dFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuY2xvbmUoKTtcclxuICAgICAgICBpZiAobnUuZGVsZXRlUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkgPT09IDAgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggcGFpcnMgcmVtb3ZlZCB3aGVuZXZlciB0aGUgY2FsbGJhY2tcclxuICAgICAqICBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLiBgd2hlcmUoKWAgaXMgYSBzeW5vbnltIGZvciB0aGlzIG1ldGhvZC4gKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIHJldHVyblRoaXNJZlVuY2hhbmdlZCkge1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICB2YXIgZGVsO1xyXG4gICAgICAgIG51LmVkaXRBbGwoZnVuY3Rpb24gKGssIHYsIGkpIHtcclxuICAgICAgICAgICAgaWYgKCFjYWxsYmFjayhrLCB2LCBpKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZWwgPSBEZWxldGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCFkZWwgJiYgcmV0dXJuVGhpc0lmVW5jaGFuZ2VkKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICByZXR1cm4gbnU7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB0cmVlIHdpdGggYWxsIHZhbHVlcyBhbHRlcmVkIGJ5IGEgY2FsbGJhY2sgZnVuY3Rpb24uICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWFwVmFsdWVzID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIHRtcCA9IHt9O1xyXG4gICAgICAgIHZhciBudSA9IHRoaXMuZ3JlZWR5Q2xvbmUoKTtcclxuICAgICAgICBudS5lZGl0QWxsKGZ1bmN0aW9uIChrLCB2LCBpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0bXAudmFsdWUgPSBjYWxsYmFjayh2LCBrLCBpKSwgdG1wO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcclxuICAgICAgICB2YXIgaSA9IDAsIHAgPSBpbml0aWFsVmFsdWU7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKHRoaXMubWluS2V5KCksIFJldXNlZEFycmF5KSwgbmV4dDtcclxuICAgICAgICB3aGlsZSAoIShuZXh0ID0gaXQubmV4dCgpKS5kb25lKVxyXG4gICAgICAgICAgICBwID0gY2FsbGJhY2socCwgbmV4dC52YWx1ZSwgaSsrLCB0aGlzKTtcclxuICAgICAgICByZXR1cm4gcDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gSXRlcmF0b3IgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gb3JkZXIgKGFzY2VuZGluZyBvcmRlciBpZlxyXG4gICAgICogIHRoZSBjb2xsZWN0aW9uJ3MgY29tcGFyYXRvciB1c2VzIGFzY2VuZGluZyBvcmRlciwgYXMgaXMgdGhlIGRlZmF1bHQuKVxyXG4gICAgICogIEBwYXJhbSBsb3dlc3RLZXkgRmlyc3Qga2V5IHRvIGJlIGl0ZXJhdGVkLCBvciB1bmRlZmluZWQgdG8gc3RhcnQgYXRcclxuICAgICAqICAgICAgICAgbWluS2V5KCkuIElmIHRoZSBzcGVjaWZpZWQga2V5IGRvZXNuJ3QgZXhpc3QgdGhlbiBpdGVyYXRpb25cclxuICAgICAqICAgICAgICAgc3RhcnRzIGF0IHRoZSBuZXh0IGhpZ2hlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbiAobG93ZXN0S2V5LCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpbmZvID0gdGhpcy5maW5kUGF0aChsb3dlc3RLZXkpO1xyXG4gICAgICAgIGlmIChpbmZvID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigpO1xyXG4gICAgICAgIHZhciBub2RlcXVldWUgPSBpbmZvLm5vZGVxdWV1ZSwgbm9kZWluZGV4ID0gaW5mby5ub2RlaW5kZXgsIGxlYWYgPSBpbmZvLmxlYWY7XHJcbiAgICAgICAgdmFyIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgIHZhciBpID0gKGxvd2VzdEtleSA9PT0gdW5kZWZpbmVkID8gLTEgOiBsZWFmLmluZGV4T2YobG93ZXN0S2V5LCAwLCB0aGlzLl9jb21wYXJlKSAtIDEpO1xyXG4gICAgICAgIHJldHVybiBpdGVyYXRvcihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGp1bXA6IGZvciAoOzspIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBsZWFmLmtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGxlYWYua2V5c1tpXSwgcmV1c2VkQXJyYXlbMV0gPSBsZWFmLnZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogcmV1c2VkQXJyYXkgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIHRvIHRoZSBuZXh0IGxlYWYgbm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsZXZlbCA9IC0xOzspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2xldmVsID49IG5vZGVxdWV1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUganVtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK25vZGVpbmRleFtsZXZlbF0gPCBub2RlcXVldWVbbGV2ZWxdLmxlbmd0aClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbGV2ZWwgPiAwOyBsZXZlbC0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlcXVldWVbbGV2ZWwgLSAxXSA9IG5vZGVxdWV1ZVtsZXZlbF1bbm9kZWluZGV4W2xldmVsXV0uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlaW5kZXhbbGV2ZWwgLSAxXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZiA9IG5vZGVxdWV1ZVswXVtub2RlaW5kZXhbMF1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgcHJvdmlkZXMgaXRlbXMgaW4gcmV2ZXJzZWQgb3JkZXIuXHJcbiAgICAgKiAgQHBhcmFtIGhpZ2hlc3RLZXkgS2V5IGF0IHdoaWNoIHRvIHN0YXJ0IGl0ZXJhdGluZywgb3IgdW5kZWZpbmVkIHRvXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0IGF0IG1heEtleSgpLiBJZiB0aGUgc3BlY2lmaWVkIGtleSBkb2Vzbid0IGV4aXN0IHRoZW4gaXRlcmF0aW9uXHJcbiAgICAgKiAgICAgICAgIHN0YXJ0cyBhdCB0aGUgbmV4dCBsb3dlciBrZXkgKGFjY29yZGluZyB0byB0aGUgY29tcGFyYXRvcikuXHJcbiAgICAgKiAgQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWVcclxuICAgICAqICAgICAgICAgcGFpcnMsIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IG9uIGV2ZXJ5IGl0ZXJhdGlvbi5cclxuICAgICAqICBAcGFyYW0gc2tpcEhpZ2hlc3QgSWZmIHRoaXMgZmxhZyBpcyB0cnVlIGFuZCB0aGUgaGlnaGVzdEtleSBleGlzdHMgaW4gdGhlXHJcbiAgICAgKiAgICAgICAgIGNvbGxlY3Rpb24sIHRoZSBwYWlyIG1hdGNoaW5nIGhpZ2hlc3RLZXkgaXMgc2tpcHBlZCwgbm90IGl0ZXJhdGVkLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZW50cmllc1JldmVyc2VkID0gZnVuY3Rpb24gKGhpZ2hlc3RLZXksIHJldXNlZEFycmF5LCBza2lwSGlnaGVzdCkge1xyXG4gICAgICAgIGlmIChoaWdoZXN0S2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGlnaGVzdEtleSA9IHRoaXMubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIHNraXBIaWdoZXN0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoaGlnaGVzdEtleSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7IC8vIGNvbGxlY3Rpb24gaXMgZW1wdHlcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIF9hID0gdGhpcy5maW5kUGF0aChoaWdoZXN0S2V5KSB8fCB0aGlzLmZpbmRQYXRoKHRoaXMubWF4S2V5KCkpLCBub2RlcXVldWUgPSBfYS5ub2RlcXVldWUsIG5vZGVpbmRleCA9IF9hLm5vZGVpbmRleCwgbGVhZiA9IF9hLmxlYWY7XHJcbiAgICAgICAgY2hlY2soIW5vZGVxdWV1ZVswXSB8fCBsZWFmID09PSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXSwgXCJ3YXQhXCIpO1xyXG4gICAgICAgIHZhciBpID0gbGVhZi5pbmRleE9mKGhpZ2hlc3RLZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgIGlmICghc2tpcEhpZ2hlc3QgJiYgaSA8IGxlYWYua2V5cy5sZW5ndGggJiYgdGhpcy5fY29tcGFyZShsZWFmLmtleXNbaV0sIGhpZ2hlc3RLZXkpIDw9IDApXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB2YXIgc3RhdGUgPSByZXVzZWRBcnJheSAhPT0gdW5kZWZpbmVkID8gMSA6IDA7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAganVtcDogZm9yICg7Oykge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0taSA+PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBbbGVhZi5rZXlzW2ldLCBsZWFmLnZhbHVlc1tpXV0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWkgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkQXJyYXlbMF0gPSBsZWFmLmtleXNbaV0sIHJldXNlZEFycmF5WzFdID0gbGVhZi52YWx1ZXNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IHJldXNlZEFycmF5IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBsZWFmIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbGV2ZWwgPSAtMTs7KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytsZXZlbCA+PSBub2RlcXVldWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGp1bXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1ub2RlaW5kZXhbbGV2ZWxdID49IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7IGxldmVsID4gMDsgbGV2ZWwtLSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXF1ZXVlW2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWxdW25vZGVpbmRleFtsZXZlbF1dLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZWluZGV4W2xldmVsIC0gMV0gPSBub2RlcXVldWVbbGV2ZWwgLSAxXS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWYgPSBub2RlcXVldWVbMF1bbm9kZWluZGV4WzBdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGxlYWYua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcmV1c2VkQXJyYXkgIT09IHVuZGVmaW5lZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qIFVzZWQgYnkgZW50cmllcygpIGFuZCBlbnRyaWVzUmV2ZXJzZWQoKSB0byBwcmVwYXJlIHRvIHN0YXJ0IGl0ZXJhdGluZy5cclxuICAgICAqIEl0IGRldmVsb3BzIGEgXCJub2RlIHF1ZXVlXCIgZm9yIGVhY2ggbm9uLWxlYWYgbGV2ZWwgb2YgdGhlIHRyZWUuXHJcbiAgICAgKiBMZXZlbHMgYXJlIG51bWJlcmVkIFwiYm90dG9tLXVwXCIgc28gdGhhdCBsZXZlbCAwIGlzIGEgbGlzdCBvZiBsZWFmXHJcbiAgICAgKiBub2RlcyBmcm9tIGEgbG93LWxldmVsIG5vbi1sZWFmIG5vZGUuIFRoZSBxdWV1ZSBhdCBhIGdpdmVuIGxldmVsIExcclxuICAgICAqIGNvbnNpc3RzIG9mIG5vZGVxdWV1ZVtMXSB3aGljaCBpcyB0aGUgY2hpbGRyZW4gb2YgYSBCTm9kZUludGVybmFsLFxyXG4gICAgICogYW5kIG5vZGVpbmRleFtMXSwgdGhlIGN1cnJlbnQgaW5kZXggd2l0aGluIHRoYXQgY2hpbGQgbGlzdCwgc3VjaFxyXG4gICAgICogc3VjaCB0aGF0IG5vZGVxdWV1ZVtMLTFdID09PSBub2RlcXVldWVbTF1bbm9kZWluZGV4W0xdXS5jaGlsZHJlbi5cclxuICAgICAqIChIb3dldmVyIGluc2lkZSB0aGlzIGZ1bmN0aW9uIHRoZSBvcmRlciBpcyByZXZlcnNlZC4pXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5maW5kUGF0aCA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICB2YXIgbmV4dG5vZGUgPSB0aGlzLl9yb290O1xyXG4gICAgICAgIHZhciBub2RlcXVldWUsIG5vZGVpbmRleDtcclxuICAgICAgICBpZiAobmV4dG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgIG5vZGVxdWV1ZSA9IEVtcHR5QXJyYXksIG5vZGVpbmRleCA9IEVtcHR5QXJyYXk7IC8vIGF2b2lkIGFsbG9jYXRpb25zXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBub2RlcXVldWUgPSBbXSwgbm9kZWluZGV4ID0gW107XHJcbiAgICAgICAgICAgIGZvciAodmFyIGQgPSAwOyAhbmV4dG5vZGUuaXNMZWFmOyBkKyspIHtcclxuICAgICAgICAgICAgICAgIG5vZGVxdWV1ZVtkXSA9IG5leHRub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgbm9kZWluZGV4W2RdID0ga2V5ID09PSB1bmRlZmluZWQgPyAwIDogbmV4dG5vZGUuaW5kZXhPZihrZXksIDAsIHRoaXMuX2NvbXBhcmUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGVpbmRleFtkXSA+PSBub2RlcXVldWVbZF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gZmlyc3Qga2V5ID4gbWF4S2V5KClcclxuICAgICAgICAgICAgICAgIG5leHRub2RlID0gbm9kZXF1ZXVlW2RdW25vZGVpbmRleFtkXV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZXF1ZXVlLnJldmVyc2UoKTtcclxuICAgICAgICAgICAgbm9kZWluZGV4LnJldmVyc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgbm9kZXF1ZXVlOiBub2RlcXVldWUsIG5vZGVpbmRleDogbm9kZWluZGV4LCBsZWFmOiBuZXh0bm9kZSB9O1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQ29tcHV0ZXMgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYHRoaXNgIGFuZCBgb3RoZXJgLlxyXG4gICAgICogRm9yIGVmZmljaWVuY3ksIHRoZSBkaWZmIGlzIHJldHVybmVkIHZpYSBpbnZvY2F0aW9ucyBvZiBzdXBwbGllZCBoYW5kbGVycy5cclxuICAgICAqIFRoZSBjb21wdXRhdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIHRoZSBjYXNlIGluIHdoaWNoIHRoZSB0d28gdHJlZXMgaGF2ZSBsYXJnZSBhbW91bnRzXHJcbiAgICAgKiBvZiBzaGFyZWQgZGF0YSAob2J0YWluZWQgYnkgY2FsbGluZyB0aGUgYGNsb25lYCBvciBgd2l0aGAgQVBJcykgYW5kIHdpbGwgYXZvaWRcclxuICAgICAqIGFueSBpdGVyYXRpb24gb2Ygc2hhcmVkIHN0YXRlLlxyXG4gICAgICogVGhlIGhhbmRsZXJzIGNhbiBjYXVzZSBjb21wdXRhdGlvbiB0byBlYXJseSBleGl0IGJ5IHJldHVybmluZyB7YnJlYWs6IFJ9LlxyXG4gICAgICogTmVpdGhlciBvZiB0aGUgY29sbGVjdGlvbnMgc2hvdWxkIGJlIGNoYW5nZWQgZHVyaW5nIHRoZSBjb21wYXJpc29uIHByb2Nlc3MgKGluIHlvdXIgY2FsbGJhY2tzKSwgYXMgdGhpcyBtZXRob2QgYXNzdW1lcyB0aGV5IHdpbGwgbm90IGJlIG11dGF0ZWQuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIHRyZWUgdG8gY29tcHV0ZSBhIGRpZmYgYWdhaW5zdC5cclxuICAgICAqIEBwYXJhbSBvbmx5VGhpcyBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYHRoaXNgLlxyXG4gICAgICogQHBhcmFtIG9ubHlPdGhlciBDYWxsYmFjayBpbnZva2VkIGZvciBhbGwga2V5cyBvbmx5IHByZXNlbnQgaW4gYG90aGVyYC5cclxuICAgICAqIEBwYXJhbSBkaWZmZXJlbnQgQ2FsbGJhY2sgaW52b2tlZCBmb3IgYWxsIGtleXMgd2l0aCBkaWZmZXJpbmcgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGlmZkFnYWluc3QgPSBmdW5jdGlvbiAob3RoZXIsIG9ubHlUaGlzLCBvbmx5T3RoZXIsIGRpZmZlcmVudCkge1xyXG4gICAgICAgIGlmIChvdGhlci5fY29tcGFyZSAhPT0gdGhpcy5fY29tcGFyZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmVlIGNvbXBhcmF0b3JzIGFyZSBub3QgdGhlIHNhbWUuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc0VtcHR5IHx8IG90aGVyLmlzRW1wdHkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSAmJiBvdGhlci5pc0VtcHR5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgLy8gSWYgb25lIHRyZWUgaXMgZW1wdHksIGV2ZXJ5dGhpbmcgd2lsbCBiZSBhbiBvbmx5VGhpcy9vbmx5T3RoZXIuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb25seU90aGVyID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBCVHJlZS5zdGVwVG9FbmQoQlRyZWUubWFrZURpZmZDdXJzb3Iob3RoZXIpLCBvbmx5T3RoZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gb25seVRoaXMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEJUcmVlLnN0ZXBUb0VuZChCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKSwgb25seVRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDdXJzb3ItYmFzZWQgZGlmZiBhbGdvcml0aG0gaXMgYXMgZm9sbG93czpcclxuICAgICAgICAvLyAtIFVudGlsIG5laXRoZXIgY3Vyc29yIGhhcyBuYXZpZ2F0ZWQgdG8gdGhlIGVuZCBvZiB0aGUgdHJlZSwgZG8gdGhlIGZvbGxvd2luZzpcclxuICAgICAgICAvLyAgLSBJZiB0aGUgYHRoaXNgIGN1cnNvciBpcyBcImJlaGluZFwiIHRoZSBgb3RoZXJgIGN1cnNvciAoc3RyaWN0bHkgPCwgdmlhIGNvbXBhcmUpLCBhZHZhbmNlIGl0LlxyXG4gICAgICAgIC8vICAtIE90aGVyd2lzZSwgYWR2YW5jZSB0aGUgYG90aGVyYCBjdXJzb3IuXHJcbiAgICAgICAgLy8gIC0gQW55IHRpbWUgYSBjdXJzb3IgaXMgc3RlcHBlZCwgcGVyZm9ybSB0aGUgZm9sbG93aW5nOlxyXG4gICAgICAgIC8vICAgIC0gSWYgZWl0aGVyIGN1cnNvciBwb2ludHMgdG8gYSBrZXkvdmFsdWUgcGFpcjpcclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA9PT0gb3RoZXJDdXJzb3IgYW5kIHRoZSB2YWx1ZXMgZGlmZmVyLCBpdCBpcyBhIERpZmZlcmVudC5cclxuICAgICAgICAvLyAgICAgIC0gSWYgdGhpc0N1cnNvciA+IG90aGVyQ3Vyc29yIGFuZCBvdGhlckN1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5T3RoZXIuXHJcbiAgICAgICAgLy8gICAgICAtIElmIHRoaXNDdXJzb3IgPCBvdGhlckN1cnNvciBhbmQgdGhpc0N1cnNvciBpcyBhdCBhIGtleS92YWx1ZSBwYWlyLCBpdCBpcyBhbiBPbmx5VGhpcyBhcyBsb25nIGFzIHRoZSBtb3N0IHJlY2VudCBcclxuICAgICAgICAvLyAgICAgICAgY3Vyc29yIHN0ZXAgd2FzICpub3QqIG90aGVyQ3Vyc29yIGFkdmFuY2luZyBmcm9tIGEgdGllLiBUaGUgZXh0cmEgY29uZGl0aW9uIGF2b2lkcyBlcnJvbmVvdXMgT25seU90aGVyIGNhbGxzIFxyXG4gICAgICAgIC8vICAgICAgICB0aGF0IHdvdWxkIG9jY3VyIGR1ZSB0byBvdGhlckN1cnNvciBiZWluZyB0aGUgXCJsZWFkZXJcIi5cclxuICAgICAgICAvLyAgICAtIE90aGVyd2lzZSwgaWYgYm90aCBjdXJzb3JzIHBvaW50IHRvIG5vZGVzLCBjb21wYXJlIHRoZW0uIElmIHRoZXkgYXJlIGVxdWFsIGJ5IHJlZmVyZW5jZSAoc2hhcmVkKSwgc2tpcFxyXG4gICAgICAgIC8vICAgICAgYm90aCBjdXJzb3JzIHRvIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHdhbGsuXHJcbiAgICAgICAgLy8gLSBPbmNlIG9uZSBjdXJzb3IgaGFzIGZpbmlzaGVkIHN0ZXBwaW5nLCBhbnkgcmVtYWluaW5nIHN0ZXBzIChpZiBhbnkpIGFyZSB0YWtlbiBhbmQga2V5L3ZhbHVlIHBhaXJzIGFyZSBsb2dnZWRcclxuICAgICAgICAvLyAgIGFzIE9ubHlPdGhlciAoaWYgb3RoZXJDdXJzb3IgaXMgc3RlcHBpbmcpIG9yIE9ubHlUaGlzIChpZiB0aGlzQ3Vyc29yIGlzIHN0ZXBwaW5nKS5cclxuICAgICAgICAvLyBUaGlzIGFsZ29yaXRobSBnaXZlcyB0aGUgY3JpdGljYWwgZ3VhcmFudGVlIHRoYXQgYWxsIGxvY2F0aW9ucyAoYm90aCBub2RlcyBhbmQga2V5L3ZhbHVlIHBhaXJzKSBpbiBib3RoIHRyZWVzIHRoYXQgXHJcbiAgICAgICAgLy8gYXJlIGlkZW50aWNhbCBieSB2YWx1ZSAoYW5kIHBvc3NpYmx5IGJ5IHJlZmVyZW5jZSkgd2lsbCBiZSB2aXNpdGVkICphdCB0aGUgc2FtZSB0aW1lKiBieSB0aGUgY3Vyc29ycy5cclxuICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIHBvc3NpYmlsaXR5IG9mIGVtaXR0aW5nIGluY29ycmVjdCBkaWZmcywgYXMgd2VsbCBhcyBhbGxvd2luZyBmb3Igc2tpcHBpbmcgc2hhcmVkIG5vZGVzLlxyXG4gICAgICAgIHZhciBfY29tcGFyZSA9IHRoaXMuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIHRoaXNDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcih0aGlzKTtcclxuICAgICAgICB2YXIgb3RoZXJDdXJzb3IgPSBCVHJlZS5tYWtlRGlmZkN1cnNvcihvdGhlcik7XHJcbiAgICAgICAgLy8gSXQgZG9lc24ndCBtYXR0ZXIgaG93IHRoaXNTdGVwcGVkTGFzdCBpcyBpbml0aWFsaXplZC5cclxuICAgICAgICAvLyBTdGVwIG9yZGVyIGlzIG9ubHkgdXNlZCB3aGVuIGVpdGhlciBjdXJzb3IgaXMgYXQgYSBsZWFmLCBhbmQgY3Vyc29ycyBhbHdheXMgc3RhcnQgYXQgYSBub2RlLlxyXG4gICAgICAgIHZhciB0aGlzU3VjY2VzcyA9IHRydWUsIG90aGVyU3VjY2VzcyA9IHRydWUsIHByZXZDdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICB3aGlsZSAodGhpc1N1Y2Nlc3MgJiYgb3RoZXJTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHZhciBjdXJzb3JPcmRlciA9IEJUcmVlLmNvbXBhcmUodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlKTtcclxuICAgICAgICAgICAgdmFyIHRoaXNMZWFmID0gdGhpc0N1cnNvci5sZWFmLCB0aGlzSW50ZXJuYWxTcGluZSA9IHRoaXNDdXJzb3IuaW50ZXJuYWxTcGluZSwgdGhpc0xldmVsSW5kaWNlcyA9IHRoaXNDdXJzb3IubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgICAgICB2YXIgb3RoZXJMZWFmID0gb3RoZXJDdXJzb3IubGVhZiwgb3RoZXJJbnRlcm5hbFNwaW5lID0gb3RoZXJDdXJzb3IuaW50ZXJuYWxTcGluZSwgb3RoZXJMZXZlbEluZGljZXMgPSBvdGhlckN1cnNvci5sZXZlbEluZGljZXM7XHJcbiAgICAgICAgICAgIGlmICh0aGlzTGVhZiB8fCBvdGhlckxlYWYpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3JzIHdlcmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gbGFzdCBzdGVwLCB0aGVuIHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUgZG9uZS5cclxuICAgICAgICAgICAgICAgIGlmIChwcmV2Q3Vyc29yT3JkZXIgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yT3JkZXIgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNMZWFmICYmIG90aGVyTGVhZiAmJiBkaWZmZXJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWFsIGtleXMsIGNoZWNrIGZvciBtb2RpZmljYXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbE90aGVyID0gb3RoZXJMZWFmLnZhbHVlc1tvdGhlckxldmVsSW5kaWNlc1tvdGhlckxldmVsSW5kaWNlcy5sZW5ndGggLSAxXV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pcyh2YWxUaGlzLCB2YWxPdGhlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZGlmZmVyZW50KHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcywgdmFsT3RoZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmJyZWFrKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnNvck9yZGVyID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3ZSBrbm93IHRoYXQgZWl0aGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLiBvdGhlckN1cnNvciBzdGVwcGVkIGxhc3QgZnJvbSBhIHN0YXJ0aW5nIHBvc2l0aW9uIHRoYXQgdHJhaWxlZCB0aGlzQ3Vyc29yLCBhbmQgaXMgc3RpbGwgYmVoaW5kLCBvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAyLiB0aGlzQ3Vyc29yIHN0ZXBwZWQgbGFzdCBhbmQgbGVhcGZyb2dnZWQgb3RoZXJDdXJzb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIG9mIHRoZXNlIGNhc2VzIGlzIGFuIFwib25seSBvdGhlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlckxlYWYgJiYgb25seU90aGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJWYWwgPSBvdGhlckxlYWYudmFsdWVzW290aGVyTGV2ZWxJbmRpY2VzW290aGVyTGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbmx5T3RoZXIob3RoZXJDdXJzb3IuY3VycmVudEtleSwgb3RoZXJWYWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuYnJlYWspXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5icmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvbmx5VGhpcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc0xlYWYgJiYgcHJldkN1cnNvck9yZGVyICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsVGhpcyA9IHRoaXNMZWFmLnZhbHVlc1t0aGlzTGV2ZWxJbmRpY2VzW3RoaXNMZXZlbEluZGljZXMubGVuZ3RoIC0gMV1dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9ubHlUaGlzKHRoaXNDdXJzb3IuY3VycmVudEtleSwgdmFsVGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzTGVhZiAmJiAhb3RoZXJMZWFmICYmIGN1cnNvck9yZGVyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFRoaXMgPSB0aGlzSW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIGxhc3RPdGhlciA9IG90aGVySW50ZXJuYWxTcGluZS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5vZGVUaGlzID0gdGhpc0ludGVybmFsU3BpbmVbbGFzdFRoaXNdW3RoaXNMZXZlbEluZGljZXNbbGFzdFRoaXNdXTtcclxuICAgICAgICAgICAgICAgIHZhciBub2RlT3RoZXIgPSBvdGhlckludGVybmFsU3BpbmVbbGFzdE90aGVyXVtvdGhlckxldmVsSW5kaWNlc1tsYXN0T3RoZXJdXTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlT3RoZXIgPT09IG5vZGVUaGlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzU3VjY2VzcyA9IEJUcmVlLnN0ZXAodGhpc0N1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJTdWNjZXNzID0gQlRyZWUuc3RlcChvdGhlckN1cnNvciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJldkN1cnNvck9yZGVyID0gY3Vyc29yT3JkZXI7XHJcbiAgICAgICAgICAgIGlmIChjdXJzb3JPcmRlciA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXNTdWNjZXNzID0gQlRyZWUuc3RlcCh0aGlzQ3Vyc29yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG90aGVyU3VjY2VzcyA9IEJUcmVlLnN0ZXAob3RoZXJDdXJzb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzU3VjY2VzcyAmJiBvbmx5VGhpcylcclxuICAgICAgICAgICAgcmV0dXJuIEJUcmVlLmZpbmlzaEN1cnNvcldhbGsodGhpc0N1cnNvciwgb3RoZXJDdXJzb3IsIF9jb21wYXJlLCBvbmx5VGhpcyk7XHJcbiAgICAgICAgaWYgKG90aGVyU3VjY2VzcyAmJiBvbmx5T3RoZXIpXHJcbiAgICAgICAgICAgIHJldHVybiBCVHJlZS5maW5pc2hDdXJzb3JXYWxrKG90aGVyQ3Vyc29yLCB0aGlzQ3Vyc29yLCBfY29tcGFyZSwgb25seU90aGVyKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIEhlbHBlciBtZXRob2RzIGZvciBkaWZmQWdhaW5zdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQlRyZWUuZmluaXNoQ3Vyc29yV2FsayA9IGZ1bmN0aW9uIChjdXJzb3IsIGN1cnNvckZpbmlzaGVkLCBjb21wYXJlS2V5cywgY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgY29tcGFyZWQgPSBCVHJlZS5jb21wYXJlKGN1cnNvciwgY3Vyc29yRmluaXNoZWQsIGNvbXBhcmVLZXlzKTtcclxuICAgICAgICBpZiAoY29tcGFyZWQgPT09IDApIHtcclxuICAgICAgICAgICAgaWYgKCFCVHJlZS5zdGVwKGN1cnNvcikpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjb21wYXJlZCA8IDApIHtcclxuICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiY3Vyc29yIHdhbGsgdGVybWluYXRlZCBlYXJseVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEJUcmVlLnN0ZXBUb0VuZChjdXJzb3IsIGNhbGxiYWNrKTtcclxuICAgIH07XHJcbiAgICBCVHJlZS5zdGVwVG9FbmQgPSBmdW5jdGlvbiAoY3Vyc29yLCBjYWxsYmFjaykge1xyXG4gICAgICAgIHZhciBjYW5TdGVwID0gdHJ1ZTtcclxuICAgICAgICB3aGlsZSAoY2FuU3RlcCkge1xyXG4gICAgICAgICAgICB2YXIgbGVhZiA9IGN1cnNvci5sZWFmLCBsZXZlbEluZGljZXMgPSBjdXJzb3IubGV2ZWxJbmRpY2VzLCBjdXJyZW50S2V5ID0gY3Vyc29yLmN1cnJlbnRLZXk7XHJcbiAgICAgICAgICAgIGlmIChsZWFmKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBsZWFmLnZhbHVlc1tsZXZlbEluZGljZXNbbGV2ZWxJbmRpY2VzLmxlbmd0aCAtIDFdXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjYWxsYmFjayhjdXJyZW50S2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5icmVhaylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhblN0ZXAgPSBCVHJlZS5zdGVwKGN1cnNvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQlRyZWUubWFrZURpZmZDdXJzb3IgPSBmdW5jdGlvbiAodHJlZSkge1xyXG4gICAgICAgIHZhciBfcm9vdCA9IHRyZWUuX3Jvb3QsIGhlaWdodCA9IHRyZWUuaGVpZ2h0O1xyXG4gICAgICAgIHJldHVybiB7IGhlaWdodDogaGVpZ2h0LCBpbnRlcm5hbFNwaW5lOiBbW19yb290XV0sIGxldmVsSW5kaWNlczogWzBdLCBsZWFmOiB1bmRlZmluZWQsIGN1cnJlbnRLZXk6IF9yb290Lm1heEtleSgpIH07XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBBZHZhbmNlcyB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0IHN0ZXAgaW4gdGhlIHdhbGsgb2YgaXRzIHRyZWUuXHJcbiAgICAgKiBDdXJzb3JzIGFyZSB3YWxrZWQgYmFja3dhcmRzIGluIHNvcnQgb3JkZXIsIGFzIHRoaXMgYWxsb3dzIHRoZW0gdG8gbGV2ZXJhZ2UgbWF4S2V5KCkgaW4gb3JkZXIgdG8gYmUgY29tcGFyZWQgaW4gTygxKS5cclxuICAgICAqIEBwYXJhbSBjdXJzb3IgVGhlIGN1cnNvciB0byBzdGVwXHJcbiAgICAgKiBAcGFyYW0gc3RlcFRvTm9kZSBJZiB0cnVlLCB0aGUgY3Vyc29yIHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIG5leHQgbm9kZSAoc2tpcHBpbmcgdmFsdWVzKVxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgc3RlcCB3YXMgY29tcGxldGVkIGFuZCBmYWxzZSBpZiB0aGUgc3RlcCB3b3VsZCBoYXZlIGNhdXNlZCB0aGUgY3Vyc29yIHRvIG1vdmUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHRyZWUuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnN0ZXAgPSBmdW5jdGlvbiAoY3Vyc29yLCBzdGVwVG9Ob2RlKSB7XHJcbiAgICAgICAgdmFyIGludGVybmFsU3BpbmUgPSBjdXJzb3IuaW50ZXJuYWxTcGluZSwgbGV2ZWxJbmRpY2VzID0gY3Vyc29yLmxldmVsSW5kaWNlcywgbGVhZiA9IGN1cnNvci5sZWFmO1xyXG4gICAgICAgIGlmIChzdGVwVG9Ob2RlID09PSB0cnVlIHx8IGxlYWYpIHtcclxuICAgICAgICAgICAgdmFyIGxldmVsc0xlbmd0aCA9IGxldmVsSW5kaWNlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIC8vIFN0ZXAgdG8gdGhlIG5leHQgbm9kZSBvbmx5IGlmOlxyXG4gICAgICAgICAgICAvLyAtIFdlIGFyZSBleHBsaWNpdGx5IGRpcmVjdGVkIHRvIHZpYSBzdGVwVG9Ob2RlLCBvclxyXG4gICAgICAgICAgICAvLyAtIFRoZXJlIGFyZSBubyBrZXkvdmFsdWUgcGFpcnMgbGVmdCB0byBzdGVwIHRvIGluIHRoaXMgbGVhZlxyXG4gICAgICAgICAgICBpZiAoc3RlcFRvTm9kZSA9PT0gdHJ1ZSB8fCBsZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV0gPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBzcGluZUxlbmd0aCA9IGludGVybmFsU3BpbmUubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgLy8gUm9vdCBpcyBsZWFmXHJcbiAgICAgICAgICAgICAgICBpZiAoc3BpbmVMZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gV2FsayBiYWNrIHVwIHRoZSB0cmVlIHVudGlsIHdlIGZpbmQgYSBuZXcgc3VidHJlZSB0byBkZXNjZW5kIGludG9cclxuICAgICAgICAgICAgICAgIHZhciBub2RlTGV2ZWxJbmRleCA9IHNwaW5lTGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIHZhciBsZXZlbEluZGV4V2Fsa0JhY2sgPSBub2RlTGV2ZWxJbmRleDtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChsZXZlbEluZGV4V2Fsa0JhY2sgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxldmVsSW5kZXhXYWxrQmFjayA8IGxldmVsc0xlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBsZWFmIHN0YXRlIGZyb20gY3Vyc29yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsSW5kaWNlcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3YWxrZWQgdXB3YXJkcyBwYXN0IGFueSBpbnRlcm5hbCBub2RlLCBzbGljZSB0aGVtIG91dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWxJbmRleFdhbGtCYWNrIDwgbm9kZUxldmVsSW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuaW50ZXJuYWxTcGluZSA9IGludGVybmFsU3BpbmUuc2xpY2UoMCwgbGV2ZWxJbmRleFdhbGtCYWNrICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGludGVybmFsIG5vZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBpbnRlcm5hbFNwaW5lW2xldmVsSW5kZXhXYWxrQmFja11bLS1sZXZlbEluZGljZXNbbGV2ZWxJbmRleFdhbGtCYWNrXV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZGV4V2Fsa0JhY2stLTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEN1cnNvciBpcyBpbiB0aGUgZmFyIGxlZnQgbGVhZiBvZiB0aGUgdHJlZSwgbm8gbW9yZSBub2RlcyB0byBlbnVtZXJhdGVcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIE1vdmUgdG8gbmV3IGxlYWYgdmFsdWVcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gLS1sZXZlbEluZGljZXNbbGV2ZWxzTGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgICBjdXJzb3IuY3VycmVudEtleSA9IGxlYWYua2V5c1t2YWx1ZUluZGV4XTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgeyAvLyBDdXJzb3IgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWx1ZSBpbiBhIGxlYWYsIHNvIG1vdmUgZG93bndhcmRzXHJcbiAgICAgICAgICAgIHZhciBuZXh0TGV2ZWwgPSBpbnRlcm5hbFNwaW5lLmxlbmd0aDtcclxuICAgICAgICAgICAgdmFyIGN1cnJlbnRMZXZlbCA9IG5leHRMZXZlbCAtIDE7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gaW50ZXJuYWxTcGluZVtjdXJyZW50TGV2ZWxdW2xldmVsSW5kaWNlc1tjdXJyZW50TGV2ZWxdXTtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFbnRlcmluZyBpbnRvIGEgbGVhZi4gU2V0IHRoZSBjdXJzb3IgdG8gcG9pbnQgYXQgdGhlIGxhc3Qga2V5L3ZhbHVlIHBhaXIuXHJcbiAgICAgICAgICAgICAgICBjdXJzb3IubGVhZiA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVJbmRleCA9IGxldmVsSW5kaWNlc1tuZXh0TGV2ZWxdID0gbm9kZS52YWx1ZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIGN1cnNvci5jdXJyZW50S2V5ID0gbm9kZS5rZXlzW3ZhbHVlSW5kZXhdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIGludGVybmFsU3BpbmVbbmV4dExldmVsXSA9IGNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkSW5kZXggPSBjaGlsZHJlbi5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgbGV2ZWxJbmRpY2VzW25leHRMZXZlbF0gPSBjaGlsZEluZGV4O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yLmN1cnJlbnRLZXkgPSBjaGlsZHJlbltjaGlsZEluZGV4XS5tYXhLZXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB0aGUgdHdvIGN1cnNvcnMuIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoaWNoIGN1cnNvciBpcyBhaGVhZCBpbiBhIHdhbGsuXHJcbiAgICAgKiBOb3RlIHRoYXQgY3Vyc29ycyBhcmUgYWR2YW5jZWQgaW4gcmV2ZXJzZSBzb3J0aW5nIG9yZGVyLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5jb21wYXJlID0gZnVuY3Rpb24gKGN1cnNvckEsIGN1cnNvckIsIGNvbXBhcmVLZXlzKSB7XHJcbiAgICAgICAgdmFyIGhlaWdodEEgPSBjdXJzb3JBLmhlaWdodCwgY3VycmVudEtleUEgPSBjdXJzb3JBLmN1cnJlbnRLZXksIGxldmVsSW5kaWNlc0EgPSBjdXJzb3JBLmxldmVsSW5kaWNlcztcclxuICAgICAgICB2YXIgaGVpZ2h0QiA9IGN1cnNvckIuaGVpZ2h0LCBjdXJyZW50S2V5QiA9IGN1cnNvckIuY3VycmVudEtleSwgbGV2ZWxJbmRpY2VzQiA9IGN1cnNvckIubGV2ZWxJbmRpY2VzO1xyXG4gICAgICAgIC8vIFJldmVyc2UgdGhlIGNvbXBhcmlzb24gb3JkZXIsIGFzIGN1cnNvcnMgYXJlIGFkdmFuY2VkIGluIHJldmVyc2Ugc29ydGluZyBvcmRlclxyXG4gICAgICAgIHZhciBrZXlDb21wYXJpc29uID0gY29tcGFyZUtleXMoY3VycmVudEtleUIsIGN1cnJlbnRLZXlBKTtcclxuICAgICAgICBpZiAoa2V5Q29tcGFyaXNvbiAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5Q29tcGFyaXNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTm9ybWFsaXplIGRlcHRoIHZhbHVlcyByZWxhdGl2ZSB0byB0aGUgc2hvcnRlc3QgdHJlZS5cclxuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBjb25jdXJyZW50IGN1cnNvciB3YWxrcyBvZiB0cmVlcyBvZiBkaWZmZXJpbmcgaGVpZ2h0cyBjYW4gcmVsaWFibHkgbGFuZCBvbiBzaGFyZWQgbm9kZXMgYXQgdGhlIHNhbWUgdGltZS5cclxuICAgICAgICAvLyBUbyBhY2NvbXBsaXNoIHRoaXMsIGEgY3Vyc29yIHRoYXQgaXMgb24gYW4gaW50ZXJuYWwgbm9kZSBhdCBkZXB0aCBEMSB3aXRoIG1heEtleSBYIGlzIGNvbnNpZGVyZWQgXCJiZWhpbmRcIiBhIGN1cnNvciBvbiBhblxyXG4gICAgICAgIC8vIGludGVybmFsIG5vZGUgYXQgZGVwdGggRDIgd2l0aCBtYXhLZXkgWSwgd2hlbiBEMSA8IEQyLiBUaHVzLCBhbHdheXMgd2Fsa2luZyB0aGUgY3Vyc29yIHRoYXQgaXMgXCJiZWhpbmRcIiB3aWxsIGFsbG93IHRoZSBjdXJzb3JcclxuICAgICAgICAvLyBhdCBzaGFsbG93ZXIgZGVwdGggKGJ1dCBlcXVhbCBtYXhLZXkpIHRvIFwiY2F0Y2ggdXBcIiBhbmQgbGFuZCBvbiBzaGFyZWQgbm9kZXMuXHJcbiAgICAgICAgdmFyIGhlaWdodE1pbiA9IGhlaWdodEEgPCBoZWlnaHRCID8gaGVpZ2h0QSA6IGhlaWdodEI7XHJcbiAgICAgICAgdmFyIGRlcHRoQU5vcm1hbGl6ZWQgPSBsZXZlbEluZGljZXNBLmxlbmd0aCAtIChoZWlnaHRBIC0gaGVpZ2h0TWluKTtcclxuICAgICAgICB2YXIgZGVwdGhCTm9ybWFsaXplZCA9IGxldmVsSW5kaWNlc0IubGVuZ3RoIC0gKGhlaWdodEIgLSBoZWlnaHRNaW4pO1xyXG4gICAgICAgIHJldHVybiBkZXB0aEFOb3JtYWxpemVkIC0gZGVwdGhCTm9ybWFsaXplZDtcclxuICAgIH07XHJcbiAgICAvLyBFbmQgb2YgaGVscGVyIG1ldGhvZHMgZm9yIGRpZmZBZ2FpbnN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUga2V5cyBvZiBlYWNoIHBhaXIgaW4gYXNjZW5kaW5nIG9yZGVyLlxyXG4gICAgICogIEBwYXJhbSBmaXJzdEtleTogTWluaW11bSBrZXkgdG8gaW5jbHVkZSBpbiB0aGUgb3V0cHV0LiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoZmlyc3RLZXkpIHtcclxuICAgICAgICB2YXIgaXQgPSB0aGlzLmVudHJpZXMoZmlyc3RLZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gaXRlcmF0b3IoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgbiA9IGl0Lm5leHQoKTtcclxuICAgICAgICAgICAgaWYgKG4udmFsdWUpXHJcbiAgICAgICAgICAgICAgICBuLnZhbHVlID0gbi52YWx1ZVswXTtcclxuICAgICAgICAgICAgcmV0dXJuIG47XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgYSBuZXcgaXRlcmF0b3IgZm9yIGl0ZXJhdGluZyB0aGUgdmFsdWVzIG9mIGVhY2ggcGFpciBpbiBvcmRlciBieSBrZXkuXHJcbiAgICAgKiAgQHBhcmFtIGZpcnN0S2V5OiBNaW5pbXVtIGtleSB3aG9zZSBhc3NvY2lhdGVkIHZhbHVlIGlzIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24gKGZpcnN0S2V5KSB7XHJcbiAgICAgICAgdmFyIGl0ID0gdGhpcy5lbnRyaWVzKGZpcnN0S2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIG4gPSBpdC5uZXh0KCk7XHJcbiAgICAgICAgICAgIGlmIChuLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgbi52YWx1ZSA9IG4udmFsdWVbMV07XHJcbiAgICAgICAgICAgIHJldHVybiBuO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCVHJlZS5wcm90b3R5cGUsIFwibWF4Tm9kZVNpemVcIiwge1xyXG4gICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgICAgICAvKiogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hpbGRyZW4vdmFsdWVzIGJlZm9yZSBub2RlcyB3aWxsIHNwbGl0LiAqL1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWF4Tm9kZVNpemU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIEdldHMgdGhlIGxvd2VzdCBrZXkgaW4gdGhlIHRyZWUuIENvbXBsZXhpdHk6IE8obG9nIHNpemUpICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcm9vdC5taW5LZXkoKTsgfTtcclxuICAgIC8qKiBHZXRzIHRoZSBoaWdoZXN0IGtleSBpbiB0aGUgdHJlZS4gQ29tcGxleGl0eTogTygxKSAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLm1heEtleSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3Jvb3QubWF4S2V5KCk7IH07XHJcbiAgICAvKiogUXVpY2tseSBjbG9uZXMgdGhlIHRyZWUgYnkgbWFya2luZyB0aGUgcm9vdCBub2RlIGFzIHNoYXJlZC5cclxuICAgICAqICBCb3RoIGNvcGllcyByZW1haW4gZWRpdGFibGUuIFdoZW4geW91IG1vZGlmeSBlaXRoZXIgY29weSwgYW55XHJcbiAgICAgKiAgbm9kZXMgdGhhdCBhcmUgc2hhcmVkIChvciBwb3RlbnRpYWxseSBzaGFyZWQpIGJldHdlZW4gdGhlIHR3b1xyXG4gICAgICogIGNvcGllcyBhcmUgY2xvbmVkIHNvIHRoYXQgdGhlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCBvdGhlciBjb3BpZXMuXHJcbiAgICAgKiAgVGhpcyBpcyBrbm93biBhcyBjb3B5LW9uLXdyaXRlIGJlaGF2aW9yLCBvciBcImxhenkgY29weWluZ1wiLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgQlRyZWUodW5kZWZpbmVkLCB0aGlzLl9jb21wYXJlLCB0aGlzLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgcmVzdWx0Ll9yb290ID0gdGhpcy5fcm9vdDtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIFBlcmZvcm1zIGEgZ3JlZWR5IGNsb25lLCBpbW1lZGlhdGVseSBkdXBsaWNhdGluZyBhbnkgbm9kZXMgdGhhdCBhcmVcclxuICAgICAqICBub3QgY3VycmVudGx5IG1hcmtlZCBhcyBzaGFyZWQsIGluIG9yZGVyIHRvIGF2b2lkIG1hcmtpbmcgYW55XHJcbiAgICAgKiAgYWRkaXRpb25hbCBub2RlcyBhcyBzaGFyZWQuXHJcbiAgICAgKiAgQHBhcmFtIGZvcmNlIENsb25lIGFsbCBub2RlcywgZXZlbiBzaGFyZWQgb25lcy5cclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBCVHJlZSh1bmRlZmluZWQsIHRoaXMuX2NvbXBhcmUsIHRoaXMuX21heE5vZGVTaXplKTtcclxuICAgICAgICByZXN1bHQuX3Jvb3QgPSB0aGlzLl9yb290LmdyZWVkeUNsb25lKGZvcmNlKTtcclxuICAgICAgICByZXN1bHQuX3NpemUgPSB0aGlzLl9zaXplO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYW4gYXJyYXkgZmlsbGVkIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSB0cmVlLCBzb3J0ZWQgYnkga2V5ICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChtYXhMZW5ndGgpIHtcclxuICAgICAgICBpZiAobWF4TGVuZ3RoID09PSB2b2lkIDApIHsgbWF4TGVuZ3RoID0gMHg3RkZGRkZGRjsgfVxyXG4gICAgICAgIHZhciBtaW4gPSB0aGlzLm1pbktleSgpLCBtYXggPSB0aGlzLm1heEtleSgpO1xyXG4gICAgICAgIGlmIChtaW4gIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2UobWluLCBtYXgsIHRydWUsIG1heExlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCBrZXlzLCBzb3J0ZWQgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5rZXlzQXJyYXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcclxuICAgICAgICB0aGlzLl9yb290LmZvclJhbmdlKHRoaXMubWluS2V5KCksIHRoaXMubWF4S2V5KCksIHRydWUsIGZhbHNlLCB0aGlzLCAwLCBmdW5jdGlvbiAoaywgdikgeyByZXN1bHRzLnB1c2goayk7IH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfTtcclxuICAgIC8qKiBHZXRzIGFuIGFycmF5IG9mIGFsbCB2YWx1ZXMsIHNvcnRlZCBieSBrZXkgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS52YWx1ZXNBcnJheSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7IHJlc3VsdHMucHVzaCh2KTsgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9O1xyXG4gICAgLyoqIEdldHMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0cmVlJ3MgZGF0YSBiYXNlZCBvbiB0b0FycmF5KCkuICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9BcnJheSgpLnRvU3RyaW5nKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFN0b3JlcyBhIGtleS12YWx1ZSBwYWlyIG9ubHkgaWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIHRyZWUuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGEgbmV3IGtleSB3YXMgYWRkZWRcclxuICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0SWZOb3RQcmVzZW50ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXQoa2V5LCB2YWx1ZSwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIGxhcmdlciB0aGFuIHRoZSBzcGVjaWZpZWQga2V5IChvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm9uZSkuXHJcbiAgICAgKiBJZiBrZXkgPT09IHVuZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsb3dlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBvbiBldmVyeSBpdGVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWluUGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRIaWdoZXIoa2V5LCB0aGlzLl9jb21wYXJlLCBmYWxzZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IGtleSBsYXJnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dEhpZ2hlcktleSh1bmRlZmluZWQpIHJldHVybnMgdGhlIGxvd2VzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0SGlnaGVyS2V5ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIHZhciBwID0gdGhpcy5uZXh0SGlnaGVyUGFpcihrZXksIFJldXNlZEFycmF5KTtcclxuICAgICAgICByZXR1cm4gcCAmJiBwWzBdO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHBhaXIgd2hvc2Uga2V5IGlzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSAob3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUpLlxyXG4gICAgICogIElmIGtleSA9PT0gdW5kZWZpbmVkLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhpZ2hlc3QgcGFpci5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAgICogQHBhcmFtIHJldXNlZEFycmF5IE9wdGlvbmFsIGFycmF5IHVzZWQgcmVwZWF0ZWRseSB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMsIHRvXHJcbiAgICAgKiAgICAgICAgYXZvaWQgY3JlYXRpbmcgYSBuZXcgYXJyYXkgZWFjaCB0aW1lIHlvdSBjYWxsIHRoaXMgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUubmV4dExvd2VyUGFpciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV1c2VkQXJyYXkgPSByZXVzZWRBcnJheSB8fCBbXTtcclxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QubWF4UGFpcihyZXVzZWRBcnJheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRMb3dlcihrZXksIHRoaXMuX2NvbXBhcmUsIGZhbHNlLCByZXVzZWRBcnJheSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIFJldHVybnMgdGhlIG5leHQga2V5IHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXHJcbiAgICAgKiAgQWxzbywgbmV4dExvd2VyS2V5KHVuZGVmaW5lZCkgcmV0dXJucyB0aGUgaGlnaGVzdCBrZXkuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5uZXh0TG93ZXJLZXkgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgdmFyIHAgPSB0aGlzLm5leHRMb3dlclBhaXIoa2V5LCBSZXVzZWRBcnJheSk7XHJcbiAgICAgICAgcmV0dXJuIHAgJiYgcFswXTtcclxuICAgIH07XHJcbiAgICAvKiogUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdXBwbGllZCBrZXkgaWYgaXQgZXhpc3RzXHJcbiAgICAgKiAgb3IgdGhlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXh0IGxvd2VyIHBhaXIgb3RoZXJ3aXNlLiBJZiB0aGVyZSBpcyBub1xyXG4gICAgICogIG5leHQgbG93ZXIgcGFpciwgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0gcmV1c2VkQXJyYXkgT3B0aW9uYWwgYXJyYXkgdXNlZCByZXBlYXRlZGx5IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycywgdG9cclxuICAgICAqICAgICAgICBhdm9pZCBjcmVhdGluZyBhIG5ldyBhcnJheSBlYWNoIHRpbWUgeW91IGNhbGwgdGhpcyBtZXRob2QuXHJcbiAgICAgKiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFBhaXJPck5leHRMb3dlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dExvd2VyKGtleSwgdGhpcy5fY29tcGFyZSwgdHJ1ZSwgcmV1c2VkQXJyYXkgfHwgW10pO1xyXG4gICAgfTtcclxuICAgIC8qKiBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cHBsaWVkIGtleSBpZiBpdCBleGlzdHNcclxuICAgICAqICBvciB0aGUgcGFpciBhc3NvY2lhdGVkIHdpdGggdGhlIG5leHQgbG93ZXIgcGFpciBvdGhlcndpc2UuIElmIHRoZXJlIGlzIG5vXHJcbiAgICAgKiAgbmV4dCBsb3dlciBwYWlyLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXHJcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgICAqIEBwYXJhbSByZXVzZWRBcnJheSBPcHRpb25hbCBhcnJheSB1c2VkIHJlcGVhdGVkbHkgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLCB0b1xyXG4gICAgICogICAgICAgIGF2b2lkIGNyZWF0aW5nIGEgbmV3IGFycmF5IGVhY2ggdGltZSB5b3UgY2FsbCB0aGlzIG1ldGhvZC5cclxuICAgICAqICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIHJldXNlZEFycmF5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIHRoaXMuX2NvbXBhcmUsIHRydWUsIHJldXNlZEFycmF5IHx8IFtdKTtcclxuICAgIH07XHJcbiAgICAvKiogRWRpdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIGtleSBpbiB0aGUgdHJlZSwgaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBrZXkgZXhpc3RlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5jaGFuZ2VJZlByZXNlbnQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShrZXksIGtleSwgdHJ1ZSwgZnVuY3Rpb24gKGssIHYpIHsgcmV0dXJuICh7IHZhbHVlOiB2YWx1ZSB9KTsgfSkgIT09IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBCdWlsZHMgYW4gYXJyYXkgb2YgcGFpcnMgZnJvbSB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGtleXMsIHNvcnRlZCBieSBrZXkuXHJcbiAgICAgKiBFYWNoIHJldHVybmVkIHBhaXIgaXMgYWxzbyBhbiBhcnJheTogcGFpclswXSBpcyB0aGUga2V5LCBwYWlyWzFdIGlzIHRoZSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBsb3cgVGhlIGZpcnN0IGtleSBpbiB0aGUgYXJyYXkgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGl0cyBwYWlyIHdpbGwgYmUgaW5jbHVkZWRcclxuICAgICAqICAgICAgICBpbiB0aGUgb3V0cHV0IGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuIE5vdGU6IGlmIHRoZVxyXG4gICAgICogICAgICAgIGBsb3dgIGtleSBpcyBwcmVzZW50LCBpdCBpcyBhbHdheXMgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC5cclxuICAgICAqIEBwYXJhbSBtYXhMZW5ndGggTGVuZ3RoIGxpbWl0LiBnZXRSYW5nZSB3aWxsIHN0b3Agc2Nhbm5pbmcgdGhlIHRyZWUgd2hlblxyXG4gICAgICogICAgICAgICAgICAgICAgICB0aGUgYXJyYXkgcmVhY2hlcyB0aGlzIHNpemUuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKHJlc3VsdC5sZW5ndGggKyBsb2cgc2l6ZSlcclxuICAgICAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmdldFJhbmdlID0gZnVuY3Rpb24gKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIG1heExlbmd0aCkge1xyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAweDNGRkZGRkY7IH1cclxuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3Jvb3QuZm9yUmFuZ2UobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZmFsc2UsIHRoaXMsIDAsIGZ1bmN0aW9uIChrLCB2KSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChbaywgdl0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGggPiBtYXhMZW5ndGggPyBCcmVhayA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBhbGwgcGFpcnMgZnJvbSBhIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzLlxyXG4gICAgICogQHBhcmFtIHBhaXJzIFBhaXJzIHRvIGFkZCB0byB0aGlzIHRyZWUuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyxcclxuICAgICAqICAgICAgICBsYXRlciBwYWlycyBjdXJyZW50bHkgb3ZlcndyaXRlIGVhcmxpZXIgb25lcyAoZS5nLiBbWzAsMV0sWzAsN11dXHJcbiAgICAgKiAgICAgICAgYXNzb2NpYXRlcyAwIHdpdGggNy4pXHJcbiAgICAgKiBAcGFyYW0gb3ZlcndyaXRlIFdoZXRoZXIgdG8gb3ZlcndyaXRlIHBhaXJzIHRoYXQgYWxyZWFkeSBleGlzdCAoaWYgZmFsc2UsXHJcbiAgICAgKiAgICAgICAgcGFpcnNbaV0gaXMgaWdub3JlZCB3aGVuIHRoZSBrZXkgcGFpcnNbaV1bMF0gYWxyZWFkeSBleGlzdHMuKVxyXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiBwYWlycyBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8ocGFpcnMubGVuZ3RoICogbG9nKHNpemUgKyBwYWlycy5sZW5ndGgpKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnMgPSBmdW5jdGlvbiAocGFpcnMsIG92ZXJ3cml0ZSkge1xyXG4gICAgICAgIHZhciBhZGRlZCA9IDA7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2V0KHBhaXJzW2ldWzBdLCBwYWlyc1tpXVsxXSwgb3ZlcndyaXRlKSlcclxuICAgICAgICAgICAgICAgIGFkZGVkKys7XHJcbiAgICAgICAgcmV0dXJuIGFkZGVkO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBrZXlzLCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkga2V5LlxyXG4gICAgICogTm90ZTogdGhlIGNhbGxiYWNrIGBvbkZvdW5kYCBtdXN0IG5vdCBpbnNlcnQgb3IgcmVtb3ZlIGl0ZW1zIGluIHRoZVxyXG4gICAgICogY29sbGVjdGlvbi4gRG9pbmcgc28gbWF5IGNhdXNlIGluY29ycmVjdCBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlXHJcbiAgICAgKiBjYWxsYmFjayBhZnRlcndhcmQuXHJcbiAgICAgKiBAcGFyYW0gbG93IFRoZSBmaXJzdCBrZXkgc2Nhbm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgbG93YC5cclxuICAgICAqIEBwYXJhbSBoaWdoIFNjYW5uaW5nIHN0b3BzIHdoZW4gYSBrZXkgbGFyZ2VyIHRoYW4gdGhpcyBpcyByZWFjaGVkLlxyXG4gICAgICogQHBhcmFtIGluY2x1ZGVIaWdoIElmIHRoZSBgaGlnaGAga2V5IGlzIHByZXNlbnQsIGBvbkZvdW5kYCBpcyBjYWxsZWQgZm9yXHJcbiAgICAgKiAgICAgICAgdGhhdCBmaW5hbCBwYWlyIGlmIGFuZCBvbmx5IGlmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUuXHJcbiAgICAgKiBAcGFyYW0gb25Gb3VuZCBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyLiBUaGlzXHJcbiAgICAgKiAgICAgICAgZnVuY3Rpb24gY2FuIHJldHVybiB7YnJlYWs6Un0gdG8gc3RvcCBlYXJseSB3aXRoIHJlc3VsdCBSLlxyXG4gICAgICogQHBhcmFtIGluaXRpYWxDb3VudGVyIEluaXRpYWwgdGhpcmQgYXJndW1lbnQgb2Ygb25Gb3VuZC4gVGhpcyB2YWx1ZVxyXG4gICAgICogICAgICAgIGluY3JlYXNlcyBieSBvbmUgZWFjaCB0aW1lIGBvbkZvdW5kYCBpcyBjYWxsZWQuIERlZmF1bHQ6IDBcclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIGZvdW5kLCBvciBSIGlmIHRoZSBjYWxsYmFjayByZXR1cm5lZFxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIHRvIHN0b3AgZWFybHkuXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcHV0YXRpb25hbCBjb21wbGV4aXR5OiBPKG51bWJlciBvZiBpdGVtcyBzY2FubmVkICsgbG9nIHNpemUpXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBvbkZvdW5kLCBpbml0aWFsQ291bnRlcikge1xyXG4gICAgICAgIHZhciByID0gdGhpcy5fcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBmYWxzZSwgdGhpcywgaW5pdGlhbENvdW50ZXIgfHwgMCwgb25Gb3VuZCk7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyBhbmQgcG90ZW50aWFsbHkgbW9kaWZpZXMgdmFsdWVzIGZvciBhIHN1YnNlcXVlbmNlIG9mIGtleXMuXHJcbiAgICAgKiBOb3RlOiB0aGUgY2FsbGJhY2sgYG9uRm91bmRgIHNob3VsZCBpZGVhbGx5IGJlIGEgcHVyZSBmdW5jdGlvbi5cclxuICAgICAqICAgU3BlY2ZpY2FsbHksIGl0IG11c3Qgbm90IGluc2VydCBpdGVtcywgY2FsbCBjbG9uZSgpLCBvciBjaGFuZ2VcclxuICAgICAqICAgdGhlIGNvbGxlY3Rpb24gZXhjZXB0IHZpYSByZXR1cm4gdmFsdWU7IG91dC1vZi1iYW5kIGVkaXRpbmcgbWF5XHJcbiAgICAgKiAgIGNhdXNlIGFuIGV4Y2VwdGlvbiBvciBtYXkgY2F1c2UgaW5jb3JyZWN0IGRhdGEgdG8gYmUgc2VudCB0b1xyXG4gICAgICogICB0aGUgY2FsbGJhY2sgKGR1cGxpY2F0ZSBvciBtaXNzZWQgaXRlbXMpLiBJdCBtdXN0IG5vdCBjYXVzZSBhXHJcbiAgICAgKiAgIGNsb25lKCkgb2YgdGhlIGNvbGxlY3Rpb24sIG90aGVyd2lzZSB0aGUgY2xvbmUgY291bGQgYmUgbW9kaWZpZWRcclxuICAgICAqICAgYnkgY2hhbmdlcyByZXF1ZXN0ZWQgYnkgdGhlIGNhbGxiYWNrLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBJZiB0aGUgYGhpZ2hgIGtleSBpcyBwcmVzZW50LCBgb25Gb3VuZGAgaXMgY2FsbGVkIGZvclxyXG4gICAgICogICAgICAgIHRoYXQgZmluYWwgcGFpciBpZiBhbmQgb25seSBpZiB0aGlzIHBhcmFtZXRlciBpcyB0cnVlLlxyXG4gICAgICogQHBhcmFtIG9uRm91bmQgQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBmb3IgZWFjaCBrZXktdmFsdWUgcGFpci4gVGhpc1xyXG4gICAgICogICAgICAgIGZ1bmN0aW9uIGNhbiByZXR1cm4gYHt2YWx1ZTp2fWAgdG8gY2hhbmdlIHRoZSB2YWx1ZSBhc3NvY2lhdGVkXHJcbiAgICAgKiAgICAgICAgd2l0aCB0aGUgY3VycmVudCBrZXksIGB7ZGVsZXRlOnRydWV9YCB0byBkZWxldGUgdGhlIGN1cnJlbnQgcGFpcixcclxuICAgICAqICAgICAgICBge2JyZWFrOlJ9YCB0byBzdG9wIGVhcmx5IHdpdGggcmVzdWx0IFIsIG9yIGl0IGNhbiByZXR1cm4gbm90aGluZ1xyXG4gICAgICogICAgICAgICh1bmRlZmluZWQgb3Ige30pIHRvIGNhdXNlIG5vIGVmZmVjdCBhbmQgY29udGludWUgaXRlcmF0aW5nLlxyXG4gICAgICogICAgICAgIGB7YnJlYWs6Un1gIGNhbiBiZSBjb21iaW5lZCB3aXRoIG9uZSBvZiB0aGUgb3RoZXIgdHdvIGNvbW1hbmRzLlxyXG4gICAgICogICAgICAgIFRoZSB0aGlyZCBhcmd1bWVudCBgY291bnRlcmAgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBpdGVyYXRlZFxyXG4gICAgICogICAgICAgIHByZXZpb3VzbHk7IGl0IGVxdWFscyAwIHdoZW4gYG9uRm91bmRgIGlzIGNhbGxlZCB0aGUgZmlyc3QgdGltZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgdmFsdWVzIHNjYW5uZWQsIG9yIFIgaWYgdGhlIGNhbGxiYWNrIHJldHVybmVkXHJcbiAgICAgKiAgICAgICAgYHticmVhazpSfWAgdG8gc3RvcCBlYXJseS5cclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIGl0ZW1zIHNjYW5uZWQgKyBsb2cgc2l6ZSlcclxuICAgICAqICAgTm90ZTogaWYgdGhlIHRyZWUgaGFzIGJlZW4gY2xvbmVkIHdpdGggY2xvbmUoKSwgYW55IHNoYXJlZFxyXG4gICAgICogICBub2RlcyBhcmUgY29waWVkIGJlZm9yZSBgb25Gb3VuZGAgaXMgY2FsbGVkLiBUaGlzIHRha2VzIE8obikgdGltZVxyXG4gICAgICogICB3aGVyZSBuIGlzIHByb3BvcnRpb25hbCB0byB0aGUgYW1vdW50IG9mIHNoYXJlZCBkYXRhIHNjYW5uZWQuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICB2YXIgcm9vdCA9IHRoaXMuX3Jvb3Q7XHJcbiAgICAgICAgaWYgKHJvb3QuaXNTaGFyZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5jbG9uZSgpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciByID0gcm9vdC5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCB0cnVlLCB0aGlzLCBpbml0aWFsQ291bnRlciB8fCAwLCBvbkZvdW5kKTtcclxuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByID09PSBcIm51bWJlclwiID8gciA6IHIuYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB2YXIgaXNTaGFyZWQgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChyb290LmtleXMubGVuZ3RoIDw9IDEgJiYgIXJvb3QuaXNMZWFmKSB7XHJcbiAgICAgICAgICAgICAgICBpc1NoYXJlZCB8fCAoaXNTaGFyZWQgPSByb290LmlzU2hhcmVkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSByb290ID0gcm9vdC5rZXlzLmxlbmd0aCA9PT0gMCA/IEVtcHR5TGVhZiA6XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5jaGlsZHJlblswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBJZiBhbnkgYW5jZXN0b3Igb2YgdGhlIG5ldyByb290IHdhcyBzaGFyZWQsIHRoZSBuZXcgcm9vdCBtdXN0IGFsc28gYmUgc2hhcmVkXHJcbiAgICAgICAgICAgIGlmIChpc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAgICAgcm9vdC5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqIFNhbWUgYXMgYGVkaXRSYW5nZWAgZXhjZXB0IHRoYXQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCBmb3IgYWxsIHBhaXJzLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmVkaXRBbGwgPSBmdW5jdGlvbiAob25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0UmFuZ2UodGhpcy5taW5LZXkoKSwgdGhpcy5tYXhLZXkoKSwgdHJ1ZSwgb25Gb3VuZCwgaW5pdGlhbENvdW50ZXIpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIHJhbmdlIG9mIGtleS12YWx1ZSBwYWlycyBmcm9tIHRoZSBCKyB0cmVlLlxyXG4gICAgICogQHBhcmFtIGxvdyBUaGUgZmlyc3Qga2V5IHNjYW5uZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGxvd2AuXHJcbiAgICAgKiBAcGFyYW0gaGlnaCBTY2FubmluZyBzdG9wcyB3aGVuIGEga2V5IGxhcmdlciB0aGFuIHRoaXMgaXMgcmVhY2hlZC5cclxuICAgICAqIEBwYXJhbSBpbmNsdWRlSGlnaCBTcGVjaWZpZXMgd2hldGhlciB0aGUgYGhpZ2hgIGtleSwgaWYgcHJlc2VudCwgaXMgZGVsZXRlZC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIHBhaXJzIHRoYXQgd2VyZSBkZWxldGVkLlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXB1dGF0aW9uYWwgY29tcGxleGl0eTogTyhsb2cgc2l6ZSArIG51bWJlciBvZiBpdGVtcyBkZWxldGVkKVxyXG4gICAgICovXHJcbiAgICBCVHJlZS5wcm90b3R5cGUuZGVsZXRlUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBEZWxldGVSYW5nZSk7XHJcbiAgICB9O1xyXG4gICAgLyoqIERlbGV0ZXMgYSBzZXJpZXMgb2Yga2V5cyBmcm9tIHRoZSBjb2xsZWN0aW9uLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmRlbGV0ZUtleXMgPSBmdW5jdGlvbiAoa2V5cykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCByID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZShrZXlzW2ldKSlcclxuICAgICAgICAgICAgICAgIHIrKztcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgIH07XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQlRyZWUucHJvdG90eXBlLCBcImhlaWdodFwiLCB7XHJcbiAgICAgICAgLyoqIEdldHMgdGhlIGhlaWdodCBvZiB0aGUgdHJlZTogdGhlIG51bWJlciBvZiBpbnRlcm5hbCBub2RlcyBiZXR3ZWVuIHRoZVxyXG4gICAgICAgICAqICBCVHJlZSBvYmplY3QgYW5kIGl0cyBsZWFmIG5vZGVzICh6ZXJvIGlmIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBub2RlcykuICovXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5fcm9vdDtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IC0xO1xyXG4gICAgICAgICAgICB3aGlsZSAobm9kZSkge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0Kys7XHJcbiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5pc0xlYWYgPyB1bmRlZmluZWQgOiBub2RlLmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLyoqIE1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5IHRvIGVuc3VyZSBpdCBpcyBub3QgYWNjaWRlbnRhbGx5IG1vZGlmaWVkLlxyXG4gICAgICogIEZyZWV6aW5nIGRvZXMgbm90IGhhdmUgdG8gYmUgcGVybWFuZW50OyB1bmZyZWV6ZSgpIHJldmVyc2VzIHRoZSBlZmZlY3QuXHJcbiAgICAgKiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgcmVwbGFjaW5nIG11dGF0b3IgZnVuY3Rpb25zIHdpdGggYSBmdW5jdGlvblxyXG4gICAgICogIHRoYXQgdGhyb3dzIGFuIEVycm9yLiBDb21wYXJlZCB0byB1c2luZyBhIHByb3BlcnR5IChlLmcuIHRoaXMuaXNGcm96ZW4pXHJcbiAgICAgKiAgdGhpcyBpbXBsZW1lbnRhdGlvbiBnaXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgaW4gbm9uLWZyb3plbiBCVHJlZXMuXHJcbiAgICAgKi9cclxuICAgIEJUcmVlLnByb3RvdHlwZS5mcmVlemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHQgPSB0aGlzO1xyXG4gICAgICAgIC8vIE5vdGU6IGFsbCBvdGhlciBtdXRhdG9ycyB1bHRpbWF0ZWx5IGNhbGwgc2V0KCkgb3IgZWRpdFJhbmdlKCkgXHJcbiAgICAgICAgLy8gICAgICAgc28gd2UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aG9zZSBvdGhlcnMuXHJcbiAgICAgICAgdC5jbGVhciA9IHQuc2V0ID0gdC5lZGl0UmFuZ2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byBtb2RpZnkgYSBmcm96ZW4gQlRyZWVcIik7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICAvKiogRW5zdXJlcyBtdXRhdGlvbnMgYXJlIGFsbG93ZWQsIHJldmVyc2luZyB0aGUgZWZmZWN0IG9mIGZyZWV6ZSgpLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLnVuZnJlZXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmUgXCJUaGUgb3BlcmFuZCBvZiBhICdkZWxldGUnIG9wZXJhdG9yIG11c3QgYmUgb3B0aW9uYWwuXCJcclxuICAgICAgICAvLyAgICAgICAgICAgICh3cm9uZzogZGVsZXRlIGRvZXMgbm90IGFmZmVjdCB0aGUgcHJvdG90eXBlLilcclxuICAgICAgICBkZWxldGUgdGhpcy5jbGVhcjtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgZGVsZXRlIHRoaXMuc2V0O1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBkZWxldGUgdGhpcy5lZGl0UmFuZ2U7XHJcbiAgICB9O1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJUcmVlLnByb3RvdHlwZSwgXCJpc0Zyb3plblwiLCB7XHJcbiAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdHJlZSBhcHBlYXJzIHRvIGJlIGZyb3plbi4gKi9cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoJ2VkaXRSYW5nZScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIC8qKiBTY2FucyB0aGUgdHJlZSBmb3Igc2lnbnMgb2Ygc2VyaW91cyBidWdzIChlLmcuIHRoaXMuc2l6ZSBkb2Vzbid0IG1hdGNoXHJcbiAgICAgKiAgbnVtYmVyIG9mIGVsZW1lbnRzLCBpbnRlcm5hbCBub2RlcyBub3QgY2FjaGluZyBtYXggZWxlbWVudCBwcm9wZXJseS4uLilcclxuICAgICAqICBDb21wdXRhdGlvbmFsIGNvbXBsZXhpdHk6IE8obnVtYmVyIG9mIG5vZGVzKSwgaS5lLiBPKHNpemUpLiBUaGlzIG1ldGhvZFxyXG4gICAgICogIHNraXBzIHRoZSBtb3N0IGV4cGVuc2l2ZSB0ZXN0IC0gd2hldGhlciBhbGwga2V5cyBhcmUgc29ydGVkIC0gYnV0IGl0XHJcbiAgICAgKiAgZG9lcyBjaGVjayB0aGF0IG1heEtleSgpIG9mIHRoZSBjaGlsZHJlbiBvZiBpbnRlcm5hbCBub2RlcyBhcmUgc29ydGVkLiAqL1xyXG4gICAgQlRyZWUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHNpemUgPSB0aGlzLl9yb290LmNoZWNrVmFsaWQoMCwgdGhpcywgMCk7XHJcbiAgICAgICAgY2hlY2soc2l6ZSA9PT0gdGhpcy5zaXplLCBcInNpemUgbWlzbWF0Y2g6IGNvdW50ZWQgXCIsIHNpemUsIFwiYnV0IHN0b3JlZFwiLCB0aGlzLnNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCVHJlZTtcclxufSgpKTtcclxuZXhwb3J0cy5kZWZhdWx0ID0gQlRyZWU7XHJcbi8qKiBBIFR5cGVTY3JpcHQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2ltcGx5IHJldHVybnMgaXRzIGFyZ3VtZW50LCB0eXBlZCBhc1xyXG4gKiAgYElTb3J0ZWRTZXQ8Sz5gIGlmIHRoZSBCVHJlZSBpbXBsZW1lbnRzIGl0LCBhcyBpdCBkb2VzIGlmIGBWIGV4dGVuZHMgdW5kZWZpbmVkYC5cclxuICogIElmIGBWYCBjYW5ub3QgYmUgYHVuZGVmaW5lZGAsIGl0IHJldHVybnMgYHVua25vd25gIGluc3RlYWQuIE9yIGF0IGxlYXN0LCB0aGF0XHJcbiAqICB3YXMgdGhlIGludGVudGlvbiwgYnV0IFR5cGVTY3JpcHQgaXMgYWN0aW5nIHdlaXJkIGFuZCBtYXkgcmV0dXJuIGBJU29ydGVkU2V0PEs+YFxyXG4gKiAgZXZlbiBpZiBgVmAgY2FuJ3QgYmUgYHVuZGVmaW5lZGAgKGRpc2N1c3Npb246IGJ0cmVlLXR5cGVzY3JpcHQgaXNzdWUgIzE0KSAqL1xyXG5mdW5jdGlvbiBhc1NldChidHJlZSkge1xyXG4gICAgcmV0dXJuIGJ0cmVlO1xyXG59XHJcbmV4cG9ydHMuYXNTZXQgPSBhc1NldDtcclxuaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpIC8vIGl0ZXJhdG9yIGlzIGVxdWl2YWxlbnQgdG8gZW50cmllcygpXHJcbiAgICBCVHJlZS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEJUcmVlLnByb3RvdHlwZS5lbnRyaWVzO1xyXG5CVHJlZS5wcm90b3R5cGUud2hlcmUgPSBCVHJlZS5wcm90b3R5cGUuZmlsdGVyO1xyXG5CVHJlZS5wcm90b3R5cGUuc2V0UmFuZ2UgPSBCVHJlZS5wcm90b3R5cGUuc2V0UGFpcnM7XHJcbkJUcmVlLnByb3RvdHlwZS5hZGQgPSBCVHJlZS5wcm90b3R5cGUuc2V0OyAvLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIElTZXRTaW5rPEs+XHJcbmZ1bmN0aW9uIGl0ZXJhdG9yKG5leHQpIHtcclxuICAgIGlmIChuZXh0ID09PSB2b2lkIDApIHsgbmV4dCA9IChmdW5jdGlvbiAoKSB7IHJldHVybiAoeyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0pOyB9KTsgfVxyXG4gICAgdmFyIHJlc3VsdCA9IHsgbmV4dDogbmV4dCB9O1xyXG4gICAgaWYgKFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IpXHJcbiAgICAgICAgcmVzdWx0W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKiogTGVhZiBub2RlIC8gYmFzZSBjbGFzcy4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbnZhciBCTm9kZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJOb2RlKGtleXMsIHZhbHVlcykge1xyXG4gICAgICAgIGlmIChrZXlzID09PSB2b2lkIDApIHsga2V5cyA9IFtdOyB9XHJcbiAgICAgICAgdGhpcy5rZXlzID0ga2V5cztcclxuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcyB8fCB1bmRlZlZhbHM7XHJcbiAgICAgICAgdGhpcy5pc1NoYXJlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCTm9kZS5wcm90b3R5cGUsIFwiaXNMZWFmXCIsIHtcclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZDsgfSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBTaGFyZWQgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5tYXhLZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5c1t0aGlzLmtleXMubGVuZ3RoIC0gMV07XHJcbiAgICB9O1xyXG4gICAgLy8gSWYga2V5IG5vdCBmb3VuZCwgcmV0dXJucyBpXmZhaWxYb3Igd2hlcmUgaSBpcyB0aGUgaW5zZXJ0aW9uIGluZGV4LlxyXG4gICAgLy8gQ2FsbGVycyB0aGF0IGRvbid0IGNhcmUgd2hldGhlciB0aGVyZSB3YXMgYSBtYXRjaCB3aWxsIHNldCBmYWlsWG9yPTAuXHJcbiAgICBCTm9kZS5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIChrZXksIGZhaWxYb3IsIGNtcCkge1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIHZhciBsbyA9IDAsIGhpID0ga2V5cy5sZW5ndGgsIG1pZCA9IGhpID4+IDE7XHJcbiAgICAgICAgd2hpbGUgKGxvIDwgaGkpIHtcclxuICAgICAgICAgICAgdmFyIGMgPSBjbXAoa2V5c1ttaWRdLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAoYyA8IDApXHJcbiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPiAwKSAvLyBrZXkgPCBrZXlzW21pZF1cclxuICAgICAgICAgICAgICAgIGhpID0gbWlkO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pZDtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjIGlzIE5hTiBvciBvdGhlcndpc2UgaW52YWxpZFxyXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbWlkID0gKGxvICsgaGkpID4+IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtaWQgXiBmYWlsWG9yO1xyXG4gICAgICAgIC8vIFVucm9sbGVkIHZlcnNpb246IGJlbmNobWFya3Mgc2hvdyBzYW1lIHNwZWVkLCBub3Qgd29ydGggdXNpbmdcclxuICAgICAgICAvKnZhciBpID0gMSwgYzogbnVtYmVyID0gMCwgc3VtID0gMDtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgICAgaSA9IDM7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPj0gOCkge1xyXG4gICAgICAgICAgICBpID0gNztcclxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDE2KSB7XHJcbiAgICAgICAgICAgICAgaSA9IDE1O1xyXG4gICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+PSAzMikge1xyXG4gICAgICAgICAgICAgICAgaSA9IDMxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID49IDY0KSB7XHJcbiAgICAgICAgICAgICAgICAgIGkgPSAxMjc7XHJcbiAgICAgICAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDY0IDogLTY0O1xyXG4gICAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMzIgOiAtMzI7XHJcbiAgICAgICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMTYgOiAtMTY7XHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gOCA6IC04O1xyXG4gICAgICAgICAgICAgIHN1bSArPSBjO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkgKz0gKGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDEpIDwgMCA/IDQgOiAtNDtcclxuICAgICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpICs9IChjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxKSA8IDAgPyAyIDogLTI7XHJcbiAgICAgICAgICBzdW0gKz0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgaSArPSAoYyA9IGkgPCBrZXlzLmxlbmd0aCA/IGNtcChrZXlzW2ldLCBrZXkpIDogMSkgPCAwID8gMSA6IC0xO1xyXG4gICAgICAgIGMgPSBpIDwga2V5cy5sZW5ndGggPyBjbXAoa2V5c1tpXSwga2V5KSA6IDE7XHJcbiAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgaWYgKGMgPCAwKSB7XHJcbiAgICAgICAgICArK2k7XHJcbiAgICAgICAgICBjID0gaSA8IGtleXMubGVuZ3RoID8gY21wKGtleXNbaV0sIGtleSkgOiAxO1xyXG4gICAgICAgICAgc3VtICs9IGM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzdW0gIT09IHN1bSkge1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0ga2V5KSAvLyBhdCBsZWFzdCB0aGUgc2VhcmNoIGtleSBpcyBub3QgTmFOXHJcbiAgICAgICAgICAgIHJldHVybiBrZXlzLmxlbmd0aCBeIGZhaWxYb3I7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjID09PSAwID8gaSA6IGkgXiBmYWlsWG9yOyovXHJcbiAgICB9O1xyXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vIExlYWYgTm9kZTogbWlzYyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWluS2V5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmtleXNbMF07XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLm1pblBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICBpZiAodGhpcy5rZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1swXTtcclxuICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzWzBdO1xyXG4gICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWF4UGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHZhciBsYXN0SW5kZXggPSB0aGlzLmtleXMubGVuZ3RoIC0gMTtcclxuICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tsYXN0SW5kZXhdO1xyXG4gICAgICAgIHJldXNlZEFycmF5WzFdID0gdGhpcy52YWx1ZXNbbGFzdEluZGV4XTtcclxuICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZSh0aGlzLmtleXMuc2xpY2UoMCksIHYgPT09IHVuZGVmVmFscyA/IHYgOiB2LnNsaWNlKDApKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ3JlZWR5Q2xvbmUgPSBmdW5jdGlvbiAoZm9yY2UpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NoYXJlZCAmJiAhZm9yY2UgPyB0aGlzIDogdGhpcy5jbG9uZSgpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5LCBkZWZhdWx0VmFsdWUsIHRyZWUpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCB0cmVlLl9jb21wYXJlKTtcclxuICAgICAgICByZXR1cm4gaSA8IDAgPyBkZWZhdWx0VmFsdWUgOiB0aGlzLnZhbHVlc1tpXTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgLTEsIGNvbXBhcmUpO1xyXG4gICAgICAgIHZhciBpbmRleE9yTG93ZXIgPSBpIDwgMCA/IH5pIC0gMSA6IChpbmNsdXNpdmUgPyBpIDogaSAtIDEpO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPj0gMCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IHRoaXMua2V5c1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVsxXSA9IHRoaXMudmFsdWVzW2luZGV4T3JMb3dlcl07XHJcbiAgICAgICAgICAgIHJldHVybiByZXVzZWRBcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlciA9IGZ1bmN0aW9uIChrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuaW5kZXhPZihrZXksIC0xLCBjb21wYXJlKTtcclxuICAgICAgICB2YXIgaW5kZXhPckxvd2VyID0gaSA8IDAgPyB+aSA6IChpbmNsdXNpdmUgPyBpIDogaSArIDEpO1xyXG4gICAgICAgIHZhciBrZXlzID0gdGhpcy5rZXlzO1xyXG4gICAgICAgIGlmIChpbmRleE9yTG93ZXIgPCBrZXlzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXVzZWRBcnJheVswXSA9IGtleXNbaW5kZXhPckxvd2VyXTtcclxuICAgICAgICAgICAgcmV1c2VkQXJyYXlbMV0gPSB0aGlzLnZhbHVlc1tpbmRleE9yTG93ZXJdO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV1c2VkQXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIHZMID0gdGhpcy52YWx1ZXMubGVuZ3RoO1xyXG4gICAgICAgIGNoZWNrKHRoaXMudmFsdWVzID09PSB1bmRlZlZhbHMgPyBrTCA8PSB2TCA6IGtMID09PSB2TCwgXCJrZXlzL3ZhbHVlcyBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXCIsIGRlcHRoLCBcIndpdGggbGVuZ3Roc1wiLCBrTCwgdkwsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGNoZWNrIGZvciBcIm5vZGUgdG9vIHNtYWxsXCIgYmVjYXVzZSBzb21ldGltZXMgYSBub2RlXHJcbiAgICAgICAgLy8gY2FuIGxlZ2l0aW1hdGVseSBoYXZlIHNpemUgMS4gVGhpcyBvY2N1cnMgaWYgdGhlcmUgaXMgYSBiYXRjaCBcclxuICAgICAgICAvLyBkZWxldGlvbiwgbGVhdmluZyBhIG5vZGUgb2Ygc2l6ZSAxLCBhbmQgdGhlIHNpYmxpbmdzIGFyZSBmdWxsIHNvXHJcbiAgICAgICAgLy8gaXQgY2FuJ3QgYmUgbWVyZ2VkIHdpdGggYWRqYWNlbnQgbm9kZXMuIEhvd2V2ZXIsIHRoZSBwYXJlbnQgd2lsbFxyXG4gICAgICAgIC8vIHZlcmlmeSB0aGF0IHRoZSBhdmVyYWdlIG5vZGUgc2l6ZSBpcyBhdCBsZWFzdCBoYWxmIG9mIHRoZSBtYXhpbXVtLlxyXG4gICAgICAgIGNoZWNrKGRlcHRoID09IDAgfHwga0wgPiAwLCBcImVtcHR5IGxlYWYgYXQgZGVwdGhcIiwgZGVwdGgsIFwiYW5kIGJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBrTDtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgb3ZlcndyaXRlLCB0cmVlKSB7XHJcbiAgICAgICAgdmFyIGkgPSB0aGlzLmluZGV4T2Yoa2V5LCAtMSwgdHJlZS5fY29tcGFyZSk7XHJcbiAgICAgICAgaWYgKGkgPCAwKSB7XHJcbiAgICAgICAgICAgIC8vIGtleSBkb2VzIG5vdCBleGlzdCB5ZXRcclxuICAgICAgICAgICAgaSA9IH5pO1xyXG4gICAgICAgICAgICB0cmVlLl9zaXplKys7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmtleXMubGVuZ3RoIDwgdHJlZS5fbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbGVhZiBub2RlIGlzIGZ1bGwgYW5kIG11c3Qgc3BsaXRcclxuICAgICAgICAgICAgICAgIHZhciBuZXdSaWdodFNpYmxpbmcgPSB0aGlzLnNwbGl0T2ZmUmlnaHRTaWRlKCksIHRhcmdldCA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IHRoaXMua2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpIC09IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0Lmluc2VydEluTGVhZihpLCBrZXksIHZhbHVlLCB0cmVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEtleSBhbHJlYWR5IGV4aXN0c1xyXG4gICAgICAgICAgICBpZiAob3ZlcndyaXRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgLy8gdXN1YWxseSB0aGlzIGlzIGEgbm8tb3AsIGJ1dCBzb21lIHVzZXJzIG1heSB3aXNoIHRvIGVkaXQgdGhlIGtleVxyXG4gICAgICAgICAgICAgICAgdGhpcy5rZXlzW2ldID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXNbaV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5yZWlmeVZhbHVlcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscylcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzO1xyXG4gICAgfTtcclxuICAgIEJOb2RlLnByb3RvdHlwZS5pbnNlcnRJbkxlYWYgPSBmdW5jdGlvbiAoaSwga2V5LCB2YWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHRoaXMua2V5cy5zcGxpY2UoaSwgMCwga2V5KTtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICB3aGlsZSAodW5kZWZWYWxzLmxlbmd0aCA8IHRyZWUuX21heE5vZGVTaXplKVxyXG4gICAgICAgICAgICAgICAgdW5kZWZWYWxzLnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB1bmRlZlZhbHMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAwLCB2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgQk5vZGUucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlcztcclxuICAgICAgICBpZiAocmhzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmICh2ICE9PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICB2LnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHYgPSB0aGlzLnJlaWZ5VmFsdWVzKCk7XHJcbiAgICAgICAgICAgIHYucHVzaChyaHMudmFsdWVzLnNoaWZ0KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmtleXMucHVzaChyaHMua2V5cy5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUudGFrZUZyb21MZWZ0ID0gZnVuY3Rpb24gKGxocykge1xyXG4gICAgICAgIC8vIFJlbWluZGVyOiBwYXJlbnQgbm9kZSBtdXN0IHVwZGF0ZSBpdHMgY29weSBvZiBrZXkgZm9yIHRoaXMgbm9kZVxyXG4gICAgICAgIC8vIGFzc2VydDogbmVpdGhlciBub2RlIGlzIHNoYXJlZFxyXG4gICAgICAgIC8vIGFzc2VydCByaHMua2V5cy5sZW5ndGggPiAobWF4Tm9kZVNpemUvMiAmJiB0aGlzLmtleXMubGVuZ3RoPG1heE5vZGVTaXplKVxyXG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZXM7XHJcbiAgICAgICAgaWYgKGxocy52YWx1ZXMgPT09IHVuZGVmVmFscykge1xyXG4gICAgICAgICAgICBpZiAodiAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgdi51bnNoaWZ0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2ID0gdGhpcy5yZWlmeVZhbHVlcygpO1xyXG4gICAgICAgICAgICB2LnVuc2hpZnQobGhzLnZhbHVlcy5wb3AoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMua2V5cy51bnNoaWZ0KGxocy5rZXlzLnBvcCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZS5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgdmFyIGhhbGYgPSB0aGlzLmtleXMubGVuZ3RoID4+IDEsIGtleXMgPSB0aGlzLmtleXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzID8gdW5kZWZWYWxzIDogdGhpcy52YWx1ZXMuc3BsaWNlKGhhbGYpO1xyXG4gICAgICAgIHJldHVybiBuZXcgQk5vZGUoa2V5cywgdmFsdWVzKTtcclxuICAgIH07XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTGVhZiBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIEJOb2RlLnByb3RvdHlwZS5mb3JSYW5nZSA9IGZ1bmN0aW9uIChsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpIHtcclxuICAgICAgICB2YXIgY21wID0gdHJlZS5fY29tcGFyZTtcclxuICAgICAgICB2YXIgaUxvdywgaUhpZ2g7XHJcbiAgICAgICAgaWYgKGhpZ2ggPT09IGxvdykge1xyXG4gICAgICAgICAgICBpZiAoIWluY2x1ZGVIaWdoKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgICAgICBpSGlnaCA9IChpTG93ID0gdGhpcy5pbmRleE9mKGxvdywgLTEsIGNtcCkpICsgMTtcclxuICAgICAgICAgICAgaWYgKGlMb3cgPCAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCk7XHJcbiAgICAgICAgICAgIGlIaWdoID0gdGhpcy5pbmRleE9mKGhpZ2gsIC0xLCBjbXApO1xyXG4gICAgICAgICAgICBpZiAoaUhpZ2ggPCAwKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2ggPSB+aUhpZ2g7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGluY2x1ZGVIaWdoID09PSB0cnVlKVxyXG4gICAgICAgICAgICAgICAgaUhpZ2grKztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xyXG4gICAgICAgIGlmIChvbkZvdW5kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGlMb3c7IGkgPCBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvbkZvdW5kKGtleSwgdmFsdWVzW2ldLCBjb3VudCsrKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0TW9kZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBrZXlzW2ldIHx8IHRoaXMuaXNTaGFyZWQgPT09IHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCVHJlZSBpbGxlZ2FsbHkgY2hhbmdlZCBvciBjbG9uZWQgaW4gZWRpdFJhbmdlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlcyAhPT0gdW5kZWZWYWxzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUuX3NpemUtLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlIaWdoLS07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0Lmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSByZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5icmVhayAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY291bnQgKz0gaUhpZ2ggLSBpTG93O1xyXG4gICAgICAgIHJldHVybiBjb3VudDtcclxuICAgIH07XHJcbiAgICAvKiogQWRkcyBlbnRpcmUgY29udGVudHMgb2YgcmlnaHQtaGFuZCBzaWJsaW5nIChyaHMgaXMgbGVmdCB1bmNoYW5nZWQpICovXHJcbiAgICBCTm9kZS5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgXykge1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoLmFwcGx5KHRoaXMua2V5cywgcmhzLmtleXMpO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZWYWxzKSB7XHJcbiAgICAgICAgICAgIGlmIChyaHMudmFsdWVzID09PSB1bmRlZlZhbHMpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVzID0gdGhpcy52YWx1ZXMuc2xpY2UoMCwgdGhpcy5rZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsIHJocy5yZWlmeVZhbHVlcygpKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gQk5vZGU7XHJcbn0oKSk7XHJcbi8qKiBJbnRlcm5hbCBub2RlIChub24tbGVhZiBub2RlKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxudmFyIEJOb2RlSW50ZXJuYWwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQk5vZGVJbnRlcm5hbCwgX3N1cGVyKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBtYXJrIGBjaGlsZHJlbmAgYXMgc2hhcmVkLCBzbyBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlclxyXG4gICAgICogdG8gZW5zdXJlIGNoaWxkcmVuIGFyZSBlaXRoZXIgbWFya2VkIHNoYXJlZCwgb3IgYXJlbid0IGluY2x1ZGVkIGluIGFub3RoZXIgdHJlZS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gQk5vZGVJbnRlcm5hbChjaGlsZHJlbiwga2V5cykge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgaWYgKCFrZXlzKSB7XHJcbiAgICAgICAgICAgIGtleXMgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGtleXNbaV0gPSBjaGlsZHJlbltpXS5tYXhLZXkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBrZXlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5zbGljZSgwKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICBjaGlsZHJlbltpXS5pc1NoYXJlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCTm9kZUludGVybmFsKGNoaWxkcmVuLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdyZWVkeUNsb25lID0gZnVuY3Rpb24gKGZvcmNlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTaGFyZWQgJiYgIWZvcmNlKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB2YXIgbnUgPSBuZXcgQk5vZGVJbnRlcm5hbCh0aGlzLmNoaWxkcmVuLnNsaWNlKDApLCB0aGlzLmtleXMuc2xpY2UoMCkpO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIG51LmNoaWxkcmVuW2ldID0gbnUuY2hpbGRyZW5baV0uZ3JlZWR5Q2xvbmUoZm9yY2UpO1xyXG4gICAgICAgIHJldHVybiBudTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5taW5LZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluS2V5KCk7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWluUGFpciA9IGZ1bmN0aW9uIChyZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuWzBdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLm1heFBhaXIgPSBmdW5jdGlvbiAocmV1c2VkQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgdHJlZS5fY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gaSA8IGNoaWxkcmVuLmxlbmd0aCA/IGNoaWxkcmVuW2ldLmdldChrZXksIGRlZmF1bHRWYWx1ZSwgdHJlZSkgOiB1bmRlZmluZWQ7XHJcbiAgICB9O1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dExvd2VyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICBpZiAoaSA+PSBjaGlsZHJlbi5sZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heFBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5nZXRQYWlyT3JOZXh0TG93ZXIoa2V5LCBjb21wYXJlLCBpbmNsdXNpdmUsIHJldXNlZEFycmF5KTtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgaSA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2kgLSAxXS5tYXhQYWlyKHJldXNlZEFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0SGlnaGVyID0gZnVuY3Rpb24gKGtleSwgY29tcGFyZSwgaW5jbHVzaXZlLCByZXVzZWRBcnJheSkge1xyXG4gICAgICAgIHZhciBpID0gdGhpcy5pbmRleE9mKGtleSwgMCwgY29tcGFyZSksIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiwgbGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgIGlmIChpID49IGxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gY2hpbGRyZW5baV0uZ2V0UGFpck9yTmV4dEhpZ2hlcihrZXksIGNvbXBhcmUsIGluY2x1c2l2ZSwgcmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBpIDwgbGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baSArIDFdLm1pblBhaXIocmV1c2VkQXJyYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLmNoZWNrVmFsaWQgPSBmdW5jdGlvbiAoZGVwdGgsIHRyZWUsIGJhc2VJbmRleCkge1xyXG4gICAgICAgIHZhciBrTCA9IHRoaXMua2V5cy5sZW5ndGgsIGNMID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgY2hlY2soa0wgPT09IGNMLCBcImtleXMvY2hpbGRyZW4gbGVuZ3RoIG1pc21hdGNoOiBkZXB0aFwiLCBkZXB0aCwgXCJsZW5ndGhzXCIsIGtMLCBjTCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICBjaGVjayhrTCA+IDEgfHwgZGVwdGggPiAwLCBcImludGVybmFsIG5vZGUgaGFzIGxlbmd0aFwiLCBrTCwgXCJhdCBkZXB0aFwiLCBkZXB0aCwgXCJiYXNlSW5kZXhcIiwgYmFzZUluZGV4KTtcclxuICAgICAgICB2YXIgc2l6ZSA9IDAsIGMgPSB0aGlzLmNoaWxkcmVuLCBrID0gdGhpcy5rZXlzLCBjaGlsZFNpemUgPSAwO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY0w7IGkrKykge1xyXG4gICAgICAgICAgICBzaXplICs9IGNbaV0uY2hlY2tWYWxpZChkZXB0aCArIDEsIHRyZWUsIGJhc2VJbmRleCArIHNpemUpO1xyXG4gICAgICAgICAgICBjaGlsZFNpemUgKz0gY1tpXS5rZXlzLmxlbmd0aDtcclxuICAgICAgICAgICAgY2hlY2soc2l6ZSA+PSBjaGlsZFNpemUsIFwid3RmXCIsIGJhc2VJbmRleCk7IC8vIG5vIHdheSB0aGlzIHdpbGwgZXZlciBmYWlsXHJcbiAgICAgICAgICAgIGNoZWNrKGkgPT09IDAgfHwgY1tpIC0gMV0uY29uc3RydWN0b3IgPT09IGNbaV0uY29uc3RydWN0b3IsIFwidHlwZSBtaXNtYXRjaCwgYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoY1tpXS5tYXhLZXkoKSAhPSBrW2ldKVxyXG4gICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwia2V5c1tcIiwgaSwgXCJdID1cIiwga1tpXSwgXCJpcyB3cm9uZywgc2hvdWxkIGJlIFwiLCBjW2ldLm1heEtleSgpLCBcImF0IGRlcHRoXCIsIGRlcHRoLCBcImJhc2VJbmRleFwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoIShpID09PSAwIHx8IHRyZWUuX2NvbXBhcmUoa1tpIC0gMV0sIGtbaV0pIDwgMCkpXHJcbiAgICAgICAgICAgICAgICBjaGVjayhmYWxzZSwgXCJzb3J0IHZpb2xhdGlvbiBhdCBkZXB0aFwiLCBkZXB0aCwgXCJpbmRleFwiLCBpLCBcImtleXNcIiwga1tpIC0gMV0sIGtbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyAyMDIwLzA4OiBCVHJlZSBkb2Vzbid0IGFsd2F5cyBhdm9pZCBncm9zc2x5IHVuZGVyc2l6ZWQgbm9kZXMsXHJcbiAgICAgICAgLy8gYnV0IEFGQUlLIHN1Y2ggbm9kZXMgYXJlIHByZXR0eSBoYXJtbGVzcywgc28gYWNjZXB0IHRoZW0uXHJcbiAgICAgICAgdmFyIHRvb2ZldyA9IGNoaWxkU2l6ZSA9PT0gMDsgLy8gY2hpbGRTaXplIDwgKHRyZWUubWF4Tm9kZVNpemUgPj4gMSkqY0w7XHJcbiAgICAgICAgaWYgKHRvb2ZldyB8fCBjaGlsZFNpemUgPiB0cmVlLm1heE5vZGVTaXplICogY0wpXHJcbiAgICAgICAgICAgIGNoZWNrKGZhbHNlLCB0b29mZXcgPyBcInRvbyBmZXdcIiA6IFwidG9vIG1hbnlcIiwgXCJjaGlsZHJlbiAoXCIsIGNoaWxkU2l6ZSwgc2l6ZSwgXCIpIGF0IGRlcHRoXCIsIGRlcHRoLCBcIm1heE5vZGVTaXplOlwiLCB0cmVlLm1heE5vZGVTaXplLCBcImNoaWxkcmVuLmxlbmd0aDpcIiwgY0wsIFwiYmFzZUluZGV4OlwiLCBiYXNlSW5kZXgpO1xyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzZXQgJiBub2RlIHNwbGl0dGluZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUsIG92ZXJ3cml0ZSwgdHJlZSkge1xyXG4gICAgICAgIHZhciBjID0gdGhpcy5jaGlsZHJlbiwgbWF4ID0gdHJlZS5fbWF4Tm9kZVNpemUsIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGkgPSBNYXRoLm1pbih0aGlzLmluZGV4T2Yoa2V5LCAwLCBjbXApLCBjLmxlbmd0aCAtIDEpLCBjaGlsZCA9IGNbaV07XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICBjW2ldID0gY2hpbGQgPSBjaGlsZC5jbG9uZSgpO1xyXG4gICAgICAgIGlmIChjaGlsZC5rZXlzLmxlbmd0aCA+PSBtYXgpIHtcclxuICAgICAgICAgICAgLy8gY2hpbGQgaXMgZnVsbDsgaW5zZXJ0aW5nIGFueXRoaW5nIGVsc2Ugd2lsbCBjYXVzZSBhIHNwbGl0LlxyXG4gICAgICAgICAgICAvLyBTaGlmdGluZyBhbiBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpYmxpbmcgbWF5IGF2b2lkIGEgc3BsaXQuXHJcbiAgICAgICAgICAgIC8vIFdlIGNhbiBkbyBhIHNoaWZ0IGlmIHRoZSBhZGphY2VudCBub2RlIGlzIG5vdCBmdWxsIGFuZCBpZiB0aGVcclxuICAgICAgICAgICAgLy8gY3VycmVudCBrZXkgY2FuIHN0aWxsIGJlIHBsYWNlZCBpbiB0aGUgc2FtZSBub2RlIGFmdGVyIHRoZSBzaGlmdC5cclxuICAgICAgICAgICAgdmFyIG90aGVyO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDAgJiYgKG90aGVyID0gY1tpIC0gMV0pLmtleXMubGVuZ3RoIDwgbWF4ICYmIGNtcChjaGlsZC5rZXlzWzBdLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSAtIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21SaWdodChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXNbaSAtIDFdID0gb3RoZXIubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKG90aGVyID0gY1tpICsgMV0pICE9PSB1bmRlZmluZWQgJiYgb3RoZXIua2V5cy5sZW5ndGggPCBtYXggJiYgY21wKGNoaWxkLm1heEtleSgpLCBrZXkpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGNbaSArIDFdID0gb3RoZXIgPSBvdGhlci5jbG9uZSgpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIudGFrZUZyb21MZWZ0KGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNbaV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkLnNldChrZXksIHZhbHVlLCBvdmVyd3JpdGUsIHRyZWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5rZXlzW2ldID0gY2hpbGQubWF4S2V5KCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy8gVGhlIGNoaWxkIGhhcyBzcGxpdCBhbmQgYHJlc3VsdGAgaXMgYSBuZXcgcmlnaHQgY2hpbGQuLi4gZG9lcyBpdCBmaXQ/XHJcbiAgICAgICAgaWYgKHRoaXMua2V5cy5sZW5ndGggPCBtYXgpIHsgLy8geWVzXHJcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0KGkgKyAxLCByZXN1bHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIG5vLCB3ZSBtdXN0IHNwbGl0IGFsc29cclxuICAgICAgICAgICAgdmFyIG5ld1JpZ2h0U2libGluZyA9IHRoaXMuc3BsaXRPZmZSaWdodFNpZGUoKSwgdGFyZ2V0ID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGNtcChyZXN1bHQubWF4S2V5KCksIHRoaXMubWF4S2V5KCkpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3UmlnaHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgaSAtPSB0aGlzLmtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRhcmdldC5pbnNlcnQoaSArIDEsIHJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdSaWdodFNpYmxpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBgY2hpbGRgIGF0IGluZGV4IGBpYC5cclxuICAgICAqIFRoaXMgZG9lcyBub3QgbWFyayBgY2hpbGRgIGFzIHNoYXJlZCwgc28gaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXJcclxuICAgICAqIHRvIGVuc3VyZSB0aGF0IGVpdGhlciBjaGlsZCBpcyBtYXJrZWQgc2hhcmVkLCBvciBpdCBpcyBub3QgaW5jbHVkZWQgaW4gYW5vdGhlciB0cmVlLlxyXG4gICAgICovXHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbiAoaSwgY2hpbGQpIHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBjaGlsZCk7XHJcbiAgICAgICAgdGhpcy5rZXlzLnNwbGljZShpLCAwLCBjaGlsZC5tYXhLZXkoKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGxpdCB0aGlzIG5vZGUuXHJcbiAgICAgKiBNb2RpZmllcyB0aGlzIHRvIHJlbW92ZSB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIGl0ZW1zLCByZXR1cm5pbmcgYSBzZXBhcmF0ZSBub2RlIGNvbnRhaW5pbmcgdGhlbS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gYXNzZXJ0ICF0aGlzLmlzU2hhcmVkO1xyXG4gICAgICAgIHZhciBoYWxmID0gdGhpcy5jaGlsZHJlbi5sZW5ndGggPj4gMTtcclxuICAgICAgICByZXR1cm4gbmV3IEJOb2RlSW50ZXJuYWwodGhpcy5jaGlsZHJlbi5zcGxpY2UoaGFsZiksIHRoaXMua2V5cy5zcGxpY2UoaGFsZikpO1xyXG4gICAgfTtcclxuICAgIEJOb2RlSW50ZXJuYWwucHJvdG90eXBlLnRha2VGcm9tUmlnaHQgPSBmdW5jdGlvbiAocmhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2gocmhzLmtleXMuc2hpZnQoKSk7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKHJocy5jaGlsZHJlbi5zaGlmdCgpKTtcclxuICAgIH07XHJcbiAgICBCTm9kZUludGVybmFsLnByb3RvdHlwZS50YWtlRnJvbUxlZnQgPSBmdW5jdGlvbiAobGhzKSB7XHJcbiAgICAgICAgLy8gUmVtaW5kZXI6IHBhcmVudCBub2RlIG11c3QgdXBkYXRlIGl0cyBjb3B5IG9mIGtleSBmb3IgdGhpcyBub2RlXHJcbiAgICAgICAgLy8gYXNzZXJ0OiBuZWl0aGVyIG5vZGUgaXMgc2hhcmVkXHJcbiAgICAgICAgLy8gYXNzZXJ0IHJocy5rZXlzLmxlbmd0aCA+IChtYXhOb2RlU2l6ZS8yICYmIHRoaXMua2V5cy5sZW5ndGg8bWF4Tm9kZVNpemUpXHJcbiAgICAgICAgdGhpcy5rZXlzLnVuc2hpZnQobGhzLmtleXMucG9wKCkpO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChsaHMuY2hpbGRyZW4ucG9wKCkpO1xyXG4gICAgfTtcclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAvLyBJbnRlcm5hbCBOb2RlOiBzY2FubmluZyAmIGRlbGV0aW9ucyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLy8gTm90ZTogYGNvdW50YCBpcyB0aGUgbmV4dCB2YWx1ZSBvZiB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYG9uRm91bmRgLiBcclxuICAgIC8vICAgICAgIEEgbGVhZiBub2RlJ3MgYGZvclJhbmdlYCBmdW5jdGlvbiByZXR1cm5zIGEgbmV3IHZhbHVlIGZvciB0aGlzIGNvdW50ZXIsXHJcbiAgICAvLyAgICAgICB1bmxlc3MgdGhlIG9wZXJhdGlvbiBpcyB0byBzdG9wIGVhcmx5LlxyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUuZm9yUmFuZ2UgPSBmdW5jdGlvbiAobG93LCBoaWdoLCBpbmNsdWRlSGlnaCwgZWRpdE1vZGUsIHRyZWUsIGNvdW50LCBvbkZvdW5kKSB7XHJcbiAgICAgICAgdmFyIGNtcCA9IHRyZWUuX2NvbXBhcmU7XHJcbiAgICAgICAgdmFyIGtleXMgPSB0aGlzLmtleXMsIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcclxuICAgICAgICB2YXIgaUxvdyA9IHRoaXMuaW5kZXhPZihsb3csIDAsIGNtcCksIGkgPSBpTG93O1xyXG4gICAgICAgIHZhciBpSGlnaCA9IE1hdGgubWluKGhpZ2ggPT09IGxvdyA/IGlMb3cgOiB0aGlzLmluZGV4T2YoaGlnaCwgMCwgY21wKSwga2V5cy5sZW5ndGggLSAxKTtcclxuICAgICAgICBpZiAoIWVkaXRNb2RlKSB7XHJcbiAgICAgICAgICAgIC8vIFNpbXBsZSBjYXNlXHJcbiAgICAgICAgICAgIGZvciAoOyBpIDw9IGlIaWdoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBjaGlsZHJlbltpXS5mb3JSYW5nZShsb3csIGhpZ2gsIGluY2x1ZGVIaWdoLCBlZGl0TW9kZSwgdHJlZSwgY291bnQsIG9uRm91bmQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBjb3VudCA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpIDw9IGlIaWdoKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKDsgaSA8PSBpSGlnaDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGNoaWxkcmVuW2ldLmZvclJhbmdlKGxvdywgaGlnaCwgaW5jbHVkZUhpZ2gsIGVkaXRNb2RlLCB0cmVlLCBjb3VudCwgb25Gb3VuZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogaWYgY2hpbGRyZW5baV0gaXMgZW1wdHkgdGhlbiBrZXlzW2ldPXVuZGVmaW5lZC5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBUaGlzIGlzIGFuIGludmFsaWQgc3RhdGUsIGJ1dCBpdCBpcyBmaXhlZCBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICBrZXlzW2ldID0gY2hpbGRyZW5baV0ubWF4S2V5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGVsZXRpb25zIG1heSBoYXZlIG9jY3VycmVkLCBzbyBsb29rIGZvciBvcHBvcnR1bml0aWVzIHRvIG1lcmdlIG5vZGVzLlxyXG4gICAgICAgICAgICAgICAgdmFyIGhhbGYgPSB0cmVlLl9tYXhOb2RlU2l6ZSA+PiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlMb3cgPiAwKVxyXG4gICAgICAgICAgICAgICAgICAgIGlMb3ctLTtcclxuICAgICAgICAgICAgICAgIGZvciAoaSA9IGlIaWdoOyBpID49IGlMb3c7IGktLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCA8PSBoYWxmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS5rZXlzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cnlNZXJnZShpLCB0cmVlLl9tYXhOb2RlU2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIGNoaWxkIGlzIGVtcHR5ISBkZWxldGUgaXQhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggIT09IDAgJiYgY2hpbGRyZW5bMF0ua2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2soZmFsc2UsIFwiZW1wdGluZXNzIGJ1Z1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9O1xyXG4gICAgLyoqIE1lcmdlcyBjaGlsZCBpIHdpdGggY2hpbGQgaSsxIGlmIHRoZWlyIGNvbWJpbmVkIHNpemUgaXMgbm90IHRvbyBsYXJnZSAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUudHJ5TWVyZ2UgPSBmdW5jdGlvbiAoaSwgbWF4U2l6ZSkge1xyXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47XHJcbiAgICAgICAgaWYgKGkgPj0gMCAmJiBpICsgMSA8IGNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW5baV0ua2V5cy5sZW5ndGggKyBjaGlsZHJlbltpICsgMV0ua2V5cy5sZW5ndGggPD0gbWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2ldLmlzU2hhcmVkKSAvLyBjbG9uZWQgYWxyZWFkeSBVTkxFU1MgaSBpcyBvdXRzaWRlIHNjYW4gcmFuZ2VcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IGNoaWxkcmVuW2ldLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbltpXS5tZXJnZVNpYmxpbmcoY2hpbGRyZW5baSArIDFdLCBtYXhTaXplKTtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpICsgMSwgMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleXMuc3BsaWNlKGkgKyAxLCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5c1tpXSA9IGNoaWxkcmVuW2ldLm1heEtleSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogTW92ZSBjaGlsZHJlbiBmcm9tIGByaHNgIGludG8gdGhpcy5cclxuICAgICAqIGByaHNgIG11c3QgYmUgcGFydCBvZiB0aGlzIHRyZWUsIGFuZCBiZSByZW1vdmVkIGZyb20gaXQgYWZ0ZXIgdGhpcyBjYWxsXHJcbiAgICAgKiAob3RoZXJ3aXNlIGlzU2hhcmVkIGZvciBpdHMgY2hpbGRyZW4gY291bGQgYmUgaW5jb3JyZWN0KS5cclxuICAgICAqL1xyXG4gICAgQk5vZGVJbnRlcm5hbC5wcm90b3R5cGUubWVyZ2VTaWJsaW5nID0gZnVuY3Rpb24gKHJocywgbWF4Tm9kZVNpemUpIHtcclxuICAgICAgICAvLyBhc3NlcnQgIXRoaXMuaXNTaGFyZWQ7XHJcbiAgICAgICAgdmFyIG9sZExlbmd0aCA9IHRoaXMua2V5cy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLCByaHMua2V5cyk7XHJcbiAgICAgICAgdmFyIHJoc0NoaWxkcmVuID0gcmhzLmNoaWxkcmVuO1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaC5hcHBseSh0aGlzLmNoaWxkcmVuLCByaHNDaGlsZHJlbik7XHJcbiAgICAgICAgaWYgKHJocy5pc1NoYXJlZCAmJiAhdGhpcy5pc1NoYXJlZCkge1xyXG4gICAgICAgICAgICAvLyBBbGwgY2hpbGRyZW4gb2YgYSBzaGFyZWQgbm9kZSBhcmUgaW1wbGljaXRseSBzaGFyZWQsIGFuZCBzaW5jZSB0aGVpciBuZXdcclxuICAgICAgICAgICAgLy8gcGFyZW50IGlzIG5vdCBzaGFyZWQsIHRoZXkgbXVzdCBub3cgYmUgZXhwbGljaXRseSBtYXJrZWQgYXMgc2hhcmVkLlxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJoc0NoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgcmhzQ2hpbGRyZW5baV0uaXNTaGFyZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBvdXIgY2hpbGRyZW4gYXJlIHRoZW1zZWx2ZXMgYWxtb3N0IGVtcHR5IGR1ZSB0byBhIG1hc3MtZGVsZXRlLFxyXG4gICAgICAgIC8vIHRoZXkgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIHRvbyAoYnV0IG9ubHkgdGhlIG9sZExlbmd0aC0xIGFuZCBpdHNcclxuICAgICAgICAvLyByaWdodCBzaWJsaW5nIHNob3VsZCBuZWVkIHRoaXMpLlxyXG4gICAgICAgIHRoaXMudHJ5TWVyZ2Uob2xkTGVuZ3RoIC0gMSwgbWF4Tm9kZVNpemUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCTm9kZUludGVybmFsO1xyXG59KEJOb2RlKSk7XHJcbi8vIE9wdGltaXphdGlvbjogdGhpcyBhcnJheSBvZiBgdW5kZWZpbmVkYHMgaXMgdXNlZCBpbnN0ZWFkIG9mIGEgbm9ybWFsXHJcbi8vIGFycmF5IG9mIHZhbHVlcyBpbiBub2RlcyB3aGVyZSBgdW5kZWZpbmVkYCBpcyB0aGUgb25seSB2YWx1ZS5cclxuLy8gSXRzIGxlbmd0aCBpcyBleHRlbmRlZCB0byBtYXggbm9kZSBzaXplIG9uIGZpcnN0IHVzZTsgc2luY2UgaXQgY2FuXHJcbi8vIGJlIHNoYXJlZCBiZXR3ZWVuIHRyZWVzIHdpdGggZGlmZmVyZW50IG1heGltdW1zLCBpdHMgbGVuZ3RoIGNhbiBvbmx5XHJcbi8vIGluY3JlYXNlLCBuZXZlciBkZWNyZWFzZS4gSXRzIHR5cGUgc2hvdWxkIGJlIHVuZGVmaW5lZFtdIGJ1dCBzdHJhbmdlbHlcclxuLy8gVHlwZVNjcmlwdCB3b24ndCBhbGxvdyB0aGUgY29tcGFyaXNvbiBWW10gPT09IHVuZGVmaW5lZFtdLiBUbyBwcmV2ZW50XHJcbi8vIHVzZXJzIGZyb20gbWFraW5nIHRoaXMgYXJyYXkgdG9vIGxhcmdlLCBCVHJlZSBoYXMgYSBtYXhpbXVtIG5vZGUgc2l6ZS5cclxuLy9cclxuLy8gRkFROiB1bmRlZlZhbHNbaV0gaXMgYWxyZWFkeSB1bmRlZmluZWQsIHNvIHdoeSBpbmNyZWFzZSB0aGUgYXJyYXkgc2l6ZT9cclxuLy8gUmVhZGluZyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYW4gYXJyYXkgaXMgcmVsYXRpdmVseSBzbG93IGJlY2F1c2UgaXRcclxuLy8gaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzY2FubmluZyB0aGUgcHJvdG90eXBlIGNoYWluLlxyXG52YXIgdW5kZWZWYWxzID0gW107XHJcbnZhciBEZWxldGUgPSB7IGRlbGV0ZTogdHJ1ZSB9LCBEZWxldGVSYW5nZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIERlbGV0ZTsgfTtcclxudmFyIEJyZWFrID0geyBicmVhazogdHJ1ZSB9O1xyXG52YXIgRW1wdHlMZWFmID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBuID0gbmV3IEJOb2RlKCk7XHJcbiAgICBuLmlzU2hhcmVkID0gdHJ1ZTtcclxuICAgIHJldHVybiBuO1xyXG59KSgpO1xyXG52YXIgRW1wdHlBcnJheSA9IFtdO1xyXG52YXIgUmV1c2VkQXJyYXkgPSBbXTsgLy8gYXNzdW1lZCB0aHJlYWQtbG9jYWxcclxuZnVuY3Rpb24gY2hlY2soZmFjdCkge1xyXG4gICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgYXJnc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIGlmICghZmFjdCkge1xyXG4gICAgICAgIGFyZ3MudW5zaGlmdCgnQisgdHJlZScpOyAvLyBhdCBiZWdpbm5pbmcgb2YgbWVzc2FnZVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihhcmdzLmpvaW4oJyAnKSk7XHJcbiAgICB9XHJcbn1cclxuLyoqIEEgQlRyZWUgZnJvemVuIGluIHRoZSBlbXB0eSBzdGF0ZS4gKi9cclxuZXhwb3J0cy5FbXB0eUJUcmVlID0gKGZ1bmN0aW9uICgpIHsgdmFyIHQgPSBuZXcgQlRyZWUoKTsgdC5mcmVlemUoKTsgcmV0dXJuIHQ7IH0pKCk7XHJcbiIsICIvKiFcbiAgICBsb2NhbEZvcmFnZSAtLSBPZmZsaW5lIFN0b3JhZ2UsIEltcHJvdmVkXG4gICAgVmVyc2lvbiAxLjEwLjBcbiAgICBodHRwczovL2xvY2FsZm9yYWdlLmdpdGh1Yi5pby9sb2NhbEZvcmFnZVxuICAgIChjKSAyMDEzLTIwMTcgTW96aWxsYSwgQXBhY2hlIExpY2Vuc2UgMi4wXG4qL1xuKGZ1bmN0aW9uKGYpe2lmKHR5cGVvZiBleHBvcnRzPT09XCJvYmplY3RcIiYmdHlwZW9mIG1vZHVsZSE9PVwidW5kZWZpbmVkXCIpe21vZHVsZS5leHBvcnRzPWYoKX1lbHNlIGlmKHR5cGVvZiBkZWZpbmU9PT1cImZ1bmN0aW9uXCImJmRlZmluZS5hbWQpe2RlZmluZShbXSxmKX1lbHNle3ZhciBnO2lmKHR5cGVvZiB3aW5kb3chPT1cInVuZGVmaW5lZFwiKXtnPXdpbmRvd31lbHNlIGlmKHR5cGVvZiBnbG9iYWwhPT1cInVuZGVmaW5lZFwiKXtnPWdsb2JhbH1lbHNlIGlmKHR5cGVvZiBzZWxmIT09XCJ1bmRlZmluZWRcIil7Zz1zZWxmfWVsc2V7Zz10aGlzfWcubG9jYWxmb3JhZ2UgPSBmKCl9fSkoZnVuY3Rpb24oKXt2YXIgZGVmaW5lLG1vZHVsZSxleHBvcnRzO3JldHVybiAoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgKGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIiwgZil9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSh7MTpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7XG4oZnVuY3Rpb24gKGdsb2JhbCl7XG4ndXNlIHN0cmljdCc7XG52YXIgTXV0YXRpb24gPSBnbG9iYWwuTXV0YXRpb25PYnNlcnZlciB8fCBnbG9iYWwuV2ViS2l0TXV0YXRpb25PYnNlcnZlcjtcblxudmFyIHNjaGVkdWxlRHJhaW47XG5cbntcbiAgaWYgKE11dGF0aW9uKSB7XG4gICAgdmFyIGNhbGxlZCA9IDA7XG4gICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uKG5leHRUaWNrKTtcbiAgICB2YXIgZWxlbWVudCA9IGdsb2JhbC5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyk7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCB7XG4gICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlXG4gICAgfSk7XG4gICAgc2NoZWR1bGVEcmFpbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGVsZW1lbnQuZGF0YSA9IChjYWxsZWQgPSArK2NhbGxlZCAlIDIpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoIWdsb2JhbC5zZXRJbW1lZGlhdGUgJiYgdHlwZW9mIGdsb2JhbC5NZXNzYWdlQ2hhbm5lbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgY2hhbm5lbCA9IG5ldyBnbG9iYWwuTWVzc2FnZUNoYW5uZWwoKTtcbiAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IG5leHRUaWNrO1xuICAgIHNjaGVkdWxlRHJhaW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKDApO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoJ2RvY3VtZW50JyBpbiBnbG9iYWwgJiYgJ29ucmVhZHlzdGF0ZWNoYW5nZScgaW4gZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKSB7XG4gICAgc2NoZWR1bGVEcmFpbiA9IGZ1bmN0aW9uICgpIHtcblxuICAgICAgLy8gQ3JlYXRlIGEgPHNjcmlwdD4gZWxlbWVudDsgaXRzIHJlYWR5c3RhdGVjaGFuZ2UgZXZlbnQgd2lsbCBiZSBmaXJlZCBhc3luY2hyb25vdXNseSBvbmNlIGl0IGlzIGluc2VydGVkXG4gICAgICAvLyBpbnRvIHRoZSBkb2N1bWVudC4gRG8gc28sIHRodXMgcXVldWluZyB1cCB0aGUgdGFzay4gUmVtZW1iZXIgdG8gY2xlYW4gdXAgb25jZSBpdCdzIGJlZW4gY2FsbGVkLlxuICAgICAgdmFyIHNjcmlwdEVsID0gZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0RWwub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBuZXh0VGljaygpO1xuXG4gICAgICAgIHNjcmlwdEVsLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgIHNjcmlwdEVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2NyaXB0RWwpO1xuICAgICAgICBzY3JpcHRFbCA9IG51bGw7XG4gICAgICB9O1xuICAgICAgZ2xvYmFsLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChzY3JpcHRFbCk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBzY2hlZHVsZURyYWluID0gZnVuY3Rpb24gKCkge1xuICAgICAgc2V0VGltZW91dChuZXh0VGljaywgMCk7XG4gICAgfTtcbiAgfVxufVxuXG52YXIgZHJhaW5pbmc7XG52YXIgcXVldWUgPSBbXTtcbi8vbmFtZWQgbmV4dFRpY2sgZm9yIGxlc3MgY29uZnVzaW5nIHN0YWNrIHRyYWNlc1xuZnVuY3Rpb24gbmV4dFRpY2soKSB7XG4gIGRyYWluaW5nID0gdHJ1ZTtcbiAgdmFyIGksIG9sZFF1ZXVlO1xuICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICB3aGlsZSAobGVuKSB7XG4gICAgb2xkUXVldWUgPSBxdWV1ZTtcbiAgICBxdWV1ZSA9IFtdO1xuICAgIGkgPSAtMTtcbiAgICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgICBvbGRRdWV1ZVtpXSgpO1xuICAgIH1cbiAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gIH1cbiAgZHJhaW5pbmcgPSBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbW1lZGlhdGU7XG5mdW5jdGlvbiBpbW1lZGlhdGUodGFzaykge1xuICBpZiAocXVldWUucHVzaCh0YXNrKSA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICBzY2hlZHVsZURyYWluKCk7XG4gIH1cbn1cblxufSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30pXG59LHt9XSwyOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbid1c2Ugc3RyaWN0JztcbnZhciBpbW1lZGlhdGUgPSBfZGVyZXFfKDEpO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gSU5URVJOQUwoKSB7fVxuXG52YXIgaGFuZGxlcnMgPSB7fTtcblxudmFyIFJFSkVDVEVEID0gWydSRUpFQ1RFRCddO1xudmFyIEZVTEZJTExFRCA9IFsnRlVMRklMTEVEJ107XG52YXIgUEVORElORyA9IFsnUEVORElORyddO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFByb21pc2U7XG5cbmZ1bmN0aW9uIFByb21pc2UocmVzb2x2ZXIpIHtcbiAgaWYgKHR5cGVvZiByZXNvbHZlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Jlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG4gIHRoaXMuc3RhdGUgPSBQRU5ESU5HO1xuICB0aGlzLnF1ZXVlID0gW107XG4gIHRoaXMub3V0Y29tZSA9IHZvaWQgMDtcbiAgaWYgKHJlc29sdmVyICE9PSBJTlRFUk5BTCkge1xuICAgIHNhZmVseVJlc29sdmVUaGVuYWJsZSh0aGlzLCByZXNvbHZlcik7XG4gIH1cbn1cblxuUHJvbWlzZS5wcm90b3R5cGVbXCJjYXRjaFwiXSA9IGZ1bmN0aW9uIChvblJlamVjdGVkKSB7XG4gIHJldHVybiB0aGlzLnRoZW4obnVsbCwgb25SZWplY3RlZCk7XG59O1xuUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0aW9uIChvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkge1xuICBpZiAodHlwZW9mIG9uRnVsZmlsbGVkICE9PSAnZnVuY3Rpb24nICYmIHRoaXMuc3RhdGUgPT09IEZVTEZJTExFRCB8fFxuICAgIHR5cGVvZiBvblJlamVjdGVkICE9PSAnZnVuY3Rpb24nICYmIHRoaXMuc3RhdGUgPT09IFJFSkVDVEVEKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdmFyIHByb21pc2UgPSBuZXcgdGhpcy5jb25zdHJ1Y3RvcihJTlRFUk5BTCk7XG4gIGlmICh0aGlzLnN0YXRlICE9PSBQRU5ESU5HKSB7XG4gICAgdmFyIHJlc29sdmVyID0gdGhpcy5zdGF0ZSA9PT0gRlVMRklMTEVEID8gb25GdWxmaWxsZWQgOiBvblJlamVjdGVkO1xuICAgIHVud3JhcChwcm9taXNlLCByZXNvbHZlciwgdGhpcy5vdXRjb21lKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnF1ZXVlLnB1c2gobmV3IFF1ZXVlSXRlbShwcm9taXNlLCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkpO1xuICB9XG5cbiAgcmV0dXJuIHByb21pc2U7XG59O1xuZnVuY3Rpb24gUXVldWVJdGVtKHByb21pc2UsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gIHRoaXMucHJvbWlzZSA9IHByb21pc2U7XG4gIGlmICh0eXBlb2Ygb25GdWxmaWxsZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLm9uRnVsZmlsbGVkID0gb25GdWxmaWxsZWQ7XG4gICAgdGhpcy5jYWxsRnVsZmlsbGVkID0gdGhpcy5vdGhlckNhbGxGdWxmaWxsZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBvblJlamVjdGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhpcy5vblJlamVjdGVkID0gb25SZWplY3RlZDtcbiAgICB0aGlzLmNhbGxSZWplY3RlZCA9IHRoaXMub3RoZXJDYWxsUmVqZWN0ZWQ7XG4gIH1cbn1cblF1ZXVlSXRlbS5wcm90b3R5cGUuY2FsbEZ1bGZpbGxlZCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBoYW5kbGVycy5yZXNvbHZlKHRoaXMucHJvbWlzZSwgdmFsdWUpO1xufTtcblF1ZXVlSXRlbS5wcm90b3R5cGUub3RoZXJDYWxsRnVsZmlsbGVkID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHVud3JhcCh0aGlzLnByb21pc2UsIHRoaXMub25GdWxmaWxsZWQsIHZhbHVlKTtcbn07XG5RdWV1ZUl0ZW0ucHJvdG90eXBlLmNhbGxSZWplY3RlZCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBoYW5kbGVycy5yZWplY3QodGhpcy5wcm9taXNlLCB2YWx1ZSk7XG59O1xuUXVldWVJdGVtLnByb3RvdHlwZS5vdGhlckNhbGxSZWplY3RlZCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICB1bndyYXAodGhpcy5wcm9taXNlLCB0aGlzLm9uUmVqZWN0ZWQsIHZhbHVlKTtcbn07XG5cbmZ1bmN0aW9uIHVud3JhcChwcm9taXNlLCBmdW5jLCB2YWx1ZSkge1xuICBpbW1lZGlhdGUoZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXR1cm5WYWx1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuVmFsdWUgPSBmdW5jKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gaGFuZGxlcnMucmVqZWN0KHByb21pc2UsIGUpO1xuICAgIH1cbiAgICBpZiAocmV0dXJuVmFsdWUgPT09IHByb21pc2UpIHtcbiAgICAgIGhhbmRsZXJzLnJlamVjdChwcm9taXNlLCBuZXcgVHlwZUVycm9yKCdDYW5ub3QgcmVzb2x2ZSBwcm9taXNlIHdpdGggaXRzZWxmJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5yZXNvbHZlKHByb21pc2UsIHJldHVyblZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5oYW5kbGVycy5yZXNvbHZlID0gZnVuY3Rpb24gKHNlbGYsIHZhbHVlKSB7XG4gIHZhciByZXN1bHQgPSB0cnlDYXRjaChnZXRUaGVuLCB2YWx1ZSk7XG4gIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgcmV0dXJuIGhhbmRsZXJzLnJlamVjdChzZWxmLCByZXN1bHQudmFsdWUpO1xuICB9XG4gIHZhciB0aGVuYWJsZSA9IHJlc3VsdC52YWx1ZTtcblxuICBpZiAodGhlbmFibGUpIHtcbiAgICBzYWZlbHlSZXNvbHZlVGhlbmFibGUoc2VsZiwgdGhlbmFibGUpO1xuICB9IGVsc2Uge1xuICAgIHNlbGYuc3RhdGUgPSBGVUxGSUxMRUQ7XG4gICAgc2VsZi5vdXRjb21lID0gdmFsdWU7XG4gICAgdmFyIGkgPSAtMTtcbiAgICB2YXIgbGVuID0gc2VsZi5xdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgICAgc2VsZi5xdWV1ZVtpXS5jYWxsRnVsZmlsbGVkKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlbGY7XG59O1xuaGFuZGxlcnMucmVqZWN0ID0gZnVuY3Rpb24gKHNlbGYsIGVycm9yKSB7XG4gIHNlbGYuc3RhdGUgPSBSRUpFQ1RFRDtcbiAgc2VsZi5vdXRjb21lID0gZXJyb3I7XG4gIHZhciBpID0gLTE7XG4gIHZhciBsZW4gPSBzZWxmLnF1ZXVlLmxlbmd0aDtcbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIHNlbGYucXVldWVbaV0uY2FsbFJlamVjdGVkKGVycm9yKTtcbiAgfVxuICByZXR1cm4gc2VsZjtcbn07XG5cbmZ1bmN0aW9uIGdldFRoZW4ob2JqKSB7XG4gIC8vIE1ha2Ugc3VyZSB3ZSBvbmx5IGFjY2VzcyB0aGUgYWNjZXNzb3Igb25jZSBhcyByZXF1aXJlZCBieSB0aGUgc3BlY1xuICB2YXIgdGhlbiA9IG9iaiAmJiBvYmoudGhlbjtcbiAgaWYgKG9iaiAmJiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykgJiYgdHlwZW9mIHRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gYXBweVRoZW4oKSB7XG4gICAgICB0aGVuLmFwcGx5KG9iaiwgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseVJlc29sdmVUaGVuYWJsZShzZWxmLCB0aGVuYWJsZSkge1xuICAvLyBFaXRoZXIgZnVsZmlsbCwgcmVqZWN0IG9yIHJlamVjdCB3aXRoIGVycm9yXG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gb25FcnJvcih2YWx1ZSkge1xuICAgIGlmIChjYWxsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FsbGVkID0gdHJ1ZTtcbiAgICBoYW5kbGVycy5yZWplY3Qoc2VsZiwgdmFsdWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25TdWNjZXNzKHZhbHVlKSB7XG4gICAgaWYgKGNhbGxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjYWxsZWQgPSB0cnVlO1xuICAgIGhhbmRsZXJzLnJlc29sdmUoc2VsZiwgdmFsdWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJ5VG9VbndyYXAoKSB7XG4gICAgdGhlbmFibGUob25TdWNjZXNzLCBvbkVycm9yKTtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSB0cnlDYXRjaCh0cnlUb1Vud3JhcCk7XG4gIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgb25FcnJvcihyZXN1bHQudmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyeUNhdGNoKGZ1bmMsIHZhbHVlKSB7XG4gIHZhciBvdXQgPSB7fTtcbiAgdHJ5IHtcbiAgICBvdXQudmFsdWUgPSBmdW5jKHZhbHVlKTtcbiAgICBvdXQuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICB9IGNhdGNoIChlKSB7XG4gICAgb3V0LnN0YXR1cyA9ICdlcnJvcic7XG4gICAgb3V0LnZhbHVlID0gZTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5Qcm9taXNlLnJlc29sdmUgPSByZXNvbHZlO1xuZnVuY3Rpb24gcmVzb2x2ZSh2YWx1ZSkge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiB0aGlzKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBoYW5kbGVycy5yZXNvbHZlKG5ldyB0aGlzKElOVEVSTkFMKSwgdmFsdWUpO1xufVxuXG5Qcm9taXNlLnJlamVjdCA9IHJlamVjdDtcbmZ1bmN0aW9uIHJlamVjdChyZWFzb24pIHtcbiAgdmFyIHByb21pc2UgPSBuZXcgdGhpcyhJTlRFUk5BTCk7XG4gIHJldHVybiBoYW5kbGVycy5yZWplY3QocHJvbWlzZSwgcmVhc29uKTtcbn1cblxuUHJvbWlzZS5hbGwgPSBhbGw7XG5mdW5jdGlvbiBhbGwoaXRlcmFibGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGl0ZXJhYmxlKSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgIHJldHVybiB0aGlzLnJlamVjdChuZXcgVHlwZUVycm9yKCdtdXN0IGJlIGFuIGFycmF5JykpO1xuICB9XG5cbiAgdmFyIGxlbiA9IGl0ZXJhYmxlLmxlbmd0aDtcbiAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICBpZiAoIWxlbikge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoW10pO1xuICB9XG5cbiAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW4pO1xuICB2YXIgcmVzb2x2ZWQgPSAwO1xuICB2YXIgaSA9IC0xO1xuICB2YXIgcHJvbWlzZSA9IG5ldyB0aGlzKElOVEVSTkFMKTtcblxuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgYWxsUmVzb2x2ZXIoaXRlcmFibGVbaV0sIGkpO1xuICB9XG4gIHJldHVybiBwcm9taXNlO1xuICBmdW5jdGlvbiBhbGxSZXNvbHZlcih2YWx1ZSwgaSkge1xuICAgIHNlbGYucmVzb2x2ZSh2YWx1ZSkudGhlbihyZXNvbHZlRnJvbUFsbCwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgICBoYW5kbGVycy5yZWplY3QocHJvbWlzZSwgZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVGcm9tQWxsKG91dFZhbHVlKSB7XG4gICAgICB2YWx1ZXNbaV0gPSBvdXRWYWx1ZTtcbiAgICAgIGlmICgrK3Jlc29sdmVkID09PSBsZW4gJiYgIWNhbGxlZCkge1xuICAgICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgICBoYW5kbGVycy5yZXNvbHZlKHByb21pc2UsIHZhbHVlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblByb21pc2UucmFjZSA9IHJhY2U7XG5mdW5jdGlvbiByYWNlKGl0ZXJhYmxlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpdGVyYWJsZSkgIT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICByZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5cGVFcnJvcignbXVzdCBiZSBhbiBhcnJheScpKTtcbiAgfVxuXG4gIHZhciBsZW4gPSBpdGVyYWJsZS5sZW5ndGg7XG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgaWYgKCFsZW4pIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKFtdKTtcbiAgfVxuXG4gIHZhciBpID0gLTE7XG4gIHZhciBwcm9taXNlID0gbmV3IHRoaXMoSU5URVJOQUwpO1xuXG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICByZXNvbHZlcihpdGVyYWJsZVtpXSk7XG4gIH1cbiAgcmV0dXJuIHByb21pc2U7XG4gIGZ1bmN0aW9uIHJlc29sdmVyKHZhbHVlKSB7XG4gICAgc2VsZi5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgICAgY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgaGFuZGxlcnMucmVzb2x2ZShwcm9taXNlLCByZXNwb25zZSk7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgICBoYW5kbGVycy5yZWplY3QocHJvbWlzZSwgZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbn0se1wiMVwiOjF9XSwzOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbihmdW5jdGlvbiAoZ2xvYmFsKXtcbid1c2Ugc3RyaWN0JztcbmlmICh0eXBlb2YgZ2xvYmFsLlByb21pc2UgIT09ICdmdW5jdGlvbicpIHtcbiAgZ2xvYmFsLlByb21pc2UgPSBfZGVyZXFfKDIpO1xufVxuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbn0se1wiMlwiOjJ9XSw0OltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbid1c2Ugc3RyaWN0JztcblxudmFyIF90eXBlb2YgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIiA/IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH0gOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9O1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBnZXRJREIoKSB7XG4gICAgLyogZ2xvYmFsIGluZGV4ZWREQix3ZWJraXRJbmRleGVkREIsbW96SW5kZXhlZERCLE9JbmRleGVkREIsbXNJbmRleGVkREIgKi9cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmRleGVkREI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3ZWJraXRJbmRleGVkREIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Via2l0SW5kZXhlZERCO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbW96SW5kZXhlZERCICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG1vekluZGV4ZWREQjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIE9JbmRleGVkREIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gT0luZGV4ZWREQjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG1zSW5kZXhlZERCICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG1zSW5kZXhlZERCO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuXG52YXIgaWRiID0gZ2V0SURCKCk7XG5cbmZ1bmN0aW9uIGlzSW5kZXhlZERCVmFsaWQoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBJbmRleGVkREI7IGZhbGwgYmFjayB0byB2ZW5kb3ItcHJlZml4ZWQgdmVyc2lvbnNcbiAgICAgICAgLy8gaWYgbmVlZGVkLlxuICAgICAgICBpZiAoIWlkYiB8fCAhaWRiLm9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSBtaW1pYyBQb3VjaERCIGhlcmU7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIHRlc3QgZm9yIG9wZW5EYXRhYmFzZSBiZWNhdXNlIElFIE1vYmlsZSBpZGVudGlmaWVzIGl0c2VsZlxuICAgICAgICAvLyBhcyBTYWZhcmkuIE9oIHRoZSBsdWx6Li4uXG4gICAgICAgIHZhciBpc1NhZmFyaSA9IHR5cGVvZiBvcGVuRGF0YWJhc2UgIT09ICd1bmRlZmluZWQnICYmIC8oU2FmYXJpfGlQaG9uZXxpUGFkfGlQb2QpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEvQmxhY2tCZXJyeS8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO1xuXG4gICAgICAgIHZhciBoYXNGZXRjaCA9IHR5cGVvZiBmZXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJiBmZXRjaC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpICE9PSAtMTtcblxuICAgICAgICAvLyBTYWZhcmkgPDEwLjEgZG9lcyBub3QgbWVldCBvdXIgcmVxdWlyZW1lbnRzIGZvciBJREIgc3VwcG9ydFxuICAgICAgICAvLyAoc2VlOiBodHRwczovL2dpdGh1Yi5jb20vcG91Y2hkYi9wb3VjaGRiL2lzc3Vlcy81NTcyKS5cbiAgICAgICAgLy8gU2FmYXJpIDEwLjEgc2hpcHBlZCB3aXRoIGZldGNoLCB3ZSBjYW4gdXNlIHRoYXQgdG8gZGV0ZWN0IGl0LlxuICAgICAgICAvLyBOb3RlOiB0aGlzIGNyZWF0ZXMgaXNzdWVzIHdpdGggYHdpbmRvdy5mZXRjaGAgcG9seWZpbGxzIGFuZFxuICAgICAgICAvLyBvdmVycmlkZXM7IHNlZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2xvY2FsRm9yYWdlL2xvY2FsRm9yYWdlL2lzc3Vlcy84NTZcbiAgICAgICAgcmV0dXJuICghaXNTYWZhcmkgfHwgaGFzRmV0Y2gpICYmIHR5cGVvZiBpbmRleGVkREIgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIC8vIHNvbWUgb3V0ZGF0ZWQgaW1wbGVtZW50YXRpb25zIG9mIElEQiB0aGF0IGFwcGVhciBvbiBTYW1zdW5nXG4gICAgICAgIC8vIGFuZCBIVEMgQW5kcm9pZCBkZXZpY2VzIDw0LjQgYXJlIG1pc3NpbmcgSURCS2V5UmFuZ2VcbiAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9sb2NhbEZvcmFnZS9pc3N1ZXMvMTI4XG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvbG9jYWxGb3JhZ2UvaXNzdWVzLzI3MlxuICAgICAgICB0eXBlb2YgSURCS2V5UmFuZ2UgIT09ICd1bmRlZmluZWQnO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLy8gQWJzdHJhY3RzIGNvbnN0cnVjdGluZyBhIEJsb2Igb2JqZWN0LCBzbyBpdCBhbHNvIHdvcmtzIGluIG9sZGVyXG4vLyBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlIG5hdGl2ZSBCbG9iIGNvbnN0cnVjdG9yLiAoaS5lLlxuLy8gb2xkIFF0V2ViS2l0IHZlcnNpb25zLCBhdCBsZWFzdCkuXG4vLyBBYnN0cmFjdHMgY29uc3RydWN0aW5nIGEgQmxvYiBvYmplY3QsIHNvIGl0IGFsc28gd29ya3MgaW4gb2xkZXJcbi8vIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgbmF0aXZlIEJsb2IgY29uc3RydWN0b3IuIChpLmUuXG4vLyBvbGQgUXRXZWJLaXQgdmVyc2lvbnMsIGF0IGxlYXN0KS5cbmZ1bmN0aW9uIGNyZWF0ZUJsb2IocGFydHMsIHByb3BlcnRpZXMpIHtcbiAgICAvKiBnbG9iYWwgQmxvYkJ1aWxkZXIsTVNCbG9iQnVpbGRlcixNb3pCbG9iQnVpbGRlcixXZWJLaXRCbG9iQnVpbGRlciAqL1xuICAgIHBhcnRzID0gcGFydHMgfHwgW107XG4gICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCbG9iKHBhcnRzLCBwcm9wZXJ0aWVzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlLm5hbWUgIT09ICdUeXBlRXJyb3InKSB7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBCdWlsZGVyID0gdHlwZW9mIEJsb2JCdWlsZGVyICE9PSAndW5kZWZpbmVkJyA/IEJsb2JCdWlsZGVyIDogdHlwZW9mIE1TQmxvYkJ1aWxkZXIgIT09ICd1bmRlZmluZWQnID8gTVNCbG9iQnVpbGRlciA6IHR5cGVvZiBNb3pCbG9iQnVpbGRlciAhPT0gJ3VuZGVmaW5lZCcgPyBNb3pCbG9iQnVpbGRlciA6IFdlYktpdEJsb2JCdWlsZGVyO1xuICAgICAgICB2YXIgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhcnRzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVpbGRlci5nZXRCbG9iKHByb3BlcnRpZXMudHlwZSk7XG4gICAgfVxufVxuXG4vLyBUaGlzIGlzIENvbW1vbkpTIGJlY2F1c2UgbGllIGlzIGFuIGV4dGVybmFsIGRlcGVuZGVuY3ksIHNvIFJvbGx1cFxuLy8gY2FuIGp1c3QgaWdub3JlIGl0LlxuaWYgKHR5cGVvZiBQcm9taXNlID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEluIHRoZSBcIm5vcHJvbWlzZXNcIiBidWlsZCB0aGlzIHdpbGwganVzdCB0aHJvdyBpZiB5b3UgZG9uJ3QgaGF2ZVxuICAgIC8vIGEgZ2xvYmFsIHByb21pc2Ugb2JqZWN0LCBidXQgaXQgd291bGQgdGhyb3cgYW55d2F5IGxhdGVyLlxuICAgIF9kZXJlcV8oMyk7XG59XG52YXIgUHJvbWlzZSQxID0gUHJvbWlzZTtcblxuZnVuY3Rpb24gZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIHByb21pc2UudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBleGVjdXRlVHdvQ2FsbGJhY2tzKHByb21pc2UsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwcm9taXNlLnRoZW4oY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZXJyb3JDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwcm9taXNlW1wiY2F0Y2hcIl0oZXJyb3JDYWxsYmFjayk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVLZXkoa2V5KSB7XG4gICAgLy8gQ2FzdCB0aGUga2V5IHRvIGEgc3RyaW5nLCBhcyB0aGF0J3MgYWxsIHdlIGNhbiBzZXQgYXMgYSBrZXkuXG4gICAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihrZXkgKyAnIHVzZWQgYXMgYSBrZXksIGJ1dCBpdCBpcyBub3QgYSBzdHJpbmcuJyk7XG4gICAgICAgIGtleSA9IFN0cmluZyhrZXkpO1xuICAgIH1cblxuICAgIHJldHVybiBrZXk7XG59XG5cbmZ1bmN0aW9uIGdldENhbGxiYWNrKCkge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICYmIHR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgIH1cbn1cblxuLy8gU29tZSBjb2RlIG9yaWdpbmFsbHkgZnJvbSBhc3luY19zdG9yYWdlLmpzIGluXG4vLyBbR2FpYV0oaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEtYjJnL2dhaWEpLlxuXG52YXIgREVURUNUX0JMT0JfU1VQUE9SVF9TVE9SRSA9ICdsb2NhbC1mb3JhZ2UtZGV0ZWN0LWJsb2Itc3VwcG9ydCc7XG52YXIgc3VwcG9ydHNCbG9icyA9IHZvaWQgMDtcbnZhciBkYkNvbnRleHRzID0ge307XG52YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4vLyBUcmFuc2FjdGlvbiBNb2Rlc1xudmFyIFJFQURfT05MWSA9ICdyZWFkb25seSc7XG52YXIgUkVBRF9XUklURSA9ICdyZWFkd3JpdGUnO1xuXG4vLyBUcmFuc2Zvcm0gYSBiaW5hcnkgc3RyaW5nIHRvIGFuIGFycmF5IGJ1ZmZlciwgYmVjYXVzZSBvdGhlcndpc2Vcbi8vIHdlaXJkIHN0dWZmIGhhcHBlbnMgd2hlbiB5b3UgdHJ5IHRvIHdvcmsgd2l0aCB0aGUgYmluYXJ5IHN0cmluZyBkaXJlY3RseS5cbi8vIEl0IGlzIGtub3duLlxuLy8gRnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE0OTY3NjQ3LyAoY29udGludWVzIG9uIG5leHQgbGluZSlcbi8vIGVuY29kZS1kZWNvZGUtaW1hZ2Utd2l0aC1iYXNlNjQtYnJlYWtzLWltYWdlICgyMDEzLTA0LTIxKVxuZnVuY3Rpb24gX2JpblN0cmluZ1RvQXJyYXlCdWZmZXIoYmluKSB7XG4gICAgdmFyIGxlbmd0aCA9IGJpbi5sZW5ndGg7XG4gICAgdmFyIGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGgpO1xuICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheShidWYpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXJyW2ldID0gYmluLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBidWY7XG59XG5cbi8vXG4vLyBCbG9icyBhcmUgbm90IHN1cHBvcnRlZCBpbiBhbGwgdmVyc2lvbnMgb2YgSW5kZXhlZERCLCBub3RhYmx5XG4vLyBDaHJvbWUgPDM3IGFuZCBBbmRyb2lkIDw1LiBJbiB0aG9zZSB2ZXJzaW9ucywgc3RvcmluZyBhIGJsb2Igd2lsbCB0aHJvdy5cbi8vXG4vLyBWYXJpb3VzIG90aGVyIGJsb2IgYnVncyBleGlzdCBpbiBDaHJvbWUgdjM3LTQyIChpbmNsdXNpdmUpLlxuLy8gRGV0ZWN0aW5nIHRoZW0gaXMgZXhwZW5zaXZlIGFuZCBjb25mdXNpbmcgdG8gdXNlcnMsIGFuZCBDaHJvbWUgMzctNDJcbi8vIGlzIGF0IHZlcnkgbG93IHVzYWdlIHdvcmxkd2lkZSwgc28gd2UgZG8gYSBoYWNreSB1c2VyQWdlbnQgY2hlY2sgaW5zdGVhZC5cbi8vXG4vLyBjb250ZW50LXR5cGUgYnVnOiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDA4MTIwXG4vLyA0MDQgYnVnOiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ3OTE2XG4vLyBGaWxlUmVhZGVyIGJ1ZzogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ0NzgzNlxuLy9cbi8vIENvZGUgYm9ycm93ZWQgZnJvbSBQb3VjaERCLiBTZWU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vcG91Y2hkYi9wb3VjaGRiL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL25vZGVfbW9kdWxlcy9wb3VjaGRiLWFkYXB0ZXItaWRiL3NyYy9ibG9iU3VwcG9ydC5qc1xuLy9cbmZ1bmN0aW9uIF9jaGVja0Jsb2JTdXBwb3J0V2l0aG91dENhY2hpbmcoaWRiKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgdmFyIHR4biA9IGlkYi50cmFuc2FjdGlvbihERVRFQ1RfQkxPQl9TVVBQT1JUX1NUT1JFLCBSRUFEX1dSSVRFKTtcbiAgICAgICAgdmFyIGJsb2IgPSBjcmVhdGVCbG9iKFsnJ10pO1xuICAgICAgICB0eG4ub2JqZWN0U3RvcmUoREVURUNUX0JMT0JfU1VQUE9SVF9TVE9SRSkucHV0KGJsb2IsICdrZXknKTtcblxuICAgICAgICB0eG4ub25hYm9ydCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRzIG5vdyBpdHMgZHVlIHRvIG5vdCBiZWluZyBhYmxlIHRvXG4gICAgICAgICAgICAvLyB3cml0ZSB0byB0aGUgZGF0YWJhc2UsIGxpa2VseSBkdWUgdG8gdGhlIGRpc2sgYmVpbmcgZnVsbFxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHR4bi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG1hdGNoZWRDaHJvbWUgPSBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICAgICAgICAgIHZhciBtYXRjaGVkRWRnZSA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8vKTtcbiAgICAgICAgICAgIC8vIE1TIEVkZ2UgcHJldGVuZHMgdG8gYmUgQ2hyb21lIDQyOlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9oaDg2OTMwMSUyOHY9dnMuODUlMjkuYXNweFxuICAgICAgICAgICAgcmVzb2x2ZShtYXRjaGVkRWRnZSB8fCAhbWF0Y2hlZENocm9tZSB8fCBwYXJzZUludChtYXRjaGVkQ2hyb21lWzFdLCAxMCkgPj0gNDMpO1xuICAgICAgICB9O1xuICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGVycm9yLCBzbyBhc3N1bWUgdW5zdXBwb3J0ZWRcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gX2NoZWNrQmxvYlN1cHBvcnQoaWRiKSB7XG4gICAgaWYgKHR5cGVvZiBzdXBwb3J0c0Jsb2JzID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UkMS5yZXNvbHZlKHN1cHBvcnRzQmxvYnMpO1xuICAgIH1cbiAgICByZXR1cm4gX2NoZWNrQmxvYlN1cHBvcnRXaXRob3V0Q2FjaGluZyhpZGIpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHN1cHBvcnRzQmxvYnMgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzQmxvYnM7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIF9kZWZlclJlYWRpbmVzcyhkYkluZm8pIHtcbiAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tkYkluZm8ubmFtZV07XG5cbiAgICAvLyBDcmVhdGUgYSBkZWZlcnJlZCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IGRhdGFiYXNlIG9wZXJhdGlvbi5cbiAgICB2YXIgZGVmZXJyZWRPcGVyYXRpb24gPSB7fTtcblxuICAgIGRlZmVycmVkT3BlcmF0aW9uLnByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZGVmZXJyZWRPcGVyYXRpb24ucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIGRlZmVycmVkT3BlcmF0aW9uLnJlamVjdCA9IHJlamVjdDtcbiAgICB9KTtcblxuICAgIC8vIEVucXVldWUgdGhlIGRlZmVycmVkIG9wZXJhdGlvbi5cbiAgICBkYkNvbnRleHQuZGVmZXJyZWRPcGVyYXRpb25zLnB1c2goZGVmZXJyZWRPcGVyYXRpb24pO1xuXG4gICAgLy8gQ2hhaW4gaXRzIHByb21pc2UgdG8gdGhlIGRhdGFiYXNlIHJlYWRpbmVzcy5cbiAgICBpZiAoIWRiQ29udGV4dC5kYlJlYWR5KSB7XG4gICAgICAgIGRiQ29udGV4dC5kYlJlYWR5ID0gZGVmZXJyZWRPcGVyYXRpb24ucHJvbWlzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBkYkNvbnRleHQuZGJSZWFkeSA9IGRiQ29udGV4dC5kYlJlYWR5LnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkT3BlcmF0aW9uLnByb21pc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gX2FkdmFuY2VSZWFkaW5lc3MoZGJJbmZvKSB7XG4gICAgdmFyIGRiQ29udGV4dCA9IGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdO1xuXG4gICAgLy8gRGVxdWV1ZSBhIGRlZmVycmVkIG9wZXJhdGlvbi5cbiAgICB2YXIgZGVmZXJyZWRPcGVyYXRpb24gPSBkYkNvbnRleHQuZGVmZXJyZWRPcGVyYXRpb25zLnBvcCgpO1xuXG4gICAgLy8gUmVzb2x2ZSBpdHMgcHJvbWlzZSAod2hpY2ggaXMgcGFydCBvZiB0aGUgZGF0YWJhc2UgcmVhZGluZXNzXG4gICAgLy8gY2hhaW4gb2YgcHJvbWlzZXMpLlxuICAgIGlmIChkZWZlcnJlZE9wZXJhdGlvbikge1xuICAgICAgICBkZWZlcnJlZE9wZXJhdGlvbi5yZXNvbHZlKCk7XG4gICAgICAgIHJldHVybiBkZWZlcnJlZE9wZXJhdGlvbi5wcm9taXNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gX3JlamVjdFJlYWRpbmVzcyhkYkluZm8sIGVycikge1xuICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW2RiSW5mby5uYW1lXTtcblxuICAgIC8vIERlcXVldWUgYSBkZWZlcnJlZCBvcGVyYXRpb24uXG4gICAgdmFyIGRlZmVycmVkT3BlcmF0aW9uID0gZGJDb250ZXh0LmRlZmVycmVkT3BlcmF0aW9ucy5wb3AoKTtcblxuICAgIC8vIFJlamVjdCBpdHMgcHJvbWlzZSAod2hpY2ggaXMgcGFydCBvZiB0aGUgZGF0YWJhc2UgcmVhZGluZXNzXG4gICAgLy8gY2hhaW4gb2YgcHJvbWlzZXMpLlxuICAgIGlmIChkZWZlcnJlZE9wZXJhdGlvbikge1xuICAgICAgICBkZWZlcnJlZE9wZXJhdGlvbi5yZWplY3QoZXJyKTtcbiAgICAgICAgcmV0dXJuIGRlZmVycmVkT3BlcmF0aW9uLnByb21pc2U7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBfZ2V0Q29ubmVjdGlvbihkYkluZm8sIHVwZ3JhZGVOZWVkZWQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdID0gZGJDb250ZXh0c1tkYkluZm8ubmFtZV0gfHwgY3JlYXRlRGJDb250ZXh0KCk7XG5cbiAgICAgICAgaWYgKGRiSW5mby5kYikge1xuICAgICAgICAgICAgaWYgKHVwZ3JhZGVOZWVkZWQpIHtcbiAgICAgICAgICAgICAgICBfZGVmZXJSZWFkaW5lc3MoZGJJbmZvKTtcbiAgICAgICAgICAgICAgICBkYkluZm8uZGIuY2xvc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGJJbmZvLmRiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkYkFyZ3MgPSBbZGJJbmZvLm5hbWVdO1xuXG4gICAgICAgIGlmICh1cGdyYWRlTmVlZGVkKSB7XG4gICAgICAgICAgICBkYkFyZ3MucHVzaChkYkluZm8udmVyc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb3BlbnJlcSA9IGlkYi5vcGVuLmFwcGx5KGlkYiwgZGJBcmdzKTtcblxuICAgICAgICBpZiAodXBncmFkZU5lZWRlZCkge1xuICAgICAgICAgICAgb3BlbnJlcS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIHZhciBkYiA9IG9wZW5yZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKGRiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5vbGRWZXJzaW9uIDw9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZGVkIHdoZW4gc3VwcG9ydCBmb3IgYmxvYiBzaGltcyB3YXMgYWRkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKERFVEVDVF9CTE9CX1NVUFBPUlRfU1RPUkUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4Lm5hbWUgPT09ICdDb25zdHJhaW50RXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBkYXRhYmFzZSBcIicgKyBkYkluZm8ubmFtZSArICdcIicgKyAnIGhhcyBiZWVuIHVwZ3JhZGVkIGZyb20gdmVyc2lvbiAnICsgZS5vbGRWZXJzaW9uICsgJyB0byB2ZXJzaW9uICcgKyBlLm5ld1ZlcnNpb24gKyAnLCBidXQgdGhlIHN0b3JhZ2UgXCInICsgZGJJbmZvLnN0b3JlTmFtZSArICdcIiBhbHJlYWR5IGV4aXN0cy4nKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wZW5yZXEub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZWplY3Qob3BlbnJlcS5lcnJvcik7XG4gICAgICAgIH07XG5cbiAgICAgICAgb3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGIgPSBvcGVucmVxLnJlc3VsdDtcbiAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gVHJpZ2dlcmVkIHdoZW4gdGhlIGRhdGFiYXNlIGlzIG1vZGlmaWVkIChlLmcuIGFkZGluZyBhbiBvYmplY3RTdG9yZSkgb3JcbiAgICAgICAgICAgICAgICAvLyBkZWxldGVkIChldmVuIHdoZW4gaW5pdGlhdGVkIGJ5IG90aGVyIHNlc3Npb25zIGluIGRpZmZlcmVudCB0YWJzKS5cbiAgICAgICAgICAgICAgICAvLyBDbG9zaW5nIHRoZSBjb25uZWN0aW9uIGhlcmUgcHJldmVudHMgdGhvc2Ugb3BlcmF0aW9ucyBmcm9tIGJlaW5nIGJsb2NrZWQuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRhdGFiYXNlIGlzIGFjY2Vzc2VkIGFnYWluIGxhdGVyIGJ5IHRoaXMgaW5zdGFuY2UsIHRoZSBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgLy8gd2lsbCBiZSByZW9wZW5lZCBvciB0aGUgZGF0YWJhc2UgcmVjcmVhdGVkIGFzIG5lZWRlZC5cbiAgICAgICAgICAgICAgICBlLnRhcmdldC5jbG9zZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc29sdmUoZGIpO1xuICAgICAgICAgICAgX2FkdmFuY2VSZWFkaW5lc3MoZGJJbmZvKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gX2dldE9yaWdpbmFsQ29ubmVjdGlvbihkYkluZm8pIHtcbiAgICByZXR1cm4gX2dldENvbm5lY3Rpb24oZGJJbmZvLCBmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIF9nZXRVcGdyYWRlZENvbm5lY3Rpb24oZGJJbmZvKSB7XG4gICAgcmV0dXJuIF9nZXRDb25uZWN0aW9uKGRiSW5mbywgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIF9pc1VwZ3JhZGVOZWVkZWQoZGJJbmZvLCBkZWZhdWx0VmVyc2lvbikge1xuICAgIGlmICghZGJJbmZvLmRiKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBpc05ld1N0b3JlID0gIWRiSW5mby5kYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKGRiSW5mby5zdG9yZU5hbWUpO1xuICAgIHZhciBpc0Rvd25ncmFkZSA9IGRiSW5mby52ZXJzaW9uIDwgZGJJbmZvLmRiLnZlcnNpb247XG4gICAgdmFyIGlzVXBncmFkZSA9IGRiSW5mby52ZXJzaW9uID4gZGJJbmZvLmRiLnZlcnNpb247XG5cbiAgICBpZiAoaXNEb3duZ3JhZGUpIHtcbiAgICAgICAgLy8gSWYgdGhlIHZlcnNpb24gaXMgbm90IHRoZSBkZWZhdWx0IG9uZVxuICAgICAgICAvLyB0aGVuIHdhcm4gZm9yIGltcG9zc2libGUgZG93bmdyYWRlLlxuICAgICAgICBpZiAoZGJJbmZvLnZlcnNpb24gIT09IGRlZmF1bHRWZXJzaW9uKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBkYXRhYmFzZSBcIicgKyBkYkluZm8ubmFtZSArICdcIicgKyBcIiBjYW4ndCBiZSBkb3duZ3JhZGVkIGZyb20gdmVyc2lvbiBcIiArIGRiSW5mby5kYi52ZXJzaW9uICsgJyB0byB2ZXJzaW9uICcgKyBkYkluZm8udmVyc2lvbiArICcuJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWxpZ24gdGhlIHZlcnNpb25zIHRvIHByZXZlbnQgZXJyb3JzLlxuICAgICAgICBkYkluZm8udmVyc2lvbiA9IGRiSW5mby5kYi52ZXJzaW9uO1xuICAgIH1cblxuICAgIGlmIChpc1VwZ3JhZGUgfHwgaXNOZXdTdG9yZSkge1xuICAgICAgICAvLyBJZiB0aGUgc3RvcmUgaXMgbmV3IHRoZW4gaW5jcmVtZW50IHRoZSB2ZXJzaW9uIChpZiBuZWVkZWQpLlxuICAgICAgICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhbiBcInVwZ3JhZGVuZWVkZWRcIiBldmVudCB3aGljaCBpcyByZXF1aXJlZFxuICAgICAgICAvLyBmb3IgY3JlYXRpbmcgYSBzdG9yZS5cbiAgICAgICAgaWYgKGlzTmV3U3RvcmUpIHtcbiAgICAgICAgICAgIHZhciBpbmNWZXJzaW9uID0gZGJJbmZvLmRiLnZlcnNpb24gKyAxO1xuICAgICAgICAgICAgaWYgKGluY1ZlcnNpb24gPiBkYkluZm8udmVyc2lvbikge1xuICAgICAgICAgICAgICAgIGRiSW5mby52ZXJzaW9uID0gaW5jVmVyc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gZW5jb2RlIGEgYmxvYiBmb3IgaW5kZXhlZGRiIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0IGJsb2JzXG5mdW5jdGlvbiBfZW5jb2RlQmxvYihibG9iKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIGJhc2U2NCA9IGJ0b2EoZS50YXJnZXQucmVzdWx0IHx8ICcnKTtcbiAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgIF9fbG9jYWxfZm9yYWdlX2VuY29kZWRfYmxvYjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBiYXNlNjQsXG4gICAgICAgICAgICAgICAgdHlwZTogYmxvYi50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhibG9iKTtcbiAgICB9KTtcbn1cblxuLy8gZGVjb2RlIGFuIGVuY29kZWQgYmxvYlxuZnVuY3Rpb24gX2RlY29kZUJsb2IoZW5jb2RlZEJsb2IpIHtcbiAgICB2YXIgYXJyYXlCdWZmID0gX2JpblN0cmluZ1RvQXJyYXlCdWZmZXIoYXRvYihlbmNvZGVkQmxvYi5kYXRhKSk7XG4gICAgcmV0dXJuIGNyZWF0ZUJsb2IoW2FycmF5QnVmZl0sIHsgdHlwZTogZW5jb2RlZEJsb2IudHlwZSB9KTtcbn1cblxuLy8gaXMgdGhpcyBvbmUgb2Ygb3VyIGZhbmN5IGVuY29kZWQgYmxvYnM/XG5mdW5jdGlvbiBfaXNFbmNvZGVkQmxvYih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS5fX2xvY2FsX2ZvcmFnZV9lbmNvZGVkX2Jsb2I7XG59XG5cbi8vIFNwZWNpYWxpemUgdGhlIGRlZmF1bHQgYHJlYWR5KClgIGZ1bmN0aW9uIGJ5IG1ha2luZyBpdCBkZXBlbmRlbnRcbi8vIG9uIHRoZSBjdXJyZW50IGRhdGFiYXNlIG9wZXJhdGlvbnMuIFRodXMsIHRoZSBkcml2ZXIgd2lsbCBiZSBhY3R1YWxseVxuLy8gcmVhZHkgd2hlbiBpdCdzIGJlZW4gaW5pdGlhbGl6ZWQgKGRlZmF1bHQpICphbmQqIHRoZXJlIGFyZSBubyBwZW5kaW5nXG4vLyBvcGVyYXRpb25zIG9uIHRoZSBkYXRhYmFzZSAoaW5pdGlhdGVkIGJ5IHNvbWUgb3RoZXIgaW5zdGFuY2VzKS5cbmZ1bmN0aW9uIF9mdWxseVJlYWR5KGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBzZWxmLl9pbml0UmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiQ29udGV4dCA9IGRiQ29udGV4dHNbc2VsZi5fZGJJbmZvLm5hbWVdO1xuXG4gICAgICAgIGlmIChkYkNvbnRleHQgJiYgZGJDb250ZXh0LmRiUmVhZHkpIHtcbiAgICAgICAgICAgIHJldHVybiBkYkNvbnRleHQuZGJSZWFkeTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhlY3V0ZVR3b0NhbGxiYWNrcyhwcm9taXNlLCBjYWxsYmFjaywgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBUcnkgdG8gZXN0YWJsaXNoIGEgbmV3IGRiIGNvbm5lY3Rpb24gdG8gcmVwbGFjZSB0aGVcbi8vIGN1cnJlbnQgb25lIHdoaWNoIGlzIGJyb2tlbiAoaS5lLiBleHBlcmllbmNpbmdcbi8vIEludmFsaWRTdGF0ZUVycm9yIHdoaWxlIGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24pLlxuZnVuY3Rpb24gX3RyeVJlY29ubmVjdChkYkluZm8pIHtcbiAgICBfZGVmZXJSZWFkaW5lc3MoZGJJbmZvKTtcblxuICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW2RiSW5mby5uYW1lXTtcbiAgICB2YXIgZm9yYWdlcyA9IGRiQ29udGV4dC5mb3JhZ2VzO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmb3JhZ2UgPSBmb3JhZ2VzW2ldO1xuICAgICAgICBpZiAoZm9yYWdlLl9kYkluZm8uZGIpIHtcbiAgICAgICAgICAgIGZvcmFnZS5fZGJJbmZvLmRiLmNsb3NlKCk7XG4gICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby5kYiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGJJbmZvLmRiID0gbnVsbDtcblxuICAgIHJldHVybiBfZ2V0T3JpZ2luYWxDb25uZWN0aW9uKGRiSW5mbykudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgZGJJbmZvLmRiID0gZGI7XG4gICAgICAgIGlmIChfaXNVcGdyYWRlTmVlZGVkKGRiSW5mbykpIHtcbiAgICAgICAgICAgIC8vIFJlb3BlbiB0aGUgZGF0YWJhc2UgZm9yIHVwZ3JhZGluZy5cbiAgICAgICAgICAgIHJldHVybiBfZ2V0VXBncmFkZWRDb25uZWN0aW9uKGRiSW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRiO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgICAgIC8vIHN0b3JlIHRoZSBsYXRlc3QgZGIgcmVmZXJlbmNlXG4gICAgICAgIC8vIGluIGNhc2UgdGhlIGRiIHdhcyB1cGdyYWRlZFxuICAgICAgICBkYkluZm8uZGIgPSBkYkNvbnRleHQuZGIgPSBkYjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3JhZ2VzW2ldLl9kYkluZm8uZGIgPSBkYjtcbiAgICAgICAgfVxuICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKGVycikge1xuICAgICAgICBfcmVqZWN0UmVhZGluZXNzKGRiSW5mbywgZXJyKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xufVxuXG4vLyBGRiBkb2Vzbid0IGxpa2UgUHJvbWlzZXMgKG1pY3JvLXRhc2tzKSBhbmQgSUREQiBzdG9yZSBvcGVyYXRpb25zLFxuLy8gc28gd2UgaGF2ZSB0byBkbyBpdCB3aXRoIGNhbGxiYWNrc1xuZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb24oZGJJbmZvLCBtb2RlLCBjYWxsYmFjaywgcmV0cmllcykge1xuICAgIGlmIChyZXRyaWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0cmllcyA9IDE7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIHR4ID0gZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGRiSW5mby5zdG9yZU5hbWUsIG1vZGUpO1xuICAgICAgICBjYWxsYmFjayhudWxsLCB0eCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChyZXRyaWVzID4gMCAmJiAoIWRiSW5mby5kYiB8fCBlcnIubmFtZSA9PT0gJ0ludmFsaWRTdGF0ZUVycm9yJyB8fCBlcnIubmFtZSA9PT0gJ05vdEZvdW5kRXJyb3InKSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UkMS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYkluZm8uZGIgfHwgZXJyLm5hbWUgPT09ICdOb3RGb3VuZEVycm9yJyAmJiAhZGJJbmZvLmRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoZGJJbmZvLnN0b3JlTmFtZSkgJiYgZGJJbmZvLnZlcnNpb24gPD0gZGJJbmZvLmRiLnZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW5jcmVhc2UgdGhlIGRiIHZlcnNpb24sIHRvIGNyZWF0ZSB0aGUgbmV3IE9iamVjdFN0b3JlXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYkluZm8uZGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRiSW5mby52ZXJzaW9uID0gZGJJbmZvLmRiLnZlcnNpb24gKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlb3BlbiB0aGUgZGF0YWJhc2UgZm9yIHVwZ3JhZGluZy5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9nZXRVcGdyYWRlZENvbm5lY3Rpb24oZGJJbmZvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RyeVJlY29ubmVjdChkYkluZm8pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihkYkluZm8sIG1vZGUsIGNhbGxiYWNrLCByZXRyaWVzIC0gMSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVtcImNhdGNoXCJdKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVEYkNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLy8gUnVubmluZyBsb2NhbEZvcmFnZXMgc2hhcmluZyBhIGRhdGFiYXNlLlxuICAgICAgICBmb3JhZ2VzOiBbXSxcbiAgICAgICAgLy8gU2hhcmVkIGRhdGFiYXNlLlxuICAgICAgICBkYjogbnVsbCxcbiAgICAgICAgLy8gRGF0YWJhc2UgcmVhZGluZXNzIChwcm9taXNlKS5cbiAgICAgICAgZGJSZWFkeTogbnVsbCxcbiAgICAgICAgLy8gRGVmZXJyZWQgb3BlcmF0aW9ucyBvbiB0aGUgZGF0YWJhc2UuXG4gICAgICAgIGRlZmVycmVkT3BlcmF0aW9uczogW11cbiAgICB9O1xufVxuXG4vLyBPcGVuIHRoZSBJbmRleGVkREIgZGF0YWJhc2UgKGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBvbmUgaWYgb25lIGRpZG4ndFxuLy8gcHJldmlvdXNseSBleGlzdCksIHVzaW5nIGFueSBvcHRpb25zIHNldCBpbiB0aGUgY29uZmlnLlxuZnVuY3Rpb24gX2luaXRTdG9yYWdlKG9wdGlvbnMpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGRiSW5mbyA9IHtcbiAgICAgICAgZGI6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgICBkYkluZm9baV0gPSBvcHRpb25zW2ldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGNvbnRleHQgb2YgdGhlIGRhdGFiYXNlO1xuICAgIHZhciBkYkNvbnRleHQgPSBkYkNvbnRleHRzW2RiSW5mby5uYW1lXTtcblxuICAgIC8vIC4uLm9yIGNyZWF0ZSBhIG5ldyBjb250ZXh0LlxuICAgIGlmICghZGJDb250ZXh0KSB7XG4gICAgICAgIGRiQ29udGV4dCA9IGNyZWF0ZURiQ29udGV4dCgpO1xuICAgICAgICAvLyBSZWdpc3RlciB0aGUgbmV3IGNvbnRleHQgaW4gdGhlIGdsb2JhbCBjb250YWluZXIuXG4gICAgICAgIGRiQ29udGV4dHNbZGJJbmZvLm5hbWVdID0gZGJDb250ZXh0O1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGl0c2VsZiBhcyBhIHJ1bm5pbmcgbG9jYWxGb3JhZ2UgaW4gdGhlIGN1cnJlbnQgY29udGV4dC5cbiAgICBkYkNvbnRleHQuZm9yYWdlcy5wdXNoKHNlbGYpO1xuXG4gICAgLy8gUmVwbGFjZSB0aGUgZGVmYXVsdCBgcmVhZHkoKWAgZnVuY3Rpb24gd2l0aCB0aGUgc3BlY2lhbGl6ZWQgb25lLlxuICAgIGlmICghc2VsZi5faW5pdFJlYWR5KSB7XG4gICAgICAgIHNlbGYuX2luaXRSZWFkeSA9IHNlbGYucmVhZHk7XG4gICAgICAgIHNlbGYucmVhZHkgPSBfZnVsbHlSZWFkeTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgaW5pdGlhbGl6YXRpb24gc3RhdGVzIG9mIHRoZSByZWxhdGVkIGxvY2FsRm9yYWdlcy5cbiAgICB2YXIgaW5pdFByb21pc2VzID0gW107XG5cbiAgICBmdW5jdGlvbiBpZ25vcmVFcnJvcnMoKSB7XG4gICAgICAgIC8vIERvbid0IGhhbmRsZSBlcnJvcnMgaGVyZSxcbiAgICAgICAgLy8ganVzdCBtYWtlcyBzdXJlIHJlbGF0ZWQgbG9jYWxGb3JhZ2VzIGFyZW4ndCBwZW5kaW5nLlxuICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRiQ29udGV4dC5mb3JhZ2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBmb3JhZ2UgPSBkYkNvbnRleHQuZm9yYWdlc1tqXTtcbiAgICAgICAgaWYgKGZvcmFnZSAhPT0gc2VsZikge1xuICAgICAgICAgICAgLy8gRG9uJ3Qgd2FpdCBmb3IgaXRzZWxmLi4uXG4gICAgICAgICAgICBpbml0UHJvbWlzZXMucHVzaChmb3JhZ2UuX2luaXRSZWFkeSgpW1wiY2F0Y2hcIl0oaWdub3JlRXJyb3JzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUYWtlIGEgc25hcHNob3Qgb2YgdGhlIHJlbGF0ZWQgbG9jYWxGb3JhZ2VzLlxuICAgIHZhciBmb3JhZ2VzID0gZGJDb250ZXh0LmZvcmFnZXMuc2xpY2UoMCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBjb25uZWN0aW9uIHByb2Nlc3Mgb25seSB3aGVuXG4gICAgLy8gYWxsIHRoZSByZWxhdGVkIGxvY2FsRm9yYWdlcyBhcmVuJ3QgcGVuZGluZy5cbiAgICByZXR1cm4gUHJvbWlzZSQxLmFsbChpbml0UHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICBkYkluZm8uZGIgPSBkYkNvbnRleHQuZGI7XG4gICAgICAgIC8vIEdldCB0aGUgY29ubmVjdGlvbiBvciBvcGVuIGEgbmV3IG9uZSB3aXRob3V0IHVwZ3JhZGUuXG4gICAgICAgIHJldHVybiBfZ2V0T3JpZ2luYWxDb25uZWN0aW9uKGRiSW5mbyk7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgZGJJbmZvLmRiID0gZGI7XG4gICAgICAgIGlmIChfaXNVcGdyYWRlTmVlZGVkKGRiSW5mbywgc2VsZi5fZGVmYXVsdENvbmZpZy52ZXJzaW9uKSkge1xuICAgICAgICAgICAgLy8gUmVvcGVuIHRoZSBkYXRhYmFzZSBmb3IgdXBncmFkaW5nLlxuICAgICAgICAgICAgcmV0dXJuIF9nZXRVcGdyYWRlZENvbm5lY3Rpb24oZGJJbmZvKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGI7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgZGJJbmZvLmRiID0gZGJDb250ZXh0LmRiID0gZGI7XG4gICAgICAgIHNlbGYuX2RiSW5mbyA9IGRiSW5mbztcbiAgICAgICAgLy8gU2hhcmUgdGhlIGZpbmFsIGNvbm5lY3Rpb24gYW1vbmdzdCByZWxhdGVkIGxvY2FsRm9yYWdlcy5cbiAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBmb3JhZ2VzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICB2YXIgZm9yYWdlID0gZm9yYWdlc1trXTtcbiAgICAgICAgICAgIGlmIChmb3JhZ2UgIT09IHNlbGYpIHtcbiAgICAgICAgICAgICAgICAvLyBTZWxmIGlzIGFscmVhZHkgdXAtdG8tZGF0ZS5cbiAgICAgICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby5kYiA9IGRiSW5mby5kYjtcbiAgICAgICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby52ZXJzaW9uID0gZGJJbmZvLnZlcnNpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0SXRlbShrZXksIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfT05MWSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLmdldChrZXkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSByZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzRW5jb2RlZEJsb2IodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBfZGVjb2RlQmxvYih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXEuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBJdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIHN0b3JlZCBpbiBkYXRhYmFzZS5cbmZ1bmN0aW9uIGl0ZXJhdGUoaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY3JlYXRlVHJhbnNhY3Rpb24oc2VsZi5fZGJJbmZvLCBSRUFEX09OTFksIGZ1bmN0aW9uIChlcnIsIHRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc2VsZi5fZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVyYXRpb25OdW1iZXIgPSAxO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gcmVxLnJlc3VsdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnNvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGN1cnNvci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzRW5jb2RlZEJsb2IodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gX2RlY29kZUJsb2IodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gaXRlcmF0b3IodmFsdWUsIGN1cnNvci5rZXksIGl0ZXJhdGlvbk51bWJlcisrKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGl0ZXJhdG9yIGNhbGxiYWNrIHJldHVybnMgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKG5vbi1gdW5kZWZpbmVkYCkgdmFsdWUsIHRoZW4gd2Ugc3RvcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBpdGVyYXRpb24gaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcltcImNvbnRpbnVlXCJdKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcblxuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBzZXRJdGVtKGtleSwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgZGJJbmZvO1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBpZiAodG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEJsb2JdJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBfY2hlY2tCbG9iU3VwcG9ydChkYkluZm8uZGIpLnRoZW4oZnVuY3Rpb24gKGJsb2JTdXBwb3J0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9iU3VwcG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfZW5jb2RlQmxvYih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfV1JJVEUsIGZ1bmN0aW9uIChlcnIsIHRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc2VsZi5fZGJJbmZvLnN0b3JlTmFtZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJlYXNvbiB3ZSBkb24ndCBfc2F2ZV8gbnVsbCBpcyBiZWNhdXNlIElFIDEwIGRvZXNcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90IHN1cHBvcnQgc2F2aW5nIHRoZSBgbnVsbGAgdHlwZSBpbiBJbmRleGVkREIuIEhvd1xuICAgICAgICAgICAgICAgICAgICAvLyBpcm9uaWMsIGdpdmVuIHRoZSBidWcgYmVsb3chXG4gICAgICAgICAgICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvbG9jYWxGb3JhZ2UvaXNzdWVzLzE2MVxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLnB1dCh2YWx1ZSwga2V5KTtcblxuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FzdCB0byB1bmRlZmluZWQgc28gdGhlIHZhbHVlIHBhc3NlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGJhY2svcHJvbWlzZSBpcyB0aGUgc2FtZSBhcyB3aGF0IG9uZSB3b3VsZCBnZXQgb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiBgZ2V0SXRlbSgpYCBsYXRlci4gVGhpcyBsZWFkcyB0byBzb21lIHdlaXJkbmVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHNldEl0ZW0oJ2ZvbycsIHVuZGVmaW5lZCkgd2lsbCByZXR1cm4gYG51bGxgKSwgYnV0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIG5vdCBteSBmYXVsdCBsb2NhbFN0b3JhZ2UgaXMgb3VyIGJhc2VsaW5lIGFuZCB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHdlaXJkLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXEuZXJyb3IgPyByZXEuZXJyb3IgOiByZXEudHJhbnNhY3Rpb24uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSXRlbShrZXksIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfV1JJVEUsIGZ1bmN0aW9uIChlcnIsIHRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc2VsZi5fZGJJbmZvLnN0b3JlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHVzZSBhIEdydW50IHRhc2sgdG8gbWFrZSB0aGlzIHNhZmUgZm9yIElFIGFuZCBzb21lXG4gICAgICAgICAgICAgICAgICAgIC8vIHZlcnNpb25zIG9mIEFuZHJvaWQgKGluY2x1ZGluZyB0aG9zZSB1c2VkIGJ5IENvcmRvdmEpLlxuICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWxseSBJRSB3b24ndCBsaWtlIGAuZGVsZXRlKClgIGFuZCB3aWxsIGluc2lzdCBvblxuICAgICAgICAgICAgICAgICAgICAvLyB1c2luZyBgWydkZWxldGUnXSgpYCwgYnV0IHdlIGhhdmUgYSBidWlsZCBzdGVwIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgLy8gZml4ZXMgdGhpcyBmb3IgdXMgbm93LlxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmVbXCJkZWxldGVcIl0oa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlcS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJlcXVlc3Qgd2lsbCBiZSBhbHNvIGJlIGFib3J0ZWQgaWYgd2UndmUgZXhjZWVkZWQgb3VyIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgLy8gc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJyID0gcmVxLmVycm9yID8gcmVxLmVycm9yIDogcmVxLnRyYW5zYWN0aW9uLmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIGNsZWFyKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY3JlYXRlVHJhbnNhY3Rpb24oc2VsZi5fZGJJbmZvLCBSRUFEX1dSSVRFLCBmdW5jdGlvbiAoZXJyLCB0cmFuc2FjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHNlbGYuX2RiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUuY2xlYXIoKTtcblxuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVyciA9IHJlcS5lcnJvciA/IHJlcS5lcnJvciA6IHJlcS50cmFuc2FjdGlvbi5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBsZW5ndGgoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfT05MWSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLmNvdW50KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVxLnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24ga2V5KG4sIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgaWYgKG4gPCAwKSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjcmVhdGVUcmFuc2FjdGlvbihzZWxmLl9kYkluZm8sIFJFQURfT05MWSwgZnVuY3Rpb24gKGVyciwgdHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShzZWxmLl9kYkluZm8uc3RvcmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFkdmFuY2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZS5vcGVuS2V5Q3Vyc29yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSByZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1lYW5zIHRoZXJlIHdlcmVuJ3QgZW5vdWdoIGtleXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdGhlIGZpcnN0IGtleSwgcmV0dXJuIGl0IGlmIHRoYXQncyB3aGF0IHRoZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YW50ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjdXJzb3Iua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhZHZhbmNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGFzayB0aGUgY3Vyc29yIHRvIHNraXAgYWhlYWQgblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWNvcmRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKG4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IGhlcmUsIHdlJ3ZlIGdvdCB0aGUgbnRoIGtleS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjdXJzb3Iua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24ga2V5cyhjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNyZWF0ZVRyYW5zYWN0aW9uKHNlbGYuX2RiSW5mbywgUkVBRF9PTkxZLCBmdW5jdGlvbiAoZXJyLCB0cmFuc2FjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHNlbGYuX2RiSW5mby5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUub3BlbktleUN1cnNvcigpO1xuICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gcmVxLnJlc3VsdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGtleXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGN1cnNvci5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yW1wiY29udGludWVcIl0oKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXEuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBkcm9wSW5zdGFuY2Uob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjayA9IGdldENhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICB2YXIgY3VycmVudENvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zICE9PSAnZnVuY3Rpb24nICYmIG9wdGlvbnMgfHwge307XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgb3B0aW9ucy5uYW1lID0gb3B0aW9ucy5uYW1lIHx8IGN1cnJlbnRDb25maWcubmFtZTtcbiAgICAgICAgb3B0aW9ucy5zdG9yZU5hbWUgPSBvcHRpb25zLnN0b3JlTmFtZSB8fCBjdXJyZW50Q29uZmlnLnN0b3JlTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHByb21pc2U7XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgcHJvbWlzZSA9IFByb21pc2UkMS5yZWplY3QoJ0ludmFsaWQgYXJndW1lbnRzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGlzQ3VycmVudERiID0gb3B0aW9ucy5uYW1lID09PSBjdXJyZW50Q29uZmlnLm5hbWUgJiYgc2VsZi5fZGJJbmZvLmRiO1xuXG4gICAgICAgIHZhciBkYlByb21pc2UgPSBpc0N1cnJlbnREYiA/IFByb21pc2UkMS5yZXNvbHZlKHNlbGYuX2RiSW5mby5kYikgOiBfZ2V0T3JpZ2luYWxDb25uZWN0aW9uKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgICAgICAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tvcHRpb25zLm5hbWVdO1xuICAgICAgICAgICAgdmFyIGZvcmFnZXMgPSBkYkNvbnRleHQuZm9yYWdlcztcbiAgICAgICAgICAgIGRiQ29udGV4dC5kYiA9IGRiO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yYWdlc1tpXS5fZGJJbmZvLmRiID0gZGI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGI7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5zdG9yZU5hbWUpIHtcbiAgICAgICAgICAgIHByb21pc2UgPSBkYlByb21pc2UudGhlbihmdW5jdGlvbiAoZGIpIHtcbiAgICAgICAgICAgICAgICBfZGVmZXJSZWFkaW5lc3Mob3B0aW9ucyk7XG5cbiAgICAgICAgICAgICAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tvcHRpb25zLm5hbWVdO1xuICAgICAgICAgICAgICAgIHZhciBmb3JhZ2VzID0gZGJDb250ZXh0LmZvcmFnZXM7XG5cbiAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9yYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9yYWdlID0gZm9yYWdlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yYWdlLl9kYkluZm8uZGIgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBkcm9wREJQcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXEgPSBpZGIuZGVsZXRlRGF0YWJhc2Uob3B0aW9ucy5uYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYiA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlcS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uYmxvY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsb3NpbmcgYWxsIG9wZW4gY29ubmVjdGlvbnMgaW4gb252ZXJzaW9uY2hhbmdlIGhhbmRsZXIgc2hvdWxkIHByZXZlbnQgdGhpcyBzaXR1YXRpb24sIGJ1dCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG8gZ2V0IGhlcmUsIGl0IGp1c3QgbWVhbnMgdGhlIHJlcXVlc3QgcmVtYWlucyBwZW5kaW5nIC0gZXZlbnR1YWxseSBpdCB3aWxsIHN1Y2NlZWQgb3IgZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignZHJvcEluc3RhbmNlIGJsb2NrZWQgZm9yIGRhdGFiYXNlIFwiJyArIG9wdGlvbnMubmFtZSArICdcIiB1bnRpbCBhbGwgb3BlbiBjb25uZWN0aW9ucyBhcmUgY2xvc2VkJyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYiA9IHJlcS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYik7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZHJvcERCUHJvbWlzZS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICAgICAgICAgICAgICBkYkNvbnRleHQuZGIgPSBkYjtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2ZvcmFnZSA9IGZvcmFnZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBfYWR2YW5jZVJlYWRpbmVzcyhfZm9yYWdlLl9kYkluZm8pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIChfcmVqZWN0UmVhZGluZXNzKG9wdGlvbnMsIGVycikgfHwgUHJvbWlzZSQxLnJlc29sdmUoKSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvbWlzZSA9IGRiUHJvbWlzZS50aGVuKGZ1bmN0aW9uIChkYikge1xuICAgICAgICAgICAgICAgIGlmICghZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhvcHRpb25zLnN0b3JlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBuZXdWZXJzaW9uID0gZGIudmVyc2lvbiArIDE7XG5cbiAgICAgICAgICAgICAgICBfZGVmZXJSZWFkaW5lc3Mob3B0aW9ucyk7XG5cbiAgICAgICAgICAgICAgICB2YXIgZGJDb250ZXh0ID0gZGJDb250ZXh0c1tvcHRpb25zLm5hbWVdO1xuICAgICAgICAgICAgICAgIHZhciBmb3JhZ2VzID0gZGJDb250ZXh0LmZvcmFnZXM7XG5cbiAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9yYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9yYWdlID0gZm9yYWdlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yYWdlLl9kYkluZm8uZGIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBmb3JhZ2UuX2RiSW5mby52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgZHJvcE9iamVjdFByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IGlkYi5vcGVuKG9wdGlvbnMubmFtZSwgbmV3VmVyc2lvbik7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGIgPSByZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGIgPSByZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUob3B0aW9ucy5zdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGIgPSByZXEucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGIpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRyb3BPYmplY3RQcm9taXNlLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRiQ29udGV4dC5kYiA9IGRiO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGZvcmFnZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfZm9yYWdlMiA9IGZvcmFnZXNbal07XG4gICAgICAgICAgICAgICAgICAgICAgICBfZm9yYWdlMi5fZGJJbmZvLmRiID0gZGI7XG4gICAgICAgICAgICAgICAgICAgICAgICBfYWR2YW5jZVJlYWRpbmVzcyhfZm9yYWdlMi5fZGJJbmZvKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgICAgICAoX3JlamVjdFJlYWRpbmVzcyhvcHRpb25zLCBlcnIpIHx8IFByb21pc2UkMS5yZXNvbHZlKCkpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbnZhciBhc3luY1N0b3JhZ2UgPSB7XG4gICAgX2RyaXZlcjogJ2FzeW5jU3RvcmFnZScsXG4gICAgX2luaXRTdG9yYWdlOiBfaW5pdFN0b3JhZ2UsXG4gICAgX3N1cHBvcnQ6IGlzSW5kZXhlZERCVmFsaWQoKSxcbiAgICBpdGVyYXRlOiBpdGVyYXRlLFxuICAgIGdldEl0ZW06IGdldEl0ZW0sXG4gICAgc2V0SXRlbTogc2V0SXRlbSxcbiAgICByZW1vdmVJdGVtOiByZW1vdmVJdGVtLFxuICAgIGNsZWFyOiBjbGVhcixcbiAgICBsZW5ndGg6IGxlbmd0aCxcbiAgICBrZXk6IGtleSxcbiAgICBrZXlzOiBrZXlzLFxuICAgIGRyb3BJbnN0YW5jZTogZHJvcEluc3RhbmNlXG59O1xuXG5mdW5jdGlvbiBpc1dlYlNRTFZhbGlkKCkge1xuICAgIHJldHVybiB0eXBlb2Ygb3BlbkRhdGFiYXNlID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyBTYWRseSwgdGhlIGJlc3Qgd2F5IHRvIHNhdmUgYmluYXJ5IGRhdGEgaW4gV2ViU1FML2xvY2FsU3RvcmFnZSBpcyBzZXJpYWxpemluZ1xuLy8gaXQgdG8gQmFzZTY0LCBzbyB0aGlzIGlzIGhvdyB3ZSBzdG9yZSBpdCB0byBwcmV2ZW50IHZlcnkgc3RyYW5nZSBlcnJvcnMgd2l0aCBsZXNzXG4vLyB2ZXJib3NlIHdheXMgb2YgYmluYXJ5IDwtPiBzdHJpbmcgZGF0YSBzdG9yYWdlLlxudmFyIEJBU0VfQ0hBUlMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG5cbnZhciBCTE9CX1RZUEVfUFJFRklYID0gJ35+bG9jYWxfZm9yYWdlX3R5cGV+JztcbnZhciBCTE9CX1RZUEVfUFJFRklYX1JFR0VYID0gL15+fmxvY2FsX2ZvcmFnZV90eXBlfihbXn5dKyl+LztcblxudmFyIFNFUklBTElaRURfTUFSS0VSID0gJ19fbGZzY19fOic7XG52YXIgU0VSSUFMSVpFRF9NQVJLRVJfTEVOR1RIID0gU0VSSUFMSVpFRF9NQVJLRVIubGVuZ3RoO1xuXG4vLyBPTUcgdGhlIHNlcmlhbGl6YXRpb25zIVxudmFyIFRZUEVfQVJSQVlCVUZGRVIgPSAnYXJiZic7XG52YXIgVFlQRV9CTE9CID0gJ2Jsb2InO1xudmFyIFRZUEVfSU5UOEFSUkFZID0gJ3NpMDgnO1xudmFyIFRZUEVfVUlOVDhBUlJBWSA9ICd1aTA4JztcbnZhciBUWVBFX1VJTlQ4Q0xBTVBFREFSUkFZID0gJ3VpYzgnO1xudmFyIFRZUEVfSU5UMTZBUlJBWSA9ICdzaTE2JztcbnZhciBUWVBFX0lOVDMyQVJSQVkgPSAnc2kzMic7XG52YXIgVFlQRV9VSU5UMTZBUlJBWSA9ICd1cjE2JztcbnZhciBUWVBFX1VJTlQzMkFSUkFZID0gJ3VpMzInO1xudmFyIFRZUEVfRkxPQVQzMkFSUkFZID0gJ2ZsMzInO1xudmFyIFRZUEVfRkxPQVQ2NEFSUkFZID0gJ2ZsNjQnO1xudmFyIFRZUEVfU0VSSUFMSVpFRF9NQVJLRVJfTEVOR1RIID0gU0VSSUFMSVpFRF9NQVJLRVJfTEVOR1RIICsgVFlQRV9BUlJBWUJVRkZFUi5sZW5ndGg7XG5cbnZhciB0b1N0cmluZyQxID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gc3RyaW5nVG9CdWZmZXIoc2VyaWFsaXplZFN0cmluZykge1xuICAgIC8vIEZpbGwgdGhlIHN0cmluZyBpbnRvIGEgQXJyYXlCdWZmZXIuXG4gICAgdmFyIGJ1ZmZlckxlbmd0aCA9IHNlcmlhbGl6ZWRTdHJpbmcubGVuZ3RoICogMC43NTtcbiAgICB2YXIgbGVuID0gc2VyaWFsaXplZFN0cmluZy5sZW5ndGg7XG4gICAgdmFyIGk7XG4gICAgdmFyIHAgPSAwO1xuICAgIHZhciBlbmNvZGVkMSwgZW5jb2RlZDIsIGVuY29kZWQzLCBlbmNvZGVkNDtcblxuICAgIGlmIChzZXJpYWxpemVkU3RyaW5nW3NlcmlhbGl6ZWRTdHJpbmcubGVuZ3RoIC0gMV0gPT09ICc9Jykge1xuICAgICAgICBidWZmZXJMZW5ndGgtLTtcbiAgICAgICAgaWYgKHNlcmlhbGl6ZWRTdHJpbmdbc2VyaWFsaXplZFN0cmluZy5sZW5ndGggLSAyXSA9PT0gJz0nKSB7XG4gICAgICAgICAgICBidWZmZXJMZW5ndGgtLTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyTGVuZ3RoKTtcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgICAgIGVuY29kZWQxID0gQkFTRV9DSEFSUy5pbmRleE9mKHNlcmlhbGl6ZWRTdHJpbmdbaV0pO1xuICAgICAgICBlbmNvZGVkMiA9IEJBU0VfQ0hBUlMuaW5kZXhPZihzZXJpYWxpemVkU3RyaW5nW2kgKyAxXSk7XG4gICAgICAgIGVuY29kZWQzID0gQkFTRV9DSEFSUy5pbmRleE9mKHNlcmlhbGl6ZWRTdHJpbmdbaSArIDJdKTtcbiAgICAgICAgZW5jb2RlZDQgPSBCQVNFX0NIQVJTLmluZGV4T2Yoc2VyaWFsaXplZFN0cmluZ1tpICsgM10pO1xuXG4gICAgICAgIC8qanNsaW50IGJpdHdpc2U6IHRydWUgKi9cbiAgICAgICAgYnl0ZXNbcCsrXSA9IGVuY29kZWQxIDw8IDIgfCBlbmNvZGVkMiA+PiA0O1xuICAgICAgICBieXRlc1twKytdID0gKGVuY29kZWQyICYgMTUpIDw8IDQgfCBlbmNvZGVkMyA+PiAyO1xuICAgICAgICBieXRlc1twKytdID0gKGVuY29kZWQzICYgMykgPDwgNiB8IGVuY29kZWQ0ICYgNjM7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG59XG5cbi8vIENvbnZlcnRzIGEgYnVmZmVyIHRvIGEgc3RyaW5nIHRvIHN0b3JlLCBzZXJpYWxpemVkLCBpbiB0aGUgYmFja2VuZFxuLy8gc3RvcmFnZSBsaWJyYXJ5LlxuZnVuY3Rpb24gYnVmZmVyVG9TdHJpbmcoYnVmZmVyKSB7XG4gICAgLy8gYmFzZTY0LWFycmF5YnVmZmVyXG4gICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgICB2YXIgYmFzZTY0U3RyaW5nID0gJyc7XG4gICAgdmFyIGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgLypqc2xpbnQgYml0d2lzZTogdHJ1ZSAqL1xuICAgICAgICBiYXNlNjRTdHJpbmcgKz0gQkFTRV9DSEFSU1tieXRlc1tpXSA+PiAyXTtcbiAgICAgICAgYmFzZTY0U3RyaW5nICs9IEJBU0VfQ0hBUlNbKGJ5dGVzW2ldICYgMykgPDwgNCB8IGJ5dGVzW2kgKyAxXSA+PiA0XTtcbiAgICAgICAgYmFzZTY0U3RyaW5nICs9IEJBU0VfQ0hBUlNbKGJ5dGVzW2kgKyAxXSAmIDE1KSA8PCAyIHwgYnl0ZXNbaSArIDJdID4+IDZdO1xuICAgICAgICBiYXNlNjRTdHJpbmcgKz0gQkFTRV9DSEFSU1tieXRlc1tpICsgMl0gJiA2M107XG4gICAgfVxuXG4gICAgaWYgKGJ5dGVzLmxlbmd0aCAlIDMgPT09IDIpIHtcbiAgICAgICAgYmFzZTY0U3RyaW5nID0gYmFzZTY0U3RyaW5nLnN1YnN0cmluZygwLCBiYXNlNjRTdHJpbmcubGVuZ3RoIC0gMSkgKyAnPSc7XG4gICAgfSBlbHNlIGlmIChieXRlcy5sZW5ndGggJSAzID09PSAxKSB7XG4gICAgICAgIGJhc2U2NFN0cmluZyA9IGJhc2U2NFN0cmluZy5zdWJzdHJpbmcoMCwgYmFzZTY0U3RyaW5nLmxlbmd0aCAtIDIpICsgJz09JztcbiAgICB9XG5cbiAgICByZXR1cm4gYmFzZTY0U3RyaW5nO1xufVxuXG4vLyBTZXJpYWxpemUgYSB2YWx1ZSwgYWZ0ZXJ3YXJkcyBleGVjdXRpbmcgYSBjYWxsYmFjayAod2hpY2ggdXN1YWxseVxuLy8gaW5zdHJ1Y3RzIHRoZSBgc2V0SXRlbSgpYCBjYWxsYmFjay9wcm9taXNlIHRvIGJlIGV4ZWN1dGVkKS4gVGhpcyBpcyBob3dcbi8vIHdlIHN0b3JlIGJpbmFyeSBkYXRhIHdpdGggbG9jYWxTdG9yYWdlLlxuZnVuY3Rpb24gc2VyaWFsaXplKHZhbHVlLCBjYWxsYmFjaykge1xuICAgIHZhciB2YWx1ZVR5cGUgPSAnJztcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWVUeXBlID0gdG9TdHJpbmckMS5jYWxsKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBDYW5ub3QgdXNlIGB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyYCBvciBzdWNoIGhlcmUsIGFzIHRoZXNlXG4gICAgLy8gY2hlY2tzIGZhaWwgd2hlbiBydW5uaW5nIHRoZSB0ZXN0cyB1c2luZyBjYXNwZXIuanMuLi5cbiAgICAvL1xuICAgIC8vIFRPRE86IFNlZSB3aHkgdGhvc2UgdGVzdHMgZmFpbCBhbmQgdXNlIGEgYmV0dGVyIHNvbHV0aW9uLlxuICAgIGlmICh2YWx1ZSAmJiAodmFsdWVUeXBlID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nIHx8IHZhbHVlLmJ1ZmZlciAmJiB0b1N0cmluZyQxLmNhbGwodmFsdWUuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJykpIHtcbiAgICAgICAgLy8gQ29udmVydCBiaW5hcnkgYXJyYXlzIHRvIGEgc3RyaW5nIGFuZCBwcmVmaXggdGhlIHN0cmluZyB3aXRoXG4gICAgICAgIC8vIGEgc3BlY2lhbCBtYXJrZXIuXG4gICAgICAgIHZhciBidWZmZXI7XG4gICAgICAgIHZhciBtYXJrZXIgPSBTRVJJQUxJWkVEX01BUktFUjtcblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgYnVmZmVyID0gdmFsdWU7XG4gICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9BUlJBWUJVRkZFUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJ1ZmZlciA9IHZhbHVlLmJ1ZmZlcjtcblxuICAgICAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgSW50OEFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9JTlQ4QVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgVWludDhBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfVUlOVDhBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfVUlOVDhDTEFNUEVEQVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgSW50MTZBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfSU5UMTZBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBVaW50MTZBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfVUlOVDE2QVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgSW50MzJBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfSU5UMzJBUlJBWTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBVaW50MzJBcnJheV0nKSB7XG4gICAgICAgICAgICAgICAgbWFya2VyICs9IFRZUEVfVUlOVDMyQVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9GTE9BVDMyQVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZSA9PT0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScpIHtcbiAgICAgICAgICAgICAgICBtYXJrZXIgKz0gVFlQRV9GTE9BVDY0QVJSQVk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcignRmFpbGVkIHRvIGdldCB0eXBlIGZvciBCaW5hcnlBcnJheScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKG1hcmtlciArIGJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikpO1xuICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlID09PSAnW29iamVjdCBCbG9iXScpIHtcbiAgICAgICAgLy8gQ29udmVyIHRoZSBibG9iIHRvIGEgYmluYXJ5QXJyYXkgYW5kIHRoZW4gdG8gYSBzdHJpbmcuXG4gICAgICAgIHZhciBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgICAgICBmaWxlUmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIEJhY2t3YXJkcy1jb21wYXRpYmxlIHByZWZpeCBmb3IgdGhlIGJsb2IgdHlwZS5cbiAgICAgICAgICAgIHZhciBzdHIgPSBCTE9CX1RZUEVfUFJFRklYICsgdmFsdWUudHlwZSArICd+JyArIGJ1ZmZlclRvU3RyaW5nKHRoaXMucmVzdWx0KTtcblxuICAgICAgICAgICAgY2FsbGJhY2soU0VSSUFMSVpFRF9NQVJLRVIgKyBUWVBFX0JMT0IgKyBzdHIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjYWxsYmFjayhKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ291bGRuJ3QgY29udmVydCB2YWx1ZSBpbnRvIGEgSlNPTiBzdHJpbmc6IFwiLCB2YWx1ZSk7XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBEZXNlcmlhbGl6ZSBkYXRhIHdlJ3ZlIGluc2VydGVkIGludG8gYSB2YWx1ZSBjb2x1bW4vZmllbGQuIFdlIHBsYWNlXG4vLyBzcGVjaWFsIG1hcmtlcnMgaW50byBvdXIgc3RyaW5ncyB0byBtYXJrIHRoZW0gYXMgZW5jb2RlZDsgdGhpcyBpc24ndFxuLy8gYXMgbmljZSBhcyBhIG1ldGEgZmllbGQsIGJ1dCBpdCdzIHRoZSBvbmx5IHNhbmUgdGhpbmcgd2UgY2FuIGRvIHdoaWxzdFxuLy8ga2VlcGluZyBsb2NhbFN0b3JhZ2Ugc3VwcG9ydCBpbnRhY3QuXG4vL1xuLy8gT2Z0ZW50aW1lcyB0aGlzIHdpbGwganVzdCBkZXNlcmlhbGl6ZSBKU09OIGNvbnRlbnQsIGJ1dCBpZiB3ZSBoYXZlIGFcbi8vIHNwZWNpYWwgbWFya2VyIChTRVJJQUxJWkVEX01BUktFUiwgZGVmaW5lZCBhYm92ZSksIHdlIHdpbGwgZXh0cmFjdFxuLy8gc29tZSBraW5kIG9mIGFycmF5YnVmZmVyL2JpbmFyeSBkYXRhL3R5cGVkIGFycmF5IG91dCBvZiB0aGUgc3RyaW5nLlxuZnVuY3Rpb24gZGVzZXJpYWxpemUodmFsdWUpIHtcbiAgICAvLyBJZiB3ZSBoYXZlbid0IG1hcmtlZCB0aGlzIHN0cmluZyBhcyBiZWluZyBzcGVjaWFsbHkgc2VyaWFsaXplZCAoaS5lLlxuICAgIC8vIHNvbWV0aGluZyBvdGhlciB0aGFuIHNlcmlhbGl6ZWQgSlNPTiksIHdlIGNhbiBqdXN0IHJldHVybiBpdCBhbmQgYmVcbiAgICAvLyBkb25lIHdpdGggaXQuXG4gICAgaWYgKHZhbHVlLnN1YnN0cmluZygwLCBTRVJJQUxJWkVEX01BUktFUl9MRU5HVEgpICE9PSBTRVJJQUxJWkVEX01BUktFUikge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGRlYWxzIHdpdGggZGVzZXJpYWxpemluZyBzb21lIGtpbmQgb2YgQmxvYiBvclxuICAgIC8vIFR5cGVkQXJyYXkuIEZpcnN0IHdlIHNlcGFyYXRlIG91dCB0aGUgdHlwZSBvZiBkYXRhIHdlJ3JlIGRlYWxpbmdcbiAgICAvLyB3aXRoIGZyb20gdGhlIGRhdGEgaXRzZWxmLlxuICAgIHZhciBzZXJpYWxpemVkU3RyaW5nID0gdmFsdWUuc3Vic3RyaW5nKFRZUEVfU0VSSUFMSVpFRF9NQVJLRVJfTEVOR1RIKTtcbiAgICB2YXIgdHlwZSA9IHZhbHVlLnN1YnN0cmluZyhTRVJJQUxJWkVEX01BUktFUl9MRU5HVEgsIFRZUEVfU0VSSUFMSVpFRF9NQVJLRVJfTEVOR1RIKTtcblxuICAgIHZhciBibG9iVHlwZTtcbiAgICAvLyBCYWNrd2FyZHMtY29tcGF0aWJsZSBibG9iIHR5cGUgc2VyaWFsaXphdGlvbiBzdHJhdGVneS5cbiAgICAvLyBEQnMgY3JlYXRlZCB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIGxvY2FsRm9yYWdlIHdpbGwgc2ltcGx5IG5vdCBoYXZlIHRoZSBibG9iIHR5cGUuXG4gICAgaWYgKHR5cGUgPT09IFRZUEVfQkxPQiAmJiBCTE9CX1RZUEVfUFJFRklYX1JFR0VYLnRlc3Qoc2VyaWFsaXplZFN0cmluZykpIHtcbiAgICAgICAgdmFyIG1hdGNoZXIgPSBzZXJpYWxpemVkU3RyaW5nLm1hdGNoKEJMT0JfVFlQRV9QUkVGSVhfUkVHRVgpO1xuICAgICAgICBibG9iVHlwZSA9IG1hdGNoZXJbMV07XG4gICAgICAgIHNlcmlhbGl6ZWRTdHJpbmcgPSBzZXJpYWxpemVkU3RyaW5nLnN1YnN0cmluZyhtYXRjaGVyWzBdLmxlbmd0aCk7XG4gICAgfVxuICAgIHZhciBidWZmZXIgPSBzdHJpbmdUb0J1ZmZlcihzZXJpYWxpemVkU3RyaW5nKTtcblxuICAgIC8vIFJldHVybiB0aGUgcmlnaHQgdHlwZSBiYXNlZCBvbiB0aGUgY29kZS90eXBlIHNldCBkdXJpbmdcbiAgICAvLyBzZXJpYWxpemF0aW9uLlxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFRZUEVfQVJSQVlCVUZGRVI6XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICBjYXNlIFRZUEVfQkxPQjpcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVCbG9iKFtidWZmZXJdLCB7IHR5cGU6IGJsb2JUeXBlIH0pO1xuICAgICAgICBjYXNlIFRZUEVfSU5UOEFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnQ4QXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX1VJTlQ4QVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX1VJTlQ4Q0xBTVBFREFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OENsYW1wZWRBcnJheShidWZmZXIpO1xuICAgICAgICBjYXNlIFRZUEVfSU5UMTZBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgSW50MTZBcnJheShidWZmZXIpO1xuICAgICAgICBjYXNlIFRZUEVfVUlOVDE2QVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGNhc2UgVFlQRV9JTlQzMkFSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGNhc2UgVFlQRV9VSU5UMzJBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTtcbiAgICAgICAgY2FzZSBUWVBFX0ZMT0FUMzJBUlJBWTpcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7XG4gICAgICAgIGNhc2UgVFlQRV9GTE9BVDY0QVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtvd24gdHlwZTogJyArIHR5cGUpO1xuICAgIH1cbn1cblxudmFyIGxvY2FsZm9yYWdlU2VyaWFsaXplciA9IHtcbiAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICBkZXNlcmlhbGl6ZTogZGVzZXJpYWxpemUsXG4gICAgc3RyaW5nVG9CdWZmZXI6IHN0cmluZ1RvQnVmZmVyLFxuICAgIGJ1ZmZlclRvU3RyaW5nOiBidWZmZXJUb1N0cmluZ1xufTtcblxuLypcbiAqIEluY2x1ZGVzIGNvZGUgZnJvbTpcbiAqXG4gKiBiYXNlNjQtYXJyYXlidWZmZXJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWtsYXN2aC9iYXNlNjQtYXJyYXlidWZmZXJcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgTmlrbGFzIHZvbiBIZXJ0emVuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGJUYWJsZSh0LCBkYkluZm8sIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSB7XG4gICAgdC5leGVjdXRlU3FsKCdDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyAnICsgZGJJbmZvLnN0b3JlTmFtZSArICcgJyArICcoaWQgSU5URUdFUiBQUklNQVJZIEtFWSwga2V5IHVuaXF1ZSwgdmFsdWUpJywgW10sIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTtcbn1cblxuLy8gT3BlbiB0aGUgV2ViU1FMIGRhdGFiYXNlIChhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgb25lIGlmIG9uZSBkaWRuJ3Rcbi8vIHByZXZpb3VzbHkgZXhpc3QpLCB1c2luZyBhbnkgb3B0aW9ucyBzZXQgaW4gdGhlIGNvbmZpZy5cbmZ1bmN0aW9uIF9pbml0U3RvcmFnZSQxKG9wdGlvbnMpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGRiSW5mbyA9IHtcbiAgICAgICAgZGI6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBvcHRpb25zKSB7XG4gICAgICAgICAgICBkYkluZm9baV0gPSB0eXBlb2Ygb3B0aW9uc1tpXSAhPT0gJ3N0cmluZycgPyBvcHRpb25zW2ldLnRvU3RyaW5nKCkgOiBvcHRpb25zW2ldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRiSW5mb1Byb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgLy8gT3BlbiB0aGUgZGF0YWJhc2U7IHRoZSBvcGVuRGF0YWJhc2UgQVBJIHdpbGwgYXV0b21hdGljYWxseVxuICAgICAgICAvLyBjcmVhdGUgaXQgZm9yIHVzIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYkluZm8uZGIgPSBvcGVuRGF0YWJhc2UoZGJJbmZvLm5hbWUsIFN0cmluZyhkYkluZm8udmVyc2lvbiksIGRiSW5mby5kZXNjcmlwdGlvbiwgZGJJbmZvLnNpemUpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIG91ciBrZXkvdmFsdWUgdGFibGUgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICBjcmVhdGVEYlRhYmxlKHQsIGRiSW5mbywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHNlbGYuX2RiSW5mbyA9IGRiSW5mbztcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBkYkluZm8uc2VyaWFsaXplciA9IGxvY2FsZm9yYWdlU2VyaWFsaXplcjtcbiAgICByZXR1cm4gZGJJbmZvUHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sIHNxbFN0YXRlbWVudCwgYXJncywgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spIHtcbiAgICB0LmV4ZWN1dGVTcWwoc3FsU3RhdGVtZW50LCBhcmdzLCBjYWxsYmFjaywgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvci5jb2RlID09PSBlcnJvci5TWU5UQVhfRVJSKSB7XG4gICAgICAgICAgICB0LmV4ZWN1dGVTcWwoJ1NFTEVDVCBuYW1lIEZST00gc3FsaXRlX21hc3RlciAnICsgXCJXSEVSRSB0eXBlPSd0YWJsZScgQU5EIG5hbWUgPSA/XCIsIFtkYkluZm8uc3RvcmVOYW1lXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdHMucm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHRhYmxlIGlzIG1pc3NpbmcgKHdhcyBkZWxldGVkKVxuICAgICAgICAgICAgICAgICAgICAvLyByZS1jcmVhdGUgaXQgdGFibGUgYW5kIHJldHJ5XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZURiVGFibGUodCwgZGJJbmZvLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0LmV4ZWN1dGVTcWwoc3FsU3RhdGVtZW50LCBhcmdzLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH0sIGVycm9yQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2sodCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yQ2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh0LCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9LCBlcnJvckNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gZ2V0SXRlbSQxKGtleSwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBkYkluZm8uZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICB0cnlFeGVjdXRlU3FsKHQsIGRiSW5mbywgJ1NFTEVDVCAqIEZST00gJyArIGRiSW5mby5zdG9yZU5hbWUgKyAnIFdIRVJFIGtleSA9ID8gTElNSVQgMScsIFtrZXldLCBmdW5jdGlvbiAodCwgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzdWx0cy5yb3dzLmxlbmd0aCA/IHJlc3VsdHMucm93cy5pdGVtKDApLnZhbHVlIDogbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhpcyBpcyBzZXJpYWxpemVkIGNvbnRlbnQgd2UgbmVlZCB0b1xuICAgICAgICAgICAgICAgICAgICAvLyB1bnBhY2suXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRiSW5mby5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gaXRlcmF0ZSQxKGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG5cbiAgICAgICAgICAgIGRiSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnU0VMRUNUICogRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSwgW10sIGZ1bmN0aW9uICh0LCByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByb3dzID0gcmVzdWx0cy5yb3dzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gcm93cy5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSByb3dzLml0ZW0oaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gaXRlbS52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoaXMgaXMgc2VyaWFsaXplZCBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHVucGFjay5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBkYkluZm8uc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBpdGVyYXRvcihyZXN1bHQsIGl0ZW0ua2V5LCBpICsgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZvaWQoMCkgcHJldmVudHMgcHJvYmxlbXMgd2l0aCByZWRlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIGB1bmRlZmluZWRgLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBfc2V0SXRlbShrZXksIHZhbHVlLCBjYWxsYmFjaywgcmV0cmllc0xlZnQpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBrZXkgPSBub3JtYWxpemVLZXkoa2V5KTtcblxuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIFRoZSBsb2NhbFN0b3JhZ2UgQVBJIGRvZXNuJ3QgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZXMgaW4gYW5cbiAgICAgICAgICAgIC8vIFwiZXhwZWN0ZWRcIiB3YXksIHNvIHVuZGVmaW5lZCBpcyBhbHdheXMgY2FzdCB0byBudWxsIGluIGFsbFxuICAgICAgICAgICAgLy8gZHJpdmVycy4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9sb2NhbEZvcmFnZS9wdWxsLzQyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgdmFsdWUgdG8gcGFzcyB0byB0aGUgY2FsbGJhY2suXG4gICAgICAgICAgICB2YXIgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLnNlcmlhbGl6ZXIuc2VyaWFsaXplKHZhbHVlLCBmdW5jdGlvbiAodmFsdWUsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnlFeGVjdXRlU3FsKHQsIGRiSW5mbywgJ0lOU0VSVCBPUiBSRVBMQUNFIElOVE8gJyArIGRiSW5mby5zdG9yZU5hbWUgKyAnICcgKyAnKGtleSwgdmFsdWUpIFZBTFVFUyAoPywgPyknLCBba2V5LCB2YWx1ZV0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoc3FsRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBmYWlsZWQ7IGNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIHF1b3RhIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNxbEVycm9yLmNvZGUgPT09IHNxbEVycm9yLlFVT1RBX0VSUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlamVjdCB0aGUgY2FsbGJhY2sgb3V0cmlnaHQgZm9yIG5vdywgYnV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQncyB3b3J0aCB0cnlpbmcgdG8gcmUtcnVuIHRoZSB0cmFuc2FjdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFdmVuIGlmIHRoZSB1c2VyIGFjY2VwdHMgdGhlIHByb21wdCB0byB1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb3JlIHN0b3JhZ2Ugb24gU2FmYXJpLCB0aGlzIGVycm9yIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSBjYWxsZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gcmUtcnVuIHRoZSB0cmFuc2FjdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0cmllc0xlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoX3NldEl0ZW0uYXBwbHkoc2VsZiwgW2tleSwgb3JpZ2luYWxWYWx1ZSwgY2FsbGJhY2ssIHJldHJpZXNMZWZ0IC0gMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qoc3FsRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gc2V0SXRlbSQxKGtleSwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIF9zZXRJdGVtLmFwcGx5KHRoaXMsIFtrZXksIHZhbHVlLCBjYWxsYmFjaywgMV0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJdGVtJDEoa2V5LCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIGtleSA9IG5vcm1hbGl6ZUtleShrZXkpO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGRiSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnREVMRVRFIEZST00gJyArIGRiSW5mby5zdG9yZU5hbWUgKyAnIFdIRVJFIGtleSA9ID8nLCBba2V5XSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gRGVsZXRlcyBldmVyeSBpdGVtIGluIHRoZSB0YWJsZS5cbi8vIFRPRE86IEZpbmQgb3V0IGlmIHRoaXMgcmVzZXRzIHRoZSBBVVRPX0lOQ1JFTUVOVCBudW1iZXIuXG5mdW5jdGlvbiBjbGVhciQxKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGRiSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnREVMRVRFIEZST00gJyArIGRiSW5mby5zdG9yZU5hbWUsIFtdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKHJlamVjdCk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBEb2VzIGEgc2ltcGxlIGBDT1VOVChrZXkpYCB0byBnZXQgdGhlIG51bWJlciBvZiBpdGVtcyBzdG9yZWQgaW5cbi8vIGxvY2FsRm9yYWdlLlxuZnVuY3Rpb24gbGVuZ3RoJDEoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgLy8gQWhoaCwgU1FMIG1ha2VzIHRoaXMgb25lIHNvb29vb28gZWFzeS5cbiAgICAgICAgICAgICAgICB0cnlFeGVjdXRlU3FsKHQsIGRiSW5mbywgJ1NFTEVDVCBDT1VOVChrZXkpIGFzIGMgRlJPTSAnICsgZGJJbmZvLnN0b3JlTmFtZSwgW10sIGZ1bmN0aW9uICh0LCByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXN1bHRzLnJvd3MuaXRlbSgwKS5jO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gUmV0dXJuIHRoZSBrZXkgbG9jYXRlZCBhdCBrZXkgaW5kZXggWDsgZXNzZW50aWFsbHkgZ2V0cyB0aGUga2V5IGZyb20gYVxuLy8gYFdIRVJFIGlkID0gP2AuIFRoaXMgaXMgdGhlIG1vc3QgZWZmaWNpZW50IHdheSBJIGNhbiB0aGluayB0byBpbXBsZW1lbnRcbi8vIHRoaXMgcmFyZWx5LXVzZWQgKGluIG15IGV4cGVyaWVuY2UpIHBhcnQgb2YgdGhlIEFQSSwgYnV0IGl0IGNhbiBzZWVtXG4vLyBpbmNvbnNpc3RlbnQsIGJlY2F1c2Ugd2UgZG8gYElOU0VSVCBPUiBSRVBMQUNFIElOVE9gIG9uIGBzZXRJdGVtKClgLCBzb1xuLy8gdGhlIElEIG9mIGVhY2gga2V5IHdpbGwgY2hhbmdlIGV2ZXJ5IHRpbWUgaXQncyB1cGRhdGVkLiBQZXJoYXBzIGEgc3RvcmVkXG4vLyBwcm9jZWR1cmUgZm9yIHRoZSBgc2V0SXRlbSgpYCBTUUwgd291bGQgc29sdmUgdGhpcyBwcm9ibGVtP1xuLy8gVE9ETzogRG9uJ3QgY2hhbmdlIElEIG9uIGBzZXRJdGVtKClgLlxuZnVuY3Rpb24ga2V5JDEobiwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGJJbmZvID0gc2VsZi5fZGJJbmZvO1xuICAgICAgICAgICAgZGJJbmZvLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICAgICAgdHJ5RXhlY3V0ZVNxbCh0LCBkYkluZm8sICdTRUxFQ1Qga2V5IEZST00gJyArIGRiSW5mby5zdG9yZU5hbWUgKyAnIFdIRVJFIGlkID0gPyBMSU1JVCAxJywgW24gKyAxXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHJlc3VsdHMucm93cy5sZW5ndGggPyByZXN1bHRzLnJvd3MuaXRlbSgwKS5rZXkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShyZWplY3QpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuZnVuY3Rpb24ga2V5cyQxKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgICAgIGRiSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgIHRyeUV4ZWN1dGVTcWwodCwgZGJJbmZvLCAnU0VMRUNUIGtleSBGUk9NICcgKyBkYkluZm8uc3RvcmVOYW1lLCBbXSwgZnVuY3Rpb24gKHQsIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMucm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKHJlc3VsdHMucm93cy5pdGVtKGkpLmtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGtleXMpO1xuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pW1wiY2F0Y2hcIl0ocmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkYXRhYmFzZS8jZGF0YWJhc2VzXG4vLyA+IFRoZXJlIGlzIG5vIHdheSB0byBlbnVtZXJhdGUgb3IgZGVsZXRlIHRoZSBkYXRhYmFzZXMgYXZhaWxhYmxlIGZvciBhbiBvcmlnaW4gZnJvbSB0aGlzIEFQSS5cbmZ1bmN0aW9uIGdldEFsbFN0b3JlTmFtZXMoZGIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICB0LmV4ZWN1dGVTcWwoJ1NFTEVDVCBuYW1lIEZST00gc3FsaXRlX21hc3RlciAnICsgXCJXSEVSRSB0eXBlPSd0YWJsZScgQU5EIG5hbWUgPD4gJ19fV2ViS2l0RGF0YWJhc2VJbmZvVGFibGVfXydcIiwgW10sIGZ1bmN0aW9uICh0LCByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0b3JlTmFtZXMgPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlTmFtZXMucHVzaChyZXN1bHRzLnJvd3MuaXRlbShpKS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgZGI6IGRiLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZU5hbWVzOiBzdG9yZU5hbWVzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChzcWxFcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KHNxbEVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGRyb3BJbnN0YW5jZSQxKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgY2FsbGJhY2sgPSBnZXRDYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgdmFyIGN1cnJlbnRDb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyAhPT0gJ2Z1bmN0aW9uJyAmJiBvcHRpb25zIHx8IHt9O1xuICAgIGlmICghb3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIG9wdGlvbnMubmFtZSA9IG9wdGlvbnMubmFtZSB8fCBjdXJyZW50Q29uZmlnLm5hbWU7XG4gICAgICAgIG9wdGlvbnMuc3RvcmVOYW1lID0gb3B0aW9ucy5zdG9yZU5hbWUgfHwgY3VycmVudENvbmZpZy5zdG9yZU5hbWU7XG4gICAgfVxuXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBwcm9taXNlO1xuICAgIGlmICghb3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIHByb21pc2UgPSBQcm9taXNlJDEucmVqZWN0KCdJbnZhbGlkIGFyZ3VtZW50cycpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgICB2YXIgZGI7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5uYW1lID09PSBjdXJyZW50Q29uZmlnLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIGRiIHJlZmVyZW5jZSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIGRiID0gc2VsZi5fZGJJbmZvLmRiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYiA9IG9wZW5EYXRhYmFzZShvcHRpb25zLm5hbWUsICcnLCAnJywgMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5zdG9yZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyBkcm9wIGFsbCBkYXRhYmFzZSB0YWJsZXNcbiAgICAgICAgICAgICAgICByZXNvbHZlKGdldEFsbFN0b3JlTmFtZXMoZGIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRiOiBkYixcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVOYW1lczogW29wdGlvbnMuc3RvcmVOYW1lXVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChvcGVyYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uSW5mby5kYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkcm9wVGFibGUoc3RvcmVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5leGVjdXRlU3FsKCdEUk9QIFRBQkxFIElGIEVYSVNUUyAnICsgc3RvcmVOYW1lLCBbXSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHZhciBvcGVyYXRpb25zID0gW107XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBvcGVyYXRpb25JbmZvLnN0b3JlTmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMucHVzaChkcm9wVGFibGUob3BlcmF0aW9uSW5mby5zdG9yZU5hbWVzW2ldKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBQcm9taXNlJDEuYWxsKG9wZXJhdGlvbnMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KVtcImNhdGNoXCJdKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChzcWxFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3Qoc3FsRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbnZhciB3ZWJTUUxTdG9yYWdlID0ge1xuICAgIF9kcml2ZXI6ICd3ZWJTUUxTdG9yYWdlJyxcbiAgICBfaW5pdFN0b3JhZ2U6IF9pbml0U3RvcmFnZSQxLFxuICAgIF9zdXBwb3J0OiBpc1dlYlNRTFZhbGlkKCksXG4gICAgaXRlcmF0ZTogaXRlcmF0ZSQxLFxuICAgIGdldEl0ZW06IGdldEl0ZW0kMSxcbiAgICBzZXRJdGVtOiBzZXRJdGVtJDEsXG4gICAgcmVtb3ZlSXRlbTogcmVtb3ZlSXRlbSQxLFxuICAgIGNsZWFyOiBjbGVhciQxLFxuICAgIGxlbmd0aDogbGVuZ3RoJDEsXG4gICAga2V5OiBrZXkkMSxcbiAgICBrZXlzOiBrZXlzJDEsXG4gICAgZHJvcEluc3RhbmNlOiBkcm9wSW5zdGFuY2UkMVxufTtcblxuZnVuY3Rpb24gaXNMb2NhbFN0b3JhZ2VWYWxpZCgpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgJiYgJ3NldEl0ZW0nIGluIGxvY2FsU3RvcmFnZSAmJlxuICAgICAgICAvLyBpbiBJRTggdHlwZW9mIGxvY2FsU3RvcmFnZS5zZXRJdGVtID09PSAnb2JqZWN0J1xuICAgICAgICAhIWxvY2FsU3RvcmFnZS5zZXRJdGVtO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gX2dldEtleVByZWZpeChvcHRpb25zLCBkZWZhdWx0Q29uZmlnKSB7XG4gICAgdmFyIGtleVByZWZpeCA9IG9wdGlvbnMubmFtZSArICcvJztcblxuICAgIGlmIChvcHRpb25zLnN0b3JlTmFtZSAhPT0gZGVmYXVsdENvbmZpZy5zdG9yZU5hbWUpIHtcbiAgICAgICAga2V5UHJlZml4ICs9IG9wdGlvbnMuc3RvcmVOYW1lICsgJy8nO1xuICAgIH1cbiAgICByZXR1cm4ga2V5UHJlZml4O1xufVxuXG4vLyBDaGVjayBpZiBsb2NhbFN0b3JhZ2UgdGhyb3dzIHdoZW4gc2F2aW5nIGFuIGl0ZW1cbmZ1bmN0aW9uIGNoZWNrSWZMb2NhbFN0b3JhZ2VUaHJvd3MoKSB7XG4gICAgdmFyIGxvY2FsU3RvcmFnZVRlc3RLZXkgPSAnX2xvY2FsZm9yYWdlX3N1cHBvcnRfdGVzdCc7XG5cbiAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShsb2NhbFN0b3JhZ2VUZXN0S2V5LCB0cnVlKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obG9jYWxTdG9yYWdlVGVzdEtleSk7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vLyBDaGVjayBpZiBsb2NhbFN0b3JhZ2UgaXMgdXNhYmxlIGFuZCBhbGxvd3MgdG8gc2F2ZSBhbiBpdGVtXG4vLyBUaGlzIG1ldGhvZCBjaGVja3MgaWYgbG9jYWxTdG9yYWdlIGlzIHVzYWJsZSBpbiBTYWZhcmkgUHJpdmF0ZSBCcm93c2luZ1xuLy8gbW9kZSwgb3IgaW4gYW55IG90aGVyIGNhc2Ugd2hlcmUgdGhlIGF2YWlsYWJsZSBxdW90YSBmb3IgbG9jYWxTdG9yYWdlXG4vLyBpcyAwIGFuZCB0aGVyZSB3YXNuJ3QgYW55IHNhdmVkIGl0ZW1zIHlldC5cbmZ1bmN0aW9uIF9pc0xvY2FsU3RvcmFnZVVzYWJsZSgpIHtcbiAgICByZXR1cm4gIWNoZWNrSWZMb2NhbFN0b3JhZ2VUaHJvd3MoKSB8fCBsb2NhbFN0b3JhZ2UubGVuZ3RoID4gMDtcbn1cblxuLy8gQ29uZmlnIHRoZSBsb2NhbFN0b3JhZ2UgYmFja2VuZCwgdXNpbmcgb3B0aW9ucyBzZXQgaW4gdGhlIGNvbmZpZy5cbmZ1bmN0aW9uIF9pbml0U3RvcmFnZSQyKG9wdGlvbnMpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGRiSW5mbyA9IHt9O1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgIGZvciAodmFyIGkgaW4gb3B0aW9ucykge1xuICAgICAgICAgICAgZGJJbmZvW2ldID0gb3B0aW9uc1tpXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRiSW5mby5rZXlQcmVmaXggPSBfZ2V0S2V5UHJlZml4KG9wdGlvbnMsIHNlbGYuX2RlZmF1bHRDb25maWcpO1xuXG4gICAgaWYgKCFfaXNMb2NhbFN0b3JhZ2VVc2FibGUoKSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlamVjdCgpO1xuICAgIH1cblxuICAgIHNlbGYuX2RiSW5mbyA9IGRiSW5mbztcbiAgICBkYkluZm8uc2VyaWFsaXplciA9IGxvY2FsZm9yYWdlU2VyaWFsaXplcjtcblxuICAgIHJldHVybiBQcm9taXNlJDEucmVzb2x2ZSgpO1xufVxuXG4vLyBSZW1vdmUgYWxsIGtleXMgZnJvbSB0aGUgZGF0YXN0b3JlLCBlZmZlY3RpdmVseSBkZXN0cm95aW5nIGFsbCBkYXRhIGluXG4vLyB0aGUgYXBwJ3Mga2V5L3ZhbHVlIHN0b3JlIVxuZnVuY3Rpb24gY2xlYXIkMihjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGtleVByZWZpeCA9IHNlbGYuX2RiSW5mby5rZXlQcmVmaXg7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IGxvY2FsU3RvcmFnZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG5cbiAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZihrZXlQcmVmaXgpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gUmV0cmlldmUgYW4gaXRlbSBmcm9tIHRoZSBzdG9yZS4gVW5saWtlIHRoZSBvcmlnaW5hbCBhc3luY19zdG9yYWdlXG4vLyBsaWJyYXJ5IGluIEdhaWEsIHdlIGRvbid0IG1vZGlmeSByZXR1cm4gdmFsdWVzIGF0IGFsbC4gSWYgYSBrZXkncyB2YWx1ZVxuLy8gaXMgYHVuZGVmaW5lZGAsIHdlIHBhc3MgdGhhdCB2YWx1ZSB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG5mdW5jdGlvbiBnZXRJdGVtJDIoa2V5LCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIGtleSA9IG5vcm1hbGl6ZUtleShrZXkpO1xuXG4gICAgdmFyIHByb21pc2UgPSBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgIHZhciByZXN1bHQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShkYkluZm8ua2V5UHJlZml4ICsga2V5KTtcblxuICAgICAgICAvLyBJZiBhIHJlc3VsdCB3YXMgZm91bmQsIHBhcnNlIGl0IGZyb20gdGhlIHNlcmlhbGl6ZWRcbiAgICAgICAgLy8gc3RyaW5nIGludG8gYSBKUyBvYmplY3QuIElmIHJlc3VsdCBpc24ndCB0cnV0aHksIHRoZSBrZXlcbiAgICAgICAgLy8gaXMgbGlrZWx5IHVuZGVmaW5lZCBhbmQgd2UnbGwgcGFzcyBpdCBzdHJhaWdodCB0byB0aGVcbiAgICAgICAgLy8gY2FsbGJhY2suXG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGRiSW5mby5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlc3VsdCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gSXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUgc3RvcmUuXG5mdW5jdGlvbiBpdGVyYXRlJDIoaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHByb21pc2UgPSBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgIHZhciBrZXlQcmVmaXggPSBkYkluZm8ua2V5UHJlZml4O1xuICAgICAgICB2YXIga2V5UHJlZml4TGVuZ3RoID0ga2V5UHJlZml4Lmxlbmd0aDtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGxvY2FsU3RvcmFnZS5sZW5ndGg7XG5cbiAgICAgICAgLy8gV2UgdXNlIGEgZGVkaWNhdGVkIGl0ZXJhdG9yIGluc3RlYWQgb2YgdGhlIGBpYCB2YXJpYWJsZSBiZWxvd1xuICAgICAgICAvLyBzbyBvdGhlciBrZXlzIHdlIGZldGNoIGluIGxvY2FsU3RvcmFnZSBhcmVuJ3QgY291bnRlZCBpblxuICAgICAgICAvLyB0aGUgYGl0ZXJhdGlvbk51bWJlcmAgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBgaXRlcmF0ZSgpYFxuICAgICAgICAvLyBjYWxsYmFjay5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gU2VlOiBnaXRodWIuY29tL21vemlsbGEvbG9jYWxGb3JhZ2UvcHVsbC80MzUjZGlzY3Vzc2lvbl9yMzgwNjE1MzBcbiAgICAgICAgdmFyIGl0ZXJhdGlvbk51bWJlciA9IDE7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5LmluZGV4T2Yoa2V5UHJlZml4KSAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgICAgICAgICAgLy8gSWYgYSByZXN1bHQgd2FzIGZvdW5kLCBwYXJzZSBpdCBmcm9tIHRoZSBzZXJpYWxpemVkXG4gICAgICAgICAgICAvLyBzdHJpbmcgaW50byBhIEpTIG9iamVjdC4gSWYgcmVzdWx0IGlzbid0IHRydXRoeSwgdGhlXG4gICAgICAgICAgICAvLyBrZXkgaXMgbGlrZWx5IHVuZGVmaW5lZCBhbmQgd2UnbGwgcGFzcyBpdCBzdHJhaWdodFxuICAgICAgICAgICAgLy8gdG8gdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBkYkluZm8uc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbHVlID0gaXRlcmF0b3IodmFsdWUsIGtleS5zdWJzdHJpbmcoa2V5UHJlZml4TGVuZ3RoKSwgaXRlcmF0aW9uTnVtYmVyKyspO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gU2FtZSBhcyBsb2NhbFN0b3JhZ2UncyBrZXkoKSBtZXRob2QsIGV4Y2VwdCB0YWtlcyBhIGNhbGxiYWNrLlxuZnVuY3Rpb24ga2V5JDIobiwgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHByb21pc2UgPSBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBsb2NhbFN0b3JhZ2Uua2V5KG4pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgcHJlZml4IGZyb20gdGhlIGtleSwgaWYgYSBrZXkgaXMgZm91bmQuXG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoZGJJbmZvLmtleVByZWZpeC5sZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmZ1bmN0aW9uIGtleXMkMihjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGRiSW5mbyA9IHNlbGYuX2RiSW5mbztcbiAgICAgICAgdmFyIGxlbmd0aCA9IGxvY2FsU3RvcmFnZS5sZW5ndGg7XG4gICAgICAgIHZhciBrZXlzID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGl0ZW1LZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGl0ZW1LZXkuaW5kZXhPZihkYkluZm8ua2V5UHJlZml4KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGtleXMucHVzaChpdGVtS2V5LnN1YnN0cmluZyhkYkluZm8ua2V5UHJlZml4Lmxlbmd0aCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG4vLyBTdXBwbHkgdGhlIG51bWJlciBvZiBrZXlzIGluIHRoZSBkYXRhc3RvcmUgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuZnVuY3Rpb24gbGVuZ3RoJDIoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHByb21pc2UgPSBzZWxmLmtleXMoKS50aGVuKGZ1bmN0aW9uIChrZXlzKSB7XG4gICAgICAgIHJldHVybiBrZXlzLmxlbmd0aDtcbiAgICB9KTtcblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbi8vIFJlbW92ZSBhbiBpdGVtIGZyb20gdGhlIHN0b3JlLCBuaWNlIGFuZCBzaW1wbGUuXG5mdW5jdGlvbiByZW1vdmVJdGVtJDIoa2V5LCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIGtleSA9IG5vcm1hbGl6ZUtleShrZXkpO1xuXG4gICAgdmFyIHByb21pc2UgPSBzZWxmLnJlYWR5KCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGRiSW5mby5rZXlQcmVmaXggKyBrZXkpO1xuICAgIH0pO1xuXG4gICAgZXhlY3V0ZUNhbGxiYWNrKHByb21pc2UsIGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cblxuLy8gU2V0IGEga2V5J3MgdmFsdWUgYW5kIHJ1biBhbiBvcHRpb25hbCBjYWxsYmFjayBvbmNlIHRoZSB2YWx1ZSBpcyBzZXQuXG4vLyBVbmxpa2UgR2FpYSdzIGltcGxlbWVudGF0aW9uLCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSB2YWx1ZSxcbi8vIGluIGNhc2UgeW91IHdhbnQgdG8gb3BlcmF0ZSBvbiB0aGF0IHZhbHVlIG9ubHkgYWZ0ZXIgeW91J3JlIHN1cmUgaXRcbi8vIHNhdmVkLCBvciBzb21ldGhpbmcgbGlrZSB0aGF0LlxuZnVuY3Rpb24gc2V0SXRlbSQyKGtleSwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAga2V5ID0gbm9ybWFsaXplS2V5KGtleSk7XG5cbiAgICB2YXIgcHJvbWlzZSA9IHNlbGYucmVhZHkoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gQ29udmVydCB1bmRlZmluZWQgdmFsdWVzIHRvIG51bGwuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2xvY2FsRm9yYWdlL3B1bGwvNDJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHZhbHVlIHRvIHBhc3MgdG8gdGhlIGNhbGxiYWNrLlxuICAgICAgICB2YXIgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBkYkluZm8gPSBzZWxmLl9kYkluZm87XG4gICAgICAgICAgICBkYkluZm8uc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUsIGZ1bmN0aW9uICh2YWx1ZSwgZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oZGJJbmZvLmtleVByZWZpeCArIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShvcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxTdG9yYWdlIGNhcGFjaXR5IGV4Y2VlZGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogTWFrZSB0aGlzIGEgc3BlY2lmaWMgZXJyb3IvZXZlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5uYW1lID09PSAnUXVvdGFFeGNlZWRlZEVycm9yJyB8fCBlLm5hbWUgPT09ICdOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuXG5mdW5jdGlvbiBkcm9wSW5zdGFuY2UkMihvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGNhbGxiYWNrID0gZ2V0Q2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyAhPT0gJ2Z1bmN0aW9uJyAmJiBvcHRpb25zIHx8IHt9O1xuICAgIGlmICghb3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIHZhciBjdXJyZW50Q29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICAgICAgb3B0aW9ucy5uYW1lID0gb3B0aW9ucy5uYW1lIHx8IGN1cnJlbnRDb25maWcubmFtZTtcbiAgICAgICAgb3B0aW9ucy5zdG9yZU5hbWUgPSBvcHRpb25zLnN0b3JlTmFtZSB8fCBjdXJyZW50Q29uZmlnLnN0b3JlTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHByb21pc2U7XG4gICAgaWYgKCFvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgcHJvbWlzZSA9IFByb21pc2UkMS5yZWplY3QoJ0ludmFsaWQgYXJndW1lbnRzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5zdG9yZU5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKG9wdGlvbnMubmFtZSArICcvJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoX2dldEtleVByZWZpeChvcHRpb25zLCBzZWxmLl9kZWZhdWx0Q29uZmlnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGtleVByZWZpeCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGxvY2FsU3RvcmFnZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGtleS5pbmRleE9mKGtleVByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGV4ZWN1dGVDYWxsYmFjayhwcm9taXNlLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbnZhciBsb2NhbFN0b3JhZ2VXcmFwcGVyID0ge1xuICAgIF9kcml2ZXI6ICdsb2NhbFN0b3JhZ2VXcmFwcGVyJyxcbiAgICBfaW5pdFN0b3JhZ2U6IF9pbml0U3RvcmFnZSQyLFxuICAgIF9zdXBwb3J0OiBpc0xvY2FsU3RvcmFnZVZhbGlkKCksXG4gICAgaXRlcmF0ZTogaXRlcmF0ZSQyLFxuICAgIGdldEl0ZW06IGdldEl0ZW0kMixcbiAgICBzZXRJdGVtOiBzZXRJdGVtJDIsXG4gICAgcmVtb3ZlSXRlbTogcmVtb3ZlSXRlbSQyLFxuICAgIGNsZWFyOiBjbGVhciQyLFxuICAgIGxlbmd0aDogbGVuZ3RoJDIsXG4gICAga2V5OiBrZXkkMixcbiAgICBrZXlzOiBrZXlzJDIsXG4gICAgZHJvcEluc3RhbmNlOiBkcm9wSW5zdGFuY2UkMlxufTtcblxudmFyIHNhbWVWYWx1ZSA9IGZ1bmN0aW9uIHNhbWVWYWx1ZSh4LCB5KSB7XG4gICAgcmV0dXJuIHggPT09IHkgfHwgdHlwZW9mIHggPT09ICdudW1iZXInICYmIHR5cGVvZiB5ID09PSAnbnVtYmVyJyAmJiBpc05hTih4KSAmJiBpc05hTih5KTtcbn07XG5cbnZhciBpbmNsdWRlcyA9IGZ1bmN0aW9uIGluY2x1ZGVzKGFycmF5LCBzZWFyY2hFbGVtZW50KSB7XG4gICAgdmFyIGxlbiA9IGFycmF5Lmxlbmd0aDtcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICAgICAgaWYgKHNhbWVWYWx1ZShhcnJheVtpXSwgc2VhcmNoRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGkrKztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKGFyZykge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG5cbi8vIERyaXZlcnMgYXJlIHN0b3JlZCBoZXJlIHdoZW4gYGRlZmluZURyaXZlcigpYCBpcyBjYWxsZWQuXG4vLyBUaGV5IGFyZSBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMgb2YgbG9jYWxGb3JhZ2UuXG52YXIgRGVmaW5lZERyaXZlcnMgPSB7fTtcblxudmFyIERyaXZlclN1cHBvcnQgPSB7fTtcblxudmFyIERlZmF1bHREcml2ZXJzID0ge1xuICAgIElOREVYRUREQjogYXN5bmNTdG9yYWdlLFxuICAgIFdFQlNRTDogd2ViU1FMU3RvcmFnZSxcbiAgICBMT0NBTFNUT1JBR0U6IGxvY2FsU3RvcmFnZVdyYXBwZXJcbn07XG5cbnZhciBEZWZhdWx0RHJpdmVyT3JkZXIgPSBbRGVmYXVsdERyaXZlcnMuSU5ERVhFRERCLl9kcml2ZXIsIERlZmF1bHREcml2ZXJzLldFQlNRTC5fZHJpdmVyLCBEZWZhdWx0RHJpdmVycy5MT0NBTFNUT1JBR0UuX2RyaXZlcl07XG5cbnZhciBPcHRpb25hbERyaXZlck1ldGhvZHMgPSBbJ2Ryb3BJbnN0YW5jZSddO1xuXG52YXIgTGlicmFyeU1ldGhvZHMgPSBbJ2NsZWFyJywgJ2dldEl0ZW0nLCAnaXRlcmF0ZScsICdrZXknLCAna2V5cycsICdsZW5ndGgnLCAncmVtb3ZlSXRlbScsICdzZXRJdGVtJ10uY29uY2F0KE9wdGlvbmFsRHJpdmVyTWV0aG9kcyk7XG5cbnZhciBEZWZhdWx0Q29uZmlnID0ge1xuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICBkcml2ZXI6IERlZmF1bHREcml2ZXJPcmRlci5zbGljZSgpLFxuICAgIG5hbWU6ICdsb2NhbGZvcmFnZScsXG4gICAgLy8gRGVmYXVsdCBEQiBzaXplIGlzIF9KVVNUIFVOREVSXyA1TUIsIGFzIGl0J3MgdGhlIGhpZ2hlc3Qgc2l6ZVxuICAgIC8vIHdlIGNhbiB1c2Ugd2l0aG91dCBhIHByb21wdC5cbiAgICBzaXplOiA0OTgwNzM2LFxuICAgIHN0b3JlTmFtZTogJ2tleXZhbHVlcGFpcnMnLFxuICAgIHZlcnNpb246IDEuMFxufTtcblxuZnVuY3Rpb24gY2FsbFdoZW5SZWFkeShsb2NhbEZvcmFnZUluc3RhbmNlLCBsaWJyYXJ5TWV0aG9kKSB7XG4gICAgbG9jYWxGb3JhZ2VJbnN0YW5jZVtsaWJyYXJ5TWV0aG9kXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hcmdzID0gYXJndW1lbnRzO1xuICAgICAgICByZXR1cm4gbG9jYWxGb3JhZ2VJbnN0YW5jZS5yZWFkeSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsRm9yYWdlSW5zdGFuY2VbbGlicmFyeU1ldGhvZF0uYXBwbHkobG9jYWxGb3JhZ2VJbnN0YW5jZSwgX2FyZ3MpO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgICBpZiAoYXJnKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBfa2V5IGluIGFyZykge1xuICAgICAgICAgICAgICAgIGlmIChhcmcuaGFzT3duUHJvcGVydHkoX2tleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoYXJnW19rZXldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWzBdW19rZXldID0gYXJnW19rZXldLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMF1bX2tleV0gPSBhcmdbX2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xufVxuXG52YXIgTG9jYWxGb3JhZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTG9jYWxGb3JhZ2Uob3B0aW9ucykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9jYWxGb3JhZ2UpO1xuXG4gICAgICAgIGZvciAodmFyIGRyaXZlclR5cGVLZXkgaW4gRGVmYXVsdERyaXZlcnMpIHtcbiAgICAgICAgICAgIGlmIChEZWZhdWx0RHJpdmVycy5oYXNPd25Qcm9wZXJ0eShkcml2ZXJUeXBlS2V5KSkge1xuICAgICAgICAgICAgICAgIHZhciBkcml2ZXIgPSBEZWZhdWx0RHJpdmVyc1tkcml2ZXJUeXBlS2V5XTtcbiAgICAgICAgICAgICAgICB2YXIgZHJpdmVyTmFtZSA9IGRyaXZlci5fZHJpdmVyO1xuICAgICAgICAgICAgICAgIHRoaXNbZHJpdmVyVHlwZUtleV0gPSBkcml2ZXJOYW1lO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFEZWZpbmVkRHJpdmVyc1tkcml2ZXJOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIHdhaXQgZm9yIHRoZSBwcm9taXNlLFxuICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgZGVmYXVsdCBkcml2ZXJzIGNhbiBiZSBkZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIC8vIGluIGEgYmxvY2tpbmcgbWFubmVyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRHJpdmVyKGRyaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGVmYXVsdENvbmZpZyA9IGV4dGVuZCh7fSwgRGVmYXVsdENvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGV4dGVuZCh7fSwgdGhpcy5fZGVmYXVsdENvbmZpZywgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX2RyaXZlclNldCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2luaXREcml2ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9yZWFkeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9kYkluZm8gPSBudWxsO1xuXG4gICAgICAgIHRoaXMuX3dyYXBMaWJyYXJ5TWV0aG9kc1dpdGhSZWFkeSgpO1xuICAgICAgICB0aGlzLnNldERyaXZlcih0aGlzLl9jb25maWcuZHJpdmVyKVtcImNhdGNoXCJdKGZ1bmN0aW9uICgpIHt9KTtcbiAgICB9XG5cbiAgICAvLyBTZXQgYW55IGNvbmZpZyB2YWx1ZXMgZm9yIGxvY2FsRm9yYWdlOyBjYW4gYmUgY2FsbGVkIGFueXRpbWUgYmVmb3JlXG4gICAgLy8gdGhlIGZpcnN0IEFQSSBjYWxsIChlLmcuIGBnZXRJdGVtYCwgYHNldEl0ZW1gKS5cbiAgICAvLyBXZSBsb29wIHRocm91Z2ggb3B0aW9ucyBzbyB3ZSBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZmlnXG4gICAgLy8gdmFsdWVzLlxuXG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuY29uZmlnID0gZnVuY3Rpb24gY29uZmlnKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gSWYgdGhlIG9wdGlvbnMgYXJndW1lbnQgaXMgYW4gb2JqZWN0LCB3ZSB1c2UgaXQgdG8gc2V0IHZhbHVlcy5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSByZXR1cm4gZWl0aGVyIGEgc3BlY2lmaWVkIGNvbmZpZyB2YWx1ZSBvciBhbGxcbiAgICAgICAgLy8gY29uZmlnIHZhbHVlcy5cbiAgICAgICAgaWYgKCh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2Yob3B0aW9ucykpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgLy8gSWYgbG9jYWxmb3JhZ2UgaXMgcmVhZHkgYW5kIGZ1bGx5IGluaXRpYWxpemVkLCB3ZSBjYW4ndCBzZXRcbiAgICAgICAgICAgIC8vIGFueSBuZXcgY29uZmlndXJhdGlvbiB2YWx1ZXMuIEluc3RlYWQsIHdlIHJldHVybiBhbiBlcnJvci5cbiAgICAgICAgICAgIGlmICh0aGlzLl9yZWFkeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoXCJDYW4ndCBjYWxsIGNvbmZpZygpIGFmdGVyIGxvY2FsZm9yYWdlIFwiICsgJ2hhcyBiZWVuIHVzZWQuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgaW4gb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSAnc3RvcmVOYW1lJykge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zW2ldID0gb3B0aW9uc1tpXS5yZXBsYWNlKC9cXFcvZywgJ18nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gJ3ZlcnNpb24nICYmIHR5cGVvZiBvcHRpb25zW2ldICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdEYXRhYmFzZSB2ZXJzaW9uIG11c3QgYmUgYSBudW1iZXIuJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnW2ldID0gb3B0aW9uc1tpXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWZ0ZXIgYWxsIGNvbmZpZyBvcHRpb25zIGFyZSBzZXQgYW5kXG4gICAgICAgICAgICAvLyB0aGUgZHJpdmVyIG9wdGlvbiBpcyB1c2VkLCB0cnkgc2V0dGluZyBpdFxuICAgICAgICAgICAgaWYgKCdkcml2ZXInIGluIG9wdGlvbnMgJiYgb3B0aW9ucy5kcml2ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXREcml2ZXIodGhpcy5fY29uZmlnLmRyaXZlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ1tvcHRpb25zXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gVXNlZCB0byBkZWZpbmUgYSBjdXN0b20gZHJpdmVyLCBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMgb2ZcbiAgICAvLyBsb2NhbEZvcmFnZS5cblxuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLmRlZmluZURyaXZlciA9IGZ1bmN0aW9uIGRlZmluZURyaXZlcihkcml2ZXJPYmplY3QsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhciBkcml2ZXJOYW1lID0gZHJpdmVyT2JqZWN0Ll9kcml2ZXI7XG4gICAgICAgICAgICAgICAgdmFyIGNvbXBsaWFuY2VFcnJvciA9IG5ldyBFcnJvcignQ3VzdG9tIGRyaXZlciBub3QgY29tcGxpYW50OyBzZWUgJyArICdodHRwczovL21vemlsbGEuZ2l0aHViLmlvL2xvY2FsRm9yYWdlLyNkZWZpbmVkcml2ZXInKTtcblxuICAgICAgICAgICAgICAgIC8vIEEgZHJpdmVyIG5hbWUgc2hvdWxkIGJlIGRlZmluZWQgYW5kIG5vdCBvdmVybGFwIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgLy8gbGlicmFyeS1kZWZpbmVkLCBkZWZhdWx0IGRyaXZlcnMuXG4gICAgICAgICAgICAgICAgaWYgKCFkcml2ZXJPYmplY3QuX2RyaXZlcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoY29tcGxpYW5jZUVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBkcml2ZXJNZXRob2RzID0gTGlicmFyeU1ldGhvZHMuY29uY2F0KCdfaW5pdFN0b3JhZ2UnKTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZHJpdmVyTWV0aG9kcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZHJpdmVyTWV0aG9kTmFtZSA9IGRyaXZlck1ldGhvZHNbaV07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlcmUsXG4gICAgICAgICAgICAgICAgICAgIC8vIGl0IHNob3VsZCBiZSBhIG1ldGhvZCBldmVuIHdoZW4gb3B0aW9uYWxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlzUmVxdWlyZWQgPSAhaW5jbHVkZXMoT3B0aW9uYWxEcml2ZXJNZXRob2RzLCBkcml2ZXJNZXRob2ROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChpc1JlcXVpcmVkIHx8IGRyaXZlck9iamVjdFtkcml2ZXJNZXRob2ROYW1lXSkgJiYgdHlwZW9mIGRyaXZlck9iamVjdFtkcml2ZXJNZXRob2ROYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGNvbXBsaWFuY2VFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgY29uZmlndXJlTWlzc2luZ01ldGhvZHMgPSBmdW5jdGlvbiBjb25maWd1cmVNaXNzaW5nTWV0aG9kcygpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1ldGhvZE5vdEltcGxlbWVudGVkRmFjdG9yeSA9IGZ1bmN0aW9uIG1ldGhvZE5vdEltcGxlbWVudGVkRmFjdG9yeShtZXRob2ROYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcignTWV0aG9kICcgKyBtZXRob2ROYW1lICsgJyBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIGN1cnJlbnQgZHJpdmVyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb21pc2UgPSBQcm9taXNlJDEucmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlQ2FsbGJhY2socHJvbWlzZSwgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2xlbiA9IE9wdGlvbmFsRHJpdmVyTWV0aG9kcy5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9wdGlvbmFsRHJpdmVyTWV0aG9kID0gT3B0aW9uYWxEcml2ZXJNZXRob2RzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZHJpdmVyT2JqZWN0W29wdGlvbmFsRHJpdmVyTWV0aG9kXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlck9iamVjdFtvcHRpb25hbERyaXZlck1ldGhvZF0gPSBtZXRob2ROb3RJbXBsZW1lbnRlZEZhY3Rvcnkob3B0aW9uYWxEcml2ZXJNZXRob2QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyZU1pc3NpbmdNZXRob2RzKCk7XG5cbiAgICAgICAgICAgICAgICB2YXIgc2V0RHJpdmVyU3VwcG9ydCA9IGZ1bmN0aW9uIHNldERyaXZlclN1cHBvcnQoc3VwcG9ydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoRGVmaW5lZERyaXZlcnNbZHJpdmVyTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnUmVkZWZpbmluZyBMb2NhbEZvcmFnZSBkcml2ZXI6ICcgKyBkcml2ZXJOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBEZWZpbmVkRHJpdmVyc1tkcml2ZXJOYW1lXSA9IGRyaXZlck9iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgRHJpdmVyU3VwcG9ydFtkcml2ZXJOYW1lXSA9IHN1cHBvcnQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHVzZSBhIHRoZW4sIHNvIHRoYXQgd2UgY2FuIGRlZmluZVxuICAgICAgICAgICAgICAgICAgICAvLyBkcml2ZXJzIHRoYXQgaGF2ZSBzaW1wbGUgX3N1cHBvcnQgbWV0aG9kc1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBhIGJsb2NraW5nIG1hbm5lclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmICgnX3N1cHBvcnQnIGluIGRyaXZlck9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZHJpdmVyT2JqZWN0Ll9zdXBwb3J0ICYmIHR5cGVvZiBkcml2ZXJPYmplY3QuX3N1cHBvcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlck9iamVjdC5fc3VwcG9ydCgpLnRoZW4oc2V0RHJpdmVyU3VwcG9ydCwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldERyaXZlclN1cHBvcnQoISFkcml2ZXJPYmplY3QuX3N1cHBvcnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RHJpdmVyU3VwcG9ydCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBleGVjdXRlVHdvQ2FsbGJhY2tzKHByb21pc2UsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIExvY2FsRm9yYWdlLnByb3RvdHlwZS5kcml2ZXIgPSBmdW5jdGlvbiBkcml2ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcml2ZXIgfHwgbnVsbDtcbiAgICB9O1xuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLmdldERyaXZlciA9IGZ1bmN0aW9uIGdldERyaXZlcihkcml2ZXJOYW1lLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaykge1xuICAgICAgICB2YXIgZ2V0RHJpdmVyUHJvbWlzZSA9IERlZmluZWREcml2ZXJzW2RyaXZlck5hbWVdID8gUHJvbWlzZSQxLnJlc29sdmUoRGVmaW5lZERyaXZlcnNbZHJpdmVyTmFtZV0pIDogUHJvbWlzZSQxLnJlamVjdChuZXcgRXJyb3IoJ0RyaXZlciBub3QgZm91bmQuJykpO1xuXG4gICAgICAgIGV4ZWN1dGVUd29DYWxsYmFja3MoZ2V0RHJpdmVyUHJvbWlzZSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gZ2V0RHJpdmVyUHJvbWlzZTtcbiAgICB9O1xuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLmdldFNlcmlhbGl6ZXIgPSBmdW5jdGlvbiBnZXRTZXJpYWxpemVyKGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBzZXJpYWxpemVyUHJvbWlzZSA9IFByb21pc2UkMS5yZXNvbHZlKGxvY2FsZm9yYWdlU2VyaWFsaXplcik7XG4gICAgICAgIGV4ZWN1dGVUd29DYWxsYmFja3Moc2VyaWFsaXplclByb21pc2UsIGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXJQcm9taXNlO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUucmVhZHkgPSBmdW5jdGlvbiByZWFkeShjYWxsYmFjaykge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHByb21pc2UgPSBzZWxmLl9kcml2ZXJTZXQudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoc2VsZi5fcmVhZHkgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZWxmLl9yZWFkeSA9IHNlbGYuX2luaXREcml2ZXIoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JlYWR5O1xuICAgICAgICB9KTtcblxuICAgICAgICBleGVjdXRlVHdvQ2FsbGJhY2tzKHByb21pc2UsIGNhbGxiYWNrLCBjYWxsYmFjayk7XG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuc2V0RHJpdmVyID0gZnVuY3Rpb24gc2V0RHJpdmVyKGRyaXZlcnMsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgICBpZiAoIWlzQXJyYXkoZHJpdmVycykpIHtcbiAgICAgICAgICAgIGRyaXZlcnMgPSBbZHJpdmVyc107XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc3VwcG9ydGVkRHJpdmVycyA9IHRoaXMuX2dldFN1cHBvcnRlZERyaXZlcnMoZHJpdmVycyk7XG5cbiAgICAgICAgZnVuY3Rpb24gc2V0RHJpdmVyVG9Db25maWcoKSB7XG4gICAgICAgICAgICBzZWxmLl9jb25maWcuZHJpdmVyID0gc2VsZi5kcml2ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGV4dGVuZFNlbGZXaXRoRHJpdmVyKGRyaXZlcikge1xuICAgICAgICAgICAgc2VsZi5fZXh0ZW5kKGRyaXZlcik7XG4gICAgICAgICAgICBzZXREcml2ZXJUb0NvbmZpZygpO1xuXG4gICAgICAgICAgICBzZWxmLl9yZWFkeSA9IHNlbGYuX2luaXRTdG9yYWdlKHNlbGYuX2NvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZHk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpbml0RHJpdmVyKHN1cHBvcnRlZERyaXZlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnREcml2ZXJJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBkcml2ZXJQcm9taXNlTG9vcCgpIHtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnREcml2ZXJJbmRleCA8IHN1cHBvcnRlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHJpdmVyTmFtZSA9IHN1cHBvcnRlZERyaXZlcnNbY3VycmVudERyaXZlckluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREcml2ZXJJbmRleCsrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kYkluZm8gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZHkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXREcml2ZXIoZHJpdmVyTmFtZSkudGhlbihleHRlbmRTZWxmV2l0aERyaXZlcilbXCJjYXRjaFwiXShkcml2ZXJQcm9taXNlTG9vcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXREcml2ZXJUb0NvbmZpZygpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ05vIGF2YWlsYWJsZSBzdG9yYWdlIG1ldGhvZCBmb3VuZC4nKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyU2V0ID0gUHJvbWlzZSQxLnJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXJTZXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRyaXZlclByb21pc2VMb29wKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlcmUgbWlnaHQgYmUgYSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gaW4gcHJvZ3Jlc3NcbiAgICAgICAgLy8gc28gd2FpdCBmb3IgaXQgdG8gZmluaXNoIGluIG9yZGVyIHRvIGF2b2lkIGEgcG9zc2libGVcbiAgICAgICAgLy8gcmFjZSBjb25kaXRpb24gdG8gc2V0IF9kYkluZm9cbiAgICAgICAgdmFyIG9sZERyaXZlclNldERvbmUgPSB0aGlzLl9kcml2ZXJTZXQgIT09IG51bGwgPyB0aGlzLl9kcml2ZXJTZXRbXCJjYXRjaFwiXShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICAgICAgfSkgOiBQcm9taXNlJDEucmVzb2x2ZSgpO1xuXG4gICAgICAgIHRoaXMuX2RyaXZlclNldCA9IG9sZERyaXZlclNldERvbmUudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZHJpdmVyTmFtZSA9IHN1cHBvcnRlZERyaXZlcnNbMF07XG4gICAgICAgICAgICBzZWxmLl9kYkluZm8gPSBudWxsO1xuICAgICAgICAgICAgc2VsZi5fcmVhZHkgPSBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gc2VsZi5nZXREcml2ZXIoZHJpdmVyTmFtZSkudGhlbihmdW5jdGlvbiAoZHJpdmVyKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyLl9kcml2ZXI7XG4gICAgICAgICAgICAgICAgc2V0RHJpdmVyVG9Db25maWcoKTtcbiAgICAgICAgICAgICAgICBzZWxmLl93cmFwTGlicmFyeU1ldGhvZHNXaXRoUmVhZHkoKTtcbiAgICAgICAgICAgICAgICBzZWxmLl9pbml0RHJpdmVyID0gaW5pdERyaXZlcihzdXBwb3J0ZWREcml2ZXJzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVtcImNhdGNoXCJdKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNldERyaXZlclRvQ29uZmlnKCk7XG4gICAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ05vIGF2YWlsYWJsZSBzdG9yYWdlIG1ldGhvZCBmb3VuZC4nKTtcbiAgICAgICAgICAgIHNlbGYuX2RyaXZlclNldCA9IFByb21pc2UkMS5yZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlclNldDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXhlY3V0ZVR3b0NhbGxiYWNrcyh0aGlzLl9kcml2ZXJTZXQsIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RyaXZlclNldDtcbiAgICB9O1xuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLnN1cHBvcnRzID0gZnVuY3Rpb24gc3VwcG9ydHMoZHJpdmVyTmFtZSkge1xuICAgICAgICByZXR1cm4gISFEcml2ZXJTdXBwb3J0W2RyaXZlck5hbWVdO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuX2V4dGVuZCA9IGZ1bmN0aW9uIF9leHRlbmQobGlicmFyeU1ldGhvZHNBbmRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGV4dGVuZCh0aGlzLCBsaWJyYXJ5TWV0aG9kc0FuZFByb3BlcnRpZXMpO1xuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuX2dldFN1cHBvcnRlZERyaXZlcnMgPSBmdW5jdGlvbiBfZ2V0U3VwcG9ydGVkRHJpdmVycyhkcml2ZXJzKSB7XG4gICAgICAgIHZhciBzdXBwb3J0ZWREcml2ZXJzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkcml2ZXJzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgZHJpdmVyTmFtZSA9IGRyaXZlcnNbaV07XG4gICAgICAgICAgICBpZiAodGhpcy5zdXBwb3J0cyhkcml2ZXJOYW1lKSkge1xuICAgICAgICAgICAgICAgIHN1cHBvcnRlZERyaXZlcnMucHVzaChkcml2ZXJOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwcG9ydGVkRHJpdmVycztcbiAgICB9O1xuXG4gICAgTG9jYWxGb3JhZ2UucHJvdG90eXBlLl93cmFwTGlicmFyeU1ldGhvZHNXaXRoUmVhZHkgPSBmdW5jdGlvbiBfd3JhcExpYnJhcnlNZXRob2RzV2l0aFJlYWR5KCkge1xuICAgICAgICAvLyBBZGQgYSBzdHViIGZvciBlYWNoIGRyaXZlciBBUEkgbWV0aG9kIHRoYXQgZGVsYXlzIHRoZSBjYWxsIHRvIHRoZVxuICAgICAgICAvLyBjb3JyZXNwb25kaW5nIGRyaXZlciBtZXRob2QgdW50aWwgbG9jYWxGb3JhZ2UgaXMgcmVhZHkuIFRoZXNlIHN0dWJzXG4gICAgICAgIC8vIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGRyaXZlciBtZXRob2RzIGFzIHNvb24gYXMgdGhlIGRyaXZlciBpc1xuICAgICAgICAvLyBsb2FkZWQsIHNvIHRoZXJlIGlzIG5vIHBlcmZvcm1hbmNlIGltcGFjdC5cbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IExpYnJhcnlNZXRob2RzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBjYWxsV2hlblJlYWR5KHRoaXMsIExpYnJhcnlNZXRob2RzW2ldKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBMb2NhbEZvcmFnZS5wcm90b3R5cGUuY3JlYXRlSW5zdGFuY2UgPSBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgTG9jYWxGb3JhZ2Uob3B0aW9ucyk7XG4gICAgfTtcblxuICAgIHJldHVybiBMb2NhbEZvcmFnZTtcbn0oKTtcblxuLy8gVGhlIGFjdHVhbCBsb2NhbEZvcmFnZSBvYmplY3QgdGhhdCB3ZSBleHBvc2UgYXMgYSBtb2R1bGUgb3IgdmlhIGFcbi8vIGdsb2JhbC4gSXQncyBleHRlbmRlZCBieSBwdWxsaW5nIGluIG9uZSBvZiBvdXIgb3RoZXIgbGlicmFyaWVzLlxuXG5cbnZhciBsb2NhbGZvcmFnZV9qcyA9IG5ldyBMb2NhbEZvcmFnZSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxvY2FsZm9yYWdlX2pzO1xuXG59LHtcIjNcIjozfV19LHt9LFs0XSkoNClcbn0pO1xuIiwgIi8qKlxuICogQGxpY2Vuc2UgTUlUXG4gKiBAY29weXJpZ2h0IDIwMjAgRXlhcyBSYW5qb3VzIDxleWFzLnJhbmpvdXNAZ21haWwuY29tPlxuICpcbiAqIEBjbGFzc1xuICovXG5jbGFzcyBRdWV1ZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcXVldWUuXG4gICAqIEBwYXJhbSB7YXJyYXl9IFtlbGVtZW50c11cbiAgICovXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRzKSB7XG4gICAgdGhpcy5fZWxlbWVudHMgPSBBcnJheS5pc0FycmF5KGVsZW1lbnRzKSA/IGVsZW1lbnRzIDogW107XG4gICAgdGhpcy5fb2Zmc2V0ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGVsZW1lbnQgdG8gdGhlIGJhY2sgb2YgdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ3xvYmplY3R9IGVsZW1lbnRcbiAgICovXG4gIGVucXVldWUoZWxlbWVudCkge1xuICAgIHRoaXMuX2VsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBlbGVtZW50IHRvIHRoZSBiYWNrIG9mIHRoZSBxdWV1ZS5cbiAgICogQHB1YmxpY1xuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd8b2JqZWN0fSBlbGVtZW50XG4gICAqL1xuICBwdXNoKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKGVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcXVldWVzIHRoZSBmcm9udCBlbGVtZW50IGluIHRoZSBxdWV1ZS5cbiAgICogQHB1YmxpY1xuICAgKiBAcmV0dXJucyB7bnVtYmVyfHN0cmluZ3xvYmplY3R9XG4gICAqL1xuICBkZXF1ZXVlKCkge1xuICAgIGlmICh0aGlzLnNpemUoKSA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBmaXJzdCA9IHRoaXMuZnJvbnQoKTtcbiAgICB0aGlzLl9vZmZzZXQgKz0gMTtcblxuICAgIGlmICh0aGlzLl9vZmZzZXQgKiAyIDwgdGhpcy5fZWxlbWVudHMubGVuZ3RoKSByZXR1cm4gZmlyc3Q7XG5cbiAgICAvLyBvbmx5IHJlbW92ZSBkZXF1ZXVlZCBlbGVtZW50cyB3aGVuIHJlYWNoaW5nIGhhbGYgc2l6ZVxuICAgIC8vIHRvIGRlY3JlYXNlIGxhdGVuY3kgb2Ygc2hpZnRpbmcgZWxlbWVudHMuXG4gICAgdGhpcy5fZWxlbWVudHMgPSB0aGlzLl9lbGVtZW50cy5zbGljZSh0aGlzLl9vZmZzZXQpO1xuICAgIHRoaXMuX29mZnNldCA9IDA7XG4gICAgcmV0dXJuIGZpcnN0O1xuICB9XG5cbiAgLyoqXG4gICAqIERlcXVldWVzIHRoZSBmcm9udCBlbGVtZW50IGluIHRoZSBxdWV1ZS5cbiAgICogQHB1YmxpY1xuICAgKiBAcmV0dXJucyB7bnVtYmVyfHN0cmluZ3xvYmplY3R9XG4gICAqL1xuICBwb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVxdWV1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZyb250IGVsZW1lbnQgb2YgdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtudW1iZXJ8c3RyaW5nfG9iamVjdH1cbiAgICovXG4gIGZyb250KCkge1xuICAgIHJldHVybiB0aGlzLnNpemUoKSA+IDAgPyB0aGlzLl9lbGVtZW50c1t0aGlzLl9vZmZzZXRdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBiYWNrIGVsZW1lbnQgb2YgdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtudW1iZXJ8c3RyaW5nfG9iamVjdH1cbiAgICovXG4gIGJhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSgpID4gMCA/IHRoaXMuX2VsZW1lbnRzW3RoaXMuX2VsZW1lbnRzLmxlbmd0aCAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAqL1xuICBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50cy5sZW5ndGggLSB0aGlzLl9vZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICogQHB1YmxpY1xuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSgpID09PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlbWFpbmluZyBlbGVtZW50cyBpbiB0aGUgcXVldWUgYXMgYW4gYXJyYXkuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMge2FycmF5fVxuICAgKi9cbiAgdG9BcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudHMuc2xpY2UodGhpcy5fb2Zmc2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHF1ZXVlLlxuICAgKiBAcHVibGljXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLl9lbGVtZW50cyA9IFtdO1xuICAgIHRoaXMuX29mZnNldCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNoYWxsb3cgY29weSBvZiB0aGUgcXVldWUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybiB7UXVldWV9XG4gICAqL1xuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXVlKHRoaXMuX2VsZW1lbnRzLnNsaWNlKHRoaXMuX29mZnNldCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBxdWV1ZSBmcm9tIGFuIGV4aXN0aW5nIGFycmF5LlxuICAgKiBAcHVibGljXG4gICAqIEBzdGF0aWNcbiAgICogQHBhcmFtIHthcnJheX0gZWxlbWVudHNcbiAgICogQHJldHVybiB7UXVldWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5KGVsZW1lbnRzKSB7XG4gICAgcmV0dXJuIG5ldyBRdWV1ZShlbGVtZW50cyk7XG4gIH1cbn1cblxuZXhwb3J0cy5RdWV1ZSA9IFF1ZXVlO1xuIiwgImNvbnN0IHsgUXVldWUgfSA9IHJlcXVpcmUoJy4vc3JjL3F1ZXVlJyk7XG5cbmV4cG9ydHMuUXVldWUgPSBRdWV1ZTtcbiIsICJpbXBvcnQgeyBEYXRhY29yZUFwaSB9IGZyb20gXCJhcGkvYXBpXCI7XG5pbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IEFwcCwgUGx1Z2luLCBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBjcmVhdGVFbGVtZW50LCByZW5kZXIgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyBERUZBVUxUX1NFVFRJTkdTLCBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgRGF0YWNvcmVRdWVyeVZpZXcgYXMgRGF0YWNvcmVKU1ZpZXcsIFZJRVdfVFlQRV9EQVRBQ09SRUpTIH0gZnJvbSBcInVpL3ZpZXctcGFnZVwiO1xuaW1wb3J0IHsgSW5kZXhTdGF0dXNCYXIgfSBmcm9tIFwidWkvaW5kZXgtc3RhdHVzXCI7XG5cbi8qKiBSZWFjdGl2ZSBkYXRhIGVuZ2luZSBmb3IgeW91ciBPYnNpZGlhbi5tZCB2YXVsdC4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFjb3JlUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcbiAgICAvKiogUGx1Z2luLXdpZGUgZGVmYXVsdCBzZXR0aW5ncy4gKi9cbiAgICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzO1xuXG4gICAgLyoqIENlbnRyYWwgaW50ZXJuYWwgc3RhdGUuICovXG4gICAgcHVibGljIGNvcmU6IERhdGFjb3JlO1xuICAgIC8qKiBFeHRlcm5hbGx5IHZpc2libGUgQVBJIGZvciBxdWVyeWluZy4gKi9cbiAgICBwdWJsaWMgYXBpOiBEYXRhY29yZUFwaTtcblxuICAgIGFzeW5jIG9ubG9hZCgpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIChhd2FpdCB0aGlzLmxvYWREYXRhKCkpID8/IHt9KTtcbiAgICAgICAgdGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBHZW5lcmFsU2V0dGluZ3NUYWIodGhpcy5hcHAsIHRoaXMpKTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBjb3JlIEFQSSBmb3IgdXNhZ2UgaW4gYWxsIHZpZXdzIGFuZCBkb3duc3RyZWFtIGFwcHMuXG4gICAgICAgIHRoaXMuYWRkQ2hpbGQoKHRoaXMuY29yZSA9IG5ldyBEYXRhY29yZSh0aGlzLmFwcCwgdGhpcy5tYW5pZmVzdC52ZXJzaW9uLCB0aGlzLnNldHRpbmdzKSkpO1xuICAgICAgICB0aGlzLmFwaSA9IG5ldyBEYXRhY29yZUFwaSh0aGlzLmNvcmUpO1xuXG4gICAgICAgIC8vIEFkZCBhIHZpc3VhbCBhaWQgZm9yIHdoYXQgZGF0YWNvcmUgaXMgY3VycmVudGx5IGRvaW5nLlxuICAgICAgICB0aGlzLm1vdW50SW5kZXhTdGF0ZSh0aGlzLmFkZFN0YXR1c0Jhckl0ZW0oKSwgdGhpcy5jb3JlKTtcblxuICAgICAgICAvLyBQcmltYXJ5IHZpc3VhbCBlbGVtZW50cyAoRGF0YWNvcmVKUyBhbmQgRGF0YWNvcmUgYmxvY2tzKS5cbiAgICAgICAgdGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFxuICAgICAgICAgICAgXCJkYXRhY29yZWpzXCIsXG4gICAgICAgICAgICBhc3luYyAoc291cmNlOiBzdHJpbmcsIGVsLCBjdHgpID0+IHRoaXMuYXBpLmV4ZWN1dGVKcyhzb3VyY2UsIGVsLCBjdHgsIGN0eC5zb3VyY2VQYXRoKSxcbiAgICAgICAgICAgIC0xMDBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoXG4gICAgICAgICAgICBcImRhdGFjb3JlanN4XCIsXG4gICAgICAgICAgICBhc3luYyAoc291cmNlOiBzdHJpbmcsIGVsLCBjdHgpID0+IHRoaXMuYXBpLmV4ZWN1dGVKc3goc291cmNlLCBlbCwgY3R4LCBjdHguc291cmNlUGF0aCksXG4gICAgICAgICAgICAtMTAwXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFxuICAgICAgICAgICAgXCJkYXRhY29yZXRzXCIsXG4gICAgICAgICAgICBhc3luYyAoc291cmNlOiBzdHJpbmcsIGVsLCBjdHgpID0+IHRoaXMuYXBpLmV4ZWN1dGVUcyhzb3VyY2UsIGVsLCBjdHgsIGN0eC5zb3VyY2VQYXRoKSxcbiAgICAgICAgICAgIC0xMDBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoXG4gICAgICAgICAgICBcImRhdGFjb3JldHN4XCIsXG4gICAgICAgICAgICBhc3luYyAoc291cmNlOiBzdHJpbmcsIGVsLCBjdHgpID0+IHRoaXMuYXBpLmV4ZWN1dGVUc3goc291cmNlLCBlbCwgY3R4LCBjdHguc291cmNlUGF0aCksXG4gICAgICAgICAgICAtMTAwXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gVmlld3M6IERhdGFjb3JlSlMgdmlldy5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSBiZSBxdWlldFxuICAgICAgICB0aGlzLnJlZ2lzdGVyVmlldyhWSUVXX1RZUEVfREFUQUNPUkVKUywgKGxlYWYpID0+IG5ldyBEYXRhY29yZUpTVmlldyhsZWFmLCB0aGlzLmFwaSkpO1xuXG4gICAgICAgIC8vIEFkZCBhIGNvbW1hbmQgZm9yIGNyZWF0aW5nIGEgbmV3IHZpZXcgcGFnZS5cbiAgICAgICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgICAgICAgIGlkOiBcImRhdGFjb3JlLWFkZC12aWV3LXBhZ2VcIixcbiAgICAgICAgICAgIG5hbWU6IFwiQ3JlYXRlIFZpZXcgUGFnZVwiLFxuICAgICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMZWFmID0gdGhpcy5hcHAud29ya3NwYWNlLmdldExlYWYoXCJ0YWJcIik7XG4gICAgICAgICAgICAgICAgbmV3TGVhZi5zZXRWaWV3U3RhdGUoeyB0eXBlOiBWSUVXX1RZUEVfREFUQUNPUkVKUywgYWN0aXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5zZXRBY3RpdmVMZWFmKG5ld0xlYWYsIHsgZm9jdXM6IHRydWUgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZWdpc3RlciBKUyBoaWdobGlnaHRpbmcgZm9yIGNvZGVibG9ja3MuXG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy5yZWdpc3RlckNvZGVibG9ja0hpZ2hsaWdodGluZygpKTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIGFzIHNvb24gYXMgdGhlIHdvcmtzcGFjZSBpcyByZWFkeS5cbiAgICAgICAgaWYgKCF0aGlzLmFwcC53b3Jrc3BhY2UubGF5b3V0UmVhZHkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGFzeW5jICgpID0+IHRoaXMuY29yZS5pbml0aWFsaXplKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb3JlLmluaXRpYWxpemUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIEFQSSBnbG9iYWxseSBhY2Nlc3NpYmxlIGZyb20gYW55IGNvbnRleHQuXG4gICAgICAgIHdpbmRvdy5kYXRhY29yZSA9IHRoaXMuYXBpO1xuXG4gICAgICAgIC8vIGJvbiBhcHBldGl0XG4gICAgICAgIGNvbnNvbGUubG9nKGBEYXRhY29yZTogdmVyc2lvbiAke3RoaXMubWFuaWZlc3QudmVyc2lvbn0gKHJlcXVpcmVzIG9ic2lkaWFuICR7dGhpcy5tYW5pZmVzdC5taW5BcHBWZXJzaW9ufSlgKTtcbiAgICB9XG5cbiAgICBvbnVubG9hZCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coYERhdGFjb3JlOiB2ZXJzaW9uICR7dGhpcy5tYW5pZmVzdC52ZXJzaW9ufSB1bmxvYWRlZC5gKTtcbiAgICB9XG5cbiAgICAvKiogUmVnaXN0ZXIgY29kZWJsb2NrIGhpZ2hsaWdodGluZyBhbmQgcmV0dXJuIGEgY2xvc3VyZSB3aGljaCB1bnJlZ2lzdGVycy4gKi9cbiAgICByZWdpc3RlckNvZGVibG9ja0hpZ2hsaWdodGluZygpOiAoKSA9PiB2b2lkIHtcbiAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JlanNcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwiamF2YXNjcmlwdFwiKSk7XG4gICAgICAgIHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJkYXRhY29yZWpzeFwiLCAoY29uZmlnKSA9PiB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgXCJqc3hcIikpO1xuICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmV0c1wiLCAoY29uZmlnKSA9PiB3aW5kb3cuQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgXCJqYXZhc2NyaXB0XCIpKTtcbiAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JldHN4XCIsIChjb25maWcpID0+IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcImpzeFwiKSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGUoXCJkYXRhY29yZWpzXCIsIChjb25maWcpID0+IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcIm51bGxcIikpO1xuICAgICAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JlanN4XCIsIChjb25maWcpID0+IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCBcIm51bGxcIikpO1xuICAgICAgICAgICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShcImRhdGFjb3JldHNcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwibnVsbFwiKSk7XG4gICAgICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5kZWZpbmVNb2RlKFwiZGF0YWNvcmV0c3hcIiwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIFwibnVsbFwiKSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGUgZ2l2ZW4gc2V0dGluZ3MgdG8gbmV3IHZhbHVlcy4gKi9cbiAgICBhc3luYyB1cGRhdGVTZXR0aW5ncyhzZXR0aW5nczogUGFydGlhbDxTZXR0aW5ncz4pIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnNldHRpbmdzLCBzZXR0aW5ncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgLyoqIFJlbmRlciBkYXRhY29yZSBpbmRleGluZyBzdGF0dXMgdXNpbmcgdGhlIGluZGV4LiAqL1xuICAgIHByaXZhdGUgbW91bnRJbmRleFN0YXRlKHJvb3Q6IEhUTUxFbGVtZW50LCBjb3JlOiBEYXRhY29yZSk6IHZvaWQge1xuICAgICAgICByZW5kZXIoY3JlYXRlRWxlbWVudChJbmRleFN0YXR1c0JhciwgeyBkYXRhY29yZTogY29yZSB9KSwgcm9vdCk7XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcigoKSA9PiByZW5kZXIobnVsbCwgcm9vdCkpO1xuICAgIH1cbn1cblxuLyoqIERhdGFjb3JlIFNldHRpbmdzIFRhYi4gKi9cbmNsYXNzIEdlbmVyYWxTZXR0aW5nc1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICAgIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwcml2YXRlIHBsdWdpbjogRGF0YWNvcmVQbHVnaW4pIHtcbiAgICAgICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNwbGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhaW5lckVsLmVtcHR5KCk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHsgdGV4dDogXCJWaWV3c1wiIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIlBhZ2luYXRpb25cIilcbiAgICAgICAgICAgIC5zZXREZXNjKFxuICAgICAgICAgICAgICAgIFwiSWYgZW5hYmxlZCwgc3BsaXRzIHVwIHZpZXdzIGludG8gcGFnZXMgb2YgcmVzdWx0cyB3aGljaCBjYW4gYmUgdHJhdmVyc2VkIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJ2aWEgYnV0dG9ucyBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgdGhlIHZpZXcuIFRoaXMgc3Vic3RhbnRpYWxseSBpbXByb3ZlcyBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwidGhlIHBlcmZvcm1hbmNlIG9mIGxhcmdlIHZpZXdzLCBhbmQgY2FuIGhlbHAgd2l0aCB2aXN1YWwgY2x1dHRlci4gTm90ZSB0aGF0IFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJ0aGlzIHNldHRpbmcgY2FuIGFsc28gYmUgc2V0IG9uIGEgcGVyLXZpZXcgYmFzaXMuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWZhdWx0UGFnaW5nRW5hYmxlZCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgZGVmYXVsdFBhZ2luZ0VuYWJsZWQ6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiRGVmYXVsdCBQYWdlIFNpemVcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiVGhlIG51bWJlciBvZiBlbnRyaWVzIHRvIHNob3cgcGVyIHBhZ2UsIGJ5IGRlZmF1bHQuIFRoaXMgY2FuIGJlIG92ZXJyaWRlbiBvbiBhIHBlci12aWV3IGJhc2lzLlwiKVxuICAgICAgICAgICAgLmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IE9QVElPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAgICAgICAgIFwiMjVcIjogXCIyNVwiLFxuICAgICAgICAgICAgICAgICAgICBcIjUwXCI6IFwiNTBcIixcbiAgICAgICAgICAgICAgICAgICAgXCIxMDBcIjogXCIxMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCIyMDBcIjogXCIyMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCI1MDBcIjogXCI1MDBcIixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBcIlwiICsgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVmYXVsdFBhZ2VTaXplO1xuICAgICAgICAgICAgICAgIGlmICghKGN1cnJlbnQgaW4gT1BUSU9OUykpIE9QVElPTlNbY3VycmVudF0gPSBjdXJyZW50O1xuXG4gICAgICAgICAgICAgICAgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgLmFkZE9wdGlvbnMoT1BUSU9OUylcbiAgICAgICAgICAgICAgICAgICAgLnNldFZhbHVlKGN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKHBhcnNlZCkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBkZWZhdWx0UGFnZVNpemU6IHBhcnNlZCB8IDAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiU2Nyb2xsIG9uIFBhZ2UgQ2hhbmdlXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcbiAgICAgICAgICAgICAgICBcIklmIGVuYWJsZWQsIHRhYmxlIHRoYXQgYXJlIHBhZ2VkIHdpbGwgc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIHRhYmxlIHdoZW4gdGhlIHBhZ2UgY2hhbmdlcy4gXCIgK1xuICAgICAgICAgICAgICAgICAgICBcIlRoaXMgY2FuIGJlIG92ZXJyaWRlbiBvbiBhIHBlci12aWV3IGJhc2lzLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2Nyb2xsT25QYWdlQ2hhbmdlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBzY3JvbGxPblBhZ2VDaGFuZ2U6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkVuYWJsZSBKYXZhc2NyaXB0XCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcIldoZXRoZXIgSmF2YXNjcmlwdCBjb2RlYmxvY2tzIHdpbGwgYmUgZXZhbHVhdGVkLlwiKVxuICAgICAgICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmVuYWJsZUpzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyBlbmFibGVKczogdmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwgeyB0ZXh0OiBcIkZvcm1hdHRpbmdcIiB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJFbXB0eSBWYWx1ZXNcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiV2hhdCB0byBzaG93IGZvciB1bnNldC9lbXB0eSBwcm9wZXJ0aWVzLlwiKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnJlbmRlck51bGxBcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgcmVuZGVyTnVsbEFzOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkRlZmF1bHQgRGF0ZSBGb3JtYXRcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFxuICAgICAgICAgICAgICAgIFwiVGhlIGRlZmF1bHQgZm9ybWF0IHRoYXQgZGF0ZXMgYXJlIHJlbmRlcmVkIGluLiBVc2VzIGx1eG9uIGRhdGUgZm9ybWF0dGluZyAoaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9sdXhvbi9ibG9iL21hc3Rlci9kb2NzL2Zvcm1hdHRpbmcubWQjZm9ybWF0dGluZy13aXRoLXRva2Vucy1zdHJpbmdzLWZvci1jdGh1bGh1KS5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgZGF0ZSBmb3JtYXQgaXMgdmFsaWRcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lLmZyb21NaWxsaXMoRGF0ZS5ub3coKSkudG9Gb3JtYXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IGRlZmF1bHREYXRlRm9ybWF0OiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkRlZmF1bHQgRGF0ZS1UaW1lIGZvcm1hdFwiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJUaGUgZGVmYXVsdCBmb3JtYXQgdGhhdCBkYXRlLXRpbWVzIGFyZSByZW5kZXJlZCBpbi4gVXNlcyBsdXhvbiBkYXRlIGZvcm1hdHRpbmcgKGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbHV4b24vYmxvYi9tYXN0ZXIvZG9jcy9mb3JtYXR0aW5nLm1kI2Zvcm1hdHRpbmctd2l0aC10b2tlbnMtc3RyaW5ncy1mb3ItY3RodWxodSkuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGV4dC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUuZnJvbU1pbGxpcyhEYXRlLm5vdygpKS50b0Zvcm1hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgZGVmYXVsdERhdGVUaW1lRm9ybWF0OiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7IHRleHQ6IFwiUGVyZm9ybWFuY2UgVHVuaW5nXCIgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiSW5saW5lIEZpZWxkc1wiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJJZiBlbmFibGVkLCBpbmxpbmUgZmllbGRzIHdpbGwgYmUgcGFyc2VkIGluIGFsbCBkb2N1bWVudHMuIEZpbmRpbmcgaW5saW5lIGZpZWxkcyByZXF1aXJlcyBhIGZ1bGwgdGV4dCBzY2FuIHRocm91Z2ggZWFjaCBkb2N1bWVudCwgXCIgK1xuICAgICAgICAgICAgICAgICAgICBcIndoaWNoIG5vdGljYWJseSBzbG93cyBkb3duIGluZGV4aW5nIGZvciBsYXJnZSB2YXVsdHMuIERpc2FibGluZyB0aGlzIGZ1bmN0aW9uYWxpdHkgd2lsbCBtZWFuIG1ldGFkYXRhIHdpbGwgb25seSBjb21lIGZyb20gdGFncywgbGlua3MsIGFuZCBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvcGVydGllcyAvIGZyb250bWF0dGVyXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbmRleElubGluZUZpZWxkcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgaW5kZXhJbmxpbmVGaWVsZHM6IHZhbHVlIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlcXVlc3QgYSBmdWxsIGluZGV4IGRyb3AgKyByZWluZGV4IGZvciBjb3JyZWN0bmVzcy5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIkltcG9ydGVyIFRocmVhZHNcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiVGhlIG51bWJlciBvZiBpbXBvcnRlciB0aHJlYWRzIHRvIHVzZSBmb3IgcGFyc2luZyBtZXRhZGF0YS5cIilcbiAgICAgICAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGV4dC5zZXRWYWx1ZShcIlwiICsgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1wb3J0ZXJOdW1UaHJlYWRzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgaW1wb3J0ZXJOdW1UaHJlYWRzOiBwYXJzZWQgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJJbXBvcnRlciBVdGlsaXphdGlvblwiKVxuICAgICAgICAgICAgLnNldERlc2MoXCJIb3cgbXVjaCBDUFUgdGltZSBlYWNoIGltcG9ydGVyIHRocmVhZCBzaG91bGQgdXNlLCBhcyBhIGZyYWN0aW9uICgwLjEgLSAxLjApLlwiKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmltcG9ydGVyVXRpbGl6YXRpb24udG9GaXhlZCgyKSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbWl0ZWQgPSBNYXRoLm1heCgwLjEsIE1hdGgubWluKDEuMCwgcGFyc2VkKSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgaW1wb3J0ZXJVdGlsaXphdGlvbjogbGltaXRlZCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIk1heGltdW0gUmVjdXJzaXZlIFJlbmRlciBEZXB0aFwiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJNYXhpbXVtIGRlcHRoIHRoYXQgb2JqZWN0cyB3aWxsIGJlIHJlbmRlcmVkIHRvIChpLmUuLCBob3cgbWFueSBsZXZlbHMgb2Ygc3VicHJvcGVydGllc1wiICtcbiAgICAgICAgICAgICAgICAgICAgXCJ3aWxsIGJlIHJlbmRlcmVkIGJ5IGRlZmF1bHQpLiBUaGlzIGF2b2lkcyBpbmZpbml0ZSByZWN1cnNpb24gZHVlIHRvIHNlbGYtcmVmZXJlbnRpYWwgb2JqZWN0c1wiICtcbiAgICAgICAgICAgICAgICAgICAgXCJhbmQgZW5zdXJlcyB0aGF0IHJlbmRlcmluZyBvYmplY3RzIGlzIGFjY2VwdGFibHkgcGVyZm9ybWFudC5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm1heFJlY3Vyc2l2ZVJlbmRlckRlcHRoLnRvU3RyaW5nKCkpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgbWF4UmVjdXJzaXZlUmVuZGVyRGVwdGg6IHBhcnNlZCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBuZXcgU2V0dGluZyh0aGlzLmNvbnRhaW5lckVsKVxuICAgICAgICAgICAgLnNldE5hbWUoXCJSZWN1cnNpdmUgc3VidGFzayBjb21wbGV0aW9uXCIpXG4gICAgICAgICAgICAuc2V0RGVzYyhcIldoZXRoZXIgb3Igbm90IHN1YnRhc2tzIHNob3VsZCBiZSBjb21wbGV0ZWQgYWxvbmcgd2l0aCB0aGVpciBwYXJlbnQgaW4gZGF0YWNvcmUgdGFzayB2aWV3c1wiKVxuICAgICAgICAgICAgLmFkZFRvZ2dsZSgodGIpID0+IHtcbiAgICAgICAgICAgICAgICB0Yi5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWN1cnNpdmVUYXNrQ29tcGxldGlvbikub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi51cGRhdGVTZXR0aW5ncyh7IHJlY3Vyc2l2ZVRhc2tDb21wbGV0aW9uOiB2YWwgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwgeyB0ZXh0OiBcIlRhc2tzXCIgfSk7XG5cbiAgICAgICAgbmV3IFNldHRpbmcodGhpcy5jb250YWluZXJFbClcbiAgICAgICAgICAgIC5zZXROYW1lKFwiVGFzayBDb21wbGV0aW9uIFRleHRcIilcbiAgICAgICAgICAgIC5zZXREZXNjKFwiTmFtZSBvZiBpbmxpbmUgZmllbGQgaW4gd2hpY2ggdG8gc3RvcmUgdGFzayBjb21wbGV0aW9uIGRhdGUvdGltZVwiKVxuICAgICAgICAgICAgLmFkZFRleHQoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0ZXh0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnRhc2tDb21wbGV0aW9uVGV4dCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnVwZGF0ZVNldHRpbmdzKHsgdGFza0NvbXBsZXRpb25UZXh0OiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBTZXR0aW5nKHRoaXMuY29udGFpbmVyRWwpXG4gICAgICAgICAgICAuc2V0TmFtZShcIlVzZSBFbW9qaSBTaG9ydGhhbmQgZm9yIFRhc2sgQ29tcGxldGlvblwiKVxuICAgICAgICAgICAgLnNldERlc2MoXG4gICAgICAgICAgICAgICAgXCJJZiBlbmFibGVkLCBhdXRvbWF0aWMgY29tcGxldGlvbiB3aWxsIHVzZSBhbiBlbW9qaSBzaG9ydGhhbmQgXHUyNzA1IFlZWVktTU0tRERcIiArXG4gICAgICAgICAgICAgICAgICAgIFwiaW5zdGVhZCBvZiBbY29tcGxldGlvbjo6IGRhdGVdLlwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkVG9nZ2xlKCh0YikgPT4ge1xuICAgICAgICAgICAgICAgIHRiLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnRhc2tDb21wbGV0aW9uVXNlRW1vamlTaG9ydGhhbmQpLm9uQ2hhbmdlKGFzeW5jICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4udXBkYXRlU2V0dGluZ3MoeyB0YXNrQ29tcGxldGlvblVzZUVtb2ppU2hvcnRoYW5kOiB2YWwgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IEluZm8gZnJvbSBcIi4vaW5mby5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4vem9uZS5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuL3pvbmVzL2ludmFsaWRab25lLmpzXCI7XG5pbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcblxuY29uc3QgVkVSU0lPTiA9IFwiMi41LjJcIjtcblxuZXhwb3J0IHtcbiAgVkVSU0lPTixcbiAgRGF0ZVRpbWUsXG4gIER1cmF0aW9uLFxuICBJbnRlcnZhbCxcbiAgSW5mbyxcbiAgWm9uZSxcbiAgRml4ZWRPZmZzZXRab25lLFxuICBJQU5BWm9uZSxcbiAgSW52YWxpZFpvbmUsXG4gIFN5c3RlbVpvbmUsXG4gIFNldHRpbmdzLFxufTtcbiIsICIvLyB0aGVzZSBhcmVuJ3QgcmVhbGx5IHByaXZhdGUsIGJ1dCBub3IgYXJlIHRoZXkgcmVhbGx5IHVzZWZ1bCB0byBkb2N1bWVudFxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIEx1eG9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRGF0ZVRpbWVFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBEYXRlVGltZTogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEludGVydmFsRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgSW50ZXJ2YWw6ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREdXJhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIER1cmF0aW9uOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZFVuaXRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih1bml0KSB7XG4gICAgc3VwZXIoYEludmFsaWQgdW5pdCAke3VuaXR9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEFyZ3VtZW50RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFpvbmVJc0Fic3RyYWN0RXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJab25lIGlzIGFuIGFic3RyYWN0IGNsYXNzXCIpO1xuICB9XG59XG4iLCAiLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmNvbnN0IG4gPSBcIm51bWVyaWNcIixcbiAgcyA9IFwic2hvcnRcIixcbiAgbCA9IFwibG9uZ1wiO1xuXG5leHBvcnQgY29uc3QgREFURV9TSE9SVCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IG4sXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TRUNPTkRTID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1NJTVBMRSA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICBob3VyQ3ljbGU6IFwiaDIzXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBzLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRUQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBzLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IGwsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuIiwgIi8qXG4gIFRoaXMgaXMganVzdCBhIGp1bmsgZHJhd2VyLCBjb250YWluaW5nIGFueXRoaW5nIHVzZWQgYWNyb3NzIG11bHRpcGxlIGNsYXNzZXMuXG4gIEJlY2F1c2UgTHV4b24gaXMgc21hbGwoaXNoKSwgdGhpcyBzaG91bGQgc3RheSBzbWFsbCBhbmQgd2Ugd29uJ3Qgd29ycnkgYWJvdXQgc3BsaXR0aW5nXG4gIGl0IHVwIGludG8sIHNheSwgcGFyc2luZ1V0aWwuanMgYW5kIGJhc2ljVXRpbC5qcyBhbmQgc28gb24uIEJ1dCB0aGV5IGFyZSBkaXZpZGVkIHVwIGJ5IGZlYXR1cmUgYXJlYS5cbiovXG5cbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy5qc1wiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuLy8gVFlQRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInVuZGVmaW5lZFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVnZXIobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwibnVtYmVyXCIgJiYgbyAlIDEgPT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyhvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZShvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykgPT09IFwiW29iamVjdCBEYXRlXVwiO1xufVxuXG4vLyBDQVBBQklMSVRJRVNcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1JlbGF0aXZlKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0eXBlb2YgSW50bCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhIUludGwuUmVsYXRpdmVUaW1lRm9ybWF0O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIE9CSkVDVFMgQU5EIEFSUkFZU1xuXG5leHBvcnQgZnVuY3Rpb24gbWF5YmVBcnJheSh0aGluZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGluZykgPyB0aGluZyA6IFt0aGluZ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiZXN0QnkoYXJyLCBieSwgY29tcGFyZSkge1xuICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGJlc3QsIG5leHQpID0+IHtcbiAgICBjb25zdCBwYWlyID0gW2J5KG5leHQpLCBuZXh0XTtcbiAgICBpZiAoIWJlc3QpIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH0gZWxzZSBpZiAoY29tcGFyZShiZXN0WzBdLCBwYWlyWzBdKSA9PT0gYmVzdFswXSkge1xuICAgICAgcmV0dXJuIGJlc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYWlyO1xuICAgIH1cbiAgfSwgbnVsbClbMV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrKG9iaiwga2V5cykge1xuICByZXR1cm4ga2V5cy5yZWR1Y2UoKGEsIGspID0+IHtcbiAgICBhW2tdID0gb2JqW2tdO1xuICAgIHJldHVybiBhO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG4vLyBOVU1CRVJTIEFORCBTVFJJTkdTXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyQmV0d2Vlbih0aGluZywgYm90dG9tLCB0b3ApIHtcbiAgcmV0dXJuIGlzSW50ZWdlcih0aGluZykgJiYgdGhpbmcgPj0gYm90dG9tICYmIHRoaW5nIDw9IHRvcDtcbn1cblxuLy8geCAlIG4gYnV0IHRha2VzIHRoZSBzaWduIG9mIG4gaW5zdGVhZCBvZiB4XG5leHBvcnQgZnVuY3Rpb24gZmxvb3JNb2QoeCwgbikge1xuICByZXR1cm4geCAtIG4gKiBNYXRoLmZsb29yKHggLyBuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZFN0YXJ0KGlucHV0LCBuID0gMikge1xuICBjb25zdCBpc05lZyA9IGlucHV0IDwgMDtcbiAgbGV0IHBhZGRlZDtcbiAgaWYgKGlzTmVnKSB7XG4gICAgcGFkZGVkID0gXCItXCIgKyAoXCJcIiArIC1pbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9IGVsc2Uge1xuICAgIHBhZGRlZCA9IChcIlwiICsgaW5wdXQpLnBhZFN0YXJ0KG4sIFwiMFwiKTtcbiAgfVxuICByZXR1cm4gcGFkZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlZ2VyKHN0cmluZykge1xuICBpZiAoaXNVbmRlZmluZWQoc3RyaW5nKSB8fCBzdHJpbmcgPT09IG51bGwgfHwgc3RyaW5nID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nLCAxMCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRmxvYXRpbmcoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cmluZyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWlsbGlzKGZyYWN0aW9uKSB7XG4gIC8vIFJldHVybiB1bmRlZmluZWQgKGluc3RlYWQgb2YgMCkgaW4gdGhlc2UgY2FzZXMsIHdoZXJlIGZyYWN0aW9uIGlzIG5vdCBzZXRcbiAgaWYgKGlzVW5kZWZpbmVkKGZyYWN0aW9uKSB8fCBmcmFjdGlvbiA9PT0gbnVsbCB8fCBmcmFjdGlvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZiA9IHBhcnNlRmxvYXQoXCIwLlwiICsgZnJhY3Rpb24pICogMTAwMDtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihmKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRUbyhudW1iZXIsIGRpZ2l0cywgdG93YXJkWmVybyA9IGZhbHNlKSB7XG4gIGNvbnN0IGZhY3RvciA9IDEwICoqIGRpZ2l0cyxcbiAgICByb3VuZGVyID0gdG93YXJkWmVybyA/IE1hdGgudHJ1bmMgOiBNYXRoLnJvdW5kO1xuICByZXR1cm4gcm91bmRlcihudW1iZXIgKiBmYWN0b3IpIC8gZmFjdG9yO1xufVxuXG4vLyBEQVRFIEJBU0lDU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gIGNvbnN0IG1vZE1vbnRoID0gZmxvb3JNb2QobW9udGggLSAxLCAxMikgKyAxLFxuICAgIG1vZFllYXIgPSB5ZWFyICsgKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG5cbiAgaWYgKG1vZE1vbnRoID09PSAyKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIobW9kWWVhcikgPyAyOSA6IDI4O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb2RNb250aCAtIDFdO1xuICB9XG59XG5cbi8vIGNvdmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGxvY2FsIHRpbWVzdGFtcCAoZXBvY2gsIGJ1dCB3aXRoIHRoZSBvZmZzZXQgYmFrZWQgaW4pXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9Mb2NhbFRTKG9iaikge1xuICBsZXQgZCA9IERhdGUuVVRDKFxuICAgIG9iai55ZWFyLFxuICAgIG9iai5tb250aCAtIDEsXG4gICAgb2JqLmRheSxcbiAgICBvYmouaG91cixcbiAgICBvYmoubWludXRlLFxuICAgIG9iai5zZWNvbmQsXG4gICAgb2JqLm1pbGxpc2Vjb25kXG4gICk7XG5cbiAgLy8gZm9yIGxlZ2FjeSByZWFzb25zLCB5ZWFycyBiZXR3ZWVuIDAgYW5kIDk5IGFyZSBpbnRlcnByZXRlZCBhcyAxOVhYOyByZXZlcnQgdGhhdFxuICBpZiAob2JqLnllYXIgPCAxMDAgJiYgb2JqLnllYXIgPj0gMCkge1xuICAgIGQgPSBuZXcgRGF0ZShkKTtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG4gIHJldHVybiArZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcikge1xuICBjb25zdCBwMSA9XG4gICAgICAod2Vla1llYXIgK1xuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gNCkgLVxuICAgICAgICBNYXRoLmZsb29yKHdlZWtZZWFyIC8gMTAwKSArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0MDApKSAlXG4gICAgICA3LFxuICAgIGxhc3QgPSB3ZWVrWWVhciAtIDEsXG4gICAgcDIgPSAobGFzdCArIE1hdGguZmxvb3IobGFzdCAvIDQpIC0gTWF0aC5mbG9vcihsYXN0IC8gMTAwKSArIE1hdGguZmxvb3IobGFzdCAvIDQwMCkpICUgNztcbiAgcmV0dXJuIHAxID09PSA0IHx8IHAyID09PSAzID8gNTMgOiA1Mjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXIpIHtcbiAgaWYgKHllYXIgPiA5OSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2UgcmV0dXJuIHllYXIgPiA2MCA/IDE5MDAgKyB5ZWFyIDogMjAwMCArIHllYXI7XG59XG5cbi8vIFBBUlNJTkdcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlWm9uZUluZm8odHMsIG9mZnNldEZvcm1hdCwgbG9jYWxlLCB0aW1lWm9uZSA9IG51bGwpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRzKSxcbiAgICBpbnRsT3B0cyA9IHtcbiAgICAgIGhvdXJDeWNsZTogXCJoMjNcIixcbiAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICB9O1xuXG4gIGlmICh0aW1lWm9uZSkge1xuICAgIGludGxPcHRzLnRpbWVab25lID0gdGltZVpvbmU7XG4gIH1cblxuICBjb25zdCBtb2RpZmllZCA9IHsgdGltZVpvbmVOYW1lOiBvZmZzZXRGb3JtYXQsIC4uLmludGxPcHRzIH07XG5cbiAgY29uc3QgcGFyc2VkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCBtb2RpZmllZClcbiAgICAuZm9ybWF0VG9QYXJ0cyhkYXRlKVxuICAgIC5maW5kKChtKSA9PiBtLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0aW1lem9uZW5hbWVcIik7XG4gIHJldHVybiBwYXJzZWQgPyBwYXJzZWQudmFsdWUgOiBudWxsO1xufVxuXG4vLyBzaWduZWRPZmZzZXQoJy01JywgJzMwJykgLT4gLTMzMFxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25lZE9mZnNldChvZmZIb3VyU3RyLCBvZmZNaW51dGVTdHIpIHtcbiAgbGV0IG9mZkhvdXIgPSBwYXJzZUludChvZmZIb3VyU3RyLCAxMCk7XG5cbiAgLy8gZG9uJ3QgfHwgdGhpcyBiZWNhdXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgLTBcbiAgaWYgKE51bWJlci5pc05hTihvZmZIb3VyKSkge1xuICAgIG9mZkhvdXIgPSAwO1xuICB9XG5cbiAgY29uc3Qgb2ZmTWluID0gcGFyc2VJbnQob2ZmTWludXRlU3RyLCAxMCkgfHwgMCxcbiAgICBvZmZNaW5TaWduZWQgPSBvZmZIb3VyIDwgMCB8fCBPYmplY3QuaXMob2ZmSG91ciwgLTApID8gLW9mZk1pbiA6IG9mZk1pbjtcbiAgcmV0dXJuIG9mZkhvdXIgKiA2MCArIG9mZk1pblNpZ25lZDtcbn1cblxuLy8gQ09FUkNJT05cblxuZXhwb3J0IGZ1bmN0aW9uIGFzTnVtYmVyKHZhbHVlKSB7XG4gIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiIHx8IHZhbHVlID09PSBcIlwiIHx8IE51bWJlci5pc05hTihudW1lcmljVmFsdWUpKVxuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCB1bml0IHZhbHVlICR7dmFsdWV9YCk7XG4gIHJldHVybiBudW1lcmljVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVyKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTtcbiAgZm9yIChjb25zdCB1IGluIG9iaikge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShvYmosIHUpKSB7XG4gICAgICBjb25zdCB2ID0gb2JqW3VdO1xuICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsKSBjb250aW51ZTtcbiAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplcih1KV0gPSBhc051bWJlcih2KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRPZmZzZXQob2Zmc2V0LCBmb3JtYXQpIHtcbiAgY29uc3QgaG91cnMgPSBNYXRoLnRydW5jKE1hdGguYWJzKG9mZnNldCAvIDYwKSksXG4gICAgbWludXRlcyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0ICUgNjApKSxcbiAgICBzaWduID0gb2Zmc2V0ID49IDAgPyBcIitcIiA6IFwiLVwiO1xuXG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX06JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7aG91cnN9JHttaW51dGVzID4gMCA/IGA6JHttaW51dGVzfWAgOiBcIlwifWA7XG4gICAgY2FzZSBcInRlY2hpZVwiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtwYWRTdGFydChob3VycywgMil9JHtwYWRTdGFydChtaW51dGVzLCAyKX1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVmFsdWUgZm9ybWF0ICR7Zm9ybWF0fSBpcyBvdXQgb2YgcmFuZ2UgZm9yIHByb3BlcnR5IGZvcm1hdGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lT2JqZWN0KG9iaikge1xuICByZXR1cm4gcGljayhvYmosIFtcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSk7XG59XG5cbmV4cG9ydCBjb25zdCBpYW5hUmVnZXggPVxuICAvW0EtWmEtel8rLV17MSwyNTZ9KD86Oj9cXC9bQS1aYS16MC05XystXXsxLDI1Nn0oPzpcXC9bQS1aYS16MC05XystXXsxLDI1Nn0pPyk/LztcbiIsICJpbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7IHBpY2sgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeShvYmopIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGNvbnN0IG1vbnRoc0xvbmcgPSBbXG4gIFwiSmFudWFyeVwiLFxuICBcIkZlYnJ1YXJ5XCIsXG4gIFwiTWFyY2hcIixcbiAgXCJBcHJpbFwiLFxuICBcIk1heVwiLFxuICBcIkp1bmVcIixcbiAgXCJKdWx5XCIsXG4gIFwiQXVndXN0XCIsXG4gIFwiU2VwdGVtYmVyXCIsXG4gIFwiT2N0b2JlclwiLFxuICBcIk5vdmVtYmVyXCIsXG4gIFwiRGVjZW1iZXJcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNTaG9ydCA9IFtcbiAgXCJKYW5cIixcbiAgXCJGZWJcIixcbiAgXCJNYXJcIixcbiAgXCJBcHJcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5cIixcbiAgXCJKdWxcIixcbiAgXCJBdWdcIixcbiAgXCJTZXBcIixcbiAgXCJPY3RcIixcbiAgXCJOb3ZcIixcbiAgXCJEZWNcIixcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHNOYXJyb3cgPSBbXCJKXCIsIFwiRlwiLCBcIk1cIiwgXCJBXCIsIFwiTVwiLCBcIkpcIiwgXCJKXCIsIFwiQVwiLCBcIlNcIiwgXCJPXCIsIFwiTlwiLCBcIkRcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb250aHMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi5tb250aHNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgY2FzZSBcIjItZGlnaXRcIjpcbiAgICAgIHJldHVybiBbXCIwMVwiLCBcIjAyXCIsIFwiMDNcIiwgXCIwNFwiLCBcIjA1XCIsIFwiMDZcIiwgXCIwN1wiLCBcIjA4XCIsIFwiMDlcIiwgXCIxMFwiLCBcIjExXCIsIFwiMTJcIl07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c0xvbmcgPSBbXG4gIFwiTW9uZGF5XCIsXG4gIFwiVHVlc2RheVwiLFxuICBcIldlZG5lc2RheVwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiRnJpZGF5XCIsXG4gIFwiU2F0dXJkYXlcIixcbiAgXCJTdW5kYXlcIixcbl07XG5cbmV4cG9ydCBjb25zdCB3ZWVrZGF5c1Nob3J0ID0gW1wiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCIsIFwiU3VuXCJdO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNOYXJyb3cgPSBbXCJNXCIsIFwiVFwiLCBcIldcIiwgXCJUXCIsIFwiRlwiLCBcIlNcIiwgXCJTXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLndlZWtkYXlzTG9uZ107XG4gICAgY2FzZSBcIm51bWVyaWNcIjpcbiAgICAgIHJldHVybiBbXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCJdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWVyaWRpZW1zID0gW1wiQU1cIiwgXCJQTVwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNMb25nID0gW1wiQmVmb3JlIENocmlzdFwiLCBcIkFubm8gRG9taW5pXCJdO1xuXG5leHBvcnQgY29uc3QgZXJhc1Nob3J0ID0gW1wiQkNcIiwgXCJBRFwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNOYXJyb3cgPSBbXCJCXCIsIFwiQVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVyYXMobGVuZ3RoKSB7XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi5lcmFzTG9uZ107XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJpZGllbUZvckRhdGVUaW1lKGR0KSB7XG4gIHJldHVybiBtZXJpZGllbXNbZHQuaG91ciA8IDEyID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIHdlZWtkYXlzKGxlbmd0aClbZHQud2Vla2RheSAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiBtb250aHMobGVuZ3RoKVtkdC5tb250aCAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJhRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gZXJhcyhsZW5ndGgpW2R0LnllYXIgPCAwID8gMCA6IDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVUaW1lKHVuaXQsIGNvdW50LCBudW1lcmljID0gXCJhbHdheXNcIiwgbmFycm93ID0gZmFsc2UpIHtcbiAgY29uc3QgdW5pdHMgPSB7XG4gICAgeWVhcnM6IFtcInllYXJcIiwgXCJ5ci5cIl0sXG4gICAgcXVhcnRlcnM6IFtcInF1YXJ0ZXJcIiwgXCJxdHIuXCJdLFxuICAgIG1vbnRoczogW1wibW9udGhcIiwgXCJtby5cIl0sXG4gICAgd2Vla3M6IFtcIndlZWtcIiwgXCJ3ay5cIl0sXG4gICAgZGF5czogW1wiZGF5XCIsIFwiZGF5XCIsIFwiZGF5c1wiXSxcbiAgICBob3VyczogW1wiaG91clwiLCBcImhyLlwiXSxcbiAgICBtaW51dGVzOiBbXCJtaW51dGVcIiwgXCJtaW4uXCJdLFxuICAgIHNlY29uZHM6IFtcInNlY29uZFwiLCBcInNlYy5cIl0sXG4gIH07XG5cbiAgY29uc3QgbGFzdGFibGUgPSBbXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdLmluZGV4T2YodW5pdCkgPT09IC0xO1xuXG4gIGlmIChudW1lcmljID09PSBcImF1dG9cIiAmJiBsYXN0YWJsZSkge1xuICAgIGNvbnN0IGlzRGF5ID0gdW5pdCA9PT0gXCJkYXlzXCI7XG4gICAgc3dpdGNoIChjb3VudCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvbW9ycm93XCIgOiBgbmV4dCAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBjYXNlIC0xOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInllc3RlcmRheVwiIDogYGxhc3QgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gaXNEYXkgPyBcInRvZGF5XCIgOiBgdGhpcyAke3VuaXRzW3VuaXRdWzBdfWA7XG4gICAgICBkZWZhdWx0OiAvLyBmYWxsIHRocm91Z2hcbiAgICB9XG4gIH1cblxuICBjb25zdCBpc0luUGFzdCA9IE9iamVjdC5pcyhjb3VudCwgLTApIHx8IGNvdW50IDwgMCxcbiAgICBmbXRWYWx1ZSA9IE1hdGguYWJzKGNvdW50KSxcbiAgICBzaW5ndWxhciA9IGZtdFZhbHVlID09PSAxLFxuICAgIGxpbFVuaXRzID0gdW5pdHNbdW5pdF0sXG4gICAgZm10VW5pdCA9IG5hcnJvd1xuICAgICAgPyBzaW5ndWxhclxuICAgICAgICA/IGxpbFVuaXRzWzFdXG4gICAgICAgIDogbGlsVW5pdHNbMl0gfHwgbGlsVW5pdHNbMV1cbiAgICAgIDogc2luZ3VsYXJcbiAgICAgID8gdW5pdHNbdW5pdF1bMF1cbiAgICAgIDogdW5pdDtcbiAgcmV0dXJuIGlzSW5QYXN0ID8gYCR7Zm10VmFsdWV9ICR7Zm10VW5pdH0gYWdvYCA6IGBpbiAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0cmluZyhrbm93bkZvcm1hdCkge1xuICAvLyB0aGVzZSBhbGwgaGF2ZSB0aGUgb2Zmc2V0cyByZW1vdmVkIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlbVxuICAvLyB3aXRob3V0IGFsbCB0aGUgaW50bCBzdHVmZiB0aGlzIGlzIGJhY2tmaWxsaW5nXG4gIGNvbnN0IGZpbHRlcmVkID0gcGljayhrbm93bkZvcm1hdCwgW1xuICAgICAgXCJ3ZWVrZGF5XCIsXG4gICAgICBcImVyYVwiLFxuICAgICAgXCJ5ZWFyXCIsXG4gICAgICBcIm1vbnRoXCIsXG4gICAgICBcImRheVwiLFxuICAgICAgXCJob3VyXCIsXG4gICAgICBcIm1pbnV0ZVwiLFxuICAgICAgXCJzZWNvbmRcIixcbiAgICAgIFwidGltZVpvbmVOYW1lXCIsXG4gICAgICBcImhvdXJDeWNsZVwiLFxuICAgIF0pLFxuICAgIGtleSA9IHN0cmluZ2lmeShmaWx0ZXJlZCksXG4gICAgZGF0ZVRpbWVIdWdlID0gXCJFRUVFLCBMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0ZVTEwpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX0hVR0UpOlxuICAgICAgcmV0dXJuIFwiRUVFRSwgTExMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1NJTVBMRSk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcImg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfU0lNUExFKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJISDptbTpzc1wiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUKTpcbiAgICAgIHJldHVybiBcIkhIOm1tXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9TSE9SVCk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eSwgaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRUQpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTCk6XG4gICAgICByZXR1cm4gXCJMTExMIGQsIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfSFVHRSk6XG4gICAgICByZXR1cm4gZGF0ZVRpbWVIdWdlO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIk0vZC95eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSk6XG4gICAgICByZXR1cm4gXCJFRUUsIGQgTExMIHl5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkVFRUUsIExMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRlVGltZUh1Z2U7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCAqIGFzIEZvcm1hdHMgZnJvbSBcIi4vZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHsgcGFkU3RhcnQgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVRva2VucyhzcGxpdHMsIHRva2VuVG9TdHJpbmcpIHtcbiAgbGV0IHMgPSBcIlwiO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHNwbGl0cykge1xuICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICBzICs9IHRva2VuLnZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcyArPSB0b2tlblRvU3RyaW5nKHRva2VuLnZhbCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzO1xufVxuXG5jb25zdCBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzID0ge1xuICBEOiBGb3JtYXRzLkRBVEVfU0hPUlQsXG4gIEREOiBGb3JtYXRzLkRBVEVfTUVELFxuICBEREQ6IEZvcm1hdHMuREFURV9GVUxMLFxuICBEREREOiBGb3JtYXRzLkRBVEVfSFVHRSxcbiAgdDogRm9ybWF0cy5USU1FX1NJTVBMRSxcbiAgdHQ6IEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFMsXG4gIHR0dDogRm9ybWF0cy5USU1FX1dJVEhfU0hPUlRfT0ZGU0VULFxuICB0dHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVCxcbiAgVDogRm9ybWF0cy5USU1FXzI0X1NJTVBMRSxcbiAgVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFMsXG4gIFRUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VULFxuICBUVFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCxcbiAgZjogRm9ybWF0cy5EQVRFVElNRV9TSE9SVCxcbiAgZmY6IEZvcm1hdHMuREFURVRJTUVfTUVELFxuICBmZmY6IEZvcm1hdHMuREFURVRJTUVfRlVMTCxcbiAgZmZmZjogRm9ybWF0cy5EQVRFVElNRV9IVUdFLFxuICBGOiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyxcbiAgRkY6IEZvcm1hdHMuREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUyxcbiAgRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTLFxuICBGRkZGOiBGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTLFxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm1hdHRlciB7XG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gbmV3IEZvcm1hdHRlcihsb2NhbGUsIG9wdHMpO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlRm9ybWF0KGZtdCkge1xuICAgIGxldCBjdXJyZW50ID0gbnVsbCxcbiAgICAgIGN1cnJlbnRGdWxsID0gXCJcIixcbiAgICAgIGJyYWNrZXRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHNwbGl0cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm10Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gZm10LmNoYXJBdChpKTtcbiAgICAgIGlmIChjID09PSBcIidcIikge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogYnJhY2tldGVkLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgICBjdXJyZW50RnVsbCA9IFwiXCI7XG4gICAgICAgIGJyYWNrZXRlZCA9ICFicmFja2V0ZWQ7XG4gICAgICB9IGVsc2UgaWYgKGJyYWNrZXRlZCkge1xuICAgICAgICBjdXJyZW50RnVsbCArPSBjO1xuICAgICAgfSBlbHNlIGlmIChjID09PSBjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRGdWxsICs9IGM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogZmFsc2UsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudEZ1bGwgPSBjO1xuICAgICAgICBjdXJyZW50ID0gYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudEZ1bGwubGVuZ3RoID4gMCkge1xuICAgICAgc3BsaXRzLnB1c2goeyBsaXRlcmFsOiBicmFja2V0ZWQsIHZhbDogY3VycmVudEZ1bGwgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwbGl0cztcbiAgfVxuXG4gIHN0YXRpYyBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKSB7XG4gICAgcmV0dXJuIG1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHNbdG9rZW5dO1xuICB9XG5cbiAgY29uc3RydWN0b3IobG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gZm9ybWF0T3B0cztcbiAgICB0aGlzLmxvYyA9IGxvY2FsZTtcbiAgICB0aGlzLnN5c3RlbUxvYyA9IG51bGw7XG4gIH1cblxuICBmb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgb3B0cykge1xuICAgIGlmICh0aGlzLnN5c3RlbUxvYyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeXN0ZW1Mb2MgPSB0aGlzLmxvYy5yZWRlZmF1bHRUb1N5c3RlbSgpO1xuICAgIH1cbiAgICBjb25zdCBkZiA9IHRoaXMuc3lzdGVtTG9jLmR0Rm9ybWF0dGVyKGR0LCB7IC4uLnRoaXMub3B0cywgLi4ub3B0cyB9KTtcbiAgICByZXR1cm4gZGYuZm9ybWF0KCk7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZShkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdCgpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWVQYXJ0cyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdFRvUGFydHMoKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucyhkdCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLnJlc29sdmVkT3B0aW9ucygpO1xuICB9XG5cbiAgbnVtKG4sIHAgPSAwKSB7XG4gICAgLy8gd2UgZ2V0IHNvbWUgcGVyZiBvdXQgb2YgZG9pbmcgdGhpcyBoZXJlLCBhbm5veWluZ2x5XG4gICAgaWYgKHRoaXMub3B0cy5mb3JjZVNpbXBsZSkge1xuICAgICAgcmV0dXJuIHBhZFN0YXJ0KG4sIHApO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdHMgPSB7IC4uLnRoaXMub3B0cyB9O1xuXG4gICAgaWYgKHAgPiAwKSB7XG4gICAgICBvcHRzLnBhZFRvID0gcDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2MubnVtYmVyRm9ybWF0dGVyKG9wdHMpLmZvcm1hdChuKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm10KSB7XG4gICAgY29uc3Qga25vd25FbmdsaXNoID0gdGhpcy5sb2MubGlzdGluZ01vZGUoKSA9PT0gXCJlblwiLFxuICAgICAgdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPSB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAmJiB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciAhPT0gXCJncmVnb3J5XCIsXG4gICAgICBzdHJpbmcgPSAob3B0cywgZXh0cmFjdCkgPT4gdGhpcy5sb2MuZXh0cmFjdChkdCwgb3B0cywgZXh0cmFjdCksXG4gICAgICBmb3JtYXRPZmZzZXQgPSAob3B0cykgPT4ge1xuICAgICAgICBpZiAoZHQuaXNPZmZzZXRGaXhlZCAmJiBkdC5vZmZzZXQgPT09IDAgJiYgb3B0cy5hbGxvd1opIHtcbiAgICAgICAgICByZXR1cm4gXCJaXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZHQuaXNWYWxpZCA/IGR0LnpvbmUuZm9ybWF0T2Zmc2V0KGR0LnRzLCBvcHRzLmZvcm1hdCkgOiBcIlwiO1xuICAgICAgfSxcbiAgICAgIG1lcmlkaWVtID0gKCkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLm1lcmlkaWVtRm9yRGF0ZVRpbWUoZHQpXG4gICAgICAgICAgOiBzdHJpbmcoeyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH0sIFwiZGF5cGVyaW9kXCIpLFxuICAgICAgbW9udGggPSAobGVuZ3RoLCBzdGFuZGFsb25lKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gubW9udGhGb3JEYXRlVGltZShkdCwgbGVuZ3RoKVxuICAgICAgICAgIDogc3RyaW5nKHN0YW5kYWxvbmUgPyB7IG1vbnRoOiBsZW5ndGggfSA6IHsgbW9udGg6IGxlbmd0aCwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpLFxuICAgICAgd2Vla2RheSA9IChsZW5ndGgsIHN0YW5kYWxvbmUpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC53ZWVrZGF5Rm9yRGF0ZVRpbWUoZHQsIGxlbmd0aClcbiAgICAgICAgICA6IHN0cmluZyhcbiAgICAgICAgICAgICAgc3RhbmRhbG9uZSA/IHsgd2Vla2RheTogbGVuZ3RoIH0gOiB7IHdlZWtkYXk6IGxlbmd0aCwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH0sXG4gICAgICAgICAgICAgIFwid2Vla2RheVwiXG4gICAgICAgICAgICApLFxuICAgICAgbWF5YmVNYWNybyA9ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4pO1xuICAgICAgICBpZiAoZm9ybWF0T3B0cykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFdpdGhTeXN0ZW1EZWZhdWx0KGR0LCBmb3JtYXRPcHRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcmEgPSAobGVuZ3RoKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2ggPyBFbmdsaXNoLmVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIDogc3RyaW5nKHsgZXJhOiBsZW5ndGggfSwgXCJlcmFcIiksXG4gICAgICB0b2tlblRvU3RyaW5nID0gKHRva2VuKSA9PiB7XG4gICAgICAgIC8vIFdoZXJlIHBvc3NpYmxlOiBodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXNcbiAgICAgICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgICAgIC8vIG1zXG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCk7XG4gICAgICAgICAgY2FzZSBcInVcIjpcbiAgICAgICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICAgICAgY2FzZSBcIlNTU1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbGxpc2Vjb25kLCAzKTtcbiAgICAgICAgICAvLyBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQpO1xuICAgICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnNlY29uZCwgMik7XG4gICAgICAgICAgLy8gZnJhY3Rpb25hbCBzZWNvbmRzXG4gICAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC5taWxsaXNlY29uZCAvIDEwKSwgMik7XG4gICAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQubWlsbGlzZWNvbmQgLyAxMDApKTtcbiAgICAgICAgICAvLyBtaW51dGVzXG4gICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUpO1xuICAgICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm1pbnV0ZSwgMik7XG4gICAgICAgICAgLy8gaG91cnNcbiAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LmhvdXIgJSAxMiA9PT0gMCA/IDEyIDogZHQuaG91ciAlIDEyKTtcbiAgICAgICAgICBjYXNlIFwiaGhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMiwgMik7XG4gICAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyKTtcbiAgICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyLCAyKTtcbiAgICAgICAgICAvLyBvZmZzZXRcbiAgICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArNlxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE9mZnNldCh7IGZvcm1hdDogXCJuYXJyb3dcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSArMDY6MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwic2hvcnRcIiwgYWxsb3daOiB0aGlzLm9wdHMuYWxsb3daIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzA2MDBcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwidGVjaGllXCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFU1RcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcInNob3J0XCIsIGxvY2FsZTogdGhpcy5sb2MubG9jYWxlIH0pO1xuICAgICAgICAgIGNhc2UgXCJaWlpaWlwiOlxuICAgICAgICAgICAgLy8gbGlrZSBFYXN0ZXJuIFN0YW5kYXJkIFRpbWVcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lLm9mZnNldE5hbWUoZHQudHMsIHsgZm9ybWF0OiBcImxvbmdcIiwgbG9jYWxlOiB0aGlzLmxvYy5sb2NhbGUgfSk7XG4gICAgICAgICAgLy8gem9uZVxuICAgICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAgICAgICAgICAgIHJldHVybiBkdC56b25lTmFtZTtcbiAgICAgICAgICAvLyBtZXJpZGllbXNcbiAgICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgICAgcmV0dXJuIG1lcmlkaWVtKCk7XG4gICAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgZGF5OiBcIm51bWVyaWNcIiB9LCBcImRheVwiKSA6IHRoaXMubnVtKGR0LmRheSk7XG4gICAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXIgPyBzdHJpbmcoeyBkYXk6IFwiMi1kaWdpdFwiIH0sIFwiZGF5XCIpIDogdGhpcy5udW0oZHQuZGF5LCAyKTtcbiAgICAgICAgICAvLyB3ZWVrZGF5cyAtIHN0YW5kYWxvbmVcbiAgICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXNkYXknXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcImxvbmdcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImNjY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gd2Vla2RheXMgLSBmb3JtYXRcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla2RheSk7XG4gICAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlcydcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzZGF5J1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJsb25nXCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiRUVFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1QnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcIm5hcnJvd1wiLCBmYWxzZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gc3RhbmRhbG9uZVxuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIm51bWVyaWNcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpO1xuICAgICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMSwgZG9lc24ndCBzZWVtIHRvIHdvcmtcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIjItZGlnaXRcIiwgZGF5OiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgsIDIpO1xuICAgICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFuXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJzaG9ydFwiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5XG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJsb25nXCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJMTExMTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgdHJ1ZSk7XG4gICAgICAgICAgLy8gbW9udGhzIC0gZm9ybWF0XG4gICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwibnVtZXJpY1wiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCk7XG4gICAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCIyLWRpZ2l0XCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTtcbiAgICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphblxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwic2hvcnRcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphbnVhcnlcbiAgICAgICAgICAgIHJldHVybiBtb250aChcImxvbmdcIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCJNTU1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKXG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJuYXJyb3dcIiwgZmFsc2UpO1xuICAgICAgICAgIC8vIHllYXJzXG4gICAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMjAxNFxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpIDogdGhpcy5udW0oZHQueWVhcik7XG4gICAgICAgICAgY2FzZSBcInl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDE0XG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIjItZGlnaXRcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTtcbiAgICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMDEyXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyB5ZWFyOiBcIm51bWVyaWNcIiB9LCBcInllYXJcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC55ZWFyLCA0KTtcbiAgICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDAwMDAxMlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhciwgNik7XG4gICAgICAgICAgLy8gZXJhc1xuICAgICAgICAgIGNhc2UgXCJHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFEXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwic2hvcnRcIik7XG4gICAgICAgICAgY2FzZSBcIkdHXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEFubm8gRG9taW5pXG4gICAgICAgICAgICByZXR1cm4gZXJhKFwibG9uZ1wiKTtcbiAgICAgICAgICBjYXNlIFwiR0dHR0dcIjpcbiAgICAgICAgICAgIHJldHVybiBlcmEoXCJuYXJyb3dcIik7XG4gICAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIudG9TdHJpbmcoKS5zbGljZSgtMiksIDIpO1xuICAgICAgICAgIGNhc2UgXCJra2trXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla1llYXIsIDQpO1xuICAgICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlcik7XG4gICAgICAgICAgY2FzZSBcIldXXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQud2Vla051bWJlciwgMik7XG4gICAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5vcmRpbmFsKTtcbiAgICAgICAgICBjYXNlIFwib29vXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCwgMyk7XG4gICAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIpO1xuICAgICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnF1YXJ0ZXIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJYXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oTWF0aC5mbG9vcihkdC50cyAvIDEwMDApKTtcbiAgICAgICAgICBjYXNlIFwieFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LnRzKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWFjcm8odG9rZW4pO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSwgdG9rZW5Ub1N0cmluZyk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbkZyb21TdHJpbmcoZHVyLCBmbXQpIHtcbiAgICBjb25zdCB0b2tlblRvRmllbGQgPSAodG9rZW4pID0+IHtcbiAgICAgICAgc3dpdGNoICh0b2tlblswXSkge1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtaWxsaXNlY29uZFwiO1xuICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICAgIHJldHVybiBcIndlZWtcIjtcbiAgICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgICAgICBjYXNlIFwieVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwieWVhclwiO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRva2VuVG9TdHJpbmcgPSAobGlsZHVyKSA9PiAodG9rZW4pID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkID0gdG9rZW5Ub0ZpZWxkKHRva2VuKTtcbiAgICAgICAgaWYgKG1hcHBlZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm51bShsaWxkdXIuZ2V0KG1hcHBlZCksIHRva2VuLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5zID0gRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksXG4gICAgICByZWFsVG9rZW5zID0gdG9rZW5zLnJlZHVjZShcbiAgICAgICAgKGZvdW5kLCB7IGxpdGVyYWwsIHZhbCB9KSA9PiAobGl0ZXJhbCA/IGZvdW5kIDogZm91bmQuY29uY2F0KHZhbCkpLFxuICAgICAgICBbXVxuICAgICAgKSxcbiAgICAgIGNvbGxhcHNlZCA9IGR1ci5zaGlmdFRvKC4uLnJlYWxUb2tlbnMubWFwKHRva2VuVG9GaWVsZCkuZmlsdGVyKCh0KSA9PiB0KSk7XG4gICAgcmV0dXJuIHN0cmluZ2lmeVRva2Vucyh0b2tlbnMsIHRva2VuVG9TdHJpbmcoY29sbGFwc2VkKSk7XG4gIH1cbn1cbiIsICJleHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkIHtcbiAgY29uc3RydWN0b3IocmVhc29uLCBleHBsYW5hdGlvbikge1xuICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICAgIHRoaXMuZXhwbGFuYXRpb24gPSBleHBsYW5hdGlvbjtcbiAgfVxuXG4gIHRvTWVzc2FnZSgpIHtcbiAgICBpZiAodGhpcy5leHBsYW5hdGlvbikge1xuICAgICAgcmV0dXJuIGAke3RoaXMucmVhc29ufTogJHt0aGlzLmV4cGxhbmF0aW9ufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYXNvbjtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBab25lSXNBYnN0cmFjdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQGludGVyZmFjZVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBab25lIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHpvbmVcbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgdHlwZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgem9uZS5cbiAgICogQGFic3RyYWN0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgZ2V0IGlhbmFOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBvZmZzZXQgaXMga25vd24gdG8gYmUgZml4ZWQgZm9yIHRoZSB3aG9sZSB5ZWFyLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLiBBY2NlcHRzICdsb25nJyBvciAnc2hvcnQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5sb2NhbGUgLSBXaGF0IGxvY2FsZSB0byByZXR1cm4gdGhlIG9mZnNldCBuYW1lIGluLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBvZmZzZXROYW1lKHRzLCBvcHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyB2YWx1ZSBhcyBhIHN0cmluZ1xuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBnZXQgdGhlIG9mZnNldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHlcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gY29tcHV0ZSB0aGUgb2Zmc2V0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIG9mZnNldCh0cykge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgdmFsaWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHBhcnNlWm9uZUluZm8gfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lXG4gICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBTeXN0ZW1ab25lKCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkge1xuICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgcmV0dXJuIC1uZXcgRGF0ZSh0cykuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwic3lzdGVtXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbywgaXNVbmRlZmluZWQsIG9ialRvTG9jYWxUUyB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBkdGZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gbWFrZURURih6b25lKSB7XG4gIGlmICghZHRmQ2FjaGVbem9uZV0pIHtcbiAgICBkdGZDYWNoZVt6b25lXSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiB6b25lLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgc2Vjb25kOiBcIjItZGlnaXRcIixcbiAgICAgIGVyYTogXCJzaG9ydFwiLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBkdGZDYWNoZVt6b25lXTtcbn1cblxuY29uc3QgdHlwZVRvUG9zID0ge1xuICB5ZWFyOiAwLFxuICBtb250aDogMSxcbiAgZGF5OiAyLFxuICBlcmE6IDMsXG4gIGhvdXI6IDQsXG4gIG1pbnV0ZTogNSxcbiAgc2Vjb25kOiA2LFxufTtcblxuZnVuY3Rpb24gaGFja3lPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIGNvbnN0IGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXQoZGF0ZSkucmVwbGFjZSgvXFx1MjAwRS9nLCBcIlwiKSxcbiAgICBwYXJzZWQgPSAvKFxcZCspXFwvKFxcZCspXFwvKFxcZCspIChBRHxCQyksPyAoXFxkKyk6KFxcZCspOihcXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLFxuICAgIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZhZE9yQmMsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZDtcbiAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmYWRPckJjLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICBjb25zdCBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcbiAgY29uc3QgZmlsbGVkID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gZm9ybWF0dGVkW2ldO1xuICAgIGNvbnN0IHBvcyA9IHR5cGVUb1Bvc1t0eXBlXTtcblxuICAgIGlmICh0eXBlID09PSBcImVyYVwiKSB7XG4gICAgICBmaWxsZWRbcG9zXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbGxlZDtcbn1cblxubGV0IGlhbmFab25lQ2FjaGUgPSB7fTtcbi8qKlxuICogQSB6b25lIGlkZW50aWZpZWQgYnkgYW4gSUFOQSBpZGVudGlmaWVyLCBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJQU5BWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWVcbiAgICogQHJldHVybiB7SUFOQVpvbmV9XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKG5hbWUpIHtcbiAgICBpZiAoIWlhbmFab25lQ2FjaGVbbmFtZV0pIHtcbiAgICAgIGlhbmFab25lQ2FjaGVbbmFtZV0gPSBuZXcgSUFOQVpvbmUobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgaWFuYVpvbmVDYWNoZSA9IHt9O1xuICAgIGR0ZkNhY2hlID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBzcGVjaWZpZXIuIFRoaXMgb25seSBjaGVja3MgdGhlIHN0cmluZydzIGZvcm1hdCwgbm90IHRoYXQgdGhlIHNwZWNpZmllciBpZGVudGlmaWVzIGEga25vd24gem9uZTsgc2VlIGlzVmFsaWRab25lIGZvciB0aGF0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBzdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIkFtZXJpY2EvTmV3X1lvcmtcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJTcG9ydH5+YmxvcnBcIikgLy89PiBmYWxzZVxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlIGZvciBzb21lIHZhbGlkIElBTkEgbmFtZXMuIFVzZSBpc1ZhbGlkWm9uZSBpbnN0ZWFkLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTcGVjaWZpZXIocykge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRab25lKHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlkZW50aWZpZXMgYSByZWFsIHpvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBUaGUgc3RyaW5nIHRvIGNoZWNrXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiBmYWxzZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFpvbmUoem9uZSkge1xuICAgIGlmICghem9uZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7IHRpbWVab25lOiB6b25lIH0pLmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnpvbmVOYW1lID0gbmFtZTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaWFuYVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlLCB0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCh0cykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZSkpIHJldHVybiBOYU47XG5cbiAgICBjb25zdCBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSk7XG4gICAgbGV0IFt5ZWFyLCBtb250aCwgZGF5LCBhZE9yQmMsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kXSA9IGR0Zi5mb3JtYXRUb1BhcnRzXG4gICAgICA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSlcbiAgICAgIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKTtcblxuICAgIGlmIChhZE9yQmMgPT09IFwiQkNcIikge1xuICAgICAgeWVhciA9IC1NYXRoLmFicyh5ZWFyKSArIDE7XG4gICAgfVxuXG4gICAgLy8gYmVjYXVzZSB3ZSdyZSB1c2luZyBob3VyMTIgYW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEwMjU1NjQmY2FuPTImcT0lMjIyNCUzQTAwJTIyJTIwZGF0ZXRpbWVmb3JtYXRcbiAgICBjb25zdCBhZGp1c3RlZEhvdXIgPSBob3VyID09PSAyNCA/IDAgOiBob3VyO1xuXG4gICAgY29uc3QgYXNVVEMgPSBvYmpUb0xvY2FsVFMoe1xuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5LFxuICAgICAgaG91cjogYWRqdXN0ZWRIb3VyLFxuICAgICAgbWludXRlLFxuICAgICAgc2Vjb25kLFxuICAgICAgbWlsbGlzZWNvbmQ6IDAsXG4gICAgfSk7XG5cbiAgICBsZXQgYXNUUyA9ICtkYXRlO1xuICAgIGNvbnN0IG92ZXIgPSBhc1RTICUgMTAwMDtcbiAgICBhc1RTIC09IG92ZXIgPj0gMCA/IG92ZXIgOiAxMDAwICsgb3ZlcjtcbiAgICByZXR1cm4gKGFzVVRDIC0gYXNUUykgLyAoNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiaWFuYVwiICYmIG90aGVyWm9uZS5uYW1lID09PSB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZDtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgc2lnbmVkT2Zmc2V0IH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxubGV0IHNpbmdsZXRvbiA9IG51bGw7XG5cbi8qKlxuICogQSB6b25lIHdpdGggYSBmaXhlZCBvZmZzZXQgKG1lYW5pbmcgbm8gRFNUKVxuICogQGltcGxlbWVudHMge1pvbmV9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpeGVkT2Zmc2V0Wm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIFVUQ1xuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IHV0Y0luc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBGaXhlZE9mZnNldFpvbmUoMCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgLSBUaGUgb2Zmc2V0IGluIG1pbnV0ZXNcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIGluc3RhbmNlKG9mZnNldCkge1xuICAgIHJldHVybiBvZmZzZXQgPT09IDAgPyBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2UgOiBuZXcgRml4ZWRPZmZzZXRab25lKG9mZnNldCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGluc3RhbmNlIG9mIEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIGEgVVRDIG9mZnNldCBzdHJpbmcsIGxpa2UgXCJVVEMrNlwiXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzIC0gVGhlIG9mZnNldCBzdHJpbmcgdG8gcGFyc2VcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzZcIilcbiAgICogQGV4YW1wbGUgRml4ZWRPZmZzZXRab25lLnBhcnNlU3BlY2lmaWVyKFwiVVRDKzA2XCIpXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQy02OjAwXCIpXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBwYXJzZVNwZWNpZmllcihzKSB7XG4gICAgaWYgKHMpIHtcbiAgICAgIGNvbnN0IHIgPSBzLm1hdGNoKC9edXRjKD86KFsrLV1cXGR7MSwyfSkoPzo6KFxcZHsyfSkpPyk/JC9pKTtcbiAgICAgIGlmIChyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRml4ZWRPZmZzZXRab25lKHNpZ25lZE9mZnNldChyWzFdLCByWzJdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3Iob2Zmc2V0KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy5maXhlZCA9IG9mZnNldDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImZpeGVkXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZCA9PT0gMCA/IFwiVVRDXCIgOiBgVVRDJHtmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgfVxuXG4gIGdldCBpYW5hTmFtZSgpIHtcbiAgICBpZiAodGhpcy5maXhlZCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiRXRjL1VUQ1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYEV0Yy9HTVQke2Zvcm1hdE9mZnNldCgtdGhpcy5maXhlZCwgXCJuYXJyb3dcIil9YDtcbiAgICB9XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiZml4ZWRcIiAmJiBvdGhlclpvbmUuZml4ZWQgPT09IHRoaXMuZml4ZWQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbi8qKlxuICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUge1xuICBjb25zdHJ1Y3Rvcih6b25lTmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqICBAcHJpdmF0ZSAqL1xuICAgIHRoaXMuem9uZU5hbWUgPSB6b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuLi96b25lcy9pbnZhbGlkWm9uZS5qc1wiO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNTdHJpbmcsIGlzTnVtYmVyIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHtcbiAgbGV0IG9mZnNldDtcbiAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIFpvbmUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoaW5wdXQpKSB7XG4gICAgY29uc3QgbG93ZXJlZCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyZWQgPT09IFwibG9jYWxcIiB8fCBsb3dlcmVkID09PSBcInN5c3RlbVwiKSByZXR1cm4gZGVmYXVsdFpvbmU7XG4gICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gXCJ1dGNcIiB8fCBsb3dlcmVkID09PSBcImdtdFwiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dC5vZmZzZXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIFRoaXMgaXMgZHVtYiwgYnV0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIGFib3ZlIGRvZXNuJ3Qgc2VlbSB0byByZWFsbHkgd29ya1xuICAgIC8vIHNvIHdlJ3JlIGR1Y2sgY2hlY2tpbmcgaXRcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBJbnZhbGlkWm9uZShpbnB1dCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxubGV0IG5vdyA9ICgpID0+IERhdGUubm93KCksXG4gIGRlZmF1bHRab25lID0gXCJzeXN0ZW1cIixcbiAgZGVmYXVsdExvY2FsZSA9IG51bGwsXG4gIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLFxuICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLFxuICB0aHJvd09uSW52YWxpZDtcblxuLyoqXG4gKiBTZXR0aW5ncyBjb250YWlucyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0IGNvbnRyb2wgTHV4b24ncyBvdmVyYWxsIGJlaGF2aW9yLiBMdXhvbiBpcyBhIHNpbXBsZSBsaWJyYXJ5IHdpdGggZmV3IG9wdGlvbnMsIGJ1dCB0aGUgb25lcyBpdCBkb2VzIGhhdmUgbGl2ZSBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLlxuICAgKiBAdHlwZSB7ZnVuY3Rpb259XG4gICAqL1xuICBzdGF0aWMgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50XG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICogQGV4YW1wbGUgU2V0dGluZ3Mubm93ID0gKCkgPT4gRGF0ZS5ub3coKSArIDMwMDAgLy8gcHJldGVuZCBpdCBpcyAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWVcbiAgICovXG4gIHN0YXRpYyBzZXQgbm93KG4pIHtcbiAgICBub3cgPSBuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgdG8gY3JlYXRlIERhdGVUaW1lcyBpbi4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogVXNlIHRoZSB2YWx1ZSBcInN5c3RlbVwiIHRvIHJlc2V0IHRoaXMgdmFsdWUgdG8gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdFpvbmUoem9uZSkge1xuICAgIGRlZmF1bHRab25lID0gem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgc3lzdGVtJ3MgdGltZSB6b25lICh0aGUgb25lIHNldCBvbiB0aGUgbWFjaGluZSB0aGF0IHJ1bnMgdGhpcyBjb2RlKS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRab25lKCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdExvY2FsZShsb2NhbGUpIHtcbiAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyaW5nIHN5c3RlbSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0obnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHRPdXRwdXRDYWxlbmRhcihvdXRwdXRDYWxlbmRhcikge1xuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgdGhyb3dPbkludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRocm93T25JbnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQodCkge1xuICAgIHRocm93T25JbnZhbGlkID0gdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBMdXhvbidzIGdsb2JhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyByZXNldENhY2hlcygpIHtcbiAgICBMb2NhbGUucmVzZXRDYWNoZSgpO1xuICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHBhZFN0YXJ0LCByb3VuZFRvLCBoYXNSZWxhdGl2ZSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vLyB0b2RvIC0gcmVtYXAgY2FjaGluZ1xuXG5sZXQgaW50bExGQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZExGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGR0ZiA9IGludGxMRkNhY2hlW2tleV07XG4gIGlmICghZHRmKSB7XG4gICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxMRkNhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxEVENhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bERUQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxOdW1DYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkSU5GKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxOdW1DYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxOdW1DYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBpbnRsUmVsQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZFJURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9uc1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxSZWxDYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxSZWxDYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBzeXNMb2NhbGVDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7XG4gIGlmIChzeXNMb2NhbGVDYWNoZSkge1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBzeXNMb2NhbGVDYWNoZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlO1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGVTdHIpIHtcbiAgLy8gSSByZWFsbHkgd2FudCB0byBhdm9pZCB3cml0aW5nIGEgQkNQIDQ3IHBhcnNlclxuICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDdcbiAgLy8gSW5zdGVhZCwgd2UnbGwgZG8gdGhpczpcblxuICAvLyBhKSBpZiB0aGUgc3RyaW5nIGhhcyBubyAtdSBleHRlbnNpb25zLCBqdXN0IGxlYXZlIGl0IGFsb25lXG4gIC8vIGIpIGlmIGl0IGRvZXMsIHVzZSBJbnRsIHRvIHJlc29sdmUgZXZlcnl0aGluZ1xuICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXVcblxuICBjb25zdCB1SW5kZXggPSBsb2NhbGVTdHIuaW5kZXhPZihcIi11LVwiKTtcbiAgaWYgKHVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gW2xvY2FsZVN0cl07XG4gIH0gZWxzZSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTtcbiAgICB0cnkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG9wdGlvbnMgPSBnZXRDYWNoZWREVEYoc21hbGxlcikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zO1xuICAgIC8vIHJldHVybiB0aGUgc21hbGxlciBvbmUgc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHRoZSBjYWxlbmRhciBhbmQgbnVtYmVyaW5nIG92ZXJyaWRlcyB0byBpdFxuICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07XG4gIH1cbn1cblxuZnVuY3Rpb24gaW50bENvbmZpZ1N0cmluZyhsb2NhbGVTdHIsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpIHtcbiAgaWYgKG91dHB1dENhbGVuZGFyIHx8IG51bWJlcmluZ1N5c3RlbSkge1xuICAgIGxvY2FsZVN0ciArPSBcIi11XCI7XG5cbiAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLWNhLSR7b3V0cHV0Q2FsZW5kYXJ9YDtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlU3RyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwTW9udGhzKGYpIHtcbiAgY29uc3QgbXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTI7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIGksIDEpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbWFwV2Vla2RheXMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMgKyBpKTtcbiAgICBtcy5wdXNoKGYoZHQpKTtcbiAgfVxuICByZXR1cm4gbXM7XG59XG5cbmZ1bmN0aW9uIGxpc3RTdHVmZihsb2MsIGxlbmd0aCwgZGVmYXVsdE9LLCBlbmdsaXNoRm4sIGludGxGbikge1xuICBjb25zdCBtb2RlID0gbG9jLmxpc3RpbmdNb2RlKGRlZmF1bHRPSyk7XG5cbiAgaWYgKG1vZGUgPT09IFwiZXJyb3JcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZW5cIikge1xuICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydHNGYXN0TnVtYmVycyhsb2MpIHtcbiAgaWYgKGxvYy5udW1iZXJpbmdTeXN0ZW0gJiYgbG9jLm51bWJlcmluZ1N5c3RlbSAhPT0gXCJsYXRuXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiIHx8XG4gICAgICAhbG9jLmxvY2FsZSB8fFxuICAgICAgbG9jLmxvY2FsZS5zdGFydHNXaXRoKFwiZW5cIikgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7XG4gICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDtcbiAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTtcblxuICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW50bE9wdHMgPSB7IHVzZUdyb3VwaW5nOiBmYWxzZSwgLi4ub3B0cyB9O1xuICAgICAgaWYgKG9wdHMucGFkVG8gPiAwKSBpbnRsT3B0cy5taW5pbXVtSW50ZWdlckRpZ2l0cyA9IG9wdHMucGFkVG87XG4gICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0KGkpIHtcbiAgICBpZiAodGhpcy5pbmYpIHtcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiBpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5mLmZvcm1hdChmaXhlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRvIG1hdGNoIHRoZSBicm93c2VyJ3MgbnVtYmVyZm9ybWF0dGVyIGRlZmF1bHRzXG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogcm91bmRUbyhpLCAzKTtcbiAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5RGF0ZUZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIGxldCB6O1xuICAgIGlmIChkdC56b25lLmlzVW5pdmVyc2FsKSB7XG4gICAgICAvLyBVVEMtOCBvciBFdGMvVVRDLTggYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YSwgb25seSBFdGMvR01UKzggYW5kIHRoZSBsaWtlLlxuICAgICAgLy8gVGhhdCBpcyB3aHkgZml4ZWQtb2Zmc2V0IFRaIGlzIHNldCB0byB0aGF0IHVubGVzcyBpdCBpczpcbiAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULlxuICAgICAgLy8gMi4gVW5zdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXI6XG4gICAgICAvLyAgICAtIHNvbWUgZG8gbm90IHN1cHBvcnQgRXRjL1xuICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhXG4gICAgICBjb25zdCBnbXRPZmZzZXQgPSAtMSAqIChkdC5vZmZzZXQgLyA2MCk7XG4gICAgICBjb25zdCBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyBgRXRjL0dNVCske2dtdE9mZnNldH1gIDogYEV0Yy9HTVQke2dtdE9mZnNldH1gO1xuICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHtcbiAgICAgICAgeiA9IG9mZnNldFo7XG4gICAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBhbGwgZml4ZWQtb2Zmc2V0IHpvbmVzIGxpa2UgRXRjLys0OjMwIGFyZSBwcmVzZW50IGluIHR6ZGF0YS5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBtYWtlIGRvLiBUd28gY2FzZXM6XG4gICAgICAgIC8vIDEuIFRoZSBmb3JtYXQgb3B0aW9ucyB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFdlIGNhbid0IGRvIHRoYXQsIHNvIHRoZSBiZXN0XG4gICAgICAgIC8vIHdlIGNhbiBkbyBpcyBmb3JtYXQgdGhlIGRhdGUgaW4gVVRDLlxuICAgICAgICAvLyAyLiBUaGUgZm9ybWF0IG9wdGlvbnMgZG9uJ3QgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBUaGVuIHdlIGNhbiBhZGp1c3QgdGhlbVxuICAgICAgICAvLyB0aGUgdGltZSBhbmQgdGVsbCB0aGUgZm9ybWF0dGVyIHRvIHNob3cgaXQgdG8gdXMgaW4gVVRDLCBzbyB0aGF0IHRoZSB0aW1lIGlzIHJpZ2h0XG4gICAgICAgIC8vIGFuZCB0aGUgYmFkIHpvbmUgZG9lc24ndCBzaG93IHVwLlxuICAgICAgICB6ID0gXCJVVENcIjtcbiAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09IFwic3lzdGVtXCIpIHtcbiAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgeiA9IGR0LnpvbmUubmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRsT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG4gICAgaWYgKHopIHtcbiAgICAgIGludGxPcHRzLnRpbWVab25lID0gejtcbiAgICB9XG4gICAgdGhpcy5kdGYgPSBnZXRDYWNoZWREVEYoaW50bCwgaW50bE9wdHMpO1xuICB9XG5cbiAgZm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXQodGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdFRvUGFydHModGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBQb2x5UmVsRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0geyBzdHlsZTogXCJsb25nXCIsIC4uLm9wdHMgfTtcbiAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7XG4gICAgICB0aGlzLnJ0ZiA9IGdldENhY2hlZFJURihpbnRsLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW5nbGlzaC5mb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIHRoaXMub3B0cy5udW1lcmljLCB0aGlzLm9wdHMuc3R5bGUgIT09IFwibG9uZ1wiKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KSB7XG4gICAgaWYgKHRoaXMucnRmKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsZSB7XG4gIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7XG4gICAgLy8gdGhlIHN5c3RlbSBsb2NhbGUgaXMgdXNlZnVsIGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzIGJ1dCBhbm5veWluZyBmb3IgcGFyc2luZy9mb3JtYXR0aW5nIGtub3duIGZvcm1hdHNcbiAgICBjb25zdCBsb2NhbGVSID0gc3BlY2lmaWVkTG9jYWxlIHx8IChkZWZhdWx0VG9FTiA/IFwiZW4tVVNcIiA6IHN5c3RlbUxvY2FsZSgpKTtcbiAgICBjb25zdCBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07XG4gICAgY29uc3Qgb3V0cHV0Q2FsZW5kYXJSID0gb3V0cHV0Q2FsZW5kYXIgfHwgU2V0dGluZ3MuZGVmYXVsdE91dHB1dENhbGVuZGFyO1xuICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldENhY2hlKCkge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbiAgICBpbnRsRFRDYWNoZSA9IHt9O1xuICAgIGludGxOdW1DYWNoZSA9IHt9O1xuICAgIGludGxSZWxDYWNoZSA9IHt9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgbnVtYmVyaW5nLCBvdXRwdXRDYWxlbmRhciwgc3BlY2lmaWVkTG9jYWxlKSB7XG4gICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpO1xuXG4gICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7XG4gICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPSBudW1iZXJpbmcgfHwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtIHx8IG51bGw7XG4gICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyIHx8IHBhcnNlZE91dHB1dENhbGVuZGFyIHx8IG51bGw7XG4gICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpO1xuXG4gICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9O1xuICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tZXJpZGllbUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLmVyYUNhY2hlID0ge307XG5cbiAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTtcbiAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gbnVsbDtcbiAgfVxuXG4gIGdldCBmYXN0TnVtYmVycygpIHtcbiAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gc3VwcG9ydHNGYXN0TnVtYmVycyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZDtcbiAgfVxuXG4gIGxpc3RpbmdNb2RlKCkge1xuICAgIGNvbnN0IGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7XG4gICAgY29uc3QgaGFzTm9XZWlyZG5lc3MgPVxuICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBcImxhdG5cIikgJiZcbiAgICAgICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IFwiZ3JlZ29yeVwiKTtcbiAgICByZXR1cm4gaXNBY3R1YWxseUVuICYmIGhhc05vV2VpcmRuZXNzID8gXCJlblwiIDogXCJpbnRsXCI7XG4gIH1cblxuICBjbG9uZShhbHRzKSB7XG4gICAgaWYgKCFhbHRzIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFsdHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKFxuICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSxcbiAgICAgICAgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhcixcbiAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IHRydWUgfSk7XG4gIH1cblxuICByZWRlZmF1bHRUb1N5c3RlbShhbHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTtcbiAgfVxuXG4gIG1vbnRocyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5tb250aHMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQgPyB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7XG4gICAgICAgIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwTW9udGhzKChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcIm1vbnRoXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIHdlZWtkYXlzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLndlZWtkYXlzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0gZm9ybWF0XG4gICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9XG4gICAgICAgICAgOiB7IHdlZWtkYXk6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwid2Vla2RheVwiKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBtZXJpZGllbXMoZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYoXG4gICAgICB0aGlzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9LLFxuICAgICAgKCkgPT4gRW5nbGlzaC5tZXJpZGllbXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIEluIHRoZW9yeSB0aGVyZSBjb3VsZCBiZSBhcmliaXRyYXJ5IGRheSBwZXJpb2RzLiBXZSdyZSBnb25uYSBhc3N1bWUgdGhlcmUgYXJlIGV4YWN0bHkgdHdvXG4gICAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci5cbiAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBpbnRsID0geyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH07XG4gICAgICAgICAgdGhpcy5tZXJpZGllbUNhY2hlID0gW0RhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDkpLCBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCAxOSldLm1hcChcbiAgICAgICAgICAgIChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImRheXBlcmlvZFwiKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlcmFzKGxlbmd0aCwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2guZXJhcywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTtcblxuICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzXG4gICAgICAvLyB0byBkZWZpbml0ZWx5IGVudW1lcmF0ZSB0aGVtLlxuICAgICAgaWYgKCF0aGlzLmVyYUNhY2hlW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+XG4gICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImVyYVwiKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lcmFDYWNoZVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyksXG4gICAgICByZXN1bHRzID0gZGYuZm9ybWF0VG9QYXJ0cygpLFxuICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7XG4gICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgbnVtYmVyRm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKVxuICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpXG4gICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTtcbiAgfVxuXG4gIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5RGF0ZUZvcm1hdHRlcihkdCwgdGhpcy5pbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICByZWxGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7XG4gIH1cblxuICBsaXN0Rm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBnZXRDYWNoZWRMRih0aGlzLmludGwsIG9wdHMpO1xuICB9XG5cbiAgaXNFbmdsaXNoKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gXCJlblwiIHx8XG4gICAgICB0aGlzLmxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBcImVuLXVzXCIgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoXCJlbi11c1wiKVxuICAgICk7XG4gIH1cblxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJlxuICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJlxuICAgICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gb3RoZXIub3V0cHV0Q2FsZW5kYXJcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgdW50cnVuY2F0ZVllYXIsXG4gIHNpZ25lZE9mZnNldCxcbiAgcGFyc2VJbnRlZ2VyLFxuICBwYXJzZU1pbGxpcyxcbiAgaWFuYVJlZ2V4LFxuICBpc1VuZGVmaW5lZCxcbiAgcGFyc2VGbG9hdGluZ1xufSBmcm9tIFwiLi91dGlsLmpzXCI7XG5pbXBvcnQgKiBhcyBFbmdsaXNoIGZyb20gXCIuL2VuZ2xpc2guanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vKlxuICogVGhpcyBmaWxlIGhhbmRsZXMgcGFyc2luZyBmb3Igd2VsbC1zcGVjaWZpZWQgZm9ybWF0cy4gSGVyZSdzIGhvdyBpdCB3b3JrczpcbiAqIFR3byB0aGluZ3MgZ28gaW50byBwYXJzaW5nOiBhIHJlZ2V4IHRvIG1hdGNoIHdpdGggYW5kIGFuIGV4dHJhY3RvciB0byB0YWtlIGFwYXJ0IHRoZSBncm91cHMgaW4gdGhlIG1hdGNoLlxuICogQW4gZXh0cmFjdG9yIGlzIGp1c3QgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVnZXggbWF0Y2ggYXJyYXkgYW5kIHJldHVybnMgYSB7IHllYXI6IC4uLiwgbW9udGg6IC4uLiB9IG9iamVjdFxuICogcGFyc2UoKSBkb2VzIHRoZSB3b3JrIG9mIGV4ZWN1dGluZyB0aGUgcmVnZXggYW5kIGFwcGx5aW5nIHRoZSBleHRyYWN0b3IuIEl0IHRha2VzIG11bHRpcGxlIHJlZ2V4L2V4dHJhY3RvciBwYWlycyB0byB0cnkgaW4gc2VxdWVuY2UuXG4gKiBFeHRyYWN0b3JzIGNhbiB0YWtlIGEgXCJjdXJzb3JcIiByZXByZXNlbnRpbmcgdGhlIG9mZnNldCBpbiB0aGUgbWF0Y2ggdG8gbG9vayBhdC4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGNvbWJpbmUgZXh0cmFjdG9ycy5cbiAqIGNvbWJpbmVFeHRyYWN0b3JzKCkgZG9lcyB0aGUgd29yayBvZiBjb21iaW5pbmcgdGhlbSwga2VlcGluZyB0cmFjayBvZiB0aGUgY3Vyc29yIHRocm91Z2ggbXVsdGlwbGUgZXh0cmFjdGlvbnMuXG4gKiBTb21lIGV4dHJhY3Rpb25zIGFyZSBzdXBlciBkdW1iIGFuZCBzaW1wbGVQYXJzZSBhbmQgZnJvbVN0cmluZ3MgaGVscCBEUlkgdGhlbS5cbiAqL1xuXG5mdW5jdGlvbiBjb21iaW5lUmVnZXhlcyguLi5yZWdleGVzKSB7XG4gIGNvbnN0IGZ1bGwgPSByZWdleGVzLnJlZHVjZSgoZiwgcikgPT4gZiArIHIuc291cmNlLCBcIlwiKTtcbiAgcmV0dXJuIFJlZ0V4cChgXiR7ZnVsbH0kYCk7XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVFeHRyYWN0b3JzKC4uLmV4dHJhY3RvcnMpIHtcbiAgcmV0dXJuIG0gPT5cbiAgICBleHRyYWN0b3JzXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoW21lcmdlZFZhbHMsIG1lcmdlZFpvbmUsIGN1cnNvcl0sIGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgW3ZhbCwgem9uZSwgbmV4dF0gPSBleChtLCBjdXJzb3IpO1xuICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgem9uZSB8fCBtZXJnZWRab25lLCBuZXh0XTtcbiAgICAgICAgfSxcbiAgICAgICAgW3t9LCBudWxsLCAxXVxuICAgICAgKVxuICAgICAgLnNsaWNlKDAsIDIpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzLCAuLi5wYXR0ZXJucykge1xuICBpZiAocyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW3JlZ2V4LCBleHRyYWN0b3JdIG9mIHBhdHRlcm5zKSB7XG4gICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIHJldHVybiBleHRyYWN0b3IobSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbbnVsbCwgbnVsbF07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHtcbiAgcmV0dXJuIChtYXRjaCwgY3Vyc29yKSA9PiB7XG4gICAgY29uc3QgcmV0ID0ge307XG4gICAgbGV0IGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmV0W2tleXNbaV1dID0gcGFyc2VJbnRlZ2VyKG1hdGNoW2N1cnNvciArIGldKTtcbiAgICB9XG4gICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldO1xuICB9O1xufVxuXG4vLyBJU08gYW5kIFNRTCBwYXJzaW5nXG5jb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/KS87XG5jb25zdCBpc29FeHRlbmRlZFpvbmUgPSBgKD86JHtvZmZzZXRSZWdleC5zb3VyY2V9Pyg/OlxcXFxbKCR7aWFuYVJlZ2V4LnNvdXJjZX0pXFxcXF0pPyk/YDtcbmNvbnN0IGlzb1RpbWVCYXNlUmVnZXggPSAvKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlsuLF0oXFxkezEsMzB9KSk/KT8pPy87XG5jb25zdCBpc29UaW1lUmVnZXggPSBSZWdFeHAoYCR7aXNvVGltZUJhc2VSZWdleC5zb3VyY2V9JHtpc29FeHRlbmRlZFpvbmV9YCk7XG5jb25zdCBpc29UaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoYCg/OlQke2lzb1RpbWVSZWdleC5zb3VyY2V9KT9gKTtcbmNvbnN0IGlzb1ltZFJlZ2V4ID0gLyhbKy1dXFxkezZ9fFxcZHs0fSkoPzotPyhcXGRcXGQpKD86LT8oXFxkXFxkKSk/KT8vO1xuY29uc3QgaXNvV2Vla1JlZ2V4ID0gLyhcXGR7NH0pLT9XKFxcZFxcZCkoPzotPyhcXGQpKT8vO1xuY29uc3QgaXNvT3JkaW5hbFJlZ2V4ID0gLyhcXGR7NH0pLT8oXFxkezN9KS87XG5jb25zdCBleHRyYWN0SVNPV2Vla0RhdGEgPSBzaW1wbGVQYXJzZShcIndlZWtZZWFyXCIsIFwid2Vla051bWJlclwiLCBcIndlZWtEYXlcIik7XG5jb25zdCBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZShcInllYXJcIiwgXCJvcmRpbmFsXCIpO1xuY29uc3Qgc3FsWW1kUmVnZXggPSAvKFxcZHs0fSktKFxcZFxcZCktKFxcZFxcZCkvOyAvLyBkdW1iZWQtZG93biB2ZXJzaW9uIG9mIHRoZSBJU08gb25lXG5jb25zdCBzcWxUaW1lUmVnZXggPSBSZWdFeHAoXG4gIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YFxuKTtcbmNvbnN0IHNxbFRpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86ICR7c3FsVGltZVJlZ2V4LnNvdXJjZX0pP2ApO1xuXG5mdW5jdGlvbiBpbnQobWF0Y2gsIHBvcywgZmFsbGJhY2spIHtcbiAgY29uc3QgbSA9IG1hdGNoW3Bvc107XG4gIHJldHVybiBpc1VuZGVmaW5lZChtKSA/IGZhbGxiYWNrIDogcGFyc2VJbnRlZ2VyKG0pO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPWW1kKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3QgaXRlbSA9IHtcbiAgICB5ZWFyOiBpbnQobWF0Y2gsIGN1cnNvciksXG4gICAgbW9udGg6IGludChtYXRjaCwgY3Vyc29yICsgMSwgMSksXG4gICAgZGF5OiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDEpXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT1RpbWUobWF0Y2gsIGN1cnNvcikge1xuICBjb25zdCBpdGVtID0ge1xuICAgIGhvdXJzOiBpbnQobWF0Y2gsIGN1cnNvciwgMCksXG4gICAgbWludXRlczogaW50KG1hdGNoLCBjdXJzb3IgKyAxLCAwKSxcbiAgICBzZWNvbmRzOiBpbnQobWF0Y2gsIGN1cnNvciArIDIsIDApLFxuICAgIG1pbGxpc2Vjb25kczogcGFyc2VNaWxsaXMobWF0Y2hbY3Vyc29yICsgM10pXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyA0XTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT09mZnNldChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLFxuICAgIGZ1bGxPZmZzZXQgPSBzaWduZWRPZmZzZXQobWF0Y2hbY3Vyc29yICsgMV0sIG1hdGNoW2N1cnNvciArIDJdKSxcbiAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElBTkFab25lKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3Qgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTtcbn1cblxuLy8gSVNPIHRpbWUgcGFyc2luZ1xuXG5jb25zdCBpc29UaW1lT25seSA9IFJlZ0V4cChgXlQ/JHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0kYCk7XG5cbi8vIElTTyBkdXJhdGlvbiBwYXJzaW5nXG5cbmNvbnN0IGlzb0R1cmF0aW9uID0gL14tP1AoPzooPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylZKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylNKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylXKT8oPzooLT9cXGR7MSwyMH0oPzpcXC5cXGR7MSwyMH0pPylEKT8oPzpUKD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pSCk/KD86KC0/XFxkezEsMjB9KD86XFwuXFxkezEsMjB9KT8pTSk/KD86KC0/XFxkezEsMjB9KSg/OlsuLF0oLT9cXGR7MSwyMH0pKT9TKT8pPykkLztcblxuZnVuY3Rpb24gZXh0cmFjdElTT0R1cmF0aW9uKG1hdGNoKSB7XG4gIGNvbnN0IFtcbiAgICBzLFxuICAgIHllYXJTdHIsXG4gICAgbW9udGhTdHIsXG4gICAgd2Vla1N0cixcbiAgICBkYXlTdHIsXG4gICAgaG91clN0cixcbiAgICBtaW51dGVTdHIsXG4gICAgc2Vjb25kU3RyLFxuICAgIG1pbGxpc2Vjb25kc1N0clxuICBdID0gbWF0Y2g7XG5cbiAgY29uc3QgaGFzTmVnYXRpdmVQcmVmaXggPSBzWzBdID09PSBcIi1cIjtcbiAgY29uc3QgbmVnYXRpdmVTZWNvbmRzID0gc2Vjb25kU3RyICYmIHNlY29uZFN0clswXSA9PT0gXCItXCI7XG5cbiAgY29uc3QgbWF5YmVOZWdhdGUgPSAobnVtLCBmb3JjZSA9IGZhbHNlKSA9PlxuICAgIG51bSAhPT0gdW5kZWZpbmVkICYmIChmb3JjZSB8fCAobnVtICYmIGhhc05lZ2F0aXZlUHJlZml4KSkgPyAtbnVtIDogbnVtO1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgeWVhcnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoeWVhclN0cikpLFxuICAgICAgbW9udGhzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1vbnRoU3RyKSksXG4gICAgICB3ZWVrczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh3ZWVrU3RyKSksXG4gICAgICBkYXlzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKGRheVN0cikpLFxuICAgICAgaG91cnM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoaG91clN0cikpLFxuICAgICAgbWludXRlczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhtaW51dGVTdHIpKSxcbiAgICAgIHNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoc2Vjb25kU3RyKSwgc2Vjb25kU3RyID09PSBcIi0wXCIpLFxuICAgICAgbWlsbGlzZWNvbmRzOiBtYXliZU5lZ2F0ZShwYXJzZU1pbGxpcyhtaWxsaXNlY29uZHNTdHIpLCBuZWdhdGl2ZVNlY29uZHMpXG4gICAgfVxuICBdO1xufVxuXG4vLyBUaGVzZSBhcmUgYSBsaXR0bGUgYnJhaW5kZWFkLiBFRFQgKnNob3VsZCogdGVsbCB1cyB0aGF0IHdlJ3JlIGluLCBzYXksIEFtZXJpY2EvTmV3X1lvcmtcbi8vIGFuZCBub3QganVzdCB0aGF0IHdlJ3JlIGluIC0yNDAgKnJpZ2h0IG5vdyouIEJ1dCBzaW5jZSBJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSB1c2VkIHRoYXQgb2Z0ZW5cbi8vIEknbSBqdXN0IGdvaW5nIHRvIGlnbm9yZSB0aGF0XG5jb25zdCBvYnNPZmZzZXRzID0ge1xuICBHTVQ6IDAsXG4gIEVEVDogLTQgKiA2MCxcbiAgRVNUOiAtNSAqIDYwLFxuICBDRFQ6IC01ICogNjAsXG4gIENTVDogLTYgKiA2MCxcbiAgTURUOiAtNiAqIDYwLFxuICBNU1Q6IC03ICogNjAsXG4gIFBEVDogLTcgKiA2MCxcbiAgUFNUOiAtOCAqIDYwXG59O1xuXG5mdW5jdGlvbiBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgeWVhcjogeWVhclN0ci5sZW5ndGggPT09IDIgPyB1bnRydW5jYXRlWWVhcihwYXJzZUludGVnZXIoeWVhclN0cikpIDogcGFyc2VJbnRlZ2VyKHllYXJTdHIpLFxuICAgIG1vbnRoOiBFbmdsaXNoLm1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpICsgMSxcbiAgICBkYXk6IHBhcnNlSW50ZWdlcihkYXlTdHIpLFxuICAgIGhvdXI6IHBhcnNlSW50ZWdlcihob3VyU3RyKSxcbiAgICBtaW51dGU6IHBhcnNlSW50ZWdlcihtaW51dGVTdHIpXG4gIH07XG5cbiAgaWYgKHNlY29uZFN0cikgcmVzdWx0LnNlY29uZCA9IHBhcnNlSW50ZWdlcihzZWNvbmRTdHIpO1xuICBpZiAod2Vla2RheVN0cikge1xuICAgIHJlc3VsdC53ZWVrZGF5ID1cbiAgICAgIHdlZWtkYXlTdHIubGVuZ3RoID4gM1xuICAgICAgICA/IEVuZ2xpc2gud2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxXG4gICAgICAgIDogRW5nbGlzaC53ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUkZDIDI4MjIvNTMyMlxuY29uc3QgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxkXFxkKShcXGRcXGQpKSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgICAgLFxuICAgICAgd2Vla2RheVN0cixcbiAgICAgIGRheVN0cixcbiAgICAgIG1vbnRoU3RyLFxuICAgICAgeWVhclN0cixcbiAgICAgIGhvdXJTdHIsXG4gICAgICBtaW51dGVTdHIsXG4gICAgICBzZWNvbmRTdHIsXG4gICAgICBvYnNPZmZzZXQsXG4gICAgICBtaWxPZmZzZXQsXG4gICAgICBvZmZIb3VyU3RyLFxuICAgICAgb2ZmTWludXRlU3RyXG4gICAgXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcblxuICBsZXQgb2Zmc2V0O1xuICBpZiAob2JzT2Zmc2V0KSB7XG4gICAgb2Zmc2V0ID0gb2JzT2Zmc2V0c1tvYnNPZmZzZXRdO1xuICB9IGVsc2UgaWYgKG1pbE9mZnNldCkge1xuICAgIG9mZnNldCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgb2Zmc2V0ID0gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cik7XG4gIH1cblxuICByZXR1cm4gW3Jlc3VsdCwgbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpXTtcbn1cblxuZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXChbXigpXSpcXCl8W1xcblxcdF0vZywgXCIgXCIpXG4gICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG4vLyBodHRwIGRhdGVcblxuY29uc3QgcmZjMTEyMyA9IC9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksIChcXGRcXGQpIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKFxcZHs0fSkgKFxcZFxcZCk6KFxcZFxcZCk6KFxcZFxcZCkgR01UJC8sXG4gIHJmYzg1MCA9IC9eKE1vbmRheXxUdWVzZGF5fFdlZG5lc2RheXxUaHVyc2RheXxGcmlkYXl8U2F0dXJkYXl8U3VuZGF5KSwgKFxcZFxcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgYXNjaWkgPSAvXihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pIChKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYykgKCBcXGR8XFxkXFxkKSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSAoXFxkezR9KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0UkZDMTEyM09yODUwKG1hdGNoKSB7XG4gIGNvbnN0IFssIHdlZWtkYXlTdHIsIGRheVN0ciwgbW9udGhTdHIsIHllYXJTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyXSA9IG1hdGNoLFxuICAgIHJlc3VsdCA9IGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKTtcbiAgcmV0dXJuIFtyZXN1bHQsIEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZV07XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBU0NJSShtYXRjaCkge1xuICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0ciwgeWVhclN0cl0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG4gIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdO1xufVxuXG5jb25zdCBpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvWW1kUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29XZWVrV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1dlZWtSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb09yZGluYWxXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvT3JkaW5hbFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvVGltZUNvbWJpbmVkUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29UaW1lUmVnZXgpO1xuXG5jb25zdCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldCA9IGNvbWJpbmVFeHRyYWN0b3JzKFxuICBleHRyYWN0SVNPWW1kLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1dlZWtUaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoXG4gIGV4dHJhY3RJU09XZWVrRGF0YSxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT09yZGluYWxEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldCxcbiAgZXh0cmFjdElBTkFab25lXG4pO1xuY29uc3QgZXh0cmFjdElTT1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuLypcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLFxuICAgIFtpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZV0sXG4gICAgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykge1xuICByZXR1cm4gcGFyc2UocHJlcHJvY2Vzc1JGQzI4MjIocyksIFtyZmMyODIyLCBleHRyYWN0UkZDMjgyMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVFRQRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbcmZjODUwLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRHVyYXRpb24ocykge1xuICByZXR1cm4gcGFyc2UocywgW2lzb0R1cmF0aW9uLCBleHRyYWN0SVNPRHVyYXRpb25dKTtcbn1cblxuY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pO1xufVxuXG5jb25zdCBzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsWW1kUmVnZXgsIHNxbFRpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU1FMKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lQW5kT2Zmc2V0XSxcbiAgICBbc3FsVGltZUNvbWJpbmVkUmVnZXgsIGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmVdXG4gICk7XG59XG4iLCAiaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWREdXJhdGlvbkVycm9yLCBJbnZhbGlkVW5pdEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCB7IHBhcnNlSVNPRHVyYXRpb24sIHBhcnNlSVNPVGltZU9ubHkgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBhc051bWJlcixcbiAgaGFzT3duUHJvcGVydHksXG4gIGlzTnVtYmVyLFxuICBpc1VuZGVmaW5lZCxcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuXG5jb25zdCBJTlZBTElEID0gXCJJbnZhbGlkIER1cmF0aW9uXCI7XG5cbi8vIHVuaXQgY29udmVyc2lvbiBjb25zdGFudHNcbmV4cG9ydCBjb25zdCBsb3dPcmRlck1hdHJpeCA9IHtcbiAgICB3ZWVrczoge1xuICAgICAgZGF5czogNyxcbiAgICAgIGhvdXJzOiA3ICogMjQsXG4gICAgICBtaW51dGVzOiA3ICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgZGF5czoge1xuICAgICAgaG91cnM6IDI0LFxuICAgICAgbWludXRlczogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIGhvdXJzOiB7IG1pbnV0ZXM6IDYwLCBzZWNvbmRzOiA2MCAqIDYwLCBtaWxsaXNlY29uZHM6IDYwICogNjAgKiAxMDAwIH0sXG4gICAgbWludXRlczogeyBzZWNvbmRzOiA2MCwgbWlsbGlzZWNvbmRzOiA2MCAqIDEwMDAgfSxcbiAgICBzZWNvbmRzOiB7IG1pbGxpc2Vjb25kczogMTAwMCB9LFxuICB9LFxuICBjYXN1YWxNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiA1MixcbiAgICAgIGRheXM6IDM2NSxcbiAgICAgIGhvdXJzOiAzNjUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDM2NSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDM2NSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBxdWFydGVyczoge1xuICAgICAgbW9udGhzOiAzLFxuICAgICAgd2Vla3M6IDEzLFxuICAgICAgZGF5czogOTEsXG4gICAgICBob3VyczogOTEgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDkxICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDkxICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBtb250aHM6IHtcbiAgICAgIHdlZWtzOiA0LFxuICAgICAgZGF5czogMzAsXG4gICAgICBob3VyczogMzAgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IDMwICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IDMwICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcblxuICAgIC4uLmxvd09yZGVyTWF0cml4LFxuICB9LFxuICBkYXlzSW5ZZWFyQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQwMCxcbiAgZGF5c0luTW9udGhBY2N1cmF0ZSA9IDE0NjA5Ny4wIC8gNDgwMCxcbiAgYWNjdXJhdGVNYXRyaXggPSB7XG4gICAgeWVhcnM6IHtcbiAgICAgIHF1YXJ0ZXJzOiA0LFxuICAgICAgbW9udGhzOiAxMixcbiAgICAgIHdlZWtzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlLFxuICAgICAgaG91cnM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0LFxuICAgICAgbWludXRlczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIHF1YXJ0ZXJzOiB7XG4gICAgICBtb250aHM6IDMsXG4gICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gMjgsXG4gICAgICBkYXlzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgLyA0LFxuICAgICAgaG91cnM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCkgLyA0LFxuICAgICAgbWludXRlczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjApIC8gNCxcbiAgICAgIHNlY29uZHM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjApIC8gNCxcbiAgICAgIG1pbGxpc2Vjb25kczogKGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDApIC8gNCxcbiAgICB9LFxuICAgIG1vbnRoczoge1xuICAgICAgd2Vla3M6IGRheXNJbk1vbnRoQWNjdXJhdGUgLyA3LFxuICAgICAgZGF5czogZGF5c0luTW9udGhBY2N1cmF0ZSxcbiAgICAgIGhvdXJzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQsXG4gICAgICBtaW51dGVzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCxcbiAgICAgIHNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IGRheXNJbk1vbnRoQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgLi4ubG93T3JkZXJNYXRyaXgsXG4gIH07XG5cbi8vIHVuaXRzIG9yZGVyZWQgYnkgc2l6ZVxuY29uc3Qgb3JkZXJlZFVuaXRzID0gW1xuICBcInllYXJzXCIsXG4gIFwicXVhcnRlcnNcIixcbiAgXCJtb250aHNcIixcbiAgXCJ3ZWVrc1wiLFxuICBcImRheXNcIixcbiAgXCJob3Vyc1wiLFxuICBcIm1pbnV0ZXNcIixcbiAgXCJzZWNvbmRzXCIsXG4gIFwibWlsbGlzZWNvbmRzXCIsXG5dO1xuXG5jb25zdCByZXZlcnNlVW5pdHMgPSBvcmRlcmVkVW5pdHMuc2xpY2UoMCkucmV2ZXJzZSgpO1xuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMgXCJjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBqdXN0IGxpa2UgdGhpcyBvbmUsIGJ1dCB3aXRoIHRoZXNlIGNoYW5nZXNcIlxuZnVuY3Rpb24gY2xvbmUoZHVyLCBhbHRzLCBjbGVhciA9IGZhbHNlKSB7XG4gIC8vIGRlZXAgbWVyZ2UgZm9yIHZhbHNcbiAgY29uc3QgY29uZiA9IHtcbiAgICB2YWx1ZXM6IGNsZWFyID8gYWx0cy52YWx1ZXMgOiB7IC4uLmR1ci52YWx1ZXMsIC4uLihhbHRzLnZhbHVlcyB8fCB7fSkgfSxcbiAgICBsb2M6IGR1ci5sb2MuY2xvbmUoYWx0cy5sb2MpLFxuICAgIGNvbnZlcnNpb25BY2N1cmFjeTogYWx0cy5jb252ZXJzaW9uQWNjdXJhY3kgfHwgZHVyLmNvbnZlcnNpb25BY2N1cmFjeSxcbiAgfTtcbiAgcmV0dXJuIG5ldyBEdXJhdGlvbihjb25mKTtcbn1cblxuZnVuY3Rpb24gYW50aVRydW5jKG4pIHtcbiAgcmV0dXJuIG4gPCAwID8gTWF0aC5mbG9vcihuKSA6IE1hdGguY2VpbChuKTtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gY29udmVydChtYXRyaXgsIGZyb21NYXAsIGZyb21Vbml0LCB0b01hcCwgdG9Vbml0KSB7XG4gIGNvbnN0IGNvbnYgPSBtYXRyaXhbdG9Vbml0XVtmcm9tVW5pdF0sXG4gICAgcmF3ID0gZnJvbU1hcFtmcm9tVW5pdF0gLyBjb252LFxuICAgIHNhbWVTaWduID0gTWF0aC5zaWduKHJhdykgPT09IE1hdGguc2lnbih0b01hcFt0b1VuaXRdKSxcbiAgICAvLyBvaywgc28gdGhpcyBpcyB3aWxkLCBidXQgc2VlIHRoZSBtYXRyaXggaW4gdGhlIHRlc3RzXG4gICAgYWRkZWQgPVxuICAgICAgIXNhbWVTaWduICYmIHRvTWFwW3RvVW5pdF0gIT09IDAgJiYgTWF0aC5hYnMocmF3KSA8PSAxID8gYW50aVRydW5jKHJhdykgOiBNYXRoLnRydW5jKHJhdyk7XG4gIHRvTWFwW3RvVW5pdF0gKz0gYWRkZWQ7XG4gIGZyb21NYXBbZnJvbVVuaXRdIC09IGFkZGVkICogY29udjtcbn1cblxuLy8gTkI6IG11dGF0ZXMgcGFyYW1ldGVyc1xuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVzKG1hdHJpeCwgdmFscykge1xuICByZXZlcnNlVW5pdHMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgIGlmICghaXNVbmRlZmluZWQodmFsc1tjdXJyZW50XSkpIHtcbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICBjb252ZXJ0KG1hdHJpeCwgdmFscywgcHJldmlvdXMsIHZhbHMsIGN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICB9XG4gIH0sIG51bGwpO1xufVxuXG4vKipcbiAqIEEgRHVyYXRpb24gb2JqZWN0IHJlcHJlc2VudHMgYSBwZXJpb2Qgb2YgdGltZSwgbGlrZSBcIjIgbW9udGhzXCIgb3IgXCIxIGRheSwgMSBob3VyXCIuIENvbmNlcHR1YWxseSwgaXQncyBqdXN0IGEgbWFwIG9mIHVuaXRzIHRvIHRoZWlyIHF1YW50aXRpZXMsIGFjY29tcGFuaWVkIGJ5IHNvbWUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGFuZCBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLiBUaGV5IGNhbiBiZSB1c2VkIG9uIHRoZWlyIG93biBvciBpbiBjb25qdW5jdGlvbiB3aXRoIG90aGVyIEx1eG9uIHR5cGVzOyBmb3IgZXhhbXBsZSwgeW91IGNhbiB1c2Uge0BsaW5rIERhdGVUaW1lI3BsdXN9IHRvIGFkZCBhIER1cmF0aW9uIG9iamVjdCB0byBhIERhdGVUaW1lLCBwcm9kdWNpbmcgYW5vdGhlciBEYXRlVGltZS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIER1cmF0aW9uOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhIER1cmF0aW9uLCB1c2Uge0BsaW5rIER1cmF0aW9uI2Zyb21NaWxsaXN9LCB7QGxpbmsgRHVyYXRpb24jZnJvbU9iamVjdH0sIG9yIHtAbGluayBEdXJhdGlvbiNmcm9tSVNPfS5cbiAqICogKipVbml0IHZhbHVlcyoqIFNlZSB0aGUge0BsaW5rIER1cmF0aW9uI3llYXJzfSwge0BsaW5rIER1cmF0aW9uI21vbnRoc30sIHtAbGluayBEdXJhdGlvbiN3ZWVrc30sIHtAbGluayBEdXJhdGlvbiNkYXlzfSwge0BsaW5rIER1cmF0aW9uI2hvdXJzfSwge0BsaW5rIER1cmF0aW9uI21pbnV0ZXN9LCB7QGxpbmsgRHVyYXRpb24jc2Vjb25kc30sIHtAbGluayBEdXJhdGlvbiNtaWxsaXNlY29uZHN9IGFjY2Vzc29ycy5cbiAqICogKipDb25maWd1cmF0aW9uKiogU2VlICB7QGxpbmsgRHVyYXRpb24jbG9jYWxlfSBhbmQge0BsaW5rIER1cmF0aW9uI251bWJlcmluZ1N5c3RlbX0gYWNjZXNzb3JzLlxuICogKiAqKlRyYW5zZm9ybWF0aW9uKiogVG8gY3JlYXRlIG5ldyBEdXJhdGlvbnMgb3V0IG9mIG9sZCBvbmVzIHVzZSB7QGxpbmsgRHVyYXRpb24jcGx1c30sIHtAbGluayBEdXJhdGlvbiNtaW51c30sIHtAbGluayBEdXJhdGlvbiNub3JtYWxpemV9LCB7QGxpbmsgRHVyYXRpb24jc2V0fSwge0BsaW5rIER1cmF0aW9uI3JlY29uZmlndXJlfSwge0BsaW5rIER1cmF0aW9uI3NoaWZ0VG99LCBhbmQge0BsaW5rIER1cmF0aW9uI25lZ2F0ZX0uXG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgRHVyYXRpb24gaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgRHVyYXRpb24jYXN9LCB7QGxpbmsgRHVyYXRpb24jdG9JU099LCB7QGxpbmsgRHVyYXRpb24jdG9Gb3JtYXR9LCBhbmQge0BsaW5rIER1cmF0aW9uI3RvSlNPTn1cbiAqXG4gKiBUaGVyZSdzIGFyZSBtb3JlIG1ldGhvZHMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIHZhbGlkaXR5LCBzZWUgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCBhY2N1cmF0ZSA9IGNvbmZpZy5jb252ZXJzaW9uQWNjdXJhY3kgPT09IFwibG9uZ3Rlcm1cIiB8fCBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlcyA9IGNvbmZpZy52YWx1ZXM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGFjY3VyYXRlID8gXCJsb25ndGVybVwiIDogXCJjYXN1YWxcIjtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMubWF0cml4ID0gYWNjdXJhdGUgPyBhY2N1cmF0ZU1hdHJpeCA6IGNhc3VhbE1hdHJpeDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EdXJhdGlvbiA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQgb2YgbWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKGNvdW50LCBvcHRzKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IGNvdW50IH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLlxuICAgKiBJZiB0aGlzIG9iamVjdCBpcyBlbXB0eSB0aGVuIGEgemVybyBtaWxsaXNlY29uZHMgZHVyYXRpb24gaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgRGF0ZVRpbWUgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnllYXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoucXVhcnRlcnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmRheXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5ob3Vyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz1bXV0gLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgRHVyYXRpb24uZnJvbU9iamVjdDogYXJndW1lbnQgZXhwZWN0ZWQgdG8gYmUgYW4gb2JqZWN0LCBnb3QgJHtcbiAgICAgICAgICBvYmogPT09IG51bGwgPyBcIm51bGxcIiA6IHR5cGVvZiBvYmpcbiAgICAgICAgfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7XG4gICAgICB2YWx1ZXM6IG5vcm1hbGl6ZU9iamVjdChvYmosIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpLFxuICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICAgIGNvbnZlcnNpb25BY2N1cmFjeTogb3B0cy5jb252ZXJzaW9uQWNjdXJhY3ksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBEdXJhdGlvbkxpa2UuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVtYmVyIHwgRHVyYXRpb259IGR1cmF0aW9uTGlrZVxuICAgKiBPbmUgb2Y6XG4gICAqIC0gb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFycycgYW5kICdob3VycycuXG4gICAqIC0gbnVtYmVyIHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHNcbiAgICogLSBEdXJhdGlvbiBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uTGlrZSkge1xuICAgIGlmIChpc051bWJlcihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU1pbGxpcyhkdXJhdGlvbkxpa2UpO1xuICAgIH0gZWxzZSBpZiAoRHVyYXRpb24uaXNEdXJhdGlvbihkdXJhdGlvbkxpa2UpKSB7XG4gICAgICByZXR1cm4gZHVyYXRpb25MaWtlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uTGlrZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QoZHVyYXRpb25MaWtlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgVW5rbm93biBkdXJhdGlvbiBhcmd1bWVudCAke2R1cmF0aW9uTGlrZX0gb2YgdHlwZSAke3R5cGVvZiBkdXJhdGlvbkxpa2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUDNZNk0xVzREVDEySDMwTTVTJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDMsIG1vbnRoczogNiwgd2Vla3M6IDEsIGRheXM6IDQsIGhvdXJzOiAxMiwgbWludXRlczogMzAsIHNlY29uZHM6IDUgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQVDIzSCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyMyB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1A1WTNNJykudG9PYmplY3QoKSAvLz0+IHsgeWVhcnM6IDUsIG1vbnRoczogMyB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGZyb21JU08odGV4dCwgb3B0cykge1xuICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09EdXJhdGlvbih0ZXh0KTtcbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChwYXJzZWQsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRHVyYXRpb24gZnJvbSBhbiBJU08gODYwMSB0aW1lIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0ZXh0IHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyBmb3IgcGFyc2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVzXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMToyMjozMy40NDQnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDIyLCBzZWNvbmRzOiAzMywgbWlsbGlzZWNvbmRzOiA0NDQgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExOjAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnVDExMDAnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDAsIHNlY29uZHM6IDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPVGltZSh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3BhcnNlZF0gPSBwYXJzZUlTT1RpbWVPbmx5KHRleHQpO1xuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHBhcnNlZCwgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwidW5wYXJzYWJsZVwiLCBgdGhlIGlucHV0IFwiJHt0ZXh0fVwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgZGF0ZXRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEdXJhdGlvbiBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRHVyYXRpb25FcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEdXJhdGlvbih7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplVW5pdCh1bml0KSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHtcbiAgICAgIHllYXI6IFwieWVhcnNcIixcbiAgICAgIHllYXJzOiBcInllYXJzXCIsXG4gICAgICBxdWFydGVyOiBcInF1YXJ0ZXJzXCIsXG4gICAgICBxdWFydGVyczogXCJxdWFydGVyc1wiLFxuICAgICAgbW9udGg6IFwibW9udGhzXCIsXG4gICAgICBtb250aHM6IFwibW9udGhzXCIsXG4gICAgICB3ZWVrOiBcIndlZWtzXCIsXG4gICAgICB3ZWVrczogXCJ3ZWVrc1wiLFxuICAgICAgZGF5OiBcImRheXNcIixcbiAgICAgIGRheXM6IFwiZGF5c1wiLFxuICAgICAgaG91cjogXCJob3Vyc1wiLFxuICAgICAgaG91cnM6IFwiaG91cnNcIixcbiAgICAgIG1pbnV0ZTogXCJtaW51dGVzXCIsXG4gICAgICBtaW51dGVzOiBcIm1pbnV0ZXNcIixcbiAgICAgIHNlY29uZDogXCJzZWNvbmRzXCIsXG4gICAgICBzZWNvbmRzOiBcInNlY29uZHNcIixcbiAgICAgIG1pbGxpc2Vjb25kOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgICAgbWlsbGlzZWNvbmRzOiBcIm1pbGxpc2Vjb25kc1wiLFxuICAgIH1bdW5pdCA/IHVuaXQudG9Mb3dlckNhc2UoKSA6IHVuaXRdO1xuXG4gICAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIER1cmF0aW9uLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNEdXJhdGlvbihvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkR1cmF0aW9uKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgIHRoZSBsb2NhbGUgb2YgYSBEdXJhdGlvbiwgc3VjaCAnZW4tR0InXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIER1cmF0aW9uLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIER1cmF0aW9uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy4gWW91IG1heSB1c2UgdGhlc2UgdG9rZW5zOlxuICAgKiAqIGBTYCBmb3IgbWlsbGlzZWNvbmRzXG4gICAqICogYHNgIGZvciBzZWNvbmRzXG4gICAqICogYG1gIGZvciBtaW51dGVzXG4gICAqICogYGhgIGZvciBob3Vyc1xuICAgKiAqIGBkYCBmb3IgZGF5c1xuICAgKiAqIGB3YCBmb3Igd2Vla3NcbiAgICogKiBgTWAgZm9yIG1vbnRoc1xuICAgKiAqIGB5YCBmb3IgeWVhcnNcbiAgICogTm90ZXM6XG4gICAqICogQWRkIHBhZGRpbmcgYnkgcmVwZWF0aW5nIHRoZSB0b2tlbiwgZS5nLiBcInl5XCIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgXCJoaGhoXCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzXG4gICAqICogVG9rZW5zIGNhbiBiZSBlc2NhcGVkIGJ5IHdyYXBwaW5nIHdpdGggc2luZ2xlIHF1b3Rlcy5cbiAgICogKiBUaGUgZHVyYXRpb24gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlIHNldCBvZiB1bml0cyBpbiB0aGUgZm9ybWF0IHN0cmluZyB1c2luZyB7QGxpbmsgRHVyYXRpb24jc2hpZnRUb30gYW5kIHRoZSBEdXJhdGlvbnMncyBjb252ZXJzaW9uIGFjY3VyYWN5IHNldHRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5mbG9vcj10cnVlXSAtIGZsb29yIG51bWVyaWNhbCB2YWx1ZXNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieSBkIHNcIikgLy89PiBcIjEgNiAyXCJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwieXkgZGQgc3NzXCIpIC8vPT4gXCIwMSAwNiAwMDJcIlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEsIGRheXM6IDYsIHNlY29uZHM6IDIgfSkudG9Gb3JtYXQoXCJNIFNcIikgLy89PiBcIjEyIDUxODQwMjAwMFwiXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgLy8gcmV2ZXJzZS1jb21wYXQgc2luY2UgMS4yOyB3ZSBhbHdheXMgcm91bmQgZG93biBub3csIG5ldmVyIHVwLCBhbmQgd2UgZG8gaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZtdE9wdHMgPSB7XG4gICAgICAuLi5vcHRzLFxuICAgICAgZmxvb3I6IG9wdHMucm91bmQgIT09IGZhbHNlICYmIG9wdHMuZmxvb3IgIT09IGZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLCBmbXRPcHRzKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEdXJhdGlvbiB3aXRoIGFsbCB1bml0cyBpbmNsdWRlZC5cbiAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTnVtYmVyRm9ybWF0XG4gICAqIEBwYXJhbSBvcHRzIC0gT24gb3B0aW9uIG9iamVjdCB0byBvdmVycmlkZSB0aGUgZm9ybWF0dGluZy4gQWNjZXB0cyB0aGUgc2FtZSBrZXlzIGFzIHRoZSBvcHRpb25zIHBhcmFtZXRlciBvZiB0aGUgbmF0aXZlIGBJbnQuTnVtYmVyRm9ybWF0YCBjb25zdHJ1Y3RvciwgYXMgd2VsbCBhcyBgbGlzdFN0eWxlYC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBganNcbiAgICogdmFyIGR1ciA9IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxLCBob3VyczogNSwgbWludXRlczogNiB9KVxuICAgKiBkdXIudG9IdW1hbigpIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCA2IG1pbnV0ZXMnXG4gICAqIGR1ci50b0h1bWFuKHsgbGlzdFN0eWxlOiBcImxvbmdcIiB9KSAvLz0+ICcxIGRheSwgNSBob3VycywgYW5kIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyB1bml0RGlzcGxheTogXCJzaG9ydFwiIH0pIC8vPT4gJzEgZGF5LCA1IGhyLCA2IG1pbidcbiAgICogYGBgXG4gICAqL1xuICB0b0h1bWFuKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGwgPSBvcmRlcmVkVW5pdHNcbiAgICAgIC5tYXAoKHVuaXQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZXNbdW5pdF07XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAgICAgLm51bWJlckZvcm1hdHRlcih7IHN0eWxlOiBcInVuaXRcIiwgdW5pdERpc3BsYXk6IFwibG9uZ1wiLCAuLi5vcHRzLCB1bml0OiB1bml0LnNsaWNlKDAsIC0xKSB9KVxuICAgICAgICAgIC5mb3JtYXQodmFsKTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChuKSA9PiBuKTtcblxuICAgIHJldHVybiB0aGlzLmxvY1xuICAgICAgLmxpc3RGb3JtYXR0ZXIoeyB0eXBlOiBcImNvbmp1bmN0aW9uXCIsIHN0eWxlOiBvcHRzLmxpc3RTdHlsZSB8fCBcIm5hcnJvd1wiLCAuLi5vcHRzIH0pXG4gICAgICAuZm9ybWF0KGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRHVyYXRpb24ncyB2YWx1ZXMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHRvT2JqZWN0KCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4ge307XG4gICAgcmV0dXJuIHsgLi4udGhpcy52YWx1ZXMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAzLCBzZWNvbmRzOiA0NSB9KS50b0lTTygpIC8vPT4gJ1AzWVQ0NVMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDQsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDRNVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNSB9KS50b0lTTygpIC8vPT4gJ1A1TSdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDUgfSkudG9JU08oKSAvLz0+ICdQVDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWlsbGlzZWNvbmRzOiA2IH0pLnRvSVNPKCkgLy89PiAnUFQwLjAwNlMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKCkge1xuICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgZm9ybWF0dGVyLCBidXQgdGhpcyBpcyBhbiBlYXNpZXIgd2F5IHRvIGdldCB0aGUgbWluaW11bSBzdHJpbmdcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgcyA9IFwiUFwiO1xuICAgIGlmICh0aGlzLnllYXJzICE9PSAwKSBzICs9IHRoaXMueWVhcnMgKyBcIllcIjtcbiAgICBpZiAodGhpcy5tb250aHMgIT09IDAgfHwgdGhpcy5xdWFydGVycyAhPT0gMCkgcyArPSB0aGlzLm1vbnRocyArIHRoaXMucXVhcnRlcnMgKiAzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMud2Vla3MgIT09IDApIHMgKz0gdGhpcy53ZWVrcyArIFwiV1wiO1xuICAgIGlmICh0aGlzLmRheXMgIT09IDApIHMgKz0gdGhpcy5kYXlzICsgXCJEXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDAgfHwgdGhpcy5taW51dGVzICE9PSAwIHx8IHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIHMgKz0gXCJUXCI7XG4gICAgaWYgKHRoaXMuaG91cnMgIT09IDApIHMgKz0gdGhpcy5ob3VycyArIFwiSFwiO1xuICAgIGlmICh0aGlzLm1pbnV0ZXMgIT09IDApIHMgKz0gdGhpcy5taW51dGVzICsgXCJNXCI7XG4gICAgaWYgKHRoaXMuc2Vjb25kcyAhPT0gMCB8fCB0aGlzLm1pbGxpc2Vjb25kcyAhPT0gMClcbiAgICAgIC8vIHRoaXMgd2lsbCBoYW5kbGUgXCJmbG9hdGluZyBwb2ludCBtYWRuZXNzXCIgYnkgcmVtb3ZpbmcgZXh0cmEgZGVjaW1hbCBwbGFjZXNcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4ODAwNC9pcy1mbG9hdGluZy1wb2ludC1tYXRoLWJyb2tlblxuICAgICAgcyArPSByb3VuZFRvKHRoaXMuc2Vjb25kcyArIHRoaXMubWlsbGlzZWNvbmRzIC8gMTAwMCwgMykgKyBcIlNcIjtcbiAgICBpZiAocyA9PT0gXCJQXCIpIHMgKz0gXCJUMFNcIjtcbiAgICByZXR1cm4gcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiwgZm9ybWF0dGVkIGFzIGEgdGltZSBvZiBkYXkuXG4gICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQsIG5lZ2F0aXZlLCBvciBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMjQgaG91cnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NNaWxsaXNlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzU2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIHNlY29uZHMgZnJvbSB0aGUgZm9ybWF0IGlmIHRoZXkncmUgMFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVQcmVmaXg9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgYFRgIHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoKSAvLz0+ICcxMTowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NNaWxsaXNlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDA6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzExOjAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGluY2x1ZGVQcmVmaXg6IHRydWUgfSkgLy89PiAnVDExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMTEwMDAwLjAwMCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1pbGxpcyA9IHRoaXMudG9NaWxsaXMoKTtcbiAgICBpZiAobWlsbGlzIDwgMCB8fCBtaWxsaXMgPj0gODY0MDAwMDApIHJldHVybiBudWxsO1xuXG4gICAgb3B0cyA9IHtcbiAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzU2Vjb25kczogZmFsc2UsXG4gICAgICBpbmNsdWRlUHJlZml4OiBmYWxzZSxcbiAgICAgIGZvcm1hdDogXCJleHRlbmRlZFwiLFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNoaWZ0VG8oXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCIsIFwibWlsbGlzZWNvbmRzXCIpO1xuXG4gICAgbGV0IGZtdCA9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcImhobW1cIiA6IFwiaGg6bW1cIjtcblxuICAgIGlmICghb3B0cy5zdXBwcmVzc1NlY29uZHMgfHwgdmFsdWUuc2Vjb25kcyAhPT0gMCB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgIGZtdCArPSBvcHRzLmZvcm1hdCA9PT0gXCJiYXNpY1wiID8gXCJzc1wiIDogXCI6c3NcIjtcbiAgICAgIGlmICghb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcyB8fCB2YWx1ZS5taWxsaXNlY29uZHMgIT09IDApIHtcbiAgICAgICAgZm10ICs9IFwiLlNTU1wiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzdHIgPSB2YWx1ZS50b0Zvcm1hdChmbXQpO1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZVByZWZpeCkge1xuICAgICAgc3RyID0gXCJUXCIgKyBzdHI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvSVNPKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXMoXCJtaWxsaXNlY29uZHNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBtaWxsaXNlY29uZHMgdmFsdWUgb2YgdGhpcyBEdXJhdGlvbi4gQWxpYXMgb2Yge0BsaW5rIHRvTWlsbGlzfVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB2YWx1ZU9mKCkge1xuICAgIHJldHVybiB0aGlzLnRvTWlsbGlzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIGxvbmdlciBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICByZXN1bHQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShkdXIudmFsdWVzLCBrKSB8fCBoYXNPd25Qcm9wZXJ0eSh0aGlzLnZhbHVlcywgaykpIHtcbiAgICAgICAgcmVzdWx0W2tdID0gZHVyLmdldChrKSArIHRoaXMuZ2V0KGspO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhpcyBEdXJhdGlvbiBzaG9ydGVyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5wbHVzKGR1ci5uZWdhdGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgdGhpcyBEdXJhdGlvbiBieSB0aGUgc3BlY2lmaWVkIGFtb3VudC4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdW5pdC4gQXJpdHkgaXMgMSBvciAyOiB0aGUgdmFsdWUgb2YgdGhlIHVuaXQgYW5kLCBvcHRpb25hbGx5LCB0aGUgdW5pdCBuYW1lLiBNdXN0IHJldHVybiBhIG51bWJlci5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cyh4ID0+IHggKiAyKSAvLz0+IHsgaG91cnM6IDIsIG1pbnV0ZXM6IDYwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBtaW51dGVzOiAzMCB9KS5tYXBVbml0cygoeCwgdSkgPT4gdSA9PT0gXCJob3VyXCIgPyB4ICogMiA6IHgpIC8vPT4geyBob3VyczogMiwgbWludXRlczogMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG1hcFVuaXRzKGZuKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIHJlc3VsdFtrXSA9IGFzTnVtYmVyKGZuKHRoaXMudmFsdWVzW2tdLCBrKSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogcmVzdWx0IH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmFsdWUgb2YgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlJyBvciAnZGF5J1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgneWVhcnMnKSAvLz0+IDJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDIsIGRheXM6IDN9KS5nZXQoJ21vbnRocycpIC8vPT4gMFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnZGF5cycpIC8vPT4gM1xuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQodW5pdCkge1xuICAgIHJldHVybiB0aGlzW0R1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCldO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIHZhbHVlcyBvZiBzcGVjaWZpZWQgdW5pdHMuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IHllYXJzOiAyMDE3IH0pXG4gICAqIEBleGFtcGxlIGR1ci5zZXQoeyBob3VyczogOCwgbWludXRlczogMzAgfSlcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzZXQodmFsdWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgbWl4ZWQgPSB7IC4uLnRoaXMudmFsdWVzLCAuLi5ub3JtYWxpemVPYmplY3QodmFsdWVzLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSB9O1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbWl4ZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlIGFuZC9vciBudW1iZXJpbmdTeXN0ZW0uICBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIGR1ci5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNvbnZlcnNpb25BY2N1cmFjeSB9ID0ge30pIHtcbiAgICBjb25zdCBsb2MgPSB0aGlzLmxvYy5jbG9uZSh7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtIH0pLFxuICAgICAgb3B0cyA9IHsgbG9jIH07XG5cbiAgICBpZiAoY29udmVyc2lvbkFjY3VyYWN5KSB7XG4gICAgICBvcHRzLmNvbnZlcnNpb25BY2N1cmFjeSA9IGNvbnZlcnNpb25BY2N1cmFjeTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGR1cmF0aW9uIGluIHRoZSBzcGVjaWZpZWQgdW5pdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBhIHVuaXQgc3VjaCBhcyAnbWludXRlcycgb3IgJ2RheXMnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ2RheXMnKSAvLz0+IDM2NVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMX0pLmFzKCdtb250aHMnKSAvLz0+IDEyXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe2hvdXJzOiA2MH0pLmFzKCdkYXlzJykgLy89PiAyLjVcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgYXModW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnNoaWZ0VG8odW5pdCkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0aGlzIER1cmF0aW9uIHRvIGl0cyBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gaW4gaXRzIGN1cnJlbnQgdW5pdHMuXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMiwgZGF5czogNTAwMCB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyB5ZWFyczogMTUsIGRheXM6IDI1NSB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTIsIG1pbnV0ZXM6IC00NSB9KS5ub3JtYWxpemUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTEsIG1pbnV0ZXM6IDE1IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBub3JtYWxpemUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbm9ybWFsaXplVmFsdWVzKHRoaXMubWF0cml4LCB2YWxzKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IHZhbHMgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGlzIER1cmF0aW9uIGludG8gaXRzIHJlcHJlc2VudGF0aW9uIGluIGEgZGlmZmVyZW50IHNldCBvZiB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5zaGlmdFRvKCdtaW51dGVzJywgJ21pbGxpc2Vjb25kcycpLnRvT2JqZWN0KCkgLy89PiB7IG1pbnV0ZXM6IDYwLCBtaWxsaXNlY29uZHM6IDMwMDAwIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzaGlmdFRvKC4uLnVuaXRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKHVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdW5pdHMgPSB1bml0cy5tYXAoKHUpID0+IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodSkpO1xuXG4gICAgY29uc3QgYnVpbHQgPSB7fSxcbiAgICAgIGFjY3VtdWxhdGVkID0ge30sXG4gICAgICB2YWxzID0gdGhpcy50b09iamVjdCgpO1xuICAgIGxldCBsYXN0VW5pdDtcblxuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmICh1bml0cy5pbmRleE9mKGspID49IDApIHtcbiAgICAgICAgbGFzdFVuaXQgPSBrO1xuXG4gICAgICAgIGxldCBvd24gPSAwO1xuXG4gICAgICAgIC8vIGFueXRoaW5nIHdlIGhhdmVuJ3QgYm9pbGVkIGRvd24geWV0IHNob3VsZCBnZXQgYm9pbGVkIHRvIHRoaXMgdW5pdFxuICAgICAgICBmb3IgKGNvbnN0IGFrIGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICAgICAgb3duICs9IHRoaXMubWF0cml4W2FrXVtrXSAqIGFjY3VtdWxhdGVkW2FrXTtcbiAgICAgICAgICBhY2N1bXVsYXRlZFtha10gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyB0aGF0J3MgYWxyZWFkeSBpbiB0aGlzIHVuaXRcbiAgICAgICAgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgICAgb3duICs9IHZhbHNba107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpID0gTWF0aC50cnVuYyhvd24pO1xuICAgICAgICBidWlsdFtrXSA9IGk7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gKG93biAqIDEwMDAgLSBpICogMTAwMCkgLyAxMDAwO1xuXG4gICAgICAgIC8vIHBsdXMgYW55dGhpbmcgZnVydGhlciBkb3duIHRoZSBjaGFpbiB0aGF0IHNob3VsZCBiZSByb2xsZWQgdXAgaW4gdG8gdGhpc1xuICAgICAgICBmb3IgKGNvbnN0IGRvd24gaW4gdmFscykge1xuICAgICAgICAgIGlmIChvcmRlcmVkVW5pdHMuaW5kZXhPZihkb3duKSA+IG9yZGVyZWRVbml0cy5pbmRleE9mKGspKSB7XG4gICAgICAgICAgICBjb252ZXJ0KHRoaXMubWF0cml4LCB2YWxzLCBkb3duLCBidWlsdCwgayk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwga2VlcCBpdCBpbiB0aGUgd2luZ3MgdG8gYm9pbCBpdCBsYXRlclxuICAgICAgfSBlbHNlIGlmIChpc051bWJlcih2YWxzW2tdKSkge1xuICAgICAgICBhY2N1bXVsYXRlZFtrXSA9IHZhbHNba107XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgbGVmdG92ZXIgYmVjb21lcyB0aGUgZGVjaW1hbCBmb3IgdGhlIGxhc3QgdW5pdFxuICAgIC8vIGxhc3RVbml0IG11c3QgYmUgZGVmaW5lZCBzaW5jZSB1bml0cyBpcyBub3QgZW1wdHlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBhY2N1bXVsYXRlZCkge1xuICAgICAgaWYgKGFjY3VtdWxhdGVkW2tleV0gIT09IDApIHtcbiAgICAgICAgYnVpbHRbbGFzdFVuaXRdICs9XG4gICAgICAgICAga2V5ID09PSBsYXN0VW5pdCA/IGFjY3VtdWxhdGVkW2tleV0gOiBhY2N1bXVsYXRlZFtrZXldIC8gdGhpcy5tYXRyaXhbbGFzdFVuaXRdW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBidWlsdCB9LCB0cnVlKS5ub3JtYWxpemUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5lZ2F0aXZlIG9mIHRoaXMgRHVyYXRpb24uXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSwgc2Vjb25kczogMzAgfSkubmVnYXRlKCkudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IC0xLCBzZWNvbmRzOiAtMzAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5lZ2F0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbmVnYXRlZCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpIHtcbiAgICAgIG5lZ2F0ZWRba10gPSB0aGlzLnZhbHVlc1trXSA9PT0gMCA/IDAgOiAtdGhpcy52YWx1ZXNba107XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogbmVnYXRlZCB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHllYXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy55ZWFycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcXVhcnRlcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgcXVhcnRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnF1YXJ0ZXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aHMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbW9udGhzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5tb250aHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlZWtzXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLndlZWtzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXlzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmRheXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhvdXJzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGhvdXJzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5ob3VycyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlcy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaW51dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taW51dGVzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgc2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWlsbGlzZWNvbmRzLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWlsbGlzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5taWxsaXNlY29uZHMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIER1cmF0aW9uIGlzIGludmFsaWQuIEludmFsaWQgZHVyYXRpb25zIGFyZSByZXR1cm5lZCBieSBkaWZmIG9wZXJhdGlvbnNcbiAgICogb24gaW52YWxpZCBEYXRlVGltZXMgb3IgSW50ZXJ2YWxzLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgRHVyYXRpb24gYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIER1cmF0aW9uIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWFsaXR5IGNoZWNrXG4gICAqIFR3byBEdXJhdGlvbnMgYXJlIGVxdWFsIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgdW5pdHMgYW5kIHRoZSBzYW1lIHZhbHVlcyBmb3IgZWFjaCB1bml0LlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubG9jLmVxdWFscyhvdGhlci5sb2MpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXEodjEsIHYyKSB7XG4gICAgICAvLyBDb25zaWRlciAwIGFuZCB1bmRlZmluZWQgYXMgZXF1YWxcbiAgICAgIGlmICh2MSA9PT0gdW5kZWZpbmVkIHx8IHYxID09PSAwKSByZXR1cm4gdjIgPT09IHVuZGVmaW5lZCB8fCB2MiA9PT0gMDtcbiAgICAgIHJldHVybiB2MSA9PT0gdjI7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKCFlcSh0aGlzLnZhbHVlc1t1XSwgb3RoZXIudmFsdWVzW3VdKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lLCB7IGZyaWVuZGx5RGF0ZVRpbWUgfSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IER1cmF0aW9uIGZyb20gXCIuL2R1cmF0aW9uLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBJbnZhbGlkSW50ZXJ2YWxFcnJvciB9IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgSW50ZXJ2YWxcIjtcblxuLy8gY2hlY2tzIGlmIHRoZSBzdGFydCBpcyBlcXVhbCB0byBvciBiZWZvcmUgdGhlIGVuZFxuZnVuY3Rpb24gdmFsaWRhdGVTdGFydEVuZChzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQgfHwgIXN0YXJ0LmlzVmFsaWQpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcIm1pc3Npbmcgb3IgaW52YWxpZCBzdGFydFwiKTtcbiAgfSBlbHNlIGlmICghZW5kIHx8ICFlbmQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIGVuZFwiKTtcbiAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFxuICAgICAgXCJlbmQgYmVmb3JlIHN0YXJ0XCIsXG4gICAgICBgVGhlIGVuZCBvZiBhbiBpbnRlcnZhbCBtdXN0IGJlIGFmdGVyIGl0cyBzdGFydCwgYnV0IHlvdSBoYWQgc3RhcnQ9JHtzdGFydC50b0lTTygpfSBhbmQgZW5kPSR7ZW5kLnRvSVNPKCl9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJbnRlcnZhbCBvYmplY3QgcmVwcmVzZW50cyBhIGhhbGYtb3BlbiBpbnRlcnZhbCBvZiB0aW1lLCB3aGVyZSBlYWNoIGVuZHBvaW50IGlzIGEge0BsaW5rIERhdGVUaW1lfS4gQ29uY2VwdHVhbGx5LCBpdCdzIGEgY29udGFpbmVyIGZvciB0aG9zZSB0d28gZW5kcG9pbnRzLCBhY2NvbXBhbmllZCBieSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgY29tcGFyaW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBJbnRlcnZhbDpcbiAqXG4gKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYW4gSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZnJvbURhdGVUaW1lc30sIHtAbGluayBJbnRlcnZhbCNhZnRlcn0sIHtAbGluayBJbnRlcnZhbCNiZWZvcmV9LCBvciB7QGxpbmsgSW50ZXJ2YWwjZnJvbUlTT30uXG4gKiAqICoqQWNjZXNzb3JzKiogVXNlIHtAbGluayBJbnRlcnZhbCNzdGFydH0gYW5kIHtAbGluayBJbnRlcnZhbCNlbmR9IHRvIGdldCB0aGUgc3RhcnQgYW5kIGVuZC5cbiAqICogKipJbnRlcnJvZ2F0aW9uKiogVG8gYW5hbHl6ZSB0aGUgSW50ZXJ2YWwsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjY291bnR9LCB7QGxpbmsgSW50ZXJ2YWwjbGVuZ3RofSwge0BsaW5rIEludGVydmFsI2hhc1NhbWV9LCB7QGxpbmsgSW50ZXJ2YWwjY29udGFpbnN9LCB7QGxpbmsgSW50ZXJ2YWwjaXNBZnRlcn0sIG9yIHtAbGluayBJbnRlcnZhbCNpc0JlZm9yZX0uXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKiBUbyBjcmVhdGUgb3RoZXIgSW50ZXJ2YWxzIG91dCBvZiB0aGlzIG9uZSwgdXNlIHtAbGluayBJbnRlcnZhbCNzZXR9LCB7QGxpbmsgSW50ZXJ2YWwjc3BsaXRBdH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEJ5fSwge0BsaW5rIEludGVydmFsI2RpdmlkZUVxdWFsbHl9LCB7QGxpbmsgSW50ZXJ2YWwjbWVyZ2V9LCB7QGxpbmsgSW50ZXJ2YWwjeG9yfSwge0BsaW5rIEludGVydmFsI3VuaW9ufSwge0BsaW5rIEludGVydmFsI2ludGVyc2VjdGlvbn0sIG9yIHtAbGluayBJbnRlcnZhbCNkaWZmZXJlbmNlfS5cbiAqICogKipDb21wYXJpc29uKiogVG8gY29tcGFyZSB0aGlzIEludGVydmFsIHRvIGFub3RoZXIgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI2VxdWFsc30sIHtAbGluayBJbnRlcnZhbCNvdmVybGFwc30sIHtAbGluayBJbnRlcnZhbCNhYnV0c1N0YXJ0fSwge0BsaW5rIEludGVydmFsI2FidXRzRW5kfSwge0BsaW5rIEludGVydmFsI2VuZ3VsZnN9XG4gKiAqICoqT3V0cHV0KiogVG8gY29udmVydCB0aGUgSW50ZXJ2YWwgaW50byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHNlZSB7QGxpbmsgSW50ZXJ2YWwjdG9TdHJpbmd9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU099LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09EYXRlfSwge0BsaW5rIEludGVydmFsI3RvSVNPVGltZX0sIHtAbGluayBJbnRlcnZhbCN0b0Zvcm1hdH0sIGFuZCB7QGxpbmsgSW50ZXJ2YWwjdG9EdXJhdGlvbn0uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEludGVydmFsIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnMgPSBjb25maWcuc3RhcnQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5lID0gY29uZmlnLmVuZDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBjb25maWcuaW52YWxpZCB8fCBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkludGVydmFsID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBJbnRlcnZhbCBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkSW50ZXJ2YWxFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGEgc3RhcnQgRGF0ZVRpbWUgYW5kIGFuIGVuZCBEYXRlVGltZS4gSW5jbHVzaXZlIG9mIHRoZSBzdGFydCBidXQgbm90IHRoZSBlbmQuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRGF0ZVRpbWVzKHN0YXJ0LCBlbmQpIHtcbiAgICBjb25zdCBidWlsdFN0YXJ0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCksXG4gICAgICBidWlsdEVuZCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSB2YWxpZGF0ZVN0YXJ0RW5kKGJ1aWx0U3RhcnQsIGJ1aWx0RW5kKTtcblxuICAgIGlmICh2YWxpZGF0ZUVycm9yID09IG51bGwpIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoe1xuICAgICAgICBzdGFydDogYnVpbHRTdGFydCxcbiAgICAgICAgZW5kOiBidWlsdEVuZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IHN0YXJ0XG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbC5cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgYWZ0ZXIoc3RhcnQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoc3RhcnQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0LCBkdC5wbHVzKGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIGVuZCBEYXRlVGltZSBhbmQgYSBEdXJhdGlvbiB0byBleHRlbmQgYmFja3dhcmRzIHRvLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfERhdGV8T2JqZWN0fSBlbmRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBiZWZvcmUoZW5kLCBkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLFxuICAgICAgZHQgPSBmcmllbmRseURhdGVUaW1lKGVuZCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQubWludXMoZHVyKSwgZHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBJbnRlcnZhbCBmcm9tIGFuIElTTyA4NjAxIHN0cmluZy5cbiAgICogQWNjZXB0cyBgPHN0YXJ0Pi88ZW5kPmAsIGA8c3RhcnQ+LzxkdXJhdGlvbj5gLCBhbmQgYDxkdXJhdGlvbj4vPGVuZD5gIGZvcm1hdHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIElTTyBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIG9wdGlvbnMgdG8gcGFzcyB7QGxpbmsgRGF0ZVRpbWUjZnJvbUlTT30gYW5kIG9wdGlvbmFsbHkge0BsaW5rIER1cmF0aW9uI2Zyb21JU099XG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzKSB7XG4gICAgY29uc3QgW3MsIGVdID0gKHRleHQgfHwgXCJcIikuc3BsaXQoXCIvXCIsIDIpO1xuICAgIGlmIChzICYmIGUpIHtcbiAgICAgIGxldCBzdGFydCwgc3RhcnRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RhcnQgPSBEYXRlVGltZS5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBzdGFydElzVmFsaWQgPSBzdGFydC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzdGFydElzVmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVuZCwgZW5kSXNWYWxpZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGVuZCA9IERhdGVUaW1lLmZyb21JU08oZSwgb3B0cyk7XG4gICAgICAgIGVuZElzVmFsaWQgPSBlbmQuaXNWYWxpZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhcnRJc1ZhbGlkICYmIGVuZElzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmFmdGVyKHN0YXJ0LCBkdXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZElzVmFsaWQpIHtcbiAgICAgICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUlTTyhzLCBvcHRzKTtcbiAgICAgICAgaWYgKGR1ci5pc1ZhbGlkKSB7XG4gICAgICAgICAgcmV0dXJuIEludGVydmFsLmJlZm9yZShlbmQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIEludGVydmFsLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNJbnRlcnZhbChvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkludGVydmFsKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IHN0YXJ0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnMgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVuZCBvZiB0aGUgSW50ZXJ2YWxcbiAgICogQHR5cGUge0RhdGVUaW1lfVxuICAgKi9cbiAgZ2V0IGVuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhdCBsZWFzdCBpdHMgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgSW50ZXJ2YWwgaXNuJ3QgJ2JhY2t3YXJkcycuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZFJlYXNvbiA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGVycm9yIGNvZGUgaWYgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBJbnRlcnZhbCBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRSZWFzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5yZWFzb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgSW50ZXJ2YWwgYmVjYW1lIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZEV4cGxhbmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQuZXhwbGFuYXRpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwgaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byByZXR1cm4gdGhlIGxlbmd0aCBpbi5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgbGVuZ3RoKHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9EdXJhdGlvbiguLi5bdW5pdF0pLmdldCh1bml0KSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBtaW51dGVzLCBob3VycywgZGF5cywgbW9udGhzLCBvciB5ZWFycyBpbmNsdWRlZCBpbiB0aGUgSW50ZXJ2YWwsIGV2ZW4gaW4gcGFydC5cbiAgICogVW5saWtlIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9IHRoaXMgY291bnRzIHNlY3Rpb25zIG9mIHRoZSBjYWxlbmRhciwgbm90IHBlcmlvZHMgb2YgdGltZSwgZS5nLiBzcGVjaWZ5aW5nICdkYXknXG4gICAqIGFza3MgJ3doYXQgZGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJ2YWw/Jywgbm90ICdob3cgbWFueSBkYXlzIGxvbmcgaXMgdGhpcyBpbnRlcnZhbD8nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbdW5pdD0nbWlsbGlzZWNvbmRzJ10gLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBjb3VudCh1bml0ID0gXCJtaWxsaXNlY29uZHNcIikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gTmFOO1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydC5zdGFydE9mKHVuaXQpLFxuICAgICAgZW5kID0gdGhpcy5lbmQuc3RhcnRPZih1bml0KTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpKSArIDE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBhbmQgZW5kIGFyZSBib3RoIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc1NhbWUodW5pdCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmlzRW1wdHkoKSB8fCB0aGlzLmUubWludXMoMSkuaGFzU2FtZSh0aGlzLnMsIHVuaXQpIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBEYXRlVGltZXMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnMudmFsdWVPZigpID09PSB0aGlzLmUudmFsdWVPZigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBzdGFydCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIERhdGVUaW1lLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBkYXRlVGltZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNBZnRlcihkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwncyBlbmQgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0JlZm9yZShkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZSA8PSBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBjb250YWlucyhkYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBkYXRlVGltZSAmJiB0aGlzLmUgPiBkYXRlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldHNcIiB0aGUgc3RhcnQgYW5kL29yIGVuZCBkYXRlcy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gdGhlIHZhbHVlcyB0byBzZXRcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLnN0YXJ0IC0gdGhlIHN0YXJ0aW5nIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IHZhbHVlcy5lbmQgLSB0aGUgZW5kaW5nIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc2V0KHsgc3RhcnQsIGVuZCB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQgfHwgdGhpcy5zLCBlbmQgfHwgdGhpcy5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGF0IGVhY2ggb2YgdGhlIHNwZWNpZmllZCBEYXRlVGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIHVuaXQgb2YgdGltZSB0byBjb3VudC5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzcGxpdEF0KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgY29uc3Qgc29ydGVkID0gZGF0ZVRpbWVzXG4gICAgICAgIC5tYXAoZnJpZW5kbHlEYXRlVGltZSlcbiAgICAgICAgLmZpbHRlcigoZCkgPT4gdGhpcy5jb250YWlucyhkKSlcbiAgICAgICAgLnNvcnQoKSxcbiAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaSA9IDA7XG5cbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSBzb3J0ZWRbaV0gfHwgdGhpcy5lLFxuICAgICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHNtYWxsZXIgSW50ZXJ2YWxzLCBlYWNoIG9mIHRoZSBzcGVjaWZpZWQgbGVuZ3RoLlxuICAgKiBMZWZ0IG92ZXIgdGltZSBpcyBncm91cGVkIGludG8gYSBzbWFsbGVyIGludGVydmFsXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgbGVuZ3RoIG9mIGVhY2ggcmVzdWx0aW5nIGludGVydmFsLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QnkoZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFkdXIuaXNWYWxpZCB8fCBkdXIuYXMoXCJtaWxsaXNlY29uZHNcIikgPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgeyBzIH0gPSB0aGlzLFxuICAgICAgaWR4ID0gMSxcbiAgICAgIG5leHQ7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKHMgPCB0aGlzLmUpIHtcbiAgICAgIGNvbnN0IGFkZGVkID0gdGhpcy5zdGFydC5wbHVzKGR1ci5tYXBVbml0cygoeCkgPT4geCAqIGlkeCkpO1xuICAgICAgbmV4dCA9ICthZGRlZCA+ICt0aGlzLmUgPyB0aGlzLmUgOiBhZGRlZDtcbiAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIG5leHQpKTtcbiAgICAgIHMgPSBuZXh0O1xuICAgICAgaWR4ICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgdGhpcyBJbnRlcnZhbCBpbnRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNtYWxsZXIgaW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyT2ZQYXJ0cyAtIFRoZSBudW1iZXIgb2YgSW50ZXJ2YWxzIHRvIGRpdmlkZSB0aGUgSW50ZXJ2YWwgaW50by5cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBkaXZpZGVFcXVhbGx5KG51bWJlck9mUGFydHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKSAvIG51bWJlck9mUGFydHMpLnNsaWNlKDAsIG51bWJlck9mUGFydHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgb3ZlcmxhcHMgd2l0aCB0aGUgc3BlY2lmaWVkIEludGVydmFsXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBvdmVybGFwcyhvdGhlcikge1xuICAgIHJldHVybiB0aGlzLmUgPiBvdGhlci5zICYmIHRoaXMucyA8IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBhZGphY2VudCB0byB0aGUgc3BlY2lmaWVkIEludGVydmFsJ3Mgc3RhcnQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c1N0YXJ0KG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK3RoaXMuZSA9PT0gK290aGVyLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBlbmQuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBhYnV0c0VuZChvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICtvdGhlci5lID09PSArdGhpcy5zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgZW5ndWxmcyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZW5ndWxmcyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucyA8PSBvdGhlci5zICYmIHRoaXMuZSA+PSBvdGhlci5lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgaGFzIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgYXMgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlci5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucy5lcXVhbHMob3RoZXIucykgJiYgdGhpcy5lLmVxdWFscyhvdGhlci5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWF4aW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWluaW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogUmV0dXJucyBudWxsIGlmIHRoZSBpbnRlcnNlY3Rpb24gaXMgZW1wdHksIG1lYW5pbmcsIHRoZSBpbnRlcnZhbHMgZG9uJ3QgaW50ZXJzZWN0LlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIGludGVyc2VjdGlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zID4gb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lIDwgb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG5cbiAgICBpZiAocyA+PSBlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoaXMgSW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHJlc3VsdGluZyBJbnRlcnZhbCBoYXMgdGhlIG1pbmltdW0gc3RhcnQgdGltZSBhbmQgdGhlIG1heGltdW0gZW5kIHRpbWUgb2YgdGhlIHR3byBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW5pb24ob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcyA9IHRoaXMucyA8IG90aGVyLnMgPyB0aGlzLnMgOiBvdGhlci5zLFxuICAgICAgZSA9IHRoaXMuZSA+IG90aGVyLmUgPyB0aGlzLmUgOiBvdGhlci5lO1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHMsIGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIGFuIGFycmF5IG9mIEludGVydmFscyBpbnRvIGEgZXF1aXZhbGVudCBtaW5pbWFsIHNldCBvZiBJbnRlcnZhbHMuXG4gICAqIENvbWJpbmVzIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJnZShpbnRlcnZhbHMpIHtcbiAgICBjb25zdCBbZm91bmQsIGZpbmFsXSA9IGludGVydmFsc1xuICAgICAgLnNvcnQoKGEsIGIpID0+IGEucyAtIGIucylcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChbc29mYXIsIGN1cnJlbnRdLCBpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBpdGVtXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQub3ZlcmxhcHMoaXRlbSkgfHwgY3VycmVudC5hYnV0c1N0YXJ0KGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLCBjdXJyZW50LnVuaW9uKGl0ZW0pXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtzb2Zhci5jb25jYXQoW2N1cnJlbnRdKSwgaXRlbV07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbW10sIG51bGxdXG4gICAgICApO1xuICAgIGlmIChmaW5hbCkge1xuICAgICAgZm91bmQucHVzaChmaW5hbCk7XG4gICAgfVxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIHJlcHJlc2VudGluZyB0aGUgc3BhbnMgb2YgdGltZSB0aGF0IG9ubHkgYXBwZWFyIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHhvcihpbnRlcnZhbHMpIHtcbiAgICBsZXQgc3RhcnQgPSBudWxsLFxuICAgICAgY3VycmVudENvdW50ID0gMDtcbiAgICBjb25zdCByZXN1bHRzID0gW10sXG4gICAgICBlbmRzID0gaW50ZXJ2YWxzLm1hcCgoaSkgPT4gW1xuICAgICAgICB7IHRpbWU6IGkucywgdHlwZTogXCJzXCIgfSxcbiAgICAgICAgeyB0aW1lOiBpLmUsIHR5cGU6IFwiZVwiIH0sXG4gICAgICBdKSxcbiAgICAgIGZsYXR0ZW5lZCA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4uZW5kcyksXG4gICAgICBhcnIgPSBmbGF0dGVuZWQuc29ydCgoYSwgYikgPT4gYS50aW1lIC0gYi50aW1lKTtcblxuICAgIGZvciAoY29uc3QgaSBvZiBhcnIpIHtcbiAgICAgIGN1cnJlbnRDb3VudCArPSBpLnR5cGUgPT09IFwic1wiID8gMSA6IC0xO1xuXG4gICAgICBpZiAoY3VycmVudENvdW50ID09PSAxKSB7XG4gICAgICAgIHN0YXJ0ID0gaS50aW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXJ0ICYmICtzdGFydCAhPT0gK2kudGltZSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHN0YXJ0LCBpLnRpbWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gSW50ZXJ2YWwubWVyZ2UocmVzdWx0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgc3BhbiBvZiB0aW1lIGluIHRoaXMgSW50ZXJ2YWwgdGhhdCBkb2Vzbid0IG92ZXJsYXAgd2l0aCBhbnkgb2YgdGhlIHNwZWNpZmllZCBJbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7Li4uSW50ZXJ2YWx9IGludGVydmFsc1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpZmZlcmVuY2UoLi4uaW50ZXJ2YWxzKSB7XG4gICAgcmV0dXJuIEludGVydmFsLnhvcihbdGhpc10uY29uY2F0KGludGVydmFscykpXG4gICAgICAubWFwKChpKSA9PiB0aGlzLmludGVyc2VjdGlvbihpKSlcbiAgICAgIC5maWx0ZXIoKGkpID0+IGkgJiYgIWkuaXNFbXB0eSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgYXBwcm9wcmlhdGUgZm9yIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgWyR7dGhpcy5zLnRvSVNPKCl9IFx1MjAxMyAke3RoaXMuZS50b0lTTygpfSlgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEludGVydmFsLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTTyhvcHRzKX0vJHt0aGlzLmUudG9JU08ob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZGF0ZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgdGltZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPRGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT0RhdGUoKX0vJHt0aGlzLmUudG9JU09EYXRlKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGltZSBvZiB0aGlzIEludGVydmFsLlxuICAgKiBUaGUgZGF0ZSBjb21wb25lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVGhlIHNhbWUgb3B0aW9ucyBhcyB7QGxpbmsgRGF0ZVRpbWUjdG9JU099XG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPVGltZShvcHRzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9JU09UaW1lKG9wdHMpfS8ke3RoaXMuZS50b0lTT1RpbWUob3B0cyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlRm9ybWF0IC0gdGhlIGZvcm1hdCBzdHJpbmcuIFRoaXMgc3RyaW5nIGZvcm1hdHMgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZS4gU2VlIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0gZm9yIGRldGFpbHMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gICcgXHUyMDEzICddIC0gYSBzZXBhcmF0b3IgdG8gcGxhY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCByZXByZXNlbnRhdGlvbnNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9Gb3JtYXQoZGF0ZUZvcm1hdCwgeyBzZXBhcmF0b3IgPSBcIiBcdTIwMTMgXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBJTlZBTElEO1xuICAgIHJldHVybiBgJHt0aGlzLnMudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9JHtzZXBhcmF0b3J9JHt0aGlzLmUudG9Gb3JtYXQoZGF0ZUZvcm1hdCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEdXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHRpbWUgc3Bhbm5lZCBieSB0aGlzIGludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3VuaXQ9WydtaWxsaXNlY29uZHMnXV0gLSB0aGUgdW5pdCBvciB1bml0cyAoc3VjaCBhcyAnaG91cnMnIG9yICdkYXlzJykgdG8gaW5jbHVkZSBpbiB0aGUgZHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCkudG9PYmplY3QoKSAvLz0+IHsgbWlsbGlzZWNvbmRzOiA4ODQ4OTI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ2RheXMnKS50b09iamVjdCgpIC8vPT4geyBkYXlzOiAxLjAyNDE4MTIxNTI3Nzc3NzggfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LjgyMDk1IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbihbJ2hvdXJzJywgJ21pbnV0ZXMnLCAnc2Vjb25kcyddKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjQsIG1pbnV0ZXM6IDM0LCBzZWNvbmRzOiA0OS4yNTcgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKCdzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgc2Vjb25kczogODg0ODkuMjU3IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICB0b0R1cmF0aW9uKHVuaXQsIG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQodGhpcy5pbnZhbGlkUmVhc29uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZS5kaWZmKHRoaXMucywgdW5pdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogUnVuIG1hcEZuIG9uIHRoZSBpbnRlcnZhbCBzdGFydCBhbmQgZW5kLCByZXR1cm5pbmcgYSBuZXcgSW50ZXJ2YWwgZnJvbSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtYXBGblxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnRvVVRDKCkpXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLm1hcEVuZHBvaW50cyhlbmRwb2ludCA9PiBlbmRwb2ludC5wbHVzKHsgaG91cnM6IDIgfSkpXG4gICAqL1xuICBtYXBFbmRwb2ludHMobWFwRm4pIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhtYXBGbih0aGlzLnMpLCBtYXBGbih0aGlzLmUpKTtcbiAgfVxufVxuIiwgImltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5cbmltcG9ydCB7IGhhc1JlbGF0aXZlIH0gZnJvbSBcIi4vaW1wbC91dGlsLmpzXCI7XG5cbi8qKlxuICogVGhlIEluZm8gY2xhc3MgY29udGFpbnMgc3RhdGljIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcgZ2VuZXJhbCB0aW1lIGFuZCBkYXRlIHJlbGF0ZWQgZGF0YS4gRm9yIGV4YW1wbGUsIGl0IGhhcyBtZXRob2RzIGZvciBmaW5kaW5nIG91dCBpZiBhIHRpbWUgem9uZSBoYXMgYSBEU1QsIGZvciBsaXN0aW5nIHRoZSBtb250aHMgaW4gYW55IHN1cHBvcnRlZCBsb2NhbGUsIGFuZCBmb3IgZGlzY292ZXJpbmcgd2hpY2ggb2YgTHV4b24gZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5mbyB7XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgY29udGFpbnMgYSBEU1QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gWm9uZSB0byBjaGVjay4gRGVmYXVsdHMgdG8gdGhlIGVudmlyb25tZW50J3MgbG9jYWwgem9uZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBoYXNEU1Qoem9uZSA9IFNldHRpbmdzLmRlZmF1bHRab25lKSB7XG4gICAgY29uc3QgcHJvdG8gPSBEYXRlVGltZS5ub3coKS5zZXRab25lKHpvbmUpLnNldCh7IG1vbnRoOiAxMiB9KTtcblxuICAgIHJldHVybiAhem9uZS5pc1VuaXZlcnNhbCAmJiBwcm90by5vZmZzZXQgIT09IHByb3RvLnNldCh7IG1vbnRoOiA2IH0pLm9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgc3BlY2lmaWVkIHpvbmUgaXMgYSB2YWxpZCBJQU5BIHNwZWNpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBab25lIHRvIGNoZWNrXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZElBTkFab25lKHpvbmUpIHtcbiAgICByZXR1cm4gSUFOQVpvbmUuaXNWYWxpZFpvbmUoem9uZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGlucHV0IGludG8gYSB7QGxpbmsgWm9uZX0gaW5zdGFuY2UuXG4gICAqXG4gICAqICogSWYgYGlucHV0YCBpcyBhbHJlYWR5IGEgWm9uZSBpbnN0YW5jZSwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYSBzdHJpbmcgY29udGFpbmluZyBhIHZhbGlkIHRpbWUgem9uZSBuYW1lLCBhIFpvbmUgaW5zdGFuY2VcbiAgICogICB3aXRoIHRoYXQgbmFtZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIHRoYXQgZG9lc24ndCByZWZlciB0byBhIGtub3duIHRpbWUgem9uZSwgYSBab25lXG4gICAqICAgaW5zdGFuY2Ugd2l0aCB7QGxpbmsgWm9uZSNpc1ZhbGlkfSA9PSBmYWxzZSBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXQgaXMgYSBudW1iZXIsIGEgWm9uZSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZml4ZWQgb2Zmc2V0XG4gICAqICAgaW4gbWludXRlcyBpcyByZXR1cm5lZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYCwgdGhlIGRlZmF1bHQgem9uZSBpcyByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZXxudW1iZXJ9IFtpbnB1dF0gLSB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm4ge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplWm9uZShpbnB1dCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGlucHV0LCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHN0YW5kYWxvbmUgbW9udGggbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygpWzBdIC8vPT4gJ0phbnVhcnknXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdzaG9ydCcpWzBdIC8vPT4gJ0phbidcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ251bWVyaWMnKVswXSAvLz0+ICcxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnLCB7IGxvY2FsZTogJ2ZyLUNBJyB9IClbMF0gLy89PiAnamFudi4nXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdudW1lcmljJywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAnXHUwNjYxJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbG9uZycsIHsgb3V0cHV0Q2FsZW5kYXI6ICdpc2xhbWljJyB9KVswXSAvLz0+ICdSYWJpXHUwMkJCIEknXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1vbnRocyhcbiAgICBsZW5ndGggPSBcImxvbmdcIixcbiAgICB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwsIG91dHB1dENhbGVuZGFyID0gXCJncmVnb3J5XCIgfSA9IHt9XG4gICkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKSkubW9udGhzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCBtb250aCBuYW1lcy5cbiAgICogRm9ybWF0IG1vbnRocyBkaWZmZXIgZnJvbSBzdGFuZGFsb25lIG1vbnRocyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGRheSBvZiB0aGUgbW9udGguIEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGF0XG4gICAqIGNoYW5nZXMgdGhlIHN0cmluZy5cbiAgICogU2VlIHtAbGluayBJbmZvI21vbnRoc31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibnVtZXJpY1wiLCBcIjItZGlnaXRcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm51bWJlcmluZ1N5c3RlbT1udWxsXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NPYmo9bnVsbF0gLSBhbiBleGlzdGluZyBsb2NhbGUgb2JqZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXI9J2dyZWdvcnknXSAtIHRoZSBjYWxlbmRhclxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtb250aHNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsLCBvdXRwdXRDYWxlbmRhciA9IFwiZ3JlZ29yeVwiIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIHdlZWsgbmFtZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIHdlZWtkYXkgcmVwcmVzZW50YXRpb24sIHN1Y2ggYXMgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygpWzBdIC8vPT4gJ01vbmRheSdcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnKVswXSAvLz0+ICdNb24nXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSlbMF0gLy89PiAnbHVuLidcbiAgICogQGV4YW1wbGUgSW5mby53ZWVrZGF5cygnc2hvcnQnLCB7IGxvY2FsZTogJ2FyJyB9KVswXSAvLz0+ICdcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MkJcdTA2NDZcdTA2NEFcdTA2NDYnXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHdlZWtkYXlzKGxlbmd0aCA9IFwibG9uZ1wiLCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwsIGxvY09iaiA9IG51bGwgfSA9IHt9KSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgbnVsbCkpLndlZWtkYXlzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGZvcm1hdCB3ZWVrIG5hbWVzLlxuICAgKiBGb3JtYXQgd2Vla2RheXMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSB3ZWVrZGF5cyBpbiB0aGF0IHRoZXkncmUgbWVhbnQgdG8gYXBwZWFyIG5leHQgdG8gbW9yZSBkYXRlIGluZm9ybWF0aW9uLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdFxuICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuXG4gICAqIFNlZSB7QGxpbmsgSW5mbyN3ZWVrZGF5c31cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtsZW5ndGg9J2xvbmcnXSAtIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPW51bGxdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgd2Vla2RheXNGb3JtYXQoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBudWxsKSkud2Vla2RheXMobGVuZ3RoLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgbWVyaWRpZW1zLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZV0gLSB0aGUgbG9jYWxlIGNvZGVcbiAgICogQGV4YW1wbGUgSW5mby5tZXJpZGllbXMoKSAvLz0+IFsgJ0FNJywgJ1BNJyBdXG4gICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKHsgbG9jYWxlOiAnbXknIH0pIC8vPT4gWyAnXHUxMDE0XHUxMDM2XHUxMDE0XHUxMDAwXHUxMDNBJywgJ1x1MTAwQVx1MTAxNFx1MTAzMScgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtZXJpZGllbXMoeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSkubWVyaWRpZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIGVyYXMsIHN1Y2ggYXMgWydCQycsICdBRCddLiBUaGUgbG9jYWxlIGNhbiBiZSBzcGVjaWZpZWQsIGJ1dCB0aGUgY2FsZW5kYXIgc3lzdGVtIGlzIGFsd2F5cyBHcmVnb3JpYW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdzaG9ydCddIC0gdGhlIGxlbmd0aCBvZiB0aGUgZXJhIHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwic2hvcnRcIiBvciBcImxvbmdcIi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygpIC8vPT4gWyAnQkMnLCAnQUQnIF1cbiAgICogQGV4YW1wbGUgSW5mby5lcmFzKCdsb25nJykgLy89PiBbICdCZWZvcmUgQ2hyaXN0JywgJ0Fubm8gRG9taW5pJyBdXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycsIHsgbG9jYWxlOiAnZnInIH0pIC8vPT4gWyAnYXZhbnQgSlx1MDBFOXN1cy1DaHJpc3QnLCAnYXByXHUwMEU4cyBKXHUwMEU5c3VzLUNocmlzdCcgXVxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBlcmFzKGxlbmd0aCA9IFwic2hvcnRcIiwgeyBsb2NhbGUgPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVsbCwgXCJncmVnb3J5XCIpLmVyYXMobGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhdmFpbGFibGUgZmVhdHVyZXMgaW4gdGhpcyBlbnZpcm9ubWVudC5cbiAgICogU29tZSBmZWF0dXJlcyBvZiBMdXhvbiBhcmUgbm90IGF2YWlsYWJsZSBpbiBhbGwgZW52aXJvbm1lbnRzLiBGb3IgZXhhbXBsZSwgb24gb2xkZXIgYnJvd3NlcnMsIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZyBzdXBwb3J0IGlzIG5vdCBhdmFpbGFibGUuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGZpZ3VyZSBvdXQgaWYgdGhhdCdzIHRoZSBjYXNlLlxuICAgKiBLZXlzOlxuICAgKiAqIGByZWxhdGl2ZWA6IHdoZXRoZXIgdGhpcyBlbnZpcm9ubWVudCBzdXBwb3J0cyByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmdcbiAgICogQGV4YW1wbGUgSW5mby5mZWF0dXJlcygpIC8vPT4geyByZWxhdGl2ZTogZmFsc2UgfVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZmVhdHVyZXMoKSB7XG4gICAgcmV0dXJuIHsgcmVsYXRpdmU6IGhhc1JlbGF0aXZlKCkgfTtcbiAgfVxufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi4vZHVyYXRpb24uanNcIjtcblxuZnVuY3Rpb24gZGF5RGlmZihlYXJsaWVyLCBsYXRlcikge1xuICBjb25zdCB1dGNEYXlTdGFydCA9IChkdCkgPT4gZHQudG9VVEMoMCwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pLnN0YXJ0T2YoXCJkYXlcIikudmFsdWVPZigpLFxuICAgIG1zID0gdXRjRGF5U3RhcnQobGF0ZXIpIC0gdXRjRGF5U3RhcnQoZWFybGllcik7XG4gIHJldHVybiBNYXRoLmZsb29yKER1cmF0aW9uLmZyb21NaWxsaXMobXMpLmFzKFwiZGF5c1wiKSk7XG59XG5cbmZ1bmN0aW9uIGhpZ2hPcmRlckRpZmZzKGN1cnNvciwgbGF0ZXIsIHVuaXRzKSB7XG4gIGNvbnN0IGRpZmZlcnMgPSBbXG4gICAgW1wieWVhcnNcIiwgKGEsIGIpID0+IGIueWVhciAtIGEueWVhcl0sXG4gICAgW1wicXVhcnRlcnNcIiwgKGEsIGIpID0+IGIucXVhcnRlciAtIGEucXVhcnRlcl0sXG4gICAgW1wibW9udGhzXCIsIChhLCBiKSA9PiBiLm1vbnRoIC0gYS5tb250aCArIChiLnllYXIgLSBhLnllYXIpICogMTJdLFxuICAgIFtcbiAgICAgIFwid2Vla3NcIixcbiAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBkYXlEaWZmKGEsIGIpO1xuICAgICAgICByZXR1cm4gKGRheXMgLSAoZGF5cyAlIDcpKSAvIDc7XG4gICAgICB9LFxuICAgIF0sXG4gICAgW1wiZGF5c1wiLCBkYXlEaWZmXSxcbiAgXTtcblxuICBjb25zdCByZXN1bHRzID0ge307XG4gIGxldCBsb3dlc3RPcmRlciwgaGlnaFdhdGVyO1xuXG4gIGZvciAoY29uc3QgW3VuaXQsIGRpZmZlcl0gb2YgZGlmZmVycykge1xuICAgIGlmICh1bml0cy5pbmRleE9mKHVuaXQpID49IDApIHtcbiAgICAgIGxvd2VzdE9yZGVyID0gdW5pdDtcblxuICAgICAgbGV0IGRlbHRhID0gZGlmZmVyKGN1cnNvciwgbGF0ZXIpO1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIH0pO1xuXG4gICAgICBpZiAoaGlnaFdhdGVyID4gbGF0ZXIpIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBsdXMoeyBbdW5pdF06IGRlbHRhIC0gMSB9KTtcbiAgICAgICAgZGVsdGEgLT0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnNvciA9IGhpZ2hXYXRlcjtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0c1t1bml0XSA9IGRlbHRhO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbY3Vyc29yLCByZXN1bHRzLCBoaWdoV2F0ZXIsIGxvd2VzdE9yZGVyXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGVhcmxpZXIsIGxhdGVyLCB1bml0cywgb3B0cykge1xuICBsZXQgW2N1cnNvciwgcmVzdWx0cywgaGlnaFdhdGVyLCBsb3dlc3RPcmRlcl0gPSBoaWdoT3JkZXJEaWZmcyhlYXJsaWVyLCBsYXRlciwgdW5pdHMpO1xuXG4gIGNvbnN0IHJlbWFpbmluZ01pbGxpcyA9IGxhdGVyIC0gY3Vyc29yO1xuXG4gIGNvbnN0IGxvd2VyT3JkZXJVbml0cyA9IHVuaXRzLmZpbHRlcihcbiAgICAodSkgPT4gW1wiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiXS5pbmRleE9mKHUpID49IDBcbiAgKTtcblxuICBpZiAobG93ZXJPcmRlclVuaXRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChoaWdoV2F0ZXIgPCBsYXRlcikge1xuICAgICAgaGlnaFdhdGVyID0gY3Vyc29yLnBsdXMoeyBbbG93ZXN0T3JkZXJdOiAxIH0pO1xuICAgIH1cblxuICAgIGlmIChoaWdoV2F0ZXIgIT09IGN1cnNvcikge1xuICAgICAgcmVzdWx0c1tsb3dlc3RPcmRlcl0gPSAocmVzdWx0c1tsb3dlc3RPcmRlcl0gfHwgMCkgKyByZW1haW5pbmdNaWxsaXMgLyAoaGlnaFdhdGVyIC0gY3Vyc29yKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLmZyb21PYmplY3QocmVzdWx0cywgb3B0cyk7XG5cbiAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIER1cmF0aW9uLmZyb21NaWxsaXMocmVtYWluaW5nTWlsbGlzLCBvcHRzKVxuICAgICAgLnNoaWZ0VG8oLi4ubG93ZXJPcmRlclVuaXRzKVxuICAgICAgLnBsdXMoZHVyYXRpb24pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkdXJhdGlvbjtcbiAgfVxufVxuIiwgImNvbnN0IG51bWJlcmluZ1N5c3RlbXMgPSB7XG4gIGFyYWI6IFwiW1xcdTA2NjAtXFx1MDY2OV1cIixcbiAgYXJhYmV4dDogXCJbXFx1MDZGMC1cXHUwNkY5XVwiLFxuICBiYWxpOiBcIltcXHUxQjUwLVxcdTFCNTldXCIsXG4gIGJlbmc6IFwiW1xcdTA5RTYtXFx1MDlFRl1cIixcbiAgZGV2YTogXCJbXFx1MDk2Ni1cXHUwOTZGXVwiLFxuICBmdWxsd2lkZTogXCJbXFx1RkYxMC1cXHVGRjE5XVwiLFxuICBndWpyOiBcIltcXHUwQUU2LVxcdTBBRUZdXCIsXG4gIGhhbmlkZWM6IFwiW1x1MzAwN3xcdTRFMDB8XHU0RThDfFx1NEUwOXxcdTU2REJ8XHU0RTk0fFx1NTE2RHxcdTRFMDN8XHU1MTZCfFx1NEU1RF1cIixcbiAga2htcjogXCJbXFx1MTdFMC1cXHUxN0U5XVwiLFxuICBrbmRhOiBcIltcXHUwQ0U2LVxcdTBDRUZdXCIsXG4gIGxhb286IFwiW1xcdTBFRDAtXFx1MEVEOV1cIixcbiAgbGltYjogXCJbXFx1MTk0Ni1cXHUxOTRGXVwiLFxuICBtbHltOiBcIltcXHUwRDY2LVxcdTBENkZdXCIsXG4gIG1vbmc6IFwiW1xcdTE4MTAtXFx1MTgxOV1cIixcbiAgbXltcjogXCJbXFx1MTA0MC1cXHUxMDQ5XVwiLFxuICBvcnlhOiBcIltcXHUwQjY2LVxcdTBCNkZdXCIsXG4gIHRhbWxkZWM6IFwiW1xcdTBCRTYtXFx1MEJFRl1cIixcbiAgdGVsdTogXCJbXFx1MEM2Ni1cXHUwQzZGXVwiLFxuICB0aGFpOiBcIltcXHUwRTUwLVxcdTBFNTldXCIsXG4gIHRpYnQ6IFwiW1xcdTBGMjAtXFx1MEYyOV1cIixcbiAgbGF0bjogXCJcXFxcZFwiLFxufTtcblxuY29uc3QgbnVtYmVyaW5nU3lzdGVtc1VURjE2ID0ge1xuICBhcmFiOiBbMTYzMiwgMTY0MV0sXG4gIGFyYWJleHQ6IFsxNzc2LCAxNzg1XSxcbiAgYmFsaTogWzY5OTIsIDcwMDFdLFxuICBiZW5nOiBbMjUzNCwgMjU0M10sXG4gIGRldmE6IFsyNDA2LCAyNDE1XSxcbiAgZnVsbHdpZGU6IFs2NTI5NiwgNjUzMDNdLFxuICBndWpyOiBbMjc5MCwgMjc5OV0sXG4gIGtobXI6IFs2MTEyLCA2MTIxXSxcbiAga25kYTogWzMzMDIsIDMzMTFdLFxuICBsYW9vOiBbMzc5MiwgMzgwMV0sXG4gIGxpbWI6IFs2NDcwLCA2NDc5XSxcbiAgbWx5bTogWzM0MzAsIDM0MzldLFxuICBtb25nOiBbNjE2MCwgNjE2OV0sXG4gIG15bXI6IFs0MTYwLCA0MTY5XSxcbiAgb3J5YTogWzI5MTgsIDI5MjddLFxuICB0YW1sZGVjOiBbMzA0NiwgMzA1NV0sXG4gIHRlbHU6IFszMTc0LCAzMTgzXSxcbiAgdGhhaTogWzM2NjQsIDM2NzNdLFxuICB0aWJ0OiBbMzg3MiwgMzg4MV0sXG59O1xuXG5jb25zdCBoYW5pZGVjQ2hhcnMgPSBudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMucmVwbGFjZSgvW1xcW3xcXF1dL2csIFwiXCIpLnNwbGl0KFwiXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEaWdpdHMoc3RyKSB7XG4gIGxldCB2YWx1ZSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgdmFsdWUgPSBcIlwiO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cbiAgICAgIGlmIChzdHJbaV0uc2VhcmNoKG51bWJlcmluZ1N5c3RlbXMuaGFuaWRlYykgIT09IC0xKSB7XG4gICAgICAgIHZhbHVlICs9IGhhbmlkZWNDaGFycy5pbmRleE9mKHN0cltpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBudW1iZXJpbmdTeXN0ZW1zVVRGMTYpIHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0gbnVtYmVyaW5nU3lzdGVtc1VURjE2W2tleV07XG4gICAgICAgICAgaWYgKGNvZGUgPj0gbWluICYmIGNvZGUgPD0gbWF4KSB7XG4gICAgICAgICAgICB2YWx1ZSArPSBjb2RlIC0gbWluO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZ2l0UmVnZXgoeyBudW1iZXJpbmdTeXN0ZW0gfSwgYXBwZW5kID0gXCJcIikge1xuICByZXR1cm4gbmV3IFJlZ0V4cChgJHtudW1iZXJpbmdTeXN0ZW1zW251bWJlcmluZ1N5c3RlbSB8fCBcImxhdG5cIl19JHthcHBlbmR9YCk7XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VNaWxsaXMsIGlzVW5kZWZpbmVkLCB1bnRydW5jYXRlWWVhciwgc2lnbmVkT2Zmc2V0LCBoYXNPd25Qcm9wZXJ0eSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBEYXRlVGltZSBmcm9tIFwiLi4vZGF0ZXRpbWUuanNcIjtcbmltcG9ydCB7IGRpZ2l0UmVnZXgsIHBhcnNlRGlnaXRzIH0gZnJvbSBcIi4vZGlnaXRzLmpzXCI7XG5pbXBvcnQgeyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcblxuY29uc3QgTUlTU0lOR19GVFAgPSBcIm1pc3NpbmcgSW50bC5EYXRlVGltZUZvcm1hdC5mb3JtYXRUb1BhcnRzIHN1cHBvcnRcIjtcblxuZnVuY3Rpb24gaW50VW5pdChyZWdleCwgcG9zdCA9IChpKSA9PiBpKSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcG9zdChwYXJzZURpZ2l0cyhzKSkgfTtcbn1cblxuY29uc3QgTkJTUCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTtcbmNvbnN0IHNwYWNlT3JOQlNQID0gYFsgJHtOQlNQfV1gO1xuY29uc3Qgc3BhY2VPck5CU1BSZWdFeHAgPSBuZXcgUmVnRXhwKHNwYWNlT3JOQlNQLCBcImdcIik7XG5cbmZ1bmN0aW9uIGZpeExpc3RSZWdleChzKSB7XG4gIC8vIG1ha2UgZG90cyBvcHRpb25hbCBhbmQgYWxzbyBtYWtlIHRoZW0gbGl0ZXJhbFxuICAvLyBtYWtlIHNwYWNlIGFuZCBub24gYnJlYWthYmxlIHNwYWNlIGNoYXJhY3RlcnMgaW50ZXJjaGFuZ2VhYmxlXG4gIHJldHVybiBzLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuP1wiKS5yZXBsYWNlKHNwYWNlT3JOQlNQUmVnRXhwLCBzcGFjZU9yTkJTUCk7XG59XG5cbmZ1bmN0aW9uIHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpIHtcbiAgcmV0dXJuIHNcbiAgICAucmVwbGFjZSgvXFwuL2csIFwiXCIpIC8vIGlnbm9yZSBkb3RzIHRoYXQgd2VyZSBtYWRlIG9wdGlvbmFsXG4gICAgLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIFwiIFwiKSAvLyBpbnRlcmNoYW5nZSBzcGFjZSBhbmQgbmJzcFxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBvbmVPZihzdHJpbmdzLCBzdGFydEluZGV4KSB7XG4gIGlmIChzdHJpbmdzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSZWdFeHAoc3RyaW5ncy5tYXAoZml4TGlzdFJlZ2V4KS5qb2luKFwifFwiKSksXG4gICAgICBkZXNlcjogKFtzXSkgPT5cbiAgICAgICAgc3RyaW5ncy5maW5kSW5kZXgoKGkpID0+IHN0cmlwSW5zZW5zaXRpdml0aWVzKHMpID09PSBzdHJpcEluc2Vuc2l0aXZpdGllcyhpKSkgKyBzdGFydEluZGV4LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gb2Zmc2V0KHJlZ2V4LCBncm91cHMpIHtcbiAgcmV0dXJuIHsgcmVnZXgsIGRlc2VyOiAoWywgaCwgbV0pID0+IHNpZ25lZE9mZnNldChoLCBtKSwgZ3JvdXBzIH07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZShyZWdleCkge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHMgfTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlVG9rZW4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1tcXC1cXFtcXF17fSgpKis/LixcXFxcXFxeJHwjXFxzXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuZnVuY3Rpb24gdW5pdEZvclRva2VuKHRva2VuLCBsb2MpIHtcbiAgY29uc3Qgb25lID0gZGlnaXRSZWdleChsb2MpLFxuICAgIHR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsyfVwiKSxcbiAgICB0aHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInszfVwiKSxcbiAgICBmb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezR9XCIpLFxuICAgIHNpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns2fVwiKSxcbiAgICBvbmVPclR3byA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDJ9XCIpLFxuICAgIG9uZVRvVGhyZWUgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7MSwzfVwiKSxcbiAgICBvbmVUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDZ9XCIpLFxuICAgIG9uZVRvTmluZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDl9XCIpLFxuICAgIHR3b1RvRm91ciA9IGRpZ2l0UmVnZXgobG9jLCBcInsyLDR9XCIpLFxuICAgIGZvdXJUb1NpeCA9IGRpZ2l0UmVnZXgobG9jLCBcIns0LDZ9XCIpLFxuICAgIGxpdGVyYWwgPSAodCkgPT4gKHsgcmVnZXg6IFJlZ0V4cChlc2NhcGVUb2tlbih0LnZhbCkpLCBkZXNlcjogKFtzXSkgPT4gcywgbGl0ZXJhbDogdHJ1ZSB9KSxcbiAgICB1bml0YXRlID0gKHQpID0+IHtcbiAgICAgIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgICAgIHJldHVybiBsaXRlcmFsKHQpO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0LnZhbCkge1xuICAgICAgICAvLyBlcmFcbiAgICAgICAgY2FzZSBcIkdcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJzaG9ydFwiLCBmYWxzZSksIDApO1xuICAgICAgICBjYXNlIFwiR0dcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLmVyYXMoXCJsb25nXCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIC8vIHllYXJzXG4gICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgY2FzZSBcInl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcInl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoZm91clRvU2l4KTtcbiAgICAgICAgY2FzZSBcInl5eXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHNpeCk7XG4gICAgICAgIC8vIG1vbnRoc1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIk1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIk1NTU1cIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcImxvbmdcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJMTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLm1vbnRocyhcInNob3J0XCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgLy8gZGF0ZXNcbiAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJkZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIG9yZGluYWxzXG4gICAgICAgIGNhc2UgXCJvXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJvb29cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIC8vIHRpbWVcbiAgICAgICAgY2FzZSBcIkhIXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJoaFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwibW1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJxcVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwic3NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZVRvVGhyZWUpO1xuICAgICAgICBjYXNlIFwiU1NTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodGhyZWUpO1xuICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgIHJldHVybiBzaW1wbGUob25lVG9OaW5lKTtcbiAgICAgICAgY2FzZSBcInV1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJ1dXVcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmUpO1xuICAgICAgICAvLyBtZXJpZGllbVxuICAgICAgICBjYXNlIFwiYVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubWVyaWRpZW1zKCksIDApO1xuICAgICAgICAvLyB3ZWVrWWVhciAoaylcbiAgICAgICAgY2FzZSBcImtra2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyKTtcbiAgICAgICAgY2FzZSBcImtrXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvVG9Gb3VyLCB1bnRydW5jYXRlWWVhcik7XG4gICAgICAgIC8vIHdlZWtOdW1iZXIgKFcpXG4gICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiV1dcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICAvLyB3ZWVrZGF5c1xuICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICBjYXNlIFwiY1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy53ZWVrZGF5cyhcImxvbmdcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwic2hvcnRcIiwgdHJ1ZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBvZmZzZXQvem9uZVxuICAgICAgICBjYXNlIFwiWlwiOlxuICAgICAgICBjYXNlIFwiWlpcIjpcbiAgICAgICAgICByZXR1cm4gb2Zmc2V0KG5ldyBSZWdFeHAoYChbKy1dJHtvbmVPclR3by5zb3VyY2V9KSg/OjooJHt0d28uc291cmNlfSkpP2ApLCAyKTtcbiAgICAgICAgY2FzZSBcIlpaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKCR7dHdvLnNvdXJjZX0pP2ApLCAyKTtcbiAgICAgICAgLy8gd2UgZG9uJ3Qgc3VwcG9ydCBaWlpaIChQU1QpIG9yIFpaWlpaIChQYWNpZmljIFN0YW5kYXJkIFRpbWUpIGluIHBhcnNpbmdcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHRoZXkgYXJlXG4gICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZSgvW2Etel8rLS9dezEsMjU2fT8vaSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgfTtcblxuICBjb25zdCB1bml0ID0gdW5pdGF0ZSh0b2tlbikgfHwge1xuICAgIGludmFsaWRSZWFzb246IE1JU1NJTkdfRlRQLFxuICB9O1xuXG4gIHVuaXQudG9rZW4gPSB0b2tlbjtcblxuICByZXR1cm4gdW5pdDtcbn1cblxuY29uc3QgcGFydFR5cGVTdHlsZVRvVG9rZW5WYWwgPSB7XG4gIHllYXI6IHtcbiAgICBcIjItZGlnaXRcIjogXCJ5eVwiLFxuICAgIG51bWVyaWM6IFwieXl5eXlcIixcbiAgfSxcbiAgbW9udGg6IHtcbiAgICBudW1lcmljOiBcIk1cIixcbiAgICBcIjItZGlnaXRcIjogXCJNTVwiLFxuICAgIHNob3J0OiBcIk1NTVwiLFxuICAgIGxvbmc6IFwiTU1NTVwiLFxuICB9LFxuICBkYXk6IHtcbiAgICBudW1lcmljOiBcImRcIixcbiAgICBcIjItZGlnaXRcIjogXCJkZFwiLFxuICB9LFxuICB3ZWVrZGF5OiB7XG4gICAgc2hvcnQ6IFwiRUVFXCIsXG4gICAgbG9uZzogXCJFRUVFXCIsXG4gIH0sXG4gIGRheXBlcmlvZDogXCJhXCIsXG4gIGRheVBlcmlvZDogXCJhXCIsXG4gIGhvdXI6IHtcbiAgICBudW1lcmljOiBcImhcIixcbiAgICBcIjItZGlnaXRcIjogXCJoaFwiLFxuICB9LFxuICBtaW51dGU6IHtcbiAgICBudW1lcmljOiBcIm1cIixcbiAgICBcIjItZGlnaXRcIjogXCJtbVwiLFxuICB9LFxuICBzZWNvbmQ6IHtcbiAgICBudW1lcmljOiBcInNcIixcbiAgICBcIjItZGlnaXRcIjogXCJzc1wiLFxuICB9LFxufTtcblxuZnVuY3Rpb24gdG9rZW5Gb3JQYXJ0KHBhcnQsIGxvY2FsZSwgZm9ybWF0T3B0cykge1xuICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBwYXJ0O1xuXG4gIGlmICh0eXBlID09PSBcImxpdGVyYWxcIikge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiB0cnVlLFxuICAgICAgdmFsOiB2YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgc3R5bGUgPSBmb3JtYXRPcHRzW3R5cGVdO1xuXG4gIGxldCB2YWwgPSBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbFt0eXBlXTtcbiAgaWYgKHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIpIHtcbiAgICB2YWwgPSB2YWxbc3R5bGVdO1xuICB9XG5cbiAgaWYgKHZhbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaXRlcmFsOiBmYWxzZSxcbiAgICAgIHZhbCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYnVpbGRSZWdleCh1bml0cykge1xuICBjb25zdCByZSA9IHVuaXRzLm1hcCgodSkgPT4gdS5yZWdleCkucmVkdWNlKChmLCByKSA9PiBgJHtmfSgke3Iuc291cmNlfSlgLCBcIlwiKTtcbiAgcmV0dXJuIFtgXiR7cmV9JGAsIHVuaXRzXTtcbn1cblxuZnVuY3Rpb24gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycykge1xuICBjb25zdCBtYXRjaGVzID0gaW5wdXQubWF0Y2gocmVnZXgpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgY29uc3QgYWxsID0ge307XG4gICAgbGV0IG1hdGNoSW5kZXggPSAxO1xuICAgIGZvciAoY29uc3QgaSBpbiBoYW5kbGVycykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGhhbmRsZXJzLCBpKSkge1xuICAgICAgICBjb25zdCBoID0gaGFuZGxlcnNbaV0sXG4gICAgICAgICAgZ3JvdXBzID0gaC5ncm91cHMgPyBoLmdyb3VwcyArIDEgOiAxO1xuICAgICAgICBpZiAoIWgubGl0ZXJhbCAmJiBoLnRva2VuKSB7XG4gICAgICAgICAgYWxsW2gudG9rZW4udmFsWzBdXSA9IGguZGVzZXIobWF0Y2hlcy5zbGljZShtYXRjaEluZGV4LCBtYXRjaEluZGV4ICsgZ3JvdXBzKSk7XG4gICAgICAgIH1cbiAgICAgICAgbWF0Y2hJbmRleCArPSBncm91cHM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbbWF0Y2hlcywgYWxsXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW21hdGNoZXMsIHt9XTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkYXRlVGltZUZyb21NYXRjaGVzKG1hdGNoZXMpIHtcbiAgY29uc3QgdG9GaWVsZCA9ICh0b2tlbikgPT4ge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgIHJldHVybiBcIm1pbGxpc2Vjb25kXCI7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gXCJzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgIHJldHVybiBcIm1pbnV0ZVwiO1xuICAgICAgY2FzZSBcImhcIjpcbiAgICAgIGNhc2UgXCJIXCI6XG4gICAgICAgIHJldHVybiBcImhvdXJcIjtcbiAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgIHJldHVybiBcImRheVwiO1xuICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgcmV0dXJuIFwib3JkaW5hbFwiO1xuICAgICAgY2FzZSBcIkxcIjpcbiAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgIHJldHVybiBcIm1vbnRoXCI7XG4gICAgICBjYXNlIFwieVwiOlxuICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICBjYXNlIFwiRVwiOlxuICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla2RheVwiO1xuICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla051bWJlclwiO1xuICAgICAgY2FzZSBcImtcIjpcbiAgICAgICAgcmV0dXJuIFwid2Vla1llYXJcIjtcbiAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgIHJldHVybiBcInF1YXJ0ZXJcIjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBsZXQgem9uZSA9IG51bGw7XG4gIGxldCBzcGVjaWZpY09mZnNldDtcbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnopKSB7XG4gICAgem9uZSA9IElBTkFab25lLmNyZWF0ZShtYXRjaGVzLnopO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLlopKSB7XG4gICAgaWYgKCF6b25lKSB7XG4gICAgICB6b25lID0gbmV3IEZpeGVkT2Zmc2V0Wm9uZShtYXRjaGVzLlopO1xuICAgIH1cbiAgICBzcGVjaWZpY09mZnNldCA9IG1hdGNoZXMuWjtcbiAgfVxuXG4gIGlmICghaXNVbmRlZmluZWQobWF0Y2hlcy5xKSkge1xuICAgIG1hdGNoZXMuTSA9IChtYXRjaGVzLnEgLSAxKSAqIDMgKyAxO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLmgpKSB7XG4gICAgaWYgKG1hdGNoZXMuaCA8IDEyICYmIG1hdGNoZXMuYSA9PT0gMSkge1xuICAgICAgbWF0Y2hlcy5oICs9IDEyO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hlcy5oID09PSAxMiAmJiBtYXRjaGVzLmEgPT09IDApIHtcbiAgICAgIG1hdGNoZXMuaCA9IDA7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1hdGNoZXMuRyA9PT0gMCAmJiBtYXRjaGVzLnkpIHtcbiAgICBtYXRjaGVzLnkgPSAtbWF0Y2hlcy55O1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnUpKSB7XG4gICAgbWF0Y2hlcy5TID0gcGFyc2VNaWxsaXMobWF0Y2hlcy51KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHMgPSBPYmplY3Qua2V5cyhtYXRjaGVzKS5yZWR1Y2UoKHIsIGspID0+IHtcbiAgICBjb25zdCBmID0gdG9GaWVsZChrKTtcbiAgICBpZiAoZikge1xuICAgICAgcltmXSA9IG1hdGNoZXNba107XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH0sIHt9KTtcblxuICByZXR1cm4gW3ZhbHMsIHpvbmUsIHNwZWNpZmljT2Zmc2V0XTtcbn1cblxubGV0IGR1bW15RGF0ZVRpbWVDYWNoZSA9IG51bGw7XG5cbmZ1bmN0aW9uIGdldER1bW15RGF0ZVRpbWUoKSB7XG4gIGlmICghZHVtbXlEYXRlVGltZUNhY2hlKSB7XG4gICAgZHVtbXlEYXRlVGltZUNhY2hlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcygxNTU1NTU1NTU1NTU1KTtcbiAgfVxuXG4gIHJldHVybiBkdW1teURhdGVUaW1lQ2FjaGU7XG59XG5cbmZ1bmN0aW9uIG1heWJlRXhwYW5kTWFjcm9Ub2tlbih0b2tlbiwgbG9jYWxlKSB7XG4gIGlmICh0b2tlbi5saXRlcmFsKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuLnZhbCk7XG5cbiAgaWYgKCFmb3JtYXRPcHRzKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0dGVyID0gRm9ybWF0dGVyLmNyZWF0ZShsb2NhbGUsIGZvcm1hdE9wdHMpO1xuICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXREYXRlVGltZVBhcnRzKGdldER1bW15RGF0ZVRpbWUoKSk7XG5cbiAgY29uc3QgdG9rZW5zID0gcGFydHMubWFwKChwKSA9PiB0b2tlbkZvclBhcnQocCwgbG9jYWxlLCBmb3JtYXRPcHRzKSk7XG5cbiAgaWYgKHRva2Vucy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuZnVuY3Rpb24gZXhwYW5kTWFjcm9Ub2tlbnModG9rZW5zLCBsb2NhbGUpIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4udG9rZW5zLm1hcCgodCkgPT4gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHQsIGxvY2FsZSkpKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgdG9rZW5zID0gZXhwYW5kTWFjcm9Ub2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZvcm1hdCksIGxvY2FsZSksXG4gICAgdW5pdHMgPSB0b2tlbnMubWFwKCh0KSA9PiB1bml0Rm9yVG9rZW4odCwgbG9jYWxlKSksXG4gICAgZGlzcXVhbGlmeWluZ1VuaXQgPSB1bml0cy5maW5kKCh0KSA9PiB0LmludmFsaWRSZWFzb24pO1xuXG4gIGlmIChkaXNxdWFsaWZ5aW5nVW5pdCkge1xuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIGludmFsaWRSZWFzb246IGRpc3F1YWxpZnlpbmdVbml0LmludmFsaWRSZWFzb24gfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBbcmVnZXhTdHJpbmcsIGhhbmRsZXJzXSA9IGJ1aWxkUmVnZXgodW5pdHMpLFxuICAgICAgcmVnZXggPSBSZWdFeHAocmVnZXhTdHJpbmcsIFwiaVwiKSxcbiAgICAgIFtyYXdNYXRjaGVzLCBtYXRjaGVzXSA9IG1hdGNoKGlucHV0LCByZWdleCwgaGFuZGxlcnMpLFxuICAgICAgW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXRdID0gbWF0Y2hlc1xuICAgICAgICA/IGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcylcbiAgICAgICAgOiBbbnVsbCwgbnVsbCwgdW5kZWZpbmVkXTtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJhXCIpICYmIGhhc093blByb3BlcnR5KG1hdGNoZXMsIFwiSFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IGluY2x1ZGUgbWVyaWRpZW0gd2hlbiBzcGVjaWZ5aW5nIDI0LWhvdXIgZm9ybWF0XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7IGlucHV0LCB0b2tlbnMsIHJlZ2V4LCByYXdNYXRjaGVzLCBtYXRjaGVzLCByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0IH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpIHtcbiAgY29uc3QgeyByZXN1bHQsIHpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkUmVhc29uIH0gPSBleHBsYWluRnJvbVRva2Vucyhsb2NhbGUsIGlucHV0LCBmb3JtYXQpO1xuICByZXR1cm4gW3Jlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb25dO1xufVxuIiwgImltcG9ydCB7XG4gIGludGVnZXJCZXR3ZWVuLFxuICBpc0xlYXBZZWFyLFxuICB0aW1lT2JqZWN0LFxuICBkYXlzSW5ZZWFyLFxuICBkYXlzSW5Nb250aCxcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBpc0ludGVnZXIsXG59IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ludmFsaWQuanNcIjtcblxuY29uc3Qgbm9uTGVhcExhZGRlciA9IFswLCAzMSwgNTksIDkwLCAxMjAsIDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNF0sXG4gIGxlYXBMYWRkZXIgPSBbMCwgMzEsIDYwLCA5MSwgMTIxLCAxNTIsIDE4MiwgMjEzLCAyNDQsIDI3NCwgMzA1LCAzMzVdO1xuXG5mdW5jdGlvbiB1bml0T3V0T2ZSYW5nZSh1bml0LCB2YWx1ZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXG4gICAgXCJ1bml0IG91dCBvZiByYW5nZVwiLFxuICAgIGB5b3Ugc3BlY2lmaWVkICR7dmFsdWV9IChvZiB0eXBlICR7dHlwZW9mIHZhbHVlfSkgYXMgYSAke3VuaXR9LCB3aGljaCBpcyBpbnZhbGlkYFxuICApO1xufVxuXG5mdW5jdGlvbiBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSkge1xuICBjb25zdCBkID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKTtcblxuICBpZiAoeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDApO1xuICB9XG5cbiAgY29uc3QganMgPSBkLmdldFVUQ0RheSgpO1xuXG4gIHJldHVybiBqcyA9PT0gMCA/IDcgOiBqcztcbn1cblxuZnVuY3Rpb24gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSkge1xuICByZXR1cm4gZGF5ICsgKGlzTGVhcFllYXIoeWVhcikgPyBsZWFwTGFkZGVyIDogbm9uTGVhcExhZGRlcilbbW9udGggLSAxXTtcbn1cblxuZnVuY3Rpb24gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKSB7XG4gIGNvbnN0IHRhYmxlID0gaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyLFxuICAgIG1vbnRoMCA9IHRhYmxlLmZpbmRJbmRleCgoaSkgPT4gaSA8IG9yZGluYWwpLFxuICAgIGRheSA9IG9yZGluYWwgLSB0YWJsZVttb250aDBdO1xuICByZXR1cm4geyBtb250aDogbW9udGgwICsgMSwgZGF5IH07XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JlZ29yaWFuVG9XZWVrKGdyZWdPYmopIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnT2JqLFxuICAgIG9yZGluYWwgPSBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSxcbiAgICB3ZWVrZGF5ID0gZGF5T2ZXZWVrKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gIGxldCB3ZWVrTnVtYmVyID0gTWF0aC5mbG9vcigob3JkaW5hbCAtIHdlZWtkYXkgKyAxMCkgLyA3KSxcbiAgICB3ZWVrWWVhcjtcblxuICBpZiAod2Vla051bWJlciA8IDEpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgLSAxO1xuICAgIHdlZWtOdW1iZXIgPSB3ZWVrc0luV2Vla1llYXIod2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKHdlZWtOdW1iZXIgPiB3ZWVrc0luV2Vla1llYXIoeWVhcikpIHtcbiAgICB3ZWVrWWVhciA9IHllYXIgKyAxO1xuICAgIHdlZWtOdW1iZXIgPSAxO1xuICB9IGVsc2Uge1xuICAgIHdlZWtZZWFyID0geWVhcjtcbiAgfVxuXG4gIHJldHVybiB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5LCAuLi50aW1lT2JqZWN0KGdyZWdPYmopIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrVG9HcmVnb3JpYW4od2Vla0RhdGEpIHtcbiAgY29uc3QgeyB3ZWVrWWVhciwgd2Vla051bWJlciwgd2Vla2RheSB9ID0gd2Vla0RhdGEsXG4gICAgd2Vla2RheU9mSmFuNCA9IGRheU9mV2Vlayh3ZWVrWWVhciwgMSwgNCksXG4gICAgeWVhckluRGF5cyA9IGRheXNJblllYXIod2Vla1llYXIpO1xuXG4gIGxldCBvcmRpbmFsID0gd2Vla051bWJlciAqIDcgKyB3ZWVrZGF5IC0gd2Vla2RheU9mSmFuNCAtIDMsXG4gICAgeWVhcjtcblxuICBpZiAob3JkaW5hbCA8IDEpIHtcbiAgICB5ZWFyID0gd2Vla1llYXIgLSAxO1xuICAgIG9yZGluYWwgKz0gZGF5c0luWWVhcih5ZWFyKTtcbiAgfSBlbHNlIGlmIChvcmRpbmFsID4geWVhckluRGF5cykge1xuICAgIHllYXIgPSB3ZWVrWWVhciArIDE7XG4gICAgb3JkaW5hbCAtPSBkYXlzSW5ZZWFyKHdlZWtZZWFyKTtcbiAgfSBlbHNlIHtcbiAgICB5ZWFyID0gd2Vla1llYXI7XG4gIH1cblxuICBjb25zdCB7IG1vbnRoLCBkYXkgfSA9IHVuY29tcHV0ZU9yZGluYWwoeWVhciwgb3JkaW5hbCk7XG4gIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXksIC4uLnRpbWVPYmplY3Qod2Vla0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub09yZGluYWwoZ3JlZ0RhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5IH0gPSBncmVnRGF0YTtcbiAgY29uc3Qgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpO1xuICByZXR1cm4geyB5ZWFyLCBvcmRpbmFsLCAuLi50aW1lT2JqZWN0KGdyZWdEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3JkaW5hbFRvR3JlZ29yaWFuKG9yZGluYWxEYXRhKSB7XG4gIGNvbnN0IHsgeWVhciwgb3JkaW5hbCB9ID0gb3JkaW5hbERhdGE7XG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdChvcmRpbmFsRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRXZWVrRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai53ZWVrWWVhciksXG4gICAgdmFsaWRXZWVrID0gaW50ZWdlckJldHdlZW4ob2JqLndlZWtOdW1iZXIsIDEsIHdlZWtzSW5XZWVrWWVhcihvYmoud2Vla1llYXIpKSxcbiAgICB2YWxpZFdlZWtkYXkgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla2RheSwgMSwgNyk7XG5cbiAgaWYgKCF2YWxpZFllYXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrWWVhclwiLCBvYmoud2Vla1llYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWspIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrXCIsIG9iai53ZWVrKTtcbiAgfSBlbHNlIGlmICghdmFsaWRXZWVrZGF5KSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwid2Vla2RheVwiLCBvYmoud2Vla2RheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkT3JkaW5hbERhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRPcmRpbmFsID0gaW50ZWdlckJldHdlZW4ob2JqLm9yZGluYWwsIDEsIGRheXNJblllYXIob2JqLnllYXIpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE9yZGluYWwpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJvcmRpbmFsXCIsIG9iai5vcmRpbmFsKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLnllYXIpLFxuICAgIHZhbGlkTW9udGggPSBpbnRlZ2VyQmV0d2VlbihvYmoubW9udGgsIDEsIDEyKSxcbiAgICB2YWxpZERheSA9IGludGVnZXJCZXR3ZWVuKG9iai5kYXksIDEsIGRheXNJbk1vbnRoKG9iai55ZWFyLCBvYmoubW9udGgpKTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInllYXJcIiwgb2JqLnllYXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1vbnRoKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibW9udGhcIiwgb2JqLm1vbnRoKTtcbiAgfSBlbHNlIGlmICghdmFsaWREYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJkYXlcIiwgb2JqLmRheSk7XG4gIH0gZWxzZSByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnZhbGlkVGltZURhdGEob2JqKSB7XG4gIGNvbnN0IHsgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0gPSBvYmo7XG4gIGNvbnN0IHZhbGlkSG91ciA9XG4gICAgICBpbnRlZ2VyQmV0d2Vlbihob3VyLCAwLCAyMykgfHxcbiAgICAgIChob3VyID09PSAyNCAmJiBtaW51dGUgPT09IDAgJiYgc2Vjb25kID09PSAwICYmIG1pbGxpc2Vjb25kID09PSAwKSxcbiAgICB2YWxpZE1pbnV0ZSA9IGludGVnZXJCZXR3ZWVuKG1pbnV0ZSwgMCwgNTkpLFxuICAgIHZhbGlkU2Vjb25kID0gaW50ZWdlckJldHdlZW4oc2Vjb25kLCAwLCA1OSksXG4gICAgdmFsaWRNaWxsaXNlY29uZCA9IGludGVnZXJCZXR3ZWVuKG1pbGxpc2Vjb25kLCAwLCA5OTkpO1xuXG4gIGlmICghdmFsaWRIb3VyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwiaG91clwiLCBob3VyKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaW51dGUpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtaW51dGVcIiwgbWludXRlKTtcbiAgfSBlbHNlIGlmICghdmFsaWRTZWNvbmQpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJzZWNvbmRcIiwgc2Vjb25kKTtcbiAgfSBlbHNlIGlmICghdmFsaWRNaWxsaXNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbGxpc2Vjb25kXCIsIG1pbGxpc2Vjb25kKTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cbiIsICJpbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzLmpzXCI7XG5pbXBvcnQgSW5mbyBmcm9tIFwiLi9pbmZvLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2ltcGwvZm9ybWF0dGVyLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHtcbiAgaXNVbmRlZmluZWQsXG4gIG1heWJlQXJyYXksXG4gIGlzRGF0ZSxcbiAgaXNOdW1iZXIsXG4gIGJlc3RCeSxcbiAgZGF5c0luTW9udGgsXG4gIGRheXNJblllYXIsXG4gIGlzTGVhcFllYXIsXG4gIHdlZWtzSW5XZWVrWWVhcixcbiAgbm9ybWFsaXplT2JqZWN0LFxuICByb3VuZFRvLFxuICBvYmpUb0xvY2FsVFMsXG4gIHBhZFN0YXJ0LFxufSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVpvbmUgfSBmcm9tIFwiLi9pbXBsL3pvbmVVdGlsLmpzXCI7XG5pbXBvcnQgZGlmZiBmcm9tIFwiLi9pbXBsL2RpZmYuanNcIjtcbmltcG9ydCB7IHBhcnNlUkZDMjgyMkRhdGUsIHBhcnNlSVNPRGF0ZSwgcGFyc2VIVFRQRGF0ZSwgcGFyc2VTUUwgfSBmcm9tIFwiLi9pbXBsL3JlZ2V4UGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBwYXJzZUZyb21Ub2tlbnMsIGV4cGxhaW5Gcm9tVG9rZW5zIH0gZnJvbSBcIi4vaW1wbC90b2tlblBhcnNlci5qc1wiO1xuaW1wb3J0IHtcbiAgZ3JlZ29yaWFuVG9XZWVrLFxuICB3ZWVrVG9HcmVnb3JpYW4sXG4gIGdyZWdvcmlhblRvT3JkaW5hbCxcbiAgb3JkaW5hbFRvR3JlZ29yaWFuLFxuICBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YSxcbiAgaGFzSW52YWxpZFdlZWtEYXRhLFxuICBoYXNJbnZhbGlkT3JkaW5hbERhdGEsXG4gIGhhc0ludmFsaWRUaW1lRGF0YSxcbn0gZnJvbSBcIi4vaW1wbC9jb252ZXJzaW9ucy5qc1wiO1xuaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9pbXBsL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7XG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcixcbiAgSW52YWxpZFVuaXRFcnJvcixcbiAgSW52YWxpZERhdGVUaW1lRXJyb3IsXG59IGZyb20gXCIuL2Vycm9ycy5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW1wbC9pbnZhbGlkLmpzXCI7XG5cbmNvbnN0IElOVkFMSUQgPSBcIkludmFsaWQgRGF0ZVRpbWVcIjtcbmNvbnN0IE1BWF9EQVRFID0gOC42NGUxNTtcblxuZnVuY3Rpb24gdW5zdXBwb3J0ZWRab25lKHpvbmUpIHtcbiAgcmV0dXJuIG5ldyBJbnZhbGlkKFwidW5zdXBwb3J0ZWQgem9uZVwiLCBgdGhlIHpvbmUgXCIke3pvbmUubmFtZX1cIiBpcyBub3Qgc3VwcG9ydGVkYCk7XG59XG5cbi8vIHdlIGNhY2hlIHdlZWsgZGF0YSBvbiB0aGUgRFQgb2JqZWN0IGFuZCB0aGlzIGludGVybWVkaWF0ZXMgdGhlIGNhY2hlXG5mdW5jdGlvbiBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKGR0KSB7XG4gIGlmIChkdC53ZWVrRGF0YSA9PT0gbnVsbCkge1xuICAgIGR0LndlZWtEYXRhID0gZ3JlZ29yaWFuVG9XZWVrKGR0LmMpO1xuICB9XG4gIHJldHVybiBkdC53ZWVrRGF0YTtcbn1cblxuLy8gY2xvbmUgcmVhbGx5IG1lYW5zLCBcIm1ha2UgYSBuZXcgb2JqZWN0IHdpdGggdGhlc2UgbW9kaWZpY2F0aW9uc1wiLiBhbGwgXCJzZXR0ZXJzXCIgcmVhbGx5IHVzZSB0aGlzXG4vLyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHdoaWxlIG9ubHkgY2hhbmdpbmcgc29tZSBvZiB0aGUgcHJvcGVydGllc1xuZnVuY3Rpb24gY2xvbmUoaW5zdCwgYWx0cykge1xuICBjb25zdCBjdXJyZW50ID0ge1xuICAgIHRzOiBpbnN0LnRzLFxuICAgIHpvbmU6IGluc3Quem9uZSxcbiAgICBjOiBpbnN0LmMsXG4gICAgbzogaW5zdC5vLFxuICAgIGxvYzogaW5zdC5sb2MsXG4gICAgaW52YWxpZDogaW5zdC5pbnZhbGlkLFxuICB9O1xuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgLi4uY3VycmVudCwgLi4uYWx0cywgb2xkOiBjdXJyZW50IH0pO1xufVxuXG4vLyBmaW5kIHRoZSByaWdodCBvZmZzZXQgYSBnaXZlbiBsb2NhbCB0aW1lLiBUaGUgbyBpbnB1dCBpcyBvdXIgZ3Vlc3MsIHdoaWNoIGRldGVybWluZXMgd2hpY2hcbi8vIG9mZnNldCB3ZSdsbCBwaWNrIGluIGFtYmlndW91cyBjYXNlcyAoZS5nLiB0aGVyZSBhcmUgdHdvIDMgQU1zIGIvYyBGYWxsYmFjayBEU1QpXG5mdW5jdGlvbiBmaXhPZmZzZXQobG9jYWxUUywgbywgdHopIHtcbiAgLy8gT3VyIFVUQyB0aW1lIGlzIGp1c3QgYSBndWVzcyBiZWNhdXNlIG91ciBvZmZzZXQgaXMganVzdCBhIGd1ZXNzXG4gIGxldCB1dGNHdWVzcyA9IGxvY2FsVFMgLSBvICogNjAgKiAxMDAwO1xuXG4gIC8vIFRlc3Qgd2hldGhlciB0aGUgem9uZSBtYXRjaGVzIHRoZSBvZmZzZXQgZm9yIHRoaXMgdHNcbiAgY29uc3QgbzIgPSB0ei5vZmZzZXQodXRjR3Vlc3MpO1xuXG4gIC8vIElmIHNvLCBvZmZzZXQgZGlkbid0IGNoYW5nZSBhbmQgd2UncmUgZG9uZVxuICBpZiAobyA9PT0gbzIpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvXTtcbiAgfVxuXG4gIC8vIElmIG5vdCwgY2hhbmdlIHRoZSB0cyBieSB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgb2Zmc2V0XG4gIHV0Y0d1ZXNzIC09IChvMiAtIG8pICogNjAgKiAxMDAwO1xuXG4gIC8vIElmIHRoYXQgZ2l2ZXMgdXMgdGhlIGxvY2FsIHRpbWUgd2Ugd2FudCwgd2UncmUgZG9uZVxuICBjb25zdCBvMyA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG4gIGlmIChvMiA9PT0gbzMpIHtcbiAgICByZXR1cm4gW3V0Y0d1ZXNzLCBvMl07XG4gIH1cblxuICAvLyBJZiBpdCdzIGRpZmZlcmVudCwgd2UncmUgaW4gYSBob2xlIHRpbWUuIFRoZSBvZmZzZXQgaGFzIGNoYW5nZWQsIGJ1dCB0aGUgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lXG4gIHJldHVybiBbbG9jYWxUUyAtIE1hdGgubWluKG8yLCBvMykgKiA2MCAqIDEwMDAsIE1hdGgubWF4KG8yLCBvMyldO1xufVxuXG4vLyBjb252ZXJ0IGFuIGVwb2NoIHRpbWVzdGFtcCBpbnRvIGEgY2FsZW5kYXIgb2JqZWN0IHdpdGggdGhlIGdpdmVuIG9mZnNldFxuZnVuY3Rpb24gdHNUb09iaih0cywgb2Zmc2V0KSB7XG4gIHRzICs9IG9mZnNldCAqIDYwICogMTAwMDtcblxuICBjb25zdCBkID0gbmV3IERhdGUodHMpO1xuXG4gIHJldHVybiB7XG4gICAgeWVhcjogZC5nZXRVVENGdWxsWWVhcigpLFxuICAgIG1vbnRoOiBkLmdldFVUQ01vbnRoKCkgKyAxLFxuICAgIGRheTogZC5nZXRVVENEYXRlKCksXG4gICAgaG91cjogZC5nZXRVVENIb3VycygpLFxuICAgIG1pbnV0ZTogZC5nZXRVVENNaW51dGVzKCksXG4gICAgc2Vjb25kOiBkLmdldFVUQ1NlY29uZHMoKSxcbiAgICBtaWxsaXNlY29uZDogZC5nZXRVVENNaWxsaXNlY29uZHMoKSxcbiAgfTtcbn1cblxuLy8gY29udmVydCBhIGNhbGVuZGFyIG9iamVjdCB0byBhIGVwb2NoIHRpbWVzdGFtcFxuZnVuY3Rpb24gb2JqVG9UUyhvYmosIG9mZnNldCwgem9uZSkge1xuICByZXR1cm4gZml4T2Zmc2V0KG9ialRvTG9jYWxUUyhvYmopLCBvZmZzZXQsIHpvbmUpO1xufVxuXG4vLyBjcmVhdGUgYSBuZXcgRFQgaW5zdGFuY2UgYnkgYWRkaW5nIGEgZHVyYXRpb24sIGFkanVzdGluZyBmb3IgRFNUc1xuZnVuY3Rpb24gYWRqdXN0VGltZShpbnN0LCBkdXIpIHtcbiAgY29uc3Qgb1ByZSA9IGluc3QubyxcbiAgICB5ZWFyID0gaW5zdC5jLnllYXIgKyBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgbW9udGggPSBpbnN0LmMubW9udGggKyBNYXRoLnRydW5jKGR1ci5tb250aHMpICsgTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpICogMyxcbiAgICBjID0ge1xuICAgICAgLi4uaW5zdC5jLFxuICAgICAgeWVhcixcbiAgICAgIG1vbnRoLFxuICAgICAgZGF5OlxuICAgICAgICBNYXRoLm1pbihpbnN0LmMuZGF5LCBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpICtcbiAgICAgICAgTWF0aC50cnVuYyhkdXIuZGF5cykgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci53ZWVrcykgKiA3LFxuICAgIH0sXG4gICAgbWlsbGlzVG9BZGQgPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHtcbiAgICAgIHllYXJzOiBkdXIueWVhcnMgLSBNYXRoLnRydW5jKGR1ci55ZWFycyksXG4gICAgICBxdWFydGVyczogZHVyLnF1YXJ0ZXJzIC0gTWF0aC50cnVuYyhkdXIucXVhcnRlcnMpLFxuICAgICAgbW9udGhzOiBkdXIubW9udGhzIC0gTWF0aC50cnVuYyhkdXIubW9udGhzKSxcbiAgICAgIHdlZWtzOiBkdXIud2Vla3MgLSBNYXRoLnRydW5jKGR1ci53ZWVrcyksXG4gICAgICBkYXlzOiBkdXIuZGF5cyAtIE1hdGgudHJ1bmMoZHVyLmRheXMpLFxuICAgICAgaG91cnM6IGR1ci5ob3VycyxcbiAgICAgIG1pbnV0ZXM6IGR1ci5taW51dGVzLFxuICAgICAgc2Vjb25kczogZHVyLnNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHM6IGR1ci5taWxsaXNlY29uZHMsXG4gICAgfSkuYXMoXCJtaWxsaXNlY29uZHNcIiksXG4gICAgbG9jYWxUUyA9IG9ialRvTG9jYWxUUyhjKTtcblxuICBsZXQgW3RzLCBvXSA9IGZpeE9mZnNldChsb2NhbFRTLCBvUHJlLCBpbnN0LnpvbmUpO1xuXG4gIGlmIChtaWxsaXNUb0FkZCAhPT0gMCkge1xuICAgIHRzICs9IG1pbGxpc1RvQWRkO1xuICAgIC8vIHRoYXQgY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBvZmZzZXQgYnkgZ29pbmcgb3ZlciBhIERTVCwgYnV0IHdlIHdhbnQgdG8ga2VlcCB0aGUgdHMgdGhlIHNhbWVcbiAgICBvID0gaW5zdC56b25lLm9mZnNldCh0cyk7XG4gIH1cblxuICByZXR1cm4geyB0cywgbyB9O1xufVxuXG4vLyBoZWxwZXIgdXNlZnVsIGluIHR1cm5pbmcgdGhlIHJlc3VsdHMgb2YgcGFyc2luZyBpbnRvIHJlYWwgZGF0ZXNcbi8vIGJ5IGhhbmRsaW5nIHRoZSB6b25lIG9wdGlvbnNcbmZ1bmN0aW9uIHBhcnNlRGF0YVRvRGF0ZVRpbWUocGFyc2VkLCBwYXJzZWRab25lLCBvcHRzLCBmb3JtYXQsIHRleHQsIHNwZWNpZmljT2Zmc2V0KSB7XG4gIGNvbnN0IHsgc2V0Wm9uZSwgem9uZSB9ID0gb3B0cztcbiAgaWYgKHBhcnNlZCAmJiBPYmplY3Qua2V5cyhwYXJzZWQpLmxlbmd0aCAhPT0gMCkge1xuICAgIGNvbnN0IGludGVycHJldGF0aW9uWm9uZSA9IHBhcnNlZFpvbmUgfHwgem9uZSxcbiAgICAgIGluc3QgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHBhcnNlZCwge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICB6b25lOiBpbnRlcnByZXRhdGlvblpvbmUsXG4gICAgICAgIHNwZWNpZmljT2Zmc2V0LFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHNldFpvbmUgPyBpbnN0IDogaW5zdC5zZXRab25lKHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgbmV3IEludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzICR7Zm9ybWF0fWApXG4gICAgKTtcbiAgfVxufVxuXG4vLyBpZiB5b3Ugd2FudCB0byBvdXRwdXQgYSB0ZWNobmljYWwgZm9ybWF0IChlLmcuIFJGQyAyODIyKSwgdGhpcyBoZWxwZXJcbi8vIGhlbHBzIGhhbmRsZSB0aGUgZGV0YWlsc1xuZnVuY3Rpb24gdG9UZWNoRm9ybWF0KGR0LCBmb3JtYXQsIGFsbG93WiA9IHRydWUpIHtcbiAgcmV0dXJuIGR0LmlzVmFsaWRcbiAgICA/IEZvcm1hdHRlci5jcmVhdGUoTG9jYWxlLmNyZWF0ZShcImVuLVVTXCIpLCB7XG4gICAgICAgIGFsbG93WixcbiAgICAgICAgZm9yY2VTaW1wbGU6IHRydWUsXG4gICAgICB9KS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZvcm1hdClcbiAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIHRvSVNPRGF0ZShvLCBleHRlbmRlZCkge1xuICBjb25zdCBsb25nRm9ybWF0ID0gby5jLnllYXIgPiA5OTk5IHx8IG8uYy55ZWFyIDwgMDtcbiAgbGV0IGMgPSBcIlwiO1xuICBpZiAobG9uZ0Zvcm1hdCAmJiBvLmMueWVhciA+PSAwKSBjICs9IFwiK1wiO1xuICBjICs9IHBhZFN0YXJ0KG8uYy55ZWFyLCBsb25nRm9ybWF0ID8gNiA6IDQpO1xuXG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubW9udGgpO1xuICAgIGMgKz0gXCItXCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBwYWRTdGFydChvLmMuZGF5KTtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gdG9JU09UaW1lKFxuICBvLFxuICBleHRlbmRlZCxcbiAgc3VwcHJlc3NTZWNvbmRzLFxuICBzdXBwcmVzc01pbGxpc2Vjb25kcyxcbiAgaW5jbHVkZU9mZnNldCxcbiAgZXh0ZW5kZWRab25lXG4pIHtcbiAgbGV0IGMgPSBwYWRTdGFydChvLmMuaG91cik7XG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCI6XCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTtcbiAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgICBjICs9IFwiOlwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICB9XG5cbiAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7XG5cbiAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykge1xuICAgICAgYyArPSBcIi5cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDAgJiYgIWV4dGVuZGVkWm9uZSkge1xuICAgICAgYyArPSBcIlpcIjtcbiAgICB9IGVsc2UgaWYgKG8ubyA8IDApIHtcbiAgICAgIGMgKz0gXCItXCI7XG4gICAgICBjICs9IHBhZFN0YXJ0KE1hdGgudHJ1bmMoLW8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gJSA2MCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjICs9IFwiK1wiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAvIDYwKSk7XG4gICAgICBjICs9IFwiOlwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKG8ubyAlIDYwKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGV4dGVuZGVkWm9uZSkge1xuICAgIGMgKz0gXCJbXCIgKyBvLnpvbmUuaWFuYU5hbWUgKyBcIl1cIjtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzXG5jb25zdCBkZWZhdWx0VW5pdFZhbHVlcyA9IHtcbiAgICBtb250aDogMSxcbiAgICBkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7XG4gICAgd2Vla051bWJlcjogMSxcbiAgICB3ZWVrZGF5OiAxLFxuICAgIGhvdXI6IDAsXG4gICAgbWludXRlOiAwLFxuICAgIHNlY29uZDogMCxcbiAgICBtaWxsaXNlY29uZDogMCxcbiAgfSxcbiAgZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzID0ge1xuICAgIG9yZGluYWw6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9O1xuXG4vLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3NcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcInllYXJcIiwgXCJtb250aFwiLCBcImRheVwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSxcbiAgb3JkZXJlZFdlZWtVbml0cyA9IFtcbiAgICBcIndlZWtZZWFyXCIsXG4gICAgXCJ3ZWVrTnVtYmVyXCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJtaW51dGVcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwibWlsbGlzZWNvbmRcIixcbiAgXSxcbiAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFtcInllYXJcIiwgXCJvcmRpbmFsXCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdO1xuXG4vLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgIHllYXI6IFwieWVhclwiLFxuICAgIHllYXJzOiBcInllYXJcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG1vbnRoczogXCJtb250aFwiLFxuICAgIGRheTogXCJkYXlcIixcbiAgICBkYXlzOiBcImRheVwiLFxuICAgIGhvdXI6IFwiaG91clwiLFxuICAgIGhvdXJzOiBcImhvdXJcIixcbiAgICBtaW51dGU6IFwibWludXRlXCIsXG4gICAgbWludXRlczogXCJtaW51dGVcIixcbiAgICBxdWFydGVyOiBcInF1YXJ0ZXJcIixcbiAgICBxdWFydGVyczogXCJxdWFydGVyXCIsXG4gICAgc2Vjb25kOiBcInNlY29uZFwiLFxuICAgIHNlY29uZHM6IFwic2Vjb25kXCIsXG4gICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRcIixcbiAgICB3ZWVrZGF5OiBcIndlZWtkYXlcIixcbiAgICB3ZWVrZGF5czogXCJ3ZWVrZGF5XCIsXG4gICAgd2Vla251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla3NudW1iZXI6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWtudW1iZXJzOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVreWVhcjogXCJ3ZWVrWWVhclwiLFxuICAgIHdlZWt5ZWFyczogXCJ3ZWVrWWVhclwiLFxuICAgIG9yZGluYWw6IFwib3JkaW5hbFwiLFxuICB9W3VuaXQudG9Mb3dlckNhc2UoKV07XG5cbiAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyXG4vLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzXG4vLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLlxuZnVuY3Rpb24gcXVpY2tEVChvYmosIG9wdHMpIHtcbiAgY29uc3Qgem9uZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyksXG4gICAgdHNOb3cgPSBTZXR0aW5ncy5ub3coKTtcblxuICBsZXQgdHMsIG87XG5cbiAgLy8gYXNzdW1lIHdlIGhhdmUgdGhlIGhpZ2hlci1vcmRlciB1bml0c1xuICBpZiAoIWlzVW5kZWZpbmVkKG9iai55ZWFyKSkge1xuICAgIGZvciAoY29uc3QgdSBvZiBvcmRlcmVkVW5pdHMpIHtcbiAgICAgIGlmIChpc1VuZGVmaW5lZChvYmpbdV0pKSB7XG4gICAgICAgIG9ialt1XSA9IGRlZmF1bHRVbml0VmFsdWVzW3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShvYmopIHx8IGhhc0ludmFsaWRUaW1lRGF0YShvYmopO1xuICAgIGlmIChpbnZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChpbnZhbGlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXRQcm92aXMgPSB6b25lLm9mZnNldCh0c05vdyk7XG4gICAgW3RzLCBvXSA9IG9ialRvVFMob2JqLCBvZmZzZXRQcm92aXMsIHpvbmUpO1xuICB9IGVsc2Uge1xuICAgIHRzID0gdHNOb3c7XG4gIH1cblxuICByZXR1cm4gbmV3IERhdGVUaW1lKHsgdHMsIHpvbmUsIGxvYywgbyB9KTtcbn1cblxuZnVuY3Rpb24gZGlmZlJlbGF0aXZlKHN0YXJ0LCBlbmQsIG9wdHMpIHtcbiAgY29uc3Qgcm91bmQgPSBpc1VuZGVmaW5lZChvcHRzLnJvdW5kKSA/IHRydWUgOiBvcHRzLnJvdW5kLFxuICAgIGZvcm1hdCA9IChjLCB1bml0KSA9PiB7XG4gICAgICBjID0gcm91bmRUbyhjLCByb3VuZCB8fCBvcHRzLmNhbGVuZGFyeSA/IDAgOiAyLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGVuZC5sb2MuY2xvbmUob3B0cykucmVsRm9ybWF0dGVyKG9wdHMpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQoYywgdW5pdCk7XG4gICAgfSxcbiAgICBkaWZmZXIgPSAodW5pdCkgPT4ge1xuICAgICAgaWYgKG9wdHMuY2FsZW5kYXJ5KSB7XG4gICAgICAgIGlmICghZW5kLmhhc1NhbWUoc3RhcnQsIHVuaXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZC5zdGFydE9mKHVuaXQpLmRpZmYoc3RhcnQuc3RhcnRPZih1bml0KSwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsIHVuaXQpLmdldCh1bml0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGlmIChvcHRzLnVuaXQpIHtcbiAgICByZXR1cm4gZm9ybWF0KGRpZmZlcihvcHRzLnVuaXQpLCBvcHRzLnVuaXQpO1xuICB9XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIG9wdHMudW5pdHMpIHtcbiAgICBjb25zdCBjb3VudCA9IGRpZmZlcih1bml0KTtcbiAgICBpZiAoTWF0aC5hYnMoY291bnQpID49IDEpIHtcbiAgICAgIHJldHVybiBmb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybWF0KHN0YXJ0ID4gZW5kID8gLTAgOiAwLCBvcHRzLnVuaXRzW29wdHMudW5pdHMubGVuZ3RoIC0gMV0pO1xufVxuXG5mdW5jdGlvbiBsYXN0T3B0cyhhcmdMaXN0KSB7XG4gIGxldCBvcHRzID0ge30sXG4gICAgYXJncztcbiAgaWYgKGFyZ0xpc3QubGVuZ3RoID4gMCAmJiB0eXBlb2YgYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdID09PSBcIm9iamVjdFwiKSB7XG4gICAgb3B0cyA9IGFyZ0xpc3RbYXJnTGlzdC5sZW5ndGggLSAxXTtcbiAgICBhcmdzID0gQXJyYXkuZnJvbShhcmdMaXN0KS5zbGljZSgwLCBhcmdMaXN0Lmxlbmd0aCAtIDEpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpO1xuICB9XG4gIHJldHVybiBbb3B0cywgYXJnc107XG59XG5cbi8qKlxuICogQSBEYXRlVGltZSBpcyBhbiBpbW11dGFibGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZGF0ZSBhbmQgdGltZSBhbmQgYWNjb21wYW55aW5nIG1ldGhvZHMuIEl0IGNvbnRhaW5zIGNsYXNzIGFuZCBpbnN0YW5jZSBtZXRob2RzIGZvciBjcmVhdGluZywgcGFyc2luZywgaW50ZXJyb2dhdGluZywgdHJhbnNmb3JtaW5nLCBhbmQgZm9ybWF0dGluZyB0aGVtLlxuICpcbiAqIEEgRGF0ZVRpbWUgY29tcHJpc2VzIG9mOlxuICogKiBBIHRpbWVzdGFtcC4gRWFjaCBEYXRlVGltZSBpbnN0YW5jZSByZWZlcnMgdG8gYSBzcGVjaWZpYyBtaWxsaXNlY29uZCBvZiB0aGUgVW5peCBlcG9jaC5cbiAqICogQSB0aW1lIHpvbmUuIEVhY2ggaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHpvbmUgKGJ5IGRlZmF1bHQgdGhlIGxvY2FsIHN5c3RlbSdzIHpvbmUpLlxuICogKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBlZmZlY3QgaG93IG91dHB1dCBzdHJpbmdzIGFyZSBmb3JtYXR0ZWQsIHN1Y2ggYXMgYGxvY2FsZWAsIGBudW1iZXJpbmdTeXN0ZW1gLCBhbmQgYG91dHB1dENhbGVuZGFyYC5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbmFsaXR5IGl0IHByb3ZpZGVzOlxuICpcbiAqICogKipDcmVhdGlvbioqOiBUbyBjcmVhdGUgYSBEYXRlVGltZSBmcm9tIGl0cyBjb21wb25lbnRzLCB1c2Ugb25lIG9mIGl0cyBmYWN0b3J5IGNsYXNzIG1ldGhvZHM6IHtAbGluayBEYXRlVGltZSNsb2NhbH0sIHtAbGluayBEYXRlVGltZSN1dGN9LCBhbmQgKG1vc3QgZmxleGlibHkpIHtAbGluayBEYXRlVGltZSNmcm9tT2JqZWN0fS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgc3RhbmRhcmQgc3RyaW5nIGZvcm1hdCwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSwge0BsaW5rIERhdGVUaW1lI2Zyb21IVFRQfSwgYW5kIHtAbGluayBEYXRlVGltZSNmcm9tUkZDMjgyMn0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIGN1c3RvbSBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21Gb3JtYXR9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBuYXRpdmUgSlMgZGF0ZSwgdXNlIHtAbGluayBEYXRlVGltZSNmcm9tSlNEYXRlfS5cbiAqICogKipHcmVnb3JpYW4gY2FsZW5kYXIgYW5kIHRpbWUqKjogVG8gZXhhbWluZSB0aGUgR3JlZ29yaWFuIHByb3BlcnRpZXMgb2YgYSBEYXRlVGltZSBpbmRpdmlkdWFsbHkgKGkuZSBhcyBvcHBvc2VkIHRvIGNvbGxlY3RpdmVseSB0aHJvdWdoIHtAbGluayBEYXRlVGltZSN0b09iamVjdH0pLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN5ZWFyfSwge0BsaW5rIERhdGVUaW1lI21vbnRofSxcbiAqIHtAbGluayBEYXRlVGltZSNkYXl9LCB7QGxpbmsgRGF0ZVRpbWUjaG91cn0sIHtAbGluayBEYXRlVGltZSNtaW51dGV9LCB7QGxpbmsgRGF0ZVRpbWUjc2Vjb25kfSwge0BsaW5rIERhdGVUaW1lI21pbGxpc2Vjb25kfSBhY2Nlc3NvcnMuXG4gKiAqICoqV2VlayBjYWxlbmRhcioqOiBGb3IgSVNPIHdlZWsgY2FsZW5kYXIgYXR0cmlidXRlcywgc2VlIHRoZSB7QGxpbmsgRGF0ZVRpbWUjd2Vla1llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjd2Vla051bWJlcn0sIGFuZCB7QGxpbmsgRGF0ZVRpbWUjd2Vla2RheX0gYWNjZXNzb3JzLlxuICogKiAqKkNvbmZpZ3VyYXRpb24qKiBTZWUgdGhlIHtAbGluayBEYXRlVGltZSNsb2NhbGV9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjbnVtYmVyaW5nU3lzdGVtfSBhY2Nlc3NvcnMuXG4gKiAqICoqVHJhbnNmb3JtYXRpb24qKjogVG8gdHJhbnNmb3JtIHRoZSBEYXRlVGltZSBpbnRvIG90aGVyIERhdGVUaW1lcywgdXNlIHtAbGluayBEYXRlVGltZSNzZXR9LCB7QGxpbmsgRGF0ZVRpbWUjcmVjb25maWd1cmV9LCB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0sIHtAbGluayBEYXRlVGltZSNzZXRMb2NhbGV9LCB7QGxpbmsgRGF0ZVRpbWUucGx1c30sIHtAbGluayBEYXRlVGltZSNtaW51c30sIHtAbGluayBEYXRlVGltZSNlbmRPZn0sIHtAbGluayBEYXRlVGltZSNzdGFydE9mfSwge0BsaW5rIERhdGVUaW1lI3RvVVRDfSwgYW5kIHtAbGluayBEYXRlVGltZSN0b0xvY2FsfS5cbiAqICogKipPdXRwdXQqKjogVG8gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCB1c2UgdGhlIHtAbGluayBEYXRlVGltZSN0b1JlbGF0aXZlfSwge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmVDYWxlbmRhcn0sIHtAbGluayBEYXRlVGltZSN0b0pTT059LCB7QGxpbmsgRGF0ZVRpbWUjdG9JU099LCB7QGxpbmsgRGF0ZVRpbWUjdG9IVFRQfSwge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSwge0BsaW5rIERhdGVUaW1lI3RvUkZDMjgyMn0sIHtAbGluayBEYXRlVGltZSN0b1N0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30sIHtAbGluayBEYXRlVGltZSN0b0Zvcm1hdH0sIHtAbGluayBEYXRlVGltZSN0b01pbGxpc30gYW5kIHtAbGluayBEYXRlVGltZSN0b0pTRGF0ZX0uXG4gKlxuICogVGhlcmUncyBwbGVudHkgb3RoZXJzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uLCB0aW1lIHpvbmVzLCBhbHRlcm5hdGl2ZSBjYWxlbmRhcnMsIHZhbGlkaXR5LCBhbmQgc28gb24sIHNlZSB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0ZVRpbWUge1xuICAvKipcbiAgICogQGFjY2VzcyBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCB6b25lID0gY29uZmlnLnpvbmUgfHwgU2V0dGluZ3MuZGVmYXVsdFpvbmU7XG5cbiAgICBsZXQgaW52YWxpZCA9XG4gICAgICBjb25maWcuaW52YWxpZCB8fFxuICAgICAgKE51bWJlci5pc05hTihjb25maWcudHMpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbCkgfHxcbiAgICAgICghem9uZS5pc1ZhbGlkID8gdW5zdXBwb3J0ZWRab25lKHpvbmUpIDogbnVsbCk7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy50cyA9IGlzVW5kZWZpbmVkKGNvbmZpZy50cykgPyBTZXR0aW5ncy5ub3coKSA6IGNvbmZpZy50cztcblxuICAgIGxldCBjID0gbnVsbCxcbiAgICAgIG8gPSBudWxsO1xuICAgIGlmICghaW52YWxpZCkge1xuICAgICAgY29uc3QgdW5jaGFuZ2VkID0gY29uZmlnLm9sZCAmJiBjb25maWcub2xkLnRzID09PSB0aGlzLnRzICYmIGNvbmZpZy5vbGQuem9uZS5lcXVhbHMoem9uZSk7XG5cbiAgICAgIGlmICh1bmNoYW5nZWQpIHtcbiAgICAgICAgW2MsIG9dID0gW2NvbmZpZy5vbGQuYywgY29uZmlnLm9sZC5vXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG90ID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGMgPSB0c1RvT2JqKHRoaXMudHMsIG90KTtcbiAgICAgICAgaW52YWxpZCA9IE51bWJlci5pc05hTihjLnllYXIpID8gbmV3IEludmFsaWQoXCJpbnZhbGlkIGlucHV0XCIpIDogbnVsbDtcbiAgICAgICAgYyA9IGludmFsaWQgPyBudWxsIDogYztcbiAgICAgICAgbyA9IGludmFsaWQgPyBudWxsIDogb3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5fem9uZSA9IHpvbmU7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5sb2MgPSBjb25maWcubG9jIHx8IExvY2FsZS5jcmVhdGUoKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmludmFsaWQgPSBpbnZhbGlkO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMud2Vla0RhdGEgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuYyA9IGM7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5vID0gbztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmlzTHV4b25EYXRlVGltZSA9IHRydWU7XG4gIH1cblxuICAvLyBDT05TVFJVQ1RcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZm9yIHRoZSBjdXJyZW50IGluc3RhbnQsIGluIHRoZSBzeXN0ZW0ncyB0aW1lIHpvbmUuXG4gICAqXG4gICAqIFVzZSBTZXR0aW5ncyB0byBvdmVycmlkZSB0aGVzZSBkZWZhdWx0IHZhbHVlcyBpZiBuZWVkZWQuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvSVNPKCkgLy9+PiBub3cgaW4gdGhlIElTTyBmb3JtYXRcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbm93KCkge1xuICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGxvY2FsIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYGxvY2FsKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2hvdXI9MF0gLSBUaGUgaG91ciBvZiB0aGUgZGF5LCBpbiAyNC1ob3VyIHRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaW51dGU9MF0gLSBUaGUgbWludXRlIG9mIHRoZSBob3VyLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWNvbmQ9MF0gLSBUaGUgc2Vjb25kIG9mIHRoZSBtaW51dGUsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbGxpc2Vjb25kPTBdIC0gVGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA5OTlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCh7IHpvbmU6IFwiQW1lcmljYS9OZXdfWW9ya1wiIH0pICAgICAgLy9+PiBub3csIGluIFVTIGVhc3QgY29hc3QgdGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwLCB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgeyB6b25lOiBcInV0Y1wiIH0pICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwLCBpbiBVVENcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1KSAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCkgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1KSAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1XG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGxvY2FsKCkge1xuICAgIGNvbnN0IFtvcHRzLCBhcmdzXSA9IGxhc3RPcHRzKGFyZ3VtZW50cyksXG4gICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXSA9IGFyZ3M7XG4gICAgcmV0dXJuIHF1aWNrRFQoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgaW4gVVRDXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbeWVhcl0gLSBUaGUgY2FsZW5kYXIgeWVhci4gSWYgb21pdHRlZCAoYXMgaW4sIGNhbGwgYHV0YygpYCB3aXRoIG5vIGFyZ3VtZW50cyksIHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB1c2VkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9udGg9MV0gLSBUaGUgbW9udGgsIDEtaW5kZXhlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RheT0xXSAtIFRoZSBkYXkgb2YgdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sb2NhbGVdIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm91dHB1dENhbGVuZGFyXSAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm51bWJlcmluZ1N5c3RlbV0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IG5vd1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDEtMDFUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDU6NDU6MDBaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTAsIDc2NSwgeyBsb2NhbGU6IFwiZnJcIiB9KSAvL34+IDIwMTctMDMtMTJUMDU6NDU6MTAuNzY1WiB3aXRoIGEgRnJlbmNoIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyB1dGMoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcblxuICAgIG9wdHMuem9uZSA9IEZpeGVkT2Zmc2V0Wm9uZS51dGNJbnN0YW5jZTtcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdC4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge0RhdGV9IGRhdGUgLSBhIEphdmFTY3JpcHQgRGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTRGF0ZShkYXRlLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0cyA9IGlzRGF0ZShkYXRlKSA/IGRhdGUudmFsdWVPZigpIDogTmFOO1xuICAgIGlmIChOdW1iZXIuaXNOYU4odHMpKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcImludmFsaWQgaW5wdXRcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICB0czogdHMsXG4gICAgICB6b25lOiB6b25lVG9Vc2UsXG4gICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaWxsaXNlY29uZHMgLSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghaXNOdW1iZXIobWlsbGlzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgZnJvbU1pbGxpcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dCwgYnV0IHJlY2VpdmVkIGEgJHt0eXBlb2YgbWlsbGlzZWNvbmRzfSB3aXRoIHZhbHVlICR7bWlsbGlzZWNvbmRzfWBcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPCAtTUFYX0RBVEUgfHwgbWlsbGlzZWNvbmRzID4gTUFYX0RBVEUpIHtcbiAgICAgIC8vIHRoaXMgaXNuJ3QgcGVyZmVjdCBiZWNhdXNlIGJlY2F1c2Ugd2UgY2FuIHN0aWxsIGVuZCB1cCBvdXQgb2YgcmFuZ2UgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIHNoaWZ0aW5nLCBidXQgaXQncyBhIHN0YXJ0XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcIlRpbWVzdGFtcCBvdXQgb2YgcmFuZ2VcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogbWlsbGlzZWNvbmRzLFxuICAgICAgICB6b25lOiBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpLFxuICAgICAgICBsb2M6IExvY2FsZS5mcm9tT2JqZWN0KG9wdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2ggKG1lYW5pbmcgc2luY2UgMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS4gVXNlcyB0aGUgZGVmYXVsdCB6b25lLlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Vjb25kcyAtIGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMTk3MCBVVENcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0aW9ucy56b25lPSdsb2NhbCddIC0gdGhlIHpvbmUgdG8gcGxhY2UgdGhlIERhdGVUaW1lIGludG9cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNlY29uZHMoc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihzZWNvbmRzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwiZnJvbVNlY29uZHMgcmVxdWlyZXMgYSBudW1lcmljYWwgaW5wdXRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogc2Vjb25kcyAqIDEwMDAsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGgga2V5cyBsaWtlICd5ZWFyJyBhbmQgJ2hvdXInIHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gY3JlYXRlIHRoZSBEYXRlVGltZSBmcm9tXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoueWVhciAtIGEgeWVhciwgc3VjaCBhcyAxOTg3XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubW9udGggLSBhIG1vbnRoLCAxLTEyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouZGF5IC0gYSBkYXkgb2YgdGhlIG1vbnRoLCAxLTMxLCBkZXBlbmRpbmcgb24gdGhlIG1vbnRoXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoub3JkaW5hbCAtIGRheSBvZiB0aGUgeWVhciwgMS0zNjUgb3IgMzY2XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla1llYXIgLSBhbiBJU08gd2VlayB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla051bWJlciAtIGFuIElTTyB3ZWVrIG51bWJlciwgYmV0d2VlbiAxIGFuZCA1MiBvciA1MywgZGVwZW5kaW5nIG9uIHRoZSB5ZWFyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla2RheSAtIGFuIElTTyB3ZWVrZGF5LCAxLTcsIHdoZXJlIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLmhvdXIgLSBob3VyIG9mIHRoZSBkYXksIDAtMjNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGUgLSBtaW51dGUgb2YgdGhlIGhvdXIsIDAtNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5zZWNvbmQgLSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbGxpc2Vjb25kIC0gbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgMC05OTlcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBjcmVhdGluZyB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBpbnRlcnByZXQgdGhlIG51bWJlcnMgaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyIHpvbmUuIENhbiB0YWtlIGFueSB2YWx1ZSB0YWtlbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc2V0Wm9uZSgpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyLCBtb250aDogNSwgZGF5OiAyNX0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiAxOTgyIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDEtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0pIC8vfj4gdG9kYXkgYXQgMTA6MjY6MDZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAndXRjJyB9KSxcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnbG9jYWwnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyBob3VyOiAxMCwgbWludXRlOiAyNiwgc2Vjb25kOiA2IH0sIHsgem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21PYmplY3QoeyB3ZWVrWWVhcjogMjAxNiwgd2Vla051bWJlcjogMiwgd2Vla2RheTogMyB9KS50b0lTT0RhdGUoKSAvLz0+ICcyMDE2LTAxLTEzJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tT2JqZWN0KG9iaiwgb3B0cyA9IHt9KSB7XG4gICAgb2JqID0gb2JqIHx8IHt9O1xuICAgIGNvbnN0IHpvbmVUb1VzZSA9IG5vcm1hbGl6ZVpvbmUob3B0cy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSk7XG4gICAgaWYgKCF6b25lVG9Vc2UuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQodW5zdXBwb3J0ZWRab25lKHpvbmVUb1VzZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHRzTm93ID0gU2V0dGluZ3Mubm93KCksXG4gICAgICBvZmZzZXRQcm92aXMgPSAhaXNVbmRlZmluZWQob3B0cy5zcGVjaWZpY09mZnNldClcbiAgICAgICAgPyBvcHRzLnNwZWNpZmljT2Zmc2V0XG4gICAgICAgIDogem9uZVRvVXNlLm9mZnNldCh0c05vdyksXG4gICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KG9iaiwgbm9ybWFsaXplVW5pdCksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyLFxuICAgICAgbG9jID0gTG9jYWxlLmZyb21PYmplY3Qob3B0cyk7XG5cbiAgICAvLyBjYXNlczpcbiAgICAvLyBqdXN0IGEgd2Vla2RheSAtPiB0aGlzIHdlZWsncyBpbnN0YW5jZSBvZiB0aGF0IHdlZWtkYXksIG5vIHdvcnJpZXNcbiAgICAvLyAoZ3JlZ29yaWFuIGRhdGEgb3Igb3JkaW5hbCkgKyAod2Vla1llYXIgb3Igd2Vla051bWJlcikgLT4gZXJyb3JcbiAgICAvLyAoZ3JlZ29yaWFuIG1vbnRoIG9yIGRheSkgKyBvcmRpbmFsIC0+IGVycm9yXG4gICAgLy8gb3RoZXJ3aXNlIGp1c3QgdXNlIHdlZWtzIG9yIG9yZGluYWxzIG9yIGdyZWdvcmlhbiwgZGVwZW5kaW5nIG9uIHdoYXQncyBzcGVjaWZpZWRcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VXZWVrRGF0YSA9IGRlZmluaXRlV2Vla0RlZiB8fCAobm9ybWFsaXplZC53ZWVrZGF5ICYmICFjb250YWluc0dyZWdvcik7XG5cbiAgICAvLyBjb25maWd1cmUgb3Vyc2VsdmVzIHRvIGRlYWwgd2l0aCBncmVnb3JpYW4gZGF0ZXMgb3Igd2VlayBzdHVmZlxuICAgIGxldCB1bml0cyxcbiAgICAgIGRlZmF1bHRWYWx1ZXMsXG4gICAgICBvYmpOb3cgPSB0c1RvT2JqKHRzTm93LCBvZmZzZXRQcm92aXMpO1xuICAgIGlmICh1c2VXZWVrRGF0YSkge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkV2Vla1VuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRXZWVrVW5pdFZhbHVlcztcbiAgICAgIG9iak5vdyA9IGdyZWdvcmlhblRvV2VlayhvYmpOb3cpO1xuICAgIH0gZWxzZSBpZiAoY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRPcmRpbmFsVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9PcmRpbmFsKG9iak5vdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZFVuaXRzO1xuICAgICAgZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRVbml0VmFsdWVzO1xuICAgIH1cblxuICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBzdHVmZlxuICAgIGxldCBmb3VuZEZpcnN0ID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCB1IG9mIHVuaXRzKSB7XG4gICAgICBjb25zdCB2ID0gbm9ybWFsaXplZFt1XTtcbiAgICAgIGlmICghaXNVbmRlZmluZWQodikpIHtcbiAgICAgICAgZm91bmRGaXJzdCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGZvdW5kRmlyc3QpIHtcbiAgICAgICAgbm9ybWFsaXplZFt1XSA9IGRlZmF1bHRWYWx1ZXNbdV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gb2JqTm93W3VdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIHdlIGhhdmUgYXJlIGluIHJhbmdlXG4gICAgY29uc3QgaGlnaGVyT3JkZXJJbnZhbGlkID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyBoYXNJbnZhbGlkV2Vla0RhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBoYXNJbnZhbGlkT3JkaW5hbERhdGEobm9ybWFsaXplZClcbiAgICAgICAgOiBoYXNJbnZhbGlkR3JlZ29yaWFuRGF0YShub3JtYWxpemVkKSxcbiAgICAgIGludmFsaWQgPSBoaWdoZXJPcmRlckludmFsaWQgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG5vcm1hbGl6ZWQpO1xuXG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIC8vIGNvbXB1dGUgdGhlIGFjdHVhbCB0aW1lXG4gICAgY29uc3QgZ3JlZ29yaWFuID0gdXNlV2Vla0RhdGFcbiAgICAgICAgPyB3ZWVrVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBjb250YWluc09yZGluYWxcbiAgICAgICAgPyBvcmRpbmFsVG9HcmVnb3JpYW4obm9ybWFsaXplZClcbiAgICAgICAgOiBub3JtYWxpemVkLFxuICAgICAgW3RzRmluYWwsIG9mZnNldEZpbmFsXSA9IG9ialRvVFMoZ3JlZ29yaWFuLCBvZmZzZXRQcm92aXMsIHpvbmVUb1VzZSksXG4gICAgICBpbnN0ID0gbmV3IERhdGVUaW1lKHtcbiAgICAgICAgdHM6IHRzRmluYWwsXG4gICAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgICAgbzogb2Zmc2V0RmluYWwsXG4gICAgICAgIGxvYyxcbiAgICAgIH0pO1xuXG4gICAgLy8gZ3JlZ29yaWFuIGRhdGEgKyB3ZWVrZGF5IHNlcnZlcyBvbmx5IHRvIHZhbGlkYXRlXG4gICAgaWYgKG5vcm1hbGl6ZWQud2Vla2RheSAmJiBjb250YWluc0dyZWdvciAmJiBvYmoud2Vla2RheSAhPT0gaW5zdC53ZWVrZGF5KSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZChcbiAgICAgICAgXCJtaXNtYXRjaGVkIHdlZWtkYXlcIixcbiAgICAgICAgYHlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICR7bm9ybWFsaXplZC53ZWVrZGF5fSBhbmQgYSBkYXRlIG9mICR7aW5zdC50b0lTTygpfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBJU08gODYwMSBzdHJpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcsIHtzZXRab25lOiB0cnVlfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnLCB7em9uZTogJ3V0Yyd9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LVcwNS00JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTTyh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUlTT0RhdGUodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJJU08gODYwMVwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBSRkMgMjgyMiBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSB0aGUgb2Zmc2V0IGlzIGFsd2F5cyBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIHRoaXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgaW50ZXJwcmV0YXRpb24gb2Ygc3RyaW5nLCBtZXJlbHkgdGhlIHpvbmUgdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpcyBleHByZXNzZWQgaW4uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMzoxMiBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tUkZDMjgyMignRnJpLCAyNSBOb3YgMjAxNiAxMzoyMzoxMiArMDYwMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCcyNSBOb3YgMjAxNiAxMzoyMyBaJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVJGQzI4MjIodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VSRkMyODIyRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlJGQyAyODIyXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gSFRUUCBoZWFkZXIgZGF0ZVxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZS4gU2luY2UgSFRUUCBkYXRlcyBhcmUgYWx3YXlzIGluIFVUQywgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggdGhlIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nLiBGb3IgSFRUUCBkYXRlcywgdGhpcyBpcyBhbHdheXMgVVRDLCBzbyB0aGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhlIGB6b25lYCBvcHRpb24gdG8gJ3V0YycsIGJ1dCB0aGlzIG9wdGlvbiBpcyBpbmNsdWRlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCBzaW1pbGFyIG1ldGhvZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J3N5c3RlbSdzIGxvY2FsZSddIC0gYSBsb2NhbGUgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4sIDA2IE5vdiAxOTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW5kYXksIDA2LU5vdi05NCAwODo0OTozNyBHTVQnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSFRUUCgnU3VuIE5vdiAgNiAwODo0OTozNyAxOTk0JylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUhUVFAodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VIVFRQRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIkhUVFBcIiwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBpbnB1dCBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmcuXG4gICAqIERlZmF1bHRzIHRvIGVuLVVTIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN5c3RlbSdzIGxvY2FsZS4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvcGFyc2luZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIHRoZSBsaW5rIGJlbG93IGZvciB0aGUgZm9ybWF0cylcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIHVzZSB0aGlzIHpvbmUgaWYgbm8gb2Zmc2V0IGlzIHNwZWNpZmllZCBpbiB0aGUgaW5wdXQgc3RyaW5nIGl0c2VsZi4gV2lsbCBhbHNvIGNvbnZlcnQgdGhlIERhdGVUaW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcgaXRzZWxmLCBpZiBpdCBzcGVjaWZpZXMgb25lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSBhIGxvY2FsZSBzdHJpbmcgdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlIHdoZW4gcGFyc2luZy4gV2lsbCBhbHNvIHNldCB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIHRvIHRoaXMgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIGlmIChpc1VuZGVmaW5lZCh0ZXh0KSB8fCBpc1VuZGVmaW5lZChmbXQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tRm9ybWF0IHJlcXVpcmVzIGFuIGlucHV0IHN0cmluZyBhbmQgYSBmb3JtYXRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsIH0gPSBvcHRzLFxuICAgICAgbG9jYWxlVG9Vc2UgPSBMb2NhbGUuZnJvbU9wdHMoe1xuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG51bWJlcmluZ1N5c3RlbSxcbiAgICAgICAgZGVmYXVsdFRvRU46IHRydWUsXG4gICAgICB9KSxcbiAgICAgIFt2YWxzLCBwYXJzZWRab25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZF0gPSBwYXJzZUZyb21Ub2tlbnMobG9jYWxlVG9Vc2UsIHRleHQsIGZtdCk7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBgZm9ybWF0ICR7Zm10fWAsIHRleHQsIHNwZWNpZmljT2Zmc2V0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21Gb3JtYXQgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcodGV4dCwgZm10LCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdCh0ZXh0LCBmbXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBTUUwgZGF0ZSwgdGltZSwgb3IgZGF0ZXRpbWVcbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIrMDY6MDAnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDIgQW1lcmljYS9Mb3NfQW5nZWxlcycsIHsgc2V0Wm9uZTogdHJ1ZSB9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MicsIHsgem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzA5OjEyOjM0LjM0MicpXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21TUUwodGV4dCwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgW3ZhbHMsIHBhcnNlZFpvbmVdID0gcGFyc2VTUUwodGV4dCk7XG4gICAgcmV0dXJuIHBhcnNlRGF0YVRvRGF0ZVRpbWUodmFscywgcGFyc2VkWm9uZSwgb3B0cywgXCJTUUxcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGludmFsaWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIERhdGVUaW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7XG4gICAgaWYgKCFyZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRGF0ZVRpbWUgaXMgaW52YWxpZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pO1xuXG4gICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGVUaW1lRXJyb3IoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVRpbWUoeyBpbnZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZVRpbWUuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0RhdGVUaW1lKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uRGF0ZVRpbWUpIHx8IGZhbHNlO1xuICB9XG5cbiAgLy8gSU5GT1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gYSB1bml0IHN1Y2ggYXMgJ21pbnV0ZScgb3IgJ2RheSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdtb250aCcpOyAvLz0+IDdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNywgNCkuZ2V0KCdkYXknKTsgLy89PiA0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbdW5pdF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyB2YWxpZC4gSW52YWxpZCBEYXRlVGltZXMgb2NjdXIgd2hlbjpcbiAgICogKiBUaGUgRGF0ZVRpbWUgd2FzIGNyZWF0ZWQgZnJvbSBpbnZhbGlkIGNhbGVuZGFyIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSAxM3RoIG1vbnRoIG9yIEZlYnJ1YXJ5IDMwXG4gICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGJ5IGFuIG9wZXJhdGlvbiBvbiBhbm90aGVyIGludmFsaWQgZGF0ZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBlcnJvciBjb2RlIGlmIHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkUmVhc29uKCkge1xuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyB0aGlzLmludmFsaWQucmVhc29uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSB0aGlzIERhdGVUaW1lIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEYXRlVGltZSBpcyB2YWxpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGludmFsaWRFeHBsYW5hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvY2FsZSBvZiBhIERhdGVUaW1lLCBzdWNoICdlbi1HQicuIFRoZSBsb2NhbGUgaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5sb2NhbGUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyaW5nIHN5c3RlbSBvZiBhIERhdGVUaW1lLCBzdWNoICdiZW5nJy4gVGhlIG51bWJlcmluZyBzeXN0ZW0gaXMgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGhlIERhdGVUaW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbnVtYmVyaW5nU3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgb3V0cHV0IGNhbGVuZGFyIG9mIGEgRGF0ZVRpbWUsIHN1Y2ggJ2lzbGFtaWMnLiBUaGUgb3V0cHV0IGNhbGVuZGFyIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmxvYy5vdXRwdXRDYWxlbmRhciA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEB0eXBlIHtab25lfVxuICAgKi9cbiAgZ2V0IHpvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSB0aW1lIHpvbmUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgem9uZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuem9uZS5uYW1lIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnllYXIgLy89PiAyMDE3XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnllYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5xdWFydGVyIC8vPT4gMlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHF1YXJ0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IE1hdGguY2VpbCh0aGlzLmMubW9udGggLyAzKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoICgxLTEyKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm1vbnRoIC8vPT4gNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1vbnRoKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubW9udGggOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMwaXNoKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLmRheSAvLz0+IDI1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMuZGF5IDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91ciBvZiB0aGUgZGF5ICgwLTIzKS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDkpLmhvdXIgLy89PiA5XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmhvdXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGUgb2YgdGhlIGhvdXIgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzApLm1pbnV0ZSAvLz0+IDMwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgbWludXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWludXRlIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2Vjb25kIG9mIHRoZSBtaW51dGUgKDAtNTkpLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSwgOSwgMzAsIDUyKS5zZWNvbmQgLy89PiA1MlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHNlY29uZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLnNlY29uZCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kIG9mIHRoZSBzZWNvbmQgKDAtOTk5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1MiwgNjU0KS5taWxsaXNlY29uZCAvLz0+IDY1NFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbGxpc2Vjb25kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmMubWlsbGlzZWNvbmQgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDEyLCAzMSkud2Vla1llYXIgLy89PiAyMDE1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla1llYXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgd2VlayB5ZWFyICgxLTUyaXNoKS5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS53ZWVrTnVtYmVyIC8vPT4gMjFcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtOdW1iZXIgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsuXG4gICAqIDEgaXMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheVxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMTEsIDMxKS53ZWVrZGF5IC8vPT4gNFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEodGhpcykud2Vla2RheSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG9yZGluYWwgKG1lYW5pbmcgdGhlIGRheSBvZiB0aGUgeWVhcilcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLm9yZGluYWwgLy89PiAxNDVcbiAgICogQHR5cGUge251bWJlcnxEYXRlVGltZX1cbiAgICovXG4gIGdldCBvcmRpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKS5vcmRpbmFsIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgbW9udGggbmFtZSwgc3VjaCBhcyAnT2N0Jy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhTaG9ydCAvLz0+IE9jdFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG1vbnRoU2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ubW9udGhzKFwic2hvcnRcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBsb25nIG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdG9iZXInLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS5tb250aExvbmcgLy89PiBPY3RvYmVyXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgbW9udGhMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocyhcImxvbmdcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMubW9udGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBodW1hbiByZWFkYWJsZSBzaG9ydCB3ZWVrZGF5LCBzdWNoIGFzICdNb24nLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5U2hvcnQgLy89PiBNb25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB3ZWVrZGF5U2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IEluZm8ud2Vla2RheXMoXCJzaG9ydFwiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyB3ZWVrZGF5LCBzdWNoIGFzICdNb25kYXknLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgMTAsIDMwKS53ZWVrZGF5TG9uZyAvLz0+IE1vbmRheVxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHdlZWtkYXlMb25nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKFwibG9uZ1wiLCB7IGxvY09iajogdGhpcy5sb2MgfSlbdGhpcy53ZWVrZGF5IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgVVRDIG9mZnNldCBvZiB0aGlzIERhdGVUaW1lIGluIG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkub2Zmc2V0IC8vPT4gLTI0MFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5vZmZzZXQgLy89PiAwXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgb2Zmc2V0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyArdGhpcy5vIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2hvcnQgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgXCJFU1RcIiBvciBcIkVEVFwiLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvZmZzZXROYW1lU2hvcnQoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMsIHtcbiAgICAgICAgZm9ybWF0OiBcInNob3J0XCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9uZyBodW1hbiBuYW1lIGZvciB0aGUgem9uZSdzIGN1cnJlbnQgb2Zmc2V0LCBmb3IgZXhhbXBsZSBcIkVhc3Rlcm4gU3RhbmRhcmQgVGltZVwiIG9yIFwiRWFzdGVybiBEYXlsaWdodCBUaW1lXCIuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG9mZnNldE5hbWVMb25nKCkge1xuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvbmUub2Zmc2V0TmFtZSh0aGlzLnRzLCB7XG4gICAgICAgIGZvcm1hdDogXCJsb25nXCIsXG4gICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoaXMgem9uZSdzIG9mZnNldCBldmVyIGNoYW5nZXMsIGFzIGluIGEgRFNULlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc09mZnNldEZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUuaXNVbml2ZXJzYWwgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIHRoZSBEYXRlVGltZSBpcyBpbiBhIERTVC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkRTVCgpIHtcbiAgICBpZiAodGhpcy5pc09mZnNldEZpeGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogMSwgZGF5OiAxIH0pLm9mZnNldCB8fFxuICAgICAgICB0aGlzLm9mZnNldCA+IHRoaXMuc2V0KHsgbW9udGg6IDUgfSkub2Zmc2V0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBEYXRlVGltZSBpcyBpbiBhIGxlYXAgeWVhciwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmlzSW5MZWFwWWVhciAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuaXNJbkxlYXBZZWFyIC8vPT4gZmFsc2VcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNJbkxlYXBZZWFyKCkge1xuICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIG1vbnRoXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYsIDIpLmRheXNJbk1vbnRoIC8vPT4gMjlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMykuZGF5c0luTW9udGggLy89PiAzMVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJbk1vbnRoKCkge1xuICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIsIHRoaXMubW9udGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoaXMgRGF0ZVRpbWUncyB5ZWFyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTYpLmRheXNJblllYXIgLy89PiAzNjZcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykuZGF5c0luWWVhciAvLz0+IDM2NVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheXNJblllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IGRheXNJblllYXIodGhpcy55ZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMDQpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTMpLndlZWtzSW5XZWVrWWVhciAvLz0+IDUyXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla3NJbldlZWtZZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB3ZWVrc0luV2Vla1llYXIodGhpcy53ZWVrWWVhcikgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgSW50bCBvcHRpb25zIGZvciB0aGlzIERhdGVUaW1lLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBiZWhhdmlvciBvZiBmb3JtYXR0aW5nIG1ldGhvZHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSB0aGUgc2FtZSBvcHRpb25zIGFzIHRvTG9jYWxlU3RyaW5nXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHJlc29sdmVkTG9jYWxlT3B0aW9ucyhvcHRzID0ge30pIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhciB9ID0gRm9ybWF0dGVyLmNyZWF0ZShcbiAgICAgIHRoaXMubG9jLmNsb25lKG9wdHMpLFxuICAgICAgb3B0c1xuICAgICkucmVzb2x2ZWRPcHRpb25zKHRoaXMpO1xuICAgIHJldHVybiB7IGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcjogY2FsZW5kYXIgfTtcbiAgfVxuXG4gIC8vIFRSQU5TRk9STVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gVVRDLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8ge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9KCd1dGMnKVxuICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIG9wdGlvbmFsbHksIGFuIG9mZnNldCBmcm9tIFVUQyBpbiBtaW51dGVzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cz17fV0gLSBvcHRpb25zIHRvIHBhc3MgdG8gYHNldFpvbmUoKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b1VUQyhvZmZzZXQgPSAwLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKEZpeGVkT2Zmc2V0Wm9uZS5pbnN0YW5jZShvZmZzZXQpLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gdGhlIGhvc3QncyBsb2NhbCB6b25lLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqXG4gICAqIEVxdWl2YWxlbnQgdG8gYHNldFpvbmUoJ2xvY2FsJylgXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgdG9Mb2NhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRab25lKFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBEYXRlVGltZSdzIHpvbmUgdG8gc3BlY2lmaWVkIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIHNldHRlciBrZWVwcyB0aGUgdW5kZXJseWluZyB0aW1lIHRoZSBzYW1lIChhcyBpbiwgdGhlIHNhbWUgdGltZXN0YW1wKSwgYnV0IHRoZSBuZXcgaW5zdGFuY2Ugd2lsbCByZXBvcnQgZGlmZmVyZW50IGxvY2FsIHRpbWVzIGFuZCBjb25zaWRlciBEU1RzIHdoZW4gbWFraW5nIGNvbXB1dGF0aW9ucywgYXMgd2l0aCB7QGxpbmsgRGF0ZVRpbWUjcGx1c30uIFlvdSBtYXkgd2lzaCB0byB1c2Uge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9IGFuZCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9IHdoaWNoIHByb3ZpZGUgc2ltcGxlIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBjb21tb25seSB1c2VkIHpvbmVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbem9uZT0nbG9jYWwnXSAtIGEgem9uZSBpZGVudGlmaWVyLiBBcyBhIHN0cmluZywgdGhhdCBjYW4gYmUgYW55IElBTkEgem9uZSBzdXBwb3J0ZWQgYnkgdGhlIGhvc3QgZW52aXJvbm1lbnQsIG9yIGEgZml4ZWQtb2Zmc2V0IG5hbWUgb2YgdGhlIGZvcm0gJ1VUQyszJywgb3IgdGhlIHN0cmluZ3MgJ2xvY2FsJyBvciAndXRjJy4gWW91IG1heSBhbHNvIHN1cHBseSBhbiBpbnN0YW5jZSBvZiBhIHtAbGluayBEYXRlVGltZSNab25lfSBjbGFzcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMua2VlcExvY2FsVGltZT1mYWxzZV0gLSBJZiB0cnVlLCBhZGp1c3QgdGhlIHVuZGVybHlpbmcgdGltZSBzbyB0aGF0IHRoZSBsb2NhbCB0aW1lIHN0YXlzIHRoZSBzYW1lLCBidXQgaW4gdGhlIHRhcmdldCB6b25lLiBZb3Ugc2hvdWxkIHJhcmVseSBuZWVkIHRoaXMuXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWUgPSBmYWxzZSwga2VlcENhbGVuZGFyVGltZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgIHpvbmUgPSBub3JtYWxpemVab25lKHpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoem9uZS5lcXVhbHModGhpcy56b25lKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmICghem9uZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbmV3VFMgPSB0aGlzLnRzO1xuICAgICAgaWYgKGtlZXBMb2NhbFRpbWUgfHwga2VlcENhbGVuZGFyVGltZSkge1xuICAgICAgICBjb25zdCBvZmZzZXRHdWVzcyA9IHpvbmUub2Zmc2V0KHRoaXMudHMpO1xuICAgICAgICBjb25zdCBhc09iaiA9IHRoaXMudG9PYmplY3QoKTtcbiAgICAgICAgW25ld1RTXSA9IG9ialRvVFMoYXNPYmosIG9mZnNldEd1ZXNzLCB6b25lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzOiBuZXdUUywgem9uZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG9yIG91dHB1dENhbGVuZGFyLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIC0gdGhlIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5yZWNvbmZpZ3VyZSh7IGxvY2FsZTogJ2VuLUdCJyB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHJlY29uZmlndXJlKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyIH0pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IGxvYyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogSnVzdCBhIGNvbnZlbmllbnQgYWxpYXMgZm9yIHJlY29uZmlndXJlKHsgbG9jYWxlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5zZXRMb2NhbGUoJ2VuLUdCJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRMb2NhbGUobG9jYWxlKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb25maWd1cmUoeyBsb2NhbGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBZb3UgY2FuIG9ubHkgc2V0IHVuaXRzIHdpdGggdGhpcyBtZXRob2Q7IGZvciBcInNldHRpbmdcIiBtZXRhZGF0YSwgc2VlIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0gYW5kIHtAbGluayBEYXRlVGltZSNzZXRab25lfS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIGEgbWFwcGluZyBvZiB1bml0cyB0byBudW1iZXJzXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgaG91cjogOCwgbWludXRlOiAzMCB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyB3ZWVrZGF5OiA1IH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHllYXI6IDIwMDUsIG9yZGluYWw6IDIzNCB9KVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplT2JqZWN0KHZhbHVlcywgbm9ybWFsaXplVW5pdCksXG4gICAgICBzZXR0aW5nV2Vla1N0dWZmID1cbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla1llYXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtOdW1iZXIpIHx8XG4gICAgICAgICFpc1VuZGVmaW5lZChub3JtYWxpemVkLndlZWtkYXkpLFxuICAgICAgY29udGFpbnNPcmRpbmFsID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQub3JkaW5hbCksXG4gICAgICBjb250YWluc0dyZWdvclllYXIgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC55ZWFyKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yTUQgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5tb250aCkgfHwgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yID0gY29udGFpbnNHcmVnb3JZZWFyIHx8IGNvbnRhaW5zR3JlZ29yTUQsXG4gICAgICBkZWZpbml0ZVdlZWtEZWYgPSBub3JtYWxpemVkLndlZWtZZWFyIHx8IG5vcm1hbGl6ZWQud2Vla051bWJlcjtcblxuICAgIGlmICgoY29udGFpbnNHcmVnb3IgfHwgY29udGFpbnNPcmRpbmFsKSAmJiBkZWZpbml0ZVdlZWtEZWYpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcbiAgICAgICAgXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zR3JlZ29yTUQgJiYgY29udGFpbnNPcmRpbmFsKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXCJDYW4ndCBtaXggb3JkaW5hbCBkYXRlcyB3aXRoIG1vbnRoL2RheVwiKTtcbiAgICB9XG5cbiAgICBsZXQgbWl4ZWQ7XG4gICAgaWYgKHNldHRpbmdXZWVrU3R1ZmYpIHtcbiAgICAgIG1peGVkID0gd2Vla1RvR3JlZ29yaWFuKHsgLi4uZ3JlZ29yaWFuVG9XZWVrKHRoaXMuYyksIC4uLm5vcm1hbGl6ZWQgfSk7XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSkge1xuICAgICAgbWl4ZWQgPSBvcmRpbmFsVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub09yZGluYWwodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWl4ZWQgPSB7IC4uLnRoaXMudG9PYmplY3QoKSwgLi4ubm9ybWFsaXplZCB9O1xuXG4gICAgICAvLyBpZiB3ZSBkaWRuJ3Qgc2V0IHRoZSBkYXkgYnV0IHdlIGVuZGVkIHVwIG9uIGFuIG92ZXJmbG93IGRhdGUsXG4gICAgICAvLyB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSByaWdodCBtb250aFxuICAgICAgaWYgKGlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQuZGF5KSkge1xuICAgICAgICBtaXhlZC5kYXkgPSBNYXRoLm1pbihkYXlzSW5Nb250aChtaXhlZC55ZWFyLCBtaXhlZC5tb250aCksIG1peGVkLmRheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgW3RzLCBvXSA9IG9ialRvVFMobWl4ZWQsIHRoaXMubywgdGhpcy56b25lKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB0cywgbyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBwZXJpb2Qgb2YgdGltZSB0byB0aGlzIERhdGVUaW1lIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBEYXRlVGltZVxuICAgKlxuICAgKiBBZGRpbmcgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG9yIG1pbGxpc2Vjb25kcyBpbmNyZWFzZXMgdGhlIHRpbWVzdGFtcCBieSB0aGUgcmlnaHQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy4gQWRkaW5nIGRheXMsIG1vbnRocywgb3IgeWVhcnMgc2hpZnRzIHRoZSBjYWxlbmRhciwgYWNjb3VudGluZyBmb3IgRFNUcyBhbmQgbGVhcCB5ZWFycyBhbG9uZyB0aGUgd2F5LiBUaHVzLCBgZHQucGx1cyh7IGhvdXJzOiAyNCB9KWAgbWF5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0aW1lIHRoYW4gYGR0LnBsdXMoeyBkYXlzOiAxIH0pYCBpZiB0aGVyZSdzIGEgRFNUIHNoaWZ0IGluIGJldHdlZW4uXG4gICAqIEBwYXJhbSB7RHVyYXRpb258T2JqZWN0fG51bWJlcn0gZHVyYXRpb24gLSBUaGUgYW1vdW50IHRvIGFkZC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cygxMjMpIC8vfj4gaW4gMTIzIG1pbGxpc2Vjb25kc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgbWludXRlczogMTUgfSkgLy9+PiBpbiAxNSBtaW51dGVzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pIC8vfj4gdGhpcyB0aW1lIHRvbW9ycm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAtMSB9KSAvL34+IHRoaXMgdGltZSB5ZXN0ZXJkYXlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSAvL34+IGluIDMgaHIsIDEzIG1pblxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMywgbWludXRlczogMTMgfSkpIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcGx1cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKTtcbiAgICByZXR1cm4gY2xvbmUodGhpcywgYWRqdXN0VGltZSh0aGlzLCBkdXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJ0cmFjdCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjcGx1c31cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gc3VidHJhY3QuIEVpdGhlciBhIEx1eG9uIER1cmF0aW9uLCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIHRoZSBvYmplY3QgYXJndW1lbnQgdG8gRHVyYXRpb24uZnJvbU9iamVjdCgpXG4gICBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIG1pbnVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pLm5lZ2F0ZSgpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhpcyBEYXRlVGltZSB0byB0aGUgYmVnaW5uaW5nIG9mIGEgdW5pdCBvZiB0aW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIFRoZSB1bml0IHRvIGdvIHRvIHRoZSBiZWdpbm5pbmcgb2YuIENhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsIG9yICdtaWxsaXNlY29uZCcuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ21vbnRoJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDEnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLnN0YXJ0T2YoJ3llYXInKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignd2VlaycpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAzLTAzJywgd2Vla3MgYWx3YXlzIHN0YXJ0IG9uIE1vbmRheXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2RheScpLnRvSVNPVGltZSgpOyAvLz0+ICcwMDowMC4wMDAtMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5zdGFydE9mKCdob3VyJykudG9JU09UaW1lKCk7IC8vPT4gJzA1OjAwOjAwLjAwMC0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGFydE9mKHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgbyA9IHt9LFxuICAgICAgbm9ybWFsaXplZFVuaXQgPSBEdXJhdGlvbi5ub3JtYWxpemVVbml0KHVuaXQpO1xuICAgIHN3aXRjaCAobm9ybWFsaXplZFVuaXQpIHtcbiAgICAgIGNhc2UgXCJ5ZWFyc1wiOlxuICAgICAgICBvLm1vbnRoID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJxdWFydGVyc1wiOlxuICAgICAgY2FzZSBcIm1vbnRoc1wiOlxuICAgICAgICBvLmRheSA9IDE7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwid2Vla3NcIjpcbiAgICAgIGNhc2UgXCJkYXlzXCI6XG4gICAgICAgIG8uaG91ciA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwiaG91cnNcIjpcbiAgICAgICAgby5taW51dGUgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcIm1pbnV0ZXNcIjpcbiAgICAgICAgby5zZWNvbmQgPSAwO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInNlY29uZHNcIjpcbiAgICAgICAgby5taWxsaXNlY29uZCA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1pbGxpc2Vjb25kc1wiOlxuICAgICAgICBicmVhaztcbiAgICAgIC8vIG5vIGRlZmF1bHQsIGludmFsaWQgdW5pdHMgdGhyb3cgaW4gbm9ybWFsaXplVW5pdCgpXG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcIndlZWtzXCIpIHtcbiAgICAgIG8ud2Vla2RheSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRVbml0ID09PSBcInF1YXJ0ZXJzXCIpIHtcbiAgICAgIGNvbnN0IHEgPSBNYXRoLmNlaWwodGhpcy5tb250aCAvIDMpO1xuICAgICAgby5tb250aCA9IChxIC0gMSkgKiAzICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXQobyk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBlbmQgKG1lYW5pbmcgdGhlIGxhc3QgbWlsbGlzZWNvbmQpIG9mIGEgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGVuZCBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ21vbnRoJykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd5ZWFyJykudG9JU08oKTsgLy89PiAnMjAxNC0xMi0zMVQyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMpLmVuZE9mKCd3ZWVrJykudG9JU08oKTsgLy8gPT4gJzIwMTQtMDMtMDlUMjM6NTk6NTkuOTk5LTA1OjAwJywgd2Vla3Mgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2RheScpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMjM6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuZW5kT2YoJ2hvdXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTAzVDA1OjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBlbmRPZih1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyB0aGlzLnBsdXMoeyBbdW5pdF06IDEgfSlcbiAgICAgICAgICAuc3RhcnRPZih1bml0KVxuICAgICAgICAgIC5taW51cygxKVxuICAgICAgOiB0aGlzO1xuICB9XG5cbiAgLy8gT1VUUFVUXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogKipZb3UgbWF5IG5vdCB3YW50IHRoaXMuKiogU2VlIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9yIGEgbW9yZSBmbGV4aWJsZSBmb3JtYXR0aW5nIHRvb2wuIEZvciBhIHRhYmxlIG9mIHRva2VucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb25zLCBzZWUgW2hlcmVdKGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jL2Zvcm1hdHRpbmc/aWQ9dGFibGUtb2YtdG9rZW5zKS5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnKSAvLz0+ICcyMDE3IEFwciAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKCdmcicpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJywgeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+ICcyMDE3IGF2ci4gMjInXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KFwiSEggJ2hvdXJzIGFuZCcgbW0gJ21pbnV0ZXMnXCIpIC8vPT4gJzIwIGhvdXJzIGFuZCA1NSBtaW51dGVzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5yZWRlZmF1bHRUb0VOKG9wdHMpKS5mb3JtYXREYXRlVGltZUZyb21TdHJpbmcodGhpcywgZm10KVxuICAgICAgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsb2NhbGl6ZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGlzIGRhdGUuIEFjY2VwdHMgdGhlIHNhbWUgb3B0aW9ucyBhcyB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBhbmQgYW55IHByZXNldHMgZGVmaW5lZCBieSBMdXhvbiwgc3VjaCBhcyBgRGF0ZVRpbWUuREFURV9GVUxMYCBvciBgRGF0ZVRpbWUuVElNRV9TSU1QTEVgLlxuICAgKiBUaGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2QgaXMgYnJvd3Nlci1zcGVjaWZpYywgYnV0IGluIGdlbmVyYWwgaXQgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgcmVwcmVzZW50YXRpb25cbiAgICogb2YgdGhlIERhdGVUaW1lIGluIHRoZSBhc3NpZ25lZCBsb2NhbGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSBmb3JtYXRPcHRzIHtPYmplY3R9IC0gSW50bC5EYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3RvciBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRzIHRvIG92ZXJyaWRlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZygpOyAvLz0+IDQvMjAvMjAxN1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyBsb2NhbGU6ICdlbi1nYicgfSk7IC8vPT4gJzIwLzA0LzIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVfRlVMTCk7IC8vPT4gJ0FwcmlsIDIwLCAyMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5USU1FX1NJTVBMRSk7IC8vPT4gJzExOjMyIEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyhEYXRlVGltZS5EQVRFVElNRV9TSE9SVCk7IC8vPT4gJzQvMjAvMjAxNywgMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ2xvbmcnLCBtb250aDogJ2xvbmcnLCBkYXk6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1cnNkYXksIEFwcmlsIDIwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IHdlZWtkYXk6ICdzaG9ydCcsIG1vbnRoOiAnc2hvcnQnLCBkYXk6ICcyLWRpZ2l0JywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgLy89PiAnVGh1LCBBcHIgMjAsIDExOjI3IEFNJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXJDeWNsZTogJ2gyMycgfSk7IC8vPT4gJzExOjMyJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0xvY2FsZVN0cmluZyhmb3JtYXRPcHRzID0gRm9ybWF0cy5EQVRFX1NIT1JULCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IEZvcm1hdHRlci5jcmVhdGUodGhpcy5sb2MuY2xvbmUob3B0cyksIGZvcm1hdE9wdHMpLmZvcm1hdERhdGVUaW1lKHRoaXMpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBmb3JtYXQgXCJwYXJ0c1wiLCBtZWFuaW5nIGluZGl2aWR1YWwgdG9rZW5zIGFsb25nIHdpdGggbWV0YWRhdGEuIFRoaXMgaXMgYWxsb3dzIGNhbGxlcnMgdG8gcG9zdC1wcm9jZXNzIGluZGl2aWR1YWwgc2VjdGlvbnMgb2YgdGhlIGZvcm1hdHRlZCBvdXRwdXQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0L2Zvcm1hdFRvUGFydHNcbiAgICogQHBhcmFtIG9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMsIHNhbWUgYXMgYHRvTG9jYWxlU3RyaW5nYC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVQYXJ0cygpOyAvLz0+IFtcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdkYXknLCB2YWx1ZTogJzI1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbW9udGgnLCB2YWx1ZTogJzA1JyB9LFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2xpdGVyYWwnLCB2YWx1ZTogJy8nIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAneWVhcicsIHZhbHVlOiAnMTk4MicgfVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiBdXG4gICAqL1xuICB0b0xvY2FsZVBhcnRzKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgb3B0cykuZm9ybWF0RGF0ZVRpbWVQYXJ0cyh0aGlzKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MywgNSwgMjUpLnRvSVNPKCkgLy89PiAnMTk4Mi0wNS0yNVQwMDowMDowMC4wMDBaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTygpIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1LTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzIwMTctMDQtMjJUMjA6NDc6MDUuMzM1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0lTTyh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcyMDE3MDQyMlQyMDQ3MDUuMzM1LTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPKHtcbiAgICBmb3JtYXQgPSBcImV4dGVuZGVkXCIsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NNaWxsaXNlY29uZHMgPSBmYWxzZSxcbiAgICBpbmNsdWRlT2Zmc2V0ID0gdHJ1ZSxcbiAgICBleHRlbmRlZFpvbmUgPSBmYWxzZSxcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiO1xuXG4gICAgbGV0IGMgPSB0b0lTT0RhdGUodGhpcywgZXh0KTtcbiAgICBjICs9IFwiVFwiO1xuICAgIGMgKz0gdG9JU09UaW1lKHRoaXMsIGV4dCwgc3VwcHJlc3NTZWNvbmRzLCBzdXBwcmVzc01pbGxpc2Vjb25kcywgaW5jbHVkZU9mZnNldCwgZXh0ZW5kZWRab25lKTtcbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIGRhdGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODIsIDUsIDI1KS50b0lTT0RhdGUoKSAvLz0+ICcxOTgyLTA1LTI1J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxOTgyMDUyNSdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKHsgZm9ybWF0ID0gXCJleHRlbmRlZFwiIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHdlZWsgZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPV2Vla0RhdGUoKSAvLz0+ICcxOTgyLVcyMS0yJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1dlZWtEYXRlKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgXCJra2trLSdXJ1dXLWNcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUncyB0aW1lIGNvbXBvbmVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5leHRlbmRlZFpvbmU9dHJ1ZV0gLSBhZGQgdGhlIHRpbWUgem9uZSBmb3JtYXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSgpIC8vPT4gJzA3OjM0OjE5LjM2MVonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQsIHNlY29uZHM6IDAsIG1pbGxpc2Vjb25kczogMCB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMDc6MzRaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0IH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcwNzM0MTkuMzYxWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBpbmNsdWRlUHJlZml4OiB0cnVlIH0pIC8vPT4gJ1QwNzozNDoxOS4zNjFaJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUoe1xuICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gZmFsc2UsXG4gICAgc3VwcHJlc3NTZWNvbmRzID0gZmFsc2UsXG4gICAgaW5jbHVkZU9mZnNldCA9IHRydWUsXG4gICAgaW5jbHVkZVByZWZpeCA9IGZhbHNlLFxuICAgIGV4dGVuZGVkWm9uZSA9IGZhbHNlLFxuICAgIGZvcm1hdCA9IFwiZXh0ZW5kZWRcIixcbiAgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBjID0gaW5jbHVkZVByZWZpeCA/IFwiVFwiIDogXCJcIjtcbiAgICByZXR1cm4gKFxuICAgICAgYyArXG4gICAgICB0b0lTT1RpbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiLFxuICAgICAgICBzdXBwcmVzc1NlY29uZHMsXG4gICAgICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzLFxuICAgICAgICBpbmNsdWRlT2Zmc2V0LFxuICAgICAgICBleHRlbmRlZFpvbmVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gUkZDIDI4MjItY29tcGF0aWJsZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgKzAwMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1JGQzI4MjIoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIC0wNDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1JGQzI4MjIoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgWlpaXCIsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBIVFRQIGhlYWRlcnMuIFRoZSBvdXRwdXQgaXMgYWx3YXlzIGV4cHJlc3NlZCBpbiBHTVQuXG4gICAqIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZyBjb25mb3JtcyB0byBSRkMgMTEyMy5cbiAgICogQHNlZSBodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjFcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDAwOjAwOjAwIEdNVCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzLCAxOSkudG9IVFRQKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAxOTowMDowMCBHTVQnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSFRUUCgpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMudG9VVEMoKSwgXCJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBEYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9TUUxEYXRlKCkgLy89PiAnMjAxNC0wNy0xMydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUxEYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRvSVNPRGF0ZSh0aGlzLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgVGltZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlWm9uZT1mYWxzZV0gLSBpbmNsdWRlIHRoZSB6b25lLCBzdWNoIGFzICdBbWVyaWNhL05ld19Zb3JrJy4gT3ZlcnJpZGVzIGluY2x1ZGVPZmZzZXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldD10cnVlXSAtIGluY2x1ZGUgdGhlIG9mZnNldCwgc3VjaCBhcyAnWicgb3IgJy0wNDowMCdcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0U3BhY2U9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB0aW1lIGFuZCB0aGUgb2Zmc2V0LCBzdWNoIGFzICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlLCBpbmNsdWRlT2Zmc2V0U3BhY2UgPSB0cnVlIH0gPSB7fSkge1xuICAgIGxldCBmbXQgPSBcIkhIOm1tOnNzLlNTU1wiO1xuXG4gICAgaWYgKGluY2x1ZGVab25lIHx8IGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgIGlmIChpbmNsdWRlT2Zmc2V0U3BhY2UpIHtcbiAgICAgICAgZm10ICs9IFwiIFwiO1xuICAgICAgfVxuICAgICAgaWYgKGluY2x1ZGVab25lKSB7XG4gICAgICAgIGZtdCArPSBcInpcIjtcbiAgICAgIH0gZWxzZSBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgICAgICBmbXQgKz0gXCJaWlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcywgZm10LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBTUUwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVpvbmU9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgem9uZSwgc3VjaCBhcyAnQW1lcmljYS9OZXdfWW9yaycuIE92ZXJyaWRlcyBpbmNsdWRlT2Zmc2V0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVPZmZzZXQ9dHJ1ZV0gLSBpbmNsdWRlIHRoZSBvZmZzZXQsIHN1Y2ggYXMgJ1onIG9yICctMDQ6MDAnXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZU9mZnNldFNwYWNlPXRydWVdIC0gaW5jbHVkZSB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgdGltZSBhbmQgdGhlIG9mZnNldCwgc3VjaCBhcyAnMDU6MTU6MTYuMzQ1IC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIFonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCgpIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIC0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZU9mZnNldDogZmFsc2UgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDcsIDEzKS50b1NRTCh7IGluY2x1ZGVab25lOiB0cnVlIH0pIC8vPT4gJzIwMTQtMDctMTMgMDA6MDA6MDAuMDAwIEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMKG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7dGhpcy50b1NRTERhdGUoKX0gJHt0aGlzLnRvU1FMVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnRvSVNPKCkgOiBJTlZBTElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLiBBbGlhcyBvZiB7QGxpbmsgRGF0ZVRpbWUjdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdG9NaWxsaXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1NlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudHMgLyAxMDAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIHNlY29uZHMgKGFzIGEgd2hvbGUgbnVtYmVyKSBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b1VuaXhJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmZsb29yKHRoaXMudHMgLyAxMDAwKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRGF0ZVRpbWUgYXBwcm9wcmlhdGUgZm9yIHVzZSBpbiBKU09OLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQlNPTiBzZXJpYWxpemFibGUgZXF1aXZhbGVudCB0byB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtEYXRlfVxuICAgKi9cbiAgdG9CU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvSlNEYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEYXRlVGltZSdzIHllYXIsIG1vbnRoLCBkYXksIGFuZCBzbyBvbi5cbiAgICogQHBhcmFtIG9wdHMgLSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlQ29uZmlnPWZhbHNlXSAtIGluY2x1ZGUgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVzIGluIHRoZSBvdXRwdXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9PYmplY3QoKSAvLz0+IHsgeWVhcjogMjAxNywgbW9udGg6IDQsIGRheTogMjIsIGhvdXI6IDIwLCBtaW51dGU6IDQ5LCBzZWNvbmQ6IDQyLCBtaWxsaXNlY29uZDogMjY4IH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3Qob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcblxuICAgIGNvbnN0IGJhc2UgPSB7IC4uLnRoaXMuYyB9O1xuXG4gICAgaWYgKG9wdHMuaW5jbHVkZUNvbmZpZykge1xuICAgICAgYmFzZS5vdXRwdXRDYWxlbmRhciA9IHRoaXMub3V0cHV0Q2FsZW5kYXI7XG4gICAgICBiYXNlLm51bWJlcmluZ1N5c3RlbSA9IHRoaXMubG9jLm51bWJlcmluZ1N5c3RlbTtcbiAgICAgIGJhc2UubG9jYWxlID0gdGhpcy5sb2MubG9jYWxlO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgSmF2YVNjcmlwdCBEYXRlIGVxdWl2YWxlbnQgdG8gdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7RGF0ZX1cbiAgICovXG4gIHRvSlNEYXRlKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmlzVmFsaWQgPyB0aGlzLnRzIDogTmFOKTtcbiAgfVxuXG4gIC8vIENPTVBBUkVcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIERhdGVUaW1lcyBhcyBhIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlckRhdGVUaW1lIC0gdGhlIERhdGVUaW1lIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG9cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIGkxID0gRGF0ZVRpbWUuZnJvbUlTTygnMTk4Mi0wNS0yNVQwOTo0NScpLFxuICAgKiAgICAgaTIgPSBEYXRlVGltZS5mcm9tSVNPKCcxOTgzLTEwLTE0VDEwOjMwJyk7XG4gICAqIGkyLmRpZmYoaTEpLnRvT2JqZWN0KCkgLy89PiB7IG1pbGxpc2Vjb25kczogNDM4MDc1MDAwMDAgfVxuICAgKiBpMi5kaWZmKGkxLCAnaG91cnMnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMTIxNjguNzUgfVxuICAgKiBpMi5kaWZmKGkxLCBbJ21vbnRocycsICdkYXlzJ10pLnRvT2JqZWN0KCkgLy89PiB7IG1vbnRoczogMTYsIGRheXM6IDE5LjAzMTI1IH1cbiAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cycsICdob3VycyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOSwgaG91cnM6IDAuNzUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmYob3RoZXJEYXRlVGltZSwgdW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkIHx8ICFvdGhlckRhdGVUaW1lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5pbnZhbGlkKFwiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWVcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyT3B0cyA9IHsgbG9jYWxlOiB0aGlzLmxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtOiB0aGlzLm51bWJlcmluZ1N5c3RlbSwgLi4ub3B0cyB9O1xuXG4gICAgY29uc3QgdW5pdHMgPSBtYXliZUFycmF5KHVuaXQpLm1hcChEdXJhdGlvbi5ub3JtYWxpemVVbml0KSxcbiAgICAgIG90aGVySXNMYXRlciA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpID4gdGhpcy52YWx1ZU9mKCksXG4gICAgICBlYXJsaWVyID0gb3RoZXJJc0xhdGVyID8gdGhpcyA6IG90aGVyRGF0ZVRpbWUsXG4gICAgICBsYXRlciA9IG90aGVySXNMYXRlciA/IG90aGVyRGF0ZVRpbWUgOiB0aGlzLFxuICAgICAgZGlmZmVkID0gZGlmZihlYXJsaWVyLCBsYXRlciwgdW5pdHMsIGR1ck9wdHMpO1xuXG4gICAgcmV0dXJuIG90aGVySXNMYXRlciA/IGRpZmZlZC5uZWdhdGUoKSA6IGRpZmZlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCByaWdodCBub3cuXG4gICAqIFNlZSB7QGxpbmsgRGF0ZVRpbWUjZGlmZn1cbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt1bml0PVsnbWlsbGlzZWNvbmRzJ11dIC0gdGhlIHVuaXQgb3IgdW5pdHMgdW5pdHMgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIGluY2x1ZGUgaW4gdGhlIGR1cmF0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgdGhlIER1cmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIGRpZmZOb3codW5pdCA9IFwibWlsbGlzZWNvbmRzXCIsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmRpZmYoRGF0ZVRpbWUubm93KCksIHVuaXQsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCBzcGFubmluZyBiZXR3ZWVuIHRoaXMgRGF0ZVRpbWUgYW5kIGFub3RoZXIgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBlbmQgcG9pbnQgb2YgdGhlIEludGVydmFsXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgdW50aWwob3RoZXJEYXRlVGltZSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKHRoaXMsIG90aGVyRGF0ZVRpbWUpIDogdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIERhdGVUaW1lIGlzIGluIHRoZSBzYW1lIHVuaXQgb2YgdGltZSBhcyBhbm90aGVyIERhdGVUaW1lLlxuICAgKiBIaWdoZXItb3JkZXIgdW5pdHMgbXVzdCBhbHNvIGJlIGlkZW50aWNhbCBmb3IgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYHRydWVgLlxuICAgKiBOb3RlIHRoYXQgdGltZSB6b25lcyBhcmUgKippZ25vcmVkKiogaW4gdGhpcyBjb21wYXJpc29uLCB3aGljaCBjb21wYXJlcyB0aGUgKipsb2NhbCoqIGNhbGVuZGFyIHRpbWUuIFVzZSB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0gdG8gY29udmVydCBvbmUgb2YgdGhlIGRhdGVzIGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBvdGhlciBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY2hlY2sgc2FtZW5lc3Mgb25cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuaGFzU2FtZShvdGhlckRULCAnZGF5Jyk7IC8vfj4gdHJ1ZSBpZiBvdGhlckRUIGlzIGluIHRoZSBzYW1lIGN1cnJlbnQgY2FsZW5kYXIgZGF5XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBoYXNTYW1lKG90aGVyRGF0ZVRpbWUsIHVuaXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgaW5wdXRNcyA9IG90aGVyRGF0ZVRpbWUudmFsdWVPZigpO1xuICAgIGNvbnN0IGFkanVzdGVkVG9ab25lID0gdGhpcy5zZXRab25lKG90aGVyRGF0ZVRpbWUuem9uZSwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pO1xuICAgIHJldHVybiBhZGp1c3RlZFRvWm9uZS5zdGFydE9mKHVuaXQpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSBhZGp1c3RlZFRvWm9uZS5lbmRPZih1bml0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVhbGl0eSBjaGVja1xuICAgKiBUd28gRGF0ZVRpbWVzIGFyZSBlcXVhbCBpZmYgdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbWlsbGlzZWNvbmQsIGhhdmUgdGhlIHNhbWUgem9uZSBhbmQgbG9jYXRpb24sIGFuZCBhcmUgYm90aCB2YWxpZC5cbiAgICogVG8gY29tcGFyZSBqdXN0IHRoZSBtaWxsaXNlY29uZCB2YWx1ZXMsIHVzZSBgK2R0MSA9PT0gK2R0MmAuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyIC0gdGhlIG90aGVyIERhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1ZhbGlkICYmXG4gICAgICBvdGhlci5pc1ZhbGlkICYmXG4gICAgICB0aGlzLnZhbHVlT2YoKSA9PT0gb3RoZXIudmFsdWVPZigpICYmXG4gICAgICB0aGlzLnpvbmUuZXF1YWxzKG90aGVyLnpvbmUpICYmXG4gICAgICB0aGlzLmxvYy5lcXVhbHMob3RoZXIubG9jKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHRoaXMgdGltZSByZWxhdGl2ZSB0byBub3csIHN1Y2ggYXMgXCJpbiB0d28gZGF5c1wiLiBDYW4gb25seSBpbnRlcm5hdGlvbmFsaXplIGlmIHlvdXJcbiAgICogcGxhdGZvcm0gc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuIFJvdW5kcyBkb3duIGJ5IGRlZmF1bHQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zdHlsZT1cImxvbmdcIl0gLSB0aGUgc3R5bGUgb2YgdW5pdHMsIG11c3QgYmUgXCJsb25nXCIsIFwic2hvcnRcIiwgb3IgXCJuYXJyb3dcIlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdCBvciBhcnJheSBvZiB1bml0czsgaWYgb21pdHRlZCwgb3IgYW4gYXJyYXksIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSBiZXN0IHVuaXQuIFVzZSBhbiBhcnJheSBvciBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIG9yIFwic2Vjb25kc1wiXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMucm91bmQ9dHJ1ZV0gLSB3aGV0aGVyIHRvIHJvdW5kIHRoZSBudW1iZXJzIGluIHRoZSBvdXRwdXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYWRkaW5nPTBdIC0gcGFkZGluZyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgYWxsb3dzIHlvdSB0byByb3VuZCB1cCB0aGUgcmVzdWx0IGlmIGl0IGZpdHMgaW5zaWRlIHRoZSB0aHJlc2hvbGQuIERvbid0IHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIHtyb3VuZDogZmFsc2V9IGJlY2F1c2UgdGhlIGRlY2ltYWwgb3V0cHV0IHdpbGwgaW5jbHVkZSB0aGUgcGFkZGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubG9jYWxlIC0gb3ZlcnJpZGUgdGhlIGxvY2FsZSBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCJpbiAxIGRheVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZShcImVzXCIpLnRvUmVsYXRpdmUoeyBkYXlzOiAxIH0pIC8vPT4gXCJkZW50cm8gZGUgMSBkXHUwMEVEYVwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGFucyAyMyBoZXVyZXNcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGRheXM6IDIgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoeyB1bml0OiBcImhvdXJzXCIgfSkgLy89PiBcIjQ4IGhvdXJzIGFnb1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgaG91cnM6IDM2IH0pLnRvUmVsYXRpdmUoeyByb3VuZDogZmFsc2UgfSkgLy89PiBcIjEuNSBkYXlzIGFnb1wiXG4gICAqL1xuICB0b1JlbGF0aXZlKG9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IERhdGVUaW1lLmZyb21PYmplY3Qoe30sIHsgem9uZTogdGhpcy56b25lIH0pLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyA/ICh0aGlzIDwgYmFzZSA/IC1vcHRpb25zLnBhZGRpbmcgOiBvcHRpb25zLnBhZGRpbmcpIDogMDtcbiAgICBsZXQgdW5pdHMgPSBbXCJ5ZWFyc1wiLCBcIm1vbnRoc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJdO1xuICAgIGxldCB1bml0ID0gb3B0aW9ucy51bml0O1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMudW5pdCkpIHtcbiAgICAgIHVuaXRzID0gb3B0aW9ucy51bml0O1xuICAgICAgdW5pdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShiYXNlLCB0aGlzLnBsdXMocGFkZGluZyksIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBudW1lcmljOiBcImFsd2F5c1wiLFxuICAgICAgdW5pdHMsXG4gICAgICB1bml0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBkYXRlIHJlbGF0aXZlIHRvIHRvZGF5LCBzdWNoIGFzIFwieWVzdGVyZGF5XCIgb3IgXCJuZXh0IG1vbnRoXCIuXG4gICAqIE9ubHkgaW50ZXJuYXRpb25hbGl6ZXMgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgb3V0cHV0XG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IFtvcHRpb25zLmJhc2U9RGF0ZVRpbWUubm93KCldIC0gdGhlIERhdGVUaW1lIHRvIHVzZSBhcyB0aGUgYmFzaXMgdG8gd2hpY2ggdGhpcyB0aW1lIGlzIGNvbXBhcmVkLiBEZWZhdWx0cyB0byBub3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmxvY2FsZSAtIG92ZXJyaWRlIHRoZSBsb2NhbGUgb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy51bml0IC0gdXNlIGEgc3BlY2lmaWMgdW5pdDsgaWYgb21pdHRlZCwgdGhlIG1ldGhvZCB3aWxsIHBpY2sgdGhlIHVuaXQuIFVzZSBvbmUgb2YgXCJ5ZWFyc1wiLCBcInF1YXJ0ZXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgb3IgXCJkYXlzXCJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubnVtYmVyaW5nU3lzdGVtIC0gb3ZlcnJpZGUgdGhlIG51bWJlcmluZ1N5c3RlbSBvZiB0aGlzIERhdGVUaW1lLiBUaGUgSW50bCBzeXN0ZW0gbWF5IGNob29zZSBub3QgdG8gaG9ub3IgdGhpc1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+IFwidG9tb3Jyb3dcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoXCJlc1wiKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKCkgLy89PiBcIlwibWFcdTAwRjFhbmFcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoeyBsb2NhbGU6IFwiZnJcIiB9KSAvLz0+IFwiZGVtYWluXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmVDYWxlbmRhcigpIC8vPT4gXCIyIGRheXMgYWdvXCJcbiAgICovXG4gIHRvUmVsYXRpdmVDYWxlbmRhcihvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gZGlmZlJlbGF0aXZlKG9wdGlvbnMuYmFzZSB8fCBEYXRlVGltZS5mcm9tT2JqZWN0KHt9LCB7IHpvbmU6IHRoaXMuem9uZSB9KSwgdGhpcywge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG51bWVyaWM6IFwiYXV0b1wiLFxuICAgICAgdW5pdHM6IFtcInllYXJzXCIsIFwibW9udGhzXCIsIFwiZGF5c1wiXSxcbiAgICAgIGNhbGVuZGFyeTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1pbiBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWluaW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1pbiBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWluKC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtaW4gcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1heCBvZiBzZXZlcmFsIGRhdGUgdGltZXNcbiAgICogQHBhcmFtIHsuLi5EYXRlVGltZX0gZGF0ZVRpbWVzIC0gdGhlIERhdGVUaW1lcyBmcm9tIHdoaWNoIHRvIGNob29zZSB0aGUgbWF4aW11bVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX0gdGhlIG1heCBEYXRlVGltZSwgb3IgdW5kZWZpbmVkIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50XG4gICAqL1xuICBzdGF0aWMgbWF4KC4uLmRhdGVUaW1lcykge1xuICAgIGlmICghZGF0ZVRpbWVzLmV2ZXJ5KERhdGVUaW1lLmlzRGF0ZVRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtYXggcmVxdWlyZXMgYWxsIGFyZ3VtZW50cyBiZSBEYXRlVGltZXNcIik7XG4gICAgfVxuICAgIHJldHVybiBiZXN0QnkoZGF0ZVRpbWVzLCAoaSkgPT4gaS52YWx1ZU9mKCksIE1hdGgubWF4KTtcbiAgfVxuXG4gIC8vIE1JU0NcblxuICAvKipcbiAgICogRXhwbGFpbiBob3cgYSBzdHJpbmcgd291bGQgYmUgcGFyc2VkIGJ5IGZyb21Gb3JtYXQoKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBzdHJpbmcgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZtdCAtIHRoZSBmb3JtYXQgdGhlIHN0cmluZyBpcyBleHBlY3RlZCB0byBiZSBpbiAoc2VlIGRlc2NyaXB0aW9uKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGFrZW4gYnkgZnJvbUZvcm1hdCgpXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0RXhwbGFpbih0ZXh0LCBmbXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCB9ID0gb3B0aW9ucyxcbiAgICAgIGxvY2FsZVRvVXNlID0gTG9jYWxlLmZyb21PcHRzKHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBudW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGRlZmF1bHRUb0VOOiB0cnVlLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZVRvVXNlLCB0ZXh0LCBmbXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRm9ybWF0RXhwbGFpbiBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZ0V4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIEZPUk1BVCBQUkVTRVRTXG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgMTAvMTQvMTk4M1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX1NIT1JUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0IDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX01FRCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX01FRDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmksIE9jdCAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfTUVEX1dJVEhfV0VFS0RBWTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX0ZVTEwoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ1R1ZXNkYXksIE9jdG9iZXIgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX0hVR0U7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9TSU1QTEUoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9TSU1QTEU7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV9XSVRIX0xPTkdfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9MT05HX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMCcsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1NJTVBMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMycsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFRFQnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEVhc3Rlcm4gRGF5bGlnaHQgVGltZScsIGFsd2F5cyAyNC1ob3VyLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FXzI0X1dJVEhfTE9OR19PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMTAvMTQvMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRUQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfTUVEO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MywgOTozMDozMyBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCAxNCBPY3QgMTk4MywgOTozMCBBTScuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9NRURfV0lUSF9XRUVLREFZKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFRFQnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfRlVMTCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9GVUxMO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMCBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9IVUdFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaWRheSwgT2N0b2JlciAxNCwgMTk4MywgOTozMDozMyBBTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFM7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJpZW5kbHlEYXRlVGltZShkYXRlVGltZWlzaCkge1xuICBpZiAoRGF0ZVRpbWUuaXNEYXRlVGltZShkYXRlVGltZWlzaCkpIHtcbiAgICByZXR1cm4gZGF0ZVRpbWVpc2g7XG4gIH0gZWxzZSBpZiAoZGF0ZVRpbWVpc2ggJiYgZGF0ZVRpbWVpc2gudmFsdWVPZiAmJiBpc051bWJlcihkYXRlVGltZWlzaC52YWx1ZU9mKCkpKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21KU0RhdGUoZGF0ZVRpbWVpc2gpO1xuICB9IGVsc2UgaWYgKGRhdGVUaW1laXNoICYmIHR5cGVvZiBkYXRlVGltZWlzaCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KGRhdGVUaW1laXNoKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICBgVW5rbm93biBkYXRldGltZSBhcmd1bWVudDogJHtkYXRlVGltZWlzaH0sIG9mIHR5cGUgJHt0eXBlb2YgZGF0ZVRpbWVpc2h9YFxuICAgICk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IGVtb2ppUmVnZXggZnJvbSBcImVtb2ppLXJlZ2V4XCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuXG4vKiogVGVzdC1lbnZpcm9ubWVudC1mcmllbmRseSBmdW5jdGlvbiB3aGljaCBmZXRjaGVzIHRoZSBjdXJyZW50IHN5c3RlbSBsb2NhbGUuICovXG5leHBvcnQgZnVuY3Rpb24gY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCJlbi1VU1wiO1xuICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xufVxuXG4vLyBEYXRlL1RpbWUgUmVuZGVyaW5nXG5cbi8qKiBOb3JtYWxpemUgYSBkdXJhdGlvbiB0byBhbGwgb2YgdGhlIHByb3BlciB1bml0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEdXJhdGlvbihkdXI6IER1cmF0aW9uKSB7XG4gICAgaWYgKGR1ciA9PT0gdW5kZWZpbmVkIHx8IGR1ciA9PT0gbnVsbCkgcmV0dXJuIGR1cjtcblxuICAgIHJldHVybiBkdXIuc2hpZnRUbyhcInllYXJzXCIsIFwibW9udGhzXCIsIFwid2Vla3NcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiKS5ub3JtYWxpemUoKTtcbn1cblxuLyoqIFN0cmlwIHRoZSB0aW1lIGNvbXBvbmVudHMgb2YgYSBkYXRlIHRpbWUgb2JqZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGltZShkdDogRGF0ZVRpbWUpOiBEYXRlVGltZSB7XG4gICAgaWYgKGR0ID09PSBudWxsIHx8IGR0ID09PSB1bmRlZmluZWQpIHJldHVybiBkdDtcblxuICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHtcbiAgICAgICAgeWVhcjogZHQueWVhcixcbiAgICAgICAgbW9udGg6IGR0Lm1vbnRoLFxuICAgICAgICBkYXk6IGR0LmRheSxcbiAgICB9KTtcbn1cblxuLyoqIFRyeSB0byBleHRyYWN0IGEgWVlZWU1NREQgZGF0ZSBmcm9tIGEgc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REYXRlKHN0cjogc3RyaW5nKTogRGF0ZVRpbWUgfCB1bmRlZmluZWQge1xuICAgIGxldCBkYXRlTWF0Y2ggPSAvKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkvLmV4ZWMoc3RyKTtcbiAgICBpZiAoIWRhdGVNYXRjaCkgZGF0ZU1hdGNoID0gLyhcXGR7NH0pKFxcZHsyfSkoXFxkezJ9KS8uZXhlYyhzdHIpO1xuICAgIGlmIChkYXRlTWF0Y2gpIHtcbiAgICAgICAgbGV0IHllYXIgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzFdKTtcbiAgICAgICAgbGV0IG1vbnRoID0gTnVtYmVyLnBhcnNlSW50KGRhdGVNYXRjaFsyXSk7XG4gICAgICAgIGxldCBkYXkgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZU1hdGNoWzNdKTtcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyLCBtb250aCwgZGF5IH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZW5kZXIgYSBEYXRlVGltZSBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbERhdGUodGltZTogRGF0ZVRpbWUsIGRhdGVGb3JtYXQ6IHN0cmluZywgZGF0ZVRpbWVGb3JtYXQ6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyByZWxldmFudCB0aW1lIHNwZWNpZmllZCwgZmFsbCBiYWNrIHRvIGp1c3QgcmVuZGVyaW5nIHRoZSBkYXRlLlxuICAgIGlmICh0aW1lLnNlY29uZCA9PSAwICYmIHRpbWUubWludXRlID09IDAgJiYgdGltZS5ob3VyID09IDApIHtcbiAgICAgICAgcmV0dXJuIHRpbWUudG9Mb2NhbCgpLnRvRm9ybWF0KGRhdGVGb3JtYXQsIHsgbG9jYWxlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aW1lLnRvTG9jYWwoKS50b0Zvcm1hdChkYXRlVGltZUZvcm1hdCwgeyBsb2NhbGUgfSk7XG59XG5cbi8qKiBSZW5kZXIgYSBkdXJhdGlvbiBpbiBhIG1pbmltYWwgZm9ybWF0IHRvIHNhdmUgc3BhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWluaW1hbER1cmF0aW9uKGR1cjogRHVyYXRpb24pOiBzdHJpbmcge1xuICAgIGR1ciA9IG5vcm1hbGl6ZUR1cmF0aW9uKGR1cik7XG5cbiAgICAvLyBUT0RPOiBMdXhvbiBkb2VzIG5vdCBoYXZlIG11bHRpLWxpbmd1YWwvbG9jYWxlLWF3YXJlIGR1cmF0aW9uIHJlbmRlcmluZy5cbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBpZiAoZHVyLnllYXJzKSByZXN1bHQgKz0gYCR7ZHVyLnllYXJzfSB5ZWFycywgYDtcbiAgICBpZiAoZHVyLm1vbnRocykgcmVzdWx0ICs9IGAke2R1ci5tb250aHN9IG1vbnRocywgYDtcbiAgICBpZiAoZHVyLndlZWtzKSByZXN1bHQgKz0gYCR7ZHVyLndlZWtzfSB3ZWVrcywgYDtcbiAgICBpZiAoZHVyLmRheXMpIHJlc3VsdCArPSBgJHtkdXIuZGF5c30gZGF5cywgYDtcbiAgICBpZiAoZHVyLmhvdXJzKSByZXN1bHQgKz0gYCR7ZHVyLmhvdXJzfSBob3VycywgYDtcbiAgICBpZiAoZHVyLm1pbnV0ZXMpIHJlc3VsdCArPSBgJHtkdXIubWludXRlc30gbWludXRlcywgYDtcbiAgICBpZiAoZHVyLnNlY29uZHMpIHJlc3VsdCArPSBgJHtNYXRoLnJvdW5kKGR1ci5zZWNvbmRzKX0gc2Vjb25kcywgYDtcbiAgICBpZiAoZHVyLm1pbGxpc2Vjb25kcykgcmVzdWx0ICs9IGAke01hdGgucm91bmQoZHVyLm1pbGxpc2Vjb25kcyl9IG1zLCBgO1xuXG4gICAgaWYgKHJlc3VsdC5lbmRzV2l0aChcIiwgXCIpKSByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIHJlc3VsdC5sZW5ndGggLSAyKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBQYXRoIHV0aWxpdGllcy5cblxuLyoqIEdldCB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHBhdGggKGkuZS4sIGxpa2UgY29tcHV0aW5nICdwYXRoLy4uJykuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyZW50Rm9sZGVyKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKS5qb2luKFwiL1wiKTtcbn1cblxuLyoqIEdldCB0aGUgZmlsZSBuYW1lIGZvciB0aGUgZmlsZSByZWZlcmVuY2VkIGluIHRoZSBnaXZlbiBwYXRoLCBieSBzdHJpcHBpbmcgdGhlIHBhcmVudCBmb2xkZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVOYW1lKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguaW5jbHVkZXMoXCIvXCIpID8gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSA6IHBhdGg7XG59XG5cbi8qKiBHZXQgdGhlIFwidGl0bGVcIiBmb3IgYSBmaWxlLCBieSBzdHJpcHBpbmcgb3RoZXIgcGFydHMgb2YgdGhlIHBhdGggYXMgd2VsbCBhcyB0aGUgZXh0ZW5zaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUaXRsZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChwYXRoLmluY2x1ZGVzKFwiL1wiKSkgcGF0aCA9IHBhdGguc3Vic3RyaW5nKHBhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG4gICAgaWYgKHBhdGguZW5kc1dpdGgoXCIubWRcIikpIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDMpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKiogR2V0IHRoZSBleHRlbnNpb24gb2YgYSBmaWxlIGZyb20gdGhlIGZpbGUgcGF0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb24ocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXBhdGguaW5jbHVkZXMoXCIuXCIpKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZihcIi5cIikgKyAxKTtcbn1cblxuLy8gVGFnIGV4dHJhY3Rpb24uXG5cbi8qKiBQYXJzZSBhbGwgc3VidGFncyBvdXQgb2YgdGhlIGdpdmVuIHRhZy4gSS5lLiwgI2hlbGxvL2kvYW0gd291bGQgeWllbGQgWyNoZWxsby9pL2FtLCAjaGVsbG8vaSwgI2hlbGxvXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3VidGFncyh0YWdzOiBzdHJpbmcgfCBJdGVyYWJsZTxzdHJpbmc+KTogc3RyaW5nW10ge1xuICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCB0YWcgb2YgdHlwZW9mIHRhZ3MgPT09IFwic3RyaW5nXCIgPyBbdGFnc10gOiB0YWdzKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRhZyk7XG4gICAgICAgIHdoaWxlICh0YWcuaW5jbHVkZXMoXCIvXCIpKSB7XG4gICAgICAgICAgICB0YWcgPSB0YWcuc3Vic3RyaW5nKDAsIHRhZy5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBTcGxpdCBlYWNoIGJsb2NrIGFuZCBzZWN0aW9uIGxpbmsgaW50byB0aGUgb3JpZ2luYWwgbGluayBhbmQgYSBjb3JyZXNwb25kaW5nIGZpbGUgbGluay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RmlsZUxpbmtzKGVsaW5rczogTGlua1tdKTogTGlua1tdIHtcbiAgICBjb25zdCByZXN1bHQ6IExpbmtbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBlbGlua3MpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobGluayk7XG5cbiAgICAgICAgY29uc3QgZmlsZUxpbmsgPSBsaW5rLnRvRmlsZSgpO1xuICAgICAgICBpZiAobGluay50eXBlICE9IFwiZmlsZVwiICYmICFyZXN1bHQuZmluZCgoZXhpc3RpbmcpID0+IGV4aXN0aW5nLmVxdWFscyhmaWxlTGluaykpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlTGluayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBTdHJpbmcgZXNjYXBpbmcgYW5kIGNhbm9uaWNhbGl6YXRpb24uXG5cbi8qKlxuICogRXNjYXBlIHJlZ2V4IGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmVnZXgoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuY29uc3QgSEVBREVSX0NBTk9OSUNBTElaRVI6IFAuUGFyc2VyPHN0cmluZz4gPSBQLmFsdChcbiAgICBQLnJlZ2V4KG5ldyBSZWdFeHAoZW1vamlSZWdleCgpLCBcIlwiKSksXG4gICAgUC5yZWdleCgvWzAtOVxccHtMZXR0ZXJ9Xy1dKy91KSxcbiAgICBQLndoaXRlc3BhY2UubWFwKChfKSA9PiBcIiBcIiksXG4gICAgUC5hbnkubWFwKChfKSA9PiBcIiBcIilcbilcbiAgICAubWFueSgpXG4gICAgLm1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbihcIlwiKS5zcGxpdCgvXFxzKy8pLmpvaW4oXCIgXCIpLnRyaW0oKTtcbiAgICB9KTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIHRoZSB0ZXh0IGluIGEgaGVhZGVyIHRvIGJlIHNvbWV0aGluZyB0aGF0IGlzIGFjdHVhbGx5IGxpbmthYmxlIHRvLiBUaGlzIG1pbWljc1xuICogaG93IE9ic2lkaWFuIGRvZXMgaXQncyBub3JtYWxpemF0aW9uLCBjb2xsYXBzaW5nIHJlcGVhdGVkIHNwYWNlcyBhbmQgc3RyaXBwaW5nIG91dCBjb250cm9sIGNoYXJhY3RlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSEVBREVSX0NBTk9OSUNBTElaRVIudHJ5UGFyc2UoaGVhZGVyKTtcbn1cblxuLy8gRmFzdCBleHRyYWN0aW9uIG9mIGxpbmUgcmFuZ2VzIGZyb20gbGFyZ2UgcGllY2VzIG9mIHRleHQuXG5cbi8qKiBVcGRhdGUgdGhlIGxpbmUgcmFuZ2UgZnJvbSBbc3RhcnQsIGVuZCkgd2l0aCB0aGUgZ2l2ZW4gZnVuY3Rpb24uICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVJlcGxhY2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgZnVuYzogKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBbZGF0YSwgb2Zmc2V0XSA9IGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpO1xuICAgIGlmICghb2Zmc2V0KSByZXR1cm4gdGV4dDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIGRhdGEuc3Vic3RyaW5nKDAsIG9mZnNldC5zdGFydCkgKyBmdW5jKGRhdGEuc3Vic3RyaW5nKG9mZnNldC5zdGFydCwgb2Zmc2V0LmVuZCkpICsgZGF0YS5zdWJzdHJpbmcob2Zmc2V0LmVuZClcbiAgICApO1xufVxuXG4vKiogRXh0cmFjdCB0aGUgbGluZXMgaW4gdGhlIHJhbmdlIFtzdGFydCwgZW5kKSwgYXMgd2VsbCBhcyB0aGUgYWN0dWFsIG9mZnNldHMgb2YgdGhlIHN0YXJ0IGFuZCBlbmQuICovXG5leHBvcnQgZnVuY3Rpb24gbGluZVNwYW4oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgZW5kOiBudW1iZXJcbik6IFtzdHJpbmcsIHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfSB8IHVuZGVmaW5lZF0ge1xuICAgIHN0YXJ0ID0gTWF0aC5tYXgoc3RhcnQsIDApO1xuICAgIGVuZCA9IE1hdGgubWF4KGVuZCwgMCk7XG5cbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICAvLyBTdGFydCBieSBmaW5kaW5nIHRoZSBzdGFydGluZyBsaW5lIG9mZnNldC5cbiAgICBjb25zdCBzdGFydE9mZnNldCA9IHNraXBOZXdsaW5lcyh0ZXh0LCAwLCBzdGFydCk7XG4gICAgaWYgKHN0YXJ0T2Zmc2V0ID09IC0xKSByZXR1cm4gW1wiXCIsIHVuZGVmaW5lZF07XG5cbiAgICBjb25zdCBlbmRPZmZzZXQgPSBza2lwTmV3bGluZXModGV4dCwgc3RhcnRPZmZzZXQsIGVuZCAtIHN0YXJ0KTtcbiAgICBpZiAoZW5kT2Zmc2V0ID09IC0xKSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0KSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogdGV4dC5sZW5ndGggfV07XG4gICAgZWxzZSByZXR1cm4gW3RleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSAxKSwgeyBzdGFydDogc3RhcnRPZmZzZXQsIGVuZDogZW5kT2Zmc2V0IC0gMSB9XTtcbn1cblxuLyoqIEV4dHJhY3QgdGhlIGxpbmVzIGluIHRoZSByYW5nZSBbc3RhcnQsIGVuZCkuIFN0YXJ0IGlzIGluY2x1c2l2ZSwgZW5kIGlzIGV4Y2x1c2l2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5lUmFuZ2UodGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmVTcGFuKHRleHQsIHN0YXJ0LCBlbmQpWzBdO1xufVxuXG4vKiogU2tpcCB7Y291bnR9IHRvdGFsIG5ld2xpbmVzLCByZXR1cm5pbmcgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHtjb3VudH0gbGluZXMgYWZ0ZXIgdGhlIGN1cnJlbnQgbGluZS4gSWYgY291bnQgaXMgMCwgdGhlIGluaXRpYWwgb2Zmc2V0IGlzIHJldHVybmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNraXBOZXdsaW5lcyh0ZXh0OiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gc3RhcnQ7XG5cbiAgICBsZXQgcG9zaXRpb24gPSBzdGFydDtcbiAgICB3aGlsZSAoY291bnQgPiAwKSB7XG4gICAgICAgIHBvc2l0aW9uID0gdGV4dC5pbmRleE9mKFwiXFxuXCIsIHBvc2l0aW9uKTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09IC0xKSByZXR1cm4gLTE7XG5cbiAgICAgICAgY291bnQtLTtcbiAgICAgICAgcG9zaXRpb24gKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zaXRpb247XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuXHQvLyBodHRwczovL210aHMuYmUvZW1vamlcblx0cmV0dXJuIC9bIyowLTldXFx1RkUwRj9cXHUyMEUzfFtcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRUQtXFx1MjNFRlxcdTIzRjFcXHUyM0YyXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCXFx1MjVGQ1xcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MjBcXHUyNjIyXFx1MjYyM1xcdTI2MjZcXHUyNjJBXFx1MjYyRVxcdTI2MkZcXHUyNjM4LVxcdTI2M0FcXHUyNjQwXFx1MjY0MlxcdTI2NDgtXFx1MjY1M1xcdTI2NUZcXHUyNjYwXFx1MjY2M1xcdTI2NjVcXHUyNjY2XFx1MjY2OFxcdTI2N0JcXHUyNjdFXFx1MjY3RlxcdTI2OTJcXHUyNjk0LVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBN1xcdTI2QUFcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZEM1xcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E1KT98XFx1MjZGOSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzRcXHVERkNBXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERkNCXFx1REZDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjQzXFx1REY0NS1cXHVERjRBXFx1REY0Qy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RERFNlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl18XFx1RERFN1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUZcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREU4XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjdcXHVEREZBLVxcdURERkZdfFxcdURERTlcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdfFxcdURERUFcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXXxcXHVEREVCXFx1RDgzQ1tcXHVEREVFLVxcdURERjBcXHVEREYyXFx1RERGNFxcdURERjddfFxcdURERUNcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdfFxcdURERURcXHVEODNDW1xcdURERjBcXHVEREYyXFx1RERGM1xcdURERjdcXHVEREY5XFx1RERGQV18XFx1RERFRVxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XXxcXHVEREVGXFx1RDgzQ1tcXHVEREVBXFx1RERGMlxcdURERjRcXHVEREY1XXxcXHVEREYwXFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERGMVxcdUQ4M0NbXFx1RERFNi1cXHVEREU4XFx1RERFRVxcdURERjBcXHVEREY3LVxcdURERkJcXHVEREZFXXxcXHVEREYyXFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXXxcXHVEREYzXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdfFxcdURERjRcXHVEODNDXFx1RERGMnxcXHVEREY1XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdfFxcdURERjZcXHVEODNDXFx1RERFNnxcXHVEREY3XFx1RDgzQ1tcXHVEREVBXFx1RERGNFxcdURERjhcXHVEREZBXFx1RERGQ118XFx1RERGOFxcdUQ4M0NbXFx1RERFNi1cXHVEREVBXFx1RERFQy1cXHVEREY0XFx1RERGNy1cXHVEREY5XFx1RERGQlxcdURERkQtXFx1RERGRl18XFx1RERGOVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdfFxcdURERkFcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdfFxcdURERkJcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdfFxcdURERkNcXHVEODNDW1xcdURERUJcXHVEREY4XXxcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RERGRVxcdUQ4M0NbXFx1RERFQVxcdURERjldfFxcdURERkZcXHVEODNDW1xcdURERTZcXHVEREYyXFx1RERGQ118XFx1REY0NCg/OlxcdTIwMERcXHVEODNEXFx1REZFQik/fFxcdURGNEIoPzpcXHUyMDBEXFx1RDgzRFxcdURGRTkpP3xcXHVERkMzKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjRcXHVERUI1XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDc0XFx1REQ5MF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/fFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDMjVcXHVEQzI3LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQxXFx1REU0M1xcdURFNDRcXHVERTQ4LVxcdURFNEFcXHVERTgwLVxcdURFQTJcXHVERUE0LVxcdURFQjNcXHVERUI3LVxcdURFQkZcXHVERUMxLVxcdURFQzVcXHVERUQwLVxcdURFRDJcXHVERUQ1LVxcdURFRDdcXHVERURDLVxcdURFREZcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQ1xcdURGRTAtXFx1REZFQlxcdURGRjBdfFxcdURDMDgoPzpcXHUyMDBEXFx1MkIxQik/fFxcdURDMTUoPzpcXHUyMDBEXFx1RDgzRVxcdUREQkEpP3xcXHVEQzI2KD86XFx1MjAwRCg/OlxcdTJCMUJ8XFx1RDgzRFxcdUREMjUpKT98XFx1REMzQig/OlxcdTIwMERcXHUyNzQ0XFx1RkUwRj8pP3xcXHVEQzQxXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURERThcXHVGRTBGPyk/fFxcdURDNjgoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OHxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2Rig/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERDc1KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERTJFKD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E4KT98XFx1REUzNSg/OlxcdTIwMERcXHVEODNEXFx1RENBQik/fFxcdURFMzYoPzpcXHUyMDBEXFx1RDgzQ1xcdURGMkJcXHVGRTBGPyk/fFxcdURFNDIoPzpcXHUyMDBEW1xcdTIxOTRcXHUyMTk1XVxcdUZFMEY/KT98XFx1REVCNig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0RcXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RERERVxcdUREREZdKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDBEXFx1REQwRVxcdUREMTAtXFx1REQxN1xcdUREMjAtXFx1REQyNVxcdUREMjctXFx1REQyRlxcdUREM0FcXHVERDNGLVxcdURENDVcXHVERDQ3LVxcdURENzZcXHVERDc4LVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQ1xcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFN0NcXHVERTgwLVxcdURFODlcXHVERThGLVxcdURFQzJcXHVERUM2XFx1REVDRS1cXHVERURDXFx1REVERi1cXHVERUU5XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVERENFKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEREQxXFx1MjAwRFxcdUQ4M0VcXHVEREQyKD86XFx1MjAwRFxcdUQ4M0VcXHVEREQyKT98XFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/KSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT8pKT98XFx1REVGMSg/OlxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKT98XFx1REZGQyg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pP3xcXHVERkZEKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSk/fFxcdURGRkUoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKT98XFx1REZGRig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSk/KSk/KS9nO1xufTtcbiIsICJpbXBvcnQgeyBnZXRGaWxlVGl0bGUsIG5vcm1hbGl6ZUhlYWRlckZvckxpbmsgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLyoqIFRoZSBPYnNpZGlhbiAnbGluaycsIHVzZWQgZm9yIHVuaXF1ZWx5IGRlc2NyaWJpbmcgYSBmaWxlLCBoZWFkZXIsIG9yIGJsb2NrLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgY2xhc3MgTGluayB7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBwdWJsaWMgZGlzcGxheT86IHN0cmluZztcbiAgICAvKiogVGhlIGJsb2NrIElEIG9yIGhlYWRlciB0aGlzIGxpbmsgcG9pbnRzIHRvIHdpdGhpbiBhIGZpbGUsIGlmIHJlbGV2YW50LiAqL1xuICAgIHB1YmxpYyBzdWJwYXRoPzogc3RyaW5nO1xuICAgIC8qKiBJcyB0aGlzIGxpbmsgYW4gZW1iZWRkZWQgbGluayAob2YgZm9ybSAnIVtbaGVsbG9dXScpPyAqL1xuICAgIHB1YmxpYyBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgcHVibGljIHR5cGU6IFwiZmlsZVwiIHwgXCJoZWFkZXJcIiB8IFwiYmxvY2tcIjtcblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgc3BlY2lmaWMgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbGUocGF0aDogc3RyaW5nLCBlbWJlZDogYm9vbGVhbiA9IGZhbHNlLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgZW1iZWQsXG4gICAgICAgICAgICBkaXNwbGF5LFxuICAgICAgICAgICAgc3VicGF0aDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHlwZTogXCJmaWxlXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbmZlciB0aGUgdHlwZSBvZiB0aGUgbGluayBmcm9tIHRoZSBmdWxsIGludGVybmFsIGxpbmsgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGluZmVyKGxpbmtwYXRoOiBzdHJpbmcsIGVtYmVkOiBib29sZWFuID0gZmFsc2UsIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgaWYgKGxpbmtwYXRoLmluY2x1ZGVzKFwiI15cIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI15cIik7XG4gICAgICAgICAgICByZXR1cm4gTGluay5ibG9jayhzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rcGF0aC5pbmNsdWRlcyhcIiNcIikpIHtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGxpbmtwYXRoLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihzcGxpdFswXSwgc3BsaXRbMV0sIGVtYmVkLCBkaXNwbGF5KTtcbiAgICAgICAgfSBlbHNlIHJldHVybiBMaW5rLmZpbGUobGlua3BhdGgsIGVtYmVkLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGhlYWRlciBpbiB0aGF0IGZpbGUuICovXG4gICAgcHVibGljIHN0YXRpYyBoZWFkZXIocGF0aDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgZW1iZWQ/OiBib29sZWFuLCBkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIC8vIEhlYWRlcnMgbmVlZCB0byBiZSBub3JtYWxpemVkIHRvIGFscGhhLW51bWVyaWMgJiB3aXRoIGV4dHJhIHNwYWNpbmcgcmVtb3ZlZC5cbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBub3JtYWxpemVIZWFkZXJGb3JMaW5rKGhlYWRlciksXG4gICAgICAgICAgICB0eXBlOiBcImhlYWRlclwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIHNwZWNpZmljIGZpbGUgYW5kIGJsb2NrIGluIHRoYXQgZmlsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGJsb2NrKHBhdGg6IHN0cmluZywgYmxvY2tJZDogc3RyaW5nLCBlbWJlZD86IGJvb2xlYW4sIGRpc3BsYXk/OiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBlbWJlZCxcbiAgICAgICAgICAgIGRpc3BsYXksXG4gICAgICAgICAgICBzdWJwYXRoOiBibG9ja0lkLFxuICAgICAgICAgICAgdHlwZTogXCJibG9ja1wiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBhIGxpbmsgZnJvbSBpdCdzIHJhdyBKU09OIHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IEpzb25MaW5rKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIGJ5IHBhcnNpbmcgaXQncyBpbnRlcmlvciBwYXJ0IChpbnNpZGUgb2YgdGhlICdbW11dJykuICovXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZUlubmVyKHJhd2xpbms6IHN0cmluZyk6IExpbmsge1xuICAgICAgICBsZXQgW2xpbmssIGRpc3BsYXldID0gc3BsaXRPblVuZXNjYXBlZFBpcGUocmF3bGluayk7XG4gICAgICAgIHJldHVybiBMaW5rLmluZmVyKGxpbmssIGZhbHNlLCBkaXNwbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGZpZWxkczogUGFydGlhbDxMaW5rPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGlzIGxpbmsgd2l0aCBhIG5ldyBwYXRoLiAqL1xuICAgIHB1YmxpYyB3aXRoUGF0aChwYXRoOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rKE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHsgcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIG5ldyBsaW5rIHdoaWNoIHBvaW50cyB0byB0aGUgc2FtZSBsb2NhdGlvbiBidXQgd2l0aCBhIG5ldyBkaXNwbGF5IHZhbHVlLiAqL1xuICAgIHB1YmxpYyB3aXRoRGlzcGxheShkaXNwbGF5Pzogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBuZXcgTGluayhPYmplY3QuYXNzaWduKHt9LCB0aGlzLCB7IGRpc3BsYXkgfSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBuZXcgbGluayB3aGljaCBoYXMgdGhlIGdpdmVuIGVtYmVkZGVkIHN0YXR1cy4gKi9cbiAgICBwdWJsaWMgd2l0aEVtYmVkKGVtYmVkOiBib29sZWFuKTogTGluayB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkID09IGVtYmVkKSByZXR1cm4gdGhpcztcblxuICAgICAgICByZXR1cm4gbmV3IExpbmsoT2JqZWN0LmFzc2lnbih7fSwgdGhpcywgeyBlbWJlZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgYSBmaWxlIGxpbmsgaW50byBhIGxpbmsgdG8gYSBzcGVjaWZpYyBoZWFkZXIuICovXG4gICAgcHVibGljIHdpdGhIZWFkZXIoaGVhZGVyOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuaGVhZGVyKHRoaXMucGF0aCwgaGVhZGVyLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGEgZmlsZSBsaW5rIGludG8gYSBsaW5rIHRvIGEgc3BlY2lmaWNiIGxvY2suICovXG4gICAgcHVibGljIHdpdGhCbG9jayhibG9jazogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHRoaXMucGF0aCwgYmxvY2ssIHRoaXMuZW1iZWQsIHRoaXMuZGlzcGxheSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyBmb3IgbGluayBlcXVhbGl0eSAoaS5lLiwgdGhhdCB0aGUgbGlua3MgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGV4YWN0IGxvY2F0aW9uKS4gKi9cbiAgICBwdWJsaWMgZXF1YWxzKG90aGVyOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChvdGhlciA9PSB1bmRlZmluZWQgfHwgb3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gb3RoZXIucGF0aCAmJiB0aGlzLnR5cGUgPT0gb3RoZXIudHlwZSAmJiB0aGlzLnN1YnBhdGggPT0gb3RoZXIuc3VicGF0aDtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gaXQncyBtYXJrZG93biByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFya2Rvd24oKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgdG8gYSByYXcgb2JqZWN0IHdoaWNoIGlzIHNlcmlhbGl6YXRpb24tZnJpZW5kbHkuICovXG4gICAgcHVibGljIHRvT2JqZWN0KCk6IEpzb25MaW5rIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHN1YnBhdGg6IHRoaXMuc3VicGF0aCxcbiAgICAgICAgICAgIGRpc3BsYXk6IHRoaXMuZGlzcGxheSxcbiAgICAgICAgICAgIGVtYmVkOiB0aGlzLmVtYmVkLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGFueSBsaW5rIGludG8gYSBsaW5rIHRvIGl0cyBmaWxlLiAqL1xuICAgIHB1YmxpYyB0b0ZpbGUoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy5wYXRoLCB0aGlzLmVtYmVkLCB0aGlzLmRpc3BsYXkpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IHRoaXMgbGluayBpbnRvIGFuIGVtYmVkZGVkIGxpbmsuICovXG4gICAgcHVibGljIHRvRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIGxpbmsgaW50byBhIG5vbi1lbWJlZGRlZCBsaW5rLiAqL1xuICAgIHB1YmxpYyBmcm9tRW1iZWQoKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhFbWJlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhpcyBsaW5rIHRvIG1hcmtkb3duIHNvIGl0IGNhbiBiZSByZW5kZXJlZC4gKi9cbiAgICBwdWJsaWMgbWFya2Rvd24oKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICh0aGlzLmVtYmVkID8gXCIhXCIgOiBcIlwiKSArIFwiW1tcIiArIHRoaXMub2JzaWRpYW5MaW5rKCk7XG4gICAgICAgIHJlc3VsdCArPSBcInxcIjtcbiAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGlzcGxheU9yRGVmYXVsdCgpO1xuICAgICAgICByZXN1bHQgKz0gXCJdXVwiO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIGRpc3BsYXkgZm9yIHRoaXMgbGluayBpZiBwcmVzZW50LCBvciByZXR1cm4gYSBzaW1wbGUgZGVmYXVsdCBkaXNwbGF5LiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5T3JEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcImhlYWRlclwiIHx8IHRoaXMudHlwZSA9PSBcImJsb2NrXCIpIHJlc3VsdCArPSBcIiA+IFwiICsgdGhpcy5zdWJwYXRoO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgdGhlIGlubmVyIHBhcnQgb2YgdGhlIGxpbmsgdG8gc29tZXRoaW5nIHRoYXQgT2JzaWRpYW4gY2FuIG9wZW4gLyB1bmRlcnN0YW5kLiAqL1xuICAgIHB1YmxpYyBvYnNpZGlhbkxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZCA9IHRoaXMucGF0aC5yZXBsYWNlKFwifFwiLCBcIlxcXFx8XCIpO1xuICAgICAgICBpZiAodGhpcy50eXBlID09IFwiaGVhZGVyXCIpIHJldHVybiBlc2NhcGVkICsgXCIjXCIgKyB0aGlzLnN1YnBhdGg/LnJlcGxhY2UoXCJ8XCIsIFwiXFxcXHxcIik7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gXCJibG9ja1wiKSByZXR1cm4gZXNjYXBlZCArIFwiI15cIiArIHRoaXMuc3VicGF0aD8ucmVwbGFjZShcInxcIiwgXCJcXFxcfFwiKTtcbiAgICAgICAgZWxzZSByZXR1cm4gZXNjYXBlZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIHN0cmlwcGVkIG5hbWUgb2YgdGhlIGZpbGUgdGhpcyBsaW5rIHBvaW50cyB0by4gKi9cbiAgICBwdWJsaWMgZmlsZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGdldEZpbGVUaXRsZSh0aGlzLnBhdGgpO1xuICAgIH1cbn1cblxuLyoqIFNlcmlhbGl6ZWQgZm9ybSBvZiBhIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkxpbmsge1xuICAgIC8qKiBUaGUgZmlsZSBwYXRoIHRoaXMgbGluayBwb2ludHMgdG8uICovXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGlzcGxheSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluay4gKi9cbiAgICBkaXNwbGF5Pzogc3RyaW5nO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb3IgaGVhZGVyIHRoaXMgbGluayBwb2ludHMgdG8gd2l0aGluIGEgZmlsZSwgaWYgcmVsZXZhbnQuICovXG4gICAgc3VicGF0aD86IHN0cmluZztcbiAgICAvKiogSXMgdGhpcyBsaW5rIGFuIGVtYmVkZGVkIGxpbmsgKG9mIGZvcm0gJyFbW2hlbGxvXV0nKT8gKi9cbiAgICBlbWJlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhpcyBsaW5rLCB3aGljaCBkZXRlcm1pbmVzIHdoYXQgJ3N1YnBhdGgnIHJlZmVycyB0bywgaWYgYW55dGhpbmcuICovXG4gICAgdHlwZTogXCJmaWxlXCIgfCBcImhlYWRlclwiIHwgXCJibG9ja1wiO1xufVxuXG4vKiogU3BsaXQgb24gdW5lc2NhcGVkIHBpcGVzIGluIGFuIGlubmVyIGxpbmsuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdE9uVW5lc2NhcGVkUGlwZShsaW5rOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdIHtcbiAgICBsZXQgcGlwZSA9IC0xO1xuICAgIHdoaWxlICgocGlwZSA9IGxpbmsuaW5kZXhPZihcInxcIiwgcGlwZSArIDEpKSA+PSAwKSB7XG4gICAgICAgIGlmIChwaXBlID4gMCAmJiBsaW5rW3BpcGUgLSAxXSA9PSBcIlxcXFxcIikgY29udGludWU7XG4gICAgICAgIHJldHVybiBbbGluay5zdWJzdHJpbmcoMCwgcGlwZSkucmVwbGFjZSgvXFxcXFxcfC9nLCBcInxcIiksIGxpbmsuc3Vic3RyaW5nKHBpcGUgKyAxKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtsaW5rLnJlcGxhY2UoL1xcXFxcXHwvZywgXCJ8XCIpLCB1bmRlZmluZWRdO1xufVxuIiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRlVGltZSwgRHVyYXRpb24gfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIFAgZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IHtcbiAgICBCaW5hcnlPcCxcbiAgICBFeHByZXNzaW9uLFxuICAgIEV4cHJlc3Npb25zLFxuICAgIExhbWJkYUV4cHJlc3Npb24sXG4gICAgTGlzdEV4cHJlc3Npb24sXG4gICAgTGl0ZXJhbEV4cHJlc3Npb24sXG4gICAgT2JqZWN0RXhwcmVzc2lvbixcbiAgICBWYXJpYWJsZUV4cHJlc3Npb24sXG59IGZyb20gXCIuL2V4cHJlc3Npb25cIjtcbmltcG9ydCBlbW9qaVJlZ2V4IGZyb20gXCJlbW9qaS1yZWdleFwiO1xuaW1wb3J0IHtcbiAgICBJbmRleENoaWxkT2YsXG4gICAgSW5kZXhQYXRoLFxuICAgIEluZGV4SWQsXG4gICAgSW5kZXhOb3QsXG4gICAgSW5kZXhQYXJlbnRPZixcbiAgICBJbmRleFF1ZXJ5LFxuICAgIEluZGV4VGFnZ2VkLFxuICAgIEluZGV4VHlwZWQsXG4gICAgSW5kZXhMaW5rZWQsXG4gICAgSW5kZXhGaWVsZCxcbiAgICBJbmRleEV4cHJlc3Npb24sXG59IGZyb20gXCJpbmRleC90eXBlcy9pbmRleC1xdWVyeVwiO1xuaW1wb3J0IHsgbm9ybWFsaXplRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFyc2luZyBQcmltaXRpdmVzIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFByaW1pdGl2ZSBwYXJzaW5nIGZvciBjb21tb25seSBzZWVuIHR5cGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVzTGFuZ3VhZ2Uge1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIHN0cmluZzogc3RyaW5nO1xuICAgIGVzY2FwZUNoYXJhY3Rlcjogc3RyaW5nO1xuICAgIGJvb2w6IGJvb2xlYW47XG4gICAgdGFnOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGxpbms6IExpbms7XG4gICAgZW1iZWRMaW5rOiBMaW5rO1xuICAgIHJvb3REYXRlOiBEYXRlVGltZTtcbiAgICBkYXRlU2hvcnRoYW5kOiBrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTO1xuICAgIGRhdGU6IERhdGVUaW1lO1xuICAgIGRhdGVQbHVzOiBEYXRlVGltZTtcbiAgICBkdXJhdGlvblR5cGU6IGtleW9mIHR5cGVvZiBEVVJBVElPTl9UWVBFUztcbiAgICBkdXJhdGlvbjogRHVyYXRpb247XG4gICAgcmF3TnVsbDogc3RyaW5nO1xuXG4gICAgYmluYXJ5UGx1c01pbnVzOiBCaW5hcnlPcDtcbiAgICBiaW5hcnlNdWxEaXY6IEJpbmFyeU9wO1xuICAgIGJpbmFyeUNvbXBhcmVPcDogQmluYXJ5T3A7XG4gICAgYmluYXJ5QW5kT3A6IEJpbmFyeU9wO1xuICAgIGJpbmFyeU9yT3A6IEJpbmFyeU9wO1xuXG4gICAgLy8gTGl0ZXJhbCBmaWVsZCBwYXJzaW5nIGZvciBpbmdlc3RpbmcgaW5saW5lIGZpZWxkcyBhbmQgZnJvbnRtYXR0ZXIuXG4gICAgYXRvbUlubGluZUZpZWxkOiBMaXRlcmFsO1xuICAgIGlubGluZUZpZWxkTGlzdDogTGl0ZXJhbFtdO1xuICAgIGlubGluZUZpZWxkOiBMaXRlcmFsO1xufVxuXG4vKiogSW1wbGVtZW50YXRpb25zIGZvciBtYW55IHByaW1pdGl2ZXMuICovXG5leHBvcnQgY29uc3QgUFJJTUlUSVZFUyA9IFAuY3JlYXRlTGFuZ3VhZ2U8UHJpbWl0aXZlc0xhbmd1YWdlPih7XG4gICAgbnVtYmVyOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLy0/WzAtOV0rKFxcLlswLTldKyk/LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gTnVtYmVyLnBhcnNlRmxvYXQoc3RyKSlcbiAgICAgICAgICAgIC5kZXNjKFwibnVtYmVyXCIpLFxuXG4gICAgLy8gQSBxdW90ZS1zdXJyb3VuZGVkIHN0cmluZyB3aGljaCBzdXBwb3J0cyBlc2NhcGUgY2hhcmFjdGVycyAoJ1xcJykuXG4gICAgc3RyaW5nOiAocSkgPT5cbiAgICAgICAgUC5zdHJpbmcoJ1wiJylcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgIFAuYWx0KHEuZXNjYXBlQ2hhcmFjdGVyLCBQLm5vbmVPZignXCJcXFxcJykpXG4gICAgICAgICAgICAgICAgICAgIC5hdExlYXN0KDApXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGNoYXJzKSA9PiBjaGFycy5qb2luKFwiXCIpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnNraXAoUC5zdHJpbmcoJ1wiJykpXG4gICAgICAgICAgICAuZGVzYyhcInN0cmluZ1wiKSxcblxuICAgIGVzY2FwZUNoYXJhY3RlcjogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiXFxcXFwiKVxuICAgICAgICAgICAgLnRoZW4oUC5hbnkpXG4gICAgICAgICAgICAubWFwKChlc2NhcGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIGEgYmFja3NsYXNoIG9yIGEgcXVvdGUsIHBhc3MgaW4gb24gaW4gZXNjYXBlZCBmb3JtXG4gICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT09ICdcIicpIHJldHVybiAnXCInO1xuICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkID09PSBcIlxcXFxcIikgcmV0dXJuIFwiXFxcXFwiO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFwiXFxcXFwiICsgZXNjYXBlZDtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgLy8gQSBib29sZWFuIHRydWUvZmFsc2UgdmFsdWUuXG4gICAgYm9vbDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC90cnVlfGZhbHNlfFRydWV8RmFsc2UvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSA9PSBcInRydWVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiYm9vbGVhblwiKSxcblxuICAgIC8vIEEgdGFnIG9mIHRoZSBmb3JtICcjc3R1ZmYvaGVsbG8tdGhlcmUnLlxuICAgIHRhZzogKF8pID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCIjXCIpLFxuICAgICAgICAgICAgUC5hbHQoUC5yZWdleHAoL1teXFx1MjAwMC1cXHUyMDZGXFx1MkUwMC1cXHUyRTdGJyFcIiMkJSYoKSorLC46Ozw9Pj9AXmB7fH1+XFxbXFxdXFxcXFxcc10vKS5kZXNjKFwidGV4dFwiKSkubWFueSgpLFxuICAgICAgICAgICAgKHN0YXJ0LCByZXN0KSA9PiBzdGFydCArIHJlc3Quam9pbihcIlwiKVxuICAgICAgICApLmRlc2MoXCJ0YWdcIiksXG5cbiAgICAvLyBBIHZhcmlhYmxlIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFscGhhbnVtZXJpYyBhbmQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIG9yLi4uIGVtb2ppLlxuICAgIGlkZW50aWZpZXI6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bXFxwe0xldHRlcn0kXS91KSwgUC5yZWdleHAoRU1PSklfUkVHRVgpLmRlc2MoXCJ0ZXh0XCIpKSxcbiAgICAgICAgICAgIFAuYWx0KFAucmVnZXhwKC9bMC05XFxwe0xldHRlcn0kXy1dL3UpLCBQLnJlZ2V4cChFTU9KSV9SRUdFWCkuZGVzYyhcInRleHRcIikpLm1hbnkoKSxcbiAgICAgICAgICAgIChmaXJzdCwgcmVzdCkgPT4gZmlyc3QgKyByZXN0LmpvaW4oXCJcIilcbiAgICAgICAgKS5kZXNjKFwidmFyaWFibGVcIiksXG5cbiAgICAvLyBBbiBPYnNpZGlhbiBsaW5rIG9mIHRoZSBmb3JtIFtbPGxpbms+XV0uXG4gICAgbGluazogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXFtcXFsoW15cXFtcXF1dKj8pXFxdXFxdL3UsIDEpXG4gICAgICAgICAgICAubWFwKChsaW5rSW5uZXIpID0+IExpbmsucGFyc2VJbm5lcihsaW5rSW5uZXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBBbiBlbWJlZGRhYmxlIGxpbmsgd2hpY2ggY2FuIHN0YXJ0IHdpdGggJyEnLiBUaGlzIG92ZXJsYXBzIHdpdGggdGhlIG5vcm1hbCBuZWdhdGlvbiBvcGVyYXRvciwgc28gaXQgaXMgb25seVxuICAgIC8vIHByb3ZpZGVkIGZvciBtZXRhZGF0YSBwYXJzaW5nLlxuICAgIGVtYmVkTGluazogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiIVwiKS5hdE1vc3QoMSksIHEubGluaywgKHAsIGwpID0+IHtcbiAgICAgICAgICAgIGlmIChwLmxlbmd0aCA+IDApIGwuZW1iZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGw7XG4gICAgICAgIH0pLmRlc2MoXCJmaWxlIGxpbmtcIiksXG5cbiAgICAvLyBCaW5hcnkgcGx1cyBvciBtaW51cyBvcGVyYXRvci5cbiAgICBiaW5hcnlQbHVzTWludXM6IChfKSA9PlxuICAgICAgICBQLnJlZ2V4cCgvXFwrfC0vKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicrJyBvciAnLSdcIiksXG5cbiAgICAvLyBCaW5hcnkgdGltZXMgb3IgZGl2aWRlIG9wZXJhdG9yLlxuICAgIGJpbmFyeU11bERpdjogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9cXCp8XFwvfCUvKVxuICAgICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIgYXMgQmluYXJ5T3ApXG4gICAgICAgICAgICAuZGVzYyhcIicqJyBvciAnLycgb3IgJyUnXCIpLFxuXG4gICAgLy8gQmluYXJ5IGNvbXBhcmlzb24gb3BlcmF0b3IuXG4gICAgYmluYXJ5Q29tcGFyZU9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoLz49fDw9fCE9fD58PHw9LylcbiAgICAgICAgICAgIC5tYXAoKHN0cikgPT4gc3RyIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInPj0nIG9yICc8PScgb3IgJyE9JyBvciAnPScgb3IgJz4nIG9yICc8J1wiKSxcblxuICAgIC8vIEJpbmFyeSBib29sZWFuIGNvbWJpbmF0aW9uIG9wZXJhdG9yLlxuICAgIGJpbmFyeUFuZE9wOiAoXykgPT5cbiAgICAgICAgUC5yZWdleHAoL2FuZHwmL2kpXG4gICAgICAgICAgICAubWFwKChfc3RyKSA9PiBcIiZcIiBhcyBCaW5hcnlPcClcbiAgICAgICAgICAgIC5kZXNjKFwiJ2FuZCdcIiksXG4gICAgYmluYXJ5T3JPcDogKF8pID0+XG4gICAgICAgIFAucmVnZXhwKC9vcnxcXHwvaSlcbiAgICAgICAgICAgIC5tYXAoKF9zdHIpID0+IFwifFwiIGFzIEJpbmFyeU9wKVxuICAgICAgICAgICAgLmRlc2MoXCInb3InXCIpLFxuXG4gICAgLy8gQSBkYXRlIHdoaWNoIGNhbiBiZSBZWVlZLU1NWy1ERFRISDptbTpzc10uXG4gICAgcm9vdERhdGU6IChfKSA9PlxuICAgICAgICBQLnNlcU1hcChQLnJlZ2V4cCgvXFxkezR9LyksIFAuc3RyaW5nKFwiLVwiKSwgUC5yZWdleHAoL1xcZHsyfS8pLCAoeWVhciwgXywgbW9udGgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tT2JqZWN0KHsgeWVhcjogTnVtYmVyLnBhcnNlSW50KHllYXIpLCBtb250aDogTnVtYmVyLnBhcnNlSW50KG1vbnRoKSB9KTtcbiAgICAgICAgfSkuZGVzYyhcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXVwiKSxcbiAgICBkYXRlU2hvcnRoYW5kOiAoXykgPT5cbiAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhEQVRFX1NIT1JUSEFORFMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgREFURV9TSE9SVEhBTkRTPixcbiAgICBkYXRlOiAocSkgPT5cbiAgICAgICAgY2hhaW5PcHQ8RGF0ZVRpbWU+KFxuICAgICAgICAgICAgcS5yb290RGF0ZSxcbiAgICAgICAgICAgICh5bTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCItXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBkYXkpID0+IHltLnNldCh7IGRheTogTnVtYmVyLnBhcnNlSW50KGRheSkgfSkpLFxuICAgICAgICAgICAgKHltZDogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCJUXCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBob3VyKSA9PiB5bWQuc2V0KHsgaG91cjogTnVtYmVyLnBhcnNlSW50KGhvdXIpIH0pKSxcbiAgICAgICAgICAgICh5bWRoOiBEYXRlVGltZSkgPT5cbiAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIjpcIiksIFAucmVnZXhwKC9cXGR7Mn0vKSwgKF8sIG1pbnV0ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgeW1kaC5zZXQoeyBtaW51dGU6IE51bWJlci5wYXJzZUludChtaW51dGUpIH0pXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICh5bWRobTogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5zZXFNYXAoUC5zdHJpbmcoXCI6XCIpLCBQLnJlZ2V4cCgvXFxkezJ9LyksIChfLCBzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIHltZGhtLnNldCh7IHNlY29uZDogTnVtYmVyLnBhcnNlSW50KHNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHltZGhtczogRGF0ZVRpbWUpID0+XG4gICAgICAgICAgICAgICAgUC5hbHQoXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiLlwiKSwgUC5yZWdleHAoL1xcZHszfS8pLCAoXywgbWlsbGlzZWNvbmQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB5bWRobXMuc2V0KHsgbWlsbGlzZWNvbmQ6IE51bWJlci5wYXJzZUludChtaWxsaXNlY29uZCkgfSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgUC5zdWNjZWVkKHltZGhtcykgLy8gcGFzc1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZHQ6IERhdGVUaW1lKSA9PlxuICAgICAgICAgICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIitcIikub3IoUC5zdHJpbmcoXCItXCIpKSwgUC5yZWdleHAoL1xcZHsxLDJ9KDpcXGR7Mn0pPy8pLCAocG0sIGhyKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZShcIlVUQ1wiICsgcG0gKyBociwgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIFAuc2VxTWFwKFAuc3RyaW5nKFwiWlwiKSwgKCkgPT4gZHQuc2V0Wm9uZShcInV0Y1wiLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSkpLFxuICAgICAgICAgICAgICAgICAgICBQLnNlcU1hcChQLnN0cmluZyhcIltcIiksIFAucmVnZXhwKC9bMC05QS1aYS16Ky1cXC9dKy91KSwgUC5zdHJpbmcoXCJdXCIpLCAoX2EsIHpvbmUsIF9iKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZHQuc2V0Wm9uZSh6b25lLCB7IGtlZXBMb2NhbFRpbWU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAgICAgLmFzc2VydCgoZHQ6IERhdGVUaW1lKSA9PiBkdC5pc1ZhbGlkLCBcInZhbGlkIGRhdGVcIilcbiAgICAgICAgICAgIC5kZXNjKFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXCIpLFxuXG4gICAgLy8gQSBkYXRlLCBwbHVzIHZhcmlvdXMgc2hvcnRoYW5kIHRpbWVzIG9mIGRheSBpdCBjb3VsZCBiZS5cbiAgICBkYXRlUGx1czogKHEpID0+XG4gICAgICAgIFAuYWx0PERhdGVUaW1lPihcbiAgICAgICAgICAgIHEuZGF0ZVNob3J0aGFuZC5tYXAoKGQpID0+IERBVEVfU0hPUlRIQU5EU1tkXSgpKSxcbiAgICAgICAgICAgIHEuZGF0ZVxuICAgICAgICApLmRlc2MoXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10gb3IgaW4gc2hvcnRoYW5kXCIpLFxuXG4gICAgLy8gQSBkdXJhdGlvbiBvZiB0aW1lLlxuICAgIGR1cmF0aW9uVHlwZTogKF8pID0+XG4gICAgICAgIFAuYWx0KFxuICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMoRFVSQVRJT05fVFlQRVMpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgLm1hcChQLnN0cmluZylcbiAgICAgICAgKSBhcyBQLlBhcnNlcjxrZXlvZiB0eXBlb2YgRFVSQVRJT05fVFlQRVM+LFxuICAgIGR1cmF0aW9uOiAocSkgPT5cbiAgICAgICAgUC5zZXFNYXAocS5udW1iZXIsIFAub3B0V2hpdGVzcGFjZSwgcS5kdXJhdGlvblR5cGUsIChjb3VudCwgXywgdCkgPT5cbiAgICAgICAgICAgIERVUkFUSU9OX1RZUEVTW3RdLm1hcFVuaXRzKCh4KSA9PiB4ICogY291bnQpXG4gICAgICAgIClcbiAgICAgICAgICAgIC5zZXBCeTEoUC5zdHJpbmcoXCIsXCIpLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS5vcihQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgLm1hcCgoZHVyYXRpb25zKSA9PiBkdXJhdGlvbnMucmVkdWNlKChwLCBjKSA9PiBwLnBsdXMoYykpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvbiBsaWtlIDRocjJtaW5cIiksXG5cbiAgICAvLyBBIHJhdyBudWxsIHZhbHVlLlxuICAgIHJhd051bGw6IChfKSA9PiBQLnN0cmluZyhcIm51bGxcIiksXG5cbiAgICAvLyBJbmxpbmUgZmllbGQgdmFsdWUgcGFyc2luZy5cbiAgICBhdG9tSW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIHEuZGF0ZSxcbiAgICAgICAgICAgIHEuZHVyYXRpb24ubWFwKChkKSA9PiBub3JtYWxpemVEdXJhdGlvbihkKSksXG4gICAgICAgICAgICBxLnN0cmluZyxcbiAgICAgICAgICAgIHEudGFnLFxuICAgICAgICAgICAgcS5lbWJlZExpbmssXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEucmF3TnVsbFxuICAgICAgICApLFxuICAgIGlubGluZUZpZWxkTGlzdDogKHEpID0+IHEuYXRvbUlubGluZUZpZWxkLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKHEuYXRvbUlubGluZUZpZWxkKSksXG4gICAgaW5saW5lRmllbGQ6IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIFAuc2VxTWFwKHEuYXRvbUlubGluZUZpZWxkLCBQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLCBxLmlubGluZUZpZWxkTGlzdCwgKGYsIF9zLCBsKSA9PlxuICAgICAgICAgICAgICAgIFtmXS5jb25jYXQobClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBxLmF0b21JbmxpbmVGaWVsZFxuICAgICAgICApLFxufSk7XG5cbi8qKiBFbW9qaSByZWdleCwgc3RycHBpbmcgYW55IHJlZ2V4IGZsYWdzIGl0IGhhcy4gKi9cbmNvbnN0IEVNT0pJX1JFR0VYID0gbmV3IFJlZ0V4cChlbW9qaVJlZ2V4KCksIFwiXCIpO1xuXG4vKiogUHJvdmlkZXMgYSBsb29rdXAgdGFibGUgZm9yIHVuaXQgZHVyYXRpb25zIG9mIHRoZSBnaXZlbiB0eXBlLiAqL1xuZXhwb3J0IGNvbnN0IERVUkFUSU9OX1RZUEVTID0ge1xuICAgIHllYXI6IER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSB9KSxcbiAgICB5ZWFyczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxIH0pLFxuICAgIHlyOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG4gICAgeXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDEgfSksXG5cbiAgICBtb250aDogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogMSB9KSxcbiAgICBtb250aHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW86IER1cmF0aW9uLmZyb21PYmplY3QoeyBtb250aHM6IDEgfSksXG4gICAgbW9zOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiAxIH0pLFxuXG4gICAgd2VlazogRHVyYXRpb24uZnJvbU9iamVjdCh7IHdlZWtzOiAxIH0pLFxuICAgIHdlZWtzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG4gICAgd2s6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3a3M6IER1cmF0aW9uLmZyb21PYmplY3QoeyB3ZWVrczogMSB9KSxcbiAgICB3OiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgd2Vla3M6IDEgfSksXG5cbiAgICBkYXk6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGRheXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuICAgIGQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBkYXlzOiAxIH0pLFxuXG4gICAgaG91cjogRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxIH0pLFxuICAgIGhvdXJzOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG4gICAgaHI6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBocnM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMSB9KSxcbiAgICBoOiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEgfSksXG5cbiAgICBtaW51dGU6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbnV0ZXM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBtaW51dGVzOiAxIH0pLFxuICAgIG1pbjogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbWluczogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG4gICAgbTogRHVyYXRpb24uZnJvbU9iamVjdCh7IG1pbnV0ZXM6IDEgfSksXG5cbiAgICBzZWNvbmQ6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlY29uZHM6IER1cmF0aW9uLmZyb21PYmplY3QoeyBzZWNvbmRzOiAxIH0pLFxuICAgIHNlYzogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgc2VjczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG4gICAgczogRHVyYXRpb24uZnJvbU9iamVjdCh7IHNlY29uZHM6IDEgfSksXG59O1xuXG4vKiogU2hvcnRoYW5kIGZvciBjb21tb24gZGF0ZXMgKHJlbGF0aXZlIHRvIHJpZ2h0IG5vdykuICovXG5leHBvcnQgY29uc3QgREFURV9TSE9SVEhBTkRTID0ge1xuICAgIG5vdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKSxcbiAgICB0b2RheTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwiZGF5XCIpLFxuICAgIHllc3RlcmRheTogKCkgPT5cbiAgICAgICAgRGF0ZVRpbWUubG9jYWwoKVxuICAgICAgICAgICAgLnN0YXJ0T2YoXCJkYXlcIilcbiAgICAgICAgICAgIC5taW51cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgdG9tb3Jyb3c6ICgpID0+XG4gICAgICAgIERhdGVUaW1lLmxvY2FsKClcbiAgICAgICAgICAgIC5zdGFydE9mKFwiZGF5XCIpXG4gICAgICAgICAgICAucGx1cyhEdXJhdGlvbi5mcm9tT2JqZWN0KHsgZGF5czogMSB9KSksXG4gICAgc293OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIFwic3RhcnQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJ3ZWVrXCIpLFxuICAgIGVvdzogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5lbmRPZihcIndlZWtcIiksXG4gICAgXCJlbmQtb2Ytd2Vla1wiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwid2Vla1wiKSxcbiAgICBzb3k6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgXCJzdGFydC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuc3RhcnRPZihcInllYXJcIiksXG4gICAgZW95OiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwieWVhclwiKSxcbiAgICBcImVuZC1vZi15ZWFyXCI6ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJ5ZWFyXCIpLFxuICAgIHNvbTogKCkgPT4gRGF0ZVRpbWUubG9jYWwoKS5zdGFydE9mKFwibW9udGhcIiksXG4gICAgXCJzdGFydC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLnN0YXJ0T2YoXCJtb250aFwiKSxcbiAgICBlb206ICgpID0+IERhdGVUaW1lLmxvY2FsKCkuZW5kT2YoXCJtb250aFwiKSxcbiAgICBcImVuZC1vZi1tb250aFwiOiAoKSA9PiBEYXRlVGltZS5sb2NhbCgpLmVuZE9mKFwibW9udGhcIiksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFeHByZXNzaW9uIExhbmd1YWdlIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIFBvc3RmaXhGcmFnbWVudCA9XG4gICAgfCB7IHR5cGU6IFwiZG90XCI7IGV4cHI6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiaW5kZXhcIjsgZXhwcjogRXhwcmVzc2lvbiB9XG4gICAgfCB7IHR5cGU6IFwiZnVuY3Rpb25cIjsgZXhwcnM6IEV4cHJlc3Npb25bXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25MYW5ndWFnZSB7XG4gICAgdmFyaWFibGU6IFZhcmlhYmxlRXhwcmVzc2lvbjtcbiAgICBudW1iZXI6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGJvb2w6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIHN0cmluZzogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZGF0ZTogTGl0ZXJhbEV4cHJlc3Npb247XG4gICAgZHVyYXRpb246IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIGxpbms6IExpdGVyYWxFeHByZXNzaW9uO1xuICAgIG51bGw6IExpdGVyYWxFeHByZXNzaW9uO1xuXG4gICAgbGlzdDogTGlzdEV4cHJlc3Npb247XG4gICAgb2JqZWN0OiBPYmplY3RFeHByZXNzaW9uO1xuXG4gICAgbmVnYXRlZDogRXhwcmVzc2lvbjtcbiAgICBhdG9tOiBFeHByZXNzaW9uO1xuICAgIGluZGV4OiBFeHByZXNzaW9uO1xuICAgIGxhbWJkYTogTGFtYmRhRXhwcmVzc2lvbjtcblxuICAgIC8vIFBvc3RmaXggcGFyc2VycyBmb3IgZnVuY3Rpb24gY2FsbHMgJiB0aGUgbGlrZS5cbiAgICBkb3RQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgaW5kZXhQb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG4gICAgZnVuY3Rpb25Qb3N0Zml4OiBQb3N0Zml4RnJhZ21lbnQ7XG5cbiAgICAvLyBCaW5hcnkgb3AgcGFyc2Vycy5cbiAgICBiaW5hcnlNdWxEaXY6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5UGx1c01pbnVzOiBFeHByZXNzaW9uO1xuICAgIGJpbmFyeUNvbXBhcmU6IEV4cHJlc3Npb247XG4gICAgYmluYXJ5Qm9vbGVhbjogRXhwcmVzc2lvbjtcbiAgICBiaW5hcnlPcDogRXhwcmVzc2lvbjtcbiAgICBwYXJlbnM6IEV4cHJlc3Npb247XG4gICAgZXhwcmVzc2lvbjogRXhwcmVzc2lvbjtcbn1cblxuLyoqXG4gKiBQYXJzZSBmb3IgdGhlIGRhdGFjb3JlIGV4cHJlc3Npb24gbGFuZ3VhZ2UsIHdoaWNoIHByb3ZpZGVzIHNpbXBsZSBhbmQgdmFndWVseSBKUy1sb29raW5nIGNvbXB1dGF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTiA9IFAuY3JlYXRlTGFuZ3VhZ2U8RXhwcmVzc2lvbkxhbmd1YWdlPih7XG4gICAgLy8gRmllbGQgcGFyc2luZy5cbiAgICB2YXJpYWJsZTogKF8pID0+IFBSSU1JVElWRVMuaWRlbnRpZmllci5tYXAoRXhwcmVzc2lvbnMudmFyaWFibGUpLmRlc2MoXCJ2YXJpYWJsZVwiKSxcbiAgICBudW1iZXI6IChfKSA9PiBQUklNSVRJVkVTLm51bWJlci5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcIm51bWJlclwiKSxcbiAgICBzdHJpbmc6IChfKSA9PiBQUklNSVRJVkVTLnN0cmluZy5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCkuZGVzYyhcInN0cmluZ1wiKSxcbiAgICBib29sOiAoXykgPT4gUFJJTUlUSVZFUy5ib29sLm1hcChFeHByZXNzaW9ucy5saXRlcmFsKS5kZXNjKFwiYm9vbGVhblwiKSxcbiAgICBkYXRlOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkYXRlXCIsIFBSSU1JVElWRVMuZGF0ZVBsdXMpXG4gICAgICAgICAgICAubWFwKChbX2Z1bmMsIGRhdGVdKSA9PiBFeHByZXNzaW9ucy5saXRlcmFsKGRhdGUpKVxuICAgICAgICAgICAgLmRlc2MoXCJkYXRlXCIpLFxuICAgIGR1cmF0aW9uOiAoXykgPT5cbiAgICAgICAgY3JlYXRlRnVuY3Rpb24oXCJkdXJcIiwgUFJJTUlUSVZFUy5kdXJhdGlvbilcbiAgICAgICAgICAgIC5tYXAoKFtfZnVuYywgZHVyXSkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChkdXIpKVxuICAgICAgICAgICAgLmRlc2MoXCJkdXJhdGlvblwiKSxcbiAgICBudWxsOiAoXykgPT4gUFJJTUlUSVZFUy5yYXdOdWxsLm1hcCgoXykgPT4gRXhwcmVzc2lvbnMuTlVMTCksXG4gICAgbGluazogKF8pID0+IFBSSU1JVElWRVMubGluay5tYXAoRXhwcmVzc2lvbnMubGl0ZXJhbCksXG4gICAgbGlzdDogKHEpID0+XG4gICAgICAgIHEuZXhwcmVzc2lvblxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIltcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIl1cIikpKVxuICAgICAgICAgICAgLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGlzdChsKSlcbiAgICAgICAgICAgIC5kZXNjKFwibGlzdFwiKSxcbiAgICBvYmplY3Q6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZyksXG4gICAgICAgICAgICBQLnN0cmluZyhcIjpcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgKG5hbWUsIF9zZXAsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAgICAgLnNlcEJ5KFAuc3RyaW5nKFwiLFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpXG4gICAgICAgICAgICAud3JhcChQLnN0cmluZyhcIntcIikuc2tpcChQLm9wdFdoaXRlc3BhY2UpLCBQLm9wdFdoaXRlc3BhY2UudGhlbihQLnN0cmluZyhcIn1cIikpKVxuICAgICAgICAgICAgLm1hcCgodmFscykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgdmFscykgcmVzW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEV4cHJlc3Npb25zLm9iamVjdChyZXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5kZXNjKFwib2JqZWN0ICgneyBhOiAxLCBiOiAyIH0nKVwiKSxcblxuICAgIGF0b206IChxKSA9PlxuICAgICAgICBQLmFsdChcbiAgICAgICAgICAgIC8vIFBsYWNlIGVtYmVkIGxpbmtzIGFib3ZlIG5lZ2F0ZWQgZmllbGRzIGFzIHRoZXkgYXJlIHRoZSBzcGVjaWFsIHBhcnNlciBjYXNlICchW1t0aGluZ11dJyBhbmQgYXJlIGdlbmVyYWxseSB1bmFtYmlnaW91cy5cbiAgICAgICAgICAgIFBSSU1JVElWRVMuZW1iZWRMaW5rLm1hcCgobCkgPT4gRXhwcmVzc2lvbnMubGl0ZXJhbChsKSksXG4gICAgICAgICAgICBxLm5lZ2F0ZWQsXG4gICAgICAgICAgICBxLmxpbmssXG4gICAgICAgICAgICBxLmxpc3QsXG4gICAgICAgICAgICBxLm9iamVjdCxcbiAgICAgICAgICAgIHEubGFtYmRhLFxuICAgICAgICAgICAgcS5wYXJlbnMsXG4gICAgICAgICAgICBxLmJvb2wsXG4gICAgICAgICAgICBxLm51bWJlcixcbiAgICAgICAgICAgIHEuc3RyaW5nLFxuICAgICAgICAgICAgcS5kYXRlLFxuICAgICAgICAgICAgcS5kdXJhdGlvbixcbiAgICAgICAgICAgIHEubnVsbCxcbiAgICAgICAgICAgIHEudmFyaWFibGVcbiAgICAgICAgKSxcbiAgICBpbmRleDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKHEuYXRvbSwgUC5hbHQocS5kb3RQb3N0Zml4LCBxLmluZGV4UG9zdGZpeCwgcS5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwgKG9iaiwgcG9zdGZpeGVzKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gb2JqO1xuICAgICAgICAgICAgZm9yIChsZXQgcG9zdCBvZiBwb3N0Zml4ZXMpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBvc3QudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZG90XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIEV4cHJlc3Npb25zLmxpdGVyYWwocG9zdC5leHByKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImluZGV4XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5pbmRleChyZXN1bHQsIHBvc3QuZXhwcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBFeHByZXNzaW9ucy5mdW5jKHJlc3VsdCwgcG9zdC5leHBycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgIG5lZ2F0ZWQ6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIiFcIiksIHEuaW5kZXgsIChfLCBmaWVsZCkgPT4gRXhwcmVzc2lvbnMubmVnYXRlKGZpZWxkKSkuZGVzYyhcIm5lZ2F0ZWQgZmllbGRcIiksXG4gICAgcGFyZW5zOiAocSkgPT4gcS5leHByZXNzaW9uLnRyaW0oUC5vcHRXaGl0ZXNwYWNlKS53cmFwKFAuc3RyaW5nKFwiKFwiKSwgUC5zdHJpbmcoXCIpXCIpKSxcbiAgICBsYW1iZGE6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFBSSU1JVElWRVMuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIC5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKVxuICAgICAgICAgICAgICAgIC53cmFwKFAuc3RyaW5nKFwiKFwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksIFAuc3RyaW5nKFwiKVwiKS50cmltKFAub3B0V2hpdGVzcGFjZSkpLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCI9PlwiKS50cmltKFAub3B0V2hpdGVzcGFjZSksXG4gICAgICAgICAgICBxLmV4cHJlc3Npb24sXG4gICAgICAgICAgICAoaWRlbnQsIF9pZ25vcmUsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsYW1iZGFcIiwgYXJndW1lbnRzOiBpZGVudCwgdmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIGRvdFBvc3RmaXg6IChxKSA9PiBQLnNlcU1hcChQLnN0cmluZyhcIi5cIiksIFBSSU1JVElWRVMuaWRlbnRpZmllciwgKF8sIGV4cHIpID0+ICh7IHR5cGU6IFwiZG90XCIsIGV4cHIgfSkpLFxuICAgIGluZGV4UG9zdGZpeDogKHEpID0+XG4gICAgICAgIFAuc2VxTWFwKFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJbXCIpLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgcS5leHByZXNzaW9uLFxuICAgICAgICAgICAgUC5vcHRXaGl0ZXNwYWNlLFxuICAgICAgICAgICAgUC5zdHJpbmcoXCJdXCIpLFxuICAgICAgICAgICAgKF8sIF8yLCBleHByLCBfMywgXzQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcImluZGV4XCIsIGV4cHIgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICBmdW5jdGlvblBvc3RmaXg6IChxKSA9PlxuICAgICAgICBQLnNlcU1hcChcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKFwiKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIHEuZXhwcmVzc2lvbi5zZXBCeShQLnN0cmluZyhcIixcIikudHJpbShQLm9wdFdoaXRlc3BhY2UpKSxcbiAgICAgICAgICAgIFAub3B0V2hpdGVzcGFjZSxcbiAgICAgICAgICAgIFAuc3RyaW5nKFwiKVwiKSxcbiAgICAgICAgICAgIChfLCBfMSwgZXhwcnMsIF8yLCBfMykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgZXhwcnMgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSxcblxuICAgIC8vIFRoZSBwcmVjZWRlbmNlIGhpZXJhcmNoeSBvZiBvcGVyYXRvcnMgLSBtdWx0aXBseS9kaXZpZGUsIGFkZC9zdWJ0cmFjdCwgY29tcGFyZSwgYW5kIHRoZW4gYm9vbGVhbiBvcGVyYXRpb25zLlxuICAgIGJpbmFyeU11bERpdjogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmluZGV4LCBQUklNSVRJVkVTLmJpbmFyeU11bERpdiwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeVBsdXNNaW51czogKHEpID0+IGNyZWF0ZUJpbmFyeVBhcnNlcihxLmJpbmFyeU11bERpdiwgUFJJTUlUSVZFUy5iaW5hcnlQbHVzTWludXMsIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlDb21wYXJlOiAocSkgPT4gY3JlYXRlQmluYXJ5UGFyc2VyKHEuYmluYXJ5UGx1c01pbnVzLCBQUklNSVRJVkVTLmJpbmFyeUNvbXBhcmVPcCwgRXhwcmVzc2lvbnMuYmluYXJ5T3ApLFxuICAgIGJpbmFyeUJvb2xlYW46IChxKSA9PlxuICAgICAgICBjcmVhdGVCaW5hcnlQYXJzZXIocS5iaW5hcnlDb21wYXJlLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLm9yKFBSSU1JVElWRVMuYmluYXJ5T3JPcCksIEV4cHJlc3Npb25zLmJpbmFyeU9wKSxcbiAgICBiaW5hcnlPcDogKHEpID0+IHEuYmluYXJ5Qm9vbGVhbixcblxuICAgIGV4cHJlc3Npb246IChxKSA9PiBxLmJpbmFyeU9wLFxufSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBRdWVyeSBMYW5ndWFnZSAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFN1cHBvcnRlZCB0eXBlcyBpbiB0aGUgZ3JhbW1hciBmb3IgaW5kZXggcXVlcmllcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlMYW5ndWFnZSB7XG4gICAgcXVlcnlUYWc6IEluZGV4VGFnZ2VkO1xuICAgIHF1ZXJ5SWQ6IEluZGV4SWQ7XG4gICAgcXVlcnlUeXBlOiBJbmRleFR5cGVkO1xuICAgIHF1ZXJ5UGF0aDogSW5kZXhQYXRoO1xuICAgIHF1ZXJ5UGFyZW50T2Y6IEluZGV4UGFyZW50T2Y7XG4gICAgcXVlcnlDaGlsZE9mOiBJbmRleENoaWxkT2Y7XG4gICAgcXVlcnlTaW1wbGVMaW5rZWQ6IEluZGV4TGlua2VkO1xuICAgIHF1ZXJ5TGlua2VkOiBJbmRleExpbmtlZDtcbiAgICBxdWVyeUV4aXN0czogSW5kZXhGaWVsZDtcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeVJhd0V4cHJlc3Npb246IEluZGV4RXhwcmVzc2lvbjtcbiAgICBxdWVyeU5lZ2F0ZTogSW5kZXhOb3Q7XG4gICAgcXVlcnlQYXJlbnM6IEluZGV4UXVlcnk7XG4gICAgcXVlcnlBdG9tOiBJbmRleFF1ZXJ5O1xuICAgIHF1ZXJ5QW5kczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeU9yczogSW5kZXhRdWVyeTtcbiAgICBxdWVyeTogSW5kZXhRdWVyeTtcbn1cblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBxdWVyeSBsYW5ndWFnZS4gRGlkIEkgcmVhbGx5IG5lZWQgYSBxdWVyeSBsYW5ndWFnZSBpbnN0ZWFkIG9mIGp1c3QgYSBiZXR0ZXIgVUk/IFByb2JhYmx5IG5vdC5cbiAqIEJ1dCBxdWVyeSBsYW5ndWFnZXMgYXJlIGZ1biBmb3IgdGhlIHdob2xlIGZhbWlseSBhbmQgYXQgc29tZSBwb2ludCB5b3UgZ2V0IHNvIHVzZWQgdG8gd3JpdGluZyB0aGVtIHRoYXRcbiAqIHlvdSBkb24ndCBzdG9wIHRvIHRoaW5rIGlmIHlvdSAqbmVlZCogdG8gd3JpdGUgdGhlbSBhbnltb3JlLiBJdCdzIGdvb2QgdHlwaW5nIHByYWN0aWNlIGZvciBldmVyeW9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFFVRVJZID0gUC5jcmVhdGVMYW5ndWFnZTxRdWVyeUxhbmd1YWdlPih7XG4gICAgcXVlcnlUYWc6IChfKSA9PiBQUklNSVRJVkVTLnRhZy5tYXAoKHZhbHVlKSA9PiAoeyB0eXBlOiBcInRhZ2dlZFwiLCB2YWx1ZSB9KSksXG4gICAgcXVlcnlJZDogKF8pID0+IGNyZWF0ZUZ1bmN0aW9uKFwiaWRcIiwgUFJJTUlUSVZFUy5zdHJpbmcpLm1hcCgoW18sIGlkXSkgPT4gKHsgdHlwZTogXCJpZFwiLCB2YWx1ZTogaWQgfSkpLFxuICAgIHF1ZXJ5VHlwZTogKF8pID0+XG4gICAgICAgIFAuc3RyaW5nKFwiQFwiKVxuICAgICAgICAgICAgLnRoZW4oUFJJTUlUSVZFUy5pZGVudGlmaWVyKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7IHR5cGU6IFwidHlwZWRcIiwgdmFsdWU6IHZhbHVlIH0pKSxcblxuICAgIHF1ZXJ5UGF0aDogKF8pID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9lP3BhdGgvaSkuZGVzYyhcIltlXXBhdGhcIiksIFBSSU1JVElWRVMuc3RyaW5nKS5tYXAoKFtmdW5jLCBwYXRoXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwicGF0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHBhdGgsXG4gICAgICAgICAgICBleGFjdDogZnVuYy50b0xvd2VyQ2FzZSgpID09PSBcImVwYXRoXCIsXG4gICAgICAgIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW50T2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvcGFyZW50b2Z8c3VwZXJ0cmVlL2kpLmRlc2MoXCJwYXJlbnRvZlwiKSwgcS5xdWVyeSkubWFwKChbZnVuYywgY2hpbGRyZW5dKSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJwYXJlbnQtb2ZcIixcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmdW5jLnRvTG93ZXJDYXNlKCkgPT09IFwic3VwZXJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUNoaWxkT2Y6IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvY2hpbGRvZnxzdWJ0cmVlL2kpLmRlc2MoXCJjaGlsZG9mXCIpLCBxLnF1ZXJ5KS5tYXAoKFtmdW5jLCBwYXJlbnRzXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hpbGQtb2ZcIixcbiAgICAgICAgICAgIHBhcmVudHMsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PT0gXCJzdWJ0cmVlXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeVNpbXBsZUxpbmtlZDogKF8pID0+XG4gICAgICAgIFBSSU1JVElWRVMubGluay5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlOiB7IHR5cGU6IFwibGlua1wiLCB2YWx1ZTogbGluayB9LFxuICAgICAgICAgICAgZGlyZWN0aW9uOiBcImluY29taW5nXCIsXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeUxpbmtlZDogKHEpID0+XG4gICAgICAgIGNyZWF0ZUZ1bmN0aW9uKFAucmVnZXhwKC9saW5rc3RvfGxpbmtlZGZyb218Y29ubmVjdGVkL2kpLmRlc2MoXCJjb25uZWN0ZWRcIiksIHEucXVlcnkpLm1hcCgoW2Z1bmMsIHNvdXJjZV0pID0+ICh7XG4gICAgICAgICAgICB0eXBlOiBcImxpbmtlZFwiLFxuICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgZGlyZWN0aW9uOlxuICAgICAgICAgICAgICAgIGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtzdG9cIiA/IFwiaW5jb21pbmdcIiA6IGZ1bmMudG9Mb3dlckNhc2UoKSA9PSBcImxpbmtlZGZyb21cIiA/IFwib3V0Z29pbmdcIiA6IFwiYm90aFwiLFxuICAgICAgICB9KSksXG4gICAgcXVlcnlFeGlzdHM6IChfKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhpc3RzL2kpLmRlc2MoXCJleGlzdHNcIiksIFBSSU1JVElWRVMuaWRlbnRpZmllci5vcihQUklNSVRJVkVTLnN0cmluZykpLm1hcChcbiAgICAgICAgICAgIChbX2Z1bmMsIGlkZW50XSkgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZpZWxkXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICBxdWVyeVF1b3RlZEV4cHJlc3Npb246IChxKSA9PlxuICAgICAgICBjcmVhdGVGdW5jdGlvbihQLnJlZ2V4cCgvZXhwci9pKS5kZXNjKFwiZXhwclwiKSwgRVhQUkVTU0lPTi5leHByZXNzaW9uKS5tYXAoKFtfLCBleHByXSkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiZXhwcmVzc2lvblwiLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcixcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5UmF3RXhwcmVzc2lvbjogKHEpID0+IEVYUFJFU1NJT04uYmluYXJ5Q29tcGFyZS5tYXAoKGV4cHIpID0+ICh7IHR5cGU6IFwiZXhwcmVzc2lvblwiLCBleHByZXNzaW9uOiBleHByIH0pKSxcblxuICAgIHF1ZXJ5UGFyZW5zOiAocSkgPT4gcS5xdWVyeS50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgcXVlcnlOZWdhdGU6IChxKSA9PlxuICAgICAgICBQLnN0cmluZyhcIiFcIilcbiAgICAgICAgICAgIC5za2lwKFAub3B0V2hpdGVzcGFjZSlcbiAgICAgICAgICAgIC50aGVuKHEucXVlcnlBdG9tKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJub3RcIixcbiAgICAgICAgICAgICAgICBlbGVtZW50OiB2YWx1ZSxcbiAgICAgICAgICAgIH0pKSxcbiAgICBxdWVyeUF0b206IChxKSA9PlxuICAgICAgICBQLmFsdDxJbmRleFF1ZXJ5PihcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnMsXG4gICAgICAgICAgICBxLnF1ZXJ5TmVnYXRlLFxuICAgICAgICAgICAgcS5xdWVyeVNpbXBsZUxpbmtlZCxcbiAgICAgICAgICAgIHEucXVlcnlUYWcsXG4gICAgICAgICAgICBxLnF1ZXJ5VHlwZSxcbiAgICAgICAgICAgIHEucXVlcnlJZCxcbiAgICAgICAgICAgIHEucXVlcnlFeGlzdHMsXG4gICAgICAgICAgICBxLnF1ZXJ5Q2hpbGRPZixcbiAgICAgICAgICAgIHEucXVlcnlQYXJlbnRPZixcbiAgICAgICAgICAgIHEucXVlcnlMaW5rZWQsXG4gICAgICAgICAgICBxLnF1ZXJ5UGF0aCxcbiAgICAgICAgICAgIHEucXVlcnlRdW90ZWRFeHByZXNzaW9uLFxuICAgICAgICAgICAgLy8gRXhwcmVzc2lvbnMgYXJlIGVzc2VudGlhbGx5IHRoZSBcImNhdGNoLWFsbFwiIG9mIG90aGVyd2lzZSB1bnBhcnNlYWJsZSB0ZXJtcywgc28gdGhleSBzaG91bGQgZ28gYWJzb2x1dGUgbGFzdC5cbiAgICAgICAgICAgIHEucXVlcnlSYXdFeHByZXNzaW9uXG4gICAgICAgICksXG4gICAgcXVlcnlBbmRzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBdG9tLCBQUklNSVRJVkVTLmJpbmFyeUFuZE9wLCAobGVmdCwgX29wLCByaWdodCkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiYW5kXCIsXG4gICAgICAgICAgICBlbGVtZW50czogW2xlZnQsIHJpZ2h0XSxcbiAgICAgICAgfSkpLFxuICAgIHF1ZXJ5T3JzOiAocSkgPT5cbiAgICAgICAgY3JlYXRlQmluYXJ5UGFyc2VyKHEucXVlcnlBbmRzLCBQUklNSVRJVkVTLmJpbmFyeU9yT3AsIChsZWZ0LCBfb3AsIHJpZ2h0KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogXCJvclwiLFxuICAgICAgICAgICAgZWxlbWVudHM6IFtsZWZ0LCByaWdodF0sXG4gICAgICAgIH0pKSxcbiAgICBxdWVyeTogKHEpID0+IHEucXVlcnlPcnMudHJpbShQLm9wdFdoaXRlc3BhY2UpLFxufSk7XG5cbi8qKiBSZXR1cm4gYSBuZXcgcGFyc2VyIHdoaWNoIGV4ZWN1dGVzIHRoZSB1bmRlcmx5aW5nIHBhcnNlciBhbmQgcmV0dXJucyBpdCdzIHJhdyBzdHJpbmcgcmVwcmVzZW50YXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZVJhdzxUPihiYXNlOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtULCBzdHJpbmddPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXN1bHQsIHsgdmFsdWU6IFtyZXN1bHQudmFsdWUsIGlucHV0LnN1YnN0cmluZyhpLCByZXN1bHQuaW5kZXgpXSB9KTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuLyoqIENyZWF0ZSBhIGxlZnQtYXNzb2NpYXRpdmUgYmluYXJ5IHBhcnNlciB3aGljaCBwYXJzZXMgdGhlIGdpdmVuIHN1Yi1lbGVtZW50IGFuZCBzZXBhcmF0b3IuIEhhbmRsZXMgd2hpdGVzcGFjZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCaW5hcnlQYXJzZXI8VCwgVT4oXG4gICAgY2hpbGQ6IFAuUGFyc2VyPFQ+LFxuICAgIHNlcDogUC5QYXJzZXI8VT4sXG4gICAgY29tYmluZTogKGE6IFQsIGI6IFUsIGM6IFQpID0+IFRcbik6IFAuUGFyc2VyPFQ+IHtcbiAgICByZXR1cm4gUC5zZXFNYXAoY2hpbGQsIFAuc2VxKFAub3B0V2hpdGVzcGFjZSwgc2VwLCBQLm9wdFdoaXRlc3BhY2UsIGNoaWxkKS5tYW55KCksIChmaXJzdCwgcmVzdCkgPT4ge1xuICAgICAgICBpZiAocmVzdC5sZW5ndGggPT0gMCkgcmV0dXJuIGZpcnN0O1xuXG4gICAgICAgIGxldCBub2RlID0gY29tYmluZShmaXJzdCwgcmVzdFswXVsxXSwgcmVzdFswXVszXSk7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgbm9kZSA9IGNvbWJpbmUobm9kZSwgcmVzdFtpbmRleF1bMV0sIHJlc3RbaW5kZXhdWzNdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXJzZXIgd2hpY2ggcGFyc2VzIFxcPGZ1bmN0aW9uXFw+KFxcPGFyZ3NcXD4pLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbjxUPihmdW5jOiBzdHJpbmcgfCBQLlBhcnNlcjxzdHJpbmc+LCBhcmdzOiBQLlBhcnNlcjxUPik6IFAuUGFyc2VyPFtzdHJpbmcsIFRdPiB7XG4gICAgY29uc3QgcmVhbEZ1bmMgPSB0eXBlb2YgZnVuYyA9PT0gXCJzdHJpbmdcIiA/IFAuc3RyaW5nKGZ1bmMpIDogZnVuYztcbiAgICByZXR1cm4gUC5zZXFNYXAoXG4gICAgICAgIHJlYWxGdW5jLnNraXAoUC5vcHRXaGl0ZXNwYWNlKSxcbiAgICAgICAgYXJncy50cmltKFAub3B0V2hpdGVzcGFjZSkud3JhcChQLnN0cmluZyhcIihcIiksIFAuc3RyaW5nKFwiKVwiKSksXG4gICAgICAgIChmLCBhKSA9PiBbZiwgYV1cbiAgICApO1xufVxuXG4vKiogQ2hhaW5zIGEgbGlzdCBvZiBwYXJzZXJzOyB0aGUgZmlyc3Qgb25lIG11c3Qgc3VjY2VlZCwgYnV0IGZvbGxvd2luZyBvbmVzIG1heSBmYWlsIHdpdGhvdXQgZmFpbGluZyB0aGUgb3ZlcmFsbCBwYXJzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbk9wdDxUPihiYXNlOiBQLlBhcnNlcjxUPiwgLi4uZnVuY3M6ICgocjogVCkgPT4gUC5QYXJzZXI8VD4pW10pOiBQLlBhcnNlcjxUPiB7XG4gICAgcmV0dXJuIFAuY3VzdG9tKChfc3VjY2VzcywgX2ZhaWx1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IChiYXNlIGFzIGFueSkuXyhpbnB1dCwgaSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5zdGF0dXMpIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IChmdW5jKHJlc3VsdC52YWx1ZSBhcyBUKSBhcyBhbnkpLl8oaW5wdXQsIHJlc3VsdC5pbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0LnN0YXR1cykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGV4cHJlc3Npb25zXG4gKi9cbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IHJlbmRlck1pbmltYWxEYXRlLCByZW5kZXJNaW5pbWFsRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcblxuLy8gUmUtZXhwb3J0cyBvZiB1c2VmdWwgZ2VuZXJpYyB0eXBlcy5cbmV4cG9ydCB7IExpbmsgfTtcblxuLyoqIFNob3J0aGFuZCBmb3IgYSBtYXBwaW5nIGZyb20ga2V5cyB0byB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBEYXRhT2JqZWN0ID0gUmVjb3JkPHN0cmluZywgYW55Pjtcbi8qKiBUaGUgbGl0ZXJhbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIHF1ZXJ5IGVuZ2luZS4gKi9cbmV4cG9ydCB0eXBlIExpdGVyYWxUeXBlID1cbiAgICB8IFwiYm9vbGVhblwiXG4gICAgfCBcIm51bWJlclwiXG4gICAgfCBcInN0cmluZ1wiXG4gICAgfCBcImRhdGVcIlxuICAgIHwgXCJkdXJhdGlvblwiXG4gICAgfCBcImxpbmtcIlxuICAgIHwgXCJhcnJheVwiXG4gICAgfCBcIm9iamVjdFwiXG4gICAgfCBcImZ1bmN0aW9uXCJcbiAgICB8IFwibnVsbFwiO1xuLyoqIFRoZSByYXcgdmFsdWVzIHRoYXQgYSBsaXRlcmFsIGNhbiB0YWtlIG9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbCA9XG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgRGF0ZVRpbWVcbiAgICB8IER1cmF0aW9uXG4gICAgfCBMaW5rXG4gICAgfCBBcnJheTxMaXRlcmFsPlxuICAgIHwgRGF0YU9iamVjdFxuICAgIHwgRnVuY3Rpb25cbiAgICB8IG51bGw7XG5cbi8qKiBNYXBzIHRoZSBzdHJpbmcgdHlwZSB0byBpdCdzIGV4dGVybmFsLCBBUEktZmFjaW5nIHJlcHJlc2VudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFJlcHI8VCBleHRlbmRzIExpdGVyYWxUeXBlPiA9IFQgZXh0ZW5kcyBcImJvb2xlYW5cIlxuICAgID8gYm9vbGVhblxuICAgIDogVCBleHRlbmRzIFwibnVtYmVyXCJcbiAgICA/IG51bWJlclxuICAgIDogVCBleHRlbmRzIFwic3RyaW5nXCJcbiAgICA/IHN0cmluZ1xuICAgIDogVCBleHRlbmRzIFwiZHVyYXRpb25cIlxuICAgID8gRHVyYXRpb25cbiAgICA6IFQgZXh0ZW5kcyBcImRhdGVcIlxuICAgID8gRGF0ZVRpbWVcbiAgICA6IFQgZXh0ZW5kcyBcIm51bGxcIlxuICAgID8gbnVsbFxuICAgIDogVCBleHRlbmRzIFwibGlua1wiXG4gICAgPyBMaW5rXG4gICAgOiBUIGV4dGVuZHMgXCJhcnJheVwiXG4gICAgPyBBcnJheTxMaXRlcmFsPlxuICAgIDogVCBleHRlbmRzIFwib2JqZWN0XCJcbiAgICA/IERhdGFPYmplY3RcbiAgICA6IFQgZXh0ZW5kcyBcImZ1bmN0aW9uXCJcbiAgICA/IEZ1bmN0aW9uXG4gICAgOiBhbnk7XG5cbi8qKiBBIHdyYXBwZWQgbGl0ZXJhbCB2YWx1ZSB3aGljaCBjYW4gYmUgc3dpdGNoZWQgb24uICovXG5leHBvcnQgdHlwZSBXcmFwcGVkTGl0ZXJhbCA9XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcInN0cmluZ1wiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJudW1iZXJcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYm9vbGVhblwiPlxuICAgIHwgTGl0ZXJhbFdyYXBwZXI8XCJkYXRlXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImR1cmF0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImxpbmtcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwiYXJyYXlcIj5cbiAgICB8IExpdGVyYWxXcmFwcGVyPFwib2JqZWN0XCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcImZ1bmN0aW9uXCI+XG4gICAgfCBMaXRlcmFsV3JhcHBlcjxcIm51bGxcIj47XG5cbi8qKiBDb21iaW5lcyBhIHRleHR1YWwgdHlwZSBhbmQgdmFsdWU7IHByaW1hcmlseSB1c2VmdWwgZm9yIHN3aXRjaGluZyBvbi5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsV3JhcHBlcjxUIGV4dGVuZHMgTGl0ZXJhbFR5cGU+IHtcbiAgICB0eXBlOiBUO1xuICAgIHZhbHVlOiBMaXRlcmFsUmVwcjxUPjtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiAgVXRpbGl0eSBsaWJyYXJ5IGZvciBoYW5kbGluZyBsaXRlcmFsIHZhbHVlcy4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgTGl0ZXJhbHMge1xuICAgIC8qKiBTZXR0aW5ncyB1c2VkIHdoZW4gZm9ybWF0dGluZyBsaXRlcmFsIHZhbHVlcyB0byB0ZXh0LiAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9TdHJpbmdTZXR0aW5ncyB7XG4gICAgICAgIC8qKiBXaGF0IGEgbnVsbCB3aWxsIHJlbmRlciBhcy4gKi9cbiAgICAgICAgbnVsbFJlcHJlc2VudGF0aW9uOiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUgZm9ybWF0LiAqL1xuICAgICAgICBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICAgICAgLyoqIERhdGUtdGltZSBmb3JtYXQuICovXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqIFNhbmUsIEVuZ2xpc2gtYmFzZWQgZGVmYXVsdHMgZm9yIGRhdGUgZm9ybWF0cy4gKi9cbiAgICBleHBvcnQgY29uc3QgREVGQVVMVF9UT19TVFJJTkc6IFRvU3RyaW5nU2V0dGluZ3MgPSB7XG4gICAgICAgIG51bGxSZXByZXNlbnRhdGlvbjogXCItXCIsXG5cbiAgICAgICAgZGF0ZUZvcm1hdDogXCJNTU1NIGRkLCB5eXl5XCIsXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBcImg6bW0gYSAtIE1NTU0gZGQsIHl5eXlcIixcbiAgICB9O1xuXG4gICAgLyoqIENvbnZlcnQgYW4gYXJiaXRyYXJ5IHZhbHVlIGludG8gYSByZWFzb25hYmxlLCBNYXJrZG93bi1mcmllbmRseSBzdHJpbmcgaWYgcG9zc2libGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKFxuICAgICAgICBmaWVsZDogYW55LFxuICAgICAgICBzZXR0aW5nOiBUb1N0cmluZ1NldHRpbmdzID0gREVGQVVMVF9UT19TVFJJTkcsXG4gICAgICAgIHJlY3Vyc2l2ZTogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHdyYXBwZWQgPSB3cmFwVmFsdWUoZmllbGQpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBzZXR0aW5nLm51bGxSZXByZXNlbnRhdGlvbjtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZy5udWxsUmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiICsgd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIjxmdW5jdGlvbj5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChyZWN1cnNpdmUpIHJlc3VsdCArPSBcIltcIjtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gd3JhcHBlZC52YWx1ZS5tYXAoKGYpID0+IHRvU3RyaW5nKGYsIHNldHRpbmcsIHRydWUpKS5qb2luKFwiLCBcIik7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZSkgcmVzdWx0ICs9IFwiXVwiO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgXCJ7IFwiICtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMod3JhcHBlZC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGUpID0+IGVbMF0gKyBcIjogXCIgKyB0b1N0cmluZyhlWzFdLCBzZXR0aW5nLCB0cnVlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIiB9XCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyTWluaW1hbERhdGUod3JhcHBlZC52YWx1ZSwgc2V0dGluZy5kYXRlRm9ybWF0LCBzZXR0aW5nLmRhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJNaW5pbWFsRHVyYXRpb24od3JhcHBlZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogV3JhcCBhIGxpdGVyYWwgdmFsdWUgc28geW91IGNhbiBzd2l0Y2ggb24gaXQgZWFzaWx5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB3cmFwVmFsdWUodmFsOiBMaXRlcmFsKTogV3JhcHBlZExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNOdWxsKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVsbFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKHZhbCkpIHJldHVybiB7IHR5cGU6IFwibnVtYmVyXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJzdHJpbmdcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW4odmFsKSkgcmV0dXJuIHsgdHlwZTogXCJib29sZWFuXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEdXJhdGlvbih2YWwpKSByZXR1cm4geyB0eXBlOiBcImR1cmF0aW9uXCIsIHZhbHVlOiB2YWwgfTtcbiAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZGF0ZVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsKSkgcmV0dXJuIHsgdHlwZTogXCJhcnJheVwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgaWYgKGlzTGluayh2YWwpKSByZXR1cm4geyB0eXBlOiBcImxpbmtcIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHZhbCkpIHJldHVybiB7IHR5cGU6IFwiZnVuY3Rpb25cIiwgdmFsdWU6IHZhbCB9O1xuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZTogdmFsIH07XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgbWFwIGNvbXBsZXggb2JqZWN0cyBhdCB0aGUgbGVhdmVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXBMZWF2ZXModmFsOiBMaXRlcmFsLCBmdW5jOiAodDogTGl0ZXJhbCkgPT4gTGl0ZXJhbCk6IExpdGVyYWwge1xuICAgICAgICBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdDogRGF0YU9iamVjdCA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHJlc3VsdFtrZXldID0gbWFwTGVhdmVzKHZhbHVlLCBmdW5jKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBMaXRlcmFsW10gPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbCkgcmVzdWx0LnB1c2gobWFwTGVhdmVzKHZhbHVlLCBmdW5jKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0d28gYXJiaXRyYXJ5IGxpdGVyYWxzIGFyZSBlcXVhbC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZXF1YWxzKGZpcnN0OiBMaXRlcmFsIHwgdW5kZWZpbmVkLCBzZWNvbmQ6IExpdGVyYWwgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmUoZmlyc3QsIHNlY29uZCkgPT0gMDtcbiAgICB9XG5cbiAgICAvKiogQ29tcGFyZSB0d28gYXJiaXRyYXJ5IEphdmFTY3JpcHQgdmFsdWVzLiBQcm9kdWNlcyBhIHRvdGFsIG9yZGVyaW5nIG92ZXIgQU5ZIHBvc3NpYmxlIGRhdGFjb3JlIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKFxuICAgICAgICB2YWwxOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICB2YWwyOiBMaXRlcmFsIHwgdW5kZWZpbmVkLFxuICAgICAgICBsaW5rTm9ybWFsaXplcj86IChsaW5rOiBzdHJpbmcpID0+IHN0cmluZ1xuICAgICk6IG51bWJlciB7XG4gICAgICAgIC8vIFJlZmVyZW5jZSBlcXVhbGl0eSAtIHNob3J0IGNpcmN1aXQuXG4gICAgICAgIGlmICh2YWwxID09PSB2YWwyKSByZXR1cm4gMDtcblxuICAgICAgICAvLyBIYW5kbGUgdW5kZWZpbmVkL251bGxzIGZpcnN0LlxuICAgICAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkKSB2YWwxID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCkgdmFsMiA9IG51bGw7XG4gICAgICAgIGlmICh2YWwxID09PSBudWxsICYmIHZhbDIgPT09IG51bGwpIHJldHVybiAwO1xuICAgICAgICBlbHNlIGlmICh2YWwxID09PSBudWxsKSByZXR1cm4gLTE7XG4gICAgICAgIGVsc2UgaWYgKHZhbDIgPT09IG51bGwpIHJldHVybiAxO1xuXG4gICAgICAgIC8vIEEgbm9uLW51bGwgdmFsdWUgbm93IHdoaWNoIHdlIGNhbiB3cmFwICYgY29tcGFyZSBvbi5cbiAgICAgICAgbGV0IHdyYXAxID0gd3JhcFZhbHVlKHZhbDEpO1xuICAgICAgICBsZXQgd3JhcDIgPSB3cmFwVmFsdWUodmFsMik7XG5cbiAgICAgICAgaWYgKHdyYXAxID09PSB1bmRlZmluZWQgJiYgd3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDA7XG4gICAgICAgIGVsc2UgaWYgKHdyYXAxID09PSB1bmRlZmluZWQpIHJldHVybiAtMTtcbiAgICAgICAgZWxzZSBpZiAod3JhcDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDE7XG5cbiAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBvbiBkaWZmZXJlbnQgdHlwZXMgb3Igb24gcmVmZXJlbmNlIGVxdWFsaXR5LlxuICAgICAgICBpZiAod3JhcDEudHlwZSAhPSB3cmFwMi50eXBlKSByZXR1cm4gd3JhcDEudHlwZS5sb2NhbGVDb21wYXJlKHdyYXAyLnR5cGUpO1xuICAgICAgICBpZiAod3JhcDEudmFsdWUgPT09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXAxLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUubG9jYWxlQ29tcGFyZSh3cmFwMi52YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIGlmICh3cmFwMS52YWx1ZSA8ICh3cmFwMi52YWx1ZSBhcyBudW1iZXIpKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod3JhcDEudmFsdWUgPT0gKHdyYXAyLnZhbHVlIGFzIG51bWJlcikpIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgaWYgKHdyYXAxLnZhbHVlID09IHdyYXAyLnZhbHVlKSByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiB3cmFwMS52YWx1ZSA/IDEgOiAtMTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsxID0gd3JhcDEudmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmsyID0gd3JhcDIudmFsdWUgYXMgTGluaztcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplID0gbGlua05vcm1hbGl6ZXIgPz8gKCh4OiBzdHJpbmcpID0+IHgpO1xuXG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY29tcGFyZSBieSBmaWxlIG5hbWUgb3IgZGlzcGxheSwgc2luY2UgdGhhdCB3b3VsZCBicmVhayBsaW5rIGVxdWFsaXR5LiBDb21wYXJlIGJ5IHBhdGguXG4gICAgICAgICAgICAgICAgbGV0IHBhdGhDb21wYXJlID0gbm9ybWFsaXplKGxpbmsxLnBhdGgpLmxvY2FsZUNvbXBhcmUobm9ybWFsaXplKGxpbmsyLnBhdGgpKTtcbiAgICAgICAgICAgICAgICBpZiAocGF0aENvbXBhcmUgIT0gMCkgcmV0dXJuIHBhdGhDb21wYXJlO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlbiBjb21wYXJlIGJ5IHR5cGUuXG4gICAgICAgICAgICAgICAgbGV0IHR5cGVDb21wYXJlID0gbGluazEudHlwZS5sb2NhbGVDb21wYXJlKGxpbmsyLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tcGFyZSAhPSAwKSByZXR1cm4gdHlwZUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGVuIGNvbXBhcmUgYnkgc3VicGF0aCBleGlzdGVuY2UuXG4gICAgICAgICAgICAgICAgaWYgKGxpbmsxLnN1YnBhdGggJiYgIWxpbmsyLnN1YnBhdGgpIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIGlmICghbGluazEuc3VicGF0aCAmJiBsaW5rMi5zdWJwYXRoKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rMS5zdWJwYXRoICYmICFsaW5rMi5zdWJwYXRoKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIC8vIFNpbmNlIGJvdGggaGF2ZSBhIHN1YnBhdGgsIGNvbXBhcmUgYnkgc3VicGF0aC5cbiAgICAgICAgICAgICAgICByZXR1cm4gKGxpbmsxLnN1YnBhdGggPz8gXCJcIikubG9jYWxlQ29tcGFyZShsaW5rMi5zdWJwYXRoID8/IFwiXCIpO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcDEudmFsdWUgPCAod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgOiB3cmFwMS52YWx1ZS5lcXVhbHMod3JhcDIudmFsdWUgYXMgRHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgICAgICAgICBsZXQgZjEgPSB3cmFwMS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgZjIgPSB3cmFwMi52YWx1ZSBhcyBhbnlbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgTWF0aC5taW4oZjEubGVuZ3RoLCBmMi5sZW5ndGgpOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wID0gY29tcGFyZShmMVtpbmRleF0sIGYyW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wICE9IDApIHJldHVybiBjb21wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZjEubGVuZ3RoIC0gZjIubGVuZ3RoO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGxldCBvMSA9IHdyYXAxLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBvMiA9IHdyYXAyLnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGsxID0gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvMSkpO1xuICAgICAgICAgICAgICAgIGxldCBrMiA9IEFycmF5LmZyb20oT2JqZWN0LmtleXMobzIpKTtcbiAgICAgICAgICAgICAgICBrMS5zb3J0KCk7XG4gICAgICAgICAgICAgICAgazIuc29ydCgpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGtleUNvbXBhcmUgPSBjb21wYXJlKGsxLCBrMik7XG4gICAgICAgICAgICAgICAgaWYgKGtleUNvbXBhcmUgIT0gMCkgcmV0dXJuIGtleUNvbXBhcmU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgazEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXAgPSBjb21wYXJlKG8xW2tleV0sIG8yW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKSByZXR1cm4gY29tcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgZGF0YWNvcmUgdHlwZSBmb3IgYW4gYXJiaXRyYXJ5IHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB0eXBlT2YodmFsOiBhbnkpOiBMaXRlcmFsVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3cmFwVmFsdWUodmFsKT8udHlwZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBcInRydXRoeVwiIChpLmUuLCBpcyBub24tbnVsbCBhbmQgaGFzIGRhdGEgaW4gaXQpLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1RydXRoeShmaWVsZDogTGl0ZXJhbCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgd3JhcHBlZCA9IHdyYXBWYWx1ZShmaWVsZCk7XG4gICAgICAgIGlmICghd3JhcHBlZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhd3JhcHBlZC52YWx1ZS5wYXRoO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS50b01pbGxpcygpICE9IDA7XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5hcyhcInNlY29uZHNcIikgIT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMod3JhcHBlZC52YWx1ZSkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERlZXAgY29weSBhIGZpZWxkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBkZWVwQ29weTxUIGV4dGVuZHMgTGl0ZXJhbD4oZmllbGQ6IFQpOiBUIHtcbiAgICAgICAgaWYgKGZpZWxkID09PSBudWxsIHx8IGZpZWxkID09PSB1bmRlZmluZWQpIHJldHVybiBmaWVsZDtcblxuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNBcnJheShmaWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoW10gYXMgTGl0ZXJhbFtdKS5jb25jYXQoZmllbGQubWFwKCh2KSA9PiBkZWVwQ29weSh2KSkpIGFzIFQ7XG4gICAgICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNPYmplY3QoZmllbGQpKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkgcmVzdWx0W2tleV0gPSBkZWVwQ29weSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIFQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlci4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsOiBhbnkpOiB2YWwgaXMgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJudW1iZXJcIjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZSh2YWw6IGFueSk6IHZhbCBpcyBEYXRlVGltZSB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEYXRlVGltZTtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpcyBhIGR1cmF0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0R1cmF0aW9uKHZhbDogYW55KTogdmFsIGlzIER1cmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc051bGwodmFsOiBhbnkpOiB2YWwgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiB2YWwgaXMgYW55W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGlzIGEgYm9vbGVhbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbDogYW55KTogdmFsIGlzIGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCI7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZSBpZiB0aGUgdmFsdWUgaXMgYSBsaW5rLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0xpbmsodmFsOiBhbnkpOiB2YWwgaXMgTGluayB7XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBMaW5rO1xuICAgIH1cblxuICAgIC8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIG9iamVjdCAoYW5kIG5vdCBhbnkgb3RoZXIgZGF0YWNvcmUtcmVjb2duaXplZCBvYmplY3QtbGlrZSB0eXBlKS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsOiBhbnkpOiB2YWwgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB2YWwgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAhaXNBcnJheSh2YWwpICYmXG4gICAgICAgICAgICAhaXNEdXJhdGlvbih2YWwpICYmXG4gICAgICAgICAgICAhaXNEYXRlKHZhbCkgJiZcbiAgICAgICAgICAgICFpc0xpbmsodmFsKSAmJlxuICAgICAgICAgICAgIWlzTnVsbCh2YWwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgamF2YXNjcmlwdCBmdW5jdGlvbi4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWw6IGFueSk6IHZhbCBpcyBGdW5jdGlvbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09IFwiZnVuY3Rpb25cIjtcbiAgICB9XG59XG5cbi8qKiBBIGdyb3VwaW5nIG9uIGEgdHlwZSB3aGljaCBzdXBwb3J0cyByZWN1cnNpdmVseS1uZXN0ZWQgZ3JvdXBzLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgdHlwZSBHcm91cEVsZW1lbnQ8VD4gPSB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfTtcbi8qKlxuICogQSBncm91cGluZywgd2hpY2ggY2FuIGJlIGVpdGhlcjpcbiAqIC0gYW4gYXJyYXkgb2YgZWxlbWVudHMgb2YgdHlwZSBgVGAsIG9yXG4gKiAtIGFuIGFycmF5IG9mIHtAbGluayBHcm91cGVsZW1lbnR9c1xuICpcbiAqIEBncm91cCBDb21tb24gVHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgR3JvdXBpbmc8VD4gPSBUW10gfCBHcm91cEVsZW1lbnQ8VD5bXTtcbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgbmFtZXNwYWNlIEdyb3VwaW5ncyB7XG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGdyb3VwIGVudHJ5IGlzIGEgc3RhbmRhbG9uZSB2YWx1ZSwgb3IgYSBncm91cGluZyBvZiBzdWItZW50cmllcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50R3JvdXA8VD4oZW50cnk6IGFueSk6IGVudHJ5IGlzIEdyb3VwRWxlbWVudDxUPiB7XG4gICAgICAgIHJldHVybiBMaXRlcmFscy5pc09iamVjdChlbnRyeSkgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PSAyICYmIFwia2V5XCIgaW4gZW50cnkgJiYgXCJyb3dzXCIgaW4gZW50cnk7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgZ3JvdXBpbmcgYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzR3JvdXBpbmc8VD4oZW50cnk6IEdyb3VwaW5nPFQ+KTogZW50cnkgaXMgR3JvdXBFbGVtZW50PFQ+W10ge1xuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVudHJ5KSBpZiAoIWlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGFycmF5IGlzIGEgbGVhZiBhbmQgaGFzIG5vIHN1Ymdyb3VwaW5ncy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNMZWFmPFQ+KGVudHJ5OiBHcm91cGluZzxUPik6IGVudHJ5IGlzIFRbXSB7XG4gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZW50cnkpIGlmIChpc0VsZW1lbnRHcm91cChlbGVtZW50KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBDb3VudCB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgcmVjdXJzaXZlIGdyb3VwaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihlbGVtZW50czogR3JvdXBpbmc8VD4gfCBHcm91cEVsZW1lbnQ8VD4pOiBudW1iZXIge1xuICAgICAgICBpZiAoaXNFbGVtZW50R3JvdXAoZWxlbWVudHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gY291bnQoZWxlbWVudHMucm93cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNHcm91cGluZyhlbGVtZW50cykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgc3ViZ3JvdXAgb2YgZWxlbWVudHMpIHJlc3VsdCArPSBjb3VudChzdWJncm91cC5yb3dzKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlY3Vyc2l2ZWx5IHNsaWNlIGEgZ3JvdXBpbmcsIHByZXNlcnZpbmcgdGhlIGdyb3VwIHN0cnVjdHVyZSB0aGF0IGNvbnRhaW5zIGVsZW1lbnRzIFtzdGFydC4uLmVuZCkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNsaWNlPFQ+KGVsZW1lbnRzOiBHcm91cGluZzxUPiwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBHcm91cGluZzxUPiB7XG4gICAgICAgIGlmIChlbmQgPD0gc3RhcnQpIHJldHVybiBbXTtcbiAgICAgICAgaWYgKGlzTGVhZihlbGVtZW50cykpIHJldHVybiBlbGVtZW50cy5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCBncm91cCB0aGF0IGNvbnRhaW5zIGluZGV4IGBzdGFydGAuXG4gICAgICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgICAgICBzZWVuID0gMDtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gKyBjb3VudChlbGVtZW50c1tpbmRleF0pIDw9IHN0YXJ0KSB7XG4gICAgICAgICAgICBzZWVuICs9IGNvdW50KGVsZW1lbnRzW2luZGV4XSk7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3RhcnQgd2FzIGdyZWF0ZXIgdGhhbiB0aGUgZW50aXJlIGxlbmd0aCBvZiB0aGUgZ3JvdXBpbmdzLlxuICAgICAgICBpZiAoaW5kZXggPj0gZWxlbWVudHMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiB7IGtleTogTGl0ZXJhbDsgcm93czogR3JvdXBpbmc8VD4gfVtdID0gW107XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGVsZW1lbnRzLmxlbmd0aCAmJiBzZWVuIDwgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGVsZW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU2l6ZSA9IGNvdW50KGdyb3VwKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU3RhcnQgPSBNYXRoLm1heChzZWVuLCBzdGFydCk7XG4gICAgICAgICAgICBjb25zdCBncm91cEVuZCA9IE1hdGgubWluKGdyb3VwU2l6ZSArIHNlZW4sIGVuZCk7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXk6IGdyb3VwLmtleSxcbiAgICAgICAgICAgICAgICByb3dzOiBzbGljZShncm91cC5yb3dzLCBncm91cFN0YXJ0IC0gc2VlbiwgZ3JvdXBFbmQgLSBzZWVuKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZWVuICs9IGdyb3VwU2l6ZTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbi8qKlxuICogIEZ1bmN0aW9uYWwgcmV0dXJuIHR5cGUgZm9yIGVycm9yIGhhbmRsaW5nLlxuICogQGhpZGRlblxuICogKi9cbmV4cG9ydCBjbGFzcyBTdWNjZXNzPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogdHJ1ZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzZnVsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwPFU+KGY6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKGYodGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbGF0TWFwPFU+KGY6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gZih0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIFJlc3VsdDxULCBVPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmltYXA8VDIsIEUyPihzdWNjOiAoYTogVCkgPT4gVDIsIF9mYWlsOiAoYjogRSkgPT4gRTIpOiBSZXN1bHQ8VDIsIEUyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcChzdWNjKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZShfdmFsdWU6IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNhc3Q8VT4oKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICAgIH1cblxuICAgIHB1YmxpYyBvckVsc2VUaHJvdyhfbWVzc2FnZT86IChlOiBFKSA9PiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxufVxuXG4vKiogRnVuY3Rpb25hbCByZXR1cm4gdHlwZSBmb3IgZXJyb3IgaGFuZGxpbmcuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWlsdXJlPFQsIEU+IHtcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bDogZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVycm9yOiBFKSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc2Z1bCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXA8VT4oX2Y6IChhOiBUKSA9PiBVKTogUmVzdWx0PFUsIEU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55IGFzIEZhaWx1cmU8VSwgRT47XG4gICAgfVxuXG4gICAgcHVibGljIGZsYXRNYXA8VT4oX2Y6IChhOiBUKSA9PiBSZXN1bHQ8VSwgRT4pOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnkgYXMgRmFpbHVyZTxVLCBFPjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFwRXJyPFU+KGY6IChlOiBFKSA9PiBVKTogUmVzdWx0PFQsIFU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGYodGhpcy5lcnJvcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiaW1hcDxUMiwgRTI+KF9zdWNjOiAoYTogVCkgPT4gVDIsIGZhaWw6IChiOiBFKSA9PiBFMik6IFJlc3VsdDxUMiwgRTI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwRXJyKGZhaWwpIGFzIGFueTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3JFbHNlKHZhbHVlOiBUKTogVCB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdDxVPigpOiBSZXN1bHQ8VSwgRT4ge1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG9yRWxzZVRocm93KG1lc3NhZ2U/OiAoZTogRSkgPT4gc3RyaW5nKTogVCB7XG4gICAgICAgIGlmIChtZXNzYWdlKSB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSh0aGlzLmVycm9yKSk7XG4gICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKFwiXCIgKyB0aGlzLmVycm9yKTtcbiAgICB9XG59XG5cbi8qKlxuICogQSBtb25hZGljIHJlc3VsdCB0eXBlIHdoaWNoIHN0b3JlcyBlaXRoZXIgXCJzdWNjZXNzXCIgb3IgXCJmYWlsdXJlXCIuIEFuIGFsdGVybmF0aXZlIGhhbmRsaW5nIGV4Y2VwdGlvbmFsIGJlaGF2aW9yXG4gKiBieSB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIGluc3RlYWQgb2YgYW4gZXhjZXB0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSZXN1bHQ8VCwgRT4gPSBTdWNjZXNzPFQsIEU+IHwgRmFpbHVyZTxULCBFPjtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBNb25hZGljICdSZXN1bHQnIHR5cGUgd2hpY2ggZW5jYXBzdWxhdGVzIHdoZXRoZXIgYSBwcm9jZWR1cmUgc3VjY2VlZGVkIG9yIGZhaWxlZCwgYXMgd2VsbCBhcyBpdCdzIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHQge1xuICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgc3VjY2VzcyByZXN1bHQgd3JhcHBpbmcgdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzdWNjZXNzPFQsIEU+KHZhbHVlOiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWNjZXNzKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGZhaWx1cmUgdmFsdWUgd3JhcHBpbmcgdGhlIGdpdmVuIGVycm9yLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBmYWlsdXJlPFQsIEU+KGVycm9yOiBFKTogUmVzdWx0PFQsIEU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlKGVycm9yKTtcbiAgICB9XG5cbiAgICAvKiogSm9pbiB0d28gcmVzdWx0cyB3aXRoIGEgYmktZnVuY3Rpb24gYW5kIHJldHVybiBhIG5ldyByZXN1bHQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZsYXRNYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IFJlc3VsdDxPLCBFPlxuICAgICk6IFJlc3VsdDxPLCBFPiB7XG4gICAgICAgIGlmIChmaXJzdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBpZiAoc2Vjb25kLnN1Y2Nlc3NmdWwpIHJldHVybiBmKGZpcnN0LnZhbHVlLCBzZWNvbmQudmFsdWUpO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gZmFpbHVyZShzZWNvbmQuZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoZmlyc3QuZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEpvaW4gdHdvIHJlc3VsdHMgd2l0aCBhIGJpLWZ1bmN0aW9uIGFuZCByZXR1cm4gYSBuZXcgcmVzdWx0LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBtYXAyPFQxLCBUMiwgTywgRT4oXG4gICAgICAgIGZpcnN0OiBSZXN1bHQ8VDEsIEU+LFxuICAgICAgICBzZWNvbmQ6IFJlc3VsdDxUMiwgRT4sXG4gICAgICAgIGY6IChhOiBUMSwgYjogVDIpID0+IE9cbiAgICApOiBSZXN1bHQ8TywgRT4ge1xuICAgICAgICByZXR1cm4gZmxhdE1hcDIoZmlyc3QsIHNlY29uZCwgKGEsIGIpID0+IHN1Y2Nlc3MoZihhLCBiKSkpO1xuICAgIH1cblxuICAgIC8qKiBNYXAgYSBmYWlsYWJsZSBmdW5jdGlvbiBvdmVyIGFsbCBlbGVtZW50cyBpbiB0aGUgbGlzdCwgcmV0dXJuaW5nIGVhcmx5IG9uIGZhaWx1cmUuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG1hcEFsbDxULCBPLCBFPihpbnB1dDogSXRlcmFibGU8VD4sIGZ1bmM6IChpbnB1dDogVCkgPT4gUmVzdWx0PE8sIEU+KTogUmVzdWx0PE9bXSwgRT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IE9bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgaW5wdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGZ1bmMoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIW91dHB1dC5zdWNjZXNzZnVsKSByZXR1cm4gb3V0cHV0LmNhc3QoKTtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2gob3V0cHV0LnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBDYXRjaCBhbnkgZXJyb3JzIGluIGEgY2FsbCwgcmV0dXJuaW5nIGEgcmVzdWx0IGluc3RlYWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHRyeWluZzxUPihjYWxsOiAoKSA9PiBUKTogUmVzdWx0PFQsIEVycm9yPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoY2FsbCgpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ29udmVydCBhIHByb21pc2Ugd2hpY2ggbWF5IHRocm93IGludG8gYSBwcm9taXNlIHdoaWNoIHJldHVybnMgYSByZXN1bHQgb2YgdGhlIHN1Y2Nlc3NmdWwgdmFsdWUgb3IgYW4gZXJyb3IuICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jPFQ+KHByb21pc2U6IFByb21pc2U8VD4pOiBQcm9taXNlPFJlc3VsdDxULCBFcnJvcj4+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcyhhd2FpdCBwcm9taXNlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcblxuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG5leHBvcnQgdHlwZSBFdmVyeXRoaW5nID0geyB0eXBlOiBcImV2ZXJ5dGhpbmdcIiB9O1xuLyoqIFN0YXRpYyBzZXQgZWxlbWVudCB3aGljaCBtYXRjaGVzIG5vdGhpbmcuICovXG5leHBvcnQgdHlwZSBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuLyoqIFNldCB3aGljaCBtYXRjaGVzIHRoZSBuZWdhdGlvbiBvZiBhIHNldC4gKi9cbmV4cG9ydCB0eXBlIE5lZ2F0ZWQ8VD4gPSB7IHR5cGU6IFwibmVnYXRlZFwiOyB2YWx1ZTogU2V0PFQ+IH07XG4vKiogU2V0IHdoaWNoIG1hdGNoZXMgYW4gYWN0dWFsIHNldCBvZiB2YWx1ZXMuICAqL1xuZXhwb3J0IHR5cGUgQXRvbTxUPiA9IHsgdHlwZTogXCJhdG9tXCI7IHZhbHVlOiBTZXQ8VD4gfTtcblxuLyoqIEFic3RyYWN0IGZpbHRlciB0eXBlIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlc3VsdHMgb2YgYXBwbHlpbmcgZmlsdGVyIG9wZXJhdGlvbnMgdG8gdGhlIGRhdGEgc3RvcmUuICovXG5leHBvcnQgdHlwZSBGaWx0ZXI8VD4gPSBFdmVyeXRoaW5nIHwgTm90aGluZyB8IEF0b208VD4gfCBOZWdhdGVkPFQ+O1xuXG4vKiogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVmZmljaWVudGx5IG9wZXJhdGluZyBvbiBmaWx0ZXJzLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGaWx0ZXJzIHtcbiAgICAvKiogU3RhdGljIGZpbHRlciB3aGljaCBtYXRjaGVzIGV2ZXJ5dGhpbmcuICovXG4gICAgZXhwb3J0IGNvbnN0IEVWRVJZVEhJTkc6IEV2ZXJ5dGhpbmcgPSB7IHR5cGU6IFwiZXZlcnl0aGluZ1wiIH07XG4gICAgLyoqIFN0YXRpYyBmaWx0ZXIgd2hpY2ggbWF0Y2hlcyBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBjb25zdCBOT1RISU5HOiBOb3RoaW5nID0geyB0eXBlOiBcIm5vdGhpbmdcIiB9O1xuICAgIC8qKiBFbXB0eSBzZXQgY29uc3RhbnQuICovXG4gICAgZXhwb3J0IGNvbnN0IEVNUFRZX1NFVDogU2V0PGFueT4gPSBuZXcgU2V0KCk7XG5cbiAgICAvKiogQ29uc3RydWN0IGEgbmV3IGF0b20gZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBhdG9tPFQ+KHNldDogU2V0PFQ+KTogRmlsdGVyPFQ+IHtcbiAgICAgICAgaWYgKHNldC5zaXplID09IDApIHJldHVybiBOT1RISU5HO1xuXG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiYXRvbVwiLCB2YWx1ZTogc2V0IH07XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIGZpbHRlciB0aGF0IG1hdGNoZXMgZXZlcnl0aGluZyBvciBub3RoaW5nLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBjb25zdGFudDxUPih2YWx1ZTogYm9vbGVhbik6IEZpbHRlcjxUPiB7XG4gICAgICAgIGlmICh2YWx1ZSkgcmV0dXJuIEVWRVJZVEhJTkc7XG4gICAgICAgIGVsc2UgcmV0dXJuIE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5ldyBhdG9tIGZpbHRlciB3aGljaCBpcyBOT1RISU5HIGlmIHNldCBpcyB1bmRlZmluZWQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG51bGxhYmxlQXRvbTxUPihzZXQ6IFNldDxUPiB8IHVuZGVmaW5lZCk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBzZXQgIT09IHVuZGVmaW5lZCA/IGF0b20oc2V0KSA6IE5PVEhJTkc7XG4gICAgfVxuXG4gICAgLyoqIENvbnN0cnVjdCBhIG5lZ2F0ZWQgYXRvbSBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG5lZ2F0ZWQ8VD4oc2V0OiBTZXQ8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBpZiAoc2V0LnNpemUgPT0gMCkgcmV0dXJuIEVWRVJZVEhJTkc7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJuZWdhdGVkXCIsIHZhbHVlOiBzZXQgfTtcbiAgICB9XG5cbiAgICAvKiogUHJvZHVjZXMgdGhlIG5lZ2F0aW9uIG9mIGEgZmlsdGVyLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBuZWdhdGU8VD4oZmlsdGVyOiBGaWx0ZXI8VD4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBOT1RISU5HO1xuICAgICAgICAgICAgY2FzZSBcIm5vdGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRVZFUllUSElORztcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0ZWQoZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0b20oZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIGZpbHRlciBpcyBkZWZpbml0aXZlbHkgY3VycmVudGx5IGVtcHR5LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBlbXB0eTxUPihmaWx0ZXI6IEZpbHRlcjxUPik6IGJvb2xlYW4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiZXZlcnl0aGluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBcImF0b21cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyLnZhbHVlLnNpemUgPT0gMDtcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVzb2x2ZSBhIHRvcC1sZXZlbCBmaWx0ZXIgd2l0aCB0aGUgc2V0IG9mIGFsbCBhdmFpbGFibGUgb2JqZWN0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZTxUPihmaWx0ZXI6IEZpbHRlcjxUPiwgZXZlcnl0aGluZzogU2V0PFQ+KTogU2V0PFQ+IHtcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImV2ZXJ5dGhpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlcnl0aGluZztcbiAgICAgICAgICAgIGNhc2UgXCJub3RoaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZX1NFVDtcbiAgICAgICAgICAgIGNhc2UgXCJhdG9tXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNldEludGVyc2VjdE5lZ2F0aW9uKGV2ZXJ5dGhpbmcsIGZpbHRlci52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGFuIGl0ZXJhYmxlIG9mIGZpbHRlcnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdDxUPihlbGVtZW50czogSXRlcmFibGU8RmlsdGVyPFQ+Pik6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5SW50ZXJzZWN0KGVsZW1lbnRzLCAoeCkgPT4geCk7XG4gICAgfVxuXG4gICAgLyoqIEludGVyc2VjdCBmaWx0ZXJzIGxhemlseSwgc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgaW50ZXJzZWN0aW9uIHdvdWxkIHByb2R1Y2UgTk9USElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUludGVyc2VjdDxJLCBUPihcbiAgICAgICAgZWxlbWVudHM6IEl0ZXJhYmxlPEk+LFxuICAgICAgICBwcm9kdWNlOiAoaW5wdXQ6IEkpID0+IEZpbHRlcjxUPiB8IHVuZGVmaW5lZFxuICAgICk6IEZpbHRlcjxUPiB7XG4gICAgICAgIHJldHVybiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJzZWN0IGZpbHRlcnMgbGF6aWx5LCBzaG9ydC1jaXJjdWl0aW5nIGlmIHRoZSBpbnRlcnNlY3Rpb24gd291bGQgcHJvZHVjZSBOT1RISU5HLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsYXp5RmFpbGFibGVJbnRlcnNlY3Rpb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVtcHR5IGZpbHRlcnMgd2lsbCBwcm9kdWNlIGFuIGVtcHR5IGludGVyc2VjdGlvbi5cbiAgICAgICAgICAgIGlmIChlbXB0eShmaWx0ZXIpKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoTk9USElORyk7XG4gICAgICAgICAgICAvLyBFVkVSWVRISU5HIGZpbHRlcnMgYXJlIHJlZHVuZGFudCBpbiBBTkRzLCBza2lwIHRoZW0uXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSBjb250aW51ZTtcblxuICAgICAgICAgICAgLy8gV2lsbCBvbmx5IGJlIGxlZnQgd2l0aCBhdG9tcyBvciBuZWdhdGlvbnMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gXCJhdG9tXCIpIGF0b21zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGZpbHRlci50eXBlID09IFwibmVnYXRlZFwiKSBuZWdhdGlvbnMucHVzaChmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2Ugc3RhcnQgd2l0aCBzb21ldGhpbmcgb2YgdGhlIGZvcm0gYSAmJiBiICYmICFjICYmICFkLlxuICAgICAgICAvLyBJZiBubyB0ZXJtcywgdGhlbiBldmVyeXRoaW5nIHdhcyBFVkVSWVRISU5HIHNvIHJldHVybiB0aGF0LlxuICAgICAgICAvLyBJZiBvbmx5IGF0b21zLCBqdXN0IGludGVyc2VjdCB0aGVtIChhICYmIGIpLlxuICAgICAgICAvLyBJZiBvbmx5IG5lZ2F0aW9ucywgdGhlbiByZXdyaXRlICFjICYmICFkID0+ICEoYyB8fCBkKSBhbmQgcmV0dXJuIG5lZ2F0ZWQoYyB8fCBkKS5cbiAgICAgICAgLy8gSWYgYm90aCwgY29tcHV0ZSB4ID0gKGEgJiYgYikgYW5kIHkgPSAoYyB8fCBkKSwgYW5kIHRoZW4gY29tcHV0ZSB4ICYmICF5LlxuXG4gICAgICAgIGlmIChhdG9tcy5sZW5ndGggPT0gMCAmJiBuZWdhdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhFVkVSWVRISU5HKTtcbiAgICAgICAgfSBlbHNlIGlmIChhdG9tcy5sZW5ndGggPiAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGF0b20oc2V0SW50ZXJzZWN0KGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRVbmlvbihuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldEludGVyc2VjdE5lZ2F0aW9uKHNldEludGVyc2VjdChhdG9tcyksIHNldFVuaW9uKG5lZ2F0aW9ucykpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycywgcHJvZHVjaW5nIGEgc2luZ2xlIHJlc3VsdCBmaWx0ZXIuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuaW9uPFQ+KGZpbHRlcnM6IEl0ZXJhYmxlPEZpbHRlcjxUPj4pOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eVVuaW9uKGZpbHRlcnMsICh4KSA9PiB4KTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eVVuaW9uPEksIFQ+KGVsZW1lbnRzOiBJdGVyYWJsZTxJPiwgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBGaWx0ZXI8VD4gfCB1bmRlZmluZWQpOiBGaWx0ZXI8VD4ge1xuICAgICAgICByZXR1cm4gbGF6eUZhaWxhYmxlVW5pb24oZWxlbWVudHMsICh4KSA9PiBSZXN1bHQuc3VjY2Vzcyhwcm9kdWNlKHgpKSkub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogVW5pb24gZmlsdGVycyBsYXppbHksIHNob3J0LWNpcmN1aXRpbmcgaWYgdGhlIHVuaW9uIHdvdWxkIHByb2R1Y2UgRVZFUllUSElORy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbGF6eUZhaWxhYmxlVW5pb248SSwgVCwgRT4oXG4gICAgICAgIGVsZW1lbnRzOiBJdGVyYWJsZTxJPixcbiAgICAgICAgcHJvZHVjZTogKGlucHV0OiBJKSA9PiBSZXN1bHQ8RmlsdGVyPFQ+IHwgdW5kZWZpbmVkLCBFPlxuICAgICk6IFJlc3VsdDxGaWx0ZXI8VD4sIEU+IHtcbiAgICAgICAgY29uc3QgYXRvbXM6IFNldDxUPltdID0gW107XG4gICAgICAgIGNvbnN0IG5lZ2F0aW9uczogU2V0PFQ+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVGaWx0ZXIgPSBwcm9kdWNlKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKCFtYXliZUZpbHRlci5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVGaWx0ZXIuY2FzdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBtYXliZUZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIEVWRVJZVEhJTkcgZmlsdGVycyB3aWxsIHByb2R1Y2UgZXZlcnl0aGluZyBhbHdheXMuXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRVZFUllUSElORyk7XG4gICAgICAgICAgICAvLyBFbXB0eSBmaWx0ZXJzIGFyZSByZWR1bmRhbnQuXG4gICAgICAgICAgICBpZiAoZW1wdHkoZmlsdGVyKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIC8vIFdpbGwgb25seSBiZSBsZWZ0IHdpdGggYXRvbXMgb3IgbmVnYXRpb25zLlxuICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlID09IFwiYXRvbVwiKSBhdG9tcy5wdXNoKGZpbHRlci52YWx1ZSk7XG4gICAgICAgICAgICBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PSBcIm5lZ2F0ZWRcIikgbmVnYXRpb25zLnB1c2goZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9yIGlzIGEgYml0IGhhcmRlciB0aGFuIEFORCBzaW5jZSB5b3UgY2FuIGVuZCB1cCB3aXRoIHNjZW5hcmlvcyBsaWtlIGEgfHwgIWIsIHdoaWNoIGFyZVxuICAgICAgICAvLyBub3QgY29tcHV0YWJsZSBkaXJlY3RseS4gSG93ZXZlciwgd2UgY2FuIGRvIGJvb2xlYW4gbG9naWMgdG8gYWx3YXlzIHByb2R1Y2UgYSBzaW5nbGVcbiAgICAgICAgLy8gc2V0LlxuICAgICAgICAvLyBJZiBub3RoaW5nID0+IG5vdGhpbmcsIG5vIG5vbi1lbXB0eSBmaWx0ZXJzLlxuICAgICAgICAvLyBJZiBhdG9tcyBidXQgbm8gbmVnYXRpb25zIChhIHx8IGIgfHwgYykgPT4gY29tcHV0ZSB1bmlvbi5cbiAgICAgICAgLy8gSWYgbmVnYXRpb25zIGJ1dCBubyBhdG9tcyAoIWEgfHwgIWIgfHwgIWMpID0+IHJld3JpdGUgYXMgIShhICYmIGIgJiYgYykuXG4gICAgICAgIC8vIElmIGJvdGg6IChhIHx8IGIgfHwgIWMgfHwgIWQpID0+IGNvbWJpbmUgZWFjaCBwYXJ0IGludG8gKGEgfHwgYikgfHwgKCFjIHx8ICFkKSA9PiAoYSB8fCBiKSB8fCAhKGMgJiYgZCkgPT4gZSB8fCAhZiA9PiAhKCFlICYmIGYpIHdoaWNoXG4gICAgICAgIC8vIGNhbiBiZSBjb21wdXRlZCB1c2luZyBpbnRlcnNlY3Rpb24gbG9naWMuXG5cbiAgICAgICAgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKE5PVEhJTkcpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA+IDAgJiYgbmVnYXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5hdG9tKHNldFVuaW9uKGF0b21zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0b21zLmxlbmd0aCA9PSAwICYmIG5lZ2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5uZWdhdGVkKHNldEludGVyc2VjdChuZWdhdGlvbnMpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobmVnYXRlZChzZXRJbnRlcnNlY3ROZWdhdGlvbihzZXRJbnRlcnNlY3QobmVnYXRpb25zKSwgc2V0VW5pb24oYXRvbXMpKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEVmZmljaWVudGx5IGNvbXB1dGUgdGhlIGludGVyc2VjdGlvbiBvZiBzZXRzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3Q8VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gU29ydCBieSBzaXplIGFuZCBjb21iaW5lIHNtYWxsZXN0IGFuZCBsYXJnZXN0IHNldCByZXBlYXRlZGx5LlxuICAgICAgICBsZXQgc29ydGVkID0gKFtdIGFzIFNldDxUPltdKS5jb25jYXQoc2V0cykuc29ydCgoYSwgYikgPT4gYS5zaXplIC0gYi5zaXplKTtcblxuICAgICAgICB3aGlsZSAoc29ydGVkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgICAgIGNvbnN0IGxhcmdlc3QgPSBzb3J0ZWQucG9wKCkhO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIHNvcnRlZFswXSkge1xuICAgICAgICAgICAgICAgIGlmIChsYXJnZXN0LmhhcyhlbGVtZW50KSkgcmVzdWx0LmFkZChlbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc29ydGVkWzBdID0gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNvcnRlZFswXTtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSB0aGUgdW5pb24gb2Ygc2V0cy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gc2V0VW5pb248VD4oc2V0czogU2V0PFQ+W10pOiBTZXQ8VD4ge1xuICAgICAgICBpZiAoc2V0cy5sZW5ndGggPT0gMCkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgZWxzZSBpZiAoc2V0cy5sZW5ndGggPT0gMSkgcmV0dXJuIHNldHNbMF07XG5cbiAgICAgICAgLy8gSSdtIG5vdCBzdXJlIGlmIHRoZXJlIGlzIGFueSB1c2VmdWwgb3B0aW1pemF0aW9uIGZvciBzZXQgdW5pb25zLCBzbyBqdXN0IGFkZCB0aGVtIGFsbCBJIGd1ZXNzLlxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGZvciAoY29uc3Qgc2V0IG9mIHNldHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBzZXQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogRWZmaWNpZW50bHkgY29tcHV0ZSBhdG9tICYmICFuZWdhdGVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcnNlY3ROZWdhdGlvbjxUPihhdG9tOiBTZXQ8VD4sIG5lZ2F0ZWQ6IFNldDxUPik6IFNldDxUPiB7XG4gICAgICAgIGlmIChhdG9tLnNpemUgPiBuZWdhdGVkLnNpemUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFdvdWxkIGJlIG5pY2UgdG8gYXZvaWQgdGhlIGNvcHksIHNpbmNlIEknbSBub3Qgc3VyZSBpdCdzIGFueSBmYXN0ZXIgd2l0aCB0aGUgY29weS5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZXQoYXRvbSk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIG5lZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IC8qIGF0b20uc2l6ZSA8IG5lZ2F0aW9uLnNpemUgKi8gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGF0b20pIHtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRlZC5oYXMoZWxlbWVudCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBGaWx0ZXJzIH0gZnJvbSBcIi4vZmlsdGVyc1wiO1xuXG4vKiogQ29tcGFyaXNvbiBvcGVyYXRvcnMgd2hpY2ggeWllbGQgdHJ1ZS9mYWxzZS4gKi9cbmV4cG9ydCB0eXBlIENvbXBhcmVPcCA9IFwiPlwiIHwgXCI+PVwiIHwgXCI8PVwiIHwgXCI8XCIgfCBcIj1cIiB8IFwiIT1cIjtcbi8qKiBBcml0aG1ldGljIG9wZXJhdG9ycyB3aGljaCB5aWVsZCBudW1iZXJzIGFuZCBvdGhlciB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBBcml0aG1ldGljT3AgPSBcIitcIiB8IFwiLVwiIHwgXCIqXCIgfCBcIi9cIiB8IFwiJVwiIHwgXCImXCIgfCBcInxcIjtcbi8qKiBJbmRleCBhIHZhbHVlIGludG8gYW5vdGhlciB2YWx1ZS4gKi9cbmV4cG9ydCB0eXBlIExvZ2ljYWxPcCA9IFwiaW5kZXhcIjtcbi8qKiBBbGwgdmFsaWQgYmluYXJ5IG9wZXJhdG9ycy4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wID0gQ29tcGFyZU9wIHwgQXJpdGhtZXRpY09wIHwgTG9naWNhbE9wO1xuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uID1cbiAgICB8IExpdGVyYWxFeHByZXNzaW9uXG4gICAgfCBWYXJpYWJsZUV4cHJlc3Npb25cbiAgICB8IExpc3RFeHByZXNzaW9uXG4gICAgfCBPYmplY3RFeHByZXNzaW9uXG4gICAgfCBCaW5hcnlPcEV4cHJlc3Npb25cbiAgICB8IEZ1bmN0aW9uRXhwcmVzc2lvblxuICAgIHwgTGFtYmRhRXhwcmVzc2lvblxuICAgIHwgTmVnYXRlZEV4cHJlc3Npb247XG5cbi8qKiBMaXRlcmFsIHJlcHJlc2VudGF0aW9uIG9mIHNvbWUgZmllbGQgdHlwZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGl0ZXJhbEV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGl0ZXJhbFwiO1xuICAgIHZhbHVlOiBMaXRlcmFsO1xufVxuXG4vKiogQSB2YXJpYWJsZSBmaWVsZCBmb3IgYSB2YXJpYWJsZSB3aXRoIGEgZ2l2ZW4gbmFtZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFibGVFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcInZhcmlhYmxlXCI7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogQSBsaXN0IGxpdGVyYWwsIHdoaWNoIGlzIGFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBmaWVsZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImxpc3RcIjtcbiAgICB2YWx1ZXM6IEV4cHJlc3Npb25bXTtcbn1cblxuLyoqIEFuIG9iamVjdCBsaXRlcmFsLCB3aGljaCBpcyBhIG1hcHBpbmcgb2YgbmFtZSB0byBmaWVsZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0RXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJvYmplY3RcIjtcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb24+O1xufVxuXG4vKiogQSBiaW5hcnkgb3BlcmF0b3IgZXhwcmVzc2lvbiB3aGljaCBjb21iaW5lcyB0d28gc3Vibm9kZXMgc29tZWhvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluYXJ5T3BFeHByZXNzaW9uIHtcbiAgICB0eXBlOiBcImJpbmFyeW9wXCI7XG4gICAgbGVmdDogRXhwcmVzc2lvbjtcbiAgICByaWdodDogRXhwcmVzc2lvbjtcbiAgICBvcDogQmluYXJ5T3A7XG59XG5cbi8qKiBBIGZ1bmN0aW9uIGV4cHJlc3Npb24gd2hpY2ggY2FsbHMgYSBmdW5jdGlvbiBvbiAwIG9yIG1vcmUgYXJndW1lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICAvKiogRWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgb3IgYSBGdW5jdGlvbiBvYmplY3QuICovXG4gICAgZnVuYzogRXhwcmVzc2lvbjtcbiAgICAvKiogVGhlIGxpc3Qgb2YgYXJndW1lbnRzIGJlaW5nIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uICovXG4gICAgYXJndW1lbnRzOiBFeHByZXNzaW9uW107XG59XG5cbi8qKiBBbiBpbmxpbmUgZnVuY3Rpb24gYWNjZXB0aW5nIG9uZSBvciBtb3JlIGFyZ3VtZW50cyBhbmQgcHJvZHVjaW5nIGEgdmFsdWUuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV4cHJlc3Npb24ge1xuICAgIHR5cGU6IFwibGFtYmRhXCI7XG4gICAgLyoqIEFuIG9yZGVyZWQgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMuICovXG4gICAgYXJndW1lbnRzOiBzdHJpbmdbXTtcbiAgICAvKiogVGhlIGZpZWxkIHdoaWNoIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBhcmd1bWVudHMgaW4gY29udGV4dC4gKi9cbiAgICB2YWx1ZTogRXhwcmVzc2lvbjtcbn1cblxuLyoqIEFuIGV4cHJlc3Npb24gd2hpY2ggbmVnYXRlcyB0aGUgdmFsdWUgb2YgdGhlIG9yaWdpbmFsIGZpZWxkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWdhdGVkRXhwcmVzc2lvbiB7XG4gICAgdHlwZTogXCJuZWdhdGVkXCI7XG5cbiAgICAvKiogVGhlIGNoaWxkIGZpZWxkIHRvIG5lZ2F0ZS4gKi9cbiAgICBjaGlsZDogRXhwcmVzc2lvbjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBFeHByZXNzaW9ucyB7XG4gICAgLyoqIFRoZSBpbXBsaWNpdCBmaWVsZCByZWZlcmVuY2luZyB0aGUgY3VycmVudCBmaWVsZC4gKi9cbiAgICBleHBvcnQgY29uc3QgUk9XOiBzdHJpbmcgPSBcIiRyb3dcIjtcblxuICAgIGV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZShuYW1lOiBzdHJpbmcpOiBWYXJpYWJsZUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcInZhcmlhYmxlXCIsIG5hbWUgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGl0ZXJhbCh2YWx1ZTogTGl0ZXJhbCk6IExpdGVyYWxFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXRlcmFsXCIsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmFyeU9wKGxlZnQ6IEV4cHJlc3Npb24sIG9wOiBCaW5hcnlPcCwgcmlnaHQ6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0LCBvcCwgcmlnaHQgfSBhcyBCaW5hcnlPcEV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZGV4KG9iajogRXhwcmVzc2lvbiwgaW5kZXg6IEV4cHJlc3Npb24pOiBFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJiaW5hcnlvcFwiLCBsZWZ0OiBvYmosIHJpZ2h0OiBpbmRleCwgb3A6IFwiaW5kZXhcIiB9O1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0cyBhIHN0cmluZyBpbiBkb3Qtbm90YXRpb24tZm9ybWF0IGludG8gYSB2YXJpYWJsZSB3aGljaCBpbmRleGVzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpbmRleFZhcmlhYmxlKG5hbWU6IHN0cmluZyk6IEV4cHJlc3Npb24ge1xuICAgICAgICBsZXQgcGFydHMgPSBuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgbGV0IHJlc3VsdDogRXhwcmVzc2lvbiA9IEV4cHJlc3Npb25zLnZhcmlhYmxlKHBhcnRzWzBdKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IHBhcnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgcmVzdWx0ID0gRXhwcmVzc2lvbnMuaW5kZXgocmVzdWx0LCBFeHByZXNzaW9ucy5saXRlcmFsKHBhcnRzW2luZGV4XSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGFtYmRhKGFyZ3M6IHN0cmluZ1tdLCB2YWx1ZTogRXhwcmVzc2lvbik6IExhbWJkYUV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImxhbWJkYVwiLCBhcmd1bWVudHM6IGFyZ3MsIHZhbHVlIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGZ1bmMoZnVuYzogRXhwcmVzc2lvbiwgYXJnczogRXhwcmVzc2lvbltdKTogRnVuY3Rpb25FeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJmdW5jdGlvblwiLCBmdW5jLCBhcmd1bWVudHM6IGFyZ3MgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGlzdCh2YWx1ZXM6IEV4cHJlc3Npb25bXSk6IExpc3RFeHByZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJsaXN0XCIsIHZhbHVlcyB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBvYmplY3QodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBFeHByZXNzaW9uPik6IE9iamVjdEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm9iamVjdFwiLCB2YWx1ZXMgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbmVnYXRlKGNoaWxkOiBFeHByZXNzaW9uKTogTmVnYXRlZEV4cHJlc3Npb24ge1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5lZ2F0ZWRcIiwgY2hpbGQgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNDb21wYXJlT3Aob3A6IEJpbmFyeU9wKTogb3AgaXMgQ29tcGFyZU9wIHtcbiAgICAgICAgcmV0dXJuIG9wID09IFwiPD1cIiB8fCBvcCA9PSBcIjxcIiB8fCBvcCA9PSBcIj5cIiB8fCBvcCA9PSBcIj49XCIgfHwgb3AgPT0gXCIhPVwiIHx8IG9wID09IFwiPVwiO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgc2V0IG9mIGFsbCB1bmJvdW5kIHZhcmlhYmxlcyAoaS5lLiwgdmFyaWFibGVzIG5vdCBwcm92aWRlZCBieSBgcm93YCwgbGFtYmRhcywgb3Igc2ltaWxhci4pICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHVuYm91bmRWYXJpYWJsZXMoZXhwcjogRXhwcmVzc2lvbiwgYm91bmQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbUk9XXSkpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgYHJvd1tcIi4uLi5cIl1gLlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZXhwci5vcCA9PT0gXCJpbmRleFwiICYmXG4gICAgICAgICAgICAgICAgICAgIGV4cHIubGVmdC50eXBlID09IFwidmFyaWFibGVcIiAmJlxuICAgICAgICAgICAgICAgICAgICBleHByLmxlZnQubmFtZSA9PSBST1cgJiZcbiAgICAgICAgICAgICAgICAgICAgZXhwci5yaWdodC50eXBlID09IFwibGl0ZXJhbFwiICYmXG4gICAgICAgICAgICAgICAgICAgIExpdGVyYWxzLmlzU3RyaW5nKGV4cHIucmlnaHQudmFsdWUpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChib3VuZC5oYXMoZXhwci5yaWdodC52YWx1ZSkpIHJldHVybiBuZXcgU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIG5ldyBTZXQoW2V4cHIucmlnaHQudmFsdWVdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UganVzdCBjaGVjayBsZWZ0IGFuZCByaWdodC5cbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5zZXRVbmlvbihbdW5ib3VuZFZhcmlhYmxlcyhleHByLmxlZnQsIGJvdW5kKSwgdW5ib3VuZFZhcmlhYmxlcyhleHByLnJpZ2h0LCBib3VuZCldKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIuYXJndW1lbnRzLm1hcCgoYSkgPT4gdW5ib3VuZFZhcmlhYmxlcyhhLCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJsYW1iZGFcIjpcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdCb3VuZCA9IGJvdW5kID8/IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBleHByLmFyZ3VtZW50cykgbmV3Qm91bmQuYWRkKGFyZyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5ib3VuZFZhcmlhYmxlcyhleHByLnZhbHVlLCBuZXdCb3VuZCk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKGV4cHIudmFsdWVzLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJuZWdhdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuYm91bmRWYXJpYWJsZXMoZXhwci5jaGlsZCwgYm91bmQpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLnNldFVuaW9uKE9iamVjdC52YWx1ZXMoZXhwci52YWx1ZXMpLm1hcCgodikgPT4gdW5ib3VuZFZhcmlhYmxlcyh2LCBib3VuZCkpKTtcbiAgICAgICAgICAgIGNhc2UgXCJ2YXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChib3VuZCAmJiBib3VuZC5oYXMoZXhwci5uYW1lKSkgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBuZXcgU2V0KFtleHByLm5hbWVdKTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZW5kZXIgYW4gZXhwcmVzc2lvbiBhcyBhIHN0cmluZy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcoZXhwcjogRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYmluYXJ5b3BcIjpcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5vcCA9PT0gXCJpbmRleFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfVske3RvU3RyaW5nKGV4cHIucmlnaHQpfV1gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmxlZnQpfSAke2V4cHIub3B9ICR7dG9TdHJpbmcoZXhwci5yaWdodCl9YDtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0b1N0cmluZyhleHByLmZ1bmMpfSgke2V4cHIuYXJndW1lbnRzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfSlgO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7ZXhwci5hcmd1bWVudHMuam9pbihcIiwgXCIpfSkgPT4gJHt0b1N0cmluZyhleHByLnZhbHVlKX1gO1xuICAgICAgICAgICAgY2FzZSBcImxpc3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFske2V4cHIudmFsdWVzLm1hcCh0b1N0cmluZykuam9pbihcIiwgXCIpfV1gO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCEke3RvU3RyaW5nKGV4cHIuY2hpbGQpfWA7XG4gICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGB7JHtPYmplY3QuZW50cmllcyhleHByLnZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfTogJHt0b1N0cmluZyh2KX1gKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfX1gO1xuICAgICAgICAgICAgY2FzZSBcInZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cHIubmFtZTtcbiAgICAgICAgICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShleHByLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdyYXBwZWQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFwiJHt3cmFwcGVkLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMaXRlcmFscy50b1N0cmluZyh3cmFwcGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY29uc3QgTlVMTCA9IEV4cHJlc3Npb25zLmxpdGVyYWwobnVsbCk7XG59XG4iLCAiLyoqIFByb3ZpZGVzIGNvcmUgcHJlYWN0IC8gcmVuZGVyaW5nIHV0aWxpdGllcyBmb3IgYWxsIHZpZXcgdHlwZXMuXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IEFwcCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBMaW5rLCBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3VycmVudExvY2FsZSwgcmVuZGVyTWluaW1hbERhdGUsIHJlbmRlck1pbmltYWxEdXJhdGlvbiB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuaW1wb3J0IHsgZXh0cmFjdEltYWdlRGltZW5zaW9ucywgaXNJbWFnZUVtYmVkIH0gZnJvbSBcInV0aWxzL21lZGlhXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIEZyYWdtZW50LCByZW5kZXIgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUVycm9yQm91bmRhcnkgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzLCBQcm9wc1dpdGhDaGlsZHJlbiwgbWVtbyB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyBFbWJlZCB9IGZyb20gXCJhcGkvdWkvZW1iZWRcIjtcblxuaW1wb3J0IFwiLi9lcnJvcnMuY3NzXCI7XG5cbmV4cG9ydCBjb25zdCBDT01QT05FTlRfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8Q29tcG9uZW50Pih1bmRlZmluZWQhKTtcbmV4cG9ydCBjb25zdCBBUFBfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8QXBwPih1bmRlZmluZWQhKTtcbmV4cG9ydCBjb25zdCBEQVRBQ09SRV9DT05URVhUID0gY3JlYXRlQ29udGV4dDxEYXRhY29yZT4odW5kZWZpbmVkISk7XG5leHBvcnQgY29uc3QgU0VUVElOR1NfQ09OVEVYVCA9IGNyZWF0ZUNvbnRleHQ8U2V0dGluZ3M+KHVuZGVmaW5lZCEpO1xuZXhwb3J0IGNvbnN0IENVUlJFTlRfRklMRV9DT05URVhUID0gY3JlYXRlQ29udGV4dDxzdHJpbmc+KFwiXCIpO1xuXG4vKiogTW9yZSBjb21wYWN0IHByb3ZpZGVyIGZvciBhbGwgb2YgdGhlIGRhdGFjb3JlIHJlYWN0IGNvbnRleHRzLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERhdGFjb3JlQ29udGV4dFByb3ZpZGVyKHtcbiAgICBjaGlsZHJlbixcbiAgICBhcHAsXG4gICAgY29tcG9uZW50LFxuICAgIGRhdGFjb3JlLFxuICAgIHNldHRpbmdzLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48e1xuICAgIGFwcDogQXBwO1xuICAgIGNvbXBvbmVudDogQ29tcG9uZW50O1xuICAgIGRhdGFjb3JlOiBEYXRhY29yZTtcbiAgICBzZXR0aW5nczogU2V0dGluZ3M7XG59Pikge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxDT01QT05FTlRfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17Y29tcG9uZW50fT5cbiAgICAgICAgICAgIDxBUFBfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17YXBwfT5cbiAgICAgICAgICAgICAgICA8REFUQUNPUkVfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17ZGF0YWNvcmV9PlxuICAgICAgICAgICAgICAgICAgICA8U0VUVElOR1NfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17c2V0dGluZ3N9PntjaGlsZHJlbn08L1NFVFRJTkdTX0NPTlRFWFQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9EQVRBQ09SRV9DT05URVhULlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9BUFBfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICAgICAgPC9DT01QT05FTlRfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICApO1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd0xpbmsoeyBsaW5rLCBzb3VyY2VQYXRoOiBtYXliZVNvdXJjZVBhdGggfTogeyBsaW5rOiBMaW5rIHwgc3RyaW5nOyBzb3VyY2VQYXRoPzogc3RyaW5nIH0pIHtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKT8ud29ya3NwYWNlO1xuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IG1heWJlU291cmNlUGF0aCA/PyBjdXJyZW50UGF0aCA/PyBcIlwiO1xuICAgIGNvbnN0IHBhcnNlZCA9IHVzZU1lbW8oKCkgPT4gKExpdGVyYWxzLmlzTGluayhsaW5rKSA/IGxpbmsgOiBMaW5rLmluZmVyKGxpbmspKSwgW2xpbmtdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXd0YWIgPSBldmVudC5zaGlmdEtleTtcbiAgICAgICAgICAgIHdvcmtzcGFjZT8ub3BlbkxpbmtUZXh0KHBhcnNlZC5vYnNpZGlhbkxpbmsoKSwgc291cmNlUGF0aCwgbmV3dGFiKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3BhcnNlZCwgc291cmNlUGF0aF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGFcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3BhcnNlZC5kaXNwbGF5T3JEZWZhdWx0KCl9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW50ZXJuYWwtbGlua1wiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIGRhdGEtaHJlZj17cGFyc2VkLm9ic2lkaWFuTGluaygpfVxuICAgICAgICA+XG4gICAgICAgICAgICB7cGFyc2VkLmRpc3BsYXlPckRlZmF1bHQoKX1cbiAgICAgICAgPC9hPlxuICAgICk7XG59XG5cbi8qKlxuICogQ29waWVzIGhvdyBhbiBPYnNpZGlhbiBsaW5rIGlzIHJlbmRlcmVkIGJ1dCBpcyBhYm91dCBhbiBvcmRlciBvZiBtYWduaXR1ZGUgZmFzdGVyIHRvIHJlbmRlciB0aGFuIHZpYSBtYXJrZG93biByZW5kZXJpbmcuICovXG5leHBvcnQgY29uc3QgT2JzaWRpYW5MaW5rID0gbWVtbyhSYXdMaW5rKTtcblxuLyoqQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd01hcmtkb3duKHtcbiAgICBjb250ZW50LFxuICAgIHNvdXJjZVBhdGg6IG1heWJlU291cmNlUGF0aCxcbiAgICBpbmxpbmUgPSB0cnVlLFxuICAgIHN0eWxlLFxuICAgIGNscyxcbiAgICBvbkNsaWNrLFxufToge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICAgIGNscz86IHN0cmluZztcbiAgICBvbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiBhbnk7XG59KSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdXNlQ29udGV4dChDT01QT05FTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgZGVmYXVsdFBhdGggPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcblxuICAgIGNvbnN0IHNvdXJjZVBhdGggPSBtYXliZVNvdXJjZVBhdGggPz8gZGVmYXVsdFBhdGg7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbnRhaW5lci5jdXJyZW50KSByZXR1cm47XG5cbiAgICAgICAgY29udGFpbmVyLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAgICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXIoYXBwLCBjb250ZW50LCBjb250YWluZXIuY3VycmVudCwgc291cmNlUGF0aCwgY29tcG9uZW50KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmN1cnJlbnQgfHwgIWlubGluZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAvLyBVbndyYXAgYW55IGNyZWF0ZWQgcGFyYWdyYXBoIGVsZW1lbnRzIGlmIHdlIGFyZSBpbmxpbmUuXG4gICAgICAgICAgICBsZXQgcGFyYWdyYXBoID0gY29udGFpbmVyLmN1cnJlbnQucXVlcnlTZWxlY3RvcihcInBcIik7XG4gICAgICAgICAgICB3aGlsZSAocGFyYWdyYXBoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gcGFyYWdyYXBoLmNoaWxkTm9kZXM7XG4gICAgICAgICAgICAgICAgcGFyYWdyYXBoLnJlcGxhY2VXaXRoKC4uLkFycmF5LmZyb20oY2hpbGRyZW4pKTtcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGggPSBjb250YWluZXIuY3VycmVudC5xdWVyeVNlbGVjdG9yKFwicFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaGF2ZSBlbWJlZHMgYWN0dWFsbHkgbG9hZCBpbnN0ZWFkIG9mIGRpc3BsYXlpbmcgYXMgcGxhaW4gdGV4dC5cbiAgICAgICAgICAgIGxldCBlbWJlZCA9IGNvbnRhaW5lci5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXCJzcGFuLmludGVybmFsLWVtYmVkOm5vdCguaXMtbG9hZGVkKVwiKTtcbiAgICAgICAgICAgIHdoaWxlIChlbWJlZCkge1xuICAgICAgICAgICAgICAgIGVtYmVkLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgICAgICA8QVBQX0NPTlRFWFQuUHJvdmlkZXIgdmFsdWU9e2FwcH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rPXtMaW5rLnBhcnNlSW5uZXIoZW1iZWQuZ2V0QXR0cmlidXRlKFwic3JjXCIpID8/IFwiXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9BUFBfQ09OVEVYVC5Qcm92aWRlcj4sXG4gICAgICAgICAgICAgICAgICAgIGVtYmVkXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBlbWJlZC5hZGRDbGFzcyhcImlzLWxvYWRlZFwiKTtcbiAgICAgICAgICAgICAgICBlbWJlZCA9IGNvbnRhaW5lci5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXCJzcGFuLmludGVybmFsLWVtYmVkOm5vdCguaXMtbG9hZGVkKVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgW2NvbnRlbnQsIHNvdXJjZVBhdGgsIGlubGluZSwgY29udGFpbmVyLmN1cnJlbnRdKTtcblxuICAgIHJldHVybiA8c3BhbiByZWY9e2NvbnRhaW5lcn0gc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2Nsc30gb25DbGljaz17b25DbGlja30+PC9zcGFuPjtcbn1cblxuLyoqXG4gKiBIYWNreSBwcmVhY3QgY29tcG9uZW50IHdoaWNoIHdyYXBzIE9ic2lkaWFuJ3MgbWFya2Rvd24gcmVuZGVyZXIgaW50byBhIG5lYXQgY29tcG9uZW50LiAqL1xuZXhwb3J0IGNvbnN0IE1hcmtkb3duID0gbWVtbyhSYXdNYXJrZG93bik7XG5cbi8qKlxuICogQGhpZGRlblxuICogIEludGVsbGlnZW50bHkgcmVuZGVyIGFuIGFyYml0cmFyeSBsaXRlcmFsIHZhbHVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJhd0xpdCh7XG4gICAgdmFsdWUsXG4gICAgc291cmNlUGF0aDogbWF5YmVTb3VyY2VQYXRoLFxuICAgIGlubGluZSA9IGZhbHNlLFxuICAgIGRlcHRoID0gMCxcbn06IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgICB2YWx1ZTogTGl0ZXJhbCB8IHVuZGVmaW5lZDtcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgZGVwdGg/OiBudW1iZXI7XG59Pikge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdXNlQ29udGV4dChTRVRUSU5HU19DT05URVhUKTtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9IHVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuXG4gICAgY29uc3Qgc291cmNlUGF0aCA9IG1heWJlU291cmNlUGF0aCA/PyBkZWZhdWx0UGF0aDtcblxuICAgIC8vIFNob3J0LWNpcmN1aXQgaWYgYmV5b25kIHRoZSBtYXhpbXVtIHJlbmRlciBkZXB0aC5cbiAgICBpZiAoZGVwdGggPj0gc2V0dGluZ3MubWF4UmVjdXJzaXZlUmVuZGVyRGVwdGgpIHJldHVybiA8RnJhZ21lbnQ+Li4uPC9GcmFnbWVudD47XG5cbiAgICBpZiAoTGl0ZXJhbHMuaXNOdWxsKHZhbHVlKSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiA8TWFya2Rvd24gaW5saW5lPXtpbmxpbmV9IGNvbnRlbnQ9e3NldHRpbmdzLnJlbmRlck51bGxBc30gc291cmNlUGF0aD17c291cmNlUGF0aH0gLz47XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxNYXJrZG93biBpbmxpbmU9e2lubGluZX0gY29udGVudD17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IC8+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiA8RnJhZ21lbnQ+e1wiXCIgKyB2YWx1ZX08L0ZyYWdtZW50PjtcbiAgICB9IGVsc2UgaWYgKExpdGVyYWxzLmlzQm9vbGVhbih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD57XCJcIiArIHZhbHVlfTwvRnJhZ21lbnQ+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNEYXRlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgIHtyZW5kZXJNaW5pbWFsRGF0ZSh2YWx1ZSwgc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQsIHNldHRpbmdzLmRlZmF1bHREYXRlVGltZUZvcm1hdCwgY3VycmVudExvY2FsZSgpKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc0R1cmF0aW9uKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gPEZyYWdtZW50PntyZW5kZXJNaW5pbWFsRHVyYXRpb24odmFsdWUpfTwvRnJhZ21lbnQ+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNMaW5rKHZhbHVlKSkge1xuICAgICAgICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxpbmcgb2YgaW1hZ2UvdmlkZW8vZXRjIGVtYmVkZGluZ3MgdG8gYnlwYXNzIHRoZSBPYnNpZGlhbiBBUEkgbm90IHdvcmtpbmcuXG4gICAgICAgIGlmIChpc0ltYWdlRW1iZWQodmFsdWUpKSB7XG4gICAgICAgICAgICBsZXQgcmVhbEZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCh2YWx1ZS5wYXRoLCBzb3VyY2VQYXRoKTtcbiAgICAgICAgICAgIGlmICghcmVhbEZpbGUpIHJldHVybiA8TWFya2Rvd24gY29udGVudD17dmFsdWUubWFya2Rvd24oKX0gc291cmNlUGF0aD17c291cmNlUGF0aH0gLz47XG5cbiAgICAgICAgICAgIGxldCBkaW1lbnNpb25zID0gZXh0cmFjdEltYWdlRGltZW5zaW9ucyh2YWx1ZSk7XG4gICAgICAgICAgICBsZXQgcmVzb3VyY2VQYXRoID0gYXBwLnZhdWx0LmdldFJlc291cmNlUGF0aChyZWFsRmlsZSk7XG5cbiAgICAgICAgICAgIGlmIChkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMubGVuZ3RoID09IDIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxpbWcgYWx0PXt2YWx1ZS5wYXRofSBzcmM9e3Jlc291cmNlUGF0aH0gd2lkdGg9e2RpbWVuc2lvbnNbMF19IGhlaWdodD17ZGltZW5zaW9uc1sxXX0gLz47XG4gICAgICAgICAgICBlbHNlIGlmIChkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMubGVuZ3RoID09IDEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxpbWcgYWx0PXt2YWx1ZS5wYXRofSBzcmM9e3Jlc291cmNlUGF0aH0gd2lkdGg9e2RpbWVuc2lvbnNbMF19IC8+O1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gPGltZyBhbHQ9e3ZhbHVlLnBhdGh9IHNyYz17cmVzb3VyY2VQYXRofSAvPjtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5lbWJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIDxFbWJlZCBsaW5rPXt2YWx1ZX0gc291cmNlUGF0aD17c291cmNlUGF0aH0gaW5saW5lPXtpbmxpbmV9IC8+O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxPYnNpZGlhbkxpbmsgbGluaz17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IC8+O1xuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD4mbHQ7ZnVuY3Rpb24mZ3Q7PC9GcmFnbWVudD47XG4gICAgfSBlbHNlIGlmIChMaXRlcmFscy5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBpZiAoIWlubGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtcImRhdGF2aWV3IGRhdGF2aWV3LXVsIGRhdGF2aWV3LXJlc3VsdC1saXN0LXVsXCJ9PlxuICAgICAgICAgICAgICAgICAgICB7dmFsdWUubWFwKChzdWJ2YWx1ZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImRhdGF2aWV3LXJlc3VsdC1saXN0LWxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpdCB2YWx1ZT17c3VidmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiA8RnJhZ21lbnQ+Jmx0O0VtcHR5IExpc3QmZ3Q7PC9GcmFnbWVudD47XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0YXZpZXcgZGF0YXZpZXctcmVzdWx0LWxpc3Qtc3BhblwiPlxuICAgICAgICAgICAgICAgICAgICB7dmFsdWUubWFwKChzdWJ2YWx1ZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5kZXggPT0gMCA/IFwiXCIgOiBcIiwgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpdCB2YWx1ZT17c3VidmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoTGl0ZXJhbHMuaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIC8vIERvbid0IHJlbmRlciBjbGFzc2VzIGluIGNhc2UgdGhleSBoYXZlIHJlY3Vyc2l2ZSByZWZlcmVuY2VzOyBzcG9vcHkuXG4gICAgICAgIGlmICh2YWx1ZT8uY29uc3RydWN0b3I/Lm5hbWUgJiYgdmFsdWU/LmNvbnN0cnVjdG9yPy5uYW1lICE9IFwiT2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiA8RnJhZ21lbnQ+Jmx0O3t2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lfSZndDs8L0ZyYWdtZW50PjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW5saW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJkYXRhdmlldyBkYXRhdmlldy11bCBkYXRhdmlldy1yZXN1bHQtb2JqZWN0LXVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKChba2V5LCB2YWx1ZV0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkYXRhdmlldyBkYXRhdmlldy1saSBkYXRhdmlldy1yZXN1bHQtb2JqZWN0LWxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2tleX06IDxMaXQgdmFsdWU9e3ZhbHVlfSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSBpbmxpbmU9e2lubGluZX0gZGVwdGg9e2RlcHRoICsgMX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT0gMCkgcmV0dXJuIDxGcmFnbWVudD4mbHQ7RW1wdHkgT2JqZWN0Jmd0OzwvRnJhZ21lbnQ+O1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGF2aWV3IGRhdGF2aWV3LXJlc3VsdC1vYmplY3Qtc3BhblwiPlxuICAgICAgICAgICAgICAgICAgICB7T2JqZWN0LmVudHJpZXModmFsdWUpLm1hcCgoW2tleSwgdmFsdWVdLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbmRleCA9PSAwID8gXCJcIiA6IFwiLCBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7a2V5fTogPExpdCB2YWx1ZT17dmFsdWV9IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17aW5saW5lfSBkZXB0aD17ZGVwdGggKyAxfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiA8RnJhZ21lbnQ+Jmx0O1VucmVjb2duaXplZDoge0pTT04uc3RyaW5naWZ5KHZhbHVlKX0mZ3Q7PC9GcmFnbWVudD47XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogSW50ZWxsaWdlbnRseSByZW5kZXIgYW4gYXJiaXRyYXJ5IGxpdGVyYWwgdmFsdWUuICovXG5leHBvcnQgY29uc3QgTGl0ID0gbWVtbyhSYXdMaXQpO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIFJlbmRlciBhIHByZXR0eSBjZW50ZXJlZCBlcnJvciBtZXNzYWdlIGluIGEgYm94LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVycm9yTWVzc2FnZSh7XG4gICAgdGl0bGUsXG4gICAgbWVzc2FnZSxcbiAgICBlcnJvcixcbiAgICByZXNldCxcbn06IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIHJlc2V0PzogKCkgPT4gdm9pZDtcbn0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWVycm9yLWJveFwiPlxuICAgICAgICAgICAge3RpdGxlICYmIDxoNCBjbGFzc05hbWU9XCJkYXRhY29yZS1lcnJvci10aXRsZVwiPnt0aXRsZX08L2g0Pn1cbiAgICAgICAgICAgIHttZXNzYWdlICYmIDxwIGNsYXNzTmFtZT1cImRhdGFjb3JlLWVycm9yLW1lc3NhZ2VcIj57bWVzc2FnZX08L3A+fVxuICAgICAgICAgICAge2Vycm9yICYmIDxwcmUgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZXJyb3ItcHJlXCI+e2Vycm9yfTwvcHJlPn1cbiAgICAgICAgICAgIHtyZXNldCAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJkYXRhY29yZS1lcnJvci1yZXRyeVwiIG9uQ2xpY2s9e3Jlc2V0fT5cbiAgICAgICAgICAgICAgICAgICAgUmVydW5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8qKiBBIHNpbXBsZSBlcnJvciBib3VuZGFyeSB3aGljaCByZW5kZXJzIGEgbWVzc2FnZSBvbiBmYWlsdXJlLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpbXBsZUVycm9yQm91bmRhcnkoe1xuICAgIHRpdGxlLFxuICAgIG1lc3NhZ2UsXG4gICAgY2hpbGRyZW4sXG59OiBQcm9wc1dpdGhDaGlsZHJlbjx7IHRpdGxlPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0+KSB7XG4gICAgY29uc3QgW2Vycm9yLCByZXNldF0gPSB1c2VFcnJvckJvdW5kYXJ5KCk7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgdGl0bGU9e3RpdGxlfSBtZXNzYWdlPXttZXNzYWdlfSBlcnJvcj17ZXJyb3Iuc3RhY2t9IHJlc2V0PXtyZXNldH0gLz47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxGcmFnbWVudD57Y2hpbGRyZW59PC9GcmFnbWVudD47XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5cbmV4cG9ydCBjb25zdCBJTUFHRV9FWFRFTlNJT05TID0gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgU2V0KFtcbiAgICAgICAgXCIudGlmXCIsXG4gICAgICAgIFwiLnRpZmZcIixcbiAgICAgICAgXCIuZ2lmXCIsXG4gICAgICAgIFwiLnBuZ1wiLFxuICAgICAgICBcIi5hcG5nXCIsXG4gICAgICAgIFwiLmF2aWZcIixcbiAgICAgICAgXCIuanBnXCIsXG4gICAgICAgIFwiLmpwZWdcIixcbiAgICAgICAgXCIuamZpZlwiLFxuICAgICAgICBcIi5wamVwZ1wiLFxuICAgICAgICBcIi5wanBcIixcbiAgICAgICAgXCIuc3ZnXCIsXG4gICAgICAgIFwiLndlYnBcIixcbiAgICAgICAgXCIuYm1wXCIsXG4gICAgICAgIFwiLmljb1wiLFxuICAgICAgICBcIi5jdXJcIixcbiAgICBdKVxuKTtcblxuLyoqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGxpbmsgcG9pbnRzIHRvIGFuIGVtYmVkZGVkIGltYWdlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW1hZ2VFbWJlZChsaW5rOiBMaW5rKTogYm9vbGVhbiB7XG4gICAgaWYgKCFsaW5rLnBhdGguY29udGFpbnMoXCIuXCIpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgZXh0ZW5zaW9uID0gbGluay5wYXRoLnN1YnN0cmluZyhsaW5rLnBhdGgubGFzdEluZGV4T2YoXCIuXCIpKTtcbiAgICByZXR1cm4gbGluay50eXBlID09IFwiZmlsZVwiICYmIGxpbmsuZW1iZWQgJiYgSU1BR0VfRVhURU5TSU9OUy5oYXMoZXh0ZW5zaW9uKTtcbn1cblxuLyoqIEV4dHJhY3QgdGV4dCBvZiB0aGUgZm9ybSAnV3hIJyBvciAnVycgZnJvbSB0aGUgZGlzcGxheSBvZiBhIGxpbmsuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEltYWdlRGltZW5zaW9ucyhsaW5rOiBMaW5rKTogW251bWJlciwgbnVtYmVyXSB8IFtudW1iZXJdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWxpbmsuZGlzcGxheSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCBtYXRjaCA9IC9eKFxcZCspeChcXGQrKSQvaXUuZXhlYyhsaW5rLmRpc3BsYXkpO1xuICAgIGlmIChtYXRjaCkgcmV0dXJuIFtwYXJzZUludChtYXRjaFsxXSksIHBhcnNlSW50KG1hdGNoWzJdKV07XG5cbiAgICBsZXQgbWF0Y2gyID0gL14oXFxkKykvLmV4ZWMobGluay5kaXNwbGF5KTtcbiAgICBpZiAobWF0Y2gyKSByZXR1cm4gW3BhcnNlSW50KG1hdGNoMlsxXSldO1xuXG4gICAgLy8gTm8gbWF0Y2guXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiIsICIvKiogTm9ybWFsIGh5ZHJhdGlvbiB0aGF0IGF0dGFjaGVzIHRvIGEgRE9NIHRyZWUgYnV0IGRvZXMgbm90IGRpZmYgaXQuICovXG5leHBvcnQgY29uc3QgTU9ERV9IWURSQVRFID0gMSA8PCA1O1xuLyoqIFNpZ25pZmllcyB0aGlzIFZOb2RlIHN1c3BlbmRlZCBvbiB0aGUgcHJldmlvdXMgcmVuZGVyICovXG5leHBvcnQgY29uc3QgTU9ERV9TVVNQRU5ERUQgPSAxIDw8IDc7XG4vKiogSW5kaWNhdGVzIHRoYXQgdGhpcyBub2RlIG5lZWRzIHRvIGJlIGluc2VydGVkIHdoaWxlIHBhdGNoaW5nIGNoaWxkcmVuICovXG5leHBvcnQgY29uc3QgSU5TRVJUX1ZOT0RFID0gMSA8PCAxNjtcbi8qKiBJbmRpY2F0ZXMgYSBWTm9kZSBoYXMgYmVlbiBtYXRjaGVkIHdpdGggYW5vdGhlciBWTm9kZSBpbiB0aGUgZGlmZiAqL1xuZXhwb3J0IGNvbnN0IE1BVENIRUQgPSAxIDw8IDE3O1xuXG4vKiogUmVzZXQgYWxsIG1vZGUgZmxhZ3MgKi9cbmV4cG9ydCBjb25zdCBSRVNFVF9NT0RFID0gfihNT0RFX0hZRFJBVEUgfCBNT0RFX1NVU1BFTkRFRCk7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9PQkogPSAvKiogQHR5cGUge2FueX0gKi8gKHt9KTtcbmV4cG9ydCBjb25zdCBFTVBUWV9BUlIgPSBbXTtcbmV4cG9ydCBjb25zdCBJU19OT05fRElNRU5TSU9OQUwgPVxuXHQvYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pO1xuIiwgImltcG9ydCB7IEVNUFRZX0FSUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIEFzc2lnbiBwcm9wZXJ0aWVzIGZyb20gYHByb3BzYCB0byBgb2JqYFxuICogQHRlbXBsYXRlIE8sIFAgVGhlIG9iaiBhbmQgcHJvcHMgdHlwZXNcbiAqIEBwYXJhbSB7T30gb2JqIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvXG4gKiBAcGFyYW0ge1B9IHByb3BzIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEByZXR1cm5zIHtPICYgUH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihvYmosIHByb3BzKSB7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgV2UgY2hhbmdlIHRoZSB0eXBlIG9mIGBvYmpgIHRvIGJlIGBPICYgUGBcblx0Zm9yIChsZXQgaSBpbiBwcm9wcykgb2JqW2ldID0gcHJvcHNbaV07XG5cdHJldHVybiAvKiogQHR5cGUge08gJiBQfSAqLyAob2JqKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBjaGlsZCBub2RlIGZyb20gaXRzIHBhcmVudCBpZiBhdHRhY2hlZC4gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yXG4gKiBJRTExIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlKClgLiBVc2luZyB0aGlzIGZ1bmN0aW9uXG4gKiBpcyBzbWFsbGVyIHRoYW4gaW5jbHVkaW5nIGEgZGVkaWNhdGVkIHBvbHlmaWxsLlxuICogQHBhcmFtIHtwcmVhY3QuQ29udGFpbmVyTm9kZX0gbm9kZSBUaGUgbm9kZSB0byByZW1vdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU5vZGUobm9kZSkge1xuXHRpZiAobm9kZSAmJiBub2RlLnBhcmVudE5vZGUpIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNsaWNlID0gRU1QVFlfQVJSLnNsaWNlO1xuIiwgImltcG9ydCB7IF9jYXRjaEVycm9yIH0gZnJvbSAnLi9kaWZmL2NhdGNoLWVycm9yJztcblxuLyoqXG4gKiBUaGUgYG9wdGlvbmAgb2JqZWN0IGNhbiBwb3RlbnRpYWxseSBjb250YWluIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICogdGhhdCBhcmUgY2FsbGVkIGR1cmluZyB2YXJpb3VzIHN0YWdlcyBvZiBvdXIgcmVuZGVyZXIuIFRoaXMgaXMgdGhlXG4gKiBmb3VuZGF0aW9uIG9uIHdoaWNoIGFsbCBvdXIgYWRkb25zIGxpa2UgYHByZWFjdC9kZWJ1Z2AsIGBwcmVhY3QvY29tcGF0YCxcbiAqIGFuZCBgcHJlYWN0L2hvb2tzYCBhcmUgYmFzZWQgb24uIFNlZSB0aGUgYE9wdGlvbnNgIHR5cGUgaW4gYGludGVybmFsLmQudHNgXG4gKiBmb3IgYSBmdWxsIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbiBob29rcyAobW9zdCBlZGl0b3JzL0lERXMgYWxsb3cgeW91IHRvXG4gKiBjdHJsK2NsaWNrIG9yIGNtZCtjbGljayBvbiBtYWMgdGhlIHR5cGUgZGVmaW5pdGlvbiBiZWxvdykuXG4gKiBAdHlwZSB7T3B0aW9uc31cbiAqL1xuY29uc3Qgb3B0aW9ucyA9IHtcblx0X2NhdGNoRXJyb3Jcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG9wdGlvbnM7XG4iLCAiaW1wb3J0IHsgc2xpY2UgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi9vcHRpb25zJztcblxubGV0IHZub2RlSWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZSBhbiB2aXJ0dWFsIG5vZGUgKHVzZWQgZm9yIEpTWClcbiAqIEBwYXJhbSB7Vk5vZGVbXCJ0eXBlXCJdfSB0eXBlIFRoZSBub2RlIG5hbWUgb3IgQ29tcG9uZW50IGNvbnN0cnVjdG9yIGZvciB0aGlzXG4gKiB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BzXSBUaGUgcHJvcGVydGllcyBvZiB0aGUgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge0FycmF5PGltcG9ydCgnLicpLkNvbXBvbmVudENoaWxkcmVuPn0gW2NoaWxkcmVuXSBUaGUgY2hpbGRyZW4gb2YgdGhlXG4gKiB2aXJ0dWFsIG5vZGVcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSB7fSxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdGk7XG5cdGZvciAoaSBpbiBwcm9wcykge1xuXHRcdGlmIChpID09ICdrZXknKSBrZXkgPSBwcm9wc1tpXTtcblx0XHRlbHNlIGlmIChpID09ICdyZWYnKSByZWYgPSBwcm9wc1tpXTtcblx0XHRlbHNlIG5vcm1hbGl6ZWRQcm9wc1tpXSA9IHByb3BzW2ldO1xuXHR9XG5cblx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNoaWxkcmVuID1cblx0XHRcdGFyZ3VtZW50cy5sZW5ndGggPiAzID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpIDogY2hpbGRyZW47XG5cdH1cblxuXHQvLyBJZiBhIENvbXBvbmVudCBWTm9kZSwgY2hlY2sgZm9yIGFuZCBhcHBseSBkZWZhdWx0UHJvcHNcblx0Ly8gTm90ZTogdHlwZSBtYXkgYmUgdW5kZWZpbmVkIGluIGRldmVsb3BtZW50LCBtdXN0IG5ldmVyIGVycm9yIGhlcmUuXG5cdGlmICh0eXBlb2YgdHlwZSA9PSAnZnVuY3Rpb24nICYmIHR5cGUuZGVmYXVsdFByb3BzICE9IG51bGwpIHtcblx0XHRmb3IgKGkgaW4gdHlwZS5kZWZhdWx0UHJvcHMpIHtcblx0XHRcdGlmIChub3JtYWxpemVkUHJvcHNbaV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRub3JtYWxpemVkUHJvcHNbaV0gPSB0eXBlLmRlZmF1bHRQcm9wc1tpXTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gY3JlYXRlVk5vZGUodHlwZSwgbm9ybWFsaXplZFByb3BzLCBrZXksIHJlZiwgbnVsbCk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgVk5vZGUgKHVzZWQgaW50ZXJuYWxseSBieSBQcmVhY3QpXG4gKiBAcGFyYW0ge1ZOb2RlW1widHlwZVwiXX0gdHlwZSBUaGUgbm9kZSBuYW1lIG9yIENvbXBvbmVudFxuICogQ29uc3RydWN0b3IgZm9yIHRoaXMgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge29iamVjdCB8IHN0cmluZyB8IG51bWJlciB8IG51bGx9IHByb3BzIFRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgdmlydHVhbCBub2RlLlxuICogSWYgdGhpcyB2aXJ0dWFsIG5vZGUgcmVwcmVzZW50cyBhIHRleHQgbm9kZSwgdGhpcyBpcyB0aGUgdGV4dCBvZiB0aGUgbm9kZSAoc3RyaW5nIG9yIG51bWJlcikuXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IG51bGx9IGtleSBUaGUga2V5IGZvciB0aGlzIHZpcnR1YWwgbm9kZSwgdXNlZCB3aGVuXG4gKiBkaWZmaW5nIGl0IGFnYWluc3QgaXRzIGNoaWxkcmVuXG4gKiBAcGFyYW0ge1ZOb2RlW1wicmVmXCJdfSByZWYgVGhlIHJlZiBwcm9wZXJ0eSB0aGF0IHdpbGxcbiAqIHJlY2VpdmUgYSByZWZlcmVuY2UgdG8gaXRzIGNyZWF0ZWQgY2hpbGRcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZOb2RlKHR5cGUsIHByb3BzLCBrZXksIHJlZiwgb3JpZ2luYWwpIHtcblx0Ly8gVjggc2VlbXMgdG8gYmUgYmV0dGVyIGF0IGRldGVjdGluZyB0eXBlIHNoYXBlcyBpZiB0aGUgb2JqZWN0IGlzIGFsbG9jYXRlZCBmcm9tIHRoZSBzYW1lIGNhbGwgc2l0ZVxuXHQvLyBEbyBub3QgaW5saW5lIGludG8gY3JlYXRlRWxlbWVudCBhbmQgY29lcmNlVG9WTm9kZSFcblx0LyoqIEB0eXBlIHtWTm9kZX0gKi9cblx0Y29uc3Qgdm5vZGUgPSB7XG5cdFx0dHlwZSxcblx0XHRwcm9wcyxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdF9jaGlsZHJlbjogbnVsbCxcblx0XHRfcGFyZW50OiBudWxsLFxuXHRcdF9kZXB0aDogMCxcblx0XHRfZG9tOiBudWxsLFxuXHRcdC8vIF9uZXh0RG9tIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gdW5kZWZpbmVkIGIvYyBpdCB3aWxsIGV2ZW50dWFsbHlcblx0XHQvLyBiZSBzZXQgdG8gZG9tLm5leHRTaWJsaW5nIHdoaWNoIGNhbiByZXR1cm4gYG51bGxgIGFuZCBpdCBpcyBpbXBvcnRhbnRcblx0XHQvLyB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYW4gdW5pbml0aWFsaXplZCBfbmV4dERvbSBhbmRcblx0XHQvLyBhIF9uZXh0RG9tIHRoYXQgaGFzIGJlZW4gc2V0IHRvIGBudWxsYFxuXHRcdF9uZXh0RG9tOiB1bmRlZmluZWQsXG5cdFx0X2NvbXBvbmVudDogbnVsbCxcblx0XHRjb25zdHJ1Y3RvcjogdW5kZWZpbmVkLFxuXHRcdF9vcmlnaW5hbDogb3JpZ2luYWwgPT0gbnVsbCA/ICsrdm5vZGVJZCA6IG9yaWdpbmFsLFxuXHRcdF9pbmRleDogLTEsXG5cdFx0X2ZsYWdzOiAwXG5cdH07XG5cblx0Ly8gT25seSBpbnZva2UgdGhlIHZub2RlIGhvb2sgaWYgdGhpcyB3YXMgKm5vdCogYSBkaXJlY3QgY29weTpcblx0aWYgKG9yaWdpbmFsID09IG51bGwgJiYgb3B0aW9ucy52bm9kZSAhPSBudWxsKSBvcHRpb25zLnZub2RlKHZub2RlKTtcblxuXHRyZXR1cm4gdm5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWYoKSB7XG5cdHJldHVybiB7IGN1cnJlbnQ6IG51bGwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZyYWdtZW50KHByb3BzKSB7XG5cdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHRoZSBhcmd1bWVudCBpcyBhIHZhbGlkIFByZWFjdCBWTm9kZS5cbiAqIEBwYXJhbSB7Kn0gdm5vZGVcbiAqIEByZXR1cm5zIHt2bm9kZSBpcyBWTm9kZX1cbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWRFbGVtZW50ID0gdm5vZGUgPT5cblx0dm5vZGUgIT0gbnVsbCAmJiB2bm9kZS5jb25zdHJ1Y3RvciA9PSB1bmRlZmluZWQ7XG4iLCAiaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGRpZmYsIGNvbW1pdFJvb3QgfSBmcm9tICcuL2RpZmYvaW5kZXgnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSAnLi9jcmVhdGUtZWxlbWVudCc7XG5pbXBvcnQgeyBNT0RFX0hZRFJBVEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQmFzZSBDb21wb25lbnQgY2xhc3MuIFByb3ZpZGVzIGBzZXRTdGF0ZSgpYCBhbmQgYGZvcmNlVXBkYXRlKClgLCB3aGljaFxuICogdHJpZ2dlciByZW5kZXJpbmdcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBUaGUgaW5pdGlhbCBjb21wb25lbnQgcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0IFRoZSBpbml0aWFsIGNvbnRleHQgZnJvbSBwYXJlbnQgY29tcG9uZW50cydcbiAqIGdldENoaWxkQ29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gQmFzZUNvbXBvbmVudChwcm9wcywgY29udGV4dCkge1xuXHR0aGlzLnByb3BzID0gcHJvcHM7XG5cdHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG59XG5cbi8qKlxuICogVXBkYXRlIGNvbXBvbmVudCBzdGF0ZSBhbmQgc2NoZWR1bGUgYSByZS1yZW5kZXIuXG4gKiBAdGhpcyB7Q29tcG9uZW50fVxuICogQHBhcmFtIHtvYmplY3QgfCAoKHM6IG9iamVjdCwgcDogb2JqZWN0KSA9PiBvYmplY3QpfSB1cGRhdGUgQSBoYXNoIG9mIHN0YXRlXG4gKiBwcm9wZXJ0aWVzIHRvIHVwZGF0ZSB3aXRoIG5ldyB2YWx1ZXMgb3IgYSBmdW5jdGlvbiB0aGF0IGdpdmVuIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSBhbmQgcHJvcHMgcmV0dXJucyBhIG5ldyBwYXJ0aWFsIHN0YXRlXG4gKiBAcGFyYW0geygpID0+IHZvaWR9IFtjYWxsYmFja10gQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb25jZSBjb21wb25lbnQgc3RhdGUgaXNcbiAqIHVwZGF0ZWRcbiAqL1xuQmFzZUNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAodXBkYXRlLCBjYWxsYmFjaykge1xuXHQvLyBvbmx5IGNsb25lIHN0YXRlIHdoZW4gY29weWluZyB0byBuZXh0U3RhdGUgdGhlIGZpcnN0IHRpbWUuXG5cdGxldCBzO1xuXHRpZiAodGhpcy5fbmV4dFN0YXRlICE9IG51bGwgJiYgdGhpcy5fbmV4dFN0YXRlICE9PSB0aGlzLnN0YXRlKSB7XG5cdFx0cyA9IHRoaXMuX25leHRTdGF0ZTtcblx0fSBlbHNlIHtcblx0XHRzID0gdGhpcy5fbmV4dFN0YXRlID0gYXNzaWduKHt9LCB0aGlzLnN0YXRlKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgdXBkYXRlID09ICdmdW5jdGlvbicpIHtcblx0XHQvLyBTb21lIGxpYnJhcmllcyBsaWtlIGBpbW1lcmAgbWFyayB0aGUgY3VycmVudCBzdGF0ZSBhcyByZWFkb25seSxcblx0XHQvLyBwcmV2ZW50aW5nIHVzIGZyb20gbXV0YXRpbmcgaXQsIHNvIHdlIG5lZWQgdG8gY2xvbmUgaXQuIFNlZSAjMjcxNlxuXHRcdHVwZGF0ZSA9IHVwZGF0ZShhc3NpZ24oe30sIHMpLCB0aGlzLnByb3BzKTtcblx0fVxuXG5cdGlmICh1cGRhdGUpIHtcblx0XHRhc3NpZ24ocywgdXBkYXRlKTtcblx0fVxuXG5cdC8vIFNraXAgdXBkYXRlIGlmIHVwZGF0ZXIgZnVuY3Rpb24gcmV0dXJuZWQgbnVsbFxuXHRpZiAodXBkYXRlID09IG51bGwpIHJldHVybjtcblxuXHRpZiAodGhpcy5fdm5vZGUpIHtcblx0XHRpZiAoY2FsbGJhY2spIHtcblx0XHRcdHRoaXMuX3N0YXRlQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuXHRcdH1cblx0XHRlbnF1ZXVlUmVuZGVyKHRoaXMpO1xuXHR9XG59O1xuXG4vKipcbiAqIEltbWVkaWF0ZWx5IHBlcmZvcm0gYSBzeW5jaHJvbm91cyByZS1yZW5kZXIgb2YgdGhlIGNvbXBvbmVudFxuICogQHRoaXMge0NvbXBvbmVudH1cbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gW2NhbGxiYWNrXSBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciBjb21wb25lbnQgaXNcbiAqIHJlLXJlbmRlcmVkXG4gKi9cbkJhc2VDb21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG5cdGlmICh0aGlzLl92bm9kZSkge1xuXHRcdC8vIFNldCByZW5kZXIgbW9kZSBzbyB0aGF0IHdlIGNhbiBkaWZmZXJlbnRpYXRlIHdoZXJlIHRoZSByZW5kZXIgcmVxdWVzdFxuXHRcdC8vIGlzIGNvbWluZyBmcm9tLiBXZSBuZWVkIHRoaXMgYmVjYXVzZSBmb3JjZVVwZGF0ZSBzaG91bGQgbmV2ZXIgY2FsbFxuXHRcdC8vIHNob3VsZENvbXBvbmVudFVwZGF0ZVxuXHRcdHRoaXMuX2ZvcmNlID0gdHJ1ZTtcblx0XHRpZiAoY2FsbGJhY2spIHRoaXMuX3JlbmRlckNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblx0XHRlbnF1ZXVlUmVuZGVyKHRoaXMpO1xuXHR9XG59O1xuXG4vKipcbiAqIEFjY2VwdHMgYHByb3BzYCBhbmQgYHN0YXRlYCwgYW5kIHJldHVybnMgYSBuZXcgVmlydHVhbCBET00gdHJlZSB0byBidWlsZC5cbiAqIFZpcnR1YWwgRE9NIGlzIGdlbmVyYWxseSBjb25zdHJ1Y3RlZCB2aWEgW0pTWF0oaHR0cDovL2phc29uZm9ybWF0LmNvbS93dGYtaXMtanN4KS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBQcm9wcyAoZWc6IEpTWCBhdHRyaWJ1dGVzKSByZWNlaXZlZCBmcm9tIHBhcmVudFxuICogZWxlbWVudC9jb21wb25lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSBUaGUgY29tcG9uZW50J3MgY3VycmVudCBzdGF0ZVxuICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHQgQ29udGV4dCBvYmplY3QsIGFzIHJldHVybmVkIGJ5IHRoZSBuZWFyZXN0XG4gKiBhbmNlc3RvcidzIGBnZXRDaGlsZENvbnRleHQoKWBcbiAqIEByZXR1cm5zIHtDb21wb25lbnRDaGlsZHJlbiB8IHZvaWR9XG4gKi9cbkJhc2VDb21wb25lbnQucHJvdG90eXBlLnJlbmRlciA9IEZyYWdtZW50O1xuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGx9IFtjaGlsZEluZGV4XVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9tU2libGluZyh2bm9kZSwgY2hpbGRJbmRleCkge1xuXHRpZiAoY2hpbGRJbmRleCA9PSBudWxsKSB7XG5cdFx0Ly8gVXNlIGNoaWxkSW5kZXg9PW51bGwgYXMgYSBzaWduYWwgdG8gcmVzdW1lIHRoZSBzZWFyY2ggZnJvbSB0aGUgdm5vZGUncyBzaWJsaW5nXG5cdFx0cmV0dXJuIHZub2RlLl9wYXJlbnRcblx0XHRcdD8gZ2V0RG9tU2libGluZyh2bm9kZS5fcGFyZW50LCB2bm9kZS5faW5kZXggKyAxKVxuXHRcdFx0OiBudWxsO1xuXHR9XG5cblx0bGV0IHNpYmxpbmc7XG5cdGZvciAoOyBjaGlsZEluZGV4IDwgdm5vZGUuX2NoaWxkcmVuLmxlbmd0aDsgY2hpbGRJbmRleCsrKSB7XG5cdFx0c2libGluZyA9IHZub2RlLl9jaGlsZHJlbltjaGlsZEluZGV4XTtcblxuXHRcdGlmIChzaWJsaW5nICE9IG51bGwgJiYgc2libGluZy5fZG9tICE9IG51bGwpIHtcblx0XHRcdC8vIFNpbmNlIHVwZGF0ZVBhcmVudERvbVBvaW50ZXJzIGtlZXBzIF9kb20gcG9pbnRlciBjb3JyZWN0LFxuXHRcdFx0Ly8gd2UgY2FuIHJlbHkgb24gX2RvbSB0byB0ZWxsIHVzIGlmIHRoaXMgc3VidHJlZSBjb250YWlucyBhXG5cdFx0XHQvLyByZW5kZXJlZCBET00gbm9kZSwgYW5kIHdoYXQgdGhlIGZpcnN0IHJlbmRlcmVkIERPTSBub2RlIGlzXG5cdFx0XHRyZXR1cm4gc2libGluZy5fZG9tO1xuXHRcdH1cblx0fVxuXG5cdC8vIElmIHdlIGdldCBoZXJlLCB3ZSBoYXZlIG5vdCBmb3VuZCBhIERPTSBub2RlIGluIHRoaXMgdm5vZGUncyBjaGlsZHJlbi5cblx0Ly8gV2UgbXVzdCByZXN1bWUgZnJvbSB0aGlzIHZub2RlJ3Mgc2libGluZyAoaW4gaXQncyBwYXJlbnQgX2NoaWxkcmVuIGFycmF5KVxuXHQvLyBPbmx5IGNsaW1iIHVwIGFuZCBzZWFyY2ggdGhlIHBhcmVudCBpZiB3ZSBhcmVuJ3Qgc2VhcmNoaW5nIHRocm91Z2ggYSBET01cblx0Ly8gVk5vZGUgKG1lYW5pbmcgd2UgcmVhY2hlZCB0aGUgRE9NIHBhcmVudCBvZiB0aGUgb3JpZ2luYWwgdm5vZGUgdGhhdCBiZWdhblxuXHQvLyB0aGUgc2VhcmNoKVxuXHRyZXR1cm4gdHlwZW9mIHZub2RlLnR5cGUgPT0gJ2Z1bmN0aW9uJyA/IGdldERvbVNpYmxpbmcodm5vZGUpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBUcmlnZ2VyIGluLXBsYWNlIHJlLXJlbmRlcmluZyBvZiBhIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7Q29tcG9uZW50fSBjb21wb25lbnQgVGhlIGNvbXBvbmVudCB0byByZXJlbmRlclxuICovXG5mdW5jdGlvbiByZW5kZXJDb21wb25lbnQoY29tcG9uZW50KSB7XG5cdGxldCBvbGRWTm9kZSA9IGNvbXBvbmVudC5fdm5vZGUsXG5cdFx0b2xkRG9tID0gb2xkVk5vZGUuX2RvbSxcblx0XHRjb21taXRRdWV1ZSA9IFtdLFxuXHRcdHJlZlF1ZXVlID0gW107XG5cblx0aWYgKGNvbXBvbmVudC5fcGFyZW50RG9tKSB7XG5cdFx0Y29uc3QgbmV3Vk5vZGUgPSBhc3NpZ24oe30sIG9sZFZOb2RlKTtcblx0XHRuZXdWTm9kZS5fb3JpZ2luYWwgPSBvbGRWTm9kZS5fb3JpZ2luYWwgKyAxO1xuXHRcdGlmIChvcHRpb25zLnZub2RlKSBvcHRpb25zLnZub2RlKG5ld1ZOb2RlKTtcblxuXHRcdGRpZmYoXG5cdFx0XHRjb21wb25lbnQuX3BhcmVudERvbSxcblx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRjb21wb25lbnQuX2dsb2JhbENvbnRleHQsXG5cdFx0XHRjb21wb25lbnQuX3BhcmVudERvbS5uYW1lc3BhY2VVUkksXG5cdFx0XHRvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUgPyBbb2xkRG9tXSA6IG51bGwsXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdG9sZERvbSA9PSBudWxsID8gZ2V0RG9tU2libGluZyhvbGRWTm9kZSkgOiBvbGREb20sXG5cdFx0XHQhIShvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUpLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXG5cdFx0bmV3Vk5vZGUuX29yaWdpbmFsID0gb2xkVk5vZGUuX29yaWdpbmFsO1xuXHRcdG5ld1ZOb2RlLl9wYXJlbnQuX2NoaWxkcmVuW25ld1ZOb2RlLl9pbmRleF0gPSBuZXdWTm9kZTtcblx0XHRjb21taXRSb290KGNvbW1pdFF1ZXVlLCBuZXdWTm9kZSwgcmVmUXVldWUpO1xuXG5cdFx0aWYgKG5ld1ZOb2RlLl9kb20gIT0gb2xkRG9tKSB7XG5cdFx0XHR1cGRhdGVQYXJlbnREb21Qb2ludGVycyhuZXdWTm9kZSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gdm5vZGVcbiAqL1xuZnVuY3Rpb24gdXBkYXRlUGFyZW50RG9tUG9pbnRlcnModm5vZGUpIHtcblx0aWYgKCh2bm9kZSA9IHZub2RlLl9wYXJlbnQpICE9IG51bGwgJiYgdm5vZGUuX2NvbXBvbmVudCAhPSBudWxsKSB7XG5cdFx0dm5vZGUuX2RvbSA9IHZub2RlLl9jb21wb25lbnQuYmFzZSA9IG51bGw7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2bm9kZS5fY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBjaGlsZCA9IHZub2RlLl9jaGlsZHJlbltpXTtcblx0XHRcdGlmIChjaGlsZCAhPSBudWxsICYmIGNoaWxkLl9kb20gIT0gbnVsbCkge1xuXHRcdFx0XHR2bm9kZS5fZG9tID0gdm5vZGUuX2NvbXBvbmVudC5iYXNlID0gY2hpbGQuX2RvbTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHVwZGF0ZVBhcmVudERvbVBvaW50ZXJzKHZub2RlKTtcblx0fVxufVxuXG4vKipcbiAqIFRoZSByZW5kZXIgcXVldWVcbiAqIEB0eXBlIHtBcnJheTxDb21wb25lbnQ+fVxuICovXG5sZXQgcmVyZW5kZXJRdWV1ZSA9IFtdO1xuXG4vKlxuICogVGhlIHZhbHVlIG9mIGBDb21wb25lbnQuZGVib3VuY2VgIG11c3QgYXN5bmNocm9ub3VzbHkgaW52b2tlIHRoZSBwYXNzZWQgaW4gY2FsbGJhY2suIEl0IGlzXG4gKiBpbXBvcnRhbnQgdGhhdCBjb250cmlidXRvcnMgdG8gUHJlYWN0IGNhbiBjb25zaXN0ZW50bHkgcmVhc29uIGFib3V0IHdoYXQgY2FsbHMgdG8gYHNldFN0YXRlYCwgZXRjLlxuICogZG8sIGFuZCB3aGVuIHRoZWlyIGVmZmVjdHMgd2lsbCBiZSBhcHBsaWVkLiBTZWUgdGhlIGxpbmtzIGJlbG93IGZvciBzb21lIGZ1cnRoZXIgcmVhZGluZyBvbiBkZXNpZ25pbmdcbiAqIGFzeW5jaHJvbm91cyBBUElzLlxuICogKiBbRGVzaWduaW5nIEFQSXMgZm9yIEFzeW5jaHJvbnldKGh0dHBzOi8vYmxvZy5penMubWUvMjAxMy8wOC9kZXNpZ25pbmctYXBpcy1mb3ItYXN5bmNocm9ueSlcbiAqICogW0NhbGxiYWNrcyBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzXShodHRwczovL2Jsb2cub21ldGVyLmNvbS8yMDExLzA3LzI0L2NhbGxiYWNrcy1zeW5jaHJvbm91cy1hbmQtYXN5bmNocm9ub3VzLylcbiAqL1xuXG5sZXQgcHJldkRlYm91bmNlO1xuXG5jb25zdCBkZWZlciA9XG5cdHR5cGVvZiBQcm9taXNlID09ICdmdW5jdGlvbidcblx0XHQ/IFByb21pc2UucHJvdG90eXBlLnRoZW4uYmluZChQcm9taXNlLnJlc29sdmUoKSlcblx0XHQ6IHNldFRpbWVvdXQ7XG5cbi8qKlxuICogRW5xdWV1ZSBhIHJlcmVuZGVyIG9mIGEgY29tcG9uZW50XG4gKiBAcGFyYW0ge0NvbXBvbmVudH0gYyBUaGUgY29tcG9uZW50IHRvIHJlcmVuZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnF1ZXVlUmVuZGVyKGMpIHtcblx0aWYgKFxuXHRcdCghYy5fZGlydHkgJiZcblx0XHRcdChjLl9kaXJ0eSA9IHRydWUpICYmXG5cdFx0XHRyZXJlbmRlclF1ZXVlLnB1c2goYykgJiZcblx0XHRcdCFwcm9jZXNzLl9yZXJlbmRlckNvdW50KyspIHx8XG5cdFx0cHJldkRlYm91bmNlICE9PSBvcHRpb25zLmRlYm91bmNlUmVuZGVyaW5nXG5cdCkge1xuXHRcdHByZXZEZWJvdW5jZSA9IG9wdGlvbnMuZGVib3VuY2VSZW5kZXJpbmc7XG5cdFx0KHByZXZEZWJvdW5jZSB8fCBkZWZlcikocHJvY2Vzcyk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBvbmVudH0gYVxuICogQHBhcmFtIHtDb21wb25lbnR9IGJcbiAqL1xuY29uc3QgZGVwdGhTb3J0ID0gKGEsIGIpID0+IGEuX3Zub2RlLl9kZXB0aCAtIGIuX3Zub2RlLl9kZXB0aDtcblxuLyoqIEZsdXNoIHRoZSByZW5kZXIgcXVldWUgYnkgcmVyZW5kZXJpbmcgYWxsIHF1ZXVlZCBjb21wb25lbnRzICovXG5mdW5jdGlvbiBwcm9jZXNzKCkge1xuXHRsZXQgYztcblx0cmVyZW5kZXJRdWV1ZS5zb3J0KGRlcHRoU29ydCk7XG5cdC8vIERvbid0IHVwZGF0ZSBgcmVuZGVyQ291bnRgIHlldC4gS2VlcCBpdHMgdmFsdWUgbm9uLXplcm8gdG8gcHJldmVudCB1bm5lY2Vzc2FyeVxuXHQvLyBwcm9jZXNzKCkgY2FsbHMgZnJvbSBnZXR0aW5nIHNjaGVkdWxlZCB3aGlsZSBgcXVldWVgIGlzIHN0aWxsIGJlaW5nIGNvbnN1bWVkLlxuXHR3aGlsZSAoKGMgPSByZXJlbmRlclF1ZXVlLnNoaWZ0KCkpKSB7XG5cdFx0aWYgKGMuX2RpcnR5KSB7XG5cdFx0XHRsZXQgcmVuZGVyUXVldWVMZW5ndGggPSByZXJlbmRlclF1ZXVlLmxlbmd0aDtcblx0XHRcdHJlbmRlckNvbXBvbmVudChjKTtcblx0XHRcdGlmIChyZXJlbmRlclF1ZXVlLmxlbmd0aCA+IHJlbmRlclF1ZXVlTGVuZ3RoKSB7XG5cdFx0XHRcdC8vIFdoZW4gaS5lLiByZXJlbmRlcmluZyBhIHByb3ZpZGVyIGFkZGl0aW9uYWwgbmV3IGl0ZW1zIGNhbiBiZSBpbmplY3RlZCwgd2Ugd2FudCB0b1xuXHRcdFx0XHQvLyBrZWVwIHRoZSBvcmRlciBmcm9tIHRvcCB0byBib3R0b20gd2l0aCB0aG9zZSBuZXcgaXRlbXMgc28gd2UgY2FuIGhhbmRsZSB0aGVtIGluIGFcblx0XHRcdFx0Ly8gc2luZ2xlIHBhc3Ncblx0XHRcdFx0cmVyZW5kZXJRdWV1ZS5zb3J0KGRlcHRoU29ydCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHByb2Nlc3MuX3JlcmVuZGVyQ291bnQgPSAwO1xufVxuXG5wcm9jZXNzLl9yZXJlbmRlckNvdW50ID0gMDtcbiIsICJpbXBvcnQgeyBJU19OT05fRElNRU5TSU9OQUwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IG9wdGlvbnMgZnJvbSAnLi4vb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIHNldFN0eWxlKHN0eWxlLCBrZXksIHZhbHVlKSB7XG5cdGlmIChrZXlbMF0gPT09ICctJykge1xuXHRcdHN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWUpO1xuXHR9IGVsc2UgaWYgKHZhbHVlID09IG51bGwpIHtcblx0XHRzdHlsZVtrZXldID0gJyc7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlICE9ICdudW1iZXInIHx8IElTX05PTl9ESU1FTlNJT05BTC50ZXN0KGtleSkpIHtcblx0XHRzdHlsZVtrZXldID0gdmFsdWU7XG5cdH0gZWxzZSB7XG5cdFx0c3R5bGVba2V5XSA9IHZhbHVlICsgJ3B4Jztcblx0fVxufVxuXG4vLyBBIGxvZ2ljYWwgY2xvY2sgdG8gc29sdmUgaXNzdWVzIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL3ByZWFjdGpzL3ByZWFjdC9pc3N1ZXMvMzkyNy5cbi8vIFdoZW4gdGhlIERPTSBwZXJmb3JtcyBhbiBldmVudCBpdCBsZWF2ZXMgbWljcm8tdGlja3MgaW4gYmV0d2VlbiBidWJibGluZyB1cCB3aGljaCBtZWFucyB0aGF0XG4vLyBhbiBldmVudCBjYW4gdHJpZ2dlciBvbiBhIG5ld2x5IHJlYXRlZCBET00tbm9kZSB3aGlsZSB0aGUgZXZlbnQgYnViYmxlcyB1cC5cbi8vXG4vLyBPcmlnaW5hbGx5IGluc3BpcmVkIGJ5IFZ1ZVxuLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy9jb3JlL2Jsb2IvY2FlYjhhNjg4MTFhMWIwZjc5L3BhY2thZ2VzL3J1bnRpbWUtZG9tL3NyYy9tb2R1bGVzL2V2ZW50cy50cyNMOTAtTDEwMSksXG4vLyBidXQgbW9kaWZpZWQgdG8gdXNlIGEgbG9naWNhbCBjbG9jayBpbnN0ZWFkIG9mIERhdGUubm93KCkgaW4gY2FzZSBldmVudCBoYW5kbGVycyBnZXQgYXR0YWNoZWRcbi8vIGFuZCBldmVudHMgZ2V0IGRpc3BhdGNoZWQgZHVyaW5nIHRoZSBzYW1lIG1pbGxpc2Vjb25kLlxuLy9cbi8vIFRoZSBjbG9jayBpcyBpbmNyZW1lbnRlZCBhZnRlciBlYWNoIG5ldyBldmVudCBkaXNwYXRjaC4gVGhpcyBhbGxvd3MgMSAwMDAgMDAwIG5ldyBldmVudHNcbi8vIHBlciBzZWNvbmQgZm9yIG92ZXIgMjgwIHllYXJzIGJlZm9yZSB0aGUgdmFsdWUgcmVhY2hlcyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAoMioqNTMgLSAxKS5cbmxldCBldmVudENsb2NrID0gMDtcblxuLyoqXG4gKiBTZXQgYSBwcm9wZXJ0eSB2YWx1ZSBvbiBhIERPTSBub2RlXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IGRvbSBUaGUgRE9NIG5vZGUgdG8gbW9kaWZ5XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0XG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHByb3BlcnR5IHRvXG4gKiBAcGFyYW0geyp9IG9sZFZhbHVlIFRoZSBvbGQgdmFsdWUgdGhlIHByb3BlcnR5IGhhZFxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVzcGFjZSBXaGV0aGVyIG9yIG5vdCB0aGlzIERPTSBub2RlIGlzIGFuIFNWRyBub2RlIG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvcGVydHkoZG9tLCBuYW1lLCB2YWx1ZSwgb2xkVmFsdWUsIG5hbWVzcGFjZSkge1xuXHRsZXQgdXNlQ2FwdHVyZTtcblxuXHRvOiBpZiAobmFtZSA9PT0gJ3N0eWxlJykge1xuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHRcdGRvbS5zdHlsZS5jc3NUZXh0ID0gdmFsdWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICh0eXBlb2Ygb2xkVmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0ZG9tLnN0eWxlLmNzc1RleHQgPSBvbGRWYWx1ZSA9ICcnO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob2xkVmFsdWUpIHtcblx0XHRcdFx0Zm9yIChuYW1lIGluIG9sZFZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKCEodmFsdWUgJiYgbmFtZSBpbiB2YWx1ZSkpIHtcblx0XHRcdFx0XHRcdHNldFN0eWxlKGRvbS5zdHlsZSwgbmFtZSwgJycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAodmFsdWUpIHtcblx0XHRcdFx0Zm9yIChuYW1lIGluIHZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKCFvbGRWYWx1ZSB8fCB2YWx1ZVtuYW1lXSAhPT0gb2xkVmFsdWVbbmFtZV0pIHtcblx0XHRcdFx0XHRcdHNldFN0eWxlKGRvbS5zdHlsZSwgbmFtZSwgdmFsdWVbbmFtZV0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQvLyBCZW5jaG1hcmsgZm9yIGNvbXBhcmlzb246IGh0dHBzOi8vZXNiZW5jaC5jb20vYmVuY2gvNTc0Yzk1NGJkYjk2NWI5YTAwOTY1YWM2XG5cdGVsc2UgaWYgKG5hbWVbMF0gPT09ICdvJyAmJiBuYW1lWzFdID09PSAnbicpIHtcblx0XHR1c2VDYXB0dXJlID1cblx0XHRcdG5hbWUgIT09IChuYW1lID0gbmFtZS5yZXBsYWNlKC8oUG9pbnRlckNhcHR1cmUpJHxDYXB0dXJlJC9pLCAnJDEnKSk7XG5cblx0XHQvLyBJbmZlciBjb3JyZWN0IGNhc2luZyBmb3IgRE9NIGJ1aWx0LWluIGV2ZW50czpcblx0XHRpZiAoXG5cdFx0XHRuYW1lLnRvTG93ZXJDYXNlKCkgaW4gZG9tIHx8XG5cdFx0XHRuYW1lID09PSAnb25Gb2N1c091dCcgfHxcblx0XHRcdG5hbWUgPT09ICdvbkZvY3VzSW4nXG5cdFx0KVxuXHRcdFx0bmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgyKTtcblx0XHRlbHNlIG5hbWUgPSBuYW1lLnNsaWNlKDIpO1xuXG5cdFx0aWYgKCFkb20uX2xpc3RlbmVycykgZG9tLl9saXN0ZW5lcnMgPSB7fTtcblx0XHRkb20uX2xpc3RlbmVyc1tuYW1lICsgdXNlQ2FwdHVyZV0gPSB2YWx1ZTtcblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0aWYgKCFvbGRWYWx1ZSkge1xuXHRcdFx0XHR2YWx1ZS5fYXR0YWNoZWQgPSBldmVudENsb2NrO1xuXHRcdFx0XHRkb20uYWRkRXZlbnRMaXN0ZW5lcihcblx0XHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRcdHVzZUNhcHR1cmUgPyBldmVudFByb3h5Q2FwdHVyZSA6IGV2ZW50UHJveHksXG5cdFx0XHRcdFx0dXNlQ2FwdHVyZVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFsdWUuX2F0dGFjaGVkID0gb2xkVmFsdWUuX2F0dGFjaGVkO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0dXNlQ2FwdHVyZSA/IGV2ZW50UHJveHlDYXB0dXJlIDogZXZlbnRQcm94eSxcblx0XHRcdFx0dXNlQ2FwdHVyZVxuXHRcdFx0KTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0aWYgKG5hbWVzcGFjZSA9PSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnKSB7XG5cdFx0XHQvLyBOb3JtYWxpemUgaW5jb3JyZWN0IHByb3AgdXNhZ2UgZm9yIFNWRzpcblx0XHRcdC8vIC0geGxpbms6aHJlZiAvIHhsaW5rSHJlZiAtLT4gaHJlZiAoeGxpbms6aHJlZiB3YXMgcmVtb3ZlZCBmcm9tIFNWRyBhbmQgaXNuJ3QgbmVlZGVkKVxuXHRcdFx0Ly8gLSBjbGFzc05hbWUgLS0+IGNsYXNzXG5cdFx0XHRuYW1lID0gbmFtZS5yZXBsYWNlKC94bGluayhIfDpoKS8sICdoJykucmVwbGFjZSgvc05hbWUkLywgJ3MnKTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0bmFtZSAhPSAnd2lkdGgnICYmXG5cdFx0XHRuYW1lICE9ICdoZWlnaHQnICYmXG5cdFx0XHRuYW1lICE9ICdocmVmJyAmJlxuXHRcdFx0bmFtZSAhPSAnbGlzdCcgJiZcblx0XHRcdG5hbWUgIT0gJ2Zvcm0nICYmXG5cdFx0XHQvLyBEZWZhdWx0IHZhbHVlIGluIGJyb3dzZXJzIGlzIGAtMWAgYW5kIGFuIGVtcHR5IHN0cmluZyBpc1xuXHRcdFx0Ly8gY2FzdCB0byBgMGAgaW5zdGVhZFxuXHRcdFx0bmFtZSAhPSAndGFiSW5kZXgnICYmXG5cdFx0XHRuYW1lICE9ICdkb3dubG9hZCcgJiZcblx0XHRcdG5hbWUgIT0gJ3Jvd1NwYW4nICYmXG5cdFx0XHRuYW1lICE9ICdjb2xTcGFuJyAmJlxuXHRcdFx0bmFtZSAhPSAncm9sZScgJiZcblx0XHRcdG5hbWUgIT0gJ3BvcG92ZXInICYmXG5cdFx0XHRuYW1lIGluIGRvbVxuXHRcdCkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZG9tW25hbWVdID0gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XG5cdFx0XHRcdC8vIGxhYmVsbGVkIGJyZWFrIGlzIDFiIHNtYWxsZXIgaGVyZSB0aGFuIGEgcmV0dXJuIHN0YXRlbWVudCAoc29ycnkpXG5cdFx0XHRcdGJyZWFrIG87XG5cdFx0XHR9IGNhdGNoIChlKSB7fVxuXHRcdH1cblxuXHRcdC8vIGFyaWEtIGFuZCBkYXRhLSBhdHRyaWJ1dGVzIGhhdmUgbm8gYm9vbGVhbiByZXByZXNlbnRhdGlvbi5cblx0XHQvLyBBIGBmYWxzZWAgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIGF0dHJpYnV0ZSBub3QgYmVpbmdcblx0XHQvLyBwcmVzZW50LCBzbyB3ZSBjYW4ndCByZW1vdmUgaXQuIEZvciBub24tYm9vbGVhbiBhcmlhXG5cdFx0Ly8gYXR0cmlidXRlcyB3ZSBjb3VsZCB0cmVhdCBmYWxzZSBhcyBhIHJlbW92YWwsIGJ1dCB0aGVcblx0XHQvLyBhbW91bnQgb2YgZXhjZXB0aW9ucyB3b3VsZCBjb3N0IHRvbyBtYW55IGJ5dGVzLiBPbiB0b3Agb2Zcblx0XHQvLyB0aGF0IG90aGVyIGZyYW1ld29ya3MgZ2VuZXJhbGx5IHN0cmluZ2lmeSBgZmFsc2VgLlxuXG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHQvLyBuZXZlciBzZXJpYWxpemUgZnVuY3Rpb25zIGFzIGF0dHJpYnV0ZSB2YWx1ZXNcblx0XHR9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwgJiYgKHZhbHVlICE9PSBmYWxzZSB8fCBuYW1lWzRdID09PSAnLScpKSB7XG5cdFx0XHRkb20uc2V0QXR0cmlidXRlKG5hbWUsIG5hbWUgPT0gJ3BvcG92ZXInICYmIHZhbHVlID09IHRydWUgPyAnJyA6IHZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZG9tLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXZlbnQgcHJveHkgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHVzZUNhcHR1cmUgSXMgdGhlIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBjYXB0dXJlIHBoYXNlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXZlbnRQcm94eSh1c2VDYXB0dXJlKSB7XG5cdC8qKlxuXHQgKiBQcm94eSBhbiBldmVudCB0byBob29rZWQgZXZlbnQgaGFuZGxlcnNcblx0ICogQHBhcmFtIHtQcmVhY3RFdmVudH0gZSBUaGUgZXZlbnQgb2JqZWN0IGZyb20gdGhlIGJyb3dzZXJcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHJldHVybiBmdW5jdGlvbiAoZSkge1xuXHRcdGlmICh0aGlzLl9saXN0ZW5lcnMpIHtcblx0XHRcdGNvbnN0IGV2ZW50SGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1tlLnR5cGUgKyB1c2VDYXB0dXJlXTtcblx0XHRcdGlmIChlLl9kaXNwYXRjaGVkID09IG51bGwpIHtcblx0XHRcdFx0ZS5fZGlzcGF0Y2hlZCA9IGV2ZW50Q2xvY2srKztcblxuXHRcdFx0XHQvLyBXaGVuIGBlLl9kaXNwYXRjaGVkYCBpcyBzbWFsbGVyIHRoYW4gdGhlIHRpbWUgd2hlbiB0aGUgdGFyZ2V0ZWQgZXZlbnRcblx0XHRcdFx0Ly8gaGFuZGxlciB3YXMgYXR0YWNoZWQgd2Uga25vdyB3ZSBoYXZlIGJ1YmJsZWQgdXAgdG8gYW4gZWxlbWVudCB0aGF0IHdhcyBhZGRlZFxuXHRcdFx0XHQvLyBkdXJpbmcgcGF0Y2hpbmcgdGhlIERPTS5cblx0XHRcdH0gZWxzZSBpZiAoZS5fZGlzcGF0Y2hlZCA8IGV2ZW50SGFuZGxlci5fYXR0YWNoZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGV2ZW50SGFuZGxlcihvcHRpb25zLmV2ZW50ID8gb3B0aW9ucy5ldmVudChlKSA6IGUpO1xuXHRcdH1cblx0fTtcbn1cblxuY29uc3QgZXZlbnRQcm94eSA9IGNyZWF0ZUV2ZW50UHJveHkoZmFsc2UpO1xuY29uc3QgZXZlbnRQcm94eUNhcHR1cmUgPSBjcmVhdGVFdmVudFByb3h5KHRydWUpO1xuIiwgImltcG9ydCB7IGVucXVldWVSZW5kZXIgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5cbmV4cG9ydCBsZXQgaSA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250ZXh0KGRlZmF1bHRWYWx1ZSwgY29udGV4dElkKSB7XG5cdGNvbnRleHRJZCA9ICdfX2NDJyArIGkrKztcblxuXHRjb25zdCBjb250ZXh0ID0ge1xuXHRcdF9pZDogY29udGV4dElkLFxuXHRcdF9kZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSxcblx0XHQvKiogQHR5cGUge0Z1bmN0aW9uQ29tcG9uZW50fSAqL1xuXHRcdENvbnN1bWVyKHByb3BzLCBjb250ZXh0VmFsdWUpIHtcblx0XHRcdC8vIHJldHVybiBwcm9wcy5jaGlsZHJlbihcblx0XHRcdC8vIFx0Y29udGV4dFtjb250ZXh0SWRdID8gY29udGV4dFtjb250ZXh0SWRdLnByb3BzLnZhbHVlIDogZGVmYXVsdFZhbHVlXG5cdFx0XHQvLyApO1xuXHRcdFx0cmV0dXJuIHByb3BzLmNoaWxkcmVuKGNvbnRleHRWYWx1ZSk7XG5cdFx0fSxcblx0XHQvKiogQHR5cGUge0Z1bmN0aW9uQ29tcG9uZW50fSAqL1xuXHRcdFByb3ZpZGVyKHByb3BzKSB7XG5cdFx0XHRpZiAoIXRoaXMuZ2V0Q2hpbGRDb250ZXh0KSB7XG5cdFx0XHRcdC8qKiBAdHlwZSB7U2V0PENvbXBvbmVudD4gfCBudWxsfSAqL1xuXHRcdFx0XHRsZXQgc3VicyA9IG5ldyBTZXQoKTtcblx0XHRcdFx0bGV0IGN0eCA9IHt9O1xuXHRcdFx0XHRjdHhbY29udGV4dElkXSA9IHRoaXM7XG5cblx0XHRcdFx0dGhpcy5nZXRDaGlsZENvbnRleHQgPSAoKSA9PiBjdHg7XG5cblx0XHRcdFx0dGhpcy5jb21wb25lbnRXaWxsVW5tb3VudCA9ICgpID0+IHtcblx0XHRcdFx0XHRzdWJzID0gbnVsbDtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIChfcHJvcHMpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gX3Byb3BzLnZhbHVlKSB7XG5cdFx0XHRcdFx0XHRzdWJzLmZvckVhY2goYyA9PiB7XG5cdFx0XHRcdFx0XHRcdGMuX2ZvcmNlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0ZW5xdWV1ZVJlbmRlcihjKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLnN1YiA9IGMgPT4ge1xuXHRcdFx0XHRcdHN1YnMuYWRkKGMpO1xuXHRcdFx0XHRcdGxldCBvbGQgPSBjLmNvbXBvbmVudFdpbGxVbm1vdW50O1xuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFVubW91bnQgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc3Vicykge1xuXHRcdFx0XHRcdFx0XHRzdWJzLmRlbGV0ZShjKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChvbGQpIG9sZC5jYWxsKGMpO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcblx0XHR9XG5cdH07XG5cblx0Ly8gRGV2dG9vbHMgbmVlZHMgYWNjZXNzIHRvIHRoZSBjb250ZXh0IG9iamVjdCB3aGVuIGl0XG5cdC8vIGVuY291bnRlcnMgYSBQcm92aWRlci4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydFxuXHQvLyBzZXR0aW5nIGBkaXNwbGF5TmFtZWAgb24gdGhlIGNvbnRleHQgb2JqZWN0IGluc3RlYWRcblx0Ly8gb2Ygb24gdGhlIGNvbXBvbmVudCBpdHNlbGYuIFNlZTpcblx0Ly8gaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2NvbnRleHQuaHRtbCNjb250ZXh0ZGlzcGxheW5hbWVcblxuXHRyZXR1cm4gKGNvbnRleHQuUHJvdmlkZXIuX2NvbnRleHRSZWYgPSBjb250ZXh0LkNvbnN1bWVyLmNvbnRleHRUeXBlID1cblx0XHRjb250ZXh0KTtcbn1cbiIsICJpbXBvcnQgeyBkaWZmLCB1bm1vdW50LCBhcHBseVJlZiB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgY3JlYXRlVk5vZGUsIEZyYWdtZW50IH0gZnJvbSAnLi4vY3JlYXRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgRU1QVFlfT0JKLCBFTVBUWV9BUlIsIElOU0VSVF9WTk9ERSwgTUFUQ0hFRCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBnZXREb21TaWJsaW5nIH0gZnJvbSAnLi4vY29tcG9uZW50JztcblxuLyoqXG4gKiBEaWZmIHRoZSBjaGlsZHJlbiBvZiBhIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtQcmVhY3RFbGVtZW50fSBwYXJlbnREb20gVGhlIERPTSBlbGVtZW50IHdob3NlIGNoaWxkcmVuIGFyZSBiZWluZ1xuICogZGlmZmVkXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVuW119IHJlbmRlclJlc3VsdFxuICogQHBhcmFtIHtWTm9kZX0gbmV3UGFyZW50Vk5vZGUgVGhlIG5ldyB2aXJ0dWFsIG5vZGUgd2hvc2UgY2hpbGRyZW4gc2hvdWxkIGJlXG4gKiBkaWZmJ2VkIGFnYWluc3Qgb2xkUGFyZW50Vk5vZGVcbiAqIEBwYXJhbSB7Vk5vZGV9IG9sZFBhcmVudFZOb2RlIFRoZSBvbGQgdmlydHVhbCBub2RlIHdob3NlIGNoaWxkcmVuIHNob3VsZCBiZVxuICogZGlmZidlZCBhZ2FpbnN0IG5ld1BhcmVudFZOb2RlXG4gKiBAcGFyYW0ge29iamVjdH0gZ2xvYmFsQ29udGV4dCBUaGUgY3VycmVudCBjb250ZXh0IG9iamVjdCAtIG1vZGlmaWVkIGJ5XG4gKiBnZXRDaGlsZENvbnRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgQ3VycmVudCBuYW1lc3BhY2Ugb2YgdGhlIERPTSBub2RlIChIVE1MLCBTVkcsIG9yIE1hdGhNTClcbiAqIEBwYXJhbSB7QXJyYXk8UHJlYWN0RWxlbWVudD59IGV4Y2Vzc0RvbUNoaWxkcmVuXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudD59IGNvbW1pdFF1ZXVlIExpc3Qgb2YgY29tcG9uZW50cyB3aGljaCBoYXZlIGNhbGxiYWNrc1xuICogdG8gaW52b2tlIGluIGNvbW1pdFJvb3RcbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gb2xkRG9tIFRoZSBjdXJyZW50IGF0dGFjaGVkIERPTSBlbGVtZW50IGFueSBuZXcgZG9tXG4gKiBlbGVtZW50cyBzaG91bGQgYmUgcGxhY2VkIGFyb3VuZC4gTGlrZWx5IGBudWxsYCBvbiBmaXJzdCByZW5kZXIgKGV4Y2VwdCB3aGVuXG4gKiBoeWRyYXRpbmcpLiBDYW4gYmUgYSBzaWJsaW5nIERPTSBlbGVtZW50IHdoZW4gZGlmZmluZyBGcmFnbWVudHMgdGhhdCBoYXZlXG4gKiBzaWJsaW5ncy4gSW4gbW9zdCBjYXNlcywgaXQgc3RhcnRzIG91dCBhcyBgb2xkQ2hpbGRyZW5bMF0uX2RvbWAuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzSHlkcmF0aW5nIFdoZXRoZXIgb3Igbm90IHdlIGFyZSBpbiBoeWRyYXRpb25cbiAqIEBwYXJhbSB7YW55W119IHJlZlF1ZXVlIGFuIGFycmF5IG9mIGVsZW1lbnRzIG5lZWRlZCB0byBpbnZva2UgcmVmc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNoaWxkcmVuKFxuXHRwYXJlbnREb20sXG5cdHJlbmRlclJlc3VsdCxcblx0bmV3UGFyZW50Vk5vZGUsXG5cdG9sZFBhcmVudFZOb2RlLFxuXHRnbG9iYWxDb250ZXh0LFxuXHRuYW1lc3BhY2UsXG5cdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRjb21taXRRdWV1ZSxcblx0b2xkRG9tLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHRsZXQgaSxcblx0XHQvKiogQHR5cGUge1ZOb2RlfSAqL1xuXHRcdG9sZFZOb2RlLFxuXHRcdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdFx0Y2hpbGRWTm9kZSxcblx0XHQvKiogQHR5cGUge1ByZWFjdEVsZW1lbnR9ICovXG5cdFx0bmV3RG9tLFxuXHRcdC8qKiBAdHlwZSB7UHJlYWN0RWxlbWVudH0gKi9cblx0XHRmaXJzdENoaWxkRG9tO1xuXG5cdC8vIFRoaXMgaXMgYSBjb21wcmVzc2lvbiBvZiBvbGRQYXJlbnRWTm9kZSE9bnVsbCAmJiBvbGRQYXJlbnRWTm9kZSAhPSBFTVBUWV9PQkogJiYgb2xkUGFyZW50Vk5vZGUuX2NoaWxkcmVuIHx8IEVNUFRZX0FSUlxuXHQvLyBhcyBFTVBUWV9PQkouX2NoaWxkcmVuIHNob3VsZCBiZSBgdW5kZWZpbmVkYC5cblx0LyoqIEB0eXBlIHtWTm9kZVtdfSAqL1xuXHRsZXQgb2xkQ2hpbGRyZW4gPSAob2xkUGFyZW50Vk5vZGUgJiYgb2xkUGFyZW50Vk5vZGUuX2NoaWxkcmVuKSB8fCBFTVBUWV9BUlI7XG5cblx0bGV0IG5ld0NoaWxkcmVuTGVuZ3RoID0gcmVuZGVyUmVzdWx0Lmxlbmd0aDtcblxuXHRuZXdQYXJlbnRWTm9kZS5fbmV4dERvbSA9IG9sZERvbTtcblx0Y29uc3RydWN0TmV3Q2hpbGRyZW5BcnJheShuZXdQYXJlbnRWTm9kZSwgcmVuZGVyUmVzdWx0LCBvbGRDaGlsZHJlbik7XG5cdG9sZERvbSA9IG5ld1BhcmVudFZOb2RlLl9uZXh0RG9tO1xuXG5cdGZvciAoaSA9IDA7IGkgPCBuZXdDaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG5cdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXTtcblx0XHRpZiAoY2hpbGRWTm9kZSA9PSBudWxsKSBjb250aW51ZTtcblxuXHRcdC8vIEF0IHRoaXMgcG9pbnQsIGNvbnN0cnVjdE5ld0NoaWxkcmVuQXJyYXkgaGFzIGFzc2lnbmVkIF9pbmRleCB0byBiZSB0aGVcblx0XHQvLyBtYXRjaGluZ0luZGV4IGZvciB0aGlzIFZOb2RlJ3Mgb2xkVk5vZGUgKG9yIC0xIGlmIHRoZXJlIGlzIG5vIG9sZFZOb2RlKS5cblx0XHRpZiAoY2hpbGRWTm9kZS5faW5kZXggPT09IC0xKSB7XG5cdFx0XHRvbGRWTm9kZSA9IEVNUFRZX09CSjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlbltjaGlsZFZOb2RlLl9pbmRleF0gfHwgRU1QVFlfT0JKO1xuXHRcdH1cblxuXHRcdC8vIFVwZGF0ZSBjaGlsZFZOb2RlLl9pbmRleCB0byBpdHMgZmluYWwgaW5kZXhcblx0XHRjaGlsZFZOb2RlLl9pbmRleCA9IGk7XG5cblx0XHQvLyBNb3JwaCB0aGUgb2xkIGVsZW1lbnQgaW50byB0aGUgbmV3IG9uZSwgYnV0IGRvbid0IGFwcGVuZCBpdCB0byB0aGUgZG9tIHlldFxuXHRcdGRpZmYoXG5cdFx0XHRwYXJlbnREb20sXG5cdFx0XHRjaGlsZFZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRnbG9iYWxDb250ZXh0LFxuXHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdG9sZERvbSxcblx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXG5cdFx0Ly8gQWRqdXN0IERPTSBub2Rlc1xuXHRcdG5ld0RvbSA9IGNoaWxkVk5vZGUuX2RvbTtcblx0XHRpZiAoY2hpbGRWTm9kZS5yZWYgJiYgb2xkVk5vZGUucmVmICE9IGNoaWxkVk5vZGUucmVmKSB7XG5cdFx0XHRpZiAob2xkVk5vZGUucmVmKSB7XG5cdFx0XHRcdGFwcGx5UmVmKG9sZFZOb2RlLnJlZiwgbnVsbCwgY2hpbGRWTm9kZSk7XG5cdFx0XHR9XG5cdFx0XHRyZWZRdWV1ZS5wdXNoKFxuXHRcdFx0XHRjaGlsZFZOb2RlLnJlZixcblx0XHRcdFx0Y2hpbGRWTm9kZS5fY29tcG9uZW50IHx8IG5ld0RvbSxcblx0XHRcdFx0Y2hpbGRWTm9kZVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRpZiAoZmlyc3RDaGlsZERvbSA9PSBudWxsICYmIG5ld0RvbSAhPSBudWxsKSB7XG5cdFx0XHRmaXJzdENoaWxkRG9tID0gbmV3RG9tO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdGNoaWxkVk5vZGUuX2ZsYWdzICYgSU5TRVJUX1ZOT0RFIHx8XG5cdFx0XHRvbGRWTm9kZS5fY2hpbGRyZW4gPT09IGNoaWxkVk5vZGUuX2NoaWxkcmVuXG5cdFx0KSB7XG5cdFx0XHRvbGREb20gPSBpbnNlcnQoY2hpbGRWTm9kZSwgb2xkRG9tLCBwYXJlbnREb20pO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZS50eXBlID09ICdmdW5jdGlvbicgJiZcblx0XHRcdGNoaWxkVk5vZGUuX25leHREb20gIT09IHVuZGVmaW5lZFxuXHRcdCkge1xuXHRcdFx0Ly8gU2luY2UgRnJhZ21lbnRzIG9yIGNvbXBvbmVudHMgdGhhdCByZXR1cm4gRnJhZ21lbnQgbGlrZSBWTm9kZXMgY2FuXG5cdFx0XHQvLyBjb250YWluIG11bHRpcGxlIERPTSBub2RlcyBhcyB0aGUgc2FtZSBsZXZlbCwgY29udGludWUgdGhlIGRpZmYgZnJvbVxuXHRcdFx0Ly8gdGhlIHNpYmxpbmcgb2YgbGFzdCBET00gY2hpbGQgb2YgdGhpcyBjaGlsZCBWTm9kZVxuXHRcdFx0b2xkRG9tID0gY2hpbGRWTm9kZS5fbmV4dERvbTtcblx0XHR9IGVsc2UgaWYgKG5ld0RvbSkge1xuXHRcdFx0b2xkRG9tID0gbmV3RG9tLm5leHRTaWJsaW5nO1xuXHRcdH1cblxuXHRcdC8vIEVhZ2VybHkgY2xlYW51cCBfbmV4dERvbS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJzaXN0IHRoZSB2YWx1ZSBiZWNhdXNlIGl0XG5cdFx0Ly8gaXMgb25seSB1c2VkIGJ5IGBkaWZmQ2hpbGRyZW5gIHRvIGRldGVybWluZSB3aGVyZSB0byByZXN1bWUgdGhlIGRpZmZcblx0XHQvLyBhZnRlciBkaWZmaW5nIENvbXBvbmVudHMgYW5kIEZyYWdtZW50cy4gT25jZSB3ZSBzdG9yZSBpdCB0aGUgbmV4dERPTVxuXHRcdC8vIGxvY2FsIHZhciwgd2UgY2FuIGNsZWFuIHVwIHRoZSBwcm9wZXJ0eS4gQWxzbyBwcmV2ZW50cyB1cyBoYW5naW5nIG9uIHRvXG5cdFx0Ly8gRE9NIG5vZGVzIHRoYXQgbWF5IGhhdmUgYmVlbiB1bm1vdW50ZWQuXG5cdFx0Y2hpbGRWTm9kZS5fbmV4dERvbSA9IHVuZGVmaW5lZDtcblxuXHRcdC8vIFVuc2V0IGRpZmZpbmcgZmxhZ3Ncblx0XHRjaGlsZFZOb2RlLl9mbGFncyAmPSB+KElOU0VSVF9WTk9ERSB8IE1BVENIRUQpO1xuXHR9XG5cblx0Ly8gVE9ETzogV2l0aCBuZXcgY2hpbGQgZGlmZmluZyBhbGdvLCBjb25zaWRlciBhbHQgd2F5cyB0byBkaWZmIEZyYWdtZW50cy5cblx0Ly8gU3VjaCBhcyBkcm9wcGluZyBvbGREb20gYW5kIG1vdmluZyBmcmFnbWVudHMgaW4gcGxhY2Vcblx0Ly9cblx0Ly8gQmVjYXVzZSB0aGUgbmV3UGFyZW50Vk5vZGUgaXMgRnJhZ21lbnQtbGlrZSwgd2UgbmVlZCB0byBzZXQgaXQnc1xuXHQvLyBfbmV4dERvbSBwcm9wZXJ0eSB0byB0aGUgbmV4dFNpYmxpbmcgb2YgaXRzIGxhc3QgY2hpbGQgRE9NIG5vZGUuXG5cdC8vXG5cdC8vIGBvbGREb21gIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHZhbHVlIGhlcmUgYmVjYXVzZSBpZiB0aGUgbGFzdCBjaGlsZFxuXHQvLyBpcyBhIEZyYWdtZW50LWxpa2UsIHRoZW4gb2xkRG9tIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHRvIHRoYXQgY2hpbGQncyBfbmV4dERvbS5cblx0Ly8gSWYgdGhlIGxhc3QgY2hpbGQgaXMgYSBET00gVk5vZGUsIHRoZW4gb2xkRG9tIHdpbGwgYmUgc2V0IHRvIHRoYXQgRE9NXG5cdC8vIG5vZGUncyBuZXh0U2libGluZy5cblx0bmV3UGFyZW50Vk5vZGUuX25leHREb20gPSBvbGREb207XG5cdG5ld1BhcmVudFZOb2RlLl9kb20gPSBmaXJzdENoaWxkRG9tO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Vk5vZGV9IG5ld1BhcmVudFZOb2RlXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVuW119IHJlbmRlclJlc3VsdFxuICogQHBhcmFtIHtWTm9kZVtdfSBvbGRDaGlsZHJlblxuICovXG5mdW5jdGlvbiBjb25zdHJ1Y3ROZXdDaGlsZHJlbkFycmF5KG5ld1BhcmVudFZOb2RlLCByZW5kZXJSZXN1bHQsIG9sZENoaWxkcmVuKSB7XG5cdC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuXHRsZXQgaTtcblx0LyoqIEB0eXBlIHtWTm9kZX0gKi9cblx0bGV0IGNoaWxkVk5vZGU7XG5cdC8qKiBAdHlwZSB7Vk5vZGV9ICovXG5cdGxldCBvbGRWTm9kZTtcblxuXHRjb25zdCBuZXdDaGlsZHJlbkxlbmd0aCA9IHJlbmRlclJlc3VsdC5sZW5ndGg7XG5cdGxldCBvbGRDaGlsZHJlbkxlbmd0aCA9IG9sZENoaWxkcmVuLmxlbmd0aCxcblx0XHRyZW1haW5pbmdPbGRDaGlsZHJlbiA9IG9sZENoaWxkcmVuTGVuZ3RoO1xuXG5cdGxldCBza2V3ID0gMDtcblxuXHRuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW4gPSBbXTtcblx0Zm9yIChpID0gMDsgaSA8IG5ld0NoaWxkcmVuTGVuZ3RoOyBpKyspIHtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFdlIGFyZSByZXVzaW5nIHRoZSBjaGlsZFZOb2RlIHZhcmlhYmxlIHRvIGhvbGQgYm90aCB0aGVcblx0XHQvLyBwcmUgYW5kIHBvc3Qgbm9ybWFsaXplZCBjaGlsZFZOb2RlXG5cdFx0Y2hpbGRWTm9kZSA9IHJlbmRlclJlc3VsdFtpXTtcblxuXHRcdGlmIChcblx0XHRcdGNoaWxkVk5vZGUgPT0gbnVsbCB8fFxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ2Jvb2xlYW4nIHx8XG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZSA9PSAnZnVuY3Rpb24nXG5cdFx0KSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gbnVsbDtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHQvLyBJZiB0aGlzIG5ld1ZOb2RlIGlzIGJlaW5nIHJldXNlZCAoZS5nLiA8ZGl2PntyZXVzZX17cmV1c2V9PC9kaXY+KSBpbiB0aGUgc2FtZSBkaWZmLFxuXHRcdC8vIG9yIHdlIGFyZSByZW5kZXJpbmcgYSBjb21wb25lbnQgKGUuZy4gc2V0U3RhdGUpIGNvcHkgdGhlIG9sZFZOb2RlcyBzbyBpdCBjYW4gaGF2ZVxuXHRcdC8vIGl0J3Mgb3duIERPTSAmIGV0Yy4gcG9pbnRlcnNcblx0XHRlbHNlIGlmIChcblx0XHRcdHR5cGVvZiBjaGlsZFZOb2RlID09ICdzdHJpbmcnIHx8XG5cdFx0XHR0eXBlb2YgY2hpbGRWTm9kZSA9PSAnbnVtYmVyJyB8fFxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZhbGlkLXR5cGVvZlxuXHRcdFx0dHlwZW9mIGNoaWxkVk5vZGUgPT0gJ2JpZ2ludCcgfHxcblx0XHRcdGNoaWxkVk5vZGUuY29uc3RydWN0b3IgPT0gU3RyaW5nXG5cdFx0KSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gY3JlYXRlVk5vZGUoXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdGNoaWxkVk5vZGUsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChpc0FycmF5KGNoaWxkVk5vZGUpKSB7XG5cdFx0XHRjaGlsZFZOb2RlID0gbmV3UGFyZW50Vk5vZGUuX2NoaWxkcmVuW2ldID0gY3JlYXRlVk5vZGUoXG5cdFx0XHRcdEZyYWdtZW50LFxuXHRcdFx0XHR7IGNoaWxkcmVuOiBjaGlsZFZOb2RlIH0sXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdG51bGxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChjaGlsZFZOb2RlLmNvbnN0cnVjdG9yID09PSB1bmRlZmluZWQgJiYgY2hpbGRWTm9kZS5fZGVwdGggPiAwKSB7XG5cdFx0XHQvLyBWTm9kZSBpcyBhbHJlYWR5IGluIHVzZSwgY2xvbmUgaXQuIFRoaXMgY2FuIGhhcHBlbiBpbiB0aGUgZm9sbG93aW5nXG5cdFx0XHQvLyBzY2VuYXJpbzpcblx0XHRcdC8vICAgY29uc3QgcmV1c2UgPSA8ZGl2IC8+XG5cdFx0XHQvLyAgIDxkaXY+e3JldXNlfTxzcGFuIC8+e3JldXNlfTwvZGl2PlxuXHRcdFx0Y2hpbGRWTm9kZSA9IG5ld1BhcmVudFZOb2RlLl9jaGlsZHJlbltpXSA9IGNyZWF0ZVZOb2RlKFxuXHRcdFx0XHRjaGlsZFZOb2RlLnR5cGUsXG5cdFx0XHRcdGNoaWxkVk5vZGUucHJvcHMsXG5cdFx0XHRcdGNoaWxkVk5vZGUua2V5LFxuXHRcdFx0XHRjaGlsZFZOb2RlLnJlZiA/IGNoaWxkVk5vZGUucmVmIDogbnVsbCxcblx0XHRcdFx0Y2hpbGRWTm9kZS5fb3JpZ2luYWxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNoaWxkVk5vZGUgPSBuZXdQYXJlbnRWTm9kZS5fY2hpbGRyZW5baV0gPSBjaGlsZFZOb2RlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNrZXdlZEluZGV4ID0gaSArIHNrZXc7XG5cdFx0Y2hpbGRWTm9kZS5fcGFyZW50ID0gbmV3UGFyZW50Vk5vZGU7XG5cdFx0Y2hpbGRWTm9kZS5fZGVwdGggPSBuZXdQYXJlbnRWTm9kZS5fZGVwdGggKyAxO1xuXG5cdFx0Ly8gVGVtcG9yYXJpbHkgc3RvcmUgdGhlIG1hdGNoaW5nSW5kZXggb24gdGhlIF9pbmRleCBwcm9wZXJ0eSBzbyB3ZSBjYW4gcHVsbFxuXHRcdC8vIG91dCB0aGUgb2xkVk5vZGUgaW4gZGlmZkNoaWxkcmVuLiBXZSdsbCBvdmVycmlkZSB0aGlzIHRvIHRoZSBWTm9kZSdzXG5cdFx0Ly8gZmluYWwgaW5kZXggYWZ0ZXIgdXNpbmcgdGhpcyBwcm9wZXJ0eSB0byBnZXQgdGhlIG9sZFZOb2RlXG5cdFx0Y29uc3QgbWF0Y2hpbmdJbmRleCA9IChjaGlsZFZOb2RlLl9pbmRleCA9IGZpbmRNYXRjaGluZ0luZGV4KFxuXHRcdFx0Y2hpbGRWTm9kZSxcblx0XHRcdG9sZENoaWxkcmVuLFxuXHRcdFx0c2tld2VkSW5kZXgsXG5cdFx0XHRyZW1haW5pbmdPbGRDaGlsZHJlblxuXHRcdCkpO1xuXG5cdFx0b2xkVk5vZGUgPSBudWxsO1xuXHRcdGlmIChtYXRjaGluZ0luZGV4ICE9PSAtMSkge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlblttYXRjaGluZ0luZGV4XTtcblx0XHRcdHJlbWFpbmluZ09sZENoaWxkcmVuLS07XG5cdFx0XHRpZiAob2xkVk5vZGUpIHtcblx0XHRcdFx0b2xkVk5vZGUuX2ZsYWdzIHw9IE1BVENIRUQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gSGVyZSwgd2UgZGVmaW5lIGlzTW91bnRpbmcgZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgc2tldyBkaWZmaW5nXG5cdFx0Ly8gYWxnb3JpdGhtLiBOb2RlcyB0aGF0IGFyZSB1bnN1c3BlbmRpbmcgYXJlIGNvbnNpZGVyZWQgbW91bnRpbmcgYW5kIHdlIGRldGVjdFxuXHRcdC8vIHRoaXMgYnkgY2hlY2tpbmcgaWYgb2xkVk5vZGUuX29yaWdpbmFsID09PSBudWxsXG5cdFx0Y29uc3QgaXNNb3VudGluZyA9IG9sZFZOb2RlID09IG51bGwgfHwgb2xkVk5vZGUuX29yaWdpbmFsID09PSBudWxsO1xuXG5cdFx0aWYgKGlzTW91bnRpbmcpIHtcblx0XHRcdGlmIChtYXRjaGluZ0luZGV4ID09IC0xKSB7XG5cdFx0XHRcdHNrZXctLTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgd2UgYXJlIG1vdW50aW5nIGEgRE9NIFZOb2RlLCBtYXJrIGl0IGZvciBpbnNlcnRpb25cblx0XHRcdGlmICh0eXBlb2YgY2hpbGRWTm9kZS50eXBlICE9ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0Y2hpbGRWTm9kZS5fZmxhZ3MgfD0gSU5TRVJUX1ZOT0RFO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobWF0Y2hpbmdJbmRleCAhPT0gc2tld2VkSW5kZXgpIHtcblx0XHRcdC8vIFdoZW4gd2UgbW92ZSBlbGVtZW50cyBhcm91bmQgaS5lLiBbMCwgMSwgMl0gLS0+IFsxLCAwLCAyXVxuXHRcdFx0Ly8gLS0+IHdlIGRpZmYgMSwgd2UgZmluZCBpdCBhdCBwb3NpdGlvbiAxIHdoaWxlIG91ciBza2V3ZWQgaW5kZXggaXMgMCBhbmQgb3VyIHNrZXcgaXMgMFxuXHRcdFx0Ly8gICAgIHdlIHNldCB0aGUgc2tldyB0byAxIGFzIHdlIGZvdW5kIGFuIG9mZnNldC5cblx0XHRcdC8vIC0tPiB3ZSBkaWZmIDAsIHdlIGZpbmQgaXQgYXQgcG9zaXRpb24gMCB3aGlsZSBvdXIgc2tld2VkIGluZGV4IGlzIGF0IDIgYW5kIG91ciBza2V3IGlzIDFcblx0XHRcdC8vICAgICB0aGlzIG1ha2VzIHVzIGluY3JlYXNlIHRoZSBza2V3IGFnYWluLlxuXHRcdFx0Ly8gLS0+IHdlIGRpZmYgMiwgd2UgZmluZCBpdCBhdCBwb3NpdGlvbiAyIHdoaWxlIG91ciBza2V3ZWQgaW5kZXggaXMgYXQgNCBhbmQgb3VyIHNrZXcgaXMgMlxuXHRcdFx0Ly9cblx0XHRcdC8vIHRoaXMgYmVjb21lcyBhbiBvcHRpbWl6YXRpb24gcXVlc3Rpb24gd2hlcmUgY3VycmVudGx5IHdlIHNlZSBhIDEgZWxlbWVudCBvZmZzZXQgYXMgYW4gaW5zZXJ0aW9uXG5cdFx0XHQvLyBvciBkZWxldGlvbiBpLmUuIHdlIG9wdGltaXplIGZvciBbMCwgMSwgMl0gLS0+IFs5LCAwLCAxLCAyXVxuXHRcdFx0Ly8gd2hpbGUgYSBtb3JlIHRoYW4gMSBvZmZzZXQgd2Ugc2VlIGFzIGEgc3dhcC5cblx0XHRcdC8vIFdlIGNvdWxkIHByb2JhYmx5IGJ1aWxkIGhldXJpc3RpY3MgZm9yIGhhdmluZyBhbiBvcHRpbWl6ZWQgY291cnNlIG9mIGFjdGlvbiBoZXJlIGFzIHdlbGwsIGJ1dFxuXHRcdFx0Ly8gbWlnaHQgZ28gYXQgdGhlIGNvc3Qgb2Ygc29tZSBieXRlcy5cblx0XHRcdC8vXG5cdFx0XHQvLyBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgZm9yIGkuZS4gb25seSBzd2FwcyB3ZSdkIGp1c3QgZG8gdGhlIGxhc3QgdHdvIGNvZGUtYnJhbmNoZXMgYW5kIGhhdmVcblx0XHRcdC8vIG9ubHkgdGhlIGZpcnN0IGl0ZW0gYmUgYSByZS1zY291dGluZyBhbmQgYWxsIHRoZSBvdGhlcnMgZmFsbCBpbiB0aGVpciBza2V3ZWQgY291bnRlci1wYXJ0LlxuXHRcdFx0Ly8gV2UgY291bGQgYWxzbyBmdXJ0aGVyIG9wdGltaXplIGZvciBzd2Fwc1xuXHRcdFx0aWYgKG1hdGNoaW5nSW5kZXggPT0gc2tld2VkSW5kZXggLSAxKSB7XG5cdFx0XHRcdHNrZXctLTtcblx0XHRcdH0gZWxzZSBpZiAobWF0Y2hpbmdJbmRleCA9PSBza2V3ZWRJbmRleCArIDEpIHtcblx0XHRcdFx0c2tldysrO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKG1hdGNoaW5nSW5kZXggPiBza2V3ZWRJbmRleCkge1xuXHRcdFx0XHRcdHNrZXctLTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRza2V3Kys7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBNb3ZlIHRoaXMgVk5vZGUncyBET00gaWYgdGhlIG9yaWdpbmFsIGluZGV4IChtYXRjaGluZ0luZGV4KSBkb2Vzbid0XG5cdFx0XHRcdC8vIG1hdGNoIHRoZSBuZXcgc2tldyBpbmRleCAoaSArIG5ldyBza2V3KVxuXHRcdFx0XHQvLyBJbiB0aGUgZm9ybWVyIHR3byBicmFuY2hlcyB3ZSBrbm93IHRoYXQgaXQgbWF0Y2hlcyBhZnRlciBza2V3aW5nXG5cdFx0XHRcdGNoaWxkVk5vZGUuX2ZsYWdzIHw9IElOU0VSVF9WTk9ERTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZW1vdmUgcmVtYWluaW5nIG9sZENoaWxkcmVuIGlmIHRoZXJlIGFyZSBhbnkuIExvb3AgZm9yd2FyZHMgc28gdGhhdCBhcyB3ZVxuXHQvLyB1bm1vdW50IERPTSBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG9sZENoaWxkcmVuLCB3ZSBjYW4gYWRqdXN0IG9sZERvbSB0b1xuXHQvLyBwb2ludCB0byB0aGUgbmV4dCBjaGlsZCwgd2hpY2ggbmVlZHMgdG8gYmUgdGhlIGZpcnN0IERPTSBub2RlIHRoYXQgd29uJ3QgYmVcblx0Ly8gdW5tb3VudGVkLlxuXHRpZiAocmVtYWluaW5nT2xkQ2hpbGRyZW4pIHtcblx0XHRmb3IgKGkgPSAwOyBpIDwgb2xkQ2hpbGRyZW5MZW5ndGg7IGkrKykge1xuXHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlbltpXTtcblx0XHRcdGlmIChvbGRWTm9kZSAhPSBudWxsICYmIChvbGRWTm9kZS5fZmxhZ3MgJiBNQVRDSEVEKSA9PT0gMCkge1xuXHRcdFx0XHRpZiAob2xkVk5vZGUuX2RvbSA9PSBuZXdQYXJlbnRWTm9kZS5fbmV4dERvbSkge1xuXHRcdFx0XHRcdG5ld1BhcmVudFZOb2RlLl9uZXh0RG9tID0gZ2V0RG9tU2libGluZyhvbGRWTm9kZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bm1vdW50KG9sZFZOb2RlLCBvbGRWTm9kZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gcGFyZW50Vk5vZGVcbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gb2xkRG9tXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbVxuICogQHJldHVybnMge1ByZWFjdEVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIGluc2VydChwYXJlbnRWTm9kZSwgb2xkRG9tLCBwYXJlbnREb20pIHtcblx0Ly8gTm90ZTogVk5vZGVzIGluIG5lc3RlZCBzdXNwZW5kZWQgdHJlZXMgbWF5IGJlIG1pc3NpbmcgX2NoaWxkcmVuLlxuXG5cdGlmICh0eXBlb2YgcGFyZW50Vk5vZGUudHlwZSA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0bGV0IGNoaWxkcmVuID0gcGFyZW50Vk5vZGUuX2NoaWxkcmVuO1xuXHRcdGZvciAobGV0IGkgPSAwOyBjaGlsZHJlbiAmJiBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChjaGlsZHJlbltpXSkge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbnRlciB0aGlzIGNvZGUgcGF0aCBvbiBzQ1UgYmFpbG91dCwgd2hlcmUgd2UgY29weVxuXHRcdFx0XHQvLyBvbGRWTm9kZS5fY2hpbGRyZW4gdG8gbmV3Vk5vZGUuX2NoaWxkcmVuLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgb2xkXG5cdFx0XHRcdC8vIGNoaWxkcmVuJ3MgX3BhcmVudCBwb2ludGVyIHRvIHBvaW50IHRvIHRoZSBuZXdWTm9kZSAocGFyZW50Vk5vZGVcblx0XHRcdFx0Ly8gaGVyZSkuXG5cdFx0XHRcdGNoaWxkcmVuW2ldLl9wYXJlbnQgPSBwYXJlbnRWTm9kZTtcblx0XHRcdFx0b2xkRG9tID0gaW5zZXJ0KGNoaWxkcmVuW2ldLCBvbGREb20sIHBhcmVudERvbSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9sZERvbTtcblx0fSBlbHNlIGlmIChwYXJlbnRWTm9kZS5fZG9tICE9IG9sZERvbSkge1xuXHRcdGlmIChvbGREb20gJiYgcGFyZW50Vk5vZGUudHlwZSAmJiAhcGFyZW50RG9tLmNvbnRhaW5zKG9sZERvbSkpIHtcblx0XHRcdG9sZERvbSA9IGdldERvbVNpYmxpbmcocGFyZW50Vk5vZGUpO1xuXHRcdH1cblx0XHRwYXJlbnREb20uaW5zZXJ0QmVmb3JlKHBhcmVudFZOb2RlLl9kb20sIG9sZERvbSB8fCBudWxsKTtcblx0XHRvbGREb20gPSBwYXJlbnRWTm9kZS5fZG9tO1xuXHR9XG5cblx0ZG8ge1xuXHRcdG9sZERvbSA9IG9sZERvbSAmJiBvbGREb20ubmV4dFNpYmxpbmc7XG5cdH0gd2hpbGUgKG9sZERvbSAhPSBudWxsICYmIG9sZERvbS5ub2RlVHlwZSA9PT0gOCk7XG5cblx0cmV0dXJuIG9sZERvbTtcbn1cblxuLyoqXG4gKiBGbGF0dGVuIGFuZCBsb29wIHRocm91Z2ggdGhlIGNoaWxkcmVuIG9mIGEgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge0NvbXBvbmVudENoaWxkcmVufSBjaGlsZHJlbiBUaGUgdW5mbGF0dGVuZWQgY2hpbGRyZW4gb2YgYSB2aXJ0dWFsXG4gKiBub2RlXG4gKiBAcmV0dXJucyB7Vk5vZGVbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hpbGRBcnJheShjaGlsZHJlbiwgb3V0KSB7XG5cdG91dCA9IG91dCB8fCBbXTtcblx0aWYgKGNoaWxkcmVuID09IG51bGwgfHwgdHlwZW9mIGNoaWxkcmVuID09ICdib29sZWFuJykge1xuXHR9IGVsc2UgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG5cdFx0Y2hpbGRyZW4uc29tZShjaGlsZCA9PiB7XG5cdFx0XHR0b0NoaWxkQXJyYXkoY2hpbGQsIG91dCk7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0b3V0LnB1c2goY2hpbGRyZW4pO1xuXHR9XG5cdHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtWTm9kZX0gY2hpbGRWTm9kZVxuICogQHBhcmFtIHtWTm9kZVtdfSBvbGRDaGlsZHJlblxuICogQHBhcmFtIHtudW1iZXJ9IHNrZXdlZEluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gcmVtYWluaW5nT2xkQ2hpbGRyZW5cbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGZpbmRNYXRjaGluZ0luZGV4KFxuXHRjaGlsZFZOb2RlLFxuXHRvbGRDaGlsZHJlbixcblx0c2tld2VkSW5kZXgsXG5cdHJlbWFpbmluZ09sZENoaWxkcmVuXG4pIHtcblx0Y29uc3Qga2V5ID0gY2hpbGRWTm9kZS5rZXk7XG5cdGNvbnN0IHR5cGUgPSBjaGlsZFZOb2RlLnR5cGU7XG5cdGxldCB4ID0gc2tld2VkSW5kZXggLSAxO1xuXHRsZXQgeSA9IHNrZXdlZEluZGV4ICsgMTtcblx0bGV0IG9sZFZOb2RlID0gb2xkQ2hpbGRyZW5bc2tld2VkSW5kZXhdO1xuXG5cdC8vIFdlIG9ubHkgbmVlZCB0byBwZXJmb3JtIGEgc2VhcmNoIGlmIHRoZXJlIGFyZSBtb3JlIGNoaWxkcmVuXG5cdC8vIChyZW1haW5pbmdPbGRDaGlsZHJlbikgdG8gc2VhcmNoLiBIb3dldmVyLCBpZiB0aGUgb2xkVk5vZGUgd2UganVzdCBsb29rZWRcblx0Ly8gYXQgc2tld2VkSW5kZXggd2FzIG5vdCBhbHJlYWR5IHVzZWQgaW4gdGhpcyBkaWZmLCB0aGVuIHRoZXJlIG11c3QgYmUgYXRcblx0Ly8gbGVhc3QgMSBvdGhlciAoc28gZ3JlYXRlciB0aGFuIDEpIHJlbWFpbmluZ09sZENoaWxkcmVuIHRvIGF0dGVtcHQgdG8gbWF0Y2hcblx0Ly8gYWdhaW5zdC4gU28gdGhlIGZvbGxvd2luZyBjb25kaXRpb24gY2hlY2tzIHRoYXQgZW5zdXJpbmdcblx0Ly8gcmVtYWluaW5nT2xkQ2hpbGRyZW4gPiAxIGlmIHRoZSBvbGRWTm9kZSBpcyBub3QgYWxyZWFkeSB1c2VkL21hdGNoZWQuIEVsc2Vcblx0Ly8gaWYgdGhlIG9sZFZOb2RlIHdhcyBudWxsIG9yIG1hdGNoZWQsIHRoZW4gdGhlcmUgY291bGQgbmVlZHMgdG8gYmUgYXQgbGVhc3Rcblx0Ly8gMSAoYWthIGByZW1haW5pbmdPbGRDaGlsZHJlbiA+IDBgKSBjaGlsZHJlbiB0byBmaW5kIGFuZCBjb21wYXJlIGFnYWluc3QuXG5cdGxldCBzaG91bGRTZWFyY2ggPVxuXHRcdHJlbWFpbmluZ09sZENoaWxkcmVuID5cblx0XHQob2xkVk5vZGUgIT0gbnVsbCAmJiAob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDAgPyAxIDogMCk7XG5cblx0aWYgKFxuXHRcdG9sZFZOb2RlID09PSBudWxsIHx8XG5cdFx0KG9sZFZOb2RlICYmXG5cdFx0XHRrZXkgPT0gb2xkVk5vZGUua2V5ICYmXG5cdFx0XHR0eXBlID09PSBvbGRWTm9kZS50eXBlICYmXG5cdFx0XHQob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDApXG5cdCkge1xuXHRcdHJldHVybiBza2V3ZWRJbmRleDtcblx0fSBlbHNlIGlmIChzaG91bGRTZWFyY2gpIHtcblx0XHR3aGlsZSAoeCA+PSAwIHx8IHkgPCBvbGRDaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdGlmICh4ID49IDApIHtcblx0XHRcdFx0b2xkVk5vZGUgPSBvbGRDaGlsZHJlblt4XTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9sZFZOb2RlICYmXG5cdFx0XHRcdFx0KG9sZFZOb2RlLl9mbGFncyAmIE1BVENIRUQpID09PSAwICYmXG5cdFx0XHRcdFx0a2V5ID09IG9sZFZOb2RlLmtleSAmJlxuXHRcdFx0XHRcdHR5cGUgPT09IG9sZFZOb2RlLnR5cGVcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0eC0tO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoeSA8IG9sZENoaWxkcmVuLmxlbmd0aCkge1xuXHRcdFx0XHRvbGRWTm9kZSA9IG9sZENoaWxkcmVuW3ldO1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0b2xkVk5vZGUgJiZcblx0XHRcdFx0XHQob2xkVk5vZGUuX2ZsYWdzICYgTUFUQ0hFRCkgPT09IDAgJiZcblx0XHRcdFx0XHRrZXkgPT0gb2xkVk5vZGUua2V5ICYmXG5cdFx0XHRcdFx0dHlwZSA9PT0gb2xkVk5vZGUudHlwZVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4geTtcblx0XHRcdFx0fVxuXHRcdFx0XHR5Kys7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIC0xO1xufVxuIiwgImltcG9ydCB7XG5cdEVNUFRZX09CSixcblx0TU9ERV9IWURSQVRFLFxuXHRNT0RFX1NVU1BFTkRFRCxcblx0UkVTRVRfTU9ERVxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgZ2V0RG9tU2libGluZyB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJy4uL2NyZWF0ZS1lbGVtZW50JztcbmltcG9ydCB7IGRpZmZDaGlsZHJlbiB9IGZyb20gJy4vY2hpbGRyZW4nO1xuaW1wb3J0IHsgc2V0UHJvcGVydHkgfSBmcm9tICcuL3Byb3BzJztcbmltcG9ydCB7IGFzc2lnbiwgaXNBcnJheSwgcmVtb3ZlTm9kZSwgc2xpY2UgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4uL29wdGlvbnMnO1xuXG4vKipcbiAqIERpZmYgdHdvIHZpcnR1YWwgbm9kZXMgYW5kIGFwcGx5IHByb3BlciBjaGFuZ2VzIHRvIHRoZSBET01cbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudH0gcGFyZW50RG9tIFRoZSBwYXJlbnQgb2YgdGhlIERPTSBlbGVtZW50XG4gKiBAcGFyYW0ge1ZOb2RlfSBuZXdWTm9kZSBUaGUgbmV3IHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtWTm9kZX0gb2xkVk5vZGUgVGhlIG9sZCB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBnbG9iYWxDb250ZXh0IFRoZSBjdXJyZW50IGNvbnRleHQgb2JqZWN0LiBNb2RpZmllZCBieVxuICogZ2V0Q2hpbGRDb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZXNwYWNlIEN1cnJlbnQgbmFtZXNwYWNlIG9mIHRoZSBET00gbm9kZSAoSFRNTCwgU1ZHLCBvciBNYXRoTUwpXG4gKiBAcGFyYW0ge0FycmF5PFByZWFjdEVsZW1lbnQ+fSBleGNlc3NEb21DaGlsZHJlblxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSBjYWxsYmFja3NcbiAqIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IG9sZERvbSBUaGUgY3VycmVudCBhdHRhY2hlZCBET00gZWxlbWVudCBhbnkgbmV3IGRvbVxuICogZWxlbWVudHMgc2hvdWxkIGJlIHBsYWNlZCBhcm91bmQuIExpa2VseSBgbnVsbGAgb24gZmlyc3QgcmVuZGVyIChleGNlcHQgd2hlblxuICogaHlkcmF0aW5nKS4gQ2FuIGJlIGEgc2libGluZyBET00gZWxlbWVudCB3aGVuIGRpZmZpbmcgRnJhZ21lbnRzIHRoYXQgaGF2ZVxuICogc2libGluZ3MuIEluIG1vc3QgY2FzZXMsIGl0IHN0YXJ0cyBvdXQgYXMgYG9sZENoaWxkcmVuWzBdLl9kb21gLlxuICogQHBhcmFtIHtib29sZWFufSBpc0h5ZHJhdGluZyBXaGV0aGVyIG9yIG5vdCB3ZSBhcmUgaW4gaHlkcmF0aW9uXG4gKiBAcGFyYW0ge2FueVtdfSByZWZRdWV1ZSBhbiBhcnJheSBvZiBlbGVtZW50cyBuZWVkZWQgdG8gaW52b2tlIHJlZnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmYoXG5cdHBhcmVudERvbSxcblx0bmV3Vk5vZGUsXG5cdG9sZFZOb2RlLFxuXHRnbG9iYWxDb250ZXh0LFxuXHRuYW1lc3BhY2UsXG5cdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRjb21taXRRdWV1ZSxcblx0b2xkRG9tLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHQvKiogQHR5cGUge2FueX0gKi9cblx0bGV0IHRtcCxcblx0XHRuZXdUeXBlID0gbmV3Vk5vZGUudHlwZTtcblxuXHQvLyBXaGVuIHBhc3NpbmcgdGhyb3VnaCBjcmVhdGVFbGVtZW50IGl0IGFzc2lnbnMgdGhlIG9iamVjdFxuXHQvLyBjb25zdHJ1Y3RvciBhcyB1bmRlZmluZWQuIFRoaXMgdG8gcHJldmVudCBKU09OLWluamVjdGlvbi5cblx0aWYgKG5ld1ZOb2RlLmNvbnN0cnVjdG9yICE9PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuXG5cdC8vIElmIHRoZSBwcmV2aW91cyBkaWZmIGJhaWxlZCBvdXQsIHJlc3VtZSBjcmVhdGluZy9oeWRyYXRpbmcuXG5cdGlmIChvbGRWTm9kZS5fZmxhZ3MgJiBNT0RFX1NVU1BFTkRFRCkge1xuXHRcdGlzSHlkcmF0aW5nID0gISEob2xkVk5vZGUuX2ZsYWdzICYgTU9ERV9IWURSQVRFKTtcblx0XHRvbGREb20gPSBuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9IFtvbGREb21dO1xuXHR9XG5cblx0aWYgKCh0bXAgPSBvcHRpb25zLl9kaWZmKSkgdG1wKG5ld1ZOb2RlKTtcblxuXHRvdXRlcjogaWYgKHR5cGVvZiBuZXdUeXBlID09ICdmdW5jdGlvbicpIHtcblx0XHR0cnkge1xuXHRcdFx0bGV0IGMsIGlzTmV3LCBvbGRQcm9wcywgb2xkU3RhdGUsIHNuYXBzaG90LCBjbGVhclByb2Nlc3NpbmdFeGNlcHRpb247XG5cdFx0XHRsZXQgbmV3UHJvcHMgPSBuZXdWTm9kZS5wcm9wcztcblx0XHRcdGNvbnN0IGlzQ2xhc3NDb21wb25lbnQgPVxuXHRcdFx0XHQncHJvdG90eXBlJyBpbiBuZXdUeXBlICYmIG5ld1R5cGUucHJvdG90eXBlLnJlbmRlcjtcblxuXHRcdFx0Ly8gTmVjZXNzYXJ5IGZvciBjcmVhdGVDb250ZXh0IGFwaS4gU2V0dGluZyB0aGlzIHByb3BlcnR5IHdpbGwgcGFzc1xuXHRcdFx0Ly8gdGhlIGNvbnRleHQgdmFsdWUgYXMgYHRoaXMuY29udGV4dGAganVzdCBmb3IgdGhpcyBjb21wb25lbnQuXG5cdFx0XHR0bXAgPSBuZXdUeXBlLmNvbnRleHRUeXBlO1xuXHRcdFx0bGV0IHByb3ZpZGVyID0gdG1wICYmIGdsb2JhbENvbnRleHRbdG1wLl9pZF07XG5cdFx0XHRsZXQgY29tcG9uZW50Q29udGV4dCA9IHRtcFxuXHRcdFx0XHQ/IHByb3ZpZGVyXG5cdFx0XHRcdFx0PyBwcm92aWRlci5wcm9wcy52YWx1ZVxuXHRcdFx0XHRcdDogdG1wLl9kZWZhdWx0VmFsdWVcblx0XHRcdFx0OiBnbG9iYWxDb250ZXh0O1xuXG5cdFx0XHQvLyBHZXQgY29tcG9uZW50IGFuZCBzZXQgaXQgdG8gYGNgXG5cdFx0XHRpZiAob2xkVk5vZGUuX2NvbXBvbmVudCkge1xuXHRcdFx0XHRjID0gbmV3Vk5vZGUuX2NvbXBvbmVudCA9IG9sZFZOb2RlLl9jb21wb25lbnQ7XG5cdFx0XHRcdGNsZWFyUHJvY2Vzc2luZ0V4Y2VwdGlvbiA9IGMuX3Byb2Nlc3NpbmdFeGNlcHRpb24gPSBjLl9wZW5kaW5nRXJyb3I7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJbnN0YW50aWF0ZSB0aGUgbmV3IGNvbXBvbmVudFxuXHRcdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCkge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVGhlIGNoZWNrIGFib3ZlIHZlcmlmaWVzIHRoYXQgbmV3VHlwZSBpcyBzdXBwb3NlIHRvIGJlIGNvbnN0cnVjdGVkXG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2NvbXBvbmVudCA9IGMgPSBuZXcgbmV3VHlwZShuZXdQcm9wcywgY29tcG9uZW50Q29udGV4dCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVHJ1c3QgbWUsIENvbXBvbmVudCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2Ugd2Ugd2FudFxuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jb21wb25lbnQgPSBjID0gbmV3IEJhc2VDb21wb25lbnQoXG5cdFx0XHRcdFx0XHRuZXdQcm9wcyxcblx0XHRcdFx0XHRcdGNvbXBvbmVudENvbnRleHRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGMuY29uc3RydWN0b3IgPSBuZXdUeXBlO1xuXHRcdFx0XHRcdGMucmVuZGVyID0gZG9SZW5kZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3ZpZGVyKSBwcm92aWRlci5zdWIoYyk7XG5cblx0XHRcdFx0Yy5wcm9wcyA9IG5ld1Byb3BzO1xuXHRcdFx0XHRpZiAoIWMuc3RhdGUpIGMuc3RhdGUgPSB7fTtcblx0XHRcdFx0Yy5jb250ZXh0ID0gY29tcG9uZW50Q29udGV4dDtcblx0XHRcdFx0Yy5fZ2xvYmFsQ29udGV4dCA9IGdsb2JhbENvbnRleHQ7XG5cdFx0XHRcdGlzTmV3ID0gYy5fZGlydHkgPSB0cnVlO1xuXHRcdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdFx0Yy5fc3RhdGVDYWxsYmFja3MgPSBbXTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSW52b2tlIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1xuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgYy5fbmV4dFN0YXRlID09IG51bGwpIHtcblx0XHRcdFx0Yy5fbmV4dFN0YXRlID0gYy5zdGF0ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgbmV3VHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT0gbnVsbCkge1xuXHRcdFx0XHRpZiAoYy5fbmV4dFN0YXRlID09IGMuc3RhdGUpIHtcblx0XHRcdFx0XHRjLl9uZXh0U3RhdGUgPSBhc3NpZ24oe30sIGMuX25leHRTdGF0ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhc3NpZ24oXG5cdFx0XHRcdFx0Yy5fbmV4dFN0YXRlLFxuXHRcdFx0XHRcdG5ld1R5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5ld1Byb3BzLCBjLl9uZXh0U3RhdGUpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdG9sZFByb3BzID0gYy5wcm9wcztcblx0XHRcdG9sZFN0YXRlID0gYy5zdGF0ZTtcblx0XHRcdGMuX3Zub2RlID0gbmV3Vk5vZGU7XG5cblx0XHRcdC8vIEludm9rZSBwcmUtcmVuZGVyIGxpZmVjeWNsZSBtZXRob2RzXG5cdFx0XHRpZiAoaXNOZXcpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGlzQ2xhc3NDb21wb25lbnQgJiZcblx0XHRcdFx0XHRuZXdUeXBlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PSBudWxsICYmXG5cdFx0XHRcdFx0Yy5jb21wb25lbnRXaWxsTW91bnQgIT0gbnVsbFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgYy5jb21wb25lbnREaWRNb3VudCAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goYy5jb21wb25lbnREaWRNb3VudCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRpc0NsYXNzQ29tcG9uZW50ICYmXG5cdFx0XHRcdFx0bmV3VHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT0gbnVsbCAmJlxuXHRcdFx0XHRcdG5ld1Byb3BzICE9PSBvbGRQcm9wcyAmJlxuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAhPSBudWxsXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgY29tcG9uZW50Q29udGV4dCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0IWMuX2ZvcmNlICYmXG5cdFx0XHRcdFx0KChjLnNob3VsZENvbXBvbmVudFVwZGF0ZSAhPSBudWxsICYmXG5cdFx0XHRcdFx0XHRjLnNob3VsZENvbXBvbmVudFVwZGF0ZShcblx0XHRcdFx0XHRcdFx0bmV3UHJvcHMsXG5cdFx0XHRcdFx0XHRcdGMuX25leHRTdGF0ZSxcblx0XHRcdFx0XHRcdFx0Y29tcG9uZW50Q29udGV4dFxuXHRcdFx0XHRcdFx0KSA9PT0gZmFsc2UpIHx8XG5cdFx0XHRcdFx0XHRuZXdWTm9kZS5fb3JpZ2luYWwgPT09IG9sZFZOb2RlLl9vcmlnaW5hbClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Ly8gTW9yZSBpbmZvIGFib3V0IHRoaXMgaGVyZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vSm92aURlQ3Jvb2NrL2JlYzVmMmNlOTM1NDRkMmU2MDcwZWY4ZTAwMzZlNGU4XG5cdFx0XHRcdFx0aWYgKG5ld1ZOb2RlLl9vcmlnaW5hbCAhPT0gb2xkVk5vZGUuX29yaWdpbmFsKSB7XG5cdFx0XHRcdFx0XHQvLyBXaGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBiYWlsIGJlY2F1c2Ugb2Ygc0NVIHdlIGhhdmUgdG8gdXBkYXRlXG5cdFx0XHRcdFx0XHQvLyB0aGUgcHJvcHMsIHN0YXRlIGFuZCBkaXJ0eS1zdGF0ZS5cblx0XHRcdFx0XHRcdC8vIHdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBzdHJpY3QtZXF1YWxpdHkgd2UgZG9uJ3QgYXMgdGhlIGNoaWxkIGNvdWxkIHN0aWxsXG5cdFx0XHRcdFx0XHQvLyBiZSBkaXJ0aWVkIHNlZSAjMzg4M1xuXHRcdFx0XHRcdFx0Yy5wcm9wcyA9IG5ld1Byb3BzO1xuXHRcdFx0XHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblx0XHRcdFx0XHRcdGMuX2RpcnR5ID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2RvbSA9IG9sZFZOb2RlLl9kb207XG5cdFx0XHRcdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbi5zb21lKHZub2RlID0+IHtcblx0XHRcdFx0XHRcdGlmICh2bm9kZSkgdm5vZGUuX3BhcmVudCA9IG5ld1ZOb2RlO1xuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjLl9zdGF0ZUNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goYy5fc3RhdGVDYWxsYmFja3NbaV0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjLl9zdGF0ZUNhbGxiYWNrcyA9IFtdO1xuXG5cdFx0XHRcdFx0aWYgKGMuX3JlbmRlckNhbGxiYWNrcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGNvbW1pdFF1ZXVlLnB1c2goYyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWsgb3V0ZXI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoYy5jb21wb25lbnRXaWxsVXBkYXRlICE9IG51bGwpIHtcblx0XHRcdFx0XHRjLmNvbXBvbmVudFdpbGxVcGRhdGUobmV3UHJvcHMsIGMuX25leHRTdGF0ZSwgY29tcG9uZW50Q29udGV4dCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCAmJiBjLmNvbXBvbmVudERpZFVwZGF0ZSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Yy5fcmVuZGVyQ2FsbGJhY2tzLnB1c2goKCkgPT4ge1xuXHRcdFx0XHRcdFx0Yy5jb21wb25lbnREaWRVcGRhdGUob2xkUHJvcHMsIG9sZFN0YXRlLCBzbmFwc2hvdCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Yy5jb250ZXh0ID0gY29tcG9uZW50Q29udGV4dDtcblx0XHRcdGMucHJvcHMgPSBuZXdQcm9wcztcblx0XHRcdGMuX3BhcmVudERvbSA9IHBhcmVudERvbTtcblx0XHRcdGMuX2ZvcmNlID0gZmFsc2U7XG5cblx0XHRcdGxldCByZW5kZXJIb29rID0gb3B0aW9ucy5fcmVuZGVyLFxuXHRcdFx0XHRjb3VudCA9IDA7XG5cdFx0XHRpZiAoaXNDbGFzc0NvbXBvbmVudCkge1xuXHRcdFx0XHRjLnN0YXRlID0gYy5fbmV4dFN0YXRlO1xuXHRcdFx0XHRjLl9kaXJ0eSA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChyZW5kZXJIb29rKSByZW5kZXJIb29rKG5ld1ZOb2RlKTtcblxuXHRcdFx0XHR0bXAgPSBjLnJlbmRlcihjLnByb3BzLCBjLnN0YXRlLCBjLmNvbnRleHQpO1xuXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYy5fc3RhdGVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MucHVzaChjLl9zdGF0ZUNhbGxiYWNrc1tpXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Yy5fc3RhdGVDYWxsYmFja3MgPSBbXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRjLl9kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmIChyZW5kZXJIb29rKSByZW5kZXJIb29rKG5ld1ZOb2RlKTtcblxuXHRcdFx0XHRcdHRtcCA9IGMucmVuZGVyKGMucHJvcHMsIGMuc3RhdGUsIGMuY29udGV4dCk7XG5cblx0XHRcdFx0XHQvLyBIYW5kbGUgc2V0U3RhdGUgY2FsbGVkIGluIHJlbmRlciwgc2VlICMyNTUzXG5cdFx0XHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblx0XHRcdFx0fSB3aGlsZSAoYy5fZGlydHkgJiYgKytjb3VudCA8IDI1KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSGFuZGxlIHNldFN0YXRlIGNhbGxlZCBpbiByZW5kZXIsIHNlZSAjMjU1M1xuXHRcdFx0Yy5zdGF0ZSA9IGMuX25leHRTdGF0ZTtcblxuXHRcdFx0aWYgKGMuZ2V0Q2hpbGRDb250ZXh0ICE9IG51bGwpIHtcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCA9IGFzc2lnbihhc3NpZ24oe30sIGdsb2JhbENvbnRleHQpLCBjLmdldENoaWxkQ29udGV4dCgpKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzQ2xhc3NDb21wb25lbnQgJiYgIWlzTmV3ICYmIGMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgIT0gbnVsbCkge1xuXHRcdFx0XHRzbmFwc2hvdCA9IGMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUob2xkUHJvcHMsIG9sZFN0YXRlKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGlzVG9wTGV2ZWxGcmFnbWVudCA9XG5cdFx0XHRcdHRtcCAhPSBudWxsICYmIHRtcC50eXBlID09PSBGcmFnbWVudCAmJiB0bXAua2V5ID09IG51bGw7XG5cdFx0XHRsZXQgcmVuZGVyUmVzdWx0ID0gaXNUb3BMZXZlbEZyYWdtZW50ID8gdG1wLnByb3BzLmNoaWxkcmVuIDogdG1wO1xuXG5cdFx0XHRkaWZmQ2hpbGRyZW4oXG5cdFx0XHRcdHBhcmVudERvbSxcblx0XHRcdFx0aXNBcnJheShyZW5kZXJSZXN1bHQpID8gcmVuZGVyUmVzdWx0IDogW3JlbmRlclJlc3VsdF0sXG5cdFx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0XHRvbGRWTm9kZSxcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0XHRleGNlc3NEb21DaGlsZHJlbixcblx0XHRcdFx0Y29tbWl0UXVldWUsXG5cdFx0XHRcdG9sZERvbSxcblx0XHRcdFx0aXNIeWRyYXRpbmcsXG5cdFx0XHRcdHJlZlF1ZXVlXG5cdFx0XHQpO1xuXG5cdFx0XHRjLmJhc2UgPSBuZXdWTm9kZS5fZG9tO1xuXG5cdFx0XHQvLyBXZSBzdWNjZXNzZnVsbHkgcmVuZGVyZWQgdGhpcyBWTm9kZSwgdW5zZXQgYW55IHN0b3JlZCBoeWRyYXRpb24vYmFpbG91dCBzdGF0ZTpcblx0XHRcdG5ld1ZOb2RlLl9mbGFncyAmPSBSRVNFVF9NT0RFO1xuXG5cdFx0XHRpZiAoYy5fcmVuZGVyQ2FsbGJhY2tzLmxlbmd0aCkge1xuXHRcdFx0XHRjb21taXRRdWV1ZS5wdXNoKGMpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY2xlYXJQcm9jZXNzaW5nRXhjZXB0aW9uKSB7XG5cdFx0XHRcdGMuX3BlbmRpbmdFcnJvciA9IGMuX3Byb2Nlc3NpbmdFeGNlcHRpb24gPSBudWxsO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdG5ld1ZOb2RlLl9vcmlnaW5hbCA9IG51bGw7XG5cdFx0XHQvLyBpZiBoeWRyYXRpbmcgb3IgY3JlYXRpbmcgaW5pdGlhbCB0cmVlLCBiYWlsb3V0IHByZXNlcnZlcyBET006XG5cdFx0XHRpZiAoaXNIeWRyYXRpbmcgfHwgZXhjZXNzRG9tQ2hpbGRyZW4gIT0gbnVsbCkge1xuXHRcdFx0XHRuZXdWTm9kZS5fZmxhZ3MgfD0gaXNIeWRyYXRpbmdcblx0XHRcdFx0XHQ/IE1PREVfSFlEUkFURSB8IE1PREVfU1VTUEVOREVEXG5cdFx0XHRcdFx0OiBNT0RFX1NVU1BFTkRFRDtcblxuXHRcdFx0XHR3aGlsZSAob2xkRG9tICYmIG9sZERvbS5ub2RlVHlwZSA9PT0gOCAmJiBvbGREb20ubmV4dFNpYmxpbmcpIHtcblx0XHRcdFx0XHRvbGREb20gPSBvbGREb20ubmV4dFNpYmxpbmc7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW5bZXhjZXNzRG9tQ2hpbGRyZW4uaW5kZXhPZihvbGREb20pXSA9IG51bGw7XG5cdFx0XHRcdG5ld1ZOb2RlLl9kb20gPSBvbGREb207XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRuZXdWTm9kZS5fZG9tID0gb2xkVk5vZGUuX2RvbTtcblx0XHRcdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdFx0fVxuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBuZXdWTm9kZSwgb2xkVk5vZGUpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9PSBudWxsICYmXG5cdFx0bmV3Vk5vZGUuX29yaWdpbmFsID09PSBvbGRWTm9kZS5fb3JpZ2luYWxcblx0KSB7XG5cdFx0bmV3Vk5vZGUuX2NoaWxkcmVuID0gb2xkVk5vZGUuX2NoaWxkcmVuO1xuXHRcdG5ld1ZOb2RlLl9kb20gPSBvbGRWTm9kZS5fZG9tO1xuXHR9IGVsc2Uge1xuXHRcdG5ld1ZOb2RlLl9kb20gPSBkaWZmRWxlbWVudE5vZGVzKFxuXHRcdFx0b2xkVk5vZGUuX2RvbSxcblx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0b2xkVk5vZGUsXG5cdFx0XHRnbG9iYWxDb250ZXh0LFxuXHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0cmVmUXVldWVcblx0XHQpO1xuXHR9XG5cblx0aWYgKCh0bXAgPSBvcHRpb25zLmRpZmZlZCkpIHRtcChuZXdWTm9kZSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxDb21wb25lbnQ+fSBjb21taXRRdWV1ZSBMaXN0IG9mIGNvbXBvbmVudHNcbiAqIHdoaWNoIGhhdmUgY2FsbGJhY2tzIHRvIGludm9rZSBpbiBjb21taXRSb290XG4gKiBAcGFyYW0ge1ZOb2RlfSByb290XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRSb290KGNvbW1pdFF1ZXVlLCByb290LCByZWZRdWV1ZSkge1xuXHRyb290Ll9uZXh0RG9tID0gdW5kZWZpbmVkO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcmVmUXVldWUubGVuZ3RoOyBpKyspIHtcblx0XHRhcHBseVJlZihyZWZRdWV1ZVtpXSwgcmVmUXVldWVbKytpXSwgcmVmUXVldWVbKytpXSk7XG5cdH1cblxuXHRpZiAob3B0aW9ucy5fY29tbWl0KSBvcHRpb25zLl9jb21taXQocm9vdCwgY29tbWl0UXVldWUpO1xuXG5cdGNvbW1pdFF1ZXVlLnNvbWUoYyA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgUmV1c2UgdGhlIGNvbW1pdFF1ZXVlIHZhcmlhYmxlIGhlcmUgc28gdGhlIHR5cGUgY2hhbmdlc1xuXHRcdFx0Y29tbWl0UXVldWUgPSBjLl9yZW5kZXJDYWxsYmFja3M7XG5cdFx0XHRjLl9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdGNvbW1pdFF1ZXVlLnNvbWUoY2IgPT4ge1xuXHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFNlZSBhYm92ZSBjb21tZW50IG9uIGNvbW1pdFF1ZXVlXG5cdFx0XHRcdGNiLmNhbGwoYyk7XG5cdFx0XHR9KTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIGMuX3Zub2RlKTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIERpZmYgdHdvIHZpcnR1YWwgbm9kZXMgcmVwcmVzZW50aW5nIERPTSBlbGVtZW50XG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IGRvbSBUaGUgRE9NIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSB2aXJ0dWFsIG5vZGVzXG4gKiBiZWluZyBkaWZmZWRcbiAqIEBwYXJhbSB7Vk5vZGV9IG5ld1ZOb2RlIFRoZSBuZXcgdmlydHVhbCBub2RlXG4gKiBAcGFyYW0ge1ZOb2RlfSBvbGRWTm9kZSBUaGUgb2xkIHZpcnR1YWwgbm9kZVxuICogQHBhcmFtIHtvYmplY3R9IGdsb2JhbENvbnRleHQgVGhlIGN1cnJlbnQgY29udGV4dCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgQ3VycmVudCBuYW1lc3BhY2Ugb2YgdGhlIERPTSBub2RlIChIVE1MLCBTVkcsIG9yIE1hdGhNTClcbiAqIEBwYXJhbSB7QXJyYXk8UHJlYWN0RWxlbWVudD59IGV4Y2Vzc0RvbUNoaWxkcmVuXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudD59IGNvbW1pdFF1ZXVlIExpc3Qgb2YgY29tcG9uZW50cyB3aGljaCBoYXZlIGNhbGxiYWNrc1xuICogdG8gaW52b2tlIGluIGNvbW1pdFJvb3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNIeWRyYXRpbmcgV2hldGhlciBvciBub3Qgd2UgYXJlIGluIGh5ZHJhdGlvblxuICogQHBhcmFtIHthbnlbXX0gcmVmUXVldWUgYW4gYXJyYXkgb2YgZWxlbWVudHMgbmVlZGVkIHRvIGludm9rZSByZWZzXG4gKiBAcmV0dXJucyB7UHJlYWN0RWxlbWVudH1cbiAqL1xuZnVuY3Rpb24gZGlmZkVsZW1lbnROb2Rlcyhcblx0ZG9tLFxuXHRuZXdWTm9kZSxcblx0b2xkVk5vZGUsXG5cdGdsb2JhbENvbnRleHQsXG5cdG5hbWVzcGFjZSxcblx0ZXhjZXNzRG9tQ2hpbGRyZW4sXG5cdGNvbW1pdFF1ZXVlLFxuXHRpc0h5ZHJhdGluZyxcblx0cmVmUXVldWVcbikge1xuXHRsZXQgb2xkUHJvcHMgPSBvbGRWTm9kZS5wcm9wcztcblx0bGV0IG5ld1Byb3BzID0gbmV3Vk5vZGUucHJvcHM7XG5cdGxldCBub2RlVHlwZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAobmV3Vk5vZGUudHlwZSk7XG5cdC8qKiBAdHlwZSB7YW55fSAqL1xuXHRsZXQgaTtcblx0LyoqIEB0eXBlIHt7IF9faHRtbD86IHN0cmluZyB9fSAqL1xuXHRsZXQgbmV3SHRtbDtcblx0LyoqIEB0eXBlIHt7IF9faHRtbD86IHN0cmluZyB9fSAqL1xuXHRsZXQgb2xkSHRtbDtcblx0LyoqIEB0eXBlIHtDb21wb25lbnRDaGlsZHJlbn0gKi9cblx0bGV0IG5ld0NoaWxkcmVuO1xuXHRsZXQgdmFsdWU7XG5cdGxldCBpbnB1dFZhbHVlO1xuXHRsZXQgY2hlY2tlZDtcblxuXHQvLyBUcmFja3MgZW50ZXJpbmcgYW5kIGV4aXRpbmcgbmFtZXNwYWNlcyB3aGVuIGRlc2NlbmRpbmcgdGhyb3VnaCB0aGUgdHJlZS5cblx0aWYgKG5vZGVUeXBlID09PSAnc3ZnJykgbmFtZXNwYWNlID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcblx0ZWxzZSBpZiAobm9kZVR5cGUgPT09ICdtYXRoJylcblx0XHRuYW1lc3BhY2UgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCc7XG5cdGVsc2UgaWYgKCFuYW1lc3BhY2UpIG5hbWVzcGFjZSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJztcblxuXHRpZiAoZXhjZXNzRG9tQ2hpbGRyZW4gIT0gbnVsbCkge1xuXHRcdGZvciAoaSA9IDA7IGkgPCBleGNlc3NEb21DaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFsdWUgPSBleGNlc3NEb21DaGlsZHJlbltpXTtcblxuXHRcdFx0Ly8gaWYgbmV3Vk5vZGUgbWF0Y2hlcyBhbiBlbGVtZW50IGluIGV4Y2Vzc0RvbUNoaWxkcmVuIG9yIHRoZSBgZG9tYFxuXHRcdFx0Ly8gYXJndW1lbnQgbWF0Y2hlcyBhbiBlbGVtZW50IGluIGV4Y2Vzc0RvbUNoaWxkcmVuLCByZW1vdmUgaXQgZnJvbVxuXHRcdFx0Ly8gZXhjZXNzRG9tQ2hpbGRyZW4gc28gaXQgaXNuJ3QgbGF0ZXIgcmVtb3ZlZCBpbiBkaWZmQ2hpbGRyZW5cblx0XHRcdGlmIChcblx0XHRcdFx0dmFsdWUgJiZcblx0XHRcdFx0J3NldEF0dHJpYnV0ZScgaW4gdmFsdWUgPT09ICEhbm9kZVR5cGUgJiZcblx0XHRcdFx0KG5vZGVUeXBlID8gdmFsdWUubG9jYWxOYW1lID09PSBub2RlVHlwZSA6IHZhbHVlLm5vZGVUeXBlID09PSAzKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGRvbSA9IHZhbHVlO1xuXHRcdFx0XHRleGNlc3NEb21DaGlsZHJlbltpXSA9IG51bGw7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmIChkb20gPT0gbnVsbCkge1xuXHRcdGlmIChub2RlVHlwZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld1Byb3BzKTtcblx0XHR9XG5cblx0XHRkb20gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXG5cdFx0XHRuYW1lc3BhY2UsXG5cdFx0XHRub2RlVHlwZSxcblx0XHRcdG5ld1Byb3BzLmlzICYmIG5ld1Byb3BzXG5cdFx0KTtcblxuXHRcdC8vIHdlIGFyZSBjcmVhdGluZyBhIG5ldyBub2RlLCBzbyB3ZSBjYW4gYXNzdW1lIHRoaXMgaXMgYSBuZXcgc3VidHJlZSAoaW5cblx0XHQvLyBjYXNlIHdlIGFyZSBoeWRyYXRpbmcpLCB0aGlzIGRlb3B0cyB0aGUgaHlkcmF0ZVxuXHRcdGlmIChpc0h5ZHJhdGluZykge1xuXHRcdFx0aWYgKG9wdGlvbnMuX2h5ZHJhdGlvbk1pc21hdGNoKVxuXHRcdFx0XHRvcHRpb25zLl9oeWRyYXRpb25NaXNtYXRjaChuZXdWTm9kZSwgZXhjZXNzRG9tQ2hpbGRyZW4pO1xuXHRcdFx0aXNIeWRyYXRpbmcgPSBmYWxzZTtcblx0XHR9XG5cdFx0Ly8gd2UgY3JlYXRlZCBhIG5ldyBwYXJlbnQsIHNvIG5vbmUgb2YgdGhlIHByZXZpb3VzbHkgYXR0YWNoZWQgY2hpbGRyZW4gY2FuIGJlIHJldXNlZDpcblx0XHRleGNlc3NEb21DaGlsZHJlbiA9IG51bGw7XG5cdH1cblxuXHRpZiAobm9kZVR5cGUgPT09IG51bGwpIHtcblx0XHQvLyBEdXJpbmcgaHlkcmF0aW9uLCB3ZSBzdGlsbCBoYXZlIHRvIHNwbGl0IG1lcmdlZCB0ZXh0IGZyb20gU1NSJ2QgSFRNTC5cblx0XHRpZiAob2xkUHJvcHMgIT09IG5ld1Byb3BzICYmICghaXNIeWRyYXRpbmcgfHwgZG9tLmRhdGEgIT09IG5ld1Byb3BzKSkge1xuXHRcdFx0ZG9tLmRhdGEgPSBuZXdQcm9wcztcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSWYgZXhjZXNzRG9tQ2hpbGRyZW4gd2FzIG5vdCBudWxsLCByZXBvcHVsYXRlIGl0IHdpdGggdGhlIGN1cnJlbnQgZWxlbWVudCdzIGNoaWxkcmVuOlxuXHRcdGV4Y2Vzc0RvbUNoaWxkcmVuID0gZXhjZXNzRG9tQ2hpbGRyZW4gJiYgc2xpY2UuY2FsbChkb20uY2hpbGROb2Rlcyk7XG5cblx0XHRvbGRQcm9wcyA9IG9sZFZOb2RlLnByb3BzIHx8IEVNUFRZX09CSjtcblxuXHRcdC8vIElmIHdlIGFyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZSB3ZSBhcmUgbm90IGh5ZHJhdGluZyBidXQgYXJlIHVzaW5nXG5cdFx0Ly8gZXhpc3RpbmcgRE9NIChlLmcuIHJlcGxhY2VOb2RlKSB3ZSBzaG91bGQgcmVhZCB0aGUgZXhpc3RpbmcgRE9NXG5cdFx0Ly8gYXR0cmlidXRlcyB0byBkaWZmIHRoZW1cblx0XHRpZiAoIWlzSHlkcmF0aW5nICYmIGV4Y2Vzc0RvbUNoaWxkcmVuICE9IG51bGwpIHtcblx0XHRcdG9sZFByb3BzID0ge307XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgZG9tLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dmFsdWUgPSBkb20uYXR0cmlidXRlc1tpXTtcblx0XHRcdFx0b2xkUHJvcHNbdmFsdWUubmFtZV0gPSB2YWx1ZS52YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgaW4gb2xkUHJvcHMpIHtcblx0XHRcdHZhbHVlID0gb2xkUHJvcHNbaV07XG5cdFx0XHRpZiAoaSA9PSAnY2hpbGRyZW4nKSB7XG5cdFx0XHR9IGVsc2UgaWYgKGkgPT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykge1xuXHRcdFx0XHRvbGRIdG1sID0gdmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKCEoaSBpbiBuZXdQcm9wcykpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdChpID09ICd2YWx1ZScgJiYgJ2RlZmF1bHRWYWx1ZScgaW4gbmV3UHJvcHMpIHx8XG5cdFx0XHRcdFx0KGkgPT0gJ2NoZWNrZWQnICYmICdkZWZhdWx0Q2hlY2tlZCcgaW4gbmV3UHJvcHMpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNldFByb3BlcnR5KGRvbSwgaSwgbnVsbCwgdmFsdWUsIG5hbWVzcGFjZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRHVyaW5nIGh5ZHJhdGlvbiwgcHJvcHMgYXJlIG5vdCBkaWZmZWQgYXQgYWxsIChpbmNsdWRpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpXG5cdFx0Ly8gQFRPRE8gd2Ugc2hvdWxkIHdhcm4gaW4gZGVidWcgbW9kZSB3aGVuIHByb3BzIGRvbid0IG1hdGNoIGhlcmUuXG5cdFx0Zm9yIChpIGluIG5ld1Byb3BzKSB7XG5cdFx0XHR2YWx1ZSA9IG5ld1Byb3BzW2ldO1xuXHRcdFx0aWYgKGkgPT0gJ2NoaWxkcmVuJykge1xuXHRcdFx0XHRuZXdDaGlsZHJlbiA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcpIHtcblx0XHRcdFx0bmV3SHRtbCA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICd2YWx1ZScpIHtcblx0XHRcdFx0aW5wdXRWYWx1ZSA9IHZhbHVlO1xuXHRcdFx0fSBlbHNlIGlmIChpID09ICdjaGVja2VkJykge1xuXHRcdFx0XHRjaGVja2VkID0gdmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHQoIWlzSHlkcmF0aW5nIHx8IHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSAmJlxuXHRcdFx0XHRvbGRQcm9wc1tpXSAhPT0gdmFsdWVcblx0XHRcdCkge1xuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIHZhbHVlLCBvbGRQcm9wc1tpXSwgbmFtZXNwYWNlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgbmV3IHZub2RlIGRpZG4ndCBoYXZlIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLCBkaWZmIGl0cyBjaGlsZHJlblxuXHRcdGlmIChuZXdIdG1sKSB7XG5cdFx0XHQvLyBBdm9pZCByZS1hcHBseWluZyB0aGUgc2FtZSAnX19odG1sJyBpZiBpdCBkaWQgbm90IGNoYW5nZWQgYmV0d2VlbiByZS1yZW5kZXJcblx0XHRcdGlmIChcblx0XHRcdFx0IWlzSHlkcmF0aW5nICYmXG5cdFx0XHRcdCghb2xkSHRtbCB8fFxuXHRcdFx0XHRcdChuZXdIdG1sLl9faHRtbCAhPT0gb2xkSHRtbC5fX2h0bWwgJiZcblx0XHRcdFx0XHRcdG5ld0h0bWwuX19odG1sICE9PSBkb20uaW5uZXJIVE1MKSlcblx0XHRcdCkge1xuXHRcdFx0XHRkb20uaW5uZXJIVE1MID0gbmV3SHRtbC5fX2h0bWw7XG5cdFx0XHR9XG5cblx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IFtdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAob2xkSHRtbCkgZG9tLmlubmVySFRNTCA9ICcnO1xuXG5cdFx0XHRkaWZmQ2hpbGRyZW4oXG5cdFx0XHRcdGRvbSxcblx0XHRcdFx0aXNBcnJheShuZXdDaGlsZHJlbikgPyBuZXdDaGlsZHJlbiA6IFtuZXdDaGlsZHJlbl0sXG5cdFx0XHRcdG5ld1ZOb2RlLFxuXHRcdFx0XHRvbGRWTm9kZSxcblx0XHRcdFx0Z2xvYmFsQ29udGV4dCxcblx0XHRcdFx0bm9kZVR5cGUgPT09ICdmb3JlaWduT2JqZWN0J1xuXHRcdFx0XHRcdD8gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnXG5cdFx0XHRcdFx0OiBuYW1lc3BhY2UsXG5cdFx0XHRcdGV4Y2Vzc0RvbUNoaWxkcmVuLFxuXHRcdFx0XHRjb21taXRRdWV1ZSxcblx0XHRcdFx0ZXhjZXNzRG9tQ2hpbGRyZW5cblx0XHRcdFx0XHQ/IGV4Y2Vzc0RvbUNoaWxkcmVuWzBdXG5cdFx0XHRcdFx0OiBvbGRWTm9kZS5fY2hpbGRyZW4gJiYgZ2V0RG9tU2libGluZyhvbGRWTm9kZSwgMCksXG5cdFx0XHRcdGlzSHlkcmF0aW5nLFxuXHRcdFx0XHRyZWZRdWV1ZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gUmVtb3ZlIGNoaWxkcmVuIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGFueSB2bm9kZS5cblx0XHRcdGlmIChleGNlc3NEb21DaGlsZHJlbiAhPSBudWxsKSB7XG5cdFx0XHRcdGZvciAoaSA9IGV4Y2Vzc0RvbUNoaWxkcmVuLmxlbmd0aDsgaS0tOyApIHtcblx0XHRcdFx0XHRyZW1vdmVOb2RlKGV4Y2Vzc0RvbUNoaWxkcmVuW2ldKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFzIGFib3ZlLCBkb24ndCBkaWZmIHByb3BzIGR1cmluZyBoeWRyYXRpb25cblx0XHRpZiAoIWlzSHlkcmF0aW5nKSB7XG5cdFx0XHRpID0gJ3ZhbHVlJztcblx0XHRcdGlmIChub2RlVHlwZSA9PT0gJ3Byb2dyZXNzJyAmJiBpbnB1dFZhbHVlID09IG51bGwpIHtcblx0XHRcdFx0ZG9tLnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTtcblx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdGlucHV0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHQvLyAjMjc1NiBGb3IgdGhlIDxwcm9ncmVzcz4tZWxlbWVudCB0aGUgaW5pdGlhbCB2YWx1ZSBpcyAwLFxuXHRcdFx0XHQvLyBkZXNwaXRlIHRoZSBhdHRyaWJ1dGUgbm90IGJlaW5nIHByZXNlbnQuIFdoZW4gdGhlIGF0dHJpYnV0ZVxuXHRcdFx0XHQvLyBpcyBtaXNzaW5nIHRoZSBwcm9ncmVzcyBiYXIgaXMgdHJlYXRlZCBhcyBpbmRldGVybWluYXRlLlxuXHRcdFx0XHQvLyBUbyBmaXggdGhhdCB3ZSdsbCBhbHdheXMgdXBkYXRlIGl0IHdoZW4gaXQgaXMgMCBmb3IgcHJvZ3Jlc3MgZWxlbWVudHNcblx0XHRcdFx0KGlucHV0VmFsdWUgIT09IGRvbVtpXSB8fFxuXHRcdFx0XHRcdChub2RlVHlwZSA9PT0gJ3Byb2dyZXNzJyAmJiAhaW5wdXRWYWx1ZSkgfHxcblx0XHRcdFx0XHQvLyBUaGlzIGlzIG9ubHkgZm9yIElFIDExIHRvIGZpeCA8c2VsZWN0PiB2YWx1ZSBub3QgYmVpbmcgdXBkYXRlZC5cblx0XHRcdFx0XHQvLyBUbyBhdm9pZCBhIHN0YWxlIHNlbGVjdCB2YWx1ZSB3ZSBuZWVkIHRvIHNldCB0aGUgb3B0aW9uLnZhbHVlXG5cdFx0XHRcdFx0Ly8gYWdhaW4sIHdoaWNoIHRyaWdnZXJzIElFMTEgdG8gcmUtZXZhbHVhdGUgdGhlIHNlbGVjdCB2YWx1ZVxuXHRcdFx0XHRcdChub2RlVHlwZSA9PT0gJ29wdGlvbicgJiYgaW5wdXRWYWx1ZSAhPT0gb2xkUHJvcHNbaV0pKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHNldFByb3BlcnR5KGRvbSwgaSwgaW5wdXRWYWx1ZSwgb2xkUHJvcHNbaV0sIG5hbWVzcGFjZSk7XG5cdFx0XHR9XG5cblx0XHRcdGkgPSAnY2hlY2tlZCc7XG5cdFx0XHRpZiAoY2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmIGNoZWNrZWQgIT09IGRvbVtpXSkge1xuXHRcdFx0XHRzZXRQcm9wZXJ0eShkb20sIGksIGNoZWNrZWQsIG9sZFByb3BzW2ldLCBuYW1lc3BhY2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBkb207XG59XG5cbi8qKlxuICogSW52b2tlIG9yIHVwZGF0ZSBhIHJlZiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaXMgYSBmdW5jdGlvbiBvciBvYmplY3QgcmVmLlxuICogQHBhcmFtIHtSZWY8YW55PiAmIHsgX3VubW91bnQ/OiB1bmtub3duIH19IHJlZlxuICogQHBhcmFtIHthbnl9IHZhbHVlXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlSZWYocmVmLCB2YWx1ZSwgdm5vZGUpIHtcblx0dHJ5IHtcblx0XHRpZiAodHlwZW9mIHJlZiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRsZXQgaGFzUmVmVW5tb3VudCA9IHR5cGVvZiByZWYuX3VubW91bnQgPT0gJ2Z1bmN0aW9uJztcblx0XHRcdGlmIChoYXNSZWZVbm1vdW50KSB7XG5cdFx0XHRcdC8vIEB0cy1pZ25vcmUgVFMgZG9lc24ndCBsaWtlIG1vdmluZyBuYXJyb3dpbmcgY2hlY2tzIGludG8gdmFyaWFibGVzXG5cdFx0XHRcdHJlZi5fdW5tb3VudCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWhhc1JlZlVubW91bnQgfHwgdmFsdWUgIT0gbnVsbCkge1xuXHRcdFx0XHQvLyBTdG9yZSB0aGUgY2xlYW51cCBmdW5jdGlvbiBvbiB0aGUgZnVuY3Rpb25cblx0XHRcdFx0Ly8gaW5zdGFuY2Ugb2JqZWN0IGl0c2VsZiB0byBhdm9pZCBzaGFwZVxuXHRcdFx0XHQvLyB0cmFuc2l0aW9uaW5nIHZub2RlXG5cdFx0XHRcdHJlZi5fdW5tb3VudCA9IHJlZih2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHJlZi5jdXJyZW50ID0gdmFsdWU7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIHZub2RlKTtcblx0fVxufVxuXG4vKipcbiAqIFVubW91bnQgYSB2aXJ0dWFsIG5vZGUgZnJvbSB0aGUgdHJlZSBhbmQgYXBwbHkgRE9NIGNoYW5nZXNcbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gdW5tb3VudFxuICogQHBhcmFtIHtWTm9kZX0gcGFyZW50Vk5vZGUgVGhlIHBhcmVudCBvZiB0aGUgVk5vZGUgdGhhdCBpbml0aWF0ZWQgdGhlIHVubW91bnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBSZW1vdmVdIEZsYWcgdGhhdCBpbmRpY2F0ZXMgdGhhdCBhIHBhcmVudCBub2RlIG9mIHRoZVxuICogY3VycmVudCBlbGVtZW50IGlzIGFscmVhZHkgZGV0YWNoZWQgZnJvbSB0aGUgRE9NLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5tb3VudCh2bm9kZSwgcGFyZW50Vk5vZGUsIHNraXBSZW1vdmUpIHtcblx0bGV0IHI7XG5cdGlmIChvcHRpb25zLnVubW91bnQpIG9wdGlvbnMudW5tb3VudCh2bm9kZSk7XG5cblx0aWYgKChyID0gdm5vZGUucmVmKSkge1xuXHRcdGlmICghci5jdXJyZW50IHx8IHIuY3VycmVudCA9PT0gdm5vZGUuX2RvbSkge1xuXHRcdFx0YXBwbHlSZWYociwgbnVsbCwgcGFyZW50Vk5vZGUpO1xuXHRcdH1cblx0fVxuXG5cdGlmICgociA9IHZub2RlLl9jb21wb25lbnQpICE9IG51bGwpIHtcblx0XHRpZiAoci5jb21wb25lbnRXaWxsVW5tb3VudCkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ci5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRvcHRpb25zLl9jYXRjaEVycm9yKGUsIHBhcmVudFZOb2RlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyLmJhc2UgPSByLl9wYXJlbnREb20gPSBudWxsO1xuXHR9XG5cblx0aWYgKChyID0gdm5vZGUuX2NoaWxkcmVuKSkge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgci5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKHJbaV0pIHtcblx0XHRcdFx0dW5tb3VudChcblx0XHRcdFx0XHRyW2ldLFxuXHRcdFx0XHRcdHBhcmVudFZOb2RlLFxuXHRcdFx0XHRcdHNraXBSZW1vdmUgfHwgdHlwZW9mIHZub2RlLnR5cGUgIT0gJ2Z1bmN0aW9uJ1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmICghc2tpcFJlbW92ZSkge1xuXHRcdHJlbW92ZU5vZGUodm5vZGUuX2RvbSk7XG5cdH1cblxuXHQvLyBNdXN0IGJlIHNldCB0byBgdW5kZWZpbmVkYCB0byBwcm9wZXJseSBjbGVhbiB1cCBgX25leHREb21gXG5cdC8vIGZvciB3aGljaCBgbnVsbGAgaXMgYSB2YWxpZCB2YWx1ZS4gU2VlIGNvbW1lbnQgaW4gYGNyZWF0ZS1lbGVtZW50LmpzYFxuXHR2bm9kZS5fY29tcG9uZW50ID0gdm5vZGUuX3BhcmVudCA9IHZub2RlLl9kb20gPSB2bm9kZS5fbmV4dERvbSA9IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBgLnJlbmRlcigpYCBtZXRob2QgZm9yIGEgUEZDIGJhY2tpbmcgaW5zdGFuY2UuICovXG5mdW5jdGlvbiBkb1JlbmRlcihwcm9wcywgc3RhdGUsIGNvbnRleHQpIHtcblx0cmV0dXJuIHRoaXMuY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpO1xufVxuIiwgImltcG9ydCB7IEVNUFRZX09CSiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNvbW1pdFJvb3QsIGRpZmYgfSBmcm9tICcuL2RpZmYvaW5kZXgnO1xuaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgRnJhZ21lbnQgfSBmcm9tICcuL2NyZWF0ZS1lbGVtZW50JztcbmltcG9ydCBvcHRpb25zIGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBzbGljZSB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogUmVuZGVyIGEgUHJlYWN0IHZpcnR1YWwgbm9kZSBpbnRvIGEgRE9NIGVsZW1lbnRcbiAqIEBwYXJhbSB7Q29tcG9uZW50Q2hpbGR9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbSBUaGUgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIGludG9cbiAqIEBwYXJhbSB7UHJlYWN0RWxlbWVudCB8IG9iamVjdH0gW3JlcGxhY2VOb2RlXSBPcHRpb25hbDogQXR0ZW1wdCB0byByZS11c2UgYW5cbiAqIGV4aXN0aW5nIERPTSB0cmVlIHJvb3RlZCBhdCBgcmVwbGFjZU5vZGVgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIodm5vZGUsIHBhcmVudERvbSwgcmVwbGFjZU5vZGUpIHtcblx0aWYgKG9wdGlvbnMuX3Jvb3QpIG9wdGlvbnMuX3Jvb3Qodm5vZGUsIHBhcmVudERvbSk7XG5cblx0Ly8gV2UgYWJ1c2UgdGhlIGByZXBsYWNlTm9kZWAgcGFyYW1ldGVyIGluIGBoeWRyYXRlKClgIHRvIHNpZ25hbCBpZiB3ZSBhcmUgaW5cblx0Ly8gaHlkcmF0aW9uIG1vZGUgb3Igbm90IGJ5IHBhc3NpbmcgdGhlIGBoeWRyYXRlYCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgRE9NXG5cdC8vIGVsZW1lbnQuLlxuXHRsZXQgaXNIeWRyYXRpbmcgPSB0eXBlb2YgcmVwbGFjZU5vZGUgPT0gJ2Z1bmN0aW9uJztcblxuXHQvLyBUbyBiZSBhYmxlIHRvIHN1cHBvcnQgY2FsbGluZyBgcmVuZGVyKClgIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lXG5cdC8vIERPTSBub2RlLCB3ZSBuZWVkIHRvIG9idGFpbiBhIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXMgdHJlZS4gV2UgZG9cblx0Ly8gdGhpcyBieSBhc3NpZ25pbmcgYSBuZXcgYF9jaGlsZHJlbmAgcHJvcGVydHkgdG8gRE9NIG5vZGVzIHdoaWNoIHBvaW50c1xuXHQvLyB0byB0aGUgbGFzdCByZW5kZXJlZCB0cmVlLiBCeSBkZWZhdWx0IHRoaXMgcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIHdoaWNoXG5cdC8vIG1lYW5zIHRoYXQgd2UgYXJlIG1vdW50aW5nIGEgbmV3IHRyZWUgZm9yIHRoZSBmaXJzdCB0aW1lLlxuXHRsZXQgb2xkVk5vZGUgPSBpc0h5ZHJhdGluZ1xuXHRcdD8gbnVsbFxuXHRcdDogKHJlcGxhY2VOb2RlICYmIHJlcGxhY2VOb2RlLl9jaGlsZHJlbikgfHwgcGFyZW50RG9tLl9jaGlsZHJlbjtcblxuXHR2bm9kZSA9ICgoIWlzSHlkcmF0aW5nICYmIHJlcGxhY2VOb2RlKSB8fCBwYXJlbnREb20pLl9jaGlsZHJlbiA9XG5cdFx0Y3JlYXRlRWxlbWVudChGcmFnbWVudCwgbnVsbCwgW3Zub2RlXSk7XG5cblx0Ly8gTGlzdCBvZiBlZmZlY3RzIHRoYXQgbmVlZCB0byBiZSBjYWxsZWQgYWZ0ZXIgZGlmZmluZy5cblx0bGV0IGNvbW1pdFF1ZXVlID0gW10sXG5cdFx0cmVmUXVldWUgPSBbXTtcblx0ZGlmZihcblx0XHRwYXJlbnREb20sXG5cdFx0Ly8gRGV0ZXJtaW5lIHRoZSBuZXcgdm5vZGUgdHJlZSBhbmQgc3RvcmUgaXQgb24gdGhlIERPTSBlbGVtZW50IG9uXG5cdFx0Ly8gb3VyIGN1c3RvbSBgX2NoaWxkcmVuYCBwcm9wZXJ0eS5cblx0XHR2bm9kZSxcblx0XHRvbGRWTm9kZSB8fCBFTVBUWV9PQkosXG5cdFx0RU1QVFlfT0JKLFxuXHRcdHBhcmVudERvbS5uYW1lc3BhY2VVUkksXG5cdFx0IWlzSHlkcmF0aW5nICYmIHJlcGxhY2VOb2RlXG5cdFx0XHQ/IFtyZXBsYWNlTm9kZV1cblx0XHRcdDogb2xkVk5vZGVcblx0XHRcdFx0PyBudWxsXG5cdFx0XHRcdDogcGFyZW50RG9tLmZpcnN0Q2hpbGRcblx0XHRcdFx0XHQ/IHNsaWNlLmNhbGwocGFyZW50RG9tLmNoaWxkTm9kZXMpXG5cdFx0XHRcdFx0OiBudWxsLFxuXHRcdGNvbW1pdFF1ZXVlLFxuXHRcdCFpc0h5ZHJhdGluZyAmJiByZXBsYWNlTm9kZVxuXHRcdFx0PyByZXBsYWNlTm9kZVxuXHRcdFx0OiBvbGRWTm9kZVxuXHRcdFx0XHQ/IG9sZFZOb2RlLl9kb21cblx0XHRcdFx0OiBwYXJlbnREb20uZmlyc3RDaGlsZCxcblx0XHRpc0h5ZHJhdGluZyxcblx0XHRyZWZRdWV1ZVxuXHQpO1xuXG5cdC8vIEZsdXNoIGFsbCBxdWV1ZWQgZWZmZWN0c1xuXHRjb21taXRSb290KGNvbW1pdFF1ZXVlLCB2bm9kZSwgcmVmUXVldWUpO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhbiBleGlzdGluZyBET00gZWxlbWVudCB3aXRoIGRhdGEgZnJvbSBhIFByZWFjdCB2aXJ0dWFsIG5vZGVcbiAqIEBwYXJhbSB7Q29tcG9uZW50Q2hpbGR9IHZub2RlIFRoZSB2aXJ0dWFsIG5vZGUgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge1ByZWFjdEVsZW1lbnR9IHBhcmVudERvbSBUaGUgRE9NIGVsZW1lbnQgdG8gdXBkYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoeWRyYXRlKHZub2RlLCBwYXJlbnREb20pIHtcblx0cmVuZGVyKHZub2RlLCBwYXJlbnREb20sIGh5ZHJhdGUpO1xufVxuIiwgImltcG9ydCB7IGFzc2lnbiwgc2xpY2UgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgY3JlYXRlVk5vZGUgfSBmcm9tICcuL2NyZWF0ZS1lbGVtZW50JztcblxuLyoqXG4gKiBDbG9uZXMgdGhlIGdpdmVuIFZOb2RlLCBvcHRpb25hbGx5IGFkZGluZyBhdHRyaWJ1dGVzL3Byb3BzIGFuZCByZXBsYWNpbmcgaXRzXG4gKiBjaGlsZHJlbi5cbiAqIEBwYXJhbSB7Vk5vZGV9IHZub2RlIFRoZSB2aXJ0dWFsIERPTSBlbGVtZW50IHRvIGNsb25lXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgQXR0cmlidXRlcy9wcm9wcyB0byBhZGQgd2hlbiBjbG9uaW5nXG4gKiBAcGFyYW0ge0FycmF5PENvbXBvbmVudENoaWxkcmVuPn0gcmVzdCBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgd2lsbCBiZSB1c2VkXG4gKiBhcyByZXBsYWNlbWVudCBjaGlsZHJlbi5cbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lRWxlbWVudCh2bm9kZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSBhc3NpZ24oe30sIHZub2RlLnByb3BzKSxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdGk7XG5cblx0bGV0IGRlZmF1bHRQcm9wcztcblxuXHRpZiAodm5vZGUudHlwZSAmJiB2bm9kZS50eXBlLmRlZmF1bHRQcm9wcykge1xuXHRcdGRlZmF1bHRQcm9wcyA9IHZub2RlLnR5cGUuZGVmYXVsdFByb3BzO1xuXHR9XG5cblx0Zm9yIChpIGluIHByb3BzKSB7XG5cdFx0aWYgKGkgPT0gJ2tleScpIGtleSA9IHByb3BzW2ldO1xuXHRcdGVsc2UgaWYgKGkgPT0gJ3JlZicpIHJlZiA9IHByb3BzW2ldO1xuXHRcdGVsc2UgaWYgKHByb3BzW2ldID09PSB1bmRlZmluZWQgJiYgZGVmYXVsdFByb3BzICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG5vcm1hbGl6ZWRQcm9wc1tpXSA9IGRlZmF1bHRQcm9wc1tpXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gcHJvcHNbaV07XG5cdFx0fVxuXHR9XG5cblx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNoaWxkcmVuID1cblx0XHRcdGFyZ3VtZW50cy5sZW5ndGggPiAzID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpIDogY2hpbGRyZW47XG5cdH1cblxuXHRyZXR1cm4gY3JlYXRlVk5vZGUoXG5cdFx0dm5vZGUudHlwZSxcblx0XHRub3JtYWxpemVkUHJvcHMsXG5cdFx0a2V5IHx8IHZub2RlLmtleSxcblx0XHRyZWYgfHwgdm5vZGUucmVmLFxuXHRcdG51bGxcblx0KTtcbn1cbiIsICIvKipcbiAqIEZpbmQgdGhlIGNsb3Nlc3QgZXJyb3IgYm91bmRhcnkgdG8gYSB0aHJvd24gZXJyb3IgYW5kIGNhbGwgaXRcbiAqIEBwYXJhbSB7b2JqZWN0fSBlcnJvciBUaGUgdGhyb3duIHZhbHVlXG4gKiBAcGFyYW0ge1ZOb2RlfSB2bm9kZSBUaGUgdm5vZGUgdGhhdCB0aHJldyB0aGUgZXJyb3IgdGhhdCB3YXMgY2F1Z2h0IChleGNlcHRcbiAqIGZvciB1bm1vdW50aW5nIHdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgdGhlIGhpZ2hlc3QgcGFyZW50IHRoYXQgd2FzIGJlaW5nXG4gKiB1bm1vdW50ZWQpXG4gKiBAcGFyYW0ge1ZOb2RlfSBbb2xkVk5vZGVdXG4gKiBAcGFyYW0ge0Vycm9ySW5mb30gW2Vycm9ySW5mb11cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9jYXRjaEVycm9yKGVycm9yLCB2bm9kZSwgb2xkVk5vZGUsIGVycm9ySW5mbykge1xuXHQvKiogQHR5cGUge0NvbXBvbmVudH0gKi9cblx0bGV0IGNvbXBvbmVudCxcblx0XHQvKiogQHR5cGUge0NvbXBvbmVudFR5cGV9ICovXG5cdFx0Y3Rvcixcblx0XHQvKiogQHR5cGUge2Jvb2xlYW59ICovXG5cdFx0aGFuZGxlZDtcblxuXHRmb3IgKDsgKHZub2RlID0gdm5vZGUuX3BhcmVudCk7ICkge1xuXHRcdGlmICgoY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudCkgJiYgIWNvbXBvbmVudC5fcHJvY2Vzc2luZ0V4Y2VwdGlvbikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y3RvciA9IGNvbXBvbmVudC5jb25zdHJ1Y3RvcjtcblxuXHRcdFx0XHRpZiAoY3RvciAmJiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50LnNldFN0YXRlKGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoY29tcG9uZW50LmNvbXBvbmVudERpZENhdGNoICE9IG51bGwpIHtcblx0XHRcdFx0XHRjb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbyB8fCB7fSk7XG5cdFx0XHRcdFx0aGFuZGxlZCA9IGNvbXBvbmVudC5fZGlydHk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaGlzIGlzIGFuIGVycm9yIGJvdW5kYXJ5LiBNYXJrIGl0IGFzIGhhdmluZyBiYWlsZWQgb3V0LCBhbmQgd2hldGhlciBpdCB3YXMgbWlkLWh5ZHJhdGlvbi5cblx0XHRcdFx0aWYgKGhhbmRsZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gKGNvbXBvbmVudC5fcGVuZGluZ0Vycm9yID0gY29tcG9uZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRlcnJvciA9IGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dGhyb3cgZXJyb3I7XG59XG4iLCAiaW1wb3J0IHsgb3B0aW9ucyBhcyBfb3B0aW9ucyB9IGZyb20gJ3ByZWFjdCc7XG5cbi8qKiBAdHlwZSB7bnVtYmVyfSAqL1xubGV0IGN1cnJlbnRJbmRleDtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5sZXQgY3VycmVudENvbXBvbmVudDtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnR9ICovXG5sZXQgcHJldmlvdXNDb21wb25lbnQ7XG5cbi8qKiBAdHlwZSB7bnVtYmVyfSAqL1xubGV0IGN1cnJlbnRIb29rID0gMDtcblxuLyoqIEB0eXBlIHtBcnJheTxpbXBvcnQoJy4vaW50ZXJuYWwnKS5Db21wb25lbnQ+fSAqL1xubGV0IGFmdGVyUGFpbnRFZmZlY3RzID0gW107XG5cbi8vIENhc3QgdG8gdXNlIGludGVybmFsIE9wdGlvbnMgdHlwZVxuY29uc3Qgb3B0aW9ucyA9IC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuT3B0aW9uc30gKi8gKF9vcHRpb25zKTtcblxubGV0IG9sZEJlZm9yZURpZmYgPSBvcHRpb25zLl9kaWZmO1xubGV0IG9sZEJlZm9yZVJlbmRlciA9IG9wdGlvbnMuX3JlbmRlcjtcbmxldCBvbGRBZnRlckRpZmYgPSBvcHRpb25zLmRpZmZlZDtcbmxldCBvbGRDb21taXQgPSBvcHRpb25zLl9jb21taXQ7XG5sZXQgb2xkQmVmb3JlVW5tb3VudCA9IG9wdGlvbnMudW5tb3VudDtcbmxldCBvbGRSb290ID0gb3B0aW9ucy5fcm9vdDtcblxuY29uc3QgUkFGX1RJTUVPVVQgPSAxMDA7XG5sZXQgcHJldlJhZjtcblxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlKSA9PiB2b2lkfSAqL1xub3B0aW9ucy5fZGlmZiA9IHZub2RlID0+IHtcblx0Y3VycmVudENvbXBvbmVudCA9IG51bGw7XG5cdGlmIChvbGRCZWZvcmVEaWZmKSBvbGRCZWZvcmVEaWZmKHZub2RlKTtcbn07XG5cbm9wdGlvbnMuX3Jvb3QgPSAodm5vZGUsIHBhcmVudERvbSkgPT4ge1xuXHRpZiAodm5vZGUgJiYgcGFyZW50RG9tLl9jaGlsZHJlbiAmJiBwYXJlbnREb20uX2NoaWxkcmVuLl9tYXNrKSB7XG5cdFx0dm5vZGUuX21hc2sgPSBwYXJlbnREb20uX2NoaWxkcmVuLl9tYXNrO1xuXHR9XG5cblx0aWYgKG9sZFJvb3QpIG9sZFJvb3Qodm5vZGUsIHBhcmVudERvbSk7XG59O1xuXG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUpID0+IHZvaWR9ICovXG5vcHRpb25zLl9yZW5kZXIgPSB2bm9kZSA9PiB7XG5cdGlmIChvbGRCZWZvcmVSZW5kZXIpIG9sZEJlZm9yZVJlbmRlcih2bm9kZSk7XG5cblx0Y3VycmVudENvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQ7XG5cdGN1cnJlbnRJbmRleCA9IDA7XG5cblx0Y29uc3QgaG9va3MgPSBjdXJyZW50Q29tcG9uZW50Ll9faG9va3M7XG5cdGlmIChob29rcykge1xuXHRcdGlmIChwcmV2aW91c0NvbXBvbmVudCA9PT0gY3VycmVudENvbXBvbmVudCkge1xuXHRcdFx0aG9va3MuX3BlbmRpbmdFZmZlY3RzID0gW107XG5cdFx0XHRjdXJyZW50Q29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MgPSBbXTtcblx0XHRcdGhvb2tzLl9saXN0LmZvckVhY2goaG9va0l0ZW0gPT4ge1xuXHRcdFx0XHRpZiAoaG9va0l0ZW0uX25leHRWYWx1ZSkge1xuXHRcdFx0XHRcdGhvb2tJdGVtLl92YWx1ZSA9IGhvb2tJdGVtLl9uZXh0VmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aG9va0l0ZW0uX3BlbmRpbmdBcmdzID0gaG9va0l0ZW0uX25leHRWYWx1ZSA9IHVuZGVmaW5lZDtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRob29rcy5fcGVuZGluZ0VmZmVjdHMuZm9yRWFjaChpbnZva2VDbGVhbnVwKTtcblx0XHRcdGhvb2tzLl9wZW5kaW5nRWZmZWN0cy5mb3JFYWNoKGludm9rZUVmZmVjdCk7XG5cdFx0XHRob29rcy5fcGVuZGluZ0VmZmVjdHMgPSBbXTtcblx0XHRcdGN1cnJlbnRJbmRleCA9IDA7XG5cdFx0fVxuXHR9XG5cdHByZXZpb3VzQ29tcG9uZW50ID0gY3VycmVudENvbXBvbmVudDtcbn07XG5cbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMuZGlmZmVkID0gdm5vZGUgPT4ge1xuXHRpZiAob2xkQWZ0ZXJEaWZmKSBvbGRBZnRlckRpZmYodm5vZGUpO1xuXG5cdGNvbnN0IGMgPSB2bm9kZS5fY29tcG9uZW50O1xuXHRpZiAoYyAmJiBjLl9faG9va3MpIHtcblx0XHRpZiAoYy5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cy5sZW5ndGgpIGFmdGVyUGFpbnQoYWZ0ZXJQYWludEVmZmVjdHMucHVzaChjKSk7XG5cdFx0Yy5fX2hvb2tzLl9saXN0LmZvckVhY2goaG9va0l0ZW0gPT4ge1xuXHRcdFx0aWYgKGhvb2tJdGVtLl9wZW5kaW5nQXJncykge1xuXHRcdFx0XHRob29rSXRlbS5fYXJncyA9IGhvb2tJdGVtLl9wZW5kaW5nQXJncztcblx0XHRcdH1cblx0XHRcdGhvb2tJdGVtLl9wZW5kaW5nQXJncyA9IHVuZGVmaW5lZDtcblx0XHR9KTtcblx0fVxuXHRwcmV2aW91c0NvbXBvbmVudCA9IGN1cnJlbnRDb21wb25lbnQgPSBudWxsO1xufTtcblxuLy8gVE9ETzogSW1wcm92ZSB0eXBpbmcgb2YgY29tbWl0UXVldWUgcGFyYW1ldGVyXG4vKiogQHR5cGUgeyh2bm9kZTogaW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGUsIGNvbW1pdFF1ZXVlOiBhbnkpID0+IHZvaWR9ICovXG5vcHRpb25zLl9jb21taXQgPSAodm5vZGUsIGNvbW1pdFF1ZXVlKSA9PiB7XG5cdGNvbW1pdFF1ZXVlLnNvbWUoY29tcG9uZW50ID0+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MuZm9yRWFjaChpbnZva2VDbGVhbnVwKTtcblx0XHRcdGNvbXBvbmVudC5fcmVuZGVyQ2FsbGJhY2tzID0gY29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MuZmlsdGVyKGNiID0+XG5cdFx0XHRcdGNiLl92YWx1ZSA/IGludm9rZUVmZmVjdChjYikgOiB0cnVlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGNvbW1pdFF1ZXVlLnNvbWUoYyA9PiB7XG5cdFx0XHRcdGlmIChjLl9yZW5kZXJDYWxsYmFja3MpIGMuX3JlbmRlckNhbGxiYWNrcyA9IFtdO1xuXHRcdFx0fSk7XG5cdFx0XHRjb21taXRRdWV1ZSA9IFtdO1xuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBjb21wb25lbnQuX3Zub2RlKTtcblx0XHR9XG5cdH0pO1xuXG5cdGlmIChvbGRDb21taXQpIG9sZENvbW1pdCh2bm9kZSwgY29tbWl0UXVldWUpO1xufTtcblxuLyoqIEB0eXBlIHsodm5vZGU6IGltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlKSA9PiB2b2lkfSAqL1xub3B0aW9ucy51bm1vdW50ID0gdm5vZGUgPT4ge1xuXHRpZiAob2xkQmVmb3JlVW5tb3VudCkgb2xkQmVmb3JlVW5tb3VudCh2bm9kZSk7XG5cblx0Y29uc3QgYyA9IHZub2RlLl9jb21wb25lbnQ7XG5cdGlmIChjICYmIGMuX19ob29rcykge1xuXHRcdGxldCBoYXNFcnJvcmVkO1xuXHRcdGMuX19ob29rcy5fbGlzdC5mb3JFYWNoKHMgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aW52b2tlQ2xlYW51cChzKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0aGFzRXJyb3JlZCA9IGU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0Yy5fX2hvb2tzID0gdW5kZWZpbmVkO1xuXHRcdGlmIChoYXNFcnJvcmVkKSBvcHRpb25zLl9jYXRjaEVycm9yKGhhc0Vycm9yZWQsIGMuX3Zub2RlKTtcblx0fVxufTtcblxuLyoqXG4gKiBHZXQgYSBob29rJ3Mgc3RhdGUgZnJvbSB0aGUgY3VycmVudENvbXBvbmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaG9vayB0byBnZXRcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlIFRoZSBpbmRleCBvZiB0aGUgaG9vayB0byBnZXRcbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmZ1bmN0aW9uIGdldEhvb2tTdGF0ZShpbmRleCwgdHlwZSkge1xuXHRpZiAob3B0aW9ucy5faG9vaykge1xuXHRcdG9wdGlvbnMuX2hvb2soY3VycmVudENvbXBvbmVudCwgaW5kZXgsIGN1cnJlbnRIb29rIHx8IHR5cGUpO1xuXHR9XG5cdGN1cnJlbnRIb29rID0gMDtcblxuXHQvLyBMYXJnZWx5IGluc3BpcmVkIGJ5OlxuXHQvLyAqIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNoYWVsLWtsZWluL2Z1bmN5LmpzL2Jsb2IvZjZiZTczNDY4ZTZlYzQ2YjBmZjVhYTNjYzRjOWJhZjcyYTI5MDI1YS9zcmMvaG9va3MvY29yZV9ob29rcy5tanNcblx0Ly8gKiBodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbC1rbGVpbi9mdW5jeS5qcy9ibG9iLzY1MGJlYWE1OGM0M2MzM2E3NDgyMGEzYzk4YjNjNzA3OWNmMmUzMzMvc3JjL3JlbmRlcmVyLm1qc1xuXHQvLyBPdGhlciBpbXBsZW1lbnRhdGlvbnMgdG8gbG9vayBhdDpcblx0Ly8gKiBodHRwczovL2NvZGVzYW5kYm94LmlvL3MvbW5veDA1cXA4XG5cdGNvbnN0IGhvb2tzID1cblx0XHRjdXJyZW50Q29tcG9uZW50Ll9faG9va3MgfHxcblx0XHQoY3VycmVudENvbXBvbmVudC5fX2hvb2tzID0ge1xuXHRcdFx0X2xpc3Q6IFtdLFxuXHRcdFx0X3BlbmRpbmdFZmZlY3RzOiBbXVxuXHRcdH0pO1xuXG5cdGlmIChpbmRleCA+PSBob29rcy5fbGlzdC5sZW5ndGgpIHtcblx0XHRob29rcy5fbGlzdC5wdXNoKHt9KTtcblx0fVxuXG5cdHJldHVybiBob29rcy5fbGlzdFtpbmRleF07XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBTXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkRpc3BhdGNoPGltcG9ydCgnLi9pbmRleCcpLlN0YXRlVXBkYXRlcjxTPj59IFtpbml0aWFsU3RhdGVdXG4gKiBAcmV0dXJucyB7W1MsIChzdGF0ZTogUykgPT4gdm9pZF19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGF0ZShpbml0aWFsU3RhdGUpIHtcblx0Y3VycmVudEhvb2sgPSAxO1xuXHRyZXR1cm4gdXNlUmVkdWNlcihpbnZva2VPclJldHVybiwgaW5pdGlhbFN0YXRlKTtcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUge3Vua25vd259IFNcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gQVxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5SZWR1Y2VyPFMsIEE+fSByZWR1Y2VyXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkRpc3BhdGNoPGltcG9ydCgnLi9pbmRleCcpLlN0YXRlVXBkYXRlcjxTPj59IGluaXRpYWxTdGF0ZVxuICogQHBhcmFtIHsoaW5pdGlhbFN0YXRlOiBhbnkpID0+IHZvaWR9IFtpbml0XVxuICogQHJldHVybnMge1sgUywgKHN0YXRlOiBTKSA9PiB2b2lkIF19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgaW5pdCkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlJlZHVjZXJIb29rU3RhdGV9ICovXG5cdGNvbnN0IGhvb2tTdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMik7XG5cdGhvb2tTdGF0ZS5fcmVkdWNlciA9IHJlZHVjZXI7XG5cdGlmICghaG9va1N0YXRlLl9jb21wb25lbnQpIHtcblx0XHRob29rU3RhdGUuX3ZhbHVlID0gW1xuXHRcdFx0IWluaXQgPyBpbnZva2VPclJldHVybih1bmRlZmluZWQsIGluaXRpYWxTdGF0ZSkgOiBpbml0KGluaXRpYWxTdGF0ZSksXG5cblx0XHRcdGFjdGlvbiA9PiB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGhvb2tTdGF0ZS5fbmV4dFZhbHVlXG5cdFx0XHRcdFx0PyBob29rU3RhdGUuX25leHRWYWx1ZVswXVxuXHRcdFx0XHRcdDogaG9va1N0YXRlLl92YWx1ZVswXTtcblx0XHRcdFx0Y29uc3QgbmV4dFZhbHVlID0gaG9va1N0YXRlLl9yZWR1Y2VyKGN1cnJlbnRWYWx1ZSwgYWN0aW9uKTtcblxuXHRcdFx0XHRpZiAoY3VycmVudFZhbHVlICE9PSBuZXh0VmFsdWUpIHtcblx0XHRcdFx0XHRob29rU3RhdGUuX25leHRWYWx1ZSA9IFtuZXh0VmFsdWUsIGhvb2tTdGF0ZS5fdmFsdWVbMV1dO1xuXHRcdFx0XHRcdGhvb2tTdGF0ZS5fY29tcG9uZW50LnNldFN0YXRlKHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRob29rU3RhdGUuX2NvbXBvbmVudCA9IGN1cnJlbnRDb21wb25lbnQ7XG5cblx0XHRpZiAoIWN1cnJlbnRDb21wb25lbnQuX2hhc1NjdUZyb21Ib29rcykge1xuXHRcdFx0Y3VycmVudENvbXBvbmVudC5faGFzU2N1RnJvbUhvb2tzID0gdHJ1ZTtcblx0XHRcdGxldCBwcmV2U2N1ID0gY3VycmVudENvbXBvbmVudC5zaG91bGRDb21wb25lbnRVcGRhdGU7XG5cdFx0XHRjb25zdCBwcmV2Q1dVID0gY3VycmVudENvbXBvbmVudC5jb21wb25lbnRXaWxsVXBkYXRlO1xuXG5cdFx0XHQvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBmb3JjZWQgdXBkYXRlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgIHdpbGxcblx0XHRcdC8vIG5vdCBiZSBjYWxsZWQuIEJ1dCB3ZSB1c2UgdGhhdCB0byB1cGRhdGUgdGhlIGhvb2sgdmFsdWVzLCBzbyB3ZVxuXHRcdFx0Ly8gbmVlZCB0byBjYWxsIGl0LlxuXHRcdFx0Y3VycmVudENvbXBvbmVudC5jb21wb25lbnRXaWxsVXBkYXRlID0gZnVuY3Rpb24gKHAsIHMsIGMpIHtcblx0XHRcdFx0aWYgKHRoaXMuX2ZvcmNlKSB7XG5cdFx0XHRcdFx0bGV0IHRtcCA9IHByZXZTY3U7XG5cdFx0XHRcdFx0Ly8gQ2xlYXIgdG8gYXZvaWQgb3RoZXIgc0NVIGhvb2tzIGZyb20gYmVpbmcgY2FsbGVkXG5cdFx0XHRcdFx0cHJldlNjdSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHR1cGRhdGVIb29rU3RhdGUocCwgcywgYyk7XG5cdFx0XHRcdFx0cHJldlNjdSA9IHRtcDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChwcmV2Q1dVKSBwcmV2Q1dVLmNhbGwodGhpcywgcCwgcywgYyk7XG5cdFx0XHR9O1xuXG5cdFx0XHQvLyBUaGlzIFNDVSBoYXMgdGhlIHB1cnBvc2Ugb2YgYmFpbGluZyBvdXQgYWZ0ZXIgcmVwZWF0ZWQgdXBkYXRlc1xuXHRcdFx0Ly8gdG8gc3RhdGVmdWwgaG9va3MuXG5cdFx0XHQvLyB3ZSBzdG9yZSB0aGUgbmV4dCB2YWx1ZSBpbiBfbmV4dFZhbHVlWzBdIGFuZCBrZWVwIGRvaW5nIHRoYXQgZm9yIGFsbFxuXHRcdFx0Ly8gc3RhdGUgc2V0dGVycywgaWYgd2UgaGF2ZSBuZXh0IHN0YXRlcyBhbmRcblx0XHRcdC8vIGFsbCBuZXh0IHN0YXRlcyB3aXRoaW4gYSBjb21wb25lbnQgZW5kIHVwIGJlaW5nIGVxdWFsIHRvIHRoZWlyIG9yaWdpbmFsIHN0YXRlXG5cdFx0XHQvLyB3ZSBhcmUgc2FmZSB0byBiYWlsIG91dCBmb3IgdGhpcyBzcGVjaWZpYyBjb21wb25lbnQuXG5cdFx0XHQvKipcblx0XHRcdCAqXG5cdFx0XHQgKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50W1wic2hvdWxkQ29tcG9uZW50VXBkYXRlXCJdfVxuXHRcdFx0ICovXG5cdFx0XHQvLyBAdHMtaWdub3JlIC0gV2UgZG9uJ3QgdXNlIFRTIHRvIGRvd250cmFuc3BpbGVcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbm5lci1kZWNsYXJhdGlvbnNcblx0XHRcdGZ1bmN0aW9uIHVwZGF0ZUhvb2tTdGF0ZShwLCBzLCBjKSB7XG5cdFx0XHRcdGlmICghaG9va1N0YXRlLl9jb21wb25lbnQuX19ob29rcykgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0LyoqIEB0eXBlIHsoeDogaW1wb3J0KCcuL2ludGVybmFsJykuSG9va1N0YXRlKSA9PiB4IGlzIGltcG9ydCgnLi9pbnRlcm5hbCcpLlJlZHVjZXJIb29rU3RhdGV9ICovXG5cdFx0XHRcdGNvbnN0IGlzU3RhdGVIb29rID0geCA9PiAhIXguX2NvbXBvbmVudDtcblx0XHRcdFx0Y29uc3Qgc3RhdGVIb29rcyA9XG5cdFx0XHRcdFx0aG9va1N0YXRlLl9jb21wb25lbnQuX19ob29rcy5fbGlzdC5maWx0ZXIoaXNTdGF0ZUhvb2spO1xuXG5cdFx0XHRcdGNvbnN0IGFsbEhvb2tzRW1wdHkgPSBzdGF0ZUhvb2tzLmV2ZXJ5KHggPT4gIXguX25leHRWYWx1ZSk7XG5cdFx0XHRcdC8vIFdoZW4gd2UgaGF2ZSBubyB1cGRhdGVkIGhvb2tzIGluIHRoZSBjb21wb25lbnQgd2UgaW52b2tlIHRoZSBwcmV2aW91cyBTQ1Ugb3Jcblx0XHRcdFx0Ly8gdHJhdmVyc2UgdGhlIFZET00gdHJlZSBmdXJ0aGVyLlxuXHRcdFx0XHRpZiAoYWxsSG9va3NFbXB0eSkge1xuXHRcdFx0XHRcdHJldHVybiBwcmV2U2N1ID8gcHJldlNjdS5jYWxsKHRoaXMsIHAsIHMsIGMpIDogdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFdlIGNoZWNrIHdoZXRoZXIgd2UgaGF2ZSBjb21wb25lbnRzIHdpdGggYSBuZXh0VmFsdWUgc2V0IHRoYXRcblx0XHRcdFx0Ly8gaGF2ZSB2YWx1ZXMgdGhhdCBhcmVuJ3QgZXF1YWwgdG8gb25lIGFub3RoZXIgdGhpcyBwdXNoZXNcblx0XHRcdFx0Ly8gdXMgdG8gdXBkYXRlIGZ1cnRoZXIgZG93biB0aGUgdHJlZVxuXHRcdFx0XHRsZXQgc2hvdWxkVXBkYXRlID0gZmFsc2U7XG5cdFx0XHRcdHN0YXRlSG9va3MuZm9yRWFjaChob29rSXRlbSA9PiB7XG5cdFx0XHRcdFx0aWYgKGhvb2tJdGVtLl9uZXh0VmFsdWUpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGhvb2tJdGVtLl92YWx1ZVswXTtcblx0XHRcdFx0XHRcdGhvb2tJdGVtLl92YWx1ZSA9IGhvb2tJdGVtLl9uZXh0VmFsdWU7XG5cdFx0XHRcdFx0XHRob29rSXRlbS5fbmV4dFZhbHVlID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSAhPT0gaG9va0l0ZW0uX3ZhbHVlWzBdKSBzaG91bGRVcGRhdGUgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0cmV0dXJuIHNob3VsZFVwZGF0ZSB8fCBob29rU3RhdGUuX2NvbXBvbmVudC5wcm9wcyAhPT0gcFxuXHRcdFx0XHRcdD8gcHJldlNjdVxuXHRcdFx0XHRcdFx0PyBwcmV2U2N1LmNhbGwodGhpcywgcCwgcywgYylcblx0XHRcdFx0XHRcdDogdHJ1ZVxuXHRcdFx0XHRcdDogZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGN1cnJlbnRDb21wb25lbnQuc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gdXBkYXRlSG9va1N0YXRlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBob29rU3RhdGUuX25leHRWYWx1ZSB8fCBob29rU3RhdGUuX3ZhbHVlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuRWZmZWN0fSBjYWxsYmFja1xuICogQHBhcmFtIHt1bmtub3duW119IGFyZ3NcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWZmZWN0KGNhbGxiYWNrLCBhcmdzKSB7XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuRWZmZWN0SG9va1N0YXRlfSAqL1xuXHRjb25zdCBzdGF0ZSA9IGdldEhvb2tTdGF0ZShjdXJyZW50SW5kZXgrKywgMyk7XG5cdGlmICghb3B0aW9ucy5fc2tpcEVmZmVjdHMgJiYgYXJnc0NoYW5nZWQoc3RhdGUuX2FyZ3MsIGFyZ3MpKSB7XG5cdFx0c3RhdGUuX3ZhbHVlID0gY2FsbGJhY2s7XG5cdFx0c3RhdGUuX3BlbmRpbmdBcmdzID0gYXJncztcblxuXHRcdGN1cnJlbnRDb21wb25lbnQuX19ob29rcy5fcGVuZGluZ0VmZmVjdHMucHVzaChzdGF0ZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdH0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBhcmdzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUxheW91dEVmZmVjdChjYWxsYmFjaywgYXJncykge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdEhvb2tTdGF0ZX0gKi9cblx0Y29uc3Qgc3RhdGUgPSBnZXRIb29rU3RhdGUoY3VycmVudEluZGV4KyssIDQpO1xuXHRpZiAoIW9wdGlvbnMuX3NraXBFZmZlY3RzICYmIGFyZ3NDaGFuZ2VkKHN0YXRlLl9hcmdzLCBhcmdzKSkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IGNhbGxiYWNrO1xuXHRcdHN0YXRlLl9wZW5kaW5nQXJncyA9IGFyZ3M7XG5cblx0XHRjdXJyZW50Q29tcG9uZW50Ll9yZW5kZXJDYWxsYmFja3MucHVzaChzdGF0ZSk7XG5cdH1cbn1cblxuLyoqIEB0eXBlIHsoaW5pdGlhbFZhbHVlOiB1bmtub3duKSA9PiB1bmtub3dufSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlZihpbml0aWFsVmFsdWUpIHtcblx0Y3VycmVudEhvb2sgPSA1O1xuXHRyZXR1cm4gdXNlTWVtbygoKSA9PiAoeyBjdXJyZW50OiBpbml0aWFsVmFsdWUgfSksIFtdKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVmXG4gKiBAcGFyYW0geygpID0+IG9iamVjdH0gY3JlYXRlSGFuZGxlXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlSGFuZGxlLCBhcmdzKSB7XG5cdGN1cnJlbnRIb29rID0gNjtcblx0dXNlTGF5b3V0RWZmZWN0KFxuXHRcdCgpID0+IHtcblx0XHRcdGlmICh0eXBlb2YgcmVmID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0cmVmKGNyZWF0ZUhhbmRsZSgpKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHJlZihudWxsKTtcblx0XHRcdH0gZWxzZSBpZiAocmVmKSB7XG5cdFx0XHRcdHJlZi5jdXJyZW50ID0gY3JlYXRlSGFuZGxlKCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiAocmVmLmN1cnJlbnQgPSBudWxsKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGFyZ3MgPT0gbnVsbCA/IGFyZ3MgOiBhcmdzLmNvbmNhdChyZWYpXG5cdCk7XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBUXG4gKiBAcGFyYW0geygpID0+IFR9IGZhY3RvcnlcbiAqIEBwYXJhbSB7dW5rbm93bltdfSBhcmdzXG4gKiBAcmV0dXJucyB7VH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbW8oZmFjdG9yeSwgYXJncykge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLk1lbW9Ib29rU3RhdGU8VD59ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCA3KTtcblx0aWYgKGFyZ3NDaGFuZ2VkKHN0YXRlLl9hcmdzLCBhcmdzKSkge1xuXHRcdHN0YXRlLl92YWx1ZSA9IGZhY3RvcnkoKTtcblx0XHRzdGF0ZS5fYXJncyA9IGFyZ3M7XG5cdFx0c3RhdGUuX2ZhY3RvcnkgPSBmYWN0b3J5O1xuXHR9XG5cblx0cmV0dXJuIHN0YXRlLl92YWx1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geygpID0+IHZvaWR9IGNhbGxiYWNrXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gYXJnc1xuICogQHJldHVybnMgeygpID0+IHZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgYXJncykge1xuXHRjdXJyZW50SG9vayA9IDg7XG5cdHJldHVybiB1c2VNZW1vKCgpID0+IGNhbGxiYWNrLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdENvbnRleHR9IGNvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnRleHQoY29udGV4dCkge1xuXHRjb25zdCBwcm92aWRlciA9IGN1cnJlbnRDb21wb25lbnQuY29udGV4dFtjb250ZXh0Ll9pZF07XG5cdC8vIFdlIGNvdWxkIHNraXAgdGhpcyBjYWxsIGhlcmUsIGJ1dCB0aGFuIHdlJ2Qgbm90IGNhbGxcblx0Ly8gYG9wdGlvbnMuX2hvb2tgLiBXZSBuZWVkIHRvIGRvIHRoYXQgaW4gb3JkZXIgdG8gbWFrZVxuXHQvLyB0aGUgZGV2dG9vbHMgYXdhcmUgb2YgdGhpcyBob29rLlxuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbnRleHRIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCA5KTtcblx0Ly8gVGhlIGRldnRvb2xzIG5lZWRzIGFjY2VzcyB0byB0aGUgY29udGV4dCBvYmplY3QgdG9cblx0Ly8gYmUgYWJsZSB0byBwdWxsIG9mIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gbm8gcHJvdmlkZXJcblx0Ly8gaXMgcHJlc2VudCBpbiB0aGUgdHJlZS5cblx0c3RhdGUuX2NvbnRleHQgPSBjb250ZXh0O1xuXHRpZiAoIXByb3ZpZGVyKSByZXR1cm4gY29udGV4dC5fZGVmYXVsdFZhbHVlO1xuXHQvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBzYWZlIHRvIGNvbnZlcnQgdG8gXCIhXCJcblx0aWYgKHN0YXRlLl92YWx1ZSA9PSBudWxsKSB7XG5cdFx0c3RhdGUuX3ZhbHVlID0gdHJ1ZTtcblx0XHRwcm92aWRlci5zdWIoY3VycmVudENvbXBvbmVudCk7XG5cdH1cblx0cmV0dXJuIHByb3ZpZGVyLnByb3BzLnZhbHVlO1xufVxuXG4vKipcbiAqIERpc3BsYXkgYSBjdXN0b20gbGFiZWwgZm9yIGEgY3VzdG9tIGhvb2sgZm9yIHRoZSBkZXZ0b29scyBwYW5lbFxuICogQHR5cGUgezxUPih2YWx1ZTogVCwgY2I/OiAodmFsdWU6IFQpID0+IHN0cmluZyB8IG51bWJlcikgPT4gdm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlcikge1xuXHRpZiAob3B0aW9ucy51c2VEZWJ1Z1ZhbHVlKSB7XG5cdFx0b3B0aW9ucy51c2VEZWJ1Z1ZhbHVlKFxuXHRcdFx0Zm9ybWF0dGVyID8gZm9ybWF0dGVyKHZhbHVlKSA6IC8qKiBAdHlwZSB7YW55fSovICh2YWx1ZSlcblx0XHQpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHsoZXJyb3I6IHVua25vd24sIGVycm9ySW5mbzogaW1wb3J0KCdwcmVhY3QnKS5FcnJvckluZm8pID0+IHZvaWR9IGNiXG4gKiBAcmV0dXJucyB7W3Vua25vd24sICgpID0+IHZvaWRdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRXJyb3JCb3VuZGFyeShjYikge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVycm9yQm91bmRhcnlIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCAxMCk7XG5cdGNvbnN0IGVyclN0YXRlID0gdXNlU3RhdGUoKTtcblx0c3RhdGUuX3ZhbHVlID0gY2I7XG5cdGlmICghY3VycmVudENvbXBvbmVudC5jb21wb25lbnREaWRDYXRjaCkge1xuXHRcdGN1cnJlbnRDb21wb25lbnQuY29tcG9uZW50RGlkQ2F0Y2ggPSAoZXJyLCBlcnJvckluZm8pID0+IHtcblx0XHRcdGlmIChzdGF0ZS5fdmFsdWUpIHN0YXRlLl92YWx1ZShlcnIsIGVycm9ySW5mbyk7XG5cdFx0XHRlcnJTdGF0ZVsxXShlcnIpO1xuXHRcdH07XG5cdH1cblx0cmV0dXJuIFtcblx0XHRlcnJTdGF0ZVswXSxcblx0XHQoKSA9PiB7XG5cdFx0XHRlcnJTdGF0ZVsxXSh1bmRlZmluZWQpO1xuXHRcdH1cblx0XTtcbn1cblxuLyoqIEB0eXBlIHsoKSA9PiBzdHJpbmd9ICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSWQoKSB7XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuSWRIb29rU3RhdGV9ICovXG5cdGNvbnN0IHN0YXRlID0gZ2V0SG9va1N0YXRlKGN1cnJlbnRJbmRleCsrLCAxMSk7XG5cdGlmICghc3RhdGUuX3ZhbHVlKSB7XG5cdFx0Ly8gR3JhYiBlaXRoZXIgdGhlIHJvb3Qgbm9kZSBvciB0aGUgbmVhcmVzdCBhc3luYyBib3VuZGFyeSBub2RlLlxuXHRcdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsLmQnKS5WTm9kZX0gKi9cblx0XHRsZXQgcm9vdCA9IGN1cnJlbnRDb21wb25lbnQuX3Zub2RlO1xuXHRcdHdoaWxlIChyb290ICE9PSBudWxsICYmICFyb290Ll9tYXNrICYmIHJvb3QuX3BhcmVudCAhPT0gbnVsbCkge1xuXHRcdFx0cm9vdCA9IHJvb3QuX3BhcmVudDtcblx0XHR9XG5cblx0XHRsZXQgbWFzayA9IHJvb3QuX21hc2sgfHwgKHJvb3QuX21hc2sgPSBbMCwgMF0pO1xuXHRcdHN0YXRlLl92YWx1ZSA9ICdQJyArIG1hc2tbMF0gKyAnLScgKyBtYXNrWzFdKys7XG5cdH1cblxuXHRyZXR1cm4gc3RhdGUuX3ZhbHVlO1xufVxuXG4vKipcbiAqIEFmdGVyIHBhaW50IGVmZmVjdHMgY29uc3VtZXIuXG4gKi9cbmZ1bmN0aW9uIGZsdXNoQWZ0ZXJQYWludEVmZmVjdHMoKSB7XG5cdGxldCBjb21wb25lbnQ7XG5cdHdoaWxlICgoY29tcG9uZW50ID0gYWZ0ZXJQYWludEVmZmVjdHMuc2hpZnQoKSkpIHtcblx0XHRpZiAoIWNvbXBvbmVudC5fcGFyZW50RG9tIHx8ICFjb21wb25lbnQuX19ob29rcykgY29udGludWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cy5mb3JFYWNoKGludm9rZUNsZWFudXApO1xuXHRcdFx0Y29tcG9uZW50Ll9faG9va3MuX3BlbmRpbmdFZmZlY3RzLmZvckVhY2goaW52b2tlRWZmZWN0KTtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cyA9IFtdO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGNvbXBvbmVudC5fX2hvb2tzLl9wZW5kaW5nRWZmZWN0cyA9IFtdO1xuXHRcdFx0b3B0aW9ucy5fY2F0Y2hFcnJvcihlLCBjb21wb25lbnQuX3Zub2RlKTtcblx0XHR9XG5cdH1cbn1cblxubGV0IEhBU19SQUYgPSB0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09ICdmdW5jdGlvbic7XG5cbi8qKlxuICogU2NoZWR1bGUgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIGFmdGVyIHRoZSBicm93c2VyIGhhcyBhIGNoYW5jZSB0byBwYWludCBhIG5ldyBmcmFtZS5cbiAqIERvIHRoaXMgYnkgY29tYmluaW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSAockFGKSArIHNldFRpbWVvdXQgdG8gaW52b2tlIGEgY2FsbGJhY2sgYWZ0ZXJcbiAqIHRoZSBuZXh0IGJyb3dzZXIgZnJhbWUuXG4gKlxuICogQWxzbywgc2NoZWR1bGUgYSB0aW1lb3V0IGluIHBhcmFsbGVsIHRvIHRoZSB0aGUgckFGIHRvIGVuc3VyZSB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZFxuICogZXZlbiBpZiBSQUYgZG9lc24ndCBmaXJlIChmb3IgZXhhbXBsZSBpZiB0aGUgYnJvd3NlciB0YWIgaXMgbm90IHZpc2libGUpXG4gKlxuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBjYWxsYmFja1xuICovXG5mdW5jdGlvbiBhZnRlck5leHRGcmFtZShjYWxsYmFjaykge1xuXHRjb25zdCBkb25lID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblx0XHRpZiAoSEFTX1JBRikgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmKTtcblx0XHRzZXRUaW1lb3V0KGNhbGxiYWNrKTtcblx0fTtcblx0Y29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoZG9uZSwgUkFGX1RJTUVPVVQpO1xuXG5cdGxldCByYWY7XG5cdGlmIChIQVNfUkFGKSB7XG5cdFx0cmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvbmUpO1xuXHR9XG59XG5cbi8vIE5vdGU6IGlmIHNvbWVvbmUgdXNlZCBvcHRpb25zLmRlYm91bmNlUmVuZGVyaW5nID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLFxuLy8gdGhlbiBlZmZlY3RzIHdpbGwgQUxXQVlTIHJ1biBvbiB0aGUgTkVYVCBmcmFtZSBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IG9uZSwgaW5jdXJyaW5nIGEgfjE2bXMgZGVsYXkuXG4vLyBQZXJoYXBzIHRoaXMgaXMgbm90IHN1Y2ggYSBiaWcgZGVhbC5cbi8qKlxuICogU2NoZWR1bGUgYWZ0ZXJQYWludEVmZmVjdHMgZmx1c2ggYWZ0ZXIgdGhlIGJyb3dzZXIgcGFpbnRzXG4gKiBAcGFyYW0ge251bWJlcn0gbmV3UXVldWVMZW5ndGhcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBhZnRlclBhaW50KG5ld1F1ZXVlTGVuZ3RoKSB7XG5cdGlmIChuZXdRdWV1ZUxlbmd0aCA9PT0gMSB8fCBwcmV2UmFmICE9PSBvcHRpb25zLnJlcXVlc3RBbmltYXRpb25GcmFtZSkge1xuXHRcdHByZXZSYWYgPSBvcHRpb25zLnJlcXVlc3RBbmltYXRpb25GcmFtZTtcblx0XHQocHJldlJhZiB8fCBhZnRlck5leHRGcmFtZSkoZmx1c2hBZnRlclBhaW50RWZmZWN0cyk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkhvb2tTdGF0ZX0gaG9va1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGludm9rZUNsZWFudXAoaG9vaykge1xuXHQvLyBBIGhvb2sgY2xlYW51cCBjYW4gaW50cm9kdWNlIGEgY2FsbCB0byByZW5kZXIgd2hpY2ggY3JlYXRlcyBhIG5ldyByb290LCB0aGlzIHdpbGwgY2FsbCBvcHRpb25zLnZub2RlXG5cdC8vIGFuZCBtb3ZlIHRoZSBjdXJyZW50Q29tcG9uZW50IGF3YXkuXG5cdGNvbnN0IGNvbXAgPSBjdXJyZW50Q29tcG9uZW50O1xuXHRsZXQgY2xlYW51cCA9IGhvb2suX2NsZWFudXA7XG5cdGlmICh0eXBlb2YgY2xlYW51cCA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0aG9vay5fY2xlYW51cCA9IHVuZGVmaW5lZDtcblx0XHRjbGVhbnVwKCk7XG5cdH1cblxuXHRjdXJyZW50Q29tcG9uZW50ID0gY29tcDtcbn1cblxuLyoqXG4gKiBJbnZva2UgYSBIb29rJ3MgZWZmZWN0XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkVmZmVjdEhvb2tTdGF0ZX0gaG9va1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGludm9rZUVmZmVjdChob29rKSB7XG5cdC8vIEEgaG9vayBjYWxsIGNhbiBpbnRyb2R1Y2UgYSBjYWxsIHRvIHJlbmRlciB3aGljaCBjcmVhdGVzIGEgbmV3IHJvb3QsIHRoaXMgd2lsbCBjYWxsIG9wdGlvbnMudm5vZGVcblx0Ly8gYW5kIG1vdmUgdGhlIGN1cnJlbnRDb21wb25lbnQgYXdheS5cblx0Y29uc3QgY29tcCA9IGN1cnJlbnRDb21wb25lbnQ7XG5cdGhvb2suX2NsZWFudXAgPSBob29rLl92YWx1ZSgpO1xuXHRjdXJyZW50Q29tcG9uZW50ID0gY29tcDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd25bXX0gb2xkQXJnc1xuICogQHBhcmFtIHt1bmtub3duW119IG5ld0FyZ3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBhcmdzQ2hhbmdlZChvbGRBcmdzLCBuZXdBcmdzKSB7XG5cdHJldHVybiAoXG5cdFx0IW9sZEFyZ3MgfHxcblx0XHRvbGRBcmdzLmxlbmd0aCAhPT0gbmV3QXJncy5sZW5ndGggfHxcblx0XHRuZXdBcmdzLnNvbWUoKGFyZywgaW5kZXgpID0+IGFyZyAhPT0gb2xkQXJnc1tpbmRleF0pXG5cdCk7XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIEFyZ1xuICogQHBhcmFtIHtBcmd9IGFyZ1xuICogQHBhcmFtIHsoYXJnOiBBcmcpID0+IGFueX0gZlxuICogQHJldHVybnMge2FueX1cbiAqL1xuZnVuY3Rpb24gaW52b2tlT3JSZXR1cm4oYXJnLCBmKSB7XG5cdHJldHVybiB0eXBlb2YgZiA9PSAnZnVuY3Rpb24nID8gZihhcmcpIDogZjtcbn1cbiIsICIvKipcbiAqIEFzc2lnbiBwcm9wZXJ0aWVzIGZyb20gYHByb3BzYCB0byBgb2JqYFxuICogQHRlbXBsYXRlIE8sIFAgVGhlIG9iaiBhbmQgcHJvcHMgdHlwZXNcbiAqIEBwYXJhbSB7T30gb2JqIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvXG4gKiBAcGFyYW0ge1B9IHByb3BzIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEByZXR1cm5zIHtPICYgUH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbihvYmosIHByb3BzKSB7XG5cdGZvciAobGV0IGkgaW4gcHJvcHMpIG9ialtpXSA9IHByb3BzW2ldO1xuXHRyZXR1cm4gLyoqIEB0eXBlIHtPICYgUH0gKi8gKG9iaik7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIG9iamVjdHMgaGF2ZSBhIGRpZmZlcmVudCBzaGFwZVxuICogQHBhcmFtIHtvYmplY3R9IGFcbiAqIEBwYXJhbSB7b2JqZWN0fSBiXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dEaWZmZXJzKGEsIGIpIHtcblx0Zm9yIChsZXQgaSBpbiBhKSBpZiAoaSAhPT0gJ19fc291cmNlJyAmJiAhKGkgaW4gYikpIHJldHVybiB0cnVlO1xuXHRmb3IgKGxldCBpIGluIGIpIGlmIChpICE9PSAnX19zb3VyY2UnICYmIGFbaV0gIT09IGJbaV0pIHJldHVybiB0cnVlO1xuXHRyZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIHZhbHVlcyBhcmUgdGhlIHNhbWUgdmFsdWVcbiAqIEBwYXJhbSB7Kn0geFxuICogQHBhcmFtIHsqfSB5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzKHgsIHkpIHtcblx0cmV0dXJuICh4ID09PSB5ICYmICh4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSkpIHx8ICh4ICE9PSB4ICYmIHkgIT09IHkpO1xufVxuIiwgImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93RGlmZmVycyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQ29tcG9uZW50IGNsYXNzIHdpdGggYSBwcmVkZWZpbmVkIGBzaG91bGRDb21wb25lbnRVcGRhdGVgIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXJlQ29tcG9uZW50KHAsIGMpIHtcblx0dGhpcy5wcm9wcyA9IHA7XG5cdHRoaXMuY29udGV4dCA9IGM7XG59XG5QdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnQoKTtcbi8vIFNvbWUgdGhpcmQtcGFydHkgbGlicmFyaWVzIGNoZWNrIGlmIHRoaXMgcHJvcGVydHkgaXMgcHJlc2VudFxuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gZnVuY3Rpb24gKHByb3BzLCBzdGF0ZSkge1xuXHRyZXR1cm4gc2hhbGxvd0RpZmZlcnModGhpcy5wcm9wcywgcHJvcHMpIHx8IHNoYWxsb3dEaWZmZXJzKHRoaXMuc3RhdGUsIHN0YXRlKTtcbn07XG4iLCAiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93RGlmZmVycyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogTWVtb2l6ZSBhIGNvbXBvbmVudCwgc28gdGhhdCBpdCBvbmx5IHVwZGF0ZXMgd2hlbiB0aGUgcHJvcHMgYWN0dWFsbHkgaGF2ZVxuICogY2hhbmdlZC4gVGhpcyB3YXMgcHJldmlvdXNseSBrbm93biBhcyBgUmVhY3QucHVyZWAuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkZ1bmN0aW9uQ29tcG9uZW50fSBjIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gKiBAcGFyYW0geyhwcmV2OiBvYmplY3QsIG5leHQ6IG9iamVjdCkgPT4gYm9vbGVhbn0gW2NvbXBhcmVyXSBDdXN0b20gZXF1YWxpdHkgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5GdW5jdGlvbkNvbXBvbmVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW8oYywgY29tcGFyZXIpIHtcblx0ZnVuY3Rpb24gc2hvdWxkVXBkYXRlKG5leHRQcm9wcykge1xuXHRcdGxldCByZWYgPSB0aGlzLnByb3BzLnJlZjtcblx0XHRsZXQgdXBkYXRlUmVmID0gcmVmID09IG5leHRQcm9wcy5yZWY7XG5cdFx0aWYgKCF1cGRhdGVSZWYgJiYgcmVmKSB7XG5cdFx0XHRyZWYuY2FsbCA/IHJlZihudWxsKSA6IChyZWYuY3VycmVudCA9IG51bGwpO1xuXHRcdH1cblxuXHRcdGlmICghY29tcGFyZXIpIHtcblx0XHRcdHJldHVybiBzaGFsbG93RGlmZmVycyh0aGlzLnByb3BzLCBuZXh0UHJvcHMpO1xuXHRcdH1cblxuXHRcdHJldHVybiAhY29tcGFyZXIodGhpcy5wcm9wcywgbmV4dFByb3BzKSB8fCAhdXBkYXRlUmVmO1xuXHR9XG5cblx0ZnVuY3Rpb24gTWVtb2VkKHByb3BzKSB7XG5cdFx0dGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBzaG91bGRVcGRhdGU7XG5cdFx0cmV0dXJuIGNyZWF0ZUVsZW1lbnQoYywgcHJvcHMpO1xuXHR9XG5cdE1lbW9lZC5kaXNwbGF5TmFtZSA9ICdNZW1vKCcgKyAoYy5kaXNwbGF5TmFtZSB8fCBjLm5hbWUpICsgJyknO1xuXHRNZW1vZWQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuXHRNZW1vZWQuX2ZvcndhcmRlZCA9IHRydWU7XG5cdHJldHVybiBNZW1vZWQ7XG59XG4iLCAiaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJ3ByZWFjdCc7XG5cbmxldCBvbGREaWZmSG9vayA9IG9wdGlvbnMuX2RpZmY7XG5vcHRpb25zLl9kaWZmID0gdm5vZGUgPT4ge1xuXHRpZiAodm5vZGUudHlwZSAmJiB2bm9kZS50eXBlLl9mb3J3YXJkZWQgJiYgdm5vZGUucmVmKSB7XG5cdFx0dm5vZGUucHJvcHMucmVmID0gdm5vZGUucmVmO1xuXHRcdHZub2RlLnJlZiA9IG51bGw7XG5cdH1cblx0aWYgKG9sZERpZmZIb29rKSBvbGREaWZmSG9vayh2bm9kZSk7XG59O1xuXG5leHBvcnQgY29uc3QgUkVBQ1RfRk9SV0FSRF9TWU1CT0wgPVxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJlxuXHRcdFN5bWJvbC5mb3IgJiZcblx0XHRTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpKSB8fFxuXHQweGY0NztcblxuLyoqXG4gKiBQYXNzIHJlZiBkb3duIHRvIGEgY2hpbGQuIFRoaXMgaXMgbWFpbmx5IHVzZWQgaW4gbGlicmFyaWVzIHdpdGggSE9DcyB0aGF0XG4gKiB3cmFwIGNvbXBvbmVudHMuIFVzaW5nIGBmb3J3YXJkUmVmYCB0aGVyZSBpcyBhbiBlYXN5IHdheSB0byBnZXQgYSByZWZlcmVuY2VcbiAqIG9mIHRoZSB3cmFwcGVkIGNvbXBvbmVudCBpbnN0ZWFkIG9mIG9uZSBvZiB0aGUgd3JhcHBlciBpdHNlbGYuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbmRleCcpLkZvcndhcmRGbn0gZm5cbiAqIEByZXR1cm5zIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5GdW5jdGlvbkNvbXBvbmVudH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRSZWYoZm4pIHtcblx0ZnVuY3Rpb24gRm9yd2FyZGVkKHByb3BzKSB7XG5cdFx0aWYgKCEoJ3JlZicgaW4gcHJvcHMpKSByZXR1cm4gZm4ocHJvcHMsIG51bGwpO1xuXG5cdFx0bGV0IHJlZiA9IHByb3BzLnJlZjtcblx0XHRkZWxldGUgcHJvcHMucmVmO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGZuKHByb3BzLCByZWYpO1xuXHRcdHByb3BzLnJlZiA9IHJlZjtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0Ly8gbW9ieC1yZWFjdCBjaGVja3MgZm9yIHRoaXMgYmVpbmcgcHJlc2VudFxuXHRGb3J3YXJkZWQuJCR0eXBlb2YgPSBSRUFDVF9GT1JXQVJEX1NZTUJPTDtcblx0Ly8gbW9ieC1yZWFjdCBoZWF2aWx5IHJlbGllcyBvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuXHQvLyBJdCBleHBlY3RzIGFuIG9iamVjdCBoZXJlIHdpdGggYSBgcmVuZGVyYCBwcm9wZXJ0eSxcblx0Ly8gYW5kIHByb3RvdHlwZS5yZW5kZXIgd2lsbCBmYWlsLiBXaXRob3V0IHRoaXNcblx0Ly8gbW9ieC1yZWFjdCB0aHJvd3MuXG5cdEZvcndhcmRlZC5yZW5kZXIgPSBGb3J3YXJkZWQ7XG5cblx0Rm9yd2FyZGVkLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0gRm9yd2FyZGVkLl9mb3J3YXJkZWQgPSB0cnVlO1xuXHRGb3J3YXJkZWQuZGlzcGxheU5hbWUgPSAnRm9yd2FyZFJlZignICsgKGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUpICsgJyknO1xuXHRyZXR1cm4gRm9yd2FyZGVkO1xufVxuIiwgImltcG9ydCB7IHRvQ2hpbGRBcnJheSB9IGZyb20gJ3ByZWFjdCc7XG5cbmNvbnN0IG1hcEZuID0gKGNoaWxkcmVuLCBmbikgPT4ge1xuXHRpZiAoY2hpbGRyZW4gPT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cdHJldHVybiB0b0NoaWxkQXJyYXkodG9DaGlsZEFycmF5KGNoaWxkcmVuKS5tYXAoZm4pKTtcbn07XG5cbi8vIFRoaXMgQVBJIGlzIGNvbXBsZXRlbHkgdW5uZWNlc3NhcnkgZm9yIFByZWFjdCwgc28gaXQncyBiYXNpY2FsbHkgcGFzc3Rocm91Z2guXG5leHBvcnQgY29uc3QgQ2hpbGRyZW4gPSB7XG5cdG1hcDogbWFwRm4sXG5cdGZvckVhY2g6IG1hcEZuLFxuXHRjb3VudChjaGlsZHJlbikge1xuXHRcdHJldHVybiBjaGlsZHJlbiA/IHRvQ2hpbGRBcnJheShjaGlsZHJlbikubGVuZ3RoIDogMDtcblx0fSxcblx0b25seShjaGlsZHJlbikge1xuXHRcdGNvbnN0IG5vcm1hbGl6ZWQgPSB0b0NoaWxkQXJyYXkoY2hpbGRyZW4pO1xuXHRcdGlmIChub3JtYWxpemVkLmxlbmd0aCAhPT0gMSkgdGhyb3cgJ0NoaWxkcmVuLm9ubHknO1xuXHRcdHJldHVybiBub3JtYWxpemVkWzBdO1xuXHR9LFxuXHR0b0FycmF5OiB0b0NoaWxkQXJyYXlcbn07XG4iLCAiaW1wb3J0IHsgQ29tcG9uZW50LCBjcmVhdGVFbGVtZW50LCBvcHRpb25zLCBGcmFnbWVudCB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgeyBNT0RFX0hZRFJBVEUgfSBmcm9tICcuLi8uLi9zcmMvY29uc3RhbnRzJztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IG9sZENhdGNoRXJyb3IgPSBvcHRpb25zLl9jYXRjaEVycm9yO1xub3B0aW9ucy5fY2F0Y2hFcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgbmV3Vk5vZGUsIG9sZFZOb2RlLCBlcnJvckluZm8pIHtcblx0aWYgKGVycm9yLnRoZW4pIHtcblx0XHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0XHRsZXQgY29tcG9uZW50O1xuXHRcdGxldCB2bm9kZSA9IG5ld1ZOb2RlO1xuXG5cdFx0Zm9yICg7ICh2bm9kZSA9IHZub2RlLl9wYXJlbnQpOyApIHtcblx0XHRcdGlmICgoY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudCkgJiYgY29tcG9uZW50Ll9jaGlsZERpZFN1c3BlbmQpIHtcblx0XHRcdFx0aWYgKG5ld1ZOb2RlLl9kb20gPT0gbnVsbCkge1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9kb20gPSBvbGRWTm9kZS5fZG9tO1xuXHRcdFx0XHRcdG5ld1ZOb2RlLl9jaGlsZHJlbiA9IG9sZFZOb2RlLl9jaGlsZHJlbjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBEb24ndCBjYWxsIG9sZENhdGNoRXJyb3IgaWYgd2UgZm91bmQgYSBTdXNwZW5zZVxuXHRcdFx0XHRyZXR1cm4gY29tcG9uZW50Ll9jaGlsZERpZFN1c3BlbmQoZXJyb3IsIG5ld1ZOb2RlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0b2xkQ2F0Y2hFcnJvcihlcnJvciwgbmV3Vk5vZGUsIG9sZFZOb2RlLCBlcnJvckluZm8pO1xufTtcblxuY29uc3Qgb2xkVW5tb3VudCA9IG9wdGlvbnMudW5tb3VudDtcbm9wdGlvbnMudW5tb3VudCA9IGZ1bmN0aW9uICh2bm9kZSkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0Y29uc3QgY29tcG9uZW50ID0gdm5vZGUuX2NvbXBvbmVudDtcblx0aWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuX29uUmVzb2x2ZSkge1xuXHRcdGNvbXBvbmVudC5fb25SZXNvbHZlKCk7XG5cdH1cblxuXHQvLyBpZiB0aGUgY29tcG9uZW50IGlzIHN0aWxsIGh5ZHJhdGluZ1xuXHQvLyBtb3N0IGxpa2VseSBpdCBpcyBiZWNhdXNlIHRoZSBjb21wb25lbnQgaXMgc3VzcGVuZGVkXG5cdC8vIHdlIHNldCB0aGUgdm5vZGUudHlwZSBhcyBgbnVsbGAgc28gdGhhdCBpdCBpcyBub3QgYSB0eXBlb2YgZnVuY3Rpb25cblx0Ly8gc28gdGhlIHVubW91bnQgd2lsbCByZW1vdmUgdGhlIHZub2RlLl9kb21cblx0aWYgKGNvbXBvbmVudCAmJiB2bm9kZS5fZmxhZ3MgJiBNT0RFX0hZRFJBVEUpIHtcblx0XHR2bm9kZS50eXBlID0gbnVsbDtcblx0fVxuXG5cdGlmIChvbGRVbm1vdW50KSBvbGRVbm1vdW50KHZub2RlKTtcbn07XG5cbmZ1bmN0aW9uIGRldGFjaGVkQ2xvbmUodm5vZGUsIGRldGFjaGVkUGFyZW50LCBwYXJlbnREb20pIHtcblx0aWYgKHZub2RlKSB7XG5cdFx0aWYgKHZub2RlLl9jb21wb25lbnQgJiYgdm5vZGUuX2NvbXBvbmVudC5fX2hvb2tzKSB7XG5cdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9faG9va3MuX2xpc3QuZm9yRWFjaChlZmZlY3QgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIGVmZmVjdC5fY2xlYW51cCA9PSAnZnVuY3Rpb24nKSBlZmZlY3QuX2NsZWFudXAoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9faG9va3MgPSBudWxsO1xuXHRcdH1cblxuXHRcdHZub2RlID0gYXNzaWduKHt9LCB2bm9kZSk7XG5cdFx0aWYgKHZub2RlLl9jb21wb25lbnQgIT0gbnVsbCkge1xuXHRcdFx0aWYgKHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9PT0gcGFyZW50RG9tKSB7XG5cdFx0XHRcdHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9IGRldGFjaGVkUGFyZW50O1xuXHRcdFx0fVxuXHRcdFx0dm5vZGUuX2NvbXBvbmVudCA9IG51bGw7XG5cdFx0fVxuXG5cdFx0dm5vZGUuX2NoaWxkcmVuID1cblx0XHRcdHZub2RlLl9jaGlsZHJlbiAmJlxuXHRcdFx0dm5vZGUuX2NoaWxkcmVuLm1hcChjaGlsZCA9PlxuXHRcdFx0XHRkZXRhY2hlZENsb25lKGNoaWxkLCBkZXRhY2hlZFBhcmVudCwgcGFyZW50RG9tKVxuXHRcdFx0KTtcblx0fVxuXG5cdHJldHVybiB2bm9kZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlT3JpZ2luYWwodm5vZGUsIGRldGFjaGVkUGFyZW50LCBvcmlnaW5hbFBhcmVudCkge1xuXHRpZiAodm5vZGUgJiYgb3JpZ2luYWxQYXJlbnQpIHtcblx0XHR2bm9kZS5fb3JpZ2luYWwgPSBudWxsO1xuXHRcdHZub2RlLl9jaGlsZHJlbiA9XG5cdFx0XHR2bm9kZS5fY2hpbGRyZW4gJiZcblx0XHRcdHZub2RlLl9jaGlsZHJlbi5tYXAoY2hpbGQgPT5cblx0XHRcdFx0cmVtb3ZlT3JpZ2luYWwoY2hpbGQsIGRldGFjaGVkUGFyZW50LCBvcmlnaW5hbFBhcmVudClcblx0XHRcdCk7XG5cblx0XHRpZiAodm5vZGUuX2NvbXBvbmVudCkge1xuXHRcdFx0aWYgKHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9PT0gZGV0YWNoZWRQYXJlbnQpIHtcblx0XHRcdFx0aWYgKHZub2RlLl9kb20pIHtcblx0XHRcdFx0XHRvcmlnaW5hbFBhcmVudC5hcHBlbmRDaGlsZCh2bm9kZS5fZG9tKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR2bm9kZS5fY29tcG9uZW50Ll9mb3JjZSA9IHRydWU7XG5cdFx0XHRcdHZub2RlLl9jb21wb25lbnQuX3BhcmVudERvbSA9IG9yaWdpbmFsUGFyZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB2bm9kZTtcbn1cblxuLy8gaGF2aW5nIGN1c3RvbSBpbmhlcml0YW5jZSBpbnN0ZWFkIG9mIGEgY2xhc3MgaGVyZSBzYXZlcyBhIGxvdCBvZiBieXRlc1xuZXhwb3J0IGZ1bmN0aW9uIFN1c3BlbnNlKCkge1xuXHQvLyB3ZSBkbyBub3QgY2FsbCBzdXBlciBoZXJlIHRvIGdvbGYgc29tZSBieXRlcy4uLlxuXHR0aGlzLl9wZW5kaW5nU3VzcGVuc2lvbkNvdW50ID0gMDtcblx0dGhpcy5fc3VzcGVuZGVycyA9IG51bGw7XG5cdHRoaXMuX2RldGFjaE9uTmV4dFJlbmRlciA9IG51bGw7XG59XG5cbi8vIFRoaW5ncyB3ZSBkbyBoZXJlIHRvIHNhdmUgc29tZSBieXRlcyBidXQgYXJlIG5vdCBwcm9wZXIgSlMgaW5oZXJpdGFuY2U6XG4vLyAtIGNhbGwgYG5ldyBDb21wb25lbnQoKWAgYXMgdGhlIHByb3RvdHlwZVxuLy8gLSBkbyBub3Qgc2V0IGBTdXNwZW5zZS5wcm90b3R5cGUuY29uc3RydWN0b3JgIHRvIGBTdXNwZW5zZWBcblN1c3BlbnNlLnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnQoKTtcblxuLyoqXG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9XG4gKiBAcGFyYW0ge1Byb21pc2V9IHByb21pc2UgVGhlIHRocm93biBwcm9taXNlXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlPGFueSwgYW55Pn0gc3VzcGVuZGluZ1ZOb2RlIFRoZSBzdXNwZW5kaW5nIGNvbXBvbmVudFxuICovXG5TdXNwZW5zZS5wcm90b3R5cGUuX2NoaWxkRGlkU3VzcGVuZCA9IGZ1bmN0aW9uIChwcm9taXNlLCBzdXNwZW5kaW5nVk5vZGUpIHtcblx0Y29uc3Qgc3VzcGVuZGluZ0NvbXBvbmVudCA9IHN1c3BlbmRpbmdWTm9kZS5fY29tcG9uZW50O1xuXG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9ICovXG5cdGNvbnN0IGMgPSB0aGlzO1xuXG5cdGlmIChjLl9zdXNwZW5kZXJzID09IG51bGwpIHtcblx0XHRjLl9zdXNwZW5kZXJzID0gW107XG5cdH1cblx0Yy5fc3VzcGVuZGVycy5wdXNoKHN1c3BlbmRpbmdDb21wb25lbnQpO1xuXG5cdGNvbnN0IHJlc29sdmUgPSBzdXNwZW5kZWQoYy5fdm5vZGUpO1xuXG5cdGxldCByZXNvbHZlZCA9IGZhbHNlO1xuXHRjb25zdCBvblJlc29sdmVkID0gKCkgPT4ge1xuXHRcdGlmIChyZXNvbHZlZCkgcmV0dXJuO1xuXG5cdFx0cmVzb2x2ZWQgPSB0cnVlO1xuXHRcdHN1c3BlbmRpbmdDb21wb25lbnQuX29uUmVzb2x2ZSA9IG51bGw7XG5cblx0XHRpZiAocmVzb2x2ZSkge1xuXHRcdFx0cmVzb2x2ZShvblN1c3BlbnNpb25Db21wbGV0ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9uU3VzcGVuc2lvbkNvbXBsZXRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdHN1c3BlbmRpbmdDb21wb25lbnQuX29uUmVzb2x2ZSA9IG9uUmVzb2x2ZWQ7XG5cblx0Y29uc3Qgb25TdXNwZW5zaW9uQ29tcGxldGUgPSAoKSA9PiB7XG5cdFx0aWYgKCEtLWMuX3BlbmRpbmdTdXNwZW5zaW9uQ291bnQpIHtcblx0XHRcdC8vIElmIHRoZSBzdXNwZW5zaW9uIHdhcyBkdXJpbmcgaHlkcmF0aW9uIHdlIGRvbid0IG5lZWQgdG8gcmVzdG9yZSB0aGVcblx0XHRcdC8vIHN1c3BlbmRlZCBjaGlsZHJlbiBpbnRvIHRoZSBfY2hpbGRyZW4gYXJyYXlcblx0XHRcdGlmIChjLnN0YXRlLl9zdXNwZW5kZWQpIHtcblx0XHRcdFx0Y29uc3Qgc3VzcGVuZGVkVk5vZGUgPSBjLnN0YXRlLl9zdXNwZW5kZWQ7XG5cdFx0XHRcdGMuX3Zub2RlLl9jaGlsZHJlblswXSA9IHJlbW92ZU9yaWdpbmFsKFxuXHRcdFx0XHRcdHN1c3BlbmRlZFZOb2RlLFxuXHRcdFx0XHRcdHN1c3BlbmRlZFZOb2RlLl9jb21wb25lbnQuX3BhcmVudERvbSxcblx0XHRcdFx0XHRzdXNwZW5kZWRWTm9kZS5fY29tcG9uZW50Ll9vcmlnaW5hbFBhcmVudERvbVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRjLnNldFN0YXRlKHsgX3N1c3BlbmRlZDogKGMuX2RldGFjaE9uTmV4dFJlbmRlciA9IG51bGwpIH0pO1xuXG5cdFx0XHRsZXQgc3VzcGVuZGVkO1xuXHRcdFx0d2hpbGUgKChzdXNwZW5kZWQgPSBjLl9zdXNwZW5kZXJzLnBvcCgpKSkge1xuXHRcdFx0XHRzdXNwZW5kZWQuZm9yY2VVcGRhdGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0LyoqXG5cdCAqIFdlIGRvIG5vdCBzZXQgYHN1c3BlbmRlZDogdHJ1ZWAgZHVyaW5nIGh5ZHJhdGlvbiBiZWNhdXNlIHdlIHdhbnQgdGhlIGFjdHVhbCBtYXJrdXBcblx0ICogdG8gcmVtYWluIG9uIHNjcmVlbiBhbmQgaHlkcmF0ZSBpdCB3aGVuIHRoZSBzdXNwZW5zZSBhY3R1YWxseSBnZXRzIHJlc29sdmVkLlxuXHQgKiBXaGlsZSBpbiBub24taHlkcmF0aW9uIGNhc2VzIHRoZSB1c3VhbCBmYWxsYmFjayAtPiBjb21wb25lbnQgZmxvdyB3b3VsZCBvY2NvdXIuXG5cdCAqL1xuXHRpZiAoXG5cdFx0IWMuX3BlbmRpbmdTdXNwZW5zaW9uQ291bnQrKyAmJlxuXHRcdCEoc3VzcGVuZGluZ1ZOb2RlLl9mbGFncyAmIE1PREVfSFlEUkFURSlcblx0KSB7XG5cdFx0Yy5zZXRTdGF0ZSh7IF9zdXNwZW5kZWQ6IChjLl9kZXRhY2hPbk5leHRSZW5kZXIgPSBjLl92bm9kZS5fY2hpbGRyZW5bMF0pIH0pO1xuXHR9XG5cdHByb21pc2UudGhlbihvblJlc29sdmVkLCBvblJlc29sdmVkKTtcbn07XG5cblN1c3BlbnNlLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uICgpIHtcblx0dGhpcy5fc3VzcGVuZGVycyA9IFtdO1xufTtcblxuLyoqXG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuU3VzcGVuc2VDb21wb25lbnR9XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlQ29tcG9uZW50W1wicHJvcHNcIl19IHByb3BzXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlN1c3BlbnNlU3RhdGV9IHN0YXRlXG4gKi9cblN1c3BlbnNlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAocHJvcHMsIHN0YXRlKSB7XG5cdGlmICh0aGlzLl9kZXRhY2hPbk5leHRSZW5kZXIpIHtcblx0XHQvLyBXaGVuIHRoZSBTdXNwZW5zZSdzIF92bm9kZSB3YXMgY3JlYXRlZCBieSBhIGNhbGwgdG8gY3JlYXRlVk5vZGVcblx0XHQvLyAoaS5lLiBkdWUgdG8gYSBzZXRTdGF0ZSBmdXJ0aGVyIHVwIGluIHRoZSB0cmVlKVxuXHRcdC8vIGl0J3MgX2NoaWxkcmVuIHByb3AgaXMgbnVsbCwgaW4gdGhpcyBjYXNlIHdlIFwiZm9yZ2V0XCIgYWJvdXQgdGhlIHBhcmtlZCB2bm9kZXMgdG8gZGV0YWNoXG5cdFx0aWYgKHRoaXMuX3Zub2RlLl9jaGlsZHJlbikge1xuXHRcdFx0Y29uc3QgZGV0YWNoZWRQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdGNvbnN0IGRldGFjaGVkQ29tcG9uZW50ID0gdGhpcy5fdm5vZGUuX2NoaWxkcmVuWzBdLl9jb21wb25lbnQ7XG5cdFx0XHR0aGlzLl92bm9kZS5fY2hpbGRyZW5bMF0gPSBkZXRhY2hlZENsb25lKFxuXHRcdFx0XHR0aGlzLl9kZXRhY2hPbk5leHRSZW5kZXIsXG5cdFx0XHRcdGRldGFjaGVkUGFyZW50LFxuXHRcdFx0XHQoZGV0YWNoZWRDb21wb25lbnQuX29yaWdpbmFsUGFyZW50RG9tID0gZGV0YWNoZWRDb21wb25lbnQuX3BhcmVudERvbSlcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZGV0YWNoT25OZXh0UmVuZGVyID0gbnVsbDtcblx0fVxuXG5cdC8vIFdyYXAgZmFsbGJhY2sgdHJlZSBpbiBhIFZOb2RlIHRoYXQgcHJldmVudHMgaXRzZWxmIGZyb20gYmVpbmcgbWFya2VkIGFzIGFib3J0aW5nIG1pZC1oeWRyYXRpb246XG5cdC8qKiBAdHlwZSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9ICovXG5cdGNvbnN0IGZhbGxiYWNrID1cblx0XHRzdGF0ZS5fc3VzcGVuZGVkICYmIGNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIHByb3BzLmZhbGxiYWNrKTtcblx0aWYgKGZhbGxiYWNrKSBmYWxsYmFjay5fZmxhZ3MgJj0gfk1PREVfSFlEUkFURTtcblxuXHRyZXR1cm4gW1xuXHRcdGNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIHN0YXRlLl9zdXNwZW5kZWQgPyBudWxsIDogcHJvcHMuY2hpbGRyZW4pLFxuXHRcdGZhbGxiYWNrXG5cdF07XG59O1xuXG4vKipcbiAqIENoZWNrcyBhbmQgY2FsbHMgdGhlIHBhcmVudCBjb21wb25lbnQncyBfc3VzcGVuZGVkIG1ldGhvZCwgcGFzc2luZyBpbiB0aGVcbiAqIHN1c3BlbmRlZCB2bm9kZS4gVGhpcyBpcyBhIHdheSBmb3IgYSBwYXJlbnQgKGUuZy4gU3VzcGVuc2VMaXN0KSB0byBnZXQgbm90aWZpZWRcbiAqIHRoYXQgb25lIG9mIGl0cyBjaGlsZHJlbi9kZXNjZW5kYW50cyBzdXNwZW5kZWQuXG4gKlxuICogVGhlIHBhcmVudCBNQVkgcmV0dXJuIGEgY2FsbGJhY2suIFRoZSBjYWxsYmFjayB3aWxsIGdldCBjYWxsZWQgd2hlbiB0aGVcbiAqIHN1c3BlbnNpb24gcmVzb2x2ZXMsIG5vdGlmeWluZyB0aGUgcGFyZW50IG9mIHRoZSBmYWN0LlxuICogTW9yZW92ZXIsIHRoZSBjYWxsYmFjayBnZXRzIGZ1bmN0aW9uIGB1bnN1c3BlbmRgIGFzIGEgcGFyYW1ldGVyLiBUaGUgcmVzb2x2ZWRcbiAqIGNoaWxkIGRlc2NlbmRhbnQgd2lsbCBub3QgYWN0dWFsbHkgZ2V0IHVuc3VzcGVuZGVkIHVudGlsIGB1bnN1c3BlbmRgIGdldHMgY2FsbGVkLlxuICogVGhpcyBpcyBhIHdheSBmb3IgdGhlIHBhcmVudCB0byBkZWxheSB1bnN1c3BlbmRpbmcuXG4gKlxuICogSWYgdGhlIHBhcmVudCBkb2VzIG5vdCByZXR1cm4gYSBjYWxsYmFjayB0aGVuIHRoZSByZXNvbHZlZCB2bm9kZVxuICogZ2V0cyB1bnN1c3BlbmRlZCBpbW1lZGlhdGVseSB3aGVuIGl0IHJlc29sdmVzLlxuICpcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9IHZub2RlXG4gKiBAcmV0dXJucyB7KCh1bnN1c3BlbmQ6ICgpID0+IHZvaWQpID0+IHZvaWQpP31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1c3BlbmRlZCh2bm9kZSkge1xuXHQvKiogQHR5cGUge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gKi9cblx0bGV0IGNvbXBvbmVudCA9IHZub2RlLl9wYXJlbnQuX2NvbXBvbmVudDtcblx0cmV0dXJuIGNvbXBvbmVudCAmJiBjb21wb25lbnQuX3N1c3BlbmRlZCAmJiBjb21wb25lbnQuX3N1c3BlbmRlZCh2bm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXp5KGxvYWRlcikge1xuXHRsZXQgcHJvbTtcblx0bGV0IGNvbXBvbmVudDtcblx0bGV0IGVycm9yO1xuXG5cdGZ1bmN0aW9uIExhenkocHJvcHMpIHtcblx0XHRpZiAoIXByb20pIHtcblx0XHRcdHByb20gPSBsb2FkZXIoKTtcblx0XHRcdHByb20udGhlbihcblx0XHRcdFx0ZXhwb3J0cyA9PiB7XG5cdFx0XHRcdFx0Y29tcG9uZW50ID0gZXhwb3J0cy5kZWZhdWx0IHx8IGV4cG9ydHM7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGUgPT4ge1xuXHRcdFx0XHRcdGVycm9yID0gZTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRpZiAoZXJyb3IpIHtcblx0XHRcdHRocm93IGVycm9yO1xuXHRcdH1cblxuXHRcdGlmICghY29tcG9uZW50KSB7XG5cdFx0XHR0aHJvdyBwcm9tO1xuXHRcdH1cblxuXHRcdHJldHVybiBjcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgcHJvcHMpO1xuXHR9XG5cblx0TGF6eS5kaXNwbGF5TmFtZSA9ICdMYXp5Jztcblx0TGF6eS5fZm9yd2FyZGVkID0gdHJ1ZTtcblx0cmV0dXJuIExhenk7XG59XG4iLCAiaW1wb3J0IHsgQ29tcG9uZW50LCB0b0NoaWxkQXJyYXkgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgc3VzcGVuZGVkIH0gZnJvbSAnLi9zdXNwZW5zZS5qcyc7XG5cbi8vIEluZGV4ZXMgdG8gbGlua2VkIGxpc3Qgbm9kZXMgKG5vZGVzIGFyZSBzdG9yZWQgYXMgYXJyYXlzIHRvIHNhdmUgYnl0ZXMpLlxuY29uc3QgU1VTUEVOREVEX0NPVU5UID0gMDtcbmNvbnN0IFJFU09MVkVEX0NPVU5UID0gMTtcbmNvbnN0IE5FWFRfTk9ERSA9IDI7XG5cbi8vIEhhdmluZyBjdXN0b20gaW5oZXJpdGFuY2UgaW5zdGVhZCBvZiBhIGNsYXNzIGhlcmUgc2F2ZXMgYSBsb3Qgb2YgYnl0ZXMuXG5leHBvcnQgZnVuY3Rpb24gU3VzcGVuc2VMaXN0KCkge1xuXHR0aGlzLl9uZXh0ID0gbnVsbDtcblx0dGhpcy5fbWFwID0gbnVsbDtcbn1cblxuLy8gTWFyayBvbmUgb2YgY2hpbGQncyBlYXJsaWVyIHN1c3BlbnNpb25zIGFzIHJlc29sdmVkLlxuLy8gU29tZSBwZW5kaW5nIGNhbGxiYWNrcyBtYXkgYmVjb21lIGNhbGxhYmxlIGR1ZSB0byB0aGlzXG4vLyAoZS5nLiB0aGUgbGFzdCBzdXNwZW5kZWQgZGVzY2VuZGFudCBnZXRzIHJlc29sdmVkIHdoZW5cbi8vIHJldmVhbE9yZGVyID09PSAndG9nZXRoZXInKS4gUHJvY2VzcyB0aG9zZSBjYWxsYmFja3MgYXMgd2VsbC5cbmNvbnN0IHJlc29sdmUgPSAobGlzdCwgY2hpbGQsIG5vZGUpID0+IHtcblx0aWYgKCsrbm9kZVtSRVNPTFZFRF9DT1VOVF0gPT09IG5vZGVbU1VTUEVOREVEX0NPVU5UXSkge1xuXHRcdC8vIFRoZSBudW1iZXIgYSBjaGlsZCAob3IgYW55IG9mIGl0cyBkZXNjZW5kYW50cykgaGFzIGJlZW4gc3VzcGVuZGVkXG5cdFx0Ly8gbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0J3MgYmVlbiByZXNvbHZlZC4gVGhlcmVmb3JlIHdlXG5cdFx0Ly8gbWFyayB0aGUgY2hpbGQgYXMgY29tcGxldGVseSByZXNvbHZlZCBieSBkZWxldGluZyBpdCBmcm9tIC5fbWFwLlxuXHRcdC8vIFRoaXMgaXMgdXNlZCB0byBmaWd1cmUgb3V0IHdoZW4gKmFsbCogY2hpbGRyZW4gaGF2ZSBiZWVuIGNvbXBsZXRlbHlcblx0XHQvLyByZXNvbHZlZCB3aGVuIHJldmVhbE9yZGVyIGlzICd0b2dldGhlcicuXG5cdFx0bGlzdC5fbWFwLmRlbGV0ZShjaGlsZCk7XG5cdH1cblxuXHQvLyBJZiByZXZlYWxPcmRlciBpcyBmYWxzeSB0aGVuIHdlIGNhbiBkbyBhbiBlYXJseSBleGl0LCBhcyB0aGVcblx0Ly8gY2FsbGJhY2tzIHdvbid0IGdldCBxdWV1ZWQgaW4gdGhlIG5vZGUgYW55d2F5LlxuXHQvLyBJZiByZXZlYWxPcmRlciBpcyAndG9nZXRoZXInIHRoZW4gYWxzbyBkbyBhbiBlYXJseSBleGl0XG5cdC8vIGlmIGFsbCBzdXNwZW5kZWQgZGVzY2VuZGFudHMgaGF2ZSBub3QgeWV0IGJlZW4gcmVzb2x2ZWQuXG5cdGlmIChcblx0XHQhbGlzdC5wcm9wcy5yZXZlYWxPcmRlciB8fFxuXHRcdChsaXN0LnByb3BzLnJldmVhbE9yZGVyWzBdID09PSAndCcgJiYgbGlzdC5fbWFwLnNpemUpXG5cdCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFdhbGsgdGhlIGN1cnJlbnRseSBzdXNwZW5kZWQgY2hpbGRyZW4gaW4gb3JkZXIsIGNhbGxpbmcgdGhlaXJcblx0Ly8gc3RvcmVkIGNhbGxiYWNrcyBvbiB0aGUgd2F5LiBTdG9wIGlmIHdlIGVuY291bnRlciBhIGNoaWxkIHRoYXRcblx0Ly8gaGFzIG5vdCBiZWVuIGNvbXBsZXRlbHkgcmVzb2x2ZWQgeWV0LlxuXHRub2RlID0gbGlzdC5fbmV4dDtcblx0d2hpbGUgKG5vZGUpIHtcblx0XHR3aGlsZSAobm9kZS5sZW5ndGggPiAzKSB7XG5cdFx0XHRub2RlLnBvcCgpKCk7XG5cdFx0fVxuXHRcdGlmIChub2RlW1JFU09MVkVEX0NPVU5UXSA8IG5vZGVbU1VTUEVOREVEX0NPVU5UXSkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGxpc3QuX25leHQgPSBub2RlID0gbm9kZVtORVhUX05PREVdO1xuXHR9XG59O1xuXG4vLyBUaGluZ3Mgd2UgZG8gaGVyZSB0byBzYXZlIHNvbWUgYnl0ZXMgYnV0IGFyZSBub3QgcHJvcGVyIEpTIGluaGVyaXRhbmNlOlxuLy8gLSBjYWxsIGBuZXcgQ29tcG9uZW50KClgIGFzIHRoZSBwcm90b3R5cGVcbi8vIC0gZG8gbm90IHNldCBgU3VzcGVuc2UucHJvdG90eXBlLmNvbnN0cnVjdG9yYCB0byBgU3VzcGVuc2VgXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlID0gbmV3IENvbXBvbmVudCgpO1xuXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlLl9zdXNwZW5kZWQgPSBmdW5jdGlvbiAoY2hpbGQpIHtcblx0Y29uc3QgbGlzdCA9IHRoaXM7XG5cdGNvbnN0IGRlbGVnYXRlZCA9IHN1c3BlbmRlZChsaXN0Ll92bm9kZSk7XG5cblx0bGV0IG5vZGUgPSBsaXN0Ll9tYXAuZ2V0KGNoaWxkKTtcblx0bm9kZVtTVVNQRU5ERURfQ09VTlRdKys7XG5cblx0cmV0dXJuIHVuc3VzcGVuZCA9PiB7XG5cdFx0Y29uc3Qgd3JhcHBlZFVuc3VzcGVuZCA9ICgpID0+IHtcblx0XHRcdGlmICghbGlzdC5wcm9wcy5yZXZlYWxPcmRlcikge1xuXHRcdFx0XHQvLyBTcGVjaWFsIGNhc2UgdGhlIHVuZGVmaW5lZCAoZmFsc3kpIHJldmVhbE9yZGVyLCBhcyB0aGVyZVxuXHRcdFx0XHQvLyBpcyBubyBuZWVkIHRvIGNvb3JkaW5hdGUgYSBzcGVjaWZpYyBvcmRlciBvciB1bnN1c3BlbmRzLlxuXHRcdFx0XHR1bnN1c3BlbmQoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG5vZGUucHVzaCh1bnN1c3BlbmQpO1xuXHRcdFx0XHRyZXNvbHZlKGxpc3QsIGNoaWxkLCBub2RlKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdGlmIChkZWxlZ2F0ZWQpIHtcblx0XHRcdGRlbGVnYXRlZCh3cmFwcGVkVW5zdXNwZW5kKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0d3JhcHBlZFVuc3VzcGVuZCgpO1xuXHRcdH1cblx0fTtcbn07XG5cblN1c3BlbnNlTGlzdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG5cdHRoaXMuX25leHQgPSBudWxsO1xuXHR0aGlzLl9tYXAgPSBuZXcgTWFwKCk7XG5cblx0Y29uc3QgY2hpbGRyZW4gPSB0b0NoaWxkQXJyYXkocHJvcHMuY2hpbGRyZW4pO1xuXHRpZiAocHJvcHMucmV2ZWFsT3JkZXIgJiYgcHJvcHMucmV2ZWFsT3JkZXJbMF0gPT09ICdiJykge1xuXHRcdC8vIElmIG9yZGVyID09PSAnYmFja3dhcmRzJyAob3IsIHdlbGwsIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggYSAnYicpXG5cdFx0Ly8gdGhlbiBmbGlwIHRoZSBjaGlsZCBsaXN0IGFyb3VuZCBzbyB0aGF0IHRoZSBsYXN0IGNoaWxkIHdpbGwgYmVcblx0XHQvLyB0aGUgZmlyc3QgaW4gdGhlIGxpbmtlZCBsaXN0LlxuXHRcdGNoaWxkcmVuLnJldmVyc2UoKTtcblx0fVxuXHQvLyBCdWlsZCB0aGUgbGlua2VkIGxpc3QuIEl0ZXJhdGUgdGhyb3VnaCB0aGUgY2hpbGRyZW4gaW4gcmV2ZXJzZSBvcmRlclxuXHQvLyBzbyB0aGF0IGBfbmV4dGAgcG9pbnRzIHRvIHRoZSBmaXJzdCBsaW5rZWQgbGlzdCBub2RlIHRvIGJlIHJlc29sdmVkLlxuXHRmb3IgKGxldCBpID0gY2hpbGRyZW4ubGVuZ3RoOyBpLS07ICkge1xuXHRcdC8vIENyZWF0ZSBhIG5ldyBsaW5rZWQgbGlzdCBub2RlIGFzIGFuIGFycmF5IG9mIGZvcm06XG5cdFx0Ly8gXHRbc3VzcGVuZGVkX2NvdW50LCByZXNvbHZlZF9jb3VudCwgbmV4dF9ub2RlXVxuXHRcdC8vIHdoZXJlIHN1c3BlbmRlZF9jb3VudCBhbmQgcmVzb2x2ZWRfY291bnQgYXJlIG51bWVyaWMgY291bnRlcnMgZm9yXG5cdFx0Ly8ga2VlcGluZyB0cmFjayBob3cgbWFueSB0aW1lcyBhIG5vZGUgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCByZXNvbHZlZC5cblx0XHQvL1xuXHRcdC8vIE5vdGUgdGhhdCBzdXNwZW5kZWRfY291bnQgc3RhcnRzIGZyb20gMSBpbnN0ZWFkIG9mIDAsIHNvIHdlIGNhbiBibG9ja1xuXHRcdC8vIHByb2Nlc3NpbmcgY2FsbGJhY2tzIHVudGlsIGNvbXBvbmVudERpZE1vdW50IGhhcyBiZWVuIGNhbGxlZC4gSW4gYSBzZW5zZVxuXHRcdC8vIG5vZGUgaXMgc3VzcGVuZGVkIGF0IGxlYXN0IHVudGlsIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkIVxuXHRcdC8vXG5cdFx0Ly8gUGVuZGluZyBjYWxsYmFja3MgYXJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIG5vZGU6XG5cdFx0Ly8gXHRbc3VzcGVuZGVkX2NvdW50LCByZXNvbHZlZF9jb3VudCwgbmV4dF9ub2RlLCBjYWxsYmFja18wLCBjYWxsYmFja18xLCAuLi5dXG5cdFx0dGhpcy5fbWFwLnNldChjaGlsZHJlbltpXSwgKHRoaXMuX25leHQgPSBbMSwgMCwgdGhpcy5fbmV4dF0pKTtcblx0fVxuXHRyZXR1cm4gcHJvcHMuY2hpbGRyZW47XG59O1xuXG5TdXNwZW5zZUxpc3QucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9XG5cdFN1c3BlbnNlTGlzdC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBjaGlsZHJlbiBhZnRlciBtb3VudGluZyBmb3IgdHdvIHJlYXNvbnM6XG5cdFx0Ly8gMS4gQXMgZWFjaCBub2RlW1NVU1BFTkRFRF9DT1VOVF0gc3RhcnRzIGZyb20gMSwgdGhpcyBpdGVyYXRpb24gaW5jcmVhc2VzXG5cdFx0Ly8gICAgZWFjaCBub2RlW1JFTEVBU0VEX0NPVU5UXSBieSAxLCB0aGVyZWZvcmUgYmFsYW5jaW5nIHRoZSBjb3VudGVycy5cblx0XHQvLyAgICBUaGUgbm9kZXMgY2FuIG5vdyBiZSBjb21wbGV0ZWx5IGNvbnN1bWVkIGZyb20gdGhlIGxpbmtlZCBsaXN0LlxuXHRcdC8vIDIuIEhhbmRsZSBub2RlcyB0aGF0IG1pZ2h0IGhhdmUgZ290dGVuIHJlc29sdmVkIGJldHdlZW4gcmVuZGVyIGFuZFxuXHRcdC8vICAgIGNvbXBvbmVudERpZE1vdW50LlxuXHRcdHRoaXMuX21hcC5mb3JFYWNoKChub2RlLCBjaGlsZCkgPT4ge1xuXHRcdFx0cmVzb2x2ZSh0aGlzLCBjaGlsZCwgbm9kZSk7XG5cdFx0fSk7XG5cdH07XG4iLCAiLyoqIE5vcm1hbCBoeWRyYXRpb24gdGhhdCBhdHRhY2hlcyB0byBhIERPTSB0cmVlIGJ1dCBkb2VzIG5vdCBkaWZmIGl0LiAqL1xuZXhwb3J0IGNvbnN0IE1PREVfSFlEUkFURSA9IDEgPDwgNTtcbi8qKiBTaWduaWZpZXMgdGhpcyBWTm9kZSBzdXNwZW5kZWQgb24gdGhlIHByZXZpb3VzIHJlbmRlciAqL1xuZXhwb3J0IGNvbnN0IE1PREVfU1VTUEVOREVEID0gMSA8PCA3O1xuLyoqIEluZGljYXRlcyB0aGF0IHRoaXMgbm9kZSBuZWVkcyB0byBiZSBpbnNlcnRlZCB3aGlsZSBwYXRjaGluZyBjaGlsZHJlbiAqL1xuZXhwb3J0IGNvbnN0IElOU0VSVF9WTk9ERSA9IDEgPDwgMTY7XG4vKiogSW5kaWNhdGVzIGEgVk5vZGUgaGFzIGJlZW4gbWF0Y2hlZCB3aXRoIGFub3RoZXIgVk5vZGUgaW4gdGhlIGRpZmYgKi9cbmV4cG9ydCBjb25zdCBNQVRDSEVEID0gMSA8PCAxNztcblxuLyoqIFJlc2V0IGFsbCBtb2RlIGZsYWdzICovXG5leHBvcnQgY29uc3QgUkVTRVRfTU9ERSA9IH4oTU9ERV9IWURSQVRFIHwgTU9ERV9TVVNQRU5ERUQpO1xuXG5leHBvcnQgY29uc3QgRU1QVFlfT0JKID0gLyoqIEB0eXBlIHthbnl9ICovICh7fSk7XG5leHBvcnQgY29uc3QgRU1QVFlfQVJSID0gW107XG5leHBvcnQgY29uc3QgSVNfTk9OX0RJTUVOU0lPTkFMID1cblx0L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaTtcbiIsICJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCByZW5kZXIgfSBmcm9tICdwcmVhY3QnO1xuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuLi8uLi9zcmMvaW5kZXgnKS5SZW5kZXJhYmxlUHJvcHM8eyBjb250ZXh0OiBhbnkgfT59IHByb3BzXG4gKi9cbmZ1bmN0aW9uIENvbnRleHRQcm92aWRlcihwcm9wcykge1xuXHR0aGlzLmdldENoaWxkQ29udGV4dCA9ICgpID0+IHByb3BzLmNvbnRleHQ7XG5cdHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cblxuLyoqXG4gKiBQb3J0YWwgY29tcG9uZW50XG4gKiBAdGhpcyB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50fVxuICogQHBhcmFtIHtvYmplY3QgfCBudWxsIHwgdW5kZWZpbmVkfSBwcm9wc1xuICpcbiAqIFRPRE86IHVzZSBjcmVhdGVSb290KCkgaW5zdGVhZCBvZiBmYWtlIHJvb3RcbiAqL1xuZnVuY3Rpb24gUG9ydGFsKHByb3BzKSB7XG5cdGNvbnN0IF90aGlzID0gdGhpcztcblx0bGV0IGNvbnRhaW5lciA9IHByb3BzLl9jb250YWluZXI7XG5cblx0X3RoaXMuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0cmVuZGVyKG51bGwsIF90aGlzLl90ZW1wKTtcblx0XHRfdGhpcy5fdGVtcCA9IG51bGw7XG5cdFx0X3RoaXMuX2NvbnRhaW5lciA9IG51bGw7XG5cdH07XG5cblx0Ly8gV2hlbiB3ZSBjaGFuZ2UgY29udGFpbmVyIHdlIHNob3VsZCBjbGVhciBvdXIgb2xkIGNvbnRhaW5lciBhbmRcblx0Ly8gaW5kaWNhdGUgYSBuZXcgbW91bnQuXG5cdGlmIChfdGhpcy5fY29udGFpbmVyICYmIF90aGlzLl9jb250YWluZXIgIT09IGNvbnRhaW5lcikge1xuXHRcdF90aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG5cdH1cblxuXHRpZiAoIV90aGlzLl90ZW1wKSB7XG5cdFx0X3RoaXMuX2NvbnRhaW5lciA9IGNvbnRhaW5lcjtcblxuXHRcdC8vIENyZWF0ZSBhIGZha2UgRE9NIHBhcmVudCBub2RlIHRoYXQgbWFuYWdlcyBhIHN1YnNldCBvZiBgY29udGFpbmVyYCdzIGNoaWxkcmVuOlxuXHRcdF90aGlzLl90ZW1wID0ge1xuXHRcdFx0bm9kZVR5cGU6IDEsXG5cdFx0XHRwYXJlbnROb2RlOiBjb250YWluZXIsXG5cdFx0XHRjaGlsZE5vZGVzOiBbXSxcblx0XHRcdGNvbnRhaW5zOiAoKSA9PiB0cnVlLFxuXHRcdFx0YXBwZW5kQ2hpbGQoY2hpbGQpIHtcblx0XHRcdFx0dGhpcy5jaGlsZE5vZGVzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRfdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTtcblx0XHRcdH0sXG5cdFx0XHRpbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZSkge1xuXHRcdFx0XHR0aGlzLmNoaWxkTm9kZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdF90aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQoY2hpbGQpO1xuXHRcdFx0fSxcblx0XHRcdHJlbW92ZUNoaWxkKGNoaWxkKSB7XG5cdFx0XHRcdHRoaXMuY2hpbGROb2Rlcy5zcGxpY2UodGhpcy5jaGlsZE5vZGVzLmluZGV4T2YoY2hpbGQpID4+PiAxLCAxKTtcblx0XHRcdFx0X3RoaXMuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8vIFJlbmRlciBvdXIgd3JhcHBpbmcgZWxlbWVudCBpbnRvIHRlbXAuXG5cdHJlbmRlcihcblx0XHRjcmVhdGVFbGVtZW50KENvbnRleHRQcm92aWRlciwgeyBjb250ZXh0OiBfdGhpcy5jb250ZXh0IH0sIHByb3BzLl92bm9kZSksXG5cdFx0X3RoaXMuX3RlbXBcblx0KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgUG9ydGFsYCB0byBjb250aW51ZSByZW5kZXJpbmcgdGhlIHZub2RlIHRyZWUgYXQgYSBkaWZmZXJlbnQgRE9NIG5vZGVcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuVk5vZGV9IHZub2RlIFRoZSB2bm9kZSB0byByZW5kZXJcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2ludGVybmFsJykuUHJlYWN0RWxlbWVudH0gY29udGFpbmVyIFRoZSBET00gbm9kZSB0byBjb250aW51ZSByZW5kZXJpbmcgaW4gdG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb3J0YWwodm5vZGUsIGNvbnRhaW5lcikge1xuXHRjb25zdCBlbCA9IGNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7IF92bm9kZTogdm5vZGUsIF9jb250YWluZXI6IGNvbnRhaW5lciB9KTtcblx0ZWwuY29udGFpbmVySW5mbyA9IGNvbnRhaW5lcjtcblx0cmV0dXJuIGVsO1xufVxuIiwgImltcG9ydCB7XG5cdHJlbmRlciBhcyBwcmVhY3RSZW5kZXIsXG5cdGh5ZHJhdGUgYXMgcHJlYWN0SHlkcmF0ZSxcblx0b3B0aW9ucyxcblx0dG9DaGlsZEFycmF5LFxuXHRDb21wb25lbnRcbn0gZnJvbSAncHJlYWN0JztcbmltcG9ydCB7XG5cdHVzZUNhbGxiYWNrLFxuXHR1c2VDb250ZXh0LFxuXHR1c2VEZWJ1Z1ZhbHVlLFxuXHR1c2VFZmZlY3QsXG5cdHVzZUlkLFxuXHR1c2VJbXBlcmF0aXZlSGFuZGxlLFxuXHR1c2VMYXlvdXRFZmZlY3QsXG5cdHVzZU1lbW8sXG5cdHVzZVJlZHVjZXIsXG5cdHVzZVJlZixcblx0dXNlU3RhdGVcbn0gZnJvbSAncHJlYWN0L2hvb2tzJztcbmltcG9ydCB7XG5cdHVzZURlZmVycmVkVmFsdWUsXG5cdHVzZUluc2VydGlvbkVmZmVjdCxcblx0dXNlU3luY0V4dGVybmFsU3RvcmUsXG5cdHVzZVRyYW5zaXRpb25cbn0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBjb25zdCBSRUFDVF9FTEVNRU5UX1RZUEUgPVxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuZm9yICYmIFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSkgfHxcblx0MHhlYWM3O1xuXG5jb25zdCBDQU1FTF9QUk9QUyA9XG5cdC9eKD86YWNjZW50fGFsaWdubWVudHxhcmFiaWN8YmFzZWxpbmV8Y2FwfGNsaXAoPyFQYXRoVSl8Y29sb3J8ZG9taW5hbnR8ZmlsbHxmbG9vZHxmb250fGdseXBoKD8hUil8aG9yaXp8aW1hZ2UoIVMpfGxldHRlcnxsaWdodGluZ3xtYXJrZXIoPyFIfFd8VSl8b3ZlcmxpbmV8cGFpbnR8cG9pbnRlcnxzaGFwZXxzdG9wfHN0cmlrZXRocm91Z2h8c3Ryb2tlfHRleHQoPyFMKXx0cmFuc2Zvcm18dW5kZXJsaW5lfHVuaWNvZGV8dW5pdHN8dnx2ZWN0b3J8dmVydHx3b3JkfHdyaXRpbmd8eCg/IUMpKVtBLVpdLztcbmNvbnN0IE9OX0FOSSA9IC9eb24oQW5pfFRyYXxUb3V8QmVmb3JlSW5wfENvbXBvKS87XG5jb25zdCBDQU1FTF9SRVBMQUNFID0gL1tBLVowLTldL2c7XG5jb25zdCBJU19ET00gPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG4vLyBJbnB1dCB0eXBlcyBmb3Igd2hpY2ggb25jaGFuZ2Ugc2hvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gb25pbnB1dC5cbi8vIHR5cGU9XCJmaWxlfGNoZWNrYm94fHJhZGlvXCIsIHBsdXMgXCJyYW5nZVwiIGluIElFMTEuXG4vLyAoSUUxMSBkb2Vzbid0IHN1cHBvcnQgU3ltYm9sLCB3aGljaCB3ZSB1c2UgaGVyZSB0byB0dXJuIGByYWRgIGludG8gYHJhYCB3aGljaCBtYXRjaGVzIFwicmFuZ2VcIilcbmNvbnN0IG9uQ2hhbmdlSW5wdXRUeXBlID0gdHlwZSA9PlxuXHQodHlwZW9mIFN5bWJvbCAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgU3ltYm9sKCkgPT0gJ3N5bWJvbCdcblx0XHQ/IC9maWx8Y2hlfHJhZC9cblx0XHQ6IC9maWx8Y2hlfHJhL1xuXHQpLnRlc3QodHlwZSk7XG5cbi8vIFNvbWUgbGlicmFyaWVzIGxpa2UgYHJlYWN0LXZpcnR1YWxpemVkYCBleHBsaWNpdGx5IGNoZWNrIGZvciB0aGlzLlxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG5cbi8vIGBVTlNBRkVfKmAgbGlmZWN5Y2xlIGhvb2tzXG4vLyBQcmVhY3Qgb25seSBldmVyIGludm9rZXMgdGhlIHVucHJlZml4ZWQgbWV0aG9kcy5cbi8vIEhlcmUgd2UgcHJvdmlkZSBhIGJhc2UgXCJmYWxsYmFja1wiIGltcGxlbWVudGF0aW9uIHRoYXQgY2FsbHMgYW55IGRlZmluZWQgVU5TQUZFXyBwcmVmaXhlZCBtZXRob2QuXG4vLyAtIElmIGEgY29tcG9uZW50IGRlZmluZXMgaXRzIG93biBgY29tcG9uZW50RGlkTW91bnQoKWAgKGluY2x1ZGluZyB2aWEgZGVmaW5lUHJvcGVydHkpLCB1c2UgdGhhdC5cbi8vIC0gSWYgYSBjb21wb25lbnQgZGVmaW5lcyBgVU5TQUZFX2NvbXBvbmVudERpZE1vdW50KClgLCBgY29tcG9uZW50RGlkTW91bnRgIGlzIHRoZSBhbGlhcyBnZXR0ZXIvc2V0dGVyLlxuLy8gLSBJZiBhbnl0aGluZyBhc3NpZ25zIHRvIGFuIGBVTlNBRkVfKmAgcHJvcGVydHksIHRoZSBhc3NpZ25tZW50IGlzIGZvcndhcmRlZCB0byB0aGUgdW5wcmVmaXhlZCBwcm9wZXJ0eS5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJlYWN0anMvcHJlYWN0L2lzc3Vlcy8xOTQxXG5bXG5cdCdjb21wb25lbnRXaWxsTW91bnQnLFxuXHQnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsXG5cdCdjb21wb25lbnRXaWxsVXBkYXRlJ1xuXS5mb3JFYWNoKGtleSA9PiB7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21wb25lbnQucHJvdG90eXBlLCBrZXksIHtcblx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0Z2V0KCkge1xuXHRcdFx0cmV0dXJuIHRoaXNbJ1VOU0FGRV8nICsga2V5XTtcblx0XHR9LFxuXHRcdHNldCh2KSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdFx0d3JpdGFibGU6IHRydWUsXG5cdFx0XHRcdHZhbHVlOiB2XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xufSk7XG5cbi8qKlxuICogUHJveHkgcmVuZGVyKCkgc2luY2UgUmVhY3QgcmV0dXJucyBhIENvbXBvbmVudCByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlfSB2bm9kZSBWTm9kZSB0cmVlIHRvIHJlbmRlclxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5QcmVhY3RFbGVtZW50fSBwYXJlbnQgRE9NIG5vZGUgdG8gcmVuZGVyIHZub2RlIHRyZWUgaW50b1xuICogQHBhcmFtIHsoKSA9PiB2b2lkfSBbY2FsbGJhY2tdIE9wdGlvbmFsIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgcmVuZGVyaW5nXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuQ29tcG9uZW50IHwgbnVsbH0gVGhlIHJvb3QgY29tcG9uZW50IHJlZmVyZW5jZSBvciBudWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIodm5vZGUsIHBhcmVudCwgY2FsbGJhY2spIHtcblx0Ly8gUmVhY3QgZGVzdHJveXMgYW55IGV4aXN0aW5nIERPTSBub2Rlcywgc2VlICMxNzI3XG5cdC8vIC4uLmJ1dCBvbmx5IG9uIHRoZSBmaXJzdCByZW5kZXIsIHNlZSAjMTgyOFxuXHRpZiAocGFyZW50Ll9jaGlsZHJlbiA9PSBudWxsKSB7XG5cdFx0cGFyZW50LnRleHRDb250ZW50ID0gJyc7XG5cdH1cblxuXHRwcmVhY3RSZW5kZXIodm5vZGUsIHBhcmVudCk7XG5cdGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgY2FsbGJhY2soKTtcblxuXHRyZXR1cm4gdm5vZGUgPyB2bm9kZS5fY29tcG9uZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5ZHJhdGUodm5vZGUsIHBhcmVudCwgY2FsbGJhY2spIHtcblx0cHJlYWN0SHlkcmF0ZSh2bm9kZSwgcGFyZW50KTtcblx0aWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSBjYWxsYmFjaygpO1xuXG5cdHJldHVybiB2bm9kZSA/IHZub2RlLl9jb21wb25lbnQgOiBudWxsO1xufVxuXG5sZXQgb2xkRXZlbnRIb29rID0gb3B0aW9ucy5ldmVudDtcbm9wdGlvbnMuZXZlbnQgPSBlID0+IHtcblx0aWYgKG9sZEV2ZW50SG9vaykgZSA9IG9sZEV2ZW50SG9vayhlKTtcblxuXHRlLnBlcnNpc3QgPSBlbXB0eTtcblx0ZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IGlzUHJvcGFnYXRpb25TdG9wcGVkO1xuXHRlLmlzRGVmYXVsdFByZXZlbnRlZCA9IGlzRGVmYXVsdFByZXZlbnRlZDtcblx0cmV0dXJuIChlLm5hdGl2ZUV2ZW50ID0gZSk7XG59O1xuXG5mdW5jdGlvbiBlbXB0eSgpIHt9XG5cbmZ1bmN0aW9uIGlzUHJvcGFnYXRpb25TdG9wcGVkKCkge1xuXHRyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGU7XG59XG5cbmZ1bmN0aW9uIGlzRGVmYXVsdFByZXZlbnRlZCgpIHtcblx0cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZDtcbn1cblxuY29uc3QgY2xhc3NOYW1lRGVzY3JpcHRvck5vbkVudW1iZXJhYmxlID0ge1xuXHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRnZXQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuY2xhc3M7XG5cdH1cbn07XG5cbmZ1bmN0aW9uIGhhbmRsZURvbVZOb2RlKHZub2RlKSB7XG5cdGxldCBwcm9wcyA9IHZub2RlLnByb3BzLFxuXHRcdHR5cGUgPSB2bm9kZS50eXBlLFxuXHRcdG5vcm1hbGl6ZWRQcm9wcyA9IHt9O1xuXG5cdGxldCBpc05vbkRhc2hlZFR5cGUgPSB0eXBlLmluZGV4T2YoJy0nKSA9PT0gLTE7XG5cdGZvciAobGV0IGkgaW4gcHJvcHMpIHtcblx0XHRsZXQgdmFsdWUgPSBwcm9wc1tpXTtcblxuXHRcdGlmIChcblx0XHRcdChpID09PSAndmFsdWUnICYmICdkZWZhdWx0VmFsdWUnIGluIHByb3BzICYmIHZhbHVlID09IG51bGwpIHx8XG5cdFx0XHQvLyBFbXVsYXRlIFJlYWN0J3MgYmVoYXZpb3Igb2Ygbm90IHJlbmRlcmluZyB0aGUgY29udGVudHMgb2Ygbm9zY3JpcHQgdGFncyBvbiB0aGUgY2xpZW50LlxuXHRcdFx0KElTX0RPTSAmJiBpID09PSAnY2hpbGRyZW4nICYmIHR5cGUgPT09ICdub3NjcmlwdCcpIHx8XG5cdFx0XHRpID09PSAnY2xhc3MnIHx8XG5cdFx0XHRpID09PSAnY2xhc3NOYW1lJ1xuXHRcdCkge1xuXHRcdFx0Ly8gU2tpcCBhcHBseWluZyB2YWx1ZSBpZiBpdCBpcyBudWxsL3VuZGVmaW5lZCBhbmQgd2UgYWxyZWFkeSBzZXRcblx0XHRcdC8vIGEgZGVmYXVsdCB2YWx1ZVxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bGV0IGxvd2VyQ2FzZWQgPSBpLnRvTG93ZXJDYXNlKCk7XG5cdFx0aWYgKGkgPT09ICdkZWZhdWx0VmFsdWUnICYmICd2YWx1ZScgaW4gcHJvcHMgJiYgcHJvcHMudmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0Ly8gYGRlZmF1bHRWYWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZhbGxiYWNrIGB2YWx1ZWAgd2hlbiBhIHZhbHVlIHByb3AgaXMgcHJlc2VudCBidXQgbnVsbC91bmRlZmluZWQuXG5cdFx0XHQvLyBgZGVmYXVsdFZhbHVlYCBmb3IgRWxlbWVudHMgd2l0aCBubyB2YWx1ZSBwcm9wIGlzIHRoZSBzYW1lIGFzIHRoZSBET00gZGVmYXVsdFZhbHVlIHByb3BlcnR5LlxuXHRcdFx0aSA9ICd2YWx1ZSc7XG5cdFx0fSBlbHNlIGlmIChpID09PSAnZG93bmxvYWQnICYmIHZhbHVlID09PSB0cnVlKSB7XG5cdFx0XHQvLyBDYWxsaW5nIGBzZXRBdHRyaWJ1dGVgIHdpdGggYSB0cnV0aHkgdmFsdWUgd2lsbCBsZWFkIHRvIGl0IGJlaW5nXG5cdFx0XHQvLyBwYXNzZWQgYXMgYSBzdHJpbmdpZmllZCB2YWx1ZSwgZS5nLiBgZG93bmxvYWQ9XCJ0cnVlXCJgLiBSZWFjdFxuXHRcdFx0Ly8gY29udmVydHMgaXQgdG8gYW4gZW1wdHkgc3RyaW5nIGluc3RlYWQsIG90aGVyd2lzZSB0aGUgYXR0cmlidXRlXG5cdFx0XHQvLyB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdGhlIGZpbGUgbmFtZSBhbmQgdGhlIGZpbGUgd2lsbCBiZSBjYWxsZWRcblx0XHRcdC8vIFwidHJ1ZVwiIHVwb24gZG93bmxvYWRpbmcgaXQuXG5cdFx0XHR2YWx1ZSA9ICcnO1xuXHRcdH0gZWxzZSBpZiAobG93ZXJDYXNlZCA9PT0gJ3RyYW5zbGF0ZScgJiYgdmFsdWUgPT09ICdubycpIHtcblx0XHRcdHZhbHVlID0gZmFsc2U7XG5cdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkWzBdID09PSAnbycgJiYgbG93ZXJDYXNlZFsxXSA9PT0gJ24nKSB7XG5cdFx0XHRpZiAobG93ZXJDYXNlZCA9PT0gJ29uZG91YmxlY2xpY2snKSB7XG5cdFx0XHRcdGkgPSAnb25kYmxjbGljayc7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRsb3dlckNhc2VkID09PSAnb25jaGFuZ2UnICYmXG5cdFx0XHRcdCh0eXBlID09PSAnaW5wdXQnIHx8IHR5cGUgPT09ICd0ZXh0YXJlYScpICYmXG5cdFx0XHRcdCFvbkNoYW5nZUlucHV0VHlwZShwcm9wcy50eXBlKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGxvd2VyQ2FzZWQgPSBpID0gJ29uaW5wdXQnO1xuXHRcdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkID09PSAnb25mb2N1cycpIHtcblx0XHRcdFx0aSA9ICdvbmZvY3VzaW4nO1xuXHRcdFx0fSBlbHNlIGlmIChsb3dlckNhc2VkID09PSAnb25ibHVyJykge1xuXHRcdFx0XHRpID0gJ29uZm9jdXNvdXQnO1xuXHRcdFx0fSBlbHNlIGlmIChPTl9BTkkudGVzdChpKSkge1xuXHRcdFx0XHRpID0gbG93ZXJDYXNlZDtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGlzTm9uRGFzaGVkVHlwZSAmJiBDQU1FTF9QUk9QUy50ZXN0KGkpKSB7XG5cdFx0XHRpID0gaS5yZXBsYWNlKENBTUVMX1JFUExBQ0UsICctJCYnKS50b0xvd2VyQ2FzZSgpO1xuXHRcdH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcblx0XHRcdHZhbHVlID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIEFkZCBzdXBwb3J0IGZvciBvbklucHV0IGFuZCBvbkNoYW5nZSwgc2VlICMzNTYxXG5cdFx0Ly8gaWYgd2UgaGF2ZSBhbiBvbmlucHV0IHByb3AgYWxyZWFkeSBjaGFuZ2UgaXQgdG8gb25pbnB1dENhcHR1cmVcblx0XHRpZiAobG93ZXJDYXNlZCA9PT0gJ29uaW5wdXQnKSB7XG5cdFx0XHRpID0gbG93ZXJDYXNlZDtcblx0XHRcdGlmIChub3JtYWxpemVkUHJvcHNbaV0pIHtcblx0XHRcdFx0aSA9ICdvbmlucHV0Q2FwdHVyZSc7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bm9ybWFsaXplZFByb3BzW2ldID0gdmFsdWU7XG5cdH1cblxuXHQvLyBBZGQgc3VwcG9ydCBmb3IgYXJyYXkgc2VsZWN0IHZhbHVlczogPHNlbGVjdCBtdWx0aXBsZSB2YWx1ZT17W119IC8+XG5cdGlmIChcblx0XHR0eXBlID09ICdzZWxlY3QnICYmXG5cdFx0bm9ybWFsaXplZFByb3BzLm11bHRpcGxlICYmXG5cdFx0QXJyYXkuaXNBcnJheShub3JtYWxpemVkUHJvcHMudmFsdWUpXG5cdCkge1xuXHRcdC8vIGZvckVhY2goKSBhbHdheXMgcmV0dXJucyB1bmRlZmluZWQsIHdoaWNoIHdlIGFidXNlIGhlcmUgdG8gdW5zZXQgdGhlIHZhbHVlIHByb3AuXG5cdFx0bm9ybWFsaXplZFByb3BzLnZhbHVlID0gdG9DaGlsZEFycmF5KHByb3BzLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcblx0XHRcdGNoaWxkLnByb3BzLnNlbGVjdGVkID1cblx0XHRcdFx0bm9ybWFsaXplZFByb3BzLnZhbHVlLmluZGV4T2YoY2hpbGQucHJvcHMudmFsdWUpICE9IC0xO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gQWRkaW5nIHN1cHBvcnQgZm9yIGRlZmF1bHRWYWx1ZSBpbiBzZWxlY3QgdGFnXG5cdGlmICh0eXBlID09ICdzZWxlY3QnICYmIG5vcm1hbGl6ZWRQcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy52YWx1ZSA9IHRvQ2hpbGRBcnJheShwcm9wcy5jaGlsZHJlbikuZm9yRWFjaChjaGlsZCA9PiB7XG5cdFx0XHRpZiAobm9ybWFsaXplZFByb3BzLm11bHRpcGxlKSB7XG5cdFx0XHRcdGNoaWxkLnByb3BzLnNlbGVjdGVkID1cblx0XHRcdFx0XHRub3JtYWxpemVkUHJvcHMuZGVmYXVsdFZhbHVlLmluZGV4T2YoY2hpbGQucHJvcHMudmFsdWUpICE9IC0xO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2hpbGQucHJvcHMuc2VsZWN0ZWQgPVxuXHRcdFx0XHRcdG5vcm1hbGl6ZWRQcm9wcy5kZWZhdWx0VmFsdWUgPT0gY2hpbGQucHJvcHMudmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRpZiAocHJvcHMuY2xhc3MgJiYgIXByb3BzLmNsYXNzTmFtZSkge1xuXHRcdG5vcm1hbGl6ZWRQcm9wcy5jbGFzcyA9IHByb3BzLmNsYXNzO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcblx0XHRcdG5vcm1hbGl6ZWRQcm9wcyxcblx0XHRcdCdjbGFzc05hbWUnLFxuXHRcdFx0Y2xhc3NOYW1lRGVzY3JpcHRvck5vbkVudW1iZXJhYmxlXG5cdFx0KTtcblx0fSBlbHNlIGlmIChwcm9wcy5jbGFzc05hbWUgJiYgIXByb3BzLmNsYXNzKSB7XG5cdFx0bm9ybWFsaXplZFByb3BzLmNsYXNzID0gbm9ybWFsaXplZFByb3BzLmNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcblx0fSBlbHNlIGlmIChwcm9wcy5jbGFzcyAmJiBwcm9wcy5jbGFzc05hbWUpIHtcblx0XHRub3JtYWxpemVkUHJvcHMuY2xhc3MgPSBub3JtYWxpemVkUHJvcHMuY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuXHR9XG5cblx0dm5vZGUucHJvcHMgPSBub3JtYWxpemVkUHJvcHM7XG59XG5cbmxldCBvbGRWTm9kZUhvb2sgPSBvcHRpb25zLnZub2RlO1xub3B0aW9ucy52bm9kZSA9IHZub2RlID0+IHtcblx0Ly8gb25seSBub3JtYWxpemUgcHJvcHMgb24gRWxlbWVudCBub2Rlc1xuXHRpZiAodHlwZW9mIHZub2RlLnR5cGUgPT09ICdzdHJpbmcnKSB7XG5cdFx0aGFuZGxlRG9tVk5vZGUodm5vZGUpO1xuXHR9XG5cblx0dm5vZGUuJCR0eXBlb2YgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG5cblx0aWYgKG9sZFZOb2RlSG9vaykgb2xkVk5vZGVIb29rKHZub2RlKTtcbn07XG5cbi8vIE9ubHkgbmVlZGVkIGZvciByZWFjdC1yZWxheVxubGV0IGN1cnJlbnRDb21wb25lbnQ7XG5jb25zdCBvbGRCZWZvcmVSZW5kZXIgPSBvcHRpb25zLl9yZW5kZXI7XG5vcHRpb25zLl9yZW5kZXIgPSBmdW5jdGlvbiAodm5vZGUpIHtcblx0aWYgKG9sZEJlZm9yZVJlbmRlcikge1xuXHRcdG9sZEJlZm9yZVJlbmRlcih2bm9kZSk7XG5cdH1cblx0Y3VycmVudENvbXBvbmVudCA9IHZub2RlLl9jb21wb25lbnQ7XG59O1xuXG5jb25zdCBvbGREaWZmZWQgPSBvcHRpb25zLmRpZmZlZDtcbi8qKiBAdHlwZSB7KHZub2RlOiBpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZSkgPT4gdm9pZH0gKi9cbm9wdGlvbnMuZGlmZmVkID0gZnVuY3Rpb24gKHZub2RlKSB7XG5cdGlmIChvbGREaWZmZWQpIHtcblx0XHRvbGREaWZmZWQodm5vZGUpO1xuXHR9XG5cblx0Y29uc3QgcHJvcHMgPSB2bm9kZS5wcm9wcztcblx0Y29uc3QgZG9tID0gdm5vZGUuX2RvbTtcblxuXHRpZiAoXG5cdFx0ZG9tICE9IG51bGwgJiZcblx0XHR2bm9kZS50eXBlID09PSAndGV4dGFyZWEnICYmXG5cdFx0J3ZhbHVlJyBpbiBwcm9wcyAmJlxuXHRcdHByb3BzLnZhbHVlICE9PSBkb20udmFsdWVcblx0KSB7XG5cdFx0ZG9tLnZhbHVlID0gcHJvcHMudmFsdWUgPT0gbnVsbCA/ICcnIDogcHJvcHMudmFsdWU7XG5cdH1cblxuXHRjdXJyZW50Q29tcG9uZW50ID0gbnVsbDtcbn07XG5cbi8vIFRoaXMgaXMgYSB2ZXJ5IHZlcnkgcHJpdmF0ZSBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgUmVhY3QgaXRcbi8vIGlzIHVzZWQgdG8gc29ydC1vZiBkbyBydW50aW1lIGRlcGVuZGVuY3kgaW5qZWN0aW9uLlxuZXhwb3J0IGNvbnN0IF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0ge1xuXHRSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiB7XG5cdFx0Y3VycmVudDoge1xuXHRcdFx0cmVhZENvbnRleHQoY29udGV4dCkge1xuXHRcdFx0XHRyZXR1cm4gY3VycmVudENvbXBvbmVudC5fZ2xvYmFsQ29udGV4dFtjb250ZXh0Ll9pZF0ucHJvcHMudmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0dXNlQ2FsbGJhY2ssXG5cdFx0XHR1c2VDb250ZXh0LFxuXHRcdFx0dXNlRGVidWdWYWx1ZSxcblx0XHRcdHVzZURlZmVycmVkVmFsdWUsXG5cdFx0XHR1c2VFZmZlY3QsXG5cdFx0XHR1c2VJZCxcblx0XHRcdHVzZUltcGVyYXRpdmVIYW5kbGUsXG5cdFx0XHR1c2VJbnNlcnRpb25FZmZlY3QsXG5cdFx0XHR1c2VMYXlvdXRFZmZlY3QsXG5cdFx0XHR1c2VNZW1vLFxuXHRcdFx0Ly8gdXNlTXV0YWJsZVNvdXJjZSwgLy8gZXhwZXJpbWVudGFsLW9ubHkgYW5kIHJlcGxhY2VkIGJ5IHVTRVMsIGxpa2VseSBub3Qgd29ydGggc3VwcG9ydGluZ1xuXHRcdFx0dXNlUmVkdWNlcixcblx0XHRcdHVzZVJlZixcblx0XHRcdHVzZVN0YXRlLFxuXHRcdFx0dXNlU3luY0V4dGVybmFsU3RvcmUsXG5cdFx0XHR1c2VUcmFuc2l0aW9uXG5cdFx0fVxuXHR9XG59O1xuIiwgImltcG9ydCB7XG5cdGNyZWF0ZUVsZW1lbnQsXG5cdHJlbmRlciBhcyBwcmVhY3RSZW5kZXIsXG5cdGNsb25lRWxlbWVudCBhcyBwcmVhY3RDbG9uZUVsZW1lbnQsXG5cdGNyZWF0ZVJlZixcblx0Q29tcG9uZW50LFxuXHRjcmVhdGVDb250ZXh0LFxuXHRGcmFnbWVudFxufSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHtcblx0dXNlU3RhdGUsXG5cdHVzZUlkLFxuXHR1c2VSZWR1Y2VyLFxuXHR1c2VFZmZlY3QsXG5cdHVzZUxheW91dEVmZmVjdCxcblx0dXNlUmVmLFxuXHR1c2VJbXBlcmF0aXZlSGFuZGxlLFxuXHR1c2VNZW1vLFxuXHR1c2VDYWxsYmFjayxcblx0dXNlQ29udGV4dCxcblx0dXNlRGVidWdWYWx1ZVxufSBmcm9tICdwcmVhY3QvaG9va3MnO1xuaW1wb3J0IHsgUHVyZUNvbXBvbmVudCB9IGZyb20gJy4vUHVyZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAnLi9tZW1vJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICcuL2ZvcndhcmRSZWYnO1xuaW1wb3J0IHsgQ2hpbGRyZW4gfSBmcm9tICcuL0NoaWxkcmVuJztcbmltcG9ydCB7IFN1c3BlbnNlLCBsYXp5IH0gZnJvbSAnLi9zdXNwZW5zZSc7XG5pbXBvcnQgeyBTdXNwZW5zZUxpc3QgfSBmcm9tICcuL3N1c3BlbnNlLWxpc3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAnLi9wb3J0YWxzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7XG5cdGh5ZHJhdGUsXG5cdHJlbmRlcixcblx0UkVBQ1RfRUxFTUVOVF9UWVBFLFxuXHRfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRFxufSBmcm9tICcuL3JlbmRlcic7XG5cbmNvbnN0IHZlcnNpb24gPSAnMTguMy4xJzsgLy8gdHJpY2sgbGlicmFyaWVzIHRvIHRoaW5rIHdlIGFyZSByZWFjdFxuXG4vKipcbiAqIExlZ2FjeSB2ZXJzaW9uIG9mIGNyZWF0ZUVsZW1lbnQuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlZOb2RlW1widHlwZVwiXX0gdHlwZSBUaGUgbm9kZSBuYW1lIG9yIENvbXBvbmVudCBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBjcmVhdGVGYWN0b3J5KHR5cGUpIHtcblx0cmV0dXJuIGNyZWF0ZUVsZW1lbnQuYmluZChudWxsLCB0eXBlKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSB2YWxpZCAocClyZWFjdCBub2RlLlxuICogQHBhcmFtIHsqfSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkge1xuXHRyZXR1cm4gISFlbGVtZW50ICYmIGVsZW1lbnQuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSBGcmFnbWVudCBub2RlLlxuICogQHBhcmFtIHsqfSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGcmFnbWVudChlbGVtZW50KSB7XG5cdHJldHVybiBpc1ZhbGlkRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LnR5cGUgPT09IEZyYWdtZW50O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBwYXNzZWQgZWxlbWVudCBpcyBhIE1lbW8gbm9kZS5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzTWVtbyhlbGVtZW50KSB7XG5cdHJldHVybiAoXG5cdFx0ISFlbGVtZW50ICYmXG5cdFx0ISFlbGVtZW50LmRpc3BsYXlOYW1lICYmXG5cdFx0KHR5cGVvZiBlbGVtZW50LmRpc3BsYXlOYW1lID09PSAnc3RyaW5nJyB8fFxuXHRcdFx0ZWxlbWVudC5kaXNwbGF5TmFtZSBpbnN0YW5jZW9mIFN0cmluZykgJiZcblx0XHRlbGVtZW50LmRpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoJ01lbW8oJylcblx0KTtcbn1cblxuLyoqXG4gKiBXcmFwIGBjbG9uZUVsZW1lbnRgIHRvIGFib3J0IGlmIHRoZSBwYXNzZWQgZWxlbWVudCBpcyBub3QgYSB2YWxpZCBlbGVtZW50IGFuZCBhcHBseVxuICogYWxsIHZub2RlIG5vcm1hbGl6YXRpb25zLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW50ZXJuYWwnKS5WTm9kZX0gZWxlbWVudCBUaGUgdm5vZGUgdG8gY2xvbmVcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyBQcm9wcyB0byBhZGQgd2hlbiBjbG9uaW5nXG4gKiBAcGFyYW0ge0FycmF5PGltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudENoaWxkcmVuPn0gcmVzdCBPcHRpb25hbCBjb21wb25lbnQgY2hpbGRyZW5cbiAqL1xuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQpIHtcblx0aWYgKCFpc1ZhbGlkRWxlbWVudChlbGVtZW50KSkgcmV0dXJuIGVsZW1lbnQ7XG5cdHJldHVybiBwcmVhY3RDbG9uZUVsZW1lbnQuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBjb21wb25lbnQgdHJlZSBmcm9tIHRoZSBET00sIGluY2x1ZGluZyBzdGF0ZSBhbmQgZXZlbnQgaGFuZGxlcnMuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLlByZWFjdEVsZW1lbnR9IGNvbnRhaW5lclxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHVubW91bnRDb21wb25lbnRBdE5vZGUoY29udGFpbmVyKSB7XG5cdGlmIChjb250YWluZXIuX2NoaWxkcmVuKSB7XG5cdFx0cHJlYWN0UmVuZGVyKG51bGwsIGNvbnRhaW5lcik7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWF0Y2hpbmcgRE9NIG5vZGUgZm9yIGEgY29tcG9uZW50XG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9pbnRlcm5hbCcpLkNvbXBvbmVudH0gY29tcG9uZW50XG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuL2ludGVybmFsJykuUHJlYWN0RWxlbWVudCB8IG51bGx9XG4gKi9cbmZ1bmN0aW9uIGZpbmRET01Ob2RlKGNvbXBvbmVudCkge1xuXHRyZXR1cm4gKFxuXHRcdChjb21wb25lbnQgJiZcblx0XHRcdChjb21wb25lbnQuYmFzZSB8fCAoY29tcG9uZW50Lm5vZGVUeXBlID09PSAxICYmIGNvbXBvbmVudCkpKSB8fFxuXHRcdG51bGxcblx0KTtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkIHdheSB0byBjb250cm9sIGJhdGNoZWQgcmVuZGVyaW5nIGluc2lkZSB0aGUgcmVjb25jaWxlciwgYnV0IHdlXG4gKiBhbHJlYWR5IHNjaGVkdWxlIGluIGJhdGNoZXMgaW5zaWRlIG91ciByZW5kZXJpbmcgY29kZVxuICogQHRlbXBsYXRlIEFyZ1xuICogQHBhcmFtIHsoYXJnOiBBcmcpID0+IHZvaWR9IGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgdHJpZ2dlcnMgdGhlIHVwZGF0ZWRcbiAqIEBwYXJhbSB7QXJnfSBbYXJnXSBPcHRpb25hbCBhcmd1bWVudCB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbmNvbnN0IHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gKGNhbGxiYWNrLCBhcmcpID0+IGNhbGxiYWNrKGFyZyk7XG5cbi8qKlxuICogSW4gUmVhY3QsIGBmbHVzaFN5bmNgIGZsdXNoZXMgdGhlIGVudGlyZSB0cmVlIGFuZCBmb3JjZXMgYSByZXJlbmRlci4gSXQnc1xuICogaW1wbG1lbnRlZCBoZXJlIGFzIGEgbm8tb3AuXG4gKiBAdGVtcGxhdGUgQXJnXG4gKiBAdGVtcGxhdGUgUmVzdWx0XG4gKiBAcGFyYW0geyhhcmc6IEFyZykgPT4gUmVzdWx0fSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHJ1bnMgYmVmb3JlIHRoZSBmbHVzaFxuICogQHBhcmFtIHtBcmd9IFthcmddIE9wdGlvbmFsIGFyZ3VtZW50IHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2tcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGZsdXNoU3luYyA9IChjYWxsYmFjaywgYXJnKSA9PiBjYWxsYmFjayhhcmcpO1xuXG4vKipcbiAqIFN0cmljdCBNb2RlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBQcmVhY3QsIHNvIHdlIHByb3ZpZGUgYSBzdGFuZC1pbiBmb3IgaXRcbiAqIHRoYXQganVzdCByZW5kZXJzIGl0cyBjaGlsZHJlbiB3aXRob3V0IGltcG9zaW5nIGFueSByZXN0cmljdGlvbnMuXG4gKi9cbmNvbnN0IFN0cmljdE1vZGUgPSBGcmFnbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYikge1xuXHRjYigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVmZXJyZWRWYWx1ZSh2YWwpIHtcblx0cmV0dXJuIHZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oKSB7XG5cdHJldHVybiBbZmFsc2UsIHN0YXJ0VHJhbnNpdGlvbl07XG59XG5cbi8vIFRPRE86IGluIHRoZW9yeSB0aGlzIHNob3VsZCBiZSBkb25lIGFmdGVyIGEgVk5vZGUgaXMgZGlmZmVkIGFzIHdlIHdhbnQgdG8gaW5zZXJ0XG4vLyBzdHlsZXMvLi4uIGJlZm9yZSBpdCBhdHRhY2hlc1xuZXhwb3J0IGNvbnN0IHVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcblxuLy8gY29tcGF0IHRvIHJlYWN0LWlzXG5leHBvcnQgY29uc3QgaXNFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5cbi8qKlxuICogVGhpcyBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL21haW4vcGFja2FnZXMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvc3JjL3VzZVN5bmNFeHRlcm5hbFN0b3JlU2hpbUNsaWVudC5qcyNMODRcbiAqIG9uIGEgaGlnaCBsZXZlbCB0aGlzIGN1dHMgb3V0IHRoZSB3YXJuaW5ncywgLi4uIGFuZCBhdHRlbXB0cyBhIHNtYWxsZXIgaW1wbGVtZW50YXRpb25cbiAqIEB0eXBlZGVmIHt7IF92YWx1ZTogYW55OyBfZ2V0U25hcHNob3Q6ICgpID0+IGFueSB9fSBTdG9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCkge1xuXHRjb25zdCB2YWx1ZSA9IGdldFNuYXBzaG90KCk7XG5cblx0LyoqXG5cdCAqIEB0eXBlZGVmIHt7IF9pbnN0YW5jZTogU3RvcmUgfX0gU3RvcmVSZWZcblx0ICogQHR5cGUge1tTdG9yZVJlZiwgKHN0b3JlOiBTdG9yZVJlZikgPT4gdm9pZF19XG5cdCAqL1xuXHRjb25zdCBbeyBfaW5zdGFuY2UgfSwgZm9yY2VVcGRhdGVdID0gdXNlU3RhdGUoe1xuXHRcdF9pbnN0YW5jZTogeyBfdmFsdWU6IHZhbHVlLCBfZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90IH1cblx0fSk7XG5cblx0dXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcblx0XHRfaW5zdGFuY2UuX3ZhbHVlID0gdmFsdWU7XG5cdFx0X2luc3RhbmNlLl9nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90O1xuXG5cdFx0aWYgKGRpZFNuYXBzaG90Q2hhbmdlKF9pbnN0YW5jZSkpIHtcblx0XHRcdGZvcmNlVXBkYXRlKHsgX2luc3RhbmNlIH0pO1xuXHRcdH1cblx0fSwgW3N1YnNjcmliZSwgdmFsdWUsIGdldFNuYXBzaG90XSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoZGlkU25hcHNob3RDaGFuZ2UoX2luc3RhbmNlKSkge1xuXHRcdFx0Zm9yY2VVcGRhdGUoeyBfaW5zdGFuY2UgfSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoZGlkU25hcHNob3RDaGFuZ2UoX2luc3RhbmNlKSkge1xuXHRcdFx0XHRmb3JjZVVwZGF0ZSh7IF9pbnN0YW5jZSB9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSwgW3N1YnNjcmliZV0pO1xuXG5cdHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIEB0eXBlIHsoaW5zdDogU3RvcmUpID0+IGJvb2xlYW59ICovXG5mdW5jdGlvbiBkaWRTbmFwc2hvdENoYW5nZShpbnN0KSB7XG5cdGNvbnN0IGxhdGVzdEdldFNuYXBzaG90ID0gaW5zdC5fZ2V0U25hcHNob3Q7XG5cdGNvbnN0IHByZXZWYWx1ZSA9IGluc3QuX3ZhbHVlO1xuXHR0cnkge1xuXHRcdGNvbnN0IG5leHRWYWx1ZSA9IGxhdGVzdEdldFNuYXBzaG90KCk7XG5cdFx0cmV0dXJuICFpcyhwcmV2VmFsdWUsIG5leHRWYWx1ZSk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuZXhwb3J0ICogZnJvbSAncHJlYWN0L2hvb2tzJztcbmV4cG9ydCB7XG5cdHZlcnNpb24sXG5cdENoaWxkcmVuLFxuXHRyZW5kZXIsXG5cdGh5ZHJhdGUsXG5cdHVubW91bnRDb21wb25lbnRBdE5vZGUsXG5cdGNyZWF0ZVBvcnRhbCxcblx0Y3JlYXRlRWxlbWVudCxcblx0Y3JlYXRlQ29udGV4dCxcblx0Y3JlYXRlRmFjdG9yeSxcblx0Y2xvbmVFbGVtZW50LFxuXHRjcmVhdGVSZWYsXG5cdEZyYWdtZW50LFxuXHRpc1ZhbGlkRWxlbWVudCxcblx0aXNGcmFnbWVudCxcblx0aXNNZW1vLFxuXHRmaW5kRE9NTm9kZSxcblx0Q29tcG9uZW50LFxuXHRQdXJlQ29tcG9uZW50LFxuXHRtZW1vLFxuXHRmb3J3YXJkUmVmLFxuXHRmbHVzaFN5bmMsXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2Vcblx0dW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsXG5cdFN0cmljdE1vZGUsXG5cdFN1c3BlbnNlLFxuXHRTdXNwZW5zZUxpc3QsXG5cdGxhenksXG5cdF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEXG59O1xuXG4vLyBSZWFjdCBjb3BpZXMgdGhlIG5hbWVkIGV4cG9ydHMgdG8gdGhlIGRlZmF1bHQgb25lLlxuZXhwb3J0IGRlZmF1bHQge1xuXHR1c2VTdGF0ZSxcblx0dXNlSWQsXG5cdHVzZVJlZHVjZXIsXG5cdHVzZUVmZmVjdCxcblx0dXNlTGF5b3V0RWZmZWN0LFxuXHR1c2VJbnNlcnRpb25FZmZlY3QsXG5cdHVzZVRyYW5zaXRpb24sXG5cdHVzZURlZmVycmVkVmFsdWUsXG5cdHVzZVN5bmNFeHRlcm5hbFN0b3JlLFxuXHRzdGFydFRyYW5zaXRpb24sXG5cdHVzZVJlZixcblx0dXNlSW1wZXJhdGl2ZUhhbmRsZSxcblx0dXNlTWVtbyxcblx0dXNlQ2FsbGJhY2ssXG5cdHVzZUNvbnRleHQsXG5cdHVzZURlYnVnVmFsdWUsXG5cdHZlcnNpb24sXG5cdENoaWxkcmVuLFxuXHRyZW5kZXIsXG5cdGh5ZHJhdGUsXG5cdHVubW91bnRDb21wb25lbnRBdE5vZGUsXG5cdGNyZWF0ZVBvcnRhbCxcblx0Y3JlYXRlRWxlbWVudCxcblx0Y3JlYXRlQ29udGV4dCxcblx0Y3JlYXRlRmFjdG9yeSxcblx0Y2xvbmVFbGVtZW50LFxuXHRjcmVhdGVSZWYsXG5cdEZyYWdtZW50LFxuXHRpc1ZhbGlkRWxlbWVudCxcblx0aXNFbGVtZW50LFxuXHRpc0ZyYWdtZW50LFxuXHRpc01lbW8sXG5cdGZpbmRET01Ob2RlLFxuXHRDb21wb25lbnQsXG5cdFB1cmVDb21wb25lbnQsXG5cdG1lbW8sXG5cdGZvcndhcmRSZWYsXG5cdGZsdXNoU3luYyxcblx0dW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsXG5cdFN0cmljdE1vZGUsXG5cdFN1c3BlbnNlLFxuXHRTdXNwZW5zZUxpc3QsXG5cdGxhenksXG5cdF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEXG59O1xuIiwgImNvbnN0IEVOQ09ERURfRU5USVRJRVMgPSAvW1wiJjxdLztcblxuLyoqIEBwYXJhbSB7c3RyaW5nfSBzdHIgKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVFbnRpdGllcyhzdHIpIHtcblx0Ly8gU2tpcCBhbGwgd29yayBmb3Igc3RyaW5ncyB3aXRoIG5vIGVudGl0aWVzIG5lZWRpbmcgZW5jb2Rpbmc6XG5cdGlmIChzdHIubGVuZ3RoID09PSAwIHx8IEVOQ09ERURfRU5USVRJRVMudGVzdChzdHIpID09PSBmYWxzZSkgcmV0dXJuIHN0cjtcblxuXHRsZXQgbGFzdCA9IDAsXG5cdFx0aSA9IDAsXG5cdFx0b3V0ID0gJycsXG5cdFx0Y2ggPSAnJztcblxuXHQvLyBTZWVrIGZvcndhcmQgaW4gc3RyIHVudGlsIHRoZSBuZXh0IGVudGl0eSBjaGFyOlxuXHRmb3IgKDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaSkpIHtcblx0XHRcdGNhc2UgMzQ6XG5cdFx0XHRcdGNoID0gJyZxdW90Oyc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAzODpcblx0XHRcdFx0Y2ggPSAnJmFtcDsnO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgNjA6XG5cdFx0XHRcdGNoID0gJyZsdDsnO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHQvLyBBcHBlbmQgc2tpcHBlZC9idWZmZXJlZCBjaGFyYWN0ZXJzIGFuZCB0aGUgZW5jb2RlZCBlbnRpdHk6XG5cdFx0aWYgKGkgIT09IGxhc3QpIG91dCArPSBzdHIuc2xpY2UobGFzdCwgaSk7XG5cdFx0b3V0ICs9IGNoO1xuXHRcdC8vIFN0YXJ0IHRoZSBuZXh0IHNlZWsvYnVmZmVyIGFmdGVyIHRoZSBlbnRpdHkncyBvZmZzZXQ6XG5cdFx0bGFzdCA9IGkgKyAxO1xuXHR9XG5cdGlmIChpICE9PSBsYXN0KSBvdXQgKz0gc3RyLnNsaWNlKGxhc3QsIGkpO1xuXHRyZXR1cm4gb3V0O1xufVxuIiwgIi8qKiBOb3JtYWwgaHlkcmF0aW9uIHRoYXQgYXR0YWNoZXMgdG8gYSBET00gdHJlZSBidXQgZG9lcyBub3QgZGlmZiBpdC4gKi9cbmV4cG9ydCBjb25zdCBNT0RFX0hZRFJBVEUgPSAxIDw8IDU7XG4vKiogU2lnbmlmaWVzIHRoaXMgVk5vZGUgc3VzcGVuZGVkIG9uIHRoZSBwcmV2aW91cyByZW5kZXIgKi9cbmV4cG9ydCBjb25zdCBNT0RFX1NVU1BFTkRFRCA9IDEgPDwgNztcbi8qKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIG5vZGUgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgd2hpbGUgcGF0Y2hpbmcgY2hpbGRyZW4gKi9cbmV4cG9ydCBjb25zdCBJTlNFUlRfVk5PREUgPSAxIDw8IDE2O1xuLyoqIEluZGljYXRlcyBhIFZOb2RlIGhhcyBiZWVuIG1hdGNoZWQgd2l0aCBhbm90aGVyIFZOb2RlIGluIHRoZSBkaWZmICovXG5leHBvcnQgY29uc3QgTUFUQ0hFRCA9IDEgPDwgMTc7XG5cbi8qKiBSZXNldCBhbGwgbW9kZSBmbGFncyAqL1xuZXhwb3J0IGNvbnN0IFJFU0VUX01PREUgPSB+KE1PREVfSFlEUkFURSB8IE1PREVfU1VTUEVOREVEKTtcblxuZXhwb3J0IGNvbnN0IEVNUFRZX09CSiA9IC8qKiBAdHlwZSB7YW55fSAqLyAoe30pO1xuZXhwb3J0IGNvbnN0IEVNUFRZX0FSUiA9IFtdO1xuZXhwb3J0IGNvbnN0IElTX05PTl9ESU1FTlNJT05BTCA9XG5cdC9hY2l0fGV4KD86c3xnfG58cHwkKXxycGh8Z3JpZHxvd3N8bW5jfG50d3xpbmVbY2hdfHpvb3xeb3JkfGl0ZXJhL2k7XG4iLCAiaW1wb3J0IHsgb3B0aW9ucywgRnJhZ21lbnQgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IHsgZW5jb2RlRW50aXRpZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IElTX05PTl9ESU1FTlNJT05BTCB9IGZyb20gJy4uLy4uL3NyYy9jb25zdGFudHMnO1xuXG5sZXQgdm5vZGVJZCA9IDA7XG5cbmNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIEBmaWxlb3ZlcnZpZXdcbiAqIFRoaXMgZmlsZSBleHBvcnRzIHZhcmlvdXMgbWV0aG9kcyB0aGF0IGltcGxlbWVudCBCYWJlbCdzIFwiYXV0b21hdGljXCIgSlNYIHJ1bnRpbWUgQVBJOlxuICogLSBqc3godHlwZSwgcHJvcHMsIGtleSlcbiAqIC0ganN4cyh0eXBlLCBwcm9wcywga2V5KVxuICogLSBqc3hERVYodHlwZSwgcHJvcHMsIGtleSwgX19zb3VyY2UsIF9fc2VsZilcbiAqXG4gKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY3JlYXRlVk5vZGUgaGVyZSBpcyBvcHRpbWl6ZWQgZm9yIHBlcmZvcm1hbmNlLlxuICogQmVuY2htYXJrczogaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81ZjZiNTRhMGI0NjMyMTAwYTdkY2QyYjNcbiAqL1xuXG4vKipcbiAqIEpTWC5FbGVtZW50IGZhY3RvcnkgdXNlZCBieSBCYWJlbCdzIHtydW50aW1lOlwiYXV0b21hdGljXCJ9IEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7Vk5vZGVbJ3R5cGUnXX0gdHlwZVxuICogQHBhcmFtIHtWTm9kZVsncHJvcHMnXX0gcHJvcHNcbiAqIEBwYXJhbSB7Vk5vZGVbJ2tleSddfSBba2V5XVxuICogQHBhcmFtIHt1bmtub3dufSBbaXNTdGF0aWNDaGlsZHJlbl1cbiAqIEBwYXJhbSB7dW5rbm93bn0gW19fc291cmNlXVxuICogQHBhcmFtIHt1bmtub3dufSBbX19zZWxmXVxuICovXG5mdW5jdGlvbiBjcmVhdGVWTm9kZSh0eXBlLCBwcm9wcywga2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBfX3NvdXJjZSwgX19zZWxmKSB7XG5cdGlmICghcHJvcHMpIHByb3BzID0ge307XG5cdC8vIFdlJ2xsIHdhbnQgdG8gcHJlc2VydmUgYHJlZmAgaW4gcHJvcHMgdG8gZ2V0IHJpZCBvZiB0aGUgbmVlZCBmb3Jcblx0Ly8gZm9yd2FyZFJlZiBjb21wb25lbnRzIGluIHRoZSBmdXR1cmUsIGJ1dCB0aGF0IHNob3VsZCBoYXBwZW4gdmlhXG5cdC8vIGEgc2VwYXJhdGUgUFIuXG5cdGxldCBub3JtYWxpemVkUHJvcHMgPSBwcm9wcyxcblx0XHRyZWYsXG5cdFx0aTtcblxuXHRpZiAoJ3JlZicgaW4gcHJvcHMpIHtcblx0XHRyZWYgPSBwcm9wcy5yZWY7XG5cdFx0ZGVsZXRlIHByb3BzLnJlZjtcblx0fVxuXG5cdC8qKiBAdHlwZSB7Vk5vZGUgJiB7IF9fc291cmNlOiBhbnk7IF9fc2VsZjogYW55IH19ICovXG5cdGNvbnN0IHZub2RlID0ge1xuXHRcdHR5cGUsXG5cdFx0cHJvcHM6IG5vcm1hbGl6ZWRQcm9wcyxcblx0XHRrZXksXG5cdFx0cmVmLFxuXHRcdF9jaGlsZHJlbjogbnVsbCxcblx0XHRfcGFyZW50OiBudWxsLFxuXHRcdF9kZXB0aDogMCxcblx0XHRfZG9tOiBudWxsLFxuXHRcdF9uZXh0RG9tOiB1bmRlZmluZWQsXG5cdFx0X2NvbXBvbmVudDogbnVsbCxcblx0XHRjb25zdHJ1Y3RvcjogdW5kZWZpbmVkLFxuXHRcdF9vcmlnaW5hbDogLS12bm9kZUlkLFxuXHRcdF9pbmRleDogLTEsXG5cdFx0X2ZsYWdzOiAwLFxuXHRcdF9fc291cmNlLFxuXHRcdF9fc2VsZlxuXHR9O1xuXG5cdC8vIElmIGEgQ29tcG9uZW50IFZOb2RlLCBjaGVjayBmb3IgYW5kIGFwcGx5IGRlZmF1bHRQcm9wcy5cblx0Ly8gTm90ZTogYHR5cGVgIGlzIG9mdGVuIGEgU3RyaW5nLCBhbmQgY2FuIGJlIGB1bmRlZmluZWRgIGluIGRldmVsb3BtZW50LlxuXHRpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiYgKHJlZiA9IHR5cGUuZGVmYXVsdFByb3BzKSkge1xuXHRcdGZvciAoaSBpbiByZWYpXG5cdFx0XHRpZiAodHlwZW9mIG5vcm1hbGl6ZWRQcm9wc1tpXSA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0bm9ybWFsaXplZFByb3BzW2ldID0gcmVmW2ldO1xuXHRcdFx0fVxuXHR9XG5cblx0aWYgKG9wdGlvbnMudm5vZGUpIG9wdGlvbnMudm5vZGUodm5vZGUpO1xuXHRyZXR1cm4gdm5vZGU7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdGVtcGxhdGUgdm5vZGUuIFRoaXMgZnVuY3Rpb24gaXMgbm90IGV4cGVjdGVkIHRvIGJlXG4gKiB1c2VkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRocm91Z2ggYSBwcmVjb21waWxlIEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7c3RyaW5nW119IHRlbXBsYXRlc1xuICogQHBhcmFtICB7QXJyYXk8c3RyaW5nIHwgbnVsbCB8IFZOb2RlPn0gZXhwcnNcbiAqIEByZXR1cm5zIHtWTm9kZX1cbiAqL1xuZnVuY3Rpb24ganN4VGVtcGxhdGUodGVtcGxhdGVzLCAuLi5leHBycykge1xuXHRjb25zdCB2bm9kZSA9IGNyZWF0ZVZOb2RlKEZyYWdtZW50LCB7IHRwbDogdGVtcGxhdGVzLCBleHBycyB9KTtcblx0Ly8gQnlwYXNzIHJlbmRlciB0byBzdHJpbmcgdG9wIGxldmVsIEZyYWdtZW50IG9wdGltaXphdGlvblxuXHR2bm9kZS5rZXkgPSB2bm9kZS5fdm5vZGU7XG5cdHJldHVybiB2bm9kZTtcbn1cblxuY29uc3QgSlNfVE9fQ1NTID0ge307XG5jb25zdCBDU1NfUkVHRVggPSAvW0EtWl0vZztcblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gSFRNTCBhdHRyaWJ1dGUgdG8gYSBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gaXMgbm90XG4gKiBleHBlY3RlZCB0byBiZSB1c2VkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRocm91Z2ggYSBwcmVjb21waWxlXG4gKiBKU1ggdHJhbnNmb3JtXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgYXR0cmlidXRlIG5hbWVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24ganN4QXR0cihuYW1lLCB2YWx1ZSkge1xuXHRpZiAob3B0aW9ucy5hdHRyKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gb3B0aW9ucy5hdHRyKG5hbWUsIHZhbHVlKTtcblx0XHRpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRpZiAobmFtZSA9PT0gJ3JlZicgfHwgbmFtZSA9PT0gJ2tleScpIHJldHVybiAnJztcblx0aWYgKG5hbWUgPT09ICdzdHlsZScgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHRcdGxldCBzdHIgPSAnJztcblx0XHRmb3IgKGxldCBwcm9wIGluIHZhbHVlKSB7XG5cdFx0XHRsZXQgdmFsID0gdmFsdWVbcHJvcF07XG5cdFx0XHRpZiAodmFsICE9IG51bGwgJiYgdmFsICE9PSAnJykge1xuXHRcdFx0XHRjb25zdCBuYW1lID1cblx0XHRcdFx0XHRwcm9wWzBdID09ICctJ1xuXHRcdFx0XHRcdFx0PyBwcm9wXG5cdFx0XHRcdFx0XHQ6IEpTX1RPX0NTU1twcm9wXSB8fFxuXHRcdFx0XHRcdFx0XHQoSlNfVE9fQ1NTW3Byb3BdID0gcHJvcC5yZXBsYWNlKENTU19SRUdFWCwgJy0kJicpLnRvTG93ZXJDYXNlKCkpO1xuXG5cdFx0XHRcdGxldCBzdWZmaXggPSAnOyc7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0eXBlb2YgdmFsID09PSAnbnVtYmVyJyAmJlxuXHRcdFx0XHRcdC8vIEV4Y2x1ZGUgY3VzdG9tLWF0dHJpYnV0ZXNcblx0XHRcdFx0XHQhbmFtZS5zdGFydHNXaXRoKCctLScpICYmXG5cdFx0XHRcdFx0IUlTX05PTl9ESU1FTlNJT05BTC50ZXN0KG5hbWUpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHN1ZmZpeCA9ICdweDsnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN0ciA9IHN0ciArIG5hbWUgKyAnOicgKyB2YWwgKyBzdWZmaXg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBuYW1lICsgJz1cIicgKyBzdHIgKyAnXCInO1xuXHR9XG5cblx0aWYgKFxuXHRcdHZhbHVlID09IG51bGwgfHxcblx0XHR2YWx1ZSA9PT0gZmFsc2UgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG5cdCkge1xuXHRcdHJldHVybiAnJztcblx0fSBlbHNlIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWU7XG5cblx0cmV0dXJuIG5hbWUgKyAnPVwiJyArIGVuY29kZUVudGl0aWVzKHZhbHVlKSArICdcIic7XG59XG5cbi8qKlxuICogRXNjYXBlIGEgZHluYW1pYyBjaGlsZCBwYXNzZWQgdG8gYGpzeFRlbXBsYXRlYC4gVGhpcyBmdW5jdGlvblxuICogaXMgbm90IGV4cGVjdGVkIHRvIGJlIHVzZWQgZGlyZWN0bHksIGJ1dCByYXRoZXIgdGhyb3VnaCBhXG4gKiBwcmVjb21waWxlIEpTWCB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsIHwgVk5vZGUgfCBBcnJheTxzdHJpbmcgfCBudWxsIHwgVk5vZGU+fVxuICovXG5mdW5jdGlvbiBqc3hFc2NhcGUodmFsdWUpIHtcblx0aWYgKFxuXHRcdHZhbHVlID09IG51bGwgfHxcblx0XHR0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuXHRcdHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuXHQpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdFx0Ly8gQ2hlY2sgZm9yIFZOb2RlXG5cdFx0aWYgKHZhbHVlLmNvbnN0cnVjdG9yID09PSB1bmRlZmluZWQpIHJldHVybiB2YWx1ZTtcblxuXHRcdGlmIChpc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR2YWx1ZVtpXSA9IGpzeEVzY2FwZSh2YWx1ZVtpXSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVuY29kZUVudGl0aWVzKCcnICsgdmFsdWUpO1xufVxuXG5leHBvcnQge1xuXHRjcmVhdGVWTm9kZSBhcyBqc3gsXG5cdGNyZWF0ZVZOb2RlIGFzIGpzeHMsXG5cdGNyZWF0ZVZOb2RlIGFzIGpzeERFVixcblx0RnJhZ21lbnQsXG5cdC8vIHByZWNvbXBpbGVkIEpTWCB0cmFuc2Zvcm1cblx0anN4VGVtcGxhdGUsXG5cdGpzeEF0dHIsXG5cdGpzeEVzY2FwZVxufTtcbiIsICIvKipcbiAqIEBtb2R1bGUgdWlcbiAqL1xuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWR1Y2VyLCB1c2VSZWYgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQge1xuICAgIEFQUF9DT05URVhULFxuICAgIENPTVBPTkVOVF9DT05URVhULFxuICAgIENVUlJFTlRfRklMRV9DT05URVhULFxuICAgIERBVEFDT1JFX0NPTlRFWFQsXG4gICAgRXJyb3JNZXNzYWdlLFxuICAgIE1hcmtkb3duLFxufSBmcm9tIFwiLi4vLi4vdWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBnZXRGaWxlVGl0bGUsIGxpbmVSYW5nZSB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuXG5pbXBvcnQgXCIuL2VtYmVkLmNzc1wiO1xuXG4vKiogUmVuZGVycyBhbiBlbWJlZCBpbiB0aGUgY2Fub25pY2FsIE9ic2lkaWFuIHN0eWxlLlxuICpcbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbWJlZCh7XG4gICAgbGluayxcbiAgICBpbmxpbmUsXG4gICAgc291cmNlUGF0aDogbWF5YmVTb3VyY2VQYXRoLFxufToge1xuICAgIC8qKiBUaGUgbGluayB0aGF0IGlzIGJlaW5nIGVtYmVkZGVkLiAqL1xuICAgIGxpbms6IExpbms7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGVtYmVkIHNob3VsZCBiZSBzaG93biBpbmxpbmUgd2l0aCBsZXNzIHBhZGRpbmcuICovXG4gICAgaW5saW5lOiBib29sZWFuO1xuICAgIC8qKiBUaGUgcGF0aCB3aGljaCB0aGUgbGluayB3aWxsIGJlIHJlc29sdmVkIHJlbGF0aXZlIHRvLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59KSB7XG4gICAgY29uc3QgYXBwID0gdXNlQ29udGV4dChBUFBfQ09OVEVYVCk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdXNlQ29udGV4dChDT01QT05FTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgY3VycmVudEZpbGUgPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gbWF5YmVTb3VyY2VQYXRoID8/IGN1cnJlbnRGaWxlID8/IFwiXCI7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBsaW5rZWRGaWxlID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QobGluay5wYXRoLCBzb3VyY2VQYXRoKSxcbiAgICAgICAgW2xpbmsucGF0aCwgc291cmNlUGF0aF1cbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFjb250YWluZXIuY3VycmVudCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWxpbmtlZEZpbGUpIHJldHVybjtcblxuICAgICAgICBjb250YWluZXIuY3VycmVudC5pbm5lckhUTUwgPSBcIlwiO1xuXG4gICAgICAgIGNvbnN0IGNyZWF0b3IgPSBhcHAuZW1iZWRSZWdpc3RyeS5nZXRFbWJlZENyZWF0b3IobGlua2VkRmlsZSk7XG4gICAgICAgIGxldCBlbWJlZENvbXBvbmVudCA9IG5ldyBjcmVhdG9yKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxpbmt0ZXh0OiBsaW5rLnBhdGgsXG4gICAgICAgICAgICAgICAgc291cmNlUGF0aDogc291cmNlUGF0aCxcbiAgICAgICAgICAgICAgICBzaG93SW5saW5lOiBpbmxpbmUsXG4gICAgICAgICAgICAgICAgYXBwLFxuICAgICAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lckVsOiBjb250YWluZXIuY3VycmVudCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TW9kZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rZWRGaWxlLFxuICAgICAgICAgICAgbGluay5zdWJwYXRoXG4gICAgICAgICk7XG5cbiAgICAgICAgY29tcG9uZW50LmFkZENoaWxkKGVtYmVkQ29tcG9uZW50KTtcbiAgICAgICAgZW1iZWRDb21wb25lbnQubG9hZEZpbGUobGlua2VkRmlsZSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IGNvbXBvbmVudC5yZW1vdmVDaGlsZChlbWJlZENvbXBvbmVudCk7XG4gICAgfSwgW2NvbnRhaW5lci5jdXJyZW50LCBsaW5rZWRGaWxlLCBsaW5rLnN1YnBhdGhdKTtcblxuICAgIGlmICghbGlua2VkRmlsZSkge1xuICAgICAgICByZXR1cm4gPEVycm9yTWVzc2FnZSBtZXNzYWdlPXtgQ291bGQgbm90IGZpbmQgYSBwYWdlIGF0IGxpbmtlZCBsb2NhdGlvbjogJHtsaW5rLnBhdGh9YH0gLz47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiZGMtZW1iZWRcIiByZWY9e2NvbnRhaW5lcn0+PC9kaXY+O1xuICAgIH1cbn1cblxuLyoqXG4gKiBBbiBlbWJlZCBvZiBhbiBhcmJpdHJhcnkgc3BhbiBvZiBsaW5lcyBpbiBhIE1hcmtkb3duIGZpbGUuIE9wZXJhdGVzIGJ5IGFzeW5jaHJvbm91c2x5IGxvYWRpbmcgdGhlIGZpbGUgYW5kIHB1bGxpbmdcbiAqIG91dCB0aGUgZ2l2ZW4gW3N0YXJ0LCBlbmQpIGxpbmUgc3Bhbi5cbiAqXG4gKiBOb3RlIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgdGhlIGZpbGUgb24gZGlzayB0byBiZSBkaWZmZXJlbnQgdGhhbiBpdCB3YXMgd2hlbiB5b3UgZmlyc3QgbG9hZGVkIHRoZSBbc3RhcnQsIGVuZCkgbGluZSBzcGFuXG4gKiAtIGdlbmVyYWxseSwgZGF0YWNvcmUgd2lsbCBhc3luY2hyb25vdXNseSByZWxvYWQgdGhlc2UgZmlsZXMgaW4gdGhlIGJhY2tncm91bmQgYW5kIGZpeCBpdCdzIGluZGV4LCBidXQgeW91IG1heSBoYXZlIHNvbWVcbiAqIHN0cmFuZ2UgYXJ0aWZhY3RzIG90aGVyd2lzZS5cbiAqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gTGluZVNwYW5FbWJlZCh7XG4gICAgcGF0aCxcbiAgICBzdGFydCxcbiAgICBlbmQsXG4gICAgZXhwbGFpbixcbiAgICBzaG93RXhwbGFpbiA9IHRydWUsXG59OiB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgZXhwbGFpbj86IHN0cmluZztcbiAgICBzaG93RXhwbGFpbj86IGJvb2xlYW47XG59KSB7XG4gICAgY29uc3QgY29udGVudCA9IHVzZUxpbmVTcGFuKHBhdGgsIHN0YXJ0LCBlbmQpO1xuICAgIGNvbnN0IGV4cGxhaW5lciA9IGV4cGxhaW4gPz8gYCR7Z2V0RmlsZVRpdGxlKHBhdGgpfSAoJHtzdGFydH0gLSAke2VuZH0pYDtcblxuICAgIC8vIFRvIGFsbG93IGZvciB0aGUgZXhwbGFpbmVyIHRvIGJlIGNsaWNrZWQgb24gdG8gbmF2aWdhdGUgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLlxuICAgIGNvbnN0IHdvcmtzcGFjZSA9IHVzZUNvbnRleHQoQVBQX0NPTlRFWFQpPy53b3Jrc3BhY2U7XG4gICAgY29uc3Qgb25FeHBsYWluQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB3b3Jrc3BhY2U/Lm9wZW5MaW5rVGV4dChwYXRoLCBwYXRoLCBldmVudC5zaGlmdEtleSksXG4gICAgICAgIFtwYXRoXVxuICAgICk7XG5cbiAgICBzd2l0Y2ggKGNvbnRlbnQudHlwZSkge1xuICAgICAgICBjYXNlIFwibG9hZGluZ1wiOlxuICAgICAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT17YFJlYWRpbmcgJHtwYXRofSAoJHtzdGFydH0gLSAke2VuZH0pYH0gLz47XG4gICAgICAgIGNhc2UgXCJmaWxlLW5vdC1mb3VuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT17YENvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdCBwYXRoOiAke2NvbnRlbnQucGF0aH1gfSAvPjtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6XG4gICAgICAgICAgICByZXR1cm4gPEVycm9yTWVzc2FnZSBtZXNzYWdlPXtjb250ZW50Lm1lc3NhZ2V9IC8+O1xuICAgICAgICBjYXNlIFwibG9hZGVkXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtc3Bhbi1lbWJlZFwiPlxuICAgICAgICAgICAgICAgICAgICB7c2hvd0V4cGxhaW4gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZW1iZWQtc291cmNlXCIgb25DbGljaz17b25FeHBsYWluQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHBsYWluZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxNYXJrZG93biBjb250ZW50PXtjb250ZW50LmNvbnRlbnR9IGlubGluZT17ZmFsc2V9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqIFN0YXRlIHRyYWNraW5nIGZvciBsb2FkaW5nIGEgbGluZSBzcGFuIGFzeW5jaHJvbm91c2x5LiAqL1xuZXhwb3J0IHR5cGUgTGluZVNwYW5Db250ZW50ID1cbiAgICB8IHsgdHlwZTogXCJsb2FkaW5nXCIgfVxuICAgIHwgeyB0eXBlOiBcImZpbGUtbm90LWZvdW5kXCI7IHBhdGg6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiZXJyb3JcIjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogXCJsb2FkZWRcIjsgY29udGVudDogc3RyaW5nIH07XG5cbi8qKiBVdGlsaXR5IGhvb2sgd2hpY2ggbG9hZHMgcGF0aFtzdGFydC4uZW5kKSBhcyBsb25nIGFzIHRoZSB0YXJnZXQgZmlsZSBleGlzdHMuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMaW5lU3BhbihwYXRoOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogTGluZVNwYW5Db250ZW50IHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBkYXRhY29yZSA9IHVzZUNvbnRleHQoREFUQUNPUkVfQ09OVEVYVCk7XG5cbiAgICBjb25zdCBbc3RhdGUsIHVwZGF0ZV0gPSB1c2VSZWR1Y2VyPExpbmVTcGFuQ29udGVudCwgTGluZVNwYW5Db250ZW50PihcbiAgICAgICAgKHN0YXRlLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gSWdub3JlIGFuIGVycm9yIHVwZGF0ZSB0aGF0IHdvdWxkIG92ZXJyaWRlIGEgdmFsaWQgY3VycmVudCBzdGF0ZTsgb3RoZXJ3aXNlLCB1cGRhdGUgdG8gdGhlIG5ldyBzdGF0ZS5cbiAgICAgICAgICAgIGlmIChzdGF0ZS50eXBlID09IFwibG9hZGVkXCIgJiYgZXZlbnQudHlwZSAhPT0gXCJsb2FkZWRcIikgcmV0dXJuIHN0YXRlO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gZXZlbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIHsgdHlwZTogXCJsb2FkaW5nXCIgfVxuICAgICk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlIHRoZSBjdXJyZW50IHBhdGggdG8gc2VlIGlmIGl0IHBvaW50cyB0byBhIHZhbGlkIGZpbGUuXG4gICAgICAgIGNvbnN0IGZpbGUgPSBhcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChwYXRoKTtcbiAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdXBkYXRlKHsgdHlwZTogXCJmaWxlLW5vdC1mb3VuZFwiLCBwYXRoOiBwYXRoIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGxvYWQgdGhlIGZpbGUgYXN5bmNocm9ub3VzbHkuXG4gICAgICAgIGRhdGFjb3JlXG4gICAgICAgICAgICAucmVhZChmaWxlKVxuICAgICAgICAgICAgLnRoZW4oKGNvbnRlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB1cGRhdGUoeyB0eXBlOiBcImxvYWRlZFwiLCBjb250ZW50OiBsaW5lUmFuZ2UoY29udGVudCwgc3RhcnQsIGVuZCkgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHVwZGF0ZSh7IHR5cGU6IFwiZXJyb3JcIiwgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0sIFtwYXRoLCBzdGFydCwgZW5kXSk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG59XG4iLCAiaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBTaW1wbGVFcnJvckJvdW5kYXJ5LCBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgRGF0YWNvcmVDb250ZXh0UHJvdmlkZXIgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IEFwcCwgTWFya2Rvd25SZW5kZXJDaGlsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRGF0YWNvcmVMb2NhbEFwaSB9IGZyb20gXCJhcGkvbG9jYWwtYXBpXCI7XG5pbXBvcnQgeyBoLCByZW5kZXIsIEZyYWdtZW50LCBWTm9kZSB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IHVubW91bnRDb21wb25lbnRBdE5vZGUgfSBmcm9tIFwicHJlYWN0L2NvbXBhdFwiO1xuaW1wb3J0IHsgU2NyaXB0TGFuZ3VhZ2UsIGFzeW5jRXZhbEluQ29udGV4dCwgdHJhbnNwaWxlIH0gZnJvbSBcInV0aWxzL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IExvYWRpbmdCb3VuZGFyeSwgU2NyaXB0Q29udGFpbmVyIH0gZnJvbSBcIi4vbG9hZGluZy1ib3VuZGFyeVwiO1xuaW1wb3J0IHsgRGF0YWNvcmUgfSBmcm9tIFwiaW5kZXgvZGF0YWNvcmVcIjtcblxuLyoqXG4gKiBSZW5kZXJzIGEgc2NyaXB0IGJ5IGV4ZWN1dGluZyBpdCBhbmQgaGFuZGluZyBpdCB0aGUgYXBwcm9wcmlhdGUgUmVhY3QgY29udGV4dCB0byBleGVjdXRlXG4gKiBhdXRvbWF0aWNhbGx5LlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmVKU1JlbmRlcmVyIGV4dGVuZHMgTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgcHJpdmF0ZSBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFwaTogRGF0YWNvcmVMb2NhbEFwaSxcbiAgICAgICAgcHVibGljIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIHB1YmxpYyBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBzY3JpcHQ6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGxhbmd1YWdlOiBTY3JpcHRMYW5ndWFnZVxuICAgICkge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvbmxvYWQoKSB7XG4gICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGFuZCBldmFsdWF0ZSB0aGUgc2NyaXB0IHRvIHByb2R1Y2UgZWl0aGVyIGEgcmVuZGVyYWJsZSBKU1ggb2JqZWN0IG9yIGEgZnVuY3Rpb24uXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwcmltaXRpdmVTY3JpcHQgPSB0cmFuc3BpbGUodGhpcy5zY3JpcHQsIHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGFzeW5jRXZhbEluQ29udGV4dChwcmltaXRpdmVTY3JpcHQsIHtcbiAgICAgICAgICAgICAgICAgICAgZGM6IHRoaXMuYXBpLFxuICAgICAgICAgICAgICAgICAgICBoOiBoLFxuICAgICAgICAgICAgICAgICAgICBGcmFnbWVudDogRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPERhdGFjb3JlQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIGFwcD17dGhpcy5hcGkuYXBwfVxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9e3RoaXN9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFjb3JlPXt0aGlzLmFwaS5jb3JlfVxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz17dGhpcy5hcGkuY29yZS5zZXR0aW5nc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDVVJSRU5UX0ZJTEVfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17dGhpcy5wYXRofT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVFcnJvckJvdW5kYXJ5IG1lc3NhZ2U9XCJUaGUgZGF0YWNvcmUgc2NyaXB0IGZhaWxlZCB0byBleGVjdXRlLlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgZGF0YWNvcmU9e3RoaXMuYXBpLmNvcmV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2NyaXB0Q29udGFpbmVyIGV4ZWN1dG9yPXtyZW5kZXJlcn0gc291cmNlUGF0aD17dGhpcy5wYXRofSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTG9hZGluZ0JvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TaW1wbGVFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICA8L0NVUlJFTlRfRklMRV9DT05URVhULlByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvRGF0YWNvcmVDb250ZXh0UHJvdmlkZXI+LFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgIDxFcnJvck1lc3NhZ2UgbWVzc2FnZT1cIkRhdGFjb3JlIGZhaWxlZCB0byByZW5kZXIgdGhlIGNvZGUgYmxvY2suXCIgZXJyb3I9e1wiXCIgKyBleH0gLz4sXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCkgdW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XG4gICAgfVxufVxuXG4vKiogQSB0cml2aWFsIHdyYXBwZXIgd2hpY2ggYWxsb3dzIGEgcmVhY3QgY29tcG9uZW50IHRvIGxpdmUgZm9yIHRoZSBkdXJhdGlvbiBvZiBhIGBNYXJrZG93blJlbmRlckNoaWxkYC4gKi9cbmV4cG9ydCBjbGFzcyBSZWFjdFJlbmRlcmVyIGV4dGVuZHMgTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgYXBwOiBBcHAsXG4gICAgICAgIHB1YmxpYyBkYXRhY29yZTogRGF0YWNvcmUsXG4gICAgICAgIHB1YmxpYyBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICBwdWJsaWMgc291cmNlUGF0aDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogVk5vZGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25sb2FkKCk6IHZvaWQge1xuICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICA8RGF0YWNvcmVDb250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICBhcHA9e3RoaXMuYXBwfVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudD17dGhpc31cbiAgICAgICAgICAgICAgICBkYXRhY29yZT17dGhpcy5kYXRhY29yZX1cbiAgICAgICAgICAgICAgICBzZXR0aW5ncz17dGhpcy5kYXRhY29yZS5zZXR0aW5nc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q1VSUkVOVF9GSUxFX0NPTlRFWFQuUHJvdmlkZXIgdmFsdWU9e3RoaXMuc291cmNlUGF0aH0+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgZGF0YWNvcmU9e3RoaXMuZGF0YWNvcmV9Pnt0aGlzLmVsZW1lbnR9PC9Mb2FkaW5nQm91bmRhcnk+XG4gICAgICAgICAgICAgICAgPC9DVVJSRU5UX0ZJTEVfQ09OVEVYVC5Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvRGF0YWNvcmVDb250ZXh0UHJvdmlkZXI+LFxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIHVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5jb250YWluZXIpO1xuICAgIH1cbn1cbiIsICJleHBvcnQgdmFyIENvbnRleHR1YWxLZXl3b3JkOyAoZnVuY3Rpb24gKENvbnRleHR1YWxLZXl3b3JkKSB7XG4gIGNvbnN0IE5PTkUgPSAwOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIk5PTkVcIl0gPSBOT05FXSA9IFwiTk9ORVwiO1xuICBjb25zdCBfYWJzdHJhY3QgPSBOT05FICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYWJzdHJhY3RcIl0gPSBfYWJzdHJhY3RdID0gXCJfYWJzdHJhY3RcIjtcbiAgY29uc3QgX2FjY2Vzc29yID0gX2Fic3RyYWN0ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYWNjZXNzb3JcIl0gPSBfYWNjZXNzb3JdID0gXCJfYWNjZXNzb3JcIjtcbiAgY29uc3QgX2FzID0gX2FjY2Vzc29yICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXNcIl0gPSBfYXNdID0gXCJfYXNcIjtcbiAgY29uc3QgX2Fzc2VydCA9IF9hcyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Fzc2VydFwiXSA9IF9hc3NlcnRdID0gXCJfYXNzZXJ0XCI7XG4gIGNvbnN0IF9hc3NlcnRzID0gX2Fzc2VydCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Fzc2VydHNcIl0gPSBfYXNzZXJ0c10gPSBcIl9hc3NlcnRzXCI7XG4gIGNvbnN0IF9hc3luYyA9IF9hc3NlcnRzICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXN5bmNcIl0gPSBfYXN5bmNdID0gXCJfYXN5bmNcIjtcbiAgY29uc3QgX2F3YWl0ID0gX2FzeW5jICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfYXdhaXRcIl0gPSBfYXdhaXRdID0gXCJfYXdhaXRcIjtcbiAgY29uc3QgX2NoZWNrcyA9IF9hd2FpdCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2NoZWNrc1wiXSA9IF9jaGVja3NdID0gXCJfY2hlY2tzXCI7XG4gIGNvbnN0IF9jb25zdHJ1Y3RvciA9IF9jaGVja3MgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9jb25zdHJ1Y3RvclwiXSA9IF9jb25zdHJ1Y3Rvcl0gPSBcIl9jb25zdHJ1Y3RvclwiO1xuICBjb25zdCBfZGVjbGFyZSA9IF9jb25zdHJ1Y3RvciArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2RlY2xhcmVcIl0gPSBfZGVjbGFyZV0gPSBcIl9kZWNsYXJlXCI7XG4gIGNvbnN0IF9lbnVtID0gX2RlY2xhcmUgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9lbnVtXCJdID0gX2VudW1dID0gXCJfZW51bVwiO1xuICBjb25zdCBfZXhwb3J0cyA9IF9lbnVtICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfZXhwb3J0c1wiXSA9IF9leHBvcnRzXSA9IFwiX2V4cG9ydHNcIjtcbiAgY29uc3QgX2Zyb20gPSBfZXhwb3J0cyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2Zyb21cIl0gPSBfZnJvbV0gPSBcIl9mcm9tXCI7XG4gIGNvbnN0IF9nZXQgPSBfZnJvbSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2dldFwiXSA9IF9nZXRdID0gXCJfZ2V0XCI7XG4gIGNvbnN0IF9nbG9iYWwgPSBfZ2V0ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfZ2xvYmFsXCJdID0gX2dsb2JhbF0gPSBcIl9nbG9iYWxcIjtcbiAgY29uc3QgX2ltcGxlbWVudHMgPSBfZ2xvYmFsICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfaW1wbGVtZW50c1wiXSA9IF9pbXBsZW1lbnRzXSA9IFwiX2ltcGxlbWVudHNcIjtcbiAgY29uc3QgX2luZmVyID0gX2ltcGxlbWVudHMgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9pbmZlclwiXSA9IF9pbmZlcl0gPSBcIl9pbmZlclwiO1xuICBjb25zdCBfaW50ZXJmYWNlID0gX2luZmVyICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfaW50ZXJmYWNlXCJdID0gX2ludGVyZmFjZV0gPSBcIl9pbnRlcmZhY2VcIjtcbiAgY29uc3QgX2lzID0gX2ludGVyZmFjZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2lzXCJdID0gX2lzXSA9IFwiX2lzXCI7XG4gIGNvbnN0IF9rZXlvZiA9IF9pcyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX2tleW9mXCJdID0gX2tleW9mXSA9IFwiX2tleW9mXCI7XG4gIGNvbnN0IF9taXhpbnMgPSBfa2V5b2YgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9taXhpbnNcIl0gPSBfbWl4aW5zXSA9IFwiX21peGluc1wiO1xuICBjb25zdCBfbW9kdWxlID0gX21peGlucyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX21vZHVsZVwiXSA9IF9tb2R1bGVdID0gXCJfbW9kdWxlXCI7XG4gIGNvbnN0IF9uYW1lc3BhY2UgPSBfbW9kdWxlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfbmFtZXNwYWNlXCJdID0gX25hbWVzcGFjZV0gPSBcIl9uYW1lc3BhY2VcIjtcbiAgY29uc3QgX29mID0gX25hbWVzcGFjZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX29mXCJdID0gX29mXSA9IFwiX29mXCI7XG4gIGNvbnN0IF9vcGFxdWUgPSBfb2YgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9vcGFxdWVcIl0gPSBfb3BhcXVlXSA9IFwiX29wYXF1ZVwiO1xuICBjb25zdCBfb3V0ID0gX29wYXF1ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX291dFwiXSA9IF9vdXRdID0gXCJfb3V0XCI7XG4gIGNvbnN0IF9vdmVycmlkZSA9IF9vdXQgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9vdmVycmlkZVwiXSA9IF9vdmVycmlkZV0gPSBcIl9vdmVycmlkZVwiO1xuICBjb25zdCBfcHJpdmF0ZSA9IF9vdmVycmlkZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3ByaXZhdGVcIl0gPSBfcHJpdmF0ZV0gPSBcIl9wcml2YXRlXCI7XG4gIGNvbnN0IF9wcm90ZWN0ZWQgPSBfcHJpdmF0ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3Byb3RlY3RlZFwiXSA9IF9wcm90ZWN0ZWRdID0gXCJfcHJvdGVjdGVkXCI7XG4gIGNvbnN0IF9wcm90byA9IF9wcm90ZWN0ZWQgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9wcm90b1wiXSA9IF9wcm90b10gPSBcIl9wcm90b1wiO1xuICBjb25zdCBfcHVibGljID0gX3Byb3RvICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfcHVibGljXCJdID0gX3B1YmxpY10gPSBcIl9wdWJsaWNcIjtcbiAgY29uc3QgX3JlYWRvbmx5ID0gX3B1YmxpYyArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3JlYWRvbmx5XCJdID0gX3JlYWRvbmx5XSA9IFwiX3JlYWRvbmx5XCI7XG4gIGNvbnN0IF9yZXF1aXJlID0gX3JlYWRvbmx5ICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfcmVxdWlyZVwiXSA9IF9yZXF1aXJlXSA9IFwiX3JlcXVpcmVcIjtcbiAgY29uc3QgX3NhdGlzZmllcyA9IF9yZXF1aXJlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfc2F0aXNmaWVzXCJdID0gX3NhdGlzZmllc10gPSBcIl9zYXRpc2ZpZXNcIjtcbiAgY29uc3QgX3NldCA9IF9zYXRpc2ZpZXMgKyAxOyBDb250ZXh0dWFsS2V5d29yZFtDb250ZXh0dWFsS2V5d29yZFtcIl9zZXRcIl0gPSBfc2V0XSA9IFwiX3NldFwiO1xuICBjb25zdCBfc3RhdGljID0gX3NldCArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3N0YXRpY1wiXSA9IF9zdGF0aWNdID0gXCJfc3RhdGljXCI7XG4gIGNvbnN0IF9zeW1ib2wgPSBfc3RhdGljICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfc3ltYm9sXCJdID0gX3N5bWJvbF0gPSBcIl9zeW1ib2xcIjtcbiAgY29uc3QgX3R5cGUgPSBfc3ltYm9sICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfdHlwZVwiXSA9IF90eXBlXSA9IFwiX3R5cGVcIjtcbiAgY29uc3QgX3VuaXF1ZSA9IF90eXBlICsgMTsgQ29udGV4dHVhbEtleXdvcmRbQ29udGV4dHVhbEtleXdvcmRbXCJfdW5pcXVlXCJdID0gX3VuaXF1ZV0gPSBcIl91bmlxdWVcIjtcbiAgY29uc3QgX3VzaW5nID0gX3VuaXF1ZSArIDE7IENvbnRleHR1YWxLZXl3b3JkW0NvbnRleHR1YWxLZXl3b3JkW1wiX3VzaW5nXCJdID0gX3VzaW5nXSA9IFwiX3VzaW5nXCI7XG59KShDb250ZXh0dWFsS2V5d29yZCB8fCAoQ29udGV4dHVhbEtleXdvcmQgPSB7fSkpO1xuIiwgIi8vIEdlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdCEgUnVuIFwieWFybiBnZW5lcmF0ZVwiIHRvIHJlLWdlbmVyYXRlIHRoaXMgZmlsZS5cbi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIEVudW0gb2YgYWxsIHRva2VuIHR5cGVzLCB3aXRoIGJpdCBmaWVsZHMgdG8gc2lnbmlmeSBtZWFuaW5nZnVsIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCB2YXIgVG9rZW5UeXBlOyAoZnVuY3Rpb24gKFRva2VuVHlwZSkge1xuICAvLyBQcmVjZWRlbmNlIDAgbWVhbnMgbm90IGFuIG9wZXJhdG9yOyBvdGhlcndpc2UgaXQgaXMgYSBwb3NpdGl2ZSBudW1iZXIgdXAgdG8gMTIuXG4gIGNvbnN0IFBSRUNFREVOQ0VfTUFTSyA9IDB4ZjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlBSRUNFREVOQ0VfTUFTS1wiXSA9IFBSRUNFREVOQ0VfTUFTS10gPSBcIlBSRUNFREVOQ0VfTUFTS1wiO1xuICBjb25zdCBJU19LRVlXT1JEID0gMSA8PCA0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSVNfS0VZV09SRFwiXSA9IElTX0tFWVdPUkRdID0gXCJJU19LRVlXT1JEXCI7XG4gIGNvbnN0IElTX0FTU0lHTiA9IDEgPDwgNTsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIklTX0FTU0lHTlwiXSA9IElTX0FTU0lHTl0gPSBcIklTX0FTU0lHTlwiO1xuICBjb25zdCBJU19SSUdIVF9BU1NPQ0lBVElWRSA9IDEgPDwgNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIklTX1JJR0hUX0FTU09DSUFUSVZFXCJdID0gSVNfUklHSFRfQVNTT0NJQVRJVkVdID0gXCJJU19SSUdIVF9BU1NPQ0lBVElWRVwiO1xuICBjb25zdCBJU19QUkVGSVggPSAxIDw8IDc7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJJU19QUkVGSVhcIl0gPSBJU19QUkVGSVhdID0gXCJJU19QUkVGSVhcIjtcbiAgY29uc3QgSVNfUE9TVEZJWCA9IDEgPDwgODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIklTX1BPU1RGSVhcIl0gPSBJU19QT1NURklYXSA9IFwiSVNfUE9TVEZJWFwiO1xuICBjb25zdCBJU19FWFBSRVNTSU9OX1NUQVJUID0gMSA8PCA5OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSVNfRVhQUkVTU0lPTl9TVEFSVFwiXSA9IElTX0VYUFJFU1NJT05fU1RBUlRdID0gXCJJU19FWFBSRVNTSU9OX1NUQVJUXCI7XG5cbiAgY29uc3QgbnVtID0gNTEyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibnVtXCJdID0gbnVtXSA9IFwibnVtXCI7IC8vIG51bSBzdGFydHNFeHByXG4gIGNvbnN0IGJpZ2ludCA9IDE1MzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiaWdpbnRcIl0gPSBiaWdpbnRdID0gXCJiaWdpbnRcIjsgLy8gYmlnaW50IHN0YXJ0c0V4cHJcbiAgY29uc3QgZGVjaW1hbCA9IDI1NjA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJkZWNpbWFsXCJdID0gZGVjaW1hbF0gPSBcImRlY2ltYWxcIjsgLy8gZGVjaW1hbCBzdGFydHNFeHByXG4gIGNvbnN0IHJlZ2V4cCA9IDM1ODQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJyZWdleHBcIl0gPSByZWdleHBdID0gXCJyZWdleHBcIjsgLy8gcmVnZXhwIHN0YXJ0c0V4cHJcbiAgY29uc3Qgc3RyaW5nID0gNDYwODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInN0cmluZ1wiXSA9IHN0cmluZ10gPSBcInN0cmluZ1wiOyAvLyBzdHJpbmcgc3RhcnRzRXhwclxuICBjb25zdCBuYW1lID0gNTYzMjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIm5hbWVcIl0gPSBuYW1lXSA9IFwibmFtZVwiOyAvLyBuYW1lIHN0YXJ0c0V4cHJcbiAgY29uc3QgZW9mID0gNjE0NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImVvZlwiXSA9IGVvZl0gPSBcImVvZlwiOyAvLyBlb2ZcbiAgY29uc3QgYnJhY2tldEwgPSA3NjgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYnJhY2tldExcIl0gPSBicmFja2V0TF0gPSBcImJyYWNrZXRMXCI7IC8vIFsgc3RhcnRzRXhwclxuICBjb25zdCBicmFja2V0UiA9IDgxOTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJicmFja2V0UlwiXSA9IGJyYWNrZXRSXSA9IFwiYnJhY2tldFJcIjsgLy8gXVxuICBjb25zdCBicmFjZUwgPSA5NzI4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYnJhY2VMXCJdID0gYnJhY2VMXSA9IFwiYnJhY2VMXCI7IC8vIHsgc3RhcnRzRXhwclxuICBjb25zdCBicmFjZUJhckwgPSAxMDc1MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJyYWNlQmFyTFwiXSA9IGJyYWNlQmFyTF0gPSBcImJyYWNlQmFyTFwiOyAvLyB7fCBzdGFydHNFeHByXG4gIGNvbnN0IGJyYWNlUiA9IDExMjY0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYnJhY2VSXCJdID0gYnJhY2VSXSA9IFwiYnJhY2VSXCI7IC8vIH1cbiAgY29uc3QgYnJhY2VCYXJSID0gMTIyODg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJicmFjZUJhclJcIl0gPSBicmFjZUJhclJdID0gXCJicmFjZUJhclJcIjsgLy8gfH1cbiAgY29uc3QgcGFyZW5MID0gMTM4MjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJwYXJlbkxcIl0gPSBwYXJlbkxdID0gXCJwYXJlbkxcIjsgLy8gKCBzdGFydHNFeHByXG4gIGNvbnN0IHBhcmVuUiA9IDE0MzM2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wicGFyZW5SXCJdID0gcGFyZW5SXSA9IFwicGFyZW5SXCI7IC8vIClcbiAgY29uc3QgY29tbWEgPSAxNTM2MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImNvbW1hXCJdID0gY29tbWFdID0gXCJjb21tYVwiOyAvLyAsXG4gIGNvbnN0IHNlbWkgPSAxNjM4NDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInNlbWlcIl0gPSBzZW1pXSA9IFwic2VtaVwiOyAvLyA7XG4gIGNvbnN0IGNvbG9uID0gMTc0MDg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJjb2xvblwiXSA9IGNvbG9uXSA9IFwiY29sb25cIjsgLy8gOlxuICBjb25zdCBkb3VibGVDb2xvbiA9IDE4NDMyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiZG91YmxlQ29sb25cIl0gPSBkb3VibGVDb2xvbl0gPSBcImRvdWJsZUNvbG9uXCI7IC8vIDo6XG4gIGNvbnN0IGRvdCA9IDE5NDU2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiZG90XCJdID0gZG90XSA9IFwiZG90XCI7IC8vIC5cbiAgY29uc3QgcXVlc3Rpb24gPSAyMDQ4MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInF1ZXN0aW9uXCJdID0gcXVlc3Rpb25dID0gXCJxdWVzdGlvblwiOyAvLyA/XG4gIGNvbnN0IHF1ZXN0aW9uRG90ID0gMjE1MDQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJxdWVzdGlvbkRvdFwiXSA9IHF1ZXN0aW9uRG90XSA9IFwicXVlc3Rpb25Eb3RcIjsgLy8gPy5cbiAgY29uc3QgYXJyb3cgPSAyMjUyODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImFycm93XCJdID0gYXJyb3ddID0gXCJhcnJvd1wiOyAvLyA9PlxuICBjb25zdCB0ZW1wbGF0ZSA9IDIzNTUyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1widGVtcGxhdGVcIl0gPSB0ZW1wbGF0ZV0gPSBcInRlbXBsYXRlXCI7IC8vIHRlbXBsYXRlXG4gIGNvbnN0IGVsbGlwc2lzID0gMjQ1NzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJlbGxpcHNpc1wiXSA9IGVsbGlwc2lzXSA9IFwiZWxsaXBzaXNcIjsgLy8gLi4uXG4gIGNvbnN0IGJhY2tRdW90ZSA9IDI1NjAwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYmFja1F1b3RlXCJdID0gYmFja1F1b3RlXSA9IFwiYmFja1F1b3RlXCI7IC8vIGBcbiAgY29uc3QgZG9sbGFyQnJhY2VMID0gMjcxMzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJkb2xsYXJCcmFjZUxcIl0gPSBkb2xsYXJCcmFjZUxdID0gXCJkb2xsYXJCcmFjZUxcIjsgLy8gJHsgc3RhcnRzRXhwclxuICBjb25zdCBhdCA9IDI3NjQ4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYXRcIl0gPSBhdF0gPSBcImF0XCI7IC8vIEBcbiAgY29uc3QgaGFzaCA9IDI5MTg0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiaGFzaFwiXSA9IGhhc2hdID0gXCJoYXNoXCI7IC8vICMgc3RhcnRzRXhwclxuICBjb25zdCBlcSA9IDI5NzI4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiZXFcIl0gPSBlcV0gPSBcImVxXCI7IC8vID0gaXNBc3NpZ25cbiAgY29uc3QgYXNzaWduID0gMzA3NTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJhc3NpZ25cIl0gPSBhc3NpZ25dID0gXCJhc3NpZ25cIjsgLy8gXz0gaXNBc3NpZ25cbiAgY29uc3QgcHJlSW5jRGVjID0gMzI2NDA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJwcmVJbmNEZWNcIl0gPSBwcmVJbmNEZWNdID0gXCJwcmVJbmNEZWNcIjsgLy8gKysvLS0gcHJlZml4IHBvc3RmaXggc3RhcnRzRXhwclxuICBjb25zdCBwb3N0SW5jRGVjID0gMzM2NjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJwb3N0SW5jRGVjXCJdID0gcG9zdEluY0RlY10gPSBcInBvc3RJbmNEZWNcIjsgLy8gKysvLS0gcHJlZml4IHBvc3RmaXggc3RhcnRzRXhwclxuICBjb25zdCBiYW5nID0gMzQ0MzI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiYW5nXCJdID0gYmFuZ10gPSBcImJhbmdcIjsgLy8gISBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCB0aWxkZSA9IDM1NDU2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1widGlsZGVcIl0gPSB0aWxkZV0gPSBcInRpbGRlXCI7IC8vIH4gcHJlZml4IHN0YXJ0c0V4cHJcbiAgY29uc3QgcGlwZWxpbmUgPSAzNTg0MTsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInBpcGVsaW5lXCJdID0gcGlwZWxpbmVdID0gXCJwaXBlbGluZVwiOyAvLyB8PiBwcmVjOjFcbiAgY29uc3QgbnVsbGlzaENvYWxlc2NpbmcgPSAzNjg2NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIm51bGxpc2hDb2FsZXNjaW5nXCJdID0gbnVsbGlzaENvYWxlc2NpbmddID0gXCJudWxsaXNoQ29hbGVzY2luZ1wiOyAvLyA/PyBwcmVjOjJcbiAgY29uc3QgbG9naWNhbE9SID0gMzc4OTA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJsb2dpY2FsT1JcIl0gPSBsb2dpY2FsT1JdID0gXCJsb2dpY2FsT1JcIjsgLy8gfHwgcHJlYzoyXG4gIGNvbnN0IGxvZ2ljYWxBTkQgPSAzODkxNTsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImxvZ2ljYWxBTkRcIl0gPSBsb2dpY2FsQU5EXSA9IFwibG9naWNhbEFORFwiOyAvLyAmJiBwcmVjOjNcbiAgY29uc3QgYml0d2lzZU9SID0gMzk5NDA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiaXR3aXNlT1JcIl0gPSBiaXR3aXNlT1JdID0gXCJiaXR3aXNlT1JcIjsgLy8gfCBwcmVjOjRcbiAgY29uc3QgYml0d2lzZVhPUiA9IDQwOTY1OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYml0d2lzZVhPUlwiXSA9IGJpdHdpc2VYT1JdID0gXCJiaXR3aXNlWE9SXCI7IC8vIF4gcHJlYzo1XG4gIGNvbnN0IGJpdHdpc2VBTkQgPSA0MTk5MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImJpdHdpc2VBTkRcIl0gPSBiaXR3aXNlQU5EXSA9IFwiYml0d2lzZUFORFwiOyAvLyAmIHByZWM6NlxuICBjb25zdCBlcXVhbGl0eSA9IDQzMDE1OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiZXF1YWxpdHlcIl0gPSBlcXVhbGl0eV0gPSBcImVxdWFsaXR5XCI7IC8vID09LyE9IHByZWM6N1xuICBjb25zdCBsZXNzVGhhbiA9IDQ0MDQwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibGVzc1RoYW5cIl0gPSBsZXNzVGhhbl0gPSBcImxlc3NUaGFuXCI7IC8vIDwgcHJlYzo4XG4gIGNvbnN0IGdyZWF0ZXJUaGFuID0gNDUwNjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJncmVhdGVyVGhhblwiXSA9IGdyZWF0ZXJUaGFuXSA9IFwiZ3JlYXRlclRoYW5cIjsgLy8gPiBwcmVjOjhcbiAgY29uc3QgcmVsYXRpb25hbE9yRXF1YWwgPSA0NjA4ODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcInJlbGF0aW9uYWxPckVxdWFsXCJdID0gcmVsYXRpb25hbE9yRXF1YWxdID0gXCJyZWxhdGlvbmFsT3JFcXVhbFwiOyAvLyA8PS8+PSBwcmVjOjhcbiAgY29uc3QgYml0U2hpZnRMID0gNDcxMTM7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJiaXRTaGlmdExcIl0gPSBiaXRTaGlmdExdID0gXCJiaXRTaGlmdExcIjsgLy8gPDwgcHJlYzo5XG4gIGNvbnN0IGJpdFNoaWZ0UiA9IDQ4MTM3OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiYml0U2hpZnRSXCJdID0gYml0U2hpZnRSXSA9IFwiYml0U2hpZnRSXCI7IC8vID4+Lz4+PiBwcmVjOjlcbiAgY29uc3QgcGx1cyA9IDQ5ODAyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wicGx1c1wiXSA9IHBsdXNdID0gXCJwbHVzXCI7IC8vICsgcHJlYzoxMCBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCBtaW51cyA9IDUwODI2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wibWludXNcIl0gPSBtaW51c10gPSBcIm1pbnVzXCI7IC8vIC0gcHJlYzoxMCBwcmVmaXggc3RhcnRzRXhwclxuICBjb25zdCBtb2R1bG8gPSA1MTcyMzsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIm1vZHVsb1wiXSA9IG1vZHVsb10gPSBcIm1vZHVsb1wiOyAvLyAlIHByZWM6MTEgc3RhcnRzRXhwclxuICBjb25zdCBzdGFyID0gNTIyMzU7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJzdGFyXCJdID0gc3Rhcl0gPSBcInN0YXJcIjsgLy8gKiBwcmVjOjExXG4gIGNvbnN0IHNsYXNoID0gNTMyNTk7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJzbGFzaFwiXSA9IHNsYXNoXSA9IFwic2xhc2hcIjsgLy8gLyBwcmVjOjExXG4gIGNvbnN0IGV4cG9uZW50ID0gNTQzNDg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJleHBvbmVudFwiXSA9IGV4cG9uZW50XSA9IFwiZXhwb25lbnRcIjsgLy8gKiogcHJlYzoxMiByaWdodEFzc29jaWF0aXZlXG4gIGNvbnN0IGpzeE5hbWUgPSA1NTI5NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImpzeE5hbWVcIl0gPSBqc3hOYW1lXSA9IFwianN4TmFtZVwiOyAvLyBqc3hOYW1lXG4gIGNvbnN0IGpzeFRleHQgPSA1NjMyMDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcImpzeFRleHRcIl0gPSBqc3hUZXh0XSA9IFwianN4VGV4dFwiOyAvLyBqc3hUZXh0XG4gIGNvbnN0IGpzeEVtcHR5VGV4dCA9IDU3MzQ0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wianN4RW1wdHlUZXh0XCJdID0ganN4RW1wdHlUZXh0XSA9IFwianN4RW1wdHlUZXh0XCI7IC8vIGpzeEVtcHR5VGV4dFxuICBjb25zdCBqc3hUYWdTdGFydCA9IDU4ODgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wianN4VGFnU3RhcnRcIl0gPSBqc3hUYWdTdGFydF0gPSBcImpzeFRhZ1N0YXJ0XCI7IC8vIGpzeFRhZ1N0YXJ0IHN0YXJ0c0V4cHJcbiAgY29uc3QganN4VGFnRW5kID0gNTkzOTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJqc3hUYWdFbmRcIl0gPSBqc3hUYWdFbmRdID0gXCJqc3hUYWdFbmRcIjsgLy8ganN4VGFnRW5kXG4gIGNvbnN0IHR5cGVQYXJhbWV0ZXJTdGFydCA9IDYwOTI4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1widHlwZVBhcmFtZXRlclN0YXJ0XCJdID0gdHlwZVBhcmFtZXRlclN0YXJ0XSA9IFwidHlwZVBhcmFtZXRlclN0YXJ0XCI7IC8vIHR5cGVQYXJhbWV0ZXJTdGFydCBzdGFydHNFeHByXG4gIGNvbnN0IG5vbk51bGxBc3NlcnRpb24gPSA2MTQ0MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIm5vbk51bGxBc3NlcnRpb25cIl0gPSBub25OdWxsQXNzZXJ0aW9uXSA9IFwibm9uTnVsbEFzc2VydGlvblwiOyAvLyBub25OdWxsQXNzZXJ0aW9uXG4gIGNvbnN0IF9icmVhayA9IDYyNDgwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2JyZWFrXCJdID0gX2JyZWFrXSA9IFwiX2JyZWFrXCI7IC8vIGJyZWFrIGtleXdvcmRcbiAgY29uc3QgX2Nhc2UgPSA2MzUwNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9jYXNlXCJdID0gX2Nhc2VdID0gXCJfY2FzZVwiOyAvLyBjYXNlIGtleXdvcmRcbiAgY29uc3QgX2NhdGNoID0gNjQ1Mjg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfY2F0Y2hcIl0gPSBfY2F0Y2hdID0gXCJfY2F0Y2hcIjsgLy8gY2F0Y2gga2V5d29yZFxuICBjb25zdCBfY29udGludWUgPSA2NTU1MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9jb250aW51ZVwiXSA9IF9jb250aW51ZV0gPSBcIl9jb250aW51ZVwiOyAvLyBjb250aW51ZSBrZXl3b3JkXG4gIGNvbnN0IF9kZWJ1Z2dlciA9IDY2NTc2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2RlYnVnZ2VyXCJdID0gX2RlYnVnZ2VyXSA9IFwiX2RlYnVnZ2VyXCI7IC8vIGRlYnVnZ2VyIGtleXdvcmRcbiAgY29uc3QgX2RlZmF1bHQgPSA2NzYwMDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9kZWZhdWx0XCJdID0gX2RlZmF1bHRdID0gXCJfZGVmYXVsdFwiOyAvLyBkZWZhdWx0IGtleXdvcmRcbiAgY29uc3QgX2RvID0gNjg2MjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZG9cIl0gPSBfZG9dID0gXCJfZG9cIjsgLy8gZG8ga2V5d29yZFxuICBjb25zdCBfZWxzZSA9IDY5NjQ4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2Vsc2VcIl0gPSBfZWxzZV0gPSBcIl9lbHNlXCI7IC8vIGVsc2Uga2V5d29yZFxuICBjb25zdCBfZmluYWxseSA9IDcwNjcyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2ZpbmFsbHlcIl0gPSBfZmluYWxseV0gPSBcIl9maW5hbGx5XCI7IC8vIGZpbmFsbHkga2V5d29yZFxuICBjb25zdCBfZm9yID0gNzE2OTY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZm9yXCJdID0gX2Zvcl0gPSBcIl9mb3JcIjsgLy8gZm9yIGtleXdvcmRcbiAgY29uc3QgX2Z1bmN0aW9uID0gNzMyMzI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZnVuY3Rpb25cIl0gPSBfZnVuY3Rpb25dID0gXCJfZnVuY3Rpb25cIjsgLy8gZnVuY3Rpb24ga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9pZiA9IDczNzQ0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2lmXCJdID0gX2lmXSA9IFwiX2lmXCI7IC8vIGlmIGtleXdvcmRcbiAgY29uc3QgX3JldHVybiA9IDc0NzY4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3JldHVyblwiXSA9IF9yZXR1cm5dID0gXCJfcmV0dXJuXCI7IC8vIHJldHVybiBrZXl3b3JkXG4gIGNvbnN0IF9zd2l0Y2ggPSA3NTc5MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9zd2l0Y2hcIl0gPSBfc3dpdGNoXSA9IFwiX3N3aXRjaFwiOyAvLyBzd2l0Y2gga2V5d29yZFxuICBjb25zdCBfdGhyb3cgPSA3NzQ1NjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl90aHJvd1wiXSA9IF90aHJvd10gPSBcIl90aHJvd1wiOyAvLyB0aHJvdyBrZXl3b3JkIHByZWZpeCBzdGFydHNFeHByXG4gIGNvbnN0IF90cnkgPSA3Nzg0MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl90cnlcIl0gPSBfdHJ5XSA9IFwiX3RyeVwiOyAvLyB0cnkga2V5d29yZFxuICBjb25zdCBfdmFyID0gNzg4NjQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfdmFyXCJdID0gX3Zhcl0gPSBcIl92YXJcIjsgLy8gdmFyIGtleXdvcmRcbiAgY29uc3QgX2xldCA9IDc5ODg4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2xldFwiXSA9IF9sZXRdID0gXCJfbGV0XCI7IC8vIGxldCBrZXl3b3JkXG4gIGNvbnN0IF9jb25zdCA9IDgwOTEyOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2NvbnN0XCJdID0gX2NvbnN0XSA9IFwiX2NvbnN0XCI7IC8vIGNvbnN0IGtleXdvcmRcbiAgY29uc3QgX3doaWxlID0gODE5MzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfd2hpbGVcIl0gPSBfd2hpbGVdID0gXCJfd2hpbGVcIjsgLy8gd2hpbGUga2V5d29yZFxuICBjb25zdCBfd2l0aCA9IDgyOTYwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3dpdGhcIl0gPSBfd2l0aF0gPSBcIl93aXRoXCI7IC8vIHdpdGgga2V5d29yZFxuICBjb25zdCBfbmV3ID0gODQ0OTY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfbmV3XCJdID0gX25ld10gPSBcIl9uZXdcIjsgLy8gbmV3IGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfdGhpcyA9IDg1NTIwOyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3RoaXNcIl0gPSBfdGhpc10gPSBcIl90aGlzXCI7IC8vIHRoaXMga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9zdXBlciA9IDg2NTQ0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3N1cGVyXCJdID0gX3N1cGVyXSA9IFwiX3N1cGVyXCI7IC8vIHN1cGVyIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfY2xhc3MgPSA4NzU2ODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9jbGFzc1wiXSA9IF9jbGFzc10gPSBcIl9jbGFzc1wiOyAvLyBjbGFzcyBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2V4dGVuZHMgPSA4ODA4MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9leHRlbmRzXCJdID0gX2V4dGVuZHNdID0gXCJfZXh0ZW5kc1wiOyAvLyBleHRlbmRzIGtleXdvcmRcbiAgY29uc3QgX2V4cG9ydCA9IDg5MTA0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2V4cG9ydFwiXSA9IF9leHBvcnRdID0gXCJfZXhwb3J0XCI7IC8vIGV4cG9ydCBrZXl3b3JkXG4gIGNvbnN0IF9pbXBvcnQgPSA5MDY0MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9pbXBvcnRcIl0gPSBfaW1wb3J0XSA9IFwiX2ltcG9ydFwiOyAvLyBpbXBvcnQga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF95aWVsZCA9IDkxNjY0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX3lpZWxkXCJdID0gX3lpZWxkXSA9IFwiX3lpZWxkXCI7IC8vIHlpZWxkIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfbnVsbCA9IDkyNjg4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX251bGxcIl0gPSBfbnVsbF0gPSBcIl9udWxsXCI7IC8vIG51bGwga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF90cnVlID0gOTM3MTI7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfdHJ1ZVwiXSA9IF90cnVlXSA9IFwiX3RydWVcIjsgLy8gdHJ1ZSBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2ZhbHNlID0gOTQ3MzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfZmFsc2VcIl0gPSBfZmFsc2VdID0gXCJfZmFsc2VcIjsgLy8gZmFsc2Uga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9pbiA9IDk1MjU2OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2luXCJdID0gX2luXSA9IFwiX2luXCI7IC8vIGluIHByZWM6OCBrZXl3b3JkXG4gIGNvbnN0IF9pbnN0YW5jZW9mID0gOTYyODA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfaW5zdGFuY2VvZlwiXSA9IF9pbnN0YW5jZW9mXSA9IFwiX2luc3RhbmNlb2ZcIjsgLy8gaW5zdGFuY2VvZiBwcmVjOjgga2V5d29yZFxuICBjb25zdCBfdHlwZW9mID0gOTc5MzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfdHlwZW9mXCJdID0gX3R5cGVvZl0gPSBcIl90eXBlb2ZcIjsgLy8gdHlwZW9mIGtleXdvcmQgcHJlZml4IHN0YXJ0c0V4cHJcbiAgY29uc3QgX3ZvaWQgPSA5ODk2MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl92b2lkXCJdID0gX3ZvaWRdID0gXCJfdm9pZFwiOyAvLyB2b2lkIGtleXdvcmQgcHJlZml4IHN0YXJ0c0V4cHJcbiAgY29uc3QgX2RlbGV0ZSA9IDk5OTg0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2RlbGV0ZVwiXSA9IF9kZWxldGVdID0gXCJfZGVsZXRlXCI7IC8vIGRlbGV0ZSBrZXl3b3JkIHByZWZpeCBzdGFydHNFeHByXG4gIGNvbnN0IF9hc3luYyA9IDEwMDg4MDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9hc3luY1wiXSA9IF9hc3luY10gPSBcIl9hc3luY1wiOyAvLyBhc3luYyBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX2dldCA9IDEwMTkwNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9nZXRcIl0gPSBfZ2V0XSA9IFwiX2dldFwiOyAvLyBnZXQga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9zZXQgPSAxMDI5Mjg7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfc2V0XCJdID0gX3NldF0gPSBcIl9zZXRcIjsgLy8gc2V0IGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfZGVjbGFyZSA9IDEwMzk1MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9kZWNsYXJlXCJdID0gX2RlY2xhcmVdID0gXCJfZGVjbGFyZVwiOyAvLyBkZWNsYXJlIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfcmVhZG9ubHkgPSAxMDQ5NzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfcmVhZG9ubHlcIl0gPSBfcmVhZG9ubHldID0gXCJfcmVhZG9ubHlcIjsgLy8gcmVhZG9ubHkga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9hYnN0cmFjdCA9IDEwNjAwMDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9hYnN0cmFjdFwiXSA9IF9hYnN0cmFjdF0gPSBcIl9hYnN0cmFjdFwiOyAvLyBhYnN0cmFjdCBrZXl3b3JkIHN0YXJ0c0V4cHJcbiAgY29uc3QgX3N0YXRpYyA9IDEwNzAyNDsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9zdGF0aWNcIl0gPSBfc3RhdGljXSA9IFwiX3N0YXRpY1wiOyAvLyBzdGF0aWMga2V5d29yZCBzdGFydHNFeHByXG4gIGNvbnN0IF9wdWJsaWMgPSAxMDc1MzY7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfcHVibGljXCJdID0gX3B1YmxpY10gPSBcIl9wdWJsaWNcIjsgLy8gcHVibGljIGtleXdvcmRcbiAgY29uc3QgX3ByaXZhdGUgPSAxMDg1NjA7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfcHJpdmF0ZVwiXSA9IF9wcml2YXRlXSA9IFwiX3ByaXZhdGVcIjsgLy8gcHJpdmF0ZSBrZXl3b3JkXG4gIGNvbnN0IF9wcm90ZWN0ZWQgPSAxMDk1ODQ7IFRva2VuVHlwZVtUb2tlblR5cGVbXCJfcHJvdGVjdGVkXCJdID0gX3Byb3RlY3RlZF0gPSBcIl9wcm90ZWN0ZWRcIjsgLy8gcHJvdGVjdGVkIGtleXdvcmRcbiAgY29uc3QgX292ZXJyaWRlID0gMTEwNjA4OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX292ZXJyaWRlXCJdID0gX292ZXJyaWRlXSA9IFwiX292ZXJyaWRlXCI7IC8vIG92ZXJyaWRlIGtleXdvcmRcbiAgY29uc3QgX2FzID0gMTEyMTQ0OyBUb2tlblR5cGVbVG9rZW5UeXBlW1wiX2FzXCJdID0gX2FzXSA9IFwiX2FzXCI7IC8vIGFzIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfZW51bSA9IDExMzE2ODsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9lbnVtXCJdID0gX2VudW1dID0gXCJfZW51bVwiOyAvLyBlbnVtIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfdHlwZSA9IDExNDE5MjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl90eXBlXCJdID0gX3R5cGVdID0gXCJfdHlwZVwiOyAvLyB0eXBlIGtleXdvcmQgc3RhcnRzRXhwclxuICBjb25zdCBfaW1wbGVtZW50cyA9IDExNTIxNjsgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIl9pbXBsZW1lbnRzXCJdID0gX2ltcGxlbWVudHNdID0gXCJfaW1wbGVtZW50c1wiOyAvLyBpbXBsZW1lbnRzIGtleXdvcmQgc3RhcnRzRXhwclxufSkoVG9rZW5UeXBlIHx8IChUb2tlblR5cGUgPSB7fSkpO1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRva2VuVHlwZSh0b2tlblR5cGUpIHtcbiAgc3dpdGNoICh0b2tlblR5cGUpIHtcbiAgICBjYXNlIFRva2VuVHlwZS5udW06XG4gICAgICByZXR1cm4gXCJudW1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iaWdpbnQ6XG4gICAgICByZXR1cm4gXCJiaWdpbnRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5kZWNpbWFsOlxuICAgICAgcmV0dXJuIFwiZGVjaW1hbFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnJlZ2V4cDpcbiAgICAgIHJldHVybiBcInJlZ2V4cFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnN0cmluZzpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLm5hbWU6XG4gICAgICByZXR1cm4gXCJuYW1lXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZW9mOlxuICAgICAgcmV0dXJuIFwiZW9mXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYnJhY2tldEw6XG4gICAgICByZXR1cm4gXCJbXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYnJhY2tldFI6XG4gICAgICByZXR1cm4gXCJdXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYnJhY2VMOlxuICAgICAgcmV0dXJuIFwie1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNlQmFyTDpcbiAgICAgIHJldHVybiBcInt8XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYnJhY2VSOlxuICAgICAgcmV0dXJuIFwifVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmJyYWNlQmFyUjpcbiAgICAgIHJldHVybiBcInx9XCI7XG4gICAgY2FzZSBUb2tlblR5cGUucGFyZW5MOlxuICAgICAgcmV0dXJuIFwiKFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnBhcmVuUjpcbiAgICAgIHJldHVybiBcIilcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5jb21tYTpcbiAgICAgIHJldHVybiBcIixcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5zZW1pOlxuICAgICAgcmV0dXJuIFwiO1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmNvbG9uOlxuICAgICAgcmV0dXJuIFwiOlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmRvdWJsZUNvbG9uOlxuICAgICAgcmV0dXJuIFwiOjpcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5kb3Q6XG4gICAgICByZXR1cm4gXCIuXCI7XG4gICAgY2FzZSBUb2tlblR5cGUucXVlc3Rpb246XG4gICAgICByZXR1cm4gXCI/XCI7XG4gICAgY2FzZSBUb2tlblR5cGUucXVlc3Rpb25Eb3Q6XG4gICAgICByZXR1cm4gXCI/LlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmFycm93OlxuICAgICAgcmV0dXJuIFwiPT5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS50ZW1wbGF0ZTpcbiAgICAgIHJldHVybiBcInRlbXBsYXRlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZWxsaXBzaXM6XG4gICAgICByZXR1cm4gXCIuLi5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iYWNrUXVvdGU6XG4gICAgICByZXR1cm4gXCJgXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuZG9sbGFyQnJhY2VMOlxuICAgICAgcmV0dXJuIFwiJHtcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5hdDpcbiAgICAgIHJldHVybiBcIkBcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5oYXNoOlxuICAgICAgcmV0dXJuIFwiI1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmVxOlxuICAgICAgcmV0dXJuIFwiPVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmFzc2lnbjpcbiAgICAgIHJldHVybiBcIl89XCI7XG4gICAgY2FzZSBUb2tlblR5cGUucHJlSW5jRGVjOlxuICAgICAgcmV0dXJuIFwiKysvLS1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5wb3N0SW5jRGVjOlxuICAgICAgcmV0dXJuIFwiKysvLS1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iYW5nOlxuICAgICAgcmV0dXJuIFwiIVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnRpbGRlOlxuICAgICAgcmV0dXJuIFwiflwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnBpcGVsaW5lOlxuICAgICAgcmV0dXJuIFwifD5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5udWxsaXNoQ29hbGVzY2luZzpcbiAgICAgIHJldHVybiBcIj8/XCI7XG4gICAgY2FzZSBUb2tlblR5cGUubG9naWNhbE9SOlxuICAgICAgcmV0dXJuIFwifHxcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5sb2dpY2FsQU5EOlxuICAgICAgcmV0dXJuIFwiJiZcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iaXR3aXNlT1I6XG4gICAgICByZXR1cm4gXCJ8XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYml0d2lzZVhPUjpcbiAgICAgIHJldHVybiBcIl5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iaXR3aXNlQU5EOlxuICAgICAgcmV0dXJuIFwiJlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmVxdWFsaXR5OlxuICAgICAgcmV0dXJuIFwiPT0vIT1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5sZXNzVGhhbjpcbiAgICAgIHJldHVybiBcIjxcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5ncmVhdGVyVGhhbjpcbiAgICAgIHJldHVybiBcIj5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5yZWxhdGlvbmFsT3JFcXVhbDpcbiAgICAgIHJldHVybiBcIjw9Lz49XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuYml0U2hpZnRMOlxuICAgICAgcmV0dXJuIFwiPDxcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5iaXRTaGlmdFI6XG4gICAgICByZXR1cm4gXCI+Pi8+Pj5cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5wbHVzOlxuICAgICAgcmV0dXJuIFwiK1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLm1pbnVzOlxuICAgICAgcmV0dXJuIFwiLVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLm1vZHVsbzpcbiAgICAgIHJldHVybiBcIiVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5zdGFyOlxuICAgICAgcmV0dXJuIFwiKlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnNsYXNoOlxuICAgICAgcmV0dXJuIFwiL1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmV4cG9uZW50OlxuICAgICAgcmV0dXJuIFwiKipcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5qc3hOYW1lOlxuICAgICAgcmV0dXJuIFwianN4TmFtZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmpzeFRleHQ6XG4gICAgICByZXR1cm4gXCJqc3hUZXh0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuanN4RW1wdHlUZXh0OlxuICAgICAgcmV0dXJuIFwianN4RW1wdHlUZXh0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuanN4VGFnU3RhcnQ6XG4gICAgICByZXR1cm4gXCJqc3hUYWdTdGFydFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLmpzeFRhZ0VuZDpcbiAgICAgIHJldHVybiBcImpzeFRhZ0VuZFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLnR5cGVQYXJhbWV0ZXJTdGFydDpcbiAgICAgIHJldHVybiBcInR5cGVQYXJhbWV0ZXJTdGFydFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLm5vbk51bGxBc3NlcnRpb246XG4gICAgICByZXR1cm4gXCJub25OdWxsQXNzZXJ0aW9uXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2JyZWFrOlxuICAgICAgcmV0dXJuIFwiYnJlYWtcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fY2FzZTpcbiAgICAgIHJldHVybiBcImNhc2VcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fY2F0Y2g6XG4gICAgICByZXR1cm4gXCJjYXRjaFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9jb250aW51ZTpcbiAgICAgIHJldHVybiBcImNvbnRpbnVlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2RlYnVnZ2VyOlxuICAgICAgcmV0dXJuIFwiZGVidWdnZXJcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZGVmYXVsdDpcbiAgICAgIHJldHVybiBcImRlZmF1bHRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZG86XG4gICAgICByZXR1cm4gXCJkb1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9lbHNlOlxuICAgICAgcmV0dXJuIFwiZWxzZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9maW5hbGx5OlxuICAgICAgcmV0dXJuIFwiZmluYWxseVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9mb3I6XG4gICAgICByZXR1cm4gXCJmb3JcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZnVuY3Rpb246XG4gICAgICByZXR1cm4gXCJmdW5jdGlvblwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9pZjpcbiAgICAgIHJldHVybiBcImlmXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3JldHVybjpcbiAgICAgIHJldHVybiBcInJldHVyblwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9zd2l0Y2g6XG4gICAgICByZXR1cm4gXCJzd2l0Y2hcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdGhyb3c6XG4gICAgICByZXR1cm4gXCJ0aHJvd1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl90cnk6XG4gICAgICByZXR1cm4gXCJ0cnlcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdmFyOlxuICAgICAgcmV0dXJuIFwidmFyXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2xldDpcbiAgICAgIHJldHVybiBcImxldFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9jb25zdDpcbiAgICAgIHJldHVybiBcImNvbnN0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3doaWxlOlxuICAgICAgcmV0dXJuIFwid2hpbGVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fd2l0aDpcbiAgICAgIHJldHVybiBcIndpdGhcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fbmV3OlxuICAgICAgcmV0dXJuIFwibmV3XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3RoaXM6XG4gICAgICByZXR1cm4gXCJ0aGlzXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3N1cGVyOlxuICAgICAgcmV0dXJuIFwic3VwZXJcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fY2xhc3M6XG4gICAgICByZXR1cm4gXCJjbGFzc1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9leHRlbmRzOlxuICAgICAgcmV0dXJuIFwiZXh0ZW5kc1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9leHBvcnQ6XG4gICAgICByZXR1cm4gXCJleHBvcnRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5faW1wb3J0OlxuICAgICAgcmV0dXJuIFwiaW1wb3J0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3lpZWxkOlxuICAgICAgcmV0dXJuIFwieWllbGRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fbnVsbDpcbiAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdHJ1ZTpcbiAgICAgIHJldHVybiBcInRydWVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZmFsc2U6XG4gICAgICByZXR1cm4gXCJmYWxzZVwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9pbjpcbiAgICAgIHJldHVybiBcImluXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2luc3RhbmNlb2Y6XG4gICAgICByZXR1cm4gXCJpbnN0YW5jZW9mXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3R5cGVvZjpcbiAgICAgIHJldHVybiBcInR5cGVvZlwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl92b2lkOlxuICAgICAgcmV0dXJuIFwidm9pZFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9kZWxldGU6XG4gICAgICByZXR1cm4gXCJkZWxldGVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fYXN5bmM6XG4gICAgICByZXR1cm4gXCJhc3luY1wiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9nZXQ6XG4gICAgICByZXR1cm4gXCJnZXRcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fc2V0OlxuICAgICAgcmV0dXJuIFwic2V0XCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2RlY2xhcmU6XG4gICAgICByZXR1cm4gXCJkZWNsYXJlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3JlYWRvbmx5OlxuICAgICAgcmV0dXJuIFwicmVhZG9ubHlcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fYWJzdHJhY3Q6XG4gICAgICByZXR1cm4gXCJhYnN0cmFjdFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9zdGF0aWM6XG4gICAgICByZXR1cm4gXCJzdGF0aWNcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fcHVibGljOlxuICAgICAgcmV0dXJuIFwicHVibGljXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3ByaXZhdGU6XG4gICAgICByZXR1cm4gXCJwcml2YXRlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX3Byb3RlY3RlZDpcbiAgICAgIHJldHVybiBcInByb3RlY3RlZFwiO1xuICAgIGNhc2UgVG9rZW5UeXBlLl9vdmVycmlkZTpcbiAgICAgIHJldHVybiBcIm92ZXJyaWRlXCI7XG4gICAgY2FzZSBUb2tlblR5cGUuX2FzOlxuICAgICAgcmV0dXJuIFwiYXNcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fZW51bTpcbiAgICAgIHJldHVybiBcImVudW1cIjtcbiAgICBjYXNlIFRva2VuVHlwZS5fdHlwZTpcbiAgICAgIHJldHVybiBcInR5cGVcIjtcbiAgICBjYXNlIFRva2VuVHlwZS5faW1wbGVtZW50czpcbiAgICAgIHJldHVybiBcImltcGxlbWVudHNcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFwiXCI7XG4gIH1cbn1cbiIsICJcbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuL2tleXdvcmRzXCI7XG5pbXBvcnQgeyBUb2tlblR5cGUgYXMgdHR9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBTY29wZSB7XG4gIFxuICBcbiAgXG5cbiAgY29uc3RydWN0b3Ioc3RhcnRUb2tlbkluZGV4LCBlbmRUb2tlbkluZGV4LCBpc0Z1bmN0aW9uU2NvcGUpIHtcbiAgICB0aGlzLnN0YXJ0VG9rZW5JbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcbiAgICB0aGlzLmVuZFRva2VuSW5kZXggPSBlbmRUb2tlbkluZGV4O1xuICAgIHRoaXMuaXNGdW5jdGlvblNjb3BlID0gaXNGdW5jdGlvblNjb3BlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0ZVNuYXBzaG90IHtcbiAgY29uc3RydWN0b3IoXG4gICAgIHBvdGVudGlhbEFycm93QXQsXG4gICAgIG5vQW5vbkZ1bmN0aW9uVHlwZSxcbiAgICAgaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0LFxuICAgICB0b2tlbnNMZW5ndGgsXG4gICAgIHNjb3Blc0xlbmd0aCxcbiAgICAgcG9zLFxuICAgICB0eXBlLFxuICAgICBjb250ZXh0dWFsS2V5d29yZCxcbiAgICAgc3RhcnQsXG4gICAgIGVuZCxcbiAgICAgaXNUeXBlLFxuICAgICBzY29wZURlcHRoLFxuICAgICBlcnJvcixcbiAgKSB7O3RoaXMucG90ZW50aWFsQXJyb3dBdCA9IHBvdGVudGlhbEFycm93QXQ7dGhpcy5ub0Fub25GdW5jdGlvblR5cGUgPSBub0Fub25GdW5jdGlvblR5cGU7dGhpcy5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBpbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7dGhpcy50b2tlbnNMZW5ndGggPSB0b2tlbnNMZW5ndGg7dGhpcy5zY29wZXNMZW5ndGggPSBzY29wZXNMZW5ndGg7dGhpcy5wb3MgPSBwb3M7dGhpcy50eXBlID0gdHlwZTt0aGlzLmNvbnRleHR1YWxLZXl3b3JkID0gY29udGV4dHVhbEtleXdvcmQ7dGhpcy5zdGFydCA9IHN0YXJ0O3RoaXMuZW5kID0gZW5kO3RoaXMuaXNUeXBlID0gaXNUeXBlO3RoaXMuc2NvcGVEZXB0aCA9IHNjb3BlRGVwdGg7dGhpcy5lcnJvciA9IGVycm9yO31cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGUge2NvbnN0cnVjdG9yKCkgeyBTdGF0ZS5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0Ni5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQ3LmNhbGwodGhpcyk7U3RhdGUucHJvdG90eXBlLl9faW5pdDguY2FsbCh0aGlzKTtTdGF0ZS5wcm90b3R5cGUuX19pbml0OS5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQxMC5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQxMS5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQxMi5jYWxsKHRoaXMpO1N0YXRlLnByb3RvdHlwZS5fX2luaXQxMy5jYWxsKHRoaXMpOyB9XG4gIC8vIFVzZWQgdG8gc2lnbmlmeSB0aGUgc3RhcnQgb2YgYSBwb3RlbnRpYWwgYXJyb3cgZnVuY3Rpb25cbiAgX19pbml0KCkge3RoaXMucG90ZW50aWFsQXJyb3dBdCA9IC0xfVxuXG4gIC8vIFVzZWQgYnkgRmxvdyB0byBoYW5kbGUgYW4gZWRnZSBjYXNlIGludm9sdmluZyBmdW5jdGlvbiB0eXBlIHBhcnNpbmcuXG4gIF9faW5pdDIoKSB7dGhpcy5ub0Fub25GdW5jdGlvblR5cGUgPSBmYWxzZX1cblxuICAvLyBVc2VkIGJ5IFR5cGVTY3JpcHQgdG8gaGFuZGxlIGFtYmlndWl0aWVzIHdoZW4gcGFyc2luZyBjb25kaXRpb25hbCB0eXBlcy5cbiAgX19pbml0MygpIHt0aGlzLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IGZhbHNlfVxuXG4gIC8vIFRva2VuIHN0b3JlLlxuICBfX2luaXQ0KCkge3RoaXMudG9rZW5zID0gW119XG5cbiAgLy8gQXJyYXkgb2YgYWxsIG9ic2VydmVkIHNjb3Blcywgb3JkZXJlZCBieSB0aGVpciBlbmRpbmcgcG9zaXRpb24uXG4gIF9faW5pdDUoKSB7dGhpcy5zY29wZXMgPSBbXX1cblxuICAvLyBUaGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgdG9rZW5pemVyIGluIHRoZSBpbnB1dC5cbiAgX19pbml0NigpIHt0aGlzLnBvcyA9IDB9XG5cbiAgLy8gSW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdG9rZW4uXG4gIF9faW5pdDcoKSB7dGhpcy50eXBlID0gdHQuZW9mfVxuICBfX2luaXQ4KCkge3RoaXMuY29udGV4dHVhbEtleXdvcmQgPSBDb250ZXh0dWFsS2V5d29yZC5OT05FfVxuICBfX2luaXQ5KCkge3RoaXMuc3RhcnQgPSAwfVxuICBfX2luaXQxMCgpIHt0aGlzLmVuZCA9IDB9XG5cbiAgX19pbml0MTEoKSB7dGhpcy5pc1R5cGUgPSBmYWxzZX1cbiAgX19pbml0MTIoKSB7dGhpcy5zY29wZURlcHRoID0gMH1cblxuICAvKipcbiAgICogSWYgdGhlIHBhcnNlciBpcyBpbiBhbiBlcnJvciBzdGF0ZSwgdGhlbiB0aGUgdG9rZW4gaXMgYWx3YXlzIHR0LmVvZiBhbmQgYWxsIGZ1bmN0aW9ucyBjYW5cbiAgICoga2VlcCBleGVjdXRpbmcgYnV0IHNob3VsZCBiZSB3cml0dGVuIHNvIHRoZXkgZG9uJ3QgZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCBpbiB0aGlzIHNpdHVhdGlvbi5cbiAgICpcbiAgICogVGhpcyBhcHByb2FjaCwgY29tYmluZWQgd2l0aCB0aGUgYWJpbGl0eSB0byBzbmFwc2hvdCBhbmQgcmVzdG9yZSBzdGF0ZSwgYWxsb3dzIHVzIHRvIGltcGxlbWVudFxuICAgKiBiYWNrdHJhY2tpbmcgd2l0aG91dCBleGNlcHRpb25zIGFuZCB3aXRob3V0IG5lZWRpbmcgdG8gZXhwbGljaXRseSBwcm9wYWdhdGUgZXJyb3Igc3RhdGVzXG4gICAqIGV2ZXJ5d2hlcmUuXG4gICAqL1xuICBfX2luaXQxMygpIHt0aGlzLmVycm9yID0gbnVsbH1cblxuICBzbmFwc2hvdCgpIHtcbiAgICByZXR1cm4gbmV3IFN0YXRlU25hcHNob3QoXG4gICAgICB0aGlzLnBvdGVudGlhbEFycm93QXQsXG4gICAgICB0aGlzLm5vQW5vbkZ1bmN0aW9uVHlwZSxcbiAgICAgIHRoaXMuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0LFxuICAgICAgdGhpcy50b2tlbnMubGVuZ3RoLFxuICAgICAgdGhpcy5zY29wZXMubGVuZ3RoLFxuICAgICAgdGhpcy5wb3MsXG4gICAgICB0aGlzLnR5cGUsXG4gICAgICB0aGlzLmNvbnRleHR1YWxLZXl3b3JkLFxuICAgICAgdGhpcy5zdGFydCxcbiAgICAgIHRoaXMuZW5kLFxuICAgICAgdGhpcy5pc1R5cGUsXG4gICAgICB0aGlzLnNjb3BlRGVwdGgsXG4gICAgICB0aGlzLmVycm9yLFxuICAgICk7XG4gIH1cblxuICByZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KSB7XG4gICAgdGhpcy5wb3RlbnRpYWxBcnJvd0F0ID0gc25hcHNob3QucG90ZW50aWFsQXJyb3dBdDtcbiAgICB0aGlzLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IHNuYXBzaG90Lm5vQW5vbkZ1bmN0aW9uVHlwZTtcbiAgICB0aGlzLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IHNuYXBzaG90LmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dDtcbiAgICB0aGlzLnRva2Vucy5sZW5ndGggPSBzbmFwc2hvdC50b2tlbnNMZW5ndGg7XG4gICAgdGhpcy5zY29wZXMubGVuZ3RoID0gc25hcHNob3Quc2NvcGVzTGVuZ3RoO1xuICAgIHRoaXMucG9zID0gc25hcHNob3QucG9zO1xuICAgIHRoaXMudHlwZSA9IHNuYXBzaG90LnR5cGU7XG4gICAgdGhpcy5jb250ZXh0dWFsS2V5d29yZCA9IHNuYXBzaG90LmNvbnRleHR1YWxLZXl3b3JkO1xuICAgIHRoaXMuc3RhcnQgPSBzbmFwc2hvdC5zdGFydDtcbiAgICB0aGlzLmVuZCA9IHNuYXBzaG90LmVuZDtcbiAgICB0aGlzLmlzVHlwZSA9IHNuYXBzaG90LmlzVHlwZTtcbiAgICB0aGlzLnNjb3BlRGVwdGggPSBzbmFwc2hvdC5zY29wZURlcHRoO1xuICAgIHRoaXMuZXJyb3IgPSBzbmFwc2hvdC5lcnJvcjtcbiAgfVxufVxuIiwgImV4cG9ydCB2YXIgY2hhckNvZGVzOyAoZnVuY3Rpb24gKGNoYXJDb2Rlcykge1xuICBjb25zdCBiYWNrU3BhY2UgPSA4OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiYmFja1NwYWNlXCJdID0gYmFja1NwYWNlXSA9IFwiYmFja1NwYWNlXCI7XG4gIGNvbnN0IGxpbmVGZWVkID0gMTA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsaW5lRmVlZFwiXSA9IGxpbmVGZWVkXSA9IFwibGluZUZlZWRcIjsgLy8gICdcXG4nXG4gIGNvbnN0IHRhYiA9IDk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJ0YWJcIl0gPSB0YWJdID0gXCJ0YWJcIjsgLy8gICdcXHQnXG4gIGNvbnN0IGNhcnJpYWdlUmV0dXJuID0gMTM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJjYXJyaWFnZVJldHVyblwiXSA9IGNhcnJpYWdlUmV0dXJuXSA9IFwiY2FycmlhZ2VSZXR1cm5cIjsgLy8gICdcXHInXG4gIGNvbnN0IHNoaWZ0T3V0ID0gMTQ7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJzaGlmdE91dFwiXSA9IHNoaWZ0T3V0XSA9IFwic2hpZnRPdXRcIjtcbiAgY29uc3Qgc3BhY2UgPSAzMjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInNwYWNlXCJdID0gc3BhY2VdID0gXCJzcGFjZVwiO1xuICBjb25zdCBleGNsYW1hdGlvbk1hcmsgPSAzMzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImV4Y2xhbWF0aW9uTWFya1wiXSA9IGV4Y2xhbWF0aW9uTWFya10gPSBcImV4Y2xhbWF0aW9uTWFya1wiOyAvLyAgJyEnXG4gIGNvbnN0IHF1b3RhdGlvbk1hcmsgPSAzNDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInF1b3RhdGlvbk1hcmtcIl0gPSBxdW90YXRpb25NYXJrXSA9IFwicXVvdGF0aW9uTWFya1wiOyAvLyAgJ1wiJ1xuICBjb25zdCBudW1iZXJTaWduID0gMzU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJudW1iZXJTaWduXCJdID0gbnVtYmVyU2lnbl0gPSBcIm51bWJlclNpZ25cIjsgLy8gICcjJ1xuICBjb25zdCBkb2xsYXJTaWduID0gMzY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkb2xsYXJTaWduXCJdID0gZG9sbGFyU2lnbl0gPSBcImRvbGxhclNpZ25cIjsgLy8gICckJ1xuICBjb25zdCBwZXJjZW50U2lnbiA9IDM3OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wicGVyY2VudFNpZ25cIl0gPSBwZXJjZW50U2lnbl0gPSBcInBlcmNlbnRTaWduXCI7IC8vICAnJSdcbiAgY29uc3QgYW1wZXJzYW5kID0gMzg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJhbXBlcnNhbmRcIl0gPSBhbXBlcnNhbmRdID0gXCJhbXBlcnNhbmRcIjsgLy8gICcmJ1xuICBjb25zdCBhcG9zdHJvcGhlID0gMzk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJhcG9zdHJvcGhlXCJdID0gYXBvc3Ryb3BoZV0gPSBcImFwb3N0cm9waGVcIjsgLy8gICcnJ1xuICBjb25zdCBsZWZ0UGFyZW50aGVzaXMgPSA0MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxlZnRQYXJlbnRoZXNpc1wiXSA9IGxlZnRQYXJlbnRoZXNpc10gPSBcImxlZnRQYXJlbnRoZXNpc1wiOyAvLyAgJygnXG4gIGNvbnN0IHJpZ2h0UGFyZW50aGVzaXMgPSA0MTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInJpZ2h0UGFyZW50aGVzaXNcIl0gPSByaWdodFBhcmVudGhlc2lzXSA9IFwicmlnaHRQYXJlbnRoZXNpc1wiOyAvLyAgJyknXG4gIGNvbnN0IGFzdGVyaXNrID0gNDI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJhc3Rlcmlza1wiXSA9IGFzdGVyaXNrXSA9IFwiYXN0ZXJpc2tcIjsgLy8gICcqJ1xuICBjb25zdCBwbHVzU2lnbiA9IDQzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wicGx1c1NpZ25cIl0gPSBwbHVzU2lnbl0gPSBcInBsdXNTaWduXCI7IC8vICAnKydcbiAgY29uc3QgY29tbWEgPSA0NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImNvbW1hXCJdID0gY29tbWFdID0gXCJjb21tYVwiOyAvLyAgJywnXG4gIGNvbnN0IGRhc2ggPSA0NTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRhc2hcIl0gPSBkYXNoXSA9IFwiZGFzaFwiOyAvLyAgJy0nXG4gIGNvbnN0IGRvdCA9IDQ2OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZG90XCJdID0gZG90XSA9IFwiZG90XCI7IC8vICAnLidcbiAgY29uc3Qgc2xhc2ggPSA0NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInNsYXNoXCJdID0gc2xhc2hdID0gXCJzbGFzaFwiOyAvLyAgJy8nXG4gIGNvbnN0IGRpZ2l0MCA9IDQ4OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQwXCJdID0gZGlnaXQwXSA9IFwiZGlnaXQwXCI7IC8vICAnMCdcbiAgY29uc3QgZGlnaXQxID0gNDk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDFcIl0gPSBkaWdpdDFdID0gXCJkaWdpdDFcIjsgLy8gICcxJ1xuICBjb25zdCBkaWdpdDIgPSA1MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0MlwiXSA9IGRpZ2l0Ml0gPSBcImRpZ2l0MlwiOyAvLyAgJzInXG4gIGNvbnN0IGRpZ2l0MyA9IDUxOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQzXCJdID0gZGlnaXQzXSA9IFwiZGlnaXQzXCI7IC8vICAnMydcbiAgY29uc3QgZGlnaXQ0ID0gNTI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDRcIl0gPSBkaWdpdDRdID0gXCJkaWdpdDRcIjsgLy8gICc0J1xuICBjb25zdCBkaWdpdDUgPSA1MzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0NVwiXSA9IGRpZ2l0NV0gPSBcImRpZ2l0NVwiOyAvLyAgJzUnXG4gIGNvbnN0IGRpZ2l0NiA9IDU0OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQ2XCJdID0gZGlnaXQ2XSA9IFwiZGlnaXQ2XCI7IC8vICAnNidcbiAgY29uc3QgZGlnaXQ3ID0gNTU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJkaWdpdDdcIl0gPSBkaWdpdDddID0gXCJkaWdpdDdcIjsgLy8gICc3J1xuICBjb25zdCBkaWdpdDggPSA1NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImRpZ2l0OFwiXSA9IGRpZ2l0OF0gPSBcImRpZ2l0OFwiOyAvLyAgJzgnXG4gIGNvbnN0IGRpZ2l0OSA9IDU3OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZGlnaXQ5XCJdID0gZGlnaXQ5XSA9IFwiZGlnaXQ5XCI7IC8vICAnOSdcbiAgY29uc3QgY29sb24gPSA1ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImNvbG9uXCJdID0gY29sb25dID0gXCJjb2xvblwiOyAvLyAgJzonXG4gIGNvbnN0IHNlbWljb2xvbiA9IDU5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wic2VtaWNvbG9uXCJdID0gc2VtaWNvbG9uXSA9IFwic2VtaWNvbG9uXCI7IC8vICAnOydcbiAgY29uc3QgbGVzc1RoYW4gPSA2MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxlc3NUaGFuXCJdID0gbGVzc1RoYW5dID0gXCJsZXNzVGhhblwiOyAvLyAgJzwnXG4gIGNvbnN0IGVxdWFsc1RvID0gNjE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJlcXVhbHNUb1wiXSA9IGVxdWFsc1RvXSA9IFwiZXF1YWxzVG9cIjsgLy8gICc9J1xuICBjb25zdCBncmVhdGVyVGhhbiA9IDYyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiZ3JlYXRlclRoYW5cIl0gPSBncmVhdGVyVGhhbl0gPSBcImdyZWF0ZXJUaGFuXCI7IC8vICAnPidcbiAgY29uc3QgcXVlc3Rpb25NYXJrID0gNjM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJxdWVzdGlvbk1hcmtcIl0gPSBxdWVzdGlvbk1hcmtdID0gXCJxdWVzdGlvbk1hcmtcIjsgLy8gICc/J1xuICBjb25zdCBhdFNpZ24gPSA2NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImF0U2lnblwiXSA9IGF0U2lnbl0gPSBcImF0U2lnblwiOyAvLyAgJ0AnXG4gIGNvbnN0IHVwcGVyY2FzZUEgPSA2NTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUFcIl0gPSB1cHBlcmNhc2VBXSA9IFwidXBwZXJjYXNlQVwiOyAvLyAgJ0EnXG4gIGNvbnN0IHVwcGVyY2FzZUIgPSA2NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUJcIl0gPSB1cHBlcmNhc2VCXSA9IFwidXBwZXJjYXNlQlwiOyAvLyAgJ0InXG4gIGNvbnN0IHVwcGVyY2FzZUMgPSA2NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUNcIl0gPSB1cHBlcmNhc2VDXSA9IFwidXBwZXJjYXNlQ1wiOyAvLyAgJ0MnXG4gIGNvbnN0IHVwcGVyY2FzZUQgPSA2ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZURcIl0gPSB1cHBlcmNhc2VEXSA9IFwidXBwZXJjYXNlRFwiOyAvLyAgJ0QnXG4gIGNvbnN0IHVwcGVyY2FzZUUgPSA2OTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUVcIl0gPSB1cHBlcmNhc2VFXSA9IFwidXBwZXJjYXNlRVwiOyAvLyAgJ0UnXG4gIGNvbnN0IHVwcGVyY2FzZUYgPSA3MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUZcIl0gPSB1cHBlcmNhc2VGXSA9IFwidXBwZXJjYXNlRlwiOyAvLyAgJ0YnXG4gIGNvbnN0IHVwcGVyY2FzZUcgPSA3MTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUdcIl0gPSB1cHBlcmNhc2VHXSA9IFwidXBwZXJjYXNlR1wiOyAvLyAgJ0cnXG4gIGNvbnN0IHVwcGVyY2FzZUggPSA3MjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUhcIl0gPSB1cHBlcmNhc2VIXSA9IFwidXBwZXJjYXNlSFwiOyAvLyAgJ0gnXG4gIGNvbnN0IHVwcGVyY2FzZUkgPSA3MzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUlcIl0gPSB1cHBlcmNhc2VJXSA9IFwidXBwZXJjYXNlSVwiOyAvLyAgJ0knXG4gIGNvbnN0IHVwcGVyY2FzZUogPSA3NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUpcIl0gPSB1cHBlcmNhc2VKXSA9IFwidXBwZXJjYXNlSlwiOyAvLyAgJ0onXG4gIGNvbnN0IHVwcGVyY2FzZUsgPSA3NTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUtcIl0gPSB1cHBlcmNhc2VLXSA9IFwidXBwZXJjYXNlS1wiOyAvLyAgJ0snXG4gIGNvbnN0IHVwcGVyY2FzZUwgPSA3NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZUxcIl0gPSB1cHBlcmNhc2VMXSA9IFwidXBwZXJjYXNlTFwiOyAvLyAgJ0wnXG4gIGNvbnN0IHVwcGVyY2FzZU0gPSA3NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZU1cIl0gPSB1cHBlcmNhc2VNXSA9IFwidXBwZXJjYXNlTVwiOyAvLyAgJ00nXG4gIGNvbnN0IHVwcGVyY2FzZU4gPSA3ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZU5cIl0gPSB1cHBlcmNhc2VOXSA9IFwidXBwZXJjYXNlTlwiOyAvLyAgJ04nXG4gIGNvbnN0IHVwcGVyY2FzZU8gPSA3OTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZU9cIl0gPSB1cHBlcmNhc2VPXSA9IFwidXBwZXJjYXNlT1wiOyAvLyAgJ08nXG4gIGNvbnN0IHVwcGVyY2FzZVAgPSA4MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVBcIl0gPSB1cHBlcmNhc2VQXSA9IFwidXBwZXJjYXNlUFwiOyAvLyAgJ1AnXG4gIGNvbnN0IHVwcGVyY2FzZVEgPSA4MTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVFcIl0gPSB1cHBlcmNhc2VRXSA9IFwidXBwZXJjYXNlUVwiOyAvLyAgJ1EnXG4gIGNvbnN0IHVwcGVyY2FzZVIgPSA4MjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVJcIl0gPSB1cHBlcmNhc2VSXSA9IFwidXBwZXJjYXNlUlwiOyAvLyAgJ1InXG4gIGNvbnN0IHVwcGVyY2FzZVMgPSA4MzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVNcIl0gPSB1cHBlcmNhc2VTXSA9IFwidXBwZXJjYXNlU1wiOyAvLyAgJ1MnXG4gIGNvbnN0IHVwcGVyY2FzZVQgPSA4NDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVRcIl0gPSB1cHBlcmNhc2VUXSA9IFwidXBwZXJjYXNlVFwiOyAvLyAgJ1QnXG4gIGNvbnN0IHVwcGVyY2FzZVUgPSA4NTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVVcIl0gPSB1cHBlcmNhc2VVXSA9IFwidXBwZXJjYXNlVVwiOyAvLyAgJ1UnXG4gIGNvbnN0IHVwcGVyY2FzZVYgPSA4NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVZcIl0gPSB1cHBlcmNhc2VWXSA9IFwidXBwZXJjYXNlVlwiOyAvLyAgJ1YnXG4gIGNvbnN0IHVwcGVyY2FzZVcgPSA4NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVdcIl0gPSB1cHBlcmNhc2VXXSA9IFwidXBwZXJjYXNlV1wiOyAvLyAgJ1cnXG4gIGNvbnN0IHVwcGVyY2FzZVggPSA4ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVhcIl0gPSB1cHBlcmNhc2VYXSA9IFwidXBwZXJjYXNlWFwiOyAvLyAgJ1gnXG4gIGNvbnN0IHVwcGVyY2FzZVkgPSA4OTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVlcIl0gPSB1cHBlcmNhc2VZXSA9IFwidXBwZXJjYXNlWVwiOyAvLyAgJ1knXG4gIGNvbnN0IHVwcGVyY2FzZVogPSA5MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInVwcGVyY2FzZVpcIl0gPSB1cHBlcmNhc2VaXSA9IFwidXBwZXJjYXNlWlwiOyAvLyAgJ1onXG4gIGNvbnN0IGxlZnRTcXVhcmVCcmFja2V0ID0gOTE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsZWZ0U3F1YXJlQnJhY2tldFwiXSA9IGxlZnRTcXVhcmVCcmFja2V0XSA9IFwibGVmdFNxdWFyZUJyYWNrZXRcIjsgLy8gICdbJ1xuICBjb25zdCBiYWNrc2xhc2ggPSA5MjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImJhY2tzbGFzaFwiXSA9IGJhY2tzbGFzaF0gPSBcImJhY2tzbGFzaFwiOyAvLyAgJ1xcICAgICdcbiAgY29uc3QgcmlnaHRTcXVhcmVCcmFja2V0ID0gOTM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJyaWdodFNxdWFyZUJyYWNrZXRcIl0gPSByaWdodFNxdWFyZUJyYWNrZXRdID0gXCJyaWdodFNxdWFyZUJyYWNrZXRcIjsgLy8gICddJ1xuICBjb25zdCBjYXJldCA9IDk0OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wiY2FyZXRcIl0gPSBjYXJldF0gPSBcImNhcmV0XCI7IC8vICAnXidcbiAgY29uc3QgdW5kZXJzY29yZSA9IDk1OyBjaGFyQ29kZXNbY2hhckNvZGVzW1widW5kZXJzY29yZVwiXSA9IHVuZGVyc2NvcmVdID0gXCJ1bmRlcnNjb3JlXCI7IC8vICAnXydcbiAgY29uc3QgZ3JhdmVBY2NlbnQgPSA5NjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImdyYXZlQWNjZW50XCJdID0gZ3JhdmVBY2NlbnRdID0gXCJncmF2ZUFjY2VudFwiOyAvLyAgJ2AnXG4gIGNvbnN0IGxvd2VyY2FzZUEgPSA5NzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUFcIl0gPSBsb3dlcmNhc2VBXSA9IFwibG93ZXJjYXNlQVwiOyAvLyAgJ2EnXG4gIGNvbnN0IGxvd2VyY2FzZUIgPSA5ODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUJcIl0gPSBsb3dlcmNhc2VCXSA9IFwibG93ZXJjYXNlQlwiOyAvLyAgJ2InXG4gIGNvbnN0IGxvd2VyY2FzZUMgPSA5OTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUNcIl0gPSBsb3dlcmNhc2VDXSA9IFwibG93ZXJjYXNlQ1wiOyAvLyAgJ2MnXG4gIGNvbnN0IGxvd2VyY2FzZUQgPSAxMDA7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VEXCJdID0gbG93ZXJjYXNlRF0gPSBcImxvd2VyY2FzZURcIjsgLy8gICdkJ1xuICBjb25zdCBsb3dlcmNhc2VFID0gMTAxOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlRVwiXSA9IGxvd2VyY2FzZUVdID0gXCJsb3dlcmNhc2VFXCI7IC8vICAnZSdcbiAgY29uc3QgbG93ZXJjYXNlRiA9IDEwMjsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUZcIl0gPSBsb3dlcmNhc2VGXSA9IFwibG93ZXJjYXNlRlwiOyAvLyAgJ2YnXG4gIGNvbnN0IGxvd2VyY2FzZUcgPSAxMDM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VHXCJdID0gbG93ZXJjYXNlR10gPSBcImxvd2VyY2FzZUdcIjsgLy8gICdnJ1xuICBjb25zdCBsb3dlcmNhc2VIID0gMTA0OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlSFwiXSA9IGxvd2VyY2FzZUhdID0gXCJsb3dlcmNhc2VIXCI7IC8vICAnaCdcbiAgY29uc3QgbG93ZXJjYXNlSSA9IDEwNTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUlcIl0gPSBsb3dlcmNhc2VJXSA9IFwibG93ZXJjYXNlSVwiOyAvLyAgJ2knXG4gIGNvbnN0IGxvd2VyY2FzZUogPSAxMDY7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VKXCJdID0gbG93ZXJjYXNlSl0gPSBcImxvd2VyY2FzZUpcIjsgLy8gICdqJ1xuICBjb25zdCBsb3dlcmNhc2VLID0gMTA3OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlS1wiXSA9IGxvd2VyY2FzZUtdID0gXCJsb3dlcmNhc2VLXCI7IC8vICAnaydcbiAgY29uc3QgbG93ZXJjYXNlTCA9IDEwODsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZUxcIl0gPSBsb3dlcmNhc2VMXSA9IFwibG93ZXJjYXNlTFwiOyAvLyAgJ2wnXG4gIGNvbnN0IGxvd2VyY2FzZU0gPSAxMDk7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VNXCJdID0gbG93ZXJjYXNlTV0gPSBcImxvd2VyY2FzZU1cIjsgLy8gICdtJ1xuICBjb25zdCBsb3dlcmNhc2VOID0gMTEwOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlTlwiXSA9IGxvd2VyY2FzZU5dID0gXCJsb3dlcmNhc2VOXCI7IC8vICAnbidcbiAgY29uc3QgbG93ZXJjYXNlTyA9IDExMTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZU9cIl0gPSBsb3dlcmNhc2VPXSA9IFwibG93ZXJjYXNlT1wiOyAvLyAgJ28nXG4gIGNvbnN0IGxvd2VyY2FzZVAgPSAxMTI7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VQXCJdID0gbG93ZXJjYXNlUF0gPSBcImxvd2VyY2FzZVBcIjsgLy8gICdwJ1xuICBjb25zdCBsb3dlcmNhc2VRID0gMTEzOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlUVwiXSA9IGxvd2VyY2FzZVFdID0gXCJsb3dlcmNhc2VRXCI7IC8vICAncSdcbiAgY29uc3QgbG93ZXJjYXNlUiA9IDExNDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVJcIl0gPSBsb3dlcmNhc2VSXSA9IFwibG93ZXJjYXNlUlwiOyAvLyAgJ3InXG4gIGNvbnN0IGxvd2VyY2FzZVMgPSAxMTU7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VTXCJdID0gbG93ZXJjYXNlU10gPSBcImxvd2VyY2FzZVNcIjsgLy8gICdzJ1xuICBjb25zdCBsb3dlcmNhc2VUID0gMTE2OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlVFwiXSA9IGxvd2VyY2FzZVRdID0gXCJsb3dlcmNhc2VUXCI7IC8vICAndCdcbiAgY29uc3QgbG93ZXJjYXNlVSA9IDExNzsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVVcIl0gPSBsb3dlcmNhc2VVXSA9IFwibG93ZXJjYXNlVVwiOyAvLyAgJ3UnXG4gIGNvbnN0IGxvd2VyY2FzZVYgPSAxMTg7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VWXCJdID0gbG93ZXJjYXNlVl0gPSBcImxvd2VyY2FzZVZcIjsgLy8gICd2J1xuICBjb25zdCBsb3dlcmNhc2VXID0gMTE5OyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlV1wiXSA9IGxvd2VyY2FzZVddID0gXCJsb3dlcmNhc2VXXCI7IC8vICAndydcbiAgY29uc3QgbG93ZXJjYXNlWCA9IDEyMDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcImxvd2VyY2FzZVhcIl0gPSBsb3dlcmNhc2VYXSA9IFwibG93ZXJjYXNlWFwiOyAvLyAgJ3gnXG4gIGNvbnN0IGxvd2VyY2FzZVkgPSAxMjE7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsb3dlcmNhc2VZXCJdID0gbG93ZXJjYXNlWV0gPSBcImxvd2VyY2FzZVlcIjsgLy8gICd5J1xuICBjb25zdCBsb3dlcmNhc2VaID0gMTIyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibG93ZXJjYXNlWlwiXSA9IGxvd2VyY2FzZVpdID0gXCJsb3dlcmNhc2VaXCI7IC8vICAneidcbiAgY29uc3QgbGVmdEN1cmx5QnJhY2UgPSAxMjM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJsZWZ0Q3VybHlCcmFjZVwiXSA9IGxlZnRDdXJseUJyYWNlXSA9IFwibGVmdEN1cmx5QnJhY2VcIjsgLy8gICd7J1xuICBjb25zdCB2ZXJ0aWNhbEJhciA9IDEyNDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInZlcnRpY2FsQmFyXCJdID0gdmVydGljYWxCYXJdID0gXCJ2ZXJ0aWNhbEJhclwiOyAvLyAgJ3wnXG4gIGNvbnN0IHJpZ2h0Q3VybHlCcmFjZSA9IDEyNTsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcInJpZ2h0Q3VybHlCcmFjZVwiXSA9IHJpZ2h0Q3VybHlCcmFjZV0gPSBcInJpZ2h0Q3VybHlCcmFjZVwiOyAvLyAgJ30nXG4gIGNvbnN0IHRpbGRlID0gMTI2OyBjaGFyQ29kZXNbY2hhckNvZGVzW1widGlsZGVcIl0gPSB0aWxkZV0gPSBcInRpbGRlXCI7IC8vICAnfidcbiAgY29uc3Qgbm9uQnJlYWtpbmdTcGFjZSA9IDE2MDsgY2hhckNvZGVzW2NoYXJDb2Rlc1tcIm5vbkJyZWFraW5nU3BhY2VcIl0gPSBub25CcmVha2luZ1NwYWNlXSA9IFwibm9uQnJlYWtpbmdTcGFjZVwiO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taXJyZWd1bGFyLXdoaXRlc3BhY2VcbiAgY29uc3Qgb2doYW1TcGFjZU1hcmsgPSA1NzYwOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wib2doYW1TcGFjZU1hcmtcIl0gPSBvZ2hhbVNwYWNlTWFya10gPSBcIm9naGFtU3BhY2VNYXJrXCI7IC8vICdcdTE2ODAnXG4gIGNvbnN0IGxpbmVTZXBhcmF0b3IgPSA4MjMyOyBjaGFyQ29kZXNbY2hhckNvZGVzW1wibGluZVNlcGFyYXRvclwiXSA9IGxpbmVTZXBhcmF0b3JdID0gXCJsaW5lU2VwYXJhdG9yXCI7XG4gIGNvbnN0IHBhcmFncmFwaFNlcGFyYXRvciA9IDgyMzM7IGNoYXJDb2Rlc1tjaGFyQ29kZXNbXCJwYXJhZ3JhcGhTZXBhcmF0b3JcIl0gPSBwYXJhZ3JhcGhTZXBhcmF0b3JdID0gXCJwYXJhZ3JhcGhTZXBhcmF0b3JcIjtcbn0pKGNoYXJDb2RlcyB8fCAoY2hhckNvZGVzID0ge30pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGlnaXQoY29kZSkge1xuICByZXR1cm4gKFxuICAgIChjb2RlID49IGNoYXJDb2Rlcy5kaWdpdDAgJiYgY29kZSA8PSBjaGFyQ29kZXMuZGlnaXQ5KSB8fFxuICAgIChjb2RlID49IGNoYXJDb2Rlcy5sb3dlcmNhc2VBICYmIGNvZGUgPD0gY2hhckNvZGVzLmxvd2VyY2FzZUYpIHx8XG4gICAgKGNvZGUgPj0gY2hhckNvZGVzLnVwcGVyY2FzZUEgJiYgY29kZSA8PSBjaGFyQ29kZXMudXBwZXJjYXNlRilcbiAgKTtcbn1cbiIsICJpbXBvcnQgU3RhdGUgZnJvbSBcIi4uL3Rva2VuaXplci9zdGF0ZVwiO1xuaW1wb3J0IHtjaGFyQ29kZXN9IGZyb20gXCIuLi91dGlsL2NoYXJjb2Rlc1wiO1xuXG5leHBvcnQgbGV0IGlzSlNYRW5hYmxlZDtcbmV4cG9ydCBsZXQgaXNUeXBlU2NyaXB0RW5hYmxlZDtcbmV4cG9ydCBsZXQgaXNGbG93RW5hYmxlZDtcbmV4cG9ydCBsZXQgc3RhdGU7XG5leHBvcnQgbGV0IGlucHV0O1xuZXhwb3J0IGxldCBuZXh0Q29udGV4dElkO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dENvbnRleHRJZCgpIHtcbiAgcmV0dXJuIG5leHRDb250ZXh0SWQrKztcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBhdWdtZW50RXJyb3IoZXJyb3IpIHtcbiAgaWYgKFwicG9zXCIgaW4gZXJyb3IpIHtcbiAgICBjb25zdCBsb2MgPSBsb2NhdGlvbkZvckluZGV4KGVycm9yLnBvcyk7XG4gICAgZXJyb3IubWVzc2FnZSArPSBgICgke2xvYy5saW5lfToke2xvYy5jb2x1bW59KWA7XG4gICAgZXJyb3IubG9jID0gbG9jO1xuICB9XG4gIHJldHVybiBlcnJvcjtcbn1cblxuZXhwb3J0IGNsYXNzIExvYyB7XG4gIFxuICBcbiAgY29uc3RydWN0b3IobGluZSwgY29sdW1uKSB7XG4gICAgdGhpcy5saW5lID0gbGluZTtcbiAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb25Gb3JJbmRleChwb3MpIHtcbiAgbGV0IGxpbmUgPSAxO1xuICBsZXQgY29sdW1uID0gMTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3M7IGkrKykge1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KGkpID09PSBjaGFyQ29kZXMubGluZUZlZWQpIHtcbiAgICAgIGxpbmUrKztcbiAgICAgIGNvbHVtbiA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbHVtbisrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3IExvYyhsaW5lLCBjb2x1bW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdFBhcnNlcihcbiAgaW5wdXRDb2RlLFxuICBpc0pTWEVuYWJsZWRBcmcsXG4gIGlzVHlwZVNjcmlwdEVuYWJsZWRBcmcsXG4gIGlzRmxvd0VuYWJsZWRBcmcsXG4pIHtcbiAgaW5wdXQgPSBpbnB1dENvZGU7XG4gIHN0YXRlID0gbmV3IFN0YXRlKCk7XG4gIG5leHRDb250ZXh0SWQgPSAxO1xuICBpc0pTWEVuYWJsZWQgPSBpc0pTWEVuYWJsZWRBcmc7XG4gIGlzVHlwZVNjcmlwdEVuYWJsZWQgPSBpc1R5cGVTY3JpcHRFbmFibGVkQXJnO1xuICBpc0Zsb3dFbmFibGVkID0gaXNGbG93RW5hYmxlZEFyZztcbn1cbiIsICJpbXBvcnQge2VhdCwgZmluaXNoVG9rZW4sIGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkLCBtYXRjaCwgbmV4dFRva2VuU3RhcnR9IGZyb20gXCIuLi90b2tlbml6ZXIvaW5kZXhcIjtcblxuaW1wb3J0IHtmb3JtYXRUb2tlblR5cGUsIFRva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3Rva2VuaXplci90eXBlc1wiO1xuaW1wb3J0IHtjaGFyQ29kZXN9IGZyb20gXCIuLi91dGlsL2NoYXJjb2Rlc1wiO1xuaW1wb3J0IHtpbnB1dCwgc3RhdGV9IGZyb20gXCIuL2Jhc2VcIjtcblxuLy8gIyMgUGFyc2VyIHV0aWxpdGllc1xuXG4vLyBUZXN0cyB3aGV0aGVyIHBhcnNlZCB0b2tlbiBpcyBhIGNvbnRleHR1YWwga2V5d29yZC5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRleHR1YWwoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBjb250ZXh0dWFsS2V5d29yZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9va2FoZWFkQ29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICBjb25zdCBsID0gbG9va2FoZWFkVHlwZUFuZEtleXdvcmQoKTtcbiAgcmV0dXJuIGwudHlwZSA9PT0gdHQubmFtZSAmJiBsLmNvbnRleHR1YWxLZXl3b3JkID09PSBjb250ZXh0dWFsS2V5d29yZDtcbn1cblxuLy8gQ29uc3VtZXMgY29udGV4dHVhbCBrZXl3b3JkIGlmIHBvc3NpYmxlLlxuZXhwb3J0IGZ1bmN0aW9uIGVhdENvbnRleHR1YWwoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBjb250ZXh0dWFsS2V5d29yZCAmJiBlYXQodHQubmFtZSk7XG59XG5cbi8vIEFzc2VydHMgdGhhdCBmb2xsb3dpbmcgdG9rZW4gaXMgZ2l2ZW4gY29udGV4dHVhbCBrZXl3b3JkLlxuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdENvbnRleHR1YWwoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgaWYgKCFlYXRDb250ZXh0dWFsKGNvbnRleHR1YWxLZXl3b3JkKSkge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxufVxuXG4vLyBUZXN0IHdoZXRoZXIgYSBzZW1pY29sb24gY2FuIGJlIGluc2VydGVkIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuZXhwb3J0IGZ1bmN0aW9uIGNhbkluc2VydFNlbWljb2xvbigpIHtcbiAgcmV0dXJuIG1hdGNoKHR0LmVvZikgfHwgbWF0Y2godHQuYnJhY2VSKSB8fCBoYXNQcmVjZWRpbmdMaW5lQnJlYWsoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ByZWNlZGluZ0xpbmVCcmVhaygpIHtcbiAgY29uc3QgcHJldlRva2VuID0gc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXTtcbiAgY29uc3QgbGFzdFRva0VuZCA9IHByZXZUb2tlbiA/IHByZXZUb2tlbi5lbmQgOiAwO1xuICBmb3IgKGxldCBpID0gbGFzdFRva0VuZDsgaSA8IHN0YXRlLnN0YXJ0OyBpKyspIHtcbiAgICBjb25zdCBjb2RlID0gaW5wdXQuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjaGFyQ29kZXMubGluZUZlZWQgfHxcbiAgICAgIGNvZGUgPT09IGNoYXJDb2Rlcy5jYXJyaWFnZVJldHVybiB8fFxuICAgICAgY29kZSA9PT0gMHgyMDI4IHx8XG4gICAgICBjb2RlID09PSAweDIwMjlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNGb2xsb3dpbmdMaW5lQnJlYWsoKSB7XG4gIGNvbnN0IG5leHRTdGFydCA9IG5leHRUb2tlblN0YXJ0KCk7XG4gIGZvciAobGV0IGkgPSBzdGF0ZS5lbmQ7IGkgPCBuZXh0U3RhcnQ7IGkrKykge1xuICAgIGNvbnN0IGNvZGUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNoYXJDb2Rlcy5saW5lRmVlZCB8fFxuICAgICAgY29kZSA9PT0gY2hhckNvZGVzLmNhcnJpYWdlUmV0dXJuIHx8XG4gICAgICBjb2RlID09PSAweDIwMjggfHxcbiAgICAgIGNvZGUgPT09IDB4MjAyOVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGluZVRlcm1pbmF0b3IoKSB7XG4gIHJldHVybiBlYXQodHQuc2VtaSkgfHwgY2FuSW5zZXJ0U2VtaWNvbG9uKCk7XG59XG5cbi8vIENvbnN1bWUgYSBzZW1pY29sb24sIG9yLCBmYWlsaW5nIHRoYXQsIHNlZSBpZiB3ZSBhcmUgYWxsb3dlZCB0b1xuLy8gcHJldGVuZCB0aGF0IHRoZXJlIGlzIGEgc2VtaWNvbG9uIGF0IHRoaXMgcG9zaXRpb24uXG5leHBvcnQgZnVuY3Rpb24gc2VtaWNvbG9uKCkge1xuICBpZiAoIWlzTGluZVRlcm1pbmF0b3IoKSkge1xuICAgIHVuZXhwZWN0ZWQoJ1VuZXhwZWN0ZWQgdG9rZW4sIGV4cGVjdGVkIFwiO1wiJyk7XG4gIH1cbn1cblxuLy8gRXhwZWN0IGEgdG9rZW4gb2YgYSBnaXZlbiB0eXBlLiBJZiBmb3VuZCwgY29uc3VtZSBpdCwgb3RoZXJ3aXNlLFxuLy8gcmFpc2UgYW4gdW5leHBlY3RlZCB0b2tlbiBlcnJvciBhdCBnaXZlbiBwb3MuXG5leHBvcnQgZnVuY3Rpb24gZXhwZWN0KHR5cGUpIHtcbiAgY29uc3QgbWF0Y2hlZCA9IGVhdCh0eXBlKTtcbiAgaWYgKCFtYXRjaGVkKSB7XG4gICAgdW5leHBlY3RlZChgVW5leHBlY3RlZCB0b2tlbiwgZXhwZWN0ZWQgXCIke2Zvcm1hdFRva2VuVHlwZSh0eXBlKX1cImApO1xuICB9XG59XG5cbi8qKlxuICogVHJhbnNpdGlvbiB0aGUgcGFyc2VyIHRvIGFuIGVycm9yIHN0YXRlLiBBbGwgY29kZSBuZWVkcyB0byBiZSB3cml0dGVuIHRvIG5hdHVyYWxseSB1bndpbmQgaW4gdGhpc1xuICogc3RhdGUsIHdoaWNoIGFsbG93cyB1cyB0byBiYWNrdHJhY2sgd2l0aG91dCBleGNlcHRpb25zIGFuZCB3aXRob3V0IGVycm9yIHBsdW1iaW5nIGV2ZXJ5d2hlcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmV4cGVjdGVkKG1lc3NhZ2UgPSBcIlVuZXhwZWN0ZWQgdG9rZW5cIiwgcG9zID0gc3RhdGUuc3RhcnQpIHtcbiAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0IGVyciA9IG5ldyBTeW50YXhFcnJvcihtZXNzYWdlKTtcbiAgZXJyLnBvcyA9IHBvcztcbiAgc3RhdGUuZXJyb3IgPSBlcnI7XG4gIHN0YXRlLnBvcyA9IGlucHV0Lmxlbmd0aDtcbiAgZmluaXNoVG9rZW4odHQuZW9mKTtcbn1cbiIsICJpbXBvcnQge2NoYXJDb2Rlc30gZnJvbSBcIi4vY2hhcmNvZGVzXCI7XG5cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXdoaXRlLXNwYWNlXG5leHBvcnQgY29uc3QgV0hJVEVTUEFDRV9DSEFSUyA9IFtcbiAgMHgwMDA5LFxuICAweDAwMGIsXG4gIDB4MDAwYyxcbiAgY2hhckNvZGVzLnNwYWNlLFxuICBjaGFyQ29kZXMubm9uQnJlYWtpbmdTcGFjZSxcbiAgY2hhckNvZGVzLm9naGFtU3BhY2VNYXJrLFxuICAweDIwMDAsIC8vIEVOIFFVQURcbiAgMHgyMDAxLCAvLyBFTSBRVUFEXG4gIDB4MjAwMiwgLy8gRU4gU1BBQ0VcbiAgMHgyMDAzLCAvLyBFTSBTUEFDRVxuICAweDIwMDQsIC8vIFRIUkVFLVBFUi1FTSBTUEFDRVxuICAweDIwMDUsIC8vIEZPVVItUEVSLUVNIFNQQUNFXG4gIDB4MjAwNiwgLy8gU0lYLVBFUi1FTSBTUEFDRVxuICAweDIwMDcsIC8vIEZJR1VSRSBTUEFDRVxuICAweDIwMDgsIC8vIFBVTkNUVUFUSU9OIFNQQUNFXG4gIDB4MjAwOSwgLy8gVEhJTiBTUEFDRVxuICAweDIwMGEsIC8vIEhBSVIgU1BBQ0VcbiAgMHgyMDJmLCAvLyBOQVJST1cgTk8tQlJFQUsgU1BBQ0VcbiAgMHgyMDVmLCAvLyBNRURJVU0gTUFUSEVNQVRJQ0FMIFNQQUNFXG4gIDB4MzAwMCwgLy8gSURFT0dSQVBISUMgU1BBQ0VcbiAgMHhmZWZmLCAvLyBaRVJPIFdJRFRIIE5PLUJSRUFLIFNQQUNFXG5dO1xuXG5leHBvcnQgY29uc3Qgc2tpcFdoaXRlU3BhY2UgPSAvKD86XFxzfFxcL1xcLy4qfFxcL1xcKlteXSo/XFwqXFwvKSovZztcblxuZXhwb3J0IGNvbnN0IElTX1dISVRFU1BBQ0UgPSBuZXcgVWludDhBcnJheSg2NTUzNik7XG5mb3IgKGNvbnN0IGNoYXIgb2YgV0hJVEVTUEFDRV9DSEFSUykge1xuICBJU19XSElURVNQQUNFW2NoYXJdID0gMTtcbn1cbiIsICJpbXBvcnQge2NoYXJDb2Rlc30gZnJvbSBcIi4vY2hhcmNvZGVzXCI7XG5pbXBvcnQge1dISVRFU1BBQ0VfQ0hBUlN9IGZyb20gXCIuL3doaXRlc3BhY2VcIjtcblxuZnVuY3Rpb24gY29tcHV0ZUlzSWRlbnRpZmllckNoYXIoY29kZSkge1xuICBpZiAoY29kZSA8IDQ4KSByZXR1cm4gY29kZSA9PT0gMzY7XG4gIGlmIChjb2RlIDwgNTgpIHJldHVybiB0cnVlO1xuICBpZiAoY29kZSA8IDY1KSByZXR1cm4gZmFsc2U7XG4gIGlmIChjb2RlIDwgOTEpIHJldHVybiB0cnVlO1xuICBpZiAoY29kZSA8IDk3KSByZXR1cm4gY29kZSA9PT0gOTU7XG4gIGlmIChjb2RlIDwgMTIzKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGNvZGUgPCAxMjgpIHJldHVybiBmYWxzZTtcbiAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBub24tQVNDSUkgY2hhciBjb2RlLlwiKTtcbn1cblxuZXhwb3J0IGNvbnN0IElTX0lERU5USUZJRVJfQ0hBUiA9IG5ldyBVaW50OEFycmF5KDY1NTM2KTtcbmZvciAobGV0IGkgPSAwOyBpIDwgMTI4OyBpKyspIHtcbiAgSVNfSURFTlRJRklFUl9DSEFSW2ldID0gY29tcHV0ZUlzSWRlbnRpZmllckNoYXIoaSkgPyAxIDogMDtcbn1cbmZvciAobGV0IGkgPSAxMjg7IGkgPCA2NTUzNjsgaSsrKSB7XG4gIElTX0lERU5USUZJRVJfQ0hBUltpXSA9IDE7XG59XG4vLyBBc2lkZSBmcm9tIHdoaXRlc3BhY2UgYW5kIG5ld2xpbmVzLCBhbGwgY2hhcmFjdGVycyBvdXRzaWRlIHRoZSBBU0NJSSBzcGFjZSBhcmUgZWl0aGVyXG4vLyBpZGVudGlmaWVyIGNoYXJhY3RlcnMgb3IgaW52YWxpZC4gU2luY2Ugd2UncmUgbm90IHBlcmZvcm1pbmcgY29kZSB2YWxpZGF0aW9uLCB3ZSBjYW4ganVzdFxuLy8gdHJlYXQgYWxsIGludmFsaWQgY2hhcmFjdGVycyBhcyBpZGVudGlmaWVyIGNoYXJhY3RlcnMuXG5mb3IgKGNvbnN0IHdoaXRlc3BhY2VDaGFyIG9mIFdISVRFU1BBQ0VfQ0hBUlMpIHtcbiAgSVNfSURFTlRJRklFUl9DSEFSW3doaXRlc3BhY2VDaGFyXSA9IDA7XG59XG5JU19JREVOVElGSUVSX0NIQVJbMHgyMDI4XSA9IDA7XG5JU19JREVOVElGSUVSX0NIQVJbMHgyMDI5XSA9IDA7XG5cbmV4cG9ydCBjb25zdCBJU19JREVOVElGSUVSX1NUQVJUID0gSVNfSURFTlRJRklFUl9DSEFSLnNsaWNlKCk7XG5mb3IgKGxldCBudW1DaGFyID0gY2hhckNvZGVzLmRpZ2l0MDsgbnVtQ2hhciA8PSBjaGFyQ29kZXMuZGlnaXQ5OyBudW1DaGFyKyspIHtcbiAgSVNfSURFTlRJRklFUl9TVEFSVFtudW1DaGFyXSA9IDA7XG59XG4iLCAiLy8gR2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0ISBSdW4gXCJ5YXJuIGdlbmVyYXRlXCIgdG8gcmUtZ2VuZXJhdGUgdGhpcyBmaWxlLlxuaW1wb3J0IHtDb250ZXh0dWFsS2V5d29yZH0gZnJvbSBcIi4va2V5d29yZHNcIjtcbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vLyBwcmV0dGllci1pZ25vcmVcbmV4cG9ydCBjb25zdCBSRUFEX1dPUkRfVFJFRSA9IG5ldyBJbnQzMkFycmF5KFtcbiAgLy8gXCJcIlxuICAtMSwgMjcsIDc4MywgOTE4LCAxNzU1LCAyMzc2LCAyODYyLCAzNDgzLCAtMSwgMzY5OSwgLTEsIDQ2MTcsIDQ3NTIsIDQ4MzMsIDUxMzAsIDU1MDgsIDU5NDAsIC0xLCA2NDgwLCA2OTM5LCA3NzQ5LCA4MTgxLCA4NDUxLCA4NjEzLCAtMSwgODgyOSwgLTEsXG4gIC8vIFwiYVwiXG4gIC0xLCAtMSwgNTQsIDI0MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDMyLCAtMSwgLTEsIC0xLCA2NzUsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTA4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic3RcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhYnN0clwiXG4gIC0xLCAxNjIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic3RyYVwiXG4gIC0xLCAtMSwgLTEsIDE4OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFic3RyYWNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIxNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhYnN0cmFjdFwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNcIlxuICAtMSwgLTEsIC0xLCAyNzAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2NcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDI5NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2NlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNjZXNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzUxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2Nlc3NcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhY2Nlc3NvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDA1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYWNjZXNzb3JcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fYWNjZXNzb3IgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX2FzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ1OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1OTQsIC0xLFxuICAvLyBcImFzc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDg2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzc2VcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3NlclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTQwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzc2VydFwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9hc3NlcnQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTY3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3NlcnRzXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX2Fzc2VydHMgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzeVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjIxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImFzeW5cIlxuICAtMSwgLTEsIC0xLCA2NDgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhc3luY1wiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9hc3luYyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYXdcIlxuICAtMSwgNzAyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhd2FcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MjksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJhd2FpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3NTYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiYXdhaXRcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fYXdhaXQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJiclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJyZVwiXG4gIC0xLCA4NjQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImJyZWFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg5MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJicmVha1wiXG4gICh0dC5fYnJlYWsgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY1wiXG4gIC0xLCA5NDUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDExMDcsIC0xLCAtMSwgLTEsIDEyNDIsIC0xLCAtMSwgMTM1MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDk3MiwgMTAyNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjYXNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDk5OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjYXNlXCJcbiAgKHR0Ll9jYXNlIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNhdFwiXG4gIC0xLCAtMSwgLTEsIDEwNTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjYXRjXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMDgwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImNhdGNoXCJcbiAgKHR0Ll9jYXRjaCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTEzNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVcIlxuICAtMSwgLTEsIC0xLCAxMTYxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2hlY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTE4OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVja1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMjE1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjaGVja3NcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fY2hlY2tzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjbFwiXG4gIC0xLCAxMjY5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjbGFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTI5NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY2xhc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxMzIzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjbGFzc1wiXG4gICh0dC5fY2xhc3MgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDEzNzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE0MDQsIDE2MjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTQzMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdFwiXG4gICh0dC5fY29uc3QgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE0NTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNDg1LCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uc3RydVwiXG4gIC0xLCAtMSwgLTEsIDE1MTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJ1Y1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTUzOSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJ1Y3RcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNTY2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29uc3RydWN0b1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE1OTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb25zdHJ1Y3RvclwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9jb25zdHJ1Y3RvciA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29udFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE2NDcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTY3NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxNzAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiY29udGludVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTcyOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJjb250aW51ZVwiXG4gICh0dC5fY29udGludWUgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTc4MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjM0OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlXCJcbiAgLTEsIC0xLCAxODA5LCAxOTcxLCAtMSwgLTEsIDIxMDYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjI0MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE4MzYsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWJ1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE4NjMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYnVnXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE4OTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYnVnZ1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTkxNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWJ1Z2dlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTk0NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImRlYnVnZ2VyXCJcbiAgKHR0Ll9kZWJ1Z2dlciA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAxOTk4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVjbFwiXG4gIC0xLCAyMDI1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWNsYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIwNTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWNsYXJcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDIwNzksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVjbGFyZVwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWZcIlxuICAtMSwgMjEzMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVmYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIxNjAsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWZhdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIxODcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWZhdWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIyMTQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVmYXVsdFwiXG4gICh0dC5fZGVmYXVsdCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDIyNjgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZGVsZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjI5NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWxldFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjMyMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkZWxldGVcIlxuICAodHQuX2RlbGV0ZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJkb1wiXG4gICh0dC5fZG8gPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI0MDMsIC0xLCAyNDg0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNTY1LCAtMSwgLTEsXG4gIC8vIFwiZWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjQzMCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZWxzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNDU3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImVsc2VcIlxuICAodHQuX2Vsc2UgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNTExLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZW51XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI1MzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImVudW1cIlxuICBDb250ZXh0dWFsS2V5d29yZC5fZW51bSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXhcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjU5MiwgLTEsIC0xLCAtMSwgMjcyNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHBcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNjE5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXhwb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI2NDYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHBvclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjY3MywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJleHBvcnRcIlxuICAodHQuX2V4cG9ydCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI3MDAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4cG9ydHNcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fZXhwb3J0cyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXh0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAyNzU0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4dGVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI3ODEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXh0ZW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgMjgwOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZXh0ZW5kXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI4MzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImV4dGVuZHNcIlxuICAodHQuX2V4dGVuZHMgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZlwiXG4gIC0xLCAyODg5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjk5NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAzMTU5LCAtMSwgLTEsIDMyMTMsIC0xLCAtMSwgMzI5NCwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMjkxNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZhbFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyOTQzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmYWxzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAyOTcwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImZhbHNlXCJcbiAgKHR0Ll9mYWxzZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzAyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5cIlxuICAtMSwgMzA1MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZmluYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMwNzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5hbFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMxMDUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmaW5hbGxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzEzMiwgLTEsXG4gIC8vIFwiZmluYWxseVwiXG4gICh0dC5fZmluYWxseSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMxODYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmb3JcIlxuICAodHQuX2ZvciA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMyNDAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmcm9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzI2NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZnJvbVwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9mcm9tIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzMyMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5cIlxuICAtMSwgLTEsIC0xLCAzMzQ4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZnVuY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzM3NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5jdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM0MDIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5jdGlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNDI5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZnVuY3Rpb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzQ1NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJmdW5jdGlvblwiXG4gICh0dC5fZnVuY3Rpb24gPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiZ1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzUxMCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzU2NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNTM3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdldFwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9nZXQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzU5MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdsb1wiXG4gIC0xLCAtMSwgMzYxOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJnbG9iXCJcbiAgLTEsIDM2NDUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdsb2JhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzY3MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImdsb2JhbFwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImlcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzI2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAzNzUzLCA0MDc3LCAtMSwgLTEsIC0xLCAtMSwgNDU5MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaWZcIlxuICAodHQuX2lmIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImltXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM3ODAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImltcFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM4MDcsIC0xLCAtMSwgMzk5NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImltcGxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDM4MzQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzg2MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVtXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAzODg4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImltcGxlbWVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM5MTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVtZW5cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM5NDIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wbGVtZW50XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDM5NjksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImltcGxlbWVudHNcIlxuICBDb250ZXh0dWFsS2V5d29yZC5faW1wbGVtZW50cyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW1wb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQwMjMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBvclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDA1MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbXBvcnRcIlxuICAodHQuX2ltcG9ydCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpblwiXG4gICh0dC5faW4gPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQxMDQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQxODUsIDQ0MDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5mXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MTMxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluZmVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MTU4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiaW5mZXJcIlxuICBDb250ZXh0dWFsS2V5d29yZC5faW5mZXIgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDIxMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnN0XCJcbiAgLTEsIDQyMzksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MjY2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhblwiXG4gIC0xLCAtMSwgLTEsIDQyOTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnN0YW5jXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0MzIwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhbmNlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDM0NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImluc3RhbmNlb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQzNzQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnN0YW5jZW9mXCJcbiAgKHR0Ll9pbnN0YW5jZW9mIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImludFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDQyOCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDQ1NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImludGVyXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDQ4MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImludGVyZlwiXG4gIC0xLCA0NTA5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJpbnRlcmZhXCJcbiAgLTEsIC0xLCAtMSwgNDUzNiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImludGVyZmFjXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0NTYzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImludGVyZmFjZVwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImlzXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX2lzIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJrXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0NjQ0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImtlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ2NzEsIC0xLFxuICAvLyBcImtleVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ2OTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJrZXlvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDcyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImtleW9mXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX2tleW9mIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA0Nzc5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImxlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0ODA2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcImxldFwiXG4gICh0dC5fbGV0IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm1cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0ODYwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ5OTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDQ4ODcsIC0xLCAtMSxcbiAgLy8gXCJtaXhcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0OTE0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibWl4aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNDk0MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaXhpblwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA0OTY4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtaXhpbnNcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fbWl4aW5zIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtb1wiXG4gIC0xLCAtMSwgLTEsIC0xLCA1MDIyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtb2RcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MDQ5LCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibW9kdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDUwNzYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtb2R1bFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTEwMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJtb2R1bGVcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fbW9kdWxlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuXCJcbiAgLTEsIDUxNTcsIC0xLCAtMSwgLTEsIDUzNzMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU0MjcsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MTg0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDUyMTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibmFtZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MjM4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lc1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1MjY1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lc3BcIlxuICAtMSwgNTI5MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibmFtZXNwYVwiXG4gIC0xLCAtMSwgLTEsIDUzMTksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lc3BhY1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTM0NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuYW1lc3BhY2VcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fbmFtZXNwYWNlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTQwMCwgLTEsIC0xLCAtMSxcbiAgLy8gXCJuZXdcIlxuICAodHQuX25ldyA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJudVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU0NTQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJudWxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1NDgxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwibnVsbFwiXG4gICh0dC5fbnVsbCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTUzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTU2MiwgLTEsIC0xLCAtMSwgLTEsIDU2OTcsIDU3NTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIm9mXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX29mIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvcFwiXG4gIC0xLCA1NTg5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvcGFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU2MTYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3BhcVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU2NDMsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvcGFxdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTY3MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvcGFxdWVcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fb3BhcXVlIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTcyNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdXRcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fb3V0IDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTc3OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdmVcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA1ODA1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU4MzIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdmVyclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU4NTksIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdmVycmlcIlxuICAtMSwgLTEsIC0xLCAtMSwgNTg4NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwib3ZlcnJpZFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTkxMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJvdmVycmlkZVwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9vdmVycmlkZSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDU5NjcsIC0xLCAtMSwgNjM0NSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInByXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNTk5NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2MTI5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYwMjEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInByaXZcIlxuICAtMSwgNjA0OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJpdmFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYwNzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJpdmF0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA2MTAyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInByaXZhdGVcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZSA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2MTU2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInByb3RcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIDYxODMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYzMTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZVwiXG4gIC0xLCAtMSwgLTEsIDYyMTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWNcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDYyMzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHJvdGVjdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjI2NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWN0ZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCA2MjkxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90ZWN0ZWRcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fcHJvdGVjdGVkIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJwcm90b1wiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9wcm90byA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHVcIlxuICAtMSwgLTEsIDYzNzIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHViXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjM5OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInB1YmxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2NDI2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHVibGlcIlxuICAtMSwgLTEsIC0xLCA2NDUzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicHVibGljXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX3B1YmxpYyA8PCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwiclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjUwNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZVwiXG4gIC0xLCA2NTM0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2Njk2LCAtMSwgLTEsIDY4MzEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDY1NjEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlYWRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2NTg4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhZG9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY2MTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwicmVhZG9uXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjY0MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlYWRvbmxcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjY2OSwgLTEsXG4gIC8vIFwicmVhZG9ubHlcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHkgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlcVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY3MjMsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXF1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjc1MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlcXVpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjc3NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJlcXVpclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjgwNCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXF1aXJlXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX3JlcXVpcmUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJldFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDY4NTgsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJyZXR1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNjg4NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJldHVyXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2OTEyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInJldHVyblwiXG4gICh0dC5fcmV0dXJuIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNcIlxuICAtMSwgNjk2NiwgLTEsIC0xLCAtMSwgNzE4MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MjM2LCA3MzcxLCAtMSwgNzQ3OSwgLTEsIDc2MTQsIC0xLFxuICAvLyBcInNhXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2OTkzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNhdFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcwMjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcwNDcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNhdGlzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzA3NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNhdGlzZlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcxMDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzYXRpc2ZpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MTI4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNhdGlzZmllXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDcxNTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNhdGlzZmllc1wiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9zYXRpc2ZpZXMgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3MjA5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInNldFwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9zZXQgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0XCJcbiAgLTEsIDcyNjMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzI5MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdGF0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzMxNywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YXRpXCJcbiAgLTEsIC0xLCAtMSwgNzM0NCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN0YXRpY1wiXG4gIENvbnRleHR1YWxLZXl3b3JkLl9zdGF0aWMgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDczOTgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN1cFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzQyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzdXBlXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzQ1MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInN1cGVyXCJcbiAgKHR0Ll9zdXBlciA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc1MDYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2lcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc1MzMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic3dpdFwiXG4gIC0xLCAtMSwgLTEsIDc1NjAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2l0Y1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzU4NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzd2l0Y2hcIlxuICAodHQuX3N3aXRjaCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzeVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3NjQxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzeW1cIlxuICAtMSwgLTEsIDc2NjgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwic3ltYlwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc2OTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzeW1ib1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc3MjIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJzeW1ib2xcIlxuICBDb250ZXh0dWFsS2V5d29yZC5fc3ltYm9sIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3Nzc2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3OTM4LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MDQ2LCAtMSxcbiAgLy8gXCJ0aFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc4MDMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzg1NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRoaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3ODMwLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0aGlzXCJcbiAgKHR0Ll90aGlzIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRoclwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc4ODQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0aHJvXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3OTExLCAtMSwgLTEsIC0xLFxuICAvLyBcInRocm93XCJcbiAgKHR0Ll90aHJvdyA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0clwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDc5NjUsIC0xLCAtMSwgLTEsIDgwMTksIC0xLFxuICAvLyBcInRydVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgNzk5MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0cnVlXCJcbiAgKHR0Ll90cnVlIDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInRyeVwiXG4gICh0dC5fdHJ5IDw8IDEpICsgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInR5XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDgwNzMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInR5cFwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgODEwMCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ0eXBlXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX3R5cGUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTI3LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlwZW9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MTU0LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidHlwZW9mXCJcbiAgKHR0Ll90eXBlb2YgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODIwOCwgLTEsIC0xLCAtMSwgLTEsIDgzNDMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVuXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODIzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVuaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODI2MiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ1bmlxXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODI4OSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVuaXF1XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA4MzE2LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVuaXF1ZVwiXG4gIENvbnRleHR1YWxLZXl3b3JkLl91bmlxdWUgPDwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM3MCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODM5NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ1c2luXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg0MjQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInVzaW5nXCJcbiAgQ29udGV4dHVhbEtleXdvcmQuX3VzaW5nIDw8IDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ2XCJcbiAgLTEsIDg0NzgsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NTMyLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidmFcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NTA1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidmFyXCJcbiAgKHR0Ll92YXIgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidm9cIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NTU5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwidm9pXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDg1ODYsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInZvaWRcIlxuICAodHQuX3ZvaWQgPDwgMSkgKyAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid1wiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODY0MCwgODc0OCwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIndoXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODY2NywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIndoaVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg2OTQsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ3aGlsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA4NzIxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcIndoaWxlXCJcbiAgKHR0Ll93aGlsZSA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ3aVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODc3NSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ3aXRcIlxuICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg4MDIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsXG4gIC8vIFwid2l0aFwiXG4gICh0dC5fd2l0aCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ5XCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgODg1NiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpXCJcbiAgLTEsIC0xLCAtMSwgLTEsIC0xLCA4ODgzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpZVwiXG4gIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDg5MTAsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbiAgLy8gXCJ5aWVsXCJcbiAgLTEsIC0xLCAtMSwgLTEsIDg5MzcsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLFxuICAvLyBcInlpZWxkXCJcbiAgKHR0Ll95aWVsZCA8PCAxKSArIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSxcbl0pO1xuIiwgImltcG9ydCB7aW5wdXQsIHN0YXRlfSBmcm9tIFwiLi4vdHJhdmVyc2VyL2Jhc2VcIjtcbmltcG9ydCB7Y2hhckNvZGVzfSBmcm9tIFwiLi4vdXRpbC9jaGFyY29kZXNcIjtcbmltcG9ydCB7SVNfSURFTlRJRklFUl9DSEFSfSBmcm9tIFwiLi4vdXRpbC9pZGVudGlmaWVyXCI7XG5pbXBvcnQge2ZpbmlzaFRva2VufSBmcm9tIFwiLi9pbmRleFwiO1xuaW1wb3J0IHtSRUFEX1dPUkRfVFJFRX0gZnJvbSBcIi4vcmVhZFdvcmRUcmVlXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBSZWFkIGFuIGlkZW50aWZpZXIsIHByb2R1Y2luZyBlaXRoZXIgYSBuYW1lIHRva2VuIG9yIG1hdGNoaW5nIG9uIG9uZSBvZiB0aGUgZXhpc3Rpbmcga2V5d29yZHMuXG4gKiBGb3IgcGVyZm9ybWFuY2UsIHdlIHByZS1nZW5lcmF0ZSBiaWcgZGVjaXNpb24gdHJlZSB0aGF0IHdlIHRyYXZlcnNlLiBFYWNoIG5vZGUgcmVwcmVzZW50cyBhXG4gKiBwcmVmaXggYW5kIGhhcyAyNyB2YWx1ZXMsIHdoZXJlIHRoZSBmaXJzdCB2YWx1ZSBpcyB0aGUgdG9rZW4gb3IgY29udGV4dHVhbCB0b2tlbiwgaWYgYW55ICgtMSBpZlxuICogbm90KSwgYW5kIHRoZSBvdGhlciAyNiB2YWx1ZXMgYXJlIHRoZSB0cmFuc2l0aW9ucyB0byBvdGhlciBub2Rlcywgb3IgLTEgdG8gc3RvcC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVhZFdvcmQoKSB7XG4gIGxldCB0cmVlUG9zID0gMDtcbiAgbGV0IGNvZGUgPSAwO1xuICBsZXQgcG9zID0gc3RhdGUucG9zO1xuICB3aGlsZSAocG9zIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgY29kZSA9IGlucHV0LmNoYXJDb2RlQXQocG9zKTtcbiAgICBpZiAoY29kZSA8IGNoYXJDb2Rlcy5sb3dlcmNhc2VBIHx8IGNvZGUgPiBjaGFyQ29kZXMubG93ZXJjYXNlWikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IG5leHQgPSBSRUFEX1dPUkRfVFJFRVt0cmVlUG9zICsgKGNvZGUgLSBjaGFyQ29kZXMubG93ZXJjYXNlQSkgKyAxXTtcbiAgICBpZiAobmV4dCA9PT0gLTEpIHtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmVlUG9zID0gbmV4dDtcbiAgICAgIHBvcysrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGtleXdvcmRWYWx1ZSA9IFJFQURfV09SRF9UUkVFW3RyZWVQb3NdO1xuICBpZiAoa2V5d29yZFZhbHVlID4gLTEgJiYgIUlTX0lERU5USUZJRVJfQ0hBUltjb2RlXSkge1xuICAgIHN0YXRlLnBvcyA9IHBvcztcbiAgICBpZiAoa2V5d29yZFZhbHVlICYgMSkge1xuICAgICAgZmluaXNoVG9rZW4oa2V5d29yZFZhbHVlID4+PiAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmluaXNoVG9rZW4odHQubmFtZSwga2V5d29yZFZhbHVlID4+PiAxKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd2hpbGUgKHBvcyA8IGlucHV0Lmxlbmd0aCkge1xuICAgIGNvbnN0IGNoID0gaW5wdXQuY2hhckNvZGVBdChwb3MpO1xuICAgIGlmIChJU19JREVOVElGSUVSX0NIQVJbY2hdKSB7XG4gICAgICBwb3MrKztcbiAgICB9IGVsc2UgaWYgKGNoID09PSBjaGFyQ29kZXMuYmFja3NsYXNoKSB7XG4gICAgICAvLyBcXHVcbiAgICAgIHBvcyArPSAyO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zKSA9PT0gY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlKSB7XG4gICAgICAgIHdoaWxlIChwb3MgPCBpbnB1dC5sZW5ndGggJiYgaW5wdXQuY2hhckNvZGVBdChwb3MpICE9PSBjaGFyQ29kZXMucmlnaHRDdXJseUJyYWNlKSB7XG4gICAgICAgICAgcG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgcG9zKys7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjaCA9PT0gY2hhckNvZGVzLmF0U2lnbiAmJiBpbnB1dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSBjaGFyQ29kZXMuYXRTaWduKSB7XG4gICAgICBwb3MgKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHN0YXRlLnBvcyA9IHBvcztcbiAgZmluaXNoVG9rZW4odHQubmFtZSk7XG59XG4iLCAiLyogZXNsaW50IG1heC1sZW46IDAgKi9cblxuaW1wb3J0IHtpbnB1dCwgaXNGbG93RW5hYmxlZCwgc3RhdGV9IGZyb20gXCIuLi90cmF2ZXJzZXIvYmFzZVwiO1xuaW1wb3J0IHt1bmV4cGVjdGVkfSBmcm9tIFwiLi4vdHJhdmVyc2VyL3V0aWxcIjtcbmltcG9ydCB7Y2hhckNvZGVzfSBmcm9tIFwiLi4vdXRpbC9jaGFyY29kZXNcIjtcbmltcG9ydCB7SVNfSURFTlRJRklFUl9DSEFSLCBJU19JREVOVElGSUVSX1NUQVJUfSBmcm9tIFwiLi4vdXRpbC9pZGVudGlmaWVyXCI7XG5pbXBvcnQge0lTX1dISVRFU1BBQ0UsIHNraXBXaGl0ZVNwYWNlfSBmcm9tIFwiLi4vdXRpbC93aGl0ZXNwYWNlXCI7XG5pbXBvcnQge0NvbnRleHR1YWxLZXl3b3JkfSBmcm9tIFwiLi9rZXl3b3Jkc1wiO1xuaW1wb3J0IHJlYWRXb3JkIGZyb20gXCIuL3JlYWRXb3JkXCI7XG5pbXBvcnQgeyBUb2tlblR5cGUgYXMgdHR9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCB2YXIgSWRlbnRpZmllclJvbGU7IChmdW5jdGlvbiAoSWRlbnRpZmllclJvbGUpIHtcbiAgY29uc3QgQWNjZXNzID0gMDsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJBY2Nlc3NcIl0gPSBBY2Nlc3NdID0gXCJBY2Nlc3NcIjtcbiAgY29uc3QgRXhwb3J0QWNjZXNzID0gQWNjZXNzICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJFeHBvcnRBY2Nlc3NcIl0gPSBFeHBvcnRBY2Nlc3NdID0gXCJFeHBvcnRBY2Nlc3NcIjtcbiAgY29uc3QgVG9wTGV2ZWxEZWNsYXJhdGlvbiA9IEV4cG9ydEFjY2VzcyArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiVG9wTGV2ZWxEZWNsYXJhdGlvblwiXSA9IFRvcExldmVsRGVjbGFyYXRpb25dID0gXCJUb3BMZXZlbERlY2xhcmF0aW9uXCI7XG4gIGNvbnN0IEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gPSBUb3BMZXZlbERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXCJdID0gRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbl0gPSBcIkZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb25cIjtcbiAgY29uc3QgQmxvY2tTY29wZWREZWNsYXJhdGlvbiA9IEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gKyAxOyBJZGVudGlmaWVyUm9sZVtJZGVudGlmaWVyUm9sZVtcIkJsb2NrU2NvcGVkRGVjbGFyYXRpb25cIl0gPSBCbG9ja1Njb3BlZERlY2xhcmF0aW9uXSA9IFwiQmxvY2tTY29wZWREZWNsYXJhdGlvblwiO1xuICBjb25zdCBPYmplY3RTaG9ydGhhbmRUb3BMZXZlbERlY2xhcmF0aW9uID0gQmxvY2tTY29wZWREZWNsYXJhdGlvbiArIDE7IElkZW50aWZpZXJSb2xlW0lkZW50aWZpZXJSb2xlW1wiT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvblwiXSA9IE9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb25dID0gXCJPYmplY3RTaG9ydGhhbmRUb3BMZXZlbERlY2xhcmF0aW9uXCI7XG4gIGNvbnN0IE9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gPSBPYmplY3RTaG9ydGhhbmRUb3BMZXZlbERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJPYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXCJdID0gT2JqZWN0U2hvcnRoYW5kRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbl0gPSBcIk9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb25cIjtcbiAgY29uc3QgT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvbiA9IE9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gKyAxOyBJZGVudGlmaWVyUm9sZVtJZGVudGlmaWVyUm9sZVtcIk9iamVjdFNob3J0aGFuZEJsb2NrU2NvcGVkRGVjbGFyYXRpb25cIl0gPSBPYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXSA9IFwiT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvblwiO1xuICBjb25zdCBPYmplY3RTaG9ydGhhbmQgPSBPYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJPYmplY3RTaG9ydGhhbmRcIl0gPSBPYmplY3RTaG9ydGhhbmRdID0gXCJPYmplY3RTaG9ydGhhbmRcIjtcbiAgLy8gQW55IGlkZW50aWZpZXIgYm91bmQgaW4gYW4gaW1wb3J0IHN0YXRlbWVudCwgZS5nLiBib3RoIEEgYW5kIGIgZnJvbVxuICAvLyBgaW1wb3J0IEEsICogYXMgYiBmcm9tICdBJztgXG4gIGNvbnN0IEltcG9ydERlY2xhcmF0aW9uID0gT2JqZWN0U2hvcnRoYW5kICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJJbXBvcnREZWNsYXJhdGlvblwiXSA9IEltcG9ydERlY2xhcmF0aW9uXSA9IFwiSW1wb3J0RGVjbGFyYXRpb25cIjtcbiAgY29uc3QgT2JqZWN0S2V5ID0gSW1wb3J0RGVjbGFyYXRpb24gKyAxOyBJZGVudGlmaWVyUm9sZVtJZGVudGlmaWVyUm9sZVtcIk9iamVjdEtleVwiXSA9IE9iamVjdEtleV0gPSBcIk9iamVjdEtleVwiO1xuICAvLyBUaGUgYGZvb2AgaW4gYGltcG9ydCB7Zm9vIGFzIGJhcn0gZnJvbSBcIi4vYWJjXCI7YC5cbiAgY29uc3QgSW1wb3J0QWNjZXNzID0gT2JqZWN0S2V5ICsgMTsgSWRlbnRpZmllclJvbGVbSWRlbnRpZmllclJvbGVbXCJJbXBvcnRBY2Nlc3NcIl0gPSBJbXBvcnRBY2Nlc3NdID0gXCJJbXBvcnRBY2Nlc3NcIjtcbn0pKElkZW50aWZpZXJSb2xlIHx8IChJZGVudGlmaWVyUm9sZSA9IHt9KSk7XG5cbi8qKlxuICogRXh0cmEgaW5mb3JtYXRpb24gb24ganN4VGFnU3RhcnQgdG9rZW5zLCB1c2VkIHRvIGRldGVybWluZSB3aGljaCBvZiB0aGUgdGhyZWVcbiAqIGpzeCBmdW5jdGlvbnMgYXJlIGNhbGxlZCBpbiB0aGUgYXV0b21hdGljIHRyYW5zZm9ybS5cbiAqL1xuZXhwb3J0IHZhciBKU1hSb2xlOyAoZnVuY3Rpb24gKEpTWFJvbGUpIHtcbiAgLy8gVGhlIGVsZW1lbnQgaXMgc2VsZi1jbG9zaW5nIG9yIGhhcyBhIGJvZHkgdGhhdCByZXNvbHZlcyB0byBlbXB0eS4gV2VcbiAgLy8gc2hvdWxkbid0IGVtaXQgY2hpbGRyZW4gYXQgYWxsIGluIHRoaXMgY2FzZS5cbiAgY29uc3QgTm9DaGlsZHJlbiA9IDA7IEpTWFJvbGVbSlNYUm9sZVtcIk5vQ2hpbGRyZW5cIl0gPSBOb0NoaWxkcmVuXSA9IFwiTm9DaGlsZHJlblwiO1xuICAvLyBUaGUgZWxlbWVudCBoYXMgYSBzaW5nbGUgZXhwbGljaXQgY2hpbGQsIHdoaWNoIG1pZ2h0IHN0aWxsIGJlIGFuIGFyYml0cmFyeVxuICAvLyBleHByZXNzaW9uIGxpa2UgYW4gYXJyYXkuIFdlIHNob3VsZCBlbWl0IHRoYXQgZXhwcmVzc2lvbiBhcyB0aGUgY2hpbGRyZW4uXG4gIGNvbnN0IE9uZUNoaWxkID0gTm9DaGlsZHJlbiArIDE7IEpTWFJvbGVbSlNYUm9sZVtcIk9uZUNoaWxkXCJdID0gT25lQ2hpbGRdID0gXCJPbmVDaGlsZFwiO1xuICAvLyBUaGUgZWxlbWVudCBoYXMgYXQgbGVhc3QgdHdvIGV4cGxpY2l0bHktc3BlY2lmaWVkIGNoaWxkcmVuIG9yIGhhcyBzcHJlYWRcbiAgLy8gY2hpbGRyZW4sIHNvIGNoaWxkIHBvc2l0aW9ucyBhcmUgYXNzdW1lZCB0byBiZSBcInN0YXRpY1wiLiBXZSBzaG91bGQgd3JhcFxuICAvLyB0aGVzZSBjaGlsZHJlbiBpbiBhbiBhcnJheS5cbiAgY29uc3QgU3RhdGljQ2hpbGRyZW4gPSBPbmVDaGlsZCArIDE7IEpTWFJvbGVbSlNYUm9sZVtcIlN0YXRpY0NoaWxkcmVuXCJdID0gU3RhdGljQ2hpbGRyZW5dID0gXCJTdGF0aWNDaGlsZHJlblwiO1xuICAvLyBUaGUgZWxlbWVudCBoYXMgYSBwcm9wIG5hbWVkIFwia2V5XCIgYWZ0ZXIgYSBwcm9wIHNwcmVhZCwgc28gd2Ugc2hvdWxkIGZhbGxcbiAgLy8gYmFjayB0byB0aGUgY3JlYXRlRWxlbWVudCBmdW5jdGlvbi5cbiAgY29uc3QgS2V5QWZ0ZXJQcm9wU3ByZWFkID0gU3RhdGljQ2hpbGRyZW4gKyAxOyBKU1hSb2xlW0pTWFJvbGVbXCJLZXlBZnRlclByb3BTcHJlYWRcIl0gPSBLZXlBZnRlclByb3BTcHJlYWRdID0gXCJLZXlBZnRlclByb3BTcHJlYWRcIjtcbn0pKEpTWFJvbGUgfHwgKEpTWFJvbGUgPSB7fSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEZWNsYXJhdGlvbih0b2tlbikge1xuICBjb25zdCByb2xlID0gdG9rZW4uaWRlbnRpZmllclJvbGU7XG4gIHJldHVybiAoXG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuVG9wTGV2ZWxEZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLkZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5CbG9ja1Njb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kVG9wTGV2ZWxEZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZEZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vblRvcExldmVsRGVjbGFyYXRpb24odG9rZW4pIHtcbiAgY29uc3Qgcm9sZSA9IHRva2VuLmlkZW50aWZpZXJSb2xlO1xuICByZXR1cm4gKFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLkZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5CbG9ja1Njb3BlZERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZEJsb2NrU2NvcGVkRGVjbGFyYXRpb25cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG9wTGV2ZWxEZWNsYXJhdGlvbih0b2tlbikge1xuICBjb25zdCByb2xlID0gdG9rZW4uaWRlbnRpZmllclJvbGU7XG4gIHJldHVybiAoXG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuVG9wTGV2ZWxEZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvblxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCbG9ja1Njb3BlZERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIGNvbnN0IHJvbGUgPSB0b2tlbi5pZGVudGlmaWVyUm9sZTtcbiAgLy8gVHJlYXQgdG9wLWxldmVsIGRlY2xhcmF0aW9ucyBhcyBibG9jayBzY29wZSBzaW5jZSB0aGUgZGlzdGluY3Rpb24gZG9lc24ndCBtYXR0ZXIgaGVyZS5cbiAgcmV0dXJuIChcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5Ub3BMZXZlbERlY2xhcmF0aW9uIHx8XG4gICAgcm9sZSA9PT0gSWRlbnRpZmllclJvbGUuQmxvY2tTY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRCbG9ja1Njb3BlZERlY2xhcmF0aW9uXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24odG9rZW4pIHtcbiAgY29uc3Qgcm9sZSA9IHRva2VuLmlkZW50aWZpZXJSb2xlO1xuICByZXR1cm4gKFxuICAgIHJvbGUgPT09IElkZW50aWZpZXJSb2xlLkZ1bmN0aW9uU2NvcGVkRGVjbGFyYXRpb24gfHxcbiAgICByb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdFNob3J0aGFuZERlY2xhcmF0aW9uKHRva2VuKSB7XG4gIHJldHVybiAoXG4gICAgdG9rZW4uaWRlbnRpZmllclJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb24gfHxcbiAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvbiB8fFxuICAgIHRva2VuLmlkZW50aWZpZXJSb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uXG4gICk7XG59XG5cbi8vIE9iamVjdCB0eXBlIHVzZWQgdG8gcmVwcmVzZW50IHRva2Vucy4gTm90ZSB0aGF0IG5vcm1hbGx5LCB0b2tlbnNcbi8vIHNpbXBseSBleGlzdCBhcyBwcm9wZXJ0aWVzIG9uIHRoZSBwYXJzZXIgb2JqZWN0LiBUaGlzIGlzIG9ubHlcbi8vIHVzZWQgZm9yIHRoZSBvblRva2VuIGNhbGxiYWNrIGFuZCB0aGUgZXh0ZXJuYWwgdG9rZW5pemVyLlxuZXhwb3J0IGNsYXNzIFRva2VuIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy50eXBlID0gc3RhdGUudHlwZTtcbiAgICB0aGlzLmNvbnRleHR1YWxLZXl3b3JkID0gc3RhdGUuY29udGV4dHVhbEtleXdvcmQ7XG4gICAgdGhpcy5zdGFydCA9IHN0YXRlLnN0YXJ0O1xuICAgIHRoaXMuZW5kID0gc3RhdGUuZW5kO1xuICAgIHRoaXMuc2NvcGVEZXB0aCA9IHN0YXRlLnNjb3BlRGVwdGg7XG4gICAgdGhpcy5pc1R5cGUgPSBzdGF0ZS5pc1R5cGU7XG4gICAgdGhpcy5pZGVudGlmaWVyUm9sZSA9IG51bGw7XG4gICAgdGhpcy5qc3hSb2xlID0gbnVsbDtcbiAgICB0aGlzLnNoYWRvd3NHbG9iYWwgPSBmYWxzZTtcbiAgICB0aGlzLmlzQXN5bmNPcGVyYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRleHRJZCA9IG51bGw7XG4gICAgdGhpcy5yaHNFbmRJbmRleCA9IG51bGw7XG4gICAgdGhpcy5pc0V4cHJlc3Npb24gPSBmYWxzZTtcbiAgICB0aGlzLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0cyA9IDA7XG4gICAgdGhpcy5udW1OdWxsaXNoQ29hbGVzY2VFbmRzID0gMDtcbiAgICB0aGlzLmlzT3B0aW9uYWxDaGFpblN0YXJ0ID0gZmFsc2U7XG4gICAgdGhpcy5pc09wdGlvbmFsQ2hhaW5FbmQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdFN0YXJ0SW5kZXggPSBudWxsO1xuICAgIHRoaXMubnVsbGlzaFN0YXJ0SW5kZXggPSBudWxsO1xuICB9XG5cbiAgXG4gIFxuICBcbiAgXG4gIFxuICBcbiAgXG4gIFxuICAvLyBJbml0aWFsbHkgZmFsc2UgZm9yIGFsbCB0b2tlbnMsIHRoZW4gbWF5IGJlIGNvbXB1dGVkIGluIGEgZm9sbG93LXVwIHN0ZXAgdGhhdCBkb2VzIHNjb3BlXG4gIC8vIGFuYWx5c2lzLlxuICBcbiAgLy8gSW5pdGlhbGx5IGZhbHNlIGZvciBhbGwgdG9rZW5zLCBidXQgbWF5IGJlIHNldCBkdXJpbmcgdHJhbnNmb3JtIHRvIG1hcmsgaXQgYXMgY29udGFpbmluZyBhblxuICAvLyBhd2FpdCBvcGVyYXRpb24uXG4gIFxuICBcbiAgLy8gRm9yIGFzc2lnbm1lbnRzLCB0aGUgaW5kZXggb2YgdGhlIFJIUy4gRm9yIGV4cG9ydCB0b2tlbnMsIHRoZSBlbmQgb2YgdGhlIGV4cG9ydC5cbiAgXG4gIC8vIEZvciBjbGFzcyB0b2tlbnMsIHJlY29yZHMgaWYgdGhlIGNsYXNzIGlzIGEgY2xhc3MgZXhwcmVzc2lvbiBvciBhIGNsYXNzIHN0YXRlbWVudC5cbiAgXG4gIC8vIE51bWJlciBvZiB0aW1lcyB0byBpbnNlcnQgYSBgbnVsbGlzaENvYWxlc2NlKGAgc25pcHBldCBiZWZvcmUgdGhpcyB0b2tlbi5cbiAgXG4gIC8vIE51bWJlciBvZiB0aW1lcyB0byBpbnNlcnQgYSBgKWAgc25pcHBldCBhZnRlciB0aGlzIHRva2VuLlxuICBcbiAgLy8gSWYgdHJ1ZSwgaW5zZXJ0IGFuIGBvcHRpb25hbENoYWluKFtgIHNuaXBwZXQgYmVmb3JlIHRoaXMgdG9rZW4uXG4gIFxuICAvLyBJZiB0cnVlLCBpbnNlcnQgYSBgXSlgIHNuaXBwZXQgYWZ0ZXIgdGhpcyB0b2tlbi5cbiAgXG4gIC8vIFRhZyBmb3IgYC5gLCBgPy5gLCBgW2AsIGA/LltgLCBgKGAsIGFuZCBgPy4oYCB0byBkZW5vdGUgdGhlIFwicm9vdFwiIHRva2VuIGZvciB0aGlzXG4gIC8vIHN1YnNjcmlwdCBjaGFpbi4gVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBjaGFpbiBpcyBhbiBvcHRpb25hbCBjaGFpbi5cbiAgXG4gIC8vIFRhZyBmb3IgYD8/YCBvcGVyYXRvcnMgdG8gZGVub3RlIHRoZSByb290IHRva2VuIGZvciB0aGlzIG51bGxpc2ggY29hbGVzY2luZyBjYWxsLlxuICBcbn1cblxuLy8gIyMgVG9rZW5pemVyXG5cbi8vIE1vdmUgdG8gdGhlIG5leHQgdG9rZW5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0KCkge1xuICBzdGF0ZS50b2tlbnMucHVzaChuZXcgVG9rZW4oKSk7XG4gIG5leHRUb2tlbigpO1xufVxuXG4vLyBDYWxsIGluc3RlYWQgb2YgbmV4dCB3aGVuIGluc2lkZSBhIHRlbXBsYXRlLCBzaW5jZSB0aGF0IG5lZWRzIHRvIGJlIGhhbmRsZWQgZGlmZmVyZW50bHkuXG5leHBvcnQgZnVuY3Rpb24gbmV4dFRlbXBsYXRlVG9rZW4oKSB7XG4gIHN0YXRlLnRva2Vucy5wdXNoKG5ldyBUb2tlbigpKTtcbiAgc3RhdGUuc3RhcnQgPSBzdGF0ZS5wb3M7XG4gIHJlYWRUbXBsVG9rZW4oKTtcbn1cblxuLy8gVGhlIHRva2VuaXplciBuZXZlciBwYXJzZXMgcmVnZXhlcyBieSBkZWZhdWx0LiBJbnN0ZWFkLCB0aGUgcGFyc2VyIGlzIHJlc3BvbnNpYmxlIGZvclxuLy8gaW5zdHJ1Y3RpbmcgaXQgdG8gcGFyc2UgYSByZWdleCB3aGVuIHdlIHNlZSBhIHNsYXNoIGF0IHRoZSBzdGFydCBvZiBhbiBleHByZXNzaW9uLlxuZXhwb3J0IGZ1bmN0aW9uIHJldG9rZW5pemVTbGFzaEFzUmVnZXgoKSB7XG4gIGlmIChzdGF0ZS50eXBlID09PSB0dC5hc3NpZ24pIHtcbiAgICAtLXN0YXRlLnBvcztcbiAgfVxuICByZWFkUmVnZXhwKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoVHlwZUNvbnRleHQoZXhpc3RpbmdUb2tlbnNJblR5cGUpIHtcbiAgZm9yIChsZXQgaSA9IHN0YXRlLnRva2Vucy5sZW5ndGggLSBleGlzdGluZ1Rva2Vuc0luVHlwZTsgaSA8IHN0YXRlLnRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIHN0YXRlLnRva2Vuc1tpXS5pc1R5cGUgPSB0cnVlO1xuICB9XG4gIGNvbnN0IG9sZElzVHlwZSA9IHN0YXRlLmlzVHlwZTtcbiAgc3RhdGUuaXNUeXBlID0gdHJ1ZTtcbiAgcmV0dXJuIG9sZElzVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSkge1xuICBzdGF0ZS5pc1R5cGUgPSBvbGRJc1R5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYXQodHlwZSkge1xuICBpZiAobWF0Y2godHlwZSkpIHtcbiAgICBuZXh0KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYXRUeXBlVG9rZW4odG9rZW5UeXBlKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHN0YXRlLmlzVHlwZTtcbiAgc3RhdGUuaXNUeXBlID0gdHJ1ZTtcbiAgZWF0KHRva2VuVHlwZSk7XG4gIHN0YXRlLmlzVHlwZSA9IG9sZElzVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoKHR5cGUpIHtcbiAgcmV0dXJuIHN0YXRlLnR5cGUgPT09IHR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb29rYWhlYWRUeXBlKCkge1xuICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG4gIG5leHQoKTtcbiAgY29uc3QgdHlwZSA9IHN0YXRlLnR5cGU7XG4gIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gdHlwZTtcbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVBbmRLZXl3b3JkIHtcbiAgXG4gIFxuICBjb25zdHJ1Y3Rvcih0eXBlLCBjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5jb250ZXh0dWFsS2V5d29yZCA9IGNvbnRleHR1YWxLZXl3b3JkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb29rYWhlYWRUeXBlQW5kS2V5d29yZCgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICBuZXh0KCk7XG4gIGNvbnN0IHR5cGUgPSBzdGF0ZS50eXBlO1xuICBjb25zdCBjb250ZXh0dWFsS2V5d29yZCA9IHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkO1xuICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgcmV0dXJuIG5ldyBUeXBlQW5kS2V5d29yZCh0eXBlLCBjb250ZXh0dWFsS2V5d29yZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0VG9rZW5TdGFydCgpIHtcbiAgcmV0dXJuIG5leHRUb2tlblN0YXJ0U2luY2Uoc3RhdGUucG9zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHRUb2tlblN0YXJ0U2luY2UocG9zKSB7XG4gIHNraXBXaGl0ZVNwYWNlLmxhc3RJbmRleCA9IHBvcztcbiAgY29uc3Qgc2tpcCA9IHNraXBXaGl0ZVNwYWNlLmV4ZWMoaW5wdXQpO1xuICByZXR1cm4gcG9zICsgc2tpcFswXS5sZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb29rYWhlYWRDaGFyQ29kZSgpIHtcbiAgcmV0dXJuIGlucHV0LmNoYXJDb2RlQXQobmV4dFRva2VuU3RhcnQoKSk7XG59XG5cbi8vIFJlYWQgYSBzaW5nbGUgdG9rZW4sIHVwZGF0aW5nIHRoZSBwYXJzZXIgb2JqZWN0J3MgdG9rZW4tcmVsYXRlZFxuLy8gcHJvcGVydGllcy5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0VG9rZW4oKSB7XG4gIHNraXBTcGFjZSgpO1xuICBzdGF0ZS5zdGFydCA9IHN0YXRlLnBvcztcbiAgaWYgKHN0YXRlLnBvcyA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbnMgPSBzdGF0ZS50b2tlbnM7XG4gICAgLy8gV2Ugbm9ybWFsbHkgcnVuIHBhc3QgdGhlIGVuZCBhIGJpdCwgYnV0IGlmIHdlJ3JlIHdheSBwYXN0IHRoZSBlbmQsIGF2b2lkIGFuIGluZmluaXRlIGxvb3AuXG4gICAgLy8gQWxzbyBjaGVjayB0aGUgdG9rZW4gcG9zaXRpb25zIHJhdGhlciB0aGFuIHRoZSB0eXBlcyBzaW5jZSBzb21ldGltZXMgd2UgcmV3cml0ZSB0aGUgdG9rZW5cbiAgICAvLyB0eXBlIHRvIHNvbWV0aGluZyBlbHNlLlxuICAgIGlmIChcbiAgICAgIHRva2Vucy5sZW5ndGggPj0gMiAmJlxuICAgICAgdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXS5zdGFydCA+PSBpbnB1dC5sZW5ndGggJiZcbiAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMl0uc3RhcnQgPj0gaW5wdXQubGVuZ3RoXG4gICAgKSB7XG4gICAgICB1bmV4cGVjdGVkKFwiVW5leHBlY3RlZGx5IHJlYWNoZWQgdGhlIGVuZCBvZiBpbnB1dC5cIik7XG4gICAgfVxuICAgIGZpbmlzaFRva2VuKHR0LmVvZik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHJlYWRUb2tlbihpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcykpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW4oY29kZSkge1xuICAvLyBJZGVudGlmaWVyIG9yIGtleXdvcmQuICdcXHVYWFhYJyBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgaW5cbiAgLy8gaWRlbnRpZmllcnMsIHNvICdcXCcgYWxzbyBkaXNwYXRjaGVzIHRvIHRoYXQuXG4gIGlmIChcbiAgICBJU19JREVOVElGSUVSX1NUQVJUW2NvZGVdIHx8XG4gICAgY29kZSA9PT0gY2hhckNvZGVzLmJhY2tzbGFzaCB8fFxuICAgIChjb2RlID09PSBjaGFyQ29kZXMuYXRTaWduICYmIGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMSkgPT09IGNoYXJDb2Rlcy5hdFNpZ24pXG4gICkge1xuICAgIHJlYWRXb3JkKCk7XG4gIH0gZWxzZSB7XG4gICAgZ2V0VG9rZW5Gcm9tQ29kZShjb2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBza2lwQmxvY2tDb21tZW50KCkge1xuICB3aGlsZSAoXG4gICAgaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpICE9PSBjaGFyQ29kZXMuYXN0ZXJpc2sgfHxcbiAgICBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpICE9PSBjaGFyQ29kZXMuc2xhc2hcbiAgKSB7XG4gICAgc3RhdGUucG9zKys7XG4gICAgaWYgKHN0YXRlLnBvcyA+IGlucHV0Lmxlbmd0aCkge1xuICAgICAgdW5leHBlY3RlZChcIlVudGVybWluYXRlZCBjb21tZW50XCIsIHN0YXRlLnBvcyAtIDIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBzdGF0ZS5wb3MgKz0gMjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBMaW5lQ29tbWVudChzdGFydFNraXApIHtcbiAgbGV0IGNoID0gaW5wdXQuY2hhckNvZGVBdCgoc3RhdGUucG9zICs9IHN0YXJ0U2tpcCkpO1xuICBpZiAoc3RhdGUucG9zIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgd2hpbGUgKFxuICAgICAgY2ggIT09IGNoYXJDb2Rlcy5saW5lRmVlZCAmJlxuICAgICAgY2ggIT09IGNoYXJDb2Rlcy5jYXJyaWFnZVJldHVybiAmJlxuICAgICAgY2ggIT09IGNoYXJDb2Rlcy5saW5lU2VwYXJhdG9yICYmXG4gICAgICBjaCAhPT0gY2hhckNvZGVzLnBhcmFncmFwaFNlcGFyYXRvciAmJlxuICAgICAgKytzdGF0ZS5wb3MgPCBpbnB1dC5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNoID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBDYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBwYXJzZSBhbmQgYWZ0ZXIgZXZlcnkgdG9rZW4uIFNraXBzXG4vLyB3aGl0ZXNwYWNlIGFuZCBjb21tZW50cy5cbmV4cG9ydCBmdW5jdGlvbiBza2lwU3BhY2UoKSB7XG4gIHdoaWxlIChzdGF0ZS5wb3MgPCBpbnB1dC5sZW5ndGgpIHtcbiAgICBjb25zdCBjaCA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zKTtcbiAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICBjYXNlIGNoYXJDb2Rlcy5jYXJyaWFnZVJldHVybjpcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMSkgPT09IGNoYXJDb2Rlcy5saW5lRmVlZCkge1xuICAgICAgICAgICsrc3RhdGUucG9zO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgY2hhckNvZGVzLmxpbmVGZWVkOlxuICAgICAgY2FzZSBjaGFyQ29kZXMubGluZVNlcGFyYXRvcjpcbiAgICAgIGNhc2UgY2hhckNvZGVzLnBhcmFncmFwaFNlcGFyYXRvcjpcbiAgICAgICAgKytzdGF0ZS5wb3M7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIGNoYXJDb2Rlcy5zbGFzaDpcbiAgICAgICAgc3dpdGNoIChpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpKSB7XG4gICAgICAgICAgY2FzZSBjaGFyQ29kZXMuYXN0ZXJpc2s6XG4gICAgICAgICAgICBzdGF0ZS5wb3MgKz0gMjtcbiAgICAgICAgICAgIHNraXBCbG9ja0NvbW1lbnQoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBjaGFyQ29kZXMuc2xhc2g6XG4gICAgICAgICAgICBza2lwTGluZUNvbW1lbnQoMik7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChJU19XSElURVNQQUNFW2NoXSkge1xuICAgICAgICAgICsrc3RhdGUucG9zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDYWxsZWQgYXQgdGhlIGVuZCBvZiBldmVyeSB0b2tlbi4gU2V0cyB2YXJpb3VzIGZpZWxkcywgYW5kIHNraXBzIHRoZSBzcGFjZSBhZnRlciB0aGUgdG9rZW4sIHNvXG4vLyB0aGF0IHRoZSBuZXh0IG9uZSdzIGBzdGFydGAgd2lsbCBwb2ludCBhdCB0aGUgcmlnaHQgcG9zaXRpb24uXG5leHBvcnQgZnVuY3Rpb24gZmluaXNoVG9rZW4oXG4gIHR5cGUsXG4gIGNvbnRleHR1YWxLZXl3b3JkID0gQ29udGV4dHVhbEtleXdvcmQuTk9ORSxcbikge1xuICBzdGF0ZS5lbmQgPSBzdGF0ZS5wb3M7XG4gIHN0YXRlLnR5cGUgPSB0eXBlO1xuICBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9IGNvbnRleHR1YWxLZXl3b3JkO1xufVxuXG4vLyAjIyMgVG9rZW4gcmVhZGluZ1xuXG4vLyBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB0byBmZXRjaCB0aGUgbmV4dCB0b2tlbi4gSXRcbi8vIGlzIHNvbWV3aGF0IG9ic2N1cmUsIGJlY2F1c2UgaXQgd29ya3MgaW4gY2hhcmFjdGVyIGNvZGVzIHJhdGhlclxuLy8gdGhhbiBjaGFyYWN0ZXJzLCBhbmQgYmVjYXVzZSBvcGVyYXRvciBwYXJzaW5nIGhhcyBiZWVuIGlubGluZWRcbi8vIGludG8gaXQuXG4vL1xuLy8gQWxsIGluIHRoZSBuYW1lIG9mIHNwZWVkLlxuZnVuY3Rpb24gcmVhZFRva2VuX2RvdCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuICBpZiAobmV4dENoYXIgPj0gY2hhckNvZGVzLmRpZ2l0MCAmJiBuZXh0Q2hhciA8PSBjaGFyQ29kZXMuZGlnaXQ5KSB7XG4gICAgcmVhZE51bWJlcih0cnVlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5kb3QgJiYgaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAyKSA9PT0gY2hhckNvZGVzLmRvdCkge1xuICAgIHN0YXRlLnBvcyArPSAzO1xuICAgIGZpbmlzaFRva2VuKHR0LmVsbGlwc2lzKTtcbiAgfSBlbHNlIHtcbiAgICArK3N0YXRlLnBvcztcbiAgICBmaW5pc2hUb2tlbih0dC5kb3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9zbGFzaCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgIGZpbmlzaE9wKHR0LmFzc2lnbiwgMik7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoT3AodHQuc2xhc2gsIDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9tdWx0X21vZHVsbyhjb2RlKSB7XG4gIC8vICclKidcbiAgbGV0IHRva2VuVHlwZSA9IGNvZGUgPT09IGNoYXJDb2Rlcy5hc3RlcmlzayA/IHR0LnN0YXIgOiB0dC5tb2R1bG87XG4gIGxldCB3aWR0aCA9IDE7XG4gIGxldCBuZXh0Q2hhciA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMSk7XG5cbiAgLy8gRXhwb25lbnRpYXRpb24gb3BlcmF0b3IgKipcbiAgaWYgKGNvZGUgPT09IGNoYXJDb2Rlcy5hc3RlcmlzayAmJiBuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmFzdGVyaXNrKSB7XG4gICAgd2lkdGgrKztcbiAgICBuZXh0Q2hhciA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMik7XG4gICAgdG9rZW5UeXBlID0gdHQuZXhwb25lbnQ7XG4gIH1cblxuICAvLyBNYXRjaCAqPSBvciAlPSwgZGlzYWxsb3dpbmcgKj0+IHdoaWNoIGNhbiBiZSB2YWxpZCBpbiBmbG93LlxuICBpZiAoXG4gICAgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbyAmJlxuICAgIGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMikgIT09IGNoYXJDb2Rlcy5ncmVhdGVyVGhhblxuICApIHtcbiAgICB3aWR0aCsrO1xuICAgIHRva2VuVHlwZSA9IHR0LmFzc2lnbjtcbiAgfVxuXG4gIGZpbmlzaE9wKHRva2VuVHlwZSwgd2lkdGgpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fcGlwZV9hbXAoY29kZSkge1xuICAvLyAnfCYnXG4gIGNvbnN0IG5leHRDaGFyID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAxKTtcblxuICBpZiAobmV4dENoYXIgPT09IGNvZGUpIHtcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAyKSA9PT0gY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgICAvLyB8fD0gb3IgJiY9XG4gICAgICBmaW5pc2hPcCh0dC5hc3NpZ24sIDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB8fCBvciAmJlxuICAgICAgZmluaXNoT3AoY29kZSA9PT0gY2hhckNvZGVzLnZlcnRpY2FsQmFyID8gdHQubG9naWNhbE9SIDogdHQubG9naWNhbEFORCwgMik7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjb2RlID09PSBjaGFyQ29kZXMudmVydGljYWxCYXIpIHtcbiAgICAvLyAnfD4nXG4gICAgaWYgKG5leHRDaGFyID09PSBjaGFyQ29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIGZpbmlzaE9wKHR0LnBpcGVsaW5lLCAyKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSBjaGFyQ29kZXMucmlnaHRDdXJseUJyYWNlICYmIGlzRmxvd0VuYWJsZWQpIHtcbiAgICAgIC8vICd8fSdcbiAgICAgIGZpbmlzaE9wKHR0LmJyYWNlQmFyUiwgMik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKG5leHRDaGFyID09PSBjaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICBmaW5pc2hPcCh0dC5hc3NpZ24sIDIpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZpbmlzaE9wKGNvZGUgPT09IGNoYXJDb2Rlcy52ZXJ0aWNhbEJhciA/IHR0LmJpdHdpc2VPUiA6IHR0LmJpdHdpc2VBTkQsIDEpO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fY2FyZXQoKSB7XG4gIC8vICdeJ1xuICBjb25zdCBuZXh0Q2hhciA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMSk7XG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgZmluaXNoT3AodHQuYXNzaWduLCAyKTtcbiAgfSBlbHNlIHtcbiAgICBmaW5pc2hPcCh0dC5iaXR3aXNlWE9SLCAxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fcGx1c19taW4oY29kZSkge1xuICAvLyAnKy0nXG4gIGNvbnN0IG5leHRDaGFyID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAxKTtcblxuICBpZiAobmV4dENoYXIgPT09IGNvZGUpIHtcbiAgICAvLyBUZW50YXRpdmVseSBjYWxsIHRoaXMgYSBwcmVmaXggb3BlcmF0b3IsIGJ1dCBpdCBtaWdodCBiZSBjaGFuZ2VkIHRvIHBvc3RmaXggbGF0ZXIuXG4gICAgZmluaXNoT3AodHQucHJlSW5jRGVjLCAyKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgIGZpbmlzaE9wKHR0LmFzc2lnbiwgMik7XG4gIH0gZWxzZSBpZiAoY29kZSA9PT0gY2hhckNvZGVzLnBsdXNTaWduKSB7XG4gICAgZmluaXNoT3AodHQucGx1cywgMSk7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoT3AodHQubWludXMsIDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9sdCgpIHtcbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuXG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmxlc3NUaGFuKSB7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMikgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgICAgZmluaXNoT3AodHQuYXNzaWduLCAzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gV2Ugc2VlIDw8LCBidXQgbmVlZCB0byBiZSByZWFsbHkgY2FyZWZ1bCBhYm91dCB3aGV0aGVyIHRvIHRyZWF0IGl0IGFzIGFcbiAgICAvLyB0cnVlIGxlZnQtc2hpZnQgb3IgYXMgdHdvIDwgdG9rZW5zLlxuICAgIGlmIChzdGF0ZS5pc1R5cGUpIHtcbiAgICAgIC8vIFdpdGhpbiBhIHR5cGUsIDw8IG1pZ2h0IGNvbWUgdXAgaW4gYSBzbmlwcGV0IGxpa2UgYEFycmF5PDxUPigpID0+IHZvaWQ+YCxcbiAgICAgIC8vIHNvIHRyZWF0IGl0IGFzIHR3byA8IHRva2Vucy4gSW1wb3J0YW50bHksIHRoaXMgc2hvdWxkIG9ubHkgb3ZlcnJpZGUgPDxcbiAgICAgIC8vIHJhdGhlciB0aGFuIG90aGVyIHRva2VucyBsaWtlIDw9IC4gSWYgd2UgdHJlYXRlZCA8PSBhcyA8IGluIGEgdHlwZVxuICAgICAgLy8gY29udGV4dCwgdGhlbiB0aGUgc25pcHBldCBgYSBhcyBUIDw9IDFgIHdvdWxkIGluY29ycmVjdGx5IHN0YXJ0IHBhcnNpbmdcbiAgICAgIC8vIGEgdHlwZSBhcmd1bWVudCBvbiBULiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGBhIGFzIFQgPDwgMWBcbiAgICAgIC8vIGJlY2F1c2UgVHlwZVNjcmlwdCBkaXNhbGxvd3MgdGhhdCBzeW50YXguXG4gICAgICBmaW5pc2hPcCh0dC5sZXNzVGhhbiwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE91dHNpZGUgYSB0eXBlLCB0aGlzIG1pZ2h0IGJlIGEgdHJ1ZSBsZWZ0LXNoaWZ0IG9wZXJhdG9yLCBvciBpdCBtaWdodFxuICAgICAgLy8gc3RpbGwgYmUgdHdvIG9wZW4tdHlwZS1hcmcgdG9rZW5zLCBzdWNoIGFzIGluIGBmPDxUPigpID0+IHZvaWQ+KClgLiBXZVxuICAgICAgLy8gbG9vayBhdCB0aGUgdG9rZW4gd2hpbGUgY29uc2lkZXJpbmcgdGhlIGBmYCwgc28gd2UgZG9uJ3QgeWV0IGtub3cgdGhhdFxuICAgICAgLy8gd2UncmUgaW4gYSB0eXBlIGNvbnRleHQuIEluIHRoaXMgY2FzZSwgd2UgaW5pdGlhbGx5IHRva2VuaXplIGFzIGFcbiAgICAgIC8vIGxlZnQtc2hpZnQgYW5kIGNvcnJlY3QgYWZ0ZXItdGhlLWZhY3QgYXMgbmVjZXNzYXJ5IGluXG4gICAgICAvLyB0c1BhcnNlVHlwZUFyZ3VtZW50c1dpdGhQb3NzaWJsZUJpdHNoaWZ0IC5cbiAgICAgIGZpbmlzaE9wKHR0LmJpdFNoaWZ0TCwgMik7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgLy8gPD1cbiAgICBmaW5pc2hPcCh0dC5yZWxhdGlvbmFsT3JFcXVhbCwgMik7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoT3AodHQubGVzc1RoYW4sIDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9ndCgpIHtcbiAgaWYgKHN0YXRlLmlzVHlwZSkge1xuICAgIC8vIEF2b2lkIHJpZ2h0LXNoaWZ0IGZvciB0aGluZ3MgbGlrZSBgQXJyYXk8QXJyYXk8c3RyaW5nPj5gIGFuZFxuICAgIC8vIGdyZWF0ZXItdGhhbi1vci1lcXVhbCBmb3IgdGhpbmdzIGxpa2UgYGNvbnN0IGE6IEFycmF5PG51bWJlcj49W107YC5cbiAgICBmaW5pc2hPcCh0dC5ncmVhdGVyVGhhbiwgMSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuXG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmdyZWF0ZXJUaGFuKSB7XG4gICAgY29uc3Qgc2l6ZSA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMikgPT09IGNoYXJDb2Rlcy5ncmVhdGVyVGhhbiA/IDMgOiAyO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIHNpemUpID09PSBjaGFyQ29kZXMuZXF1YWxzVG8pIHtcbiAgICAgIGZpbmlzaE9wKHR0LmFzc2lnbiwgc2l6ZSArIDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmaW5pc2hPcCh0dC5iaXRTaGlmdFIsIHNpemUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmVxdWFsc1RvKSB7XG4gICAgLy8gPj1cbiAgICBmaW5pc2hPcCh0dC5yZWxhdGlvbmFsT3JFcXVhbCwgMik7XG4gIH0gZWxzZSB7XG4gICAgZmluaXNoT3AodHQuZ3JlYXRlclRoYW4sIDEpO1xuICB9XG59XG5cbi8qKlxuICogUmVpbnRlcnByZXQgYSBwb3NzaWJsZSA+IHRva2VuIHdoZW4gdHJhbnNpdGlvbmluZyBmcm9tIGEgdHlwZSB0byBhIG5vbi10eXBlXG4gKiBjb250ZXh0LlxuICpcbiAqIFRoaXMgY29tZXMgdXAgaW4gdHdvIHNpdHVhdGlvbnMgd2hlcmUgPj0gbmVlZHMgdG8gYmUgdHJlYXRlZCBhcyBvbmUgdG9rZW46XG4gKiAtIEFmdGVyIGFuIGBhc2AgZXhwcmVzc2lvbiwgbGlrZSBpbiB0aGUgY29kZSBgYSBhcyBUID49IDFgLlxuICogLSBJbiBhIHR5cGUgYXJndW1lbnQgaW4gYW4gZXhwcmVzc2lvbiBjb250ZXh0LCBlLmcuIGBmKGEgPCBiLCBjID49IGQpYCwgd2VcbiAqICAgbmVlZCB0byBzZWUgdGhlIHRva2VuIGFzID49IHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIGFuZCBiYWNrdHJhY2sgdG9cbiAqICAgbm9ybWFsIGV4cHJlc3Npb24gcGFyc2luZy5cbiAqXG4gKiBPdGhlciBzaXR1YXRpb25zIHJlcXVpcmUgPj0gdG8gYmUgc2VlbiBhcyB0d28gdG9rZW5zLCBlLmcuXG4gKiBgY29uc3QgeDogQXJyYXk8VD49W107YCwgc28gaXQncyBpbXBvcnRhbnQgdG8gdHJlYXQgPiBhcyBpdHMgb3duIHRva2VuIGluXG4gKiB0eXBpY2FsIHR5cGUgcGFyc2luZyBzaXR1YXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzY2FuX2d0KCkge1xuICBpZiAoc3RhdGUudHlwZSA9PT0gdHQuZ3JlYXRlclRoYW4pIHtcbiAgICBzdGF0ZS5wb3MgLT0gMTtcbiAgICByZWFkVG9rZW5fZ3QoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkVG9rZW5fZXFfZXhjbChjb2RlKSB7XG4gIC8vICc9ISdcbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgIGZpbmlzaE9wKHR0LmVxdWFsaXR5LCBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDIpID09PSBjaGFyQ29kZXMuZXF1YWxzVG8gPyAzIDogMik7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChjb2RlID09PSBjaGFyQ29kZXMuZXF1YWxzVG8gJiYgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy5ncmVhdGVyVGhhbikge1xuICAgIC8vICc9PidcbiAgICBzdGF0ZS5wb3MgKz0gMjtcbiAgICBmaW5pc2hUb2tlbih0dC5hcnJvdyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZpbmlzaE9wKGNvZGUgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbyA/IHR0LmVxIDogdHQuYmFuZywgMSk7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb2tlbl9xdWVzdGlvbigpIHtcbiAgLy8gJz8nXG4gIGNvbnN0IG5leHRDaGFyID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAxKTtcbiAgY29uc3QgbmV4dENoYXIyID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAyKTtcbiAgaWYgKFxuICAgIG5leHRDaGFyID09PSBjaGFyQ29kZXMucXVlc3Rpb25NYXJrICYmXG4gICAgLy8gSW4gRmxvdyAoYnV0IG5vdCBUeXBlU2NyaXB0KSwgPz9zdHJpbmcgaXMgYSB2YWxpZCB0eXBlIHRoYXQgc2hvdWxkIGJlXG4gICAgLy8gdG9rZW5pemVkIGFzIHR3byBpbmRpdmlkdWFsID8gdG9rZW5zLlxuICAgICEoaXNGbG93RW5hYmxlZCAmJiBzdGF0ZS5pc1R5cGUpXG4gICkge1xuICAgIGlmIChuZXh0Q2hhcjIgPT09IGNoYXJDb2Rlcy5lcXVhbHNUbykge1xuICAgICAgLy8gJz8/PSdcbiAgICAgIGZpbmlzaE9wKHR0LmFzc2lnbiwgMyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vICc/PydcbiAgICAgIGZpbmlzaE9wKHR0Lm51bGxpc2hDb2FsZXNjaW5nLCAyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXG4gICAgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy5kb3QgJiZcbiAgICAhKG5leHRDaGFyMiA+PSBjaGFyQ29kZXMuZGlnaXQwICYmIG5leHRDaGFyMiA8PSBjaGFyQ29kZXMuZGlnaXQ5KVxuICApIHtcbiAgICAvLyAnLicgbm90IGZvbGxvd2VkIGJ5IGEgbnVtYmVyXG4gICAgc3RhdGUucG9zICs9IDI7XG4gICAgZmluaXNoVG9rZW4odHQucXVlc3Rpb25Eb3QpO1xuICB9IGVsc2Uge1xuICAgICsrc3RhdGUucG9zO1xuICAgIGZpbmlzaFRva2VuKHR0LnF1ZXN0aW9uKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5Gcm9tQ29kZShjb2RlKSB7XG4gIHN3aXRjaCAoY29kZSkge1xuICAgIGNhc2UgY2hhckNvZGVzLm51bWJlclNpZ246XG4gICAgICArK3N0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKHR0Lmhhc2gpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgLy8gVGhlIGludGVycHJldGF0aW9uIG9mIGEgZG90IGRlcGVuZHMgb24gd2hldGhlciBpdCBpcyBmb2xsb3dlZFxuICAgIC8vIGJ5IGEgZGlnaXQgb3IgYW5vdGhlciB0d28gZG90cy5cblxuICAgIGNhc2UgY2hhckNvZGVzLmRvdDpcbiAgICAgIHJlYWRUb2tlbl9kb3QoKTtcbiAgICAgIHJldHVybjtcblxuICAgIC8vIFB1bmN0dWF0aW9uIHRva2Vucy5cbiAgICBjYXNlIGNoYXJDb2Rlcy5sZWZ0UGFyZW50aGVzaXM6XG4gICAgICArK3N0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKHR0LnBhcmVuTCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBjaGFyQ29kZXMucmlnaHRQYXJlbnRoZXNpczpcbiAgICAgICsrc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4odHQucGFyZW5SKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIGNoYXJDb2Rlcy5zZW1pY29sb246XG4gICAgICArK3N0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKHR0LnNlbWkpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgY2hhckNvZGVzLmNvbW1hOlxuICAgICAgKytzdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbih0dC5jb21tYSk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBjaGFyQ29kZXMubGVmdFNxdWFyZUJyYWNrZXQ6XG4gICAgICArK3N0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKHR0LmJyYWNrZXRMKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIGNoYXJDb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQ6XG4gICAgICArK3N0YXRlLnBvcztcbiAgICAgIGZpbmlzaFRva2VuKHR0LmJyYWNrZXRSKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlOlxuICAgICAgaWYgKGlzRmxvd0VuYWJsZWQgJiYgaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAxKSA9PT0gY2hhckNvZGVzLnZlcnRpY2FsQmFyKSB7XG4gICAgICAgIGZpbmlzaE9wKHR0LmJyYWNlQmFyTCwgMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICArK3N0YXRlLnBvcztcbiAgICAgICAgZmluaXNoVG9rZW4odHQuYnJhY2VMKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLnJpZ2h0Q3VybHlCcmFjZTpcbiAgICAgICsrc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4odHQuYnJhY2VSKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLmNvbG9uOlxuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zICsgMSkgPT09IGNoYXJDb2Rlcy5jb2xvbikge1xuICAgICAgICBmaW5pc2hPcCh0dC5kb3VibGVDb2xvbiwgMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICArK3N0YXRlLnBvcztcbiAgICAgICAgZmluaXNoVG9rZW4odHQuY29sb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBjaGFyQ29kZXMucXVlc3Rpb25NYXJrOlxuICAgICAgcmVhZFRva2VuX3F1ZXN0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBjaGFyQ29kZXMuYXRTaWduOlxuICAgICAgKytzdGF0ZS5wb3M7XG4gICAgICBmaW5pc2hUb2tlbih0dC5hdCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIGNoYXJDb2Rlcy5ncmF2ZUFjY2VudDpcbiAgICAgICsrc3RhdGUucG9zO1xuICAgICAgZmluaXNoVG9rZW4odHQuYmFja1F1b3RlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLmRpZ2l0MDoge1xuICAgICAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyArIDEpO1xuICAgICAgLy8gJzB4JywgJzBYJywgJzBvJywgJzBPJywgJzBiJywgJzBCJ1xuICAgICAgaWYgKFxuICAgICAgICBuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmxvd2VyY2FzZVggfHxcbiAgICAgICAgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy51cHBlcmNhc2VYIHx8XG4gICAgICAgIG5leHRDaGFyID09PSBjaGFyQ29kZXMubG93ZXJjYXNlTyB8fFxuICAgICAgICBuZXh0Q2hhciA9PT0gY2hhckNvZGVzLnVwcGVyY2FzZU8gfHxcbiAgICAgICAgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VCIHx8XG4gICAgICAgIG5leHRDaGFyID09PSBjaGFyQ29kZXMudXBwZXJjYXNlQlxuICAgICAgKSB7XG4gICAgICAgIHJlYWRSYWRpeE51bWJlcigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFueXRoaW5nIGVsc2UgYmVnaW5uaW5nIHdpdGggYSBkaWdpdCBpcyBhbiBpbnRlZ2VyLCBvY3RhbFxuICAgIC8vIG51bWJlciwgb3IgZmxvYXQuXG4gICAgY2FzZSBjaGFyQ29kZXMuZGlnaXQxOlxuICAgIGNhc2UgY2hhckNvZGVzLmRpZ2l0MjpcbiAgICBjYXNlIGNoYXJDb2Rlcy5kaWdpdDM6XG4gICAgY2FzZSBjaGFyQ29kZXMuZGlnaXQ0OlxuICAgIGNhc2UgY2hhckNvZGVzLmRpZ2l0NTpcbiAgICBjYXNlIGNoYXJDb2Rlcy5kaWdpdDY6XG4gICAgY2FzZSBjaGFyQ29kZXMuZGlnaXQ3OlxuICAgIGNhc2UgY2hhckNvZGVzLmRpZ2l0ODpcbiAgICBjYXNlIGNoYXJDb2Rlcy5kaWdpdDk6XG4gICAgICByZWFkTnVtYmVyKGZhbHNlKTtcbiAgICAgIHJldHVybjtcblxuICAgIC8vIFF1b3RlcyBwcm9kdWNlIHN0cmluZ3MuXG4gICAgY2FzZSBjaGFyQ29kZXMucXVvdGF0aW9uTWFyazpcbiAgICBjYXNlIGNoYXJDb2Rlcy5hcG9zdHJvcGhlOlxuICAgICAgcmVhZFN0cmluZyhjb2RlKTtcbiAgICAgIHJldHVybjtcblxuICAgIC8vIE9wZXJhdG9ycyBhcmUgcGFyc2VkIGlubGluZSBpbiB0aW55IHN0YXRlIG1hY2hpbmVzLiAnPScgKGNoYXJDb2Rlcy5lcXVhbHNUbykgaXNcbiAgICAvLyBvZnRlbiByZWZlcnJlZCB0by4gYGZpbmlzaE9wYCBzaW1wbHkgc2tpcHMgdGhlIGFtb3VudCBvZlxuICAgIC8vIGNoYXJhY3RlcnMgaXQgaXMgZ2l2ZW4gYXMgc2Vjb25kIGFyZ3VtZW50LCBhbmQgcmV0dXJucyBhIHRva2VuXG4gICAgLy8gb2YgdGhlIHR5cGUgZ2l2ZW4gYnkgaXRzIGZpcnN0IGFyZ3VtZW50LlxuXG4gICAgY2FzZSBjaGFyQ29kZXMuc2xhc2g6XG4gICAgICByZWFkVG9rZW5fc2xhc2goKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLnBlcmNlbnRTaWduOlxuICAgIGNhc2UgY2hhckNvZGVzLmFzdGVyaXNrOlxuICAgICAgcmVhZFRva2VuX211bHRfbW9kdWxvKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBjaGFyQ29kZXMudmVydGljYWxCYXI6XG4gICAgY2FzZSBjaGFyQ29kZXMuYW1wZXJzYW5kOlxuICAgICAgcmVhZFRva2VuX3BpcGVfYW1wKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBjaGFyQ29kZXMuY2FyZXQ6XG4gICAgICByZWFkVG9rZW5fY2FyZXQoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLnBsdXNTaWduOlxuICAgIGNhc2UgY2hhckNvZGVzLmRhc2g6XG4gICAgICByZWFkVG9rZW5fcGx1c19taW4oY29kZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIGNoYXJDb2Rlcy5sZXNzVGhhbjpcbiAgICAgIHJlYWRUb2tlbl9sdCgpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBjaGFyQ29kZXMuZ3JlYXRlclRoYW46XG4gICAgICByZWFkVG9rZW5fZ3QoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgY2hhckNvZGVzLmVxdWFsc1RvOlxuICAgIGNhc2UgY2hhckNvZGVzLmV4Y2xhbWF0aW9uTWFyazpcbiAgICAgIHJlYWRUb2tlbl9lcV9leGNsKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSBjaGFyQ29kZXMudGlsZGU6XG4gICAgICBmaW5pc2hPcCh0dC50aWxkZSwgMSk7XG4gICAgICByZXR1cm47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICB1bmV4cGVjdGVkKGBVbmV4cGVjdGVkIGNoYXJhY3RlciAnJHtTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpfSdgLCBzdGF0ZS5wb3MpO1xufVxuXG5mdW5jdGlvbiBmaW5pc2hPcCh0eXBlLCBzaXplKSB7XG4gIHN0YXRlLnBvcyArPSBzaXplO1xuICBmaW5pc2hUb2tlbih0eXBlKTtcbn1cblxuZnVuY3Rpb24gcmVhZFJlZ2V4cCgpIHtcbiAgY29uc3Qgc3RhcnQgPSBzdGF0ZS5wb3M7XG4gIGxldCBlc2NhcGVkID0gZmFsc2U7XG4gIGxldCBpbkNsYXNzID0gZmFsc2U7XG4gIGZvciAoOzspIHtcbiAgICBpZiAoc3RhdGUucG9zID49IGlucHV0Lmxlbmd0aCkge1xuICAgICAgdW5leHBlY3RlZChcIlVudGVybWluYXRlZCByZWd1bGFyIGV4cHJlc3Npb25cIiwgc3RhcnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb2RlID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2RlID09PSBjaGFyQ29kZXMubGVmdFNxdWFyZUJyYWNrZXQpIHtcbiAgICAgICAgaW5DbGFzcyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IGNoYXJDb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQgJiYgaW5DbGFzcykge1xuICAgICAgICBpbkNsYXNzID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IGNoYXJDb2Rlcy5zbGFzaCAmJiAhaW5DbGFzcykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGVzY2FwZWQgPSBjb2RlID09PSBjaGFyQ29kZXMuYmFja3NsYXNoO1xuICAgIH1cbiAgICArK3N0YXRlLnBvcztcbiAgfVxuICArK3N0YXRlLnBvcztcbiAgLy8gTmVlZCB0byB1c2UgYHNraXBXb3JkYCBiZWNhdXNlICdcXHVYWFhYJyBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgaGVyZSAoZG9uJ3QgYXNrKS5cbiAgc2tpcFdvcmQoKTtcblxuICBmaW5pc2hUb2tlbih0dC5yZWdleHApO1xufVxuXG4vKipcbiAqIFJlYWQgYSBkZWNpbWFsIGludGVnZXIuIE5vdGUgdGhhdCB0aGlzIGNhbid0IGJlIHVuaWZpZWQgd2l0aCB0aGUgc2ltaWxhciBjb2RlXG4gKiBpbiByZWFkUmFkaXhOdW1iZXIgKHdoaWNoIGFsc28gaGFuZGxlcyBoZXggZGlnaXRzKSBiZWNhdXNlIFwiZVwiIG5lZWRzIHRvIGJlXG4gKiB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHNvIHRoYXQgd2UgY2FuIHByb3Blcmx5IGhhbmRsZSBzY2llbnRpZmljIG5vdGF0aW9uLlxuICovXG5mdW5jdGlvbiByZWFkSW50KCkge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IGNvZGUgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyk7XG4gICAgaWYgKChjb2RlID49IGNoYXJDb2Rlcy5kaWdpdDAgJiYgY29kZSA8PSBjaGFyQ29kZXMuZGlnaXQ5KSB8fCBjb2RlID09PSBjaGFyQ29kZXMudW5kZXJzY29yZSkge1xuICAgICAgc3RhdGUucG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkUmFkaXhOdW1iZXIoKSB7XG4gIHN0YXRlLnBvcyArPSAyOyAvLyAweFxuXG4gIC8vIFdhbGsgdG8gdGhlIGVuZCBvZiB0aGUgbnVtYmVyLCBhbGxvd2luZyBoZXggZGlnaXRzLlxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IGNvZGUgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyk7XG4gICAgaWYgKFxuICAgICAgKGNvZGUgPj0gY2hhckNvZGVzLmRpZ2l0MCAmJiBjb2RlIDw9IGNoYXJDb2Rlcy5kaWdpdDkpIHx8XG4gICAgICAoY29kZSA+PSBjaGFyQ29kZXMubG93ZXJjYXNlQSAmJiBjb2RlIDw9IGNoYXJDb2Rlcy5sb3dlcmNhc2VGKSB8fFxuICAgICAgKGNvZGUgPj0gY2hhckNvZGVzLnVwcGVyY2FzZUEgJiYgY29kZSA8PSBjaGFyQ29kZXMudXBwZXJjYXNlRikgfHxcbiAgICAgIGNvZGUgPT09IGNoYXJDb2Rlcy51bmRlcnNjb3JlXG4gICAgKSB7XG4gICAgICBzdGF0ZS5wb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyk7XG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmxvd2VyY2FzZU4pIHtcbiAgICArK3N0YXRlLnBvcztcbiAgICBmaW5pc2hUb2tlbih0dC5iaWdpbnQpO1xuICB9IGVsc2Uge1xuICAgIGZpbmlzaFRva2VuKHR0Lm51bSk7XG4gIH1cbn1cblxuLy8gUmVhZCBhbiBpbnRlZ2VyLCBvY3RhbCBpbnRlZ2VyLCBvciBmbG9hdGluZy1wb2ludCBudW1iZXIuXG5mdW5jdGlvbiByZWFkTnVtYmVyKHN0YXJ0c1dpdGhEb3QpIHtcbiAgbGV0IGlzQmlnSW50ID0gZmFsc2U7XG4gIGxldCBpc0RlY2ltYWwgPSBmYWxzZTtcblxuICBpZiAoIXN0YXJ0c1dpdGhEb3QpIHtcbiAgICByZWFkSW50KCk7XG4gIH1cblxuICBsZXQgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyk7XG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmRvdCkge1xuICAgICsrc3RhdGUucG9zO1xuICAgIHJlYWRJbnQoKTtcbiAgICBuZXh0Q2hhciA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zKTtcbiAgfVxuXG4gIGlmIChuZXh0Q2hhciA9PT0gY2hhckNvZGVzLnVwcGVyY2FzZUUgfHwgbmV4dENoYXIgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VFKSB7XG4gICAgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zKTtcbiAgICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5wbHVzU2lnbiB8fCBuZXh0Q2hhciA9PT0gY2hhckNvZGVzLmRhc2gpIHtcbiAgICAgICsrc3RhdGUucG9zO1xuICAgIH1cbiAgICByZWFkSW50KCk7XG4gICAgbmV4dENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcyk7XG4gIH1cblxuICBpZiAobmV4dENoYXIgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VOKSB7XG4gICAgKytzdGF0ZS5wb3M7XG4gICAgaXNCaWdJbnQgPSB0cnVlO1xuICB9IGVsc2UgaWYgKG5leHRDaGFyID09PSBjaGFyQ29kZXMubG93ZXJjYXNlTSkge1xuICAgICsrc3RhdGUucG9zO1xuICAgIGlzRGVjaW1hbCA9IHRydWU7XG4gIH1cblxuICBpZiAoaXNCaWdJbnQpIHtcbiAgICBmaW5pc2hUb2tlbih0dC5iaWdpbnQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpc0RlY2ltYWwpIHtcbiAgICBmaW5pc2hUb2tlbih0dC5kZWNpbWFsKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBmaW5pc2hUb2tlbih0dC5udW0pO1xufVxuXG5mdW5jdGlvbiByZWFkU3RyaW5nKHF1b3RlKSB7XG4gIHN0YXRlLnBvcysrO1xuICBmb3IgKDs7KSB7XG4gICAgaWYgKHN0YXRlLnBvcyA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHVuZXhwZWN0ZWQoXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjaCA9IGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zKTtcbiAgICBpZiAoY2ggPT09IGNoYXJDb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIHN0YXRlLnBvcysrO1xuICAgIH0gZWxzZSBpZiAoY2ggPT09IHF1b3RlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc3RhdGUucG9zKys7XG4gIH1cbiAgc3RhdGUucG9zKys7XG4gIGZpbmlzaFRva2VuKHR0LnN0cmluZyk7XG59XG5cbi8vIFJlYWRzIHRlbXBsYXRlIHN0cmluZyB0b2tlbnMuXG5mdW5jdGlvbiByZWFkVG1wbFRva2VuKCkge1xuICBmb3IgKDs7KSB7XG4gICAgaWYgKHN0YXRlLnBvcyA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHVuZXhwZWN0ZWQoXCJVbnRlcm1pbmF0ZWQgdGVtcGxhdGVcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNoID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIGlmIChcbiAgICAgIGNoID09PSBjaGFyQ29kZXMuZ3JhdmVBY2NlbnQgfHxcbiAgICAgIChjaCA9PT0gY2hhckNvZGVzLmRvbGxhclNpZ24gJiYgaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MgKyAxKSA9PT0gY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlKVxuICAgICkge1xuICAgICAgaWYgKHN0YXRlLnBvcyA9PT0gc3RhdGUuc3RhcnQgJiYgbWF0Y2godHQudGVtcGxhdGUpKSB7XG4gICAgICAgIGlmIChjaCA9PT0gY2hhckNvZGVzLmRvbGxhclNpZ24pIHtcbiAgICAgICAgICBzdGF0ZS5wb3MgKz0gMjtcbiAgICAgICAgICBmaW5pc2hUb2tlbih0dC5kb2xsYXJCcmFjZUwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICArK3N0YXRlLnBvcztcbiAgICAgICAgICBmaW5pc2hUb2tlbih0dC5iYWNrUXVvdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZmluaXNoVG9rZW4odHQudGVtcGxhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2ggPT09IGNoYXJDb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIHN0YXRlLnBvcysrO1xuICAgIH1cbiAgICBzdGF0ZS5wb3MrKztcbiAgfVxufVxuXG4vLyBTa2lwIHRvIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgd29yZC4gTm90ZSB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIHNuaXBwZXQgYXQgdGhlIGVuZCBvZlxuLy8gcmVhZFdvcmQsIGJ1dCBjYWxsaW5nIHNraXBXb3JkIGZyb20gcmVhZFdvcmQgc2VlbXMgdG8gc2xpZ2h0bHkgaHVydCBwZXJmb3JtYW5jZSBmcm9tIHNvbWUgcm91Z2hcbi8vIG1lYXN1cmVtZW50cy5cbmV4cG9ydCBmdW5jdGlvbiBza2lwV29yZCgpIHtcbiAgd2hpbGUgKHN0YXRlLnBvcyA8IGlucHV0Lmxlbmd0aCkge1xuICAgIGNvbnN0IGNoID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIGlmIChJU19JREVOVElGSUVSX0NIQVJbY2hdKSB7XG4gICAgICBzdGF0ZS5wb3MrKztcbiAgICB9IGVsc2UgaWYgKGNoID09PSBjaGFyQ29kZXMuYmFja3NsYXNoKSB7XG4gICAgICAvLyBcXHVcbiAgICAgIHN0YXRlLnBvcyArPSAyO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zKSA9PT0gY2hhckNvZGVzLmxlZnRDdXJseUJyYWNlKSB7XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICBzdGF0ZS5wb3MgPCBpbnB1dC5sZW5ndGggJiZcbiAgICAgICAgICBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvcykgIT09IGNoYXJDb2Rlcy5yaWdodEN1cmx5QnJhY2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3RhdGUucG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUucG9zKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5cbiBcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLyoqXG4gKiBEZXRlcm1pbmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBuYW1lZCBpbXBvcnQgb3IgbmFtZWQgZXhwb3J0IHNwZWNpZmllci5cbiAqXG4gKiBUaGlzIHN5bnRheCBpcyB0aGUgYGFgIGZyb20gc3RhdGVtZW50cyBsaWtlIHRoZXNlOlxuICogaW1wb3J0IHtBfSBmcm9tIFwiLi9mb29cIjtcbiAqIGV4cG9ydCB7QX07XG4gKiBleHBvcnQge0F9IGZyb20gXCIuL2Zvb1wiO1xuICpcbiAqIEFzIGl0IHR1cm5zIG91dCwgd2UgY2FuIGV4YWN0bHkgY2hhcmFjdGVyaXplIHRoZSBzeW50YXggbWVhbmluZyBieSBzaW1wbHlcbiAqIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgdG9rZW5zLCB3aGljaCBjYW4gYmUgZnJvbSAxIHRvIDQ6XG4gKiB7QX1cbiAqIHt0eXBlIEF9XG4gKiB7QSBhcyBCfVxuICoge3R5cGUgQSBhcyBCfVxuICpcbiAqIEluIHRoZSB0eXBlIGNhc2UsIHdlIG5ldmVyIGFjdHVhbGx5IG5lZWQgdGhlIG5hbWVzIGluIHByYWN0aWNlLCBzbyBkb24ndCBnZXRcbiAqIHRoZW0uXG4gKlxuICogVE9ETzogVGhlcmUncyBzb21lIHJlZHVuZGFuY3kgd2l0aCB0aGUgdHlwZSBkZXRlY3Rpb24gaGVyZSBhbmQgdGhlIGlzVHlwZVxuICogZmxhZyB0aGF0J3MgYWxyZWFkeSBwcmVzZW50IG9uIHRva2VucyBpbiBUUyBtb2RlLiBUaGlzIGZ1bmN0aW9uIGNvdWxkXG4gKiBwb3RlbnRpYWxseSBiZSBzaW1wbGlmaWVkIGFuZC9vciBwdXNoZWQgdG8gdGhlIGNhbGwgc2l0ZXMgdG8gYXZvaWQgdGhlIG9iamVjdFxuICogYWxsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyhcbiAgdG9rZW5zLFxuICBpbmRleCA9IHRva2Vucy5jdXJyZW50SW5kZXgoKSxcbikge1xuICBsZXQgZW5kSW5kZXggPSBpbmRleCArIDE7XG4gIGlmIChpc1NwZWNpZmllckVuZCh0b2tlbnMsIGVuZEluZGV4KSkge1xuICAgIC8vIGltcG9ydCB7QX1cbiAgICBjb25zdCBuYW1lID0gdG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVHlwZTogZmFsc2UsXG4gICAgICBsZWZ0TmFtZTogbmFtZSxcbiAgICAgIHJpZ2h0TmFtZTogbmFtZSxcbiAgICAgIGVuZEluZGV4LFxuICAgIH07XG4gIH1cbiAgZW5kSW5kZXgrKztcbiAgaWYgKGlzU3BlY2lmaWVyRW5kKHRva2VucywgZW5kSW5kZXgpKSB7XG4gICAgLy8gaW1wb3J0IHt0eXBlIEF9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVHlwZTogdHJ1ZSxcbiAgICAgIGxlZnROYW1lOiBudWxsLFxuICAgICAgcmlnaHROYW1lOiBudWxsLFxuICAgICAgZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuICBlbmRJbmRleCsrO1xuICBpZiAoaXNTcGVjaWZpZXJFbmQodG9rZW5zLCBlbmRJbmRleCkpIHtcbiAgICAvLyBpbXBvcnQge0EgYXMgQn1cbiAgICByZXR1cm4ge1xuICAgICAgaXNUeXBlOiBmYWxzZSxcbiAgICAgIGxlZnROYW1lOiB0b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4KSxcbiAgICAgIHJpZ2h0TmFtZTogdG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCArIDIpLFxuICAgICAgZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuICBlbmRJbmRleCsrO1xuICBpZiAoaXNTcGVjaWZpZXJFbmQodG9rZW5zLCBlbmRJbmRleCkpIHtcbiAgICAvLyBpbXBvcnQge3R5cGUgQSBhcyBCfVxuICAgIHJldHVybiB7XG4gICAgICBpc1R5cGU6IHRydWUsXG4gICAgICBsZWZ0TmFtZTogbnVsbCxcbiAgICAgIHJpZ2h0TmFtZTogbnVsbCxcbiAgICAgIGVuZEluZGV4LFxuICAgIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGltcG9ydC9leHBvcnQgc3BlY2lmaWVyIGF0ICR7aW5kZXh9YCk7XG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lmaWVyRW5kKHRva2VucywgaW5kZXgpIHtcbiAgY29uc3QgdG9rZW4gPSB0b2tlbnMudG9rZW5zW2luZGV4XTtcbiAgcmV0dXJuIHRva2VuLnR5cGUgPT09IHR0LmJyYWNlUiB8fCB0b2tlbi50eXBlID09PSB0dC5jb21tYTtcbn1cbiIsICIvLyBVc2UgYSBNYXAgcmF0aGVyIHRoYW4gb2JqZWN0IHRvIGF2b2lkIHVuZXhwZWN0ZWQgX19wcm90b19fIGFjY2Vzcy5cbmV4cG9ydCBkZWZhdWx0IG5ldyBNYXAoW1xuICBbXCJxdW90XCIsIFwiXFx1MDAyMlwiXSxcbiAgW1wiYW1wXCIsIFwiJlwiXSxcbiAgW1wiYXBvc1wiLCBcIlxcdTAwMjdcIl0sXG4gIFtcImx0XCIsIFwiPFwiXSxcbiAgW1wiZ3RcIiwgXCI+XCJdLFxuICBbXCJuYnNwXCIsIFwiXFx1MDBBMFwiXSxcbiAgW1wiaWV4Y2xcIiwgXCJcXHUwMEExXCJdLFxuICBbXCJjZW50XCIsIFwiXFx1MDBBMlwiXSxcbiAgW1wicG91bmRcIiwgXCJcXHUwMEEzXCJdLFxuICBbXCJjdXJyZW5cIiwgXCJcXHUwMEE0XCJdLFxuICBbXCJ5ZW5cIiwgXCJcXHUwMEE1XCJdLFxuICBbXCJicnZiYXJcIiwgXCJcXHUwMEE2XCJdLFxuICBbXCJzZWN0XCIsIFwiXFx1MDBBN1wiXSxcbiAgW1widW1sXCIsIFwiXFx1MDBBOFwiXSxcbiAgW1wiY29weVwiLCBcIlxcdTAwQTlcIl0sXG4gIFtcIm9yZGZcIiwgXCJcXHUwMEFBXCJdLFxuICBbXCJsYXF1b1wiLCBcIlxcdTAwQUJcIl0sXG4gIFtcIm5vdFwiLCBcIlxcdTAwQUNcIl0sXG4gIFtcInNoeVwiLCBcIlxcdTAwQURcIl0sXG4gIFtcInJlZ1wiLCBcIlxcdTAwQUVcIl0sXG4gIFtcIm1hY3JcIiwgXCJcXHUwMEFGXCJdLFxuICBbXCJkZWdcIiwgXCJcXHUwMEIwXCJdLFxuICBbXCJwbHVzbW5cIiwgXCJcXHUwMEIxXCJdLFxuICBbXCJzdXAyXCIsIFwiXFx1MDBCMlwiXSxcbiAgW1wic3VwM1wiLCBcIlxcdTAwQjNcIl0sXG4gIFtcImFjdXRlXCIsIFwiXFx1MDBCNFwiXSxcbiAgW1wibWljcm9cIiwgXCJcXHUwMEI1XCJdLFxuICBbXCJwYXJhXCIsIFwiXFx1MDBCNlwiXSxcbiAgW1wibWlkZG90XCIsIFwiXFx1MDBCN1wiXSxcbiAgW1wiY2VkaWxcIiwgXCJcXHUwMEI4XCJdLFxuICBbXCJzdXAxXCIsIFwiXFx1MDBCOVwiXSxcbiAgW1wib3JkbVwiLCBcIlxcdTAwQkFcIl0sXG4gIFtcInJhcXVvXCIsIFwiXFx1MDBCQlwiXSxcbiAgW1wiZnJhYzE0XCIsIFwiXFx1MDBCQ1wiXSxcbiAgW1wiZnJhYzEyXCIsIFwiXFx1MDBCRFwiXSxcbiAgW1wiZnJhYzM0XCIsIFwiXFx1MDBCRVwiXSxcbiAgW1wiaXF1ZXN0XCIsIFwiXFx1MDBCRlwiXSxcbiAgW1wiQWdyYXZlXCIsIFwiXFx1MDBDMFwiXSxcbiAgW1wiQWFjdXRlXCIsIFwiXFx1MDBDMVwiXSxcbiAgW1wiQWNpcmNcIiwgXCJcXHUwMEMyXCJdLFxuICBbXCJBdGlsZGVcIiwgXCJcXHUwMEMzXCJdLFxuICBbXCJBdW1sXCIsIFwiXFx1MDBDNFwiXSxcbiAgW1wiQXJpbmdcIiwgXCJcXHUwMEM1XCJdLFxuICBbXCJBRWxpZ1wiLCBcIlxcdTAwQzZcIl0sXG4gIFtcIkNjZWRpbFwiLCBcIlxcdTAwQzdcIl0sXG4gIFtcIkVncmF2ZVwiLCBcIlxcdTAwQzhcIl0sXG4gIFtcIkVhY3V0ZVwiLCBcIlxcdTAwQzlcIl0sXG4gIFtcIkVjaXJjXCIsIFwiXFx1MDBDQVwiXSxcbiAgW1wiRXVtbFwiLCBcIlxcdTAwQ0JcIl0sXG4gIFtcIklncmF2ZVwiLCBcIlxcdTAwQ0NcIl0sXG4gIFtcIklhY3V0ZVwiLCBcIlxcdTAwQ0RcIl0sXG4gIFtcIkljaXJjXCIsIFwiXFx1MDBDRVwiXSxcbiAgW1wiSXVtbFwiLCBcIlxcdTAwQ0ZcIl0sXG4gIFtcIkVUSFwiLCBcIlxcdTAwRDBcIl0sXG4gIFtcIk50aWxkZVwiLCBcIlxcdTAwRDFcIl0sXG4gIFtcIk9ncmF2ZVwiLCBcIlxcdTAwRDJcIl0sXG4gIFtcIk9hY3V0ZVwiLCBcIlxcdTAwRDNcIl0sXG4gIFtcIk9jaXJjXCIsIFwiXFx1MDBENFwiXSxcbiAgW1wiT3RpbGRlXCIsIFwiXFx1MDBENVwiXSxcbiAgW1wiT3VtbFwiLCBcIlxcdTAwRDZcIl0sXG4gIFtcInRpbWVzXCIsIFwiXFx1MDBEN1wiXSxcbiAgW1wiT3NsYXNoXCIsIFwiXFx1MDBEOFwiXSxcbiAgW1wiVWdyYXZlXCIsIFwiXFx1MDBEOVwiXSxcbiAgW1wiVWFjdXRlXCIsIFwiXFx1MDBEQVwiXSxcbiAgW1wiVWNpcmNcIiwgXCJcXHUwMERCXCJdLFxuICBbXCJVdW1sXCIsIFwiXFx1MDBEQ1wiXSxcbiAgW1wiWWFjdXRlXCIsIFwiXFx1MDBERFwiXSxcbiAgW1wiVEhPUk5cIiwgXCJcXHUwMERFXCJdLFxuICBbXCJzemxpZ1wiLCBcIlxcdTAwREZcIl0sXG4gIFtcImFncmF2ZVwiLCBcIlxcdTAwRTBcIl0sXG4gIFtcImFhY3V0ZVwiLCBcIlxcdTAwRTFcIl0sXG4gIFtcImFjaXJjXCIsIFwiXFx1MDBFMlwiXSxcbiAgW1wiYXRpbGRlXCIsIFwiXFx1MDBFM1wiXSxcbiAgW1wiYXVtbFwiLCBcIlxcdTAwRTRcIl0sXG4gIFtcImFyaW5nXCIsIFwiXFx1MDBFNVwiXSxcbiAgW1wiYWVsaWdcIiwgXCJcXHUwMEU2XCJdLFxuICBbXCJjY2VkaWxcIiwgXCJcXHUwMEU3XCJdLFxuICBbXCJlZ3JhdmVcIiwgXCJcXHUwMEU4XCJdLFxuICBbXCJlYWN1dGVcIiwgXCJcXHUwMEU5XCJdLFxuICBbXCJlY2lyY1wiLCBcIlxcdTAwRUFcIl0sXG4gIFtcImV1bWxcIiwgXCJcXHUwMEVCXCJdLFxuICBbXCJpZ3JhdmVcIiwgXCJcXHUwMEVDXCJdLFxuICBbXCJpYWN1dGVcIiwgXCJcXHUwMEVEXCJdLFxuICBbXCJpY2lyY1wiLCBcIlxcdTAwRUVcIl0sXG4gIFtcIml1bWxcIiwgXCJcXHUwMEVGXCJdLFxuICBbXCJldGhcIiwgXCJcXHUwMEYwXCJdLFxuICBbXCJudGlsZGVcIiwgXCJcXHUwMEYxXCJdLFxuICBbXCJvZ3JhdmVcIiwgXCJcXHUwMEYyXCJdLFxuICBbXCJvYWN1dGVcIiwgXCJcXHUwMEYzXCJdLFxuICBbXCJvY2lyY1wiLCBcIlxcdTAwRjRcIl0sXG4gIFtcIm90aWxkZVwiLCBcIlxcdTAwRjVcIl0sXG4gIFtcIm91bWxcIiwgXCJcXHUwMEY2XCJdLFxuICBbXCJkaXZpZGVcIiwgXCJcXHUwMEY3XCJdLFxuICBbXCJvc2xhc2hcIiwgXCJcXHUwMEY4XCJdLFxuICBbXCJ1Z3JhdmVcIiwgXCJcXHUwMEY5XCJdLFxuICBbXCJ1YWN1dGVcIiwgXCJcXHUwMEZBXCJdLFxuICBbXCJ1Y2lyY1wiLCBcIlxcdTAwRkJcIl0sXG4gIFtcInV1bWxcIiwgXCJcXHUwMEZDXCJdLFxuICBbXCJ5YWN1dGVcIiwgXCJcXHUwMEZEXCJdLFxuICBbXCJ0aG9yblwiLCBcIlxcdTAwRkVcIl0sXG4gIFtcInl1bWxcIiwgXCJcXHUwMEZGXCJdLFxuICBbXCJPRWxpZ1wiLCBcIlxcdTAxNTJcIl0sXG4gIFtcIm9lbGlnXCIsIFwiXFx1MDE1M1wiXSxcbiAgW1wiU2Nhcm9uXCIsIFwiXFx1MDE2MFwiXSxcbiAgW1wic2Nhcm9uXCIsIFwiXFx1MDE2MVwiXSxcbiAgW1wiWXVtbFwiLCBcIlxcdTAxNzhcIl0sXG4gIFtcImZub2ZcIiwgXCJcXHUwMTkyXCJdLFxuICBbXCJjaXJjXCIsIFwiXFx1MDJDNlwiXSxcbiAgW1widGlsZGVcIiwgXCJcXHUwMkRDXCJdLFxuICBbXCJBbHBoYVwiLCBcIlxcdTAzOTFcIl0sXG4gIFtcIkJldGFcIiwgXCJcXHUwMzkyXCJdLFxuICBbXCJHYW1tYVwiLCBcIlxcdTAzOTNcIl0sXG4gIFtcIkRlbHRhXCIsIFwiXFx1MDM5NFwiXSxcbiAgW1wiRXBzaWxvblwiLCBcIlxcdTAzOTVcIl0sXG4gIFtcIlpldGFcIiwgXCJcXHUwMzk2XCJdLFxuICBbXCJFdGFcIiwgXCJcXHUwMzk3XCJdLFxuICBbXCJUaGV0YVwiLCBcIlxcdTAzOThcIl0sXG4gIFtcIklvdGFcIiwgXCJcXHUwMzk5XCJdLFxuICBbXCJLYXBwYVwiLCBcIlxcdTAzOUFcIl0sXG4gIFtcIkxhbWJkYVwiLCBcIlxcdTAzOUJcIl0sXG4gIFtcIk11XCIsIFwiXFx1MDM5Q1wiXSxcbiAgW1wiTnVcIiwgXCJcXHUwMzlEXCJdLFxuICBbXCJYaVwiLCBcIlxcdTAzOUVcIl0sXG4gIFtcIk9taWNyb25cIiwgXCJcXHUwMzlGXCJdLFxuICBbXCJQaVwiLCBcIlxcdTAzQTBcIl0sXG4gIFtcIlJob1wiLCBcIlxcdTAzQTFcIl0sXG4gIFtcIlNpZ21hXCIsIFwiXFx1MDNBM1wiXSxcbiAgW1wiVGF1XCIsIFwiXFx1MDNBNFwiXSxcbiAgW1wiVXBzaWxvblwiLCBcIlxcdTAzQTVcIl0sXG4gIFtcIlBoaVwiLCBcIlxcdTAzQTZcIl0sXG4gIFtcIkNoaVwiLCBcIlxcdTAzQTdcIl0sXG4gIFtcIlBzaVwiLCBcIlxcdTAzQThcIl0sXG4gIFtcIk9tZWdhXCIsIFwiXFx1MDNBOVwiXSxcbiAgW1wiYWxwaGFcIiwgXCJcXHUwM0IxXCJdLFxuICBbXCJiZXRhXCIsIFwiXFx1MDNCMlwiXSxcbiAgW1wiZ2FtbWFcIiwgXCJcXHUwM0IzXCJdLFxuICBbXCJkZWx0YVwiLCBcIlxcdTAzQjRcIl0sXG4gIFtcImVwc2lsb25cIiwgXCJcXHUwM0I1XCJdLFxuICBbXCJ6ZXRhXCIsIFwiXFx1MDNCNlwiXSxcbiAgW1wiZXRhXCIsIFwiXFx1MDNCN1wiXSxcbiAgW1widGhldGFcIiwgXCJcXHUwM0I4XCJdLFxuICBbXCJpb3RhXCIsIFwiXFx1MDNCOVwiXSxcbiAgW1wia2FwcGFcIiwgXCJcXHUwM0JBXCJdLFxuICBbXCJsYW1iZGFcIiwgXCJcXHUwM0JCXCJdLFxuICBbXCJtdVwiLCBcIlxcdTAzQkNcIl0sXG4gIFtcIm51XCIsIFwiXFx1MDNCRFwiXSxcbiAgW1wieGlcIiwgXCJcXHUwM0JFXCJdLFxuICBbXCJvbWljcm9uXCIsIFwiXFx1MDNCRlwiXSxcbiAgW1wicGlcIiwgXCJcXHUwM0MwXCJdLFxuICBbXCJyaG9cIiwgXCJcXHUwM0MxXCJdLFxuICBbXCJzaWdtYWZcIiwgXCJcXHUwM0MyXCJdLFxuICBbXCJzaWdtYVwiLCBcIlxcdTAzQzNcIl0sXG4gIFtcInRhdVwiLCBcIlxcdTAzQzRcIl0sXG4gIFtcInVwc2lsb25cIiwgXCJcXHUwM0M1XCJdLFxuICBbXCJwaGlcIiwgXCJcXHUwM0M2XCJdLFxuICBbXCJjaGlcIiwgXCJcXHUwM0M3XCJdLFxuICBbXCJwc2lcIiwgXCJcXHUwM0M4XCJdLFxuICBbXCJvbWVnYVwiLCBcIlxcdTAzQzlcIl0sXG4gIFtcInRoZXRhc3ltXCIsIFwiXFx1MDNEMVwiXSxcbiAgW1widXBzaWhcIiwgXCJcXHUwM0QyXCJdLFxuICBbXCJwaXZcIiwgXCJcXHUwM0Q2XCJdLFxuICBbXCJlbnNwXCIsIFwiXFx1MjAwMlwiXSxcbiAgW1wiZW1zcFwiLCBcIlxcdTIwMDNcIl0sXG4gIFtcInRoaW5zcFwiLCBcIlxcdTIwMDlcIl0sXG4gIFtcInp3bmpcIiwgXCJcXHUyMDBDXCJdLFxuICBbXCJ6d2pcIiwgXCJcXHUyMDBEXCJdLFxuICBbXCJscm1cIiwgXCJcXHUyMDBFXCJdLFxuICBbXCJybG1cIiwgXCJcXHUyMDBGXCJdLFxuICBbXCJuZGFzaFwiLCBcIlxcdTIwMTNcIl0sXG4gIFtcIm1kYXNoXCIsIFwiXFx1MjAxNFwiXSxcbiAgW1wibHNxdW9cIiwgXCJcXHUyMDE4XCJdLFxuICBbXCJyc3F1b1wiLCBcIlxcdTIwMTlcIl0sXG4gIFtcInNicXVvXCIsIFwiXFx1MjAxQVwiXSxcbiAgW1wibGRxdW9cIiwgXCJcXHUyMDFDXCJdLFxuICBbXCJyZHF1b1wiLCBcIlxcdTIwMURcIl0sXG4gIFtcImJkcXVvXCIsIFwiXFx1MjAxRVwiXSxcbiAgW1wiZGFnZ2VyXCIsIFwiXFx1MjAyMFwiXSxcbiAgW1wiRGFnZ2VyXCIsIFwiXFx1MjAyMVwiXSxcbiAgW1wiYnVsbFwiLCBcIlxcdTIwMjJcIl0sXG4gIFtcImhlbGxpcFwiLCBcIlxcdTIwMjZcIl0sXG4gIFtcInBlcm1pbFwiLCBcIlxcdTIwMzBcIl0sXG4gIFtcInByaW1lXCIsIFwiXFx1MjAzMlwiXSxcbiAgW1wiUHJpbWVcIiwgXCJcXHUyMDMzXCJdLFxuICBbXCJsc2FxdW9cIiwgXCJcXHUyMDM5XCJdLFxuICBbXCJyc2FxdW9cIiwgXCJcXHUyMDNBXCJdLFxuICBbXCJvbGluZVwiLCBcIlxcdTIwM0VcIl0sXG4gIFtcImZyYXNsXCIsIFwiXFx1MjA0NFwiXSxcbiAgW1wiZXVyb1wiLCBcIlxcdTIwQUNcIl0sXG4gIFtcImltYWdlXCIsIFwiXFx1MjExMVwiXSxcbiAgW1wid2VpZXJwXCIsIFwiXFx1MjExOFwiXSxcbiAgW1wicmVhbFwiLCBcIlxcdTIxMUNcIl0sXG4gIFtcInRyYWRlXCIsIFwiXFx1MjEyMlwiXSxcbiAgW1wiYWxlZnN5bVwiLCBcIlxcdTIxMzVcIl0sXG4gIFtcImxhcnJcIiwgXCJcXHUyMTkwXCJdLFxuICBbXCJ1YXJyXCIsIFwiXFx1MjE5MVwiXSxcbiAgW1wicmFyclwiLCBcIlxcdTIxOTJcIl0sXG4gIFtcImRhcnJcIiwgXCJcXHUyMTkzXCJdLFxuICBbXCJoYXJyXCIsIFwiXFx1MjE5NFwiXSxcbiAgW1wiY3JhcnJcIiwgXCJcXHUyMUI1XCJdLFxuICBbXCJsQXJyXCIsIFwiXFx1MjFEMFwiXSxcbiAgW1widUFyclwiLCBcIlxcdTIxRDFcIl0sXG4gIFtcInJBcnJcIiwgXCJcXHUyMUQyXCJdLFxuICBbXCJkQXJyXCIsIFwiXFx1MjFEM1wiXSxcbiAgW1wiaEFyclwiLCBcIlxcdTIxRDRcIl0sXG4gIFtcImZvcmFsbFwiLCBcIlxcdTIyMDBcIl0sXG4gIFtcInBhcnRcIiwgXCJcXHUyMjAyXCJdLFxuICBbXCJleGlzdFwiLCBcIlxcdTIyMDNcIl0sXG4gIFtcImVtcHR5XCIsIFwiXFx1MjIwNVwiXSxcbiAgW1wibmFibGFcIiwgXCJcXHUyMjA3XCJdLFxuICBbXCJpc2luXCIsIFwiXFx1MjIwOFwiXSxcbiAgW1wibm90aW5cIiwgXCJcXHUyMjA5XCJdLFxuICBbXCJuaVwiLCBcIlxcdTIyMEJcIl0sXG4gIFtcInByb2RcIiwgXCJcXHUyMjBGXCJdLFxuICBbXCJzdW1cIiwgXCJcXHUyMjExXCJdLFxuICBbXCJtaW51c1wiLCBcIlxcdTIyMTJcIl0sXG4gIFtcImxvd2FzdFwiLCBcIlxcdTIyMTdcIl0sXG4gIFtcInJhZGljXCIsIFwiXFx1MjIxQVwiXSxcbiAgW1wicHJvcFwiLCBcIlxcdTIyMURcIl0sXG4gIFtcImluZmluXCIsIFwiXFx1MjIxRVwiXSxcbiAgW1wiYW5nXCIsIFwiXFx1MjIyMFwiXSxcbiAgW1wiYW5kXCIsIFwiXFx1MjIyN1wiXSxcbiAgW1wib3JcIiwgXCJcXHUyMjI4XCJdLFxuICBbXCJjYXBcIiwgXCJcXHUyMjI5XCJdLFxuICBbXCJjdXBcIiwgXCJcXHUyMjJBXCJdLFxuICBbXCJpbnRcIiwgXCJcXHUyMjJCXCJdLFxuICBbXCJ0aGVyZTRcIiwgXCJcXHUyMjM0XCJdLFxuICBbXCJzaW1cIiwgXCJcXHUyMjNDXCJdLFxuICBbXCJjb25nXCIsIFwiXFx1MjI0NVwiXSxcbiAgW1wiYXN5bXBcIiwgXCJcXHUyMjQ4XCJdLFxuICBbXCJuZVwiLCBcIlxcdTIyNjBcIl0sXG4gIFtcImVxdWl2XCIsIFwiXFx1MjI2MVwiXSxcbiAgW1wibGVcIiwgXCJcXHUyMjY0XCJdLFxuICBbXCJnZVwiLCBcIlxcdTIyNjVcIl0sXG4gIFtcInN1YlwiLCBcIlxcdTIyODJcIl0sXG4gIFtcInN1cFwiLCBcIlxcdTIyODNcIl0sXG4gIFtcIm5zdWJcIiwgXCJcXHUyMjg0XCJdLFxuICBbXCJzdWJlXCIsIFwiXFx1MjI4NlwiXSxcbiAgW1wic3VwZVwiLCBcIlxcdTIyODdcIl0sXG4gIFtcIm9wbHVzXCIsIFwiXFx1MjI5NVwiXSxcbiAgW1wib3RpbWVzXCIsIFwiXFx1MjI5N1wiXSxcbiAgW1wicGVycFwiLCBcIlxcdTIyQTVcIl0sXG4gIFtcInNkb3RcIiwgXCJcXHUyMkM1XCJdLFxuICBbXCJsY2VpbFwiLCBcIlxcdTIzMDhcIl0sXG4gIFtcInJjZWlsXCIsIFwiXFx1MjMwOVwiXSxcbiAgW1wibGZsb29yXCIsIFwiXFx1MjMwQVwiXSxcbiAgW1wicmZsb29yXCIsIFwiXFx1MjMwQlwiXSxcbiAgW1wibGFuZ1wiLCBcIlxcdTIzMjlcIl0sXG4gIFtcInJhbmdcIiwgXCJcXHUyMzJBXCJdLFxuICBbXCJsb3pcIiwgXCJcXHUyNUNBXCJdLFxuICBbXCJzcGFkZXNcIiwgXCJcXHUyNjYwXCJdLFxuICBbXCJjbHVic1wiLCBcIlxcdTI2NjNcIl0sXG4gIFtcImhlYXJ0c1wiLCBcIlxcdTI2NjVcIl0sXG4gIFtcImRpYW1zXCIsIFwiXFx1MjY2NlwiXSxcbl0pO1xuIiwgIlxuXG5cblxuXG5cblxuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEpTWFByYWdtYUluZm8ob3B0aW9ucykge1xuICBjb25zdCBbYmFzZSwgc3VmZml4XSA9IHNwbGl0UHJhZ21hKG9wdGlvbnMuanN4UHJhZ21hIHx8IFwiUmVhY3QuY3JlYXRlRWxlbWVudFwiKTtcbiAgY29uc3QgW2ZyYWdtZW50QmFzZSwgZnJhZ21lbnRTdWZmaXhdID0gc3BsaXRQcmFnbWEob3B0aW9ucy5qc3hGcmFnbWVudFByYWdtYSB8fCBcIlJlYWN0LkZyYWdtZW50XCIpO1xuICByZXR1cm4ge2Jhc2UsIHN1ZmZpeCwgZnJhZ21lbnRCYXNlLCBmcmFnbWVudFN1ZmZpeH07XG59XG5cbmZ1bmN0aW9uIHNwbGl0UHJhZ21hKHByYWdtYSkge1xuICBsZXQgZG90SW5kZXggPSBwcmFnbWEuaW5kZXhPZihcIi5cIik7XG4gIGlmIChkb3RJbmRleCA9PT0gLTEpIHtcbiAgICBkb3RJbmRleCA9IHByYWdtYS5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIFtwcmFnbWEuc2xpY2UoMCwgZG90SW5kZXgpLCBwcmFnbWEuc2xpY2UoZG90SW5kZXgpXTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCAgY2xhc3MgVHJhbnNmb3JtZXIge1xuICAvLyBSZXR1cm4gdHJ1ZSBpZiBhbnl0aGluZyB3YXMgcHJvY2Vzc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gIFxuXG4gIGdldFByZWZpeENvZGUoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXRIb2lzdGVkQ29kZSgpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGdldFN1ZmZpeENvZGUoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbn1cbiIsICJcblxuXG5pbXBvcnQgWEhUTUxFbnRpdGllcyBmcm9tIFwiLi4vcGFyc2VyL3BsdWdpbnMvanN4L3hodG1sXCI7XG5pbXBvcnQge0pTWFJvbGV9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcbmltcG9ydCB7Y2hhckNvZGVzfSBmcm9tIFwiLi4vcGFyc2VyL3V0aWwvY2hhcmNvZGVzXCI7XG5cbmltcG9ydCBnZXRKU1hQcmFnbWFJbmZvLCB7fSBmcm9tIFwiLi4vdXRpbC9nZXRKU1hQcmFnbWFJbmZvXCI7XG5cbmltcG9ydCBUcmFuc2Zvcm1lciBmcm9tIFwiLi9UcmFuc2Zvcm1lclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKU1hUcmFuc2Zvcm1lciBleHRlbmRzIFRyYW5zZm9ybWVyIHtcbiAgXG4gIFxuICBcblxuICAvLyBTdGF0ZSBmb3IgY2FsY3VsYXRpbmcgdGhlIGxpbmUgbnVtYmVyIG9mIGVhY2ggSlNYIHRhZyBpbiBkZXZlbG9wbWVudC5cbiAgX19pbml0KCkge3RoaXMubGFzdExpbmVOdW1iZXIgPSAxfVxuICBfX2luaXQyKCkge3RoaXMubGFzdEluZGV4ID0gMH1cblxuICAvLyBJbiBkZXZlbG9wbWVudCwgdmFyaWFibGUgbmFtZSBob2xkaW5nIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZpbGUuXG4gIF9faW5pdDMoKSB7dGhpcy5maWxlbmFtZVZhck5hbWUgPSBudWxsfVxuICAvLyBNYXBwaW5nIG9mIGNsYWltZWQgbmFtZXMgZm9yIGltcG9ydHMgaW4gdGhlIGF1dG9tYXRpYyB0cmFuc2Zvcm0sIGUsZy5cbiAgLy8ge2pzeDogXCJfanN4XCJ9LiBUaGlzIGRldGVybWluZXMgd2hpY2ggaW1wb3J0cyB0byBnZW5lcmF0ZSBpbiB0aGUgcHJlZml4LlxuICBfX2luaXQ0KCkge3RoaXMuZXNtQXV0b21hdGljSW1wb3J0TmFtZVJlc29sdXRpb25zID0ge319XG4gIC8vIFdoZW4gYXV0b21hdGljYWxseSBhZGRpbmcgaW1wb3J0cyBpbiBDSlMgbW9kZSwgd2Ugc3RvcmUgdGhlIHZhcmlhYmxlIG5hbWVcbiAgLy8gaG9sZGluZyB0aGUgaW1wb3J0ZWQgQ0pTIG1vZHVsZSBzbyB3ZSBjYW4gcmVxdWlyZSBpdCBpbiB0aGUgcHJlZml4LlxuICBfX2luaXQ1KCkge3RoaXMuY2pzQXV0b21hdGljTW9kdWxlTmFtZVJlc29sdXRpb25zID0ge319XG5cbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBpbXBvcnRQcm9jZXNzb3IsXG4gICAgIG5hbWVNYW5hZ2VyLFxuICAgICBvcHRpb25zLFxuICApIHtcbiAgICBzdXBlcigpO3RoaXMucm9vdFRyYW5zZm9ybWVyID0gcm9vdFRyYW5zZm9ybWVyO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuaW1wb3J0UHJvY2Vzc29yID0gaW1wb3J0UHJvY2Vzc29yO3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjt0aGlzLm9wdGlvbnMgPSBvcHRpb25zO0pTWFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtKU1hUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpO0pTWFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7SlNYVHJhbnNmb3JtZXIucHJvdG90eXBlLl9faW5pdDQuY2FsbCh0aGlzKTtKU1hUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0NS5jYWxsKHRoaXMpOztcbiAgICB0aGlzLmpzeFByYWdtYUluZm8gPSBnZXRKU1hQcmFnbWFJbmZvKG9wdGlvbnMpO1xuICAgIHRoaXMuaXNBdXRvbWF0aWNSdW50aW1lID0gb3B0aW9ucy5qc3hSdW50aW1lID09PSBcImF1dG9tYXRpY1wiO1xuICAgIHRoaXMuanN4SW1wb3J0U291cmNlID0gb3B0aW9ucy5qc3hJbXBvcnRTb3VyY2UgfHwgXCJyZWFjdFwiO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4VGFnU3RhcnQpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NKU1hUYWcoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRQcmVmaXhDb2RlKCkge1xuICAgIGxldCBwcmVmaXggPSBcIlwiO1xuICAgIGlmICh0aGlzLmZpbGVuYW1lVmFyTmFtZSkge1xuICAgICAgcHJlZml4ICs9IGBjb25zdCAke3RoaXMuZmlsZW5hbWVWYXJOYW1lfSA9ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zLmZpbGVQYXRoIHx8IFwiXCIpfTtgO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0F1dG9tYXRpY1J1bnRpbWUpIHtcbiAgICAgIGlmICh0aGlzLmltcG9ydFByb2Nlc3Nvcikge1xuICAgICAgICAvLyBDSlMgbW9kZTogZW1pdCByZXF1aXJlIHN0YXRlbWVudHMgZm9yIGFsbCBtb2R1bGVzIHRoYXQgd2VyZSByZWZlcmVuY2VkLlxuICAgICAgICBmb3IgKGNvbnN0IFtwYXRoLCByZXNvbHZlZE5hbWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY2pzQXV0b21hdGljTW9kdWxlTmFtZVJlc29sdXRpb25zKSkge1xuICAgICAgICAgIHByZWZpeCArPSBgdmFyICR7cmVzb2x2ZWROYW1lfSA9IHJlcXVpcmUoXCIke3BhdGh9XCIpO2A7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEVTTSBtb2RlOiBjb25zb2xpZGF0ZSBhbmQgZW1pdCBpbXBvcnQgc3RhdGVtZW50cyBmb3IgcmVmZXJlbmNlZCBuYW1lcy5cbiAgICAgICAgY29uc3Qge2NyZWF0ZUVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRSZXNvbHV0aW9uLCAuLi5vdGhlclJlc29sdXRpb25zfSA9XG4gICAgICAgICAgdGhpcy5lc21BdXRvbWF0aWNJbXBvcnROYW1lUmVzb2x1dGlvbnM7XG4gICAgICAgIGlmIChjcmVhdGVFbGVtZW50UmVzb2x1dGlvbikge1xuICAgICAgICAgIHByZWZpeCArPSBgaW1wb3J0IHtjcmVhdGVFbGVtZW50IGFzICR7Y3JlYXRlRWxlbWVudFJlc29sdXRpb259fSBmcm9tIFwiJHt0aGlzLmpzeEltcG9ydFNvdXJjZX1cIjtgO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltcG9ydFNwZWNpZmllcnMgPSBPYmplY3QuZW50cmllcyhvdGhlclJlc29sdXRpb25zKVxuICAgICAgICAgIC5tYXAoKFtuYW1lLCByZXNvbHZlZE5hbWVdKSA9PiBgJHtuYW1lfSBhcyAke3Jlc29sdmVkTmFtZX1gKVxuICAgICAgICAgIC5qb2luKFwiLCBcIik7XG4gICAgICAgIGlmIChpbXBvcnRTcGVjaWZpZXJzKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9XG4gICAgICAgICAgICB0aGlzLmpzeEltcG9ydFNvdXJjZSArICh0aGlzLm9wdGlvbnMucHJvZHVjdGlvbiA/IFwiL2pzeC1ydW50aW1lXCIgOiBcIi9qc3gtZGV2LXJ1bnRpbWVcIik7XG4gICAgICAgICAgcHJlZml4ICs9IGBpbXBvcnQgeyR7aW1wb3J0U3BlY2lmaWVyc319IGZyb20gXCIke2ltcG9ydFBhdGh9XCI7YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgcHJvY2Vzc0pTWFRhZygpIHtcbiAgICBjb25zdCB7anN4Um9sZSwgc3RhcnR9ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCk7XG4gICAgLy8gQ2FsY3VsYXRlIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIGF0IHRoZSB2ZXJ5IHN0YXJ0IChpZiBpbiBkZXZlbG9wbWVudFxuICAgIC8vIG1vZGUpIHNvIHRoYXQgdGhlIGluZm9ybWF0aW9uIGlzIGd1YXJhbnRlZWQgdG8gYmUgcXVlcmllZCBpbiB0b2tlbiBvcmRlci5cbiAgICBjb25zdCBlbGVtZW50TG9jYXRpb25Db2RlID0gdGhpcy5vcHRpb25zLnByb2R1Y3Rpb24gPyBudWxsIDogdGhpcy5nZXRFbGVtZW50TG9jYXRpb25Db2RlKHN0YXJ0KTtcbiAgICBpZiAodGhpcy5pc0F1dG9tYXRpY1J1bnRpbWUgJiYganN4Um9sZSAhPT0gSlNYUm9sZS5LZXlBZnRlclByb3BTcHJlYWQpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtVGFnVG9KU1hGdW5jKGVsZW1lbnRMb2NhdGlvbkNvZGUsIGpzeFJvbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybVRhZ1RvQ3JlYXRlRWxlbWVudChlbGVtZW50TG9jYXRpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRFbGVtZW50TG9jYXRpb25Db2RlKGZpcnN0VG9rZW5TdGFydCkge1xuICAgIGNvbnN0IGxpbmVOdW1iZXIgPSB0aGlzLmdldExpbmVOdW1iZXJGb3JJbmRleChmaXJzdFRva2VuU3RhcnQpO1xuICAgIHJldHVybiBgbGluZU51bWJlcjogJHtsaW5lTnVtYmVyfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaW5lIG51bWJlciBmb3IgdGhpcyBzb3VyY2UgcG9zaXRpb24uIFRoaXMgaXMgY2FsY3VsYXRlZCBsYXppbHkgYW5kXG4gICAqIG11c3QgYmUgY2FsbGVkIGluIGluY3JlYXNpbmcgb3JkZXIgYnkgaW5kZXguXG4gICAqL1xuICBnZXRMaW5lTnVtYmVyRm9ySW5kZXgoaW5kZXgpIHtcbiAgICBjb25zdCBjb2RlID0gdGhpcy50b2tlbnMuY29kZTtcbiAgICB3aGlsZSAodGhpcy5sYXN0SW5kZXggPCBpbmRleCAmJiB0aGlzLmxhc3RJbmRleCA8IGNvZGUubGVuZ3RoKSB7XG4gICAgICBpZiAoY29kZVt0aGlzLmxhc3RJbmRleF0gPT09IFwiXFxuXCIpIHtcbiAgICAgICAgdGhpcy5sYXN0TGluZU51bWJlcisrO1xuICAgICAgfVxuICAgICAgdGhpcy5sYXN0SW5kZXgrKztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGFzdExpbmVOdW1iZXI7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGUgY3VycmVudCBKU1ggZWxlbWVudCB0byBhIGNhbGwgdG8ganN4LCBqc3hzLCBvciBqc3hERVYuIFRoaXMgaXNcbiAgICogdGhlIHByaW1hcnkgdHJhbnNmb3JtYXRpb24gZm9yIHRoZSBhdXRvbWF0aWMgdHJhbnNmb3JtLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiA8ZGl2IGE9ezF9IGtleT17Mn0+SGVsbG97eH08L2Rpdj5cbiAgICogYmVjb21lc1xuICAgKiBqc3hzKCdkaXYnLCB7YTogMSwgY2hpbGRyZW46IFtcIkhlbGxvXCIsIHhdfSwgMilcbiAgICovXG4gIHRyYW5zZm9ybVRhZ1RvSlNYRnVuYyhlbGVtZW50TG9jYXRpb25Db2RlLCBqc3hSb2xlKSB7XG4gICAgY29uc3QgaXNTdGF0aWMgPSBqc3hSb2xlID09PSBKU1hSb2xlLlN0YXRpY0NoaWxkcmVuO1xuICAgIC8vIEZpcnN0IHRhZyBpcyBhbHdheXMganN4VGFnU3RhcnQuXG4gICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHRoaXMuZ2V0SlNYRnVuY0ludm9jYXRpb25Db2RlKGlzU3RhdGljKSk7XG5cbiAgICBsZXQga2V5Q29kZSA9IG51bGw7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmpzeFRhZ0VuZCkpIHtcbiAgICAgIC8vIEZyYWdtZW50IHN5bnRheC5cbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHt0aGlzLmdldEZyYWdtZW50Q29kZSgpfSwge2ApO1xuICAgICAgdGhpcy5wcm9jZXNzQXV0b21hdGljQ2hpbGRyZW5BbmRFbmRQcm9wcyhqc3hSb2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm9ybWFsIG9wZW4gdGFnIG9yIHNlbGYtY2xvc2luZyB0YWcuXG4gICAgICB0aGlzLnByb2Nlc3NUYWdJbnRybygpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIiwge1wiKTtcbiAgICAgIGtleUNvZGUgPSB0aGlzLnByb2Nlc3NQcm9wcyh0cnVlKTtcblxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0LnNsYXNoLCB0dC5qc3hUYWdFbmQpKSB7XG4gICAgICAgIC8vIFNlbGYtY2xvc2luZyB0YWcsIG5vIGNoaWxkcmVuIHRvIGFkZCwgc28gY2xvc2UgdGhlIHByb3BzLlxuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwifVwiKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4VGFnRW5kKSkge1xuICAgICAgICAvLyBUYWcgd2l0aCBjaGlsZHJlbi5cbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzQXV0b21hdGljQ2hpbGRyZW5BbmRFbmRQcm9wcyhqc3hSb2xlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGVpdGhlciAvPiBvciA+IGF0IHRoZSBlbmQgb2YgdGhlIHRhZy5cIik7XG4gICAgICB9XG4gICAgICAvLyBJZiBhIGtleSB3YXMgcHJlc2VudCwgbW92ZSBpdCB0byBpdHMgb3duIGFyZy4gTm90ZSB0aGF0IG1vdmluZyBjb2RlXG4gICAgICAvLyBsaWtlIHRoaXMgd2lsbCBjYXVzZSBsaW5lIG51bWJlcnMgdG8gZ2V0IG91dCBvZiBzeW5jIHdpdGhpbiB0aGUgSlNYXG4gICAgICAvLyBlbGVtZW50IGlmIHRoZSBrZXkgZXhwcmVzc2lvbiBoYXMgYSBuZXdsaW5lIGluIGl0LiBUaGlzIGlzIHVuZm9ydHVuYXRlLFxuICAgICAgLy8gYnV0IGhvcGVmdWxseSBzaG91bGQgYmUgcmFyZS5cbiAgICAgIGlmIChrZXlDb2RlKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCwgJHtrZXlDb2RlfWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMub3B0aW9ucy5wcm9kdWN0aW9uKSB7XG4gICAgICAvLyBJZiB0aGUga2V5IHdhc24ndCBhbHJlYWR5IGFkZGVkLCBhZGQgaXQgbm93IHNvIHdlIGNhbiBjb3JyZWN0bHkgc2V0XG4gICAgICAvLyBwb3NpdGlvbmFsIGFyZ3MgZm9yIGpzeERFVi5cbiAgICAgIGlmIChrZXlDb2RlID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIsIHZvaWQgMFwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCwgJHtpc1N0YXRpY30sICR7dGhpcy5nZXREZXZTb3VyY2UoZWxlbWVudExvY2F0aW9uQ29kZSl9LCB0aGlzYCk7XG4gICAgfVxuICAgIC8vIFdlJ3JlIGF0IHRoZSBjbG9zZS10YWcgb3IgdGhlIGVuZCBvZiBhIHNlbGYtY2xvc2luZyB0YWcsIHNvIHJlbW92ZVxuICAgIC8vIGV2ZXJ5dGhpbmcgZWxzZSBhbmQgY2xvc2UgdGhlIGZ1bmN0aW9uIGNhbGwuXG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5qc3hUYWdFbmQpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCIpXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIGN1cnJlbnQgSlNYIGVsZW1lbnQgdG8gYSBjcmVhdGVFbGVtZW50IGNhbGwuIEluIHRoZSBjbGFzc2ljXG4gICAqIHJ1bnRpbWUsIHRoaXMgaXMgdGhlIG9ubHkgY2FzZS4gSW4gdGhlIGF1dG9tYXRpYyBydW50aW1lLCB0aGlzIGlzIGNhbGxlZFxuICAgKiBhcyBhIGZhbGxiYWNrIGluIHNvbWUgc2l0dWF0aW9ucy5cbiAgICpcbiAgICogRXhhbXBsZTpcbiAgICogPGRpdiBhPXsxfSBrZXk9ezJ9PkhlbGxve3h9PC9kaXY+XG4gICAqIGJlY29tZXNcbiAgICogUmVhY3QuY3JlYXRlRWxlbWVudCgnZGl2Jywge2E6IDEsIGtleTogMn0sIFwiSGVsbG9cIiwgeClcbiAgICovXG4gIHRyYW5zZm9ybVRhZ1RvQ3JlYXRlRWxlbWVudChlbGVtZW50TG9jYXRpb25Db2RlKSB7XG4gICAgLy8gRmlyc3QgdGFnIGlzIGFsd2F5cyBqc3hUYWdTdGFydC5cbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4odGhpcy5nZXRDcmVhdGVFbGVtZW50SW52b2NhdGlvbkNvZGUoKSk7XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4VGFnRW5kKSkge1xuICAgICAgLy8gRnJhZ21lbnQgc3ludGF4LlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAke3RoaXMuZ2V0RnJhZ21lbnRDb2RlKCl9LCBudWxsYCk7XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbih0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm9ybWFsIG9wZW4gdGFnIG9yIHNlbGYtY2xvc2luZyB0YWcuXG4gICAgICB0aGlzLnByb2Nlc3NUYWdJbnRybygpO1xuICAgICAgdGhpcy5wcm9jZXNzUHJvcHNPYmplY3RXaXRoRGV2SW5mbyhlbGVtZW50TG9jYXRpb25Db2RlKTtcblxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0LnNsYXNoLCB0dC5qc3hUYWdFbmQpKSB7XG4gICAgICAgIC8vIFNlbGYtY2xvc2luZyB0YWc7IG5vIGNoaWxkcmVuIHRvIHByb2Nlc3MuXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmpzeFRhZ0VuZCkpIHtcbiAgICAgICAgLy8gVGFnIHdpdGggY2hpbGRyZW4gYW5kIGEgY2xvc2UtdGFnOyBwcm9jZXNzIHRoZSBjaGlsZHJlbiBhcyBhcmdzLlxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbih0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGVpdGhlciAvPiBvciA+IGF0IHRoZSBlbmQgb2YgdGhlIHRhZy5cIik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFdlJ3JlIGF0IHRoZSBjbG9zZS10YWcgb3IgdGhlIGVuZCBvZiBhIHNlbGYtY2xvc2luZyB0YWcsIHNvIHJlbW92ZVxuICAgIC8vIGV2ZXJ5dGhpbmcgZWxzZSBhbmQgY2xvc2UgdGhlIGZ1bmN0aW9uIGNhbGwuXG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5qc3hUYWdFbmQpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCIpXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29kZSBmb3IgdGhlIHJlbGV2YW50IGZ1bmN0aW9uIGZvciB0aGlzIGNvbnRleHQ6IGpzeCwganN4cyxcbiAgICogb3IganN4REVWLiBUaGUgZm9sbG93aW5nIG9wZW4tcGFyZW4gaXMgaW5jbHVkZWQgYXMgd2VsbC5cbiAgICpcbiAgICogVGhlc2UgZnVuY3Rpb25zIGFyZSBvbmx5IHVzZWQgZm9yIHRoZSBhdXRvbWF0aWMgcnVudGltZSwgc28gdGhleSBhcmUgYWx3YXlzXG4gICAqIGF1dG8taW1wb3J0ZWQsIGJ1dCB0aGUgYXV0by1pbXBvcnQgd2lsbCBiZSBlaXRoZXIgQ0pTIG9yIEVTTSBiYXNlZCBvbiB0aGVcbiAgICogdGFyZ2V0IG1vZHVsZSBmb3JtYXQuXG4gICAqL1xuICBnZXRKU1hGdW5jSW52b2NhdGlvbkNvZGUoaXNTdGF0aWMpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnByb2R1Y3Rpb24pIHtcbiAgICAgIGlmIChpc1N0YXRpYykge1xuICAgICAgICByZXR1cm4gdGhpcy5jbGFpbUF1dG9JbXBvcnRlZEZ1bmNJbnZvY2F0aW9uKFwianN4c1wiLCBcIi9qc3gtcnVudGltZVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsYWltQXV0b0ltcG9ydGVkRnVuY0ludm9jYXRpb24oXCJqc3hcIiwgXCIvanN4LXJ1bnRpbWVcIik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNsYWltQXV0b0ltcG9ydGVkRnVuY0ludm9jYXRpb24oXCJqc3hERVZcIiwgXCIvanN4LWRldi1ydW50aW1lXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGNvZGUgdG8gdXNlIGZvciB0aGUgY3JlYXRlRWxlbWVudCBmdW5jdGlvbiwgZS5nLlxuICAgKiBgUmVhY3QuY3JlYXRlRWxlbWVudGAsIGluY2x1ZGluZyB0aGUgZm9sbG93aW5nIG9wZW4tcGFyZW4uXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24gdG8gdXNlIGZvciB0aGUgY2xhc3NpYyBydW50aW1lLiBGb3IgdGhlXG4gICAqIGF1dG9tYXRpYyBydW50aW1lLCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYXMgYSBmYWxsYmFjayBmdW5jdGlvbiB0b1xuICAgKiBwcmVzZXJ2ZSBiZWhhdmlvciB3aGVuIHRoZXJlIGlzIGEgcHJvcCBzcHJlYWQgZm9sbG93ZWQgYnkgYW4gZXhwbGljaXRcbiAgICoga2V5LiBJbiB0aGF0IGF1dG9tYXRpYyBydW50aW1lIGNhc2UsIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgYXV0b21hdGljYWxseVxuICAgKiBpbXBvcnRlZC5cbiAgICovXG4gIGdldENyZWF0ZUVsZW1lbnRJbnZvY2F0aW9uQ29kZSgpIHtcbiAgICBpZiAodGhpcy5pc0F1dG9tYXRpY1J1bnRpbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsYWltQXV0b0ltcG9ydGVkRnVuY0ludm9jYXRpb24oXCJjcmVhdGVFbGVtZW50XCIsIFwiXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7anN4UHJhZ21hSW5mb30gPSB0aGlzO1xuICAgICAgY29uc3QgcmVzb2x2ZWRQcmFnbWFCYXNlTmFtZSA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yXG4gICAgICAgID8gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KGpzeFByYWdtYUluZm8uYmFzZSkgfHwganN4UHJhZ21hSW5mby5iYXNlXG4gICAgICAgIDoganN4UHJhZ21hSW5mby5iYXNlO1xuICAgICAgcmV0dXJuIGAke3Jlc29sdmVkUHJhZ21hQmFzZU5hbWV9JHtqc3hQcmFnbWFJbmZvLnN1ZmZpeH0oYDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBjb2RlIHRvIHVzZSBhcyB0aGUgY29tcG9uZW50IHdoZW4gY29tcGlsaW5nIGEgc2hvcnRoYW5kXG4gICAqIGZyYWdtZW50LCBlLmcuIGBSZWFjdC5GcmFnbWVudGAuXG4gICAqXG4gICAqIFRoaXMgbWF5IGJlIGNhbGxlZCBmcm9tIGVpdGhlciB0aGUgY2xhc3NpYyBvciBhdXRvbWF0aWMgcnVudGltZSwgYW5kXG4gICAqIHRoZSB2YWx1ZSBzaG91bGQgYmUgYXV0by1pbXBvcnRlZCBmb3IgdGhlIGF1dG9tYXRpYyBydW50aW1lLlxuICAgKi9cbiAgZ2V0RnJhZ21lbnRDb2RlKCkge1xuICAgIGlmICh0aGlzLmlzQXV0b21hdGljUnVudGltZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xhaW1BdXRvSW1wb3J0ZWROYW1lKFxuICAgICAgICBcIkZyYWdtZW50XCIsXG4gICAgICAgIHRoaXMub3B0aW9ucy5wcm9kdWN0aW9uID8gXCIvanN4LXJ1bnRpbWVcIiA6IFwiL2pzeC1kZXYtcnVudGltZVwiLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qge2pzeFByYWdtYUluZm99ID0gdGhpcztcbiAgICAgIGNvbnN0IHJlc29sdmVkRnJhZ21lbnRQcmFnbWFCYXNlTmFtZSA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yXG4gICAgICAgID8gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KGpzeFByYWdtYUluZm8uZnJhZ21lbnRCYXNlKSB8fFxuICAgICAgICAgIGpzeFByYWdtYUluZm8uZnJhZ21lbnRCYXNlXG4gICAgICAgIDoganN4UHJhZ21hSW5mby5mcmFnbWVudEJhc2U7XG4gICAgICByZXR1cm4gcmVzb2x2ZWRGcmFnbWVudFByYWdtYUJhc2VOYW1lICsganN4UHJhZ21hSW5mby5mcmFnbWVudFN1ZmZpeDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGNvZGUgdGhhdCBpbnZva2VzIHRoZSBnaXZlbiBmdW5jdGlvbi5cbiAgICpcbiAgICogV2hlbiB0aGUgaW1wb3J0cyB0cmFuc2Zvcm0gaXMgZW5hYmxlZCwgdXNlIHRoZSBDSlNJbXBvcnRUcmFuc2Zvcm1lclxuICAgKiBzdHJhdGVneSBvZiB1c2luZyBgLmNhbGwodm9pZCAwLCAuLi5gIHRvIGF2b2lkIHBhc3NpbmcgYSBgdGhpc2AgdmFsdWUgaW4gYVxuICAgKiBzaXR1YXRpb24gdGhhdCB3b3VsZCBvdGhlcndpc2UgbG9vayBsaWtlIGEgbWV0aG9kIGNhbGwuXG4gICAqL1xuICBjbGFpbUF1dG9JbXBvcnRlZEZ1bmNJbnZvY2F0aW9uKGZ1bmNOYW1lLCBpbXBvcnRQYXRoU3VmZml4KSB7XG4gICAgY29uc3QgZnVuY0NvZGUgPSB0aGlzLmNsYWltQXV0b0ltcG9ydGVkTmFtZShmdW5jTmFtZSwgaW1wb3J0UGF0aFN1ZmZpeCk7XG4gICAgaWYgKHRoaXMuaW1wb3J0UHJvY2Vzc29yKSB7XG4gICAgICByZXR1cm4gYCR7ZnVuY0NvZGV9LmNhbGwodm9pZCAwLCBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7ZnVuY0NvZGV9KGA7XG4gICAgfVxuICB9XG5cbiAgY2xhaW1BdXRvSW1wb3J0ZWROYW1lKGZ1bmNOYW1lLCBpbXBvcnRQYXRoU3VmZml4KSB7XG4gICAgaWYgKHRoaXMuaW1wb3J0UHJvY2Vzc29yKSB7XG4gICAgICAvLyBDSlMgbW9kZTogY2xhaW0gYSBuYW1lIGZvciB0aGUgbW9kdWxlIGFuZCBtYXJrIGl0IGZvciBpbXBvcnQuXG4gICAgICBjb25zdCBwYXRoID0gdGhpcy5qc3hJbXBvcnRTb3VyY2UgKyBpbXBvcnRQYXRoU3VmZml4O1xuICAgICAgaWYgKCF0aGlzLmNqc0F1dG9tYXRpY01vZHVsZU5hbWVSZXNvbHV0aW9uc1twYXRoXSkge1xuICAgICAgICB0aGlzLmNqc0F1dG9tYXRpY01vZHVsZU5hbWVSZXNvbHV0aW9uc1twYXRoXSA9XG4gICAgICAgICAgdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0RnJlZUlkZW50aWZpZXJGb3JQYXRoKHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke3RoaXMuY2pzQXV0b21hdGljTW9kdWxlTmFtZVJlc29sdXRpb25zW3BhdGhdfS4ke2Z1bmNOYW1lfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVTTSBtb2RlOiBjbGFpbSBhIG5hbWUgZm9yIHRoaXMgZnVuY3Rpb24gYW5kIGFkZCBpdCB0byB0aGUgbmFtZXMgdGhhdFxuICAgICAgLy8gc2hvdWxkIGJlIGF1dG8taW1wb3J0ZWQgd2hlbiB0aGUgcHJlZml4IGlzIGdlbmVyYXRlZC5cbiAgICAgIGlmICghdGhpcy5lc21BdXRvbWF0aWNJbXBvcnROYW1lUmVzb2x1dGlvbnNbZnVuY05hbWVdKSB7XG4gICAgICAgIHRoaXMuZXNtQXV0b21hdGljSW1wb3J0TmFtZVJlc29sdXRpb25zW2Z1bmNOYW1lXSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcbiAgICAgICAgICBgXyR7ZnVuY05hbWV9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmVzbUF1dG9tYXRpY0ltcG9ydE5hbWVSZXNvbHV0aW9uc1tmdW5jTmFtZV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgdGhlIGZpcnN0IHBhcnQgb2YgYSB0YWcsIGJlZm9yZSBhbnkgcHJvcHMuXG4gICAqL1xuICBwcm9jZXNzVGFnSW50cm8oKSB7XG4gICAgLy8gV2FsayBmb3J3YXJkIHVudGlsIHdlIHNlZSBvbmUgb2YgdGhlc2UgcGF0dGVybnM6XG4gICAgLy8ganN4TmFtZSB0byBzdGFydCB0aGUgZmlyc3QgcHJvcCwgcHJlY2VkZWQgYnkgYW5vdGhlciBqc3hOYW1lIHRvIGVuZCB0aGUgdGFnIG5hbWUuXG4gICAgLy8ganN4TmFtZSB0byBzdGFydCB0aGUgZmlyc3QgcHJvcCwgcHJlY2VkZWQgYnkgZ3JlYXRlclRoYW4gdG8gZW5kIHRoZSB0eXBlIGFyZ3VtZW50LlxuICAgIC8vIFtvcGVuIGJyYWNlXSB0byBzdGFydCB0aGUgZmlyc3QgcHJvcC5cbiAgICAvLyBbanN4VGFnRW5kXSB0byBlbmQgdGhlIG9wZW4tdGFnLlxuICAgIC8vIFtzbGFzaCwganN4VGFnRW5kXSB0byBlbmQgdGhlIHNlbGYtY2xvc2luZyB0YWcuXG4gICAgbGV0IGludHJvRW5kID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxO1xuICAgIHdoaWxlIChcbiAgICAgIHRoaXMudG9rZW5zLnRva2Vuc1tpbnRyb0VuZF0uaXNUeXBlIHx8XG4gICAgICAoIXRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbnRyb0VuZCAtIDEsIHR0LmpzeE5hbWUsIHR0LmpzeE5hbWUpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW50cm9FbmQgLSAxLCB0dC5ncmVhdGVyVGhhbiwgdHQuanN4TmFtZSkgJiZcbiAgICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbnRyb0VuZCwgdHQuYnJhY2VMKSAmJlxuICAgICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGludHJvRW5kLCB0dC5qc3hUYWdFbmQpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW50cm9FbmQsIHR0LnNsYXNoLCB0dC5qc3hUYWdFbmQpKVxuICAgICkge1xuICAgICAgaW50cm9FbmQrKztcbiAgICB9XG4gICAgaWYgKGludHJvRW5kID09PSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEpIHtcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpO1xuICAgICAgaWYgKHN0YXJ0c1dpdGhMb3dlckNhc2UodGFnTmFtZSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAnJHt0YWdOYW1lfSdgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgaW50cm9FbmQpIHtcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9wcywgYWRkIHRoZSBwcm9wcyBhcmd1bWVudCB0b1xuICAgKiBSZWFjdC5jcmVhdGVFbGVtZW50LCBpbmNsdWRpbmcgdGhlIGNvbW1hIGJlZm9yZSBpdC5cbiAgICovXG4gIHByb2Nlc3NQcm9wc09iamVjdFdpdGhEZXZJbmZvKGVsZW1lbnRMb2NhdGlvbkNvZGUpIHtcbiAgICBjb25zdCBkZXZQcm9wcyA9IHRoaXMub3B0aW9ucy5wcm9kdWN0aW9uXG4gICAgICA/IFwiXCJcbiAgICAgIDogYF9fc2VsZjogdGhpcywgX19zb3VyY2U6ICR7dGhpcy5nZXREZXZTb3VyY2UoZWxlbWVudExvY2F0aW9uQ29kZSl9YDtcbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmpzeE5hbWUpICYmICF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZUwpKSB7XG4gICAgICBpZiAoZGV2UHJvcHMpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgLCB7JHtkZXZQcm9wc319YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAsIG51bGxgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgLCB7YCk7XG4gICAgdGhpcy5wcm9jZXNzUHJvcHMoZmFsc2UpO1xuICAgIGlmIChkZXZQcm9wcykge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgICR7ZGV2UHJvcHN9fWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwifVwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSBjb3JlIHBhcnQgb2YgdGhlIHByb3BzLCBhc3N1bWluZyB0aGF0IGEgeyBoYXMgYWxyZWFkeSBiZWVuXG4gICAqIGluc2VydGVkIGJlZm9yZSB1cyBhbmQgdGhhdCBhIH0gd2lsbCBiZSBpbnNlcnRlZCBhZnRlciB1cy5cbiAgICpcbiAgICogSWYgZXh0cmFjdEtleUNvZGUgaXMgdHJ1ZSAoaS5lLiB3aGVuIHVzaW5nIGFueSBqc3guLi4gZnVuY3Rpb24pLCBhbnkgcHJvcFxuICAgKiBuYW1lZCBcImtleVwiIGhhcyBpdHMgY29kZSBjYXB0dXJlZCBhbmQgcmV0dXJuZWQgcmF0aGVyIHRoYW4gYmVpbmcgZW1pdHRlZCB0b1xuICAgKiB0aGUgb3V0cHV0IGNvZGUuIFRoaXMgc2hpZnRzIGxpbmUgbnVtYmVycywgYW5kIGVtaXR0aW5nIHRoZSBjb2RlIGxhdGVyIHdpbGxcbiAgICogY29ycmVjdCBsaW5lIG51bWJlcnMgYWdhaW4uIElmIG5vIGtleSBpcyBmb3VuZCBvciBpZiBleHRyYWN0S2V5Q29kZSBpc1xuICAgKiBmYWxzZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIG51bGwuXG4gICAqL1xuICBwcm9jZXNzUHJvcHMoZXh0cmFjdEtleUNvZGUpIHtcbiAgICBsZXQga2V5Q29kZSA9IG51bGw7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5qc3hOYW1lLCB0dC5lcSkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHJlZ3VsYXIga2V5PXt2YWx1ZX0gb3Iga2V5PVwidmFsdWVcIiBwcm9wLlxuICAgICAgICBjb25zdCBwcm9wTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgICAgIGlmIChleHRyYWN0S2V5Q29kZSAmJiBwcm9wTmFtZSA9PT0gXCJrZXlcIikge1xuICAgICAgICAgIGlmIChrZXlDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgcHJvcHMgbGlzdCBoYXMgbXVsdGlwbGUga2V5cy4gRGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBhcmVcbiAgICAgICAgICAgIC8vIGluY29uc2lzdGVudCBhYm91dCB3aGF0IHRvIGRvIGhlcmU6IGFzIG9mIHRoaXMgd3JpdGluZywgQmFiZWwgYW5kXG4gICAgICAgICAgICAvLyBzd2Mga2VlcCB0aGUgKmxhc3QqIGtleSBhbmQgY29tcGxldGVseSByZW1vdmUgdGhlIHJlc3QsIHdoaWxlXG4gICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHVzZXMgdGhlICpmaXJzdCoga2V5IGFuZCBsZWF2ZXMgdGhlIG90aGVycyBhcyByZWd1bGFyXG4gICAgICAgICAgICAvLyBwcm9wcy4gVGhlIFJlYWN0IHRlYW0gY29sbGFib3JhdGVkIHdpdGggQmFiZWwgb24gdGhlXG4gICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGJlaGF2aW9yLCBzbyBwcmVzdW1hYmx5IHRoZSBCYWJlbCBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgdGhlIG9uZSB0byB1c2UuXG4gICAgICAgICAgICAvLyBTaW5jZSB3ZSB3b24ndCBldmVyIGJlIGVtaXR0aW5nIHRoZSBwcmV2aW91cyBrZXkgY29kZSwgd2UgbmVlZCB0b1xuICAgICAgICAgICAgLy8gYXQgbGVhc3QgZW1pdCBpdHMgbmV3bGluZXMgaGVyZSBzbyB0aGF0IHRoZSBsaW5lIG51bWJlcnMgbWF0Y2ggdXBcbiAgICAgICAgICAgIC8vIGluIHRoZSBsb25nIHJ1bi5cbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoa2V5Q29kZS5yZXBsYWNlKC9bXlxcbl0vZywgXCJcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBrZXlcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAgIC8vID1cbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy50b2tlbnMuc25hcHNob3QoKTtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NQcm9wVmFsdWUoKTtcbiAgICAgICAgICBrZXlDb2RlID0gdGhpcy50b2tlbnMuZGFuZ2Vyb3VzbHlHZXRBbmRSZW1vdmVDb2RlU2luY2VTbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICAgICAgLy8gRG9uJ3QgYWRkIGEgY29tbWFcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NQcm9wTmFtZShwcm9wTmFtZSk7XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiOiBcIik7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzUHJvcFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4TmFtZSkpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNob3J0aGFuZCBwcm9wIGxpa2UgPGlucHV0IGRpc2FibGVkIC8+LlxuICAgICAgICBjb25zdCBwcm9wTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgICAgIHRoaXMucHJvY2Vzc1Byb3BOYW1lKHByb3BOYW1lKTtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIjogdHJ1ZVwiKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VMKSkge1xuICAgICAgICAvLyBUaGlzIGlzIHByb3Agc3ByZWFkLCBsaWtlIDxkaXYgey4uLmdldFByb3BzKCl9Piwgd2hpY2ggd2UgY2FuIHBhc3NcbiAgICAgICAgLy8gdGhyb3VnaCBmYWlybHkgZGlyZWN0bHkgYXMgYW4gb2JqZWN0IHNwcmVhZC5cbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIixcIik7XG4gICAgfVxuICAgIHJldHVybiBrZXlDb2RlO1xuICB9XG5cbiAgcHJvY2Vzc1Byb3BOYW1lKHByb3BOYW1lKSB7XG4gICAgaWYgKHByb3BOYW1lLmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAnJHtwcm9wTmFtZX0nYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NQcm9wVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlTCkpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmpzeFRhZ1N0YXJ0KSkge1xuICAgICAgdGhpcy5wcm9jZXNzSlNYVGFnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc1N0cmluZ1Byb3BWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NTdHJpbmdQcm9wVmFsdWUoKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICBjb25zdCB2YWx1ZUNvZGUgPSB0aGlzLnRva2Vucy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0ICsgMSwgdG9rZW4uZW5kIC0gMSk7XG4gICAgY29uc3QgcmVwbGFjZW1lbnRDb2RlID0gZm9ybWF0SlNYVGV4dFJlcGxhY2VtZW50KHZhbHVlQ29kZSk7XG4gICAgY29uc3QgbGl0ZXJhbENvZGUgPSBmb3JtYXRKU1hTdHJpbmdWYWx1ZUxpdGVyYWwodmFsdWVDb2RlKTtcbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4obGl0ZXJhbENvZGUgKyByZXBsYWNlbWVudENvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0aW5nIGluIHRoZSBtaWRkbGUgb2YgdGhlIHByb3BzIG9iamVjdCBsaXRlcmFsLCBwcm9kdWNlIGFuIGFkZGl0aW9uYWxcbiAgICogcHJvcCBmb3IgdGhlIGNoaWxkcmVuIGFuZCBjbG9zZSB0aGUgb2JqZWN0IGxpdGVyYWwuXG4gICAqL1xuICBwcm9jZXNzQXV0b21hdGljQ2hpbGRyZW5BbmRFbmRQcm9wcyhqc3hSb2xlKSB7XG4gICAgaWYgKGpzeFJvbGUgPT09IEpTWFJvbGUuU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIgY2hpbGRyZW46IFtcIik7XG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihmYWxzZSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiXX1cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwYXJzZXIgaW5mb3JtYXRpb24gdGVsbHMgdXMgd2hldGhlciB3ZSB3aWxsIHNlZSBhIHJlYWwgY2hpbGQgb3IgaWZcbiAgICAgIC8vIGFsbCByZW1haW5pbmcgY2hpbGRyZW4gKGlmIGFueSkgd2lsbCByZXNvbHZlIHRvIGVtcHR5LiBJZiB0aGVyZSBhcmUgbm9cbiAgICAgIC8vIG5vbi1lbXB0eSBjaGlsZHJlbiwgZG9uJ3QgZW1pdCBhIGNoaWxkcmVuIHByb3AgYXQgYWxsLCBidXQgc3RpbGxcbiAgICAgIC8vIHByb2Nlc3MgY2hpbGRyZW4gc28gdGhhdCB3ZSBwcm9wZXJseSB0cmFuc2Zvcm0gdGhlIGNvZGUgaW50byBub3RoaW5nLlxuICAgICAgaWYgKGpzeFJvbGUgPT09IEpTWFJvbGUuT25lQ2hpbGQpIHtcbiAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIiBjaGlsZHJlbjogXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oZmFsc2UpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIn1cIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBjaGlsZHJlbiBpbnRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdoaWNoIHdpbGwgYmUgZWl0aGVyXG4gICAqIGFyZ3VtZW50cyB0byBjcmVhdGVFbGVtZW50IG9yIGFycmF5IGVsZW1lbnRzIG9mIGEgY2hpbGRyZW4gcHJvcC5cbiAgICovXG4gIHByb2Nlc3NDaGlsZHJlbihuZWVkc0luaXRpYWxDb21tYSkge1xuICAgIGxldCBuZWVkc0NvbW1hID0gbmVlZHNJbml0aWFsQ29tbWE7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5qc3hUYWdTdGFydCwgdHQuc2xhc2gpKSB7XG4gICAgICAgIC8vIENsb3NpbmcgdGFnLCBzbyBubyBtb3JlIGNoaWxkcmVuLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGlkRW1pdEVsZW1lbnQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZUwpKSB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5icmFjZUwsIHR0LmJyYWNlUikpIHtcbiAgICAgICAgICAvLyBFbXB0eSBpbnRlcnBvbGF0aW9ucyBhbmQgY29tbWVudC1vbmx5IGludGVycG9sYXRpb25zIGFyZSBhbGxvd2VkXG4gICAgICAgICAgLy8gYW5kIGRvbid0IGNyZWF0ZSBhbiBleHRyYSBjaGlsZCBhcmcuXG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiXCIpO1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJbnRlcnBvbGF0ZWQgZXhwcmVzc2lvbi5cbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4obmVlZHNDb21tYSA/IFwiLCBcIiA6IFwiXCIpO1xuICAgICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJcIik7XG4gICAgICAgICAgZGlkRW1pdEVsZW1lbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmpzeFRhZ1N0YXJ0KSkge1xuICAgICAgICAvLyBDaGlsZCBKU1ggZWxlbWVudFxuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKG5lZWRzQ29tbWEgPyBcIiwgXCIgOiBcIlwiKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzSlNYVGFnKCk7XG4gICAgICAgIGRpZEVtaXRFbGVtZW50ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4VGV4dCkgfHwgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4RW1wdHlUZXh0KSkge1xuICAgICAgICBkaWRFbWl0RWxlbWVudCA9IHRoaXMucHJvY2Vzc0NoaWxkVGV4dEVsZW1lbnQobmVlZHNDb21tYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIHRva2VuIHdoZW4gcHJvY2Vzc2luZyBKU1ggY2hpbGRyZW4uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGRpZEVtaXRFbGVtZW50KSB7XG4gICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIGEgSlNYIHRleHQgZWxlbWVudCBpbnRvIGEgc3RyaW5nIGxpdGVyYWwsIG9yIG5vdGhpbmcgYXQgYWxsIGlmIHRoZSBKU1hcbiAgICogdGV4dCByZXNvbHZlcyB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYSBzdHJpbmcgbGl0ZXJhbCBpcyBlbWl0dGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm9jZXNzQ2hpbGRUZXh0RWxlbWVudChuZWVkc0NvbW1hKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICBjb25zdCB2YWx1ZUNvZGUgPSB0aGlzLnRva2Vucy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0LCB0b2tlbi5lbmQpO1xuICAgIGNvbnN0IHJlcGxhY2VtZW50Q29kZSA9IGZvcm1hdEpTWFRleHRSZXBsYWNlbWVudCh2YWx1ZUNvZGUpO1xuICAgIGNvbnN0IGxpdGVyYWxDb2RlID0gZm9ybWF0SlNYVGV4dExpdGVyYWwodmFsdWVDb2RlKTtcbiAgICBpZiAobGl0ZXJhbENvZGUgPT09ICdcIlwiJykge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHJlcGxhY2VtZW50Q29kZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHtuZWVkc0NvbW1hID8gXCIsIFwiIDogXCJcIn0ke2xpdGVyYWxDb2RlfSR7cmVwbGFjZW1lbnRDb2RlfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGV2U291cmNlKGVsZW1lbnRMb2NhdGlvbkNvZGUpIHtcbiAgICByZXR1cm4gYHtmaWxlTmFtZTogJHt0aGlzLmdldEZpbGVuYW1lVmFyTmFtZSgpfSwgJHtlbGVtZW50TG9jYXRpb25Db2RlfX1gO1xuICB9XG5cbiAgZ2V0RmlsZW5hbWVWYXJOYW1lKCkge1xuICAgIGlmICghdGhpcy5maWxlbmFtZVZhck5hbWUpIHtcbiAgICAgIHRoaXMuZmlsZW5hbWVWYXJOYW1lID0gdGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiX2pzeEZpbGVOYW1lXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5maWxlbmFtZVZhck5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTcGVjIGZvciBpZGVudGlmaWVyczogaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNwcm9kLUlkZW50aWZpZXJTdGFydC5cbiAqXG4gKiBSZWFsbHkgb25seSB0cmVhdCBhbnl0aGluZyBzdGFydGluZyB3aXRoIGEteiBhcyB0YWcgbmFtZXMuICBgX2AsIGAkYCwgYFx1MDBFOWBcbiAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGNvbXBvbmVudCBuYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRzV2l0aExvd2VyQ2FzZShzKSB7XG4gIGNvbnN0IGZpcnN0Q2hhciA9IHMuY2hhckNvZGVBdCgwKTtcbiAgcmV0dXJuIGZpcnN0Q2hhciA+PSBjaGFyQ29kZXMubG93ZXJjYXNlQSAmJiBmaXJzdENoYXIgPD0gY2hhckNvZGVzLmxvd2VyY2FzZVo7XG59XG5cbi8qKlxuICogVHVybiB0aGUgZ2l2ZW4ganN4VGV4dCBzdHJpbmcgaW50byBhIEpTIHN0cmluZyBsaXRlcmFsLiBMZWFkaW5nIGFuZCB0cmFpbGluZ1xuICogd2hpdGVzcGFjZSBvbiBsaW5lcyBpcyByZW1vdmVkLCBleGNlcHQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIG9wZW4tdGFnIGFuZFxuICogYmVmb3JlIHRoZSBjbG9zZS10YWcuIEVtcHR5IGxpbmVzIGFyZSBjb21wbGV0ZWx5IHJlbW92ZWQsIGFuZCBzcGFjZXMgYXJlXG4gKiBhZGRlZCBiZXR3ZWVuIGxpbmVzIGFmdGVyIHRoYXQuXG4gKlxuICogV2UgdXNlIEpTT04uc3RyaW5naWZ5IHRvIGludHJvZHVjZSBlc2NhcGUgY2hhcmFjdGVycyBhcyBuZWNlc3NhcnksIGFuZCB0cmltXG4gKiB0aGUgc3RhcnQgYW5kIGVuZCBvZiBlYWNoIGxpbmUgYW5kIHJlbW92ZSBibGFuayBsaW5lcy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0SlNYVGV4dExpdGVyYWwodGV4dCkge1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IHdoaXRlc3BhY2UgPSBcIlwiO1xuXG4gIGxldCBpc0luSW5pdGlhbExpbmVXaGl0ZXNwYWNlID0gZmFsc2U7XG4gIGxldCBzZWVuTm9uV2hpdGVzcGFjZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjID0gdGV4dFtpXTtcbiAgICBpZiAoYyA9PT0gXCIgXCIgfHwgYyA9PT0gXCJcXHRcIiB8fCBjID09PSBcIlxcclwiKSB7XG4gICAgICBpZiAoIWlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgd2hpdGVzcGFjZSArPSBjO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYyA9PT0gXCJcXG5cIikge1xuICAgICAgd2hpdGVzcGFjZSA9IFwiXCI7XG4gICAgICBpc0luSW5pdGlhbExpbmVXaGl0ZXNwYWNlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHNlZW5Ob25XaGl0ZXNwYWNlICYmIGlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgcmVzdWx0ICs9IFwiIFwiO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IHdoaXRlc3BhY2U7XG4gICAgICB3aGl0ZXNwYWNlID0gXCJcIjtcbiAgICAgIGlmIChjID09PSBcIiZcIikge1xuICAgICAgICBjb25zdCB7ZW50aXR5LCBuZXdJfSA9IHByb2Nlc3NFbnRpdHkodGV4dCwgaSArIDEpO1xuICAgICAgICBpID0gbmV3SSAtIDE7XG4gICAgICAgIHJlc3VsdCArPSBlbnRpdHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgKz0gYztcbiAgICAgIH1cbiAgICAgIHNlZW5Ob25XaGl0ZXNwYWNlID0gdHJ1ZTtcbiAgICAgIGlzSW5Jbml0aWFsTGluZVdoaXRlc3BhY2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgaWYgKCFpc0luSW5pdGlhbExpbmVXaGl0ZXNwYWNlKSB7XG4gICAgcmVzdWx0ICs9IHdoaXRlc3BhY2U7XG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XG59XG5cbi8qKlxuICogUHJvZHVjZSB0aGUgY29kZSB0aGF0IHNob3VsZCBiZSBwcmludGVkIGFmdGVyIHRoZSBKU1ggdGV4dCBzdHJpbmcgbGl0ZXJhbCxcbiAqIHdpdGggbW9zdCBjb250ZW50IHJlbW92ZWQsIGJ1dCBhbGwgbmV3bGluZXMgcHJlc2VydmVkIGFuZCBhbGwgc3BhY2luZyBhdCB0aGVcbiAqIGVuZCBwcmVzZXJ2ZWQuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdEpTWFRleHRSZXBsYWNlbWVudCh0ZXh0KSB7XG4gIGxldCBudW1OZXdsaW5lcyA9IDA7XG4gIGxldCBudW1TcGFjZXMgPSAwO1xuICBmb3IgKGNvbnN0IGMgb2YgdGV4dCkge1xuICAgIGlmIChjID09PSBcIlxcblwiKSB7XG4gICAgICBudW1OZXdsaW5lcysrO1xuICAgICAgbnVtU3BhY2VzID0gMDtcbiAgICB9IGVsc2UgaWYgKGMgPT09IFwiIFwiKSB7XG4gICAgICBudW1TcGFjZXMrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFwiXFxuXCIucmVwZWF0KG51bU5ld2xpbmVzKSArIFwiIFwiLnJlcGVhdChudW1TcGFjZXMpO1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIHN0cmluZyBpbiB0aGUgdmFsdWUgcG9zaXRpb24gb2YgYSBKU1ggcHJvcC5cbiAqXG4gKiBVc2UgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gYXMgY29udmVydEF0dHJpYnV0ZSBmcm9tXG4gKiBiYWJlbC1oZWxwZXItYnVpbGRlci1yZWFjdC1qc3guXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdEpTWFN0cmluZ1ZhbHVlTGl0ZXJhbCh0ZXh0KSB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjID0gdGV4dFtpXTtcbiAgICBpZiAoYyA9PT0gXCJcXG5cIikge1xuICAgICAgaWYgKC9cXHMvLnRlc3QodGV4dFtpICsgMV0pKSB7XG4gICAgICAgIHJlc3VsdCArPSBcIiBcIjtcbiAgICAgICAgd2hpbGUgKGkgPCB0ZXh0Lmxlbmd0aCAmJiAvXFxzLy50ZXN0KHRleHRbaSArIDFdKSkge1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ICs9IFwiXFxuXCI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjID09PSBcIiZcIikge1xuICAgICAgY29uc3Qge2VudGl0eSwgbmV3SX0gPSBwcm9jZXNzRW50aXR5KHRleHQsIGkgKyAxKTtcbiAgICAgIHJlc3VsdCArPSBlbnRpdHk7XG4gICAgICBpID0gbmV3SSAtIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCArPSBjO1xuICAgIH1cbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbn1cblxuLyoqXG4gKiBTdGFydGluZyBhdCBhICYsIHNlZSBpZiB0aGVyZSdzIGFuIEhUTUwgZW50aXR5IChzcGVjaWZpZWQgYnkgbmFtZSwgZGVjaW1hbFxuICogY2hhciBjb2RlLCBvciBoZXggY2hhciBjb2RlKSBhbmQgcmV0dXJuIGl0IGlmIHNvLlxuICpcbiAqIE1vZGlmaWVkIGZyb20ganN4UmVhZFN0cmluZyBpbiBiYWJlbC1wYXJzZXIuXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NFbnRpdHkodGV4dCwgaW5kZXhBZnRlckFtcGVyc2FuZCkge1xuICBsZXQgc3RyID0gXCJcIjtcbiAgbGV0IGNvdW50ID0gMDtcbiAgbGV0IGVudGl0eTtcbiAgbGV0IGkgPSBpbmRleEFmdGVyQW1wZXJzYW5kO1xuXG4gIGlmICh0ZXh0W2ldID09PSBcIiNcIikge1xuICAgIGxldCByYWRpeCA9IDEwO1xuICAgIGkrKztcbiAgICBsZXQgbnVtU3RhcnQ7XG4gICAgaWYgKHRleHRbaV0gPT09IFwieFwiKSB7XG4gICAgICByYWRpeCA9IDE2O1xuICAgICAgaSsrO1xuICAgICAgbnVtU3RhcnQgPSBpO1xuICAgICAgd2hpbGUgKGkgPCB0ZXh0Lmxlbmd0aCAmJiBpc0hleERpZ2l0KHRleHQuY2hhckNvZGVBdChpKSkpIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBudW1TdGFydCA9IGk7XG4gICAgICB3aGlsZSAoaSA8IHRleHQubGVuZ3RoICYmIGlzRGVjaW1hbERpZ2l0KHRleHQuY2hhckNvZGVBdChpKSkpIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGV4dFtpXSA9PT0gXCI7XCIpIHtcbiAgICAgIGNvbnN0IG51bVN0ciA9IHRleHQuc2xpY2UobnVtU3RhcnQsIGkpO1xuICAgICAgaWYgKG51bVN0cikge1xuICAgICAgICBpKys7XG4gICAgICAgIGVudGl0eSA9IFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KG51bVN0ciwgcmFkaXgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKGkgPCB0ZXh0Lmxlbmd0aCAmJiBjb3VudCsrIDwgMTApIHtcbiAgICAgIGNvbnN0IGNoID0gdGV4dFtpXTtcbiAgICAgIGkrKztcbiAgICAgIGlmIChjaCA9PT0gXCI7XCIpIHtcbiAgICAgICAgZW50aXR5ID0gWEhUTUxFbnRpdGllcy5nZXQoc3RyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzdHIgKz0gY2g7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFlbnRpdHkpIHtcbiAgICByZXR1cm4ge2VudGl0eTogXCImXCIsIG5ld0k6IGluZGV4QWZ0ZXJBbXBlcnNhbmR9O1xuICB9XG4gIHJldHVybiB7ZW50aXR5LCBuZXdJOiBpfTtcbn1cblxuZnVuY3Rpb24gaXNEZWNpbWFsRGlnaXQoY29kZSkge1xuICByZXR1cm4gY29kZSA+PSBjaGFyQ29kZXMuZGlnaXQwICYmIGNvZGUgPD0gY2hhckNvZGVzLmRpZ2l0OTtcbn1cblxuZnVuY3Rpb24gaXNIZXhEaWdpdChjb2RlKSB7XG4gIHJldHVybiAoXG4gICAgKGNvZGUgPj0gY2hhckNvZGVzLmRpZ2l0MCAmJiBjb2RlIDw9IGNoYXJDb2Rlcy5kaWdpdDkpIHx8XG4gICAgKGNvZGUgPj0gY2hhckNvZGVzLmxvd2VyY2FzZUEgJiYgY29kZSA8PSBjaGFyQ29kZXMubG93ZXJjYXNlRikgfHxcbiAgICAoY29kZSA+PSBjaGFyQ29kZXMudXBwZXJjYXNlQSAmJiBjb2RlIDw9IGNoYXJDb2Rlcy51cHBlcmNhc2VGKVxuICApO1xufVxuIiwgIlxuaW1wb3J0IHtJZGVudGlmaWVyUm9sZX0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXJcIjtcbmltcG9ydCB7VG9rZW5UeXBlLCBUb2tlblR5cGUgYXMgdHR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzXCI7XG5cbmltcG9ydCB7c3RhcnRzV2l0aExvd2VyQ2FzZX0gZnJvbSBcIi4uL3RyYW5zZm9ybWVycy9KU1hUcmFuc2Zvcm1lclwiO1xuaW1wb3J0IGdldEpTWFByYWdtYUluZm8gZnJvbSBcIi4vZ2V0SlNYUHJhZ21hSW5mb1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9uVHlwZUlkZW50aWZpZXJzKHRva2Vucywgb3B0aW9ucykge1xuICBjb25zdCBqc3hQcmFnbWFJbmZvID0gZ2V0SlNYUHJhZ21hSW5mbyhvcHRpb25zKTtcbiAgY29uc3Qgbm9uVHlwZUlkZW50aWZpZXJzID0gbmV3IFNldCgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKFxuICAgICAgdG9rZW4udHlwZSA9PT0gdHQubmFtZSAmJlxuICAgICAgIXRva2VuLmlzVHlwZSAmJlxuICAgICAgKHRva2VuLmlkZW50aWZpZXJSb2xlID09PSBJZGVudGlmaWVyUm9sZS5BY2Nlc3MgfHxcbiAgICAgICAgdG9rZW4uaWRlbnRpZmllclJvbGUgPT09IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZCB8fFxuICAgICAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gSWRlbnRpZmllclJvbGUuRXhwb3J0QWNjZXNzKSAmJlxuICAgICAgIXRva2VuLnNoYWRvd3NHbG9iYWxcbiAgICApIHtcbiAgICAgIG5vblR5cGVJZGVudGlmaWVycy5hZGQodG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IHR0LmpzeFRhZ1N0YXJ0KSB7XG4gICAgICBub25UeXBlSWRlbnRpZmllcnMuYWRkKGpzeFByYWdtYUluZm8uYmFzZSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRva2VuLnR5cGUgPT09IHR0LmpzeFRhZ1N0YXJ0ICYmXG4gICAgICBpICsgMSA8IHRva2Vucy50b2tlbnMubGVuZ3RoICYmXG4gICAgICB0b2tlbnMudG9rZW5zW2kgKyAxXS50eXBlID09PSB0dC5qc3hUYWdFbmRcbiAgICApIHtcbiAgICAgIG5vblR5cGVJZGVudGlmaWVycy5hZGQoanN4UHJhZ21hSW5mby5iYXNlKTtcbiAgICAgIG5vblR5cGVJZGVudGlmaWVycy5hZGQoanN4UHJhZ21hSW5mby5mcmFnbWVudEJhc2UpO1xuICAgIH1cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gdHQuanN4TmFtZSAmJiB0b2tlbi5pZGVudGlmaWVyUm9sZSA9PT0gSWRlbnRpZmllclJvbGUuQWNjZXNzKSB7XG4gICAgICBjb25zdCBpZGVudGlmaWVyTmFtZSA9IHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKTtcbiAgICAgIC8vIExvd2VyLWNhc2Ugc2luZ2xlLWNvbXBvbmVudCB0YWcgbmFtZXMgbGlrZSBcImRpdlwiIGRvbid0IGNvdW50LlxuICAgICAgaWYgKCFzdGFydHNXaXRoTG93ZXJDYXNlKGlkZW50aWZpZXJOYW1lKSB8fCB0b2tlbnMudG9rZW5zW2kgKyAxXS50eXBlID09PSBUb2tlblR5cGUuZG90KSB7XG4gICAgICAgIG5vblR5cGVJZGVudGlmaWVycy5hZGQodG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vblR5cGVJZGVudGlmaWVycztcbn1cbiIsICJcblxuXG5pbXBvcnQge2lzRGVjbGFyYXRpb259IGZyb20gXCIuL3BhcnNlci90b2tlbml6ZXJcIjtcbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHNcIjtcbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzXCI7XG5cbmltcG9ydCBnZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvIGZyb20gXCIuL3V0aWwvZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mb1wiO1xuaW1wb3J0IHtnZXROb25UeXBlSWRlbnRpZmllcnN9IGZyb20gXCIuL3V0aWwvZ2V0Tm9uVHlwZUlkZW50aWZpZXJzXCI7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8qKlxuICogQ2xhc3MgcmVzcG9uc2libGUgZm9yIHByZXByb2Nlc3NpbmcgYW5kIGJvb2trZWVwaW5nIGltcG9ydCBhbmQgZXhwb3J0IGRlY2xhcmF0aW9ucyB3aXRoaW4gdGhlXG4gKiBmaWxlLlxuICpcbiAqIFR5cGVTY3JpcHQgdXNlcyBhIHNpbXBsZXIgbWVjaGFuaXNtIHRoYXQgZG9lcyBub3QgdXNlIGZ1bmN0aW9ucyBsaWtlIGludGVyb3BSZXF1aXJlRGVmYXVsdCBhbmRcbiAqIGludGVyb3BSZXF1aXJlV2lsZGNhcmQsIHNvIHdlIGFsc28gYWxsb3cgdGhhdCBtb2RlIGZvciBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDSlNJbXBvcnRQcm9jZXNzb3Ige1xuICAgX19pbml0KCkge3RoaXMubm9uVHlwZUlkZW50aWZpZXJzID0gbmV3IFNldCgpfVxuICAgX19pbml0MigpIHt0aGlzLmltcG9ydEluZm9CeVBhdGggPSBuZXcgTWFwKCl9XG4gICBfX2luaXQzKCkge3RoaXMuaW1wb3J0c1RvUmVwbGFjZSA9IG5ldyBNYXAoKX1cbiAgIF9faW5pdDQoKSB7dGhpcy5pZGVudGlmaWVyUmVwbGFjZW1lbnRzID0gbmV3IE1hcCgpfVxuICAgX19pbml0NSgpIHt0aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUgPSBuZXcgTWFwKCl9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgIG5hbWVNYW5hZ2VyLFxuICAgICB0b2tlbnMsXG4gICAgIGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wLFxuICAgICBvcHRpb25zLFxuICAgICBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkLFxuICAgICBrZWVwVW51c2VkSW1wb3J0cyxcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgKSB7O3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wID0gZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3A7dGhpcy5vcHRpb25zID0gb3B0aW9uczt0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgPSBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkO3RoaXMua2VlcFVudXNlZEltcG9ydHMgPSBrZWVwVW51c2VkSW1wb3J0czt0aGlzLmhlbHBlck1hbmFnZXIgPSBoZWxwZXJNYW5hZ2VyO0NKU0ltcG9ydFByb2Nlc3Nvci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyk7Q0pTSW1wb3J0UHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQ1LmNhbGwodGhpcyk7fVxuXG4gIHByZXByb2Nlc3NUb2tlbnMoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGksIHR0Ll9pbXBvcnQpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzM0F0SW5kZXgoaSwgdHQuX2ltcG9ydCwgdHQubmFtZSwgdHQuZXEpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzSW1wb3J0QXRJbmRleChpKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGksIHR0Ll9leHBvcnQpICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaSwgdHQuX2V4cG9ydCwgdHQuZXEpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzRXhwb3J0QXRJbmRleChpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5nZW5lcmF0ZUltcG9ydFJlcGxhY2VtZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIFR5cGVTY3JpcHQsIGltcG9ydCBzdGF0ZW1lbnRzIHRoYXQgb25seSBpbXBvcnQgdHlwZXMgc2hvdWxkIGJlIHJlbW92ZWQuXG4gICAqIFRoaXMgaW5jbHVkZXMgYGltcG9ydCB7fSBmcm9tICdmb28nO2AsIGJ1dCBub3QgYGltcG9ydCAnZm9vJztgLlxuICAgKi9cbiAgcHJ1bmVUeXBlT25seUltcG9ydHMoKSB7XG4gICAgdGhpcy5ub25UeXBlSWRlbnRpZmllcnMgPSBnZXROb25UeXBlSWRlbnRpZmllcnModGhpcy50b2tlbnMsIHRoaXMub3B0aW9ucyk7XG4gICAgZm9yIChjb25zdCBbcGF0aCwgaW1wb3J0SW5mb10gb2YgdGhpcy5pbXBvcnRJbmZvQnlQYXRoLmVudHJpZXMoKSkge1xuICAgICAgaWYgKFxuICAgICAgICBpbXBvcnRJbmZvLmhhc0JhcmVJbXBvcnQgfHxcbiAgICAgICAgaW1wb3J0SW5mby5oYXNTdGFyRXhwb3J0IHx8XG4gICAgICAgIGltcG9ydEluZm8uZXhwb3J0U3Rhck5hbWVzLmxlbmd0aCA+IDAgfHxcbiAgICAgICAgaW1wb3J0SW5mby5uYW1lZEV4cG9ydHMubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbmFtZXMgPSBbXG4gICAgICAgIC4uLmltcG9ydEluZm8uZGVmYXVsdE5hbWVzLFxuICAgICAgICAuLi5pbXBvcnRJbmZvLndpbGRjYXJkTmFtZXMsXG4gICAgICAgIC4uLmltcG9ydEluZm8ubmFtZWRJbXBvcnRzLm1hcCgoe2xvY2FsTmFtZX0pID0+IGxvY2FsTmFtZSksXG4gICAgICBdO1xuICAgICAgaWYgKG5hbWVzLmV2ZXJ5KChuYW1lKSA9PiB0aGlzLnNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZShuYW1lKSkpIHtcbiAgICAgICAgdGhpcy5pbXBvcnRzVG9SZXBsYWNlLnNldChwYXRoLCBcIlwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG91bGRBdXRvbWF0aWNhbGx5RWxpZGVJbXBvcnRlZE5hbWUobmFtZSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiZcbiAgICAgICF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmXG4gICAgICAhdGhpcy5ub25UeXBlSWRlbnRpZmllcnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxuXG4gICBnZW5lcmF0ZUltcG9ydFJlcGxhY2VtZW50cygpIHtcbiAgICBmb3IgKGNvbnN0IFtwYXRoLCBpbXBvcnRJbmZvXSBvZiB0aGlzLmltcG9ydEluZm9CeVBhdGguZW50cmllcygpKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGRlZmF1bHROYW1lcyxcbiAgICAgICAgd2lsZGNhcmROYW1lcyxcbiAgICAgICAgbmFtZWRJbXBvcnRzLFxuICAgICAgICBuYW1lZEV4cG9ydHMsXG4gICAgICAgIGV4cG9ydFN0YXJOYW1lcyxcbiAgICAgICAgaGFzU3RhckV4cG9ydCxcbiAgICAgIH0gPSBpbXBvcnRJbmZvO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGRlZmF1bHROYW1lcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgd2lsZGNhcmROYW1lcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgbmFtZWRJbXBvcnRzLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBuYW1lZEV4cG9ydHMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGV4cG9ydFN0YXJOYW1lcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIWhhc1N0YXJFeHBvcnRcbiAgICAgICkge1xuICAgICAgICAvLyBJbXBvcnQgaXMgbmV2ZXIgdXNlZCwgc28gZG9uJ3QgZXZlbiBhc3NpZ24gYSBuYW1lLlxuICAgICAgICB0aGlzLmltcG9ydHNUb1JlcGxhY2Uuc2V0KHBhdGgsIGByZXF1aXJlKCcke3BhdGh9Jyk7YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmltYXJ5SW1wb3J0TmFtZSA9IHRoaXMuZ2V0RnJlZUlkZW50aWZpZXJGb3JQYXRoKHBhdGgpO1xuICAgICAgbGV0IHNlY29uZGFyeUltcG9ydE5hbWU7XG4gICAgICBpZiAodGhpcy5lbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCkge1xuICAgICAgICBzZWNvbmRhcnlJbXBvcnROYW1lID0gcHJpbWFyeUltcG9ydE5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWNvbmRhcnlJbXBvcnROYW1lID1cbiAgICAgICAgICB3aWxkY2FyZE5hbWVzLmxlbmd0aCA+IDAgPyB3aWxkY2FyZE5hbWVzWzBdIDogdGhpcy5nZXRGcmVlSWRlbnRpZmllckZvclBhdGgocGF0aCk7XG4gICAgICB9XG4gICAgICBsZXQgcmVxdWlyZUNvZGUgPSBgdmFyICR7cHJpbWFyeUltcG9ydE5hbWV9ID0gcmVxdWlyZSgnJHtwYXRofScpO2A7XG4gICAgICBpZiAod2lsZGNhcmROYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3Qgd2lsZGNhcmROYW1lIG9mIHdpbGRjYXJkTmFtZXMpIHtcbiAgICAgICAgICBjb25zdCBtb2R1bGVFeHByID0gdGhpcy5lbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcFxuICAgICAgICAgICAgPyBwcmltYXJ5SW1wb3J0TmFtZVxuICAgICAgICAgICAgOiBgJHt0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcImludGVyb3BSZXF1aXJlV2lsZGNhcmRcIil9KCR7cHJpbWFyeUltcG9ydE5hbWV9KWA7XG4gICAgICAgICAgcmVxdWlyZUNvZGUgKz0gYCB2YXIgJHt3aWxkY2FyZE5hbWV9ID0gJHttb2R1bGVFeHByfTtgO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV4cG9ydFN0YXJOYW1lcy5sZW5ndGggPiAwICYmIHNlY29uZGFyeUltcG9ydE5hbWUgIT09IHByaW1hcnlJbXBvcnROYW1lKSB7XG4gICAgICAgIHJlcXVpcmVDb2RlICs9IGAgdmFyICR7c2Vjb25kYXJ5SW1wb3J0TmFtZX0gPSAke3RoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFxuICAgICAgICAgIFwiaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiLFxuICAgICAgICApfSgke3ByaW1hcnlJbXBvcnROYW1lfSk7YDtcbiAgICAgIH0gZWxzZSBpZiAoZGVmYXVsdE5hbWVzLmxlbmd0aCA+IDAgJiYgc2Vjb25kYXJ5SW1wb3J0TmFtZSAhPT0gcHJpbWFyeUltcG9ydE5hbWUpIHtcbiAgICAgICAgcmVxdWlyZUNvZGUgKz0gYCB2YXIgJHtzZWNvbmRhcnlJbXBvcnROYW1lfSA9ICR7dGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXG4gICAgICAgICAgXCJpbnRlcm9wUmVxdWlyZURlZmF1bHRcIixcbiAgICAgICAgKX0oJHtwcmltYXJ5SW1wb3J0TmFtZX0pO2A7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qge2ltcG9ydGVkTmFtZSwgbG9jYWxOYW1lfSBvZiBuYW1lZEV4cG9ydHMpIHtcbiAgICAgICAgcmVxdWlyZUNvZGUgKz0gYCAke3RoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFxuICAgICAgICAgIFwiY3JlYXRlTmFtZWRFeHBvcnRGcm9tXCIsXG4gICAgICAgICl9KCR7cHJpbWFyeUltcG9ydE5hbWV9LCAnJHtsb2NhbE5hbWV9JywgJyR7aW1wb3J0ZWROYW1lfScpO2A7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGV4cG9ydFN0YXJOYW1lIG9mIGV4cG9ydFN0YXJOYW1lcykge1xuICAgICAgICByZXF1aXJlQ29kZSArPSBgIGV4cG9ydHMuJHtleHBvcnRTdGFyTmFtZX0gPSAke3NlY29uZGFyeUltcG9ydE5hbWV9O2A7XG4gICAgICB9XG4gICAgICBpZiAoaGFzU3RhckV4cG9ydCkge1xuICAgICAgICByZXF1aXJlQ29kZSArPSBgICR7dGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXG4gICAgICAgICAgXCJjcmVhdGVTdGFyRXhwb3J0XCIsXG4gICAgICAgICl9KCR7cHJpbWFyeUltcG9ydE5hbWV9KTtgO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmltcG9ydHNUb1JlcGxhY2Uuc2V0KHBhdGgsIHJlcXVpcmVDb2RlKTtcblxuICAgICAgZm9yIChjb25zdCBkZWZhdWx0TmFtZSBvZiBkZWZhdWx0TmFtZXMpIHtcbiAgICAgICAgdGhpcy5pZGVudGlmaWVyUmVwbGFjZW1lbnRzLnNldChkZWZhdWx0TmFtZSwgYCR7c2Vjb25kYXJ5SW1wb3J0TmFtZX0uZGVmYXVsdGApO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB7aW1wb3J0ZWROYW1lLCBsb2NhbE5hbWV9IG9mIG5hbWVkSW1wb3J0cykge1xuICAgICAgICB0aGlzLmlkZW50aWZpZXJSZXBsYWNlbWVudHMuc2V0KGxvY2FsTmFtZSwgYCR7cHJpbWFyeUltcG9ydE5hbWV9LiR7aW1wb3J0ZWROYW1lfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEZyZWVJZGVudGlmaWVyRm9yUGF0aChwYXRoKSB7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IHBhdGguc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IGxhc3RDb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYmFzZU5hbWUgPSBsYXN0Q29tcG9uZW50LnJlcGxhY2UoL1xcVy9nLCBcIlwiKTtcbiAgICByZXR1cm4gdGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKGBfJHtiYXNlTmFtZX1gKTtcbiAgfVxuXG4gICBwcmVwcm9jZXNzSW1wb3J0QXRJbmRleChpbmRleCkge1xuICAgIGNvbnN0IGRlZmF1bHROYW1lcyA9IFtdO1xuICAgIGNvbnN0IHdpbGRjYXJkTmFtZXMgPSBbXTtcbiAgICBjb25zdCBuYW1lZEltcG9ydHMgPSBbXTtcblxuICAgIGluZGV4Kys7XG4gICAgaWYgKFxuICAgICAgKHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleChpbmRleCwgQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQuX3R5cGVvZikpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4ICsgMSwgdHQuY29tbWEpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KGluZGV4ICsgMSwgQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pXG4gICAgKSB7XG4gICAgICAvLyBpbXBvcnQgdHlwZSBkZWNsYXJhdGlvbiwgc28gbm8gbmVlZCB0byBwcm9jZXNzIGFueXRoaW5nLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnBhcmVuTCkpIHtcbiAgICAgIC8vIER5bmFtaWMgaW1wb3J0LCBzbyBub3RoaW5nIHRvIGRvXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQubmFtZSkpIHtcbiAgICAgIGRlZmF1bHROYW1lcy5wdXNoKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkpO1xuICAgICAgaW5kZXgrKztcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LmNvbW1hKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnN0YXIpKSB7XG4gICAgICAvLyAqIGFzXG4gICAgICBpbmRleCArPSAyO1xuICAgICAgd2lsZGNhcmROYW1lcy5wdXNoKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkpO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCB0dC5icmFjZUwpKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldE5hbWVkSW1wb3J0cyhpbmRleCArIDEpO1xuICAgICAgaW5kZXggPSByZXN1bHQubmV3SW5kZXg7XG5cbiAgICAgIGZvciAoY29uc3QgbmFtZWRJbXBvcnQgb2YgcmVzdWx0Lm5hbWVkSW1wb3J0cykge1xuICAgICAgICAvLyBUcmVhdCB7ZGVmYXVsdCBhcyBYfSBhcyBhIGRlZmF1bHQgaW1wb3J0IHRvIGVuc3VyZSB1c2FnZSBvZiByZXF1aXJlIGludGVyb3AgaGVscGVyXG4gICAgICAgIGlmIChuYW1lZEltcG9ydC5pbXBvcnRlZE5hbWUgPT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgICAgZGVmYXVsdE5hbWVzLnB1c2gobmFtZWRJbXBvcnQubG9jYWxOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuYW1lZEltcG9ydHMucHVzaChuYW1lZEltcG9ydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KGluZGV4LCBDb250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnN0cmluZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN0cmluZyB0b2tlbiBhdCB0aGUgZW5kIG9mIGltcG9ydCBzdGF0ZW1lbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWVBdEluZGV4KGluZGV4KTtcbiAgICBjb25zdCBpbXBvcnRJbmZvID0gdGhpcy5nZXRJbXBvcnRJbmZvKHBhdGgpO1xuICAgIGltcG9ydEluZm8uZGVmYXVsdE5hbWVzLnB1c2goLi4uZGVmYXVsdE5hbWVzKTtcbiAgICBpbXBvcnRJbmZvLndpbGRjYXJkTmFtZXMucHVzaCguLi53aWxkY2FyZE5hbWVzKTtcbiAgICBpbXBvcnRJbmZvLm5hbWVkSW1wb3J0cy5wdXNoKC4uLm5hbWVkSW1wb3J0cyk7XG4gICAgaWYgKGRlZmF1bHROYW1lcy5sZW5ndGggPT09IDAgJiYgd2lsZGNhcmROYW1lcy5sZW5ndGggPT09IDAgJiYgbmFtZWRJbXBvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW1wb3J0SW5mby5oYXNCYXJlSW1wb3J0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAgcHJlcHJvY2Vzc0V4cG9ydEF0SW5kZXgoaW5kZXgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0Ll92YXIpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0Ll9sZXQpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0Ll9jb25zdClcbiAgICApIHtcbiAgICAgIHRoaXMucHJlcHJvY2Vzc1ZhckV4cG9ydEF0SW5kZXgoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0Ll9mdW5jdGlvbikgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgdHQuX2V4cG9ydCwgdHQuX2NsYXNzKVxuICAgICkge1xuICAgICAgY29uc3QgZXhwb3J0TmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCArIDIpO1xuICAgICAgdGhpcy5hZGRFeHBvcnRCaW5kaW5nKGV4cG9ydE5hbWUsIGV4cG9ydE5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczNBdEluZGV4KGluZGV4LCB0dC5fZXhwb3J0LCB0dC5uYW1lLCB0dC5fZnVuY3Rpb24pKSB7XG4gICAgICBjb25zdCBleHBvcnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4ICsgMyk7XG4gICAgICB0aGlzLmFkZEV4cG9ydEJpbmRpbmcoZXhwb3J0TmFtZSwgZXhwb3J0TmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0LmJyYWNlTCkpIHtcbiAgICAgIHRoaXMucHJlcHJvY2Vzc05hbWVkRXhwb3J0QXRJbmRleChpbmRleCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMkF0SW5kZXgoaW5kZXgsIHR0Ll9leHBvcnQsIHR0LnN0YXIpKSB7XG4gICAgICB0aGlzLnByZXByb2Nlc3NFeHBvcnRTdGFyQXRJbmRleChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgIHByZXByb2Nlc3NWYXJFeHBvcnRBdEluZGV4KGluZGV4KSB7XG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICAvLyBIYW5kbGUgY2FzZXMgbGlrZSBgZXhwb3J0IGxldCB7eH0gPSB5O2AsIHN0YXJ0aW5nIGF0IHRoZSBvcGVuLWJyYWNlIGluIHRoYXQgY2FzZS5cbiAgICBmb3IgKGxldCBpID0gaW5kZXggKyAyOyA7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgdHQuYnJhY2VMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgdHQuZG9sbGFyQnJhY2VMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgdHQuYnJhY2tldEwpXG4gICAgICApIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpLCB0dC5icmFjZVIpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpLCB0dC5icmFja2V0UilcbiAgICAgICkge1xuICAgICAgICBkZXB0aC0tO1xuICAgICAgfSBlbHNlIGlmIChkZXB0aCA9PT0gMCAmJiAhdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGksIHR0Lm5hbWUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoMSwgdHQuZXEpKSB7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmIChlbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaSA9IGVuZEluZGV4IC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbnMudG9rZW5zW2ldO1xuICAgICAgICBpZiAoaXNEZWNsYXJhdGlvbih0b2tlbikpIHtcbiAgICAgICAgICBjb25zdCBleHBvcnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGkpO1xuICAgICAgICAgIHRoaXMuaWRlbnRpZmllclJlcGxhY2VtZW50cy5zZXQoZXhwb3J0TmFtZSwgYGV4cG9ydHMuJHtleHBvcnROYW1lfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhbGsgdGhpcyBleHBvcnQgc3RhdGVtZW50IGp1c3QgaW4gY2FzZSBpdCdzIGFuIGV4cG9ydC4uLmZyb20gc3RhdGVtZW50LlxuICAgKiBJZiBpdCBpcywgY29tYmluZSBpdCBpbnRvIHRoZSBpbXBvcnQgaW5mbyBmb3IgdGhhdCBwYXRoLiBPdGhlcndpc2UsIGp1c3RcbiAgICogYmFpbCBvdXQ7IGl0J2xsIGJlIGhhbmRsZWQgbGF0ZXIuXG4gICAqL1xuICAgcHJlcHJvY2Vzc05hbWVkRXhwb3J0QXRJbmRleChpbmRleCkge1xuICAgIC8vIGV4cG9ydCB7XG4gICAgaW5kZXggKz0gMjtcbiAgICBjb25zdCB7bmV3SW5kZXgsIG5hbWVkSW1wb3J0c30gPSB0aGlzLmdldE5hbWVkSW1wb3J0cyhpbmRleCk7XG4gICAgaW5kZXggPSBuZXdJbmRleDtcblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgoaW5kZXgsIENvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSkge1xuICAgICAgaW5kZXgrKztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVpbnRlcnByZXQgXCJhIGFzIGJcIiB0byBiZSBsb2NhbC9leHBvcnRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZC9sb2NhbC5cbiAgICAgIGZvciAoY29uc3Qge2ltcG9ydGVkTmFtZTogbG9jYWxOYW1lLCBsb2NhbE5hbWU6IGV4cG9ydGVkTmFtZX0gb2YgbmFtZWRJbXBvcnRzKSB7XG4gICAgICAgIHRoaXMuYWRkRXhwb3J0QmluZGluZyhsb2NhbE5hbWUsIGV4cG9ydGVkTmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnN0cmluZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN0cmluZyB0b2tlbiBhdCB0aGUgZW5kIG9mIGltcG9ydCBzdGF0ZW1lbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWVBdEluZGV4KGluZGV4KTtcbiAgICBjb25zdCBpbXBvcnRJbmZvID0gdGhpcy5nZXRJbXBvcnRJbmZvKHBhdGgpO1xuICAgIGltcG9ydEluZm8ubmFtZWRFeHBvcnRzLnB1c2goLi4ubmFtZWRJbXBvcnRzKTtcbiAgfVxuXG4gICBwcmVwcm9jZXNzRXhwb3J0U3RhckF0SW5kZXgoaW5kZXgpIHtcbiAgICBsZXQgZXhwb3J0ZWROYW1lID0gbnVsbDtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczNBdEluZGV4KGluZGV4LCB0dC5fZXhwb3J0LCB0dC5zdGFyLCB0dC5fYXMpKSB7XG4gICAgICAvLyBleHBvcnQgKiBhc1xuICAgICAgaW5kZXggKz0gMztcbiAgICAgIGV4cG9ydGVkTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCk7XG4gICAgICAvLyBmb28gZnJvbVxuICAgICAgaW5kZXggKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhwb3J0ICogZnJvbVxuICAgICAgaW5kZXggKz0gMztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnN0cmluZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN0cmluZyB0b2tlbiBhdCB0aGUgZW5kIG9mIHN0YXIgZXhwb3J0IHN0YXRlbWVudC5cIik7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSB0aGlzLnRva2Vucy5zdHJpbmdWYWx1ZUF0SW5kZXgoaW5kZXgpO1xuICAgIGNvbnN0IGltcG9ydEluZm8gPSB0aGlzLmdldEltcG9ydEluZm8ocGF0aCk7XG4gICAgaWYgKGV4cG9ydGVkTmFtZSAhPT0gbnVsbCkge1xuICAgICAgaW1wb3J0SW5mby5leHBvcnRTdGFyTmFtZXMucHVzaChleHBvcnRlZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbXBvcnRJbmZvLmhhc1N0YXJFeHBvcnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICBnZXROYW1lZEltcG9ydHMoaW5kZXgpIHtcbiAgICBjb25zdCBuYW1lZEltcG9ydHMgPSBbXTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQuYnJhY2VSKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3BlY2lmaWVySW5mbyA9IGdldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8odGhpcy50b2tlbnMsIGluZGV4KTtcbiAgICAgIGluZGV4ID0gc3BlY2lmaWVySW5mby5lbmRJbmRleDtcbiAgICAgIGlmICghc3BlY2lmaWVySW5mby5pc1R5cGUpIHtcbiAgICAgICAgbmFtZWRJbXBvcnRzLnB1c2goe1xuICAgICAgICAgIGltcG9ydGVkTmFtZTogc3BlY2lmaWVySW5mby5sZWZ0TmFtZSxcbiAgICAgICAgICBsb2NhbE5hbWU6IHNwZWNpZmllckluZm8ucmlnaHROYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgdHQuY29tbWEsIHR0LmJyYWNlUikpIHtcbiAgICAgICAgaW5kZXggKz0gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQuYnJhY2VSKSkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCB0dC5jb21tYSkpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB0b2tlbjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdKX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtuZXdJbmRleDogaW5kZXgsIG5hbWVkSW1wb3J0c307XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbXV0YWJsZSBpbXBvcnQgaW5mbyBvYmplY3QgZm9yIHRoaXMgcGF0aCwgY3JlYXRpbmcgb25lIGlmIGl0IGRvZXNuJ3RcbiAgICogZXhpc3QgeWV0LlxuICAgKi9cbiAgIGdldEltcG9ydEluZm8ocGF0aCkge1xuICAgIGNvbnN0IGV4aXN0aW5nSW5mbyA9IHRoaXMuaW1wb3J0SW5mb0J5UGF0aC5nZXQocGF0aCk7XG4gICAgaWYgKGV4aXN0aW5nSW5mbykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nSW5mbztcbiAgICB9XG4gICAgY29uc3QgbmV3SW5mbyA9IHtcbiAgICAgIGRlZmF1bHROYW1lczogW10sXG4gICAgICB3aWxkY2FyZE5hbWVzOiBbXSxcbiAgICAgIG5hbWVkSW1wb3J0czogW10sXG4gICAgICBuYW1lZEV4cG9ydHM6IFtdLFxuICAgICAgaGFzQmFyZUltcG9ydDogZmFsc2UsXG4gICAgICBleHBvcnRTdGFyTmFtZXM6IFtdLFxuICAgICAgaGFzU3RhckV4cG9ydDogZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLmltcG9ydEluZm9CeVBhdGguc2V0KHBhdGgsIG5ld0luZm8pO1xuICAgIHJldHVybiBuZXdJbmZvO1xuICB9XG5cbiAgIGFkZEV4cG9ydEJpbmRpbmcobG9jYWxOYW1lLCBleHBvcnRlZE5hbWUpIHtcbiAgICBpZiAoIXRoaXMuZXhwb3J0QmluZGluZ3NCeUxvY2FsTmFtZS5oYXMobG9jYWxOYW1lKSkge1xuICAgICAgdGhpcy5leHBvcnRCaW5kaW5nc0J5TG9jYWxOYW1lLnNldChsb2NhbE5hbWUsIFtdKTtcbiAgICB9XG4gICAgdGhpcy5leHBvcnRCaW5kaW5nc0J5TG9jYWxOYW1lLmdldChsb2NhbE5hbWUpLnB1c2goZXhwb3J0ZWROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGNvZGUgdG8gdXNlIGZvciB0aGUgaW1wb3J0IGZvciB0aGlzIHBhdGgsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWZcbiAgICogdGhlIGNvZGUgaGFzIGFscmVhZHkgYmVlbiBcImNsYWltZWRcIiBieSBhIHByZXZpb3VzIGltcG9ydC5cbiAgICovXG4gIGNsYWltSW1wb3J0Q29kZShpbXBvcnRQYXRoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5pbXBvcnRzVG9SZXBsYWNlLmdldChpbXBvcnRQYXRoKTtcbiAgICB0aGlzLmltcG9ydHNUb1JlcGxhY2Uuc2V0KGltcG9ydFBhdGgsIFwiXCIpO1xuICAgIHJldHVybiByZXN1bHQgfHwgXCJcIjtcbiAgfVxuXG4gIGdldElkZW50aWZpZXJSZXBsYWNlbWVudChpZGVudGlmaWVyTmFtZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXJSZXBsYWNlbWVudHMuZ2V0KGlkZW50aWZpZXJOYW1lKSB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyBsaWtlIGBleHBvcnRzLmZvbyA9IGV4cG9ydHMuYmFyYC5cbiAgICovXG4gIHJlc29sdmVFeHBvcnRCaW5kaW5nKGFzc2lnbmVkTmFtZSkge1xuICAgIGNvbnN0IGV4cG9ydGVkTmFtZXMgPSB0aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUuZ2V0KGFzc2lnbmVkTmFtZSk7XG4gICAgaWYgKCFleHBvcnRlZE5hbWVzIHx8IGV4cG9ydGVkTmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGV4cG9ydGVkTmFtZXMubWFwKChleHBvcnRlZE5hbWUpID0+IGBleHBvcnRzLiR7ZXhwb3J0ZWROYW1lfWApLmpvaW4oXCIgPSBcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCBpbXBvcnRlZC9leHBvcnRlZCBuYW1lcyB3aGVyZSB3ZSBtaWdodCBiZSBpbnRlcmVzdGVkIGluIHdoZXRoZXIgdXNhZ2VzIG9mIHRob3NlXG4gICAqIG5hbWVzIGFyZSBzaGFkb3dlZC5cbiAgICovXG4gIGdldEdsb2JhbE5hbWVzKCkge1xuICAgIHJldHVybiBuZXcgU2V0KFtcbiAgICAgIC4uLnRoaXMuaWRlbnRpZmllclJlcGxhY2VtZW50cy5rZXlzKCksXG4gICAgICAuLi50aGlzLmV4cG9ydEJpbmRpbmdzQnlMb2NhbE5hbWUua2V5cygpLFxuICAgIF0pO1xuICB9XG59XG4iLCAiaW1wb3J0IHtHZW5NYXBwaW5nLCBtYXliZUFkZFNlZ21lbnQsIHRvRW5jb2RlZE1hcH0gZnJvbSBcIkBqcmlkZ2V3ZWxsL2dlbi1tYXBwaW5nXCI7XG5cblxuXG5pbXBvcnQge2NoYXJDb2Rlc30gZnJvbSBcIi4vcGFyc2VyL3V0aWwvY2hhcmNvZGVzXCI7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vKipcbiAqIEdlbmVyYXRlIGEgc291cmNlIG1hcCBpbmRpY2F0aW5nIHRoYXQgZWFjaCBsaW5lIG1hcHMgZGlyZWN0bHkgdG8gdGhlIG9yaWdpbmFsIGxpbmUsXG4gKiB3aXRoIHRoZSB0b2tlbnMgaW4gdGhlaXIgbmV3IHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcHV0ZVNvdXJjZU1hcChcbiAge2NvZGU6IGdlbmVyYXRlZENvZGUsIG1hcHBpbmdzOiByYXdNYXBwaW5nc30sXG4gIGZpbGVQYXRoLFxuICBvcHRpb25zLFxuICBzb3VyY2UsXG4gIHRva2Vucyxcbikge1xuICBjb25zdCBzb3VyY2VDb2x1bW5zID0gY29tcHV0ZVNvdXJjZUNvbHVtbnMoc291cmNlLCB0b2tlbnMpO1xuICBjb25zdCBtYXAgPSBuZXcgR2VuTWFwcGluZyh7ZmlsZTogb3B0aW9ucy5jb21waWxlZEZpbGVuYW1lfSk7XG4gIGxldCB0b2tlbkluZGV4ID0gMDtcbiAgLy8gY3VycmVudE1hcHBpbmcgaXMgdGhlIG91dHB1dCBzb3VyY2UgaW5kZXggZm9yIHRoZSBjdXJyZW50IGlucHV0IHRva2VuIGJlaW5nXG4gIC8vIGNvbnNpZGVyZWQuXG4gIGxldCBjdXJyZW50TWFwcGluZyA9IHJhd01hcHBpbmdzWzBdO1xuICB3aGlsZSAoY3VycmVudE1hcHBpbmcgPT09IHVuZGVmaW5lZCAmJiB0b2tlbkluZGV4IDwgcmF3TWFwcGluZ3MubGVuZ3RoIC0gMSkge1xuICAgIHRva2VuSW5kZXgrKztcbiAgICBjdXJyZW50TWFwcGluZyA9IHJhd01hcHBpbmdzW3Rva2VuSW5kZXhdO1xuICB9XG4gIGxldCBsaW5lID0gMDtcbiAgbGV0IGxpbmVTdGFydCA9IDA7XG4gIGlmIChjdXJyZW50TWFwcGluZyAhPT0gbGluZVN0YXJ0KSB7XG4gICAgbWF5YmVBZGRTZWdtZW50KG1hcCwgbGluZSwgMCwgZmlsZVBhdGgsIGxpbmUsIDApO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2VuZXJhdGVkQ29kZS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID09PSBjdXJyZW50TWFwcGluZykge1xuICAgICAgY29uc3QgZ2VuQ29sdW1uID0gY3VycmVudE1hcHBpbmcgLSBsaW5lU3RhcnQ7XG4gICAgICBjb25zdCBzb3VyY2VDb2x1bW4gPSBzb3VyY2VDb2x1bW5zW3Rva2VuSW5kZXhdO1xuICAgICAgbWF5YmVBZGRTZWdtZW50KG1hcCwgbGluZSwgZ2VuQ29sdW1uLCBmaWxlUGF0aCwgbGluZSwgc291cmNlQ29sdW1uKTtcbiAgICAgIHdoaWxlIChcbiAgICAgICAgKGN1cnJlbnRNYXBwaW5nID09PSBpIHx8IGN1cnJlbnRNYXBwaW5nID09PSB1bmRlZmluZWQpICYmXG4gICAgICAgIHRva2VuSW5kZXggPCByYXdNYXBwaW5ncy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgdG9rZW5JbmRleCsrO1xuICAgICAgICBjdXJyZW50TWFwcGluZyA9IHJhd01hcHBpbmdzW3Rva2VuSW5kZXhdO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZ2VuZXJhdGVkQ29kZS5jaGFyQ29kZUF0KGkpID09PSBjaGFyQ29kZXMubGluZUZlZWQpIHtcbiAgICAgIGxpbmUrKztcbiAgICAgIGxpbmVTdGFydCA9IGkgKyAxO1xuICAgICAgaWYgKGN1cnJlbnRNYXBwaW5nICE9PSBsaW5lU3RhcnQpIHtcbiAgICAgICAgbWF5YmVBZGRTZWdtZW50KG1hcCwgbGluZSwgMCwgZmlsZVBhdGgsIGxpbmUsIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdCB7c291cmNlUm9vdCwgc291cmNlc0NvbnRlbnQsIC4uLnNvdXJjZU1hcH0gPSB0b0VuY29kZWRNYXAobWFwKTtcbiAgcmV0dXJuIHNvdXJjZU1hcCA7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGFycmF5IG1hcHBpbmcgZWFjaCB0b2tlbiBpbmRleCB0byB0aGUgMC1iYXNlZCBjb2x1bW4gb2YgdGhlIHN0YXJ0XG4gKiBwb3NpdGlvbiBvZiB0aGUgdG9rZW4uXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VDb2x1bW5zKGNvZGUsIHRva2Vucykge1xuICBjb25zdCBzb3VyY2VDb2x1bW5zID0gbmV3IEFycmF5KHRva2Vucy5sZW5ndGgpO1xuICBsZXQgdG9rZW5JbmRleCA9IDA7XG4gIGxldCBjdXJyZW50TWFwcGluZyA9IHRva2Vuc1t0b2tlbkluZGV4XS5zdGFydDtcbiAgbGV0IGxpbmVTdGFydCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29kZS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID09PSBjdXJyZW50TWFwcGluZykge1xuICAgICAgc291cmNlQ29sdW1uc1t0b2tlbkluZGV4XSA9IGN1cnJlbnRNYXBwaW5nIC0gbGluZVN0YXJ0O1xuICAgICAgdG9rZW5JbmRleCsrO1xuICAgICAgY3VycmVudE1hcHBpbmcgPSB0b2tlbnNbdG9rZW5JbmRleF0uc3RhcnQ7XG4gICAgfVxuICAgIGlmIChjb2RlLmNoYXJDb2RlQXQoaSkgPT09IGNoYXJDb2Rlcy5saW5lRmVlZCkge1xuICAgICAgbGluZVN0YXJ0ID0gaSArIDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBzb3VyY2VDb2x1bW5zO1xufVxuIiwgIlxuXG5jb25zdCBIRUxQRVJTID0ge1xuICByZXF1aXJlOiBgXG4gICAgaW1wb3J0IHtjcmVhdGVSZXF1aXJlIGFzIENSRUFURV9SRVFVSVJFX05BTUV9IGZyb20gXCJtb2R1bGVcIjtcbiAgICBjb25zdCByZXF1aXJlID0gQ1JFQVRFX1JFUVVJUkVfTkFNRShpbXBvcnQubWV0YS51cmwpO1xuICBgLFxuICBpbnRlcm9wUmVxdWlyZVdpbGRjYXJkOiBgXG4gICAgZnVuY3Rpb24gaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICAgIGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7fTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBpbnRlcm9wUmVxdWlyZURlZmF1bHQ6IGBcbiAgICBmdW5jdGlvbiBpbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbiAgICB9XG4gIGAsXG4gIGNyZWF0ZU5hbWVkRXhwb3J0RnJvbTogYFxuICAgIGZ1bmN0aW9uIGNyZWF0ZU5hbWVkRXhwb3J0RnJvbShvYmosIGxvY2FsTmFtZSwgaW1wb3J0ZWROYW1lKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbG9jYWxOYW1lLCB7ZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBnZXQ6ICgpID0+IG9ialtpbXBvcnRlZE5hbWVdfSk7XG4gICAgfVxuICBgLFxuICAvLyBOb3RlIHRoYXQgVHlwZVNjcmlwdCBhbmQgQmFiZWwgZG8gdGhpcyBkaWZmZXJlbnRseTsgVHlwZVNjcmlwdCBkb2VzIGEgc2ltcGxlIGV4aXN0ZW5jZVxuICAvLyBjaGVjayBpbiB0aGUgZXhwb3J0cyBvYmplY3QgYW5kIGRvZXMgYSBwbGFpbiBhc3NpZ25tZW50LCB3aGVyZWFzIEJhYmVsIHVzZXNcbiAgLy8gZGVmaW5lUHJvcGVydHkgYW5kIGJ1aWxkcyBhbiBvYmplY3Qgb2YgZXhwbGljaXRseS1leHBvcnRlZCBuYW1lcyBzbyB0aGF0IHN0YXIgZXhwb3J0cyBjYW5cbiAgLy8gYWx3YXlzIHRha2UgbG93ZXIgcHJlY2VkZW5jZS4gRm9yIG5vdywgd2UgZG8gdGhlIGVhc2llciBUeXBlU2NyaXB0IHRoaW5nLlxuICBjcmVhdGVTdGFyRXhwb3J0OiBgXG4gICAgZnVuY3Rpb24gY3JlYXRlU3RhckV4cG9ydChvYmopIHtcbiAgICAgIE9iamVjdC5rZXlzKG9iailcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09IFwiZGVmYXVsdFwiICYmIGtleSAhPT0gXCJfX2VzTW9kdWxlXCIpXG4gICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIGdldDogKCkgPT4gb2JqW2tleV19KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICBgLFxuICBudWxsaXNoQ29hbGVzY2U6IGBcbiAgICBmdW5jdGlvbiBudWxsaXNoQ29hbGVzY2UobGhzLCByaHNGbikge1xuICAgICAgaWYgKGxocyAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBsaHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmhzRm4oKTtcbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGFzeW5jTnVsbGlzaENvYWxlc2NlOiBgXG4gICAgYXN5bmMgZnVuY3Rpb24gYXN5bmNOdWxsaXNoQ29hbGVzY2UobGhzLCByaHNGbikge1xuICAgICAgaWYgKGxocyAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBsaHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmhzRm4oKTtcbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIG9wdGlvbmFsQ2hhaW46IGBcbiAgICBmdW5jdGlvbiBvcHRpb25hbENoYWluKG9wcykge1xuICAgICAgbGV0IGxhc3RBY2Nlc3NMSFMgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgdmFsdWUgPSBvcHNbMF07XG4gICAgICBsZXQgaSA9IDE7XG4gICAgICB3aGlsZSAoaSA8IG9wcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgb3AgPSBvcHNbaV07XG4gICAgICAgIGNvbnN0IGZuID0gb3BzW2kgKyAxXTtcbiAgICAgICAgaSArPSAyO1xuICAgICAgICBpZiAoKG9wID09PSAnb3B0aW9uYWxBY2Nlc3MnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykgJiYgdmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wID09PSAnYWNjZXNzJyB8fCBvcCA9PT0gJ29wdGlvbmFsQWNjZXNzJykge1xuICAgICAgICAgIGxhc3RBY2Nlc3NMSFMgPSB2YWx1ZTtcbiAgICAgICAgICB2YWx1ZSA9IGZuKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcCA9PT0gJ2NhbGwnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykge1xuICAgICAgICAgIHZhbHVlID0gZm4oKC4uLmFyZ3MpID0+IHZhbHVlLmNhbGwobGFzdEFjY2Vzc0xIUywgLi4uYXJncykpO1xuICAgICAgICAgIGxhc3RBY2Nlc3NMSFMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIGAsXG4gIGFzeW5jT3B0aW9uYWxDaGFpbjogYFxuICAgIGFzeW5jIGZ1bmN0aW9uIGFzeW5jT3B0aW9uYWxDaGFpbihvcHMpIHtcbiAgICAgIGxldCBsYXN0QWNjZXNzTEhTID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IHZhbHVlID0gb3BzWzBdO1xuICAgICAgbGV0IGkgPSAxO1xuICAgICAgd2hpbGUgKGkgPCBvcHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG9wID0gb3BzW2ldO1xuICAgICAgICBjb25zdCBmbiA9IG9wc1tpICsgMV07XG4gICAgICAgIGkgKz0gMjtcbiAgICAgICAgaWYgKChvcCA9PT0gJ29wdGlvbmFsQWNjZXNzJyB8fCBvcCA9PT0gJ29wdGlvbmFsQ2FsbCcpICYmIHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcCA9PT0gJ2FjY2VzcycgfHwgb3AgPT09ICdvcHRpb25hbEFjY2VzcycpIHtcbiAgICAgICAgICBsYXN0QWNjZXNzTEhTID0gdmFsdWU7XG4gICAgICAgICAgdmFsdWUgPSBhd2FpdCBmbih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAob3AgPT09ICdjYWxsJyB8fCBvcCA9PT0gJ29wdGlvbmFsQ2FsbCcpIHtcbiAgICAgICAgICB2YWx1ZSA9IGF3YWl0IGZuKCguLi5hcmdzKSA9PiB2YWx1ZS5jYWxsKGxhc3RBY2Nlc3NMSFMsIC4uLmFyZ3MpKTtcbiAgICAgICAgICBsYXN0QWNjZXNzTEhTID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICBgLFxuICBvcHRpb25hbENoYWluRGVsZXRlOiBgXG4gICAgZnVuY3Rpb24gb3B0aW9uYWxDaGFpbkRlbGV0ZShvcHMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IE9QVElPTkFMX0NIQUlOX05BTUUob3BzKTtcbiAgICAgIHJldHVybiByZXN1bHQgPT0gbnVsbCA/IHRydWUgOiByZXN1bHQ7XG4gICAgfVxuICBgLFxuICBhc3luY09wdGlvbmFsQ2hhaW5EZWxldGU6IGBcbiAgICBhc3luYyBmdW5jdGlvbiBhc3luY09wdGlvbmFsQ2hhaW5EZWxldGUob3BzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBBU1lOQ19PUFRJT05BTF9DSEFJTl9OQU1FKG9wcyk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09IG51bGwgPyB0cnVlIDogcmVzdWx0O1xuICAgIH1cbiAgYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJNYW5hZ2VyIHtcbiAgX19pbml0KCkge3RoaXMuaGVscGVyTmFtZXMgPSB7fX1cbiAgX19pbml0MigpIHt0aGlzLmNyZWF0ZVJlcXVpcmVOYW1lID0gbnVsbH1cbiAgY29uc3RydWN0b3IoIG5hbWVNYW5hZ2VyKSB7O3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjtIZWxwZXJNYW5hZ2VyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtIZWxwZXJNYW5hZ2VyLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7fVxuXG4gIGdldEhlbHBlck5hbWUoYmFzZU5hbWUpIHtcbiAgICBsZXQgaGVscGVyTmFtZSA9IHRoaXMuaGVscGVyTmFtZXNbYmFzZU5hbWVdO1xuICAgIGlmIChoZWxwZXJOYW1lKSB7XG4gICAgICByZXR1cm4gaGVscGVyTmFtZTtcbiAgICB9XG4gICAgaGVscGVyTmFtZSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShgXyR7YmFzZU5hbWV9YCk7XG4gICAgdGhpcy5oZWxwZXJOYW1lc1tiYXNlTmFtZV0gPSBoZWxwZXJOYW1lO1xuICAgIHJldHVybiBoZWxwZXJOYW1lO1xuICB9XG5cbiAgZW1pdEhlbHBlcnMoKSB7XG4gICAgbGV0IHJlc3VsdENvZGUgPSBcIlwiO1xuICAgIGlmICh0aGlzLmhlbHBlck5hbWVzLm9wdGlvbmFsQ2hhaW5EZWxldGUpIHtcbiAgICAgIHRoaXMuZ2V0SGVscGVyTmFtZShcIm9wdGlvbmFsQ2hhaW5cIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmhlbHBlck5hbWVzLmFzeW5jT3B0aW9uYWxDaGFpbkRlbGV0ZSkge1xuICAgICAgdGhpcy5nZXRIZWxwZXJOYW1lKFwiYXN5bmNPcHRpb25hbENoYWluXCIpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtiYXNlTmFtZSwgaGVscGVyQ29kZVRlbXBsYXRlXSBvZiBPYmplY3QuZW50cmllcyhIRUxQRVJTKSkge1xuICAgICAgY29uc3QgaGVscGVyTmFtZSA9IHRoaXMuaGVscGVyTmFtZXNbYmFzZU5hbWVdO1xuICAgICAgbGV0IGhlbHBlckNvZGUgPSBoZWxwZXJDb2RlVGVtcGxhdGU7XG4gICAgICBpZiAoYmFzZU5hbWUgPT09IFwib3B0aW9uYWxDaGFpbkRlbGV0ZVwiKSB7XG4gICAgICAgIGhlbHBlckNvZGUgPSBoZWxwZXJDb2RlLnJlcGxhY2UoXCJPUFRJT05BTF9DSEFJTl9OQU1FXCIsIHRoaXMuaGVscGVyTmFtZXMub3B0aW9uYWxDaGFpbik7XG4gICAgICB9IGVsc2UgaWYgKGJhc2VOYW1lID09PSBcImFzeW5jT3B0aW9uYWxDaGFpbkRlbGV0ZVwiKSB7XG4gICAgICAgIGhlbHBlckNvZGUgPSBoZWxwZXJDb2RlLnJlcGxhY2UoXG4gICAgICAgICAgXCJBU1lOQ19PUFRJT05BTF9DSEFJTl9OQU1FXCIsXG4gICAgICAgICAgdGhpcy5oZWxwZXJOYW1lcy5hc3luY09wdGlvbmFsQ2hhaW4sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGJhc2VOYW1lID09PSBcInJlcXVpcmVcIikge1xuICAgICAgICBpZiAodGhpcy5jcmVhdGVSZXF1aXJlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuY3JlYXRlUmVxdWlyZU5hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfY3JlYXRlUmVxdWlyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBoZWxwZXJDb2RlID0gaGVscGVyQ29kZS5yZXBsYWNlKC9DUkVBVEVfUkVRVUlSRV9OQU1FL2csIHRoaXMuY3JlYXRlUmVxdWlyZU5hbWUpO1xuICAgICAgfVxuICAgICAgaWYgKGhlbHBlck5hbWUpIHtcbiAgICAgICAgcmVzdWx0Q29kZSArPSBcIiBcIjtcbiAgICAgICAgcmVzdWx0Q29kZSArPSBoZWxwZXJDb2RlLnJlcGxhY2UoYmFzZU5hbWUsIGhlbHBlck5hbWUpLnJlcGxhY2UoL1xccysvZywgXCIgXCIpLnRyaW0oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdENvZGU7XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBpc0Jsb2NrU2NvcGVkRGVjbGFyYXRpb24sXG4gIGlzRnVuY3Rpb25TY29wZWREZWNsYXJhdGlvbixcbiAgaXNOb25Ub3BMZXZlbERlY2xhcmF0aW9uLFxufSBmcm9tIFwiLi9wYXJzZXIvdG9rZW5pemVyXCI7XG5cbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzXCI7XG5cblxuLyoqXG4gKiBUcmF2ZXJzZSB0aGUgZ2l2ZW4gdG9rZW5zIGFuZCBtb2RpZnkgdGhlbSBpZiBuZWNlc3NhcnkgdG8gaW5kaWNhdGUgdGhhdCBzb21lIG5hbWVzIHNoYWRvdyBnbG9iYWxcbiAqIHZhcmlhYmxlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHMoXG4gIHRva2VucyxcbiAgc2NvcGVzLFxuICBnbG9iYWxOYW1lcyxcbikge1xuICBpZiAoIWhhc1NoYWRvd2VkR2xvYmFscyh0b2tlbnMsIGdsb2JhbE5hbWVzKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBtYXJrU2hhZG93ZWRHbG9iYWxzKHRva2Vucywgc2NvcGVzLCBnbG9iYWxOYW1lcyk7XG59XG5cbi8qKlxuICogV2UgY2FuIGRvIGEgZmFzdCB1cC1mcm9udCBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBkZWNsYXJhdGlvbnMgdG8gZ2xvYmFsIG5hbWVzLiBJZiBub3QsXG4gKiB0aGVuIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY29tcHV0aW5nIHNjb3BlIGFzc2lnbm1lbnRzLlxuICovXG4vLyBFeHBvcnRlZCBmb3IgdGVzdGluZy5cbmV4cG9ydCBmdW5jdGlvbiBoYXNTaGFkb3dlZEdsb2JhbHModG9rZW5zLCBnbG9iYWxOYW1lcykge1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucy50b2tlbnMpIHtcbiAgICBpZiAoXG4gICAgICB0b2tlbi50eXBlID09PSB0dC5uYW1lICYmXG4gICAgICAhdG9rZW4uaXNUeXBlICYmXG4gICAgICBpc05vblRvcExldmVsRGVjbGFyYXRpb24odG9rZW4pICYmXG4gICAgICBnbG9iYWxOYW1lcy5oYXModG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbWFya1NoYWRvd2VkR2xvYmFscyhcbiAgdG9rZW5zLFxuICBzY29wZXMsXG4gIGdsb2JhbE5hbWVzLFxuKSB7XG4gIGNvbnN0IHNjb3BlU3RhY2sgPSBbXTtcbiAgbGV0IHNjb3BlSW5kZXggPSBzY29wZXMubGVuZ3RoIC0gMTtcbiAgLy8gU2NvcGVzIHdlcmUgZ2VuZXJhdGVkIGF0IGNvbXBsZXRpb24gdGltZSwgc28gdGhleSdyZSBzb3J0ZWQgYnkgZW5kIGluZGV4LCBzbyB3ZSBjYW4gbWFpbnRhaW4gYVxuICAvLyBnb29kIHN0YWNrIGJ5IGdvaW5nIGJhY2t3YXJkcyB0aHJvdWdoIHRoZW0uXG4gIGZvciAobGV0IGkgPSB0b2tlbnMudG9rZW5zLmxlbmd0aCAtIDE7IDsgaS0tKSB7XG4gICAgd2hpbGUgKHNjb3BlU3RhY2subGVuZ3RoID4gMCAmJiBzY29wZVN0YWNrW3Njb3BlU3RhY2subGVuZ3RoIC0gMV0uc3RhcnRUb2tlbkluZGV4ID09PSBpICsgMSkge1xuICAgICAgc2NvcGVTdGFjay5wb3AoKTtcbiAgICB9XG4gICAgd2hpbGUgKHNjb3BlSW5kZXggPj0gMCAmJiBzY29wZXNbc2NvcGVJbmRleF0uZW5kVG9rZW5JbmRleCA9PT0gaSArIDEpIHtcbiAgICAgIHNjb3BlU3RhY2sucHVzaChzY29wZXNbc2NvcGVJbmRleF0pO1xuICAgICAgc2NvcGVJbmRleC0tO1xuICAgIH1cbiAgICAvLyBQcm9jZXNzIHNjb3BlcyBhZnRlciB0aGUgbGFzdCBpdGVyYXRpb24gc28gd2UgY2FuIG1ha2Ugc3VyZSB3ZSBwb3AgYWxsIG9mIHRoZW0uXG4gICAgaWYgKGkgPCAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgY29uc3QgbmFtZSA9IHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKTtcbiAgICBpZiAoc2NvcGVTdGFjay5sZW5ndGggPiAxICYmICF0b2tlbi5pc1R5cGUgJiYgdG9rZW4udHlwZSA9PT0gdHQubmFtZSAmJiBnbG9iYWxOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgIGlmIChpc0Jsb2NrU2NvcGVkRGVjbGFyYXRpb24odG9rZW4pKSB7XG4gICAgICAgIG1hcmtTaGFkb3dlZEZvclNjb3BlKHNjb3BlU3RhY2tbc2NvcGVTdGFjay5sZW5ndGggLSAxXSwgdG9rZW5zLCBuYW1lKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uKHRva2VuKSkge1xuICAgICAgICBsZXQgc3RhY2tJbmRleCA9IHNjb3BlU3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKHN0YWNrSW5kZXggPiAwICYmICFzY29wZVN0YWNrW3N0YWNrSW5kZXhdLmlzRnVuY3Rpb25TY29wZSkge1xuICAgICAgICAgIHN0YWNrSW5kZXgtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhY2tJbmRleCA8IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEaWQgbm90IGZpbmQgcGFyZW50IGZ1bmN0aW9uIHNjb3BlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBtYXJrU2hhZG93ZWRGb3JTY29wZShzY29wZVN0YWNrW3N0YWNrSW5kZXhdLCB0b2tlbnMsIG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoc2NvcGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgZW1wdHkgc2NvcGUgc3RhY2sgYWZ0ZXIgcHJvY2Vzc2luZyBmaWxlLlwiKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU2hhZG93ZWRGb3JTY29wZShzY29wZSwgdG9rZW5zLCBuYW1lKSB7XG4gIGZvciAobGV0IGkgPSBzY29wZS5zdGFydFRva2VuSW5kZXg7IGkgPCBzY29wZS5lbmRUb2tlbkluZGV4OyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKFxuICAgICAgKHRva2VuLnR5cGUgPT09IHR0Lm5hbWUgfHwgdG9rZW4udHlwZSA9PT0gdHQuanN4TmFtZSkgJiZcbiAgICAgIHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSA9PT0gbmFtZVxuICAgICkge1xuICAgICAgdG9rZW4uc2hhZG93c0dsb2JhbCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCAiXG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuLyoqXG4gKiBHZXQgYWxsIGlkZW50aWZpZXIgbmFtZXMgaW4gdGhlIGNvZGUsIGluIG9yZGVyLCBpbmNsdWRpbmcgZHVwbGljYXRlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0SWRlbnRpZmllck5hbWVzKGNvZGUsIHRva2Vucykge1xuICBjb25zdCBuYW1lcyA9IFtdO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgIGlmICh0b2tlbi50eXBlID09PSB0dC5uYW1lKSB7XG4gICAgICBuYW1lcy5wdXNoKGNvZGUuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmFtZXM7XG59XG4iLCAiXG5pbXBvcnQgZ2V0SWRlbnRpZmllck5hbWVzIGZyb20gXCIuL3V0aWwvZ2V0SWRlbnRpZmllck5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5hbWVNYW5hZ2VyIHtcbiAgICBfX2luaXQoKSB7dGhpcy51c2VkTmFtZXMgPSBuZXcgU2V0KCl9XG5cbiAgY29uc3RydWN0b3IoY29kZSwgdG9rZW5zKSB7O05hbWVNYW5hZ2VyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtcbiAgICB0aGlzLnVzZWROYW1lcyA9IG5ldyBTZXQoZ2V0SWRlbnRpZmllck5hbWVzKGNvZGUsIHRva2VucykpO1xuICB9XG5cbiAgY2xhaW1GcmVlTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmV3TmFtZSA9IHRoaXMuZmluZEZyZWVOYW1lKG5hbWUpO1xuICAgIHRoaXMudXNlZE5hbWVzLmFkZChuZXdOYW1lKTtcbiAgICByZXR1cm4gbmV3TmFtZTtcbiAgfVxuXG4gIGZpbmRGcmVlTmFtZShuYW1lKSB7XG4gICAgaWYgKCF0aGlzLnVzZWROYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgIHJldHVybiBuYW1lO1xuICAgIH1cbiAgICBsZXQgc3VmZml4TnVtID0gMjtcbiAgICB3aGlsZSAodGhpcy51c2VkTmFtZXMuaGFzKG5hbWUgKyBTdHJpbmcoc3VmZml4TnVtKSkpIHtcbiAgICAgIHN1ZmZpeE51bSsrO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZSArIFN0cmluZyhzdWZmaXhOdW0pO1xuICB9XG59XG4iLCAiaW1wb3J0IHtjcmVhdGVDaGVja2Vyc30gZnJvbSBcInRzLWludGVyZmFjZS1jaGVja2VyXCI7XG5cbmltcG9ydCBPcHRpb25zR2VuVHlwZXMgZnJvbSBcIi4vT3B0aW9ucy1nZW4tdHlwZXNcIjtcblxuY29uc3Qge09wdGlvbnM6IE9wdGlvbnNDaGVja2VyfSA9IGNyZWF0ZUNoZWNrZXJzKE9wdGlvbnNHZW5UeXBlcyk7XG5cbiBcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSB7XG4gIE9wdGlvbnNDaGVja2VyLnN0cmljdENoZWNrKG9wdGlvbnMpO1xufVxuIiwgIi8qKlxuICogVGhpcyBtb2R1bGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGB0cy1pbnRlcmZhY2UtYnVpbGRlcmBcbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tIFwidHMtaW50ZXJmYWNlLWNoZWNrZXJcIjtcbi8vIHRzbGludDpkaXNhYmxlOm9iamVjdC1saXRlcmFsLWtleS1xdW90ZXNcblxuZXhwb3J0IGNvbnN0IFRyYW5zZm9ybSA9IHQudW5pb24oXG4gIHQubGl0KFwianN4XCIpLFxuICB0LmxpdChcInR5cGVzY3JpcHRcIiksXG4gIHQubGl0KFwiZmxvd1wiKSxcbiAgdC5saXQoXCJpbXBvcnRzXCIpLFxuICB0LmxpdChcInJlYWN0LWhvdC1sb2FkZXJcIiksXG4gIHQubGl0KFwiamVzdFwiKSxcbik7XG5cbmV4cG9ydCBjb25zdCBTb3VyY2VNYXBPcHRpb25zID0gdC5pZmFjZShbXSwge1xuICBjb21waWxlZEZpbGVuYW1lOiBcInN0cmluZ1wiLFxufSk7XG5cbmV4cG9ydCBjb25zdCBPcHRpb25zID0gdC5pZmFjZShbXSwge1xuICB0cmFuc2Zvcm1zOiB0LmFycmF5KFwiVHJhbnNmb3JtXCIpLFxuICBkaXNhYmxlRVNUcmFuc2Zvcm1zOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGpzeFJ1bnRpbWU6IHQub3B0KHQudW5pb24odC5saXQoXCJjbGFzc2ljXCIpLCB0LmxpdChcImF1dG9tYXRpY1wiKSwgdC5saXQoXCJwcmVzZXJ2ZVwiKSkpLFxuICBwcm9kdWN0aW9uOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGpzeEltcG9ydFNvdXJjZTogdC5vcHQoXCJzdHJpbmdcIiksXG4gIGpzeFByYWdtYTogdC5vcHQoXCJzdHJpbmdcIiksXG4gIGpzeEZyYWdtZW50UHJhZ21hOiB0Lm9wdChcInN0cmluZ1wiKSxcbiAga2VlcFVudXNlZEltcG9ydHM6IHQub3B0KFwiYm9vbGVhblwiKSxcbiAgcHJlc2VydmVEeW5hbWljSW1wb3J0OiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGluamVjdENyZWF0ZVJlcXVpcmVGb3JJbXBvcnRSZXF1aXJlOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wOiB0Lm9wdChcImJvb2xlYW5cIiksXG4gIGVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3A6IHQub3B0KFwiYm9vbGVhblwiKSxcbiAgc291cmNlTWFwT3B0aW9uczogdC5vcHQoXCJTb3VyY2VNYXBPcHRpb25zXCIpLFxuICBmaWxlUGF0aDogdC5vcHQoXCJzdHJpbmdcIiksXG59KTtcblxuY29uc3QgZXhwb3J0ZWRUeXBlU3VpdGUgPSB7XG4gIFRyYW5zZm9ybSxcbiAgU291cmNlTWFwT3B0aW9ucyxcbiAgT3B0aW9ucyxcbn07XG5leHBvcnQgZGVmYXVsdCBleHBvcnRlZFR5cGVTdWl0ZTtcbiIsICJpbXBvcnQge2Zsb3dQYXJzZUFzc2lnbmFibGVMaXN0SXRlbVR5cGVzfSBmcm9tIFwiLi4vcGx1Z2lucy9mbG93XCI7XG5pbXBvcnQge3RzUGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcywgdHNQYXJzZU1vZGlmaWVyc30gZnJvbSBcIi4uL3BsdWdpbnMvdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgZWF0LFxuICBJZGVudGlmaWVyUm9sZSxcbiAgbWF0Y2gsXG4gIG5leHQsXG4gIHBvcFR5cGVDb250ZXh0LFxuICBwdXNoVHlwZUNvbnRleHQsXG59IGZyb20gXCIuLi90b2tlbml6ZXIvaW5kZXhcIjtcbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi90b2tlbml6ZXIva2V5d29yZHNcIjtcbmltcG9ydCB7VG9rZW5UeXBlLCBUb2tlblR5cGUgYXMgdHR9IGZyb20gXCIuLi90b2tlbml6ZXIvdHlwZXNcIjtcbmltcG9ydCB7aXNGbG93RW5hYmxlZCwgaXNUeXBlU2NyaXB0RW5hYmxlZCwgc3RhdGV9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7cGFyc2VJZGVudGlmaWVyLCBwYXJzZU1heWJlQXNzaWduLCBwYXJzZU9ian0gZnJvbSBcIi4vZXhwcmVzc2lvblwiO1xuaW1wb3J0IHtleHBlY3QsIHVuZXhwZWN0ZWR9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3ByZWFkKCkge1xuICBuZXh0KCk7XG4gIHBhcnNlTWF5YmVBc3NpZ24oZmFsc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXN0KGlzQmxvY2tTY29wZSkge1xuICBuZXh0KCk7XG4gIHBhcnNlQmluZGluZ0F0b20oaXNCbG9ja1Njb3BlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQmluZGluZ0lkZW50aWZpZXIoaXNCbG9ja1Njb3BlKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBtYXJrUHJpb3JCaW5kaW5nSWRlbnRpZmllcihpc0Jsb2NrU2NvcGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbXBvcnRlZElkZW50aWZpZXIoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gSWRlbnRpZmllclJvbGUuSW1wb3J0RGVjbGFyYXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrUHJpb3JCaW5kaW5nSWRlbnRpZmllcihpc0Jsb2NrU2NvcGUpIHtcbiAgbGV0IGlkZW50aWZpZXJSb2xlO1xuICBpZiAoc3RhdGUuc2NvcGVEZXB0aCA9PT0gMCkge1xuICAgIGlkZW50aWZpZXJSb2xlID0gSWRlbnRpZmllclJvbGUuVG9wTGV2ZWxEZWNsYXJhdGlvbjtcbiAgfSBlbHNlIGlmIChpc0Jsb2NrU2NvcGUpIHtcbiAgICBpZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLkJsb2NrU2NvcGVkRGVjbGFyYXRpb247XG4gIH0gZWxzZSB7XG4gICAgaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5GdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uO1xuICB9XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBpZGVudGlmaWVyUm9sZTtcbn1cblxuLy8gUGFyc2VzIGx2YWx1ZSAoYXNzaWduYWJsZSkgYXRvbS5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJpbmRpbmdBdG9tKGlzQmxvY2tTY29wZSkge1xuICBzd2l0Y2ggKHN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIHR0Ll90aGlzOiB7XG4gICAgICAvLyBJbiBUeXBlU2NyaXB0LCBcInRoaXNcIiBtYXkgYmUgdGhlIG5hbWUgb2YgYSBwYXJhbWV0ZXIsIHNvIGFsbG93IGl0LlxuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICAgICAgbmV4dCgpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIHR0Ll95aWVsZDpcbiAgICBjYXNlIHR0Lm5hbWU6IHtcbiAgICAgIHN0YXRlLnR5cGUgPSB0dC5uYW1lO1xuICAgICAgcGFyc2VCaW5kaW5nSWRlbnRpZmllcihpc0Jsb2NrU2NvcGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNhc2UgdHQuYnJhY2tldEw6IHtcbiAgICAgIG5leHQoKTtcbiAgICAgIHBhcnNlQmluZGluZ0xpc3QodHQuYnJhY2tldFIsIGlzQmxvY2tTY29wZSwgdHJ1ZSAvKiBhbGxvd0VtcHR5ICovKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIHR0LmJyYWNlTDpcbiAgICAgIHBhcnNlT2JqKHRydWUsIGlzQmxvY2tTY29wZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdW5leHBlY3RlZCgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJpbmRpbmdMaXN0KFxuICBjbG9zZSxcbiAgaXNCbG9ja1Njb3BlLFxuICBhbGxvd0VtcHR5ID0gZmFsc2UsXG4gIGFsbG93TW9kaWZpZXJzID0gZmFsc2UsXG4gIGNvbnRleHRJZCA9IDAsXG4pIHtcbiAgbGV0IGZpcnN0ID0gdHJ1ZTtcblxuICBsZXQgaGFzUmVtb3ZlZENvbW1hID0gZmFsc2U7XG4gIGNvbnN0IGZpcnN0SXRlbVRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuXG4gIHdoaWxlICghZWF0KGNsb3NlKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGVjdCh0dC5jb21tYSk7XG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbiAgICAgIC8vIEFmdGVyIGEgXCJ0aGlzXCIgdHlwZSBpbiBUeXBlU2NyaXB0LCB3ZSBuZWVkIHRvIHNldCB0aGUgZm9sbG93aW5nIGNvbW1hIChpZiBhbnkpIHRvIGFsc28gYmVcbiAgICAgIC8vIGEgdHlwZSB0b2tlbiBzbyB0aGF0IGl0IHdpbGwgYmUgcmVtb3ZlZC5cbiAgICAgIGlmICghaGFzUmVtb3ZlZENvbW1hICYmIHN0YXRlLnRva2Vuc1tmaXJzdEl0ZW1Ub2tlbkluZGV4XS5pc1R5cGUpIHtcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICAgICAgICBoYXNSZW1vdmVkQ29tbWEgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxsb3dFbXB0eSAmJiBtYXRjaCh0dC5jb21tYSkpIHtcbiAgICAgIC8vIEVtcHR5IGl0ZW07IG5vdGhpbmcgZnVydGhlciB0byBwYXJzZSBmb3IgdGhpcyBpdGVtLlxuICAgIH0gZWxzZSBpZiAoZWF0KGNsb3NlKSkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmIChtYXRjaCh0dC5lbGxpcHNpcykpIHtcbiAgICAgIHBhcnNlUmVzdChpc0Jsb2NrU2NvcGUpO1xuICAgICAgcGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcygpO1xuICAgICAgLy8gU3VwcG9ydCByZXN0IGVsZW1lbnQgdHJhaWxpbmcgY29tbWFzIGFsbG93ZWQgYnkgVHlwZVNjcmlwdCA8Mi45LlxuICAgICAgZWF0KFRva2VuVHlwZS5jb21tYSk7XG4gICAgICBleHBlY3QoY2xvc2UpO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlQXNzaWduYWJsZUxpc3RJdGVtKGFsbG93TW9kaWZpZXJzLCBpc0Jsb2NrU2NvcGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFzc2lnbmFibGVMaXN0SXRlbShhbGxvd01vZGlmaWVycywgaXNCbG9ja1Njb3BlKSB7XG4gIGlmIChhbGxvd01vZGlmaWVycykge1xuICAgIHRzUGFyc2VNb2RpZmllcnMoW1xuICAgICAgQ29udGV4dHVhbEtleXdvcmQuX3B1YmxpYyxcbiAgICAgIENvbnRleHR1YWxLZXl3b3JkLl9wcm90ZWN0ZWQsXG4gICAgICBDb250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZSxcbiAgICAgIENvbnRleHR1YWxLZXl3b3JkLl9yZWFkb25seSxcbiAgICAgIENvbnRleHR1YWxLZXl3b3JkLl9vdmVycmlkZSxcbiAgICBdKTtcbiAgfVxuXG4gIHBhcnNlTWF5YmVEZWZhdWx0KGlzQmxvY2tTY29wZSk7XG4gIHBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKTtcbiAgcGFyc2VNYXliZURlZmF1bHQoaXNCbG9ja1Njb3BlLCB0cnVlIC8qIGxlZnRBbHJlYWR5UGFyc2VkICovKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcygpIHtcbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcygpO1xuICB9IGVsc2UgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0c1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKTtcbiAgfVxufVxuXG4vLyBQYXJzZXMgYXNzaWdubWVudCBwYXR0ZXJuIGFyb3VuZCBnaXZlbiBhdG9tIGlmIHBvc3NpYmxlLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWF5YmVEZWZhdWx0KGlzQmxvY2tTY29wZSwgbGVmdEFscmVhZHlQYXJzZWQgPSBmYWxzZSkge1xuICBpZiAoIWxlZnRBbHJlYWR5UGFyc2VkKSB7XG4gICAgcGFyc2VCaW5kaW5nQXRvbShpc0Jsb2NrU2NvcGUpO1xuICB9XG4gIGlmICghZWF0KHR0LmVxKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBlcUluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aCAtIDE7XG4gIHBhcnNlTWF5YmVBc3NpZ24oKTtcbiAgc3RhdGUudG9rZW5zW2VxSW5kZXhdLnJoc0VuZEluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbn1cbiIsICJpbXBvcnQge1xuICBlYXQsXG4gIGZpbmlzaFRva2VuLFxuICBJZGVudGlmaWVyUm9sZSxcbiAgbG9va2FoZWFkVHlwZSxcbiAgbG9va2FoZWFkVHlwZUFuZEtleXdvcmQsXG4gIG1hdGNoLFxuICBuZXh0LFxuICBuZXh0VGVtcGxhdGVUb2tlbixcbiAgcG9wVHlwZUNvbnRleHQsXG4gIHB1c2hUeXBlQ29udGV4dCxcbiAgcmVzY2FuX2d0LFxufSBmcm9tIFwiLi4vdG9rZW5pemVyL2luZGV4XCI7XG5pbXBvcnQge0NvbnRleHR1YWxLZXl3b3JkfSBmcm9tIFwiLi4vdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSwgVG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vdG9rZW5pemVyL3R5cGVzXCI7XG5pbXBvcnQge2lzSlNYRW5hYmxlZCwgc3RhdGV9IGZyb20gXCIuLi90cmF2ZXJzZXIvYmFzZVwiO1xuaW1wb3J0IHtcbiAgYXRQb3NzaWJsZUFzeW5jLFxuICBiYXNlUGFyc2VNYXliZUFzc2lnbixcbiAgYmFzZVBhcnNlU3Vic2NyaXB0LFxuICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzLFxuICBwYXJzZUV4cHJBdG9tLFxuICBwYXJzZUV4cHJlc3Npb24sXG4gIHBhcnNlRnVuY3Rpb25Cb2R5LFxuICBwYXJzZUlkZW50aWZpZXIsXG4gIHBhcnNlTGl0ZXJhbCxcbiAgcGFyc2VNYXliZUFzc2lnbixcbiAgcGFyc2VNYXliZVVuYXJ5LFxuICBwYXJzZVByb3BlcnR5TmFtZSxcbiAgcGFyc2VUZW1wbGF0ZSxcblxufSBmcm9tIFwiLi4vdHJhdmVyc2VyL2V4cHJlc3Npb25cIjtcbmltcG9ydCB7cGFyc2VCaW5kaW5nSWRlbnRpZmllciwgcGFyc2VCaW5kaW5nTGlzdCwgcGFyc2VJbXBvcnRlZElkZW50aWZpZXJ9IGZyb20gXCIuLi90cmF2ZXJzZXIvbHZhbFwiO1xuaW1wb3J0IHtcbiAgYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMsXG4gIHBhcnNlQmxvY2tCb2R5LFxuICBwYXJzZUNsYXNzLFxuICBwYXJzZUZ1bmN0aW9uLFxuICBwYXJzZUZ1bmN0aW9uUGFyYW1zLFxuICBwYXJzZVN0YXRlbWVudCxcbiAgcGFyc2VWYXJTdGF0ZW1lbnQsXG59IGZyb20gXCIuLi90cmF2ZXJzZXIvc3RhdGVtZW50XCI7XG5pbXBvcnQge1xuICBjYW5JbnNlcnRTZW1pY29sb24sXG4gIGVhdENvbnRleHR1YWwsXG4gIGV4cGVjdCxcbiAgZXhwZWN0Q29udGV4dHVhbCxcbiAgaGFzUHJlY2VkaW5nTGluZUJyZWFrLFxuICBpc0NvbnRleHR1YWwsXG4gIGlzTGluZVRlcm1pbmF0b3IsXG4gIGlzTG9va2FoZWFkQ29udGV4dHVhbCxcbiAgc2VtaWNvbG9uLFxuICB1bmV4cGVjdGVkLFxufSBmcm9tIFwiLi4vdHJhdmVyc2VyL3V0aWxcIjtcbmltcG9ydCB7bmV4dEpTWFRhZ1Rva2VufSBmcm9tIFwiLi9qc3hcIjtcblxuZnVuY3Rpb24gdHNJc0lkZW50aWZpZXIoKSB7XG4gIC8vIFRPRE86IGFjdHVhbGx5IGEgYml0IG1vcmUgY29tcGxleCBpbiBUeXBlU2NyaXB0LCBidXQgc2hvdWxkbid0IG1hdHRlci5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMTUwMDhcbiAgcmV0dXJuIG1hdGNoKHR0Lm5hbWUpO1xufVxuXG5mdW5jdGlvbiBpc0xpdGVyYWxQcm9wZXJ0eU5hbWUoKSB7XG4gIHJldHVybiAoXG4gICAgbWF0Y2godHQubmFtZSkgfHxcbiAgICBCb29sZWFuKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfS0VZV09SRCkgfHxcbiAgICBtYXRjaCh0dC5zdHJpbmcpIHx8XG4gICAgbWF0Y2godHQubnVtKSB8fFxuICAgIG1hdGNoKHR0LmJpZ2ludCkgfHxcbiAgICBtYXRjaCh0dC5kZWNpbWFsKVxuICApO1xufVxuXG5mdW5jdGlvbiB0c05leHRUb2tlbkNhbkZvbGxvd01vZGlmaWVyKCkge1xuICAvLyBOb3RlOiBUeXBlU2NyaXB0J3MgaW1wbGVtZW50YXRpb24gaXMgbXVjaCBtb3JlIGNvbXBsaWNhdGVkIGJlY2F1c2VcbiAgLy8gbW9yZSB0aGluZ3MgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZXJzIHRoZXJlLlxuICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIG9ubHkgaGFuZGxlcyBtb2RpZmllcnMgbm90IGhhbmRsZWQgYnkgYmFieWxvbiBpdHNlbGYuIEFuZCBcInN0YXRpY1wiLlxuICAvLyBUT0RPOiBXb3VsZCBiZSBuaWNlIHRvIGF2b2lkIGxvb2thaGVhZC4gV2FudCBhIGhhc0xpbmVCcmVha1VwTmV4dCgpIG1ldGhvZC4uLlxuICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG5cbiAgbmV4dCgpO1xuICBjb25zdCBjYW5Gb2xsb3dNb2RpZmllciA9XG4gICAgKG1hdGNoKHR0LmJyYWNrZXRMKSB8fFxuICAgICAgbWF0Y2godHQuYnJhY2VMKSB8fFxuICAgICAgbWF0Y2godHQuc3RhcikgfHxcbiAgICAgIG1hdGNoKHR0LmVsbGlwc2lzKSB8fFxuICAgICAgbWF0Y2godHQuaGFzaCkgfHxcbiAgICAgIGlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpKSAmJlxuICAgICFoYXNQcmVjZWRpbmdMaW5lQnJlYWsoKTtcblxuICBpZiAoY2FuRm9sbG93TW9kaWZpZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VNb2RpZmllcnMoYWxsb3dlZE1vZGlmaWVycykge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG1vZGlmaWVyID0gdHNQYXJzZU1vZGlmaWVyKGFsbG93ZWRNb2RpZmllcnMpO1xuICAgIGlmIChtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbi8qKiBQYXJzZXMgYSBtb2RpZmllciBtYXRjaGluZyBvbmUgdGhlIGdpdmVuIG1vZGlmaWVyIG5hbWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VNb2RpZmllcihcbiAgYWxsb3dlZE1vZGlmaWVycyxcbikge1xuICBpZiAoIW1hdGNoKHR0Lm5hbWUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBtb2RpZmllciA9IHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkO1xuICBpZiAoYWxsb3dlZE1vZGlmaWVycy5pbmRleE9mKG1vZGlmaWVyKSAhPT0gLTEgJiYgdHNOZXh0VG9rZW5DYW5Gb2xsb3dNb2RpZmllcigpKSB7XG4gICAgc3dpdGNoIChtb2RpZmllcikge1xuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHk6XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Ll9yZWFkb25seTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdDpcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2Fic3RyYWN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYzpcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX3N0YXRpYztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHR1YWxLZXl3b3JkLl9wdWJsaWM6XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Ll9wdWJsaWM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fcHJpdmF0ZTpcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX3ByaXZhdGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fcHJvdGVjdGVkOlxuICAgICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5fcHJvdGVjdGVkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dHVhbEtleXdvcmQuX292ZXJyaWRlOlxuICAgICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5fb3ZlcnJpZGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fZGVjbGFyZTpcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2RlY2xhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBtb2RpZmllcjtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZUVudGl0eU5hbWUoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICB3aGlsZSAoZWF0KHR0LmRvdCkpIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVJlZmVyZW5jZSgpIHtcbiAgdHNQYXJzZUVudGl0eU5hbWUoKTtcbiAgaWYgKCFoYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSAmJiBtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VUaGlzVHlwZVByZWRpY2F0ZSgpIHtcbiAgbmV4dCgpO1xuICB0c1BhcnNlVHlwZUFubm90YXRpb24oKTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZVRoaXNUeXBlTm9kZSgpIHtcbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVF1ZXJ5KCkge1xuICBleHBlY3QodHQuX3R5cGVvZik7XG4gIGlmIChtYXRjaCh0dC5faW1wb3J0KSkge1xuICAgIHRzUGFyc2VJbXBvcnRUeXBlKCk7XG4gIH0gZWxzZSB7XG4gICAgdHNQYXJzZUVudGl0eU5hbWUoKTtcbiAgfVxuICBpZiAoIWhhc1ByZWNlZGluZ0xpbmVCcmVhaygpICYmIG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIHRzUGFyc2VUeXBlQXJndW1lbnRzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUltcG9ydFR5cGUoKSB7XG4gIGV4cGVjdCh0dC5faW1wb3J0KTtcbiAgZXhwZWN0KHR0LnBhcmVuTCk7XG4gIGV4cGVjdCh0dC5zdHJpbmcpO1xuICBleHBlY3QodHQucGFyZW5SKTtcbiAgaWYgKGVhdCh0dC5kb3QpKSB7XG4gICAgdHNQYXJzZUVudGl0eU5hbWUoKTtcbiAgfVxuICBpZiAobWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHMoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVBhcmFtZXRlcigpIHtcbiAgZWF0KHR0Ll9jb25zdCk7XG4gIGNvbnN0IGhhZEluID0gZWF0KHR0Ll9pbik7XG4gIGNvbnN0IGhhZE91dCA9IGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX291dCk7XG4gIGVhdCh0dC5fY29uc3QpO1xuICBpZiAoKGhhZEluIHx8IGhhZE91dCkgJiYgIW1hdGNoKHR0Lm5hbWUpKSB7XG4gICAgLy8gVGhlIFwiaW5cIiBvciBcIm91dFwiIGtleXdvcmQgbXVzdCBoYXZlIGFjdHVhbGx5IGJlZW4gdGhlIHR5cGUgcGFyYW1ldGVyXG4gICAgLy8gbmFtZSwgc28gc2V0IGl0IGFzIHRoZSBuYW1lLlxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Lm5hbWU7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIH1cblxuICBpZiAoZWF0KHR0Ll9leHRlbmRzKSkge1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gIH1cbiAgaWYgKGVhdCh0dC5lcSkpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoKSB7XG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICB0c1BhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVBhcmFtZXRlcnMoKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSB8fCBtYXRjaCh0dC50eXBlUGFyYW1ldGVyU3RhcnQpKSB7XG4gICAgbmV4dCgpO1xuICB9IGVsc2Uge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxuXG4gIHdoaWxlICghZWF0KHR0LmdyZWF0ZXJUaGFuKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlVHlwZVBhcmFtZXRlcigpO1xuICAgIGVhdCh0dC5jb21tYSk7XG4gIH1cbiAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbn1cblxuLy8gTm90ZTogSW4gVHlwZVNjcmlwdCBpbXBsZW1lbnRhdGlvbiB3ZSBtdXN0IHByb3ZpZGUgYHlpZWxkQ29udGV4dGAgYW5kIGBhd2FpdENvbnRleHRgLFxuLy8gYnV0IGhlcmUgaXQncyBhbHdheXMgZmFsc2UsIGJlY2F1c2UgdGhpcyBpcyBvbmx5IHVzZWQgZm9yIHR5cGVzLlxuZnVuY3Rpb24gdHNGaWxsU2lnbmF0dXJlKHJldHVyblRva2VuKSB7XG4gIC8vIEFycm93IGZucyAqbXVzdCogaGF2ZSByZXR1cm4gdG9rZW4gKGA9PmApLiBOb3JtYWwgZnVuY3Rpb25zIGNhbiBvbWl0IGl0LlxuICBjb25zdCByZXR1cm5Ub2tlblJlcXVpcmVkID0gcmV0dXJuVG9rZW4gPT09IHR0LmFycm93O1xuICB0c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgZXhwZWN0KHR0LnBhcmVuTCk7XG4gIC8vIENyZWF0ZSBhIHNjb3BlIGV2ZW4gdGhvdWdoIHdlJ3JlIGRvaW5nIHR5cGUgcGFyc2luZyBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHlcbiAgLy8gdHJlYXQgcGFyYW1zIGFzIHRvcC1sZXZlbCBiaW5kaW5ncy5cbiAgc3RhdGUuc2NvcGVEZXB0aCsrO1xuICB0c1BhcnNlQmluZGluZ0xpc3RGb3JTaWduYXR1cmUoZmFsc2UgLyogaXNCbG9ja1Njb3BlICovKTtcbiAgc3RhdGUuc2NvcGVEZXB0aC0tO1xuICBpZiAocmV0dXJuVG9rZW5SZXF1aXJlZCkge1xuICAgIHRzUGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbihyZXR1cm5Ub2tlbik7XG4gIH0gZWxzZSBpZiAobWF0Y2gocmV0dXJuVG9rZW4pKSB7XG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKHJldHVyblRva2VuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlQmluZGluZ0xpc3RGb3JTaWduYXR1cmUoaXNCbG9ja1Njb3BlKSB7XG4gIHBhcnNlQmluZGluZ0xpc3QodHQucGFyZW5SLCBpc0Jsb2NrU2NvcGUpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpIHtcbiAgaWYgKCFlYXQodHQuY29tbWEpKSB7XG4gICAgc2VtaWNvbG9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZVNpZ25hdHVyZU1lbWJlcigpIHtcbiAgdHNGaWxsU2lnbmF0dXJlKHR0LmNvbG9uKTtcbiAgdHNQYXJzZVR5cGVNZW1iZXJTZW1pY29sb24oKTtcbn1cblxuZnVuY3Rpb24gdHNJc1VuYW1iaWd1b3VzbHlJbmRleFNpZ25hdHVyZSgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICBuZXh0KCk7IC8vIFNraXAgJ3snXG4gIGNvbnN0IGlzSW5kZXhTaWduYXR1cmUgPSBlYXQodHQubmFtZSkgJiYgbWF0Y2godHQuY29sb24pO1xuICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgcmV0dXJuIGlzSW5kZXhTaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIHRzVHJ5UGFyc2VJbmRleFNpZ25hdHVyZSgpIHtcbiAgaWYgKCEobWF0Y2godHQuYnJhY2tldEwpICYmIHRzSXNVbmFtYmlndW91c2x5SW5kZXhTaWduYXR1cmUoKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMCk7XG5cbiAgZXhwZWN0KHR0LmJyYWNrZXRMKTtcbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIHRzUGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICBleHBlY3QodHQuYnJhY2tldFIpO1xuXG4gIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICB0c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpO1xuXG4gIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlUHJvcGVydHlPck1ldGhvZFNpZ25hdHVyZShpc1JlYWRvbmx5KSB7XG4gIGVhdCh0dC5xdWVzdGlvbik7XG5cbiAgaWYgKCFpc1JlYWRvbmx5ICYmIChtYXRjaCh0dC5wYXJlbkwpIHx8IG1hdGNoKHR0Lmxlc3NUaGFuKSkpIHtcbiAgICB0c0ZpbGxTaWduYXR1cmUodHQuY29sb24pO1xuICAgIHRzUGFyc2VUeXBlTWVtYmVyU2VtaWNvbG9uKCk7XG4gIH0gZWxzZSB7XG4gICAgdHNUcnlQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gICAgdHNQYXJzZVR5cGVNZW1iZXJTZW1pY29sb24oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZU1lbWJlcigpIHtcbiAgaWYgKG1hdGNoKHR0LnBhcmVuTCkgfHwgbWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgLy8gY2FsbCBzaWduYXR1cmVcbiAgICB0c1BhcnNlU2lnbmF0dXJlTWVtYmVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChtYXRjaCh0dC5fbmV3KSkge1xuICAgIG5leHQoKTtcbiAgICBpZiAobWF0Y2godHQucGFyZW5MKSB8fCBtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICAgIC8vIGNvbnN0cnVjdG9yIHNpZ25hdHVyZVxuICAgICAgdHNQYXJzZVNpZ25hdHVyZU1lbWJlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0c1BhcnNlUHJvcGVydHlPck1ldGhvZFNpZ25hdHVyZShmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCByZWFkb25seSA9ICEhdHNQYXJzZU1vZGlmaWVyKFtDb250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHldKTtcblxuICBjb25zdCBmb3VuZCA9IHRzVHJ5UGFyc2VJbmRleFNpZ25hdHVyZSgpO1xuICBpZiAoZm91bmQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKFxuICAgIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2dldCkgfHwgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9zZXQpKSAmJlxuICAgIHRzTmV4dFRva2VuQ2FuRm9sbG93TW9kaWZpZXIoKVxuICApIHtcbiAgICAvLyBUaGlzIGlzIGEgZ2V0dGVyL3NldHRlciBvbiBhIHR5cGUuIFRoZSB0c05leHRUb2tlbkNhbkZvbGxvd01vZGlmaWVyXG4gICAgLy8gZnVuY3Rpb24gYWxyZWFkeSBjYWxsZWQgbmV4dCgpIGZvciB1cywgc28gY29udGludWUgcGFyc2luZyB0aGUgbmFtZS5cbiAgfVxuICBwYXJzZVByb3BlcnR5TmFtZSgtMSAvKiBUeXBlcyBkb24ndCBuZWVkIGNvbnRleHQgSURzLiAqLyk7XG4gIHRzUGFyc2VQcm9wZXJ0eU9yTWV0aG9kU2lnbmF0dXJlKHJlYWRvbmx5KTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZVR5cGVMaXRlcmFsKCkge1xuICB0c1BhcnNlT2JqZWN0VHlwZU1lbWJlcnMoKTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZU9iamVjdFR5cGVNZW1iZXJzKCkge1xuICBleHBlY3QodHQuYnJhY2VMKTtcbiAgd2hpbGUgKCFlYXQodHQuYnJhY2VSKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlVHlwZU1lbWJlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzTG9va2FoZWFkSXNTdGFydE9mTWFwcGVkVHlwZSgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICBjb25zdCBpc1N0YXJ0T2ZNYXBwZWRUeXBlID0gdHNJc1N0YXJ0T2ZNYXBwZWRUeXBlKCk7XG4gIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gaXNTdGFydE9mTWFwcGVkVHlwZTtcbn1cblxuZnVuY3Rpb24gdHNJc1N0YXJ0T2ZNYXBwZWRUeXBlKCkge1xuICBuZXh0KCk7XG4gIGlmIChlYXQodHQucGx1cykgfHwgZWF0KHR0Lm1pbnVzKSkge1xuICAgIHJldHVybiBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5KTtcbiAgfVxuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9yZWFkb25seSkpIHtcbiAgICBuZXh0KCk7XG4gIH1cbiAgaWYgKCFtYXRjaCh0dC5icmFja2V0TCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgbmV4dCgpO1xuICBpZiAoIXRzSXNJZGVudGlmaWVyKCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgbmV4dCgpO1xuICByZXR1cm4gbWF0Y2godHQuX2luKTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZU1hcHBlZFR5cGVQYXJhbWV0ZXIoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBleHBlY3QodHQuX2luKTtcbiAgdHNQYXJzZVR5cGUoKTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZU1hcHBlZFR5cGUoKSB7XG4gIGV4cGVjdCh0dC5icmFjZUwpO1xuICBpZiAobWF0Y2godHQucGx1cykgfHwgbWF0Y2godHQubWludXMpKSB7XG4gICAgbmV4dCgpO1xuICAgIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3JlYWRvbmx5KTtcbiAgfSBlbHNlIHtcbiAgICBlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9yZWFkb25seSk7XG4gIH1cbiAgZXhwZWN0KHR0LmJyYWNrZXRMKTtcbiAgdHNQYXJzZU1hcHBlZFR5cGVQYXJhbWV0ZXIoKTtcbiAgaWYgKGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIHRzUGFyc2VUeXBlKCk7XG4gIH1cbiAgZXhwZWN0KHR0LmJyYWNrZXRSKTtcbiAgaWYgKG1hdGNoKHR0LnBsdXMpIHx8IG1hdGNoKHR0Lm1pbnVzKSkge1xuICAgIG5leHQoKTtcbiAgICBleHBlY3QodHQucXVlc3Rpb24pO1xuICB9IGVsc2Uge1xuICAgIGVhdCh0dC5xdWVzdGlvbik7XG4gIH1cbiAgdHNUcnlQYXJzZVR5cGUoKTtcbiAgc2VtaWNvbG9uKCk7XG4gIGV4cGVjdCh0dC5icmFjZVIpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHVwbGVUeXBlKCkge1xuICBleHBlY3QodHQuYnJhY2tldEwpO1xuICB3aGlsZSAoIWVhdCh0dC5icmFja2V0UikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgLy8gRG8gbm90IHZhbGlkYXRlIHByZXNlbmNlIG9mIGVpdGhlciBub25lIG9yIG9ubHkgbGFiZWxlZCBlbGVtZW50c1xuICAgIHRzUGFyc2VUdXBsZUVsZW1lbnRUeXBlKCk7XG4gICAgZWF0KHR0LmNvbW1hKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHVwbGVFbGVtZW50VHlwZSgpIHtcbiAgLy8gcGFyc2VzIGAuLi5Uc1R5cGVbXWBcbiAgaWYgKGVhdCh0dC5lbGxpcHNpcykpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9IGVsc2Uge1xuICAgIC8vIHBhcnNlcyBgVHNUeXBlP2BcbiAgICB0c1BhcnNlVHlwZSgpO1xuICAgIGVhdCh0dC5xdWVzdGlvbik7XG4gIH1cblxuICAvLyBUaGUgdHlwZSB3ZSBwYXJzZWQgYWJvdmUgd2FzIGFjdHVhbGx5IGEgbGFiZWxcbiAgaWYgKGVhdCh0dC5jb2xvbikpIHtcbiAgICAvLyBMYWJlbGVkIHR1cGxlIHR5cGVzIG11c3QgYWZmaXggdGhlIGxhYmVsIHdpdGggYC4uLmAgb3IgYD9gLCBzbyBubyBuZWVkIHRvIGhhbmRsZSB0aG9zZSBoZXJlXG4gICAgdHNQYXJzZVR5cGUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlUGFyZW50aGVzaXplZFR5cGUoKSB7XG4gIGV4cGVjdCh0dC5wYXJlbkwpO1xuICB0c1BhcnNlVHlwZSgpO1xuICBleHBlY3QodHQucGFyZW5SKTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZVRlbXBsYXRlTGl0ZXJhbFR5cGUoKSB7XG4gIC8vIEZpbmlzaCBgLCByZWFkIHF1YXNpXG4gIG5leHRUZW1wbGF0ZVRva2VuKCk7XG4gIC8vIEZpbmlzaCBxdWFzaSwgcmVhZCAke1xuICBuZXh0VGVtcGxhdGVUb2tlbigpO1xuICB3aGlsZSAoIW1hdGNoKHR0LmJhY2tRdW90ZSkgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgZXhwZWN0KHR0LmRvbGxhckJyYWNlTCk7XG4gICAgdHNQYXJzZVR5cGUoKTtcbiAgICAvLyBGaW5pc2ggfSwgcmVhZCBxdWFzaVxuICAgIG5leHRUZW1wbGF0ZVRva2VuKCk7XG4gICAgLy8gRmluaXNoIHF1YXNpLCByZWFkIGVpdGhlciAkeyBvciBgXG4gICAgbmV4dFRlbXBsYXRlVG9rZW4oKTtcbiAgfVxuICBuZXh0KCk7XG59XG5cbnZhciBGdW5jdGlvblR5cGU7IChmdW5jdGlvbiAoRnVuY3Rpb25UeXBlKSB7XG4gIGNvbnN0IFRTRnVuY3Rpb25UeXBlID0gMDsgRnVuY3Rpb25UeXBlW0Z1bmN0aW9uVHlwZVtcIlRTRnVuY3Rpb25UeXBlXCJdID0gVFNGdW5jdGlvblR5cGVdID0gXCJUU0Z1bmN0aW9uVHlwZVwiO1xuICBjb25zdCBUU0NvbnN0cnVjdG9yVHlwZSA9IFRTRnVuY3Rpb25UeXBlICsgMTsgRnVuY3Rpb25UeXBlW0Z1bmN0aW9uVHlwZVtcIlRTQ29uc3RydWN0b3JUeXBlXCJdID0gVFNDb25zdHJ1Y3RvclR5cGVdID0gXCJUU0NvbnN0cnVjdG9yVHlwZVwiO1xuICBjb25zdCBUU0Fic3RyYWN0Q29uc3RydWN0b3JUeXBlID0gVFNDb25zdHJ1Y3RvclR5cGUgKyAxOyBGdW5jdGlvblR5cGVbRnVuY3Rpb25UeXBlW1wiVFNBYnN0cmFjdENvbnN0cnVjdG9yVHlwZVwiXSA9IFRTQWJzdHJhY3RDb25zdHJ1Y3RvclR5cGVdID0gXCJUU0Fic3RyYWN0Q29uc3RydWN0b3JUeXBlXCI7XG59KShGdW5jdGlvblR5cGUgfHwgKEZ1bmN0aW9uVHlwZSA9IHt9KSk7XG5cbmZ1bmN0aW9uIHRzUGFyc2VGdW5jdGlvbk9yQ29uc3RydWN0b3JUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09IEZ1bmN0aW9uVHlwZS5UU0Fic3RyYWN0Q29uc3RydWN0b3JUeXBlKSB7XG4gICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYWJzdHJhY3QpO1xuICB9XG4gIGlmICh0eXBlID09PSBGdW5jdGlvblR5cGUuVFNDb25zdHJ1Y3RvclR5cGUgfHwgdHlwZSA9PT0gRnVuY3Rpb25UeXBlLlRTQWJzdHJhY3RDb25zdHJ1Y3RvclR5cGUpIHtcbiAgICBleHBlY3QodHQuX25ldyk7XG4gIH1cbiAgY29uc3Qgb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICBzdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBmYWxzZTtcbiAgdHNGaWxsU2lnbmF0dXJlKHR0LmFycm93KTtcbiAgc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlTm9uQXJyYXlUeXBlKCkge1xuICBzd2l0Y2ggKHN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIHR0Lm5hbWU6XG4gICAgICB0c1BhcnNlVHlwZVJlZmVyZW5jZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX3ZvaWQ6XG4gICAgY2FzZSB0dC5fbnVsbDpcbiAgICAgIG5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0LnN0cmluZzpcbiAgICBjYXNlIHR0Lm51bTpcbiAgICBjYXNlIHR0LmJpZ2ludDpcbiAgICBjYXNlIHR0LmRlY2ltYWw6XG4gICAgY2FzZSB0dC5fdHJ1ZTpcbiAgICBjYXNlIHR0Ll9mYWxzZTpcbiAgICAgIHBhcnNlTGl0ZXJhbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQubWludXM6XG4gICAgICBuZXh0KCk7XG4gICAgICBwYXJzZUxpdGVyYWwoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0Ll90aGlzOiB7XG4gICAgICB0c1BhcnNlVGhpc1R5cGVOb2RlKCk7XG4gICAgICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pcykgJiYgIWhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKSB7XG4gICAgICAgIHRzUGFyc2VUaGlzVHlwZVByZWRpY2F0ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjYXNlIHR0Ll90eXBlb2Y6XG4gICAgICB0c1BhcnNlVHlwZVF1ZXJ5KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSB0dC5faW1wb3J0OlxuICAgICAgdHNQYXJzZUltcG9ydFR5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0LmJyYWNlTDpcbiAgICAgIGlmICh0c0xvb2thaGVhZElzU3RhcnRPZk1hcHBlZFR5cGUoKSkge1xuICAgICAgICB0c1BhcnNlTWFwcGVkVHlwZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHNQYXJzZVR5cGVMaXRlcmFsKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSB0dC5icmFja2V0TDpcbiAgICAgIHRzUGFyc2VUdXBsZVR5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0LnBhcmVuTDpcbiAgICAgIHRzUGFyc2VQYXJlbnRoZXNpemVkVHlwZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuYmFja1F1b3RlOlxuICAgICAgdHNQYXJzZVRlbXBsYXRlTGl0ZXJhbFR5cGUoKTtcbiAgICAgIHJldHVybjtcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfS0VZV09SRCkge1xuICAgICAgICBuZXh0KCk7XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Lm5hbWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdW5leHBlY3RlZCgpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlQXJyYXlUeXBlT3JIaWdoZXIoKSB7XG4gIHRzUGFyc2VOb25BcnJheVR5cGUoKTtcbiAgd2hpbGUgKCFoYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSAmJiBlYXQodHQuYnJhY2tldEwpKSB7XG4gICAgaWYgKCFlYXQodHQuYnJhY2tldFIpKSB7XG4gICAgICAvLyBJZiB3ZSBoaXQgXSBpbW1lZGlhdGVseSwgdGhpcyBpcyBhbiBhcnJheSB0eXBlLCBvdGhlcndpc2UgaXQncyBhbiBpbmRleGVkIGFjY2VzcyB0eXBlLlxuICAgICAgdHNQYXJzZVR5cGUoKTtcbiAgICAgIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbmZlclR5cGUoKSB7XG4gIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2luZmVyKTtcbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIGlmIChtYXRjaCh0dC5fZXh0ZW5kcykpIHtcbiAgICAvLyBJbmZlciB0eXBlIGNvbnN0cmFpbnRzIGludHJvZHVjZSBhbiBhbWJpZ3VpdHkgYWJvdXQgd2hldGhlciB0aGUgXCJleHRlbmRzXCJcbiAgICAvLyBpcyBhIGNvbnN0cmFpbnQgZm9yIHRoaXMgaW5mZXIgdHlwZSBvciBpcyBhbm90aGVyIGNvbmRpdGlvbmFsIHR5cGUuXG4gICAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICAgIGV4cGVjdCh0dC5fZXh0ZW5kcyk7XG4gICAgY29uc3Qgb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICAgIHN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IHRydWU7XG4gICAgdHNQYXJzZVR5cGUoKTtcbiAgICBzdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBvbGRJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7XG4gICAgaWYgKHN0YXRlLmVycm9yIHx8ICghc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ICYmIG1hdGNoKHR0LnF1ZXN0aW9uKSkpIHtcbiAgICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZU9wZXJhdG9yT3JIaWdoZXIoKSB7XG4gIGlmIChcbiAgICBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2tleW9mKSB8fFxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fdW5pcXVlKSB8fFxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHkpXG4gICkge1xuICAgIG5leHQoKTtcbiAgICB0c1BhcnNlVHlwZU9wZXJhdG9yT3JIaWdoZXIoKTtcbiAgfSBlbHNlIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2luZmVyKSkge1xuICAgIHRzUGFyc2VJbmZlclR5cGUoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBvbGRJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBzdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7XG4gICAgc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gZmFsc2U7XG4gICAgdHNQYXJzZUFycmF5VHlwZU9ySGlnaGVyKCk7XG4gICAgc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gb2xkSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbnRlcnNlY3Rpb25UeXBlT3JIaWdoZXIoKSB7XG4gIGVhdCh0dC5iaXR3aXNlQU5EKTtcbiAgdHNQYXJzZVR5cGVPcGVyYXRvck9ySGlnaGVyKCk7XG4gIGlmIChtYXRjaCh0dC5iaXR3aXNlQU5EKSkge1xuICAgIHdoaWxlIChlYXQodHQuYml0d2lzZUFORCkpIHtcbiAgICAgIHRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlVW5pb25UeXBlT3JIaWdoZXIoKSB7XG4gIGVhdCh0dC5iaXR3aXNlT1IpO1xuICB0c1BhcnNlSW50ZXJzZWN0aW9uVHlwZU9ySGlnaGVyKCk7XG4gIGlmIChtYXRjaCh0dC5iaXR3aXNlT1IpKSB7XG4gICAgd2hpbGUgKGVhdCh0dC5iaXR3aXNlT1IpKSB7XG4gICAgICB0c1BhcnNlSW50ZXJzZWN0aW9uVHlwZU9ySGlnaGVyKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRzSXNTdGFydE9mRnVuY3Rpb25UeXBlKCkge1xuICBpZiAobWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIG1hdGNoKHR0LnBhcmVuTCkgJiYgdHNMb29rYWhlYWRJc1VuYW1iaWd1b3VzbHlTdGFydE9mRnVuY3Rpb25UeXBlKCk7XG59XG5cbmZ1bmN0aW9uIHRzU2tpcFBhcmFtZXRlclN0YXJ0KCkge1xuICBpZiAobWF0Y2godHQubmFtZSkgfHwgbWF0Y2godHQuX3RoaXMpKSB7XG4gICAgbmV4dCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmIHRoaXMgaXMgYSBwb3NzaWJsZSBhcnJheS9vYmplY3QgZGVzdHJ1Y3R1cmUsIHdhbGsgdG8gdGhlIG1hdGNoaW5nIGJyYWNrZXQvYnJhY2UuXG4gIC8vIFRoZSBuZXh0IHRva2VuIGFmdGVyIHdpbGwgdGVsbCB1cyBkZWZpbml0aXZlbHkgd2hldGhlciB0aGlzIGlzIGEgZnVuY3Rpb24gcGFyYW0uXG4gIGlmIChtYXRjaCh0dC5icmFjZUwpIHx8IG1hdGNoKHR0LmJyYWNrZXRMKSkge1xuICAgIGxldCBkZXB0aCA9IDE7XG4gICAgbmV4dCgpO1xuICAgIHdoaWxlIChkZXB0aCA+IDAgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgICBpZiAobWF0Y2godHQuYnJhY2VMKSB8fCBtYXRjaCh0dC5icmFja2V0TCkpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH0gZWxzZSBpZiAobWF0Y2godHQuYnJhY2VSKSB8fCBtYXRjaCh0dC5icmFja2V0UikpIHtcbiAgICAgICAgZGVwdGgtLTtcbiAgICAgIH1cbiAgICAgIG5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB0c0xvb2thaGVhZElzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGUoKSB7XG4gIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcbiAgY29uc3QgaXNVbmFtYmlndW91c2x5U3RhcnRPZkZ1bmN0aW9uVHlwZSA9IHRzSXNVbmFtYmlndW91c2x5U3RhcnRPZkZ1bmN0aW9uVHlwZSgpO1xuICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgcmV0dXJuIGlzVW5hbWJpZ3VvdXNseVN0YXJ0T2ZGdW5jdGlvblR5cGU7XG59XG5cbmZ1bmN0aW9uIHRzSXNVbmFtYmlndW91c2x5U3RhcnRPZkZ1bmN0aW9uVHlwZSgpIHtcbiAgbmV4dCgpO1xuICBpZiAobWF0Y2godHQucGFyZW5SKSB8fCBtYXRjaCh0dC5lbGxpcHNpcykpIHtcbiAgICAvLyAoIClcbiAgICAvLyAoIC4uLlxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICh0c1NraXBQYXJhbWV0ZXJTdGFydCgpKSB7XG4gICAgaWYgKG1hdGNoKHR0LmNvbG9uKSB8fCBtYXRjaCh0dC5jb21tYSkgfHwgbWF0Y2godHQucXVlc3Rpb24pIHx8IG1hdGNoKHR0LmVxKSkge1xuICAgICAgLy8gKCB4eHggOlxuICAgICAgLy8gKCB4eHggLFxuICAgICAgLy8gKCB4eHggP1xuICAgICAgLy8gKCB4eHggPVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChtYXRjaCh0dC5wYXJlblIpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgICBpZiAobWF0Y2godHQuYXJyb3cpKSB7XG4gICAgICAgIC8vICggeHh4ICkgPT5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKHJldHVyblRva2VuKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgZXhwZWN0KHJldHVyblRva2VuKTtcbiAgY29uc3QgZmluaXNoZWRSZXR1cm4gPSB0c1BhcnNlVHlwZVByZWRpY2F0ZU9yQXNzZXJ0c1ByZWZpeCgpO1xuICBpZiAoIWZpbmlzaGVkUmV0dXJuKSB7XG4gICAgdHNQYXJzZVR5cGUoKTtcbiAgfVxuICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xufVxuXG5mdW5jdGlvbiB0c1RyeVBhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24oKSB7XG4gIGlmIChtYXRjaCh0dC5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24odHQuY29sb24pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1RyeVBhcnNlVHlwZUFubm90YXRpb24oKSB7XG4gIGlmIChtYXRjaCh0dC5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1RyeVBhcnNlVHlwZSgpIHtcbiAgaWYgKGVhdCh0dC5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZWN0IGEgZmV3IHNwZWNpYWwgcmV0dXJuIHN5bnRheCBjYXNlczogYHggaXMgVGAsIGBhc3NlcnRzIHhgLCBgYXNzZXJ0cyB4IGlzIFRgLFxuICogYGFzc2VydHMgdGhpcyBpcyBUYC5cbiAqXG4gKiBSZXR1cm5zIHRydWUgaWYgd2UgcGFyc2VkIHRoZSByZXR1cm4gdHlwZSwgZmFsc2UgaWYgdGhlcmUncyBzdGlsbCBhIHR5cGUgdG8gYmUgcGFyc2VkLlxuICovXG5mdW5jdGlvbiB0c1BhcnNlVHlwZVByZWRpY2F0ZU9yQXNzZXJ0c1ByZWZpeCgpIHtcbiAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hc3NlcnRzKSkge1xuICAgIC8vIE5vcm1hbGx5IHRoaXMgaXMgYGFzc2VydHMgeCBpcyBUYCwgYnV0IGF0IHRoaXMgcG9pbnQsIGl0IG1pZ2h0IGJlIGBhc3NlcnRzIGlzIFRgIChhIHVzZXItXG4gICAgLy8gZGVmaW5lZCB0eXBlIGd1YXJkIG9uIHRoZSBgYXNzZXJ0c2AgdmFyaWFibGUpIG9yIGp1c3QgYSB0eXBlIGNhbGxlZCBgYXNzZXJ0c2AuXG4gICAgbmV4dCgpO1xuICAgIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pcykpIHtcbiAgICAgIC8vIElmIHdlIHNlZSBgYXNzZXJ0cyBpc2AsIHRoZW4gdGhpcyBtdXN0IGJlIG9mIHRoZSBmb3JtIGBhc3NlcnRzIGlzIFRgLCBzaW5jZVxuICAgICAgLy8gYGFzc2VydHMgaXMgaXMgVGAgaXNuJ3QgdmFsaWQuXG4gICAgICB0c1BhcnNlVHlwZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0c0lzSWRlbnRpZmllcigpIHx8IG1hdGNoKHR0Ll90aGlzKSkge1xuICAgICAgbmV4dCgpO1xuICAgICAgaWYgKGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2lzKSkge1xuICAgICAgICAvLyBJZiB3ZSBzZWUgYGlzYCwgdGhlbiB0aGlzIGlzIGBhc3NlcnRzIHggaXMgVGAuIE90aGVyd2lzZSwgaXQncyBgYXNzZXJ0cyB4YC5cbiAgICAgICAgdHNQYXJzZVR5cGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZWd1bGFyIHR5cGUsIHNvIGJhaWwgb3V0IGFuZCBzdGFydCB0eXBlIHBhcnNpbmcgZnJvbSBzY3JhdGNoLlxuICAgICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IGVsc2UgaWYgKHRzSXNJZGVudGlmaWVyKCkgfHwgbWF0Y2godHQuX3RoaXMpKSB7XG4gICAgLy8gVGhpcyBpcyBhIHJlZ3VsYXIgaWRlbnRpZmllciwgd2hpY2ggbWF5IG9yIG1heSBub3QgaGF2ZSBcImlzXCIgYWZ0ZXIgaXQuXG4gICAgbmV4dCgpO1xuICAgIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2lzKSAmJiAhaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpIHtcbiAgICAgIG5leHQoKTtcbiAgICAgIHRzUGFyc2VUeXBlKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVndWxhciB0eXBlLCBzbyBiYWlsIG91dCBhbmQgc3RhcnQgdHlwZSBwYXJzaW5nIGZyb20gc2NyYXRjaC5cbiAgICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1BhcnNlVHlwZUFubm90YXRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgZXhwZWN0KHR0LmNvbG9uKTtcbiAgdHNQYXJzZVR5cGUoKTtcbiAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VUeXBlKCkge1xuICB0c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlKCk7XG4gIGlmIChzdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgfHwgaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkgfHwgIWVhdCh0dC5fZXh0ZW5kcykpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gZXh0ZW5kcyB0eXBlXG4gIGNvbnN0IG9sZEluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCA9IHN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dDtcbiAgc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0ID0gdHJ1ZTtcbiAgdHNQYXJzZU5vbkNvbmRpdGlvbmFsVHlwZSgpO1xuICBzdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQgPSBvbGRJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7XG5cbiAgZXhwZWN0KHR0LnF1ZXN0aW9uKTtcbiAgLy8gdHJ1ZSB0eXBlXG4gIHRzUGFyc2VUeXBlKCk7XG4gIGV4cGVjdCh0dC5jb2xvbik7XG4gIC8vIGZhbHNlIHR5cGVcbiAgdHNQYXJzZVR5cGUoKTtcbn1cblxuZnVuY3Rpb24gaXNBYnN0cmFjdENvbnN0cnVjdG9yU2lnbmF0dXJlKCkge1xuICByZXR1cm4gaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCkgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5fbmV3O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNQYXJzZU5vbkNvbmRpdGlvbmFsVHlwZSgpIHtcbiAgaWYgKHRzSXNTdGFydE9mRnVuY3Rpb25UeXBlKCkpIHtcbiAgICB0c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZShGdW5jdGlvblR5cGUuVFNGdW5jdGlvblR5cGUpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobWF0Y2godHQuX25ldykpIHtcbiAgICAvLyBBcyBpbiBgbmV3ICgpID0+IERhdGVgXG4gICAgdHNQYXJzZUZ1bmN0aW9uT3JDb25zdHJ1Y3RvclR5cGUoRnVuY3Rpb25UeXBlLlRTQ29uc3RydWN0b3JUeXBlKTtcbiAgICByZXR1cm47XG4gIH0gZWxzZSBpZiAoaXNBYnN0cmFjdENvbnN0cnVjdG9yU2lnbmF0dXJlKCkpIHtcbiAgICAvLyBBcyBpbiBgYWJzdHJhY3QgbmV3ICgpID0+IERhdGVgXG4gICAgdHNQYXJzZUZ1bmN0aW9uT3JDb25zdHJ1Y3RvclR5cGUoRnVuY3Rpb25UeXBlLlRTQWJzdHJhY3RDb25zdHJ1Y3RvclR5cGUpO1xuICAgIHJldHVybjtcbiAgfVxuICB0c1BhcnNlVW5pb25UeXBlT3JIaWdoZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VUeXBlQXNzZXJ0aW9uKCkge1xuICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMSk7XG4gIHRzUGFyc2VUeXBlKCk7XG4gIGV4cGVjdCh0dC5ncmVhdGVyVGhhbik7XG4gIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIHBhcnNlTWF5YmVVbmFyeSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNUcnlQYXJzZUpTWFR5cGVBcmd1bWVudCgpIHtcbiAgaWYgKGVhdCh0dC5qc3hUYWdTdGFydCkpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgIHdoaWxlICghbWF0Y2godHQuZ3JlYXRlclRoYW4pICYmICFzdGF0ZS5lcnJvcikge1xuICAgICAgdHNQYXJzZVR5cGUoKTtcbiAgICAgIGVhdCh0dC5jb21tYSk7XG4gICAgfVxuICAgIC8vIFByb2Nlc3MgPiwgYnV0IHRoZSBvbmUgYWZ0ZXIgbmVlZHMgdG8gYmUgcGFyc2VkIEpTWC1zdHlsZS5cbiAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VIZXJpdGFnZUNsYXVzZSgpIHtcbiAgd2hpbGUgKCFtYXRjaCh0dC5icmFjZUwpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIHRzUGFyc2VFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHMoKTtcbiAgICBlYXQodHQuY29tbWEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHMoKSB7XG4gIC8vIE5vdGU6IFRTIHVzZXMgcGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uT3JIaWdoZXIsXG4gIC8vIHRoZW4gaGFzIGdyYW1tYXIgZXJyb3JzIGxhdGVyIGlmIGl0J3Mgbm90IGFuIEVudGl0eU5hbWUuXG4gIHRzUGFyc2VFbnRpdHlOYW1lKCk7XG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VJbnRlcmZhY2VEZWNsYXJhdGlvbigpIHtcbiAgcGFyc2VCaW5kaW5nSWRlbnRpZmllcihmYWxzZSk7XG4gIHRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycygpO1xuICBpZiAoZWF0KHR0Ll9leHRlbmRzKSkge1xuICAgIHRzUGFyc2VIZXJpdGFnZUNsYXVzZSgpO1xuICB9XG4gIHRzUGFyc2VPYmplY3RUeXBlTWVtYmVycygpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZUFsaWFzRGVjbGFyYXRpb24oKSB7XG4gIHBhcnNlQmluZGluZ0lkZW50aWZpZXIoZmFsc2UpO1xuICB0c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgZXhwZWN0KHR0LmVxKTtcbiAgdHNQYXJzZVR5cGUoKTtcbiAgc2VtaWNvbG9uKCk7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VFbnVtTWVtYmVyKCkge1xuICAvLyBDb21wdXRlZCBwcm9wZXJ0eSBuYW1lcyBhcmUgZ3JhbW1hciBlcnJvcnMgaW4gYW4gZW51bSwgc28gYWNjZXB0IGp1c3Qgc3RyaW5nIGxpdGVyYWwgb3IgaWRlbnRpZmllci5cbiAgaWYgKG1hdGNoKHR0LnN0cmluZykpIHtcbiAgICBwYXJzZUxpdGVyYWwoKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxuICBpZiAoZWF0KHR0LmVxKSkge1xuICAgIGNvbnN0IGVxSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMTtcbiAgICBwYXJzZU1heWJlQXNzaWduKCk7XG4gICAgc3RhdGUudG9rZW5zW2VxSW5kZXhdLnJoc0VuZEluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgfVxufVxuXG5mdW5jdGlvbiB0c1BhcnNlRW51bURlY2xhcmF0aW9uKCkge1xuICBwYXJzZUJpbmRpbmdJZGVudGlmaWVyKGZhbHNlKTtcbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG4gIHdoaWxlICghZWF0KHR0LmJyYWNlUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgdHNQYXJzZUVudW1NZW1iZXIoKTtcbiAgICBlYXQodHQuY29tbWEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNb2R1bGVCbG9jaygpIHtcbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG4gIHBhcnNlQmxvY2tCb2R5KC8qIGVuZCAqLyB0dC5icmFjZVIpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlTW9kdWxlT3JOYW1lc3BhY2VEZWNsYXJhdGlvbigpIHtcbiAgcGFyc2VCaW5kaW5nSWRlbnRpZmllcihmYWxzZSk7XG4gIGlmIChlYXQodHQuZG90KSkge1xuICAgIHRzUGFyc2VNb2R1bGVPck5hbWVzcGFjZURlY2xhcmF0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgdHNQYXJzZU1vZHVsZUJsb2NrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUFtYmllbnRFeHRlcm5hbE1vZHVsZURlY2xhcmF0aW9uKCkge1xuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwpKSB7XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIH0gZWxzZSBpZiAobWF0Y2godHQuc3RyaW5nKSkge1xuICAgIHBhcnNlRXhwckF0b20oKTtcbiAgfSBlbHNlIHtcbiAgICB1bmV4cGVjdGVkKCk7XG4gIH1cblxuICBpZiAobWF0Y2godHQuYnJhY2VMKSkge1xuICAgIHRzUGFyc2VNb2R1bGVCbG9jaygpO1xuICB9IGVsc2Uge1xuICAgIHNlbWljb2xvbigpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24oKSB7XG4gIHBhcnNlSW1wb3J0ZWRJZGVudGlmaWVyKCk7XG4gIGV4cGVjdCh0dC5lcSk7XG4gIHRzUGFyc2VNb2R1bGVSZWZlcmVuY2UoKTtcbiAgc2VtaWNvbG9uKCk7XG59XG5cbmZ1bmN0aW9uIHRzSXNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpIHtcbiAgcmV0dXJuIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fcmVxdWlyZSkgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5wYXJlbkw7XG59XG5cbmZ1bmN0aW9uIHRzUGFyc2VNb2R1bGVSZWZlcmVuY2UoKSB7XG4gIGlmICh0c0lzRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2UoKSkge1xuICAgIHRzUGFyc2VFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpO1xuICB9IGVsc2Uge1xuICAgIHRzUGFyc2VFbnRpdHlOYW1lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHNQYXJzZUV4dGVybmFsTW9kdWxlUmVmZXJlbmNlKCkge1xuICBleHBlY3RDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9yZXF1aXJlKTtcbiAgZXhwZWN0KHR0LnBhcmVuTCk7XG4gIGlmICghbWF0Y2godHQuc3RyaW5nKSkge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxuICBwYXJzZUxpdGVyYWwoKTtcbiAgZXhwZWN0KHR0LnBhcmVuUik7XG59XG5cbi8vIFV0aWxpdGllc1xuXG4vLyBSZXR1cm5zIHRydWUgaWYgYSBzdGF0ZW1lbnQgbWF0Y2hlZC5cbmZ1bmN0aW9uIHRzVHJ5UGFyc2VEZWNsYXJlKCkge1xuICBpZiAoaXNMaW5lVGVybWluYXRvcigpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAoc3RhdGUudHlwZSkge1xuICAgIGNhc2UgdHQuX2Z1bmN0aW9uOiB7XG4gICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMSk7XG4gICAgICBuZXh0KCk7XG4gICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHByZWNpc2VseSBnZXQgdGhlIGZ1bmN0aW9uIHN0YXJ0IGhlcmUsIHNpbmNlIGl0J3Mgb25seSB1c2VkIHRvIG1hcmtcbiAgICAgIC8vIHRoZSBmdW5jdGlvbiBhcyBhIHR5cGUgaWYgaXQncyBib2RpbGVzcywgYW5kIGl0J3MgYWxyZWFkeSBhIHR5cGUgaGVyZS5cbiAgICAgIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBzdGF0ZS5zdGFydDtcbiAgICAgIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgLyogaXNTdGF0ZW1lbnQgKi8gdHJ1ZSk7XG4gICAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNhc2UgdHQuX2NsYXNzOiB7XG4gICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMSk7XG4gICAgICBwYXJzZUNsYXNzKC8qIGlzU3RhdGVtZW50ICovIHRydWUsIC8qIG9wdGlvbmFsSWQgKi8gZmFsc2UpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlIHR0Ll9jb25zdDoge1xuICAgICAgaWYgKG1hdGNoKHR0Ll9jb25zdCkgJiYgaXNMb29rYWhlYWRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9lbnVtKSkge1xuICAgICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMSk7XG4gICAgICAgIC8vIGBjb25zdCBlbnVtID0gMDtgIG5vdCBhbGxvd2VkIGJlY2F1c2UgXCJlbnVtXCIgaXMgYSBzdHJpY3QgbW9kZSByZXNlcnZlZCB3b3JkLlxuICAgICAgICBleHBlY3QodHQuX2NvbnN0KTtcbiAgICAgICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZW51bSk7XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Ll9lbnVtO1xuICAgICAgICB0c1BhcnNlRW51bURlY2xhcmF0aW9uKCk7XG4gICAgICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgY2FzZSB0dC5fdmFyOlxuICAgIGNhc2UgdHQuX2xldDoge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgICAgcGFyc2VWYXJTdGF0ZW1lbnQoc3RhdGUudHlwZSAhPT0gdHQuX3Zhcik7XG4gICAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNhc2UgdHQubmFtZToge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgICAgY29uc3QgY29udGV4dHVhbEtleXdvcmQgPSBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZDtcbiAgICAgIGxldCBtYXRjaGVkID0gZmFsc2U7XG4gICAgICBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9nbG9iYWwpIHtcbiAgICAgICAgdHNQYXJzZUFtYmllbnRFeHRlcm5hbE1vZHVsZURlY2xhcmF0aW9uKCk7XG4gICAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWF0Y2hlZCA9IHRzUGFyc2VEZWNsYXJhdGlvbihjb250ZXh0dWFsS2V5d29yZCwgLyogaXNCZWZvcmVUb2tlbiAqLyB0cnVlKTtcbiAgICAgIH1cbiAgICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLyBOb3RlOiB0aGlzIHdvbid0IGJlIGNhbGxlZCB1bmxlc3MgdGhlIGtleXdvcmQgaXMgYWxsb3dlZCBpbiBgc2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbmAuXG4vLyBSZXR1cm5zIHRydWUgaWYgaXQgbWF0Y2hlZCBhIGRlY2xhcmF0aW9uLlxuZnVuY3Rpb24gdHNUcnlQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICByZXR1cm4gdHNQYXJzZURlY2xhcmF0aW9uKHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkLCAvKiBpc0JlZm9yZVRva2VuICovIHRydWUpO1xufVxuXG4vLyBSZXR1cm5zIHRydWUgaWYgaXQgbWF0Y2hlZCBhIHN0YXRlbWVudC5cbmZ1bmN0aW9uIHRzUGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGNvbnRleHR1YWxLZXl3b3JkKSB7XG4gIHN3aXRjaCAoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgICBjYXNlIENvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlOiB7XG4gICAgICBjb25zdCBkZWNsYXJlVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGggLSAxO1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IHRzVHJ5UGFyc2VEZWNsYXJlKCk7XG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICBzdGF0ZS50b2tlbnNbZGVjbGFyZVRva2VuSW5kZXhdLnR5cGUgPSB0dC5fZGVjbGFyZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fZ2xvYmFsOlxuICAgICAgLy8gYGdsb2JhbCB7IH1gICh3aXRoIG5vIGBkZWNsYXJlYCkgbWF5IGFwcGVhciBpbnNpZGUgYW4gYW1iaWVudCBtb2R1bGUgZGVjbGFyYXRpb24uXG4gICAgICAvLyBXb3VsZCBsaWtlIHRvIHVzZSB0c1BhcnNlQW1iaWVudEV4dGVybmFsTW9kdWxlRGVjbGFyYXRpb24gaGVyZSwgYnV0IGFscmVhZHkgcmFuIHBhc3QgXCJnbG9iYWxcIi5cbiAgICAgIGlmIChtYXRjaCh0dC5icmFjZUwpKSB7XG4gICAgICAgIHRzUGFyc2VNb2R1bGVCbG9jaygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB0c1BhcnNlRGVjbGFyYXRpb24oY29udGV4dHVhbEtleXdvcmQsIC8qIGlzQmVmb3JlVG9rZW4gKi8gZmFsc2UpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb21tb24gY29kZSBmb3IgcGFyc2luZyBhIGRlY2xhcmF0aW9uLlxuICpcbiAqIGlzQmVmb3JlVG9rZW4gaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgcGFyc2VyIHN0YXRlIGlzIGF0IHRoZSBjb250ZXh0dWFsXG4gKiBrZXl3b3JkIChhbmQgdGhhdCBpdCBpcyBub3QgeWV0IGVtaXR0ZWQpIHJhdGhlciB0aGFuIHJlYWRpbmcgdGhlIHRva2VuIGFmdGVyXG4gKiBpdC4gV2hlbiBpc0JlZm9yZVRva2VuIGlzIHRydWUsIHdlIG1heSBiZSBwcmVjZWRlZCBieSBhbiBgZXhwb3J0YCB0b2tlbiBhbmRcbiAqIHNob3VsZCBpbmNsdWRlIHRoYXQgdG9rZW4gaW4gYSB0eXBlIGNvbnRleHQgd2UgY3JlYXRlLCBlLmcuIHRvIGhhbmRsZVxuICogYGV4cG9ydCBpbnRlcmZhY2VgIG9yIGBleHBvcnQgdHlwZWAuIChUaGlzIGlzIGEgYml0IG9mIGEgaGFjayBhbmQgc2hvdWxkIGJlXG4gKiBjbGVhbmVkIHVwIGF0IHNvbWUgcG9pbnQuKVxuICpcbiAqIFJldHVybnMgdHJ1ZSBpZiBpdCBtYXRjaGVkIGEgZGVjbGFyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIHRzUGFyc2VEZWNsYXJhdGlvbihjb250ZXh0dWFsS2V5d29yZCwgaXNCZWZvcmVUb2tlbikge1xuICBzd2l0Y2ggKGNvbnRleHR1YWxLZXl3b3JkKSB7XG4gICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fYWJzdHJhY3Q6XG4gICAgICBpZiAodHNDaGVja0xpbmVUZXJtaW5hdG9yKGlzQmVmb3JlVG9rZW4pICYmIG1hdGNoKHR0Ll9jbGFzcykpIHtcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2Fic3RyYWN0O1xuICAgICAgICBwYXJzZUNsYXNzKC8qIGlzU3RhdGVtZW50ICovIHRydWUsIC8qIG9wdGlvbmFsSWQgKi8gZmFsc2UpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fZW51bTpcbiAgICAgIGlmICh0c0NoZWNrTGluZVRlcm1pbmF0b3IoaXNCZWZvcmVUb2tlbikgJiYgbWF0Y2godHQubmFtZSkpIHtcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2VudW07XG4gICAgICAgIHRzUGFyc2VFbnVtRGVjbGFyYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZTpcbiAgICAgIGlmICh0c0NoZWNrTGluZVRlcm1pbmF0b3IoaXNCZWZvcmVUb2tlbikgJiYgbWF0Y2godHQubmFtZSkpIHtcbiAgICAgICAgLy8gYG5leHRgIGlzIHRydWUgaW4gXCJleHBvcnRcIiBhbmQgXCJkZWNsYXJlXCIgY29udGV4dHMsIHNvIHdlIHdhbnQgdG8gcmVtb3ZlIHRoYXQgdG9rZW5cbiAgICAgICAgLy8gYXMgd2VsbC5cbiAgICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KGlzQmVmb3JlVG9rZW4gPyAyIDogMSk7XG4gICAgICAgIHRzUGFyc2VJbnRlcmZhY2VEZWNsYXJhdGlvbigpO1xuICAgICAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fbW9kdWxlOlxuICAgICAgaWYgKHRzQ2hlY2tMaW5lVGVybWluYXRvcihpc0JlZm9yZVRva2VuKSkge1xuICAgICAgICBpZiAobWF0Y2godHQuc3RyaW5nKSkge1xuICAgICAgICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dChpc0JlZm9yZVRva2VuID8gMiA6IDEpO1xuICAgICAgICAgIHRzUGFyc2VBbWJpZW50RXh0ZXJuYWxNb2R1bGVEZWNsYXJhdGlvbigpO1xuICAgICAgICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2godHQubmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoaXNCZWZvcmVUb2tlbiA/IDIgOiAxKTtcbiAgICAgICAgICB0c1BhcnNlTW9kdWxlT3JOYW1lc3BhY2VEZWNsYXJhdGlvbigpO1xuICAgICAgICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fbmFtZXNwYWNlOlxuICAgICAgaWYgKHRzQ2hlY2tMaW5lVGVybWluYXRvcihpc0JlZm9yZVRva2VuKSAmJiBtYXRjaCh0dC5uYW1lKSkge1xuICAgICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoaXNCZWZvcmVUb2tlbiA/IDIgOiAxKTtcbiAgICAgICAgdHNQYXJzZU1vZHVsZU9yTmFtZXNwYWNlRGVjbGFyYXRpb24oKTtcbiAgICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQ29udGV4dHVhbEtleXdvcmQuX3R5cGU6XG4gICAgICBpZiAodHNDaGVja0xpbmVUZXJtaW5hdG9yKGlzQmVmb3JlVG9rZW4pICYmIG1hdGNoKHR0Lm5hbWUpKSB7XG4gICAgICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dChpc0JlZm9yZVRva2VuID8gMiA6IDEpO1xuICAgICAgICB0c1BhcnNlVHlwZUFsaWFzRGVjbGFyYXRpb24oKTtcbiAgICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHRzQ2hlY2tMaW5lVGVybWluYXRvcihpc0JlZm9yZVRva2VuKSB7XG4gIGlmIChpc0JlZm9yZVRva2VuKSB7XG4gICAgLy8gQmFiZWwgY2hlY2tzIGhhc0ZvbGxvd2luZ0xpbmVCcmVhayBoZXJlIGFuZCByZXR1cm5zIGZhbHNlLCBidXQgdGhpc1xuICAgIC8vIGRvZXNuJ3QgYWN0dWFsbHkgY29tZSB1cCwgZS5nLiBgZXhwb3J0IGludGVyZmFjZWAgY2FuIG5ldmVyIGJlIG9uIGl0cyBvd25cbiAgICAvLyBsaW5lIGluIHZhbGlkIGNvZGUuXG4gICAgbmV4dCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAhaXNMaW5lVGVybWluYXRvcigpO1xuICB9XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSB3YXMgYSBnZW5lcmljIGFzeW5jIGFycm93IGZ1bmN0aW9uLlxuZnVuY3Rpb24gdHNUcnlQYXJzZUdlbmVyaWNBc3luY0Fycm93RnVuY3Rpb24oKSB7XG4gIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcblxuICB0c1BhcnNlVHlwZVBhcmFtZXRlcnMoKTtcbiAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICB0c1RyeVBhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24oKTtcbiAgZXhwZWN0KHR0LmFycm93KTtcblxuICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwYXJzZUZ1bmN0aW9uQm9keSh0cnVlKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogSWYgbmVjZXNzYXJ5LCBoYWNrIHRoZSB0b2tlbml6ZXIgc3RhdGUgc28gdGhhdCB0aGlzIGJpdHNoaWZ0IHdhcyBhY3R1YWxseSBhXG4gKiBsZXNzLXRoYW4gdG9rZW4sIHRoZW4ga2VlcCBwYXJzaW5nLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gc2l0dWF0aW9uc1xuICogd2hlcmUgd2UgcmVzdG9yZSBmcm9tIHNuYXBzaG90IG9uIGVycm9yICh3aGljaCByZXZlcnRzIHRoaXMgY2hhbmdlKSBvclxuICogd2hlcmUgYml0c2hpZnQgd291bGQgYmUgaWxsZWdhbCBhbnl3YXkgKGUuZy4gaW4gYSBjbGFzcyBcImV4dGVuZHNcIiBjbGF1c2UpLlxuICpcbiAqIFRoaXMgaGFjayBpcyB1c2VmdWwgdG8gaGFuZGxlIHNpdHVhdGlvbnMgbGlrZSBmb288PFQ+KCkgPT4gdm9pZD4oKSB3aGVyZVxuICogdGhlcmUgY2FuIGxlZ2l0aW1hdGVseSBiZSB0d28gb3Blbi1hbmdsZS1icmFja2V0cyBpbiBhIHJvdyBpbiBUUy5cbiAqL1xuZnVuY3Rpb24gdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpIHtcbiAgaWYgKHN0YXRlLnR5cGUgPT09IHR0LmJpdFNoaWZ0TCkge1xuICAgIHN0YXRlLnBvcyAtPSAxO1xuICAgIGZpbmlzaFRva2VuKHR0Lmxlc3NUaGFuKTtcbiAgfVxuICB0c1BhcnNlVHlwZUFyZ3VtZW50cygpO1xufVxuXG5mdW5jdGlvbiB0c1BhcnNlVHlwZUFyZ3VtZW50cygpIHtcbiAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICBleHBlY3QodHQubGVzc1RoYW4pO1xuICB3aGlsZSAoIW1hdGNoKHR0LmdyZWF0ZXJUaGFuKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICAgIGVhdCh0dC5jb21tYSk7XG4gIH1cbiAgaWYgKCFvbGRJc1R5cGUpIHtcbiAgICAvLyBJZiB0aGUgdHlwZSBhcmd1bWVudHMgYXJlIHByZXNlbnQgaW4gYW4gZXhwcmVzc2lvbiBjb250ZXh0LCBlLmcuXG4gICAgLy8gZjxudW1iZXI+KCksIHRoZW4gdGhlID4gc2lnbiBzaG91bGQgYmUgdG9rZW5pemVkIGFzIGEgbm9uLXR5cGUgdG9rZW4uXG4gICAgLy8gSW4gcGFydGljdWxhciwgZihhIDwgYiwgYyA+PSBkKSBzaG91bGQgcGFyc2UgdGhlID49IGFzIGEgc2luZ2xlIHRva2VuLFxuICAgIC8vIHJlc3VsdGluZyBpbiBhIHN5bnRheCBlcnJvciBhbmQgZmFsbGJhY2sgdG8gdGhlIG5vbi10eXBlLWFyZ3NcbiAgICAvLyBpbnRlcnByZXRhdGlvbi4gSW4gdGhlIHN1Y2Nlc3MgY2FzZSwgZXZlbiB0aG91Z2ggdGhlID4gaXMgdG9rZW5pemVkIGFzIGFcbiAgICAvLyBub24tdHlwZSB0b2tlbiwgaXQgc3RpbGwgbXVzdCBiZSBtYXJrZWQgYXMgYSB0eXBlIHRva2VuIHNvIHRoYXQgaXQgaXNcbiAgICAvLyBlcmFzZWQuXG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICByZXNjYW5fZ3QoKTtcbiAgICBleHBlY3QodHQuZ3JlYXRlclRoYW4pO1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaXNUeXBlID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBleHBlY3QodHQuZ3JlYXRlclRoYW4pO1xuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzSXNEZWNsYXJhdGlvblN0YXJ0KCkge1xuICBpZiAobWF0Y2godHQubmFtZSkpIHtcbiAgICBzd2l0Y2ggKHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkKSB7XG4gICAgICBjYXNlIENvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdDpcbiAgICAgIGNhc2UgQ29udGV4dHVhbEtleXdvcmQuX2RlY2xhcmU6XG4gICAgICBjYXNlIENvbnRleHR1YWxLZXl3b3JkLl9lbnVtOlxuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlOlxuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fbW9kdWxlOlxuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fbmFtZXNwYWNlOlxuICAgICAgY2FzZSBDb250ZXh0dWFsS2V5d29yZC5fdHlwZTpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT1ZFUlJJREVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2goZnVuY3Rpb25TdGFydCwgZnVuY0NvbnRleHRJZCkge1xuICAvLyBGb3IgYXJyb3cgZnVuY3Rpb25zLCBgcGFyc2VBcnJvd2AgaGFuZGxlcyB0aGUgcmV0dXJuIHR5cGUgaXRzZWxmLlxuICBpZiAobWF0Y2godHQuY29sb24pKSB7XG4gICAgdHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKHR0LmNvbG9uKTtcbiAgfVxuXG4gIC8vIFRoZSBvcmlnaW5hbCBjb2RlIGNoZWNrZWQgdGhlIG5vZGUgdHlwZSB0byBtYWtlIHN1cmUgdGhpcyBmdW5jdGlvbiB0eXBlIGFsbG93cyBhIG1pc3NpbmdcbiAgLy8gYm9keSwgYnV0IHdlIHNraXAgdGhhdCB0byBhdm9pZCBzZW5kaW5nIGFyb3VuZCB0aGUgbm9kZSB0eXBlLiBXZSBpbnN0ZWFkIGp1c3QgdXNlIHRoZVxuICAvLyBhbGxvd0V4cHJlc3Npb25Cb2R5IGJvb2xlYW4gdG8gbWFrZSBzdXJlIGl0J3Mgbm90IGFuIGFycm93IGZ1bmN0aW9uLlxuICBpZiAoIW1hdGNoKHR0LmJyYWNlTCkgJiYgaXNMaW5lVGVybWluYXRvcigpKSB7XG4gICAgLy8gUmV0cm9hY3RpdmVseSBtYXJrIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhcyBhIHR5cGUuXG4gICAgbGV0IGkgPSBzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoXG4gICAgICBpID49IDAgJiZcbiAgICAgIChzdGF0ZS50b2tlbnNbaV0uc3RhcnQgPj0gZnVuY3Rpb25TdGFydCB8fFxuICAgICAgICBzdGF0ZS50b2tlbnNbaV0udHlwZSA9PT0gdHQuX2RlZmF1bHQgfHxcbiAgICAgICAgc3RhdGUudG9rZW5zW2ldLnR5cGUgPT09IHR0Ll9leHBvcnQpXG4gICAgKSB7XG4gICAgICBzdGF0ZS50b2tlbnNbaV0uaXNUeXBlID0gdHJ1ZTtcbiAgICAgIGktLTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcGFyc2VGdW5jdGlvbkJvZHkoZmFsc2UsIGZ1bmNDb250ZXh0SWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNQYXJzZVN1YnNjcmlwdChcbiAgc3RhcnRUb2tlbkluZGV4LFxuICBub0NhbGxzLFxuICBzdG9wU3RhdGUsXG4pIHtcbiAgaWYgKCFoYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSAmJiBlYXQodHQuYmFuZykpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5ub25OdWxsQXNzZXJ0aW9uO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikgfHwgbWF0Y2godHQuYml0U2hpZnRMKSkge1xuICAgIC8vIFRoZXJlIGFyZSBudW1iZXIgb2YgdGhpbmdzIHdlIGFyZSBnb2luZyB0byBcIm1heWJlXCIgcGFyc2UsIGxpa2UgdHlwZSBhcmd1bWVudHMgb25cbiAgICAvLyB0YWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbnMuIElmIGFueSBvZiB0aGVtIGZhaWwsIHdhbGsgaXQgYmFjayBhbmQgY29udGludWUuXG4gICAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuXG4gICAgaWYgKCFub0NhbGxzICYmIGF0UG9zc2libGVBc3luYygpKSB7XG4gICAgICAvLyBBbG1vc3QgY2VydGFpbmx5IHRoaXMgaXMgYSBnZW5lcmljIGFzeW5jIGZ1bmN0aW9uIGBhc3luYyA8VD4oKSA9PiAuLi5cbiAgICAgIC8vIEJ1dCBpdCBtaWdodCBiZSBhIGNhbGwgd2l0aCBhIHR5cGUgYXJndW1lbnQgYGFzeW5jPFQ+KCk7YFxuICAgICAgY29uc3QgYXN5bmNBcnJvd0ZuID0gdHNUcnlQYXJzZUdlbmVyaWNBc3luY0Fycm93RnVuY3Rpb24oKTtcbiAgICAgIGlmIChhc3luY0Fycm93Rm4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0c1BhcnNlVHlwZUFyZ3VtZW50c1dpdGhQb3NzaWJsZUJpdHNoaWZ0KCk7XG4gICAgaWYgKCFub0NhbGxzICYmIGVhdCh0dC5wYXJlbkwpKSB7XG4gICAgICAvLyBXaXRoIGY8VD4oKSwgdGhlIHN1YnNjcmlwdFN0YXJ0SW5kZXggbWFya2VyIGlzIG9uIHRoZSAoIHRva2VuLlxuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuICAgICAgcGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygpO1xuICAgIH0gZWxzZSBpZiAobWF0Y2godHQuYmFja1F1b3RlKSkge1xuICAgICAgLy8gVGFnZ2VkIHRlbXBsYXRlIHdpdGggYSB0eXBlIGFyZ3VtZW50LlxuICAgICAgcGFyc2VUZW1wbGF0ZSgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBUaGUgcmVtYWluaW5nIHBvc3NpYmxlIGNhc2UgaXMgYW4gaW5zdGFudGlhdGlvbiBleHByZXNzaW9uLCBlLmcuXG4gICAgICAvLyBBcnJheTxudW1iZXI+IC4gQ2hlY2sgZm9yIGEgZmV3IGNhc2VzIHRoYXQgd291bGQgZGlzcXVhbGlmeSBpdCBhbmRcbiAgICAgIC8vIGNhdXNlIHVzIHRvIGJhaWwgb3V0LlxuICAgICAgLy8gYTxiPj5jIGlzIG5vdCAoYTxiPik+YywgYnV0IGE8KGI+PmMpXG4gICAgICBzdGF0ZS50eXBlID09PSB0dC5ncmVhdGVyVGhhbiB8fFxuICAgICAgLy8gYTxiPmMgaXMgKGE8Yik+Y1xuICAgICAgKHN0YXRlLnR5cGUgIT09IHR0LnBhcmVuTCAmJlxuICAgICAgICBCb29sZWFuKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfRVhQUkVTU0lPTl9TVEFSVCkgJiZcbiAgICAgICAgIWhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKVxuICAgICkge1xuICAgICAgLy8gQmFpbCBvdXQuIFdlIGhhdmUgc29tZXRoaW5nIGxpa2UgYTxiPmMsIHdoaWNoIGlzIG5vdCBhbiBleHByZXNzaW9uIHdpdGhcbiAgICAgIC8vIHR5cGUgYXJndW1lbnRzIGJ1dCBhbiAoYSA8IGIpID4gYyBjb21wYXJpc29uLlxuICAgICAgdW5leHBlY3RlZCgpO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoIW5vQ2FsbHMgJiYgbWF0Y2godHQucXVlc3Rpb25Eb3QpICYmIGxvb2thaGVhZFR5cGUoKSA9PT0gdHQubGVzc1RoYW4pIHtcbiAgICAvLyBJZiB3ZSBzZWUgZj8uPCwgdGhlbiB0aGlzIG11c3QgYmUgYW4gb3B0aW9uYWwgY2FsbCB3aXRoIGEgdHlwZSBhcmd1bWVudC5cbiAgICBuZXh0KCk7XG4gICAgc3RhdGUudG9rZW5zW3N0YXJ0VG9rZW5JbmRleF0uaXNPcHRpb25hbENoYWluU3RhcnQgPSB0cnVlO1xuICAgIC8vIFdpdGggZj8uPFQ+KCksIHRoZSBzdWJzY3JpcHRTdGFydEluZGV4IG1hcmtlciBpcyBvbiB0aGUgPy4gdG9rZW4uXG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuXG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHMoKTtcbiAgICBleHBlY3QodHQucGFyZW5MKTtcbiAgICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCk7XG4gIH1cbiAgYmFzZVBhcnNlU3Vic2NyaXB0KHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzVHJ5UGFyc2VFeHBvcnQoKSB7XG4gIGlmIChlYXQodHQuX2ltcG9ydCkpIHtcbiAgICAvLyBPbmUgb2YgdGhlc2UgY2FzZXM6XG4gICAgLy8gZXhwb3J0IGltcG9ydCBBID0gQjtcbiAgICAvLyBleHBvcnQgaW1wb3J0IHR5cGUgQSA9IHJlcXVpcmUoXCJBXCIpO1xuICAgIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpICYmIGxvb2thaGVhZFR5cGUoKSAhPT0gdHQuZXEpIHtcbiAgICAgIC8vIEVhdCBhIGB0eXBlYCB0b2tlbiwgdW5sZXNzIGl0J3MgYWN0dWFsbHkgYW4gaWRlbnRpZmllciBuYW1lLlxuICAgICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fdHlwZSk7XG4gICAgfVxuICAgIHRzUGFyc2VJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGVhdCh0dC5lcSkpIHtcbiAgICAvLyBgZXhwb3J0ID0geDtgXG4gICAgcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgc2VtaWNvbG9uKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAoZWF0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpKSB7XG4gICAgLy8gYGV4cG9ydCBhcyBuYW1lc3BhY2UgQTtgXG4gICAgLy8gU2VlIGBwYXJzZU5hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uYCBpbiBUeXBlU2NyaXB0J3Mgb3duIHBhcnNlclxuICAgIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX25hbWVzcGFjZSk7XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gICAgc2VtaWNvbG9uKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fdHlwZSkpIHtcbiAgICAgIGNvbnN0IG5leHRUeXBlID0gbG9va2FoZWFkVHlwZSgpO1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2Zvb30gZnJvbSAnYSc7XG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGZyb20gJ2EnOydcbiAgICAgIC8vIGV4cG9ydCB0eXBlICogYXMgbnMgZnJvbSAnYSc7J1xuICAgICAgaWYgKG5leHRUeXBlID09PSB0dC5icmFjZUwgfHwgbmV4dFR5cGUgPT09IHR0LnN0YXIpIHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIFRTIGltcG9ydCBzcGVjaWZpZXIsIHdoaWNoIG1heSBiZSBwcmVmaXhlZCB3aXRoIFwidHlwZVwiIGFuZCBtYXkgYmUgb2ZcbiAqIHRoZSBmb3JtIGBmb28gYXMgYmFyYC5cbiAqXG4gKiBUaGUgbnVtYmVyIG9mIGlkZW50aWZpZXItbGlrZSB0b2tlbnMgd2Ugc2VlIGhhcHBlbnMgdG8gYmUgZW5vdWdoIHRvIHVuaXF1ZWx5XG4gKiBpZGVudGlmeSB0aGUgZm9ybSwgc28gc2ltcGx5IGNvdW50IHRoZSBudW1iZXIgb2YgaWRlbnRpZmllcnMgcmF0aGVyIHRoYW5cbiAqIG1hdGNoaW5nIHRoZSB3b3JkcyBgdHlwZWAgb3IgYGFzYC4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGJlY2F1c2VcbiAqIGB0eXBlYCBhbmQgYGFzYCBjb3VsZCBlYWNoIGFjdHVhbGx5IGJlIHBsYWluIGlkZW50aWZpZXJzIHJhdGhlciB0aGFuXG4gKiBrZXl3b3Jkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VJbXBvcnRTcGVjaWZpZXIoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBpZiAobWF0Y2godHQuY29tbWEpIHx8IG1hdGNoKHR0LmJyYWNlUikpIHtcbiAgICAvLyBpbXBvcnQge2Zvb31cbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gSWRlbnRpZmllclJvbGUuSW1wb3J0RGVjbGFyYXRpb247XG4gICAgcmV0dXJuO1xuICB9XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBpZiAobWF0Y2godHQuY29tbWEpIHx8IG1hdGNoKHR0LmJyYWNlUikpIHtcbiAgICAvLyBpbXBvcnQge3R5cGUgZm9vfVxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDJdLmlzVHlwZSA9IHRydWU7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICAgIHJldHVybjtcbiAgfVxuICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgaWYgKG1hdGNoKHR0LmNvbW1hKSB8fCBtYXRjaCh0dC5icmFjZVIpKSB7XG4gICAgLy8gaW1wb3J0IHtmb28gYXMgYmFyfVxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5JbXBvcnRBY2Nlc3M7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLkltcG9ydERlY2xhcmF0aW9uO1xuICAgIHJldHVybjtcbiAgfVxuICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgLy8gaW1wb3J0IHt0eXBlIGZvbyBhcyBiYXJ9XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5JbXBvcnRBY2Nlc3M7XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5JbXBvcnREZWNsYXJhdGlvbjtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSA0XS5pc1R5cGUgPSB0cnVlO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDNdLmlzVHlwZSA9IHRydWU7XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMl0uaXNUeXBlID0gdHJ1ZTtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xufVxuXG4vKipcbiAqIEp1c3QgbGlrZSBuYW1lZCBpbXBvcnQgc3BlY2lmaWVycywgZXhwb3J0IHNwZWNpZmllcnMgY2FuIGhhdmUgZnJvbSAxIHRvIDRcbiAqIHRva2VucywgaW5jbHVzaXZlLCBhbmQgdGhlIG51bWJlciBvZiB0b2tlbnMgZGV0ZXJtaW5lcyB0aGUgcm9sZSBvZiBlYWNoIHRva2VuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHNQYXJzZUV4cG9ydFNwZWNpZmllcigpIHtcbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIGlmIChtYXRjaCh0dC5jb21tYSkgfHwgbWF0Y2godHQuYnJhY2VSKSkge1xuICAgIC8vIGV4cG9ydCB7Zm9vfVxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gICAgcmV0dXJuO1xuICB9XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBpZiAobWF0Y2godHQuY29tbWEpIHx8IG1hdGNoKHR0LmJyYWNlUikpIHtcbiAgICAvLyBleHBvcnQge3R5cGUgZm9vfVxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAyXS5pc1R5cGUgPSB0cnVlO1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaXNUeXBlID0gdHJ1ZTtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIGlmIChtYXRjaCh0dC5jb21tYSkgfHwgbWF0Y2godHQuYnJhY2VSKSkge1xuICAgIC8vIGV4cG9ydCB7Zm9vIGFzIGJhcn1cbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDNdLmlkZW50aWZpZXJSb2xlID0gSWRlbnRpZmllclJvbGUuRXhwb3J0QWNjZXNzO1xuICAgIHJldHVybjtcbiAgfVxuICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgLy8gZXhwb3J0IHt0eXBlIGZvbyBhcyBiYXJ9XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gM10uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gNF0uaXNUeXBlID0gdHJ1ZTtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAzXS5pc1R5cGUgPSB0cnVlO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDJdLmlzVHlwZSA9IHRydWU7XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaXNUeXBlID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzVHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbigpIHtcbiAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYWJzdHJhY3QpICYmIGxvb2thaGVhZFR5cGUoKSA9PT0gdHQuX2NsYXNzKSB7XG4gICAgc3RhdGUudHlwZSA9IHR0Ll9hYnN0cmFjdDtcbiAgICBuZXh0KCk7IC8vIFNraXAgXCJhYnN0cmFjdFwiXG4gICAgcGFyc2VDbGFzcyh0cnVlLCB0cnVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpKSB7XG4gICAgLy8gTWFrZSBzdXJlIFwiZXhwb3J0IGRlZmF1bHRcIiBhcmUgY29uc2lkZXJlZCB0eXBlIHRva2VucyBzbyB0aGUgd2hvbGUgdGhpbmcgaXMgcmVtb3ZlZC5cbiAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMik7XG4gICAgdHNQYXJzZURlY2xhcmF0aW9uKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UsIHRydWUpO1xuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNUcnlQYXJzZVN0YXRlbWVudENvbnRlbnQoKSB7XG4gIGlmIChzdGF0ZS50eXBlID09PSB0dC5fY29uc3QpIHtcbiAgICBjb25zdCBhaGVhZCA9IGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkKCk7XG4gICAgaWYgKGFoZWFkLnR5cGUgPT09IHR0Lm5hbWUgJiYgYWhlYWQuY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9lbnVtKSB7XG4gICAgICBleHBlY3QodHQuX2NvbnN0KTtcbiAgICAgIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2VudW0pO1xuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2VudW07XG4gICAgICB0c1BhcnNlRW51bURlY2xhcmF0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNUcnlQYXJzZUNsYXNzTWVtYmVyV2l0aElzU3RhdGljKGlzU3RhdGljKSB7XG4gIGNvbnN0IG1lbWJlclN0YXJ0SW5kZXhBZnRlclN0YXRpYyA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHRzUGFyc2VNb2RpZmllcnMoW1xuICAgIENvbnRleHR1YWxLZXl3b3JkLl9hYnN0cmFjdCxcbiAgICBDb250ZXh0dWFsS2V5d29yZC5fcmVhZG9ubHksXG4gICAgQ29udGV4dHVhbEtleXdvcmQuX2RlY2xhcmUsXG4gICAgQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYyxcbiAgICBDb250ZXh0dWFsS2V5d29yZC5fb3ZlcnJpZGUsXG4gIF0pO1xuXG4gIGNvbnN0IG1vZGlmaWVyc0VuZEluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgY29uc3QgZm91bmQgPSB0c1RyeVBhcnNlSW5kZXhTaWduYXR1cmUoKTtcbiAgaWYgKGZvdW5kKSB7XG4gICAgLy8gSW5kZXggc2lnbmF0dXJlcyBhcmUgdHlwZSBkZWNsYXJhdGlvbnMsIHNvIHNldCB0aGUgbW9kaWZpZXIgdG9rZW5zIGFzXG4gICAgLy8gdHlwZSB0b2tlbnMuIE1vc3QgdG9rZW5zIGNvdWxkIGJlIGFzc3VtZWQgdG8gYmUgdHlwZSB0b2tlbnMsIGJ1dCBgc3RhdGljYFxuICAgIC8vIGlzIGFtYmlndW91cyB1bmxlc3Mgd2Ugc2V0IGl0IGV4cGxpY2l0bHkgaGVyZS5cbiAgICBjb25zdCBtZW1iZXJTdGFydEluZGV4ID0gaXNTdGF0aWNcbiAgICAgID8gbWVtYmVyU3RhcnRJbmRleEFmdGVyU3RhdGljIC0gMVxuICAgICAgOiBtZW1iZXJTdGFydEluZGV4QWZ0ZXJTdGF0aWM7XG4gICAgZm9yIChsZXQgaSA9IG1lbWJlclN0YXJ0SW5kZXg7IGkgPCBtb2RpZmllcnNFbmRJbmRleDsgaSsrKSB7XG4gICAgICBzdGF0ZS50b2tlbnNbaV0uaXNUeXBlID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBOb3RlOiBUaGUgcmVhc29uIHdlIGRvIHRoaXMgaW4gYHBhcnNlSWRlbnRpZmllclN0YXRlbWVudGAgYW5kIG5vdCBgcGFyc2VTdGF0ZW1lbnRgXG4vLyBpcyB0aGF0IGUuZy4gYHR5cGUoKWAgaXMgdmFsaWQgSlMsIHNvIHdlIG11c3QgdHJ5IHBhcnNpbmcgdGhhdCBmaXJzdC5cbi8vIElmIGl0J3MgcmVhbGx5IGEgdHlwZSwgd2Ugd2lsbCBwYXJzZSBgdHlwZWAgYXMgdGhlIHN0YXRlbWVudCwgYW5kIGNhbiBjb3JyZWN0IGl0IGhlcmVcbi8vIGJ5IHBhcnNpbmcgdGhlIHJlc3QuXG5leHBvcnQgZnVuY3Rpb24gdHNQYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpIHtcbiAgY29uc3QgbWF0Y2hlZCA9IHRzUGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGNvbnRleHR1YWxLZXl3b3JkKTtcbiAgaWYgKCFtYXRjaGVkKSB7XG4gICAgc2VtaWNvbG9uKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VFeHBvcnREZWNsYXJhdGlvbigpIHtcbiAgLy8gXCJleHBvcnQgZGVjbGFyZVwiIGlzIGVxdWl2YWxlbnQgdG8ganVzdCBcImV4cG9ydFwiLlxuICBjb25zdCBpc0RlY2xhcmUgPSBlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlKTtcbiAgaWYgKGlzRGVjbGFyZSkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Ll9kZWNsYXJlO1xuICB9XG5cbiAgbGV0IG1hdGNoZWREZWNsYXJhdGlvbiA9IGZhbHNlO1xuICBpZiAobWF0Y2godHQubmFtZSkpIHtcbiAgICBpZiAoaXNEZWNsYXJlKSB7XG4gICAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMik7XG4gICAgICBtYXRjaGVkRGVjbGFyYXRpb24gPSB0c1RyeVBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKTtcbiAgICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hdGNoZWREZWNsYXJhdGlvbiA9IHRzVHJ5UGFyc2VFeHBvcnREZWNsYXJhdGlvbigpO1xuICAgIH1cbiAgfVxuICBpZiAoIW1hdGNoZWREZWNsYXJhdGlvbikge1xuICAgIGlmIChpc0RlY2xhcmUpIHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgyKTtcbiAgICAgIHBhcnNlU3RhdGVtZW50KHRydWUpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VTdGF0ZW1lbnQodHJ1ZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c0FmdGVyUGFyc2VDbGFzc1N1cGVyKGhhc1N1cGVyKSB7XG4gIGlmIChoYXNTdXBlciAmJiAobWF0Y2godHQubGVzc1RoYW4pIHx8IG1hdGNoKHR0LmJpdFNoaWZ0TCkpKSB7XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpO1xuICB9XG4gIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbXBsZW1lbnRzKSkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9IHR0Ll9pbXBsZW1lbnRzO1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgxKTtcbiAgICB0c1BhcnNlSGVyaXRhZ2VDbGF1c2UoKTtcbiAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1N0YXJ0UGFyc2VPYmpQcm9wVmFsdWUoKSB7XG4gIHRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNTdGFydFBhcnNlRnVuY3Rpb25QYXJhbXMoKSB7XG4gIHRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycygpO1xufVxuXG4vLyBgbGV0IHg6IG51bWJlcjtgXG5leHBvcnQgZnVuY3Rpb24gdHNBZnRlclBhcnNlVmFySGVhZCgpIHtcbiAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICBpZiAoIWhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKSB7XG4gICAgZWF0KHR0LmJhbmcpO1xuICB9XG4gIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xufVxuXG4vLyBwYXJzZSB0aGUgcmV0dXJuIHR5cGUgb2YgYW4gYXN5bmMgYXJyb3cgZnVuY3Rpb24gLSBsZXQgZm9vID0gKGFzeW5jICgpOiBudW1iZXIgPT4ge30pO1xuZXhwb3J0IGZ1bmN0aW9uIHRzU3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oKSB7XG4gIGlmIChtYXRjaCh0dC5jb2xvbikpIHtcbiAgICB0c1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfVxufVxuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gd2FzIGFuIGFycm93IGZ1bmN0aW9uLlxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucykge1xuICAvLyBOb3RlOiBXaGVuIHRoZSBKU1ggcGx1Z2luIGlzIG9uLCB0eXBlIGFzc2VydGlvbnMgKGA8VD4geGApIGFyZW4ndCB2YWxpZCBzeW50YXguXG4gIGlmIChpc0pTWEVuYWJsZWQpIHtcbiAgICByZXR1cm4gdHNQYXJzZU1heWJlQXNzaWduV2l0aEpTWChub0luLCBpc1dpdGhpblBhcmVucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRzUGFyc2VNYXliZUFzc2lnbldpdGhvdXRKU1gobm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c1BhcnNlTWF5YmVBc3NpZ25XaXRoSlNYKG5vSW4sIGlzV2l0aGluUGFyZW5zKSB7XG4gIGlmICghbWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgcmV0dXJuIGJhc2VQYXJzZU1heWJlQXNzaWduKG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgfVxuXG4gIC8vIFByZWZlciB0byBwYXJzZSBKU1ggaWYgcG9zc2libGUuIEJ1dCBtYXkgYmUgYW4gYXJyb3cgZm4uXG4gIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcbiAgbGV0IHdhc0Fycm93ID0gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gd2FzQXJyb3c7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHRyeSBhcyB0eXBlLXBhcmFtZXRlcml6ZWQgYXJyb3cgZnVuY3Rpb24uXG4gIHN0YXRlLnR5cGUgPSB0dC50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gIC8vIFRoaXMgaXMgc2ltaWxhciB0byBUeXBlU2NyaXB0J3MgYHRyeVBhcnNlUGFyZW50aGVzaXplZEFycm93RnVuY3Rpb25FeHByZXNzaW9uYC5cbiAgdHNQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG4gIHdhc0Fycm93ID0gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICBpZiAoIXdhc0Fycm93KSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG5cbiAgcmV0dXJuIHdhc0Fycm93O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNQYXJzZU1heWJlQXNzaWduV2l0aG91dEpTWChub0luLCBpc1dpdGhpblBhcmVucykge1xuICBpZiAoIW1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIHJldHVybiBiYXNlUGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucyk7XG4gIH1cblxuICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG4gIC8vIFRoaXMgaXMgc2ltaWxhciB0byBUeXBlU2NyaXB0J3MgYHRyeVBhcnNlUGFyZW50aGVzaXplZEFycm93RnVuY3Rpb25FeHByZXNzaW9uYC5cbiAgdHNQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG4gIGNvbnN0IHdhc0Fycm93ID0gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICBpZiAoIXdhc0Fycm93KSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG4gIGlmIChzdGF0ZS5lcnJvcikge1xuICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB3YXNBcnJvdztcbiAgfVxuXG4gIC8vIFRyeSBwYXJzaW5nIGEgdHlwZSBjYXN0IGluc3RlYWQgb2YgYW4gYXJyb3cgZnVuY3Rpb24uXG4gIC8vIFRoaXMgd2lsbCBzdGFydCB3aXRoIGEgdHlwZSBhc3NlcnRpb24gKHZpYSBwYXJzZU1heWJlVW5hcnkpLlxuICAvLyBCdXQgZG9uJ3QgZGlyZWN0bHkgY2FsbCBgdHNQYXJzZVR5cGVBc3NlcnRpb25gIGJlY2F1c2Ugd2Ugd2FudCB0byBoYW5kbGUgYW55IGJpbmFyeSBhZnRlciBpdC5cbiAgcmV0dXJuIGJhc2VQYXJzZU1heWJlQXNzaWduKG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VBcnJvdygpIHtcbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIC8vIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gaG93IHRoZSBUUyBwYXJzZXIgZG9lcyBpdC5cbiAgICAvLyBUUyB1c2VzIGxvb2thaGVhZC4gQmFieWxvbiBwYXJzZXMgaXQgYXMgYSBwYXJlbnRoZXNpemVkIGV4cHJlc3Npb24gYW5kIGNvbnZlcnRzLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcblxuICAgIHRzUGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbih0dC5jb2xvbik7XG4gICAgaWYgKGNhbkluc2VydFNlbWljb2xvbigpKSB1bmV4cGVjdGVkKCk7XG4gICAgaWYgKCFtYXRjaCh0dC5hcnJvdykpIHVuZXhwZWN0ZWQoKTtcblxuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBlYXQodHQuYXJyb3cpO1xufVxuXG4vLyBBbGxvdyB0eXBlIGFubm90YXRpb25zIGluc2lkZSBvZiBhIHBhcmFtZXRlciBsaXN0LlxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcygpIHtcbiAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICBlYXQodHQucXVlc3Rpb24pO1xuICB0c1RyeVBhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRzUGFyc2VNYXliZURlY29yYXRvckFyZ3VtZW50cygpIHtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSB8fCBtYXRjaCh0dC5iaXRTaGlmdEwpKSB7XG4gICAgdHNQYXJzZVR5cGVBcmd1bWVudHNXaXRoUG9zc2libGVCaXRzaGlmdCgpO1xuICB9XG4gIGJhc2VQYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzKCk7XG59XG4iLCAiaW1wb3J0IHtcbiAgZWF0LFxuICBmaW5pc2hUb2tlbixcbiAgZ2V0VG9rZW5Gcm9tQ29kZSxcbiAgSWRlbnRpZmllclJvbGUsXG4gIEpTWFJvbGUsXG4gIG1hdGNoLFxuICBuZXh0LFxuICBza2lwU3BhY2UsXG4gIFRva2VuLFxufSBmcm9tIFwiLi4vLi4vdG9rZW5pemVyL2luZGV4XCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uLy4uL3Rva2VuaXplci90eXBlc1wiO1xuaW1wb3J0IHtpbnB1dCwgaXNUeXBlU2NyaXB0RW5hYmxlZCwgc3RhdGV9IGZyb20gXCIuLi8uLi90cmF2ZXJzZXIvYmFzZVwiO1xuaW1wb3J0IHtwYXJzZUV4cHJlc3Npb24sIHBhcnNlTWF5YmVBc3NpZ259IGZyb20gXCIuLi8uLi90cmF2ZXJzZXIvZXhwcmVzc2lvblwiO1xuaW1wb3J0IHtleHBlY3QsIHVuZXhwZWN0ZWR9IGZyb20gXCIuLi8uLi90cmF2ZXJzZXIvdXRpbFwiO1xuaW1wb3J0IHtjaGFyQ29kZXN9IGZyb20gXCIuLi8uLi91dGlsL2NoYXJjb2Rlc1wiO1xuaW1wb3J0IHtJU19JREVOVElGSUVSX0NIQVIsIElTX0lERU5USUZJRVJfU1RBUlR9IGZyb20gXCIuLi8uLi91dGlsL2lkZW50aWZpZXJcIjtcbmltcG9ydCB7dHNUcnlQYXJzZUpTWFR5cGVBcmd1bWVudH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcblxuLyoqXG4gKiBSZWFkIHRva2VuIHdpdGggSlNYIGNvbnRlbnRzLlxuICpcbiAqIEluIGFkZGl0aW9uIHRvIGRldGVjdGluZyBqc3hUYWdTdGFydCBhbmQgYWxzbyByZWd1bGFyIHRva2VucyB0aGF0IG1pZ2h0IGJlXG4gKiBwYXJ0IG9mIGFuIGV4cHJlc3Npb24sIHRoaXMgY29kZSBkZXRlY3RzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRleHQgcmFuZ2VzXG4gKiB3aXRoaW4gSlNYIGNoaWxkcmVuLiBJbiBvcmRlciB0byBwcm9wZXJseSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuLCB3ZVxuICogZGlzdGluZ3Vpc2gganN4VGV4dCBmcm9tIGpzeEVtcHR5VGV4dCwgd2hpY2ggaXMgYSB0ZXh0IHJhbmdlIHRoYXQgc2ltcGxpZmllc1xuICogdG8gdGhlIGVtcHR5IHN0cmluZyBhZnRlciBKU1ggd2hpdGVzcGFjZSB0cmltbWluZy5cbiAqXG4gKiBJdCB0dXJucyBvdXQgdGhhdCBhIEpTWCB0ZXh0IHJhbmdlIHdpbGwgc2ltcGxpZnkgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBhbmRcbiAqIG9ubHkgaWYgYm90aCBvZiB0aGVzZSBjb25kaXRpb25zIGhvbGQ6XG4gKiAtIFRoZSByYW5nZSBjb25zaXN0cyBlbnRpcmVseSBvZiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKG9ubHkgY291bnRpbmcgc3BhY2UsXG4gKiAgIHRhYiwgXFxyLCBhbmQgXFxuKS5cbiAqIC0gVGhlIHJhbmdlIGhhcyBhdCBsZWFzdCBvbmUgbmV3bGluZS5cbiAqIFRoaXMgY2FuIGJlIHByb3ZlbiBieSBhbmFseXppbmcgYW55IGltcGxlbWVudGF0aW9uIG9mIHdoaXRlc3BhY2UgdHJpbW1pbmcsXG4gKiBlLmcuIGZvcm1hdEpTWFRleHRMaXRlcmFsIGluIFN1Y3Jhc2Ugb3IgY2xlYW5KU1hFbGVtZW50TGl0ZXJhbENoaWxkIGluIEJhYmVsLlxuICovXG5mdW5jdGlvbiBqc3hSZWFkVG9rZW4oKSB7XG4gIGxldCBzYXdOZXdsaW5lID0gZmFsc2U7XG4gIGxldCBzYXdOb25XaGl0ZXNwYWNlID0gZmFsc2U7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKHN0YXRlLnBvcyA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHVuZXhwZWN0ZWQoXCJVbnRlcm1pbmF0ZWQgSlNYIGNvbnRlbnRzXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNoID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIGlmIChjaCA9PT0gY2hhckNvZGVzLmxlc3NUaGFuIHx8IGNoID09PSBjaGFyQ29kZXMubGVmdEN1cmx5QnJhY2UpIHtcbiAgICAgIGlmIChzdGF0ZS5wb3MgPT09IHN0YXRlLnN0YXJ0KSB7XG4gICAgICAgIGlmIChjaCA9PT0gY2hhckNvZGVzLmxlc3NUaGFuKSB7XG4gICAgICAgICAgc3RhdGUucG9zKys7XG4gICAgICAgICAgZmluaXNoVG9rZW4odHQuanN4VGFnU3RhcnQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBnZXRUb2tlbkZyb21Db2RlKGNoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHNhd05ld2xpbmUgJiYgIXNhd05vbldoaXRlc3BhY2UpIHtcbiAgICAgICAgZmluaXNoVG9rZW4odHQuanN4RW1wdHlUZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmlzaFRva2VuKHR0LmpzeFRleHQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgcGFydCBvZiBKU1ggdGV4dC5cbiAgICBpZiAoY2ggPT09IGNoYXJDb2Rlcy5saW5lRmVlZCkge1xuICAgICAgc2F3TmV3bGluZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjaCAhPT0gY2hhckNvZGVzLnNwYWNlICYmIGNoICE9PSBjaGFyQ29kZXMuY2FycmlhZ2VSZXR1cm4gJiYgY2ggIT09IGNoYXJDb2Rlcy50YWIpIHtcbiAgICAgIHNhd05vbldoaXRlc3BhY2UgPSB0cnVlO1xuICAgIH1cbiAgICBzdGF0ZS5wb3MrKztcbiAgfVxufVxuXG5mdW5jdGlvbiBqc3hSZWFkU3RyaW5nKHF1b3RlKSB7XG4gIHN0YXRlLnBvcysrO1xuICBmb3IgKDs7KSB7XG4gICAgaWYgKHN0YXRlLnBvcyA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHVuZXhwZWN0ZWQoXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNoID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuICAgIGlmIChjaCA9PT0gcXVvdGUpIHtcbiAgICAgIHN0YXRlLnBvcysrO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHN0YXRlLnBvcysrO1xuICB9XG4gIGZpbmlzaFRva2VuKHR0LnN0cmluZyk7XG59XG5cbi8vIFJlYWQgYSBKU1ggaWRlbnRpZmllciAodmFsaWQgdGFnIG9yIGF0dHJpYnV0ZSBuYW1lKS5cbi8vXG4vLyBPcHRpbWl6ZWQgdmVyc2lvbiBzaW5jZSBKU1ggaWRlbnRpZmllcnMgY2FuJ3QgY29udGFpblxuLy8gZXNjYXBlIGNoYXJhY3RlcnMgYW5kIHNvIGNhbiBiZSByZWFkIGFzIHNpbmdsZSBzbGljZS5cbi8vIEFsc28gYXNzdW1lcyB0aGF0IGZpcnN0IGNoYXJhY3RlciB3YXMgYWxyZWFkeSBjaGVja2VkXG4vLyBieSBpc0lkZW50aWZpZXJTdGFydCBpbiByZWFkVG9rZW4uXG5cbmZ1bmN0aW9uIGpzeFJlYWRXb3JkKCkge1xuICBsZXQgY2g7XG4gIGRvIHtcbiAgICBpZiAoc3RhdGUucG9zID4gaW5wdXQubGVuZ3RoKSB7XG4gICAgICB1bmV4cGVjdGVkKFwiVW5leHBlY3RlZGx5IHJlYWNoZWQgdGhlIGVuZCBvZiBpbnB1dC5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNoID0gaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvcyk7XG4gIH0gd2hpbGUgKElTX0lERU5USUZJRVJfQ0hBUltjaF0gfHwgY2ggPT09IGNoYXJDb2Rlcy5kYXNoKTtcbiAgZmluaXNoVG9rZW4odHQuanN4TmFtZSk7XG59XG5cbi8vIFBhcnNlIG5leHQgdG9rZW4gYXMgSlNYIGlkZW50aWZpZXJcbmZ1bmN0aW9uIGpzeFBhcnNlSWRlbnRpZmllcigpIHtcbiAgbmV4dEpTWFRhZ1Rva2VuKCk7XG59XG5cbi8vIFBhcnNlIG5hbWVzcGFjZWQgaWRlbnRpZmllci5cbmZ1bmN0aW9uIGpzeFBhcnNlTmFtZXNwYWNlZE5hbWUoaWRlbnRpZmllclJvbGUpIHtcbiAganN4UGFyc2VJZGVudGlmaWVyKCk7XG4gIGlmICghZWF0KHR0LmNvbG9uKSkge1xuICAgIC8vIFBsYWluIGlkZW50aWZpZXIsIHNvIHRoaXMgaXMgYW4gYWNjZXNzLlxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBpZGVudGlmaWVyUm9sZTtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gUHJvY2VzcyB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIG5hbWVzcGFjZWQgbmFtZS5cbiAganN4UGFyc2VJZGVudGlmaWVyKCk7XG59XG5cbi8vIFBhcnNlcyBlbGVtZW50IG5hbWUgaW4gYW55IGZvcm0gLSBuYW1lc3BhY2VkLCBtZW1iZXJcbi8vIG9yIHNpbmdsZSBpZGVudGlmaWVyLlxuZnVuY3Rpb24ganN4UGFyc2VFbGVtZW50TmFtZSgpIHtcbiAgY29uc3QgZmlyc3RUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAganN4UGFyc2VOYW1lc3BhY2VkTmFtZShJZGVudGlmaWVyUm9sZS5BY2Nlc3MpO1xuICBsZXQgaGFkRG90ID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaCh0dC5kb3QpKSB7XG4gICAgaGFkRG90ID0gdHJ1ZTtcbiAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgICBqc3hQYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxuICAvLyBGb3IgdGFncyBsaWtlIDxkaXY+IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIGFuZCBubyBkb3RzLCB0aGUgbmFtZSBpc1xuICAvLyBhY3R1YWxseSAqbm90KiBhbiBpZGVudGlmaWVyIGFjY2Vzcywgc2luY2UgaXQncyByZWZlcnJpbmcgdG8gYSBidWlsdC1pblxuICAvLyB0YWcgbmFtZS4gUmVtb3ZlIHRoZSBpZGVudGlmaWVyIHJvbGUgaW4gdGhpcyBjYXNlIHNvIHRoYXQgaXQncyBub3RcbiAgLy8gYWNjaWRlbnRhbGx5IHRyYW5zZm9ybWVkIGJ5IHRoZSBpbXBvcnRzIHRyYW5zZm9ybSB3aGVuIHByZXNlcnZpbmcgSlNYLlxuICBpZiAoIWhhZERvdCkge1xuICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBzdGF0ZS50b2tlbnNbZmlyc3RUb2tlbkluZGV4XTtcbiAgICBjb25zdCBmaXJzdENoYXIgPSBpbnB1dC5jaGFyQ29kZUF0KGZpcnN0VG9rZW4uc3RhcnQpO1xuICAgIGlmIChmaXJzdENoYXIgPj0gY2hhckNvZGVzLmxvd2VyY2FzZUEgJiYgZmlyc3RDaGFyIDw9IGNoYXJDb2Rlcy5sb3dlcmNhc2VaKSB7XG4gICAgICBmaXJzdFRva2VuLmlkZW50aWZpZXJSb2xlID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFyc2VzIGFueSB0eXBlIG9mIEpTWCBhdHRyaWJ1dGUgdmFsdWUuXG5mdW5jdGlvbiBqc3hQYXJzZUF0dHJpYnV0ZVZhbHVlKCkge1xuICBzd2l0Y2ggKHN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIHR0LmJyYWNlTDpcbiAgICAgIG5leHQoKTtcbiAgICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0LmpzeFRhZ1N0YXJ0OlxuICAgICAganN4UGFyc2VFbGVtZW50KCk7XG4gICAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgdHQuc3RyaW5nOlxuICAgICAgbmV4dEpTWFRhZ1Rva2VuKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdW5leHBlY3RlZChcIkpTWCB2YWx1ZSBzaG91bGQgYmUgZWl0aGVyIGFuIGV4cHJlc3Npb24gb3IgYSBxdW90ZWQgSlNYIHRleHRcIik7XG4gIH1cbn1cblxuLy8gUGFyc2UgSlNYIHNwcmVhZCBjaGlsZCwgYWZ0ZXIgYWxyZWFkeSBwcm9jZXNzaW5nIHRoZSB7XG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgY2xvc2luZyB9XG5mdW5jdGlvbiBqc3hQYXJzZVNwcmVhZENoaWxkKCkge1xuICBleHBlY3QodHQuZWxsaXBzaXMpO1xuICBwYXJzZUV4cHJlc3Npb24oKTtcbn1cblxuLy8gUGFyc2VzIEpTWCBvcGVuaW5nIHRhZyBzdGFydGluZyBhZnRlciBcIjxcIi5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgdGFnIHdhcyBzZWxmLWNsb3NpbmcuXG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgbGFzdCB0b2tlbi5cbmZ1bmN0aW9uIGpzeFBhcnNlT3BlbmluZ0VsZW1lbnQoaW5pdGlhbFRva2VuSW5kZXgpIHtcbiAgaWYgKG1hdGNoKHR0LmpzeFRhZ0VuZCkpIHtcbiAgICAvLyBUaGlzIGlzIGFuIG9wZW4tZnJhZ21lbnQuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGpzeFBhcnNlRWxlbWVudE5hbWUoKTtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0c1RyeVBhcnNlSlNYVHlwZUFyZ3VtZW50KCk7XG4gIH1cbiAgbGV0IGhhc1NlZW5Qcm9wU3ByZWFkID0gZmFsc2U7XG4gIHdoaWxlICghbWF0Y2godHQuc2xhc2gpICYmICFtYXRjaCh0dC5qc3hUYWdFbmQpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIGlmIChlYXQodHQuYnJhY2VMKSkge1xuICAgICAgaGFzU2VlblByb3BTcHJlYWQgPSB0cnVlO1xuICAgICAgZXhwZWN0KHR0LmVsbGlwc2lzKTtcbiAgICAgIHBhcnNlTWF5YmVBc3NpZ24oKTtcbiAgICAgIC8vIH1cbiAgICAgIG5leHRKU1hUYWdUb2tlbigpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGhhc1NlZW5Qcm9wU3ByZWFkICYmXG4gICAgICBzdGF0ZS5lbmQgLSBzdGF0ZS5zdGFydCA9PT0gMyAmJlxuICAgICAgaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5zdGFydCkgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VLICYmXG4gICAgICBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnN0YXJ0ICsgMSkgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VFICYmXG4gICAgICBpbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnN0YXJ0ICsgMikgPT09IGNoYXJDb2Rlcy5sb3dlcmNhc2VZXG4gICAgKSB7XG4gICAgICBzdGF0ZS50b2tlbnNbaW5pdGlhbFRva2VuSW5kZXhdLmpzeFJvbGUgPSBKU1hSb2xlLktleUFmdGVyUHJvcFNwcmVhZDtcbiAgICB9XG4gICAganN4UGFyc2VOYW1lc3BhY2VkTmFtZShJZGVudGlmaWVyUm9sZS5PYmplY3RLZXkpO1xuICAgIGlmIChtYXRjaCh0dC5lcSkpIHtcbiAgICAgIG5leHRKU1hUYWdUb2tlbigpO1xuICAgICAganN4UGFyc2VBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBjb25zdCBpc1NlbGZDbG9zaW5nID0gbWF0Y2godHQuc2xhc2gpO1xuICBpZiAoaXNTZWxmQ2xvc2luZykge1xuICAgIC8vIC9cbiAgICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAgfVxuICByZXR1cm4gaXNTZWxmQ2xvc2luZztcbn1cblxuLy8gUGFyc2VzIEpTWCBjbG9zaW5nIHRhZyBzdGFydGluZyBhZnRlciBcIjwvXCIuXG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgbGFzdCB0b2tlbi5cbmZ1bmN0aW9uIGpzeFBhcnNlQ2xvc2luZ0VsZW1lbnQoKSB7XG4gIGlmIChtYXRjaCh0dC5qc3hUYWdFbmQpKSB7XG4gICAgLy8gRnJhZ21lbnQgc3ludGF4LCBzbyB3ZSBpbW1lZGlhdGVseSBoYXZlIGEgdGFnIGVuZC5cbiAgICByZXR1cm47XG4gIH1cbiAganN4UGFyc2VFbGVtZW50TmFtZSgpO1xufVxuXG4vLyBQYXJzZXMgZW50aXJlIEpTWCBlbGVtZW50LCBpbmNsdWRpbmcgaXRzIG9wZW5pbmcgdGFnXG4vLyAoc3RhcnRpbmcgYWZ0ZXIgXCI8XCIpLCBhdHRyaWJ1dGVzLCBjb250ZW50cyBhbmQgY2xvc2luZyB0YWcuXG4vLyBEb2VzIG5vdCBwYXJzZSB0aGUgbGFzdCB0b2tlbi5cbmZ1bmN0aW9uIGpzeFBhcnNlRWxlbWVudEF0KCkge1xuICBjb25zdCBpbml0aWFsVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGggLSAxO1xuICBzdGF0ZS50b2tlbnNbaW5pdGlhbFRva2VuSW5kZXhdLmpzeFJvbGUgPSBKU1hSb2xlLk5vQ2hpbGRyZW47XG4gIGxldCBudW1FeHBsaWNpdENoaWxkcmVuID0gMDtcbiAgY29uc3QgaXNTZWxmQ2xvc2luZyA9IGpzeFBhcnNlT3BlbmluZ0VsZW1lbnQoaW5pdGlhbFRva2VuSW5kZXgpO1xuICBpZiAoIWlzU2VsZkNsb3NpbmcpIHtcbiAgICBuZXh0SlNYRXhwclRva2VuKCk7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN3aXRjaCAoc3RhdGUudHlwZSkge1xuICAgICAgICBjYXNlIHR0LmpzeFRhZ1N0YXJ0OlxuICAgICAgICAgIG5leHRKU1hUYWdUb2tlbigpO1xuICAgICAgICAgIGlmIChtYXRjaCh0dC5zbGFzaCkpIHtcbiAgICAgICAgICAgIG5leHRKU1hUYWdUb2tlbigpO1xuICAgICAgICAgICAganN4UGFyc2VDbG9zaW5nRWxlbWVudCgpO1xuICAgICAgICAgICAgLy8gS2V5IGFmdGVyIHByb3Agc3ByZWFkIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBudW1iZXIgb2YgY2hpbGRyZW4sXG4gICAgICAgICAgICAvLyBzaW5jZSBpdCBtZWFucyB3ZSBzd2l0Y2ggdG8gY3JlYXRlRWxlbWVudCwgd2hpY2ggZG9lc24ndCBjYXJlXG4gICAgICAgICAgICAvLyBhYm91dCBudW1iZXIgb2YgY2hpbGRyZW4uXG4gICAgICAgICAgICBpZiAoc3RhdGUudG9rZW5zW2luaXRpYWxUb2tlbkluZGV4XS5qc3hSb2xlICE9PSBKU1hSb2xlLktleUFmdGVyUHJvcFNwcmVhZCkge1xuICAgICAgICAgICAgICBpZiAobnVtRXhwbGljaXRDaGlsZHJlbiA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHN0YXRlLnRva2Vuc1tpbml0aWFsVG9rZW5JbmRleF0uanN4Um9sZSA9IEpTWFJvbGUuT25lQ2hpbGQ7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtRXhwbGljaXRDaGlsZHJlbiA+IDEpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS50b2tlbnNbaW5pdGlhbFRva2VuSW5kZXhdLmpzeFJvbGUgPSBKU1hSb2xlLlN0YXRpY0NoaWxkcmVuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG51bUV4cGxpY2l0Q2hpbGRyZW4rKztcbiAgICAgICAgICBqc3hQYXJzZUVsZW1lbnRBdCgpO1xuICAgICAgICAgIG5leHRKU1hFeHByVG9rZW4oKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIHR0LmpzeFRleHQ6XG4gICAgICAgICAgbnVtRXhwbGljaXRDaGlsZHJlbisrO1xuICAgICAgICAgIG5leHRKU1hFeHByVG9rZW4oKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIHR0LmpzeEVtcHR5VGV4dDpcbiAgICAgICAgICBuZXh0SlNYRXhwclRva2VuKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSB0dC5icmFjZUw6XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIGlmIChtYXRjaCh0dC5lbGxpcHNpcykpIHtcbiAgICAgICAgICAgIGpzeFBhcnNlU3ByZWFkQ2hpbGQoKTtcbiAgICAgICAgICAgIG5leHRKU1hFeHByVG9rZW4oKTtcbiAgICAgICAgICAgIC8vIFNwcmVhZCBjaGlsZHJlbiBhcmUgYSBtZWNoYW5pc20gdG8gZXhwbGljaXRseSBtYXJrIGNoaWxkcmVuIGFzXG4gICAgICAgICAgICAvLyBzdGF0aWMsIHNvIGNvdW50IGl0IGFzIDIgY2hpbGRyZW4gdG8gc2F0aXNmeSB0aGUgXCJtb3JlIHRoYW4gb25lXG4gICAgICAgICAgICAvLyBjaGlsZFwiIGNvbmRpdGlvbi5cbiAgICAgICAgICAgIG51bUV4cGxpY2l0Q2hpbGRyZW4gKz0gMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgd2Ugc2VlIHt9LCB0aGlzIGlzIGFuIGVtcHR5IHBzZXVkby1leHByZXNzaW9uIHRoYXQgZG9lc24ndFxuICAgICAgICAgICAgLy8gY291bnQgYXMgYSBjaGlsZC5cbiAgICAgICAgICAgIGlmICghbWF0Y2godHQuYnJhY2VSKSkge1xuICAgICAgICAgICAgICBudW1FeHBsaWNpdENoaWxkcmVuKys7XG4gICAgICAgICAgICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dEpTWEV4cHJUb2tlbigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHVuZXhwZWN0ZWQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFBhcnNlcyBlbnRpcmUgSlNYIGVsZW1lbnQgZnJvbSBjdXJyZW50IHBvc2l0aW9uLlxuLy8gRG9lcyBub3QgcGFyc2UgdGhlIGxhc3QgdG9rZW4uXG5leHBvcnQgZnVuY3Rpb24ganN4UGFyc2VFbGVtZW50KCkge1xuICBuZXh0SlNYVGFnVG9rZW4oKTtcbiAganN4UGFyc2VFbGVtZW50QXQoKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3ZlcnJpZGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0SlNYVGFnVG9rZW4oKSB7XG4gIHN0YXRlLnRva2Vucy5wdXNoKG5ldyBUb2tlbigpKTtcbiAgc2tpcFNwYWNlKCk7XG4gIHN0YXRlLnN0YXJ0ID0gc3RhdGUucG9zO1xuICBjb25zdCBjb2RlID0gaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3MpO1xuXG4gIGlmIChJU19JREVOVElGSUVSX1NUQVJUW2NvZGVdKSB7XG4gICAganN4UmVhZFdvcmQoKTtcbiAgfSBlbHNlIGlmIChjb2RlID09PSBjaGFyQ29kZXMucXVvdGF0aW9uTWFyayB8fCBjb2RlID09PSBjaGFyQ29kZXMuYXBvc3Ryb3BoZSkge1xuICAgIGpzeFJlYWRTdHJpbmcoY29kZSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIGZvbGxvd2luZyB0b2tlbnMgYXJlIGp1c3Qgb25lIGNoYXJhY3RlciBlYWNoLlxuICAgICsrc3RhdGUucG9zO1xuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSBjaGFyQ29kZXMuZ3JlYXRlclRoYW46XG4gICAgICAgIGZpbmlzaFRva2VuKHR0LmpzeFRhZ0VuZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBjaGFyQ29kZXMubGVzc1RoYW46XG4gICAgICAgIGZpbmlzaFRva2VuKHR0LmpzeFRhZ1N0YXJ0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGNoYXJDb2Rlcy5zbGFzaDpcbiAgICAgICAgZmluaXNoVG9rZW4odHQuc2xhc2gpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgY2hhckNvZGVzLmVxdWFsc1RvOlxuICAgICAgICBmaW5pc2hUb2tlbih0dC5lcSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBjaGFyQ29kZXMubGVmdEN1cmx5QnJhY2U6XG4gICAgICAgIGZpbmlzaFRva2VuKHR0LmJyYWNlTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBjaGFyQ29kZXMuZG90OlxuICAgICAgICBmaW5pc2hUb2tlbih0dC5kb3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgY2hhckNvZGVzLmNvbG9uOlxuICAgICAgICBmaW5pc2hUb2tlbih0dC5jb2xvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdW5leHBlY3RlZCgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBuZXh0SlNYRXhwclRva2VuKCkge1xuICBzdGF0ZS50b2tlbnMucHVzaChuZXcgVG9rZW4oKSk7XG4gIHN0YXRlLnN0YXJ0ID0gc3RhdGUucG9zO1xuICBqc3hSZWFkVG9rZW4oKTtcbn1cbiIsICJpbXBvcnQge2VhdFR5cGVUb2tlbiwgbG9va2FoZWFkVHlwZSwgbWF0Y2h9IGZyb20gXCIuLi90b2tlbml6ZXIvaW5kZXhcIjtcbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vdG9rZW5pemVyL3R5cGVzXCI7XG5pbXBvcnQge2lzRmxvd0VuYWJsZWQsIGlzVHlwZVNjcmlwdEVuYWJsZWR9IGZyb20gXCIuLi90cmF2ZXJzZXIvYmFzZVwiO1xuaW1wb3J0IHtiYXNlUGFyc2VDb25kaXRpb25hbH0gZnJvbSBcIi4uL3RyYXZlcnNlci9leHByZXNzaW9uXCI7XG5pbXBvcnQge2Zsb3dQYXJzZVR5cGVBbm5vdGF0aW9ufSBmcm9tIFwiLi9mbG93XCI7XG5pbXBvcnQge3RzUGFyc2VUeXBlQW5ub3RhdGlvbn0gZnJvbSBcIi4vdHlwZXNjcmlwdFwiO1xuXG4vKipcbiAqIENvbW1vbiBwYXJzZXIgY29kZSBmb3IgVHlwZVNjcmlwdCBhbmQgRmxvdy5cbiAqL1xuXG4vLyBBbiBhcHBhcmVudCBjb25kaXRpb25hbCBleHByZXNzaW9uIGNvdWxkIGFjdHVhbGx5IGJlIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiBhbiBhcnJvdyBmdW5jdGlvbi5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlZFBhcnNlQ29uZGl0aW9uYWwobm9Jbikge1xuICAvLyBJZiB3ZSBzZWUgPzosIHRoaXMgY2FuJ3QgcG9zc2libHkgYmUgYSB2YWxpZCBjb25kaXRpb25hbC4gdHlwZWRQYXJzZVBhcmVuSXRlbSB3aWxsIGJlIGNhbGxlZFxuICAvLyBsYXRlciB0byBmaW5pc2ggb2ZmIHRoZSBhcnJvdyBwYXJhbWV0ZXIuIFdlIGFsc28gbmVlZCB0byBoYW5kbGUgYmFyZSA/IHRva2VucyBmb3Igb3B0aW9uYWxcbiAgLy8gcGFyYW1ldGVycyB3aXRob3V0IHR5cGUgYW5ub3RhdGlvbnMsIGkuZS4gPywgYW5kID8pIC5cbiAgaWYgKG1hdGNoKHR0LnF1ZXN0aW9uKSkge1xuICAgIGNvbnN0IG5leHRUeXBlID0gbG9va2FoZWFkVHlwZSgpO1xuICAgIGlmIChuZXh0VHlwZSA9PT0gdHQuY29sb24gfHwgbmV4dFR5cGUgPT09IHR0LmNvbW1hIHx8IG5leHRUeXBlID09PSB0dC5wYXJlblIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgYmFzZVBhcnNlQ29uZGl0aW9uYWwobm9Jbik7XG59XG5cbi8vIE5vdGU6IFRoZXNlIFwidHlwZSBjYXN0c1wiIGFyZSAqbm90KiB2YWxpZCBUUyBleHByZXNzaW9ucy5cbi8vIEJ1dCB3ZSBwYXJzZSB0aGVtIGhlcmUgYW5kIGNoYW5nZSB0aGVtIHdoZW4gY29tcGxldGluZyB0aGUgYXJyb3cgZnVuY3Rpb24uXG5leHBvcnQgZnVuY3Rpb24gdHlwZWRQYXJzZVBhcmVuSXRlbSgpIHtcbiAgZWF0VHlwZVRva2VuKHR0LnF1ZXN0aW9uKTtcbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgICB0c1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICAgIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iLCAiLyogZXNsaW50IG1heC1sZW46IDAgKi9cblxuLy8gQSByZWN1cnNpdmUgZGVzY2VudCBwYXJzZXIgb3BlcmF0ZXMgYnkgZGVmaW5pbmcgZnVuY3Rpb25zIGZvciBhbGxcbi8vIHN5bnRhY3RpYyBlbGVtZW50cywgYW5kIHJlY3Vyc2l2ZWx5IGNhbGxpbmcgdGhvc2UsIGVhY2ggZnVuY3Rpb25cbi8vIGFkdmFuY2luZyB0aGUgaW5wdXQgc3RyZWFtIGFuZCByZXR1cm5pbmcgYW4gQVNUIG5vZGUuIFByZWNlZGVuY2Vcbi8vIG9mIGNvbnN0cnVjdHMgKGZvciBleGFtcGxlLCB0aGUgZmFjdCB0aGF0IGAheFsxXWAgbWVhbnMgYCEoeFsxXSlgXG4vLyBpbnN0ZWFkIG9mIGAoIXgpWzFdYCBpcyBoYW5kbGVkIGJ5IHRoZSBmYWN0IHRoYXQgdGhlIHBhcnNlclxuLy8gZnVuY3Rpb24gdGhhdCBwYXJzZXMgdW5hcnkgcHJlZml4IG9wZXJhdG9ycyBpcyBjYWxsZWQgZmlyc3QsIGFuZFxuLy8gaW4gdHVybiBjYWxscyB0aGUgZnVuY3Rpb24gdGhhdCBwYXJzZXMgYFtdYCBzdWJzY3JpcHRzIFx1MjAxNCB0aGF0XG4vLyB3YXksIGl0J2xsIHJlY2VpdmUgdGhlIG5vZGUgZm9yIGB4WzFdYCBhbHJlYWR5IHBhcnNlZCwgYW5kIHdyYXBzXG4vLyAqdGhhdCogaW4gdGhlIHVuYXJ5IG9wZXJhdG9yIG5vZGUuXG4vL1xuLy8gQWNvcm4gdXNlcyBhbiBbb3BlcmF0b3IgcHJlY2VkZW5jZSBwYXJzZXJdW29wcF0gdG8gaGFuZGxlIGJpbmFyeVxuLy8gb3BlcmF0b3IgcHJlY2VkZW5jZSwgYmVjYXVzZSBpdCBpcyBtdWNoIG1vcmUgY29tcGFjdCB0aGFuIHVzaW5nXG4vLyB0aGUgdGVjaG5pcXVlIG91dGxpbmVkIGFib3ZlLCB3aGljaCB1c2VzIGRpZmZlcmVudCwgbmVzdGluZ1xuLy8gZnVuY3Rpb25zIHRvIHNwZWNpZnkgcHJlY2VkZW5jZSwgZm9yIGFsbCBvZiB0aGUgdGVuIGJpbmFyeVxuLy8gcHJlY2VkZW5jZSBsZXZlbHMgdGhhdCBKYXZhU2NyaXB0IGRlZmluZXMuXG4vL1xuLy8gW29wcF06IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvT3BlcmF0b3ItcHJlY2VkZW5jZV9wYXJzZXJcblxuaW1wb3J0IHtcbiAgZmxvd1BhcnNlQXJyb3csXG4gIGZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaCxcbiAgZmxvd1BhcnNlTWF5YmVBc3NpZ24sXG4gIGZsb3dQYXJzZVN1YnNjcmlwdCxcbiAgZmxvd1BhcnNlU3Vic2NyaXB0cyxcbiAgZmxvd1BhcnNlVmFyaWFuY2UsXG4gIGZsb3dTdGFydFBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbixcbiAgZmxvd1N0YXJ0UGFyc2VOZXdBcmd1bWVudHMsXG4gIGZsb3dTdGFydFBhcnNlT2JqUHJvcFZhbHVlLFxufSBmcm9tIFwiLi4vcGx1Z2lucy9mbG93XCI7XG5pbXBvcnQge2pzeFBhcnNlRWxlbWVudH0gZnJvbSBcIi4uL3BsdWdpbnMvanN4L2luZGV4XCI7XG5pbXBvcnQge3R5cGVkUGFyc2VDb25kaXRpb25hbCwgdHlwZWRQYXJzZVBhcmVuSXRlbX0gZnJvbSBcIi4uL3BsdWdpbnMvdHlwZXNcIjtcbmltcG9ydCB7XG4gIHRzUGFyc2VBcnJvdyxcbiAgdHNQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaCxcbiAgdHNQYXJzZU1heWJlQXNzaWduLFxuICB0c1BhcnNlU3Vic2NyaXB0LFxuICB0c1BhcnNlVHlwZSxcbiAgdHNQYXJzZVR5cGVBc3NlcnRpb24sXG4gIHRzU3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24sXG4gIHRzU3RhcnRQYXJzZU9ialByb3BWYWx1ZSxcbn0gZnJvbSBcIi4uL3BsdWdpbnMvdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgZWF0LFxuICBJZGVudGlmaWVyUm9sZSxcbiAgbG9va2FoZWFkQ2hhckNvZGUsXG4gIGxvb2thaGVhZFR5cGUsXG4gIG1hdGNoLFxuICBuZXh0LFxuICBuZXh0VGVtcGxhdGVUb2tlbixcbiAgcG9wVHlwZUNvbnRleHQsXG4gIHB1c2hUeXBlQ29udGV4dCxcbiAgcmVzY2FuX2d0LFxuICByZXRva2VuaXplU2xhc2hBc1JlZ2V4LFxufSBmcm9tIFwiLi4vdG9rZW5pemVyL2luZGV4XCI7XG5pbXBvcnQge0NvbnRleHR1YWxLZXl3b3JkfSBmcm9tIFwiLi4vdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Njb3BlfSBmcm9tIFwiLi4vdG9rZW5pemVyL3N0YXRlXCI7XG5pbXBvcnQge1Rva2VuVHlwZSwgVG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vdG9rZW5pemVyL3R5cGVzXCI7XG5pbXBvcnQge2NoYXJDb2Rlc30gZnJvbSBcIi4uL3V0aWwvY2hhcmNvZGVzXCI7XG5pbXBvcnQge0lTX0lERU5USUZJRVJfU1RBUlR9IGZyb20gXCIuLi91dGlsL2lkZW50aWZpZXJcIjtcbmltcG9ydCB7Z2V0TmV4dENvbnRleHRJZCwgaXNGbG93RW5hYmxlZCwgaXNKU1hFbmFibGVkLCBpc1R5cGVTY3JpcHRFbmFibGVkLCBzdGF0ZX0gZnJvbSBcIi4vYmFzZVwiO1xuaW1wb3J0IHtcbiAgbWFya1ByaW9yQmluZGluZ0lkZW50aWZpZXIsXG4gIHBhcnNlQmluZGluZ0lkZW50aWZpZXIsXG4gIHBhcnNlTWF5YmVEZWZhdWx0LFxuICBwYXJzZVJlc3QsXG4gIHBhcnNlU3ByZWFkLFxufSBmcm9tIFwiLi9sdmFsXCI7XG5pbXBvcnQge1xuICBwYXJzZUJsb2NrLFxuICBwYXJzZUJsb2NrQm9keSxcbiAgcGFyc2VDbGFzcyxcbiAgcGFyc2VEZWNvcmF0b3JzLFxuICBwYXJzZUZ1bmN0aW9uLFxuICBwYXJzZUZ1bmN0aW9uUGFyYW1zLFxufSBmcm9tIFwiLi9zdGF0ZW1lbnRcIjtcbmltcG9ydCB7XG4gIGNhbkluc2VydFNlbWljb2xvbixcbiAgZWF0Q29udGV4dHVhbCxcbiAgZXhwZWN0LFxuICBleHBlY3RDb250ZXh0dWFsLFxuICBoYXNGb2xsb3dpbmdMaW5lQnJlYWssXG4gIGhhc1ByZWNlZGluZ0xpbmVCcmVhayxcbiAgaXNDb250ZXh0dWFsLFxuICB1bmV4cGVjdGVkLFxufSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBjbGFzcyBTdG9wU3RhdGUge1xuICBcbiAgY29uc3RydWN0b3Ioc3RvcCkge1xuICAgIHRoaXMuc3RvcCA9IHN0b3A7XG4gIH1cbn1cblxuLy8gIyMjIEV4cHJlc3Npb24gcGFyc2luZ1xuXG4vLyBUaGVzZSBuZXN0LCBmcm9tIHRoZSBtb3N0IGdlbmVyYWwgZXhwcmVzc2lvbiB0eXBlIGF0IHRoZSB0b3AgdG9cbi8vICdhdG9taWMnLCBub25kaXZpc2libGUgZXhwcmVzc2lvbiB0eXBlcyBhdCB0aGUgYm90dG9tLiBNb3N0IG9mXG4vLyB0aGUgZnVuY3Rpb25zIHdpbGwgc2ltcGx5IGxldCB0aGUgZnVuY3Rpb24gKHMpIGJlbG93IHRoZW0gcGFyc2UsXG4vLyBhbmQsICppZiogdGhlIHN5bnRhY3RpYyBjb25zdHJ1Y3QgdGhleSBoYW5kbGUgaXMgcHJlc2VudCwgd3JhcFxuLy8gdGhlIEFTVCBub2RlIHRoYXQgdGhlIGlubmVyIHBhcnNlciBnYXZlIHRoZW0gaW4gYW5vdGhlciBub2RlLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXhwcmVzc2lvbihub0luID0gZmFsc2UpIHtcbiAgcGFyc2VNYXliZUFzc2lnbihub0luKTtcbiAgaWYgKG1hdGNoKHR0LmNvbW1hKSkge1xuICAgIHdoaWxlIChlYXQodHQuY29tbWEpKSB7XG4gICAgICBwYXJzZU1heWJlQXNzaWduKG5vSW4pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIG5vSW4gaXMgdXNlZCB3aGVuIHBhcnNpbmcgYSBmb3IgbG9vcCBzbyB0aGF0IHdlIGRvbid0IGludGVycHJldCBhIGZvbGxvd2luZyBcImluXCIgYXMgdGhlIGJpbmFyeVxuICogb3BlcmF0aW9yLlxuICogaXNXaXRoaW5QYXJlbnMgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHdlJ3JlIHBhcnNpbmcgc29tZXRoaW5nIHRoYXQgbWlnaHQgYmUgYSBjb21tYSBleHByZXNzaW9uXG4gKiBvciBtaWdodCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBvciBtaWdodCBiZSBhIEZsb3cgdHlwZSBhc3NlcnRpb24gKHdoaWNoIHJlcXVpcmVzIGV4cGxpY2l0IHBhcmVucykuXG4gKiBJbiB0aGVzZSBjYXNlcywgd2Ugc2hvdWxkIGFsbG93IDogYW5kID86IGFmdGVyIHRoZSBpbml0aWFsIFwibGVmdFwiIHBhcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1heWJlQXNzaWduKG5vSW4gPSBmYWxzZSwgaXNXaXRoaW5QYXJlbnMgPSBmYWxzZSkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHJldHVybiB0c1BhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9IGVsc2UgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICByZXR1cm4gZmxvd1BhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlUGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucyk7XG4gIH1cbn1cblxuLy8gUGFyc2UgYW4gYXNzaWdubWVudCBleHByZXNzaW9uLiBUaGlzIGluY2x1ZGVzIGFwcGxpY2F0aW9ucyBvZlxuLy8gb3BlcmF0b3JzIGxpa2UgYCs9YC5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiB3YXMgYW4gYXJyb3cgZnVuY3Rpb24uXG5leHBvcnQgZnVuY3Rpb24gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpIHtcbiAgaWYgKG1hdGNoKHR0Ll95aWVsZCkpIHtcbiAgICBwYXJzZVlpZWxkKCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG1hdGNoKHR0LnBhcmVuTCkgfHwgbWF0Y2godHQubmFtZSkgfHwgbWF0Y2godHQuX3lpZWxkKSkge1xuICAgIHN0YXRlLnBvdGVudGlhbEFycm93QXQgPSBzdGF0ZS5zdGFydDtcbiAgfVxuXG4gIGNvbnN0IHdhc0Fycm93ID0gcGFyc2VNYXliZUNvbmRpdGlvbmFsKG5vSW4pO1xuICBpZiAoaXNXaXRoaW5QYXJlbnMpIHtcbiAgICBwYXJzZVBhcmVuSXRlbSgpO1xuICB9XG4gIGlmIChzdGF0ZS50eXBlICYgVG9rZW5UeXBlLklTX0FTU0lHTikge1xuICAgIG5leHQoKTtcbiAgICBwYXJzZU1heWJlQXNzaWduKG5vSW4pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gd2FzQXJyb3c7XG59XG5cbi8vIFBhcnNlIGEgdGVybmFyeSBjb25kaXRpb25hbCAoYD86YCkgb3BlcmF0b3IuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gd2FzIGFuIGFycm93IGZ1bmN0aW9uLlxuZnVuY3Rpb24gcGFyc2VNYXliZUNvbmRpdGlvbmFsKG5vSW4pIHtcbiAgY29uc3Qgd2FzQXJyb3cgPSBwYXJzZUV4cHJPcHMobm9Jbik7XG4gIGlmICh3YXNBcnJvdykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHBhcnNlQ29uZGl0aW9uYWwobm9Jbik7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb25kaXRpb25hbChub0luKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkIHx8IGlzRmxvd0VuYWJsZWQpIHtcbiAgICB0eXBlZFBhcnNlQ29uZGl0aW9uYWwobm9Jbik7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlQ29uZGl0aW9uYWwobm9Jbik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQYXJzZUNvbmRpdGlvbmFsKG5vSW4pIHtcbiAgaWYgKGVhdCh0dC5xdWVzdGlvbikpIHtcbiAgICBwYXJzZU1heWJlQXNzaWduKCk7XG4gICAgZXhwZWN0KHR0LmNvbG9uKTtcbiAgICBwYXJzZU1heWJlQXNzaWduKG5vSW4pO1xuICB9XG59XG5cbi8vIFN0YXJ0IHRoZSBwcmVjZWRlbmNlIHBhcnNlci5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBhcnJvdyBmdW5jdGlvblxuZnVuY3Rpb24gcGFyc2VFeHByT3BzKG5vSW4pIHtcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgY29uc3Qgd2FzQXJyb3cgPSBwYXJzZU1heWJlVW5hcnkoKTtcbiAgaWYgKHdhc0Fycm93KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcGFyc2VFeHByT3Aoc3RhcnRUb2tlbkluZGV4LCAtMSwgbm9Jbik7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gUGFyc2UgYmluYXJ5IG9wZXJhdG9ycyB3aXRoIHRoZSBvcGVyYXRvciBwcmVjZWRlbmNlIHBhcnNpbmdcbi8vIGFsZ29yaXRobS4gYGxlZnRgIGlzIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiB0aGUgb3BlcmF0b3IuXG4vLyBgbWluUHJlY2AgcHJvdmlkZXMgY29udGV4dCB0aGF0IGFsbG93cyB0aGUgZnVuY3Rpb24gdG8gc3RvcCBhbmRcbi8vIGRlZmVyIGZ1cnRoZXIgcGFyc2VyIHRvIG9uZSBvZiBpdHMgY2FsbGVycyB3aGVuIGl0IGVuY291bnRlcnMgYW5cbi8vIG9wZXJhdG9yIHRoYXQgaGFzIGEgbG93ZXIgcHJlY2VkZW5jZSB0aGFuIHRoZSBzZXQgaXQgaXMgcGFyc2luZy5cbmZ1bmN0aW9uIHBhcnNlRXhwck9wKHN0YXJ0VG9rZW5JbmRleCwgbWluUHJlYywgbm9Jbikge1xuICBpZiAoXG4gICAgaXNUeXBlU2NyaXB0RW5hYmxlZCAmJlxuICAgICh0dC5faW4gJiBUb2tlblR5cGUuUFJFQ0VERU5DRV9NQVNLKSA+IG1pblByZWMgJiZcbiAgICAhaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkgJiZcbiAgICAoZWF0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpIHx8IGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3NhdGlzZmllcykpXG4gICkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgxKTtcbiAgICB0c1BhcnNlVHlwZSgpO1xuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gICAgcmVzY2FuX2d0KCk7XG4gICAgcGFyc2VFeHByT3Aoc3RhcnRUb2tlbkluZGV4LCBtaW5QcmVjLCBub0luKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcmVjID0gc3RhdGUudHlwZSAmIFRva2VuVHlwZS5QUkVDRURFTkNFX01BU0s7XG4gIGlmIChwcmVjID4gMCAmJiAoIW5vSW4gfHwgIW1hdGNoKHR0Ll9pbikpKSB7XG4gICAgaWYgKHByZWMgPiBtaW5QcmVjKSB7XG4gICAgICBjb25zdCBvcCA9IHN0YXRlLnR5cGU7XG4gICAgICBuZXh0KCk7XG4gICAgICBpZiAob3AgPT09IHR0Lm51bGxpc2hDb2FsZXNjaW5nKSB7XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0ubnVsbGlzaFN0YXJ0SW5kZXggPSBzdGFydFRva2VuSW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJoc1N0YXJ0VG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgICBwYXJzZU1heWJlVW5hcnkoKTtcbiAgICAgIC8vIEV4dGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBvZiB0aGlzIG9wZXJhdG9yIGlmIHBvc3NpYmxlLlxuICAgICAgcGFyc2VFeHByT3AocmhzU3RhcnRUb2tlbkluZGV4LCBvcCAmIFRva2VuVHlwZS5JU19SSUdIVF9BU1NPQ0lBVElWRSA/IHByZWMgLSAxIDogcHJlYywgbm9Jbik7XG4gICAgICBpZiAob3AgPT09IHR0Lm51bGxpc2hDb2FsZXNjaW5nKSB7XG4gICAgICAgIHN0YXRlLnRva2Vuc1tzdGFydFRva2VuSW5kZXhdLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0cysrO1xuICAgICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLm51bU51bGxpc2hDb2FsZXNjZUVuZHMrKztcbiAgICAgIH1cbiAgICAgIC8vIENvbnRpbnVlIHdpdGggYW55IGZ1dHVyZSBvcGVyYXRvciBob2xkaW5nIHRoaXMgZXhwcmVzc2lvbiBhcyB0aGUgbGVmdCBvcGVyYW5kLlxuICAgICAgcGFyc2VFeHByT3Aoc3RhcnRUb2tlbkluZGV4LCBtaW5QcmVjLCBub0luKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFyc2UgdW5hcnkgb3BlcmF0b3JzLCBib3RoIHByZWZpeCBhbmQgcG9zdGZpeC5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBhcnJvdyBmdW5jdGlvbi5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1heWJlVW5hcnkoKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkICYmICFpc0pTWEVuYWJsZWQgJiYgZWF0KHR0Lmxlc3NUaGFuKSkge1xuICAgIHRzUGFyc2VUeXBlQXNzZXJ0aW9uKCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChcbiAgICBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX21vZHVsZSkgJiZcbiAgICBsb29rYWhlYWRDaGFyQ29kZSgpID09PSBjaGFyQ29kZXMubGVmdEN1cmx5QnJhY2UgJiZcbiAgICAhaGFzRm9sbG93aW5nTGluZUJyZWFrKClcbiAgKSB7XG4gICAgcGFyc2VNb2R1bGVFeHByZXNzaW9uKCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChzdGF0ZS50eXBlICYgVG9rZW5UeXBlLklTX1BSRUZJWCkge1xuICAgIG5leHQoKTtcbiAgICBwYXJzZU1heWJlVW5hcnkoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlRXhwclN1YnNjcmlwdHMoKTtcbiAgaWYgKHdhc0Fycm93KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgd2hpbGUgKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfUE9TVEZJWCAmJiAhY2FuSW5zZXJ0U2VtaWNvbG9uKCkpIHtcbiAgICAvLyBUaGUgdG9rZW5pemVyIGNhbGxzIGV2ZXJ5dGhpbmcgYSBwcmVpbmNyZW1lbnQsIHNvIG1ha2UgaXQgYSBwb3N0aW5jcmVtZW50IHdoZW5cbiAgICAvLyB3ZSBzZWUgaXQgaW4gdGhhdCBjb250ZXh0LlxuICAgIGlmIChzdGF0ZS50eXBlID09PSB0dC5wcmVJbmNEZWMpIHtcbiAgICAgIHN0YXRlLnR5cGUgPSB0dC5wb3N0SW5jRGVjO1xuICAgIH1cbiAgICBuZXh0KCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBQYXJzZSBjYWxsLCBkb3QsIGFuZCBgW11gLXN1YnNjcmlwdCBleHByZXNzaW9ucy5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBhcnJvdyBmdW5jdGlvbi5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUV4cHJTdWJzY3JpcHRzKCkge1xuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlRXhwckF0b20oKTtcbiAgaWYgKHdhc0Fycm93KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCk7XG4gIC8vIElmIHRoZXJlIHdhcyBhbnkgb3B0aW9uYWwgY2hhaW4gb3BlcmF0aW9uLCB0aGUgc3RhcnQgdG9rZW4gd291bGQgYmUgbWFya2VkXG4gIC8vIGFzIHN1Y2gsIHNvIGFsc28gbWFyayB0aGUgZW5kIG5vdy5cbiAgaWYgKHN0YXRlLnRva2Vucy5sZW5ndGggPiBzdGFydFRva2VuSW5kZXggJiYgc3RhdGUudG9rZW5zW3N0YXJ0VG9rZW5JbmRleF0uaXNPcHRpb25hbENoYWluU3RhcnQpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlzT3B0aW9uYWxDaGFpbkVuZCA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwYXJzZVN1YnNjcmlwdHMoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzID0gZmFsc2UpIHtcbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscyk7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlU3Vic2NyaXB0cyhzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYXNlUGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscyA9IGZhbHNlKSB7XG4gIGNvbnN0IHN0b3BTdGF0ZSA9IG5ldyBTdG9wU3RhdGUoZmFsc2UpO1xuICBkbyB7XG4gICAgcGFyc2VTdWJzY3JpcHQoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzLCBzdG9wU3RhdGUpO1xuICB9IHdoaWxlICghc3RvcFN0YXRlLnN0b3AgJiYgIXN0YXRlLmVycm9yKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VTdWJzY3JpcHQoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzLCBzdG9wU3RhdGUpIHtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0c1BhcnNlU3Vic2NyaXB0KHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbiAgfSBlbHNlIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgZmxvd1BhcnNlU3Vic2NyaXB0KHN0YXJ0VG9rZW5JbmRleCwgbm9DYWxscywgc3RvcFN0YXRlKTtcbiAgfSBlbHNlIHtcbiAgICBiYXNlUGFyc2VTdWJzY3JpcHQoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzLCBzdG9wU3RhdGUpO1xuICB9XG59XG5cbi8qKiBTZXQgJ3N0YXRlLnN0b3AgPSB0cnVlJyB0byBpbmRpY2F0ZSB0aGF0IHdlIHNob3VsZCBzdG9wIHBhcnNpbmcgc3Vic2NyaXB0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiYXNlUGFyc2VTdWJzY3JpcHQoXG4gIHN0YXJ0VG9rZW5JbmRleCxcbiAgbm9DYWxscyxcbiAgc3RvcFN0YXRlLFxuKSB7XG4gIGlmICghbm9DYWxscyAmJiBlYXQodHQuZG91YmxlQ29sb24pKSB7XG4gICAgcGFyc2VOb0NhbGxFeHByKCk7XG4gICAgc3RvcFN0YXRlLnN0b3AgPSB0cnVlO1xuICAgIC8vIFByb3BhZ2F0ZSBzdGFydFRva2VuSW5kZXggc28gdGhhdCBgYTo6Yj8uKClgIHdpbGwga2VlcCBgYWAgYXMgdGhlIGZpcnN0IHRva2VuLiBXZSBtYXkgd2FudFxuICAgIC8vIHRvIHJldmlzaXQgdGhpcyBpbiB0aGUgZnV0dXJlIHdoZW4gZnVsbHkgc3VwcG9ydGluZyBiaW5kIHN5bnRheC5cbiAgICBwYXJzZVN1YnNjcmlwdHMoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzKTtcbiAgfSBlbHNlIGlmIChtYXRjaCh0dC5xdWVzdGlvbkRvdCkpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhcnRUb2tlbkluZGV4XS5pc09wdGlvbmFsQ2hhaW5TdGFydCA9IHRydWU7XG4gICAgaWYgKG5vQ2FsbHMgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5wYXJlbkwpIHtcbiAgICAgIHN0b3BTdGF0ZS5zdG9wID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbmV4dCgpO1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uc3Vic2NyaXB0U3RhcnRJbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcblxuICAgIGlmIChlYXQodHQuYnJhY2tldEwpKSB7XG4gICAgICBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gICAgfSBlbHNlIGlmIChlYXQodHQucGFyZW5MKSkge1xuICAgICAgcGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZU1heWJlUHJpdmF0ZU5hbWUoKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZWF0KHR0LmRvdCkpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnN1YnNjcmlwdFN0YXJ0SW5kZXggPSBzdGFydFRva2VuSW5kZXg7XG4gICAgcGFyc2VNYXliZVByaXZhdGVOYW1lKCk7XG4gIH0gZWxzZSBpZiAoZWF0KHR0LmJyYWNrZXRMKSkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uc3Vic2NyaXB0U3RhcnRJbmRleCA9IHN0YXJ0VG9rZW5JbmRleDtcbiAgICBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICBleHBlY3QodHQuYnJhY2tldFIpO1xuICB9IGVsc2UgaWYgKCFub0NhbGxzICYmIG1hdGNoKHR0LnBhcmVuTCkpIHtcbiAgICBpZiAoYXRQb3NzaWJsZUFzeW5jKCkpIHtcbiAgICAgIC8vIFdlIHNlZSBcImFzeW5jXCIsIGJ1dCBpdCdzIHBvc3NpYmxlIGl0J3MgYSB1c2FnZSBvZiB0aGUgbmFtZSBcImFzeW5jXCIuIFBhcnNlIGFzIGlmIGl0J3MgYVxuICAgICAgLy8gZnVuY3Rpb24gY2FsbCwgYW5kIGlmIHdlIHNlZSBhbiBhcnJvdyBsYXRlciwgYmFja3RyYWNrIGFuZCByZS1wYXJzZSBhcyBhIHBhcmFtZXRlciBsaXN0LlxuICAgICAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICAgICAgY29uc3QgYXN5bmNTdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgbmV4dCgpO1xuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5zdWJzY3JpcHRTdGFydEluZGV4ID0gc3RhcnRUb2tlbkluZGV4O1xuXG4gICAgICBjb25zdCBjYWxsQ29udGV4dElkID0gZ2V0TmV4dENvbnRleHRJZCgpO1xuXG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNhbGxDb250ZXh0SWQ7XG4gICAgICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCk7XG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNhbGxDb250ZXh0SWQ7XG5cbiAgICAgIGlmIChzaG91bGRQYXJzZUFzeW5jQXJyb3coKSkge1xuICAgICAgICAvLyBXZSBoaXQgYW4gYXJyb3csIHNvIGJhY2t0cmFjayBhbmQgc3RhcnQgYWdhaW4gcGFyc2luZyBmdW5jdGlvbiBwYXJhbWV0ZXJzLlxuICAgICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgICAgc3RvcFN0YXRlLnN0b3AgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5zY29wZURlcHRoKys7XG5cbiAgICAgICAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICAgICAgICBwYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oYXN5bmNTdGFydFRva2VuSW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0KCk7XG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnN1YnNjcmlwdFN0YXJ0SW5kZXggPSBzdGFydFRva2VuSW5kZXg7XG4gICAgICBjb25zdCBjYWxsQ29udGV4dElkID0gZ2V0TmV4dENvbnRleHRJZCgpO1xuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjYWxsQ29udGV4dElkO1xuICAgICAgcGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygpO1xuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjYWxsQ29udGV4dElkO1xuICAgIH1cbiAgfSBlbHNlIGlmIChtYXRjaCh0dC5iYWNrUXVvdGUpKSB7XG4gICAgLy8gVGFnZ2VkIHRlbXBsYXRlIGV4cHJlc3Npb24uXG4gICAgcGFyc2VUZW1wbGF0ZSgpO1xuICB9IGVsc2Uge1xuICAgIHN0b3BTdGF0ZS5zdG9wID0gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXRQb3NzaWJsZUFzeW5jKCkge1xuICAvLyBUaGlzIHdhcyBtYWRlIGxlc3Mgc3RyaWN0IHRoYW4gdGhlIG9yaWdpbmFsIHZlcnNpb24gdG8gYXZvaWQgcGFzc2luZyBhcm91bmQgbm9kZXMsIGJ1dCBpdFxuICAvLyBzaG91bGQgYmUgc2FmZSB0byBoYXZlIHJhcmUgZmFsc2UgcG9zaXRpdmVzIGhlcmUuXG4gIHJldHVybiAoXG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jICYmXG4gICAgIWNhbkluc2VydFNlbWljb2xvbigpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCkge1xuICBsZXQgZmlyc3QgPSB0cnVlO1xuICB3aGlsZSAoIWVhdCh0dC5wYXJlblIpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwZWN0KHR0LmNvbW1hKTtcbiAgICAgIGlmIChlYXQodHQucGFyZW5SKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJzZUV4cHJMaXN0SXRlbShmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkUGFyc2VBc3luY0Fycm93KCkge1xuICByZXR1cm4gbWF0Y2godHQuY29sb24pIHx8IG1hdGNoKHR0LmFycm93KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uKHN0YXJ0VG9rZW5JbmRleCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzU3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oKTtcbiAgfSBlbHNlIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgZmxvd1N0YXJ0UGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uKCk7XG4gIH1cbiAgZXhwZWN0KHR0LmFycm93KTtcbiAgcGFyc2VBcnJvd0V4cHJlc3Npb24oc3RhcnRUb2tlbkluZGV4KTtcbn1cblxuLy8gUGFyc2UgYSBuby1jYWxsIGV4cHJlc3Npb24gKGxpa2UgYXJndW1lbnQgb2YgYG5ld2Agb3IgYDo6YCBvcGVyYXRvcnMpLlxuXG5mdW5jdGlvbiBwYXJzZU5vQ2FsbEV4cHIoKSB7XG4gIGNvbnN0IHN0YXJ0VG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHBhcnNlRXhwckF0b20oKTtcbiAgcGFyc2VTdWJzY3JpcHRzKHN0YXJ0VG9rZW5JbmRleCwgdHJ1ZSk7XG59XG5cbi8vIFBhcnNlIGFuIGF0b21pYyBleHByZXNzaW9uIFx1MjAxNCBlaXRoZXIgYSBzaW5nbGUgdG9rZW4gdGhhdCBpcyBhblxuLy8gZXhwcmVzc2lvbiwgYW4gZXhwcmVzc2lvbiBzdGFydGVkIGJ5IGEga2V5d29yZCBsaWtlIGBmdW5jdGlvbmAgb3Jcbi8vIGBuZXdgLCBvciBhbiBleHByZXNzaW9uIHdyYXBwZWQgaW4gcHVuY3R1YXRpb24gbGlrZSBgKClgLCBgW11gLFxuLy8gb3IgYHt9YC5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFyc2VkIGV4cHJlc3Npb24gd2FzIGFuIGFycm93IGZ1bmN0aW9uLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXhwckF0b20oKSB7XG4gIGlmIChlYXQodHQubW9kdWxvKSkge1xuICAgIC8vIFY4IGludHJpbnNpYyBleHByZXNzaW9uLiBKdXN0IHBhcnNlIHRoZSBpZGVudGlmaWVyLCBhbmQgdGhlIGZ1bmN0aW9uIGludm9jYXRpb24gaXMgcGFyc2VkXG4gICAgLy8gbmF0dXJhbGx5LlxuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChtYXRjaCh0dC5qc3hUZXh0KSB8fCBtYXRjaCh0dC5qc3hFbXB0eVRleHQpKSB7XG4gICAgcGFyc2VMaXRlcmFsKCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2UgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSAmJiBpc0pTWEVuYWJsZWQpIHtcbiAgICBzdGF0ZS50eXBlID0gdHQuanN4VGFnU3RhcnQ7XG4gICAganN4UGFyc2VFbGVtZW50KCk7XG4gICAgbmV4dCgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNhbkJlQXJyb3cgPSBzdGF0ZS5wb3RlbnRpYWxBcnJvd0F0ID09PSBzdGF0ZS5zdGFydDtcbiAgc3dpdGNoIChzdGF0ZS50eXBlKSB7XG4gICAgY2FzZSB0dC5zbGFzaDpcbiAgICBjYXNlIHR0LmFzc2lnbjpcbiAgICAgIHJldG9rZW5pemVTbGFzaEFzUmVnZXgoKTtcbiAgICAvLyBGYWxsIHRocm91Z2guXG5cbiAgICBjYXNlIHR0Ll9zdXBlcjpcbiAgICBjYXNlIHR0Ll90aGlzOlxuICAgIGNhc2UgdHQucmVnZXhwOlxuICAgIGNhc2UgdHQubnVtOlxuICAgIGNhc2UgdHQuYmlnaW50OlxuICAgIGNhc2UgdHQuZGVjaW1hbDpcbiAgICBjYXNlIHR0LnN0cmluZzpcbiAgICBjYXNlIHR0Ll9udWxsOlxuICAgIGNhc2UgdHQuX3RydWU6XG4gICAgY2FzZSB0dC5fZmFsc2U6XG4gICAgICBuZXh0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjYXNlIHR0Ll9pbXBvcnQ6XG4gICAgICBuZXh0KCk7XG4gICAgICBpZiAobWF0Y2godHQuZG90KSkge1xuICAgICAgICAvLyBpbXBvcnQubWV0YVxuICAgICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5uYW1lO1xuICAgICAgICBuZXh0KCk7XG4gICAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSB0dC5uYW1lOiB7XG4gICAgICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgY29uc3QgZnVuY3Rpb25TdGFydCA9IHN0YXRlLnN0YXJ0O1xuICAgICAgY29uc3QgY29udGV4dHVhbEtleXdvcmQgPSBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZDtcbiAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgICAgaWYgKGNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fYXdhaXQpIHtcbiAgICAgICAgcGFyc2VBd2FpdCgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBjb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jICYmXG4gICAgICAgIG1hdGNoKHR0Ll9mdW5jdGlvbikgJiZcbiAgICAgICAgIWNhbkluc2VydFNlbWljb2xvbigpXG4gICAgICApIHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgICBwYXJzZUZ1bmN0aW9uKGZ1bmN0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgY2FuQmVBcnJvdyAmJlxuICAgICAgICBjb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jICYmXG4gICAgICAgICFjYW5JbnNlcnRTZW1pY29sb24oKSAmJlxuICAgICAgICBtYXRjaCh0dC5uYW1lKVxuICAgICAgKSB7XG4gICAgICAgIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgICAgICAgcGFyc2VCaW5kaW5nSWRlbnRpZmllcihmYWxzZSk7XG4gICAgICAgIGV4cGVjdCh0dC5hcnJvdyk7XG4gICAgICAgIC8vIGxldCBmb28gPSBhc3luYyBiYXIgPT4ge307XG4gICAgICAgIHBhcnNlQXJyb3dFeHByZXNzaW9uKHN0YXJ0VG9rZW5JbmRleCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChtYXRjaCh0dC5fZG8pICYmICFjYW5JbnNlcnRTZW1pY29sb24oKSkge1xuICAgICAgICBuZXh0KCk7XG4gICAgICAgIHBhcnNlQmxvY2soKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2FuQmVBcnJvdyAmJiAhY2FuSW5zZXJ0U2VtaWNvbG9uKCkgJiYgbWF0Y2godHQuYXJyb3cpKSB7XG4gICAgICAgIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgICAgICAgbWFya1ByaW9yQmluZGluZ0lkZW50aWZpZXIoZmFsc2UpO1xuICAgICAgICBleHBlY3QodHQuYXJyb3cpO1xuICAgICAgICBwYXJzZUFycm93RXhwcmVzc2lvbihzdGFydFRva2VuSW5kZXgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLkFjY2VzcztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjYXNlIHR0Ll9kbzoge1xuICAgICAgbmV4dCgpO1xuICAgICAgcGFyc2VCbG9jaygpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNhc2UgdHQucGFyZW5MOiB7XG4gICAgICBjb25zdCB3YXNBcnJvdyA9IHBhcnNlUGFyZW5BbmREaXN0aW5ndWlzaEV4cHJlc3Npb24oY2FuQmVBcnJvdyk7XG4gICAgICByZXR1cm4gd2FzQXJyb3c7XG4gICAgfVxuXG4gICAgY2FzZSB0dC5icmFja2V0TDpcbiAgICAgIG5leHQoKTtcbiAgICAgIHBhcnNlRXhwckxpc3QodHQuYnJhY2tldFIsIHRydWUpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSB0dC5icmFjZUw6XG4gICAgICBwYXJzZU9iaihmYWxzZSwgZmFsc2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSB0dC5fZnVuY3Rpb246XG4gICAgICBwYXJzZUZ1bmN0aW9uRXhwcmVzc2lvbigpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSB0dC5hdDpcbiAgICAgIHBhcnNlRGVjb3JhdG9ycygpO1xuICAgIC8vIEZhbGwgdGhyb3VnaC5cblxuICAgIGNhc2UgdHQuX2NsYXNzOlxuICAgICAgcGFyc2VDbGFzcyhmYWxzZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjYXNlIHR0Ll9uZXc6XG4gICAgICBwYXJzZU5ldygpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgY2FzZSB0dC5iYWNrUXVvdGU6XG4gICAgICBwYXJzZVRlbXBsYXRlKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjYXNlIHR0LmRvdWJsZUNvbG9uOiB7XG4gICAgICBuZXh0KCk7XG4gICAgICBwYXJzZU5vQ2FsbEV4cHIoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjYXNlIHR0Lmhhc2g6IHtcbiAgICAgIGNvbnN0IGNvZGUgPSBsb29rYWhlYWRDaGFyQ29kZSgpO1xuICAgICAgaWYgKElTX0lERU5USUZJRVJfU1RBUlRbY29kZV0gfHwgY29kZSA9PT0gY2hhckNvZGVzLmJhY2tzbGFzaCkge1xuICAgICAgICBwYXJzZU1heWJlUHJpdmF0ZU5hbWUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIC8vIFNtYXJ0IHBpcGVsaW5lIHRvcGljIHJlZmVyZW5jZS5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdW5leHBlY3RlZCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWF5YmVQcml2YXRlTmFtZSgpIHtcbiAgZWF0KHR0Lmhhc2gpO1xuICBwYXJzZUlkZW50aWZpZXIoKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkV4cHJlc3Npb24oKSB7XG4gIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBzdGF0ZS5zdGFydDtcbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIGlmIChlYXQodHQuZG90KSkge1xuICAgIC8vIGZ1bmN0aW9uLnNlbnRcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxuICBwYXJzZUZ1bmN0aW9uKGZ1bmN0aW9uU3RhcnQsIGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGl0ZXJhbCgpIHtcbiAgbmV4dCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXJlbkV4cHJlc3Npb24oKSB7XG4gIGV4cGVjdCh0dC5wYXJlbkwpO1xuICBwYXJzZUV4cHJlc3Npb24oKTtcbiAgZXhwZWN0KHR0LnBhcmVuUik7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBhcnJvdyBleHByZXNzaW9uLlxuZnVuY3Rpb24gcGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbihjYW5CZUFycm93KSB7XG4gIC8vIEFzc3VtZSB0aGlzIGlzIGEgbm9ybWFsIHBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiwgYnV0IGlmIHdlIHNlZSBhbiBhcnJvdywgd2UnbGwgYmFpbCBhbmRcbiAgLy8gc3RhcnQgb3ZlciBhcyBhIHBhcmFtZXRlciBsaXN0LlxuICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG5cbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgZXhwZWN0KHR0LnBhcmVuTCk7XG5cbiAgbGV0IGZpcnN0ID0gdHJ1ZTtcblxuICB3aGlsZSAoIW1hdGNoKHR0LnBhcmVuUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgICAgaWYgKG1hdGNoKHR0LnBhcmVuUikpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKHR0LmVsbGlwc2lzKSkge1xuICAgICAgcGFyc2VSZXN0KGZhbHNlIC8qIGlzQmxvY2tTY29wZSAqLyk7XG4gICAgICBwYXJzZVBhcmVuSXRlbSgpO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlTWF5YmVBc3NpZ24oZmFsc2UsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGV4cGVjdCh0dC5wYXJlblIpO1xuXG4gIGlmIChjYW5CZUFycm93ICYmIHNob3VsZFBhcnNlQXJyb3coKSkge1xuICAgIGNvbnN0IHdhc0Fycm93ID0gcGFyc2VBcnJvdygpO1xuICAgIGlmICh3YXNBcnJvdykge1xuICAgICAgLy8gSXQgd2FzIGFuIGFycm93IGZ1bmN0aW9uIHRoaXMgd2hvbGUgdGltZSwgc28gc3RhcnQgb3ZlciBhbmQgcGFyc2UgaXQgYXMgcGFyYW1zIHNvIHRoYXQgd2VcbiAgICAgIC8vIGdldCBwcm9wZXIgdG9rZW4gYW5ub3RhdGlvbnMuXG4gICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgICAgIC8vIERvbid0IHNwZWNpZnkgYSBjb250ZXh0IElEIGJlY2F1c2UgYXJyb3cgZnVuY3Rpb25zIGRvbid0IG5lZWQgYSBjb250ZXh0IElELlxuICAgICAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICAgICAgcGFyc2VBcnJvdygpO1xuICAgICAgcGFyc2VBcnJvd0V4cHJlc3Npb24oc3RhcnRUb2tlbkluZGV4KTtcbiAgICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgICAvLyBOZXZlcm1pbmQhIFRoaXMgbXVzdCBoYXZlIGJlZW4gc29tZXRoaW5nIHRoYXQgbG9va3MgdmVyeSBtdWNoIGxpa2UgYW5cbiAgICAgICAgLy8gYXJyb3cgZnVuY3Rpb24gYnV0IHdoZXJlIGl0cyBcInBhcmFtZXRlciBsaXN0XCIgaXNuJ3QgYWN0dWFsbHkgYSB2YWxpZFxuICAgICAgICAvLyBwYXJhbWV0ZXIgbGlzdC4gRm9yY2Ugbm9uLWFycm93IHBhcnNpbmcuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYWxhbmdwaWVyY2Uvc3VjcmFzZS9pc3N1ZXMvNjY2IGZvciBhbiBleGFtcGxlLlxuICAgICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgICAgcGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbihmYWxzZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkUGFyc2VBcnJvdygpIHtcbiAgcmV0dXJuIG1hdGNoKHR0LmNvbG9uKSB8fCAhY2FuSW5zZXJ0U2VtaWNvbG9uKCk7XG59XG5cbi8vIFJldHVybnMgd2hldGhlciB0aGVyZSB3YXMgYW4gYXJyb3cgdG9rZW4uXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBcnJvdygpIHtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICByZXR1cm4gdHNQYXJzZUFycm93KCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIHJldHVybiBmbG93UGFyc2VBcnJvdygpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBlYXQodHQuYXJyb3cpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFyZW5JdGVtKCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCB8fCBpc0Zsb3dFbmFibGVkKSB7XG4gICAgdHlwZWRQYXJzZVBhcmVuSXRlbSgpO1xuICB9XG59XG5cbi8vIE5ldydzIHByZWNlZGVuY2UgaXMgc2xpZ2h0bHkgdHJpY2t5LiBJdCBtdXN0IGFsbG93IGl0cyBhcmd1bWVudCB0b1xuLy8gYmUgYSBgW11gIG9yIGRvdCBzdWJzY3JpcHQgZXhwcmVzc2lvbiwgYnV0IG5vdCBhIGNhbGwgXHUyMDE0IGF0IGxlYXN0LFxuLy8gbm90IHdpdGhvdXQgd3JhcHBpbmcgaXQgaW4gcGFyZW50aGVzZXMuIFRodXMsIGl0IHVzZXMgdGhlIG5vQ2FsbHNcbi8vIGFyZ3VtZW50IHRvIHBhcnNlU3Vic2NyaXB0cyB0byBwcmV2ZW50IGl0IGZyb20gY29uc3VtaW5nIHRoZVxuLy8gYXJndW1lbnQgbGlzdC5cbmZ1bmN0aW9uIHBhcnNlTmV3KCkge1xuICBleHBlY3QodHQuX25ldyk7XG4gIGlmIChlYXQodHQuZG90KSkge1xuICAgIC8vIG5ldy50YXJnZXRcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyc2VOZXdDYWxsZWUoKTtcbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93U3RhcnRQYXJzZU5ld0FyZ3VtZW50cygpO1xuICB9XG4gIGlmIChlYXQodHQucGFyZW5MKSkge1xuICAgIHBhcnNlRXhwckxpc3QodHQucGFyZW5SKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZU5ld0NhbGxlZSgpIHtcbiAgcGFyc2VOb0NhbGxFeHByKCk7XG4gIGVhdCh0dC5xdWVzdGlvbkRvdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRlbXBsYXRlKCkge1xuICAvLyBGaW5pc2ggYCwgcmVhZCBxdWFzaVxuICBuZXh0VGVtcGxhdGVUb2tlbigpO1xuICAvLyBGaW5pc2ggcXVhc2ksIHJlYWQgJHtcbiAgbmV4dFRlbXBsYXRlVG9rZW4oKTtcbiAgd2hpbGUgKCFtYXRjaCh0dC5iYWNrUXVvdGUpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIGV4cGVjdCh0dC5kb2xsYXJCcmFjZUwpO1xuICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgIC8vIEZpbmlzaCB9LCByZWFkIHF1YXNpXG4gICAgbmV4dFRlbXBsYXRlVG9rZW4oKTtcbiAgICAvLyBGaW5pc2ggcXVhc2ksIHJlYWQgZWl0aGVyICR7IG9yIGBcbiAgICBuZXh0VGVtcGxhdGVUb2tlbigpO1xuICB9XG4gIG5leHQoKTtcbn1cblxuLy8gUGFyc2UgYW4gb2JqZWN0IGxpdGVyYWwgb3IgYmluZGluZyBwYXR0ZXJuLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlT2JqKGlzUGF0dGVybiwgaXNCbG9ja1Njb3BlKSB7XG4gIC8vIEF0dGFjaCBhIGNvbnRleHQgSUQgdG8gdGhlIG9iamVjdCBvcGVuIGFuZCBjbG9zZSBicmFjZSBhbmQgZWFjaCBvYmplY3Qga2V5LlxuICBjb25zdCBjb250ZXh0SWQgPSBnZXROZXh0Q29udGV4dElkKCk7XG4gIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgbmV4dCgpO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcblxuICB3aGlsZSAoIWVhdCh0dC5icmFjZVIpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwZWN0KHR0LmNvbW1hKTtcbiAgICAgIGlmIChlYXQodHQuYnJhY2VSKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgaXNHZW5lcmF0b3IgPSBmYWxzZTtcbiAgICBpZiAobWF0Y2godHQuZWxsaXBzaXMpKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgICAgIHBhcnNlU3ByZWFkKCk7XG4gICAgICBpZiAoaXNQYXR0ZXJuKSB7XG4gICAgICAgIC8vIE1hcmsgcm9sZSB3aGVuIHRoZSBvbmx5IHRoaW5nIGJlaW5nIHNwcmVhZCBvdmVyIGlzIGFuIGlkZW50aWZpZXIuXG4gICAgICAgIGlmIChzdGF0ZS50b2tlbnMubGVuZ3RoID09PSBwcmV2aW91c0luZGV4ICsgMikge1xuICAgICAgICAgIG1hcmtQcmlvckJpbmRpbmdJZGVudGlmaWVyKGlzQmxvY2tTY29wZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVhdCh0dC5icmFjZVIpKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICghaXNQYXR0ZXJuKSB7XG4gICAgICBpc0dlbmVyYXRvciA9IGVhdCh0dC5zdGFyKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzUGF0dGVybiAmJiBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSkge1xuICAgICAgaWYgKGlzR2VuZXJhdG9yKSB1bmV4cGVjdGVkKCk7XG5cbiAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgICAgaWYgKFxuICAgICAgICBtYXRjaCh0dC5jb2xvbikgfHxcbiAgICAgICAgbWF0Y2godHQucGFyZW5MKSB8fFxuICAgICAgICBtYXRjaCh0dC5icmFjZVIpIHx8XG4gICAgICAgIG1hdGNoKHR0LmVxKSB8fFxuICAgICAgICBtYXRjaCh0dC5jb21tYSlcbiAgICAgICkge1xuICAgICAgICAvLyBUaGlzIGlzIGEga2V5IGNhbGxlZCBcImFzeW5jXCIgcmF0aGVyIHRoYW4gYW4gYXN5bmMgZnVuY3Rpb24uXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobWF0Y2godHQuc3RhcikpIHtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgaXNHZW5lcmF0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlUHJvcGVydHlOYW1lKGNvbnRleHRJZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlUHJvcGVydHlOYW1lKGNvbnRleHRJZCk7XG4gICAgfVxuXG4gICAgcGFyc2VPYmpQcm9wVmFsdWUoaXNQYXR0ZXJuLCBpc0Jsb2NrU2NvcGUsIGNvbnRleHRJZCk7XG4gIH1cblxuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbn1cblxuZnVuY3Rpb24gaXNHZXR0ZXJPclNldHRlck1ldGhvZChpc1BhdHRlcm4pIHtcbiAgLy8gV2UgZ28gb2ZmIG9mIHRoZSBuZXh0IGFuZCBkb24ndCBib3RoZXIgY2hlY2tpbmcgaWYgdGhlIG5vZGUga2V5IGlzIGFjdHVhbGx5IFwiZ2V0XCIgb3IgXCJzZXRcIi5cbiAgLy8gVGhpcyBsZXRzIHVzIGF2b2lkIGdlbmVyYXRpbmcgYSBub2RlLCBhbmQgc2hvdWxkIG9ubHkgbWFrZSB0aGUgdmFsaWRhdGlvbiB3b3JzZS5cbiAgcmV0dXJuIChcbiAgICAhaXNQYXR0ZXJuICYmXG4gICAgKG1hdGNoKHR0LnN0cmluZykgfHwgLy8gZ2V0IFwic3RyaW5nXCIoKSB7fVxuICAgICAgbWF0Y2godHQubnVtKSB8fCAvLyBnZXQgMSgpIHt9XG4gICAgICBtYXRjaCh0dC5icmFja2V0TCkgfHwgLy8gZ2V0IFtcInN0cmluZ1wiXSgpIHt9XG4gICAgICBtYXRjaCh0dC5uYW1lKSB8fCAvLyBnZXQgZm9vKCkge31cbiAgICAgICEhKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfS0VZV09SRCkpIC8vIGdldCBkZWJ1Z2dlcigpIHt9XG4gICk7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBhIG1ldGhvZC5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0TWV0aG9kKGlzUGF0dGVybiwgb2JqZWN0Q29udGV4dElkKSB7XG4gIC8vIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgbW9kaWZpZXJzIGJlY2F1c2Ugb2JqZWN0IG1ldGhvZHMgY2FuJ3QgaGF2ZSBvcHRpb25hbCBib2RpZXMsIHNvXG4gIC8vIHRoZSBzdGFydCB3aWxsIG5ldmVyIGJlIHVzZWQuXG4gIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBzdGF0ZS5zdGFydDtcbiAgaWYgKG1hdGNoKHR0LnBhcmVuTCkpIHtcbiAgICBpZiAoaXNQYXR0ZXJuKSB1bmV4cGVjdGVkKCk7XG4gICAgcGFyc2VNZXRob2QoZnVuY3Rpb25TdGFydCwgLyogaXNDb25zdHJ1Y3RvciAqLyBmYWxzZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNHZXR0ZXJPclNldHRlck1ldGhvZChpc1BhdHRlcm4pKSB7XG4gICAgcGFyc2VQcm9wZXJ0eU5hbWUob2JqZWN0Q29udGV4dElkKTtcbiAgICBwYXJzZU1ldGhvZChmdW5jdGlvblN0YXJ0LCAvKiBpc0NvbnN0cnVjdG9yICovIGZhbHNlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0UHJvcGVydHkoaXNQYXR0ZXJuLCBpc0Jsb2NrU2NvcGUpIHtcbiAgaWYgKGVhdCh0dC5jb2xvbikpIHtcbiAgICBpZiAoaXNQYXR0ZXJuKSB7XG4gICAgICBwYXJzZU1heWJlRGVmYXVsdChpc0Jsb2NrU2NvcGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZU1heWJlQXNzaWduKGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gU2luY2UgdGhlcmUncyBubyBjb2xvbiwgd2UgYXNzdW1lIHRoaXMgaXMgYW4gb2JqZWN0IHNob3J0aGFuZC5cblxuICAvLyBJZiB3ZSdyZSBpbiBhIGRlc3RydWN0dXJpbmcsIHdlJ3ZlIG5vdyBkaXNjb3ZlcmVkIHRoYXQgdGhlIGtleSB3YXMgYWN0dWFsbHkgYW4gYXNzaWduZWUsIHNvXG4gIC8vIHdlIG5lZWQgdG8gdGFnIGl0IGFzIGEgZGVjbGFyYXRpb24gd2l0aCB0aGUgYXBwcm9wcmlhdGUgc2NvcGUuIE90aGVyd2lzZSwgd2UgbWlnaHQgbmVlZCB0b1xuICAvLyB0cmFuc2Zvcm0gaXQgb24gYWNjZXNzLCBzbyBtYXJrIGl0IGFzIGEgbm9ybWFsIG9iamVjdCBzaG9ydGhhbmQuXG4gIGxldCBpZGVudGlmaWVyUm9sZTtcbiAgaWYgKGlzUGF0dGVybikge1xuICAgIGlmIChzdGF0ZS5zY29wZURlcHRoID09PSAwKSB7XG4gICAgICBpZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZFRvcExldmVsRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmIChpc0Jsb2NrU2NvcGUpIHtcbiAgICAgIGlkZW50aWZpZXJSb2xlID0gSWRlbnRpZmllclJvbGUuT2JqZWN0U2hvcnRoYW5kQmxvY2tTY29wZWREZWNsYXJhdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmRGdW5jdGlvblNjb3BlZERlY2xhcmF0aW9uO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLk9iamVjdFNob3J0aGFuZDtcbiAgfVxuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmlkZW50aWZpZXJSb2xlID0gaWRlbnRpZmllclJvbGU7XG5cbiAgLy8gUmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGtub3cgdGhpcyB0byBiZSBhIHBhdHRlcm4gb3IgaWYgd2UncmUgaW4gYW4gYW1iaWd1b3VzIGNvbnRleHQsIGFsbG93XG4gIC8vIHBhcnNpbmcgYXMgaWYgdGhlcmUncyBhIGRlZmF1bHQgdmFsdWUuXG4gIHBhcnNlTWF5YmVEZWZhdWx0KGlzQmxvY2tTY29wZSwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlT2JqUHJvcFZhbHVlKFxuICBpc1BhdHRlcm4sXG4gIGlzQmxvY2tTY29wZSxcbiAgb2JqZWN0Q29udGV4dElkLFxuKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgdHNTdGFydFBhcnNlT2JqUHJvcFZhbHVlKCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGZsb3dTdGFydFBhcnNlT2JqUHJvcFZhbHVlKCk7XG4gIH1cbiAgY29uc3Qgd2FzTWV0aG9kID0gcGFyc2VPYmplY3RNZXRob2QoaXNQYXR0ZXJuLCBvYmplY3RDb250ZXh0SWQpO1xuICBpZiAoIXdhc01ldGhvZCkge1xuICAgIHBhcnNlT2JqZWN0UHJvcGVydHkoaXNQYXR0ZXJuLCBpc0Jsb2NrU2NvcGUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVByb3BlcnR5TmFtZShvYmplY3RDb250ZXh0SWQpIHtcbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VWYXJpYW5jZSgpO1xuICB9XG4gIGlmIChlYXQodHQuYnJhY2tldEwpKSB7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBvYmplY3RDb250ZXh0SWQ7XG4gICAgcGFyc2VNYXliZUFzc2lnbigpO1xuICAgIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBvYmplY3RDb250ZXh0SWQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG1hdGNoKHR0Lm51bSkgfHwgbWF0Y2godHQuc3RyaW5nKSB8fCBtYXRjaCh0dC5iaWdpbnQpIHx8IG1hdGNoKHR0LmRlY2ltYWwpKSB7XG4gICAgICBwYXJzZUV4cHJBdG9tKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlTWF5YmVQcml2YXRlTmFtZSgpO1xuICAgIH1cblxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5PYmplY3RLZXk7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBvYmplY3RDb250ZXh0SWQ7XG4gIH1cbn1cblxuLy8gUGFyc2Ugb2JqZWN0IG9yIGNsYXNzIG1ldGhvZC5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1ldGhvZChmdW5jdGlvblN0YXJ0LCBpc0NvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IGZ1bmNDb250ZXh0SWQgPSBnZXROZXh0Q29udGV4dElkKCk7XG5cbiAgc3RhdGUuc2NvcGVEZXB0aCsrO1xuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICBjb25zdCBhbGxvd01vZGlmaWVycyA9IGlzQ29uc3RydWN0b3I7IC8vIEZvciBUeXBlU2NyaXB0IHBhcmFtZXRlciBwcm9wZXJ0aWVzXG4gIHBhcnNlRnVuY3Rpb25QYXJhbXMoYWxsb3dNb2RpZmllcnMsIGZ1bmNDb250ZXh0SWQpO1xuICBwYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jdGlvblN0YXJ0LCBmdW5jQ29udGV4dElkKTtcbiAgY29uc3QgZW5kVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHN0YXRlLnNjb3Blcy5wdXNoKG5ldyBTY29wZShzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIHRydWUpKTtcbiAgc3RhdGUuc2NvcGVEZXB0aC0tO1xufVxuXG4vLyBQYXJzZSBhcnJvdyBmdW5jdGlvbiBleHByZXNzaW9uLlxuLy8gSWYgdGhlIHBhcmFtZXRlcnMgYXJlIHByb3ZpZGVkLCB0aGV5IHdpbGwgYmUgY29udmVydGVkIHRvIGFuXG4vLyBhc3NpZ25hYmxlIGxpc3QuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBcnJvd0V4cHJlc3Npb24oc3RhcnRUb2tlbkluZGV4KSB7XG4gIHBhcnNlRnVuY3Rpb25Cb2R5KHRydWUpO1xuICBjb25zdCBlbmRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgc3RhdGUuc2NvcGVzLnB1c2gobmV3IFNjb3BlKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgdHJ1ZSkpO1xuICBzdGF0ZS5zY29wZURlcHRoLS07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jdGlvblN0YXJ0LCBmdW5jQ29udGV4dElkID0gMCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzUGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2goZnVuY3Rpb25TdGFydCwgZnVuY0NvbnRleHRJZCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGZsb3dQYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jQ29udGV4dElkKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZUZ1bmN0aW9uQm9keShmYWxzZSwgZnVuY0NvbnRleHRJZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Cb2R5KGFsbG93RXhwcmVzc2lvbiwgZnVuY0NvbnRleHRJZCA9IDApIHtcbiAgY29uc3QgaXNFeHByZXNzaW9uID0gYWxsb3dFeHByZXNzaW9uICYmICFtYXRjaCh0dC5icmFjZUwpO1xuXG4gIGlmIChpc0V4cHJlc3Npb24pIHtcbiAgICBwYXJzZU1heWJlQXNzaWduKCk7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VCbG9jayh0cnVlIC8qIGlzRnVuY3Rpb25TY29wZSAqLywgZnVuY0NvbnRleHRJZCk7XG4gIH1cbn1cblxuLy8gUGFyc2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMsIGFuZCByZXR1cm5zIHRoZW0gYXNcbi8vIGFuIGFycmF5LiBgY2xvc2VgIGlzIHRoZSB0b2tlbiB0eXBlIHRoYXQgZW5kcyB0aGUgbGlzdCwgYW5kXG4vLyBgYWxsb3dFbXB0eWAgY2FuIGJlIHR1cm5lZCBvbiB0byBhbGxvdyBzdWJzZXF1ZW50IGNvbW1hcyB3aXRoXG4vLyBub3RoaW5nIGluIGJldHdlZW4gdGhlbSB0byBiZSBwYXJzZWQgYXMgYG51bGxgICh3aGljaCBpcyBuZWVkZWRcbi8vIGZvciBhcnJheSBsaXRlcmFscykuXG5cbmZ1bmN0aW9uIHBhcnNlRXhwckxpc3QoY2xvc2UsIGFsbG93RW1wdHkgPSBmYWxzZSkge1xuICBsZXQgZmlyc3QgPSB0cnVlO1xuICB3aGlsZSAoIWVhdChjbG9zZSkgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgICAgaWYgKGVhdChjbG9zZSkpIGJyZWFrO1xuICAgIH1cbiAgICBwYXJzZUV4cHJMaXN0SXRlbShhbGxvd0VtcHR5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUV4cHJMaXN0SXRlbShhbGxvd0VtcHR5KSB7XG4gIGlmIChhbGxvd0VtcHR5ICYmIG1hdGNoKHR0LmNvbW1hKSkge1xuICAgIC8vIEVtcHR5IGl0ZW07IG5vdGhpbmcgbW9yZSB0byBwYXJzZSBmb3IgdGhpcyBpdGVtLlxuICB9IGVsc2UgaWYgKG1hdGNoKHR0LmVsbGlwc2lzKSkge1xuICAgIHBhcnNlU3ByZWFkKCk7XG4gICAgcGFyc2VQYXJlbkl0ZW0oKTtcbiAgfSBlbHNlIGlmIChtYXRjaCh0dC5xdWVzdGlvbikpIHtcbiAgICAvLyBQYXJ0aWFsIGZ1bmN0aW9uIGFwcGxpY2F0aW9uIHByb3Bvc2FsLlxuICAgIG5leHQoKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZU1heWJlQXNzaWduKGZhbHNlLCB0cnVlKTtcbiAgfVxufVxuXG4vLyBQYXJzZSB0aGUgbmV4dCB0b2tlbiBhcyBhbiBpZGVudGlmaWVyLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSWRlbnRpZmllcigpIHtcbiAgbmV4dCgpO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5uYW1lO1xufVxuXG4vLyBQYXJzZXMgYXdhaXQgZXhwcmVzc2lvbiBpbnNpZGUgYXN5bmMgZnVuY3Rpb24uXG5mdW5jdGlvbiBwYXJzZUF3YWl0KCkge1xuICBwYXJzZU1heWJlVW5hcnkoKTtcbn1cblxuLy8gUGFyc2VzIHlpZWxkIGV4cHJlc3Npb24gaW5zaWRlIGdlbmVyYXRvci5cbmZ1bmN0aW9uIHBhcnNlWWllbGQoKSB7XG4gIG5leHQoKTtcbiAgaWYgKCFtYXRjaCh0dC5zZW1pKSAmJiAhY2FuSW5zZXJ0U2VtaWNvbG9uKCkpIHtcbiAgICBlYXQodHQuc3Rhcik7XG4gICAgcGFyc2VNYXliZUFzc2lnbigpO1xuICB9XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWpzLW1vZHVsZS1ibG9ja3NcbmZ1bmN0aW9uIHBhcnNlTW9kdWxlRXhwcmVzc2lvbigpIHtcbiAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fbW9kdWxlKTtcbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG4gIC8vIEZvciBub3csIGp1c3QgY2FsbCBwYXJzZUJsb2NrQm9keSB0byBwYXJzZSB0aGUgYmxvY2suIEluIHRoZSBmdXR1cmUgd2hlbiB3ZVxuICAvLyBpbXBsZW1lbnQgZnVsbCBzdXBwb3J0LCB3ZSdsbCB3YW50IHRvIGVtaXQgc2NvcGVzIGFuZCBwb3NzaWJseSBvdGhlclxuICAvLyBpbmZvcm1hdGlvbi5cbiAgcGFyc2VCbG9ja0JvZHkodHQuYnJhY2VSKTtcbn1cbiIsICIvKiBlc2xpbnQgbWF4LWxlbjogMCAqL1xuXG5pbXBvcnQge1xuICBlYXQsXG4gIGxvb2thaGVhZFR5cGUsXG4gIGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkLFxuICBtYXRjaCxcbiAgbmV4dCxcbiAgcG9wVHlwZUNvbnRleHQsXG4gIHB1c2hUeXBlQ29udGV4dCxcblxufSBmcm9tIFwiLi4vdG9rZW5pemVyL2luZGV4XCI7XG5pbXBvcnQge0NvbnRleHR1YWxLZXl3b3JkfSBmcm9tIFwiLi4vdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSwgVG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vdG9rZW5pemVyL3R5cGVzXCI7XG5pbXBvcnQge2lucHV0LCBzdGF0ZX0gZnJvbSBcIi4uL3RyYXZlcnNlci9iYXNlXCI7XG5pbXBvcnQge1xuICBiYXNlUGFyc2VNYXliZUFzc2lnbixcbiAgYmFzZVBhcnNlU3Vic2NyaXB0LFxuICBiYXNlUGFyc2VTdWJzY3JpcHRzLFxuICBwYXJzZUFycm93LFxuICBwYXJzZUFycm93RXhwcmVzc2lvbixcbiAgcGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cyxcbiAgcGFyc2VFeHByQXRvbSxcbiAgcGFyc2VFeHByZXNzaW9uLFxuICBwYXJzZUZ1bmN0aW9uQm9keSxcbiAgcGFyc2VJZGVudGlmaWVyLFxuICBwYXJzZUxpdGVyYWwsXG5cbn0gZnJvbSBcIi4uL3RyYXZlcnNlci9leHByZXNzaW9uXCI7XG5pbXBvcnQge1xuICBiYXNlUGFyc2VFeHBvcnRTdGFyLFxuICBwYXJzZUV4cG9ydCxcbiAgcGFyc2VFeHBvcnRGcm9tLFxuICBwYXJzZUV4cG9ydFNwZWNpZmllcnMsXG4gIHBhcnNlRnVuY3Rpb25QYXJhbXMsXG4gIHBhcnNlSW1wb3J0LFxuICBwYXJzZVN0YXRlbWVudCxcbn0gZnJvbSBcIi4uL3RyYXZlcnNlci9zdGF0ZW1lbnRcIjtcbmltcG9ydCB7XG4gIGNhbkluc2VydFNlbWljb2xvbixcbiAgZWF0Q29udGV4dHVhbCxcbiAgZXhwZWN0LFxuICBleHBlY3RDb250ZXh0dWFsLFxuICBpc0NvbnRleHR1YWwsXG4gIGlzTG9va2FoZWFkQ29udGV4dHVhbCxcbiAgc2VtaWNvbG9uLFxuICB1bmV4cGVjdGVkLFxufSBmcm9tIFwiLi4vdHJhdmVyc2VyL3V0aWxcIjtcblxuZnVuY3Rpb24gaXNNYXliZURlZmF1bHRJbXBvcnQobG9va2FoZWFkKSB7XG4gIHJldHVybiAoXG4gICAgKGxvb2thaGVhZC50eXBlID09PSB0dC5uYW1lIHx8ICEhKGxvb2thaGVhZC50eXBlICYgVG9rZW5UeXBlLklTX0tFWVdPUkQpKSAmJlxuICAgIGxvb2thaGVhZC5jb250ZXh0dWFsS2V5d29yZCAhPT0gQ29udGV4dHVhbEtleXdvcmQuX2Zyb21cbiAgKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKHRvaykge1xuICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMCk7XG4gIGV4cGVjdCh0b2sgfHwgdHQuY29sb24pO1xuICBmbG93UGFyc2VUeXBlKCk7XG4gIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZVByZWRpY2F0ZSgpIHtcbiAgZXhwZWN0KHR0Lm1vZHVsbyk7XG4gIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2NoZWNrcyk7XG4gIGlmIChlYXQodHQucGFyZW5MKSkge1xuICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgIGV4cGVjdCh0dC5wYXJlblIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZVR5cGVBbmRQcmVkaWNhdGVJbml0aWFsaXNlcigpIHtcbiAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICBleHBlY3QodHQuY29sb24pO1xuICBpZiAobWF0Y2godHQubW9kdWxvKSkge1xuICAgIGZsb3dQYXJzZVByZWRpY2F0ZSgpO1xuICB9IGVsc2Uge1xuICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgICBpZiAobWF0Y2godHQubW9kdWxvKSkge1xuICAgICAgZmxvd1BhcnNlUHJlZGljYXRlKCk7XG4gICAgfVxuICB9XG4gIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmVDbGFzcygpIHtcbiAgbmV4dCgpO1xuICBmbG93UGFyc2VJbnRlcmZhY2Vpc2goLyogaXNDbGFzcyAqLyB0cnVlKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRGVjbGFyZUZ1bmN0aW9uKCkge1xuICBuZXh0KCk7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuXG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgfVxuXG4gIGV4cGVjdCh0dC5wYXJlbkwpO1xuICBmbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbXMoKTtcbiAgZXhwZWN0KHR0LnBhcmVuUik7XG5cbiAgZmxvd1BhcnNlVHlwZUFuZFByZWRpY2F0ZUluaXRpYWxpc2VyKCk7XG5cbiAgc2VtaWNvbG9uKCk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmUoKSB7XG4gIGlmIChtYXRjaCh0dC5fY2xhc3MpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZUNsYXNzKCk7XG4gIH0gZWxzZSBpZiAobWF0Y2godHQuX2Z1bmN0aW9uKSkge1xuICAgIGZsb3dQYXJzZURlY2xhcmVGdW5jdGlvbigpO1xuICB9IGVsc2UgaWYgKG1hdGNoKHR0Ll92YXIpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZVZhcmlhYmxlKCk7XG4gIH0gZWxzZSBpZiAoZWF0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fbW9kdWxlKSkge1xuICAgIGlmIChlYXQodHQuZG90KSkge1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZU1vZHVsZUV4cG9ydHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZU1vZHVsZSgpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZVR5cGVBbGlhcygpO1xuICB9IGVsc2UgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fb3BhcXVlKSkge1xuICAgIGZsb3dQYXJzZURlY2xhcmVPcGFxdWVUeXBlKCk7XG4gIH0gZWxzZSBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZUludGVyZmFjZSgpO1xuICB9IGVsc2UgaWYgKG1hdGNoKHR0Ll9leHBvcnQpKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZURlY2xhcmVWYXJpYWJsZSgpIHtcbiAgbmV4dCgpO1xuICBmbG93UGFyc2VUeXBlQW5ub3RhdGFibGVJZGVudGlmaWVyKCk7XG4gIHNlbWljb2xvbigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlTW9kdWxlKCkge1xuICBpZiAobWF0Y2godHQuc3RyaW5nKSkge1xuICAgIHBhcnNlRXhwckF0b20oKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxuXG4gIGV4cGVjdCh0dC5icmFjZUwpO1xuICB3aGlsZSAoIW1hdGNoKHR0LmJyYWNlUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKG1hdGNoKHR0Ll9pbXBvcnQpKSB7XG4gICAgICBuZXh0KCk7XG4gICAgICBwYXJzZUltcG9ydCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1bmV4cGVjdGVkKCk7XG4gICAgfVxuICB9XG4gIGV4cGVjdCh0dC5icmFjZVIpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb24oKSB7XG4gIGV4cGVjdCh0dC5fZXhwb3J0KTtcblxuICBpZiAoZWF0KHR0Ll9kZWZhdWx0KSkge1xuICAgIGlmIChtYXRjaCh0dC5fZnVuY3Rpb24pIHx8IG1hdGNoKHR0Ll9jbGFzcykpIHtcbiAgICAgIC8vIGRlY2xhcmUgZXhwb3J0IGRlZmF1bHQgY2xhc3MgLi4uXG4gICAgICAvLyBkZWNsYXJlIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIC4uLlxuICAgICAgZmxvd1BhcnNlRGVjbGFyZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBkZWNsYXJlIGV4cG9ydCBkZWZhdWx0IFt0eXBlXTtcbiAgICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgICAgIHNlbWljb2xvbigpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChcbiAgICBtYXRjaCh0dC5fdmFyKSB8fCAvLyBkZWNsYXJlIGV4cG9ydCB2YXIgLi4uXG4gICAgbWF0Y2godHQuX2Z1bmN0aW9uKSB8fCAvLyBkZWNsYXJlIGV4cG9ydCBmdW5jdGlvbiAuLi5cbiAgICBtYXRjaCh0dC5fY2xhc3MpIHx8IC8vIGRlY2xhcmUgZXhwb3J0IGNsYXNzIC4uLlxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fb3BhcXVlKSAvLyBkZWNsYXJlIGV4cG9ydCBvcGFxdWUgLi5cbiAgKSB7XG4gICAgZmxvd1BhcnNlRGVjbGFyZSgpO1xuICB9IGVsc2UgaWYgKFxuICAgIG1hdGNoKHR0LnN0YXIpIHx8IC8vIGRlY2xhcmUgZXhwb3J0ICogZnJvbSAnJ1xuICAgIG1hdGNoKHR0LmJyYWNlTCkgfHwgLy8gZGVjbGFyZSBleHBvcnQge30gLi4uXG4gICAgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpIHx8IC8vIGRlY2xhcmUgZXhwb3J0IGludGVyZmFjZSAuLi5cbiAgICBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpIHx8IC8vIGRlY2xhcmUgZXhwb3J0IHR5cGUgLi4uXG4gICAgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUpIC8vIGRlY2xhcmUgZXhwb3J0IG9wYXF1ZSB0eXBlIC4uLlxuICApIHtcbiAgICBwYXJzZUV4cG9ydCgpO1xuICB9IGVsc2Uge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlTW9kdWxlRXhwb3J0cygpIHtcbiAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZXhwb3J0cyk7XG4gIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIHNlbWljb2xvbigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlVHlwZUFsaWFzKCkge1xuICBuZXh0KCk7XG4gIGZsb3dQYXJzZVR5cGVBbGlhcygpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlT3BhcXVlVHlwZSgpIHtcbiAgbmV4dCgpO1xuICBmbG93UGFyc2VPcGFxdWVUeXBlKHRydWUpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VEZWNsYXJlSW50ZXJmYWNlKCkge1xuICBuZXh0KCk7XG4gIGZsb3dQYXJzZUludGVyZmFjZWlzaCgpO1xufVxuXG4vLyBJbnRlcmZhY2VzXG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUludGVyZmFjZWlzaChpc0NsYXNzID0gZmFsc2UpIHtcbiAgZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoKTtcblxuICBpZiAobWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gIH1cblxuICBpZiAoZWF0KHR0Ll9leHRlbmRzKSkge1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKTtcbiAgICB9IHdoaWxlICghaXNDbGFzcyAmJiBlYXQodHQuY29tbWEpKTtcbiAgfVxuXG4gIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX21peGlucykpIHtcbiAgICBuZXh0KCk7XG4gICAgZG8ge1xuICAgICAgZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpO1xuICAgIH0gd2hpbGUgKGVhdCh0dC5jb21tYSkpO1xuICB9XG5cbiAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5faW1wbGVtZW50cykpIHtcbiAgICBuZXh0KCk7XG4gICAgZG8ge1xuICAgICAgZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpO1xuICAgIH0gd2hpbGUgKGVhdCh0dC5jb21tYSkpO1xuICB9XG5cbiAgZmxvd1BhcnNlT2JqZWN0VHlwZShpc0NsYXNzLCBmYWxzZSwgaXNDbGFzcyk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKSB7XG4gIGZsb3dQYXJzZVF1YWxpZmllZFR5cGVJZGVudGlmaWVyKGZhbHNlKTtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlSW50ZXJmYWNlKCkge1xuICBmbG93UGFyc2VJbnRlcmZhY2Vpc2goKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VUeXBlQWxpYXMoKSB7XG4gIGZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCk7XG5cbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO1xuICB9XG5cbiAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKHR0LmVxKTtcbiAgc2VtaWNvbG9uKCk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9wYXF1ZVR5cGUoZGVjbGFyZSkge1xuICBleHBlY3RDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl90eXBlKTtcbiAgZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoKTtcblxuICBpZiAobWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gIH1cblxuICAvLyBQYXJzZSB0aGUgc3VwZXJ0eXBlXG4gIGlmIChtYXRjaCh0dC5jb2xvbikpIHtcbiAgICBmbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIodHQuY29sb24pO1xuICB9XG5cbiAgaWYgKCFkZWNsYXJlKSB7XG4gICAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKHR0LmVxKTtcbiAgfVxuICBzZW1pY29sb24oKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZVBhcmFtZXRlcigpIHtcbiAgZmxvd1BhcnNlVmFyaWFuY2UoKTtcbiAgZmxvd1BhcnNlVHlwZUFubm90YXRhYmxlSWRlbnRpZmllcigpO1xuXG4gIGlmIChlYXQodHQuZXEpKSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2U6IHRoaXMgY29uZGl0aW9uIGlzIGFscmVhZHkgY2hlY2tlZCBhdCBhbGwgY2FsbCBzaXRlc1xuICBpZiAobWF0Y2godHQubGVzc1RoYW4pIHx8IG1hdGNoKHR0LnR5cGVQYXJhbWV0ZXJTdGFydCkpIHtcbiAgICBuZXh0KCk7XG4gIH0gZWxzZSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG5cbiAgZG8ge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXIoKTtcbiAgICBpZiAoIW1hdGNoKHR0LmdyZWF0ZXJUaGFuKSkge1xuICAgICAgZXhwZWN0KHR0LmNvbW1hKTtcbiAgICB9XG4gIH0gd2hpbGUgKCFtYXRjaCh0dC5ncmVhdGVyVGhhbikgJiYgIXN0YXRlLmVycm9yKTtcbiAgZXhwZWN0KHR0LmdyZWF0ZXJUaGFuKTtcbiAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgZXhwZWN0KHR0Lmxlc3NUaGFuKTtcbiAgd2hpbGUgKCFtYXRjaCh0dC5ncmVhdGVyVGhhbikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgIGlmICghbWF0Y2godHQuZ3JlYXRlclRoYW4pKSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgIH1cbiAgfVxuICBleHBlY3QodHQuZ3JlYXRlclRoYW4pO1xuICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VJbnRlcmZhY2VUeXBlKCkge1xuICBleHBlY3RDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpO1xuICBpZiAoZWF0KHR0Ll9leHRlbmRzKSkge1xuICAgIGRvIHtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZUV4dGVuZHMoKTtcbiAgICB9IHdoaWxlIChlYXQodHQuY29tbWEpKTtcbiAgfVxuICBmbG93UGFyc2VPYmplY3RUeXBlKGZhbHNlLCBmYWxzZSwgZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpIHtcbiAgaWYgKG1hdGNoKHR0Lm51bSkgfHwgbWF0Y2godHQuc3RyaW5nKSkge1xuICAgIHBhcnNlRXhwckF0b20oKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VPYmplY3RUeXBlSW5kZXhlcigpIHtcbiAgLy8gTm90ZTogYnJhY2tldEwgaGFzIGFscmVhZHkgYmVlbiBjb25zdW1lZFxuICBpZiAobG9va2FoZWFkVHlwZSgpID09PSB0dC5jb2xvbikge1xuICAgIGZsb3dQYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICB9XG4gIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VPYmplY3RUeXBlSW50ZXJuYWxTbG90KCkge1xuICAvLyBOb3RlOiBib3RoIGJyYWNrZXRMIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkXG4gIGZsb3dQYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gIGV4cGVjdCh0dC5icmFja2V0Uik7XG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikgfHwgbWF0Y2godHQucGFyZW5MKSkge1xuICAgIGZsb3dQYXJzZU9iamVjdFR5cGVNZXRob2Rpc2goKTtcbiAgfSBlbHNlIHtcbiAgICBlYXQodHQucXVlc3Rpb24pO1xuICAgIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9iamVjdFR5cGVNZXRob2Rpc2goKSB7XG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgfVxuXG4gIGV4cGVjdCh0dC5wYXJlbkwpO1xuICB3aGlsZSAoIW1hdGNoKHR0LnBhcmVuUikgJiYgIW1hdGNoKHR0LmVsbGlwc2lzKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICBmbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbSgpO1xuICAgIGlmICghbWF0Y2godHQucGFyZW5SKSkge1xuICAgICAgZXhwZWN0KHR0LmNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZWF0KHR0LmVsbGlwc2lzKSkge1xuICAgIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtKCk7XG4gIH1cbiAgZXhwZWN0KHR0LnBhcmVuUik7XG4gIGZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VPYmplY3RUeXBlQ2FsbFByb3BlcnR5KCkge1xuICBmbG93UGFyc2VPYmplY3RUeXBlTWV0aG9kaXNoKCk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZU9iamVjdFR5cGUoYWxsb3dTdGF0aWMsIGFsbG93RXhhY3QsIGFsbG93UHJvdG8pIHtcbiAgbGV0IGVuZERlbGltO1xuICBpZiAoYWxsb3dFeGFjdCAmJiBtYXRjaCh0dC5icmFjZUJhckwpKSB7XG4gICAgZXhwZWN0KHR0LmJyYWNlQmFyTCk7XG4gICAgZW5kRGVsaW0gPSB0dC5icmFjZUJhclI7XG4gIH0gZWxzZSB7XG4gICAgZXhwZWN0KHR0LmJyYWNlTCk7XG4gICAgZW5kRGVsaW0gPSB0dC5icmFjZVI7XG4gIH1cblxuICB3aGlsZSAoIW1hdGNoKGVuZERlbGltKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoYWxsb3dQcm90byAmJiBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3Byb3RvKSkge1xuICAgICAgY29uc3QgbG9va2FoZWFkID0gbG9va2FoZWFkVHlwZSgpO1xuICAgICAgaWYgKGxvb2thaGVhZCAhPT0gdHQuY29sb24gJiYgbG9va2FoZWFkICE9PSB0dC5xdWVzdGlvbikge1xuICAgICAgICBuZXh0KCk7XG4gICAgICAgIGFsbG93U3RhdGljID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxvd1N0YXRpYyAmJiBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYykpIHtcbiAgICAgIGNvbnN0IGxvb2thaGVhZCA9IGxvb2thaGVhZFR5cGUoKTtcbiAgICAgIGlmIChsb29rYWhlYWQgIT09IHR0LmNvbG9uICYmIGxvb2thaGVhZCAhPT0gdHQucXVlc3Rpb24pIHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZsb3dQYXJzZVZhcmlhbmNlKCk7XG5cbiAgICBpZiAoZWF0KHR0LmJyYWNrZXRMKSkge1xuICAgICAgaWYgKGVhdCh0dC5icmFja2V0TCkpIHtcbiAgICAgICAgZmxvd1BhcnNlT2JqZWN0VHlwZUludGVybmFsU2xvdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmxvd1BhcnNlT2JqZWN0VHlwZUluZGV4ZXIoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1hdGNoKHR0LnBhcmVuTCkgfHwgbWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlQ2FsbFByb3BlcnR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2dldCkgfHwgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9zZXQpKSB7XG4gICAgICAgIGNvbnN0IGxvb2thaGVhZCA9IGxvb2thaGVhZFR5cGUoKTtcbiAgICAgICAgaWYgKGxvb2thaGVhZCA9PT0gdHQubmFtZSB8fCBsb29rYWhlYWQgPT09IHR0LnN0cmluZyB8fCBsb29rYWhlYWQgPT09IHR0Lm51bSkge1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlUHJvcGVydHkoKTtcbiAgICB9XG5cbiAgICBmbG93T2JqZWN0VHlwZVNlbWljb2xvbigpO1xuICB9XG5cbiAgZXhwZWN0KGVuZERlbGltKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlT2JqZWN0VHlwZVByb3BlcnR5KCkge1xuICBpZiAobWF0Y2godHQuZWxsaXBzaXMpKSB7XG4gICAgZXhwZWN0KHR0LmVsbGlwc2lzKTtcbiAgICBpZiAoIWVhdCh0dC5jb21tYSkpIHtcbiAgICAgIGVhdCh0dC5zZW1pKTtcbiAgICB9XG4gICAgLy8gRXhwbGljaXQgaW5leGFjdCBvYmplY3Qgc3ludGF4LlxuICAgIGlmIChtYXRjaCh0dC5icmFjZVIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZsb3dQYXJzZVR5cGUoKTtcbiAgfSBlbHNlIHtcbiAgICBmbG93UGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgIGlmIChtYXRjaCh0dC5sZXNzVGhhbikgfHwgbWF0Y2godHQucGFyZW5MKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIG1ldGhvZCBwcm9wZXJ0eVxuICAgICAgZmxvd1BhcnNlT2JqZWN0VHlwZU1ldGhvZGlzaCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlYXQodHQucXVlc3Rpb24pO1xuICAgICAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dPYmplY3RUeXBlU2VtaWNvbG9uKCkge1xuICBpZiAoIWVhdCh0dC5zZW1pKSAmJiAhZWF0KHR0LmNvbW1hKSAmJiAhbWF0Y2godHQuYnJhY2VSKSAmJiAhbWF0Y2godHQuYnJhY2VCYXJSKSkge1xuICAgIHVuZXhwZWN0ZWQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VRdWFsaWZpZWRUeXBlSWRlbnRpZmllcihpbml0aWFsSWRBbHJlYWR5UGFyc2VkKSB7XG4gIGlmICghaW5pdGlhbElkQWxyZWFkeVBhcnNlZCkge1xuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICB9XG4gIHdoaWxlIChlYXQodHQuZG90KSkge1xuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUdlbmVyaWNUeXBlKCkge1xuICBmbG93UGFyc2VRdWFsaWZpZWRUeXBlSWRlbnRpZmllcih0cnVlKTtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZW9mVHlwZSgpIHtcbiAgZXhwZWN0KHR0Ll90eXBlb2YpO1xuICBmbG93UGFyc2VQcmltYXJ5VHlwZSgpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VUdXBsZVR5cGUoKSB7XG4gIGV4cGVjdCh0dC5icmFja2V0TCk7XG4gIC8vIFdlIGFsbG93IHRyYWlsaW5nIGNvbW1hc1xuICB3aGlsZSAoc3RhdGUucG9zIDwgaW5wdXQubGVuZ3RoICYmICFtYXRjaCh0dC5icmFja2V0UikpIHtcbiAgICBmbG93UGFyc2VUeXBlKCk7XG4gICAgaWYgKG1hdGNoKHR0LmJyYWNrZXRSKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGV4cGVjdCh0dC5jb21tYSk7XG4gIH1cbiAgZXhwZWN0KHR0LmJyYWNrZXRSKTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKSB7XG4gIGNvbnN0IGxvb2thaGVhZCA9IGxvb2thaGVhZFR5cGUoKTtcbiAgaWYgKGxvb2thaGVhZCA9PT0gdHQuY29sb24gfHwgbG9va2FoZWFkID09PSB0dC5xdWVzdGlvbikge1xuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIGVhdCh0dC5xdWVzdGlvbik7XG4gICAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlVHlwZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtcygpIHtcbiAgd2hpbGUgKCFtYXRjaCh0dC5wYXJlblIpICYmICFtYXRjaCh0dC5lbGxpcHNpcykgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKTtcbiAgICBpZiAoIW1hdGNoKHR0LnBhcmVuUikpIHtcbiAgICAgIGV4cGVjdCh0dC5jb21tYSk7XG4gICAgfVxuICB9XG4gIGlmIChlYXQodHQuZWxsaXBzaXMpKSB7XG4gICAgZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oKTtcbiAgfVxufVxuXG4vLyBUaGUgcGFyc2luZyBvZiB0eXBlcyByb3VnaGx5IHBhcmFsbGVscyB0aGUgcGFyc2luZyBvZiBleHByZXNzaW9ucywgYW5kXG4vLyBwcmltYXJ5IHR5cGVzIGFyZSBraW5kIG9mIGxpa2UgcHJpbWFyeSBleHByZXNzaW9ucy4uLnRoZXkncmUgdGhlXG4vLyBwcmltaXRpdmVzIHdpdGggd2hpY2ggb3RoZXIgdHlwZXMgYXJlIGNvbnN0cnVjdGVkLlxuZnVuY3Rpb24gZmxvd1BhcnNlUHJpbWFyeVR5cGUoKSB7XG4gIGxldCBpc0dyb3VwZWRUeXBlID0gZmFsc2U7XG4gIGNvbnN0IG9sZE5vQW5vbkZ1bmN0aW9uVHlwZSA9IHN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZTtcblxuICBzd2l0Y2ggKHN0YXRlLnR5cGUpIHtcbiAgICBjYXNlIHR0Lm5hbWU6IHtcbiAgICAgIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSkpIHtcbiAgICAgICAgZmxvd1BhcnNlSW50ZXJmYWNlVHlwZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICAgIGZsb3dQYXJzZUdlbmVyaWNUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2FzZSB0dC5icmFjZUw6XG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlKGZhbHNlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSB0dC5icmFjZUJhckw6XG4gICAgICBmbG93UGFyc2VPYmplY3RUeXBlKGZhbHNlLCB0cnVlLCBmYWxzZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0LmJyYWNrZXRMOlxuICAgICAgZmxvd1BhcnNlVHVwbGVUeXBlKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0Lmxlc3NUaGFuOlxuICAgICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gICAgICBleHBlY3QodHQucGFyZW5MKTtcbiAgICAgIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtcygpO1xuICAgICAgZXhwZWN0KHR0LnBhcmVuUik7XG4gICAgICBleHBlY3QodHQuYXJyb3cpO1xuICAgICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSB0dC5wYXJlbkw6XG4gICAgICBuZXh0KCk7XG5cbiAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGFjdHVhbGx5IGEgZ3JvdXBlZCB0eXBlXG4gICAgICBpZiAoIW1hdGNoKHR0LnBhcmVuUikgJiYgIW1hdGNoKHR0LmVsbGlwc2lzKSkge1xuICAgICAgICBpZiAobWF0Y2godHQubmFtZSkpIHtcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IGxvb2thaGVhZFR5cGUoKTtcbiAgICAgICAgICBpc0dyb3VwZWRUeXBlID0gdG9rZW4gIT09IHR0LnF1ZXN0aW9uICYmIHRva2VuICE9PSB0dC5jb2xvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0dyb3VwZWRUeXBlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNHcm91cGVkVHlwZSkge1xuICAgICAgICBzdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgPSBmYWxzZTtcbiAgICAgICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgICAgICBzdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgPSBvbGROb0Fub25GdW5jdGlvblR5cGU7XG5cbiAgICAgICAgLy8gQSBgLGAgb3IgYSBgKSA9PmAgbWVhbnMgdGhpcyBpcyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24gdHlwZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlIHx8XG4gICAgICAgICAgIShtYXRjaCh0dC5jb21tYSkgfHwgKG1hdGNoKHR0LnBhcmVuUikgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5hcnJvdykpXG4gICAgICAgICkge1xuICAgICAgICAgIGV4cGVjdCh0dC5wYXJlblIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFYXQgYSBjb21tYSBpZiB0aGVyZSBpcyBvbmVcbiAgICAgICAgICBlYXQodHQuY29tbWEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtcygpO1xuXG4gICAgICBleHBlY3QodHQucGFyZW5SKTtcbiAgICAgIGV4cGVjdCh0dC5hcnJvdyk7XG4gICAgICBmbG93UGFyc2VUeXBlKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0Lm1pbnVzOlxuICAgICAgbmV4dCgpO1xuICAgICAgcGFyc2VMaXRlcmFsKCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0LnN0cmluZzpcbiAgICBjYXNlIHR0Lm51bTpcbiAgICBjYXNlIHR0Ll90cnVlOlxuICAgIGNhc2UgdHQuX2ZhbHNlOlxuICAgIGNhc2UgdHQuX251bGw6XG4gICAgY2FzZSB0dC5fdGhpczpcbiAgICBjYXNlIHR0Ll92b2lkOlxuICAgIGNhc2UgdHQuc3RhcjpcbiAgICAgIG5leHQoKTtcbiAgICAgIHJldHVybjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAoc3RhdGUudHlwZSA9PT0gdHQuX3R5cGVvZikge1xuICAgICAgICBmbG93UGFyc2VUeXBlb2ZUeXBlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUudHlwZSAmIFRva2VuVHlwZS5JU19LRVlXT1JEKSB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQubmFtZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG5cbiAgdW5leHBlY3RlZCgpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VQb3N0Zml4VHlwZSgpIHtcbiAgZmxvd1BhcnNlUHJpbWFyeVR5cGUoKTtcbiAgd2hpbGUgKCFjYW5JbnNlcnRTZW1pY29sb24oKSAmJiAobWF0Y2godHQuYnJhY2tldEwpIHx8IG1hdGNoKHR0LnF1ZXN0aW9uRG90KSkpIHtcbiAgICBlYXQodHQucXVlc3Rpb25Eb3QpO1xuICAgIGV4cGVjdCh0dC5icmFja2V0TCk7XG4gICAgaWYgKGVhdCh0dC5icmFja2V0UikpIHtcbiAgICAgIC8vIEFycmF5IHR5cGVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSW5kZXhlZCBhY2Nlc3MgdHlwZVxuICAgICAgZmxvd1BhcnNlVHlwZSgpO1xuICAgICAgZXhwZWN0KHR0LmJyYWNrZXRSKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlUHJlZml4VHlwZSgpIHtcbiAgaWYgKGVhdCh0dC5xdWVzdGlvbikpIHtcbiAgICBmbG93UGFyc2VQcmVmaXhUeXBlKCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvd1BhcnNlUG9zdGZpeFR5cGUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VBbm9uRnVuY3Rpb25XaXRob3V0UGFyZW5zKCkge1xuICBmbG93UGFyc2VQcmVmaXhUeXBlKCk7XG4gIGlmICghc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlICYmIGVhdCh0dC5hcnJvdykpIHtcbiAgICBmbG93UGFyc2VUeXBlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlSW50ZXJzZWN0aW9uVHlwZSgpIHtcbiAgZWF0KHR0LmJpdHdpc2VBTkQpO1xuICBmbG93UGFyc2VBbm9uRnVuY3Rpb25XaXRob3V0UGFyZW5zKCk7XG4gIHdoaWxlIChlYXQodHQuYml0d2lzZUFORCkpIHtcbiAgICBmbG93UGFyc2VBbm9uRnVuY3Rpb25XaXRob3V0UGFyZW5zKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVW5pb25UeXBlKCkge1xuICBlYXQodHQuYml0d2lzZU9SKTtcbiAgZmxvd1BhcnNlSW50ZXJzZWN0aW9uVHlwZSgpO1xuICB3aGlsZSAoZWF0KHR0LmJpdHdpc2VPUikpIHtcbiAgICBmbG93UGFyc2VJbnRlcnNlY3Rpb25UeXBlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlVHlwZSgpIHtcbiAgZmxvd1BhcnNlVW5pb25UeXBlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbigpIHtcbiAgZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCk7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZVR5cGVBbm5vdGF0YWJsZUlkZW50aWZpZXIoKSB7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBpZiAobWF0Y2godHQuY29sb24pKSB7XG4gICAgZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlVmFyaWFuY2UoKSB7XG4gIGlmIChtYXRjaCh0dC5wbHVzKSB8fCBtYXRjaCh0dC5taW51cykpIHtcbiAgICBuZXh0KCk7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc1R5cGUgPSB0cnVlO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE92ZXJyaWRlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlRnVuY3Rpb25Cb2R5QW5kRmluaXNoKGZ1bmNDb250ZXh0SWQpIHtcbiAgLy8gRm9yIGFycm93IGZ1bmN0aW9ucywgYHBhcnNlQXJyb3dgIGhhbmRsZXMgdGhlIHJldHVybiB0eXBlIGl0c2VsZi5cbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIGZsb3dQYXJzZVR5cGVBbmRQcmVkaWNhdGVJbml0aWFsaXNlcigpO1xuICB9XG5cbiAgcGFyc2VGdW5jdGlvbkJvZHkoZmFsc2UsIGZ1bmNDb250ZXh0SWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlU3Vic2NyaXB0KFxuICBzdGFydFRva2VuSW5kZXgsXG4gIG5vQ2FsbHMsXG4gIHN0b3BTdGF0ZSxcbikge1xuICBpZiAobWF0Y2godHQucXVlc3Rpb25Eb3QpICYmIGxvb2thaGVhZFR5cGUoKSA9PT0gdHQubGVzc1RoYW4pIHtcbiAgICBpZiAobm9DYWxscykge1xuICAgICAgc3RvcFN0YXRlLnN0b3AgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBuZXh0KCk7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKTtcbiAgICBleHBlY3QodHQucGFyZW5MKTtcbiAgICBwYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKCk7XG4gICAgcmV0dXJuO1xuICB9IGVsc2UgaWYgKCFub0NhbGxzICYmIG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICAgIGV4cGVjdCh0dC5wYXJlbkwpO1xuICAgIHBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMoKTtcbiAgICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIGJhc2VQYXJzZVN1YnNjcmlwdChzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMsIHN0b3BTdGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG93U3RhcnRQYXJzZU5ld0FyZ3VtZW50cygpIHtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgfVxuICB9XG59XG5cbi8vIGludGVyZmFjZXNcbmV4cG9ydCBmdW5jdGlvbiBmbG93VHJ5UGFyc2VTdGF0ZW1lbnQoKSB7XG4gIGlmIChtYXRjaCh0dC5uYW1lKSAmJiBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgICBuZXh0KCk7XG4gICAgZmxvd1BhcnNlSW50ZXJmYWNlKCk7XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2VudW0pKSB7XG4gICAgZmxvd1BhcnNlRW51bURlY2xhcmF0aW9uKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxvd1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKSB7XG4gIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2VudW0pKSB7XG4gICAgZmxvd1BhcnNlRW51bURlY2xhcmF0aW9uKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBkZWNsYXJlcywgaW50ZXJmYWNlcyBhbmQgdHlwZSBhbGlhc2VzXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlSWRlbnRpZmllclN0YXRlbWVudChjb250ZXh0dWFsS2V5d29yZCkge1xuICBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9kZWNsYXJlKSB7XG4gICAgaWYgKFxuICAgICAgbWF0Y2godHQuX2NsYXNzKSB8fFxuICAgICAgbWF0Y2godHQubmFtZSkgfHxcbiAgICAgIG1hdGNoKHR0Ll9mdW5jdGlvbikgfHxcbiAgICAgIG1hdGNoKHR0Ll92YXIpIHx8XG4gICAgICBtYXRjaCh0dC5fZXhwb3J0KVxuICAgICkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgICAgZmxvd1BhcnNlRGVjbGFyZSgpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobWF0Y2godHQubmFtZSkpIHtcbiAgICBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpIHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgxKTtcbiAgICAgIGZsb3dQYXJzZUludGVyZmFjZSgpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fdHlwZSkge1xuICAgICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgICAgZmxvd1BhcnNlVHlwZUFsaWFzKCk7XG4gICAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUpIHtcbiAgICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgxKTtcbiAgICAgIGZsb3dQYXJzZU9wYXF1ZVR5cGUoZmFsc2UpO1xuICAgICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICB9XG4gIH1cbiAgc2VtaWNvbG9uKCk7XG59XG5cbi8vIGV4cG9ydCB0eXBlXG5leHBvcnQgZnVuY3Rpb24gZmxvd1Nob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSB7XG4gIHJldHVybiAoXG4gICAgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl90eXBlKSB8fFxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5faW50ZXJmYWNlKSB8fFxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fb3BhcXVlKSB8fFxuICAgIGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZW51bSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dTaG91bGREaXNhbGxvd0V4cG9ydERlZmF1bHRTcGVjaWZpZXIoKSB7XG4gIHJldHVybiAoXG4gICAgbWF0Y2godHQubmFtZSkgJiZcbiAgICAoc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl90eXBlIHx8XG4gICAgICBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX2ludGVyZmFjZSB8fFxuICAgICAgc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUgfHxcbiAgICAgIHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fZW51bSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl90eXBlKSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgxKTtcbiAgICBuZXh0KCk7XG5cbiAgICBpZiAobWF0Y2godHQuYnJhY2VMKSkge1xuICAgICAgLy8gZXhwb3J0IHR5cGUgeyBmb28sIGJhciB9O1xuICAgICAgcGFyc2VFeHBvcnRTcGVjaWZpZXJzKCk7XG4gICAgICBwYXJzZUV4cG9ydEZyb20oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhwb3J0IHR5cGUgRm9vID0gQmFyO1xuICAgICAgZmxvd1BhcnNlVHlwZUFsaWFzKCk7XG4gICAgfVxuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIH0gZWxzZSBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9vcGFxdWUpKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgIG5leHQoKTtcbiAgICAvLyBleHBvcnQgb3BhcXVlIHR5cGUgRm9vID0gQmFyO1xuICAgIGZsb3dQYXJzZU9wYXF1ZVR5cGUoZmFsc2UpO1xuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIH0gZWxzZSBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9pbnRlcmZhY2UpKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDEpO1xuICAgIG5leHQoKTtcbiAgICBmbG93UGFyc2VJbnRlcmZhY2UoKTtcbiAgICBwb3BUeXBlQ29udGV4dChvbGRJc1R5cGUpO1xuICB9IGVsc2Uge1xuICAgIHBhcnNlU3RhdGVtZW50KHRydWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG93U2hvdWxkUGFyc2VFeHBvcnRTdGFyKCkge1xuICByZXR1cm4gbWF0Y2godHQuc3RhcikgfHwgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fdHlwZSkgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5zdGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dQYXJzZUV4cG9ydFN0YXIoKSB7XG4gIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl90eXBlKSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgyKTtcbiAgICBiYXNlUGFyc2VFeHBvcnRTdGFyKCk7XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICBiYXNlUGFyc2VFeHBvcnRTdGFyKCk7XG4gIH1cbn1cblxuLy8gcGFyc2UgYSB0aGUgc3VwZXIgY2xhc3MgdHlwZSBwYXJhbWV0ZXJzIGFuZCBpbXBsZW1lbnRzXG5leHBvcnQgZnVuY3Rpb24gZmxvd0FmdGVyUGFyc2VDbGFzc1N1cGVyKGhhc1N1cGVyKSB7XG4gIGlmIChoYXNTdXBlciAmJiBtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICB9XG4gIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2ltcGxlbWVudHMpKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICAgIG5leHQoKTtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5faW1wbGVtZW50cztcbiAgICBkbyB7XG4gICAgICBmbG93UGFyc2VSZXN0cmljdGVkSWRlbnRpZmllcigpO1xuICAgICAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgICAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKGVhdCh0dC5jb21tYSkpO1xuICAgIHBvcFR5cGVDb250ZXh0KG9sZElzVHlwZSk7XG4gIH1cbn1cblxuLy8gcGFyc2UgdHlwZSBwYXJhbWV0ZXJzIGZvciBvYmplY3QgbWV0aG9kIHNob3J0aGFuZFxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dTdGFydFBhcnNlT2JqUHJvcFZhbHVlKCkge1xuICAvLyBtZXRob2Qgc2hvcnRoYW5kXG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgICBpZiAoIW1hdGNoKHR0LnBhcmVuTCkpIHVuZXhwZWN0ZWQoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMoKSB7XG4gIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgZWF0KHR0LnF1ZXN0aW9uKTtcbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIH1cbiAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbn1cblxuLy8gcGFyc2UgdHlwZW9mIGFuZCB0eXBlIGltcG9ydHNcbmV4cG9ydCBmdW5jdGlvbiBmbG93U3RhcnRQYXJzZUltcG9ydFNwZWNpZmllcnMoKSB7XG4gIGlmIChtYXRjaCh0dC5fdHlwZW9mKSB8fCBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpKSB7XG4gICAgY29uc3QgbGggPSBsb29rYWhlYWRUeXBlQW5kS2V5d29yZCgpO1xuICAgIGlmIChpc01heWJlRGVmYXVsdEltcG9ydChsaCkgfHwgbGgudHlwZSA9PT0gdHQuYnJhY2VMIHx8IGxoLnR5cGUgPT09IHR0LnN0YXIpIHtcbiAgICAgIG5leHQoKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gcGFyc2UgaW1wb3J0LXR5cGUvdHlwZW9mIHNob3J0aGFuZFxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dQYXJzZUltcG9ydFNwZWNpZmllcigpIHtcbiAgY29uc3QgaXNUeXBlS2V5d29yZCA9XG4gICAgc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl90eXBlIHx8IHN0YXRlLnR5cGUgPT09IHR0Ll90eXBlb2Y7XG4gIGlmIChpc1R5cGVLZXl3b3JkKSB7XG4gICAgbmV4dCgpO1xuICB9IGVsc2Uge1xuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICB9XG5cbiAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpICYmICFpc0xvb2thaGVhZENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzKSkge1xuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIGlmIChpc1R5cGVLZXl3b3JkICYmICFtYXRjaCh0dC5uYW1lKSAmJiAhKHN0YXRlLnR5cGUgJiBUb2tlblR5cGUuSVNfS0VZV09SRCkpIHtcbiAgICAgIC8vIGBpbXBvcnQge3R5cGUgYXMgLGAgb3IgYGltcG9ydCB7dHlwZSBhcyB9YFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBgaW1wb3J0IHt0eXBlIGFzIGZvb2BcbiAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoaXNUeXBlS2V5d29yZCAmJiAobWF0Y2godHQubmFtZSkgfHwgISEoc3RhdGUudHlwZSAmIFRva2VuVHlwZS5JU19LRVlXT1JEKSkpIHtcbiAgICAgIC8vIGBpbXBvcnQge3R5cGUgZm9vYFxuICAgICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gICAgfVxuICAgIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hcykpIHtcbiAgICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBwYXJzZSBmdW5jdGlvbiB0eXBlIHBhcmFtZXRlcnMgLSBmdW5jdGlvbiBmb288VD4oKSB7fVxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dTdGFydFBhcnNlRnVuY3Rpb25QYXJhbXMoKSB7XG4gIC8vIE9yaWdpbmFsbHkgdGhpcyBjaGVja2VkIGlmIHRoZSBtZXRob2QgaXMgYSBnZXR0ZXIvc2V0dGVyLCBidXQgaWYgaXQgd2FzLCB3ZSdkIGNyYXNoIHNvb25cbiAgLy8gYW55d2F5LCBzbyBkb24ndCB0cnkgdG8gcHJvcGFnYXRlIHRoYXQgaW5mb3JtYXRpb24uXG4gIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMCk7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgfVxufVxuXG4vLyBwYXJzZSBmbG93IHR5cGUgYW5ub3RhdGlvbnMgb24gdmFyaWFibGUgZGVjbGFyYXRvciBoZWFkcyAtIGxldCBmb286IHN0cmluZyA9IGJhclxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dBZnRlclBhcnNlVmFySGVhZCgpIHtcbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIGZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk7XG4gIH1cbn1cblxuLy8gcGFyc2UgdGhlIHJldHVybiB0eXBlIG9mIGFuIGFzeW5jIGFycm93IGZ1bmN0aW9uIC0gbGV0IGZvbyA9IChhc3luYyAoKTogbnVtYmVyID0+IHt9KTtcbmV4cG9ydCBmdW5jdGlvbiBmbG93U3RhcnRQYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oKSB7XG4gIGlmIChtYXRjaCh0dC5jb2xvbikpIHtcbiAgICBjb25zdCBvbGROb0Fub25GdW5jdGlvblR5cGUgPSBzdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU7XG4gICAgc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlID0gdHJ1ZTtcbiAgICBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICAgIHN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSA9IG9sZE5vQW5vbkZ1bmN0aW9uVHlwZTtcbiAgfVxufVxuXG4vLyBXZSBuZWVkIHRvIHN1cHBvcnQgdHlwZSBwYXJhbWV0ZXIgZGVjbGFyYXRpb25zIGZvciBhcnJvdyBmdW5jdGlvbnMuIFRoaXNcbi8vIGlzIHRyaWNreS4gVGhlcmUgYXJlIHRocmVlIHNpdHVhdGlvbnMgd2UgbmVlZCB0byBoYW5kbGVcbi8vXG4vLyAxLiBUaGlzIGlzIGVpdGhlciBKU1ggb3IgYW4gYXJyb3cgZnVuY3Rpb24uIFdlJ2xsIHRyeSBKU1ggZmlyc3QuIElmIHRoYXRcbi8vICAgIGZhaWxzLCB3ZSdsbCB0cnkgYW4gYXJyb3cgZnVuY3Rpb24uIElmIHRoYXQgZmFpbHMsIHdlJ2xsIHRocm93IHRoZSBKU1hcbi8vICAgIGVycm9yLlxuLy8gMi4gVGhpcyBpcyBhbiBhcnJvdyBmdW5jdGlvbi4gV2UnbGwgcGFyc2UgdGhlIHR5cGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9uLFxuLy8gICAgcGFyc2UgdGhlIHJlc3QsIG1ha2Ugc3VyZSB0aGUgcmVzdCBpcyBhbiBhcnJvdyBmdW5jdGlvbiwgYW5kIGdvIGZyb21cbi8vICAgIHRoZXJlXG4vLyAzLiBUaGlzIGlzIG5laXRoZXIuIEp1c3QgY2FsbCB0aGUgc3VwZXIgbWV0aG9kXG5leHBvcnQgZnVuY3Rpb24gZmxvd1BhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpIHtcbiAgaWYgKG1hdGNoKHR0Lmxlc3NUaGFuKSkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gc3RhdGUuc25hcHNob3QoKTtcbiAgICBsZXQgd2FzQXJyb3cgPSBiYXNlUGFyc2VNYXliZUFzc2lnbihub0luLCBpc1dpdGhpblBhcmVucyk7XG4gICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHN0YXRlLnR5cGUgPSB0dC50eXBlUGFyYW1ldGVyU3RhcnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3YXNBcnJvdztcbiAgICB9XG5cbiAgICBjb25zdCBvbGRJc1R5cGUgPSBwdXNoVHlwZUNvbnRleHQoMCk7XG4gICAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk7XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgICB3YXNBcnJvdyA9IGJhc2VQYXJzZU1heWJlQXNzaWduKG5vSW4sIGlzV2l0aGluUGFyZW5zKTtcbiAgICBpZiAod2FzQXJyb3cpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB1bmV4cGVjdGVkKCk7XG4gIH1cblxuICByZXR1cm4gYmFzZVBhcnNlTWF5YmVBc3NpZ24obm9JbiwgaXNXaXRoaW5QYXJlbnMpO1xufVxuXG4vLyBoYW5kbGUgcmV0dXJuIHR5cGVzIGZvciBhcnJvdyBmdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBmbG93UGFyc2VBcnJvdygpIHtcbiAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgIGNvbnN0IG9sZElzVHlwZSA9IHB1c2hUeXBlQ29udGV4dCgwKTtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG5cbiAgICBjb25zdCBvbGROb0Fub25GdW5jdGlvblR5cGUgPSBzdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU7XG4gICAgc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlID0gdHJ1ZTtcbiAgICBmbG93UGFyc2VUeXBlQW5kUHJlZGljYXRlSW5pdGlhbGlzZXIoKTtcbiAgICBzdGF0ZS5ub0Fub25GdW5jdGlvblR5cGUgPSBvbGROb0Fub25GdW5jdGlvblR5cGU7XG5cbiAgICBpZiAoY2FuSW5zZXJ0U2VtaWNvbG9uKCkpIHVuZXhwZWN0ZWQoKTtcbiAgICBpZiAoIW1hdGNoKHR0LmFycm93KSkgdW5leHBlY3RlZCgpO1xuXG4gICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICB9XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgfVxuICByZXR1cm4gZWF0KHR0LmFycm93KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsb3dQYXJzZVN1YnNjcmlwdHMoc3RhcnRUb2tlbkluZGV4LCBub0NhbGxzID0gZmFsc2UpIHtcbiAgaWYgKFxuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9hc3luYyAmJlxuICAgIG1hdGNoKHR0Lmxlc3NUaGFuKVxuICApIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG4gICAgY29uc3Qgd2FzQXJyb3cgPSBwYXJzZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtZXRlcnMoKTtcbiAgICBpZiAod2FzQXJyb3cgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICB9XG5cbiAgYmFzZVBhcnNlU3Vic2NyaXB0cyhzdGFydFRva2VuSW5kZXgsIG5vQ2FsbHMpO1xufVxuXG4vLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgd2FzIGFuIGFycm93IGZ1bmN0aW9uIGhlcmUuXG5mdW5jdGlvbiBwYXJzZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtZXRlcnMoKSB7XG4gIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICBpZiAoIXBhcnNlQXJyb3coKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwYXJzZUFycm93RXhwcmVzc2lvbihzdGFydFRva2VuSW5kZXgpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZmxvd1BhcnNlRW51bURlY2xhcmF0aW9uKCkge1xuICBleHBlY3RDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9lbnVtKTtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2VudW07XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBmbG93UGFyc2VFbnVtQm9keSgpO1xufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VFbnVtQm9keSgpIHtcbiAgaWYgKGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX29mKSkge1xuICAgIG5leHQoKTtcbiAgfVxuICBleHBlY3QodHQuYnJhY2VMKTtcbiAgZmxvd1BhcnNlRW51bU1lbWJlcnMoKTtcbiAgZXhwZWN0KHR0LmJyYWNlUik7XG59XG5cbmZ1bmN0aW9uIGZsb3dQYXJzZUVudW1NZW1iZXJzKCkge1xuICB3aGlsZSAoIW1hdGNoKHR0LmJyYWNlUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGVhdCh0dC5lbGxpcHNpcykpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBmbG93UGFyc2VFbnVtTWVtYmVyKCk7XG4gICAgaWYgKCFtYXRjaCh0dC5icmFjZVIpKSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbG93UGFyc2VFbnVtTWVtYmVyKCkge1xuICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgaWYgKGVhdCh0dC5lcSkpIHtcbiAgICAvLyBGbG93IGVudW0gdmFsdWVzIGFyZSBhbHdheXMganVzdCBvbmUgdG9rZW4gKGEgc3RyaW5nLCBudW1iZXIsIG9yIGJvb2xlYW4gbGl0ZXJhbCkuXG4gICAgbmV4dCgpO1xuICB9XG59XG4iLCAiLyogZXNsaW50IG1heC1sZW46IDAgKi9cblxuaW1wb3J0IHtGaWxlfSBmcm9tIFwiLi4vaW5kZXhcIjtcbmltcG9ydCB7XG4gIGZsb3dBZnRlclBhcnNlQ2xhc3NTdXBlcixcbiAgZmxvd0FmdGVyUGFyc2VWYXJIZWFkLFxuICBmbG93UGFyc2VFeHBvcnREZWNsYXJhdGlvbixcbiAgZmxvd1BhcnNlRXhwb3J0U3RhcixcbiAgZmxvd1BhcnNlSWRlbnRpZmllclN0YXRlbWVudCxcbiAgZmxvd1BhcnNlSW1wb3J0U3BlY2lmaWVyLFxuICBmbG93UGFyc2VUeXBlQW5ub3RhdGlvbixcbiAgZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uLFxuICBmbG93U2hvdWxkRGlzYWxsb3dFeHBvcnREZWZhdWx0U3BlY2lmaWVyLFxuICBmbG93U2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbixcbiAgZmxvd1Nob3VsZFBhcnNlRXhwb3J0U3RhcixcbiAgZmxvd1N0YXJ0UGFyc2VGdW5jdGlvblBhcmFtcyxcbiAgZmxvd1N0YXJ0UGFyc2VJbXBvcnRTcGVjaWZpZXJzLFxuICBmbG93VHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbixcbiAgZmxvd1RyeVBhcnNlU3RhdGVtZW50LFxufSBmcm9tIFwiLi4vcGx1Z2lucy9mbG93XCI7XG5pbXBvcnQge1xuICB0c0FmdGVyUGFyc2VDbGFzc1N1cGVyLFxuICB0c0FmdGVyUGFyc2VWYXJIZWFkLFxuICB0c0lzRGVjbGFyYXRpb25TdGFydCxcbiAgdHNQYXJzZUV4cG9ydERlY2xhcmF0aW9uLFxuICB0c1BhcnNlRXhwb3J0U3BlY2lmaWVyLFxuICB0c1BhcnNlSWRlbnRpZmllclN0YXRlbWVudCxcbiAgdHNQYXJzZUltcG9ydEVxdWFsc0RlY2xhcmF0aW9uLFxuICB0c1BhcnNlSW1wb3J0U3BlY2lmaWVyLFxuICB0c1BhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMsXG4gIHRzUGFyc2VNb2RpZmllcnMsXG4gIHRzU3RhcnRQYXJzZUZ1bmN0aW9uUGFyYW1zLFxuICB0c1RyeVBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMsXG4gIHRzVHJ5UGFyc2VFeHBvcnQsXG4gIHRzVHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbixcbiAgdHNUcnlQYXJzZVN0YXRlbWVudENvbnRlbnQsXG4gIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbixcbiAgdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzLFxufSBmcm9tIFwiLi4vcGx1Z2lucy90eXBlc2NyaXB0XCI7XG5pbXBvcnQge1xuICBlYXQsXG4gIGVhdFR5cGVUb2tlbixcbiAgSWRlbnRpZmllclJvbGUsXG4gIGxvb2thaGVhZFR5cGUsXG4gIGxvb2thaGVhZFR5cGVBbmRLZXl3b3JkLFxuICBtYXRjaCxcbiAgbmV4dCxcbiAgbmV4dFRva2VuU3RhcnQsXG4gIG5leHRUb2tlblN0YXJ0U2luY2UsXG4gIHBvcFR5cGVDb250ZXh0LFxuICBwdXNoVHlwZUNvbnRleHQsXG59IGZyb20gXCIuLi90b2tlbml6ZXJcIjtcbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi90b2tlbml6ZXIva2V5d29yZHNcIjtcbmltcG9ydCB7U2NvcGV9IGZyb20gXCIuLi90b2tlbml6ZXIvc3RhdGVcIjtcbmltcG9ydCB7IFRva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3Rva2VuaXplci90eXBlc1wiO1xuaW1wb3J0IHtjaGFyQ29kZXN9IGZyb20gXCIuLi91dGlsL2NoYXJjb2Rlc1wiO1xuaW1wb3J0IHtnZXROZXh0Q29udGV4dElkLCBpbnB1dCwgaXNGbG93RW5hYmxlZCwgaXNUeXBlU2NyaXB0RW5hYmxlZCwgc3RhdGV9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCB7XG4gIHBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMsXG4gIHBhcnNlRXhwckF0b20sXG4gIHBhcnNlRXhwcmVzc2lvbixcbiAgcGFyc2VFeHByU3Vic2NyaXB0cyxcbiAgcGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2gsXG4gIHBhcnNlSWRlbnRpZmllcixcbiAgcGFyc2VNYXliZUFzc2lnbixcbiAgcGFyc2VNZXRob2QsXG4gIHBhcnNlT2JqLFxuICBwYXJzZVBhcmVuRXhwcmVzc2lvbixcbiAgcGFyc2VQcm9wZXJ0eU5hbWUsXG59IGZyb20gXCIuL2V4cHJlc3Npb25cIjtcbmltcG9ydCB7XG4gIHBhcnNlQmluZGluZ0F0b20sXG4gIHBhcnNlQmluZGluZ0lkZW50aWZpZXIsXG4gIHBhcnNlQmluZGluZ0xpc3QsXG4gIHBhcnNlSW1wb3J0ZWRJZGVudGlmaWVyLFxufSBmcm9tIFwiLi9sdmFsXCI7XG5pbXBvcnQge1xuICBjYW5JbnNlcnRTZW1pY29sb24sXG4gIGVhdENvbnRleHR1YWwsXG4gIGV4cGVjdCxcbiAgZXhwZWN0Q29udGV4dHVhbCxcbiAgaGFzRm9sbG93aW5nTGluZUJyZWFrLFxuICBoYXNQcmVjZWRpbmdMaW5lQnJlYWssXG4gIGlzQ29udGV4dHVhbCxcbiAgaXNMaW5lVGVybWluYXRvcixcbiAgaXNMb29rYWhlYWRDb250ZXh0dWFsLFxuICBzZW1pY29sb24sXG4gIHVuZXhwZWN0ZWQsXG59IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVG9wTGV2ZWwoKSB7XG4gIHBhcnNlQmxvY2tCb2R5KHR0LmVvZik7XG4gIHN0YXRlLnNjb3Blcy5wdXNoKG5ldyBTY29wZSgwLCBzdGF0ZS50b2tlbnMubGVuZ3RoLCB0cnVlKSk7XG4gIGlmIChzdGF0ZS5zY29wZURlcHRoICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjb3BlIGRlcHRoIGF0IGVuZCBvZiBmaWxlOiAke3N0YXRlLnNjb3BlRGVwdGh9YCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBGaWxlKHN0YXRlLnRva2Vucywgc3RhdGUuc2NvcGVzKTtcbn1cblxuLy8gUGFyc2UgYSBzaW5nbGUgc3RhdGVtZW50LlxuLy9cbi8vIElmIGV4cGVjdGluZyBhIHN0YXRlbWVudCBhbmQgZmluZGluZyBhIHNsYXNoIG9wZXJhdG9yLCBwYXJzZSBhXG4vLyByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbC4gVGhpcyBpcyB0byBoYW5kbGUgY2FzZXMgbGlrZVxuLy8gYGlmIChmb28pIC9ibGFoLy5leGVjKGZvbylgLCB3aGVyZSBsb29raW5nIGF0IHRoZSBwcmV2aW91cyB0b2tlblxuLy8gZG9lcyBub3QgaGVscC5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RhdGVtZW50KGRlY2xhcmF0aW9uKSB7XG4gIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgaWYgKGZsb3dUcnlQYXJzZVN0YXRlbWVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIGlmIChtYXRjaCh0dC5hdCkpIHtcbiAgICBwYXJzZURlY29yYXRvcnMoKTtcbiAgfVxuICBwYXJzZVN0YXRlbWVudENvbnRlbnQoZGVjbGFyYXRpb24pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVN0YXRlbWVudENvbnRlbnQoZGVjbGFyYXRpb24pIHtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICBpZiAodHNUcnlQYXJzZVN0YXRlbWVudENvbnRlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0YXJ0dHlwZSA9IHN0YXRlLnR5cGU7XG5cbiAgLy8gTW9zdCB0eXBlcyBvZiBzdGF0ZW1lbnRzIGFyZSByZWNvZ25pemVkIGJ5IHRoZSBrZXl3b3JkIHRoZXlcbiAgLy8gc3RhcnQgd2l0aC4gTWFueSBhcmUgdHJpdmlhbCB0byBwYXJzZSwgc29tZSByZXF1aXJlIGEgYml0IG9mXG4gIC8vIGNvbXBsZXhpdHkuXG5cbiAgc3dpdGNoIChzdGFydHR5cGUpIHtcbiAgICBjYXNlIHR0Ll9icmVhazpcbiAgICBjYXNlIHR0Ll9jb250aW51ZTpcbiAgICAgIHBhcnNlQnJlYWtDb250aW51ZVN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX2RlYnVnZ2VyOlxuICAgICAgcGFyc2VEZWJ1Z2dlclN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX2RvOlxuICAgICAgcGFyc2VEb1N0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX2ZvcjpcbiAgICAgIHBhcnNlRm9yU3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSB0dC5fZnVuY3Rpb246XG4gICAgICBpZiAobG9va2FoZWFkVHlwZSgpID09PSB0dC5kb3QpIGJyZWFrO1xuICAgICAgaWYgKCFkZWNsYXJhdGlvbikgdW5leHBlY3RlZCgpO1xuICAgICAgcGFyc2VGdW5jdGlvblN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSB0dC5fY2xhc3M6XG4gICAgICBpZiAoIWRlY2xhcmF0aW9uKSB1bmV4cGVjdGVkKCk7XG4gICAgICBwYXJzZUNsYXNzKHRydWUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSB0dC5faWY6XG4gICAgICBwYXJzZUlmU3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSB0dC5fcmV0dXJuOlxuICAgICAgcGFyc2VSZXR1cm5TdGF0ZW1lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0Ll9zd2l0Y2g6XG4gICAgICBwYXJzZVN3aXRjaFN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX3Rocm93OlxuICAgICAgcGFyc2VUaHJvd1N0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuX3RyeTpcbiAgICAgIHBhcnNlVHJ5U3RhdGVtZW50KCk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlIHR0Ll9sZXQ6XG4gICAgY2FzZSB0dC5fY29uc3Q6XG4gICAgICBpZiAoIWRlY2xhcmF0aW9uKSB1bmV4cGVjdGVkKCk7IC8vIE5PVEU6IGZhbGxzIHRocm91Z2ggdG8gX3ZhclxuXG4gICAgY2FzZSB0dC5fdmFyOlxuICAgICAgcGFyc2VWYXJTdGF0ZW1lbnQoc3RhcnR0eXBlICE9PSB0dC5fdmFyKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgdHQuX3doaWxlOlxuICAgICAgcGFyc2VXaGlsZVN0YXRlbWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuYnJhY2VMOlxuICAgICAgcGFyc2VCbG9jaygpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgdHQuc2VtaTpcbiAgICAgIHBhcnNlRW1wdHlTdGF0ZW1lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIHR0Ll9leHBvcnQ6XG4gICAgY2FzZSB0dC5faW1wb3J0OiB7XG4gICAgICBjb25zdCBuZXh0VHlwZSA9IGxvb2thaGVhZFR5cGUoKTtcbiAgICAgIGlmIChuZXh0VHlwZSA9PT0gdHQucGFyZW5MIHx8IG5leHRUeXBlID09PSB0dC5kb3QpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBuZXh0KCk7XG4gICAgICBpZiAoc3RhcnR0eXBlID09PSB0dC5faW1wb3J0KSB7XG4gICAgICAgIHBhcnNlSW1wb3J0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZUV4cG9ydCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjYXNlIHR0Lm5hbWU6XG4gICAgICBpZiAoc3RhdGUuY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9hc3luYykge1xuICAgICAgICBjb25zdCBmdW5jdGlvblN0YXJ0ID0gc3RhdGUuc3RhcnQ7XG4gICAgICAgIC8vIHBlZWsgYWhlYWQgYW5kIHNlZSBpZiBuZXh0IHRva2VuIGlzIGEgZnVuY3Rpb25cbiAgICAgICAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICAgICAgICBuZXh0KCk7XG4gICAgICAgIGlmIChtYXRjaCh0dC5fZnVuY3Rpb24pICYmICFjYW5JbnNlcnRTZW1pY29sb24oKSkge1xuICAgICAgICAgIGV4cGVjdCh0dC5fZnVuY3Rpb24pO1xuICAgICAgICAgIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgdHJ1ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX3VzaW5nICYmXG4gICAgICAgICFoYXNGb2xsb3dpbmdMaW5lQnJlYWsoKSAmJlxuICAgICAgICAvLyBTdGF0ZW1lbnRzIGxpa2UgYHVzaW5nWzBdYCBhbmQgYHVzaW5nIGluIGZvb2AgYXJlbid0IGFjdHVhbCB1c2luZ1xuICAgICAgICAvLyBkZWNsYXJhdGlvbnMuXG4gICAgICAgIGxvb2thaGVhZFR5cGUoKSA9PT0gdHQubmFtZVxuICAgICAgKSB7XG4gICAgICAgIHBhcnNlVmFyU3RhdGVtZW50KHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHN0YXJ0c0F3YWl0VXNpbmcoKSkge1xuICAgICAgICBleHBlY3RDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hd2FpdCk7XG4gICAgICAgIHBhcnNlVmFyU3RhdGVtZW50KHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICBicmVhaztcbiAgfVxuXG4gIC8vIElmIHRoZSBzdGF0ZW1lbnQgZG9lcyBub3Qgc3RhcnQgd2l0aCBhIHN0YXRlbWVudCBrZXl3b3JkIG9yIGFcbiAgLy8gYnJhY2UsIGl0J3MgYW4gRXhwcmVzc2lvblN0YXRlbWVudCBvciBMYWJlbGVkU3RhdGVtZW50LiBXZVxuICAvLyBzaW1wbHkgc3RhcnQgcGFyc2luZyBhbiBleHByZXNzaW9uLCBhbmQgYWZ0ZXJ3YXJkcywgaWYgdGhlXG4gIC8vIG5leHQgdG9rZW4gaXMgYSBjb2xvbiBhbmQgdGhlIGV4cHJlc3Npb24gd2FzIGEgc2ltcGxlXG4gIC8vIElkZW50aWZpZXIgbm9kZSwgd2Ugc3dpdGNoIHRvIGludGVycHJldGluZyBpdCBhcyBhIGxhYmVsLlxuICBjb25zdCBpbml0aWFsVG9rZW5zTGVuZ3RoID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgcGFyc2VFeHByZXNzaW9uKCk7XG4gIGxldCBzaW1wbGVOYW1lID0gbnVsbDtcbiAgaWYgKHN0YXRlLnRva2Vucy5sZW5ndGggPT09IGluaXRpYWxUb2tlbnNMZW5ndGggKyAxKSB7XG4gICAgY29uc3QgdG9rZW4gPSBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgIGlmICh0b2tlbi50eXBlID09PSB0dC5uYW1lKSB7XG4gICAgICBzaW1wbGVOYW1lID0gdG9rZW4uY29udGV4dHVhbEtleXdvcmQ7XG4gICAgfVxuICB9XG4gIGlmIChzaW1wbGVOYW1lID09IG51bGwpIHtcbiAgICBzZW1pY29sb24oKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGVhdCh0dC5jb2xvbikpIHtcbiAgICBwYXJzZUxhYmVsZWRTdGF0ZW1lbnQoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIHdhcyBhbiBpZGVudGlmaWVyLCBzbyB3ZSBtaWdodCB3YW50IHRvIGhhbmRsZSBmbG93L3R5cGVzY3JpcHQtc3BlY2lmaWMgY2FzZXMuXG4gICAgcGFyc2VJZGVudGlmaWVyU3RhdGVtZW50KHNpbXBsZU5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHdlJ3JlIHBvc2l0aW9uZWQgYXQgYW4gYGF3YWl0IHVzaW5nYCBkZWNsYXJhdGlvbi5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBjYW4gaGFwcGVuIGVpdGhlciBpbiBwbGFjZSBvZiBhIHJlZ3VsYXIgdmFyaWFibGUgZGVjbGFyYXRpb25cbiAqIG9yIGluIGEgbG9vcCBib2R5LCBhbmQgaW4gYm90aCBwbGFjZXMsIHRoZXJlIGFyZSBzaW1pbGFyLWxvb2tpbmcgY2FzZXMgd2hlcmVcbiAqIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlLlxuICpcbiAqIEV4YW1wbGVzIHJldHVybmluZyB0cnVlOlxuICogYXdhaXQgdXNpbmcgZm9vID0gYmFyKCk7XG4gKiBmb3IgKGF3YWl0IHVzaW5nIGEgb2YgYikge31cbiAqXG4gKiBFeGFtcGxlcyByZXR1cm5pbmcgZmFsc2U6XG4gKiBhd2FpdCB1c2luZ1xuICogYXdhaXQgdXNpbmcgKyAxXG4gKiBhd2FpdCB1c2luZyBpbnN0YW5jZW9mIFRcbiAqIGZvciAoYXdhaXQgdXNpbmc7Oykge31cbiAqXG4gKiBGb3Igbm93LCB3ZSBlYXJseSByZXR1cm4gaWYgd2UgZG9uJ3Qgc2VlIGBhd2FpdGAsIHRoZW4gZG8gYSBzaW1wbGVcbiAqIGJhY2t0cmFja2luZy1iYXNlZCBsb29rYWhlYWQgZm9yIHRoZSBgdXNpbmdgIGFuZCBpZGVudGlmaWVyIHRva2Vucy4gSW4gdGhlXG4gKiBmdXR1cmUsIHRoaXMgY291bGQgYmUgb3B0aW1pemVkIHdpdGggYSBjaGFyYWN0ZXItYmFzZWQgYXBwcm9hY2guXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0c0F3YWl0VXNpbmcoKSB7XG4gIGlmICghaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hd2FpdCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgc25hcHNob3QgPSBzdGF0ZS5zbmFwc2hvdCgpO1xuICAvLyBhd2FpdFxuICBuZXh0KCk7XG4gIGlmICghaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl91c2luZykgfHwgaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpIHtcbiAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gdXNpbmdcbiAgbmV4dCgpO1xuICBpZiAoIW1hdGNoKHR0Lm5hbWUpIHx8IGhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKSB7XG4gICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGVjb3JhdG9ycygpIHtcbiAgd2hpbGUgKG1hdGNoKHR0LmF0KSkge1xuICAgIHBhcnNlRGVjb3JhdG9yKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VEZWNvcmF0b3IoKSB7XG4gIG5leHQoKTtcbiAgaWYgKGVhdCh0dC5wYXJlbkwpKSB7XG4gICAgcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgZXhwZWN0KHR0LnBhcmVuUik7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gICAgd2hpbGUgKGVhdCh0dC5kb3QpKSB7XG4gICAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICB9XG4gICAgcGFyc2VNYXliZURlY29yYXRvckFyZ3VtZW50cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgdHNQYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzKCk7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZVBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoKSB7XG4gIGlmIChlYXQodHQucGFyZW5MKSkge1xuICAgIHBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUJyZWFrQ29udGludWVTdGF0ZW1lbnQoKSB7XG4gIG5leHQoKTtcbiAgaWYgKCFpc0xpbmVUZXJtaW5hdG9yKCkpIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgICBzZW1pY29sb24oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZURlYnVnZ2VyU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHNlbWljb2xvbigpO1xufVxuXG5mdW5jdGlvbiBwYXJzZURvU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbiAgZXhwZWN0KHR0Ll93aGlsZSk7XG4gIHBhcnNlUGFyZW5FeHByZXNzaW9uKCk7XG4gIGVhdCh0dC5zZW1pKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VGb3JTdGF0ZW1lbnQoKSB7XG4gIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgcGFyc2VBbWJpZ3VvdXNGb3JTdGF0ZW1lbnQoKTtcbiAgY29uc3QgZW5kVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHN0YXRlLnNjb3Blcy5wdXNoKG5ldyBTY29wZShzdGFydFRva2VuSW5kZXgsIGVuZFRva2VuSW5kZXgsIGZhbHNlKSk7XG4gIHN0YXRlLnNjb3BlRGVwdGgtLTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhpcyB0b2tlbiBpcyBhIGB1c2luZ2AgZGVjbGFyYXRpb24gKGV4cGxpY2l0IHJlc291cmNlXG4gKiBtYW5hZ2VtZW50KSBhcyBwYXJ0IG9mIGEgbG9vcC5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWV4cGxpY2l0LXJlc291cmNlLW1hbmFnZW1lbnRcbiAqL1xuZnVuY3Rpb24gaXNVc2luZ0luTG9vcCgpIHtcbiAgaWYgKCFpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3VzaW5nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGlzIG11c3QgYmUgYGZvciAodXNpbmcgb2ZgLCB3aGVyZSBgdXNpbmdgIGlzIHRoZSBuYW1lIG9mIHRoZSBsb29wXG4gIC8vIHZhcmlhYmxlLlxuICBpZiAoaXNMb29rYWhlYWRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9vZikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8vIERpc2FtYmlndWF0aW5nIGJldHdlZW4gYSBgZm9yYCBhbmQgYSBgZm9yYC9gaW5gIG9yIGBmb3JgL2BvZmBcbi8vIGxvb3AgaXMgbm9uLXRyaXZpYWwuIEJhc2ljYWxseSwgd2UgaGF2ZSB0byBwYXJzZSB0aGUgaW5pdCBgdmFyYFxuLy8gc3RhdGVtZW50IG9yIGV4cHJlc3Npb24sIGRpc2FsbG93aW5nIHRoZSBgaW5gIG9wZXJhdG9yIChzZWVcbi8vIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHRvIGBwYXJzZUV4cHJlc3Npb25gKSwgYW5kIHRoZW4gY2hlY2tcbi8vIHdoZXRoZXIgdGhlIG5leHQgdG9rZW4gaXMgYGluYCBvciBgb2ZgLiBXaGVuIHRoZXJlIGlzIG5vIGluaXRcbi8vIHBhcnQgKHNlbWljb2xvbiBpbW1lZGlhdGVseSBhZnRlciB0aGUgb3BlbmluZyBwYXJlbnRoZXNpcyksIGl0XG4vLyBpcyBhIHJlZ3VsYXIgYGZvcmAgbG9vcC5cbmZ1bmN0aW9uIHBhcnNlQW1iaWd1b3VzRm9yU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG5cbiAgbGV0IGZvckF3YWl0ID0gZmFsc2U7XG4gIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2F3YWl0KSkge1xuICAgIGZvckF3YWl0ID0gdHJ1ZTtcbiAgICBuZXh0KCk7XG4gIH1cbiAgZXhwZWN0KHR0LnBhcmVuTCk7XG5cbiAgaWYgKG1hdGNoKHR0LnNlbWkpKSB7XG4gICAgaWYgKGZvckF3YWl0KSB7XG4gICAgICB1bmV4cGVjdGVkKCk7XG4gICAgfVxuICAgIHBhcnNlRm9yKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaXNBd2FpdFVzaW5nID0gc3RhcnRzQXdhaXRVc2luZygpO1xuICBpZiAoaXNBd2FpdFVzaW5nIHx8IG1hdGNoKHR0Ll92YXIpIHx8IG1hdGNoKHR0Ll9sZXQpIHx8IG1hdGNoKHR0Ll9jb25zdCkgfHwgaXNVc2luZ0luTG9vcCgpKSB7XG4gICAgaWYgKGlzQXdhaXRVc2luZykge1xuICAgICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXdhaXQpO1xuICAgIH1cbiAgICBuZXh0KCk7XG4gICAgcGFyc2VWYXIodHJ1ZSwgc3RhdGUudHlwZSAhPT0gdHQuX3Zhcik7XG4gICAgaWYgKG1hdGNoKHR0Ll9pbikgfHwgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9vZikpIHtcbiAgICAgIHBhcnNlRm9ySW4oZm9yQXdhaXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwYXJzZUZvcigpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHBhcnNlRXhwcmVzc2lvbih0cnVlKTtcbiAgaWYgKG1hdGNoKHR0Ll9pbikgfHwgaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9vZikpIHtcbiAgICBwYXJzZUZvckluKGZvckF3YWl0KTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGZvckF3YWl0KSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG4gIHBhcnNlRm9yKCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25TdGF0ZW1lbnQoKSB7XG4gIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBzdGF0ZS5zdGFydDtcbiAgbmV4dCgpO1xuICBwYXJzZUZ1bmN0aW9uKGZ1bmN0aW9uU3RhcnQsIHRydWUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUlmU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHBhcnNlUGFyZW5FeHByZXNzaW9uKCk7XG4gIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbiAgaWYgKGVhdCh0dC5fZWxzZSkpIHtcbiAgICBwYXJzZVN0YXRlbWVudChmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VSZXR1cm5TdGF0ZW1lbnQoKSB7XG4gIG5leHQoKTtcblxuICAvLyBJbiBgcmV0dXJuYCAoYW5kIGBicmVha2AvYGNvbnRpbnVlYCksIHRoZSBrZXl3b3JkcyB3aXRoXG4gIC8vIG9wdGlvbmFsIGFyZ3VtZW50cywgd2UgZWFnZXJseSBsb29rIGZvciBhIHNlbWljb2xvbiBvciB0aGVcbiAgLy8gcG9zc2liaWxpdHkgdG8gaW5zZXJ0IG9uZS5cblxuICBpZiAoIWlzTGluZVRlcm1pbmF0b3IoKSkge1xuICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgIHNlbWljb2xvbigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlU3dpdGNoU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHBhcnNlUGFyZW5FeHByZXNzaW9uKCk7XG4gIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG5cbiAgLy8gRG9uJ3QgYm90aGVyIHZhbGlkYXRpb247IGp1c3QgZ28gdGhyb3VnaCBhbnkgc2VxdWVuY2Ugb2YgY2FzZXMsIGRlZmF1bHRzLCBhbmQgc3RhdGVtZW50cy5cbiAgd2hpbGUgKCFtYXRjaCh0dC5icmFjZVIpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIGlmIChtYXRjaCh0dC5fY2FzZSkgfHwgbWF0Y2godHQuX2RlZmF1bHQpKSB7XG4gICAgICBjb25zdCBpc0Nhc2UgPSBtYXRjaCh0dC5fY2FzZSk7XG4gICAgICBuZXh0KCk7XG4gICAgICBpZiAoaXNDYXNlKSB7XG4gICAgICAgIHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgfVxuICAgICAgZXhwZWN0KHR0LmNvbG9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyc2VTdGF0ZW1lbnQodHJ1ZSk7XG4gICAgfVxuICB9XG4gIG5leHQoKTsgLy8gQ2xvc2luZyBicmFjZVxuICBjb25zdCBlbmRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgc3RhdGUuc2NvcGVzLnB1c2gobmV3IFNjb3BlKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgZmFsc2UpKTtcbiAgc3RhdGUuc2NvcGVEZXB0aC0tO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRocm93U3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHBhcnNlRXhwcmVzc2lvbigpO1xuICBzZW1pY29sb24oKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDYXRjaENsYXVzZVBhcmFtKCkge1xuICBwYXJzZUJpbmRpbmdBdG9tKHRydWUgLyogaXNCbG9ja1Njb3BlICovKTtcblxuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlVHJ5U3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG5cbiAgcGFyc2VCbG9jaygpO1xuXG4gIGlmIChtYXRjaCh0dC5fY2F0Y2gpKSB7XG4gICAgbmV4dCgpO1xuICAgIGxldCBjYXRjaEJpbmRpbmdTdGFydFRva2VuSW5kZXggPSBudWxsO1xuICAgIGlmIChtYXRjaCh0dC5wYXJlbkwpKSB7XG4gICAgICBzdGF0ZS5zY29wZURlcHRoKys7XG4gICAgICBjYXRjaEJpbmRpbmdTdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgZXhwZWN0KHR0LnBhcmVuTCk7XG4gICAgICBwYXJzZUNhdGNoQ2xhdXNlUGFyYW0oKTtcbiAgICAgIGV4cGVjdCh0dC5wYXJlblIpO1xuICAgIH1cbiAgICBwYXJzZUJsb2NrKCk7XG4gICAgaWYgKGNhdGNoQmluZGluZ1N0YXJ0VG9rZW5JbmRleCAhPSBudWxsKSB7XG4gICAgICAvLyBXZSBuZWVkIGEgc3BlY2lhbCBzY29wZSBmb3IgdGhlIGNhdGNoIGJpbmRpbmcgd2hpY2ggaW5jbHVkZXMgdGhlIGJpbmRpbmcgaXRzZWxmIGFuZCB0aGVcbiAgICAgIC8vIGNhdGNoIGJsb2NrLlxuICAgICAgY29uc3QgZW5kVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgICBzdGF0ZS5zY29wZXMucHVzaChuZXcgU2NvcGUoY2F0Y2hCaW5kaW5nU3RhcnRUb2tlbkluZGV4LCBlbmRUb2tlbkluZGV4LCBmYWxzZSkpO1xuICAgICAgc3RhdGUuc2NvcGVEZXB0aC0tO1xuICAgIH1cbiAgfVxuICBpZiAoZWF0KHR0Ll9maW5hbGx5KSkge1xuICAgIHBhcnNlQmxvY2soKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VWYXJTdGF0ZW1lbnQoaXNCbG9ja1Njb3BlKSB7XG4gIG5leHQoKTtcbiAgcGFyc2VWYXIoZmFsc2UsIGlzQmxvY2tTY29wZSk7XG4gIHNlbWljb2xvbigpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVdoaWxlU3RhdGVtZW50KCkge1xuICBuZXh0KCk7XG4gIHBhcnNlUGFyZW5FeHByZXNzaW9uKCk7XG4gIHBhcnNlU3RhdGVtZW50KGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VFbXB0eVN0YXRlbWVudCgpIHtcbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUxhYmVsZWRTdGF0ZW1lbnQoKSB7XG4gIHBhcnNlU3RhdGVtZW50KHRydWUpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgc3RhdGVtZW50IHN0YXJ0aW5nIHdpdGggYW4gaWRlbnRpZmllciBvZiB0aGUgZ2l2ZW4gbmFtZS4gU3ViY2xhc3NlcyBtYXRjaCBvbiB0aGUgbmFtZVxuICogdG8gaGFuZGxlIHN0YXRlbWVudHMgbGlrZSBcImRlY2xhcmVcIi5cbiAqL1xuZnVuY3Rpb24gcGFyc2VJZGVudGlmaWVyU3RhdGVtZW50KGNvbnRleHR1YWxLZXl3b3JkKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgdHNQYXJzZUlkZW50aWZpZXJTdGF0ZW1lbnQoY29udGV4dHVhbEtleXdvcmQpO1xuICB9IGVsc2UgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VJZGVudGlmaWVyU3RhdGVtZW50KGNvbnRleHR1YWxLZXl3b3JkKTtcbiAgfSBlbHNlIHtcbiAgICBzZW1pY29sb24oKTtcbiAgfVxufVxuXG4vLyBQYXJzZSBhIHNlbWljb2xvbi1lbmNsb3NlZCBibG9jayBvZiBzdGF0ZW1lbnRzLlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQmxvY2soaXNGdW5jdGlvblNjb3BlID0gZmFsc2UsIGNvbnRleHRJZCA9IDApIHtcbiAgY29uc3Qgc3RhcnRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgc3RhdGUuc2NvcGVEZXB0aCsrO1xuICBleHBlY3QodHQuYnJhY2VMKTtcbiAgaWYgKGNvbnRleHRJZCkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gY29udGV4dElkO1xuICB9XG4gIHBhcnNlQmxvY2tCb2R5KHR0LmJyYWNlUik7XG4gIGlmIChjb250ZXh0SWQpIHtcbiAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbiAgfVxuICBjb25zdCBlbmRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgc3RhdGUuc2NvcGVzLnB1c2gobmV3IFNjb3BlKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgaXNGdW5jdGlvblNjb3BlKSk7XG4gIHN0YXRlLnNjb3BlRGVwdGgtLTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQmxvY2tCb2R5KGVuZCkge1xuICB3aGlsZSAoIWVhdChlbmQpICYmICFzdGF0ZS5lcnJvcikge1xuICAgIHBhcnNlU3RhdGVtZW50KHRydWUpO1xuICB9XG59XG5cbi8vIFBhcnNlIGEgcmVndWxhciBgZm9yYCBsb29wLiBUaGUgZGlzYW1iaWd1YXRpb24gY29kZSBpblxuLy8gYHBhcnNlU3RhdGVtZW50YCB3aWxsIGFscmVhZHkgaGF2ZSBwYXJzZWQgdGhlIGluaXQgc3RhdGVtZW50IG9yXG4vLyBleHByZXNzaW9uLlxuXG5mdW5jdGlvbiBwYXJzZUZvcigpIHtcbiAgZXhwZWN0KHR0LnNlbWkpO1xuICBpZiAoIW1hdGNoKHR0LnNlbWkpKSB7XG4gICAgcGFyc2VFeHByZXNzaW9uKCk7XG4gIH1cbiAgZXhwZWN0KHR0LnNlbWkpO1xuICBpZiAoIW1hdGNoKHR0LnBhcmVuUikpIHtcbiAgICBwYXJzZUV4cHJlc3Npb24oKTtcbiAgfVxuICBleHBlY3QodHQucGFyZW5SKTtcbiAgcGFyc2VTdGF0ZW1lbnQoZmFsc2UpO1xufVxuXG4vLyBQYXJzZSBhIGBmb3JgL2BpbmAgYW5kIGBmb3JgL2BvZmAgbG9vcCwgd2hpY2ggYXJlIGFsbW9zdFxuLy8gc2FtZSBmcm9tIHBhcnNlcidzIHBlcnNwZWN0aXZlLlxuXG5mdW5jdGlvbiBwYXJzZUZvckluKGZvckF3YWl0KSB7XG4gIGlmIChmb3JBd2FpdCkge1xuICAgIGVhdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX29mKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0KCk7XG4gIH1cbiAgcGFyc2VFeHByZXNzaW9uKCk7XG4gIGV4cGVjdCh0dC5wYXJlblIpO1xuICBwYXJzZVN0YXRlbWVudChmYWxzZSk7XG59XG5cbi8vIFBhcnNlIGEgbGlzdCBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuXG5cbmZ1bmN0aW9uIHBhcnNlVmFyKGlzRm9yLCBpc0Jsb2NrU2NvcGUpIHtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBwYXJzZVZhckhlYWQoaXNCbG9ja1Njb3BlKTtcbiAgICBpZiAoZWF0KHR0LmVxKSkge1xuICAgICAgY29uc3QgZXFJbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGggLSAxO1xuICAgICAgcGFyc2VNYXliZUFzc2lnbihpc0Zvcik7XG4gICAgICBzdGF0ZS50b2tlbnNbZXFJbmRleF0ucmhzRW5kSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoIWVhdCh0dC5jb21tYSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVZhckhlYWQoaXNCbG9ja1Njb3BlKSB7XG4gIHBhcnNlQmluZGluZ0F0b20oaXNCbG9ja1Njb3BlKTtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0c0FmdGVyUGFyc2VWYXJIZWFkKCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGZsb3dBZnRlclBhcnNlVmFySGVhZCgpO1xuICB9XG59XG5cbi8vIFBhcnNlIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gb3IgbGl0ZXJhbCAoZGVwZW5kaW5nIG9uIHRoZVxuLy8gYGlzU3RhdGVtZW50YCBwYXJhbWV0ZXIpLlxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbihcbiAgZnVuY3Rpb25TdGFydCxcbiAgaXNTdGF0ZW1lbnQsXG4gIG9wdGlvbmFsSWQgPSBmYWxzZSxcbikge1xuICBpZiAobWF0Y2godHQuc3RhcikpIHtcbiAgICBuZXh0KCk7XG4gIH1cblxuICBpZiAoaXNTdGF0ZW1lbnQgJiYgIW9wdGlvbmFsSWQgJiYgIW1hdGNoKHR0Lm5hbWUpICYmICFtYXRjaCh0dC5feWllbGQpKSB7XG4gICAgdW5leHBlY3RlZCgpO1xuICB9XG5cbiAgbGV0IG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgaWYgKG1hdGNoKHR0Lm5hbWUpKSB7XG4gICAgLy8gRXhwcmVzc2lvbi1zdHlsZSBmdW5jdGlvbnMgc2hvdWxkIGxpbWl0IHRoZWlyIG5hbWUncyBzY29wZSB0byB0aGUgZnVuY3Rpb24gYm9keSwgc28gd2UgbWFrZVxuICAgIC8vIGEgbmV3IGZ1bmN0aW9uIHNjb3BlIHRvIGVuZm9yY2UgdGhhdC5cbiAgICBpZiAoIWlzU3RhdGVtZW50KSB7XG4gICAgICBuYW1lU2NvcGVTdGFydFRva2VuSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICAgICAgc3RhdGUuc2NvcGVEZXB0aCsrO1xuICAgIH1cbiAgICBwYXJzZUJpbmRpbmdJZGVudGlmaWVyKGZhbHNlKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0VG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHN0YXRlLnNjb3BlRGVwdGgrKztcbiAgcGFyc2VGdW5jdGlvblBhcmFtcygpO1xuICBwYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChmdW5jdGlvblN0YXJ0KTtcbiAgY29uc3QgZW5kVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIC8vIEluIGFkZGl0aW9uIHRvIHRoZSBibG9jayBzY29wZSBvZiB0aGUgZnVuY3Rpb24gYm9keSwgd2UgbmVlZCBhIHNlcGFyYXRlIGZ1bmN0aW9uLXN0eWxlIHNjb3BlXG4gIC8vIHRoYXQgaW5jbHVkZXMgdGhlIHBhcmFtcy5cbiAgc3RhdGUuc2NvcGVzLnB1c2gobmV3IFNjb3BlKHN0YXJ0VG9rZW5JbmRleCwgZW5kVG9rZW5JbmRleCwgdHJ1ZSkpO1xuICBzdGF0ZS5zY29wZURlcHRoLS07XG4gIGlmIChuYW1lU2NvcGVTdGFydFRva2VuSW5kZXggIT09IG51bGwpIHtcbiAgICBzdGF0ZS5zY29wZXMucHVzaChuZXcgU2NvcGUobmFtZVNjb3BlU3RhcnRUb2tlbkluZGV4LCBlbmRUb2tlbkluZGV4LCB0cnVlKSk7XG4gICAgc3RhdGUuc2NvcGVEZXB0aC0tO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uUGFyYW1zKFxuICBhbGxvd01vZGlmaWVycyA9IGZhbHNlLFxuICBmdW5jQ29udGV4dElkID0gMCxcbikge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzU3RhcnRQYXJzZUZ1bmN0aW9uUGFyYW1zKCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGZsb3dTdGFydFBhcnNlRnVuY3Rpb25QYXJhbXMoKTtcbiAgfVxuXG4gIGV4cGVjdCh0dC5wYXJlbkwpO1xuICBpZiAoZnVuY0NvbnRleHRJZCkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gZnVuY0NvbnRleHRJZDtcbiAgfVxuICBwYXJzZUJpbmRpbmdMaXN0KFxuICAgIHR0LnBhcmVuUixcbiAgICBmYWxzZSAvKiBpc0Jsb2NrU2NvcGUgKi8sXG4gICAgZmFsc2UgLyogYWxsb3dFbXB0eSAqLyxcbiAgICBhbGxvd01vZGlmaWVycyxcbiAgICBmdW5jQ29udGV4dElkLFxuICApO1xuICBpZiAoZnVuY0NvbnRleHRJZCkge1xuICAgIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uY29udGV4dElkID0gZnVuY0NvbnRleHRJZDtcbiAgfVxufVxuXG4vLyBQYXJzZSBhIGNsYXNzIGRlY2xhcmF0aW9uIG9yIGxpdGVyYWwgKGRlcGVuZGluZyBvbiB0aGVcbi8vIGBpc1N0YXRlbWVudGAgcGFyYW1ldGVyKS5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2xhc3MoaXNTdGF0ZW1lbnQsIG9wdGlvbmFsSWQgPSBmYWxzZSkge1xuICAvLyBQdXQgYSBjb250ZXh0IElEIG9uIHRoZSBjbGFzcyBrZXl3b3JkLCB0aGUgb3Blbi1icmFjZSwgYW5kIHRoZSBjbG9zZS1icmFjZSwgc28gdGhhdCBsYXRlclxuICAvLyBjb2RlIGNhbiBlYXNpbHkgbmF2aWdhdGUgdG8gbWVhbmluZ2Z1bCBwb2ludHMgb24gdGhlIGNsYXNzLlxuICBjb25zdCBjb250ZXh0SWQgPSBnZXROZXh0Q29udGV4dElkKCk7XG5cbiAgbmV4dCgpO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pc0V4cHJlc3Npb24gPSAhaXNTdGF0ZW1lbnQ7XG4gIC8vIExpa2Ugd2l0aCBmdW5jdGlvbnMsIHdlIGRlY2xhcmUgYSBzcGVjaWFsIFwibmFtZSBzY29wZVwiIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBuYW1lIHRvIHRoZSBlbmRcbiAgLy8gb2YgdGhlIGNsYXNzLCBidXQgb25seSB3aXRoIGV4cHJlc3Npb24tc3R5bGUgY2xhc3NlcywgdG8gcmVwcmVzZW50IHRoZSBmYWN0IHRoYXQgdGhlIG5hbWUgaXNcbiAgLy8gYXZhaWxhYmxlIHRvIHRoZSBib2R5IG9mIHRoZSBjbGFzcyBidXQgbm90IGFuIG91dGVyIGRlY2xhcmF0aW9uLlxuICBsZXQgbmFtZVNjb3BlU3RhcnRUb2tlbkluZGV4ID0gbnVsbDtcbiAgaWYgKCFpc1N0YXRlbWVudCkge1xuICAgIG5hbWVTY29wZVN0YXJ0VG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgc3RhdGUuc2NvcGVEZXB0aCsrO1xuICB9XG4gIHBhcnNlQ2xhc3NJZChpc1N0YXRlbWVudCwgb3B0aW9uYWxJZCk7XG4gIHBhcnNlQ2xhc3NTdXBlcigpO1xuICBjb25zdCBvcGVuQnJhY2VJbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gIHBhcnNlQ2xhc3NCb2R5KGNvbnRleHRJZCk7XG4gIGlmIChzdGF0ZS5lcnJvcikge1xuICAgIHJldHVybjtcbiAgfVxuICBzdGF0ZS50b2tlbnNbb3BlbkJyYWNlSW5kZXhdLmNvbnRleHRJZCA9IGNvbnRleHRJZDtcbiAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gIGlmIChuYW1lU2NvcGVTdGFydFRva2VuSW5kZXggIT09IG51bGwpIHtcbiAgICBjb25zdCBlbmRUb2tlbkluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aDtcbiAgICBzdGF0ZS5zY29wZXMucHVzaChuZXcgU2NvcGUobmFtZVNjb3BlU3RhcnRUb2tlbkluZGV4LCBlbmRUb2tlbkluZGV4LCBmYWxzZSkpO1xuICAgIHN0YXRlLnNjb3BlRGVwdGgtLTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NsYXNzUHJvcGVydHkoKSB7XG4gIHJldHVybiBtYXRjaCh0dC5lcSkgfHwgbWF0Y2godHQuc2VtaSkgfHwgbWF0Y2godHQuYnJhY2VSKSB8fCBtYXRjaCh0dC5iYW5nKSB8fCBtYXRjaCh0dC5jb2xvbik7XG59XG5cbmZ1bmN0aW9uIGlzQ2xhc3NNZXRob2QoKSB7XG4gIHJldHVybiBtYXRjaCh0dC5wYXJlbkwpIHx8IG1hdGNoKHR0Lmxlc3NUaGFuKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDbGFzc0JvZHkoY2xhc3NDb250ZXh0SWQpIHtcbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG5cbiAgd2hpbGUgKCFlYXQodHQuYnJhY2VSKSAmJiAhc3RhdGUuZXJyb3IpIHtcbiAgICBpZiAoZWF0KHR0LnNlbWkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2godHQuYXQpKSB7XG4gICAgICBwYXJzZURlY29yYXRvcigpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IG1lbWJlclN0YXJ0ID0gc3RhdGUuc3RhcnQ7XG4gICAgcGFyc2VDbGFzc01lbWJlcihtZW1iZXJTdGFydCwgY2xhc3NDb250ZXh0SWQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ2xhc3NNZW1iZXIobWVtYmVyU3RhcnQsIGNsYXNzQ29udGV4dElkKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgdHNQYXJzZU1vZGlmaWVycyhbXG4gICAgICBDb250ZXh0dWFsS2V5d29yZC5fZGVjbGFyZSxcbiAgICAgIENvbnRleHR1YWxLZXl3b3JkLl9wdWJsaWMsXG4gICAgICBDb250ZXh0dWFsS2V5d29yZC5fcHJvdGVjdGVkLFxuICAgICAgQ29udGV4dHVhbEtleXdvcmQuX3ByaXZhdGUsXG4gICAgICBDb250ZXh0dWFsS2V5d29yZC5fb3ZlcnJpZGUsXG4gICAgXSk7XG4gIH1cbiAgbGV0IGlzU3RhdGljID0gZmFsc2U7XG4gIGlmIChtYXRjaCh0dC5uYW1lKSAmJiBzdGF0ZS5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX3N0YXRpYykge1xuICAgIHBhcnNlSWRlbnRpZmllcigpOyAvLyBlYXRzICdzdGF0aWMnXG4gICAgaWYgKGlzQ2xhc3NNZXRob2QoKSkge1xuICAgICAgcGFyc2VDbGFzc01ldGhvZChtZW1iZXJTdGFydCwgLyogaXNDb25zdHJ1Y3RvciAqLyBmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChpc0NsYXNzUHJvcGVydHkoKSkge1xuICAgICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIG90aGVyd2lzZSBzb21ldGhpbmcgc3RhdGljXG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX3N0YXRpYztcbiAgICBpc1N0YXRpYyA9IHRydWU7XG5cbiAgICBpZiAobWF0Y2godHQuYnJhY2VMKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIHN0YXRpYyBibG9jay4gTWFyayB0aGUgd29yZCBcInN0YXRpY1wiIHdpdGggdGhlIGNsYXNzIGNvbnRleHQgSUQgZm9yIGNsYXNzIGVsZW1lbnRcbiAgICAgIC8vIGRldGVjdGlvbiBhbmQgcGFyc2UgYXMgYSByZWd1bGFyIGJsb2NrLlxuICAgICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5jb250ZXh0SWQgPSBjbGFzc0NvbnRleHRJZDtcbiAgICAgIHBhcnNlQmxvY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwYXJzZUNsYXNzTWVtYmVyV2l0aElzU3RhdGljKG1lbWJlclN0YXJ0LCBpc1N0YXRpYywgY2xhc3NDb250ZXh0SWQpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNsYXNzTWVtYmVyV2l0aElzU3RhdGljKFxuICBtZW1iZXJTdGFydCxcbiAgaXNTdGF0aWMsXG4gIGNsYXNzQ29udGV4dElkLFxuKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgaWYgKHRzVHJ5UGFyc2VDbGFzc01lbWJlcldpdGhJc1N0YXRpYyhpc1N0YXRpYykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgaWYgKGVhdCh0dC5zdGFyKSkge1xuICAgIC8vIGEgZ2VuZXJhdG9yXG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCk7XG4gICAgcGFyc2VDbGFzc01ldGhvZChtZW1iZXJTdGFydCwgLyogaXNDb25zdHJ1Y3RvciAqLyBmYWxzZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBpZGVudGlmaWVyIG5hbWUgc28gd2UgY2FuIHRlbGwgaWYgaXQncyBhY3R1YWxseSBhIGtleXdvcmQgbGlrZSBcImFzeW5jXCIsIFwiZ2V0XCIsIG9yXG4gIC8vIFwic2V0XCIuXG4gIHBhcnNlQ2xhc3NQcm9wZXJ0eU5hbWUoY2xhc3NDb250ZXh0SWQpO1xuICBsZXQgaXNDb25zdHJ1Y3RvciA9IGZhbHNlO1xuICBjb25zdCB0b2tlbiA9IHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV07XG4gIC8vIFdlIGFsbG93IFwiY29uc3RydWN0b3JcIiBhcyBlaXRoZXIgYW4gaWRlbnRpZmllciBvciBhIHN0cmluZy5cbiAgaWYgKHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fY29uc3RydWN0b3IpIHtcbiAgICBpc0NvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgfVxuICBwYXJzZVBvc3RNZW1iZXJOYW1lTW9kaWZpZXJzKCk7XG5cbiAgaWYgKGlzQ2xhc3NNZXRob2QoKSkge1xuICAgIHBhcnNlQ2xhc3NNZXRob2QobWVtYmVyU3RhcnQsIGlzQ29uc3RydWN0b3IpO1xuICB9IGVsc2UgaWYgKGlzQ2xhc3NQcm9wZXJ0eSgpKSB7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gIH0gZWxzZSBpZiAodG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9hc3luYyAmJiAhaXNMaW5lVGVybWluYXRvcigpKSB7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHQuX2FzeW5jO1xuICAgIC8vIGFuIGFzeW5jIG1ldGhvZFxuICAgIGNvbnN0IGlzR2VuZXJhdG9yID0gbWF0Y2godHQuc3Rhcik7XG4gICAgaWYgKGlzR2VuZXJhdG9yKSB7XG4gICAgICBuZXh0KCk7XG4gICAgfVxuXG4gICAgLy8gVGhlIHNvLWNhbGxlZCBwYXJzZWQgbmFtZSB3b3VsZCBoYXZlIGJlZW4gXCJhc3luY1wiOiBnZXQgdGhlIHJlYWwgbmFtZS5cbiAgICBwYXJzZUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzQ29udGV4dElkKTtcbiAgICBwYXJzZVBvc3RNZW1iZXJOYW1lTW9kaWZpZXJzKCk7XG4gICAgcGFyc2VDbGFzc01ldGhvZChtZW1iZXJTdGFydCwgZmFsc2UgLyogaXNDb25zdHJ1Y3RvciAqLyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgKHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fZ2V0IHx8XG4gICAgICB0b2tlbi5jb250ZXh0dWFsS2V5d29yZCA9PT0gQ29udGV4dHVhbEtleXdvcmQuX3NldCkgJiZcbiAgICAhKGlzTGluZVRlcm1pbmF0b3IoKSAmJiBtYXRjaCh0dC5zdGFyKSlcbiAgKSB7XG4gICAgaWYgKHRva2VuLmNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fZ2V0KSB7XG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5fZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5fc2V0O1xuICAgIH1cbiAgICAvLyBgZ2V0XFxuKmAgaXMgYW4gdW5pbml0aWFsaXplZCBwcm9wZXJ0eSBuYW1lZCAnZ2V0JyBmb2xsb3dlZCBieSBhIGdlbmVyYXRvci5cbiAgICAvLyBhIGdldHRlciBvciBzZXR0ZXJcbiAgICAvLyBUaGUgc28tY2FsbGVkIHBhcnNlZCBuYW1lIHdvdWxkIGhhdmUgYmVlbiBcImdldC9zZXRcIjogZ2V0IHRoZSByZWFsIG5hbWUuXG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCk7XG4gICAgcGFyc2VDbGFzc01ldGhvZChtZW1iZXJTdGFydCwgLyogaXNDb25zdHJ1Y3RvciAqLyBmYWxzZSk7XG4gIH0gZWxzZSBpZiAodG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9hY2Nlc3NvciAmJiAhaXNMaW5lVGVybWluYXRvcigpKSB7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5TmFtZShjbGFzc0NvbnRleHRJZCk7XG4gICAgcGFyc2VDbGFzc1Byb3BlcnR5KCk7XG4gIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcigpKSB7XG4gICAgLy8gYW4gdW5pbml0aWFsaXplZCBjbGFzcyBwcm9wZXJ0eSAoZHVlIHRvIEFTSSwgc2luY2Ugd2UgZG9uJ3Qgb3RoZXJ3aXNlIHJlY29nbml6ZSB0aGUgbmV4dCB0b2tlbilcbiAgICBwYXJzZUNsYXNzUHJvcGVydHkoKTtcbiAgfSBlbHNlIHtcbiAgICB1bmV4cGVjdGVkKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VDbGFzc01ldGhvZChmdW5jdGlvblN0YXJ0LCBpc0NvbnN0cnVjdG9yKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgdHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKCk7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGlmIChtYXRjaCh0dC5sZXNzVGhhbikpIHtcbiAgICAgIGZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO1xuICAgIH1cbiAgfVxuICBwYXJzZU1ldGhvZChmdW5jdGlvblN0YXJ0LCBpc0NvbnN0cnVjdG9yKTtcbn1cblxuLy8gUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyBwcm9wZXJ0eSwgaWYgaXQgaXMgYSBzaW1wbGUgaWRlbnRpZmllci5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzQ29udGV4dElkKSB7XG4gIHBhcnNlUHJvcGVydHlOYW1lKGNsYXNzQ29udGV4dElkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUG9zdE1lbWJlck5hbWVNb2RpZmllcnMoKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgY29uc3Qgb2xkSXNUeXBlID0gcHVzaFR5cGVDb250ZXh0KDApO1xuICAgIGVhdCh0dC5xdWVzdGlvbik7XG4gICAgcG9wVHlwZUNvbnRleHQob2xkSXNUeXBlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDbGFzc1Byb3BlcnR5KCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIGVhdFR5cGVUb2tlbih0dC5iYW5nKTtcbiAgICB0c1RyeVBhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgfSBlbHNlIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgaWYgKG1hdGNoKHR0LmNvbG9uKSkge1xuICAgICAgZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBpZiAobWF0Y2godHQuZXEpKSB7XG4gICAgY29uc3QgZXF1YWxzVG9rZW5JbmRleCA9IHN0YXRlLnRva2Vucy5sZW5ndGg7XG4gICAgbmV4dCgpO1xuICAgIHBhcnNlTWF5YmVBc3NpZ24oKTtcbiAgICBzdGF0ZS50b2tlbnNbZXF1YWxzVG9rZW5JbmRleF0ucmhzRW5kSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xuICB9XG4gIHNlbWljb2xvbigpO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNsYXNzSWQoaXNTdGF0ZW1lbnQsIG9wdGlvbmFsSWQgPSBmYWxzZSkge1xuICBpZiAoXG4gICAgaXNUeXBlU2NyaXB0RW5hYmxlZCAmJlxuICAgICghaXNTdGF0ZW1lbnQgfHwgb3B0aW9uYWxJZCkgJiZcbiAgICBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2ltcGxlbWVudHMpXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChtYXRjaCh0dC5uYW1lKSkge1xuICAgIHBhcnNlQmluZGluZ0lkZW50aWZpZXIodHJ1ZSk7XG4gIH1cblxuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycygpO1xuICB9IGVsc2UgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBpZiAobWF0Y2godHQubGVzc1RoYW4pKSB7XG4gICAgICBmbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIHdhcyBhIHN1cGVyY2xhc3MuXG5mdW5jdGlvbiBwYXJzZUNsYXNzU3VwZXIoKSB7XG4gIGxldCBoYXNTdXBlciA9IGZhbHNlO1xuICBpZiAoZWF0KHR0Ll9leHRlbmRzKSkge1xuICAgIHBhcnNlRXhwclN1YnNjcmlwdHMoKTtcbiAgICBoYXNTdXBlciA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaGFzU3VwZXIgPSBmYWxzZTtcbiAgfVxuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzQWZ0ZXJQYXJzZUNsYXNzU3VwZXIoaGFzU3VwZXIpO1xuICB9IGVsc2UgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93QWZ0ZXJQYXJzZUNsYXNzU3VwZXIoaGFzU3VwZXIpO1xuICB9XG59XG5cbi8vIFBhcnNlcyBtb2R1bGUgZXhwb3J0IGRlY2xhcmF0aW9uLlxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFeHBvcnQoKSB7XG4gIGNvbnN0IGV4cG9ydEluZGV4ID0gc3RhdGUudG9rZW5zLmxlbmd0aCAtIDE7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkKSB7XG4gICAgaWYgKHRzVHJ5UGFyc2VFeHBvcnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvLyBleHBvcnQgKiBmcm9tICcuLi4nXG4gIGlmIChzaG91bGRQYXJzZUV4cG9ydFN0YXIoKSkge1xuICAgIHBhcnNlRXhwb3J0U3RhcigpO1xuICB9IGVsc2UgaWYgKGlzRXhwb3J0RGVmYXVsdFNwZWNpZmllcigpKSB7XG4gICAgLy8gZXhwb3J0IGRlZmF1bHQgZnJvbVxuICAgIHBhcnNlSWRlbnRpZmllcigpO1xuICAgIGlmIChtYXRjaCh0dC5jb21tYSkgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5zdGFyKSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgICAgZXhwZWN0KHR0LnN0YXIpO1xuICAgICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpO1xuICAgICAgcGFyc2VJZGVudGlmaWVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlRXhwb3J0U3BlY2lmaWVyc01heWJlKCk7XG4gICAgfVxuICAgIHBhcnNlRXhwb3J0RnJvbSgpO1xuICB9IGVsc2UgaWYgKGVhdCh0dC5fZGVmYXVsdCkpIHtcbiAgICAvLyBleHBvcnQgZGVmYXVsdCAuLi5cbiAgICBwYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCk7XG4gIH0gZWxzZSBpZiAoc2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbigpKSB7XG4gICAgcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpO1xuICB9IGVsc2Uge1xuICAgIC8vIGV4cG9ydCB7IHgsIHkgYXMgeiB9IFtmcm9tICcuLi4nXVxuICAgIHBhcnNlRXhwb3J0U3BlY2lmaWVycygpO1xuICAgIHBhcnNlRXhwb3J0RnJvbSgpO1xuICB9XG4gIHN0YXRlLnRva2Vuc1tleHBvcnRJbmRleF0ucmhzRW5kSW5kZXggPSBzdGF0ZS50b2tlbnMubGVuZ3RoO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIGlmICh0c1RyeVBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIGlmIChmbG93VHJ5UGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIGNvbnN0IGZ1bmN0aW9uU3RhcnQgPSBzdGF0ZS5zdGFydDtcbiAgaWYgKGVhdCh0dC5fZnVuY3Rpb24pKSB7XG4gICAgcGFyc2VGdW5jdGlvbihmdW5jdGlvblN0YXJ0LCB0cnVlLCB0cnVlKTtcbiAgfSBlbHNlIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSAmJiBsb29rYWhlYWRUeXBlKCkgPT09IHR0Ll9mdW5jdGlvbikge1xuICAgIC8vIGFzeW5jIGZ1bmN0aW9uIGRlY2xhcmF0aW9uXG4gICAgZWF0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXN5bmMpO1xuICAgIGVhdCh0dC5fZnVuY3Rpb24pO1xuICAgIHBhcnNlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgdHJ1ZSwgdHJ1ZSk7XG4gIH0gZWxzZSBpZiAobWF0Y2godHQuX2NsYXNzKSkge1xuICAgIHBhcnNlQ2xhc3ModHJ1ZSwgdHJ1ZSk7XG4gIH0gZWxzZSBpZiAobWF0Y2godHQuYXQpKSB7XG4gICAgcGFyc2VEZWNvcmF0b3JzKCk7XG4gICAgcGFyc2VDbGFzcyh0cnVlLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZU1heWJlQXNzaWduKCk7XG4gICAgc2VtaWNvbG9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpIHtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQpIHtcbiAgICB0c1BhcnNlRXhwb3J0RGVjbGFyYXRpb24oKTtcbiAgfSBlbHNlIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgZmxvd1BhcnNlRXhwb3J0RGVjbGFyYXRpb24oKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZVN0YXRlbWVudCh0cnVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0V4cG9ydERlZmF1bHRTcGVjaWZpZXIoKSB7XG4gIGlmIChpc1R5cGVTY3JpcHRFbmFibGVkICYmIHRzSXNEZWNsYXJhdGlvblN0YXJ0KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAoaXNGbG93RW5hYmxlZCAmJiBmbG93U2hvdWxkRGlzYWxsb3dFeHBvcnREZWZhdWx0U3BlY2lmaWVyKCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKG1hdGNoKHR0Lm5hbWUpKSB7XG4gICAgcmV0dXJuIHN0YXRlLmNvbnRleHR1YWxLZXl3b3JkICE9PSBDb250ZXh0dWFsS2V5d29yZC5fYXN5bmM7XG4gIH1cblxuICBpZiAoIW1hdGNoKHR0Ll9kZWZhdWx0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IF9uZXh0ID0gbmV4dFRva2VuU3RhcnQoKTtcbiAgY29uc3QgbG9va2FoZWFkID0gbG9va2FoZWFkVHlwZUFuZEtleXdvcmQoKTtcbiAgY29uc3QgaGFzRnJvbSA9XG4gICAgbG9va2FoZWFkLnR5cGUgPT09IHR0Lm5hbWUgJiYgbG9va2FoZWFkLmNvbnRleHR1YWxLZXl3b3JkID09PSBDb250ZXh0dWFsS2V5d29yZC5fZnJvbTtcbiAgaWYgKGxvb2thaGVhZC50eXBlID09PSB0dC5jb21tYSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIGxvb2thaGVhZCBhZ2FpbiB3aGVuIGBleHBvcnQgZGVmYXVsdCBmcm9tYCBpcyBzZWVuXG4gIGlmIChoYXNGcm9tKSB7XG4gICAgY29uc3QgbmV4dEFmdGVyRnJvbSA9IGlucHV0LmNoYXJDb2RlQXQobmV4dFRva2VuU3RhcnRTaW5jZShfbmV4dCArIDQpKTtcbiAgICByZXR1cm4gbmV4dEFmdGVyRnJvbSA9PT0gY2hhckNvZGVzLnF1b3RhdGlvbk1hcmsgfHwgbmV4dEFmdGVyRnJvbSA9PT0gY2hhckNvZGVzLmFwb3N0cm9waGU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydFNwZWNpZmllcnNNYXliZSgpIHtcbiAgaWYgKGVhdCh0dC5jb21tYSkpIHtcbiAgICBwYXJzZUV4cG9ydFNwZWNpZmllcnMoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFeHBvcnRGcm9tKCkge1xuICBpZiAoZWF0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICBwYXJzZUV4cHJBdG9tKCk7XG4gICAgbWF5YmVQYXJzZUltcG9ydEF0dHJpYnV0ZXMoKTtcbiAgfVxuICBzZW1pY29sb24oKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkUGFyc2VFeHBvcnRTdGFyKCkge1xuICBpZiAoaXNGbG93RW5hYmxlZCkge1xuICAgIHJldHVybiBmbG93U2hvdWxkUGFyc2VFeHBvcnRTdGFyKCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1hdGNoKHR0LnN0YXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlRXhwb3J0U3RhcigpIHtcbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VFeHBvcnRTdGFyKCk7XG4gIH0gZWxzZSB7XG4gICAgYmFzZVBhcnNlRXhwb3J0U3RhcigpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYXNlUGFyc2VFeHBvcnRTdGFyKCkge1xuICBleHBlY3QodHQuc3Rhcik7XG5cbiAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpKSB7XG4gICAgcGFyc2VFeHBvcnROYW1lc3BhY2UoKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZUV4cG9ydEZyb20oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUV4cG9ydE5hbWVzcGFjZSgpIHtcbiAgbmV4dCgpO1xuICBzdGF0ZS50b2tlbnNbc3RhdGUudG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPSB0dC5fYXM7XG4gIHBhcnNlSWRlbnRpZmllcigpO1xuICBwYXJzZUV4cG9ydFNwZWNpZmllcnNNYXliZSgpO1xuICBwYXJzZUV4cG9ydEZyb20oKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbigpIHtcbiAgcmV0dXJuIChcbiAgICAoaXNUeXBlU2NyaXB0RW5hYmxlZCAmJiB0c0lzRGVjbGFyYXRpb25TdGFydCgpKSB8fFxuICAgIChpc0Zsb3dFbmFibGVkICYmIGZsb3dTaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkpIHx8XG4gICAgc3RhdGUudHlwZSA9PT0gdHQuX3ZhciB8fFxuICAgIHN0YXRlLnR5cGUgPT09IHR0Ll9jb25zdCB8fFxuICAgIHN0YXRlLnR5cGUgPT09IHR0Ll9sZXQgfHxcbiAgICBzdGF0ZS50eXBlID09PSB0dC5fZnVuY3Rpb24gfHxcbiAgICBzdGF0ZS50eXBlID09PSB0dC5fY2xhc3MgfHxcbiAgICBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSB8fFxuICAgIG1hdGNoKHR0LmF0KVxuICApO1xufVxuXG4vLyBQYXJzZXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBtb2R1bGUgZXhwb3J0cy5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUV4cG9ydFNwZWNpZmllcnMoKSB7XG4gIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgLy8gZXhwb3J0IHsgeCwgeSBhcyB6IH0gW2Zyb20gJy4uLiddXG4gIGV4cGVjdCh0dC5icmFjZUwpO1xuXG4gIHdoaWxlICghZWF0KHR0LmJyYWNlUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBlY3QodHQuY29tbWEpO1xuICAgICAgaWYgKGVhdCh0dC5icmFjZVIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBwYXJzZUV4cG9ydFNwZWNpZmllcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlRXhwb3J0U3BlY2lmaWVyKCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzUGFyc2VFeHBvcnRTcGVjaWZpZXIoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyc2VJZGVudGlmaWVyKCk7XG4gIHN0YXRlLnRva2Vuc1tzdGF0ZS50b2tlbnMubGVuZ3RoIC0gMV0uaWRlbnRpZmllclJvbGUgPSBJZGVudGlmaWVyUm9sZS5FeHBvcnRBY2Nlc3M7XG4gIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9hcykpIHtcbiAgICBwYXJzZUlkZW50aWZpZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFN0YXJ0aW5nIGF0IHRoZSBgbW9kdWxlYCB0b2tlbiBpbiBhbiBpbXBvcnQsIGRldGVybWluZSBpZiBpdCB3YXMgdHJ1bHkgYW5cbiAqIGltcG9ydCByZWZsZWN0aW9uIHRva2VuIG9yIGp1c3QgbG9va3MgbGlrZSBvbmUuXG4gKlxuICogUmV0dXJucyB0cnVlIGZvcjpcbiAqIGltcG9ydCBtb2R1bGUgZm9vIGZyb20gXCJmb29cIjtcbiAqIGltcG9ydCBtb2R1bGUgZnJvbSBmcm9tIFwiZm9vXCI7XG4gKlxuICogUmV0dXJucyBmYWxzZSBmb3I6XG4gKiBpbXBvcnQgbW9kdWxlIGZyb20gXCJmb29cIjtcbiAqIGltcG9ydCBtb2R1bGUsIHtiYXJ9IGZyb20gXCJmb29cIjtcbiAqL1xuZnVuY3Rpb24gaXNJbXBvcnRSZWZsZWN0aW9uKCkge1xuICBjb25zdCBzbmFwc2hvdCA9IHN0YXRlLnNuYXBzaG90KCk7XG4gIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX21vZHVsZSk7XG4gIGlmIChlYXRDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSkge1xuICAgIGlmIChpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pKSB7XG4gICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS5yZXN0b3JlRnJvbVNuYXBzaG90KHNuYXBzaG90KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobWF0Y2godHQuY29tbWEpKSB7XG4gICAgc3RhdGUucmVzdG9yZUZyb21TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHN0YXRlLnJlc3RvcmVGcm9tU25hcHNob3Qoc25hcHNob3QpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogRWF0IHRoZSBcIm1vZHVsZVwiIHRva2VuIGZyb20gdGhlIGltcG9ydCByZWZsZWN0aW9uIHByb3Bvc2FsLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaW1wb3J0LXJlZmxlY3Rpb25cbiAqL1xuZnVuY3Rpb24gcGFyc2VNYXliZUltcG9ydFJlZmxlY3Rpb24oKSB7XG4gIC8vIGlzSW1wb3J0UmVmbGVjdGlvbiBkb2VzIHNuYXBzaG90L3Jlc3RvcmUsIHNvIG9ubHkgcnVuIGl0IGlmIHdlIHNlZSB0aGUgd29yZFxuICAvLyBcIm1vZHVsZVwiLlxuICBpZiAoaXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpICYmIGlzSW1wb3J0UmVmbGVjdGlvbigpKSB7XG4gICAgbmV4dCgpO1xuICB9XG59XG5cbi8vIFBhcnNlcyBpbXBvcnQgZGVjbGFyYXRpb24uXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUltcG9ydCgpIHtcbiAgaWYgKGlzVHlwZVNjcmlwdEVuYWJsZWQgJiYgbWF0Y2godHQubmFtZSkgJiYgbG9va2FoZWFkVHlwZSgpID09PSB0dC5lcSkge1xuICAgIHRzUGFyc2VJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbigpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCAmJiBpc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpKSB7XG4gICAgY29uc3QgbG9va2FoZWFkID0gbG9va2FoZWFkVHlwZUFuZEtleXdvcmQoKTtcbiAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IHR0Lm5hbWUgJiYgbG9va2FoZWFkLmNvbnRleHR1YWxLZXl3b3JkICE9PSBDb250ZXh0dWFsS2V5d29yZC5fZnJvbSkge1xuICAgICAgLy8gT25lIG9mIHRoZXNlIGBpbXBvcnQgdHlwZWAgY2FzZXM6XG4gICAgICAvLyBpbXBvcnQgdHlwZSBUID0gcmVxdWlyZSgnVCcpO1xuICAgICAgLy8gaW1wb3J0IHR5cGUgQSBmcm9tICdBJztcbiAgICAgIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpO1xuICAgICAgaWYgKGxvb2thaGVhZFR5cGUoKSA9PT0gdHQuZXEpIHtcbiAgICAgICAgdHNQYXJzZUltcG9ydEVxdWFsc0RlY2xhcmF0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoaXMgaXMgYW4gYGltcG9ydCB0eXBlLi4uZnJvbWAgc3RhdGVtZW50LCB0aGVuIHdlIGFscmVhZHkgYXRlIHRoZVxuICAgICAgLy8gdHlwZSB0b2tlbiwgc28gcHJvY2VlZCB0byB0aGUgcmVndWxhciBpbXBvcnQgcGFyc2VyLlxuICAgIH0gZWxzZSBpZiAobG9va2FoZWFkLnR5cGUgPT09IHR0LnN0YXIgfHwgbG9va2FoZWFkLnR5cGUgPT09IHR0LmJyYWNlTCkge1xuICAgICAgLy8gT25lIG9mIHRoZXNlIGBpbXBvcnQgdHlwZWAgY2FzZXMsIGluIHdoaWNoIGNhc2Ugd2UgY2FuIGVhdCB0aGUgdHlwZSB0b2tlblxuICAgICAgLy8gYW5kIHByb2NlZWQgYXMgbm9ybWFsOlxuICAgICAgLy8gaW1wb3J0IHR5cGUgKiBhcyBBIGZyb20gJ0EnO1xuICAgICAgLy8gaW1wb3J0IHR5cGUge2F9IGZyb20gJ0EnO1xuICAgICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fdHlwZSk7XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIGltcG9ydGluZyB0aGUgbmFtZSBcInR5cGVcIi5cbiAgfVxuXG4gIC8vIGltcG9ydCAnLi4uJ1xuICBpZiAobWF0Y2godHQuc3RyaW5nKSkge1xuICAgIHBhcnNlRXhwckF0b20oKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZU1heWJlSW1wb3J0UmVmbGVjdGlvbigpO1xuICAgIHBhcnNlSW1wb3J0U3BlY2lmaWVycygpO1xuICAgIGV4cGVjdENvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pO1xuICAgIHBhcnNlRXhwckF0b20oKTtcbiAgfVxuICBtYXliZVBhcnNlSW1wb3J0QXR0cmlidXRlcygpO1xuICBzZW1pY29sb24oKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5mdW5jdGlvbiBzaG91bGRQYXJzZURlZmF1bHRJbXBvcnQoKSB7XG4gIHJldHVybiBtYXRjaCh0dC5uYW1lKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VJbXBvcnRTcGVjaWZpZXJMb2NhbCgpIHtcbiAgcGFyc2VJbXBvcnRlZElkZW50aWZpZXIoKTtcbn1cblxuLy8gUGFyc2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbW9kdWxlIGltcG9ydHMuXG5mdW5jdGlvbiBwYXJzZUltcG9ydFNwZWNpZmllcnMoKSB7XG4gIGlmIChpc0Zsb3dFbmFibGVkKSB7XG4gICAgZmxvd1N0YXJ0UGFyc2VJbXBvcnRTcGVjaWZpZXJzKCk7XG4gIH1cblxuICBsZXQgZmlyc3QgPSB0cnVlO1xuICBpZiAoc2hvdWxkUGFyc2VEZWZhdWx0SW1wb3J0KCkpIHtcbiAgICAvLyBpbXBvcnQgZGVmYXVsdE9iaiwgeyB4LCB5IGFzIHogfSBmcm9tICcuLi4nXG4gICAgcGFyc2VJbXBvcnRTcGVjaWZpZXJMb2NhbCgpO1xuXG4gICAgaWYgKCFlYXQodHQuY29tbWEpKSByZXR1cm47XG4gIH1cblxuICBpZiAobWF0Y2godHQuc3RhcikpIHtcbiAgICBuZXh0KCk7XG4gICAgZXhwZWN0Q29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpO1xuXG4gICAgcGFyc2VJbXBvcnRTcGVjaWZpZXJMb2NhbCgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZXhwZWN0KHR0LmJyYWNlTCk7XG4gIHdoaWxlICghZWF0KHR0LmJyYWNlUikgJiYgIXN0YXRlLmVycm9yKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZXRlY3QgYW4gYXR0ZW1wdCB0byBkZWVwIGRlc3RydWN0dXJlXG4gICAgICBpZiAoZWF0KHR0LmNvbG9uKSkge1xuICAgICAgICB1bmV4cGVjdGVkKFxuICAgICAgICAgIFwiRVMyMDE1IG5hbWVkIGltcG9ydHMgZG8gbm90IGRlc3RydWN0dXJlLiBVc2UgYW5vdGhlciBzdGF0ZW1lbnQgZm9yIGRlc3RydWN0dXJpbmcgYWZ0ZXIgdGhlIGltcG9ydC5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZXhwZWN0KHR0LmNvbW1hKTtcbiAgICAgIGlmIChlYXQodHQuYnJhY2VSKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJzZUltcG9ydFNwZWNpZmllcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlSW1wb3J0U3BlY2lmaWVyKCkge1xuICBpZiAoaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRzUGFyc2VJbXBvcnRTcGVjaWZpZXIoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGlzRmxvd0VuYWJsZWQpIHtcbiAgICBmbG93UGFyc2VJbXBvcnRTcGVjaWZpZXIoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyc2VJbXBvcnRlZElkZW50aWZpZXIoKTtcbiAgaWYgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXMpKSB7XG4gICAgc3RhdGUudG9rZW5zW3N0YXRlLnRva2Vucy5sZW5ndGggLSAxXS5pZGVudGlmaWVyUm9sZSA9IElkZW50aWZpZXJSb2xlLkltcG9ydEFjY2VzcztcbiAgICBuZXh0KCk7XG4gICAgcGFyc2VJbXBvcnRlZElkZW50aWZpZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGltcG9ydCBhdHRyaWJ1dGVzIGxpa2UgYHdpdGgge3R5cGU6IFwianNvblwifWAsIG9yIHRoZSBsZWdhY3kgZm9ybVxuICogYGFzc2VydCB7dHlwZTogXCJqc29uXCJ9YC5cbiAqXG4gKiBJbXBvcnQgYXR0cmlidXRlcyB0ZWNobmljYWxseSBoYXZlIHRoZWlyIG93biBzeW50YXgsIGJ1dCBhcmUgYWx3YXlzIHBhcnNlYWJsZVxuICogYXMgYSBwbGFpbiBKUyBvYmplY3QsIHNvIGp1c3QgZG8gdGhhdCBmb3Igc2ltcGxpY2l0eS5cbiAqL1xuZnVuY3Rpb24gbWF5YmVQYXJzZUltcG9ydEF0dHJpYnV0ZXMoKSB7XG4gIGlmIChtYXRjaCh0dC5fd2l0aCkgfHwgKGlzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fYXNzZXJ0KSAmJiAhaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpKSB7XG4gICAgbmV4dCgpO1xuICAgIHBhcnNlT2JqKGZhbHNlLCBmYWxzZSk7XG4gIH1cbn1cbiIsICJcbmltcG9ydCB7bmV4dFRva2VuLCBza2lwTGluZUNvbW1lbnR9IGZyb20gXCIuLi90b2tlbml6ZXIvaW5kZXhcIjtcbmltcG9ydCB7Y2hhckNvZGVzfSBmcm9tIFwiLi4vdXRpbC9jaGFyY29kZXNcIjtcbmltcG9ydCB7aW5wdXQsIHN0YXRlfSBmcm9tIFwiLi9iYXNlXCI7XG5pbXBvcnQge3BhcnNlVG9wTGV2ZWx9IGZyb20gXCIuL3N0YXRlbWVudFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGaWxlKCkge1xuICAvLyBJZiBlbmFibGVkLCBza2lwIGxlYWRpbmcgaGFzaGJhbmcgbGluZS5cbiAgaWYgKFxuICAgIHN0YXRlLnBvcyA9PT0gMCAmJlxuICAgIGlucHV0LmNoYXJDb2RlQXQoMCkgPT09IGNoYXJDb2Rlcy5udW1iZXJTaWduICYmXG4gICAgaW5wdXQuY2hhckNvZGVBdCgxKSA9PT0gY2hhckNvZGVzLmV4Y2xhbWF0aW9uTWFya1xuICApIHtcbiAgICBza2lwTGluZUNvbW1lbnQoMik7XG4gIH1cbiAgbmV4dFRva2VuKCk7XG4gIHJldHVybiBwYXJzZVRvcExldmVsKCk7XG59XG4iLCAiXG5cbmltcG9ydCB7YXVnbWVudEVycm9yLCBpbml0UGFyc2VyLCBzdGF0ZX0gZnJvbSBcIi4vdHJhdmVyc2VyL2Jhc2VcIjtcbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tIFwiLi90cmF2ZXJzZXIvaW5kZXhcIjtcblxuZXhwb3J0IGNsYXNzIEZpbGUge1xuICBcbiAgXG5cbiAgY29uc3RydWN0b3IodG9rZW5zLCBzY29wZXMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLnNjb3BlcyA9IHNjb3BlcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoXG4gIGlucHV0LFxuICBpc0pTWEVuYWJsZWQsXG4gIGlzVHlwZVNjcmlwdEVuYWJsZWQsXG4gIGlzRmxvd0VuYWJsZWQsXG4pIHtcbiAgaWYgKGlzRmxvd0VuYWJsZWQgJiYgaXNUeXBlU2NyaXB0RW5hYmxlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb21iaW5lIGZsb3cgYW5kIHR5cGVzY3JpcHQgcGx1Z2lucy5cIik7XG4gIH1cbiAgaW5pdFBhcnNlcihpbnB1dCwgaXNKU1hFbmFibGVkLCBpc1R5cGVTY3JpcHRFbmFibGVkLCBpc0Zsb3dFbmFibGVkKTtcbiAgY29uc3QgcmVzdWx0ID0gcGFyc2VGaWxlKCk7XG4gIGlmIChzdGF0ZS5lcnJvcikge1xuICAgIHRocm93IGF1Z21lbnRFcnJvcihzdGF0ZS5lcnJvcik7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiIsICJpbXBvcnQge0NvbnRleHR1YWxLZXl3b3JkfSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci9rZXl3b3Jkc1wiO1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBvcHRpb25hbCBjaGFpbiBvciBudWxsaXNoIGNvYWxlc2Npbmcgb3BlcmF0aW9uIGhhcyBhbnkgYXdhaXQgc3RhdGVtZW50cyBpblxuICogaXQuIElmIHNvLCB3ZSdsbCBuZWVkIHRvIHRyYW5zcGlsZSB0byBhbiBhc3luYyBvcGVyYXRpb24uXG4gKlxuICogV2UgY29tcHV0ZSB0aGlzIGJ5IHdhbGtpbmcgdGhlIGxlbmd0aCBvZiB0aGUgb3BlcmF0aW9uIGFuZCByZXR1cm5pbmcgdHJ1ZSBpZiB3ZSBzZWUgYW4gYXdhaXRcbiAqIGtleXdvcmQgdXNlZCBhcyBhIHJlYWwgYXdhaXQgKHJhdGhlciB0aGFuIGFuIG9iamVjdCBrZXkgb3IgcHJvcGVydHkgYWNjZXNzKS4gTmVzdGVkIG9wdGlvbmFsXG4gKiBjaGFpbi9udWxsaXNoIG9wZXJhdGlvbnMgbmVlZCB0byBiZSB0cmFja2VkIGJ1dCBkb24ndCBzaWxlbmNlIGF3YWl0LCBidXQgYSBuZXN0ZWQgYXN5bmMgZnVuY3Rpb25cbiAqIChvciBhbnkgb3RoZXIgbmVzdGVkIHNjb3BlKSB3aWxsIG1ha2UgdGhlIGF3YWl0IG5vdCBjb3VudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBc3luY09wZXJhdGlvbih0b2tlbnMpIHtcbiAgbGV0IGluZGV4ID0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICBsZXQgZGVwdGggPSAwO1xuICBjb25zdCBzdGFydFRva2VuID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICBkbyB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnMudG9rZW5zW2luZGV4XTtcbiAgICBpZiAodG9rZW4uaXNPcHRpb25hbENoYWluU3RhcnQpIHtcbiAgICAgIGRlcHRoKys7XG4gICAgfVxuICAgIGlmICh0b2tlbi5pc09wdGlvbmFsQ2hhaW5FbmQpIHtcbiAgICAgIGRlcHRoLS07XG4gICAgfVxuICAgIGRlcHRoICs9IHRva2VuLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0cztcbiAgICBkZXB0aCAtPSB0b2tlbi5udW1OdWxsaXNoQ29hbGVzY2VFbmRzO1xuXG4gICAgaWYgKFxuICAgICAgdG9rZW4uY29udGV4dHVhbEtleXdvcmQgPT09IENvbnRleHR1YWxLZXl3b3JkLl9hd2FpdCAmJlxuICAgICAgdG9rZW4uaWRlbnRpZmllclJvbGUgPT0gbnVsbCAmJlxuICAgICAgdG9rZW4uc2NvcGVEZXB0aCA9PT0gc3RhcnRUb2tlbi5zY29wZURlcHRoXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaW5kZXggKz0gMTtcbiAgfSB3aGlsZSAoZGVwdGggPiAwICYmIGluZGV4IDwgdG9rZW5zLnRva2Vucy5sZW5ndGgpO1xuICByZXR1cm4gZmFsc2U7XG59XG4iLCAiXG5cblxuaW1wb3J0IHsgVG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzXCI7XG5pbXBvcnQgaXNBc3luY09wZXJhdGlvbiBmcm9tIFwiLi91dGlsL2lzQXN5bmNPcGVyYXRpb25cIjtcblxuXG5cblxuXG5cblxuXG5cblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUb2tlblByb2Nlc3NvciB7XG4gICBfX2luaXQoKSB7dGhpcy5yZXN1bHRDb2RlID0gXCJcIn1cbiAgLy8gQXJyYXkgbWFwcGluZyBpbnB1dCB0b2tlbiBpbmRleCB0byBvcHRpb25hbCBzdHJpbmcgaW5kZXggcG9zaXRpb24gaW4gdGhlXG4gIC8vIG91dHB1dCBjb2RlLlxuICAgX19pbml0MigpIHt0aGlzLnJlc3VsdE1hcHBpbmdzID0gbmV3IEFycmF5KHRoaXMudG9rZW5zLmxlbmd0aCl9XG4gICBfX2luaXQzKCkge3RoaXMudG9rZW5JbmRleCA9IDB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgIGNvZGUsXG4gICAgIHRva2VucyxcbiAgICAgaXNGbG93RW5hYmxlZCxcbiAgICAgZGlzYWJsZUVTVHJhbnNmb3JtcyxcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgKSB7O3RoaXMuY29kZSA9IGNvZGU7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5pc0Zsb3dFbmFibGVkID0gaXNGbG93RW5hYmxlZDt0aGlzLmRpc2FibGVFU1RyYW5zZm9ybXMgPSBkaXNhYmxlRVNUcmFuc2Zvcm1zO3RoaXMuaGVscGVyTWFuYWdlciA9IGhlbHBlck1hbmFnZXI7VG9rZW5Qcm9jZXNzb3IucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpO1Rva2VuUHJvY2Vzc29yLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7VG9rZW5Qcm9jZXNzb3IucHJvdG90eXBlLl9faW5pdDMuY2FsbCh0aGlzKTt9XG5cbiAgLyoqXG4gICAqIFNuYXBzaG90IHRoZSB0b2tlbiBzdGF0ZSBpbiBhIHdheSB0aGF0IGNhbiBiZSByZXN0b3JlZCBsYXRlciwgdXNlZnVsIGZvclxuICAgKiB0aGluZ3MgbGlrZSBsb29rYWhlYWQuXG4gICAqXG4gICAqIHJlc3VsdE1hcHBpbmdzIGRvIG5vdCBuZWVkIHRvIGJlIGNvcGllZCBzaW5jZSBpbiBhbGwgdXNlIGNhc2VzLCB0aGV5IHdpbGxcbiAgICogYmUgb3ZlcndyaXR0ZW4gYW55d2F5IGFmdGVyIHJlc3RvcmUuXG4gICAqL1xuICBzbmFwc2hvdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzdWx0Q29kZTogdGhpcy5yZXN1bHRDb2RlLFxuICAgICAgdG9rZW5JbmRleDogdGhpcy50b2tlbkluZGV4LFxuICAgIH07XG4gIH1cblxuICByZXN0b3JlVG9TbmFwc2hvdChzbmFwc2hvdCkge1xuICAgIHRoaXMucmVzdWx0Q29kZSA9IHNuYXBzaG90LnJlc3VsdENvZGU7XG4gICAgdGhpcy50b2tlbkluZGV4ID0gc25hcHNob3QudG9rZW5JbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW5kIHJldHVybiB0aGUgY29kZSBnZW5lcmF0ZWQgc2luY2UgdGhlIHNuYXBzaG90LCBsZWF2aW5nIHRoZVxuICAgKiBjdXJyZW50IHRva2VuIHBvc2l0aW9uIGluLXBsYWNlLiBVbmxpa2UgbW9zdCBUb2tlblByb2Nlc3NvciBvcGVyYXRpb25zLFxuICAgKiB0aGlzIG9wZXJhdGlvbiBjYW4gcmVzdWx0IGluIGlucHV0L291dHB1dCBsaW5lIG51bWJlciBtaXNtYXRjaGVzIGJlY2F1c2VcbiAgICogdGhlIHJlbW92ZWQgY29kZSBtYXkgY29udGFpbiBuZXdsaW5lcywgc28gdGhpcyBvcGVyYXRpb24gc2hvdWxkIGJlIHVzZWRcbiAgICogc3BhcmluZ2x5LlxuICAgKi9cbiAgZGFuZ2Vyb3VzbHlHZXRBbmRSZW1vdmVDb2RlU2luY2VTbmFwc2hvdChzbmFwc2hvdCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucmVzdWx0Q29kZS5zbGljZShzbmFwc2hvdC5yZXN1bHRDb2RlLmxlbmd0aCk7XG4gICAgdGhpcy5yZXN1bHRDb2RlID0gc25hcHNob3QucmVzdWx0Q29kZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5yZXN1bHRDb2RlID0gXCJcIjtcbiAgICB0aGlzLnJlc3VsdE1hcHBpbmdzID0gbmV3IEFycmF5KHRoaXMudG9rZW5zLmxlbmd0aCk7XG4gICAgdGhpcy50b2tlbkluZGV4ID0gMDtcbiAgfVxuXG4gIG1hdGNoZXNDb250ZXh0dWFsQXRJbmRleChpbmRleCwgY29udGV4dHVhbEtleXdvcmQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0Lm5hbWUpICYmXG4gICAgICB0aGlzLnRva2Vuc1tpbmRleF0uY29udGV4dHVhbEtleXdvcmQgPT09IGNvbnRleHR1YWxLZXl3b3JkXG4gICAgKTtcbiAgfVxuXG4gIGlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkge1xuICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gcHJvY2VzcyBlc2NhcGVzIHNpbmNlIHRlY2huaWNhbGx5IHlvdSBjYW4gaGF2ZSB1bmljb2RlIGVzY2FwZXMgaW4gdmFyaWFibGVcbiAgICAvLyBuYW1lcy5cbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRoaXMudG9rZW5zW2luZGV4XSk7XG4gIH1cblxuICBpZGVudGlmaWVyTmFtZUF0UmVsYXRpdmVJbmRleChyZWxhdGl2ZUluZGV4KSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0aGlzLnRva2VuQXRSZWxhdGl2ZUluZGV4KHJlbGF0aXZlSW5kZXgpKTtcbiAgfVxuXG4gIGlkZW50aWZpZXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odGhpcy5jdXJyZW50VG9rZW4oKSk7XG4gIH1cblxuICBpZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgfVxuXG4gIHJhd0NvZGVGb3JUb2tlbih0b2tlbikge1xuICAgIHJldHVybiB0aGlzLmNvZGUuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCk7XG4gIH1cblxuICBzdHJpbmdWYWx1ZUF0SW5kZXgoaW5kZXgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdWYWx1ZUZvclRva2VuKHRoaXMudG9rZW5zW2luZGV4XSk7XG4gIH1cblxuICBzdHJpbmdWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdWYWx1ZUZvclRva2VuKHRoaXMuY3VycmVudFRva2VuKCkpO1xuICB9XG5cbiAgc3RyaW5nVmFsdWVGb3JUb2tlbih0b2tlbikge1xuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBpZGVudGlmeSB3aGVuIHR3byBpbXBvcnRzIGFyZSB0aGUgc2FtZSBhbmQgdG8gcmVzb2x2ZSBUeXBlU2NyaXB0IGVudW0ga2V5cy5cbiAgICAvLyBJZGVhbGx5IHdlJ2QgcHJvY2VzcyBlc2NhcGVzIHdpdGhpbiB0aGUgc3RyaW5ncywgYnV0IGZvciBub3cgd2UgcHJldHR5IG11Y2ggdGFrZSB0aGUgcmF3XG4gICAgLy8gY29kZS5cbiAgICByZXR1cm4gdGhpcy5jb2RlLnNsaWNlKHRva2VuLnN0YXJ0ICsgMSwgdG9rZW4uZW5kIC0gMSk7XG4gIH1cblxuICBtYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHQxKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MTtcbiAgfVxuXG4gIG1hdGNoZXMyQXRJbmRleChpbmRleCwgdDEsIHQyKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MSAmJiB0aGlzLnRva2Vuc1tpbmRleCArIDFdLnR5cGUgPT09IHQyO1xuICB9XG5cbiAgbWF0Y2hlczNBdEluZGV4KGluZGV4LCB0MSwgdDIsIHQzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9rZW5zW2luZGV4XS50eXBlID09PSB0MSAmJlxuICAgICAgdGhpcy50b2tlbnNbaW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbaW5kZXggKyAyXS50eXBlID09PSB0M1xuICAgICk7XG4gIH1cblxuICBtYXRjaGVzMSh0MSkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxO1xuICB9XG5cbiAgbWF0Y2hlczIodDEsIHQyKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0udHlwZSA9PT0gdDEgJiYgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMV0udHlwZSA9PT0gdDI7XG4gIH1cblxuICBtYXRjaGVzMyh0MSwgdDIsIHQzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0udHlwZSA9PT0gdDEgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDFdLnR5cGUgPT09IHQyICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAyXS50eXBlID09PSB0M1xuICAgICk7XG4gIH1cblxuICBtYXRjaGVzNCh0MSwgdDIsIHQzLCB0NCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMl0udHlwZSA9PT0gdDMgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDNdLnR5cGUgPT09IHQ0XG4gICAgKTtcbiAgfVxuXG4gIG1hdGNoZXM1KHQxLCB0MiwgdDMsIHQ0LCB0NSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgPT09IHQxICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyAxXS50eXBlID09PSB0MiAmJlxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgMl0udHlwZSA9PT0gdDMgJiZcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleCArIDNdLnR5cGUgPT09IHQ0ICYmXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggKyA0XS50eXBlID09PSB0NVxuICAgICk7XG4gIH1cblxuICBtYXRjaGVzQ29udGV4dHVhbChjb250ZXh0dWFsS2V5d29yZCkge1xuICAgIHJldHVybiB0aGlzLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2VuSW5kZXgsIGNvbnRleHR1YWxLZXl3b3JkKTtcbiAgfVxuXG4gIG1hdGNoZXNDb250ZXh0SWRBbmRMYWJlbCh0eXBlLCBjb250ZXh0SWQpIHtcbiAgICByZXR1cm4gdGhpcy5tYXRjaGVzMSh0eXBlKSAmJiB0aGlzLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZCA9PT0gY29udGV4dElkO1xuICB9XG5cbiAgcHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKSB7XG4gICAgbGV0IHdoaXRlc3BhY2VBbmRDb21tZW50cyA9IHRoaXMuY29kZS5zbGljZShcbiAgICAgIHRoaXMudG9rZW5JbmRleCA+IDAgPyB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXggLSAxXS5lbmQgOiAwLFxuICAgICAgdGhpcy50b2tlbkluZGV4IDwgdGhpcy50b2tlbnMubGVuZ3RoID8gdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS5zdGFydCA6IHRoaXMuY29kZS5sZW5ndGgsXG4gICAgKTtcbiAgICBpZiAodGhpcy5pc0Zsb3dFbmFibGVkKSB7XG4gICAgICB3aGl0ZXNwYWNlQW5kQ29tbWVudHMgPSB3aGl0ZXNwYWNlQW5kQ29tbWVudHMucmVwbGFjZSgvQGZsb3cvZywgXCJcIik7XG4gICAgfVxuICAgIHJldHVybiB3aGl0ZXNwYWNlQW5kQ29tbWVudHM7XG4gIH1cblxuICByZXBsYWNlVG9rZW4obmV3Q29kZSkge1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLnByZXZpb3VzV2hpdGVzcGFjZUFuZENvbW1lbnRzKCk7XG4gICAgdGhpcy5hcHBlbmRUb2tlblByZWZpeCgpO1xuICAgIHRoaXMucmVzdWx0TWFwcGluZ3NbdGhpcy50b2tlbkluZGV4XSA9IHRoaXMucmVzdWx0Q29kZS5sZW5ndGg7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IG5ld0NvZGU7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgcmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShuZXdDb2RlKSB7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMucHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKS5yZXBsYWNlKC9bXlxcclxcbl0vZywgXCJcIik7XG4gICAgdGhpcy5hcHBlbmRUb2tlblByZWZpeCgpO1xuICAgIHRoaXMucmVzdWx0TWFwcGluZ3NbdGhpcy50b2tlbkluZGV4XSA9IHRoaXMucmVzdWx0Q29kZS5sZW5ndGg7XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IG5ld0NvZGU7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgcmVtb3ZlSW5pdGlhbFRva2VuKCkge1xuICAgIHRoaXMucmVwbGFjZVRva2VuKFwiXCIpO1xuICB9XG5cbiAgcmVtb3ZlVG9rZW4oKSB7XG4gICAgdGhpcy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKFwiXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgY29kZSB1bnRpbCB0aGUgbmV4dCB9LCBhY2NvdW50aW5nIGZvciBiYWxhbmNlZCBicmFjZXMuXG4gICAqL1xuICByZW1vdmVCYWxhbmNlZENvZGUoKSB7XG4gICAgbGV0IGJyYWNlRGVwdGggPSAwO1xuICAgIHdoaWxlICghdGhpcy5pc0F0RW5kKCkpIHtcbiAgICAgIGlmICh0aGlzLm1hdGNoZXMxKHR0LmJyYWNlTCkpIHtcbiAgICAgICAgYnJhY2VEZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1hdGNoZXMxKHR0LmJyYWNlUikpIHtcbiAgICAgICAgaWYgKGJyYWNlRGVwdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJhY2VEZXB0aC0tO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvcHlFeHBlY3RlZFRva2VuKHRva2VuVHlwZSkge1xuICAgIGlmICh0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnR5cGUgIT09IHRva2VuVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0b2tlbiAke3Rva2VuVHlwZX1gKTtcbiAgICB9XG4gICAgdGhpcy5jb3B5VG9rZW4oKTtcbiAgfVxuXG4gIGNvcHlUb2tlbigpIHtcbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5wcmV2aW91c1doaXRlc3BhY2VBbmRDb21tZW50cygpO1xuICAgIHRoaXMuYXBwZW5kVG9rZW5QcmVmaXgoKTtcbiAgICB0aGlzLnJlc3VsdE1hcHBpbmdzW3RoaXMudG9rZW5JbmRleF0gPSB0aGlzLnJlc3VsdENvZGUubGVuZ3RoO1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLmNvZGUuc2xpY2UoXG4gICAgICB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdLnN0YXJ0LFxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS5lbmQsXG4gICAgKTtcbiAgICB0aGlzLmFwcGVuZFRva2VuU3VmZml4KCk7XG4gICAgdGhpcy50b2tlbkluZGV4Kys7XG4gIH1cblxuICBjb3B5VG9rZW5XaXRoUHJlZml4KHByZWZpeCkge1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLnByZXZpb3VzV2hpdGVzcGFjZUFuZENvbW1lbnRzKCk7XG4gICAgdGhpcy5hcHBlbmRUb2tlblByZWZpeCgpO1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSBwcmVmaXg7XG4gICAgdGhpcy5yZXN1bHRNYXBwaW5nc1t0aGlzLnRva2VuSW5kZXhdID0gdGhpcy5yZXN1bHRDb2RlLmxlbmd0aDtcbiAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5jb2RlLnNsaWNlKFxuICAgICAgdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4XS5zdGFydCxcbiAgICAgIHRoaXMudG9rZW5zW3RoaXMudG9rZW5JbmRleF0uZW5kLFxuICAgICk7XG4gICAgdGhpcy5hcHBlbmRUb2tlblN1ZmZpeCgpO1xuICAgIHRoaXMudG9rZW5JbmRleCsrO1xuICB9XG5cbiAgIGFwcGVuZFRva2VuUHJlZml4KCkge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW4oKTtcbiAgICBpZiAodG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlU3RhcnRzIHx8IHRva2VuLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICB0b2tlbi5pc0FzeW5jT3BlcmF0aW9uID0gaXNBc3luY09wZXJhdGlvbih0aGlzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzYWJsZUVTVHJhbnNmb3Jtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlU3RhcnRzKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLm51bU51bGxpc2hDb2FsZXNjZVN0YXJ0czsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5pc0FzeW5jT3BlcmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IFwiYXdhaXQgXCI7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwiYXN5bmNOdWxsaXNoQ29hbGVzY2VcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwibnVsbGlzaENvYWxlc2NlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSBcIihcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRva2VuLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICBpZiAodG9rZW4uaXNBc3luY09wZXJhdGlvbikge1xuICAgICAgICB0aGlzLnJlc3VsdENvZGUgKz0gXCJhd2FpdCBcIjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2VuSW5kZXggPiAwICYmIHRoaXMudG9rZW5BdFJlbGF0aXZlSW5kZXgoLTEpLnR5cGUgPT09IHR0Ll9kZWxldGUpIHtcbiAgICAgICAgaWYgKHRva2VuLmlzQXN5bmNPcGVyYXRpb24pIHtcbiAgICAgICAgICB0aGlzLnJlc3VsdENvZGUgKz0gdGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXCJhc3luY09wdGlvbmFsQ2hhaW5EZWxldGVcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwib3B0aW9uYWxDaGFpbkRlbGV0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0b2tlbi5pc0FzeW5jT3BlcmF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcImFzeW5jT3B0aW9uYWxDaGFpblwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzdWx0Q29kZSArPSB0aGlzLmhlbHBlck1hbmFnZXIuZ2V0SGVscGVyTmFtZShcIm9wdGlvbmFsQ2hhaW5cIik7XG4gICAgICB9XG4gICAgICB0aGlzLnJlc3VsdENvZGUgKz0gXCIoW1wiO1xuICAgIH1cbiAgfVxuXG4gICBhcHBlbmRUb2tlblN1ZmZpeCgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuKCk7XG4gICAgaWYgKHRva2VuLmlzT3B0aW9uYWxDaGFpbkVuZCAmJiAhdGhpcy5kaXNhYmxlRVNUcmFuc2Zvcm1zKSB7XG4gICAgICB0aGlzLnJlc3VsdENvZGUgKz0gXCJdKVwiO1xuICAgIH1cbiAgICBpZiAodG9rZW4ubnVtTnVsbGlzaENvYWxlc2NlRW5kcyAmJiAhdGhpcy5kaXNhYmxlRVNUcmFuc2Zvcm1zKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLm51bU51bGxpc2hDb2FsZXNjZUVuZHM7IGkrKykge1xuICAgICAgICB0aGlzLnJlc3VsdENvZGUgKz0gXCIpKVwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGVuZENvZGUoY29kZSkge1xuICAgIHRoaXMucmVzdWx0Q29kZSArPSBjb2RlO1xuICB9XG5cbiAgY3VycmVudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLnRva2VuSW5kZXhdO1xuICB9XG5cbiAgY3VycmVudFRva2VuQ29kZSgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuKCk7XG4gICAgcmV0dXJuIHRoaXMuY29kZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgfVxuXG4gIHRva2VuQXRSZWxhdGl2ZUluZGV4KHJlbGF0aXZlSW5kZXgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnNbdGhpcy50b2tlbkluZGV4ICsgcmVsYXRpdmVJbmRleF07XG4gIH1cblxuICBjdXJyZW50SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5JbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHRvIHRoZSBuZXh0IHRva2VuLiBPbmx5IHN1aXRhYmxlIGluIHByZXByb2Nlc3Npbmcgc3RlcHMuIFdoZW5cbiAgICogZ2VuZXJhdGluZyBuZXcgY29kZSwgeW91IHNob3VsZCB1c2UgY29weVRva2VuIG9yIHJlbW92ZVRva2VuLlxuICAgKi9cbiAgbmV4dFRva2VuKCkge1xuICAgIGlmICh0aGlzLnRva2VuSW5kZXggPT09IHRoaXMudG9rZW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZGx5IHJlYWNoZWQgZW5kIG9mIGlucHV0LlwiKTtcbiAgICB9XG4gICAgdGhpcy50b2tlbkluZGV4Kys7XG4gIH1cblxuICBwcmV2aW91c1Rva2VuKCkge1xuICAgIHRoaXMudG9rZW5JbmRleC0tO1xuICB9XG5cbiAgZmluaXNoKCkge1xuICAgIGlmICh0aGlzLnRva2VuSW5kZXggIT09IHRoaXMudG9rZW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJpZWQgdG8gZmluaXNoIHByb2Nlc3NpbmcgdG9rZW5zIGJlZm9yZSByZWFjaGluZyB0aGUgZW5kLlwiKTtcbiAgICB9XG4gICAgdGhpcy5yZXN1bHRDb2RlICs9IHRoaXMucHJldmlvdXNXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKTtcbiAgICByZXR1cm4ge2NvZGU6IHRoaXMucmVzdWx0Q29kZSwgbWFwcGluZ3M6IHRoaXMucmVzdWx0TWFwcGluZ3N9O1xuICB9XG5cbiAgaXNBdEVuZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkluZGV4ID09PSB0aGlzLnRva2Vucy5sZW5ndGg7XG4gIH1cbn1cbiIsICJcblxuaW1wb3J0IHtDb250ZXh0dWFsS2V5d29yZH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHNcIjtcbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLyoqXG4gKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNsYXNzIGZpZWxkcyBmb3IgdGhpcyBjbGFzcywgZ2l2ZW4gYSB0b2tlbiBwcm9jZXNzb3IgcG9pbnRpbmcgdG8gdGhlXG4gKiBvcGVuLWJyYWNlIGF0IHRoZSBzdGFydCBvZiB0aGUgY2xhc3MuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENsYXNzSW5mbyhcbiAgcm9vdFRyYW5zZm9ybWVyLFxuICB0b2tlbnMsXG4gIG5hbWVNYW5hZ2VyLFxuICBkaXNhYmxlRVNUcmFuc2Zvcm1zLFxuKSB7XG4gIGNvbnN0IHNuYXBzaG90ID0gdG9rZW5zLnNuYXBzaG90KCk7XG5cbiAgY29uc3QgaGVhZGVySW5mbyA9IHByb2Nlc3NDbGFzc0hlYWRlcih0b2tlbnMpO1xuXG4gIGxldCBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cyA9IFtdO1xuICBjb25zdCBpbnN0YW5jZUluaXRpYWxpemVyTmFtZXMgPSBbXTtcbiAgY29uc3Qgc3RhdGljSW5pdGlhbGl6ZXJOYW1lcyA9IFtdO1xuICBsZXQgY29uc3RydWN0b3JJbnNlcnRQb3MgPSBudWxsO1xuICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgY29uc3QgcmFuZ2VzVG9SZW1vdmUgPSBbXTtcblxuICBjb25zdCBjbGFzc0NvbnRleHRJZCA9IHRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQ7XG4gIGlmIChjbGFzc0NvbnRleHRJZCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbm9uLW51bGwgY2xhc3MgY29udGV4dCBJRCBvbiBjbGFzcyBvcGVuLWJyYWNlLlwiKTtcbiAgfVxuXG4gIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgd2hpbGUgKCF0b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKHR0LmJyYWNlUiwgY2xhc3NDb250ZXh0SWQpKSB7XG4gICAgaWYgKHRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fY29uc3RydWN0b3IpICYmICF0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICAoe2NvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLCBjb25zdHJ1Y3Rvckluc2VydFBvc30gPSBwcm9jZXNzQ29uc3RydWN0b3IodG9rZW5zKSk7XG4gICAgfSBlbHNlIGlmICh0b2tlbnMubWF0Y2hlczEodHQuc2VtaSkpIHtcbiAgICAgIGlmICghZGlzYWJsZUVTVHJhbnNmb3Jtcykge1xuICAgICAgICByYW5nZXNUb1JlbW92ZS5wdXNoKHtzdGFydDogdG9rZW5zLmN1cnJlbnRJbmRleCgpLCBlbmQ6IHRva2Vucy5jdXJyZW50SW5kZXgoKSArIDF9KTtcbiAgICAgIH1cbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICB9IGVsc2UgaWYgKHRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRWl0aGVyIGEgbWV0aG9kIG9yIGEgZmllbGQuIFNraXAgdG8gdGhlIGlkZW50aWZpZXIgcGFydC5cbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0YXJ0SW5kZXggPSB0b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgICBsZXQgaXNTdGF0aWMgPSBmYWxzZTtcbiAgICAgIGxldCBpc0VTUHJpdmF0ZSA9IGZhbHNlO1xuICAgICAgbGV0IGlzRGVjbGFyZU9yQWJzdHJhY3QgPSBmYWxzZTtcbiAgICAgIHdoaWxlIChpc0FjY2Vzc01vZGlmaWVyKHRva2Vucy5jdXJyZW50VG9rZW4oKSkpIHtcbiAgICAgICAgaWYgKHRva2Vucy5tYXRjaGVzMSh0dC5fc3RhdGljKSkge1xuICAgICAgICAgIGlzU3RhdGljID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW5zLm1hdGNoZXMxKHR0Lmhhc2gpKSB7XG4gICAgICAgICAgaXNFU1ByaXZhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbnMubWF0Y2hlczEodHQuX2RlY2xhcmUpIHx8IHRva2Vucy5tYXRjaGVzMSh0dC5fYWJzdHJhY3QpKSB7XG4gICAgICAgICAgaXNEZWNsYXJlT3JBYnN0cmFjdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3RhdGljICYmIHRva2Vucy5tYXRjaGVzMSh0dC5icmFjZUwpKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBzdGF0aWMgYmxvY2ssIHNvIGRvbid0IHByb2Nlc3MgaXQgaW4gYW55IHNwZWNpYWwgd2F5LlxuICAgICAgICBza2lwVG9OZXh0Q2xhc3NFbGVtZW50KHRva2VucywgY2xhc3NDb250ZXh0SWQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0VTUHJpdmF0ZSkge1xuICAgICAgICAvLyBTdWNyYXNlIGRvZXNuJ3QgYXR0ZW1wdCB0byB0cmFuc3BpbGUgcHJpdmF0ZSBmaWVsZHM7IGp1c3QgbGVhdmUgdGhlbSBhcy1pcy5cbiAgICAgICAgc2tpcFRvTmV4dENsYXNzRWxlbWVudCh0b2tlbnMsIGNsYXNzQ29udGV4dElkKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fY29uc3RydWN0b3IpICYmXG4gICAgICAgICF0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlXG4gICAgICApIHtcbiAgICAgICAgKHtjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cywgY29uc3RydWN0b3JJbnNlcnRQb3N9ID0gcHJvY2Vzc0NvbnN0cnVjdG9yKHRva2VucykpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZVN0YXJ0SW5kZXggPSB0b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgICBza2lwRmllbGROYW1lKHRva2Vucyk7XG4gICAgICBpZiAodG9rZW5zLm1hdGNoZXMxKHR0Lmxlc3NUaGFuKSB8fCB0b2tlbnMubWF0Y2hlczEodHQucGFyZW5MKSkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgbWV0aG9kLCBzbyBub3RoaW5nIHRvIHByb2Nlc3MuXG4gICAgICAgIHNraXBUb05leHRDbGFzc0VsZW1lbnQodG9rZW5zLCBjbGFzc0NvbnRleHRJZCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gVGhlcmUgbWlnaHQgYmUgYSB0eXBlIGFubm90YXRpb24gdGhhdCB3ZSBuZWVkIHRvIHNraXAuXG4gICAgICB3aGlsZSAodG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZSkge1xuICAgICAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gICAgICB9XG4gICAgICBpZiAodG9rZW5zLm1hdGNoZXMxKHR0LmVxKSkge1xuICAgICAgICBjb25zdCBlcXVhbHNJbmRleCA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhbiBpbml0aWFsaXplciwgc28gd2UgbmVlZCB0byB3cmFwIGluIGFuIGluaXRpYWxpemVyIG1ldGhvZC5cbiAgICAgICAgY29uc3QgdmFsdWVFbmQgPSB0b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmICh2YWx1ZUVuZCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgcmhzRW5kSW5kZXggb24gY2xhc3MgZmllbGQgYXNzaWdubWVudC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgICB3aGlsZSAodG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgdmFsdWVFbmQpIHtcbiAgICAgICAgICByb290VHJhbnNmb3JtZXIucHJvY2Vzc1Rva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluaXRpYWxpemVyTmFtZTtcbiAgICAgICAgaWYgKGlzU3RhdGljKSB7XG4gICAgICAgICAgaW5pdGlhbGl6ZXJOYW1lID0gbmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9faW5pdFN0YXRpY1wiKTtcbiAgICAgICAgICBzdGF0aWNJbml0aWFsaXplck5hbWVzLnB1c2goaW5pdGlhbGl6ZXJOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbml0aWFsaXplck5hbWUgPSBuYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiX19pbml0XCIpO1xuICAgICAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcy5wdXNoKGluaXRpYWxpemVyTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmllbGRzIHN0YXJ0IGF0IHRoZSBuYW1lLCBzbyBgc3RhdGljIHggPSAxO2AgaGFzIGEgZmllbGQgcmFuZ2Ugb2YgYHggPSAxO2AuXG4gICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICBpbml0aWFsaXplck5hbWUsXG4gICAgICAgICAgZXF1YWxzSW5kZXgsXG4gICAgICAgICAgc3RhcnQ6IG5hbWVTdGFydEluZGV4LFxuICAgICAgICAgIGVuZDogdG9rZW5zLmN1cnJlbnRJbmRleCgpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIWRpc2FibGVFU1RyYW5zZm9ybXMgfHwgaXNEZWNsYXJlT3JBYnN0cmFjdCkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgcmVndWxhciBmaWVsZCBkZWNsYXJhdGlvbiwgbGlrZSBgeDtgLiBXaXRoIHRoZSBjbGFzcyB0cmFuc2Zvcm0gZW5hYmxlZCwgd2UganVzdFxuICAgICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc28gdGhhdCBubyBvdXRwdXQgaXMgcHJvZHVjZWQuIFdpdGggdGhlIGNsYXNzIHRyYW5zZm9ybSBkaXNhYmxlZCwgd2VcbiAgICAgICAgLy8gdXN1YWxseSB3YW50IHRvIHByZXNlcnZlIHRoZSBkZWNsYXJhdGlvbiAoYnV0IHN0aWxsIHN0cmlwIHR5cGVzKSwgYnV0IGlmIHRoZSBgZGVjbGFyZWBcbiAgICAgICAgLy8gb3IgYGFic3RyYWN0YCBrZXl3b3JkIGlzIHNwZWNpZmllZCwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgbGluZSB0byBhdm9pZCBpbml0aWFsaXppbmcgdGhlXG4gICAgICAgIC8vIHZhbHVlIHRvIHVuZGVmaW5lZC5cbiAgICAgICAgcmFuZ2VzVG9SZW1vdmUucHVzaCh7c3RhcnQ6IHN0YXRlbWVudFN0YXJ0SW5kZXgsIGVuZDogdG9rZW5zLmN1cnJlbnRJbmRleCgpfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9rZW5zLnJlc3RvcmVUb1NuYXBzaG90KHNuYXBzaG90KTtcbiAgaWYgKGRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAvLyBXaXRoIEVTIHRyYW5zZm9ybXMgZGlzYWJsZWQsIHdlIGRvbid0IHdhbnQgdG8gdHJhbnNmb3JtIHJlZ3VsYXIgY2xhc3NcbiAgICAvLyBmaWVsZCBkZWNsYXJhdGlvbnMsIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBhZGRpdGlvbmFsIHRyaWNrcyB0b1xuICAgIC8vIHJlZmVyZW5jZSB0aGUgY29uc3RydWN0b3IgZm9yIHN0YXRpYyBpbml0LCBidXQgd2Ugc3RpbGwgbmVlZCB0byB0cmFuc2Zvcm1cbiAgICAvLyBUeXBlU2NyaXB0IGZpZWxkIGluaXRpYWxpemVycyBkZWZpbmVkIGFzIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgYW5kIHdlXG4gICAgLy8gc3RpbGwgbmVlZCB0byByZW1vdmUgYGRlY2xhcmVgIGZpZWxkcy4gRm9yIG5vdywgd2UgcnVuIHRoZSBzYW1lIGNvZGVcbiAgICAvLyBwYXRoIGJ1dCBvbWl0IGFueSBmaWVsZCBpbmZvcm1hdGlvbiwgYXMgaWYgdGhlIGNsYXNzIGhhZCBubyBmaWVsZFxuICAgIC8vIGRlY2xhcmF0aW9ucy4gSW4gdGhlIGZ1dHVyZSwgd2hlbiB3ZSBmdWxseSBkcm9wIHRoZSBjbGFzcyBmaWVsZHNcbiAgICAvLyB0cmFuc2Zvcm0sIHdlIGNhbiBzaW1wbGlmeSB0aGlzIGNvZGUgc2lnbmlmaWNhbnRseS5cbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVySW5mbyxcbiAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgaW5zdGFuY2VJbml0aWFsaXplck5hbWVzOiBbXSxcbiAgICAgIHN0YXRpY0luaXRpYWxpemVyTmFtZXM6IFtdLFxuICAgICAgY29uc3RydWN0b3JJbnNlcnRQb3MsXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgcmFuZ2VzVG9SZW1vdmUsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVySW5mbyxcbiAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgaW5zdGFuY2VJbml0aWFsaXplck5hbWVzLFxuICAgICAgc3RhdGljSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgIGNvbnN0cnVjdG9ySW5zZXJ0UG9zLFxuICAgICAgZmllbGRzLFxuICAgICAgcmFuZ2VzVG9SZW1vdmUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE1vdmUgdGhlIHRva2VuIHByb2Nlc3NvciB0byB0aGUgbmV4dCBtZXRob2QvZmllbGQgaW4gdGhlIGNsYXNzLlxuICpcbiAqIFRvIGRvIHRoYXQsIHdlIHNlZWsgZm9yd2FyZCB0byB0aGUgbmV4dCBzdGFydCBvZiBhIGNsYXNzIG5hbWUgKGVpdGhlciBhbiBvcGVuXG4gKiBicmFja2V0IG9yIGFuIGlkZW50aWZpZXIsIG9yIHRoZSBjbG9zaW5nIGN1cmx5IGJyYWNlKSwgdGhlbiBzZWVrIGJhY2t3YXJkIHRvXG4gKiBpbmNsdWRlIGFueSBhY2Nlc3MgbW9kaWZpZXJzLlxuICovXG5mdW5jdGlvbiBza2lwVG9OZXh0Q2xhc3NFbGVtZW50KHRva2VucywgY2xhc3NDb250ZXh0SWQpIHtcbiAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB3aGlsZSAodG9rZW5zLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZCAhPT0gY2xhc3NDb250ZXh0SWQpIHtcbiAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIH1cbiAgd2hpbGUgKGlzQWNjZXNzTW9kaWZpZXIodG9rZW5zLnRva2VuQXRSZWxhdGl2ZUluZGV4KC0xKSkpIHtcbiAgICB0b2tlbnMucHJldmlvdXNUb2tlbigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NDbGFzc0hlYWRlcih0b2tlbnMpIHtcbiAgY29uc3QgY2xhc3NUb2tlbiA9IHRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgY29uc3QgY29udGV4dElkID0gY2xhc3NUb2tlbi5jb250ZXh0SWQ7XG4gIGlmIChjb250ZXh0SWQgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGNvbnRleHQgSUQgb24gY2xhc3MgdG9rZW4uXCIpO1xuICB9XG4gIGNvbnN0IGlzRXhwcmVzc2lvbiA9IGNsYXNzVG9rZW4uaXNFeHByZXNzaW9uO1xuICBpZiAoaXNFeHByZXNzaW9uID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBpc0V4cHJlc3Npb24gb24gY2xhc3MgdG9rZW4uXCIpO1xuICB9XG4gIGxldCBjbGFzc05hbWUgPSBudWxsO1xuICBsZXQgaGFzU3VwZXJjbGFzcyA9IGZhbHNlO1xuICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIGlmICh0b2tlbnMubWF0Y2hlczEodHQubmFtZSkpIHtcbiAgICBjbGFzc05hbWUgPSB0b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgfVxuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwodHQuYnJhY2VMLCBjb250ZXh0SWQpKSB7XG4gICAgLy8gSWYgdGhpcyBoYXMgYSBzdXBlcmNsYXNzLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhbiBgZXh0ZW5kc2AgdG9rZW4uIElmIGl0IGRvZXNuJ3QgaGF2ZSBhXG4gICAgLy8gc3VwZXJjbGFzcywgb25seSB0eXBlIHBhcmFtZXRlcnMgYW5kIGBpbXBsZW1lbnRzYCBjbGF1c2VzIGNhbiBzaG93IHVwIGhlcmUsIGFsbCBvZiB3aGljaFxuICAgIC8vIGNvbnNpc3Qgb25seSBvZiB0eXBlIHRva2Vucy4gQSBkZWNsYXJhdGlvbiBsaWtlIGBjbGFzcyBBPEIgZXh0ZW5kcyBDPiB7YCBzaG91bGQgKm5vdCogY291bnRcbiAgICAvLyBhcyBoYXZpbmcgYSBzdXBlcmNsYXNzLlxuICAgIGlmICh0b2tlbnMubWF0Y2hlczEodHQuX2V4dGVuZHMpICYmICF0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICBoYXNTdXBlcmNsYXNzID0gdHJ1ZTtcbiAgICB9XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9XG4gIHJldHVybiB7aXNFeHByZXNzaW9uLCBjbGFzc05hbWUsIGhhc1N1cGVyY2xhc3N9O1xufVxuXG4vKipcbiAqIEV4dHJhY3QgdXNlZnVsIGluZm9ybWF0aW9uIG91dCBvZiBhIGNvbnN0cnVjdG9yLCBzdGFydGluZyBhdCB0aGUgXCJjb25zdHJ1Y3RvclwiIG5hbWUuXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NDb25zdHJ1Y3Rvcih0b2tlbnMpXG5cblxuIHtcbiAgY29uc3QgY29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMgPSBbXTtcblxuICB0b2tlbnMubmV4dFRva2VuKCk7XG4gIGNvbnN0IGNvbnN0cnVjdG9yQ29udGV4dElkID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZDtcbiAgaWYgKGNvbnN0cnVjdG9yQ29udGV4dElkID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBjb250ZXh0IElEIG9uIG9wZW4tcGFyZW4gc3RhcnRpbmcgY29uc3RydWN0b3IgcGFyYW1zLlwiKTtcbiAgfVxuICAvLyBBZHZhbmNlIHRocm91Z2ggcGFyYW1ldGVycyBsb29raW5nIGZvciBhY2Nlc3MgbW9kaWZpZXJzLlxuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwodHQucGFyZW5SLCBjb25zdHJ1Y3RvckNvbnRleHRJZCkpIHtcbiAgICBpZiAodG9rZW5zLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZCA9PT0gY29uc3RydWN0b3JDb250ZXh0SWQpIHtcbiAgICAgIC8vIEN1cnJlbnQgdG9rZW4gaXMgYW4gb3BlbiBwYXJlbiBvciBjb21tYSBqdXN0IGJlZm9yZSBhIHBhcmFtLCBzbyBjaGVja1xuICAgICAgLy8gdGhhdCBwYXJhbSBmb3IgYWNjZXNzIG1vZGlmaWVycy5cbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgIGlmIChpc0FjY2Vzc01vZGlmaWVyKHRva2Vucy5jdXJyZW50VG9rZW4oKSkpIHtcbiAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgICB3aGlsZSAoaXNBY2Nlc3NNb2RpZmllcih0b2tlbnMuY3VycmVudFRva2VuKCkpKSB7XG4gICAgICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gdHQubmFtZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGlkZW50aWZpZXIgYWZ0ZXIgYWNjZXNzIG1vZGlmaWVycyBpbiBjb25zdHJ1Y3RvciBhcmcuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbik7XG4gICAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLnB1c2goYHRoaXMuJHtuYW1lfSA9ICR7bmFtZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICAgIH1cbiAgfVxuICAvLyApXG4gIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgLy8gQ29uc3RydWN0b3IgdHlwZSBhbm5vdGF0aW9ucyBhcmUgaW52YWxpZCwgYnV0IHNraXAgdGhlbSBhbnl3YXkgc2luY2VcbiAgLy8gdGhleSdyZSBlYXN5IHRvIHNraXAuXG4gIHdoaWxlICh0b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9XG4gIGxldCBjb25zdHJ1Y3Rvckluc2VydFBvcyA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcblxuICAvLyBBZHZhbmNlIHRocm91Z2ggYm9keSBsb29raW5nIGZvciBhIHN1cGVyIGNhbGwuXG4gIGxldCBmb3VuZFN1cGVyQ2FsbCA9IGZhbHNlO1xuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwodHQuYnJhY2VSLCBjb25zdHJ1Y3RvckNvbnRleHRJZCkpIHtcbiAgICBpZiAoIWZvdW5kU3VwZXJDYWxsICYmIHRva2Vucy5tYXRjaGVzMih0dC5fc3VwZXIsIHR0LnBhcmVuTCkpIHtcbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICAgIGNvbnN0IHN1cGVyQ2FsbENvbnRleHRJZCA9IHRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQ7XG4gICAgICBpZiAoc3VwZXJDYWxsQ29udGV4dElkID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYSBjb250ZXh0IElEIG9uIHRoZSBzdXBlciBjYWxsXCIpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCF0b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKHR0LnBhcmVuUiwgc3VwZXJDYWxsQ29udGV4dElkKSkge1xuICAgICAgICB0b2tlbnMubmV4dFRva2VuKCk7XG4gICAgICB9XG4gICAgICBjb25zdHJ1Y3Rvckluc2VydFBvcyA9IHRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICAgIGZvdW5kU3VwZXJDYWxsID0gdHJ1ZTtcbiAgICB9XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9XG4gIC8vIH1cbiAgdG9rZW5zLm5leHRUb2tlbigpO1xuXG4gIHJldHVybiB7Y29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsIGNvbnN0cnVjdG9ySW5zZXJ0UG9zfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhbnkgdG9rZW4gdGhhdCBjYW4gZ28gYmVmb3JlIHRoZSBuYW1lIGluIGEgbWV0aG9kL2ZpZWxkLlxuICovXG5mdW5jdGlvbiBpc0FjY2Vzc01vZGlmaWVyKHRva2VuKSB7XG4gIHJldHVybiBbXG4gICAgdHQuX2FzeW5jLFxuICAgIHR0Ll9nZXQsXG4gICAgdHQuX3NldCxcbiAgICB0dC5wbHVzLFxuICAgIHR0Lm1pbnVzLFxuICAgIHR0Ll9yZWFkb25seSxcbiAgICB0dC5fc3RhdGljLFxuICAgIHR0Ll9wdWJsaWMsXG4gICAgdHQuX3ByaXZhdGUsXG4gICAgdHQuX3Byb3RlY3RlZCxcbiAgICB0dC5fb3ZlcnJpZGUsXG4gICAgdHQuX2Fic3RyYWN0LFxuICAgIHR0LnN0YXIsXG4gICAgdHQuX2RlY2xhcmUsXG4gICAgdHQuaGFzaCxcbiAgXS5pbmNsdWRlcyh0b2tlbi50eXBlKTtcbn1cblxuLyoqXG4gKiBUaGUgbmV4dCB0b2tlbiBvciBzZXQgb2YgdG9rZW5zIGlzIGVpdGhlciBhbiBpZGVudGlmaWVyIG9yIGFuIGV4cHJlc3Npb24gaW4gc3F1YXJlIGJyYWNrZXRzLCBmb3JcbiAqIGEgbWV0aG9kIG9yIGZpZWxkIG5hbWUuXG4gKi9cbmZ1bmN0aW9uIHNraXBGaWVsZE5hbWUodG9rZW5zKSB7XG4gIGlmICh0b2tlbnMubWF0Y2hlczEodHQuYnJhY2tldEwpKSB7XG4gICAgY29uc3Qgc3RhcnRUb2tlbiA9IHRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICBjb25zdCBjbGFzc0NvbnRleHRJZCA9IHN0YXJ0VG9rZW4uY29udGV4dElkO1xuICAgIGlmIChjbGFzc0NvbnRleHRJZCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBjbGFzcyBjb250ZXh0IElEIG9uIGNvbXB1dGVkIG5hbWUgb3BlbiBicmFja2V0LlwiKTtcbiAgICB9XG4gICAgd2hpbGUgKCF0b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKHR0LmJyYWNrZXRSLCBjbGFzc0NvbnRleHRJZCkpIHtcbiAgICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgICB9XG4gICAgdG9rZW5zLm5leHRUb2tlbigpO1xuICB9IGVsc2Uge1xuICAgIHRva2Vucy5uZXh0VG9rZW4oKTtcbiAgfVxufVxuIiwgImltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGVsaWRlSW1wb3J0RXF1YWxzKHRva2Vucykge1xuICAvLyBpbXBvcnRcbiAgdG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAvLyBuYW1lXG4gIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAvLyA9XG4gIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAvLyBuYW1lIG9yIHJlcXVpcmVcbiAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gIC8vIEhhbmRsZSBlaXRoZXIgYGltcG9ydCBBID0gcmVxdWlyZSgnQScpYCBvciBgaW1wb3J0IEEgPSBCLkMuRGAuXG4gIGlmICh0b2tlbnMubWF0Y2hlczEodHQucGFyZW5MKSkge1xuICAgIC8vIChcbiAgICB0b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAvLyBwYXRoIHN0cmluZ1xuICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIC8vIClcbiAgICB0b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAodG9rZW5zLm1hdGNoZXMxKHR0LmRvdCkpIHtcbiAgICAgIC8vIC5cbiAgICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgLy8gbmFtZVxuICAgICAgdG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHtpc1RvcExldmVsRGVjbGFyYXRpb259IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG5cblxuXG5cblxuZXhwb3J0IGNvbnN0IEVNUFRZX0RFQ0xBUkFUSU9OX0lORk8gPSB7XG4gIHR5cGVEZWNsYXJhdGlvbnM6IG5ldyBTZXQoKSxcbiAgdmFsdWVEZWNsYXJhdGlvbnM6IG5ldyBTZXQoKSxcbn07XG5cbi8qKlxuICogR2V0IGFsbCB0b3AtbGV2ZWwgaWRlbnRpZmllcnMgdGhhdCBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gZXhwb3J0ZWQgaW4gVHlwZVNjcmlwdC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqIC0gSWYgYW4gaWRlbnRpZmllciBpcyBkZWNsYXJlZCBhcyBgY29uc3QgeGAsIHRoZW4gYGV4cG9ydCB7eH1gIHNob3VsZCBiZSBwcmVzZXJ2ZWQuXG4gKiAtIElmIGl0J3MgZGVjbGFyZWQgYXMgYHR5cGUgeGAsIHRoZW4gYGV4cG9ydCB7eH1gIHNob3VsZCBiZSByZW1vdmVkLlxuICogLSBJZiBpdCdzIGRlY2xhcmVkIGFzIGJvdGggYGNvbnN0IHhgIGFuZCBgdHlwZSB4YCwgdGhlbiB0aGUgZXhwb3J0IHNob3VsZCBiZSBwcmVzZXJ2ZWQuXG4gKiAtIENsYXNzZXMgYW5kIGVudW1zIHNob3VsZCBiZSBwcmVzZXJ2ZWQgKGV2ZW4gdGhvdWdoIHRoZXkgYWxzbyBpbnRyb2R1Y2UgdHlwZXMpLlxuICogLSBJbXBvcnRlZCBpZGVudGlmaWVycyBzaG91bGQgYmUgcHJlc2VydmVkIHNpbmNlIHdlIGRvbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvXG4gKiAgIHJ1bGUgdGhlbSBvdXQuIC0taXNvbGF0ZWRNb2R1bGVzIGRpc2FsbG93cyByZS1leHBvcnRzLCB3aGljaCBjYXRjaGVzIGVycm9ycyBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREZWNsYXJhdGlvbkluZm8odG9rZW5zKSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvbnMgPSBuZXcgU2V0KCk7XG4gIGNvbnN0IHZhbHVlRGVjbGFyYXRpb25zID0gbmV3IFNldCgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy50b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vucy50b2tlbnNbaV07XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IHR0Lm5hbWUgJiYgaXNUb3BMZXZlbERlY2xhcmF0aW9uKHRva2VuKSkge1xuICAgICAgaWYgKHRva2VuLmlzVHlwZSkge1xuICAgICAgICB0eXBlRGVjbGFyYXRpb25zLmFkZCh0b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbih0b2tlbikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWVEZWNsYXJhdGlvbnMuYWRkKHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB7dHlwZURlY2xhcmF0aW9ucywgdmFsdWVEZWNsYXJhdGlvbnN9O1xufVxuIiwgImltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG4vKipcbiAqIFN0YXJ0aW5nIGF0IGBleHBvcnQge2AsIGxvb2sgYWhlYWQgYW5kIHJldHVybiBgdHJ1ZWAgaWYgdGhpcyBpcyBhblxuICogYGV4cG9ydCB7Li4ufSBmcm9tYCBzdGF0ZW1lbnQgYW5kIGBmYWxzZWAgaWYgdGhpcyBpcyBhIHBsYWluIG11bHRpLWV4cG9ydC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNFeHBvcnRGcm9tKHRva2Vucykge1xuICBsZXQgY2xvc2VCcmFjZUluZGV4ID0gdG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICB3aGlsZSAoIXRva2Vucy5tYXRjaGVzMUF0SW5kZXgoY2xvc2VCcmFjZUluZGV4LCB0dC5icmFjZVIpKSB7XG4gICAgY2xvc2VCcmFjZUluZGV4Kys7XG4gIH1cbiAgcmV0dXJuIChcbiAgICB0b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KGNsb3NlQnJhY2VJbmRleCArIDEsIENvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSAmJlxuICAgIHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoY2xvc2VCcmFjZUluZGV4ICsgMiwgdHQuc3RyaW5nKVxuICApO1xufVxuIiwgImltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG4vKipcbiAqIFN0YXJ0aW5nIGF0IGEgcG90ZW50aWFsIGB3aXRoYCBvciAobGVnYWN5KSBgYXNzZXJ0YCB0b2tlbiwgcmVtb3ZlIHRoZSBpbXBvcnRcbiAqIGF0dHJpYnV0ZXMgaWYgdGhleSBleGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcyh0b2tlbnMpIHtcbiAgaWYgKFxuICAgIHRva2Vucy5tYXRjaGVzMih0dC5fd2l0aCwgdHQuYnJhY2VMKSB8fFxuICAgICh0b2tlbnMubWF0Y2hlczIodHQubmFtZSwgdHQuYnJhY2VMKSAmJiB0b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2Fzc2VydCkpXG4gICkge1xuICAgIC8vIGFzc2VydFxuICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIC8vIHtcbiAgICB0b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB0b2tlbnMucmVtb3ZlQmFsYW5jZWRDb2RlKCk7XG4gICAgLy8gfVxuICAgIHRva2Vucy5yZW1vdmVUb2tlbigpO1xuICB9XG59XG4iLCAiaW1wb3J0IHtUb2tlblR5cGUgYXMgdHR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL3R5cGVzXCI7XG5cblxuXG4vKipcbiAqIENvbW1vbiBtZXRob2Qgc2hhcmluZyBjb2RlIGJldHdlZW4gQ0pTIGFuZCBFU00gY2FzZXMsIHNpbmNlIHRoZXkncmUgdGhlIHNhbWUgaGVyZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0KFxuICBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkLFxuICBrZWVwVW51c2VkSW1wb3J0cyxcbiAgdG9rZW5zLFxuICBkZWNsYXJhdGlvbkluZm8sXG4pIHtcbiAgaWYgKCFpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkIHx8IGtlZXBVbnVzZWRJbXBvcnRzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGV4cG9ydFRva2VuID0gdG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICBpZiAoZXhwb3J0VG9rZW4ucmhzRW5kSW5kZXggPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5vbi1udWxsIHJoc0VuZEluZGV4IG9uIGV4cG9ydCB0b2tlbi5cIik7XG4gIH1cbiAgLy8gVGhlIGV4cG9ydCBtdXN0IGJlIG9mIHRoZSBmb3JtIGBleHBvcnQgZGVmYXVsdCBhYCBvciBgZXhwb3J0IGRlZmF1bHQgYTtgLlxuICBjb25zdCBudW1Ub2tlbnMgPSBleHBvcnRUb2tlbi5yaHNFbmRJbmRleCAtIHRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgaWYgKFxuICAgIG51bVRva2VucyAhPT0gMyAmJlxuICAgICEobnVtVG9rZW5zID09PSA0ICYmIHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoZXhwb3J0VG9rZW4ucmhzRW5kSW5kZXggLSAxLCB0dC5zZW1pKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGlkZW50aWZpZXJUb2tlbiA9IHRva2Vucy50b2tlbkF0UmVsYXRpdmVJbmRleCgyKTtcbiAgaWYgKGlkZW50aWZpZXJUb2tlbi50eXBlICE9PSB0dC5uYW1lKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGV4cG9ydGVkTmFtZSA9IHRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbik7XG4gIHJldHVybiAoXG4gICAgZGVjbGFyYXRpb25JbmZvLnR5cGVEZWNsYXJhdGlvbnMuaGFzKGV4cG9ydGVkTmFtZSkgJiZcbiAgICAhZGVjbGFyYXRpb25JbmZvLnZhbHVlRGVjbGFyYXRpb25zLmhhcyhleHBvcnRlZE5hbWUpXG4gICk7XG59XG4iLCAiXG5cblxuaW1wb3J0IHtJZGVudGlmaWVyUm9sZSwgaXNEZWNsYXJhdGlvbiwgaXNPYmplY3RTaG9ydGhhbmREZWNsYXJhdGlvbn0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXJcIjtcbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuaW1wb3J0IGVsaWRlSW1wb3J0RXF1YWxzIGZyb20gXCIuLi91dGlsL2VsaWRlSW1wb3J0RXF1YWxzXCI7XG5pbXBvcnQgZ2V0RGVjbGFyYXRpb25JbmZvLCB7XG5cbiAgRU1QVFlfREVDTEFSQVRJT05fSU5GTyxcbn0gZnJvbSBcIi4uL3V0aWwvZ2V0RGVjbGFyYXRpb25JbmZvXCI7XG5pbXBvcnQgZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyBmcm9tIFwiLi4vdXRpbC9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvXCI7XG5pbXBvcnQgaXNFeHBvcnRGcm9tIGZyb20gXCIuLi91dGlsL2lzRXhwb3J0RnJvbVwiO1xuaW1wb3J0IHtyZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXN9IGZyb20gXCIuLi91dGlsL3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlc1wiO1xuaW1wb3J0IHNob3VsZEVsaWRlRGVmYXVsdEV4cG9ydCBmcm9tIFwiLi4vdXRpbC9zaG91bGRFbGlkZURlZmF1bHRFeHBvcnRcIjtcblxuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuLyoqXG4gKiBDbGFzcyBmb3IgZWRpdGluZyBpbXBvcnQgc3RhdGVtZW50cyB3aGVuIHdlIGFyZSB0cmFuc2Zvcm1pbmcgdG8gY29tbW9uanMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENKU0ltcG9ydFRyYW5zZm9ybWVyIGV4dGVuZHMgVHJhbnNmb3JtZXIge1xuICAgX19pbml0KCkge3RoaXMuaGFkRXhwb3J0ID0gZmFsc2V9XG4gICBfX2luaXQyKCkge3RoaXMuaGFkTmFtZWRFeHBvcnQgPSBmYWxzZX1cbiAgIF9faW5pdDMoKSB7dGhpcy5oYWREZWZhdWx0RXhwb3J0ID0gZmFsc2V9XG4gIFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICByb290VHJhbnNmb3JtZXIsXG4gICAgIHRva2VucyxcbiAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICAgICBuYW1lTWFuYWdlcixcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgICAgcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcixcbiAgICAgZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCxcbiAgICAgZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3AsXG4gICAgIGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQsXG4gICAgIGlzRmxvd1RyYW5zZm9ybUVuYWJsZWQsXG4gICAgIHByZXNlcnZlRHluYW1pY0ltcG9ydCxcbiAgICAga2VlcFVudXNlZEltcG9ydHMsXG4gICkge1xuICAgIHN1cGVyKCk7dGhpcy5yb290VHJhbnNmb3JtZXIgPSByb290VHJhbnNmb3JtZXI7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5pbXBvcnRQcm9jZXNzb3IgPSBpbXBvcnRQcm9jZXNzb3I7dGhpcy5uYW1lTWFuYWdlciA9IG5hbWVNYW5hZ2VyO3RoaXMuaGVscGVyTWFuYWdlciA9IGhlbHBlck1hbmFnZXI7dGhpcy5yZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyID0gcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcjt0aGlzLmVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3AgPSBlbmFibGVMZWdhY3lCYWJlbDVNb2R1bGVJbnRlcm9wO3RoaXMuZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3AgPSBlbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcDt0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgPSBpc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkO3RoaXMuaXNGbG93VHJhbnNmb3JtRW5hYmxlZCA9IGlzRmxvd1RyYW5zZm9ybUVuYWJsZWQ7dGhpcy5wcmVzZXJ2ZUR5bmFtaWNJbXBvcnQgPSBwcmVzZXJ2ZUR5bmFtaWNJbXBvcnQ7dGhpcy5rZWVwVW51c2VkSW1wb3J0cyA9IGtlZXBVbnVzZWRJbXBvcnRzO0NKU0ltcG9ydFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTtDSlNJbXBvcnRUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpO0NKU0ltcG9ydFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyk7O1xuICAgIHRoaXMuZGVjbGFyYXRpb25JbmZvID0gaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZFxuICAgICAgPyBnZXREZWNsYXJhdGlvbkluZm8odG9rZW5zKVxuICAgICAgOiBFTVBUWV9ERUNMQVJBVElPTl9JTkZPO1xuICB9XG5cbiAgZ2V0UHJlZml4Q29kZSgpIHtcbiAgICBsZXQgcHJlZml4ID0gXCJcIjtcbiAgICBpZiAodGhpcy5oYWRFeHBvcnQpIHtcbiAgICAgIHByZWZpeCArPSAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7dmFsdWU6IHRydWV9KTsnO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgZ2V0U3VmZml4Q29kZSgpIHtcbiAgICBpZiAodGhpcy5lbmFibGVMZWdhY3lCYWJlbDVNb2R1bGVJbnRlcm9wICYmIHRoaXMuaGFkRGVmYXVsdEV4cG9ydCAmJiAhdGhpcy5oYWROYW1lZEV4cG9ydCkge1xuICAgICAgcmV0dXJuIFwiXFxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XFxuXCI7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICAvLyBUeXBlU2NyaXB0IGBpbXBvcnQgZm9vID0gcmVxdWlyZSgnZm9vJyk7YCBzaG91bGQgYWx3YXlzIGp1c3QgYmUgdHJhbnNsYXRlZCB0byBwbGFpbiByZXF1aXJlLlxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5faW1wb3J0LCB0dC5uYW1lLCB0dC5lcSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJbXBvcnRFcXVhbHMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9pbXBvcnQpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NJbXBvcnQoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIodHQuX2V4cG9ydCwgdHQuZXEpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJtb2R1bGUuZXhwb3J0c1wiKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuX2V4cG9ydCkgJiYgIXRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZSkge1xuICAgICAgdGhpcy5oYWRFeHBvcnQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0V4cG9ydCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIodHQubmFtZSwgdHQucG9zdEluY0RlYykpIHtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBub3JtYWwgaWRlbnRpZmllciBtYXRjaGluZyBpZiB0aGlzIGRvZXNuJ3QgYXBwbHkuXG4gICAgICBpZiAodGhpcy5wcm9jZXNzUG9zdEluY0RlYygpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQubmFtZSkgfHwgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuanN4TmFtZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJZGVudGlmaWVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5lcSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBc3NpZ25tZW50KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5hc3NpZ24pKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ29tcGxleEFzc2lnbm1lbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnByZUluY0RlYykpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQcmVJbmNEZWMoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgIHByb2Nlc3NJbXBvcnRFcXVhbHMoKSB7XG4gICAgY29uc3QgaW1wb3J0TmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEpO1xuICAgIGlmICh0aGlzLmltcG9ydFByb2Nlc3Nvci5zaG91bGRBdXRvbWF0aWNhbGx5RWxpZGVJbXBvcnRlZE5hbWUoaW1wb3J0TmFtZSkpIHtcbiAgICAgIC8vIElmIHRoaXMgbmFtZSBpcyBvbmx5IHVzZWQgYXMgYSB0eXBlLCBlbGlkZSB0aGUgd2hvbGUgaW1wb3J0LlxuICAgICAgZWxpZGVJbXBvcnRFcXVhbHModGhpcy50b2tlbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UsIHN3aXRjaCBgaW1wb3J0YCB0byBgY29uc3RgLlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGlzOlxuICAgKiBpbXBvcnQgZm9vLCB7YmFyfSBmcm9tICdiYXonO1xuICAgKiBpbnRvXG4gICAqIHZhciBfYmF6ID0gcmVxdWlyZSgnYmF6Jyk7IHZhciBfYmF6MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Jheik7XG4gICAqXG4gICAqIFRoZSBpbXBvcnQgY29kZSB3YXMgYWxyZWFkeSBnZW5lcmF0ZWQgaW4gdGhlIGltcG9ydCBwcmVwcm9jZXNzaW5nIHN0ZXAsIHNvXG4gICAqIHdlIGp1c3QgbmVlZCB0byBsb29rIGl0IHVwLlxuICAgKi9cbiAgIHByb2Nlc3NJbXBvcnQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9pbXBvcnQsIHR0LnBhcmVuTCkpIHtcbiAgICAgIGlmICh0aGlzLnByZXNlcnZlRHluYW1pY0ltcG9ydCkge1xuICAgICAgICAvLyBCYWlsIG91dCwgb25seSBtYWtpbmcgcHJvZ3Jlc3MgZm9yIHRoaXMgb25lIHRva2VuLlxuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVxdWlyZVdyYXBwZXIgPSB0aGlzLmVuYWJsZUxlZ2FjeVR5cGVTY3JpcHRNb2R1bGVJbnRlcm9wXG4gICAgICAgID8gXCJcIlxuICAgICAgICA6IGAke3RoaXMuaGVscGVyTWFuYWdlci5nZXRIZWxwZXJOYW1lKFwiaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKX0oYDtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiAke3JlcXVpcmVXcmFwcGVyfXJlcXVpcmVgKTtcbiAgICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmNvbnRleHRJZDtcbiAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBjb250ZXh0IElEIG9uIGR5bmFtaWMgaW1wb3J0IGludm9jYXRpb24uXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0SWRBbmRMYWJlbCh0dC5wYXJlblIsIGNvbnRleHRJZCkpIHtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Rva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4ocmVxdWlyZVdyYXBwZXIgPyBcIikpKVwiIDogXCIpKVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRFbGlkZUltcG9ydCA9IHRoaXMucmVtb3ZlSW1wb3J0QW5kRGV0ZWN0SWZTaG91bGRFbGlkZSgpO1xuICAgIGlmIChzaG91bGRFbGlkZUltcG9ydCkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IHRoaXMudG9rZW5zLnN0cmluZ1ZhbHVlKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKHRoaXMuaW1wb3J0UHJvY2Vzc29yLmNsYWltSW1wb3J0Q29kZShwYXRoKSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKHRoaXMuaW1wb3J0UHJvY2Vzc29yLmNsYWltSW1wb3J0Q29kZShwYXRoKSk7XG4gICAgfVxuICAgIHJlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcyh0aGlzLnRva2Vucyk7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnNlbWkpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFcmFzZSB0aGlzIGltcG9ydCAoc2luY2UgYW55IENKUyBvdXRwdXQgd291bGQgYmUgY29tcGxldGVseSBkaWZmZXJlbnQpLCBhbmRcbiAgICogcmV0dXJuIHRydWUgaWYgdGhpcyBpbXBvcnQgaXMgc2hvdWxkIGJlIGVsaWRlZCBkdWUgdG8gYmVpbmcgYSB0eXBlLW9ubHlcbiAgICogaW1wb3J0LiBTdWNoIGltcG9ydHMgd2lsbCBub3QgYmUgZW1pdHRlZCBhdCBhbGwgdG8gYXZvaWQgc2lkZSBlZmZlY3RzLlxuICAgKlxuICAgKiBJbXBvcnQgZWxpc2lvbiBvbmx5IGhhcHBlbnMgd2l0aCB0aGUgVHlwZVNjcmlwdCBvciBGbG93IHRyYW5zZm9ybXMgZW5hYmxlZC5cbiAgICpcbiAgICogVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgc29tZSBhd2t3YXJkIG92ZXJsYXAgd2l0aFxuICAgKiAgQ0pTSW1wb3J0UHJvY2Vzc29yLnBydW5lVHlwZU9ubHlJbXBvcnRzICwgYW5kIHRoZSB0d28gc2hvdWxkIGJlIHVuaWZpZWQuXG4gICAqICBUaGF0IGZ1bmN0aW9uIGhhbmRsZXMgVHlwZVNjcmlwdCBpbXBsaWNpdCBpbXBvcnQgbmFtZSBlbGlzaW9uLCBhbmQgcmVtb3Zlc1xuICAgKiAgYW4gaW1wb3J0IGlmIGFsbCB0eXBpY2FsIGltcG9ydGVkIG5hbWVzICh3aXRob3V0IGB0eXBlYCkgYXJlIHJlbW92ZWQgZHVlXG4gICAqICB0byBiZWluZyB0eXBlLW9ubHkgaW1wb3J0cy4gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIEZsb3cgaW1wb3J0IHJlbW92YWwgYW5kXG4gICAqICBwcm9wZXJseSBkaXN0aW5ndWlzaGVzIGBpbXBvcnQgJ2ZvbydgIGZyb20gYGltcG9ydCB7fSBmcm9tICdmb28nYCBmb3IgVFNcbiAgICogIHB1cnBvc2VzLlxuICAgKlxuICAgKiBUaGUgcG9zaXRpb24gc2hvdWxkIGVuZCBhdCB0aGUgaW1wb3J0IHN0cmluZy5cbiAgICovXG4gICByZW1vdmVJbXBvcnRBbmREZXRlY3RJZlNob3VsZEVsaWRlKCkge1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl90eXBlKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIHR0LmNvbW1hKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIENvbnRleHR1YWxLZXl3b3JkLl9mcm9tKVxuICAgICkge1xuICAgICAgLy8gVGhpcyBpcyBhbiBcImltcG9ydCB0eXBlXCIgc3RhdGVtZW50LCBzbyBleGl0IGVhcmx5LlxuICAgICAgdGhpcy5yZW1vdmVSZW1haW5pbmdJbXBvcnQoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5uYW1lKSB8fCB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5zdGFyKSkge1xuICAgICAgLy8gV2UgaGF2ZSBhIGRlZmF1bHQgaW1wb3J0IG9yIG5hbWVzcGFjZSBpbXBvcnQsIHNvIHRoZXJlIG11c3QgYmUgc29tZVxuICAgICAgLy8gbm9uLXR5cGUgaW1wb3J0LlxuICAgICAgdGhpcy5yZW1vdmVSZW1haW5pbmdJbXBvcnQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuc3RyaW5nKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJhcmUgaW1wb3J0LCBzbyB3ZSBzaG91bGQgcHJvY2VlZCB3aXRoIHRoZSBpbXBvcnQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGZvdW5kTm9uVHlwZUltcG9ydCA9IGZhbHNlO1xuICAgIGxldCBmb3VuZEFueU5hbWVkSW1wb3J0ID0gZmFsc2U7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5zdHJpbmcpKSB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgbmFtZWQgaW1wb3J0cyBhcmUgb2YgdGhlIGZvcm0gXCJmb29cIiBvciBcImZvbyBhcyBiYXJcIiwgd2l0aFxuICAgICAgLy8gbm8gbGVhZGluZyBcInR5cGVcIi5cbiAgICAgIGlmIChcbiAgICAgICAgKCFmb3VuZE5vblR5cGVJbXBvcnQgJiYgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VMKSkgfHxcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuY29tbWEpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgaWYgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZVIpKSB7XG4gICAgICAgICAgZm91bmRBbnlOYW1lZEltcG9ydCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Lm5hbWUsIHR0LmNvbW1hKSB8fFxuICAgICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Lm5hbWUsIHR0LmJyYWNlUikgfHxcbiAgICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNCh0dC5uYW1lLCB0dC5uYW1lLCB0dC5uYW1lLCB0dC5jb21tYSkgfHxcbiAgICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNCh0dC5uYW1lLCB0dC5uYW1lLCB0dC5uYW1lLCB0dC5icmFjZVIpXG4gICAgICAgICkge1xuICAgICAgICAgIGZvdW5kTm9uVHlwZUltcG9ydCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmtlZXBVbnVzZWRJbXBvcnRzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiAhZm91bmROb25UeXBlSW1wb3J0O1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zsb3dUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICAvLyBJbiBGbG93LCB1bmxpa2UgVFMsIGBpbXBvcnQge30gZnJvbSAnZm9vJztgIHByZXNlcnZlcyB0aGUgaW1wb3J0LlxuICAgICAgcmV0dXJuIGZvdW5kQW55TmFtZWRJbXBvcnQgJiYgIWZvdW5kTm9uVHlwZUltcG9ydDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gICByZW1vdmVSZW1haW5pbmdJbXBvcnQoKSB7XG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5zdHJpbmcpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gICBwcm9jZXNzSWRlbnRpZmllcigpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICAgIGlmICh0b2tlbi5zaGFkb3dzR2xvYmFsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLmlkZW50aWZpZXJSb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RTaG9ydGhhbmQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NPYmplY3RTaG9ydGhhbmQoKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4uaWRlbnRpZmllclJvbGUgIT09IElkZW50aWZpZXJSb2xlLkFjY2Vzcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCByZXBsYWNlbWVudCA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLmdldElkZW50aWZpZXJSZXBsYWNlbWVudChcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4odG9rZW4pLFxuICAgICk7XG4gICAgaWYgKCFyZXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBUb2xlcmF0ZSBhbnkgbnVtYmVyIG9mIGNsb3NpbmcgcGFyZW5zIHdoaWxlIGxvb2tpbmcgZm9yIGFuIG9wZW5pbmcgcGFyZW5cbiAgICAvLyB0aGF0IGluZGljYXRlcyBhIGZ1bmN0aW9uIGNhbGwuXG4gICAgbGV0IHBvc3NpYmxlT3BlblBhcmVuSW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDE7XG4gICAgd2hpbGUgKFxuICAgICAgcG9zc2libGVPcGVuUGFyZW5JbmRleCA8IHRoaXMudG9rZW5zLnRva2Vucy5sZW5ndGggJiZcbiAgICAgIHRoaXMudG9rZW5zLnRva2Vuc1twb3NzaWJsZU9wZW5QYXJlbkluZGV4XS50eXBlID09PSB0dC5wYXJlblJcbiAgICApIHtcbiAgICAgIHBvc3NpYmxlT3BlblBhcmVuSW5kZXgrKztcbiAgICB9XG4gICAgLy8gQXZvaWQgdHJlYXRpbmcgaW1wb3J0ZWQgZnVuY3Rpb25zIGFzIG1ldGhvZHMgb2YgdGhlaXIgYGV4cG9ydHNgIG9iamVjdFxuICAgIC8vIGJ5IHVzaW5nIGAoMCwgZilgIHdoZW4gdGhlIGlkZW50aWZpZXIgaXMgaW4gYSBwYXJlbiBleHByZXNzaW9uLiBFbHNlXG4gICAgLy8gdXNlIGBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbGAgd2hlbiB0aGUgaWRlbnRpZmllciBpcyBhIGd1YXJhbnRlZWRcbiAgICAvLyBmdW5jdGlvbiBjYWxsLiBXaGVuIHVzaW5nIGBjYWxsYCwgcGFzcyB1bmRlZmluZWQgYXMgdGhlIGNvbnRleHQuXG4gICAgaWYgKHRoaXMudG9rZW5zLnRva2Vuc1twb3NzaWJsZU9wZW5QYXJlbkluZGV4XS50eXBlID09PSB0dC5wYXJlbkwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoMSkudHlwZSA9PT0gdHQucGFyZW5MICYmXG4gICAgICAgIHRoaXMudG9rZW5zLnRva2VuQXRSZWxhdGl2ZUluZGV4KC0xKS50eXBlICE9PSB0dC5fbmV3XG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAke3JlcGxhY2VtZW50fS5jYWxsKHZvaWQgMCwgYCk7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgb2xkIHBhcmVuLlxuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAvLyBCYWxhbmNlIG91dCB0aGUgbmV3IHBhcmVuLlxuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LnBhcmVuUik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTZWUgaGVyZTogaHR0cDovLzJhbGl0eS5jb20vMjAxNS8xMi9yZWZlcmVuY2VzLmh0bWxcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAoMCwgJHtyZXBsYWNlbWVudH0pYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihyZXBsYWNlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvY2Vzc09iamVjdFNob3J0aGFuZCgpIHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgICBjb25zdCByZXBsYWNlbWVudCA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLmdldElkZW50aWZpZXJSZXBsYWNlbWVudChpZGVudGlmaWVyKTtcbiAgICBpZiAoIXJlcGxhY2VtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgJHtpZGVudGlmaWVyfTogJHtyZXBsYWNlbWVudH1gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb2Nlc3NFeHBvcnQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIodHQuX2V4cG9ydCwgdHQuX2VudW0pIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5fZXhwb3J0LCB0dC5fY29uc3QsIHR0Ll9lbnVtKVxuICAgICkge1xuICAgICAgdGhpcy5oYWROYW1lZEV4cG9ydCA9IHRydWU7XG4gICAgICAvLyBMZXQgdGhlIFR5cGVTY3JpcHQgdHJhbnNmb3JtIGhhbmRsZSBpdC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0KSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMzKHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5fZW51bSkpIHtcbiAgICAgICAgdGhpcy5oYWREZWZhdWx0RXhwb3J0ID0gdHJ1ZTtcbiAgICAgICAgLy8gRmxvdyBleHBvcnQgZGVmYXVsdCBlbnVtcyBuZWVkIHNvbWUgc3BlY2lhbCBoYW5kbGluZywgc28gaGFuZGxlIHRoZW1cbiAgICAgICAgLy8gaW4gdGhhdCB0cmFuZm9ybSByYXRoZXIgdGhhbiB0aGlzIG9uZS5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jZXNzRXhwb3J0RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fZXhwb3J0LCB0dC5icmFjZUwpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnRCaW5kaW5ncygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0Lm5hbWUpICYmXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxLCBDb250ZXh0dWFsS2V5d29yZC5fdHlwZSlcbiAgICApIHtcbiAgICAgIC8vIGV4cG9ydCB0eXBlIHthfTtcbiAgICAgIC8vIGV4cG9ydCB0eXBlIHthIGFzIGJ9O1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2F9IGZyb20gJy4vYic7XG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGZyb20gJy4vYic7XG4gICAgICAvLyBleHBvcnQgdHlwZSAqIGFzIG5zIGZyb20gJy4vYic7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VMKSkge1xuICAgICAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlUikpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAqXG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fYXMpKSB7XG4gICAgICAgICAgLy8gYXNcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICAgIC8vIG5zXG4gICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gUmVtb3ZlIHR5cGUgcmUtZXhwb3J0IGAuLi4gfSBmcm9tICcuL1QnYFxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZnJvbSkgJiZcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgdHQuc3RyaW5nKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIHJlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcyh0aGlzLnRva2Vucyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5oYWROYW1lZEV4cG9ydCA9IHRydWU7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIodHQuX2V4cG9ydCwgdHQuX3ZhcikgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0Ll9sZXQpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fZXhwb3J0LCB0dC5fY29uc3QpXG4gICAgKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnRWYXIoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fZXhwb3J0LCB0dC5fZnVuY3Rpb24pIHx8XG4gICAgICAvLyBleHBvcnQgYXN5bmMgZnVuY3Rpb25cbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMzKHR0Ll9leHBvcnQsIHR0Lm5hbWUsIHR0Ll9mdW5jdGlvbilcbiAgICApIHtcbiAgICAgIHRoaXMucHJvY2Vzc0V4cG9ydEZ1bmN0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIodHQuX2V4cG9ydCwgdHQuX2NsYXNzKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczModHQuX2V4cG9ydCwgdHQuX2Fic3RyYWN0LCB0dC5fY2xhc3MpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fZXhwb3J0LCB0dC5hdClcbiAgICApIHtcbiAgICAgIHRoaXMucHJvY2Vzc0V4cG9ydENsYXNzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0LnN0YXIpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NFeHBvcnRTdGFyKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5yZWNvZ25pemVkIGV4cG9ydCBzeW50YXguXCIpO1xuICAgIH1cbiAgfVxuXG4gICBwcm9jZXNzQXNzaWdubWVudCgpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIGNvbnN0IGlkZW50aWZpZXJUb2tlbiA9IHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCAtIDFdO1xuICAgIC8vIElmIHRoZSBMSFMgaXMgYSB0eXBlIGlkZW50aWZpZXIsIHRoaXMgbXVzdCBiZSBhIGRlY2xhcmF0aW9uIGxpa2UgYGxldCBhOiBiID0gYztgLFxuICAgIC8vIHdpdGggYGJgIGFzIHRoZSBpZGVudGlmaWVyLCBzbyBub3RoaW5nIG5lZWRzIHRvIGJlIGRvbmUgaW4gdGhhdCBjYXNlLlxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uaXNUeXBlIHx8IGlkZW50aWZpZXJUb2tlbi50eXBlICE9PSB0dC5uYW1lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uc2hhZG93c0dsb2JhbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPj0gMiAmJiB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggLSAyLCB0dC5kb3QpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpbmRleCA+PSAyICYmIFt0dC5fdmFyLCB0dC5fbGV0LCB0dC5fY29uc3RdLmluY2x1ZGVzKHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCAtIDJdLnR5cGUpKSB7XG4gICAgICAvLyBEZWNsYXJhdGlvbnMgZG9uJ3QgbmVlZCBhbiBleHRyYSBhc3NpZ25tZW50LiBUaGlzIGRvZXNuJ3QgYXZvaWQgdGhlXG4gICAgICAvLyBhc3NpZ25tZW50IGZvciBjb21tYS1zZXBhcmF0ZWQgZGVjbGFyYXRpb25zLCBidXQgaXQncyBzdGlsbCBjb3JyZWN0XG4gICAgICAvLyBzaW5jZSB0aGUgYXNzaWdubWVudCBpcyBqdXN0IHJlZHVuZGFudC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgYXNzaWdubWVudFNuaXBwZXQgPSB0aGlzLmltcG9ydFByb2Nlc3Nvci5yZXNvbHZlRXhwb3J0QmluZGluZyhcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4oaWRlbnRpZmllclRva2VuKSxcbiAgICApO1xuICAgIGlmICghYXNzaWdubWVudFNuaXBwZXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgICR7YXNzaWdubWVudFNuaXBwZXR9ID1gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIHNvbWV0aGluZyBsaWtlIGBhICs9IDNgLCB3aGVyZSBgYWAgbWlnaHQgYmUgYW4gZXhwb3J0ZWQgdmFsdWUuXG4gICAqL1xuICAgcHJvY2Vzc0NvbXBsZXhBc3NpZ25tZW50KCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgY29uc3QgaWRlbnRpZmllclRva2VuID0gdGhpcy50b2tlbnMudG9rZW5zW2luZGV4IC0gMV07XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi50eXBlICE9PSB0dC5uYW1lKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpZGVudGlmaWVyVG9rZW4uc2hhZG93c0dsb2JhbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPj0gMiAmJiB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggLSAyLCB0dC5kb3QpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFzc2lnbm1lbnRTbmlwcGV0ID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IucmVzb2x2ZUV4cG9ydEJpbmRpbmcoXG4gICAgICB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbiksXG4gICAgKTtcbiAgICBpZiAoIWFzc2lnbm1lbnRTbmlwcGV0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCA9ICR7YXNzaWdubWVudFNuaXBwZXR9YCk7XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBzb21ldGhpbmcgbGlrZSBgKythYCwgd2hlcmUgYGFgIG1pZ2h0IGJlIGFuIGV4cG9ydGVkIHZhbHVlLlxuICAgKi9cbiAgIHByb2Nlc3NQcmVJbmNEZWMoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICBjb25zdCBpZGVudGlmaWVyVG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXggKyAxXTtcbiAgICBpZiAoaWRlbnRpZmllclRva2VuLnR5cGUgIT09IHR0Lm5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi5zaGFkb3dzR2xvYmFsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIElnbm9yZSB0aGluZ3MgbGlrZSArK2EuYiBhbmQgKythW2JdIGFuZCArK2EoKS5iLlxuICAgIGlmIChcbiAgICAgIGluZGV4ICsgMiA8IHRoaXMudG9rZW5zLnRva2Vucy5sZW5ndGggJiZcbiAgICAgICh0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggKyAyLCB0dC5kb3QpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCArIDIsIHR0LmJyYWNrZXRMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXggKyAyLCB0dC5wYXJlbkwpKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpZGVudGlmaWVyTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lRm9yVG9rZW4oaWRlbnRpZmllclRva2VuKTtcbiAgICBjb25zdCBhc3NpZ25tZW50U25pcHBldCA9IHRoaXMuaW1wb3J0UHJvY2Vzc29yLnJlc29sdmVFeHBvcnRCaW5kaW5nKGlkZW50aWZpZXJOYW1lKTtcbiAgICBpZiAoIWFzc2lnbm1lbnRTbmlwcGV0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCR7YXNzaWdubWVudFNuaXBwZXR9ID0gYCk7XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBzb21ldGhpbmcgbGlrZSBgYSsrYCwgd2hlcmUgYGFgIG1pZ2h0IGJlIGFuIGV4cG9ydGVkIHZhbHVlLlxuICAgKiBUaGlzIHN0YXJ0cyBhdCB0aGUgYGFgLCBub3QgYXQgdGhlIGArK2AuXG4gICAqL1xuICAgcHJvY2Vzc1Bvc3RJbmNEZWMoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICBjb25zdCBpZGVudGlmaWVyVG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdO1xuICAgIGNvbnN0IG9wZXJhdG9yVG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXggKyAxXTtcbiAgICBpZiAoaWRlbnRpZmllclRva2VuLnR5cGUgIT09IHR0Lm5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlkZW50aWZpZXJUb2tlbi5zaGFkb3dzR2xvYmFsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpbmRleCA+PSAxICYmIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCAtIDEsIHR0LmRvdCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaWRlbnRpZmllck5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKGlkZW50aWZpZXJUb2tlbik7XG4gICAgY29uc3QgYXNzaWdubWVudFNuaXBwZXQgPSB0aGlzLmltcG9ydFByb2Nlc3Nvci5yZXNvbHZlRXhwb3J0QmluZGluZyhpZGVudGlmaWVyTmFtZSk7XG4gICAgaWYgKCFhc3NpZ25tZW50U25pcHBldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBvcGVyYXRvckNvZGUgPSB0aGlzLnRva2Vucy5yYXdDb2RlRm9yVG9rZW4ob3BlcmF0b3JUb2tlbik7XG4gICAgLy8gV2UgbWlnaHQgYWxzbyByZXBsYWNlIHRoZSBpZGVudGlmaWVyIHdpdGggc29tZXRoaW5nIGxpa2UgZXhwb3J0cy54LCBzb1xuICAgIC8vIGRvIHRoYXQgcmVwbGFjZW1lbnQgaGVyZSBhcyB3ZWxsLlxuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmltcG9ydFByb2Nlc3Nvci5nZXRJZGVudGlmaWVyUmVwbGFjZW1lbnQoaWRlbnRpZmllck5hbWUpIHx8IGlkZW50aWZpZXJOYW1lO1xuICAgIGlmIChvcGVyYXRvckNvZGUgPT09IFwiKytcIikge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAoJHtiYXNlfSA9ICR7YXNzaWdubWVudFNuaXBwZXR9ID0gJHtiYXNlfSArIDEsICR7YmFzZX0gLSAxKWApO1xuICAgIH0gZWxzZSBpZiAob3BlcmF0b3JDb2RlID09PSBcIi0tXCIpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgKCR7YmFzZX0gPSAke2Fzc2lnbm1lbnRTbmlwcGV0fSA9ICR7YmFzZX0gLSAxLCAke2Jhc2V9ICsgMSlgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG9wZXJhdG9yOiAke29wZXJhdG9yQ29kZX1gKTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gICBwcm9jZXNzRXhwb3J0RGVmYXVsdCgpIHtcbiAgICBsZXQgZXhwb3J0ZWRSdW50aW1lVmFsdWUgPSB0cnVlO1xuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM0KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5fZnVuY3Rpb24sIHR0Lm5hbWUpIHx8XG4gICAgICAvLyBleHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvblxuICAgICAgKHRoaXMudG9rZW5zLm1hdGNoZXM1KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5uYW1lLCB0dC5fZnVuY3Rpb24sIHR0Lm5hbWUpICYmXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleChcbiAgICAgICAgICB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDIsXG4gICAgICAgICAgQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jLFxuICAgICAgICApKVxuICAgICkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgLy8gTmFtZWQgZnVuY3Rpb24gZXhwb3J0IGNhc2U6IGNoYW5nZSBpdCB0byBhIHRvcC1sZXZlbCBmdW5jdGlvblxuICAgICAgLy8gZGVjbGFyYXRpb24gZm9sbG93ZWQgYnkgZXhwb3J0cyBzdGF0ZW1lbnQuXG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5wcm9jZXNzTmFtZWRGdW5jdGlvbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydHMuZGVmYXVsdCA9ICR7bmFtZX07YCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM0KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5fY2xhc3MsIHR0Lm5hbWUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNSh0dC5fZXhwb3J0LCB0dC5fZGVmYXVsdCwgdHQuX2Fic3RyYWN0LCB0dC5fY2xhc3MsIHR0Lm5hbWUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5fZXhwb3J0LCB0dC5fZGVmYXVsdCwgdHQuYXQpXG4gICAgKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB0aGlzLmNvcHlEZWNvcmF0b3JzKCk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuX2Fic3RyYWN0KSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgfVxuICAgICAgY29uc3QgbmFtZSA9IHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NOYW1lZENsYXNzKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgZXhwb3J0cy5kZWZhdWx0ID0gJHtuYW1lfTtgKTtcbiAgICAgIC8vIEFmdGVyIHRoaXMgcG9pbnQsIHRoaXMgaXMgYSBwbGFpbiBcImV4cG9ydCBkZWZhdWx0IEVcIiBzdGF0ZW1lbnQuXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHNob3VsZEVsaWRlRGVmYXVsdEV4cG9ydChcbiAgICAgICAgdGhpcy5pc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkLFxuICAgICAgICB0aGlzLmtlZXBVbnVzZWRJbXBvcnRzLFxuICAgICAgICB0aGlzLnRva2VucyxcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkluZm8sXG4gICAgICApXG4gICAgKSB7XG4gICAgICAvLyBJZiB0aGUgZXhwb3J0ZWQgdmFsdWUgaXMganVzdCBhbiBpZGVudGlmaWVyIGFuZCBzaG91bGQgYmUgZWxpZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICAgIC8vIHJ1bGVzLCB0aGVuIHJlbW92ZSBpdCBlbnRpcmVseS4gSXQgd2lsbCBhbHdheXMgaGF2ZSB0aGUgZm9ybSBgZXhwb3J0IGRlZmF1bHQgZWAsXG4gICAgICAvLyB3aGVyZSBgZWAgaXMgYW4gaWRlbnRpZmllci5cbiAgICAgIGV4cG9ydGVkUnVudGltZVZhbHVlID0gZmFsc2U7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGFzc2lnbiBFIHRvIGEgdmFyaWFibGUuIENoYW5nZSBcImV4cG9ydCBkZWZhdWx0IEVcIiB0b1xuICAgICAgLy8gXCJsZXQgX2RlZmF1bHQ7IGV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0ID0gRVwiXG4gICAgICBjb25zdCBkZWZhdWx0VmFyTmFtZSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9kZWZhdWx0XCIpO1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGBsZXQgJHtkZWZhdWx0VmFyTmFtZX07IGV4cG9ydHMuYCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCA9ICR7ZGVmYXVsdFZhck5hbWV9ID1gKTtcbiAgICAgIHRoaXMucmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lci5zZXRFeHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZShkZWZhdWx0VmFyTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoYW5nZSBcImV4cG9ydCBkZWZhdWx0IEVcIiB0byBcImV4cG9ydHMuZGVmYXVsdCA9IEVcIlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiZXhwb3J0cy5cIik7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIgPVwiKTtcbiAgICB9XG4gICAgaWYgKGV4cG9ydGVkUnVudGltZVZhbHVlKSB7XG4gICAgICB0aGlzLmhhZERlZmF1bHRFeHBvcnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICBjb3B5RGVjb3JhdG9ycygpIHtcbiAgICB3aGlsZSAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuYXQpKSB7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5wYXJlbkwpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LnBhcmVuTCk7XG4gICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQucGFyZW5SKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0Lm5hbWUpO1xuICAgICAgICB3aGlsZSAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuZG90KSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LmRvdCk7XG4gICAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnBhcmVuTCkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5wYXJlbkwpO1xuICAgICAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5wYXJlblIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIGRlY2xhcmF0aW9uIGxpa2UgYGV4cG9ydCB2YXJgLCBgZXhwb3J0IGxldGAsIG9yIGBleHBvcnQgY29uc3RgLlxuICAgKi9cbiAgIHByb2Nlc3NFeHBvcnRWYXIoKSB7XG4gICAgaWYgKHRoaXMuaXNTaW1wbGVFeHBvcnRWYXIoKSkge1xuICAgICAgdGhpcy5wcm9jZXNzU2ltcGxlRXhwb3J0VmFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc0NvbXBsZXhFeHBvcnRWYXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBleHBvcnQgaXMgb2YgdGhlIGZvcm06XG4gICAqIGV4cG9ydCB2YXIvbGV0L2NvbnN0IFt2YXJOYW1lXSA9IFtleHByXTtcbiAgICogSW4gb3RoZXIgd29yZHMsIGRldGVybWluZSBpZiBmdW5jdGlvbiBuYW1lIGluZmVyZW5jZSBtaWdodCBhcHBseS5cbiAgICovXG4gICBpc1NpbXBsZUV4cG9ydFZhcigpIHtcbiAgICBsZXQgdG9rZW5JbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpO1xuICAgIC8vIGV4cG9ydFxuICAgIHRva2VuSW5kZXgrKztcbiAgICAvLyB2YXIvbGV0L2NvbnN0XG4gICAgdG9rZW5JbmRleCsrO1xuICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KHRva2VuSW5kZXgsIHR0Lm5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRva2VuSW5kZXgrKztcbiAgICB3aGlsZSAodG9rZW5JbmRleCA8IHRoaXMudG9rZW5zLnRva2Vucy5sZW5ndGggJiYgdGhpcy50b2tlbnMudG9rZW5zW3Rva2VuSW5kZXhdLmlzVHlwZSkge1xuICAgICAgdG9rZW5JbmRleCsrO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleCh0b2tlbkluZGV4LCB0dC5lcSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGFuIGBleHBvcnQgdmFyYCBkZWNsYXJhdGlvbiBpbml0aWFsaXppbmcgYSBzaW5nbGUgdmFyaWFibGUuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCB0aGlzOlxuICAgKiBleHBvcnQgY29uc3QgZiA9ICgpID0+IHt9O1xuICAgKiBiZWNvbWVzIHRoaXM6XG4gICAqIGNvbnN0IGYgPSAoKSA9PiB7fTsgZXhwb3J0cy5mID0gZjtcbiAgICpcbiAgICogVGhlIHZhcmlhYmxlIGlzIHVudXNlZCAoZS5nLiBleHBvcnRzLmYgaGFzIHRoZSB0cnVlIHZhbHVlIG9mIHRoZSBleHBvcnQpLlxuICAgKiBXZSBuZWVkIHRvIHByb2R1Y2UgYW4gYXNzaWdubWVudCBvZiB0aGlzIGZvcm0gc28gdGhhdCB0aGUgZnVuY3Rpb24gd2lsbFxuICAgKiBoYXZlIGFuIGluZmVycmVkIG5hbWUgb2YgXCJmXCIsIHdoaWNoIHdvdWxkbid0IGhhcHBlbiBpbiB0aGUgbW9yZSBnZW5lcmFsXG4gICAqIGNhc2UgYmVsb3cuXG4gICAqL1xuICAgcHJvY2Vzc1NpbXBsZUV4cG9ydFZhcigpIHtcbiAgICAvLyBleHBvcnRcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAvLyB2YXIvbGV0L2NvbnN0XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgY29uc3QgdmFyTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgLy8geDogbnVtYmVyICAtPiAgeFxuICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEodHQuZXEpKSB7XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc3QgZW5kSW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5yaHNFbmRJbmRleDtcbiAgICBpZiAoZW5kSW5kZXggPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgfVxuICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IGVuZEluZGV4KSB7XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgOyBleHBvcnRzLiR7dmFyTmFtZX0gPSAke3Zhck5hbWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIG5vcm1hbCBkZWNsYXJhdGlvbiBleHBvcnRzLCBpbmNsdWRpbmcgaGFuZGxpbmcgZGVzdHJ1Y3R1cmluZy5cbiAgICogRm9yIGV4YW1wbGUsIHRoaXM6XG4gICAqIGV4cG9ydCBjb25zdCB7eDogW2EgPSAyLCBiXSwgY30gPSBkO1xuICAgKiBiZWNvbWVzIHRoaXM6XG4gICAqICh7eDogW2V4cG9ydHMuYSA9IDIsIGV4cG9ydHMuYl0sIGM6IGV4cG9ydHMuY30gPSBkOylcbiAgICovXG4gICBwcm9jZXNzQ29tcGxleEV4cG9ydFZhcigpIHtcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIGNvbnN0IG5lZWRzUGFyZW5zID0gdGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VMKTtcbiAgICBpZiAobmVlZHNQYXJlbnMpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIoXCIpO1xuICAgIH1cblxuICAgIGxldCBkZXB0aCA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VMKSB8fFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5kb2xsYXJCcmFjZUwpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNrZXRMKVxuICAgICAgKSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZVIpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNrZXRSKSkge1xuICAgICAgICBkZXB0aC0tO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlcHRoID09PSAwICYmXG4gICAgICAgICF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5uYW1lKSAmJlxuICAgICAgICAhdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlXG4gICAgICApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmVxKSkge1xuICAgICAgICAvLyBEZWZhdWx0IHZhbHVlcyBtaWdodCBoYXZlIGFzc2lnbm1lbnRzIGluIHRoZSBSSFMgdGhhdCB3ZSB3YW50IHRvIGlnbm9yZSwgc28gc2tpcCBwYXN0XG4gICAgICAgIC8vIHRoZW0uXG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkucmhzRW5kSW5kZXg7XG4gICAgICAgIGlmIChlbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgZW5kSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAgICAgaWYgKGlzRGVjbGFyYXRpb24odG9rZW4pKSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KG5hbWUpO1xuICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHJlcGxhY2VtZW50IGZvciAke25hbWV9IGluIFxcYGV4cG9ydCB2YXJcXGAgc3ludGF4LmApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNPYmplY3RTaG9ydGhhbmREZWNsYXJhdGlvbih0b2tlbikpIHtcbiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gYCR7bmFtZX06ICR7cmVwbGFjZW1lbnR9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKHJlcGxhY2VtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWVkc1BhcmVucykge1xuICAgICAgLy8gU2VlayB0byB0aGUgZW5kIG9mIHRoZSBSSFMuXG4gICAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLnJoc0VuZEluZGV4O1xuICAgICAgaWYgKGVuZEluZGV4ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgPSB0b2tlbiB3aXRoIGFuIGVuZCBpbmRleC5cIik7XG4gICAgICB9XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBlbmRJbmRleCkge1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIpXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhpczpcbiAgICogZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHt9XG4gICAqIGludG8gdGhpczpcbiAgICogZnVuY3Rpb24gZm9vKCkge30gZXhwb3J0cy5mb28gPSBmb287XG4gICAqL1xuICAgcHJvY2Vzc0V4cG9ydEZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihcIlwiKTtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5wcm9jZXNzTmFtZWRGdW5jdGlvbigpO1xuICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnRzLiR7bmFtZX0gPSAke25hbWV9O2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgcGFzdCBhIGZ1bmN0aW9uIHdpdGggYSBuYW1lIGFuZCByZXR1cm4gdGhhdCBuYW1lLlxuICAgKi9cbiAgIHByb2Nlc3NOYW1lZEZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fZnVuY3Rpb24pKSB7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Lm5hbWUsIHR0Ll9mdW5jdGlvbikpIHtcbiAgICAgIGlmICghdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBhc3luYyBrZXl3b3JkIGluIGZ1bmN0aW9uIGV4cG9ydC5cIik7XG4gICAgICB9XG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuc3RhcikpIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Lm5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBleHBvcnRlZCBmdW5jdGlvbiBuYW1lLlwiKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCk7XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgaWYgKHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkuaXNUeXBlKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LnBhcmVuTCk7XG4gICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LnBhcmVuUik7XG4gICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Bvc3NpYmxlVHlwZVJhbmdlKCk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VMKTtcbiAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VSKTtcbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhpczpcbiAgICogZXhwb3J0IGNsYXNzIEEge31cbiAgICogaW50byB0aGlzOlxuICAgKiBjbGFzcyBBIHt9IGV4cG9ydHMuQSA9IEE7XG4gICAqL1xuICAgcHJvY2Vzc0V4cG9ydENsYXNzKCkge1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIHRoaXMuY29weURlY29yYXRvcnMoKTtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuX2Fic3RyYWN0KSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NOYW1lZENsYXNzKCk7XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydHMuJHtuYW1lfSA9ICR7bmFtZX07YCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoaXM6XG4gICAqIGV4cG9ydCB7YSwgYiBhcyBjfTtcbiAgICogaW50byB0aGlzOlxuICAgKiBleHBvcnRzLmEgPSBhOyBleHBvcnRzLmMgPSBiO1xuICAgKlxuICAgKiBPUlxuICAgKlxuICAgKiBUcmFuc2Zvcm0gdGhpczpcbiAgICogZXhwb3J0IHthLCBiIGFzIGN9IGZyb20gJy4vZm9vJztcbiAgICogaW50byB0aGUgcHJlLWdlbmVyYXRlZCBPYmplY3QuZGVmaW5lUHJvcGVydHkgY29kZSBmcm9tIHRoZSBJbXBvcnRQcm9jZXNzb3IuXG4gICAqXG4gICAqIEZvciB0aGUgZmlyc3QgY2FzZSwgaWYgdGhlIFR5cGVTY3JpcHQgdHJhbnNmb3JtIGlzIGVuYWJsZWQsIHdlIG5lZWQgdG8gc2tpcFxuICAgKiBleHBvcnRzIHRoYXQgYXJlIG9ubHkgZGVmaW5lZCBhcyB0eXBlcy5cbiAgICovXG4gICBwcm9jZXNzRXhwb3J0QmluZGluZ3MoKSB7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcblxuICAgIGNvbnN0IGlzUmVFeHBvcnQgPSBpc0V4cG9ydEZyb20odGhpcy50b2tlbnMpO1xuXG4gICAgY29uc3QgZXhwb3J0U3RhdGVtZW50cyA9IFtdO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VSKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3BlY2lmaWVySW5mbyA9IGdldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8odGhpcy50b2tlbnMpO1xuXG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBzcGVjaWZpZXJJbmZvLmVuZEluZGV4KSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNob3VsZFJlbW92ZUV4cG9ydCA9XG4gICAgICAgIHNwZWNpZmllckluZm8uaXNUeXBlIHx8XG4gICAgICAgICghaXNSZUV4cG9ydCAmJiB0aGlzLnNob3VsZEVsaWRlRXhwb3J0ZWRJZGVudGlmaWVyKHNwZWNpZmllckluZm8ubGVmdE5hbWUpKTtcbiAgICAgIGlmICghc2hvdWxkUmVtb3ZlRXhwb3J0KSB7XG4gICAgICAgIGNvbnN0IGV4cG9ydGVkTmFtZSA9IHNwZWNpZmllckluZm8ucmlnaHROYW1lO1xuICAgICAgICBpZiAoZXhwb3J0ZWROYW1lID09PSBcImRlZmF1bHRcIikge1xuICAgICAgICAgIHRoaXMuaGFkRGVmYXVsdEV4cG9ydCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYWROYW1lZEV4cG9ydCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9jYWxOYW1lID0gc3BlY2lmaWVySW5mby5sZWZ0TmFtZTtcbiAgICAgICAgY29uc3QgbmV3TG9jYWxOYW1lID0gdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KGxvY2FsTmFtZSk7XG4gICAgICAgIGV4cG9ydFN0YXRlbWVudHMucHVzaChgZXhwb3J0cy4ke2V4cG9ydGVkTmFtZX0gPSAke25ld0xvY2FsTmFtZSB8fCBsb2NhbE5hbWV9O2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VSKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5jb21tYSwgdHQuYnJhY2VSKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuY29tbWEpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdG9rZW46ICR7SlNPTi5zdHJpbmdpZnkodGhpcy50b2tlbnMuY3VycmVudFRva2VuKCkpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbChDb250ZXh0dWFsS2V5d29yZC5fZnJvbSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYW4gZXhwb3J0Li4uZnJvbSwgc28gdGhyb3cgYXdheSB0aGUgbm9ybWFsIG5hbWVkIGV4cG9ydCBjb2RlXG4gICAgICAvLyBhbmQgdXNlIHRoZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgY29kZSBmcm9tIEltcG9ydFByb2Nlc3Nvci5cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICBjb25zdCBwYXRoID0gdGhpcy50b2tlbnMuc3RyaW5nVmFsdWUoKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UodGhpcy5pbXBvcnRQcm9jZXNzb3IuY2xhaW1JbXBvcnRDb2RlKHBhdGgpKTtcbiAgICAgIHJlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlcyh0aGlzLnRva2Vucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBub3JtYWwgbmFtZWQgZXhwb3J0LCBzbyB1c2UgdGhhdC5cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoZXhwb3J0U3RhdGVtZW50cy5qb2luKFwiIFwiKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnNlbWkpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gICBwcm9jZXNzRXhwb3J0U3RhcigpIHtcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnN0cmluZykpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgfVxuICAgIGNvbnN0IHBhdGggPSB0aGlzLnRva2Vucy5zdHJpbmdWYWx1ZSgpO1xuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UodGhpcy5pbXBvcnRQcm9jZXNzb3IuY2xhaW1JbXBvcnRDb2RlKHBhdGgpKTtcbiAgICByZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXModGhpcy50b2tlbnMpO1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5zZW1pKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gIH1cblxuICAgc2hvdWxkRWxpZGVFeHBvcnRlZElkZW50aWZpZXIobmFtZSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiZcbiAgICAgICF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmXG4gICAgICAhdGhpcy5kZWNsYXJhdGlvbkluZm8udmFsdWVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxufVxuIiwgIlxuXG5cbmltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuaW1wb3J0IGVsaWRlSW1wb3J0RXF1YWxzIGZyb20gXCIuLi91dGlsL2VsaWRlSW1wb3J0RXF1YWxzXCI7XG5pbXBvcnQgZ2V0RGVjbGFyYXRpb25JbmZvLCB7XG5cbiAgRU1QVFlfREVDTEFSQVRJT05fSU5GTyxcbn0gZnJvbSBcIi4uL3V0aWwvZ2V0RGVjbGFyYXRpb25JbmZvXCI7XG5pbXBvcnQgZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyBmcm9tIFwiLi4vdXRpbC9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvXCI7XG5pbXBvcnQge2dldE5vblR5cGVJZGVudGlmaWVyc30gZnJvbSBcIi4uL3V0aWwvZ2V0Tm9uVHlwZUlkZW50aWZpZXJzXCI7XG5pbXBvcnQgaXNFeHBvcnRGcm9tIGZyb20gXCIuLi91dGlsL2lzRXhwb3J0RnJvbVwiO1xuaW1wb3J0IHtyZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXN9IGZyb20gXCIuLi91dGlsL3JlbW92ZU1heWJlSW1wb3J0QXR0cmlidXRlc1wiO1xuaW1wb3J0IHNob3VsZEVsaWRlRGVmYXVsdEV4cG9ydCBmcm9tIFwiLi4vdXRpbC9zaG91bGRFbGlkZURlZmF1bHRFeHBvcnRcIjtcblxuaW1wb3J0IFRyYW5zZm9ybWVyIGZyb20gXCIuL1RyYW5zZm9ybWVyXCI7XG5cbi8qKlxuICogQ2xhc3MgZm9yIGVkaXRpbmcgaW1wb3J0IHN0YXRlbWVudHMgd2hlbiB3ZSBhcmUga2VlcGluZyB0aGUgY29kZSBhcyBFU00uIFdlIHN0aWxsIG5lZWQgdG8gcmVtb3ZlXG4gKiB0eXBlLW9ubHkgaW1wb3J0cyBpbiBUeXBlU2NyaXB0IGFuZCBGbG93LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFU01JbXBvcnRUcmFuc2Zvcm1lciBleHRlbmRzIFRyYW5zZm9ybWVyIHtcbiAgXG4gIFxuICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgdG9rZW5zLFxuICAgICBuYW1lTWFuYWdlcixcbiAgICAgaGVscGVyTWFuYWdlcixcbiAgICAgcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcixcbiAgICAgaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAgaXNGbG93VHJhbnNmb3JtRW5hYmxlZCxcbiAgICAga2VlcFVudXNlZEltcG9ydHMsXG4gICAgb3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoKTt0aGlzLnRva2VucyA9IHRva2Vuczt0aGlzLm5hbWVNYW5hZ2VyID0gbmFtZU1hbmFnZXI7dGhpcy5oZWxwZXJNYW5hZ2VyID0gaGVscGVyTWFuYWdlcjt0aGlzLnJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSByZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyO3RoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCA9IGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQ7dGhpcy5pc0Zsb3dUcmFuc2Zvcm1FbmFibGVkID0gaXNGbG93VHJhbnNmb3JtRW5hYmxlZDt0aGlzLmtlZXBVbnVzZWRJbXBvcnRzID0ga2VlcFVudXNlZEltcG9ydHM7O1xuICAgIHRoaXMubm9uVHlwZUlkZW50aWZpZXJzID1cbiAgICAgIGlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQgJiYgIWtlZXBVbnVzZWRJbXBvcnRzXG4gICAgICAgID8gZ2V0Tm9uVHlwZUlkZW50aWZpZXJzKHRva2Vucywgb3B0aW9ucylcbiAgICAgICAgOiBuZXcgU2V0KCk7XG4gICAgdGhpcy5kZWNsYXJhdGlvbkluZm8gPVxuICAgICAgaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCAmJiAha2VlcFVudXNlZEltcG9ydHNcbiAgICAgICAgPyBnZXREZWNsYXJhdGlvbkluZm8odG9rZW5zKVxuICAgICAgICA6IEVNUFRZX0RFQ0xBUkFUSU9OX0lORk87XG4gICAgdGhpcy5pbmplY3RDcmVhdGVSZXF1aXJlRm9ySW1wb3J0UmVxdWlyZSA9IEJvb2xlYW4ob3B0aW9ucy5pbmplY3RDcmVhdGVSZXF1aXJlRm9ySW1wb3J0UmVxdWlyZSk7XG4gIH1cblxuICBwcm9jZXNzKCkge1xuICAgIC8vIFR5cGVTY3JpcHQgYGltcG9ydCBmb28gPSByZXF1aXJlKCdmb28nKTtgIHNob3VsZCBhbHdheXMganVzdCBiZSB0cmFuc2xhdGVkIHRvIHBsYWluIHJlcXVpcmUuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMzKHR0Ll9pbXBvcnQsIHR0Lm5hbWUsIHR0LmVxKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ltcG9ydEVxdWFscygpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNCh0dC5faW1wb3J0LCB0dC5uYW1lLCB0dC5uYW1lLCB0dC5lcSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIENvbnRleHR1YWxLZXl3b3JkLl90eXBlKVxuICAgICkge1xuICAgICAgLy8gaW1wb3J0IHR5cGUgVCA9IHJlcXVpcmUoJ1QnKVxuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICAvLyBUaGlzIGNvbnN0cnVjdCBpcyBhbHdheXMgZXhhY3RseSA4IHRva2VucyBsb25nLCBzbyByZW1vdmUgdGhlIDcgcmVtYWluaW5nIHRva2Vucy5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0LmVxKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwibW9kdWxlLmV4cG9ydHNcIik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczUodHQuX2V4cG9ydCwgdHQuX2ltcG9ydCwgdHQubmFtZSwgdHQubmFtZSwgdHQuZXEpICYmXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAyLCBDb250ZXh0dWFsS2V5d29yZC5fdHlwZSlcbiAgICApIHtcbiAgICAgIC8vIGV4cG9ydCBpbXBvcnQgdHlwZSBUID0gcmVxdWlyZSgnVCcpXG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgIC8vIFRoaXMgY29uc3RydWN0IGlzIGFsd2F5cyBleGFjdGx5IDkgdG9rZW5zIGxvbmcsIHNvIHJlbW92ZSB0aGUgOCByZW1haW5pbmcgdG9rZW5zLlxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuX2ltcG9ydCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NJbXBvcnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0KSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0V4cG9ydERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0LmJyYWNlTCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NOYW1lZEV4cG9ydHMoKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczIodHQuX2V4cG9ydCwgdHQubmFtZSkgJiZcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDEsIENvbnRleHR1YWxLZXl3b3JkLl90eXBlKVxuICAgICkge1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2F9O1xuICAgICAgLy8gZXhwb3J0IHR5cGUge2EgYXMgYn07XG4gICAgICAvLyBleHBvcnQgdHlwZSB7YX0gZnJvbSAnLi9iJztcbiAgICAgIC8vIGV4cG9ydCB0eXBlICogZnJvbSAnLi9iJztcbiAgICAgIC8vIGV4cG9ydCB0eXBlICogYXMgbnMgZnJvbSAnLi9iJztcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZUwpKSB7XG4gICAgICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VSKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICpcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9hcykpIHtcbiAgICAgICAgICAvLyBhc1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgLy8gbnNcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBSZW1vdmUgdHlwZSByZS1leHBvcnQgYC4uLiB9IGZyb20gJy4vVCdgXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9mcm9tKSAmJlxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxLCB0dC5zdHJpbmcpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzKHRoaXMudG9rZW5zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAgcHJvY2Vzc0ltcG9ydEVxdWFscygpIHtcbiAgICBjb25zdCBpbXBvcnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSk7XG4gICAgaWYgKHRoaXMuc2hvdWxkQXV0b21hdGljYWxseUVsaWRlSW1wb3J0ZWROYW1lKGltcG9ydE5hbWUpKSB7XG4gICAgICAvLyBJZiB0aGlzIG5hbWUgaXMgb25seSB1c2VkIGFzIGEgdHlwZSwgZWxpZGUgdGhlIHdob2xlIGltcG9ydC5cbiAgICAgIGVsaWRlSW1wb3J0RXF1YWxzKHRoaXMudG9rZW5zKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5qZWN0Q3JlYXRlUmVxdWlyZUZvckltcG9ydFJlcXVpcmUpIHtcbiAgICAgIC8vIFdlJ3JlIHVzaW5nIHJlcXVpcmUgaW4gYW4gZW52aXJvbm1lbnQgKE5vZGUgRVNNKSB0aGF0IGRvZXNuJ3QgcHJvdmlkZVxuICAgICAgLy8gaXQgYXMgYSBnbG9iYWwsIHNvIGdlbmVyYXRlIGEgaGVscGVyIHRvIGltcG9ydCBpdC5cbiAgICAgIC8vIGltcG9ydCAtPiBjb25zdFxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgICAvLyBGb29cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgLy8gPVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAvLyByZXF1aXJlXG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4odGhpcy5oZWxwZXJNYW5hZ2VyLmdldEhlbHBlck5hbWUoXCJyZXF1aXJlXCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3RoZXJ3aXNlLCBqdXN0IHN3aXRjaCBgaW1wb3J0YCB0byBgY29uc3RgLlxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKFwiY29uc3RcIik7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgIHByb2Nlc3NJbXBvcnQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9pbXBvcnQsIHR0LnBhcmVuTCkpIHtcbiAgICAgIC8vIER5bmFtaWMgaW1wb3J0cyBkb24ndCBuZWVkIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy50b2tlbnMuc25hcHNob3QoKTtcbiAgICBjb25zdCBhbGxJbXBvcnRzUmVtb3ZlZCA9IHRoaXMucmVtb3ZlSW1wb3J0VHlwZUJpbmRpbmdzKCk7XG4gICAgaWYgKGFsbEltcG9ydHNSZW1vdmVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXN0b3JlVG9TbmFwc2hvdChzbmFwc2hvdCk7XG4gICAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnN0cmluZykpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICByZW1vdmVNYXliZUltcG9ydEF0dHJpYnV0ZXModGhpcy50b2tlbnMpO1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnNlbWkpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0eXBlIGJpbmRpbmdzIGZyb20gdGhpcyBpbXBvcnQsIGxlYXZpbmcgdGhlIHJlc3Qgb2YgdGhlIGltcG9ydCBpbnRhY3QuXG4gICAqXG4gICAqIFJldHVybiB0cnVlIGlmIHRoaXMgaW1wb3J0IHdhcyBPTkxZIHR5cGVzLCBhbmQgdGh1cyBpcyBlbGlnaWJsZSBmb3IgcmVtb3ZhbC4gVGhpcyB3aWxsIGJhaWwgb3V0XG4gICAqIG9mIHRoZSByZXBsYWNlbWVudCBvcGVyYXRpb24sIHNvIHdlIGNhbiByZXR1cm4gZWFybHkgaGVyZS5cbiAgICovXG4gICByZW1vdmVJbXBvcnRUeXBlQmluZGluZ3MoKSB7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuX2ltcG9ydCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX3R5cGUpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgdHQuY29tbWEpICYmXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWxBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSwgQ29udGV4dHVhbEtleXdvcmQuX2Zyb20pXG4gICAgKSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIFwiaW1wb3J0IHR5cGVcIiBzdGF0ZW1lbnQsIHNvIGV4aXQgZWFybHkuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuc3RyaW5nKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJhcmUgaW1wb3J0LCBzbyB3ZSBzaG91bGQgcHJvY2VlZCB3aXRoIHRoZSBpbXBvcnQuXG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBTa2lwIHRoZSBcIm1vZHVsZVwiIHRva2VuIGluIGltcG9ydCByZWZsZWN0aW9uLlxuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9tb2R1bGUpICYmXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dHVhbEF0SW5kZXgodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAyLCBDb250ZXh0dWFsS2V5d29yZC5fZnJvbSlcbiAgICApIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH1cblxuICAgIGxldCBmb3VuZE5vblR5cGVJbXBvcnQgPSBmYWxzZTtcbiAgICBsZXQgZm91bmRBbnlOYW1lZEltcG9ydCA9IGZhbHNlO1xuICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7XG5cbiAgICAvLyBIYW5kbGUgZGVmYXVsdCBpbXBvcnQuXG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Lm5hbWUpKSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRBdXRvbWF0aWNhbGx5RWxpZGVJbXBvcnRlZE5hbWUodGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmNvbW1hKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvdW5kTm9uVHlwZUltcG9ydCA9IHRydWU7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuY29tbWEpKSB7XG4gICAgICAgICAgLy8gV2UncmUgaW4gYSBzdGF0ZW1lbnQgbGlrZTpcbiAgICAgICAgICAvLyBpbXBvcnQgQSwgKiBhcyBCIGZyb20gJy4vQSc7XG4gICAgICAgICAgLy8gb3JcbiAgICAgICAgICAvLyBpbXBvcnQgQSwge2Zvb30gZnJvbSAnLi9BJztcbiAgICAgICAgICAvLyB3aGVyZSB0aGUgYEFgIGlzIGJlaW5nIGtlcHQuIFRoZSBjb21tYSBzaG91bGQgYmUgcmVtb3ZlZCBpZiBhbiBvbmx5XG4gICAgICAgICAgLy8gaWYgdGhlIG5leHQgcGFydCBvZiB0aGUgaW1wb3J0IHN0YXRlbWVudCBpcyBlbGlkZWQsIGJ1dCB0aGF0J3MgaGFyZFxuICAgICAgICAgIC8vIHRvIGRldGVybWluZSBhdCB0aGlzIHBvaW50IGluIHRoZSBjb2RlLiBJbnN0ZWFkLCBhbHdheXMgcmVtb3ZlIGl0XG4gICAgICAgICAgLy8gYW5kIHNldCBhIGZsYWcgdG8gYWRkIGl0IGJhY2sgaWYgbmVjZXNzYXJ5LlxuICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuc3RhcikpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZEF1dG9tYXRpY2FsbHlFbGlkZUltcG9ydGVkTmFtZSh0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0UmVsYXRpdmVJbmRleCgyKSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChuZWVkc0NvbW1hKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIixcIik7XG4gICAgICAgIH1cbiAgICAgICAgZm91bmROb25UeXBlSW1wb3J0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuc3Rhcik7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0Lm5hbWUpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5uYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlTCkpIHtcbiAgICAgIGlmIChuZWVkc0NvbW1hKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCIsXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB3aGlsZSAoIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlUikpIHtcbiAgICAgICAgZm91bmRBbnlOYW1lZEltcG9ydCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNwZWNpZmllckluZm8gPSBnZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvKHRoaXMudG9rZW5zKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNwZWNpZmllckluZm8uaXNUeXBlIHx8XG4gICAgICAgICAgdGhpcy5zaG91bGRBdXRvbWF0aWNhbGx5RWxpZGVJbXBvcnRlZE5hbWUoc3BlY2lmaWVySW5mby5yaWdodE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHNwZWNpZmllckluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5jb21tYSkpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvdW5kTm9uVHlwZUltcG9ydCA9IHRydWU7XG4gICAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgc3BlY2lmaWVySW5mby5lbmRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5jb21tYSkpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VSKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5rZWVwVW51c2VkSW1wb3J0cykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICByZXR1cm4gIWZvdW5kTm9uVHlwZUltcG9ydDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNGbG93VHJhbnNmb3JtRW5hYmxlZCkge1xuICAgICAgLy8gSW4gRmxvdywgdW5saWtlIFRTLCBgaW1wb3J0IHt9IGZyb20gJ2Zvbyc7YCBwcmVzZXJ2ZXMgdGhlIGltcG9ydC5cbiAgICAgIHJldHVybiBmb3VuZEFueU5hbWVkSW1wb3J0ICYmICFmb3VuZE5vblR5cGVJbXBvcnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAgc2hvdWxkQXV0b21hdGljYWxseUVsaWRlSW1wb3J0ZWROYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1R5cGVTY3JpcHRUcmFuc2Zvcm1FbmFibGVkICYmXG4gICAgICAhdGhpcy5rZWVwVW51c2VkSW1wb3J0cyAmJlxuICAgICAgIXRoaXMubm9uVHlwZUlkZW50aWZpZXJzLmhhcyhuYW1lKVxuICAgICk7XG4gIH1cblxuICAgcHJvY2Vzc0V4cG9ydERlZmF1bHQoKSB7XG4gICAgaWYgKFxuICAgICAgc2hvdWxkRWxpZGVEZWZhdWx0RXhwb3J0KFxuICAgICAgICB0aGlzLmlzVHlwZVNjcmlwdFRyYW5zZm9ybUVuYWJsZWQsXG4gICAgICAgIHRoaXMua2VlcFVudXNlZEltcG9ydHMsXG4gICAgICAgIHRoaXMudG9rZW5zLFxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uSW5mbyxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIC8vIElmIHRoZSBleHBvcnRlZCB2YWx1ZSBpcyBqdXN0IGFuIGlkZW50aWZpZXIgYW5kIHNob3VsZCBiZSBlbGlkZWQgYnkgVHlwZVNjcmlwdFxuICAgICAgLy8gcnVsZXMsIHRoZW4gcmVtb3ZlIGl0IGVudGlyZWx5LiBJdCB3aWxsIGFsd2F5cyBoYXZlIHRoZSBmb3JtIGBleHBvcnQgZGVmYXVsdCBlYCxcbiAgICAgIC8vIHdoZXJlIGBlYCBpcyBhbiBpZGVudGlmaWVyLlxuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFscmVhZHlIYXNOYW1lID1cbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM0KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5fZnVuY3Rpb24sIHR0Lm5hbWUpIHx8XG4gICAgICAvLyBleHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvblxuICAgICAgKHRoaXMudG9rZW5zLm1hdGNoZXM1KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5uYW1lLCB0dC5fZnVuY3Rpb24sIHR0Lm5hbWUpICYmXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsQXRJbmRleChcbiAgICAgICAgICB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDIsXG4gICAgICAgICAgQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jLFxuICAgICAgICApKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczQodHQuX2V4cG9ydCwgdHQuX2RlZmF1bHQsIHR0Ll9jbGFzcywgdHQubmFtZSkgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXM1KHR0Ll9leHBvcnQsIHR0Ll9kZWZhdWx0LCB0dC5fYWJzdHJhY3QsIHR0Ll9jbGFzcywgdHQubmFtZSk7XG5cbiAgICBpZiAoIWFscmVhZHlIYXNOYW1lICYmIHRoaXMucmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcikge1xuICAgICAgLy8gVGhpcyBpcyBhIHBsYWluIFwiZXhwb3J0IGRlZmF1bHQgRVwiIHN0YXRlbWVudCBhbmQgd2UgbmVlZCB0byBhc3NpZ24gRSB0byBhIHZhcmlhYmxlLlxuICAgICAgLy8gQ2hhbmdlIFwiZXhwb3J0IGRlZmF1bHQgRVwiIHRvIFwibGV0IF9kZWZhdWx0OyBleHBvcnQgZGVmYXVsdCBfZGVmYXVsdCA9IEVcIlxuICAgICAgY29uc3QgZGVmYXVsdFZhck5hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfZGVmYXVsdFwiKTtcbiAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgbGV0ICR7ZGVmYXVsdFZhck5hbWV9OyBleHBvcnRgKTtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgICR7ZGVmYXVsdFZhck5hbWV9ID1gKTtcbiAgICAgIHRoaXMucmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lci5zZXRFeHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZShkZWZhdWx0VmFyTmFtZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHN0YXRlbWVudCB3aXRoIG9uZSBvZiB0aGVzZSBmb3JtczpcbiAgICogZXhwb3J0IHthLCB0eXBlIGJ9O1xuICAgKiBleHBvcnQge2MsIHR5cGUgZH0gZnJvbSAnZm9vJztcbiAgICpcbiAgICogSW4gYm90aCBjYXNlcywgYW55IGV4cGxpY2l0IHR5cGUgZXhwb3J0cyBzaG91bGQgYmUgcmVtb3ZlZC4gSW4gdGhlIGZpcnN0XG4gICAqIGNhc2UsIHdlIGFsc28gbmVlZCB0byBoYW5kbGUgaW1wbGljaXQgZXhwb3J0IGVsaXNpb24gZm9yIG5hbWVzIGRlY2xhcmVkIGFzXG4gICAqIHR5cGVzLiBJbiB0aGUgc2Vjb25kIGNhc2UsIHdlIG11c3QgTk9UIGRvIGltcGxpY2l0IG5hbWVkIGV4cG9ydCBlbGlzaW9uLFxuICAgKiBidXQgd2UgbXVzdCByZW1vdmUgdGhlIHJ1bnRpbWUgaW1wb3J0IGlmIGFsbCBleHBvcnRzIGFyZSB0eXBlIGV4cG9ydHMuXG4gICAqL1xuICAgcHJvY2Vzc05hbWVkRXhwb3J0cygpIHtcbiAgICBpZiAoIXRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5fZXhwb3J0KTtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5icmFjZUwpO1xuXG4gICAgY29uc3QgaXNSZUV4cG9ydCA9IGlzRXhwb3J0RnJvbSh0aGlzLnRva2Vucyk7XG4gICAgbGV0IGZvdW5kTm9uVHlwZUV4cG9ydCA9IGZhbHNlO1xuICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlczEodHQuYnJhY2VSKSkge1xuICAgICAgY29uc3Qgc3BlY2lmaWVySW5mbyA9IGdldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8odGhpcy50b2tlbnMpO1xuICAgICAgaWYgKFxuICAgICAgICBzcGVjaWZpZXJJbmZvLmlzVHlwZSB8fFxuICAgICAgICAoIWlzUmVFeHBvcnQgJiYgdGhpcy5zaG91bGRFbGlkZUV4cG9ydGVkTmFtZShzcGVjaWZpZXJJbmZvLmxlZnROYW1lKSlcbiAgICAgICkge1xuICAgICAgICAvLyBUeXBlIGV4cG9ydCwgc28gcmVtb3ZlIGFsbCB0b2tlbnMsIGluY2x1ZGluZyBhbnkgY29tbWEuXG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHNwZWNpZmllckluZm8uZW5kSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5jb21tYSkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb24tdHlwZSBleHBvcnQsIHNvIGNvcHkgYWxsIHRva2VucywgaW5jbHVkaW5nIGFueSBjb21tYS5cbiAgICAgICAgZm91bmROb25UeXBlRXhwb3J0ID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgc3BlY2lmaWVySW5mby5lbmRJbmRleCkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5jb21tYSkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5icmFjZVIpO1xuXG4gICAgaWYgKCF0aGlzLmtlZXBVbnVzZWRJbXBvcnRzICYmIGlzUmVFeHBvcnQgJiYgIWZvdW5kTm9uVHlwZUV4cG9ydCkge1xuICAgICAgLy8gVGhpcyBpcyBhIHR5cGUtb25seSByZS1leHBvcnQsIHNvIHNraXAgZXZhbHVhdGluZyB0aGUgb3RoZXIgbW9kdWxlLiBUZWNobmljYWxseSB0aGlzXG4gICAgICAvLyBsZWF2ZXMgdGhlIHN0YXRlbWVudCBhcyBgZXhwb3J0IHt9YCwgYnV0IHRoYXQncyBvayBzaW5jZSB0aGF0J3MgYSBuby1vcC5cbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgcmVtb3ZlTWF5YmVJbXBvcnRBdHRyaWJ1dGVzKHRoaXMudG9rZW5zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFU00gZWxpZGVzIGFsbCBpbXBvcnRzIHdpdGggdGhlIHJ1bGUgdGhhdCB3ZSBvbmx5IGVsaWRlIGlmIHdlIHNlZSB0aGF0IGl0J3NcbiAgICogYSB0eXBlIGFuZCBuZXZlciBzZWUgaXQgYXMgYSB2YWx1ZS4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBDSlMsIHdoaWNoXG4gICAqIGVsaWRlcyBpbXBvcnRzIHRoYXQgYXJlIGNvbXBsZXRlbHkgdW5rbm93bi5cbiAgICovXG4gICBzaG91bGRFbGlkZUV4cG9ydGVkTmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNUeXBlU2NyaXB0VHJhbnNmb3JtRW5hYmxlZCAmJlxuICAgICAgIXRoaXMua2VlcFVudXNlZEltcG9ydHMgJiZcbiAgICAgIHRoaXMuZGVjbGFyYXRpb25JbmZvLnR5cGVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpICYmXG4gICAgICAhdGhpcy5kZWNsYXJhdGlvbkluZm8udmFsdWVEZWNsYXJhdGlvbnMuaGFzKG5hbWUpXG4gICAgKTtcbiAgfVxufVxuIiwgImltcG9ydCB7Q29udGV4dHVhbEtleXdvcmR9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyL2tleXdvcmRzXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxvd1RyYW5zZm9ybWVyIGV4dGVuZHMgVHJhbnNmb3JtZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgcm9vdFRyYW5zZm9ybWVyLFxuICAgICB0b2tlbnMsXG4gICAgIGlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQsXG4gICkge1xuICAgIHN1cGVyKCk7dGhpcy5yb290VHJhbnNmb3JtZXIgPSByb290VHJhbnNmb3JtZXI7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkID0gaXNJbXBvcnRzVHJhbnNmb3JtRW5hYmxlZDs7XG4gIH1cblxuICBwcm9jZXNzKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NQb3NzaWJsZUFycm93UGFyYW1FbmQoKSB8fFxuICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Bvc3NpYmxlQXN5bmNBcnJvd1dpdGhUeXBlUGFyYW1zKCkgfHxcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NQb3NzaWJsZVR5cGVSYW5nZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9lbnVtKSkge1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fZXhwb3J0LCB0dC5fZW51bSkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc05hbWVkRXhwb3J0RW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5fZXhwb3J0LCB0dC5fZGVmYXVsdCwgdHQuX2VudW0pKSB7XG4gICAgICB0aGlzLnByb2Nlc3NEZWZhdWx0RXhwb3J0RW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBkZWNsYXJhdGlvbiBsaWtlOlxuICAgKiBleHBvcnQgZW51bSBFIC4uLlxuICAgKlxuICAgKiBXaXRoIHRoaXMgaW1wb3J0cyB0cmFuc2Zvcm0sIHRoaXMgYmVjb21lczpcbiAgICogY29uc3QgRSA9IFtbZW51bV1dOyBleHBvcnRzLkUgPSBFO1xuICAgKlxuICAgKiBvdGhlcndpc2UsIGl0IGJlY29tZXM6XG4gICAqIGV4cG9ydCBjb25zdCBFID0gW1tlbnVtXV07XG4gICAqL1xuICBwcm9jZXNzTmFtZWRFeHBvcnRFbnVtKCkge1xuICAgIGlmICh0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIC8vIGV4cG9ydFxuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICBjb25zdCBlbnVtTmFtZSA9IHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRSZWxhdGl2ZUluZGV4KDEpO1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydHMuJHtlbnVtTmFtZX0gPSAke2VudW1OYW1lfTtgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnByb2Nlc3NFbnVtKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIGRlY2xhcmF0aW9uIGxpa2U6XG4gICAqIGV4cG9ydCBkZWZhdWx0IGVudW0gRVxuICAgKlxuICAgKiBXaXRoIHRoZSBpbXBvcnRzIHRyYW5zZm9ybSwgdGhpcyBiZWNvbWVzOlxuICAgKiBjb25zdCBFID0gW1tlbnVtXV07IGV4cG9ydHMuZGVmYXVsdCA9IEU7XG4gICAqXG4gICAqIG90aGVyd2lzZSwgaXQgYmVjb21lczpcbiAgICogY29uc3QgRSA9IFtbZW51bV1dOyBleHBvcnQgZGVmYXVsdCBFO1xuICAgKi9cbiAgcHJvY2Vzc0RlZmF1bHRFeHBvcnRFbnVtKCkge1xuICAgIC8vIGV4cG9ydFxuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIC8vIGRlZmF1bHRcbiAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgIGNvbnN0IGVudW1OYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdFJlbGF0aXZlSW5kZXgoMSk7XG4gICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgIGlmICh0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCBleHBvcnRzLmRlZmF1bHQgPSAke2VudW1OYW1lfTtgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgIGV4cG9ydCBkZWZhdWx0ICR7ZW51bU5hbWV9O2ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc3BpbGUgZmxvdyBlbnVtcyB0byBpbnZva2UgdGhlIFwiZmxvdy1lbnVtcy1ydW50aW1lXCIgbGlicmFyeS5cbiAgICpcbiAgICogQ3VycmVudGx5LCB0aGUgdHJhbnNwaWxlZCBjb2RlIGFsd2F5cyB1c2VzIGByZXF1aXJlKFwiZmxvdy1lbnVtcy1ydW50aW1lXCIpYCxcbiAgICogYnV0IGlmIGZ1dHVyZSBmbGV4aWJpbGl0eSBpcyBuZWVkZWQsIHdlIGNvdWxkIGV4cG9zZSBhIGNvbmZpZyBvcHRpb24gZm9yXG4gICAqIHRoaXMgc3RyaW5nIChzaW1pbGFyIHRvIGNvbmZpZ3VyYWJsZSBKU1gpLiBFdmVuIHdoZW4gdGFyZ2V0aW5nIEVTTSwgdGhlXG4gICAqIGRlZmF1bHQgYmVoYXZpb3Igb2YgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1mbG93LWVudW1zIGlzIHRvIHVzZSByZXF1aXJlXG4gICAqIHJhdGhlciB0aGFuIGluamVjdGluZyBhbiBpbXBvcnQuXG4gICAqXG4gICAqIEZsb3cgZW51bXMgYXJlIHF1aXRlIGEgYml0IHNpbXBsZXIgdGhhbiBUUyBlbnVtcyBhbmQgaGF2ZSBzb21lIGNvbnZlbmllbnRcbiAgICogY29uc3RyYWludHM6XG4gICAqIC0gRWxlbWVudCBpbml0aWFsaXplcnMgbXVzdCBiZSBlaXRoZXIgYWx3YXlzIHByZXNlbnQgb3IgYWx3YXlzIGFic2VudC4gVGhhdFxuICAgKiAgIG1lYW5zIHRoYXQgd2UgY2FuIHVzZSBmaXhlZCBsb29rYWhlYWQgb24gdGhlIGZpcnN0IGVsZW1lbnQgKGlmIGFueSkgYW5kXG4gICAqICAgYXNzdW1lIHRoYXQgYWxsIGVsZW1lbnRzIGFyZSBsaWtlIHRoYXQuXG4gICAqIC0gVGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhbiBlbGVtZW50IGluaXRpYWxpemVyIG11c3QgYmUgYSBsaXRlcmFsIHZhbHVlLFxuICAgKiAgIG5vdCBhIGNvbXBsZXggZXhwcmVzc2lvbiBhbmQgbm90IHJlZmVyZW5jaW5nIG90aGVyIGVsZW1lbnRzLiBUaGF0IG1lYW5zXG4gICAqICAgd2UgY2FuIHNpbXBseSBjb3B5IGEgc2luZ2xlIHRva2VuLlxuICAgKlxuICAgKiBFbnVtcyBjYW4gYmUgYnJva2VuIHVwIGludG8gdGhyZWUgYmFzaWMgY2FzZXM6XG4gICAqXG4gICAqIE1pcnJvcmVkIGVudW1zOlxuICAgKiBlbnVtIEUge0EsIEJ9XG4gICAqICAgLT5cbiAgICogY29uc3QgRSA9IHJlcXVpcmUoXCJmbG93LWVudW1zLXJ1bnRpbWVcIikuTWlycm9yZWQoW1wiQVwiLCBcIkJcIl0pO1xuICAgKlxuICAgKiBJbml0aWFsaXplciBlbnVtczpcbiAgICogZW51bSBFIHtBID0gMSwgQiA9IDJ9XG4gICAqICAgLT5cbiAgICogY29uc3QgRSA9IHJlcXVpcmUoXCJmbG93LWVudW1zLXJ1bnRpbWVcIikoe0E6IDEsIEI6IDJ9KTtcbiAgICpcbiAgICogU3ltYm9sIGVudW1zOlxuICAgKiBlbnVtIEUgb2Ygc3ltYm9sIHtBLCBCfVxuICAgKiAgIC0+XG4gICAqIGNvbnN0IEUgPSByZXF1aXJlKFwiZmxvdy1lbnVtcy1ydW50aW1lXCIpKHtBOiBTeW1ib2woXCJBXCIpLCBCOiBTeW1ib2woXCJCXCIpfSk7XG4gICAqXG4gICAqIFdlIGNhbiBzdGF0aWNhbGx5IGRldGVjdCB3aGljaCBvZiB0aGUgdGhyZWUgY2FzZXMgdGhpcyBpcyBieSBsb29raW5nIGF0IHRoZVxuICAgKiBcIm9mXCIgZGVjbGFyYXRpb24gKGlmIGFueSkgYW5kIHNlZWluZyBpZiB0aGUgZmlyc3QgZWxlbWVudCBoYXMgYW4gaW5pdGlhbGl6ZXIuXG4gICAqIFNpbmNlIHRoZSBvdGhlciB0cmFuc2Zvcm0gZGV0YWlscyBhcmUgc28gc2ltaWxhciBiZXR3ZWVuIHRoZSB0aHJlZSBjYXNlcywgd2VcbiAgICogdXNlIGEgc2luZ2xlIGltcGxlbWVudGF0aW9uIGFuZCB2YXJ5IHRoZSB0cmFuc2Zvcm0gd2l0aGluIHByb2Nlc3NFbnVtRWxlbWVudFxuICAgKiBiYXNlZCBvbiBjYXNlLlxuICAgKi9cbiAgcHJvY2Vzc0VudW0oKSB7XG4gICAgLy8gZW51bSBFIC0+IGNvbnN0IEVcbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJjb25zdFwiKTtcbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5uYW1lKTtcblxuICAgIGxldCBpc1N5bWJvbEVudW0gPSBmYWxzZTtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX29mKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIGlzU3ltYm9sRW51bSA9IHRoaXMudG9rZW5zLm1hdGNoZXNDb250ZXh0dWFsKENvbnRleHR1YWxLZXl3b3JkLl9zeW1ib2wpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc3QgaGFzSW5pdGlhbGl6ZXJzID0gdGhpcy50b2tlbnMubWF0Y2hlczModHQuYnJhY2VMLCB0dC5uYW1lLCB0dC5lcSk7XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZSgnID0gcmVxdWlyZShcImZsb3ctZW51bXMtcnVudGltZVwiKScpO1xuXG4gICAgY29uc3QgaXNNaXJyb3JlZCA9ICFpc1N5bWJvbEVudW0gJiYgIWhhc0luaXRpYWxpemVycztcbiAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGlzTWlycm9yZWQgPyBcIi5NaXJyb3JlZChbXCIgOiBcIih7XCIpO1xuXG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFjZVIpKSB7XG4gICAgICAvLyAuLi4gaXMgYWxsb3dlZCBhdCB0aGUgZW5kIGFuZCBoYXMgbm8gcnVudGltZSBiZWhhdmlvci5cbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5lbGxpcHNpcykpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2Nlc3NFbnVtRWxlbWVudChpc1N5bWJvbEVudW0sIGhhc0luaXRpYWxpemVycyk7XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuY29tbWEpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihpc01pcnJvcmVkID8gXCJdKTtcIiA6IFwifSk7XCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgYW4gaW5kaXZpZHVhbCBlbnVtIGVsZW1lbnQsIHByb2R1Y2luZyBlaXRoZXIgYW4gYXJyYXkgZWxlbWVudCBvciBhblxuICAgKiBvYmplY3QgZWxlbWVudCBiYXNlZCBvbiB3aGF0IHR5cGUgb2YgZW51bSB0aGlzIGlzLlxuICAgKi9cbiAgcHJvY2Vzc0VudW1FbGVtZW50KGlzU3ltYm9sRW51bSwgaGFzSW5pdGlhbGl6ZXJzKSB7XG4gICAgaWYgKGlzU3ltYm9sRW51bSkge1xuICAgICAgLy8gU3ltYm9sIGVudW1zIG5ldmVyIGhhdmUgaW5pdGlhbGl6ZXJzIGFuZCBhcmUgZXhwYW5kZWQgdG8gb2JqZWN0IGVsZW1lbnRzLlxuICAgICAgLy8gQSwgLT4gQTogU3ltYm9sKFwiQVwiKSxcbiAgICAgIGNvbnN0IGVsZW1lbnROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKTtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgOiBTeW1ib2woXCIke2VsZW1lbnROYW1lfVwiKWApO1xuICAgIH0gZWxzZSBpZiAoaGFzSW5pdGlhbGl6ZXJzKSB7XG4gICAgICAvLyBJbml0aWFsaXplcnMgYXJlIGV4cGFuZGVkIHRvIG9iamVjdCBlbGVtZW50cy5cbiAgICAgIC8vIEEgPSAxLCAtPiBBOiAxLFxuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKFwiOlwiKTtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbnVtIGVsZW1lbnRzIHdpdGhvdXQgaW5pdGlhbGl6ZXJzIGJlY29tZSBzdHJpbmcgbGl0ZXJhbCBhcnJheSBlbGVtZW50cy5cbiAgICAgIC8vIEEsIC0+IFwiQVwiLFxuICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGBcIiR7dGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWUoKX1cImApO1xuICAgIH1cbiAgfVxufVxuIiwgIiBmdW5jdGlvbiBfb3B0aW9uYWxDaGFpbihvcHMpIHsgbGV0IGxhc3RBY2Nlc3NMSFMgPSB1bmRlZmluZWQ7IGxldCB2YWx1ZSA9IG9wc1swXTsgbGV0IGkgPSAxOyB3aGlsZSAoaSA8IG9wcy5sZW5ndGgpIHsgY29uc3Qgb3AgPSBvcHNbaV07IGNvbnN0IGZuID0gb3BzW2kgKyAxXTsgaSArPSAyOyBpZiAoKG9wID09PSAnb3B0aW9uYWxBY2Nlc3MnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykgJiYgdmFsdWUgPT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGlmIChvcCA9PT0gJ2FjY2VzcycgfHwgb3AgPT09ICdvcHRpb25hbEFjY2VzcycpIHsgbGFzdEFjY2Vzc0xIUyA9IHZhbHVlOyB2YWx1ZSA9IGZuKHZhbHVlKTsgfSBlbHNlIGlmIChvcCA9PT0gJ2NhbGwnIHx8IG9wID09PSAnb3B0aW9uYWxDYWxsJykgeyB2YWx1ZSA9IGZuKCguLi5hcmdzKSA9PiB2YWx1ZS5jYWxsKGxhc3RBY2Nlc3NMSFMsIC4uLmFyZ3MpKTsgbGFzdEFjY2Vzc0xIUyA9IHVuZGVmaW5lZDsgfSB9IHJldHVybiB2YWx1ZTsgfVxuXG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuY29uc3QgSkVTVF9HTE9CQUxfTkFNRSA9IFwiamVzdFwiO1xuY29uc3QgSE9JU1RFRF9NRVRIT0RTID0gW1wibW9ja1wiLCBcInVubW9ja1wiLCBcImVuYWJsZUF1dG9tb2NrXCIsIFwiZGlzYWJsZUF1dG9tb2NrXCJdO1xuXG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIGJhYmVsLXBsdWdpbi1qZXN0LWhvaXN0LCB3aGljaCBob2lzdHMgdXAgc29tZSBqZXN0IG1ldGhvZFxuICogY2FsbHMgYWJvdmUgdGhlIGltcG9ydHMgdG8gYWxsb3cgdGhlbSB0byBvdmVycmlkZSBvdGhlciBpbXBvcnRzLlxuICpcbiAqIFRvIHByZXNlcnZlIGxpbmUgbnVtYmVycywgcmF0aGVyIHRoYW4gZGlyZWN0bHkgbW92aW5nIHRoZSBqZXN0Lm1vY2sgY29kZSwgd2VcbiAqIHdyYXAgZWFjaCBpbnZvY2F0aW9uIGluIGEgZnVuY3Rpb24gc3RhdGVtZW50IGFuZCB0aGVuIGNhbGwgdGhlIGZ1bmN0aW9uIGZyb21cbiAqIHRoZSB0b3Agb2YgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEplc3RIb2lzdFRyYW5zZm9ybWVyIGV4dGVuZHMgVHJhbnNmb3JtZXIge1xuICAgIF9faW5pdCgpIHt0aGlzLmhvaXN0ZWRGdW5jdGlvbk5hbWVzID0gW119XG5cbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBuYW1lTWFuYWdlcixcbiAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICApIHtcbiAgICBzdXBlcigpO3RoaXMucm9vdFRyYW5zZm9ybWVyID0gcm9vdFRyYW5zZm9ybWVyO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMubmFtZU1hbmFnZXIgPSBuYW1lTWFuYWdlcjt0aGlzLmltcG9ydFByb2Nlc3NvciA9IGltcG9ydFByb2Nlc3NvcjtKZXN0SG9pc3RUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7O1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5zY29wZURlcHRoID09PSAwICYmXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzNCh0dC5uYW1lLCB0dC5kb3QsIHR0Lm5hbWUsIHR0LnBhcmVuTCkgJiZcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCkgPT09IEpFU1RfR0xPQkFMX05BTUVcbiAgICApIHtcbiAgICAgIC8vIFRPRE86IFRoaXMgb25seSB3b3JrcyBpZiBpbXBvcnRzIHRyYW5zZm9ybSBpcyBhY3RpdmUsIHdoaWNoIGl0IHdpbGwgYmUgZm9yIGplc3QuXG4gICAgICAvLyAgICAgICBCdXQgaWYgamVzdCBhZGRzIG1vZHVsZSBzdXBwb3J0IGFuZCB3ZSBubyBsb25nZXIgbmVlZCB0aGUgaW1wb3J0IHRyYW5zZm9ybSwgdGhpcyBuZWVkcyBmaXhpbmcuXG4gICAgICBpZiAoX29wdGlvbmFsQ2hhaW4oW3RoaXMsICdhY2Nlc3MnLCBfID0+IF8uaW1wb3J0UHJvY2Vzc29yLCAnb3B0aW9uYWxBY2Nlc3MnLCBfMiA9PiBfMi5nZXRHbG9iYWxOYW1lcywgJ2NhbGwnLCBfMyA9PiBfMygpLCAnb3B0aW9uYWxBY2Nlc3MnLCBfNCA9PiBfNC5oYXMsICdjYWxsJywgXzUgPT4gXzUoSkVTVF9HTE9CQUxfTkFNRSldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0SG9pc3RlZENhbGxzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0SG9pc3RlZENvZGUoKSB7XG4gICAgaWYgKHRoaXMuaG9pc3RlZEZ1bmN0aW9uTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gVGhpcyB3aWxsIGJlIHBsYWNlZCBiZWZvcmUgbW9kdWxlIGludGVyb3AgY29kZSwgYnV0IHRoYXQncyBmaW5lIHNpbmNlXG4gICAgICAvLyBpbXBvcnRzIGFyZW4ndCBhbGxvd2VkIGluIG1vZHVsZSBtb2NrIGZhY3Rvcmllcy5cbiAgICAgIHJldHVybiB0aGlzLmhvaXN0ZWRGdW5jdGlvbk5hbWVzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX0oKTtgKS5qb2luKFwiXCIpO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhbnkgbWV0aG9kcyBjYWxscyBvbiB0aGUgamVzdC1vYmplY3QgdGhhdCBzaG91bGQgYmUgaG9pc3RlZC5cbiAgICpcbiAgICogQWNjb3JkaW5nIHRvIHRoZSBqZXN0IGRvY3MsIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvZW4vamVzdC1vYmplY3QjamVzdG1vY2ttb2R1bGVuYW1lLWZhY3Rvcnktb3B0aW9ucyxcbiAgICogbW9jaywgdW5tb2NrLCBlbmFibGVBdXRvbW9jaywgZGlzYWJsZUF1dG9tb2NrLCBhcmUgdGhlIG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgaG9pc3RlZC5cbiAgICpcbiAgICogV2UgZG8gbm90IGFwcGx5IHRoZSBzYW1lIGNoZWNrcyBvZiB0aGUgYXJndW1lbnRzIGFzIGJhYmVsLXBsdWdpbi1qZXN0LWhvaXN0IGRvZXMuXG4gICAqL1xuICAgZXh0cmFjdEhvaXN0ZWRDYWxscygpIHtcbiAgICAvLyBXZSdyZSBoYW5kbGluZyBhIGNoYWluIG9mIGNhbGxzIHdoZXJlIGBqZXN0YCBtYXkgb3IgbWF5IG5vdCBuZWVkIHRvIGJlIGluc2VydGVkIGZvciBlYWNoIGNhbGxcbiAgICAvLyBpbiB0aGUgY2hhaW4sIHNvIHJlbW92ZSB0aGUgaW5pdGlhbCBgamVzdGAgdG8gbWFrZSB0aGUgbG9vcCBpbXBsZW1lbnRhdGlvbiBjbGVhbmVyLlxuICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgLy8gVHJhY2sgc29tZSBzdGF0ZSBzbyB0aGF0IG11bHRpcGxlIG5vbi1ob2lzdGVkIGNoYWluZWQgY2FsbHMgaW4gYSByb3cga2VlcCB0aGVpciBjaGFpbmluZ1xuICAgIC8vIHN5bnRheC5cbiAgICBsZXQgZm9sbG93c05vbkhvaXN0ZWRKZXN0Q2FsbCA9IGZhbHNlO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBjaGFpbmVkIGNhbGxzIG9uIHRoZSBqZXN0IG9iamVjdC5cbiAgICB3aGlsZSAodGhpcy50b2tlbnMubWF0Y2hlczModHQuZG90LCB0dC5uYW1lLCB0dC5wYXJlbkwpKSB7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSk7XG4gICAgICBjb25zdCBzaG91bGRIb2lzdCA9IEhPSVNURURfTUVUSE9EUy5pbmNsdWRlcyhtZXRob2ROYW1lKTtcbiAgICAgIGlmIChzaG91bGRIb2lzdCkge1xuICAgICAgICAvLyBXZSd2ZSBtYXRjaGVkIGUuZy4gYC5tb2NrKC4uLilgIG9yIHNpbWlsYXIgY2FsbC5cbiAgICAgICAgLy8gUmVwbGFjZSB0aGUgaW5pdGlhbCBgLmAgd2l0aCBgZnVuY3Rpb24gX19qZXN0SG9pc3QoKXtqZXN0LmBcbiAgICAgICAgY29uc3QgaG9pc3RlZEZ1bmN0aW9uTmFtZSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9famVzdEhvaXN0XCIpO1xuICAgICAgICB0aGlzLmhvaXN0ZWRGdW5jdGlvbk5hbWVzLnB1c2goaG9pc3RlZEZ1bmN0aW9uTmFtZSk7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgZnVuY3Rpb24gJHtob2lzdGVkRnVuY3Rpb25OYW1lfSgpeyR7SkVTVF9HTE9CQUxfTkFNRX0uYCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5wYXJlblIpO1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiO31cIik7XG4gICAgICAgIGZvbGxvd3NOb25Ib2lzdGVkSmVzdENhbGwgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBub24taG9pc3RlZCBtZXRob2QsIHNvIGp1c3QgdHJhbnNmb3JtIHRoZSBjb2RlIGFzIHVzdWFsLlxuICAgICAgICBpZiAoZm9sbG93c05vbkhvaXN0ZWRKZXN0Q2FsbCkge1xuICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBob2lzdCB0aGUgcHJldmlvdXMgY2FsbCwgd2UgY2FuIGxlYXZlIHRoZSBjb2RlIGFzLWlzIHRvIGNoYWluIG9mZiBvZiB0aGVcbiAgICAgICAgICAvLyBwcmV2aW91cyBtZXRob2QgY2FsbC4gSXQncyBpbXBvcnRhbnQgdG8gcHJlc2VydmUgdGhlIGNvZGUgaGVyZSBiZWNhdXNlIHdlIGRvbid0IGtub3dcbiAgICAgICAgICAvLyBmb3Igc3VyZSB0aGF0IHRoZSBtZXRob2QgYWN0dWFsbHkgcmV0dXJuZWQgdGhlIGplc3Qgb2JqZWN0IGZvciBjaGFpbmluZy5cbiAgICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiB3ZSBob2lzdGVkIHRoZSBwcmV2aW91cyBjYWxsLCB3ZSBrbm93IGl0IHJldHVybnMgdGhlIGplc3Qgb2JqZWN0IGJhY2ssIHNvIHdlIGluc2VydFxuICAgICAgICAgIC8vIHRoZSBpZGVudGlmaWVyIGBqZXN0YCB0byBjb250aW51ZSB0aGUgY2hhaW4uXG4gICAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuKGAke0pFU1RfR0xPQkFMX05BTUV9LmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc0JhbGFuY2VkQ29kZSgpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5wYXJlblIpO1xuICAgICAgICBmb2xsb3dzTm9uSG9pc3RlZEplc3RDYWxsID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtZXJpY1NlcGFyYXRvclRyYW5zZm9ybWVyIGV4dGVuZHMgVHJhbnNmb3JtZXIge1xuICBjb25zdHJ1Y3RvciggdG9rZW5zKSB7XG4gICAgc3VwZXIoKTt0aGlzLnRva2VucyA9IHRva2Vuczs7XG4gIH1cblxuICBwcm9jZXNzKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5udW0pKSB7XG4gICAgICBjb25zdCBjb2RlID0gdGhpcy50b2tlbnMuY3VycmVudFRva2VuQ29kZSgpO1xuICAgICAgaWYgKGNvZGUuaW5jbHVkZXMoXCJfXCIpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihjb2RlLnJlcGxhY2UoL18vZywgXCJcIikpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCAiXG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuaW1wb3J0IFRyYW5zZm9ybWVyIGZyb20gXCIuL1RyYW5zZm9ybWVyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wdGlvbmFsQ2F0Y2hCaW5kaW5nVHJhbnNmb3JtZXIgZXh0ZW5kcyBUcmFuc2Zvcm1lciB7XG4gIGNvbnN0cnVjdG9yKCB0b2tlbnMsICBuYW1lTWFuYWdlcikge1xuICAgIHN1cGVyKCk7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5uYW1lTWFuYWdlciA9IG5hbWVNYW5hZ2VyOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9jYXRjaCwgdHQuYnJhY2VMKSkge1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgKCR7dGhpcy5uYW1lTWFuYWdlci5jbGFpbUZyZWVOYW1lKFwiZVwiKX0pYCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCAiXG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuaW1wb3J0IFRyYW5zZm9ybWVyIGZyb20gXCIuL1RyYW5zZm9ybWVyXCI7XG5cbi8qKlxuICogVHJhbnNmb3JtZXIgc3VwcG9ydGluZyB0aGUgb3B0aW9uYWwgY2hhaW5pbmcgYW5kIG51bGxpc2ggY29hbGVzY2luZyBvcGVyYXRvcnMuXG4gKlxuICogVGVjaCBwbGFuIGhlcmU6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYWxhbmdwaWVyY2Uvc3VjcmFzZS93aWtpL1N1Y3Jhc2UtT3B0aW9uYWwtQ2hhaW5pbmctYW5kLU51bGxpc2gtQ29hbGVzY2luZy1UZWNobmljYWwtUGxhblxuICpcbiAqIFRoZSBwcmVmaXggYW5kIHN1ZmZpeCBjb2RlIHNuaXBwZXRzIGFyZSBoYW5kbGVkIGJ5IFRva2VuUHJvY2Vzc29yLCBhbmQgdGhpcyB0cmFuc2Zvcm1lciBoYW5kbGVzXG4gKiB0aGUgb3BlcmF0b3JzIHRoZW1zZWx2ZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wdGlvbmFsQ2hhaW5pbmdOdWxsaXNoVHJhbnNmb3JtZXIgZXh0ZW5kcyBUcmFuc2Zvcm1lciB7XG4gIGNvbnN0cnVjdG9yKCB0b2tlbnMsICBuYW1lTWFuYWdlcikge1xuICAgIHN1cGVyKCk7dGhpcy50b2tlbnMgPSB0b2tlbnM7dGhpcy5uYW1lTWFuYWdlciA9IG5hbWVNYW5hZ2VyOztcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Lm51bGxpc2hDb2FsZXNjaW5nKSkge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbdG9rZW4ubnVsbGlzaFN0YXJ0SW5kZXhdLmlzQXN5bmNPcGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShcIiwgYXN5bmMgKCkgPT4gKFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoXCIsICgpID0+IChcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9kZWxldGUpKSB7XG4gICAgICBjb25zdCBuZXh0VG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbkF0UmVsYXRpdmVJbmRleCgxKTtcbiAgICAgIGlmIChuZXh0VG9rZW4uaXNPcHRpb25hbENoYWluU3RhcnQpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICAgIGNvbnN0IGNoYWluU3RhcnQgPSB0b2tlbi5zdWJzY3JpcHRTdGFydEluZGV4O1xuICAgIGlmIChcbiAgICAgIGNoYWluU3RhcnQgIT0gbnVsbCAmJlxuICAgICAgdGhpcy50b2tlbnMudG9rZW5zW2NoYWluU3RhcnRdLmlzT3B0aW9uYWxDaGFpblN0YXJ0ICYmXG4gICAgICAvLyBTdXBlciBzdWJzY3JpcHRzIGNhbid0IGJlIG9wdGlvbmFsIChzaW5jZSBzdXBlciBpcyBuZXZlciBudWxsL3VuZGVmaW5lZCksIGFuZCB0aGUgc3ludGF4XG4gICAgICAvLyByZWxpZXMgb24gdGhlIHN1YnNjcmlwdCBiZWluZyBpbnRhY3QsIHNvIGxlYXZlIHRoaXMgdG9rZW4gYWxvbmUuXG4gICAgICB0aGlzLnRva2Vucy50b2tlbkF0UmVsYXRpdmVJbmRleCgtMSkudHlwZSAhPT0gdHQuX3N1cGVyXG4gICAgKSB7XG4gICAgICBjb25zdCBwYXJhbSA9IHRoaXMubmFtZU1hbmFnZXIuY2xhaW1GcmVlTmFtZShcIl9cIik7XG4gICAgICBsZXQgYXJyb3dTdGFydFNuaXBwZXQ7XG4gICAgICBpZiAoXG4gICAgICAgIGNoYWluU3RhcnQgPiAwICYmXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChjaGFpblN0YXJ0IC0gMSwgdHQuX2RlbGV0ZSkgJiZcbiAgICAgICAgdGhpcy5pc0xhc3RTdWJzY3JpcHRJbkNoYWluKClcbiAgICAgICkge1xuICAgICAgICAvLyBEZWxldGUgb3BlcmF0aW9ucyBhcmUgc3BlY2lhbDogd2UgYWxyZWFkeSByZW1vdmVkIHRoZSBkZWxldGUga2V5d29yZCwgYW5kIHRvIHN0aWxsXG4gICAgICAgIC8vIHBlcmZvcm0gYSBkZWxldGUsIHdlIG5lZWQgdG8gaW5zZXJ0IGEgZGVsZXRlIGluIHRoZSB2ZXJ5IGxhc3QgcGFydCBvZiB0aGUgY2hhaW4sIHdoaWNoXG4gICAgICAgIC8vIGluIGNvcnJlY3QgY29kZSB3aWxsIGFsd2F5cyBiZSBhIHByb3BlcnR5IGFjY2Vzcy5cbiAgICAgICAgYXJyb3dTdGFydFNuaXBwZXQgPSBgJHtwYXJhbX0gPT4gZGVsZXRlICR7cGFyYW19YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFycm93U3RhcnRTbmlwcGV0ID0gYCR7cGFyYW19ID0+ICR7cGFyYW19YDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbY2hhaW5TdGFydF0uaXNBc3luY09wZXJhdGlvbikge1xuICAgICAgICBhcnJvd1N0YXJ0U25pcHBldCA9IGBhc3luYyAke2Fycm93U3RhcnRTbmlwcGV0fWA7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0LnF1ZXN0aW9uRG90LCB0dC5wYXJlbkwpIHx8XG4gICAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0LnF1ZXN0aW9uRG90LCB0dC5sZXNzVGhhbilcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5qdXN0U2tpcHBlZFN1cGVyKCkpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiLmJpbmQodGhpcylcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShgLCAnb3B0aW9uYWxDYWxsJywgJHthcnJvd1N0YXJ0U25pcHBldH1gKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIodHQucXVlc3Rpb25Eb3QsIHR0LmJyYWNrZXRMKSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGAsICdvcHRpb25hbEFjY2VzcycsICR7YXJyb3dTdGFydFNuaXBwZXR9YCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnF1ZXN0aW9uRG90KSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW5UcmltbWluZ0xlZnRXaGl0ZXNwYWNlKGAsICdvcHRpb25hbEFjY2VzcycsICR7YXJyb3dTdGFydFNuaXBwZXR9LmApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5kb3QpKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoYCwgJ2FjY2VzcycsICR7YXJyb3dTdGFydFNuaXBwZXR9LmApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5icmFja2V0TCkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShgLCAnYWNjZXNzJywgJHthcnJvd1N0YXJ0U25pcHBldH1bYCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnBhcmVuTCkpIHtcbiAgICAgICAgaWYgKHRoaXMuanVzdFNraXBwZWRTdXBlcigpKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcIi5iaW5kKHRoaXMpXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlblRyaW1taW5nTGVmdFdoaXRlc3BhY2UoYCwgJ2NhbGwnLCAke2Fycm93U3RhcnRTbmlwcGV0fShgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgc3Vic2NyaXB0IG9wZXJhdG9yIGluIG9wdGlvbmFsIGNoYWluLlwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBjdXJyZW50IHRva2VuIGlzIHRoZSBsYXN0IG9mIGl0cyBjaGFpbiwgc28gdGhhdCB3ZSBrbm93IHdoZXRoZXIgaXQncyBlbGlnaWJsZVxuICAgKiB0byBoYXZlIGEgZGVsZXRlIG9wIGluc2VydGVkLlxuICAgKlxuICAgKiBXZSBjYW4gZG8gdGhpcyBieSB3YWxraW5nIGZvcndhcmQgdW50aWwgd2UgZGV0ZXJtaW5lIG9uZSB3YXkgb3IgYW5vdGhlci4gRWFjaFxuICAgKiBpc09wdGlvbmFsQ2hhaW5TdGFydCB0b2tlbiBtdXN0IGJlIHBhaXJlZCB3aXRoIGV4YWN0bHkgb25lIGlzT3B0aW9uYWxDaGFpbkVuZCB0b2tlbiBhZnRlciBpdCBpblxuICAgKiBhIG5lc3Rpbmcgd2F5LCBzbyB3ZSBjYW4gdHJhY2sgZGVwdGggYW5kIHdhbGsgdG8gdGhlIGVuZCBvZiB0aGUgY2hhaW4gKHRoZSBwb2ludCB3aGVyZSB0aGVcbiAgICogZGVwdGggZ29lcyBuZWdhdGl2ZSkgYW5kIHNlZSBpZiBhbnkgb3RoZXIgc3Vic2NyaXB0IHRva2VuIGlzIGFmdGVyIHVzIGluIHRoZSBjaGFpbi5cbiAgICovXG4gIGlzTGFzdFN1YnNjcmlwdEluQ2hhaW4oKSB7XG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICBmb3IgKGxldCBpID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxOyA7IGkrKykge1xuICAgICAgaWYgKGkgPj0gdGhpcy50b2tlbnMudG9rZW5zLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGNvZGUgd2hpbGUgZmluZGluZyB0aGUgZW5kIG9mIHRoZSBhY2Nlc3MgY2hhaW4uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9rZW5zLnRva2Vuc1tpXS5pc09wdGlvbmFsQ2hhaW5TdGFydCkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy50b2tlbnNbaV0uaXNPcHRpb25hbENoYWluRW5kKSB7XG4gICAgICAgIGRlcHRoLS07XG4gICAgICB9XG4gICAgICBpZiAoZGVwdGggPCAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGlzIHN1YnNjcmlwdCB0b2tlbiBpcyBhIGxhdGVyIG9uZSBpbiB0aGUgc2FtZSBjaGFpbi5cbiAgICAgIGlmIChkZXB0aCA9PT0gMCAmJiB0aGlzLnRva2Vucy50b2tlbnNbaV0uc3Vic2NyaXB0U3RhcnRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHdlIGFyZSB0aGUgb3Blbi1wYXJlbiBpbiBhbiBleHByZXNzaW9uIGxpa2Ugc3VwZXIuYSgpPy5iLlxuICAgKlxuICAgKiBXZSBjYW4gZG8gdGhpcyBieSB3YWxraW5nIGJhY2t3YXJkIHRvIGZpbmQgdGhlIHByZXZpb3VzIHN1YnNjcmlwdC4gSWYgdGhhdCBzdWJzY3JpcHQgd2FzXG4gICAqIHByZWNlZGVkIGJ5IGEgc3VwZXIsIHRoZW4gd2UgbXVzdCBiZSB0aGUgc3Vic2NyaXB0IGFmdGVyIGl0LCBzbyBpZiB0aGlzIGlzIGEgY2FsbCBleHByZXNzaW9uLFxuICAgKiB3ZSdsbCBuZWVkIHRvIGF0dGFjaCB0aGUgcmlnaHQgY29udGV4dC5cbiAgICovXG4gIGp1c3RTa2lwcGVkU3VwZXIoKSB7XG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSAtIDE7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiUmVhY2hlZCB0aGUgc3RhcnQgb2YgdGhlIGNvZGUgd2hpbGUgZmluZGluZyB0aGUgc3RhcnQgb2YgdGhlIGFjY2VzcyBjaGFpbi5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdLmlzT3B0aW9uYWxDaGFpblN0YXJ0KSB7XG4gICAgICAgIGRlcHRoLS07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleF0uaXNPcHRpb25hbENoYWluRW5kKSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICB9XG4gICAgICBpZiAoZGVwdGggPCAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBzdWJzY3JpcHQgdG9rZW4gaXMgYSBsYXRlciBvbmUgaW4gdGhlIHNhbWUgY2hhaW4uXG4gICAgICBpZiAoZGVwdGggPT09IDAgJiYgdGhpcy50b2tlbnMudG9rZW5zW2luZGV4XS5zdWJzY3JpcHRTdGFydEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLnRva2Vuc1tpbmRleCAtIDFdLnR5cGUgPT09IHR0Ll9zdXBlcjtcbiAgICAgIH1cbiAgICAgIGluZGV4LS07XG4gICAgfVxuICB9XG59XG4iLCAiXG5cbmltcG9ydCB7SWRlbnRpZmllclJvbGV9IGZyb20gXCIuLi9wYXJzZXIvdG9rZW5pemVyXCI7XG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWRpc3BsYXktbmFtZSwgd2hpY2ggYWRkcyBhXG4gKiBkaXNwbGF5IG5hbWUgdG8gdXNhZ2VzIG9mIFJlYWN0LmNyZWF0ZUNsYXNzIGFuZCBjcmVhdGVSZWFjdENsYXNzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWFjdERpc3BsYXlOYW1lVHJhbnNmb3JtZXIgZXh0ZW5kcyBUcmFuc2Zvcm1lciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICByb290VHJhbnNmb3JtZXIsXG4gICAgIHRva2VucyxcbiAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICAgICBvcHRpb25zLFxuICApIHtcbiAgICBzdXBlcigpO3RoaXMucm9vdFRyYW5zZm9ybWVyID0gcm9vdFRyYW5zZm9ybWVyO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuaW1wb3J0UHJvY2Vzc29yID0gaW1wb3J0UHJvY2Vzc29yO3RoaXMub3B0aW9ucyA9IG9wdGlvbnM7O1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCk7XG4gICAgaWYgKHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lKCkgPT09IFwiY3JlYXRlUmVhY3RDbGFzc1wiKSB7XG4gICAgICBjb25zdCBuZXdOYW1lID1cbiAgICAgICAgdGhpcy5pbXBvcnRQcm9jZXNzb3IgJiYgdGhpcy5pbXBvcnRQcm9jZXNzb3IuZ2V0SWRlbnRpZmllclJlcGxhY2VtZW50KFwiY3JlYXRlUmVhY3RDbGFzc1wiKTtcbiAgICAgIGlmIChuZXdOYW1lKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihgKDAsICR7bmV3TmFtZX0pYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudHJ5UHJvY2Vzc0NyZWF0ZUNsYXNzQ2FsbChzdGFydEluZGV4KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5uYW1lLCB0dC5kb3QsIHR0Lm5hbWUpICYmXG4gICAgICB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpID09PSBcIlJlYWN0XCIgJiZcbiAgICAgIHRoaXMudG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleCh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSArIDIpID09PSBcImNyZWF0ZUNsYXNzXCJcbiAgICApIHtcbiAgICAgIGNvbnN0IG5ld05hbWUgPSB0aGlzLmltcG9ydFByb2Nlc3NvclxuICAgICAgICA/IHRoaXMuaW1wb3J0UHJvY2Vzc29yLmdldElkZW50aWZpZXJSZXBsYWNlbWVudChcIlJlYWN0XCIpIHx8IFwiUmVhY3RcIlxuICAgICAgICA6IFwiUmVhY3RcIjtcbiAgICAgIGlmIChuZXdOYW1lKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlcGxhY2VUb2tlbihuZXdOYW1lKTtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudHJ5UHJvY2Vzc0NyZWF0ZUNsYXNzQ2FsbChzdGFydEluZGV4KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgdG9rZW4gcG9zaXRpb24gYXQgdGhlIG9wZW4tcGFyZW4uXG4gICAqL1xuICAgdHJ5UHJvY2Vzc0NyZWF0ZUNsYXNzQ2FsbChzdGFydEluZGV4KSB7XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSB0aGlzLmZpbmREaXNwbGF5TmFtZShzdGFydEluZGV4KTtcbiAgICBpZiAoIWRpc3BsYXlOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xhc3NOZWVkc0Rpc3BsYXlOYW1lKCkpIHtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlFeHBlY3RlZFRva2VuKHR0LnBhcmVuTCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5icmFjZUwpO1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgZGlzcGxheU5hbWU6ICcke2Rpc3BsYXlOYW1lfScsYCk7XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5icmFjZVIpO1xuICAgICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQucGFyZW5SKTtcbiAgICB9XG4gIH1cblxuICAgZmluZERpc3BsYXlOYW1lKHN0YXJ0SW5kZXgpIHtcbiAgICBpZiAoc3RhcnRJbmRleCA8IDIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczJBdEluZGV4KHN0YXJ0SW5kZXggLSAyLCB0dC5uYW1lLCB0dC5lcSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYW4gYXNzaWdubWVudCAob3IgZGVjbGFyYXRpb24pIGFuZCB0aGUgTEhTIGlzIGVpdGhlciBhbiBpZGVudGlmaWVyIG9yIGEgbWVtYmVyXG4gICAgICAvLyBleHByZXNzaW9uIGVuZGluZyBpbiBhbiBpZGVudGlmaWVyLCBzbyB1c2UgdGhhdCBpZGVudGlmaWVyIG5hbWUuXG4gICAgICByZXR1cm4gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHN0YXJ0SW5kZXggLSAyKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhcnRJbmRleCA+PSAyICYmXG4gICAgICB0aGlzLnRva2Vucy50b2tlbnNbc3RhcnRJbmRleCAtIDJdLmlkZW50aWZpZXJSb2xlID09PSBJZGVudGlmaWVyUm9sZS5PYmplY3RLZXlcbiAgICApIHtcbiAgICAgIC8vIFRoaXMgaXMgYW4gb2JqZWN0IGxpdGVyYWwgdmFsdWUuXG4gICAgICByZXR1cm4gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHN0YXJ0SW5kZXggLSAyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChzdGFydEluZGV4IC0gMiwgdHQuX2V4cG9ydCwgdHQuX2RlZmF1bHQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5TmFtZUZyb21GaWxlbmFtZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gICBnZXREaXNwbGF5TmFtZUZyb21GaWxlbmFtZSgpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMub3B0aW9ucy5maWxlUGF0aCB8fCBcInVua25vd25cIjtcbiAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBmaWxlUGF0aC5zcGxpdChcIi9cIik7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGRvdEluZGV4ID0gZmlsZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IGRvdEluZGV4ID09PSAtMSA/IGZpbGVuYW1lIDogZmlsZW5hbWUuc2xpY2UoMCwgZG90SW5kZXgpO1xuICAgIGlmIChiYXNlRmlsZW5hbWUgPT09IFwiaW5kZXhcIiAmJiBwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDJdKSB7XG4gICAgICByZXR1cm4gcGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGJhc2VGaWxlbmFtZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2Ugb25seSB3YW50IHRvIGFkZCBhIGRpc3BsYXkgbmFtZSB3aGVuIHRoaXMgaXMgYSBmdW5jdGlvbiBjYWxsIGNvbnRhaW5pbmdcbiAgICogb25lIGFyZ3VtZW50LCB3aGljaCBpcyBhbiBvYmplY3QgbGl0ZXJhbCB3aXRob3V0IGBkaXNwbGF5TmFtZWAgYXMgYW5cbiAgICogZXhpc3Rpbmcga2V5LlxuICAgKi9cbiAgIGNsYXNzTmVlZHNEaXNwbGF5TmFtZSgpIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKTtcbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMyKHR0LnBhcmVuTCwgdHQuYnJhY2VMKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBUaGUgYmxvY2sgc3RhcnRzIG9uIHRoZSB7LCBhbmQgd2UgZXhwZWN0IGFueSBkaXNwbGF5TmFtZSBrZXkgdG8gYmUgaW5cbiAgICAvLyB0aGF0IGNvbnRleHQuIFdlIG5lZWQgdG8gaWdub3JlIG90aGVyIG90aGVyIGNvbnRleHRzIHRvIGF2b2lkIG1hdGNoaW5nXG4gICAgLy8gbmVzdGVkIGRpc3BsYXlOYW1lIGtleXMuXG4gICAgY29uc3Qgb2JqZWN0U3RhcnRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBjb25zdCBvYmplY3RDb250ZXh0SWQgPSB0aGlzLnRva2Vucy50b2tlbnNbb2JqZWN0U3RhcnRJbmRleF0uY29udGV4dElkO1xuICAgIGlmIChvYmplY3RDb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbm9uLW51bGwgY29udGV4dCBJRCBvbiBvYmplY3Qgb3Blbi1icmFjZS5cIik7XG4gICAgfVxuXG4gICAgZm9yICg7IGluZGV4IDwgdGhpcy50b2tlbnMudG9rZW5zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2Vucy50b2tlbnNbaW5kZXhdO1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IHR0LmJyYWNlUiAmJiB0b2tlbi5jb250ZXh0SWQgPT09IG9iamVjdENvbnRleHRJZCkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUF0SW5kZXgoaW5kZXgpID09PSBcImRpc3BsYXlOYW1lXCIgJiZcbiAgICAgICAgdGhpcy50b2tlbnMudG9rZW5zW2luZGV4XS5pZGVudGlmaWVyUm9sZSA9PT0gSWRlbnRpZmllclJvbGUuT2JqZWN0S2V5ICYmXG4gICAgICAgIHRva2VuLmNvbnRleHRJZCA9PT0gb2JqZWN0Q29udGV4dElkXG4gICAgICApIHtcbiAgICAgICAgLy8gV2UgZm91bmQgYSBkaXNwbGF5TmFtZSBrZXksIHNvIGJhaWwgb3V0LlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ID09PSB0aGlzLnRva2Vucy50b2tlbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCB3aGVuIHByb2Nlc3NpbmcgUmVhY3QgY2xhc3MuXCIpO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGdvdCB0aGlzIGZhciwgd2Uga25vdyB3ZSBoYXZlIGNyZWF0ZUNsYXNzIHdpdGggYW4gb2JqZWN0IHdpdGggbm9cbiAgICAvLyBkaXNwbGF5IG5hbWUsIHNvIHdlIHdhbnQgdG8gcHJvY2VlZCBhcyBsb25nIGFzIHRoYXQgd2FzIHRoZSBvbmx5IGFyZ3VtZW50LlxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LnBhcmVuUikgfHxcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgdHQuY29tbWEsIHR0LnBhcmVuUilcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtJZGVudGlmaWVyUm9sZSwgaXNUb3BMZXZlbERlY2xhcmF0aW9ufSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplclwiO1xuXG5pbXBvcnQgVHJhbnNmb3JtZXIgZnJvbSBcIi4vVHJhbnNmb3JtZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lciBleHRlbmRzIFRyYW5zZm9ybWVyIHtcbiAgIF9faW5pdCgpIHt0aGlzLmV4dHJhY3RlZERlZmF1bHRFeHBvcnROYW1lID0gbnVsbH1cblxuICBjb25zdHJ1Y3RvciggdG9rZW5zLCAgZmlsZVBhdGgpIHtcbiAgICBzdXBlcigpO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuZmlsZVBhdGggPSBmaWxlUGF0aDtSZWFjdEhvdExvYWRlclRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKTs7XG4gIH1cblxuICBzZXRFeHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZShleHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZSkge1xuICAgIHRoaXMuZXh0cmFjdGVkRGVmYXVsdEV4cG9ydE5hbWUgPSBleHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZTtcbiAgfVxuXG4gIGdldFByZWZpeENvZGUoKSB7XG4gICAgcmV0dXJuIGBcbiAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlbnRlck1vZHVsZSA9IHJlcXVpcmUoJ3JlYWN0LWhvdC1sb2FkZXInKS5lbnRlck1vZHVsZTtcbiAgICAgICAgZW50ZXJNb2R1bGUgJiYgZW50ZXJNb2R1bGUobW9kdWxlKTtcbiAgICAgIH0pKCk7YFxuICAgICAgLnJlcGxhY2UoL1xccysvZywgXCIgXCIpXG4gICAgICAudHJpbSgpO1xuICB9XG5cbiAgZ2V0U3VmZml4Q29kZSgpIHtcbiAgICBjb25zdCB0b3BMZXZlbE5hbWVzID0gbmV3IFNldCgpO1xuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMudG9rZW5zKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0b2tlbi5pc1R5cGUgJiZcbiAgICAgICAgaXNUb3BMZXZlbERlY2xhcmF0aW9uKHRva2VuKSAmJlxuICAgICAgICB0b2tlbi5pZGVudGlmaWVyUm9sZSAhPT0gSWRlbnRpZmllclJvbGUuSW1wb3J0RGVjbGFyYXRpb25cbiAgICAgICkge1xuICAgICAgICB0b3BMZXZlbE5hbWVzLmFkZCh0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZUZvclRva2VuKHRva2VuKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5hbWVzVG9SZWdpc3RlciA9IEFycmF5LmZyb20odG9wTGV2ZWxOYW1lcykubWFwKChuYW1lKSA9PiAoe1xuICAgICAgdmFyaWFibGVOYW1lOiBuYW1lLFxuICAgICAgdW5pcXVlTG9jYWxOYW1lOiBuYW1lLFxuICAgIH0pKTtcbiAgICBpZiAodGhpcy5leHRyYWN0ZWREZWZhdWx0RXhwb3J0TmFtZSkge1xuICAgICAgbmFtZXNUb1JlZ2lzdGVyLnB1c2goe1xuICAgICAgICB2YXJpYWJsZU5hbWU6IHRoaXMuZXh0cmFjdGVkRGVmYXVsdEV4cG9ydE5hbWUsXG4gICAgICAgIHVuaXF1ZUxvY2FsTmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGBcbjsoZnVuY3Rpb24gKCkge1xuICB2YXIgcmVhY3RIb3RMb2FkZXIgPSByZXF1aXJlKCdyZWFjdC1ob3QtbG9hZGVyJykuZGVmYXVsdDtcbiAgdmFyIGxlYXZlTW9kdWxlID0gcmVxdWlyZSgncmVhY3QtaG90LWxvYWRlcicpLmxlYXZlTW9kdWxlO1xuICBpZiAoIXJlYWN0SG90TG9hZGVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4ke25hbWVzVG9SZWdpc3RlclxuICAubWFwKFxuICAgICh7dmFyaWFibGVOYW1lLCB1bmlxdWVMb2NhbE5hbWV9KSA9PlxuICAgICAgYCAgcmVhY3RIb3RMb2FkZXIucmVnaXN0ZXIoJHt2YXJpYWJsZU5hbWV9LCBcIiR7dW5pcXVlTG9jYWxOYW1lfVwiLCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICB0aGlzLmZpbGVQYXRoIHx8IFwiXCIsXG4gICAgICApfSk7YCxcbiAgKVxuICAuam9pbihcIlxcblwiKX1cbiAgbGVhdmVNb2R1bGUobW9kdWxlKTtcbn0pKCk7YDtcbiAgfVxuXG4gIHByb2Nlc3MoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCAiaW1wb3J0IHtJU19JREVOVElGSUVSX0NIQVIsIElTX0lERU5USUZJRVJfU1RBUlR9IGZyb20gXCIuLi9wYXJzZXIvdXRpbC9pZGVudGlmaWVyXCI7XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0xleGljYWxfZ3JhbW1hclxuLy8gSGFyZC1jb2RlIGEgbGlzdCBvZiByZXNlcnZlZCB3b3JkcyByYXRoZXIgdGhhbiB0cnlpbmcgdG8gdXNlIGtleXdvcmRzIG9yIGNvbnRleHR1YWwga2V5d29yZHNcbi8vIGZyb20gdGhlIHBhcnNlciwgc2luY2UgY3VycmVudGx5IHRoZXJlIGFyZSB2YXJpb3VzIGV4Y2VwdGlvbnMsIGxpa2UgYHBhY2thZ2VgIGJlaW5nIHJlc2VydmVkXG4vLyBidXQgdW51c2VkIGFuZCB2YXJpb3VzIGNvbnRleHR1YWwga2V5d29yZHMgYmVpbmcgcmVzZXJ2ZWQuIE5vdGUgdGhhdCB3ZSBhc3N1bWUgdGhhdCBhbGwgY29kZVxuLy8gY29tcGlsZWQgYnkgU3VjcmFzZSBpcyBpbiBhIG1vZHVsZSwgc28gc3RyaWN0IG1vZGUgd29yZHMgYW5kIGF3YWl0IGFyZSBhbGwgY29uc2lkZXJlZCByZXNlcnZlZFxuLy8gaGVyZS5cbmNvbnN0IFJFU0VSVkVEX1dPUkRTID0gbmV3IFNldChbXG4gIC8vIFJlc2VydmVkIGtleXdvcmRzIGFzIG9mIEVDTUFTY3JpcHQgMjAxNVxuICBcImJyZWFrXCIsXG4gIFwiY2FzZVwiLFxuICBcImNhdGNoXCIsXG4gIFwiY2xhc3NcIixcbiAgXCJjb25zdFwiLFxuICBcImNvbnRpbnVlXCIsXG4gIFwiZGVidWdnZXJcIixcbiAgXCJkZWZhdWx0XCIsXG4gIFwiZGVsZXRlXCIsXG4gIFwiZG9cIixcbiAgXCJlbHNlXCIsXG4gIFwiZXhwb3J0XCIsXG4gIFwiZXh0ZW5kc1wiLFxuICBcImZpbmFsbHlcIixcbiAgXCJmb3JcIixcbiAgXCJmdW5jdGlvblwiLFxuICBcImlmXCIsXG4gIFwiaW1wb3J0XCIsXG4gIFwiaW5cIixcbiAgXCJpbnN0YW5jZW9mXCIsXG4gIFwibmV3XCIsXG4gIFwicmV0dXJuXCIsXG4gIFwic3VwZXJcIixcbiAgXCJzd2l0Y2hcIixcbiAgXCJ0aGlzXCIsXG4gIFwidGhyb3dcIixcbiAgXCJ0cnlcIixcbiAgXCJ0eXBlb2ZcIixcbiAgXCJ2YXJcIixcbiAgXCJ2b2lkXCIsXG4gIFwid2hpbGVcIixcbiAgXCJ3aXRoXCIsXG4gIFwieWllbGRcIixcbiAgLy8gRnV0dXJlIHJlc2VydmVkIGtleXdvcmRzXG4gIFwiZW51bVwiLFxuICBcImltcGxlbWVudHNcIixcbiAgXCJpbnRlcmZhY2VcIixcbiAgXCJsZXRcIixcbiAgXCJwYWNrYWdlXCIsXG4gIFwicHJpdmF0ZVwiLFxuICBcInByb3RlY3RlZFwiLFxuICBcInB1YmxpY1wiLFxuICBcInN0YXRpY1wiLFxuICBcImF3YWl0XCIsXG4gIC8vIExpdGVyYWxzIHRoYXQgY2Fubm90IGJlIHVzZWQgYXMgaWRlbnRpZmllcnNcbiAgXCJmYWxzZVwiLFxuICBcIm51bGxcIixcbiAgXCJ0cnVlXCIsXG5dKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIG5hbWUgaXMgYSBsZWdhbCB2YXJpYWJsZSBuYW1lLlxuICpcbiAqIFRoaXMgaXMgbmVlZGVkIHdoZW4gdHJhbnNmb3JtaW5nIFR5cGVTY3JpcHQgZW51bXM7IGlmIGFuIGVudW0ga2V5IGlzIGEgdmFsaWRcbiAqIHZhcmlhYmxlIG5hbWUsIGl0IG1pZ2h0IGJlIHJlZmVyZW5jZWQgbGF0ZXIgaW4gdGhlIGVudW0sIHNvIHdlIG5lZWQgdG9cbiAqIGRlY2xhcmUgYSB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNJZGVudGlmaWVyKG5hbWUpIHtcbiAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghSVNfSURFTlRJRklFUl9TVEFSVFtuYW1lLmNoYXJDb2RlQXQoMCldKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghSVNfSURFTlRJRklFUl9DSEFSW25hbWUuY2hhckNvZGVBdChpKV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICFSRVNFUlZFRF9XT1JEUy5oYXMobmFtZSk7XG59XG4iLCAiXG5pbXBvcnQge1Rva2VuVHlwZSBhcyB0dH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuaW1wb3J0IGlzSWRlbnRpZmllciBmcm9tIFwiLi4vdXRpbC9pc0lkZW50aWZpZXJcIjtcblxuaW1wb3J0IFRyYW5zZm9ybWVyIGZyb20gXCIuL1RyYW5zZm9ybWVyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFR5cGVTY3JpcHRUcmFuc2Zvcm1lciBleHRlbmRzIFRyYW5zZm9ybWVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgIHJvb3RUcmFuc2Zvcm1lcixcbiAgICAgdG9rZW5zLFxuICAgICBpc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkLFxuICApIHtcbiAgICBzdXBlcigpO3RoaXMucm9vdFRyYW5zZm9ybWVyID0gcm9vdFRyYW5zZm9ybWVyO3RoaXMudG9rZW5zID0gdG9rZW5zO3RoaXMuaXNJbXBvcnRzVHJhbnNmb3JtRW5hYmxlZCA9IGlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQ7O1xuICB9XG5cbiAgcHJvY2VzcygpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzUG9zc2libGVBcnJvd1BhcmFtRW5kKCkgfHxcbiAgICAgIHRoaXMucm9vdFRyYW5zZm9ybWVyLnByb2Nlc3NQb3NzaWJsZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtcygpIHx8XG4gICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzUG9zc2libGVUeXBlUmFuZ2UoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9wdWJsaWMpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fcHJvdGVjdGVkKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuX3ByaXZhdGUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fYWJzdHJhY3QpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fcmVhZG9ubHkpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fb3ZlcnJpZGUpIHx8XG4gICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5ub25OdWxsQXNzZXJ0aW9uKVxuICAgICkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9lbnVtKSB8fCB0aGlzLnRva2Vucy5tYXRjaGVzMih0dC5fY29uc3QsIHR0Ll9lbnVtKSkge1xuICAgICAgdGhpcy5wcm9jZXNzRW51bSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9leHBvcnQsIHR0Ll9lbnVtKSB8fFxuICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczModHQuX2V4cG9ydCwgdHQuX2NvbnN0LCB0dC5fZW51bSlcbiAgICApIHtcbiAgICAgIHRoaXMucHJvY2Vzc0VudW0odHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvY2Vzc0VudW0oaXNFeHBvcnQgPSBmYWxzZSkge1xuICAgIC8vIFdlIG1pZ2h0IGhhdmUgXCJleHBvcnQgY29uc3QgZW51bVwiLCBzbyBqdXN0IHJlbW92ZSBhbGwgcmVsZXZhbnQgdG9rZW5zLlxuICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgIHdoaWxlICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fY29uc3QpIHx8IHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9lbnVtKSkge1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc3QgZW51bU5hbWUgPSB0aGlzLnRva2Vucy5pZGVudGlmaWVyTmFtZSgpO1xuICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgaWYgKGlzRXhwb3J0ICYmICF0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQpIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCJleHBvcnQgXCIpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGB2YXIgJHtlbnVtTmFtZX07IChmdW5jdGlvbiAoJHtlbnVtTmFtZX0pYCk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VMKTtcbiAgICB0aGlzLnByb2Nlc3NFbnVtQm9keShlbnVtTmFtZSk7XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VSKTtcbiAgICBpZiAoaXNFeHBvcnQgJiYgdGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGApKCR7ZW51bU5hbWV9IHx8IChleHBvcnRzLiR7ZW51bU5hbWV9ID0gJHtlbnVtTmFtZX0gPSB7fSkpO2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGApKCR7ZW51bU5hbWV9IHx8ICgke2VudW1OYW1lfSA9IHt9KSk7YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhbiBlbnVtIGludG8gZXF1aXZhbGVudCBKUy4gVGhpcyBoYXMgY29tcGxleGl0eSBpbiBhIGZldyBwbGFjZXM6XG4gICAqIC0gVFMgYWxsb3dzIHN0cmluZyBlbnVtcywgbnVtZXJpYyBlbnVtcywgYW5kIGEgbWl4IG9mIHRoZSB0d28gc3R5bGVzIHdpdGhpbiBhbiBlbnVtLlxuICAgKiAtIEVudW0ga2V5cyBhcmUgYWxsb3dlZCB0byBiZSByZWZlcmVuY2VkIGluIGxhdGVyIGVudW0gdmFsdWVzLlxuICAgKiAtIEVudW0ga2V5cyBhcmUgYWxsb3dlZCB0byBiZSBzdHJpbmdzLlxuICAgKiAtIFdoZW4gZW51bSB2YWx1ZXMgYXJlIG9taXR0ZWQsIHRoZXkgc2hvdWxkIGZvbGxvdyBhbiBhdXRvLWluY3JlbWVudCBiZWhhdmlvci5cbiAgICovXG4gIHByb2Nlc3NFbnVtQm9keShlbnVtTmFtZSkge1xuICAgIC8vIENvZGUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlIHByZXZpb3VzIGVudW0gbWVtYmVyLCBvciBudWxsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG4gICAgLy8gZW51bSBtZW1iZXIuXG4gICAgbGV0IHByZXZpb3VzVmFsdWVDb2RlID0gbnVsbDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlUikpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCB7bmFtZVN0cmluZ0NvZGUsIHZhcmlhYmxlTmFtZX0gPSB0aGlzLmV4dHJhY3RFbnVtS2V5SW5mbyh0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKSk7XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRva2Vucy5tYXRjaGVzMyh0dC5lcSwgdHQuc3RyaW5nLCB0dC5jb21tYSkgfHxcbiAgICAgICAgdGhpcy50b2tlbnMubWF0Y2hlczModHQuZXEsIHR0LnN0cmluZywgdHQuYnJhY2VSKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc1N0cmluZ0xpdGVyYWxFbnVtTWVtYmVyKGVudW1OYW1lLCBuYW1lU3RyaW5nQ29kZSwgdmFyaWFibGVOYW1lKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMubWF0Y2hlczEodHQuZXEpKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0V4cGxpY2l0VmFsdWVFbnVtTWVtYmVyKGVudW1OYW1lLCBuYW1lU3RyaW5nQ29kZSwgdmFyaWFibGVOYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0ltcGxpY2l0VmFsdWVFbnVtTWVtYmVyKFxuICAgICAgICAgIGVudW1OYW1lLFxuICAgICAgICAgIG5hbWVTdHJpbmdDb2RlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSxcbiAgICAgICAgICBwcmV2aW91c1ZhbHVlQ29kZSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5jb21tYSkpIHtcbiAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhcmlhYmxlTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHByZXZpb3VzVmFsdWVDb2RlID0gdmFyaWFibGVOYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldmlvdXNWYWx1ZUNvZGUgPSBgJHtlbnVtTmFtZX1bJHtuYW1lU3RyaW5nQ29kZX1dYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IG5hbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBlbnVtIGtleSwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB3aGljaCBjb2RlIHRvIGVtaXRcbiAgICogYW5kIHdoZXRoZXIgd2Ugc2hvdWxkIGRlY2xhcmUgYSB2YXJpYWJsZSBhcyBwYXJ0IG9mIHRoaXMgZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIFNvbWUgY2FzZXMgdG8ga2VlcCBpbiBtaW5kOlxuICAgKiAtIEVudW0ga2V5cyBjYW4gYmUgaW1wbGljaXRseSByZWZlcmVuY2VkIGxhdGVyLCBlLmcuIGBYID0gMSwgWSA9IFhgLiBJbiBTdWNyYXNlLCB3ZSBpbXBsZW1lbnRcbiAgICogICB0aGlzIGJ5IGRlY2xhcmluZyBhIHZhcmlhYmxlIGBYYCBzbyB0aGF0IGxhdGVyIGV4cHJlc3Npb25zIGNhbiB1c2UgaXQuXG4gICAqIC0gSW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGlkZW50aWZpZXIga2V5IHN5bnRheCwgZW51bSBrZXlzIGFyZSBhbGxvd2VkIHRvIGJlIHN0cmluZyBsaXRlcmFscyxcbiAgICogICBlLmcuIGBcImhlbGxvIHdvcmxkXCIgPSAzLGAuIFRlbXBsYXRlIGxpdGVyYWwgc3ludGF4IGlzIE5PVCBhbGxvd2VkLlxuICAgKiAtIEV2ZW4gaWYgdGhlIGVudW0ga2V5IGlzIGRlZmluZWQgYXMgYSBzdHJpbmcgbGl0ZXJhbCwgaXQgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWQgYnkgaWRlbnRpZmllclxuICAgKiAgIGxhdGVyLCBlLmcuIGBcIlhcIiA9IDEsIFkgPSBYYC4gVGhhdCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZGV0ZWN0IHdoZXRoZXIgb3Igbm90IGEgc3RyaW5nXG4gICAqICAgbGl0ZXJhbCBpcyBpZGVudGlmaWVyLWxpa2UgYW5kIGVtaXQgYSB2YXJpYWJsZSBpZiBzbywgZXZlbiBpZiB0aGUgZGVjbGFyYXRpb24gZGlkIG5vdCB1c2UgYW5cbiAgICogICBpZGVudGlmaWVyLlxuICAgKiAtIFJlc2VydmVkIGtleXdvcmRzIGxpa2UgYGJyZWFrYCBhcmUgdmFsaWQgZW51bSBrZXlzLCBidXQgYXJlIG5vdCB2YWxpZCB0byBiZSByZWZlcmVuY2VkIGxhdGVyXG4gICAqICAgYW5kIHdvdWxkIGJlIGEgc3ludGF4IGVycm9yIGlmIHdlIGVtaXR0ZWQgYSB2YXJpYWJsZSwgc28gd2UgbmVlZCB0byBza2lwIHRoZSB2YXJpYWJsZVxuICAgKiAgIGRlY2xhcmF0aW9uIGluIHRob3NlIGNhc2VzLlxuICAgKlxuICAgKiBUaGUgdmFyaWFibGVOYW1lIHJldHVybiB2YWx1ZSBjYXB0dXJlcyB0aGVzZSBudWFuY2VzOiBpZiBub24tbnVsbCwgd2UgY2FuIGFuZCBtdXN0IGVtaXQgYVxuICAgKiB2YXJpYWJsZSBkZWNsYXJhdGlvbiwgYW5kIGlmIG51bGwsIHdlIGNhbid0IGFuZCBzaG91bGRuJ3QuXG4gICAqL1xuICBleHRyYWN0RW51bUtleUluZm8obmFtZVRva2VuKSB7XG4gICAgaWYgKG5hbWVUb2tlbi50eXBlID09PSB0dC5uYW1lKSB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVGb3JUb2tlbihuYW1lVG9rZW4pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZVN0cmluZ0NvZGU6IGBcIiR7bmFtZX1cImAsXG4gICAgICAgIHZhcmlhYmxlTmFtZTogaXNJZGVudGlmaWVyKG5hbWUpID8gbmFtZSA6IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAobmFtZVRva2VuLnR5cGUgPT09IHR0LnN0cmluZykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMudG9rZW5zLnN0cmluZ1ZhbHVlRm9yVG9rZW4obmFtZVRva2VuKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWVTdHJpbmdDb2RlOiB0aGlzLnRva2Vucy5jb2RlLnNsaWNlKG5hbWVUb2tlbi5zdGFydCwgbmFtZVRva2VuLmVuZCksXG4gICAgICAgIHZhcmlhYmxlTmFtZTogaXNJZGVudGlmaWVyKG5hbWUpID8gbmFtZSA6IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBuYW1lIG9yIHN0cmluZyBhdCBiZWdpbm5pbmcgb2YgZW51bSBlbGVtZW50LlwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGFuIGVudW0gbWVtYmVyIHdoZXJlIHRoZSBSSFMgaXMganVzdCBhIHN0cmluZyBsaXRlcmFsIChub3Qgb21pdHRlZCwgbm90IGEgbnVtYmVyLCBhbmRcbiAgICogbm90IGEgY29tcGxleCBleHByZXNzaW9uKS4gVGhpcyBpcyB0aGUgdHlwaWNhbCBmb3JtIGZvciBUUyBzdHJpbmcgZW51bXMsIGFuZCBpbiB0aGlzIGNhc2UsIHdlXG4gICAqIGRvICpub3QqIGNyZWF0ZSBhIHJldmVyc2UgbWFwcGluZy5cbiAgICpcbiAgICogVGhpcyBpcyBjYWxsZWQgYWZ0ZXIgZGVsZXRpbmcgdGhlIGtleSB0b2tlbiwgd2hlbiB0aGUgdG9rZW4gcHJvY2Vzc29yIGlzIGF0IHRoZSBlcXVhbHMgc2lnbi5cbiAgICpcbiAgICogRXhhbXBsZSAxOlxuICAgKiBzb21lS2V5ID0gXCJzb21lIHZhbHVlXCJcbiAgICogLT5cbiAgICogY29uc3Qgc29tZUtleSA9IFwic29tZSB2YWx1ZVwiOyBNeUVudW1bXCJzb21lS2V5XCJdID0gc29tZUtleTtcbiAgICpcbiAgICogRXhhbXBsZSAyOlxuICAgKiBcInNvbWUga2V5XCIgPSBcInNvbWUgdmFsdWVcIlxuICAgKiAtPlxuICAgKiBNeUVudW1bXCJzb21lIGtleVwiXSA9IFwic29tZSB2YWx1ZVwiO1xuICAgKi9cbiAgcHJvY2Vzc1N0cmluZ0xpdGVyYWxFbnVtTWVtYmVyKFxuICAgIGVudW1OYW1lLFxuICAgIG5hbWVTdHJpbmdDb2RlLFxuICAgIHZhcmlhYmxlTmFtZSxcbiAgKSB7XG4gICAgaWYgKHZhcmlhYmxlTmFtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGBjb25zdCAke3ZhcmlhYmxlTmFtZX1gKTtcbiAgICAgIC8vID1cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgLy8gdmFsdWUgc3RyaW5nXG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYDsgJHtlbnVtTmFtZX1bJHtuYW1lU3RyaW5nQ29kZX1dID0gJHt2YXJpYWJsZU5hbWV9O2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAke2VudW1OYW1lfVske25hbWVTdHJpbmdDb2RlfV1gKTtcbiAgICAgIC8vID1cbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgLy8gdmFsdWUgc3RyaW5nXG4gICAgICB0aGlzLnRva2Vucy5jb3B5VG9rZW4oKTtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoXCI7XCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYW4gZW51bSBtZW1iZXIgaW5pdGlhbGl6ZWQgd2l0aCBhbiBleHByZXNzaW9uIG9uIHRoZSByaWdodC1oYW5kIHNpZGUgKG90aGVyIHRoYW4gYVxuICAgKiBzdHJpbmcgbGl0ZXJhbCkuIEluIHRoZXNlIGNhc2VzLCB3ZSBzaG91bGQgdHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGFuZCBlbWl0IGNvZGUgdGhhdCBzZXRzIHVwXG4gICAqIGEgcmV2ZXJzZSBtYXBwaW5nLlxuICAgKlxuICAgKiBUaGUgVHlwZVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG9wZXJhdGlvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gZXhwcmVzc2lvbnMgdGhhdCBjYW4gYmVcbiAgICogXCJjb25zdGFudCBmb2xkZWRcIiBhdCBjb21waWxlIHRpbWUgKGkuZS4gY29uc2lzdCBvZiBudW1iZXIgbGl0ZXJhbHMgYW5kIHNpbXBsZSBtYXRoIG9wZXJhdGlvbnNcbiAgICogb24gdGhvc2UgbnVtYmVycykgYW5kIG9uZXMgdGhhdCBhcmUgZHluYW1pYy4gRm9yIGNvbnN0YW50IGV4cHJlc3Npb25zLCBpdCBlbWl0cyB0aGUgcmVzb2x2ZWRcbiAgICogbnVtZXJpYyB2YWx1ZSwgYW5kIGF1dG8taW5jcmVtZW50aW5nIGlzIG9ubHkgYWxsb3dlZCBpbiB0aGF0IGNhc2UuIEV2YWx1YXRpbmcgZXhwcmVzc2lvbnMgYXRcbiAgICogY29tcGlsZSB0aW1lIHdvdWxkIGFkZCBzaWduaWZpY2FudCBjb21wbGV4aXR5IHRvIFN1Y3Jhc2UsIHNvIFN1Y3Jhc2UgaW5zdGVhZCBsZWF2ZXMgdGhlXG4gICAqIGV4cHJlc3Npb24gYXMtaXMsIGFuZCB3aWxsIGxhdGVyIGVtaXQgc29tZXRoaW5nIGxpa2UgYE15RW51bVtcInByZXZpb3VzS2V5XCJdICsgMWAgdG8gaW1wbGVtZW50XG4gICAqIGF1dG8taW5jcmVtZW50aW5nLlxuICAgKlxuICAgKiBUaGlzIGlzIGNhbGxlZCBhZnRlciBkZWxldGluZyB0aGUga2V5IHRva2VuLCB3aGVuIHRoZSB0b2tlbiBwcm9jZXNzb3IgaXMgYXQgdGhlIGVxdWFscyBzaWduLlxuICAgKlxuICAgKiBFeGFtcGxlIDE6XG4gICAqIHNvbWVLZXkgPSAxICsgMVxuICAgKiAtPlxuICAgKiBjb25zdCBzb21lS2V5ID0gMSArIDE7IE15RW51bVtNeUVudW1bXCJzb21lS2V5XCJdID0gc29tZUtleV0gPSBcInNvbWVLZXlcIjtcbiAgICpcbiAgICogRXhhbXBsZSAyOlxuICAgKiBcInNvbWUga2V5XCIgPSAxICsgMVxuICAgKiAtPlxuICAgKiBNeUVudW1bTXlFbnVtW1wic29tZSBrZXlcIl0gPSAxICsgMV0gPSBcInNvbWUga2V5XCI7XG4gICAqL1xuICBwcm9jZXNzRXhwbGljaXRWYWx1ZUVudW1NZW1iZXIoXG4gICAgZW51bU5hbWUsXG4gICAgbmFtZVN0cmluZ0NvZGUsXG4gICAgdmFyaWFibGVOYW1lLFxuICApIHtcbiAgICBjb25zdCByaHNFbmRJbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLnJoc0VuZEluZGV4O1xuICAgIGlmIChyaHNFbmRJbmRleCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCByaHNFbmRJbmRleCBvbiBlbnVtIGFzc2lnbi5cIik7XG4gICAgfVxuXG4gICAgaWYgKHZhcmlhYmxlTmFtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGBjb25zdCAke3ZhcmlhYmxlTmFtZX1gKTtcbiAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgcmhzRW5kSW5kZXgpIHtcbiAgICAgICAgdGhpcy5yb290VHJhbnNmb3JtZXIucHJvY2Vzc1Rva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICBgOyAke2VudW1OYW1lfVske2VudW1OYW1lfVske25hbWVTdHJpbmdDb2RlfV0gPSAke3ZhcmlhYmxlTmFtZX1dID0gJHtuYW1lU3RyaW5nQ29kZX07YCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYCR7ZW51bU5hbWV9WyR7ZW51bU5hbWV9WyR7bmFtZVN0cmluZ0NvZGV9XWApO1xuICAgICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCByaHNFbmRJbmRleCkge1xuICAgICAgICB0aGlzLnJvb3RUcmFuc2Zvcm1lci5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9rZW5zLmFwcGVuZENvZGUoYF0gPSAke25hbWVTdHJpbmdDb2RlfTtgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGFuIGVudW0gbWVtYmVyIHdpdGggbm8gcmlnaHQtaGFuZCBzaWRlIGV4cHJlc3Npb24uIEluIHRoaXMgY2FzZSwgdGhlIHZhbHVlIGlzIHRoZVxuICAgKiBwcmV2aW91cyB2YWx1ZSBwbHVzIDEsIG9yIDAgaWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzIHZhbHVlLiBXZSBzaG91bGQgYWxzbyBhbHdheXMgZW1pdCBhXG4gICAqIHJldmVyc2UgbWFwcGluZy5cbiAgICpcbiAgICogRXhhbXBsZSAxOlxuICAgKiBzb21lS2V5MlxuICAgKiAtPlxuICAgKiBjb25zdCBzb21lS2V5MiA9IHNvbWVLZXkxICsgMTsgTXlFbnVtW015RW51bVtcInNvbWVLZXkyXCJdID0gc29tZUtleTJdID0gXCJzb21lS2V5MlwiO1xuICAgKlxuICAgKiBFeGFtcGxlIDI6XG4gICAqIFwic29tZSBrZXkgMlwiXG4gICAqIC0+XG4gICAqIE15RW51bVtNeUVudW1bXCJzb21lIGtleSAyXCJdID0gc29tZUtleTEgKyAxXSA9IFwic29tZSBrZXkgMlwiO1xuICAgKi9cbiAgcHJvY2Vzc0ltcGxpY2l0VmFsdWVFbnVtTWVtYmVyKFxuICAgIGVudW1OYW1lLFxuICAgIG5hbWVTdHJpbmdDb2RlLFxuICAgIHZhcmlhYmxlTmFtZSxcbiAgICBwcmV2aW91c1ZhbHVlQ29kZSxcbiAgKSB7XG4gICAgbGV0IHZhbHVlQ29kZSA9IHByZXZpb3VzVmFsdWVDb2RlICE9IG51bGwgPyBgJHtwcmV2aW91c1ZhbHVlQ29kZX0gKyAxYCA6IFwiMFwiO1xuICAgIGlmICh2YXJpYWJsZU5hbWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShgY29uc3QgJHt2YXJpYWJsZU5hbWV9ID0gJHt2YWx1ZUNvZGV9OyBgKTtcbiAgICAgIHZhbHVlQ29kZSA9IHZhcmlhYmxlTmFtZTtcbiAgICB9XG4gICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcbiAgICAgIGAke2VudW1OYW1lfVske2VudW1OYW1lfVske25hbWVTdHJpbmdDb2RlfV0gPSAke3ZhbHVlQ29kZX1dID0gJHtuYW1lU3RyaW5nQ29kZX07YCxcbiAgICApO1xuICB9XG59XG4iLCAiXG5cblxuaW1wb3J0IHtDb250ZXh0dWFsS2V5d29yZH0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIva2V5d29yZHNcIjtcbmltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5pbXBvcnQgZ2V0Q2xhc3NJbmZvLCB7fSBmcm9tIFwiLi4vdXRpbC9nZXRDbGFzc0luZm9cIjtcbmltcG9ydCBDSlNJbXBvcnRUcmFuc2Zvcm1lciBmcm9tIFwiLi9DSlNJbXBvcnRUcmFuc2Zvcm1lclwiO1xuaW1wb3J0IEVTTUltcG9ydFRyYW5zZm9ybWVyIGZyb20gXCIuL0VTTUltcG9ydFRyYW5zZm9ybWVyXCI7XG5pbXBvcnQgRmxvd1RyYW5zZm9ybWVyIGZyb20gXCIuL0Zsb3dUcmFuc2Zvcm1lclwiO1xuaW1wb3J0IEplc3RIb2lzdFRyYW5zZm9ybWVyIGZyb20gXCIuL0plc3RIb2lzdFRyYW5zZm9ybWVyXCI7XG5pbXBvcnQgSlNYVHJhbnNmb3JtZXIgZnJvbSBcIi4vSlNYVHJhbnNmb3JtZXJcIjtcbmltcG9ydCBOdW1lcmljU2VwYXJhdG9yVHJhbnNmb3JtZXIgZnJvbSBcIi4vTnVtZXJpY1NlcGFyYXRvclRyYW5zZm9ybWVyXCI7XG5pbXBvcnQgT3B0aW9uYWxDYXRjaEJpbmRpbmdUcmFuc2Zvcm1lciBmcm9tIFwiLi9PcHRpb25hbENhdGNoQmluZGluZ1RyYW5zZm9ybWVyXCI7XG5pbXBvcnQgT3B0aW9uYWxDaGFpbmluZ051bGxpc2hUcmFuc2Zvcm1lciBmcm9tIFwiLi9PcHRpb25hbENoYWluaW5nTnVsbGlzaFRyYW5zZm9ybWVyXCI7XG5pbXBvcnQgUmVhY3REaXNwbGF5TmFtZVRyYW5zZm9ybWVyIGZyb20gXCIuL1JlYWN0RGlzcGxheU5hbWVUcmFuc2Zvcm1lclwiO1xuaW1wb3J0IFJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgZnJvbSBcIi4vUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lclwiO1xuXG5pbXBvcnQgVHlwZVNjcmlwdFRyYW5zZm9ybWVyIGZyb20gXCIuL1R5cGVTY3JpcHRUcmFuc2Zvcm1lclwiO1xuXG5cblxuXG5cblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvb3RUcmFuc2Zvcm1lciB7XG4gICBfX2luaXQoKSB7dGhpcy50cmFuc2Zvcm1lcnMgPSBbXX1cbiAgXG4gIFxuICAgX19pbml0MigpIHt0aGlzLmdlbmVyYXRlZFZhcmlhYmxlcyA9IFtdfVxuICBcbiAgXG4gIFxuICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdWNyYXNlQ29udGV4dCxcbiAgICB0cmFuc2Zvcm1zLFxuICAgIGVuYWJsZUxlZ2FjeUJhYmVsNU1vZHVsZUludGVyb3AsXG4gICAgb3B0aW9ucyxcbiAgKSB7O1Jvb3RUcmFuc2Zvcm1lci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyk7Um9vdFRyYW5zZm9ybWVyLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyk7XG4gICAgdGhpcy5uYW1lTWFuYWdlciA9IHN1Y3Jhc2VDb250ZXh0Lm5hbWVNYW5hZ2VyO1xuICAgIHRoaXMuaGVscGVyTWFuYWdlciA9IHN1Y3Jhc2VDb250ZXh0LmhlbHBlck1hbmFnZXI7XG4gICAgY29uc3Qge3Rva2VuUHJvY2Vzc29yLCBpbXBvcnRQcm9jZXNzb3J9ID0gc3VjcmFzZUNvbnRleHQ7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlblByb2Nlc3NvcjtcbiAgICB0aGlzLmlzSW1wb3J0c1RyYW5zZm9ybUVuYWJsZWQgPSB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiaW1wb3J0c1wiKTtcbiAgICB0aGlzLmlzUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1FbmFibGVkID0gdHJhbnNmb3Jtcy5pbmNsdWRlcyhcInJlYWN0LWhvdC1sb2FkZXJcIik7XG4gICAgdGhpcy5kaXNhYmxlRVNUcmFuc2Zvcm1zID0gQm9vbGVhbihvcHRpb25zLmRpc2FibGVFU1RyYW5zZm9ybXMpO1xuXG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVFU1RyYW5zZm9ybXMpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgIG5ldyBPcHRpb25hbENoYWluaW5nTnVsbGlzaFRyYW5zZm9ybWVyKHRva2VuUHJvY2Vzc29yLCB0aGlzLm5hbWVNYW5hZ2VyKSxcbiAgICAgICk7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKG5ldyBOdW1lcmljU2VwYXJhdG9yVHJhbnNmb3JtZXIodG9rZW5Qcm9jZXNzb3IpKTtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2gobmV3IE9wdGlvbmFsQ2F0Y2hCaW5kaW5nVHJhbnNmb3JtZXIodG9rZW5Qcm9jZXNzb3IsIHRoaXMubmFtZU1hbmFnZXIpKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmb3Jtcy5pbmNsdWRlcyhcImpzeFwiKSkge1xuICAgICAgaWYgKG9wdGlvbnMuanN4UnVudGltZSAhPT0gXCJwcmVzZXJ2ZVwiKSB7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgICAgbmV3IEpTWFRyYW5zZm9ybWVyKHRoaXMsIHRva2VuUHJvY2Vzc29yLCBpbXBvcnRQcm9jZXNzb3IsIHRoaXMubmFtZU1hbmFnZXIsIG9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3IFJlYWN0RGlzcGxheU5hbWVUcmFuc2Zvcm1lcih0aGlzLCB0b2tlblByb2Nlc3NvciwgaW1wb3J0UHJvY2Vzc29yLCBvcHRpb25zKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSBudWxsO1xuICAgIGlmICh0cmFuc2Zvcm1zLmluY2x1ZGVzKFwicmVhY3QtaG90LWxvYWRlclwiKSkge1xuICAgICAgaWYgKCFvcHRpb25zLmZpbGVQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbGVQYXRoIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIHJlYWN0LWhvdC1sb2FkZXIgdHJhbnNmb3JtLlwiKTtcbiAgICAgIH1cbiAgICAgIHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIgPSBuZXcgUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcih0b2tlblByb2Nlc3Nvciwgb3B0aW9ucy5maWxlUGF0aCk7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIC8vIE5vdGUgdGhhdCB3ZSBhbHdheXMgd2FudCB0byBlbmFibGUgdGhlIGltcG9ydHMgdHJhbnNmb3JtZXIsIGV2ZW4gd2hlbiB0aGUgaW1wb3J0IHRyYW5zZm9ybVxuICAgIC8vIGl0c2VsZiBpc24ndCBlbmFibGVkLCBzaW5jZSB3ZSBuZWVkIHRvIGRvIHR5cGUtb25seSBpbXBvcnQgcHJ1bmluZyBmb3IgYm90aCBGbG93IGFuZFxuICAgIC8vIFR5cGVTY3JpcHQuXG4gICAgaWYgKHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJpbXBvcnRzXCIpKSB7XG4gICAgICBpZiAoaW1wb3J0UHJvY2Vzc29yID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5vbi1udWxsIGltcG9ydFByb2Nlc3NvciB3aXRoIGltcG9ydHMgdHJhbnNmb3JtIGVuYWJsZWQuXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3IENKU0ltcG9ydFRyYW5zZm9ybWVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdG9rZW5Qcm9jZXNzb3IsXG4gICAgICAgICAgaW1wb3J0UHJvY2Vzc29yLFxuICAgICAgICAgIHRoaXMubmFtZU1hbmFnZXIsXG4gICAgICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyLFxuICAgICAgICAgIHJlYWN0SG90TG9hZGVyVHJhbnNmb3JtZXIsXG4gICAgICAgICAgZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCxcbiAgICAgICAgICBCb29sZWFuKG9wdGlvbnMuZW5hYmxlTGVnYWN5VHlwZVNjcmlwdE1vZHVsZUludGVyb3ApLFxuICAgICAgICAgIHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpLFxuICAgICAgICAgIHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJmbG93XCIpLFxuICAgICAgICAgIEJvb2xlYW4ob3B0aW9ucy5wcmVzZXJ2ZUR5bmFtaWNJbXBvcnQpLFxuICAgICAgICAgIEJvb2xlYW4ob3B0aW9ucy5rZWVwVW51c2VkSW1wb3J0cyksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKFxuICAgICAgICBuZXcgRVNNSW1wb3J0VHJhbnNmb3JtZXIoXG4gICAgICAgICAgdG9rZW5Qcm9jZXNzb3IsXG4gICAgICAgICAgdGhpcy5uYW1lTWFuYWdlcixcbiAgICAgICAgICB0aGlzLmhlbHBlck1hbmFnZXIsXG4gICAgICAgICAgcmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1lcixcbiAgICAgICAgICB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwidHlwZXNjcmlwdFwiKSxcbiAgICAgICAgICB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiZmxvd1wiKSxcbiAgICAgICAgICBCb29sZWFuKG9wdGlvbnMua2VlcFVudXNlZEltcG9ydHMpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiZmxvd1wiKSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1lcnMucHVzaChcbiAgICAgICAgbmV3IEZsb3dUcmFuc2Zvcm1lcih0aGlzLCB0b2tlblByb2Nlc3NvciwgdHJhbnNmb3Jtcy5pbmNsdWRlcyhcImltcG9ydHNcIikpLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKFxuICAgICAgICBuZXcgVHlwZVNjcmlwdFRyYW5zZm9ybWVyKHRoaXMsIHRva2VuUHJvY2Vzc29yLCB0cmFuc2Zvcm1zLmluY2x1ZGVzKFwiaW1wb3J0c1wiKSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodHJhbnNmb3Jtcy5pbmNsdWRlcyhcImplc3RcIikpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnB1c2goXG4gICAgICAgIG5ldyBKZXN0SG9pc3RUcmFuc2Zvcm1lcih0aGlzLCB0b2tlblByb2Nlc3NvciwgdGhpcy5uYW1lTWFuYWdlciwgaW1wb3J0UHJvY2Vzc29yKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdHJhbnNmb3JtKCkge1xuICAgIHRoaXMudG9rZW5zLnJlc2V0KCk7XG4gICAgdGhpcy5wcm9jZXNzQmFsYW5jZWRDb2RlKCk7XG4gICAgY29uc3Qgc2hvdWxkQWRkVXNlU3RyaWN0ID0gdGhpcy5pc0ltcG9ydHNUcmFuc2Zvcm1FbmFibGVkO1xuICAgIC8vIFwidXNlIHN0cmljdFwiIGFsd2F5cyBuZWVkcyB0byBiZSBmaXJzdCwgc28gb3ZlcnJpZGUgdGhlIG5vcm1hbCB0cmFuc2Zvcm1lciBvcmRlci5cbiAgICBsZXQgcHJlZml4ID0gc2hvdWxkQWRkVXNlU3RyaWN0ID8gJ1widXNlIHN0cmljdFwiOycgOiBcIlwiO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdGhpcy50cmFuc2Zvcm1lcnMpIHtcbiAgICAgIHByZWZpeCArPSB0cmFuc2Zvcm1lci5nZXRQcmVmaXhDb2RlKCk7XG4gICAgfVxuICAgIHByZWZpeCArPSB0aGlzLmhlbHBlck1hbmFnZXIuZW1pdEhlbHBlcnMoKTtcbiAgICBwcmVmaXggKz0gdGhpcy5nZW5lcmF0ZWRWYXJpYWJsZXMubWFwKCh2KSA9PiBgIHZhciAke3Z9O2ApLmpvaW4oXCJcIik7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0aGlzLnRyYW5zZm9ybWVycykge1xuICAgICAgcHJlZml4ICs9IHRyYW5zZm9ybWVyLmdldEhvaXN0ZWRDb2RlKCk7XG4gICAgfVxuICAgIGxldCBzdWZmaXggPSBcIlwiO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdGhpcy50cmFuc2Zvcm1lcnMpIHtcbiAgICAgIHN1ZmZpeCArPSB0cmFuc2Zvcm1lci5nZXRTdWZmaXhDb2RlKCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9rZW5zLmZpbmlzaCgpO1xuICAgIGxldCB7Y29kZX0gPSByZXN1bHQ7XG4gICAgaWYgKGNvZGUuc3RhcnRzV2l0aChcIiMhXCIpKSB7XG4gICAgICBsZXQgbmV3bGluZUluZGV4ID0gY29kZS5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5ld2xpbmVJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgbmV3bGluZUluZGV4ID0gY29kZS5sZW5ndGg7XG4gICAgICAgIGNvZGUgKz0gXCJcXG5cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IGNvZGUuc2xpY2UoMCwgbmV3bGluZUluZGV4ICsgMSkgKyBwcmVmaXggKyBjb2RlLnNsaWNlKG5ld2xpbmVJbmRleCArIDEpICsgc3VmZml4LFxuICAgICAgICAvLyBUaGUgaGFzaGJhbmcgbGluZSBoYXMgbm8gdG9rZW5zLCBzbyBzaGlmdGluZyB0aGUgdG9rZW5zIHRvIGFjY291bnRcbiAgICAgICAgLy8gZm9yIHByZWZpeCBjYW4gaGFwcGVuIG5vcm1hbGx5LlxuICAgICAgICBtYXBwaW5nczogdGhpcy5zaGlmdE1hcHBpbmdzKHJlc3VsdC5tYXBwaW5ncywgcHJlZml4Lmxlbmd0aCksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiBwcmVmaXggKyBjb2RlICsgc3VmZml4LFxuICAgICAgICBtYXBwaW5nczogdGhpcy5zaGlmdE1hcHBpbmdzKHJlc3VsdC5tYXBwaW5ncywgcHJlZml4Lmxlbmd0aCksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NCYWxhbmNlZENvZGUoKSB7XG4gICAgbGV0IGJyYWNlRGVwdGggPSAwO1xuICAgIGxldCBwYXJlbkRlcHRoID0gMDtcbiAgICB3aGlsZSAoIXRoaXMudG9rZW5zLmlzQXRFbmQoKSkge1xuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlTCkgfHwgdGhpcy50b2tlbnMubWF0Y2hlczEodHQuZG9sbGFyQnJhY2VMKSkge1xuICAgICAgICBicmFjZURlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNlUikpIHtcbiAgICAgICAgaWYgKGJyYWNlRGVwdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJhY2VEZXB0aC0tO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnBhcmVuTCkpIHtcbiAgICAgICAgcGFyZW5EZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5wYXJlblIpKSB7XG4gICAgICAgIGlmIChwYXJlbkRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBhcmVuRGVwdGgtLTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvY2Vzc1Rva2VuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvY2Vzc1Rva2VuKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5tYXRjaGVzMSh0dC5fY2xhc3MpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NDbGFzcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHRyYW5zZm9ybWVyIG9mIHRoaXMudHJhbnNmb3JtZXJzKSB7XG4gICAgICBjb25zdCB3YXNQcm9jZXNzZWQgPSB0cmFuc2Zvcm1lci5wcm9jZXNzKCk7XG4gICAgICBpZiAod2FzUHJvY2Vzc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weVRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogU2tpcCBwYXN0IGEgY2xhc3Mgd2l0aCBhIG5hbWUgYW5kIHJldHVybiB0aGF0IG5hbWUuXG4gICAqL1xuICBwcm9jZXNzTmFtZWRDbGFzcygpIHtcbiAgICBpZiAoIXRoaXMudG9rZW5zLm1hdGNoZXMyKHR0Ll9jbGFzcywgdHQubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGlkZW50aWZpZXIgZm9yIGV4cG9ydGVkIGNsYXNzIG5hbWUuXCIpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdGhpcy50b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMSk7XG4gICAgdGhpcy5wcm9jZXNzQ2xhc3MoKTtcbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIHByb2Nlc3NDbGFzcygpIHtcbiAgICBjb25zdCBjbGFzc0luZm8gPSBnZXRDbGFzc0luZm8odGhpcywgdGhpcy50b2tlbnMsIHRoaXMubmFtZU1hbmFnZXIsIHRoaXMuZGlzYWJsZUVTVHJhbnNmb3Jtcyk7XG5cbiAgICAvLyBCb3RoIHN0YXRpYyBhbmQgaW5zdGFuY2UgaW5pdGlhbGl6ZXJzIG5lZWQgYSBjbGFzcyBuYW1lIHRvIHVzZSB0byBpbnZva2UgdGhlIGluaXRpYWxpemVyLCBzb1xuICAgIC8vIGFzc2lnbiB0byBvbmUgaWYgbmVjZXNzYXJ5LlxuICAgIGNvbnN0IG5lZWRzQ29tbWFFeHByZXNzaW9uID1cbiAgICAgIChjbGFzc0luZm8uaGVhZGVySW5mby5pc0V4cHJlc3Npb24gfHwgIWNsYXNzSW5mby5oZWFkZXJJbmZvLmNsYXNzTmFtZSkgJiZcbiAgICAgIGNsYXNzSW5mby5zdGF0aWNJbml0aWFsaXplck5hbWVzLmxlbmd0aCArIGNsYXNzSW5mby5pbnN0YW5jZUluaXRpYWxpemVyTmFtZXMubGVuZ3RoID4gMDtcblxuICAgIGxldCBjbGFzc05hbWUgPSBjbGFzc0luZm8uaGVhZGVySW5mby5jbGFzc05hbWU7XG4gICAgaWYgKG5lZWRzQ29tbWFFeHByZXNzaW9uKSB7XG4gICAgICBjbGFzc05hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJfY2xhc3NcIik7XG4gICAgICB0aGlzLmdlbmVyYXRlZFZhcmlhYmxlcy5wdXNoKGNsYXNzTmFtZSk7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgKCR7Y2xhc3NOYW1lfSA9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NUb2tlbiA9IHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpO1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IGNsYXNzVG9rZW4uY29udGV4dElkO1xuICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY2xhc3MgdG8gaGF2ZSBhIGNvbnRleHQgSUQuXCIpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5fY2xhc3MpO1xuICAgIHdoaWxlICghdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHRJZEFuZExhYmVsKHR0LmJyYWNlTCwgY29udGV4dElkKSkge1xuICAgICAgdGhpcy5wcm9jZXNzVG9rZW4oKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb2Nlc3NDbGFzc0JvZHkoY2xhc3NJbmZvLCBjbGFzc05hbWUpO1xuXG4gICAgY29uc3Qgc3RhdGljSW5pdGlhbGl6ZXJTdGF0ZW1lbnRzID0gY2xhc3NJbmZvLnN0YXRpY0luaXRpYWxpemVyTmFtZXMubWFwKFxuICAgICAgKG5hbWUpID0+IGAke2NsYXNzTmFtZX0uJHtuYW1lfSgpYCxcbiAgICApO1xuICAgIGlmIChuZWVkc0NvbW1hRXhwcmVzc2lvbikge1xuICAgICAgdGhpcy50b2tlbnMuYXBwZW5kQ29kZShcbiAgICAgICAgYCwgJHtzdGF0aWNJbml0aWFsaXplclN0YXRlbWVudHMubWFwKChzKSA9PiBgJHtzfSwgYCkuam9pbihcIlwiKX0ke2NsYXNzTmFtZX0pYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChjbGFzc0luZm8uc3RhdGljSW5pdGlhbGl6ZXJOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGAgJHtzdGF0aWNJbml0aWFsaXplclN0YXRlbWVudHMubWFwKChzKSA9PiBgJHtzfTtgKS5qb2luKFwiIFwiKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2Ugd2FudCB0byBqdXN0IGhhbmRsZSBjbGFzcyBmaWVsZHMgaW4gYWxsIGNvbnRleHRzLCBzaW5jZSBUeXBlU2NyaXB0IHN1cHBvcnRzIHRoZW0uIExhdGVyLFxuICAgKiB3aGVuIHNvbWUgSlMgaW1wbGVtZW50YXRpb25zIHN1cHBvcnQgY2xhc3MgZmllbGRzLCB0aGlzIHNob3VsZCBiZSBtYWRlIG9wdGlvbmFsLlxuICAgKi9cbiAgcHJvY2Vzc0NsYXNzQm9keShjbGFzc0luZm8sIGNsYXNzTmFtZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGhlYWRlckluZm8sXG4gICAgICBjb25zdHJ1Y3Rvckluc2VydFBvcyxcbiAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgZmllbGRzLFxuICAgICAgaW5zdGFuY2VJbml0aWFsaXplck5hbWVzLFxuICAgICAgcmFuZ2VzVG9SZW1vdmUsXG4gICAgfSA9IGNsYXNzSW5mbztcbiAgICBsZXQgZmllbGRJbmRleCA9IDA7XG4gICAgbGV0IHJhbmdlVG9SZW1vdmVJbmRleCA9IDA7XG4gICAgY29uc3QgY2xhc3NDb250ZXh0SWQgPSB0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5jb250ZXh0SWQ7XG4gICAgaWYgKGNsYXNzQ29udGV4dElkID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG5vbi1udWxsIGNvbnRleHQgSUQgb24gY2xhc3MuXCIpO1xuICAgIH1cbiAgICB0aGlzLnRva2Vucy5jb3B5RXhwZWN0ZWRUb2tlbih0dC5icmFjZUwpO1xuICAgIGlmICh0aGlzLmlzUmVhY3RIb3RMb2FkZXJUcmFuc2Zvcm1FbmFibGVkKSB7XG4gICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICBcIl9fcmVhY3RzdGFuZGluX19yZWdlbmVyYXRlQnlFdmFsKGtleSwgY29kZSkge3RoaXNba2V5XSA9IGV2YWwoY29kZSk7fVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZWVkc0NvbnN0cnVjdG9ySW5pdCA9XG4gICAgICBjb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cy5sZW5ndGggKyBpbnN0YW5jZUluaXRpYWxpemVyTmFtZXMubGVuZ3RoID4gMDtcblxuICAgIGlmIChjb25zdHJ1Y3Rvckluc2VydFBvcyA9PT0gbnVsbCAmJiBuZWVkc0NvbnN0cnVjdG9ySW5pdCkge1xuICAgICAgY29uc3QgY29uc3RydWN0b3JJbml0aWFsaXplcnNDb2RlID0gdGhpcy5tYWtlQ29uc3RydWN0b3JJbml0Q29kZShcbiAgICAgICAgY29uc3RydWN0b3JJbml0aWFsaXplclN0YXRlbWVudHMsXG4gICAgICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKTtcbiAgICAgIGlmIChoZWFkZXJJbmZvLmhhc1N1cGVyY2xhc3MpIHtcbiAgICAgICAgY29uc3QgYXJnc05hbWUgPSB0aGlzLm5hbWVNYW5hZ2VyLmNsYWltRnJlZU5hbWUoXCJhcmdzXCIpO1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICAgIGBjb25zdHJ1Y3RvciguLi4ke2FyZ3NOYW1lfSkgeyBzdXBlciguLi4ke2FyZ3NOYW1lfSk7ICR7Y29uc3RydWN0b3JJbml0aWFsaXplcnNDb2RlfTsgfWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKGBjb25zdHJ1Y3RvcigpIHsgJHtjb25zdHJ1Y3RvckluaXRpYWxpemVyc0NvZGV9OyB9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgd2hpbGUgKCF0aGlzLnRva2Vucy5tYXRjaGVzQ29udGV4dElkQW5kTGFiZWwodHQuYnJhY2VSLCBjbGFzc0NvbnRleHRJZCkpIHtcbiAgICAgIGlmIChmaWVsZEluZGV4IDwgZmllbGRzLmxlbmd0aCAmJiB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA9PT0gZmllbGRzW2ZpZWxkSW5kZXhdLnN0YXJ0KSB7XG4gICAgICAgIGxldCBuZWVkc0Nsb3NlQnJhY2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LmJyYWNrZXRMKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbldpdGhQcmVmaXgoYCR7ZmllbGRzW2ZpZWxkSW5kZXhdLmluaXRpYWxpemVyTmFtZX0oKSB7dGhpc2ApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxKHR0LnN0cmluZykgfHwgdGhpcy50b2tlbnMubWF0Y2hlczEodHQubnVtKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbldpdGhQcmVmaXgoYCR7ZmllbGRzW2ZpZWxkSW5kZXhdLmluaXRpYWxpemVyTmFtZX0oKSB7dGhpc1tgKTtcbiAgICAgICAgICBuZWVkc0Nsb3NlQnJhY2UgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbldpdGhQcmVmaXgoYCR7ZmllbGRzW2ZpZWxkSW5kZXhdLmluaXRpYWxpemVyTmFtZX0oKSB7dGhpcy5gKTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBmaWVsZHNbZmllbGRJbmRleF0uZW5kKSB7XG4gICAgICAgICAgaWYgKG5lZWRzQ2xvc2VCcmFjZSAmJiB0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA9PT0gZmllbGRzW2ZpZWxkSW5kZXhdLmVxdWFsc0luZGV4KSB7XG4gICAgICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwiXVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcm9jZXNzVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFwifVwiKTtcbiAgICAgICAgZmllbGRJbmRleCsrO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgcmFuZ2VUb1JlbW92ZUluZGV4IDwgcmFuZ2VzVG9SZW1vdmUubGVuZ3RoICYmXG4gICAgICAgIHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpID49IHJhbmdlc1RvUmVtb3ZlW3JhbmdlVG9SZW1vdmVJbmRleF0uc3RhcnRcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCByYW5nZXNUb1JlbW92ZVtyYW5nZVRvUmVtb3ZlSW5kZXhdLmVuZCkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0aGlzLnRva2Vucy5jdXJyZW50SW5kZXgoKSA8IHJhbmdlc1RvUmVtb3ZlW3JhbmdlVG9SZW1vdmVJbmRleF0uZW5kKSB7XG4gICAgICAgICAgdGhpcy50b2tlbnMucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICByYW5nZVRvUmVtb3ZlSW5kZXgrKztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPT09IGNvbnN0cnVjdG9ySW5zZXJ0UG9zKSB7XG4gICAgICAgIHRoaXMudG9rZW5zLmNvcHlUb2tlbigpO1xuICAgICAgICBpZiAobmVlZHNDb25zdHJ1Y3RvckluaXQpIHtcbiAgICAgICAgICB0aGlzLnRva2Vucy5hcHBlbmRDb2RlKFxuICAgICAgICAgICAgYDske3RoaXMubWFrZUNvbnN0cnVjdG9ySW5pdENvZGUoXG4gICAgICAgICAgICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgICAgICAgICAgICBpbnN0YW5jZUluaXRpYWxpemVyTmFtZXMsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICl9O2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2Nlc3NUb2tlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzVG9rZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50b2tlbnMuY29weUV4cGVjdGVkVG9rZW4odHQuYnJhY2VSKTtcbiAgfVxuXG4gIG1ha2VDb25zdHJ1Y3RvckluaXRDb2RlKFxuICAgIGNvbnN0cnVjdG9ySW5pdGlhbGl6ZXJTdGF0ZW1lbnRzLFxuICAgIGluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcyxcbiAgICBjbGFzc05hbWUsXG4gICkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5jb25zdHJ1Y3RvckluaXRpYWxpemVyU3RhdGVtZW50cyxcbiAgICAgIC4uLmluc3RhbmNlSW5pdGlhbGl6ZXJOYW1lcy5tYXAoKG5hbWUpID0+IGAke2NsYXNzTmFtZX0ucHJvdG90eXBlLiR7bmFtZX0uY2FsbCh0aGlzKWApLFxuICAgIF0uam9pbihcIjtcIik7XG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsbHkgaXQncyBvayB0byBzaW1wbHkgcmVtb3ZlIHR5cGUgdG9rZW5zLCBidXQgd2UgbmVlZCB0byBiZSBtb3JlIGNhcmVmdWwgd2hlbiBkZWFsaW5nIHdpdGhcbiAgICogYXJyb3cgZnVuY3Rpb24gcmV0dXJuIHR5cGVzIHNpbmNlIHRoZXkgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4gSW4gdGhhdCBjYXNlLCB3ZSB3YW50IHRvIG1vdmVcbiAgICogdGhlIGNsb3NlLXBhcmVuIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIGFycm93LlxuICAgKlxuICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FsYW5ncGllcmNlL3N1Y3Jhc2UvaXNzdWVzLzM5MSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgKi9cbiAgcHJvY2Vzc1Bvc3NpYmxlQXJyb3dQYXJhbUVuZCgpIHtcbiAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczIodHQucGFyZW5SLCB0dC5jb2xvbikgJiYgdGhpcy50b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoMSkuaXNUeXBlKSB7XG4gICAgICBsZXQgbmV4dE5vblR5cGVJbmRleCA9IHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpICsgMTtcbiAgICAgIC8vIExvb2sgYWhlYWQgdG8gc2VlIGlmIHRoaXMgaXMgYW4gYXJyb3cgZnVuY3Rpb24gb3Igc29tZXRoaW5nIGVsc2UuXG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMudG9rZW5zW25leHROb25UeXBlSW5kZXhdLmlzVHlwZSkge1xuICAgICAgICBuZXh0Tm9uVHlwZUluZGV4Kys7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50b2tlbnMubWF0Y2hlczFBdEluZGV4KG5leHROb25UeXBlSW5kZXgsIHR0LmFycm93KSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVJbml0aWFsVG9rZW4oKTtcbiAgICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRJbmRleCgpIDwgbmV4dE5vblR5cGVJbmRleCkge1xuICAgICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b2tlbnMucmVwbGFjZVRva2VuVHJpbW1pbmdMZWZ0V2hpdGVzcGFjZShcIikgPT5cIik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQW4gYXN5bmMgYXJyb3cgZnVuY3Rpb24gbWlnaHQgYmUgb2YgdGhlIGZvcm06XG4gICAqXG4gICAqIGFzeW5jIDxcbiAgICogICBUXG4gICAqID4oKSA9PiB7fVxuICAgKlxuICAgKiBpbiB3aGljaCBjYXNlLCByZW1vdmluZyB0aGUgdHlwZSBwYXJhbWV0ZXJzIHdpbGwgY2F1c2UgYSBzeW50YXggZXJyb3IuIERldGVjdCB0aGlzIGNhc2UgYW5kXG4gICAqIG1vdmUgdGhlIG9wZW4tcGFyZW4gZWFybGllci5cbiAgICovXG4gIHByb2Nlc3NQb3NzaWJsZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtcygpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy50b2tlbnMubWF0Y2hlc0NvbnRleHR1YWwoQ29udGV4dHVhbEtleXdvcmQuX2FzeW5jKSAmJlxuICAgICAgIXRoaXMudG9rZW5zLm1hdGNoZXMxKHR0Ll9hc3luYylcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbmV4dFRva2VuID0gdGhpcy50b2tlbnMudG9rZW5BdFJlbGF0aXZlSW5kZXgoMSk7XG4gICAgaWYgKG5leHRUb2tlbi50eXBlICE9PSB0dC5sZXNzVGhhbiB8fCAhbmV4dFRva2VuLmlzVHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBuZXh0Tm9uVHlwZUluZGV4ID0gdGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgKyAxO1xuICAgIC8vIExvb2sgYWhlYWQgdG8gc2VlIGlmIHRoaXMgaXMgYW4gYXJyb3cgZnVuY3Rpb24gb3Igc29tZXRoaW5nIGVsc2UuXG4gICAgd2hpbGUgKHRoaXMudG9rZW5zLnRva2Vuc1tuZXh0Tm9uVHlwZUluZGV4XS5pc1R5cGUpIHtcbiAgICAgIG5leHROb25UeXBlSW5kZXgrKztcbiAgICB9XG4gICAgaWYgKHRoaXMudG9rZW5zLm1hdGNoZXMxQXRJbmRleChuZXh0Tm9uVHlwZUluZGV4LCB0dC5wYXJlbkwpKSB7XG4gICAgICB0aGlzLnRva2Vucy5yZXBsYWNlVG9rZW4oXCJhc3luYyAoXCIpO1xuICAgICAgdGhpcy50b2tlbnMucmVtb3ZlSW5pdGlhbFRva2VuKCk7XG4gICAgICB3aGlsZSAodGhpcy50b2tlbnMuY3VycmVudEluZGV4KCkgPCBuZXh0Tm9uVHlwZUluZGV4KSB7XG4gICAgICAgIHRoaXMudG9rZW5zLnJlbW92ZVRva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgLy8gV2UgYXRlIGEgKCB0b2tlbiwgc28gd2UgbmVlZCB0byBwcm9jZXNzIHRoZSB0b2tlbnMgaW4gYmV0d2VlbiBhbmQgdGhlbiB0aGUgKSB0b2tlbiBzbyB0aGF0XG4gICAgICAvLyB3ZSByZW1haW4gYmFsYW5jZWQuXG4gICAgICB0aGlzLnByb2Nlc3NCYWxhbmNlZENvZGUoKTtcbiAgICAgIHRoaXMucHJvY2Vzc1Rva2VuKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvY2Vzc1Bvc3NpYmxlVHlwZVJhbmdlKCkge1xuICAgIGlmICh0aGlzLnRva2Vucy5jdXJyZW50VG9rZW4oKS5pc1R5cGUpIHtcbiAgICAgIHRoaXMudG9rZW5zLnJlbW92ZUluaXRpYWxUb2tlbigpO1xuICAgICAgd2hpbGUgKHRoaXMudG9rZW5zLmN1cnJlbnRUb2tlbigpLmlzVHlwZSkge1xuICAgICAgICB0aGlzLnRva2Vucy5yZW1vdmVUb2tlbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNoaWZ0TWFwcGluZ3MoXG4gICAgbWFwcGluZ3MsXG4gICAgcHJlZml4TGVuZ3RoLFxuICApIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBtYXBwaW5nID0gbWFwcGluZ3NbaV07XG4gICAgICBpZiAobWFwcGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG1hcHBpbmdzW2ldID0gbWFwcGluZyArIHByZWZpeExlbmd0aDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hcHBpbmdzO1xuICB9XG59XG4iLCAiaW1wb3J0IExpbmVzQW5kQ29sdW1ucyBmcm9tIFwibGluZXMtYW5kLWNvbHVtbnNcIjtcblxuXG5pbXBvcnQge2Zvcm1hdFRva2VuVHlwZX0gZnJvbSBcIi4uL3BhcnNlci90b2tlbml6ZXIvdHlwZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0VG9rZW5zKGNvZGUsIHRva2Vucykge1xuICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgY29uc3QgdG9rZW5LZXlzID0gT2JqZWN0LmtleXModG9rZW5zWzBdKS5maWx0ZXIoXG4gICAgKGspID0+IGsgIT09IFwidHlwZVwiICYmIGsgIT09IFwidmFsdWVcIiAmJiBrICE9PSBcInN0YXJ0XCIgJiYgayAhPT0gXCJlbmRcIiAmJiBrICE9PSBcImxvY1wiLFxuICApO1xuICBjb25zdCB0eXBlS2V5cyA9IE9iamVjdC5rZXlzKHRva2Vuc1swXS50eXBlKS5maWx0ZXIoKGspID0+IGsgIT09IFwibGFiZWxcIiAmJiBrICE9PSBcImtleXdvcmRcIik7XG5cbiAgY29uc3QgaGVhZGluZ3MgPSBbXCJMb2NhdGlvblwiLCBcIkxhYmVsXCIsIFwiUmF3XCIsIC4uLnRva2VuS2V5cywgLi4udHlwZUtleXNdO1xuXG4gIGNvbnN0IGxpbmVzID0gbmV3IExpbmVzQW5kQ29sdW1ucyhjb2RlKTtcbiAgY29uc3Qgcm93cyA9IFtoZWFkaW5ncywgLi4udG9rZW5zLm1hcChnZXRUb2tlbkNvbXBvbmVudHMpXTtcbiAgY29uc3QgcGFkZGluZyA9IGhlYWRpbmdzLm1hcCgoKSA9PiAwKTtcbiAgZm9yIChjb25zdCBjb21wb25lbnRzIG9mIHJvd3MpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHBhZGRpbmdbaV0gPSBNYXRoLm1heChwYWRkaW5nW2ldLCBjb21wb25lbnRzW2ldLmxlbmd0aCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByb3dzXG4gICAgLm1hcCgoY29tcG9uZW50cykgPT4gY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCwgaSkgPT4gY29tcG9uZW50LnBhZEVuZChwYWRkaW5nW2ldKSkuam9pbihcIiBcIikpXG4gICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgZnVuY3Rpb24gZ2V0VG9rZW5Db21wb25lbnRzKHRva2VuKSB7XG4gICAgY29uc3QgcmF3ID0gY29kZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgICByZXR1cm4gW1xuICAgICAgZm9ybWF0UmFuZ2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCksXG4gICAgICBmb3JtYXRUb2tlblR5cGUodG9rZW4udHlwZSksXG4gICAgICB0cnVuY2F0ZShTdHJpbmcocmF3KSwgMTQpLFxuICAgICAgLy8gQHRzLWlnbm9yZTogSW50ZW50aW9uYWwgZHluYW1pYyBhY2Nlc3MgYnkga2V5LlxuICAgICAgLi4udG9rZW5LZXlzLm1hcCgoa2V5KSA9PiBmb3JtYXRWYWx1ZSh0b2tlbltrZXldLCBrZXkpKSxcbiAgICAgIC8vIEB0cy1pZ25vcmU6IEludGVudGlvbmFsIGR5bmFtaWMgYWNjZXNzIGJ5IGtleS5cbiAgICAgIC4uLnR5cGVLZXlzLm1hcCgoa2V5KSA9PiBmb3JtYXRWYWx1ZSh0b2tlbi50eXBlW2tleV0sIGtleSkpLFxuICAgIF07XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBmdW5jdGlvbiBmb3JtYXRWYWx1ZSh2YWx1ZSwga2V5KSB7XG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UmFuZ2Uoc3RhcnQsIGVuZCkge1xuICAgIHJldHVybiBgJHtmb3JtYXRQb3Moc3RhcnQpfS0ke2Zvcm1hdFBvcyhlbmQpfWA7XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRQb3MocG9zKSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBsaW5lcy5sb2NhdGlvbkZvckluZGV4KHBvcyk7XG4gICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgcmV0dXJuIFwiVW5rbm93blwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7bG9jYXRpb24ubGluZSArIDF9OiR7bG9jYXRpb24uY29sdW1uICsgMX1gO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0cnVuY2F0ZShzLCBsZW5ndGgpIHtcbiAgaWYgKHMubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGAke3Muc2xpY2UoMCwgbGVuZ3RoIC0gMyl9Li4uYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcztcbiAgfVxufVxuIiwgImltcG9ydCB7VG9rZW5UeXBlIGFzIHR0fSBmcm9tIFwiLi4vcGFyc2VyL3Rva2VuaXplci90eXBlc1wiO1xuXG5pbXBvcnQgZ2V0SW1wb3J0RXhwb3J0U3BlY2lmaWVySW5mbyBmcm9tIFwiLi9nZXRJbXBvcnRFeHBvcnRTcGVjaWZpZXJJbmZvXCI7XG5cbi8qKlxuICogU3BlY2lhbCBjYXNlIGNvZGUgdG8gc2NhbiBmb3IgaW1wb3J0ZWQgbmFtZXMgaW4gRVNNIFR5cGVTY3JpcHQuIFdlIG5lZWQgdG8gZG8gdGhpcyBzbyB3ZSBjYW5cbiAqIHByb3Blcmx5IGdldCBnbG9iYWxzIHNvIHdlIGNhbiBjb21wdXRlIHNoYWRvd2VkIGdsb2JhbHMuXG4gKlxuICogVGhpcyBpcyBzaW1pbGFyIHRvIGxvZ2ljIGluIENKU0ltcG9ydFByb2Nlc3NvciwgYnV0IHRyaW1tZWQgZG93biB0byBhdm9pZCBsb2dpYyB3aXRoIENKU1xuICogcmVwbGFjZW1lbnQgYW5kIGZsb3cgdHlwZSBpbXBvcnRzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRUU0ltcG9ydGVkTmFtZXModG9rZW5zKSB7XG4gIGNvbnN0IGltcG9ydGVkTmFtZXMgPSBuZXcgU2V0KCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLnRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChcbiAgICAgIHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaSwgdHQuX2ltcG9ydCkgJiZcbiAgICAgICF0b2tlbnMubWF0Y2hlczNBdEluZGV4KGksIHR0Ll9pbXBvcnQsIHR0Lm5hbWUsIHR0LmVxKVxuICAgICkge1xuICAgICAgY29sbGVjdE5hbWVzRm9ySW1wb3J0KHRva2VucywgaSwgaW1wb3J0ZWROYW1lcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbXBvcnRlZE5hbWVzO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0TmFtZXNGb3JJbXBvcnQoXG4gIHRva2VucyxcbiAgaW5kZXgsXG4gIGltcG9ydGVkTmFtZXMsXG4pIHtcbiAgaW5kZXgrKztcblxuICBpZiAodG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQucGFyZW5MKSkge1xuICAgIC8vIER5bmFtaWMgaW1wb3J0LCBzbyBub3RoaW5nIHRvIGRvXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0Lm5hbWUpKSB7XG4gICAgaW1wb3J0ZWROYW1lcy5hZGQodG9rZW5zLmlkZW50aWZpZXJOYW1lQXRJbmRleChpbmRleCkpO1xuICAgIGluZGV4Kys7XG4gICAgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LmNvbW1hKSkge1xuICAgICAgaW5kZXgrKztcbiAgICB9XG4gIH1cblxuICBpZiAodG9rZW5zLm1hdGNoZXMxQXRJbmRleChpbmRleCwgdHQuc3RhcikpIHtcbiAgICAvLyAqIGFzXG4gICAgaW5kZXggKz0gMjtcbiAgICBpbXBvcnRlZE5hbWVzLmFkZCh0b2tlbnMuaWRlbnRpZmllck5hbWVBdEluZGV4KGluZGV4KSk7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmICh0b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCB0dC5icmFjZUwpKSB7XG4gICAgaW5kZXgrKztcbiAgICBjb2xsZWN0TmFtZXNGb3JOYW1lZEltcG9ydCh0b2tlbnMsIGluZGV4LCBpbXBvcnRlZE5hbWVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2xsZWN0TmFtZXNGb3JOYW1lZEltcG9ydChcbiAgdG9rZW5zLFxuICBpbmRleCxcbiAgaW1wb3J0ZWROYW1lcyxcbikge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmICh0b2tlbnMubWF0Y2hlczFBdEluZGV4KGluZGV4LCB0dC5icmFjZVIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY2lmaWVySW5mbyA9IGdldEltcG9ydEV4cG9ydFNwZWNpZmllckluZm8odG9rZW5zLCBpbmRleCk7XG4gICAgaW5kZXggPSBzcGVjaWZpZXJJbmZvLmVuZEluZGV4O1xuICAgIGlmICghc3BlY2lmaWVySW5mby5pc1R5cGUpIHtcbiAgICAgIGltcG9ydGVkTmFtZXMuYWRkKHNwZWNpZmllckluZm8ucmlnaHROYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5zLm1hdGNoZXMyQXRJbmRleChpbmRleCwgdHQuY29tbWEsIHR0LmJyYWNlUikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LmJyYWNlUikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRva2Vucy5tYXRjaGVzMUF0SW5kZXgoaW5kZXgsIHR0LmNvbW1hKSkge1xuICAgICAgaW5kZXgrKztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRva2VuOiAke0pTT04uc3RyaW5naWZ5KHRva2Vucy50b2tlbnNbaW5kZXhdKX1gKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgQ0pTSW1wb3J0UHJvY2Vzc29yIGZyb20gXCIuL0NKU0ltcG9ydFByb2Nlc3NvclwiO1xuaW1wb3J0IGNvbXB1dGVTb3VyY2VNYXAsIHt9IGZyb20gXCIuL2NvbXB1dGVTb3VyY2VNYXBcIjtcbmltcG9ydCB7SGVscGVyTWFuYWdlcn0gZnJvbSBcIi4vSGVscGVyTWFuYWdlclwiO1xuaW1wb3J0IGlkZW50aWZ5U2hhZG93ZWRHbG9iYWxzIGZyb20gXCIuL2lkZW50aWZ5U2hhZG93ZWRHbG9iYWxzXCI7XG5pbXBvcnQgTmFtZU1hbmFnZXIgZnJvbSBcIi4vTmFtZU1hbmFnZXJcIjtcbmltcG9ydCB7dmFsaWRhdGVPcHRpb25zfSBmcm9tIFwiLi9PcHRpb25zXCI7XG5cbmltcG9ydCB7cGFyc2V9IGZyb20gXCIuL3BhcnNlclwiO1xuXG5pbXBvcnQgVG9rZW5Qcm9jZXNzb3IgZnJvbSBcIi4vVG9rZW5Qcm9jZXNzb3JcIjtcbmltcG9ydCBSb290VHJhbnNmb3JtZXIgZnJvbSBcIi4vdHJhbnNmb3JtZXJzL1Jvb3RUcmFuc2Zvcm1lclwiO1xuaW1wb3J0IGZvcm1hdFRva2VucyBmcm9tIFwiLi91dGlsL2Zvcm1hdFRva2Vuc1wiO1xuaW1wb3J0IGdldFRTSW1wb3J0ZWROYW1lcyBmcm9tIFwiLi91dGlsL2dldFRTSW1wb3J0ZWROYW1lc1wiO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb24oKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiBcIjMuMzUuMFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtKGNvZGUsIG9wdGlvbnMpIHtcbiAgdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICB0cnkge1xuICAgIGNvbnN0IHN1Y3Jhc2VDb250ZXh0ID0gZ2V0U3VjcmFzZUNvbnRleHQoY29kZSwgb3B0aW9ucyk7XG4gICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgUm9vdFRyYW5zZm9ybWVyKFxuICAgICAgc3VjcmFzZUNvbnRleHQsXG4gICAgICBvcHRpb25zLnRyYW5zZm9ybXMsXG4gICAgICBCb29sZWFuKG9wdGlvbnMuZW5hYmxlTGVnYWN5QmFiZWw1TW9kdWxlSW50ZXJvcCksXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgY29uc3QgdHJhbnNmb3JtZXJSZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oKTtcbiAgICBsZXQgcmVzdWx0ID0ge2NvZGU6IHRyYW5zZm9ybWVyUmVzdWx0LmNvZGV9O1xuICAgIGlmIChvcHRpb25zLnNvdXJjZU1hcE9wdGlvbnMpIHtcbiAgICAgIGlmICghb3B0aW9ucy5maWxlUGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWxlUGF0aCBtdXN0IGJlIHNwZWNpZmllZCB3aGVuIGdlbmVyYXRpbmcgYSBzb3VyY2UgbWFwLlwiKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICBzb3VyY2VNYXA6IGNvbXB1dGVTb3VyY2VNYXAoXG4gICAgICAgICAgdHJhbnNmb3JtZXJSZXN1bHQsXG4gICAgICAgICAgb3B0aW9ucy5maWxlUGF0aCxcbiAgICAgICAgICBvcHRpb25zLnNvdXJjZU1hcE9wdGlvbnMsXG4gICAgICAgICAgY29kZSxcbiAgICAgICAgICBzdWNyYXNlQ29udGV4dC50b2tlblByb2Nlc3Nvci50b2tlbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAob3B0aW9ucy5maWxlUGF0aCkge1xuICAgICAgZS5tZXNzYWdlID0gYEVycm9yIHRyYW5zZm9ybWluZyAke29wdGlvbnMuZmlsZVBhdGh9OiAke2UubWVzc2FnZX1gO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdWNyYXNlIHRva2VucywgbW9zdGx5IHVzZWZ1bCBmb3JcbiAqIGRpYWdub3N0aWMgcHVycG9zZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXR0ZWRUb2tlbnMoY29kZSwgb3B0aW9ucykge1xuICBjb25zdCB0b2tlbnMgPSBnZXRTdWNyYXNlQ29udGV4dChjb2RlLCBvcHRpb25zKS50b2tlblByb2Nlc3Nvci50b2tlbnM7XG4gIHJldHVybiBmb3JtYXRUb2tlbnMoY29kZSwgdG9rZW5zKTtcbn1cblxuLyoqXG4gKiBDYWxsIGludG8gdGhlIHBhcnNlci90b2tlbml6ZXIgYW5kIGRvIHNvbWUgZnVydGhlciBwcmVwcm9jZXNzaW5nOlxuICogLSBDb21lIHVwIHdpdGggYSBzZXQgb2YgdXNlZCBuYW1lcyBzbyB0aGF0IHdlIGNhbiBhc3NpZ24gbmV3IG5hbWVzLlxuICogLSBQcmVwcm9jZXNzIGFsbCBpbXBvcnQvZXhwb3J0IHN0YXRlbWVudHMgc28gd2Uga25vdyB3aGljaCBnbG9iYWxzIHdlIGFyZSBpbnRlcmVzdGVkIGluLlxuICogLSBDb21wdXRlIHNpdHVhdGlvbnMgd2hlcmUgYW55IG9mIHRob3NlIGdsb2JhbHMgYXJlIHNoYWRvd2VkLlxuICpcbiAqIEluIHRoZSBmdXR1cmUsIHNvbWUgb2YgdGhlc2UgcHJlcHJvY2Vzc2luZyBzdGVwcyBjYW4gYmUgc2tpcHBlZCBiYXNlZCBvbiB3aGF0IGFjdHVhbCB3b3JrIGlzXG4gKiBiZWluZyBkb25lLlxuICovXG5mdW5jdGlvbiBnZXRTdWNyYXNlQ29udGV4dChjb2RlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGlzSlNYRW5hYmxlZCA9IG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcImpzeFwiKTtcbiAgY29uc3QgaXNUeXBlU2NyaXB0RW5hYmxlZCA9IG9wdGlvbnMudHJhbnNmb3Jtcy5pbmNsdWRlcyhcInR5cGVzY3JpcHRcIik7XG4gIGNvbnN0IGlzRmxvd0VuYWJsZWQgPSBvcHRpb25zLnRyYW5zZm9ybXMuaW5jbHVkZXMoXCJmbG93XCIpO1xuICBjb25zdCBkaXNhYmxlRVNUcmFuc2Zvcm1zID0gb3B0aW9ucy5kaXNhYmxlRVNUcmFuc2Zvcm1zID09PSB0cnVlO1xuICBjb25zdCBmaWxlID0gcGFyc2UoY29kZSwgaXNKU1hFbmFibGVkLCBpc1R5cGVTY3JpcHRFbmFibGVkLCBpc0Zsb3dFbmFibGVkKTtcbiAgY29uc3QgdG9rZW5zID0gZmlsZS50b2tlbnM7XG4gIGNvbnN0IHNjb3BlcyA9IGZpbGUuc2NvcGVzO1xuXG4gIGNvbnN0IG5hbWVNYW5hZ2VyID0gbmV3IE5hbWVNYW5hZ2VyKGNvZGUsIHRva2Vucyk7XG4gIGNvbnN0IGhlbHBlck1hbmFnZXIgPSBuZXcgSGVscGVyTWFuYWdlcihuYW1lTWFuYWdlcik7XG4gIGNvbnN0IHRva2VuUHJvY2Vzc29yID0gbmV3IFRva2VuUHJvY2Vzc29yKFxuICAgIGNvZGUsXG4gICAgdG9rZW5zLFxuICAgIGlzRmxvd0VuYWJsZWQsXG4gICAgZGlzYWJsZUVTVHJhbnNmb3JtcyxcbiAgICBoZWxwZXJNYW5hZ2VyLFxuICApO1xuICBjb25zdCBlbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCA9IEJvb2xlYW4ob3B0aW9ucy5lbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCk7XG5cbiAgbGV0IGltcG9ydFByb2Nlc3NvciA9IG51bGw7XG4gIGlmIChvcHRpb25zLnRyYW5zZm9ybXMuaW5jbHVkZXMoXCJpbXBvcnRzXCIpKSB7XG4gICAgaW1wb3J0UHJvY2Vzc29yID0gbmV3IENKU0ltcG9ydFByb2Nlc3NvcihcbiAgICAgIG5hbWVNYW5hZ2VyLFxuICAgICAgdG9rZW5Qcm9jZXNzb3IsXG4gICAgICBlbmFibGVMZWdhY3lUeXBlU2NyaXB0TW9kdWxlSW50ZXJvcCxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBvcHRpb25zLnRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpLFxuICAgICAgQm9vbGVhbihvcHRpb25zLmtlZXBVbnVzZWRJbXBvcnRzKSxcbiAgICAgIGhlbHBlck1hbmFnZXIsXG4gICAgKTtcbiAgICBpbXBvcnRQcm9jZXNzb3IucHJlcHJvY2Vzc1Rva2VucygpO1xuICAgIC8vIFdlIG5lZWQgdG8gbWFyayBzaGFkb3dlZCBnbG9iYWxzIGFmdGVyIHByb2Nlc3NpbmcgaW1wb3J0cyBzbyB3ZSBrbm93IHRoYXQgdGhlIGdsb2JhbHMgYXJlLFxuICAgIC8vIGJ1dCBiZWZvcmUgdHlwZS1vbmx5IGltcG9ydCBwcnVuaW5nLCBzaW5jZSB0aGF0IHJlbGllcyBvbiBzaGFkb3dpbmcgaW5mb3JtYXRpb24uXG4gICAgaWRlbnRpZnlTaGFkb3dlZEdsb2JhbHModG9rZW5Qcm9jZXNzb3IsIHNjb3BlcywgaW1wb3J0UHJvY2Vzc29yLmdldEdsb2JhbE5hbWVzKCkpO1xuICAgIGlmIChvcHRpb25zLnRyYW5zZm9ybXMuaW5jbHVkZXMoXCJ0eXBlc2NyaXB0XCIpICYmICFvcHRpb25zLmtlZXBVbnVzZWRJbXBvcnRzKSB7XG4gICAgICBpbXBvcnRQcm9jZXNzb3IucHJ1bmVUeXBlT25seUltcG9ydHMoKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy50cmFuc2Zvcm1zLmluY2x1ZGVzKFwidHlwZXNjcmlwdFwiKSAmJiAhb3B0aW9ucy5rZWVwVW51c2VkSW1wb3J0cykge1xuICAgIC8vIFNoYWRvd2VkIGdsb2JhbCBkZXRlY3Rpb24gaXMgbmVlZGVkIGZvciBUUyBpbXBsaWNpdCBlbGlzaW9uIG9mIGltcG9ydGVkIG5hbWVzLlxuICAgIGlkZW50aWZ5U2hhZG93ZWRHbG9iYWxzKHRva2VuUHJvY2Vzc29yLCBzY29wZXMsIGdldFRTSW1wb3J0ZWROYW1lcyh0b2tlblByb2Nlc3NvcikpO1xuICB9XG4gIHJldHVybiB7dG9rZW5Qcm9jZXNzb3IsIHNjb3BlcywgbmFtZU1hbmFnZXIsIGltcG9ydFByb2Nlc3NvciwgaGVscGVyTWFuYWdlcn07XG59XG4iLCAiLy8hIFV0aWxpdGllcyBmb3IgcnVubmluZyBqYXZhc2NyaXB0LlxuXG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tIFwic3VjcmFzZVwiO1xuXG5leHBvcnQgdHlwZSBTY3JpcHRMYW5ndWFnZSA9IFwianNcIiB8IFwidHNcIiB8IFwianN4XCIgfCBcInRzeFwiO1xuXG4vKiogQ29udmVydHMgYSByYXcgc2NyaXB0IGluIHRoZSBnaXZlbiBsYW5ndWFnZSB0byBwbGFpbiBqYXZhc2NyaXB0LiAgKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc3BpbGUoc2NyaXB0OiBzdHJpbmcsIGxhbmd1YWdlOiBTY3JpcHRMYW5ndWFnZSk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgICAgICBjYXNlIFwianNcIjpcbiAgICAgICAgICAgIHJldHVybiBzY3JpcHQ7XG4gICAgICAgIGNhc2UgXCJqc3hcIjpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm0oc2NyaXB0LCB7IHRyYW5zZm9ybXM6IFtcImpzeFwiXSwganN4UHJhZ21hOiBcImhcIiwganN4RnJhZ21lbnRQcmFnbWE6IFwiRnJhZ21lbnRcIiB9KS5jb2RlO1xuICAgICAgICBjYXNlIFwidHNcIjpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm0oc2NyaXB0LCB7IHRyYW5zZm9ybXM6IFtcInR5cGVzY3JpcHRcIl0gfSkuY29kZTtcbiAgICAgICAgY2FzZSBcInRzeFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybShzY3JpcHQsIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1zOiBbXCJ0eXBlc2NyaXB0XCIsIFwianN4XCJdLFxuICAgICAgICAgICAgICAgIGpzeFByYWdtYTogXCJoXCIsXG4gICAgICAgICAgICAgICAganN4RnJhZ21lbnRQcmFnbWE6IFwiRnJhZ21lbnRcIixcbiAgICAgICAgICAgIH0pLmNvZGU7XG4gICAgfVxufVxuXG4vKipcbiAqIEV2YWx1YXRlIGEgc2NyaXB0IHdoZXJlICd0aGlzJyBmb3IgdGhlIHNjcmlwdCBpcyBzZXQgdG8gdGhlIGdpdmVuIGNvbnRleHQuIEFsbG93cyB5b3UgdG8gZGVmaW5lIGdsb2JhbCB2YXJpYWJsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmFsSW5Db250ZXh0KHNjcmlwdDogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBhbnkge1xuICAgIGNvbnN0IHBhaXJzID0gT2JqZWN0LmVudHJpZXModmFyaWFibGVzKTtcbiAgICBjb25zdCBrZXlzID0gcGFpcnMubWFwKChba2V5LCBfXSkgPT4ga2V5KTtcbiAgICBjb25zdCB2YWx1ZXMgPSBwYWlycy5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcblxuICAgIHJldHVybiBuZXcgRnVuY3Rpb24oLi4ua2V5cywgc2NyaXB0KSguLi52YWx1ZXMpO1xufVxuXG4vKipcbiAqIEV2YWx1YXRlIGEgc2NyaXB0IHBvc3NpYmx5IGFzeW5jaHJvbm91c2x5LCBpZiB0aGUgc2NyaXB0IGNvbnRhaW5zIGBhc3luYy9hd2FpdGAgYmxvY2tzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNFdmFsSW5Db250ZXh0KHNjcmlwdDogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT4ge1xuICAgIGlmIChzY3JpcHQuaW5jbHVkZXMoXCJhd2FpdFwiKSkge1xuICAgICAgICByZXR1cm4gZXZhbEluQ29udGV4dChcInJldHVybiAoYXN5bmMgKCkgPT4geyBcIiArIHNjcmlwdCArIFwiIH0pKClcIiwgdmFyaWFibGVzKSBhcyBQcm9taXNlPGFueT47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShldmFsSW5Db250ZXh0KHNjcmlwdCwgdmFyaWFibGVzKSk7XG4gICAgfVxufVxuIiwgIi8qKiBAbW9kdWxlIHVpICovXG5pbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IEluZGV4UXVlcnkgfSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXgtcXVlcnlcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tIFwiaW5kZXgvZGF0YXN0b3JlXCI7XG5pbXBvcnQgeyBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCJhcGkvcmVzdWx0XCI7XG5cbi8qKiBIb29rIHRoYXQgdXBkYXRlcyB0aGUgdmlldyB3aGVuZXZlciB0aGUgcmV2aXNpb24gdXBkYXRlcywgcmV0dXJuaW5nIHRoZSBuZXdlc3QgcmV2aXNpb24uXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUluZGV4VXBkYXRlcyhkYXRhY29yZTogRGF0YWNvcmUsIHNldHRpbmdzPzogeyBkZWJvdW5jZT86IG51bWJlciB9KTogbnVtYmVyIHtcbiAgICBjb25zdCBbcmV2aXNpb24sIHNldFJldmlzaW9uXSA9IHVzZVN0YXRlKGRhdGFjb3JlLmRhdGFzdG9yZS5yZXZpc2lvbik7XG4gICAgY29uc3QgZGVib3VuY2VkUmV2aXNpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNldHRpbmdzPy5kZWJvdW5jZSAmJiBzZXR0aW5ncy5kZWJvdW5jZSA9PSAwKSByZXR1cm4gc2V0UmV2aXNpb247XG4gICAgICAgIGVsc2UgcmV0dXJuIGRlYm91bmNlKHNldFJldmlzaW9uLCBzZXR0aW5ncz8uZGVib3VuY2UgPz8gNTAwKTtcbiAgICB9LCBbc2V0UmV2aXNpb24sIHNldHRpbmdzPy5kZWJvdW5jZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVmID0gZGF0YWNvcmUub24oXCJ1cGRhdGVcIiwgZGVib3VuY2VkUmV2aXNpb24pO1xuICAgICAgICByZXR1cm4gKCkgPT4gZGF0YWNvcmUub2ZmcmVmKHJlZik7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIHJldmlzaW9uO1xufVxuXG4vKiogQSBob29rIHdoaWNoIHVwZGF0ZXMgd2hlbmV2ZXIgZmlsZSBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmaWxlIHVwZGF0ZXMuXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUZpbGVNZXRhZGF0YShcbiAgICBkYXRhY29yZTogRGF0YWNvcmUsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHNldHRpbmdzPzogeyBkZWJvdW5jZT86IG51bWJlciB9XG4pOiBJbmRleGFibGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGluZGV4UmV2aXNpb24gPSB1c2VJbmRleFVwZGF0ZXMoZGF0YWNvcmUsIHNldHRpbmdzKTtcblxuICAgIC8vIFRPRE86IEkgdGhpbmsgbG9hZCByZXR1cm5zIGNvbnNpc3RlbnQgb2JqZWN0cyBzbyBpdCBzaG91bGQgYmUgb2theS5cbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiBkYXRhY29yZS5kYXRhc3RvcmUubG9hZChwYXRoKSwgW2luZGV4UmV2aXNpb24sIHBhdGhdKTtcbn1cblxuLyoqIFNldHRpbmdzIHdoaWNoIGNvbnRyb2wgaG93IGF1dG9tYXRpYyBxdWVyeSByZWxvYWRpbmcgc2hvdWxkIHdvcmsuXG4gKiBAZ3JvdXAgQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlUXVlcnlTZXR0aW5ncyB7XG4gICAgLyoqXG4gICAgICogSWYgcHJlc2VudCwgZGVib3VuY2UgcmVwZWF0ZWQgcXVlcnkgdXBkYXRlcyBzbyB0aGF0IGFuIHVwZGF0ZSBvbmx5IG9jY3VycyBldmVyeSBcXDxkZWJvdW5jZVxcPiBtaWxsaXNlY29uZHMuIFRoaXNcbiAgICAgKiBkZWZhdWx0cyB0byB0aGUgb3ZlcmFsbCBkZWZhdWx0IGRlYm91bmNlIHNldHRpbmdzLlxuICAgICAqL1xuICAgIGRlYm91bmNlPzogbnVtYmVyO1xufVxuXG4vKiogUGVyZm9ybSBhIGxpdmUsIHN5bmNocm9ub3VzIHF1ZXJ5IHdoaWNoIHVwZGF0ZXMgaXRzIHJlc3VsdHMgd2hlbmV2ZXIgdGhlIGJhY2tpbmcgcXVlcnkgd291bGQgY2hhbmdlLlxuICpcbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJ5VXNlRnVsbFF1ZXJ5KFxuICAgIGRhdGFjb3JlOiBEYXRhY29yZSxcbiAgICBxdWVyeTogSW5kZXhRdWVyeSxcbiAgICBzZXR0aW5ncz86IFVzZVF1ZXJ5U2V0dGluZ3Ncbik6IFJlc3VsdDxTZWFyY2hSZXN1bHQ8SW5kZXhhYmxlPiwgc3RyaW5nPiB7XG4gICAgLy8gVHJhY2sgaW5kZXggdXBkYXRlcyB3aXRoIGN1c3RvbWl6YWJsZSBkZWJvdW5jaW5nLlxuICAgIGNvbnN0IGluZGV4UmV2aXNpb24gPSB1c2VJbmRleFVwZGF0ZXMoZGF0YWNvcmUsIHNldHRpbmdzKTtcblxuICAgIC8vIFdlIFwiaW50ZXJuXCIgdGhlIHF1ZXJ5LCBtZWFuaW5nIHdlIHJldXNlIHRoZSBvbGRlc3QgdmVyc2lvbiBpZiBpdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgYnV0IGp1c3QgYSBkaWZmZXJlbnQgb2JqZWN0LlxuICAgIGNvbnN0IGludGVybmVkUXVlcnkgPSB1c2VJbnRlcm5pbmcocXVlcnksIExpdGVyYWxzLmVxdWFscyk7XG4gICAgLy8gSW50ZXJuIHRoZSBvdXRwdXQgYXMgd2VsbCBzbyByZWFjdCBkaWZmaW5nIFwianVzdCB3b3Jrc1wiIHdpdGggdGhlIHJlc3VsdCBvZiB1c2VRdWVyeS5cbiAgICBjb25zdCBpbnRlcm5lZFJlc3VsdCA9IHVzZVJlZjxSZXN1bHQ8U2VhcmNoUmVzdWx0PEluZGV4YWJsZT4sIHN0cmluZz4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvLyBPbiBldmVyeSBpbmRleCByZXZpc2lvbiB1cGRhdGUsIHJlLXJ1biB0aGUgcXVlcnkgYW5kIGNoZWNrIGlmIGl0IHByb2R1Y2VkIG1lYW5pbmdmdWxseSBuZXcgdmFsdWVzLlxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3UmVzdWx0ID0gZGF0YWNvcmUuZGF0YXN0b3JlLnNlYXJjaChxdWVyeSk7XG5cbiAgICAgICAgLy8gU2V0IGZhaWx1cmUgaWYgdGhlIG5ldyByZXF1ZXN0IGlzIGEgZmFpbHVyZS5cbiAgICAgICAgaWYgKCFuZXdSZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgaW50ZXJuZWRSZXN1bHQuY3VycmVudCA9IFJlc3VsdC5mYWlsdXJlKG5ld1Jlc3VsdC5lcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJuZWRSZXN1bHQuY3VycmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGN1cnJlbnQgaW50ZXJuZWQgc3RhdGUsIHVwZGF0ZSBpdCBhbmQgcmV0dXJuLlxuICAgICAgICBpZiAoaW50ZXJuZWRSZXN1bHQuY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpbnRlcm5lZFJlc3VsdC5jdXJyZW50ID0gUmVzdWx0LnN1Y2Nlc3MobmV3UmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcm5lZFJlc3VsdC5jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIG5ldyByZXF1ZXN0IGlzIGlzIHN1Y2Nlc3NmdWwgYW5kIHRoZSBvbGQgcmVzdWx0IGlzIGRlZmluZWQuIElmIHRoZSBvbGQgcmVzdWx0IHdhcyBhbiBlcnJvciwgdXBkYXRlIGl0LlxuICAgICAgICBjb25zdCBvbGRSZXN1bHQgPSBpbnRlcm5lZFJlc3VsdC5jdXJyZW50O1xuICAgICAgICBpZiAoIW9sZFJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBpbnRlcm5lZFJlc3VsdC5jdXJyZW50ID0gUmVzdWx0LnN1Y2Nlc3MobmV3UmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcm5lZFJlc3VsdC5jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQm90aCBhcmUgc3VjY2Vzc2Z1bCwgY2hlY2sgaWYgdGhleSBhcmUgZGlmZmVyZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBvbGRSZXN1bHQudmFsdWUucmV2aXNpb24gIT0gbmV3UmVzdWx0LnZhbHVlLnJldmlzaW9uIHx8XG4gICAgICAgICAgICAhc2FtZU9iamVjdHMob2xkUmVzdWx0LnZhbHVlLnJlc3VsdHMsIG5ld1Jlc3VsdC52YWx1ZS5yZXN1bHRzKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAoaW50ZXJuZWRSZXN1bHQuY3VycmVudCA9IFJlc3VsdC5zdWNjZXNzKG5ld1Jlc3VsdC52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2FtZSByZXZpc2lvbiBhbmQgc2FtZSBvYmplY3RzLCB0aGlzIGlzIHRoZSBzYW1lIHF1ZXJ5IHJlc3VsdCwgc28gcmV0dXJuIHRoZSBvbGQgb2JqZWN0LlxuICAgICAgICByZXR1cm4gaW50ZXJuZWRSZXN1bHQuY3VycmVudDtcbiAgICB9LCBbaW50ZXJuZWRRdWVyeSwgaW5kZXhSZXZpc2lvbl0pO1xufVxuXG4vKiogUGVyZm9ybSBhIGxpdmUsIHN5bmNocm9ub3VzIHF1ZXJ5IHdoaWNoIHVwZGF0ZXMgaXRzIHJlc3VsdHMgd2hlbmV2ZXIgdGhlIGJhY2tpbmcgcXVlcnkgd291bGQgY2hhbmdlLlxuICpcbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRnVsbFF1ZXJ5KFxuICAgIGRhdGFjb3JlOiBEYXRhY29yZSxcbiAgICBxdWVyeTogSW5kZXhRdWVyeSxcbiAgICBzZXR0aW5ncz86IFVzZVF1ZXJ5U2V0dGluZ3Ncbik6IFNlYXJjaFJlc3VsdDxJbmRleGFibGU+IHtcbiAgICByZXR1cm4gdHJ5VXNlRnVsbFF1ZXJ5KGRhdGFjb3JlLCBxdWVyeSwgc2V0dGluZ3MpLm9yRWxzZVRocm93KChlKSA9PiBcIkZhaWxlZCB0byBzZWFyY2g6IFwiICsgZSk7XG59XG5cbi8qKiBTaW1wbGllciB2ZXJzaW9uIG9mIHVzZUZ1bGxRdWVyeSB3aGljaCBqdXN0IGRpcmVjdGx5IHJldHVybnMgcmVzdWx0cy5cbiAqXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeVVzZVF1ZXJ5KFxuICAgIGRhdGFjb3JlOiBEYXRhY29yZSxcbiAgICBxdWVyeTogSW5kZXhRdWVyeSxcbiAgICBzZXR0aW5ncz86IFVzZVF1ZXJ5U2V0dGluZ3Ncbik6IFJlc3VsdDxJbmRleGFibGVbXSwgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRyeVVzZUZ1bGxRdWVyeShkYXRhY29yZSwgcXVlcnksIHNldHRpbmdzKS5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LnJlc3VsdHMpO1xufVxuXG4vKiogU2ltcGxpZXIgdmVyc2lvbiBvZiB1c2VGdWxsUXVlcnkgd2hpY2gganVzdCBkaXJlY3RseSByZXR1cm5zIHJlc3VsdHMuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VRdWVyeShkYXRhY29yZTogRGF0YWNvcmUsIHF1ZXJ5OiBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IFVzZVF1ZXJ5U2V0dGluZ3MpOiBJbmRleGFibGVbXSB7XG4gICAgcmV0dXJuIHVzZUZ1bGxRdWVyeShkYXRhY29yZSwgcXVlcnksIHNldHRpbmdzKS5yZXN1bHRzO1xufVxuXG4vKiogRGV0ZXJtaW5lcyBpZiB0aGUgdHdvIHNldHMgb2Ygb2JqZWN0cyBhcmUgdGhlIHNhbWUuIE9ubHkgdXNlcyByZXZpc2lvbiBjb21wYXJpc29uIGZvciBwZXJmb3JtYW5jZS5cbiAqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIHNhbWVPYmplY3RzKG9sZDogSW5kZXhhYmxlW10sIGluY29taW5nOiBJbmRleGFibGVbXSkge1xuICAgIGlmIChvbGQubGVuZ3RoICE9IGluY29taW5nLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3Qgb2xkczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICAgIGZvciAoY29uc3QgaW5kZXhhYmxlIG9mIG9sZCkge1xuICAgICAgICBvbGRzW2luZGV4YWJsZS4kaWRdID0gaW5kZXhhYmxlLiRyZXZpc2lvbiE7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpbmRleGFibGUgb2YgaW5jb21pbmcpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBvbGRzW2luZGV4YWJsZS4kaWRdO1xuICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBpbmRleGFibGUuJHJldmlzaW9uKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogXCJJbnRlcm5zXCIgdGhlIGluY29taW5nIHZhbHVlLCByZXR1cm5pbmcgdGhlIG9sZGVzdCBlcXVhbCBpbnN0YW5jZS4gVGhpcyBpcyBhIHRyaWNrIHRvIGltcHJvdmUgUmVhY3QgZGlmZmluZ1xuICogIGJlaGF2aW9yLCBhcyB0d28gb2JqZWN0cyB3aGljaCBhcmUgZXF1YWxzIHZpYSBlcXVhbGl0eShhLCBiKSB3aWxsIHJldHVybiB0aGUgc2FtZSBvYmplY3QgcmVmZXJlbmNlIGFmdGVyIGJlaW5nXG4gKiAgaW50ZXJuZWQuXG4gKlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbnRlcm5pbmc8VD4odmFsdWU6IFQsIGVxdWFsaXR5OiAoYTogVCwgYjogVCkgPT4gYm9vbGVhbik6IFQge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxUPigpO1xuXG4gICAgaWYgKHJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgfHwgIWVxdWFsaXR5KHJlZi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQ7XG59XG5cbi8qKiBVc2UgYSBzdGFibGUgY2FsbGJhY2sgd2hpY2ggaGlkZXMgbXV0YWJsZSBzdGF0ZSBiZWhpbmQgYSBzdGFibGUgcmVmZXJlbmNlLlxuICpcbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RhYmxlQ2FsbGJhY2s8VD4oY2FsbGJhY2s6IFQsIGRlcHM6IGFueVtdKTogVCB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmPFQ+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZWYuY3VycmVudCA9IGNhbGxiYWNrO1xuICAgIH0sIFtjYWxsYmFjaywgLi4uZGVwc10pO1xuXG4gICAgcmV0dXJuIHVzZUNhbGxiYWNrKFxuICAgICAgICAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICAgIChyZWYuY3VycmVudCBhcyBhbnkpKC4uLmFyZ3MpO1xuICAgICAgICB9LFxuICAgICAgICBbcmVmXVxuICAgICkgYXMgVDtcbn1cblxuY29uc3QgTk9fT1BfVVBEQVRFID0gKHg6IGFueSkgPT4ge307XG5cbi8qKiBVc2Ugc3RhdGUgdGhhdCB3aWxsIGRlZmF1bHQgdG8gYW4gZXh0ZXJuYWwgY29udHJvbGxlZCB2YWx1ZSBpZiBzZXQ7IG90aGVyd2lzZSwgd2lsbCB0cmFjayBhbiBpbnRlcm5hbCB2YWx1ZS5cbiAqXG4gKiBAZ3JvdXAgSG9va3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRTdGF0ZTxUPihcbiAgICBpbml0aWFsU3RhdGU6IFQsXG4gICAgb3ZlcnJpZGU/OiBULFxuICAgIHVwZGF0ZT86ICh2YWx1ZTogVCkgPT4gdm9pZFxuKTogW1QsICh2YWx1ZTogVCkgPT4gdm9pZF0ge1xuICAgIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUob3ZlcnJpZGUgPz8gaW5pdGlhbFN0YXRlKTtcbiAgICBpZiAob3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoc3RhdGUgIT0gb3ZlcnJpZGUpIHNldFN0YXRlKG92ZXJyaWRlKTtcblxuICAgICAgICByZXR1cm4gW292ZXJyaWRlLCB1cGRhdGUgPz8gTk9fT1BfVVBEQVRFXTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXRTdGF0ZVdpdGhVcGRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKHZhbHVlOiBUKSA9PiB7XG4gICAgICAgICAgICBzZXRTdGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodXBkYXRlKSB1cGRhdGUodmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbc2V0U3RhdGUsIHVwZGF0ZV1cbiAgICApO1xuXG4gICAgcmV0dXJuIFtzdGF0ZSwgc2V0U3RhdGVXaXRoVXBkYXRlXTtcbn1cbiIsICJpbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2NvbXBhdFwiO1xuaW1wb3J0IHsgdXNlSW5kZXhVcGRhdGVzIH0gZnJvbSBcIi4vaG9va3NcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBWTm9kZSwgY3JlYXRlRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIExpdCB9IGZyb20gXCIuL21hcmtkb3duXCI7XG5cbmltcG9ydCBcIi4vZXJyb3JzLmNzc1wiO1xuXG5mdW5jdGlvbiBMb2FkaW5nUHJvZ3Jlc3MoeyBkYXRhY29yZSB9OiB7IGRhdGFjb3JlOiBEYXRhY29yZSB9KSB7XG4gICAgdXNlSW5kZXhVcGRhdGVzKGRhdGFjb3JlLCB7IGRlYm91bmNlOiAyNTAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8cD5cbiAgICAgICAgICAgIHtkYXRhY29yZS5pbml0aWFsaXplcj8uaW5pdGlhbGl6ZWQgPz8gMH0gLyB7ZGF0YWNvcmUuaW5pdGlhbGl6ZXI/LnRhcmdldFRvdGFsID8/IDB9XG4gICAgICAgIDwvcD5cbiAgICApO1xufVxuXG4vKiogTG9hZGluZyBib3VuZGFyeSB3aGljaCBzaG93cyBhIGxvYWRpbmcgc2NyZWVuIHdoaWxlIERhdGFjb3JlIGlzIGluaXRpYWxpemluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2FkaW5nQm91bmRhcnkoeyBjaGlsZHJlbiwgZGF0YWNvcmUgfTogUHJvcHNXaXRoQ2hpbGRyZW48eyBkYXRhY29yZTogRGF0YWNvcmUgfT4pIHtcbiAgICBjb25zdCBbaW5pdGlhbGl6ZWQsIHNldEluaXRpYWxpemVkXSA9IHVzZVN0YXRlKGRhdGFjb3JlLmluaXRpYWxpemVkKTtcblxuICAgIC8vIFN5bmNzIHRoZSBib3VuZGFyeSB3aXRoIGRhdGFjb3JlJ3MgaW5pdGlhbGl6YXRpb24gc3RhdGUuXG4gICAgLy8gVE9ETzogQWRkIGFuIGV2ZW50IHRvIGRhdGFjb3JlIHdoaWNoIGluZGljYXRlcyB3aGVuIGEgcmVpbmRleCBoYXBwZW5zIChpLmUuLCBpbml0aWFsaXplZFxuICAgIC8vIHJldHVybnMgYmFjayB0byAnZmFsc2UnKS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVybjtcblxuICAgICAgICBjb25zdCByZWYgPSBkYXRhY29yZS5vbihcImluaXRpYWxpemVkXCIsICgpID0+IHNldEluaXRpYWxpemVkKHRydWUpKTtcbiAgICAgICAgcmV0dXJuICgpID0+IGRhdGFjb3JlLm9mZnJlZihyZWYpO1xuICAgIH0sIFtpbml0aWFsaXplZCwgZGF0YWNvcmVdKTtcblxuICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWxvYWRpbmctYm91bmRhcnlcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbG9hZGluZy10aXRsZVwiPkRhdGFjb3JlIGlzIGdldHRpbmcgcmVhZHkuLi48L2g0PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtbG9hZGluZy1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nUHJvZ3Jlc3MgZGF0YWNvcmU9e2RhdGFjb3JlfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgdmFuaWxsYSBqYXZhc3JpcHQgZnVuY3Rpb24gbGF6aWx5IG9uZSB0aW1lLiBNYWlubHkgdXNlZnVsIHRvIG9ubHkgcnVuIGEgc2NyaXB0XG4gKiBvbmNlIHRoZSBwYXJlbnQgbG9hZGluZyBib3VuZGFyeSBpcyBhY3R1YWxseSByZWFkeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNjcmlwdENvbnRhaW5lcih7XG4gICAgZXhlY3V0b3IsXG4gICAgc291cmNlUGF0aCxcbn06IHtcbiAgICBleGVjdXRvcjogKCkgPT4gUHJvbWlzZTxMaXRlcmFsIHwgVk5vZGUgfCBGdW5jdGlvbj47XG4gICAgc291cmNlUGF0aDogc3RyaW5nO1xufSkge1xuICAgIGNvbnN0IFtlbGVtZW50LCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEpTWC5FbGVtZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8RXJyb3IgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRFbGVtZW50KHVuZGVmaW5lZCk7XG4gICAgICAgIHNldEVycm9yKHVuZGVmaW5lZCk7XG5cbiAgICAgICAgZXhlY3V0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4gc2V0RWxlbWVudChtYWtlUmVuZGVyYWJsZUVsZW1lbnQocmVzdWx0LCBzb3VyY2VQYXRoKSkpXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiBzZXRFcnJvcihlcnJvcikpO1xuICAgIH0sIFtleGVjdXRvcl0pO1xuXG4gICAgLy8gUHJvcG9nYXRlIGVycm9yIHVwd2FyZHMuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIHJldHVybiA8PntlbGVtZW50ID8/IDxFcnJvck1lc3NhZ2UgbWVzc2FnZT1cIjwgVmlldyBpcyByZW5kZXJpbmcgPlwiIC8+fTwvPjtcbn1cblxuLyoqIE1ha2UgYSByZW5kZXJhYmxlIGVsZW1lbnQgZnJvbSB0aGUgcmV0dXJuZWQgb2JqZWN0OyBpZiB0aGlzIHRyYW5zZm9ybWF0aW9uIGlzIG5vdCBwb3NzaWJsZSwgdGhyb3cgYW4gZXhjZXB0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJhYmxlRWxlbWVudChvYmplY3Q6IGFueSwgc291cmNlUGF0aDogc3RyaW5nKTogSlNYLkVsZW1lbnQge1xuICAgIGlmICh0eXBlb2Ygb2JqZWN0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQob2JqZWN0LCB7fSk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICAob2JqZWN0IGFzIGFueVtdKS5tYXAoKHgpID0+IG1ha2VSZW5kZXJhYmxlRWxlbWVudCh4LCBzb3VyY2VQYXRoKSlcbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gPExpdCB2YWx1ZT17b2JqZWN0fSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSAvPjtcbiAgICB9XG59XG4iLCAiLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGRpcmVjdCBBUEktZmFjaW5nIGVsZW1lbnRzLiBUaGlzIGVzc2VudGlhbGx5IHNlcnZlcyBhcyBhIGxheWVyIG9mIGluZGlyZWN0aW9uIHRvIGludGVybmFsIHR5cGVzLCBzbyB0aGF0IHRoZSBpbnRlcm5hbCB0eXBlcyBjYW4gYmVcbiAqIGNoYW5nZWQgd2l0aG91dCBicmVha2luZyB0aGUgQVBJLlxuICpcbiAqIEBtb2R1bGUgdWlcbiAqL1xuXG5pbXBvcnQgeyBIVE1MQXR0cmlidXRlcywgdXNlTWVtbyB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5cbmltcG9ydCBcImFwaS91aS9sYXlvdXQuY3NzXCI7XG5cbi8qKiBDcmVhdGVzIGEgdmVydGljYWwgZmxleGJveCBcInN0YWNrXCIgb2YgZWxlbWVudHMuXG4gKlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFN0YWNrKFxuICAgIHByb3BzOiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4gJiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgICAganVzdGlmeT86IHN0cmluZztcbiAgICAgICAgYWxpZ24/OiBzdHJpbmc7XG4gICAgICAgIHN0eWxlPzogc3RyaW5nO1xuICAgIH1cbikge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBqdXN0aWZ5LCBhbGlnbiwgc3R5bGUsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICBjb25zdCBleHRyYVN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBzdHlsZSA9IFwiXCI7XG4gICAgICAgIGlmIChqdXN0aWZ5KSBzdHlsZSArPSBganVzdGlmeS1jb250ZW50OiAke2p1c3RpZnl9O2A7XG4gICAgICAgIGlmIChhbGlnbikgc3R5bGUgKz0gYGFsaWduLWl0ZW1zOiAke2FsaWdufTtgO1xuXG4gICAgICAgIHJldHVybiBzdHlsZS5sZW5ndGggPT0gMCA/IHVuZGVmaW5lZCA6IHN0eWxlO1xuICAgIH0sIFtqdXN0aWZ5LCBhbGlnbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWUgPyBjbGFzc05hbWUgKyBcIiBkYy1zdGFja1wiIDogXCJkYy1zdGFja1wifVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlID8gZXh0cmFTdHlsZSArIHN0eWxlIDogZXh0cmFTdHlsZX1cbiAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8qKiBDcmVhdGVzIGEgaG9yaXpvbnRhbCBmbGV4Ym94IFwiZ3JvdXBpbmdcIiBvZiBlbGVtZW50cy5cbiAqXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gR3JvdXAoXG4gICAgcHJvcHM6IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBqdXN0aWZ5Pzogc3RyaW5nO1xuICAgICAgICBhbGlnbj86IHN0cmluZztcbiAgICAgICAgc3R5bGU/OiBzdHJpbmc7XG4gICAgfVxuKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGp1c3RpZnksIGFsaWduLCBzdHlsZSwgY2hpbGRyZW4sIC4uLnJlc3QgfSA9IHByb3BzO1xuICAgIGNvbnN0IGV4dHJhU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IHN0eWxlID0gXCJcIjtcbiAgICAgICAgaWYgKGp1c3RpZnkpIHN0eWxlICs9IGBqdXN0aWZ5LWNvbnRlbnQ6ICR7anVzdGlmeX07YDtcbiAgICAgICAgaWYgKGFsaWduKSBzdHlsZSArPSBgYWxpZ24taXRlbXM6ICR7YWxpZ259O2A7XG5cbiAgICAgICAgcmV0dXJuIHN0eWxlLmxlbmd0aCA9PSAwID8gdW5kZWZpbmVkIDogc3R5bGU7XG4gICAgfSwgW2p1c3RpZnksIGFsaWduXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZSA/IGNsYXNzTmFtZSArIFwiIGRjLWdyb3VwXCIgOiBcImRjLWdyb3VwXCJ9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGUgPyBleHRyYVN0eWxlICsgc3R5bGUgOiBleHRyYVN0eWxlfVxuICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cbiIsICIvKiogQmFzaWMgVUkgY29tcG9uZW50cyB0aGF0IGhhdmUgc2ltcGxlIE9ic2lkaWFuIHRoZW1pbmcuXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5cbmltcG9ydCB7IENvbXBvbmVudENoaWxkcmVuIH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgc2V0SWNvbiB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5cbmltcG9ydCBcIi4vYmFzaWNzLmNzc1wiO1xuXG4vKiogVmFyaW91cyBpbnRlbnRzIGZvciBidXR0b25zIGFuZCBvdGhlciBpbnRlcmFjdGl2ZSBlbGVtZW50cy4gKi9cbmV4cG9ydCB0eXBlIEludGVudCA9IFwiZXJyb3JcIiB8IFwid2FyblwiIHwgXCJpbmZvXCIgfCBcInN1Y2Nlc3NcIjtcbmV4cG9ydCB0eXBlIE9taXR0YWJsZSA9IFwidmFsdWVcIiB8IFwiZGVmYXVsdFZhbHVlXCI7XG5leHBvcnQgY29uc3QgSU5URU5UX0NMQVNTRVM6IFJlY29yZDxJbnRlbnQsIHN0cmluZz4gPSB7XG4gICAgZXJyb3I6IFwiZGMtaW50ZW50LWVycm9yXCIsXG4gICAgd2FybjogXCJkYy1pbnRlbnQtd2FyblwiLFxuICAgIGluZm86IFwiZGMtaW50ZW50LWluZm9cIixcbiAgICBzdWNjZXNzOiBcImRjLWludGVudC1zdWNjZXNzXCIsXG59O1xuXG4vKiogV3JhcHBlciBmb3IgYSByZWd1bGFyIEhUTUwgYnV0dG9uIHdpdGggc29tZSBkZWZhdWx0IGNsYXNzZXMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gQnV0dG9uKFxuICAgIHByb3BzOiB7IGNsYXNzTmFtZT86IHN0cmluZzsgaW50ZW50PzogSW50ZW50OyBjaGlsZHJlbjogQ29tcG9uZW50Q2hpbGRyZW4gfSAmIFJlYWN0LkhUTUxQcm9wczxIVE1MQnV0dG9uRWxlbWVudD5cbikge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBpbnRlbnQsIGNoaWxkcmVuLCAuLi5mb3J3YXJkaW5nUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy1idXR0b25cIiwgaW50ZW50ID8gSU5URU5UX0NMQVNTRVNbaW50ZW50XSA6IHVuZGVmaW5lZCwgY2xhc3NOYW1lKX1cbiAgICAgICAgICAgIHsuLi5mb3J3YXJkaW5nUHJvcHN9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgKTtcbn1cblxuLyoqIEEgc2ltcGxlIHRleHRib3ggd2hpY2ggYWNjZXB0cyB0ZXh0LlxuICpcbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUZXh0Ym94KHByb3BzOiB7IGNsYXNzTmFtZT86IHN0cmluZzsgaW5saW5lPzogYm9vbGVhbiB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGNoaWxkcmVuLCBpbmxpbmUgPSBmYWxzZSwgLi4uZm9yd2FyZGluZ1Byb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gaW5saW5lID8gKFxuICAgICAgICA8aW5wdXQgdHlwZT17cHJvcHMudHlwZSA/PyBcInRleHRcIn0gY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRjLXRleHRib3hcIiwgY2xhc3NOYW1lKX0gey4uLmZvcndhcmRpbmdQcm9wc30gLz5cbiAgICApIDogKFxuICAgICAgICA8dGV4dGFyZWEgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRjLXRleHRib3hcIiwgY2xhc3NOYW1lKX0+e3Byb3BzLnZhbHVlID8/IFwiXCJ9PC90ZXh0YXJlYT5cbiAgICApO1xufVxuXG4vKiogQSBjaGVja2JveCB0aGF0IGNhbiBiZSBjaGVja2VkIGFuZCB1bmNoZWNrZWQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tib3goXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgICAgIGNoZWNrZWQ/OiBib29sZWFuO1xuICAgICAgICBkZWZhdWx0Q2hlY2tlZD86IGJvb2xlYW47XG4gICAgICAgIG9uQ2hlY2tDaGFuZ2U/OiAoY2hlY2tlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAgICAgY2hpbGRyZW4/OiBDb21wb25lbnRDaGlsZHJlbjtcbiAgICB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+XG4pIHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGRlZmF1bHRDaGVja2VkLFxuICAgICAgICBjaGVja2VkOiBpc0NoZWNrZWQsXG4gICAgICAgIG9uQ2hlY2tDaGFuZ2UsXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAuLi5mb3J3YXJkaW5nUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2NoZWNrZWQsIHNldENoZWNrZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDaGVja2VkID8/IGZhbHNlLCBpc0NoZWNrZWQsIG9uQ2hlY2tDaGFuZ2UpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IGFueSkgPT4gc2V0Q2hlY2tlZChldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLCBbc2V0Q2hlY2tlZF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy1jaGVja2JveFwiLCBkaXNhYmxlZCA/IFwiZGMtY2hlY2tib3gtZGlzYWJsZWRcIiA6IHVuZGVmaW5lZCwgY2xhc3NOYW1lKX0+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXtkZWZhdWx0Q2hlY2tlZH1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtjaGVja2VkfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLmZvcndhcmRpbmdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbGFiZWw+XG4gICAgKTtcbn1cblxuLyoqIFdyYXBwZXIgZm9yIGEgc2xpZGVyIChyYW5nZSBpbnB1dCkgd2l0aCBzb21lIGRlZmF1bHQgY2xhc3Nlcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTbGlkZXIoXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBtaW4/OiBudW1iZXI7XG4gICAgICAgIG1heD86IG51bWJlcjtcbiAgICAgICAgc3RlcD86IG51bWJlcjtcbiAgICAgICAgdmFsdWU/OiBudW1iZXI7XG4gICAgICAgIGRlZmF1bHRWYWx1ZT86IG51bWJlcjtcbiAgICAgICAgb25WYWx1ZUNoYW5nZT86ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIH0gJiBPbWl0PFJlYWN0LkhUTUxQcm9wczxIVE1MSW5wdXRFbGVtZW50PiwgT21pdHRhYmxlPlxuKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIG1pbiA9IDAsIG1heCA9IDEwLCBzdGVwID0gMSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25WYWx1ZUNoYW5nZSwgLi4uZm9yd2FyZGluZ1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBbc2xpZGVyLCBzZXRTbGlkZXJdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSA/PyAwLCB2YWx1ZSwgb25WYWx1ZUNoYW5nZSk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKChldmVudDogYW55KSA9PiBzZXRTbGlkZXIocGFyc2VGbG9hdChldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKSksIFtzZXRTbGlkZXJdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3NsaWRlci50b1N0cmluZygpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRjLXNsaWRlclwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgbWluPXttaW59XG4gICAgICAgICAgICBtYXg9e21heH1cbiAgICAgICAgICAgIHN0ZXA9e3N0ZXB9XG4gICAgICAgICAgICB2YWx1ZT17c2xpZGVyfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgey4uLmZvcndhcmRpbmdQcm9wc31cbiAgICAgICAgLz5cbiAgICApO1xufVxuXG4vKiogV3JhcHBlciBmb3IgYSBzd2l0Y2ggKHRvZ2dsZSkgY29tcG9uZW50IHdpdGggc29tZSBkZWZhdWx0IGNsYXNzZXMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gU3dpdGNoKFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICAgICAgZGVmYXVsdENoZWNrZWQ/OiBib29sZWFuO1xuICAgICAgICBvblRvZ2dsZUNoYW5nZT86IChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIH0gJiBSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD5cbikge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBkaXNhYmxlZCwgZGVmYXVsdENoZWNrZWQsIGNoZWNrZWQsIG9uVG9nZ2xlQ2hhbmdlLCAuLi5mb3J3YXJkaW5nUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IFt0b2dnbGVkLCBzZXRUb2dnbGVkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q2hlY2tlZCA/PyBmYWxzZSwgY2hlY2tlZCwgb25Ub2dnbGVDaGFuZ2UpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IGFueSkgPT4gc2V0VG9nZ2xlZChldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLCBbc2V0VG9nZ2xlZF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFxuICAgICAgICAgICAgICAgIFwiZGMtc3dpdGNoIGNoZWNrYm94LWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIHRvZ2dsZWQgPyBcImlzLWVuYWJsZWRcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCA/IFwiZGMtc3dpdGNoLWRpc2FibGVkXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRjLXN3aXRjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQ9e2RlZmF1bHRDaGVja2VkfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e3RvZ2dsZWR9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4uZm9yd2FyZGluZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICApO1xufVxuXG4vKiogV3JhcHBlciBmb3IgYSBzZWxlY3QgY29tcG9uZW50IHdpdGggc29tZSBkZWZhdWx0IGNsYXNzZXMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gVmFuaWxsYVNlbGVjdChcbiAgICBwcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICAgIG9wdGlvbnM6IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W107XG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xuICAgICAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gICAgICAgIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgICB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxTZWxlY3RFbGVtZW50PlxuKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25WYWx1ZUNoYW5nZSwgLi4uZm9yd2FyZGluZ1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBbc2VsZWN0ZWRWYWx1ZSwgc2V0U2VsZWN0ZWRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSh2YWx1ZSA/PyBkZWZhdWx0VmFsdWUgPz8gXCJcIik7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSBzZXRTZWxlY3RlZFZhbHVlKHZhbHVlKTtcbiAgICB9LCBbdmFsdWVdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy1zZWxlY3QgZHJvcGRvd25cIiwgY2xhc3NOYW1lKX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFZhbHVlfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRWYWx1ZShlLmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2UgJiYgb25WYWx1ZUNoYW5nZShlLmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHsuLi5mb3J3YXJkaW5nUHJvcHN9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e29wdGlvbi52YWx1ZX0gdmFsdWU9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgIHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgKTtcbn1cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCByZW5kZXJzIGFuIGljb25cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBJY29uKHByb3BzOiB7IGNsYXNzTmFtZT86IHN0cmluZzsgaWNvbjogc3RyaW5nIH0pIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgaWNvbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxTcGFuRWxlbWVudD4oKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChyZWYuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0SWNvbihyZWYuY3VycmVudCwgaWNvbik7XG4gICAgICAgIH1cbiAgICB9LCBbcmVmXSk7XG5cbiAgICByZXR1cm4gPHNwYW4gcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYy1pY29uXCIsIGNsYXNzTmFtZSl9IGRhdGEtaWNvbj17aWNvbn0gLz47XG59XG5cbi8qKlxuICogIEFwcGVuZHMgYWRkaXRpb25hbCBjbGFzc2VzIHRvIGEgYmFzaWMgZml4ZWQgY2xhc3MuXG4gKlxuICogQGdyb3VwIFV0aWxpdGllc1xuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lQ2xhc3NlcyhmaXhlZDogc3RyaW5nLCAuLi5yZXN0OiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3Qgbm9uZW1wdHkgPSByZXN0LmZpbHRlcigoYykgPT4gYyAhPT0gdW5kZWZpbmVkKTtcbiAgICBpZiAobm9uZW1wdHkubGVuZ3RoID09PSAwKSByZXR1cm4gZml4ZWQ7XG5cbiAgICByZXR1cm4gW2ZpeGVkLCAuLi5ub25lbXB0eV0uam9pbihcIiBcIik7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSBcImx1eG9uXCI7XG5cbi8qKiBBbnkgaW5kZXhhYmxlIGZpZWxkLCB3aGljaCBtdXN0IGhhdmUgYSBmZXcgaW5kZXgtcmVsZXZhbnQgcHJvcGVydGllcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhhYmxlIHtcbiAgICAvKiogVGhlIG9iamVjdCB0eXBlcyB0aGF0IHRoaXMgaW5kZXhhYmxlIGlzLiAqL1xuICAgICR0eXBlczogc3RyaW5nW107XG4gICAgLyoqIFRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIG9iamVjdCwgc3VjaCBhcyBgUGFnZWAgb3IgYFNlY3Rpb25gLiBVc2VkIGluIHZpc3VhbGl6YXRpb25zLiAqL1xuICAgICR0eXBlbmFtZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdW5pcXVlIGluZGV4IElEIGZvciB0aGlzIG9iamVjdC4gKi9cbiAgICAkaWQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXhhYmxlIG9iamVjdCB0aGF0IGlzIHRoZSBwYXJlbnQgb2YgdGhpcyBvYmplY3QuIE9ubHkgc2V0IGFmdGVyIHRoZSBvYmplY3QgaXMgYWN0dWFsbHkgaW5kZXhlZC5cbiAgICAgKi9cbiAgICAkcGFyZW50PzogSW5kZXhhYmxlO1xuICAgIC8qKiBJZiBwcmVzZW50LCB0aGUgcmV2aXNpb24gaW4gdGhlIGluZGV4IG9mIHRoaXMgb2JqZWN0LiAqL1xuICAgICRyZXZpc2lvbj86IG51bWJlcjtcbiAgICAvKiogVGhlIGZpbGUgdGhhdCB0aGlzIGluZGV4YWJsZSB3YXMgZGVyaXZlZCBmcm9tLCBpZiBmaWxlLWJhY2tlZC4gKi9cbiAgICAkZmlsZT86IHN0cmluZztcbn1cblxuLyoqIE1ldGFkYXRhIGZvciBvYmplY3RzIHdoaWNoIHN1cHBvcnQgbGlua2luZy4gKi9cbmV4cG9ydCBjb25zdCBMSU5LQUJMRV9UWVBFID0gXCJsaW5rYWJsZVwiO1xuLyoqXG4gKiB7QGluaGVyaXREb2MgTElOS0FCTEVfVFlQRX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rYWJsZSB7XG4gICAgLyoqIEEgbGluayB0byB0aGlzIGxpbmthYmxlIG9iamVjdC4gKi9cbiAgICAkbGluazogTGluaztcbn1cblxuLyoqIEdlbmVyYWwgbWV0YWRhdGEgZm9yIGFueSBmaWxlLiAqL1xuZXhwb3J0IGNvbnN0IEZJTEVfVFlQRSA9IFwiZmlsZVwiO1xuLyoqXG4gKiB7QGluaGVyaXREb2MgRklMRV9UWVBFfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGUgZXh0ZW5kcyBMaW5rYWJsZSB7XG4gICAgLyoqIFRoZSBwYXRoIHRoaXMgZmlsZSBleGlzdHMgYXQuICovXG4gICAgJHBhdGg6IHN0cmluZztcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIGNyZWF0ZWQuICovXG4gICAgJGN0aW1lOiBEYXRlVGltZTtcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIG1vZGlmaWVkLiAqL1xuICAgICRtdGltZTogRGF0ZVRpbWU7XG4gICAgLyoqIE9ic2lkaWFuLXByb3ZpZGVkIHNpemUgb2YgdGhpcyBwYWdlIGluIGJ5dGVzLiAqL1xuICAgICRzaXplOiBudW1iZXI7XG4gICAgLyoqIFRoZSBleHRlbnNpb24gb2YgdGhlIGZpbGUuICovXG4gICAgJGV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG4vKiogTWV0YWRhdGEgZm9yIHRhZ2dhYmxlIG9iamVjdHMuICovXG5leHBvcnQgY29uc3QgVEFHR0FCTEVfVFlQRSA9IFwidGFnZ2FibGVcIjtcbi8qKlxuICoge0Bpbmhlcml0RG9jIFRBR0dBQkxFX1RZUEV9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnZ2FibGUge1xuICAgIC8qKiBUaGUgZXhhY3QgdGFncyBvbiB0aGlzIG9iamVjdC4gKCNhL2IvYyBvciAjZm9vL2JhcikuICovXG4gICAgJHRhZ3M6IHN0cmluZ1tdO1xufVxuXG4vKiogTWV0YWRhdGEgZm9yIG9iamVjdHMgd2hpY2ggY2FuIGxpbmsgdG8gb3RoZXIgdGhpbmdzLiAqL1xuZXhwb3J0IGNvbnN0IExJTktCRUFSSU5HX1RZUEUgPSBcImxpbmtzXCI7XG4vKipcbiAqIHtAaW5oZXJpdERvYyBMSU5LQkVBUklOR19UWVBFfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmtiZWFyaW5nIHtcbiAgICAvKiogVGhlIGxpbmtzIGluIHRoaXMgZmlsZS4gKi9cbiAgICAkbGlua3M6IExpbmtbXTtcbn1cblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIGV4dGVuc2lvbnMuIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlY29tZSBhIGR5bmFtaWMgbG9va3VwIHRhYmxlIGFuZCBub3QganVzdFxuICogYSBmaXhlZCBsaXN0IGF0IHNvbWUgcG9pbnQsIGVzcGVjaWFsbHkgaWYgd2UgYWRkIHRoZSBhYmlsaXR5IHRvIHR1cm4gaW5kZXhpbmcgb24vb2ZmLlxuICovXG5leHBvcnQgY29uc3QgSU5ERVhBQkxFX0VYVEVOU0lPTlMgPSBuZXcgU2V0KFtcIm1kXCIsIFwibWFya2Rvd25cIiwgXCJjYW52YXNcIl0pO1xuIiwgIi8qKlxuICogQG1vZHVsZSBhcGlcbiAqL1xuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBJbmRleGFibGUgfSBmcm9tIFwiLi4vaW5kZXgvdHlwZXMvaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQgeyBGcm9udG1hdHRlckVudHJ5IH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBMaW5lU3BhbiB9IGZyb20gXCJpbmRleC90eXBlcy9qc29uL21hcmtkb3duXCI7XG5cbi8qKiBUaGUgc291cmNlIG9mIGEgZmllbGQsIHVzZWQgd2hlbiBkZXRlcm1pbmluZyB3aGF0IGZpbGVzIHRvIG92ZXJ3cml0ZSBhbmQgaG93LiAqL1xuZXhwb3J0IHR5cGUgUHJvdmVuYW5jZSA9XG4gICAgfCB7IHR5cGU6IFwiZnJvbnRtYXR0ZXJcIjsgZmlsZTogc3RyaW5nOyBrZXk6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6IFwiaW5saW5lLWZpZWxkXCI7IGZpbGU6IHN0cmluZzsgbGluZTogbnVtYmVyOyBrZXk6IHN0cmluZyB9O1xuXG4vKipcbiAqIEdlbmVyYWwgZGVmaW5pdGlvbiBmb3IgYSBmaWVsZC4gUHJvdmlkZXMgdGhlIGZpZWxkIGtleSwgdmFsdWUsIGFzIHdlbGwgYXMgaW5mb3JtYXRpb24gb24gaXQncyBzb3VyY2UgYW5kIGhvdyBpdCBjYW4gYmUgZWRpdGVkLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICogKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xuICAgIC8qKiBUaGUgY2Fub25pY2FsIGtleSBuYW1lIGZvciB0aGUgZmllbGQgKGkuZS4sIGFzIGl0IGFjdHVhbGx5IHNob3dzIHVwIGluIHRoZSBkYXRhIHN0cnVjdHVyZSkuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQuICovXG4gICAgdmFsdWU6IExpdGVyYWw7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGZpZWxkIGJlZm9yZSBwYXJzaW5nLCBpZiByZWxldmFudC4gKi9cbiAgICByYXc/OiBzdHJpbmc7XG4gICAgLyoqIElmIHByZXNlbnQsIGRlc2NyaWJlcyB3aGVyZSB0aGUgZmllbGQgY2FtZSBmcm9tIGluIHByZWNpc2UgZGV0YWlsLCBhbGxvd2luZyB0aGUgZmllbGQgdG8gYmUgZWRpdGVkLiAqL1xuICAgIHByb3ZlbmFuY2U/OiBQcm92ZW5hbmNlO1xufVxuXG4vKiogTWV0YWRhdGEgZm9yIG9iamVjdHMgd2hpY2ggYXJlIGFubm90YXRlZCB3aXRoIGZpZWxkcy4gKi9cbmV4cG9ydCBjb25zdCBGSUVMREJFQVJJTkdfVFlQRSA9IFwiZmllbGRzXCI7XG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkYmVhcmluZyB7XG4gICAgLyoqIFJldHVybiBhIGxpc3Qgb2YgYWxsIGZpZWxkcy4gVGhpcyBtYXkgYmUgY29tcHV0ZWQgZWFnZXJseSwgc28gY2FjaGUgdGhpcyB2YWx1ZSBmb3IgcmVwZWF0ZWQgb3BlcmF0aW9ucy4gKi9cbiAgICBmaWVsZHM6IEZpZWxkW107XG5cbiAgICAvKiogRmV0Y2ggYSBmaWVsZCB3aXRoIHRoZSBnaXZlbiBuYW1lIGlmIGl0IGlzIHByZXNlbnQgb24gdGhpcyBvYmplY3QuICovXG4gICAgZmllbGQoa2V5OiBzdHJpbmcpOiBGaWVsZCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBGaWVsZGJlYXJpbmdzIHtcbiAgICBleHBvcnQgZnVuY3Rpb24gaXNGaWVsZGJlYXJpbmcob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgRmllbGRiZWFyaW5nIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG9iamVjdCAhPSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09IFwib2JqZWN0XCIgJiYgXCJmaWVsZFwiIGluIG9iamVjdCAmJiB0eXBlb2Ygb2JqZWN0W1wiZmllbGRcIl0gPT0gXCJmdW5jdGlvblwiXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhIGtleSBmcm9tIGEgZ2VuZXJpYyBtYXAgb3IgZmllbGRiZWFyaW5nIG9iamVjdC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZ2V0KG9iamVjdDogRmllbGRiZWFyaW5nIHwgUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4sIGtleTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0ZpZWxkYmVhcmluZyhvYmplY3QpKSByZXR1cm4gb2JqZWN0LmZpZWxkKGtleSk/LnZhbHVlO1xuICAgICAgICBlbHNlIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gZ2V0V2l0aERlZmF1bHQ8VCBleHRlbmRzIHsgJHBvc2l0aW9uOiBMaW5lU3BhbiB9ICYgSW5kZXhhYmxlPihcbiAgICAgICAgb2JqZWN0OiBULFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgZGVmYXVsdFZhbHVlPzogTGl0ZXJhbFxuICAgICk6IEZpZWxkIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IGRlZmF1bHRWYWx1ZSA/PyBudWxsLFxuICAgICAgICAgICAgcHJvdmVuYW5jZToge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5saW5lLWZpZWxkXCIsXG4gICAgICAgICAgICAgICAgZmlsZTogb2JqZWN0LiRmaWxlISxcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgbGluZTogb2JqZWN0LiRwb3NpdGlvbi5lbmQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBHZW5lcmljIGZ1bmN0aW9uIHdoaWNoIGV4dHJhY3QgZmllbGRzLiBJZiBubyBhcmd1bWVudCBpcyBwcm92aWRlZCwgaXQgc2hvdWxkIHJldHVybiBhbGwgZmllbGRzOyBvdGhlcndpc2UsXG4gKiBpdCBzaG91bGQgcmV0dXJuIHRoZSBmaWVsZCBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5LlxuICpcbiAqIEtleXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgdG8gbWF0Y2ggT2JzaWRpYW4gc3RhbmRhcmQgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkRXh0cmFjdG9yPFQ+ID0gKG9iamVjdDogVCwga2V5Pzogc3RyaW5nKSA9PiBGaWVsZFtdO1xuXG4vKiogUXVpY2sgdXRpbGl0aWVzIGZvciBnZW5lcmF0aW5nIGZpZWxkcyBhbmQgZG9pbmcgc2VhcmNoZXMgb3ZlciB0aGVtLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgbmFtZXNwYWNlIEV4dHJhY3RvcnMge1xuICAgIC8qKiBDaGVjayBpZiB0aGUgZ2l2ZW4gcHJvcGVydHkgaW4gdGhlIG9iamVjdCBpcyBub3QgZXhjbHVkZWQgYW5kIGlzIGEgcGxhaW4gcHJvcGVydHkgKG5vdCBhIGZ1bmN0aW9uIG9yIG90aGVyIHNwZWNpYWwgb2JqZWN0KS4gKi9cbiAgICBmdW5jdGlvbiBpc1ZhbGlkSW50cmluc2ljKG9iamVjdDogUmVjb3JkPHN0cmluZywgYW55Piwga2V5OiBzdHJpbmcsIGV4Y2x1ZGU/OiBTZXQ8c3RyaW5nPik6IGJvb2xlYW4ge1xuICAgICAgICAvLyBEb24ndCBhbGxvdyByZWN1cnNpb24gb24gJ2ZpZWxkcycgb3IgY2FjaGVkIHZhbHVlcywgYW5kIHNraXAgYW55IGlnbm9yZWQgYW5kIG5vbi1pbnRyaW5zaWNzLlxuICAgICAgICBpZiAoZXhjbHVkZT8uaGFzKGtleSkgfHwgIWtleS5zdGFydHNXaXRoKFwiJFwiKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIC8vIE5vIGZ1bmN0aW9ucywgb25seSB1c2UgYWN0dWFsIHZhbHVlcy5cbiAgICAgICAgY29uc3QgdmFsdWUgPSAob2JqZWN0IGFzIGFueSlba2V5XTtcbiAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24odmFsdWUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhbGwga2V5cyBvZiB0aGUgb2JqZWN0LCBpbmNsdWRpbmcgZGVyaXZlZCBmaWVsZHMgZnJvbSBwcm90b3R5cGVzLiAqL1xuICAgIGZ1bmN0aW9uKiBwcm90b3R5cGVLZXlzKG9iamVjdDogYW55KSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iamVjdCkpIHlpZWxkIGtleTtcblxuICAgICAgICBsZXQgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTtcbiAgICAgICAgd2hpbGUgKHByb3RvKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm90bykpIHlpZWxkIGtleTtcblxuICAgICAgICAgICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdlbmVyYXRlIGEgbGlzdCBvZiBmaWVsZHMgZm9yIHRoZSBnaXZlbiBvYmplY3QsIHJldHVybmluZyB0aGVtIGFzIGEgbGlzdC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaW50cmluc2ljczxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oZXhjZXB0PzogU2V0PHN0cmluZz4pOiBGaWVsZEV4dHJhY3RvcjxUPiB7XG4gICAgICAgIHJldHVybiAob2JqZWN0OiBULCBrZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkczogRmllbGRbXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcHJvdG90eXBlS2V5cyhvYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEludHJpbnNpYyhvYmplY3QsIGtleSwgZXhjZXB0KSkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChvYmplY3QgYXMgYW55KVtrZXldLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBrZXkgaXMgZGlyZWN0bHkgcHJlc2VudCBpbiBvYmplY3QsIGp1c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gb2JqZWN0ICYmIGlzVmFsaWRJbnRyaW5zaWMob2JqZWN0LCBrZXksIGV4Y2VwdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChvYmplY3QgYXMgYW55KVtrZXldLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBGaWVsZFtdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogRmllbGQgZXh0cmFjdG9yIHdoaWNoIGV4dHJhY3RzIGZyb250bWF0dGVyIGZpZWxkcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZnJvbnRtYXR0ZXI8VCBleHRlbmRzIEluZGV4YWJsZT4oXG4gICAgICAgIGZyb250OiAob2JqZWN0OiBUKSA9PiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PiB8IHVuZGVmaW5lZFxuICAgICk6IEZpZWxkRXh0cmFjdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIChvYmplY3Q6IFQsIGtleT86IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnJvbnRtYXR0ZXIgPSBmcm9udChvYmplY3QpO1xuICAgICAgICAgICAgaWYgKCFmcm9udG1hdHRlcikgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICBpZiAoa2V5ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHM6IEZpZWxkW10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyb250bWF0dGVyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IGZyb250bWF0dGVyW2tleV07XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBlbnRyeS5rZXkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbnRyeS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhdzogZW50cnkucmF3LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmVuYW5jZTogeyB0eXBlOiBcImZyb250bWF0dGVyXCIsIGZpbGU6IG9iamVjdC4kZmlsZSEsIGtleTogZW50cnkua2V5IH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmICghKGtleSBpbiBmcm9udG1hdHRlcikpIHJldHVybiBbXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZnJvbnRtYXR0ZXJba2V5XTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudHJ5LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3OiBlbnRyeS5yYXcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92ZW5hbmNlOiB7IHR5cGU6IFwiZnJvbnRtYXR0ZXJcIiwgZmlsZTogb2JqZWN0LiRmaWxlISwga2V5IH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogRmllbGQgZXh0cmFjdG9yIHdoaWNoIHNob3dzIGFsbCBpbmxpbmUgZmllbGRzLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBpbmxpbmVGaWVsZHM8VCBleHRlbmRzIEluZGV4YWJsZT4oXG4gICAgICAgIGlubGluZU1hcDogKG9iamVjdDogVCkgPT4gUmVjb3JkPHN0cmluZywgSW5saW5lRmllbGQ+IHwgdW5kZWZpbmVkXG4gICAgKTogRmllbGRFeHRyYWN0b3I8VD4ge1xuICAgICAgICByZXR1cm4gKG9iamVjdDogVCwga2V5Pzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXAgPSBpbmxpbmVNYXAob2JqZWN0KTtcbiAgICAgICAgICAgIGlmICghbWFwKSByZXR1cm4gW107XG5cbiAgICAgICAgICAgIGlmIChrZXkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBPYmplY3QudmFsdWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBmaWVsZC5rZXkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhdzogZmllbGQucmF3LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmVuYW5jZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5saW5lLWZpZWxkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogb2JqZWN0LiRmaWxlISxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBmaWVsZC5wb3NpdGlvbi5saW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBQcm92ZW5hbmNlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoIShrZXkgaW4gbWFwKSkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBtYXBba2V5XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhdzogZmllbGQucmF3LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmVuYW5jZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5saW5lLWZpZWxkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogb2JqZWN0LiRmaWxlISxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBmaWVsZC5wb3NpdGlvbi5saW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBQcm92ZW5hbmNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIE1lcmdlIG11bHRpcGxlIGZpZWxkIGV4dHJhY3RvcnMgaW50byBvbmU7IGlmIG11bHRpcGxlIGV4dHJhY3RvcnMgcHJvZHVjZSBpZGVudGljYWwga2V5cywga2V5cyBmcm9tIHRoZSBlYXJsaWVyIGV4dHJhY3RvciB3aWxsIGJlIHByZWZlcnJlZC4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbWVyZ2U8VCBleHRlbmRzIEZpZWxkYmVhcmluZz4oLi4uZXh0cmFjdG9yczogRmllbGRFeHRyYWN0b3I8VD5bXSk6IEZpZWxkRXh0cmFjdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIChvYmplY3Q6IFQsIGtleT86IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzOiBGaWVsZFtdID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgZXh0cmFjdG9ycykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGV4dHJhY3RvcihvYmplY3QsIHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VkLmhhcyhmaWVsZC5rZXkudG9Mb3dlckNhc2UoKSkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VkLmFkZChmaWVsZC5rZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHMucHVzaChmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBleHRyYWN0b3Igb2YgZXh0cmFjdG9ycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGV4dHJhY3RvcihvYmplY3QsIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC5sZW5ndGggPiAwKSByZXR1cm4gZmllbGQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsICIvKiogUGFyc2UgaW5saW5lIGZpZWxkcyBhbmQgb3RoZXIgZW1iZWRkZWQgbWV0YWRhdGEgaW4gYSBsaW5lLiAqL1xuXG5pbXBvcnQgeyBQUklNSVRJVkVTIH0gZnJvbSBcImV4cHJlc3Npb24vcGFyc2VyXCI7XG5pbXBvcnQgeyBMaXRlcmFsIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0ICogYXMgUCBmcm9tIFwicGFyc2ltbW9uXCI7XG5pbXBvcnQgZW1vamlSZWdleCBmcm9tIFwiZW1vamktcmVnZXhcIjtcbmltcG9ydCB7IEpzb25Db252ZXJzaW9uLCBKc29uTGl0ZXJhbCB9IGZyb20gXCJpbmRleC90eXBlcy9qc29uL2NvbW1vblwiO1xuXG4vKiogQSBwYXJzZWQgaW5saW5lIGZpZWxkIGZyb20gYSBzcGVjaWZpYyBsaW5lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbElubGluZUZpZWxkIHtcbiAgICAvKiogVGhlIHJhdyBwYXJzZWQga2V5LiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIC8qKiBUaGUgcmF3IHZhbHVlIG9mIHRoZSBmaWVsZC4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICBzdGFydDogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuICovXG4gICAgc3RhcnRWYWx1ZTogbnVtYmVyO1xuICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgZW5kOiBudW1iZXI7XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBGdWxsIGlubGluZSBmaWVsZCBtZXRhZGF0YSBmb3IgYW4gb2JqZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSBhY3R1YWwga2V5IGRlc2NyaWJpbmcgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgaW5saW5lIGZpZWxkLiAqL1xuICAgIHJhdzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFyc2VkIHZhbHVlLiAqL1xuICAgIHZhbHVlOiBMaXRlcmFsO1xuICAgIC8qKiBGdWxsIHBvc2l0aW9uIGluZm9ybWF0aW9uIGZvciB3aGVyZSB0aGUgaW5saW5lIGZpZWxkIGlzIGxvY2F0ZWQgaW4gdGhlIGRvY3VtZW50LiAqL1xuICAgIHBvc2l0aW9uOiB7XG4gICAgICAgIC8qKiBUaGUgbGluZSBudW1iZXIgdGhlIGlubGluZSBmaWVsZCBhcHBlYXJzIG9uLiAqL1xuICAgICAgICBsaW5lOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICAgICAgc3RhcnQ6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBzdGFydCBjb2x1bW4gb2YgdGhlICp2YWx1ZSogZm9yIHRoZSBmaWVsZC4gSW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICc6OicuICovXG4gICAgICAgIHN0YXJ0VmFsdWU6IG51bWJlcjtcbiAgICAgICAgLyoqIFRoZSBlbmQgY29sdW1uIG9mIHRoZSBmaWVsZC4gKi9cbiAgICAgICAgZW5kOiBudW1iZXI7XG4gICAgfTtcbiAgICAvKiogSWYgdGhpcyBpbmxpbmUgZmllbGQgd2FzIGRlZmluZWQgdmlhIGEgd3JhcHBpbmcgKCdbJyBvciAnKCcgb3IgJ2xpbmsnKSwgdGhlbiB0aGUgd3JhcHBpbmcgdGhhdCB3YXMgdXNlZC4gKi9cbiAgICB3cmFwcGluZz86IHN0cmluZztcbn1cblxuLyoqIEpTT04sIHNlcmlhbGl6YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhbiBpbmxpbmUgZmllbGQuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25JbmxpbmVGaWVsZCB7XG4gICAgLyoqIFRoZSBhY3R1YWwga2V5IGRlc2NyaWJpbmcgdGhlIGlubGluZSBmaWVsZC4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICAvKiogVGhlIHJhdyB2YWx1ZSBvZiB0aGUgaW5saW5lIGZpZWxkLiAqL1xuICAgIHJhdzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFyc2VkIHZhbHVlLiAqL1xuICAgIHZhbHVlOiBKc29uTGl0ZXJhbDtcbiAgICAvKiogRnVsbCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igd2hlcmUgdGhlIGlubGluZSBmaWVsZCBpcyBsb2NhdGVkIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBwb3NpdGlvbjoge1xuICAgICAgICAvKiogVGhlIGxpbmUgbnVtYmVyIHRoZSBpbmxpbmUgZmllbGQgYXBwZWFycyBvbi4gKi9cbiAgICAgICAgbGluZTogbnVtYmVyO1xuICAgICAgICAvKiogVGhlIHN0YXJ0IGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgY29sdW1uIG9mIHRoZSAqdmFsdWUqIGZvciB0aGUgZmllbGQuIEltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnOjonLiAqL1xuICAgICAgICBzdGFydFZhbHVlOiBudW1iZXI7XG4gICAgICAgIC8qKiBUaGUgZW5kIGNvbHVtbiBvZiB0aGUgZmllbGQuICovXG4gICAgICAgIGVuZDogbnVtYmVyO1xuICAgIH07XG4gICAgLyoqIElmIHRoaXMgaW5saW5lIGZpZWxkIHdhcyBkZWZpbmVkIHZpYSBhIHdyYXBwaW5nICgnWycgb3IgJygnIG9yICdsaW5rJyksIHRoZW4gdGhlIHdyYXBwaW5nIHRoYXQgd2FzIHVzZWQuICovXG4gICAgd3JhcHBpbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBDb252ZXJ0IGFuIGlubGluZSBmaWVsZCB0byBhIEpTT04gZm9ybWF0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25JbmxpbmVGaWVsZChmaWVsZDogSW5saW5lRmllbGQpOiBKc29uSW5saW5lRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBmaWVsZCwgeyB2YWx1ZTogSnNvbkNvbnZlcnNpb24uanNvbihmaWVsZC52YWx1ZSkgfSk7XG59XG5cbi8qKiBDb252ZXJ0IGEgSlNPTiBpbmxpbmUgZmllbGQgYmFjayB0byBhIHJlZ3VsYXIgZmllbGQuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVJbmxpbmVGaWVsZChmaWVsZDogSnNvbklubGluZUZpZWxkKTogSW5saW5lRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBmaWVsZCwgeyB2YWx1ZTogSnNvbkNvbnZlcnNpb24udmFsdWUoZmllbGQudmFsdWUpIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNJbmxpbmVGaWVsZChsb2NhbDogTG9jYWxJbmxpbmVGaWVsZCwgbGluZW5vOiBudW1iZXIpOiBJbmxpbmVGaWVsZDtcbmV4cG9ydCBmdW5jdGlvbiBhc0lubGluZUZpZWxkKGxvY2FsOiBMb2NhbElubGluZUZpZWxkW10sIGxpbmVubzogbnVtYmVyKTogSW5saW5lRmllbGRbXTtcbi8qKiBDb252ZXJ0IGEgbG9jYWwgaW5saW5lIGZpZWxkIGludG8gYSBmdWxsIGlubGluZSBmaWVsZCBieSBwZXJmb3JtaW5nIHBhcnNpbmcgYW5kIGFkZGluZyB0aGUgY29ycmVjdCBsaW5lIG51bWJlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc0lubGluZUZpZWxkKFxuICAgIGxvY2FsOiBMb2NhbElubGluZUZpZWxkIHwgTG9jYWxJbmxpbmVGaWVsZFtdLFxuICAgIGxpbmVubzogbnVtYmVyXG4pOiBJbmxpbmVGaWVsZCB8IElubGluZUZpZWxkW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsKSkge1xuICAgICAgICByZXR1cm4gbG9jYWwubWFwKChmKSA9PiBhc0lubGluZUZpZWxkKGYsIGxpbmVubykpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogbG9jYWwua2V5LFxuICAgICAgICByYXc6IGxvY2FsLnZhbHVlLFxuICAgICAgICB2YWx1ZTogcGFyc2VJbmxpbmVWYWx1ZShsb2NhbC52YWx1ZSksXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lbm8sXG4gICAgICAgICAgICBzdGFydDogbG9jYWwuc3RhcnQsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBsb2NhbC5zdGFydFZhbHVlLFxuICAgICAgICAgICAgZW5kOiBsb2NhbC5lbmQsXG4gICAgICAgIH0sXG4gICAgICAgIHdyYXBwaW5nOiBsb2NhbC53cmFwcGluZyxcbiAgICB9O1xufVxuXG4vKiogVGhlIHdyYXBwZXIgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhbiBpbmxpbmUgZmllbGQuICovXG5leHBvcnQgY29uc3QgSU5MSU5FX0ZJRUxEX1dSQVBQRVJTOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IE9iamVjdC5mcmVlemUoe1xuICAgIFwiW1wiOiBcIl1cIixcbiAgICBcIihcIjogXCIpXCIsXG59KTtcblxuLyoqXG4gKiBGaW5kIGEgbWF0Y2hpbmcgY2xvc2luZyBicmFja2V0IHRoYXQgb2NjdXJzIGF0IG9yIGFmdGVyIGBzdGFydGAsIHJlc3BlY3RpbmcgbmVzdGluZyBhbmQgZXNjYXBlcy4gSWYgZm91bmQsXG4gKiByZXR1cm5zIHRoZSB2YWx1ZSBjb250YWluZWQgd2l0aGluIGFuZCB0aGUgc3RyaW5nIGluZGV4IGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZhbHVlLlxuICovXG5mdW5jdGlvbiBmaW5kQ2xvc2luZyhcbiAgICBsaW5lOiBzdHJpbmcsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBvcGVuOiBzdHJpbmcsXG4gICAgY2xvc2U6IHN0cmluZ1xuKTogeyB2YWx1ZTogc3RyaW5nOyBlbmRJbmRleDogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIGxldCBuZXN0aW5nID0gMDtcbiAgICBsZXQgZXNjYXBlZCA9IGZhbHNlO1xuICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnQ7IGluZGV4IDwgbGluZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgbGV0IGNoYXIgPSBsaW5lLmNoYXJBdChpbmRleCk7XG5cbiAgICAgICAgLy8gQWxsb3dzIGZvciBkb3VibGUgZXNjYXBlcyBsaWtlICdcXFxcJyB0byBiZSByZW5kZXJlZCBub3JtYWxseS5cbiAgICAgICAgaWYgKGNoYXIgPT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXNjYXBlZCwgaWdub3JlIHRoZSBuZXh0IGNoYXJhY3RlciBmb3IgY29tcHV0aW5nIG5lc3RpbmcsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpdCBpcy5cbiAgICAgICAgaWYgKGVzY2FwZWQpIHtcbiAgICAgICAgICAgIGVzY2FwZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYXIgPT0gb3BlbikgbmVzdGluZysrO1xuICAgICAgICBlbHNlIGlmIChjaGFyID09IGNsb3NlKSBuZXN0aW5nLS07XG5cbiAgICAgICAgLy8gT25seSBvY2N1cnMgaWYgd2UgYXJlIG9uIGEgY2xvc2UgY2hhcmFjdGVyIGFuZCB0cmhlcmUgaXMgbm8gbW9yZSBuZXN0aW5nLlxuICAgICAgICBpZiAobmVzdGluZyA8IDApIHJldHVybiB7IHZhbHVlOiBsaW5lLnN1YnN0cmluZyhzdGFydCwgaW5kZXgpLnRyaW0oKSwgZW5kSW5kZXg6IGluZGV4ICsgMSB9O1xuXG4gICAgICAgIGVzY2FwZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogRmluZCB0aGUgJzo6JyBzZXBhcmF0b3IgaW4gYW4gaW5saW5lIGZpZWxkLiAqL1xuZnVuY3Rpb24gZmluZFNlcGFyYXRvcihsaW5lOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIpOiB7IGtleTogc3RyaW5nOyB2YWx1ZUluZGV4OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlcCA9IGxpbmUuaW5kZXhPZihcIjo6XCIsIHN0YXJ0KTtcbiAgICBpZiAoc2VwIDwgMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7IGtleTogbGluZS5zdWJzdHJpbmcoc3RhcnQsIHNlcCkudHJpbSgpLCB2YWx1ZUluZGV4OiBzZXAgKyAyIH07XG59XG5cbi8qKiBUcnkgdG8gY29tcGxldGVseSBwYXJzZSBhbiBpbmxpbmUgZmllbGQgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiBBc3N1bWVzIGBzdGFydGAgaXMgb24gYSB3cmFwcGluZyBjaGFyYWN0ZXIuICovXG5mdW5jdGlvbiBmaW5kU3BlY2lmaWNJbmxpbmVGaWVsZChsaW5lOiBzdHJpbmcsIHN0YXJ0OiBudW1iZXIpOiBMb2NhbElubGluZUZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgb3BlbiA9IGxpbmUuY2hhckF0KHN0YXJ0KTtcblxuICAgIGxldCBrZXkgPSBmaW5kU2VwYXJhdG9yKGxpbmUsIHN0YXJ0ICsgMSk7XG4gICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gRmFpbCB0aGUgbWF0Y2ggaWYgd2UgZmluZCBhbnkgc2VwYXJhdG9yIGNoYXJhY3RlcnMgKG5vdCBhbGxvd2VkIGluIGtleXMpLlxuICAgIGZvciAobGV0IHNlcCBvZiBPYmplY3Qua2V5cyhJTkxJTkVfRklFTERfV1JBUFBFUlMpLmNvbmNhdChPYmplY3QudmFsdWVzKElOTElORV9GSUVMRF9XUkFQUEVSUykpKSB7XG4gICAgICAgIGlmIChrZXkua2V5LmluY2x1ZGVzKHNlcCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gZmluZENsb3NpbmcobGluZSwga2V5LnZhbHVlSW5kZXgsIG9wZW4sIElOTElORV9GSUVMRF9XUkFQUEVSU1tvcGVuXSk7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGtleS5rZXksXG4gICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBzdGFydFZhbHVlOiBrZXkudmFsdWVJbmRleCxcbiAgICAgICAgZW5kOiB2YWx1ZS5lbmRJbmRleCxcbiAgICAgICAgd3JhcHBpbmc6IG9wZW4sXG4gICAgfTtcbn1cblxuLyoqIFBhcnNlIGEgdGV4dHVhbCBpbmxpbmUgZmllbGQgdmFsdWUgaW50byBzb21ldGhpbmcgd2UgY2FuIHdvcmsgd2l0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlubGluZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBMaXRlcmFsIHtcbiAgICAvLyBFbXB0eSBpbmxpbmUgdmFsdWVzIChpLmUuLCBubyB0ZXh0KSBzaG91bGQgbWFwIHRvIG51bGwgdG8gbWF0Y2ggbG9uZy10ZXJtIERhdGF2aWV3IHNlbWFudGljcy5cbiAgICAvLyBOdWxsIGlzIGFsc28gYSBtb3JlIHVuaXZlcnNhbCB0eXBlIHRvIGRlYWwgd2l0aCB0aGFuIHN0cmluZ3MsIHNpbmNlIGFsbCBmdW5jdGlvbnMgYWNjZXB0IG51bGxzLlxuICAgIGlmICh2YWx1ZS50cmltKCkgPT0gXCJcIikgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBUaGUgc3RyaXBwZWQgbGl0ZXJhbCBmaWVsZCBwYXJzZXIgdW5kZXJzdGFuZHMgYWxsIG9mIHRoZSBub24tYXJyYXkvbm9uLW9iamVjdCBmaWVsZHMgYW5kIGNhbiBwYXJzZSB0aGVtIGZvciB1cy5cbiAgICAvLyBJbmxpbmUgZmllbGQgb2JqZWN0cyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQ7IGlubGluZSBhcnJheSBvYmplY3RzIGhhdmUgdG8gYmUgaGFuZGxlZCBieSB0aGUgcGFyc2VyXG4gICAgLy8gc2VwYXJhdGVseS5cbiAgICBsZXQgaW5saW5lID0gUFJJTUlUSVZFUy5pbmxpbmVGaWVsZC5wYXJzZSh2YWx1ZSk7XG4gICAgaWYgKGlubGluZS5zdGF0dXMpIHJldHVybiBpbmxpbmUudmFsdWU7XG4gICAgZWxzZSByZXR1cm4gdmFsdWU7XG59XG5cbi8qKiBFeHRyYWN0cyBpbmxpbmUgZmllbGRzIG9mIHRoZSBmb3JtICdba2V5OjogdmFsdWVdJyBmcm9tIGEgbGluZSBvZiB0ZXh0LiBUaGlzIGlzIGRvbmUgaW4gYSByZWxhdGl2ZWx5XG4gKiBcInJvYnVzdFwiIHdheSB0byBhdm9pZCBmYWlsaW5nIGR1ZSB0byBiYWQgbmVzdGluZyBvciBvdGhlciBpbnRlcmZlcmluZyBNYXJrZG93biBzeW1ib2xzOlxuICpcbiAqIC0gTG9vayBmb3IgYW55IHdyYXBwZXJzICgnWycgYW5kICcoJykgaW4gdGhlIGxpbmUsIHRyeWluZyB0byBwYXJzZSB3aGF0ZXZlciBjb21lcyBhZnRlciBpdCBhcyBhbiBpbmxpbmUga2V5OjouXG4gKiAtIElmIHN1Y2Nlc3NmdWwsIHNjYW4gdW50aWwgeW91IGZpbmQgYSBtYXRjaGluZyBlbmQgYnJhY2tldCwgYW5kIHBhcnNlIHdoYXRldmVyIHJlbWFpbnMgYXMgYW4gaW5saW5lIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdElubGluZUZpZWxkcyhsaW5lOiBzdHJpbmcsIGluY2x1ZGVUYXNrRmllbGRzOiBib29sZWFuID0gZmFsc2UpOiBMb2NhbElubGluZUZpZWxkW10ge1xuICAgIGxldCBmaWVsZHM6IExvY2FsSW5saW5lRmllbGRbXSA9IFtdO1xuICAgIGZvciAobGV0IHdyYXBwZXIgb2YgT2JqZWN0LmtleXMoSU5MSU5FX0ZJRUxEX1dSQVBQRVJTKSkge1xuICAgICAgICBsZXQgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyKTtcbiAgICAgICAgd2hpbGUgKGZvdW5kSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZEZpZWxkID0gZmluZFNwZWNpZmljSW5saW5lRmllbGQobGluZSwgZm91bmRJbmRleCk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgZm91bmRJbmRleCA9IGxpbmUuaW5kZXhPZih3cmFwcGVyLCBmb3VuZEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKHBhcnNlZEZpZWxkKTtcbiAgICAgICAgICAgIGZvdW5kSW5kZXggPSBsaW5lLmluZGV4T2Yod3JhcHBlciwgcGFyc2VkRmllbGQuZW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpbmNsdWRlVGFza0ZpZWxkcykgZmllbGRzID0gZmllbGRzLmNvbmNhdChleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZSkpO1xuXG4gICAgZmllbGRzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnQgLSBiLnN0YXJ0KTtcblxuICAgIGxldCBmaWx0ZXJlZEZpZWxkczogTG9jYWxJbmxpbmVGaWVsZFtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGkgPT0gMCB8fCBmaWx0ZXJlZEZpZWxkc1tmaWx0ZXJlZEZpZWxkcy5sZW5ndGggLSAxXS5lbmQgPCBmaWVsZHNbaV0uc3RhcnQpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkRmllbGRzLnB1c2goZmllbGRzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRGaWVsZHM7XG59XG5cbi8qKiBWYWxpZGF0ZXMgdGhhdCBhIHJhdyBmaWVsZCBuYW1lIGhhcyBhIHZhbGlkIGZvcm0uICovXG5jb25zdCBGVUxMX0xJTkVfS0VZX1BBUlQ6IFAuUGFyc2VyPHN0cmluZz4gPSBQLmFsdChcbiAgICBQLnJlZ2V4cChuZXcgUmVnRXhwKGVtb2ppUmVnZXgoKSwgXCJ1XCIpKSxcbiAgICBQLnJlZ2V4cCgvWzAtOVxccHtMZXR0ZXJ9XFx3XFxzXy8tXSsvdSlcbilcbiAgICAubWFueSgpXG4gICAgLm1hcCgocGFydHMpID0+IHBhcnRzLmpvaW4oXCJcIikpO1xuXG5jb25zdCBGVUxMX0xJTkVfS0VZX1BBUlNFUjogUC5QYXJzZXI8c3RyaW5nPiA9IFAucmVnZXhwKC9bXjAtOVxcd1xccHtMZXR0ZXJ9XSovdSlcbiAgICAudGhlbihGVUxMX0xJTkVfS0VZX1BBUlQpXG4gICAgLnNraXAoUC5yZWdleHAoL1tfXFwqfmBdKi91KSk7XG5cbi8qKiBBdHRlbXB0IHRvIGV4dHJhY3QgYSBmdWxsLWxpbmUgZmllbGQgKEtleTo6IFZhbHVlIGNvbnN1bWluZyB0aGUgZW50aXJlIGNvbnRlbnQgbGluZSkuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZ1bGxMaW5lRmllbGQodGV4dDogc3RyaW5nKTogTG9jYWxJbmxpbmVGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHNlcCA9IGZpbmRTZXBhcmF0b3IodGV4dCwgMCk7XG4gICAgaWYgKCFzZXApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXZSBuZWVkIHRvIHBvc3QtcHJvY2VzcyB0aGUga2V5IHRvIGRyb3AgdW5uZWNlc3Nhcnkgb3BlbmluZyBhbm5vdGF0aW9ucyBhcyB3ZWxsIGFzXG4gICAgLy8gZHJvcCBzdXJyb3VuZGluZyBNYXJrZG93bi5cbiAgICBsZXQgcmVhbEtleSA9IEZVTExfTElORV9LRVlfUEFSU0VSLnBhcnNlKHNlcC5rZXkpO1xuICAgIGlmICghcmVhbEtleS5zdGF0dXMpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IHJlYWxLZXkudmFsdWUsXG4gICAgICAgIHZhbHVlOiB0ZXh0LnN1YnN0cmluZyhzZXAudmFsdWVJbmRleCkudHJpbSgpLFxuICAgICAgICBzdGFydDogMCxcbiAgICAgICAgc3RhcnRWYWx1ZTogc2VwLnZhbHVlSW5kZXgsXG4gICAgICAgIGVuZDogdGV4dC5sZW5ndGgsXG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENSRUFURURfREFURV9SRUdFWCA9IC9cXHV7Mjc5NX1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IERVRV9EQVRFX1JFR0VYID0gLyg/OlxcdXsxRjRDNX18XFx1ezFGNEM2fXxcXHV7MUY1RDN9XFx1e0ZFMEZ9PylcXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IERPTkVfREFURV9SRUdFWCA9IC9cXHV7MjcwNX1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuZXhwb3J0IGNvbnN0IFNDSEVEVUxFRF9EQVRFX1JFR0VYID0gL1tcXHV7MjNGM31cXHV7MjMxQn1dXFxzKihcXGR7NH0tXFxkezJ9LVxcZHsyfSkvdTtcbmV4cG9ydCBjb25zdCBTVEFSVF9EQVRFX1JFR0VYID0gL1xcdXsxRjZFQn1cXHMqKFxcZHs0fS1cXGR7Mn0tXFxkezJ9KS91O1xuXG5leHBvcnQgY29uc3QgRU1PSklfUkVHRVhFUyA9IFtcbiAgICB7IHJlZ2V4OiBDUkVBVEVEX0RBVEVfUkVHRVgsIGtleTogXCJjcmVhdGVkXCIgfSxcbiAgICB7IHJlZ2V4OiBTVEFSVF9EQVRFX1JFR0VYLCBrZXk6IFwic3RhcnRcIiB9LFxuICAgIHsgcmVnZXg6IFNDSEVEVUxFRF9EQVRFX1JFR0VYLCBrZXk6IFwic2NoZWR1bGVkXCIgfSxcbiAgICB7IHJlZ2V4OiBEVUVfREFURV9SRUdFWCwga2V5OiBcImR1ZVwiIH0sXG4gICAgeyByZWdleDogRE9ORV9EQVRFX1JFR0VYLCBrZXk6IFwiY29tcGxldGlvblwiIH0sXG5dO1xuXG4vKiogUGFyc2Ugc3BlY2lhbCBjb21wbGV0ZWQvZHVlL2RvbmUgdGFzayBmaWVsZHMgd2hpY2ggYXJlIG1hcmtlZCB2aWEgZW1vamkuICovXG5mdW5jdGlvbiBleHRyYWN0U3BlY2lhbFRhc2tGaWVsZHMobGluZTogc3RyaW5nKTogTG9jYWxJbmxpbmVGaWVsZFtdIHtcbiAgICBsZXQgcmVzdWx0czogTG9jYWxJbmxpbmVGaWVsZFtdID0gW107XG5cbiAgICBmb3IgKGxldCB7IHJlZ2V4LCBrZXkgfSBvZiBFTU9KSV9SRUdFWEVTKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhsaW5lKTtcbiAgICAgICAgaWYgKCFtYXRjaCkgY29udGludWU7XG5cbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlOiBtYXRjaFsxXSxcbiAgICAgICAgICAgIHN0YXJ0OiBtYXRjaC5pbmRleCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IG1hdGNoLmluZGV4ICsgMSxcbiAgICAgICAgICAgIGVuZDogbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgsXG4gICAgICAgICAgICB3cmFwcGluZzogXCJlbW9qaS1zaG9ydGhhbmRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKiBTZXRzIG9yIHJlcGxhY2VzIHRoZSB2YWx1ZSBvZiBhbiBpbmxpbmUgZmllbGQ7IGlmIHRoZSB2YWx1ZSBpcyAndW5kZWZpbmVkJywgZGVsZXRlcyB0aGUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldElubGluZUZpZWxkKHNvdXJjZTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBleGlzdGluZyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMoc291cmNlKTtcbiAgICBsZXQgZXhpc3RpbmdLZXlzID0gZXhpc3RpbmcuZmlsdGVyKChmKSA9PiBmLmtleSA9PSBrZXkpO1xuXG4gICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBrZXlzIE9SIHRoZSBrZXkgYWxyZWFkeSBkb2Vzbid0IGV4aXN0LlxuICAgIGlmIChleGlzdGluZ0tleXMubGVuZ3RoID4gMiB8fCAoZXhpc3RpbmdLZXlzLmxlbmd0aCA9PSAwICYmICF2YWx1ZSkpIHJldHVybiBzb3VyY2U7XG4gICAgbGV0IGV4aXN0aW5nS2V5ID0gZXhpc3RpbmdLZXlzWzBdO1xuXG4gICAgbGV0IGFubm90YXRpb24gPSB2YWx1ZSA/IGBbJHtrZXl9OjogJHt2YWx1ZX1dYCA6IFwiXCI7XG4gICAgaWYgKGV4aXN0aW5nS2V5KSB7XG4gICAgICAgIGxldCBwcmVmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKDAsIGV4aXN0aW5nS2V5LnN0YXJ0KTtcbiAgICAgICAgbGV0IHN1ZmZpeCA9IHNvdXJjZS5zdWJzdHJpbmcoZXhpc3RpbmdLZXkuZW5kKTtcblxuICAgICAgICBpZiAoYW5ub3RhdGlvbikgcmV0dXJuIGAke3ByZWZpeH0ke2Fubm90YXRpb259JHtzdWZmaXh9YDtcbiAgICAgICAgZWxzZSByZXR1cm4gYCR7cHJlZml4fSR7c3VmZml4LnRyaW1TdGFydCgpfWA7XG4gICAgfSBlbHNlIGlmIChhbm5vdGF0aW9uKSB7XG4gICAgICAgIHJldHVybiBgJHtzb3VyY2UudHJpbUVuZCgpfSAke2Fubm90YXRpb259YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW1vamlTaG9ydGhhbmRDb21wbGV0aW9uRmllbGQoc291cmNlOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGV4dHJhY3RJbmxpbmVGaWVsZHMoc291cmNlLCB0cnVlKTtcbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBleGlzdGluZy5maWx0ZXIoKGYpID0+IGYua2V5ID09PSBcImNvbXBsZXRpb25cIiAmJiBmLndyYXBwaW5nID09PSBcImVtb2ppLXNob3J0aGFuZFwiKTtcblxuICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUga2V5cyBPUiB0aGUga2V5IGFscmVhZHkgZG9lc24ndCBleGlzdC5cbiAgICBpZiAoZXhpc3RpbmdLZXlzLmxlbmd0aCA+IDIgfHwgKGV4aXN0aW5nS2V5cy5sZW5ndGggPT0gMCAmJiAhdmFsdWUpKSByZXR1cm4gc291cmNlO1xuXG4gICAgLyogTm8gd3JhcHBlciwgYWRkIG93biBzcGFjaW5nIGF0IHN0YXJ0ICovXG4gICAgY29uc3QgYW5ub3RhdGlvbiA9IHZhbHVlID8gYCBcdTI3MDUgJHt2YWx1ZX1gIDogXCJcIjtcbiAgICBsZXQgZXhpc3RpbmdLZXkgPSBleGlzdGluZ0tleXNbMF07XG4gICAgaWYgKGV4aXN0aW5nS2V5KSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHNvdXJjZS5zdWJzdHJpbmcoMCwgZXhpc3RpbmdLZXkuc3RhcnQpO1xuICAgICAgICBjb25zdCBzdWZmaXggPSBzb3VyY2Uuc3Vic3RyaW5nKGV4aXN0aW5nS2V5LmVuZCk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXgudHJpbUVuZCgpfSR7YW5ub3RhdGlvbn0ke3N1ZmZpeH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHtzb3VyY2UudHJpbUVuZCgpfSR7YW5ub3RhdGlvbn1gO1xuICAgIH1cbn1cbiIsICIvKiogTWFwIHRoZSB2YWx1ZXMgb2YgYW4gb2JqZWN0LCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdFZhbHVlczxWLCBVPihvYmplY3Q6IFJlY29yZDxzdHJpbmcsIFY+LCBmdW5jOiAoeDogVikgPT4gVSk6IFJlY29yZDxzdHJpbmcsIFU+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFU+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqZWN0KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IGZ1bmModmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iLCAiaW1wb3J0IHsgTGluaywgSnNvbkxpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IERhdGVUaW1lLCBEdXJhdGlvbiB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIEpTT04tc2VyaWFsaXplZCBlcXVpdmFsZW50cyBmb3IgbGl0ZXJhbHMuICovXG5leHBvcnQgdHlwZSBKc29uTGl0ZXJhbCA9XG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgeyAkX3R5cGU6IFwiZGF0ZVwiOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB8IHsgJF90eXBlOiBcImR1cmF0aW9uXCI7IHZhbHVlOiBzdHJpbmcgfVxuICAgIHwgeyAkX3R5cGU6IFwibGlua1wiOyB2YWx1ZTogSnNvbkxpbmsgfVxuICAgIHwgQXJyYXk8SnNvbkxpdGVyYWw+XG4gICAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgfCBudWxsO1xuXG5leHBvcnQgbmFtZXNwYWNlIEpzb25Db252ZXJzaW9uIHtcbiAgICBleHBvcnQgY29uc3QgTk9PUF9OT1JNQUxJWkVSOiAoaW5wdXQ6IExpdGVyYWwpID0+IExpdGVyYWwgPSAoaW5wdXQpID0+IGlucHV0O1xuXG4gICAgLyoqIENvbnZlcnQgYSBsaXRlcmFsIHZhbHVlIHRvIGEgc2FmZSwgcGVyc2lzdGVudCBKU09OIGVxdWl2YWxlbnQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGpzb24obGl0ZXJhbDogTGl0ZXJhbCk6IEpzb25MaXRlcmFsIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IExpdGVyYWxzLndyYXBWYWx1ZShsaXRlcmFsKTtcbiAgICAgICAgaWYgKCF3cmFwcGVkKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBzd2l0Y2ggKHdyYXBwZWQ/LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcChKc29uQ29udmVyc2lvbi5qc29uKTtcbiAgICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwT2JqZWN0VmFsdWVzKHdyYXBwZWQudmFsdWUsIEpzb25Db252ZXJzaW9uLmpzb24pO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyAkX3R5cGU6IFwiZGF0ZVwiLCB2YWx1ZTogd3JhcHBlZC52YWx1ZS50b0lTTyh7IGV4dGVuZGVkWm9uZTogdHJ1ZSwgaW5jbHVkZU9mZnNldDogdHJ1ZSB9KSB9O1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyAkX3R5cGU6IFwibGlua1wiLCB2YWx1ZTogd3JhcHBlZC52YWx1ZS50b09iamVjdCgpIH07XG4gICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyAkX3R5cGU6IFwiZHVyYXRpb25cIiwgdmFsdWU6IHdyYXBwZWQudmFsdWUudG9JU08oKSB9O1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBKU09OIGxpdGVyYWwgdG8gaXQncyBjb3JyZXNwb25kaW5nIGh5ZHJhdGVkIHZhbHVlLCBvcHRpb25hbGx5IGFwcGx5aW5nXG4gICAgICogYSBub3JtYWxpemF0aW9uIHN0ZXAgdG8gdGhlIHJlc3VsdGluZyB2YWx1ZSBhbmQgYW55IGxpdGVyYWxzIGNvbnRhaW5lZCB3aXRoaW4gaXRcbiAgICAgKiAoc3VjaCBhcyBpZiB0aGUgbGl0ZXJhbCBpcyBhIGxpc3Qgb3Igb2JqZWN0KS5cbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gdmFsdWUoanNvbjogSnNvbkxpdGVyYWwsIG5vcm1hbGl6ZXI6IChpbnB1dDogTGl0ZXJhbCkgPT4gTGl0ZXJhbCA9IE5PT1BfTk9STUFMSVpFUik6IExpdGVyYWwge1xuICAgICAgICBpZiAoanNvbiA9PT0gbnVsbCB8fCBqc29uID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplcihqc29uLm1hcCgoaW5wdXQpID0+IEpzb25Db252ZXJzaW9uLnZhbHVlKGlucHV0LCBub3JtYWxpemVyKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc29uID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAoIShcIiRfdHlwZVwiIGluIGpzb24pKVxuICAgICAgICAgICAgICAgIHJldHVybiBtYXBPYmplY3RWYWx1ZXMoanNvbiwgKHYpID0+IEpzb25Db252ZXJzaW9uLnZhbHVlKHYgYXMgSnNvbkxpdGVyYWwsIG5vcm1hbGl6ZXIpKTtcblxuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGpzb25bXCIkX3R5cGVcIl07XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplcihEYXRlVGltZS5mcm9tSVNPKGpzb24udmFsdWUpKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoRHVyYXRpb24uZnJvbUlTTyhqc29uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGpzb24udmFsdWUpKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBzZXJpYWxpemVkIHR5cGUgJyR7dHlwZX0nIWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJpbWl0aXZlIHR5cGUsIHJldHVybiBhcyBpcy5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZXIoanNvbiBhcyBMaXRlcmFsKTtcbiAgICB9XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuaW1wb3J0IHsgTGluaywgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBnZXRGaWxlVGl0bGUgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7XG4gICAgRklMRV9UWVBFLFxuICAgIEZpbGUsXG4gICAgSW5kZXhhYmxlLFxuICAgIExJTktBQkxFX1RZUEUsXG4gICAgTElOS0JFQVJJTkdfVFlQRSxcbiAgICBMaW5rYWJsZSxcbiAgICBMaW5rYmVhcmluZyxcbiAgICBUQUdHQUJMRV9UWVBFLFxuICAgIFRhZ2dhYmxlLFxufSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHtcbiAgICBFeHRyYWN0b3JzLFxuICAgIEZJRUxEQkVBUklOR19UWVBFLFxuICAgIEZpZWxkLFxuICAgIEZpZWxkRXh0cmFjdG9yLFxuICAgIEZpZWxkYmVhcmluZyxcbiAgICBGaWVsZGJlYXJpbmdzLFxufSBmcm9tIFwiLi4vLi4vZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgSW5saW5lRmllbGQsIGpzb25JbmxpbmVGaWVsZCwgdmFsdWVJbmxpbmVGaWVsZCB9IGZyb20gXCJpbmRleC9pbXBvcnQvaW5saW5lLWZpZWxkXCI7XG5pbXBvcnQge1xuICAgIExpbmVTcGFuLFxuICAgIEpzb25NYXJrZG93blBhZ2UsXG4gICAgSnNvbk1hcmtkb3duU2VjdGlvbixcbiAgICBKc29uTWFya2Rvd25CbG9jayxcbiAgICBKc29uTWFya2Rvd25MaXN0QmxvY2ssXG4gICAgSnNvbk1hcmtkb3duTGlzdEl0ZW0sXG4gICAgSnNvbk1hcmtkb3duVGFza0l0ZW0sXG4gICAgSnNvbk1hcmtkb3duRGF0YWJsb2NrIGFzIEpzb25NYXJrZG93bkRhdGFibG9jayxcbiAgICBKc29uTWFya2Rvd25Db2RlYmxvY2ssXG4gICAgSnNvbkZyb250bWF0dGVyRW50cnksXG59IGZyb20gXCIuL2pzb24vbWFya2Rvd25cIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5pbXBvcnQgeyBKc29uQ29udmVyc2lvbiB9IGZyb20gXCIuL2pzb24vY29tbW9uXCI7XG5cbi8qKiBBIG1hcmtkb3duIGZpbGUgaW4gdGhlIHZhdWx0OyB0aGUgc291cmNlIG9mIG1vc3QgbWV0YWRhdGEuICovXG5leHBvcnQgY2xhc3MgTWFya2Rvd25QYWdlIGltcGxlbWVudHMgRmlsZSwgTGlua2JlYXJpbmcsIFRhZ2dhYmxlLCBJbmRleGFibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgLyoqIEFsbCBvZiB0aGUgdHlwZXMgdGhhdCBhIG1hcmtkb3duIGZpbGUgaXMuICovXG4gICAgc3RhdGljIFRZUEVTID0gW0ZJTEVfVFlQRSwgXCJtYXJrZG93blwiLCBcInBhZ2VcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgLy8gVXNlIHN0YXRpYyB0eXBlcyBmb3IgYWxsIG1hcmtkb3duIGZpbGVzLlxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93blBhZ2UuVFlQRVM7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIlBhZ2VcIjtcblxuICAgIC8vIE1hcmtkb3duIGZpbGUgSURzIGFyZSBhbHdheXMganVzdCB0aGUgZnVsbCBwYXRoLlxuICAgIGdldCAkaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwYXRoO1xuICAgIH1cbiAgICAvLyBUaGUgZmlsZSBvZiBhIGZpbGUgaXMuLi4gaXQncyBmaWxlLlxuICAgIGdldCAkZmlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBhdGg7XG4gICAgfVxuXG4gICAgLyoqIEZyb250bWF0dGVyIHZhbHVlcyBpbiB0aGUgZmlsZSwgaWYgcHJlc2VudC4gTWFwcyBsb3dlciBjYXNlIGZyb250bWF0dGVyIGtleSAtPiBlbnRyeS4gKi9cbiAgICAkZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PjtcbiAgICAvKiogTWFwIG9mIGFsbCBkaXN0aW5jdCBpbmxpbmUgZmllbGRzIGluIHRoZSBkb2N1bWVudC4gTWFwcyBsb3dlciBjYXNlIGtleSBuYW1lIC0+IGZ1bGwgbWV0YWRhdGEuICovXG4gICAgJGluZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD47XG5cbiAgICAvKiogVGhlIHBhdGggdGhpcyBmaWxlIGV4aXN0cyBhdC4gKi9cbiAgICAkcGF0aDogc3RyaW5nO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgY3JlYXRlZC4gKi9cbiAgICAkY3RpbWU6IERhdGVUaW1lO1xuICAgIC8qKiBPYnNpZGlhbi1wcm92aWRlZCBkYXRlIHRoaXMgcGFnZSB3YXMgbW9kaWZpZWQuICovXG4gICAgJG10aW1lOiBEYXRlVGltZTtcbiAgICAvKiogVGhlIGV4dGVuc2lvbjsgZm9yIG1hcmtkb3duIGZpbGVzLCBhbG1vc3QgYWx3YXlzICcubWQnLiAqL1xuICAgICRleHRlbnNpb246IHN0cmluZztcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgc2l6ZSBvZiB0aGlzIHBhZ2UgaW4gYnl0ZXMuICovXG4gICAgJHNpemU6IG51bWJlciA9IDA7XG4gICAgLyoqIFRoZSBmdWxsIGV4dGVudCBvZiB0aGUgZmlsZSAoc3RhcnQgMCwgZW5kIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGZpbGUuKSAqL1xuICAgICRwb3NpdGlvbjogTGluZVNwYW47XG4gICAgLyoqIFRoZSBleGFjdCB0YWdzIGluIHRoZSBmaWxlLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKlxuICAgICAqIEFsbCBjaGlsZCBtYXJrZG93biBzZWN0aW9ucyBvZiB0aGlzIG1hcmtkb3duIGZpbGUuIFRoZSBpbml0aWFsIHNlY3Rpb24gYmVmb3JlIGFueSBjb250ZW50IGlzIHNwZWNpYWwgYW5kIGlzXG4gICAgICogbmFtZWQgd2l0aCB0aGUgdGl0bGUgb2YgdGhlIGZpbGUuXG4gICAgICovXG4gICAgJHNlY3Rpb25zOiBNYXJrZG93blNlY3Rpb25bXSA9IFtdO1xuXG4gICAgLyoqIENyZWF0ZSBhIG1hcmtkb3duIGZpbGUgZnJvbSB0aGUgZ2l2ZW4gcmF3IHZhbHVlcy4gKi9cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25NYXJrZG93blBhZ2UsIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyID0gTk9PUF9OT1JNQUxJWkVSKTogTWFya2Rvd25QYWdlIHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSByYXcuJHNlY3Rpb25zLm1hcCgoc2VjdCkgPT4gTWFya2Rvd25TZWN0aW9uLmZyb20oc2VjdCwgcmF3LiRwYXRoLCBub3JtYWxpemVyKSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blBhZ2Uoe1xuICAgICAgICAgICAgJHBhdGg6IHJhdy4kcGF0aCxcbiAgICAgICAgICAgICRmcm9udG1hdHRlcjogcmF3LiRmcm9udG1hdHRlclxuICAgICAgICAgICAgICAgID8gbWFwT2JqZWN0VmFsdWVzKHJhdy4kZnJvbnRtYXR0ZXIsIChmbSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVGcm9udG1hdHRlckVudHJ5KGZtKSwgbm9ybWFsaXplcikpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhyYXcuJGluZmllbGRzLCAoZmllbGQpID0+IG5vcm1hbGl6ZUxpbmtzKHZhbHVlSW5saW5lRmllbGQoZmllbGQpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkY3RpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRjdGltZSksXG4gICAgICAgICAgICAkbXRpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRtdGltZSksXG4gICAgICAgICAgICAkZXh0ZW5zaW9uOiByYXcuJGV4dGVuc2lvbixcbiAgICAgICAgICAgICRzaXplOiByYXcuJHNpemUsXG4gICAgICAgICAgICAkcG9zaXRpb246IHJhdy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogcmF3LiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiByYXcuJGxpbmtzLm1hcCgobGluaykgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobGluaykpKSxcbiAgICAgICAgICAgICRzZWN0aW9uczogc2VjdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxNYXJrZG93blBhZ2U+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBkb2N1bWVudC4gKi9cbiAgICBnZXQgJGxpbmVDb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBvc2l0aW9uLmVuZDtcbiAgICB9XG5cbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGZpbGUuICovXG4gICAgZ2V0ICRuYW1lKCkge1xuICAgICAgICByZXR1cm4gZ2V0RmlsZVRpdGxlKHRoaXMuJHBhdGgpO1xuICAgIH1cblxuICAgIC8qKiBBIGxpbmsgdG8gdGhpcyBmaWxlLiAqL1xuICAgIGdldCAkbGluaygpIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZSh0aGlzLiRwYXRoKTtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCk6IEZpZWxkW10ge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25QYWdlLkZJRUxEX0RFRih0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSBmdWxsIGZpZWxkIGRlZmluaXRpb24gZm9yIHRoZSBnaXZlbiBmaWVsZC4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpOiBGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBNYXJrZG93blBhZ2UuRklFTERfREVGKHRoaXMsIGtleSk/LlswXTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkLiAqL1xuICAgIHB1YmxpYyB2YWx1ZShrZXk6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZChrZXkpPy52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQ29udmVydCB0aGlzIHBhZ2UgaW50byBpdCdzIHBhcnRpYWwgcmVwcmVzZW50YXRpb24gZm9yIHNhdmluZy4gKi9cbiAgICBwdWJsaWMganNvbigpOiBKc29uTWFya2Rvd25QYWdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwYXRoOiB0aGlzLiRwYXRoLFxuICAgICAgICAgICAgJGZyb250bWF0dGVyOiB0aGlzLiRmcm9udG1hdHRlciA/IG1hcE9iamVjdFZhbHVlcyh0aGlzLiRmcm9udG1hdHRlciwganNvbkZyb250bWF0dGVyRW50cnkpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJGluZmllbGRzOiBtYXBPYmplY3RWYWx1ZXModGhpcy4kaW5maWVsZHMsIGpzb25JbmxpbmVGaWVsZCksXG4gICAgICAgICAgICAkY3RpbWU6IHRoaXMuJGN0aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkbXRpbWU6IHRoaXMuJG10aW1lLnRvTWlsbGlzKCksXG4gICAgICAgICAgICAkZXh0ZW5zaW9uOiB0aGlzLiRleHRlbnNpb24sXG4gICAgICAgICAgICAkc2l6ZTogdGhpcy4kc2l6ZSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogdGhpcy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogdGhpcy4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogdGhpcy4kbGlua3MubWFwKChsaW5rKSA9PiBsaW5rLnRvT2JqZWN0KCkpLFxuICAgICAgICAgICAgJHNlY3Rpb25zOiB0aGlzLiRzZWN0aW9ucy5tYXAoKHNlY3QpID0+IHNlY3QuanNvbigpKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPE1hcmtkb3duUGFnZT4gPSBFeHRyYWN0b3JzLm1lcmdlKFxuICAgICAgICBFeHRyYWN0b3JzLmludHJpbnNpY3MoKSxcbiAgICAgICAgRXh0cmFjdG9ycy5mcm9udG1hdHRlcigoZikgPT4gZi4kZnJvbnRtYXR0ZXIpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1hcmtkb3duU2VjdGlvbiBpbXBsZW1lbnRzIEluZGV4YWJsZSwgVGFnZ2FibGUsIExpbmthYmxlLCBMaW5rYmVhcmluZywgRmllbGRiZWFyaW5nIHtcbiAgICAvKiogQWxsIG9mIHRoZSB0eXBlcyB0aGF0IGEgbWFya2Rvd24gc2VjdGlvbiBpcy4gKi9cbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJtYXJrZG93blwiLCBcInNlY3Rpb25cIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgLyoqIFBhdGggb2YgdGhlIGZpbGUgdGhhdCB0aGlzIHNlY3Rpb24gaXMgaW4uICovXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duU2VjdGlvbi5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiU2VjdGlvblwiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGluZGV4IG9mIHRoaXMgc2VjdGlvbiBpbiB0aGUgZmlsZS4gKi9cbiAgICAkb3JkaW5hbDogbnVtYmVyO1xuICAgIC8qKiBUaGUgdGl0bGUgb2YgdGhlIHNlY3Rpb247IHRoZSByb290IChpbXBsaWNpdCkgc2VjdGlvbiB3aWxsIGhhdmUgdGhlIHRpdGxlIG9mIHRoZSBwYWdlLiAqL1xuICAgICR0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgaW5kZW50YXRpb24gbGV2ZWwgb2YgdGhlIHNlY3Rpb24gKDEgLSA2KS4gKi9cbiAgICAkbGV2ZWw6IG51bWJlcjtcbiAgICAvKiogVGhlIHNwYW4gb2YgbGluZXMgaW5kaWNhdGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlY3Rpb24uICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQWxsIHRhZ3Mgb24gdGhlIGZpbGUuICovXG4gICAgJHRhZ3M6IHN0cmluZ1tdO1xuICAgIC8qKiBBbGwgbGlua3MgaW4gdGhlIGZpbGUuICovXG4gICAgJGxpbmtzOiBMaW5rW107XG4gICAgLyoqIEFsbCBvZiB0aGUgbWFya2Rvd24gYmxvY2tzIGluIHRoaXMgc2VjdGlvbi4gKi9cbiAgICAkYmxvY2tzOiBNYXJrZG93bkJsb2NrW107XG4gICAgLyoqIE1hcCBvZiBhbGwgZGlzdGluY3QgaW5saW5lIGZpZWxkcyBpbiB0aGUgZG9jdW1lbnQsIGZyb20ga2V5IG5hbWUgLT4gbWV0YWRhdGEuICovXG4gICAgJGluZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD47XG5cbiAgICAvKiogQ29udmVydCByYXcgbWFya2Rvd24gc2VjdGlvbiBkYXRhIHRvIHRoZSBhcHByb3ByaWF0ZSBjbGFzcy4gKi9cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25NYXJrZG93blNlY3Rpb24sIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVIpOiBNYXJrZG93blNlY3Rpb24ge1xuICAgICAgICBjb25zdCBibG9ja3MgPSByYXcuJGJsb2Nrcy5tYXAoKGJsb2NrKSA9PiBNYXJrZG93bkJsb2NrLmZyb20oYmxvY2ssIGZpbGUsIG5vcm1hbGl6ZXIpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blNlY3Rpb24oe1xuICAgICAgICAgICAgJGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAkaWQ6IE1hcmtkb3duU2VjdGlvbi5yZWFkYWJsZUlkKGZpbGUsIHJhdy4kdGl0bGUsIHJhdy4kb3JkaW5hbCksXG4gICAgICAgICAgICAkb3JkaW5hbDogcmF3LiRvcmRpbmFsLFxuICAgICAgICAgICAgJHRpdGxlOiByYXcuJHRpdGxlLFxuICAgICAgICAgICAgJGxldmVsOiByYXcuJGxldmVsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiByYXcuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IHJhdy4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogcmF3LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkYmxvY2tzOiBibG9ja3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhyYXcuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8TWFya2Rvd25TZWN0aW9uPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgc2VjdGlvbi4gKi9cbiAgICBnZXQgJGxpbmVDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy4kcG9zaXRpb24uZW5kIC0gdGhpcy4kcG9zaXRpb24uc3RhcnQ7XG4gICAgfVxuXG4gICAgLyoqIEFsaWFzIGZvciB0aXRsZSB3aGljaCBhbGxvd3Mgc2VhcmNoaW5nIG92ZXIgcGFnZXMgYW5kIHNlY3Rpb25zIGJ5ICduYW1lJy4gKi9cbiAgICBnZXQgJG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHRpdGxlO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBsaW5rIHRvIHRoaXMgc2VjdGlvbi4gKi9cbiAgICBnZXQgJGxpbmsoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmhlYWRlcih0aGlzLiRmaWxlLCB0aGlzLiR0aXRsZSk7XG4gICAgfVxuXG4gICAgLyoqIEFsbCBvZiB0aGUgaW5kZXhlZCBmaWVsZHMgaW4gdGhpcyBvYmplY3QuICovXG4gICAgZ2V0IGZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duU2VjdGlvbi5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEZldGNoIGEgc3BlY2lmaWMgZmllbGQgYnkga2V5LiAqL1xuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZyk6IEZpZWxkIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duU2VjdGlvbi5GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duU2VjdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkb3JkaW5hbDogdGhpcy4kb3JkaW5hbCxcbiAgICAgICAgICAgICR0aXRsZTogdGhpcy4kdGl0bGUsXG4gICAgICAgICAgICAkbGV2ZWw6IHRoaXMuJGxldmVsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiB0aGlzLiRwb3NpdGlvbixcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLiRsaW5rcy5tYXAoKGxpbmspID0+IGxpbmsudG9PYmplY3QoKSksXG4gICAgICAgICAgICAkYmxvY2tzOiB0aGlzLiRibG9ja3MubWFwKChibG9jaykgPT4gYmxvY2suanNvbigpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIEZJRUxEX0RFRjogRmllbGRFeHRyYWN0b3I8TWFya2Rvd25TZWN0aW9uPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcblxuICAgIC8qKiBHZW5lcmF0ZSBhIHJlYWRhYmxlIElEIGZvciB0aGlzIHNlY3Rpb24gdXNpbmcgdGhlIGZpcnN0IDggY2hhcmFjdGVycyBvZiB0aGUgc3RyaW5nIGFuZCB0aGUgb3JkaW5hbC4gKi9cbiAgICBzdGF0aWMgcmVhZGFibGVJZChmaWxlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9yZGluYWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpcnN0OCA9IHRpdGxlLnN1YnN0cmluZygwLCBNYXRoLm1pbih0aXRsZS5sZW5ndGgsIDgpKS5yZXBsYWNlKC9bXkEtWmEtejAtOS1fXSsvZ2ksIFwiLVwiKTtcblxuICAgICAgICByZXR1cm4gYCR7ZmlsZX0vc2VjdGlvbiR7b3JkaW5hbH0vJHtmaXJzdDh9YDtcbiAgICB9XG59XG5cbi8qKiBCYXNlIGNsYXNzIGZvciBhbGwgbWFya2Rvd24gYmxvY2tzLiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBJbmRleGFibGUsIExpbmtiZWFyaW5nLCBUYWdnYWJsZSwgRmllbGRiZWFyaW5nIHtcbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJtYXJrZG93blwiLCBcImJsb2NrXCIsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93bkJsb2NrLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJCbG9ja1wiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGluZGV4IG9mIHRoaXMgYmxvY2sgaW4gdGhlIGZpbGUuICovXG4gICAgJG9yZGluYWw6IG51bWJlcjtcbiAgICAvKiogVGhlIHBvc2l0aW9uL2V4dGVudCBvZiB0aGUgYmxvY2suICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQWxsIHRhZ3Mgb24gdGhlIGJsb2NrLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKiBNYXAgb2YgYWxsIGRpc3RpbmN0IGlubGluZSBmaWVsZHMgaW4gdGhlIGRvY3VtZW50LCBmcm9tIGtleSBuYW1lIC0+IG1ldGFkYXRhLiAqL1xuICAgICRpbmZpZWxkczogUmVjb3JkPHN0cmluZywgSW5saW5lRmllbGQ+O1xuICAgIC8qKiBJZiBwcmVzZW50LCB0aGUgZGlzdGluY3QgYmxvY2sgSUQgZm9yIHRoaXMgYmxvY2suICovXG4gICAgJGJsb2NrSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJsb2NrIC0gcGFyYWdyYXBoLCBsaXN0LCBhbmQgc28gb24uICovXG4gICAgJHR5cGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tKG9iamVjdDogSnNvbk1hcmtkb3duQmxvY2ssIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVIpOiBNYXJrZG93bkJsb2NrIHtcbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJsaXN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXJrZG93bkxpc3RCbG9jay5mcm9tKG9iamVjdCBhcyBKc29uTWFya2Rvd25MaXN0QmxvY2ssIGZpbGUsIG5vcm1hbGl6ZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJkYXRhYmxvY2tcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hcmtkb3duRGF0YWJsb2NrLmZyb20ob2JqZWN0IGFzIEpzb25NYXJrZG93bkRhdGFibG9jaywgZmlsZSwgbm9ybWFsaXplcik7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LiR0eXBlID09PSBcImNvZGVibG9ja1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gTWFya2Rvd25Db2RlYmxvY2suZnJvbShvYmplY3QgYXMgSnNvbk1hcmtkb3duQ29kZWJsb2NrLCBmaWxlLCBub3JtYWxpemVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgTWFya2Rvd25CbG9jayh7XG4gICAgICAgICAgICAkZmlsZTogZmlsZSxcbiAgICAgICAgICAgICRpZDogTWFya2Rvd25CbG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kb3JkaW5hbCksXG4gICAgICAgICAgICAkb3JkaW5hbDogb2JqZWN0LiRvcmRpbmFsLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IG9iamVjdC4kdGFncyxcbiAgICAgICAgICAgICRsaW5rczogb2JqZWN0LiRsaW5rcy5tYXAoKGwpID0+IG5vcm1hbGl6ZXIoTGluay5mcm9tT2JqZWN0KGwpKSksXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICR0eXBlOiBvYmplY3QuJHR5cGUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duQmxvY2s+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIElmIHRoaXMgYmxvY2sgaGFzIGEgYmxvY2sgSUQsIHRoZSBsaW5rIHRvIHRoaXMgYmxvY2suICovXG4gICAgZ2V0ICRsaW5rKCk6IExpbmsgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy4kYmxvY2tJZCkgcmV0dXJuIExpbmsuYmxvY2sodGhpcy4kZmlsZSwgdGhpcy4kYmxvY2tJZCk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25CbG9jay5GSUVMRF9ERUYodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEZldGNoIGEgc3BlY2lmaWMgZmllbGQgYnkga2V5LiAqL1xuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25CbG9jay5GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duQmxvY2sge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJG9yZGluYWw6IHRoaXMuJG9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IHRoaXMuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMuJHRhZ3MsXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMuJGxpbmtzLm1hcCgobCkgPT4gbC50b09iamVjdCgpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IHRoaXMuJGJsb2NrSWQsXG4gICAgICAgICAgICAkdHlwZTogdGhpcy4kdHlwZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkJsb2NrPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpLFxuICAgICAgICBFeHRyYWN0b3JzLmlubGluZUZpZWxkcygoZikgPT4gZi4kaW5maWVsZHMpXG4gICAgKTtcblxuICAgIC8qKiBHZW5lcmF0ZSBhIHJlYWRhYmxlIElEIGZvciB0aGlzIGJsb2NrIHVzaW5nIHRoZSBvcmRpbmFsIG9mIHRoZSBibG9jay4gKi9cbiAgICBzdGF0aWMgcmVhZGFibGVJZChmaWxlOiBzdHJpbmcsIG9yZGluYWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtmaWxlfS9ibG9jayR7b3JkaW5hbH1gO1xuICAgIH1cbn1cblxuLyoqIFNwZWNpYWwgYmxvY2sgZm9yIG1hcmtkb3duIGxpc3RzIChvZiBlaXRoZXIgcGxhaW4gbGlzdCBlbnRyaWVzIG9yIHRhc2tzKS4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkxpc3RCbG9jayBleHRlbmRzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBUYWdnYWJsZSwgTGlua2JlYXJpbmcge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcIm1hcmtkb3duXCIsIFwiYmxvY2tcIiwgXCJibG9jay1saXN0XCIsIFRBR0dBQkxFX1RZUEUsIExJTktCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duTGlzdEJsb2NrLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJMaXN0IEJsb2NrXCI7XG5cbiAgICAvKiogVGhlIGxpc3QgaXRlbXMgaW5zaWRlIG9mIHRoaXMgYmxvY2suICovXG4gICAgJGVsZW1lbnRzOiBNYXJrZG93bkxpc3RJdGVtW107XG5cbiAgICAvKiogQ3JlYXRlIGEgbGlzdCBibG9jayBmcm9tIGEgc2VyaWFsaXplZCB2YWx1ZS4gKi9cbiAgICBzdGF0aWMgZnJvbShcbiAgICAgICAgb2JqZWN0OiBKc29uTWFya2Rvd25MaXN0QmxvY2ssXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkxpc3RCbG9jayB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gb2JqZWN0LiRlbGVtZW50cy5tYXAoKGVsZW0pID0+IE1hcmtkb3duTGlzdEl0ZW0uZnJvbShlbGVtLCBmaWxlLCBub3JtYWxpemVyKSk7XG4gICAgICAgIHJldHVybiBuZXcgTWFya2Rvd25MaXN0QmxvY2soe1xuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBpcyBzaGFyZWQgd2l0aCBvdGhlciBibG9ja3MsIHNob3VsZCBwcm9iYWJseSBiZSBmaXhlZC5cbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkJsb2NrLnJlYWRhYmxlSWQoZmlsZSwgb2JqZWN0LiRvcmRpbmFsKSxcbiAgICAgICAgICAgICRvcmRpbmFsOiBvYmplY3QuJG9yZGluYWwsXG4gICAgICAgICAgICAkcG9zaXRpb246IG9iamVjdC4kcG9zaXRpb24sXG4gICAgICAgICAgICAkdGFnczogb2JqZWN0LiR0YWdzLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobCkgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobCkpKSxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKG9iamVjdC4kaW5maWVsZHMsIChpKSA9PiBub3JtYWxpemVMaW5rcyh2YWx1ZUlubGluZUZpZWxkKGkpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkYmxvY2tJZDogb2JqZWN0LiRibG9ja0lkLFxuICAgICAgICAgICAgJGVsZW1lbnRzOiBlbGVtZW50cyxcbiAgICAgICAgICAgICR0eXBlOiBcImxpc3RcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duTGlzdEJsb2NrIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gZWxlbS5qc29uKCkpLFxuICAgICAgICB9KSBhcyBKc29uTWFya2Rvd25MaXN0QmxvY2s7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8TWFya2Rvd25MaXN0QmxvY2s+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cbn1cblxuLyoqIEEgYmxvY2sgY29udGFpbmluZyBtYXJrZG93biBjb2RlLiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duQ29kZWJsb2NrIGV4dGVuZHMgTWFya2Rvd25CbG9jayBpbXBsZW1lbnRzIEluZGV4YWJsZSwgRmllbGRiZWFyaW5nLCBMaW5rYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJibG9ja1wiLCBcImNvZGVibG9ja1wiLCBUQUdHQUJMRV9UWVBFLCBMSU5LQkVBUklOR19UWVBFLCBGSUVMREJFQVJJTkdfVFlQRV07XG5cbiAgICAkdHlwZXM6IHN0cmluZ1tdID0gTWFya2Rvd25Db2RlYmxvY2suVFlQRVM7XG4gICAgJGxhbmd1YWdlczogc3RyaW5nW107XG4gICAgJGNvbnRlbnRQb3NpdGlvbjogeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9O1xuICAgICRzdHlsZTogXCJmZW5jZWRcIiB8IFwiaW5kZW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxNYXJrZG93bkNvZGVibG9jaz4pIHtcbiAgICAgICAgc3VwZXIoaW5pdCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb20oXG4gICAgICAgIG9iamVjdDogSnNvbk1hcmtkb3duQ29kZWJsb2NrLFxuICAgICAgICBmaWxlOiBzdHJpbmcsXG4gICAgICAgIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyID0gTk9PUF9OT1JNQUxJWkVSXG4gICAgKTogTWFya2Rvd25Db2RlYmxvY2sge1xuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duQ29kZWJsb2NrKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkNvZGVibG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kcG9zaXRpb24uc3RhcnQpLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJG9yZGluYWw6IG9iamVjdC4kb3JkaW5hbCxcbiAgICAgICAgICAgICR0eXBlbmFtZTogXCJDb2RlYmxvY2tcIixcbiAgICAgICAgICAgICR0eXBlOiBcImNvZGVibG9ja1wiLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICRsYW5ndWFnZXM6IG9iamVjdC4kbGFuZ3VhZ2VzLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobGluaykgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobGluaykpKSxcbiAgICAgICAgICAgICR0YWdzOiBvYmplY3QuJHRhZ3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCB2YWx1ZUlubGluZUZpZWxkKSxcbiAgICAgICAgICAgICRjb250ZW50UG9zaXRpb246IG9iamVjdC4kY29udGVudFBvc2l0aW9uLFxuICAgICAgICAgICAgJHN0eWxlOiBvYmplY3QuJHN0eWxlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQWxsIG9mIHRoZSBpbmRleGVkIGZpZWxkcyBpbiB0aGlzIG9iamVjdC4gKi9cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gTWFya2Rvd25Db2RlYmxvY2suU1VCX0ZJRUxEX0RFRih0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogRmV0Y2ggYSBzcGVjaWZpYyBmaWVsZCBieSBrZXkuICovXG4gICAgcHVibGljIGZpZWxkKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBNYXJrZG93bkNvZGVibG9jay5TVUJfRklFTERfREVGKHRoaXMsIGtleSk/LlswXSA/PyBGaWVsZGJlYXJpbmdzLmdldFdpdGhEZWZhdWx0KHRoaXMsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlKGtleTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKGtleSk/LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkNvZGVibG9jayB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN1cGVyLmpzb24oKSwge1xuICAgICAgICAgICAgJGxhbmd1YWdlczogdGhpcy4kbGFuZ3VhZ2VzLFxuICAgICAgICAgICAgJGNvbnRlbnRQb3NpdGlvbjogdGhpcy4kY29udGVudFBvc2l0aW9uLFxuICAgICAgICAgICAgJHN0eWxlOiB0aGlzLiRzdHlsZSxcbiAgICAgICAgfSkgYXMgSnNvbk1hcmtkb3duQ29kZWJsb2NrO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkYWJsZUlkKGZpbGU6IHN0cmluZywgbGluZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2ZpbGV9L2NvZGVibG9jayR7bGluZX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBTVUJfRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkNvZGVibG9jaz4gPSBFeHRyYWN0b3JzLm1lcmdlPE1hcmtkb3duQ29kZWJsb2NrPihcbiAgICAgICAgTWFya2Rvd25CbG9jay5GSUVMRF9ERUZcbiAgICApO1xufVxuXG4vKiogQSBkYXRhLWFubm90YXRlZCBZQU1MIGNvZGVibG9jay4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkRhdGFibG9jayBleHRlbmRzIE1hcmtkb3duQmxvY2sgaW1wbGVtZW50cyBJbmRleGFibGUsIEZpZWxkYmVhcmluZywgTGlua2JlYXJpbmcge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcIm1hcmtkb3duXCIsIFwiYmxvY2tcIiwgXCJkYXRhYmxvY2tcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0JFQVJJTkdfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duRGF0YWJsb2NrLlRZUEVTO1xuICAgICRkYXRhOiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duRGF0YWJsb2NrPikge1xuICAgICAgICBzdXBlcihpbml0KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShcbiAgICAgICAgb2JqZWN0OiBKc29uTWFya2Rvd25EYXRhYmxvY2ssXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkRhdGFibG9jayB7XG4gICAgICAgIC8vIERhdGFibG9ja3MgYXJlIGJhc2VkIG9uIHdoYXQgaXMgZXNzZW50aWFsbHkganVzdCBmcm9udG1hdHRlcjsgd2UgY2FuIGFwcGx5XG4gICAgICAgIC8vIHRoZSBzYW1lIG5vcm1hbGl6YXRpb24gbG9naWMgdG8gdGhlbS5cbiAgICAgICAgY29uc3Qgbm9ybWRhdGEgPSBub3JtYWxpemVMaW5rcyhtYXBPYmplY3RWYWx1ZXMob2JqZWN0LiRkYXRhLCB2YWx1ZUZyb250bWF0dGVyRW50cnkpLCBub3JtYWxpemVyKTtcbiAgICAgICAgY29uc3QgbGlua3MgPSBnYXRoZXJMaW5rcyhub3JtZGF0YSk7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBnYXRoZXJUYWdzKG5vcm1kYXRhKTtcblxuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duRGF0YWJsb2NrKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkRhdGFibG9jay5yZWFkYWJsZUlkKGZpbGUsIG9iamVjdC4kcG9zaXRpb24uc3RhcnQpLFxuICAgICAgICAgICAgJHBvc2l0aW9uOiBvYmplY3QuJHBvc2l0aW9uLFxuICAgICAgICAgICAgJGluZmllbGRzOiB7fSxcbiAgICAgICAgICAgICRvcmRpbmFsOiBvYmplY3QuJG9yZGluYWwsXG4gICAgICAgICAgICAkZGF0YTogbm9ybWRhdGEsXG4gICAgICAgICAgICAkbGlua3M6IGxpbmtzLFxuICAgICAgICAgICAgJHR5cGVuYW1lOiBcIkRhdGFibG9ja1wiLFxuICAgICAgICAgICAgJHRhZ3M6IHRhZ3MsXG4gICAgICAgICAgICAkdHlwZTogXCJkYXRhYmxvY2tcIixcbiAgICAgICAgICAgICRibG9ja0lkOiBvYmplY3QuJGJsb2NrSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBBbGwgb2YgdGhlIGluZGV4ZWQgZmllbGRzIGluIHRoaXMgb2JqZWN0LiAqL1xuICAgIGdldCBmaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiBNYXJrZG93bkRhdGFibG9jay5TVUJfRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBGZXRjaCBhIHNwZWNpZmljIGZpZWxkIGJ5IGtleS4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duRGF0YWJsb2NrLlNVQl9GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdID8/IEZpZWxkYmVhcmluZ3MuZ2V0V2l0aERlZmF1bHQodGhpcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbk1hcmtkb3duRGF0YWJsb2NrIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkZGF0YTogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGRhdGEsIGpzb25Gcm9udG1hdHRlckVudHJ5KSxcbiAgICAgICAgfSkgYXMgSnNvbk1hcmtkb3duRGF0YWJsb2NrO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkYWJsZUlkKGZpbGU6IHN0cmluZywgbGluZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2ZpbGV9L2RhdGFibG9jayR7bGluZX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBTVUJfRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxNYXJrZG93bkRhdGFibG9jaz4gPSBFeHRyYWN0b3JzLm1lcmdlPE1hcmtkb3duRGF0YWJsb2NrPihcbiAgICAgICAgTWFya2Rvd25CbG9jay5GSUVMRF9ERUYsXG4gICAgICAgIEV4dHJhY3RvcnMuZnJvbnRtYXR0ZXIoKGYpID0+IGYuJGRhdGEpXG4gICAgKTtcbn1cblxuLyoqIEEgc3BlY2lmaWMgbGlzdCBpdGVtIGluIGEgbGlzdC4gKi9cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkxpc3RJdGVtIGltcGxlbWVudHMgSW5kZXhhYmxlLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJsaXN0LWl0ZW1cIiwgTElOS0JFQVJJTkdfVFlQRSwgVEFHR0FCTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IE1hcmtkb3duTGlzdEl0ZW0uVFlQRVM7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIkxpc3QgSXRlbVwiO1xuICAgICRpZDogc3RyaW5nO1xuICAgICRmaWxlOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSBsaXN0IGl0ZW0gaW4gdGhlIGZpbGUuICovXG4gICAgJHBvc2l0aW9uOiBMaW5lU3BhbjtcbiAgICAvKiogQ2hpbGQgZWxlbWVudHMgb2YgdGhpcyBsaXN0IGl0ZW0uICovXG4gICAgJGVsZW1lbnRzOiBNYXJrZG93bkxpc3RJdGVtW107XG4gICAgLyoqIFRoZSB0eXBlIG9mIGxpc3QgaXRlbSB0aGF0IHRoaXMgZWxlbWVudCBpcy4gKi9cbiAgICAkdHlwZTogc3RyaW5nO1xuICAgIC8qKiBFeGFjdCB0YWdzIG9uIHRoaXMgbGlzdCBpdGVtLiAqL1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAvKiogTWFwIG9mIGFsbCBkaXN0aW5jdCBpbmxpbmUgZmllbGRzIGluIHRoZSBkb2N1bWVudCwgZnJvbSBrZXkgbmFtZSAtPiBtZXRhZGF0YS4gKi9cbiAgICAkaW5maWVsZHM6IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPjtcbiAgICAvKiogQWxsIGxpbmtzIGluIHRoZSBmaWxlLiAqL1xuICAgICRsaW5rczogTGlua1tdO1xuICAgIC8qKiBUaGUgYmxvY2sgSUQgb2YgdGhpcyBsaXN0IGl0ZW0gaWYgcHJlc2VudC4gKi9cbiAgICAkYmxvY2tJZD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbGluZSBudW1iZXIgb2YgdGhlIHBhcmVudCBvZiB0aGlzIGxpc3QgaXRlbS5cbiAgICAgKiBJZiBhIHBvc2l0aXZlIG51bWJlciwgdGhlbiB0aGlzIGxpc3QgZWxlbWVudCBpcyBhIGNoaWxkXG4gICAgICogb2YgdGhlIGxpc3QgZWxlbWVudCBhdCB0aGF0IGxpbmUuXG4gICAgICpcbiAgICAgKiBJZiBhIG5lZ2F0aXZlIG51bWJlciwgdGhlbiB0aGlzIGxpc3QgZWxlbWVudCBpcyBhIHJvb3QgZWxlbWVudFxuICAgICAqIG9mIGEgbGlzdCBzdGFydGluZyBhdCB0aGF0IGxpbmUgKG5lZ2F0ZWQpLiBJLmUuLCAtNyBtZWFuc1xuICAgICAqIHRoaXMgaXMgYSByb290IGVsZW1lbnQgb2YgdGhlIGxpc3Qgc3RhcnRpbmcgYXQgbGluZSA3LlxuICAgICAqL1xuICAgICRwYXJlbnRMaW5lOiBudW1iZXI7XG4gICAgLyoqIFRoZSBtYXJrZXIgdXNlZCB0byBzdGFydCB0aGUgbGlzdCBpdGVtIChzdWNoIGFzIC0gb3IgKyBvciAqKS4gT24gYSBtYWxmb3JtZWQgdGFzaywgbWF5IGJlIHVuZGVmaW5lZC4gKi9cbiAgICAkc3ltYm9sPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGV4dCBjb250ZW50cyBvZiB0aGUgbGlzdCBpdGVtLiAqL1xuICAgICR0ZXh0Pzogc3RyaW5nO1xuXG4gICAgLyoqIENyZWF0ZSBhIGxpc3QgaXRlbSBmcm9tIGEgc2VyaWFsaXplZCBvYmplY3QuICovXG4gICAgc3RhdGljIGZyb20oXG4gICAgICAgIG9iamVjdDogSnNvbk1hcmtkb3duTGlzdEl0ZW0sXG4gICAgICAgIGZpbGU6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVJcbiAgICApOiBNYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZSA9PT0gXCJ0YXNrXCIpIHJldHVybiBNYXJrZG93blRhc2tJdGVtLmZyb20ob2JqZWN0IGFzIEpzb25NYXJrZG93blRhc2tJdGVtLCBmaWxlLCBub3JtYWxpemVyKTtcblxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IG9iamVjdC4kZWxlbWVudHMubWFwKChlbGVtKSA9PiBNYXJrZG93bkxpc3RJdGVtLmZyb20oZWxlbSwgZmlsZSwgbm9ybWFsaXplcikpO1xuICAgICAgICByZXR1cm4gbmV3IE1hcmtkb3duTGlzdEl0ZW0oe1xuICAgICAgICAgICAgJGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAkaWQ6IE1hcmtkb3duTGlzdEl0ZW0ucmVhZGFibGVJZChmaWxlLCBvYmplY3QuJHBvc2l0aW9uLnN0YXJ0KSxcbiAgICAgICAgICAgICRwb3NpdGlvbjogb2JqZWN0LiRwb3NpdGlvbixcbiAgICAgICAgICAgICRlbGVtZW50czogZWxlbWVudHMsXG4gICAgICAgICAgICAkdHlwZTogb2JqZWN0LiR0eXBlLFxuICAgICAgICAgICAgJHRhZ3M6IG9iamVjdC4kdGFncyxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKG9iamVjdC4kaW5maWVsZHMsIChpKSA9PiBub3JtYWxpemVMaW5rcyh2YWx1ZUlubGluZUZpZWxkKGkpLCBub3JtYWxpemVyKSksXG4gICAgICAgICAgICAkbGlua3M6IG9iamVjdC4kbGlua3MubWFwKChsKSA9PiBub3JtYWxpemVyKExpbmsuZnJvbU9iamVjdChsKSkpLFxuICAgICAgICAgICAgJGJsb2NrSWQ6IG9iamVjdC4kYmxvY2tJZCxcbiAgICAgICAgICAgICRwYXJlbnRMaW5lOiBvYmplY3QuJHBhcmVudExpbmUsXG4gICAgICAgICAgICAkdGV4dDogb2JqZWN0LiR0ZXh0LFxuICAgICAgICAgICAgJHN5bWJvbDogb2JqZWN0LiRzeW1ib2wsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duTGlzdEl0ZW0+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgbGluZSB0aGF0IHRoaXMgbGlzdCBpdGVtIHN0YXJ0cyBvbi4gKi9cbiAgICBnZXQgJGxpbmUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHBvc2l0aW9uLnN0YXJ0O1xuICAgIH1cblxuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoaXMgbGlzdCBpdGVtLiAqL1xuICAgIGdldCAkbGluZUNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLiRwb3NpdGlvbi5lbmQgLSB0aGlzLiRwb3NpdGlvbi5zdGFydCArIDE7XG4gICAgfVxuXG4gICAgLyoqIENsZWFuZWQgdGV4dCB0aGF0IGlzIGdhcmF1bnRlZWQgdG8gYmUgbm9uLW51bGwgYW5kIGhhcyBpbmRlbmF0aW9uIGFuZCBpbmxpbmUgZmllbGRzIHJlbW92ZWQuICovXG4gICAgZ2V0ICRjbGVhbnRleHQoKSB7XG4gICAgICAgIGlmICghdGhpcy4kdGV4dCkgcmV0dXJuIFwiXCI7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuJHRleHRcbiAgICAgICAgICAgICAgICAvLyBFbGltaW5hdGUgW2tleTo6IHZhbHVlXSBhbm5vdGF0aW9ucy5cbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvKC4qPykoW1xcW1xcKF1bXjooXFxbXSs6OlxccyouKj9bXFxdXFwpXVxccyopJC9nbSwgXCIkMVwiKVxuICAgICAgICAgICAgICAgIC8vIFRyaW0gd2hpdGVzcGFjZS5cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEFsbCBvZiB0aGUgaW5kZXhlZCBmaWVsZHMgaW4gdGhpcyBvYmplY3QuICovXG4gICAgZ2V0IGZpZWxkcygpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duTGlzdEl0ZW0uRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBGZXRjaCBhIHNwZWNpZmljIGZpZWxkIGJ5IGtleS4gKi9cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIE1hcmtkb3duTGlzdEl0ZW0uRklFTERfREVGKHRoaXMsIGtleSk/LlswXSA/PyBGaWVsZGJlYXJpbmdzLmdldFdpdGhEZWZhdWx0KHRoaXMsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlKGtleTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKGtleSk/LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRwb3NpdGlvbjogdGhpcy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZWxlbWVudHM6IHRoaXMuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gZWxlbS5qc29uKCkpLFxuICAgICAgICAgICAgJHR5cGU6IHRoaXMuJHR5cGUsXG4gICAgICAgICAgICAkdGFnczogdGhpcy4kdGFncyxcbiAgICAgICAgICAgICRpbmZpZWxkczogbWFwT2JqZWN0VmFsdWVzKHRoaXMuJGluZmllbGRzLCBqc29uSW5saW5lRmllbGQpLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLiRsaW5rcyxcbiAgICAgICAgICAgICRibG9ja0lkOiB0aGlzLiRibG9ja0lkLFxuICAgICAgICAgICAgJHBhcmVudExpbmU6IHRoaXMuJHBhcmVudExpbmUsXG4gICAgICAgICAgICAkc3ltYm9sOiB0aGlzLiRzeW1ib2wsXG4gICAgICAgICAgICAkdGV4dDogdGhpcy4kdGV4dCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPE1hcmtkb3duTGlzdEl0ZW0+ID0gRXh0cmFjdG9ycy5tZXJnZShcbiAgICAgICAgRXh0cmFjdG9ycy5pbnRyaW5zaWNzKCksXG4gICAgICAgIEV4dHJhY3RvcnMuaW5saW5lRmllbGRzKChmKSA9PiBmLiRpbmZpZWxkcylcbiAgICApO1xuXG4gICAgLyoqIEdlbmVyYXRlIGEgcmVhZGFibGUgSUQgZm9yIHRoaXMgaXRlbSB1c2luZyB0aGUgbGluZSBudW1iZXIuICovXG4gICAgc3RhdGljIHJlYWRhYmxlSWQoZmlsZTogc3RyaW5nLCBsaW5lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZmlsZX0vbGlzdCR7bGluZX1gO1xuICAgIH1cbn1cblxuLyoqIEEgc3BlY2lmaWMgdGFzayBpbnNpZGUgb2YgYSBtYXJrZG93biBsaXN0LiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duVGFza0l0ZW0gZXh0ZW5kcyBNYXJrZG93bkxpc3RJdGVtIGltcGxlbWVudHMgSW5kZXhhYmxlLCBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW1wibWFya2Rvd25cIiwgXCJsaXN0LWl0ZW1cIiwgXCJ0YXNrXCIsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBNYXJrZG93blRhc2tJdGVtLlRZUEVTO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJUYXNrXCI7XG5cbiAgICAvKiogVGhlIHRleHQgaW5zaWRlIG9mIHRoZSB0YXNrIGl0ZW0uICovXG4gICAgJHN0YXR1czogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tKG9iamVjdDogSnNvbk1hcmtkb3duVGFza0l0ZW0sIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIpOiBNYXJrZG93blRhc2tJdGVtIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBvYmplY3QuJGVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gTWFya2Rvd25MaXN0SXRlbS5mcm9tKGVsZW0sIGZpbGUsIG5vcm1hbGl6ZXIpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93blRhc2tJdGVtKHtcbiAgICAgICAgICAgICRmaWxlOiBmaWxlLFxuICAgICAgICAgICAgJGlkOiBNYXJrZG93bkxpc3RJdGVtLnJlYWRhYmxlSWQoZmlsZSwgb2JqZWN0LiRwb3NpdGlvbi5zdGFydCksXG4gICAgICAgICAgICAkcG9zaXRpb246IG9iamVjdC4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZWxlbWVudHM6IGVsZW1lbnRzLFxuICAgICAgICAgICAgJHR5cGU6IG9iamVjdC4kdHlwZSxcbiAgICAgICAgICAgICR0YWdzOiBvYmplY3QuJHRhZ3MsXG4gICAgICAgICAgICAkaW5maWVsZHM6IG1hcE9iamVjdFZhbHVlcyhvYmplY3QuJGluZmllbGRzLCAoaSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVJbmxpbmVGaWVsZChpKSwgbm9ybWFsaXplcikpLFxuICAgICAgICAgICAgJGxpbmtzOiBvYmplY3QuJGxpbmtzLm1hcCgobCkgPT4gbm9ybWFsaXplcihMaW5rLmZyb21PYmplY3QobCkpKSxcbiAgICAgICAgICAgICRibG9ja0lkOiBvYmplY3QuJGJsb2NrSWQsXG4gICAgICAgICAgICAkcGFyZW50TGluZTogb2JqZWN0LiRwYXJlbnRMaW5lLFxuICAgICAgICAgICAgJHN0YXR1czogb2JqZWN0LiRzdGF0dXMsXG4gICAgICAgICAgICAkc3ltYm9sOiBvYmplY3QuJHN5bWJvbCxcbiAgICAgICAgICAgICR0ZXh0OiBvYmplY3QuJHRleHQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPE1hcmtkb3duVGFza0l0ZW0+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25NYXJrZG93bkxpc3RJdGVtIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkc3RhdHVzOiB0aGlzLiRzdGF0dXMsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHRhc2sgaXMgY29tcGxldGVkLiAqL1xuICAgIHB1YmxpYyBnZXQgJGNvbXBsZXRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHN0YXR1cyA9PT0gXCJ4XCIgfHwgdGhpcy4kc3RhdHVzID09PSBcIlhcIjtcbiAgICB9XG59XG5cbi8qKiBBbiBlbnRyeSBpbiB0aGUgZnJvbnRtYXR0ZXI7IGluY2x1ZGVzIHRoZSByYXcgdmFsdWUsIHBhcnNlZCB2YWx1ZSwgYW5kIHJhdyBrZXkgKGJlZm9yZSBsb3dlci1jYXNpbmcpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9udG1hdHRlckVudHJ5IHtcbiAgICAvKiogVGhlIGFjdHVhbCBzdHJpbmcgaW4gZnJvbnRtYXR0ZXIgd2l0aCBleGFjdCBjYXNpbmcuICovXG4gICAga2V5OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwYXJzZWQgdmFsdWUgb2YgdGhlIGZyb250bWF0dGVyIGVudHJ5IChkYXRlLCBkdXJhdGlvbiwgZXRjLikuICovXG4gICAgdmFsdWU6IExpdGVyYWw7XG4gICAgLyoqIFRoZSByYXcgdmFsdWUgb2YgdGhlIGZyb250bWF0dGVyIGVudHJ5IGJlZm9yZSBwYXJzaW5nOyBnZW5lcmFsbHkgYSBzdHJpbmcgb3IgbnVtYmVyLiAqL1xuICAgIHJhdzogc3RyaW5nO1xufVxuXG4vKiogQ29udmVydCBhIHJlZ3VsYXIgZnJvbnRtYXR0ZXIgZW50cnkgaW50byBhIEpTT04gZnJvbnRtYXR0ZXIgZW50cnkuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uRnJvbnRtYXR0ZXJFbnRyeShyYXc6IEZyb250bWF0dGVyRW50cnkpOiBKc29uRnJvbnRtYXR0ZXJFbnRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByYXcua2V5LFxuICAgICAgICB2YWx1ZTogSnNvbkNvbnZlcnNpb24uanNvbihyYXcudmFsdWUpLFxuICAgICAgICByYXc6IHJhdy5yYXcsXG4gICAgfTtcbn1cblxuLyoqIENvbnZlcnQgYSBqc29uIGZyb250bWF0dGVyIGVudHJ5IHRvIGEgcmVndWxhciBmcm9udG1hdHRlciBlbnRyeS5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbnRtYXR0ZXJFbnRyeShyYXc6IEpzb25Gcm9udG1hdHRlckVudHJ5KTogRnJvbnRtYXR0ZXJFbnRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiByYXcua2V5LFxuICAgICAgICB2YWx1ZTogSnNvbkNvbnZlcnNpb24udmFsdWUocmF3LnZhbHVlKSxcbiAgICAgICAgcmF3OiByYXcucmF3LFxuICAgIH07XG59XG5cbi8qKiBOb3JtYWxpemUgbGlua3MgZGVlcGx5IGluIHRoZSBvYmplY3QuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVMaW5rczxUIGV4dGVuZHMgTGl0ZXJhbD4oaW5wdXQ6IFQsIG5vcm1hbGl6ZXI6IExpbmtOb3JtYWxpemVyKTogVCB7XG4gICAgcmV0dXJuIExpdGVyYWxzLm1hcExlYXZlcyhpbnB1dCwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChMaXRlcmFscy5pc0xpbmsodmFsdWUpKSByZXR1cm4gbm9ybWFsaXplcih2YWx1ZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICAgIH0pIGFzIFQ7XG59XG5cbi8qKiBSZWN1cnNpdmVseSBnYXRoZXIgbGlua3MgZnJvbSBhIGxpdGVyYWwgb2JqZWN0LlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0aGVyTGlua3MoaW5wdXQ6IExpdGVyYWwpOiBMaW5rW10ge1xuICAgIGNvbnN0IHJlc3VsdDogTGlua1tdID0gW107XG5cbiAgICBMaXRlcmFscy5tYXBMZWF2ZXMoaW5wdXQsICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNMaW5rKHZhbHVlKSkgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBHYXRoZXIgdGFncyBmcm9tIGEgZGF0YWJsb2NrLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2F0aGVyVGFncyhkYXRhOiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5Pik6IHN0cmluZ1tdIHtcbiAgICBmdW5jdGlvbiByZWN1cnNlKGlucHV0OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmIChMaXRlcmFscy5pc1N0cmluZyhpbnB1dCkpIHJldHVybiBbaW5wdXQuc3RhcnRzV2l0aChcIiNcIikgPyBpbnB1dCA6IFwiI1wiICsgaW5wdXRdO1xuICAgICAgICBlbHNlIGlmIChMaXRlcmFscy5pc0FycmF5KGlucHV0KSkgcmV0dXJuIGlucHV0LmZsYXRNYXAocmVjdXJzZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB0YWdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChcInRhZ1wiIGluIGRhdGEpIHRhZ3MgPSB0YWdzLmNvbmNhdChyZWN1cnNlKGRhdGFbXCJ0YWdzXCJdKSk7XG4gICAgaWYgKFwidGFnc1wiIGluIGRhdGEpIHRhZ3MgPSB0YWdzLmNvbmNhdChyZWN1cnNlKGRhdGFbXCJ0YWdzXCJdKSk7XG5cbiAgICByZXR1cm4gdGFncztcbn1cblxuLyoqIEEgbGluayBub3JtYWxpemVyIHdoaWNoIHRha2VzIGluIGEgcmF3IGxpbmsgYW5kIHByb2R1Y2VzIGEgbm9ybWFsaXplZCBsaW5rLiAqL1xuZXhwb3J0IHR5cGUgTGlua05vcm1hbGl6ZXIgPSAobGluazogTGluaykgPT4gTGluaztcbmV4cG9ydCBjb25zdCBOT09QX05PUk1BTElaRVI6IExpbmtOb3JtYWxpemVyID0gKHgpID0+IHg7XG4iLCAiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmZ1bmN0aW9uIHRvUHJpbWl0aXZlKHQsIHIpIHtcbiAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7XG4gIHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdO1xuICBpZiAodm9pZCAwICE9PSBlKSB7XG4gICAgdmFyIGkgPSBlLmNhbGwodCwgciB8fCBcImRlZmF1bHRcIik7XG4gICAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZihpKSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5leHBvcnQgeyB0b1ByaW1pdGl2ZSBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuaW1wb3J0IHRvUHJpbWl0aXZlIGZyb20gXCIuL3RvUHJpbWl0aXZlLmpzXCI7XG5mdW5jdGlvbiB0b1Byb3BlcnR5S2V5KHQpIHtcbiAgdmFyIGkgPSB0b1ByaW1pdGl2ZSh0LCBcInN0cmluZ1wiKTtcbiAgcmV0dXJuIFwic3ltYm9sXCIgPT0gX3R5cGVvZihpKSA/IGkgOiBpICsgXCJcIjtcbn1cbmV4cG9ydCB7IHRvUHJvcGVydHlLZXkgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCAiaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gXCIuL2RlZmluZVByb3BlcnR5LmpzXCI7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHtcbiAgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTtcbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7XG4gICAgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pO1xuICB9XG4gIHJldHVybiB0O1xufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSkge1xuICBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykge1xuICAgIHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTtcbiAgICByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikge1xuICAgICAgZGVmaW5lUHJvcGVydHkoZSwgciwgdFtyXSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfb2JqZWN0U3ByZWFkMiBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gcjtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhIb2xlcyBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBsKSB7XG4gIHZhciB0ID0gbnVsbCA9PSByID8gbnVsbCA6IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiByW1N5bWJvbC5pdGVyYXRvcl0gfHwgcltcIkBAaXRlcmF0b3JcIl07XG4gIGlmIChudWxsICE9IHQpIHtcbiAgICB2YXIgZSxcbiAgICAgIG4sXG4gICAgICBpLFxuICAgICAgdSxcbiAgICAgIGEgPSBbXSxcbiAgICAgIGYgPSAhMCxcbiAgICAgIG8gPSAhMTtcbiAgICB0cnkge1xuICAgICAgaWYgKGkgPSAodCA9IHQuY2FsbChyKSkubmV4dCwgMCA9PT0gbCkge1xuICAgICAgICBpZiAoT2JqZWN0KHQpICE9PSB0KSByZXR1cm47XG4gICAgICAgIGYgPSAhMTtcbiAgICAgIH0gZWxzZSBmb3IgKDsgIShmID0gKGUgPSBpLmNhbGwodCkpLmRvbmUpICYmIChhLnB1c2goZS52YWx1ZSksIGEubGVuZ3RoICE9PSBsKTsgZiA9ICEwKTtcbiAgICB9IGNhdGNoIChyKSB7XG4gICAgICBvID0gITAsIG4gPSByO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIWYgJiYgbnVsbCAhPSB0W1wicmV0dXJuXCJdICYmICh1ID0gdFtcInJldHVyblwiXSgpLCBPYmplY3QodSkgIT09IHUpKSByZXR1cm47XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAobykgdGhyb3cgbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cbn1cbmV4cG9ydCB7IF9pdGVyYWJsZVRvQXJyYXlMaW1pdCBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KHIsIGEpIHtcbiAgKG51bGwgPT0gYSB8fCBhID4gci5sZW5ndGgpICYmIChhID0gci5sZW5ndGgpO1xuICBmb3IgKHZhciBlID0gMCwgbiA9IEFycmF5KGEpOyBlIDwgYTsgZSsrKSBuW2VdID0gcltlXTtcbiAgcmV0dXJuIG47XG59XG5leHBvcnQgeyBfYXJyYXlMaWtlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyLCBhKSB7XG4gIGlmIChyKSB7XG4gICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KHIsIGEpO1xuICAgIHZhciB0ID0ge30udG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LCAtMSk7XG4gICAgcmV0dXJuIFwiT2JqZWN0XCIgPT09IHQgJiYgci5jb25zdHJ1Y3RvciAmJiAodCA9IHIuY29uc3RydWN0b3IubmFtZSksIFwiTWFwXCIgPT09IHQgfHwgXCJTZXRcIiA9PT0gdCA/IEFycmF5LmZyb20ocikgOiBcIkFyZ3VtZW50c1wiID09PSB0IHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpID8gYXJyYXlMaWtlVG9BcnJheShyLCBhKSA6IHZvaWQgMDtcbiAgfVxufVxuZXhwb3J0IHsgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbmV4cG9ydCB7IF9ub25JdGVyYWJsZVJlc3QgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5leHBvcnQgeyBfc2xpY2VkVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHIsIGUpIHtcbiAgaWYgKG51bGwgPT0gcikgcmV0dXJuIHt9O1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBuIGluIHIpIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIG4pKSB7XG4gICAgaWYgKGUuaW5jbHVkZXMobikpIGNvbnRpbnVlO1xuICAgIHRbbl0gPSByW25dO1xuICB9XG4gIHJldHVybiB0O1xufVxuZXhwb3J0IHsgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBzLmxlbmd0aDsgcisrKSBvID0gc1tyXSwgdC5pbmNsdWRlcyhvKSB8fCB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyJztcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5JztcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiZGVmYXVsdElucHV0VmFsdWVcIiwgXCJkZWZhdWx0TWVudUlzT3BlblwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcImlucHV0VmFsdWVcIiwgXCJtZW51SXNPcGVuXCIsIFwib25DaGFuZ2VcIiwgXCJvbklucHV0Q2hhbmdlXCIsIFwib25NZW51Q2xvc2VcIiwgXCJvbk1lbnVPcGVuXCIsIFwidmFsdWVcIl07XG5mdW5jdGlvbiB1c2VTdGF0ZU1hbmFnZXIoX3JlZikge1xuICB2YXIgX3JlZiRkZWZhdWx0SW5wdXRWYWx1ID0gX3JlZi5kZWZhdWx0SW5wdXRWYWx1ZSxcbiAgICBkZWZhdWx0SW5wdXRWYWx1ZSA9IF9yZWYkZGVmYXVsdElucHV0VmFsdSA9PT0gdm9pZCAwID8gJycgOiBfcmVmJGRlZmF1bHRJbnB1dFZhbHUsXG4gICAgX3JlZiRkZWZhdWx0TWVudUlzT3BlID0gX3JlZi5kZWZhdWx0TWVudUlzT3BlbixcbiAgICBkZWZhdWx0TWVudUlzT3BlbiA9IF9yZWYkZGVmYXVsdE1lbnVJc09wZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJGRlZmF1bHRNZW51SXNPcGUsXG4gICAgX3JlZiRkZWZhdWx0VmFsdWUgPSBfcmVmLmRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0VmFsdWUgPSBfcmVmJGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYkZGVmYXVsdFZhbHVlLFxuICAgIHByb3BzSW5wdXRWYWx1ZSA9IF9yZWYuaW5wdXRWYWx1ZSxcbiAgICBwcm9wc01lbnVJc09wZW4gPSBfcmVmLm1lbnVJc09wZW4sXG4gICAgcHJvcHNPbkNoYW5nZSA9IF9yZWYub25DaGFuZ2UsXG4gICAgcHJvcHNPbklucHV0Q2hhbmdlID0gX3JlZi5vbklucHV0Q2hhbmdlLFxuICAgIHByb3BzT25NZW51Q2xvc2UgPSBfcmVmLm9uTWVudUNsb3NlLFxuICAgIHByb3BzT25NZW51T3BlbiA9IF9yZWYub25NZW51T3BlbixcbiAgICBwcm9wc1ZhbHVlID0gX3JlZi52YWx1ZSxcbiAgICByZXN0U2VsZWN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogZGVmYXVsdElucHV0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgIHN0YXRlSW5wdXRWYWx1ZSA9IF91c2VTdGF0ZTJbMF0sXG4gICAgc2V0U3RhdGVJbnB1dFZhbHVlID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShwcm9wc01lbnVJc09wZW4gIT09IHVuZGVmaW5lZCA/IHByb3BzTWVudUlzT3BlbiA6IGRlZmF1bHRNZW51SXNPcGVuKSxcbiAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgc3RhdGVNZW51SXNPcGVuID0gX3VzZVN0YXRlNFswXSxcbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4gPSBfdXNlU3RhdGU0WzFdO1xuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKHByb3BzVmFsdWUgIT09IHVuZGVmaW5lZCA/IHByb3BzVmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIF91c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU1LCAyKSxcbiAgICBzdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlswXSxcbiAgICBzZXRTdGF0ZVZhbHVlID0gX3VzZVN0YXRlNlsxXTtcbiAgdmFyIG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wc09uQ2hhbmdlKHZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9XG4gICAgc2V0U3RhdGVWYWx1ZSh2YWx1ZSk7XG4gIH0sIFtwcm9wc09uQ2hhbmdlXSk7XG4gIHZhciBvbklucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgdmFyIG5ld1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbklucHV0Q2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBuZXdWYWx1ZSA9IHByb3BzT25JbnB1dENoYW5nZSh2YWx1ZSwgYWN0aW9uTWV0YSk7XG4gICAgfVxuICAgIHNldFN0YXRlSW5wdXRWYWx1ZShuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkID8gbmV3VmFsdWUgOiB2YWx1ZSk7XG4gIH0sIFtwcm9wc09uSW5wdXRDaGFuZ2VdKTtcbiAgdmFyIG9uTWVudU9wZW4gPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uTWVudU9wZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByb3BzT25NZW51T3BlbigpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4odHJ1ZSk7XG4gIH0sIFtwcm9wc09uTWVudU9wZW5dKTtcbiAgdmFyIG9uTWVudUNsb3NlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgcHJvcHNPbk1lbnVDbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcHNPbk1lbnVDbG9zZSgpO1xuICAgIH1cbiAgICBzZXRTdGF0ZU1lbnVJc09wZW4oZmFsc2UpO1xuICB9LCBbcHJvcHNPbk1lbnVDbG9zZV0pO1xuICB2YXIgaW5wdXRWYWx1ZSA9IHByb3BzSW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNJbnB1dFZhbHVlIDogc3RhdGVJbnB1dFZhbHVlO1xuICB2YXIgbWVudUlzT3BlbiA9IHByb3BzTWVudUlzT3BlbiAhPT0gdW5kZWZpbmVkID8gcHJvcHNNZW51SXNPcGVuIDogc3RhdGVNZW51SXNPcGVuO1xuICB2YXIgdmFsdWUgPSBwcm9wc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm9wc1ZhbHVlIDogc3RhdGVWYWx1ZTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzdFNlbGVjdFByb3BzKSwge30sIHtcbiAgICBpbnB1dFZhbHVlOiBpbnB1dFZhbHVlLFxuICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW4sXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxuICAgIG9uSW5wdXRDaGFuZ2U6IG9uSW5wdXRDaGFuZ2UsXG4gICAgb25NZW51Q2xvc2U6IG9uTWVudUNsb3NlLFxuICAgIG9uTWVudU9wZW46IG9uTWVudU9wZW4sXG4gICAgdmFsdWU6IHZhbHVlXG4gIH0pO1xufVxuXG5leHBvcnQgeyB1c2VTdGF0ZU1hbmFnZXIgYXMgdSB9O1xuIiwgImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuZXhwb3J0IHsgX2V4dGVuZHMgYXMgZGVmYXVsdCB9OyIsICJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5leHBvcnQgeyBfY2xhc3NDYWxsQ2hlY2sgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLCByKSB7XG4gIGZvciAodmFyIHQgPSAwOyB0IDwgci5sZW5ndGg7IHQrKykge1xuICAgIHZhciBvID0gclt0XTtcbiAgICBvLmVudW1lcmFibGUgPSBvLmVudW1lcmFibGUgfHwgITEsIG8uY29uZmlndXJhYmxlID0gITAsIFwidmFsdWVcIiBpbiBvICYmIChvLndyaXRhYmxlID0gITApLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxuZXhwb3J0IHsgX2NyZWF0ZUNsYXNzIGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHQsIGUpIHtcbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCwgZSkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyA9IGUsIHQ7XG4gIH0sIF9zZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbmV4cG9ydCB7IF9zZXRQcm90b3R5cGVPZiBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZnVuY3Rpb24gX2luaGVyaXRzKHQsIGUpIHtcbiAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShlICYmIGUucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiB0LFxuICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH1cbiAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlICYmIHNldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX2luaGVyaXRzIGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHQpIHtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIH0sIF9nZXRQcm90b3R5cGVPZih0KTtcbn1cbmV4cG9ydCB7IF9nZXRQcm90b3R5cGVPZiBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gIHRyeSB7XG4gICAgdmFyIHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICB9IGNhdGNoICh0KSB7fVxuICByZXR1cm4gKF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICAgIHJldHVybiAhIXQ7XG4gIH0pKCk7XG59XG5leHBvcnQgeyBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IGFzIGRlZmF1bHQgfTsiLCAiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGFzIGRlZmF1bHQgfTsiLCAiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odCwgZSkge1xuICBpZiAoZSAmJiAoXCJvYmplY3RcIiA9PSBfdHlwZW9mKGUpIHx8IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgZSkpIHJldHVybiBlO1xuICBpZiAodm9pZCAwICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQodCk7XG59XG5leHBvcnQgeyBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBnZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiO1xuaW1wb3J0IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCBmcm9tIFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIjtcbmltcG9ydCBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCIuL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanNcIjtcbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcih0KSB7XG4gIHZhciByID0gaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGUsXG4gICAgICBvID0gZ2V0UHJvdG90eXBlT2YodCk7XG4gICAgaWYgKHIpIHtcbiAgICAgIHZhciBzID0gZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7XG4gICAgICBlID0gUmVmbGVjdC5jb25zdHJ1Y3QobywgYXJndW1lbnRzLCBzKTtcbiAgICB9IGVsc2UgZSA9IG8uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBlKTtcbiAgfTtcbn1cbmV4cG9ydCB7IF9jcmVhdGVTdXBlciBhcyBkZWZhdWx0IH07IiwgImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyKTtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhvdXRIb2xlcyBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocikge1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIG51bGwgIT0gcltTeW1ib2wuaXRlcmF0b3JdIHx8IG51bGwgIT0gcltcIkBAaXRlcmF0b3JcIl0pIHJldHVybiBBcnJheS5mcm9tKHIpO1xufVxuZXhwb3J0IHsgX2l0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwgImZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5leHBvcnQgeyBfbm9uSXRlcmFibGVTcHJlYWQgYXMgZGVmYXVsdCB9OyIsICJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KHIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aG91dEhvbGVzKHIpIHx8IGl0ZXJhYmxlVG9BcnJheShyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyKSB8fCBub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuZXhwb3J0IHsgX3RvQ29uc3VtYWJsZUFycmF5IGFzIGRlZmF1bHQgfTsiLCAidmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxuLypcblxuQmFzZWQgb2ZmIGdsYW1vcidzIFN0eWxlU2hlZXQsIHRoYW5rcyBTdW5pbCBcdTI3NjRcdUZFMEZcblxuaGlnaCBwZXJmb3JtYW5jZSBTdHlsZVNoZWV0IGZvciBjc3MtaW4tanMgc3lzdGVtc1xuXG4tIHVzZXMgbXVsdGlwbGUgc3R5bGUgdGFncyBiZWhpbmQgdGhlIHNjZW5lcyBmb3IgbWlsbGlvbnMgb2YgcnVsZXNcbi0gdXNlcyBgaW5zZXJ0UnVsZWAgZm9yIGFwcGVuZGluZyBpbiBwcm9kdWN0aW9uIGZvciAqbXVjaCogZmFzdGVyIHBlcmZvcm1hbmNlXG5cbi8vIHVzYWdlXG5cbmltcG9ydCB7IFN0eWxlU2hlZXQgfSBmcm9tICdAZW1vdGlvbi9zaGVldCdcblxubGV0IHN0eWxlU2hlZXQgPSBuZXcgU3R5bGVTaGVldCh7IGtleTogJycsIGNvbnRhaW5lcjogZG9jdW1lbnQuaGVhZCB9KVxuXG5zdHlsZVNoZWV0Lmluc2VydCgnI2JveCB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfScpXG4tIGFwcGVuZHMgYSBjc3MgcnVsZSBpbnRvIHRoZSBzdHlsZXNoZWV0XG5cbnN0eWxlU2hlZXQuZmx1c2goKVxuLSBlbXB0aWVzIHRoZSBzdHlsZXNoZWV0IG9mIGFsbCBpdHMgY29udGVudHNcblxuKi9cblxuZnVuY3Rpb24gc2hlZXRGb3JUYWcodGFnKSB7XG4gIGlmICh0YWcuc2hlZXQpIHtcbiAgICByZXR1cm4gdGFnLnNoZWV0O1xuICB9IC8vIHRoaXMgd2VpcmRuZXNzIGJyb3VnaHQgdG8geW91IGJ5IGZpcmVmb3hcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudC5zdHlsZVNoZWV0c1tpXS5vd25lck5vZGUgPT09IHRhZykge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldO1xuICAgIH1cbiAgfSAvLyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHdheXMgcmV0dXJuIHdpdGggYSB2YWx1ZVxuICAvLyBUUyBjYW4ndCB1bmRlcnN0YW5kIGl0IHRob3VnaCBzbyB3ZSBtYWtlIGl0IHN0b3AgY29tcGxhaW5pbmcgaGVyZVxuXG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1vdGlvbicsIG9wdGlvbnMua2V5KTtcblxuICBpZiAob3B0aW9ucy5ub25jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCBvcHRpb25zLm5vbmNlKTtcbiAgfVxuXG4gIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJykpO1xuICB0YWcuc2V0QXR0cmlidXRlKCdkYXRhLXMnLCAnJyk7XG4gIHJldHVybiB0YWc7XG59XG5cbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLy8gVXNpbmcgTm9kZSBpbnN0ZWFkIG9mIEhUTUxFbGVtZW50IHNpbmNlIGNvbnRhaW5lciBtYXkgYmUgYSBTaGFkb3dSb290XG4gIGZ1bmN0aW9uIFN0eWxlU2hlZXQob3B0aW9ucykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICB0aGlzLl9pbnNlcnRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgYmVmb3JlO1xuXG4gICAgICBpZiAoX3RoaXMudGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKF90aGlzLmluc2VydGlvblBvaW50KSB7XG4gICAgICAgICAgYmVmb3JlID0gX3RoaXMuaW5zZXJ0aW9uUG9pbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIH0gZWxzZSBpZiAoX3RoaXMucHJlcGVuZCkge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJlZm9yZSA9IF90aGlzLmJlZm9yZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmVmb3JlID0gX3RoaXMudGFnc1tfdGhpcy50YWdzLmxlbmd0aCAtIDFdLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhZywgYmVmb3JlKTtcblxuICAgICAgX3RoaXMudGFncy5wdXNoKHRhZyk7XG4gICAgfTtcblxuICAgIHRoaXMuaXNTcGVlZHkgPSBvcHRpb25zLnNwZWVkeSA9PT0gdW5kZWZpbmVkID8gIWlzRGV2ZWxvcG1lbnQgOiBvcHRpb25zLnNwZWVkeTtcbiAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICB0aGlzLmN0ciA9IDA7XG4gICAgdGhpcy5ub25jZSA9IG9wdGlvbnMubm9uY2U7IC8vIGtleSBpcyB0aGUgdmFsdWUgb2YgdGhlIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGUsIGl0J3MgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgc2hlZXRzXG5cbiAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5O1xuICAgIHRoaXMuY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXI7XG4gICAgdGhpcy5wcmVwZW5kID0gb3B0aW9ucy5wcmVwZW5kO1xuICAgIHRoaXMuaW5zZXJ0aW9uUG9pbnQgPSBvcHRpb25zLmluc2VydGlvblBvaW50O1xuICAgIHRoaXMuYmVmb3JlID0gbnVsbDtcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBTdHlsZVNoZWV0LnByb3RvdHlwZTtcblxuICBfcHJvdG8uaHlkcmF0ZSA9IGZ1bmN0aW9uIGh5ZHJhdGUobm9kZXMpIHtcbiAgICBub2Rlcy5mb3JFYWNoKHRoaXMuX2luc2VydFRhZyk7XG4gIH07XG5cbiAgX3Byb3RvLmluc2VydCA9IGZ1bmN0aW9uIGluc2VydChydWxlKSB7XG4gICAgLy8gdGhlIG1heCBsZW5ndGggaXMgaG93IG1hbnkgcnVsZXMgd2UgaGF2ZSBwZXIgc3R5bGUgdGFnLCBpdCdzIDY1MDAwIGluIHNwZWVkeSBtb2RlXG4gICAgLy8gaXQncyAxIGluIGRldiBiZWNhdXNlIHdlIGluc2VydCBzb3VyY2UgbWFwcyB0aGF0IG1hcCBhIHNpbmdsZSBydWxlIHRvIGEgbG9jYXRpb25cbiAgICAvLyBhbmQgeW91IGNhbiBvbmx5IGhhdmUgb25lIHNvdXJjZSBtYXAgcGVyIHN0eWxlIHRhZ1xuICAgIGlmICh0aGlzLmN0ciAlICh0aGlzLmlzU3BlZWR5ID8gNjUwMDAgOiAxKSA9PT0gMCkge1xuICAgICAgdGhpcy5faW5zZXJ0VGFnKGNyZWF0ZVN0eWxlRWxlbWVudCh0aGlzKSk7XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IHRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAodGhpcy5pc1NwZWVkeSkge1xuICAgICAgdmFyIHNoZWV0ID0gc2hlZXRGb3JUYWcodGFnKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgdWx0cmFmYXN0IHZlcnNpb24sIHdvcmtzIGFjcm9zcyBicm93c2Vyc1xuICAgICAgICAvLyB0aGUgYmlnIGRyYXdiYWNrIGlzIHRoYXQgdGhlIGNzcyB3b24ndCBiZSBlZGl0YWJsZSBpbiBkZXZ0b29sc1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIHNoZWV0LmNzc1J1bGVzLmxlbmd0aCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdHIrKztcbiAgfTtcblxuICBfcHJvdG8uZmx1c2ggPSBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICB0aGlzLnRhZ3MuZm9yRWFjaChmdW5jdGlvbiAodGFnKSB7XG4gICAgICB2YXIgX3RhZyRwYXJlbnROb2RlO1xuXG4gICAgICByZXR1cm4gKF90YWckcGFyZW50Tm9kZSA9IHRhZy5wYXJlbnROb2RlKSA9PSBudWxsID8gdm9pZCAwIDogX3RhZyRwYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy50YWdzID0gW107XG4gICAgdGhpcy5jdHIgPSAwO1xuICB9O1xuXG4gIHJldHVybiBTdHlsZVNoZWV0O1xufSgpO1xuXG5leHBvcnQgeyBTdHlsZVNoZWV0IH07XG4iLCAiZXhwb3J0IHZhciBNUyA9ICctbXMtJ1xuZXhwb3J0IHZhciBNT1ogPSAnLW1vei0nXG5leHBvcnQgdmFyIFdFQktJVCA9ICctd2Via2l0LSdcblxuZXhwb3J0IHZhciBDT01NRU5UID0gJ2NvbW0nXG5leHBvcnQgdmFyIFJVTEVTRVQgPSAncnVsZSdcbmV4cG9ydCB2YXIgREVDTEFSQVRJT04gPSAnZGVjbCdcblxuZXhwb3J0IHZhciBQQUdFID0gJ0BwYWdlJ1xuZXhwb3J0IHZhciBNRURJQSA9ICdAbWVkaWEnXG5leHBvcnQgdmFyIElNUE9SVCA9ICdAaW1wb3J0J1xuZXhwb3J0IHZhciBDSEFSU0VUID0gJ0BjaGFyc2V0J1xuZXhwb3J0IHZhciBWSUVXUE9SVCA9ICdAdmlld3BvcnQnXG5leHBvcnQgdmFyIFNVUFBPUlRTID0gJ0BzdXBwb3J0cydcbmV4cG9ydCB2YXIgRE9DVU1FTlQgPSAnQGRvY3VtZW50J1xuZXhwb3J0IHZhciBOQU1FU1BBQ0UgPSAnQG5hbWVzcGFjZSdcbmV4cG9ydCB2YXIgS0VZRlJBTUVTID0gJ0BrZXlmcmFtZXMnXG5leHBvcnQgdmFyIEZPTlRfRkFDRSA9ICdAZm9udC1mYWNlJ1xuZXhwb3J0IHZhciBDT1VOVEVSX1NUWUxFID0gJ0Bjb3VudGVyLXN0eWxlJ1xuZXhwb3J0IHZhciBGT05UX0ZFQVRVUkVfVkFMVUVTID0gJ0Bmb250LWZlYXR1cmUtdmFsdWVzJ1xuZXhwb3J0IHZhciBMQVlFUiA9ICdAbGF5ZXInXG4iLCAiLyoqXG4gKiBAcGFyYW0ge251bWJlcn1cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IHZhciBhYnMgPSBNYXRoLmFic1xuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgdmFyIGZyb20gPSBTdHJpbmcuZnJvbUNoYXJDb2RlXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9XG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCB2YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaCAodmFsdWUsIGxlbmd0aCkge1xuXHRyZXR1cm4gY2hhcmF0KHZhbHVlLCAwKSBeIDQ1ID8gKCgoKCgoKGxlbmd0aCA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMCkpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAxKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDIpKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMykgOiAwXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUudHJpbSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcGF0dGVyblxuICogQHJldHVybiB7c3RyaW5nP31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoICh2YWx1ZSwgcGF0dGVybikge1xuXHRyZXR1cm4gKHZhbHVlID0gcGF0dGVybi5leGVjKHZhbHVlKSkgPyB2YWx1ZVswXSA6IHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0geyhzdHJpbmd8UmVnRXhwKX0gcGF0dGVyblxuICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlICh2YWx1ZSwgcGF0dGVybiwgcmVwbGFjZW1lbnQpIHtcblx0cmV0dXJuIHZhbHVlLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleG9mICh2YWx1ZSwgc2VhcmNoKSB7XG5cdHJldHVybiB2YWx1ZS5pbmRleE9mKHNlYXJjaClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhcmF0ICh2YWx1ZSwgaW5kZXgpIHtcblx0cmV0dXJuIHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpIHwgMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdHIgKHZhbHVlLCBiZWdpbiwgZW5kKSB7XG5cdHJldHVybiB2YWx1ZS5zbGljZShiZWdpbiwgZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RybGVuICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUubGVuZ3RoXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpemVvZiAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHBhcmFtIHthbnlbXX0gYXJyYXlcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZCAodmFsdWUsIGFycmF5KSB7XG5cdHJldHVybiBhcnJheS5wdXNoKHZhbHVlKSwgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUgKGFycmF5LCBjYWxsYmFjaykge1xuXHRyZXR1cm4gYXJyYXkubWFwKGNhbGxiYWNrKS5qb2luKCcnKVxufVxuIiwgImltcG9ydCB7ZnJvbSwgdHJpbSwgY2hhcmF0LCBzdHJsZW4sIHN1YnN0ciwgYXBwZW5kLCBhc3NpZ259IGZyb20gJy4vVXRpbGl0eS5qcydcblxuZXhwb3J0IHZhciBsaW5lID0gMVxuZXhwb3J0IHZhciBjb2x1bW4gPSAxXG5leHBvcnQgdmFyIGxlbmd0aCA9IDBcbmV4cG9ydCB2YXIgcG9zaXRpb24gPSAwXG5leHBvcnQgdmFyIGNoYXJhY3RlciA9IDBcbmV4cG9ydCB2YXIgY2hhcmFjdGVycyA9ICcnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdCB8IG51bGx9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbH0gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZ30gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0W10gfCBzdHJpbmd9IGNoaWxkcmVuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub2RlICh2YWx1ZSwgcm9vdCwgcGFyZW50LCB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCkge1xuXHRyZXR1cm4ge3ZhbHVlOiB2YWx1ZSwgcm9vdDogcm9vdCwgcGFyZW50OiBwYXJlbnQsIHR5cGU6IHR5cGUsIHByb3BzOiBwcm9wcywgY2hpbGRyZW46IGNoaWxkcmVuLCBsaW5lOiBsaW5lLCBjb2x1bW46IGNvbHVtbiwgbGVuZ3RoOiBsZW5ndGgsIHJldHVybjogJyd9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weSAocm9vdCwgcHJvcHMpIHtcblx0cmV0dXJuIGFzc2lnbihub2RlKCcnLCBudWxsLCBudWxsLCAnJywgbnVsbCwgbnVsbCwgMCksIHJvb3QsIHtsZW5ndGg6IC1yb290Lmxlbmd0aH0sIHByb3BzKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXIgKCkge1xuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldiAoKSB7XG5cdGNoYXJhY3RlciA9IHBvc2l0aW9uID4gMCA/IGNoYXJhdChjaGFyYWN0ZXJzLCAtLXBvc2l0aW9uKSA6IDBcblxuXHRpZiAoY29sdW1uLS0sIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZS0tXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHQgKCkge1xuXHRjaGFyYWN0ZXIgPSBwb3NpdGlvbiA8IGxlbmd0aCA/IGNoYXJhdChjaGFyYWN0ZXJzLCBwb3NpdGlvbisrKSA6IDBcblxuXHRpZiAoY29sdW1uKyssIGNoYXJhY3RlciA9PT0gMTApXG5cdFx0Y29sdW1uID0gMSwgbGluZSsrXG5cblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlZWsgKCkge1xuXHRyZXR1cm4gY2hhcmF0KGNoYXJhY3RlcnMsIHBvc2l0aW9uKVxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcmV0ICgpIHtcblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGljZSAoYmVnaW4sIGVuZCkge1xuXHRyZXR1cm4gc3Vic3RyKGNoYXJhY3RlcnMsIGJlZ2luLCBlbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuICh0eXBlKSB7XG5cdHN3aXRjaCAodHlwZSkge1xuXHRcdC8vIFxcMCBcXHQgXFxuIFxcciBcXHMgd2hpdGVzcGFjZSB0b2tlblxuXHRcdGNhc2UgMDogY2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0cmV0dXJuIDVcblx0XHQvLyAhICsgLCAvID4gQCB+IGlzb2xhdGUgdG9rZW5cblx0XHRjYXNlIDMzOiBjYXNlIDQzOiBjYXNlIDQ0OiBjYXNlIDQ3OiBjYXNlIDYyOiBjYXNlIDY0OiBjYXNlIDEyNjpcblx0XHQvLyA7IHsgfSBicmVha3BvaW50IHRva2VuXG5cdFx0Y2FzZSA1OTogY2FzZSAxMjM6IGNhc2UgMTI1OlxuXHRcdFx0cmV0dXJuIDRcblx0XHQvLyA6IGFjY29tcGFuaWVkIHRva2VuXG5cdFx0Y2FzZSA1ODpcblx0XHRcdHJldHVybiAzXG5cdFx0Ly8gXCIgJyAoIFsgb3BlbmluZyBkZWxpbWl0IHRva2VuXG5cdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA0MDogY2FzZSA5MTpcblx0XHRcdHJldHVybiAyXG5cdFx0Ly8gKSBdIGNsb3NpbmcgZGVsaW1pdCB0b2tlblxuXHRcdGNhc2UgNDE6IGNhc2UgOTM6XG5cdFx0XHRyZXR1cm4gMVxuXHR9XG5cblx0cmV0dXJuIDBcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge2FueVtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBsaW5lID0gY29sdW1uID0gMSwgbGVuZ3RoID0gc3RybGVuKGNoYXJhY3RlcnMgPSB2YWx1ZSksIHBvc2l0aW9uID0gMCwgW11cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlYWxsb2MgKHZhbHVlKSB7XG5cdHJldHVybiBjaGFyYWN0ZXJzID0gJycsIHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGltaXQgKHR5cGUpIHtcblx0cmV0dXJuIHRyaW0oc2xpY2UocG9zaXRpb24gLSAxLCBkZWxpbWl0ZXIodHlwZSA9PT0gOTEgPyB0eXBlICsgMiA6IHR5cGUgPT09IDQwID8gdHlwZSArIDEgOiB0eXBlKSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuaXplICh2YWx1ZSkge1xuXHRyZXR1cm4gZGVhbGxvYyh0b2tlbml6ZXIoYWxsb2ModmFsdWUpKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSAodHlwZSkge1xuXHR3aGlsZSAoY2hhcmFjdGVyID0gcGVlaygpKVxuXHRcdGlmIChjaGFyYWN0ZXIgPCAzMylcblx0XHRcdG5leHQoKVxuXHRcdGVsc2Vcblx0XHRcdGJyZWFrXG5cblx0cmV0dXJuIHRva2VuKHR5cGUpID4gMiB8fCB0b2tlbihjaGFyYWN0ZXIpID4gMyA/ICcnIDogJyAnXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gY2hpbGRyZW5cbiAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemVyIChjaGlsZHJlbikge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdHN3aXRjaCAodG9rZW4oY2hhcmFjdGVyKSkge1xuXHRcdFx0Y2FzZSAwOiBhcHBlbmQoaWRlbnRpZmllcihwb3NpdGlvbiAtIDEpLCBjaGlsZHJlbilcblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgMjogYXBwZW5kKGRlbGltaXQoY2hhcmFjdGVyKSwgY2hpbGRyZW4pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRkZWZhdWx0OiBhcHBlbmQoZnJvbShjaGFyYWN0ZXIpLCBjaGlsZHJlbilcblx0XHR9XG5cblx0cmV0dXJuIGNoaWxkcmVuXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwaW5nIChpbmRleCwgY291bnQpIHtcblx0d2hpbGUgKC0tY291bnQgJiYgbmV4dCgpKVxuXHRcdC8vIG5vdCAwLTkgQS1GIGEtZlxuXHRcdGlmIChjaGFyYWN0ZXIgPCA0OCB8fCBjaGFyYWN0ZXIgPiAxMDIgfHwgKGNoYXJhY3RlciA+IDU3ICYmIGNoYXJhY3RlciA8IDY1KSB8fCAoY2hhcmFjdGVyID4gNzAgJiYgY2hhcmFjdGVyIDwgOTcpKVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gc2xpY2UoaW5kZXgsIGNhcmV0KCkgKyAoY291bnQgPCA2ICYmIHBlZWsoKSA9PSAzMiAmJiBuZXh0KCkgPT0gMzIpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxpbWl0ZXIgKHR5cGUpIHtcblx0d2hpbGUgKG5leHQoKSlcblx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0Ly8gXSApIFwiICdcblx0XHRcdGNhc2UgdHlwZTpcblx0XHRcdFx0cmV0dXJuIHBvc2l0aW9uXG5cdFx0XHQvLyBcIiAnXG5cdFx0XHRjYXNlIDM0OiBjYXNlIDM5OlxuXHRcdFx0XHRpZiAodHlwZSAhPT0gMzQgJiYgdHlwZSAhPT0gMzkpXG5cdFx0XHRcdFx0ZGVsaW1pdGVyKGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIChcblx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdGlmICh0eXBlID09PSA0MSlcblx0XHRcdFx0XHRkZWxpbWl0ZXIodHlwZSlcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcXG5cdFx0XHRjYXNlIDkyOlxuXHRcdFx0XHRuZXh0KClcblx0XHRcdFx0YnJlYWtcblx0XHR9XG5cblx0cmV0dXJuIHBvc2l0aW9uXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudGVyICh0eXBlLCBpbmRleCkge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdC8vIC8vXG5cdFx0aWYgKHR5cGUgKyBjaGFyYWN0ZXIgPT09IDQ3ICsgMTApXG5cdFx0XHRicmVha1xuXHRcdC8vIC8qXG5cdFx0ZWxzZSBpZiAodHlwZSArIGNoYXJhY3RlciA9PT0gNDIgKyA0MiAmJiBwZWVrKCkgPT09IDQ3KVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gJy8qJyArIHNsaWNlKGluZGV4LCBwb3NpdGlvbiAtIDEpICsgJyonICsgZnJvbSh0eXBlID09PSA0NyA/IHR5cGUgOiBuZXh0KCkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmaWVyIChpbmRleCkge1xuXHR3aGlsZSAoIXRva2VuKHBlZWsoKSkpXG5cdFx0bmV4dCgpXG5cblx0cmV0dXJuIHNsaWNlKGluZGV4LCBwb3NpdGlvbilcbn1cbiIsICJpbXBvcnQge0NPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge2FicywgY2hhcmF0LCB0cmltLCBmcm9tLCBzaXplb2YsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIHJlcGxhY2UsIGluZGV4b2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7bm9kZSwgY2hhciwgcHJldiwgbmV4dCwgcGVlaywgY2FyZXQsIGFsbG9jLCBkZWFsbG9jLCBkZWxpbWl0LCB3aGl0ZXNwYWNlLCBlc2NhcGluZywgaWRlbnRpZmllciwgY29tbWVudGVyfSBmcm9tICcuL1Rva2VuaXplci5qcydcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge29iamVjdFtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZSAodmFsdWUpIHtcblx0cmV0dXJuIGRlYWxsb2MocGFyc2UoJycsIG51bGwsIG51bGwsIG51bGwsIFsnJ10sIHZhbHVlID0gYWxsb2ModmFsdWUpLCAwLCBbMF0sIHZhbHVlKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzZXRzXG4gKiBAcGFyYW0ge251bWJlcltdfSBwc2V1ZG9cbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmdbXX0gZGVjbGFyYXRpb25zXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSAodmFsdWUsIHJvb3QsIHBhcmVudCwgcnVsZSwgcnVsZXMsIHJ1bGVzZXRzLCBwc2V1ZG8sIHBvaW50cywgZGVjbGFyYXRpb25zKSB7XG5cdHZhciBpbmRleCA9IDBcblx0dmFyIG9mZnNldCA9IDBcblx0dmFyIGxlbmd0aCA9IHBzZXVkb1xuXHR2YXIgYXRydWxlID0gMFxuXHR2YXIgcHJvcGVydHkgPSAwXG5cdHZhciBwcmV2aW91cyA9IDBcblx0dmFyIHZhcmlhYmxlID0gMVxuXHR2YXIgc2Nhbm5pbmcgPSAxXG5cdHZhciBhbXBlcnNhbmQgPSAxXG5cdHZhciBjaGFyYWN0ZXIgPSAwXG5cdHZhciB0eXBlID0gJydcblx0dmFyIHByb3BzID0gcnVsZXNcblx0dmFyIGNoaWxkcmVuID0gcnVsZXNldHNcblx0dmFyIHJlZmVyZW5jZSA9IHJ1bGVcblx0dmFyIGNoYXJhY3RlcnMgPSB0eXBlXG5cblx0d2hpbGUgKHNjYW5uaW5nKVxuXHRcdHN3aXRjaCAocHJldmlvdXMgPSBjaGFyYWN0ZXIsIGNoYXJhY3RlciA9IG5leHQoKSkge1xuXHRcdFx0Ly8gKFxuXHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0aWYgKHByZXZpb3VzICE9IDEwOCAmJiBjaGFyYXQoY2hhcmFjdGVycywgbGVuZ3RoIC0gMSkgPT0gNTgpIHtcblx0XHRcdFx0XHRpZiAoaW5kZXhvZihjaGFyYWN0ZXJzICs9IHJlcGxhY2UoZGVsaW1pdChjaGFyYWN0ZXIpLCAnJicsICcmXFxmJyksICcmXFxmJykgIT0gLTEpXG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSAtMVxuXHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdH1cblx0XHRcdC8vIFwiICcgW1xuXHRcdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA5MTpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcdCBcXG4gXFxyIFxcc1xuXHRcdFx0Y2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0XHRjaGFyYWN0ZXJzICs9IHdoaXRlc3BhY2UocHJldmlvdXMpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXFxuXHRcdFx0Y2FzZSA5Mjpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBlc2NhcGluZyhjYXJldCgpIC0gMSwgNylcblx0XHRcdFx0Y29udGludWVcblx0XHRcdC8vIC9cblx0XHRcdGNhc2UgNDc6XG5cdFx0XHRcdHN3aXRjaCAocGVlaygpKSB7XG5cdFx0XHRcdFx0Y2FzZSA0MjogY2FzZSA0Nzpcblx0XHRcdFx0XHRcdGFwcGVuZChjb21tZW50KGNvbW1lbnRlcihuZXh0KCksIGNhcmV0KCkpLCByb290LCBwYXJlbnQpLCBkZWNsYXJhdGlvbnMpXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRjaGFyYWN0ZXJzICs9ICcvJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyB7XG5cdFx0XHRjYXNlIDEyMyAqIHZhcmlhYmxlOlxuXHRcdFx0XHRwb2ludHNbaW5kZXgrK10gPSBzdHJsZW4oY2hhcmFjdGVycykgKiBhbXBlcnNhbmRcblx0XHRcdC8vIH0gOyBcXDBcblx0XHRcdGNhc2UgMTI1ICogdmFyaWFibGU6IGNhc2UgNTk6IGNhc2UgMDpcblx0XHRcdFx0c3dpdGNoIChjaGFyYWN0ZXIpIHtcblx0XHRcdFx0XHQvLyBcXDAgfVxuXHRcdFx0XHRcdGNhc2UgMDogY2FzZSAxMjU6IHNjYW5uaW5nID0gMFxuXHRcdFx0XHRcdC8vIDtcblx0XHRcdFx0XHRjYXNlIDU5ICsgb2Zmc2V0OiBpZiAoYW1wZXJzYW5kID09IC0xKSBjaGFyYWN0ZXJzID0gcmVwbGFjZShjaGFyYWN0ZXJzLCAvXFxmL2csICcnKVxuXHRcdFx0XHRcdFx0aWYgKHByb3BlcnR5ID4gMCAmJiAoc3RybGVuKGNoYXJhY3RlcnMpIC0gbGVuZ3RoKSlcblx0XHRcdFx0XHRcdFx0YXBwZW5kKHByb3BlcnR5ID4gMzIgPyBkZWNsYXJhdGlvbihjaGFyYWN0ZXJzICsgJzsnLCBydWxlLCBwYXJlbnQsIGxlbmd0aCAtIDEpIDogZGVjbGFyYXRpb24ocmVwbGFjZShjaGFyYWN0ZXJzLCAnICcsICcnKSArICc7JywgcnVsZSwgcGFyZW50LCBsZW5ndGggLSAyKSwgZGVjbGFyYXRpb25zKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyBAIDtcblx0XHRcdFx0XHRjYXNlIDU5OiBjaGFyYWN0ZXJzICs9ICc7J1xuXHRcdFx0XHRcdC8vIHsgcnVsZS9hdC1ydWxlXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGFwcGVuZChyZWZlcmVuY2UgPSBydWxlc2V0KGNoYXJhY3RlcnMsIHJvb3QsIHBhcmVudCwgaW5kZXgsIG9mZnNldCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcHJvcHMgPSBbXSwgY2hpbGRyZW4gPSBbXSwgbGVuZ3RoKSwgcnVsZXNldHMpXG5cblx0XHRcdFx0XHRcdGlmIChjaGFyYWN0ZXIgPT09IDEyMylcblx0XHRcdFx0XHRcdFx0aWYgKG9mZnNldCA9PT0gMClcblx0XHRcdFx0XHRcdFx0XHRwYXJzZShjaGFyYWN0ZXJzLCByb290LCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgcHJvcHMsIHJ1bGVzZXRzLCBsZW5ndGgsIHBvaW50cywgY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGF0cnVsZSA9PT0gOTkgJiYgY2hhcmF0KGNoYXJhY3RlcnMsIDMpID09PSAxMTAgPyAxMDAgOiBhdHJ1bGUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGQgbCBtIHNcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgMTAwOiBjYXNlIDEwODogY2FzZSAxMDk6IGNhc2UgMTE1OlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXJzZSh2YWx1ZSwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHJ1bGUgJiYgYXBwZW5kKHJ1bGVzZXQodmFsdWUsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCAwLCAwLCBydWxlcywgcG9pbnRzLCB0eXBlLCBydWxlcywgcHJvcHMgPSBbXSwgbGVuZ3RoKSwgY2hpbGRyZW4pLCBydWxlcywgY2hpbGRyZW4sIGxlbmd0aCwgcG9pbnRzLCBydWxlID8gcHJvcHMgOiBjaGlsZHJlbilcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhcnNlKGNoYXJhY3RlcnMsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIFsnJ10sIGNoaWxkcmVuLCAwLCBwb2ludHMsIGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGluZGV4ID0gb2Zmc2V0ID0gcHJvcGVydHkgPSAwLCB2YXJpYWJsZSA9IGFtcGVyc2FuZCA9IDEsIHR5cGUgPSBjaGFyYWN0ZXJzID0gJycsIGxlbmd0aCA9IHBzZXVkb1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gOlxuXHRcdFx0Y2FzZSA1ODpcblx0XHRcdFx0bGVuZ3RoID0gMSArIHN0cmxlbihjaGFyYWN0ZXJzKSwgcHJvcGVydHkgPSBwcmV2aW91c1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0aWYgKHZhcmlhYmxlIDwgMSlcblx0XHRcdFx0XHRpZiAoY2hhcmFjdGVyID09IDEyMylcblx0XHRcdFx0XHRcdC0tdmFyaWFibGVcblx0XHRcdFx0XHRlbHNlIGlmIChjaGFyYWN0ZXIgPT0gMTI1ICYmIHZhcmlhYmxlKysgPT0gMCAmJiBwcmV2KCkgPT0gMTI1KVxuXHRcdFx0XHRcdFx0Y29udGludWVcblxuXHRcdFx0XHRzd2l0Y2ggKGNoYXJhY3RlcnMgKz0gZnJvbShjaGFyYWN0ZXIpLCBjaGFyYWN0ZXIgKiB2YXJpYWJsZSkge1xuXHRcdFx0XHRcdC8vICZcblx0XHRcdFx0XHRjYXNlIDM4OlxuXHRcdFx0XHRcdFx0YW1wZXJzYW5kID0gb2Zmc2V0ID4gMCA/IDEgOiAoY2hhcmFjdGVycyArPSAnXFxmJywgLTEpXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vICxcblx0XHRcdFx0XHRjYXNlIDQ0OlxuXHRcdFx0XHRcdFx0cG9pbnRzW2luZGV4KytdID0gKHN0cmxlbihjaGFyYWN0ZXJzKSAtIDEpICogYW1wZXJzYW5kLCBhbXBlcnNhbmQgPSAxXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIEBcblx0XHRcdFx0XHRjYXNlIDY0OlxuXHRcdFx0XHRcdFx0Ly8gLVxuXHRcdFx0XHRcdFx0aWYgKHBlZWsoKSA9PT0gNDUpXG5cdFx0XHRcdFx0XHRcdGNoYXJhY3RlcnMgKz0gZGVsaW1pdChuZXh0KCkpXG5cblx0XHRcdFx0XHRcdGF0cnVsZSA9IHBlZWsoKSwgb2Zmc2V0ID0gbGVuZ3RoID0gc3RybGVuKHR5cGUgPSBjaGFyYWN0ZXJzICs9IGlkZW50aWZpZXIoY2FyZXQoKSkpLCBjaGFyYWN0ZXIrK1xuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyAtXG5cdFx0XHRcdFx0Y2FzZSA0NTpcblx0XHRcdFx0XHRcdGlmIChwcmV2aW91cyA9PT0gNDUgJiYgc3RybGVuKGNoYXJhY3RlcnMpID09IDIpXG5cdFx0XHRcdFx0XHRcdHZhcmlhYmxlID0gMFxuXHRcdFx0XHR9XG5cdFx0fVxuXG5cdHJldHVybiBydWxlc2V0c1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXRcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzXG4gKiBAcGFyYW0ge251bWJlcltdfSBwb2ludHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gY2hpbGRyZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzZXQgKHZhbHVlLCByb290LCBwYXJlbnQsIGluZGV4LCBvZmZzZXQsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoKSB7XG5cdHZhciBwb3N0ID0gb2Zmc2V0IC0gMVxuXHR2YXIgcnVsZSA9IG9mZnNldCA9PT0gMCA/IHJ1bGVzIDogWycnXVxuXHR2YXIgc2l6ZSA9IHNpemVvZihydWxlKVxuXG5cdGZvciAodmFyIGkgPSAwLCBqID0gMCwgayA9IDA7IGkgPCBpbmRleDsgKytpKVxuXHRcdGZvciAodmFyIHggPSAwLCB5ID0gc3Vic3RyKHZhbHVlLCBwb3N0ICsgMSwgcG9zdCA9IGFicyhqID0gcG9pbnRzW2ldKSksIHogPSB2YWx1ZTsgeCA8IHNpemU7ICsreClcblx0XHRcdGlmICh6ID0gdHJpbShqID4gMCA/IHJ1bGVbeF0gKyAnICcgKyB5IDogcmVwbGFjZSh5LCAvJlxcZi9nLCBydWxlW3hdKSkpXG5cdFx0XHRcdHByb3BzW2srK10gPSB6XG5cblx0cmV0dXJuIG5vZGUodmFsdWUsIHJvb3QsIHBhcmVudCwgb2Zmc2V0ID09PSAwID8gUlVMRVNFVCA6IHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ICh2YWx1ZSwgcm9vdCwgcGFyZW50KSB7XG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIENPTU1FTlQsIGZyb20oY2hhcigpKSwgc3Vic3RyKHZhbHVlLCAyLCAtMiksIDApXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBsZW5ndGgpIHtcblx0cmV0dXJuIG5vZGUodmFsdWUsIHJvb3QsIHBhcmVudCwgREVDTEFSQVRJT04sIHN1YnN0cih2YWx1ZSwgMCwgbGVuZ3RoKSwgc3Vic3RyKHZhbHVlLCBsZW5ndGggKyAxLCAtMSksIGxlbmd0aClcbn1cbiIsICJpbXBvcnQge0lNUE9SVCwgTEFZRVIsIENPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OLCBLRVlGUkFNRVN9IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7c3RybGVuLCBzaXplb2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZSAoY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHZhciBvdXRwdXQgPSAnJ1xuXHR2YXIgbGVuZ3RoID0gc2l6ZW9mKGNoaWxkcmVuKVxuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0b3V0cHV0ICs9IGNhbGxiYWNrKGNoaWxkcmVuW2ldLCBpLCBjaGlsZHJlbiwgY2FsbGJhY2spIHx8ICcnXG5cblx0cmV0dXJuIG91dHB1dFxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5IChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG5cdFx0Y2FzZSBMQVlFUjogaWYgKGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSBicmVha1xuXHRcdGNhc2UgSU1QT1JUOiBjYXNlIERFQ0xBUkFUSU9OOiByZXR1cm4gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnJldHVybiB8fCBlbGVtZW50LnZhbHVlXG5cdFx0Y2FzZSBDT01NRU5UOiByZXR1cm4gJydcblx0XHRjYXNlIEtFWUZSQU1FUzogcmV0dXJuIGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC52YWx1ZSArICd7JyArIHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykgKyAnfSdcblx0XHRjYXNlIFJVTEVTRVQ6IGVsZW1lbnQudmFsdWUgPSBlbGVtZW50LnByb3BzLmpvaW4oJywnKVxuXHR9XG5cblx0cmV0dXJuIHN0cmxlbihjaGlsZHJlbiA9IHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykpID8gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnZhbHVlICsgJ3snICsgY2hpbGRyZW4gKyAnfScgOiAnJ1xufVxuIiwgImltcG9ydCB7TVMsIE1PWiwgV0VCS0lULCBSVUxFU0VULCBLRVlGUkFNRVMsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge21hdGNoLCBjaGFyYXQsIHN1YnN0ciwgc3RybGVuLCBzaXplb2YsIHJlcGxhY2UsIGNvbWJpbmV9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7Y29weSwgdG9rZW5pemV9IGZyb20gJy4vVG9rZW5pemVyLmpzJ1xuaW1wb3J0IHtzZXJpYWxpemV9IGZyb20gJy4vU2VyaWFsaXplci5qcydcbmltcG9ydCB7cHJlZml4fSBmcm9tICcuL1ByZWZpeGVyLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb25bXX0gY29sbGVjdGlvblxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWRkbGV3YXJlIChjb2xsZWN0aW9uKSB7XG5cdHZhciBsZW5ndGggPSBzaXplb2YoY29sbGVjdGlvbilcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0XHR2YXIgb3V0cHV0ID0gJydcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0XHRvdXRwdXQgKz0gY29sbGVjdGlvbltpXShlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB8fCAnJ1xuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNoZWV0IChjYWxsYmFjaykge1xuXHRyZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcblx0XHRpZiAoIWVsZW1lbnQucm9vdClcblx0XHRcdGlmIChlbGVtZW50ID0gZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRcdGNhbGxiYWNrKGVsZW1lbnQpXG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeGVyIChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdGlmIChlbGVtZW50Lmxlbmd0aCA+IC0xKVxuXHRcdGlmICghZWxlbWVudC5yZXR1cm4pXG5cdFx0XHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdFx0XHRjYXNlIERFQ0xBUkFUSU9OOiBlbGVtZW50LnJldHVybiA9IHByZWZpeChlbGVtZW50LnZhbHVlLCBlbGVtZW50Lmxlbmd0aCwgY2hpbGRyZW4pXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdGNhc2UgS0VZRlJBTUVTOlxuXHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge3ZhbHVlOiByZXBsYWNlKGVsZW1lbnQudmFsdWUsICdAJywgJ0AnICsgV0VCS0lUKX0pXSwgY2FsbGJhY2spXG5cdFx0XHRcdGNhc2UgUlVMRVNFVDpcblx0XHRcdFx0XHRpZiAoZWxlbWVudC5sZW5ndGgpXG5cdFx0XHRcdFx0XHRyZXR1cm4gY29tYmluZShlbGVtZW50LnByb3BzLCBmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdFx0XHRcdFx0c3dpdGNoIChtYXRjaCh2YWx1ZSwgLyg6OnBsYWNcXHcrfDpyZWFkLVxcdyspLykpIHtcblx0XHRcdFx0XHRcdFx0XHQvLyA6cmVhZC0ob25seXx3cml0ZSlcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6cmVhZC1vbmx5JzogY2FzZSAnOnJlYWQtd3JpdGUnOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7cHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihyZWFkLVxcdyspLywgJzonICsgTU9aICsgJyQxJyldfSldLCBjYWxsYmFjaylcblx0XHRcdFx0XHRcdFx0XHQvLyA6cGxhY2Vob2xkZXJcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6OnBsYWNlaG9sZGVyJzpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzZXJpYWxpemUoW1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIFdFQktJVCArICdpbnB1dC0kMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIE1PWiArICckMScpXX0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sIE1TICsgJ2lucHV0LSQxJyldfSlcblx0XHRcdFx0XHRcdFx0XHRcdF0sIGNhbGxiYWNrKVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuICcnXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lc3BhY2UgKGVsZW1lbnQpIHtcblx0c3dpdGNoIChlbGVtZW50LnR5cGUpIHtcblx0XHRjYXNlIFJVTEVTRVQ6XG5cdFx0XHRlbGVtZW50LnByb3BzID0gZWxlbWVudC5wcm9wcy5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiBjb21iaW5lKHRva2VuaXplKHZhbHVlKSwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgY2hpbGRyZW4pIHtcblx0XHRcdFx0XHRzd2l0Y2ggKGNoYXJhdCh2YWx1ZSwgMCkpIHtcblx0XHRcdFx0XHRcdC8vIFxcZlxuXHRcdFx0XHRcdFx0Y2FzZSAxMjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHN1YnN0cih2YWx1ZSwgMSwgc3RybGVuKHZhbHVlKSlcblx0XHRcdFx0XHRcdC8vIFxcMCAoICsgPiB+XG5cdFx0XHRcdFx0XHRjYXNlIDA6IGNhc2UgNDA6IGNhc2UgNDM6IGNhc2UgNjI6IGNhc2UgMTI2OlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0XHRcdC8vIDpcblx0XHRcdFx0XHRcdGNhc2UgNTg6XG5cdFx0XHRcdFx0XHRcdGlmIChjaGlsZHJlblsrK2luZGV4XSA9PT0gJ2dsb2JhbCcpXG5cdFx0XHRcdFx0XHRcdFx0Y2hpbGRyZW5baW5kZXhdID0gJycsIGNoaWxkcmVuWysraW5kZXhdID0gJ1xcZicgKyBzdWJzdHIoY2hpbGRyZW5baW5kZXhdLCBpbmRleCA9IDEsIC0xKVxuXHRcdFx0XHRcdFx0Ly8gXFxzXG5cdFx0XHRcdFx0XHRjYXNlIDMyOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaW5kZXggPT09IDEgPyAnJyA6IHZhbHVlXG5cdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGluZGV4KSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAwOiBlbGVtZW50ID0gdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBzaXplb2YoY2hpbGRyZW4pID4gMSA/ICcnIDogdmFsdWVcblx0XHRcdFx0XHRcdFx0XHRjYXNlIGluZGV4ID0gc2l6ZW9mKGNoaWxkcmVuKSAtIDE6IGNhc2UgMjpcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBpbmRleCA9PT0gMiA/IHZhbHVlICsgZWxlbWVudCArIGVsZW1lbnQgOiB2YWx1ZSArIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXHR9XG59XG4iLCAiZnVuY3Rpb24gbWVtb2l6ZShmbikge1xuICB2YXIgY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gZnVuY3Rpb24gKGFyZykge1xuICAgIGlmIChjYWNoZVthcmddID09PSB1bmRlZmluZWQpIGNhY2hlW2FyZ10gPSBmbihhcmcpO1xuICAgIHJldHVybiBjYWNoZVthcmddO1xuICB9O1xufVxuXG5leHBvcnQgeyBtZW1vaXplIGFzIGRlZmF1bHQgfTtcbiIsICJpbXBvcnQgeyBTdHlsZVNoZWV0IH0gZnJvbSAnQGVtb3Rpb24vc2hlZXQnO1xuaW1wb3J0IHsgZGVhbGxvYywgYWxsb2MsIG5leHQsIHRva2VuLCBmcm9tLCBwZWVrLCBkZWxpbWl0LCBzbGljZSwgcG9zaXRpb24sIFJVTEVTRVQsIGNvbWJpbmUsIG1hdGNoLCBzZXJpYWxpemUsIGNvcHksIHJlcGxhY2UsIFdFQktJVCwgTU9aLCBNUywgS0VZRlJBTUVTLCBERUNMQVJBVElPTiwgaGFzaCwgY2hhcmF0LCBzdHJsZW4sIGluZGV4b2YsIHN0cmluZ2lmeSwgcnVsZXNoZWV0LCBtaWRkbGV3YXJlLCBjb21waWxlIH0gZnJvbSAnc3R5bGlzJztcbmltcG9ydCAnQGVtb3Rpb24vd2Vhay1tZW1vaXplJztcbmltcG9ydCAnQGVtb3Rpb24vbWVtb2l6ZSc7XG5cbnZhciBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcgPSBmdW5jdGlvbiBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcoYmVnaW4sIHBvaW50cywgaW5kZXgpIHtcbiAgdmFyIHByZXZpb3VzID0gMDtcbiAgdmFyIGNoYXJhY3RlciA9IDA7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBwcmV2aW91cyA9IGNoYXJhY3RlcjtcbiAgICBjaGFyYWN0ZXIgPSBwZWVrKCk7IC8vICZcXGZcblxuICAgIGlmIChwcmV2aW91cyA9PT0gMzggJiYgY2hhcmFjdGVyID09PSAxMikge1xuICAgICAgcG9pbnRzW2luZGV4XSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuKGNoYXJhY3RlcikpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIG5leHQoKTtcbiAgfVxuXG4gIHJldHVybiBzbGljZShiZWdpbiwgcG9zaXRpb24pO1xufTtcblxudmFyIHRvUnVsZXMgPSBmdW5jdGlvbiB0b1J1bGVzKHBhcnNlZCwgcG9pbnRzKSB7XG4gIC8vIHByZXRlbmQgd2UndmUgc3RhcnRlZCB3aXRoIGEgY29tbWFcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBjaGFyYWN0ZXIgPSA0NDtcblxuICBkbyB7XG4gICAgc3dpdGNoICh0b2tlbihjaGFyYWN0ZXIpKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIC8vICZcXGZcbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gMzggJiYgcGVlaygpID09PSAxMikge1xuICAgICAgICAgIC8vIHRoaXMgaXMgbm90IDEwMCUgY29ycmVjdCwgd2UgZG9uJ3QgYWNjb3VudCBmb3IgbGl0ZXJhbCBzZXF1ZW5jZXMgaGVyZSAtIGxpa2UgZm9yIGV4YW1wbGUgcXVvdGVkIHN0cmluZ3NcbiAgICAgICAgICAvLyBzdHlsaXMgaW5zZXJ0cyBcXGYgYWZ0ZXIgJiB0byBrbm93IHdoZW4gJiB3aGVyZSBpdCBzaG91bGQgcmVwbGFjZSB0aGlzIHNlcXVlbmNlIHdpdGggdGhlIGNvbnRleHQgc2VsZWN0b3JcbiAgICAgICAgICAvLyBhbmQgd2hlbiBpdCBzaG91bGQganVzdCBjb25jYXRlbmF0ZSB0aGUgb3V0ZXIgYW5kIGlubmVyIHNlbGVjdG9yc1xuICAgICAgICAgIC8vIGl0J3MgdmVyeSB1bmxpa2VseSBmb3IgdGhpcyBzZXF1ZW5jZSB0byBhY3R1YWxseSBhcHBlYXIgaW4gYSBkaWZmZXJlbnQgY29udGV4dCwgc28gd2UganVzdCBsZXZlcmFnZSB0aGlzIGZhY3QgaGVyZVxuICAgICAgICAgIHBvaW50c1tpbmRleF0gPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyc2VkW2luZGV4XSArPSBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcocG9zaXRpb24gLSAxLCBwb2ludHMsIGluZGV4KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcGFyc2VkW2luZGV4XSArPSBkZWxpbWl0KGNoYXJhY3Rlcik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDQ6XG4gICAgICAgIC8vIGNvbW1hXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IDQ0KSB7XG4gICAgICAgICAgLy8gY29sb25cbiAgICAgICAgICBwYXJzZWRbKytpbmRleF0gPSBwZWVrKCkgPT09IDU4ID8gJyZcXGYnIDogJyc7XG4gICAgICAgICAgcG9pbnRzW2luZGV4XSA9IHBhcnNlZFtpbmRleF0ubGVuZ3RoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIC8vIGZhbGx0aHJvdWdoXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHBhcnNlZFtpbmRleF0gKz0gZnJvbShjaGFyYWN0ZXIpO1xuICAgIH1cbiAgfSB3aGlsZSAoY2hhcmFjdGVyID0gbmV4dCgpKTtcblxuICByZXR1cm4gcGFyc2VkO1xufTtcblxudmFyIGdldFJ1bGVzID0gZnVuY3Rpb24gZ2V0UnVsZXModmFsdWUsIHBvaW50cykge1xuICByZXR1cm4gZGVhbGxvYyh0b1J1bGVzKGFsbG9jKHZhbHVlKSwgcG9pbnRzKSk7XG59OyAvLyBXZWFrU2V0IHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUsIGJ1dCBvbmx5IFdlYWtNYXAgaXMgc3VwcG9ydGVkIGluIElFMTFcblxuXG52YXIgZml4ZWRFbGVtZW50cyA9IC8qICNfX1BVUkVfXyAqL25ldyBXZWFrTWFwKCk7XG52YXIgY29tcGF0ID0gZnVuY3Rpb24gY29tcGF0KGVsZW1lbnQpIHtcbiAgaWYgKGVsZW1lbnQudHlwZSAhPT0gJ3J1bGUnIHx8ICFlbGVtZW50LnBhcmVudCB8fCAvLyBwb3NpdGl2ZSAubGVuZ3RoIGluZGljYXRlcyB0aGF0IHRoaXMgcnVsZSBjb250YWlucyBwc2V1ZG9cbiAgLy8gbmVnYXRpdmUgLmxlbmd0aCBpbmRpY2F0ZXMgdGhhdCB0aGlzIHJ1bGUgaGFzIGJlZW4gYWxyZWFkeSBwcmVmaXhlZFxuICBlbGVtZW50Lmxlbmd0aCA8IDEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgdmFsdWUgPSBlbGVtZW50LnZhbHVlLFxuICAgICAgcGFyZW50ID0gZWxlbWVudC5wYXJlbnQ7XG4gIHZhciBpc0ltcGxpY2l0UnVsZSA9IGVsZW1lbnQuY29sdW1uID09PSBwYXJlbnQuY29sdW1uICYmIGVsZW1lbnQubGluZSA9PT0gcGFyZW50LmxpbmU7XG5cbiAgd2hpbGUgKHBhcmVudC50eXBlICE9PSAncnVsZScpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgIGlmICghcGFyZW50KSByZXR1cm47XG4gIH0gLy8gc2hvcnQtY2lyY3VpdCBmb3IgdGhlIHNpbXBsZXN0IGNhc2VcblxuXG4gIGlmIChlbGVtZW50LnByb3BzLmxlbmd0aCA9PT0gMSAmJiB2YWx1ZS5jaGFyQ29kZUF0KDApICE9PSA1OFxuICAvKiBjb2xvbiAqL1xuICAmJiAhZml4ZWRFbGVtZW50cy5nZXQocGFyZW50KSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBpZiB0aGlzIGlzIGFuIGltcGxpY2l0bHkgaW5zZXJ0ZWQgcnVsZSAodGhlIG9uZSBlYWdlcmx5IGluc2VydGVkIGF0IHRoZSBlYWNoIG5ldyBuZXN0ZWQgbGV2ZWwpXG4gIC8vIHRoZW4gdGhlIHByb3BzIGhhcyBhbHJlYWR5IGJlZW4gbWFuaXB1bGF0ZWQgYmVmb3JlaGFuZCBhcyB0aGV5IHRoYXQgYXJyYXkgaXMgc2hhcmVkIGJldHdlZW4gaXQgYW5kIGl0cyBcInJ1bGUgcGFyZW50XCJcblxuXG4gIGlmIChpc0ltcGxpY2l0UnVsZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZpeGVkRWxlbWVudHMuc2V0KGVsZW1lbnQsIHRydWUpO1xuICB2YXIgcG9pbnRzID0gW107XG4gIHZhciBydWxlcyA9IGdldFJ1bGVzKHZhbHVlLCBwb2ludHMpO1xuICB2YXIgcGFyZW50UnVsZXMgPSBwYXJlbnQucHJvcHM7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGsgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmVudFJ1bGVzLmxlbmd0aDsgaisrLCBrKyspIHtcbiAgICAgIGVsZW1lbnQucHJvcHNba10gPSBwb2ludHNbaV0gPyBydWxlc1tpXS5yZXBsYWNlKC8mXFxmL2csIHBhcmVudFJ1bGVzW2pdKSA6IHBhcmVudFJ1bGVzW2pdICsgXCIgXCIgKyBydWxlc1tpXTtcbiAgICB9XG4gIH1cbn07XG52YXIgcmVtb3ZlTGFiZWwgPSBmdW5jdGlvbiByZW1vdmVMYWJlbChlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50LnR5cGUgPT09ICdkZWNsJykge1xuICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7XG5cbiAgICBpZiAoIC8vIGNoYXJjb2RlIGZvciBsXG4gICAgdmFsdWUuY2hhckNvZGVBdCgwKSA9PT0gMTA4ICYmIC8vIGNoYXJjb2RlIGZvciBiXG4gICAgdmFsdWUuY2hhckNvZGVBdCgyKSA9PT0gOTgpIHtcbiAgICAgIC8vIHRoaXMgaWdub3JlcyBsYWJlbFxuICAgICAgZWxlbWVudFtcInJldHVyblwiXSA9ICcnO1xuICAgICAgZWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxufTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tZmFsbHRocm91Z2ggKi9cblxuZnVuY3Rpb24gcHJlZml4KHZhbHVlLCBsZW5ndGgpIHtcbiAgc3dpdGNoIChoYXNoKHZhbHVlLCBsZW5ndGgpKSB7XG4gICAgLy8gY29sb3ItYWRqdXN0XG4gICAgY2FzZSA1MTAzOlxuICAgICAgcmV0dXJuIFdFQktJVCArICdwcmludC0nICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBhbmltYXRpb24sIGFuaW1hdGlvbi0oZGVsYXl8ZGlyZWN0aW9ufGR1cmF0aW9ufGZpbGwtbW9kZXxpdGVyYXRpb24tY291bnR8bmFtZXxwbGF5LXN0YXRlfHRpbWluZy1mdW5jdGlvbilcblxuICAgIGNhc2UgNTczNzpcbiAgICBjYXNlIDQyMDE6XG4gICAgY2FzZSAzMTc3OlxuICAgIGNhc2UgMzQzMzpcbiAgICBjYXNlIDE2NDE6XG4gICAgY2FzZSA0NDU3OlxuICAgIGNhc2UgMjkyMTogLy8gdGV4dC1kZWNvcmF0aW9uLCBmaWx0ZXIsIGNsaXAtcGF0aCwgYmFja2ZhY2UtdmlzaWJpbGl0eSwgY29sdW1uLCBib3gtZGVjb3JhdGlvbi1icmVha1xuXG4gICAgY2FzZSA1NTcyOlxuICAgIGNhc2UgNjM1NjpcbiAgICBjYXNlIDU4NDQ6XG4gICAgY2FzZSAzMTkxOlxuICAgIGNhc2UgNjY0NTpcbiAgICBjYXNlIDMwMDU6IC8vIG1hc2ssIG1hc2staW1hZ2UsIG1hc2stKG1vZGV8Y2xpcHxzaXplKSwgbWFzay0ocmVwZWF0fG9yaWdpbiksIG1hc2stcG9zaXRpb24sIG1hc2stY29tcG9zaXRlLFxuXG4gICAgY2FzZSA2MzkxOlxuICAgIGNhc2UgNTg3OTpcbiAgICBjYXNlIDU2MjM6XG4gICAgY2FzZSA2MTM1OlxuICAgIGNhc2UgNDU5OTpcbiAgICBjYXNlIDQ4NTU6IC8vIGJhY2tncm91bmQtY2xpcCwgY29sdW1ucywgY29sdW1uLShjb3VudHxmaWxsfGdhcHxydWxlfHJ1bGUtY29sb3J8cnVsZS1zdHlsZXxydWxlLXdpZHRofHNwYW58d2lkdGgpXG5cbiAgICBjYXNlIDQyMTU6XG4gICAgY2FzZSA2Mzg5OlxuICAgIGNhc2UgNTEwOTpcbiAgICBjYXNlIDUzNjU6XG4gICAgY2FzZSA1NjIxOlxuICAgIGNhc2UgMzgyOTpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGFwcGVhcmFuY2UsIHVzZXItc2VsZWN0LCB0cmFuc2Zvcm0sIGh5cGhlbnMsIHRleHQtc2l6ZS1hZGp1c3RcblxuICAgIGNhc2UgNTM0OTpcbiAgICBjYXNlIDQyNDY6XG4gICAgY2FzZSA0ODEwOlxuICAgIGNhc2UgNjk2ODpcbiAgICBjYXNlIDI3NTY6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNT1ogKyB2YWx1ZSArIE1TICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LCBmbGV4LWRpcmVjdGlvblxuXG4gICAgY2FzZSA2ODI4OlxuICAgIGNhc2UgNDI2ODpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBvcmRlclxuXG4gICAgY2FzZSA2MTY1OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyAnZmxleC0nICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBhbGlnbi1pdGVtc1xuXG4gICAgY2FzZSA1MTg3OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgcmVwbGFjZSh2YWx1ZSwgLyhcXHcrKS4rKDpbXl0rKS8sIFdFQktJVCArICdib3gtJDEkMicgKyBNUyArICdmbGV4LSQxJDInKSArIHZhbHVlO1xuICAgIC8vIGFsaWduLXNlbGZcblxuICAgIGNhc2UgNTQ0MzpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgJ2ZsZXgtaXRlbS0nICsgcmVwbGFjZSh2YWx1ZSwgL2ZsZXgtfC1zZWxmLywgJycpICsgdmFsdWU7XG4gICAgLy8gYWxpZ24tY29udGVudFxuXG4gICAgY2FzZSA0Njc1OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyAnZmxleC1saW5lLXBhY2snICsgcmVwbGFjZSh2YWx1ZSwgL2FsaWduLWNvbnRlbnR8ZmxleC18LXNlbGYvLCAnJykgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LXNocmlua1xuXG4gICAgY2FzZSA1NTQ4OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAnc2hyaW5rJywgJ25lZ2F0aXZlJykgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LWJhc2lzXG5cbiAgICBjYXNlIDUyOTI6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsICdiYXNpcycsICdwcmVmZXJyZWQtc2l6ZScpICsgdmFsdWU7XG4gICAgLy8gZmxleC1ncm93XG5cbiAgICBjYXNlIDYwNjA6XG4gICAgICByZXR1cm4gV0VCS0lUICsgJ2JveC0nICsgcmVwbGFjZSh2YWx1ZSwgJy1ncm93JywgJycpICsgV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsICdncm93JywgJ3Bvc2l0aXZlJykgKyB2YWx1ZTtcbiAgICAvLyB0cmFuc2l0aW9uXG5cbiAgICBjYXNlIDQ1NTQ6XG4gICAgICByZXR1cm4gV0VCS0lUICsgcmVwbGFjZSh2YWx1ZSwgLyhbXi1dKSh0cmFuc2Zvcm0pL2csICckMScgKyBXRUJLSVQgKyAnJDInKSArIHZhbHVlO1xuICAgIC8vIGN1cnNvclxuXG4gICAgY2FzZSA2MTg3OlxuICAgICAgcmV0dXJuIHJlcGxhY2UocmVwbGFjZShyZXBsYWNlKHZhbHVlLCAvKHpvb20tfGdyYWIpLywgV0VCS0lUICsgJyQxJyksIC8oaW1hZ2Utc2V0KS8sIFdFQktJVCArICckMScpLCB2YWx1ZSwgJycpICsgdmFsdWU7XG4gICAgLy8gYmFja2dyb3VuZCwgYmFja2dyb3VuZC1pbWFnZVxuXG4gICAgY2FzZSA1NDk1OlxuICAgIGNhc2UgMzk1OTpcbiAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKGltYWdlLXNldFxcKFteXSopLywgV0VCS0lUICsgJyQxJyArICckYCQxJyk7XG4gICAgLy8ganVzdGlmeS1jb250ZW50XG5cbiAgICBjYXNlIDQ5Njg6XG4gICAgICByZXR1cm4gcmVwbGFjZShyZXBsYWNlKHZhbHVlLCAvKC4rOikoZmxleC0pPyguKikvLCBXRUJLSVQgKyAnYm94LXBhY2s6JDMnICsgTVMgKyAnZmxleC1wYWNrOiQzJyksIC9zListYlteO10rLywgJ2p1c3RpZnknKSArIFdFQktJVCArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gKG1hcmdpbnxwYWRkaW5nKS1pbmxpbmUtKHN0YXJ0fGVuZClcblxuICAgIGNhc2UgNDA5NTpcbiAgICBjYXNlIDM1ODM6XG4gICAgY2FzZSA0MDY4OlxuICAgIGNhc2UgMjUzMjpcbiAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKC4rKS1pbmxpbmUoLispLywgV0VCS0lUICsgJyQxJDInKSArIHZhbHVlO1xuICAgIC8vIChtaW58bWF4KT8od2lkdGh8aGVpZ2h0fGlubGluZS1zaXplfGJsb2NrLXNpemUpXG5cbiAgICBjYXNlIDgxMTY6XG4gICAgY2FzZSA3MDU5OlxuICAgIGNhc2UgNTc1MzpcbiAgICBjYXNlIDU1MzU6XG4gICAgY2FzZSA1NDQ1OlxuICAgIGNhc2UgNTcwMTpcbiAgICBjYXNlIDQ5MzM6XG4gICAgY2FzZSA0Njc3OlxuICAgIGNhc2UgNTUzMzpcbiAgICBjYXNlIDU3ODk6XG4gICAgY2FzZSA1MDIxOlxuICAgIGNhc2UgNDc2NTpcbiAgICAgIC8vIHN0cmV0Y2gsIG1heC1jb250ZW50LCBtaW4tY29udGVudCwgZmlsbC1hdmFpbGFibGVcbiAgICAgIGlmIChzdHJsZW4odmFsdWUpIC0gMSAtIGxlbmd0aCA+IDYpIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxKSkge1xuICAgICAgICAvLyAobSlheC1jb250ZW50LCAobSlpbi1jb250ZW50XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIC8vIC1cbiAgICAgICAgICBpZiAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyA0KSAhPT0gNDUpIGJyZWFrO1xuICAgICAgICAvLyAoZilpbGwtYXZhaWxhYmxlLCAoZilpdC1jb250ZW50XG5cbiAgICAgICAgY2FzZSAxMDI6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLis6KSguKyktKFteXSspLywgJyQxJyArIFdFQktJVCArICckMi0kMycgKyAnJDEnICsgTU9aICsgKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMykgPT0gMTA4ID8gJyQzJyA6ICckMi0kMycpKSArIHZhbHVlO1xuICAgICAgICAvLyAocyl0cmV0Y2hcblxuICAgICAgICBjYXNlIDExNTpcbiAgICAgICAgICByZXR1cm4gfmluZGV4b2YodmFsdWUsICdzdHJldGNoJykgPyBwcmVmaXgocmVwbGFjZSh2YWx1ZSwgJ3N0cmV0Y2gnLCAnZmlsbC1hdmFpbGFibGUnKSwgbGVuZ3RoKSArIHZhbHVlIDogdmFsdWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAvLyBwb3NpdGlvbjogc3RpY2t5XG5cbiAgICBjYXNlIDQ5NDk6XG4gICAgICAvLyAocyl0aWNreT9cbiAgICAgIGlmIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDEpICE9PSAxMTUpIGJyZWFrO1xuICAgIC8vIGRpc3BsYXk6IChmbGV4fGlubGluZS1mbGV4KVxuXG4gICAgY2FzZSA2NDQ0OlxuICAgICAgc3dpdGNoIChjaGFyYXQodmFsdWUsIHN0cmxlbih2YWx1ZSkgLSAzIC0gKH5pbmRleG9mKHZhbHVlLCAnIWltcG9ydGFudCcpICYmIDEwKSkpIHtcbiAgICAgICAgLy8gc3RpYyhrKXlcbiAgICAgICAgY2FzZSAxMDc6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsICc6JywgJzonICsgV0VCS0lUKSArIHZhbHVlO1xuICAgICAgICAvLyAoaW5saW5lLSk/ZmwoZSl4XG5cbiAgICAgICAgY2FzZSAxMDE6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLis6KShbXjshXSspKDt8IS4rKT8vLCAnJDEnICsgV0VCS0lUICsgKGNoYXJhdCh2YWx1ZSwgMTQpID09PSA0NSA/ICdpbmxpbmUtJyA6ICcnKSArICdib3gkMycgKyAnJDEnICsgV0VCS0lUICsgJyQyJDMnICsgJyQxJyArIE1TICsgJyQyYm94JDMnKSArIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICAvLyB3cml0aW5nLW1vZGVcblxuICAgIGNhc2UgNTkzNjpcbiAgICAgIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxMSkpIHtcbiAgICAgICAgLy8gdmVydGljYWwtbChyKVxuICAgICAgICBjYXNlIDExNDpcbiAgICAgICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsIC9bc3ZoXVxcdystW3RibHJdezJ9LywgJ3RiJykgKyB2YWx1ZTtcbiAgICAgICAgLy8gdmVydGljYWwtcihsKVxuXG4gICAgICAgIGNhc2UgMTA4OlxuICAgICAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgL1tzdmhdXFx3Ky1bdGJscl17Mn0vLCAndGItcmwnKSArIHZhbHVlO1xuICAgICAgICAvLyBob3Jpem9udGFsKC0pdGJcblxuICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgL1tzdmhdXFx3Ky1bdGJscl17Mn0vLCAnbHInKSArIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHZhbHVlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbnZhciBwcmVmaXhlciA9IGZ1bmN0aW9uIHByZWZpeGVyKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcbiAgaWYgKGVsZW1lbnQubGVuZ3RoID4gLTEpIGlmICghZWxlbWVudFtcInJldHVyblwiXSkgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICBjYXNlIERFQ0xBUkFUSU9OOlxuICAgICAgZWxlbWVudFtcInJldHVyblwiXSA9IHByZWZpeChlbGVtZW50LnZhbHVlLCBlbGVtZW50Lmxlbmd0aCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgS0VZRlJBTUVTOlxuICAgICAgcmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7XG4gICAgICAgIHZhbHVlOiByZXBsYWNlKGVsZW1lbnQudmFsdWUsICdAJywgJ0AnICsgV0VCS0lUKVxuICAgICAgfSldLCBjYWxsYmFjayk7XG5cbiAgICBjYXNlIFJVTEVTRVQ6XG4gICAgICBpZiAoZWxlbWVudC5sZW5ndGgpIHJldHVybiBjb21iaW5lKGVsZW1lbnQucHJvcHMsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKG1hdGNoKHZhbHVlLCAvKDo6cGxhY1xcdyt8OnJlYWQtXFx3KykvKSkge1xuICAgICAgICAgIC8vIDpyZWFkLShvbmx5fHdyaXRlKVxuICAgICAgICAgIGNhc2UgJzpyZWFkLW9ubHknOlxuICAgICAgICAgIGNhc2UgJzpyZWFkLXdyaXRlJzpcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHJlYWQtXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV1cbiAgICAgICAgICAgIH0pXSwgY2FsbGJhY2spO1xuICAgICAgICAgIC8vIDpwbGFjZWhvbGRlclxuXG4gICAgICAgICAgY2FzZSAnOjpwbGFjZWhvbGRlcic6XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplKFtjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCAnOicgKyBXRUJLSVQgKyAnaW5wdXQtJDEnKV1cbiAgICAgICAgICAgIH0pLCBjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV1cbiAgICAgICAgICAgIH0pLCBjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCBNUyArICdpbnB1dC0kMScpXVxuICAgICAgICAgICAgfSldLCBjYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9KTtcbiAgfVxufTtcblxudmFyIGRlZmF1bHRTdHlsaXNQbHVnaW5zID0gW3ByZWZpeGVyXTtcblxudmFyIGNyZWF0ZUNhY2hlID0gZnVuY3Rpb25cbiAgLyo6IEVtb3Rpb25DYWNoZSAqL1xuY3JlYXRlQ2FjaGUob3B0aW9uc1xuLyo6IE9wdGlvbnMgKi9cbikge1xuICB2YXIga2V5ID0gb3B0aW9ucy5rZXk7XG5cbiAgaWYgKGtleSA9PT0gJ2NzcycpIHtcbiAgICB2YXIgc3NyU3R5bGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKVwiKTsgLy8gZ2V0IFNTUmVkIHN0eWxlcyBvdXQgb2YgdGhlIHdheSBvZiBSZWFjdCdzIGh5ZHJhdGlvblxuICAgIC8vIGRvY3VtZW50LmhlYWQgaXMgYSBzYWZlIHBsYWNlIHRvIG1vdmUgdGhlbSB0byh0aG91Z2ggbm90ZSBkb2N1bWVudC5oZWFkIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgbGFzdCBwbGFjZSB0aGV5IHdpbGwgYmUpXG4gICAgLy8gbm90ZSB0aGlzIHZlcnkgdmVyeSBpbnRlbnRpb25hbGx5IHRhcmdldHMgYWxsIHN0eWxlIGVsZW1lbnRzIHJlZ2FyZGxlc3Mgb2YgdGhlIGtleSB0byBlbnN1cmVcbiAgICAvLyB0aGF0IGNyZWF0aW5nIGEgY2FjaGUgd29ya3MgaW5zaWRlIG9mIHJlbmRlciBvZiBhIFJlYWN0IGNvbXBvbmVudFxuXG4gICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzc3JTdHlsZXMsIGZ1bmN0aW9uIChub2RlXG4gICAgLyo6IEhUTUxTdHlsZUVsZW1lbnQgKi9cbiAgICApIHtcbiAgICAgIC8vIHdlIHdhbnQgdG8gb25seSBtb3ZlIGVsZW1lbnRzIHdoaWNoIGhhdmUgYSBzcGFjZSBpbiB0aGUgZGF0YS1lbW90aW9uIGF0dHJpYnV0ZSB2YWx1ZVxuICAgICAgLy8gYmVjYXVzZSB0aGF0IGluZGljYXRlcyB0aGF0IGl0IGlzIGFuIEVtb3Rpb24gMTEgc2VydmVyLXNpZGUgcmVuZGVyZWQgc3R5bGUgZWxlbWVudHNcbiAgICAgIC8vIHdoaWxlIHdlIHdpbGwgYWxyZWFkeSBpZ25vcmUgRW1vdGlvbiAxMSBjbGllbnQtc2lkZSBpbnNlcnRlZCBzdHlsZXMgYmVjYXVzZSBvZiB0aGUgOm5vdChbZGF0YS1zXSkgcGFydCBpbiB0aGUgc2VsZWN0b3JcbiAgICAgIC8vIEVtb3Rpb24gMTAgY2xpZW50LXNpZGUgaW5zZXJ0ZWQgc3R5bGVzIGRpZCBub3QgaGF2ZSBkYXRhLXMgKGJ1dCBpbXBvcnRhbnRseSBkaWQgbm90IGhhdmUgYSBzcGFjZSBpbiB0aGVpciBkYXRhLWVtb3Rpb24gYXR0cmlidXRlcylcbiAgICAgIC8vIHNvIGNoZWNraW5nIGZvciB0aGUgc3BhY2UgZW5zdXJlcyB0aGF0IGxvYWRpbmcgRW1vdGlvbiAxMSBhZnRlciBFbW90aW9uIDEwIGhhcyBpbnNlcnRlZCBzb21lIHN0eWxlc1xuICAgICAgLy8gd2lsbCBub3QgcmVzdWx0IGluIHRoZSBFbW90aW9uIDEwIHN0eWxlcyBiZWluZyBkZXN0cm95ZWRcbiAgICAgIHZhciBkYXRhRW1vdGlvbkF0dHJpYnV0ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWVtb3Rpb24nKTtcblxuICAgICAgaWYgKGRhdGFFbW90aW9uQXR0cmlidXRlLmluZGV4T2YoJyAnKSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5vZGUpO1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtcycsICcnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBzdHlsaXNQbHVnaW5zID0gb3B0aW9ucy5zdHlsaXNQbHVnaW5zIHx8IGRlZmF1bHRTdHlsaXNQbHVnaW5zO1xuXG4gIHZhciBpbnNlcnRlZCA9IHt9O1xuICB2YXIgY29udGFpbmVyO1xuICAvKiA6IE5vZGUgKi9cblxuICB2YXIgbm9kZXNUb0h5ZHJhdGUgPSBbXTtcblxuICB7XG4gICAgY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXIgfHwgZG9jdW1lbnQuaGVhZDtcbiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKCAvLyB0aGlzIG1lYW5zIHdlIHdpbGwgaWdub3JlIGVsZW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYSBzcGFjZSBpbiB0aGVtIHdoaWNoXG4gICAgLy8gbWVhbnMgdGhhdCB0aGUgc3R5bGUgZWxlbWVudHMgd2UncmUgbG9va2luZyBhdCBhcmUgb25seSBFbW90aW9uIDExIHNlcnZlci1yZW5kZXJlZCBzdHlsZSBlbGVtZW50c1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVtkYXRhLWVtb3Rpb25ePVxcXCJcIiArIGtleSArIFwiIFxcXCJdXCIpLCBmdW5jdGlvbiAobm9kZVxuICAgIC8qOiBIVE1MU3R5bGVFbGVtZW50ICovXG4gICAgKSB7XG4gICAgICB2YXIgYXR0cmliID0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWVtb3Rpb25cIikuc3BsaXQoJyAnKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhdHRyaWIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW5zZXJ0ZWRbYXR0cmliW2ldXSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIG5vZGVzVG9IeWRyYXRlLnB1c2gobm9kZSk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgX2luc2VydDtcbiAgLyo6IChcbiAgc2VsZWN0b3I6IHN0cmluZyxcbiAgc2VyaWFsaXplZDogU2VyaWFsaXplZFN0eWxlcyxcbiAgc2hlZXQ6IFN0eWxlU2hlZXQsXG4gIHNob3VsZENhY2hlOiBib29sZWFuXG4gICkgPT4gc3RyaW5nIHwgdm9pZCAqL1xuXG5cbiAgdmFyIG9tbmlwcmVzZW50UGx1Z2lucyA9IFtjb21wYXQsIHJlbW92ZUxhYmVsXTtcblxuICB7XG4gICAgdmFyIGN1cnJlbnRTaGVldDtcbiAgICB2YXIgZmluYWxpemluZ1BsdWdpbnMgPSBbc3RyaW5naWZ5LCBydWxlc2hlZXQoZnVuY3Rpb24gKHJ1bGUpIHtcbiAgICAgIGN1cnJlbnRTaGVldC5pbnNlcnQocnVsZSk7XG4gICAgfSldO1xuICAgIHZhciBzZXJpYWxpemVyID0gbWlkZGxld2FyZShvbW5pcHJlc2VudFBsdWdpbnMuY29uY2F0KHN0eWxpc1BsdWdpbnMsIGZpbmFsaXppbmdQbHVnaW5zKSk7XG5cbiAgICB2YXIgc3R5bGlzID0gZnVuY3Rpb24gc3R5bGlzKHN0eWxlcykge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZShjb21waWxlKHN0eWxlcyksIHNlcmlhbGl6ZXIpO1xuICAgIH07XG5cbiAgICBfaW5zZXJ0ID0gZnVuY3Rpb25cbiAgICAgIC8qOiB2b2lkICovXG4gICAgaW5zZXJ0KHNlbGVjdG9yXG4gICAgLyo6IHN0cmluZyAqL1xuICAgICwgc2VyaWFsaXplZFxuICAgIC8qOiBTZXJpYWxpemVkU3R5bGVzICovXG4gICAgLCBzaGVldFxuICAgIC8qOiBTdHlsZVNoZWV0ICovXG4gICAgLCBzaG91bGRDYWNoZVxuICAgIC8qOiBib29sZWFuICovXG4gICAgKSB7XG4gICAgICBjdXJyZW50U2hlZXQgPSBzaGVldDtcblxuICAgICAgc3R5bGlzKHNlbGVjdG9yID8gc2VsZWN0b3IgKyBcIntcIiArIHNlcmlhbGl6ZWQuc3R5bGVzICsgXCJ9XCIgOiBzZXJpYWxpemVkLnN0eWxlcyk7XG5cbiAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICBjYWNoZS5pbnNlcnRlZFtzZXJpYWxpemVkLm5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdmFyIGNhY2hlXG4gIC8qOiBFbW90aW9uQ2FjaGUgKi9cbiAgPSB7XG4gICAga2V5OiBrZXksXG4gICAgc2hlZXQ6IG5ldyBTdHlsZVNoZWV0KHtcbiAgICAgIGtleToga2V5LFxuICAgICAgY29udGFpbmVyOiBjb250YWluZXIsXG4gICAgICBub25jZTogb3B0aW9ucy5ub25jZSxcbiAgICAgIHNwZWVkeTogb3B0aW9ucy5zcGVlZHksXG4gICAgICBwcmVwZW5kOiBvcHRpb25zLnByZXBlbmQsXG4gICAgICBpbnNlcnRpb25Qb2ludDogb3B0aW9ucy5pbnNlcnRpb25Qb2ludFxuICAgIH0pLFxuICAgIG5vbmNlOiBvcHRpb25zLm5vbmNlLFxuICAgIGluc2VydGVkOiBpbnNlcnRlZCxcbiAgICByZWdpc3RlcmVkOiB7fSxcbiAgICBpbnNlcnQ6IF9pbnNlcnRcbiAgfTtcbiAgY2FjaGUuc2hlZXQuaHlkcmF0ZShub2Rlc1RvSHlkcmF0ZSk7XG4gIHJldHVybiBjYWNoZTtcbn07XG5cbmV4cG9ydCB7IGNyZWF0ZUNhY2hlIGFzIGRlZmF1bHQgfTtcbiIsICJ2YXIgaXNCcm93c2VyID0gdHJ1ZTtcblxuZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZFN0eWxlcyhyZWdpc3RlcmVkLCByZWdpc3RlcmVkU3R5bGVzLCBjbGFzc05hbWVzKSB7XG4gIHZhciByYXdDbGFzc05hbWUgPSAnJztcbiAgY2xhc3NOYW1lcy5zcGxpdCgnICcpLmZvckVhY2goZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuICAgIGlmIChyZWdpc3RlcmVkW2NsYXNzTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVnaXN0ZXJlZFN0eWxlcy5wdXNoKHJlZ2lzdGVyZWRbY2xhc3NOYW1lXSArIFwiO1wiKTtcbiAgICB9IGVsc2UgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgcmF3Q2xhc3NOYW1lICs9IGNsYXNzTmFtZSArIFwiIFwiO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByYXdDbGFzc05hbWU7XG59XG52YXIgcmVnaXN0ZXJTdHlsZXMgPSBmdW5jdGlvbiByZWdpc3RlclN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpIHtcbiAgdmFyIGNsYXNzTmFtZSA9IGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuXG4gIGlmICggLy8gd2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSByZWdpc3RlcmVkIGNhY2hlIGlmIHRoZVxuICAvLyBjbGFzcyBuYW1lIGNvdWxkIGJlIHVzZWQgZnVydGhlciBkb3duXG4gIC8vIHRoZSB0cmVlIGJ1dCBpZiBpdCdzIGEgc3RyaW5nIHRhZywgd2Uga25vdyBpdCB3b24ndFxuICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGFkZCBpdCB0byByZWdpc3RlcmVkIGNhY2hlLlxuICAvLyB0aGlzIGltcHJvdmVzIG1lbW9yeSB1c2FnZSBzaW5jZSB3ZSBjYW4gYXZvaWQgc3RvcmluZyB0aGUgd2hvbGUgc3R5bGUgc3RyaW5nXG4gIChpc1N0cmluZ1RhZyA9PT0gZmFsc2UgfHwgLy8gd2UgbmVlZCB0byBhbHdheXMgc3RvcmUgaXQgaWYgd2UncmUgaW4gY29tcGF0IG1vZGUgYW5kXG4gIC8vIGluIG5vZGUgc2luY2UgZW1vdGlvbi1zZXJ2ZXIgcmVsaWVzIG9uIHdoZXRoZXIgYSBzdHlsZSBpcyBpblxuICAvLyB0aGUgcmVnaXN0ZXJlZCBjYWNoZSB0byBrbm93IHdoZXRoZXIgYSBzdHlsZSBpcyBnbG9iYWwgb3Igbm90XG4gIC8vIGFsc28sIG5vdGUgdGhhdCB0aGlzIGNoZWNrIHdpbGwgYmUgZGVhZCBjb2RlIGVsaW1pbmF0ZWQgaW4gdGhlIGJyb3dzZXJcbiAgaXNCcm93c2VyID09PSBmYWxzZSApICYmIGNhY2hlLnJlZ2lzdGVyZWRbY2xhc3NOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FjaGUucmVnaXN0ZXJlZFtjbGFzc05hbWVdID0gc2VyaWFsaXplZC5zdHlsZXM7XG4gIH1cbn07XG52YXIgaW5zZXJ0U3R5bGVzID0gZnVuY3Rpb24gaW5zZXJ0U3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBpc1N0cmluZ1RhZykge1xuICByZWdpc3RlclN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpO1xuICB2YXIgY2xhc3NOYW1lID0gY2FjaGUua2V5ICsgXCItXCIgKyBzZXJpYWxpemVkLm5hbWU7XG5cbiAgaWYgKGNhY2hlLmluc2VydGVkW3NlcmlhbGl6ZWQubmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBjdXJyZW50ID0gc2VyaWFsaXplZDtcblxuICAgIGRvIHtcbiAgICAgIGNhY2hlLmluc2VydChzZXJpYWxpemVkID09PSBjdXJyZW50ID8gXCIuXCIgKyBjbGFzc05hbWUgOiAnJywgY3VycmVudCwgY2FjaGUuc2hlZXQsIHRydWUpO1xuXG4gICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0O1xuICAgIH0gd2hpbGUgKGN1cnJlbnQgIT09IHVuZGVmaW5lZCk7XG4gIH1cbn07XG5cbmV4cG9ydCB7IGdldFJlZ2lzdGVyZWRTdHlsZXMsIGluc2VydFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2dhcnljb3VydC9tdXJtdXJoYXNoLWpzXG4vLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYWFwcGxlYnkvc21oYXNoZXIvYmxvYi82MWEwNTMwZjI4Mjc3ZjJlODUwYmZjMzk2MDBjZTYxZDAyYjUxOGRlL3NyYy9NdXJtdXJIYXNoMi5jcHAjTDM3LUw4NlxuZnVuY3Rpb24gbXVybXVyMihzdHIpIHtcbiAgLy8gJ20nIGFuZCAncicgYXJlIG1peGluZyBjb25zdGFudHMgZ2VuZXJhdGVkIG9mZmxpbmUuXG4gIC8vIFRoZXkncmUgbm90IHJlYWxseSAnbWFnaWMnLCB0aGV5IGp1c3QgaGFwcGVuIHRvIHdvcmsgd2VsbC5cbiAgLy8gY29uc3QgbSA9IDB4NWJkMWU5OTU7XG4gIC8vIGNvbnN0IHIgPSAyNDtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGFzaFxuICB2YXIgaCA9IDA7IC8vIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoXG5cbiAgdmFyIGssXG4gICAgICBpID0gMCxcbiAgICAgIGxlbiA9IHN0ci5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbiA+PSA0OyArK2ksIGxlbiAtPSA0KSB7XG4gICAgayA9IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZiB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgOCB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMTYgfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDI0O1xuICAgIGsgPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpO1xuICAgIGsgXj1cbiAgICAvKiBrID4+PiByOiAqL1xuICAgIGsgPj4+IDI0O1xuICAgIGggPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpIF5cbiAgICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBIYW5kbGUgdGhlIGxhc3QgZmV3IGJ5dGVzIG9mIHRoZSBpbnB1dCBhcnJheVxuXG5cbiAgc3dpdGNoIChsZW4pIHtcbiAgICBjYXNlIDM6XG4gICAgICBoIF49IChzdHIuY2hhckNvZGVBdChpICsgMikgJiAweGZmKSA8PCAxNjtcblxuICAgIGNhc2UgMjpcbiAgICAgIGggXj0gKHN0ci5jaGFyQ29kZUF0KGkgKyAxKSAmIDB4ZmYpIDw8IDg7XG5cbiAgICBjYXNlIDE6XG4gICAgICBoIF49IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZjtcbiAgICAgIGggPVxuICAgICAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAgICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3XG4gIC8vIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC5cblxuXG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPVxuICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIHJldHVybiAoKGggXiBoID4+PiAxNSkgPj4+IDApLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IHsgbXVybXVyMiBhcyBkZWZhdWx0IH07XG4iLCAidmFyIHVuaXRsZXNzS2V5cyA9IHtcbiAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IDEsXG4gIGFzcGVjdFJhdGlvOiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICBzY2FsZTogMSxcbiAgdGFiU2l6ZTogMSxcbiAgd2lkb3dzOiAxLFxuICB6SW5kZXg6IDEsXG4gIHpvb206IDEsXG4gIFdlYmtpdExpbmVDbGFtcDogMSxcbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogMSxcbiAgZmxvb2RPcGFjaXR5OiAxLFxuICBzdG9wT3BhY2l0eTogMSxcbiAgc3Ryb2tlRGFzaGFycmF5OiAxLFxuICBzdHJva2VEYXNob2Zmc2V0OiAxLFxuICBzdHJva2VNaXRlcmxpbWl0OiAxLFxuICBzdHJva2VPcGFjaXR5OiAxLFxuICBzdHJva2VXaWR0aDogMVxufTtcblxuZXhwb3J0IHsgdW5pdGxlc3NLZXlzIGFzIGRlZmF1bHQgfTtcbiIsICJpbXBvcnQgaGFzaFN0cmluZyBmcm9tICdAZW1vdGlvbi9oYXNoJztcbmltcG9ydCB1bml0bGVzcyBmcm9tICdAZW1vdGlvbi91bml0bGVzcyc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdAZW1vdGlvbi9tZW1vaXplJztcblxudmFyIGlzRGV2ZWxvcG1lbnQgPSBmYWxzZTtcblxudmFyIGh5cGhlbmF0ZVJlZ2V4ID0gL1tBLVpdfF5tcy9nO1xudmFyIGFuaW1hdGlvblJlZ2V4ID0gL19FTU9fKFteX10rPylfKFteXSo/KV9FTU9fL2c7XG5cbnZhciBpc0N1c3RvbVByb3BlcnR5ID0gZnVuY3Rpb24gaXNDdXN0b21Qcm9wZXJ0eShwcm9wZXJ0eSkge1xuICByZXR1cm4gcHJvcGVydHkuY2hhckNvZGVBdCgxKSA9PT0gNDU7XG59O1xuXG52YXIgaXNQcm9jZXNzYWJsZVZhbHVlID0gZnVuY3Rpb24gaXNQcm9jZXNzYWJsZVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nO1xufTtcblxudmFyIHByb2Nlc3NTdHlsZU5hbWUgPSAvKiAjX19QVVJFX18gKi9tZW1vaXplKGZ1bmN0aW9uIChzdHlsZU5hbWUpIHtcbiAgcmV0dXJuIGlzQ3VzdG9tUHJvcGVydHkoc3R5bGVOYW1lKSA/IHN0eWxlTmFtZSA6IHN0eWxlTmFtZS5yZXBsYWNlKGh5cGhlbmF0ZVJlZ2V4LCAnLSQmJykudG9Mb3dlckNhc2UoKTtcbn0pO1xuXG52YXIgcHJvY2Vzc1N0eWxlVmFsdWUgPSBmdW5jdGlvbiBwcm9jZXNzU3R5bGVWYWx1ZShrZXksIHZhbHVlKSB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSAnYW5pbWF0aW9uJzpcbiAgICBjYXNlICdhbmltYXRpb25OYW1lJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShhbmltYXRpb25SZWdleCwgZnVuY3Rpb24gKG1hdGNoLCBwMSwgcDIpIHtcbiAgICAgICAgICAgIGN1cnNvciA9IHtcbiAgICAgICAgICAgICAgbmFtZTogcDEsXG4gICAgICAgICAgICAgIHN0eWxlczogcDIsXG4gICAgICAgICAgICAgIG5leHQ6IGN1cnNvclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBwMTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG5cbiAgaWYgKHVuaXRsZXNzW2tleV0gIT09IDEgJiYgIWlzQ3VzdG9tUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSAwKSB7XG4gICAgcmV0dXJuIHZhbHVlICsgJ3B4JztcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbnZhciBub0NvbXBvbmVudFNlbGVjdG9yTWVzc2FnZSA9ICdDb21wb25lbnQgc2VsZWN0b3JzIGNhbiBvbmx5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnICsgJ0BlbW90aW9uL2JhYmVsLXBsdWdpbiwgdGhlIHN3YyBFbW90aW9uIHBsdWdpbiwgb3IgYW5vdGhlciBFbW90aW9uLWF3YXJlICcgKyAnY29tcGlsZXIgdHJhbnNmb3JtLic7XG5cbmZ1bmN0aW9uIGhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIGludGVycG9sYXRpb24pIHtcbiAgaWYgKGludGVycG9sYXRpb24gPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHZhciBjb21wb25lbnRTZWxlY3RvciA9IGludGVycG9sYXRpb247XG5cbiAgaWYgKGNvbXBvbmVudFNlbGVjdG9yLl9fZW1vdGlvbl9zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFNlbGVjdG9yO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlb2YgaW50ZXJwb2xhdGlvbikge1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAge1xuICAgICAgICB2YXIga2V5ZnJhbWVzID0gaW50ZXJwb2xhdGlvbjtcblxuICAgICAgICBpZiAoa2V5ZnJhbWVzLmFuaW0gPT09IDEpIHtcbiAgICAgICAgICBjdXJzb3IgPSB7XG4gICAgICAgICAgICBuYW1lOiBrZXlmcmFtZXMubmFtZSxcbiAgICAgICAgICAgIHN0eWxlczoga2V5ZnJhbWVzLnN0eWxlcyxcbiAgICAgICAgICAgIG5leHQ6IGN1cnNvclxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGtleWZyYW1lcy5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNlcmlhbGl6ZWRTdHlsZXMgPSBpbnRlcnBvbGF0aW9uO1xuXG4gICAgICAgIGlmIChzZXJpYWxpemVkU3R5bGVzLnN0eWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFyIG5leHQgPSBzZXJpYWxpemVkU3R5bGVzLm5leHQ7XG5cbiAgICAgICAgICBpZiAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBub3QgdGhlIG1vc3QgZWZmaWNpZW50IHRoaW5nIGV2ZXIgYnV0IHRoaXMgaXMgYSBwcmV0dHkgcmFyZSBjYXNlXG4gICAgICAgICAgICAvLyBhbmQgdGhlcmUgd2lsbCBiZSB2ZXJ5IGZldyBpdGVyYXRpb25zIG9mIHRoaXMgZ2VuZXJhbGx5XG4gICAgICAgICAgICB3aGlsZSAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGN1cnNvciA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuZXh0Lm5hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGVzOiBuZXh0LnN0eWxlcyxcbiAgICAgICAgICAgICAgICBuZXh0OiBjdXJzb3JcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgbmV4dCA9IG5leHQubmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgc3R5bGVzID0gc2VyaWFsaXplZFN0eWxlcy5zdHlsZXMgKyBcIjtcIjtcblxuICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3JlYXRlU3RyaW5nRnJvbU9iamVjdChtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgaW50ZXJwb2xhdGlvbik7XG4gICAgICB9XG5cbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB7XG4gICAgICAgIGlmIChtZXJnZWRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdmFyIHByZXZpb3VzQ3Vyc29yID0gY3Vyc29yO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBpbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzKTtcbiAgICAgICAgICBjdXJzb3IgPSBwcmV2aW91c0N1cnNvcjtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgcmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9IC8vIGZpbmFsaXplIHN0cmluZyB2YWx1ZXMgKHJlZ3VsYXIgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGludGVycG9sYXRlZCBpbnRvIGNzcyBjYWxscylcblxuXG4gIHZhciBhc1N0cmluZyA9IGludGVycG9sYXRpb247XG5cbiAgaWYgKHJlZ2lzdGVyZWQgPT0gbnVsbCkge1xuICAgIHJldHVybiBhc1N0cmluZztcbiAgfVxuXG4gIHZhciBjYWNoZWQgPSByZWdpc3RlcmVkW2FzU3RyaW5nXTtcbiAgcmV0dXJuIGNhY2hlZCAhPT0gdW5kZWZpbmVkID8gY2FjaGVkIDogYXNTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0cmluZ0Zyb21PYmplY3QobWVyZ2VkUHJvcHMsIHJlZ2lzdGVyZWQsIG9iaikge1xuICB2YXIgc3RyaW5nID0gJyc7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdHJpbmcgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgb2JqW2ldKSArIFwiO1wiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFyIGFzU3RyaW5nID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHJlZ2lzdGVyZWQgIT0gbnVsbCAmJiByZWdpc3RlcmVkW2FzU3RyaW5nXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RyaW5nICs9IGtleSArIFwie1wiICsgcmVnaXN0ZXJlZFthc1N0cmluZ10gKyBcIn1cIjtcbiAgICAgICAgfSBlbHNlIGlmIChpc1Byb2Nlc3NhYmxlVmFsdWUoYXNTdHJpbmcpKSB7XG4gICAgICAgICAgc3RyaW5nICs9IHByb2Nlc3NTdHlsZU5hbWUoa2V5KSArIFwiOlwiICsgcHJvY2Vzc1N0eWxlVmFsdWUoa2V5LCBhc1N0cmluZykgKyBcIjtcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ05PX0NPTVBPTkVOVF9TRUxFQ1RPUicgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihub0NvbXBvbmVudFNlbGVjdG9yTWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlWzBdID09PSAnc3RyaW5nJyAmJiAocmVnaXN0ZXJlZCA9PSBudWxsIHx8IHJlZ2lzdGVyZWRbdmFsdWVbMF1dID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHZhbHVlLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgaWYgKGlzUHJvY2Vzc2FibGVWYWx1ZSh2YWx1ZVtfaV0pKSB7XG4gICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIHByb2Nlc3NTdHlsZVZhbHVlKGtleSwgdmFsdWVbX2ldKSArIFwiO1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgaW50ZXJwb2xhdGVkID0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgdmFsdWUpO1xuXG4gICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FuaW1hdGlvbic6XG4gICAgICAgICAgICBjYXNlICdhbmltYXRpb25OYW1lJzpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cmluZyArPSBwcm9jZXNzU3R5bGVOYW1lKGtleSkgKyBcIjpcIiArIGludGVycG9sYXRlZCArIFwiO1wiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHN0cmluZyArPSBrZXkgKyBcIntcIiArIGludGVycG9sYXRlZCArIFwifVwiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxudmFyIGxhYmVsUGF0dGVybiA9IC9sYWJlbDpcXHMqKFteXFxzO3tdKylcXHMqKDt8JCkvZztcbi8vIGtleWZyYW1lcyBhcmUgc3RvcmVkIG9uIHRoZSBTZXJpYWxpemVkU3R5bGVzIG9iamVjdCBhcyBhIGxpbmtlZCBsaXN0XG5cblxudmFyIGN1cnNvcjtcbmZ1bmN0aW9uIHNlcmlhbGl6ZVN0eWxlcyhhcmdzLCByZWdpc3RlcmVkLCBtZXJnZWRQcm9wcykge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICdvYmplY3QnICYmIGFyZ3NbMF0gIT09IG51bGwgJiYgYXJnc1swXS5zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBhcmdzWzBdO1xuICB9XG5cbiAgdmFyIHN0cmluZ01vZGUgPSB0cnVlO1xuICB2YXIgc3R5bGVzID0gJyc7XG4gIGN1cnNvciA9IHVuZGVmaW5lZDtcbiAgdmFyIHN0cmluZ3MgPSBhcmdzWzBdO1xuXG4gIGlmIChzdHJpbmdzID09IG51bGwgfHwgc3RyaW5ncy5yYXcgPT09IHVuZGVmaW5lZCkge1xuICAgIHN0cmluZ01vZGUgPSBmYWxzZTtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgc3RyaW5ncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGFzVGVtcGxhdGVTdHJpbmdzQXJyID0gc3RyaW5ncztcblxuICAgIHN0eWxlcyArPSBhc1RlbXBsYXRlU3RyaW5nc0FyclswXTtcbiAgfSAvLyB3ZSBzdGFydCBhdCAxIHNpbmNlIHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCB0aGUgZmlyc3QgYXJnXG5cblxuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgYXJnc1tpXSk7XG5cbiAgICBpZiAoc3RyaW5nTW9kZSkge1xuICAgICAgdmFyIHRlbXBsYXRlU3RyaW5nc0FyciA9IHN0cmluZ3M7XG5cbiAgICAgIHN0eWxlcyArPSB0ZW1wbGF0ZVN0cmluZ3NBcnJbaV07XG4gICAgfVxuICB9XG5cblxuICBsYWJlbFBhdHRlcm4ubGFzdEluZGV4ID0gMDtcbiAgdmFyIGlkZW50aWZpZXJOYW1lID0gJyc7XG4gIHZhciBtYXRjaDsgLy8gaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81YjgwOWMyY2YyOTQ5ODAwYTBmNjFmYjVcblxuICB3aGlsZSAoKG1hdGNoID0gbGFiZWxQYXR0ZXJuLmV4ZWMoc3R5bGVzKSkgIT09IG51bGwpIHtcbiAgICBpZGVudGlmaWVyTmFtZSArPSAnLScgKyBtYXRjaFsxXTtcbiAgfVxuXG4gIHZhciBuYW1lID0gaGFzaFN0cmluZyhzdHlsZXMpICsgaWRlbnRpZmllck5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHN0eWxlczogc3R5bGVzLFxuICAgIG5leHQ6IGN1cnNvclxuICB9O1xufVxuXG5leHBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfTtcbiIsICJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbnZhciBzeW5jRmFsbGJhY2sgPSBmdW5jdGlvbiBzeW5jRmFsbGJhY2soY3JlYXRlKSB7XG4gIHJldHVybiBjcmVhdGUoKTtcbn07XG5cbnZhciB1c2VJbnNlcnRpb25FZmZlY3QgPSBSZWFjdFsndXNlSW5zZXJ0aW9uJyArICdFZmZlY3QnXSA/IFJlYWN0Wyd1c2VJbnNlcnRpb24nICsgJ0VmZmVjdCddIDogZmFsc2U7XG52YXIgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjayA9IHVzZUluc2VydGlvbkVmZmVjdCB8fCBzeW5jRmFsbGJhY2s7XG52YXIgdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrID0gdXNlSW5zZXJ0aW9uRWZmZWN0IHx8IFJlYWN0LnVzZUxheW91dEVmZmVjdDtcblxuZXhwb3J0IHsgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjaywgdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrIH07XG4iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjcmVhdGVDYWNoZSBmcm9tICdAZW1vdGlvbi9jYWNoZSc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcyc7XG5pbXBvcnQgd2Vha01lbW9pemUgZnJvbSAnQGVtb3Rpb24vd2Vhay1tZW1vaXplJztcbmltcG9ydCBob2lzdE5vblJlYWN0U3RhdGljcyBmcm9tICcuLi9faXNvbGF0ZWQtaG5ycy9kaXN0L2Vtb3Rpb24tcmVhY3QtX2lzb2xhdGVkLWhucnMuYnJvd3Nlci5lc20uanMnO1xuaW1wb3J0IHsgZ2V0UmVnaXN0ZXJlZFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGluc2VydFN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3V0aWxzJztcbmltcG9ydCB7IHNlcmlhbGl6ZVN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3NlcmlhbGl6ZSc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrIH0gZnJvbSAnQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MnO1xuXG52YXIgaXNEZXZlbG9wbWVudCA9IGZhbHNlO1xuXG4vKiBpbXBvcnQgeyB0eXBlIEVtb3Rpb25DYWNoZSB9IGZyb20gJ0BlbW90aW9uL3V0aWxzJyAqL1xudmFyIEVtb3Rpb25DYWNoZUNvbnRleHRcbi8qOiBSZWFjdC5Db250ZXh0PEVtb3Rpb25DYWNoZSB8IG51bGw+ICovXG49IC8qICNfX1BVUkVfXyAqL1JlYWN0LmNyZWF0ZUNvbnRleHQoIC8vIHdlJ3JlIGRvaW5nIHRoaXMgdG8gYXZvaWQgcHJlY29uc3RydWN0J3MgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIGluIHRoaXMgb25lIGNhc2Vcbi8vIGJlY2F1c2UgdGhpcyBtb2R1bGUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciB0aGUgYnJvd3NlciBhbmQgbm9kZVxuLy8gYnV0IGl0J3MgYWxzbyByZXF1aXJlZCBpbiByZWFjdCBuYXRpdmUgYW5kIHNpbWlsYXIgZW52aXJvbm1lbnRzIHNvbWV0aW1lc1xuLy8gYW5kIHdlIGNvdWxkIGhhdmUgYSBzcGVjaWFsIGJ1aWxkIGp1c3QgZm9yIHRoYXRcbi8vIGJ1dCB0aGlzIGlzIG11Y2ggZWFzaWVyIGFuZCB0aGUgbmF0aXZlIHBhY2thZ2VzXG4vLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgdGhlbWUgY29udGV4dCBpbiB0aGUgZnV0dXJlIGFueXdheVxudHlwZW9mIEhUTUxFbGVtZW50ICE9PSAndW5kZWZpbmVkJyA/IC8qICNfX1BVUkVfXyAqL2NyZWF0ZUNhY2hlKHtcbiAga2V5OiAnY3NzJ1xufSkgOiBudWxsKTtcblxudmFyIENhY2hlUHJvdmlkZXIgPSBFbW90aW9uQ2FjaGVDb250ZXh0LlByb3ZpZGVyO1xudmFyIF9fdW5zYWZlX3VzZUVtb3Rpb25DYWNoZSA9IGZ1bmN0aW9uIHVzZUVtb3Rpb25DYWNoZSgpXG4vKjogRW1vdGlvbkNhY2hlIHwgbnVsbCovXG57XG4gIHJldHVybiB1c2VDb250ZXh0KEVtb3Rpb25DYWNoZUNvbnRleHQpO1xufTtcblxudmFyIHdpdGhFbW90aW9uQ2FjaGUgPSBmdW5jdGlvbiB3aXRoRW1vdGlvbkNhY2hlXG4vKiA8UHJvcHMsIFJlZjogUmVhY3QuUmVmPCo+PiAqL1xuKGZ1bmNcbi8qOiAocHJvcHM6IFByb3BzLCBjYWNoZTogRW1vdGlvbkNhY2hlLCByZWY6IFJlZikgPT4gUmVhY3QuTm9kZSAqL1xuKVxuLyo6IFJlYWN0LkFic3RyYWN0Q29tcG9uZW50PFByb3BzPiAqL1xue1xuICByZXR1cm4gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzXG4gIC8qOiBQcm9wcyAqL1xuICAsIHJlZlxuICAvKjogUmVmICovXG4gICkge1xuICAgIC8vIHRoZSBjYWNoZSB3aWxsIG5ldmVyIGJlIG51bGwgaW4gdGhlIGJyb3dzZXJcbiAgICB2YXIgY2FjaGUgPSB1c2VDb250ZXh0KEVtb3Rpb25DYWNoZUNvbnRleHQpO1xuICAgIHJldHVybiBmdW5jKHByb3BzLCBjYWNoZSwgcmVmKTtcbiAgfSk7XG59O1xuXG52YXIgVGhlbWVDb250ZXh0ID0gLyogI19fUFVSRV9fICovUmVhY3QuY3JlYXRlQ29udGV4dCh7fSk7XG5cbnZhciB1c2VUaGVtZSA9IGZ1bmN0aW9uIHVzZVRoZW1lKCkge1xuICByZXR1cm4gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xufTtcblxudmFyIGdldFRoZW1lID0gZnVuY3Rpb24gZ2V0VGhlbWUob3V0ZXJUaGVtZVxuLyo6IE9iamVjdCAqL1xuLCB0aGVtZVxuLyo6IE9iamVjdCB8IChPYmplY3QgPT4gT2JqZWN0KSAqL1xuKSB7XG4gIGlmICh0eXBlb2YgdGhlbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgbWVyZ2VkVGhlbWUgPSB0aGVtZShvdXRlclRoZW1lKTtcblxuICAgIHJldHVybiBtZXJnZWRUaGVtZTtcbiAgfVxuXG4gIHJldHVybiBfZXh0ZW5kcyh7fSwgb3V0ZXJUaGVtZSwgdGhlbWUpO1xufTtcblxudmFyIGNyZWF0ZUNhY2hlV2l0aFRoZW1lID0gLyogI19fUFVSRV9fICovd2Vha01lbW9pemUoZnVuY3Rpb24gKG91dGVyVGhlbWUpIHtcbiAgcmV0dXJuIHdlYWtNZW1vaXplKGZ1bmN0aW9uICh0aGVtZSkge1xuICAgIHJldHVybiBnZXRUaGVtZShvdXRlclRoZW1lLCB0aGVtZSk7XG4gIH0pO1xufSk7XG4vKlxudHlwZSBUaGVtZVByb3ZpZGVyUHJvcHMgPSB7XG4gIHRoZW1lOiBPYmplY3QgfCAoT2JqZWN0ID0+IE9iamVjdCksXG4gIGNoaWxkcmVuOiBSZWFjdC5Ob2RlXG59XG4qL1xuXG52YXIgVGhlbWVQcm92aWRlciA9IGZ1bmN0aW9uIFRoZW1lUHJvdmlkZXIocHJvcHNcbi8qOiBUaGVtZVByb3ZpZGVyUHJvcHMgKi9cbikge1xuICB2YXIgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG5cbiAgaWYgKHByb3BzLnRoZW1lICE9PSB0aGVtZSkge1xuICAgIHRoZW1lID0gY3JlYXRlQ2FjaGVXaXRoVGhlbWUodGhlbWUpKHByb3BzLnRoZW1lKTtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChUaGVtZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogdGhlbWVcbiAgfSwgcHJvcHMuY2hpbGRyZW4pO1xufTtcbmZ1bmN0aW9uIHdpdGhUaGVtZVxuLyogPENvbmZpZzoge30+ICovXG4oQ29tcG9uZW50XG4vKjogUmVhY3QuQWJzdHJhY3RDb21wb25lbnQ8Q29uZmlnPiAqL1xuKVxuLyo6IFJlYWN0LkFic3RyYWN0Q29tcG9uZW50PCREaWZmPENvbmZpZywgeyB0aGVtZTogT2JqZWN0IH0+PiAqL1xue1xuICB2YXIgY29tcG9uZW50TmFtZSA9IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50JztcblxuICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHByb3BzLCByZWYpIHtcbiAgICB2YXIgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe1xuICAgICAgdGhlbWU6IHRoZW1lLFxuICAgICAgcmVmOiByZWZcbiAgICB9LCBwcm9wcykpO1xuICB9O1xuXG4gIHZhciBXaXRoVGhlbWUgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihyZW5kZXIpO1xuICBXaXRoVGhlbWUuZGlzcGxheU5hbWUgPSBcIldpdGhUaGVtZShcIiArIGNvbXBvbmVudE5hbWUgKyBcIilcIjtcbiAgcmV0dXJuIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKFdpdGhUaGVtZSwgQ29tcG9uZW50KTtcbn1cblxudmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG52YXIgdHlwZVByb3BOYW1lID0gJ19fRU1PVElPTl9UWVBFX1BMRUFTRV9ET19OT1RfVVNFX18nO1xudmFyIGNyZWF0ZUVtb3Rpb25Qcm9wcyA9IGZ1bmN0aW9uIGNyZWF0ZUVtb3Rpb25Qcm9wcyh0eXBlXG4vKjogUmVhY3QuRWxlbWVudFR5cGUgKi9cbiwgcHJvcHNcbi8qOiBPYmplY3QgKi9cbikge1xuXG4gIHZhciBuZXdQcm9wc1xuICAvKjogYW55ICovXG4gID0ge307XG5cbiAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093bi5jYWxsKHByb3BzLCBrZXkpKSB7XG4gICAgICBuZXdQcm9wc1trZXldID0gcHJvcHNba2V5XTtcbiAgICB9XG4gIH1cblxuICBuZXdQcm9wc1t0eXBlUHJvcE5hbWVdID0gdHlwZTsgLy8gUnVudGltZSBsYWJlbGluZyBpcyBhbiBvcHQtaW4gZmVhdHVyZSBiZWNhdXNlOlxuXG4gIHJldHVybiBuZXdQcm9wcztcbn07XG5cbnZhciBJbnNlcnRpb24gPSBmdW5jdGlvbiBJbnNlcnRpb24oX3JlZikge1xuICB2YXIgY2FjaGUgPSBfcmVmLmNhY2hlLFxuICAgICAgc2VyaWFsaXplZCA9IF9yZWYuc2VyaWFsaXplZCxcbiAgICAgIGlzU3RyaW5nVGFnID0gX3JlZi5pc1N0cmluZ1RhZztcbiAgcmVnaXN0ZXJTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKTtcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGluc2VydFN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpO1xuICB9KTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbnZhciBFbW90aW9uID0gLyogI19fUFVSRV9fICovd2l0aEVtb3Rpb25DYWNoZShcbi8qIDxhbnksIGFueT4gKi9cbmZ1bmN0aW9uIChwcm9wcywgY2FjaGUsIHJlZikge1xuICB2YXIgY3NzUHJvcCA9IHByb3BzLmNzczsgLy8gc28gdGhhdCB1c2luZyBgY3NzYCBmcm9tIGBlbW90aW9uYCBhbmQgcGFzc2luZyB0aGUgcmVzdWx0IHRvIHRoZSBjc3MgcHJvcCB3b3Jrc1xuICAvLyBub3QgcGFzc2luZyB0aGUgcmVnaXN0ZXJlZCBjYWNoZSB0byBzZXJpYWxpemVTdHlsZXMgYmVjYXVzZSBpdCB3b3VsZFxuICAvLyBtYWtlIGNlcnRhaW4gYmFiZWwgb3B0aW1pc2F0aW9ucyBub3QgcG9zc2libGVcblxuICBpZiAodHlwZW9mIGNzc1Byb3AgPT09ICdzdHJpbmcnICYmIGNhY2hlLnJlZ2lzdGVyZWRbY3NzUHJvcF0gIT09IHVuZGVmaW5lZCkge1xuICAgIGNzc1Byb3AgPSBjYWNoZS5yZWdpc3RlcmVkW2Nzc1Byb3BdO1xuICB9XG5cbiAgdmFyIFdyYXBwZWRDb21wb25lbnQgPSBwcm9wc1t0eXBlUHJvcE5hbWVdO1xuICB2YXIgcmVnaXN0ZXJlZFN0eWxlcyA9IFtjc3NQcm9wXTtcbiAgdmFyIGNsYXNzTmFtZSA9ICcnO1xuXG4gIGlmICh0eXBlb2YgcHJvcHMuY2xhc3NOYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNsYXNzTmFtZSA9IGdldFJlZ2lzdGVyZWRTdHlsZXMoY2FjaGUucmVnaXN0ZXJlZCwgcmVnaXN0ZXJlZFN0eWxlcywgcHJvcHMuY2xhc3NOYW1lKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5jbGFzc05hbWUgIT0gbnVsbCkge1xuICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSArIFwiIFwiO1xuICB9XG5cbiAgdmFyIHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTdHlsZXMocmVnaXN0ZXJlZFN0eWxlcywgdW5kZWZpbmVkLCBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCkpO1xuXG4gIGNsYXNzTmFtZSArPSBjYWNoZS5rZXkgKyBcIi1cIiArIHNlcmlhbGl6ZWQubmFtZTtcbiAgdmFyIG5ld1Byb3BzID0ge307XG5cbiAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093bi5jYWxsKHByb3BzLCBrZXkpICYmIGtleSAhPT0gJ2NzcycgJiYga2V5ICE9PSB0eXBlUHJvcE5hbWUgJiYgKCFpc0RldmVsb3BtZW50ICkpIHtcbiAgICAgIG5ld1Byb3BzW2tleV0gPSBwcm9wc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIG5ld1Byb3BzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblxuICBpZiAocmVmKSB7XG4gICAgbmV3UHJvcHMucmVmID0gcmVmO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbnNlcnRpb24sIHtcbiAgICBjYWNoZTogY2FjaGUsXG4gICAgc2VyaWFsaXplZDogc2VyaWFsaXplZCxcbiAgICBpc1N0cmluZ1RhZzogdHlwZW9mIFdyYXBwZWRDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChXcmFwcGVkQ29tcG9uZW50LCBuZXdQcm9wcykpO1xufSk7XG5cbnZhciBFbW90aW9uJDEgPSBFbW90aW9uO1xuXG5leHBvcnQgeyBDYWNoZVByb3ZpZGVyIGFzIEMsIEVtb3Rpb24kMSBhcyBFLCBUaGVtZUNvbnRleHQgYXMgVCwgX191bnNhZmVfdXNlRW1vdGlvbkNhY2hlIGFzIF8sIFRoZW1lUHJvdmlkZXIgYXMgYSwgd2l0aFRoZW1lIGFzIGIsIGNyZWF0ZUVtb3Rpb25Qcm9wcyBhcyBjLCBoYXNPd24gYXMgaCwgaXNEZXZlbG9wbWVudCBhcyBpLCB1c2VUaGVtZSBhcyB1LCB3aXRoRW1vdGlvbkNhY2hlIGFzIHcgfTtcbiIsICJpbXBvcnQgeyBoIGFzIGhhc093biwgRSBhcyBFbW90aW9uLCBjIGFzIGNyZWF0ZUVtb3Rpb25Qcm9wcywgdyBhcyB3aXRoRW1vdGlvbkNhY2hlLCBUIGFzIFRoZW1lQ29udGV4dCwgaSBhcyBpc0RldmVsb3BtZW50IH0gZnJvbSAnLi9lbW90aW9uLWVsZW1lbnQtNTQ4NmM1MWMuYnJvd3Nlci5lc20uanMnO1xuZXhwb3J0IHsgQyBhcyBDYWNoZVByb3ZpZGVyLCBUIGFzIFRoZW1lQ29udGV4dCwgYSBhcyBUaGVtZVByb3ZpZGVyLCBfIGFzIF9fdW5zYWZlX3VzZUVtb3Rpb25DYWNoZSwgdSBhcyB1c2VUaGVtZSwgdyBhcyB3aXRoRW1vdGlvbkNhY2hlLCBiIGFzIHdpdGhUaGVtZSB9IGZyb20gJy4vZW1vdGlvbi1lbGVtZW50LTU0ODZjNTFjLmJyb3dzZXIuZXNtLmpzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc2VydFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGdldFJlZ2lzdGVyZWRTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi91dGlscyc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2ssIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2sgfSBmcm9tICdAZW1vdGlvbi91c2UtaW5zZXJ0aW9uLWVmZmVjdC13aXRoLWZhbGxiYWNrcyc7XG5pbXBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi9zZXJpYWxpemUnO1xuaW1wb3J0ICdAZW1vdGlvbi9jYWNoZSc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgJ0BlbW90aW9uL3dlYWstbWVtb2l6ZSc7XG5pbXBvcnQgJy4uL19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5icm93c2VyLmVzbS5qcyc7XG5pbXBvcnQgJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJztcblxudmFyIGpzeFxuLyo6IHR5cGVvZiBSZWFjdC5jcmVhdGVFbGVtZW50ICovXG49IGZ1bmN0aW9uIGpzeFxuLyo6IHR5cGVvZiBSZWFjdC5jcmVhdGVFbGVtZW50ICovXG4odHlwZVxuLyo6IFJlYWN0LkVsZW1lbnRUeXBlICovXG4sIHByb3BzXG4vKjogT2JqZWN0ICovXG4pIHtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG5cbiAgaWYgKHByb3BzID09IG51bGwgfHwgIWhhc093bi5jYWxsKHByb3BzLCAnY3NzJykpIHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudC5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICB9XG5cbiAgdmFyIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aDtcbiAgdmFyIGNyZWF0ZUVsZW1lbnRBcmdBcnJheSA9IG5ldyBBcnJheShhcmdzTGVuZ3RoKTtcbiAgY3JlYXRlRWxlbWVudEFyZ0FycmF5WzBdID0gRW1vdGlvbjtcbiAgY3JlYXRlRWxlbWVudEFyZ0FycmF5WzFdID0gY3JlYXRlRW1vdGlvblByb3BzKHR5cGUsIHByb3BzKTtcblxuICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3NMZW5ndGg7IGkrKykge1xuICAgIGNyZWF0ZUVsZW1lbnRBcmdBcnJheVtpXSA9IGFyZ3NbaV07XG4gIH1cblxuICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudC5hcHBseShudWxsLCBjcmVhdGVFbGVtZW50QXJnQXJyYXkpO1xufTtcblxuLy8gaW5pdGlhbCByZW5kZXIgZnJvbSBicm93c2VyLCBpbnNlcnRCZWZvcmUgY29udGV4dC5zaGVldC50YWdzWzBdIG9yIGlmIGEgc3R5bGUgaGFzbid0IGJlZW4gaW5zZXJ0ZWQgdGhlcmUgeWV0LCBhcHBlbmRDaGlsZFxuLy8gaW5pdGlhbCBjbGllbnQtc2lkZSByZW5kZXIgZnJvbSBTU1IsIHVzZSBwbGFjZSBvZiBoeWRyYXRpbmcgdGFnXG5cbnZhciBHbG9iYWxcbi8qOiBSZWFjdC5BYnN0cmFjdENvbXBvbmVudDxcbkdsb2JhbFByb3BzXG4+ICovXG49IC8qICNfX1BVUkVfXyAqL3dpdGhFbW90aW9uQ2FjaGUoZnVuY3Rpb24gKHByb3BzXG4vKjogR2xvYmFsUHJvcHMgKi9cbiwgY2FjaGUpIHtcblxuICB2YXIgc3R5bGVzID0gcHJvcHMuc3R5bGVzO1xuICB2YXIgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZVN0eWxlcyhbc3R5bGVzXSwgdW5kZWZpbmVkLCBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCkpO1xuICAvLyBidXQgaXQgaXMgYmFzZWQgb24gYSBjb25zdGFudCB0aGF0IHdpbGwgbmV2ZXIgY2hhbmdlIGF0IHJ1bnRpbWVcbiAgLy8gaXQncyBlZmZlY3RpdmVseSBsaWtlIGhhdmluZyB0d28gaW1wbGVtZW50YXRpb25zIGFuZCBzd2l0Y2hpbmcgdGhlbSBvdXRcbiAgLy8gc28gaXQncyBub3QgYWN0dWFsbHkgYnJlYWtpbmcgYW55dGhpbmdcblxuXG4gIHZhciBzaGVldFJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIHZhciBrZXkgPSBjYWNoZS5rZXkgKyBcIi1nbG9iYWxcIjsgLy8gdXNlIGNhc2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2Vtb3Rpb24tanMvZW1vdGlvbi9pc3N1ZXMvMjY3NVxuXG4gICAgdmFyIHNoZWV0ID0gbmV3IGNhY2hlLnNoZWV0LmNvbnN0cnVjdG9yKHtcbiAgICAgIGtleToga2V5LFxuICAgICAgbm9uY2U6IGNhY2hlLnNoZWV0Lm5vbmNlLFxuICAgICAgY29udGFpbmVyOiBjYWNoZS5zaGVldC5jb250YWluZXIsXG4gICAgICBzcGVlZHk6IGNhY2hlLnNoZWV0LmlzU3BlZWR5XG4gICAgfSk7XG4gICAgdmFyIHJlaHlkcmF0aW5nID0gZmFsc2U7XG4gICAgdmFyIG5vZGVcbiAgICAvKjogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwqL1xuICAgID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcInN0eWxlW2RhdGEtZW1vdGlvbj1cXFwiXCIgKyBrZXkgKyBcIiBcIiArIHNlcmlhbGl6ZWQubmFtZSArIFwiXFxcIl1cIik7XG5cbiAgICBpZiAoY2FjaGUuc2hlZXQudGFncy5sZW5ndGgpIHtcbiAgICAgIHNoZWV0LmJlZm9yZSA9IGNhY2hlLnNoZWV0LnRhZ3NbMF07XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlaHlkcmF0aW5nID0gdHJ1ZTsgLy8gY2xlYXIgdGhlIGhhc2ggc28gdGhpcyBub2RlIHdvbid0IGJlIHJlY29nbml6YWJsZSBhcyByZWh5ZHJhdGFibGUgYnkgb3RoZXIgPEdsb2JhbC8+c1xuXG4gICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1lbW90aW9uJywga2V5KTtcbiAgICAgIHNoZWV0Lmh5ZHJhdGUoW25vZGVdKTtcbiAgICB9XG5cbiAgICBzaGVldFJlZi5jdXJyZW50ID0gW3NoZWV0LCByZWh5ZHJhdGluZ107XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNoZWV0LmZsdXNoKCk7XG4gICAgfTtcbiAgfSwgW2NhY2hlXSk7XG4gIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNoZWV0UmVmQ3VycmVudCA9IHNoZWV0UmVmLmN1cnJlbnQ7XG4gICAgdmFyIHNoZWV0ID0gc2hlZXRSZWZDdXJyZW50WzBdLFxuICAgICAgICByZWh5ZHJhdGluZyA9IHNoZWV0UmVmQ3VycmVudFsxXTtcblxuICAgIGlmIChyZWh5ZHJhdGluZykge1xuICAgICAgc2hlZXRSZWZDdXJyZW50WzFdID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHNlcmlhbGl6ZWQubmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBpbnNlcnQga2V5ZnJhbWVzXG4gICAgICBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQubmV4dCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHNoZWV0LnRhZ3MubGVuZ3RoKSB7XG4gICAgICAvLyBpZiB0aGlzIGRvZXNuJ3QgZXhpc3QgdGhlbiBpdCB3aWxsIGJlIG51bGwgc28gdGhlIHN0eWxlIGVsZW1lbnQgd2lsbCBiZSBhcHBlbmRlZFxuICAgICAgdmFyIGVsZW1lbnQgPSBzaGVldC50YWdzW3NoZWV0LnRhZ3MubGVuZ3RoIC0gMV0ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgc2hlZXQuYmVmb3JlID0gZWxlbWVudDtcbiAgICAgIHNoZWV0LmZsdXNoKCk7XG4gICAgfVxuXG4gICAgY2FjaGUuaW5zZXJ0KFwiXCIsIHNlcmlhbGl6ZWQsIHNoZWV0LCBmYWxzZSk7XG4gIH0sIFtjYWNoZSwgc2VyaWFsaXplZC5uYW1lXSk7XG4gIHJldHVybiBudWxsO1xufSk7XG5cbi8qIGltcG9ydCB0eXBlIHsgSW50ZXJwb2xhdGlvbiwgU2VyaWFsaXplZFN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3V0aWxzJyAqL1xuXG5mdW5jdGlvbiBjc3MoKVxuLyo6IFNlcmlhbGl6ZWRTdHlsZXMgKi9cbntcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBzZXJpYWxpemVTdHlsZXMoYXJncyk7XG59XG5cbi8qXG50eXBlIEtleWZyYW1lcyA9IHt8XG4gIG5hbWU6IHN0cmluZyxcbiAgc3R5bGVzOiBzdHJpbmcsXG4gIGFuaW06IDEsXG4gIHRvU3RyaW5nOiAoKSA9PiBzdHJpbmdcbnx9ICYgc3RyaW5nXG4qL1xuXG52YXIga2V5ZnJhbWVzID0gZnVuY3Rpb25cbiAgLyo6IEtleWZyYW1lcyAqL1xua2V5ZnJhbWVzKCkge1xuICB2YXIgaW5zZXJ0YWJsZSA9IGNzcy5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7XG4gIHZhciBuYW1lID0gXCJhbmltYXRpb24tXCIgKyBpbnNlcnRhYmxlLm5hbWU7XG4gIHJldHVybiB7XG4gICAgbmFtZTogbmFtZSxcbiAgICBzdHlsZXM6IFwiQGtleWZyYW1lcyBcIiArIG5hbWUgKyBcIntcIiArIGluc2VydGFibGUuc3R5bGVzICsgXCJ9XCIsXG4gICAgYW5pbTogMSxcbiAgICB0b1N0cmluZzogZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gXCJfRU1PX1wiICsgdGhpcy5uYW1lICsgXCJfXCIgKyB0aGlzLnN0eWxlcyArIFwiX0VNT19cIjtcbiAgICB9XG4gIH07XG59O1xuXG4vKlxudHlwZSBDbGFzc05hbWVBcmcgPVxuICB8IHN0cmluZ1xuICB8IGJvb2xlYW5cbiAgfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfVxuICB8IEFycmF5PENsYXNzTmFtZUFyZz5cbiAgfCBudWxsXG4gIHwgdm9pZFxuKi9cblxudmFyIGNsYXNzbmFtZXMgPSBmdW5jdGlvblxuICAvKjogc3RyaW5nICovXG5jbGFzc25hbWVzKGFyZ3Ncbi8qOiBBcnJheTxDbGFzc05hbWVBcmc+ICovXG4pIHtcbiAgdmFyIGxlbiA9IGFyZ3MubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBjbHMgPSAnJztcblxuICBmb3IgKDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PSBudWxsKSBjb250aW51ZTtcbiAgICB2YXIgdG9BZGQgPSB2b2lkIDA7XG5cbiAgICBzd2l0Y2ggKHR5cGVvZiBhcmcpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcbiAgICAgICAgICAgIHRvQWRkID0gY2xhc3NuYW1lcyhhcmcpO1xuICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIHRvQWRkID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gYXJnKSB7XG4gICAgICAgICAgICAgIGlmIChhcmdba10gJiYgaykge1xuICAgICAgICAgICAgICAgIHRvQWRkICYmICh0b0FkZCArPSAnICcpO1xuICAgICAgICAgICAgICAgIHRvQWRkICs9IGs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgdG9BZGQgPSBhcmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9BZGQpIHtcbiAgICAgIGNscyAmJiAoY2xzICs9ICcgJyk7XG4gICAgICBjbHMgKz0gdG9BZGQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNscztcbn07XG5cbmZ1bmN0aW9uIG1lcmdlKHJlZ2lzdGVyZWRcbi8qOiBPYmplY3QgKi9cbiwgY3NzXG4vKjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IHN0cmluZyAqL1xuLCBjbGFzc05hbWVcbi8qOiBzdHJpbmcgKi9cbikge1xuICB2YXIgcmVnaXN0ZXJlZFN0eWxlcyA9IFtdO1xuICB2YXIgcmF3Q2xhc3NOYW1lID0gZ2V0UmVnaXN0ZXJlZFN0eWxlcyhyZWdpc3RlcmVkLCByZWdpc3RlcmVkU3R5bGVzLCBjbGFzc05hbWUpO1xuXG4gIGlmIChyZWdpc3RlcmVkU3R5bGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gY2xhc3NOYW1lO1xuICB9XG5cbiAgcmV0dXJuIHJhd0NsYXNzTmFtZSArIGNzcyhyZWdpc3RlcmVkU3R5bGVzKTtcbn1cblxudmFyIEluc2VydGlvbiA9IGZ1bmN0aW9uIEluc2VydGlvbihfcmVmKSB7XG4gIHZhciBjYWNoZSA9IF9yZWYuY2FjaGUsXG4gICAgICBzZXJpYWxpemVkQXJyID0gX3JlZi5zZXJpYWxpemVkQXJyO1xuICB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrKGZ1bmN0aW9uICgpIHtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWFsaXplZEFyci5sZW5ndGg7IGkrKykge1xuICAgICAgaW5zZXJ0U3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkQXJyW2ldLCBmYWxzZSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbnVsbDtcbn07XG4vKlxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46ICh7XG4gICAgY3NzOiAoLi4uYXJnczogYW55KSA9PiBzdHJpbmcsXG4gICAgY3g6ICguLi5hcmdzOiBBcnJheTxDbGFzc05hbWVBcmc+KSA9PiBzdHJpbmcsXG4gICAgdGhlbWU6IE9iamVjdFxuICB9KSA9PiBSZWFjdC5Ob2RlXG59ICovXG5cblxudmFyIENsYXNzTmFtZXNcbi8qOiBSZWFjdC5BYnN0cmFjdENvbXBvbmVudDxQcm9wcz4qL1xuPSAvKiAjX19QVVJFX18gKi93aXRoRW1vdGlvbkNhY2hlKGZ1bmN0aW9uIChwcm9wcywgY2FjaGUpIHtcbiAgdmFyIGhhc1JlbmRlcmVkID0gZmFsc2U7XG4gIHZhciBzZXJpYWxpemVkQXJyID0gW107XG5cbiAgdmFyIGNzcyA9IGZ1bmN0aW9uIGNzcygpIHtcbiAgICBpZiAoaGFzUmVuZGVyZWQgJiYgaXNEZXZlbG9wbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjc3MgY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgcmVuZGVyJyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplU3R5bGVzKGFyZ3MsIGNhY2hlLnJlZ2lzdGVyZWQpO1xuICAgIHNlcmlhbGl6ZWRBcnIucHVzaChzZXJpYWxpemVkKTsgLy8gcmVnaXN0cmF0aW9uIGhhcyB0byBoYXBwZW4gaGVyZSBhcyB0aGUgcmVzdWx0IG9mIHRoaXMgbWlnaHQgZ2V0IGNvbnN1bWVkIGJ5IGBjeGBcblxuICAgIHJlZ2lzdGVyU3R5bGVzKGNhY2hlLCBzZXJpYWxpemVkLCBmYWxzZSk7XG4gICAgcmV0dXJuIGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuICB9O1xuXG4gIHZhciBjeCA9IGZ1bmN0aW9uIGN4KCkge1xuICAgIGlmIChoYXNSZW5kZXJlZCAmJiBpc0RldmVsb3BtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N4IGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIHJlbmRlcicpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZShjYWNoZS5yZWdpc3RlcmVkLCBjc3MsIGNsYXNzbmFtZXMoYXJncykpO1xuICB9O1xuXG4gIHZhciBjb250ZW50ID0ge1xuICAgIGNzczogY3NzLFxuICAgIGN4OiBjeCxcbiAgICB0aGVtZTogUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpXG4gIH07XG4gIHZhciBlbGUgPSBwcm9wcy5jaGlsZHJlbihjb250ZW50KTtcbiAgaGFzUmVuZGVyZWQgPSB0cnVlO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbiwge1xuICAgIGNhY2hlOiBjYWNoZSxcbiAgICBzZXJpYWxpemVkQXJyOiBzZXJpYWxpemVkQXJyXG4gIH0pLCBlbGUpO1xufSk7XG5cbmV4cG9ydCB7IENsYXNzTmFtZXMsIEdsb2JhbCwganN4IGFzIGNyZWF0ZUVsZW1lbnQsIGNzcywganN4LCBrZXlmcmFtZXMgfTtcbiIsICJmdW5jdGlvbiBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKGUsIHQpIHtcbiAgcmV0dXJuIHQgfHwgKHQgPSBlLnNsaWNlKDApKSwgT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCB7XG4gICAgcmF3OiB7XG4gICAgICB2YWx1ZTogT2JqZWN0LmZyZWV6ZSh0KVxuICAgIH1cbiAgfSkpO1xufVxuZXhwb3J0IHsgX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCBhcyBkZWZhdWx0IH07IiwgIi8qKlxuICogQ3VzdG9tIHBvc2l0aW9uaW5nIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3ZpcnR1YWwtZWxlbWVudHNcbiAqL1xuXG5jb25zdCBzaWRlcyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J107XG5jb25zdCBhbGlnbm1lbnRzID0gWydzdGFydCcsICdlbmQnXTtcbmNvbnN0IHBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovc2lkZXMucmVkdWNlKChhY2MsIHNpZGUpID0+IGFjYy5jb25jYXQoc2lkZSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1swXSwgc2lkZSArIFwiLVwiICsgYWxpZ25tZW50c1sxXSksIFtdKTtcbmNvbnN0IG1pbiA9IE1hdGgubWluO1xuY29uc3QgbWF4ID0gTWF0aC5tYXg7XG5jb25zdCByb3VuZCA9IE1hdGgucm91bmQ7XG5jb25zdCBmbG9vciA9IE1hdGguZmxvb3I7XG5jb25zdCBjcmVhdGVDb29yZHMgPSB2ID0+ICh7XG4gIHg6IHYsXG4gIHk6IHZcbn0pO1xuY29uc3Qgb3Bwb3NpdGVTaWRlTWFwID0ge1xuICBsZWZ0OiAncmlnaHQnLFxuICByaWdodDogJ2xlZnQnLFxuICBib3R0b206ICd0b3AnLFxuICB0b3A6ICdib3R0b20nXG59O1xuY29uc3Qgb3Bwb3NpdGVBbGlnbm1lbnRNYXAgPSB7XG4gIHN0YXJ0OiAnZW5kJyxcbiAgZW5kOiAnc3RhcnQnXG59O1xuZnVuY3Rpb24gY2xhbXAoc3RhcnQsIHZhbHVlLCBlbmQpIHtcbiAgcmV0dXJuIG1heChzdGFydCwgbWluKHZhbHVlLCBlbmQpKTtcbn1cbmZ1bmN0aW9uIGV2YWx1YXRlKHZhbHVlLCBwYXJhbSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUocGFyYW0pIDogdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTaWRlKHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBeGlzTGVuZ3RoKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbn1cbmZ1bmN0aW9uIGdldFNpZGVBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gWyd0b3AnLCAnYm90dG9tJ10uaW5jbHVkZXMoZ2V0U2lkZShwbGFjZW1lbnQpKSA/ICd5JyA6ICd4Jztcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KSB7XG4gIHJldHVybiBnZXRPcHBvc2l0ZUF4aXMoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSk7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRTaWRlcyhwbGFjZW1lbnQsIHJlY3RzLCBydGwpIHtcbiAgaWYgKHJ0bCA9PT0gdm9pZCAwKSB7XG4gICAgcnRsID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYWxpZ25tZW50QXhpcyk7XG4gIGxldCBtYWluQWxpZ25tZW50U2lkZSA9IGFsaWdubWVudEF4aXMgPT09ICd4JyA/IGFsaWdubWVudCA9PT0gKHJ0bCA/ICdlbmQnIDogJ3N0YXJ0JykgPyAncmlnaHQnIDogJ2xlZnQnIDogYWxpZ25tZW50ID09PSAnc3RhcnQnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgaWYgKHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdID4gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXSkge1xuICAgIG1haW5BbGlnbm1lbnRTaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpO1xuICB9XG4gIHJldHVybiBbbWFpbkFsaWdubWVudFNpZGUsIGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKV07XG59XG5mdW5jdGlvbiBnZXRFeHBhbmRlZFBsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGNvbnN0IG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBhbGlnbm1lbnQgPT4gb3Bwb3NpdGVBbGlnbm1lbnRNYXBbYWxpZ25tZW50XSk7XG59XG5mdW5jdGlvbiBnZXRTaWRlTGlzdChzaWRlLCBpc1N0YXJ0LCBydGwpIHtcbiAgY29uc3QgbHIgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbiAgY29uc3QgcmwgPSBbJ3JpZ2h0JywgJ2xlZnQnXTtcbiAgY29uc3QgdGIgPSBbJ3RvcCcsICdib3R0b20nXTtcbiAgY29uc3QgYnQgPSBbJ2JvdHRvbScsICd0b3AnXTtcbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgaWYgKHJ0bCkgcmV0dXJuIGlzU3RhcnQgPyBybCA6IGxyO1xuICAgICAgcmV0dXJuIGlzU3RhcnQgPyBsciA6IHJsO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gdGIgOiBidDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFtdO1xuICB9XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzKHBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZGlyZWN0aW9uLCBydGwpIHtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGxldCBsaXN0ID0gZ2V0U2lkZUxpc3QoZ2V0U2lkZShwbGFjZW1lbnQpLCBkaXJlY3Rpb24gPT09ICdzdGFydCcsIHJ0bCk7XG4gIGlmIChhbGlnbm1lbnQpIHtcbiAgICBsaXN0ID0gbGlzdC5tYXAoc2lkZSA9PiBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnQpO1xuICAgIGlmIChmbGlwQWxpZ25tZW50KSB7XG4gICAgICBsaXN0ID0gbGlzdC5jb25jYXQobGlzdC5tYXAoZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpc3Q7XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgc2lkZSA9PiBvcHBvc2l0ZVNpZGVNYXBbc2lkZV0pO1xufVxuZnVuY3Rpb24gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIC4uLnBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4gdHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gZXhwYW5kUGFkZGluZ09iamVjdChwYWRkaW5nKSA6IHtcbiAgICB0b3A6IHBhZGRpbmcsXG4gICAgcmlnaHQ6IHBhZGRpbmcsXG4gICAgYm90dG9tOiBwYWRkaW5nLFxuICAgIGxlZnQ6IHBhZGRpbmdcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlY3RUb0NsaWVudFJlY3QocmVjdCkge1xuICBjb25zdCB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gcmVjdDtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIGxlZnQ6IHgsXG4gICAgcmlnaHQ6IHggKyB3aWR0aCxcbiAgICBib3R0b206IHkgKyBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmV4cG9ydCB7IGFsaWdubWVudHMsIGNsYW1wLCBjcmVhdGVDb29yZHMsIGV2YWx1YXRlLCBleHBhbmRQYWRkaW5nT2JqZWN0LCBmbG9vciwgZ2V0QWxpZ25tZW50LCBnZXRBbGlnbm1lbnRBeGlzLCBnZXRBbGlnbm1lbnRTaWRlcywgZ2V0QXhpc0xlbmd0aCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVBeGlzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0UGFkZGluZ09iamVjdCwgZ2V0U2lkZSwgZ2V0U2lkZUF4aXMsIG1heCwgbWluLCBwbGFjZW1lbnRzLCByZWN0VG9DbGllbnRSZWN0LCByb3VuZCwgc2lkZXMgfTtcbiIsICJmdW5jdGlvbiBoYXNXaW5kb3coKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn1cbmZ1bmN0aW9uIGdldE5vZGVOYW1lKG5vZGUpIHtcbiAgaWYgKGlzTm9kZShub2RlKSkge1xuICAgIHJldHVybiAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcbiAgLy8gcmV0dXJuaW5nIGAjZG9jdW1lbnRgIGFuIGluZmluaXRlIGxvb3Agd29uJ3Qgb2NjdXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjMxN1xuICByZXR1cm4gJyNkb2N1bWVudCc7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgcmV0dXJuIChub2RlID09IG51bGwgfHwgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICB2YXIgX3JlZjtcbiAgcmV0dXJuIChfcmVmID0gKGlzTm9kZShub2RlKSA/IG5vZGUub3duZXJEb2N1bWVudCA6IG5vZGUuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWYuZG9jdW1lbnRFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgTm9kZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICBpZiAoIWhhc1dpbmRvdygpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkhUTUxFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkgfHwgdHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGlmIChpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9wTGF5ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzV2ViS2l0KCkge1xuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gQ1NTLnN1cHBvcnRzKCctd2Via2l0LWJhY2tkcm9wLWZpbHRlcicsICdub25lJyk7XG59XG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xuICByZXR1cm4gWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUobm9kZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xuICBpZiAoaXNFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxYLFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICBjb25zdCByZXN1bHQgPVxuICAvLyBTdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZS5cbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcbiAgLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWQuXG4gIG5vZGUucGFyZW50Tm9kZSB8fFxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxuICBpc1NoYWRvd1Jvb3Qobm9kZSkgJiYgbm9kZS5ob3N0IHx8XG4gIC8vIEZhbGxiYWNrLlxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XG4gIHJldHVybiBpc1NoYWRvd1Jvb3QocmVzdWx0KSA/IHJlc3VsdC5ob3N0IDogcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcbiAgfVxuICBpZiAoaXNIVE1MRWxlbWVudChwYXJlbnROb2RlKSAmJiBpc092ZXJmbG93RWxlbWVudChwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cbmZ1bmN0aW9uIGdldE92ZXJmbG93QW5jZXN0b3JzKG5vZGUsIGxpc3QsIHRyYXZlcnNlSWZyYW1lcykge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDI7XG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcbiAgICBsaXN0ID0gW107XG4gIH1cbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XG4gICAgdHJhdmVyc2VJZnJhbWVzID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcbiAgY29uc3QgaXNCb2R5ID0gc2Nyb2xsYWJsZUFuY2VzdG9yID09PSAoKF9ub2RlJG93bmVyRG9jdW1lbnQyID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudDIuYm9keSk7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhzY3JvbGxhYmxlQW5jZXN0b3IpO1xuICBpZiAoaXNCb2R5KSB7XG4gICAgY29uc3QgZnJhbWVFbGVtZW50ID0gZ2V0RnJhbWVFbGVtZW50KHdpbik7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KHdpbiwgd2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc092ZXJmbG93RWxlbWVudChzY3JvbGxhYmxlQW5jZXN0b3IpID8gc2Nyb2xsYWJsZUFuY2VzdG9yIDogW10sIGZyYW1lRWxlbWVudCAmJiB0cmF2ZXJzZUlmcmFtZXMgPyBnZXRPdmVyZmxvd0FuY2VzdG9ycyhmcmFtZUVsZW1lbnQpIDogW10pO1xuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChzY3JvbGxhYmxlQW5jZXN0b3IsIGdldE92ZXJmbG93QW5jZXN0b3JzKHNjcm9sbGFibGVBbmNlc3RvciwgW10sIHRyYXZlcnNlSWZyYW1lcykpO1xufVxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KHdpbikge1xuICByZXR1cm4gd2luLnBhcmVudCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yod2luLnBhcmVudCkgPyB3aW4uZnJhbWVFbGVtZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgZ2V0Q29udGFpbmluZ0Jsb2NrLCBnZXREb2N1bWVudEVsZW1lbnQsIGdldEZyYW1lRWxlbWVudCwgZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IsIGdldE5vZGVOYW1lLCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgZ2V0V2luZG93LCBpc0NvbnRhaW5pbmdCbG9jaywgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGlzTm9kZSwgaXNPdmVyZmxvd0VsZW1lbnQsIGlzU2hhZG93Um9vdCwgaXNUYWJsZUVsZW1lbnQsIGlzVG9wTGF5ZXIsIGlzV2ViS2l0IH07XG4iLCAiaW1wb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCwgZGV0ZWN0T3ZlcmZsb3cgYXMgZGV0ZWN0T3ZlcmZsb3ckMSwgb2Zmc2V0IGFzIG9mZnNldCQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgc2hpZnQgYXMgc2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBoaWRlIGFzIGhpZGUkMSwgYXJyb3cgYXMgYXJyb3ckMSwgaW5saW5lIGFzIGlubGluZSQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgY29tcHV0ZVBvc2l0aW9uIGFzIGNvbXB1dGVQb3NpdGlvbiQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2NvcmUnO1xuaW1wb3J0IHsgcm91bmQsIGNyZWF0ZUNvb3JkcywgbWF4LCBtaW4sIGZsb29yIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcbmltcG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGlzSFRNTEVsZW1lbnQsIGlzRWxlbWVudCwgZ2V0V2luZG93LCBpc1dlYktpdCwgZ2V0RnJhbWVFbGVtZW50LCBnZXREb2N1bWVudEVsZW1lbnQsIGlzVG9wTGF5ZXIsIGdldE5vZGVOYW1lLCBpc092ZXJmbG93RWxlbWVudCwgZ2V0Tm9kZVNjcm9sbCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNDb250YWluaW5nQmxvY2ssIGlzVGFibGVFbGVtZW50LCBnZXRDb250YWluaW5nQmxvY2sgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcbmV4cG9ydCB7IGdldE92ZXJmbG93QW5jZXN0b3JzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5cbmZ1bmN0aW9uIGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAvLyBJbiB0ZXN0aW5nIGVudmlyb25tZW50cywgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMgYXJlIGVtcHR5XG4gIC8vIHN0cmluZ3MgZm9yIFNWRyBlbGVtZW50cywgcmV0dXJuaW5nIE5hTi4gRmFsbGJhY2sgdG8gYDBgIGluIHRoaXMgY2FzZS5cbiAgbGV0IHdpZHRoID0gcGFyc2VGbG9hdChjc3Mud2lkdGgpIHx8IDA7XG4gIGxldCBoZWlnaHQgPSBwYXJzZUZsb2F0KGNzcy5oZWlnaHQpIHx8IDA7XG4gIGNvbnN0IGhhc09mZnNldCA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IG9mZnNldFdpZHRoID0gaGFzT2Zmc2V0ID8gZWxlbWVudC5vZmZzZXRXaWR0aCA6IHdpZHRoO1xuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGhlaWdodDtcbiAgY29uc3Qgc2hvdWxkRmFsbGJhY2sgPSByb3VuZCh3aWR0aCkgIT09IG9mZnNldFdpZHRoIHx8IHJvdW5kKGhlaWdodCkgIT09IG9mZnNldEhlaWdodDtcbiAgaWYgKHNob3VsZEZhbGxiYWNrKSB7XG4gICAgd2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICBoZWlnaHQgPSBvZmZzZXRIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJDogc2hvdWxkRmFsbGJhY2tcbiAgfTtcbn1cblxuZnVuY3Rpb24gdW53cmFwRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiAhaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5jb250ZXh0RWxlbWVudCA6IGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFNjYWxlKGVsZW1lbnQpIHtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGlmICghaXNIVE1MRWxlbWVudChkb21FbGVtZW50KSkge1xuICAgIHJldHVybiBjcmVhdGVDb29yZHMoMSk7XG4gIH1cbiAgY29uc3QgcmVjdCA9IGRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhkb21FbGVtZW50KTtcbiAgbGV0IHggPSAoJCA/IHJvdW5kKHJlY3Qud2lkdGgpIDogcmVjdC53aWR0aCkgLyB3aWR0aDtcbiAgbGV0IHkgPSAoJCA/IHJvdW5kKHJlY3QuaGVpZ2h0KSA6IHJlY3QuaGVpZ2h0KSAvIGhlaWdodDtcblxuICAvLyAwLCBOYU4sIG9yIEluZmluaXR5IHNob3VsZCBhbHdheXMgZmFsbGJhY2sgdG8gMS5cblxuICBpZiAoIXggfHwgIU51bWJlci5pc0Zpbml0ZSh4KSkge1xuICAgIHggPSAxO1xuICB9XG4gIGlmICgheSB8fCAhTnVtYmVyLmlzRmluaXRlKHkpKSB7XG4gICAgeSA9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuY29uc3Qgbm9PZmZzZXRzID0gLyojX19QVVJFX18qL2NyZWF0ZUNvb3JkcygwKTtcbmZ1bmN0aW9uIGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmICghaXNXZWJLaXQoKSB8fCAhd2luLnZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIG5vT2Zmc2V0cztcbiAgfVxuICByZXR1cm4ge1xuICAgIHg6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0LFxuICAgIHk6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3BcbiAgfTtcbn1cbmZ1bmN0aW9uIHNob3VsZEFkZFZpc3VhbE9mZnNldHMoZWxlbWVudCwgaXNGaXhlZCwgZmxvYXRpbmdPZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWQgPSBmYWxzZTtcbiAgfVxuICBpZiAoIWZsb2F0aW5nT2Zmc2V0UGFyZW50IHx8IGlzRml4ZWQgJiYgZmxvYXRpbmdPZmZzZXRQYXJlbnQgIT09IGdldFdpbmRvdyhlbGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNGaXhlZDtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cbiAgaWYgKGlzRml4ZWRTdHJhdGVneSA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZFN0cmF0ZWd5ID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSB1bndyYXBFbGVtZW50KGVsZW1lbnQpO1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGlmIChpbmNsdWRlU2NhbGUpIHtcbiAgICBpZiAob2Zmc2V0UGFyZW50KSB7XG4gICAgICBpZiAoaXNFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCB2aXN1YWxPZmZzZXRzID0gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhkb21FbGVtZW50LCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkgPyBnZXRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDApO1xuICBsZXQgeCA9IChjbGllbnRSZWN0LmxlZnQgKyB2aXN1YWxPZmZzZXRzLngpIC8gc2NhbGUueDtcbiAgbGV0IHkgPSAoY2xpZW50UmVjdC50b3AgKyB2aXN1YWxPZmZzZXRzLnkpIC8gc2NhbGUueTtcbiAgbGV0IHdpZHRoID0gY2xpZW50UmVjdC53aWR0aCAvIHNjYWxlLng7XG4gIGxldCBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlLnk7XG4gIGlmIChkb21FbGVtZW50KSB7XG4gICAgY29uc3Qgd2luID0gZ2V0V2luZG93KGRvbUVsZW1lbnQpO1xuICAgIGNvbnN0IG9mZnNldFdpbiA9IG9mZnNldFBhcmVudCAmJiBpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSA/IGdldFdpbmRvdyhvZmZzZXRQYXJlbnQpIDogb2Zmc2V0UGFyZW50O1xuICAgIGxldCBjdXJyZW50V2luID0gd2luO1xuICAgIGxldCBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIHdoaWxlIChjdXJyZW50SUZyYW1lICYmIG9mZnNldFBhcmVudCAmJiBvZmZzZXRXaW4gIT09IGN1cnJlbnRXaW4pIHtcbiAgICAgIGNvbnN0IGlmcmFtZVNjYWxlID0gZ2V0U2NhbGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBpZnJhbWVSZWN0ID0gY3VycmVudElGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBsZWZ0ID0gaWZyYW1lUmVjdC5sZWZ0ICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50TGVmdCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdMZWZ0KSkgKiBpZnJhbWVTY2FsZS54O1xuICAgICAgY29uc3QgdG9wID0gaWZyYW1lUmVjdC50b3AgKyAoY3VycmVudElGcmFtZS5jbGllbnRUb3AgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nVG9wKSkgKiBpZnJhbWVTY2FsZS55O1xuICAgICAgeCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgeSAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgd2lkdGggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIGhlaWdodCAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgeCArPSBsZWZ0O1xuICAgICAgeSArPSB0b3A7XG4gICAgICBjdXJyZW50V2luID0gZ2V0V2luZG93KGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgdG9wTGF5ZXIgPSBlbGVtZW50cyA/IGlzVG9wTGF5ZXIoZWxlbWVudHMuZmxvYXRpbmcpIDogZmFsc2U7XG4gIGlmIChvZmZzZXRQYXJlbnQgPT09IGRvY3VtZW50RWxlbWVudCB8fCB0b3BMYXllciAmJiBpc0ZpeGVkKSB7XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50KTtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUob2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogcmVjdC53aWR0aCAqIHNjYWxlLngsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAqIHNjYWxlLnksXG4gICAgeDogcmVjdC54ICogc2NhbGUueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICogc2NhbGUueCArIG9mZnNldHMueCxcbiAgICB5OiByZWN0LnkgKiBzY2FsZS55IC0gc2Nyb2xsLnNjcm9sbFRvcCAqIHNjYWxlLnkgKyBvZmZzZXRzLnlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdHMoZWxlbWVudCkge1xuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LmdldENsaWVudFJlY3RzKCkpO1xufVxuXG4vLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXG4vLyBpbmNvcnJlY3QgZm9yIFJUTC5cbmZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCwgcmVjdCkge1xuICBjb25zdCBsZWZ0U2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xuICBpZiAoIXJlY3QpIHtcbiAgICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGxlZnRTY3JvbGw7XG4gIH1cbiAgcmV0dXJuIHJlY3QubGVmdCArIGxlZnRTY3JvbGw7XG59XG5cbi8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUuXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpO1xuICBjb25zdCBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5jbGllbnRIZWlnaHQpO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICBsZXQgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIGxldCB4ID0gMDtcbiAgbGV0IHkgPSAwO1xuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcbiAgICBpZiAoIXZpc3VhbFZpZXdwb3J0QmFzZWQgfHwgdmlzdWFsVmlld3BvcnRCYXNlZCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgaW5uZXIgY2xpZW50IHJlY3QsIHN1YnRyYWN0aW5nIHNjcm9sbGJhcnMgaWYgcHJlc2VudC5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICBjb25zdCBzY2FsZSA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgPyBnZXRTY2FsZShlbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgd2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoICogc2NhbGUueDtcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xuICBjb25zdCB4ID0gbGVmdCAqIHNjYWxlLng7XG4gIGNvbnN0IHkgPSB0b3AgKiBzY2FsZS55O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkge1xuICBsZXQgcmVjdDtcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZWN0ID0gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAnZG9jdW1lbnQnKSB7XG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xuICB9IGVsc2UgaWYgKGlzRWxlbWVudChjbGlwcGluZ0FuY2VzdG9yKSkge1xuICAgIHJlY3QgPSBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCk7XG4gICAgcmVjdCA9IHtcbiAgICAgIC4uLmNsaXBwaW5nQW5jZXN0b3IsXG4gICAgICB4OiBjbGlwcGluZ0FuY2VzdG9yLnggLSB2aXN1YWxPZmZzZXRzLngsXG4gICAgICB5OiBjbGlwcGluZ0FuY2VzdG9yLnkgLSB2aXN1YWxPZmZzZXRzLnlcbiAgICB9O1xuICB9XG4gIHJldHVybiByZWN0VG9DbGllbnRSZWN0KHJlY3QpO1xufVxuZnVuY3Rpb24gaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIHN0b3BOb2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICBpZiAocGFyZW50Tm9kZSA9PT0gc3RvcE5vZGUgfHwgIWlzRWxlbWVudChwYXJlbnROb2RlKSB8fCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSkucG9zaXRpb24gPT09ICdmaXhlZCcgfHwgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKHBhcmVudE5vZGUsIHN0b3BOb2RlKTtcbn1cblxuLy8gQSBcImNsaXBwaW5nIGFuY2VzdG9yXCIgaXMgYW4gYG92ZXJmbG93YCBlbGVtZW50IHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXG4vLyBjbGlwcGluZyAob3IgaGlkaW5nKSBjaGlsZCBlbGVtZW50cy4gVGhpcyByZXR1cm5zIGFsbCBjbGlwcGluZyBhbmNlc3RvcnNcbi8vIG9mIHRoZSBnaXZlbiBlbGVtZW50IHVwIHRoZSB0cmVlLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIGNhY2hlKSB7XG4gIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlLmdldChlbGVtZW50KTtcbiAgaWYgKGNhY2hlZFJlc3VsdCkge1xuICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gIH1cbiAgbGV0IHJlc3VsdCA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnQsIFtdLCBmYWxzZSkuZmlsdGVyKGVsID0+IGlzRWxlbWVudChlbCkgJiYgZ2V0Tm9kZU5hbWUoZWwpICE9PSAnYm9keScpO1xuICBsZXQgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICBjb25zdCBlbGVtZW50SXNGaXhlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCc7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSA6IGVsZW1lbnQ7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgd2hpbGUgKGlzRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7XG4gICAgY29uc3QgY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgPSBpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSk7XG4gICAgaWYgKCFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZERyb3BDdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmICFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA6ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJyAmJiAhIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlICYmIFsnYWJzb2x1dGUnLCAnZml4ZWQnXS5pbmNsdWRlcyhjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZS5wb3NpdGlvbikgfHwgaXNPdmVyZmxvd0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgY3VycmVudE5vZGUpO1xuICAgIGlmIChzaG91bGREcm9wQ3VycmVudE5vZGUpIHtcbiAgICAgIC8vIERyb3Agbm9uLWNvbnRhaW5pbmcgYmxvY2tzLlxuICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihhbmNlc3RvciA9PiBhbmNlc3RvciAhPT0gY3VycmVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZWNvcmQgbGFzdCBjb250YWluaW5nIGJsb2NrIGZvciBuZXh0IGl0ZXJhdGlvbi5cbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICBjYWNoZS5zZXQoZWxlbWVudCwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgYW5jZXN0b3JzLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50LFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ0FuY2VzdG9ycycgPyBpc1RvcExheWVyKGVsZW1lbnQpID8gW10gOiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgdGhpcy5fYykgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICBjb25zdCBjbGlwcGluZ0FuY2VzdG9ycyA9IFsuLi5lbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMsIHJvb3RCb3VuZGFyeV07XG4gIGNvbnN0IGZpcnN0Q2xpcHBpbmdBbmNlc3RvciA9IGNsaXBwaW5nQW5jZXN0b3JzWzBdO1xuICBjb25zdCBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ0FuY2VzdG9ycy5yZWR1Y2UoKGFjY1JlY3QsIGNsaXBwaW5nQW5jZXN0b3IpID0+IHtcbiAgICBjb25zdCByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgICBhY2NSZWN0LnRvcCA9IG1heChyZWN0LnRvcCwgYWNjUmVjdC50b3ApO1xuICAgIGFjY1JlY3QucmlnaHQgPSBtaW4ocmVjdC5yaWdodCwgYWNjUmVjdC5yaWdodCk7XG4gICAgYWNjUmVjdC5ib3R0b20gPSBtaW4ocmVjdC5ib3R0b20sIGFjY1JlY3QuYm90dG9tKTtcbiAgICBhY2NSZWN0LmxlZnQgPSBtYXgocmVjdC5sZWZ0LCBhY2NSZWN0LmxlZnQpO1xuICAgIHJldHVybiBhY2NSZWN0O1xuICB9LCBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgZmlyc3RDbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjbGlwcGluZ1JlY3QucmlnaHQgLSBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICBoZWlnaHQ6IGNsaXBwaW5nUmVjdC5ib3R0b20gLSBjbGlwcGluZ1JlY3QudG9wLFxuICAgIHg6IGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIHk6IGNsaXBwaW5nUmVjdC50b3BcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGVsZW1lbnQsIG9mZnNldFBhcmVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIC8vIElmIHRoZSA8Ym9keT4gc2Nyb2xsYmFyIGFwcGVhcnMgb24gdGhlIGxlZnQgKGUuZy4gUlRMIHN5c3RlbXMpLiBVc2VcbiAgICAgIC8vIEZpcmVmb3ggd2l0aCBsYXlvdXQuc2Nyb2xsYmFyLnNpZGUgPSAzIGluIGFib3V0OmNvbmZpZyB0byB0ZXN0IHRoaXMuXG4gICAgICBvZmZzZXRzLnggPSBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGxldCBodG1sWCA9IDA7XG4gIGxldCBodG1sWSA9IDA7XG4gIGlmIChkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgY29uc3QgaHRtbFJlY3QgPSBkb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaHRtbFkgPSBodG1sUmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wO1xuICAgIGh0bWxYID0gaHRtbFJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC1cbiAgICAvLyBSVEwgPGJvZHk+IHNjcm9sbGJhci5cbiAgICBnZXRXaW5kb3dTY3JvbGxCYXJYKGRvY3VtZW50RWxlbWVudCwgaHRtbFJlY3QpO1xuICB9XG4gIGNvbnN0IHggPSByZWN0LmxlZnQgKyBzY3JvbGwuc2Nyb2xsTGVmdCAtIG9mZnNldHMueCAtIGh0bWxYO1xuICBjb25zdCB5ID0gcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55IC0gaHRtbFk7XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNQb3NpdGlvbmVkKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnO1xufVxuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XG4gIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHBvbHlmaWxsKSB7XG4gICAgcmV0dXJuIHBvbHlmaWxsKGVsZW1lbnQpO1xuICB9XG4gIGxldCByYXdPZmZzZXRQYXJlbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDtcblxuICAvLyBGaXJlZm94IHJldHVybnMgdGhlIDxodG1sPiBlbGVtZW50IGFzIHRoZSBvZmZzZXRQYXJlbnQgaWYgaXQncyBub24tc3RhdGljLFxuICAvLyB3aGlsZSBDaHJvbWUgYW5kIFNhZmFyaSByZXR1cm4gdGhlIDxib2R5PiBlbGVtZW50LiBUaGUgPGJvZHk+IGVsZW1lbnQgbXVzdFxuICAvLyBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlIGNvcnJlY3QgY2FsY3VsYXRpb25zIGV2ZW4gaWYgdGhlIDxodG1sPiBlbGVtZW50IGlzXG4gIC8vIG5vbi1zdGF0aWMuXG4gIGlmIChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkgPT09IHJhd09mZnNldFBhcmVudCkge1xuICAgIHJhd09mZnNldFBhcmVudCA9IHJhd09mZnNldFBhcmVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cbiAgcmV0dXJuIHJhd09mZnNldFBhcmVudDtcbn1cblxuLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmIChpc1RvcExheWVyKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICBsZXQgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgICB3aGlsZSAoc3ZnT2Zmc2V0UGFyZW50ICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgaWYgKGlzRWxlbWVudChzdmdPZmZzZXRQYXJlbnQpICYmICFpc1N0YXRpY1Bvc2l0aW9uZWQoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgICByZXR1cm4gc3ZnT2Zmc2V0UGFyZW50O1xuICAgICAgfVxuICAgICAgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShzdmdPZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG4gIGxldCBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKTtcbiAgd2hpbGUgKG9mZnNldFBhcmVudCAmJiBpc1RhYmxlRWxlbWVudChvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQsIHBvbHlmaWxsKTtcbiAgfVxuICBpZiAob2Zmc2V0UGFyZW50ICYmIGlzTGFzdFRyYXZlcnNhYmxlTm9kZShvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpICYmICFpc0NvbnRhaW5pbmdCbG9jayhvZmZzZXRQYXJlbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW47XG59XG5cbmNvbnN0IGdldEVsZW1lbnRSZWN0cyA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGNvbnN0IGdldE9mZnNldFBhcmVudEZuID0gdGhpcy5nZXRPZmZzZXRQYXJlbnQgfHwgZ2V0T2Zmc2V0UGFyZW50O1xuICBjb25zdCBnZXREaW1lbnNpb25zRm4gPSB0aGlzLmdldERpbWVuc2lvbnM7XG4gIGNvbnN0IGZsb2F0aW5nRGltZW5zaW9ucyA9IGF3YWl0IGdldERpbWVuc2lvbnNGbihkYXRhLmZsb2F0aW5nKTtcbiAgcmV0dXJuIHtcbiAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGRhdGEucmVmZXJlbmNlLCBhd2FpdCBnZXRPZmZzZXRQYXJlbnRGbihkYXRhLmZsb2F0aW5nKSwgZGF0YS5zdHJhdGVneSksXG4gICAgZmxvYXRpbmc6IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwLFxuICAgICAgd2lkdGg6IGZsb2F0aW5nRGltZW5zaW9ucy53aWR0aCxcbiAgICAgIGhlaWdodDogZmxvYXRpbmdEaW1lbnNpb25zLmhlaWdodFxuICAgIH1cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzUlRMKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJztcbn1cblxuY29uc3QgcGxhdGZvcm0gPSB7XG4gIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0LFxuICBnZXREb2N1bWVudEVsZW1lbnQsXG4gIGdldENsaXBwaW5nUmVjdCxcbiAgZ2V0T2Zmc2V0UGFyZW50LFxuICBnZXRFbGVtZW50UmVjdHMsXG4gIGdldENsaWVudFJlY3RzLFxuICBnZXREaW1lbnNpb25zLFxuICBnZXRTY2FsZSxcbiAgaXNFbGVtZW50LFxuICBpc1JUTFxufTtcblxuLy8gaHR0cHM6Ly9zYW10aG9yLmF1LzIwMjEvb2JzZXJ2aW5nLWRvbS9cbmZ1bmN0aW9uIG9ic2VydmVNb3ZlKGVsZW1lbnQsIG9uTW92ZSkge1xuICBsZXQgaW8gPSBudWxsO1xuICBsZXQgdGltZW91dElkO1xuICBjb25zdCByb290ID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIHZhciBfaW87XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgKF9pbyA9IGlvKSA9PSBudWxsIHx8IF9pby5kaXNjb25uZWN0KCk7XG4gICAgaW8gPSBudWxsO1xuICB9XG4gIGZ1bmN0aW9uIHJlZnJlc2goc2tpcCwgdGhyZXNob2xkKSB7XG4gICAgaWYgKHNraXAgPT09IHZvaWQgMCkge1xuICAgICAgc2tpcCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhyZXNob2xkID09PSB2b2lkIDApIHtcbiAgICAgIHRocmVzaG9sZCA9IDE7XG4gICAgfVxuICAgIGNsZWFudXAoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXNraXApIHtcbiAgICAgIG9uTW92ZSgpO1xuICAgIH1cbiAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zZXRUb3AgPSBmbG9vcih0b3ApO1xuICAgIGNvbnN0IGluc2V0UmlnaHQgPSBmbG9vcihyb290LmNsaWVudFdpZHRoIC0gKGxlZnQgKyB3aWR0aCkpO1xuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XG4gICAgY29uc3QgaW5zZXRMZWZ0ID0gZmxvb3IobGVmdCk7XG4gICAgY29uc3Qgcm9vdE1hcmdpbiA9IC1pbnNldFRvcCArIFwicHggXCIgKyAtaW5zZXRSaWdodCArIFwicHggXCIgKyAtaW5zZXRCb3R0b20gKyBcInB4IFwiICsgLWluc2V0TGVmdCArIFwicHhcIjtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdE1hcmdpbixcbiAgICAgIHRocmVzaG9sZDogbWF4KDAsIG1pbigxLCB0aHJlc2hvbGQpKSB8fCAxXG4gICAgfTtcbiAgICBsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gaGFuZGxlT2JzZXJ2ZShlbnRyaWVzKSB7XG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgICBpZiAocmF0aW8gIT09IHRocmVzaG9sZCkge1xuICAgICAgICBpZiAoIWlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmF0aW8pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCBvZiB1cGRhdGVzLlxuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cbiAgICAvLyBlcnJvci5cbiAgICB0cnkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAvLyBIYW5kbGUgPGlmcmFtZT5zXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlvLm9ic2VydmUoZWxlbWVudCk7XG4gIH1cbiAgcmVmcmVzaCh0cnVlKTtcbiAgcmV0dXJuIGNsZWFudXA7XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cbiAqIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG1vdW50ZWQgb24gdGhlIERPTSBvclxuICogdmlzaWJsZSBvbiB0aGUgc2NyZWVuLlxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcbiAqIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG9yIGhpZGRlbiBmcm9tIHRoZSBzY3JlZW4uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1VwZGF0ZVxuICovXG5mdW5jdGlvbiBhdXRvVXBkYXRlKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXG4gICAgYW5jZXN0b3JSZXNpemUgPSB0cnVlLFxuICAgIGVsZW1lbnRSZXNpemUgPSB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgYW5pbWF0aW9uRnJhbWUgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGFuY2VzdG9yU2Nyb2xsIHx8IGFuY2VzdG9yUmVzaXplID8gWy4uLihyZWZlcmVuY2VFbCA/IGdldE92ZXJmbG93QW5jZXN0b3JzKHJlZmVyZW5jZUVsKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGNvbnN0IGNsZWFudXBJbyA9IHJlZmVyZW5jZUVsICYmIGxheW91dFNoaWZ0ID8gb2JzZXJ2ZU1vdmUocmVmZXJlbmNlRWwsIHVwZGF0ZSkgOiBudWxsO1xuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcbiAgbGV0IHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcbiAgICAgIGxldCBbZmlyc3RFbnRyeV0gPSBfcmVmO1xuICAgICAgaWYgKGZpcnN0RW50cnkgJiYgZmlyc3RFbnRyeS50YXJnZXQgPT09IHJlZmVyZW5jZUVsICYmIHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3NDBcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xuICAgICAgICByZW9ic2VydmVGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlcjtcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiAhYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xuICAgIH1cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuICBsZXQgZnJhbWVJZDtcbiAgbGV0IHByZXZSZWZSZWN0ID0gYW5pbWF0aW9uRnJhbWUgPyBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKSA6IG51bGw7XG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgIGZyYW1lTG9vcCgpO1xuICB9XG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuICAgIGlmIChwcmV2UmVmUmVjdCAmJiAobmV4dFJlZlJlY3QueCAhPT0gcHJldlJlZlJlY3QueCB8fCBuZXh0UmVmUmVjdC55ICE9PSBwcmV2UmVmUmVjdC55IHx8IG5leHRSZWZSZWN0LndpZHRoICE9PSBwcmV2UmVmUmVjdC53aWR0aCB8fCBuZXh0UmVmUmVjdC5oZWlnaHQgIT09IHByZXZSZWZSZWN0LmhlaWdodCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgXHUyMDE0XG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiIsICJpbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbnZhciBpbmRleCA9ICB1c2VMYXlvdXRFZmZlY3QgO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiIsICJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyJztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCB7IGpzeCwga2V5ZnJhbWVzLCBjc3MgYXMgY3NzJDIgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheSc7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJztcbmltcG9ydCBfdHlwZW9mIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZic7XG5pbXBvcnQgX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90YWdnZWRUZW1wbGF0ZUxpdGVyYWwnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuXG52YXIgX2V4Y2x1ZGVkJDQgPSBbXCJjbGFzc05hbWVcIiwgXCJjbGVhclZhbHVlXCIsIFwiY3hcIiwgXCJnZXRTdHlsZXNcIiwgXCJnZXRDbGFzc05hbWVzXCIsIFwiZ2V0VmFsdWVcIiwgXCJoYXNWYWx1ZVwiLCBcImlzTXVsdGlcIiwgXCJpc1J0bFwiLCBcIm9wdGlvbnNcIiwgXCJzZWxlY3RPcHRpb25cIiwgXCJzZWxlY3RQcm9wc1wiLCBcInNldFZhbHVlXCIsIFwidGhlbWVcIl07XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5PIE9QXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIG5vb3AgPSBmdW5jdGlvbiBub29wKCkge307XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xhc3MgTmFtZSBQcmVmaXhlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjb21wb25lbnQgc3RhdGUgZm9yIHN0eWxpbmcgd2l0aCBjbGFzcyBuYW1lcy5cblxuIEV4cGVjdHMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBPUiBhIHN0cmluZy9vYmplY3QgcGFpcjpcbiAtIGNsYXNzTmFtZShbJ2NvbXAnLCAnY29tcC1hcmcnLCAnY29tcC1hcmctMiddKVxuICAgQHJldHVybnMgJ3JlYWN0LXNlbGVjdF9fY29tcCByZWFjdC1zZWxlY3RfX2NvbXAtYXJnIHJlYWN0LXNlbGVjdF9fY29tcC1hcmctMidcbiAtIGNsYXNzTmFtZSgnY29tcCcsIHsgc29tZTogdHJ1ZSwgc3RhdGU6IGZhbHNlIH0pXG4gICBAcmV0dXJucyAncmVhY3Qtc2VsZWN0X19jb21wIHJlYWN0LXNlbGVjdF9fY29tcC0tc29tZSdcbiovXG5mdW5jdGlvbiBhcHBseVByZWZpeFRvTmFtZShwcmVmaXgsIG5hbWUpIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgcmV0dXJuIHByZWZpeDtcbiAgfSBlbHNlIGlmIChuYW1lWzBdID09PSAnLScpIHtcbiAgICByZXR1cm4gcHJlZml4ICsgbmFtZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcHJlZml4ICsgJ19fJyArIG5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNsYXNzTmFtZXMocHJlZml4LCBzdGF0ZSkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgY2xhc3NOYW1lTGlzdCA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgY2xhc3NOYW1lTGlzdFtfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgdmFyIGFyciA9IFtdLmNvbmNhdChjbGFzc05hbWVMaXN0KTtcbiAgaWYgKHN0YXRlICYmIHByZWZpeCkge1xuICAgIGZvciAodmFyIGtleSBpbiBzdGF0ZSkge1xuICAgICAgaWYgKHN0YXRlLmhhc093blByb3BlcnR5KGtleSkgJiYgc3RhdGVba2V5XSkge1xuICAgICAgICBhcnIucHVzaChcIlwiLmNvbmNhdChhcHBseVByZWZpeFRvTmFtZShwcmVmaXgsIGtleSkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFyci5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfSkubWFwKGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIFN0cmluZyhpKS50cmltKCk7XG4gIH0pLmpvaW4oJyAnKTtcbn1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xlYW4gVmFsdWVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY2xlYW5WYWx1ZSA9IGZ1bmN0aW9uIGNsZWFuVmFsdWUodmFsdWUpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWUuZmlsdGVyKEJvb2xlYW4pO1xuICBpZiAoX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSByZXR1cm4gW3ZhbHVlXTtcbiAgcmV0dXJuIFtdO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDbGVhbiBDb21tb24gUHJvcHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY2xlYW5Db21tb25Qcm9wcyA9IGZ1bmN0aW9uIGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpIHtcbiAgLy9jbGFzc05hbWVcbiAgcHJvcHMuY2xhc3NOYW1lO1xuICAgIHByb3BzLmNsZWFyVmFsdWU7XG4gICAgcHJvcHMuY3g7XG4gICAgcHJvcHMuZ2V0U3R5bGVzO1xuICAgIHByb3BzLmdldENsYXNzTmFtZXM7XG4gICAgcHJvcHMuZ2V0VmFsdWU7XG4gICAgcHJvcHMuaGFzVmFsdWU7XG4gICAgcHJvcHMuaXNNdWx0aTtcbiAgICBwcm9wcy5pc1J0bDtcbiAgICBwcm9wcy5vcHRpb25zO1xuICAgIHByb3BzLnNlbGVjdE9wdGlvbjtcbiAgICBwcm9wcy5zZWxlY3RQcm9wcztcbiAgICBwcm9wcy5zZXRWYWx1ZTtcbiAgICBwcm9wcy50aGVtZTtcbiAgICB2YXIgaW5uZXJQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkJDQpO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7fSwgaW5uZXJQcm9wcyk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdldCBTdHlsZSBQcm9wc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBnZXRTdHlsZVByb3BzID0gZnVuY3Rpb24gZ2V0U3R5bGVQcm9wcyhwcm9wcywgbmFtZSwgY2xhc3NOYW1lc1N0YXRlKSB7XG4gIHZhciBjeCA9IHByb3BzLmN4LFxuICAgIGdldFN0eWxlcyA9IHByb3BzLmdldFN0eWxlcyxcbiAgICBnZXRDbGFzc05hbWVzID0gcHJvcHMuZ2V0Q2xhc3NOYW1lcyxcbiAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gIHJldHVybiB7XG4gICAgY3NzOiBnZXRTdHlsZXMobmFtZSwgcHJvcHMpLFxuICAgIGNsYXNzTmFtZTogY3goY2xhc3NOYW1lc1N0YXRlICE9PSBudWxsICYmIGNsYXNzTmFtZXNTdGF0ZSAhPT0gdm9pZCAwID8gY2xhc3NOYW1lc1N0YXRlIDoge30sIGdldENsYXNzTmFtZXMobmFtZSwgcHJvcHMpLCBjbGFzc05hbWUpXG4gIH07XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhhbmRsZSBJbnB1dCBDaGFuZ2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBoYW5kbGVJbnB1dENoYW5nZShpbnB1dFZhbHVlLCBhY3Rpb25NZXRhLCBvbklucHV0Q2hhbmdlKSB7XG4gIGlmIChvbklucHV0Q2hhbmdlKSB7XG4gICAgdmFyIF9uZXdWYWx1ZSA9IG9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSk7XG4gICAgaWYgKHR5cGVvZiBfbmV3VmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gX25ld1ZhbHVlO1xuICB9XG4gIHJldHVybiBpbnB1dFZhbHVlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNjcm9sbCBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaXNEb2N1bWVudEVsZW1lbnQoZWwpIHtcbiAgcmV0dXJuIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIGRvY3VtZW50LmJvZHksIHdpbmRvd10uaW5kZXhPZihlbCkgPiAtMTtcbn1cblxuLy8gTm9ybWFsaXplZCBTY3JvbGwgVG9wXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gbm9ybWFsaXplZEhlaWdodChlbCkge1xuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgfVxuICByZXR1cm4gZWwuY2xpZW50SGVpZ2h0O1xufVxuXG4vLyBOb3JtYWxpemVkIHNjcm9sbFRvICYgc2Nyb2xsVG9wXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsVG9wKGVsKSB7XG4gIGlmIChpc0RvY3VtZW50RWxlbWVudChlbCkpIHtcbiAgICByZXR1cm4gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICB9XG4gIHJldHVybiBlbC5zY3JvbGxUb3A7XG59XG5mdW5jdGlvbiBzY3JvbGxUbyhlbCwgdG9wKSB7XG4gIC8vIHdpdGggYSBzY3JvbGwgZGlzdGFuY2UsIHdlIHBlcmZvcm0gc2Nyb2xsIG9uIHRoZSBlbGVtZW50XG4gIGlmIChpc0RvY3VtZW50RWxlbWVudChlbCkpIHtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgdG9wKTtcbiAgICByZXR1cm47XG4gIH1cbiAgZWwuc2Nyb2xsVG9wID0gdG9wO1xufVxuXG4vLyBHZXQgU2Nyb2xsIFBhcmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIHZhciBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHZhciBleGNsdWRlU3RhdGljUGFyZW50ID0gc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZSc7XG4gIHZhciBvdmVyZmxvd1J4ID0gLyhhdXRvfHNjcm9sbCkvO1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIGZvciAodmFyIHBhcmVudCA9IGVsZW1lbnQ7IHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50Oykge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpO1xuICAgIGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1J4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xufVxuXG4vLyBBbmltYXRlZCBTY3JvbGwgVG9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAgQHBhcmFtIHQ6IHRpbWUgKGVsYXBzZWQpXG4gIEBwYXJhbSBiOiBpbml0aWFsIHZhbHVlXG4gIEBwYXJhbSBjOiBhbW91bnQgb2YgY2hhbmdlXG4gIEBwYXJhbSBkOiBkdXJhdGlvblxuKi9cbmZ1bmN0aW9uIGVhc2VPdXRDdWJpYyh0LCBiLCBjLCBkKSB7XG4gIHJldHVybiBjICogKCh0ID0gdCAvIGQgLSAxKSAqIHQgKiB0ICsgMSkgKyBiO1xufVxuZnVuY3Rpb24gYW5pbWF0ZWRTY3JvbGxUbyhlbGVtZW50LCB0bykge1xuICB2YXIgZHVyYXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDIwMDtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBub29wO1xuICB2YXIgc3RhcnQgPSBnZXRTY3JvbGxUb3AoZWxlbWVudCk7XG4gIHZhciBjaGFuZ2UgPSB0byAtIHN0YXJ0O1xuICB2YXIgaW5jcmVtZW50ID0gMTA7XG4gIHZhciBjdXJyZW50VGltZSA9IDA7XG4gIGZ1bmN0aW9uIGFuaW1hdGVTY3JvbGwoKSB7XG4gICAgY3VycmVudFRpbWUgKz0gaW5jcmVtZW50O1xuICAgIHZhciB2YWwgPSBlYXNlT3V0Q3ViaWMoY3VycmVudFRpbWUsIHN0YXJ0LCBjaGFuZ2UsIGR1cmF0aW9uKTtcbiAgICBzY3JvbGxUbyhlbGVtZW50LCB2YWwpO1xuICAgIGlmIChjdXJyZW50VGltZSA8IGR1cmF0aW9uKSB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGVTY3JvbGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgYW5pbWF0ZVNjcm9sbCgpO1xufVxuXG4vLyBTY3JvbGwgSW50byBWaWV3XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gc2Nyb2xsSW50b1ZpZXcobWVudUVsLCBmb2N1c2VkRWwpIHtcbiAgdmFyIG1lbnVSZWN0ID0gbWVudUVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgZm9jdXNlZFJlY3QgPSBmb2N1c2VkRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBvdmVyU2Nyb2xsID0gZm9jdXNlZEVsLm9mZnNldEhlaWdodCAvIDM7XG4gIGlmIChmb2N1c2VkUmVjdC5ib3R0b20gKyBvdmVyU2Nyb2xsID4gbWVudVJlY3QuYm90dG9tKSB7XG4gICAgc2Nyb2xsVG8obWVudUVsLCBNYXRoLm1pbihmb2N1c2VkRWwub2Zmc2V0VG9wICsgZm9jdXNlZEVsLmNsaWVudEhlaWdodCAtIG1lbnVFbC5vZmZzZXRIZWlnaHQgKyBvdmVyU2Nyb2xsLCBtZW51RWwuc2Nyb2xsSGVpZ2h0KSk7XG4gIH0gZWxzZSBpZiAoZm9jdXNlZFJlY3QudG9wIC0gb3ZlclNjcm9sbCA8IG1lbnVSZWN0LnRvcCkge1xuICAgIHNjcm9sbFRvKG1lbnVFbCwgTWF0aC5tYXgoZm9jdXNlZEVsLm9mZnNldFRvcCAtIG92ZXJTY3JvbGwsIDApKTtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdldCBib3VuZGluZyBjbGllbnQgb2JqZWN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gY2Fubm90IGdldCBrZXlzIHVzaW5nIGFycmF5IG5vdGF0aW9uIHdpdGggRE9NUmVjdFxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRPYmooZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiByZWN0LmJvdHRvbSxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IHJlY3QubGVmdCxcbiAgICByaWdodDogcmVjdC5yaWdodCxcbiAgICB0b3A6IHJlY3QudG9wLFxuICAgIHdpZHRoOiByZWN0LndpZHRoXG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVG91Y2ggQ2FwYWJpbGl0eSBEZXRlY3RvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzVG91Y2hDYXBhYmxlKCkge1xuICB0cnkge1xuICAgIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdUb3VjaEV2ZW50Jyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2JpbGUgRGV2aWNlIERldGVjdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaXNNb2JpbGVEZXZpY2UoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhc3NpdmUgRXZlbnQgRGV0ZWN0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmFmZ3JhcGgvZGV0ZWN0LWl0L2Jsb2IvbWFpbi9zcmMvaW5kZXgudHMjTDE5LUwzNlxudmFyIHBhc3NpdmVPcHRpb25BY2Nlc3NlZCA9IGZhbHNlO1xudmFyIG9wdGlvbnMgPSB7XG4gIGdldCBwYXNzaXZlKCkge1xuICAgIHJldHVybiBwYXNzaXZlT3B0aW9uQWNjZXNzZWQgPSB0cnVlO1xuICB9XG59O1xuLy8gY2hlY2sgZm9yIFNTUlxudmFyIHcgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHt9O1xuaWYgKHcuYWRkRXZlbnRMaXN0ZW5lciAmJiB3LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgdy5hZGRFdmVudExpc3RlbmVyKCdwJywgbm9vcCwgb3B0aW9ucyk7XG4gIHcucmVtb3ZlRXZlbnRMaXN0ZW5lcigncCcsIG5vb3AsIGZhbHNlKTtcbn1cbnZhciBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPSBwYXNzaXZlT3B0aW9uQWNjZXNzZWQ7XG5mdW5jdGlvbiBub3ROdWxsaXNoKGl0ZW0pIHtcbiAgcmV0dXJuIGl0ZW0gIT0gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFyZyk7XG59XG5mdW5jdGlvbiB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbXVsdGlWYWx1ZSwgc2luZ2xlVmFsdWUpIHtcbiAgcmV0dXJuIGlzTXVsdGkgPyBtdWx0aVZhbHVlIDogc2luZ2xlVmFsdWU7XG59XG5mdW5jdGlvbiBzaW5nbGVWYWx1ZUFzVmFsdWUoc2luZ2xlVmFsdWUpIHtcbiAgcmV0dXJuIHNpbmdsZVZhbHVlO1xufVxuZnVuY3Rpb24gbXVsdGlWYWx1ZUFzVmFsdWUobXVsdGlWYWx1ZSkge1xuICByZXR1cm4gbXVsdGlWYWx1ZTtcbn1cbnZhciByZW1vdmVQcm9wcyA9IGZ1bmN0aW9uIHJlbW92ZVByb3BzKHByb3BzT2JqKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgcHJvcGVydGllcyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgcHJvcGVydGllc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuICB2YXIgcHJvcHNNYXAgPSBPYmplY3QuZW50cmllcyhwcm9wc09iaikuZmlsdGVyKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIF9yZWYyID0gX3NsaWNlZFRvQXJyYXkoX3JlZiwgMSksXG4gICAgICBrZXkgPSBfcmVmMlswXTtcbiAgICByZXR1cm4gIXByb3BlcnRpZXMuaW5jbHVkZXMoa2V5KTtcbiAgfSk7XG4gIHJldHVybiBwcm9wc01hcC5yZWR1Y2UoZnVuY3Rpb24gKG5ld1Byb3BzLCBfcmVmMykge1xuICAgIHZhciBfcmVmNCA9IF9zbGljZWRUb0FycmF5KF9yZWYzLCAyKSxcbiAgICAgIGtleSA9IF9yZWY0WzBdLFxuICAgICAgdmFsID0gX3JlZjRbMV07XG4gICAgbmV3UHJvcHNba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gbmV3UHJvcHM7XG4gIH0sIHt9KTtcbn07XG5cbnZhciBfZXhjbHVkZWQkMyA9IFtcImNoaWxkcmVuXCIsIFwiaW5uZXJQcm9wc1wiXSxcbiAgX2V4Y2x1ZGVkMiQxID0gW1wiY2hpbGRyZW5cIiwgXCJpbm5lclByb3BzXCJdO1xuZnVuY3Rpb24gZ2V0TWVudVBsYWNlbWVudChfcmVmKSB7XG4gIHZhciBwcmVmZXJyZWRNYXhIZWlnaHQgPSBfcmVmLm1heEhlaWdodCxcbiAgICBtZW51RWwgPSBfcmVmLm1lbnVFbCxcbiAgICBtaW5IZWlnaHQgPSBfcmVmLm1pbkhlaWdodCxcbiAgICBwcmVmZXJyZWRQbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudCxcbiAgICBzaG91bGRTY3JvbGwgPSBfcmVmLnNob3VsZFNjcm9sbCxcbiAgICBpc0ZpeGVkUG9zaXRpb24gPSBfcmVmLmlzRml4ZWRQb3NpdGlvbixcbiAgICBjb250cm9sSGVpZ2h0ID0gX3JlZi5jb250cm9sSGVpZ2h0O1xuICB2YXIgc2Nyb2xsUGFyZW50ID0gZ2V0U2Nyb2xsUGFyZW50KG1lbnVFbCk7XG4gIHZhciBkZWZhdWx0U3RhdGUgPSB7XG4gICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICB9O1xuXG4gIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nLCByZXR1cm4gZGVmYXVsdCBzdGF0ZVxuICBpZiAoIW1lbnVFbCB8fCAhbWVudUVsLm9mZnNldFBhcmVudCkgcmV0dXJuIGRlZmF1bHRTdGF0ZTtcblxuICAvLyB3ZSBjYW4ndCB0cnVzdCBgc2Nyb2xsUGFyZW50LnNjcm9sbEhlaWdodGAgLS0+IGl0IG1heSBpbmNyZWFzZSB3aGVuXG4gIC8vIHRoZSBtZW51IGlzIHJlbmRlcmVkXG4gIHZhciBfc2Nyb2xsUGFyZW50JGdldEJvdW4gPSBzY3JvbGxQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgc2Nyb2xsSGVpZ2h0ID0gX3Njcm9sbFBhcmVudCRnZXRCb3VuLmhlaWdodDtcbiAgdmFyIF9tZW51RWwkZ2V0Qm91bmRpbmdDbCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICBtZW51Qm90dG9tID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLmJvdHRvbSxcbiAgICBtZW51SGVpZ2h0ID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLmhlaWdodCxcbiAgICBtZW51VG9wID0gX21lbnVFbCRnZXRCb3VuZGluZ0NsLnRvcDtcbiAgdmFyIF9tZW51RWwkb2Zmc2V0UGFyZW50JCA9IG1lbnVFbC5vZmZzZXRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgY29udGFpbmVyVG9wID0gX21lbnVFbCRvZmZzZXRQYXJlbnQkLnRvcDtcbiAgdmFyIHZpZXdIZWlnaHQgPSBpc0ZpeGVkUG9zaXRpb24gPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiBub3JtYWxpemVkSGVpZ2h0KHNjcm9sbFBhcmVudCk7XG4gIHZhciBzY3JvbGxUb3AgPSBnZXRTY3JvbGxUb3Aoc2Nyb2xsUGFyZW50KTtcbiAgdmFyIG1hcmdpbkJvdHRvbSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUobWVudUVsKS5tYXJnaW5Cb3R0b20sIDEwKTtcbiAgdmFyIG1hcmdpblRvcCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUobWVudUVsKS5tYXJnaW5Ub3AsIDEwKTtcbiAgdmFyIHZpZXdTcGFjZUFib3ZlID0gY29udGFpbmVyVG9wIC0gbWFyZ2luVG9wO1xuICB2YXIgdmlld1NwYWNlQmVsb3cgPSB2aWV3SGVpZ2h0IC0gbWVudVRvcDtcbiAgdmFyIHNjcm9sbFNwYWNlQWJvdmUgPSB2aWV3U3BhY2VBYm92ZSArIHNjcm9sbFRvcDtcbiAgdmFyIHNjcm9sbFNwYWNlQmVsb3cgPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBtZW51VG9wO1xuICB2YXIgc2Nyb2xsRG93biA9IG1lbnVCb3R0b20gLSB2aWV3SGVpZ2h0ICsgc2Nyb2xsVG9wICsgbWFyZ2luQm90dG9tO1xuICB2YXIgc2Nyb2xsVXAgPSBzY3JvbGxUb3AgKyBtZW51VG9wIC0gbWFyZ2luVG9wO1xuICB2YXIgc2Nyb2xsRHVyYXRpb24gPSAxNjA7XG4gIHN3aXRjaCAocHJlZmVycmVkUGxhY2VtZW50KSB7XG4gICAgY2FzZSAnYXV0byc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIC8vIDE6IHRoZSBtZW51IHdpbGwgZml0LCBkbyBub3RoaW5nXG4gICAgICBpZiAodmlld1NwYWNlQmVsb3cgPj0gbWVudUhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gMjogdGhlIG1lbnUgd2lsbCBmaXQsIGlmIHNjcm9sbGVkXG4gICAgICBpZiAoc2Nyb2xsU3BhY2VCZWxvdyA+PSBtZW51SGVpZ2h0ICYmICFpc0ZpeGVkUG9zaXRpb24pIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxEb3duLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDM6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBjb25zdHJhaW5lZFxuICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VCZWxvdyA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUJlbG93ID49IG1pbkhlaWdodCkge1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbERvd24sIHNjcm9sbER1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlIHdhbnQgdG8gcHJvdmlkZSBhcyBtdWNoIG9mIHRoZSBtZW51IGFzIHBvc3NpYmxlIHRvIHRoZSB1c2VyLFxuICAgICAgICAvLyBzbyBnaXZlIHRoZW0gd2hhdGV2ZXIgaXMgYXZhaWxhYmxlIGJlbG93IHJhdGhlciB0aGFuIHRoZSBtaW5IZWlnaHQuXG4gICAgICAgIHZhciBjb25zdHJhaW5lZEhlaWdodCA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUJlbG93IC0gbWFyZ2luQm90dG9tIDogc2Nyb2xsU3BhY2VCZWxvdyAtIG1hcmdpbkJvdHRvbTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogY29uc3RyYWluZWRIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gNC4gRm9ya2VkIGJldmlvdXIgd2hlbiB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgYmVsb3dcblxuICAgICAgLy8gQVVUTzogZmxpcCB0aGUgbWVudSwgcmVuZGVyIGFib3ZlXG4gICAgICBpZiAocHJlZmVycmVkUGxhY2VtZW50ID09PSAnYXV0bycgfHwgaXNGaXhlZFBvc2l0aW9uKSB7XG4gICAgICAgIC8vIG1heSBuZWVkIHRvIGJlIGNvbnN0cmFpbmVkIGFmdGVyIGZsaXBwaW5nXG4gICAgICAgIHZhciBfY29uc3RyYWluZWRIZWlnaHQgPSBwcmVmZXJyZWRNYXhIZWlnaHQ7XG4gICAgICAgIHZhciBzcGFjZUFib3ZlID0gaXNGaXhlZFBvc2l0aW9uID8gdmlld1NwYWNlQWJvdmUgOiBzY3JvbGxTcGFjZUFib3ZlO1xuICAgICAgICBpZiAoc3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgICBfY29uc3RyYWluZWRIZWlnaHQgPSBNYXRoLm1pbihzcGFjZUFib3ZlIC0gbWFyZ2luQm90dG9tIC0gY29udHJvbEhlaWdodCwgcHJlZmVycmVkTWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBfY29uc3RyYWluZWRIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gQk9UVE9NOiBhbGxvdyBicm93c2VyIHRvIGluY3JlYXNlIHNjcm9sbGFibGUgYXJlYSBhbmQgaW1tZWRpYXRlbHkgc2V0IHNjcm9sbFxuICAgICAgaWYgKHByZWZlcnJlZFBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIHNjcm9sbFRvKHNjcm9sbFBhcmVudCwgc2Nyb2xsRG93bik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgLy8gMTogdGhlIG1lbnUgd2lsbCBmaXQsIGRvIG5vdGhpbmdcbiAgICAgIGlmICh2aWV3U3BhY2VBYm92ZSA+PSBtZW51SGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAyOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgc2Nyb2xsZWRcbiAgICAgIGlmIChzY3JvbGxTcGFjZUFib3ZlID49IG1lbnVIZWlnaHQgJiYgIWlzRml4ZWRQb3NpdGlvbikge1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbFVwLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDM6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBjb25zdHJhaW5lZFxuICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUFib3ZlID49IG1pbkhlaWdodCkge1xuICAgICAgICB2YXIgX2NvbnN0cmFpbmVkSGVpZ2h0MiA9IHByZWZlcnJlZE1heEhlaWdodDtcblxuICAgICAgICAvLyB3ZSB3YW50IHRvIHByb3ZpZGUgYXMgbXVjaCBvZiB0aGUgbWVudSBhcyBwb3NzaWJsZSB0byB0aGUgdXNlcixcbiAgICAgICAgLy8gc28gZ2l2ZSB0aGVtIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBiZWxvdyByYXRoZXIgdGhhbiB0aGUgbWluSGVpZ2h0LlxuICAgICAgICBpZiAoIWlzRml4ZWRQb3NpdGlvbiAmJiBzY3JvbGxTcGFjZUFib3ZlID49IG1pbkhlaWdodCB8fCBpc0ZpeGVkUG9zaXRpb24gJiYgdmlld1NwYWNlQWJvdmUgPj0gbWluSGVpZ2h0KSB7XG4gICAgICAgICAgX2NvbnN0cmFpbmVkSGVpZ2h0MiA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUFib3ZlIC0gbWFyZ2luVG9wIDogc2Nyb2xsU3BhY2VBYm92ZSAtIG1hcmdpblRvcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgYW5pbWF0ZWRTY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbFVwLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogX2NvbnN0cmFpbmVkSGVpZ2h0MlxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyA0LiBub3QgZW5vdWdoIHNwYWNlLCB0aGUgYnJvd3NlciBXSUxMIE5PVCBpbmNyZWFzZSBzY3JvbGxhYmxlIGFyZWEgd2hlblxuICAgICAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnQgcmVuZGVyZWQgYWJvdmUgdGhlIHZpZXdwb3J0IChvbmx5IGJlbG93KS5cbiAgICAgIC8vIEZsaXAgdGhlIG1lbnUsIHJlbmRlciBiZWxvd1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcGxhY2VtZW50IHByb3ZpZGVkIFxcXCJcIi5jb25jYXQocHJlZmVycmVkUGxhY2VtZW50LCBcIlxcXCIuXCIpKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFN0YXRlO1xufVxuXG4vLyBNZW51IENvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGFsaWduVG9Db250cm9sKHBsYWNlbWVudCkge1xuICB2YXIgcGxhY2VtZW50VG9DU1NQcm9wID0ge1xuICAgIGJvdHRvbTogJ3RvcCcsXG4gICAgdG9wOiAnYm90dG9tJ1xuICB9O1xuICByZXR1cm4gcGxhY2VtZW50ID8gcGxhY2VtZW50VG9DU1NQcm9wW3BsYWNlbWVudF0gOiAnYm90dG9tJztcbn1cbnZhciBjb2VyY2VQbGFjZW1lbnQgPSBmdW5jdGlvbiBjb2VyY2VQbGFjZW1lbnQocCkge1xuICByZXR1cm4gcCA9PT0gJ2F1dG8nID8gJ2JvdHRvbScgOiBwO1xufTtcbnZhciBtZW51Q1NTID0gZnVuY3Rpb24gbWVudUNTUyhfcmVmMiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9vYmplY3RTcHJlYWQyO1xuICB2YXIgcGxhY2VtZW50ID0gX3JlZjIucGxhY2VtZW50LFxuICAgIF9yZWYyJHRoZW1lID0gX3JlZjIudGhlbWUsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZjIkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIHNwYWNpbmcgPSBfcmVmMiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYyJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoKF9vYmplY3RTcHJlYWQyID0ge1xuICAgIGxhYmVsOiAnbWVudSdcbiAgfSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBhbGlnblRvQ29udHJvbChwbGFjZW1lbnQpLCAnMTAwJScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwicG9zaXRpb25cIiwgJ2Fic29sdXRlJyksIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgXCJ3aWR0aFwiLCAnMTAwJScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwiekluZGV4XCIsIDEpLCBfb2JqZWN0U3ByZWFkMiksIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMubmV1dHJhbDAsXG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMsXG4gICAgYm94U2hhZG93OiAnMCAwIDAgMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjEpLCAwIDRweCAxMXB4IGhzbGEoMCwgMCUsIDAlLCAwLjEpJyxcbiAgICBtYXJnaW5Cb3R0b206IHNwYWNpbmcubWVudUd1dHRlcixcbiAgICBtYXJnaW5Ub3A6IHNwYWNpbmcubWVudUd1dHRlclxuICB9KTtcbn07XG52YXIgUG9ydGFsUGxhY2VtZW50Q29udGV4dCA9IC8qI19fUFVSRV9fKi9jcmVhdGVDb250ZXh0KG51bGwpO1xuXG4vLyBOT1RFOiBpbnRlcm5hbCBvbmx5XG52YXIgTWVudVBsYWNlciA9IGZ1bmN0aW9uIE1lbnVQbGFjZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgbWluTWVudUhlaWdodCA9IHByb3BzLm1pbk1lbnVIZWlnaHQsXG4gICAgbWF4TWVudUhlaWdodCA9IHByb3BzLm1heE1lbnVIZWlnaHQsXG4gICAgbWVudVBsYWNlbWVudCA9IHByb3BzLm1lbnVQbGFjZW1lbnQsXG4gICAgbWVudVBvc2l0aW9uID0gcHJvcHMubWVudVBvc2l0aW9uLFxuICAgIG1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyA9IHByb3BzLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICB0aGVtZSA9IHByb3BzLnRoZW1lO1xuICB2YXIgX3JlZjMgPSB1c2VDb250ZXh0KFBvcnRhbFBsYWNlbWVudENvbnRleHQpIHx8IHt9LFxuICAgIHNldFBvcnRhbFBsYWNlbWVudCA9IF9yZWYzLnNldFBvcnRhbFBsYWNlbWVudDtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKG1heE1lbnVIZWlnaHQpLFxuICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgIG1heEhlaWdodCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgc2V0TWF4SGVpZ2h0ID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShudWxsKSxcbiAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgcGxhY2VtZW50ID0gX3VzZVN0YXRlNFswXSxcbiAgICBzZXRQbGFjZW1lbnQgPSBfdXNlU3RhdGU0WzFdO1xuICB2YXIgY29udHJvbEhlaWdodCA9IHRoZW1lLnNwYWNpbmcuY29udHJvbEhlaWdodDtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbWVudUVsID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFtZW51RWwpIHJldHVybjtcblxuICAgIC8vIERPIE5PVCBzY3JvbGwgaWYgcG9zaXRpb24gaXMgZml4ZWRcbiAgICB2YXIgaXNGaXhlZFBvc2l0aW9uID0gbWVudVBvc2l0aW9uID09PSAnZml4ZWQnO1xuICAgIHZhciBzaG91bGRTY3JvbGwgPSBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgJiYgIWlzRml4ZWRQb3NpdGlvbjtcbiAgICB2YXIgc3RhdGUgPSBnZXRNZW51UGxhY2VtZW50KHtcbiAgICAgIG1heEhlaWdodDogbWF4TWVudUhlaWdodCxcbiAgICAgIG1lbnVFbDogbWVudUVsLFxuICAgICAgbWluSGVpZ2h0OiBtaW5NZW51SGVpZ2h0LFxuICAgICAgcGxhY2VtZW50OiBtZW51UGxhY2VtZW50LFxuICAgICAgc2hvdWxkU2Nyb2xsOiBzaG91bGRTY3JvbGwsXG4gICAgICBpc0ZpeGVkUG9zaXRpb246IGlzRml4ZWRQb3NpdGlvbixcbiAgICAgIGNvbnRyb2xIZWlnaHQ6IGNvbnRyb2xIZWlnaHRcbiAgICB9KTtcbiAgICBzZXRNYXhIZWlnaHQoc3RhdGUubWF4SGVpZ2h0KTtcbiAgICBzZXRQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KTtcbiAgICBzZXRQb3J0YWxQbGFjZW1lbnQgPT09IG51bGwgfHwgc2V0UG9ydGFsUGxhY2VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXRQb3J0YWxQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KTtcbiAgfSwgW21heE1lbnVIZWlnaHQsIG1lbnVQbGFjZW1lbnQsIG1lbnVQb3NpdGlvbiwgbWVudVNob3VsZFNjcm9sbEludG9WaWV3LCBtaW5NZW51SGVpZ2h0LCBzZXRQb3J0YWxQbGFjZW1lbnQsIGNvbnRyb2xIZWlnaHRdKTtcbiAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICByZWY6IHJlZixcbiAgICBwbGFjZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBwcm9wcyksIHt9LCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCB8fCBjb2VyY2VQbGFjZW1lbnQobWVudVBsYWNlbWVudCksXG4gICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodFxuICAgIH0pXG4gIH0pO1xufTtcbnZhciBNZW51ID0gZnVuY3Rpb24gTWVudShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbWVudScsIHtcbiAgICBtZW51OiB0cnVlXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBNZW51JDEgPSBNZW51O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lbnUgTGlzdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBtZW51TGlzdENTUyA9IGZ1bmN0aW9uIG1lbnVMaXN0Q1NTKF9yZWY0LCB1bnN0eWxlZCkge1xuICB2YXIgbWF4SGVpZ2h0ID0gX3JlZjQubWF4SGVpZ2h0LFxuICAgIGJhc2VVbml0ID0gX3JlZjQudGhlbWUuc3BhY2luZy5iYXNlVW5pdDtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIG1heEhlaWdodDogbWF4SGVpZ2h0LFxuICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIC8vIHJlcXVpcmVkIGZvciBvZmZzZXRbSGVpZ2h0LCBUb3BdID4ga2V5Ym9hcmQgc2Nyb2xsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nQm90dG9tOiBiYXNlVW5pdCxcbiAgICBwYWRkaW5nVG9wOiBiYXNlVW5pdFxuICB9KTtcbn07XG52YXIgTWVudUxpc3QgPSBmdW5jdGlvbiBNZW51TGlzdChwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbWVudUxpc3QnLCB7XG4gICAgJ21lbnUtbGlzdCc6IHRydWUsXG4gICAgJ21lbnUtbGlzdC0taXMtbXVsdGknOiBpc011bHRpXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IE5vdGljZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbm90aWNlQ1NTID0gZnVuY3Rpb24gbm90aWNlQ1NTKF9yZWY1LCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWY1JHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjUkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgdGV4dEFsaWduOiAnY2VudGVyJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgIHBhZGRpbmc6IFwiXCIuY29uY2F0KGJhc2VVbml0ICogMiwgXCJweCBcIikuY29uY2F0KGJhc2VVbml0ICogMywgXCJweFwiKVxuICB9KTtcbn07XG52YXIgbm9PcHRpb25zTWVzc2FnZUNTUyA9IG5vdGljZUNTUztcbnZhciBsb2FkaW5nTWVzc2FnZUNTUyA9IG5vdGljZUNTUztcbnZhciBOb09wdGlvbnNNZXNzYWdlID0gZnVuY3Rpb24gTm9PcHRpb25zTWVzc2FnZShfcmVmNikge1xuICB2YXIgX3JlZjYkY2hpbGRyZW4gPSBfcmVmNi5jaGlsZHJlbixcbiAgICBjaGlsZHJlbiA9IF9yZWY2JGNoaWxkcmVuID09PSB2b2lkIDAgPyAnTm8gb3B0aW9ucycgOiBfcmVmNiRjaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjYuaW5uZXJQcm9wcyxcbiAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjYsIF9leGNsdWRlZCQzKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJlc3RQcm9wcyksIHt9LCB7XG4gICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHNcbiAgfSksICdub09wdGlvbnNNZXNzYWdlJywge1xuICAgICdtZW51LW5vdGljZSc6IHRydWUsXG4gICAgJ21lbnUtbm90aWNlLS1uby1vcHRpb25zJzogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgTG9hZGluZ01lc3NhZ2UgPSBmdW5jdGlvbiBMb2FkaW5nTWVzc2FnZShfcmVmNykge1xuICB2YXIgX3JlZjckY2hpbGRyZW4gPSBfcmVmNy5jaGlsZHJlbixcbiAgICBjaGlsZHJlbiA9IF9yZWY3JGNoaWxkcmVuID09PSB2b2lkIDAgPyAnTG9hZGluZy4uLicgOiBfcmVmNyRjaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjcuaW5uZXJQcm9wcyxcbiAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjcsIF9leGNsdWRlZDIkMSk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBpbm5lclByb3BzOiBpbm5lclByb3BzXG4gIH0pLCAnbG9hZGluZ01lc3NhZ2UnLCB7XG4gICAgJ21lbnUtbm90aWNlJzogdHJ1ZSxcbiAgICAnbWVudS1ub3RpY2UtLWxvYWRpbmcnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IFBvcnRhbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBtZW51UG9ydGFsQ1NTID0gZnVuY3Rpb24gbWVudVBvcnRhbENTUyhfcmVmOCkge1xuICB2YXIgcmVjdCA9IF9yZWY4LnJlY3QsXG4gICAgb2Zmc2V0ID0gX3JlZjgub2Zmc2V0LFxuICAgIHBvc2l0aW9uID0gX3JlZjgucG9zaXRpb247XG4gIHJldHVybiB7XG4gICAgbGVmdDogcmVjdC5sZWZ0LFxuICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICB0b3A6IG9mZnNldCxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICB6SW5kZXg6IDFcbiAgfTtcbn07XG52YXIgTWVudVBvcnRhbCA9IGZ1bmN0aW9uIE1lbnVQb3J0YWwocHJvcHMpIHtcbiAgdmFyIGFwcGVuZFRvID0gcHJvcHMuYXBwZW5kVG8sXG4gICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBjb250cm9sRWxlbWVudCA9IHByb3BzLmNvbnRyb2xFbGVtZW50LFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIG1lbnVQbGFjZW1lbnQgPSBwcm9wcy5tZW51UGxhY2VtZW50LFxuICAgIG1lbnVQb3NpdGlvbiA9IHByb3BzLm1lbnVQb3NpdGlvbjtcbiAgdmFyIG1lbnVQb3J0YWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBjbGVhbnVwUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKGNvZXJjZVBsYWNlbWVudChtZW51UGxhY2VtZW50KSksXG4gICAgX3VzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTUsIDIpLFxuICAgIHBsYWNlbWVudCA9IF91c2VTdGF0ZTZbMF0sXG4gICAgc2V0UG9ydGFsUGxhY2VtZW50ID0gX3VzZVN0YXRlNlsxXTtcbiAgdmFyIHBvcnRhbFBsYWNlbWVudENvbnRleHQgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0UG9ydGFsUGxhY2VtZW50OiBzZXRQb3J0YWxQbGFjZW1lbnRcbiAgICB9O1xuICB9LCBbXSk7XG4gIHZhciBfdXNlU3RhdGU3ID0gdXNlU3RhdGUobnVsbCksXG4gICAgX3VzZVN0YXRlOCA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTcsIDIpLFxuICAgIGNvbXB1dGVkUG9zaXRpb24gPSBfdXNlU3RhdGU4WzBdLFxuICAgIHNldENvbXB1dGVkUG9zaXRpb24gPSBfdXNlU3RhdGU4WzFdO1xuICB2YXIgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWNvbnRyb2xFbGVtZW50KSByZXR1cm47XG4gICAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudE9iaihjb250cm9sRWxlbWVudCk7XG4gICAgdmFyIHNjcm9sbERpc3RhbmNlID0gbWVudVBvc2l0aW9uID09PSAnZml4ZWQnID8gMCA6IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICB2YXIgb2Zmc2V0ID0gcmVjdFtwbGFjZW1lbnRdICsgc2Nyb2xsRGlzdGFuY2U7XG4gICAgaWYgKG9mZnNldCAhPT0gKGNvbXB1dGVkUG9zaXRpb24gPT09IG51bGwgfHwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcHV0ZWRQb3NpdGlvbi5vZmZzZXQpIHx8IHJlY3QubGVmdCAhPT0gKGNvbXB1dGVkUG9zaXRpb24gPT09IG51bGwgfHwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcHV0ZWRQb3NpdGlvbi5yZWN0LmxlZnQpIHx8IHJlY3Qud2lkdGggIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC53aWR0aCkpIHtcbiAgICAgIHNldENvbXB1dGVkUG9zaXRpb24oe1xuICAgICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgcmVjdDogcmVjdFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbY29udHJvbEVsZW1lbnQsIG1lbnVQb3NpdGlvbiwgcGxhY2VtZW50LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC5sZWZ0LCBjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC53aWR0aF0pO1xuICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb24oKTtcbiAgfSwgW3VwZGF0ZUNvbXB1dGVkUG9zaXRpb25dKTtcbiAgdmFyIHJ1bkF1dG9VcGRhdGUgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwUmVmLmN1cnJlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCgpO1xuICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2xFbGVtZW50ICYmIG1lbnVQb3J0YWxSZWYuY3VycmVudCkge1xuICAgICAgY2xlYW51cFJlZi5jdXJyZW50ID0gYXV0b1VwZGF0ZShjb250cm9sRWxlbWVudCwgbWVudVBvcnRhbFJlZi5jdXJyZW50LCB1cGRhdGVDb21wdXRlZFBvc2l0aW9uLCB7XG4gICAgICAgIGVsZW1lbnRSZXNpemU6ICdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtjb250cm9sRWxlbWVudCwgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbl0pO1xuICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJ1bkF1dG9VcGRhdGUoKTtcbiAgfSwgW3J1bkF1dG9VcGRhdGVdKTtcbiAgdmFyIHNldE1lbnVQb3J0YWxFbGVtZW50ID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG1lbnVQb3J0YWxFbGVtZW50KSB7XG4gICAgbWVudVBvcnRhbFJlZi5jdXJyZW50ID0gbWVudVBvcnRhbEVsZW1lbnQ7XG4gICAgcnVuQXV0b1VwZGF0ZSgpO1xuICB9LCBbcnVuQXV0b1VwZGF0ZV0pO1xuXG4gIC8vIGJhaWwgZWFybHkgaWYgcmVxdWlyZWQgZWxlbWVudHMgYXJlbid0IHByZXNlbnRcbiAgaWYgKCFhcHBlbmRUbyAmJiBtZW51UG9zaXRpb24gIT09ICdmaXhlZCcgfHwgIWNvbXB1dGVkUG9zaXRpb24pIHJldHVybiBudWxsO1xuXG4gIC8vIHNhbWUgd3JhcHBlciBlbGVtZW50IHdoZXRoZXIgZml4ZWQgb3IgcG9ydGFsbGVkXG4gIHZhciBtZW51V3JhcHBlciA9IGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBzZXRNZW51UG9ydGFsRWxlbWVudFxuICB9LCBnZXRTdHlsZVByb3BzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCB7fSwge1xuICAgIG9mZnNldDogY29tcHV0ZWRQb3NpdGlvbi5vZmZzZXQsXG4gICAgcG9zaXRpb246IG1lbnVQb3NpdGlvbixcbiAgICByZWN0OiBjb21wdXRlZFBvc2l0aW9uLnJlY3RcbiAgfSksICdtZW51UG9ydGFsJywge1xuICAgICdtZW51LXBvcnRhbCc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG4gIHJldHVybiBqc3goUG9ydGFsUGxhY2VtZW50Q29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBwb3J0YWxQbGFjZW1lbnRDb250ZXh0XG4gIH0sIGFwcGVuZFRvID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChtZW51V3JhcHBlciwgYXBwZW5kVG8pIDogbWVudVdyYXBwZXIpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSb290IENvbnRhaW5lclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBjb250YWluZXJDU1MgPSBmdW5jdGlvbiBjb250YWluZXJDU1MoX3JlZikge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBpc1J0bCA9IF9yZWYuaXNSdGw7XG4gIHJldHVybiB7XG4gICAgbGFiZWw6ICdjb250YWluZXInLFxuICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6IHVuZGVmaW5lZCxcbiAgICBwb2ludGVyRXZlbnRzOiBpc0Rpc2FibGVkID8gJ25vbmUnIDogdW5kZWZpbmVkLFxuICAgIC8vIGNhbmNlbCBtb3VzZSBldmVudHMgd2hlbiBkaXNhYmxlZFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gIH07XG59O1xudmFyIFNlbGVjdENvbnRhaW5lciA9IGZ1bmN0aW9uIFNlbGVjdENvbnRhaW5lcihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc1J0bCA9IHByb3BzLmlzUnRsO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnY29udGFpbmVyJywge1xuICAgICctLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZCxcbiAgICAnLS1pcy1ydGwnOiBpc1J0bFxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFsdWUgQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIHZhbHVlQ29udGFpbmVyQ1NTID0gZnVuY3Rpb24gdmFsdWVDb250YWluZXJDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBzcGFjaW5nID0gX3JlZjIudGhlbWUuc3BhY2luZyxcbiAgICBpc011bHRpID0gX3JlZjIuaXNNdWx0aSxcbiAgICBoYXNWYWx1ZSA9IF9yZWYyLmhhc1ZhbHVlLFxuICAgIGNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZSA9IF9yZWYyLnNlbGVjdFByb3BzLmNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6IGlzTXVsdGkgJiYgaGFzVmFsdWUgJiYgY29udHJvbFNob3VsZFJlbmRlclZhbHVlID8gJ2ZsZXgnIDogJ2dyaWQnLFxuICAgIGZsZXg6IDEsXG4gICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICBXZWJraXRPdmVyZmxvd1Njcm9sbGluZzogJ3RvdWNoJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0IC8gMiwgXCJweCBcIikuY29uY2F0KHNwYWNpbmcuYmFzZVVuaXQgKiAyLCBcInB4XCIpXG4gIH0pO1xufTtcbnZhciBWYWx1ZUNvbnRhaW5lciA9IGZ1bmN0aW9uIFZhbHVlQ29udGFpbmVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpLFxuICAgIGhhc1ZhbHVlID0gcHJvcHMuaGFzVmFsdWU7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICd2YWx1ZUNvbnRhaW5lcicsIHtcbiAgICAndmFsdWUtY29udGFpbmVyJzogdHJ1ZSxcbiAgICAndmFsdWUtY29udGFpbmVyLS1pcy1tdWx0aSc6IGlzTXVsdGksXG4gICAgJ3ZhbHVlLWNvbnRhaW5lci0taGFzLXZhbHVlJzogaGFzVmFsdWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEluZGljYXRvciBDb250YWluZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgaW5kaWNhdG9yc0NvbnRhaW5lckNTUyA9IGZ1bmN0aW9uIGluZGljYXRvcnNDb250YWluZXJDU1MoKSB7XG4gIHJldHVybiB7XG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhTaHJpbms6IDBcbiAgfTtcbn07XG52YXIgSW5kaWNhdG9yc0NvbnRhaW5lciA9IGZ1bmN0aW9uIEluZGljYXRvcnNDb250YWluZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JzQ29udGFpbmVyJywge1xuICAgIGluZGljYXRvcnM6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG52YXIgX3RlbXBsYXRlT2JqZWN0O1xudmFyIF9leGNsdWRlZCQyID0gW1wic2l6ZVwiXSxcbiAgX2V4Y2x1ZGVkMiA9IFtcImlubmVyUHJvcHNcIiwgXCJpc1J0bFwiLCBcInNpemVcIl07XG5mdW5jdGlvbiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXygpIHsgcmV0dXJuIFwiWW91IGhhdmUgdHJpZWQgdG8gc3RyaW5naWZ5IG9iamVjdCByZXR1cm5lZCBmcm9tIGBjc3NgIGZ1bmN0aW9uLiBJdCBpc24ndCBzdXBwb3NlZCB0byBiZSB1c2VkIGRpcmVjdGx5IChlLmcuIGFzIHZhbHVlIG9mIHRoZSBgY2xhc3NOYW1lYCBwcm9wKSwgYnV0IHJhdGhlciBoYW5kZWQgdG8gZW1vdGlvbiBzbyBpdCBjYW4gaGFuZGxlIGl0IChlLmcuIGFzIHZhbHVlIG9mIGBjc3NgIHByb3ApLlwiOyB9XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBJY29uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG52YXIgX3JlZjIgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyB7XG4gIG5hbWU6IFwiOG1ta2NnXCIsXG4gIHN0eWxlczogXCJkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtsaW5lLWhlaWdodDoxO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjBcIlxufSA6IHtcbiAgbmFtZTogXCJ0ajViZGUtU3ZnXCIsXG4gIHN0eWxlczogXCJkaXNwbGF5OmlubGluZS1ibG9jaztmaWxsOmN1cnJlbnRDb2xvcjtsaW5lLWhlaWdodDoxO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjA7bGFiZWw6U3ZnO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1sdVpHbGpZWFJ2Y25NdWRITjRJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRWGxDU1NJc0ltWnBiR1VpT2lKcGJtUnBZMkYwYjNKekxuUnplQ0lzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQkFhbk40SUdwemVDQXFMMXh1YVcxd2IzSjBJSHNnVW1WaFkzUk9iMlJsSUgwZ1puSnZiU0FuY21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnYW5ONExDQnJaWGxtY21GdFpYTWdmU0JtY205dElDZEFaVzF2ZEdsdmJpOXlaV0ZqZENjN1hHNWNibWx0Y0c5eWRDQjdYRzRnSUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxMRnh1SUNCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3c1hHNGdJRWR5YjNWd1FtRnpaU3hjYm4wZ1puSnZiU0FuTGk0dmRIbHdaWE1uTzF4dWFXMXdiM0owSUhzZ1oyVjBVM1I1YkdWUWNtOXdjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QkVjbTl3Wkc5M2JpQW1JRU5zWldGeUlFbGpiMjV6WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVkyOXVjM1FnVTNabklEMGdLSHRjYmlBZ2MybDZaU3hjYmlBZ0xpNHVjSEp2Y0hOY2JuMDZJRXBUV0M1SmJuUnlhVzV6YVdORmJHVnRaVzUwYzFzbmMzWm5KMTBnSmlCN0lITnBlbVU2SUc1MWJXSmxjaUI5S1NBOVBpQW9YRzRnSUR4emRtZGNiaUFnSUNCb1pXbG5hSFE5ZTNOcGVtVjlYRzRnSUNBZ2QybGtkR2c5ZTNOcGVtVjlYRzRnSUNBZ2RtbGxkMEp2ZUQxY0lqQWdNQ0F5TUNBeU1Gd2lYRzRnSUNBZ1lYSnBZUzFvYVdSa1pXNDlYQ0owY25WbFhDSmNiaUFnSUNCbWIyTjFjMkZpYkdVOVhDSm1ZV3h6WlZ3aVhHNGdJQ0FnWTNOelBYdDdYRzRnSUNBZ0lDQmthWE53YkdGNU9pQW5hVzVzYVc1bExXSnNiMk5ySnl4Y2JpQWdJQ0FnSUdacGJHdzZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ2JHbHVaVWhsYVdkb2REb2dNU3hjYmlBZ0lDQWdJSE4wY205clpUb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCemRISnZhMlZYYVdSMGFEb2dNQ3hjYmlBZ0lDQjlmVnh1SUNBZ0lIc3VMaTV3Y205d2MzMWNiaUFnTHo1Y2JpazdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFTnliM056U1dOdmJsQnliM0J6SUQwZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWR6ZG1jblhTQW1JSHNnYzJsNlpUODZJRzUxYldKbGNpQjlPMXh1Wlhod2IzSjBJR052Ym5OMElFTnliM056U1dOdmJpQTlJQ2h3Y205d2N6b2dRM0p2YzNOSlkyOXVVSEp2Y0hNcElEMCtJQ2hjYmlBZ1BGTjJaeUJ6YVhwbFBYc3lNSDBnZXk0dUxuQnliM0J6ZlQ1Y2JpQWdJQ0E4Y0dGMGFDQmtQVndpVFRFMExqTTBPQ0F4TkM0NE5EbGpMVEF1TkRZNUlEQXVORFk1TFRFdU1qSTVJREF1TkRZNUxURXVOamszSURCc0xUSXVOalV4TFRNdU1ETXdMVEl1TmpVeElETXVNREk1WXkwd0xqUTJPU0F3TGpRMk9TMHhMakl5T1NBd0xqUTJPUzB4TGpZNU55QXdMVEF1TkRZNUxUQXVORFk1TFRBdU5EWTVMVEV1TWpJNUlEQXRNUzQyT1Rkc01pNDNOVGd0TXk0eE5TMHlMamMxT1MwekxqRTFNbU10TUM0ME5qa3RNQzQwTmprdE1DNDBOamt0TVM0eU1qZ2dNQzB4TGpZNU4zTXhMakl5T0Mwd0xqUTJPU0F4TGpZNU55QXdiREl1TmpVeUlETXVNRE14SURJdU5qVXhMVE11TURNeFl6QXVORFk1TFRBdU5EWTVJREV1TWpJNExUQXVORFk1SURFdU5qazNJREJ6TUM0ME5qa2dNUzR5TWprZ01DQXhMalk1TjJ3dE1pNDNOVGdnTXk0eE5USWdNaTQzTlRnZ015NHhOV013TGpRMk9TQXdMalEyT1NBd0xqUTJPU0F4TGpJeU9TQXdJREV1TmprNGVsd2lJQzgrWEc0Z0lEd3ZVM1puUGx4dUtUdGNibVY0Y0c5eWRDQjBlWEJsSUVSdmQyNURhR1YyY205dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1JHOTNia05vWlhaeWIyNGdQU0FvY0hKdmNITTZJRVJ2ZDI1RGFHVjJjbTl1VUhKdmNITXBJRDArSUNoY2JpQWdQRk4yWnlCemFYcGxQWHN5TUgwZ2V5NHVMbkJ5YjNCemZUNWNiaUFnSUNBOGNHRjBhQ0JrUFZ3aVRUUXVOVEUySURjdU5UUTRZekF1TkRNMkxUQXVORFEySURFdU1EUXpMVEF1TkRneElERXVOVGMySURCc015NDVNRGdnTXk0M05EY2dNeTQ1TURndE15NDNORGRqTUM0MU16TXRNQzQwT0RFZ01TNHhOREV0TUM0ME5EWWdNUzQxTnpRZ01DQXdMalF6TmlBd0xqUTBOU0F3TGpRd09DQXhMakU1TnlBd0lERXVOakUxTFRBdU5EQTJJREF1TkRFNExUUXVOamsxSURRdU5UQXlMVFF1TmprMUlEUXVOVEF5TFRBdU1qRTNJREF1TWpJekxUQXVOVEF5SURBdU16TTFMVEF1TnpnM0lEQXVNek0xY3kwd0xqVTNMVEF1TVRFeUxUQXVOemc1TFRBdU16TTFZekFnTUMwMExqSTROeTAwTGpBNE5DMDBMalk1TlMwMExqVXdNbk10TUM0ME16WXRNUzR4TnlBd0xURXVOakUxZWx3aUlDOCtYRzRnSUR3dlUzWm5QbHh1S1R0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJFY205d1pHOTNiaUFtSUVOc1pXRnlJRUoxZEhSdmJuTmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1SUNCcGMwUnBjMkZpYkdWa09pQmliMjlzWldGdU8xeHVmVnh1WEc1amIyNXpkQ0JpWVhObFExTlRJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLRnh1SUNCN1hHNGdJQ0FnYVhOR2IyTjFjMlZrTEZ4dUlDQWdJSFJvWlcxbE9pQjdYRzRnSUNBZ0lDQnpjR0ZqYVc1bk9pQjdJR0poYzJWVmJtbDBJSDBzWEc0Z0lDQWdJQ0JqYjJ4dmNuTXNYRzRnSUNBZ2ZTeGNiaUFnZlRwY2JpQWdJQ0I4SUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q1Y2JpQWdJQ0I4SUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pEYjI1MFlXbHVaWEluTEZ4dUlDQmthWE53YkdGNU9pQW5abXhsZUNjc1hHNGdJSFJ5WVc1emFYUnBiMjQ2SUNkamIyeHZjaUF4TlRCdGN5Y3NYRzRnSUM0dUxpaDFibk4wZVd4bFpGeHVJQ0FnSUQ4Z2UzMWNiaUFnSUNBNklIdGNiaUFnSUNBZ0lDQWdZMjlzYjNJNklHbHpSbTlqZFhObFpDQS9JR052Ykc5eWN5NXVaWFYwY21Gc05qQWdPaUJqYjJ4dmNuTXVibVYxZEhKaGJESXdMRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUJpWVhObFZXNXBkQ0FxSURJc1hHNGdJQ0FnSUNBZ0lDYzZhRzkyWlhJbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5c2IzSTZJR2x6Um05amRYTmxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNPREFnT2lCamIyeHZjbk11Ym1WMWRISmhiRFF3TEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTa3NYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdSeWIzQmtiM2R1U1c1a2FXTmhkRzl5UTFOVElEMGdZbUZ6WlVOVFV6dGNibVY0Y0c5eWRDQmpiMjV6ZENCRWNtOXdaRzkzYmtsdVpHbGpZWFJ2Y2lBOUlEeGNiaUFnVDNCMGFXOXVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGloY2JpQWdjSEp2Y0hNNklFUnliM0JrYjNkdVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdJR05vYVd4a2NtVnVMQ0JwYm01bGNsQnliM0J6SUgwZ1BTQndjbTl3Y3p0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQjdMaTR1WjJWMFUzUjViR1ZRY205d2N5aHdjbTl3Y3l3Z0oyUnliM0JrYjNkdVNXNWthV05oZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ2RrY205d1pHOTNiaTFwYm1ScFkyRjBiM0luT2lCMGNuVmxMRnh1SUNBZ0lDQWdmU2w5WEc0Z0lDQWdJQ0I3TGk0dWFXNXVaWEpRY205d2MzMWNiaUFnSUNBK1hHNGdJQ0FnSUNCN1kyaHBiR1J5Wlc0Z2ZId2dQRVJ2ZDI1RGFHVjJjbTl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCRGJHVmhja2x1WkdsallYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ0x5b3FJRlJvWlNCamFHbHNaSEpsYmlCMGJ5QmlaU0J5Wlc1a1pYSmxaQ0JwYm5OcFpHVWdkR2hsSUdsdVpHbGpZWFJ2Y2k0Z0tpOWNiaUFnWTJocGJHUnlaVzQvT2lCU1pXRmpkRTV2WkdVN1hHNGdJQzhxS2lCUWNtOXdjeUIwYUdGMElIZHBiR3dnWW1VZ2NHRnpjMlZrSUc5dUlIUnZJSFJvWlNCamFHbHNaSEpsYmk0Z0tpOWNiaUFnYVc1dVpYSlFjbTl3Y3pvZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWRrYVhZblhUdGNiaUFnTHlvcUlGUm9aU0JtYjJOMWMyVmtJSE4wWVhSbElHOW1JSFJvWlNCelpXeGxZM1F1SUNvdlhHNGdJR2x6Um05amRYTmxaRG9nWW05dmJHVmhianRjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUdOc1pXRnlTVzVrYVdOaGRHOXlRMU5USUQwZ1ltRnpaVU5UVXp0Y2JtVjRjRzl5ZENCamIyNXpkQ0JEYkdWaGNrbHVaR2xqWVhSdmNpQTlJRHhjYmlBZ1QzQjBhVzl1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpaGNiaUFnY0hKdmNITTZJRU5zWldGeVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdJR05vYVd4a2NtVnVMQ0JwYm01bGNsQnliM0J6SUgwZ1BTQndjbTl3Y3p0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQjdMaTR1WjJWMFUzUjViR1ZRY205d2N5aHdjbTl3Y3l3Z0oyTnNaV0Z5U1c1a2FXTmhkRzl5Snl3Z2UxeHVJQ0FnSUNBZ0lDQnBibVJwWTJGMGIzSTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDZGpiR1ZoY2kxcGJtUnBZMkYwYjNJbk9pQjBjblZsTEZ4dUlDQWdJQ0FnZlNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQjdZMmhwYkdSeVpXNGdmSHdnUEVOeWIzTnpTV052YmlBdlBuMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc1Y2JpOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUx5OGdVMlZ3WVhKaGRHOXlYRzR2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JKYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0pRY205d2N6eGNiaUFnVDNCMGFXOXVJRDBnZFc1cmJtOTNiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRnUFNCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrSUQwZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNGdaWGgwWlc1a2N5QkRiMjF0YjI1UWNtOXdjMEZ1WkVOc1lYTnpUbUZ0WlR4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaUI3WEc0Z0lHbHpSR2x6WVdKc1pXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdhVzV1WlhKUWNtOXdjejg2SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM0JoYmlkZE8xeHVmVnh1WEc1bGVIQnZjblFnWTI5dWMzUWdhVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkVhWE5oWW14bFpDeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnYzNCaFkybHVaem9nZXlCaVlYTmxWVzVwZENCOUxGeHVJQ0FnSUNBZ1kyOXNiM0p6TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBFOXdkR2x2Yml3Z1NYTk5kV3gwYVN3Z1IzSnZkWEErTEZ4dUlDQjFibk4wZVd4bFpEb2dZbTl2YkdWaGJseHVLVG9nUTFOVFQySnFaV04wVjJsMGFFeGhZbVZzSUQwK0lDaDdYRzRnSUd4aFltVnNPaUFuYVc1a2FXTmhkRzl5VTJWd1lYSmhkRzl5Snl4Y2JpQWdZV3hwWjI1VFpXeG1PaUFuYzNSeVpYUmphQ2NzWEc0Z0lIZHBaSFJvT2lBeExGeHVJQ0F1TGk0b2RXNXpkSGxzWldSY2JpQWdJQ0EvSUh0OVhHNGdJQ0FnT2lCN1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUkRiMnh2Y2pvZ2FYTkVhWE5oWW14bFpDQS9JR052Ykc5eWN5NXVaWFYwY21Gc01UQWdPaUJqYjJ4dmNuTXVibVYxZEhKaGJESXdMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNUNiM1IwYjIwNklHSmhjMlZWYm1sMElDb2dNaXhjYmlBZ0lDQWdJQ0FnYldGeVoybHVWRzl3T2lCaVlYTmxWVzVwZENBcUlESXNYRzRnSUNBZ0lDQjlLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1NXNWthV05oZEc5eVUyVndZWEpoZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdsdWJtVnlVSEp2Y0hNZ2ZTQTlJSEJ5YjNCek8xeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeHpjR0Z1WEc0Z0lDQWdJQ0I3TGk0dWFXNXVaWEpRY205d2MzMWNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBbmFXNWthV05oZEc5eVUyVndZWEpoZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0FuYVc1a2FXTmhkRzl5TFhObGNHRnlZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0F2UGx4dUlDQXBPMXh1ZlR0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJNYjJGa2FXNW5YRzR2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNibHh1WTI5dWMzUWdiRzloWkdsdVowUnZkRUZ1YVcxaGRHbHZibk1nUFNCclpYbG1jbUZ0WlhOZ1hHNGdJREFsTENBNE1DVXNJREV3TUNVZ2V5QnZjR0ZqYVhSNU9pQXdPeUI5WEc0Z0lEUXdKU0I3SUc5d1lXTnBkSGs2SURFN0lIMWNibUE3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JzYjJGa2FXNW5TVzVrYVdOaGRHOXlRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkdiMk4xYzJWa0xGeHVJQ0FnSUhOcGVtVXNYRzRnSUNBZ2RHaGxiV1U2SUh0Y2JpQWdJQ0FnSUdOdmJHOXljeXhjYmlBZ0lDQWdJSE53WVdOcGJtYzZJSHNnWW1GelpWVnVhWFFnZlN4Y2JpQWdJQ0I5TEZ4dUlDQjlPaUJNYjJGa2FXNW5TVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RzYjJGa2FXNW5TVzVrYVdOaGRHOXlKeXhjYmlBZ1pHbHpjR3hoZVRvZ0oyWnNaWGduTEZ4dUlDQjBjbUZ1YzJsMGFXOXVPaUFuWTI5c2IzSWdNVFV3YlhNbkxGeHVJQ0JoYkdsbmJsTmxiR1k2SUNkalpXNTBaWEluTEZ4dUlDQm1iMjUwVTJsNlpUb2djMmw2WlN4Y2JpQWdiR2x1WlVobGFXZG9kRG9nTVN4Y2JpQWdiV0Z5WjJsdVVtbG5hSFE2SUhOcGVtVXNYRzRnSUhSbGVIUkJiR2xuYmpvZ0oyTmxiblJsY2ljc1hHNGdJSFpsY25ScFkyRnNRV3hwWjI0NklDZHRhV1JrYkdVbkxGeHVJQ0F1TGk0b2RXNXpkSGxzWldSY2JpQWdJQ0EvSUh0OVhHNGdJQ0FnT2lCN1hHNGdJQ0FnSUNBZ0lHTnZiRzl5T2lCcGMwWnZZM1Z6WldRZ1B5QmpiMnh2Y25NdWJtVjFkSEpoYkRZd0lEb2dZMjlzYjNKekxtNWxkWFJ5WVd3eU1DeGNiaUFnSUNBZ0lDQWdjR0ZrWkdsdVp6b2dZbUZ6WlZWdWFYUWdLaUF5TEZ4dUlDQWdJQ0FnZlNrc1hHNTlLVHRjYmx4dWFXNTBaWEptWVdObElFeHZZV1JwYm1kRWIzUlFjbTl3Y3lCN1hHNGdJR1JsYkdGNU9pQnVkVzFpWlhJN1hHNGdJRzltWm5ObGREb2dZbTl2YkdWaGJqdGNibjFjYm1OdmJuTjBJRXh2WVdScGJtZEViM1FnUFNBb2V5QmtaV3hoZVN3Z2IyWm1jMlYwSUgwNklFeHZZV1JwYm1kRWIzUlFjbTl3Y3lrZ1BUNGdLRnh1SUNBOGMzQmhibHh1SUNBZ0lHTnpjejE3ZTF4dUlDQWdJQ0FnWVc1cGJXRjBhVzl1T2lCZ0pIdHNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjMzBnTVhNZ1pXRnpaUzFwYmkxdmRYUWdKSHRrWld4aGVYMXRjeUJwYm1acGJtbDBaVHRnTEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlPaUFuWTNWeWNtVnVkRU52Ykc5eUp5eGNiaUFnSUNBZ0lHSnZjbVJsY2xKaFpHbDFjem9nSnpGbGJTY3NYRzRnSUNBZ0lDQmthWE53YkdGNU9pQW5hVzVzYVc1bExXSnNiMk5ySnl4Y2JpQWdJQ0FnSUcxaGNtZHBia3hsWm5RNklHOW1abk5sZENBL0lDY3haVzBuSURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lBbk1XVnRKeXhjYmlBZ0lDQWdJSFpsY25ScFkyRnNRV3hwWjI0NklDZDBiM0FuTEZ4dUlDQWdJQ0FnZDJsa2RHZzZJQ2N4WlcwbkxGeHVJQ0FnSUgxOVhHNGdJQzgrWEc0cE8xeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlFjbTl3Y3lCMGFHRjBJSGRwYkd3Z1ltVWdjR0Z6YzJWa0lHOXVJSFJ2SUhSb1pTQmphR2xzWkhKbGJpNGdLaTljYmlBZ2FXNXVaWEpRY205d2N6b2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lka2FYWW5YVHRjYmlBZ0x5b3FJRlJvWlNCbWIyTjFjMlZrSUhOMFlYUmxJRzltSUhSb1pTQnpaV3hsWTNRdUlDb3ZYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdhWE5FYVhOaFlteGxaRG9nWW05dmJHVmhianRjYmlBZ0x5b3FJRk5sZENCemFYcGxJRzltSUhSb1pTQmpiMjUwWVdsdVpYSXVJQ292WEc0Z0lITnBlbVU2SUc1MWJXSmxjanRjYm4xY2JtVjRjRzl5ZENCamIyNXpkQ0JNYjJGa2FXNW5TVzVrYVdOaGRHOXlJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLSHRjYmlBZ2FXNXVaWEpRY205d2N5eGNiaUFnYVhOU2RHd3NYRzRnSUhOcGVtVWdQU0EwTEZ4dUlDQXVMaTV5WlhOMFVISnZjSE5jYm4wNklFeHZZV1JwYm1kSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1Bpa2dQVDRnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektGeHVJQ0FnSUNBZ0lDQjdJQzR1TG5KbGMzUlFjbTl3Y3l3Z2FXNXVaWEpRY205d2N5d2dhWE5TZEd3c0lITnBlbVVnZlN4Y2JpQWdJQ0FnSUNBZ0oyeHZZV1JwYm1kSmJtUnBZMkYwYjNJbkxGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnYVc1a2FXTmhkRzl5T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNkc2IyRmthVzVuTFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQThURzloWkdsdVowUnZkQ0JrWld4aGVUMTdNSDBnYjJabWMyVjBQWHRwYzFKMGJIMGdMejVjYmlBZ0lDQWdJRHhNYjJGa2FXNW5SRzkwSUdSbGJHRjVQWHN4TmpCOUlHOW1abk5sZENBdlBseHVJQ0FnSUNBZ1BFeHZZV1JwYm1kRWIzUWdaR1ZzWVhrOWV6TXlNSDBnYjJabWMyVjBQWHNoYVhOU2RHeDlJQzgrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVJbDE5ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfX1xufTtcbnZhciBTdmcgPSBmdW5jdGlvbiBTdmcoX3JlZikge1xuICB2YXIgc2l6ZSA9IF9yZWYuc2l6ZSxcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBfZXhjbHVkZWQkMik7XG4gIHJldHVybiBqc3goXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogc2l6ZSxcbiAgICB3aWR0aDogc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgZm9jdXNhYmxlOiBcImZhbHNlXCIsXG4gICAgY3NzOiBfcmVmMlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBDcm9zc0ljb24gPSBmdW5jdGlvbiBDcm9zc0ljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChTdmcsIF9leHRlbmRzKHtcbiAgICBzaXplOiAyMFxuICB9LCBwcm9wcyksIGpzeChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiXG4gIH0pKTtcbn07XG52YXIgRG93bkNoZXZyb24gPSBmdW5jdGlvbiBEb3duQ2hldnJvbihwcm9wcykge1xuICByZXR1cm4ganN4KFN2ZywgX2V4dGVuZHMoe1xuICAgIHNpemU6IDIwXG4gIH0sIHByb3BzKSwganN4KFwicGF0aFwiLCB7XG4gICAgZDogXCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCJcbiAgfSkpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgYmFzZUNTUyA9IGZ1bmN0aW9uIGJhc2VDU1MoX3JlZjMsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQsXG4gICAgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWYzJHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwXG4gICAgfVxuICB9KTtcbn07XG52YXIgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIERyb3Bkb3duSW5kaWNhdG9yID0gZnVuY3Rpb24gRHJvcGRvd25JbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdkcm9wZG93bkluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goRG93bkNoZXZyb24sIG51bGwpKTtcbn07XG52YXIgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIENsZWFySW5kaWNhdG9yID0gZnVuY3Rpb24gQ2xlYXJJbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjbGVhckluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goQ3Jvc3NJY29uLCBudWxsKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlcGFyYXRvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JTZXBhcmF0b3JDU1MoX3JlZjQsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZjQuaXNEaXNhYmxlZCxcbiAgICBfcmVmNCR0aGVtZSA9IF9yZWY0LnRoZW1lLFxuICAgIGJhc2VVbml0ID0gX3JlZjQkdGhlbWUuc3BhY2luZy5iYXNlVW5pdCxcbiAgICBjb2xvcnMgPSBfcmVmNCR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgd2lkdGg6IDFcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMlxuICB9KTtcbn07XG52YXIgSW5kaWNhdG9yU2VwYXJhdG9yID0gZnVuY3Rpb24gSW5kaWNhdG9yU2VwYXJhdG9yKHByb3BzKSB7XG4gIHZhciBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe30sIGlubmVyUHJvcHMsIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlXG4gIH0pKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXMoX3RlbXBsYXRlT2JqZWN0IHx8IChfdGVtcGxhdGVPYmplY3QgPSBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKFtcIlxcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cXG5cIl0pKSk7XG52YXIgbG9hZGluZ0luZGljYXRvckNTUyA9IGZ1bmN0aW9uIGxvYWRpbmdJbmRpY2F0b3JDU1MoX3JlZjUsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmNS5pc0ZvY3VzZWQsXG4gICAgc2l6ZSA9IF9yZWY1LnNpemUsXG4gICAgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBjb2xvcnMgPSBfcmVmNSR0aGVtZS5jb2xvcnMsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0O1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICAgIGZvbnRTaXplOiBzaXplLFxuICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDJcbiAgfSk7XG59O1xudmFyIExvYWRpbmdEb3QgPSBmdW5jdGlvbiBMb2FkaW5nRG90KF9yZWY2KSB7XG4gIHZhciBkZWxheSA9IF9yZWY2LmRlbGF5LFxuICAgIG9mZnNldCA9IF9yZWY2Lm9mZnNldDtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwge1xuICAgIGNzczogLyojX19QVVJFX18qL2NzcyQyKHtcbiAgICAgIGFuaW1hdGlvbjogXCJcIi5jb25jYXQobG9hZGluZ0RvdEFuaW1hdGlvbnMsIFwiIDFzIGVhc2UtaW4tb3V0IFwiKS5jb25jYXQoZGVsYXksIFwibXMgaW5maW5pdGU7XCIpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkxvYWRpbmdEb3Q7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVcxUlNTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1VtVmhZM1JPYjJSbElIMGdabkp2YlNBbmNtVmhZM1FuTzF4dWFXMXdiM0owSUhzZ2FuTjRMQ0JyWlhsbWNtRnRaWE1nZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1sdGNHOXlkQ0I3WEc0Z0lFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsTEZ4dUlDQkRVMU5QWW1wbFkzUlhhWFJvVEdGaVpXd3NYRzRnSUVkeWIzVndRbUZ6WlN4Y2JuMGdabkp2YlNBbkxpNHZkSGx3WlhNbk8xeHVhVzF3YjNKMElIc2daMlYwVTNSNWJHVlFjbTl3Y3lCOUlHWnliMjBnSnk0dUwzVjBhV3h6Snp0Y2JseHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNHZMeUJFY205d1pHOTNiaUFtSUVOc1pXRnlJRWxqYjI1elhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JseHVZMjl1YzNRZ1UzWm5JRDBnS0h0Y2JpQWdjMmw2WlN4Y2JpQWdMaTR1Y0hKdmNITmNibjA2SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VNklHNTFiV0psY2lCOUtTQTlQaUFvWEc0Z0lEeHpkbWRjYmlBZ0lDQm9aV2xuYUhROWUzTnBlbVY5WEc0Z0lDQWdkMmxrZEdnOWUzTnBlbVY5WEc0Z0lDQWdkbWxsZDBKdmVEMWNJakFnTUNBeU1DQXlNRndpWEc0Z0lDQWdZWEpwWVMxb2FXUmtaVzQ5WENKMGNuVmxYQ0pjYmlBZ0lDQm1iMk4xYzJGaWJHVTlYQ0ptWVd4elpWd2lYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUFuYVc1c2FXNWxMV0pzYjJOckp5eGNiaUFnSUNBZ0lHWnBiR3c2SUNkamRYSnlaVzUwUTI5c2IzSW5MRnh1SUNBZ0lDQWdiR2x1WlVobGFXZG9kRG9nTVN4Y2JpQWdJQ0FnSUhOMGNtOXJaVG9nSjJOMWNuSmxiblJEYjJ4dmNpY3NYRzRnSUNBZ0lDQnpkSEp2YTJWWGFXUjBhRG9nTUN4Y2JpQWdJQ0I5ZlZ4dUlDQWdJSHN1TGk1d2NtOXdjMzFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRU55YjNOelNXTnZibEJ5YjNCeklEMGdTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVDg2SUc1MWJXSmxjaUI5TzF4dVpYaHdiM0owSUdOdmJuTjBJRU55YjNOelNXTnZiaUE5SUNod2NtOXdjem9nUTNKdmMzTkpZMjl1VUhKdmNITXBJRDArSUNoY2JpQWdQRk4yWnlCemFYcGxQWHN5TUgwZ2V5NHVMbkJ5YjNCemZUNWNiaUFnSUNBOGNHRjBhQ0JrUFZ3aVRURTBMak0wT0NBeE5DNDRORGxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQnNMVEl1TmpVeExUTXVNRE13TFRJdU5qVXhJRE11TURJNVl5MHdMalEyT1NBd0xqUTJPUzB4TGpJeU9TQXdMalEyT1MweExqWTVOeUF3TFRBdU5EWTVMVEF1TkRZNUxUQXVORFk1TFRFdU1qSTVJREF0TVM0Mk9UZHNNaTQzTlRndE15NHhOUzB5TGpjMU9TMHpMakUxTW1NdE1DNDBOamt0TUM0ME5qa3RNQzQwTmprdE1TNHlNamdnTUMweExqWTVOM014TGpJeU9DMHdMalEyT1NBeExqWTVOeUF3YkRJdU5qVXlJRE11TURNeElESXVOalV4TFRNdU1ETXhZekF1TkRZNUxUQXVORFk1SURFdU1qSTRMVEF1TkRZNUlERXVOamszSURCek1DNDBOamtnTVM0eU1qa2dNQ0F4TGpZNU4yd3RNaTQzTlRnZ015NHhOVElnTWk0M05UZ2dNeTR4TldNd0xqUTJPU0F3TGpRMk9TQXdMalEyT1NBeExqSXlPU0F3SURFdU5qazRlbHdpSUM4K1hHNGdJRHd2VTNablBseHVLVHRjYm1WNGNHOXlkQ0IwZVhCbElFUnZkMjVEYUdWMmNtOXVVSEp2Y0hNZ1BTQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjNOMlp5ZGRJQ1lnZXlCemFYcGxQem9nYm5WdFltVnlJSDA3WEc1bGVIQnZjblFnWTI5dWMzUWdSRzkzYmtOb1pYWnliMjRnUFNBb2NISnZjSE02SUVSdmQyNURhR1YyY205dVVISnZjSE1wSUQwK0lDaGNiaUFnUEZOMlp5QnphWHBsUFhzeU1IMGdleTR1TG5CeWIzQnpmVDVjYmlBZ0lDQThjR0YwYUNCa1BWd2lUVFF1TlRFMklEY3VOVFE0WXpBdU5ETTJMVEF1TkRRMklERXVNRFF6TFRBdU5EZ3hJREV1TlRjMklEQnNNeTQ1TURnZ015NDNORGNnTXk0NU1EZ3RNeTQzTkRkak1DNDFNek10TUM0ME9ERWdNUzR4TkRFdE1DNDBORFlnTVM0MU56UWdNQ0F3TGpRek5pQXdMalEwTlNBd0xqUXdPQ0F4TGpFNU55QXdJREV1TmpFMUxUQXVOREEySURBdU5ERTRMVFF1TmprMUlEUXVOVEF5TFRRdU5qazFJRFF1TlRBeUxUQXVNakUzSURBdU1qSXpMVEF1TlRBeUlEQXVNek0xTFRBdU56ZzNJREF1TXpNMWN5MHdMalUzTFRBdU1URXlMVEF1TnpnNUxUQXVNek0xWXpBZ01DMDBMakk0TnkwMExqQTROQzAwTGpZNU5TMDBMalV3TW5NdE1DNDBNell0TVM0eE55QXdMVEV1TmpFMWVsd2lJQzgrWEc0Z0lEd3ZVM1puUGx4dUtUdGNibHh1THk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYRzR2THlCRWNtOXdaRzkzYmlBbUlFTnNaV0Z5SUVKMWRIUnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5VUhKdmNITThYRzRnSUU5d2RHbHZiaUE5SUhWdWEyNXZkMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1SUQwZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGlBOUlFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtJR1Y0ZEdWdVpITWdRMjl0Ylc5dVVISnZjSE5CYm1SRGJHRnpjMDVoYldVOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRnZTF4dUlDQXZLaW9nVkdobElHTm9hV3hrY21WdUlIUnZJR0psSUhKbGJtUmxjbVZrSUdsdWMybGtaU0IwYUdVZ2FXNWthV05oZEc5eUxpQXFMMXh1SUNCamFHbHNaSEpsYmo4NklGSmxZV04wVG05a1pUdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWpiMjV6ZENCaVlYTmxRMU5USUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQjdYRzRnSUNBZ2FYTkdiMk4xYzJWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUcGNiaUFnSUNCOElFUnliM0JrYjNkdVNXNWthV05oZEc5eVVISnZjSE04VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENWNiaUFnSUNCOElFTnNaV0Z5U1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q0c1hHNGdJSFZ1YzNSNWJHVmtPaUJpYjI5c1pXRnVYRzRwT2lCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3Z1BUNGdLSHRjYmlBZ2JHRmlaV3c2SUNkcGJtUnBZMkYwYjNKRGIyNTBZV2x1WlhJbkxGeHVJQ0JrYVhOd2JHRjVPaUFuWm14bGVDY3NYRzRnSUhSeVlXNXphWFJwYjI0NklDZGpiMnh2Y2lBeE5UQnRjeWNzWEc0Z0lDNHVMaWgxYm5OMGVXeGxaRnh1SUNBZ0lEOGdlMzFjYmlBZ0lDQTZJSHRjYmlBZ0lDQWdJQ0FnWTI5c2IzSTZJR2x6Um05amRYTmxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNOakFnT2lCamIyeHZjbk11Ym1WMWRISmhiREl3TEZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuT2lCaVlYTmxWVzVwZENBcUlESXNYRzRnSUNBZ0lDQWdJQ2M2YUc5MlpYSW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzT0RBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRRd0xGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU2tzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHUnliM0JrYjNkdVNXNWthV05oZEc5eVExTlRJRDBnWW1GelpVTlRVenRjYm1WNGNHOXlkQ0JqYjI1emRDQkVjbTl3Wkc5M2JrbHVaR2xqWVhSdmNpQTlJRHhjYmlBZ1QzQjBhVzl1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYml4Y2JpQWdSM0p2ZFhBZ1pYaDBaVzVrY3lCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpaGNiaUFnY0hKdmNITTZJRVJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdOb2FXeGtjbVZ1TENCcGJtNWxjbEJ5YjNCeklIMGdQU0J3Y205d2N6dGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wyWEc0Z0lDQWdJQ0I3TGk0dVoyVjBVM1I1YkdWUWNtOXdjeWh3Y205d2N5d2dKMlJ5YjNCa2IzZHVTVzVrYVdOaGRHOXlKeXdnZTF4dUlDQWdJQ0FnSUNCcGJtUnBZMkYwYjNJNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNka2NtOXdaRzkzYmkxcGJtUnBZMkYwYjNJbk9pQjBjblZsTEZ4dUlDQWdJQ0FnZlNsOVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQStYRzRnSUNBZ0lDQjdZMmhwYkdSeVpXNGdmSHdnUEVSdmQyNURhR1YyY205dUlDOCtmVnh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkRiR1ZoY2tsdVpHbGpZWFJ2Y2xCeWIzQnpQRnh1SUNCUGNIUnBiMjRnUFNCMWJtdHViM2R1TEZ4dUlDQkpjMDExYkhScElHVjRkR1Z1WkhNZ1ltOXZiR1ZoYmlBOUlHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo0Z1BTQkhjbTkxY0VKaGMyVThUM0IwYVc5dVBseHVQaUJsZUhSbGJtUnpJRU52YlcxdmJsQnliM0J6UVc1a1EyeGhjM05PWVcxbFBFOXdkR2x2Yml3Z1NYTk5kV3gwYVN3Z1IzSnZkWEErSUh0Y2JpQWdMeW9xSUZSb1pTQmphR2xzWkhKbGJpQjBieUJpWlNCeVpXNWtaWEpsWkNCcGJuTnBaR1VnZEdobElHbHVaR2xqWVhSdmNpNGdLaTljYmlBZ1kyaHBiR1J5Wlc0L09pQlNaV0ZqZEU1dlpHVTdYRzRnSUM4cUtpQlFjbTl3Y3lCMGFHRjBJSGRwYkd3Z1ltVWdjR0Z6YzJWa0lHOXVJSFJ2SUhSb1pTQmphR2xzWkhKbGJpNGdLaTljYmlBZ2FXNXVaWEpRY205d2N6b2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lka2FYWW5YVHRjYmlBZ0x5b3FJRlJvWlNCbWIyTjFjMlZrSUhOMFlYUmxJRzltSUhSb1pTQnpaV3hsWTNRdUlDb3ZYRzRnSUdselJtOWpkWE5sWkRvZ1ltOXZiR1ZoYmp0Y2JuMWNibHh1Wlhod2IzSjBJR052Ym5OMElHTnNaV0Z5U1c1a2FXTmhkRzl5UTFOVElEMGdZbUZ6WlVOVFV6dGNibVY0Y0c5eWRDQmpiMjV6ZENCRGJHVmhja2x1WkdsallYUnZjaUE5SUR4Y2JpQWdUM0IwYVc5dUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpeGNiaUFnUjNKdmRYQWdaWGgwWlc1a2N5QkhjbTkxY0VKaGMyVThUM0IwYVc5dVBseHVQaWhjYmlBZ2NISnZjSE02SUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDVjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdOb2FXeGtjbVZ1TENCcGJtNWxjbEJ5YjNCeklIMGdQU0J3Y205d2N6dGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wyWEc0Z0lDQWdJQ0I3TGk0dVoyVjBVM1I1YkdWUWNtOXdjeWh3Y205d2N5d2dKMk5zWldGeVNXNWthV05oZEc5eUp5d2dlMXh1SUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ2RqYkdWaGNpMXBibVJwWTJGMGIzSW5PaUIwY25WbExGeHVJQ0FnSUNBZ2ZTbDlYRzRnSUNBZ0lDQjdMaTR1YVc1dVpYSlFjbTl3YzMxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0I3WTJocGJHUnlaVzRnZkh3Z1BFTnliM056U1dOdmJpQXZQbjFjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNWNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVMeThnVTJWd1lYSmhkRzl5WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNKUWNtOXdjenhjYmlBZ1QzQjBhVzl1SUQwZ2RXNXJibTkzYml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0Z1BTQmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K0lEMGdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRnWlhoMFpXNWtjeUJEYjIxdGIyNVFjbTl3YzBGdVpFTnNZWE56VG1GdFpUeFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGlCN1hHNGdJR2x6UkdsellXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lHbHpSbTlqZFhObFpEb2dZbTl2YkdWaGJqdGNiaUFnYVc1dVpYSlFjbTl3Y3o4NklFcFRXQzVKYm5SeWFXNXphV05GYkdWdFpXNTBjMXNuYzNCaGJpZGRPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVc1a2FXTmhkRzl5VTJWd1lYSmhkRzl5UTFOVElEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0I3WEc0Z0lDQWdhWE5FYVhOaFlteGxaQ3hjYmlBZ0lDQjBhR1Z0WlRvZ2UxeHVJQ0FnSUNBZ2MzQmhZMmx1WnpvZ2V5QmlZWE5sVlc1cGRDQjlMRnh1SUNBZ0lDQWdZMjlzYjNKekxGeHVJQ0FnSUgwc1hHNGdJSDA2SUVsdVpHbGpZWFJ2Y2xObGNHRnlZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0xGeHVJQ0IxYm5OMGVXeGxaRG9nWW05dmJHVmhibHh1S1RvZ1ExTlRUMkpxWldOMFYybDBhRXhoWW1Wc0lEMCtJQ2g3WEc0Z0lHeGhZbVZzT2lBbmFXNWthV05oZEc5eVUyVndZWEpoZEc5eUp5eGNiaUFnWVd4cFoyNVRaV3htT2lBbmMzUnlaWFJqYUNjc1hHNGdJSGRwWkhSb09pQXhMRnh1SUNBdUxpNG9kVzV6ZEhsc1pXUmNiaUFnSUNBL0lIdDlYRzRnSUNBZ09pQjdYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVJEYjJ4dmNqb2dhWE5FYVhOaFlteGxaQ0EvSUdOdmJHOXljeTV1WlhWMGNtRnNNVEFnT2lCamIyeHZjbk11Ym1WMWRISmhiREl3TEZ4dUlDQWdJQ0FnSUNCdFlYSm5hVzVDYjNSMGIyMDZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ2JXRnlaMmx1Vkc5d09pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlJRDBnUEZ4dUlDQlBjSFJwYjI0c1hHNGdJRWx6VFhWc2RHa2daWGgwWlc1a2N5QmliMjlzWldGdUxGeHVJQ0JIY205MWNDQmxlSFJsYm1SeklFZHliM1Z3UW1GelpUeFBjSFJwYjI0K1hHNCtLRnh1SUNCd2NtOXdjem9nU1c1a2FXTmhkRzl5VTJWd1lYSmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q1Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCN0lHbHVibVZ5VUhKdmNITWdmU0E5SUhCeWIzQnpPMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHh6Y0dGdVhHNGdJQ0FnSUNCN0xpNHVhVzV1WlhKUWNtOXdjMzFjYmlBZ0lDQWdJSHN1TGk1blpYUlRkSGxzWlZCeWIzQnpLSEJ5YjNCekxDQW5hVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlKeXdnZTF4dUlDQWdJQ0FnSUNBbmFXNWthV05oZEc5eUxYTmxjR0Z5WVhSdmNpYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNCOUtYMWNiaUFnSUNBdlBseHVJQ0FwTzF4dWZUdGNibHh1THk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYRzR2THlCTWIyRmthVzVuWEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dVkyOXVjM1FnYkc5aFpHbHVaMFJ2ZEVGdWFXMWhkR2x2Ym5NZ1BTQnJaWGxtY21GdFpYTmdYRzRnSURBbExDQTRNQ1VzSURFd01DVWdleUJ2Y0dGamFYUjVPaUF3T3lCOVhHNGdJRFF3SlNCN0lHOXdZV05wZEhrNklERTdJSDFjYm1BN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCc2IyRmthVzVuU1c1a2FXTmhkRzl5UTFOVElEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0I3WEc0Z0lDQWdhWE5HYjJOMWMyVmtMRnh1SUNBZ0lITnBlbVVzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lHTnZiRzl5Y3l4Y2JpQWdJQ0FnSUhOd1lXTnBibWM2SUhzZ1ltRnpaVlZ1YVhRZ2ZTeGNiaUFnSUNCOUxGeHVJQ0I5T2lCTWIyRmthVzVuU1c1a2FXTmhkRzl5VUhKdmNITThUM0IwYVc5dUxDQkpjMDExYkhScExDQkhjbTkxY0Q0c1hHNGdJSFZ1YzNSNWJHVmtPaUJpYjI5c1pXRnVYRzRwT2lCRFUxTlBZbXBsWTNSWGFYUm9UR0ZpWld3Z1BUNGdLSHRjYmlBZ2JHRmlaV3c2SUNkc2IyRmthVzVuU1c1a2FXTmhkRzl5Snl4Y2JpQWdaR2x6Y0d4aGVUb2dKMlpzWlhnbkxGeHVJQ0IwY21GdWMybDBhVzl1T2lBblkyOXNiM0lnTVRVd2JYTW5MRnh1SUNCaGJHbG5ibE5sYkdZNklDZGpaVzUwWlhJbkxGeHVJQ0JtYjI1MFUybDZaVG9nYzJsNlpTeGNiaUFnYkdsdVpVaGxhV2RvZERvZ01TeGNiaUFnYldGeVoybHVVbWxuYUhRNklITnBlbVVzWEc0Z0lIUmxlSFJCYkdsbmJqb2dKMk5sYm5SbGNpY3NYRzRnSUhabGNuUnBZMkZzUVd4cFoyNDZJQ2R0YVdSa2JHVW5MRnh1SUNBdUxpNG9kVzV6ZEhsc1pXUmNiaUFnSUNBL0lIdDlYRzRnSUNBZ09pQjdYRzRnSUNBZ0lDQWdJR052Ykc5eU9pQnBjMFp2WTNWelpXUWdQeUJqYjJ4dmNuTXVibVYxZEhKaGJEWXdJRG9nWTI5c2IzSnpMbTVsZFhSeVlXd3lNQ3hjYmlBZ0lDQWdJQ0FnY0dGa1pHbHVaem9nWW1GelpWVnVhWFFnS2lBeUxGeHVJQ0FnSUNBZ2ZTa3NYRzU5S1R0Y2JseHVhVzUwWlhKbVlXTmxJRXh2WVdScGJtZEViM1JRY205d2N5QjdYRzRnSUdSbGJHRjVPaUJ1ZFcxaVpYSTdYRzRnSUc5bVpuTmxkRG9nWW05dmJHVmhianRjYm4xY2JtTnZibk4wSUV4dllXUnBibWRFYjNRZ1BTQW9leUJrWld4aGVTd2diMlptYzJWMElIMDZJRXh2WVdScGJtZEViM1JRY205d2N5a2dQVDRnS0Z4dUlDQThjM0JoYmx4dUlDQWdJR056Y3oxN2UxeHVJQ0FnSUNBZ1lXNXBiV0YwYVc5dU9pQmdKSHRzYjJGa2FXNW5SRzkwUVc1cGJXRjBhVzl1YzMwZ01YTWdaV0Z6WlMxcGJpMXZkWFFnSkh0a1pXeGhlWDF0Y3lCcGJtWnBibWwwWlR0Z0xGeHVJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lBblkzVnljbVZ1ZEVOdmJHOXlKeXhjYmlBZ0lDQWdJR0p2Y21SbGNsSmhaR2wxY3pvZ0p6RmxiU2NzWEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUFuYVc1c2FXNWxMV0pzYjJOckp5eGNiaUFnSUNBZ0lHMWhjbWRwYmt4bFpuUTZJRzltWm5ObGRDQS9JQ2N4WlcwbklEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdhR1ZwWjJoME9pQW5NV1Z0Snl4Y2JpQWdJQ0FnSUhabGNuUnBZMkZzUVd4cFoyNDZJQ2QwYjNBbkxGeHVJQ0FnSUNBZ2QybGtkR2c2SUNjeFpXMG5MRnh1SUNBZ0lIMTlYRzRnSUM4K1hHNHBPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUV4dllXUnBibWRKYm1ScFkyRjBiM0pRY205d2N6eGNiaUFnVDNCMGFXOXVJRDBnZFc1cmJtOTNiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRnUFNCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrSUQwZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNGdaWGgwWlc1a2N5QkRiMjF0YjI1UWNtOXdjMEZ1WkVOc1lYTnpUbUZ0WlR4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaUI3WEc0Z0lDOHFLaUJRY205d2N5QjBhR0YwSUhkcGJHd2dZbVVnY0dGemMyVmtJRzl1SUhSdklIUm9aU0JqYUdsc1pISmxiaTRnS2k5Y2JpQWdhVzV1WlhKUWNtOXdjem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZGthWFluWFR0Y2JpQWdMeW9xSUZSb1pTQm1iMk4xYzJWa0lITjBZWFJsSUc5bUlIUm9aU0J6Wld4bFkzUXVJQ292WEc0Z0lHbHpSbTlqZFhObFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhORWFYTmhZbXhsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdMeW9xSUZObGRDQnphWHBsSUc5bUlIUm9aU0JqYjI1MFlXbHVaWEl1SUNvdlhHNGdJSE5wZW1VNklHNTFiV0psY2p0Y2JuMWNibVY0Y0c5eWRDQmpiMjV6ZENCTWIyRmthVzVuU1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0h0Y2JpQWdhVzV1WlhKUWNtOXdjeXhjYmlBZ2FYTlNkR3dzWEc0Z0lITnBlbVVnUFNBMExGeHVJQ0F1TGk1eVpYTjBVSEp2Y0hOY2JuMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaWtnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJSHN1TGk1blpYUlRkSGxzWlZCeWIzQnpLRnh1SUNBZ0lDQWdJQ0I3SUM0dUxuSmxjM1JRY205d2N5d2dhVzV1WlhKUWNtOXdjeXdnYVhOU2RHd3NJSE5wZW1VZ2ZTeGNiaUFnSUNBZ0lDQWdKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXNWthV05oZEc5eU9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDZHNiMkZrYVc1bkxXbHVaR2xqWVhSdmNpYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ0lDQjdMaTR1YVc1dVpYSlFjbTl3YzMxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0E4VEc5aFpHbHVaMFJ2ZENCa1pXeGhlVDE3TUgwZ2IyWm1jMlYwUFh0cGMxSjBiSDBnTHo1Y2JpQWdJQ0FnSUR4TWIyRmthVzVuUkc5MElHUmxiR0Y1UFhzeE5qQjlJRzltWm5ObGRDQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllek15TUgwZ2IyWm1jMlYwUFhzaGFYTlNkR3g5SUM4K1hHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1SWwxOSAqL1wiKVxuICB9KTtcbn07XG52YXIgTG9hZGluZ0luZGljYXRvciA9IGZ1bmN0aW9uIExvYWRpbmdJbmRpY2F0b3IoX3JlZjcpIHtcbiAgdmFyIGlubmVyUHJvcHMgPSBfcmVmNy5pbm5lclByb3BzLFxuICAgIGlzUnRsID0gX3JlZjcuaXNSdGwsXG4gICAgX3JlZjckc2l6ZSA9IF9yZWY3LnNpemUsXG4gICAgc2l6ZSA9IF9yZWY3JHNpemUgPT09IHZvaWQgMCA/IDQgOiBfcmVmNyRzaXplLFxuICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmNywgX2V4Y2x1ZGVkMik7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgaXNSdGw6IGlzUnRsLFxuICAgIHNpemU6IHNpemVcbiAgfSksICdsb2FkaW5nSW5kaWNhdG9yJywge1xuICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwganN4KExvYWRpbmdEb3QsIHtcbiAgICBkZWxheTogMCxcbiAgICBvZmZzZXQ6IGlzUnRsXG4gIH0pLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAxNjAsXG4gICAgb2Zmc2V0OiB0cnVlXG4gIH0pLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAzMjAsXG4gICAgb2Zmc2V0OiAhaXNSdGxcbiAgfSkpO1xufTtcblxudmFyIGNzcyQxID0gZnVuY3Rpb24gY3NzKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYuaXNGb2N1c2VkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmc7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2NvbnRyb2wnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGN1cnNvcjogJ2RlZmF1bHQnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgbWluSGVpZ2h0OiBzcGFjaW5nLmNvbnRyb2xIZWlnaHQsXG4gICAgb3V0bGluZTogJzAgIWltcG9ydGFudCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgdHJhbnNpdGlvbjogJ2FsbCAxMDBtcydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDUgOiBjb2xvcnMubmV1dHJhbDAsXG4gICAgYm9yZGVyQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogaXNGb2N1c2VkID8gY29sb3JzLnByaW1hcnkgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAxLFxuICAgIGJveFNoYWRvdzogaXNGb2N1c2VkID8gXCIwIDAgMCAxcHggXCIuY29uY2F0KGNvbG9ycy5wcmltYXJ5KSA6IHVuZGVmaW5lZCxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGJvcmRlckNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMucHJpbWFyeSA6IGNvbG9ycy5uZXV0cmFsMzBcbiAgICB9XG4gIH0pO1xufTtcbnZhciBDb250cm9sID0gZnVuY3Rpb24gQ29udHJvbChwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBwcm9wcy5pc0ZvY3VzZWQsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBtZW51SXNPcGVuID0gcHJvcHMubWVudUlzT3BlbjtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnY29udHJvbCcsIHtcbiAgICBjb250cm9sOiB0cnVlLFxuICAgICdjb250cm9sLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJ2NvbnRyb2wtLWlzLWZvY3VzZWQnOiBpc0ZvY3VzZWQsXG4gICAgJ2NvbnRyb2wtLW1lbnUtaXMtb3Blbic6IG1lbnVJc09wZW5cbiAgfSksIGlubmVyUHJvcHMsIHtcbiAgICBcImFyaWEtZGlzYWJsZWRcIjogaXNEaXNhYmxlZCB8fCB1bmRlZmluZWRcbiAgfSksIGNoaWxkcmVuKTtcbn07XG52YXIgQ29udHJvbCQxID0gQ29udHJvbDtcblxudmFyIF9leGNsdWRlZCQxID0gW1wiZGF0YVwiXTtcbnZhciBncm91cENTUyA9IGZ1bmN0aW9uIGdyb3VwQ1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBzcGFjaW5nID0gX3JlZi50aGVtZS5zcGFjaW5nO1xuICByZXR1cm4gdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBwYWRkaW5nQm90dG9tOiBzcGFjaW5nLmJhc2VVbml0ICogMixcbiAgICBwYWRkaW5nVG9wOiBzcGFjaW5nLmJhc2VVbml0ICogMlxuICB9O1xufTtcbnZhciBHcm91cCA9IGZ1bmN0aW9uIEdyb3VwKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGN4ID0gcHJvcHMuY3gsXG4gICAgZ2V0U3R5bGVzID0gcHJvcHMuZ2V0U3R5bGVzLFxuICAgIGdldENsYXNzTmFtZXMgPSBwcm9wcy5nZXRDbGFzc05hbWVzLFxuICAgIEhlYWRpbmcgPSBwcm9wcy5IZWFkaW5nLFxuICAgIGhlYWRpbmdQcm9wcyA9IHByb3BzLmhlYWRpbmdQcm9wcyxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBsYWJlbCA9IHByb3BzLmxhYmVsLFxuICAgIHRoZW1lID0gcHJvcHMudGhlbWUsXG4gICAgc2VsZWN0UHJvcHMgPSBwcm9wcy5zZWxlY3RQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2dyb3VwJywge1xuICAgIGdyb3VwOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwganN4KEhlYWRpbmcsIF9leHRlbmRzKHt9LCBoZWFkaW5nUHJvcHMsIHtcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHMsXG4gICAgdGhlbWU6IHRoZW1lLFxuICAgIGdldFN0eWxlczogZ2V0U3R5bGVzLFxuICAgIGdldENsYXNzTmFtZXM6IGdldENsYXNzTmFtZXMsXG4gICAgY3g6IGN4XG4gIH0pLCBsYWJlbCksIGpzeChcImRpdlwiLCBudWxsLCBjaGlsZHJlbikpO1xufTtcbnZhciBncm91cEhlYWRpbmdDU1MgPSBmdW5jdGlvbiBncm91cEhlYWRpbmdDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGNvbG9ycyA9IF9yZWYyJHRoZW1lLmNvbG9ycyxcbiAgICBzcGFjaW5nID0gX3JlZjIkdGhlbWUuc3BhY2luZztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnZ3JvdXAnLFxuICAgIGN1cnNvcjogJ2RlZmF1bHQnLFxuICAgIGRpc3BsYXk6ICdibG9jaydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw0MCxcbiAgICBmb250U2l6ZTogJzc1JScsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIG1hcmdpbkJvdHRvbTogJzAuMjVlbScsXG4gICAgcGFkZGluZ0xlZnQ6IHNwYWNpbmcuYmFzZVVuaXQgKiAzLFxuICAgIHBhZGRpbmdSaWdodDogc3BhY2luZy5iYXNlVW5pdCAqIDMsXG4gICAgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZSdcbiAgfSk7XG59O1xudmFyIEdyb3VwSGVhZGluZyA9IGZ1bmN0aW9uIEdyb3VwSGVhZGluZyhwcm9wcykge1xuICB2YXIgX2NsZWFuQ29tbW9uUHJvcHMgPSBjbGVhbkNvbW1vblByb3BzKHByb3BzKTtcbiAgICBfY2xlYW5Db21tb25Qcm9wcy5kYXRhO1xuICAgIHZhciBpbm5lclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9jbGVhbkNvbW1vblByb3BzLCBfZXhjbHVkZWQkMSk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdncm91cEhlYWRpbmcnLCB7XG4gICAgJ2dyb3VwLWhlYWRpbmcnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSk7XG59O1xudmFyIEdyb3VwJDEgPSBHcm91cDtcblxudmFyIF9leGNsdWRlZCA9IFtcImlubmVyUmVmXCIsIFwiaXNEaXNhYmxlZFwiLCBcImlzSGlkZGVuXCIsIFwiaW5wdXRDbGFzc05hbWVcIl07XG52YXIgaW5wdXRDU1MgPSBmdW5jdGlvbiBpbnB1dENTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICB2YWx1ZSA9IF9yZWYudmFsdWUsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgdmlzaWJpbGl0eTogaXNEaXNhYmxlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnLFxuICAgIC8vIGZvcmNlIGNzcyB0byByZWNvbXB1dGUgd2hlbiB2YWx1ZSBjaGFuZ2UgZHVlIHRvIEBlbW90aW9uIGJ1Zy5cbiAgICAvLyBXZSBjYW4gcmVtb3ZlIGl0IHdoZW5ldmVyIHRoZSBidWcgaXMgZml4ZWQuXG4gICAgdHJhbnNmb3JtOiB2YWx1ZSA/ICd0cmFuc2xhdGVaKDApJyA6ICcnXG4gIH0sIGNvbnRhaW5lclN0eWxlKSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBtYXJnaW46IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIHBhZGRpbmdCb3R0b206IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIHBhZGRpbmdUb3A6IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDgwXG4gIH0pO1xufTtcbnZhciBzcGFjaW5nU3R5bGUgPSB7XG4gIGdyaWRBcmVhOiAnMSAvIDInLFxuICBmb250OiAnaW5oZXJpdCcsXG4gIG1pbldpZHRoOiAnMnB4JyxcbiAgYm9yZGVyOiAwLFxuICBtYXJnaW46IDAsXG4gIG91dGxpbmU6IDAsXG4gIHBhZGRpbmc6IDBcbn07XG52YXIgY29udGFpbmVyU3R5bGUgPSB7XG4gIGZsZXg6ICcxIDEgYXV0bycsXG4gIGRpc3BsYXk6ICdpbmxpbmUtZ3JpZCcsXG4gIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICcwIG1pbi1jb250ZW50JyxcbiAgJyY6YWZ0ZXInOiBfb2JqZWN0U3ByZWFkKHtcbiAgICBjb250ZW50OiAnYXR0cihkYXRhLXZhbHVlKSBcIiBcIicsXG4gICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgd2hpdGVTcGFjZTogJ3ByZSdcbiAgfSwgc3BhY2luZ1N0eWxlKVxufTtcbnZhciBpbnB1dFN0eWxlID0gZnVuY3Rpb24gaW5wdXRTdHlsZShpc0hpZGRlbikge1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbnB1dCcsXG4gICAgY29sb3I6ICdpbmhlcml0JyxcbiAgICBiYWNrZ3JvdW5kOiAwLFxuICAgIG9wYWNpdHk6IGlzSGlkZGVuID8gMCA6IDEsXG4gICAgd2lkdGg6ICcxMDAlJ1xuICB9LCBzcGFjaW5nU3R5bGUpO1xufTtcbnZhciBJbnB1dCA9IGZ1bmN0aW9uIElucHV0KHByb3BzKSB7XG4gIHZhciBjeCA9IHByb3BzLmN4LFxuICAgIHZhbHVlID0gcHJvcHMudmFsdWU7XG4gIHZhciBfY2xlYW5Db21tb25Qcm9wcyA9IGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpLFxuICAgIGlubmVyUmVmID0gX2NsZWFuQ29tbW9uUHJvcHMuaW5uZXJSZWYsXG4gICAgaXNEaXNhYmxlZCA9IF9jbGVhbkNvbW1vblByb3BzLmlzRGlzYWJsZWQsXG4gICAgaXNIaWRkZW4gPSBfY2xlYW5Db21tb25Qcm9wcy5pc0hpZGRlbixcbiAgICBpbnB1dENsYXNzTmFtZSA9IF9jbGVhbkNvbW1vblByb3BzLmlucHV0Q2xhc3NOYW1lLFxuICAgIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX2NsZWFuQ29tbW9uUHJvcHMsIF9leGNsdWRlZCk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbnB1dCcsIHtcbiAgICAnaW5wdXQtY29udGFpbmVyJzogdHJ1ZVxuICB9KSwge1xuICAgIFwiZGF0YS12YWx1ZVwiOiB2YWx1ZSB8fCAnJ1xuICB9KSwganN4KFwiaW5wdXRcIiwgX2V4dGVuZHMoe1xuICAgIGNsYXNzTmFtZTogY3goe1xuICAgICAgaW5wdXQ6IHRydWVcbiAgICB9LCBpbnB1dENsYXNzTmFtZSksXG4gICAgcmVmOiBpbm5lclJlZixcbiAgICBzdHlsZTogaW5wdXRTdHlsZShpc0hpZGRlbiksXG4gICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgfSwgaW5uZXJQcm9wcykpKTtcbn07XG52YXIgSW5wdXQkMSA9IElucHV0O1xuXG52YXIgbXVsdGlWYWx1ZUNTUyA9IGZ1bmN0aW9uIG11bHRpVmFsdWVDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ211bHRpVmFsdWUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBtaW5XaWR0aDogMFxuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLm5ldXRyYWwxMCxcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgbWFyZ2luOiBzcGFjaW5nLmJhc2VVbml0IC8gMlxuICB9KTtcbn07XG52YXIgbXVsdGlWYWx1ZUxhYmVsQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZUxhYmVsQ1NTKF9yZWYyLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjIkdGhlbWUgPSBfcmVmMi50aGVtZSxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmMiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZjIkdGhlbWUuY29sb3JzLFxuICAgIGNyb3BXaXRoRWxsaXBzaXMgPSBfcmVmMi5jcm9wV2l0aEVsbGlwc2lzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogY3JvcFdpdGhFbGxpcHNpcyB8fCBjcm9wV2l0aEVsbGlwc2lzID09PSB1bmRlZmluZWQgPyAnZWxsaXBzaXMnIDogdW5kZWZpbmVkLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMgLyAyLFxuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDgwLFxuICAgIGZvbnRTaXplOiAnODUlJyxcbiAgICBwYWRkaW5nOiAzLFxuICAgIHBhZGRpbmdMZWZ0OiA2XG4gIH0pO1xufTtcbnZhciBtdWx0aVZhbHVlUmVtb3ZlQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZVJlbW92ZUNTUyhfcmVmMywgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYzJHRoZW1lID0gX3JlZjMudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYzJHRoZW1lLnNwYWNpbmcsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZjMkdGhlbWUuYm9yZGVyUmFkaXVzLFxuICAgIGNvbG9ycyA9IF9yZWYzJHRoZW1lLmNvbG9ycyxcbiAgICBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQ7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMuZGFuZ2VyTGlnaHQgOiB1bmRlZmluZWQsXG4gICAgcGFkZGluZ0xlZnQ6IHNwYWNpbmcuYmFzZVVuaXQsXG4gICAgcGFkZGluZ1JpZ2h0OiBzcGFjaW5nLmJhc2VVbml0LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5kYW5nZXJMaWdodCxcbiAgICAgIGNvbG9yOiBjb2xvcnMuZGFuZ2VyXG4gICAgfVxuICB9KTtcbn07XG52YXIgTXVsdGlWYWx1ZUdlbmVyaWMgPSBmdW5jdGlvbiBNdWx0aVZhbHVlR2VuZXJpYyhfcmVmNCkge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmNC5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjQuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBpbm5lclByb3BzLCBjaGlsZHJlbik7XG59O1xudmFyIE11bHRpVmFsdWVDb250YWluZXIgPSBNdWx0aVZhbHVlR2VuZXJpYztcbnZhciBNdWx0aVZhbHVlTGFiZWwgPSBNdWx0aVZhbHVlR2VuZXJpYztcbmZ1bmN0aW9uIE11bHRpVmFsdWVSZW1vdmUoX3JlZjUpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZjUuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY1LmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgIHJvbGU6IFwiYnV0dG9uXCJcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuIHx8IGpzeChDcm9zc0ljb24sIHtcbiAgICBzaXplOiAxNFxuICB9KSk7XG59XG52YXIgTXVsdGlWYWx1ZSA9IGZ1bmN0aW9uIE11bHRpVmFsdWUocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY29tcG9uZW50cyA9IHByb3BzLmNvbXBvbmVudHMsXG4gICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgcmVtb3ZlUHJvcHMgPSBwcm9wcy5yZW1vdmVQcm9wcyxcbiAgICBzZWxlY3RQcm9wcyA9IHByb3BzLnNlbGVjdFByb3BzO1xuICB2YXIgQ29udGFpbmVyID0gY29tcG9uZW50cy5Db250YWluZXIsXG4gICAgTGFiZWwgPSBjb21wb25lbnRzLkxhYmVsLFxuICAgIFJlbW92ZSA9IGNvbXBvbmVudHMuUmVtb3ZlO1xuICByZXR1cm4ganN4KENvbnRhaW5lciwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZScsIHtcbiAgICAgICdtdWx0aS12YWx1ZSc6IHRydWUsXG4gICAgICAnbXVsdGktdmFsdWUtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZFxuICAgIH0pKSwgaW5uZXJQcm9wcyksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0sIGpzeChMYWJlbCwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZCh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ211bHRpVmFsdWVMYWJlbCcsIHtcbiAgICAgICdtdWx0aS12YWx1ZV9fbGFiZWwnOiB0cnVlXG4gICAgfSkpLFxuICAgIHNlbGVjdFByb3BzOiBzZWxlY3RQcm9wc1xuICB9LCBjaGlsZHJlbiksIGpzeChSZW1vdmUsIHtcbiAgICBkYXRhOiBkYXRhLFxuICAgIGlubmVyUHJvcHM6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ211bHRpVmFsdWVSZW1vdmUnLCB7XG4gICAgICAnbXVsdGktdmFsdWVfX3JlbW92ZSc6IHRydWVcbiAgICB9KSksIHt9LCB7XG4gICAgICAnYXJpYS1sYWJlbCc6IFwiUmVtb3ZlIFwiLmNvbmNhdChjaGlsZHJlbiB8fCAnb3B0aW9uJylcbiAgICB9LCByZW1vdmVQcm9wcyksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0pKTtcbn07XG52YXIgTXVsdGlWYWx1ZSQxID0gTXVsdGlWYWx1ZTtcblxudmFyIG9wdGlvbkNTUyA9IGZ1bmN0aW9uIG9wdGlvbkNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBfcmVmLmlzRm9jdXNlZCxcbiAgICBpc1NlbGVjdGVkID0gX3JlZi5pc1NlbGVjdGVkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ29wdGlvbicsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIFdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOiAncmdiYSgwLCAwLCAwLCAwKSdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBjb2xvcnMucHJpbWFyeSA6IGlzRm9jdXNlZCA/IGNvbG9ycy5wcmltYXJ5MjUgOiAndHJhbnNwYXJlbnQnLFxuICAgIGNvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwyMCA6IGlzU2VsZWN0ZWQgPyBjb2xvcnMubmV1dHJhbDAgOiAnaW5oZXJpdCcsXG4gICAgcGFkZGluZzogXCJcIi5jb25jYXQoc3BhY2luZy5iYXNlVW5pdCAqIDIsIFwicHggXCIpLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMywgXCJweFwiKSxcbiAgICAvLyBwcm92aWRlIHNvbWUgYWZmb3JkYW5jZSBvbiB0b3VjaCBkZXZpY2VzXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICFpc0Rpc2FibGVkID8gaXNTZWxlY3RlZCA/IGNvbG9ycy5wcmltYXJ5IDogY29sb3JzLnByaW1hcnk1MCA6IHVuZGVmaW5lZFxuICAgIH1cbiAgfSk7XG59O1xudmFyIE9wdGlvbiA9IGZ1bmN0aW9uIE9wdGlvbihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0ZvY3VzZWQgPSBwcm9wcy5pc0ZvY3VzZWQsXG4gICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ29wdGlvbicsIHtcbiAgICBvcHRpb246IHRydWUsXG4gICAgJ29wdGlvbi0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkLFxuICAgICdvcHRpb24tLWlzLWZvY3VzZWQnOiBpc0ZvY3VzZWQsXG4gICAgJ29wdGlvbi0taXMtc2VsZWN0ZWQnOiBpc1NlbGVjdGVkXG4gIH0pLCB7XG4gICAgcmVmOiBpbm5lclJlZixcbiAgICBcImFyaWEtZGlzYWJsZWRcIjogaXNEaXNhYmxlZFxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBPcHRpb24kMSA9IE9wdGlvbjtcblxudmFyIHBsYWNlaG9sZGVyQ1NTID0gZnVuY3Rpb24gcGxhY2Vob2xkZXJDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ3BsYWNlaG9sZGVyJyxcbiAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsNTAsXG4gICAgbWFyZ2luTGVmdDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgbWFyZ2luUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBQbGFjZWhvbGRlciA9IGZ1bmN0aW9uIFBsYWNlaG9sZGVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAncGxhY2Vob2xkZXInLCB7XG4gICAgcGxhY2Vob2xkZXI6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIFBsYWNlaG9sZGVyJDEgPSBQbGFjZWhvbGRlcjtcblxudmFyIGNzcyA9IGZ1bmN0aW9uIGNzcyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9yZWYuaXNEaXNhYmxlZCxcbiAgICBfcmVmJHRoZW1lID0gX3JlZi50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdzaW5nbGVWYWx1ZScsXG4gICAgZ3JpZEFyZWE6ICcxIC8gMSAvIDIgLyAzJyxcbiAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsNDAgOiBjb2xvcnMubmV1dHJhbDgwLFxuICAgIG1hcmdpbkxlZnQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyLFxuICAgIG1hcmdpblJpZ2h0OiBzcGFjaW5nLmJhc2VVbml0IC8gMlxuICB9KTtcbn07XG52YXIgU2luZ2xlVmFsdWUgPSBmdW5jdGlvbiBTaW5nbGVWYWx1ZShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ3NpbmdsZVZhbHVlJywge1xuICAgICdzaW5nbGUtdmFsdWUnOiB0cnVlLFxuICAgICdzaW5nbGUtdmFsdWUtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZFxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgU2luZ2xlVmFsdWUkMSA9IFNpbmdsZVZhbHVlO1xuXG52YXIgY29tcG9uZW50cyA9IHtcbiAgQ2xlYXJJbmRpY2F0b3I6IENsZWFySW5kaWNhdG9yLFxuICBDb250cm9sOiBDb250cm9sJDEsXG4gIERyb3Bkb3duSW5kaWNhdG9yOiBEcm9wZG93bkluZGljYXRvcixcbiAgRG93bkNoZXZyb246IERvd25DaGV2cm9uLFxuICBDcm9zc0ljb246IENyb3NzSWNvbixcbiAgR3JvdXA6IEdyb3VwJDEsXG4gIEdyb3VwSGVhZGluZzogR3JvdXBIZWFkaW5nLFxuICBJbmRpY2F0b3JzQ29udGFpbmVyOiBJbmRpY2F0b3JzQ29udGFpbmVyLFxuICBJbmRpY2F0b3JTZXBhcmF0b3I6IEluZGljYXRvclNlcGFyYXRvcixcbiAgSW5wdXQ6IElucHV0JDEsXG4gIExvYWRpbmdJbmRpY2F0b3I6IExvYWRpbmdJbmRpY2F0b3IsXG4gIE1lbnU6IE1lbnUkMSxcbiAgTWVudUxpc3Q6IE1lbnVMaXN0LFxuICBNZW51UG9ydGFsOiBNZW51UG9ydGFsLFxuICBMb2FkaW5nTWVzc2FnZTogTG9hZGluZ01lc3NhZ2UsXG4gIE5vT3B0aW9uc01lc3NhZ2U6IE5vT3B0aW9uc01lc3NhZ2UsXG4gIE11bHRpVmFsdWU6IE11bHRpVmFsdWUkMSxcbiAgTXVsdGlWYWx1ZUNvbnRhaW5lcjogTXVsdGlWYWx1ZUNvbnRhaW5lcixcbiAgTXVsdGlWYWx1ZUxhYmVsOiBNdWx0aVZhbHVlTGFiZWwsXG4gIE11bHRpVmFsdWVSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmUsXG4gIE9wdGlvbjogT3B0aW9uJDEsXG4gIFBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlciQxLFxuICBTZWxlY3RDb250YWluZXI6IFNlbGVjdENvbnRhaW5lcixcbiAgU2luZ2xlVmFsdWU6IFNpbmdsZVZhbHVlJDEsXG4gIFZhbHVlQ29udGFpbmVyOiBWYWx1ZUNvbnRhaW5lclxufTtcbnZhciBkZWZhdWx0Q29tcG9uZW50cyA9IGZ1bmN0aW9uIGRlZmF1bHRDb21wb25lbnRzKHByb3BzKSB7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNvbXBvbmVudHMpLCBwcm9wcy5jb21wb25lbnRzKTtcbn07XG5cbmV4cG9ydCB7IGlzTW9iaWxlRGV2aWNlIGFzIEEsIG11bHRpVmFsdWVBc1ZhbHVlIGFzIEIsIHNpbmdsZVZhbHVlQXNWYWx1ZSBhcyBDLCB2YWx1ZVRlcm5hcnkgYXMgRCwgY2xhc3NOYW1lcyBhcyBFLCBkZWZhdWx0Q29tcG9uZW50cyBhcyBGLCBpc0RvY3VtZW50RWxlbWVudCBhcyBHLCBjbGVhblZhbHVlIGFzIEgsIHNjcm9sbEludG9WaWV3IGFzIEksIG5vb3AgYXMgSiwgbm90TnVsbGlzaCBhcyBLLCBoYW5kbGVJbnB1dENoYW5nZSBhcyBMLCBNZW51UGxhY2VyIGFzIE0sIGNsZWFySW5kaWNhdG9yQ1NTIGFzIGEsIGNvbnRhaW5lckNTUyBhcyBiLCBjb21wb25lbnRzIGFzIGMsIGNzcyQxIGFzIGQsIGRyb3Bkb3duSW5kaWNhdG9yQ1NTIGFzIGUsIGdyb3VwSGVhZGluZ0NTUyBhcyBmLCBncm91cENTUyBhcyBnLCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgYXMgaCwgaW5kaWNhdG9yc0NvbnRhaW5lckNTUyBhcyBpLCBpbnB1dENTUyBhcyBqLCBsb2FkaW5nTWVzc2FnZUNTUyBhcyBrLCBsb2FkaW5nSW5kaWNhdG9yQ1NTIGFzIGwsIG1lbnVDU1MgYXMgbSwgbWVudUxpc3RDU1MgYXMgbiwgbWVudVBvcnRhbENTUyBhcyBvLCBtdWx0aVZhbHVlQ1NTIGFzIHAsIG11bHRpVmFsdWVMYWJlbENTUyBhcyBxLCByZW1vdmVQcm9wcyBhcyByLCBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgYXMgcywgbXVsdGlWYWx1ZVJlbW92ZUNTUyBhcyB0LCBub09wdGlvbnNNZXNzYWdlQ1NTIGFzIHUsIG9wdGlvbkNTUyBhcyB2LCBwbGFjZWhvbGRlckNTUyBhcyB3LCBjc3MgYXMgeCwgdmFsdWVDb250YWluZXJDU1MgYXMgeSwgaXNUb3VjaENhcGFibGUgYXMgeiB9O1xuIiwgInZhciBzYWZlSXNOYU4gPSBOdW1iZXIuaXNOYU4gfHxcbiAgICBmdW5jdGlvbiBwb255ZmlsbCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPT0gdmFsdWU7XG4gICAgfTtcbmZ1bmN0aW9uIGlzRXF1YWwoZmlyc3QsIHNlY29uZCkge1xuICAgIGlmIChmaXJzdCA9PT0gc2Vjb25kKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc2FmZUlzTmFOKGZpcnN0KSAmJiBzYWZlSXNOYU4oc2Vjb25kKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gYXJlSW5wdXRzRXF1YWwobmV3SW5wdXRzLCBsYXN0SW5wdXRzKSB7XG4gICAgaWYgKG5ld0lucHV0cy5sZW5ndGggIT09IGxhc3RJbnB1dHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdJbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFpc0VxdWFsKG5ld0lucHV0c1tpXSwgbGFzdElucHV0c1tpXSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gbWVtb2l6ZU9uZShyZXN1bHRGbiwgaXNFcXVhbCkge1xuICAgIGlmIChpc0VxdWFsID09PSB2b2lkIDApIHsgaXNFcXVhbCA9IGFyZUlucHV0c0VxdWFsOyB9XG4gICAgdmFyIGNhY2hlID0gbnVsbDtcbiAgICBmdW5jdGlvbiBtZW1vaXplZCgpIHtcbiAgICAgICAgdmFyIG5ld0FyZ3MgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIG5ld0FyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FjaGUgJiYgY2FjaGUubGFzdFRoaXMgPT09IHRoaXMgJiYgaXNFcXVhbChuZXdBcmdzLCBjYWNoZS5sYXN0QXJncykpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWNoZS5sYXN0UmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBsYXN0UmVzdWx0ID0gcmVzdWx0Rm4uYXBwbHkodGhpcywgbmV3QXJncyk7XG4gICAgICAgIGNhY2hlID0ge1xuICAgICAgICAgICAgbGFzdFJlc3VsdDogbGFzdFJlc3VsdCxcbiAgICAgICAgICAgIGxhc3RBcmdzOiBuZXdBcmdzLFxuICAgICAgICAgICAgbGFzdFRoaXM6IHRoaXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBsYXN0UmVzdWx0O1xuICAgIH1cbiAgICBtZW1vaXplZC5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgICBjYWNoZSA9IG51bGw7XG4gICAgfTtcbiAgICByZXR1cm4gbWVtb2l6ZWQ7XG59XG5cbmV4cG9ydCB7IG1lbW9pemVPbmUgYXMgZGVmYXVsdCB9O1xuIiwgImltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlcic7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8sIEZyYWdtZW50LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHIgYXMgcmVtb3ZlUHJvcHMsIHMgYXMgc3VwcG9ydHNQYXNzaXZlRXZlbnRzLCBhIGFzIGNsZWFySW5kaWNhdG9yQ1NTLCBiIGFzIGNvbnRhaW5lckNTUywgZCBhcyBjc3MkMSwgZSBhcyBkcm9wZG93bkluZGljYXRvckNTUywgZyBhcyBncm91cENTUywgZiBhcyBncm91cEhlYWRpbmdDU1MsIGkgYXMgaW5kaWNhdG9yc0NvbnRhaW5lckNTUywgaCBhcyBpbmRpY2F0b3JTZXBhcmF0b3JDU1MsIGogYXMgaW5wdXRDU1MsIGwgYXMgbG9hZGluZ0luZGljYXRvckNTUywgayBhcyBsb2FkaW5nTWVzc2FnZUNTUywgbSBhcyBtZW51Q1NTLCBuIGFzIG1lbnVMaXN0Q1NTLCBvIGFzIG1lbnVQb3J0YWxDU1MsIHAgYXMgbXVsdGlWYWx1ZUNTUywgcSBhcyBtdWx0aVZhbHVlTGFiZWxDU1MsIHQgYXMgbXVsdGlWYWx1ZVJlbW92ZUNTUywgdSBhcyBub09wdGlvbnNNZXNzYWdlQ1NTLCB2IGFzIG9wdGlvbkNTUywgdyBhcyBwbGFjZWhvbGRlckNTUywgeCBhcyBjc3MkMiwgeSBhcyB2YWx1ZUNvbnRhaW5lckNTUywgeiBhcyBpc1RvdWNoQ2FwYWJsZSwgQSBhcyBpc01vYmlsZURldmljZSwgQiBhcyBtdWx0aVZhbHVlQXNWYWx1ZSwgQyBhcyBzaW5nbGVWYWx1ZUFzVmFsdWUsIEQgYXMgdmFsdWVUZXJuYXJ5LCBFIGFzIGNsYXNzTmFtZXMsIEYgYXMgZGVmYXVsdENvbXBvbmVudHMsIEcgYXMgaXNEb2N1bWVudEVsZW1lbnQsIEggYXMgY2xlYW5WYWx1ZSwgSSBhcyBzY3JvbGxJbnRvVmlldywgSiBhcyBub29wLCBNIGFzIE1lbnVQbGFjZXIsIEsgYXMgbm90TnVsbGlzaCB9IGZyb20gJy4vaW5kZXgtYTMwMWY1MjYuZXNtLmpzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemVPbmUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDIoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbnZhciBfcmVmID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjdwZzBjai1hMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwXCJcbn0gOiB7XG4gIG5hbWU6IFwiMWY0M2F2ei1hMTF5VGV4dC1BMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwO2xhYmVsOkExMXlUZXh0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtFeE1YbFVaWGgwTG5SemVDSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRk5TU0lzSW1acGJHVWlPaUpCTVRGNVZHVjRkQzUwYzNnaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaW9nUUdwemVDQnFjM2dnS2k5Y2JtbHRjRzl5ZENCN0lHcHplQ0I5SUdaeWIyMGdKMEJsYlc5MGFXOXVMM0psWVdOMEp6dGNibHh1THk4Z1FYTnphWE4wYVhabElIUmxlSFFnZEc4Z1pHVnpZM0pwWW1VZ2RtbHpkV0ZzSUdWc1pXMWxiblJ6TGlCSWFXUmtaVzRnWm05eUlITnBaMmgwWldRZ2RYTmxjbk11WEc1amIyNXpkQ0JCTVRGNVZHVjRkQ0E5SUNod2NtOXdjem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwcElEMCtJQ2hjYmlBZ1BITndZVzVjYmlBZ0lDQmpjM005ZTN0Y2JpQWdJQ0FnSUd4aFltVnNPaUFuWVRFeGVWUmxlSFFuTEZ4dUlDQWdJQ0FnZWtsdVpHVjRPaUE1T1RrNUxGeHVJQ0FnSUNBZ1ltOXlaR1Z5T2lBd0xGeHVJQ0FnSUNBZ1kyeHBjRG9nSjNKbFkzUW9NWEI0TENBeGNIZ3NJREZ3ZUN3Z01YQjRLU2NzWEc0Z0lDQWdJQ0JvWldsbmFIUTZJREVzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dNU3hjYmlBZ0lDQWdJSEJ2YzJsMGFXOXVPaUFuWVdKemIyeDFkR1VuTEZ4dUlDQWdJQ0FnYjNabGNtWnNiM2M2SUNkb2FXUmtaVzRuTEZ4dUlDQWdJQ0FnY0dGa1pHbHVaem9nTUN4Y2JpQWdJQ0FnSUhkb2FYUmxVM0JoWTJVNklDZHViM2R5WVhBbkxGeHVJQ0FnSUgxOVhHNGdJQ0FnZXk0dUxuQnliM0J6ZlZ4dUlDQXZQbHh1S1R0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1FURXhlVlJsZUhRN1hHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQyXG59O1xudmFyIEExMXlUZXh0ID0gZnVuY3Rpb24gQTExeVRleHQocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe1xuICAgIGNzczogX3JlZlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBBMTF5VGV4dCQxID0gQTExeVRleHQ7XG5cbnZhciBkZWZhdWx0QXJpYUxpdmVNZXNzYWdlcyA9IHtcbiAgZ3VpZGFuY2U6IGZ1bmN0aW9uIGd1aWRhbmNlKHByb3BzKSB7XG4gICAgdmFyIGlzU2VhcmNoYWJsZSA9IHByb3BzLmlzU2VhcmNoYWJsZSxcbiAgICAgIGlzTXVsdGkgPSBwcm9wcy5pc011bHRpLFxuICAgICAgdGFiU2VsZWN0c1ZhbHVlID0gcHJvcHMudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgY29udGV4dCA9IHByb3BzLmNvbnRleHQsXG4gICAgICBpc0luaXRpYWxGb2N1cyA9IHByb3BzLmlzSW5pdGlhbEZvY3VzO1xuICAgIHN3aXRjaCAoY29udGV4dCkge1xuICAgICAgY2FzZSAnbWVudSc6XG4gICAgICAgIHJldHVybiBcIlVzZSBVcCBhbmQgRG93biB0byBjaG9vc2Ugb3B0aW9ucywgcHJlc3MgRW50ZXIgdG8gc2VsZWN0IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBvcHRpb24sIHByZXNzIEVzY2FwZSB0byBleGl0IHRoZSBtZW51XCIuY29uY2F0KHRhYlNlbGVjdHNWYWx1ZSA/ICcsIHByZXNzIFRhYiB0byBzZWxlY3QgdGhlIG9wdGlvbiBhbmQgZXhpdCB0aGUgbWVudScgOiAnJywgXCIuXCIpO1xuICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICByZXR1cm4gaXNJbml0aWFsRm9jdXMgPyBcIlwiLmNvbmNhdChwcm9wc1snYXJpYS1sYWJlbCddIHx8ICdTZWxlY3QnLCBcIiBpcyBmb2N1c2VkIFwiKS5jb25jYXQoaXNTZWFyY2hhYmxlID8gJyx0eXBlIHRvIHJlZmluZSBsaXN0JyA6ICcnLCBcIiwgcHJlc3MgRG93biB0byBvcGVuIHRoZSBtZW51LCBcIikuY29uY2F0KGlzTXVsdGkgPyAnIHByZXNzIGxlZnQgdG8gZm9jdXMgc2VsZWN0ZWQgdmFsdWVzJyA6ICcnKSA6ICcnO1xuICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICByZXR1cm4gJ1VzZSBsZWZ0IGFuZCByaWdodCB0byB0b2dnbGUgYmV0d2VlbiBmb2N1c2VkIHZhbHVlcywgcHJlc3MgQmFja3NwYWNlIHRvIHJlbW92ZSB0aGUgY3VycmVudGx5IGZvY3VzZWQgdmFsdWUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcbiAgb25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKHByb3BzKSB7XG4gICAgdmFyIGFjdGlvbiA9IHByb3BzLmFjdGlvbixcbiAgICAgIF9wcm9wcyRsYWJlbCA9IHByb3BzLmxhYmVsLFxuICAgICAgbGFiZWwgPSBfcHJvcHMkbGFiZWwgPT09IHZvaWQgMCA/ICcnIDogX3Byb3BzJGxhYmVsLFxuICAgICAgbGFiZWxzID0gcHJvcHMubGFiZWxzLFxuICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQ7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2Rlc2VsZWN0LW9wdGlvbic6XG4gICAgICBjYXNlICdwb3AtdmFsdWUnOlxuICAgICAgY2FzZSAncmVtb3ZlLXZhbHVlJzpcbiAgICAgICAgcmV0dXJuIFwib3B0aW9uIFwiLmNvbmNhdChsYWJlbCwgXCIsIGRlc2VsZWN0ZWQuXCIpO1xuICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICByZXR1cm4gJ0FsbCBzZWxlY3RlZCBvcHRpb25zIGhhdmUgYmVlbiBjbGVhcmVkLic7XG4gICAgICBjYXNlICdpbml0aWFsLWlucHV0LWZvY3VzJzpcbiAgICAgICAgcmV0dXJuIFwib3B0aW9uXCIuY29uY2F0KGxhYmVscy5sZW5ndGggPiAxID8gJ3MnIDogJycsIFwiIFwiKS5jb25jYXQobGFiZWxzLmpvaW4oJywnKSwgXCIsIHNlbGVjdGVkLlwiKTtcbiAgICAgIGNhc2UgJ3NlbGVjdC1vcHRpb24nOlxuICAgICAgICByZXR1cm4gaXNEaXNhYmxlZCA/IFwib3B0aW9uIFwiLmNvbmNhdChsYWJlbCwgXCIgaXMgZGlzYWJsZWQuIFNlbGVjdCBhbm90aGVyIG9wdGlvbi5cIikgOiBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiLCBzZWxlY3RlZC5cIik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9LFxuICBvbkZvY3VzOiBmdW5jdGlvbiBvbkZvY3VzKHByb3BzKSB7XG4gICAgdmFyIGNvbnRleHQgPSBwcm9wcy5jb250ZXh0LFxuICAgICAgZm9jdXNlZCA9IHByb3BzLmZvY3VzZWQsXG4gICAgICBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgIF9wcm9wcyRsYWJlbDIgPSBwcm9wcy5sYWJlbCxcbiAgICAgIGxhYmVsID0gX3Byb3BzJGxhYmVsMiA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkbGFiZWwyLFxuICAgICAgc2VsZWN0VmFsdWUgPSBwcm9wcy5zZWxlY3RWYWx1ZSxcbiAgICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICBpc0FwcGxlRGV2aWNlID0gcHJvcHMuaXNBcHBsZURldmljZTtcbiAgICB2YXIgZ2V0QXJyYXlJbmRleCA9IGZ1bmN0aW9uIGdldEFycmF5SW5kZXgoYXJyLCBpdGVtKSB7XG4gICAgICByZXR1cm4gYXJyICYmIGFyci5sZW5ndGggPyBcIlwiLmNvbmNhdChhcnIuaW5kZXhPZihpdGVtKSArIDEsIFwiIG9mIFwiKS5jb25jYXQoYXJyLmxlbmd0aCkgOiAnJztcbiAgICB9O1xuICAgIGlmIChjb250ZXh0ID09PSAndmFsdWUnICYmIHNlbGVjdFZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJ2YWx1ZSBcIi5jb25jYXQobGFiZWwsIFwiIGZvY3VzZWQsIFwiKS5jb25jYXQoZ2V0QXJyYXlJbmRleChzZWxlY3RWYWx1ZSwgZm9jdXNlZCksIFwiLlwiKTtcbiAgICB9XG4gICAgaWYgKGNvbnRleHQgPT09ICdtZW51JyAmJiBpc0FwcGxlRGV2aWNlKSB7XG4gICAgICB2YXIgZGlzYWJsZWQgPSBpc0Rpc2FibGVkID8gJyBkaXNhYmxlZCcgOiAnJztcbiAgICAgIHZhciBzdGF0dXMgPSBcIlwiLmNvbmNhdChpc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJykuY29uY2F0KGRpc2FibGVkKTtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdChsYWJlbCkuY29uY2F0KHN0YXR1cywgXCIsIFwiKS5jb25jYXQoZ2V0QXJyYXlJbmRleChvcHRpb25zLCBmb2N1c2VkKSwgXCIuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0sXG4gIG9uRmlsdGVyOiBmdW5jdGlvbiBvbkZpbHRlcihwcm9wcykge1xuICAgIHZhciBpbnB1dFZhbHVlID0gcHJvcHMuaW5wdXRWYWx1ZSxcbiAgICAgIHJlc3VsdHNNZXNzYWdlID0gcHJvcHMucmVzdWx0c01lc3NhZ2U7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KHJlc3VsdHNNZXNzYWdlKS5jb25jYXQoaW5wdXRWYWx1ZSA/ICcgZm9yIHNlYXJjaCB0ZXJtICcgKyBpbnB1dFZhbHVlIDogJycsIFwiLlwiKTtcbiAgfVxufTtcblxudmFyIExpdmVSZWdpb24gPSBmdW5jdGlvbiBMaXZlUmVnaW9uKHByb3BzKSB7XG4gIHZhciBhcmlhU2VsZWN0aW9uID0gcHJvcHMuYXJpYVNlbGVjdGlvbixcbiAgICBmb2N1c2VkT3B0aW9uID0gcHJvcHMuZm9jdXNlZE9wdGlvbixcbiAgICBmb2N1c2VkVmFsdWUgPSBwcm9wcy5mb2N1c2VkVmFsdWUsXG4gICAgZm9jdXNhYmxlT3B0aW9ucyA9IHByb3BzLmZvY3VzYWJsZU9wdGlvbnMsXG4gICAgaXNGb2N1c2VkID0gcHJvcHMuaXNGb2N1c2VkLFxuICAgIHNlbGVjdFZhbHVlID0gcHJvcHMuc2VsZWN0VmFsdWUsXG4gICAgc2VsZWN0UHJvcHMgPSBwcm9wcy5zZWxlY3RQcm9wcyxcbiAgICBpZCA9IHByb3BzLmlkLFxuICAgIGlzQXBwbGVEZXZpY2UgPSBwcm9wcy5pc0FwcGxlRGV2aWNlO1xuICB2YXIgYXJpYUxpdmVNZXNzYWdlcyA9IHNlbGVjdFByb3BzLmFyaWFMaXZlTWVzc2FnZXMsXG4gICAgZ2V0T3B0aW9uTGFiZWwgPSBzZWxlY3RQcm9wcy5nZXRPcHRpb25MYWJlbCxcbiAgICBpbnB1dFZhbHVlID0gc2VsZWN0UHJvcHMuaW5wdXRWYWx1ZSxcbiAgICBpc011bHRpID0gc2VsZWN0UHJvcHMuaXNNdWx0aSxcbiAgICBpc09wdGlvbkRpc2FibGVkID0gc2VsZWN0UHJvcHMuaXNPcHRpb25EaXNhYmxlZCxcbiAgICBpc1NlYXJjaGFibGUgPSBzZWxlY3RQcm9wcy5pc1NlYXJjaGFibGUsXG4gICAgbWVudUlzT3BlbiA9IHNlbGVjdFByb3BzLm1lbnVJc09wZW4sXG4gICAgb3B0aW9ucyA9IHNlbGVjdFByb3BzLm9wdGlvbnMsXG4gICAgc2NyZWVuUmVhZGVyU3RhdHVzID0gc2VsZWN0UHJvcHMuc2NyZWVuUmVhZGVyU3RhdHVzLFxuICAgIHRhYlNlbGVjdHNWYWx1ZSA9IHNlbGVjdFByb3BzLnRhYlNlbGVjdHNWYWx1ZSxcbiAgICBpc0xvYWRpbmcgPSBzZWxlY3RQcm9wcy5pc0xvYWRpbmc7XG4gIHZhciBhcmlhTGFiZWwgPSBzZWxlY3RQcm9wc1snYXJpYS1sYWJlbCddO1xuICB2YXIgYXJpYUxpdmUgPSBzZWxlY3RQcm9wc1snYXJpYS1saXZlJ107XG5cbiAgLy8gVXBkYXRlIGFyaWEgbGl2ZSBtZXNzYWdlIGNvbmZpZ3VyYXRpb24gd2hlbiBwcm9wIGNoYW5nZXNcbiAgdmFyIG1lc3NhZ2VzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGVmYXVsdEFyaWFMaXZlTWVzc2FnZXMpLCBhcmlhTGl2ZU1lc3NhZ2VzIHx8IHt9KTtcbiAgfSwgW2FyaWFMaXZlTWVzc2FnZXNdKTtcblxuICAvLyBVcGRhdGUgYXJpYSBsaXZlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIHByb3AgY2hhbmdlc1xuICB2YXIgYXJpYVNlbGVjdGVkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnJztcbiAgICBpZiAoYXJpYVNlbGVjdGlvbiAmJiBtZXNzYWdlcy5vbkNoYW5nZSkge1xuICAgICAgdmFyIG9wdGlvbiA9IGFyaWFTZWxlY3Rpb24ub3B0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMgPSBhcmlhU2VsZWN0aW9uLm9wdGlvbnMsXG4gICAgICAgIHJlbW92ZWRWYWx1ZSA9IGFyaWFTZWxlY3Rpb24ucmVtb3ZlZFZhbHVlLFxuICAgICAgICByZW1vdmVkVmFsdWVzID0gYXJpYVNlbGVjdGlvbi5yZW1vdmVkVmFsdWVzLFxuICAgICAgICB2YWx1ZSA9IGFyaWFTZWxlY3Rpb24udmFsdWU7XG4gICAgICAvLyBzZWxlY3Qtb3B0aW9uIHdoZW4gIWlzTXVsdGkgZG9lcyBub3QgcmV0dXJuIG9wdGlvbiBzbyB3ZSBhc3N1bWUgc2VsZWN0ZWQgb3B0aW9uIGlzIHZhbHVlXG4gICAgICB2YXIgYXNPcHRpb24gPSBmdW5jdGlvbiBhc09wdGlvbih2YWwpIHtcbiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwgOiBudWxsO1xuICAgICAgfTtcblxuICAgICAgLy8gSWYgdGhlcmUgaXMganVzdCBvbmUgaXRlbSBmcm9tIHRoZSBhY3Rpb24gdGhlbiBnZXQgaXRzIGxhYmVsXG4gICAgICB2YXIgc2VsZWN0ZWQgPSByZW1vdmVkVmFsdWUgfHwgb3B0aW9uIHx8IGFzT3B0aW9uKHZhbHVlKTtcbiAgICAgIHZhciBsYWJlbCA9IHNlbGVjdGVkID8gZ2V0T3B0aW9uTGFiZWwoc2VsZWN0ZWQpIDogJyc7XG5cbiAgICAgIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBpdGVtcyBmcm9tIHRoZSBhY3Rpb24gdGhlbiByZXR1cm4gYW4gYXJyYXkgb2YgbGFiZWxzXG4gICAgICB2YXIgbXVsdGlTZWxlY3RlZCA9IHNlbGVjdGVkT3B0aW9ucyB8fCByZW1vdmVkVmFsdWVzIHx8IHVuZGVmaW5lZDtcbiAgICAgIHZhciBsYWJlbHMgPSBtdWx0aVNlbGVjdGVkID8gbXVsdGlTZWxlY3RlZC5tYXAoZ2V0T3B0aW9uTGFiZWwpIDogW107XG4gICAgICB2YXIgb25DaGFuZ2VQcm9wcyA9IF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAvLyBtdWx0aVNlbGVjdGVkIGl0ZW1zIGFyZSB1c3VhbGx5IGl0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gc2VsZWN0ZWRcbiAgICAgICAgLy8gb3Igc2V0IGJ5IHRoZSB1c2VyIGFzIGEgZGVmYXVsdCB2YWx1ZSBzbyB3ZSBhc3N1bWUgdGhleSBhcmUgbm90IGRpc2FibGVkXG4gICAgICAgIGlzRGlzYWJsZWQ6IHNlbGVjdGVkICYmIGlzT3B0aW9uRGlzYWJsZWQoc2VsZWN0ZWQsIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICBsYWJlbHM6IGxhYmVsc1xuICAgICAgfSwgYXJpYVNlbGVjdGlvbik7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZXMub25DaGFuZ2Uob25DaGFuZ2VQcm9wcyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LCBbYXJpYVNlbGVjdGlvbiwgbWVzc2FnZXMsIGlzT3B0aW9uRGlzYWJsZWQsIHNlbGVjdFZhbHVlLCBnZXRPcHRpb25MYWJlbF0pO1xuICB2YXIgYXJpYUZvY3VzZWQgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZm9jdXNNc2cgPSAnJztcbiAgICB2YXIgZm9jdXNlZCA9IGZvY3VzZWRPcHRpb24gfHwgZm9jdXNlZFZhbHVlO1xuICAgIHZhciBpc1NlbGVjdGVkID0gISEoZm9jdXNlZE9wdGlvbiAmJiBzZWxlY3RWYWx1ZSAmJiBzZWxlY3RWYWx1ZS5pbmNsdWRlcyhmb2N1c2VkT3B0aW9uKSk7XG4gICAgaWYgKGZvY3VzZWQgJiYgbWVzc2FnZXMub25Gb2N1cykge1xuICAgICAgdmFyIG9uRm9jdXNQcm9wcyA9IHtcbiAgICAgICAgZm9jdXNlZDogZm9jdXNlZCxcbiAgICAgICAgbGFiZWw6IGdldE9wdGlvbkxhYmVsKGZvY3VzZWQpLFxuICAgICAgICBpc0Rpc2FibGVkOiBpc09wdGlvbkRpc2FibGVkKGZvY3VzZWQsIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgaXNTZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgb3B0aW9uczogZm9jdXNhYmxlT3B0aW9ucyxcbiAgICAgICAgY29udGV4dDogZm9jdXNlZCA9PT0gZm9jdXNlZE9wdGlvbiA/ICdtZW51JyA6ICd2YWx1ZScsXG4gICAgICAgIHNlbGVjdFZhbHVlOiBzZWxlY3RWYWx1ZSxcbiAgICAgICAgaXNBcHBsZURldmljZTogaXNBcHBsZURldmljZVxuICAgICAgfTtcbiAgICAgIGZvY3VzTXNnID0gbWVzc2FnZXMub25Gb2N1cyhvbkZvY3VzUHJvcHMpO1xuICAgIH1cbiAgICByZXR1cm4gZm9jdXNNc2c7XG4gIH0sIFtmb2N1c2VkT3B0aW9uLCBmb2N1c2VkVmFsdWUsIGdldE9wdGlvbkxhYmVsLCBpc09wdGlvbkRpc2FibGVkLCBtZXNzYWdlcywgZm9jdXNhYmxlT3B0aW9ucywgc2VsZWN0VmFsdWUsIGlzQXBwbGVEZXZpY2VdKTtcbiAgdmFyIGFyaWFSZXN1bHRzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlc3VsdHNNc2cgPSAnJztcbiAgICBpZiAobWVudUlzT3BlbiAmJiBvcHRpb25zLmxlbmd0aCAmJiAhaXNMb2FkaW5nICYmIG1lc3NhZ2VzLm9uRmlsdGVyKSB7XG4gICAgICB2YXIgcmVzdWx0c01lc3NhZ2UgPSBzY3JlZW5SZWFkZXJTdGF0dXMoe1xuICAgICAgICBjb3VudDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGhcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0c01zZyA9IG1lc3NhZ2VzLm9uRmlsdGVyKHtcbiAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZSxcbiAgICAgICAgcmVzdWx0c01lc3NhZ2U6IHJlc3VsdHNNZXNzYWdlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNNc2c7XG4gIH0sIFtmb2N1c2FibGVPcHRpb25zLCBpbnB1dFZhbHVlLCBtZW51SXNPcGVuLCBtZXNzYWdlcywgb3B0aW9ucywgc2NyZWVuUmVhZGVyU3RhdHVzLCBpc0xvYWRpbmddKTtcbiAgdmFyIGlzSW5pdGlhbEZvY3VzID0gKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cyc7XG4gIHZhciBhcmlhR3VpZGFuY2UgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZ3VpZGFuY2VNc2cgPSAnJztcbiAgICBpZiAobWVzc2FnZXMuZ3VpZGFuY2UpIHtcbiAgICAgIHZhciBjb250ZXh0ID0gZm9jdXNlZFZhbHVlID8gJ3ZhbHVlJyA6IG1lbnVJc09wZW4gPyAnbWVudScgOiAnaW5wdXQnO1xuICAgICAgZ3VpZGFuY2VNc2cgPSBtZXNzYWdlcy5ndWlkYW5jZSh7XG4gICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBpc0Rpc2FibGVkOiBmb2N1c2VkT3B0aW9uICYmIGlzT3B0aW9uRGlzYWJsZWQoZm9jdXNlZE9wdGlvbiwgc2VsZWN0VmFsdWUpLFxuICAgICAgICBpc011bHRpOiBpc011bHRpLFxuICAgICAgICBpc1NlYXJjaGFibGU6IGlzU2VhcmNoYWJsZSxcbiAgICAgICAgdGFiU2VsZWN0c1ZhbHVlOiB0YWJTZWxlY3RzVmFsdWUsXG4gICAgICAgIGlzSW5pdGlhbEZvY3VzOiBpc0luaXRpYWxGb2N1c1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBndWlkYW5jZU1zZztcbiAgfSwgW2FyaWFMYWJlbCwgZm9jdXNlZE9wdGlvbiwgZm9jdXNlZFZhbHVlLCBpc011bHRpLCBpc09wdGlvbkRpc2FibGVkLCBpc1NlYXJjaGFibGUsIG1lbnVJc09wZW4sIG1lc3NhZ2VzLCBzZWxlY3RWYWx1ZSwgdGFiU2VsZWN0c1ZhbHVlLCBpc0luaXRpYWxGb2N1c10pO1xuICB2YXIgU2NyZWVuUmVhZGVyVGV4dCA9IGpzeChGcmFnbWVudCwgbnVsbCwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1zZWxlY3Rpb25cIlxuICB9LCBhcmlhU2VsZWN0ZWQpLCBqc3goXCJzcGFuXCIsIHtcbiAgICBpZDogXCJhcmlhLWZvY3VzZWRcIlxuICB9LCBhcmlhRm9jdXNlZCksIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtcmVzdWx0c1wiXG4gIH0sIGFyaWFSZXN1bHRzKSwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1ndWlkYW5jZVwiXG4gIH0sIGFyaWFHdWlkYW5jZSkpO1xuICByZXR1cm4ganN4KEZyYWdtZW50LCBudWxsLCBqc3goQTExeVRleHQkMSwge1xuICAgIGlkOiBpZFxuICB9LCBpc0luaXRpYWxGb2N1cyAmJiBTY3JlZW5SZWFkZXJUZXh0KSwganN4KEExMXlUZXh0JDEsIHtcbiAgICBcImFyaWEtbGl2ZVwiOiBhcmlhTGl2ZSxcbiAgICBcImFyaWEtYXRvbWljXCI6IFwiZmFsc2VcIixcbiAgICBcImFyaWEtcmVsZXZhbnRcIjogXCJhZGRpdGlvbnMgdGV4dFwiLFxuICAgIHJvbGU6IFwibG9nXCJcbiAgfSwgaXNGb2N1c2VkICYmICFpc0luaXRpYWxGb2N1cyAmJiBTY3JlZW5SZWFkZXJUZXh0KSk7XG59O1xudmFyIExpdmVSZWdpb24kMSA9IExpdmVSZWdpb247XG5cbnZhciBkaWFjcml0aWNzID0gW3tcbiAgYmFzZTogJ0EnLFxuICBsZXR0ZXJzOiBcIkFcXHUyNEI2XFx1RkYyMVxceEMwXFx4QzFcXHhDMlxcdTFFQTZcXHUxRUE0XFx1MUVBQVxcdTFFQThcXHhDM1xcdTAxMDBcXHUwMTAyXFx1MUVCMFxcdTFFQUVcXHUxRUI0XFx1MUVCMlxcdTAyMjZcXHUwMUUwXFx4QzRcXHUwMURFXFx1MUVBMlxceEM1XFx1MDFGQVxcdTAxQ0RcXHUwMjAwXFx1MDIwMlxcdTFFQTBcXHUxRUFDXFx1MUVCNlxcdTFFMDBcXHUwMTA0XFx1MDIzQVxcdTJDNkZcIlxufSwge1xuICBiYXNlOiAnQUEnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzJcIlxufSwge1xuICBiYXNlOiAnQUUnLFxuICBsZXR0ZXJzOiBcIlxceEM2XFx1MDFGQ1xcdTAxRTJcIlxufSwge1xuICBiYXNlOiAnQU8nLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzRcIlxufSwge1xuICBiYXNlOiAnQVUnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzZcIlxufSwge1xuICBiYXNlOiAnQVYnLFxuICBsZXR0ZXJzOiBcIlxcdUE3MzhcXHVBNzNBXCJcbn0sIHtcbiAgYmFzZTogJ0FZJyxcbiAgbGV0dGVyczogXCJcXHVBNzNDXCJcbn0sIHtcbiAgYmFzZTogJ0InLFxuICBsZXR0ZXJzOiBcIkJcXHUyNEI3XFx1RkYyMlxcdTFFMDJcXHUxRTA0XFx1MUUwNlxcdTAyNDNcXHUwMTgyXFx1MDE4MVwiXG59LCB7XG4gIGJhc2U6ICdDJyxcbiAgbGV0dGVyczogXCJDXFx1MjRCOFxcdUZGMjNcXHUwMTA2XFx1MDEwOFxcdTAxMEFcXHUwMTBDXFx4QzdcXHUxRTA4XFx1MDE4N1xcdTAyM0JcXHVBNzNFXCJcbn0sIHtcbiAgYmFzZTogJ0QnLFxuICBsZXR0ZXJzOiBcIkRcXHUyNEI5XFx1RkYyNFxcdTFFMEFcXHUwMTBFXFx1MUUwQ1xcdTFFMTBcXHUxRTEyXFx1MUUwRVxcdTAxMTBcXHUwMThCXFx1MDE4QVxcdTAxODlcXHVBNzc5XCJcbn0sIHtcbiAgYmFzZTogJ0RaJyxcbiAgbGV0dGVyczogXCJcXHUwMUYxXFx1MDFDNFwiXG59LCB7XG4gIGJhc2U6ICdEeicsXG4gIGxldHRlcnM6IFwiXFx1MDFGMlxcdTAxQzVcIlxufSwge1xuICBiYXNlOiAnRScsXG4gIGxldHRlcnM6IFwiRVxcdTI0QkFcXHVGRjI1XFx4QzhcXHhDOVxceENBXFx1MUVDMFxcdTFFQkVcXHUxRUM0XFx1MUVDMlxcdTFFQkNcXHUwMTEyXFx1MUUxNFxcdTFFMTZcXHUwMTE0XFx1MDExNlxceENCXFx1MUVCQVxcdTAxMUFcXHUwMjA0XFx1MDIwNlxcdTFFQjhcXHUxRUM2XFx1MDIyOFxcdTFFMUNcXHUwMTE4XFx1MUUxOFxcdTFFMUFcXHUwMTkwXFx1MDE4RVwiXG59LCB7XG4gIGJhc2U6ICdGJyxcbiAgbGV0dGVyczogXCJGXFx1MjRCQlxcdUZGMjZcXHUxRTFFXFx1MDE5MVxcdUE3N0JcIlxufSwge1xuICBiYXNlOiAnRycsXG4gIGxldHRlcnM6IFwiR1xcdTI0QkNcXHVGRjI3XFx1MDFGNFxcdTAxMUNcXHUxRTIwXFx1MDExRVxcdTAxMjBcXHUwMUU2XFx1MDEyMlxcdTAxRTRcXHUwMTkzXFx1QTdBMFxcdUE3N0RcXHVBNzdFXCJcbn0sIHtcbiAgYmFzZTogJ0gnLFxuICBsZXR0ZXJzOiBcIkhcXHUyNEJEXFx1RkYyOFxcdTAxMjRcXHUxRTIyXFx1MUUyNlxcdTAyMUVcXHUxRTI0XFx1MUUyOFxcdTFFMkFcXHUwMTI2XFx1MkM2N1xcdTJDNzVcXHVBNzhEXCJcbn0sIHtcbiAgYmFzZTogJ0knLFxuICBsZXR0ZXJzOiBcIklcXHUyNEJFXFx1RkYyOVxceENDXFx4Q0RcXHhDRVxcdTAxMjhcXHUwMTJBXFx1MDEyQ1xcdTAxMzBcXHhDRlxcdTFFMkVcXHUxRUM4XFx1MDFDRlxcdTAyMDhcXHUwMjBBXFx1MUVDQVxcdTAxMkVcXHUxRTJDXFx1MDE5N1wiXG59LCB7XG4gIGJhc2U6ICdKJyxcbiAgbGV0dGVyczogXCJKXFx1MjRCRlxcdUZGMkFcXHUwMTM0XFx1MDI0OFwiXG59LCB7XG4gIGJhc2U6ICdLJyxcbiAgbGV0dGVyczogXCJLXFx1MjRDMFxcdUZGMkJcXHUxRTMwXFx1MDFFOFxcdTFFMzJcXHUwMTM2XFx1MUUzNFxcdTAxOThcXHUyQzY5XFx1QTc0MFxcdUE3NDJcXHVBNzQ0XFx1QTdBMlwiXG59LCB7XG4gIGJhc2U6ICdMJyxcbiAgbGV0dGVyczogXCJMXFx1MjRDMVxcdUZGMkNcXHUwMTNGXFx1MDEzOVxcdTAxM0RcXHUxRTM2XFx1MUUzOFxcdTAxM0JcXHUxRTNDXFx1MUUzQVxcdTAxNDFcXHUwMjNEXFx1MkM2MlxcdTJDNjBcXHVBNzQ4XFx1QTc0NlxcdUE3ODBcIlxufSwge1xuICBiYXNlOiAnTEonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzdcIlxufSwge1xuICBiYXNlOiAnTGonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzhcIlxufSwge1xuICBiYXNlOiAnTScsXG4gIGxldHRlcnM6IFwiTVxcdTI0QzJcXHVGRjJEXFx1MUUzRVxcdTFFNDBcXHUxRTQyXFx1MkM2RVxcdTAxOUNcIlxufSwge1xuICBiYXNlOiAnTicsXG4gIGxldHRlcnM6IFwiTlxcdTI0QzNcXHVGRjJFXFx1MDFGOFxcdTAxNDNcXHhEMVxcdTFFNDRcXHUwMTQ3XFx1MUU0NlxcdTAxNDVcXHUxRTRBXFx1MUU0OFxcdTAyMjBcXHUwMTlEXFx1QTc5MFxcdUE3QTRcIlxufSwge1xuICBiYXNlOiAnTkonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0FcIlxufSwge1xuICBiYXNlOiAnTmonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0JcIlxufSwge1xuICBiYXNlOiAnTycsXG4gIGxldHRlcnM6IFwiT1xcdTI0QzRcXHVGRjJGXFx4RDJcXHhEM1xceEQ0XFx1MUVEMlxcdTFFRDBcXHUxRUQ2XFx1MUVENFxceEQ1XFx1MUU0Q1xcdTAyMkNcXHUxRTRFXFx1MDE0Q1xcdTFFNTBcXHUxRTUyXFx1MDE0RVxcdTAyMkVcXHUwMjMwXFx4RDZcXHUwMjJBXFx1MUVDRVxcdTAxNTBcXHUwMUQxXFx1MDIwQ1xcdTAyMEVcXHUwMUEwXFx1MUVEQ1xcdTFFREFcXHUxRUUwXFx1MUVERVxcdTFFRTJcXHUxRUNDXFx1MUVEOFxcdTAxRUFcXHUwMUVDXFx4RDhcXHUwMUZFXFx1MDE4NlxcdTAxOUZcXHVBNzRBXFx1QTc0Q1wiXG59LCB7XG4gIGJhc2U6ICdPSScsXG4gIGxldHRlcnM6IFwiXFx1MDFBMlwiXG59LCB7XG4gIGJhc2U6ICdPTycsXG4gIGxldHRlcnM6IFwiXFx1QTc0RVwiXG59LCB7XG4gIGJhc2U6ICdPVScsXG4gIGxldHRlcnM6IFwiXFx1MDIyMlwiXG59LCB7XG4gIGJhc2U6ICdQJyxcbiAgbGV0dGVyczogXCJQXFx1MjRDNVxcdUZGMzBcXHUxRTU0XFx1MUU1NlxcdTAxQTRcXHUyQzYzXFx1QTc1MFxcdUE3NTJcXHVBNzU0XCJcbn0sIHtcbiAgYmFzZTogJ1EnLFxuICBsZXR0ZXJzOiBcIlFcXHUyNEM2XFx1RkYzMVxcdUE3NTZcXHVBNzU4XFx1MDI0QVwiXG59LCB7XG4gIGJhc2U6ICdSJyxcbiAgbGV0dGVyczogXCJSXFx1MjRDN1xcdUZGMzJcXHUwMTU0XFx1MUU1OFxcdTAxNThcXHUwMjEwXFx1MDIxMlxcdTFFNUFcXHUxRTVDXFx1MDE1NlxcdTFFNUVcXHUwMjRDXFx1MkM2NFxcdUE3NUFcXHVBN0E2XFx1QTc4MlwiXG59LCB7XG4gIGJhc2U6ICdTJyxcbiAgbGV0dGVyczogXCJTXFx1MjRDOFxcdUZGMzNcXHUxRTlFXFx1MDE1QVxcdTFFNjRcXHUwMTVDXFx1MUU2MFxcdTAxNjBcXHUxRTY2XFx1MUU2MlxcdTFFNjhcXHUwMjE4XFx1MDE1RVxcdTJDN0VcXHVBN0E4XFx1QTc4NFwiXG59LCB7XG4gIGJhc2U6ICdUJyxcbiAgbGV0dGVyczogXCJUXFx1MjRDOVxcdUZGMzRcXHUxRTZBXFx1MDE2NFxcdTFFNkNcXHUwMjFBXFx1MDE2MlxcdTFFNzBcXHUxRTZFXFx1MDE2NlxcdTAxQUNcXHUwMUFFXFx1MDIzRVxcdUE3ODZcIlxufSwge1xuICBiYXNlOiAnVFonLFxuICBsZXR0ZXJzOiBcIlxcdUE3MjhcIlxufSwge1xuICBiYXNlOiAnVScsXG4gIGxldHRlcnM6IFwiVVxcdTI0Q0FcXHVGRjM1XFx4RDlcXHhEQVxceERCXFx1MDE2OFxcdTFFNzhcXHUwMTZBXFx1MUU3QVxcdTAxNkNcXHhEQ1xcdTAxREJcXHUwMUQ3XFx1MDFENVxcdTAxRDlcXHUxRUU2XFx1MDE2RVxcdTAxNzBcXHUwMUQzXFx1MDIxNFxcdTAyMTZcXHUwMUFGXFx1MUVFQVxcdTFFRThcXHUxRUVFXFx1MUVFQ1xcdTFFRjBcXHUxRUU0XFx1MUU3MlxcdTAxNzJcXHUxRTc2XFx1MUU3NFxcdTAyNDRcIlxufSwge1xuICBiYXNlOiAnVicsXG4gIGxldHRlcnM6IFwiVlxcdTI0Q0JcXHVGRjM2XFx1MUU3Q1xcdTFFN0VcXHUwMUIyXFx1QTc1RVxcdTAyNDVcIlxufSwge1xuICBiYXNlOiAnVlknLFxuICBsZXR0ZXJzOiBcIlxcdUE3NjBcIlxufSwge1xuICBiYXNlOiAnVycsXG4gIGxldHRlcnM6IFwiV1xcdTI0Q0NcXHVGRjM3XFx1MUU4MFxcdTFFODJcXHUwMTc0XFx1MUU4NlxcdTFFODRcXHUxRTg4XFx1MkM3MlwiXG59LCB7XG4gIGJhc2U6ICdYJyxcbiAgbGV0dGVyczogXCJYXFx1MjRDRFxcdUZGMzhcXHUxRThBXFx1MUU4Q1wiXG59LCB7XG4gIGJhc2U6ICdZJyxcbiAgbGV0dGVyczogXCJZXFx1MjRDRVxcdUZGMzlcXHUxRUYyXFx4RERcXHUwMTc2XFx1MUVGOFxcdTAyMzJcXHUxRThFXFx1MDE3OFxcdTFFRjZcXHUxRUY0XFx1MDFCM1xcdTAyNEVcXHUxRUZFXCJcbn0sIHtcbiAgYmFzZTogJ1onLFxuICBsZXR0ZXJzOiBcIlpcXHUyNENGXFx1RkYzQVxcdTAxNzlcXHUxRTkwXFx1MDE3QlxcdTAxN0RcXHUxRTkyXFx1MUU5NFxcdTAxQjVcXHUwMjI0XFx1MkM3RlxcdTJDNkJcXHVBNzYyXCJcbn0sIHtcbiAgYmFzZTogJ2EnLFxuICBsZXR0ZXJzOiBcImFcXHUyNEQwXFx1RkY0MVxcdTFFOUFcXHhFMFxceEUxXFx4RTJcXHUxRUE3XFx1MUVBNVxcdTFFQUJcXHUxRUE5XFx4RTNcXHUwMTAxXFx1MDEwM1xcdTFFQjFcXHUxRUFGXFx1MUVCNVxcdTFFQjNcXHUwMjI3XFx1MDFFMVxceEU0XFx1MDFERlxcdTFFQTNcXHhFNVxcdTAxRkJcXHUwMUNFXFx1MDIwMVxcdTAyMDNcXHUxRUExXFx1MUVBRFxcdTFFQjdcXHUxRTAxXFx1MDEwNVxcdTJDNjVcXHUwMjUwXCJcbn0sIHtcbiAgYmFzZTogJ2FhJyxcbiAgbGV0dGVyczogXCJcXHVBNzMzXCJcbn0sIHtcbiAgYmFzZTogJ2FlJyxcbiAgbGV0dGVyczogXCJcXHhFNlxcdTAxRkRcXHUwMUUzXCJcbn0sIHtcbiAgYmFzZTogJ2FvJyxcbiAgbGV0dGVyczogXCJcXHVBNzM1XCJcbn0sIHtcbiAgYmFzZTogJ2F1JyxcbiAgbGV0dGVyczogXCJcXHVBNzM3XCJcbn0sIHtcbiAgYmFzZTogJ2F2JyxcbiAgbGV0dGVyczogXCJcXHVBNzM5XFx1QTczQlwiXG59LCB7XG4gIGJhc2U6ICdheScsXG4gIGxldHRlcnM6IFwiXFx1QTczRFwiXG59LCB7XG4gIGJhc2U6ICdiJyxcbiAgbGV0dGVyczogXCJiXFx1MjREMVxcdUZGNDJcXHUxRTAzXFx1MUUwNVxcdTFFMDdcXHUwMTgwXFx1MDE4M1xcdTAyNTNcIlxufSwge1xuICBiYXNlOiAnYycsXG4gIGxldHRlcnM6IFwiY1xcdTI0RDJcXHVGRjQzXFx1MDEwN1xcdTAxMDlcXHUwMTBCXFx1MDEwRFxceEU3XFx1MUUwOVxcdTAxODhcXHUwMjNDXFx1QTczRlxcdTIxODRcIlxufSwge1xuICBiYXNlOiAnZCcsXG4gIGxldHRlcnM6IFwiZFxcdTI0RDNcXHVGRjQ0XFx1MUUwQlxcdTAxMEZcXHUxRTBEXFx1MUUxMVxcdTFFMTNcXHUxRTBGXFx1MDExMVxcdTAxOENcXHUwMjU2XFx1MDI1N1xcdUE3N0FcIlxufSwge1xuICBiYXNlOiAnZHonLFxuICBsZXR0ZXJzOiBcIlxcdTAxRjNcXHUwMUM2XCJcbn0sIHtcbiAgYmFzZTogJ2UnLFxuICBsZXR0ZXJzOiBcImVcXHUyNEQ0XFx1RkY0NVxceEU4XFx4RTlcXHhFQVxcdTFFQzFcXHUxRUJGXFx1MUVDNVxcdTFFQzNcXHUxRUJEXFx1MDExM1xcdTFFMTVcXHUxRTE3XFx1MDExNVxcdTAxMTdcXHhFQlxcdTFFQkJcXHUwMTFCXFx1MDIwNVxcdTAyMDdcXHUxRUI5XFx1MUVDN1xcdTAyMjlcXHUxRTFEXFx1MDExOVxcdTFFMTlcXHUxRTFCXFx1MDI0N1xcdTAyNUJcXHUwMUREXCJcbn0sIHtcbiAgYmFzZTogJ2YnLFxuICBsZXR0ZXJzOiBcImZcXHUyNEQ1XFx1RkY0NlxcdTFFMUZcXHUwMTkyXFx1QTc3Q1wiXG59LCB7XG4gIGJhc2U6ICdnJyxcbiAgbGV0dGVyczogXCJnXFx1MjRENlxcdUZGNDdcXHUwMUY1XFx1MDExRFxcdTFFMjFcXHUwMTFGXFx1MDEyMVxcdTAxRTdcXHUwMTIzXFx1MDFFNVxcdTAyNjBcXHVBN0ExXFx1MUQ3OVxcdUE3N0ZcIlxufSwge1xuICBiYXNlOiAnaCcsXG4gIGxldHRlcnM6IFwiaFxcdTI0RDdcXHVGRjQ4XFx1MDEyNVxcdTFFMjNcXHUxRTI3XFx1MDIxRlxcdTFFMjVcXHUxRTI5XFx1MUUyQlxcdTFFOTZcXHUwMTI3XFx1MkM2OFxcdTJDNzZcXHUwMjY1XCJcbn0sIHtcbiAgYmFzZTogJ2h2JyxcbiAgbGV0dGVyczogXCJcXHUwMTk1XCJcbn0sIHtcbiAgYmFzZTogJ2knLFxuICBsZXR0ZXJzOiBcImlcXHUyNEQ4XFx1RkY0OVxceEVDXFx4RURcXHhFRVxcdTAxMjlcXHUwMTJCXFx1MDEyRFxceEVGXFx1MUUyRlxcdTFFQzlcXHUwMUQwXFx1MDIwOVxcdTAyMEJcXHUxRUNCXFx1MDEyRlxcdTFFMkRcXHUwMjY4XFx1MDEzMVwiXG59LCB7XG4gIGJhc2U6ICdqJyxcbiAgbGV0dGVyczogXCJqXFx1MjREOVxcdUZGNEFcXHUwMTM1XFx1MDFGMFxcdTAyNDlcIlxufSwge1xuICBiYXNlOiAnaycsXG4gIGxldHRlcnM6IFwia1xcdTI0REFcXHVGRjRCXFx1MUUzMVxcdTAxRTlcXHUxRTMzXFx1MDEzN1xcdTFFMzVcXHUwMTk5XFx1MkM2QVxcdUE3NDFcXHVBNzQzXFx1QTc0NVxcdUE3QTNcIlxufSwge1xuICBiYXNlOiAnbCcsXG4gIGxldHRlcnM6IFwibFxcdTI0REJcXHVGRjRDXFx1MDE0MFxcdTAxM0FcXHUwMTNFXFx1MUUzN1xcdTFFMzlcXHUwMTNDXFx1MUUzRFxcdTFFM0JcXHUwMTdGXFx1MDE0MlxcdTAxOUFcXHUwMjZCXFx1MkM2MVxcdUE3NDlcXHVBNzgxXFx1QTc0N1wiXG59LCB7XG4gIGJhc2U6ICdsaicsXG4gIGxldHRlcnM6IFwiXFx1MDFDOVwiXG59LCB7XG4gIGJhc2U6ICdtJyxcbiAgbGV0dGVyczogXCJtXFx1MjREQ1xcdUZGNERcXHUxRTNGXFx1MUU0MVxcdTFFNDNcXHUwMjcxXFx1MDI2RlwiXG59LCB7XG4gIGJhc2U6ICduJyxcbiAgbGV0dGVyczogXCJuXFx1MjRERFxcdUZGNEVcXHUwMUY5XFx1MDE0NFxceEYxXFx1MUU0NVxcdTAxNDhcXHUxRTQ3XFx1MDE0NlxcdTFFNEJcXHUxRTQ5XFx1MDE5RVxcdTAyNzJcXHUwMTQ5XFx1QTc5MVxcdUE3QTVcIlxufSwge1xuICBiYXNlOiAnbmonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQ0NcIlxufSwge1xuICBiYXNlOiAnbycsXG4gIGxldHRlcnM6IFwib1xcdTI0REVcXHVGRjRGXFx4RjJcXHhGM1xceEY0XFx1MUVEM1xcdTFFRDFcXHUxRUQ3XFx1MUVENVxceEY1XFx1MUU0RFxcdTAyMkRcXHUxRTRGXFx1MDE0RFxcdTFFNTFcXHUxRTUzXFx1MDE0RlxcdTAyMkZcXHUwMjMxXFx4RjZcXHUwMjJCXFx1MUVDRlxcdTAxNTFcXHUwMUQyXFx1MDIwRFxcdTAyMEZcXHUwMUExXFx1MUVERFxcdTFFREJcXHUxRUUxXFx1MUVERlxcdTFFRTNcXHUxRUNEXFx1MUVEOVxcdTAxRUJcXHUwMUVEXFx4RjhcXHUwMUZGXFx1MDI1NFxcdUE3NEJcXHVBNzREXFx1MDI3NVwiXG59LCB7XG4gIGJhc2U6ICdvaScsXG4gIGxldHRlcnM6IFwiXFx1MDFBM1wiXG59LCB7XG4gIGJhc2U6ICdvdScsXG4gIGxldHRlcnM6IFwiXFx1MDIyM1wiXG59LCB7XG4gIGJhc2U6ICdvbycsXG4gIGxldHRlcnM6IFwiXFx1QTc0RlwiXG59LCB7XG4gIGJhc2U6ICdwJyxcbiAgbGV0dGVyczogXCJwXFx1MjRERlxcdUZGNTBcXHUxRTU1XFx1MUU1N1xcdTAxQTVcXHUxRDdEXFx1QTc1MVxcdUE3NTNcXHVBNzU1XCJcbn0sIHtcbiAgYmFzZTogJ3EnLFxuICBsZXR0ZXJzOiBcInFcXHUyNEUwXFx1RkY1MVxcdTAyNEJcXHVBNzU3XFx1QTc1OVwiXG59LCB7XG4gIGJhc2U6ICdyJyxcbiAgbGV0dGVyczogXCJyXFx1MjRFMVxcdUZGNTJcXHUwMTU1XFx1MUU1OVxcdTAxNTlcXHUwMjExXFx1MDIxM1xcdTFFNUJcXHUxRTVEXFx1MDE1N1xcdTFFNUZcXHUwMjREXFx1MDI3RFxcdUE3NUJcXHVBN0E3XFx1QTc4M1wiXG59LCB7XG4gIGJhc2U6ICdzJyxcbiAgbGV0dGVyczogXCJzXFx1MjRFMlxcdUZGNTNcXHhERlxcdTAxNUJcXHUxRTY1XFx1MDE1RFxcdTFFNjFcXHUwMTYxXFx1MUU2N1xcdTFFNjNcXHUxRTY5XFx1MDIxOVxcdTAxNUZcXHUwMjNGXFx1QTdBOVxcdUE3ODVcXHUxRTlCXCJcbn0sIHtcbiAgYmFzZTogJ3QnLFxuICBsZXR0ZXJzOiBcInRcXHUyNEUzXFx1RkY1NFxcdTFFNkJcXHUxRTk3XFx1MDE2NVxcdTFFNkRcXHUwMjFCXFx1MDE2M1xcdTFFNzFcXHUxRTZGXFx1MDE2N1xcdTAxQURcXHUwMjg4XFx1MkM2NlxcdUE3ODdcIlxufSwge1xuICBiYXNlOiAndHonLFxuICBsZXR0ZXJzOiBcIlxcdUE3MjlcIlxufSwge1xuICBiYXNlOiAndScsXG4gIGxldHRlcnM6IFwidVxcdTI0RTRcXHVGRjU1XFx4RjlcXHhGQVxceEZCXFx1MDE2OVxcdTFFNzlcXHUwMTZCXFx1MUU3QlxcdTAxNkRcXHhGQ1xcdTAxRENcXHUwMUQ4XFx1MDFENlxcdTAxREFcXHUxRUU3XFx1MDE2RlxcdTAxNzFcXHUwMUQ0XFx1MDIxNVxcdTAyMTdcXHUwMUIwXFx1MUVFQlxcdTFFRTlcXHUxRUVGXFx1MUVFRFxcdTFFRjFcXHUxRUU1XFx1MUU3M1xcdTAxNzNcXHUxRTc3XFx1MUU3NVxcdTAyODlcIlxufSwge1xuICBiYXNlOiAndicsXG4gIGxldHRlcnM6IFwidlxcdTI0RTVcXHVGRjU2XFx1MUU3RFxcdTFFN0ZcXHUwMjhCXFx1QTc1RlxcdTAyOENcIlxufSwge1xuICBiYXNlOiAndnknLFxuICBsZXR0ZXJzOiBcIlxcdUE3NjFcIlxufSwge1xuICBiYXNlOiAndycsXG4gIGxldHRlcnM6IFwid1xcdTI0RTZcXHVGRjU3XFx1MUU4MVxcdTFFODNcXHUwMTc1XFx1MUU4N1xcdTFFODVcXHUxRTk4XFx1MUU4OVxcdTJDNzNcIlxufSwge1xuICBiYXNlOiAneCcsXG4gIGxldHRlcnM6IFwieFxcdTI0RTdcXHVGRjU4XFx1MUU4QlxcdTFFOERcIlxufSwge1xuICBiYXNlOiAneScsXG4gIGxldHRlcnM6IFwieVxcdTI0RThcXHVGRjU5XFx1MUVGM1xceEZEXFx1MDE3N1xcdTFFRjlcXHUwMjMzXFx1MUU4RlxceEZGXFx1MUVGN1xcdTFFOTlcXHUxRUY1XFx1MDFCNFxcdTAyNEZcXHUxRUZGXCJcbn0sIHtcbiAgYmFzZTogJ3onLFxuICBsZXR0ZXJzOiBcInpcXHUyNEU5XFx1RkY1QVxcdTAxN0FcXHUxRTkxXFx1MDE3Q1xcdTAxN0VcXHUxRTkzXFx1MUU5NVxcdTAxQjZcXHUwMjI1XFx1MDI0MFxcdTJDNkNcXHVBNzYzXCJcbn1dO1xudmFyIGFueURpYWNyaXRpYyA9IG5ldyBSZWdFeHAoJ1snICsgZGlhY3JpdGljcy5tYXAoZnVuY3Rpb24gKGQpIHtcbiAgcmV0dXJuIGQubGV0dGVycztcbn0pLmpvaW4oJycpICsgJ10nLCAnZycpO1xudmFyIGRpYWNyaXRpY1RvQmFzZSA9IHt9O1xuZm9yICh2YXIgaSA9IDA7IGkgPCBkaWFjcml0aWNzLmxlbmd0aDsgaSsrKSB7XG4gIHZhciBkaWFjcml0aWMgPSBkaWFjcml0aWNzW2ldO1xuICBmb3IgKHZhciBqID0gMDsgaiA8IGRpYWNyaXRpYy5sZXR0ZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgZGlhY3JpdGljVG9CYXNlW2RpYWNyaXRpYy5sZXR0ZXJzW2pdXSA9IGRpYWNyaXRpYy5iYXNlO1xuICB9XG59XG52YXIgc3RyaXBEaWFjcml0aWNzID0gZnVuY3Rpb24gc3RyaXBEaWFjcml0aWNzKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoYW55RGlhY3JpdGljLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZGlhY3JpdGljVG9CYXNlW21hdGNoXTtcbiAgfSk7XG59O1xuXG52YXIgbWVtb2l6ZWRTdHJpcERpYWNyaXRpY3NGb3JJbnB1dCA9IG1lbW9pemVPbmUoc3RyaXBEaWFjcml0aWNzKTtcbnZhciB0cmltU3RyaW5nID0gZnVuY3Rpb24gdHJpbVN0cmluZyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJyk7XG59O1xudmFyIGRlZmF1bHRTdHJpbmdpZnkgPSBmdW5jdGlvbiBkZWZhdWx0U3RyaW5naWZ5KG9wdGlvbikge1xuICByZXR1cm4gXCJcIi5jb25jYXQob3B0aW9uLmxhYmVsLCBcIiBcIikuY29uY2F0KG9wdGlvbi52YWx1ZSk7XG59O1xudmFyIGNyZWF0ZUZpbHRlciA9IGZ1bmN0aW9uIGNyZWF0ZUZpbHRlcihjb25maWcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvcHRpb24sIHJhd0lucHV0KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgaWYgKG9wdGlvbi5kYXRhLl9faXNOZXdfXykgcmV0dXJuIHRydWU7XG4gICAgdmFyIF9pZ25vcmVDYXNlJGlnbm9yZUFjYyA9IF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBpZ25vcmVDYXNlOiB0cnVlLFxuICAgICAgICBpZ25vcmVBY2NlbnRzOiB0cnVlLFxuICAgICAgICBzdHJpbmdpZnk6IGRlZmF1bHRTdHJpbmdpZnksXG4gICAgICAgIHRyaW06IHRydWUsXG4gICAgICAgIG1hdGNoRnJvbTogJ2FueSdcbiAgICAgIH0sIGNvbmZpZyksXG4gICAgICBpZ25vcmVDYXNlID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLmlnbm9yZUNhc2UsXG4gICAgICBpZ25vcmVBY2NlbnRzID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLmlnbm9yZUFjY2VudHMsXG4gICAgICBzdHJpbmdpZnkgPSBfaWdub3JlQ2FzZSRpZ25vcmVBY2Muc3RyaW5naWZ5LFxuICAgICAgdHJpbSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy50cmltLFxuICAgICAgbWF0Y2hGcm9tID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLm1hdGNoRnJvbTtcbiAgICB2YXIgaW5wdXQgPSB0cmltID8gdHJpbVN0cmluZyhyYXdJbnB1dCkgOiByYXdJbnB1dDtcbiAgICB2YXIgY2FuZGlkYXRlID0gdHJpbSA/IHRyaW1TdHJpbmcoc3RyaW5naWZ5KG9wdGlvbikpIDogc3RyaW5naWZ5KG9wdGlvbik7XG4gICAgaWYgKGlnbm9yZUNhc2UpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAoaWdub3JlQWNjZW50cykge1xuICAgICAgaW5wdXQgPSBtZW1vaXplZFN0cmlwRGlhY3JpdGljc0ZvcklucHV0KGlucHV0KTtcbiAgICAgIGNhbmRpZGF0ZSA9IHN0cmlwRGlhY3JpdGljcyhjYW5kaWRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hGcm9tID09PSAnc3RhcnQnID8gY2FuZGlkYXRlLnN1YnN0cigwLCBpbnB1dC5sZW5ndGgpID09PSBpbnB1dCA6IGNhbmRpZGF0ZS5pbmRleE9mKGlucHV0KSA+IC0xO1xuICB9O1xufTtcblxudmFyIF9leGNsdWRlZCA9IFtcImlubmVyUmVmXCJdO1xuZnVuY3Rpb24gRHVtbXlJbnB1dChfcmVmKSB7XG4gIHZhciBpbm5lclJlZiA9IF9yZWYuaW5uZXJSZWYsXG4gICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgdmFyIGZpbHRlcmVkUHJvcHMgPSByZW1vdmVQcm9wcyhwcm9wcywgJ29uRXhpdGVkJywgJ2luJywgJ2VudGVyJywgJ2V4aXQnLCAnYXBwZWFyJyk7XG4gIHJldHVybiBqc3goXCJpbnB1dFwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBpbm5lclJlZlxuICB9LCBmaWx0ZXJlZFByb3BzLCB7XG4gICAgY3NzOiAvKiNfX1BVUkVfXyovY3NzKHtcbiAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgIGJvcmRlcjogMCxcbiAgICAgIC8vIGltcG9ydGFudCEgdGhpcyBoaWRlcyB0aGUgZmxhc2hpbmcgY3Vyc29yXG4gICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gICAgICBvdXRsaW5lOiAwLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICB3aWR0aDogMSxcbiAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICBsZWZ0OiAtMTAwLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKSdcbiAgICB9LCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBcIlwiIDogXCI7bGFiZWw6RHVtbXlJbnB1dDtcIiwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtSMWJXMTVTVzV3ZFhRdWRITjRJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRWGxDVFNJc0ltWnBiR1VpT2lKRWRXMXRlVWx1Y0hWMExuUnplQ0lzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQkFhbk40SUdwemVDQXFMMXh1YVcxd2IzSjBJSHNnVW1WbUlIMGdabkp2YlNBbmNtVmhZM1FuTzF4dWFXMXdiM0owSUhzZ2FuTjRJSDBnWm5KdmJTQW5RR1Z0YjNScGIyNHZjbVZoWTNRbk8xeHVhVzF3YjNKMElIc2djbVZ0YjNabFVISnZjSE1nZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeWM3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdaMWJtTjBhVzl1SUVSMWJXMTVTVzV3ZFhRb2UxeHVJQ0JwYm01bGNsSmxaaXhjYmlBZ0xpNHVjSEp2Y0hOY2JuMDZJRXBUV0M1SmJuUnlhVzV6YVdORmJHVnRaVzUwYzFzbmFXNXdkWFFuWFNBbUlIdGNiaUFnY21WaFpHOXViSGtnYVc1dVpYSlNaV1k2SUZKbFpqeElWRTFNU1c1d2RYUkZiR1Z0Wlc1MFBqdGNibjBwSUh0Y2JpQWdMeThnVW1WdGIzWmxJR0Z1YVcxaGRHbHZiaUJ3Y205d2N5QnViM1FnYldWaGJuUWdabTl5SUVoVVRVd2daV3hsYldWdWRITmNiaUFnWTI5dWMzUWdabWxzZEdWeVpXUlFjbTl3Y3lBOUlISmxiVzkyWlZCeWIzQnpLRnh1SUNBZ0lIQnliM0J6TEZ4dUlDQWdJQ2R2YmtWNGFYUmxaQ2NzWEc0Z0lDQWdKMmx1Snl4Y2JpQWdJQ0FuWlc1MFpYSW5MRnh1SUNBZ0lDZGxlR2wwSnl4Y2JpQWdJQ0FuWVhCd1pXRnlKMXh1SUNBcE8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQR2x1Y0hWMFhHNGdJQ0FnSUNCeVpXWTllMmx1Ym1WeVVtVm1mVnh1SUNBZ0lDQWdleTR1TG1acGJIUmxjbVZrVUhKdmNITjlYRzRnSUNBZ0lDQmpjM005ZTN0Y2JpQWdJQ0FnSUNBZ2JHRmlaV3c2SUNka2RXMXRlVWx1Y0hWMEp5eGNiaUFnSUNBZ0lDQWdMeThnWjJWMElISnBaQ0J2WmlCaGJua2daR1ZtWVhWc2RDQnpkSGxzWlhOY2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpEb2dNQ3hjYmlBZ0lDQWdJQ0FnWW05eVpHVnlPaUF3TEZ4dUlDQWdJQ0FnSUNBdkx5QnBiWEJ2Y25SaGJuUWhJSFJvYVhNZ2FHbGtaWE1nZEdobElHWnNZWE5vYVc1bklHTjFjbk52Y2x4dUlDQWdJQ0FnSUNCallYSmxkRU52Ykc5eU9pQW5kSEpoYm5Od1lYSmxiblFuTEZ4dUlDQWdJQ0FnSUNCbWIyNTBVMmw2WlRvZ0oybHVhR1Z5YVhRbkxGeHVJQ0FnSUNBZ0lDQm5jbWxrUVhKbFlUb2dKekVnTHlBeElDOGdNaUF2SURNbkxGeHVJQ0FnSUNBZ0lDQnZkWFJzYVc1bE9pQXdMRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUF3TEZ4dUlDQWdJQ0FnSUNBdkx5QnBiWEJ2Y25SaGJuUWhJSGRwZEdodmRYUWdZSGRwWkhSb1lDQmljbTkzYzJWeWN5QjNiMjRuZENCaGJHeHZkeUJtYjJOMWMxeHVJQ0FnSUNBZ0lDQjNhV1IwYURvZ01TeGNibHh1SUNBZ0lDQWdJQ0F2THlCeVpXMXZkbVVnWTNWeWMyOXlJRzl1SUdSbGMydDBiM0JjYmlBZ0lDQWdJQ0FnWTI5c2IzSTZJQ2QwY21GdWMzQmhjbVZ1ZENjc1hHNWNiaUFnSUNBZ0lDQWdMeThnY21WdGIzWmxJR04xY25OdmNpQnZiaUJ0YjJKcGJHVWdkMmhwYkhOMElHMWhhVzUwWVdsdWFXNW5JRndpYzJOeWIyeHNJR2x1ZEc4Z2RtbGxkMXdpSUdKbGFHRjJhVzkxY2x4dUlDQWdJQ0FnSUNCc1pXWjBPaUF0TVRBd0xGeHVJQ0FnSUNBZ0lDQnZjR0ZqYVhSNU9pQXdMRnh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nSjNKbGJHRjBhWFpsSnl4Y2JpQWdJQ0FnSUNBZ2RISmhibk5tYjNKdE9pQW5jMk5oYkdVb0xqQXhLU2NzWEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5WEc0aVhYMD0gKi9cIilcbiAgfSkpO1xufVxuXG52YXIgY2FuY2VsU2Nyb2xsID0gZnVuY3Rpb24gY2FuY2VsU2Nyb2xsKGV2ZW50KSB7XG4gIGlmIChldmVudC5jYW5jZWxhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn07XG5mdW5jdGlvbiB1c2VTY3JvbGxDYXB0dXJlKF9yZWYpIHtcbiAgdmFyIGlzRW5hYmxlZCA9IF9yZWYuaXNFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlID0gX3JlZi5vbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlID0gX3JlZi5vbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlID0gX3JlZi5vblRvcEFycml2ZSxcbiAgICBvblRvcExlYXZlID0gX3JlZi5vblRvcExlYXZlO1xuICB2YXIgaXNCb3R0b20gPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgaXNUb3AgPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgdG91Y2hTdGFydCA9IHVzZVJlZigwKTtcbiAgdmFyIHNjcm9sbFRhcmdldCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGhhbmRsZUV2ZW50RGVsdGEgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIGRlbHRhKSB7XG4gICAgaWYgKHNjcm9sbFRhcmdldC5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgdmFyIF9zY3JvbGxUYXJnZXQkY3VycmVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50LFxuICAgICAgc2Nyb2xsVG9wID0gX3Njcm9sbFRhcmdldCRjdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxUYXJnZXQkY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQgPSBfc2Nyb2xsVGFyZ2V0JGN1cnJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIHZhciB0YXJnZXQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBzY3JvbGxUb3A7XG4gICAgdmFyIHNob3VsZENhbmNlbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLy8gcmVzZXQgYm90dG9tL3RvcCBmbGFnc1xuICAgIGlmIChhdmFpbGFibGVTY3JvbGwgPiBkZWx0YSAmJiBpc0JvdHRvbS5jdXJyZW50KSB7XG4gICAgICBpZiAob25Cb3R0b21MZWF2ZSkgb25Cb3R0b21MZWF2ZShldmVudCk7XG4gICAgICBpc0JvdHRvbS5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgaXNUb3AuY3VycmVudCkge1xuICAgICAgaWYgKG9uVG9wTGVhdmUpIG9uVG9wTGVhdmUoZXZlbnQpO1xuICAgICAgaXNUb3AuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGJvdHRvbSBsaW1pdFxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgZGVsdGEgPiBhdmFpbGFibGVTY3JvbGwpIHtcbiAgICAgIGlmIChvbkJvdHRvbUFycml2ZSAmJiAhaXNCb3R0b20uY3VycmVudCkge1xuICAgICAgICBvbkJvdHRvbUFycml2ZShldmVudCk7XG4gICAgICB9XG4gICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gc2Nyb2xsSGVpZ2h0O1xuICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIGlzQm90dG9tLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAvLyB0b3AgbGltaXRcbiAgICB9IGVsc2UgaWYgKCFpc0RlbHRhUG9zaXRpdmUgJiYgLWRlbHRhID4gc2Nyb2xsVG9wKSB7XG4gICAgICBpZiAob25Ub3BBcnJpdmUgJiYgIWlzVG9wLmN1cnJlbnQpIHtcbiAgICAgICAgb25Ub3BBcnJpdmUoZXZlbnQpO1xuICAgICAgfVxuICAgICAgdGFyZ2V0LnNjcm9sbFRvcCA9IDA7XG4gICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgICAgaXNUb3AuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gY2FuY2VsIHNjcm9sbFxuICAgIGlmIChzaG91bGRDYW5jZWxTY3JvbGwpIHtcbiAgICAgIGNhbmNlbFNjcm9sbChldmVudCk7XG4gICAgfVxuICB9LCBbb25Cb3R0b21BcnJpdmUsIG9uQm90dG9tTGVhdmUsIG9uVG9wQXJyaXZlLCBvblRvcExlYXZlXSk7XG4gIHZhciBvbldoZWVsID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZXZlbnQuZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIG9uVG91Y2hTdGFydCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIHNldCB0b3VjaCBzdGFydCBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRvdWNobW92ZSBkZWx0YVxuICAgIHRvdWNoU3RhcnQuY3VycmVudCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gIH0sIFtdKTtcbiAgdmFyIG9uVG91Y2hNb3ZlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIGRlbHRhWSA9IHRvdWNoU3RhcnQuY3VycmVudCAtIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIHN0YXJ0TGlzdGVuaW5nID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgLy8gYmFpbCBlYXJseSBpZiBubyBlbGVtZW50IGlzIGF2YWlsYWJsZSB0byBhdHRhY2ggdG9cbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgdmFyIG5vdFBhc3NpdmUgPSBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPyB7XG4gICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0gOiBmYWxzZTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlLCBub3RQYXNzaXZlKTtcbiAgfSwgW29uVG91Y2hNb3ZlLCBvblRvdWNoU3RhcnQsIG9uV2hlZWxdKTtcbiAgdmFyIHN0b3BMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZWwpIHtcbiAgICAvLyBiYWlsIGVhcmx5IGlmIG5vIGVsZW1lbnQgaXMgYXZhaWxhYmxlIHRvIGRldGFjaCBmcm9tXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgZmFsc2UpO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIGZhbHNlKTtcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSwgZmFsc2UpO1xuICB9LCBbb25Ub3VjaE1vdmUsIG9uVG91Y2hTdGFydCwgb25XaGVlbF0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm47XG4gICAgdmFyIGVsZW1lbnQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICBzdGFydExpc3RlbmluZyhlbGVtZW50KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgc3RvcExpc3RlbmluZyhlbGVtZW50KTtcbiAgICB9O1xuICB9LCBbaXNFbmFibGVkLCBzdGFydExpc3RlbmluZywgc3RvcExpc3RlbmluZ10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbnZhciBTVFlMRV9LRVlTID0gWydib3hTaXppbmcnLCAnaGVpZ2h0JywgJ292ZXJmbG93JywgJ3BhZGRpbmdSaWdodCcsICdwb3NpdGlvbiddO1xudmFyIExPQ0tfU1RZTEVTID0ge1xuICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgLy8gYWNjb3VudCBmb3IgcG9zc2libGUgZGVjbGFyYXRpb24gYHdpZHRoOiAxMDAlO2Agb24gYm9keVxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBoZWlnaHQ6ICcxMDAlJ1xufTtcbmZ1bmN0aW9uIHByZXZlbnRUb3VjaE1vdmUoZSkge1xuICBpZiAoZS5jYW5jZWxhYmxlKSBlLnByZXZlbnREZWZhdWx0KCk7XG59XG5mdW5jdGlvbiBhbGxvd1RvdWNoTW92ZShlKSB7XG4gIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5mdW5jdGlvbiBwcmV2ZW50SW5lcnRpYVNjcm9sbCgpIHtcbiAgdmFyIHRvcCA9IHRoaXMuc2Nyb2xsVG9wO1xuICB2YXIgdG90YWxTY3JvbGwgPSB0aGlzLnNjcm9sbEhlaWdodDtcbiAgdmFyIGN1cnJlbnRTY3JvbGwgPSB0b3AgKyB0aGlzLm9mZnNldEhlaWdodDtcbiAgaWYgKHRvcCA9PT0gMCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gMTtcbiAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsID09PSB0b3RhbFNjcm9sbCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gdG9wIC0gMTtcbiAgfVxufVxuXG4vLyBgb250b3VjaHN0YXJ0YCBjaGVjayB3b3JrcyBvbiBtb3N0IGJyb3dzZXJzXG4vLyBgbWF4VG91Y2hQb2ludHNgIHdvcmtzIG9uIElFMTAvMTEgYW5kIFN1cmZhY2VcbmZ1bmN0aW9uIGlzVG91Y2hEZXZpY2UoKSB7XG4gIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzO1xufVxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG52YXIgYWN0aXZlU2Nyb2xsTG9ja3MgPSAwO1xudmFyIGxpc3RlbmVyT3B0aW9ucyA9IHtcbiAgY2FwdHVyZTogZmFsc2UsXG4gIHBhc3NpdmU6IGZhbHNlXG59O1xuZnVuY3Rpb24gdXNlU2Nyb2xsTG9jayhfcmVmKSB7XG4gIHZhciBpc0VuYWJsZWQgPSBfcmVmLmlzRW5hYmxlZCxcbiAgICBfcmVmJGFjY291bnRGb3JTY3JvbGwgPSBfcmVmLmFjY291bnRGb3JTY3JvbGxiYXJzLFxuICAgIGFjY291bnRGb3JTY3JvbGxiYXJzID0gX3JlZiRhY2NvdW50Rm9yU2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiRhY2NvdW50Rm9yU2Nyb2xsO1xuICB2YXIgb3JpZ2luYWxTdHlsZXMgPSB1c2VSZWYoe30pO1xuICB2YXIgc2Nyb2xsVGFyZ2V0ID0gdXNlUmVmKG51bGwpO1xuICB2YXIgYWRkU2Nyb2xsTG9jayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgIGlmICghY2FuVXNlRE9NKSByZXR1cm47XG4gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmJvZHk7XG4gICAgdmFyIHRhcmdldFN0eWxlID0gdGFyZ2V0ICYmIHRhcmdldC5zdHlsZTtcbiAgICBpZiAoYWNjb3VudEZvclNjcm9sbGJhcnMpIHtcbiAgICAgIC8vIHN0b3JlIGFueSBzdHlsZXMgYWxyZWFkeSBhcHBsaWVkIHRvIHRoZSBib2R5XG4gICAgICBTVFlMRV9LRVlTLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gdGFyZ2V0U3R5bGUgJiYgdGFyZ2V0U3R5bGVba2V5XTtcbiAgICAgICAgb3JpZ2luYWxTdHlsZXMuY3VycmVudFtrZXldID0gdmFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdGhlIGxvY2sgc3R5bGVzIGFuZCBwYWRkaW5nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHNjcm9sbCBsb2NrXG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQob3JpZ2luYWxTdHlsZXMuY3VycmVudC5wYWRkaW5nUmlnaHQsIDEwKSB8fCAwO1xuICAgICAgdmFyIGNsaWVudFdpZHRoID0gZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAwO1xuICAgICAgdmFyIGFkanVzdGVkUGFkZGluZyA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY2xpZW50V2lkdGggKyBjdXJyZW50UGFkZGluZyB8fCAwO1xuICAgICAgT2JqZWN0LmtleXMoTE9DS19TVFlMRVMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gTE9DS19TVFlMRVNba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGFyZ2V0U3R5bGUpIHtcbiAgICAgICAgdGFyZ2V0U3R5bGUucGFkZGluZ1JpZ2h0ID0gXCJcIi5jb25jYXQoYWRqdXN0ZWRQYWRkaW5nLCBcInB4XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFjY291bnQgZm9yIHRvdWNoIGRldmljZXNcbiAgICBpZiAodGFyZ2V0ICYmIGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgLy8gTW9iaWxlIFNhZmFyaSBpZ25vcmVzIHsgb3ZlcmZsb3c6IGhpZGRlbiB9IGRlY2xhcmF0aW9uIG9uIHRoZSBib2R5LlxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHByZXZlbnRUb3VjaE1vdmUsIGxpc3RlbmVyT3B0aW9ucyk7XG5cbiAgICAgIC8vIEFsbG93IHNjcm9sbCBvbiBwcm92aWRlZCB0YXJnZXRcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgKz0gMTtcbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHZhciByZW1vdmVTY3JvbGxMb2NrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoU2Nyb2xsVGFyZ2V0KSB7XG4gICAgaWYgKCFjYW5Vc2VET00pIHJldHVybjtcbiAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgdGFyZ2V0U3R5bGUgPSB0YXJnZXQgJiYgdGFyZ2V0LnN0eWxlO1xuXG4gICAgLy8gc2FmZWx5IGRlY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgPSBNYXRoLm1heChhY3RpdmVTY3JvbGxMb2NrcyAtIDEsIDApO1xuXG4gICAgLy8gcmVhcHBseSBvcmlnaW5hbCBib2R5IHN0eWxlcywgaWYgYW55XG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgU1RZTEVfS0VZUy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG9yaWdpbmFsU3R5bGVzLmN1cnJlbnRba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRvdWNoIGxpc3RlbmVyc1xuICAgIGlmICh0YXJnZXQgJiYgaXNUb3VjaERldmljZSgpKSB7XG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgcHJldmVudFRvdWNoTW92ZSwgbGlzdGVuZXJPcHRpb25zKTtcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFpc0VuYWJsZWQpIHJldHVybjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50O1xuICAgIGFkZFNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW92ZVNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2lzRW5hYmxlZCwgYWRkU2Nyb2xsTG9jaywgcmVtb3ZlU2Nyb2xsTG9ja10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDEoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxudmFyIGJsdXJTZWxlY3RJbnB1dCA9IGZ1bmN0aW9uIGJsdXJTZWxlY3RJbnB1dChldmVudCkge1xuICB2YXIgZWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbn07XG52YXIgX3JlZjIkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxa2ZkYjBlXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MFwiXG59IDoge1xuICBuYW1lOiBcImJwOGN1YS1TY3JvbGxNYW5hZ2VyXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MDtsYWJlbDpTY3JvbGxNYW5hZ2VyO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxOamNtOXNiRTFoYm1GblpYSXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVc5RVZTSXNJbVpwYkdVaU9pSlRZM0p2Ykd4TllXNWhaMlZ5TG5SemVDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2lCQWFuTjRJR3B6ZUNBcUwxeHVhVzF3YjNKMElIc2dhbk40SUgwZ1puSnZiU0FuUUdWdGIzUnBiMjR2Y21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnUm5KaFoyMWxiblFzSUZKbFlXTjBSV3hsYldWdWRDd2dVbVZtUTJGc2JHSmhZMnNzSUUxdmRYTmxSWFpsYm5RZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZFhObFUyTnliMnhzUTJGd2RIVnlaU0JtY205dElDY3VMM1Z6WlZOamNtOXNiRU5oY0hSMWNtVW5PMXh1YVcxd2IzSjBJSFZ6WlZOamNtOXNiRXh2WTJzZ1puSnZiU0FuTGk5MWMyVlRZM0p2Ykd4TWIyTnJKenRjYmx4dWFXNTBaWEptWVdObElGQnliM0J6SUh0Y2JpQWdjbVZoWkc5dWJIa2dZMmhwYkdSeVpXNDZJQ2h5WldZNklGSmxaa05oYkd4aVlXTnJQRWhVVFV4RmJHVnRaVzUwUGlrZ1BUNGdVbVZoWTNSRmJHVnRaVzUwTzF4dUlDQnlaV0ZrYjI1c2VTQnNiMk5yUlc1aFlteGxaRG9nWW05dmJHVmhianRjYmlBZ2NtVmhaRzl1YkhrZ1kyRndkSFZ5WlVWdVlXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lISmxZV1J2Ym14NUlHOXVRbTkwZEc5dFFYSnlhWFpsUHpvZ0tHVjJaVzUwT2lCWGFHVmxiRVYyWlc1MElId2dWRzkxWTJoRmRtVnVkQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2NtVmhaRzl1YkhrZ2IyNUNiM1IwYjIxTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzRnSUhKbFlXUnZibXg1SUc5dVZHOXdRWEp5YVhabFB6b2dLR1YyWlc1ME9pQlhhR1ZsYkVWMlpXNTBJSHdnVkc5MVkyaEZkbVZ1ZENrZ1BUNGdkbTlwWkR0Y2JpQWdjbVZoWkc5dWJIa2diMjVVYjNCTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzU5WEc1Y2JtTnZibk4wSUdKc2RYSlRaV3hsWTNSSmJuQjFkQ0E5SUNobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZER4SVZFMU1SR2wyUld4bGJXVnVkRDRwSUQwK0lIdGNiaUFnWTI5dWMzUWdaV3hsYldWdWRDQTlJR1YyWlc1MExuUmhjbWRsZENCaGN5QklWRTFNUkdsMlJXeGxiV1Z1ZER0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCbGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENCaGN5QklWRTFNUld4bGJXVnVkQ2t1WW14MWNpZ3BYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaUJUWTNKdmJHeE5ZVzVoWjJWeUtIdGNiaUFnWTJocGJHUnlaVzRzWEc0Z0lHeHZZMnRGYm1GaWJHVmtMRnh1SUNCallYQjBkWEpsUlc1aFlteGxaQ0E5SUhSeWRXVXNYRzRnSUc5dVFtOTBkRzl0UVhKeWFYWmxMRnh1SUNCdmJrSnZkSFJ2YlV4bFlYWmxMRnh1SUNCdmJsUnZjRUZ5Y21sMlpTeGNiaUFnYjI1VWIzQk1aV0YyWlN4Y2JuMDZJRkJ5YjNCektTQjdYRzRnSUdOdmJuTjBJSE5sZEZOamNtOXNiRU5oY0hSMWNtVlVZWEpuWlhRZ1BTQjFjMlZUWTNKdmJHeERZWEIwZFhKbEtIdGNiaUFnSUNCcGMwVnVZV0pzWldRNklHTmhjSFIxY21WRmJtRmliR1ZrTEZ4dUlDQWdJRzl1UW05MGRHOXRRWEp5YVhabExGeHVJQ0FnSUc5dVFtOTBkRzl0VEdWaGRtVXNYRzRnSUNBZ2IyNVViM0JCY25KcGRtVXNYRzRnSUNBZ2IyNVViM0JNWldGMlpTeGNiaUFnZlNrN1hHNGdJR052Ym5OMElITmxkRk5qY205c2JFeHZZMnRVWVhKblpYUWdQU0IxYzJWVFkzSnZiR3hNYjJOcktIc2dhWE5GYm1GaWJHVmtPaUJzYjJOclJXNWhZbXhsWkNCOUtUdGNibHh1SUNCamIyNXpkQ0IwWVhKblpYUlNaV1k2SUZKbFprTmhiR3hpWVdOclBFaFVUVXhGYkdWdFpXNTBQaUE5SUNobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2MyVjBVMk55YjJ4c1EyRndkSFZ5WlZSaGNtZGxkQ2hsYkdWdFpXNTBLVHRjYmlBZ0lDQnpaWFJUWTNKdmJHeE1iMk5yVkdGeVoyVjBLR1ZzWlcxbGJuUXBPMXh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRVp5WVdkdFpXNTBQbHh1SUNBZ0lDQWdlMnh2WTJ0RmJtRmliR1ZrSUNZbUlDaGNiaUFnSUNBZ0lDQWdQR1JwZGx4dUlDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWUySnNkWEpUWld4bFkzUkpibkIxZEgxY2JpQWdJQ0FnSUNBZ0lDQmpjM005ZTNzZ2NHOXphWFJwYjI0NklDZG1hWGhsWkNjc0lHeGxablE2SURBc0lHSnZkSFJ2YlRvZ01Dd2djbWxuYUhRNklEQXNJSFJ2Y0RvZ01DQjlmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUh0amFHbHNaSEpsYmloMFlYSm5aWFJTWldZcGZWeHVJQ0FnSUR3dlJuSmhaMjFsYm5RK1hHNGdJQ2s3WEc1OVhHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQxXG59O1xuZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgbG9ja0VuYWJsZWQgPSBfcmVmLmxvY2tFbmFibGVkLFxuICAgIF9yZWYkY2FwdHVyZUVuYWJsZWQgPSBfcmVmLmNhcHR1cmVFbmFibGVkLFxuICAgIGNhcHR1cmVFbmFibGVkID0gX3JlZiRjYXB0dXJlRW5hYmxlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkY2FwdHVyZUVuYWJsZWQsXG4gICAgb25Cb3R0b21BcnJpdmUgPSBfcmVmLm9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUgPSBfcmVmLm9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUgPSBfcmVmLm9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUgPSBfcmVmLm9uVG9wTGVhdmU7XG4gIHZhciBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZTogb25Cb3R0b21BcnJpdmUsXG4gICAgb25Cb3R0b21MZWF2ZTogb25Cb3R0b21MZWF2ZSxcbiAgICBvblRvcEFycml2ZTogb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZTogb25Ub3BMZWF2ZVxuICB9KTtcbiAgdmFyIHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHtcbiAgICBpc0VuYWJsZWQ6IGxvY2tFbmFibGVkXG4gIH0pO1xuICB2YXIgdGFyZ2V0UmVmID0gZnVuY3Rpb24gdGFyZ2V0UmVmKGVsZW1lbnQpIHtcbiAgICBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0KGVsZW1lbnQpO1xuICAgIHNldFNjcm9sbExvY2tUYXJnZXQoZWxlbWVudCk7XG4gIH07XG4gIHJldHVybiBqc3goRnJhZ21lbnQsIG51bGwsIGxvY2tFbmFibGVkICYmIGpzeChcImRpdlwiLCB7XG4gICAgb25DbGljazogYmx1clNlbGVjdElucHV0LFxuICAgIGNzczogX3JlZjIkMVxuICB9KSwgY2hpbGRyZW4odGFyZ2V0UmVmKSk7XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fKCkgeyByZXR1cm4gXCJZb3UgaGF2ZSB0cmllZCB0byBzdHJpbmdpZnkgb2JqZWN0IHJldHVybmVkIGZyb20gYGNzc2AgZnVuY3Rpb24uIEl0IGlzbid0IHN1cHBvc2VkIHRvIGJlIHVzZWQgZGlyZWN0bHkgKGUuZy4gYXMgdmFsdWUgb2YgdGhlIGBjbGFzc05hbWVgIHByb3ApLCBidXQgcmF0aGVyIGhhbmRlZCB0byBlbW90aW9uIHNvIGl0IGNhbiBoYW5kbGUgaXQgKGUuZy4gYXMgdmFsdWUgb2YgYGNzc2AgcHJvcCkuXCI7IH1cbnZhciBfcmVmMiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxYTBybzRuLXJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJVwiXG59IDoge1xuICBuYW1lOiBcIjVra3hiMi1yZXF1aXJlZElucHV0LVJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtsYWJlbDpSZXF1aXJlZElucHV0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxKbGNYVnBjbVZrU1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdOSklpd2labWxzWlNJNklsSmxjWFZwY21Wa1NXNXdkWFF1ZEhONElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xSUVCcWMzZ2dhbk40SUNvdlhHNXBiWEJ2Y25RZ2V5QkdiMk4xYzBWMlpXNTBTR0Z1Wkd4bGNpd2dSblZ1WTNScGIyNURiMjF3YjI1bGJuUWdmU0JtY205dElDZHlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnFjM2dnZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1OdmJuTjBJRkpsY1hWcGNtVmtTVzV3ZFhRNklFWjFibU4wYVc5dVEyOXRjRzl1Wlc1MFBIdGNiaUFnY21WaFpHOXViSGtnYm1GdFpUODZJSE4wY21sdVp6dGNiaUFnY21WaFpHOXViSGtnYjI1R2IyTjFjem9nUm05amRYTkZkbVZ1ZEVoaGJtUnNaWEk4U0ZSTlRFbHVjSFYwUld4bGJXVnVkRDQ3WEc1OVBpQTlJQ2g3SUc1aGJXVXNJRzl1Um05amRYTWdmU2tnUFQ0Z0tGeHVJQ0E4YVc1d2RYUmNiaUFnSUNCeVpYRjFhWEpsWkZ4dUlDQWdJRzVoYldVOWUyNWhiV1Y5WEc0Z0lDQWdkR0ZpU1c1a1pYZzlleTB4ZlZ4dUlDQWdJR0Z5YVdFdGFHbGtaR1Z1UFZ3aWRISjFaVndpWEc0Z0lDQWdiMjVHYjJOMWN6MTdiMjVHYjJOMWMzMWNiaUFnSUNCamMzTTllM3RjYmlBZ0lDQWdJR3hoWW1Wc09pQW5jbVZ4ZFdseVpXUkpibkIxZENjc1hHNGdJQ0FnSUNCdmNHRmphWFI1T2lBd0xGeHVJQ0FnSUNBZ2NHOXBiblJsY2tWMlpXNTBjem9nSjI1dmJtVW5MRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJQ2RoWW5OdmJIVjBaU2NzWEc0Z0lDQWdJQ0JpYjNSMGIyMDZJREFzWEc0Z0lDQWdJQ0JzWldaME9pQXdMRnh1SUNBZ0lDQWdjbWxuYUhRNklEQXNYRzRnSUNBZ0lDQjNhV1IwYURvZ0p6RXdNQ1VuTEZ4dUlDQWdJSDE5WEc0Z0lDQWdMeThnVUhKbGRtVnVkQ0JnVTNkcGRHTm9hVzVuSUdaeWIyMGdkVzVqYjI1MGNtOXNiR1ZrSUhSdklHTnZiblJ5YjJ4c1pXUmdJR1Z5Y205eVhHNGdJQ0FnZG1Gc2RXVTlYQ0pjSWx4dUlDQWdJRzl1UTJoaGJtZGxQWHNvS1NBOVBpQjdmWDFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUZKbGNYVnBjbVZrU1c1d2RYUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX19cbn07XG52YXIgUmVxdWlyZWRJbnB1dCA9IGZ1bmN0aW9uIFJlcXVpcmVkSW5wdXQoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwge1xuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICBjc3M6IF9yZWYyXG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgLFxuICAgIHZhbHVlOiBcIlwiLFxuICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9XG4gIH0pO1xufTtcbnZhciBSZXF1aXJlZElucHV0JDEgPSBSZXF1aXJlZElucHV0O1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInVzZXItYWdlbnQtZGF0YS10eXBlc1wiIC8+XG5cbmZ1bmN0aW9uIHRlc3RQbGF0Zm9ybShyZSkge1xuICB2YXIgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlO1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAhPSBudWxsID8gcmUudGVzdCgoKF93aW5kb3ckbmF2aWdhdG9yJHVzZSA9IHdpbmRvdy5uYXZpZ2F0b3JbJ3VzZXJBZ2VudERhdGEnXSkgPT09IG51bGwgfHwgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfd2luZG93JG5hdmlnYXRvciR1c2UucGxhdGZvcm0pIHx8IHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pIDogZmFsc2U7XG59XG5mdW5jdGlvbiBpc0lQaG9uZSgpIHtcbiAgcmV0dXJuIHRlc3RQbGF0Zm9ybSgvXmlQaG9uZS9pKTtcbn1cbmZ1bmN0aW9uIGlzTWFjKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eTWFjL2kpO1xufVxuZnVuY3Rpb24gaXNJUGFkKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eaVBhZC9pKSB8fFxuICAvLyBpUGFkT1MgMTMgbGllcyBhbmQgc2F5cyBpdCdzIGEgTWFjLCBidXQgd2UgY2FuIGRpc3Rpbmd1aXNoIGJ5IGRldGVjdGluZyB0b3VjaCBzdXBwb3J0LlxuICBpc01hYygpICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDE7XG59XG5mdW5jdGlvbiBpc0lPUygpIHtcbiAgcmV0dXJuIGlzSVBob25lKCkgfHwgaXNJUGFkKCk7XG59XG5mdW5jdGlvbiBpc0FwcGxlRGV2aWNlKCkge1xuICByZXR1cm4gaXNNYWMoKSB8fCBpc0lPUygpO1xufVxuXG52YXIgZm9ybWF0R3JvdXBMYWJlbCA9IGZ1bmN0aW9uIGZvcm1hdEdyb3VwTGFiZWwoZ3JvdXApIHtcbiAgcmV0dXJuIGdyb3VwLmxhYmVsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCQxID0gZnVuY3Rpb24gZ2V0T3B0aW9uTGFiZWwob3B0aW9uKSB7XG4gIHJldHVybiBvcHRpb24ubGFiZWw7XG59O1xudmFyIGdldE9wdGlvblZhbHVlJDEgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShvcHRpb24pIHtcbiAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbn07XG52YXIgaXNPcHRpb25EaXNhYmxlZCA9IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKSB7XG4gIHJldHVybiAhIW9wdGlvbi5pc0Rpc2FibGVkO1xufTtcblxudmFyIGRlZmF1bHRTdHlsZXMgPSB7XG4gIGNsZWFySW5kaWNhdG9yOiBjbGVhckluZGljYXRvckNTUyxcbiAgY29udGFpbmVyOiBjb250YWluZXJDU1MsXG4gIGNvbnRyb2w6IGNzcyQxLFxuICBkcm9wZG93bkluZGljYXRvcjogZHJvcGRvd25JbmRpY2F0b3JDU1MsXG4gIGdyb3VwOiBncm91cENTUyxcbiAgZ3JvdXBIZWFkaW5nOiBncm91cEhlYWRpbmdDU1MsXG4gIGluZGljYXRvcnNDb250YWluZXI6IGluZGljYXRvcnNDb250YWluZXJDU1MsXG4gIGluZGljYXRvclNlcGFyYXRvcjogaW5kaWNhdG9yU2VwYXJhdG9yQ1NTLFxuICBpbnB1dDogaW5wdXRDU1MsXG4gIGxvYWRpbmdJbmRpY2F0b3I6IGxvYWRpbmdJbmRpY2F0b3JDU1MsXG4gIGxvYWRpbmdNZXNzYWdlOiBsb2FkaW5nTWVzc2FnZUNTUyxcbiAgbWVudTogbWVudUNTUyxcbiAgbWVudUxpc3Q6IG1lbnVMaXN0Q1NTLFxuICBtZW51UG9ydGFsOiBtZW51UG9ydGFsQ1NTLFxuICBtdWx0aVZhbHVlOiBtdWx0aVZhbHVlQ1NTLFxuICBtdWx0aVZhbHVlTGFiZWw6IG11bHRpVmFsdWVMYWJlbENTUyxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogbXVsdGlWYWx1ZVJlbW92ZUNTUyxcbiAgbm9PcHRpb25zTWVzc2FnZTogbm9PcHRpb25zTWVzc2FnZUNTUyxcbiAgb3B0aW9uOiBvcHRpb25DU1MsXG4gIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlckNTUyxcbiAgc2luZ2xlVmFsdWU6IGNzcyQyLFxuICB2YWx1ZUNvbnRhaW5lcjogdmFsdWVDb250YWluZXJDU1Ncbn07XG4vLyBNZXJnZSBVdGlsaXR5XG4vLyBBbGxvd3MgY29uc3VtZXJzIHRvIGV4dGVuZCBhIGJhc2UgU2VsZWN0IHdpdGggYWRkaXRpb25hbCBzdHlsZXNcblxuZnVuY3Rpb24gbWVyZ2VTdHlsZXMoc291cmNlKSB7XG4gIHZhciB0YXJnZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAvLyBpbml0aWFsaXplIHdpdGggc291cmNlIHN0eWxlc1xuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZCh7fSwgc291cmNlKTtcblxuICAvLyBtYXNzYWdlIGluIHRhcmdldCBzdHlsZXNcbiAgT2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlBc1N0cmluZykge1xuICAgIHZhciBrZXkgPSBrZXlBc1N0cmluZztcbiAgICBpZiAoc291cmNlW2tleV0pIHtcbiAgICAgIHN0eWxlc1trZXldID0gZnVuY3Rpb24gKHJzQ3NzLCBwcm9wcykge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0oc291cmNlW2tleV0ocnNDc3MsIHByb3BzKSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzW2tleV0gPSB0YXJnZXRba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3R5bGVzO1xufVxuXG52YXIgY29sb3JzID0ge1xuICBwcmltYXJ5OiAnIzI2ODRGRicsXG4gIHByaW1hcnk3NTogJyM0QzlBRkYnLFxuICBwcmltYXJ5NTA6ICcjQjJENEZGJyxcbiAgcHJpbWFyeTI1OiAnI0RFRUJGRicsXG4gIGRhbmdlcjogJyNERTM1MEInLFxuICBkYW5nZXJMaWdodDogJyNGRkJEQUQnLFxuICBuZXV0cmFsMDogJ2hzbCgwLCAwJSwgMTAwJSknLFxuICBuZXV0cmFsNTogJ2hzbCgwLCAwJSwgOTUlKScsXG4gIG5ldXRyYWwxMDogJ2hzbCgwLCAwJSwgOTAlKScsXG4gIG5ldXRyYWwyMDogJ2hzbCgwLCAwJSwgODAlKScsXG4gIG5ldXRyYWwzMDogJ2hzbCgwLCAwJSwgNzAlKScsXG4gIG5ldXRyYWw0MDogJ2hzbCgwLCAwJSwgNjAlKScsXG4gIG5ldXRyYWw1MDogJ2hzbCgwLCAwJSwgNTAlKScsXG4gIG5ldXRyYWw2MDogJ2hzbCgwLCAwJSwgNDAlKScsXG4gIG5ldXRyYWw3MDogJ2hzbCgwLCAwJSwgMzAlKScsXG4gIG5ldXRyYWw4MDogJ2hzbCgwLCAwJSwgMjAlKScsXG4gIG5ldXRyYWw5MDogJ2hzbCgwLCAwJSwgMTAlKSdcbn07XG52YXIgYm9yZGVyUmFkaXVzID0gNDtcbi8vIFVzZWQgdG8gY2FsY3VsYXRlIGNvbnNpc3RlbnQgbWFyZ2luL3BhZGRpbmcgb24gZWxlbWVudHNcbnZhciBiYXNlVW5pdCA9IDQ7XG4vLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGNvbnRyb2xcbnZhciBjb250cm9sSGVpZ2h0ID0gMzg7XG4vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRyb2wgYW5kIG1lbnUgKi9cbnZhciBtZW51R3V0dGVyID0gYmFzZVVuaXQgKiAyO1xudmFyIHNwYWNpbmcgPSB7XG4gIGJhc2VVbml0OiBiYXNlVW5pdCxcbiAgY29udHJvbEhlaWdodDogY29udHJvbEhlaWdodCxcbiAgbWVudUd1dHRlcjogbWVudUd1dHRlclxufTtcbnZhciBkZWZhdWx0VGhlbWUgPSB7XG4gIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICBjb2xvcnM6IGNvbG9ycyxcbiAgc3BhY2luZzogc3BhY2luZ1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgJ2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU6IHRydWUsXG4gIGJsdXJJbnB1dE9uU2VsZWN0OiBpc1RvdWNoQ2FwYWJsZSgpLFxuICBjYXB0dXJlTWVudVNjcm9sbDogIWlzVG91Y2hDYXBhYmxlKCksXG4gIGNsYXNzTmFtZXM6IHt9LFxuICBjbG9zZU1lbnVPblNlbGVjdDogdHJ1ZSxcbiAgY2xvc2VNZW51T25TY3JvbGw6IGZhbHNlLFxuICBjb21wb25lbnRzOiB7fSxcbiAgY29udHJvbFNob3VsZFJlbmRlclZhbHVlOiB0cnVlLFxuICBlc2NhcGVDbGVhcnNWYWx1ZTogZmFsc2UsXG4gIGZpbHRlck9wdGlvbjogY3JlYXRlRmlsdGVyKCksXG4gIGZvcm1hdEdyb3VwTGFiZWw6IGZvcm1hdEdyb3VwTGFiZWwsXG4gIGdldE9wdGlvbkxhYmVsOiBnZXRPcHRpb25MYWJlbCQxLFxuICBnZXRPcHRpb25WYWx1ZTogZ2V0T3B0aW9uVmFsdWUkMSxcbiAgaXNEaXNhYmxlZDogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIGlzTXVsdGk6IGZhbHNlLFxuICBpc1J0bDogZmFsc2UsXG4gIGlzU2VhcmNoYWJsZTogdHJ1ZSxcbiAgaXNPcHRpb25EaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZCxcbiAgbG9hZGluZ01lc3NhZ2U6IGZ1bmN0aW9uIGxvYWRpbmdNZXNzYWdlKCkge1xuICAgIHJldHVybiAnTG9hZGluZy4uLic7XG4gIH0sXG4gIG1heE1lbnVIZWlnaHQ6IDMwMCxcbiAgbWluTWVudUhlaWdodDogMTQwLFxuICBtZW51SXNPcGVuOiBmYWxzZSxcbiAgbWVudVBsYWNlbWVudDogJ2JvdHRvbScsXG4gIG1lbnVQb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgbWVudVNob3VsZEJsb2NrU2Nyb2xsOiBmYWxzZSxcbiAgbWVudVNob3VsZFNjcm9sbEludG9WaWV3OiAhaXNNb2JpbGVEZXZpY2UoKSxcbiAgbm9PcHRpb25zTWVzc2FnZTogZnVuY3Rpb24gbm9PcHRpb25zTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gJ05vIG9wdGlvbnMnO1xuICB9LFxuICBvcGVuTWVudU9uRm9jdXM6IGZhbHNlLFxuICBvcGVuTWVudU9uQ2xpY2s6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBwYWdlU2l6ZTogNSxcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QuLi4nLFxuICBzY3JlZW5SZWFkZXJTdGF0dXM6IGZ1bmN0aW9uIHNjcmVlblJlYWRlclN0YXR1cyhfcmVmKSB7XG4gICAgdmFyIGNvdW50ID0gX3JlZi5jb3VudDtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoY291bnQsIFwiIHJlc3VsdFwiKS5jb25jYXQoY291bnQgIT09IDEgPyAncycgOiAnJywgXCIgYXZhaWxhYmxlXCIpO1xuICB9LFxuICBzdHlsZXM6IHt9LFxuICB0YWJJbmRleDogMCxcbiAgdGFiU2VsZWN0c1ZhbHVlOiB0cnVlLFxuICB1bnN0eWxlZDogZmFsc2Vcbn07XG5mdW5jdGlvbiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBpbmRleCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9pc09wdGlvbkRpc2FibGVkKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlKTtcbiAgdmFyIGlzU2VsZWN0ZWQgPSBfaXNPcHRpb25TZWxlY3RlZChwcm9wcywgb3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIHZhciBsYWJlbCA9IGdldE9wdGlvbkxhYmVsKHByb3BzLCBvcHRpb24pO1xuICB2YXIgdmFsdWUgPSBnZXRPcHRpb25WYWx1ZShwcm9wcywgb3B0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnb3B0aW9uJyxcbiAgICBkYXRhOiBvcHRpb24sXG4gICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgaW5kZXg6IGluZGV4XG4gIH07XG59XG5mdW5jdGlvbiBidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChncm91cE9yT3B0aW9uLCBncm91cE9yT3B0aW9uSW5kZXgpIHtcbiAgICBpZiAoJ29wdGlvbnMnIGluIGdyb3VwT3JPcHRpb24pIHtcbiAgICAgIHZhciBjYXRlZ29yaXplZE9wdGlvbnMgPSBncm91cE9yT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24sIG9wdGlvbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBvcHRpb25JbmRleCk7XG4gICAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBpc0ZvY3VzYWJsZShwcm9wcywgY2F0ZWdvcml6ZWRPcHRpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2F0ZWdvcml6ZWRPcHRpb25zLmxlbmd0aCA+IDAgPyB7XG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIGRhdGE6IGdyb3VwT3JPcHRpb24sXG4gICAgICAgIG9wdGlvbnM6IGNhdGVnb3JpemVkT3B0aW9ucyxcbiAgICAgICAgaW5kZXg6IGdyb3VwT3JPcHRpb25JbmRleFxuICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdmFyIGNhdGVnb3JpemVkT3B0aW9uID0gdG9DYXRlZ29yaXplZE9wdGlvbihwcm9wcywgZ3JvdXBPck9wdGlvbiwgc2VsZWN0VmFsdWUsIGdyb3VwT3JPcHRpb25JbmRleCk7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikgPyBjYXRlZ29yaXplZE9wdGlvbiA6IHVuZGVmaW5lZDtcbiAgfSkuZmlsdGVyKG5vdE51bGxpc2gpO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhjYXRlZ29yaXplZE9wdGlvbnMpIHtcbiAgcmV0dXJuIGNhdGVnb3JpemVkT3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24gKG9wdGlvbnNBY2N1bXVsYXRvciwgY2F0ZWdvcml6ZWRPcHRpb24pIHtcbiAgICBpZiAoY2F0ZWdvcml6ZWRPcHRpb24udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2guYXBwbHkob3B0aW9uc0FjY3VtdWxhdG9yLCBfdG9Db25zdW1hYmxlQXJyYXkoY2F0ZWdvcml6ZWRPcHRpb24ub3B0aW9ucy5tYXAoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gb3B0aW9uLmRhdGE7XG4gICAgICB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zQWNjdW11bGF0b3IucHVzaChjYXRlZ29yaXplZE9wdGlvbi5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zV2l0aElkcyhjYXRlZ29yaXplZE9wdGlvbnMsIG9wdGlvbklkKSB7XG4gIHJldHVybiBjYXRlZ29yaXplZE9wdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChvcHRpb25zQWNjdW11bGF0b3IsIGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgaWYgKGNhdGVnb3JpemVkT3B0aW9uLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgIG9wdGlvbnNBY2N1bXVsYXRvci5wdXNoLmFwcGx5KG9wdGlvbnNBY2N1bXVsYXRvciwgX3RvQ29uc3VtYWJsZUFycmF5KGNhdGVnb3JpemVkT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YSxcbiAgICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KVxuICAgICAgICB9O1xuICAgICAgfSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2goe1xuICAgICAgICBkYXRhOiBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSkge1xuICByZXR1cm4gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikge1xuICB2YXIgX3Byb3BzJGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgIGlucHV0VmFsdWUgPSBfcHJvcHMkaW5wdXRWYWx1ZSA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkaW5wdXRWYWx1ZTtcbiAgdmFyIGRhdGEgPSBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgIGlzU2VsZWN0ZWQgPSBjYXRlZ29yaXplZE9wdGlvbi5pc1NlbGVjdGVkLFxuICAgIGxhYmVsID0gY2F0ZWdvcml6ZWRPcHRpb24ubGFiZWwsXG4gICAgdmFsdWUgPSBjYXRlZ29yaXplZE9wdGlvbi52YWx1ZTtcbiAgcmV0dXJuICghc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykgfHwgIWlzU2VsZWN0ZWQpICYmIF9maWx0ZXJPcHRpb24ocHJvcHMsIHtcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGRhdGE6IGRhdGFcbiAgfSwgaW5wdXRWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXROZXh0Rm9jdXNlZFZhbHVlKHN0YXRlLCBuZXh0U2VsZWN0VmFsdWUpIHtcbiAgdmFyIGZvY3VzZWRWYWx1ZSA9IHN0YXRlLmZvY3VzZWRWYWx1ZSxcbiAgICBsYXN0U2VsZWN0VmFsdWUgPSBzdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgdmFyIGxhc3RGb2N1c2VkSW5kZXggPSBsYXN0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICBpZiAobGFzdEZvY3VzZWRJbmRleCA+IC0xKSB7XG4gICAgdmFyIG5leHRGb2N1c2VkSW5kZXggPSBuZXh0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICAgIGlmIChuZXh0Rm9jdXNlZEluZGV4ID4gLTEpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkIHZhbHVlIGlzIHN0aWxsIGluIHRoZSBzZWxlY3RWYWx1ZSwgcmV0dXJuIGl0XG4gICAgICByZXR1cm4gZm9jdXNlZFZhbHVlO1xuICAgIH0gZWxzZSBpZiAobGFzdEZvY3VzZWRJbmRleCA8IG5leHRTZWxlY3RWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkVmFsdWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIG5leHQgc2VsZWN0VmFsdWUgYXJyYXkgYnlcbiAgICAgIC8vIHJlZmVyZW5jZSwgc28gcmV0dXJuIHRoZSBuZXcgdmFsdWUgYXQgdGhlIHNhbWUgaW5kZXhcbiAgICAgIHJldHVybiBuZXh0U2VsZWN0VmFsdWVbbGFzdEZvY3VzZWRJbmRleF07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RGb2N1c2VkT3B0aW9uID0gc3RhdGUuZm9jdXNlZE9wdGlvbjtcbiAgcmV0dXJuIGxhc3RGb2N1c2VkT3B0aW9uICYmIG9wdGlvbnMuaW5kZXhPZihsYXN0Rm9jdXNlZE9wdGlvbikgPiAtMSA/IGxhc3RGb2N1c2VkT3B0aW9uIDogb3B0aW9uc1swXTtcbn1cbnZhciBnZXRGb2N1c2VkT3B0aW9uSWQgPSBmdW5jdGlvbiBnZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsIGZvY3VzZWRPcHRpb24pIHtcbiAgdmFyIF9mb2N1c2FibGVPcHRpb25zV2l0aDtcbiAgdmFyIGZvY3VzZWRPcHRpb25JZCA9IChfZm9jdXNhYmxlT3B0aW9uc1dpdGggPSBmb2N1c2FibGVPcHRpb25zV2l0aElkcy5maW5kKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uLmRhdGEgPT09IGZvY3VzZWRPcHRpb247XG4gIH0pKSA9PT0gbnVsbCB8fCBfZm9jdXNhYmxlT3B0aW9uc1dpdGggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mb2N1c2FibGVPcHRpb25zV2l0aC5pZDtcbiAgcmV0dXJuIGZvY3VzZWRPcHRpb25JZCB8fCBudWxsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIGdldE9wdGlvbkxhYmVsKHByb3BzLCBkYXRhKSB7XG4gIHJldHVybiBwcm9wcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbn07XG52YXIgZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShwcm9wcywgZGF0YSkge1xuICByZXR1cm4gcHJvcHMuZ2V0T3B0aW9uVmFsdWUoZGF0YSk7XG59O1xuZnVuY3Rpb24gX2lzT3B0aW9uRGlzYWJsZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pc09wdGlvbkRpc2FibGVkID09PSAnZnVuY3Rpb24nID8gcHJvcHMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24sIHNlbGVjdFZhbHVlKSA6IGZhbHNlO1xufVxuZnVuY3Rpb24gX2lzT3B0aW9uU2VsZWN0ZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgaWYgKHNlbGVjdFZhbHVlLmluZGV4T2Yob3B0aW9uKSA+IC0xKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiBwcm9wcy5pc09wdGlvblNlbGVjdGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHByb3BzLmlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZSA9IGdldE9wdGlvblZhbHVlKHByb3BzLCBvcHRpb24pO1xuICByZXR1cm4gc2VsZWN0VmFsdWUuc29tZShmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBnZXRPcHRpb25WYWx1ZShwcm9wcywgaSkgPT09IGNhbmRpZGF0ZTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfZmlsdGVyT3B0aW9uKHByb3BzLCBvcHRpb24sIGlucHV0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLmZpbHRlck9wdGlvbiA/IHByb3BzLmZpbHRlck9wdGlvbihvcHRpb24sIGlucHV0VmFsdWUpIDogdHJ1ZTtcbn1cbnZhciBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zID0gZnVuY3Rpb24gc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykge1xuICB2YXIgaGlkZVNlbGVjdGVkT3B0aW9ucyA9IHByb3BzLmhpZGVTZWxlY3RlZE9wdGlvbnMsXG4gICAgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGk7XG4gIGlmIChoaWRlU2VsZWN0ZWRPcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICByZXR1cm4gaGlkZVNlbGVjdGVkT3B0aW9ucztcbn07XG52YXIgaW5zdGFuY2VJZCA9IDE7XG52YXIgU2VsZWN0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTZWxlY3QsIF9Db21wb25lbnQpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFNlbGVjdCk7XG4gIC8vIE1pc2MuIEluc3RhbmNlIFByb3BlcnRpZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVE9ET1xuXG4gIC8vIFJlZnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGZ1bmN0aW9uIFNlbGVjdChfcHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlbGVjdCk7XG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfcHJvcHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgYXJpYVNlbGVjdGlvbjogbnVsbCxcbiAgICAgIGZvY3VzZWRPcHRpb246IG51bGwsXG4gICAgICBmb2N1c2VkT3B0aW9uSWQ6IG51bGwsXG4gICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogW10sXG4gICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICBpbnB1dElzSGlkZGVuOiBmYWxzZSxcbiAgICAgIGlzRm9jdXNlZDogZmFsc2UsXG4gICAgICBzZWxlY3RWYWx1ZTogW10sXG4gICAgICBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZTogZmFsc2UsXG4gICAgICBwcmV2V2FzRm9jdXNlZDogZmFsc2UsXG4gICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZQcm9wczogdW5kZWZpbmVkLFxuICAgICAgaW5zdGFuY2VQcmVmaXg6ICcnXG4gICAgfTtcbiAgICBfdGhpcy5ibG9ja09wdGlvbkhvdmVyID0gZmFsc2U7XG4gICAgX3RoaXMuaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICBfdGhpcy5jb21tb25Qcm9wcyA9IHZvaWQgMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hZID0gMDtcbiAgICBfdGhpcy5vcGVuQWZ0ZXJGb2N1cyA9IGZhbHNlO1xuICAgIF90aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSB2b2lkIDA7XG4gICAgX3RoaXMuaXNBcHBsZURldmljZSA9IGlzQXBwbGVEZXZpY2UoKTtcbiAgICBfdGhpcy5jb250cm9sUmVmID0gbnVsbDtcbiAgICBfdGhpcy5nZXRDb250cm9sUmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMuY29udHJvbFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzZWRPcHRpb25SZWYgPSBudWxsO1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25SZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5mb2N1c2VkT3B0aW9uUmVmID0gcmVmO1xuICAgIH07XG4gICAgX3RoaXMubWVudUxpc3RSZWYgPSBudWxsO1xuICAgIF90aGlzLmdldE1lbnVMaXN0UmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMubWVudUxpc3RSZWYgPSByZWY7XG4gICAgfTtcbiAgICBfdGhpcy5pbnB1dFJlZiA9IG51bGw7XG4gICAgX3RoaXMuZ2V0SW5wdXRSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5pbnB1dFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzID0gX3RoaXMuZm9jdXNJbnB1dDtcbiAgICBfdGhpcy5ibHVyID0gX3RoaXMuYmx1cklucHV0O1xuICAgIF90aGlzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgb25DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbkNoYW5nZSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWU7XG4gICAgICBhY3Rpb25NZXRhLm5hbWUgPSBuYW1lO1xuICAgICAgX3RoaXMuYXJpYU9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9O1xuICAgIF90aGlzLnNldFZhbHVlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb24sIG9wdGlvbikge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICBjbG9zZU1lbnVPblNlbGVjdCA9IF90aGlzJHByb3BzMi5jbG9zZU1lbnVPblNlbGVjdCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMi5pc011bHRpLFxuICAgICAgICBpbnB1dFZhbHVlID0gX3RoaXMkcHJvcHMyLmlucHV0VmFsdWU7XG4gICAgICBfdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ3NldC12YWx1ZScsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIGlmIChjbG9zZU1lbnVPblNlbGVjdCkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIC8vIHdoZW4gdGhlIHNlbGVjdCB2YWx1ZSBzaG91bGQgY2hhbmdlLCB3ZSBzaG91bGQgcmVzZXQgZm9jdXNlZFZhbHVlXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlLCB7XG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBvcHRpb246IG9wdGlvblxuICAgICAgfSk7XG4gICAgfTtcbiAgICBfdGhpcy5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgYmx1cklucHV0T25TZWxlY3QgPSBfdGhpcyRwcm9wczMuYmx1cklucHV0T25TZWxlY3QsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMy5uYW1lO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZGVzZWxlY3RlZCA9IGlzTXVsdGkgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChuZXdWYWx1ZSwgc2VsZWN0VmFsdWUpO1xuICAgICAgdmFyIGlzRGlzYWJsZWQgPSBfdGhpcy5pc09wdGlvbkRpc2FibGVkKG5ld1ZhbHVlLCBzZWxlY3RWYWx1ZSk7XG4gICAgICBpZiAoZGVzZWxlY3RlZCkge1xuICAgICAgICB2YXIgY2FuZGlkYXRlID0gX3RoaXMuZ2V0T3B0aW9uVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0T3B0aW9uVmFsdWUoaSkgIT09IGNhbmRpZGF0ZTtcbiAgICAgICAgfSkpLCAnZGVzZWxlY3Qtb3B0aW9uJywgbmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCkge1xuICAgICAgICAvLyBTZWxlY3Qgb3B0aW9uIGlmIG9wdGlvbiBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHNlbGVjdFZhbHVlKSwgW25ld1ZhbHVlXSkpLCAnc2VsZWN0LW9wdGlvbicsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShzaW5nbGVWYWx1ZUFzVmFsdWUobmV3VmFsdWUpLCAnc2VsZWN0LW9wdGlvbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5hcmlhT25DaGFuZ2Uoc2luZ2xlVmFsdWVBc1ZhbHVlKG5ld1ZhbHVlKSwge1xuICAgICAgICAgIGFjdGlvbjogJ3NlbGVjdC1vcHRpb24nLFxuICAgICAgICAgIG9wdGlvbjogbmV3VmFsdWUsXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGJsdXJJbnB1dE9uU2VsZWN0KSB7XG4gICAgICAgIF90aGlzLmJsdXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMucmVtb3ZlVmFsdWUgPSBmdW5jdGlvbiAocmVtb3ZlZFZhbHVlKSB7XG4gICAgICB2YXIgaXNNdWx0aSA9IF90aGlzLnByb3BzLmlzTXVsdGk7XG4gICAgICB2YXIgc2VsZWN0VmFsdWUgPSBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIHZhciBjYW5kaWRhdGUgPSBfdGhpcy5nZXRPcHRpb25WYWx1ZShyZW1vdmVkVmFsdWUpO1xuICAgICAgdmFyIG5ld1ZhbHVlQXJyYXkgPSBzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldE9wdGlvblZhbHVlKGkpICE9PSBjYW5kaWRhdGU7XG4gICAgICB9KTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHZhbHVlVGVybmFyeShpc011bHRpLCBuZXdWYWx1ZUFycmF5LCBuZXdWYWx1ZUFycmF5WzBdIHx8IG51bGwpO1xuICAgICAgX3RoaXMub25DaGFuZ2UobmV3VmFsdWUsIHtcbiAgICAgICAgYWN0aW9uOiAncmVtb3ZlLXZhbHVlJyxcbiAgICAgICAgcmVtb3ZlZFZhbHVlOiByZW1vdmVkVmFsdWVcbiAgICAgIH0pO1xuICAgICAgX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH07XG4gICAgX3RoaXMuY2xlYXJWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xuICAgICAgX3RoaXMub25DaGFuZ2UodmFsdWVUZXJuYXJ5KF90aGlzLnByb3BzLmlzTXVsdGksIFtdLCBudWxsKSwge1xuICAgICAgICBhY3Rpb246ICdjbGVhcicsXG4gICAgICAgIHJlbW92ZWRWYWx1ZXM6IHNlbGVjdFZhbHVlXG4gICAgICB9KTtcbiAgICB9O1xuICAgIF90aGlzLnBvcFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlzTXVsdGkgPSBfdGhpcy5wcm9wcy5pc011bHRpO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgbGFzdFNlbGVjdGVkVmFsdWUgPSBzZWxlY3RWYWx1ZVtzZWxlY3RWYWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBuZXdWYWx1ZUFycmF5ID0gc2VsZWN0VmFsdWUuc2xpY2UoMCwgc2VsZWN0VmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbmV3VmFsdWVBcnJheSwgbmV3VmFsdWVBcnJheVswXSB8fCBudWxsKTtcbiAgICAgIGlmIChsYXN0U2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBfdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSwge1xuICAgICAgICAgIGFjdGlvbjogJ3BvcC12YWx1ZScsXG4gICAgICAgICAgcmVtb3ZlZFZhbHVlOiBsYXN0U2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25JZCA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZE9wdGlvbklkKF90aGlzLnN0YXRlLmZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkRm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMoYnVpbGRDYXRlZ29yaXplZE9wdGlvbnMoX3RoaXMucHJvcHMsIF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlKSwgX3RoaXMuZ2V0RWxlbWVudElkKCdvcHRpb24nKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICB9O1xuICAgIF90aGlzLmN4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcy5hcHBseSh2b2lkIDAsIFtfdGhpcy5wcm9wcy5jbGFzc05hbWVQcmVmaXhdLmNvbmNhdChhcmdzKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICByZXR1cm4gZ2V0T3B0aW9uTGFiZWwoX3RoaXMucHJvcHMsIGRhdGEpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgcmV0dXJuIGdldE9wdGlvblZhbHVlKF90aGlzLnByb3BzLCBkYXRhKTtcbiAgICB9O1xuICAgIF90aGlzLmdldFN0eWxlcyA9IGZ1bmN0aW9uIChrZXksIHByb3BzKSB7XG4gICAgICB2YXIgdW5zdHlsZWQgPSBfdGhpcy5wcm9wcy51bnN0eWxlZDtcbiAgICAgIHZhciBiYXNlID0gZGVmYXVsdFN0eWxlc1trZXldKHByb3BzLCB1bnN0eWxlZCk7XG4gICAgICBiYXNlLmJveFNpemluZyA9ICdib3JkZXItYm94JztcbiAgICAgIHZhciBjdXN0b20gPSBfdGhpcy5wcm9wcy5zdHlsZXNba2V5XTtcbiAgICAgIHJldHVybiBjdXN0b20gPyBjdXN0b20oYmFzZSwgcHJvcHMpIDogYmFzZTtcbiAgICB9O1xuICAgIF90aGlzLmdldENsYXNzTmFtZXMgPSBmdW5jdGlvbiAoa2V5LCBwcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzJGNsYXNzTmFtZSwgX3RoaXMkcHJvcHMkY2xhc3NOYW1lMjtcbiAgICAgIHJldHVybiAoX3RoaXMkcHJvcHMkY2xhc3NOYW1lID0gKF90aGlzJHByb3BzJGNsYXNzTmFtZTIgPSBfdGhpcy5wcm9wcy5jbGFzc05hbWVzKVtrZXldKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGNsYXNzTmFtZS5jYWxsKF90aGlzJHByb3BzJGNsYXNzTmFtZTIsIHByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEVsZW1lbnRJZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuc3RhdGUuaW5zdGFuY2VQcmVmaXgsIFwiLVwiKS5jb25jYXQoZWxlbWVudCk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDb21wb25lbnRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRDb21wb25lbnRzKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLnByb3BzLCBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDYXRlZ29yaXplZE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMubWVudUlzT3BlbiA/IF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWlsZEZvY3VzYWJsZU9wdGlvbnNGcm9tQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5tZW51SXNPcGVuID8gX3RoaXMuYnVpbGRGb2N1c2FibGVPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmFyaWFPbkNoYW5nZSA9IGZ1bmN0aW9uICh2YWx1ZSwgYWN0aW9uTWV0YSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBhcmlhU2VsZWN0aW9uOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgYWN0aW9uTWV0YSlcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25NZW51TW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uTWVudU1vdXNlTW92ZSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciA9IGZhbHNlO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sTW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAvLyBFdmVudCBjYXB0dXJlZCBieSBkcm9wZG93biBpbmRpY2F0b3JcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcGVuTWVudU9uQ2xpY2sgPSBfdGhpcy5wcm9wcy5vcGVuTWVudU9uQ2xpY2s7XG4gICAgICBpZiAoIV90aGlzLnN0YXRlLmlzRm9jdXNlZCkge1xuICAgICAgICBpZiAob3Blbk1lbnVPbkNsaWNrKSB7XG4gICAgICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoIV90aGlzLnByb3BzLm1lbnVJc09wZW4pIHtcbiAgICAgICAgaWYgKG9wZW5NZW51T25DbGljaykge1xuICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKF90aGlzLnByb3BzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNC5pc011bHRpLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM0Lm1lbnVJc09wZW47XG4gICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLm9wZW5BZnRlckZvY3VzID0gZmFsc2U7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uU2Nyb2xsID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAodHlwZW9mIF90aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRG9jdW1lbnRFbGVtZW50KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICBfdGhpcy5wcm9wcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBfdGhpcy5wcm9wcy5jbG9zZU1lbnVPblNjcm9sbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuY2xvc2VNZW51T25TY3JvbGwoZXZlbnQpKSB7XG4gICAgICAgICAgX3RoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvblN0YXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuaXNDb21wb3NpbmcgPSB0cnVlO1xuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvbkVuZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLmlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgICBfdGhpcy5vblRvdWNoU3RhcnQgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciB0b3VjaGVzID0gX3JlZjIudG91Y2hlcztcbiAgICAgIHZhciB0b3VjaCA9IHRvdWNoZXMgJiYgdG91Y2hlcy5pdGVtKDApO1xuICAgICAgaWYgKCF0b3VjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gdG91Y2guY2xpZW50WDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hNb3ZlID0gZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICB2YXIgdG91Y2hlcyA9IF9yZWYzLnRvdWNoZXM7XG4gICAgICB2YXIgdG91Y2ggPSB0b3VjaGVzICYmIHRvdWNoZXMuaXRlbSgwKTtcbiAgICAgIGlmICghdG91Y2gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGRlbHRhWCA9IE1hdGguYWJzKHRvdWNoLmNsaWVudFggLSBfdGhpcy5pbml0aWFsVG91Y2hYKTtcbiAgICAgIHZhciBkZWx0YVkgPSBNYXRoLmFicyh0b3VjaC5jbGllbnRZIC0gX3RoaXMuaW5pdGlhbFRvdWNoWSk7XG4gICAgICB2YXIgbW92ZVRocmVzaG9sZCA9IDU7XG4gICAgICBfdGhpcy51c2VySXNEcmFnZ2luZyA9IGRlbHRhWCA+IG1vdmVUaHJlc2hvbGQgfHwgZGVsdGFZID4gbW92ZVRocmVzaG9sZDtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuXG4gICAgICAvLyBjbG9zZSB0aGUgbWVudSBpZiB0aGUgdXNlciB0YXBzIG91dHNpZGVcbiAgICAgIC8vIHdlJ3JlIGNoZWNraW5nIG9uIGV2ZW50LnRhcmdldCBoZXJlIGluc3RlYWQgb2YgZXZlbnQuY3VycmVudFRhcmdldCwgYmVjYXVzZSB3ZSB3YW50IHRvIGFzc2VydCBpbmZvcm1hdGlvblxuICAgICAgLy8gb24gZXZlbnRzIG9uIGNoaWxkIGVsZW1lbnRzLCBub3QgdGhlIGRvY3VtZW50ICh3aGljaCB3ZSd2ZSBhdHRhY2hlZCB0aGlzIGhhbmRsZXIgdG8pLlxuICAgICAgaWYgKF90aGlzLmNvbnRyb2xSZWYgJiYgIV90aGlzLmNvbnRyb2xSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiBfdGhpcy5tZW51TGlzdFJlZiAmJiAhX3RoaXMubWVudUxpc3RSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBfdGhpcy5ibHVySW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgbW92ZSB2YXJzXG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSAwO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuICAgICAgX3RoaXMub25Db250cm9sTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkNsZWFySW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLmhhbmRsZUlucHV0Q2hhbmdlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgdmFyIGlucHV0VmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwge1xuICAgICAgICBhY3Rpb246ICdpbnB1dC1jaGFuZ2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogcHJldklucHV0VmFsdWVcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfdGhpcy5wcm9wcy5tZW51SXNPcGVuKSB7XG4gICAgICAgIF90aGlzLm9uTWVudU9wZW4oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRGb2N1cyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICB9XG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBpZiAoX3RoaXMub3BlbkFmdGVyRm9jdXMgfHwgX3RoaXMucHJvcHMub3Blbk1lbnVPbkZvY3VzKSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRCbHVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgaWYgKF90aGlzLm1lbnVMaXN0UmVmICYmIF90aGlzLm1lbnVMaXN0UmVmLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIF90aGlzLmlucHV0UmVmLmZvY3VzKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25CbHVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgYWN0aW9uOiAnaW5wdXQtYmx1cicsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBwcmV2SW5wdXRWYWx1ZVxuICAgICAgfSk7XG4gICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25PcHRpb25Ib3ZlciA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICBpZiAoX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciB8fCBfdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uID09PSBmb2N1c2VkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcHRpb25zID0gX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuaW5kZXhPZihmb2N1c2VkT3B0aW9uKTtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiBmb2N1c2VkT3B0aW9uSW5kZXggPiAtMSA/IF90aGlzLmdldEZvY3VzZWRPcHRpb25JZChmb2N1c2VkT3B0aW9uKSA6IG51bGxcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMuc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLm9uVmFsdWVJbnB1dEZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBfdGhpcy5mb2N1cygpO1xuICAgIH07XG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczUuaXNNdWx0aSxcbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlID0gX3RoaXMkcHJvcHM1LmJhY2tzcGFjZVJlbW92ZXNWYWx1ZSxcbiAgICAgICAgZXNjYXBlQ2xlYXJzVmFsdWUgPSBfdGhpcyRwcm9wczUuZXNjYXBlQ2xlYXJzVmFsdWUsXG4gICAgICAgIGlucHV0VmFsdWUgPSBfdGhpcyRwcm9wczUuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNDbGVhcmFibGUgPSBfdGhpcyRwcm9wczUuaXNDbGVhcmFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNS5tZW51SXNPcGVuLFxuICAgICAgICBvbktleURvd24gPSBfdGhpcyRwcm9wczUub25LZXlEb3duLFxuICAgICAgICB0YWJTZWxlY3RzVmFsdWUgPSBfdGhpcyRwcm9wczUudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBvcGVuTWVudU9uRm9jdXMgPSBfdGhpcyRwcm9wczUub3Blbk1lbnVPbkZvY3VzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZS5mb2N1c2VkT3B0aW9uLFxuICAgICAgICBmb2N1c2VkVmFsdWUgPSBfdGhpcyRzdGF0ZS5mb2N1c2VkVmFsdWUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKHR5cGVvZiBvbktleURvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgb3B0aW9uIGhvdmVyIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGhhcyBqdXN0IHByZXNzZWQgYSBrZXlcbiAgICAgIF90aGlzLmJsb2NrT3B0aW9uSG92ZXIgPSB0cnVlO1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICBpZiAoIWlzTXVsdGkgfHwgaW5wdXRWYWx1ZSkgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzVmFsdWUoJ3ByZXZpb3VzJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgIGlmICghaXNNdWx0aSB8fCBpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgX3RoaXMuZm9jdXNWYWx1ZSgnbmV4dCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgIGlmIChpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgaWYgKGZvY3VzZWRWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMucmVtb3ZlVmFsdWUoZm9jdXNlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFiYWNrc3BhY2VSZW1vdmVzVmFsdWUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChpc011bHRpKSB7XG4gICAgICAgICAgICAgIF90aGlzLnBvcFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQ2xlYXJhYmxlKSB7XG4gICAgICAgICAgICAgIF90aGlzLmNsZWFyVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgaWYgKF90aGlzLmlzQ29tcG9zaW5nKSByZXR1cm47XG4gICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFtZW51SXNPcGVuIHx8ICF0YWJTZWxlY3RzVmFsdWUgfHwgIWZvY3VzZWRPcHRpb24gfHxcbiAgICAgICAgICAvLyBkb24ndCBjYXB0dXJlIHRoZSBldmVudCBpZiB0aGUgbWVudSBvcGVucyBvbiBmb2N1cyBhbmQgdGhlIGZvY3VzZWRcbiAgICAgICAgICAvLyBvcHRpb24gaXMgYWxyZWFkeSBzZWxlY3RlZDsgaXQgYnJlYWtzIHRoZSBmbG93IG9mIG5hdmlnYXRpb25cbiAgICAgICAgICBvcGVuTWVudU9uRm9jdXMgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChmb2N1c2VkT3B0aW9uLCBzZWxlY3RWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDIyOSkge1xuICAgICAgICAgICAgLy8gaWdub3JlIHRoZSBrZXlkb3duIGV2ZW50IGZyb20gYW4gSW5wdXQgTWV0aG9kIEVkaXRvcihJTUUpXG4gICAgICAgICAgICAvLyByZWYuIGh0dHBzOi8vd3d3LnczLm9yZy9UUi91aWV2ZW50cy8jZGV0ZXJtaW5lLWtleWRvd24ta2V5dXAta2V5Q29kZVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtZW51SXNPcGVuKSB7XG4gICAgICAgICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChfdGhpcy5pc0NvbXBvc2luZykgcmV0dXJuO1xuICAgICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgICAgICAgYWN0aW9uOiAnbWVudS1jbG9zZScsXG4gICAgICAgICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uTWVudUNsb3NlKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0NsZWFyYWJsZSAmJiBlc2NhcGVDbGVhcnNWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnICc6XG4gICAgICAgICAgLy8gc3BhY2VcbiAgICAgICAgICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZm9jdXNlZE9wdGlvbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLnNlbGVjdE9wdGlvbihmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgaWYgKG1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCd1cCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5vcGVuTWVudSgnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuZm9jdXNPcHRpb24oJ2Rvd24nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMub3Blbk1lbnUoJ2ZpcnN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdldXAnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdlZG93bicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignZmlyc3QnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignbGFzdCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcbiAgICBfdGhpcy5zdGF0ZS5pbnN0YW5jZVByZWZpeCA9ICdyZWFjdC1zZWxlY3QtJyArIChfdGhpcy5wcm9wcy5pbnN0YW5jZUlkIHx8ICsraW5zdGFuY2VJZCk7XG4gICAgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUgPSBjbGVhblZhbHVlKF9wcm9wcy52YWx1ZSk7XG4gICAgLy8gU2V0IGZvY3VzZWRPcHRpb24gaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gaW5pdCAoZS5nLiBkZWZhdWx0TWVudUlzT3BlbilcbiAgICBpZiAoX3Byb3BzLm1lbnVJc09wZW4gJiYgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUubGVuZ3RoKSB7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMgPSBfdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zV2l0aElkcygpO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSBfdGhpcy5idWlsZEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIHZhciBvcHRpb25JbmRleCA9IGZvY3VzYWJsZU9wdGlvbnMuaW5kZXhPZihfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZVswXSk7XG4gICAgICBfdGhpcy5zdGF0ZS5mb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiA9IGZvY3VzYWJsZU9wdGlvbnNbb3B0aW9uSW5kZXhdO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2FibGVPcHRpb25zW29wdGlvbkluZGV4XSk7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoU2VsZWN0LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmdDb21wb3NpdGlvbigpO1xuICAgICAgdGhpcy5zdGFydExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgLy8gTGlzdGVuIHRvIGFsbCBzY3JvbGwgZXZlbnRzLCBhbmQgZmlsdGVyIHRoZW0gb3V0IGluc2lkZSBvZiAnb25TY3JvbGwnXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTY3JvbGwgZm9jdXNlZE9wdGlvbiBpbnRvIHZpZXcgaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gbW91bnQgKGUuZy4gZGVmYXVsdE1lbnVJc09wZW4pXG4gICAgICBpZiAodGhpcy5wcm9wcy5tZW51SXNPcGVuICYmIHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiAmJiB0aGlzLm1lbnVMaXN0UmVmICYmIHRoaXMuZm9jdXNlZE9wdGlvblJlZikge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczYuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNi5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKFxuICAgICAgLy8gZW5zdXJlIGZvY3VzIGlzIHJlc3RvcmVkIGNvcnJlY3RseSB3aGVuIHRoZSBjb250cm9sIGJlY29tZXMgZW5hYmxlZFxuICAgICAgaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkIHx8XG4gICAgICAvLyBlbnN1cmUgZm9jdXMgaXMgb24gdGhlIElucHV0IHdoZW4gdGhlIG1lbnUgb3BlbnNcbiAgICAgIGlzRm9jdXNlZCAmJiBtZW51SXNPcGVuICYmICFwcmV2UHJvcHMubWVudUlzT3Blbikge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0ZvY3VzZWQgJiYgaXNEaXNhYmxlZCAmJiAhcHJldlByb3BzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGJsdXJyZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlZCB3aGlsZSBmb2N1c2VkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgICAgIH0sIHRoaXMub25NZW51Q2xvc2UpO1xuICAgICAgfSBlbHNlIGlmICghaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkICYmIHRoaXMuaW5wdXRSZWYgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGZvY3VzZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbWF0aWNhbGx5IHJlLWVuYWJsZWQgd2hpbGUgZm9jdXNlZCAoRmlyZWZveClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gc2Nyb2xsIHRoZSBmb2N1c2VkIG9wdGlvbiBpbnRvIHZpZXcgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAodGhpcy5tZW51TGlzdFJlZiAmJiB0aGlzLmZvY3VzZWRPcHRpb25SZWYgJiYgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSkge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nQ29tcG9zaXRpb24oKTtcbiAgICAgIHRoaXMuc3RvcExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIENvbnN1bWVyIEhhbmRsZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIH0sIHtcbiAgICBrZXk6IFwib25NZW51T3BlblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbk1lbnVPcGVuKCkge1xuICAgICAgdGhpcy5wcm9wcy5vbk1lbnVPcGVuKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uTWVudUNsb3NlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ21lbnUtY2xvc2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogdGhpcy5wcm9wcy5pbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib25JbnB1dENoYW5nZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbklucHV0Q2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB0aGlzLnByb3BzLm9uSW5wdXRDaGFuZ2UobmV3VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIE1ldGhvZHNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c0lucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzSW5wdXQoKSB7XG4gICAgICBpZiAoIXRoaXMuaW5wdXRSZWYpIHJldHVybjtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1cklucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXJJbnB1dCgpIHtcbiAgICAgIGlmICghdGhpcy5pbnB1dFJlZikgcmV0dXJuO1xuICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgfVxuXG4gICAgLy8gYWxpYXNlZCBmb3IgY29uc3VtZXJzXG4gIH0sIHtcbiAgICBrZXk6IFwib3Blbk1lbnVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1lbnUoZm9jdXNPcHRpb24pIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlMiA9IHRoaXMuc3RhdGUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUyLnNlbGVjdFZhbHVlLFxuICAgICAgICBpc0ZvY3VzZWQgPSBfdGhpcyRzdGF0ZTIuaXNGb2N1c2VkO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSB0aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIG9wZW5BdEluZGV4ID0gZm9jdXNPcHRpb24gPT09ICdmaXJzdCcgPyAwIDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHtcbiAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSBmb2N1c2FibGVPcHRpb25zLmluZGV4T2Yoc2VsZWN0VmFsdWVbMF0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgb3BlbkF0SW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG9ubHkgc2Nyb2xsIGlmIHRoZSBtZW51IGlzbid0IGFscmVhZHkgb3BlblxuICAgICAgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSA9ICEoaXNGb2N1c2VkICYmIHRoaXMubWVudUxpc3RSZWYpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0sXG4gICAgICAgIGZvY3VzZWRPcHRpb25JZDogdGhpcy5nZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0pXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub25NZW51T3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNWYWx1ZShkaXJlY3Rpb24pIHtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTMgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlMy5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGUzLmZvY3VzZWRWYWx1ZTtcblxuICAgICAgLy8gT25seSBtdWx0aXNlbGVjdHMgc3VwcG9ydCB2YWx1ZSBmb2N1c2luZ1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHJldHVybjtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBzZWxlY3RWYWx1ZS5pbmRleE9mKGZvY3VzZWRWYWx1ZSk7XG4gICAgICBpZiAoIWZvY3VzZWRWYWx1ZSkge1xuICAgICAgICBmb2N1c2VkSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBzZWxlY3RWYWx1ZS5sZW5ndGggLSAxO1xuICAgICAgdmFyIG5leHRGb2N1cyA9IC0xO1xuICAgICAgaWYgKCFzZWxlY3RWYWx1ZS5sZW5ndGgpIHJldHVybjtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3ByZXZpb3VzJzpcbiAgICAgICAgICBpZiAoZm9jdXNlZEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAvLyBkb24ndCBjeWNsZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kXG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9jdXNlZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgbm90aGluZyBpcyBmb2N1c2VkLCBmb2N1cyB0aGUgbGFzdCB2YWx1ZSBmaXJzdFxuICAgICAgICAgICAgbmV4dEZvY3VzID0gbGFzdEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA+IC0xICYmIGZvY3VzZWRJbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgbmV4dEZvY3VzID0gZm9jdXNlZEluZGV4ICsgMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgaW5wdXRJc0hpZGRlbjogbmV4dEZvY3VzICE9PSAtMSxcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBzZWxlY3RWYWx1ZVtuZXh0Rm9jdXNdXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNPcHRpb24oKSB7XG4gICAgICB2YXIgZGlyZWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnZmlyc3QnO1xuICAgICAgdmFyIHBhZ2VTaXplID0gdGhpcy5wcm9wcy5wYWdlU2l6ZTtcbiAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uO1xuICAgICAgdmFyIG9wdGlvbnMgPSB0aGlzLmdldEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5sZW5ndGgpIHJldHVybjtcbiAgICAgIHZhciBuZXh0Rm9jdXMgPSAwOyAvLyBoYW5kbGVzICdmaXJzdCdcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBvcHRpb25zLmluZGV4T2YoZm9jdXNlZE9wdGlvbik7XG4gICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHtcbiAgICAgICAgZm9jdXNlZEluZGV4ID0gLTE7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnKSB7XG4gICAgICAgIG5leHRGb2N1cyA9IGZvY3VzZWRJbmRleCA+IDAgPyBmb2N1c2VkSW5kZXggLSAxIDogb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSAoZm9jdXNlZEluZGV4ICsgMSkgJSBvcHRpb25zLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncGFnZXVwJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA8IDApIG5leHRGb2N1cyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggKyBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA+IG9wdGlvbnMubGVuZ3RoIC0gMSkgbmV4dEZvY3VzID0gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdsYXN0Jykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBvcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgICB9XG4gICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBvcHRpb25zW25leHRGb2N1c10sXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiB0aGlzLmdldEZvY3VzZWRPcHRpb25JZChvcHRpb25zW25leHRGb2N1c10pXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0VGhlbWVcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBHZXR0ZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBnZXRUaGVtZSgpIHtcbiAgICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB0aGVtZSBpZiB0aGVyZSBhcmUgbm8gY3VzdG9taXNhdGlvbnMuXG4gICAgICBpZiAoIXRoaXMucHJvcHMudGhlbWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUaGVtZTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSB0aGVtZSBwcm9wIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSB0aGUgZnVuY3Rpb25cbiAgICAgIC8vIGtub3dzIGhvdyB0byBtZXJnZSB0aGUgcGFzc2VkLWluIGRlZmF1bHQgdGhlbWUgd2l0aFxuICAgICAgLy8gaXRzIG93biBtb2RpZmljYXRpb25zLlxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLnRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRoZW1lKGRlZmF1bHRUaGVtZSk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIGlmIGEgcGxhaW4gdGhlbWUgb2JqZWN0IHdhcyBwYXNzZWQgaW4sXG4gICAgICAvLyBvdmVybGF5IGl0IHdpdGggdGhlIGRlZmF1bHQgdGhlbWUuXG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0VGhlbWUpLCB0aGlzLnByb3BzLnRoZW1lKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q29tbW9uUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q29tbW9uUHJvcHMoKSB7XG4gICAgICB2YXIgY2xlYXJWYWx1ZSA9IHRoaXMuY2xlYXJWYWx1ZSxcbiAgICAgICAgY3ggPSB0aGlzLmN4LFxuICAgICAgICBnZXRTdHlsZXMgPSB0aGlzLmdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lcyA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWUgPSB0aGlzLmdldFZhbHVlLFxuICAgICAgICBzZWxlY3RPcHRpb24gPSB0aGlzLnNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlLFxuICAgICAgICBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGksXG4gICAgICAgIGlzUnRsID0gcHJvcHMuaXNSdGwsXG4gICAgICAgIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgICAgdmFyIGhhc1ZhbHVlID0gdGhpcy5oYXNWYWx1ZSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xlYXJWYWx1ZTogY2xlYXJWYWx1ZSxcbiAgICAgICAgY3g6IGN4LFxuICAgICAgICBnZXRTdHlsZXM6IGdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWU6IGdldFZhbHVlLFxuICAgICAgICBoYXNWYWx1ZTogaGFzVmFsdWUsXG4gICAgICAgIGlzTXVsdGk6IGlzTXVsdGksXG4gICAgICAgIGlzUnRsOiBpc1J0bCxcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgc2VsZWN0T3B0aW9uOiBzZWxlY3RPcHRpb24sXG4gICAgICAgIHNlbGVjdFByb3BzOiBwcm9wcyxcbiAgICAgICAgc2V0VmFsdWU6IHNldFZhbHVlLFxuICAgICAgICB0aGVtZTogdGhpcy5nZXRUaGVtZSgpXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNWYWx1ZSgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICByZXR1cm4gc2VsZWN0VmFsdWUubGVuZ3RoID4gMDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNPcHRpb25zKCkge1xuICAgICAgcmV0dXJuICEhdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zKCkubGVuZ3RoO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0NsZWFyYWJsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc0NsZWFyYWJsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0NsZWFyYWJsZSA9IF90aGlzJHByb3BzNy5pc0NsZWFyYWJsZSxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNy5pc011bHRpO1xuXG4gICAgICAvLyBzaW5nbGUgc2VsZWN0LCBieSBkZWZhdWx0LCBJUyBOT1QgY2xlYXJhYmxlXG4gICAgICAvLyBtdWx0aSBzZWxlY3QsIGJ5IGRlZmF1bHQsIElTIGNsZWFyYWJsZVxuICAgICAgaWYgKGlzQ2xlYXJhYmxlID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICAgICAgcmV0dXJuIGlzQ2xlYXJhYmxlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvbkRpc2FibGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvbkRpc2FibGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvblNlbGVjdGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvblNlbGVjdGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmaWx0ZXJPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZmlsdGVyT3B0aW9uKG9wdGlvbiwgaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9maWx0ZXJPcHRpb24odGhpcy5wcm9wcywgb3B0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0T3B0aW9uTGFiZWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0T3B0aW9uTGFiZWwoZGF0YSwgY29udGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBfaW5wdXRWYWx1ZSA9IHRoaXMucHJvcHMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdmFyIF9zZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsKGRhdGEsIHtcbiAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgIGlucHV0VmFsdWU6IF9pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdFZhbHVlOiBfc2VsZWN0VmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0R3JvdXBMYWJlbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXRHcm91cExhYmVsKGRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdEdyb3VwTGFiZWwoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gTW91c2UgSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJzdGFydExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQ29tcG9zaXRpb24gSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nQ29tcG9zaXRpb24oKSB7XG4gICAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RvcExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdDb21wb3NpdGlvbigpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgdGhpcy5vbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RhcnRMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVG91Y2ggSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nVG9Ub3VjaCgpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hTdGFydCwgZmFsc2UpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlLCBmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInN0b3BMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdUb1RvdWNoKCkge1xuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaFN0YXJ0KTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5wdXRcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBSZW5kZXJlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBmdW5jdGlvbiByZW5kZXJJbnB1dCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczggPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM4LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzU2VhcmNoYWJsZSA9IF90aGlzJHByb3BzOC5pc1NlYXJjaGFibGUsXG4gICAgICAgIGlucHV0SWQgPSBfdGhpcyRwcm9wczguaW5wdXRJZCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOC5pbnB1dFZhbHVlLFxuICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzOC50YWJJbmRleCxcbiAgICAgICAgZm9ybSA9IF90aGlzJHByb3BzOC5mb3JtLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM4Lm1lbnVJc09wZW4sXG4gICAgICAgIHJlcXVpcmVkID0gX3RoaXMkcHJvcHM4LnJlcXVpcmVkO1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgSW5wdXQgPSBfdGhpcyRnZXRDb21wb25lbnRzLklucHV0O1xuICAgICAgdmFyIF90aGlzJHN0YXRlNCA9IHRoaXMuc3RhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW4gPSBfdGhpcyRzdGF0ZTQuaW5wdXRJc0hpZGRlbixcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IF90aGlzJHN0YXRlNC5hcmlhU2VsZWN0aW9uO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpZCA9IGlucHV0SWQgfHwgdGhpcy5nZXRFbGVtZW50SWQoJ2lucHV0Jyk7XG5cbiAgICAgIC8vIGFyaWEgYXR0cmlidXRlcyBtYWtlcyB0aGUgSlNYIFwibm9pc3lcIiwgc2VwYXJhdGVkIGZvciBjbGFyaXR5XG4gICAgICB2YXIgYXJpYUF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0JyxcbiAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBtZW51SXNPcGVuLFxuICAgICAgICAnYXJpYS1oYXNwb3B1cCc6IHRydWUsXG4gICAgICAgICdhcmlhLWVycm9ybWVzc2FnZSc6IHRoaXMucHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ10sXG4gICAgICAgICdhcmlhLWludmFsaWQnOiB0aGlzLnByb3BzWydhcmlhLWludmFsaWQnXSxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsJ10sXG4gICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsbGVkYnknXSxcbiAgICAgICAgJ2FyaWEtcmVxdWlyZWQnOiByZXF1aXJlZCxcbiAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IHRoaXMuaXNBcHBsZURldmljZSA/IHVuZGVmaW5lZCA6IHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkIHx8ICcnXG4gICAgICB9LCBtZW51SXNPcGVuICYmIHtcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiB0aGlzLmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICB9KSwgIWlzU2VhcmNoYWJsZSAmJiB7XG4gICAgICAgICdhcmlhLXJlYWRvbmx5JzogdHJ1ZVxuICAgICAgfSksIHRoaXMuaGFzVmFsdWUoKSA/IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnICYmIHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKVxuICAgICAgfSA6IHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgncGxhY2Vob2xkZXInKVxuICAgICAgfSk7XG4gICAgICBpZiAoIWlzU2VhcmNoYWJsZSkge1xuICAgICAgICAvLyB1c2UgYSBkdW1teSBpbnB1dCB0byBtYWludGFpbiBmb2N1cy9ibHVyIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KER1bW15SW5wdXQsIF9leHRlbmRzKHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgaW5uZXJSZWY6IHRoaXMuZ2V0SW5wdXRSZWYsXG4gICAgICAgICAgb25CbHVyOiB0aGlzLm9uSW5wdXRCbHVyLFxuICAgICAgICAgIG9uQ2hhbmdlOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgICBpbnB1dE1vZGU6IFwibm9uZVwiLFxuICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgfSwgYXJpYUF0dHJpYnV0ZXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGF1dG9DYXBpdGFsaXplOiBcIm5vbmVcIixcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm9mZlwiLFxuICAgICAgICBhdXRvQ29ycmVjdDogXCJvZmZcIixcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRJbnB1dFJlZixcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNIaWRkZW46IGlucHV0SXNIaWRkZW4sXG4gICAgICAgIG9uQmx1cjogdGhpcy5vbklucHV0Qmx1cixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UsXG4gICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgZm9ybTogZm9ybSxcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9LCBhcmlhQXR0cmlidXRlcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJQbGFjZWhvbGRlck9yVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyUGxhY2Vob2xkZXJPclZhbHVlKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czIgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgTXVsdGlWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLk11bHRpVmFsdWUsXG4gICAgICAgIE11bHRpVmFsdWVDb250YWluZXIgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICBNdWx0aVZhbHVlTGFiZWwgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlTGFiZWwsXG4gICAgICAgIE11bHRpVmFsdWVSZW1vdmUgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICBTaW5nbGVWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLlNpbmdsZVZhbHVlLFxuICAgICAgICBQbGFjZWhvbGRlciA9IF90aGlzJGdldENvbXBvbmVudHMyLlBsYWNlaG9sZGVyO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRwcm9wczkgPSB0aGlzLnByb3BzLFxuICAgICAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfdGhpcyRwcm9wczkuY29udHJvbFNob3VsZFJlbmRlclZhbHVlLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM5LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczkuaXNNdWx0aSxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOS5pbnB1dFZhbHVlLFxuICAgICAgICBwbGFjZWhvbGRlciA9IF90aGlzJHByb3BzOS5wbGFjZWhvbGRlcjtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTUgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlNS5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU1LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU1LmlzRm9jdXNlZDtcbiAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSgpIHx8ICFjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWUgPyBudWxsIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGxhY2Vob2xkZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGtleTogXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0RWxlbWVudElkKCdwbGFjZWhvbGRlcicpXG4gICAgICAgICAgfVxuICAgICAgICB9KSwgcGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpbmRleCkge1xuICAgICAgICAgIHZhciBpc09wdGlvbkZvY3VzZWQgPSBvcHQgPT09IGZvY3VzZWRWYWx1ZTtcbiAgICAgICAgICB2YXIga2V5ID0gXCJcIi5jb25jYXQoX3RoaXMzLmdldE9wdGlvbkxhYmVsKG9wdCksIFwiLVwiKS5jb25jYXQoX3RoaXMzLmdldE9wdGlvblZhbHVlKG9wdCkpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNdWx0aVZhbHVlLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgICAgICBMYWJlbDogTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgICAgICBSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0ZvY3VzZWQ6IGlzT3B0aW9uRm9jdXNlZCxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIHJlbW92ZVByb3BzOiB7XG4gICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMy5yZW1vdmVWYWx1ZShvcHQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvblRvdWNoRW5kOiBmdW5jdGlvbiBvblRvdWNoRW5kKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczMucmVtb3ZlVmFsdWUob3B0KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb25Nb3VzZURvd246IGZ1bmN0aW9uIG9uTW91c2VEb3duKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiBvcHRcbiAgICAgICAgICB9KSwgX3RoaXMzLmZvcm1hdE9wdGlvbkxhYmVsKG9wdCwgJ3ZhbHVlJykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIHNpbmdsZVZhbHVlID0gc2VsZWN0VmFsdWVbMF07XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2luZ2xlVmFsdWUsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBkYXRhOiBzaW5nbGVWYWx1ZSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMuZm9ybWF0T3B0aW9uTGFiZWwoc2luZ2xlVmFsdWUsICd2YWx1ZScpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyQ2xlYXJJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgQ2xlYXJJbmRpY2F0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzMy5DbGVhckluZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczEwLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTAuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCF0aGlzLmlzQ2xlYXJhYmxlKCkgfHwgIUNsZWFySW5kaWNhdG9yIHx8IGlzRGlzYWJsZWQgfHwgIXRoaXMuaGFzVmFsdWUoKSB8fCBpc0xvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25DbGVhckluZGljYXRvck1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaEVuZDogdGhpcy5vbkNsZWFySW5kaWNhdG9yVG91Y2hFbmQsXG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckluZGljYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckxvYWRpbmdJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTG9hZGluZ0luZGljYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNCA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czQuTG9hZGluZ0luZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMSA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczExLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTEuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCFMb2FkaW5nSW5kaWNhdG9yIHx8ICFpc0xvYWRpbmcpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGlubmVyUHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckluZGljYXRvclNlcGFyYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNSA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBEcm9wZG93bkluZGljYXRvciA9IF90aGlzJGdldENvbXBvbmVudHM1LkRyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICBJbmRpY2F0b3JTZXBhcmF0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzNS5JbmRpY2F0b3JTZXBhcmF0b3I7XG5cbiAgICAgIC8vIHNlcGFyYXRvciBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCB0aGUgZHJvcGRvd24gaW5kaWNhdG9yXG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yIHx8ICFJbmRpY2F0b3JTZXBhcmF0b3IpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpc0Rpc2FibGVkID0gdGhpcy5wcm9wcy5pc0Rpc2FibGVkO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluZGljYXRvclNlcGFyYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckRyb3Bkb3duSW5kaWNhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckRyb3Bkb3duSW5kaWNhdG9yKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM2ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIERyb3Bkb3duSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czYuRHJvcGRvd25JbmRpY2F0b3I7XG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgaXNEaXNhYmxlZCA9IHRoaXMucHJvcHMuaXNEaXNhYmxlZDtcbiAgICAgIHZhciBpc0ZvY3VzZWQgPSB0aGlzLnN0YXRlLmlzRm9jdXNlZDtcbiAgICAgIHZhciBpbm5lclByb3BzID0ge1xuICAgICAgICBvbk1vdXNlRG93bjogdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duLFxuICAgICAgICBvblRvdWNoRW5kOiB0aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCxcbiAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KERyb3Bkb3duSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTWVudVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJNZW51KCkge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czcgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgR3JvdXAgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Hcm91cCxcbiAgICAgICAgR3JvdXBIZWFkaW5nID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuR3JvdXBIZWFkaW5nLFxuICAgICAgICBNZW51ID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTWVudSxcbiAgICAgICAgTWVudUxpc3QgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5NZW51TGlzdCxcbiAgICAgICAgTWVudVBvcnRhbCA9IF90aGlzJGdldENvbXBvbmVudHM3Lk1lbnVQb3J0YWwsXG4gICAgICAgIExvYWRpbmdNZXNzYWdlID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTG9hZGluZ01lc3NhZ2UsXG4gICAgICAgIE5vT3B0aW9uc01lc3NhZ2UgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Ob09wdGlvbnNNZXNzYWdlLFxuICAgICAgICBPcHRpb24gPSBfdGhpcyRnZXRDb21wb25lbnRzNy5PcHRpb247XG4gICAgICB2YXIgY29tbW9uUHJvcHMgPSB0aGlzLmNvbW1vblByb3BzO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb24gPSB0aGlzLnN0YXRlLmZvY3VzZWRPcHRpb247XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNhcHR1cmVNZW51U2Nyb2xsID0gX3RoaXMkcHJvcHMxMi5jYXB0dXJlTWVudVNjcm9sbCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzMTIuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNMb2FkaW5nID0gX3RoaXMkcHJvcHMxMi5pc0xvYWRpbmcsXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlID0gX3RoaXMkcHJvcHMxMi5sb2FkaW5nTWVzc2FnZSxcbiAgICAgICAgbWluTWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWluTWVudUhlaWdodCxcbiAgICAgICAgbWF4TWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWF4TWVudUhlaWdodCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzMTIubWVudUlzT3BlbixcbiAgICAgICAgbWVudVBsYWNlbWVudCA9IF90aGlzJHByb3BzMTIubWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uID0gX3RoaXMkcHJvcHMxMi5tZW51UG9zaXRpb24sXG4gICAgICAgIG1lbnVQb3J0YWxUYXJnZXQgPSBfdGhpcyRwcm9wczEyLm1lbnVQb3J0YWxUYXJnZXQsXG4gICAgICAgIG1lbnVTaG91bGRCbG9ja1Njcm9sbCA9IF90aGlzJHByb3BzMTIubWVudVNob3VsZEJsb2NrU2Nyb2xsLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBfdGhpcyRwcm9wczEyLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZSA9IF90aGlzJHByb3BzMTIubm9PcHRpb25zTWVzc2FnZSxcbiAgICAgICAgb25NZW51U2Nyb2xsVG9Ub3AgPSBfdGhpcyRwcm9wczEyLm9uTWVudVNjcm9sbFRvVG9wLFxuICAgICAgICBvbk1lbnVTY3JvbGxUb0JvdHRvbSA9IF90aGlzJHByb3BzMTIub25NZW51U2Nyb2xsVG9Cb3R0b207XG4gICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBUT0RPOiBJbnRlcm5hbCBPcHRpb24gVHlwZSBoZXJlXG4gICAgICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHByb3BzLCBpZCkge1xuICAgICAgICB2YXIgdHlwZSA9IHByb3BzLnR5cGUsXG4gICAgICAgICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICAgICAgbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgaXNGb2N1c2VkID0gZm9jdXNlZE9wdGlvbiA9PT0gZGF0YTtcbiAgICAgICAgdmFyIG9uSG92ZXIgPSBpc0Rpc2FibGVkID8gdW5kZWZpbmVkIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQub25PcHRpb25Ib3ZlcihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uU2VsZWN0ID0gaXNEaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnNlbGVjdE9wdGlvbihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9wdGlvbklkID0gXCJcIi5jb25jYXQoX3RoaXM0LmdldEVsZW1lbnRJZCgnb3B0aW9uJyksIFwiLVwiKS5jb25jYXQoaWQpO1xuICAgICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgICBpZDogb3B0aW9uSWQsXG4gICAgICAgICAgb25DbGljazogb25TZWxlY3QsXG4gICAgICAgICAgb25Nb3VzZU1vdmU6IG9uSG92ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXI6IG9uSG92ZXIsXG4gICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogX3RoaXM0LmlzQXBwbGVEZXZpY2UgPyB1bmRlZmluZWQgOiBpc1NlbGVjdGVkIC8vIGlzIG5vdCBzdXBwb3J0ZWQgb24gQXBwbGUgZGV2aWNlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChPcHRpb24sIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAga2V5OiBvcHRpb25JZCxcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJSZWY6IGlzRm9jdXNlZCA/IF90aGlzNC5nZXRGb2N1c2VkT3B0aW9uUmVmIDogdW5kZWZpbmVkXG4gICAgICAgIH0pLCBfdGhpczQuZm9ybWF0T3B0aW9uTGFiZWwocHJvcHMuZGF0YSwgJ21lbnUnKSk7XG4gICAgICB9O1xuICAgICAgdmFyIG1lbnVVSTtcbiAgICAgIGlmICh0aGlzLmhhc09wdGlvbnMoKSkge1xuICAgICAgICBtZW51VUkgPSB0aGlzLmdldENhdGVnb3JpemVkT3B0aW9ucygpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgICAgIHZhciBfZGF0YSA9IGl0ZW0uZGF0YSxcbiAgICAgICAgICAgICAgb3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyxcbiAgICAgICAgICAgICAgZ3JvdXBJbmRleCA9IGl0ZW0uaW5kZXg7XG4gICAgICAgICAgICB2YXIgZ3JvdXBJZCA9IFwiXCIuY29uY2F0KF90aGlzNC5nZXRFbGVtZW50SWQoJ2dyb3VwJyksIFwiLVwiKS5jb25jYXQoZ3JvdXBJbmRleCk7XG4gICAgICAgICAgICB2YXIgaGVhZGluZ0lkID0gXCJcIi5jb25jYXQoZ3JvdXBJZCwgXCItaGVhZGluZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChHcm91cCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgICAgICAgIGtleTogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgZGF0YTogX2RhdGEsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgIEhlYWRpbmc6IEdyb3VwSGVhZGluZyxcbiAgICAgICAgICAgICAgaGVhZGluZ1Byb3BzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGhlYWRpbmdJZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGFcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbGFiZWw6IF90aGlzNC5mb3JtYXRHcm91cExhYmVsKGl0ZW0uZGF0YSlcbiAgICAgICAgICAgIH0pLCBpdGVtLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihvcHRpb24sIFwiXCIuY29uY2F0KGdyb3VwSW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyKGl0ZW0sIFwiXCIuY29uY2F0KGl0ZW0uaW5kZXgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBsb2FkaW5nTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBtZW51VUkgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nTWVzc2FnZSwgY29tbW9uUHJvcHMsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIF9tZXNzYWdlID0gbm9PcHRpb25zTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKF9tZXNzYWdlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgbWVudVVJID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTm9PcHRpb25zTWVzc2FnZSwgY29tbW9uUHJvcHMsIF9tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW51UGxhY2VtZW50UHJvcHMgPSB7XG4gICAgICAgIG1pbk1lbnVIZWlnaHQ6IG1pbk1lbnVIZWlnaHQsXG4gICAgICAgIG1heE1lbnVIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICAgIG1lbnVQbGFjZW1lbnQ6IG1lbnVQbGFjZW1lbnQsXG4gICAgICAgIG1lbnVQb3NpdGlvbjogbWVudVBvc2l0aW9uLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXc6IG1lbnVTaG91bGRTY3JvbGxJbnRvVmlld1xuICAgICAgfTtcbiAgICAgIHZhciBtZW51RWxlbWVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQbGFjZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywgbWVudVBsYWNlbWVudFByb3BzKSwgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICAgIHZhciByZWYgPSBfcmVmNC5yZWYsXG4gICAgICAgICAgX3JlZjQkcGxhY2VyUHJvcHMgPSBfcmVmNC5wbGFjZXJQcm9wcyxcbiAgICAgICAgICBwbGFjZW1lbnQgPSBfcmVmNCRwbGFjZXJQcm9wcy5wbGFjZW1lbnQsXG4gICAgICAgICAgbWF4SGVpZ2h0ID0gX3JlZjQkcGxhY2VyUHJvcHMubWF4SGVpZ2h0O1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTWVudSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCBtZW51UGxhY2VtZW50UHJvcHMsIHtcbiAgICAgICAgICBpbm5lclJlZjogcmVmLFxuICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgIG9uTW91c2VEb3duOiBfdGhpczQub25NZW51TW91c2VEb3duLFxuICAgICAgICAgICAgb25Nb3VzZU1vdmU6IF90aGlzNC5vbk1lbnVNb3VzZU1vdmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxNYW5hZ2VyLCB7XG4gICAgICAgICAgY2FwdHVyZUVuYWJsZWQ6IGNhcHR1cmVNZW51U2Nyb2xsLFxuICAgICAgICAgIG9uVG9wQXJyaXZlOiBvbk1lbnVTY3JvbGxUb1RvcCxcbiAgICAgICAgICBvbkJvdHRvbUFycml2ZTogb25NZW51U2Nyb2xsVG9Cb3R0b20sXG4gICAgICAgICAgbG9ja0VuYWJsZWQ6IG1lbnVTaG91bGRCbG9ja1Njcm9sbFxuICAgICAgICB9LCBmdW5jdGlvbiAoc2Nyb2xsVGFyZ2V0UmVmKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVMaXN0LCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGlubmVyUmVmOiBmdW5jdGlvbiBpbm5lclJlZihpbnN0YW5jZSkge1xuICAgICAgICAgICAgICBfdGhpczQuZ2V0TWVudUxpc3RSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICBzY3JvbGxUYXJnZXRSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAgICAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiBjb21tb25Qcm9wcy5pc011bHRpLFxuICAgICAgICAgICAgICBpZDogX3RoaXM0LmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmcsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICAgICAgICAgIGZvY3VzZWRPcHRpb246IGZvY3VzZWRPcHRpb25cbiAgICAgICAgICB9KSwgbWVudVVJKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIHBvc2l0aW9uaW5nIGJlaGF2aW91ciBpcyBhbG1vc3QgaWRlbnRpY2FsIGZvciBwb3J0YWxsZWQgYW5kIGZpeGVkLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBzYW1lIGNvbXBvbmVudC4gdGhlIGFjdHVhbCBwb3J0YWxsaW5nIGxvZ2ljIGlzIGZvcmtlZFxuICAgICAgLy8gd2l0aGluIHRoZSBjb21wb25lbnQgYmFzZWQgb24gYG1lbnVQb3NpdGlvbmBcbiAgICAgIHJldHVybiBtZW51UG9ydGFsVGFyZ2V0IHx8IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQb3J0YWwsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBhcHBlbmRUbzogbWVudVBvcnRhbFRhcmdldCxcbiAgICAgICAgY29udHJvbEVsZW1lbnQ6IHRoaXMuY29udHJvbFJlZixcbiAgICAgICAgbWVudVBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uOiBtZW51UG9zaXRpb25cbiAgICAgIH0pLCBtZW51RWxlbWVudCkgOiBtZW51RWxlbWVudDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyRm9ybUZpZWxkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckZvcm1GaWVsZCgpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTMgPSB0aGlzLnByb3BzLFxuICAgICAgICBkZWxpbWl0ZXIgPSBfdGhpcyRwcm9wczEzLmRlbGltaXRlcixcbiAgICAgICAgaXNEaXNhYmxlZCA9IF90aGlzJHByb3BzMTMuaXNEaXNhYmxlZCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMTMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMTMubmFtZSxcbiAgICAgICAgcmVxdWlyZWQgPSBfdGhpcyRwcm9wczEzLnJlcXVpcmVkO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIGlmIChyZXF1aXJlZCAmJiAhdGhpcy5oYXNWYWx1ZSgpICYmICFpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXF1aXJlZElucHV0JDEsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25WYWx1ZUlucHV0Rm9jdXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW5hbWUgfHwgaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgaWYgKGRlbGltaXRlcikge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0KSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXM1LmdldE9wdGlvblZhbHVlKG9wdCk7XG4gICAgICAgICAgfSkuam9pbihkZWxpbWl0ZXIpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGlucHV0ID0gc2VsZWN0VmFsdWUubGVuZ3RoID4gMCA/IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgIGtleTogXCJpLVwiLmNvbmNhdChpKSxcbiAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgdmFsdWU6IF90aGlzNS5nZXRPcHRpb25WYWx1ZShvcHQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdmFsdWUgPSBzZWxlY3RWYWx1ZVswXSA/IHRoaXMuZ2V0T3B0aW9uVmFsdWUoc2VsZWN0VmFsdWVbMF0pIDogJyc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgdmFsdWU6IF92YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTGl2ZVJlZ2lvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMaXZlUmVnaW9uKCkge1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTYgPSB0aGlzLnN0YXRlLFxuICAgICAgICBhcmlhU2VsZWN0aW9uID0gX3RoaXMkc3RhdGU2LmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZTYuZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU2LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU2LmlzRm9jdXNlZCxcbiAgICAgICAgc2VsZWN0VmFsdWUgPSBfdGhpcyRzdGF0ZTYuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9ucyA9IHRoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KExpdmVSZWdpb24kMSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlkOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbjogYXJpYVNlbGVjdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGZvY3VzYWJsZU9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IHRoaXMuaXNBcHBsZURldmljZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM4ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIENvbnRyb2wgPSBfdGhpcyRnZXRDb21wb25lbnRzOC5Db250cm9sLFxuICAgICAgICBJbmRpY2F0b3JzQ29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguSW5kaWNhdG9yc0NvbnRhaW5lcixcbiAgICAgICAgU2VsZWN0Q29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguU2VsZWN0Q29udGFpbmVyLFxuICAgICAgICBWYWx1ZUNvbnRhaW5lciA9IF90aGlzJGdldENvbXBvbmVudHM4LlZhbHVlQ29udGFpbmVyO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTQgPSB0aGlzLnByb3BzLFxuICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczE0LmNsYXNzTmFtZSxcbiAgICAgICAgaWQgPSBfdGhpcyRwcm9wczE0LmlkLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHMxNC5pc0Rpc2FibGVkLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHMxNC5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcyA9IHRoaXMuZ2V0Q29tbW9uUHJvcHMoKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RDb250YWluZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBvbktleURvd246IHRoaXMub25LZXlEb3duXG4gICAgICAgIH0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSwgdGhpcy5yZW5kZXJMaXZlUmVnaW9uKCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbnRyb2wsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRDb250cm9sUmVmLFxuICAgICAgICBpbm5lclByb3BzOiB7XG4gICAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25Db250cm9sTW91c2VEb3duLFxuICAgICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMub25Db250cm9sVG91Y2hFbmRcbiAgICAgICAgfSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5cbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChWYWx1ZUNvbnRhaW5lciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgICAgIH0pLCB0aGlzLnJlbmRlclBsYWNlaG9sZGVyT3JWYWx1ZSgpLCB0aGlzLnJlbmRlcklucHV0KCkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbmRpY2F0b3JzQ29udGFpbmVyLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMucmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSwgdGhpcy5yZW5kZXJMb2FkaW5nSW5kaWNhdG9yKCksIHRoaXMucmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yKCksIHRoaXMucmVuZGVyRHJvcGRvd25JbmRpY2F0b3IoKSkpLCB0aGlzLnJlbmRlck1lbnUoKSwgdGhpcy5yZW5kZXJGb3JtRmllbGQoKSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIHZhciBwcmV2UHJvcHMgPSBzdGF0ZS5wcmV2UHJvcHMsXG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlID0gc3RhdGUuY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSA9IHN0YXRlLmlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IHN0YXRlLmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGlzRm9jdXNlZCA9IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgICAgcHJldldhc0ZvY3VzZWQgPSBzdGF0ZS5wcmV2V2FzRm9jdXNlZCxcbiAgICAgICAgaW5zdGFuY2VQcmVmaXggPSBzdGF0ZS5pbnN0YW5jZVByZWZpeDtcbiAgICAgIHZhciBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgICAgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICAgICAgbWVudUlzT3BlbiA9IHByb3BzLm1lbnVJc09wZW4sXG4gICAgICAgIGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IGNsZWFuVmFsdWUodmFsdWUpO1xuICAgICAgdmFyIG5ld01lbnVPcHRpb25zU3RhdGUgPSB7fTtcbiAgICAgIGlmIChwcmV2UHJvcHMgJiYgKHZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgfHwgb3B0aW9ucyAhPT0gcHJldlByb3BzLm9wdGlvbnMgfHwgbWVudUlzT3BlbiAhPT0gcHJldlByb3BzLm1lbnVJc09wZW4gfHwgaW5wdXRWYWx1ZSAhPT0gcHJldlByb3BzLmlucHV0VmFsdWUpKSB7XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zID0gbWVudUlzT3BlbiA/IGJ1aWxkRm9jdXNhYmxlT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIDogW107XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IG1lbnVJc09wZW4gPyBidWlsZEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzKGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSksIFwiXCIuY29uY2F0KGluc3RhbmNlUHJlZml4LCBcIi1vcHRpb25cIikpIDogW107XG4gICAgICAgIHZhciBmb2N1c2VkVmFsdWUgPSBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZSA/IGdldE5leHRGb2N1c2VkVmFsdWUoc3RhdGUsIHNlbGVjdFZhbHVlKSA6IG51bGw7XG4gICAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIGZvY3VzYWJsZU9wdGlvbnMpO1xuICAgICAgICB2YXIgZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgbmV3TWVudU9wdGlvbnNTdGF0ZSA9IHtcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgICBmb2N1c2VkT3B0aW9uSWQ6IGZvY3VzZWRPcHRpb25JZCxcbiAgICAgICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsXG4gICAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgICAgY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBzb21lIHVwZGF0ZXMgc2hvdWxkIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhlIGlucHV0IHZpc2liaWxpdHlcbiAgICAgIHZhciBuZXdJbnB1dElzSGlkZGVuU3RhdGUgPSBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUgIT0gbnVsbCAmJiBwcm9wcyAhPT0gcHJldlByb3BzID8ge1xuICAgICAgICBpbnB1dElzSGlkZGVuOiBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogdW5kZWZpbmVkXG4gICAgICB9IDoge307XG4gICAgICB2YXIgbmV3QXJpYVNlbGVjdGlvbiA9IGFyaWFTZWxlY3Rpb247XG4gICAgICB2YXIgaGFzS2VwdEZvY3VzID0gaXNGb2N1c2VkICYmIHByZXZXYXNGb2N1c2VkO1xuICAgICAgaWYgKGlzRm9jdXNlZCAmJiAhaGFzS2VwdEZvY3VzKSB7XG4gICAgICAgIC8vIElmIGB2YWx1ZWAgb3IgYGRlZmF1bHRWYWx1ZWAgcHJvcHMgYXJlIG5vdCBlbXB0eSB0aGVuIGFubm91bmNlIHRoZW1cbiAgICAgICAgLy8gd2hlbiB0aGUgU2VsZWN0IGlzIGluaXRpYWxseSBmb2N1c2VkXG4gICAgICAgIG5ld0FyaWFTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlVGVybmFyeShpc011bHRpLCBzZWxlY3RWYWx1ZSwgc2VsZWN0VmFsdWVbMF0gfHwgbnVsbCksXG4gICAgICAgICAgb3B0aW9uczogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgYWN0aW9uOiAnaW5pdGlhbC1pbnB1dC1mb2N1cydcbiAgICAgICAgfTtcbiAgICAgICAgaGFzS2VwdEZvY3VzID0gIXByZXZXYXNGb2N1c2VkO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgJ2luaXRpYWwtaW5wdXQtZm9jdXMnIGFjdGlvbiBoYXMgYmVlbiBzZXQgYWxyZWFkeVxuICAgICAgLy8gdGhlbiByZXNldCB0aGUgYXJpYVNlbGVjdGlvbiB0byBudWxsXG4gICAgICBpZiAoKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cycpIHtcbiAgICAgICAgbmV3QXJpYVNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5ld01lbnVPcHRpb25zU3RhdGUpLCBuZXdJbnB1dElzSGlkZGVuU3RhdGUpLCB7fSwge1xuICAgICAgICBwcmV2UHJvcHM6IHByb3BzLFxuICAgICAgICBhcmlhU2VsZWN0aW9uOiBuZXdBcmlhU2VsZWN0aW9uLFxuICAgICAgICBwcmV2V2FzRm9jdXNlZDogaGFzS2VwdEZvY3VzXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNlbGVjdDtcbn0oQ29tcG9uZW50KTtcblNlbGVjdC5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCB7IFNlbGVjdCBhcyBTLCBkZWZhdWx0UHJvcHMgYXMgYSwgZ2V0T3B0aW9uTGFiZWwkMSBhcyBiLCBjcmVhdGVGaWx0ZXIgYXMgYywgZGVmYXVsdFRoZW1lIGFzIGQsIGdldE9wdGlvblZhbHVlJDEgYXMgZywgbWVyZ2VTdHlsZXMgYXMgbSB9O1xuIiwgImltcG9ydCB7IHUgYXMgdXNlU3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi91c2VTdGF0ZU1hbmFnZXItN2UxZTg0ODkuZXNtLmpzJztcbmV4cG9ydCB7IHUgYXMgdXNlU3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi91c2VTdGF0ZU1hbmFnZXItN2UxZTg0ODkuZXNtLmpzJztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTIGFzIFNlbGVjdCB9IGZyb20gJy4vU2VsZWN0LTFmZDU4OGM5LmVzbS5qcyc7XG5leHBvcnQgeyBjIGFzIGNyZWF0ZUZpbHRlciwgZCBhcyBkZWZhdWx0VGhlbWUsIG0gYXMgbWVyZ2VTdHlsZXMgfSBmcm9tICcuL1NlbGVjdC0xZmQ1ODhjOS5lc20uanMnO1xuaW1wb3J0IHsgQ2FjaGVQcm92aWRlciB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBjcmVhdGVDYWNoZSBmcm9tICdAZW1vdGlvbi9jYWNoZSc7XG5leHBvcnQgeyBjIGFzIGNvbXBvbmVudHMgfSBmcm9tICcuL2luZGV4LWEzMDFmNTI2LmVzbS5qcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMic7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheSc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZVN1cGVyJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheSc7XG5pbXBvcnQgJ21lbW9pemUtb25lJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0ICdyZWFjdC1kb20nO1xuaW1wb3J0ICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCAndXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbnZhciBTdGF0ZU1hbmFnZWRTZWxlY3QgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgYmFzZVNlbGVjdFByb3BzID0gdXNlU3RhdGVNYW5hZ2VyKHByb3BzKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmXG4gIH0sIGJhc2VTZWxlY3RQcm9wcykpO1xufSk7XG52YXIgU3RhdGVNYW5hZ2VkU2VsZWN0JDEgPSBTdGF0ZU1hbmFnZWRTZWxlY3Q7XG5cbnZhciBOb25jZVByb3ZpZGVyID0gKGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBub25jZSA9IF9yZWYubm9uY2UsXG4gICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgIGNhY2hlS2V5ID0gX3JlZi5jYWNoZUtleTtcbiAgdmFyIGVtb3Rpb25DYWNoZSA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjcmVhdGVDYWNoZSh7XG4gICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgbm9uY2U6IG5vbmNlXG4gICAgfSk7XG4gIH0sIFtjYWNoZUtleSwgbm9uY2VdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENhY2hlUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogZW1vdGlvbkNhY2hlXG4gIH0sIGNoaWxkcmVuKTtcbn0pO1xuXG5leHBvcnQgeyBOb25jZVByb3ZpZGVyLCBTdGF0ZU1hbmFnZWRTZWxlY3QkMSBhcyBkZWZhdWx0IH07XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IHVzZUVkaXRhYmxlRGlzcGF0Y2ggfSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgVGFyZ2V0ZWRFdmVudCB9IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyB1c2VTdGFibGVDYWxsYmFjayB9IGZyb20gXCJ1aS9ob29rc1wiO1xuXG4vKiogRWRpdGFibGUgZmllbGQgZm9yIGEgYm9vbGVhbiAodHJ1ZS9mYWxzZSkgdmFsdWUuXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gQm9vbGVhbkVkaXRhYmxlKHByb3BzOiBGaWVsZENvbnRyb2xQcm9wczxib29sZWFuPikge1xuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDxib29sZWFuPih7XG4gICAgICAgIGNvbnRlbnQ6IHByb3BzLnZhbHVlID8/IHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdXBkYXRlcjogcHJvcHMudXBkYXRlciEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAoZXZ0OiBUYXJnZXRlZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld1ZhbHVlID0gIWV2dC5jdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKFwiaXMtZW5hYmxlZFwiKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWUgfSk7XG4gICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29tbWl0XCIsIG5ld1ZhbHVlIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbc3RhdGUuY29udGVudCwgc3RhdGUsIHByb3BzLnZhbHVlXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IG9uQ2xpY2s9e29uQ2hhbmdlfSBjbGFzc05hbWU9e2BjaGVja2JveC1jb250YWluZXIke3N0YXRlLmNvbnRlbnQgPyBcIiBpcy1lbmFibGVkXCIgOiBcIlwifWB9PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50IH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCB7IERpc3BhdGNoLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IEVkaXRhYmxlLCBFZGl0YWJsZUFjdGlvbiwgRWRpdGFibGVTdGF0ZSB9IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5cbmltcG9ydCBcIi4vZmllbGRzLmNzc1wiO1xuXG4vKiogRWRpdGFibGUgZmllbGQgZm9yIG11bHRpLXN0ZXAgcHJvZ3Jlc3MuXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gUHJvZ3Jlc3NFZGl0YWJsZShcbiAgICBwcm9wczogRWRpdGFibGVTdGF0ZTxudW1iZXI+ICYge1xuICAgICAgICBzb3VyY2VQYXRoOiBzdHJpbmc7XG4gICAgICAgIG1pbjogbnVtYmVyO1xuICAgICAgICBtYXg6IG51bWJlcjtcbiAgICAgICAgc3RlcDogbnVtYmVyO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248bnVtYmVyPj47XG4gICAgfVxuKSB7XG4gICAgY29uc3QgdmFsID0gdXNlUmVmKHByb3BzLmNvbnRlbnQpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHZhbC5jdXJyZW50IH0pO1xuICAgIH0sIFt2YWwuY3VycmVudF0pO1xuICAgIGNvbnN0IGZpbmFsaXplID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBwcm9wcy5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBcImNvbW1pdFwiLFxuICAgICAgICAgICAgbmV3VmFsdWU6IHZhbC5jdXJyZW50LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGNoYW5nZUNCID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgZmluYWxpemUoKTtcbiAgICAgICAgICAgIHZhbC5jdXJyZW50ID0gcGFyc2VGbG9hdChlLmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbdmFsLmN1cnJlbnQsIHByb3BzLnNvdXJjZVBhdGhdXG4gICAgKTtcbiAgICBjb25zdCByZWFkT25seSA9IDxwcm9ncmVzcyB2YWx1ZT17dmFsLmN1cnJlbnR9IG1pbj17cHJvcHMubWlufSBtYXg9e3Byb3BzLm1heH0gc3RlcD17cHJvcHMuc3RlcH0gLz47XG5cbiAgICBjb25zdCBlZGl0b3IgPSAoXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFuZ2VcIiBjbGFzc05hbWU9XCJkYXRhY29yZS1wcm9ncmVzcy1lZGl0YWJsZVwiIHZhbHVlPXt2YWwuY3VycmVudH0gb25DaGFuZ2U9e2NoYW5nZUNCfSAvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoYXMtdGV4dGVkaXRhYmxlXCI+XG4gICAgICAgICAgICA8RWRpdGFibGU8bnVtYmVyPlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtwcm9wcy5kaXNwYXRjaH1cbiAgICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgICBzdGF0ZT17eyAuLi5wcm9wcywgY29udGVudDogdmFsLmN1cnJlbnQsIGlzRWRpdGluZzogcHJvcHMuaXNFZGl0aW5nIH19XG4gICAgICAgICAgICAgICAgZGVmYXVsdFJlbmRlcj17cmVhZE9ubHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgdWlcbiAqL1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgdXNlRWRpdGFibGVEaXNwYXRjaCB9IGZyb20gXCJ1aS9maWVsZHMvZWRpdGFibGVcIjtcblxuaW1wb3J0IFwiLi9maWVsZHMuY3NzXCI7XG5cbi8qKiBFZGl0YWJsZSBmaWVsZCBmb3IgYSBzdGFyLWJhc2VkIHJhdGluZyBmaWVsZC5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSYXRpbmdFZGl0YWJsZSh7IHZhbHVlLCB1cGRhdGVyLCBjb25maWc6IGNvbmZpZywgZGVmYXVsdFZhbHVlIH06IEZpZWxkQ29udHJvbFByb3BzPG51bWJlciB8IHN0cmluZz4pIHtcbiAgICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8bnVtYmVyIHwgc3RyaW5nPih7XG4gICAgICAgIGNvbnRlbnQ6IHZhbHVlID8/IGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlciEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHN0YXRlLmNvbnRlbnQgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHN0YXRlLmNvbnRlbnQuY29udGFpbnMoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNwbGl0ID0gc3RhdGUuY29udGVudC5zcGxpdChcIi9cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHNwbGl0WzBdKSAvIHBhcnNlSW50KHNwbGl0WzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuY29udGVudCA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oc3RhdGUuY29udGVudCwgNSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSwgW3N0YXRlLmNvbnRlbnRdKTtcblxuICAgIGNvbnN0IHN0YXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCByOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChjb25maWc/Lm1heCA/PyA1KTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgY2xpY2tDYiA9IHVzZVN0YWJsZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhdGUuY29udGVudCA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5jb250ZW50LmNvbnRhaW5zKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBgJHtpICsgMX0vNWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdGF0ZS5jb250ZW50ID09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBNYXRoLm1pbihpICsgMSwgY29uZmlnPy5tYXggPz8gNSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogbmV3VmFsdWUgfHwgaSArIDEgfSk7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbW1pdFwiLCBuZXdWYWx1ZTogbmV3VmFsdWUgfHwgaSArIDEgfSk7XG4gICAgICAgICAgICB9LCBbc3RhdGUsIHBhcnNlZFZhbHVlLCBpXSk7XG4gICAgICAgICAgICBsZXQgY2xhc3NlcyA9IFtcImRhdGFjb3JlLXJhdGluZy1zdGFyXCJdO1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGkgPCBwYXJzZWRWYWx1ZSA/IFwiZmlsbGVkXCIgOiBcImVtcHR5XCIpO1xuICAgICAgICAgICAgci5wdXNoKFxuICAgICAgICAgICAgICAgIDxzcGFuIG9uQ2xpY2s9e2NsaWNrQ2J9IGNsYXNzTmFtZT17Y2xhc3Nlcy5qb2luKFwiIFwiKX0+XG4gICAgICAgICAgICAgICAgICAgICYjOTczMztcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH0sIFtwYXJzZWRWYWx1ZSwgc3RhdGVdKTtcblxuICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJkYXRhY29yZS1yYXRpbmdcIj57c3RhcnN9PC9zcGFuPjtcbn1cbiIsICJpbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgU3Vic3RvcmVyIH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgc2V0RW1vamlTaG9ydGhhbmRDb21wbGV0aW9uRmllbGQsIHNldElubGluZUZpZWxkIH0gZnJvbSBcImluZGV4L2ltcG9ydC9pbmxpbmUtZmllbGRcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IE1hcmtkb3duUGFnZSwgTWFya2Rvd25TZWN0aW9uLCBNYXJrZG93bkJsb2NrLCBNYXJrZG93bkxpc3RJdGVtLCBNYXJrZG93blRhc2tJdGVtIH0gZnJvbSBcImluZGV4L3R5cGVzL21hcmtkb3duXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgVmF1bHQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRG90RmllbGQocmF3OiBzdHJpbmcsIG9iajogYW55KSB7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCkgcmV0dXJuIG9iajtcbiAgICBpZiAocmF3LmNvbnRhaW5zKFwiLlwiKSlcbiAgICAgICAgcmV0dXJuIHJhdy5zcGxpdChcIi5cIikucmVkdWNlKCh0aWYsIGMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGlmID09IFwib2JqZWN0XCIpIHJldHVybiB0aWZbY107XG4gICAgICAgICAgICBlbHNlIHJldHVybiB0aWY7XG4gICAgICAgIH0sIG9iaiB8fCB7fSk7XG4gICAgaWYgKHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqW3Jhd107XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZChpbnB1dDogSW5kZXhhYmxlLCBmaWVsZDogc3RyaW5nKSB7XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgTWFya2Rvd25QYWdlKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5maWVsZChmaWVsZCk/LnZhbHVlID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIE1hcmtkb3duU2VjdGlvbikge1xuICAgICAgICByZXR1cm4gaW5wdXQuZmllbGQoZmllbGQpPy52YWx1ZSA/PyBudWxsO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBNYXJrZG93bkJsb2NrKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5maWVsZChmaWVsZCk/LnZhbHVlID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIE1hcmtkb3duTGlzdEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LmZpZWxkKGZpZWxkKT8udmFsdWUgPz8gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxufSAvKiogVHJpbSBlbXB0eSBlbmRpbmcgbGluZXMuICovXG5mdW5jdGlvbiB0cmltRW5kaW5nTGluZXModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHMgPSB0ZXh0LnNwbGl0KC9cXHI/XFxuL3UpO1xuICAgIGxldCB0cmltID0gcGFydHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAodHJpbSA+IDAgJiYgcGFydHNbdHJpbV0udHJpbSgpID09IFwiXCIpIHRyaW0tLTtcblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiXFxuXCIpO1xufVxuLyoqIFNldCB0aGUgdGFzayBjb21wbGV0aW9uIGtleSBvbiBjaGVjay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRUYXNrQ29tcGxldGlvbihcbiAgICB0YXNrOiBNYXJrZG93blRhc2tJdGVtLFxuICAgIG9yaWdpbmFsVGV4dDogc3RyaW5nLFxuICAgIHVzZUVtb2ppU2hvcnRoYW5kOiBib29sZWFuLFxuICAgIGNvbXBsZXRpb25LZXk6IHN0cmluZyxcbiAgICBjb21wbGV0aW9uRGF0ZUZvcm1hdDogc3RyaW5nLFxuICAgIGNvbXBsZXRlOiBib29sZWFuXG4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGJsb2NrSWRSZWdleCA9IC9cXF5bYS16MC05XFwtXSsvaTtcblxuICAgIGlmICghY29tcGxldGUgJiYgIXVzZUVtb2ppU2hvcnRoYW5kKSB7XG4gICAgICAgIGRlbGV0ZSB0YXNrLiRpbmZpZWxkc1tjb21wbGV0aW9uS2V5XTtcbiAgICAgICAgcmV0dXJuIHRyaW1FbmRpbmdMaW5lcyhzZXRJbmxpbmVGaWVsZChvcmlnaW5hbFRleHQudHJpbUVuZCgpLCBjb21wbGV0aW9uS2V5KSkudHJpbUVuZCgpO1xuICAgIH1cblxuICAgIGxldCBwYXJ0cyA9IG9yaWdpbmFsVGV4dC5zcGxpdCgvXFxyP1xcbi91KTtcbiAgICBjb25zdCBtYXRjaGVzID0gYmxvY2tJZFJlZ2V4LmV4ZWMocGFydHNbcGFydHMubGVuZ3RoIC0gMV0pO1xuXG4gICAgbGV0IHByb2Nlc3NlZFBhcnQgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXS5zcGxpdChibG9ja0lkUmVnZXgpLmpvaW4oXCJcIik7IC8vIGxhc3QgcGFydCB3aXRob3V0IGJsb2NrIGlkXG4gICAgaWYgKHVzZUVtb2ppU2hvcnRoYW5kKSB7XG4gICAgICAgIHByb2Nlc3NlZFBhcnQgPSBzZXRFbW9qaVNob3J0aGFuZENvbXBsZXRpb25GaWVsZChcbiAgICAgICAgICAgIHByb2Nlc3NlZFBhcnQsXG4gICAgICAgICAgICBjb21wbGV0ZSA/IERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KFwieXl5eS1NTS1kZFwiKSA6IFwiXCJcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzZWRQYXJ0ID0gc2V0SW5saW5lRmllbGQocHJvY2Vzc2VkUGFydCwgY29tcGxldGlvbktleSwgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoY29tcGxldGlvbkRhdGVGb3JtYXQpKTtcbiAgICAgICAgdGFzay4kaW5maWVsZHNbY29tcGxldGlvbktleV0gPSB7XG4gICAgICAgICAgICByYXc6IERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KGNvbXBsZXRpb25EYXRlRm9ybWF0KSxcbiAgICAgICAgICAgIHZhbHVlOiBEYXRlVGltZS5ub3coKSxcbiAgICAgICAgICAgIGtleTogY29tcGxldGlvbktleSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgbGluZTogdGFzay4kbGluZSxcbiAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICBzdGFydFZhbHVlOiAwLFxuICAgICAgICAgICAgICAgIGVuZDogRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoY29tcGxldGlvbkRhdGVGb3JtYXQpLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBwcm9jZXNzZWRQYXJ0ID0gYCR7cHJvY2Vzc2VkUGFydC50cmltRW5kKCl9JHttYXRjaGVzPy5sZW5ndGggPyBcIiBcIiArIG1hdGNoZXNbMF0udHJpbSgpIDogXCJcIn1gLnRyaW1FbmQoKTsgLy8gYWRkIGJhY2sgYmxvY2sgaWRcbiAgICBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9IHByb2Nlc3NlZFBhcnQudHJpbVN0YXJ0KCk7XG5cbiAgICByZXR1cm4gcGFydHMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGNvbnN0IExJU1RfSVRFTV9SRUdFWCA9IC9eW1xccz5dKihcXGQrXFwufFxcZCtcXCl8XFwqfC18XFwrKVxccyooXFxbLnswLDF9XFxdKT9cXHMqKC4qKSQvbXU7XG5cbi8qKiBSZXdyaXRlIGEgdGFzayB3aXRoIHRoZSBnaXZlbiBjb21wbGV0aW9uIHN0YXR1cyBhbmQgbmV3IHRleHQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV3cml0ZVRhc2soXG4gICAgdmF1bHQ6IFZhdWx0LFxuICAgIGNvcmU6IERhdGFjb3JlLFxuICAgIHRhc2s6IE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtLFxuICAgIGRlc2lyZWRTdGF0dXM6IHN0cmluZyxcbiAgICBkZXNpcmVkVGV4dD86IHN0cmluZ1xuKSB7XG4gICAgaWYgKFxuICAgICAgICB0YXNrIGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSAmJlxuICAgICAgICBkZXNpcmVkU3RhdHVzID09IHRhc2suJHN0YXR1cyAmJlxuICAgICAgICAoZGVzaXJlZFRleHQgPT0gdW5kZWZpbmVkIHx8IGRlc2lyZWRUZXh0ID09IHRhc2suJHRleHQpXG4gICAgKVxuICAgICAgICByZXR1cm47XG4gICAgZGVzaXJlZFN0YXR1cyA9IGRlc2lyZWRTdGF0dXMgPT0gXCJcIiA/IFwiIFwiIDogZGVzaXJlZFN0YXR1cztcblxuICAgIGxldCByYXdGaWxldGV4dCA9IGF3YWl0IHZhdWx0LmFkYXB0ZXIucmVhZCh0YXNrLiRmaWxlKTtcbiAgICBsZXQgaGFzUk4gPSByYXdGaWxldGV4dC5jb250YWlucyhcIlxcclwiKTtcbiAgICBsZXQgZmlsZXRleHQgPSByYXdGaWxldGV4dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vdSk7XG5cbiAgICBpZiAoZmlsZXRleHQubGVuZ3RoIDwgdGFzay4kbGluZSkgcmV0dXJuO1xuICAgIGxldCBtYXRjaCA9IExJU1RfSVRFTV9SRUdFWC5leGVjKGZpbGV0ZXh0W3Rhc2suJGxpbmVdKTtcbiAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzJdPy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXG4gICAgbGV0IHRhc2tUZXh0UGFydHMgPSB0YXNrLiR0ZXh0IS5zcGxpdChcIlxcblwiKTtcbiAgICAvLyBpZiAodGFza1RleHRQYXJ0c1swXS50cmltKCkgIT0gbWF0Y2hbM10udHJpbSgpKSByZXR1cm47XG5cbiAgICAvLyBXZSBoYXZlIGEgcG9zaXRpdmUgbWF0Y2ggaGVyZSBhdCB0aGlzIHBvaW50LCBzbyBnbyBhaGVhZCBhbmQgZG8gdGhlIHJld3JpdGUgb2YgdGhlIHN0YXR1cy5cbiAgICBjb25zdCBzdGF0dXNQYXJ0ID0gdGFzayBpbnN0YW5jZW9mIE1hcmtkb3duVGFza0l0ZW0gPyBgWyR7ZGVzaXJlZFN0YXR1c31dYCA6IFwiXCI7XG4gICAgbGV0IGluaXRpYWxTcGFjaW5nID0gL15bXFxzPl0qL3UuZXhlYyhmaWxldGV4dFt0YXNrLiRsaW5lXSkhIVswXTtcbiAgICBsZXQgY250ID0gMDtcbiAgICBpZiAoZGVzaXJlZFRleHQpIHtcbiAgICAgICAgbGV0IGRlc2lyZWRQYXJ0cyA9IGRlc2lyZWRUZXh0LnNwbGl0KFwiXFxuXCIpO1xuXG4gICAgICAgIGxldCBuZXdUZXh0TGluZXM6IHN0cmluZ1tdID0gW2Ake2luaXRpYWxTcGFjaW5nfSR7dGFzay4kc3ltYm9sfSAke3N0YXR1c1BhcnR9ICR7ZGVzaXJlZFBhcnRzWzBdfWBdLmNvbmNhdChcbiAgICAgICAgICAgIGRlc2lyZWRQYXJ0cy5zbGljZSgxKS5tYXAoKGwpID0+IGluaXRpYWxTcGFjaW5nICsgXCIgICBcIiArIGwudHJpbVN0YXJ0KCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgZmlsZXRleHQuc3BsaWNlKHRhc2suJGxpbmUsIHRhc2suJHRleHQhLnNwbGl0KFwiXFxuXCIpLmxlbmd0aCwgLi4ubmV3VGV4dExpbmVzKTtcbiAgICAgICAgY250ID0gbmV3VGV4dExpbmVzLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWxldGV4dFt0YXNrLiRsaW5lXSA9IGAke2luaXRpYWxTcGFjaW5nfSR7dGFzay4kc3ltYm9sfSAke3N0YXR1c1BhcnR9ICR7dGFza1RleHRQYXJ0c1swXS50cmltKCl9YDtcbiAgICAgICAgY250ID0gMTtcbiAgICB9XG5cbiAgICBsZXQgbmV3VGV4dCA9IGZpbGV0ZXh0LmpvaW4oaGFzUk4gPyBcIlxcclxcblwiIDogXCJcXG5cIik7XG4gICAgYXdhaXQgdmF1bHQuYWRhcHRlci53cml0ZSh0YXNrLiRmaWxlLCBuZXdUZXh0KTtcbiAgICBjb25zdCB0ZmlsZSA9IHZhdWx0LmdldEZpbGVCeVBhdGgodGFzay4kZmlsZSk7XG4gICAgY29uc29sZS5sb2codGFzay4kZmlsZSwgZmlsZXRleHQuc2xpY2UodGFzay4kcG9zaXRpb24uc3RhcnQsIHRhc2suJHBvc2l0aW9uLnN0YXJ0ICsgY250KS5qb2luKFwiXFxuXCIpKTtcbiAgICBpZiAodGZpbGUpIGNvcmUucmVsb2FkKHRmaWxlKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21wbGV0ZVRhc2soY29tcGxldGVkOiBib29sZWFuLCB0YXNrOiBNYXJrZG93blRhc2tJdGVtLCB2YXVsdDogVmF1bHQsIGNvcmU6IERhdGFjb3JlKSB7XG4gICAgY29uc3QgdGFza3NUb0NvbXBsZXRlID0gW3Rhc2tdO1xuICAgIGlmIChjb3JlLnNldHRpbmdzLnJlY3Vyc2l2ZVRhc2tDb21wbGV0aW9uKSB7XG4gICAgICAgIGNvbnN0IGZvckVhY2ggPSAoeDogTWFya2Rvd25UYXNrSXRlbSB8IE1hcmtkb3duTGlzdEl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICh4IGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSkgdGFza3NUb0NvbXBsZXRlLnB1c2goeCk7XG4gICAgICAgICAgICB4LiRlbGVtZW50cy5mb3JFYWNoKGZvckVhY2gpO1xuICAgICAgICB9O1xuICAgICAgICB0YXNrLiRlbGVtZW50cy5mb3JFYWNoKGZvckVhY2gpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHQgb2YgdGFza3NUb0NvbXBsZXRlKSB7XG4gICAgICAgIGxldCBuZXdUZXh0ID0gc2V0VGFza0NvbXBsZXRpb24oXG4gICAgICAgICAgICB0LFxuICAgICAgICAgICAgdC4kdGV4dCEsXG4gICAgICAgICAgICBjb3JlLnNldHRpbmdzLnRhc2tDb21wbGV0aW9uVXNlRW1vamlTaG9ydGhhbmQsXG4gICAgICAgICAgICBjb3JlLnNldHRpbmdzLnRhc2tDb21wbGV0aW9uVGV4dCxcbiAgICAgICAgICAgIGNvcmUuc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQsXG4gICAgICAgICAgICBjb21wbGV0ZWRcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgcmV3cml0ZVRhc2sodmF1bHQsIGNvcmUsIHQsIGNvbXBsZXRlZCA/IFwieFwiIDogXCIgXCIsIG5ld1RleHQpO1xuICAgIH1cbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgaW5kZXhhYmxlc1xuICovXG4vKiogVXRpbGl0aWVzIGZvciBjb252ZXJ0aW5nIGxpdGVyYWwgdHlwZXMgdG8gYW5kIGZyb20gdGhlaXIgWUFNTCBmcm9udG1hdHRlciByZXByZXNlbnRhdGlvbi4gKi9cblxuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBQUklNSVRJVkVTIH0gZnJvbSBcImV4cHJlc3Npb24vcGFyc2VyXCI7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuaW1wb3J0IHsgbWFwT2JqZWN0VmFsdWVzIH0gZnJvbSBcInV0aWxzL2RhdGFcIjtcblxuLyoqIFlBTUwtZnJpZW5kbHkgcmVwcmVzZW50YXRpb24gZm9yIGEgbGl0ZXJhbC4gKi9cbmV4cG9ydCB0eXBlIFlhbWxMaXRlcmFsID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgQXJyYXk8WWFtbExpdGVyYWw+O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBZYW1sQ29udmVyc2lvbiB7XG4gICAgLyoqIENvbnZlcnQgYSBsaXRlcmFsIGludG8gYSB5YW1sIGZyaWVuZGx5IHJlcHJlc2VudGF0aW9uLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiB5YW1sKHZhbHVlOiBMaXRlcmFsKTogWWFtbExpdGVyYWwge1xuICAgICAgICBjb25zdCB3cmFwcGVkID0gTGl0ZXJhbHMud3JhcFZhbHVlKGxpdGVyYWwpO1xuICAgICAgICBpZiAoIXdyYXBwZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLm1hcCh5YW1sKTtcbiAgICAgICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUudG9JU08oKTtcbiAgICAgICAgICAgIGNhc2UgXCJkdXJhdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLnZhbHVlLnRvSHVtYW4oKTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZC52YWx1ZS5tYXJrZG93bigpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBtYXBPYmplY3RWYWx1ZXMod3JhcHBlZC52YWx1ZSwgeWFtbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmVjdXJzaXZlbHkgY29udmVydCBhIFlBTUwgbGl0ZXJhbCBpbnRvIGEgcmVndWxhciBsaXRlcmFsIHZhbHVlLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBsaXRlcmFsKHZhbHVlOiBZYW1sTGl0ZXJhbCk6IExpdGVyYWwge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdmFsdWUgYXMgQXJyYXk8YW55Pikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChsaXRlcmFsKGNoaWxkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGVQYXJzZSA9IERhdGVUaW1lLmZyb21KU0RhdGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlUGFyc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBvYmplY3QgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGxpdGVyYWwob2JqZWN0W2tleV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbGV0IGRhdGVQYXJzZSA9IFBSSU1JVElWRVMuZGF0ZS5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZGF0ZVBhcnNlLnN0YXR1cykgcmV0dXJuIGRhdGVQYXJzZS52YWx1ZTtcblxuICAgICAgICAgICAgbGV0IGR1cmF0aW9uUGFyc2UgPSBQUklNSVRJVkVTLmR1cmF0aW9uLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChkdXJhdGlvblBhcnNlLnN0YXR1cykgcmV0dXJuIGR1cmF0aW9uUGFyc2UudmFsdWU7XG5cbiAgICAgICAgICAgIGxldCBsaW5rUGFyc2UgPSBQUklNSVRJVkVTLmxpbmsucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGxpbmtQYXJzZS5zdGF0dXMpIHJldHVybiBsaW5rUGFyc2UudmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJhY2t1cCBpZiB3ZSBkb24ndCB1bmRlcnN0YW5kIHRoZSB0eXBlLlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCAiLyoqIENlbnRyYWwgdXRpbGl0aWVzIGZvciBlZGl0aW5nIGZpZWxkcyBieSBzZXR0aW5nIG5ldyB2YWx1ZXMgaW4gZmlsZXMsIGFuZCB0cmFja2luZyBvdXRzdGFuZGluZyBlZGl0cy4gKi9cblxuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcbmltcG9ydCB7IFByb3ZlbmFuY2UgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IHNldElubGluZUZpZWxkIH0gZnJvbSBcImluZGV4L2ltcG9ydC9pbmxpbmUtZmllbGRcIjtcbmltcG9ydCB7IFlhbWxDb252ZXJzaW9uIH0gZnJvbSBcImluZGV4L3R5cGVzL3lhbWxcIjtcbmltcG9ydCB7IEFwcCwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IGxpbmVSZXBsYWNlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5cbi8qKiBFZGl0IGEgZmllbGQgYnkgaXQncyBwcm92ZW5hbmNlIChpLmUuLCBzb3VyY2UpOyByZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBjYW4gYmUgYXdhaXRlZCB0byB3YWl0IGZvciB0aGUgZmlsZSB3cml0ZSB0byBjb21wbGV0ZS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0UHJvdmVuYW5jZShhcHA6IEFwcCwgcHJvdmVuYW5jZTogUHJvdmVuYW5jZSwgdmFsdWU6IExpdGVyYWwpOiBQcm9taXNlPFJlc3VsdDxudWxsLCBzdHJpbmc+PiB7XG4gICAgY29uc3QgZmlsZSA9IGFwcC52YXVsdC5nZXRGaWxlQnlQYXRoKHByb3ZlbmFuY2UuZmlsZSk7XG4gICAgaWYgKCFmaWxlKSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZpbGUgd2l0aCBwYXRoICR7cHJvdmVuYW5jZS5maWxlfSBkb2VzIG5vdCBleGlzdC5gKTtcblxuICAgIC8vIFRPRE86IElmIHdlIGV2ZXIgc3VwcG9ydCBjdXN0b20gdHlwZXMsIHdlJ2xsIHdhbnQgdG8gY2hhbmdlIHRoaXMgc3dpdGNoIGludG8gc29tZSBraW5kIG9mIGR5bmFtaWMgbG9va3VwLlxuICAgIHN3aXRjaCAocHJvdmVuYW5jZS50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJmcm9udG1hdHRlclwiOlxuICAgICAgICAgICAgYXdhaXQgYXBwLmZpbGVNYW5hZ2VyLnByb2Nlc3NGcm9udE1hdHRlcihmaWxlLCAoZnJvbnRtYXR0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiBwcm92ZW5hbmNlLmtleSBpbiBmcm9udG1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgZnJvbnRtYXR0ZXJbcHJvdmVuYW5jZS5rZXldO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZyb250bWF0dGVyW3Byb3ZlbmFuY2Uua2V5XSA9IFlhbWxDb252ZXJzaW9uLnlhbWwodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhudWxsKTtcbiAgICAgICAgY2FzZSBcImlubGluZS1maWVsZFwiOlxuICAgICAgICAgICAgcmV0dXJuIGVkaXRJbmxpbmVGaWVsZChhcHAsIGZpbGUsIHByb3ZlbmFuY2UubGluZSwgcHJvdmVuYW5jZS5rZXksIHZhbHVlKTtcbiAgICB9XG59XG5cbi8qKiBDb21wbGV0ZSB3b3JrZmxvdyBmb3IgZWRpdGluZyBhbiBpbmxpbmUgZmllbGQuICAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRJbmxpbmVGaWVsZChcbiAgICBhcHA6IEFwcCxcbiAgICBmaWxlOiBURmlsZSxcbiAgICBsaW5lOiBudW1iZXIsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IExpdGVyYWxcbik6IFByb21pc2U8UmVzdWx0PG51bGwsIHN0cmluZz4+IHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LnJlYWQoZmlsZSk7XG4gICAgaWYgKCFjb250ZW50KSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZpbGUgd2l0aCBwYXRoICR7ZmlsZS5wYXRofSBkb2VzIG5vdCBleGlzdC5gKTtcblxuICAgIC8vIEZpbmQgdGhlIGV4dGVudCBvZiB0aGUgZ2l2ZW4gbGluZSAoMC1pbmRleGVkKSwgZXh0cmFjdCBpdCBhbmQgdXBkYXRlLlxuICAgIGNvbnN0IHVwZGF0ZWQgPSBsaW5lUmVwbGFjZShjb250ZW50LCBsaW5lLCBsaW5lICsgMSwgKGxpbmUpID0+IHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBzdHJpbmdpZi1pY2F0aW9uIG9mIHRoZSB2YWx1ZSBpcyBub3QgY29ycmVjdCBhbmQgd2lsbCBub3Qgd29ya1xuICAgICAgICAvLyBmb3IgYXJyYXlzIG9yIG9iamVjdHMsIGJ1dCB3aWxsIHNlcnZlIHB1cnBvc2UgZm9yIG5vdy4uLlxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIHNldElubGluZUZpZWxkKGxpbmUsIGtleSwgdW5kZWZpbmVkKTtcbiAgICAgICAgZWxzZSByZXR1cm4gc2V0SW5saW5lRmllbGQobGluZSwga2V5LCBcIlwiICsgWWFtbENvbnZlcnNpb24ueWFtbCh2YWx1ZSkpO1xuICAgIH0pO1xuXG4gICAgaWYgKHVwZGF0ZWQgPT0gY29udGVudCkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xuXG4gICAgYXdhaXQgYXBwLnZhdWx0Lm1vZGlmeShmaWxlLCB1cGRhdGVkKTtcbiAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MobnVsbCk7XG59XG4iLCAiaW1wb3J0IHsgRmllbGQgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgTGl0ZXJhbCB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IHNldElubGluZUZpZWxkIH0gZnJvbSBcImluZGV4L2ltcG9ydC9pbmxpbmUtZmllbGRcIjtcbmltcG9ydCB7IE1hcmtkb3duVGFza0l0ZW0gfSBmcm9tIFwiaW5kZXgvdHlwZXMvbWFya2Rvd25cIjtcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0IH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuaW1wb3J0IHsgQVBQX0NPTlRFWFQgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IHJld3JpdGVUYXNrIH0gZnJvbSBcIi4vdGFza1wiO1xuaW1wb3J0IHsgRWRpdGFibGVBY3Rpb24gfSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgZWRpdFByb3ZlbmFuY2UgfSBmcm9tIFwiaW5kZXgvZWRpdC9maWVsZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2V0RmllbGQ8VCBleHRlbmRzIExpdGVyYWw+KGZpZWxkOiBGaWVsZCwgb25DaGFuZ2U/OiAobmV3VmFsdWU6IFQpID0+IHZvaWQpIHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgICAgIChuZXdWYWx1ZTogVCkgPT4ge1xuICAgICAgICAgICAgZWRpdFByb3ZlbmFuY2UoYXBwLCBmaWVsZC5wcm92ZW5hbmNlISwgbmV3VmFsdWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvbkNoYW5nZSkgb25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtmaWVsZCwgb25DaGFuZ2VdXG4gICAgKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRUYXNrVGV4dChhcHA6IEFwcCwgY29yZTogRGF0YWNvcmUsIHRleHQ6IHN0cmluZywgaXRlbTogTWFya2Rvd25UYXNrSXRlbSkge1xuICAgIGxldCB3aXRoRmllbGRzID0gYCR7dGV4dH0ke09iamVjdC5rZXlzKGl0ZW0uJGluZmllbGRzKS5sZW5ndGggPyBcIiBcIiA6IFwiXCJ9YDtcbiAgICBmb3IgKGxldCBmaWVsZCBpbiBpdGVtLiRpbmZpZWxkcykge1xuICAgICAgICB3aXRoRmllbGRzID0gc2V0SW5saW5lRmllbGQod2l0aEZpZWxkcywgZmllbGQsIGl0ZW0uJGluZmllbGRzW2ZpZWxkXS5yYXcpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcIm5ldyB0ZXh0XCIsIHdpdGhGaWVsZHMpO1xuICAgIGF3YWl0IHJld3JpdGVUYXNrKGFwcC52YXVsdCwgY29yZSwgaXRlbSwgaXRlbS4kc3RhdHVzLCB3aXRoRmllbGRzKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGaW5hbGl6ZXI8VD4obmV3VmFsdWU6IFQsIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxUPj4pIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLFxuICAgICAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogXCJlZGl0aW5nLXRvZ2dsZWRcIixcbiAgICAgICAgICAgIG5ld1ZhbHVlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgdWlcbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgRnJhZ21lbnQsIFZOb2RlIH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlZHVjZXIsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IENoYW5nZUV2ZW50LCB1c2VSZWR1Y2VyIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCBTZWxlY3QsIHsgQWN0aW9uTWV0YSB9IGZyb20gXCJyZWFjdC1zZWxlY3RcIjtcbmltcG9ydCB7IHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcIi4uL2hvb2tzXCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0LCBNYXJrZG93biwgU0VUVElOR1NfQ09OVEVYVCB9IGZyb20gXCIuLi9tYXJrZG93blwiO1xuaW1wb3J0IHsgTGl0ZXJhbCwgTGl0ZXJhbFR5cGUsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IEJhc2VGaWVsZFByb3BzLCBGaWVsZENvbnRyb2xQcm9wcyB9IGZyb20gXCIuL2NvbW1vbi1wcm9wc1wiO1xuaW1wb3J0IHsgTWFya2Rvd25MaXN0SXRlbSwgTWFya2Rvd25UYXNrSXRlbSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgQm9vbGVhbkVkaXRhYmxlIH0gZnJvbSBcIi4vYm9vbGVhbi1maWVsZFwiO1xuaW1wb3J0IHsgUHJvZ3Jlc3NFZGl0YWJsZSB9IGZyb20gXCIuL3Byb2dyZXNzLWZpZWxkXCI7XG5pbXBvcnQgeyBSYXRpbmdFZGl0YWJsZSB9IGZyb20gXCIuL3JhdGluZ1wiO1xuaW1wb3J0IHsgdXNlRmluYWxpemVyIH0gZnJvbSBcInV0aWxzL2ZpZWxkc1wiO1xuXG5pbXBvcnQgXCIuL2ZpZWxkcy5jc3NcIjtcblxuLyoqIENvcmUgc3RhdGUgZm9yIHRyYWNraW5nIGFuIGVkaXRhYmxlIG9iamVjdC5cbiAqIEBncm91cCBTdGF0ZXNcbiAqIEB0eXBlUGFyYW0gVCAtIHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBiZWluZyBlZGl0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0YWJsZVN0YXRlPFQ+IHtcbiAgICAvKiogV2hldGhlciB0aGUgdmFsdWUgaXMgY3VycmVudGx5IGJlaW5nIGVkaXRlZC4gKi9cbiAgICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgY3VycmVudCAoYXJiaXRyYXJ5KSBjb250ZW50IG9mIHRoZSBlZGl0YWJsZS4gKi9cbiAgICBjb250ZW50OiBUO1xuICAgIC8qKiBDYWxsYmFjayB3aGVuZXZlciB0aGUgZWRpdGFibGUgdmFsdWUgaXMgY2hhbmdlZC4gKi9cbiAgICB1cGRhdGVyOiAodmFsOiBUKSA9PiB1bmtub3duO1xuICAgIC8qKiBXaGV0aGVyIHRoZSBlZGl0b3IgaXMgYmVpbmcgcmVuZGVyZWQgaW5saW5lIGluIGEgcGFyYWdyYXBoIG9yIG5vdC4gKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBncm91cCBQcm9wc1xuICogQHR5cGVQYXJhbSBUIC0gdGhlIHR5cGUgb2YgdGhlIHZhbHVlIGJlaW5nIGVkaXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRhYmxlUHJvcHM8VD4ge1xuICAgIC8qKiBTb3VyY2UgZmlsZSBmcm9tIHdoaWNoIHRoZSBlZGl0YWJsZSB2YWx1ZSBvcmlnaW5hdGVzLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gICAgLyoqIEJhY2t1cCBkZWZhdWx0IHJlbmRlcmVyIGZvciB0aGlzIG9iamVjdC4gKi9cbiAgICBkZWZhdWx0UmVuZGVyPzogVk5vZGU7XG4gICAgLyoqIE5vZGUgd2hpY2ggcG9pbnRzIHRvIHRoZSBhY3R1YWwgZWRpdG9yLiAqL1xuICAgIGVkaXRvcjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIC8qKiBEaXNwYXRjaGVyIGZvciBjb250cm9sbGluZyB0aGUgZWRpdCBzdGF0ZSwgdHJhY2tpbmcgdXBkYXRlcywgY29tbWl0cywgYW5kIHNvIG9uLiAqL1xuICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxUPj47XG4gICAgLyoqIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBlZGl0b3IuICovXG4gICAgc3RhdGU6IEVkaXRhYmxlU3RhdGU8VD47XG59XG5cbnR5cGUgRWRpdGFibGVFbGVtZW50UHJvcHM8VCwgUD4gPSBFZGl0YWJsZVN0YXRlPFQ+ICYgUDtcbmV4cG9ydCB0eXBlIEVkaXRhYmxlRWxlbWVudDxULCBQID0gYW55PiA9IENvbXBvbmVudFR5cGU8RWRpdGFibGVFbGVtZW50UHJvcHM8VCwgUD4gJiBQPjtcblxuLyoqXG4gKiAgQWN0aW9ucyB3aGljaCB1cGRhdGUvY2hhbmdlIHRoZSBzdGF0ZSBvZiBhbiBlZGl0YWJsZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqICovXG5leHBvcnQgdHlwZSBFZGl0YWJsZUFjdGlvbjxUPiA9XG4gICAgfCB7XG4gICAgICAgICAgdHlwZTogXCJjb21taXRcIjtcbiAgICAgICAgICAvLyBvbGRWYWx1ZTogYW55LFxuICAgICAgICAgIG5ld1ZhbHVlOiBUO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICAgIHR5cGU6IFwiZWRpdGluZy10b2dnbGVkXCI7XG4gICAgICAgICAgbmV3VmFsdWU6IGJvb2xlYW47XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgICAgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIjtcbiAgICAgICAgICBuZXdWYWx1ZTogVDtcbiAgICAgIH07XG5cbi8qKiBEZWZhdWx0IHJlZHVjZXIgZm9yIGFwcGx5aW5nIGFjdGlvbnMgdG8gdGhlIGVkaXRhYmxlIHN0YXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdGFibGVSZWR1Y2VyPFQ+KFxuICAgIHsgY29udGVudCwgdXBkYXRlciwgLi4ucmVzdCB9OiBFZGl0YWJsZVN0YXRlPFQ+LFxuICAgIGFjdGlvbjogRWRpdGFibGVBY3Rpb248VD5cbik6IEVkaXRhYmxlU3RhdGU8VD4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImNvbW1pdFwiOlxuICAgICAgICAgICAgdXBkYXRlcihhY3Rpb24ubmV3VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ucmVzdCwgdXBkYXRlciwgY29udGVudDogYWN0aW9uLm5ld1ZhbHVlIH07XG4gICAgICAgIGNhc2UgXCJlZGl0aW5nLXRvZ2dsZWRcIjpcbiAgICAgICAgICAgICFhY3Rpb24ubmV3VmFsdWUgJiYgdXBkYXRlcihjb250ZW50KTtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnJlc3QsIHVwZGF0ZXIsIGNvbnRlbnQsIGlzRWRpdGluZzogYWN0aW9uLm5ld1ZhbHVlIH07XG4gICAgICAgIGNhc2UgXCJjb250ZW50LWNoYW5nZWRcIjpcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnJlc3QsIHVwZGF0ZXIsIGNvbnRlbnQ6IGFjdGlvbi5uZXdWYWx1ZSB9O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHsgY29udGVudCwgdXBkYXRlciwgLi4ucmVzdCB9O1xuICAgIH1cbn1cblxuLyoqIFByb3ZpZGVzIHN0YXRlIG1hbmFnZW1lbnQgZm9yIGFuIGVkaXRhYmxlIGZpZWxkLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VFZGl0YWJsZURpc3BhdGNoPFQ+KFxuICAgIGluaXRpYWw6IEVkaXRhYmxlU3RhdGU8VD4gfCAoKCkgPT4gRWRpdGFibGVTdGF0ZTxUPilcbik6IFtFZGl0YWJsZVN0YXRlPFQ+LCBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxUPj5dIHtcbiAgICBjb25zdCBpbml0ID0gdXNlTWVtbygoKSA9PiAodHlwZW9mIGluaXRpYWwgPT0gXCJmdW5jdGlvblwiID8gaW5pdGlhbCgpIDogaW5pdGlhbCksIFtpbml0aWFsXSk7XG4gICAgcmV0dXJuIHVzZVJlZHVjZXIoZWRpdGFibGVSZWR1Y2VyIGFzIFJlZHVjZXI8RWRpdGFibGVTdGF0ZTxUPiwgRWRpdGFibGVBY3Rpb248VD4+LCBpbml0LCAocykgPT4gaW5pdCk7XG59XG4vKipcbiAqIGEgaGlnaGVyLW9yZGVyLWNvbXBvbmVudCBmb3IgZWRpdGluZyBmaWVsZHMuXG4gKiBAcGFyYW0gcHJvcHNcbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFZGl0YWJsZTxUPih7IHNvdXJjZVBhdGgsIGRlZmF1bHRSZW5kZXIsIGVkaXRvciwgZGlzcGF0Y2gsIHN0YXRlIH06IEVkaXRhYmxlUHJvcHM8VD4pIHtcbiAgICBjb25zdCBjdXJyZW50UmVmID0gdXNlUmVmKG51bGwpO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc3RhdGUuaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZWRpdG9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRSZW5kZXIpIHJldHVybiBkZWZhdWx0UmVuZGVyO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gPExpdCB2YWx1ZT17c3RhdGUuY29udGVudCBhcyBMaXRlcmFsfSBpbmxpbmU9e3RydWV9IHNvdXJjZVBhdGg9XCJcIiAvPjtcbiAgICAgICAgfVxuICAgIH0sIFtzdGF0ZS5pc0VkaXRpbmcsIHN0YXRlLmNvbnRlbnQsIHNvdXJjZVBhdGgsIGRlZmF1bHRSZW5kZXJdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoICYmIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHN0YXRlLmNvbnRlbnQgfSk7XG4gICAgfSwgW3N0YXRlLmNvbnRlbnQsIHN0YXRlLmlzRWRpdGluZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0YWNvcmUtZWRpdGFibGUtb3V0ZXJcIiByZWY9e2N1cnJlbnRSZWZ9PlxuICAgICAgICAgICAge2VsZW1lbnR9XG4gICAgICAgIDwvc3Bhbj5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlZEVkaXRhYmxlPFQsIFAgPSB1bmtub3duPih7XG4gICAgZGVmYXVsdFJlbmRlcixcbiAgICBlZGl0b3I6IEVkaXRvcixcbiAgICBvblVwZGF0ZSxcbiAgICBjb250ZW50LFxuICAgIHByb3BzLFxuICAgIHNvdXJjZVBhdGgsXG59OiBPbWl0PEVkaXRhYmxlUHJvcHM8VD4sIFwiZGlzcGF0Y2hcIiB8IFwic3RhdGVcIiB8IFwiZWRpdG9yXCI+ICYge1xuICAgIG9uVXBkYXRlOiAodjogVCkgPT4gdW5rbm93bjtcbiAgICBjb250ZW50OiBUO1xuICAgIGVkaXRvcjogRWRpdGFibGVFbGVtZW50PFQsIFA+O1xuICAgIHByb3BzOiBQO1xuICAgIHNvdXJjZVBhdGg6IHN0cmluZztcbn0pIHtcbiAgICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8VD4oKCkgPT4gKHtcbiAgICAgICAgdXBkYXRlcjogb25VcGRhdGUsXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgfSkpO1xuICAgIGNvbnN0IGVkaXRvciA9IDxFZGl0b3IgZGlzcGF0Y2g9e2Rpc3BhdGNofSB7Li4ucHJvcHN9IHsuLi5zdGF0ZX0gLz47XG4gICAgcmV0dXJuIDxFZGl0YWJsZTxUPiBkaXNwYXRjaD17ZGlzcGF0Y2h9IGVkaXRvcj17ZWRpdG9yfSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRofSBzdGF0ZT17c3RhdGV9IC8+O1xufVxuXG4vKiogQSBzaW5nbGUgc2VsZWN0YWJsZSB2YWx1ZS5cbiAqL1xudHlwZSBTZWxlY3RhYmxlQmFzZSA9IHN0cmluZyB8IG51bWJlcjtcbi8qKiBBIHR5cGUgZm9yIGVpdGhlciBtdWx0aS0gb3Igc2luZ2xlLXNlbGVjdCB2YWx1ZXMuICovXG50eXBlIFNlbGVjdGFibGVUeXBlID0gU2VsZWN0YWJsZUJhc2UgfCBTZWxlY3RhYmxlQmFzZVtdO1xuXG4vKiogRWRpdGFibGUgd2hpY2ggYWxsb3dzIGZvciBzZWxlY3Rpb24gZnJvbSBhIGxpc3Qgb2Ygb3B0aW9ucy5cbiAqIEBncm91cCBFZGl0YWJsZSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RhYmxlRWRpdGFibGUoe1xuICAgIGlzRWRpdGluZyxcbiAgICBjb250ZW50LFxuICAgIHVwZGF0ZXIsXG4gICAgY29uZmlnLFxuICAgIGRpc3BhdGNoLFxufTogRWRpdGFibGVTdGF0ZTxTZWxlY3RhYmxlVHlwZT4gJlxuICAgIEJhc2VGaWVsZFByb3BzPFNlbGVjdGFibGVUeXBlPiAmIHtcbiAgICAgICAgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPFNlbGVjdGFibGVUeXBlPj47XG4gICAgfSkge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIChuZXdWYWx1ZTogYW55LCBhY3Rpb25NZXRhOiBBY3Rpb25NZXRhPFNlbGVjdGFibGVUeXBlPikgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZTogbmV3VmFsdWUubWFwKCh4KSA9PiB4LnZhbHVlKSBhcyBTZWxlY3RhYmxlVHlwZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZTogbmV3VmFsdWUudmFsdWUgYXMgU2VsZWN0YWJsZVR5cGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtjb25maWcsIGNvbnRlbnQsIHVwZGF0ZXIsIGlzRWRpdGluZ11cbiAgICApO1xuXG4gICAgY29uc3QgZWRpdG9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PVwiZGF0YWNvcmUtc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICAgIHVuc3R5bGVkXG4gICAgICAgICAgICAgICAgaXNNdWx0aT17Y29uZmlnPy5tdWx0aSA/PyBmYWxzZX1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtjb25maWc/Lm9wdGlvbnMgPz8gW119XG4gICAgICAgICAgICAgICAgbWVudVBvcnRhbFRhcmdldD17ZG9jdW1lbnQuYm9keX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz8ub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICgoQXJyYXkuaXNBcnJheShjb250ZW50KSA/IGNvbnRlbnQgOiBbY29udGVudF0pIGFzIGFueVtdKS5jb250YWlucyh4LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICApIHx8IFtdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IChwcm9wczogYW55KSA9PiBcInByb21wdC1pbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNvbnRhaW5lcjogKHByb3BzOiBhbnkpID0+IFwic3VnZ2VzdGlvbi1pdGVtIHZhbHVlLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXI6IChwcm9wczogYW55KSA9PiBcInN1Z2dlc3Rpb24tY29udGFpbmVyXCIsXG4gICAgICAgICAgICAgICAgICAgIG1lbnU6IChwcm9wczogYW55KSA9PiBcInN1Z2dlc3Rpb24tY29udGVudCBzdWdnZXN0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb246IChwcm9wczogYW55KSA9PiBgc3VnZ2VzdGlvbi1pdGVtJHtwcm9wcy5pc1NlbGVjdGVkID8gXCIgaXMtc2VsZWN0ZWRcIiA6IFwiXCJ9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9LCBbY29udGVudCwgdXBkYXRlciwgaXNFZGl0aW5nLCBjb25maWddKTtcblxuICAgIHJldHVybiA8RWRpdGFibGUgZWRpdG9yPXtlZGl0b3J9IGRpc3BhdGNoPXtkaXNwYXRjaH0gc3RhdGU9e3sgaXNFZGl0aW5nLCBjb250ZW50LCB1cGRhdGVyIH19IC8+O1xufVxuXG4vKiogRWRpdGFibGUgd2hpY2ggYWxsb3dzIGZvciBzZWxlY3RpbmcgYSBkYXRlLlxuICogQGdyb3VwIEVkaXRhYmxlIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERhdGVFZGl0YWJsZSh7XG4gICAgZGlzcGF0Y2gsXG4gICAgc291cmNlUGF0aCxcbiAgICAuLi5yZXN0XG59OiBFZGl0YWJsZVN0YXRlPERhdGVUaW1lIHwgc3RyaW5nIHwgbnVsbD4gJiB7XG4gICAgc291cmNlUGF0aDogc3RyaW5nO1xuICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxEYXRlVGltZSB8IHN0cmluZyB8IG51bGw+Pjtcbn0pIHtcbiAgICAvKiogdGhlIGV4dHJhIGRpc3BhdGNoIGlzIF9qdXN0XyBpbiBjYXNlLi4uICovXG4gICAgY29uc3QgW3N0YXRlLCBvXSA9IHVzZUVkaXRhYmxlRGlzcGF0Y2g8RGF0ZVRpbWUgfCBzdHJpbmcgfCBudWxsPigoKSA9PiAoe1xuICAgICAgICBpc0VkaXRpbmc6IHJlc3QuaXNFZGl0aW5nLFxuICAgICAgICBjb250ZW50OiByZXN0LmNvbnRlbnQsXG4gICAgICAgIHVwZGF0ZXI6IHJlc3QudXBkYXRlcixcbiAgICAgICAgaW5saW5lOiByZXN0LmlubGluZSA/PyBmYWxzZSxcbiAgICB9KSk7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB1c2VDb250ZXh0KFNFVFRJTkdTX0NPTlRFWFQpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoZXZ0OiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBsZXQgdiA9IG5ldyBEYXRlKERhdGUucGFyc2UoZXZ0LmN1cnJlbnRUYXJnZXQudmFsdWUpKTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIixcbiAgICAgICAgICAgIG5ld1ZhbHVlOiAhIXYgPyBEYXRlVGltZS5mcm9tSlNEYXRlKHYpLnRvRm9ybWF0KHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KSA6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBcImNvbW1pdFwiLFxuICAgICAgICAgICAgbmV3VmFsdWU6ICEhdiA/IERhdGVUaW1lLmZyb21KU0RhdGUodikudG9Gb3JtYXQoc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQpIDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIG8oe1xuICAgICAgICAgICAgdHlwZTogXCJjb21taXRcIixcbiAgICAgICAgICAgIG5ld1ZhbHVlOiAhIXYgPyBEYXRlVGltZS5mcm9tSlNEYXRlKHYpLnRvRm9ybWF0KHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KSA6IG51bGwsXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBqc0RhdGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmNvbnRlbnQgaW5zdGFuY2VvZiBEYXRlVGltZVxuICAgICAgICAgICAgPyBzdGF0ZS5jb250ZW50XG4gICAgICAgICAgICA6IHR5cGVvZiBzdGF0ZS5jb250ZW50ID09IFwic3RyaW5nXCIgJiYgISFzdGF0ZS5jb250ZW50XG4gICAgICAgICAgICA/IERhdGVUaW1lLmZyb21KU0RhdGUobmV3IERhdGUoRGF0ZS5wYXJzZShzdGF0ZS5jb250ZW50KSkpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfSwgW3N0YXRlLmNvbnRlbnRdKTtcblxuICAgIGNvbnN0IGVkaXRvck5vZGUgPSA8aW5wdXQgdHlwZT1cImRhdGVcIiBvbkNoYW5nZT17b25DaGFuZ2V9IHZhbHVlPXtqc0RhdGU/LnRvRm9ybWF0KFwieXl5eS1NTS1kZFwiKX0gLz47XG4gICAgcmV0dXJuIDxFZGl0YWJsZTxEYXRlVGltZSB8IHN0cmluZyB8IG51bGw+IGRpc3BhdGNoPXtkaXNwYXRjaH0gc3RhdGU9e3Jlc3R9IGVkaXRvcj17ZWRpdG9yTm9kZX0gLz47XG59XG5cbi8qKiBBbiBlZGl0b3Igd2hpY2ggYWxsb3dzIHNlbGVjdGluZyBhIG51bW5lcmljIHZhbHVlLlxuICogQGdyb3VwIEVkaXRhYmxlIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE51bWJlckVkaXRhYmxlKHByb3BzOiBFZGl0YWJsZVN0YXRlPG51bWJlcj4pIHtcbiAgICBjb25zdCBjZmMgPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcblxuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDxudW1iZXI+KCgpID0+ICh7XG4gICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgIGNvbnRlbnQ6IHByb3BzLmNvbnRlbnQsXG4gICAgICAgIHVwZGF0ZXI6IHByb3BzLnVwZGF0ZXIsXG4gICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICB9KSk7XG4gICAgY29uc3QgdmFsdWUgPSB1c2VSZWYocHJvcHMuY29udGVudCk7XG5cbiAgICBjb25zdCBvbkNoYW5nZUNiID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jIChldnQ6IENoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICB2YWx1ZS5jdXJyZW50ID0gcGFyc2VGbG9hdCgoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBbdmFsdWUuY3VycmVudCwgc3RhdGUuY29udGVudCwgc3RhdGUudXBkYXRlciwgc3RhdGUuaXNFZGl0aW5nXVxuICAgICk7XG5cbiAgICBjb25zdCBmaW5hbGl6ZSA9IHVzZUZpbmFsaXplcih2YWx1ZS5jdXJyZW50LCBkaXNwYXRjaCk7XG4gICAgY29uc3Qgb25JbnB1dCA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICBhc3luYyAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBmaW5hbGl6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdmFsdWUuY3VycmVudCwgc3RhdGUudXBkYXRlciwgc3RhdGUuY29udGVudCwgc3RhdGUuaXNFZGl0aW5nXVxuICAgICk7XG5cbiAgICBjb25zdCBkYmxDbGljayA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZWRpdGluZy10b2dnbGVkXCIsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW3ZhbHVlLmN1cnJlbnQsIHN0YXRlLnVwZGF0ZXIsIHN0YXRlLmlzRWRpdGluZywgc3RhdGUuY29udGVudF1cbiAgICApO1xuXG4gICAgY29uc3QgcmVhZG9ubHlFbCA9IDxMaXQgaW5saW5lPXtmYWxzZX0gc291cmNlUGF0aD17Y2ZjfSB2YWx1ZT17dmFsdWUuY3VycmVudCBhcyBMaXRlcmFsfSAvPjtcbiAgICBjb25zdCBlZGl0b3IgPSA8aW5wdXQgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZWRpdGFibGVcIiB0eXBlPVwibnVtYmVyXCIgb25DaGFuZ2U9e29uQ2hhbmdlQ2J9IG9uS2V5VXA9e29uSW5wdXR9IC8+O1xuICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhhcy10ZXh0ZWRpdGFibGVcIiBvbkRibENsaWNrPXtkYmxDbGlja30+XG4gICAgICAgICAgICA8RWRpdGFibGU8bnVtYmVyPiBkaXNwYXRjaD17ZGlzcGF0Y2h9IGVkaXRvcj17ZWRpdG9yfSBkZWZhdWx0UmVuZGVyPXtyZWFkb25seUVsfSBzdGF0ZT17c3RhdGV9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICApO1xufVxuXG4vKiogRWRpdG9yIHdoaWNoIHN1cHBvcnRzIG11bHRpLWxpbmUgdGV4dCBlZGl0aW5nOyBub3RlIHRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBpbnB1dCBhbmQgZG9lcyBub3Qgc3VwcG9ydCBtb3N0IG1hcmtkb3duIG1ldGFkYXRhLlxuICogQGdyb3VwIEVkaXRhYmxlIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRleHRFZGl0YWJsZShwcm9wczogRWRpdGFibGVTdGF0ZTxzdHJpbmc+ICYgeyBtYXJrZG93bj86IGJvb2xlYW47IHNvdXJjZVBhdGg6IHN0cmluZyB9KSB7XG4gICAgY29uc3QgY2ZjID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VFZGl0YWJsZURpc3BhdGNoPHN0cmluZz4oKCkgPT4gKHtcbiAgICAgICAgaXNFZGl0aW5nOiBwcm9wcy5pc0VkaXRpbmcsXG4gICAgICAgIGNvbnRlbnQ6IHByb3BzLmNvbnRlbnQsXG4gICAgICAgIHVwZGF0ZXI6IHByb3BzLnVwZGF0ZXIsXG4gICAgICAgIGlubGluZTogcHJvcHMuaW5saW5lID8/IGZhbHNlLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHRleHQgPSB1c2VSZWYocHJvcHMuY29udGVudCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdGV4dC5jdXJyZW50ID0gc3RhdGUuY29udGVudDtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogc3RhdGUuY29udGVudCB9KTtcbiAgICB9LCBbcHJvcHMuY29udGVudCwgc3RhdGUuY29udGVudF0pO1xuXG4gICAgY29uc3QgZmluYWxpemUgPSB1c2VGaW5hbGl6ZXIoc3RhdGUuY29udGVudCwgZGlzcGF0Y2gpO1xuICAgIGNvbnN0IG9uSW5wdXQgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmaW5hbGl6ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIgJiYgZS5jdHJsS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZmluYWxpemUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFt0ZXh0LmN1cnJlbnQsIHByb3BzLnNvdXJjZVBhdGgsIHN0YXRlLnVwZGF0ZXIsIHN0YXRlLmNvbnRlbnQsIHN0YXRlLmlzRWRpdGluZ11cbiAgICApO1xuXG4gICAgY29uc3QgZGJsQ2xpY2sgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFt0ZXh0LmN1cnJlbnQsIHByb3BzLnNvdXJjZVBhdGgsIHN0YXRlLnVwZGF0ZXIsIHN0YXRlLmlzRWRpdGluZywgc3RhdGUuY29udGVudF1cbiAgICApO1xuICAgIGNvbnN0IHJlYWRvbmx5RWwgPSAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgIHtwcm9wcy5tYXJrZG93biA/IChcbiAgICAgICAgICAgICAgICA8TWFya2Rvd24gY29udGVudD17dGV4dC5jdXJyZW50IGFzIHN0cmluZ30gc291cmNlUGF0aD17cHJvcHMuc291cmNlUGF0aCB8fCBjZmN9IGlubGluZT17ZmFsc2V9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxMaXQgaW5saW5lPXtmYWxzZX0gc291cmNlUGF0aD17cHJvcHMuc291cmNlUGF0aCB8fCBjZmN9IHZhbHVlPXt0ZXh0LmN1cnJlbnQgYXMgTGl0ZXJhbH0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgKTtcbiAgICBjb25zdCBlZGl0b3IgPSAoXG4gICAgICAgIDxVbmNvbnRyb2xsZWRUZXh0RWRpdGFibGUgb25JbnB1dD17b25JbnB1dH0gaW5saW5lPXtwcm9wcy5pbmxpbmV9IGRpc3BhdGNoPXtkaXNwYXRjaH0gdGV4dD17dGV4dC5jdXJyZW50fSAvPlxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGFzLXRleHRlZGl0YWJsZVwiIG9uRGJsQ2xpY2s9e2RibENsaWNrfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZTxzdHJpbmc+IGRpc3BhdGNoPXtkaXNwYXRjaH0gZWRpdG9yPXtlZGl0b3J9IGRlZmF1bHRSZW5kZXI9e3JlYWRvbmx5RWx9IHN0YXRlPXtzdGF0ZX0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBVbmNvbnRyb2xsZWRUZXh0RWRpdGFibGUoe1xuICAgIGlubGluZSxcbiAgICB0ZXh0LFxuICAgIGRpc3BhdGNoLFxuICAgIG9uSW5wdXQsXG59OiB7XG4gICAgaW5saW5lPzogYm9vbGVhbjtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZGlzcGF0Y2g/OiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxzdHJpbmc+PjtcbiAgICBvbklucHV0PzogKGU6IEtleWJvYXJkRXZlbnQpID0+IHVua25vd247XG59KSB7XG4gICAgY29uc3QgW3R4dCwgc2V0VGV4dF0gPSB1c2VTdGF0ZSh0ZXh0KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaCAmJiBkaXNwYXRjaCh7IG5ld1ZhbHVlOiB0eHQsIHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIgfSk7XG4gICAgfSwgW3R4dF0pO1xuICAgIGNvbnN0IG9uQ2hhbmdlQ2IgPSB1c2VTdGFibGVDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGV2dDogQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHNldFRleHQoKGV2dC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3RleHQsIGRpc3BhdGNoXVxuICAgICk7XG5cbiAgICByZXR1cm4gIWlubGluZSA/IChcbiAgICAgICAgPHRleHRhcmVhIGNsYXNzTmFtZT1cImRhdGFjb3JlLWVkaXRhYmxlXCIgb25DaGFuZ2U9e29uQ2hhbmdlQ2J9IG9uS2V5VXA9e29uSW5wdXR9PlxuICAgICAgICAgICAge3R4dH1cbiAgICAgICAgPC90ZXh0YXJlYT5cbiAgICApIDogKFxuICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZWRpdGFibGVcIiB0eXBlPVwidGV4dFwiIG9uQ2hhbmdlPXtvbkNoYW5nZUNifSBvbktleVVwPXtvbklucHV0fSAvPlxuICAgICk7XG59XG4vKiogQW4gZWRpdGFibGUgbGlzdCBvZiBpdGVtcy5cbiAqXG4gKiBAZ3JvdXAgRWRpdGFibGUgQ29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gRWRpdGFibGVMaXN0RmllbGQoe1xuICAgIHByb3BzLFxuICAgIGZpZWxkLFxuICAgIHBhcmVudCxcbiAgICB0eXBlLFxuICAgIGRpc3BhdGNoLFxuICAgIHJlbmRlckFzLFxuICAgIGNvbmZpZyxcbn06IHsgcHJvcHM6IEVkaXRhYmxlU3RhdGU8TGl0ZXJhbD4gfSAmIEZpZWxkQ29udHJvbFByb3BzPExpdGVyYWw+ICYge1xuICAgICAgICBwYXJlbnQ6IE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtO1xuICAgICAgICB0eXBlOiBMaXRlcmFsVHlwZTtcbiAgICAgICAgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPExpdGVyYWw+PjtcbiAgICB9KSB7XG4gICAgY29uc3Qgc3ViRWRpdG9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVuZGVyQXMpIHtcbiAgICAgICAgICAgIGNhc2UgXCJwcm9ncmVzc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09IFwibnVtYmVyXCIgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxQcm9ncmVzc0VkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2h9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0VkaXRpbmc9e3Byb3BzLmlzRWRpdGluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e3Byb3BzLmNvbnRlbnQgYXMgbnVtYmVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17cHJvcHMudXBkYXRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1heD17Y29uZmlnPy5tYXggfHwgMTAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlUGF0aD17cGFyZW50LiRmaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD17Y29uZmlnPy5zdGVwIHx8IDAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbj17Y29uZmlnPy5taW4gfHwgMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbDtcbiAgICAgICAgICAgIGNhc2UgXCJyYXRpbmdcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8UmF0aW5nRWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9e3BhcmVudC4kZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbmZpZ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwcm9wcy5jb250ZW50IGFzIHN0cmluZyB8IG51bWJlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0YWJsZUVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0VkaXRpbmc9e3Byb3BzLmlzRWRpdGluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29uZmlnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlcj17cHJvcHMudXBkYXRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtwcm9wcy5jb250ZW50IGFzIFNlbGVjdGFibGVUeXBlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfSwgW3BhcmVudCwgZmllbGQsIHByb3BzLmNvbnRlbnQsIHByb3BzLmNvbnRlbnQsIHByb3BzLCBjb25maWcsIHJlbmRlckFzXSk7XG4gICAgY29uc3QgZWRpdG9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8RGF0ZUVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2h9XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VQYXRoPXtwYXJlbnQuJGZpbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0VkaXRpbmc9e3Byb3BzLmlzRWRpdGluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e3Byb3BzLmNvbnRlbnQgYXMgRGF0ZVRpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVyPXtwcm9wcy51cGRhdGVyIGFzICh2YWw6IHN0cmluZyB8IERhdGVUaW1lIHwgbnVsbCkgPT4gYW55fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxCb29sZWFuRWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLmNvbnRlbnQgYXMgYm9vbGVhbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9e3BhcmVudC4kZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c3ViRWRpdG9yID8/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3BhcmVudC4kZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFZGl0aW5nPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17cHJvcHMuY29udGVudCBhcyBzdHJpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI9e3Byb3BzLnVwZGF0ZXIgYXMgKHZhbDogc3RyaW5nKSA9PiB1bmtub3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIHJldHVybiA8PntzdWJFZGl0b3IgPz8gPE51bWJlckVkaXRhYmxlIGNvbnRlbnQ9e3Byb3BzLmNvbnRlbnQgYXMgbnVtYmVyfSB1cGRhdGVyPXtwcm9wcy51cGRhdGVyfSAvPn08Lz47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxUZXh0RWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBhdGg9e3BhcmVudC4kZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRWRpdGluZz17cHJvcHMuaXNFZGl0aW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17TGl0ZXJhbHMudG9TdHJpbmcocHJvcHMuY29udGVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVyPXtwcm9wcy51cGRhdGVyIGFzICh2YWw6IHN0cmluZykgPT4gdW5rbm93bn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSwgW3BhcmVudCwgZmllbGQsIHByb3BzLmNvbnRlbnQsIHByb3BzLmNvbnRlbnQsIHByb3BzLCBjb25maWcsIHJlbmRlckFzLCBzdWJFZGl0b3JdKTtcblxuICAgIGNvbnN0IGRibGNsaWNrID0gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIChldnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJlZGl0aW5nLXRvZ2dsZWRcIiwgbmV3VmFsdWU6ICFwcm9wcy5pc0VkaXRpbmcgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtwcm9wcy5pc0VkaXRpbmddXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtZmllbGRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZpZWxkLXRpdGxlXCIgb25EYmxDbGljaz17ZGJsY2xpY2t9PlxuICAgICAgICAgICAgICAgIHtmaWVsZC5rZXl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmaWVsZC12YWx1ZVwiIHRhYkluZGV4PXswfT5cbiAgICAgICAgICAgICAgICB7ZWRpdG9yfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5pbXBvcnQgeyBMaXRlcmFsIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgQVBQX0NPTlRFWFQsIENVUlJFTlRfRklMRV9DT05URVhULCBEQVRBQ09SRV9DT05URVhULCBMaXQgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcblxuaW1wb3J0IHsgVk5vZGUsIGlzVmFsaWRFbGVtZW50IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCB7IEJhc2VGaWVsZFByb3BzIH0gZnJvbSBcInVpL2ZpZWxkcy9jb21tb24tcHJvcHNcIjtcbmltcG9ydCB7XG4gICAgQ29udHJvbGxlZEVkaXRhYmxlLFxuICAgIEVkaXRhYmxlLFxuICAgIEVkaXRhYmxlRWxlbWVudCxcbiAgICBFZGl0YWJsZVN0YXRlLFxuICAgIFRleHRFZGl0YWJsZSxcbiAgICB1c2VFZGl0YWJsZURpc3BhdGNoLFxufSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyB1c2VTdGFibGVDYWxsYmFjayB9IGZyb20gXCJ1aS9ob29rc1wiO1xuaW1wb3J0IHsgTWFya2Rvd25MaXN0SXRlbSwgTWFya2Rvd25UYXNrSXRlbSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgcmV3cml0ZVRhc2sgfSBmcm9tIFwidXRpbHMvdGFza1wiO1xuaW1wb3J0IHsgc2V0SW5saW5lRmllbGQgfSBmcm9tIFwiaW5kZXgvaW1wb3J0L2lubGluZS1maWVsZFwiO1xuXG4vKipcbiAqIFN0YXRlIGZvciBhIHtAbGluayBMaXN0Vmlld31cbiAqIEB0eXBlUGFyYW0gVCAtIHRoZSB0eXBlIG9mIHRoZSBpdGVtcyBjb250YWluZWQgaW4gdGhlIGxpc3RcbiAqIEBncm91cCBTdGF0ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U3RhdGU8VD4ge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGxpc3Qgc2hvdWxkIGJlIG9yZGVyZWQgKG9sKSwgdW5vcmRlcmVkICh1bCksIG9yIGhhdmUgbm8gc3BlY2lhbCBtYXJrdXAgKG5vbmUpLlxuICAgICAqXG4gICAgICogTGlzdHMgd2l0aCBubyBzcGVjaWFsIG1hcmt1cCBqdXN0IGhhdmUgZWFjaCBlbGVtZW50IHJlbmRlcmVkIGRpcmVjdGx5IGFzLWlzIHdpdGhvdXQgYW55IHdyYXBwaW5nXG4gICAgICogaW5zaWRlIG9mIGEgc2luZ2xlIGRpdi5cbiAgICAgKlxuICAgICAqL1xuICAgIHR5cGU/OiBcIm9yZGVyZWRcIiB8IFwidW5vcmRlcmVkXCIgfCBcIm5vbmVcIjtcblxuICAgIC8qKiBUaGUgZnVsbCBjb2xsZWN0aW9uIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0LiAqL1xuICAgIHJvd3M/OiBUW107XG5cbiAgICAvKiogQ29udHJvbHMgd2hldGhlciBwYWdpbmcgaXMgZW5hYmxlZCBmb3IgdGhpcyBlbGVtZW50LiBJZiB0cnVlLCB1c2VzIGRlZmF1bHQgcGFnZSBzaXplLiBJZiBhIG51bWJlciwgcGFnaW5nIGlzIGVuYWJsZWQgd2l0aCB0aGUgZ2l2ZW4gcGFnZSBzaXplLiAqL1xuICAgIHBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIHRvIHVzZSBmb3IgcmVuZGVyaW5nIGVhY2ggZWxlbWVudC4gQ2FuIHByb2R1Y2UgZWl0aGVyIEpTWCBvciBhIHBsYWluIHZhbHVlIHdoaWNoIHdpbGwgYmVcbiAgICAgKiByZW5kZXJlZCBhcyBhIGxpdGVyYWwuXG4gICAgICovXG4gICAgcmVuZGVyZXI/OiAoZWxlbWVudDogVCwgaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgTGl0ZXJhbDtcblxuICAgIC8qKiBmaWVsZHMgdG8gZGlzcGxheSB1bmRlciBlYWNoIGl0ZW0gaW4gdGhpcyB0YXNrIGxpc3QgKi9cbiAgICBkaXNwbGF5ZWRGaWVsZHM/OiAoQmFzZUZpZWxkUHJvcHM8TGl0ZXJhbD4gJiB7IGtleTogc3RyaW5nIH0pW107XG59XG5cbi8qKlxuICpcbiAqIEEgc2ltcGxlIGFuZCByZXNwb25zaXZlIGxpc3Qgdmlldy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMaXN0VmlldzxUPihzdGF0ZTogTGlzdFN0YXRlPFQ+KSB7XG4gICAgLy8gY29uc3Qgc2V0dGluZ3MgPSB1c2VDb250ZXh0KFNFVFRJTkdTX0NPTlRFWFQpO1xuXG4gICAgY29uc3QgdHlwZSA9IHN0YXRlLnR5cGUgPz8gXCJ1bm9yZGVyZWRcIjtcbiAgICBjb25zdCBlbGVtZW50cyA9IHN0YXRlLnJvd3MgPz8gW107XG4gICAgY29uc3QgcmVuZGVyZXIgPSBzdGF0ZS5yZW5kZXJlciA/PyBpZGVudGl0eTtcblxuICAgIGlmICh0eXBlID09IFwibm9uZVwiKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWxpc3QgZGF0YWNvcmUtbGlzdC1ub25lXCI+XG4gICAgICAgICAgICAgICAge2VsZW1lbnRzLm1hcCgoZWxlbWVudCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS11bndyYXBwZWQtbGlzdC1pdGVtXCIga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZW5zdXJlRWxlbWVudChyZW5kZXJlcihlbGVtZW50LCBpbmRleCkpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIm9yZGVyZWRcIikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPG9sIGNsYXNzTmFtZT17XCJkYXRhY29yZS1saXN0IGRhdGFjb3JlLWxpc3Qtb3JkZXJlZFwifT5cbiAgICAgICAgICAgICAgICB7ZWxlbWVudHMubWFwKChlbGVtZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZW5zdXJlRWxlbWVudChyZW5kZXJlcihlbGVtZW50LCBpbmRleCkpfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImRhdGFjb3JlLWxpc3QgZGF0YWNvcmUtbGlzdC11bm9yZGVyZWRcIj5cbiAgICAgICAgICAgICAgICB7ZWxlbWVudHMubWFwKChlbGVtZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZW5zdXJlRWxlbWVudChyZW5kZXJlcihlbGVtZW50LCBpbmRleCkpfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8qKiBOby1vcCBlbGVtZW50IHJlbmRlcmVyLlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBpZGVudGl0eTxUPihlbGVtZW50OiBUKTogVCB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogIEVuc3VyZXMgdGhlIGdpdmVuIGVsZW1lbnQgaXMgYSByZW5kZXJhYmxlIHJlYWN0IG5vZGUuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRWxlbWVudDxUPihlbGVtZW50OiBUKTogVk5vZGUge1xuICAgIGlmIChpc1ZhbGlkRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gPERlZmF1bHRMaXN0RWxlbWVudCBlbGVtZW50PXtlbGVtZW50fSAvPjtcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogIERlZmF1bHQgbGlzdCBlbGVtZW50IHdoaWNoIGp1c3QgdHJpZXMgdG8gcmVuZGVyIHRoZSB2YWx1ZSBhcyBhIGxpdGVyYWwuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdExpc3RFbGVtZW50PFQ+KHsgZWxlbWVudCB9OiB7IGVsZW1lbnQ6IFQgfSkge1xuICAgIGNvbnN0IHNvdXJjZVBhdGggPSB1c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcblxuICAgIHJldHVybiA8TGl0IGlubGluZT17dHJ1ZX0gdmFsdWU9e2VsZW1lbnQgYXMgTGl0ZXJhbH0gc291cmNlUGF0aD17c291cmNlUGF0aH0gLz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFZGl0YWJsZUxpc3RFbGVtZW50PFQ+KHtcbiAgICBlbGVtZW50OiBpdGVtLFxuICAgIGVkaXRvcixcbiAgICBvblVwZGF0ZSxcbiAgICBmaWxlLFxuICAgIGVkaXRvclByb3BzLFxufToge1xuICAgIGVkaXRvcjogKHZhbHVlOiBUKSA9PiBFZGl0YWJsZUVsZW1lbnQ8VD47XG4gICAgZWxlbWVudDogVDtcbiAgICBmaWxlOiBzdHJpbmc7XG4gICAgb25VcGRhdGU6ICh2YWx1ZTogVCkgPT4gdW5rbm93bjtcbiAgICBlZGl0b3JQcm9wczogdW5rbm93bjtcbn0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8Q29udHJvbGxlZEVkaXRhYmxlPFQ+XG4gICAgICAgICAgICBwcm9wcz17ZWRpdG9yUHJvcHN9XG4gICAgICAgICAgICBzb3VyY2VQYXRoPXtmaWxlfVxuICAgICAgICAgICAgY29udGVudD17aXRlbX1cbiAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yKGl0ZW0pfVxuICAgICAgICAgICAgb25VcGRhdGU9e29uVXBkYXRlfVxuICAgICAgICAgICAgZGVmYXVsdFJlbmRlcj17PERlZmF1bHRMaXN0RWxlbWVudCBlbGVtZW50PXtpdGVtfSAvPn1cbiAgICAgICAgLz5cbiAgICApO1xufVxuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5cbmltcG9ydCB7IE1hcmtkb3duTGlzdEl0ZW0sIE1hcmtkb3duVGFza0l0ZW0gfSBmcm9tIFwiaW5kZXgvdHlwZXMvbWFya2Rvd25cIjtcbmltcG9ydCB7IEVkaXRhYmxlTGlzdEVsZW1lbnQsIExpc3RTdGF0ZSB9IGZyb20gXCJhcGkvdWkvdmlld3MvbGlzdFwiO1xuaW1wb3J0IHsgdXNlU3RhYmxlQ2FsbGJhY2sgfSBmcm9tIFwidWkvaG9va3NcIjtcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgQVBQX0NPTlRFWFQsIERBVEFDT1JFX0NPTlRFWFQgfSBmcm9tIFwidWkvbWFya2Rvd25cIjtcbmltcG9ydCB7IEpTWEludGVybmFsIH0gZnJvbSBcInByZWFjdC9zcmMvanN4XCI7XG5pbXBvcnQgeyBEaXNwYXRjaCwgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuaW1wb3J0IHsgY29tcGxldGVUYXNrLCByZXdyaXRlVGFzayB9IGZyb20gXCJ1dGlscy90YXNrXCI7XG5pbXBvcnQgeyBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7XG4gICAgRWRpdGFibGVBY3Rpb24sXG4gICAgRWRpdGFibGVMaXN0RmllbGQsXG4gICAgRWRpdGFibGVTdGF0ZSxcbiAgICBUZXh0RWRpdGFibGUsXG4gICAgdXNlRWRpdGFibGVEaXNwYXRjaCxcbn0gZnJvbSBcInVpL2ZpZWxkcy9lZGl0YWJsZVwiO1xuaW1wb3J0IHsgc2V0SW5saW5lRmllbGQgfSBmcm9tIFwiaW5kZXgvaW1wb3J0L2lubGluZS1maWVsZFwiO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCBcIi4vbGlzdHMuY3NzXCI7XG5cbi8qKlxuICogUHJvcHMgcGFzc2VkIHRvIHRoZSB0YXNrIGxpc3QgY29tcG9uZW50LlxuICogQGdyb3VwIFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1Byb3BzIGV4dGVuZHMgTGlzdFN0YXRlPE1hcmtkb3duVGFza0l0ZW0gfCBNYXJrZG93bkxpc3RJdGVtPiB7XG4gICAgLyoqIHRhc2sgc3RhdGVzIHRvIGN5Y2xlIHRocm91Z2gsIGlmIHNwZWNpZmllZCAqL1xuICAgIGFkZGl0aW9uYWxTdGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbGlzdCBvZiB0YXNrcy5cbiAqIEBwYXJhbSBwcm9wc1xuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhc2tMaXN0KHtcbiAgICByb3dzOiBpdGVtcyxcbiAgICBhZGRpdGlvbmFsU3RhdGVzOiBzdGF0ZXMsXG4gICAgcmVuZGVyZXI6IGxpc3RSZW5kZXJlciA9IChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICA8RWRpdGFibGVMaXN0RWxlbWVudDxzdHJpbmc+XG4gICAgICAgICAgICBvblVwZGF0ZT17dXNlTGlzdEl0ZW1FZGl0aW5nKGl0ZW0sIFwiXCIpfVxuICAgICAgICAgICAgZWxlbWVudD17aXRlbS4kY2xlYW50ZXh0IX1cbiAgICAgICAgICAgIGZpbGU9e2l0ZW0uJGZpbGV9XG4gICAgICAgICAgICBlZGl0b3JQcm9wcz17eyBtYXJrZG93bjogdHJ1ZSwgc291cmNlUGF0aDogaXRlbS4kZmlsZSB9fVxuICAgICAgICAgICAgZWRpdG9yPXsoaXQpID0+IFRleHRFZGl0YWJsZX1cbiAgICAgICAgLz5cbiAgICApLFxuICAgIC4uLnJlc3Rcbn06IFRhc2tQcm9wcykge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJkYXRhY29yZSBjb250YWlucy10YXNrLWxpc3RcIj5cbiAgICAgICAgICAgICAgICB7aXRlbXM/Lm1hcCgoaXRlbSwgaW5kKSA9PlxuICAgICAgICAgICAgICAgICAgICBpdGVtIGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYXNrIGtleT17aXRlbS4kaWR9IHN0YXRlPXt7IC4uLnJlc3QsIGFkZGl0aW9uYWxTdGF0ZXM6IHN0YXRlcyB9fSBpdGVtPXtpdGVtfSAvPlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsaXN0UmVuZGVyZXIoaXRlbSwgaW5kKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWxpc3QtaXRlbS1maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtRmllbGRzIGRpc3BsYXllZEZpZWxkcz17cmVzdC5kaXNwbGF5ZWRGaWVsZHN9IGl0ZW09e2l0ZW19IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICk7XG4gICAgfSwgW2l0ZW1zLCBzdGF0ZXNdKTtcbiAgICByZXR1cm4gPEZyYWdtZW50PnshIWl0ZW1zICYmIGNvbnRlbnR9PC9GcmFnbWVudD47XG59XG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgaXRlbSBpbiBhIHRhc2sgbGlzdGluZy5cbiAqIEBwYXJhbSBwcm9wcyAtIHRoZSBjb21wb25lbnQncyBwcm9wc1xuICogQHBhcmFtIHByb3BzLml0ZW0gLSB0aGUgY3VycmVudCB0YXNrIGJlaW5nIHJlbmRlcmVkXG4gKiBAcGFyYW0gcHJvcHMuc3RhdGUgLSB0aGUge0BsaW5rIFRhc2tQcm9wc30gb2YgdGhlIHtAbGluayBUYXNrTGlzdH0gaW4gd2hpY2ggdGhpcyBUYXNrIGFwcGVhcnNcbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYXNrKHsgaXRlbSwgc3RhdGU6IHByb3BzIH06IHsgaXRlbTogTWFya2Rvd25UYXNrSXRlbTsgc3RhdGU6IFRhc2tQcm9wcyB9KSB7XG4gICAgY29uc3QgYXBwID0gdXNlQ29udGV4dChBUFBfQ09OVEVYVCk7XG4gICAgY29uc3QgY29yZSA9IHVzZUNvbnRleHQoREFUQUNPUkVfQ09OVEVYVCk7XG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gY29yZTtcbiAgICBjb25zdCBzdGF0ZXMgPSBbXCIgXCIsIC4uLihwcm9wcy5hZGRpdGlvbmFsU3RhdGVzIHx8IFtdKSwgXCJ4XCJdO1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmFkZGl0aW9uYWxTdGF0ZXMgJiYgcHJvcHMuYWRkaXRpb25hbFN0YXRlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGN1ckluZGV4ID0gc3RhdGVzLmZpbmRJbmRleCgoYSkgPT4gYSA9PT0gaXRlbS4kc3RhdHVzKTtcbiAgICAgICAgICAgIGN1ckluZGV4Kys7XG4gICAgICAgICAgICBpZiAoY3VySW5kZXggPj0gc3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGN1ckluZGV4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZXNbY3VySW5kZXhdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uJGNvbXBsZXRlZCA/IFwiIFwiIDogXCJ4XCI7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IFtzdGF0dXMsIHNldFN0YXR1c10gPSB1c2VTdGF0ZTxzdHJpbmc+KGl0ZW0uJHN0YXR1cyk7XG4gICAgY29uc3QgY29tcGxldGVkUmVmID0gdXNlUmVmPERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPExpdGVyYWw+Pj4obnVsbCk7XG4gICAgY29uc3Qgb25DaGVja2VkID0gdXNlU3RhYmxlQ2FsbGJhY2soYXN5bmMgKGV2dDogSlNYSW50ZXJuYWwuVGFyZ2V0ZWRNb3VzZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGV2dC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XG4gICAgICAgIGxldCBuZXdTdGF0dXM6IHN0cmluZztcbiAgICAgICAgaWYgKGV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbmV3U3RhdHVzID0gbmV4dFN0YXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdTdGF0dXMgPSBjb21wbGV0ZWQgPyBcInhcIiA6IFwiIFwiO1xuICAgICAgICB9XG4gICAgICAgIHNldFN0YXR1cyhuZXdTdGF0dXMpO1xuICAgICAgICBhd2FpdCBjb21wbGV0ZVRhc2soY29tcGxldGVkLCBpdGVtLCBhcHAudmF1bHQsIGNvcmUpO1xuICAgICAgICBjb25zdCBudiA9IGNvbXBsZXRlZCA/IERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0KSA6IG51bGw7XG4gICAgICAgIGNvbXBsZXRlZFJlZi5jdXJyZW50ICYmIGNvbXBsZXRlZFJlZi5jdXJyZW50KHsgdHlwZTogXCJjb21taXRcIiwgbmV3VmFsdWU6IG52IH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGNoZWNrZWQgPSB1c2VNZW1vKCgpID0+IHN0YXR1cyAhPT0gXCIgXCIsIFtpdGVtLiRzdGF0dXMsIGl0ZW0sIHN0YXR1c10pO1xuICAgIGNvbnN0IGVTdGF0ZTogRWRpdGFibGVTdGF0ZTxzdHJpbmc+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cGRhdGVyOiB1c2VMaXN0SXRlbUVkaXRpbmcoaXRlbSwgc3RhdHVzKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0uJGNsZWFudGV4dCxcbiAgICAgICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICB9IGFzIEVkaXRhYmxlU3RhdGU8c3RyaW5nPjtcbiAgICB9LCBbaXRlbS4kY2xlYW50ZXh0LCBpdGVtLiR0ZXh0XSk7XG4gICAgY29uc3QgdGhlRWxlbWVudCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IDxUZXh0RWRpdGFibGUgc291cmNlUGF0aD17aXRlbS4kZmlsZX0gey4uLmVTdGF0ZX0gLz4sXG4gICAgICAgIFtlU3RhdGUuY29udGVudCwgaXRlbSwgcHJvcHMucm93c11cbiAgICApO1xuXG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KHRydWUpO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gaXRlbS4kZWxlbWVudHMubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxsaVxuICAgICAgICAgICAga2V5PXtpdGVtLiRpZH1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZGF0YWNvcmUtdGFzay1pdGVtXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17XCJkYXRhY29yZSB0YXNrLWxpc3QtaXRlbVwiICsgKGNoZWNrZWQgPyBcIiBpcy1jaGVja2VkXCIgOiBcIlwiKX1cbiAgICAgICAgICAgIGRhdGEtdGFzaz17c3RhdHVzfVxuICAgICAgICA+XG4gICAgICAgICAgICA8Q29sbGFwc2VJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb2xsYXBzZWQoKGMpID0+ICFjKX1cbiAgICAgICAgICAgICAgICBjb2xsYXBzZWQ9e2NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICBoYXNDaGlsZHJlbj17aGFzQ2hpbGRyZW59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YWNvcmUgdGFzay1saXN0LWl0ZW0tY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNoZWNrZWR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBjb25zb2xlLmxvZyhlLmN1cnJlbnRUYXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS1saXN0LWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICB7dGhlRWxlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS1saXN0LWl0ZW0tZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1GaWVsZHMgZGlzcGxheWVkRmllbGRzPXtwcm9wcy5kaXNwbGF5ZWRGaWVsZHN9IGl0ZW09e2l0ZW19IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGFzQ2hpbGRyZW4gJiYgIWNvbGxhcHNlZCAmJiA8VGFza0xpc3Qgey4uLnByb3BzfSByb3dzPXtpdGVtLiRlbGVtZW50c30gLz59XG4gICAgICAgIDwvbGk+XG4gICAgKTtcbn1cblxuZnVuY3Rpb24gQ29sbGFwc2VJbmRpY2F0b3Ioe1xuICAgIGNvbGxhcHNlZCxcbiAgICBvbkNsaWNrLFxuICAgIGhhc0NoaWxkcmVuLFxufToge1xuICAgIGNvbGxhcHNlZDogYm9vbGVhbjtcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuO1xufSkge1xuICAgIGNvbnN0IHRvZ2dsZUNuYW1lcyA9IFtcImRhdGFjb3JlLWNvbGxhcHNlclwiXTtcbiAgICBpZiAoY29sbGFwc2VkKSB0b2dnbGVDbmFtZXMucHVzaChcImlzLWNvbGxhcHNlZFwiKTtcbiAgICBpZiAoIWhhc0NoaWxkcmVuKSB0b2dnbGVDbmFtZXMucHVzaChcIm5vLWNoaWxkcmVuXCIpO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgb25DbGljaz17b25DbGlja30gY2xhc3NOYW1lPXt0b2dnbGVDbmFtZXMuam9pbihcIiBcIil9IGRpcj1cImF1dG9cIj5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN2Zy1pY29uIHJpZ2h0LXRyaWFuZ2xlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgOEwxMiAxN0wyMSA4XCI+PC9wYXRoPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZWRpdGFibGUgc2V0IG9mIGZpZWxkcyBiZWxvdyBhIHRhc2sgb3IgbGlzdCBpdGVtLlxuICogQGhpZGRlblxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExpc3RJdGVtRmllbGRzKHtcbiAgICBkaXNwbGF5ZWRGaWVsZHM6IGRpc3BsYXllZEZpZWxkc1Byb3AsXG4gICAgaXRlbSxcbn06IHtcbiAgICBkaXNwbGF5ZWRGaWVsZHM/OiBUYXNrUHJvcHNbXCJkaXNwbGF5ZWRGaWVsZHNcIl07XG4gICAgaXRlbTogTWFya2Rvd25UYXNrSXRlbSB8IE1hcmtkb3duTGlzdEl0ZW07XG59KSB7XG4gICAgY29uc3QgYXBwID0gdXNlQ29udGV4dChBUFBfQ09OVEVYVCk7XG4gICAgY29uc3QgY29yZSA9IHVzZUNvbnRleHQoREFUQUNPUkVfQ09OVEVYVCk7XG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gY29yZTtcbiAgICBjb25zdCBkaXNwbGF5ZWRGaWVsZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGRpc3BsYXllZEZpZWxkc1Byb3AgIT0gdW5kZWZpbmVkKSByZXR1cm4gZGlzcGxheWVkRmllbGRzUHJvcDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhpdGVtLiRpbmZpZWxkcykubWFwKChmKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBmLmtleSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogTGl0ZXJhbHMudHlwZU9mKGYudmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyQXM6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgfSBhcyBOb25OdWxsYWJsZTxUYXNrUHJvcHNbXCJkaXNwbGF5ZWRGaWVsZHNcIl0+WzBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbZGlzcGxheWVkRmllbGRzUHJvcCwgaXRlbS4kaW5maWVsZHMsIGl0ZW1dKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge2Rpc3BsYXllZEZpZWxkcy5tYXAoKGlmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmaWVsZC5rZXkgPSBpZmllbGQua2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgbGV0IGRlZlZhbCA9IHR5cGVvZiBpZmllbGQuZGVmYXVsdFZhbHVlID09IFwiZnVuY3Rpb25cIiA/IGlmaWVsZC5kZWZhdWx0VmFsdWUoKSA6IGlmaWVsZC5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGRlZkZpZWxkOiBGaWVsZCA9IHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVmVmFsLFxuICAgICAgICAgICAgICAgICAgICByYXc6IExpdGVyYWxzLnRvU3RyaW5nKGRlZlZhbCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBbZmllbGRWYWx1ZV0gPSB1c2VTdGF0ZTxMaXRlcmFsPihpdGVtLiRpbmZpZWxkc1tpZmllbGQ/LmtleV0/LnZhbHVlIHx8IGRlZkZpZWxkLnZhbHVlISk7XG4gICAgICAgICAgICAgICAgY29uc3QgW3N0YXRlMiwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDxMaXRlcmFsPih7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGZpZWxkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZXI6IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbDogTGl0ZXJhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSAodjogTGl0ZXJhbCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBpbnN0YW5jZW9mIERhdGVUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHYudG9Gb3JtYXQoc2V0dGluZ3MuZGVmYXVsdERhdGVGb3JtYXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHYgIT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBMaXRlcmFscy50b1N0cmluZyh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2l0aEZpZWxkcyA9IGl0ZW0uJHRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhGaWVsZHMgJiYgaXRlbS4kdGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS4kaW5maWVsZHNbaWZpZWxkLmtleV0pIGl0ZW0uJGluZmllbGRzW2lmaWVsZC5rZXldLnZhbHVlID0gZGF0ZVN0cmluZyh2YWwpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgaW4gaXRlbS4kaW5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhGaWVsZHMgPSBzZXRJbmxpbmVGaWVsZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVTdHJpbmcoaXRlbS4kaW5maWVsZHNbZmllbGRdPy52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEZpZWxkcyA9IHNldElubGluZUZpZWxkKGl0ZW0uJHRleHQsIGlmaWVsZC5rZXksIGRhdGVTdHJpbmcodmFsKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJld3JpdGVUYXNrKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLnZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtIGluc3RhbmNlb2YgTWFya2Rvd25UYXNrSXRlbSA/IGl0ZW0uJHN0YXR1cyA6IFwiIFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbS4kaW5maWVsZHNdXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGlmaWVsZC5rZXkgPT0gc2V0dGluZ3MudGFza0NvbXBsZXRpb25UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBodWg/XG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZFJlZi5jdXJyZW50ID0gZGlzcGF0Y2g7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxFZGl0YWJsZUxpc3RGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM9e3N0YXRlMn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e2lmaWVsZC50eXBlIHx8IExpdGVyYWxzLndyYXBWYWx1ZShmaWVsZFZhbHVlKSEudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9e2l0ZW0uJGZpbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZD17aXRlbS4kaW5maWVsZHNbaWZpZWxkLmtleV0gfHwgZGVmRmllbGR9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2lmaWVsZC5jb25maWd9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ9e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVyPXtzdGF0ZTIudXBkYXRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmaWVsZFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQXM9e2lmaWVsZC5yZW5kZXJBc31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbmZ1bmN0aW9uIHVzZUxpc3RJdGVtRWRpdGluZyhpdGVtOiBNYXJrZG93blRhc2tJdGVtIHwgTWFya2Rvd25MaXN0SXRlbSwgc3RhdHVzOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhcHAgPSB1c2VDb250ZXh0KEFQUF9DT05URVhUKTtcbiAgICBjb25zdCBjb3JlID0gdXNlQ29udGV4dChEQVRBQ09SRV9DT05URVhUKTtcbiAgICByZXR1cm4gdXNlU3RhYmxlQ2FsbGJhY2soXG4gICAgICAgIGFzeW5jICh2YWw6IExpdGVyYWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgbGV0IHdpdGhGaWVsZHMgPSBgJHt2YWx9JHtPYmplY3Qua2V5cyhpdGVtLiRpbmZpZWxkcykubGVuZ3RoID8gXCIgXCIgOiBcIlwifWA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgaW4gaXRlbS4kaW5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aEZpZWxkcyA9IHNldElubGluZUZpZWxkKHdpdGhGaWVsZHMsIGZpZWxkLCBpdGVtLiRpbmZpZWxkc1tmaWVsZF0ucmF3KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ1c2VcIiwgd2l0aEZpZWxkcyk7XG4gICAgICAgICAgICAgICAgYXdhaXQgcmV3cml0ZVRhc2soYXBwLnZhdWx0LCBjb3JlLCBpdGVtLCBzdGF0dXMsIHdpdGhGaWVsZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbc3RhdHVzLCBpdGVtXVxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIHVpXG4gKi9cbmltcG9ydCBcIi4vcGFnaW5nLmNzc1wiO1xuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwgUmVmT2JqZWN0IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJwcmVhY3QvY29tcGF0XCI7XG5pbXBvcnQgeyBTRVRUSU5HU19DT05URVhUIH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5cbi8qKiAwLWluZGV4ZWQgcGFnZSBjb250cm9sLiBgcGFnZWAgc2hvdWxkIGJlIHRoZSBjdXJyZW50IDAtaW5kZXhlZCBwYWdlLCB3aGlsZSBgdG90YWxQYWdlc2AgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuZnVuY3Rpb24gUmF3Q29udHJvbGxlZFBhZ2VyKHtcbiAgICBwYWdlLFxuICAgIHNldFBhZ2UsXG4gICAgdG90YWxQYWdlcyxcbn06IHtcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgc2V0UGFnZTogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG59KSB7XG4gICAgLy8gQ2xhbXAgcGFnZSB0byBiZSB3aXRoaW4gdGhlIGFjdHVhbCBib3VuZHMgb2YgcGFnZXMuXG4gICAgdG90YWxQYWdlcyA9IE1hdGgubWF4KDEsIHRvdGFsUGFnZXMpO1xuXG4gICAgY29uc3QgcmVhbFBhZ2UgPSBjbGFtcChwYWdlLCAwLCB0b3RhbFBhZ2VzIC0gMSk7XG4gICAgY29uc3QgdmlzaWJsZVBhZ2VzID0gdXNlTWVtbygoKSA9PiBzcGxpdFBhZ2VzKHJlYWxQYWdlLCB0b3RhbFBhZ2VzKSwgW3JlYWxQYWdlLCB0b3RhbFBhZ2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sXCI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYy1wYWdpbmctY29udHJvbC1wYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcGFnZSAhPSAwICYmIHNldFBhZ2UocGFnZSAtIDEpfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17cGFnZSA9PSAwfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuNSAxOWwtNy03IDctN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3Zpc2libGVQYWdlcy5tYXAoKHBhZ2VzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICB7aSA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sLXBhZ2UgZGMtcGFnaW5nLWNvbnRyb2wtc2VwYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlKHJlYWxQYWdlICsgKGlzTGVmdFNlcGVyYXRvcihyZWFsUGFnZSwgdmlzaWJsZVBhZ2VzLmxlbmd0aCwgaSkgPyAtNSA6IDUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUtcmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYy1wYWdpbmctY29udHJvbC1lbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHI9XCIxXCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxOVwiIGN5PVwiMTJcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgcj1cIjFcIj48L2NpcmNsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjVcIiBjeT1cIjEyXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHI9XCIxXCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlLXJlbmRlcmluZz1cImdlb21ldHJpY1ByZWNpc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXtgZGMtcGFnaW5nLWNvbnRyb2wtbGVhcC0ke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWZ0U2VwZXJhdG9yKHJlYWxQYWdlLCB2aXNpYmxlUGFnZXMubGVuZ3RoLCBpKSA/IFwibGVmdFwiIDogXCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMyAxN2w1LTUtNS01XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMTdsNS01LTUtNVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7cGFnZXMubWFwKChwKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZGMtcGFnaW5nLWNvbnRyb2wtcGFnZSAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID09PSByZWFsUGFnZSA/IFwiIGRjLXBhZ2luZy1jb250cm9sLXBhZ2UtYWN0aXZlXCIgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBhbnkpID0+IHNldFBhZ2UocCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3AgKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRjLXBhZ2luZy1jb250cm9sLXBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBwYWdlICE9PSB0b3RhbFBhZ2VzIC0gMSAmJiBzZXRQYWdlKHBhZ2UgKyAxKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3BhZ2UgPT09IHRvdGFsUGFnZXMgLSAxfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC41IDVsNyA3LTcgN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG4vKiogMC1pbmRleGVkIHBhZ2UgY29udHJvbC4gYHBhZ2VgIHNob3VsZCBiZSB0aGUgY3VycmVudCAwLWluZGV4ZWQgcGFlZywgd2hpbGUgYG1heFBhZ2VgIGlzIHRoZSBtYXhpbXVtIHBhZ2UgKGluY2x1c2l2ZSkuICovXG5leHBvcnQgY29uc3QgQ29udHJvbGxlZFBhZ2VyID0gUmVhY3QubWVtbyhSYXdDb250cm9sbGVkUGFnZXIpO1xuXG4vKiogSG9vayB3aGljaCBwcm92aWRlcyBhdXRvbWF0aWMgcGFnZSByZWZsb3cgYW5kIHBhZ2Ugc3RhdGUgbWFuYWdlbWVudC5cbiAqIEBncm91cCBIb29rc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUGFnaW5nKHtcbiAgICBpbml0aWFsUGFnZSA9IDAsXG4gICAgcGFnZVNpemUsXG4gICAgZWxlbWVudHMsXG59OiB7XG4gICAgaW5pdGlhbFBhZ2U6IG51bWJlcjtcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuICAgIGVsZW1lbnRzOiBudW1iZXI7XG59KTogW251bWJlciwgbnVtYmVyLCAocGFnZTogbnVtYmVyKSA9PiB2b2lkXSB7XG4gICAgLy8gV2UgdHJhY2sgdGhlIHN0YXJ0IGluZGV4IG9mIHRoZSBwYWdlIHNvIHRoYXQgd2hlbiBwYWdlIHNpemUgY2hhbmdlcyB3ZSBjYW4ganVzdCBhdXRvbWF0aWNhbGx5IHJlY29tcHV0ZSB0aGUgcGFnZSB3ZSBhcmUgb24gd2l0aG91dCBhbnkgc3RhdGUuXG4gICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGgubWF4KDEsIE1hdGguY2VpbChlbGVtZW50cyAvIHBhZ2VTaXplKSk7XG4gICAgY29uc3QgW3BhZ2VTdGFydCwgc2V0UGFnZVN0YXJ0XSA9IHVzZVN0YXRlKCgpID0+IGNsYW1wKGluaXRpYWxQYWdlLCAwLCB0b3RhbFBhZ2VzIC0gMSkpO1xuXG4gICAgY29uc3Qgc2V0Qm91bmRlZFBhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKHBhZ2U6IG51bWJlcikgPT4gc2V0UGFnZVN0YXJ0KGNsYW1wKHBhZ2UsIDAsIHRvdGFsUGFnZXMgLSAxKSAqIHBhZ2VTaXplKSxcbiAgICAgICAgW3BhZ2VTaXplLCB0b3RhbFBhZ2VzXVxuICAgICk7XG5cbiAgICBjb25zdCBwYWdlID0gY2xhbXAoTWF0aC5mbG9vcihwYWdlU3RhcnQgLyBwYWdlU2l6ZSksIDAsIHRvdGFsUGFnZXMgLSAxKTtcbiAgICByZXR1cm4gW3BhZ2UsIHRvdGFsUGFnZXMsIHNldEJvdW5kZWRQYWdlXTtcbn1cblxuLyoqIFByb3ZpZGVzIHVzZWZ1bCBtZXRhZGF0YSBhYm91dCBwYWdpbmcuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdpbmcge1xuICAgIC8qKiBXaGV0aGVyIHBhZ2luZyBpcyBlbmFibGVkLiAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIHNjcm9sbCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMuICovXG4gICAgc2Nyb2xsOiBib29sZWFuO1xuICAgIC8qKiBUaGUgY3VycmVudCBwYWdlLiAqL1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICAvKiogVGhlIHNpemUgb2YgZWFjaCBwYWdlLiAqL1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgZm9yIHRoaXMgZGF0YS4gKi9cbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gICAgLyoqIFVwZGF0ZSB0aGUgY3VycmVudCBwYWdlLiAqL1xuICAgIHNldFBhZ2U6IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ2VudHJhbCBwYWdpbmcgaG9vayB3aGljaCBleHRyYWN0cyBwYWdlIG1ldGFkYXRhIG91dCBvZiBEYXRhY29yZSBzZXR0aW5ncywgaGFuZGxlcyBwYWdlIG92ZXJmbG93LCBjdXJyZW50IHBhZ2Ugc3RhdGUsIGFuZCB1cGRhdGluZyB0aGUgcGFnZVxuICogaWYgdGhlIGVsZW1lbnRzIGNoYW5nZS4gSWYgYSBjb250YWluZXIgaXMgc3BlY2lmaWVkLCBhbHNvIHN1cHBvcnRzIHNjcm9sbGluZyB0aGUgY29udGFpbmVyIHZpZXcgb24gcGFnZSBjaGFuZ2VzLlxuICogQGdyb3VwIEhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhY29yZVBhZ2luZyh7XG4gICAgaW5pdGlhbFBhZ2UgPSAwLFxuICAgIHBhZ2luZyxcbiAgICBzY3JvbGxPblBhZ2VDaGFuZ2UsXG4gICAgZWxlbWVudHMsXG4gICAgY29udGFpbmVyLFxufToge1xuICAgIGluaXRpYWxQYWdlOiBudW1iZXI7XG4gICAgcGFnaW5nOiBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHNjcm9sbE9uUGFnZUNoYW5nZT86IGJvb2xlYW4gfCBudW1iZXI7XG4gICAgZWxlbWVudHM6IG51bWJlcjtcbiAgICBjb250YWluZXI/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xufSk6IFBhZ2luZyB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB1c2VDb250ZXh0KFNFVFRJTkdTX0NPTlRFWFQpO1xuXG4gICAgY29uc3QgcGFnZVNpemUgPSB0eXBlb2YgcGFnaW5nID09PSBcIm51bWJlclwiID8gcGFnaW5nIDogc2V0dGluZ3MuZGVmYXVsdFBhZ2VTaXplO1xuICAgIGNvbnN0IHBhZ2luZ0VuYWJsZWQgPSB0eXBlb2YgcGFnaW5nID09PSBcIm51bWJlclwiIHx8IHBhZ2luZyA9PT0gdHJ1ZTtcbiAgICBjb25zdCBzaG91bGRTY3JvbGwgPVxuICAgICAgICAodHlwZW9mIHNjcm9sbE9uUGFnZUNoYW5nZSA9PT0gXCJudW1iZXJcIiAmJiBzY3JvbGxPblBhZ2VDaGFuZ2UgPj0gcGFnZVNpemUpIHx8XG4gICAgICAgICEhKHNjcm9sbE9uUGFnZUNoYW5nZSA/PyBzZXR0aW5ncy5zY3JvbGxPblBhZ2VDaGFuZ2UpO1xuXG4gICAgY29uc3QgW3BhZ2UsIHRvdGFsUGFnZXMsIHJhd1NldFBhZ2VdID0gdXNlUGFnaW5nKHsgaW5pdGlhbFBhZ2UsIHBhZ2VTaXplLCBlbGVtZW50cyB9KTtcblxuICAgIC8vIEhhbmRsZSBhdXRvLXNjcm9sbCBpZiBhIGNvbnRhaW5lciBpcyBwcm92aWRlZC5cbiAgICBjb25zdCBzZXRQYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChuZXdQYWdlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChwYWdlICE9IG5ld1BhZ2UgJiYgY29udGFpbmVyICYmIHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazogXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IFwibmVhcmVzdFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByYXdTZXRQYWdlKG5ld1BhZ2UpO1xuICAgICAgICB9LFxuICAgICAgICBbcGFnZSwgY29udGFpbmVyLCBzaG91bGRTY3JvbGwsIHJhd1NldFBhZ2VdXG4gICAgKTtcblxuICAgIHJldHVybiB7IGVuYWJsZWQ6IHBhZ2luZ0VuYWJsZWQsIHNjcm9sbDogc2hvdWxkU2Nyb2xsLCBwYWdlLCBwYWdlU2l6ZSwgdG90YWxQYWdlcywgc2V0UGFnZSB9O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY2xhbXAoaW5wdXQ6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaW5wdXQgPCBtaW4pIHJldHVybiBtaW47XG4gICAgaWYgKGlucHV0ID4gbWF4KSByZXR1cm4gbWF4O1xuICAgIHJldHVybiBpbnB1dDtcbn1cblxuLyoqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGZpbmRpbmcgdGhlIHNwZWNpZmljIHBhZ2UgbnVtYmVycyB0byByZW5kZXIuIEFsd2F5cyBhaW1zIHRvIHJlbmRlciA5IG9yIDEwIHBhZ2UgbnVtYmVycyB3aXRoIGEgc2VwYXJhdG9yLlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBzcGxpdFBhZ2VzKHBhZ2U6IG51bWJlciwgdG90YWxQYWdlczogbnVtYmVyKTogbnVtYmVyW11bXSB7XG4gICAgLy8gSWYgbGVzcyB0aGFuIDEyIHBhZ2VzLCBzaG93IGFsbCBvZiB0aGVtLlxuICAgIGlmICh0b3RhbFBhZ2VzIDwgMTIpIHJldHVybiBbQXJyYXkuZnJvbSh7IGxlbmd0aDogdG90YWxQYWdlcyB9LCAoXywgaSkgPT4gaSldO1xuXG4gICAgLy8gV2UgaGF2ZSBhdCBsZWFzdCAxMiBwYWdlcyAoMCAuLiAxMCBpbmNsdXNpdmUpLiBPdXIgZ29hbCBpcyB0byBoYXZlIDkgdG90YWwgdmlzaWJsZSBlbGVtZW50cywgc28gc3BsaXQgYmFzZWQgb24gdGhhdC5cbiAgICAvLyA1IHN1cnJvdW5kaW5nIHtwYWdlfSwgMCwgMSwgbWF4UGFnZSAtIDEsIG1heFBhZ2UuXG4gICAgaWYgKHBhZ2UgPCA1KVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDddLFxuICAgICAgICAgICAgW3RvdGFsUGFnZXMgLSAyLCB0b3RhbFBhZ2VzIC0gMV0sXG4gICAgICAgIF07XG4gICAgZWxzZSBpZiAocGFnZSA+IHRvdGFsUGFnZXMgLSA2KVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgWzAsIDFdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA4LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA3LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA2LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA1LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSA0LFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAzLFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAyLFxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgLSAxLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgXTtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbMCwgMV0sXG4gICAgICAgICAgICBbcGFnZSAtIDIsIHBhZ2UgLSAxLCBwYWdlLCBwYWdlICsgMSwgcGFnZSArIDJdLFxuICAgICAgICAgICAgW3RvdGFsUGFnZXMgLSAyLCB0b3RhbFBhZ2VzIC0gMV0sXG4gICAgICAgIF07XG59XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gaXNMZWZ0U2VwZXJhdG9yKHJlYWxQYWdlOiBudW1iZXIsIHZpc2libGVQYWdlc0xlbmd0aDogbnVtYmVyLCBzZXBlcmF0b3JJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgd2UgaGF2ZSAyIHZpc2libGUgcGFnZXMsIHdlIGNhbiBkZXRlcm1pbmUgc2VwZXJhdG9yIGlzIGNsaWNrZWQgYnkgcmVhbFBhZ2UuXG4gICAgLy8gSWYgd2UgaGF2ZSAzIHZpc2libGUgcGFnZXMsIHdlIGNhbiBkZXRlcm1pbmUgc2VwZXJhdG9yIGlzIGNsaWNrZWQgYnkgaW5kZXguXG4gICAgaWYgKHZpc2libGVQYWdlc0xlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAocmVhbFBhZ2UgPCA1KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzZXBlcmF0b3JJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiY29uc3QgcHJlZml4ID0gXCJmYXNcIjtcbmNvbnN0IGZhMCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICcwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCIzMFwiLCBcIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMyczE2MCA3MS42IDE2MCAxNjBsMCAxMjhjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMEwwIDE5MnpNMTYwIDk2Yy01MyAwLTk2IDQzLTk2IDk2bDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjhjMC01My00My05Ni05Ni05NnpcIl1cbn07XG5jb25zdCBmYTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMScsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiMzFcIiwgXCJNMTYwIDY0YzAtMTEuOC02LjUtMjIuNi0xNi45LTI4LjJzLTIzLTUtMzIuOCAxLjZsLTk2IDY0Qy0uNSAxMTEuMi00LjQgMTMxIDUuNCAxNDUuOHMyOS43IDE4LjcgNDQuNCA4LjlMOTYgMTIzLjggOTYgNDE2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MnpcIl1cbn07XG5jb25zdCBmYTIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzJcIiwgXCJNMTQyLjkgOTZjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMNTQuNiAxNTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAuMiA3NC41QzY3LjUgNDcuMyAxMDQuNCAzMiAxNDIuOSAzMkMyMjMgMzIgMjg4IDk3IDI4OCAxNzcuMWMwIDM4LjUtMTUuMyA3NS40LTQyLjUgMTAyLjZMMTA5LjMgNDE2IDI4OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwyMDAuMiAyMzQuNWMxNS4yLTE1LjIgMjMuOC0zNS45IDIzLjgtNTcuNGMwLTQ0LjgtMzYuMy04MS4xLTgxLjEtODEuMXpcIl1cbn07XG5jb25zdCBmYTMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzNcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyNDAgMGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNHMxLjUgMjYuMy04LjIgMzUuMkwxNjIuMyAyMDhsMjEuNyAwYzc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2cy02MC45IDEzNi0xMzYgMTM2bC03OC42IDBDNjMgNDgwIDI0LjIgNDU2IDUuMyA0MTguMWwtMS45LTMuOGMtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDEuOSAzLjhjOC4xIDE2LjMgMjQuOCAyNi41IDQyLjkgMjYuNWw3OC42IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJMODAgMjcyYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuNHMtMS41LTI2LjMgOC4yLTM1LjJMMTg5LjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIl1cbn07XG5jb25zdCBmYTQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnNCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiMzRcIiwgXCJNMTg5IDc3LjZjNy41LTE2IC43LTM1LjEtMTUuMy00Mi42cy0zNS4xLS43LTQyLjYgMTUuM0wzIDMyMi40Yy00LjcgOS45LTMuOSAyMS41IDEuOSAzMC44UzIxIDM2OCAzMiAzNjhsMjI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0NEw4Mi40IDMwNCAxODkgNzcuNnpcIl1cbn07XG5jb25zdCBmYTUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnNScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzVcIiwgXCJNMzIuNSA1OC4zQzM1LjMgNDMuMSA0OC41IDMyIDY0IDMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDkwLjcgOTYgNzAuMyAyMDggMTg0IDIwOGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNnMtNjAuOSAxMzYtMTM2IDEzNmwtODMuNSAwYy0zOS40IDAtNzUuNC0yMi4zLTkzLTU3LjVsLTQuMS04LjJjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlzMzUtMS41IDQyLjkgMTQuM2w0LjEgOC4yYzYuOCAxMy42IDIwLjYgMjIuMSAzNS44IDIyLjFsODMuNSAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtOS41IDAtMTguNS00LjItMjQuNi0xMS41cy04LjYtMTYuOS02LjktMjYuMmwzMi0xNzZ6XCJdXG59O1xuY29uc3QgZmE2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjM2XCIsIFwiTTIzMi40IDg0LjdjMTEuNC0xMy41IDkuNy0zMy43LTMuOC00NS4xcy0zMy43LTkuNy00NS4xIDMuOEwzOC42IDIxNC43QzE0LjcgMjQyLjkgMS4xIDI3OC40IC4xIDMxNS4yYzAgMS40LS4xIDIuOS0uMSA0LjNsMCAuNWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwYzAtODUuNS02Ny4xLTE1NS40LTE1MS41LTE1OS44bDYzLjktNzUuNnpNMjU2IDMyMEE5NiA5NiAwIDEgMSA2NCAzMjBhOTYgOTYgMCAxIDEgMTkyIDB6XCJdXG59O1xuY29uc3QgZmE3ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjM3XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjU2IDBjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhOCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICc4JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCIzOFwiLCBcIk0zMDQgMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4bC0zMiAwQzczLjMgMzIgMTYgODkuMyAxNiAxNjBjMCAzNC42IDEzLjcgNjYgMzYgODlDMjAuNSAyNzIuMyAwIDMwOS44IDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC00Mi4yLTIwLjUtNzkuNy01Mi0xMDNjMjIuMy0yMyAzNi01NC40IDM2LTg5ek0xNzYuMSAyODhsMTUuOSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDE1LjkgMGMwIDAgLjEgMCAuMSAwbDMyIDBjMCAwIC4xIDAgLjEgMHptMC02NGMwIDAgMCAwIDAgMGwtMzIgMGMwIDAgMCAwIDAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDM1LjMtMjguNiA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYTkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnOScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzlcIiwgXCJNNjQgMTkyYTk2IDk2IDAgMSAwIDE5MiAwQTk2IDk2IDAgMSAwIDY0IDE5MnptODcuNSAxNTkuOEM2Ny4xIDM0Ny40IDAgMjc3LjUgMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwYzAgMi42LS4xIDUuMy0uMiA3LjljLTEuNyAzNS43LTE1LjIgNzAtMzguNCA5Ny40bC0xNDUgMTcxLjRjLTExLjQgMTMuNS0zMS42IDE1LjItNDUuMSAzLjhzLTE1LjItMzEuNi0zLjgtNDUuMWw2My45LTc1LjZ6XCJdXG59O1xuY29uc3QgZmFGaWxsRHJpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxsLWRyaXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NzZcIiwgXCJNNDEuNCA5LjRDNTMuOS0zLjEgNzQuMS0zLjEgODYuNiA5LjRMMTY4IDkwLjdsNTMuMS01My4xYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEw0NzQuMyAxODkuMWMyOC4xIDI4LjEgMjguMSA3My43IDAgMTAxLjhMMjgzLjkgNDgxLjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwzMC42IDM2My45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjhMMTIyLjcgMTM2IDQxLjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bTE3NiAyMjEuM0wxNjggMTgxLjMgNzUuOSAyNzMuNGMtNC4yIDQuMi03IDkuMy04LjQgMTQuNmwzMTkuMiAwIDQyLjMtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI3Ny43IDgyLjljLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBMMjEzLjMgMTM2bDQ5LjQgNDkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpNNTEyIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43YzYtOS40IDE5LjUtOS40IDI1LjUgMEM1NDMuNCAzNjguNCA1NzYgNDIyLjggNTc2IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93c1RvQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10by1jaXJjbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YmRcIiwgXCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxNjAgMTE0LjcgMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDQuMy0uOSA4LjUtMi40IDEyLjJjLTEuNiAzLjctMy44IDcuMy02LjkgMTAuM2wtLjEgLjFjLTMuMSAzLTYuNiA1LjMtMTAuMyA2LjljLTMuOCAxLjYtNy45IDIuNC0xMi4yIDIuNGwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC43IDBMOS40IDU0LjZDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTI1NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xMTQuNyAzNTJMOTYgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBzMCAwIDAgMGwuMSAwYzguOCAwIDE2LjcgMy42IDIyLjUgOS4zbC4xIC4xYzMgMy4xIDUuMyA2LjYgNi45IDEwLjNjMS42IDMuOCAyLjQgNy45IDIuNCAxMi4ybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDExNC43IDM1MnpNNDE2IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43TDU4NS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDUyNS4zIDE2MGwxOC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTguOCAwLTE2LjgtMy42LTIyLjYtOS4zbC0uMS0uMWMtMy0zLjEtNS4zLTYuNi02LjktMTAuM3MtMi40LTcuOC0yLjQtMTIuMmwwLS4xczAgMCAwIDBsMC05NnpNNTI1LjMgMzUyTDYzMC42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDQ4MCAzOTcuM2wwIDE4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnMwIDAgMCAwbDAtLjFjMC00LjMgLjktOC40IDIuNC0xMi4yYzEuNi0zLjggMy45LTcuMyA2LjktMTAuNGM1LjgtNS44IDEzLjctOS4zIDIyLjUtOS40bC4xIDBzMCAwIDAgMGw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVDaGV2cm9uUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWNoZXZyb24tcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNoZXZyb24tY2lyY2xlLXJpZ2h0XCJdLCBcImYxMzhcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3elwiXVxufTtcbmNvbnN0IGZhQ2hldnJvbkNpcmNsZVJpZ2h0ID0gZmFDaXJjbGVDaGV2cm9uUmlnaHQ7XG5jb25zdCBmYUF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE5NDZdLCBcIjQwXCIsIFwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5NmMtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjlDMzIwIDM3MS4xIDI4OS41IDM4NCAyNTYgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4YzI3LjkgMCA1My43IDguOSA3NC43IDI0LjFjNS43LTUgMTMuMS04LjEgMjEuMy04LjFjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIl1cbn07XG5jb25zdCBmYVRyYXNoQ2FuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLWNhbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzYxNDYwLCBcInRyYXNoLWFsdFwiXSwgXCJmMmVkXCIsIFwiTTEzNS4yIDE3LjdDMTQwLjYgNi44IDE1MS43IDAgMTYzLjggMEwyODQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgNy4yLTE0LjN6TTMyIDEyOGwzODQgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIwem05NiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2em05NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZ6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDIyNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjI0YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYVRyYXNoQWx0ID0gZmFUcmFzaENhbjtcbmNvbnN0IGZhVGV4dEhlaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZXh0LWhlaWdodCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAzNFwiLCBcIk02NCAxMjhsMC0zMiA2NCAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMjAgNjQgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEwxNjAgMzIgNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTUwMi42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwzMiAwIDAgMTkyLTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtMTkyIDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6XCJdXG59O1xuY29uc3QgZmFVc2VyWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci10aW1lc1wiXSwgXCJmMjM1XCIsIFwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0bDkxLjQgMEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTQ3MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xuY29uc3QgZmFVc2VyVGltZXMgPSBmYVVzZXJYbWFyaztcbmNvbnN0IGZhU3RldGhvc2NvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RldGhvc2NvcGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjk2NThdLCBcImYwZjFcIiwgXCJNMTQyLjQgMjEuOWM1LjYgMTYuOC0zLjUgMzQuOS0yMC4yIDQwLjVMOTYgNzEuMSA5NiAxOTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyMC45LTI2LjEtOC43Yy0xNi44LTUuNi0yNS44LTIzLjctMjAuMi00MC41czIzLjctMjUuOCA0MC41LTIwLjJsMjYuMSA4LjdDMzM0LjQgMTkuMSAzNTIgNDMuNSAzNTIgNzEuMUwzNTIgMTkyYzAgNzcuMi01NC42IDE0MS42LTEyNy4zIDE1Ni43QzIzMSA0MDQuNiAyNzguNCA0NDggMzM2IDQ0OGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMmwwLTcwLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjNjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuN2MwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtOTIuOSAwLTE2OC45LTcxLjktMTc1LjUtMTYzLjFDODcuMiAzMzQuMiAzMiAyNjkuNiAzMiAxOTJMMzIgNzEuMWMwLTI3LjUgMTcuNi01MiA0My44LTYwLjdsMjYuMS04LjdjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4yek00ODAgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYU1lc3NhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVzc2FnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tbWVudC1hbHRcIl0sIFwiZjI3YVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwIDAgODBjMCA2LjEgMy40IDExLjYgOC44IDE0LjNzMTEuOSAyLjEgMTYuOC0xLjVMMzA5LjMgNDE2IDQ0OCA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpcIl1cbn07XG5jb25zdCBmYUNvbW1lbnRBbHQgPSBmYU1lc3NhZ2U7XG5jb25zdCBmYUluZm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5mbycsXG4gIGljb246IFsxOTIsIDUxMiwgW10sIFwiZjEyOVwiLCBcIk00OCA4MGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDQ4IDgwek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xOTItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tcHJlc3MtYWx0XCJdLCBcImY0MjJcIiwgXCJNNDM5IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0LjhsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzlMNDM5IDd6TTcyIDI3MmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOUw3MyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgNDczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04N0w1NSAzMTNjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJzMTIuNS0xNC44IDIyLjItMTQuOHpcIl1cbn07XG5jb25zdCBmYUNvbXByZXNzQWx0ID0gZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjtcbmNvbnN0IGZhRXhwbG9zaW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4cGxvc2lvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlOVwiLCBcIk00OTkuNiAxMS4zYzYuNy0xMC43IDIwLjUtMTQuNSAzMS43LTguNXMxNS44IDE5LjUgMTAuNiAzMUw0MDQuOCAzMzguNmMyLjIgMi4zIDQuMyA0LjcgNi4zIDcuMWw5Ny4yLTU0LjdjMTAuNS01LjkgMjMuNi0zLjEgMzAuOSA2LjRzNi4zIDIzLTIuMiAzMS41bC04NyA4Ny03MS40IDBjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0bC03OS42IDBMNDIuMyAzNjMuN2MtOS43LTYuNy0xMy4xLTE5LjYtNy45LTMwLjNzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNyA5LjQtMTEuM0wxMDcuNCAyMzYuM2MtNi4xLTEwLjEtMy45LTIzLjEgNS4xLTMwLjdzMjIuMi03LjUgMzEuMSAuMUwyNDYgMjkzLjZjMS41LS40IDMtLjggNC41LTEuMWwxMy42LTE0Mi43YzEuMi0xMi4zIDExLjUtMjEuNyAyMy45LTIxLjdzMjIuNyA5LjQgMjMuOSAyMS43bDEzLjUgMTQxLjlMNDk5LjYgMTEuM3pNNjQgNDQ4czAgMCAwIDBsNDQ4IDBzMCAwIDAgMGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwek0yODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFGaWxlTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1saW5lcycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQ0MSwgMTI4NDYyLCA2MTY4NiwgXCJmaWxlLWFsdFwiLCBcImZpbGUtdGV4dFwiXSwgXCJmMTVjXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTEyIDI1NmwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUZpbGVBbHQgPSBmYUZpbGVMaW5lcztcbmNvbnN0IGZhRmlsZVRleHQgPSBmYUZpbGVMaW5lcztcbmNvbnN0IGZhV2F2ZVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YXZlLXNxdWFyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjgzZVwiLCBcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgOTYgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzUyLTk2IDAgMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFSaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3MGJcIiwgXCJNNjQgMjA4YzAgNy44IDQuNCAxOC43IDE3LjEgMzAuM0MxMjYuNSAyMTQuMSAxODguOSAyMDAgMjU2IDIwMHMxMjkuNSAxNC4xIDE3NC45IDM4LjNDNDQzLjYgMjI2LjcgNDQ4IDIxNS44IDQ0OCAyMDhjMC0xMi4zLTEwLjgtMzItNDcuOS01MC42QzM2NC45IDEzOS44IDMxNCAxMjggMjU2IDEyOHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjdDMTY2LjMgMjgwLjIgMjA4LjggMjg4IDI1NiAyODhzODkuNy03LjggMTIyLjktMjAuM0MzNDUuMyAyNTUuNiAzMDMgMjQ4IDI1NiAyNDh6TTAgMjA4YzAtNDkuNiAzOS40LTg1LjggODMuMy0xMDcuOEMxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOEMzODIuOSA0MzQuNyAzMjEuNyA0NDggMjU2IDQ0OHMtMTI2LjktMTMuMy0xNzIuNy0zNi4yQzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2elwiXVxufTtcbmNvbnN0IGZhQnVpbGRpbmdVbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy11bicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRkOVwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC00MTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yMzcuMyA3MS4xbDM0LjcgNTJMMjcyIDgwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTEyIDgwbDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFEaWNlVGhyZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10aHJlZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NThdLCBcImY1MjdcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNhbGVuZGFyRGF5cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1kYXlzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYWxlbmRhci1hbHRcIl0sIFwiZjA3M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptNjQgODBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDQwMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFDYWxlbmRhckFsdCA9IGZhQ2FsZW5kYXJEYXlzO1xuY29uc3QgZmFBbmNob3JDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3ItY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFhXCIsIFwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBMMjI0IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjA4LTQ4IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03IDAgNi4xYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDgwIDAgODAgMGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJMMzIwIDQ0OGwwLTgwIDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy1jaXJjbGUtYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZDFcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxODQuMmMtMzkuMSAzMi4zLTY0IDgxLjEtNjQgMTM1LjhjMCA0OS41IDIwLjQgOTQuMiA1My4zIDEyNi4yQzM2NC41IDUwNS4xIDM1MS4xIDUxMiAzMzYgNTEybC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTEyLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptOTYgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0MC43LTY3LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42TDUyMS40IDM1MiA0MzIgMzUyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhVm9sbGV5YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2xsZXliYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTUyLCBcInZvbGxleWJhbGwtYmFsbFwiXSwgXCJmNDVmXCIsIFwiTTUxMS44IDI2Ny40Yy0yNi4xIDguNy01My40IDEzLjgtODEgMTUuMWM5LjItMTA1LjMtMzEuNS0yMDQuMi0xMDMuMi0yNzIuNEM0MzQuMSA0MS4xIDUxMiAxMzkuNSA1MTIgMjU2YzAgMy44LS4xIDcuNi0uMiAxMS40em0tMy45IDM0LjdjLTUuOCAzMi0xNy42IDYyLTM0LjIgODguN2MtOTcuNSA0OC41LTIxNy43IDQyLjYtMzExLjktMjQuNWMyMy43LTM2LjIgNTUuNC02Ny43IDk0LjUtOTEuOGM3OS45IDQzLjIgMTcwLjEgNTAuOCAyNTEuNiAyNy42em0tMjM2LTU1LjVjLTIuNS05MC45LTQxLjEtMTcyLjctMTAxLjktMjMxLjdDMTk2LjggNS4yIDIyNS44IDAgMjU2IDBjMi43IDAgNS4zIDAgNy45IC4xYzkwLjggNjAuMiAxNDUuNyAxNjcuMiAxMzQuNyAyODIuM2MtNDMuMS0yLjQtODYuNC0xNC4xLTEyNi44LTM1Ljl6TTEzOCAyOC44YzIwLjYgMTguMyAzOC43IDM5LjQgNTMuNyA2Mi42Qzk1LjkgMTM2LjEgMzAuNiAyMjAuOCA3LjMgMzE2LjlDMi41IDI5Ny40IDAgMjc3IDAgMjU2QzAgMTU3LjIgNTYgNzEuNSAxMzggMjguOHptNjkuNiA5MC41YzE5LjUgMzguNiAzMSA4MS45IDMyLjMgMTI3LjdDMTYyLjUgMjk0LjYgMTEwLjkgMzY4LjkgOTAuMiA0NTFDNjYgNDMwLjQgNDUuNiA0MDUuNCAzMC40IDM3Ny4yYzYuNy0xMDguNyA3MS45LTIwOS45IDE3Ny4xLTI1Ny45ek0yNTYgNTEyYy01MC43IDAtOTgtMTQuNy0xMzcuOC00MC4yYzUuNi0yNyAxNC44LTUzLjEgMjcuNC03Ny43QzIzMi4yIDQ1NC42IDMzOC4xIDQ2OC44IDQzMyA0NDFjLTQ2IDQ0LTEwOC4zIDcxLTE3NyA3MXpcIl1cbn07XG5jb25zdCBmYVZvbGxleWJhbGxCYWxsID0gZmFWb2xsZXliYWxsO1xuY29uc3QgZmFBcnJvd3NVcFRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtdG8tbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjMlwiLCBcIk0zMiA5Nmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZ6TTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAyMzcuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2em0zMjAgNDUuM2MxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMEw0MTYgMjM3LjMgNDE2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zelwiXVxufTtcbmNvbnN0IGZhU29ydERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJzb3J0LWRlc2NcIl0sIFwiZjBkZFwiLCBcIk0xODIuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45czE2LjYtMTkuOCAyOS42LTE5LjhsMjU2IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOHpcIl1cbn07XG5jb25zdCBmYVNvcnREZXNjID0gZmFTb3J0RG93bjtcbmNvbnN0IGZhQ2lyY2xlTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJtaW51cy1jaXJjbGVcIl0sIFwiZjA1NlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTg0IDIzMmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFNaW51c0NpcmNsZSA9IGZhQ2lyY2xlTWludXM7XG5jb25zdCBmYURvb3JPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3Itb3BlbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjUyYlwiLCBcIk0zMjAgMzJjMC05LjktNC41LTE5LjItMTIuMy0yNS4yUzI4OS44LTEuNCAyODAuMiAxbC0xNzkuOSA0NUM3OSA1MS4zIDY0IDcwLjUgNjQgOTIuNUw2NCA0NDhsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAxOTIgMCAzMiAwIDAtMzIgMC00NDh6TTI1NiAyNTZjMCAxNy43LTEwLjcgMzItMjQgMzJzLTI0LTE0LjMtMjQtMzJzMTAuNy0zMiAyNC0zMnMyNCAxNC4zIDI0IDMyem05Ni0xMjhsOTYgMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFSaWdodEZyb21CcmFja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpZ2h0LWZyb20tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1vdXQtYWx0XCJdLCBcImYyZjVcIiwgXCJNMzc3LjkgMTA1LjlMNTAwLjcgMjI4LjdjNy4yIDcuMiAxMS4zIDE3LjEgMTEuMyAyNy4zcy00LjEgMjAuMS0xMS4zIDI3LjNMMzc3LjkgNDA2LjFjLTYuNCA2LjQtMTUgOS45LTI0IDkuOWMtMTguNyAwLTMzLjktMTUuMi0zMy45LTMzLjlsMC02Mi4xLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjIuMWMwLTE4LjcgMTUuMi0zMy45IDMzLjktMzMuOWM5IDAgMTcuNiAzLjYgMjQgOS45ek0xNjAgOTZMOTYgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhU2lnbk91dEFsdCA9IGZhUmlnaHRGcm9tQnJhY2tldDtcbmNvbnN0IGZhQXRvbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdG9tJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg4M10sIFwiZjVkMlwiLCBcIk0yNTYgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNWMxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQ0NiAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjhjLTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMmMtMjIgNTIuMS01NS42IDg0LjgtOTguNCA4NC44cy03Ni40LTMyLjctOTguNC04NC44Yy01Mi43IDYuMS05NS02LjgtMTE1LjItNDMuMkMyMS43IDM0Ni45IDMzIDMwMS4yIDY2IDI1NmMtMzMtNDUuMi00NC4zLTkwLjktMjMuNi0xMjhjMjAuMi0zNi4zIDYyLjUtNDkuMyAxMTUuMi00My4yQzE3OS42IDMyLjcgMjEzLjIgMCAyNTYgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yYzIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yYzMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuN2MyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjFjLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yYzcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNmMxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjFjLTEuNi0yLjktOC40LTEzLTQwLjItMTEuN3pNMjkwLjkgOTkuN0MyNzQuMSA2NS45IDI1OS45IDY0IDI1NiA2NHMtMTguMSAxLjktMzQuOSAzNS43YzExLjQgMy45IDIzLjEgOC40IDM0LjkgMTMuNWMxMS44LTUuMSAyMy40LTkuNyAzNC45LTEzLjV6bS0xNTkgODguOWMxLjctMTQuMyAzLjktMjggNi43LTQxLjJjLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuN2MtMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xYzYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTExMC4yIDMwNC44QzkxLjQgMzM1IDk2IDM0OC43IDk4LjMgMzUyLjljMS42IDIuOSA4LjQgMTMgNDAuMiAxMS43Yy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjJjLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzM2IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTb2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvYXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MzJdLCBcImUwNmVcIiwgXCJNMjA4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzIwIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNNDE2IDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTYwYzAgMjcuNi0xMS43IDUyLjUtMzAuNCA3MC4xQzQyMi4xIDI3NS43IDQ0OCAzMTAuOCA0NDggMzUyYzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2bDg4LjQgMGMtMTUuMi0xNy0yNC40LTM5LjQtMjQuNC02NEw5NiAxOTJjLTUzIDAtOTYgNDMtOTYgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwzMjAgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTE2MCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTMyIDAtMTYwIDB6XCJdXG59O1xuY29uc3QgZmFJY29ucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpY29ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHRcIl0sIFwiZjg2ZFwiLCBcIk01MDAuMyA3LjNDNTA3LjcgMTMuMyA1MTIgMjIuNCA1MTIgMzJsMCAxNDRjMCAyNi41LTI4LjcgNDgtNjQgNDhzLTY0LTIxLjUtNjQtNDhzMjguNy00OCA2NC00OGwwLTU3TDM1MiA5MC4yIDM1MiAyMDhjMCAyNi41LTI4LjcgNDgtNjQgNDhzLTY0LTIxLjUtNjQtNDhzMjguNy00OCA2NC00OGwwLTk2YzAtMTUuMyAxMC44LTI4LjQgMjUuNy0zMS40bDE2MC0zMmM5LjQtMS45IDE5LjEgLjYgMjYuNiA2LjZ6TTc0LjcgMzA0bDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwYzEwLjcgMCAyMC43IDUuMyAyNi42IDE0LjJMMjEzLjMgMzA0bDI2LjcgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI2LjcgMHpNMTkyIDQwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NzguNyAyNzguM0w0NDAuMyAzNjhsNTUuNyAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRzLjYgMTMuMy00LjQgMTcuN2wtMTI4IDExMmMtNS42IDQuOS0xMy45IDUuMy0xOS45IC45cy04LjItMTIuNC01LjMtMTkuMkwzOTEuNyA0MDAgMzM2IDQwMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjIgMTIuNCA1LjMgMTkuMnptLTMzOS01OS4yYy02LjUgNi41LTE3IDYuNS0yMyAwTDE5LjkgMTE5LjJjLTI4LTI5LTI2LjUtNzYuOSA1LTEwMy45YzI3LTIzLjUgNjguNC0xOSA5My40IDYuNWwxMCAxMC41IDkuNS0xMC41YzI1LTI1LjUgNjUuOS0zMCA5My45LTYuNWMzMSAyNyAzMi41IDc0LjkgNC41IDEwMy45bC05Ni40IDk5Ljl6XCJdXG59O1xuY29uc3QgZmFIZWFydE11c2ljQ2FtZXJhQm9sdCA9IGZhSWNvbnM7XG5jb25zdCBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvcGhvbmUtbGluZXMtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIm1pY3JvcGhvbmUtYWx0LXNsYXNoXCJdLCBcImY1MzlcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0NzIuMSAzNDQuN2MxNS4yLTI2IDIzLjktNTYuMyAyMy45LTg4LjdsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0IDAgMTZjMCAyMS4yLTUuMSA0MS4xLTE0LjIgNTguN0w0MTYgMzAwLjhsMC00NC44LTU3LjEgMC0zNC41LTI3YzIuOS0zLjEgNy01IDExLjYtNWw4MCAwIDAtMzItODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtMzItODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgNTQuM0wzOC44IDUuMXptMzYyLjUgNDA3bC00My4xLTMzLjlDMzQ2LjEgMzgyIDMzMy4zIDM4NCAzMjAgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOGwwLTguN0wxNDQuNyAyMTBjLS41IDEuOS0uNyAzLjktLjcgNmwwIDQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNGwwIDMzLjYtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC0zMy42YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMnpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmVBbHRTbGFzaCA9IGZhTWljcm9waG9uZUxpbmVzU2xhc2g7XG5jb25zdCBmYUJyaWRnZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YzlcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJdXG59O1xuY29uc3QgZmFQdW1wTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwdW1wLW1lZGljYWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNmFcIiwgXCJNMTI4IDMybDAgOTYgMTI4IDAgMC0zMiA2MC4xIDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2wzMy45IDMzLjljMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzNzIuNyA1NS40Yy0xNS0xNS0zNS40LTIzLjQtNTYuNi0yMy40TDI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEybDE4Ni40IDBjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN2wtMTQ5LjEgMHpNMjE2IDI4MGwwIDMyIDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDAgMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTMyLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzIgMCAwLTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xuY29uc3QgZmFGaW5nZXJwcmludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaW5nZXJwcmludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3N1wiLCBcIk00OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4YzYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjVjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjZjLTE1LjIgNS0xOC43IDIzLjctOC4zIDM1LjljNy4xIDguMyAxOC44IDEwLjggMjkuNCA3LjljMTAuNi0yLjkgMjEuOC00LjQgMzMuNC00LjRjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAyNC45YzAgMjUuMi0xLjUgNTAuMy00LjQgNzUuM2MtMS43IDE0LjYgOS40IDI3LjggMjQuMiAyNy44YzExLjggMCAyMS45LTguNiAyMy4zLTIwLjNjMy4zLTI3LjQgNS01NSA1LTgyLjdsMC0yNC45YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2ek0xNTAuNyAxNDguN2MtOS4xLTEwLjYtMjUuMy0xMS40LTMzLjktLjRDOTMuNyAxNzggODAgMjE1LjQgODAgMjU2bDAgMjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjlDNjguOCAzNjguNCA4MC4xIDM4NCA5Ni4xIDM4NGMxMC41IDAgMTkuOS03IDIyLjItMTcuM2M2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMWM3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjFjLTMuOCAxNC4zIDYuNyAyOSAyMS41IDI5YzkuNSAwIDE3LjktNi4yIDIwLjQtMTUuNGMxMC41LTM5IDE1LjktNzkuMiAxNS45LTExOS43bDAtMjQuOWMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMjQuOWMwIDM2LjMtMy41IDcyLjQtMTAuNCAxMDcuOWMtMi43IDEzLjkgNy43IDI3LjIgMjEuOCAyNy4yYzEwLjIgMCAxOS03IDIxLTE3YzcuNy0zOC44IDExLjYtNzguMyAxMS42LTExOC4xbDAtMjQuOWMwLTUzLTQzLTk2LTk2LTk2em0yNCA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOWwwLTI0Ljl6XCJdXG59O1xuY29uc3QgZmFIYW5kUG9pbnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGE0XCIsIFwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMmMwIDEzLjIgNCAyNS40IDEwLjggMzUuNkMxNzcuOSAzNjQuMyAxNjAgMzg4LjEgMTYwIDQxNmMwIDExLjcgMy4xIDIyLjYgOC42IDMybC04LjYgMEM3MS42IDQ0OCAwIDM3Ni40IDAgMjg4bDAtNjEuN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsMTEuNi0xMS42QzgyLjUgNzcuNSAxMTUuMSA2NCAxNDkgNjRsMjcgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwbDAtNTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA1NmMwIDM5LjggMzIuMiA3MiA3MiA3MnpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNlYXJjaC1sb2NhdGlvblwiXSwgXCJmNjg5XCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNmM2IDcuMyAxNi44IDcuMyAyMi43IDBjMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFTZWFyY2hMb2NhdGlvbiA9IGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb247XG5jb25zdCBmYUZvcndhcmRTdGVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvcndhcmQtc3RlcCcsXG4gIGljb246IFszMjAsIDUxMiwgW1wic3RlcC1mb3J3YXJkXCJdLCBcImYwNTFcIiwgXCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2TDAgOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MEwyNTYgMjQxbDAtMTQ1YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDUtMTEuNSA5LjYtMTkyIDE2MHpcIl1cbn07XG5jb25zdCBmYVN0ZXBGb3J3YXJkID0gZmFGb3J3YXJkU3RlcDtcbmNvbnN0IGZhRmFjZVNtaWxlQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXNtaWxlLWJlYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MjIsIFwic21pbGUtYmVhbVwiXSwgXCJmNWI4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6bTUzLjUtOTYuN3MwIDAgMCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwem0xNjAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhU21pbGVCZWFtID0gZmFGYWNlU21pbGVCZWFtO1xuY29uc3QgZmFGbGFnQ2hlY2tlcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZsYWctY2hlY2tlcmVkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTM3XSwgXCJmMTFlXCIsIFwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjVjNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAyNzkuN2MwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjRjLTM3LjktMTktODEuMy0yMy43LTEyMi41LTEzLjRMNjQgMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MCAwLTY2TDAgNjQgMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTY0IDE4Ny4xbDY0LTEzLjkgMCA2NS41TDY0IDI1Mi42IDY0IDMxOGw0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1Yy04LjItNC4xLTE2LjktNy0yNS44LTguOGwwIDcyLjRjLTEzLS40LTI2IC44LTM4LjcgMy42TDEyOCAxNzMuMiAxMjggOTggNjQgMTE0bDAgNzMuMXpNMzIwIDMzNS43YzE2LjggMS41IDMzLjktLjcgNTAtNi44bDE0LTUuMiAwLTcxLjctNy45IDEuOGMtMTguNCA0LjMtMzcuMyA1LjctNTYuMSA0LjVsMCA3Ny40em02NC0xNDkuNGwwLTcwLjhjLTIwLjkgNi4xLTQyLjQgOS4xLTY0IDkuMWwwIDY5LjRjMTMuOSAxLjQgMjggLjUgNDEuNy0yLjZsMjIuMy01LjJ6XCJdXG59O1xuY29uc3QgZmFGb290YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb290YmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk0NCwgXCJmb290YmFsbC1iYWxsXCJdLCBcImY0NGVcIiwgXCJNMjQ3LjUgMjUuNGMtMTMuNSAzLjMtMjYuNCA3LjItMzguNiAxMS43QzE0Mi45IDYxLjYgOTYuNyAxMDMuNiA2NiAxNTMuNkM0Ny44IDE4My40IDM1LjEgMjE1LjkgMjYuOSAyNDlMMjY0LjUgNDg2LjZjMTMuNS0zLjMgMjYuNC03LjIgMzguNi0xMS43YzY2LTI0LjUgMTEyLjItNjYuNSAxNDIuOS0xMTYuNWMxOC4zLTI5LjggMzAuOS02Mi4zIDM5LjEtOTUuM0wyNDcuNSAyNS40ek00OTUuMiAyMDUuM2M2LjEtNTYuOCAxLjQtMTEyLjItNy43LTE1Ni40Yy0yLjctMTIuOS0xMy0yMi45LTI2LjEtMjUuMWMtNTguMi05LjctMTA5LjktMTItMTU1LjYtNy45TDQ5NS4yIDIwNS4zek0yMDYuMSA0OTZMMTYuOCAzMDYuN2MtNi4xIDU2LjgtMS40IDExMi4yIDcuNyAxNTYuNGMyLjcgMTIuOSAxMyAyMi45IDI2LjEgMjUuMWM1OC4yIDkuNyAxMDkuOSAxMiAxNTUuNiA3Ljl6bTU0LjYtMzMxLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0tNDggNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNjQgNjRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42elwiXVxufTtcbmNvbnN0IGZhRm9vdGJhbGxCYWxsID0gZmFGb290YmFsbDtcbmNvbnN0IGZhU2Nob29sQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2Y1wiLCBcIk0zMzcuOCA1LjRDMzI3LTEuOCAzMTMtMS44IDMwMi4yIDUuNEwxNjYuMyA5NiA0OCA5NkMyMS41IDk2IDAgMTE3LjUgMCAxNDRMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMjcyIDBzMCAwIDAgMGwtNjQgMCAwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4zIDAgLjUgMGMzLjQtMzcuNyAxOC43LTcyLjEgNDIuMi05OS4xQzM1MC4yIDI2MCAzMzUuNiAyNjQgMzIwIDI2NGMtNDguNiAwLTg4LTM5LjQtODgtODhzMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMTguMy01LjYgMzUuMy0xNS4xIDQ5LjRjMjktMjEgNjQuNi0zMy40IDEwMy4xLTMzLjRjNTkuNSAwIDExMi4xIDI5LjYgMTQ0IDc0LjhMNjQwIDE0NGMwLTI2LjUtMjEuNS00OC00OC00OEw0NzMuNyA5NiAzMzcuOCA1LjR6TTk2IDE5MmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2em0wIDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2ek0zMjAgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMCAwLTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNyb3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEyNVwiLCBcIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE2MCA2NGwwIDY0IDE3OC43IDBMMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzJMMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDAgMC02NC0xNzguNyAwTDM4NCAxNzMuMyAzODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6XCJdXG59O1xuY29uc3QgZmFBbmdsZXNEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy1kb3duJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJhbmdsZS1kb3VibGUtZG93blwiXSwgXCJmMTAzXCIsIFwiTTI0Ni42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMjQgNDAyLjcgMzYxLjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjI0IDIxMC43IDM2MS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pcIl1cbn07XG5jb25zdCBmYUFuZ2xlRG91YmxlRG93biA9IGZhQW5nbGVzRG93bjtcbmNvbnN0IGZhVXNlcnNSZWN0YW5nbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtcmVjdGFuZ2xlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTk0XCIsIFwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw0NDggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMkw2NCA5NnptMTU5LjggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNOTYgMzA5LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdsNTYuMSAwYzgtMzQuMSAzMi44LTYxLjcgNjUuMi03My42Yy03LjUtNC4xLTE2LjItNi40LTI1LjMtNi40bC02OS4zIDBDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zek00NjEuMiAzMzZsNTYuMSAwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zbC02OS4zIDBjLTkuMiAwLTE3LjggMi4zLTI1LjMgNi40YzMyLjQgMTEuOSA1Ny4yIDM5LjUgNjUuMiA3My42ek0zNzIgMjg5Yy0zLjktLjctNy45LTEtMTItMWwtODAgMGMtNC4xIDAtOC4xIC4zLTEyIDFjLTI2IDQuNC00Ny4zIDIyLjctNTUuOSA0N2MtMi43IDcuNS00LjEgMTUuNi00LjEgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC04LjQtMS40LTE2LjUtNC4xLTI0Yy04LjYtMjQuMy0yOS45LTQyLjYtNTUuOS00N3pNNTEyIDE3NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlUm9vZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtcm9vZicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzN1wiLCBcIk0zMzUuNSA0bDI4OCAxNjBjMTUuNCA4LjYgMjEgMjguMSAxMi40IDQzLjVzLTI4LjEgMjEtNDMuNSAxMi40TDMyMCA2OC42IDQ3LjUgMjIwYy0xNS40IDguNi0zNC45IDMtNDMuNS0xMi40cy0zLTM0LjkgMTIuNC00My41TDMwNC41IDRjOS43LTUuNCAyMS40LTUuNCAzMS4xIDB6TTMyMCAxNjBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek0xNDQgMjU2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzEyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIyNi45IDQ5MS40TDIwMCA0NDEuNWwwIDM4LjVjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzguNUw2MS4xIDQ5MS40Yy02LjMgMTEuNy0yMC44IDE2LTMyLjUgOS44cy0xNi0yMC44LTkuOC0zMi41bDM3LjktNzAuM2MxNS4zLTI4LjUgNDUuMS00Ni4zIDc3LjUtNDYuM2wxOS41IDBjMTYuMyAwIDMxLjkgNC41IDQ1LjQgMTIuNmwzMy42LTYyLjNjMTUuMy0yOC41IDQ1LjEtNDYuMyA3Ny41LTQ2LjNsMTkuNSAwYzMyLjQgMCA2Mi4xIDE3LjggNzcuNSA0Ni4zbDMzLjYgNjIuM2MxMy41LTguMSAyOS4xLTEyLjYgNDUuNC0xMi42bDE5LjUgMGMzMi40IDAgNjIuMSAxNy44IDc3LjUgNDYuM2wzNy45IDcwLjNjNi4zIDExLjcgMS45IDI2LjItOS44IDMyLjVzLTI2LjIgMS45LTMyLjUtOS44TDU1MiA0NDEuNWwwIDM4LjVjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzguNS0yNi45IDQ5LjljLTYuMyAxMS43LTIwLjggMTYtMzIuNSA5LjhzLTE2LTIwLjgtOS44LTMyLjVsMzYuMy02Ny41Yy0xLjctMS43LTMuMi0zLjYtNC4zLTUuOEwzNzYgMzQ1LjVsMCA1NC41YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU0LjUtMjYuOSA0OS45Yy0xLjIgMi4yLTIuNiA0LjEtNC4zIDUuOGwzNi4zIDY3LjVjNi4zIDExLjcgMS45IDI2LjItOS44IDMyLjVzLTI2LjIgMS45LTMyLjUtOS44elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzNFwiLCBcIk0zNjAgNzJhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHpNMTQ0IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTQ5NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek0yMDAgMzEzLjVsMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzYuMy02Ny41YzEuNy0xLjcgMy4yLTMuNiA0LjMtNS44TDI2NCAyMTcuNWwwIDU0LjVjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTU0LjUgMjYuOSA0OS45YzEuMiAyLjIgMi42IDQuMSA0LjMgNS44bC0zNi4zIDY3LjVjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDQ0MCAzMTMuNWwwIDM4LjVjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM4LjUgMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0xNi4zIDAtMzEuOSA0LjUtNDUuNCAxMi42bC0zMy42LTYyLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zbC0xOS41IDBjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zbC0zMy42IDYyLjNjLTEzLjUtOC4xLTI5LjEtMTIuNi00NS40LTEyLjZsLTE5LjUgMGMtMzIuNCAwLTYyLjEgMTcuOC03Ny41IDQ2LjNMMTguOSAzNDAuNmMtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMODggMzEzLjUgODggMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC41elwiXVxufTtcbmNvbnN0IGZhQmVlck11Z0VtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZXItbXVnLWVtcHR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJiZWVyXCJdLCBcImYwZmNcIiwgXCJNMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA1MS4yIDBjNDIuNCAwIDc2LjggMzQuNCA3Ni44IDc2LjhsMCAxMDIuMWMwIDMwLjQtMTcuOSA1Ny45LTQ1LjYgNzAuMkwzODQgMzgxLjdsMCAzNC4zYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTM4NCAzMTEuNmw1Ni40LTI1LjFjNC42LTIuMSA3LjYtNi42IDcuNi0xMS43bDAtMTAyLjFjMC03LjEtNS43LTEyLjgtMTIuOC0xMi44TDM4NCAxNjBsMCAxNTEuNnpNMTYwIDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDIyNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjI0em02NCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMjR6bTY0IDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIyNHpcIl1cbn07XG5jb25zdCBmYUJlZXIgPSBmYUJlZXJNdWdFbXB0eTtcbmNvbnN0IGZhRGlhZ3JhbVByZWRlY2Vzc29yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYWdyYW0tcHJlZGVjZXNzb3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0NzdcIiwgXCJNNDQ4IDQxNmwwLTY0TDY0IDM1MmwwIDY0IDM4NCAwem0wIDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxNDQgMCAxNiAwIDE0NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYgMzguMSAwYzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMNDMzIDIzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzI5IDE2OWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MWwzOC4xIDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTgwIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLWxvbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxvbmctYXJyb3ctdXBcIl0sIFwiZjE3NlwiLCBcIk0yMTQuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNzAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYUxvbmdBcnJvd1VwID0gZmFBcnJvd1VwTG9uZztcbmNvbnN0IGZhRmlyZUZsYW1lU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtZmxhbWUtc2ltcGxlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJidXJuXCJdLCBcImY0NmFcIiwgXCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42QzAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41YzAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6XCJdXG59O1xuY29uc3QgZmFCdXJuID0gZmFGaXJlRmxhbWVTaW1wbGU7XG5jb25zdCBmYVBlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjk0ODUsIFwibWFsZVwiXSwgXCJmMTgzXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNTguMyA5N2M5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOUwyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwelwiXVxufTtcbmNvbnN0IGZhTWFsZSA9IGZhUGVyc29uO1xuY29uc3QgZmFMYXB0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MTg3XSwgXCJmMTA5XCIsIFwiTTEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAyNTYgNjQgMCAwLTI1NiAzODQgMCAwIDI1NiA2NCAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMnpNMTkuMiAzODRDOC42IDM4NCAwIDM5Mi42IDAgNDAzLjJDMCA0NDUuNiAzNC40IDQ4MCA3Ni44IDQ4MGw0ODYuNCAwYzQyLjQgMCA3Ni44LTM0LjQgNzYuOC03Ni44YzAtMTAuNi04LjYtMTkuMi0xOS4yLTE5LjJMMTkuMiAzODR6XCJdXG59O1xuY29uc3QgZmFGaWxlQ3N2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY3N2JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmRkXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTQ0LTIwOCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE0NC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0zODQgNjRsLTEyOCAwTDI1NiAwIDM4NCAxMjh6TTIwMCAzNTJsMTYgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04YzAtNC40LTMuNi04LTgtOGwtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgODBjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtOGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC04MGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTMzLjEgMGwzNC45IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTM0LjkgMGMtNy4yIDAtMTMuMSA1LjktMTMuMSAxMy4xYzAgNS4yIDMgOS45IDcuOCAxMmwzNy40IDE2LjZjMTYuMyA3LjIgMjYuOCAyMy40IDI2LjggNDEuMmMwIDI0LjktMjAuMiA0NS4xLTQ1LjEgNDUuMUwzMDQgNTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQyLjkgMGM3LjIgMCAxMy4xLTUuOSAxMy4xLTEzLjFjMC01LjItMy05LjktNy44LTEybC0zNy40LTE2LjZjLTE2LjMtNy4yLTI2LjgtMjMuNC0yNi44LTQxLjJjMC0yNC45IDIwLjItNDUuMSA0NS4xLTQ1LjF6bTk4LjkgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMS42YzAgMjMgNS41IDQ1LjYgMTYgNjZjMTAuNS0yMC4zIDE2LTQyLjkgMTYtNjZsMC0zMS42YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMS42YzAgMzQuNy0xMC4zIDY4LjctMjkuNiA5Ny42bC01LjEgNy43Yy0zIDQuNS04IDcuMS0xMy4zIDcuMXMtMTAuMy0yLjctMTMuMy03LjFsLTUuMS03LjdjLTE5LjMtMjguOS0yOS42LTYyLjktMjkuNi05Ny42bDAtMzEuNmMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFNZW5vcmFoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21lbm9yYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2NzZcIiwgXCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDAtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NEw5NiAzODRjLTUzIDAtOTYtNDMtOTYtOTZMMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAwIDMyLTY0IDAgMC0zMiAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMCAzMi02NCAwIDAtMzIgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAwIDMyLTY0IDAgMC0zMiAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMCAzMi02NCAwIDAtMzIgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVRydWNrUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stcGxhbmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OGZcIiwgXCJNMjAwIDBjLTMwLjYgMC01NiA1NC43LTU2IDg2LjFsMCAxMDYuNUw3LjggMjc0LjNDMi45IDI3Ny4yIDAgMjgyLjQgMCAyODhsMCA2NGMwIDUuMSAyLjQgOS44IDYuNCAxMi44czkuMyAzLjkgMTQuMSAyLjVsMTIzLjQtMzcgMCA4MS4yLTUwIDQwYy0zLjggMy02IDcuNi02IDEyLjVsMCAzMmMwIDUuMSAyLjUgMTAgNi42IDEzczkuNSAzLjggMTQuNCAyLjJMMjAwIDQ4MC45IDI5MC40IDUxMWMtMS42LTQuNy0yLjQtOS44LTIuNC0xNWwwLTMyLjZjLTE4LjItMTAuNS0zMC43LTI5LjctMzEuOS01MS44bC0uMS0uMSAwLTMuNSAwLTgyLjVMMjU2IDE4NGwwLTEuMXMwIDAgMCAwbDAtOTYuOUMyNTYgNTQuNyAyMzEuNSAwIDIwMCAwem04OCAxNzZsMCAyMjRjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zbDAgNDIuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgMTYwIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDIuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI1NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OHptNzkuOCA3OC43YzMuMy04LjcgMTEuMi0xNC43IDIwLjUtMTQuN2wxNTEuNCAwYzkuMiAwIDE3LjIgNiAyMC41IDE0LjdMNTc2IDMwNGwtMjI0IDAgMTUuOC00OS4zek01NjggMzUyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzM2IDM3NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbmNvbnN0IGZhUmVjb3JkVmlueWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjb3JkLXZpbnlsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmOGQ5XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDIyNGExMjggMTI4IDAgMSAwIDAtMjU2IDEyOCAxMjggMCAxIDAgMCAyNTZ6bTAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5TdGFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3RhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzMjEsIFwiZ3Jpbi1zdGFyc1wiXSwgXCJmNTg3XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptNDA3LjQgNzUuNWM1LTExLjgtNy0yMi41LTE5LjMtMTguN2MtMzkuNyAxMi4yLTg0LjUgMTktMTMxLjggMTlzLTkyLjEtNi44LTEzMS44LTE5Yy0xMi4zLTMuOC0yNC4zIDYuOS0xOS4zIDE4LjdjMjUgNTkuMSA4My4yIDEwMC41IDE1MS4xIDEwMC41czEyNi4yLTQxLjQgMTUxLjEtMTAwLjV6TTE2MCAxMjBjLTMuMSAwLTUuOSAxLjgtNy4yIDQuNmwtMTYuNiAzNC43LTM4LjEgNWMtMy4xIC40LTUuNiAyLjUtNi42IDUuNXMtLjEgNi4yIDIuMSA4LjNsMjcuOSAyNi41LTcgMzcuOGMtLjYgMyAuNyA2LjEgMy4yIDcuOXM1LjggMiA4LjUgLjZMMTYwIDIzMi41bDMzLjggMTguM2MyLjcgMS41IDYgMS4zIDguNS0uNnMzLjctNC45IDMuMi03LjlsLTctMzcuOEwyMjYuNCAxNzhjMi4yLTIuMSAzLjEtNS4zIDIuMS04LjNzLTMuNS01LjEtNi42LTUuNWwtMzguMS01LTE2LjYtMzQuN2MtMS4zLTIuOC00LjEtNC42LTcuMi00LjZ6bTE5MiAwYy0zLjEgMC01LjkgMS44LTcuMiA0LjZsLTE2LjYgMzQuNy0zOC4xIDVjLTMuMSAuNC01LjYgMi41LTYuNiA1LjVzLS4xIDYuMiAyLjEgOC4zbDI3LjkgMjYuNS03IDM3LjhjLS42IDMgLjcgNi4xIDMuMiA3LjlzNS44IDIgOC41IC42TDM1MiAyMzIuNWwzMy44IDE4LjNjMi43IDEuNSA2IDEuMyA4LjUtLjZzMy43LTQuOSAzLjItNy45bC03LTM3LjhMNDE4LjQgMTc4YzIuMi0yLjEgMy4xLTUuMyAyLjEtOC4zcy0zLjUtNS4xLTYuNi01LjVsLTM4LjEtNS0xNi42LTM0LjdjLTEuMy0yLjgtNC4xLTQuNi03LjItNC42elwiXVxufTtcbmNvbnN0IGZhR3JpblN0YXJzID0gZmFGYWNlR3JpblN0YXJzO1xuY29uc3QgZmFCb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1NWNcIiwgXCJNMTYwIDIwOC41YzAgMjkuMS0xNS42IDUzLjktMzcuMiA2Ny44Yy0xNy4yIDExLjEtMzEuNSAyNi4xLTQxLjcgNDMuN2wyMjEuOCAwYy0xMC4yLTE3LjYtMjQuNS0zMi42LTQxLjctNDMuN2MtMjEuNi0xMy45LTM3LjItMzguNy0zNy4yLTY3LjhMMjI0IDY0bC02NCAwIDAgMTQ0LjV6TTI4OCA2NGwwIDE0NC41YzAgNS43IDMuMSAxMC45IDcuOSAxNGMxMS4yIDcuMiAyMS41IDE1LjUgMzAuOSAyNC44TDM2Ni4xIDIwOGwtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjQgMjQgMjQgMjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNy03LTQzLjMgNDMuM0MzNzQgMzE0LjEgMzg0IDM0Ny45IDM4NCAzODRjMCAzOS40LTExLjkgNzYuMS0zMi4yIDEwNi41Yy05LjYgMTQuNC0yNi41IDIxLjUtNDMuOCAyMS41TDc2LjEgNTEyYy0xNy4zIDAtMzQuMi03LjEtNDMuOC0yMS41QzExLjkgNDYwLjEgMCA0MjMuNCAwIDM4NGMwLTY3LjggMzUuMS0xMjcuMyA4OC4xLTE2MS41YzQuOC0zLjEgNy45LTguMyA3LjktMTRMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwbDE2IDBMMjcyIDBsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVNwYWdoZXR0aU1vbnN0ZXJGbHlpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwYXN0YWZhcmlhbmlzbVwiXSwgXCJmNjdiXCIsIFwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM0MzOTAgOTUuMSAzODQgODAuMiAzODQgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjRjNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNEM1MjcuMyAyNjIuMyA1MzIuNyAyNjQgNTM2IDI2NGMyLjUgMCA0LjMtLjYgNy4xLTMuM2MzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjdjOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuM2MtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjdjLTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuN2MtMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNmMtMy4xIDQtNi42IDguMy0xMC41IDEyLjdjMS40IDQuMyAyLjggOC41IDQgMTIuNWMuOSAzIDEuOCA1LjggMi42IDguNmMzIDkuOCA1LjUgMTguMiA4LjYgMjUuOWMzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNWMyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjNjOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yYzE1LTggMzUuNy0xOC44IDYyLjMtMTguOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMmMtMSAuNi0yLjEgMS4xLTMuMiAxLjdDNTU5LjkgNDE0IDU0MS40IDQyNCA1MjAgNDI0Yy0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yYy0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzZjLTMuNi05LTYuNy0xOS4xLTkuNS0yOC41Yy0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuM2MzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjJjNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNUM0MzMgNDYwLjUgNDQxLjIgNDY0IDQ0OCA0NjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOGMtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzYy04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjljLTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOWMtOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTNDMjM3IDQ5OC41IDIxNy4yIDUxMiAxOTIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjdjOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNWM1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yYy0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuM2MtMi45IDkuNC02IDE5LjUtOS41IDI4LjVjLTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2QzE1My42IDQxNy45IDEzOC40IDQyNCAxMjAgNDI0Yy0yMS40IDAtMzkuOS0xMC01My4xLTE3LjFjMCAwIDAgMCAwIDBjLTEuMS0uNi0yLjItMS4yLTMuMi0xLjdjLTE1LTgtMjYuMy0xMy4yLTM5LjctMTMuMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyNi42IDAgNDcuMyAxMC44IDYyLjMgMTguOGMxNi44IDkgMjUgMTMuMiAzMy43IDEzLjJjNi44IDAgMTAuMi0xLjkgMTIuOC00LjNjMy40LTMuMiA3LTguOCAxMC44LTE4LjVjMy03LjcgNS42LTE2LjEgOC42LTI1LjljLjgtMi43IDEuNy01LjYgMi42LTguNmMxLjItNCAyLjYtOC4yIDQtMTIuNWMtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuN0MxMzYuOSAzMDMuNSAxMjIuNSAzMTIgMTA0IDMxMmMtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuN2MtOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjRjLTIuOC0yLjctNC42LTMuMy03LjEtMy4zYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjdjOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40YzIuOCAyLjcgNC42IDMuMyA3LjEgMy4zYzMuMyAwIDguNy0xLjcgMTkuNC0xMy40YzUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjRjMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjJjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIl1cbn07XG5jb25zdCBmYVBhc3RhZmFyaWFuaXNtID0gZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nO1xuY29uc3QgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRhZlwiLCBcIk0xMzcuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDAyLjcgMTkyIDI4OGwzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTExNC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM4NCAxMDkuMyAzODQgMjI0bC0xOTIgMC02NCAwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDExNC43TDg2LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2ek0xMjggMTkybDY0IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjh6TTQ0OCAzMjBsLTY0IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOHpcIl1cbn07XG5jb25zdCBmYVNwb29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nwb29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzQ4LCA2MTg3MywgXCJ1dGVuc2lsLXNwb29uXCJdLCBcImYyZTVcIiwgXCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44QzIyNCA4MCAzMjAgMCA0MTYgMGM1MyAwIDk2IDQzIDk2IDk2YzAgOTYtODAgMTkyLTE2MC4yIDE5MmMtMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXpcIl1cbn07XG5jb25zdCBmYVV0ZW5zaWxTcG9vbiA9IGZhU3Bvb247XG5jb25zdCBmYUphcldoZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2phci13aGVhdCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTUxN1wiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MHptMTEyIDBsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44QzY0IDE5OCA5MCAyMjQgMTIyLjIgMjI0bDIxLjggMCAzMiAwIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAxNjBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44QzY0IDI5NCA5MCAzMjAgMTIyLjIgMzIwbDIxLjggMCAzMiAwIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjJjMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAyNTZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOEM2NCAzOTAgOTAgNDE2IDEyMi4yIDQxNmwyMS44IDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzIgMjEuOCAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMmMwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDM1MmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3pcIl1cbn07XG5jb25zdCBmYUVudmVsb3Blc0J1bGsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGVzLWJ1bGsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIm1haWwtYnVsa1wiXSwgXCJmNjc0XCIsIFwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMmwwIDE5MiA5NiAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjI0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMHpNMjU2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4IDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMjAgMHptMjQwIDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxM0wxODcuMSA0MTUuOWMxLjQgMSAzLjEgMS42IDQuOSAxLjZzMy41LS42IDQuOS0xLjZMMzUyIDMwMWwwLTEzYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDI1NnptMjg4IDg0LjhMMjE2IDQ0MS42Yy02LjkgNS4xLTE1LjMgNy45LTI0IDcuOXMtMTctMi44LTI0LTcuOUwzMiAzNDAuOCAzMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMzkuMnpcIl1cbn07XG5jb25zdCBmYU1haWxCdWxrID0gZmFFbnZlbG9wZXNCdWxrO1xuY29uc3QgZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZWJcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMzg0IDY0bC0xMjggMEwyNTYgMCAzODQgMTI4em00OCA5NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMC0xOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVIID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1oJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTQwNSwgXCJob3NwaXRhbC1zeW1ib2xcIl0sIFwiZjQ3ZVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY4IDE1MmwwIDEwNCAwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgwLTEyOCAwIDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwIDEyOCAwIDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUhvc3BpdGFsU3ltYm9sID0gZmFDaXJjbGVIO1xuY29uc3QgZmFQYWdlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWdlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyM10sIFwiZjgxNVwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODAgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6bTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFBZGRyZXNzQm9vayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhZGRyZXNzLWJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjEzOCwgXCJjb250YWN0LWJvb2tcIl0sIFwiZjJiOVwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTIwOCAyODhsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0elwiXVxufTtcbmNvbnN0IGZhQ29udGFjdEJvb2sgPSBmYUFkZHJlc3NCb29rO1xuY29uc3QgZmFTdHJpa2V0aHJvdWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cmlrZXRocm91Z2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwY2NcIiwgXCJNMTYxLjMgMTQ0YzMuMi0xNy4yIDE0LTMwLjEgMzMuNy0zOC42YzIxLjEtOSA1MS44LTEyLjMgODguNi02LjVjMTEuOSAxLjkgNDguOCA5LjEgNjAuMSAxMmMxNy4xIDQuNSAzNC42LTUuNiAzOS4yLTIyLjdzLTUuNi0zNC42LTIyLjctMzkuMmMtMTQuMy0zLjgtNTMuNi0xMS40LTY2LjYtMTMuNGMtNDQuNy03LTg4LjMtNC4yLTEyMy43IDEwLjljLTM2LjUgMTUuNi02NC40IDQ0LjgtNzEuOCA4Ny4zYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjggMjMuOSAuNSA0NS42IDEwLjEgNjQuNmM0LjUgOSAxMC4yIDE2LjkgMTYuNyAyMy45TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjA5LjkgMC0uNC0uMS0xLjEtLjNjLTM2LTEwLjgtNjUuMi0xOS42LTg1LjItMzMuMWMtOS4zLTYuMy0xNS0xMi42LTE4LjItMTkuMWMtMy4xLTYuMS01LjItMTQuNi0zLjgtMjcuNHpNMzQ4LjkgMzM3LjJjMi43IDYuNSA0LjQgMTUuOCAxLjkgMzAuMWMtMyAxNy42LTEzLjggMzAuOC0zMy45IDM5LjRjLTIxLjEgOS01MS43IDEyLjMtODguNSA2LjVjLTE4LTIuOS00OS4xLTEzLjUtNzQuNC0yMi4xYy01LjYtMS45LTExLTMuNy0xNS45LTUuNGMtMTYuOC01LjYtMzQuOSAzLjUtNDAuNSAyMC4zczMuNSAzNC45IDIwLjMgNDAuNWMzLjYgMS4yIDcuOSAyLjcgMTIuNyA0LjNjMCAwIDAgMCAwIDBzMCAwIDAgMGMyNC45IDguNSA2My42IDIxLjcgODcuNiAyNS42YzAgMCAwIDAgMCAwbC4yIDBjNDQuNyA3IDg4LjMgNC4yIDEyMy43LTEwLjljMzYuNS0xNS42IDY0LjQtNDQuOCA3MS44LTg3LjNjMy42LTIxIDIuNy00MC40LTMuMS01OC4xbC03NS43IDBjNyA1LjYgMTEuNCAxMS4yIDEzLjkgMTcuMnpcIl1cbn07XG5jb25zdCBmYUsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaycsXG4gIGljb246IFszMjAsIDUxMiwgWzEwN10sIFwiNGJcIiwgXCJNMzExIDg2LjNjMTIuMy0xMi43IDEyLTMyLjktLjctNDUuMnMtMzIuOS0xMi00NS4yIC43bC0xNTUuMiAxNjBMNjQgMjQ5IDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgMzI4IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMDcgNjQuNy02Ni43IDEzMyAxOTJjMTAuMSAxNC41IDMwIDE4LjEgNDQuNSA4LjFzMTguMS0zMCA4LjEtNDQuNUwxNzQuMSAyMjcuNCAzMTEgODYuM3pcIl1cbn07XG5jb25zdCBmYUxhbmRtYXJrRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kbWFyay1mbGFnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTFjXCIsIFwiTTI3MiAwbDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC04MCAwIDAgMzIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNDggMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwIDAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwek02NCAyMjRsNjQgMCAwIDE5MiA0MCAwIDAtMTkyIDY0IDAgMCAxOTIgNDggMCAwLTE5MiA2NCAwIDAgMTkyIDQwIDAgMC0xOTIgNjQgMCAwIDE5Ni4zYy42IC4zIDEuMiAuNyAxLjggMS4xbDQ4IDMyYzExLjcgNy44IDE3IDIyLjQgMTIuOSAzNS45UzQ5NC4xIDUxMiA0ODAgNTEyTDMyIDUxMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFMNjQgMjI0elwiXVxufTtcbmNvbnN0IGZhUGVuY2lsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlbmNpbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5OTksIDYxNTA0LCBcInBlbmNpbC1hbHRcIl0sIFwiZjMwM1wiLCBcIk00MTAuMyAyMzFsMTEuMy0xMS4zLTMzLjktMzMuOS02Mi4xLTYyLjFMMjkxLjcgODkuOGwtMTEuMyAxMS4zLTIyLjYgMjIuNkw1OC42IDMyMi45Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODAuN2MtMi41IDguNC0uMiAxNy41IDYuMSAyMy43czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMMzg3LjcgMjUzLjcgNDEwLjMgMjMxek0xNjAgMzk5LjRsLTkuMSAyMi43Yy00IDMuMS04LjUgNS40LTEzLjMgNi45TDU5LjQgNDUybDIzLTc4LjFjMS40LTQuOSAzLjgtOS40IDYuOS0xMy4zbDIyLjctOS4xIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTM2Mi43IDE4LjdMMzQ4LjMgMzMuMiAzMjUuNyA1NS44IDMxNC4zIDY3LjFsMzMuOSAzMy45IDYyLjEgNjIuMSAzMy45IDMzLjkgMTEuMy0xMS4zIDIyLjYtMjIuNiAxNC41LTE0LjVjMjUtMjUgMjUtNjUuNSAwLTkwLjVMNDUzLjMgMTguN2MtMjUtMjUtNjUuNS0yNS05MC41IDB6bS00Ny40IDE2OGwtMTQ0IDE0NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwxNDQtMTQ0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG5jb25zdCBmYVBlbmNpbEFsdCA9IGZhUGVuY2lsO1xuY29uc3QgZmFCYWNrd2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTRdLCBcImYwNGFcIiwgXCJNNDU5LjUgNDQwLjZjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOWwwLTMyMGMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRMMjg4IDIxNC4zbDAgNDEuNyAwIDQxLjdMNDU5LjUgNDQwLjZ6TTI1NiAzNTJsMC05NiAwLTEyOCAwLTMyYzAtMTIuNC03LjItMjMuNy0xOC40LTI5cy0yNC41LTMuNi0zNC4xIDQuNGwtMTkyIDE2MEM0LjIgMjM3LjUgMCAyNDYuNSAwIDI1NnM0LjIgMTguNSAxMS41IDI0LjZsMTkyIDE2MGM5LjUgNy45IDIyLjggOS43IDM0LjEgNC40czE4LjQtMTYuNiAxOC40LTI5bDAtNjR6XCJdXG59O1xuY29uc3QgZmFDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMGRhXCIsIFwiTTI0Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNmwwIDI1NmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDEyOC0xMjh6XCJdXG59O1xuY29uc3QgZmFDb21tZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODQ5MCwgNjE2NzBdLCBcImYwODZcIiwgXCJNMjA4IDM1MmMxMTQuOSAwIDIwOC03OC44IDIwOC0xNzZTMzIyLjkgMCAyMDggMFMwIDc4LjggMCAxNzZjMCAzOC42IDE0LjcgNzQuMyAzOS42IDEwMy40Yy0zLjUgOS40LTguNyAxNy43LTE0LjIgMjQuN2MtNC44IDYuMi05LjcgMTEtMTMuMyAxNC4zYy0xLjggMS42LTMuMyAyLjktNC4zIDMuN2MtLjUgLjQtLjkgLjctMS4xIC44bC0uMiAuMnMwIDAgMCAwczAgMCAwIDBDMSAzMjcuMi0xLjQgMzM0LjQgLjggMzQwLjlTOS4xIDM1MiAxNiAzNTJjMjEuOCAwIDQzLjgtNS42IDYyLjEtMTIuNWM5LjItMy41IDE3LjgtNy40IDI1LjItMTEuNEMxMzQuMSAzNDMuMyAxNjkuOCAzNTIgMjA4IDM1MnpNNDQ4IDE3NmMwIDExMi4zLTk5LjEgMTk2LjktMjE2LjUgMjA3QzI1NS44IDQ1Ny40IDMzNi40IDUxMiA0MzIgNTEyYzM4LjIgMCA3My45LTguNyAxMDQuNy0yMy45YzcuNSA0IDE2IDcuOSAyNS4yIDExLjRjMTguMyA2LjkgNDAuMyAxMi41IDYyLjEgMTIuNWM2LjkgMCAxMy4xLTQuNSAxNS4yLTExLjFjMi4xLTYuNi0uMi0xMy44LTUuOC0xNy45YzAgMCAwIDAgMCAwczAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNi0uNC0xLjEtLjhjLTEtLjgtMi41LTItNC4zLTMuN2MtMy42LTMuMy04LjUtOC4xLTEzLjMtMTQuM2MtNS41LTctMTAuNy0xNS40LTE0LjItMjQuN2MyNC45LTI5IDM5LjYtNjQuNyAzOS42LTEwMy40YzAtOTIuOC04NC45LTE2OC45LTE5Mi42LTE3NS41Yy40IDUuMSAuNiAxMC4zIC42IDE1LjV6XCJdXG59O1xuY29uc3QgZmFQYXN0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXN0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZmlsZS1jbGlwYm9hcmRcIl0sIFwiZjBlYVwiLCBcIk0xNjAgMGMtMjMuNyAwLTQ0LjQgMTIuOS01NS40IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MDBjMCAyNi41IDIxLjUgNDggNDggNDhsMTQ0IDAgMC0yNzJjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01Ni42IDBDMjA0LjQgMTIuOSAxODMuNyAwIDE2MCAwek0yNzIgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDI3MiAwIDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIwLjFjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtNjcuOS02Ny45Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMjAgMTI4bC00OCAwek0xNjAgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhRmlsZUNsaXBib2FyZCA9IGZhUGFzdGU7XG5jb25zdCBmYUNvZGVQdWxsUmVxdWVzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLXB1bGwtcmVxdWVzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzY1wiLCBcIk0zMDUuOCAyLjFDMzE0LjQgNS45IDMyMCAxNC41IDMyMCAyNGwwIDQwIDE2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxNjYuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNDAwIDE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDQwYzAgOS41LTUuNiAxOC4xLTE0LjIgMjEuOXMtMTguOCAyLjMtMjUuOC00LjFsLTgwLTcyYy01LjEtNC42LTcuOS0xMS03LjktMTcuOHMyLjktMTMuMyA3LjktMTcuOGw4MC03MmM3LTYuMyAxNy4yLTcuOSAyNS44LTQuMXpNMTA0IDgwQTI0IDI0IDAgMSAwIDU2IDgwYTI0IDI0IDAgMSAwIDQ4IDB6bTggNzMuM2wwIDIwNS4zYzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjNjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTIwNS4zQzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zek0xMDQgNDMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTMyOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFDbGlwYm9hcmRMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC1saXN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDZkXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek03MiAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTA0LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNzIgMzY4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTg4IDBjMC04LjggNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tSYW1wQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLXJhbXAtYm94JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ0cnVjay1sb2FkaW5nXCJdLCBcImY0ZGVcIiwgXCJNNjQwIDBsMCA0MDBjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTYxIDAtMTEwLjUtNDguNy0xMTItMTA5LjNMNDguNCA1MDIuOWMtMTcuMSA0LjYtMzQuNi01LjQtMzkuMy0yMi41czUuNC0zNC42IDIyLjUtMzkuM0wzNTIgMzUzLjggMzUyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDY0MCAwek01NzYgNDAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTIzLjEgMjA3LjdjLTQuNi0xNy4xIDUuNi0zNC42IDIyLjYtMzkuMmw0Ni40LTEyLjQgMjAuNyA3Ny4zYzIuMyA4LjUgMTEuMSAxMy42IDE5LjYgMTEuM2wzMC45LTguM2M4LjUtMi4zIDEzLjYtMTEuMSAxMS4zLTE5LjZsLTIwLjctNzcuMyA0Ni40LTEyLjRjMTcuMS00LjYgMzQuNiA1LjYgMzkuMiAyMi42bDQxLjQgMTU0LjVjNC42IDE3LjEtNS42IDM0LjYtMjIuNiAzOS4yTDEwMy43IDM4NC45Yy0xNy4xIDQuNi0zNC42LTUuNi0zOS4yLTIyLjZMMjMuMSAyMDcuN3pcIl1cbn07XG5jb25zdCBmYVRydWNrTG9hZGluZyA9IGZhVHJ1Y2tSYW1wQm94O1xuY29uc3QgZmFVc2VyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRmY1wiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek02MjUgMTc3TDQ5NyAzMDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDU5MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhVmlhbFZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwtdmlydXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1OTdcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDAgMjg4YzAgNTMgNDMgOTYgOTYgOTZjMjguNiAwIDU0LjItMTIuNSA3MS44LTMyLjNjLjEtMTQuMiA1LjYtMjguMyAxNi40LTM5LjFjLjItLjIgLjEtLjYtLjItLjZjLTMwLjkgMC01Ni0yNS4xLTU2LTU2czI1LjEtNTYgNTYtNTZjLjMgMCAuNC0uNCAuMi0uNmMtMjEuOS0yMS45LTIxLjktNTcuMyAwLTc5LjJjMi40LTIuNCA1LTQuNiA3LjgtNi41TDIyNCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMEw5NiAzMiAzMiAzMnpNOTYgMTkybDAtOTYgNjQgMCAwIDk2LTY0IDB6TTIxNiAzNzZjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMyMC40LTIwLjQgNTUuMi01LjkgNTUuMiAyMi45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yOC44IDM0LjgtNDMuMiA1NS4yLTIyLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45QzQ0NC44IDQxMC44IDQ1OS4yIDM3NiA0ODggMzc2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yOC44IDAtNDMuMi0zNC44LTIyLjktNTUuMmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwQzQxMC44IDI1OS4yIDM3NiAyNDQuOCAzNzYgMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMjguOC0zNC44IDQzLjItNTUuMiAyMi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTQwIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFTaGVldFBsYXN0aWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hlZXQtcGxhc3RpYycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTU3MVwiLCBcIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMCAwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHpNMTcxLjMgNzUuM2wtOTYgOTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsOTYtOTZjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42em05NiAzMmwtMTYwIDE2MGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwxNjAtMTYwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMzg0IDM4NGwtMTI4IDAgMCAxMjhMMzg0IDM4NHpcIl1cbn07XG5jb25zdCBmYUJsb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxvZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4MVwiLCBcIk0xOTIgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyQzUxMiAxMjguOSAzODMuMSAwIDIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMTA2LTg2LTE5Mi0xOTItMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNOTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgMTE3LjUgMCAxNDRMMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NGwtMTYgMCAwIDk2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0yMjR6XCJdXG59O1xuY29uc3QgZmFVc2VyTmluamEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1uaW5qYScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTM5OV0sIFwiZjUwNFwiLCBcIk0yMjQgMjU2Yy01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuM2MtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjhjLTE1LjggMTUuOC0zOC44IDIwLjctNTMuNiAyMi4xYy04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44YzEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNmM1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjRjLTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNEMzNy40IDgyLjcgMzIuNiA1OS43IDMxLjEgNDQuOWMtLjgtOC4xIDUuNy0xNC42IDEzLjgtMTMuOGMxNC43IDEuNCAzNy44IDYuMyA1My42IDIyLjFjNC44IDQuOCA4LjcgMTAuNCAxMS43IDE2LjFDMTMxLjQgMjguMiAxNzQuNCAwIDIyNCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4cy01Ny4zIDEyOC0xMjggMTI4ek0wIDQ4Mi4zQzAgMzk5LjUgNTYuNCAzMzAgMTMyLjggMzA5LjljNi0xLjYgMTIuMiAuOSAxNS45IDUuOGw2Mi41IDgzLjNjNi40IDguNSAxOS4yIDguNSAyNS42IDBsNjIuNS04My4zYzMuNy00LjkgOS45LTcuNCAxNS45LTUuOEMzOTEuNiAzMzAgNDQ4IDM5OS41IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkwxNjAgOTZ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25BcnJvd1VwRnJvbUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWFycm93LXVwLWZyb20tbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzOVwiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzNTJsMC05NiAxNiAwIDAgOTYtMTYgMHptLTY0IDBsLTg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTIwIDAgODAgMCAzNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzQ0IDAgMC0xOTEuMSAyOC42IDQ3LjVjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTU4LjMtOTdjLTE3LjQtMjguOS00OC42LTQ2LjYtODIuMy00Ni42bC0yOS43IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45TDEyMCAyNTYuOSAxMjAgNDQ4ek01OTguNiAxMjEuNGwtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0NjQgMTQxLjMgNDY0IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFTY3JvbGxUb3JhaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3JvbGwtdG9yYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInRvcmFoXCJdLCBcImY2YTBcIiwgXCJNOTYgNDgwTDk2IDMyQzk2IDE0LjMgNzQuNSAwIDQ4IDBTMCAxNC4zIDAgMzJMMCA0ODBjMCAxNy43IDIxLjUgMzIgNDggMzJzNDgtMTQuMyA0OC0zMnpNNTEyIDMyTDEyOCAzMmwwIDQ0OCAzODQgMCAwLTQ0OHpNNTkyIDBjLTI2LjUgMC00OCAxNC4zLTQ4IDMybDAgNDQ4YzAgMTcuNyAyMS41IDMyIDQ4IDMyczQ4LTE0LjMgNDgtMzJsMC00NDhjMC0xNy43LTIxLjUtMzItNDgtMzJ6TTE5NiAzMTMuN2MwLTMuMiAuOS02LjQgMi41LTkuMkwyMjYuNyAyNTZsLTI4LjMtNDguNWMtMS42LTIuOC0yLjUtNi0yLjUtOS4yYzAtMTAuMSA4LjItMTguMyAxOC4zLTE4LjNsNTYuNyAwIDMxLjQtNTMuOWMzLjYtNi4zIDEwLjMtMTAuMSAxNy42LTEwLjFzMTMuOSAzLjggMTcuNiAxMC4xTDM2OSAxODBsNTYuNyAwYzEwLjEgMCAxOC4zIDguMiAxOC4zIDE4LjNjMCAzLjItLjkgNi40LTIuNSA5LjJMNDEzLjMgMjU2bDI4LjMgNDguNWMxLjYgMi44IDIuNSA2IDIuNSA5LjJjMCAxMC4xLTguMiAxOC4zLTE4LjMgMTguM0wzNjkgMzMybC0zMS40IDUzLjljLTMuNiA2LjMtMTAuMyAxMC4xLTE3LjYgMTAuMXMtMTMuOS0zLjgtMTcuNi0xMC4xTDI3MSAzMzJsLTU2LjcgMGMtMTAuMSAwLTE4LjMtOC4yLTE4LjMtMTguM3ptMTI0IDU0LjdMMzQxLjIgMzMybC00Mi40IDBMMzIwIDM2OC40ek0yNTQuNSAyNTZsMzAuMyA1MiA3MC40IDAgMzAuMy01Mi0zMC4zLTUyLTcwLjQgMC0zMC4zIDUyem0xNDQuOSAyMy44TDM4MyAzMDhsMzIuOCAwLTE2LjQtMjguMnpNNDE1LjggMjA0TDM4MyAyMDRsMTYuNCAyOC4yTDQxNS44IDIwNHpNMzIwIDE0My42TDI5OC44IDE4MGw0Mi40IDBMMzIwIDE0My42ek0yMjQuMiAyMDRsMTYuNCAyOC4yTDI1NyAyMDRsLTMyLjggMHpNMjU3IDMwOGwtMTYuNC0yOC4yTDIyNC4yIDMwOGwzMi44IDB6XCJdXG59O1xuY29uc3QgZmFUb3JhaCA9IGZhU2Nyb2xsVG9yYWg7XG5jb25zdCBmYUJyb29tQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicm9vbS1iYWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJxdWlkZGl0Y2hcIiwgXCJxdWlkZGl0Y2gtYnJvb20tYmFsbFwiXSwgXCJmNDU4XCIsIFwiTTU2Ni42IDkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTkyIDE5MiAzNC43IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDBMMjU2IDIxMS43bDAtMjkuMWMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmM2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjcgMzQuNyAxOTItMTkyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwem0tMzQ0IDIyNS41TDM0MS4xIDM1My40YzMuNyA0Mi43LTExLjcgODUuMi00Mi4zIDExNS44QzI3MS40IDQ5Ni42IDIzNC4yIDUxMiAxOTUuNSA1MTJMMjIuMSA1MTJDOS45IDUxMiAwIDUwMi4xIDAgNDg5LjljMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjJjMC0zMS41IDEyLjUtNjEuNyAzNC44LTg0bDgtOGMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjN6TTQ2NCAzNTJhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFRdWlkZGl0Y2ggPSBmYUJyb29tQmFsbDtcbmNvbnN0IGZhUXVpZGRpdGNoQnJvb21CYWxsID0gZmFCcm9vbUJhbGw7XG5jb25zdCBmYVRvZ2dsZU9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2dnbGUtb2ZmJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA0XCIsIFwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjhsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDM1MmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnpcIl1cbn07XG5jb25zdCBmYUJveEFyY2hpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LWFyY2hpdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFyY2hpdmVcIl0sIFwiZjE4N1wiLCBcIk0zMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptMCAxMjhsNDQ4IDAgMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NnptMTI4IDgwYzAgOC44IDcuMiAxNiAxNiAxNmwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUFyY2hpdmUgPSBmYUJveEFyY2hpdmU7XG5jb25zdCBmYVBlcnNvbkRyb3duaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcm93bmluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0NVwiLCBcIk0xOTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMi4yYzAgNTQuMSAyMy41IDEwNCA2Mi4yIDEzOC4zbC0yMSAxNDYuN2M3LjggMi4xIDE1LjUgMy4zIDIyLjggMy4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzEyLjQgOC41IDI2LjEgMTQuOCAzOS43IDE4bDE3LjctOTcuNmMxMC43LTEuMiAyMS4zLTMuMSAzMS45LTUuNWwxMDUtMjMuOWMxNy4yLTMuOSAyOC0yMS4xIDI0LjEtMzguM3MtMjEuMS0yOC0zOC4zLTI0LjFMNDAwIDIxNi42Yy00MSA5LjMtODMuNyA3LjUtMTIzLjctNS4yYy01MC4yLTE2LTg0LjMtNjIuNi04NC4zLTExNS4zTDE5MiA2NHpNMzIwIDE5MmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzA2LjUgMzg5LjljLTExLjEtNy45LTI1LjktNy45LTM3IDBDMjQ3IDQwNS40IDIxOS41IDQxNiAxOTIgNDE2Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWMwIDAgMCAwIDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA0NjkuNyAxNTkgNDgwIDE5MiA0ODBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdjMCAwIDAgMCAwIDBDNDM5LjQgNDA1LjIgNDEwLjkgNDE2IDM4NCA0MTZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMXpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bjkxID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tOS0xJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtZGVzY1wiLCBcInNvcnQtbnVtZXJpYy1kb3duLWFsdFwiXSwgXCJmODg2XCIsIFwiTTE2MCA0ODBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNGw4OC05NmMxMS45LTEzIDExLjEtMzMuMy0yLTQ1LjJzLTMzLjMtMTEuMS00NS4yIDJMMTkyIDM2NS43IDE5MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwMS43TDk1LjYgMzMwLjRjLTExLjktMTMtMzIuMi0xMy45LTQ1LjItMnMtMTMuOSAzMi4yLTIgNDUuMmw4OCA5NkMxNDIuNSA0NzYuMiAxNTEgNDgwIDE2MCA0ODB6TTQ1MC43IDI5NGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDggMCA0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTQxOC4zIDkxYTMyIDMyIDAgMSAxIDI3LjQgNTcuOUEzMiAzMiAwIDEgMSA0MTguMyA5MXpNNDA1LjEgMjAzLjhsLTYuOCA5LjJjLTEwLjUgMTQuMi03LjUgMzQuMiA2LjcgNDQuOHMzNC4yIDcuNSA0NC44LTYuN2w0OC44LTY1LjhjMTQtMTguOSAyMS41LTQxLjcgMjEuNS02NS4yYzAtNDguNi0zOS40LTg4LTg4LTg4cy04OCAzOS40LTg4IDg4YzAgMzkuMiAyNS42IDcyLjQgNjEuMSA4My44elwiXVxufTtcbmNvbnN0IGZhU29ydE51bWVyaWNEZXNjID0gZmFBcnJvd0Rvd245MTtcbmNvbnN0IGZhU29ydE51bWVyaWNEb3duQWx0ID0gZmFBcnJvd0Rvd245MTtcbmNvbnN0IGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDEsIFwiZ3Jpbi10b25ndWUtc3F1aW50XCJdLCBcImY1OGFcIiwgXCJNMCAyNTZDMCAzNjguOSA3My4xIDQ2NC43IDE3NC41IDQ5OC44QzE2NS4zIDQ4NCAxNjAgNDY2LjYgMTYwIDQ0OGwwLTQ3LjNjLTI0LTE3LjUtNDMuMS00MS40LTU0LjgtNjkuMmMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTljMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43Yy0xMS44IDI4LTMxLjEgNTItNTUuNCA2OS42bDAgNDYuOWMwIDE4LjYtNS4zIDM2LTE0LjUgNTAuOEM0MzguOSA0NjQuNyA1MTIgMzY4LjkgNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2ek0xMTYgMTQxLjFjMC05IDkuNi0xNC43IDE3LjUtMTAuNWw4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZ6bTI2Mi41LTEwLjVjNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjVjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3Ljl6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjljLTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDBjLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluVG9uZ3VlU3F1aW50ID0gZmFGYWNlR3JpblRvbmd1ZVNxdWludDtcbmNvbnN0IGZhU3ByYXlDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3ByYXktY2FuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJkXCIsIFwiTTEyOCAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5Nkw5NiAxMjhsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNTZ6bTI0MCA4MEE4MCA4MCAwIDEgMCA4MCAzMzZhODAgODAgMCAxIDAgMTYwIDB6TTI1NiA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zODQgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTQ0OCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzg0IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFUcnVja01vbnN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW9uc3RlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYzYlwiLCBcIk0yODggNjRsMCA2NCAxMjggMEwzNjggNjRsLTgwIDB6TTQxOS4yIDI1LjZMNDk2IDEyOGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTI5LjItMzguOS03NS43LTY0LTEyOC02NHMtOTguOCAyNS4xLTEyOCA2NGwtNjQgMGMtMjkuMi0zOC45LTc1LjctNjQtMTI4LTY0cy05OC44IDI1LjEtMTI4IDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZ6TTE1MiAyNTZsMTYgMGMxMi4xIDAgMjIuMSA4LjkgMjMuOCAyMC42YzcuNiAyLjIgMTQuOSA1LjMgMjEuNyA5YzkuNC03IDIyLjgtNi4zIDMxLjMgMi4zbDExLjMgMTEuM2M4LjYgOC42IDkuMyAyMS45IDIuMyAzMS4zYzMuNyA2LjggNi44IDE0LjEgOSAyMS43YzExLjYgMS43IDIwLjYgMTEuNyAyMC42IDIzLjhsMCAxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjMgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjggMy43LTE0LjEgNi44LTIxLjcgOUMxOTAuMSA1MDMuMSAxODAuMSA1MTIgMTY4IDUxMmwtMTYgMGMtMTIuMSAwLTIyLjEtOC45LTIzLjgtMjAuNmMtNy42LTIuMi0xNC45LTUuMy0yMS43LTljLTkuNCA3LjEtMjIuOCA2LjMtMzEuMy0yLjJMNjMuOCA0NjguOWMtOC42LTguNi05LjMtMjEuOS0yLjMtMzEuM2MtMy43LTYuOS02LjgtMTQuMS05LTIxLjhDNDAuOSA0MTQuMSAzMiA0MDQuMSAzMiAzOTJsMC0xNmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjMtMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOWMxLjctMTEuNiAxMS43LTIwLjYgMjMuOC0yMC42em04IDE3NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTQ0OC4yIDI3Ni42YzEuNy0xMS42IDExLjctMjAuNiAyMy44LTIwLjZsMTYgMGMxMi4xIDAgMjIuMSA4LjkgMjMuOCAyMC42YzcuNiAyLjIgMTQuOSA1LjMgMjEuOCA5YzkuNC03IDIyLjgtNi4zIDMxLjMgMi4zbDExLjMgMTEuM2M4LjYgOC42IDkuMyAyMS45IDIuMiAzMS4zYzMuNyA2LjggNi44IDE0LjEgOSAyMS43YzExLjYgMS43IDIwLjYgMTEuNyAyMC42IDIzLjhsMCAxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjIgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjkgMy43LTE0LjEgNi44LTIxLjggOUM1MTAuMSA1MDMuMSA1MDAuMSA1MTIgNDg4IDUxMmwtMTYgMGMtMTIuMSAwLTIyLjEtOC45LTIzLjgtMjAuNmMtNy42LTIuMi0xNC45LTUuMy0yMS43LTljLTkuNCA3LjEtMjIuOCA2LjMtMzEuMy0yLjJsLTExLjMtMTEuM2MtOC42LTguNi05LjMtMjEuOS0yLjItMzEuM2MtMy43LTYuOS02LjgtMTQuMS05LTIxLjhDMzYwLjkgNDE0LjEgMzUyIDQwNC4xIDM1MiAzOTJsMC0xNmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjItMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOXpNNTI4IDM4NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbmNvbnN0IGZhVyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTE5XSwgXCI1N1wiLCBcIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdsMTEwLjIgMjk0TDI1Ny4zIDU1YzQtMTMuNyAxNi41LTIzIDMwLjctMjNzMjYuNyA5LjQgMzAuNyAyM2w4NS4xIDI5MS43TDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdzMjQuOSAyNC43IDE4LjcgNDEuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHpcIl1cbn07XG5jb25zdCBmYUVhcnRoQWZyaWNhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWFmcmljYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1NywgXCJnbG9iZS1hZnJpY2FcIl0sIFwiZjU3Y1wiLCBcIk0xNzcuOCA2My4ybDEwIDE3LjRjMi44IDQuOCA0LjIgMTAuMyA0LjIgMTUuOWwwIDQxLjRjMCAzLjkgMS42IDcuNyA0LjMgMTAuNGM2LjIgNi4yIDE2LjUgNS43IDIyLTEuMmwxMy42LTE3YzQuNy01LjkgMTIuOS03LjcgMTkuNi00LjNsMTUuMiA3LjZjMy40IDEuNyA3LjIgMi42IDExIDIuNmM2LjUgMCAxMi44LTIuNiAxNy40LTcuMmwzLjktMy45YzIuOS0yLjkgNy4zLTMuNiAxMS0xLjhsMjkuMiAxNC42YzcuOCAzLjkgMTIuNiAxMS44IDEyLjYgMjAuNWMwIDEwLjUtNy4xIDE5LjYtMTcuMyAyMi4ybC0zNS40IDguOGMtNy40IDEuOC0xNS4xIDEuNS0yMi40LS45bC0zMi0xMC43Yy0zLjMtMS4xLTYuNy0xLjctMTAuMi0xLjdjLTcgMC0xMy44IDIuMy0xOS40IDYuNUwxNzYgMjEyYy0xMC4xIDcuNi0xNiAxOS40LTE2IDMybDAgMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44bDI1LjYtMzQuMWM4LjMtMTEuMSAxMi44LTI0LjYgMTIuOC0zOC40bDAtMTIuMWMwLTMuOSAyLjYtNy4zIDYuNC04LjJsNS4zLTEuM2MxMS45LTMgMjAuMy0xMy43IDIwLjMtMjZjMC03LjEtMi44LTEzLjktNy44LTE4LjlsLTMzLjUtMzMuNWMtMy43LTMuNy0zLjctOS43IDAtMTMuNGM1LjctNS43IDE0LjEtNy43IDIxLjgtNS4xbDE0LjEgNC43YzEyLjMgNC4xIDI1LjctMS41IDMxLjUtMTNjMy41LTcgMTEuMi0xMC44IDE4LjktOS4ybDI3LjQgNS41QzQzMiAxMTIuNCAzNTEuNSA0OCAyNTYgNDhjLTI3LjcgMC01NCA1LjQtNzguMiAxNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJdXG59O1xuY29uc3QgZmFHbG9iZUFmcmljYSA9IGZhRWFydGhBZnJpY2E7XG5jb25zdCBmYVJhaW5ib3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFpbmJvdycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzc1Ml0sIFwiZjc1YlwiLCBcIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NkMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMnMzMjAgMTQzLjMgMzIwIDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTM1LjMtMjguNy02NC02NC02NHpNMTYwIDM1MmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xMjMuNyAxMDAuMy0yMjQgMjI0LTIyNHMyMjQgMTAwLjMgMjI0IDIyNGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBzLTE2MCA3MS42LTE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVOb3RjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbm90Y2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2VcIiwgXCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44QzEyMS44IDk1LjYgNjQgMTY5LjEgNjQgMjU2YzAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xYy0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2YzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NkMwIDE0MCA3Ny4xIDQyLjEgMTgyLjkgMTAuNmMxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41elwiXVxufTtcbmNvbnN0IGZhVGFibGV0U2NyZWVuQnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldC1zY3JlZW4tYnV0dG9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YWJsZXQtYWx0XCJdLCBcImYzZmFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NEw2NCA2NGwwIDMyMCAzMjAgMCAwLTMyMHpcIl1cbn07XG5jb25zdCBmYVRhYmxldEFsdCA9IGZhVGFibGV0U2NyZWVuQnV0dG9uO1xuY29uc3QgZmFQYXcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGF3JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWIwXCIsIFwiTTIyNi41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41cy4zLTg2LjIgMzIuNi05Ni44czcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuM1MtMi43IDE3OS4zIDIxLjggMTY1LjNzNTkuNyAuOSA3OC41IDMzLjN6TTY5LjIgNDAxLjJDMTIxLjYgMjU5LjkgMjE0LjcgMjI0IDI1NiAyMjRzMTM0LjQgMzUuOSAxODYuOCAxNzcuMmMzLjYgOS43IDUuMiAyMC4xIDUuMiAzMC41bDAgMS42YzAgMjUuOC0yMC45IDQ2LjctNDYuNyA0Ni43Yy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yQzg0LjkgNDgwIDY0IDQ1OS4xIDY0IDQzMy4zbDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuM3MyOS4xIDUxLjcgMTAuMiA4NC4xcy01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjVzNDYuOSA1My45IDMyLjYgOTYuOHMtNTIuMSA2OS4xLTg0LjQgNTguNXpcIl1cbn07XG5jb25zdCBmYUNsb3VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTcyOV0sIFwiZjBjMlwiLCBcIk0wIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwzNjggMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjRjNC4xLTEwLjcgNi40LTIyLjQgNi40LTM0LjZjMC01My00My05Ni05Ni05NmMtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyQzE2Ny42IDMyIDk2IDEwMy42IDk2IDE5MmMwIDIuNyAuMSA1LjQgLjIgOC4xQzQwLjIgMjE5LjggMCAyNzMuMiAwIDMzNnpcIl1cbn07XG5jb25zdCBmYVRyb3dlbEJyaWNrcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm93ZWwtYnJpY2tzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNThhXCIsIFwiTTI0MC44IDQuOEMyNTAuMyAxMC42IDI1NiAyMC45IDI1NiAzMmwwIDcyIDg5IDBjMy42LTEzLjggMTYuMS0yNCAzMS0yNGw4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC04OCAwYy0xNC45IDAtMjcuNC0xMC4yLTMxLTI0bC04OSAwIDAgNzJjMCAxMS4xLTUuNyAyMS40LTE1LjIgMjcuMnMtMjEuMiA2LjQtMzEuMSAxLjRsLTE5Mi05NkM2LjggMTUxLjIgMCAxNDAuMSAwIDEyOHM2LjgtMjMuMiAxNy43LTI4LjZsMTkyLTk2YzkuOS01IDIxLjctNC40IDMxLjEgMS40ek0yODggMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0zMiAzODRsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZhY2VGbHVzaGVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZmx1c2hlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2MywgXCJmbHVzaGVkXCJdLCBcImY1NzlcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0xNzYgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTE2LTg4YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0em0yNjQtNzJhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwem0tMjg4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTkyIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYUZsdXNoZWQgPSBmYUZhY2VGbHVzaGVkO1xuY29uc3QgZmFIb3NwaXRhbFVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwtdXNlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjgwZFwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDI1NmwxNDQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkwwIDI4OGwwIDY0IDE0NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDAgMzg0bDAgODBjMCAyNi41IDIxLjUgNDggNDggNDhsMjE3LjkgMGMtNi4zLTEwLjItOS45LTIyLjItOS45LTM1LjFjMC00Ni45IDI1LjgtODcuOCA2NC0xMDkuMmwwLTk1LjlMMzIwIDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTE1MiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI0IDI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNCAwIDAgMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNC0yNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMjQgMCAwLTI0YzAtOC44IDcuMi0xNiAxNi0xNnpNNTEyIDI3MmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTI4OCA0NzcuMWMwIDE5LjMgMTUuNiAzNC45IDM0LjkgMzQuOWwyMTguMiAwYzE5LjMgMCAzNC45LTE1LjYgMzQuOS0zNC45YzAtNTEuNC00MS43LTkzLjEtOTMuMS05My4xbC0xMDEuOCAwYy01MS40IDAtOTMuMSA0MS43LTkzLjEgOTMuMXpcIl1cbn07XG5jb25zdCBmYVRlbnRBcnJvd0xlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LWxlZnQtcmlnaHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1N2ZcIiwgXCJNNDg4LjEgNi4yYy05LjktOC45LTI1LTguMS0zMy45IDEuOHMtOC4xIDI1IDEuOCAzMy45TDQ4OS41IDcyIDg2LjUgNzJsMzMuNS0zMC4yYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOVM5Ny44LTIuNyA4Ny45IDYuMmwtODAgNzJDMi45IDgyLjcgMCA4OS4yIDAgOTZzMi45IDEzLjMgNy45IDE3LjhsODAgNzJjOS45IDguOSAyNSA4LjEgMzMuOS0xLjhzOC4xLTI1LTEuOC0zMy45TDg2LjUgMTIwbDQwMi45IDAtMzMuNSAzMC4yYy05LjkgOC45LTEwLjcgMjQtMS44IDMzLjlzMjQgMTAuNyAzMy45IDEuOGw4MC03MmM1LjEtNC42IDcuOS0xMSA3LjktMTcuOHMtMi45LTEzLjMtNy45LTE3LjhsLTgwLTcyek0zMDcuNCAxNjYuNWMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42Uzg2LjcgNTEyIDk2IDUxMmwxNDQgMCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE4LjFjMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNjAuMiAwIDE2IDBjOS4zIDAgMTguMi00LjEgMjQuMi0xMS4xczguOC0xNi40IDcuNC0yNS42bC0yNC0xNjBjLTEuMi04LjItNS42LTE1LjctMTIuMy0yMC43bC0xNjgtMTI4elwiXVxufTtcbmNvbnN0IGZhR2F2ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2F2ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxlZ2FsXCJdLCBcImYwZTNcIiwgXCJNMzE4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTIwIDEyMGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYgMTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNC00TDMyNS40IDI5My40bC00IDRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2IDE2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyMC0xMjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2LTE2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNCA0TDMzMC42IDc0LjZsNC00YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNi0xNnptLTE1MiAyODhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w0OCA0OGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMTItMTEyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xLjQtMS40TDI3MiAyODUuMyAyMjYuNyAyNDAgMTY4IDI5OC43bC0xLjQtMS40elwiXVxufTtcbmNvbnN0IGZhTGVnYWwgPSBmYUdhdmVsO1xuY29uc3QgZmFCaW5vY3VsYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jpbm9jdWxhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZTVcIiwgXCJNMTI4IDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMkw5NiA5NmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zQzQwLjkgMjY3LjggNDkuNyAyNDIuNCA1MyAyMTZMNjAuNSAxNTZjMi0xNiAxNS42LTI4IDMxLjgtMjhsOTkuOCAwem0yMjcuOCAwYzE2LjEgMCAyOS44IDEyIDMxLjggMjhMNDU5IDIxNmMzLjMgMjYuNCAxMi4xIDUxLjggMjUuOCA3NC42YzE3LjggMjkuNyAyNy4yIDYzLjcgMjcuMiA5OC4zbDAgNTkuMWMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzIwIDk5LjggMHpNMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMi05NiAwIDAtMzJ6bS0zMiA2NGwwIDE2MC02NCAwIDAtMTYwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFNaWNyb3Bob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjEzMVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Mi4xIDM0NC43YzE1LjItMjYgMjMuOS01Ni4zIDIzLjktODguN2wwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCAyMS4yLTUuMSA0MS4xLTE0LjIgNTguN0w0MTYgMzAwLjggNDE2IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgNTQuM0wzOC44IDUuMXpNMzQ0IDQzMC40YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMmwtNDMuMS0zMy45QzM0Ni4xIDM4MiAzMzMuMyAzODQgMzIwIDM4NGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhsMC04LjdMMTQ0LjcgMjEwYy0uNSAxLjktLjcgMy45LS43IDZsMCA0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRsMCAzMy42LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtMzMuNnpcIl1cbn07XG5jb25zdCBmYUJveFRpc3N1ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3gtdGlzc3VlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDViXCIsIFwiTTkyLjUgMEwyMDggMGM0MCAwIDUyIDI0IDY0IDQ4czI0IDQ4IDY0IDQ4bDg1LjIgMEM0MzYgOTYgNDQ4IDEwOCA0NDggMTIyLjhjMCAzLjQtLjcgNi44LTEuOSAxMEw0MDkuNiAyMjQgMzg0IDI4OGwtMjU2IDAtMTYtNjRMNjQuOSAzNS40Yy0uNi0yLjMtLjktNC42LS45LTYuOUM2NCAxMi44IDc2LjggMCA5Mi41IDB6TTc5IDIyNGwxNiA2NC0xNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMjU2IDAgNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTMuNSAwIDI1LjYtNjQgMTkuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyTDAgMzg0IDAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMxIDB6TTAgNDE2bDUxMiAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4elwiXVxufTtcbmNvbnN0IGZhTW90b3JjeWNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3RvcmN5Y2xlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI3OTQ5XSwgXCJmMjFjXCIsIFwiTTI4MCAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ny43IDAgMTYuNCAzMC4zTDI1NiAxOTJsLTQ1LjMtNDUuM2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0w2NCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzIgOTYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGMwIDExLTEuMSAyMS43LTMuMiAzMmw3MC40IDBjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC01Mi4yIDI1LTk4LjYgNjMuNy0xMjcuOGwxNS40IDI4LjZDNDAyLjQgMjc2LjMgMzg0IDMxMiAzODQgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhzLTU3LjMtMTI4LTEyOC0xMjhjLTEzLjUgMC0yNi41IDIuMS0zOC43IDZMNDE4LjIgMTI4bDYxLjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMC40IDBjLTcuNSAwLTE0LjcgMi42LTIwLjUgNy40TDM5MS43IDc4LjlsLTE0LTI2Yy03LTEyLjktMjAuNS0yMS0zNS4yLTIxTDI4MCAzMnpNNDYyLjcgMzExLjJsMjguMiA1Mi4yYzYuMyAxMS43IDIwLjkgMTYgMzIuNSA5LjdzMTYtMjAuOSA5LjctMzIuNWwtMjguMi01Mi4yYzIuMy0uMyA0LjctLjQgNy4xLS40YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMTUuNSA1LjUtMjkuNyAxNC43LTQwLjh6TTE4Ny4zIDM3NmMtOS41IDIzLjUtMzIuNSA0MC01OS4zIDQwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzI2LjkgMCA0OS45IDE2LjUgNTkuMyA0MGw2Ni40IDBDMjQyLjUgMjY4LjggMTkwLjUgMjI0IDEyOCAyMjRDNTcuMyAyMjQgMCAyODEuMyAwIDM1MnM1Ny4zIDEyOCAxMjggMTI4YzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGwtNjYuNCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJlbGxDb25jaWVyZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbC1jb25jaWVyZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MTgsIFwiY29uY2llcmdlLWJlbGxcIl0sIFwiZjU2MlwiLCBcIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTE5LjYgMTU3LjIgMzIgMjUyLjQgMzIgMzY4bDQ0OCAwYzAtMTE1LjYtODcuNi0yMTAuOC0yMDAtMjIyLjdsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAtNDAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHpcIl1cbn07XG5jb25zdCBmYUNvbmNpZXJnZUJlbGwgPSBmYUJlbGxDb25jaWVyZ2U7XG5jb25zdCBmYVBlblJ1bGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1ydWxlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGVuY2lsLXJ1bGVyXCJdLCBcImY1YWVcIiwgXCJNNDY5LjMgMTkuM2wyMy40IDIzLjRjMjUgMjUgMjUgNjUuNSAwIDkwLjVsLTU2LjQgNTYuNEwzMjIuMyA3NS43bDU2LjQtNTYuNGMyNS0yNSA2NS41LTI1IDkwLjUgMHpNNDQuOSAzNTMuMkwyOTkuNyA5OC4zIDQxMy43IDIxMi4zIDE1OC44IDQ2Ny4xYy02LjcgNi43LTE1LjEgMTEuNi0yNC4yIDE0LjJsLTEwNCAyOS43Yy04LjQgMi40LTE3LjQgLjEtMjMuNi02LjFzLTguNS0xNS4yLTYuMS0yMy42bDI5LjctMTA0YzIuNi05LjIgNy41LTE3LjUgMTQuMi0yNC4yek0yNDkuNCAxMDMuNEwxMDMuNCAyNDkuNCAxNiAxNjEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMOTQuMSAxNmMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGwxOS44IDE5LjhjLS4zIC4zLS43IC42LTEgLjlsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNjQtNjRjLjMtLjMgLjYtLjcgLjktMWw0NS4xIDQ1LjF6TTQwOC42IDI2Mi42bDQ1LjEgNDUuMWMtLjMgLjMtLjcgLjYtMSAuOWwtNjQgNjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw2NC02NGMuMy0uMyAuNi0uNyAuOS0xTDQ5NiAzNTAuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUw0MTcuOSA0OTZjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC04Ny40LTg3LjRMNDA4LjYgMjYyLjZ6XCJdXG59O1xuY29uc3QgZmFQZW5jaWxSdWxlciA9IGZhUGVuUnVsZXI7XG5jb25zdCBmYVBlb3BsZUFycm93cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtYXJyb3dzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHRcIl0sIFwiZTA2OFwiLCBcIk02NCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA2NCA2NHpNMjUuOSAyMzMuNEMyOS4zIDE5MS45IDY0IDE2MCAxMDUuNiAxNjBsNDQuOCAwYzI3IDAgNTEgMTMuNCA2NS41IDM0LjFjLTIuNyAxLjktNS4yIDQtNy41IDYuM2wtNjQgNjRjLTIxLjkgMjEuOS0yMS45IDU3LjMgMCA3OS4yTDE5MiAzOTEuMmwwIDcyLjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTE1LjdjLTI2LjUtOS41LTQ0LjctMzUuOC00Mi4yLTY1LjZsNC4xLTQ5LjN6TTQ0OCA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA0NDggNjR6TTQzMS42IDIwMC40Yy0yLjMtMi4zLTQuOS00LjQtNy41LTYuM2MxNC41LTIwLjcgMzguNi0zNC4xIDY1LjUtMzQuMWw0NC44IDBjNDEuNiAwIDc2LjMgMzEuOSA3OS43IDczLjRsNC4xIDQ5LjNjMi41IDI5LjgtMTUuNyA1Ni4xLTQyLjIgNjUuNkw1NzYgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTcyLjggNDcuNi00Ny42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4ybC02NC02NHpNMjcyIDI0MGwwIDMyIDk2IDAgMC0zMmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTY0IDY0Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4ybDAtMzItOTYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJ6XCJdXG59O1xuY29uc3QgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQgPSBmYVBlb3BsZUFycm93cztcbmNvbnN0IGZhTWFyc0FuZFZlbnVzQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1hbmQtdmVudXMtYnVyc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MjNcIiwgXCJNNTA0IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzkgMzktMjIuMiAyMi4yQzQ3NS45IDc4LjQgNDM5LjYgNjQgNDAwIDY0Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MGMwIDgwLjIgNTkuMSAxNDYuNyAxMzYuMSAxNTguMmMwIC42LS4xIDEuMi0uMSAxLjhsMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuNCAwIC40IDAgLjQgMCAuMyAwIC40IDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMgMCAuMyAwIC4zIDAgLjMtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4yIDAgLjIgMCAuMiAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xIDAgLjEgMCAuMSAwIC4xYzAgMCAwIC4xIDAgLjFzMCAuMSAwIC4xbDAgLjFjMCAwIDAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgLjEgMCAuMXMwIC4xIDAgLjFzMCAuMSAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIC4xczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGwyNCAwLTI0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwtMjQgMCAyNCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwIDAgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMXMwLS4xIDAtLjFzMC0uMSAwLS4xczAtLjEgMC0uMWwwLS4xYzAgMCAwLS4xIDAtLjFzMC0uMSAwLS4xbDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMSAwLS4xIDAtLjEgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDAtLjIgMC0uMiAwLS4yIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0IDAgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS4zIDAtLjMgMC0uMyAwLS40IDAtLjMgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjQgMC0uNCAwLS40IDAtLjRjMC0uNiAwLTEuMi0uMS0xLjhjNzctMTEuNiAxMzYuMS03OCAxMzYuMS0xNTguMmMwLTMxLjQtOS02MC43LTI0LjctODUuNEw1NjAgMTEzLjlsMzkgMzljNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDUwNCAwek00MDAgMTI4YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC4xIDMuOCA5LjkgNS4xIDE1LjIgMy42QzIyMy42IDMxMC44IDIwOCAyNjkuMiAyMDggMjI0YzAtNjAuOCAyOC4zLTExNSA3Mi40LTE1MC4yTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1jYXJldC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLXJpZ2h0XCJdLCBcImYxNTJcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNHMtMTQuNC0xMi41LTE0LjQtMjJsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6XCJdXG59O1xuY29uc3QgZmFDYXJldFNxdWFyZVJpZ2h0ID0gZmFTcXVhcmVDYXJldFJpZ2h0O1xuY29uc3QgZmFTY2lzc29ycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2lzc29ycycsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5ODQsIDk5ODYsIDk5ODgsIFwiY3V0XCJdLCBcImYwYzRcIiwgXCJNMjU2IDE5MmwtMzkuNS0zOS41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyczUwLjEgMTEyIDExMiAxMTJjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjVDNTAuMSAyODggMCAzMzguMSAwIDQwMHM1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZjLTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyem0yMi42IDE1MC42TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNkwzNDIuNiAyNzguNmwtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhQ3V0ID0gZmFTY2lzc29ycztcbmNvbnN0IGZhU3VuUGxhbnRXaWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1bi1wbGFudC13aWx0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTdhXCIsIFwiTTE2MCAwYy02LjMgMC0xMiAzLjctMTQuNiA5LjVMMTIwLjYgNjQuOSA2My45IDQzLjJjLTUuOS0yLjMtMTIuNi0uOC0xNyAzLjZzLTUuOSAxMS4xLTMuNiAxN2wyMS43IDU2LjdMOS41IDE0NS40QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44TDQzLjIgMjU2LjFjLTIuMyA1LjktLjggMTIuNiAzLjYgMTdzMTEuMSA1LjkgMTcgMy42bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuNyAyMS43YzUuOSAyLjMgMTIuNiAuOCAxNy0zLjZzNS45LTExLjEgMy42LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43YzIuMy01LjkgLjgtMTIuNi0zLjYtMTdzLTExLjEtNS45LTE3LTMuNkwxOTkuNCA2NC45IDE3NC42IDkuNUMxNzIgMy43IDE2Ni4zIDAgMTYwIDB6bTAgOTZhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMxMiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42YzAgMTYuOCAxNiA0NCAzNy40IDY3LjJjNS44IDYuMiAxNS41IDYuMiAyMS4yIDBDNjI0IDMxOCA2NDAgMjkwLjcgNjQwIDI3NGMwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjdjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42YzAgMTYuOCAxNiA0NCAzNy40IDY3LjJjNS44IDYuMiAxNS41IDYuMiAyMS4yIDBDNDAwIDM4MiA0MTYgMzU0LjcgNDE2IDMzOGMwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4IDAgMTY4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTA0IDAgMC0xNjggMC04IDAtOTZ6XCJdXG59O1xuY29uc3QgZmFUb2lsZXRzUG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0cy1wb3J0YWJsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4NFwiLCBcIk0zMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJMMCA2NCAwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHpNMCA5NmwyNCAwIDIwOCAwIDI0IDAgMCAyNCAwIDM2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLThMNDggNDgwbDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwwIDEyMCAwIDk2ek0xOTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2ek0zNTIgMEw1NDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyTDMyMCA2NGwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgOTZsMjQgMCAyMDggMCAyNCAwIDAgMjQgMCAzNjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTE2MCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2OCAwLTI0ek01MTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG9ja2V5UHVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob2NrZXktcHVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ1M1wiLCBcIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5NnMtMTE0LjYgOTYtMjU2IDk2em0xOTIuMyAxLjhjMjQuNy05LjMgNDYuOS0yMSA2My43LTM1LjZMNTEyIDM1MmMwIDUzLTExNC42IDk2LTI1NiA5NlMwIDQwNSAwIDM1MkwwIDIyMi4zYzE2LjggMTQuNiAzOSAyNi4zIDYzLjcgMzUuNkMxMTQuNSAyNzYuOSAxODIuNSAyODggMjU2IDI4OHMxNDEuNS0xMS4xIDE5Mi4zLTMwLjJ6XCJdXG59O1xuY29uc3QgZmFUYWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBjZVwiLCBcIk02NCAyNTZsMC05NiAxNjAgMCAwIDk2TDY0IDI1NnptMCA2NGwxNjAgMCAwIDk2TDY0IDQxNmwwLTk2em0yMjQgOTZsMC05NiAxNjAgMCAwIDk2LTE2MCAwek00NDggMjU2bC0xNjAgMCAwLTk2IDE2MCAwIDAgOTZ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6XCJdXG59O1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjFcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjQxIDExOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMUwxMjAgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExOC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJ6XCJdXG59O1xuY29uc3QgZmFUYWNob2dyYXBoRGlnaXRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWNob2dyYXBoLWRpZ2l0YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImRpZ2l0YWwtdGFjaG9ncmFwaFwiXSwgXCJmNTY2XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDUxMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0zMiA2NGwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzY4YzAtOC44IDcuMi0xNiAxNi0xNmwyNTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIwIDBjMC04LjggNy4yLTE2IDE2LTE2bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek04MCAyODhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem00OCAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MC0xNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4IDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTgwLTE2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYURpZ2l0YWxUYWNob2dyYXBoID0gZmFUYWNob2dyYXBoRGlnaXRhbDtcbmNvbnN0IGZhVXNlcnNTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3M1wiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ0MC42IDMyMGwxNzguMSAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNDNjQwIDIzOS44IDU5Mi4yIDE5MiA1MzMuMyAxOTJsLTQyLjcgMGMtMTUuOSAwLTMxIDMuNS00NC42IDkuN2MxLjMgNy4yIDEuOSAxNC43IDEuOSAyMi4zYzAgMzAuMi0xMC41IDU4LTI4IDc5LjlsLTI1LjItMTkuN0M0MDguMSAyNjcuNyA0MTYgMjQ2LjggNDE2IDIyNGMwLTUzLTQzLTk2LTk2LTk2Yy0zMS4xIDAtNTguNyAxNC44LTc2LjMgMzcuN2wtNDAuNi0zMS44YzEzLTE0LjIgMjAuOS0zMy4xIDIwLjktNTMuOWMwLTQ0LjItMzUuOC04MC04MC04MEMxMTYuMyAwIDkxLjkgMTQuMSA3Ny41IDM1LjVMMzguOCA1LjF6TTEwNi43IDE5MkM0Ny44IDE5MiAwIDIzOS44IDAgMjk4LjdDMCAzMTAuNCA5LjYgMzIwIDIxLjMgMzIwbDIxMy4zIDBjLjIgMCAuNCAwIC43IDBjLTIwLjYtMTguMi0zNS4yLTQyLjgtNDAuOC03MC44TDEyMS44IDE5MmwtMTUuMiAwek0yNjEuMyAzNTJDMTg3LjcgMzUyIDEyOCA0MTEuNyAxMjggNDg1LjNjMCAxNC43IDExLjkgMjYuNyAyNi43IDI2LjdsMzMwLjcgMGMxMC41IDAgMTkuNS02IDIzLjktMTQuOEwzMjQuOSAzNTJsLTYzLjYgMHpNNTEyIDE2MEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNsb3ZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG92ZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUxMzlcIiwgXCJNMjE2LjYgNDkuOUMyMDUuMSAzOC41IDE4OS41IDMyIDE3My4zIDMyQzEzOS40IDMyIDExMiA1OS40IDExMiA5My4zbDAgNC45YzAgMTIgMy4zIDIzLjcgOS40IDM0bDE4LjggMzEuM2MxLjEgMS44IDEuMiAzLjEgMSA0LjJjLS4yIDEuMi0uOCAyLjUtMiAzLjZzLTIuNCAxLjgtMy42IDJjLTEgLjItMi40IC4xLTQuMi0xbC0zMS4zLTE4LjhjLTEwLjMtNi4yLTIyLTkuNC0zNC05LjRsLTQuOSAwQzI3LjQgMTQ0IDAgMTcxLjQgMCAyMDUuM2MwIDE2LjIgNi41IDMxLjggMTcuOSA0My4zbDEuMiAxLjJjMy40IDMuNCAzLjQgOSAwIDEyLjRsLTEuMiAxLjJDNi41IDI3NC45IDAgMjkwLjUgMCAzMDYuN0MwIDM0MC42IDI3LjQgMzY4IDYxLjMgMzY4bDQuOSAwYzEyIDAgMjMuNy0zLjMgMzQtOS40bDMxLjMtMTguOGMxLjgtMS4xIDMuMS0xLjIgNC4yLTFjMS4yIC4yIDIuNSAuOCAzLjYgMnMxLjggMi40IDIgMy42Yy4yIDEgLjEgMi40LTEgNC4ybC0xOC44IDMxLjNjLTYuMiAxMC4zLTkuNCAyMi05LjQgMzRsMCA0LjljMCAzMy44IDI3LjQgNjEuMyA2MS4zIDYxLjNjMTYuMiAwIDMxLjgtNi41IDQzLjMtMTcuOWwxLjItMS4yYzMuNC0zLjQgOS0zLjQgMTIuNCAwbDEuMiAxLjJjMTEuNSAxMS41IDI3LjEgMTcuOSA0My4zIDE3LjljMzMuOCAwIDYxLjMtMjcuNCA2MS4zLTYxLjNsMC00LjljMC0xMi0zLjMtMjMuNy05LjQtMzRsLTE4LjgtMzEuM2MtMS4xLTEuOC0xLjItMy4xLTEtNC4yYy4yLTEuMiAuOC0yLjUgMi0zLjZzMi40LTEuOCAzLjYtMmMxLS4yIDIuNC0uMSA0LjIgMWwzMS4zIDE4LjhjMTAuMyA2LjIgMjIgOS40IDM0IDkuNGw0LjkgMGMzMy44IDAgNjEuMy0yNy40IDYxLjMtNjEuM2MwLTE2LjItNi41LTMxLjgtMTcuOS00My4zbC0xLjItMS4yYy0zLjQtMy40LTMuNC05IDAtMTIuNGwxLjItMS4yYzExLjUtMTEuNSAxNy45LTI3LjEgMTcuOS00My4zYzAtMzMuOC0yNy40LTYxLjMtNjEuMy02MS4zbC00LjkgMGMtMTIgMC0yMy43IDMuMy0zNCA5LjRsLTMxLjMgMTguOGMtMS44IDEuMS0zLjEgMS4yLTQuMiAxYy0xLjItLjItMi41LS44LTMuNi0ycy0xLjgtMi40LTItMy42Yy0uMi0xLS4xLTIuNCAxLTQuMmwxOC44LTMxLjNjNi4yLTEwLjMgOS40LTIyIDkuNC0zNGwwLTQuOUMzMzYgNTkuNCAzMDguNiAzMiAyNzQuNyAzMmMtMTYuMiAwLTMxLjggNi41LTQzLjMgMTcuOWwtMS4yIDEuMmMtMy40IDMuNC05IDMuNC0xMi40IDBsLTEuMi0xLjJ6XCJdXG59O1xuY29uc3QgZmFSZXBseSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBseScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNzE0LCBcIm1haWwtcmVwbHlcIl0sIFwiZjNlNVwiLCBcIk0yMDUgMzQuOGMxMS41IDUuMSAxOSAxNi42IDE5IDI5LjJsMCA2NCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NmMwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjFjLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45Yy0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43YzAtNy41IDQuMy0xNC40IDkuOC0xOS41YzkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuN2MwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgNjRjMCAxMi42LTcuNCAyNC4xLTE5IDI5LjJzLTI1IDMtMzQuNC01LjRsLTE2MC0xNDRDMy45IDIyNS43IDAgMjE3LjEgMCAyMDhzMy45LTE3LjcgMTAuNi0yMy44bDE2MC0xNDRjOS40LTguNSAyMi45LTEwLjYgMzQuNC01LjR6XCJdXG59O1xuY29uc3QgZmFNYWlsUmVwbHkgPSBmYVJlcGx5O1xuY29uc3QgZmFTdGFyQW5kQ3Jlc2NlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1hbmQtY3Jlc2NlbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzcwXSwgXCJmNjk5XCIsIFwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMGMzMyAwIDY0LjYgNi4zIDkzLjYgMTcuN2M3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41Yy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNWM3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44elwiXVxufTtcbmNvbnN0IGZhSG91c2VGaXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZpcmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGNcIiwgXCJNMjg4IDM1MC4xbDAgMS45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjQgMCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQgMC0zMS45IDBjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMmwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0uOSAwLTEuOSAuMS0yLjhsMC02OS43LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ0Ny4zIDEyOC4xYy0xMi4zLTEtMjUgMy0zNC44IDExLjdjLTM1LjQgMzEuNi02NS42IDY3LjctODcuMyAxMDIuOEMzMDQuMyAyNzYuNSAyODggMzE0LjkgMjg4IDM1MC4xek00ODAgNTEyYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTc2LjcgNjIuNS0xNDQuNyAxMDcuMi0xNzkuNGM1LTMuOSAxMC45LTUuOCAxNi44LTUuOGM3LjktLjEgMTYgMy4xIDIyIDkuMmw0NiA0NiAxMS4zLTExLjNjMTEuNy0xMS43IDMwLjYtMTIuNyA0Mi4zLTFDNjI0LjUgMjY4IDY0MCAzMjAuMiA2NDAgMzUyYzAgODguNC03MS42IDE2MC0xNjAgMTYwem02NC0xMTEuOGMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMzI3LjEgNDE2IDM2My42IDQxNiA0MDAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLW1pbnVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE3NjcsIFwibWludXMtc3F1YXJlXCJdLCBcImYxNDZcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggMjAwbDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYU1pbnVzU3F1YXJlID0gZmFTcXVhcmVNaW51cztcbmNvbnN0IGZhSGVsaWNvcHRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWxpY29wdGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjQxXSwgXCJmNTMzXCIsIFwiTTEyOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw1NDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzODQgNjRsMCA2NCAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwLTY0IDBjLTIwLjEgMC0zOS4xLTkuNS01MS4yLTI1LjZsLTcxLjQtOTUuMmMtMy41LTQuNy04LjMtOC4zLTEzLjctMTAuNUw0Ny4yIDE5OC4xYy05LjUtMy44LTE2LjctMTItMTkuMi0yMkw1IDgzLjlDMi40IDczLjggMTAuMSA2NCAyMC41IDY0TDQ4IDY0YzEwLjEgMCAxOS42IDQuNyAyNS42IDEyLjhMMTEyIDEyOGwyMDggMCAwLTY0TDE2MCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTM4NCAzMjBsMTI4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgMTI4ek02MzAuNiA0MjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMy45IDMuOWMtMjQgMjQtNTYuNiAzNy41LTkwLjUgMzcuNUwyNTYgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDI4MC4yIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMy45LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHpcIl1cbn07XG5jb25zdCBmYUNvbXBhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxN10sIFwiZjE0ZVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDYXJldERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS1kb3duXCJdLCBcImYxNTBcIiwgXCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45czEyLjUtMTQuNCAyMi0xNC40bDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6XCJdXG59O1xuY29uc3QgZmFDYXJldFNxdWFyZURvd24gPSBmYVNxdWFyZUNhcmV0RG93bjtcbmNvbnN0IGZhRmlsZUNpcmNsZVF1ZXN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGVmXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTM2OCAzMjEuNmwwIDYuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNi40YzAtNS4zIDQuMy05LjYgOS42LTkuNmw0MC41IDBjNy43IDAgMTMuOSA2LjIgMTMuOSAxMy45YzAgNS4yLTIuOSA5LjktNy40IDEyLjNsLTMyIDE2LjhjLTUuMyAyLjgtOC42IDguMi04LjYgMTQuMmwwIDE0LjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTUuMSAyMy41LTEyLjNjMTUuMS03LjkgMjQuNS0yMy42IDI0LjUtNDAuNmMwLTI1LjQtMjAuNi00NS45LTQ1LjktNDUuOWwtNDAuNSAwYy0yMyAwLTQxLjYgMTguNi00MS42IDQxLjZ6XCJdXG59O1xuY29uc3QgZmFMYXB0b3BDb2RlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhcHRvcC1jb2RlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWZjXCIsIFwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2LTY0IDAgMC0yNTZMMTI4IDk2bDAgMjU2LTY0IDBMNjQgOTZ6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmMwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6XCJdXG59O1xuY29uc3QgZmFTd2F0Y2hib29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N3YXRjaGJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YzNcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzODRjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZMMCAzMnpNMjIzLjYgNDI1LjljLjMtMy4zIC40LTYuNiAuNC05LjlsMC0yNjIgNzUuNC03NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDkwLjUgOTAuNWMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMjMuNiA0MjUuOXpNMTgyLjggNTEybDE5Mi0xOTJMNDgwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjk3LjIgMHpNMTI4IDY0TDY0IDY0bDAgNjQgNjQgMCAwLTY0ek02NCAxOTJsMCA2NCA2NCAwIDAtNjQtNjQgMHpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYVByZXNjcmlwdGlvbkJvdHRsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcmVzY3JpcHRpb24tYm90dGxlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDg1XCIsIFwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyem0zMiA5NmwzMjAgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMzg0bDAtNjQgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMjg4bDAtNjQgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMzIgMTkybDAtNjR6XCJdXG59O1xuY29uc3QgZmFCYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhcnMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcIm5hdmljb25cIl0sIFwiZjBjOVwiLCBcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhTmF2aWNvbiA9IGZhQmFycztcbmNvbnN0IGZhUGVvcGxlR3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWdyb3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTMzXCIsIFwiTTcyIDg4YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDcyIDg4ek02NCAyNDUuN0M1NCAyNTYuOSA0OCAyNzEuOCA0OCAyODhzNiAzMS4xIDE2IDQyLjNsMC04NC43em0xNDQuNC00OS4zQzE3OC43IDIyMi43IDE2MCAyNjEuMiAxNjAgMzA0YzAgMzQuMyAxMiA2NS44IDMyIDkwLjVsMCAyMS41YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI2LjhDMjYuMiAzNzEuMiAwIDMzMi43IDAgMjg4YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDMyIDBjMjQgMCA0Ni4yIDcuNSA2NC40IDIwLjN6TTQ0OCA0MTZsMC0yMS41YzIwLTI0LjcgMzItNTYuMiAzMi05MC41YzAtNDIuOC0xOC43LTgxLjMtNDguNC0xMDcuN0M0NDkuOCAxODMuNSA0NzIgMTc2IDQ5NiAxNzZsMzIgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmMwIDQ0LjctMjYuMiA4My4yLTY0IDEwMS4ybDAgMjYuOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTgtMzI4YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDQ1NiA4OHpNNTc2IDI0NS43bDAgODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTMyMCAzMmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjQwIDMwNGMwIDE2LjIgNiAzMSAxNiA0Mi4zbDAtODQuN2MtMTAgMTEuMy0xNiAyNi4xLTE2IDQyLjN6bTE0NC00Mi4zbDAgODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTQ0OCAzMDRjMCA0NC43LTI2LjIgODMuMi02NCAxMDEuMmwwIDQyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDIuOGMtMzcuOC0xOC02NC01Ni41LTY0LTEwMS4yYzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDMyIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJ6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NFbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91cmdsYXNzLWVuZCcsXG4gIGljb246IFszODQsIDUxMiwgWzg5ODcsIFwiaG91cmdsYXNzLTNcIl0sIFwiZjI1M1wiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xTDE0Ni43IDI1NiA3OC45IDMyMy45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAyNTYgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xTDIzNy4zIDI1Nmw2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMCA2NCAwIDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUwxOTIgMjEwLjdsLTY3LjktNjcuOUMxMDYuMSAxMjQuOSA5NiAxMDAuNCA5NiA3NXpcIl1cbn07XG5jb25zdCBmYUhvdXJnbGFzczMgPSBmYUhvdXJnbGFzc0VuZDtcbmNvbnN0IGZhSGVhcnRDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jcmFjaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0OCwgXCJoZWFydC1icm9rZW5cIl0sIFwiZjdhOVwiLCBcIk0xMTkuNCA0NC4xYzIzLjMtMy45IDQ2LjgtMS45IDY4LjYgNS4zbDQ5LjggNzcuNS03NS40IDc1LjRjLTEuNSAxLjUtMi40IDMuNi0yLjMgNS44czEgNC4yIDIuNiA1LjdsMTEyIDEwNGMyLjkgMi43IDcuNCAyLjkgMTAuNSAuM3MzLjgtNyAxLjctMTAuNGwtNjAuNC05OC4xIDkwLjctNzUuNmMyLjYtMi4xIDMuNS01LjcgMi40LTguOEwyOTYuOCA2MS44YzI4LjUtMTYuNyA2Mi40LTIzLjIgOTUuNy0xNy42QzQ2MS41IDU1LjYgNTEyIDExNS4yIDUxMiAxODUuMWwwIDUuOGMwIDQxLjUtMTcuMiA4MS4yLTQ3LjYgMTA5LjVMMjgzLjcgNDY5LjFjLTcuNSA3LTE3LjQgMTAuOS0yNy43IDEwLjlzLTIwLjItMy45LTI3LjctMTAuOUw0Ny42IDMwMC40QzE3LjIgMjcyLjEgMCAyMzIuNCAwIDE5MC45bDAtNS44YzAtNjkuOSA1MC41LTEyOS41IDExOS40LTE0MXpcIl1cbn07XG5jb25zdCBmYUhlYXJ0QnJva2VuID0gZmFIZWFydENyYWNrO1xuY29uc3QgZmFTcXVhcmVVcFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS11cC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg1OTksIFwiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0XCJdLCBcImYzNjBcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTYwIDE2MGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDQwIDQwLTcxIDcxQzExNCAzMDIgMTEyIDMwNi45IDExMiAzMTJzMiAxMCA1LjcgMTMuN2wzNi43IDM2LjdjMy42IDMuNiA4LjUgNS43IDEzLjcgNS43czEwLTIgMTMuNy01LjdsNzEtNzEgNDAgNDBjNC42IDQuNiAxMS41IDUuOSAxNy40IDMuNXM5LjktOC4zIDkuOS0xNC44bDAtMTQ0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTQ0IDB6XCJdXG59O1xuY29uc3QgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQgPSBmYVNxdWFyZVVwUmlnaHQ7XG5jb25zdCBmYUZhY2VLaXNzQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWtpc3MtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzNywgXCJraXNzLWJlYW1cIl0sIFwiZjU5N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNDguNy0xOTguM2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQ0My4xIDI1Ny40IDQ0OCAyNDAgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMWMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2MwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMSAuMy0uMiAuNi0uNGMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjQtLjMtLjUtLjMtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6bS04Ny4xLTg0LjlzMCAwIDAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHptMTYwIDBjMCAwIDAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHpcIl1cbn07XG5jb25zdCBmYUtpc3NCZWFtID0gZmFGYWNlS2lzc0JlYW07XG5jb25zdCBmYUZpbG0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkwMl0sIFwiZjAwOFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTM2OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzY4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek00MTYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwelwiXVxufTtcbmNvbnN0IGZhUnVsZXJIb3Jpem9udGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bGVyLWhvcml6b250YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1NDdcIiwgXCJNMCAzMzZjMCAyNi41IDIxLjUgNDggNDggNDhsNTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzM2elwiXVxufTtcbmNvbnN0IGZhUGVvcGxlUm9iYmVyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtcm9iYmVyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUzNlwiLCBcIk00ODguMiA1OS4xQzQ3OC4xIDk5LjYgNDQxLjcgMTI4IDQwMCAxMjhzLTc4LjEtMjguNC04OC4yLTY4LjlMMzAzIDI0LjJDMjk4LjggNy4xIDI4MS40LTMuMyAyNjQuMiAxUzIzNi43IDIyLjYgMjQxIDM5LjhsOC43IDM0LjljMTEgNDQgNDAuMiA3OS42IDc4LjMgOTkuNkwzMjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA1LjdjMzguMS0yMCA2Ny4zLTU1LjYgNzguMy05OS42TDU1OSAzOS44YzQuMy0xNy4xLTYuMS0zNC41LTIzLjMtMzguOFM1MDEuMiA3LjEgNDk3IDI0LjJsLTguNyAzNC45ek00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek04MCA5NkE0OCA0OCAwIDEgMCA4MCAwYTQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDAgLjZMOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjcuMyAxMyAyMC41YzUuOSA5LjIgMTYuMSAxNC45IDI3IDE0LjlsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzAuNCAwLTM3LjQtNTguOUMxNTcuNiAxNDIgMTMyLjEgMTI4IDEwNC43IDEyOEw3MiAxMjh6XCJdXG59O1xuY29uc3QgZmFMaWdodGJ1bGIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlnaHRidWxiJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MTYxXSwgXCJmMGViXCIsIFwiTTI3MiAzODRjOS42LTMxLjkgMjkuNS01OS4xIDQ5LjItODYuMmMwIDAgMCAwIDAgMGM1LjItNy4xIDEwLjQtMTQuMiAxNS40LTIxLjRjMTkuOC0yOC41IDMxLjQtNjMgMzEuNC0xMDAuM0MzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgMzcuMyAxMS42IDcxLjkgMzEuNCAxMDAuM2M1IDcuMiAxMC4yIDE0LjMgMTUuNCAyMS40YzAgMCAwIDAgMCAwYzE5LjggMjcuMSAzOS43IDU0LjQgNDkuMiA4Ni4ybDE2MCAwek0xOTIgNTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTYtMTYwIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHpNMTEyIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFDYXJldExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtbGVmdCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjBkOVwiLCBcIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlzMTkuOCAxNi42IDE5LjggMjkuNmwwIDI1NmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjbGFtYXRpb24tY2lyY2xlXCJdLCBcImYwNmFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzg0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFFeGNsYW1hdGlvbkNpcmNsZSA9IGZhQ2lyY2xlRXhjbGFtYXRpb247XG5jb25zdCBmYVNjaG9vbENpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjaG9vbC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NmRcIiwgXCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTYgNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI3MiAwczAgMCAwIDBsLTY0IDAgMC05NmMwLTM1LjMgMjguNy02NCA2NC02NGwuMyAwIC41IDBjMy40LTM3LjcgMTguNy03Mi4xIDQyLjItOTkuMUMzNTAuMiAyNjAgMzM1LjYgMjY0IDMyMCAyNjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4czM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDE4LjMtNS42IDM1LjMtMTUuMSA0OS40YzI5LTIxIDY0LjYtMzMuNCAxMDMuMS0zMy40YzU5LjUgMCAxMTIuMSAyOS42IDE0NCA3NC44TDY0MCAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDczLjcgOTYgMzM3LjggNS40ek05NiAxOTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnptMCAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMzIwIDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDM2OHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRGcm9tQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNpZ24tb3V0XCJdLCBcImYwOGJcIiwgXCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6TTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpcIl1cbn07XG5jb25zdCBmYVNpZ25PdXQgPSBmYUFycm93UmlnaHRGcm9tQnJhY2tldDtcbmNvbnN0IGZhQ2lyY2xlQ2hldnJvbkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWNoZXZyb24tZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2hldnJvbi1jaXJjbGUtZG93blwiXSwgXCJmMTNhXCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTM1IDI0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDg3IDg3IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMzUgMjQxelwiXVxufTtcbmNvbnN0IGZhQ2hldnJvbkNpcmNsZURvd24gPSBmYUNpcmNsZUNoZXZyb25Eb3duO1xuY29uc3QgZmFVbmxvY2tLZXlob2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VubG9jay1rZXlob2xlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ1bmxvY2stYWx0XCJdLCBcImYxM2VcIiwgXCJNMjI0IDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDQ4IDI0MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMCAwLTQ4QzgwIDY0LjUgMTQ0LjUgMCAyMjQgMGM1Ny41IDAgMTA3IDMzLjcgMTMwLjEgODIuM2M3LjYgMTYgLjggMzUuMS0xNS4yIDQyLjZzLTM1LjEgLjgtNDIuNi0xNS4yQzI4My40IDgyLjYgMjU1LjkgNjQgMjI0IDY0em0zMiAzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMHpcIl1cbn07XG5jb25zdCBmYVVubG9ja0FsdCA9IGZhVW5sb2NrS2V5aG9sZTtcbmNvbnN0IGZhQ2xvdWRTaG93ZXJzSGVhdnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc2hvd2Vycy1oZWF2eScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc0MFwiLCBcIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTZjMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjJDNjQuNyAxMjYuMSA2NCAxMTkuMSA2NCAxMTJDNjQgNTAuMSAxMTQuMSAwIDE3NiAwYzQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MGMxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS41LS42IDEwLjgtMS42IDE2Yy41IDAgMS4xIDAgMS42IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwek04MS41IDM1My45YzEyLjIgNS4yIDE3LjggMTkuMyAxMi42IDMxLjVsLTQ4IDExMmMtNS4yIDEyLjItMTkuMyAxNy44LTMxLjUgMTIuNlMtMy4zIDQ5MC43IDEuOSA0NzguNWw0OC0xMTJjNS4yLTEyLjIgMTkuMy0xNy44IDMxLjUtMTIuNnptMTIwIDBjMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42em0yNDQuNiAzMS41bC00OCAxMTJjLTUuMiAxMi4yLTE5LjMgMTcuOC0zMS41IDEyLjZzLTE3LjgtMTkuMy0xMi42LTMxLjVsNDgtMTEyYzUuMi0xMi4yIDE5LjMtMTcuOCAzMS41LTEyLjZzMTcuOCAxOS4zIDEyLjYgMzEuNXpNMzEzLjUgMzUzLjljMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42elwiXVxufTtcbmNvbnN0IGZhSGVhZHBob25lc1NpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkcGhvbmVzLXNpbXBsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhZHBob25lcy1hbHRcIl0sIFwiZjU4ZlwiLCBcIk0yNTYgODBDMTQxLjEgODAgNDggMTczLjEgNDggMjg4bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0TDAgMjg4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOHpNODAgMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjR6bTI4OC02NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNiAwelwiXVxufTtcbmNvbnN0IGZhSGVhZHBob25lc0FsdCA9IGZhSGVhZHBob25lc1NpbXBsZTtcbmNvbnN0IGZhU2l0ZW1hcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaXRlbWFwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMGU4XCIsIFwiTTIwOCA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTggMCAwIDQwIDE1MiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMzIgOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTY0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsOCAwIDAtMzJjMC00LjQtMy42LTgtOC04bC0xNTIgMCAwIDQwIDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02NCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDggMCAwLTQwLTE1MiAwYy00LjQgMC04IDMuNi04IDhsMCAzMiA4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTI2LjUgMjEuNS00OCA0OC00OGw4IDAgMC0zMmMwLTMwLjkgMjUuMS01NiA1Ni01NmwxNTIgMCAwLTQwLTggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZURvbGxhclRvU2xvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtZG9sbGFyLXRvLXNsb3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRvbmF0ZVwiXSwgXCJmNGI5XCIsIFwiTTMyNi43IDQwMy43Yy0yMi4xIDgtNDUuOSAxMi4zLTcwLjcgMTIuM3MtNDguNy00LjQtNzAuNy0xMi4zbC0uOC0uM2MtMzAtMTEtNTYuOC0yOC43LTc4LjYtNTEuNEM3MCAzMTQuNiA0OCAyNjMuOSA0OCAyMDhDNDggOTMuMSAxNDEuMSAwIDI1NiAwUzQ2NCA5My4xIDQ2NCAyMDhjMCA1NS45LTIyIDEwNi42LTU3LjkgMTQ0Yy0xIDEtMiAyLjEtMyAzLjFjLTIxLjQgMjEuNC00Ny40IDM4LjEtNzYuMyA0OC42ek0yNTYgOTEuOWMtMTEuMSAwLTIwLjEgOS0yMC4xIDIwLjFsMCA2Yy01LjYgMS4yLTEwLjkgMi45LTE1LjkgNS4xYy0xNSA2LjgtMjcuOSAxOS40LTMxLjEgMzcuN2MtMS44IDEwLjItLjggMjAgMy40IDI5YzQuMiA4LjggMTAuNyAxNSAxNy4zIDE5LjVjMTEuNiA3LjkgMjYuOSAxMi41IDM4LjYgMTZsMi4yIC43YzEzLjkgNC4yIDIzLjQgNy40IDI5LjMgMTEuN2MyLjUgMS44IDMuNCAzLjIgMy43IDRjLjMgLjggLjkgMi42IC4yIDYuN2MtLjYgMy41LTIuNSA2LjQtOCA4LjhjLTYuMSAyLjYtMTYgMy45LTI4LjggMS45Yy02LTEtMTYuNy00LjYtMjYuMi03LjljMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy0yLjItLjctNC4zLTEuNS02LjQtMi4xYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjdzMi4yIDIxLjggMTIuNyAyNS4zYzEuMiAuNCAyLjcgLjkgNC40IDEuNWM3LjkgMi43IDIwLjMgNi45IDI5LjggOS4xbDAgNi40YzAgMTEuMSA5IDIwLjEgMjAuMSAyMC4xczIwLjEtOSAyMC4xLTIwLjFsMC01LjVjNS4zLTEgMTAuNS0yLjUgMTUuNC00LjZjMTUuNy02LjcgMjguNC0xOS43IDMxLjYtMzguN2MxLjgtMTAuNCAxLTIwLjMtMy0yOS40Yy0zLjktOS0xMC4yLTE1LjYtMTYuOS0yMC41Yy0xMi4yLTguOC0yOC4zLTEzLjctNDAuNC0xNy40bC0uOC0uMmMtMTQuMi00LjMtMjMuOC03LjMtMjkuOS0xMS40Yy0yLjYtMS44LTMuNC0zLTMuNi0zLjVjLS4yLS4zLS43LTEuNi0uMS01Yy4zLTEuOSAxLjktNS4yIDguMi04LjFjNi40LTIuOSAxNi40LTQuNSAyOC42LTIuNmM0LjMgLjcgMTcuOSAzLjMgMjEuNyA0LjNjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTQuNC0xLjItMTQuNC0zLjItMjEtNC40bDAtNi4zYzAtMTEuMS05LTIwLjEtMjAuMS0yMC4xek00OCAzNTJsMTYgMGMxOS41IDI1LjkgNDQgNDcuNyA3Mi4yIDY0TDY0IDQxNmwwIDMyIDE5MiAwIDE5MiAwIDAtMzItNzIuMiAwYzI4LjItMTYuMyA1Mi44LTM4LjEgNzIuMi02NGwxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhRG9uYXRlID0gZmFDaXJjbGVEb2xsYXJUb1Nsb3Q7XG5jb25zdCBmYU1lbW9yeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZW1vcnknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MzhcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRjMCA2LjggNC40IDEyLjYgMTAuMSAxNi4zQzIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZMMCAzMjBsNTc2IDAgMC03MS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuM0M1NTIuNyAyMjMuNyA1NDQgMjA4LjkgNTQ0IDE5MnM4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTU3NiAzNTJMMCAzNTJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDMyIDk2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMzIgOTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMiA5NiAwIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDMyIDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NHpNMTkyIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhUm9hZFNwaWtlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkLXNwaWtlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2OFwiLCBcIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUwxOTIgMjU2bDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlMMzIwIDI1NmwwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDQ0OCAyNTZsMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjctMjYuNiA0OS43TDUxMiAzNTJsLTY0IDAtNjQgMC02NCAwLTY0IDAtNjQgMEw2NCAzNTJsMC0yMzUuMnpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZpcmVCdXJuZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZS1idXJuZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZjFcIiwgXCJNMzQ1LjcgNDguM0wzNTggMzQuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45YzcuMiAwIDE0LjMgMi42IDE5LjkgNy44YzE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNkM0NjkgMTMxLjIgNDgwIDE2Mi4yIDQ4MCAxOTIuMkM0ODAgMjgwLjggNDA4LjcgMzUyIDMyMCAzNTJjLTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjhjMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNWMyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjJDMjczLjQgMi4zIDI4MC43LS4yIDI4OCAwYzE0LjEgLjMgMjMuOCAxMS40IDMyLjcgMjEuNmMwIDAgMCAwIDAgMGMyIDIuMyA0IDQuNiA2IDYuN2wxOSAxOS45ek0zODQgMjQwLjJjMC0zNi41LTM3LTczLTU0LjgtODguNGMtNS40LTQuNy0xMy4xLTQuNy0xOC41IDBDMjkzIDE2Ny4xIDI1NiAyMDMuNiAyNTYgMjQwLjJjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNMzIgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NCA0NDggMCAwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTk2ek0zMjAgNDgwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTYwLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE5MiA0ODBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTg4LCA2MTcyNV0sIFwiZjAyNFwiLCBcIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNjQgMCAzNjggMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCA2NC4zLTE2LjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjRjNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDBjLTM1LjEtMTcuNi03NS40LTIyLTExMy41LTEyLjVMNjQgNDhsMC0xNnpcIl1cbn07XG5jb25zdCBmYUhhbnVraWFoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbnVraWFoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MzM0XSwgXCJmNmU2XCIsIFwiTTMxNC4yIDMuM0MzMDkuMSAxMi4xIDI5NiAzNi42IDI5NiA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzMyNC42IDEuMiAzMjIuNCAwIDMyMCAwcy00LjYgMS4yLTUuOCAzLjN6bS0yODggNDhDMjEuMSA2MC4xIDggODQuNiA4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43QzM2LjYgNDkuMiAzNC40IDQ4IDMyIDQ4cy00LjYgMS4yLTUuOCAzLjN6TTg4IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN0MxNjUuMSA2MC4xIDE1MiA4NC42IDE1MiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzIyOS4xIDYwLjEgMjE2IDg0LjYgMjE2IDEwNHpNMzk0LjIgNTEuM0MzODkuMSA2MC4xIDM3NiA4NC42IDM3NiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNDQwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzQ1My4xIDYwLjEgNDQwIDg0LjYgNDQwIDEwNHptODIuMi01Mi43QzUxNy4xIDYwLjEgNTA0IDg0LjYgNTA0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek01ODQgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjdjLTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCA5NiAwIDE2IDMyIDAgMC0xNiAwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTYgMCAxNiAzMiAwIDAtMTYgMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2IDAgMTYgMzIgMCAwLTE2IDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTYgMCAxNiAzMiAwIDAtMTYgMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2IDAgMTYgMzIgMCAwLTE2IDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA5NiAwIDE2IDMyIDAgMC0xNiAwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Nkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwIDAgNjQtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtNjQgMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwIDAtMTc2elwiXVxufTtcbmNvbnN0IGZhRmVhdGhlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZWF0aGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NzE4XSwgXCJmNTJkXCIsIFwiTTI3OC41IDIxNS42TDIzIDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDY4IDBjNDkuNyAwIDk3LjktMTQuNCAxMzktNDFjMTEuMS03LjIgNS41LTIzLTcuOC0yM2MtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw4MS0yNC4zYzIuNS0uOCA0LjgtMi4xIDYuNy00bDIyLjQtMjIuNGMxMC4xLTEwLjEgMi45LTI3LjMtMTEuMy0yNy4zbC0zMi4yIDBjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsMTEyLTMzLjZjNC0xLjIgNy40LTMuOSA5LjMtNy43QzUwNi40IDIwNy42IDUxMiAxODQuMSA1MTIgMTYwYzAtNDEtMTYuMy04MC4zLTQ1LjMtMTA5LjNsLTUuNS01LjVDNDMyLjMgMTYuMyAzOTMgMCAzNTIgMHMtODAuMyAxNi4zLTEwOS4zIDQ1LjNMMTM5IDE0OUM5MSAxOTcgNjQgMjYyLjEgNjQgMzMwbDAgNTUuM0wyNTMuNiAxOTUuOGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGM1LjQgNS40IDYuMSAxMy42IDIuMiAxOS44elwiXVxufTtcbmNvbnN0IGZhVm9sdW1lTG93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS1sb3cnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyNjQsIFwidm9sdW1lLWRvd25cIl0sIFwiZjAyN1wiLCBcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQxMi42IDE4MS41QzQzNC4xIDE5OS4xIDQ0OCAyMjUuOSA0NDggMjU2cy0xMy45IDU2LjktMzUuNCA3NC41Yy0xMC4zIDguNC0yNS40IDYuOC0zMy44LTMuNXMtNi44LTI1LjQgMy41LTMzLjhDMzkzLjEgMjg0LjQgNDAwIDI3MSA0MDAgMjU2cy02LjktMjguNC0xNy43LTM3LjNjLTEwLjMtOC40LTExLjgtMjMuNS0zLjUtMzMuOHMyMy41LTExLjggMzMuOC0zLjV6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVEb3duID0gZmFWb2x1bWVMb3c7XG5jb25zdCBmYUNvbW1lbnRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGIzXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTEyLjkgMzc2LjdDNTUyLjIgMzQwLjIgNTc2IDI5Mi4zIDU3NiAyNDBDNTc2IDEyNS4xIDQ2MS40IDMyIDMyMCAzMmMtNjcuNyAwLTEyOS4zIDIxLjQtMTc1LjEgNTYuM0wzOC44IDUuMXptMzg1LjIgNDI1TDgyLjkgMTYxLjNDNzAuNyAxODUuNiA2NCAyMTIuMiA2NCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuM2MwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45YzM3IDAgNzIuMy02LjQgMTA0LjEtMTcuOXpcIl1cbn07XG5jb25zdCBmYUNsb3VkU3VuUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zdW4tcmFpbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzc4Ml0sIFwiZjc0M1wiLCBcIk0yOTQuMiAxLjJjNS4xIDIuMSA4LjcgNi43IDkuNiAxMi4xbDEwLjQgNjIuNGMtMjMuMyAxMC44LTQyLjkgMjguNC01NiA1MC4zYy0xNC42LTktMzEuOC0xNC4xLTUwLjItMTQuMWMtNTMgMC05NiA0My05NiA5NmMwIDM1LjUgMTkuMyA2Ni42IDQ4IDgzLjJjLjggMzEuOCAxMy4yIDYwLjcgMzMuMSA4Mi43bC01NiAzOS4yYy00LjUgMy4yLTEwLjMgMy44LTE1LjQgMS42cy04LjctNi43LTkuNi0xMi4xTDk4LjEgMzE3LjkgMTMuNCAzMDMuOGMtNS40LS45LTEwLTQuNS0xMi4xLTkuNnMtMS41LTEwLjkgMS42LTE1LjRMNTIuNSAyMDggMi45IDEzNy4yYy0zLjItNC41LTMuOC0xMC4zLTEuNi0xNS40czYuNy04LjcgMTIuMS05LjZMOTguMSA5OC4xbDE0LjEtODQuN2MuOS01LjQgNC41LTEwIDkuNi0xMi4xczEwLjktMS41IDE1LjQgMS42TDIwOCA1Mi41IDI3OC44IDIuOWM0LjUtMy4yIDEwLjMtMy44IDE1LjQtMS42ek0yMDggMTQ0YzEzLjggMCAyNi43IDQuNCAzNy4xIDExLjljLTEuMiA0LjEtMi4yIDguMy0zIDEyLjZjLTM3LjkgMTQuNi02Ny4yIDQ2LjYtNzcuOCA4Ni40QzE1MS44IDI0My4xIDE0NCAyMjYuNSAxNDQgMjA4YzAtMzUuMyAyOC43LTY0IDY0LTY0em02OS40IDI3NmMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em05NiAwYzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6bTk2IDBjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3ptOTYgMGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em03NC41LTExNi4xYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yNzEuOSAwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJdXG59O1xuY29uc3QgZmFDb21wcmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wcmVzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2NlwiLCBcIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYVdoZWF0QXduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wid2hlYXQtYWx0XCJdLCBcImUyY2RcIiwgXCJNNTA1IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzgzIDk1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODgtODh6TTMwNS41IDI3LjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI3MS41IDM4LjZjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xMS4zIDExLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44TDEwMS44IDIzMWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNjcuOSAyNDIuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNEw5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguOS02OC45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMzcuNSAzNy41IDk4LjMgMzcuNSAxMzUuOCAwbDExLjMtMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTEuMy0xMS4zYy0yMS44LTIxLjgtNDkuNi0zNC4xLTc4LjEtMzYuOWwzMS45LTMxLjkgMTIuMiAxMi4yYzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMEw0ODYuNSAyMzFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNDc1LjIgMTk3Yy01LjItNS4yLTEwLjYtOS44LTE2LjQtMTMuOUw1MDUgMTM3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU5LjQgNTkuNGMtMjAuNi00LjQtNDItMy43LTYyLjMgMi4xYzYuMS0yMS4zIDYuNi00My44IDEuNC02NS4zTDQwOSA0MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDMyOS4xIDUyLjljLTMuNy01LTcuOC05LjgtMTIuNC0xNC4zTDMwNS41IDI3LjN6XCJdXG59O1xuY29uc3QgZmFXaGVhdEFsdCA9IGZhV2hlYXRBd247XG5jb25zdCBmYUFua2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5raCcsXG4gIGljb246IFszMjAsIDUxMiwgWzk3NjVdLCBcImY2NDRcIiwgXCJNOTYgMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRjMCA0MS42LTIwLjcgNzYuNi00Ni42IDEwNC4xYy01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjdjLTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuN0MxMTYuNyAyMDQuNiA5NiAxNjkuNiA5NiAxMjh6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOGMwIDUyLjQgMjEuNSA5NS41IDQ2LjggMTI4TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwYzI1LjQtMzIuNSA0Ni44LTc1LjYgNDYuOC0xMjhDMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRzSG9sZGluZ0NoaWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWhvbGRpbmctY2hpbGQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZmFcIiwgXCJNMzIwIDBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem00NC43IDE2NC4zTDM3NS44IDI1M2MxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjhMMjU1LjUgMTgxYy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDEwNC44IDI5NS4zIDk2IDMyMCA5NnM0OC43IDguOCA2Ny42IDI0LjdsMjcuOSAyMy42YzEwLjEgOC42IDExLjQgMjMuNyAyLjggMzMuOHMtMjMuNyAxMS40LTMzLjggMi44bC0xOS44LTE2Ljd6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDAgMCA4MCAwIDQwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xYzEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDMyIDMyIDE1LjIgMTUuMmMwIDAgMCAwIDAgMGwyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAyMjRsMC02NCAwLTU2QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDU2IDAgNjQgMCAxMDEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuM2MwIDAgMCAwIDAgMGwxNS4yLTE1LjIgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzItMTUuMiAxNS4yYy0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOGM5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTQwLjIgMC04MCAwLTQwYzAtMjIuMSAxNy45LTQwIDQwLTQwelwiXVxufTtcbmNvbnN0IGZhQXN0ZXJpc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXN0ZXJpc2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMDAzMywgNjE1NDVdLCBcIjJhXCIsIFwiTTE5MiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzNS41IDExMS41LTY2LjljMTUuMi05LjEgMzQuOC00LjIgNDMuOSAxMXM0LjIgMzQuOC0xMSA0My45TDI1NC4yIDI1NmwxMTQuMyA2OC42YzE1LjIgOS4xIDIwLjEgMjguNyAxMSA0My45cy0yOC43IDIwLjEtNDMuOSAxMUwyMjQgMzEyLjUgMjI0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEzNS41TDQ4LjUgMzc5LjRjLTE1LjIgOS4xLTM0LjggNC4yLTQzLjktMTFzLTQuMi0zNC44IDExLTQzLjlMMTI5LjggMjU2IDE1LjUgMTg3LjRjLTE1LjItOS4xLTIwLjEtMjguNy0xMS00My45czI4LjctMjAuMSA0My45LTExTDE2MCAxOTkuNSAxNjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2hlY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NzQ1LCA5OTg5LCA2MTUxMCwgXCJjaGVjay1zcXVhcmVcIl0sIFwiZjE0YVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMzcgMjA5TDIwOSAzMzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDMwMyAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhQ2hlY2tTcXVhcmUgPSBmYVNxdWFyZUNoZWNrO1xuY29uc3QgZmFQZXNldGFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blc2V0YS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMjIxXCIsIFwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NGwwIDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgOTYgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhsMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMuMiAwQzMzNCA4NyAyNjkuNCAzMiAxOTIgMzJMNjQgMzJ6TTI4Mi41IDE2MEw5NiAxNjBsMC02NCA5NiAwYzQxLjggMCA3Ny40IDI2LjcgOTAuNSA2NHpNOTYgMjI0bDE4Ni41IDBjLTEzLjIgMzcuMy00OC43IDY0LTkwLjUgNjRsLTk2IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYUhlYWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiaGVhZGVyXCJdLCBcImYxZGNcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0OCAwIDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxMTIgMjI0IDAgMC0xMTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwIDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxNDQgMCAxNzYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNzZMNDggOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIl1cbn07XG5jb25zdCBmYUhlYWRlciA9IGZhSGVhZGluZztcbmNvbnN0IGZhR2hvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2hvc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxMjNdLCBcImY2ZTJcIiwgXCJNNDAuMSA0NjcuMWwtMTEuMiA5Yy0zLjIgMi41LTcuMSAzLjktMTEuMSAzLjlDOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44Yy00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUxpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1zcXVhcmVzXCJdLCBcImYwM2FcIiwgXCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpcIl1cbn07XG5jb25zdCBmYUxpc3RTcXVhcmVzID0gZmFMaXN0O1xuY29uc3QgZmFTcXVhcmVQaG9uZUZsaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBob25lLWZsaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBob25lLXNxdWFyZS1hbHRcIl0sIFwiZjg3YlwiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwem0tOTAuNyA5Ni43Yy05LjctMi42LTE5LjkgMi4zLTIzLjcgMTEuNmwtMjAgNDhjLTMuNCA4LjItMSAxNy42IDUuOCAyMy4yTDI4MCAyMzEuN2MtMTYuNiAzNS4yLTQ1LjEgNjMuNy04MC4zIDgwLjNsLTIwLjItMjQuN2MtNS42LTYuOC0xNS05LjItMjMuMi01LjhsLTQ4IDIwYy05LjMgMy45LTE0LjIgMTQtMTEuNiAyMy43bDEyIDQ0QzExMS4xIDM3OCAxMTkgMzg0IDEyOCAzODRjMTIzLjcgMCAyMjQtMTAwLjMgMjI0LTIyNGMwLTktNi0xNi45LTE0LjctMTkuM2wtNDQtMTJ6XCJdXG59O1xuY29uc3QgZmFQaG9uZVNxdWFyZUFsdCA9IGZhU3F1YXJlUGhvbmVGbGlwO1xuY29uc3QgZmFDYXJ0UGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMTdcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjkuNSAwYzIyIDAgNDEuNSAxMi44IDUwLjYgMzJsNDExIDBjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNsLTI4OC41IDAgNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUw0ODggMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODguMyAwYy0zNC42IDAtNjQuMy0yNC42LTcwLjctNTguNUw3Ny40IDU0LjVjLS43LTMuOC00LTYuNS03LjktNi41TDI0IDQ4QzEwLjcgNDggMCAzNy4zIDAgMjR6TTEyOCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzM2LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjUyIDE2MGMwIDExIDkgMjAgMjAgMjBsNDQgMCAwIDQ0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNDQgNDQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ0IDAgMC00NGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCA0NC00NCAwYy0xMSAwLTIwIDktMjAgMjB6XCJdXG59O1xuY29uc3QgZmFHYW1lcGFkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhbWVwYWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxMWJcIiwgXCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDI1NiAwYzEwNiAwIDE5Mi04NiAxOTItMTkycy04Ni0xOTItMTkyLTE5MkwxOTIgNjR6TTQ5NiAxNjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek0zOTIgMzA0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE2OCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDMyIDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDAgMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTMyLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzIgMCAwLTMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlRG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1kb3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyODAsIFwiZG90LWNpcmNsZVwiXSwgXCJmMTkyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTM1MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIl1cbn07XG5jb25zdCBmYURvdENpcmNsZSA9IGZhQ2lyY2xlRG90O1xuY29uc3QgZmFGYWNlRGl6enkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1kaXp6eScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZGl6enlcIl0sIFwiZjU2N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yMjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTEwMC43IDEzMi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDE2MCAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDE4Mi42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwxNjAgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxMzcuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6bTE5MiAwYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwTDM1MiAxNjkuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDM3NC42IDE5MmwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEwzNTIgMjE0LjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwzMjkuNCAxOTJsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFEaXp6eSA9IGZhRmFjZURpenp5O1xuY29uc3QgZmFFZ2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWdnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI5MzcwXSwgXCJmN2ZiXCIsIFwiTTE5MiA0OTZDODYgNDk2IDAgMzk0IDAgMjg4QzAgMTc2IDY0IDE2IDE5MiAxNnMxOTIgMTYwIDE5MiAyNzJjMCAxMDYtODYgMjA4LTE5MiAyMDh6TTE1NC44IDEzNGM2LjUtNiA3LTE2LjEgMS0yMi42cy0xNi4xLTctMjIuNi0xYy0yMy45IDIxLjgtNDEuMSA1Mi43LTUyLjMgODQuMkM2OS43IDIyNi4xIDY0IDI1OS43IDY0IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjQuNSA1LTU0LjQgMTUuMS04Mi44YzEwLjEtMjguNSAyNS01NC4xIDQzLjctNzEuMnpcIl1cbn07XG5jb25zdCBmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEzXCIsIFwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRsLTI2Ni43IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0TDMyMCAyNTZsMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJdXG59O1xuY29uc3QgZmFDYW1wZ3JvdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbXBncm91bmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5OTc4XSwgXCJmNmJiXCIsIFwiTTM3NyA1MmMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVMMjg4IDYwLjggMjQ5IDEyYy0xMS0xMy44LTMxLjItMTYtNDUtNXMtMTYgMzEuMi01IDQ1bDQ4IDYwTDEyLjMgNDA1LjRDNC4zIDQxNS40IDAgNDI3LjcgMCA0NDAuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMCAyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIzLjZjMC0xMi43LTQuMy0yNS4xLTEyLjMtMzVMMzI5IDExMmw0OC02MHpNMjg4IDQ0OGwtMTE5LjUgMEwyODggMjkxLjcgNDA3LjUgNDQ4IDI4OCA0NDh6XCJdXG59O1xuY29uc3QgZmFGb2xkZXJQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjVlXCIsIFwiTTUxMiA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZ6TTIzMiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDY0LTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjQgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRnV0Ym9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Z1dGJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5MTcsIFwiZnV0Ym9sLWJhbGxcIiwgXCJzb2NjZXItYmFsbFwiXSwgXCJmMWUzXCIsIFwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6XCJdXG59O1xuY29uc3QgZmFGdXRib2xCYWxsID0gZmFGdXRib2w7XG5jb25zdCBmYVNvY2NlckJhbGwgPSBmYUZ1dGJvbDtcbmNvbnN0IGZhUGFpbnRicnVzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludGJydXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mzk2LCBcInBhaW50LWJydXNoXCJdLCBcImYxZmNcIiwgXCJNMzM5LjMgMzY3LjFjMjcuMy0zLjkgNTEuOS0xOS40IDY3LjItNDIuOUw1NjguMiA3NC4xYzEyLjYtMTkuNSA5LjQtNDUuMy03LjYtNjEuMlM1MTcuNy00LjQgNDk5LjEgOS42TDI2Mi40IDE4Ny4yYy0yNCAxOC0zOC4yIDQ2LjEtMzguNCA3Ni4xTDMzOS4zIDM2Ny4xem0tMTkuNiAyNS40bC0xMTYtMTA0LjRDMTQzLjkgMjkwLjMgOTYgMzM5LjYgOTYgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42Qzk4LjQgNDI5LjEgODYuNCA0NDggNjguOCA0NDhMNjQgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtMi41LS4xLTUtLjItNy41elwiXVxufTtcbmNvbnN0IGZhUGFpbnRCcnVzaCA9IGZhUGFpbnRicnVzaDtcbmNvbnN0IGZhTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4Mjc0XSwgXCJmMDIzXCIsIFwiTTE0NCAxNDRsMCA0OCAxNjAgMCAwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwek04MCAxOTJsMC00OEM4MCA2NC41IDE0NC41IDAgMjI0IDBzMTQ0IDY0LjUgMTQ0IDE0NGwwIDQ4IDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwxNiAwelwiXVxufTtcbmNvbnN0IGZhR2FzUHVtcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXMtcHVtcCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5ODFdLCBcImY1MmZcIiwgXCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MiA4IDBjNDguNiAwIDg4IDM5LjQgODggODhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTU0Yy0yNy42LTcuMS00OC0zMi4yLTQ4LTYybDAtNjRMMzg0IDY0Yy04LjgtOC44LTguOC0yMy4yIDAtMzJzMjMuMi04LjggMzIgMGw3Ny4zIDc3LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDEzLjUgMCAyNCAwIDMyIDAgMTUyYzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcybDAtMzJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTggMCAwIDE0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTk2IDgwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkwxMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUhvdFR1YlBlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3QtdHViLXBlcnNvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaG90LXR1YlwiXSwgXCJmNTkzXCIsIFwiTTI3MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDUuMmMwIDM0IDE0LjQgNjYuNCAzOS43IDg5LjJsMTYuNCAxNC44YzE1LjIgMTMuNyAyMy44IDMzLjEgMjMuOCA1My41bDAgMTMuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTMuMmMwLTM0LTE0LjQtNjYuNC0zOS43LTg5LjJMMjk1LjggODIuOEMyODAuNyA2OS4xIDI3MiA0OS43IDI3MiAyOS4ybDAtNS4yek0wIDMyMGwwIDE2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNzAuNyAwYy0xMy44IDAtMjcuMy00LjUtMzguNC0xMi44bC04NS4zLTY0QzEzNyAxNjYuNyAxMTYuOCAxNjAgOTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2bDAgNjR6bTEyOCAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6bTExMiAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6TTM2MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDUuMmMwIDM0IDE0LjQgNjYuNCAzOS43IDg5LjJsMTYuNCAxNC44YzE1LjIgMTMuNyAyMy44IDMzLjEgMjMuOCA1My41bDAgMTMuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTMuMmMwLTM0LTE0LjQtNjYuNC0zOS43LTg5LjJMNDA3LjggODIuOEMzOTIuNyA2OS4xIDM4NCA0OS43IDM4NCAyOS4ybDAtNS4yYzAtMTMuMy0xMC43LTI0LTI0LTI0ek02NCAxMjhBNjQgNjQgMCAxIDAgNjQgMGE2NCA2NCAwIDEgMCAwIDEyOHpcIl1cbn07XG5jb25zdCBmYUhvdFR1YiA9IGZhSG90VHViUGVyc29uO1xuY29uc3QgZmFNYXBMb2NhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtbG9jYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1hcC1tYXJrZWRcIl0sIFwiZjU5ZlwiLCBcIk0zMDIuOCAzMTJDMzM0LjkgMjcxLjkgNDA4IDE3NC42IDQwOCAxMjBDNDA4IDUzLjcgMzU0LjMgMCAyODggMFMxNjggNTMuNyAxNjggMTIwYzAgNTQuNiA3My4xIDE1MS45IDEwNS4yIDE5MmM3LjcgOS42IDIyIDkuNiAyOS42IDB6TTQxNiA1MDNsMTQ0LjktNThjOS4xLTMuNiAxNS4xLTEyLjUgMTUuMS0yMi4zTDU3NiAxNTJjMC0xNy0xNy4xLTI4LjYtMzIuOS0yMi4zbC0xMTYgNDYuNGMtLjUgMS4yLTEgMi41LTEuNSAzLjdjLTIuOSA2LjgtNi4xIDEzLjctOS42IDIwLjZMNDE2IDUwM3pNMTUuMSAxODcuM0M2IDE5MSAwIDE5OS44IDAgMjA5LjZMMCA0ODAuNGMwIDE3IDE3LjEgMjguNiAzMi45IDIyLjNMMTYwIDQ1MS44bDAtMjUxLjRjLTMuNS02LjktNi43LTEzLjgtOS42LTIwLjZjLTUuNi0xMy4yLTEwLjQtMjcuNC0xMi44LTQxLjVsLTEyMi42IDQ5ek0zODQgMjU1Yy0yMC41IDMxLjMtNDIuMyA1OS42LTU2LjIgNzdjLTIwLjUgMjUuNi01OS4xIDI1LjYtNzkuNiAwYy0xMy45LTE3LjQtMzUuNy00NS43LTU2LjItNzdsMCAxOTQuNCAxOTIgNTQuOUwzODQgMjU1elwiXVxufTtcbmNvbnN0IGZhTWFwTWFya2VkID0gZmFNYXBMb2NhdGlvbjtcbmNvbnN0IGZhSG91c2VGbG9vZFdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsb29kLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTBlXCIsIFwiTTMwNi44IDYuMUMyOTUuNi0yIDI4MC40LTIgMjY5LjIgNi4xbC0xNzYgMTI4Yy0xMS4yIDguMi0xNS45IDIyLjYtMTEuNiAzNS44Uzk4LjEgMTkyIDExMiAxOTJsMTYgMCAwIDczYzEuNyAxIDMuMyAyIDQuOSAzLjFjMTggMTIuNCA0MC4xIDIwLjMgNTkuMiAyMC4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzEuNS0xIDMtMiA0LjUtMi45bC0uMy03My4yIDE2LjYgMGMxMy45IDAgMjYuMS04LjkgMzAuNC0yMi4xcy0uNC0yNy42LTExLjYtMzUuOGwtMTc2LTEyOHpNMjY5LjUgMzA5LjlDMjQ3IDMyNS40IDIxOS41IDMzNiAxOTIgMzM2Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWMwIDAgMCAwIDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSAzODkuNyAxNTkgNDAwIDE5MiA0MDBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNS0yNy4zLTEwLjEtMzkuMi0xLjdjMCAwIDAgMCAwIDBDNDM5LjQgMzI1LjIgNDEwLjkgMzM2IDM4NCAzMzZjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMHpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhVHJlZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmVlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3Nzk0XSwgXCJmMWJiXCIsIFwiTTIxMC42IDUuOUw2MiAxNjkuNGMtMy45IDQuMi02IDkuOC02IDE1LjVDNTYgMTk3LjcgNjYuMyAyMDggNzkuMSAyMDhsMjQuOSAwTDMwLjYgMjgxLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMyNCAzMDkuOSAzNC4xIDMyMCA0Ni42IDMyMEw4MCAzMjAgNS40IDQwOS41QzEuOSA0MTMuNyAwIDQxOSAwIDQyNC41YzAgMTMgMTAuNSAyMy41IDIzLjUgMjMuNUwxOTIgNDQ4bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDE2OC41IDBjMTMgMCAyMy41LTEwLjUgMjMuNS0yMy41YzAtNS41LTEuOS0xMC44LTUuNC0xNUwzNjggMzIwbDMzLjQgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDM0NCAyMDhsMjQuOSAwYzEyLjcgMCAyMy4xLTEwLjMgMjMuMS0yMy4xYzAtNS43LTIuMS0xMS4zLTYtMTUuNUwyMzcuNCA1LjlDMjM0IDIuMSAyMjkuMSAwIDIyNCAwcy0xMCAyLjEtMTMuNCA1Ljl6XCJdXG59O1xuY29uc3QgZmFCcmlkZ2VMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGNjXCIsIFwiTTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00MCAwIDAgNjQtOCAwYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDI0LjZjLTkuOSA1LjgtMTguMiAxNC4xLTIzLjggMjQuMWMtMTcuNi0yMC00My40LTMyLjctNzIuMi0zMi43Yy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC01My00My05Ni05Ni05NmwwLTEyOCA3MiAwIDAtNjRMNjQgOTZDNDYuMyA5NiAzMiA4MS43IDMyIDY0ek00MDggOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDY0bDAtNjQtODAgMCAwIDY0IDgwIDB6TTE1MiA5NmwwIDY0IDgwIDAgMC02NC04MCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFTYWNrRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhY2stZG9sbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTc2XSwgXCJmODFkXCIsIFwiTTMyMCA5NkwxOTIgOTYgMTQ0LjYgMjQuOUMxMzcuNSAxNC4yIDE0NS4xIDAgMTU3LjkgMEwzNTQuMSAwYzEyLjggMCAyMC40IDE0LjIgMTMuMyAyNC45TDMyMCA5NnpNMTkyIDEyOGwxMjggMGMzLjggMi41IDguMSA1LjMgMTMgOC40QzM4OS43IDE3Mi43IDUxMiAyNTAuOSA1MTIgNDE2YzAgNTMtNDMgOTYtOTYgOTZMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2QzAgMjUwLjkgMTIyLjMgMTcyLjcgMTc5IDEzNi40YzAgMCAwIDAgMCAwczAgMCAwIDBjNC44LTMuMSA5LjItNS45IDEzLTguNHptODQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVjMCAwIDAgMCAwIDBsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdsMC0xMy45elwiXVxufTtcbmNvbnN0IGZhUGVuVG9TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuLXRvLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZWRpdFwiXSwgXCJmMDQ0XCIsIFwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2Mi4zIDUxLjdsOTcuOSA5Ny45IDMwLjEtMzAuMWMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzcuNyAxNzIuMyAzMzkuNyA3NC4zIDE3Mi40IDI0MS43ek05NiA2NEM0MyA2NCAwIDEwNyAwIDE2MEwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiA2NHpcIl1cbn07XG5jb25zdCBmYUVkaXQgPSBmYVBlblRvU3F1YXJlO1xuY29uc3QgZmFDYXJTaWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nhci1zaWRlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjYzXSwgXCJmNWU0XCIsIFwiTTE3MS4zIDk2TDIyNCA5NmwwIDk2LTExMi43IDAgMzAuNC03NS45QzE0Ni41IDEwNCAxNTguMiA5NiAxNzEuMyA5NnpNMjcyIDE5MmwwLTk2IDgxLjIgMGM5LjcgMCAxOC45IDQuNCAyNSAxMmw2Ny4yIDg0TDI3MiAxOTJ6bTI1Ni4yIDFMNDI4LjIgNjhjLTE4LjItMjIuOC00NS44LTM2LTc1LTM2TDE3MS4zIDMyYy0zOS4zIDAtNzQuNiAyMy45LTg5LjEgNjAuM0w0MC42IDE5Ni40QzE2LjggMjA1LjggMCAyMjguOSAwIDI1NkwwIDM2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMy4zIDBjNy42IDQ1LjQgNDcuMSA4MCA5NC43IDgwczg3LjEtMzQuNiA5NC43LTgwbDEzMC43IDBjNy42IDQ1LjQgNDcuMSA4MCA5NC43IDgwczg3LjEtMzQuNiA5NC43LTgwbDMzLjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtNjUuMi00OC44LTExOS0xMTEuOC0xMjd6TTQzNC43IDM2OGE0OCA0OCAwIDEgMSA5MC41IDMyIDQ4IDQ4IDAgMSAxIC05MC41LTMyek0xNjAgMzM2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVNoYXJlTm9kZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUtbm9kZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInNoYXJlLWFsdFwiXSwgXCJmMWUwXCIsIFwiTTM1MiAyMjRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgNCAuMiA4IC43IDExLjlsLTk0LjEgNDdDMTQ1LjQgMTcwLjIgMTIxLjkgMTYwIDk2IDE2MGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNS45IDAgNDkuNC0xMC4yIDY2LjYtMjYuOWw5NC4xIDQ3Yy0uNSAzLjktLjcgNy44LS43IDExLjljMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTI1LjkgMC00OS40IDEwLjItNjYuNiAyNi45bC05NC4xLTQ3Yy41LTMuOSAuNy03LjggLjctMTEuOXMtLjItOC0uNy0xMS45bDk0LjEtNDdDMzAyLjYgMjEzLjggMzI2LjEgMjI0IDM1MiAyMjR6XCJdXG59O1xuY29uc3QgZmFTaGFyZUFsdCA9IGZhU2hhcmVOb2RlcztcbmNvbnN0IGZhSGVhcnRDaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUtbWludXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZmZcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTU3NiAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcy1oYWxmJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJob3VyZ2xhc3MtMlwiXSwgXCJmMjUyXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFMMTQ2LjcgMjU2IDc4LjkgMzIzLjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDI1NiAwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFMMjM3LjMgMjU2bDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyMCAwIDY0IDAgMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlMMTkyIDMwMS4zbDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMSAxNC45TDExMiAzODR6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3MyID0gZmFIb3VyZ2xhc3NIYWxmO1xuY29uc3QgZmFNaWNyb3Njb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3Jvc2NvcGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMDBdLCBcImY2MTBcIiwgXCJNMTYwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIgNDQ4bDI4OCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4bDAtNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJjMCA0OS4yLTE4LjUgOTQtNDguOSAxMjhsMTYuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTgwLTY0bDE5MiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVNpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2ZFwiLCBcIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnMxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgMjQtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCAwLTI0YzAtNC40IDMuNi04IDgtOGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDI0LTY0IDAgMC0xOTJ6TTQ4MCA0MTZsMC0zMkwzMiAzODRsMCAzMmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFCYWdTaG9wcGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWctc2hvcHBpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInNob3BwaW5nLWJhZ1wiXSwgXCJmMjkwXCIsIFwiTTE2MCAxMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhDMzM2IDUwLjEgMjg1LjkgMCAyMjQgMFMxMTIgNTAuMSAxMTIgMTEybDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFTaG9wcGluZ0JhZyA9IGZhQmFnU2hvcHBpbmc7XG5jb25zdCBmYUFycm93RG93blpBID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tei1hJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFscGhhLWRlc2NcIiwgXCJzb3J0LWFscGhhLWRvd24tYWx0XCJdLCBcImY4ODFcIiwgXCJNMTgzLjYgNDY5LjZDMTc3LjUgNDc2LjIgMTY5IDQ4MCAxNjAgNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkwxMjggMzY1LjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUw0MjkuMyAxNjBsNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlMNDAyLjcgOTYgMzUyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptOTYgMTkyYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNjQgMTI4IDE2IDMyYzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNMNDYwLjIgNDQ4bC04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsMTYtMzIgNjQtMTI4YzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3Ljd6TTM5NS44IDQwMGw0MC40IDBMNDE2IDM1OS42IDM5NS44IDQwMHpcIl1cbn07XG5jb25zdCBmYVNvcnRBbHBoYURlc2MgPSBmYUFycm93RG93blpBO1xuY29uc3QgZmFTb3J0QWxwaGFEb3duQWx0ID0gZmFBcnJvd0Rvd25aQTtcbmNvbnN0IGZhTWl0dGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pdHRlbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdiNVwiLCBcIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuM0MwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zYzAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMnpcIl1cbn07XG5jb25zdCBmYVBlcnNvblJheXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXJheXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGRcIiwgXCJNMjA4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xLTI4LjYgNDcuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZsMjkuNyAwYzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDU4LjMgOTdjOS4xIDE1LjEgNC4yIDM0LjgtMTAuOSA0My45cy0zNC44IDQuMi00My45LTEwLjlMMzI4IDI1Ni45IDMyOCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNyA3QzE2LjQtMi4zIDMxLjYtMi4zIDQxIDdsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDQxQy0yLjMgMzEuNi0yLjMgMTYuNCA3IDd6TTQ3MSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMNDcxIDd6TTcgNTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHptNDY0IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG5jb25zdCBmYVVzZXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMGMwXCIsIFwiTTE0NCAwYTgwIDgwIDAgMSAxIDAgMTYwQTgwIDgwIDAgMSAxIDE0NCAwek01MTIgMGE4MCA4MCAwIDEgMSAwIDE2MEE4MCA4MCAwIDEgMSA1MTIgMHpNMCAyOTguN0MwIDIzOS44IDQ3LjggMTkyIDEwNi43IDE5Mmw0Mi43IDBjMTUuOSAwIDMxIDMuNSA0NC42IDkuN2MtMS4zIDcuMi0xLjkgMTQuNy0xLjkgMjIuM2MwIDM4LjIgMTYuOCA3Mi41IDQzLjMgOTZjLS4yIDAtLjQgMC0uNyAwTDIxLjMgMzIwQzkuNiAzMjAgMCAzMTAuNCAwIDI5OC43ek00MDUuMyAzMjBjLS4yIDAtLjQgMC0uNyAwYzI2LjYtMjMuNSA0My4zLTU3LjggNDMuMy05NmMwLTcuNi0uNy0xNS0xLjktMjIuM2MxMy42LTYuMyAyOC43LTkuNyA0NC42LTkuN2w0Mi43IDBDNTkyLjIgMTkyIDY0MCAyMzkuOCA2NDAgMjk4LjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtMjEzLjMgMHpNMjI0IDIyNGE5NiA5NiAwIDEgMSAxOTIgMCA5NiA5NiAwIDEgMSAtMTkyIDB6TTEyOCA0ODUuM0MxMjggNDExLjcgMTg3LjcgMzUyIDI2MS4zIDM1MmwxMTcuMyAwQzQ1Mi4zIDM1MiA1MTIgNDExLjcgNTEyIDQ4NS4zYzAgMTQuNy0xMS45IDI2LjctMjYuNyAyNi43bC0zMzAuNyAwYy0xNC43IDAtMjYuNy0xMS45LTI2LjctMjYuN3pcIl1cbn07XG5jb25zdCBmYUV5ZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjA3MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6TTIyMy4xIDE0OS41QzI0OC42IDEyNi4yIDI4Mi43IDExMiAzMjAgMTEyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgMjQuOS02LjMgNDguMy0xNy40IDY4LjdMNDA4IDI5NC41YzguNC0xOS4zIDEwLjYtNDEuNCA0LjgtNjMuM2MtMTEuMS00MS41LTQ3LjgtNjkuNC04OC42LTcxLjFjLTUuOC0uMi05LjIgNi4xLTcuNCAxMS43YzIuMSA2LjQgMy4zIDEzLjIgMy4zIDIwLjNjMCAxMC4yLTIuNCAxOS44LTYuNiAyOC4zbC05MC4zLTcwLjh6TTM3MyAzODkuOWMtMTYuNCA2LjUtMzQuMyAxMC4xLTUzIDEwLjFjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0YzAtNi45IC41LTEzLjYgMS40LTIwLjJMODMuMSAxNjEuNUM2MC4zIDE5MS4yIDQ0IDIyMC44IDM0LjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42YzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjNDcuOCAwIDg5LjktMTIuOSAxMjYuMi0zMi41TDM3MyAzODkuOXpcIl1cbn07XG5jb25zdCBmYUZsYXNrVmlhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFzay12aWFsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGYzXCIsIFwiTTE3NSAzODkuNGMtOS44IDE2LTE1IDM0LjMtMTUgNTMuMWMtMTAgMy41LTIwLjggNS41LTMyIDUuNWMtNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDk2IDBsNjQgMCA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjQ1LjktNDkgNzkuNnpNOTYgNjRsMCA5NiA2NCAwIDAtOTZMOTYgNjR6TTM1MiAwTDQ4MCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTAuOUw2MjkuNyA0MDYuMmM2LjcgMTAuOSAxMC4zIDIzLjUgMTAuMyAzNi40YzAgMzguMy0zMS4xIDY5LjQtNjkuNCA2OS40bC0zMDkuMiAwYy0zOC4zIDAtNjkuNC0zMS4xLTY5LjQtNjkuNGMwLTEyLjggMy42LTI1LjQgMTAuMy0zNi40TDMyMCAyMTQuOSAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMHptMzIgNjRsMCAxNjBjMCA1LjktMS42IDExLjctNC43IDE2LjhMMzMwLjUgMzIwbDE3MSAwLTQ4LjgtNzkuMmMtMy4xLTUtNC43LTEwLjgtNC43LTE2LjhsMC0xNjAtNjQgMHpcIl1cbn07XG5jb25zdCBmYUhhbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTMwNiwgOTk5NSwgXCJoYW5kLXBhcGVyXCJdLCBcImYyNTZcIiwgXCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRzLTE0LjYgNDEuMyAxLjQgNTYuNkwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6XCJdXG59O1xuY29uc3QgZmFIYW5kUGFwZXIgPSBmYUhhbmQ7XG5jb25zdCBmYU9tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29tJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzI5XSwgXCJmNjc5XCIsIFwiTTM3OS4zIDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTE2IDE2Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxNiAxNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxNi0xNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTYtMTZ6TTI4MSA2Ni43Yy0yLjItMS41LTQuOS0yLjUtNy43LTIuN2MtLjYgMC0xLjMtLjEtMS45IDBjLTMuOSAuMi03LjQgMS43LTEwLjEgNC4yYy0uOSAuOC0xLjYgMS43LTIuMyAyLjZjLTEuNyAyLjQtMi43IDUuMy0yLjkgOC41YzAgLjcgMCAxLjQgMCAyLjFjLjIgMi4yIC45IDQuMyAxLjkgNi4ybC4zIC42Yy4zIC42IC44IDEuNCAxLjQgMi40YzEuMiAyIDIuOSA0LjggNS4xIDguMmM0LjQgNi43IDExLjEgMTUuNSAyMCAyNC40QzMwMi40IDE0MS4xIDMzMC4zIDE2MCAzNjggMTYwYzMxLjIgMCA1Ni42LTEwLjQgNzMuOS0yMC4yYzguNy01IDE1LjYtOS45IDIwLjQtMTMuOGMyLjQtMS45IDQuMy0zLjYgNS43LTQuOWMuNy0uNiAxLjMtMS4yIDEuNy0xLjZsLjYtLjUgLjEtLjEgLjEtLjFzMCAwIDAgMHMwIDAgMCAwYzUuOS01LjggOS41LTEzLjkgOS41LTIyLjhjMC0xNy43LTE0LjMtMzItMzItMzJjLTguNyAwLTE2LjcgMy41LTIyLjQgOS4yYy0uMSAuMS0uMiAuMi0uNSAuNGMtLjUgLjUtMS41IDEuMy0yLjggMi40Yy0yLjcgMi4yLTYuOCA1LjItMTIuMSA4LjJDMzk5LjQgOTAuNCAzODQuOCA5NiAzNjggOTZjLTIwLjggMC00Mi40LTctNTkuNS0xNC42Yy04LjQtMy43LTE1LjQtNy41LTIwLjMtMTAuM2MtMi40LTEuNC00LjMtMi41LTUuNi0zLjNjLS42LS40LTEuMS0uNy0xLjQtLjlsLS4zLS4yek0xMTUuMiAxNjkuNmM4LTYgMTcuOS05LjYgMjguOC05LjZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTM0LjIgMGMtNy42IDAtMTMuOCA2LjItMTMuOCAxMy44YzAgMS41IC4yIDIuOSAuNyA0LjRsOCAyNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDguOSAwIDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTUwLjggMC04Mi43LTIxLjUtMTAyLjItNDIuOGMtOS45LTEwLjgtMTYuNi0yMS42LTIwLjktMjkuN2MtMi4xLTQtMy42LTcuMy00LjUtOS42Yy0uNS0xLjEtLjgtMi0xLTIuNWwtLjItLjVjLS4zLS45LS43LTEuOC0xLjEtMi42Yy0xLjItMi4yLTIuOC00LTQuNy01LjRjLTEuOS0xLjQtNC4xLTIuMy02LjUtMi44Yy0xLjQtLjMtMi45LS4zLTQuNC0uMmMtMi41IC4yLTQuOCAxLTYuOCAyLjNjLTEuMSAuNy0yLjIgMS41LTMuMSAyLjVjLTIuNCAyLjUtNC4xIDUuOC00LjUgOS41Yy0uMSAuNi0uMSAxLjEtLjEgMS43YzAgMCAwIDAgMCAwYzAgLjggLjEgMS43IC4yIDIuNWwwIC4xYzAgLjMgLjEgLjggLjIgMS4zYy4yIDEuMSAuNCAyLjcgLjggNC42Yy44IDMuOSAyIDkuNCAzLjkgMTUuOWMzLjggMTMgMTAuMyAzMC40IDIxLjMgNDhDNDguNyA0NzYuMiA4OS40IDUxMiAxNjAgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4YzAtMjMuMy02LjItNDUuMi0xNy4xLTY0bDIyLjYgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNi41LTI2LjVjNi02IDE0LjEtOS40IDIyLjYtOS40bDUuNSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJjLTI1LjcgMC00MS40LTEyLjUtNTEuMi0yNS42Yy01LTYuNy04LjQtMTMuNC0xMC41LTE4LjZjLTEuMS0yLjUtMS44LTQuNi0yLjItNmMtLjItLjctLjQtMS4yLS41LTEuNWwtLjEtLjJjLS4zLTEuMy0uOC0yLjYtMS41LTMuOGMtMS4xLTItMi42LTMuOC00LjQtNS4xYy0yLjctMi02LTMuMi05LjYtMy4ybC0uMiAwYy04IC4xLTE0LjYgNi4xLTE1LjYgMTMuOWMwIDAgMCAwIDAgMGMwIC4zLS4xIC42LS4yIDEuMWMtLjEgLjktLjMgMi4xLS40IDMuNmMtLjMgMy0uNiA3LjMtLjYgMTIuNGMwIDEwLjEgMS4xIDIzLjkgNS44IDM4LjFjNC44IDE0LjMgMTMuNCAyOS4zIDI4LjYgNDAuN0MzNjguNyA0NzMuMyAzODkuMyA0ODAgNDE2IDQ4MGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC01My00My05Ni05Ni05NmwtNS41IDBjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xbC0yNi41IDI2LjVjLTYgNi0xNC4xIDkuNC0yMi42IDkuNGwtNDguMyAwYzYuOS0xNC41IDEwLjgtMzAuOCAxMC44LTQ4YzAtNjEuOS01MC4xLTExMi0xMTItMTEyYy0yNS4yIDAtNDguNSA4LjMtNjcuMiAyMi40Yy0xNC4xIDEwLjYtMTcgMzAuNy02LjQgNDQuOHMzMC43IDE3IDQ0LjggNi40elwiXVxufTtcbmNvbnN0IGZhV29ybSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3b3JtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTk5XCIsIFwiTTI1NiA5NmMwLTUzIDQzLTk2IDk2LTk2bDM4LjQgMEM0MzkuOSAwIDQ4MCA0MC4xIDQ4MCA4OS42bDAgODYuNCAwIDE2IDAgMTg0YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2cy0xMzYtNjAuOS0xMzYtMTM2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xNjhjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBiXCIsIFwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwIC43IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhUGx1ZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MjY4XSwgXCJmMWU2XCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yQzI5NyAzOTggMzUyIDMzMy40IDM1MiAyNTZsMC0zMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA3N1wiLCBcIk0yMzMuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI1NiAxNzMuMyA4Ni42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyelwiXVxufTtcbmNvbnN0IGZhSGFuZFNwb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtc3BvY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg0MDZdLCBcImYyNTlcIiwgXCJNMjQ2LjkgMjMuN0MyNDIuMyA2LjYgMjI0LjgtMy41IDIwNy43IDEuMXMtMjcuMiAyMi4xLTIyLjYgMzkuMkwyMzggMjM3LjhjMi41IDkuMi00LjUgMTguMi0xNCAxOC4yYy02LjQgMC0xMi00LjItMTMuOS0xMC4zTDE2Ni42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDk5LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNHMtMTQuNiA0MS4zIDEuNCA1Ni42TDE1Ni44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDEwLjkgMCA4LjIgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDQzLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjljLTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzNTUuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOWMtMTEuOSAwLTIyLjQtOC0yNS40LTE5LjVsLTU3LTIxMi44elwiXVxufTtcbmNvbnN0IGZhU3RvcHdhdGNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3B3YXRjaCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzkyMDFdLCBcImYyZjJcIiwgXCJNMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDM0LjRDOTIuMyAxMTMuOCAxNiAyMDAgMTYgMzA0YzAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOHMyMDgtOTMuMSAyMDgtMjA4YzAtNDEuOC0xMi4zLTgwLjctMzMuNS0xMTMuMmwyNC4xLTI0LjFjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzU1LjcgMTQzYy0yOC4xLTIzLTYyLjItMzguOC05OS43LTQ0LjZMMjU2IDY0bDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjI0IDAgMTc2IDB6bTcyIDE5MmwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEyOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbmNvbnN0IGZhRmFjZUtpc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1raXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTM1LCBcImtpc3NcIl0sIFwiZjU5NlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNDguNy0xOTguM2M0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI3NC43IDQ0My4xIDI1Ny40IDQ0OCAyNDAgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMWMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2MwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMSAuMy0uMiAuNi0uNGMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjQtLjMtLjUtLjMtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhS2lzcyA9IGZhRmFjZUtpc3M7XG5jb25zdCBmYUJyaWRnZUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0Y2JcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5Ub25ndWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRvbmd1ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzOSwgXCJncmluLXRvbmd1ZVwiXSwgXCJmNTg5XCIsIFwiTTAgMjU2QzAgMzY4LjkgNzMuMSA0NjQuNyAxNzQuNSA0OTguOEMxNjUuMyA0ODQgMTYwIDQ2Ni42IDE2MCA0NDhsMC00Ny4zYy0yNC0xNy41LTQzLjEtNDEuNC01NC44LTY5LjJjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN2MtMTEuOCAyOC0zMS4xIDUyLTU1LjQgNjkuNmwwIDQ2LjljMCAxOC42LTUuMyAzNi0xNC41IDUwLjhDNDM4LjkgNDY0LjcgNTEyIDM2OC45IDUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NnptMTc2LjQtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOWMtMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMGMtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYUdyaW5Ub25ndWUgPSBmYUZhY2VHcmluVG9uZ3VlO1xuY29uc3QgZmFDaGVzc0Jpc2hvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1iaXNob3AnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5ODIxXSwgXCJmNDNhXCIsIFwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMmMwIDE2LjEgMTEuOSAyOS40IDI3LjQgMzEuN0M3OC40IDEwNi44IDggMTkwIDggMjg4YzAgNDcuNCAzMC44IDcyLjMgNTYgODQuN0w2NCA0MDBsMTkyIDAgMC0yNy4zYzI1LjItMTIuNSA1Ni0zNy40IDU2LTg0LjdjMC0zNy4zLTEwLjItNzIuNC0yNS4zLTEwNC4xbC05OS40IDk5LjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMMjcwLjggMTU0LjZjLTIzLjItMzguMS01MS44LTY5LjUtNzQuMi05MC45QzIxMi4xIDYxLjQgMjI0IDQ4LjEgMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDEyOCAwek00OCA0MzJMNi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMCA1MDEuOSAxMC4xIDUxMiAyMi42IDUxMmwyNzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMjcyIDQzMiA0OCA0MzJ6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpbldpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdyaW4td2lua1wiXSwgXCJmNThjXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNi45LTc5LjJjLTE3LjYtMjMuNS01Mi44LTIzLjUtNzAuNCAwYy01LjMgNy4xLTE1LjMgOC41LTIyLjQgMy4ycy04LjUtMTUuMy0zLjItMjIuNGMzMC40LTQwLjUgOTEuMi00MC41IDEyMS42IDBjNS4zIDcuMSAzLjkgMTcuMS0zLjIgMjIuNHMtMTcuMSAzLjktMjIuNC0zLjJ6TTE3Ni40IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluV2luayA9IGZhRmFjZUdyaW5XaW5rO1xuY29uc3QgZmFFYXJEZWFmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Vhci1kZWFmJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkZWFmXCIsIFwiZGVhZm5lc3NcIiwgXCJoYXJkLW9mLWhlYXJpbmdcIl0sIFwiZjJhNFwiLCBcIk01MDIuNiA1NC42bC00MCA0MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDAtNDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTMyMCAzMjBsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjQwIDEyOGMtNTcuNiAwLTEwNS4xIDQzLjYtMTExLjMgOTkuNWMtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM0M3NC44IDEzMi41IDE0OS40IDY0IDI0MCA2NGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NmMwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zYy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNi4xYzAtMzIuOSAxNy40LTU5LjYgMzQuNC03OGMxOC40LTIwIDI5LjYtNDYuNiAyOS42LTc1LjljMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xuY29uc3QgZmFEZWFmID0gZmFFYXJEZWFmO1xuY29uc3QgZmFEZWFmbmVzcyA9IGZhRWFyRGVhZjtcbmNvbnN0IGZhSGFyZE9mSGVhcmluZyA9IGZhRWFyRGVhZjtcbmNvbnN0IGZhUm9hZENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY0XCIsIFwiTTIxMy4yIDMyTDI4OCAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA3NC44IDBjMjcuMSAwIDUxLjMgMTcuMSA2MC4zIDQyLjZsNDIuNyAxMjAuNmMtMTAuOS0yLjEtMjIuMi0zLjItMzMuOC0zLjJjLTU5LjUgMC0xMTIuMSAyOS42LTE0NCA3NC44bDAtNDIuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzIuMyAwIDQuNi0uMyA2LjgtLjdjLTQuNSAxNS41LTYuOCAzMS44LTYuOCA0OC43YzAgNS40IC4yIDEwLjcgLjcgMTZsLS43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRMODYuNiA0ODBDNTYuNSA0ODAgMzIgNDU1LjUgMzIgNDI1LjRjMC02LjIgMS4xLTEyLjQgMy4xLTE4LjJMMTUyLjkgNzQuNkMxNjIgNDkuMSAxODYuMSAzMiAyMTMuMiAzMnpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0ODAgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYURpY2VGaXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UtZml2ZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NjBdLCBcImY1MjNcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVSc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXJzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicnNzLXNxdWFyZVwiXSwgXCJmMTQzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNGMxMzcgMCAyNDggMTExIDI0OCAyNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGM4My45IDAgMTUyIDY4LjEgMTUyIDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFSc3NTcXVhcmUgPSBmYVNxdWFyZVJzcztcbmNvbnN0IGZhTGFuZE1pbmVPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kLW1pbmUtb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MWJcIiwgXCJNMzQ0IDI0bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE5MiAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMi0yNTYgMCAwLTMyem0tNzcuMyA5MC41YzguMS0xNi4zIDI0LjgtMjYuNSA0Mi45LTI2LjVsMzI0LjcgMGMxOC4yIDAgMzQuOCAxMC4zIDQyLjkgMjYuNWwyNy42IDU1LjJDNTYzLjUgNDg3IDU0OCA1MTIgNTI0LjIgNTEybC00MDguNCAwYy0yMy44IDAtMzkuMy0yNS0yOC42LTQ2LjNsMjcuNi01NS4yek0zNi4zIDEzOC4zYzcuNS0xMC45IDIyLjUtMTMuNiAzMy40LTYuMWwxMDQgNzJjMTAuOSA3LjUgMTMuNiAyMi41IDYuMSAzMy40cy0yMi41IDEzLjYtMzMuNCA2LjFsLTEwNC03MmMtMTAuOS03LjUtMTMuNi0yMi41LTYuMS0zMy40em01MzQuMS02LjFjMTAuOS03LjUgMjUuOC00LjggMzMuNCA2LjFzNC44IDI1LjgtNi4xIDMzLjRsLTEwNCA3MmMtMTAuOSA3LjUtMjUuOCA0LjgtMzMuNC02LjFzLTQuOC0yNS44IDYuMS0zMy40bDEwNC03MnpcIl1cbn07XG5jb25zdCBmYUlDdXJzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaS1jdXJzb3InLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYyNDZcIiwgXCJNLjEgMjkuM0MtMS40IDQ3IDExLjcgNjIuNCAyOS4zIDYzLjlsOCAuN0M3MC41IDY3LjMgOTYgOTUgOTYgMTI4LjNMOTYgMjI0bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA5NS43YzAgMzMuMy0yNS41IDYxLTU4LjcgNjMuOGwtOCAuN0MxMS43IDQ0OS42LTEuNCA0NjUgLjEgNDgyLjdzMTYuOSAzMC43IDM0LjUgMjkuMmw4LS43YzM0LjEtMi44IDY0LjItMTguOSA4NS40LTQyLjljMjEuMiAyNCA1MS4yIDQwIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdsMC05NS43IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC05NS43YzAtMzMuMyAyNS41LTYxIDU4LjctNjMuOGw4LS43YzE3LjYtMS41IDMwLjctMTYuOSAyOS4yLTM0LjVTMjM5LTEuNCAyMjEuMyAuMWwtOCAuN0MxNzkuMiAzLjYgMTQ5LjIgMTkuNyAxMjggNDMuN2MtMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3pcIl1cbn07XG5jb25zdCBmYVN0YW1wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YW1wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJmXCIsIFwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00N0MzNDQuNSAxMzguNSAzNTIgMTE4LjEgMzUyIDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjIuMSA3LjUgNDIuNSAyMC4xIDU4LjhjMTAuNyAxMy44IDE5LjkgMjkuNiAxOS45IDQ3YzAgMjkuOS0yNC4zIDU0LjItNTQuMiA1NC4yTDExMiAyNTZDNTAuMSAyNTYgMCAzMDYuMSAwIDM2OGMwIDIwLjkgMTMuNCAzOC43IDMyIDQ1LjNMMzIgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNTAuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNjMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTQxNiA0MTZsMCAzMkw5NiA0NDhsMC0zMiAzMjAgMHpcIl1cbn07XG5jb25zdCBmYVN0YWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFpcnMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUyODlcIiwgXCJNMzg0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NnpcIl1cbn07XG5jb25zdCBmYUkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaScsXG4gIGljb246IFszMjAsIDUxMiwgWzEwNV0sIFwiNDlcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDk2IDAgMCAzMjAtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTMyMCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE2MCAzMiAzMiAzMnpcIl1cbn07XG5jb25zdCBmYUhyeXZuaWFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hyeXZuaWEtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgWzgzNzIsIFwiaHJ5dm5pYVwiXSwgXCJmNmYyXCIsIFwiTTEyMS45IDExNi4yQzEzOC4zIDEwMy4xIDE1OC43IDk2IDE3OS42IDk2TDIyMyA5NmMyNy4xIDAgNDkgMjEuOSA0OSA0OWMwIDExLjUtNCAyMi40LTExLjEgMzFMMzIgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyMy41IDAtNTAuNiAyOC45Yy0xLjcgMS0zLjQgMi01LjEgMy4xTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMC4zIDBjLTIuOCA5LjktNC4zIDIwLjQtNC4zIDMxYzAgNjIuNCA1MC42IDExMyAxMTMgMTEzbDQzLjQgMGMzNS41IDAgNzAtMTIuMSA5Ny43LTM0LjNMMzA4IDQ0MWMxMy44LTExIDE2LTMxLjIgNS00NXMtMzEuMi0xNi00NS01bC01LjkgNC43Yy0xNi40IDEzLjEtMzYuNyAyMC4yLTU3LjcgMjAuMkwxNjEgNDE2Yy0yNy4xIDAtNDktMjEuOS00OS00OWMwLTExLjUgNC0yMi40IDExLjEtMzFMMzUyIDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTIzLjUgMCA1MC42LTI4LjljMS43LTEgMy40LTIgNS4xLTMuMWw2Ny44IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIwLjMgMGMyLjgtMTAgNC4zLTIwLjQgNC4zLTMxYzAtNjIuNC01MC42LTExMy0xMTMtMTEzbC00My40IDBjLTM1LjUgMC03MCAxMi4xLTk3LjcgMzQuM0w3NiA3MWMtMTMuOCAxMS0xNiAzMS4yLTUgNDVzMzEuMiAxNiA0NSA1bDUuOS00Ljd6XCJdXG59O1xuY29uc3QgZmFIcnl2bmlhID0gZmFIcnl2bmlhU2lnbjtcbmNvbnN0IGZhUGlsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGlsbHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ODRcIiwgXCJNMTEyIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDExMiA5NiAwIDAtMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDE0NEMwIDgyLjEgNTAuMSAzMiAxMTIgMzJzMTEyIDUwLjEgMTEyIDExMmwwIDIyNGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4TDAgMTQ0ek01NTQuOSAzOTkuNGMtNy4xIDEyLjMtMjMuNyAxMy4xLTMzLjggMy4xTDMzMy41IDIxNC45Yy0xMC0xMC05LjMtMjYuNyAzLjEtMzMuOEMzNjAgMTY3LjcgMzg3LjEgMTYwIDQxNiAxNjBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBjMCAyOC45LTcuNyA1Ni0yMS4xIDc5LjR6bS01OS41IDU5LjVDNDcyIDQ3Mi4zIDQ0NC45IDQ4MCA0MTYgNDgwYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTI4LjkgNy43LTU2IDIxLjEtNzkuNGM3LjEtMTIuMyAyMy43LTEzLjEgMzMuOC0zLjFMNDk4LjUgNDI1LjFjMTAgMTAgOS4zIDI2LjctMy4xIDMzLjh6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpbldpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpZGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTUsIFwiZ3Jpbi1hbHRcIl0sIFwiZjU4MVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5ek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjRzLTE0LjMgNjQtMzIgNjR6XCJdXG59O1xuY29uc3QgZmFHcmluQWx0ID0gZmFGYWNlR3JpbldpZGU7XG5jb25zdCBmYVRvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb3RoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5NDYzXSwgXCJmNWM5XCIsIFwiTTE4Ni4xIDUyLjFDMTY5LjMgMzkuMSAxNDguNyAzMiAxMjcuNSAzMkM3NC43IDMyIDMyIDc0LjcgMzIgMTI3LjVsMCA2LjJjMCAxNS44IDMuNyAzMS4zIDEwLjcgNDUuNWwyMy41IDQ3LjFjNC41IDguOSA3LjYgMTguNCA5LjQgMjguMmwzNi43IDIwNS44YzIgMTEuMiAxMS42IDE5LjQgMjIuOSAxOS44czIxLjQtNy40IDI0LTE4LjRsMjguOS0xMjEuM0MxOTIuMiAzMjMuNyAyMDcgMzEyIDIyNCAzMTJzMzEuOCAxMS43IDM1LjggMjguM2wyOC45IDEyMS4zYzIuNiAxMS4xIDEyLjcgMTguOCAyNCAxOC40czIwLjktOC42IDIyLjktMTkuOGwzNi43LTIwNS44YzEuOC05LjggNC45LTE5LjMgOS40LTI4LjJsMjMuNS00Ny4xYzcuMS0xNC4xIDEwLjctMjkuNyAxMC43LTQ1LjVsMC0yLjFjMC01NS00NC42LTk5LjYtOTkuNi05OS42Yy0yNC4xIDAtNDcuNCA4LjgtNjUuNiAyNC42bC0zLjIgMi44IDE5LjUgMTUuMmM3IDUuNCA4LjIgMTUuNSAyLjggMjIuNXMtMTUuNSA4LjItMjIuNSAyLjhsLTI0LjQtMTktMzctMjguOHpcIl1cbn07XG5jb25zdCBmYVYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndicsXG4gIGljb246IFszODQsIDUxMiwgWzExOF0sIFwiNTZcIiwgXCJNMTkuNyAzNC41YzE2LjMtNi44IDM1IC45IDQxLjggMTcuMkwxOTIgMzY0LjggMzIyLjUgNTEuN2M2LjgtMTYuMyAyNS41LTI0IDQxLjgtMTcuMnMyNCAyNS41IDE3LjIgNDEuOGwtMTYwIDM4NGMtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdzLTI0LjYtNy44LTI5LjUtMTkuN0wyLjUgNzYuM2MtNi44LTE2LjMgLjktMzUgMTcuMi00MS44elwiXVxufTtcbmNvbnN0IGZhQmFuZ2xhZGVzaGlUYWthU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW5nbGFkZXNoaS10YWthLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUyZTZcIiwgXCJNMzYgMzIuM0MxOC40IDMwLjEgMi40IDQyLjUgLjIgNjBTMTAuNSA5My42IDI4IDk1LjhsNy45IDFjMTYgMiAyOCAxNS42IDI4IDMxLjhMNjQgMTYwbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAxNjBjMCA1MyA0MyA5NiA5NiA5NmwzMiAwYzEwNiAwIDE5Mi04NiAxOTItMTkybDAtMzJjMC01My00My05Ni05Ni05NmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMS41YzAtNDguNC0zNi4xLTg5LjMtODQuMS05NS4zbC03LjktMXpcIl1cbn07XG5jb25zdCBmYUJpY3ljbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmljeWNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY5MF0sIFwiZjIwNlwiLCBcIk0zMTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjUuNyAwIDM0LjYgNjQtMTQ5LjQgMC0yNy40LTM4QzE5MSA5OS43IDE4My43IDk2IDE3NiA5NmwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0My43IDAgMjIuMSAzMC43LTI2LjYgNTMuMWMtMTAtMi41LTIwLjUtMy44LTMxLjItMy44QzU3LjMgMjI0IDAgMjgxLjMgMCAzNTJzNTcuMyAxMjggMTI4IDEyOGM2NS4zIDAgMTE5LjEtNDguOSAxMjctMTEybDQ5IDBjOC41IDAgMTYuMy00LjUgMjAuNy0xMS44bDg0LjgtMTQzLjUgMjEuNyA0MC4xQzQwMi40IDI3Ni4zIDM4NCAzMTIgMzg0IDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4Yy0xMy41IDAtMjYuNSAyLjEtMzguNyA2TDM3NS40IDQ4LjhDMzY5LjggMzguNCAzNTkgMzIgMzQ3LjIgMzJMMzEyIDMyek00NTguNiAzMDMuN2wzMi4zIDU5LjdjNi4zIDExLjcgMjAuOSAxNiAzMi41IDkuN3MxNi0yMC45IDkuNy0zMi41bC0zMi4zLTU5LjdjMy42LS42IDcuNC0uOSAxMS4yLS45YzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyYzAtMTguNiA3LTM1LjUgMTguNi00OC4zek0xMzMuMiAzNjhsNjUgMGMtNy4zIDMyLjEtMzYgNTYtNzAuMiA1NmMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMxLjcgMCAzLjQgLjEgNS4xIC4ybC0yNC4yIDQ4LjVjLTkgMTguMSA0LjEgMzkuNCAyNC4zIDM5LjR6bTMzLjctNDhsNTAuNy0xMDEuMyA3Mi45IDEwMS4yLS4xIC4xLTEyMy41IDB6bTkwLjYtMTI4bDEwOC41IDBMMzE3IDI3NC44IDI1Ny40IDE5MnpcIl1cbn07XG5jb25zdCBmYVN0YWZmU25ha2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhZmYtc25ha2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcInJvZC1hc2NsZXBpdXNcIiwgXCJyb2Qtc25ha2VcIiwgXCJzdGFmZi1hZXNjdWxhcGl1c1wiXSwgXCJlNTc5XCIsIFwiTTIyMi42IDQzLjJsLS4xIDQuOEwyODggNDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTQwIDAgMC04MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00MCAwLTI4IDAtNC41IDE0NCA0MC41IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE2IDAgMC04MCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00MyAwLTMuMSA5OS41TDIwOC41IDQ5NWwwIDFjLS4zIDguOS03LjYgMTYtMTYuNSAxNnMtMTYuMi03LjEtMTYuNS0xNmwwLTEtMS0zMUwxMzYgNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDM2IDAtMS0zMi0xOSAwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3LjEgODAtOTQuN2wwIDk0LjdjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjUgMEwxNjQgMTI4bC0yOCAwLTEzLjQgMGMtOSAxOC45LTI4LjMgMzItNTAuNiAzMmwtMTYgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZTMjUuMSA0OCA1NiA0OGw4IDAgOCAwIDg5LjUgMC0uMS00LjhMMTYxIDMyYzAtLjcgMC0xLjMgMC0xLjljLjUtMTYuNiAxNC4xLTMwIDMxLTMwczMwLjUgMTMuNCAzMSAzMGMwIC42IDAgMS4zIDAgMS45bC0uNCAxMS4yek02NCAxMTJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhUm9kQXNjbGVwaXVzID0gZmFTdGFmZlNuYWtlO1xuY29uc3QgZmFSb2RTbmFrZSA9IGZhU3RhZmZTbmFrZTtcbmNvbnN0IGZhU3RhZmZBZXNjdWxhcGl1cyA9IGZhU3RhZmZTbmFrZTtcbmNvbnN0IGZhSGVhZFNpZGVDb3VnaFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWQtc2lkZS1jb3VnaC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MlwiLCBcIk00NDggMzI1LjhsNDQgMzQuNWM4LjEgMS40IDE0LjggNi44IDE4IDE0LjFMNTUyLjkgNDA4YzEwLjYgLjQgMTkuNSA3LjYgMjIuMiAxNy40bDM5LjEgMzAuNmMuNiAwIDEuMi0uMSAxLjgtLjFjMTEuMSAwIDIwLjQgNy41IDIzLjIgMTcuOGwtMy45IDBjNi4yIDguNSA2LjQgMjAuNC0uNCAyOWMtOC4yIDEwLjQtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yUzI4LjQtMy4xIDM4LjggNS4xTDg5LjYgNDQuOUMxMjcgMTYuNyAxNzMuNSAwIDIyNCAwbDI0IDBjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM2LjIgNy44IDkuNiAxNy40IDkuNiAyNy40YzAgMjQuMi0xOS42IDQzLjgtNDMuOCA0My44TDQ0OCAzMjBzMCAwIDAgMGwwIDUuOHpNMCAyMjQuMmMwLTM4LjcgOS44LTc1LjEgMjcuMS0xMDYuOUwzNDEuOCAzNjUuM2wtMi41IC4zYy0xMSAxLjQtMTkuMiAxMC43LTE5LjIgMjEuOGMwIDExLjYgOSAyMS4yIDIwLjYgMjEuOWw2MiAzLjkgNDMgMzMuOUM0MzkuMyA0NjYuMiA0MjEuMiA0ODAgNDAwIDQ4MGwtODAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQwIDBzMCAwIDAgMEw5NiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzIuN2MwLTE2LjctNi45LTMyLjUtMTcuMS00NS44QzE2LjYgMzIyLjQgMCAyNzQuMSAwIDIyNC4yek02MTYgMzYwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTY0LTQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVRydWNrTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1tZWRpY2FsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjU3LCBcImFtYnVsYW5jZVwiXSwgXCJmMGY5XCIsIFwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDM2OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU4OS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMTguNyAwIDMyIDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTEyOCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek00MTYgMjU2bDEyOCAwIDAtMTguN0w0NjYuNyAxNjAgNDE2IDE2MGwwIDk2ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzY4LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE3NiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUFtYnVsYW5jZSA9IGZhVHJ1Y2tNZWRpY2FsO1xuY29uc3QgZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OThcIiwgXCJNNTA1IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzgzIDk1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODgtODh6TTMwNS41IDI3LjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI3MS41IDM4LjZjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xMS4zIDExLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44TDEwMS44IDIzMWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNjcuOSAyNDIuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNEw5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguOS02OC45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMjIuNSAyMi41IDUzLjMgMzEuNSA4Mi40IDI3YzAtMSAwLTIuMSAwLTMuMWMwLTMzLjEgOS4xLTY0LjEgMjUtOTAuNmMtMTUuNS04LjctMzIuNS0xMy44LTQ5LjgtMTUuNWwzMS45LTMxLjkgMTIuMiAxMi4yYzYgNiAxMi42IDExLjEgMTkuNyAxNS4yYzI3LjUtMzQgNjcuMy01Ny41IDExMi42LTYzLjhjLTQuMS0zLjgtOC40LTcuMy0xMi45LTEwLjVMNTA1IDEzN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01OS40IDU5LjRjLTIwLjYtNC40LTQyLTMuNy02Mi4zIDIuMWM2LjEtMjEuMyA2LjYtNDMuOCAxLjQtNjUuM0w0MDkgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMjkuMSA1Mi45Yy0zLjctNS03LjgtOS44LTEyLjQtMTQuM0wzMDUuNSAyNy4zek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhU25vd21hbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93bWFuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTczMSwgOTkyNF0sIFwiZjdkMFwiLCBcIk0zNDEuMSAxNDAuNmMtMiAzLjktMS42IDguNiAxLjIgMTJjNyA4LjUgMTIuOSAxOC4xIDE3LjIgMjguNEw0MDggMTYwLjJsMC00MC4yYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOS42IDIyLjUtOS43YzEyLjItNS4yIDI2LjMgLjQgMzEuNSAxMi42cy0uNCAyNi4zLTEyLjYgMzEuNWwtNTYgMjQtNzMuNiAzMS41Yy0uNSA5LjUtMi4xIDE4LjYtNC44IDI3LjNjLTEuMiAzLjgtLjEgOCAyLjggMTAuOEMzOTYuNyAyOTYuOSA0MTYgMzM4LjIgNDE2IDM4NGMwIDQ0LjctMTguMyA4NS00Ny44IDExNC4xYy05LjkgOS43LTIzLjcgMTMuOS0zNy41IDEzLjlsLTE0OS4zIDBjLTEzLjkgMC0yNy43LTQuMi0zNy41LTEzLjlDMTE0LjMgNDY5IDk2IDQyOC43IDk2IDM4NGMwLTQ1LjggMTkuMy04Ny4xIDUwLjEtMTE2LjNjMi45LTIuOCA0LTYuOSAyLjgtMTAuOGMtMi43LTguNy00LjMtMTcuOS00LjgtMjcuM0w3MC41IDE5OC4xbC01Ni0yNEMyLjQgMTY4LjgtMy4zIDE1NC43IDEuOSAxNDIuNXMxOS4zLTE3LjggMzEuNS0xMi42TDU2IDEzOS42IDU2IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAuMkwxNTIuNiAxODFjNC4zLTEwLjMgMTAuMS0xOS45IDE3LjItMjguNGMyLjgtMy40IDMuMy04LjEgMS4yLTEyQzE2NCAxMjcuMiAxNjAgMTEyLjEgMTYwIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAxNi4xLTQgMzEuMi0xMC45IDQ0LjZ6TTIyNCA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTQ4IDEyOGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tMTYgODBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0xNiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwek0yODggOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tNDggMjRsMCAzLjJjMCAzLjIgLjggNi4zIDIuMyA5bDkgMTYuOWMuOSAxLjcgMi43IDIuOCA0LjcgMi44czMuOC0xLjEgNC43LTIuOGw5LTE2LjljMS41LTIuOCAyLjMtNS45IDIuMy05bDAtMy4yYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2elwiXVxufTtcbmNvbnN0IGZhTW9ydGFyUGVzdGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vcnRhci1wZXN0bGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YTdcIiwgXCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwbDE0NC45IDBMNTAyLjYgNTQuNmMxMS44LTExLjggMTIuNi0zMC44IDEuNi00My41ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJjMCA4Mi41IDQzLjQgMTQ3LjcgMTIzLjkgMTc2LjJjLTExLjEgMTMuOS0xOS40IDMwLjMtMjMuOSA0OC4xQzEyNy42IDQ5Ny40IDE0Mi4zIDUxMiAxNjAgNTEybDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43Yy00LjUtMTcuOC0xMi44LTM0LjEtMjMuOS00OC4xQzQzNi42IDQwMy43IDQ4MCAzMzguNSA0ODAgMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE5MnpcIl1cbn07XG5jb25zdCBmYVJvYWRCYXJyaWVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtYmFycmllcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2MlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xODEuN0wxNDkuMiA5NiA2NCA5NmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDUuMiA5NmwtNzQuMyAwLTUuNCAxMC43TDIzNC44IDI4OGw3NC4zIDAgNS40LTEwLjdMNDA1LjIgOTZ6TTM2Mi44IDI4OGw3NC4zIDAgNS40LTEwLjdMNTMzLjIgOTZsLTc0LjMgMC01LjQgMTAuN0wzNjIuOCAyODh6TTIwMi44IDk2bC01LjQgMTAuN0wxMDYuOCAyODhsNzQuMyAwIDUuNC0xMC43TDI3Ny4yIDk2bC03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43TDQ5MC44IDI4OHpcIl1cbn07XG5jb25zdCBmYVNjaG9vbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5NzldLCBcImY1NDlcIiwgXCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTYgNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIwOCAwIDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDk2IDIwOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ3My43IDk2IDMzNy44IDUuNHpNOTYgMTkybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6bTQwMCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0ek05NiAzMjBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnptNDAwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjR6TTIzMiAxNzZhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwem04OC00OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFJZ2xvbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZ2xvbycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjdhZVwiLCBcIk0zMjAgMzMuOEwzMjAgMTYwIDQ4LjUgMTYwQzEwMC4yIDgyLjggMTg4LjEgMzIgMjg4IDMyYzEwLjggMCAyMS41IC42IDMyIDEuOHpNMzUyIDE2MGwwLTEyMC45QzQyNC45IDU1LjcgNDg3LjIgOTkuOCA1MjcuNSAxNjBMMzUyIDE2MHpNMjkuOSAxOTJMOTYgMTkybDAgMTI4TDAgMzIwYzAtNDYgMTAuOC04OS40IDI5LjktMTI4ek0xOTIgMzIwbC02NCAwIDAtMTI4IDMyMCAwIDAgMTI4LTY0IDAgMCAzMiAxOTIgMCAwIDgwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNzYgMCAwLTEyOGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGwwIDEyOEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtODAgMTkyIDAgMC0zMnptMjg4IDBsMC0xMjggNjYuMSAwYzE5LjIgMzguNiAyOS45IDgyIDI5LjkgMTI4bC05NiAwelwiXVxufTtcbmNvbnN0IGZhSm9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnam9pbnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1OTVcIiwgXCJNNDQ4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTFjMCA1NS4yIDIxLjkgMTA4LjEgNjAuOSAxNDcuMWwyMSAyMWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDExYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjEtMjFDNDYzLjIgMTE3LjggNDQ4IDgxLjIgNDQ4IDQzbDAtMTF6TTU3NiAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExYzAtNTUuMi0yMS45LTEwOC4xLTYwLjktMTQ3LjFsLTIxLTIxYy05LTktMTQuMS0yMS4yLTE0LjEtMzMuOWwwLTExYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTFjMCAyOS43IDExLjggNTguMiAzMi44IDc5LjJsMjEgMjFjMjcgMjcgNDIuMiA2My42IDQyLjIgMTAxLjhsMCAxMXpNMjI5LjggMzYwYy00LjctMi4zLTEwLTIuNy0xNS4yLTJjLTM3LjggNS42LTc1LjIgMTQuMy0xMDYuOSAyMi44QzgxLjMgMzg4IDU4LjMgMzk1LjEgNDIgNDAwLjRjLTguMiAyLjctMTQuNyA0LjktMTkuMiA2LjVjLTIuMyAuOC00IDEuNC01LjIgMS44bC0xLjMgLjVDNi44IDQxMi41IDAgNDIxLjQgMCA0MzJzNi44IDE5LjUgMTYuMyAyMi43bDEuMyAuNWMxLjIgLjQgMyAxLjEgNS4yIDEuOGM0LjUgMS42IDExIDMuOCAxOS4yIDYuNWMxNi4zIDUuNCAzOS4yIDEyLjUgNjUuNyAxOS42QzE2MC4zIDQ5Ny4zIDIyOC44IDUxMiAyODggNTEybDY3LjMgMGM0LjEgMCA2LjMtNS4xIDMuNi04LjNMMjU2LjUgMzgwLjhjLTcuNC04LjktMTYuNS0xNS45LTI2LjctMjAuOHpNNDQ1IDUxMmwxOSAwIDUxLjMgMGM0LjEgMCA2LjMtNS4xIDMuNi04LjNMNDE2LjUgMzgwLjhDNDAxLjMgMzYyLjUgMzc4LjggMzUyIDM1NSAzNTJsLTE5IDAtNDggMGMtMS4xIDAtMi4zIDAtMy40IDBjLTQuMSAwLTYuMiA1LjEtMy41IDguM0wzODMuNSA0ODMuMkMzOTguNyA1MDEuNSA0MjEuMiA1MTIgNDQ1IDUxMnptLTMuOS0xNTEuN0w1NDMuNSA0ODMuMmMxNC42IDE3LjUgMzUuOSAyNy45IDU4LjYgMjguN2MyMS4xLTEuMSAzNy45LTE4LjYgMzcuOS0zOS45bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTE1NS4zIDBjLTQuMSAwLTYuMyA1LjEtMy42IDguM3pcIl1cbn07XG5jb25zdCBmYUFuZ2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtcmlnaHQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs4MjUwXSwgXCJmMTA1XCIsIFwiTTI3OC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMTAuNyAyNTYgNzMuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwelwiXVxufTtcbmNvbnN0IGZhSG9yc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9yc2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMTRdLCBcImY2ZjBcIiwgXCJNNDQ4IDIzOC4xbDAtNzguMSAxNiAwIDkuOCAxOS42YzEyLjUgMjUuMSA0Mi4yIDM2LjQgNjguMyAyNmMyMC41LTguMiAzMy45LTI4IDMzLjktNTAuMUw1NzYgODBjMC0xOS4xLTguNC0zNi4zLTIxLjctNDhsNS43IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMNDgwIDAgNDQ4IDBDMzc3LjMgMCAzMjAgNTcuMyAzMjAgMTI4bC05NiAwLTIwLjggMC01NC40IDBjLTMwLjcgMC01Ny42IDE2LjMtNzIuNSA0MC44QzMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NmwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41YzEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42Yy0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43YzAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2MwIDAgMCAwIDAgMGwwLTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYVEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncScsXG4gIGljb246IFs0NDgsIDUxMiwgWzExM10sIFwiNTFcIiwgXCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xQzM3MS45IDMyNS44IDM4NCAyOTIuMyAzODQgMjU2YzAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJzMjI0IDEwMC4zIDIyNCAyMjRjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45elwiXVxufTtcbmNvbnN0IGZhRyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTAzXSwgXCI0N1wiLCBcIk0yMjQgOTZDMTM1LjYgOTYgNjQgMTY3LjYgNjQgMjU2czcxLjYgMTYwIDE2MCAxNjBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhMMjU2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDQgMGMyNS44IDAgNDkuNiAyMS40IDQ3LjIgNTAuNkM0MzcuOCAzODkuNiAzNDEuNCA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTdjMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnpcIl1cbn07XG5jb25zdCBmYU5vdGVzTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3Rlcy1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDgxXCIsIFwiTTk2IDM1Mkw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5Ny41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01OC41IDU4LjVjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMMTYwIDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI3MiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBDNjAuOSA1MTIgMCA0NTEuMSAwIDM3NkwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDE2MCAwelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWhhbGYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc3NzcsIFwidGVtcGVyYXR1cmUtMlwiLCBcInRoZXJtb21ldGVyLTJcIiwgXCJ0aGVybW9tZXRlci1oYWxmXCJdLCBcImYyYzlcIiwgXCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2NC41YzAgMTcuMy03LjEgMzEuOS0xNS4zIDQyLjVDODYuMiAzMzIuNiA4MCAzNDkuNSA4MCAzNjhjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTE4LjUtNi4yLTM1LjQtMTYuNy00OC45Yy04LjItMTAuNi0xNS4zLTI1LjItMTUuMy00Mi41TDIwOCAxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEybDAgMTY0LjRjMCAuMSAuMSAuMyAuMiAuNmMuMiAuNiAuOCAxLjYgMS43IDIuOGMxOC45IDI0LjQgMzAuMSA1NSAzMC4xIDg4LjFjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtMzMuMiAxMS4yLTYzLjggMzAuMS04OC4xYy45LTEuMiAxLjUtMi4yIDEuNy0yLjhjLjEtLjMgLjItLjUgLjItLjZMNDggMTEyek0yMDggMzY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM0wxNDQgMjA4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMTQuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZTIgPSBmYVRlbXBlcmF0dXJlSGFsZjtcbmNvbnN0IGZhVGhlcm1vbWV0ZXIyID0gZmFUZW1wZXJhdHVyZUhhbGY7XG5jb25zdCBmYVRoZXJtb21ldGVySGFsZiA9IGZhVGVtcGVyYXR1cmVIYWxmO1xuY29uc3QgZmFEb25nU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb25nLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxNjlcIiwgXCJNMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNDkuMWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xYy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHM1Ny4zIDEyOCAxMjggMTI4YzI0LjUgMCA0Ny40LTYuOSA2Ni44LTE4LjhjNSAxMS4xIDE2LjIgMTguOCAyOS4yIDE4LjhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NiAwLTE2MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTI4IDI4OGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6XCJdXG59O1xuY29uc3QgZmFDYXBzdWxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXBzdWxlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ2YlwiLCBcIk02NCAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0wIDE0NEwwIDM2OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTc4LjRjMS44IDE5LjEgOC4yIDM4IDE5LjggNTQuOEwzNzIuMyA0MzEuN2MzNS41IDUxLjcgMTA1LjMgNjQuMyAxNTYgMjguMXM2My0xMDcuNSAyNy41LTE1OS4yTDQyNy4zIDExMy4zQzM5MS44IDYxLjUgMzIxLjkgNDkgMjcxLjMgODUuMmMtMjggMjAtNDQuMyA1MC44LTQ3LjMgODNsMC0yNC4yYzAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgODIuMSAwIDE0NHptMjk2LjYgNjQuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzFjMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjZMMzYxLjYgMzAzbC02NS05NC44ek00OTEgNDA3LjdjLS44IC42LTEuNiAxLjEtMi40IDEuNmw0LTIuOGMtLjUgLjQtMSAuOC0xLjYgMS4yelwiXVxufTtcbmNvbnN0IGZhUG9vU3Rvcm0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9vLXN0b3JtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwb28tYm9sdFwiXSwgXCJmNzVhXCIsIFwiTTIzNi45IC4yYy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuM2MyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xYzAgMjEuNy04LjUgMzcuMi0yMS45IDQ3LjZjLTEzLjggMTAuOC0zNCAxNy01Ny44IDE3TDEyOCAxMTJjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTIuMiAzLjQgMjMuNSA5LjMgMzMuMkMzMS43IDIxNi4yIDAgMjUyLjQgMCAyOTZjMCA0MC45IDI4IDc1LjQgNjUuOCA4NS4yYy01LjMtMTguNSAxLTM4LjUgMTYuMi01MC43bDE2MC0xMjhjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDI4NS43IDMyMGwxOC4zIDBjMjAuNCAwIDM4LjUgMTIuOSA0NS4zIDMyLjFjMy43IDEwLjYgMy41IDIxLjggMCAzMS45bDEwLjcgMGM0OC42IDAgODgtMzkuNCA4OC04OGMwLTQzLjYtMzEuNy03OS44LTczLjMtODYuOGM1LjktOS43IDkuMy0yMS4xIDkuMy0zMy4yYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xLjQgMGMuOS01LjQgMS40LTEwLjkgMS40LTE2LjZjMC00OC43LTM2LjEtODguOS04My4xLTk1LjJ6bTQ1LjEgMjI3LjRjLTUuOC00LjctMTQuMi00LjctMjAuMS0uMWwtMTYwIDEyOGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOHM4LjMgMTAuNyAxNS4xIDEwLjdsNzAuMSAwTDEyOS43IDQ4OC44Yy0zLjQgNi43LTEuNiAxNC45IDQuMyAxOS42czE0LjIgNC43IDIwLjEgLjFsMTYwLTEyOGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44cy04LjMtMTAuNy0xNS4xLTEwLjdsLTcwLjEgMCA1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4zLTE5LjZ6XCJdXG59O1xuY29uc3QgZmFQb29Cb2x0ID0gZmFQb29TdG9ybTtcbmNvbnN0IGZhRmFjZUZyb3duT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWZyb3duLW9wZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NTAsIFwiZnJvd24tb3BlblwiXSwgXCJmNTdhXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTEyMiAxNzQuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40YzE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNGMtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44elwiXVxufTtcbmNvbnN0IGZhRnJvd25PcGVuID0gZmFGYWNlRnJvd25PcGVuO1xuY29uc3QgZmFIYW5kUG9pbnRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTc1N10sIFwiZjBhNlwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMEwzMiAzMnpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNmMxMy4yIDAgMjUuNC00IDM1LjYtMTAuOGM4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44YzExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyelwiXVxufTtcbmNvbnN0IGZhTW9uZXlCaWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwZDZcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDMyMGwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAxOTJsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTI4OCAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFCb29rbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rbWFyaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODI3OCwgNjE1OTFdLCBcImYwMmVcIiwgXCJNMCA0OFY0ODcuN0MwIDUwMS4xIDEwLjkgNTEyIDI0LjMgNTEyYzUgMCA5LjktMS41IDE0LTQuNEwxOTIgNDAwIDM0NS43IDUwNy42YzQuMSAyLjkgOSA0LjQgMTQgNC40YzEzLjQgMCAyNC4zLTEwLjkgMjQuMy0yNC4zVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHpcIl1cbn07XG5jb25zdCBmYUFsaWduSnVzdGlmeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1qdXN0aWZ5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM5XCIsIFwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFVbWJyZWxsYUJlYWNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VtYnJlbGxhLWJlYWNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTU4XSwgXCJmNWNhXCIsIFwiTTM0Ni4zIDI3MS44bC02MC4xLTIxLjlMMjE0IDQ0OCAzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI2MS45IDAgNjQuMS0xNzYuMnptMTIxLjEtLjJsLTMuMyA5LjEgNjcuNyAyNC42YzE4LjEgNi42IDM4LTQuMiAzOS42LTIzLjRjNi41LTc4LjUtMjMuOS0xNTUuNS04MC44LTIwOC41YzIgOCAzLjIgMTYuMyAzLjQgMjQuOGwuMiA2YzEuOCA1Ny03LjMgMTEzLjgtMjYuOCAxNjcuNHpNNDYyIDk5LjFjLTEuMS0zNC40LTIyLjUtNjQuOC01NC40LTc3LjRjLS45LS40LTEuOS0uNy0yLjgtMS4xYy0zMy0xMS43LTY5LjgtMi40LTkzLjEgMjMuOGwtNCA0LjVDMjcyLjQgODguMyAyNDUgMTM0LjIgMjI2LjggMTg0bC0zLjMgOS4xTDQzNCAyNjkuN2wzLjMtOS4xYzE4LjEtNDkuOCAyNi42LTEwMi41IDI0LjktMTU1LjVsLS4yLTZ6TTEwNy4yIDExMi45Yy0xMS4xIDE1LjctMi44IDM2LjggMTUuMyA0My40bDcxIDI1LjggMy4zLTkuMWMxOS41LTUzLjYgNDkuMS0xMDMgODcuMS0xNDUuNWw0LTQuNWM2LjItNi45IDEzLjEtMTMgMjAuNS0xOC4yYy03OS42IDIuNS0xNTQuNyA0Mi4yLTIwMS4yIDEwOHpcIl1cbn07XG5jb25zdCBmYUhlbG1ldFVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlbG1ldC11bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUwM1wiLCBcIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwQzEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NEwyMDAgMzg0bDE0LjkgMEwzNDMuNSA1MDUuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjUgMC0xLjUtMS41TDM2OCAyODhsODAgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0uNSAwek0zMjAgNDE3LjJsLTc4LTczLjdMMjc0LjQgMjg4bDQ1LjYgMCAwIDEyOS4yek0yODUuMyAxMDMuMWwzNC43IDUyIDAtNDMuMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MiAwIDQzLjJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTE2MCAxMTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYUJ1bGxzZXllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1bGxzZXllJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTQwXCIsIFwiTTQ0OCAyNTZBMTkyIDE5MiAwIDEgMCA2NCAyNTZhMTkyIDE5MiAwIDEgMCAzODQgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQmFjb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFjb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjkzNjNdLCBcImY3ZTVcIiwgXCJNNDM5LjIgMS4yYzExLjItMy4yIDIzLjItLjEgMzEuNCA4LjFMNTE4IDU2LjdsLTI2LjUgNy45Yy01OCAxNi42LTk4LjEgMzkuNi0xMjkuNiA2Ny40Yy0zMS4yIDI3LjUtNTMuMiA1OS4xLTc1LjEgOTAuOWwtMi4zIDMuM0MyNDEuNiAyODguNyAxOTUgMzU2LjYgNzIuOCA0MTcuN0wzNy45IDQzNS4yIDkuNCA0MDYuNmMtNy4zLTcuMy0xMC42LTE3LjYtOS0yNy44czguMS0xOC45IDE3LjMtMjMuNUMxMzYuMSAyOTYuMiAxODAuOSAyMzEgMjIzLjMgMTY5LjNsMi4zLTMuNGMyMS44LTMxLjggNDQuOS02NC45IDc3LjctOTMuOWMzMy40LTI5LjUgNzUuOC01My42IDEzNS45LTcwLjh6TTYxLjggNDU5bDI1LjQtMTIuN2MxMjkuNS02NC43IDE3OS45LTEzOC4xIDIyMy44LTIwMmwyLjItMy4zYzIyLjEtMzIuMSA0Mi4xLTYwLjUgNjkuOS04NS4xYzI3LjUtMjQuMyA2My40LTQ1LjIgMTE3LjMtNjAuNmMwIDAgMCAwIDAgMGwuMi0uMSA0My4xLTEyLjkgMjMgMjNjOCA4IDExLjIgMTkuNyA4LjMgMzAuN3MtMTEuMyAxOS42LTIyLjIgMjIuN2MtNTEuOSAxNC44LTg1LjYgMzQuNy0xMTEuMSA1Ny4yYy0yNi4xIDIzLTQ1LjEgNDkuOS02Ny4zIDgyLjFsLTIuMiAzLjJDMzI3LjggMzY1LjkgMjc1LjUgNDQyIDE0Mi4zIDUwOC42Yy0xMi4zIDYuMi0yNy4yIDMuNy0zNi45LTZMNjEuOCA0NTl6XCJdXG59O1xuY29uc3QgZmFIYW5kUG9pbnREb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtZG93bicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjBhN1wiLCBcIk0zMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIwOC02NCAwIDAgMjA4ek0yMjQgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS05Ni04OGwwIC42YzkuNC01LjQgMjAuMy04LjYgMzItOC42YzEzLjIgMCAyNS40IDQgMzUuNiAxMC44YzguNy0yNC45IDMyLjUtNDIuOCA2MC40LTQyLjhjMTEuNyAwIDIyLjYgMy4xIDMyIDguNmwwLTguNkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwTDE2Mi4zIDBDMTE5LjggMCA3OS4xIDE2LjkgNDkuMSA0Ni45TDM3LjUgNTguNUMxMy41IDgyLjUgMCAxMTUuMSAwIDE0OWwwIDI3YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBsLTU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MnpcIl1cbn07XG5jb25zdCBmYUFycm93VXBGcm9tQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLWJyYWNrZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwOWFcIiwgXCJNMjQ2LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMTkyIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0elwiXVxufTtcbmNvbnN0IGZhRm9sZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE5MywgMTI4NDQ3LCA2MTcxNiwgXCJmb2xkZXItYmxhbmtcIl0sIFwiZjA3YlwiLCBcIk02NCA0ODBINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEgyODhjLTEwLjEgMC0xOS42LTQuNy0yNS42LTEyLjhMMjQzLjIgNTcuNkMyMzEuMSA0MS41IDIxMi4xIDMyIDE5MiAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIl1cbn07XG5jb25zdCBmYUZvbGRlckJsYW5rID0gZmFGb2xkZXI7XG5jb25zdCBmYUZpbGVXYXZlZm9ybSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXdhdmVmb3JtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJmaWxlLW1lZGljYWwtYWx0XCJdLCBcImY0NzhcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDIyNCAxMTIgMGM2LjEgMCAxMS42IDMuNCAxNC4zIDguOEwxNzYgMzMyLjJsNDkuNy05OS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOHMxMS42IDMuNCAxNC4zIDguOEwyODEuOSAyODhsNzAuMSAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwYy02LjEgMC0xMS42LTMuNC0xNC4zLTguOEwyNDAgMjc1LjhsLTQ5LjcgOTkuNGMtMi43IDUuNC04LjMgOC44LTE0LjMgOC44cy0xMS42LTMuNC0xNC4zLTguOEwxMzQuMSAzMjAgMzIgMzIwbDAgMTI4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyNTYgMCA5NiAwek0yODggMGwwIDEyOCAxMjggMEwyODggMHpcIl1cbn07XG5jb25zdCBmYUZpbGVNZWRpY2FsQWx0ID0gZmFGaWxlV2F2ZWZvcm07XG5jb25zdCBmYVJhZGlhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YjlcIiwgXCJNMjE2IDE4Ni43Yy0yMy45IDEzLjgtNDAgMzkuNy00MCA2OS4zTDMyIDI1NkMxNC4zIDI1Ni0uMiAyNDEuNiAyIDIyNC4xQzEwLjcgMTU0IDQ3LjggOTIuNyAxMDEuMyA1MmMxNC4xLTEwLjcgMzMuOC01LjMgNDIuNyAxMGw3MiAxMjQuN3pNMjU2IDMzNmMxNC42IDAgMjguMi0zLjkgNDAtMTAuN2w3MiAxMjQuOGM4LjggMTUuMyAzLjcgMzUuMS0xMi42IDQxLjljLTMwLjYgMTIuOS02NC4yIDIwLTk5LjQgMjBzLTY4LjktNy4xLTk5LjQtMjBjLTE2LjMtNi45LTIxLjQtMjYuNi0xMi42LTQxLjlsNzItMTI0LjhjMTEuOCA2LjggMjUuNCAxMC43IDQwIDEwLjd6bTIyNC04MGwtMTQ0IDBjMC0yOS42LTE2LjEtNTUuNS00MC02OS4zTDM2OCA2MmM4LjgtMTUuMyAyOC42LTIwLjcgNDIuNy0xMGM1My42IDQwLjcgOTAuNiAxMDIgOTkuNCAxNzIuMWMyLjIgMTcuNS0xMi40IDMxLjktMzAgMzEuOXpNMjU2IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDaGFydFNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFydC1zaW1wbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0NzNcIiwgXCJNMTYwIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNMzY4IDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhTWFyc1N0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4OTRdLCBcImYyMjlcIiwgXCJNMzc2IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDM3MC4zIDk2LjQgMzQ1IDcxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDI1LjQgMjUuNEwzMDcuOCAxNTljLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzFjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDI4LjYtMjguNkw0MDcgMjAxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMjUuNC0yNS40IDIyLjEtMjIuMUw0NzEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzNzYgMHptODggNDhzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6TTk2IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwQTExMiAxMTIgMCAxIDEgOTYgMzA0elwiXVxufTtcbmNvbnN0IGZhVmlhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTE0XSwgXCJmNDkyXCIsIFwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNEwyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xTDQ0OCAyMDUuM2w5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTMyLTMyLTk2LTk2LTMyLTMyek0yMDUuMyAyNTZMMzUyIDEwOS4zIDQwMi43IDE2MGwtOTYgOTYtMTAxLjUgMHpcIl1cbn07XG5jb25zdCBmYUdhdWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhdWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkYXNoYm9hcmRcIiwgXCJnYXVnZS1tZWRcIiwgXCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlXCJdLCBcImY2MjRcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwNC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjNjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bS0xNiA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek00MDAgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFEYXNoYm9hcmQgPSBmYUdhdWdlO1xuY29uc3QgZmFHYXVnZU1lZCA9IGZhR2F1Z2U7XG5jb25zdCBmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlID0gZmFHYXVnZTtcbmNvbnN0IGZhV2FuZE1hZ2ljU3BhcmtsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYy1zcGFya2xlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFnaWMtd2FuZC1zcGFya2xlc1wiXSwgXCJlMmNhXCIsIFwiTTIzNC43IDQyLjdMMTk3IDU2LjhjLTMgMS4xLTUgNC01IDcuMnMyIDYuMSA1IDcuMmwzNy43IDE0LjFMMjQ4LjggMTIzYzEuMSAzIDQgNSA3LjIgNXM2LjEtMiA3LjItNWwxNC4xLTM3LjdMMzE1IDcxLjJjMy0xLjEgNS00IDUtNy4ycy0yLTYuMS01LTcuMkwyNzcuMyA0Mi43IDI2My4yIDVjLTEuMS0zLTQtNS03LjItNXMtNi4xIDItNy4yIDVMMjM0LjcgNDIuN3pNNDYuMSAzOTUuNGMtMTguNyAxOC43LTE4LjcgNDkuMSAwIDY3LjlsMzQuNiAzNC42YzE4LjcgMTguNyA0OS4xIDE4LjcgNjcuOSAwTDUyOS45IDExNi41YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45TDQ5NS4zIDE0LjFjLTE4LjctMTguNy00OS4xLTE4LjctNjcuOSAwTDQ2LjEgMzk1LjR6TTQ4NC42IDgyLjZsLTEwNSAxMDUtMjMuMy0yMy4zIDEwNS0xMDUgMjMuMyAyMy4zek03LjUgMTE3LjJDMyAxMTguOSAwIDEyMy4yIDAgMTI4czMgOS4xIDcuNSAxMC44TDY0IDE2MGwyMS4yIDU2LjVjMS43IDQuNSA2IDcuNSAxMC44IDcuNXM5LjEtMyAxMC44LTcuNUwxMjggMTYwbDU2LjUtMjEuMmM0LjUtMS43IDcuNS02IDcuNS0xMC44cy0zLTkuMS03LjUtMTAuOEwxMjggOTYgMTA2LjggMzkuNUMxMDUuMSAzNSAxMDAuOCAzMiA5NiAzMnMtOS4xIDMtMTAuOCA3LjVMNjQgOTYgNy41IDExNy4yem0zNTIgMjU2Yy00LjUgMS43LTcuNSA2LTcuNSAxMC44czMgOS4xIDcuNSAxMC44TDQxNiA0MTZsMjEuMiA1Ni41YzEuNyA0LjUgNiA3LjUgMTAuOCA3LjVzOS4xLTMgMTAuOC03LjVMNDgwIDQxNmw1Ni41LTIxLjJjNC41LTEuNyA3LjUtNiA3LjUtMTAuOHMtMy05LjEtNy41LTEwLjhMNDgwIDM1MmwtMjEuMi01Ni41Yy0xLjctNC41LTYtNy41LTEwLjgtNy41cy05LjEgMy0xMC44IDcuNUw0MTYgMzUybC01Ni41IDIxLjJ6XCJdXG59O1xuY29uc3QgZmFNYWdpY1dhbmRTcGFya2xlcyA9IGZhV2FuZE1hZ2ljU3BhcmtsZXM7XG5jb25zdCBmYUUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZScsXG4gIGljb246IFszMjAsIDUxMiwgWzEwMV0sIFwiNDVcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDI1NiAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw2NCA0MTZsMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMjI0IDY0IDk2bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhUGVuQ2xpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tY2xpcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGVuLWFsdFwiXSwgXCJmMzA1XCIsIFwiTTQ1My4zIDE5LjNsMzkuNCAzOS40YzI1IDI1IDI1IDY1LjUgMCA5MC41bC01Mi4xIDUyLjFzMCAwIDAgMGwtMS0xczAgMCAwIDBsLTE2LTE2LTk2LTk2LTE3LTE3IDUyLjEtNTIuMWMyNS0yNSA2NS41LTI1IDkwLjUgMHpNMjQxIDExNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxMDUgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE3My4xIDgxYzI4LjEtMjguMSA3My43LTI4LjEgMTAxLjggMEwyODggOTQuMWwxNyAxNyA5NiA5NiAxNiAxNiAxIDEtMTcgMTdMMjI5LjUgNDEyLjVjLTQ4IDQ4LTEwOS4yIDgwLjgtMTc1LjggOTQuMWwtMjUgNWMtNy45IDEuNi0xNi0uOS0yMS43LTYuNnMtOC4xLTEzLjgtNi42LTIxLjdsNS0yNWMxMy4zLTY2LjYgNDYuMS0xMjcuOCA5NC4xLTE3NS44TDI1NC4xIDEyOCAyNDEgMTE0Ljl6XCJdXG59O1xuY29uc3QgZmFQZW5BbHQgPSBmYVBlbkNsaXA7XG5jb25zdCBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0Y2FcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJsNDAgMCAwIDY0LTcyIDAgMCAxMjhjNTMgMCA5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMmwwLTcyLjItNzIgMCAwLTY0IDQwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQ4OCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0zNjAgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjMyIDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgxMDAsIDYyMTQ0XSwgXCJmMDA3XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43QzQ0OCAzODMuOCAzNjguMiAzMDQgMjY5LjcgMzA0bC05MS40IDB6XCJdXG59O1xuY29uc3QgZmFTY2hvb2xDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTZiXCIsIFwiTTMzNy44IDUuNEMzMjctMS44IDMxMy0xLjggMzAyLjIgNS40TDE2Ni4zIDk2IDQ4IDk2QzIxLjUgOTYgMCAxMTcuNSAwIDE0NEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNzIgMHMwIDAgMCAwbC02NCAwIDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjMgMCAuNSAwYzMuNC0zNy43IDE4LjctNzIuMSA0Mi4yLTk5LjFDMzUwLjIgMjYwIDMzNS42IDI2NCAzMjAgMjY0Yy00OC42IDAtODgtMzkuNC04OC04OHMzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAxOC4zLTUuNiAzNS4zLTE1LjEgNDkuNGMyOS0yMSA2NC42LTMzLjQgMTAzLjEtMzMuNGM1OS41IDAgMTEyLjEgMjkuNiAxNDQgNzQuOEw2NDAgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ3My43IDk2IDMzNy44IDUuNHpNOTYgMTkybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6bTAgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6TTMyMCAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS05OS4zLTQzLjNjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN3pcIl1cbn07XG5jb25zdCBmYUR1bXBzdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bXBzdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzkzXCIsIFwiTTQ5LjcgMzJjLTEwLjUgMC0xOS44IDYuOS0yMi45IDE2LjlMLjkgMTMzYy0uNiAyLS45IDQuMS0uOSA2LjFDMCAxNTAuNyA5LjMgMTYwIDIwLjkgMTYwbDk0IDBMMTQwLjUgMzIgNDkuNyAzMnpNMjcyIDE2MGwwLTEyOC05OC45IDBMMTQ3LjUgMTYwIDI3MiAxNjB6bTMyIDBsMTI0LjUgMEw0MDIuOSAzMiAzMDQgMzJsMCAxMjh6bTE1Ny4xIDBsOTQgMGMxMS41IDAgMjAuOS05LjMgMjAuOS0yMC45YzAtMi4xLS4zLTQuMS0uOS02LjFMNTQ5LjIgNDguOUM1NDYuMSAzOC45IDUzNi44IDMyIDUyNi4zIDMybC05MC44IDAgMjUuNiAxMjh6TTMyIDE5Mmw0IDMyLTQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMiAwTDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDMyMCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjAtMTYwIDEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQgMCA0LTMyTDMyIDE5MnpcIl1cbn07XG5jb25zdCBmYVZhblNodXR0bGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmFuLXNodXR0bGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2NTYsIFwic2h1dHRsZS12YW5cIl0sIFwiZjViNlwiLCBcIk02NCAxMDRsMCA4OCA5NiAwIDAtOTZMNzIgOTZjLTQuNCAwLTggMy42LTggOHptNDgyIDg4TDQ2NS4xIDk2IDM4NCA5NmwwIDk2IDE2MiAwem0tMjI2IDBsMC05Ni05NiAwIDAgOTYgOTYgMHpNNTkyIDM4NGwtMTYgMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTI4IDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTA0QzAgNjQuMiAzMi4yIDMyIDcyIDMybDEyMCAwIDE2MCAwIDExMy4xIDBjMTguOSAwIDM2LjggOC4zIDQ5IDIyLjhMNjI1IDE4Ni41YzkuNyAxMS41IDE1IDI2LjEgMTUgNDEuMkw2NDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0tNjQgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjAgNDMyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVNodXR0bGVWYW4gPSBmYVZhblNodXR0bGU7XG5jb25zdCBmYUJ1aWxkaW5nVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy11c2VyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGRhXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgODkuOSAwYy02LjMtMTAuMi05LjktMjIuMi05LjktMzUuMWMwLTQ2LjkgMjUuOC04Ny44IDY0LTEwOS4ybDAtOTUuOUwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNTc2IDI3MmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTM1MiA0NzcuMWMwIDE5LjMgMTUuNiAzNC45IDM0LjkgMzQuOWwyMTguMiAwYzE5LjMgMCAzNC45LTE1LjYgMzQuOS0zNC45YzAtNTEuNC00MS43LTkzLjEtOTMuMS05My4xbC0xMDEuOCAwYy01MS40IDAtOTMuMSA0MS43LTkzLjEgOTMuMXpcIl1cbn07XG5jb25zdCBmYVNxdWFyZUNhcmV0TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLWxlZnRcIl0sIFwiZjE5MVwiLCBcIk0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2ek0xMjggMjU2YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40czE0LjQgMTIuNSAxNC40IDIybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42elwiXVxufTtcbmNvbnN0IGZhQ2FyZXRTcXVhcmVMZWZ0ID0gZmFTcXVhcmVDYXJldExlZnQ7XG5jb25zdCBmYUhpZ2hsaWdodGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hpZ2hsaWdodGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTkxXCIsIFwiTTMxNSAzMTVsMTU4LjQtMjE1TDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVzMCAwIDAgMGwwLTcxLjdjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwYzExLjQgMCAyMi40IDQuNSAzMC41IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjVjMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41TDIyNCA0MTZsLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w2My02MyA3MC42IDcwLjYtMzEgMzFjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3elwiXVxufTtcbmNvbnN0IGZhS2V5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI3M10sIFwiZjA4NFwiLCBcIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDBTMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwiXVxufTtcbmNvbnN0IGZhQnVsbGhvcm4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVsbGhvcm4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjYsIDEyODM2M10sIFwiZjBhMVwiLCBcIk00ODAgMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlMMzgxLjcgNTNjLTQ4IDQ4LTExMy4xIDc1LTE4MSA3NWwtOC43IDAtMzIgMC05NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjggOC43IDBjNjcuOSAwIDEzMyAyNyAxODEgNzVsNDMuNiA0My42YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45czE5LjgtMTYuNiAxOS44LTI5LjZsMC0xNDcuNmMxOC42LTguOCAzMi0zMi41IDMyLTYwLjRzLTEzLjQtNTEuNi0zMi02MC40TDQ4MCAzMnptLTY0IDc2LjdMNDE2IDI0MGwwIDEzMS4zQzM1Ny4yIDMxNy44IDI4MC41IDI4OCAyMDAuNyAyODhsLTguNyAwIDAtOTYgOC43IDBjNzkuOCAwIDE1Ni41LTI5LjggMjE1LjMtODMuM3pcIl1cbn07XG5jb25zdCBmYUdsb2JlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dsb2JlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzYwXSwgXCJmMGFjXCIsIFwiTTM1MiAyNTZjMCAyMi4yLTEuMiA0My42LTMuMyA2NGwtMTg1LjMgMGMtMi4yLTIwLjQtMy4zLTQxLjgtMy4zLTY0czEuMi00My42IDMuMy02NGwxODUuMyAwYzIuMiAyMC40IDMuMyA0MS44IDMuMyA2NHptMjguOC02NGwxMjMuMSAwYzUuMyAyMC41IDguMSA0MS45IDguMSA2NHMtMi44IDQzLjUtOC4xIDY0bC0xMjMuMSAwYzIuMS0yMC42IDMuMi00MiAzLjItNjRzLTEuMS00My40LTMuMi02NHptMTEyLjYtMzJsLTExNi43IDBjLTEwLTYzLjktMjkuOC0xMTcuNC01NS4zLTE1MS42Yzc4LjMgMjAuNyAxNDIgNzcuNSAxNzEuOSAxNTEuNnptLTE0OS4xIDBsLTE3Ni42IDBjNi4xLTM2LjQgMTUuNS02OC42IDI3LTk0LjdjMTAuNS0yMy42IDIyLjItNDAuNyAzMy41LTUxLjVDMjM5LjQgMy4yIDI0OC43IDAgMjU2IDBzMTYuNiAzLjIgMjcuOCAxMy44YzExLjMgMTAuOCAyMyAyNy45IDMzLjUgNTEuNWMxMS42IDI2IDIwLjkgNTguMiAyNyA5NC43em0tMjA5IDBMMTguNiAxNjBDNDguNiA4NS45IDExMi4yIDI5LjEgMTkwLjYgOC40QzE2NS4xIDQyLjYgMTQ1LjMgOTYuMSAxMzUuMyAxNjB6TTguMSAxOTJsMTIzLjEgMGMtMi4xIDIwLjYtMy4yIDQyLTMuMiA2NHMxLjEgNDMuNCAzLjIgNjRMOC4xIDMyMEMyLjggMjk5LjUgMCAyNzguMSAwIDI1NnMyLjgtNDMuNSA4LjEtNjR6TTE5NC43IDQ0Ni42Yy0xMS42LTI2LTIwLjktNTguMi0yNy05NC42bDE3Ni42IDBjLTYuMSAzNi40LTE1LjUgNjguNi0yNyA5NC42Yy0xMC41IDIzLjYtMjIuMiA0MC43LTMzLjUgNTEuNUMyNzIuNiA1MDguOCAyNjMuMyA1MTIgMjU2IDUxMnMtMTYuNi0zLjItMjcuOC0xMy44Yy0xMS4zLTEwLjgtMjMtMjcuOS0zMy41LTUxLjV6TTEzNS4zIDM1MmMxMCA2My45IDI5LjggMTE3LjQgNTUuMyAxNTEuNkMxMTIuMiA0ODIuOSA0OC42IDQyNi4xIDE4LjYgMzUybDExNi43IDB6bTM1OC4xIDBjLTMwIDc0LjEtOTMuNiAxMzAuOS0xNzEuOSAxNTEuNmMyNS41LTM0LjIgNDUuMi04Ny43IDU1LjMtMTUxLjZsMTE2LjcgMHpcIl1cbn07XG5jb25zdCBmYVN5bmFnb2d1ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzeW5hZ29ndWUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgzMzNdLCBcImY2OWJcIiwgXCJNMzA5LjggMy43YzUuOS00LjkgMTQuNi00LjkgMjAuNSAwbDEyMSAxMDAuOEM0NjkuNSAxMTkuNyA0ODAgMTQyLjIgNDgwIDE2NmwwIDExNC4xTDQ4MCA1MTJsLTE2IDAtMTEyIDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2LTExMiAwLTE2IDAgMC0yMzEuOUwxNjAgMTY2YzAtMjMuNyAxMC41LTQ2LjMgMjguOC02MS41TDMwOS44IDMuN3pNNTEyIDUxMmwwLTI2Ny41IDI4LjEtMzEuMmMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNsNjMuOCA3MC45YzcuOSA4LjggMTIuMyAyMC4zIDEyLjMgMzIuMUw2NDAgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwek0xMjggMjQ0LjVMMTI4IDUxMmwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTYuM2MwLTExLjkgNC40LTIzLjMgMTIuMy0zMi4xbDYzLjgtNzAuOWMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNMMTI4IDI0NC41ek0zMjcgMTI0LjNjLTMuMS01LjQtMTAuOS01LjQtMTMuOSAwbC0xNS45IDI4LjEtMzIuMy0uM2MtNi4yLS4xLTEwLjEgNi43LTcgMTIuMUwyNzQuMyAxOTJsLTE2LjQgMjcuOGMtMy4yIDUuNCAuNyAxMi4xIDcgMTIuMWwzMi4zLS4zTDMxMyAyNTkuN2MzLjEgNS40IDEwLjkgNS40IDEzLjkgMGwxNS45LTI4LjEgMzIuMyAuM2M2LjIgLjEgMTAuMS02LjcgNy0xMi4xTDM2NS43IDE5MmwxNi40LTI3LjhjMy4yLTUuNC0uNy0xMi4xLTctMTIuMWwtMzIuMyAuM0wzMjcgMTI0LjN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25IYWxmRHJlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWhhbGYtZHJlc3MnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImU1NDhcIiwgXCJNMTYwIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em04IDM1MmwwLTIyNCA2LjkgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw1OC4zIDk3YzkuMSAxNS4xIDQuMiAzNC44LTEwLjkgNDMuOXMtMzQuOCA0LjItNDMuOS0xMC45TDIzMiAyNTYuOSAyMzIgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4czAgMCAwIDB6TTU4LjIgMTgyLjNjMTkuOS0zMy4xIDU1LjMtNTMuNSA5My44LTU0LjNsMCAyNTZzMCAwIDAgMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw5My4zIDI0OC4xIDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1My42LTg5LjJ6XCJdXG59O1xuY29uc3QgZmFSb2FkQnJpZGdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtYnJpZGdlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTYzXCIsIFwiTTM1MiAwTDYwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ4MCAyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTQ4MCA0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTMyIDk2bDI1NiAwIDAgNjQtNDAgMCAwIDY0IDQwIDAgMCA5NmMtNTMgMC05NiA0My05NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMtNDMtOTYtOTYtOTZsMC05NiA3MiAwIDAtNjQtNDAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTY4IDY0bC04MCAwIDAgNjQgODAgMCAwLTY0elwiXVxufTtcbmNvbnN0IGZhTG9jYXRpb25BcnJvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1hcnJvdycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEyNFwiLCBcIk00MjkuNiA5Mi4xYzQuOS0xMS45IDIuMS0yNS42LTctMzQuN3MtMjIuOC0xMS45LTM0LjctN2wtMzUyIDE0NGMtMTQuMiA1LjgtMjIuMiAyMC44LTE5LjMgMzUuOHMxNi4xIDI1LjggMzEuNCAyNS44bDE3NiAwIDAgMTc2YzAgMTUuMyAxMC44IDI4LjQgMjUuOCAzMS40czMwLTUuMSAzNS44LTE5LjNsMTQ0LTM1MnpcIl1cbn07XG5jb25zdCBmYUMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYycsXG4gIGljb246IFszODQsIDUxMiwgWzk5XSwgXCI0M1wiLCBcIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zczE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjhzMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwelwiXVxufTtcbmNvbnN0IGZhVGFibGV0QnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldC1idXR0b24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxMGFcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMjI0IDQwMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0xvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctbG9jaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkNlwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDg4LjYgMGMtNS40LTkuNC04LjYtMjAuMy04LjYtMzJsMC0xMjhjMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNmMwLTMwLjUgMTIuMi01OC4yIDMyLTc4LjRMMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xMTItMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNODAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAyNDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMmwwIDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwiXVxufTtcbmNvbnN0IGZhUGl6emFTbGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaXp6YS1zbGljZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgxOFwiLCBcIk0xNjkuNyAuOWMtMjIuOC0xLjYtNDEuOSAxNC00Ny41IDM0LjdMMTEwLjQgODBjLjUgMCAxLjEgMCAxLjYgMGMxNzYuNyAwIDMyMCAxNDMuMyAzMjAgMzIwYzAgLjUgMCAxLjEgMCAxLjZsNDQuNC0xMS44YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjVDNDk4LjUgMTU5LjUgMzUyLjUgMTMuNSAxNjkuNyAuOXpNMzk5LjggNDEwLjJjLjEtMy40IC4yLTYuOCAuMi0xMC4yYzAtMTU5LjEtMTI4LjktMjg4LTI4OC0yODhjLTMuNCAwLTYuOCAuMS0xMC4yIC4yTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMUwzOTkuOCA0MTAuMnpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFdhdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbC13YXZlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTNhXCIsIFwiTTAgMTEyLjVMMCA0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNGwwLTMwOS45YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMjg4IDM1MmMtNDQuMiAwLTgwLTQzLTgwLTk2czM1LjgtOTYgODAtOTZzODAgNDMgODAgOTZzLTM1LjggOTYtODAgOTZ6TTY0IDM1MmMzNS4zIDAgNjQgMjguNyA2NCA2NGwtNjQgMCAwLTY0em02NC0yMDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMC02NCA2NCAwek01MTIgMzA0bDAgNjQtNjQgMGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDk2bDY0IDAgMCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJdXG59O1xuY29uc3QgZmFDaGFydEFyZWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtYXJlYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJlYS1jaGFydFwiXSwgXCJmMWZlXCIsIFwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAyODhsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02OC4yYzAtNy42LTIuNy0xNS03LjctMjAuOGwtNjUuOC03Ni44Yy0xMi4xLTE0LjItMzMuNy0xNS00Ni45LTEuOGwtMjEgMjFjLTEwIDEwLTI2LjQgOS4yLTM1LjQtMS42bC0zOS4yLTQ3Yy0xMi42LTE1LjEtMzUuNy0xNS40LTQ4LjctLjZMMTM1LjkgMjE1Yy01LjEgNS44LTcuOSAxMy4zLTcuOSAyMS4xbDAgODRjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFBcmVhQ2hhcnQgPSBmYUNoYXJ0QXJlYTtcbmNvbnN0IGZhSG91c2VGbGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGRcIiwgXCJNNDgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwIDAgMzIwIDY0IDAgMC0zMjAgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNkw1MTIgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQxNiAxNTlMMjc2LjggMzkuN2MtMTItMTAuMy0yOS43LTEwLjMtNDEuNyAwbC0yMjQgMTkyQzEgMjQwLjQtMi43IDI1NC41IDIgMjY3LjFTMTguNiAyODggMzIgMjg4bDMyIDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NC43IDAgLjIgMC0xIDAgMC0zNTN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25DaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQwXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHptMTM2IDE2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY4MywgXCJjYW5jZWxcIl0sIFwiZjA1ZVwiLCBcIk0zNjcuMiA0MTIuNUw5OS41IDE0NC44Qzc3LjEgMTc2LjEgNjQgMjE0LjUgNjQgMjU2YzAgMTA2IDg2IDE5MiAxOTIgMTkyYzQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zQzQzNC45IDMzNS45IDQ0OCAyOTcuNSA0NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyYy00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUNhbmNlbCA9IGZhQmFuO1xuY29uc3QgZmFDYW1lcmFSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FtZXJhLXJvdGF0ZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTBkOFwiLCBcIk0yMTMuMSA2NC44TDIwMi43IDk2IDEyOCA5NmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTc0LjcgMEw0MjYuOSA2NC44QzQyMC40IDQ1LjIgNDAyLjEgMzIgMzgxLjQgMzJMMjU4LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNNDQ4IDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTc2LjcgMGMtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zYzAtMyAxLjItNS45IDMuMy04TDM3MSAyMjljLTEzLjYtMTMuNC0zMS45LTIxLTUxLTIxYy0xOS4yIDAtMzcuNyA3LjYtNTEuMyAyMS4zTDI0OSAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTkuNy0xOS43QzI1Ny40IDE3Mi43IDI4OCAxNjAgMzIwIDE2MGMzMS44IDAgNjIuNCAxMi42IDg1IDM1bDIzLjctMjMuN2MyLjEtMi4xIDUtMy4zIDgtMy4zYzYuMiAwIDExLjMgNS4xIDExLjMgMTEuM2wwIDc2Ljd6TTE5MiAzMjBjMC04LjggNy4yLTE2IDE2LTE2bDc2LjcgMGM2LjIgMCAxMS4zIDUuMSAxMS4zIDExLjNjMCAzLTEuMiA1LjktMy4zIDhMMjY5IDM0N2MxMy42IDEzLjQgMzEuOSAyMSA1MSAyMWMxOS4yIDAgMzcuNy03LjYgNTEuMy0yMS4zTDM5MSAzMjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xOS43IDE5LjdDMzgyLjYgNDAzLjMgMzUyIDQxNiAzMjAgNDE2Yy0zMS44IDAtNjIuNC0xMi42LTg1LTM1bC0yMy43IDIzLjdjLTIuMSAyLjEtNSAzLjMtOCAzLjNjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuM2wwLTc2Ljd6XCJdXG59O1xuY29uc3QgZmFTcHJheUNhblNwYXJrbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwcmF5LWNhbi1zcGFya2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYWlyLWZyZXNoZW5lclwiXSwgXCJmNWQwXCIsIFwiTTk2IDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJ6bTAgMTI4Yy01MyAwLTk2IDQzLTk2IDk2TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMTYwem02NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMzg0IDQ4YzAtMS40LTEtMy0yLjItMy42TDM1MiAzMiAzMzkuNiAyLjJDMzM5IDEgMzM3LjQgMCAzMzYgMHMtMyAxLTMuNiAyLjJMMzIwIDMyIDI5MC4yIDQ0LjRDMjg5IDQ1IDI4OCA0Ni42IDI4OCA0OGMwIDEuNCAxIDMgMi4yIDMuNkwzMjAgNjRsMTIuNCAyOS44QzMzMyA5NSAzMzQuNiA5NiAzMzYgOTZzMy0xIDMuNi0yLjJMMzUyIDY0bDI5LjgtMTIuNEMzODMgNTEgMzg0IDQ5LjQgMzg0IDQ4em03Ni40IDQ1LjhDNDYxIDk1IDQ2Mi42IDk2IDQ2NCA5NnMzLTEgMy42LTIuMkw0ODAgNjRsMjkuOC0xMi40QzUxMSA1MSA1MTIgNDkuNCA1MTIgNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDMyIDQ2Ny42IDIuMkM0NjcgMSA0NjUuNCAwIDQ2NCAwcy0zIDEtMy42IDIuMkw0NDggMzIgNDE4LjIgNDQuNEM0MTcgNDUgNDE2IDQ2LjYgNDE2IDQ4YzAgMS40IDEgMyAyLjIgMy42TDQ0OCA2NGwxMi40IDI5Ljh6bTcuMiAxMDAuNGMtLjYtMS4yLTIuMi0yLjItMy42LTIuMnMtMyAxLTMuNiAyLjJMNDQ4IDIyNGwtMjkuOCAxMi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42YzAgMS40IDEgMyAyLjIgMy42TDQ0OCAyNTZsMTIuNCAyOS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDI1NmwyOS44LTEyLjRjMS4yLS42IDIuMi0yLjIgMi4yLTMuNmMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMjI0bC0xMi40LTI5Ljh6TTQ0OCAxNDRjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDEyOCA0MDMuNiA5OC4yQzQwMyA5NyA0MDEuNCA5NiA0MDAgOTZzLTMgMS0zLjYgMi4yTDM4NCAxMjhsLTI5LjggMTIuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNmMwIDEuNCAxIDMgMi4yIDMuNkwzODQgMTYwbDEyLjQgMjkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQxNiAxNjBsMjkuOC0xMi40YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6XCJdXG59O1xuY29uc3QgZmFBaXJGcmVzaGVuZXIgPSBmYVNwcmF5Q2FuU3BhcmtsZXM7XG5jb25zdCBmYVN0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhcicsXG4gIGljb246IFs1NzYsIDUxMiwgWzExMDg4LCA2MTQ0Nl0sIFwiZjAwNVwiLCBcIk0zMTYuOSAxOEMzMTEuNiA3IDMwMC40IDAgMjg4LjEgMHMtMjMuNCA3LTI4LjggMThMMTk1IDE1MC4zIDUxLjQgMTcxLjVjLTEyIDEuOC0yMiAxMC4yLTI1LjcgMjEuN3MtLjcgMjQuMiA3LjkgMzIuN0wxMzcuOCAzMjkgMTEzLjIgNDc0LjdjLTIgMTIgMyAyNC4yIDEyLjkgMzEuM3MyMyA4IDMzLjggMi4zbDEyOC4zLTY4LjUgMTI4LjMgNjguNWMxMC44IDUuNyAyMy45IDQuOSAzMy44LTIuM3MxNC45LTE5LjMgMTIuOS0zMS4zTDQzOC41IDMyOSA1NDIuNyAyMjUuOWM4LjYtOC41IDExLjctMjEuMiA3LjktMzIuN3MtMTMuNy0xOS45LTI1LjctMjEuN0wzODEuMiAxNTAuMyAzMTYuOSAxOHpcIl1cbn07XG5jb25zdCBmYVJlcGVhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBlYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNTddLCBcImYzNjNcIiwgXCJNMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTUzIDQzLTk2IDk2LTk2bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzMyMCAxOS4xIDMyMCAzMmwwIDMyTDE2MCA2NEM3MS42IDY0IDAgMTM1LjYgMCAyMjR6bTUxMiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDUzLTQzIDk2LTk2IDk2bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNmwwLTMyIDE2MCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwelwiXVxufTtcbmNvbnN0IGZhQ3Jvc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvc3MnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgzMjcsIDEwMDEzXSwgXCJmNjU0XCIsIFwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwLTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsODAgMCAwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4IDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAwelwiXVxufTtcbmNvbnN0IGZhQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JveCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODIzMF0sIFwiZjQ2NlwiLCBcIk01MC43IDU4LjVMMCAxNjBsMjA4IDAgMC0xMjhMOTMuNyAzMkM3NS41IDMyIDU4LjkgNDIuMyA1MC43IDU4LjV6TTI0MCAxNjBsMjA4IDBMMzk3LjMgNTguNUMzODkuMSA0Mi4zIDM3Mi41IDMyIDM1NC4zIDMyTDI0MCAzMmwwIDEyOHptMjA4IDMyTDAgMTkyIDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0elwiXVxufTtcbmNvbnN0IGZhVmVudXNNYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzLW1hcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODkyXSwgXCJmMjI4XCIsIFwiTTE3NiAyODhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0zNTIgMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOUM2Mi4xIDMzNC4xIDAgMjYyLjMgMCAxNzZDMCA3OC44IDc4LjggMCAxNzYgMHMxNzYgNzguOCAxNzYgMTc2ek0yNzEuOSAzNjAuNmMxOS4zLTEwLjEgMzYuOS0yMy4xIDUyLjEtMzguNGMyMCAxOC41IDQ2LjcgMjkuOCA3Ni4xIDI5LjhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJzLTUwLjEtMTEyLTExMi0xMTJjLTcuMiAwLTE0LjMgLjctMjEuMSAyYy00LjktMjEuNS0xMy00MS43LTI0LTYwLjJDMzY5LjMgNjYgMzg0LjQgNjQgNDAwIDY0YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsMjAuNi0yMC42TDQ4NyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM0OTQuMyAwIDUwNCAwTDYxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEw1NDUgMTQwLjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtNTAuNSAwLTk2LTIxLjMtMTI4LjEtNTUuNHpcIl1cbn07XG5jb25zdCBmYUFycm93UG9pbnRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1wb2ludGVyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJtb3VzZS1wb2ludGVyXCJdLCBcImYyNDVcIiwgXCJNMCA1NS4yTDAgNDI2YzAgMTIuMiA5LjkgMjIgMjIgMjJjNi4zIDAgMTIuNC0yLjcgMTYuNi03LjVMMTIxLjIgMzQ2bDU4LjEgMTE2LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45TDE3OS44IDMyMGwxMTguMSAwYzEyLjIgMCAyMi4xLTkuOSAyMi4xLTIyLjFjMC02LjMtMi43LTEyLjMtNy40LTE2LjVMMzguNiAzNy45QzM0LjMgMzQuMSAyOC45IDMyIDIzLjIgMzJDMTAuNCAzMiAwIDQyLjQgMCA1NS4yelwiXVxufTtcbmNvbnN0IGZhTW91c2VQb2ludGVyID0gZmFBcnJvd1BvaW50ZXI7XG5jb25zdCBmYU1heGltaXplID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJleHBhbmQtYXJyb3dzLWFsdFwiXSwgXCJmMzFlXCIsIFwiTTIwMCAzMkw1NiAzMkM0Mi43IDMyIDMyIDQyLjcgMzIgNTZsMCAxNDRjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDQwLTQwIDc5IDc5LTc5IDc5TDczIDI5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMiAzMDIuMyAzMiAzMTJsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJsLTQwIDQwLTc5LTc5IDc5LTc5IDQwIDQwYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMTIgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsNDAgNDAtNzkgNzktNzktNzkgNDAtNDBjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMyMDkuNyAzMiAyMDAgMzJ6XCJdXG59O1xuY29uc3QgZmFFeHBhbmRBcnJvd3NBbHQgPSBmYU1heGltaXplO1xuY29uc3QgZmFDaGFyZ2luZ1N0YXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcmdpbmctc3RhdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjVlN1wiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTQ0IDE2IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAzMmMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcybDAtMTIzLjdjMzIuNS0xMC4yIDU2LTQwLjUgNTYtNzYuM2wwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCAzNS44IDIzLjUgNjYuMSA1NiA3Ni4zTDQ3MiAzNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMmMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMCAwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMTYuOSA4Mi43YzYgNCA4LjUgMTEuNSA2LjMgMTguM2wtMjUgNzQuOSA1Ny44IDBjNi43IDAgMTIuNyA0LjIgMTUgMTAuNHMuNSAxMy4zLTQuNiAxNy43bC0xMTIgOTZjLTUuNSA0LjctMTMuNCA1LjEtMTkuMyAxLjFzLTguNS0xMS41LTYuMy0xOC4zbDI1LTc0LjlMOTYgMjA4Yy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43bDExMi05NmM1LjUtNC43IDEzLjQtNS4xIDE5LjMtMS4xelwiXVxufTtcbmNvbnN0IGZhU2hhcGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXBlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widHJpYW5nbGUtY2lyY2xlLXNxdWFyZVwiXSwgXCJmNjFmXCIsIFwiTTMxNS40IDE1LjVDMzA5LjcgNS45IDI5OS4yIDAgMjg4IDBzLTIxLjcgNS45LTI3LjQgMTUuNWwtOTYgMTYwYy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJzMTYuMyAxNi4yIDI3LjggMTYuMmwxOTIgMGMxMS41IDAgMjIuMi02LjIgMjcuOC0xNi4yczUuNS0yMi4zLS40LTMyLjJsLTk2LTE2MHpNMjg4IDMxMmwwIDE0NGMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNDQgMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTE0NGMwLTIyLjEtMTcuOS00MC00MC00MGwtMTQ0IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0xMjggNTEyYTEyOCAxMjggMCAxIDAgMC0yNTYgMTI4IDEyOCAwIDEgMCAwIDI1NnpcIl1cbn07XG5jb25zdCBmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlID0gZmFTaGFwZXM7XG5jb25zdCBmYVNodWZmbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2h1ZmZsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1NiwgXCJyYW5kb21cIl0sIFwiZjA3NFwiLCBcIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45cy0xOS44LTE2LjYtMTkuOC0yOS42bDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOEwyODQgMjI5LjMgMjQ0IDE3NmwzMS4yLTQxLjZDMjkzLjMgMTEwLjIgMzIxLjggOTYgMzUyIDk2bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42ek0xNjQgMjgyLjdMMjA0IDMzNmwtMzEuMiA0MS42QzE1NC43IDQwMS44IDEyNi4yIDQxNiA5NiA0MTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMGMxMC4xIDAgMTkuNi00LjcgMjUuNi0xMi44TDE2NCAyODIuN3ptMjc0LjYgMTg4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTMyLTMyIDBjLTMwLjIgMC01OC43LTE0LjItNzYuOC0zOC40TDEyMS42IDE3Mi44Yy02LTguMS0xNS41LTEyLjgtMjUuNi0xMi44bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRMMzI2LjQgMzM5LjJjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOGwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NHpcIl1cbn07XG5jb25zdCBmYVJhbmRvbSA9IGZhU2h1ZmZsZTtcbmNvbnN0IGZhUGVyc29uUnVubmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tcnVubmluZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzkzOSwgXCJydW5uaW5nXCJdLCBcImY3MGNcIiwgXCJNMzIwIDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTEyNS43IDE3NS41YzkuOS05LjkgMjMuNC0xNS41IDM3LjUtMTUuNWMxLjkgMCAzLjggLjEgNS42IC4zTDEzNy42IDI1NGMtOS4zIDI4IDEuNyA1OC44IDI2LjggNzQuNWw4Ni4yIDUzLjktMjUuNCA4OC44Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMjguNy0xMDAuNGM1LjktMjAuNi0yLjYtNDIuNi0yMC43LTUzLjlMMjM4IDI5OWwzMC45LTgyLjQgNS4xIDEyLjNDMjg5IDI2NC43IDMyMy45IDI4OCAzNjIuNyAyODhsMjEuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMS4zIDBjLTEyLjkgMC0yNC42LTcuOC0yOS41LTE5LjdsLTYuMy0xNWMtMTQuNi0zNS4xLTQ0LjEtNjEuOS04MC41LTczLjFsLTQ4LjctMTVjLTExLjEtMy40LTIyLjctNS4yLTM0LjQtNS4yYy0zMSAwLTYwLjggMTIuMy04Mi43IDM0LjNMNTcuNCAxNTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwyMy4xLTIzLjF6TTkxLjIgMzUyTDMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OS42IDBjMTkgMCAzNi4yLTExLjIgNDMuOS0yOC41TDE1NyAzNjEuNmwtOS41LTZjLTE3LjUtMTAuOS0zMC41LTI2LjgtMzcuOS00NC45TDkxLjIgMzUyelwiXVxufTtcbmNvbnN0IGZhUnVubmluZyA9IGZhUGVyc29uUnVubmluZztcbmNvbnN0IGZhTW9iaWxlUmV0cm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLXJldHJvJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTI3XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptNjQgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDM1MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDU2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2LTU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNTZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptNTYtNTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA1NmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggNDhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMHpcIl1cbn07XG5jb25zdCBmYUdyaXBMaW5lc1ZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtbGluZXMtdmVydGljYWwnLFxuICBpY29uOiBbMTkyLCA1MTIsIFtdLCBcImY3YTVcIiwgXCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NHptMTI4IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NHpcIl1cbn07XG5jb25zdCBmYVNwaWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGlkZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzNzVdLCBcImY3MTdcIiwgXCJNMTU4LjQgMzIuNmM0LjgtMTIuNC0xLjQtMjYuMy0xMy44LTMxcy0yNi4zIDEuNC0zMSAxMy44TDgxLjEgMTAwYy03LjkgMjAuNy0zIDQ0LjEgMTIuNyA1OS43bDU3LjQgNTcuNEw3MC44IDE5MC4zYy0yLjQtLjgtNC4zLTIuNy01LjEtNS4xTDQ2LjggMTI4LjRDNDIuNiAxMTUuOCAyOSAxMDkgMTYuNCAxMTMuMlMtMyAxMzEgMS4yIDE0My42bDE4LjkgNTYuOGM1LjYgMTYuNyAxOC43IDI5LjggMzUuNCAzNS40TDExNi4xIDI1NiA1NS42IDI3Ni4yYy0xNi43IDUuNi0yOS44IDE4LjctMzUuNCAzNS40TDEuMiAzNjguNEMtMyAzODEgMy44IDM5NC42IDE2LjQgMzk4LjhzMjYuMi0yLjYgMzAuNC0xNS4ybDE4LjktNTYuOGMuOC0yLjQgMi43LTQuMyA1LjEtNS4xbDgwLjQtMjYuOEw5My43IDM1Mi4zQzc4LjEgMzY4IDczLjEgMzkxLjQgODEuMSA0MTJsMzIuNSA4NC42YzQuOCAxMi40IDE4LjYgMTguNSAzMSAxMy44czE4LjUtMTguNiAxMy44LTMxbC0zMi41LTg0LjZjLTEuMS0zLS40LTYuMyAxLjgtOC41TDE2MCAzNTMuOWMxIDUyLjEgNDMuNiA5NC4xIDk2IDk0LjFzOTUtNDEuOSA5Ni05NC4xbDMyLjMgMzIuM2MyLjIgMi4yIDIuOSA1LjYgMS44IDguNWwtMzIuNSA4NC42Yy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhMNDMwLjkgNDEyYzcuOS0yMC43IDMtNDQuMS0xMi43LTU5LjdsLTU3LjQtNTcuNCA4MC40IDI2LjhjMi40IC44IDQuMyAyLjcgNS4xIDUuMWwxOC45IDU2LjhjNC4yIDEyLjYgMTcuOCAxOS40IDMwLjQgMTUuMnMxOS40LTE3LjggMTUuMi0zMC40bC0xOC45LTU2LjhjLTUuNi0xNi43LTE4LjctMjkuOC0zNS40LTM1LjRMMzk1LjkgMjU2bDYwLjUtMjAuMmMxNi43LTUuNiAyOS44LTE4LjcgMzUuNC0zNS40bDE4LjktNTYuOGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMTguOSA1Ni44Yy0uOCAyLjQtMi43IDQuMy01LjEgNS4xbC04MC40IDI2LjggNTcuNC01Ny40YzE1LjYtMTUuNiAyMC42LTM5IDEyLjctNTkuN0wzOTguNCAxNS40QzM5My42IDMgMzc5LjgtMy4yIDM2Ny40IDEuNnMtMTguNSAxOC42LTEzLjggMzFsMzIuNSA4NC42YzEuMSAzIC40IDYuMy0xLjggOC41TDMzNiAxNzQuMWwwLTE0LjFjMC0zMS44LTE4LjYtNTkuMy00NS41LTcyLjJjLTkuMS00LjQtMTguNSAzLjMtMTguNSAxMy40bDAgMTAuOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwLjhjMC0xMC4xLTkuNC0xNy43LTE4LjUtMTMuNEMxOTQuNiAxMDAuNyAxNzYgMTI4LjIgMTc2IDE2MGwwIDE0LjEtNDguMy00OC4zYy0yLjItMi4yLTIuOS01LjYtMS44LTguNWwzMi41LTg0LjZ6XCJdXG59O1xuY29uc3QgZmFIYW5kc0JvdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWJvdW5kJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGY5XCIsIFwiTTk2IDMyQzk2IDE0LjMgODEuNyAwIDY0IDBTMzIgMTQuMyAzMiAzMmwwIDY0IDAgNTkuMSAwIC43TDMyIDE5MmwwIDIxLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0wxMzEuNiAzNTJsLTMuNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMTI4IDAgNjQgMCAxMjggMCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN2wwLTIxLjkgMC0zNi4yIDAtLjdMNjA4IDk2bDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NCAwIDQ4LjgtNjkuMyA5Mi40Yy01LjcgNy42LTE2LjEgOS42LTI0LjIgNC44Yy05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NzMgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzYxIDIwOS43IDM1MiAyMzMuNCAzNTIgMjU4LjFsMCA2MS45IDAgMzItNjQgMCAwLTMyIDAtNjEuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMnMtMTUuMiAzMC45LTQuNCA0NC41bDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNWMtOC4xIDQuOC0xOC42IDIuNy0yNC4yLTQuOEw5NiAxNDQuOCA5NiA5NmwwLTY0em02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAtMTI4IDAtNjQgMC0xMjggMC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6XCJdXG59O1xuY29uc3QgZmFGaWxlSW52b2ljZURvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWludm9pY2UtZG9sbGFyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTcxXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNNjQgODBjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0xMjggNzJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTcuM2M4LjUgMS4yIDE2LjcgMy4xIDI0LjEgNS4xYzguNSAyLjMgMTMuNiAxMSAxMS4zIDE5LjZzLTExIDEzLjYtMTkuNiAxMS4zYy0xMS4xLTMtMjItNS4yLTMyLjEtNS4zYy04LjQtLjEtMTcuNCAxLjgtMjMuNiA1LjVjLTUuNyAzLjQtOC4xIDcuMy04LjEgMTIuOGMwIDMuNyAxLjMgNi41IDcuMyAxMC4xYzYuOSA0LjEgMTYuNiA3LjEgMjkuMiAxMC45bC41IC4xczAgMCAwIDBzMCAwIDAgMGMxMS4zIDMuNCAyNS4zIDcuNiAzNi4zIDE0LjZjMTIuMSA3LjYgMjIuNCAxOS43IDIyLjcgMzguMmMuMyAxOS4zLTkuNiAzMy4zLTIyLjkgNDEuNmMtNy43IDQuOC0xNi40IDcuNi0yNS4xIDkuMWwwIDE3LjFjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNy44Yy0xMS4yLTIuMS0yMS43LTUuNy0zMC45LTguOWMwIDAgMCAwIDAgMGMtMi4xLS43LTQuMi0xLjQtNi4yLTIuMWMtOC40LTIuOC0xMi45LTExLjktMTAuMS0yMC4yczExLjktMTIuOSAyMC4yLTEwLjFjMi41IC44IDQuOCAxLjYgNy4xIDIuNGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMTMuNiA0LjYgMjQuNiA4LjQgMzYuMyA4LjdjOS4xIC4zIDE3LjktMS43IDIzLjctNS4zYzUuMS0zLjIgNy45LTcuMyA3LjgtMTRjLS4xLTQuNi0xLjgtNy44LTcuNy0xMS42Yy02LjgtNC4zLTE2LjUtNy40LTI5LTExLjJsLTEuNi0uNXMwIDAgMCAwYy0xMS0zLjMtMjQuMy03LjMtMzQuOC0xMy43Yy0xMi03LjItMjIuNi0xOC45LTIyLjctMzcuM2MtLjEtMTkuNCAxMC44LTMyLjggMjMuOC00MC41YzcuNS00LjQgMTUuOC03LjIgMjQuMS04LjdsMC0xNy4zYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTU2XCIsIFwiTTI1NiAwYy0zNSAwLTY0IDU5LjUtNjQgOTMuN2wwIDg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45bDAgNjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOGwwIDQyYzAgNy44IDYuMyAxNCAxNCAxNGMxLjMgMCAyLjYtLjIgMy45LS41TDI1NiA0ODBsMTEwLjEgMzEuNWMxLjMgLjQgMi42IC41IDMuOSAuNWM2IDAgMTEuMS0zLjcgMTMuMS05QzM0NC41IDQ3MC43IDMyMCA0MjIuMiAzMjAgMzY4YzAtNjAuNiAzMC42LTExNCA3Ny4xLTE0NS42TDMyMCAxNzguM2wwLTg0LjZDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFYUmF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3gtcmF5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDk3XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTI1NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzItODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtMTEyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTEyIDAgMCA3MC42TDE4OS4xIDMwN2MtNS4yLTItMTAuNi0zLTE2LjItM2wtMi4xIDBjLTIzLjYgMC00Mi44IDE5LjItNDIuOCA0Mi44YzAgOS42IDMuMiAxOC45IDkuMSAyNi40bDE4LjIgMjMuMmM5LjcgMTIuNCAyNC42IDE5LjYgNDAuMyAxOS42bDEyMC44IDBjMTUuNyAwIDMwLjYtNy4yIDQwLjMtMTkuNmwxOC4yLTIzLjJjNS45LTcuNSA5LjEtMTYuOCA5LjEtMjYuNGMwLTIzLjYtMTkuMi00Mi44LTQyLjgtNDIuOGwtMi4yIDBjLTUuNSAwLTExIDEtMTYuMiAzTDI3MiAzMjYuNmwwLTcwLjYgMTEyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTExMiAwIDAtNDggODAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMjA4IDM1MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTgwIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6XCJdXG59O1xuY29uc3QgZmFTcGVsbENoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwZWxsLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODkxXCIsIFwiTTExMiAwQzk5LjEgMCA4Ny40IDcuOCA4Mi41IDE5LjdsLTY2LjcgMTYwLTEzLjMgMzJjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMNjYuNyAyMjRsOTAuNyAwIDUuMSAxMi4zYzYuOCAxNi4zIDI1LjUgMjQgNDEuOCAxNy4yczI0LTI1LjUgMTcuMi00MS44bC0xMy4zLTMyLTY2LjctMTYwQzEzNi42IDcuOCAxMjQuOSAwIDExMiAwem0xOC43IDE2MGwtMzcuMyAwTDExMiAxMTUuMiAxMzAuNyAxNjB6TTI1NiAzMmwwIDk2IDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsODAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGMwLTIzLjEtOS44LTQzLjgtMjUuNC01OC40YzYtMTEuMiA5LjQtMjQgOS40LTM3LjZjMC00NC4yLTM1LjgtODAtODAtODBMMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiA2NGwtMzIgMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZ6bS0zMiA2NGwzMiAwIDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMC0zMnpNNTY2LjYgMzEwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzUyIDQzNC43bC03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJ6XCJdXG59O1xuY29uc3QgZmFTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjcxNVwiLCBcIk01LjEgOS4yQzEzLjMtMS4yIDI4LjQtMy4xIDM4LjggNS4xbDU5MiA0NjRjMTAuNCA4LjIgMTIuMyAyMy4zIDQuMSAzMy43cy0yMy4zIDEyLjMtMzMuNyA0LjFMOS4yIDQyLjlDLTEuMiAzNC43LTMuMSAxOS42IDUuMSA5LjJ6XCJdXG59O1xuY29uc3QgZmFDb21wdXRlck1vdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXB1dGVyLW1vdXNlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDMzLCBcIm1vdXNlXCJdLCBcImY4Y2NcIiwgXCJNMCAxOTJsMTc2IDBMMTc2IDAgMTYwIDBDNzEuNiAwIDAgNzEuNiAwIDE2MGwwIDMyem0wIDMyTDAgMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDY0IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC0xMjgtMTkyIDBMMCAyMjR6bTM4NC0zMmwwLTMyQzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMjA4IDBsMCAxOTIgMTc2IDB6XCJdXG59O1xuY29uc3QgZmFNb3VzZSA9IGZhQ29tcHV0ZXJNb3VzZTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC10by1icmFja2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzaWduLWluXCJdLCBcImYwOTBcIiwgXCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYVNpZ25JbiA9IGZhQXJyb3dSaWdodFRvQnJhY2tldDtcbmNvbnN0IGZhU2hvcFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3Atc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInN0b3JlLWFsdC1zbGFzaFwiXSwgXCJlMDcwXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTU0LjgtNDNMNTc2IDIyNGwtNjQgMCAwIDE1MkwzODQgMjc1LjdsMC01MS43LTY0IDAgMCAxLjVMMjc3LjIgMTkybDMyNS45IDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjhjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEwxMjEuNyAwYy0xNiAwLTMxIDgtMzkuOSAyMS40TDc0LjEgMzIuOCAzOC44IDUuMXpNMzYuOCAxOTJsODUgMEwyMSAxMTIuNSA2LjIgMTM0LjdjLTQgNi4xLTYuMiAxMy4yLTYuMiAyMC40QzAgMTc1LjUgMTYuNSAxOTIgMzYuOCAxOTJ6TTMyMCAzODRsLTE5MiAwIDAtMTYwLTY0IDAgMCAxNjAgMCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY1LjUtNjQtNTAuNCAwIDM1Ljl6XCJdXG59O1xuY29uc3QgZmFTdG9yZUFsdFNsYXNoID0gZmFTaG9wU2xhc2g7XG5jb25zdCBmYVNlcnZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZXJ2ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMzNcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI4MCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQ4IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OHptMjgwIDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVZpcnVzQ292aWRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aXJ1cy1jb3ZpZC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhOVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Mi4xIDM0NC43YzExLjQtMTkuNSAxOS4xLTQxLjQgMjIuMy02NC43bDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM0w0ODQgMTI1LjlsMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NzIuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDQ1MC4xIDkybC0yMy44IDIzLjhDNDAyLjggOTcuOSAzNzQuNyA4NS44IDM0NCA4MS42TDM0NCA0OGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI4MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE4OS45IDkybDExLjMtMTEuM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEzNC4xIDc5LjggMzguOCA1LjF6TTE0OS4yIDIxMy41Yy0xLjUgNi0yLjcgMTIuMi0zLjUgMTguNUwxMTIgMjMybDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNMMTU2IDM4Ni4xbC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxODkuOSA0MjBsMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMkwxNDkuMiAyMTMuNXpcIl1cbn07XG5jb25zdCBmYVNob3BMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhNVwiLCBcIk0zNi44IDE5Mmw0MTIuOCAwYzIwLjItMTkuOCA0Ny45LTMyIDc4LjQtMzJjMzAuNSAwIDU4LjEgMTIuMiA3OC4zIDMxLjljMTguOS0xLjYgMzMuNy0xNy40IDMzLjctMzYuN2MwLTcuMy0yLjItMTQuNC02LjItMjAuNEw1NTguMiAyMS40QzU0OS4zIDggNTM0LjQgMCA1MTguMyAwTDEyMS43IDBjLTE2IDAtMzEgOC0zOS45IDIxLjRMNi4yIDEzNC43Yy00IDYuMS02LjIgMTMuMi02LjIgMjAuNEMwIDE3NS41IDE2LjUgMTkyIDM2LjggMTkyek0zODQgMjI0bC02NCAwIDAgMTYwLTE5MiAwIDAtMTYwLTY0IDAgMCAxNjAgMCA4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTgwIDAtMzIgMC0xMjh6bTE0NCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMybDAgNDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NTdGFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3Mtc3RhcnQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhvdXJnbGFzcy0xXCJdLCBcImYyNTFcIiwgXCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMUwxNDYuNyAyNTYgNzguOSAzMjMuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMjU2IDAgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMUwyMzcuMyAyNTZsNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDAgNjQgMCAzMiAwek0yODggNDM3bDAgMTFMOTYgNDQ4bDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMTkyIDMwMS4zbDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45elwiXVxufTtcbmNvbnN0IGZhSG91cmdsYXNzMSA9IGZhSG91cmdsYXNzU3RhcnQ7XG5jb25zdCBmYUJsZW5kZXJQaG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdibGVuZGVyLXBob25lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmI2XCIsIFwiTTIyNCAzNTJMMTk2LjggNTIuM0MxOTQuMiAyNC4yIDIxNi4zIDAgMjQ0LjYgMEw1MzQuMSAwYzIxLjEgMCAzNi40IDIwLjEgMzAuOSA0MC40TDU1OC41IDY0IDQwMCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNDkuOCAwLTE3LjUgNjRMNDAwIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjMuNiAwLTE3LjUgNjRMNDAwIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5Ny41IDBMNDgwIDM1MmwtMjU2IDB6bS0xNiAzMmwyODggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yODggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMmMwLTI2LjUgMjEuNS00OCA0OC00OHptMTQ0IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTQ3LjUgMzAuN2MxMC44IDYuNyAxNS4zIDIxIDEwLjYgMzMuNGwtMjIgNTcuOGMtNC4yIDEwLjktMTQuNSAxNy42LTI1LjMgMTYuNGwtMzMuMy0zLjZjLTEzLjYgNDIuMi0xMy42IDg4LjQgMCAxMzAuN2wzMy4zLTMuNmMxMC45LTEuMiAyMS4yIDUuNSAyNS4zIDE2LjRsMjIgNTcuOGM0LjcgMTIuNCAuMiAyNi43LTEwLjYgMzMuNGwtNDQgMjcuMmMtOS43IDYtMjEuOSA0LjItMjkuOC00LjNDLTI0LjYgMjg2LTI0LjYgMTE0IDczLjcgNy44QzgxLjYtLjcgOTMuOC0yLjUgMTAzLjUgMy41bDQ0IDI3LjJ6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ1doZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLXdoZWF0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGRiXCIsIFwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTEyLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzg0IDgwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwem0wIDEyOGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMCAwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDAgMCAxNnptMCAxMTJjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwIDAgMTZ6TTUxMiA0OTZsMCAxNi0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2IDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODB6bTAtOTZsLTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2em0wLTEyOGwwIDE2LTE2IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMTYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHpNNTI4IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0em05NiA2NGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDU2IDcyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkJyZWFzdGZlZWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJyZWFzdGZlZWRpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1M2FcIiwgXCJNMjI0IDBhODAgODAgMCAxIDEgMCAxNjBBODAgODAgMCAxIDEgMjI0IDB6TTQzNi44IDM4Mi44TDM3My41IDQ2MmMtMTYuNiAyMC43LTQ2LjggMjQuMS02Ny41IDcuNWMtMTcuNi0xNC4xLTIyLjctMzguMS0xMy41LTU3LjdsLS44LS4xYy0zOC45LTUuNi03NC4zLTI1LjEtOTkuNy01NC44bDAtMzYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgLjggMCAxLjYgLjEgMi40bDEwMS40IDUwLjdjMjMuNyAxMS45IDMzLjMgNDAuNyAyMS41IDY0LjRzLTQwLjcgMzMuMy02NC40IDIxLjVMMjcuMiA0MjcuM2MtMS4xLS41LTIuMi0xLjEtMy4zLTEuN2MtNC45LTIuOC05LjItNi40LTEyLjYtMTAuNmMtNC42LTUuNC03LjgtMTEuNy05LjYtMTguNGMtMy4zLTEyLTEuOS0yNS4yIDQuOC0zNi42Yy42LTEuMSAxLjMtMi4yIDItMy4yTDc1LjYgMjU2LjFjMjYuNy00MC4xIDcxLjctNjQuMSAxMTkuOC02NC4xbDc1LjIgMGM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjRjMi45IDYuNyA0LjMgMTMuOCA0IDIwLjhjLS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAwelwiXVxufTtcbmNvbnN0IGZhUmlnaHRUb0JyYWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtdG8tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1pbi1hbHRcIl0sIFwiZjJmNlwiLCBcIk0yMTcuOSAxMDUuOUwzNDAuNyAyMjguN2M3LjIgNy4yIDExLjMgMTcuMSAxMS4zIDI3LjNzLTQuMSAyMC4xLTExLjMgMjcuM0wyMTcuOSA0MDYuMWMtNi40IDYuNC0xNSA5LjktMjQgOS45Yy0xOC43IDAtMzMuOS0xNS4yLTMzLjktMzMuOWwwLTYyLjFMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjIuMWMwLTE4LjcgMTUuMi0zMy45IDMzLjktMzMuOWM5IDAgMTcuNiAzLjYgMjQgOS45ek0zNTIgNDE2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduSW5BbHQgPSBmYVJpZ2h0VG9CcmFja2V0O1xuY29uc3QgZmFWZW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ZW51cycsXG4gIGljb246IFszODQsIDUxMiwgWzk3OTJdLCBcImYyMjFcIiwgXCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45elwiXVxufTtcbmNvbnN0IGZhUGFzc3BvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFzc3BvcnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1YWJcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xODMgMjc4LjhjLTI3LjktMTMuMi00OC40LTM5LjQtNTMuNy03MC44bDM5LjEgMGMxLjYgMzAuNCA3LjcgNTMuOCAxNC42IDcwLjh6bTQxLjMgOS4ybC0uMyAwLS4zIDBjLTIuNC0zLjUtNS43LTguOS05LjEtMTYuNWMtNi0xMy42LTEyLjQtMzQuMy0xNC4yLTYzLjVsNDcuMSAwYy0xLjggMjkuMi04LjEgNDkuOS0xNC4yIDYzLjVjLTMuNCA3LjYtNi43IDEzLTkuMSAxNi41em00MC43LTkuMmM2LjgtMTcuMSAxMi45LTQwLjQgMTQuNi03MC44bDM5LjEgMGMtNS4zIDMxLjQtMjUuOCA1Ny42LTUzLjcgNzAuOHpNMjc5LjYgMTc2Yy0xLjYtMzAuNC03LjctNTMuOC0xNC42LTcwLjhjMjcuOSAxMy4yIDQ4LjQgMzkuNCA1My43IDcwLjhsLTM5LjEgMHpNMjIzLjcgOTZsLjMgMCAuMyAwYzIuNCAzLjUgNS43IDguOSA5LjEgMTYuNWM2IDEzLjYgMTIuNCAzNC4zIDE0LjIgNjMuNWwtNDcuMSAwYzEuOC0yOS4yIDguMS00OS45IDE0LjItNjMuNWMzLjQtNy42IDYuNy0xMyA5LjEtMTYuNXpNMTgzIDEwNS4yYy02LjggMTcuMS0xMi45IDQwLjQtMTQuNiA3MC44bC0zOS4xIDBjNS4zLTMxLjQgMjUuOC01Ny42IDUzLjctNzAuOHpNMzUyIDE5MkExMjggMTI4IDAgMSAwIDk2IDE5MmExMjggMTI4IDAgMSAwIDI1NiAwek0xMTIgMzg0Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDIyNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yMjQgMHpcIl1cbn07XG5jb25zdCBmYVRodW1idGFja1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1idGFjay1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1widGh1bWItdGFjay1zbGFzaFwiXSwgXCJlNjhmXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDgxLjQgMzUyYzkuOC0uNCAxOC45LTUuMyAyNC42LTEzLjNjNi04LjMgNy43LTE5LjEgNC40LTI4LjhsLTEtM2MtMTMuOC00MS41LTQyLjgtNzQuOC03OS41LTk0LjdMNDE4LjUgNjQgNDQ4IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI5LjUgMC02LjEgNzkuNUwzOC44IDUuMXpNMzI0LjkgMzUyTDE3Ny4xIDIzNS42Yy0yMC45IDE4LjktMzcuMiA0My4zLTQ2LjUgNzEuM2wtMSAzYy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDE2NC45IDB6TTI4OCAzODRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYtNjQgMHpcIl1cbn07XG5jb25zdCBmYVRodW1iVGFja1NsYXNoID0gZmFUaHVtYnRhY2tTbGFzaDtcbmNvbnN0IGZhSGVhcnRQdWxzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1wdWxzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnRiZWF0XCJdLCBcImYyMWVcIiwgXCJNMjI4LjMgNDY5LjFMNDcuNiAzMDAuNGMtNC4yLTMuOS04LjItOC4xLTExLjktMTIuNGw4NyAwYzIyLjYgMCA0My0xMy42IDUxLjctMzQuNWwxMC41LTI1LjIgNDkuMyAxMDkuNWMzLjggOC41IDEyLjEgMTQgMjEuNCAxNC4xczE3LjgtNSAyMi0xMy4zTDMyMCAyNTMuN2wxLjcgMy40YzkuNSAxOSAyOC45IDMxIDUwLjEgMzFsMTA0LjUgMGMtMy43IDQuMy03LjcgOC41LTExLjkgMTIuNEwyODMuNyA0NjkuMWMtNy41IDctMTcuNCAxMC45LTI3LjcgMTAuOXMtMjAuMi0zLjktMjcuNy0xMC45ek01MDMuNyAyNDBsLTEzMiAwYy0zIDAtNS44LTEuNy03LjItNC40bC0yMy4yLTQ2LjNjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM3MtMTcuNCA1LjEtMjEuNSAxMy4zbC00MS40IDgyLjhMMjA1LjkgMTU4LjJjLTMuOS04LjctMTIuNy0xNC4zLTIyLjItMTQuMXMtMTguMSA1LjktMjEuOCAxNC44bC0zMS44IDc2LjNjLTEuMiAzLTQuMiA0LjktNy40IDQuOUwxNiAyNDBjLTIuNiAwLTUgLjQtNy4zIDEuMUMzIDIyNS4yIDAgMjA4LjIgMCAxOTAuOWwwLTUuOGMwLTY5LjkgNTAuNS0xMjkuNSAxMTkuNC0xNDFDMTY1IDM2LjUgMjExLjQgNTEuNCAyNDQgODRsMTIgMTIgMTItMTJjMzIuNi0zMi42IDc5LTQ3LjUgMTI0LjYtMzkuOUM0NjEuNSA1NS42IDUxMiAxMTUuMiA1MTIgMTg1LjFsMCA1LjhjMCAxNi45LTIuOCAzMy41LTguMyA0OS4xelwiXVxufTtcbmNvbnN0IGZhSGVhcnRiZWF0ID0gZmFIZWFydFB1bHNlO1xuY29uc3QgZmFQZW9wbGVDYXJyeUJveCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtY2FycnktYm94JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwZW9wbGUtY2FycnlcIl0sIFwiZjRjZVwiLCBcIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDgwIDQ4em02NCAxOTMuN2wwIDY1LjEgNTEgNTFjNy4xIDcuMSAxMS44IDE2LjIgMTMuNCAyNi4xbDE1LjIgOTAuOWMyLjkgMTcuNC04LjkgMzMuOS0yNi4zIDM2LjhzLTMzLjktOC45LTM2LjgtMjYuM2wtMTQuMy04NS45TDY2LjggMzIwQzU0LjggMzA4IDQ4IDI5MS43IDQ4IDI3NC43bDAtODguMWMwLTMyLjQgMjYuMi01OC42IDU4LjYtNTguNmMyNC4xIDAgNDYuNSAxMiA1OS45IDMybDQ3LjQgNzEuMSAxMC4xIDUgMC03Ni4yYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNzYuMiAxMC4xLTVMNDczLjUgMTYwYzEzLjMtMjAgMzUuOC0zMiA1OS45LTMyYzMyLjQgMCA1OC42IDI2LjIgNTguNiA1OC42bDAgODguMWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNzkuNCA3OS40LTE0LjMgODUuOWMtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOGwxNS4yLTkwLjljMS42LTkuOSA2LjMtMTkgMTMuNC0yNi4xbDUxLTUxIDAtNjUuMS0xOSAyOC41Yy00LjYgNy0xMSAxMi42LTE4LjUgMTYuM2wtNTkuNiAyOS44Yy0yLjQgMS4zLTQuOSAyLjItNy42IDIuOGMtMi42IC42LTUuMyAuOS03LjkgLjhsLTEyNi43IDBjLTIuNSAuMS01LS4yLTcuNS0uN2MtMi45LS42LTUuNi0xLjYtOC4xLTNsLTU5LjUtMjkuOGMtNy41LTMuNy0xMy44LTkuNC0xOC41LTE2LjNsLTE5LTI4LjV6TTIuMyA0NjguMUw1MC4xIDM0OC42bDQ5LjIgNDkuMi0zNy42IDk0Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44Uy00LjMgNDg0LjUgMi4zIDQ2OC4xek01MTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTc3LjkgMzQ4LjZsNDcuOCAxMTkuNWM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44bC0zNy42LTk0IDQ5LjItNDkuMnpcIl1cbn07XG5jb25zdCBmYVBlb3BsZUNhcnJ5ID0gZmFQZW9wbGVDYXJyeUJveDtcbmNvbnN0IGZhVGVtcGVyYXR1cmVIaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWhpZ2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NjlcIiwgXCJNNDE2IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAxMjhBOTYgOTYgMCAxIDAgNDE2IDBhOTYgOTYgMCAxIDAgMCAxOTJ6TTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyMTcuOCAzMzIuNiAyMjQgMzQ5LjUgMjI0IDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45Qzg4LjkgMzA4LjQgOTYgMjkzLjggOTYgMjc2LjVMOTYgMTEyek0xNDQgMEM4Mi4xIDAgMzIgNTAuMiAzMiAxMTJsMCAxNjQuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEMxMS4yIDMwNC4yIDAgMzM0LjggMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZMMjU2IDExMkMyNTYgNTAuMiAyMDUuOSAwIDE0NCAwem0wIDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNMMTYwIDExMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDIxMC43Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjNjMCAyNi41IDIxLjUgNDggNDggNDh6XCJdXG59O1xuY29uc3QgZmFNaWNyb2NoaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9jaGlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmRiXCIsIFwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMzJsLTE5MiAwIDAgMTkyIDE5MiAwIDAtMTkyelwiXVxufTtcbmNvbnN0IGZhQ3Jvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvd24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwODFdLCBcImY1MjFcIiwgXCJNMzA5IDEwNmMxMS40LTcgMTktMTkuNyAxOS0zNGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDE0LjQgNy42IDI3IDE5IDM0TDIwOS43IDIyMC42Yy05LjEgMTguMi0zMi43IDIzLjQtNDguNiAxMC43TDcyIDE2MGM1LTYuNyA4LTE1IDgtMjRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCAxMTMuOSAwIDEzNnMxNy45IDQwIDQwIDQwYy4yIDAgLjUgMCAuNyAwTDg2LjQgNDI3LjRjNS41IDMwLjQgMzIgNTIuNiA2MyA1Mi42bDI3Ny4yIDBjMzAuOSAwIDU3LjQtMjIuMSA2My01Mi42TDUzNS4zIDE3NmMuMiAwIC41IDAgLjcgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDkgMyAxNy4zIDggMjRsLTg5LjEgNzEuM2MtMTUuOSAxMi43LTM5LjUgNy41LTQ4LjYtMTAuN0wzMDkgMTA2elwiXVxufTtcbmNvbnN0IGZhV2VpZ2h0SGFuZ2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWlnaHQtaGFuZ2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVjZFwiLCBcIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMkwxMjAgMTI4Yy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC03MiAyODhjLTMuNiAxNC4zLS40IDI5LjUgOC43IDQxLjJTMzMuMiA1MTIgNDggNTEybDQxNiAwYzE0LjggMCAyOC43LTYuOCAzNy44LTE4LjVzMTIuMy0yNi44IDguNy00MS4ybC03Mi0yODhDNDMzLjIgMTQzIDQxNCAxMjggMzkyIDEyOGwtNDUuNSAwelwiXVxufTtcbmNvbnN0IGZhWG1hcmtzTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneG1hcmtzLWxpbmVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTlhXCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTVMNyAzMTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1TDQxIDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhRmlsZVByZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXByZXNjcmlwdGlvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTEwNCAxOTZsNzIgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MGMwIDI1LjUtMTUuOSA0Ny4yLTM4LjMgNTUuOWw0MyA0MC4zIDMzLjgtMzFjOC4xLTcuNSAyMC44LTYuOSAyOC4zIDEuMnM2LjkgMjAuOC0xLjIgMjguM0wyNzAgMzc5LjdsMzEuNyAyOS43YzguMSA3LjYgOC41IDIwLjIgLjkgMjguM3MtMjAuMiA4LjUtMjguMyAuOWwtMzMuOS0zMS44LTM0LjkgMzJjLTguMSA3LjUtMjAuOCA2LjktMjguMy0xLjJzLTYuOS0yMC44IDEuMi0yOC4zbDMyLjYtMjkuOS02NC44LTYwLjhjLS45LS44LTEuNi0xLjctMi4zLTIuNmwtMjAgMCAwIDQ0YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTY0IDAtODBjMC0xMSA5LTIwIDIwLTIwem03MiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTUyIDAgMCA0MCA1MiAwelwiXVxufTtcbmNvbnN0IGZhV2VpZ2h0U2NhbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2VpZ2h0LXNjYWxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ3ZWlnaHRcIl0sIFwiZjQ5NlwiLCBcIk0xMjggMTc2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6TTM5MS44IDY0QzM1OS41IDI0LjkgMzEwLjcgMCAyNTYgMFMxNTIuNSAyNC45IDEyMC4yIDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC01Ni4yIDB6TTI5NiAyMjRjMC0xMC42LTQuMS0yMC4yLTEwLjktMjcuNGwzMy42LTc4LjNjMy41LTguMS0uMy0xNy41LTguNC0yMXMtMTcuNSAuMy0yMSA4LjRMMjU1LjcgMTg0Yy0yMiAuMS0zOS43IDE4LTM5LjcgNDBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MHpcIl1cbn07XG5jb25zdCBmYVdlaWdodCA9IGZhV2VpZ2h0U2NhbGU7XG5jb25zdCBmYVVzZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWdyb3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MTAxLCBcInVzZXItZnJpZW5kc1wiXSwgXCJmNTAwXCIsIFwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0bDkxLjQgMEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0wyOS43IDUxMkMxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTYwOS4zIDUxMmwtMTM3LjggMGM1LjQtOS40IDguNi0yMC4zIDguNi0zMmwwLThjMC02MC43LTI3LjEtMTE1LjItNjkuOC0xNTEuOGMyLjQtLjEgNC43LS4yIDcuMS0uMmw2MS40IDBDNTY3LjggMzIwIDY0MCAzOTIuMiA2NDAgNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43ek00MzIgMjU2Yy0zMSAwLTU5LTEyLjYtNzkuMy0zMi45QzM3Mi40IDE5Ni41IDM4NCAxNjMuNiAzODQgMTI4YzAtMjYuOC02LjYtNTIuMS0xOC4zLTc0LjNDMzg0LjMgNDAuMSA0MDcuMiAzMiA0MzIgMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJzLTUwLjEgMTEyLTExMiAxMTJ6XCJdXG59O1xuY29uc3QgZmFVc2VyRnJpZW5kcyA9IGZhVXNlckdyb3VwO1xuY29uc3QgZmFBcnJvd1VwQVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtYS16JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFscGhhLXVwXCJdLCBcImYxNWVcIiwgXCJNMTgzLjYgNDIuNEMxNzcuNSAzNS44IDE2OSAzMiAxNjAgMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDEyOCAxNDYuMyAxMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDEuNyAzMi40IDM1LjRjMTEuOSAxMyAzMi4yIDEzLjkgNDUuMiAyczEzLjktMzIuMiAyLTQ1LjJsLTg4LTk2ek0zMjAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDE2IDMyYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC02NCAxMjgtMTYgMzJjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC0xNi0zMi02NC0xMjhDNDM5LjIgMzguOCA0MjguMSAzMiA0MTYgMzJ6TTM5NS44IDE3Nkw0MTYgMTM1LjYgNDM2LjIgMTc2bC00MC40IDB6XCJdXG59O1xuY29uc3QgZmFTb3J0QWxwaGFVcCA9IGZhQXJyb3dVcEFaO1xuY29uc3QgZmFDaGVzc0tuaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1rbmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODIyXSwgXCJmNDQxXCIsIFwiTTk2IDQ4TDgyLjcgNjEuM0M3MC43IDczLjMgNjQgODkuNSA2NCAxMDYuNWwwIDEzMi40YzAgMTAuNyA1LjMgMjAuNyAxNC4yIDI2LjZsMTAuNiA3YzE0LjMgOS42IDMyLjcgMTAuNyA0OC4xIDNsMy4yLTEuNmMyLjYtMS4zIDUtMi44IDcuMy00LjVsNDkuNC0zN2M2LjYtNSAxNS43LTUgMjIuMyAwYzEwLjIgNy43IDkuOSAyMy4xLS43IDMwLjNMOTAuNCAzNTBDNzMuOSAzNjEuMyA2NCAzODAgNjQgNDAwbDMyMCAwIDI4LjktMTU5YzIuMS0xMS4zIDMuMS0yMi44IDMuMS0zNC4zbDAtMTQuN0M0MTYgODYgMzMwIDAgMjI0IDBMODMuOCAwQzcyLjkgMCA2NCA4LjkgNjQgMTkuOGMwIDcuNSA0LjIgMTQuMyAxMC45IDE3LjdMOTYgNDh6bTI0IDY4YTIwIDIwIDAgMSAxIDQwIDAgMjAgMjAgMCAxIDEgLTQwIDB6TTIyLjYgNDczLjRjLTQuMiA0LjItNi42IDEwLTYuNiAxNkMxNiA1MDEuOSAyNi4xIDUxMiAzOC42IDUxMmwzNzAuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMzg0IDQzMiA2NCA0MzIgMjIuNiA0NzMuNHpcIl1cbn07XG5jb25zdCBmYUZhY2VMYXVnaFNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoLXNxdWludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2gtc3F1aW50XCJdLCBcImY1OWJcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMWwyNzUuMiAwYzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6bTM2LjctMTk5LjRsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxMjUuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIl1cbn07XG5jb25zdCBmYUxhdWdoU3F1aW50ID0gZmFGYWNlTGF1Z2hTcXVpbnQ7XG5jb25zdCBmYVdoZWVsY2hhaXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2hlZWxjaGFpcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE5M1wiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjAuNSAyNDcuMmMxMi40LTQuNyAxOC43LTE4LjUgMTQtMzAuOXMtMTguNS0xOC43LTMwLjktMTRDNDMuMSAyMjUuMSAwIDI4My41IDAgMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzYxLjIgMCAxMTQuMy0zNC4zIDE0MS4yLTg0LjdjNi4yLTExLjcgMS44LTI2LjItOS45LTMyLjVzLTI2LjItMS44LTMyLjUgOS45QzI0MCA0NDAgMjAyLjggNDY0IDE2MCA0NjRDOTguMSA0NjQgNDggNDEzLjkgNDggMzUyYzAtNDcuOSAzMC4xLTg4LjggNzIuNS0xMDQuOHpNMjU5LjggMTc2bC0xLjktOS43Yy00LjUtMjIuMy0yNC0zOC4zLTQ2LjgtMzguM2MtMzAuMSAwLTUyLjcgMjcuNS00Ni44IDU3bDIzLjEgMTE1LjVjNiAyOS45IDMyLjIgNTEuNCA2Mi44IDUxLjRsNS4xIDBjLjQgMCAuOCAwIDEuMyAwbDk0LjEgMGM2LjcgMCAxMi42IDQuMSAxNSAxMC40TDQwMiA0NTkuMmM2IDE2LjEgMjMuOCAyNC42IDQwLjEgMTkuMWw0OC0xNmMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0xOC43IDYuMi0yNS41LTY4Yy0xMS43LTMxLjItNDEuNi01MS45LTc0LjktNTEuOWwtNjguNSAwLTkuNi00OCA2My40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTc2LjIgMHpcIl1cbn07XG5jb25zdCBmYUNpcmNsZUFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWFycm93LXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtdXBcIl0sIFwiZjBhYVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg1IDIxNWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03MS03MUwyODAgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjE0LjEtNzEgNzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzODUgMjE1elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVVcCA9IGZhQ2lyY2xlQXJyb3dVcDtcbmNvbnN0IGZhVG9nZ2xlT24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9nZ2xlLW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA1XCIsIFwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnMtODYtMTkyLTE5Mi0xOTJMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4Njk0LCBcIndhbGtpbmdcIl0sIFwiZjU1NFwiLCBcIk0xNjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTI2LjUgMTk5LjNjLTEgLjQtMS45IC44LTIuOSAxLjJsLTggMy41Yy0xNi40IDcuMy0yOSAyMS4yLTM0LjcgMzguMmwtMi42IDcuOGMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMnMtMjUuOC0yMy43LTIwLjItNDAuNWwyLjYtNy44YzExLjQtMzQuMSAzNi42LTYxLjkgNjkuNC03Ni41bDgtMy41YzIwLjgtOS4yIDQzLjMtMTQgNjYuMS0xNGM0NC42IDAgODQuOCAyNi44IDEwMS45IDY3LjlMMjgxIDIzMi43bDIxLjQgMTAuN2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDI0NyAyODcuM2MtMTAuMy01LjItMTguNC0xMy44LTIyLjgtMjQuNWwtOS42LTIzLTE5LjMgNjUuNSA0OS41IDU0YzUuNCA1LjkgOS4yIDEzIDExLjIgMjAuOGwyMyA5Mi4xYzQuMyAxNy4xLTYuMSAzNC41LTIzLjMgMzguOHMtMzQuNS02LjEtMzguOC0yMy4zbC0yMi04OC4xLTcwLjctNzcuMWMtMTQuOC0xNi4xLTIwLjMtMzguNi0xNC43LTU5LjdsMTYuOS02My41ek02OC43IDM5OGwyNS02Mi40YzIuMSAzIDQuNSA1LjggNyA4LjZsNDAuNyA0NC40LTE0LjUgMzYuMmMtMi40IDYtNiAxMS41LTEwLjYgMTYuMUw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w2OC43IDM5OHpcIl1cbn07XG5jb25zdCBmYVdhbGtpbmcgPSBmYVBlcnNvbldhbGtpbmc7XG5jb25zdCBmYUwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbCcsXG4gIGljb246IFszMjAsIDUxMiwgWzEwOF0sIFwiNGNcIiwgXCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODI5M10sIFwiZjA2ZFwiLCBcIk0xNTkuMyA1LjRjNy44LTcuMyAxOS45LTcuMiAyNy43IC4xYzI3LjYgMjUuOSA1My41IDUzLjggNzcuNyA4NGMxMS0xNC40IDIzLjUtMzAuMSAzNy00Mi45YzcuOS03LjQgMjAuMS03LjQgMjggLjFjMzQuNiAzMyA2My45IDc2LjYgODQuNSAxMThjMjAuMyA0MC44IDMzLjggODIuNSAzMy44IDExMS45QzQ0OCA0MDQuMiAzNDguMiA1MTIgMjI0IDUxMkM5OC40IDUxMiAwIDQwNC4xIDAgMjc2LjVjMC0zOC40IDE3LjgtODUuMyA0NS40LTEzMS43QzczLjMgOTcuNyAxMTIuNyA0OC42IDE1OS4zIDUuNHpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMWM0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjRjLTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41Yy0xNi41LTIxLTQ2LTU4LjUtNjIuOC03OS44Yy02LjMtOC0xOC4zLTguMS0yNC43LS4xYy0zMy44IDQyLjUtNTAuOCA2OS4zLTUwLjggOTkuNEMxMTIgMzc1LjQgMTYyLjYgNDE2IDIyNS43IDQxNnpcIl1cbn07XG5jb25zdCBmYUJlZFB1bHNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZC1wdWxzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wicHJvY2VkdXJlc1wiXSwgXCJmNDg3XCIsIFwiTTQ4My4yIDkuNkw1MjQgNjRsOTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTA0IDBjLTcuNiAwLTE0LjctMy42LTE5LjItOS42TDQ2OC43IDcwLjNsLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDMzOS4yIDExMiAyMTYgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41QzQ0NS45IDYuMiA0NTMuMiAxIDQ2MS42IC4xczE2LjYgMi43IDIxLjYgOS41ek0zMjAgMTYwbDEyLjcgMCAyMC43IDMxLjFjMTEuMiAxNi44IDMwLjYgMjYuMyA1MC43IDI0LjhzMzcuOS0xMy43IDQ2LjUtMzJMNDYxLjkgMTYwbDgyLjEgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMjI0IDAtMzIgMEw2NCA0NDhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0czMyIDE0LjMgMzIgMzJsMCAyNTYgMjI0IDAgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xNDQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVByb2NlZHVyZXMgPSBmYUJlZFB1bHNlO1xuY29uc3QgZmFTaHV0dGxlU3BhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2h1dHRsZS1zcGFjZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wic3BhY2Utc2h1dHRsZVwiXSwgXCJmMTk3XCIsIFwiTTEzMCA0ODBjNDAuNiAwIDgwLjQtMTEgMTE1LjItMzEuOUwzNTIgMzg0bC0yMjQgMCAwIDk2IDIgMHpNMzUyIDEyOEwyNDUuMiA2My45QzIxMC40IDQzIDE3MC42IDMyIDEzMCAzMmwtMiAwIDAgOTYgMjI0IDB6TTk2IDEyOGwwLTk2TDgwIDMyQzUzLjUgMzIgMzIgNTMuNSAzMiA4MGwwIDQ4IDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNkwwIDMyOGwwIDE2YzAgMjIuMSAxNy45IDQwIDQwIDQwbC04IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwIDAtOTYgOCAwYzI2LjIgMCA0OS40LTEyLjYgNjQtMzJsMjg4IDBjNjkuMyAwIDEzNS0yMi43IDE3OS4yLTgxLjZjNi40LTguNSA2LjQtMjAuMyAwLTI4LjhDNTkxIDE4Mi43IDUyNS4zIDE2MCA0NTYgMTYwbC0yODggMGMtMTQuNi0xOS40LTM3LjgtMzItNjQtMzJsLTggMHpNNTEyIDI0My42bDAgMjQuOWMwIDE5LjYtMTUuOSAzNS42LTM1LjYgMzUuNmMtMi41IDAtNC40LTItNC40LTQuNGwwLTg3LjFjMC0yLjUgMi00LjQgNC40LTQuNGMxOS42IDAgMzUuNiAxNS45IDM1LjYgMzUuNnpcIl1cbn07XG5jb25zdCBmYVNwYWNlU2h1dHRsZSA9IGZhU2h1dHRsZVNwYWNlO1xuY29uc3QgZmFGYWNlTGF1Z2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1sYXVnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2hcIl0sIFwiZjU5OVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNOTYuOCAzMTQuMWMtMy44LTEzLjcgNy40LTI2LjEgMjEuNi0yNi4xbDI3NS4yIDBjMTQuMiAwIDI1LjUgMTIuNCAyMS42IDI2LjFDMzk2LjIgMzgyIDMzMi4xIDQzMiAyNTYgNDMycy0xNDAuMi01MC0xNTkuMi0xMTcuOXpNMTQ0LjQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFMYXVnaCA9IGZhRmFjZUxhdWdoO1xuY29uc3QgZmFGb2xkZXJPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MTk0LCAxMjg0NDksIDYxNzE3XSwgXCJmMDdjXCIsIFwiTTg4LjcgMjIzLjhMMCAzNzUuOCAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDExNy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMjYuNSAyNi41YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNDE2IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzItMzM2IDBjLTIyLjggMC00My44IDEyLjEtNTUuMyAzMS44em0yNy42IDE2LjFDMTIyLjEgMjMwIDEzMi42IDIyNCAxNDQgMjI0bDQwMCAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTExMiAxOTJDNDUzLjkgNDc0IDQ0My40IDQ4MCA0MzIgNDgwTDMyIDQ4MGMtMTEuNSAwLTIyLTYuMS0yNy43LTE2LjFzLTUuNy0yMi4yIC4xLTMyLjFsMTEyLTE5MnpcIl1cbn07XG5jb25zdCBmYUhlYXJ0Q2lyY2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUtcGx1cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwMFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNmwwLTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xbDAgNS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFDb2RlRm9yayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWZvcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUxM2JcIiwgXCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDM4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC43QzMwNy43IDE0MSAyODggMTEyLjggMjg4IDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDM4LjdjMCA1My00MyA5Ni05NiA5NmwtNDggMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtNzAuNy00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzguN0MxOS43IDE0MSAwIDExMi44IDAgODBDMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG5jb25zdCBmYUNpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2l0eScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzk2MV0sIFwiZjY0ZlwiLCBcIk00ODAgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNDgtNjQgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzY0IDEwLjcgNjQgMjRsMCA3Mkw0OCA5NkMyMS41IDk2IDAgMTE3LjUgMCAxNDRsMCA5NkwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNTYgMCAzMiAwIDk2IDAgMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTExMiAwIDAtMTQ0em05NiAzMjBsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMjQwIDQxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0xMjggNDAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTU2MCAyNTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDE3NmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTI1NiAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDMyMGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2em0zMDQtNDhsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNNDAwIDY0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhTWljcm9waG9uZUxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvcGhvbmUtbGluZXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjc4OTcsIFwibWljcm9waG9uZS1hbHRcIl0sIFwiZjNjOVwiLCBcIk05NiA5NmwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bC04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC0zMi04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDAgMC0zMi04MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDgwIDBjMC01My00My05Ni05Ni05NlM5NiA0MyA5NiA5NnpNMzIwIDI0MGwwIDE2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRsMCAzMy42LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtMzMuNmM4NS44LTExLjcgMTUyLTg1LjMgMTUyLTE3NC40bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNHpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmVBbHQgPSBmYU1pY3JvcGhvbmVMaW5lcztcbmNvbnN0IGZhUGVwcGVySG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcHBlci1ob3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3OThdLCBcImY4MTZcIiwgXCJNNDI4LjMgM2MxMS42LTYuNCAyNi4yLTIuMyAzMi42IDkuM2w0LjggOC43YzE5LjMgMzQuNyAxOS44IDc1LjcgMy40IDExMEM0OTUuOCAxNTkuNiA1MTIgMTk3LjkgNTEyIDI0MGMwIDE4LjUtMy4xIDM2LjMtOC45IDUyLjhjLTYuMSAxNy4zLTI4LjUgMTYuMy0zNi44LS4xbC0xMS43LTIzLjRjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM0wzNjAgMjU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNy4xIDBjLTIxLjMgMC0zMC0yMy45LTEwLjgtMzIuOUMzMDQuNyA4NS40IDMyNy43IDgwIDM1MiA4MGMyOC4zIDAgNTQuOCA3LjMgNzcuOCAyMC4yYzUuNS0xOC4yIDMuNy0zOC40LTYtNTUuOEw0MTkgMzUuN2MtNi40LTExLjYtMi4zLTI2LjIgOS4zLTMyLjZ6TTE3MS4yIDM0NS41TDI2NCAxNjBsNDAgMCAwIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDc2LjIgMCAyMy45IDQ3LjhDMzcyLjMgNDQzLjkgMjQ0LjMgNTEyIDEwMy4yIDUxMmwtNTguOCAwQzE5LjkgNTEyIDAgNDkyLjEgMCA0NjcuNmMwLTIwLjggMTQuNS0zOC44IDM0LjgtNDMuM2w0OS44LTExLjFjMzcuNi04LjQgNjkuNS0zMy4yIDg2LjctNjcuN3pcIl1cbn07XG5jb25zdCBmYVVubG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmxvY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyNzVdLCBcImYwOWNcIiwgXCJNMTQ0IDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMS45IDAgNTkuNCAxOC42IDcyLjMgNDUuN2M3LjYgMTYgMjYuNyAyMi44IDQyLjYgMTUuMnMyMi44LTI2LjcgMTUuMi00Mi42QzMzMSAzMy43IDI4MS41IDAgMjI0IDBDMTQ0LjUgMCA4MCA2NC41IDgwIDE0NGwwIDQ4LTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yNDAgMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ29sb25TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbG9uLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxNDBcIiwgXCJNMjU1IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzE5Ny4yIDcuMSAxOTMgMjQuMkwxODEuOSA2OC42Qzk2LjEgODcuOCAzMiAxNjQuNCAzMiAyNTZjMCA1OC4xIDI1LjggMTEwLjIgNjYuNyAxNDUuNEw4MSA0NzIuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMy01Mi4xYzkgMy40IDE4LjQgNi4yIDI4IDguMkwxNzcgNDcyLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTAuNC00MS40YzMzLjQtNC40IDY0LjEtMTcuNCA4OS44LTM2LjdjMTQuMS0xMC42IDE3LTMwLjcgNi40LTQ0LjhzLTMwLjctMTctNDQuOC02LjRjLTEwLjIgNy43LTIxLjcgMTMuOS0zNCAxOC4zTDMyMSAxNjBjOS40LS4zIDE4LjUtNC43IDI0LjYtMTIuOGMxMC42LTE0LjEgNy44LTM0LjItNi40LTQ0LjhjLTEuMS0uOC0yLjItMS42LTMuMy0yLjRMMzUxIDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzI5My4yIDcuMSAyODkgMjQuMkwyNzcuMiA3MS41Yy05LjMtMi43LTE4LjgtNC42LTI4LjYtNS45TDI1NSAzOS44ek0xNjMuMiAxNDMuM0wxMTcuMyAzMjYuOEMxMDMuOSAzMDYuNSA5NiAyODIuMiA5NiAyNTZjMC00OC43IDI3LjItOTEgNjcuMi0xMTIuN3ptOC42IDIyOS41bDYxLjEtMjQ0LjZjOS45IC43IDE5LjUgMi41IDI4LjcgNS4zbC02MiAyNDguMWMtOS43LTEuOS0xOS00LjgtMjcuOC04Ljh6XCJdXG59O1xuY29uc3QgZmFIZWFkc2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWRzZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1OTBcIiwgXCJNMjU2IDQ4QzE0MS4xIDQ4IDQ4IDE0MS4xIDQ4IDI1NmwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2bDAgMTQ0LjFjMCA0OC42LTM5LjQgODgtODguMSA4OEwzMTMuNiA0ODhjLTguMyAxNC4zLTIzLjggMjQtNDEuNiAyNGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwzMiAwYzE3LjggMCAzMy4zIDkuNyA0MS42IDI0bDExMC40IC4xYzIyLjEgMCA0MC0xNy45IDQwLTQwTDQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4ek0xNDQgMjA4bDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTIyNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2IDB6XCJdXG59O1xuY29uc3QgZmFTdG9yZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3JlLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDcxXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTg2LjgtNjggMC0xNy4xIDAtMTMxLjRjLTQgMS04IDEuOC0xMi4zIDIuM2MwIDAgMCAwLS4xIDBjLTUuMyAuNy0xMC43IDEuMS0xNi4yIDEuMWMtMTIuNCAwLTI0LjMtMS45LTM1LjQtNS4zbDAgMTAwLjNMMzAxLjIgMjEwLjdjNy00LjQgMTMuMy05LjcgMTguOC0xNS43YzE1LjkgMTcuNiAzOS4xIDI5IDY1LjIgMjljMjYuMiAwIDQ5LjMtMTEuNCA2NS4yLTI5YzE2IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzQuMSAwIDguMS0uMyAxMi4xLS44YzU1LjUtNy40IDgxLjgtNzIuNSA1Mi4xLTExOS40TDUyMi4zIDEzLjFDNTE3LjIgNSA1MDguMSAwIDQ5OC40IDBMMTQxLjYgMGMtOS43IDAtMTguOCA1LTIzLjkgMTMuMWwtMjIuNyAzNkwzOC44IDUuMXptNzMuNCAyMTguMWM0IC41IDguMSAuOCAxMi4xIC44YzExIDAgMjEuNC0yIDMxLTUuNkw0OC45IDEzNC41Yy02LjEgNDAuNiAxOS41IDgyLjggNjMuMyA4OC43ek0xNjAgMzg0bDAtMTMzLjRjLTExLjIgMy41LTIzLjIgNS40LTM1LjYgNS40Yy01LjUgMC0xMS0uNC0xNi4zLTEuMWwtLjEgMGMtNC4xLS42LTguMS0xLjMtMTItMi4zTDk2IDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzEyLjkgMCAyNC44LTMuOCAzNC45LTEwLjNMMzY1LjUgMzg0IDE2MCAzODR6XCJdXG59O1xuY29uc3QgZmFSb2FkQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NjZcIiwgXCJNMjEzLjIgMzJMMjg4IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDc0LjggMGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhsMC00Mi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NEw4Ni42IDQ4MEM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMjIuNiAxNDRsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDk2IDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDczLjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0OTYgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw1MTguNiAzNjh6XCJdXG59O1xuY29uc3QgZmFVc2VyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1taW51cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUwM1wiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek00NzIgMjAwbDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS11cCcsXG4gIGljb246IFszMjAsIDUxMiwgWzk4OTYsIFwibWFycy1zdHJva2UtdlwiXSwgXCJmMjJhXCIsIFwiTTE0OC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw2NCA2NGM0LjYgNC42IDUuOSAxMS41IDMuNSAxNy40cy04LjMgOS45LTE0LjggOS45bC00MCAwIDAgMjQgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMCAwIDI0YzAgLjYgMCAxLjItLjEgMS44Yzc3IDExLjYgMTM2LjEgNzggMTM2LjEgMTU4LjJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTgwLjIgNTkuMS0xNDYuNyAxMzYuMS0xNTguMmMwLS42LS4xLTEuMi0uMS0xLjhsMC0yNC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMyIDAgMC0yNEw5NiA5NmMtNi41IDAtMTIuMy0zLjktMTQuOC05LjlzLTEuMS0xMi45IDMuNS0xNy40bDY0LTY0ek0yNTYgMzUyQTk2IDk2IDAgMSAwIDY0IDM1MmE5NiA5NiAwIDEgMCAxOTIgMHpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VWID0gZmFNYXJzU3Ryb2tlVXA7XG5jb25zdCBmYUNoYW1wYWduZUdsYXNzZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhbXBhZ25lLWdsYXNzZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjkzNDYsIFwiZ2xhc3MtY2hlZXJzXCJdLCBcImY3OWZcIiwgXCJNMTU1LjYgMTcuM0MxNjMgMyAxNzkuOS0zLjYgMTk1IDEuOUwzMjAgNDcuNWwxMjUtNDUuNmMxNS4xLTUuNSAzMiAxLjEgMzkuNCAxNS40bDc4LjggMTUyLjljMjguOCA1NS44IDEwLjMgMTIyLjMtMzguNSAxNTYuNkw1NTYuMSA0MTNsNDEtMTVjMTYuNi02IDM1IDIuNSA0MSAxOS4xcy0yLjUgMzUtMTkuMSA0MWwtNzEuMSAyNS45TDQ3Ni44IDUxMGMtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zNC0xMzAtOTUuMkwzMjAgMTg4LjhsLTE0LjYgNjQuN2MtMTMuOCA2MS4zLTcwLjYgMTAwLjQtMTMwIDk1LjJsLTMxLjMgODYuMiA0MSAxNWMxNi42IDYgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xTDkyLjIgNDg0LjEgMjEuMSA0NTguMmMtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFzMjQuNC0yNS4yIDQxLTE5LjFsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjhMMjYxLjYgMTU3bDEzLjEtNTcuOUwxOTkuNiA3MS43em0yNDAuOSAwTDM2NS40IDk5LjEgMzc4LjUgMTU3bDg5LjItMzIuNUw0NDAuNSA3MS43elwiXVxufTtcbmNvbnN0IGZhR2xhc3NDaGVlcnMgPSBmYUNoYW1wYWduZUdsYXNzZXM7XG5jb25zdCBmYUNsaXBib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbGlwYm9hcmQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgyMDNdLCBcImYzMjhcIiwgXCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NGwtMzcuNSAwQzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTExMiAxOTJsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGFcIiwgXCJNMzIwLjcgMzUyYzguMS04OS43IDgzLjUtMTYwIDE3NS4zLTE2MGM4LjkgMCAxNy42IC43IDI2LjEgMS45TDMwOS41IDdjLTYtNS0xNC03LTIxLTdzLTE1IDEtMjIgOEwxMCAyMzEuNWMtNyA3LTEwIDE1LTEwIDI0YzAgMTggMTQgMzIuMSAzMiAzMi4xbDMyIDAgMCA2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44bDAgMTEyYzAgMjIuMSAxNy45IDQwIDQwIDQwbDE2IDBjMS4yIDAgMi40LS4xIDMuNi0uMmMxLjUgLjEgMyAuMiA0LjUgLjJsMzEuOSAwIDI0IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC0yNCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDAgLjcgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUZpbGVBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXJyb3ctdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtdXBsb2FkXCJdLCBcImY1NzRcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0yMTYgNDA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAyLjEtMzEgMzFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzEtMzFMMjE2IDQwOHpcIl1cbn07XG5jb25zdCBmYUZpbGVVcGxvYWQgPSBmYUZpbGVBcnJvd1VwO1xuY29uc3QgZmFXaWZpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpZmknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIndpZmktM1wiLCBcIndpZmktc3Ryb25nXCJdLCBcImYxZWJcIiwgXCJNNTQuMiAyMDIuOUMxMjMuMiAxMzYuNyAyMTYuOCA5NiAzMjAgOTZzMTk2LjggNDAuNyAyNjUuOCAxMDYuOWMxMi44IDEyLjIgMzMgMTEuOCA0NS4yLS45czExLjgtMzMtLjktNDUuMkM1NDkuNyA3OS41IDQ0MC40IDMyIDMyMCAzMlM5MC4zIDc5LjUgOS44IDE1Ni43Qy0yLjkgMTY5LTMuMyAxODkuMiA4LjkgMjAyczMyLjUgMTMuMiA0NS4yIC45ek0zMjAgMjU2YzU2LjggMCAxMDguNiAyMS4xIDE0OC4yIDU2YzEzLjMgMTEuNyAzMy41IDEwLjQgNDUuMi0yLjhzMTAuNC0zMy41LTIuOC00NS4yQzQ1OS44IDIxOS4yIDM5MyAxOTIgMzIwIDE5MnMtMTM5LjggMjcuMi0xOTAuNSA3MmMtMTMuMyAxMS43LTE0LjUgMzEuOS0yLjggNDUuMnMzMS45IDE0LjUgNDUuMiAyLjhjMzkuNS0zNC45IDkxLjMtNTYgMTQ4LjItNTZ6bTY0IDE2MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFXaWZpMyA9IGZhV2lmaTtcbmNvbnN0IGZhV2lmaVN0cm9uZyA9IGZhV2lmaTtcbmNvbnN0IGZhQmF0aCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXRoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NzA1LCBcImJhdGh0dWJcIl0sIFwiZjJjZFwiLCBcIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuM2MzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45QzEzMCA5MS44IDEyOCAxMDEuNyAxMjggMTEyYzAgMTkuOSA3LjIgMzggMTkuMiA1MmMtNS4zIDkuMi00IDIxLjEgMy44IDI5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI4OSA4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWMtNy45LTcuOS0xOS44LTkuMS0yOS0zLjhDMjQ2IDM5LjIgMjI3LjkgMzIgMjA4IDMyYy0xMC4zIDAtMjAuMiAyLTI5LjIgNS41TDE2My45IDIyLjZDMTQ5LjQgOC4xIDEyOS43IDAgMTA5LjMgMEM2Ni42IDAgMzIgMzQuNiAzMiA3Ny4zTDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAyNTYgOTYgNzcuM3pNMzIgMzUybDAgMTZjMCAyOC40IDEyLjQgNTQgMzIgNzEuNkw2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2IDI1NiAwIDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQwLjRjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNmwwLTE2TDMyIDM1MnpcIl1cbn07XG5jb25zdCBmYUJhdGh0dWIgPSBmYUJhdGg7XG5jb25zdCBmYVVuZGVybGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmRlcmxpbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwY2RcIiwgXCJNMTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4LTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MHMtMTYwLTcxLjYtMTYwLTE2MEw2NCA5NiA0OCA5NkMzMC4zIDk2IDE2IDgxLjcgMTYgNjR6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFVc2VyUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2VyLWVkaXRcIl0sIFwiZjRmZlwiLCBcIk0yMjQgMjU2QTEyOCAxMjggMCAxIDAgMjI0IDBhMTI4IDEyOCAwIDEgMCAwIDI1NnptLTQ1LjcgNDhDNzkuOCAzMDQgMCAzODMuOCAwIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJsMjkzLjEgMGMtMy4xLTguOC0zLjctMTguNC0xLjQtMjcuOGwxNS02MC4xYzIuOC0xMS4zIDguNi0yMS41IDE2LjgtMjkuN2w0MC4zLTQwLjNjLTMyLjEtMzEtNzUuNy01MC4xLTEyMy45LTUwLjFsLTkxLjQgMHptNDM1LjUtNjguM2MtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBsLTI5LjQgMjkuNCA3MSA3MSAyOS40LTI5LjRjMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZsLTE0LjQtMTQuNHpNMzc1LjkgNDE3Yy00LjEgNC4xLTcgOS4yLTguNCAxNC45bC0xNSA2MC4xYy0xLjQgNS41IC4yIDExLjIgNC4yIDE1LjJzOS43IDUuNiAxNS4yIDQuMmw2MC4xLTE1YzUuNi0xLjQgMTAuOC00LjMgMTQuOS04LjRMNTc2LjEgMzU4LjdsLTcxLTcxTDM3NS45IDQxN3pcIl1cbn07XG5jb25zdCBmYVVzZXJFZGl0ID0gZmFVc2VyUGVuO1xuY29uc3QgZmFTaWduYXR1cmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbmF0dXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWI3XCIsIFwiTTE5MiAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDcuOGMwIDI3LjctMi40IDU1LjMtNy4xIDgyLjVsLTg0LjQgMjUuM2MtNDAuNiAxMi4yLTY4LjQgNDkuNi02OC40IDkybDAgNzEuOWMwIDQwIDMyLjUgNzIuNSA3Mi41IDcyLjVjMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zYy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTI0IDM2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC4zIDBjLS4yLTIuOC0uMy01LjYtLjMtOC41TDY0IDM2OGwtNDAgMHptNTkyIDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMTAuMSAwYy02LjcgMTYuMy0xNC4yIDMyLjMtMjIuMyA0OEw2MTYgNDE2elwiXVxufTtcbmNvbnN0IGZhU3Ryb29wd2FmZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Ryb29wd2FmZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTFcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0zMTIuNiA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgOTcuNiAyMjIuMSA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDMzLjkgMzMuOS00NS4zIDQ1LjMtNTYuNi01Ni42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDU2LjYgNTYuNi00NS4zIDQ1LjNMODYuMyAxOTkuNGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDI1NiA0MTQuNGwzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0MTQuNCAyNTZsMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTMzLjkgMzMuOS00NS4zLTQ1LjMgNTYuNi01Ni42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTU2LjYgNTYuNi00NS4zLTQ1LjMgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xNDIuOSAyNTZsNDUuMy00NS4zTDIzMy40IDI1NmwtNDUuMyA0NS4zTDE0Mi45IDI1NnptNjcuOSA2Ny45TDI1NiAyNzguNmw0NS4zIDQ1LjNMMjU2IDM2OS4xbC00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjNMMzY5LjEgMjU2bC00NS4zIDQ1LjNMMjc4LjYgMjU2em0yMi42LTY3LjlMMjU2IDIzMy40bC00NS4zLTQ1LjNMMjU2IDE0Mi45bDQ1LjMgNDUuM3pcIl1cbn07XG5jb25zdCBmYUJvbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAzMlwiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ4IDAgMTYgMCAxMjggMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDMxLjMtMTEuMyA2MC4xLTMwIDgyLjNjMzcuMSAyMi40IDYyIDYzLjEgNjIgMTA5LjdjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhMOTYgNDgwbC0xNiAwLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE2MEw0OCA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0yMjQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDExMiA5NmwwIDEyOCAxMTIgMHpNMTEyIDI4OGwwIDEyOCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMzIgMC0xMTIgMHpcIl1cbn07XG5jb25zdCBmYUFuY2hvckxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YWRcIiwgXCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTIxLjEgODBDMzY3IDE1OC44IDM4NCAxMjkuNCAzODQgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAzMy40IDE3IDYyLjggNDIuOSA4MEwyMjQgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyMDgtNDggMGMtNTMgMC05Ni00My05Ni05NmwwLTYuMSA3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTcgMCA2LjFjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsODAgMCA4MCAwYzggMCAxNS45LS42IDIzLjYtMS43Yy00LjgtOS03LjYtMTkuMy03LjYtMzAuM2wwLTMzLjNjLTUuMiAuOS0xMC41IDEuMy0xNiAxLjNsLTQ4IDAgMC0yMDggMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTAuOSAwek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nTmdvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLW5nbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRkN1wiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC00MTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNjggNjRsNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMCAwIDY0IDE2IDAgMC0xNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtODhjMC04LjggNy4yLTE2IDE2LTE2ek0zMDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00OCAxNmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0zMnpNNjEuMyA3MS4xbDM0LjcgNTJMOTYgODBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRMNjQgMTMyLjggNjQgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40elwiXVxufTtcbmNvbnN0IGZhTWFuYXRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hbmF0LXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZDVcIiwgXCJNMTkyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM0LjdDNjkuMiAxMTMuOSAwIDE5Mi45IDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC01OS42IDQwLjgtMTA5LjggOTYtMTI0bDAgMjg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODRjNTUuMiAxNC4yIDk2IDY0LjMgOTYgMTI0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zTDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG5jb25zdCBmYU5vdEVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25vdC1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzZVwiLCBcIk0zNjkuOCAzNy40YzE0LjcgOS44IDE4LjcgMjkuNyA4LjkgNDQuNEwzMzcuMSAxNDRsNjIuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMDUuNSAwLTY0IDk2TDQwMCAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIxMi4yIDAtNjUuMiA5Ny43Yy05LjggMTQuNy0yOS43IDE4LjctNDQuNCA4LjlzLTE4LjctMjkuNy04LjktNDQuNEwxMTAuOSAzNjggNDggMzY4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEwNS41IDAgNjQtOTZMNDggMjA4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIxMi4yIDAgNjUuMi05Ny43YzkuOC0xNC43IDI5LjctMTguNyA0NC40LTguOXpcIl1cbn07XG5jb25zdCBmYUJvcmRlclRvcExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZGVyLXRvcC1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJib3JkZXItc3R5bGVcIl0sIFwiZjg1M1wiLCBcIk0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2YzAtOC44IDcuMi0xNiAxNi0xNmwzMzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQ0OHptMTYwIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptLTk2IDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTkyIDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFCb3JkZXJTdHlsZSA9IGZhQm9yZGVyVG9wTGVmdDtcbmNvbnN0IGZhTWFwTG9jYXRpb25Eb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFwLWxvY2F0aW9uLWRvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFwLW1hcmtlZC1hbHRcIl0sIFwiZjVhMFwiLCBcIk00MDggMTIwYzAgNTQuNi03My4xIDE1MS45LTEwNS4yIDE5MmMtNy43IDkuNi0yMiA5LjYtMjkuNiAwQzI0MS4xIDI3MS45IDE2OCAxNzQuNiAxNjggMTIwQzE2OCA1My43IDIyMS43IDAgMjg4IDBzMTIwIDUzLjcgMTIwIDEyMHptOCA4MC40YzMuNS02LjkgNi43LTEzLjggOS42LTIwLjZjLjUtMS4yIDEtMi41IDEuNS0zLjdsMTE2LTQ2LjRDNTU4LjkgMTIzLjQgNTc2IDEzNSA1NzYgMTUybDAgMjcwLjhjMCA5LjgtNiAxOC42LTE1LjEgMjIuM0w0MTYgNTAzbDAtMzAyLjZ6TTEzNy42IDEzOC4zYzIuNCAxNC4xIDcuMiAyOC4zIDEyLjggNDEuNWMyLjkgNi44IDYuMSAxMy43IDkuNiAyMC42bDAgMjUxLjRMMzIuOSA1MDIuN0MxNy4xIDUwOSAwIDQ5Ny40IDAgNDgwLjRMMCAyMDkuNmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMi42LTQ5ek0zMjcuOCAzMzJjMTMuOS0xNy40IDM1LjctNDUuNyA1Ni4yLTc3bDAgMjQ5LjNMMTkyIDQ0OS40IDE5MiAyNTVjMjAuNSAzMS4zIDQyLjMgNTkuNiA1Ni4yIDc3YzIwLjUgMjUuNiA1OS4xIDI1LjYgNzkuNiAwek0yODggMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlZEFsdCA9IGZhTWFwTG9jYXRpb25Eb3Q7XG5jb25zdCBmYUplZGkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamVkaScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjY2OVwiLCBcIk0yNDYgMzE1LjdsLTIxLjItMzEuOWMtMi4xLTMuMi0xLjctNy40IDEtMTAuMXM2LjktMy4xIDEwLjEtMWwyOS41IDE5LjdjMi4xIDEuNCA0LjkgMCA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41QzM3MC42IDQzNS4yIDQxNiAzODIuOSA0MTYgMzIwYzAtMzctMTUuNy03MC40LTQwLjgtOTMuN2MtNy02LjUtNi41LTE4LjYgMS0yNC40QzQxMC4xIDE3NS41IDQzMiAxMzQuMyA0MzIgODhjMC0xNi44LTIuOS0zMy04LjItNDhjLTQuNi0xMyAxMC4yLTMwIDIxLjQtMjJjNTMuNSAzOCA5Mi43IDk0LjggMTA3LjggMTYwLjdjLjUgMi4xLS4yIDQuMy0xLjcgNS45bC0yOC40IDI4LjRjLTQgNC0xLjIgMTAuOSA0LjUgMTAuOWwyNiAwYzMuNCAwIDYuMiAyLjYgNi4zIDZjLjEgMy4zIC4yIDYuNiAuMiAxMGMwIDE3LjUtMS43IDM0LjctNC44IDUxLjNjLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDlDNDg3LjIgNDUwLjUgMzk0LjggNTEyIDI4OCA1MTJTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuM0MxNy43IDI3NC43IDE2IDI1Ny41IDE2IDI0MGMwLTMuMyAuMS02LjcgLjItMTBjLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOUMzOC4xIDExMi44IDc3LjMgNTYgMTMwLjggMThjMTEuMy04IDI2IDguOSAyMS40IDIyYy01LjMgMTUtOC4yIDMxLjItOC4yIDQ4YzAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOWM3LjUgNS44IDggMTcuOSAxIDI0LjRDMTc1LjcgMjQ5LjYgMTYwIDI4MyAxNjAgMzIwYzAgNjIuOSA0NS40IDExNS4yIDEwNS4xIDEyNmwyLjEtNjEuNWMuMS0yLjYtMi44LTQuMi01LTIuOGwtMjYuMyAxNy42Yy0zLjIgMi4xLTcuNCAxLjctMTAuMS0xcy0zLjEtNi45LTEtMTAuMUwyNDYgMzU2LjNjMS4zLTEuOSAuMi00LjUtMi00LjlsLTM3LjYtNy41Yy0zLjctLjctNi40LTQtNi40LTcuOHMyLjctNy4xIDYuNC03LjhsMzcuNi03LjVjMi4yLS40IDMuMy0zIDItNC45elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUG9sbFZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wb2xsLXZlcnRpY2FsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwb2xsXCJdLCBcImY2ODFcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgMTkyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5MnpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFQb2xsID0gZmFTcXVhcmVQb2xsVmVydGljYWw7XG5jb25zdCBmYU11Z0hvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtdWctaG90JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTc0OV0sIFwiZjdiNlwiLCBcIk04OCAwQzc0LjcgMCA2NCAxMC43IDY0IDI0YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxQzEyMC41IDExMi4zIDEyOCAxMTkuOSAxMjggMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzExOS41IDQ3LjcgMTEyIDQwLjEgMTEyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NmwxNiAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEybC00OCAwTDMyIDE5MnptMzUyIDY0bDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDAgMC05NnpNMjI0IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMzguOSAyMy40IDU5LjQgMzkuMSA3My4xbDEuMSAxQzIzMi41IDExMi4zIDI0MCAxMTkuOSAyNDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zOC45LTIzLjQtNTkuNC0zOS4xLTczLjFsLTEuMS0xQzIzMS41IDQ3LjcgMjI0IDQwLjEgMjI0IDI0elwiXVxufTtcbmNvbnN0IGZhQ2FyQmF0dGVyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItYmF0dGVyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmF0dGVyeS1jYXJcIl0sIFwiZjVkZlwiLCBcIk04MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMHptMzA0IDk2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMC0zMnpNODAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC05NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5Q2FyID0gZmFDYXJCYXR0ZXJ5O1xuY29uc3QgZmFHaWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dpZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc4NzNdLCBcImYwNmJcIiwgXCJNMTkwLjUgNjguOEwyMjUuMyAxMjhsLTEuMyAwLTcyIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBsMi4yIDBjMTQuOSAwIDI4LjggNy45IDM2LjMgMjAuOHpNNjQgODhjMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwYzAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjRMMjU2IDg1LjVsLTI0LjEtNDFDMjE1LjcgMTYuOSAxODYuMSAwIDE1NC4yIDBMMTUyIDBDMTAzLjQgMCA2NCAzOS40IDY0IDg4em0zMzYgMGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNzIgMC0xLjMgMCAzNC44LTU5LjJDMzI5LjEgNTUuOSAzNDIuOSA0OCAzNTcuOCA0OGwyLjIgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHpNMzIgMjg4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE0NCAwIDAtMjI0TDMyIDI4OHpNMjg4IDUxMmwxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3Ni0xOTIgMCAwIDIyNHpcIl1cbn07XG5jb25zdCBmYURpY2VUd28gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10d28nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU3XSwgXCJmNTI4XCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhQ2hlc3NRdWVlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1xdWVlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4MTldLCBcImY0NDVcIiwgXCJNMjU2IDBhNTYgNTYgMCAxIDEgMCAxMTJBNTYgNTYgMCAxIDEgMjU2IDB6TTEzNC4xIDE0My44YzMuMy0xMyAxNS0yMy44IDMwLjItMjMuOGMxMi4zIDAgMjIuNiA3LjIgMjcuNyAxN2MxMiAyMy4yIDM2LjIgMzkgNjQgMzlzNTItMTUuOCA2NC0zOWM1LjEtOS44IDE1LjQtMTcgMjcuNy0xN2MxNS4zIDAgMjcgMTAuOCAzMC4yIDIzLjhjNyAyNy44IDMyLjIgNDguMyA2Mi4xIDQ4LjNjMTAuOCAwIDIxLTIuNyAyOS44LTcuNGM4LjQtNC40IDE4LjktNC41IDI3LjYgLjljMTMgOCAxNy4xIDI1IDkuMiAzOEwzOTkuNyA0MDAgMzg0IDQwMGwtNDAuNCAwLTE3NS4xIDBMMTI4IDQwMGwtMTUuNyAwTDUuNCAyMjMuNmMtNy45LTEzLTMuOC0zMCA5LjItMzhjOC43LTUuMyAxOS4yLTUuMyAyNy42LS45YzguOSA0LjcgMTkgNy40IDI5LjggNy40YzI5LjkgMCA1NS4xLTIwLjUgNjIuMS00OC4zek0yNTYgMjI0czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek0xMTIgNDMybDI4OCAwIDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZMODYuNiA1MTJDNzQuMSA1MTIgNjQgNTAxLjkgNjQgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNkwxMTIgNDMyelwiXVxufTtcbmNvbnN0IGZhR2xhc3NlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzc2VzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTMwXCIsIFwiTTExOC42IDgwYy0xMS41IDAtMjEuNCA3LjktMjQgMTkuMUw1NyAyNjAuM2MyMC41LTYuMiA0OC4zLTEyLjMgNzguNy0xMi4zYzMyLjMgMCA2MS44IDYuOSA4Mi44IDEzLjVjMTAuNiAzLjMgMTkuMyA2LjcgMjUuNCA5LjJjMy4xIDEuMyA1LjUgMi40IDcuMyAzLjJjLjkgLjQgMS42IC43IDIuMSAxbC42IC4zIC4yIC4xYzAgMCAuMSAwIC4xIDBjMCAwIDAgMCAwIDBzMCAwIDAgMEwyNDcuOSAyODhzMCAwIDAgMGw2LjMtMTIuN2M1LjggMi45IDEwLjQgNy4zIDEzLjUgMTIuN2w0MC42IDBjMy4xLTUuMyA3LjctOS44IDEzLjUtMTIuN2w2LjMgMTIuN3MwIDAgMCAwYy02LjMtMTIuNy02LjMtMTIuNy02LjMtMTIuN3MwIDAgMCAwczAgMCAwIDBjMCAwIC4xIDAgLjEgMGwuMi0uMSAuNi0uM2MuNS0uMiAxLjItLjYgMi4xLTFjMS44LS44IDQuMi0xLjkgNy4zLTMuMmM2LjEtMi42IDE0LjgtNS45IDI1LjQtOS4yYzIxLTYuNiA1MC40LTEzLjUgODIuOC0xMy41YzMwLjQgMCA1OC4yIDYuMSA3OC43IDEyLjNMNDgxLjQgOTkuMWMtMi42LTExLjItMTIuNi0xOS4xLTI0LTE5LjFjLTMuMSAwLTYuMiAuNi05LjIgMS44TDQxNi45IDk0LjNjLTEyLjMgNC45LTI2LjMtMS4xLTMxLjItMTMuNHMxLjEtMjYuMyAxMy40LTMxLjJsMzEuMy0xMi41YzguNi0zLjQgMTcuNy01LjIgMjctNS4yYzMzLjggMCA2My4xIDIzLjMgNzAuOCA1Ni4ybDQzLjkgMTg4YzEuNyA3LjMgMi45IDE0LjcgMy41IDIyLjFjLjMgMS45IC41IDMuOCAuNSA1LjdsMCA2LjcgMCA0MS4zIDAgMTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTQ0LjMgMGMtNTkuNCAwLTEwOC41LTQ2LjQtMTExLjgtMTA1LjhMMzA2LjYgMzUybC0zNy4yIDAtMS4yIDIyLjJDMjY0LjkgNDMzLjYgMjE1LjggNDgwIDE1Ni4zIDQ4MEwxMTIgNDgwQzUwLjEgNDgwIDAgNDI5LjkgMCAzNjhsMC0xNiAwLTQxLjNMMCAzMDRjMC0xLjkgLjItMy44IC41LTUuN2MuNi03LjQgMS44LTE0LjggMy41LTIyLjFsNDMuOS0xODhDNTUuNSA1NS4zIDg0LjggMzIgMTE4LjYgMzJjOS4yIDAgMTguNCAxLjggMjcgNS4ybDMxLjMgMTIuNWMxMi4zIDQuOSAxOC4zIDE4LjkgMTMuNCAzMS4ycy0xOC45IDE4LjMtMzEuMiAxMy40TDEyNy44IDgxLjhjLTIuOS0xLjItNi0xLjgtOS4yLTEuOHpNNjQgMzI1LjRMNjQgMzY4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ0LjMgMGMyNS41IDAgNDYuNS0xOS45IDQ3LjktNDUuM2wyLjUtNDUuNmMtMi4zLS44LTQuOS0xLjctNy41LTIuNWMtMTcuMi01LjQtMzkuOS0xMC41LTYzLjYtMTAuNWMtMjMuNyAwLTQ2LjIgNS4xLTYzLjIgMTAuNWMtMy4xIDEtNS45IDEuOS04LjUgMi45ek01MTIgMzY4bDAtNDIuNmMtMi42LS45LTUuNS0xLjktOC41LTIuOWMtMTctNS40LTM5LjUtMTAuNS02My4yLTEwLjVjLTIzLjcgMC00Ni40IDUuMS02My42IDEwLjVjLTIuNyAuOC01LjIgMS43LTcuNSAyLjVsMi41IDQ1LjZjMS40IDI1LjQgMjIuNSA0NS4zIDQ3LjkgNDUuM2w0NC4zIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6XCJdXG59O1xuY29uc3QgZmFDaGVzc0JvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWJvYXJkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNDNjXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGQyXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgOTYgMGMxNS4xIDAgMjguNS02LjkgMzcuMy0xNy44QzM0MC40IDQ2Mi4yIDMyMCA0MTcuNSAzMjAgMzY4YzAtNTQuNyAyNC45LTEwMy41IDY0LTEzNS44TDM4NCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTEyLTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTgwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhUGVyc29uQ2hhbGtib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2hhbGtib2FyZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzZFwiLCBcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4IDU2IDAgNjQgMCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNjQgMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODAtNzYuOSAwLTY1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYU1hcnNTdHJva2VSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzk4OTcsIFwibWFycy1zdHJva2UtaFwiXSwgXCJmMjJiXCIsIFwiTTIwOCAzNjhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNzQuNC04OEMzNzAuNyAzNjUuOCAyOTcuMSA0MzIgMjA4IDQzMmMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NmM4OS4xIDAgMTYyLjcgNjYuMiAxNzQuNCAxNTJsMzMuNiAwIDAtNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU2IDMyIDAgMC01NmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTgwIDgwYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4ybDAtNTYtMzIgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNTYtMzMuNiAwelwiXVxufTtcbmNvbnN0IGZhTWFyc1N0cm9rZUggPSBmYU1hcnNTdHJva2VSaWdodDtcbmNvbnN0IGZhSGFuZEJhY2tGaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtYmFjay1maXN0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJoYW5kLXJvY2tcIl0sIFwiZjI1NVwiLCBcIk0xNDQgMEMxMTcuNSAwIDk2IDIxLjUgOTYgNDhsMCA0OCAwIDI4LjVMOTYgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjYuNy05IDcuNUM0MC40IDE2OSAzMiAxODcgMzIgMjA2TDMyIDI0NGMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zTDEyOCAzODRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEwNS4zYzQ2LjktMTkgODAtNjUgODAtMTE4LjdsMC04MCAwLTE2IDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhjLTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjNDMzUwIDgzLjUgMzI5LjMgNjQgMzA0IDY0Yy0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zQzI3MCA1MS41IDI0OS4zIDMyIDIyNCAzMmMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MxOTAgMTkuNSAxNjkuMyAwIDE0NCAwelwiXVxufTtcbmNvbnN0IGZhSGFuZFJvY2sgPSBmYUhhbmRCYWNrRmlzdDtcbmNvbnN0IGZhU3F1YXJlQ2FyZXRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtdXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS11cFwiXSwgXCJmMTUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlzLTEyLjUgMTQuNC0yMiAxNC40bC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43elwiXVxufTtcbmNvbnN0IGZhQ2FyZXRTcXVhcmVVcCA9IGZhU3F1YXJlQ2FyZXRVcDtcbmNvbnN0IGZhQ2xvdWRTaG93ZXJzV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc2hvd2Vycy13YXRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlNFwiLCBcIk0yMjQgMGMzOC42IDAgNzEuOSAyMi44IDg3LjIgNTUuN0MzMjUuNyA0MS4xIDM0NS44IDMyIDM2OCAzMmMzOC43IDAgNzEgMjcuNSA3OC40IDY0bDEuNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMwLTUzIDQzLTk2IDk2LTk2ek0xNDAuNiAyOTIuM2wtNDggODBjLTYuOCAxMS40LTIxLjYgMTUtMzIuOSA4LjJzLTE1LjEtMjEuNi04LjItMzIuOWw0OC04MGM2LjgtMTEuNCAyMS42LTE1LjEgMzIuOS04LjJzMTUuMSAyMS42IDguMiAzMi45em0zMjcuOC0zMi45YzExLjQgNi44IDE1IDIxLjYgOC4yIDMyLjlsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMjUyLjYgMjkyLjNsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS4xLTIxLjYtOC4yLTMyLjlsNDgtODBjNi44LTExLjQgMjEuNi0xNS4xIDMyLjktOC4yczE1LjEgMjEuNiA4LjIgMzIuOXptMTAzLjgtMzIuOWMxMS40IDYuOCAxNSAyMS42IDguMiAzMi45bC00OCA4MGMtNi44IDExLjQtMjEuNiAxNS0zMi45IDguMnMtMTUuMS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnpNMzA2LjUgNDIxLjlDMzI5IDQzNy40IDM1Ni41IDQ0OCAzODQgNDQ4YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNTAxLjcgNDE3IDUxMiAzODQgNTEyYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyA0MzcuMiAxNjUuMSA0NDggMTkyIDQ0OGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYUNoYXJ0QmFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWJhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmFyLWNoYXJ0XCJdLCBcImYwODBcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgNjRsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDk2bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUJhckNoYXJ0ID0gZmFDaGFydEJhcjtcbmNvbnN0IGZhSGFuZHNCdWJibGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWJ1YmJsZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhhbmRzLXdhc2hcIl0sIFwiZTA1ZVwiLCBcIk00MTYgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTMyIDE2MGwuMSA3Mi42Yy4xIDUyLjIgMjQgMTAxIDY0IDEzMy4xYy0uMS0xLjktLjEtMy44LS4xLTUuN2wwLThjMC03MS44IDM3LTEzOC42IDk3LjktMTc2LjdsNjAuMi0zNy42YzguNi01LjQgMTcuOS04LjQgMjcuMy05LjRsNDUuOS03OS41YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOGwtNzggMTM1LjFjLTMuMyA1LjctMTAuNyA3LjctMTYuNCA0LjRzLTcuNy0xMC43LTQuNC0xNi40bDYyLTEwNy40YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44UzIxNCA1IDIwNy40IDE2LjVsLTY4IDExNy44czAgMCAwIDBzMCAwIDAgMGwtNDMuMyA3NUw5NiAxNjBjMC0xNy43LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ6TTMzMi4xIDg4LjVMMzA3LjUgMTMxYzEzLjkgNC41IDI2LjQgMTMuNyAzNC43IDI3Yy45IDEuNSAxLjggMi45IDIuNSA0LjRsMjguOS01MGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6bTQ2LjQgNjMuN2wtMjYuOCA0Ni40Yy0uNiA2LTIuMSAxMS44LTQuMyAxNy40bDQuNyAwIDEzLjMgMHMwIDAgMCAwbDMxLjggMCAyMy0zOS44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMzE1LjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzE1OS4zIDIzNC43IDEyOCAyOTEuMiAxMjggMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xYzM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45YzAgNi4zLS43IDEyLjUtMi4xIDE4LjRDMjE1LjEgNTAxIDI0Ni4zIDUxMiAyODAgNTEybDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05MiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjQgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTU2IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEzNiAwczAgMCAwIDBzMCAwIDAgMGwtOTMuMiAwTDMwNSAyMTkuMWMxNS05LjQgMTkuNS0yOS4xIDEwLjItNDQuMXpcIl1cbn07XG5jb25zdCBmYUhhbmRzV2FzaCA9IGZhSGFuZHNCdWJibGVzO1xuY29uc3QgZmFMZXNzVGhhbkVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xlc3MtdGhhbi1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzN1wiLCBcIk0zOTUuOSA5My43YzE2LjQtNi42IDI0LjQtMjUuMiAxNy44LTQxLjZzLTI1LjItMjQuNC00MS42LTE3LjhsLTMyMCAxMjhDNDAgMTY3LjEgMzIgMTc4LjkgMzIgMTkyczggMjQuOSAyMC4xIDI5LjdsMzIwIDEyOGMxNi40IDYuNiAzNS0xLjQgNDEuNi0xNy44cy0xLjQtMzUtMTcuOC00MS42TDE1MC4yIDE5MiAzOTUuOSA5My43ek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2elwiXVxufTtcbmNvbnN0IGZhVHJhaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjg2NDZdLCBcImYyMzhcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEybDM5LjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxNjAgNDQ4bDEyOCAwIDU0LjYgNTQuNmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzkuNyAwYzEwIDAgMTUtMTIuMSA3LjktMTkuMWwtNDYtNDZjNDYtNy4xIDgxLjEtNDYuOSA4MS4xLTk0LjlsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAwek02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNMjI0IDI4OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFFeWVMb3dWaXNpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXllLWxvdy12aXNpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImxvdy12aXNpb25cIl0sIFwiZjJhOFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6TTIyMyAxNDkuNWM0OC42LTQ0LjMgMTIzLTUwLjggMTc5LjMtMTEuN2M2MC44IDQyLjQgNzguOSAxMjMuMiA0NC4yIDE4Ni45TDQwOCAyOTQuNWM4LjQtMTkuMyAxMC42LTQxLjQgNC44LTYzLjNjLTExLjEtNDEuNS00Ny44LTY5LjQtODguNi03MS4xYy01LjgtLjItOS4yIDYuMS03LjQgMTEuN2MyLjEgNi40IDMuMyAxMy4yIDMuMyAyMC4zYzAgMTAuMi0yLjQgMTkuOC02LjYgMjguM0wyMjMgMTQ5LjV6bTIyMy4xIDI5OEw4My4xIDE2MS41Yy0xMSAxNC40LTIwLjUgMjguNy0yOC40IDQyLjJsMzM5IDI2NS43YzE4LjctNS41IDM2LjItMTMgNTIuNi0yMS44ek0zNC41IDI2OC4zYzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjMy4xIDAgNi4xLS4xIDkuMi0uMkwzMy4xIDI0Ny44Yy0xLjggNi44LTEuMyAxNCAxLjQgMjAuNXpcIl1cbn07XG5jb25zdCBmYUxvd1Zpc2lvbiA9IGZhRXllTG93VmlzaW9uO1xuY29uc3QgZmFDcm93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MjBcIiwgXCJNNDU2IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMjkuMkwxMi41IDM5MC42Yy0xNCAxMC44LTE2LjYgMzAuOS01LjkgNDQuOXMzMC45IDE2LjYgNDQuOSA1LjlMMTI2LjEgMzg0bDEzMy4xIDAgNDYuNiAxMTMuMWM1IDEyLjMgMTkuMSAxOC4xIDMxLjMgMTMuMXMxOC4xLTE5LjEgMTMuMS0zMS4zTDMxMS4xIDM4NGw0MC45IDBjMS4xIDAgMi4xIDAgMy4yIDBsNDYuNiAxMTMuMmM1IDEyLjMgMTkuMSAxOC4xIDMxLjMgMTMuMXMxOC4xLTE5LjEgMTMuMS0zMS4zbC00Mi0xMDJDNDg0LjkgMzU0LjEgNTQ0IDI4MCA1NDQgMTkybDAtNjQgMC04IDgwLjUtMjAuMWM4LjYtMi4xIDEzLjgtMTAuOCAxMS42LTE5LjRDNjI5IDUyIDYwMy40IDMyIDU3NCAzMmwtNTAuMSAwQzUwNy43IDEyLjUgNDgzLjMgMCA0NTYgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFTYWlsYm9hdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzYWlsYm9hdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTQ0NVwiLCBcIk0yNTYgMTZjMC03IDQuNS0xMy4yIDExLjItMTUuM3MxMy45IC40IDE3LjkgNi4xbDIyNCAzMjBjMy40IDQuOSAzLjggMTEuMyAxLjEgMTYuNnMtOC4yIDguNi0xNC4yIDguNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyMHpNMjEyLjEgOTYuNWM3IDEuOSAxMS45IDguMiAxMS45IDE1LjVsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDM1MmMtNS43IDAtMTEtMy0xMy44LThzLTIuOS0xMS0uMS0xNmwxMjgtMjI0YzMuNi02LjMgMTEtOS40IDE4LTcuNXpNNS43IDQwNC4zQzIuOCAzOTQuMSAxMC41IDM4NCAyMS4xIDM4NGw1MzMuOCAwYzEwLjYgMCAxOC4zIDEwLjEgMTUuNCAyMC4zbC00IDE0LjNDNTUwLjcgNDczLjkgNTAwLjQgNTEyIDQ0MyA1MTJMMTMzIDUxMkM3NS42IDUxMiAyNS4zIDQ3My45IDkuNyA0MTguN2wtNC0xNC4zelwiXVxufTtcbmNvbnN0IGZhV2luZG93UmVzdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5kb3ctcmVzdG9yZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJkMlwiLCBcIk00MzIgNjRMMjA4IDY0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi02NCAwIDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBMNDMyIDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDAgMC02NCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZ6TTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6bTY0IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE4NDYsIFwicGx1cy1zcXVhcmVcIl0sIFwiZjBmZVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYVBsdXNTcXVhcmUgPSBmYVNxdWFyZVBsdXM7XG5jb25zdCBmYVRvcmlpR2F0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3JpaS1nYXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTk2MV0sIFwiZjZhMVwiLCBcIk0wIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCA2NCA2NCAwIDAtNjQgOTYgMCAwIDY0IDY0IDAgMC02NCA5NiAwIDAgNjQgNjQgMCAwLTY0IDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02Ni42QzUxMiA2IDUwNiAwIDQ5OC42IDBjLTEuNyAwLTMuNCAuMy01IDFsLTQ5IDE5LjZDNDI1LjcgMjguMSA0MDUuNSAzMiAzODUuMiAzMkwxMjYuOCAzMmMtMjAuNCAwLTQwLjUtMy45LTU5LjQtMTEuNEwxOC40IDFjLTEuNi0uNi0zLjMtMS01LTFDNiAwIDAgNiAwIDEzLjRMMCA4MHpNNjQgMjg4bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTIgMjU2IDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwelwiXVxufTtcbmNvbnN0IGZhRnJvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmcm9nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTJlXCIsIFwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOWMwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN0w0MDAuOCAzMjMuNSA0OTMuMyA0MTZsNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjdjLTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMmMyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yYzI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45Yy0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNmw5MC4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEMwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41QzI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFCdWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVja2V0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNGNmXCIsIFwiTTk2IDE1MmwwIDgtNDggMCAwLThDNDggNjguMSAxMTYuMSAwIDIwMCAwbDQ4IDBjODMuOSAwIDE1MiA2OC4xIDE1MiAxNTJsMCA4LTQ4IDAgMC04YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0bC00OCAwQzE0Mi42IDQ4IDk2IDk0LjYgOTYgMTUyek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNS4xIDBMMzg4LjUgNDY5Yy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjcgNDNsLTIzMy42IDBjLTI0LjYgMC00NS4yLTE4LjUtNDcuNy00M0wzNy4xIDI1NiAzMiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhSW1hZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW1hZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwM2VcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTMyMy44IDIwMi41Yy00LjUtNi42LTExLjktMTAuNS0xOS44LTEwLjVzLTE1LjQgMy45LTE5LjggMTAuNWwtODcgMTI3LjZMMTcwLjcgMjk3Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmw5NiAwIDMyIDAgMjA4IDBjOC45IDAgMTcuMS00LjkgMjEuMi0xMi44czMuNi0xNy40LTEuNC0yNC43bC0xMjAtMTc2ek0xMTIgMTkyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYU1pY3JvcGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjEzMFwiLCBcIk0xOTIgMEMxMzkgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTYwYzAtNTMtNDMtOTYtOTYtOTZ6TTY0IDIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNGwwIDMzLjYtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC0zMy42Yzg1LjgtMTEuNyAxNTItODUuMyAxNTItMTc0LjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDB6XCJdXG59O1xuY29uc3QgZmFDb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY293JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MDA0XSwgXCJmNmM4XCIsIFwiTTk2IDIyNGwwIDMyIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjFjMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDI3MiA2NGwtMTYgMC02NCAwLTQ4IDBDNzcuNyA2NCAyNCAxMTcuNyAyNCAxODRsMCA1NEM5LjQgMjQ5LjggMCAyNjcuOCAwIDI4OGwwIDE3LjZjMCA4IDYuNCAxNC40IDE0LjQgMTQuNEM0Ni4yIDMyMCA3MiAyOTQuMiA3MiAyNjIuNGwwLTYuNCAwLTMyIDAtNDBjMC0yNC4zIDEyLjEtNDUuOCAzMC41LTU4LjlDOTguMyAxMzUuOSA5NiAxNDcuNyA5NiAxNjBsMCA2NHpNNTYwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0xNjYuNiAxNjYuNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDE3OC43IDBjMTIuNSAwIDIyLjYgMTAuMSAyMi42IDIyLjZjMCA2LTIuNCAxMS44LTYuNiAxNmwtMjMuNCAyMy40QzMzMi4yIDIxMS44IDMwMi43IDIyNCAyNzIgMjI0cy02MC4yLTEyLjItODEuOS0zMy45bC0yMy40LTIzLjR6XCJdXG59O1xuY29uc3QgZmFDYXJldFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXVwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ4XCIsIFwiTTE4Mi42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwyNTYgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xMjgtMTI4elwiXVxufTtcbmNvbnN0IGZhU2NyZXdkcml2ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NyZXdkcml2ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk2OTFdLCBcImY1NGFcIiwgXCJNNDY1IDdjLTguNS04LjUtMjItOS40LTMxLjYtMi4xbC0xMDQgODBjLTUuOSA0LjUtOS40IDExLjYtOS40IDE5bDAgNTQuMS04NS42IDg1LjZjNi43IDQuMiAxMyA5LjMgMTguOCAxNS4xczEwLjkgMTIuMiAxNS4xIDE4LjhMMzUzLjkgMTkybDU0LjEgMGM3LjUgMCAxNC41LTMuNSAxOS05LjRsODAtMTA0YzcuNC05LjYgNi41LTIzLjEtMi4xLTMxLjZMNDY1IDd6TTEyMS40IDI4MS40bC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMTItMTEyYzMwLjItMzAuMiAzMC4yLTc5LjEgMC0xMDkuM3MtNzkuMS0zMC4yLTEwOS4zIDB6XCJdXG59O1xuY29uc3QgZmFGb2xkZXJDbG9zZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLWNsb3NlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE4NVwiLCBcIk00NDggNDgwTDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJsNTEyIDAgMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6bTY0LTMyMEwwIDE2MCAwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6XCJdXG59O1xuY29uc3QgZmFIb3VzZVRzdW5hbWkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtdHN1bmFtaScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUxNVwiLCBcIk04MC44IDEzNi41QzEwNC45IDkzLjggMTUyLjYgNjQgMjA5IDY0YzE2LjkgMCAzMy4xIDIuNyA0OC4yIDcuN2MxNi44IDUuNSAzNC45LTMuNiA0MC40LTIwLjRzLTMuNi0zNC45LTIwLjQtNDAuNEMyNTUuOCAzLjggMjMyLjggMCAyMDkgMEM5NS4yIDAgMCA4OCAwIDIwMGMwIDkxLjYgNTMuNSAxNzIuMSAxNDIuMiAxOTQuMWMxMy40IDMuOCAyNy41IDUuOSA0Mi4yIDUuOWMuNyAwIDEuNCAwIDIuMS0uMWMxLjggMCAzLjcgLjEgNS41IC4xYzAgMCAwIDAgMCAwYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjUtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDMyNS4yIDQxMC45IDMzNiAzODQgMzM2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjFjLTExLjEtNy45LTI1LjktNy45LTM3IDBjLTIyLjQgMTUuNS00OS45IDI2LjEtNzcuNCAyNi4xYzAgMC0uMSAwLS4xIDBjLTEyLjQgMC0yNC0xLjUtMzQuOS00LjNDMTIxLjYgMzIwLjIgOTYgMjg3IDk2IDI0OGMwLTQ4LjUgMzkuNS04OCA4OC40LTg4YzEzLjUgMCAyNi4xIDMgMzcuNSA4LjNjMTYgNy41IDM1LjEgLjYgNDIuNS0xNS41cy42LTM1LjEtMTUuNS00Mi41QzIyOS4zIDEwMS4xIDIwNy40IDk2IDE4NC40IDk2Yy00MCAwLTc2LjQgMTUuNC0xMDMuNiA0MC41em0yNTItMTguMWMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDEyMWMxLjYgMSAzLjMgMiA0LjggMy4xYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjMgNzguMSAzLjRjMTAuNiA4LjggMjQuMiAxNS42IDM3LjMgMTguNmM1LjggMS40IDExLjIgMy40IDE2LjIgNi4yYy43LTIuNyAxLjEtNS41IDEuMS04LjRsLS40LTE0NGMwLTEwLTQuNy0xOS40LTEyLjctMjUuNWwtOTUuNS03MmMtMTEuNC04LjYtMjcuMS04LjYtMzguNSAwbC05NiA3MnpNMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhU3F1YXJlTmZpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1uZmknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1NzZcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTc1LjcgNjQuNkM2OC44IDE2Mi41IDY0IDE2OC44IDY0IDE3NmwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTAyLjIgNjYuMyAxMTAuNWMzLjcgNi4yIDExLjEgOS4xIDE4IDcuMnMxMS43LTguMiAxMS43LTE1LjRsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMDIuMkw5My43IDE2Ny44Yy0zLjctNi4yLTExLjEtOS4xLTE4LTcuMnpNMjI0IDE3NmwwIDY0IDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC0zMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2MCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNjB6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGI1XCIsIFwiTTI4OCAzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTAuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNTYgMTA5LjMgMjU2IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptLTE4LjUgNjkuOUMyNDcgNDM3LjQgMjE5LjUgNDQ4IDE5MiA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDUwMS43IDE1OSA1MTIgMTkyIDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0MzkuNCA0MzcuMiA0MTAuOSA0NDggMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwek0xOTIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MjVjNS4zLTMuMSAxMS4yLTUuNCAxNy41LTYuOWMxMy4xLTMuMSAyNi43LTkuOCAzNy4zLTE4LjZjMjIuMi0xOC43IDU0LjMtMjAuMSA3OC4xLTMuNGMxOCAxMi40IDQwLjEgMjAuMyA1OS4xIDIwLjNMMTkyIDE5MnptMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNDQgMCAwIDIyNC41czAgMCAwIDBjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMjMuOC0xNi43IDU1LjgtMTUuNCA3OC4xIDMuNGMxMC42IDguOCAyNC4yIDE1LjYgMzcuMyAxOC42YzYuMyAxLjUgMTIuMSAzLjggMTcuNSA2LjlsMC0xODV6XCJdXG59O1xuY29uc3QgZmFNYXJ0aW5pR2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzg2NCwgXCJnbGFzcy1tYXJ0aW5pLWFsdFwiXSwgXCJmNTdiXCIsIFwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuMyAyMjQgNDQ4bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE3OC43TDUwMi42IDU0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMCA0ODAgMEwzMiAwek0xNzMuMyAxMjhsLTY0LTY0IDI5My41IDAtNjQgNjQtMTY1LjUgMHpcIl1cbn07XG5jb25zdCBmYUdsYXNzTWFydGluaUFsdCA9IGZhTWFydGluaUdsYXNzO1xuY29uc3QgZmFSb3RhdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdGF0ZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyb3RhdGUtYmFja1wiLCBcInJvdGF0ZS1iYWNrd2FyZFwiLCBcInVuZG8tYWx0XCJdLCBcImYyZWFcIiwgXCJNNDguNSAyMjRMNDAgMjI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwxNiA3MmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJMOTguNiA5Ni42Yzg3LjYtODYuNSAyMjguNy04Ni4yIDMxNS44IDFjODcuNSA4Ny41IDg3LjUgMjI5LjMgMCAzMTYuOHMtMjI5LjMgODcuNS0zMTYuOCAwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzYyLjUgNjIuNSAxNjMuOCA2Mi41IDIyNi4zIDBzNjIuNS0xNjMuOCAwLTIyNi4zYy02Mi4yLTYyLjItMTYyLjctNjIuNS0yMjUuMy0xTDE4NSAxODNjNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMnMtMTIuNSAxNC44LTIyLjIgMTQuOEw0OC41IDIyNHpcIl1cbn07XG5jb25zdCBmYVJvdGF0ZUJhY2sgPSBmYVJvdGF0ZUxlZnQ7XG5jb25zdCBmYVJvdGF0ZUJhY2t3YXJkID0gZmFSb3RhdGVMZWZ0O1xuY29uc3QgZmFVbmRvQWx0ID0gZmFSb3RhdGVMZWZ0O1xuY29uc3QgZmFUYWJsZUNvbHVtbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY29sdW1ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29sdW1uc1wiXSwgXCJmMGRiXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCA2NGwwIDI1NiAxNjAgMCAwLTI1Nkw2NCAxNjB6bTM4NCAwbC0xNjAgMCAwIDI1NiAxNjAgMCAwLTI1NnpcIl1cbn07XG5jb25zdCBmYUNvbHVtbnMgPSBmYVRhYmxlQ29sdW1ucztcbmNvbnN0IGZhTGVtb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVtb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4MTldLCBcImYwOTRcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0Yy02LjYgMC0xMyAxLTE5IDIuOWMtMjIuNSA3LTQ4LjEgMTQuOS03MSA5Yy03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxQzEgNDAzIDAgNDA5LjQgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRjNi42IDAgMTMtMSAxOS4xLTIuOWMyMi41LTcgNDguMS0xNC45IDcxLTljNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNzODcuNS0xMzguNSA2OC4zLTIxMy43Yy01LjgtMjIuOSAyLTQ4LjQgOS03MWMxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjEyLjUgMTI3LjRjLTU0LjYgMTYtMTAxLjEgNjIuNS0xMTcuMSAxMTcuMUM5Mi45IDI1MyA4NCAyNTcuOCA3NS41IDI1NS40UzYyLjIgMjQ0IDY0LjYgMjM1LjVjMTkuMS02NS4xIDczLjctMTE5LjggMTM4LjktMTM4LjljOC41LTIuNSAxNy40IDIuNCAxOS45IDEwLjlzLTIuNCAxNy40LTEwLjkgMTkuOXpcIl1cbn07XG5jb25zdCBmYUhlYWRTaWRlTWFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkLXNpZGUtbWFzaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA2M1wiLCBcIk0zMiAyMjQuMmMwLTIyLjIgMy4yLTQzLjYgOS4yLTYzLjlMMjYyLjIgMzIxYy00IDkuNS02LjIgMjAtNi4yIDMxbDAgMTYwLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTcyLjdjMC0xNi43LTYuOS0zMi41LTE3LjEtNDUuOEM0OC42IDMyMi40IDMyIDI3NC4xIDMyIDIyNC4yem0yNDguMyA3MC40TDUzIDEyOS4zQzg4LjcgNTMgMTY2LjIgMCAyNTYgMGwyNCAwYzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNS40IDYuNyA4LjYgMTQuOCA5LjQgMjMuMkwzMzYgMjcyYy0yMS43IDAtNDEuMyA4LjYtNTUuNyAyMi42ek0zMzYgMzA0bDE5OCAwczAgMCAwIDBsMTAgMC0xOS43IDY0TDM2OCAzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTQ2LjUgMC05LjggMzJMMzY4IDQzMmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjYuOCAwLS45IDIuOGMtOC4zIDI2LjktMzMuMSA0NS4yLTYxLjIgNDUuMkwyODggNTEybDAtMTYwYzAtMTQgNi0yNi43IDE1LjYtMzUuNGMwIDAgMCAwIDAgMGM4LjUtNy44IDE5LjktMTIuNiAzMi40LTEyLjZ6bTQ4LTgwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kc2hha2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyYjVcIiwgXCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1MTIgMzE2LjggNTEyIDEyOGwtLjcgMC0zLjktMi41TDQzNC44IDc5Yy0xNS4zLTkuOC0zMy4yLTE1LTUxLjQtMTVjLTIxLjggMC00MyA3LjUtNjAgMjEuMnptMjIuOCAxMjQuNGwtNTEuNyA0MC4yQzI2MyAyNzQuNCAyMTcuMyAyNjggMTkzLjcgMjM1LjZjLTIyLjItMzAuNS0xNi42LTczLjEgMTIuNy05Ni44bDgzLjItNjcuM2MtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC03MiA0OCAwIDIyNCAyOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzek0xNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNkwwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjI0LTgwIDB6TTQ4IDMyMGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTU0NCAxMjhsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIwOGMwLTguOC03LjItMTYtMTYtMTZsLTgwIDB6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhR2VtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dlbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0Ml0sIFwiZjNhNVwiLCBcIk0xMTYuNyAzMy44YzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40bC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJ6bTM4LjUgMzkuOGMtMy4zIDIuNS00LjIgNy0yLjEgMTAuNWw1Ny40IDk1LjZMNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThMMzAxLjUgMTc5LjhsNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXpcIl1cbn07XG5jb25zdCBmYURvbGx5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvbGx5JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJkb2xseS1ib3hcIl0sIFwiZjQ3MlwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMGw3Mi45IDBjMjcuNSAwIDUyIDE3LjYgNjAuNyA0My44TDI1Ny43IDMyMGMzMC4xIC41IDU2LjggMTQuOSA3NCAzN2wyMDIuMS02Ny40YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41TDM1MiA0MTcuN2MtLjkgNTIuMi00My41IDk0LjMtOTYgOTQuM2MtNTMgMC05Ni00My05Ni05NmMwLTMwLjggMTQuNS01OC4yIDM3LTc1LjhMMTA0LjkgNjQgMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMjQ0LjggMTM0LjVjLTUuNS0xNi44IDMuNy0zNC45IDIwLjUtNDAuM0wzMTEgNzkuNGwxOS44IDYwLjkgNjAuOS0xOS44TDM3MS44IDU5LjZsNDUuNy0xNC44YzE2LjgtNS41IDM0LjkgMy43IDQwLjMgMjAuNWw0OS40IDE1Mi4yYzUuNSAxNi44LTMuNyAzNC45LTIwLjUgNDAuM0wzMzQuNSAzMDcuMmMtMTYuOCA1LjUtMzQuOS0zLjctNDAuMy0yMC41TDI0NC44IDEzNC41elwiXVxufTtcbmNvbnN0IGZhRG9sbHlCb3ggPSBmYURvbGx5O1xuY29uc3QgZmFTbW9raW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Ntb2tpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2ODRdLCBcImY0OGRcIiwgXCJNNDQ4IDMybDAgMTFjMCAzOC4yIDE1LjIgNzQuOCA0Mi4yIDEwMS44bDIxIDIxYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCAxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTExYzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlsLTIxLTIxQzQwNS45IDE1MS4xIDM4NCA5OC4xIDM4NCA0M2wwLTExYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTU3NiAyNTZsMC0xMWMwLTM4LjItMTUuMi03NC44LTQyLjItMTAxLjhsLTIxLTIxYy0yMS0yMS0zMi44LTQ5LjUtMzIuOC03OS4ybDAtMTFjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDExYzAgMTIuNyA1LjEgMjQuOSAxNC4xIDMzLjlsMjEgMjFjMzkgMzkgNjAuOSA5MS45IDYwLjkgMTQ3LjFsMCAxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJ6bTIyNCAwbDAgMzIgMTYwIDAgMC0zMi0xNjAgMHptMjg4LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFNaW5pbWl6ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaW5pbWl6ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tcHJlc3MtYXJyb3dzLWFsdFwiXSwgXCJmNzhjXCIsIFwiTTQ1NiAyMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsNDAgNDBMNDQyLjMgNS43QzQ0NiAyIDQ1MC45IDAgNDU2IDBzMTAgMiAxMy43IDUuN2wzNi43IDM2LjdDNTEwIDQ2IDUxMiA1MC45IDUxMiA1NnMtMiAxMC01LjcgMTMuN0w0MzMgMTQzbDQwIDQwYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0Ljh6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzbC00MCA0MGMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMnMtMTQuOC0xMi41LTE0LjgtMjIuMmwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNDQgMHptLTI1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTQwLTQwTDY5LjcgNTA2LjNDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJzMTIuNS0xNC44IDIyLjItMTQuOGwxNDQgMHpNNTYgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQwLTQwTDUuNyA2OS43QzIgNjYgMCA2MS4xIDAgNTZzMi0xMCA1LjctMTMuN0w0Mi4zIDUuN0M0NiAyIDUwLjkgMCA1NiAwczEwIDIgMTMuNyA1LjdMMTQzIDc5bDQwLTQwYzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEw1NiAyMjR6XCJdXG59O1xuY29uc3QgZmFDb21wcmVzc0Fycm93c0FsdCA9IGZhTWluaW1pemU7XG5jb25zdCBmYU1vbnVtZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbnVtZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWE2XCIsIFwiTTE4MC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw4MCA4MGMyLjUgMi41IDQuMSA1LjggNC42IDkuM2w0MC4yIDMyMkw1NS45IDQxNiA5Ni4xIDk0Yy40LTMuNSAyLTYuOCA0LjYtOS4zbDgwLTgwek0xNTIgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTMyIDQ0OGwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTbm93cGxvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93cGxvdycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdkMlwiLCBcIk0yOTguOSA2NGw2OC42IDE2MEwyNTYgMjI0bC02NC02NCAwLTk2IDEwNi45IDB6TTQ0NS4xIDI0Mi43bC04Ny40LTIwNEMzNDcuNiAxNS4zIDMyNC41IDAgMjk4LjkgMEwxNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMTItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMDYuOEMyNi4yIDMxNi44IDAgMzU1LjMgMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjU2IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC0xNy4yLTMuOS0zMy41LTEwLjgtNDhsNDIuOCAwIDAgNTAuN2MwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1NC42IDU0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w1NzYgNDAyLjdsMC04Mi43IDAtODQuOEw2MzMgMTY0YzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNWwtNTcgNzEuMmMtOS4xIDExLjMtMTQgMjUuNC0xNCA0MGwwIDUyLjgtNjQgMCAwLTMxLjNjLjEtMi40LS4yLTQuOC0uNi03LjFzLTEuMi00LjctMi4yLTYuOHpNMzY4IDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMjU2IDB6TTE0NCA0MDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjE2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTU2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTIwMCA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbmNvbnN0IGZhQW5nbGVzUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGVzLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTg3LCBcImFuZ2xlLWRvdWJsZS1yaWdodFwiXSwgXCJmMTAxXCIsIFwiTTQ3MC42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyNTYgMjY1LjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMjEwLjcgMjU2IDczLjQgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvdWJsZVJpZ2h0ID0gZmFBbmdsZXNSaWdodDtcbmNvbnN0IGZhQ2FubmFiaXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FubmFiaXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NWZcIiwgXCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFjMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOWM3LjIgMjYuNCAxMS44IDU1LjIgMTAuNCA4NGMxMS41LTguOCAyMy43LTE2LjcgMzUuOC0yMy42YzQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjVjNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuN2MtOS4xIDE1LjktMTkuOSAzMS43LTMyLjQgNDYuM2MyNy44IDYuNiA1Mi40IDE3LjMgNjcuMiAyNS41YzUuMSAyLjggOC4yIDguMiA4LjIgMTRzLTMuMiAxMS4yLTguMiAxNGMtMTUuMiA4LjQtNDAuOSAxOS41LTY5LjggMjYuMWMtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjFjMS41IDYuMS0uNiAxMi40LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOUwyODAgNDE3LjJsMCA3MC44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzAuOC01OC41IDI5LjFjLTUuNiAyLjgtMTIuMyAyLjEtMTcuMi0xLjlzLTctMTAuMy01LjUtMTYuNGw4LjMtMzMuMWMtMjIuMiAyLjYtNDUgMC02NS4yLTQuNmMtMjguOS02LjYtNTQuNi0xNy42LTY5LjgtMjYuMWMtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRjMTQuOC04LjIgMzkuNC0xOC44IDY3LjItMjUuNUM3OC45IDI5Ni4zIDY4LjEgMjgwLjUgNTkgMjY0LjZjLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjdjLTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41YzEyLjEgNi45IDI0LjMgMTQuNyAzNS44IDIzLjZjLTEuNC0yOC43IDMuMS01Ny42IDEwLjQtODRjMTIuNS00NS4zIDMzLjQtODUuNSA0OS4yLTEwOWMzLTQuNCA4LTcuMSAxMy4zLTcuMXpcIl1cbn07XG5jb25zdCBmYUNpcmNsZVBsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXBsYXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2OSwgXCJwbGF5LWNpcmNsZVwiXSwgXCJmMTQ0XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41elwiXVxufTtcbmNvbnN0IGZhUGxheUNpcmNsZSA9IGZhQ2lyY2xlUGxheTtcbmNvbnN0IGZhVGFibGV0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZXRzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDkwXCIsIFwiTTYxNC4zIDI0N2MtNS4yIDcuOS0xNi4yIDguNS0yMi45IDEuOEwzOTEuMiA0OC42Yy02LjctNi43LTYuMi0xNy44IDEuOC0yMi45QzQxOC4xIDkuNCA0NDcuOSAwIDQ4MCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwYzAgMzIuMS05LjQgNjEuOS0yNS43IDg3ek01NjcgMjk0LjNjLTI1IDE2LjMtNTQuOSAyNS43LTg3IDI1LjdjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwYzAtMzIuMSA5LjQtNjEuOSAyNS43LTg3YzUuMi03LjkgMTYuMi04LjUgMjIuOS0xLjhMNTY4LjggMjcxLjRjNi43IDYuNyA2LjIgMTcuOC0xLjggMjIuOXpNMzAxLjUgMzY4YzkuNSAwIDE2LjkgOC4yIDE1IDE3LjVDMzAxLjEgNDU3LjggMjM2LjkgNTEyIDE2MCA1MTJTMTguOSA0NTcuOCAzLjUgMzg1LjVjLTItOS4zIDUuNS0xNy41IDE1LTE3LjVsMjgzLjEgMHptMC0zMkwxOC41IDMzNmMtOS41IDAtMTYuOS04LjItMTUtMTcuNUMxOC45IDI0Ni4yIDgzLjEgMTkyIDE2MCAxOTJzMTQxLjEgNTQuMiAxNTYuNSAxMjYuNWMyIDkuMy01LjUgMTcuNS0xNSAxNy41elwiXVxufTtcbmNvbnN0IGZhRXRoZXJuZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXRoZXJuZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3OTZcIiwgXCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTEyIDY0IDAgMC0xMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDExMiA2NCAwIDAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMTIgNjQgMCAwLTExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTEyIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhRXVyb1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXVyby1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbODM2NCwgXCJldXJcIiwgXCJldXJvXCJdLCBcImYxNTNcIiwgXCJNNDguMSAyNDBjLS4xIDIuNy0uMSA1LjMtLjEgOGwwIDE2YzAgMi43IDAgNS4zIC4xIDhMMzIgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4LjMgMEM4OS45IDQxOS45IDE3MCA0ODAgMjY0IDQ4MGwyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNCAwYy01Ny45IDAtMTA4LjItMzIuNC0xMzMuOS04MEwyNTYgMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDMuOCAwYy0uMS0yLjYtLjItNS4zLS4yLThsMC0xNmMwLTIuNyAuMS01LjQgLjItOEwyNTYgMjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjUuOSAwYzI1LjctNDcuNiA3Ni04MCAxMzMuOS04MGwyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNCAwQzE3MCAzMiA4OS45IDkyLjEgNjAuMyAxNzZMMzIgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2LjEgMHpcIl1cbn07XG5jb25zdCBmYUV1ciA9IGZhRXVyb1NpZ247XG5jb25zdCBmYUV1cm8gPSBmYUV1cm9TaWduO1xuY29uc3QgZmFDaGFpciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFpcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTY4MV0sIFwiZjZjMFwiLCBcIk0yNDggNDhsMCAyMDggNDggMCAwLTE5Ny4zYzIzLjkgMTMuOCA0MCAzOS43IDQwIDY5LjNsMCAxMjggNDggMCAwLTEyOEMzODQgNTcuMyAzMjYuNyAwIDI1NiAwTDE5MiAwQzEyMS4zIDAgNjQgNTcuMyA2NCAxMjhsMCAxMjggNDggMCAwLTEyOGMwLTI5LjYgMTYuMS01NS41IDQwLTY5LjNMMTUyIDI1Nmw0OCAwIDAtMjA4IDQ4IDB6TTQ4IDI4OGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTYgMzJjLTUgOS45LTQuNCAyMS43IDEuNCAzMS4xUzIwLjkgMzg0IDMyIDM4NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAyNTYgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMxMS4xIDAgMjEuNC01LjcgMjcuMi0xNS4yczYuNC0yMS4yIDEuNC0zMS4xbC0xNi0zMkM0MjMuMiAyOTQuOCA0MTIuMSAyODggNDAwIDI4OEw0OCAyODh6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTUzMywgXCJjaGVjay1jaXJjbGVcIl0sIFwiZjA1OFwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY5IDIwOUwyNDEgMzM3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0N0wzMzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYUNoZWNrQ2lyY2xlID0gZmFDaXJjbGVDaGVjaztcbmNvbnN0IGZhQ2lyY2xlU3RvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtc3RvcCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMDk0LCBcInN0b3AtY2lyY2xlXCJdLCBcImYyOGRcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVN0b3BDaXJjbGUgPSBmYUNpcmNsZVN0b3A7XG5jb25zdCBmYUNvbXBhc3NEcmFmdGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wYXNzLWRyYWZ0aW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJkcmFmdGluZy1jb21wYXNzXCJdLCBcImY1NjhcIiwgXCJNMzUyIDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMkwzOTYgMjI3LjRjLTIzLjcgMjUuMy01NC4yIDQ0LjEtODguNSA1My42TDI1NiAxOTJjMCAwIDAgMCAwIDBzMCAwIDAgMGwtNjggMTE3LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNWM3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NGMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NUM0MjguMSAzNDEuOCAzNDcgMzg0IDI1NiAzODRjLTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43QzUzLjcgMzAxLjYgNDEuOCAyODkuMyAzMS4yIDI3NmMtMTEuMS0xMy44LTguOC0zMy45IDUtNDVzMzMuOS04LjggNDUgNWM1LjcgNy4xIDExLjggMTMuOCAxOC4yIDIwLjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjJjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnptMjEgMjk3LjljMzIuNi0xMi44IDYyLjUtMzAuOCA4OC45LTUyLjlsNDMuNyA3NS41YzQuMiA3LjMgNi41IDE1LjYgNi41IDI0LjFsMCA1NS40YzAgNS41LTIuOSAxMC43LTcuNiAxMy42cy0xMC42IDMuMi0xNS42IC43bC01NS40LTI3LjdjLTguNC00LjItMTUuNC0xMC44LTIwLjEtMTguOUwzNzMgMzkzLjl6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhRHJhZnRpbmdDb21wYXNzID0gZmFDb21wYXNzRHJhZnRpbmc7XG5jb25zdCBmYVBsYXRlV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhdGUtd2hlYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NWFcIiwgXCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNnpNNDAwIDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjZDNTAyLjMgMzk3LjggNDY0LjIgNDM3IDQxNiA0NDZsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHpcIl1cbn07XG5jb25zdCBmYUljaWNsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNpY2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhZFwiLCBcIk03NS44IDMwNC44TDEgMzUuN2MtLjctMi41LTEtNS0xLTcuNUMwIDEyLjYgMTIuNiAwIDI4LjIgMEg0ODIuNEM0OTguOCAwIDUxMiAxMy4yIDUxMiAyOS42YzAgMS42LS4xIDMuMy0uNCA0LjlMNDM0LjYgNDk2LjFjLTEuNSA5LjItOS41IDE1LjktMTguOCAxNS45Yy05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xYy05LjIgMC0xNy4yLTYuMi0xOS40LTE1LjFMMjQwIDE5MiAyMTAuNiAzNjguMmMtMS41IDkuMS05LjQgMTUuOC0xOC42IDE1LjhzLTE3LjEtNi43LTE4LjYtMTUuOEwxNDQgMTkyIDExNS45IDMwNC4zYy0yLjMgOS4yLTEwLjYgMTUuNy0yMC4xIDE1LjdjLTkuMyAwLTE3LjUtNi4yLTIwLTE1LjJ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25TaGVsdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1zaGVsdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTRmXCIsIFwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwMS40TDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDI4MGwwLTg4IDE2IDAgMCA4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc0LjUgMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzcuOSA3MC4zYy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhTmV1dGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25ldXRlcicsXG4gIGljb246IFszODQsIDUxMiwgWzk5MDZdLCBcImYyMmNcIiwgXCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMUwxNjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMzAuOXpcIl1cbn07XG5jb25zdCBmYUlkQmFkZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWQtYmFkZ2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyYzFcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tMzItOTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNDQgNjRsOTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYU1hcmtlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJrZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YTFcIiwgXCJNNDgxIDMxQzQ0NS4xLTQuOCAzODYuOS00LjggMzUxIDMxbC0xNSAxNUwzMjIuOSAzM0MyOTQuOCA0LjkgMjQ5LjIgNC45IDIyMS4xIDMzTDEzNSAxMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyNTUgNjYuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzMDIuMSA4MCAxODYuMyAxOTUuNyAzMTYuMyAzMjUuNyA0ODEgMTYxYzM1LjktMzUuOSAzNS45LTk0LjEgMC0xMjkuOXpNMjkzLjcgMzQ4LjNMMTYzLjcgMjE4LjMgOTkuNSAyODIuNWMtNDggNDgtODAuOCAxMDkuMi05NC4xIDE3NS44bC01IDI1Yy0xLjYgNy45IC45IDE2IDYuNiAyMS43czEzLjggOC4xIDIxLjcgNi42bDI1LTVjNjYuNi0xMy4zIDEyNy44LTQ2LjEgMTc1LjgtOTQuMWw2NC4yLTY0LjJ6XCJdXG59O1xuY29uc3QgZmFGYWNlTGF1Z2hCZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxMywgXCJsYXVnaC1iZWFtXCJdLCBcImY1OWFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMWwyNzUuMiAwYzE0LjIgMCAyNS41IDEyLjQgMjEuNiAyNi4xQzM5Ni4yIDM4MiAzMzIuMSA0MzIgMjU2IDQzMnMtMTQwLjItNTAtMTU5LjItMTE3Ljl6TTIxNy42IDIxMi44czAgMCAwIDBjMCAwIDAgMCAwIDBsLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDB6bTE2MCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6XCJdXG59O1xuY29uc3QgZmFMYXVnaEJlYW0gPSBmYUZhY2VMYXVnaEJlYW07XG5jb25zdCBmYUhlbGljb3B0ZXJTeW1ib2wgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVsaWNvcHRlci1zeW1ib2wnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MDJcIiwgXCJNNDQ1LjMgMjI0bDY0LjcgMEM0OTUuNiAxMDguMiA0MDMuOCAxNi40IDI4OCAybDAgNjQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNHpNNTEwIDI4OGwtNjQuNyAwQzQzMS45IDM2OC40IDM2OC40IDQzMS45IDI4OCA0NDUuM2wwIDY0LjdjMTE1LjgtMTQuNCAyMDcuNi0xMDYuMiAyMjItMjIyek0yIDI4OEMxNi40IDQwMy44IDEwOC4yIDQ5NS42IDIyNCA1MTBsMC02NC43QzE0My42IDQzMS45IDgwLjEgMzY4LjQgNjYuNyAyODhMMiAyODh6bTAtNjRsNjQuNyAwQzgwLjEgMTQzLjYgMTQzLjYgODAuMSAyMjQgNjYuN0wyMjQgMkMxMDguMiAxNi40IDE2LjQgMTA4LjIgMiAyMjR6bTIwNi02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgOTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC05NiAwIDAtNjR6XCJdXG59O1xuY29uc3QgZmFVbml2ZXJzYWxBY2Nlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5pdmVyc2FsLWFjY2VzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI5YVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJzMTkuNC0xNy44IDE1LjItMzAuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQ2hldnJvblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGV2cm9uLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS11cFwiXSwgXCJmMTM5XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zNzcgMjcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTg3LTg3LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIzOSAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzc3IDI3MXpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25DaXJjbGVVcCA9IGZhQ2lyY2xlQ2hldnJvblVwO1xuY29uc3QgZmFMYXJpU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXJpLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxYzhcIiwgXCJNMTQ0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIuN2M1LjMtLjQgMTAuNi0uNyAxNi0uN3MxMC43IC4yIDE2IC43TDIwOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuNGM1NC45IDI1LjIgOTUuOCA3NS41IDEwOC4yIDEzNi4yYzMuNSAxNy4zLTcuNyAzNC4yLTI1IDM3LjdzLTM0LjItNy43LTM3LjctMjVjLTYuMS0yOS45LTIyLjUtNTUuOS00NS40LTc0LjNsMCA2Ny45YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTVjLTUuMi0uNy0xMC42LTEtMTYtMXMtMTAuOCAuMy0xNiAxbDAgOTVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ny45QzgyLjcgMjExLjUgNjQgMjQ3LjYgNjQgMjg4YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzgyIDAgMzM3LjIgMCAyODhjMC03Ny41IDQ1LjktMTQ0LjMgMTEyLTE3NC42TDExMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVZvbGNhbm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sY2FubycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1NV0sIFwiZjc3MFwiLCBcIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNUMyMTIuNCAxMi40IDIzMi43IDAgMjU2IDBzNDMuNiAxMi40IDU0LjggMzFDMzIyIDIxLjYgMzM2LjMgMTYgMzUyIDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xNC43IDAtMjguMy01LTM5LjEtMTMuM2wtMzIgNDhDMjc1LjMgMTg3IDI2NiAxOTIgMjU2IDE5MnMtMTkuMy01LTI0LjktMTMuM2wtMzItNDhDMTg4LjMgMTM5IDE3NC43IDE0NCAxNjAgMTQ0ek0xNDQgMzUybDQ4LjQtMjQuMmMxMC4yLTUuMSAyMS42LTcuOCAzMy03LjhjMTkuNiAwIDM4LjQgNy44IDUyLjIgMjEuNmwzMi41IDMyLjVjNi4zIDYuMyAxNC45IDkuOSAyMy44IDkuOWMxMS4zIDAgMjEuOC01LjYgMjgtMTVsOS43LTE0LjYtNTguOS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNEwxNDQgMzUyem0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjdjMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44YzAtMTIuOCA0LjctMjUuMSAxMy4yLTM0LjdsMTUwLjItMTY5elwiXVxufTtcbmNvbnN0IGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTUzXCIsIFwiTTIwOCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTEyMy43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUwyODEgMjMyLjdsLTE1LjMtMzYuOEMyNDguNSAxNTQuOCAyMDguMyAxMjggMTYzLjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xTDY4LjcgMzk4IDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMTYuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek01NTAuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNTMwLjcgMjI0IDM4NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ2LjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsODAtODBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0zOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNnpNMzkyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OHpcIl1cbn07XG5jb25zdCBmYVN0ZXJsaW5nU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGVybGluZy1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTYzLCBcImdicFwiLCBcInBvdW5kLXNpZ25cIl0sIFwiZjE1NFwiLCBcIk0xMTIgMTYwLjRjMC0zNS41IDI4LjgtNjQuNCA2NC40LTY0LjRjNi45IDAgMTMuOCAxLjEgMjAuNCAzLjNsODEuMiAyNy4xYzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDIxNyAzOC42Yy0xMy4xLTQuNC0yNi44LTYuNi00MC42LTYuNkMxMDUuNSAzMiA0OCA4OS41IDQ4IDE2MC40TDQ4IDIyNGwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgNDQuNWMwIDE3LjQtNC43IDM0LjUtMTMuNyA0OS40TDQuNiA0MzEuNWMtNS45IDkuOS02LjEgMjIuMi0uNCAzMi4yUzIwLjUgNDgwIDMyIDQ4MGwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4OC41IDQxNmwuNy0xLjFDMTA0LjEgMzkwIDExMiAzNjEuNSAxMTIgMzMyLjVsMC00NC41IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTYzLjZ6XCJdXG59O1xuY29uc3QgZmFHYnAgPSBmYVN0ZXJsaW5nU2lnbjtcbmNvbnN0IGZhUG91bmRTaWduID0gZmFTdGVybGluZ1NpZ247XG5jb25zdCBmYVZpcnVzZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXNlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3NlwiLCBcIk0xOTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEzLjVjMCAzNS42IDQzLjEgNTMuNSA2OC4zIDI4LjNsOS41LTkuNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTkuNSA5LjVDMjkzIDEyNC45IDMxMC45IDE2OCAzNDYuNSAxNjhsMTMuNSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMy41IDBjLTM1LjYgMC01My41IDQzLjEtMjguMyA2OC4zbDkuNSA5LjVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtOS41LTkuNUMyNTkuMSAyOTMgMjE2IDMxMC45IDIxNiAzNDYuNWwwIDEzLjVjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMy41YzAtMzUuNi00My4xLTUzLjUtNjguMy0yOC4zbC05LjUgOS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDkuNS05LjVDOTEgMjU5LjEgNzMuMSAyMTYgMzcuNSAyMTZMMjQgMjE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzLjUgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM2wtOS41LTkuNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkuNSA5LjVDMTI0LjkgOTEgMTY4IDczLjEgMTY4IDM3LjVMMTY4IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0em00OCAyMjRhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tNDgtNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzIwIDgwYzAgMzMgMzkuOSA0OS41IDYzLjIgMjYuMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZDNTc0LjUgMzEyLjEgNTkxIDM1MiA2MjQgMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy0zMyAwLTQ5LjUgMzkuOS0yNi4yIDYzLjJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEM1NTEuOSA0NDYuNSA1MTIgNDYzIDUxMiA0OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZjMC0zMy0zOS45LTQ5LjUtNjMuMi0yNi4yYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42QzQxNy41IDQyMy45IDQwMSAzODQgMzY4IDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmMzMyAwIDQ5LjUtMzkuOSAyNi4yLTYzLjJjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEM0NDAuMSAyODkuNSA0ODAgMjczIDQ4MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptMCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIl1cbn07XG5jb25zdCBmYVNxdWFyZVBlcnNvbkNvbmZpbmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wZXJzb24tY29uZmluZWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1NzdcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTYgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTgwIDEwNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTAyLjFjMCAzNi40LTI5LjUgNjUuOS02NS45IDY1LjljLTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNMMTg0LjggMzQybC0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOUwyNDAgMzA2LjdsMC01OC43elwiXVxufTtcbmNvbnN0IGZhVXNlclRpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXRpZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwOFwiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMCAyNTYgMEExMjggMTI4IDAgMSAwIDk2IDEyOHptOTQuNSAyMDAuMmwxOC42IDMxTDE3NS44IDQ4My4xbC0zNi0xNDYuOWMtMi04LjEtOS44LTEzLjQtMTcuOS0xMS4zQzUxLjkgMzQyLjQgMCA0MDUuOCAwIDQ4MS4zYzAgMTcgMTMuOCAzMC43IDMwLjcgMzAuN2wxMzEuNyAwYzAgMCAwIDAgLjEgMGw1LjUgMCAxMTIgMCA1LjUgMGMwIDAgMCAwIC4xIDBsMTMxLjcgMGMxNyAwIDMwLjctMTMuOCAzMC43LTMwLjdjMC03NS41LTUxLjktMTM4LjktMTIxLjktMTU2LjRjLTguMS0yLTE1LjkgMy4zLTE3LjkgMTEuM2wtMzYgMTQ2LjlMMjM4LjkgMzU5LjJsMTguNi0zMWM2LjQtMTAuNy0xLjMtMjQuMi0xMy43LTI0LjJMMjI0IDMwNGwtMTkuNyAwYy0xMi40IDAtMjAuMSAxMy42LTEzLjcgMjQuMnpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bkxvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1sb25nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJsb25nLWFycm93LWRvd25cIl0sIFwiZjE3NVwiLCBcIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuN0w4Ni42IDMyOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93RG93biA9IGZhQXJyb3dEb3duTG9uZztcbmNvbnN0IGZhVGVudEFycm93RG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LWRvd24tdG8tbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU3ZVwiLCBcIk0yNDEuOCAxMTEuOWM4LjkgOS45IDguMSAyNS0xLjggMzMuOWwtODAgNzJjLTkuMSA4LjItMjMgOC4yLTMyLjEgMGwtODAtNzJjLTkuOS04LjktMTAuNy0yNC0xLjgtMzMuOXMyNC0xMC43IDMzLjktMS44bDM5LjkgMzZMMTIwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMjIuMSAzOS45LTM2YzkuOS04LjkgMjUtOC4xIDMzLjkgMS44em0xMjIuOCAyMi42YzExLjUtOC43IDI3LjMtOC43IDM4LjggMGwxNjggMTI4YzYuNiA1IDExIDEyLjUgMTIuMyAyMC43bDI0IDE2MCAuNyA0LjdjMTcuNSAuMiAzMS42IDE0LjQgMzEuNiAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI3LjYgMCAuNy00LjcgMjQtMTYwYzEuMi04LjIgNS42LTE1LjcgMTIuMy0yMC43bDE2OC0xMjh6TTM4NCA0NDhsODAgMEw0MDIuNyAzMjUuNWMtMS43LTMuNC01LjEtNS41LTguOC01LjVjLTUuNSAwLTkuOSA0LjQtOS45IDkuOUwzODQgNDQ4elwiXVxufTtcbmNvbnN0IGZhQ2VydGlmaWNhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2VydGlmaWNhdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTNcIiwgXCJNMjExIDcuM0MyMDUgMSAxOTYtMS40IDE4Ny42IC44cy0xNC45IDguOS0xNy4xIDE3LjNMMTU0LjcgODAuNmwtNjItMTcuNWMtOC40LTIuNC0xNy40IDAtMjMuNSA2LjFzLTguNSAxNS4xLTYuMSAyMy41bDE3LjUgNjJMMTguMSAxNzAuNmMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xUzEgMjA1IDcuMyAyMTFsNDYuMiA0NUw3LjMgMzAxQzEgMzA3LTEuNCAzMTYgLjggMzI0LjRzOC45IDE0LjkgMTcuMyAxNy4xbDYyLjUgMTUuOC0xNy41IDYyYy0yLjQgOC40IDAgMTcuNCA2LjEgMjMuNXMxNS4xIDguNSAyMy41IDYuMWw2Mi0xNy41IDE1LjggNjIuNWMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0NS00Ni4yIDQ1IDQ2LjJjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zbDE1LjgtNjIuNSA2MiAxNy41YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNy41LTYyIDYyLjUtMTUuOGM4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ2LjItNDUgNDYuMi00NWM2LjItNi4xIDguNy0xNSA2LjQtMjMuNHMtOC45LTE0LjktMTcuMy0xNy4xbC02Mi41LTE1LjggMTcuNS02MmMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFsLTYyIDE3LjVMMzQxLjQgMTguMWMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zUzMwNyAxIDMwMSA3LjNMMjU2IDUzLjUgMjExIDcuM3pcIl1cbn07XG5jb25zdCBmYVJlcGx5QWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcGx5LWFsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFpbC1yZXBseS1hbGxcIl0sIFwiZjEyMlwiLCBcIk0yMDkuNCAzOS41Yy05LjEtOS42LTI0LjMtMTAtMzMuOS0uOUwzMy44IDE3My4yYy0xOS45IDE4LjktMTkuOSA1MC43IDAgNjkuNkwxNzUuNSAzNzcuNGM5LjYgOS4xIDI0LjggOC43IDMzLjktLjlzOC43LTI0LjgtLjktMzMuOUw2Ni44IDIwOCAyMDguNSA3My40YzkuNi05LjEgMTAtMjQuMyAuOS0zMy45ek0zNTIgNjRjMC0xMi42LTcuNC0yNC4xLTE5LTI5LjJzLTI1LTMtMzQuNCA1LjRsLTE2MCAxNDRjLTYuNyA2LjEtMTAuNiAxNC43LTEwLjYgMjMuOHMzLjkgMTcuNyAxMC42IDIzLjhsMTYwIDE0NGM5LjQgOC41IDIyLjkgMTAuNiAzNC40IDUuNHMxOS0xNi42IDE5LTI5LjJsMC02NCAzMiAwYzUzIDAgOTYgNDMgOTYgOTZjMCAzMC40LTEyLjggNDcuOS0yMi4yIDU2LjdjLTUuNSA1LjEtOS44IDEyLTkuOCAxOS41YzAgMTAuOSA4LjggMTkuNyAxOS43IDE5LjdjMi44IDAgNS42LS42IDguMS0xLjlDNDk0LjUgNDY3LjkgNTc2IDQxNy4zIDU3NiAzMDRjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTQ4IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYU1haWxSZXBseUFsbCA9IGZhUmVwbHlBbGw7XG5jb25zdCBmYVN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTIzXSwgXCJmMGYyXCIsIFwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDAgMzIgMCAzNTItMjU2IDAgMC0zNTIgMC0zMnpNNjQgOTZsMzIgMCAwIDM4NC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDQ4MGwtMzIgMCAwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0elwiXVxufTtcbmNvbnN0IGZhUGVyc29uU2thdGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tc2thdGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2thdGluZ1wiXSwgXCJmN2M1XCIsIFwiTTM1MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1OS40IDBjNDMuNiAwIDY0LjYgNTMuNCAzMi44IDgzLjFsLTc0LjQgNjkuNCA2MC4yIDYwLjJjOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3My40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuNy03Ny45LTc3LjhjLTI2LjYtMjYuNi0yNC42LTcwLjMgNC4zLTk0LjRsMjAuNC0xN0wxNjAgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODEuNCAzNTMuNGw4Ni45LTg2LjljNC42IDEwIDExIDE5LjMgMTkuMyAyNy41bDIxLjggMjEuOC04Mi43IDgyLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zMjIuNSA5NS4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40TDI3MiA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODguOCAwYzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTEzNS4yIDQ3OC4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDQuNyA0MTEuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41elwiXVxufTtcbmNvbnN0IGZhU2thdGluZyA9IGZhUGVyc29uU2thdGluZztcbmNvbnN0IGZhRmlsdGVyQ2lyY2xlRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbHRlci1jaXJjbGUtZG9sbGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJmdW5uZWwtZG9sbGFyXCJdLCBcImY2NjJcIiwgXCJNMy45IDIyLjlDMTAuNSA4LjkgMjQuNSAwIDQwIDBMNDcyIDBjMTUuNSAwIDI5LjUgOC45IDM2LjEgMjIuOXM0LjYgMzAuNS01LjIgNDIuNUwzOTYuNCAxOTUuNkMzMTYuMiAyMTIuMSAyNTYgMjgzIDI1NiAzNjhjMCAyNy40IDYuMyA1My40IDE3LjUgNzYuNWMtMS42LS44LTMuMi0xLjgtNC43LTIuOWwtNjQtNDhjLTguMS02LTEyLjgtMTUuNS0xMi44LTI1LjZsMC03OS4xTDkgNjUuM0MtLjcgNTMuNC0yLjggMzYuOCAzLjkgMjIuOXpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xMjAuOC0zMi42Yy42LS45IDEuOC0yLjEgNC4yLTMuNGM1LjEtMi43IDEyLjUtNC4xIDE4LjctNGM4LjIgLjEgMTcuMSAxLjggMjYuNCA0LjFjOC42IDIuMSAxNy4zLTMuMSAxOS40LTExLjdzLTMuMS0xNy4zLTExLjctMTkuNGMtNS42LTEuNC0xMS42LTIuNy0xNy45LTMuN2wwLTkuNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDkuNWMtNi4xIDEuMi0xMi4zIDMuMi0xOCA2LjNjLTExLjggNi4zLTIzIDE4LjQtMjEuOCAzNy4yYzEgMTYgMTEuNyAyNS4zIDIxLjYgMzAuN2M4LjggNC43IDE5LjcgNy44IDI4LjYgMTAuM2wxLjggLjVjMTAuMyAyLjkgMTcuOSA1LjIgMjMuMiA4LjNjNC41IDIuNyA0LjcgNC4yIDQuNyA1LjZjLjEgMi40LS41IDMuNy0xIDQuNWMtLjYgMS0xLjggMi4yLTQgMy4zYy00LjcgMi41LTExLjggMy44LTE4LjUgMy42Yy05LjUtLjMtMTguNS0zLjEtMjkuOS02LjhjLTEuOS0uNi0zLjgtMS4yLTUuOC0xLjhjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwYzEuNiAuNSAzLjMgMSA1IDEuNmMwIDAgMCAwIDAgMHMwIDAgMCAwYzcgMi4zIDE1LjEgNC44IDIzLjcgNi42bDAgMTEuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTAuOGM2LjItMS4xIDEyLjUtMy4xIDE4LjMtNi4yYzEyLjEtNi41IDIyLjMtMTguNyAyMS43LTM2LjljLS41LTE2LjItMTAuMy0yNi4zLTIwLjUtMzIuM2MtOS40LTUuNi0yMS4yLTguOS0zMC41LTExLjVsLS4yIDBjLTEwLjQtMi45LTE4LjMtNS4yLTIzLjktOC4yYy00LjgtMi42LTQuOC00LTQuOC00LjVjMCAwIDAgMCAwLS4xYy0uMS0xLjkgLjMtMi45IC44LTMuNnpcIl1cbn07XG5jb25zdCBmYUZ1bm5lbERvbGxhciA9IGZhRmlsdGVyQ2lyY2xlRG9sbGFyO1xuY29uc3QgZmFDYW1lcmFSZXRybyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW1lcmEtcmV0cm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNDddLCBcImYwODNcIiwgXCJNMjIwLjYgMTIxLjJMMjcxLjEgOTYgNDQ4IDk2bDAgOTYtMTE0LjggMGMtMjEuOS0xNS4xLTQ4LjUtMjQtNzcuMi0yNHMtNTUuMiA4LjktNzcuMiAyNEw2NCAxOTJsMC02NCAxMjggMGM5LjkgMCAxOS43LTIuMyAyOC42LTYuOHpNMCAxMjhMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjcxLjEgMzJjLTkuOSAwLTE5LjcgMi4zLTI4LjYgNi44TDE5MiA2NGwtMzIgMCAwLTE2YzAtOC44LTcuMi0xNi0xNi0xNkw4MCAzMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZDMjguNyA2NCAwIDkyLjcgMCAxMjh6TTE2OCAzMDRhODggODggMCAxIDEgMTc2IDAgODggODggMCAxIDEgLTE3NiAwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtZG93blwiXSwgXCJmMGFiXCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTI3IDI5N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcxIDcxTDIzMiAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDIxNC4xIDcxLTcxYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMjcgMjk3elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVEb3duID0gZmFDaXJjbGVBcnJvd0Rvd247XG5jb25zdCBmYUZpbGVJbXBvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbXBvcnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFycm93LXJpZ2h0LXRvLWZpbGVcIl0sIFwiZjU2ZlwiLCBcIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzUyIDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTExMiAxNzQuMSAwLTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDM5IDM5TDEyOCAyODhsMC0yMjR6bTAgMjI0bDAgNDhMMjQgMzM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwNCAwek01MTIgMTI4bC0xMjggMEwzODQgMCA1MTIgMTI4elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvRmlsZSA9IGZhRmlsZUltcG9ydDtcbmNvbnN0IGZhU3F1YXJlQXJyb3dVcFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1hcnJvdy11cC1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZXh0ZXJuYWwtbGluay1zcXVhcmVcIl0sIFwiZjE0Y1wiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjAgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk0LjEgMEwxMTkgMzI3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTM1LTEzNUwyODggMzI4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTE1MiAwelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rU3F1YXJlID0gZmFTcXVhcmVBcnJvd1VwUmlnaHQ7XG5jb25zdCBmYUJveE9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LW9wZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OWVcIiwgXCJNNTguOSA0Mi4xYzMtNi4xIDkuNi05LjYgMTYuMy04LjdMMzIwIDY0IDU2NC44IDMzLjRjNi43LS44IDEzLjMgMi43IDE2LjMgOC43bDQxLjcgODMuNGM5IDE3LjktLjYgMzkuNi0xOS44IDQ1LjFMNDM5LjYgMjE3LjNjLTEzLjkgNC0yOC44LTEuOS0zNi4yLTE0LjNMMzIwIDY0IDIzNi42IDIwM2MtNy40IDEyLjQtMjIuMyAxOC4zLTM2LjIgMTQuM0wzNy4xIDE3MC42Yy0xOS4zLTUuNS0yOC44LTI3LjItMTkuOC00NS4xTDU4LjkgNDIuMXpNMzIxLjEgMTI4bDU0LjkgOTEuNGMxNC45IDI0LjggNDQuNiAzNi42IDcyLjUgMjguNkw1NzYgMjExLjZsMCAxNjdjMCAyMi0xNSA0MS4yLTM2LjQgNDYuNmwtMjA0LjEgNTFjLTEwLjIgMi42LTIwLjkgMi42LTMxIDBsLTIwNC4xLTUxQzc5IDQxOS43IDY0IDQwMC41IDY0IDM3OC41bDAtMTY3TDE5MS42IDI0OGMyNy44IDggNTcuNi0zLjggNzIuNS0yOC42TDMxOC45IDEyOGwyLjIgMHpcIl1cbn07XG5jb25zdCBmYVNjcm9sbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3JvbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgyMjBdLCBcImY3MGVcIiwgXCJNMCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgNDggMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgNTMuNSAwIDgwek0xMTIgMzJjMTAgMTMuNCAxNiAzMCAxNiA0OGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtNS4zYzAtMzIuNCAyNi4zLTU4LjcgNTguNy01OC43TDQ4MCAzMjBsMC0xOTJjMC01My00My05Ni05Ni05NkwxMTIgMzJ6TTQ2NCA0ODBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0yNDUuMyAwYy0xNC43IDAtMjYuNyAxMS45LTI2LjcgMjYuN2wwIDUuM2MwIDUzLTQzIDk2LTk2IDk2bDE3NiAwIDk2IDB6XCJdXG59O1xuY29uc3QgZmFTcGEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNWJiXCIsIFwiTTE4My4xIDIzNS4zYzMzLjcgMjAuNyA2Mi45IDQ4LjEgODUuOCA4MC41YzcgOS45IDEzLjQgMjAuMyAxOS4xIDMxYzUuNy0xMC44IDEyLjEtMjEuMSAxOS4xLTMxYzIyLjktMzIuNCA1Mi4xLTU5LjggODUuOC04MC41QzQzNy42IDIwNy44IDQ5MC4xIDE5MiA1NDYgMTkybDkuOSAwYzExLjEgMCAyMC4xIDkgMjAuMSAyMC4xQzU3NiAzNjAuMSA0NTYuMSA0ODAgMzA4LjEgNDgwTDI4OCA0ODBsLTIwLjEgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xQzAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzU1LjkgMCAxMDguNCAxNS44IDE1My4xIDQzLjN6TTMwMS41IDM3LjZjMTUuNyAxNi45IDYxLjEgNzEuOCA4NC40IDE2NC42Yy0zOCAyMS42LTcxLjQgNTAuOC05Ny45IDg1LjZjLTI2LjUtMzQuOC01OS45LTYzLjktOTcuOS04NS42YzIzLjItOTIuOCA2OC42LTE0Ny43IDg0LjQtMTY0LjZDMjc4IDMzLjkgMjgyLjkgMzIgMjg4IDMyczEwIDEuOSAxMy41IDUuNnpcIl1cbn07XG5jb25zdCBmYUxvY2F0aW9uUGluTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1waW4tbG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUxZlwiLCBcIk0yMTUuNyA0OTkuMmMxMS0xMy44IDI1LjEtMzEuNyA0MC4zLTUyLjNsMC05NC44YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI0LjZjMC01NS42IDQwLjUtMTAxLjcgOTMuNi0xMTAuNUMzNjcgNzAgMjg3LjcgMCAxOTIgMEM4NiAwIDAgODYgMCAxOTJjMCA4Ny40IDExNyAyNDMgMTY4LjMgMzA3LjJjMTIuMyAxNS4zIDM1LjEgMTUuMyA0Ny40IDB6TTE5MiAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQwMCAyNDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMmwwIDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwiXVxufTtcbmNvbnN0IGZhUGF1c2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGF1c2UnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5MjA4XSwgXCJmMDRjXCIsIFwiTTQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEyTDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6bTE5MiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDI4OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhSGlsbEF2YWxhbmNoZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWxsLWF2YWxhbmNoZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwN1wiLCBcIk00MzkuNyA0MDEuOWMzNC4yIDIzLjEgODEuMSAxOS41IDExMS40LTEwLjhjMzQuNC0zNC40IDM0LjQtOTAuMSAwLTEyNC40Yy0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2Yy0xMS44IDYuMS0xNi40IDIwLjYtMTAuMyAzMi4zczIwLjYgMTYuNCAzMi4zIDEwLjNjMTUuMS03LjggMzQtNS4zIDQ2LjYgNy4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC04MS43LTgxLjdDNDAxLjIgMjYxLjMgNDE2IDIzNi40IDQxNiAyMDhjMC0zMy45LTIxLjEtNjIuOS01MC45LTc0LjVjMS45LTYuOCAyLjktMTQgMi45LTIxLjVjMC00NC4yLTM1LjgtODAtODAtODBjLTI3LjMgMC01MS41IDEzLjctNjUuOSAzNC42QzIxNi4zIDQ2LjYgMTk3LjkgMzIgMTc2IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDQgLjUgNy45IDEuNCAxMS42TDQzOS43IDQwMS45ek00ODAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUVtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWVtcHR5JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS0wXCIsIFwidGhlcm1vbWV0ZXItMFwiLCBcInRoZXJtb21ldGVyLWVtcHR5XCJdLCBcImYyY2JcIiwgXCJNMTEyIDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyMzMuOCAzMzIuNiAyNDAgMzQ5LjUgMjQwIDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45YzguMi0xMC42IDE1LjMtMjUuMiAxNS4zLTQyLjVMMTEyIDExMnpNMTYwIDBDOTguMSAwIDQ4IDUwLjIgNDggMTEybDAgMTY0LjRjMCAuMS0uMSAuMy0uMiAuNmMtLjIgLjYtLjggMS42LTEuNyAyLjhDMjcuMiAzMDQuMiAxNiAzMzQuOCAxNiAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZMMjcyIDExMkMyNzIgNTAuMiAyMjEuOSAwIDE2MCAwem0wIDQxNmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZTAgPSBmYVRlbXBlcmF0dXJlRW1wdHk7XG5jb25zdCBmYVRoZXJtb21ldGVyMCA9IGZhVGVtcGVyYXR1cmVFbXB0eTtcbmNvbnN0IGZhVGhlcm1vbWV0ZXJFbXB0eSA9IGZhVGVtcGVyYXR1cmVFbXB0eTtcbmNvbnN0IGZhQm9tYiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib21iJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTYzXSwgXCJmMWUyXCIsIFwiTTQ1OS4xIDUyLjRMNDQyLjYgNi41QzQ0MC43IDIuNiA0MzYuNSAwIDQzMi4xIDBzLTguNSAyLjYtMTAuNCA2LjVMNDA1LjIgNTIuNGwtNDYgMTYuOGMtNC4zIDEuNi03LjMgNS45LTcuMiAxMC40YzAgNC41IDMgOC43IDcuMiAxMC4ybDQ1LjcgMTYuOCAxNi44IDQ1LjhjMS41IDQuNCA1LjggNy41IDEwLjQgNy41czguOS0zLjEgMTAuNC03LjVsMTYuNS00NS44IDQ1LjctMTYuOGM0LjItMS41IDcuMi01LjcgNy4yLTEwLjJjMC00LjYtMy04LjktNy4yLTEwLjRMNDU5LjEgNTIuNHptLTEzMi40IDUzYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMi45IDIuOUMyNTYuNSAxMDAuMyAyMzIuNyA5NiAyMDggOTZDOTMuMSA5NiAwIDE4OS4xIDAgMzA0UzkzLjEgNTEyIDIwOCA1MTJzMjA4LTkzLjEgMjA4LTIwOGMwLTI0LjctNC4zLTQ4LjUtMTIuMi03MC41bDIuOS0yLjljMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yMDAgMTkyYy01Ny40IDAtMTA0IDQ2LjYtMTA0IDEwNGwwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04YzAtNzUuMSA2MC45LTEzNiAxMzYtMTM2bDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtOCAwelwiXVxufTtcbmNvbnN0IGZhUmVnaXN0ZXJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWdpc3RlcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTc0XSwgXCJmMjVkXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCAyOC0xNC40IDUyLjctMzYuMyA2N2wzNC4xIDc1LjFjNS41IDEyLjEgLjEgMjYuMy0xMS45IDMxLjhzLTI2LjMgLjEtMzEuOC0xMS45TDI2OC45IDI4OCAyMDggMjg4bDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC05NiAwLTExMnptNDggODhsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhQWRkcmVzc0NhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDAsIFwiY29udGFjdC1jYXJkXCIsIFwidmNhcmRcIl0sIFwiZjJiYlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni0zMmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNvbnRhY3RDYXJkID0gZmFBZGRyZXNzQ2FyZDtcbmNvbnN0IGZhVmNhcmQgPSBmYUFkZHJlc3NDYXJkO1xuY29uc3QgZmFTY2FsZVVuYmFsYW5jZWRGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjYWxlLXVuYmFsYW5jZWQtZmxpcCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmFsYW5jZS1zY2FsZS1yaWdodFwiXSwgXCJmNTE2XCIsIFwiTTExNy45IDYyLjRjLTE2LjgtNS42LTI1LjgtMjMuNy0yMC4yLTQwLjVzMjMuNy0yNS44IDQwLjUtMjAuMmwxMTMgMzcuN0MyNjUgMTUuOCAyOTAuNyAwIDMyMCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNCAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4yTDM1MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuNCAyODhMMTI4IDE2My44IDU1LjYgMjg4bDE0NC45IDB6TTEyOCAzODRDNjUuMSAzODQgMTIuOCAzNTAgMiAzMDUuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMUMyNDMuMiAzNTAgMTkwLjkgMzg0IDEyOCAzODR6bTM4Mi44LTkyLjJMNDM4LjQgNDE2bDE0NC45IDBMNTEwLjggMjkxLjh6bTEyNiAxNDEuM0M2MjYgNDc4IDU3My43IDUxMiA1MTAuOCA1MTJzLTExNS4yLTM0LTEyNi03OC45Yy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xelwiXVxufTtcbmNvbnN0IGZhQmFsYW5jZVNjYWxlUmlnaHQgPSBmYVNjYWxlVW5iYWxhbmNlZEZsaXA7XG5jb25zdCBmYVN1YnNjcmlwdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWJzY3JpcHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMmNcIiwgXCJNMzIgNjRDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOEw0Ny4zIDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDE3NiAzMTEuOGw4NS44IDEyMi42YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwTDIxNS4xIDI1Nmw4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMTc2IDIwMC4yIDkwLjIgNzcuNkM4NC4yIDY5LjEgNzQuNCA2NCA2NCA2NEwzMiA2NHpNNDgwIDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlDMzkzIDM2MS41IDQwNC4zIDM2OCA0MTYgMzY4bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4elwiXVxufTtcbmNvbnN0IGZhRGlhbW9uZFR1cm5SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFtb25kLXR1cm4tcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRpcmVjdGlvbnNcIl0sIFwiZjVlYlwiLCBcIk0yMjcuNyAxMS43YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDIxNiAyMTZjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIxNiAyMTZjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC0yMTYtMjE2Yy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmwyMTYtMjE2em04Ny42IDEzN2MtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNXMtOS45IDguMy05LjkgMTQuOGwwIDU2LTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwIDAgNTZjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsODAtODBjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTgwLTgwelwiXVxufTtcbmNvbnN0IGZhRGlyZWN0aW9ucyA9IGZhRGlhbW9uZFR1cm5SaWdodDtcbmNvbnN0IGZhQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVyc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZGNcIiwgXCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN3MtOS40IDIxLTIuOCAzMC41bDExMiAxNjMuM0wxNi42IDIzMy4yQzYuNyAyMzYuNCAwIDI0NS42IDAgMjU2czYuNyAxOS42IDE2LjYgMjIuOGwxMDMuMSAzMy40TDY2LjggNDEyLjhjLTQuOSA5LjMtMy4yIDIwLjcgNC4zIDI4LjFzMTguOCA5LjIgMjguMSA0LjNsMTAwLjYtNTIuOSAzMy40IDEwMy4xYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNnMxOS42LTYuNyAyMi44LTE2LjZsMzMuNC0xMDMuMSAxMDAuNiA1Mi45YzkuMyA0LjkgMjAuNyAzLjIgMjguMS00LjNzOS4yLTE4LjggNC4zLTI4LjFMMzkyLjMgMzEyLjJsMTAzLjEtMzMuNGM5LjktMy4yIDE2LjYtMTIuNCAxNi42LTIyLjhzLTYuNy0xOS42LTE2LjYtMjIuOEwzODguOSAxOTguN2wyNS43LTcwLjRjMy4yLTguOCAxLTE4LjYtNS42LTI1LjJzLTE2LjQtOC44LTI1LjItNS42bC03MC40IDI1LjdMMjc4LjggMTYuNkMyNzUuNiA2LjcgMjY2LjQgMCAyNTYgMHMtMTkuNiA2LjctMjIuOCAxNi42bC0zMi4zIDk5LjZMMzcuNiA0LjJ6XCJdXG59O1xuY29uc3QgZmFIb3VzZUxhcHRvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1sYXB0b3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImxhcHRvcC1ob3VzZVwiXSwgXCJlMDY2XCIsIFwiTTIxOC4zIDguNWMxMi4zLTExLjMgMzEuMi0xMS4zIDQzLjQgMGwyMDggMTkyYzYuNyA2LjIgMTAuMyAxNC44IDEwLjMgMjMuNWwtMTQ0IDBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43bDAtMzcuN2MwLTguOC03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwIDAgMTI4LTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTExMi0zMiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC4xLTM1LjJsMjA4LTE5MnpNMzUyIDMwNGwwIDE0NCAxOTIgMCAwLTE0NC0xOTIgMHptLTQ4LTE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC00OCAwLTE5MiAwLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhTGFwdG9wSG91c2UgPSBmYUhvdXNlTGFwdG9wO1xuY29uc3QgZmFGYWNlVGlyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS10aXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NSwgXCJ0aXJlZFwiXSwgXCJmNWM4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjRjNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOWMwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhzLTYuOS03LjktNi45LTEzLjJjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOWM2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHptLTMxLjItMTgybDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTU3LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJdXG59O1xuY29uc3QgZmFUaXJlZCA9IGZhRmFjZVRpcmVkO1xuY29uc3QgZmFNb25leUJpbGxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGxzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMWYzXCIsIFwiTTk2IDk2bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQxNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTY0IDE2MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwtNjQgMCAwLTY0ek0yMjQgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMC02NCA2NCAwek01NzYgMjU2bDAgNjQtNjQgMGMwLTM1LjMgMjguNy02NCA2NC02NHpNNTEyIDk2bDY0IDAgMCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI4OCAyMDhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek00OCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMDYuNyAwIDEyMEwwIDM2MGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAwIDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtMjQwelwiXVxufTtcbmNvbnN0IGZhU21vZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbW9nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzVmXCIsIFwiTTMyIDE0NGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwxMjMuMyAwYzIyLjYgMTkuOSA1Mi4yIDMyIDg0LjcgMzJzNjIuMS0xMi4xIDg0LjctMzJsMjcuMyAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEyYy0xMC43IDAtMjEgMS41LTMwLjggNC4zQzQ0My44IDI3LjcgNDAxLjEgMCAzNTIgMGMtMzIuNiAwLTYyLjQgMTIuMi04NS4xIDMyLjNDMjQyLjEgMTIuMSAyMTAuNSAwIDE3NiAwQzk2LjUgMCAzMiA2NC41IDMyIDE0NHpNNjE2IDM2OGwtMzM2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS02NCA5NmwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS0xOTIgMEwyNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6TTIyNCAzOTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMOTYgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQ3J1dGNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NydXRjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdmN1wiLCBcIk0yOTcuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS05NiAxNDRsLTM0LjggMzQuOGMtMTIuOSAxMi45LTIxLjkgMjkuMi0yNS44IDQ3LjFMMTE2LjggMzQyLjljLTEuMyA1LjktNC4zIDExLjQtOC42IDE1LjdMOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk4LjgtOTguOGM0LjMtNC4zIDkuNy03LjMgMTUuNy04LjZsMTA3LjYtMjMuOWMxNy44LTQgMzQuMS0xMi45IDQ3LjEtMjUuOGwzNC43LTM0LjdjMCAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xbDc0LjYtNzQuNi00NS4zLTQ1LjNMMzM2IDI0Mi43IDI2OS4zIDE3Nmw1Mi4xLTUyLjFMMjc2LjEgNzguNmwtNzQuNyA3NC43ek0yMjQgMjIxLjNMMjkwLjcgMjg4bC0xMi4yIDEyLjJjLTQuMyA0LjMtOS43IDcuMy0xNS43IDguNmwtNzYuNyAxNyAxNy03Ni43YzEuMy01LjkgNC4zLTExLjQgOC42LTE1LjdMMjI0IDIyMS4zelwiXVxufTtcbmNvbnN0IGZhRm9udEF3ZXNvbWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9udC1hd2Vzb21lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI1MDEsIDYyNjk0LCBcImZvbnQtYXdlc29tZS1mbGFnXCIsIFwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbFwiXSwgXCJmMmI0XCIsIFwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTJDMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCAzIDAgMzUyIDAgNjQgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjRjMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzJsNjEuNy0xMzguOWMxLjUtMy40IDIuMy03IDIuMy0xMC43YzAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6XCJdXG59O1xuY29uc3QgZmFGb250QXdlc29tZUZsYWcgPSBmYUZvbnRBd2Vzb21lO1xuY29uc3QgZmFGb250QXdlc29tZUxvZ29GdWxsID0gZmFGb250QXdlc29tZTtcbmNvbnN0IGZhQ2xvdWRBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLWFycm93LXVwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbNjIzMzgsIFwiY2xvdWQtdXBsb2FkXCIsIFwiY2xvdWQtdXBsb2FkLWFsdFwiXSwgXCJmMGVlXCIsIFwiTTE0NCA0ODBDNjQuNSA0ODAgMCA0MTUuNSAwIDMzNmMwLTYyLjggNDAuMi0xMTYuMiA5Ni4yLTEzNS45Yy0uMS0yLjctLjItNS40LS4yLTguMWMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MGM1OS4zIDAgMTExIDMyLjIgMTM4LjcgODAuMkM0MDkuOSAxMDIgNDI4LjMgOTYgNDQ4IDk2YzUzIDAgOTYgNDMgOTYgOTZjMCAxMi4yLTIuMyAyMy44LTYuNCAzNC42QzU5NiAyMzguNCA2NDAgMjkwLjEgNjQwIDM1MmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzY4IDB6bTc5LTIxN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDM5LTM5TDI5NiAzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNC4xIDM5IDM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUNsb3VkVXBsb2FkID0gZmFDbG91ZEFycm93VXA7XG5jb25zdCBmYUNsb3VkVXBsb2FkQWx0ID0gZmFDbG91ZEFycm93VXA7XG5jb25zdCBmYVBhbGV0dGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFsZXR0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkxMl0sIFwiZjUzZlwiLCBcIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjdjLS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDMuNCAuNCA2LjcgMSA5LjljMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOWM2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MmMwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjJjLTMuNSAuMS03IC4yLTEwLjYgLjJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUFycm93c1R1cm5SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdHVybi1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTRjMFwiLCBcIk0yOTcuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzMzguNyAxNjAgMTI4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyQzAgMTUzLjMgNTcuMyA5NiAxMjggOTZsMjEwLjcgMEwyOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDQxNiA5NiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYVZlc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NVwiLCBcIk0yMDcuMSAyMzcuNEwxNTEuMiA2OS43QzE2OC42IDc5LjcgMTkyLjYgODggMjI0IDg4czU1LjQtOC4zIDcyLjgtMTguM0wyMjYuNSAyODAuNmMtMS42IDQuOS0yLjUgMTAtMi41IDE1LjJMMjI0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5My41YzAtOS41LTIuOC0xOC43LTguMS0yNi42bC00Ny45LTcxLjhjLTUuMy03LjktOC4xLTE3LjEtOC4xLTI2LjZsMC0xNy41IDAtNzMuNyAwLTYuM2MwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLS4yIDAtLjQgMC0uNiAwYy0uNCAwLS44IDAtMS4yIDBDMzExIDAgMjk1LjcgOS43IDI4NS43IDE4LjhDMjc2LjQgMjcuMiAyNTcuMiA0MCAyMjQgNDBzLTUyLjQtMTIuOC02MS43LTIxLjJDMTUyLjMgOS43IDEzNyAwIDExOC4zIDBjLS40IDAtLjggMC0xLjIgMGMtLjIgMC0uNCAwLS42IDBMMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA2LjNMNjQgMTI4bDAgMTcuNWMwIDkuNS0yLjggMTguNy04LjEgMjYuNkw4LjEgMjQzLjlDMi44IDI1MS44IDAgMjYxLjEgMCAyNzAuNUwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGM5LjkgMCAxOS0zIDI2LjctOC4xQzE5NS45IDQ5Mi4yIDE5MiA0NzguNSAxOTIgNDY0bDAtMTY4LjJjMC04LjYgMS40LTE3LjEgNC4xLTI1LjNsMTEtMzMuMXpNMzQ3LjMgMzU2LjdsNDggNDhjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNDgtNDhjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMHptLTI5NC42IDQ4bDQ4LTQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNmwtNDggNDhjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFGZXJyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZXJyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlYVwiLCBcIk0yMjQgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw3NS4xIDBjMjAuNiAwIDMxLjYgMjQuMyAxOC4xIDM5LjhMNDU2IDk2IDEyMCA5NiA5OC44IDcxLjhDODUuMyA1Ni4zIDk2LjMgMzIgMTE2LjkgMzJMMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMjhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjMuNWMwIDEzLjMtNC4yIDI2LjMtMTEuOSAzNy4ybC01MS40IDcxLjljLTEuOSAxLjEtMy43IDIuMi01LjUgMy41Yy0xNS41IDEwLjctMzQgMTgtNTEgMTkuOWwtMTYuNSAwYy0xNy4xLTEuOC0zNS05LTUwLjgtMTkuOWMtMjIuMS0xNS41LTUxLjYtMTUuNS03My43IDBjLTE0LjggMTAuMi0zMi41IDE4LTUwLjYgMTkuOWwtMTYuNiAwYy0xNy0xLjgtMzUuNi05LjItNTEtMTkuOWMtMS44LTEuMy0zLjctMi40LTUuNi0zLjVMNzUuOSAzMjAuN0M2OC4yIDMwOS44IDY0IDI5Ni44IDY0IDI4My41TDY0IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgNjRsMCA5NiAzMjAgMCAwLTk2LTMyMCAwek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjMtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA1MDEuNyA0MTcgNTEyIDM4NCA1MTJjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43YzAgMCAwIDAgMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzRG93blRvUGVvcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1kb3duLXRvLXBlb3BsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRiOVwiLCBcIk0xNDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTguMUw5NyAxMTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjQtNjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMjMgMjNMMTY4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zNjAgMjAwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6TTE4NCAyOTZhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMzEyIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNMjAwIDQ0MS41bDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM2LjMtNjcuNWMxLjctMS43IDMuMi0zLjYgNC4zLTUuOEwyNjQgMzQ1LjVsMCA1NC41YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC01NC41IDI2LjkgNDkuOWMxLjIgMi4yIDIuNiA0LjEgNC4zIDUuOGwtMzYuMyA2Ny41Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEw0NDAgNDQxLjVsMCAzOC41YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zOC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM3LjktNzAuM2MtMTUuMy0yOC41LTQ1LjEtNDYuMy03Ny41LTQ2LjNsLTE5LjUgMGMtMTYuMyAwLTMxLjkgNC41LTQ1LjQgMTIuNmwtMzMuNi02Mi4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM2wtMTkuNSAwYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzMuNiA2Mi4zYy0xMy41LTguMS0yOS4xLTEyLjYtNDUuNC0xMi42bC0xOS41IDBjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zTDE4LjkgNDY4LjZjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDg4IDQ0MS41IDg4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzguNXpNNDE1IDE1M2w2NCA2NGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyM0w1MjAgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMS0yMy0yM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYVNlZWRsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlZWRsaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzkzLCBcInNwcm91dFwiXSwgXCJmNGQ4XCIsIFwiTTUxMiAzMmMwIDExMy42LTg0LjYgMjA3LjUtMTk0LjIgMjIyYy03LjEtNTMuNC0zMC42LTEwMS42LTY1LjMtMTM5LjNDMjkwLjggNDYuMyAzNjQgMCA0NDggMGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDMyIDBjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNGwwIDMyIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6XCJdXG59O1xuY29uc3QgZmFTcHJvdXQgPSBmYVNlZWRsaW5nO1xuY29uc3QgZmFMZWZ0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg1OTYsIFwiYXJyb3dzLWFsdC1oXCJdLCBcImYzMzdcIiwgXCJNNTA0LjMgMjczLjZjNC45LTQuNSA3LjctMTAuOSA3LjctMTcuNnMtMi44LTEzLTcuNy0xNy42bC0xMTItMTA0Yy03LTYuNS0xNy4yLTguMi0yNS45LTQuNHMtMTQuNCAxMi41LTE0LjQgMjJsMCA1Ni0xOTIgMCAwLTU2YzAtOS41LTUuNy0xOC4yLTE0LjQtMjJzLTE4LjktMi4xLTI1LjkgNC40bC0xMTIgMTA0QzIuOCAyNDMgMCAyNDkuMyAwIDI1NnMyLjggMTMgNy43IDE3LjZsMTEyIDEwNGM3IDYuNSAxNy4yIDguMiAyNS45IDQuNHMxNC40LTEyLjUgMTQuNC0yMmwwLTU2IDE5MiAwIDAgNTZjMCA5LjUgNS43IDE4LjIgMTQuNCAyMnMxOC45IDIuMSAyNS45LTQuNGwxMTItMTA0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dzQWx0SCA9IGZhTGVmdFJpZ2h0O1xuY29uc3QgZmFCb3hlc1BhY2tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94ZXMtcGFja2luZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRjN1wiLCBcIk0yNTYgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhMNTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxMC43IDBjMS44LTUgMi43LTEwLjQgMi43LTE2bDAtMjQyLjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTExMiAwIDAtODB6TTU3MS4zIDM0Ny4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC02NC02NGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDgwIDMxMC42IDQ4MCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTEyMS40IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHpNMCAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDM1MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNkwxNiAyMjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0zNTIgODBsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIyNCAzMjAgMHpNMTQ0IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC05NiAwelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlQXJyb3dMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtbGVmdFwiXSwgXCJmMGE4XCIsIFwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0yMTUgMTI3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNzEgNzFMMzkyIDIzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjE0LjEgMCA3MSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwMyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDIxNSAxMjd6XCJdXG59O1xuY29uc3QgZmFBcnJvd0NpcmNsZUxlZnQgPSBmYUNpcmNsZUFycm93TGVmdDtcbmNvbnN0IGZhR3JvdXBBcnJvd3NSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JvdXAtYXJyb3dzLXJvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRmNlwiLCBcIk0yMDEuMSA3MS45YzE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44cy0yMi45LTI2LjYtMzkuOC0yMS41Yy0yMS41IDYuNC00MS44IDE1LjUtNjAuNiAyN0MxMTQuMyAzNCAxMDUuNCAzMiA5NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZjMCA5LjQgMiAxOC4zIDUuNiAyNi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC42Yy01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWM0LjMtMTQuNiAxMC40LTI4LjUgMTcuOS00MS40YzIgLjIgNC4xIC4zIDYuMSAuM2MzNS4zIDAgNjQtMjguNyA2NC02NGMwLTIuMS0uMS00LjEtLjMtNi4xYzEyLjktNy41IDI2LjgtMTMuNiA0MS40LTE3Ljl6bTEyOC02MS4zYy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGMxNC42IDQuMyAyOC41IDEwLjQgNDEuNCAxNy45Yy0uMiAyLS4zIDQuMS0uMyA2LjFjMCAzNS4zIDI4LjcgNjQgNjQgNjRjMi4xIDAgNC4xLS4xIDYuMi0uM2M3LjUgMTIuOSAxMy42IDI2LjggMTcuOSA0MS40YzUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC42YzMuNi04IDUuNi0xNi45IDUuNi0yNi4zYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy05LjQgMC0xOC4zIDItMjYuMyA1LjZjLTE4LjctMTEuNS0zOS0yMC42LTYwLjYtMjd6TTcxLjkgMzEwLjljLTUtMTYuOS0yMi45LTI2LjYtMzkuOC0yMS41cy0yNi42IDIyLjktMjEuNSAzOS44YzYuNCAyMS41IDE1LjUgNDEuOCAyNyA2MC42QzM0IDM5Ny43IDMyIDQwNi42IDMyIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGM5LjQgMCAxOC4zLTIgMjYuMy01LjZjMTguNyAxMS41IDM5IDIwLjYgNjAuNiAyN2MxNi45IDUgMzQuOC00LjYgMzkuOC0yMS41cy00LjYtMzQuOC0yMS41LTM5LjhjLTE0LjYtNC4zLTI4LjUtMTAuNC00MS40LTE3LjljLjItMiAuMy00LjEgLjMtNi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy0yLjEgMC00LjEgLjEtNi4yIC4zYy03LjUtMTIuOS0xMy42LTI2LjgtMTcuOS00MS40em00MjkuNCAxOC4zYzUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtNC4zIDE0LjYtMTAuNCAyOC41LTE3LjkgNDEuNGMtMi0uMi00LjEtLjMtNi4yLS4zYy0zNS4zIDAtNjQgMjguNy02NCA2NGMwIDIuMSAuMSA0LjEgLjMgNi4yYy0xMi45IDcuNS0yNi44IDEzLjYtNDEuNCAxNy45Yy0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC42LTI3YzggMy42IDE2LjkgNS42IDI2LjMgNS42YzM1LjMgMCA2NC0yOC43IDY0LTY0YzAtOS40LTItMTguMy01LjYtMjYuM2MxMS41LTE4LjcgMjAuNi0zOSAyNy02MC42ek0xOTIuOCAyNTYuOGMwLTE1LjYgNS42LTI5LjkgMTQuOS00MS4xTDIyMyAyMzFjNi42IDYuNiAxNy44IDEuOSAxNy44LTcuNGwwLTYwLjVjMC01LjctNC43LTEwLjQtMTAuNC0xMC40bC02MC41IDBjLTkuMyAwLTEzLjkgMTEuMi03LjQgMTcuOGwxMS4yIDExLjJjLTE3LjkgMTkuOC0yOC45IDQ2LjItMjguOSA3NS4xYzAgNDMuNiAyNC45IDgxLjMgNjEuMSA5OS44YzExLjggNiAyNi4zIDEuNCAzMi4zLTEwLjRzMS40LTI2LjMtMTAuNC0zMi4zYy0yMC44LTEwLjYtMzQuOS0zMi4yLTM0LjktNTd6bTkzLjEtNTguNmMyMC44IDEwLjYgMzQuOSAzMi4yIDM0LjkgNTdjMCAxNS42LTUuNiAyOS45LTE0LjkgNDEuMUwyOTAuNiAyODFjLTYuNi02LjYtMTcuOC0xLjktMTcuOCA3LjRsMCA2MC41YzAgNS43IDQuNyAxMC40IDEwLjQgMTAuNGw2MC41IDBjOS4zIDAgMTMuOS0xMS4yIDcuNC0xNy44bC0xMS4yLTExLjJjMTcuOS0xOS44IDI4LjktNDYuMiAyOC45LTc1LjFjMC00My42LTI0LjktODEuMy02MS4xLTk5LjhjLTExLjgtNi0yNi4zLTEuNC0zMi4zIDEwLjRzLTEuNCAyNi4zIDEwLjQgMzIuM3pcIl1cbn07XG5jb25zdCBmYUJvd2xGb29kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvd2wtZm9vZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRjNlwiLCBcIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGMuNSAwIDEuMSAwIDEuNiAwQzczIDkxLjUgMTA1LjMgNjQgMTQ0IDY0YzE1IDAgMjkgNC4xIDQwLjkgMTEuMkMxOTguMiA0OS42IDIyNS4xIDMyIDI1NiAzMnM1Ny44IDE3LjYgNzEuMSA0My4yQzMzOSA2OC4xIDM1MyA2NCAzNjggNjRjMzguNyAwIDcxIDI3LjUgNzguNCA2NGMuNSAwIDEuMSAwIDEuNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIyNEMzLjEgMjE0LjYgMCAyMDMuNyAwIDE5MnptMCA5MS40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNGMwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpcIl1cbn07XG5jb25zdCBmYUNhbmR5Q2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW5keS1jYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzg2XCIsIFwiTTM0OC44IDEzMS41YzMuNy0yLjMgNy45LTMuNSAxMi4yLTMuNWMxMi43IDAgMjMgMTAuMyAyMyAyM2wwIDUuNmMwIDkuOS01LjEgMTkuMS0xMy41IDI0LjNMMzAuMSAzOTMuN0MuMSA0MTIuNS05IDQ1MS45IDkuNyA0ODEuOXM1OC4yIDM5LjEgODguMiAyMC40TDQzOC40IDI4OS41YzQ1LjgtMjguNiA3My42LTc4LjggNzMuNi0xMzIuOGwwLTUuNkM1MTIgNjcuNiA0NDQuNCAwIDM2MSAwYy0yOC4zIDAtNTYgOC04MC4xIDIzTDI1NC4xIDM5LjdjLTMwIDE4LjctMzkuMSA1OC4yLTIwLjQgODguMnM1OC4yIDM5LjEgODguMiAyMC40bDI2LjgtMTYuOHpNMjk4LjQgNDkuOGM5LjItNS43IDE5LjEtMTAuMSAyOS40LTEzLjFMMzQ4IDk3LjVjLTUuNyAxLjQtMTEuMiAzLjctMTYuMyA2LjhsLTEyLjYgNy45TDI5OC40IDQ5Ljh6bTg4LjUgNTIuN2w0Ni4yLTQ2LjJjOC41IDYuNSAxNi4xIDE0LjEgMjIuNiAyMi42bC00Ni4yIDQ2LjJjLTUuMS05LjYtMTMtMTcuNS0yMi42LTIyLjZ6bTI4LjkgNTkuM2w2MS42IDIwLjVjLTIuMiAxMC41LTUuOCAyMC43LTEwLjUgMzAuMmwtNjItMjAuN2M2LjItOC44IDEwLjEtMTkuMSAxMS0zMC4xem0tODYuMSA4Mi41bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXptLTEwNy4yIDY3bDYwLjQgMzcuNy0zMC4yIDE4LjktNjAuNC0zNy43IDMwLjItMTguOXpNMTE5LjMgMzc1LjdsNjAuNCAzNy43LTMwLjIgMTguOUw4OS4xIDM5NC42bDMwLjItMTguOXpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bldpZGVTaG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLXdpZGUtc2hvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYW1vdW50LWFzY1wiLCBcInNvcnQtYW1vdW50LWRvd25cIl0sIFwiZjE2MFwiLCBcIk0xNTEuNiA0NjkuNkMxNDUuNSA0NzYuMiAxMzcgNDgwIDEyOCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDk2IDM2NS43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIwIDk2elwiXVxufTtcbmNvbnN0IGZhU29ydEFtb3VudEFzYyA9IGZhQXJyb3dEb3duV2lkZVNob3J0O1xuY29uc3QgZmFTb3J0QW1vdW50RG93biA9IGZhQXJyb3dEb3duV2lkZVNob3J0O1xuY29uc3QgZmFDbG91ZEJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtYm9sdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc4NSwgXCJ0aHVuZGVyc3Rvcm1cIl0sIFwiZjc2Y1wiLCBcIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDQ3LjIgMEwyOTAgMjAyLjVjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDMzMy43IDMyMGwxOC4zIDAgNjQgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMGMxLjEtNS4yIDEuNi0xMC41IDEuNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MGMtMjQuMyAwLTQ2LjEgMTAuOS02MC44IDI4QzI1Ni41IDI0LjMgMjE5LjEgMCAxNzYgMEMxMTQuMSAwIDY0IDUwLjEgNjQgMTEyYzAgNy4xIC43IDE0LjEgMS45IDIwLjhDMjcuNiAxNDUuNCAwIDE4MS41IDAgMjI0em0zMzAuMSAzLjZjLTUuOC00LjctMTQuMi00LjctMjAuMS0uMWwtMTYwIDEyOGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOHM4LjMgMTAuNyAxNS4xIDEwLjdsNzAuMSAwTDE3Ny43IDQ4OC44Yy0zLjQgNi43LTEuNiAxNC45IDQuMyAxOS42czE0LjIgNC43IDIwLjEgLjFsMTYwLTEyOGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44cy04LjMtMTAuNy0xNS4xLTEwLjdsLTcwLjEgMCA1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4yLTE5LjZ6XCJdXG59O1xuY29uc3QgZmFUaHVuZGVyc3Rvcm0gPSBmYUNsb3VkQm9sdDtcbmNvbnN0IGZhVGV4dFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RleHQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInJlbW92ZS1mb3JtYXRcIl0sIFwiZjg3ZFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDM1NS43IDI1My41IDQwMC4yIDk2IDUwMyA5NiA0OTcgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NzcuNiA2MS4zIDU1NC43IDMyIDUyMy41IDMyTDM3Ni4xIDMybC0uMyAwTDIwNC41IDMyYy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC02LjMgMjUuMkwzOC44IDUuMXptMTY4IDEzMS43Yy4xLS4zIC4yLS43IC4zLTFMMjE3IDk2bDExNi43IDBMMzAxLjMgMjEwLjhsLTk0LjUtNzQuMXpNMjQzLjMgNDE2TDE5MiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNy42LTYyLjFMMjcyLjkgMzExIDI0My4zIDQxNnpcIl1cbn07XG5jb25zdCBmYVJlbW92ZUZvcm1hdCA9IGZhVGV4dFNsYXNoO1xuY29uc3QgZmFGYWNlU21pbGVXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc21pbGUtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyMSwgXCJzbWlsZS13aW5rXCJdLCBcImY0ZGFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC4xIDMyNS41QzE4MiAzNDYuMiAyMTIuNiAzNjggMjU2IDM2OHM3NC0yMS44IDkxLjktNDIuNWM1LjgtNi43IDE1LjktNy40IDIyLjYtMS42czcuNCAxNS45IDEuNiAyMi42QzM0OS44IDM3Mi4xIDMxMS4xIDQwMCAyNTYgNDAwcy05My44LTI3LjktMTE2LjEtNTMuNWMtNS44LTYuNy01LjEtMTYuOCAxLjYtMjIuNnMxNi44LTUuMSAyMi42IDEuNnpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE1Ni40IDI1LjZjLTUuMyA3LjEtMTUuMyA4LjUtMjIuNCAzLjJzLTguNS0xNS4zLTMuMi0yMi40YzMwLjQtNDAuNSA5MS4yLTQwLjUgMTIxLjYgMGM1LjMgNy4xIDMuOSAxNy4xLTMuMiAyMi40cy0xNy4xIDMuOS0yMi40LTMuMmMtMTcuNi0yMy41LTUyLjgtMjMuNS03MC40IDB6XCJdXG59O1xuY29uc3QgZmFTbWlsZVdpbmsgPSBmYUZhY2VTbWlsZVdpbms7XG5jb25zdCBmYUZpbGVXb3JkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtd29yZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjMlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTExMSAyNTcuMWwyNi44IDg5LjIgMzEuNi05MC4zYzMuNC05LjYgMTIuNS0xNi4xIDIyLjctMTYuMXMxOS4zIDYuNCAyMi43IDE2LjFsMzEuNiA5MC4zTDI3MyAyNTcuMWMzLjgtMTIuNyAxNy4yLTE5LjkgMjkuOS0xNi4xczE5LjkgMTcuMiAxNi4xIDI5LjlsLTQ4IDE2MGMtMyAxMC0xMiAxNi45LTIyLjQgMTcuMXMtMTkuOC02LjItMjMuMi0xNi4xTDE5MiAzMzYuNmwtMzMuMyA5NS4zYy0zLjQgOS44LTEyLjggMTYuMy0yMy4yIDE2LjFzLTE5LjUtNy4xLTIyLjQtMTcuMWwtNDgtMTYwYy0zLjgtMTIuNyAzLjQtMjYuMSAxNi4xLTI5LjlzMjYuMSAzLjQgMjkuOSAxNi4xelwiXVxufTtcbmNvbnN0IGZhRmlsZVBvd2VycG9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wb3dlcnBvaW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM0XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTM2IDI0MGw2OCAwYzQyIDAgNzYgMzQgNzYgNzZzLTM0IDc2LTc2IDc2bC00NCAwIDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC01NiAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptNjggMTA0YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC00NCAwIDAgNTYgNDQgMHpcIl1cbn07XG5jb25zdCBmYUFycm93c0xlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3dzLWhcIl0sIFwiZjA3ZVwiLCBcIk00MDYuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNGwtMjkzLjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OGwyOTMuNSAwLTQxLjQgNDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpcIl1cbn07XG5jb25zdCBmYUFycm93c0ggPSBmYUFycm93c0xlZnRSaWdodDtcbmNvbnN0IGZhSG91c2VMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTBcIiwgXCJNMzg0IDQ4MGMwIDExLjcgMy4xIDIyLjYgOC42IDMybC0uNiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI0IDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjQgMCAyNGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQgMC0zMS45IDBjLTEuNSAwLTMtLjEtNC41LS4yYy0xLjIgLjEtMi40IC4yLTMuNiAuMmwtMTYgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0uOSAwLTEuOSAuMS0yLjhsMC02OS43LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ5MC43IDE2Ni4zQzQ0Ny4yIDE4MS43IDQxNiAyMjMuMiA0MTYgMjcybDAgMjQuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwwIDEyOHpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ2xvdWRBcnJvd0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtYXJyb3ctZG93bicsXG4gIGljb246IFs2NDAsIDUxMiwgWzYyMzM3LCBcImNsb3VkLWRvd25sb2FkXCIsIFwiY2xvdWQtZG93bmxvYWQtYWx0XCJdLCBcImYwZWRcIiwgXCJNMTQ0IDQ4MEM2NC41IDQ4MCAwIDQxNS41IDAgMzM2YzAtNjIuOCA0MC4yLTExNi4yIDk2LjItMTM1LjljLS4xLTIuNy0uMi01LjQtLjItOC4xYzAtODguNCA3MS42LTE2MCAxNjAtMTYwYzU5LjMgMCAxMTEgMzIuMiAxMzguNyA4MC4yQzQwOS45IDEwMiA0MjguMyA5NiA0NDggOTZjNTMgMCA5NiA0MyA5NiA5NmMwIDEyLjItMi4zIDIzLjgtNi40IDM0LjZDNTk2IDIzOC40IDY0MCAyOTAuMSA2NDAgMzUyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zNjggMHptNzktMTY3bDgwIDgwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTM5IDM5TDM0NCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMzQuMS0zOS0zOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIl1cbn07XG5jb25zdCBmYUNsb3VkRG93bmxvYWQgPSBmYUNsb3VkQXJyb3dEb3duO1xuY29uc3QgZmFDbG91ZERvd25sb2FkQWx0ID0gZmFDbG91ZEFycm93RG93bjtcbmNvbnN0IGZhQ2hpbGRyZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGRyZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZTFcIiwgXCJNMTYwIDBhNjQgNjQgMCAxIDEgMCAxMjhBNjQgNjQgMCAxIDEgMTYwIDB6TTg4IDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsMzEuMS05My40TDU3LjUgMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJzLTE2LjgtMzAuNy02LjItNDQuOEw2NS40IDIwN2MyMi40LTI5LjYgNTcuNS00NyA5NC42LTQ3czcyLjIgMTcuNCA5NC42IDQ3bDU4LjkgNzcuN2MxMC43IDE0LjEgNy45IDM0LjItNi4yIDQ0LjhzLTM0LjIgNy45LTQ0LjgtNi4ybC0yOC42LTM3LjhMMjY1IDM3OC45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMUwyMzIgNDAwbDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MC0xNiAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6TTQ4MCAwYTY0IDY0IDAgMSAxIDAgMTI4QTY0IDY0IDAgMSAxIDQ4MCAwem0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41TDM5NS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMNTUyIDMwMC41IDU1MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwelwiXVxufTtcbmNvbnN0IGZhQ2hhbGtib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFsa2JvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJibGFja2JvYXJkXCJdLCBcImY1MWJcIiwgXCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2bDAgMjg4IDY0IDBMOTYgOTZsMzg0IDAgMCAyODggNjQgMCAwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAzMnpNMjI0IDM4NGwwIDMyTDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQmxhY2tib2FyZCA9IGZhQ2hhbGtib2FyZDtcbmNvbnN0IGZhVXNlckxhcmdlU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1sYXJnZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci1hbHQtc2xhc2hcIl0sIFwiZjRmYVwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDM4MS45IDI3NGM0OC41LTIzLjIgODIuMS03Mi43IDgyLjEtMTMwQzQ2NCA2NC41IDM5OS41IDAgMzIwIDBDMjUwLjQgMCAxOTIuNCA0OS4zIDE3OC45IDExNC45TDM4LjggNS4xek01NDUuNSA1MTJMNTI4IDUxMiAyODQuMyAzMjBsLTU5IDBDMTM2LjIgMzIwIDY0IDM5Mi4yIDY0IDQ4MS4zYzAgMTcgMTMuOCAzMC43IDMwLjcgMzAuN2w0NTAuNiAwIC4zIDB6XCJdXG59O1xuY29uc3QgZmFVc2VyQWx0U2xhc2ggPSBmYVVzZXJMYXJnZVNsYXNoO1xuY29uc3QgZmFFbnZlbG9wZU9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtb3BlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTM1XSwgXCJmMmI2XCIsIFwiTTY0IDIwOC4xTDI1NiA2NS45IDQ0OCAyMDguMWwwIDQ3LjRMMjg5LjUgMzczYy05LjcgNy4yLTIxLjQgMTEtMzMuNSAxMXMtMjMuOC0zLjktMzMuNS0xMUw2NCAyNTUuNWwwLTQ3LjR6TTI1NiAwYy0xMi4xIDAtMjMuOCAzLjktMzMuNSAxMUwyNS45IDE1Ni43QzkuNiAxNjguOCAwIDE4Ny44IDAgMjA4LjFMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMzkuOWMwLTIwLjMtOS42LTM5LjQtMjUuOS01MS40TDI4OS41IDExQzI3OS44IDMuOSAyNjguMSAwIDI1NiAwelwiXVxufTtcbmNvbnN0IGZhSGFuZHNoYWtlU2ltcGxlU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiaGFuZHNoYWtlLWFsdC1zbGFzaFwiXSwgXCJlMDVmXCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTEzNS0xMDUuOGMtMS4xLTExLjQtNi4zLTIyLjMtMTUuMy0zMC43bC0xMzQuMi0xMjMtMjMuNCAxOC4yLTI2LTIwLjMgNzcuMi02MC4xYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJsNDEuOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC03NiAwLTQgMC0uNyAwLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4ybC04OS43IDcyLjYtMjUuOC0yMC4zIDgxLjgtNjYuMmMtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC0zNS41IDIzLjdMMzguOCA1LjF6TTAgMTc2TDAgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNkw0MS4yIDEyOC41QzE3LjkgMTMxLjggMCAxNTEuOCAwIDE3NnpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZUFsdFNsYXNoID0gZmFIYW5kc2hha2VTaW1wbGVTbGFzaDtcbmNvbnN0IGZhTWF0dHJlc3NQaWxsb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWF0dHJlc3MtcGlsbG93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTI1XCIsIFwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptMzIgMzg0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDI4OCA2NGwwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyelwiXVxufTtcbmNvbnN0IGZhR3VhcmFuaVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3VhcmFuaS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMTlhXCIsIFwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM0LjdDNjkuMiA4MS45IDAgMTYwLjkgMCAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNsMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNC43YzkwLjgtMTUuMiAxNjAtOTQuMiAxNjAtMTg5LjNjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwIDAtOTJjMjIuMSA1LjcgNDEuOCAxNy4xIDU3LjYgMzIuNmMxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk5IDkyIDI2My41IDczLjMgMjI0IDY2LjdMMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjAgMTMyTDE2MCAzODBjLTU1LjItMTQuMi05Ni02NC4zLTk2LTEyNHM0MC44LTEwOS44IDk2LTEyNHpNMjI0IDM4MGwwLTkyIDkyIDBjLTExLjYgNDUtNDcgODAuNC05MiA5MnpcIl1cbn07XG5jb25zdCBmYUFycm93c1JvdGF0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtcm90YXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDcyLCBcInJlZnJlc2hcIiwgXCJzeW5jXCJdLCBcImYwMjFcIiwgXCJNMTA1LjEgMjAyLjZjNy43LTIxLjggMjAuMi00Mi4zIDM3LjgtNTkuOGM2Mi41LTYyLjUgMTYzLjgtNjIuNSAyMjYuMyAwTDM4Ni4zIDE2MCAzNTIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMS41IDBjMCAwIDAgMCAwIDBsLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM1LjJMNDE0LjQgOTcuNmMtODcuNS04Ny41LTIyOS4zLTg3LjUtMzE2LjggMEM3My4yIDEyMiA1NS42IDE1MC43IDQ0LjggMTgxLjRjLTUuOSAxNi43IDIuOSAzNC45IDE5LjUgNDAuOHMzNC45LTIuOSA0MC44LTE5LjV6TTM5IDI4OS4zYy01IDEuNS05LjggNC4yLTEzLjcgOC4yYy00IDQtNi43IDguOC04LjEgMTRjLS4zIDEuMi0uNiAyLjUtLjggMy44Yy0uMyAxLjctLjQgMy40LS40IDUuMUwxNiA0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1LjEgMTcuNiAxNy41YzAgMCAwIDAgMCAwYzg3LjUgODcuNCAyMjkuMyA4Ny40IDMxNi43IDBjMjQuNC0yNC40IDQyLjEtNTMuMSA1Mi45LTgzLjhjNS45LTE2LjctMi45LTM0LjktMTkuNS00MC44cy0zNC45IDIuOS00MC44IDE5LjVjLTcuNyAyMS44LTIwLjIgNDIuMy0zNy44IDU5LjhjLTYyLjUgNjIuNS0xNjMuOCA2Mi41LTIyNi4zIDBsLS4xLS4xTDEyNS42IDM1MmwzNC40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNDguNCAyODhjLTEuNiAwLTMuMiAuMS00LjggLjNzLTMuMSAuNS00LjYgMXpcIl1cbn07XG5jb25zdCBmYVJlZnJlc2ggPSBmYUFycm93c1JvdGF0ZTtcbmNvbnN0IGZhU3luYyA9IGZhQXJyb3dzUm90YXRlO1xuY29uc3QgZmFGaXJlRXh0aW5ndWlzaGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtZXh0aW5ndWlzaGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTE5XSwgXCJmMTM0XCIsIFwiTTUwMC4zIDcuM0M1MDcuNyAxMy4zIDUxMiAyMi40IDUxMiAzMmwwIDk2YzAgOS42LTQuMyAxOC43LTExLjcgMjQuN3MtMTcuMiA4LjUtMjYuNiA2LjZsLTE2MC0zMkMzMDEuNSAxMjQuOSAyOTIgMTE1LjcgMjg5IDEwNGwtNjUgMCAwIDM0LjhjMzcuOCAxOCA2NCA1Ni41IDY0IDEwMS4ybDAgMTQ0TDY0IDM4NGwwLTE0NGMwLTQ0LjcgMjYuMi04My4yIDY0LTEwMS4ybDAtMjguOGMtMzYuMiAxMS4xLTY2IDM2LjktODIuMyA3MC41Yy01LjggMTEuOS0yMC4yIDE2LjktMzIuMSAxMS4xUy0zLjMgMTcxLjQgMi41IDE1OS41QzI2LjcgMTA5LjggNzIuNyA3Mi42IDEyOCA2MC40TDEyOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjQgNjUgMGMzLTExLjcgMTIuNS0yMC45IDI0LjctMjMuNGwxNjAtMzJjOS40LTEuOSAxOS4xIC42IDI2LjYgNi42ek0yODggNDE2bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIgMjI0IDB6TTE3NiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDcnV6ZWlyb1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3J1emVpcm8tc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTE1MlwiLCBcIk05NiAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjNDEgMCA3OC4zIDE1LjQgMTA2LjcgNDAuN2MxMy4yIDExLjggMzMuNCAxMC43IDQ1LjItMi41czEwLjctMzMuNC0yLjUtNDUuMmMtMzkuNi0zNS41LTkyLTU3LTE0OS4zLTU3QzEzMi4zIDMyIDMyIDEzMi4zIDMyIDI1NnMxMDAuMyAyMjQgMjI0IDIyNGM1Ny40IDAgMTA5LjctMjEuNiAxNDkuMy01N2MxMy4yLTExLjggMTQuMy0zMiAyLjUtNDUuMnMtMzItMTQuMy00NS4yLTIuNUMzMzQuMyA0MDAuNiAyOTcgNDE2IDI1NiA0MTZsMC05NiAwLTguN2MwLTEyLjggMTAuNC0yMy4zIDIzLjMtMjMuM2M0LjYgMCA5LjEgMS40IDEyLjkgMy45bDEwLjEgNi43YzE0LjcgOS44IDM0LjYgNS44IDQ0LjQtOC45czUuOC0zNC42LTguOS00NC40bC0xMC4xLTYuN2MtMTQuMy05LjYtMzEuMi0xNC43LTQ4LjQtMTQuN2MtMTIuNCAwLTI0LjIgMi42LTM0LjkgNy4zYy01LjUtNC41LTEyLjYtNy4zLTIwLjMtNy4zYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDU1LjMgMCA4LjcgMCA4Mi43QzEzNS41IDM3OCA5NiAzMjEuNiA5NiAyNTZ6XCJdXG59O1xuY29uc3QgZmFHcmVhdGVyVGhhbkVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbi1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzMlwiLCBcIk01Mi4xIDkzLjdDMzUuNyA4Ny4xIDI3LjcgNjguNSAzNC4zIDUyLjFzMjUuMi0yNC40IDQxLjYtMTcuOGwzMjAgMTI4QzQwOCAxNjcuMSA0MTYgMTc4LjkgNDE2IDE5MnMtOCAyNC45LTIwLjEgMjkuN2wtMzIwIDEyOGMtMTYuNCA2LjYtMzUtMS40LTQxLjYtMTcuOHMxLjQtMzUgMTcuOC00MS42TDI5Ny44IDE5MiA1Mi4xIDkzLjd6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwelwiXVxufTtcbmNvbnN0IGZhU2hpZWxkSGFsdmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1oYWx2ZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNoaWVsZC1hbHRcIl0sIFwiZjNlZFwiLCBcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuNyA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMmMtLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yYy0xNi43IDgtMzYuMSA4LTUyLjggMEM1Ny4zIDQyMC43IDE2LjUgMjM5LjIgMTYgMTQwYy0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni44IDEgMjUxLjQgMCAyNTYgMHptMCA2Ni44bDAgMzc4LjFDMzk0IDM3OCA0MzEuMSAyMzAuMSA0MzIgMTQxLjRMMjU2IDY2LjhzMCAwIDAgMHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEFsdCA9IGZhU2hpZWxkSGFsdmVkO1xuY29uc3QgZmFCb29rQXRsYXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1hdGxhcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYXRsYXNcIl0sIFwiZjU1OFwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjQ3LjQgMjgzLjhjLTMuNyAzLjctNi4yIDQuMi03LjQgNC4ycy0zLjctLjUtNy40LTQuMmMtMy44LTMuNy04LTEwLTExLjgtMTguOWMtNi4yLTE0LjUtMTAuOC0zNC4zLTEyLjItNTYuOWw2MyAwYy0xLjUgMjIuNi02IDQyLjQtMTIuMiA1Ni45Yy0zLjggOC45LTggMTUuMi0xMS44IDE4Ljl6bTQyLjctOS45YzcuMy0xOC4zIDEyLTQxLjEgMTMuNC02NS45bDMxLjEgMGMtNC43IDI3LjktMjEuNCA1MS43LTQ0LjUgNjUuOXptMC0xNjMuOGMyMy4yIDE0LjIgMzkuOSAzOCA0NC41IDY1LjlsLTMxLjEgMGMtMS40LTI0LjctNi4xLTQ3LjUtMTMuNC02NS45ek0zNjggMTkyYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTE0NS4zIDIwOGwzMS4xIDBjMS40IDI0LjcgNi4xIDQ3LjUgMTMuNCA2NS45Yy0yMy4yLTE0LjItMzkuOS0zOC00NC41LTY1Ljl6bTMxLjEtMzJsLTMxLjEgMGM0LjctMjcuOSAyMS40LTUxLjcgNDQuNS02NS45Yy03LjMgMTguMy0xMiA0MS4xLTEzLjQgNjUuOXptNTYuMS03NS44YzMuNy0zLjcgNi4yLTQuMiA3LjQtNC4yczMuNyAuNSA3LjQgNC4yYzMuOCAzLjcgOCAxMCAxMS44IDE4LjljNi4yIDE0LjUgMTAuOCAzNC4zIDEyLjIgNTYuOWwtNjMgMGMxLjUtMjIuNiA2LTQyLjQgMTIuMi01Ni45YzMuOC04LjkgOC0xNS4yIDExLjgtMTguOXpcIl1cbn07XG5jb25zdCBmYUF0bGFzID0gZmFCb29rQXRsYXM7XG5jb25zdCBmYVZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpcnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDc0XCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExLjVjMCA0OS45LTYwLjMgNzQuOS05NS42IDM5LjZMMTIwLjIgNzVDMTA3LjcgNjIuNSA4Ny41IDYyLjUgNzUgNzVzLTEyLjUgMzIuOCAwIDQ1LjNsOC4yIDguMkMxMTguNCAxNjMuNyA5My40IDIyNCA0My41IDIyNEwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTEuNSAwYzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42TDc1IDM5MS44Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDguMi04LjJjMzUuMy0zNS4zIDk1LjYtMTAuMyA5NS42IDM5LjZsMCAxMS41YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMS41YzAtNDkuOSA2MC4zLTc0LjkgOTUuNi0zOS42bDguMiA4LjJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOC4yLTguMmMtMzUuMy0zNS4zLTEwLjMtOTUuNiAzOS42LTk1LjZsMTEuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDBjLTQ5LjkgMC03NC45LTYwLjMtMzkuNi05NS42bDguMi04LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTguMiA4LjJDMzQ4LjMgMTE4LjQgMjg4IDkzLjQgMjg4IDQzLjVMMjg4IDMyek0xNzYgMjI0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFFbnZlbG9wZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRlOFwiLCBcIk00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmMwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40TDIzNi44IDMxMy42YzExLjQgOC41IDI3IDguNSAzOC40IDBsNTcuNC00M2MyMy45LTU5LjggNzkuNy0xMDMuMyAxNDYuMy0xMDkuOGwxMy45LTEwLjRjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMjk0LjQgMzM5LjJjLTIyLjggMTcuMS01NCAxNy4xLTc2LjggMEwwIDE3NiAwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyOTYuMiAwQzMzNS4xIDQxNy42IDMyMCAzNzguNSAzMjAgMzM2YzAtNS42IC4zLTExLjEgLjgtMTYuNmwtMjYuNCAxOS44ek02NDAgMzM2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzUzLjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhTGF5ZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXllci1ncm91cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjVmZFwiLCBcIk0yNjQuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDE0OS44QzM3LjQgMTQ1LjggMzIgMTM3LjMgMzIgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyNjQuNSA1LjJ6TTQ3Ni45IDIwOS42bDUzLjIgMjQuNmM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDQ1LjkgMjc3LjhDMzcuNCAyNzMuOCAzMiAyNjUuMyAzMiAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDUzLjItMjQuNiAxNTIgNzAuMmMyMy40IDEwLjggNTAuNCAxMC44IDczLjggMGwxNTItNzAuMnptLTE1MiAxOTguMmwxNTItNzAuMiA1My4yIDI0LjZjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDQwNS44QzM3LjQgNDAxLjggMzIgMzkzLjMgMzIgMzg0czUuNC0xNy45IDEzLjktMjEuOGw1My4yLTI0LjYgMTUyIDcwLjJjMjMuNCAxMC44IDUwLjQgMTAuOCA3My44IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NUb0RvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdG8tZG90JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGJlXCIsIFwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy05LjItOS4yLTExLjktMjIuOS02LjktMzQuOXMxNi42LTE5LjggMjkuNi0xOS44bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlzLTE2LjYgMTkuOC0yOS42IDE5LjhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDY0LTY0YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45czE5LjggMTYuNiAxOS44IDI5LjZsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUFyY2h3YXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJjaHdheScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1N1wiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgNjQgMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDY0IDAgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI4OEwzMiAxMjhsMCAyODh6XCJdXG59O1xuY29uc3QgZmFIZWFydENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0LWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmZFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNmwwLTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xbDAgNS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlQ2hpbW5leUNyYWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXktY3JhY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhvdXNlLWRhbWFnZVwiXSwgXCJmNmYxXCIsIFwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xbC0zMiAwIC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNsLTEyMi4xIDBMMjg4IDQ0OGw4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDI1MC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjg4IDM2OGwtODUuNSA3MS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNUwyMzAuNCA1MTJsLTEwMi4zIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNDE2IDEwMC43IDQxNiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTIxIDUyLjggNDYuNGM4IDcgMTIgMTUgMTEgMjR6XCJdXG59O1xuY29uc3QgZmFIb3VzZURhbWFnZSA9IGZhSG91c2VDaGltbmV5Q3JhY2s7XG5jb25zdCBmYUZpbGVaaXBwZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS16aXBwZXInLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtYXJjaGl2ZVwiXSwgXCJmMWM2XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS02LjMgNzEuOGMzLjctMTQgMTYuNC0yMy44IDMwLjktMjMuOGwxNC44IDBjMTQuNSAwIDI3LjIgOS43IDMwLjkgMjMuOGwyMy41IDg4LjJjMS40IDUuNCAyLjEgMTAuOSAyLjEgMTYuNGMwIDM1LjItMjguOCA2My43LTY0IDYzLjdzLTY0LTI4LjUtNjQtNjMuN2MwLTUuNSAuNy0xMS4xIDIuMS0xNi40bDIzLjUtODguMnpNMTEyIDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhRmlsZUFyY2hpdmUgPSBmYUZpbGVaaXBwZXI7XG5jb25zdCBmYVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NjMyLCA5NzIzLCA5NzI0LCA2MTU5MF0sIFwiZjBjOFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2elwiXVxufTtcbmNvbnN0IGZhTWFydGluaUdsYXNzRW1wdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcy1lbXB0eScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xhc3MtbWFydGluaVwiXSwgXCJmMDAwXCIsIFwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuMyAyMjQgNDQ4bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE3OC43TDUwMi42IDU0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMCA0ODAgMEwzMiAwek0yNTYgMjEwLjdMMTA5LjMgNjRsMjkzLjUgMEwyNTYgMjEwLjd6XCJdXG59O1xuY29uc3QgZmFHbGFzc01hcnRpbmkgPSBmYU1hcnRpbmlHbGFzc0VtcHR5O1xuY29uc3QgZmFDb3VjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3VjaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRiOFwiLCBcIk02NCAxNjBDNjQgODkuMyAxMjEuMyAzMiAxOTIgMzJsMjU2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMy42Yy0zNi41IDcuNC02NCAzOS43LTY0IDc4LjRsMCA0OC0zODQgMCAwLTQ4YzAtMzguNy0yNy41LTcxLTY0LTc4LjRMNjQgMTYwek01NDQgMjcyYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2M1LTEuOCAxMC40LTIuNyAxNi0yLjdjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDk2IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhjNS42IDAgMTEgMSAxNiAyLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgNDggMCAzMiAzMiAwIDM4NCAwIDMyIDAgMC0zMiAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQ2VkaVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2VkaS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMGRmXCIsIFwiTTI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM0LjdDMTAxLjIgODEuOSAzMiAxNjAuOSAzMiAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNsMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNC43YzMwLjktNS4yIDU5LjItMTcuNyA4My4yLTM1LjhjMTQuMS0xMC42IDE3LTMwLjcgNi40LTQ0LjhzLTMwLjctMTctNDQuOC02LjRjLTEzLjIgOS45LTI4LjMgMTcuMy00NC44IDIxLjZMMjU2IDEzMmMxNi40IDQuMiAzMS42IDExLjYgNDQuOCAyMS42YzE0LjEgMTAuNiAzNC4yIDcuOCA0NC44LTYuNHM3LjgtMzQuMi02LjQtNDQuOGMtMjQtMTgtNTIuNC0zMC42LTgzLjItMzUuOEwyNTYgMzJ6TTE5MiAxMzJMMTkyIDM4MGMtNTUuMi0xNC4yLTk2LTY0LjMtOTYtMTI0czQwLjgtMTA5LjggOTYtMTI0elwiXVxufTtcbmNvbnN0IGZhSXRhbGljID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2l0YWxpYycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAzM1wiLCBcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTU4LjcgMEwxNjAgNDE2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMEwyMjQgOTZsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhVGFibGVDZWxsc0NvbHVtbkxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtY29sdW1uLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2NzhcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY1LjFjLTM3LjggNS40LTY5LjQgMjkuNi04NS4yIDYyLjlMMzYwIDIyNGwwIDY0IDU2IDAgMCA4LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTI0IDAgMCA2NCAyNCAwIDAgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMDggMGwwIDY0IDg4IDAgMC02NC04OCAwem0yNDAgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMjA4IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0wIDEyOGwwIDY0IDg4IDAgMC02NC04OCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFDaHVyY2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2h1cmNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTk2Ml0sIFwiZjUxZFwiLCBcIk0zNDQgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCA0Ni40TDE4My4zIDIxMGMtMTQuNSA4LjctMjMuMyAyNC4zLTIzLjMgNDEuMkwxNjAgNTEybDk2IDAgMC05NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgOTYgOTYgMCAwLTI2MC44YzAtMTYuOS04LjgtMzIuNS0yMy4zLTQxLjJMMzQ0IDE0Mi40IDM0NCA5NmwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI0LjkgMzMwLjNDOS41IDMzOC44IDAgMzU0LjkgMCAzNzIuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAtMjM4LjRMMjQuOSAzMzAuM3pNNTkyIDUxMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkxLjZjMC0xNy41LTkuNS0zMy42LTI0LjktNDIuMUw1MTIgMjczLjYgNTEyIDUxMmw4MCAwelwiXVxufTtcbmNvbnN0IGZhQ29tbWVudHNEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudHMtZG9sbGFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjUzXCIsIFwiTTQxNiAxNzZjMCA5Ny4yLTkzLjEgMTc2LTIwOCAxNzZjLTM4LjIgMC03My45LTguNy0xMDQuNy0yMy45Yy03LjUgNC0xNiA3LjktMjUuMiAxMS40QzU5LjggMzQ2LjQgMzcuOCAzNTIgMTYgMzUyYy02LjkgMC0xMy4xLTQuNS0xNS4yLTExLjFzLjItMTMuOCA1LjgtMTcuOWMwIDAgMCAwIDAgMHMwIDAgMCAwbC4yLS4yYy4yLS4yIC42LS40IDEuMS0uOGMxLS44IDIuNS0yIDQuMy0zLjdjMy42LTMuMyA4LjUtOC4xIDEzLjMtMTQuM2M1LjUtNyAxMC43LTE1LjQgMTQuMi0yNC43QzE0LjcgMjUwLjMgMCAyMTQuNiAwIDE3NkMwIDc4LjggOTMuMSAwIDIwOCAwUzQxNiA3OC44IDQxNiAxNzZ6TTIzMS41IDM4M0MzNDguOSAzNzIuOSA0NDggMjg4LjMgNDQ4IDE3NmMwLTUuMi0uMi0xMC40LS42LTE1LjVDNTU1LjEgMTY3LjEgNjQwIDI0My4yIDY0MCAzMzZjMCAzOC42LTE0LjcgNzQuMy0zOS42IDEwMy40YzMuNSA5LjQgOC43IDE3LjcgMTQuMiAyNC43YzQuOCA2LjIgOS43IDExIDEzLjMgMTQuM2MxLjggMS42IDMuMyAyLjkgNC4zIDMuN2MuNSAuNCAuOSAuNyAxLjEgLjhsLjIgLjJzMCAwIDAgMHMwIDAgMCAwYzUuNiA0LjEgNy45IDExLjMgNS44IDE3LjljLTIuMSA2LjYtOC4zIDExLjEtMTUuMiAxMS4xYy0yMS44IDAtNDMuOC01LjYtNjIuMS0xMi41Yy05LjItMy41LTE3LjgtNy40LTI1LjItMTEuNEM1MDUuOSA1MDMuMyA0NzAuMiA1MTIgNDMyIDUxMmMtOTUuNiAwLTE3Ni4yLTU0LjYtMjAwLjUtMTI5ek0yMjggNzJjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdMMjI4IDcyelwiXVxufTtcbmNvbnN0IGZhRGVtb2NyYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGVtb2NyYXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3NDdcIiwgXCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjNDNzEuMiAxLjggNzQgMCA3NyAwYzEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMUMxNzUuMiAuNyAxNzcuMSAwIDE3OSAwYzMgMCA1LjggMS44IDYuOCA0LjdjMi40IDYuNSA2LjIgMTguNCA2LjIgMjcuM2MwIDI2LjUtMjEuOSA0Mi0yOS41IDQ2LjZsNzYuMiA3Mi42YzYgNS43IDEzLjkgOC44IDIyLjEgOC44TDQ4MCAxNjBsMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3bDAgODcuNC0zNTIgMC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2wtMiAwQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuN2MwLTEyLjEgNC4xLTIzLjggMTEuNy0zMy4zTDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNDQ4IDM1Mmw5NiAwIDAgNjQgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xNjAgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0IDAtNjQgOTYgMCAxNjAgMHpNMjYwLjkgMjEwLjljLS45LTEuOC0yLjgtMi45LTQuOC0yLjlzLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS4zLTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjV6TTM2OC4xIDIwOGMtMiAwLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS40LTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjVjLS45LTEuOC0yLjgtMi45LTQuOC0yLjl6bTExNi44IDIuOWMtLjktMS44LTIuOC0yLjktNC44LTIuOXMtMy45IDEuMS00LjggMi45bC0xMC41IDIwLjUtMjMuNSAzLjNjLTIgLjMtMy43IDEuNi00LjMgMy41cy0uMSAzLjkgMS4zIDUuM2wxNyAxNi00IDIyLjZjLS4zIDEuOSAuNSAzLjkgMi4xIDVzMy44IDEuMyA1LjYgLjRsMjEtMTAuNyAyMSAxMC43YzEuOCAuOSA0IC44IDUuNi0uNHMyLjUtMy4xIDIuMS01bC00LTIyLjYgMTctMTZjMS41LTEuNCAyLTMuNCAxLjQtNS4zcy0yLjMtMy4yLTQuMy0zLjVsLTIzLjUtMy4zLTEwLjUtMjAuNXpcIl1cbn07XG5jb25zdCBmYVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneicsXG4gIGljb246IFszODQsIDUxMiwgWzEyMl0sIFwiNWFcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzMjAgMGMxMi40IDAgMjMuNyA3LjIgMjkgMTguNHMzLjYgMjQuNS00LjQgMzQuMUwxMDAuMyA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTEyLjQgMC0yMy43LTcuMi0yOS0xOC40cy0zLjYtMjQuNSA0LjQtMzQuMUwyODMuNyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhUGVyc29uU2tpaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1za2lpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5OTc1LCBcInNraWluZ1wiXSwgXCJmN2M5XCIsIFwiTTM4MC43IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTIuNyAyNjguOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4yTDIzMi43IDM2MS4zbDQ2LjItNjkuMi03NS4xLTc1LjFjLTE0LjYtMTQuNi0yMC40LTMzLjktMTguNC01Mi4xbDEwOC44IDUyIDM5LjMgMzkuM2MxNi4yIDE2LjIgMTguNyA0MS41IDYgNjAuNkwyODkuOCAzOTFsMTI4LjcgNjYuOGMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMDEuM0MxLjIgMjk1LjItMy40IDI4MC43IDIuNyAyNjguOXpNMTE4LjkgNjUuNkwxMzcgNzQuMmw4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTYuOSA1NC43IDI2LjJjMS41LS43IDMuMS0xLjQgNC43LTIuMWw4My40LTMzLjRjMzQuMi0xMy43IDcyLjggNC4yIDg0LjUgMzkuMmwxNy4xIDUxLjIgNTIuMSAyNi4xYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNsLTU4LjEtMjljLTExLjQtNS43LTIwLTE1LjctMjQuMS0yNy44bC01LjgtMTcuMy0yNy4zIDEyLjEtNi44IDMtNi43LTMuMkwxNTEuNSAxMTYuN2wtOS4yIDE4LjRjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTgtMTcuNi04LjRjLTgtMy44LTExLjMtMTMuNC03LjUtMjEuM3MxMy40LTExLjMgMjEuMy03LjV6XCJdXG59O1xuY29uc3QgZmFTa2lpbmcgPSBmYVBlcnNvblNraWluZztcbmNvbnN0IGZhUm9hZExvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY3XCIsIFwiTTI4OCAzMmwtNzQuOCAwYy0yNy4xIDAtNTEuMyAxNy4xLTYwLjMgNDIuNkwzNS4xIDQwNy4yYy0yLjEgNS45LTMuMSAxMi0zLjEgMTguMkMzMiA0NTUuNSA1Ni41IDQ4MCA4Ni42IDQ4MEwyODggNDgwbDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDMyIDAgMC0xMjhjMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNmMwLTU4LjMgNDQuNi0xMDYuMiAxMDEuNS0xMTEuNUw0ODcuMSA3NC42QzQ3OCA0OS4xIDQ1My45IDMyIDQyNi44IDMyTDM1MiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYScsXG4gIGljb246IFszODQsIDUxMiwgWzk3XSwgXCI0MVwiLCBcIk0yMjEuNSA1MS43QzIxNi42IDM5LjggMjA0LjkgMzIgMTkyIDMycy0yNC42IDcuOC0yOS41IDE5LjdsLTEyMCAyODgtNDAgOTZjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMOTMuMyAzODRsMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhsLTQwLTk2LTEyMC0yODh6TTI2NCAzMjBsLTE0NCAwIDcyLTE3Mi44TDI2NCAzMjB6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS1kb3duXCJdLCBcImUwM2ZcIiwgXCJNMTI4IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTY0LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyNDkuOCAzMzIuNiAyNTYgMzQ5LjUgMjU2IDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45YzguMi0xMC42IDE1LjMtMjUuMiAxNS4zLTQyLjVMMTI4IDExMnpNMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMmwwIDE2NC40YzAgLjEtLjEgLjMtLjIgLjZjLS4yIC42LS44IDEuNi0xLjcgMi44QzQzLjIgMzA0LjIgMzIgMzM0LjggMzIgMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRjMC0zMy4yLTExLjItNjMuOC0zMC4xLTg4LjFjLS45LTEuMi0xLjUtMi4yLTEuNy0yLjhjLS4xLS4zLS4yLS41LS4yLS42TDI4OCAxMTJDMjg4IDUwLjEgMjM3LjkgMCAxNzYgMHptMCA0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuN2MwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDUwLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHptMzM2LTY0bC0zMiAwIDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOHpcIl1cbn07XG5jb25zdCBmYVRlbXBlcmF0dXJlRG93biA9IGZhVGVtcGVyYXR1cmVBcnJvd0Rvd247XG5jb25zdCBmYUZlYXRoZXJQb2ludGVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZlYXRoZXItcG9pbnRlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZmVhdGhlci1hbHRcIl0sIFwiZjU2YlwiLCBcIk0yNzguNSAyMTUuNkwyMyA0NzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3NC44LTc0LjhjNy40IDQuNiAxNS4zIDguMiAyMy44IDEwLjVDMjAwLjMgNDUyLjggMjcwIDQ1NC41IDMzOCA0MDkuNGMxMi4yLTguMSA1LjgtMjUuNC04LjgtMjUuNGwtMTYuMSAwYy01LjEgMC05LjItNC4xLTkuMi05LjJjMC00LjEgMi43LTcuNiA2LjUtOC44bDk3LjctMjkuM2MzLjQtMSA2LjQtMy4xIDguNC02LjFjNC40LTYuNCA4LjYtMTIuOSAxMi42LTE5LjZjNi4yLTEwLjMtMS41LTIzLTEzLjUtMjNsLTM4LjYgMGMtNS4xIDAtOS4yLTQuMS05LjItOS4yYzAtNC4xIDIuNy03LjYgNi41LTguOGw4MC45LTI0LjNjNC42LTEuNCA4LjQtNC44IDEwLjItOS4zQzQ5NC41IDE2MyA1MDcuOCA4Ni4xIDUxMS45IDM2LjhjLjgtOS45LTMtMTkuNi0xMC0yNi42cy0xNi43LTEwLjgtMjYuNi0xMEMzOTEuNSA3IDIyOC41IDQwLjUgMTM3LjQgMTMxLjZDNTcuMyAyMTEuNyA1Ni43IDMwMi4zIDcxLjMgMzU2LjRjMi4xIDcuOSAxMiA5LjYgMTcuOCAzLjhMMjUzLjYgMTk1LjhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBjNS40IDUuNCA2LjEgMTMuNiAyLjIgMTkuOHpcIl1cbn07XG5jb25zdCBmYUZlYXRoZXJBbHQgPSBmYUZlYXRoZXJQb2ludGVkO1xuY29uc3QgZmFQID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3AnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMTJdLCBcIjUwXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOTYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MHMtNzEuNiAxNjAtMTYwIDE2MGwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMzIwIDAgOTZ6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDY0IDk2bDAgMTkyelwiXVxufTtcbmNvbnN0IGZhU25vd2ZsYWtlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nub3dmbGFrZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEwMDUyLCAxMDA1NF0sIFwiZjJkY1wiLCBcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMwLjEgMTUtMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00OSA0OSAwIDcwLjMgNjEuNC0zNS44IDE3LjctNjYuMWMzLjQtMTIuOCAxNi42LTIwLjQgMjkuNC0xN3MyMC40IDE2LjYgMTcgMjkuNGwtNS4yIDE5LjMgMjMuNi0xMy44YzE1LjMtOC45IDM0LjktMy43IDQzLjggMTEuNXMzLjggMzQuOS0xMS41IDQzLjhsLTI1LjMgMTQuOCAyMS43IDUuOGMxMi44IDMuNCAyMC40IDE2LjYgMTcgMjkuNHMtMTYuNiAyMC40LTI5LjQgMTdsLTY3LjctMTguMUwyODcuNSAyNTZsNjAuOSAzNS41IDY3LjctMTguMWMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN3MtNC4yIDI2LTE3IDI5LjRsLTIxLjcgNS44IDI1LjMgMTQuOGMxNS4zIDguOSAyMC40IDI4LjUgMTEuNSA0My44cy0yOC41IDIwLjQtNDMuOCAxMS41bC0yMy42LTEzLjggNS4yIDE5LjNjMy40IDEyLjgtNC4yIDI2LTE3IDI5LjRzLTI2LTQuMi0yOS40LTE3bC0xNy43LTY2LjFMMjU2IDMxMS43bDAgNzAuMyA0OSA0OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xNS0xNSAwIDMwLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMC4xLTE1IDE1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ5LTQ5IDAtNzAuMy02MS40IDM1LjgtMTcuNyA2Ni4xYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN3MtMjAuNC0xNi42LTE3LTI5LjRsNS4yLTE5LjNMNDguMSAzOTUuNmMtMTUuMyA4LjktMzQuOSAzLjctNDMuOC0xMS41cy0zLjctMzQuOSAxMS41LTQzLjhsMjUuMy0xNC44LTIxLjctNS44Yy0xMi44LTMuNC0yMC40LTE2LjYtMTctMjkuNHMxNi42LTIwLjQgMjkuNC0xN2w2Ny43IDE4LjFMMTYwLjUgMjU2IDk5LjYgMjIwLjUgMzEuOSAyMzguNmMtMTIuOCAzLjQtMjYtNC4yLTI5LjQtMTdzNC4yLTI2IDE3LTI5LjRsMjEuNy01LjhMMTUuOSAxNzEuNkMuNiAxNjIuNy00LjUgMTQzLjEgNC40IDEyNy45czI4LjUtMjAuNCA0My44LTExLjVsMjMuNiAxMy44LTUuMi0xOS4zYy0zLjQtMTIuOCA0LjItMjYgMTctMjkuNHMyNiA0LjIgMjkuNCAxN2wxNy43IDY2LjFMMTkyIDIwMC4zbDAtNzAuM0wxNDMgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxNSAxNUwxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFOZXdzcGFwZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmV3c3BhcGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjQwXSwgXCJmMWVhXCIsIFwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI3MmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2TDk2IDk2em02NCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTg0IDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjA4LThjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNjAgMzA0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMjU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI1NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFSZWN0YW5nbGVBZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUtYWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImFkXCJdLCBcImY2NDFcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI5LjUgMTczLjNsNzIgMTQ0YzUuOSAxMS45IDEuMSAyNi4zLTEwLjcgMzIuMnMtMjYuMyAxLjEtMzIuMi0xMC43TDI1My4yIDMyOGwtOTAuMyAwLTUuNCAxMC43Yy01LjkgMTEuOS0yMC4zIDE2LjctMzIuMiAxMC43cy0xNi43LTIwLjMtMTAuNy0zMi4ybDcyLTE0NGM0LjEtOC4xIDEyLjQtMTMuMyAyMS41LTEzLjNzMTcuNCA1LjEgMjEuNSAxMy4zek0yMDggMjM3LjdMMTg2LjggMjgwbDQyLjMgMEwyMDggMjM3Ljd6TTM5MiAyNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4em0yNC00My45bDAtMjguMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTYgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGMtNi42IDAtMTIuNi0yLjctMTctN2MtOS40IDQuNS0xOS45IDctMzEgN2MtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmM4LjQgMCAxNi41IDEuNCAyNCA0LjF6XCJdXG59O1xuY29uc3QgZmFBZCA9IGZhUmVjdGFuZ2xlQWQ7XG5jb25zdCBmYUNpcmNsZUFycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvdy1jaXJjbGUtcmlnaHRcIl0sIFwiZjBhOVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTI5NyAzODVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNzEtNzFMMTIwIDI4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMTQuMSAwLTcxLTcxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMNDA5IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyOTcgMzg1elwiXVxufTtcbmNvbnN0IGZhQXJyb3dDaXJjbGVSaWdodCA9IGZhQ2lyY2xlQXJyb3dSaWdodDtcbmNvbnN0IGZhRmlsdGVyQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTE3YlwiLCBcIk0zLjkgMjIuOUMxMC41IDguOSAyNC41IDAgNDAgMEw0NzIgMGMxNS41IDAgMjkuNSA4LjkgMzYuMSAyMi45czQuNiAzMC41LTUuMiA0Mi41TDM5Ni40IDE5NS42QzMxNi4yIDIxMi4xIDI1NiAyODMgMjU2IDM2OGMwIDI3LjQgNi4zIDUzLjQgMTcuNSA3Ni41Yy0xLjYtLjgtMy4yLTEuOC00LjctMi45bC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNmwwLTc5LjFMOSA2NS4zQy0uNyA1My40LTIuOCAzNi44IDMuOSAyMi45ek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwTDQzMiAzNDUuNGwtMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDQwOS40IDM2OGwtMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDMyIDM5MC42bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZMNDU0LjYgMzY4bDM2LjctMzYuN3pcIl1cbn07XG5jb25zdCBmYUxvY3VzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2N1c3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MjBcIiwgXCJNMzEyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDBjOTguNyAwIDE4MC42IDcxLjQgMTk3IDE2NS40Yy05LTMuNS0xOC44LTUuNC0yOS01LjRsLTY0LjIgMC00MS44LTk3LjVjLTMuNC03LjktMTAuOC0xMy40LTE5LjMtMTQuNHMtMTcgMi43LTIyLjEgOS42bC00MC45IDU1LjUtMjEuNy01MC43Yy0zLjMtNy44LTEwLjUtMTMuMi0xOC45LTE0LjNzLTE2LjcgMi4zLTIyIDguOWwtMjQwIDMwNGMtOC4yIDEwLjQtNi40IDI1LjUgNCAzMy43czI1LjUgNi40IDMzLjctNGw3OS40LTEwMC41IDQzIDE2LjQtNDAuNSA1NWMtNy45IDEwLjctNS42IDI1LjcgNS4xIDMzLjZzMjUuNyA1LjYgMzMuNi01LjFMMjE1LjEgNDAwbDc0LjUgMC0yOS4zIDQyLjNjLTcuNSAxMC45LTQuOCAyNS44IDYuMSAzMy40czI1LjggNC44IDMzLjQtNi4xTDM0OCA0MDBsODAuNCAwIDM4LjggNjcuOWM2LjYgMTEuNSAyMS4yIDE1LjUgMzIuNyA4LjlzMTUuNS0yMS4yIDguOS0zMi43TDQ4My42IDQwMGwxMi40IDBjNDQuMSAwIDc5LjgtMzUuNyA4MC03OS43YzAtLjEgMC0uMiAwLS4zbDAtNDBDNTc2IDE0MyA0NjUgMzIgMzI4IDMybC0xNiAwem01MC41IDE2OGwxNy4xIDQwTDMzMyAyNDBsMjkuNS00MHptLTg3LjcgMzguMWwtMS40IDEuOS00OC4yIDAgMzIuNy00MS41IDE2LjkgMzkuNXpNODguOCAyNDBDNTcuNCAyNDAgMzIgMjY1LjQgMzIgMjk2LjhjMCAxNS41IDYuMyAzMCAxNi45IDQwLjRMMTI2LjcgMjQwbC0zNy45IDB6TTQ5NiAyODhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhU29ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ1bnNvcnRlZFwiXSwgXCJmMGRjXCIsIFwiTTEzNy40IDQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOXMtMTYuNiAxOS44LTI5LjYgMTkuOEwzMiAyMjRjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6bTAgNDI5LjNsLTEyOC0xMjhjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45czE2LjYtMTkuOCAyOS42LTE5LjhsMjU2IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6XCJdXG59O1xuY29uc3QgZmFVbnNvcnRlZCA9IGZhU29ydDtcbmNvbnN0IGZhTGlzdE9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpc3Qtb2wnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxpc3QtMS0yXCIsIFwibGlzdC1udW1lcmljXCJdLCBcImYwY2JcIiwgXCJNMjQgNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEyMCAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC05Ni04IDBDMzQuNyA4MCAyNCA2OS4zIDI0IDU2ek04Ni43IDM0MS4yYy02LjUtNy40LTE4LjMtNi45LTI0IDEuMkw1MS41IDM1Ny45Yy03LjcgMTAuOC0yMi43IDEzLjMtMzMuNSA1LjZzLTEzLjMtMjIuNy01LjYtMzMuNWwxMS4xLTE1LjZjMjMuNy0zMy4yIDcyLjMtMzUuNiA5OS4yLTQuOWMyMS4zIDI0LjQgMjAuOCA2MC45LTEuMSA4NC43TDg2LjggNDMybDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODggMGMtOS41IDAtMTguMi01LjYtMjItMTQuNHMtMi4xLTE4LjkgNC4zLTI1LjlsNzItNzhjNS4zLTUuOCA1LjQtMTQuNiAuMy0yMC41ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUxpc3QxMiA9IGZhTGlzdE9sO1xuY29uc3QgZmFMaXN0TnVtZXJpYyA9IGZhTGlzdE9sO1xuY29uc3QgZmFQZXJzb25EcmVzc0J1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcy1idXJzdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU0NFwiLCBcIk01MjggNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMzkwLjIgMzg0bDE3LjggMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAxNiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMUw1NDYuNyAyNDguMWwzMy45IDU2LjNjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTUzLjYtODkuMmMtMjAuMi0zMy43LTU2LjctNTQuMy05Ni01NC4zbC0xMS42IDBjLTM5LjMgMC03NS43IDIwLjYtOTYgNTQuM2wtNTMuNiA4OS4yYy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45bDMzLjktNTYuM0wzNzUgMzYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXpNMTkwLjkgMTguMUMxODguNCAxMiAxODIuNiA4IDE3NiA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNzYgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA1MC41LTcuOCAyNC40LTQwLjUtNTUuMi0zOEwzMTUgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0elwiXVxufTtcbmNvbnN0IGZhTW9uZXlDaGVja0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1jaGVjay1kb2xsYXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1vbmV5LWNoZWNrLWFsdFwiXSwgXCJmNTNkXCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek0yNzIgMTkybDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMjU2IDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZ6TTE2NCAxNTJsMCAxMy45YzcuNSAxLjIgMTQuNiAyLjkgMjEuMSA0LjdjMTAuNyAyLjggMTcgMTMuOCAxNC4yIDI0LjVzLTEzLjggMTctMjQuNSAxNC4yYy0xMS0yLjktMjEuNi01LTMxLjItNS4yYy03LjktLjEtMTYgMS44LTIxLjUgNWMtNC44IDIuOC02LjIgNS42LTYuMiA5LjNjMCAxLjggLjEgMy41IDUuMyA2LjdjNi4zIDMuOCAxNS41IDYuNyAyOC4zIDEwLjVsLjcgLjJjMTEuMiAzLjQgMjUuNiA3LjcgMzcuMSAxNWMxMi45IDguMSAyNC4zIDIxLjMgMjQuNiA0MS42Yy4zIDIwLjktMTAuNSAzNi4xLTI0LjggNDVjLTcuMiA0LjUtMTUuMiA3LjMtMjMuMiA5bDAgMTMuOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xNC42Yy0xMC4zLTIuMi0yMC01LjUtMjguMi04LjRjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xLS43LTQuMS0xLjQtNi4xLTIuMWMtMTAuNS0zLjUtMTYuMS0xNC44LTEyLjYtMjUuM3MxNC44LTE2LjEgMjUuMy0xMi42YzIuNSAuOCA0LjkgMS43IDcuMiAyLjRjMTMuNiA0LjYgMjQgOC4xIDM1LjEgOC41YzguNiAuMyAxNi41LTEuNiAyMS40LTQuN2M0LjEtMi41IDYtNS41IDUuOS0xMC41YzAtMi45LS44LTUtNS45LTguMmMtNi4zLTQtMTUuNC02LjktMjgtMTAuN2wtMS43LS41Yy0xMC45LTMuMy0yNC42LTcuNC0zNS42LTE0Yy0xMi43LTcuNy0yNC42LTIwLjUtMjQuNy00MC43Yy0uMS0yMS4xIDExLjgtMzUuNyAyNS44LTQzLjljNi45LTQuMSAxNC41LTYuOCAyMi4yLTguNWwwLTE0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwelwiXVxufTtcbmNvbnN0IGZhTW9uZXlDaGVja0FsdCA9IGZhTW9uZXlDaGVja0RvbGxhcjtcbmNvbnN0IGZhVmVjdG9yU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlY3Rvci1zcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1Y2JcIiwgXCJNMzY4IDgwbDMyIDAgMCAzMi0zMiAwIDAtMzJ6TTM1MiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDE5MiAwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTE5MmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwek05NiAxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMTkyIDBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybC0xOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTE5MnpNNDggNDAwbDMyIDAgMCAzMi0zMiAwIDAtMzJ6bTMyMCAzMmwwLTMyIDMyIDAgMCAzMi0zMiAwek00OCAxMTJsMC0zMiAzMiAwIDAgMzItMzIgMHpcIl1cbn07XG5jb25zdCBmYUJyZWFkU2xpY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJlYWQtc2xpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZWNcIiwgXCJNMjU2IDMyQzE5MiAzMiAwIDY0IDAgMTkyYzAgMzUuMyAyOC43IDY0IDY0IDY0VjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0QzUxMiA2NCAzMjAgMzIgMjU2IDMyelwiXVxufTtcbmNvbnN0IGZhTGFuZ3VhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFuZ3VhZ2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxYWJcIiwgXCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDAgNDggMCAxNiAwIDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMC0xNiAwLTQ4IDBMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMzIwIDBsMCAyNTYgMjU2IDAgMC0yNTYtMjU2IDB6TTE3OC4zIDE3NS45Yy0zLjItNy4yLTEwLjQtMTEuOS0xOC4zLTExLjlzLTE1LjEgNC43LTE4LjMgMTEuOWwtNjQgMTQ0Yy00LjUgMTAuMSAuMSAyMS45IDEwLjIgMjYuNHMyMS45LS4xIDI2LjQtMTAuMmw4LjktMjAuMSA3My42IDAgOC45IDIwLjFjNC41IDEwLjEgMTYuMyAxNC42IDI2LjQgMTAuMnMxNC42LTE2LjMgMTAuMi0yNi40bC02NC0xNDR6TTE2MCAyMzMuMkwxNzkgMjc2bC0zOCAwIDE5LTQyLjh6TTQ0OCAxNjRjMTEgMCAyMCA5IDIwIDIwbDAgNCA0NCAwIDE2IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yIDAtMS42IDQuNWMtOC45IDI0LjQtMjIuNCA0Ni42LTM5LjYgNjUuNGMuOSAuNiAxLjggMS4xIDIuNyAxLjZsMTguOSAxMS4zYzkuNSA1LjcgMTIuNSAxOCA2LjkgMjcuNHMtMTggMTIuNS0yNy40IDYuOWwtMTguOS0xMS4zYy00LjUtMi43LTguOC01LjUtMTMuMS04LjVjLTEwLjYgNy41LTIxLjkgMTQtMzQgMTkuNGwtMy42IDEuNmMtMTAuMSA0LjUtMjEuOS0uMS0yNi40LTEwLjJzLjEtMjEuOSAxMC4yLTI2LjRsMy42LTEuNmM2LjQtMi45IDEyLjYtNi4xIDE4LjUtOS44bC0xMi4yLTEyLjJjLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMGwxNC42IDE0LjYgLjUgLjVjMTIuNC0xMy4xIDIyLjUtMjguMyAyOS44LTQ1TDQ0OCAyMjhsLTcyIDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUyIDAgMC00YzAtMTEgOS0yMCAyMC0yMHpcIl1cbn07XG5jb25zdCBmYUZhY2VLaXNzV2lua0hlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Uta2lzcy13aW5rLWhlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTM2LCBcImtpc3Mtd2luay1oZWFydFwiXSwgXCJmNTk4XCIsIFwiTTQ5OCAzMzkuN2M5LjEtMjYuMiAxNC01NC40IDE0LTgzLjdDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NlMxMTQuNiA1MTIgMjU2IDUxMmMzNS40IDAgNjkuMS03LjIgOTkuNy0yMC4yYy00LjgtNS41LTguNS0xMi4yLTEwLjQtMTkuN2wtMjIuOS04OS4zYy0xMC0zOSAxMS44LTgwLjkgNTEuOC05Mi4xYzM3LjItMTAuNCA3My44IDEwLjEgODcuNSA0NGMxMi43LTEuNiAyNS4xIC40IDM2LjIgNXpNMjk2IDMzMmMwIDYuOS0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRjLTIuNyAxLjUtNS43IDMtOC43IDQuM2MzLjEgMS4zIDYgMi43IDguNyA0LjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40QzI1OC43IDQ0My4xIDI0MS40IDQ0OCAyMjQgNDQ4Yy0zLjYgMC02LjgtMi41LTcuNy02cy42LTcuMiAzLjgtOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFsLS42LS40LS4zLS4yLS4yLS4xYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYzAgMCAwIDAgMCAwbC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjFjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3pNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTk0LjggNTcuNmMtMTcuNi0yMy41LTUyLjgtMjMuNS03MC40IDBjLTUuMyA3LjEtMTUuMyA4LjUtMjIuNCAzLjJzLTguNS0xNS4zLTMuMi0yMi40YzMwLjQtNDAuNSA5MS4yLTQwLjUgMTIxLjYgMGM1LjMgNy4xIDMuOSAxNy4xLTMuMiAyMi40cy0xNy4xIDMuOS0yMi40LTMuMnpNNDM0IDM1Mi4zYy02LTIzLjItMjguOC0zNy01MS4xLTMwLjhzLTM1LjQgMzAuMS0yOS41IDUzLjRsMjIuOSA4OS4zYzIuMiA4LjcgMTEuMiAxMy45IDE5LjggMTEuNGw4NC45LTIzLjhjMjIuMi02LjIgMzUuNC0zMC4xIDI5LjUtNTMuNHMtMjguOC0zNy01MS4xLTMwLjhsLTIwLjIgNS42LTUuNC0yMXpcIl1cbn07XG5jb25zdCBmYUtpc3NXaW5rSGVhcnQgPSBmYUZhY2VLaXNzV2lua0hlYXJ0O1xuY29uc3QgZmFGaWx0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGIwXCIsIFwiTTMuOSA1NC45QzEwLjUgNDAuOSAyNC41IDMyIDQwIDMybDQzMiAwYzE1LjUgMCAyOS41IDguOSAzNi4xIDIyLjlzNC42IDMwLjUtNS4yIDQyLjVMMzIwIDMyMC45IDMyMCA0NDhjMCAxMi4xLTYuOCAyMy4yLTE3LjcgMjguNnMtMjMuOCA0LjMtMzMuNS0zbC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNmwwLTc5LjFMOSA5Ny4zQy0uNyA4NS40LTIuOCA2OC44IDMuOSA1NC45elwiXVxufTtcbmNvbnN0IGZhUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVlc3Rpb24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMDA2NywgMTAwNjgsIDYxNzM2XSwgXCIzZlwiLCBcIk04MCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMuNmMwIDIxLjgtMTEuMSA0Mi4xLTI5LjQgNTMuOGwtNDIuMiAyNy4xYy0yNS4yIDE2LjItNDAuNCA0NC4xLTQwLjQgNzRsMCAxLjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuNGMwLTguMiA0LjItMTUuOCAxMS0yMC4ybDQyLjItMjcuMWMzNi42LTIzLjYgNTguOC02NC4xIDU4LjgtMTA3LjdsMC0zLjZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBDNzMuMyAzMiAxNiA4OS4zIDE2IDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem04MCAzMjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhRmlsZVNpZ25hdHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXNpZ25hdHVyZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU3M1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5LjNjLTIuNyAxLjEtNS40IDItOC4yIDIuN2wtNjAuMSAxNWMtMyAuNy02IDEuMi05IDEuNGMtLjkgLjEtMS44IC4yLTIuNyAuMmwtNjQgMGMtNi4xIDAtMTEuNi0zLjQtMTQuMy04LjhsLTguOC0xNy43Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNXMtNy4yIDIuMS04LjggNS41bC04LjggMTcuN2MtMi45IDUuOS05LjIgOS40LTE1LjcgOC44cy0xMi4xLTUuMS0xMy45LTExLjNMMTQ0IDM4MWwtOS44IDMyLjhjLTYuMSAyMC4zLTI0LjggMzQuMi00NiAzNC4yTDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4LjIgMGM3LjEgMCAxMy4zLTQuNiAxNS4zLTExLjRsMTQuOS00OS41YzMuNC0xMS4zIDEzLjgtMTkuMSAyNS42LTE5LjFzMjIuMiA3LjggMjUuNiAxOS4xbDExLjYgMzguNmM3LjQtNi4yIDE2LjgtOS43IDI2LjgtOS43YzE1LjkgMCAzMC40IDkgMzcuNSAyMy4ybDQuNCA4LjggOC45IDBjLTMuMS04LjgtMy43LTE4LjQtMS40LTI3LjhsMTUtNjAuMWMyLjgtMTEuMyA4LjYtMjEuNSAxNi44LTI5LjdMMzg0IDIwMy42bDAtNDMuNi0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTU0OS44IDEzOS43Yy0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMGwtMjkuNCAyOS40IDcxIDcxIDI5LjQtMjkuNGMxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNmwtMTQuNC0xNC40ek0zMTEuOSAzMjFjLTQuMSA0LjEtNyA5LjItOC40IDE0LjlsLTE1IDYwLjFjLTEuNCA1LjUgLjIgMTEuMiA0LjIgMTUuMnM5LjcgNS42IDE1LjIgNC4ybDYwLjEtMTVjNS42LTEuNCAxMC44LTQuMyAxNC45LTguNEw1MTIuMSAyNjIuN2wtNzEtNzFMMzExLjkgMzIxelwiXVxufTtcbmNvbnN0IGZhVXBEb3duTGVmdFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWRvd24tbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3dzLWFsdFwiXSwgXCJmMGIyXCIsIFwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dzQWx0ID0gZmFVcERvd25MZWZ0UmlnaHQ7XG5jb25zdCBmYUhvdXNlQ2hpbW5leVVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2hpbW5leS11c2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDY1XCIsIFwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEw1MTIgMTg1bDAtMTIxYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM2LjdMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMC40IDBjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMiAzMiAwek0yODggMTYwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0xNzYgNDAwYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGFuZEhvbGRpbmdIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGVhcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0YmVcIiwgXCJNMTYzLjkgMTM2LjljLTI5LjQtMjkuOC0yOS40LTc4LjIgMC0xMDhzNzctMjkuOCAxMDYuNCAwbDE3LjcgMTggMTcuNy0xOGMyOS40LTI5LjggNzctMjkuOCAxMDYuNCAwczI5LjQgNzguMiAwIDEwOEwzMTAuNSAyNDAuMWMtNi4yIDYuMy0xNC4zIDkuNC0yMi41IDkuNHMtMTYuMy0zLjEtMjIuNS05LjRMMTYzLjkgMTM2Ljl6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMTkyIDUxMiAzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzYuOCAwIDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhsNzguMyAwIDE2IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyMC42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM4NGMwIDAgMCAwIDAgMGwtLjkgMGMuMyAwIC42IDAgLjkgMHpcIl1cbn07XG5jb25zdCBmYVB1enpsZVBpZWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3B1enpsZS1waWVjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxM10sIFwiZjEyZVwiLCBcIk0xOTIgMTA0LjhjMC05LjItNS44LTE3LjMtMTMuMi0yMi44QzE2Ny4yIDczLjMgMTYwIDYxLjMgMTYwIDQ4YzAtMjYuNSAyOC43LTQ4IDY0LTQ4czY0IDIxLjUgNjQgNDhjMCAxMy4zLTcuMiAyNS4zLTE4LjggMzRjLTcuNCA1LjUtMTMuMiAxMy42LTEzLjIgMjIuOGMwIDEyLjggMTAuNCAyMy4yIDIzLjIgMjMuMmw1Ni44IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA1Ni44YzAgMTIuOCAxMC40IDIzLjIgMjMuMiAyMy4yYzkuMiAwIDE3LjMtNS44IDIyLjgtMTMuMmM4LjctMTEuNiAyMC43LTE4LjggMzQtMTguOGMyNi41IDAgNDggMjguNyA0OCA2NHMtMjEuNSA2NC00OCA2NGMtMTMuMyAwLTI1LjMtNy4yLTM0LTE4LjhjLTUuNS03LjQtMTMuNi0xMy4yLTIyLjgtMTMuMmMtMTIuOCAwLTIzLjIgMTAuNC0yMy4yIDIzLjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMmMwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjhjMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzRjMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzRjNy40IDUuNSAxMy4yIDEzLjYgMTMuMiAyMi44YzAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMkMwIDMzMC40IDEwLjQgMzIwIDIzLjIgMzIwYzkuMiAwIDE3LjMgNS44IDIyLjggMTMuMkM1NC43IDM0NC44IDY2LjcgMzUyIDgwIDM1MmMyNi41IDAgNDgtMjguNyA0OC02NHMtMjEuNS02NC00OC02NGMtMTMuMyAwLTI1LjMgNy4yLTM0IDE4LjhDNDAuNSAyNTAuMiAzMi40IDI1NiAyMy4yIDI1NkMxMC40IDI1NiAwIDI0NS42IDAgMjMyLjhMMCAxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTIwLjggMGMxMi44IDAgMjMuMi0xMC40IDIzLjItMjMuMnpcIl1cbn07XG5jb25zdCBmYU1vbmV5Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktY2hlY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1M2NcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTQ4IDE2MGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTk2IDMzNmMwLTguOCA3LjItMTYgMTYtMTZsMzUyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTM1MiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTM3NiAxNjBsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhU3RhckhhbGZTdHJva2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1oYWxmLXN0cm9rZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic3Rhci1oYWxmLWFsdFwiXSwgXCJmNWMwXCIsIFwiTTI4OCAzNzYuNGwuMS0uMSAyNi40IDE0LjEgODUuMiA0NS41LTE2LjUtOTcuNi00LjgtMjguNyAyMC43LTIwLjUgNzAuMS02OS4zLTk2LjEtMTQuMi0yOS4zLTQuMy0xMi45LTI2LjZMMjg4LjEgODYuOWwtLjEgLjMgMCAyODkuMnptMTc1LjEgOTguM2MyIDEyLTMgMjQuMi0xMi45IDMxLjNzLTIzIDgtMzMuOCAyLjNMMjg4LjEgNDM5LjggMTU5LjggNTA4LjNDMTQ5IDUxNCAxMzUuOSA1MTMuMSAxMjYgNTA2cy0xNC45LTE5LjMtMTIuOS0zMS4zTDEzNy44IDMyOSAzMy42IDIyNS45Yy04LjYtOC41LTExLjctMjEuMi03LjktMzIuN3MxMy43LTE5LjkgMjUuNy0yMS43TDE5NSAxNTAuMyAyNTkuNCAxOGM1LjQtMTEgMTYuNS0xOCAyOC44LTE4czIzLjQgNyAyOC44IDE4bDY0LjMgMTMyLjMgMTQzLjYgMjEuMmMxMiAxLjggMjIgMTAuMiAyNS43IDIxLjdzLjcgMjQuMi03LjkgMzIuN0w0MzguNSAzMjlsMjQuNiAxNDUuN3pcIl1cbn07XG5jb25zdCBmYVN0YXJIYWxmQWx0ID0gZmFTdGFySGFsZlN0cm9rZTtcbmNvbnN0IGZhQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMTIxXCIsIFwiTTM5Mi44IDEuMmMtMTctNC45LTM0LjcgNS0zOS42IDIybC0xMjggNDQ4Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMTI4LTQ0OGM0LjktMTctNS0zNC43LTIyLTM5LjZ6bTgwLjYgMTIwLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zTDU2Mi43IDI1NmwtODkuNCA4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDExMi0xMTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTExMi0xMTJjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMzA2LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDExMiAxMTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1Nmw4OS40LTg5LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFXaGlza2V5R2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2hpc2tleS1nbGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTM0NywgXCJnbGFzcy13aGlza2V5XCJdLCBcImY3YTBcIiwgXCJNMzIgMzJjLTkuMyAwLTE4LjEgNC0yNC4yIDExLjFTLTEgNTkuNCAuMyA2OC42bDUwIDM0Mi45YzUuNyAzOS4zIDM5LjQgNjguNSA3OS4yIDY4LjVsMjUzIDBjMzkuNyAwIDczLjQtMjkuMSA3OS4yLTY4LjVsNTAtMzQyLjljMS4zLTkuMi0xLjQtMTguNS03LjUtMjUuNVM0ODkuMyAzMiA0ODAgMzJMMzIgMzJ6TTg3LjcgMjI0TDY5IDk2bDM3NCAwTDQyNC4zIDIyNCA4Ny43IDIyNHpcIl1cbn07XG5jb25zdCBmYUdsYXNzV2hpc2tleSA9IGZhV2hpc2tleUdsYXNzO1xuY29uc3QgZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRkM1wiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOEwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtY2hhcnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjJcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHptLTMxMiA4bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MC05NmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MCA2NGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC05NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBSaWdodEZyb21TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImV4dGVybmFsLWxpbmtcIl0sIFwiZjA4ZVwiLCBcIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDBMMjAxLjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zbDAgODIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyMCAwek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMjAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjBjMC04LjggNy4yLTE2IDE2LTE2bDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rID0gZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlO1xuY29uc3QgZmFDdWJlc1N0YWNrZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZXMtc3RhY2tlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTRlNlwiLCBcIk0xOTIgNjRsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04Mi43IDIwN2MtMTUuMyA4LjgtMjAuNSAyOC40LTExLjcgNDMuN2wzMiA1NS40YzguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdsNTUuNC0zMmMxNS4zLTguOCAyMC41LTI4LjQgMTEuNy00My43bC0zMi01NS40Yy04LjgtMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43TDgyLjcgMjA3ek0yODggMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHpNMTYwIDM4NGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6XCJdXG59O1xuY29uc3QgZmFXb25TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dvbi1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbODM2MSwgXCJrcndcIiwgXCJ3b25cIl0sIFwiZjE1OVwiLCBcIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjYgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNiA3NC4xTDUxLjYgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OGw0NiAwTDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODhsNDAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOS42IDAgNTAtMTQ5LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJMMzkyLjkgMjI0bC02NCAwTDI4NyA1Ni4yQzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE4MyAyMjRsLTY0IDBMNjIuNCA1My45em03OCAyMzQuMWwyNi42IDAtMTEuNCA0NS42TDE0MC40IDI4OHpNMjQ5IDIyNGw3LTI4LjEgNyAyOC4xLTE0IDB6bTk2IDY0bDI2LjYgMC0xNS4yIDQ1LjZMMzQ1IDI4OHpcIl1cbn07XG5jb25zdCBmYUtydyA9IGZhV29uU2lnbjtcbmNvbnN0IGZhV29uID0gZmFXb25TaWduO1xuY29uc3QgZmFWaXJ1c0NvdmlkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpcnVzLWNvdmlkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGE4XCIsIFwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0MjAgMTI1LjlsLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNMNDIwIDM4Ni4xbDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzODYuMSA0MjBsLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFMMTI1LjkgNDIwbDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEw5MiAzODYuMWwyMy44LTIzLjhDOTcuOSAzMzguOCA4NS44IDMxMC43IDgxLjYgMjgwTDQ4IDI4MGwwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE2IDMzLjYgMGM0LjItMzAuNyAxNi4zLTU4LjggMzQuMS04Mi4zTDkyIDEyNS45IDgwLjYgMTM3LjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTYuNi01Ni42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwxMjUuOSA5MmwyMy44IDIzLjhjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFMMjMyIDQ4bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDggMjAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTY0IDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFBdXN0cmFsU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdXN0cmFsLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwYTlcIiwgXCJNMjUzLjUgNTEuN0MyNDguNiAzOS44IDIzNi45IDMyIDIyNCAzMnMtMjQuNiA3LjgtMjkuNSAxOS43TDEyMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMEw4Mi43IDMyMCAzMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQgMEwzNC41IDQzNS43Yy02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4yTDEyNS4zIDM4NGwxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOEwzOTIgMzg0bDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMEwzNTIgMjg4bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTkwLjcgMEwyNTMuNSA1MS43ek0yNTYgMjI0bC02NCAwIDMyLTc2LjhMMjU2IDIyNHptLTkwLjcgNjRsMTE3LjMgMEwyOTYgMzIwbC0xNDQgMCAxMy4zLTMyelwiXVxufTtcbmNvbnN0IGZhRiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTAyXSwgXCI0NlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjU2IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMjI0IDY0IDk2bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhTGVhZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZWFmJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDZjXCIsIFwiTTI3MiA5NmMtNzguNiAwLTE0NS4xIDUxLjUtMTY3LjcgMTIyLjVjMzMuNi0xNyA3MS41LTI2LjUgMTExLjctMjYuNWw4OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwLTcyIDBzMCAwIDAgMGMtMTYuNiAwLTMyLjcgMS45LTQ4LjMgNS40Yy0yNS45IDUuOS00OS45IDE2LjQtNzEuNCAzMC43YzAgMCAwIDAgMCAwQzM4LjMgMjk4LjggMCAzNjQuOSAwIDQ0MGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNmMwLTQ4LjcgMjAuNy05Mi41IDUzLjgtMTIzLjJDMTIxLjYgMzkyLjMgMTkwLjMgNDQ4IDI3MiA0NDhsMSAwYzEzMi4xLS43IDIzOS0xMzAuOSAyMzktMjkxLjRjMC00Mi42LTcuNS04My4xLTIxLjEtMTE5LjZjLTIuNi02LjktMTIuNy02LjYtMTYuMi0uMUM0NTUuOSA3Mi4xIDQxOC43IDk2IDM3NiA5NkwyNzIgOTZ6XCJdXG59O1xuY29uc3QgZmFSb2FkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg3MzldLCBcImYwMThcIiwgXCJNMjU2IDMybC03NC44IDBjLTI3LjEgMC01MS4zIDE3LjEtNjAuMyA0Mi42TDMuMSA0MDcuMkMxLjEgNDEzIDAgNDE5LjIgMCA0MjUuNEMwIDQ1NS41IDI0LjUgNDgwIDU0LjYgNDgwTDI1NiA0ODBsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjQgMjAxLjQgMGMzMC4yIDAgNTQuNi0yNC41IDU0LjYtNTQuNmMwLTYuMi0xLjEtMTIuNC0zLjEtMTguMkw0NTUuMSA3NC42QzQ0NiA0OS4xIDQyMS45IDMyIDM5NC44IDMyTDMyMCAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIl1cbn07XG5jb25zdCBmYVRheGkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGF4aScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY2MiwgXCJjYWJcIl0sIFwiZjFiYVwiLCBcIk0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiAwIC4yYy0zOC42IDIuMi03Mi4zIDI3LjMtODUuMiA2NC4xTDM5LjYgMjI4LjhDMTYuNCAyMzguNCAwIDI2MS4zIDAgMjg4TDAgNDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4IDMyMCAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4IDAtMTQ0YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDEyOC4zYy0xMi45LTM2LjgtNDYuNi02Mi04NS4yLTY0LjFsMC0uMiAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNjUuNCAxMjhsMTgxLjIgMGMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40TDQwMi45IDIyNGwtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHpNOTYgMjg4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFDYWIgPSBmYVRheGk7XG5jb25zdCBmYVBlcnNvbkNpcmNsZVBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNpcmNsZS1wbHVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQxXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYUNoYXJ0UGllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LXBpZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicGllLWNoYXJ0XCJdLCBcImYyMDBcIiwgXCJNMzA0IDI0MGwwLTIyMy40YzAtOSA3LTE2LjYgMTYtMTYuNkM0NDMuNyAwIDU0NCAxMDAuMyA1NDQgMjI0YzAgOS03LjYgMTYtMTYuNiAxNkwzMDQgMjQwek0zMiAyNzJDMzIgMTUwLjcgMTIyLjEgNTAuMyAyMzkgMzQuM2M5LjItMS4zIDE3IDYuMSAxNyAxNS40TDI1NiAyODggNDEyLjUgNDQ0LjVjNi43IDYuNyA2LjIgMTcuNy0xLjUgMjMuMUMzNzEuOCA0OTUuNiAzMjMuOCA1MTIgMjcyIDUxMkMxMzkuNSA1MTIgMzIgNDA0LjYgMzIgMjcyem01MjYuNCAxNmM5LjMgMCAxNi42IDcuOCAxNS40IDE3Yy03LjcgNTUuOS0zNC42IDEwNS42LTczLjkgMTQyLjNjLTYgNS42LTE1LjQgNS4yLTIxLjItLjdMMzIwIDI4OGwyMzguNCAwelwiXVxufTtcbmNvbnN0IGZhUGllQ2hhcnQgPSBmYUNoYXJ0UGllO1xuY29uc3QgZmFCb2x0TGlnaHRuaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbHQtbGlnaHRuaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMGI3XCIsIFwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhIMjI4LjljMTUgMCAyNy4xIDEyLjEgMjcuMSAyNy4xYzAgMy4yLS42IDYuNS0xLjcgOS41TDIwOCAxNjBIMzQ3LjNjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjdjMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43aC0yLjljLTE1LjcgMC0yOC41LTEyLjgtMjguNS0yOC41YzAtMi4zIC4zLTQuNiAuOS02LjlMMTc2IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTYWNrWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Fjay14bWFyaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU2YVwiLCBcIk0xOTIgOTZsMTI4IDAgNDcuNC03MS4xQzM3NC41IDE0LjIgMzY2LjkgMCAzNTQuMSAwTDE1Ny45IDBjLTEyLjggMC0yMC40IDE0LjItMTMuMyAyNC45TDE5MiA5NnptMTI4IDMybC0xMjggMGMtMy44IDIuNS04LjEgNS4zLTEzIDguNGMwIDAgMCAwIDAgMHMwIDAgMCAwQzEyMi4zIDE3Mi43IDAgMjUwLjkgMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwzMjAgMGM1MyAwIDk2LTQzIDk2LTk2YzAtMTY1LjEtMTIyLjMtMjQzLjMtMTc5LTI3OS42Yy00LjgtMy4xLTkuMi01LjktMTMtOC40ek0yODkuOSAzMzZsNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3elwiXVxufTtcbmNvbnN0IGZhRmlsZUV4Y2VsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtZXhjZWwnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzNcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0xNTUuNyAyNTAuMkwxOTIgMzAyLjFsMzYuMy01MS45YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXMxMy41IDIyLjYgNS45IDMzLjRMMjIxLjMgMzQ0bDQ2LjQgNjYuMmM3LjYgMTAuOSA1IDI1LjgtNS45IDMzLjRzLTI1LjggNS0zMy40LTUuOUwxOTIgMzg1LjhsLTM2LjMgNTEuOWMtNy42IDEwLjktMjIuNiAxMy41LTMzLjQgNS45cy0xMy41LTIyLjYtNS45LTMzLjRMMTYyLjcgMzQ0bC00Ni40LTY2LjJjLTcuNi0xMC45LTUtMjUuOCA1LjktMzMuNHMyNS44LTUgMzMuNCA1Ljl6XCJdXG59O1xuY29uc3QgZmFGaWxlQ29udHJhY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jb250cmFjdCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU2Y1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTgwIDY0bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptNTQuMiAyNTMuOGMtNi4xIDIwLjMtMjQuOCAzNC4yLTQ2IDM0LjJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDguMiAwYzcuMSAwIDEzLjMtNC42IDE1LjMtMTEuNGwxNC45LTQ5LjVjMy40LTExLjMgMTMuOC0xOS4xIDI1LjYtMTkuMXMyMi4yIDcuNyAyNS42IDE5LjFsMTEuNiAzOC42YzcuNC02LjIgMTYuOC05LjcgMjYuOC05LjdjMTUuOSAwIDMwLjQgOSAzNy41IDIzLjJsNC40IDguOCA1NC4xIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTYuMSAwLTExLjYtMy40LTE0LjMtOC44bC04LjgtMTcuN2MtMS43LTMuNC01LjEtNS41LTguOC01LjVzLTcuMiAyLjEtOC44IDUuNWwtOC44IDE3LjdjLTIuOSA1LjktOS4yIDkuNC0xNS43IDguOHMtMTIuMS01LjEtMTMuOS0xMS4zTDE0NCAzNDlsLTkuOCAzMi44elwiXVxufTtcbmNvbnN0IGZhRmlzaEZpbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlzaC1maW5zJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGYyXCIsIFwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjVjLTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC42IDQuOVMtMyAxNjMuMyA0LjIgMTc1LjlMNTAgMjU2IDQuMiAzMzYuMWMtNy4yIDEyLjYtNSAyOC40IDUuMyAzOC42czI2LjEgMTIuMiAzOC42IDQuOWw5My4xLTU0LjNjMTEuOCAxMi4zIDI1LjQgMjQuOCA0MC43IDM2LjNjMTUuNSAxMS42IDMzIDIyLjUgNTIuNCAzMS41bC05LjcgNDguNmMtMi42IDEzIDMuMSAyNi4zIDE0LjMgMzMuM3MyNS42IDYuNSAzNi4zLTEuNWw3Ny42LTU4LjJjNTQuOS00IDEwMS41LTI3IDEzNy4yLTUzLjhjMzkuMi0yOS40IDY3LjItNjQuNyA4MS42LTg5LjVjNS44LTkuOSA1LjgtMjIuMiAwLTMyLjFjLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41Yy0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQnVpbGRpbmdGbGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZDVcIiwgXCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MCA5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNDE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDB6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xMTItMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNODAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4MCA2NCAwIDAtMzIwIDE0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZMNDgwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5CZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1iZWFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE2LCBcImdyaW4tYmVhbVwiXSwgXCJmNTgyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNzAuNS04NHMwIDAgMCAwYzAgMCAwIDAgMCAwbC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwem0xNjAgMGMwIDAgMCAwIDAgMGwtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjJjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhR3JpbkJlYW0gPSBmYUZhY2VHcmluQmVhbTtcbmNvbnN0IGZhT2JqZWN0VW5ncm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvYmplY3QtdW5ncm91cCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjI0OFwiLCBcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjA5LjEgMEMzMzkuNiAxMi45IDM2MC4zIDAgMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0xMTMuMXpNMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDExMy4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZ6bTE5MiAzODRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTQwLjYgNjQgMCAwIDQwLjZjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtNDYgMGMtNS40LTE1LjQtMTQuNi0yOC45LTI2LjUtMzkuNmwwLTI0LjQgNzIuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwelwiXVxufTtcbmNvbnN0IGZhUG9vcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb29wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjE5XCIsIFwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43QzMxNS44IDcuMiAzNTIgNDcuNCAzNTIgOTZjMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyYzAgMjMuMi0xMSA0My44LTI4IDU3YzM0LjEgNS43IDYwIDM1LjMgNjAgNzFjMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MmMwLTM1LjcgMjUuOS02NS4zIDYwLTcxYy0xNy0xMy4yLTI4LTMzLjgtMjgtNTdjMC0zOS44IDMyLjItNzIgNzItNzJsMTMuNyAwQzEwNC40IDIyOC4zIDk2IDIxMS4xIDk2IDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MGMwLTkuMi0xLjUtMTcuOS00LjMtMjYuMWMtMS44LTUuMi0uOC0xMS4xIDIuOC0xNS40elwiXVxufTtcbmNvbnN0IGZhTG9jYXRpb25QaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jYXRpb24tcGluJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJtYXAtbWFya2VyXCJdLCBcImYwNDFcIiwgXCJNMzg0IDE5MmMwIDg3LjQtMTE3IDI0My0xNjguMyAzMDcuMmMtMTIuMyAxNS4zLTM1LjEgMTUuMy00Ny40IDBDMTE3IDQzNSAwIDI3OS40IDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MnpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlciA9IGZhTG9jYXRpb25QaW47XG5jb25zdCBmYUthYWJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2thYWJhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MzMxXSwgXCJmNjZiXCIsIFwiTTYwIDEyMGwyMjggNzEuMkw1MTYgMTIwIDI4OCA0OC44IDYwIDEyMHpNMjc4LjUgMS41YzYuMi0xLjkgMTIuOS0xLjkgMTkuMSAwbDI1NiA4MEM1NjYuOSA4NS42IDU3NiA5OCA1NzYgMTEybDAgMTZzMCAwIDAgMGwwIDIxLjJMMjkyLjggMjM3LjdjLTMuMSAxLTYuNCAxLTkuNSAwTDAgMTQ5LjIgMCAxMjhsMC0xNkMwIDk4IDkuMSA4NS42IDIyLjUgODEuNWwyNTYtODB6bTIzLjkgMjY2LjhMNTc2IDE4Mi44bDAgNDYuNS01Mi44IDE2LjVjLTguNCAyLjYtMTMuMSAxMS42LTEwLjUgMjBzMTEuNiAxMy4xIDIwIDEwLjVMNTc2IDI2Mi44IDU3NiA0MDBjMCAxNC05LjEgMjYuNC0yMi41IDMwLjVsLTI1NiA4MGMtNi4yIDEuOS0xMi45IDEuOS0xOS4xIDBsLTI1Ni04MEM5LjEgNDI2LjQgMCA0MTQgMCA0MDBMMCAyNjIuOGw0My4yIDEzLjVjOC40IDIuNiAxNy40LTIuMSAyMC0xMC41cy0yLjEtMTcuNC0xMC41LTIwTDAgMjI5LjJsMC00Ni41IDI3My43IDg1LjVjOS4zIDIuOSAxOS4zIDIuOSAyOC42IDB6bS0xODUuNS0yLjZjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwbDY0IDIwYzguNCAyLjYgMTcuNC0yLjEgMjAtMTAuNXMtMi4xLTE3LjQtMTAuNS0yMGwtNjQtMjB6bTM1MiAzMC41YzguNC0yLjYgMTMuMS0xMS42IDEwLjUtMjBzLTExLjYtMTMuMS0yMC0xMC41bC02NCAyMGMtOC40IDIuNi0xMy4xIDExLjYtMTAuNSAyMHMxMS42IDEzLjEgMjAgMTAuNWw2NC0yMHptLTIyNCA5LjVjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwbDM4LjUgMTJjOS4zIDIuOSAxOS4zIDIuOSAyOC42IDBsMzguNS0xMmM4LjQtMi42IDEzLjEtMTEuNiAxMC41LTIwcy0xMS42LTEzLjEtMjAtMTAuNWwtMzguNSAxMmMtMy4xIDEtNi40IDEtOS41IDBsLTM4LjUtMTJ6XCJdXG59O1xuY29uc3QgZmFUb2lsZXRQYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2lsZXQtcGFwZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjk1MzFdLCBcImY3MWVcIiwgXCJNNDQ0LjIgMEMzOTcuMiA0OS42IDM4NCAxMjYuNSAzODQgMTkyYzAgMTU4LjgtMjcuMyAyNDctNDIuNyAyODMuOWMtMTAgMjQtMzMuMiAzNi4xLTU1LjQgMzYuMUw0OCA1MTJjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNi0yMi4zIC40LTMyLjJjOS44LTE3LjcgMTUuNC0zOC4yIDIwLjUtNTcuN0M1Mi4zIDM2Mi44IDY0IDI5My41IDY0IDE5MkM2NCA4NiAxMDcgMCAxNjAgMEw0NDQuMiAwek01MTIgMzg0Yy01MyAwLTk2LTg2LTk2LTE5MlM0NTkgMCA1MTIgMHM5NiA4NiA5NiAxOTJzLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0cy0zMiAyOC43LTMyIDY0czE0LjMgNjQgMzIgNjR6TTE0NCAyMDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNjQgMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTgwLTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFIZWxtZXRTYWZldHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVsbWV0LXNhZmV0eScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaGFyZC1oYXRcIiwgXCJoYXQtaGFyZFwiXSwgXCJmODA3XCIsIFwiTTI1NiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyLjMgMCA5OS42YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWMtMy42IDAtNy0xLjktOC44LTUuMUwxNTcuMSA4N0M4MyAxMjMuNSAzMiAxOTkuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY2LjRjLS45LTg3LjItNTEuNy0xNjIuNC0xMjUuMS0xOTguNmwtNDggODMuOWMtMS44IDMuMi01LjIgNS4xLTguOCA1LjFjLTUuNiAwLTEwLjEtNC41LTEwLjEtMTAuMWwwLTk5LjYgMC0yLjNjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6TTE2LjYgMzg0QzcuNCAzODQgMCAzOTEuNCAwIDQwMC42YzAgNC43IDIgOS4yIDUuOCAxMS45QzI3LjUgNDI4LjQgMTExLjggNDgwIDI4OCA0ODBzMjYwLjUtNTEuNiAyODIuMi02Ny41YzMuOC0yLjggNS44LTcuMiA1LjgtMTEuOWMwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZMMTYuNiAzODR6XCJdXG59O1xuY29uc3QgZmFIYXJkSGF0ID0gZmFIZWxtZXRTYWZldHk7XG5jb25zdCBmYUhhdEhhcmQgPSBmYUhlbG1ldFNhZmV0eTtcbmNvbnN0IGZhRWplY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWplY3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5MTY3XSwgXCJmMDUyXCIsIFwiTTIyNCAzMmMxMy41IDAgMjYuMyA1LjYgMzUuNCAxNS42bDE3NiAxOTJjMTIuOSAxNCAxNi4yIDM0LjMgOC42IDUxLjhTNDE5IDMyMCA0MDAgMzIwTDQ4IDMyMGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE4MzgsIFwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodFwiXSwgXCJmMzVhXCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnptMzk1LjMgMTEuM2wtMTEyIDExMmMtNC42IDQuNi0xMS41IDUuOS0xNy40IDMuNXMtOS45LTguMy05LjktMTQuOGwwLTY0LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTY0YzAtNi41IDMuOS0xMi4zIDkuOS0xNC44czEyLjktMS4xIDE3LjQgMy41bDExMiAxMTJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0FsdENpcmNsZVJpZ2h0ID0gZmFDaXJjbGVSaWdodDtcbmNvbnN0IGZhUGxhbmVDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTVcIiwgXCJNMjU2IDBjLTM1IDAtNjQgNTkuNS02NCA5My43bDAgODQuNkw4LjEgMjgzLjRjLTUgMi44LTguMSA4LjItOC4xIDEzLjlsMCA2NS41YzAgMTAuNiAxMC4yIDE4LjMgMjAuNCAxNS40bDE3MS42LTQ5IDAgNzAuOS01Ny42IDQzLjJjLTQgMy02LjQgNy44LTYuNCAxMi44bDAgNDJjMCA3LjggNi4zIDE0IDE0IDE0YzEuMyAwIDIuNi0uMiAzLjktLjVMMjU2IDQ4MGwxMTAuMSAzMS41YzEuMyAuNCAyLjYgLjUgMy45IC41YzYgMCAxMS4xLTMuNyAxMy4xLTlDMzQ0LjUgNDcwLjcgMzIwIDQyMi4yIDMyMCAzNjhjMC02MC42IDMwLjYtMTE0IDc3LjEtMTQ1LjZMMzIwIDE3OC4zbDAtODQuNkMzMjAgNTkuNSAyOTIgMCAyNTYgMHpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYUZhY2VSb2xsaW5nRXllcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXJvbGxpbmctZXllcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU4MCwgXCJtZWgtcm9sbGluZy1leWVzXCJdLCBcImY1YTVcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAzNjhsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0zMi0xNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40Yy0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjRDMjA4LjUgMTc1LjYgMjI0IDE5OCAyMjQgMjI0em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNGMtMy43IDUuMi01LjggMTEuNi01LjggMTguNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40QzQwMC41IDE3NS42IDQxNiAxOTggNDE2IDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NHpcIl1cbn07XG5jb25zdCBmYU1laFJvbGxpbmdFeWVzID0gZmFGYWNlUm9sbGluZ0V5ZXM7XG5jb25zdCBmYU9iamVjdEdyb3VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29iamVjdC1ncm91cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI0N1wiLCBcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMzM3LjEgMEM0NjcuNiAxMi45IDQ4OC4zIDAgNTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0zMzcuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMXpNNDU2LjYgOTZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjR6TTEyOCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTI1NiAzMjBsMzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6XCJdXG59O1xuY29uc3QgZmFDaGFydExpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtbGluZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGluZS1jaGFydFwiXSwgXCJmMjAxXCIsIFwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuN2wtNTcuNC01Ny40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTEyIDExMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNDAgMjIxLjNsNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6XCJdXG59O1xuY29uc3QgZmFMaW5lQ2hhcnQgPSBmYUNoYXJ0TGluZTtcbmNvbnN0IGZhTWFza1ZlbnRpbGF0b3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzay12ZW50aWxhdG9yJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTI0XCIsIFwiTTE1OS4xIDE3NkMxMzkuNCAyMTkuMiAxMjggMjY0LjcgMTI4IDMwMC44YzAgMTUuOSAyLjIgMzEuNCA2LjMgNDZsLTMxLjgtNy45QzcwLjUgMzMwLjkgNDggMzAyLjEgNDggMjY5bDAtODVjMC00LjQgMy42LTggOC04bDEwMy4xIDB6bTI2LTQ4TDU2IDEyOGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4NWMwIDU1LjEgMzcuNSAxMDMuMSA5MC45IDExNi40bDcxLjMgMTcuOGMyMi43IDMwLjUgNTUuNCA1NC4xIDkzLjggNjYuNmwwLTc2LjZjLTE5LjctMTYuNC0zMi00MC4zLTMyLTY2LjljMC00OS41IDQzLTEzNC40IDk2LTEzNC40YzUyLjUgMCA5NiA4NC45IDk2IDEzNC40YzAgMjYuNy0xMi40IDUwLjQtMzIgNjYuOGwwIDc2LjZjMzgtMTIuNiA3MC42LTM2IDkzLjUtNjYuNGw3MS42LTE3LjlDNjAyLjUgMzcyLjEgNjQwIDMyNC4xIDY0MCAyNjlsMC04NWMwLTMwLjktMjUuMS01Ni01Ni01NmwtMTI5LjUgMEM0MTkuNyA3My44IDM3Mi4xIDMyIDMyMCAzMmMtNTIuNiAwLTEwMC4yIDQxLjgtMTM0LjkgOTZ6bTI5NS42IDQ4TDU4NCAxNzZjNC40IDAgOCAzLjYgOCA4bDAgODVjMCAzMy0yMi41IDYxLjgtNTQuNSA2OS45bC0zMS44IDhjNC4yLTE0LjcgNi40LTMwLjEgNi40LTQ2LjFjMC0zNi4xLTExLjYtODEuNi0zMS4zLTEyNC44ek0yODggMzIwbDAgMTkyIDY0IDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODU5NF0sIFwiZjA2MVwiLCBcIk00MzguNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMDYuNyAwTDIzMy40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFTaWduc1Bvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbnMtcG9zdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFwLXNpZ25zXCJdLCBcImYyNzdcIiwgXCJNMjI0IDMyTDY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDM3Ny40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w0OC00OGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNDgtNDhjLTMtMy03LjEtNC43LTExLjMtNC43TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpNNDgwIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0zMi02NCAwIDAgMzJMNzAuNiAyMjRjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN0w0NDggMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjR6TTI4OCA0ODBsMC05Ni02NCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYU1hcFNpZ25zID0gZmFTaWduc1Bvc3Q7XG5jb25zdCBmYUNhc2hSZWdpc3RlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXNoLXJlZ2lzdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzg4XCIsIFwiTTY0IDBDNDYuMyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4MCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCAwek05NiA0OGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw5NiA4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzNTIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCA0NDhjLTguOCAwLTE2LTcuMi0xNi0xNnptNDgtMTY4YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4elwiXVxufTtcbmNvbnN0IGZhUGVyc29uQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNpcmNsZS1xdWVzdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0MlwiLCBcIk0xMTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjIzLjFMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZsMjkuNyAwYzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDQ0LjkgNzQuN2MtMTYuMSAxNy42LTI4LjYgMzguNS0zNi42IDYxLjVjLTEuOS0xLjgtMy41LTMuOS00LjktNi4zTDIzMiAyNTYuOSAyMzIgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTM2OCAzMjEuNmwwIDYuNGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNi40YzAtNS4zIDQuMy05LjYgOS42LTkuNmw0MC41IDBjNy43IDAgMTMuOSA2LjIgMTMuOSAxMy45YzAgNS4yLTIuOSA5LjktNy40IDEyLjNsLTMyIDE2LjhjLTUuMyAyLjgtOC42IDguMi04LjYgMTQuMmwwIDE0LjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTUuMSAyMy41LTEyLjNjMTUuMS03LjkgMjQuNS0yMy42IDI0LjUtNDAuNmMwLTI1LjQtMjAuNi00NS45LTQ1LjktNDUuOWwtNDAuNSAwYy0yMyAwLTQxLjYgMTguNi00MS42IDQxLjZ6XCJdXG59O1xuY29uc3QgZmFIID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2gnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMDRdLCBcIjQ4XCIsIFwiTTMyMCAyNTZsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOEw2NCAxOTIgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MiAyNTYgMHpcIl1cbn07XG5jb25zdCBmYVRhcnAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFycCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU3YlwiLCBcIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwIDAtMTYwek00NDggNDQ4TDU3NiAzMjBsLTEyOCAwIDAgMTI4ek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhU2NyZXdkcml2ZXJXcmVuY2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NyZXdkcml2ZXItd3JlbmNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0b29sc1wiXSwgXCJmN2Q5XCIsIFwiTTc4LjYgNUM2OS4xLTIuNCA1NS42LTEuNSA0NyA3TDcgNDdjLTguNSA4LjUtOS40IDIyLTIuMSAzMS42bDgwIDEwNGM0LjUgNS45IDExLjYgOS40IDE5IDkuNGw1NC4xIDAgMTA5IDEwOWMtMTQuNyAyOS0xMCA2NS40IDE0LjMgODkuNmwxMTIgMTEyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMTItMTEyYy0yNC4yLTI0LjItNjAuNi0yOS04OS42LTE0LjNsLTEwOS0xMDkgMC01NC4xYzAtNy41LTMuNS0xNC41LTkuNC0xOUw3OC42IDV6TTE5LjkgMzk2LjFDNy4yIDQwOC44IDAgNDI2LjEgMCA0NDQuMUMwIDQ4MS42IDMwLjQgNTEyIDY3LjkgNTEyYzE4IDAgMzUuMy03LjIgNDgtMTkuOUwyMzMuNyAzNzQuM2MtNy44LTIwLjktOS00My42LTMuNi02NS4xbC02MS43LTYxLjdMMTkuOSAzOTYuMXpNNTEyIDE0NGMwLTEwLjUtMS4xLTIwLjctMy4yLTMwLjVjLTIuNC0xMS4yLTE2LjEtMTQuMS0yNC4yLTZsLTYzLjkgNjMuOWMtMyAzLTcuMSA0LjctMTEuMyA0LjdMMzUyIDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNTcuNGMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDYzLjktNjMuOWM4LjEtOC4xIDUuMi0yMS44LTYtMjQuMkMzODguNyAxLjEgMzc4LjUgMCAzNjggMEMyODguNSAwIDIyNCA2NC41IDIyNCAxNDRsMCAuOCA4NS4zIDg1LjNjMzYtOS4xIDc1LjggLjUgMTA0IDI4LjdMNDI5IDI3NC41YzQ5LTIzIDgzLTcyLjggODMtMTMwLjV6TTU2IDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbmNvbnN0IGZhVG9vbHMgPSBmYVNjcmV3ZHJpdmVyV3JlbmNoO1xuY29uc3QgZmFBcnJvd3NUb0V5ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdG8tZXllJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGJmXCIsIFwiTTE1IDE1QzI0LjQgNS43IDM5LjYgNS43IDQ5IDE1bDYzIDYzTDExMiA0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzguMSAwTDE1IDQ5QzUuNyAzOS42IDUuNyAyNC40IDE1IDE1ek0xMzMuNSAyNDMuOUMxNTguNiAxOTMuNiAyMjIuNyAxMTIgMzIwIDExMnMxNjEuNCA4MS42IDE4Ni41IDEzMS45YzMuOCA3LjYgMy44IDE2LjUgMCAyNC4yQzQ4MS40IDMxOC40IDQxNy4zIDQwMCAzMjAgNDAwcy0xNjEuNC04MS42LTE4Ni41LTEzMS45Yy0zLjgtNy42LTMuOC0xNi41IDAtMjQuMnpNMzIwIDMyMGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNNTkxIDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjMgNjMgMzguMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAzOC4xIDYzLTYzek0xNSA0OTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDYzLTYzTDQwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zOC4xTDQ5IDQ5N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6bTU3NiAwbC02My02MyAwIDM4LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC05NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zOC4xIDAgNjMgNjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG5jb25zdCBmYVBsdWdDaXJjbGVCb2x0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWJvbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWJcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnpcIl1cbn07XG5jb25zdCBmYUhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTUzLCAxMjgxNTQsIDEyODE1NSwgMTI4MTU2LCAxMjg0MjAsIDEyOTI5MywgMTI5Mjk0LCAxMjk1MDUsIDk4MjksIDEwMDg0LCA2MTU3OF0sIFwiZjAwNFwiLCBcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45TDQ2NC40IDMwMC40YzMwLjQtMjguMyA0Ny42LTY4IDQ3LjYtMTA5LjV2LTUuOGMwLTY5LjktNTAuNS0xMjkuNS0xMTkuNC0xNDFDMzQ3IDM2LjUgMzAwLjYgNTEuNCAyNjggODRMMjU2IDk2IDI0NCA4NGMtMzIuNi0zMi42LTc5LTQ3LjUtMTI0LjYtMzkuOUM1MC41IDU1LjYgMCAxMTUuMiAwIDE4NS4xdjUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6XCJdXG59O1xuY29uc3QgZmFNYXJzQW5kVmVudXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1hbmQtdmVudXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODkzXSwgXCJmMjI0XCIsIFwiTTMzNy44IDE0LjhDMzQxLjUgNS44IDM1MC4zIDAgMzYwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMTJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktMjQuNyAyNC43QzQwNyAxNjMuMyA0MTYgMTkyLjYgNDE2IDIyNGMwIDgwLjItNTkgMTQ2LjYtMTM2IDE1OC4ybDAgMjUuOCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0yNS44QzE1NSAzNzAuNiA5NiAzMDQuMiA5NiAyMjRjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjMzkuNiAwIDc1LjkgMTQuNCAxMDMuOCAzOC4yTDM4Mi4xIDgwIDM0MyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMnpNNDQ4IDQ4czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek0zNTIgMjI0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS11c2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJob21lLXVzZXJcIl0sIFwiZTFiMFwiLCBcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWwtMzIgMCAuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zbC0zMjAuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MC40LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDU2NC44IDIzMS41YzggNyAxMiAxNSAxMSAyNHpNMzUyIDIyNGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6bS05NiA5NmMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNmMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpcIl1cbn07XG5jb25zdCBmYUhvbWVVc2VyID0gZmFIb3VzZVVzZXI7XG5jb25zdCBmYUR1bXBzdGVyRmlyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkdW1wc3Rlci1maXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzk0XCIsIFwiTTQ5LjcgMzJsOTAuOCAwTDExNC45IDE2MGwtOTQgMEM5LjMgMTYwIDAgMTUwLjcgMCAxMzkuMWMwLTIuMSAuMy00LjEgLjktNi4xTDI2LjggNDguOUMyOS45IDM4LjkgMzkuMiAzMiA0OS43IDMyek0yNzIgMTYwbC0xMjQuNSAwTDE3My4xIDMyIDI3MiAzMmwwIDEyOHptMzIgMGwwLTEyOCA5OC45IDAgMTQuNCA3Mi4xYy0xLjcgMS4xLTMuMyAyLjQtNC44IDMuOGMtMTguNCAxNi40LTM1LjQgMzQtNTAuNSA1Mi4xbC01OCAwem0yMDkuOS0yMy43Yy0xLjcgMS42LTMuNCAzLjItNSA0LjhDNDk4IDEyOS42IDQ4Ni43IDExOC42IDQ3NSAxMDhjLTcuNi02LjktMTctMTAuOC0yNi42LTExLjhMNDM1LjUgMzJsOTAuOCAwYzEwLjUgMCAxOS44IDYuOSAyMi45IDE2LjlMNTc1LjEgMTMzYy4yIC43IC40IDEuNCAuNSAyLjFjLTE3LjgtMTUtNDQuMy0xNC42LTYxLjcgMS4yek0zMjUuMiAyMTAuN0MzMDQuMyAyNDQuNSAyODggMjgyLjkgMjg4IDMxOC4xYzAgNDkuMyAxOC42IDk1LjIgNDkuNiAxMjkuOUwxMjggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDQ0IDI4OGwtMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0IDAtNC0zMiAzMDUuNSAwYy00LjQgNi4yLTguNSAxMi41LTEyLjMgMTguN3ptMTgwLjYtMzQuNUw1MTggMTYyLjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOWM3LjIgMCAxNC4zIDIuNiAxOS45IDcuOGMxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjZDNjI5IDI1OS4yIDY0MCAyOTAuMiA2NDAgMzIwLjJDNjQwIDQwOC44IDU2OC43IDQ4MCA0ODAgNDgwYy04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44YzAtMzcuMyAxNi03My40IDM2LjgtMTA0LjVjMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yYzUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVjMTQuMSAuMyAyMy44IDExLjQgMzIuNyAyMS42YzAgMCAwIDAgMCAwYzIgMi4zIDQgNC42IDYgNi43bDE5IDE5Ljl6TTU0NCAzNjguMmMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMjk1LjEgNDE2IDMzMS42IDQxNiAzNjguMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jcmFjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTNiMVwiLCBcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEwMi4zIDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI4OCAzNjhsLTYwLjItODIuOGMtMTAuOS0xNSA4LjItMzMuNSAyMi44LTIybDExNy45IDkyLjZjOCA2LjMgOC4yIDE4LjQgLjQgMjQuOUwyODggNDQ4bDM4LjQgNjQgMTIyLjEgMGMzNS41IDAgNjQuMi0yOC44IDY0LTY0LjNsLS43LTE2MC4yIDMyIDB6XCJdXG59O1xuY29uc3QgZmFNYXJ0aW5pR2xhc3NDaXRydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcy1jaXRydXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNvY2t0YWlsXCJdLCBcImY1NjFcIiwgXCJNNDMyIDI0MGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtMzUuNSAwLTY2LjYgMTkuMy04My4yIDQ4bC01Mi42IDBDMzE2IDQwLjEgMzY5LjMgMCA0MzIgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NGMtMjcuNyAwLTUzLjUtNy44LTc1LjUtMjEuM2wzNS40LTM1LjRjMTIuMiA1LjYgMjUuOCA4LjcgNDAuMSA4Ljd6TTEuOCAxNDIuOEM1LjUgMTMzLjggMTQuMyAxMjggMjQgMTI4bDM2OCAwYzkuNyAwIDE4LjUgNS44IDIyLjIgMTQuOHMxLjcgMTkuMy01LjIgMjYuMmwtMTc3IDE3N0wyMzIgNDY0bDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTg4IDAtODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtMTE4LjFMNyAxNjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJ6XCJdXG59O1xuY29uc3QgZmFDb2NrdGFpbCA9IGZhTWFydGluaUdsYXNzQ2l0cnVzO1xuY29uc3QgZmFGYWNlU3VycHJpc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zdXJwcmlzZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1OCwgXCJzdXJwcmlzZVwiXSwgXCJmNWMyXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjU2IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVN1cnByaXNlID0gZmFGYWNlU3VycHJpc2U7XG5jb25zdCBmYUJvdHRsZVdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvdHRsZS13YXRlcicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTRjNVwiLCBcIk0xMjAgMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDBMOTYgNjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMzIgMTY3LjVjMC0xOS41IDEwLTM3LjYgMjYuNi00Ny45bDE1LjgtOS45Qzg4LjcgMTAwLjcgMTA1LjIgOTYgMTIyLjEgOTZsNzUuOCAwYzE2LjkgMCAzMy40IDQuNyA0Ny43IDEzLjdsMTUuOCA5LjlDMjc4IDEyOS45IDI4OCAxNDggMjg4IDE2Ny41YzAgMTctNy41IDMyLjMtMTkuNCA0Mi42QzI4MC42IDIyMS43IDI4OCAyMzggMjg4IDI1NmMwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGMxMy4zIDExLjcgMjEuNyAyOC45IDIxLjcgNDhzLTguNCAzNi4zLTIxLjcgNDhjMTMuMyAxMS43IDIxLjcgMjguOSAyMS43IDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0xOS4xIDguNC0zNi4zIDIxLjctNDhDNDAuNCAzODguMyAzMiAzNzEuMSAzMiAzNTJzOC40LTM2LjMgMjEuNy00OEM0MC40IDI5Mi4zIDMyIDI3NS4xIDMyIDI1NmMwLTE4IDcuNC0zNC4zIDE5LjQtNDUuOUMzOS41IDE5OS43IDMyIDE4NC41IDMyIDE2Ny41ek05NiAyNDBjMCA4LjggNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgMTEyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVQYXVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcGF1c2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5MiwgXCJwYXVzZS1jaXJjbGVcIl0sIFwiZjI4YlwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhUGF1c2VDaXJjbGUgPSBmYUNpcmNsZVBhdXNlO1xuY29uc3QgZmFUb2lsZXRQYXBlclNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldC1wYXBlci1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3MlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMDkuNy04NkM1NjkuOSAzNzQgNjA4IDI5MS45IDYwOCAxOTJDNjA4IDg2IDU2NSAwIDUxMiAwcy05NiA4Ni05NiAxOTJjMCA0OS4xIDkuMiA5My45IDI0LjQgMTI3LjlsLTU5LTQ2LjJjMS42LTI0LjggMi42LTUyIDIuNi04MS42YzAtNjUuNSAxMy4yLTE0Mi40IDYwLjItMTkyTDE2MCAwYy0yNC44IDAtNDcuNCAxOC44LTY0LjQgNDkuNkwzOC44IDUuMXpNMzY3LjMgMzg1LjRMNjYuNSAxNDguNEM2NC45IDE2Mi40IDY0IDE3NyA2NCAxOTJjMCAxMDEuNS0xMS43IDE3MC44LTIzIDIxMy45Yy01LjEgMTkuNC0xMC43IDM5LjktMjAuNSA1Ny43Yy01LjkgOS45LTYuMSAyMi4xLS40IDMyLjJTMzYuNSA1MTIgNDggNTEybDIzNy45IDBjMjIuMyAwIDQ1LjQtMTIuMSA1NS40LTM2LjFjNy40LTE3LjcgMTcuNS00Ny4yIDI2LTkwLjZ6TTU0NCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NHMzMiAyOC43IDMyIDY0elwiXVxufTtcbmNvbnN0IGZhQXBwbGVXaG9sZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcHBsZS13aG9sZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzgyMiwgMTI3ODIzLCBcImFwcGxlLWFsdFwiXSwgXCJmNWQxXCIsIFwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDB6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwYzI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zYzE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMGMyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zYzc2LjMgMCAxMTIgODMuNyAxMTIgMTYwYzAgMTI4LTgwIDIyNC0xNjAgMjI0Yy0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zYy04LjEtMi44LTE2LjktMi44LTI1IDBjLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zQzgwIDUxMiAwIDQxNiAwIDI4OHpcIl1cbn07XG5jb25zdCBmYUFwcGxlQWx0ID0gZmFBcHBsZVdob2xlO1xuY29uc3QgZmFLaXRjaGVuU2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tpdGNoZW4tc2V0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTFhXCIsIFwiTTI0MCAxNDRBOTYgOTYgMCAxIDAgNDggMTQ0YTk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4QzY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsODAgMCAxNiAwIDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhUiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTE0XSwgXCI1MlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjg4IDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwTDI2MS44IDQ2Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRMNjQgMzJ6TTE3NiAyNTZMNjQgMjU2IDY0IDk2bDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVRdWFydGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLXF1YXJ0ZXInLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInRlbXBlcmF0dXJlLTFcIiwgXCJ0aGVybW9tZXRlci0xXCIsIFwidGhlcm1vbWV0ZXItcXVhcnRlclwiXSwgXCJmMmNhXCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1MC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3pcIl1cbn07XG5jb25zdCBmYVRlbXBlcmF0dXJlMSA9IGZhVGVtcGVyYXR1cmVRdWFydGVyO1xuY29uc3QgZmFUaGVybW9tZXRlcjEgPSBmYVRlbXBlcmF0dXJlUXVhcnRlcjtcbmNvbnN0IGZhVGhlcm1vbWV0ZXJRdWFydGVyID0gZmFUZW1wZXJhdHVyZVF1YXJ0ZXI7XG5jb25zdCBmYUN1YmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiMlwiLCBcIk0yMzQuNSA1LjdjMTMuOS01IDI5LjEtNSA0My4xIDBsMTkyIDY4LjZDNDk1IDgzLjQgNTEyIDEwNy41IDUxMiAxMzQuNmwwIDI0Mi45YzAgMjctMTcgNTEuMi00Mi41IDYwLjNsLTE5MiA2OC42Yy0xMy45IDUtMjkuMSA1LTQzLjEgMGwtMTkyLTY4LjZDMTcgNDI4LjYgMCA0MDQuNSAwIDM3Ny40TDAgMTM0LjZjMC0yNyAxNy01MS4yIDQyLjUtNjAuM2wxOTItNjguNnpNMjU2IDY2TDgyLjMgMTI4IDI1NiAxOTBsMTczLjctNjJMMjU2IDY2em0zMiAzNjguNmwxNjAtNTcuMSAwLTE4OEwyODggMjQ2LjZsMCAxODh6XCJdXG59O1xuY29uc3QgZmFCaXRjb2luU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaXRjb2luLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImUwYjRcIiwgXCJNNDggMzJDNDggMTQuMyA2Mi4zIDAgODAgMHMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMmMwIDEuNS0uMSAzLjEtLjMgNC41QzI1NC4xIDgyLjIgMjg4IDEyNS4xIDI4OCAxNzZjMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOWMzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTYuMyAwQzE4LjcgNDQ4IDAgNDI5LjMgMCA0MDYuM0wwIDI4OGwwLTIyLjNMMCAyMjQgMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDQ4IDY0bDAtMzJ6TTY0IDIyNGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw2NCAxMjhsMCA5NnptMTEyIDY0TDY0IDI4OGwwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhU2hpZWxkRG9nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1kb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NzNcIiwgXCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgNDQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDE5Mmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjNjLTEuOCAwLTMuNi0uNC01LjItMS4xbC05OC43LTQyLjNjLTYuNi0yLjgtMTAuOC05LjMtMTAuOC0xNi40YzAtMi44IC42LTUuNSAxLjktOGwxNS0zMHpNMTYwIDE2MGw0MCAwIDggMCAwIDMyIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbmNvbnN0IGZhU29sYXJQYW5lbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb2xhci1wYW5lbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjViYVwiLCBcIk0xMjIuMiAwQzkxLjcgMCA2NS41IDIxLjUgNTkuNSA1MS40TDguMyAzMDcuNEMuNCAzNDcgMzAuNiAzODQgNzEgMzg0bDIxNyAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDIxNyAwYzQwLjQgMCA3MC43LTM2LjkgNjIuOC03Ni42bC01MS4yLTI1NkM1NzQuNSAyMS41IDU0OC4zIDAgNTE3LjggMEwxMjIuMiAwek0yNjAuOSA2NGwxMTguMiAwIDEwLjQgMTA0LTEzOSAwTDI2MC45IDY0ek0yMDIuMyAxNjhsLTEwMC44IDBMMTIyLjIgNjRsOTAuNCAwTDIwMi4zIDE2OHpNOTEuOCAyMTZsMTA1LjYgMEwxODcuMSAzMjAgNzEgMzIwIDkxLjggMjE2em0xNTMuOSAwbDE0OC42IDAgMTAuNCAxMDQtMTY5LjQgMCAxMC40LTEwNHptMTk2LjggMGwxMDUuNiAwTDU2OSAzMjBsLTExNiAwTDQ0Mi41IDIxNnptOTYtNDhsLTEwMC44IDBMNDI3LjMgNjRsOTAuNCAwIDMxLjQtNi4zTDUxNy44IDY0bDIwLjggMTA0elwiXVxufTtcbmNvbnN0IGZhTG9ja09wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jay1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2MxXCIsIFwiTTM1MiAxNDRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OEM1NzYgNjQuNSA1MTEuNSAwIDQzMiAwUzI4OCA2NC41IDI4OCAxNDRsMCA0OEw2NCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFFbGV2YXRvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGV2YXRvcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE2ZFwiLCBcIk0xMzIuNyA0LjdsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40czguMyA5LjkgMTQuOCA5LjlsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzU2LjcgOTEuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzQzOC41IDAgNDMyIDBMMzA0IDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFRyYW5zZmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtdHJhbnNmZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MjhcIiwgXCJNNTM1IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN3MtMi41IDEyLjUtNyAxN2wtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjMtMjNMMzg0IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzQuMSAwTDUzNSA0MXpNMTA1IDM3N2wtMjMgMjNMMjU2IDQwMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4MS45IDQ0OGwyMyAyM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgNDQxYy00LjUtNC41LTctMTAuNi03LTE3czIuNS0xMi41IDctMTdsNjQtNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek05NiA2NGwyNDEuOSAwYy0zLjcgNy4yLTUuOSAxNS4zLTUuOSAyNGMwIDI4LjcgMjMuMyA1MiA1MiA1MmwxMTcuNCAwYy00IDE3IC42IDM1LjUgMTMuOCA0OC44YzIwLjMgMjAuMyA1My4yIDIwLjMgNzMuNSAwTDYwOCAxNjkuNSA2MDggMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNDEuOSAwYzMuNy03LjIgNS45LTE1LjMgNS45LTI0YzAtMjguNy0yMy4zLTUyLTUyLTUybC0xMTcuNCAwYzQtMTctLjYtMzUuNS0xMy44LTQ4LjhjLTIwLjMtMjAuMy01My4yLTIwLjMtNzMuNSAwTDMyIDM0Mi41IDMyIDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHptNjQgNjRsLTY0IDAgMCA2NGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNTQ0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsNjQgMCAwLTY0ek0zMjAgMzUyYTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwiXVxufTtcbmNvbnN0IGZhTW9uZXlCaWxsVHJlbmRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLXRyZW5kLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTI5XCIsIFwiTTQ3MC43IDkuNGMzIDMuMSA1LjMgNi42IDYuOSAxMC4zczIuNCA3LjggMi40IDEyLjJjMCAwIDAgLjEgMCAuMWMwIDAgMCAwIDAgMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguN0wzMTAuNiAyMTQuNmMtMTEuOCAxMS44LTMwLjggMTIuNi00My41IDEuN0wxNzYgMTM4LjEgODQuOCAyMTYuM2MtMTMuNCAxMS41LTMzLjYgOS45LTQ1LjEtMy41cy05LjktMzMuNiAzLjUtNDUuMWwxMTItOTZjMTItMTAuMyAyOS43LTEwLjMgNDEuNyAwbDg5LjUgNzYuN0wzNzAuNyA2NCAzNTIgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMHMwIDAgMCAwYzguOCAwIDE2LjggMy42IDIyLjYgOS4zbC4xIC4xek0wIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzA0ek00OCA0MTZsMCA0OCA0OCAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek05NiAzMDRsLTQ4IDAgMCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OHpNNDY0IDQxNmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsNDggMCAwLTQ4ek00MTYgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDAtNDgtNDggMHptLTk2IDgwYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtZmxvb2Qtd2F0ZXItY2lyY2xlLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBmXCIsIFwiTTI4OCAxNDRBMTQ0IDE0NCAwIDEgMCAwIDE0NGExNDQgMTQ0IDAgMSAwIDI4OCAwek0xNDAuNyA3Ni43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDU2IDU2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC01NiA1NmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxNjkuNCAxNjAgODAgMTYwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDg5LjQgMEwxNDAuNyA5OS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzIwIDE0NGMwIDU3LjMtMjcuNCAxMDguMi02OS44IDE0MC4zYzExLjgtMy42IDIzLTkuNCAzMy0xNi4yYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjQgNzguMSAzLjRjMi4xIDEuNyA0LjIgMy4zIDYuNSA0LjlsLS4zLTg0LjQgMTYuNiAwYzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFzLS40LTI3LjYtMTEuNi0zNS44bC0xNzYtMTI4QzQwNy42LTIgMzkyLjQtMiAzODEuMiA2LjFMMzAxIDY0LjRjMTIuMSAyMy45IDE5IDUwLjkgMTkgNzkuNnptMTguNSAxNjUuOWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNzkgMzI1LjQgMjUxLjUgMzM2IDIyNCAzMzZjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDM4OS43IDE5MSA0MDAgMjI0IDQwMGMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS41LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0NzEuNCAzMjUuMiA0NDIuOSAzMzYgNDE2IDMzNmMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xem0wIDExMmMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNzkgNDM3LjQgMjUxLjUgNDQ4IDIyNCA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xYzAgMCAwIDAgMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDUwMS43IDE5MSA1MTIgMjI0IDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2MwIDAgMCAwIDAgMEM0NzEuNCA0MzcuMiA0NDIuOSA0NDggNDE2IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUG9sbEhvcml6b250YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBvbGwtaG9yaXpvbnRhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicG9sbC1oXCJdLCBcImY2ODJcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI1NiAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptNjQgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE5MiAwek0xOTIgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFQb2xsSCA9IGZhU3F1YXJlUG9sbEhvcml6b250YWw7XG5jb25zdCBmYUNpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMDgsIDEyODMwOSwgMTI4OTkyLCAxMjg5OTMsIDEyODk5NCwgMTI4OTk1LCAxMjg5OTYsIDk2NzksIDk4OTgsIDk4OTksIDExMDQ0LCA2MTcwOCwgNjE5MTVdLCBcImYxMTFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6XCJdXG59O1xuY29uc3QgZmFCYWNrd2FyZEZhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFja3dhcmQtZmFzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTgsIFwiZmFzdC1iYWNrd2FyZFwiXSwgXCJmMDQ5XCIsIFwiTTQ5My42IDQ0NWMtMTEuMiA1LjMtMjQuNSAzLjYtMzQuMS00LjRMMjg4IDI5Ny43IDI4OCA0MTZjMCAxMi40LTcuMiAyMy43LTE4LjQgMjlzLTI0LjUgMy42LTM0LjEtNC40TDY0IDI5Ny43IDY0IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0czMyIDE0LjMgMzIgMzJsMCAxMTguM0wyMzUuNSA3MS40YzkuNS03LjkgMjIuOC05LjcgMzQuMS00LjRTMjg4IDgzLjYgMjg4IDk2bDAgMTE4LjNMNDU5LjUgNzEuNGM5LjUtNy45IDIyLjgtOS43IDM0LjEtNC40UzUxMiA4My42IDUxMiA5NmwwIDMyMGMwIDEyLjQtNy4yIDIzLjctMTguNCAyOXpcIl1cbn07XG5jb25zdCBmYUZhc3RCYWNrd2FyZCA9IGZhQmFja3dhcmRGYXN0O1xuY29uc3QgZmFSZWN5Y2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY3ljbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODQyLCA5ODUwLCA5ODUxXSwgXCJmMWI4XCIsIFwiTTE3NC43IDQ1LjFDMTkyLjIgMTcgMjIzIDAgMjU2IDBzNjMuOCAxNyA4MS4zIDQ1LjFsMzguNiA2MS43IDI3LTE1LjZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNsLTIzLjQgODcuNGMtMy40IDEyLjgtMTYuNiAyMC40LTI5LjQgMTdsLTg3LjQtMjMuNGMtOS40LTIuNS0xNi4zLTEwLjQtMTcuNi0yMHMzLjQtMTkuMSAxMS44LTIzLjlsMjguNC0xNi40TDI4MyA3OWMtNS44LTkuMy0xNi0xNS0yNy0xNXMtMjEuMiA1LjctMjcgMTVsLTE3LjUgMjhjLTkuMiAxNC44LTI4LjYgMTkuNS00My42IDEwLjVjLTE1LjMtOS4yLTIwLjItMjkuMi0xMC43LTQ0LjRsMTcuNS0yOHpNNDI5LjUgMjUxLjljMTUtOSAzNC40LTQuMyA0My42IDEwLjVsMjQuNCAzOS4xYzkuNCAxNS4xIDE0LjQgMzIuNCAxNC42IDUwLjJjLjMgNTMuMS00Mi43IDk2LjQtOTUuOCA5Ni40TDMyMCA0NDhsMCAzMmMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNjQtNjRjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4ybDAgMzIgOTYuMiAwYzE3LjYgMCAzMS45LTE0LjQgMzEuOC0zMmMwLTUuOS0xLjctMTEuNy00LjgtMTYuN2wtMjQuNC0zOS4xYy05LjUtMTUuMi00LjctMzUuMiAxMC43LTQ0LjR6bS0zNjQuNi0zMUwzNiAyMDQuMmMtOC40LTQuOS0xMy4xLTE0LjMtMTEuOC0yMy45czguMi0xNy41IDE3LjYtMjBsODcuNC0yMy40YzEyLjgtMy40IDI2IDQuMiAyOS40IDE3TDE4MiAyNDEuMmMyLjUgOS40LS45IDE5LjMtOC42IDI1LjNzLTE4LjIgNi42LTI2LjYgMS43bC0yNi41LTE1LjNMNjguOCAzMzUuM2MtMy4xIDUtNC44IDEwLjgtNC44IDE2LjdjLS4xIDE3LjYgMTQuMiAzMiAzMS44IDMybDMyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuMiAwQzQyLjcgNDQ4LS4zIDQwNC44IDAgMzUxLjZjLjEtMTcuOCA1LjEtMzUuMSAxNC42LTUwLjJsNTAuMy04MC41elwiXVxufTtcbmNvbnN0IGZhVXNlckFzdHJvbmF1dCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWFzdHJvbmF1dCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjRmYlwiLCBcIk0zNzAuNyA5Ni4xQzM0Ni4xIDM5LjUgMjg5LjcgMCAyMjQgMFMxMDEuOSAzOS41IDc3LjMgOTYuMUM2MC45IDk3LjUgNDggMTExLjIgNDggMTI4bDAgNjRjMCAxNi44IDEyLjkgMzAuNSAyOS4zIDMxLjlDMTAxLjkgMjgwLjUgMTU4LjMgMzIwIDIyNCAzMjBzMTIyLjEtMzkuNSAxNDYuNy05Ni4xYzE2LjQtMS40IDI5LjMtMTUuMSAyOS4zLTMxLjlsMC02NGMwLTE2LjgtMTIuOS0zMC41LTI5LjMtMzEuOXpNMzM2IDE0NGwwIDE2YzAgNTMtNDMgOTYtOTYgOTZsLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTg5LjMgMTYyLjdsLTYtMjEuMmMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTZ6TTExMi43IDMxNi41QzQ2LjcgMzQyLjYgMCA0MDcgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDk4LjMgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQgOTguMyAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43YzAtNzUuMy00Ni43LTEzOS43LTExMi43LTE2NS44QzMwMy45IDMzOC44IDI2NS41IDM1MiAyMjQgMzUycy03OS45LTEzLjItMTExLjMtMzUuNXpNMTc2IDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnptOTYgMzJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhUGxhbmVTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2OVwiLCBcIk01MTQuMyAxOTJjMzQuMiAwIDkzLjcgMjkgOTMuNyA2NGMwIDM2LTU5LjUgNjQtOTMuNyA2NGwtNzMuOCAwTDYzMC44IDQ2OS4xYzEwLjQgOC4yIDEyLjMgMjMuMyA0LjEgMzMuN3MtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yUzI4LjQtMy4xIDM4LjggNS4xTDIzOC4xIDE2MS4zIDE5Ny44IDIwLjRDMTk0LjkgMTAuMiAyMDIuNiAwIDIxMy4yIDBsNTYuMiAwYzExLjUgMCAyMi4xIDYuMiAyNy44IDE2LjFMMzk3LjcgMTkybDExNi42IDB6TTQxLjUgMTI4LjdsMzIxIDI1Mi45TDI5Ny4yIDQ5NS45Yy01LjcgMTAtMTYuMyAxNi4xLTI3LjggMTYuMWwtNTYuMiAwYy0xMC42IDAtMTguMy0xMC4yLTE1LjQtMjAuNGw0OS0xNzEuNkwxNDQgMzIwbC00My4yIDU3LjZjLTMgNC03LjggNi40LTEyLjggNi40bC00MiAwYy03LjggMC0xNC02LjMtMTQtMTRjMC0xLjMgLjItMi42IC41LTMuOUw2NCAyNTYgMzIuNSAxNDUuOWMtLjQtMS4zLS41LTIuNi0uNS0zLjljMC02LjIgNC0xMS40IDkuNS0xMy4zelwiXVxufTtcbmNvbnN0IGZhVHJhZGVtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWRlbWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgWzg0ODJdLCBcImYyNWNcIiwgXCJNMzQ1LjYgMTA4LjhjLTguMy0xMS0yMi43LTE1LjUtMzUuNy0xMS4yUzI4OCAxMTQuMiAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgODYuNCAxMTUuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44czE5LjYtNC43IDI1LjYtMTIuOEw1NzYgMjI0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRzLTI3LjUgLjEtMzUuNyAxMS4yTDQ2NCAyNjYuNyAzNDUuNiAxMDguOHpNMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhQmFza2V0YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXNrZXRiYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTM2LCBcImJhc2tldGJhbGwtYmFsbFwiXSwgXCJmNDM0XCIsIFwiTTg2LjYgNjRsODUuMiA4NS4yQzE5NC41IDEyMS43IDIwOCA4Ni40IDIwOCA0OGMwLTE0LjctMi0yOC45LTUuNy00Mi40QzE1OC42IDE1IDExOSAzNS41IDg2LjYgNjR6TTY0IDg2LjZDMzUuNSAxMTkgMTUgMTU4LjYgNS42IDIwMi4zQzE5LjEgMjA2IDMzLjMgMjA4IDQ4IDIwOGMzOC40IDAgNzMuNy0xMy41IDEwMS4zLTM2LjFMNjQgODYuNnpNMjU2IDBjLTcuMyAwLTE0LjYgLjMtMjEuOCAuOUMyMzggMTYgMjQwIDMxLjggMjQwIDQ4YzAgNDcuMy0xNy4xIDkwLjUtNDUuNCAxMjRMMjU2IDIzMy40IDQyNS40IDY0QzM4MC4yIDI0LjIgMzIwLjkgMCAyNTYgMHpNNDggMjQwYy0xNi4yIDAtMzItMi00Ny4xLTUuOEMuMyAyNDEuNCAwIDI0OC43IDAgMjU2YzAgNjQuOSAyNC4yIDEyNC4yIDY0IDE2OS40TDIzMy40IDI1NiAxNzIgMTk0LjZDMTM4LjUgMjIyLjkgOTUuMyAyNDAgNDggMjQwem00NjMuMSAzNy44Yy42LTcuMiAuOS0xNC41IC45LTIxLjhjMC02NC45LTI0LjItMTI0LjItNjQtMTY5LjRMMjc4LjYgMjU2IDM0MCAzMTcuNGMzMy40LTI4LjMgNzYuNy00NS40IDEyNC00NS40YzE2LjIgMCAzMiAyIDQ3LjEgNS44em0tNC43IDMxLjlDNDkyLjkgMzA2IDQ3OC43IDMwNCA0NjQgMzA0Yy0zOC40IDAtNzMuNyAxMy41LTEwMS4zIDM2LjFMNDQ4IDQyNS40YzI4LjUtMzIuMyA0OS4xLTcxLjkgNTguNC0xMTUuN3pNMzQwLjEgMzYyLjdDMzE3LjUgMzkwLjMgMzA0IDQyNS42IDMwNCA0NjRjMCAxNC43IDIgMjguOSA1LjcgNDIuNEMzNTMuNCA0OTcgMzkzIDQ3Ni41IDQyNS40IDQ0OGwtODUuMi04NS4yek0zMTcuNCAzNDBMMjU2IDI3OC42IDg2LjYgNDQ4YzQ1LjEgMzkuOCAxMDQuNCA2NCAxNjkuNCA2NGM3LjMgMCAxNC42LS4zIDIxLjgtLjlDMjc0IDQ5NiAyNzIgNDgwLjIgMjcyIDQ2NGMwLTQ3LjMgMTcuMS05MC41IDQ1LjQtMTI0elwiXVxufTtcbmNvbnN0IGZhQmFza2V0YmFsbEJhbGwgPSBmYUJhc2tldGJhbGw7XG5jb25zdCBmYVNhdGVsbGl0ZURpc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlLWRpc2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjVdLCBcImY3YzBcIiwgXCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyQzM4My4xIDAgNTEyIDEyOC45IDUxMiAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJDNDQ4IDE2NC4zIDM0Ny43IDY0IDIyNCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTYwLjYgMjIwLjZMMTY0LjcgMzI0LjdsMjguNC0yOC40Yy0uNy0yLjYtMS4xLTUuNC0xLjEtOC4zYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTIuOSAwLTUuNi0uNC04LjMtMS4xbC0yOC40IDI4LjRMMjkxLjQgNDUxLjRjMTQuNSAxNC41IDExLjggMzguOC03LjMgNDYuM0MyNjAuNSA1MDYuOSAyMzQuOSA1MTIgMjA4IDUxMkM5My4xIDUxMiAwIDQxOC45IDAgMzA0YzAtMjYuOSA1LjEtNTIuNSAxNC40LTc2LjFjNy41LTE5IDMxLjgtMjEuOCA0Ni4zLTcuM3pNMjI0IDk2YzEwNiAwIDE5MiA4NiAxOTIgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE0NjcsIFwiYXJyb3ctYWx0LWNpcmNsZS11cFwiXSwgXCJmMzViXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM5NS4zbDExMiAxMTJjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNHMtOC4zIDkuOS0xNC44IDkuOWwtNjQgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTY0IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMTItMTEyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dBbHRDaXJjbGVVcCA9IGZhQ2lyY2xlVXA7XG5jb25zdCBmYU1vYmlsZVNjcmVlbkJ1dHRvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb2JpbGUtc2NyZWVuLWJ1dHRvbicsXG4gIGljb246IFszODQsIDUxMiwgW1wibW9iaWxlLWFsdFwiXSwgXCJmM2NkXCIsIFwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMjI0IDQ0OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMDQgNjRMODAgNjRsMCAzMjAgMjI0IDAgMC0zMjB6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVBbHQgPSBmYU1vYmlsZVNjcmVlbkJ1dHRvbjtcbmNvbnN0IGZhVm9sdW1lSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2x1bWUtaGlnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI2NiwgXCJ2b2x1bWUtdXBcIl0sIFwiZjAyOFwiLCBcIk01MzMuNiAzMi41QzU5OC41IDg1LjIgNjQwIDE2NS44IDY0MCAyNTZzLTQxLjUgMTcwLjctMTA2LjQgMjIzLjVjLTEwLjMgOC40LTI1LjQgNi44LTMzLjgtMy41cy02LjgtMjUuNCAzLjUtMzMuOEM1NTcuNSAzOTguMiA1OTIgMzMxLjIgNTkyIDI1NnMtMzQuNS0xNDIuMi04OC43LTE4Ni4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek00NzMuMSAxMDdjNDMuMiAzNS4yIDcwLjkgODguOSA3MC45IDE0OXMtMjcuNyAxMTMuOC03MC45IDE0OWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzQ3NS4zIDM0MS4zIDQ5NiAzMDEuMSA0OTYgMjU2cy0yMC43LTg1LjMtNTMuMi0xMTEuOGMtMTAuMy04LjQtMTEuOC0yMy41LTMuNS0zMy44czIzLjUtMTEuOCAzMy44LTMuNXptLTYwLjUgNzQuNUM0MzQuMSAxOTkuMSA0NDggMjI1LjkgNDQ4IDI1NnMtMTMuOSA1Ni45LTM1LjQgNzQuNWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzM5My4xIDI4NC40IDQwMCAyNzEgNDAwIDI1NnMtNi45LTI4LjQtMTcuNy0zNy4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41ek0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVVcCA9IGZhVm9sdW1lSGlnaDtcbmNvbnN0IGZhVXNlcnNSYXlzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLXJheXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTNcIiwgXCJNNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDdTLTIuMyAzMS42IDcgNDFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxIDd6TTU5OSA3TDUyNyA3OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDB6TTcgNTA1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNyA0NzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em01OTIgMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0yMTIuMSAzMzZjLTIuNyA3LjUtNC4xIDE1LjYtNC4xIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtOC40LTEuNC0xNi41LTQuMS0yNGMtLjUtMS40LTEtMi43LTEuNi00Yy05LjQtMjIuMy0yOS44LTM4LjktNTQuMy00M2MtMy45LS43LTcuOS0xLTEyLTFsLTgwIDBjLTQuMSAwLTguMSAuMy0xMiAxYy0uOCAuMS0xLjcgLjMtMi41IC41Yy0yNC45IDUuMS00NS4xIDIzLTUzLjQgNDYuNXpNMTc1LjggMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTI2LjUgMzJDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43bDU2LjEgMGM4LTM0LjEgMzIuOC02MS43IDY1LjItNzMuNmMtNy41LTQuMS0xNi4yLTYuNC0yNS4zLTYuNGwtNjkuMyAwem0zNjggODBjMTQuNyAwIDI2LjctMTEuOSAyNi43LTI2LjdjMC0yOS41LTIzLjktNTMuMy01My4zLTUzLjNsLTY5LjMgMGMtOS4yIDAtMTcuOCAyLjMtMjUuMyA2LjRjMzIuNCAxMS45IDU3LjIgMzkuNSA2NS4yIDczLjZsNTYuMSAwek00NjQgMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVdhbGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YWxsZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTVcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAxMjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzY4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJ6TTQxNiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQ2xpcGJvYXJkQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkLWNoZWNrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDZjXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMDUgMjczTDE3NyA0MDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDc5IDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDI3MSAyMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbmNvbnN0IGZhRmlsZUF1ZGlvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXVkaW8nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzdcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwem0yIDIyNi4zYzM3LjEgMjIuNCA2MiA2My4xIDYyIDEwOS43cy0yNC45IDg3LjMtNjIgMTA5LjdjLTcuNiA0LjYtMTcuNCAyLjEtMjItNS40cy0yLjEtMTcuNCA1LjQtMjJDMjY5LjQgNDAxLjUgMjg4IDM3MC45IDI4OCAzMzZzLTE4LjYtNjUuNS00Ni41LTgyLjNjLTcuNi00LjYtMTAtMTQuNC01LjQtMjJzMTQuNC0xMCAyMi01LjR6bS05MS45IDMwLjljNiAyLjUgOS45IDguMyA5LjkgMTQuOGwwIDEyOGMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVMMTEzLjQgMzc2IDgwIDM3NmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2bDMzLjQgMCAzNS4zLTM1LjNjNC42LTQuNiAxMS41LTUuOSAxNy40LTMuNXptNTEgMzQuOWM2LjYtNS45IDE2LjctNS4zIDIyLjYgMS4zQzI0OS44IDMwNC42IDI1NiAzMTkuNiAyNTYgMzM2cy02LjIgMzEuNC0xNi4zIDQyLjdjLTUuOSA2LjYtMTYgNy4xLTIyLjYgMS4zcy03LjEtMTYtMS4zLTIyLjZjNS4xLTUuNyA4LjEtMTMuMSA4LjEtMjEuM3MtMy4xLTE1LjctOC4xLTIxLjNjLTUuOS02LjYtNS4zLTE2LjcgMS4zLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFCdXJnZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVyZ2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJoYW1idXJnZXJcIl0sIFwiZjgwNVwiLCBcIk02MS4xIDIyNEM0NSAyMjQgMzIgMjExIDMyIDE5NC45YzAtMS45IC4yLTMuNyAuNi01LjZDMzcuOSAxNjguMyA3OC44IDMyIDI1NiAzMnMyMTguMSAxMzYuMyAyMjMuNCAxNTcuM2MuNSAxLjkgLjYgMy43IC42IDUuNmMwIDE2LjEtMTMgMjkuMS0yOS4xIDI5LjFMNjEuMSAyMjR6TTE0NCAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMjQwIDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpNMjcyIDk2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6TTE2IDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OGwzODQgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw2NCAzNTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4em0xNiA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2elwiXVxufTtcbmNvbnN0IGZhSGFtYnVyZ2VyID0gZmFCdXJnZXI7XG5jb25zdCBmYVdyZW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3cmVuY2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyOTVdLCBcImYwYWRcIiwgXCJNMzUyIDMyMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGMwLTE1LjMtMi4yLTMwLjEtNi4yLTQ0LjJjLTMuMS0xMC44LTE2LjQtMTMuMi0yNC4zLTUuM2wtNzYuOCA3Ni44Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN0wzMzYgMTkyYy04LjggMC0xNi03LjItMTYtMTZsMC01Ny40YzAtNC4yIDEuNy04LjMgNC43LTExLjNsNzYuOC03Ni44YzcuOS03LjkgNS40LTIxLjItNS4zLTI0LjNDMzgyLjEgMi4yIDM2Ny4zIDAgMzUyIDBDMjYzLjYgMCAxOTIgNzEuNiAxOTIgMTYwYzAgMTkuMSAzLjQgMzcuNSA5LjUgNTQuNUwxOS45IDM5Ni4xQzcuMiA0MDguOCAwIDQyNi4xIDAgNDQ0LjFDMCA0ODEuNiAzMC40IDUxMiA2Ny45IDUxMmMxOCAwIDM1LjMtNy4yIDQ4LTE5LjlMMjk3LjUgMzEwLjVjMTcgNi4yIDM1LjQgOS41IDU0LjUgOS41ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQnVncyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWdzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGQwXCIsIFwiTTE2NC41IDEwNy40bDMzLjQtNzMuNWM1LjUtMTIuMSAuMS0yNi4zLTExLjktMzEuOHMtMjYuMy0uMS0zMS44IDExLjlMMTI4IDcxLjcgMTAxLjkgMTQuMUM5Ni40IDIgODIuMS0zLjMgNzAuMSAyLjFTNTIuNyAyMS45IDU4LjEgMzMuOWwzMy40IDczLjVjLTEwLjIgNy4xLTE4LjIgMTctMjIuOSAyOC42bC0xNyAwLTQuMS0yMC43Yy0yLjYtMTMtMTUuMi0yMS40LTI4LjItMTguOFMtMi4xIDExMS43IC41IDEyNC43bDggNDBDMTAuNyAxNzUuOSAyMC42IDE4NCAzMiAxODRsMzIgMCAwIDIzLjMtMzcuOCA5LjVjLTkuNSAyLjQtMTYuNiAxMC4yLTE3LjkgMTkuOWwtOCA1NmMtMS45IDEzLjEgNy4yIDI1LjMgMjAuNCAyNy4yczI1LjMtNy4yIDI3LjItMjAuNGw1LjctNDAgMTguNC00LjZDODIuNyAyNzQuNiAxMDMuOCAyODggMTI4IDI4OHM0NS4zLTEzLjQgNTYuMS0zMy4ybDE4LjQgNC42IDUuNyA0MGMxLjkgMTMuMSAxNCAyMi4yIDI3LjIgMjAuNHMyMi4yLTE0IDIwLjQtMjcuMmwtOC01NmMtMS40LTkuNy04LjUtMTcuNS0xNy45LTE5LjlMMTkyIDIwNy4zbDAtMjMuMyAzMiAwYzExLjQgMCAyMS4zLTguMSAyMy41LTE5LjNsOC00MGMyLjYtMTMtNS44LTI1LjYtMTguOC0yOC4ycy0yNS42IDUuOC0yOC4yIDE4LjhMMjA0LjMgMTM2bC0xNyAwYy00LjctMTEuNi0xMi43LTIxLjUtMjIuOS0yOC42ek00OTYgMjg2LjVsNjUuNi00N2MxMC44LTcuNyAxMy4zLTIyLjcgNS42LTMzLjVzLTIyLjctMTMuMy0zMy41LTUuNmwtNTEuNCAzNi44IDYuMS02Mi45YzEuMy0xMy4yLTguNC0yNC45LTIxLjYtMjYuMnMtMjQuOSA4LjQtMjYuMiAyMS42TDQzMi44IDI1MGMtMTIuMyAxLTI0LjIgNS42LTM0LjEgMTMuM0wzODQgMjU0LjhsNi44LTIwYzQuMi0xMi42LTIuNS0yNi4yLTE1LTMwLjRzLTI2LjIgMi41LTMwLjQgMTVsLTEzLjEgMzguNmMtMy43IDEwLjggLjggMjIuOCAxMC43IDI4LjVsMjcuNyAxNkwzNTkgMzIyLjcgMzIxLjUgMzEyYy05LjQtMi43LTE5LjUgLjYtMjUuNSA4LjNsLTM0LjkgNDQuNWMtOC4yIDEwLjQtNi40IDI1LjUgNC4xIDMzLjdzMjUuNSA2LjQgMzMuNy00LjFsMjUtMzEuOCAxOC4yIDUuMmMtLjUgMjIuNiAxMSA0NC43IDMyIDU2LjhzNDUuOSAxMSA2NS4yLS43bDEzLjYgMTMuMi0xNS4xIDM3LjVjLTQuOSAxMi4zIDEgMjYuMyAxMy4zIDMxLjJzMjYuMy0xIDMxLjItMTMuM0w1MDMuNSA0NDBjMy42LTkuMSAxLjQtMTkuNC01LjYtMjYuMmwtMjgtMjcuMSAxMS42LTIwLjEgMjcuNyAxNmM5LjkgNS43IDIyLjUgMy43IDMwLTQuOUw1NjYuMiAzNDdjOC43LTEwIDcuOC0yNS4xLTIuMi0zMy45cy0yNS4xLTcuOC0zMy45IDIuMmwtMTMuOSAxNS45LTE0LjctOC41YzEuNy0xMi40LS4yLTI1LTUuNS0zNi4yelwiXVxufTtcbmNvbnN0IGZhUnVwZWVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1cGVlLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MzYwLCBcInJ1cGVlXCJdLCBcImYxNTZcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0YzAgNTguOC0zNS4yIDEwOS4zLTg1LjcgMTMxLjdsNTEuNCAxMjguNGM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44TDEwNi4zIDMyMCA2NCAzMjBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCAyODggMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBMNjQgOTZsMCAxNjB6bTI1Ni41IDE2LjRjLS45IDYgMCA4LjcgLjQgOS44Yy40IDEuMSAxLjQgMi42IDQuMiA0LjljNy4yIDUuNyAxOC43IDEwIDM3LjkgMTYuOGwxLjMgLjVjMTYgNS42IDM4LjcgMTMuNiA1NS43IDI4LjFjOS41IDguMSAxNy45IDE4LjYgMjMuMSAzMi4zYzUuMSAxMy43IDYuMSAyOC41IDMuOCA0NGMtNC4yIDI4LjEtMjAuNSA0OS4zLTQzLjggNjAuOWMtMjIuMSAxMS00OC4xIDEyLjUtNzMuMiA4bC0uMiAwczAgMCAwIDBjLTkuMy0xLjgtMjAuNS01LjctMjkuMy05Yy02LTIuMy0xMi42LTQuOS0xNy43LTYuOWMwIDAgMCAwIDAgMGMtMi41LTEtNC42LTEuOC02LjMtMi41Yy0xNi41LTYuNC0yNC42LTI1LTE4LjItNDEuNHMyNC45LTI0LjYgNDEuNC0xOC4yYzIuNiAxIDUuMiAyIDcuOSAzLjFjMCAwIDAgMCAwIDBjNC44IDEuOSA5LjggMy45IDE1LjQgNmM4LjggMy4zIDE1LjMgNS40IDE4LjcgNmMxNS43IDIuOCAyNi43IC44IDMyLjktMi4zYzUtMi41IDgtNiA5LjEtMTNjMS02LjkgLjItMTAuNS0uNS0xMi4zYy0uNi0xLjctMS44LTMuNi00LjUtNS45Yy02LjktNS44LTE4LjItMTAuNC0zNi45LTE3bC0zLTEuMWMtMTUuNS01LjQtMzctMTMtNTMuMy0yNS45Yy05LjUtNy41LTE4LjMtMTcuNi0yMy43LTMxYy01LjUtMTMuNC02LjYtMjgtNC40LTQzLjJjOC40LTU3LjEgNjctNzggMTE2LjktNjguOWM2LjkgMS4zIDI3LjMgNS44IDM1LjQgOC40YzE2LjkgNS4yIDI2LjMgMjMuMiAyMS4xIDQwLjFzLTIzLjIgMjYuMy00MC4xIDIxLjFjLTQuNy0xLjQtMjIuMy01LjUtMjcuOS02LjVjLTE0LjYtMi43LTI1LjgtLjQtMzIuNiAzLjJjLTYuMyAzLjMtOC45IDcuNi05LjUgMTJ6XCJdXG59O1xuY29uc3QgZmFSdXBlZSA9IGZhUnVwZWVTaWduO1xuY29uc3QgZmFGaWxlSW1hZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbWFnZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQ0M10sIFwiZjFjNVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTY0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNTIgMzJjNS4zIDAgMTAuMiAyLjYgMTMuMiA2LjlsODggMTI4YzMuNCA0LjkgMy43IDExLjMgMSAxNi41cy04LjIgOC42LTE0LjIgOC42bC04OCAwLTQwIDAtNDggMC00OCAwYy01LjggMC0xMS4xLTMuMS0xMy45LTguMXMtMi44LTExLjIgLjItMTYuMWw0OC04MGMyLjktNC44IDguMS03LjggMTMuNy03LjhzMTAuOCAyLjkgMTMuNyA3LjhsMTIuOCAyMS40IDQ4LjMtNzAuMmMzLTQuMyA3LjktNi45IDEzLjItNi45elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIxMDgsIFwicXVlc3Rpb24tY2lyY2xlXCJdLCBcImYwNTlcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2OS44IDE2NS4zYzcuOS0yMi4zIDI5LjEtMzcuMyA1Mi44LTM3LjNsNTguMyAwYzM0LjkgMCA2My4xIDI4LjMgNjMuMSA2My4xYzAgMjIuNi0xMi4xIDQzLjUtMzEuNyA1NC44TDI4MCAyNjQuNGMtLjIgMTMtMTAuOSAyMy42LTI0IDIzLjZjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTMuNWMwLTguNiA0LjYtMTYuNSAxMi4xLTIwLjhsNDQuMy0yNS40YzQuNy0yLjcgNy42LTcuNyA3LjYtMTMuMWMwLTguNC02LjgtMTUuMS0xNS4xLTE1LjFsLTU4LjMgMGMtMy40IDAtNi40IDIuMS03LjUgNS4zbC0uNCAxLjJjLTQuNCAxMi41LTE4LjIgMTktMzAuNiAxNC42cy0xOS0xOC4yLTE0LjYtMzAuNmwuNC0xLjJ6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYVF1ZXN0aW9uQ2lyY2xlID0gZmFDaXJjbGVRdWVzdGlvbjtcbmNvbnN0IGZhUGxhbmVEZXBhcnR1cmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtZGVwYXJ0dXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzQ3XSwgXCJmNWIwXCIsIFwiTTM4MSAxMTQuOUwxODYuMSA0MS44Yy0xNi43LTYuMi0zNS4yLTUuMy01MS4xIDIuN0w4OS4xIDY3LjRDNzggNzMgNzcuMiA4OC41IDg3LjYgOTUuMmwxNDYuOSA5NC41TDEzNiAyNDAgNzcuOCAyMTQuMWMtOC43LTMuOS0xOC44LTMuNy0yNy4zIC42TDE4LjMgMjMwLjhjLTkuMyA0LjctMTEuOCAxNi44LTUgMjQuN2w3My4xIDg1LjNjNi4xIDcuMSAxNSAxMS4yIDI0LjMgMTEuMmwxMzcuNyAwYzUgMCA5LjktMS4yIDE0LjMtMy40TDUzNS42IDIxMi4yYzQ2LjUtMjMuMyA4Mi41LTYzLjMgMTAwLjgtMTEyQzY0NS45IDc1IDYyNy4yIDQ4IDYwMC4yIDQ4bC01Ny40IDBjLTIwLjIgMC00MC4yIDQuOC01OC4yIDE0TDM4MSAxMTQuOXpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzaGFrZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMzUtMTA1LjhjLTEuMS0xMS40LTYuMy0yMi4zLTE1LjMtMzAuN2wtMTM0LjItMTIzLTIzLjQgMTguMi0yNi0yMC4zIDc3LjItNjAuMWM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTEyIDMxNi44IDUxMiAxMjhsLS43IDAtMy45LTIuNUw0MzQuOCA3OWMtMTUuMy05LjgtMzMuMi0xNS01MS40LTE1Yy0yMS44IDAtNDMgNy41LTYwIDIxLjJsLTg5LjcgNzIuNi0yNS44LTIwLjMgODEuOC02Ni4yYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTM1LjUgMjMuN0wzOC44IDUuMXpNOTYgMTcxLjZMNDAuNiAxMjggMCAxMjggMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE4MC40ek00MTMuNiA0MjEuOUwxMjggMTk2LjkgMTI4IDM1MmwyOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNnpNNDggMzIwYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNNTQ0IDEyOGwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjI0LTk2IDB6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhQm9va0Jvb2ttYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stYm9va21hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwYmJcIiwgXCJNMCA5NkMwIDQzIDQzIDAgOTYgMGw5NiAwIDAgMTkwLjdjMCAxMy40IDE1LjUgMjAuOSAyNiAxMi41TDI3MiAxNjBsNTQgNDMuMmMxMC41IDguNCAyNiAuOSAyNi0xMi41TDM1MiAwbDMyIDAgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2ek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NEw5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ29kZUJyYW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWJyYW5jaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEyNlwiLCBcIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgODcuOGMxOC44LTEwLjkgNDAuNy0xNy4xIDY0LTE3LjFsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTYuN0MzMDcuNyAxNDEgMjg4IDExMi44IDI4OCA4MGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCA2LjdjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTk2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNi43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjNjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTYuNyAwLTE5OC43QzE5LjcgMTQxIDAgMTEyLjggMCA4MEMwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjMyIDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNODAgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYUhhdENvd2JveSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXQtY293Ym95JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmOGMwXCIsIFwiTTMyMCA2NGMxNC40IDAgMjIuMy03IDMwLjgtMTQuNEMzNjAuNCA0MS4xIDM3MC43IDMyIDM5MiAzMmM0OS4zIDAgODQuNCAxNTIuMiA5Ny45IDIyMS45QzQ0Ny44IDI3Mi4xIDM5MC45IDI4OCAzMjAgMjg4cy0xMjcuOC0xNS45LTE2OS45LTM0LjFDMTYzLjYgMTg0LjIgMTk4LjcgMzIgMjQ4IDMyYzIxLjMgMCAzMS42IDkuMSA0MS4yIDE3LjZDMjk3LjcgNTcgMzA1LjYgNjQgMzIwIDY0ek0xMTEuMSAyNzAuN2M0Ny4yIDI0LjUgMTE3LjUgNDkuMyAyMDkgNDkuM3MxNjEuOC0yNC44IDIwOC45LTQ5LjNjMjQuOC0xMi45IDQ5LjgtMjguMyA3MC4xLTQ3LjdjNy45LTcuOSAyMC4yLTkuMiAyOS42LTMuM2M5LjUgNS45IDEzLjUgMTcuOSA5LjkgMjguNWMtMTMuNSAzNy43LTM4LjQgNzIuMy02Ni4xIDEwMC42QzUyMy43IDM5OC45IDQ0My42IDQ0OCAzMjAgNDQ4cy0yMDMuNi00OS4xLTI1Mi41LTk5LjJDMzkuOCAzMjAuNCAxNC45IDI4NS44IDEuNCAyNDguMWMtMy42LTEwLjYgLjQtMjIuNiA5LjktMjguNWM5LjUtNS45IDIxLjctNC41IDI5LjYgMy4zYzIwLjQgMTkuNCA0NS4zIDM0LjggNzAuMSA0Ny43elwiXVxufTtcbmNvbnN0IGZhQnJpZGdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjOFwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDAgMCAwIDY0TDAgMTYwIDAgMjg4YzUzIDAgOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2bDAtMTI4LTcyIDAgMC02NCA0MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00NTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMzI4IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTIwMCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwelwiXVxufTtcbmNvbnN0IGZhUGhvbmVGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob25lLWZsaXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzODEsIFwicGhvbmUtYWx0XCJdLCBcImY4NzlcIiwgXCJNMzQ3LjEgMjQuNmM3LjctMTguNiAyOC0yOC41IDQ3LjQtMjMuMmw4OCAyNEM0OTkuOSAzMC4yIDUxMiA0NiA1MTIgNjRjMCAyNDcuNC0yMDAuNiA0NDgtNDQ4IDQ0OGMtMTggMC0zMy44LTEyLjEtMzguNi0yOS41bC0yNC04OGMtNS4zLTE5LjQgNC42LTM5LjcgMjMuMi00Ny40bDk2LTQwYzE2LjMtNi44IDM1LjItMi4xIDQ2LjMgMTEuNkwyMDcuMyAzNjhjNzAuNC0zMy4zIDEyNy40LTkwLjMgMTYwLjctMTYwLjdMMzE4LjcgMTY3Yy0xMy43LTExLjItMTguNC0zMC0xMS42LTQ2LjNsNDAtOTZ6XCJdXG59O1xuY29uc3QgZmFQaG9uZUFsdCA9IGZhUGhvbmVGbGlwO1xuY29uc3QgZmFUcnVja0Zyb250ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZyb250JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMmI3XCIsIFwiTTAgODBDMCAzNS44IDM1LjggMCA4MCAwTDQzMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjg4YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0yNTYgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDgwem0xMjkuOSA3Mi4yTDExMiAyMjRsMjg4IDAtMTcuOS03MS44QzM3OC41IDEzOCAzNjUuNyAxMjggMzUxIDEyOGwtMTkwIDBjLTE0LjcgMC0yNy41IDEwLTMxIDI0LjJ6TTEyOCAzMjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUNhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMDhdLCBcImY2YmVcIiwgXCJNMzIwIDE5MmwxNy4xIDBjMjIuMSAzOC4zIDYzLjUgNjQgMTEwLjkgNjRjMTEgMCAyMS44LTEuNCAzMi00bDAgNCAwIDMyIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjhMMjgwIDQ0OGw1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyMy41YzAtMTYuMS0xMi0yOS44LTI4LTMxLjhsLTcuOS0xYy0xNy41LTIuMi0zMC0xOC4yLTI3LjgtMzUuN3MxOC4yLTMwIDM1LjctMjcuOGw3LjkgMWM0OCA2IDg0LjEgNDYuOCA4NC4xIDk1LjNsMCA4NS4zYzM0LjQtNTEuNyA5My4yLTg1LjggMTYwLTg1Ljh6bTE2MCAyNi41czAgMCAwIDBjLTEwIDMuNS0yMC44IDUuNS0zMiA1LjVjLTI4LjQgMC01NC0xMi40LTcxLjYtMzJjMCAwIDAgMCAwIDBjLTMuNy00LjEtNy04LjUtOS45LTEzLjJDMzU3LjMgMTY0IDM1MiAxNDYuNiAzNTIgMTI4YzAgMCAwIDAgMCAwbDAtOTYgMC0yMCAwLTEuM0MzNTIgNC44IDM1Ni43IC4xIDM2Mi42IDBsLjIgMGMzLjMgMCA2LjQgMS42IDguNCA0LjJjMCAwIDAgMCAwIC4xTDM4NCAyMS4zbDI3LjIgMzYuM0w0MTYgNjRsNjQgMCA0LjgtNi40TDUxMiAyMS4zIDUyNC44IDQuM2MwIDAgMCAwIDAtLjFjMi0yLjYgNS4xLTQuMiA4LjQtNC4ybC4yIDBDNTM5LjMgLjEgNTQ0IDQuOCA1NDQgMTAuN2wwIDEuMyAwIDIwIDAgOTZjMCAxNy4zLTQuNiAzMy42LTEyLjYgNDcuNmMtMTEuMyAxOS44LTI5LjYgMzUuMi01MS40IDQyLjl6TTQzMiAxMjhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhYlwiLCBcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwTDIyNCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDIwOC00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNi4xIDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw4MCAwIDgwIDBjOC4yIDAgMTYuMy0uNiAyNC4yLTEuOGMtMjIuMi0xNi4yLTQwLjQtMzcuNS01My02Mi4yTDMyMCA0NDhsMC04MCAwLTEyOCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMC45IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFUcnVja0ZpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZpZWxkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNThkXCIsIFwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDIyNCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw1MS44IDBjMjUuMyAwIDQ4LjIgMTQuOSA1OC41IDM4bDUyLjggMTE4LjhjLjUgMS4xIC45IDIuMSAxLjMgMy4ybDQuMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTEyOCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0zMnpNMzg0IDIyNGw4NS45IDAtNDIuNy05NkwzODQgMTI4bDAgOTZ6TTE2MCA0MzJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYVJvdXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGQ3XCIsIFwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NWMtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOGM2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOEM1OS44IDQ3MyAwIDQwMi41IDAgMzUyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOWMtMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUNsaXBib2FyZFF1ZXN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC1xdWVzdGlvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRlM1wiLCBcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zNy41IDBDMjY5LjQgMjYuNyAyMzMuOCAwIDE5MiAwem0wIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTA1LjggMjI5LjNjNy45LTIyLjMgMjkuMS0zNy4zIDUyLjgtMzcuM2w1OC4zIDBjMzQuOSAwIDYzLjEgMjguMyA2My4xIDYzLjFjMCAyMi42LTEyLjEgNDMuNS0zMS43IDU0LjhMMjE2IDMyOC40Yy0uMiAxMy0xMC45IDIzLjYtMjQgMjMuNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMy41YzAtOC42IDQuNi0xNi41IDEyLjEtMjAuOGw0NC4zLTI1LjRjNC43LTIuNyA3LjYtNy43IDcuNi0xMy4xYzAtOC40LTYuOC0xNS4xLTE1LjEtMTUuMWwtNTguMyAwYy0zLjQgMC02LjQgMi4xLTcuNSA1LjNsLS40IDEuMmMtNC40IDEyLjUtMTguMiAxOS0zMC42IDE0LjZzLTE5LTE4LjItMTQuNi0zMC42bC40LTEuMnpNMTYwIDQxNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhUGFub3JhbWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFub3JhbWEnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUyMDlcIiwgXCJNNDUuNiAzMkMyMC40IDMyIDAgNTIuNCAwIDc3LjZMMCA0MzQuNEMwIDQ1OS42IDIwLjQgNDgwIDQ1LjYgNDgwYzUuMSAwIDEwLS44IDE0LjctMi40Qzc0LjYgNDcyLjggMTc3LjYgNDQwIDMyMCA0NDBzMjQ1LjQgMzIuOCAyNTkuNiAzNy42YzQuNyAxLjYgOS43IDIuNCAxNC43IDIuNGMyNS4yIDAgNDUuNi0yMC40IDQ1LjYtNDUuNmwwLTM1Ni43QzY0MCA1Mi40IDYxOS42IDMyIDU5NC40IDMyYy01IDAtMTAgLjgtMTQuNyAyLjRDNTY1LjQgMzkuMiA0NjIuNCA3MiAzMjAgNzJTNzQuNiAzOS4yIDYwLjQgMzQuNEM1NS42IDMyLjggNTAuNyAzMiA0NS42IDMyek05NiAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjcyIDBjNy45IDAgMTUuNCAzLjkgMTkuOCAxMC41TDUxMi4zIDM1M2M1LjQgOCA1LjYgMTguNCAuNCAyNi41cy0xNC43IDEyLjMtMjQuMiAxMC43QzQ0Mi43IDM4Mi40IDM4NS4yIDM3NiAzMjAgMzc2Yy02NS42IDAtMTIzLjQgNi41LTE2OS4zIDE0LjRjLTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxOTcuMyAyNjVjNC42LTUuNyAxMS40LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNi40IDMzLjEgODctMTI3LjZjNC41LTYuNiAxMS45LTEwLjUgMTkuOC0xMC41elwiXVxufTtcbmNvbnN0IGZhQ29tbWVudE1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Y1XCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNMjI0IDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYVRlZXRoT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZWV0aC1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNjJmXCIsIFwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6TTIyNCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em04MCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTZ6TTk2IDEyOGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0zMzYgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek05NiA0ODBsMzg0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDUzIDQzIDk2IDk2IDk2em0wLTY0Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHptODAtNDhsMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDh6bTE3NiA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDh6bTgwLTQ4bDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGVkXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVRhZ3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFncycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyY1wiLCBcIk0zNDUgMzkuMUw0NzIuOCAxNjguNGM1Mi40IDUzIDUyLjQgMTM4LjIgMCAxOTEuMkwzNjAuOCA0NzIuOWMtOS4zIDkuNC0yNC41IDkuNS0zMy45IC4ycy05LjUtMjQuNS0uMi0zMy45TDQzOC42IDMyNS45YzMzLjktMzQuMyAzMy45LTg5LjQgMC0xMjMuN0wzMTAuOSA3Mi45Yy05LjMtOS40LTkuMi0yNC42IC4yLTMzLjlzMjQuNi05LjIgMzMuOSAuMnpNMCAyMjkuNUwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDE0OS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMTY4IDE2OGMyNSAyNSAyNSA2NS41IDAgOTAuNUwyNzcuMyA0NDIuN2MtMjUgMjUtNjUuNSAyNS05MC41IDBsLTE2OC0xNjhDNi43IDI2Mi43IDAgMjQ2LjUgMCAyMjkuNXpNMTQ0IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbmNvbnN0IGZhV2luZUdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmUtZ2xhc3MnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc4NjNdLCBcImY0ZTNcIiwgXCJNMzIuMSAyOS4zQzMzLjUgMTIuOCA0Ny40IDAgNjQgMEwyNTYgMGMxNi42IDAgMzAuNSAxMi44IDMxLjkgMjkuM2wxNCAxNjguNGM2IDcyLTQyLjUgMTM1LjItMTA5LjkgMTUwLjZsMCA5OS42IDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDAtODAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwIDAtOTkuNkM2MC42IDMzMyAxMi4xIDI2OS44IDE4LjEgMTk3LjhsMTQtMTY4LjR6bTU2IDk4LjdsMTQzLjggMC01LjMtNjRMOTMuNCA2NGwtNS4zIDY0elwiXVxufTtcbmNvbnN0IGZhRm9yd2FyZEZhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZC1mYXN0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTE5NywgXCJmYXN0LWZvcndhcmRcIl0sIFwiZjA1MFwiLCBcIk0xOC40IDQ0NWMxMS4yIDUuMyAyNC41IDMuNiAzNC4xLTQuNEwyMjQgMjk3LjcgMjI0IDQxNmMwIDEyLjQgNy4yIDIzLjcgMTguNCAyOXMyNC41IDMuNiAzNC4xLTQuNEw0NDggMjk3LjcgNDQ4IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE4LjNMMjc2LjUgNzEuNGMtOS41LTcuOS0yMi44LTkuNy0zNC4xLTQuNFMyMjQgODMuNiAyMjQgOTZsMCAxMTguM0w1Mi41IDcxLjRjLTkuNS03LjktMjIuOC05LjctMzQuMS00LjRTMCA4My42IDAgOTZMMCA0MTZjMCAxMi40IDcuMiAyMy43IDE4LjQgMjl6XCJdXG59O1xuY29uc3QgZmFGYXN0Rm9yd2FyZCA9IGZhRm9yd2FyZEZhc3Q7XG5jb25zdCBmYUZhY2VNZWhCbGFuayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLW1laC1ibGFuaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2NiwgXCJtZWgtYmxhbmtcIl0sIFwiZjVhNFwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTIwOC40LTQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFNZWhCbGFuayA9IGZhRmFjZU1laEJsYW5rO1xuY29uc3QgZmFTcXVhcmVQYXJraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wYXJraW5nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3MzU5LCBcInBhcmtpbmdcIl0sIFwiZjU0MFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xOTIgMjU2bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDAgMCA2NHptNDggNjRsLTQ4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0IDAtMTIwYzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6XCJdXG59O1xuY29uc3QgZmFQYXJraW5nID0gZmFTcXVhcmVQYXJraW5nO1xuY29uc3QgZmFIb3VzZVNpZ25hbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1zaWduYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwMTJcIiwgXCJNMzU3LjcgOC41Yy0xMi4zLTExLjMtMzEuMi0xMS4zLTQzLjQgMGwtMjA4IDE5MmMtOS40IDguNi0xMi43IDIyLTguNSAzNGM4Ny4xIDI1LjMgMTU1LjYgOTQuMiAxODAuMyAxODEuNkw0NjQgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTEyIDMyIDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC4xLTM1LjJsLTIwOC0xOTJ6TTI4OCAyMDhjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NHpNMjQgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzEwMS42IDAgMTg0IDgyLjQgMTg0IDE4NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzJ6bTggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMCAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRjNDguNiAwIDg4IDM5LjQgODggODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6XCJdXG59O1xuY29uc3QgZmFCYXJzUHJvZ3Jlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFycy1wcm9ncmVzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGFza3MtYWx0XCJdLCBcImY4MjhcIiwgXCJNNDQ4IDE2MGwtMTI4IDAgMC0zMiAxMjggMCAwIDMyek00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTQ0OCAzNTJsMCAzMi0yNTYgMCAwLTMyIDI1NiAwek00OCAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyODh6XCJdXG59O1xuY29uc3QgZmFUYXNrc0FsdCA9IGZhQmFyc1Byb2dyZXNzO1xuY29uc3QgZmFGYXVjZXREcmlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhdWNldC1kcmlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Njg4XSwgXCJlMDA2XCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTIgOTYtMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjU2IDg0bC0zMS0zLjktMS0uMS0xIC4xTDE5MiA4NCA5NiA5NkM3OC4zIDk2IDY0IDgxLjcgNjQgNjRzMTQuMy0zMiAzMi0zMmw5NiAxMiAwLTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNDMuOCAzMi00IDMyIDQgMCA0My44IDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNEwzMjAgMTkybDMyIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMycy0xNC4zLTMyLTMyLTMybC0zNi4xIDBjLTIwLjIgMjktNTMuOSA0OC05MS45IDQ4cy03MS43LTE5LTkxLjktNDhMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek00MzYuOCA0MjMuNGMxLjktNC41IDYuMy03LjQgMTEuMi03LjRzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMWwxOC4yLTQyLjR6XCJdXG59O1xuY29uc3QgZmFDYXJ0RmxhdGJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LWZsYXRiZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImRvbGx5LWZsYXRiZWRcIl0sIFwiZjQ3NFwiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjg4YzAgNDQuMiAzNS44IDgwIDgwIDgwbDE4LjcgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMTk3LjUgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00NjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjg4QzEyOCAzNS44IDkyLjIgMCA0OCAwTDMyIDB6TTE5MiA4MGwwIDE5MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtOTYgMCAwIDE0NGMwIDUuOS0zLjIgMTEuMy04LjUgMTQuMXMtMTEuNSAyLjUtMTYuNC0uOEw0MDAgMTYzLjJsLTM5LjEgMjYuMWMtNC45IDMuMy0xMS4yIDMuNi0xNi40IC44cy04LjUtOC4yLTguNS0xNC4xbDAtMTQ0LTk2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4elwiXVxufTtcbmNvbnN0IGZhRG9sbHlGbGF0YmVkID0gZmFDYXJ0RmxhdGJlZDtcbmNvbnN0IGZhQmFuU21va2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW4tc21va2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY4NSwgXCJzbW9raW5nLWJhblwiXSwgXCJmNTRkXCIsIFwiTTk5LjUgMTQ0LjhMMTc4LjcgMjI0bDk2IDk2IDkyLjUgOTIuNUMzMzUuOSA0MzQuOSAyOTcuNSA0NDggMjU2IDQ0OEMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZjMC00MS41IDEzLjEtNzkuOSAzNS41LTExMS4yek0zMzMuMyAyODhsLTMyLTMyIDgyLjcgMCAwIDMyLTUwLjcgMHptMzIgMzJsMzQuNyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTMwLjcgMEwxNDQuOCA5OS41QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyYzAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMkwzNjUuMyAzMjB6TTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yNzIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI5LjUgMzIwbC05Ni05NkwxMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMTE3LjUgMHpcIl1cbn07XG5jb25zdCBmYVNtb2tpbmdCYW4gPSBmYUJhblNtb2tpbmc7XG5jb25zdCBmYVRlcm1pbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rlcm1pbmFsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTIwXCIsIFwiTTkuNCA4Ni42Qy0zLjEgNzQuMS0zLjEgNTMuOSA5LjQgNDEuNHMzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE3OC43IDI1NiA5LjQgODYuNnpNMjU2IDQxNmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVCdXR0b24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLWJ1dHRvbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjEwYlwiLCBcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VNZWRpY2FsRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1tZWRpY2FsLWZsYWcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTRcIiwgXCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTEyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTI4YzAgOC44LTcuMiAxNi0xNiAxNmwtMTEyIDAgMCAzMjAtNjQgMCAwLTMyMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjc2LjggMzkuN0w0MTYgMTU5bDAgMzUzIDEgMC0uMiAwTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTItMzIgMGMtMTMuNCAwLTI1LjQtOC4zLTMwLTIwLjlzLTEtMjYuNyA5LjItMzUuNGwyMjQtMTkyYzEyLTEwLjMgMjkuNy0xMC4zIDQxLjcgMHpNMjI0IDIwOGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYUJhc2tldFNob3BwaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2tldC1zaG9wcGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic2hvcHBpbmctYmFza2V0XCJdLCBcImYyOTFcIiwgXCJNMjUzLjMgMzUuMWM2LjEtMTEuOCAxLjUtMjYuMy0xMC4yLTMyLjRzLTI2LjMtMS41LTMyLjQgMTAuMkwxMTcuNiAxOTIgMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyTDgzLjkgNDYzLjVDOTEgNDkyIDExNi42IDUxMiAxNDYgNTEyTDQzMCA1MTJjMjkuNCAwIDU1LTIwIDYyLjEtNDguNUw1NDQgMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04NS42IDBMMzY1LjMgMTIuOUMzNTkuMiAxLjIgMzQ0LjctMy40IDMzMi45IDIuN3MtMTYuMyAyMC42LTEwLjIgMzIuNEw0MDQuMyAxOTJsLTIzMi42IDBMMjUzLjMgMzUuMXpNMTkyIDMwNGwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptOTYtMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVNob3BwaW5nQmFza2V0ID0gZmFCYXNrZXRTaG9wcGluZztcbmNvbnN0IGZhVGFwZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXBlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGRiXCIsIFwiTTM4MC44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwQzQ0OCAxMzIuMyAzNDcuNyAzMiAyMjQgMzJTMCAxMzIuMyAwIDI1NlMxMDAuMyA0ODAgMjI0IDQ4MGwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYzLjIgMHpNMjI0IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNjQgOTZhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwiXVxufTtcbmNvbnN0IGZhQnVzU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cy1zaW1wbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImJ1cy1hbHRcIl0sIFwiZjU1ZVwiLCBcIk0yMjQgMEMzNDguOCAwIDQ0OCAzNS4yIDQ0OCA4MGwwIDE2IDAgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA5NiAwIDgwQzAgMzUuMiA5OS4yIDAgMjI0IDB6TTY0IDEyOGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTgwIDQwMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTI4OCAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYUJ1c0FsdCA9IGZhQnVzU2ltcGxlO1xuY29uc3QgZmFFeWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXllJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MDY1XSwgXCJmMDZlXCIsIFwiTTI4OCAzMmMtODAuOCAwLTE0NS41IDM2LjgtMTkyLjYgODAuNkM0OC42IDE1NiAxNy4zIDIwOCAyLjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42QzE3LjMgMzA0IDQ4LjYgMzU2IDk1LjQgMzk5LjRDMTQyLjUgNDQzLjIgMjA3LjIgNDgwIDI4OCA0ODBzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjFjMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjZjLTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjFDNDMzLjUgNjguOCAzNjguOCAzMiAyODggMzJ6TTE0NCAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTY0YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy03LjEgMC0xMy45LTEuMi0yMC4zLTMuM2MtNS41LTEuOC0xMS45IDEuNi0xMS43IDcuNGMuMyA2LjkgMS4zIDEzLjggMy4yIDIwLjdjMTMuNyA1MS4yIDY2LjQgODEuNiAxMTcuNiA2Ny45czgxLjYtNjYuNCA2Ny45LTExNy42Yy0xMS4xLTQxLjUtNDcuOC02OS40LTg4LjYtNzEuMWMtNS44LS4yLTkuMiA2LjEtNy40IDExLjdjMi4xIDYuNCAzLjMgMTMuMiAzLjMgMjAuM3pcIl1cbn07XG5jb25zdCBmYUZhY2VTYWRDcnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zYWQtY3J5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTU3LCBcInNhZC1jcnlcIl0sIFwiZjViM1wiLCBcIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI4OGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE4OS44QzUxLjUgNDMzLjUgMCAzNTAuOCAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCA5NC44LTUxLjUgMTc3LjUtMTI4IDIyMS44TDM4NCAyODhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMDUuNHpNMTk1LjIgMjMzLjZjNS4zIDcuMSAxNS4zIDguNSAyMi40IDMuMnM4LjUtMTUuMyAzLjItMjIuNGMtMzAuNC00MC41LTkxLjItNDAuNS0xMjEuNiAwYy01LjMgNy4xLTMuOSAxNy4xIDMuMiAyMi40czE3LjEgMy45IDIyLjQtMy4yYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwem0xMjEuNiAwYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwYzUuMyA3LjEgMTUuMyA4LjUgMjIuNCAzLjJzOC41LTE1LjMgMy4yLTIyLjRjLTMwLjQtNDAuNS05MS4yLTQwLjUtMTIxLjYgMGMtNS4zIDcuMS0zLjkgMTcuMSAzLjIgMjIuNHMxNy4xIDMuOSAyMi40LTMuMnpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpcIl1cbn07XG5jb25zdCBmYVNhZENyeSA9IGZhRmFjZVNhZENyeTtcbmNvbnN0IGZhQXVkaW9EZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdWRpby1kZXNjcmlwdGlvbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI5ZVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMTMuNSAxNzMuM2w3MiAxNDRjNS45IDExLjkgMS4xIDI2LjMtMTAuNyAzMi4ycy0yNi4zIDEuMS0zMi4yLTEwLjdsLTkuNC0xOC45LTgyLjIgMC05LjQgMTguOWMtNS45IDExLjktMjAuMyAxNi43LTMyLjIgMTAuN3MtMTYuNy0yMC4zLTEwLjctMzIuMmw3Mi0xNDRjNC4xLTguMSAxMi40LTEzLjMgMjEuNS0xMy4zczE3LjQgNS4xIDIxLjUgMTMuM3ptLS40IDEwNi42TDE5MiAyMzcuN2wtMjEuMSA0Mi4yIDQyLjIgMHpNMzA0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NHptNDggMjRsMCA5NiAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTRjXCIsIFwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44YzAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBDNjQuOSA4My44IDY0IDg5LjggNjQgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMi45IDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45czE0LjEtMTIuNCAxNC4xLTIxLjlsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4elwiXVxufTtcbmNvbnN0IGZhRmlsZVNoaWVsZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXNoaWVsZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmMFwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMjQgMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMCAwIDQ3LTkyLjggMzcuMWMtMjEuMyA4LjUtMzUuMiAyOS4xLTM1LjIgNTJjMCA1Ni42IDE4LjkgMTQ4IDk0LjIgMjA4LjNjLTkgNC44LTE5LjMgNy42LTMwLjIgNy42TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMzg0IDY0bC0xMjggMEwyNTYgMCAzODQgMTI4em0zOS4xIDk3LjdjNS43LTIuMyAxMi4xLTIuMyAxNy44IDBsMTIwIDQ4QzU3MCAyNzcuNCA1NzYgMjg2LjIgNTc2IDI5NmMwIDYzLjMtMjUuOSAxNjguOC0xMzQuOCAyMTQuMmMtNS45IDIuNS0xMi42IDIuNS0xOC41IDBDMzEzLjkgNDY0LjggMjg4IDM1OS4zIDI4OCAyOTZjMC05LjggNi0xOC42IDE1LjEtMjIuM2wxMjAtNDh6TTUyNy40IDMxMkw0MzIgMjczLjhsMCAxODcuOGM2OC4yLTMzIDkxLjUtOTkgOTUuNC0xNDkuN3pcIl1cbn07XG5jb25zdCBmYVVzZXJTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA2XCIsIFwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMMzUzLjMgMjUxLjZDNDA3LjkgMjM3IDQ0OCAxODcuMiA0NDggMTI4QzQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBDMjUwLjIgMCAxOTMuNSA1NS44IDE5MiAxMjUuMkwzOC44IDUuMXpNMjY0LjMgMzA0LjNDMTcwLjUgMzA5LjQgOTYgMzg3LjIgOTYgNDgyLjNjMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzg4LjYgMGMzLjkgMCA3LjYtLjcgMTEtMi4xbC0yNjEtMjA1LjZ6XCJdXG59O1xuY29uc3QgZmFQZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Mzk0XSwgXCJmMzA0XCIsIFwiTTM2Mi43IDE5LjNMMzE0LjMgNjcuNyA0NDQuMyAxOTcuN2w0OC40LTQ4LjRjMjUtMjUgMjUtNjUuNSAwLTkwLjVMNDUzLjMgMTkuM2MtMjUtMjUtNjUuNS0yNS05MC41IDB6bS03MSA3MUw1OC42IDMyMy41Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODEuMkMtMS41IDQ4OS43IC44IDQ5OC44IDcgNTA1czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMNDIxLjcgMjIwLjMgMjkxLjcgOTAuM3pcIl1cbn07XG5jb25zdCBmYVRvd2VyT2JzZXJ2YXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG93ZXItb2JzZXJ2YXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1ODZcIiwgXCJNMjQxLjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOUM0MzkgMTM3LjUgNDI3LjcgMTQ0IDQxNiAxNDRsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNC45IDAgMzIgMTkyIDY4LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTUuNSAwYy0uNCAwLS44IDAtMS4xIDBsLTI1NC44IDBjLS40IDAtLjggMC0xLjEgMEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjguOSAwIDMyLTE5Mi00LjkgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04MGMtMTEuNyAwLTIzLTYuNS0yOC42LTE3LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTQuNSA0NDhMMjU2IDM5OS4yIDE5Ny41IDQ0OGwxMTcgMHpNMTk3LjggMjU2bC00LjcgMjguM0wyNTYgMzM2LjhsNjIuOS01Mi41TDMxNC4yIDI1NmwtMTE2LjUgMHptLTEzLjkgODMuMmwtMTEuMiA2N0wyMTguNSAzNjhsLTM0LjYtMjguOHpNMjkzLjUgMzY4bDQ1LjggMzguMS0xMS4yLTY3TDI5My41IDM2OHpNMTc2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYwIDB6XCJdXG59O1xuY29uc3QgZmFGaWxlQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvZGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzlcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODgtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDIyNCAwIDY0IDB6TTI1NiAwbDAgMTI4IDEyOCAwTDI1NiAwek0xNTMgMjg5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcxIDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0yNjUgMjU1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhU2lnbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ25hbCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI0NiwgXCJzaWduYWwtNVwiLCBcInNpZ25hbC1wZXJmZWN0XCJdLCBcImYwMTJcIiwgXCJNNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ0OCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDIyNGwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek0xOTIgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiA0MTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduYWw1ID0gZmFTaWduYWw7XG5jb25zdCBmYVNpZ25hbFBlcmZlY3QgPSBmYVNpZ25hbDtcbmNvbnN0IGZhQnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODY1M10sIFwiZjIwN1wiLCBcIk0yODggMEM0MjIuNCAwIDUxMiAzNS4yIDUxMiA4MGwwIDE2IDAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyYzAgMCAwIDAgMCAwbDAtMzJzMCAwIDAgMGwwLTE2QzY0IDM1LjIgMTUzLjYgMCAyODggMHpNMTI4IDE2MGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDExMiAwIDAtMTYwLTExMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA0IDI4OGwxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwIDE2MHpNMTQ0IDQwMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTI4OCAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzg0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwyMDggNjRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGVhcnRDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MDFcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDQ1NC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0MzIgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0MDkuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQzMiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaGltbmV5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXknLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MzQ5OSwgXCJob21lLWxnXCJdLCBcImUzYWZcIiwgXCJNNTQzLjggMjg3LjZjMTcgMCAzMi0xNCAzMi0zMi4xYzEtOS0zLTE3LTExLTI0TDUxMiAxODVsMC0xMjFjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzYuN0wzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQgMCAyNGMwIDIyLjEgMTcuOSA0MCA0MCA0MGwyNCAwIDMyLjUgMGMxLjQgMCAyLjggMCA0LjItLjFjMS4xIC4xIDIuMiAuMSAzLjMgLjFsMTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTE2LjJjLjMtMi42IC41LTUuMyAuNS04LjFsLS43LTE2MC4yIDMyIDB6XCJdXG59O1xuY29uc3QgZmFIb21lTGcgPSBmYUhvdXNlQ2hpbW5leTtcbmNvbnN0IGZhV2luZG93TWF4aW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDcwXSwgXCJmMmQwXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUZhY2VGcm93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWZyb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTc4NSwgXCJmcm93blwiXSwgXCJmMTE5XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTkuMyAzODguN2MtMi42IDguNC0xMS42IDEzLjItMjAgMTAuNXMtMTMuMi0xMS42LTEwLjUtMjBDMTQ1LjIgMzI2LjEgMTk2LjMgMjg4IDI1NiAyODhzMTEwLjggMzguMSAxMjcuMyA5MS4zYzIuNiA4LjQtMi4xIDE3LjQtMTAuNSAyMHMtMTcuNC0yLjEtMjAtMTAuNUMzNDAuNSAzNDkuNCAzMDIuMSAzMjAgMjU2IDMyMHMtODQuNSAyOS40LTk2LjcgNjguN3pNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFGcm93biA9IGZhRmFjZUZyb3duO1xuY29uc3QgZmFQcmVzY3JpcHRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJlc2NyaXB0aW9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNWIxXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMTkybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDUwLjcgMCAxMjggMTI4TDEzNy40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjdsLTg1LjgtODUuOEMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMkMyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBMNjQgMTYwbDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJdXG59O1xuY29uc3QgZmFTaG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInN0b3JlLWFsdFwiXSwgXCJmNTRmXCIsIFwiTTM2LjggMTkybDU2Ni4zIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjhjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEwxMjEuNyAwYy0xNiAwLTMxIDgtMzkuOSAyMS40TDYuMiAxMzQuN2MtNCA2LjEtNi4yIDEzLjItNi4yIDIwLjRDMCAxNzUuNSAxNi41IDE5MiAzNi44IDE5MnpNNjQgMjI0bDAgMTYwIDAgODBjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC04MCAwLTE2MC02NCAwIDAgMTYwLTE5MiAwIDAtMTYwLTY0IDB6bTQ0OCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTYtNjQgMHpcIl1cbn07XG5jb25zdCBmYVN0b3JlQWx0ID0gZmFTaG9wO1xuY29uc3QgZmFGbG9wcHlEaXNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zsb3BweS1kaXNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MTkwLCAxMjg0MjYsIFwic2F2ZVwiXSwgXCJmMGM3XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVNhdmUgPSBmYUZsb3BweURpc2s7XG5jb25zdCBmYVZpaGFyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWhhcmEnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YTdcIiwgXCJNMjgxIDIyTDMwNS44IDQuN2MxLjMtLjkgMi43LTEuOCA0LjEtMi40QzMxMy4xIC43IDMxNi42IDAgMzIwIDBzNi45IC43IDEwLjEgMi4yYzEuNCAuNyAyLjggMS41IDQuMSAyLjRMMzU5IDIyQzM5MyA0NS44IDQzMC44IDYzLjUgNDcwLjggNzQuNGwyMyA2LjNjMS44IC41IDMuNiAxLjEgNS4yIDJjMy4yIDEuNyA1LjkgNCA4LjEgNi44YzMuOCA0LjkgNS42IDExLjMgNC43IDE3LjhjLS40IDIuOC0xLjIgNS40LTIuNSA3LjhjLTEuNyAzLjItNCA1LjktNi44IDguMWMtNC4zIDMuMi05LjYgNS4xLTE1LjEgNC45bC03LjUgMCAwIDU2LjEgNi40IDUuMSA1LjIgNC4xYzIxLjEgMTYuNyA0NSAyOS42IDcwLjUgMzguMWwyOC45IDkuNmMxLjYgLjUgMy4yIDEuMiA0LjYgMmMzLjEgMS43IDUuOCA0LjEgNy44IDYuOXMzLjUgNi4xIDQuMSA5LjZjLjUgMi43IC42IDUuNSAuMSA4LjNzLTEuNCA1LjQtMi43IDcuOGMtMS43IDMuMS00LjEgNS44LTYuOSA3LjhzLTYuMSAzLjUtOS42IDQuMWMtMS42IC4zLTMuMyAuNC01IC40TDU0NCAyODhsMCA2NS45YzIwLjUgMjIuOCA0Ny40IDM5LjIgNzcuNCA0Ni43QzYzMiA0MDMgNjQwIDQxMi42IDY0MCA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRjMC0xMS40IDgtMjEgMTguNi0yMy40YzMwLTcuNiA1Ni45LTIzLjkgNzcuNC00Ni43TDk2IDI4OGwtMzkuNCAwYy0xLjcgMC0zLjQtLjEtNS0uNGMtMy41LS43LTYuOC0yLjEtOS42LTQuMXMtNS4yLTQuNy03LTcuOGMtMS4zLTIuNC0yLjMtNS0yLjctNy44cy0uNC01LjYgLjEtOC4zYy43LTMuNSAyLjEtNi44IDQuMS05LjZzNC43LTUuMiA3LjgtNi45YzEuNC0uOCAzLTEuNSA0LjYtMmwyOC45LTkuNmMyNS41LTguNSA0OS40LTIxLjQgNzAuNS0zOC4xbDUuMi00LjEgNi40LTUuMSAwLTguMSAwLTQ4LTcuNSAwYy01LjUgLjEtMTAuOC0xLjctMTUuMS00LjljLTIuOC0yLjEtNS4xLTQuOC02LjgtOC4xYy0xLjItMi40LTIuMS01LTIuNS03LjhjLS45LTYuNSAuOS0xMi44IDQuNy0xNy44YzIuMS0yLjggNC44LTUuMSA4LjEtNi44YzEuNi0uOCAzLjQtMS41IDUuMi0ybDIzLTYuM0MyMDkuMiA2My41IDI0NyA0NS44IDI4MSAyMnpNNDE2IDEyOGwtOTYgMC05NiAwIDAgNjQgNzIgMCA0OCAwIDcyIDAgMC02NHpNMTYwIDI4OGwwIDY0IDEzNiAwIDI0IDAgMjQgMCAxMzYgMCAwLTY0LTEzNiAwLTI0IDBzMCAwIDAgMGwtMjQgMC0xMzYgMHpcIl1cbn07XG5jb25zdCBmYVNjYWxlVW5iYWxhbmNlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2FsZS11bmJhbGFuY2VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJiYWxhbmNlLXNjYWxlLWxlZnRcIl0sIFwiZjUxNVwiLCBcIk01MjIuMSA2Mi40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVTNTE4LjYtMy45IDUwMS45IDEuNmwtMTEzIDM3LjdDMzc1IDE1LjggMzQ5LjMgMCAzMjAgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCAzIC4yIDUuOSAuNSA4LjhMMTE3LjkgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMkwyODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzOS42IDI4OEw1MTIgMTYzLjggNTg0LjQgMjg4bC0xNDQuOSAwek01MTIgMzg0YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzNi4xIDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkyLjcgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjFDMzk2LjggMzUwIDQ0OS4xIDM4NCA1MTIgMzg0ek0xMjkuMiAyOTEuOEwyMDEuNiA0MTYgNTYuNyA0MTZsNzIuNC0xMjQuMnpNMy4yIDQzMy4xQzE0IDQ3OCA2Ni4zIDUxMiAxMjkuMiA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTMuMiAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDkuOSA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXpcIl1cbn07XG5jb25zdCBmYUJhbGFuY2VTY2FsZUxlZnQgPSBmYVNjYWxlVW5iYWxhbmNlZDtcbmNvbnN0IGZhU29ydFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtdXAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInNvcnQtYXNjXCJdLCBcImYwZGVcIiwgXCJNMTgyLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMjU2IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTI4LTEyOHpcIl1cbn07XG5jb25zdCBmYVNvcnRBc2MgPSBmYVNvcnRVcDtcbmNvbnN0IGZhQ29tbWVudERvdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTcyLCA2MjA3NSwgXCJjb21tZW50aW5nXCJdLCBcImY0YWRcIiwgXCJNMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuM2MwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45ek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbmNvbnN0IGZhQ29tbWVudGluZyA9IGZhQ29tbWVudERvdHM7XG5jb25zdCBmYVBsYW50V2lsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFudC13aWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNWFhXCIsIFwiTTI4OCAxMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMWMwIDI3LjkgMjUuMyA3NC44IDY2IDExMS42YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMWwwLTEzQzQ2NCA1My43IDQxMC4zIDAgMzQ0IDBTMjI0IDUzLjcgMjI0IDEyMGwwIDIxLjhDMjA3LjMgMTMzIDE4OC4yIDEyOCAxNjggMTI4Yy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMUMwIDM1OSAyNS4zIDQwNS45IDY2IDQ0Mi43YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMWwwLTEzYzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAzMiAwIDIwMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjAwIDAtMzIgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFEaWFtb25kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYW1vbmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODMwXSwgXCJmMjE5XCIsIFwiTTI4NC4zIDExLjdjLTE1LjYtMTUuNi00MC45LTE1LjYtNTYuNiAwbC0yMTYgMjE2Yy0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNmwyMTYgMjE2YzE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwbDIxNi0yMTZjMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZsLTIxNi0yMTZ6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpblNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3F1aW50JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE4LCBcImdyaW4tc3F1aW50XCJdLCBcImY1ODVcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXpNMTMzLjUgMTQ2LjdsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNTcuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIl1cbn07XG5jb25zdCBmYUdyaW5TcXVpbnQgPSBmYUZhY2VHcmluU3F1aW50O1xuY29uc3QgZmFIYW5kSG9sZGluZ0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctZG9sbGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYW5kLWhvbGRpbmctdXNkXCJdLCBcImY0YzBcIiwgXCJNMzEyIDI0bDAgMTAuNWM2LjQgMS4yIDEyLjYgMi43IDE4LjIgNC4yYzEyLjggMy40IDIwLjQgMTYuNiAxNyAyOS40cy0xNi42IDIwLjQtMjkuNCAxN2MtMTAuOS0yLjktMjEuMS00LjktMzAuMi01Yy03LjMtLjEtMTQuNyAxLjctMTkuNCA0LjRjLTIuMSAxLjMtMy4xIDIuNC0zLjUgM2MtLjMgLjUtLjcgMS4yLS43IDIuOGMwIC4zIDAgLjUgMCAuNmMuMiAuMiAuOSAxLjIgMy4zIDIuNmM1LjggMy41IDE0LjQgNi4yIDI3LjQgMTAuMWwuOSAuM3MwIDAgMCAwYzExLjEgMy4zIDI1LjkgNy44IDM3LjkgMTUuM2MxMy43IDguNiAyNi4xIDIyLjkgMjYuNCA0NC45Yy4zIDIyLjUtMTEuNCAzOC45LTI2LjcgNDguNWMtNi43IDQuMS0xMy45IDctMjEuMyA4LjhsMCAxMC42YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEuNGMtOS41LTIuMy0xOC4yLTUuMy0yNS42LTcuOGMtMi4xLS43LTQuMS0xLjQtNi0yYy0xMi42LTQuMi0xOS40LTE3LjgtMTUuMi0zMC40czE3LjgtMTkuNCAzMC40LTE1LjJjMi42IC45IDUgMS43IDcuMyAyLjVjMTMuNiA0LjYgMjMuNCA3LjkgMzMuOSA4LjNjOCAuMyAxNS4xLTEuNiAxOS4yLTQuMWMxLjktMS4yIDIuOC0yLjIgMy4yLTIuOWMuNC0uNiAuOS0xLjggLjgtNC4xbDAtLjJjMC0xIDAtMi4xLTQtNC42Yy01LjctMy42LTE0LjMtNi40LTI3LjEtMTAuM2wtMS45LS42Yy0xMC44LTMuMi0yNS03LjUtMzYuNC0xNC40Yy0xMy41LTguMS0yNi41LTIyLTI2LjYtNDQuMWMtLjEtMjIuOSAxMi45LTM4LjYgMjcuNy00Ny40YzYuNC0zLjggMTMuMy02LjQgMjAuMi04LjJMMjY0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTU2OC4yIDMzNi4zYzEzLjEgMTcuOCA5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMTkyIDUxMiAzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzYuOCAwIDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhsNzguMyAwIDE2IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyMC42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM4NGMwIDAgMCAwIDAgMGwtLjkgMGMuMyAwIC42IDAgLjkgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRIb2xkaW5nVXNkID0gZmFIYW5kSG9sZGluZ0RvbGxhcjtcbmNvbnN0IGZhQmFjdGVyaXVtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhY3Rlcml1bScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA1YVwiLCBcIk00MjMuMSAzMC42YzMuNi0xMi43LTMuNy0yNi0xNi41LTI5LjdzLTI2IDMuNy0yOS43IDE2LjVsLTQuMiAxNC43Yy05LjgtLjQtMTkuOSAuNS0yOS45IDIuOGMtMTIuMSAyLjgtMjMuNyA1LjktMzQuOSA5LjRsLTUuOS0xMy43Yy01LjItMTIuMi0xOS4zLTE3LjgtMzEuNS0xMi42cy0xNy44IDE5LjMtMTIuNiAzMS41bDQuOSAxMS4zYy0yMiA5LjQtNDIgMjAuMS02MC4yIDMxLjhMMTk2IDgyLjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zbDcuOCAxMS42Yy0xOCAxNS0zMy43IDMwLjgtNDcuMyA0Ny4xTDEwMyAxNTcuM2MtMTAuNC04LjMtMjUuNS02LjYtMzMuNyAzLjdzLTYuNiAyNS41IDMuNyAzMy43bDE1IDEyYy0yLjEgMy4yLTQuMSA2LjUtNiA5LjdjLTkuNCAxNS43LTE3IDMxLTIzLjIgNDUuM2wtOS45LTMuOWMtMTIuMy00LjktMjYuMyAxLjEtMzEuMiAxMy40czEuMSAyNi4zIDEzLjQgMzEuMmwxMS42IDQuNmMtLjMgMS4xLS42IDIuMS0uOSAzLjFjLTMuNSAxMi41LTUuNyAyMy4yLTcuMSAzMS4zYy0uNyA0LjEtMS4yIDcuNS0xLjYgMTAuM2MtLjIgMS40LS4zIDIuNi0uNCAzLjZsLS4xIDEuNC0uMSAuNiAwIC4zIDAgLjFjMCAwIDAgLjEgMzkuMiAzLjdjMCAwIDAgMCAwIDBsLTM5LjItMy42Yy0uNSA1LS42IDEwLS40IDE0LjlsLTE0LjcgNC4yQzQuNyAzODAuNi0yLjcgMzkzLjggLjkgNDA2LjZzMTYuOSAyMC4xIDI5LjcgMTYuNWwxMy44LTMuOWMxMC42IDIwLjcgMjcuNiAzNy44IDQ4LjUgNDguNWwtMy45IDEzLjdjLTMuNiAxMi43IDMuNyAyNiAxNi41IDI5LjdzMjYtMy43IDI5LjctMTYuNWw0LjItMTQuN2MyMy44IDEgNDYuMy01LjUgNjUuMS0xNy42TDIxNSA0NzNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMC42LTEwLjZjOS4xLTE0LjEgMTUuMS0zMC41IDE3LTQ4LjNsLjEtLjhjLjMtMS43IDEtNS4xIDIuMy05LjhsLjItLjggMTIuNiA1LjRjMTIuMiA1LjIgMjYuMy0uNCAzMS41LTEyLjZzLS40LTI2LjMtMTIuNi0zMS41bC0xMS4zLTQuOGM5LjktMTQuOSAyNC45LTMxLjYgNDguNi00NmwyLjEgNy41YzMuNiAxMi43IDE2LjkgMjAuMSAyOS43IDE2LjVzMjAuMS0xNi45IDE2LjUtMjkuN0wzNzEgMjU5LjJjNi45LTIuMiAxNC4zLTQuMyAyMi4yLTYuMWMxMi45LTMgMjQuNy04IDM1LjItMTQuOEw0MzkgMjQ5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTAuNi0xMC42YzEyLjItMTkgMTguNi00MS42IDE3LjYtNjUuMWwxNC43LTQuMmMxMi43LTMuNiAyMC4xLTE2LjkgMTYuNS0yOS43cy0xNi45LTIwLjEtMjkuNy0xNi41bC0xMy43IDMuOWMtMTAuOC0yMS4yLTI4LTM4LTQ4LjUtNDguNWwzLjktMTMuOHpNOTIuMSAzNjMuM3MwIDAgMCAwTDE0NCAzNjhsLTUxLjktNC43ek0xMTIgMzIwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI0MCAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhSGFuZFBvaW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjVhXCIsIFwiTTEyOCA0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTQ4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMmMyMC42IDAgMzguMiAxMyA0NSAzMS4yYzguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjJjMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zYzguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuM2MyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDAgMTYgMCA0OGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYgMC02NCAwLS4xIDAtNS4yIDBjLTUgMC05LjktLjMtMTQuNy0xYy01NS4zLTUuNi0xMDYuMi0zNC0xNDAtNzlMOCAzMzZjLTEzLjMtMTcuNy05LjctNDIuNyA4LTU2czQyLjctOS43IDU2IDhsNTYgNzQuN0wxMjggNDB6TTI0MCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnpcIl1cbn07XG5jb25zdCBmYURydW1TdGVlbHBhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtLXN0ZWVscGFuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTZhXCIsIFwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjhjLTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjRjMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNWM0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNEM1NiAxMzAuMSA0OCAxNTAuMSA0OCAxNjBzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNWMwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThDMjI0LjUgODcgMjI0IDkxLjUgMjI0IDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMkMzMzAuOCA4MSAzMDkuOCA4MCAyODggODBzLTQyLjggMS02Mi42IDIuOHpcIl1cbn07XG5jb25zdCBmYUhhbmRTY2lzc29ycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXNjaXNzb3JzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjU3XCIsIFwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyYzAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOWMtNy43IDguNS0xMi4zIDE5LjgtMTIuMyAzMi4xYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgNjQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjNDNDQ0LjggNzYuOCA0MTMuOSA2NCAzODEuNyA2NEwzMzYgNjRjLTIxLjMgMC0zOS4zIDEzLjktNDUuNiAzMy4xbDc0LjUgMjMuN2M4LjQgMi43IDEzLjEgMTEuNyAxMC40IDIwLjFzLTExLjcgMTMuMS0yMC4xIDEwLjRMMjg4IDEyOS45YzAgMCAwIC4xIDAgLjFMODQgNjUuOEM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjggOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6XCJdXG59O1xuY29uc3QgZmFIYW5kc1ByYXlpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtcHJheWluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW1wicHJheWluZy1oYW5kc1wiXSwgXCJmNjg0XCIsIFwiTTM1MS4yIDQuOGMzLjItMiA2LjYtMy4zIDEwLTQuMWM0LjctMSA5LjYtLjkgMTQuMSAuMWM3LjcgMS44IDE0LjggNi41IDE5LjQgMTMuNkw1MTQuNiAxOTQuMmM4LjggMTMuMSAxMy40IDI4LjYgMTMuNCA0NC40bDAgNzMuNWMwIDYuOSA0LjQgMTMgMTAuOSAxNS4ybDc5LjIgMjYuNEM2MzEuMiAzNTggNjQwIDM3MC4yIDY0MCAzODRsMCA5NmMwIDkuOS00LjYgMTkuMy0xMi41IDI1LjRzLTE4LjEgOC4xLTI3LjcgNS41TDQzMSA0NjUuOWMtNTYtMTQuOS05NS02NS43LTk1LTEyMy43TDMzNiAyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04NC45YzAtNy0xLjgtMTMuOC01LjMtMTkuOEwzNDAuMyA0OC4xYy0xLjctMy0yLjktNi4xLTMuNi05LjNjLTEtNC43LTEtOS42IC4xLTE0LjFjMS45LTggNi44LTE1LjIgMTQuMy0xOS45em0tNjIuNCAwYzcuNSA0LjYgMTIuNCAxMS45IDE0LjMgMTkuOWMxLjEgNC42IDEuMiA5LjQgLjEgMTQuMWMtLjcgMy4yLTEuOSA2LjMtMy42IDkuM0wyMTMuMyAxOTkuM2MtMy41IDYtNS4zIDEyLjktNS4zIDE5LjhsMCA4NC45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTE4LjJjMCA1OC0zOSAxMDguNy05NSAxMjMuN2wtMTY4LjcgNDVjLTkuNiAyLjYtMTkuOSAuNS0yNy43LTUuNVMwIDQ5MCAwIDQ4MGwwLTk2YzAtMTMuOCA4LjgtMjYgMjEuOS0zMC40bDc5LjItMjYuNGM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTczLjVjMC0xNS44IDQuNy0zMS4yIDEzLjQtNDQuNEwyNDUuMiAxNC41YzQuNi03LjEgMTEuNy0xMS44IDE5LjQtMTMuNmM0LjYtMS4xIDkuNC0xLjIgMTQuMS0uMWMzLjUgLjggNi45IDIuMSAxMCA0LjF6XCJdXG59O1xuY29uc3QgZmFQcmF5aW5nSGFuZHMgPSBmYUhhbmRzUHJheWluZztcbmNvbnN0IGZhQXJyb3dSb3RhdGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yb3RhdGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4NjM1LCBcImFycm93LXJpZ2h0LXJvdGF0ZVwiLCBcImFycm93LXJvdGF0ZS1mb3J3YXJkXCIsIFwicmVkb1wiXSwgXCJmMDFlXCIsIFwiTTM4Ni4zIDE2MEwzMzYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTEuMkw0MTQuNCA5Ny42Yy04Ny41LTg3LjUtMjI5LjMtODcuNS0zMTYuOCAwcy04Ny41IDIyOS4zIDAgMzE2LjhzMjI5LjMgODcuNSAzMTYuOCAwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwcy02Mi41LTE2My44IDAtMjI2LjNzMTYzLjgtNjIuNSAyMjYuMyAwTDM4Ni4zIDE2MHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRSb3RhdGUgPSBmYUFycm93Um90YXRlUmlnaHQ7XG5jb25zdCBmYUFycm93Um90YXRlRm9yd2FyZCA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbmNvbnN0IGZhUmVkbyA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbmNvbnN0IGZhV2ViQXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWItYXdlc29tZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY4MlwiLCBcIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MmwxMDQuNC0yMC45Yy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjFjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnpcIl1cbn07XG5jb25zdCBmYUJpb2hhemFyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaW9oYXphcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5NzYzXSwgXCJmNzgwXCIsIFwiTTE3My4yIDBjLTEuOCAwLTMuNSAuNy00LjggMkMxMzguNSAzMi4zIDEyMCA3NCAxMjAgMTIwYzAgMjYuMiA2IDUwLjkgMTYuNiA3M2MtMjIgMi40LTQzLjggOS4xLTY0LjIgMjAuNUMzNy45IDIzMi44IDEzLjMgMjYyLjQgLjQgMjk2Yy0uNyAxLjctLjUgMy43IC41IDUuMmMyLjIgMy43IDcuNCA0LjMgMTAuNiAxLjNDNjQuMiAyNTQuMyAxNTggMjQ1LjEgMjA1IDMyNHMtOC4xIDE1My4xLTc3LjYgMTczLjJjLTQuMiAxLjItNi4zIDUuOS00LjEgOS42YzEgMS42IDIuNiAyLjcgNC41IDNjMzYuNSA1LjkgNzUuMiAuMSAxMDkuNy0xOS4yYzIwLjQtMTEuNCAzNy40LTI2LjUgNTAuNS00My44YzEzLjEgMTcuMyAzMC4xIDMyLjQgNTAuNSA0My44YzM0LjUgMTkuMyA3My4zIDI1LjIgMTA5LjcgMTkuMmMxLjktLjMgMy41LTEuNCA0LjUtM2MyLjItMy43IC4xLTguNC00LjEtOS42QzM3OS4xIDQ3Ny4xIDMyNCA0MDMgMzcxIDMyNHMxNDAuNy02OS44IDE5My41LTIxLjRjMy4yIDIuOSA4LjQgMi4zIDEwLjYtMS4zYzEtMS42IDEuMS0zLjUgLjUtNS4yYy0xMi45LTMzLjYtMzcuNS02My4yLTcyLjEtODIuNWMtMjAuNC0xMS40LTQyLjItMTguMS02NC4yLTIwLjVDNDUwIDE3MC45IDQ1NiAxNDYuMiA0NTYgMTIwYzAtNDYtMTguNS04Ny43LTQ4LjQtMTE4Yy0xLjMtMS4zLTMtMi00LjgtMmMtNSAwLTguNCA1LjItNi43IDkuOUM0MjEuNyA4MC41IDM4NS42IDE3NiAyODggMTc2UzE1NC4zIDgwLjUgMTc5LjkgOS45YzEuNy00LjctMS42LTkuOS02LjctOS45ek0yNDAgMjcyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE4MS43IDQxNy42YzYuMy0xMS44IDkuOC0yNS4xIDguNi0zOS44Yy0xOS41LTE4LTM0LTQxLjQtNDEuMi02Ny44Yy0xMi41LTguMS0yNi4yLTExLjgtNDAtMTIuNGMtOS0uNC0xOC4xIC42LTI3LjEgMi43YzcuOCA1Ny4xIDM4LjcgMTA2LjggODIuOSAxMzkuNGM2LjgtNi43IDEyLjYtMTQuMSAxNi44LTIyLjF6TTI4OCA2NGMtMjguOCAwLTU2LjMgNS45LTgxLjIgMTYuNWMyIDguMyA1IDE2LjIgOSAyMy41YzYuOCAxMi40IDE2LjcgMjMuMSAzMC4xIDMwLjNjMTMuMy00LjEgMjcuNS02LjMgNDIuMi02LjNzMjguOCAyLjIgNDIuMiA2LjNjMTMuNC03LjIgMjMuMy0xNy45IDMwLjEtMzAuM2M0LTcuMyA3LTE1LjIgOS0yMy41QzM0NC4zIDY5LjkgMzE2LjggNjQgMjg4IDY0ek00MjYuOSAzMTBjLTcuMiAyNi40LTIxLjcgNDkuNy00MS4yIDY3LjhjLTEuMiAxNC43IDIuMiAyOC4xIDguNiAzOS44YzQuMyA4IDEwIDE1LjQgMTYuOCAyMi4xYzQ0LjMtMzIuNiA3NS4yLTgyLjMgODIuOS0xMzkuNGMtOS0yLjItMTguMS0zLjEtMjcuMS0yLjdjLTEzLjggLjYtMjcuNSA0LjQtNDAgMTIuNHpcIl1cbn07XG5jb25zdCBmYUxvY2F0aW9uQ3Jvc3NoYWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1jcm9zc2hhaXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb2NhdGlvblwiXSwgXCJmNjAxXCIsIFwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNGwzNC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCAzNC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuN0MxNDMuNiA0MzEuOSA4MC4xIDM2OC40IDY2LjcgMjg4TDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzNC43IDBDODAuMSAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDI1NmExMjggMTI4IDAgMSAwIDI1NiAwIDEyOCAxMjggMCAxIDAgLTI1NiAwem0xMjgtODBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJdXG59O1xuY29uc3QgZmFMb2NhdGlvbiA9IGZhTG9jYXRpb25Dcm9zc2hhaXJzO1xuY29uc3QgZmFNYXJzRG91YmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnMtZG91YmxlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTg5MV0sIFwiZjIyN1wiLCBcIk0zMTIgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDI3NS44IDE1OWMtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMUM3OC44IDEyOCAwIDIwNi44IDAgMzA0czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw0MDcgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMTIgMzJ6bTg4IDQ4czAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwek02NCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMEExMTIgMTEyIDAgMSAxIDY0IDMwNHpNMzY4IDQ4MGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw1OTkgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEw1MDQgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOGMtMS4yIDIuOS0xLjggNi0xLjggOWwwIC4yIDAgLjJjMCA2LjIgMi41IDEyLjIgNyAxNi44bDMzLjQgMzMuNEw0ODAgMTQ2LjdsMCAyMS4zYzAgMjIuNi0xMy42IDQzLjEtMzQuNiA1MS43Yy0uOCAuMy0xLjcgLjctMi41IDFDNDY1LjcgMjQxLjIgNDgwIDI3MC45IDQ4MCAzMDRjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJjLTUuNCAwLTEwLjgtLjQtMTYtMS4xYy0xMi45IDIwLjQtMjkuMSAzOC4zLTQ4LjEgNTMuMWMxOS44IDcuOCA0MS40IDEyIDY0IDEyelwiXVxufTtcbmNvbnN0IGZhQ2hpbGREcmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGlsZC1kcmVzcycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTU5Y1wiLCBcIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDQwMGwwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNiAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtMzEuMS05My40IDI4LjYgMzcuOGMxMC43IDE0LjEgMzAuOCAxNi44IDQ0LjggNi4yczE2LjgtMzAuNyA2LjItNDQuOEwyNTQuNiAyMDdjLTIyLjQtMjkuNi01Ny41LTQ3LTk0LjYtNDdzLTcyLjIgMTcuNC05NC42IDQ3TDYuNSAyODQuN2MtMTAuNyAxNC4xLTcuOSAzNC4yIDYuMiA0NC44czM0LjIgNy45IDQ0LjgtNi4ybDI4LjctMzcuOEw1NSAzNzguOUM1MS42IDM4OS4zIDU5LjMgNDAwIDcwLjIgNDAwTDg4IDQwMHpcIl1cbn07XG5jb25zdCBmYVVzZXJzQmV0d2VlbkxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLWJldHdlZW4tbGluZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTFcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDhDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMCA0ODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNTkyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODMuMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsOTYgMGMxMi4yIDAgMjMuNyAzLjQgMzMuNCA5LjRjLTM3LjIgMTUuMS02NS42IDQ3LjItNzUuOCA4Ni42TDY0IDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTQ2MS42IDMyYy0xMC4zLTQwLjEtMzkuNi03Mi42LTc3LjctODcuNGM5LjQtNS41IDIwLjQtOC42IDMyLjEtOC42bDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgyLjQgMHpNMzkxLjIgMjkwLjRjMzIuMSA3LjQgNTguMSAzMC45IDY4LjkgNjEuNmMzLjUgMTAgNS41IDIwLjggNS41IDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJjMC0xMS4yIDEuOS0yMiA1LjUtMzJjMTAuNS0yOS43IDM1LjMtNTIuOCA2Ni4xLTYwLjljNy44LTIuMSAxNi0zLjEgMjQuNS0zLjFsOTYgMGM3LjQgMCAxNC43IC44IDIxLjYgMi40em00NC0xMzAuNGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyMS42IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhTHVuZ3NWaXJ1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsdW5ncy12aXJ1cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2N1wiLCBcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyNC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4ycy0yMy41IDQuNi0zMiAxMi4yTDI4OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDQ0LjUgMTk1LjVjLTE2LjQtMTYuNC00MS44LTE4LjUtNjAuNS02LjFsMC0yNC4xQzM4NCAxMjcgNDE1IDk2IDQ1My4zIDk2YzIxLjcgMCA0Mi44IDEwLjIgNTUuOCAyOC44YzE1LjQgMjIuMSA0NC4zIDY1LjQgNzEgMTE2LjljMjYuNSA1MC45IDUyLjQgMTEyLjUgNTkuNiAxNzAuM2MuMiAxLjMgLjIgMi42IC4yIDRsMCA3YzAgNDkuMS0zOS44IDg5LTg5IDg5Yy03LjMgMC0xNC41LS45LTIxLjYtMi43bC03Mi43LTE4LjJjLTIwLjktNS4yLTM4LjctMTcuMS01MS41LTMyLjljMTQgMS41IDI4LjUtMyAzOS4yLTEzLjhsLTIyLjYtMjIuNiAyMi42IDIyLjZjMTguNy0xOC43IDE4LjctNDkuMSAwLTY3LjljLTEuMS0xLjEtMS40LTItMS41LTIuNWMtLjEtLjgtLjEtMS44IC40LTIuOXMxLjItMS45IDEuOC0yLjNjLjUtLjMgMS4zLS44IDIuOS0uOGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGMtMS42IDAtMi40LS40LTIuOS0uOGMtLjYtLjQtMS4zLTEuMi0xLjgtMi4zcy0uNS0yLjItLjQtMi45Yy4xLS42IC40LTEuNCAxLjUtMi41YzE4LjctMTguNyAxOC43LTQ5LjEgMC02Ny45ek00MjEuOCA0MjEuOGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBDMzc1LjkgMzk4LjUgMzM2IDQxNSAzMzYgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtMzMtMzkuOS00OS41LTYzLjItMjYuMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkMyNDEuNSAzNzUuOSAyMjUgMzM2IDE5MiAzMzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZjMzMgMCA0OS41LTM5LjkgMjYuMi02My4yYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBDMjY0LjEgMjQxLjUgMzA0IDIyNSAzMDQgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZjMCAzMyAzOS45IDQ5LjUgNjMuMiAyNi4yYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkMzOTguNSAyNjQuMSA0MTUgMzA0IDQ0OCAzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTMzIDAtNDkuNSAzOS45LTI2LjIgNjMuMmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnpNMTgzLjMgNDkxLjJsLTcyLjcgMTguMmMtNy4xIDEuOC0xNC4zIDIuNy0yMS42IDIuN2MtNDkuMSAwLTg5LTM5LjgtODktODlsMC03YzAtMS4zIC4xLTIuNyAuMi00YzcuMi01Ny45IDMzLjEtMTE5LjQgNTkuNi0xNzAuM2MyNi44LTUxLjUgNTUuNi05NC44IDcxLTExNi45YzEzLTE4LjYgMzQtMjguOCA1NS44LTI4LjhDMjI1IDk2IDI1NiAxMjcgMjU2IDE2NS4zbDAgMjQuMWMtMTguNi0xMi40LTQ0LTEwLjMtNjAuNSA2LjFjLTE4LjcgMTguNy0xOC43IDQ5LjEgMCA2Ny45YzEuMSAxLjEgMS40IDIgMS41IDIuNWMuMSAuOCAuMSAxLjgtLjQgMi45cy0xLjIgMS45LTEuOCAyLjNjLS41IC4zLTEuMyAuOC0yLjkgLjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhjMS42IDAgMi40IC40IDIuOSAuOGMuNiAuNCAxLjMgMS4yIDEuOCAyLjNzLjUgMi4yIC40IDIuOWMtLjEgLjYtLjQgMS40LTEuNSAyLjVjLTE4LjcgMTguNy0xOC43IDQ5LjEgMCA2Ny45YzEwLjcgMTAuNyAyNS4zIDE1LjMgMzkuMiAxMy44Yy0xMi44IDE1LjktMzAuNiAyNy43LTUxLjUgMzIuOXpNMjk2IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTcyIDMyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFGYWNlR3JpblRlYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi10ZWFycycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODUxNCwgXCJncmluLXRlYXJzXCJdLCBcImY1ODhcIiwgXCJNNTQ4LjYgMzcxLjRDNTA2LjQgNDU0LjggNDE5LjkgNTEyIDMyMCA1MTJzLTE4Ni40LTU3LjItMjI4LjYtMTQwLjZjNC41LTIuOSA4LjctNi4zIDEyLjctMTAuM2M4LjEtOC4xIDEzLjItMTguNiAxNi41LTI2LjZjMy42LTguOCA2LjUtMTguNCA4LjgtMjcuNWM0LjYtMTguMiA3LjctMzcgOS4zLTQ4LjJjMy45LTI2LjUtMTguOC00OS4yLTQ1LjItNDUuNGMtNi44IC45LTE2LjIgMi40LTI2LjYgNC40Qzg1LjMgOTQuNSAxOTEuNiAwIDMyMCAwUzU1NC43IDk0LjUgNTczLjIgMjE3LjdjLTEwLjMtMi0xOS44LTMuNS0yNi42LTQuNGMtMjYuNS0zLjktNDkuMiAxOC44LTQ1LjIgNDUuNGMxLjYgMTEuMyA0LjYgMzAgOS4zIDQ4LjJjMi4zIDkuMSA1LjIgMTguOCA4LjggMjcuNWMzLjMgOC4xIDguNCAxOC41IDE2LjUgMjYuNmMzLjkgMy45IDguMiA3LjQgMTIuNyAxMC4zek0xMDcgMjU0LjFjLTMuMSAyMS41LTExLjQgNzAuMi0yNS41IDg0LjRjLS45IDEtMS45IDEuOC0yLjkgMi43QzYwIDM1Ni43IDMyIDM1NS41IDE0LjMgMzM3LjdjLTE4LjctMTguNy0xOS4xLTQ4LjgtLjctNjcuMmM4LjYtOC42IDMwLjEtMTUuMSA1MC41LTE5LjZjMTMtMi44IDI1LjUtNC44IDMzLjktNmM1LjQtLjggOS45IDMuNyA5IDl6bTQ1NC41IDg3LjFjLS44LS42LTEuNS0xLjMtMi4zLTJjLS4yLS4yLS41LS40LS43LS43Yy0xNC4xLTE0LjEtMjIuNS02Mi45LTI1LjUtODQuNGMtLjgtNS40IDMuNy05LjkgOS05YzEgLjEgMi4yIC4zIDMuMyAuNWM4LjIgMS4yIDE5LjIgMyAzMC42IDUuNWMyMC40IDQuNCA0MS45IDEwLjkgNTAuNSAxOS42YzE4LjQgMTguNCAxOCA0OC41LS43IDY3LjJjLTE3LjcgMTcuNy00NS43IDE5LTY0LjIgMy40em0tOTAuMS05LjdjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzI1IDU5LjEgODMuMiAxMDAuNSAxNTEuMSAxMDAuNXMxMjYuMi00MS40IDE1MS4xLTEwMC41ek0yODEuNiAyMjguOHMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTkwLjcgMTg4LjQgMTg0IDIwNi4xIDE4NCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMmMwIDAgMCAwIDAgMHptMTYwIDBzMCAwIDAgMHMwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMzNTAuNyAxODguNCAzNDQgMjA2LjEgMzQ0IDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGMwIDAgMCAwIDAgMHMwIDAgMCAwYzAgMCAwIDAgMCAwbC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yYzAgMCAwIDAgMCAwYzAgMCAwIDAgMCAwelwiXVxufTtcbmNvbnN0IGZhR3JpblRlYXJzID0gZmFGYWNlR3JpblRlYXJzO1xuY29uc3QgZmFQaG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyMiwgMTI4Mzc5XSwgXCJmMDk1XCIsIFwiTTE2NC45IDI0LjZjLTcuNy0xOC42LTI4LTI4LjUtNDcuNC0yMy4ybC04OCAyNEMxMi4xIDMwLjIgMCA0NiAwIDY0QzAgMzExLjQgMjAwLjYgNTEyIDQ0OCA1MTJjMTggMCAzMy44LTEyLjEgMzguNi0yOS41bDI0LTg4YzUuMy0xOS40LTQuNi0zOS43LTIzLjItNDcuNGwtOTYtNDBjLTE2LjMtNi44LTM1LjItMi4xLTQ2LjMgMTEuNkwzMDQuNyAzNjhDMjM0LjMgMzM0LjcgMTc3LjMgMjc3LjcgMTQ0IDIwNy4zTDE5My4zIDE2N2MxMy43LTExLjIgMTguNC0zMCAxMS42LTQ2LjNsLTQwLTk2elwiXVxufTtcbmNvbnN0IGZhQ2FsZW5kYXJYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci14bWFyaycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FsZW5kYXItdGltZXNcIl0sIFwiZjI3M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnpNMzA1IDMwNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0NyA0Ny00NyA0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDctNDcgNDctNDd6XCJdXG59O1xuY29uc3QgZmFDYWxlbmRhclRpbWVzID0gZmFDYWxlbmRhclhtYXJrO1xuY29uc3QgZmFDaGlsZFJlYWNoaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoaWxkLXJlYWNoaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTlkXCIsIFwiTTI1NiA2NEE2NCA2NCAwIDEgMCAxMjggNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTE1Mi45IDE2OS4zYy0yMy43LTguNC00NC41LTI0LjMtNTguOC00NS44TDc0LjYgOTQuMkM2NC44IDc5LjUgNDUgNzUuNiAzMC4yIDg1LjRzLTE4LjcgMjkuNy04LjkgNDQuNEw0MC45IDE1OWMxOC4xIDI3LjEgNDIuOCA0OC40IDcxLjEgNjIuNEwxMTIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1OC40YzI5LjEtMTQuMiA1NC40LTM2LjIgNzIuNy02NC4ybDE4LjItMjcuOWM5LjYtMTQuOCA1LjQtMzQuNi05LjQtNDQuM3MtMzQuNi01LjUtNDQuMyA5LjRMMjkxIDEyMi40Yy0yMS44IDMzLjQtNTguOSA1My42LTk4LjggNTMuNmMtMTIuNiAwLTI0LjktMi0zNi42LTUuOGMtLjktLjMtMS44LS43LTIuNy0uOXpcIl1cbn07XG5jb25zdCBmYUhlYWRTaWRlVmlydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZC1zaWRlLXZpcnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDY0XCIsIFwiTTAgMjI0LjJDMCAxMDAuNiAxMDAuMiAwIDIyNCAwbDI0IDBjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM2LjIgNy44IDkuNiAxNy40IDkuNiAyNy40YzAgMjQuMi0xOS42IDQzLjgtNDMuOCA0My44TDQ0OCAzMjBsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03Mi43YzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6TTIyNCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2YzAgMzMtMzkuOSA0OS41LTYzLjIgMjYuMmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkMxNDUuNSAxNTIuMSAxMjkgMTkyIDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmMzMyAwIDQ5LjUgMzkuOSAyNi4yIDYzLjJjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEMxNjguMSAyODYuNSAyMDggMzAzIDIwOCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTMzIDM5LjktNDkuNSA2My4yLTI2LjJjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42QzMwMi41IDI2My45IDMxOSAyMjQgMzUyIDIyNGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtMzMgMC00OS41LTM5LjktMjYuMi02My4yYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBDMjc5LjkgMTI5LjUgMjQwIDExMyAyNDAgODBjMC04LjgtNy4yLTE2LTE2LTE2em0tMjQgOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4MGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbmNvbnN0IGZhVXNlckdlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1nZWFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2VyLWNvZ1wiXSwgXCJmNGZlXCIsIFwiTTIyNCAwYTEyOCAxMjggMCAxIDEgMCAyNTZBMTI4IDEyOCAwIDEgMSAyMjQgMHpNMTc4LjMgMzA0bDkxLjQgMGMxMS44IDAgMjMuNCAxLjIgMzQuNSAzLjNjLTIuMSAxOC41IDcuNCAzNS42IDIxLjggNDQuOGMtMTYuNiAxMC42LTI2LjcgMzEuNi0yMCA1My4zYzQgMTIuOSA5LjQgMjUuNSAxNi40IDM3LjZzMTUuMiAyMy4xIDI0LjQgMzNjMTUuNyAxNi45IDM5LjYgMTguNCA1Ny4yIDguN2wwIC45YzAgOS4yIDIuNyAxOC41IDcuOSAyNi4zTDI5LjcgNTEyQzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNNDM2IDIxOC4yYzAtNyA0LjUtMTMuMyAxMS4zLTE0LjhjMTAuNS0yLjQgMjEuNS0zLjcgMzIuNy0zLjdzMjIuMiAxLjMgMzIuNyAzLjdjNi44IDEuNSAxMS4zIDcuOCAxMS4zIDE0LjhsMCAzMC42YzcuOSAzLjQgMTUuNCA3LjcgMjIuMyAxMi44bDI0LjktMTQuM2M2LjEtMy41IDEzLjctMi43IDE4LjUgMi40YzcuNiA4LjEgMTQuMyAxNy4yIDIwLjEgMjcuMnMxMC4zIDIwLjQgMTMuNSAzMWMyLjEgNi43LTEuMSAxMy43LTcuMiAxNy4ybC0yNSAxNC40Yy40IDQgLjcgOC4xIC43IDEyLjNzLS4yIDguMi0uNyAxMi4zbDI1IDE0LjRjNi4xIDMuNSA5LjIgMTAuNSA3LjIgMTcuMmMtMy4zIDEwLjYtNy44IDIxLTEzLjUgMzFzLTEyLjUgMTkuMS0yMC4xIDI3LjJjLTQuOCA1LjEtMTIuNSA1LjktMTguNSAyLjRsLTI0LjktMTQuM2MtNi45IDUuMS0xNC4zIDkuNC0yMi4zIDEyLjhsMCAzMC42YzAgNy00LjUgMTMuMy0xMS4zIDE0LjhjLTEwLjUgMi40LTIxLjUgMy43LTMyLjcgMy43cy0yMi4yLTEuMy0zMi43LTMuN2MtNi44LTEuNS0xMS4zLTcuOC0xMS4zLTE0LjhsMC0zMC41Yy04LTMuNC0xNS42LTcuNy0yMi41LTEyLjlsLTI0LjcgMTQuM2MtNi4xIDMuNS0xMy43IDIuNy0xOC41LTIuNGMtNy42LTguMS0xNC4zLTE3LjItMjAuMS0yNy4ycy0xMC4zLTIwLjQtMTMuNS0zMWMtMi4xLTYuNyAxLjEtMTMuNyA3LjItMTcuMmwyNC44LTE0LjNjLS40LTQuMS0uNy04LjItLjctMTIuNHMuMi04LjMgLjctMTIuNEwzNDMuOCAzMjVjLTYuMS0zLjUtOS4yLTEwLjUtNy4yLTE3LjJjMy4zLTEwLjYgNy43LTIxIDEzLjUtMzFzMTIuNS0xOS4xIDIwLjEtMjcuMmM0LjgtNS4xIDEyLjQtNS45IDE4LjUtMi40bDI0LjggMTQuM2M2LjktNS4xIDE0LjUtOS40IDIyLjUtMTIuOWwwLTMwLjV6bTkyLjEgMTMzLjVhNDguMSA0OC4xIDAgMSAwIC05Ni4xIDAgNDguMSA0OC4xIDAgMSAwIDk2LjEgMHpcIl1cbn07XG5jb25zdCBmYVVzZXJDb2cgPSBmYVVzZXJHZWFyO1xuY29uc3QgZmFBcnJvd1VwMTkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtMS05JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtdXBcIl0sIFwiZjE2M1wiLCBcIk00NTAuNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTQ4IDAtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0xNjAgMzJjOSAwIDE3LjUgMy44IDIzLjYgMTAuNGw4OCA5NmMxMS45IDEzIDExLjEgMzMuMy0yIDQ1LjJzLTMzLjMgMTEuMS00NS4yLTJMMTkyIDE0Ni4zIDE5MiA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMDEuN0w5NS42IDE4MS42Yy0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDJzLTEzLjktMzIuMi0yLTQ1LjJsODgtOTZDMTQyLjUgMzUuOCAxNTEgMzIgMTYwIDMyek00NDUuNyAzNjQuOUEzMiAzMiAwIDEgMCA0MTguMyAzMDdhMzIgMzIgMCAxIDAgMjcuNCA1Ny45em0tNDAuNyA1NC45QzM2OS42IDQwOC40IDM0NCAzNzUuMiAzNDQgMzM2YzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAyMy41LTcuNSA0Ni4zLTIxLjUgNjUuMkw0NDkuNyA0NjdjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjdzLTE3LjItMzAuNi02LjctNDQuOGw2LjgtOS4yelwiXVxufTtcbmNvbnN0IGZhU29ydE51bWVyaWNVcCA9IGZhQXJyb3dVcDE5O1xuY29uc3QgZmFEb29yQ2xvc2VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3ItY2xvc2VkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4NjgyXSwgXCJmNTJhXCIsIFwiTTk2IDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExMiAwLTI4OCAwTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwTDk2IDY0ek0zODQgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZFZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC12aXJ1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2Y1wiLCBcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNTYgMTEyYzguOCAwIDE2IDcuMiAxNiAxNmMwIDMzIDM5LjkgNDkuNSA2My4yIDI2LjJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42QzMzNC41IDIwMC4xIDM1MSAyNDAgMzg0IDI0MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtMzMgMC00OS41IDM5LjktMjYuMiA2My4yYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBDMzExLjkgMzM0LjUgMjcyIDM1MSAyNzIgMzg0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2YzAtMzMtMzkuOS00OS41LTYzLjItMjYuMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkMxNzcuNSAzMTEuOSAxNjEgMjcyIDEyOCAyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZjMzMgMCA0OS41LTM5LjkgMjYuMi02My4yYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBDMjAwLjEgMTc3LjUgMjQwIDE2MSAyNDAgMTI4YzAtOC44IDcuMi0xNiAxNi0xNnpNMjMyIDI1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTcyIDMyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJdXG59O1xuY29uc3QgZmFEaWNlU2l4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2Utc2l4JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTg2MV0sIFwiZjUyNlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFNb3NxdWl0b05ldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3NxdWl0by1uZXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MmNcIiwgXCJNMTY4LjggNDYyLjNjLTcuOS00LTExLjEtMTMuNi03LjItMjEuNUwxOTIgMzgwLjJsMC00NC4yYzAtNC4yIDEuNy04LjMgNC43LTExLjNMMjU2IDI2NS40bDAtMjMuMUwxMzkuMiAzNDRDODcuOCAzOTUuMyAwIDM1OC45IDAgMjg2LjNjMC00MS4xIDMwLjYtNzUuOCA3MS40LTgwLjlsMTU5LjktMjMuOS00OS42LTQxLjNjLTUuMS00LjItNy0xMS4xLTQuOS0xNy40bDEzLjktNDEuNy0yOS01OC4xYy00LTcuOS0uNy0xNy41IDcuMi0yMS41czE3LjUtLjcgMjEuNSA3LjJsMzIgNjRjMS45IDMuOCAyLjIgOC4yIC45IDEyLjJsLTEyLjUgMzcuNkwyNTYgMTYwLjVsMC0yMi42YzAtMTQuOSAxMC4xLTI3LjMgMjMuOC0zMWwwLTQzLjNjMC00LjUgMy43LTguMiA4LjItOC4yczguMiAzLjcgOC4yIDguMmwwIDQzLjNjMTMuNyAzLjYgMjMuOCAxNi4xIDIzLjggMzFsMCAyMi42IDQ1LjQtMzcuOEwzNTIuOCA4NS4xYy0xLjMtNC0xLTguNCAuOS0xMi4ybDMyLTY0YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTI5IDU4LjEgMTMuOSA0MS43YzIuMSA2LjIgLjEgMTMuMS00LjkgMTcuNGwtNDkuNiA0MS4zIDE1OS45IDIzLjljMjIuNSAyLjggNDEuOCAxNC42IDU0LjcgMzEuNGMtMi43IDIuNi01LjIgNS40LTcuMyA4LjZjLTguNi0xMi45LTIzLjMtMjEuNS00MC0yMS41cy0zMS40IDguNS00MCAyMS41Yy04LjYtMTIuOS0yMy4zLTIxLjUtNDAtMjEuNWMtMjEuNyAwLTQwIDE0LjMtNDUuOSAzNC4xYy0xMC43IDMuMi0xOS44IDEwLjEtMjUuOSAxOS4ybC00MC4yLTM1IDAgMjMuMSAzMi40IDMyLjRjLS4zIDItLjQgNC4xLS40IDYuMmMwIDE2LjcgOC41IDMxLjQgMjEuNSA0MGMtNCAyLjYtNy41IDUuOS0xMC42IDkuNUwzMjAgMzEwLjZsMCA1MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLTMyIDMyIDAgNDEuNGMwIDIuNS0uNiA0LjktMS43IDcuMmwtMzIgNjRjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnpNNTEyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNiA0OCAwIDAtMTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDAgMCA0OCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwIDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTYtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDAtMTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2IDQ4IDAgMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTE2IDExMmw0OCAwIDAtNDgtNDggMCAwIDQ4em0wIDgwbDQ4IDAgMC00OC00OCAwIDAgNDh6TTQ0OCAzMjBsMCA0OCA0OCAwIDAtNDgtNDggMHptMCA4MGwwIDQ4IDQ4IDAgMC00OC00OCAwelwiXVxufTtcbmNvbnN0IGZhQnJpZGdlV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZGdlLXdhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGNlXCIsIFwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNS42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40Yy0zNy4zIDAtNjcuNiAzMC4yLTY3LjYgNjcuNmwwIDEyNC45Yy0xMi45IDAtMjUuOCAzLjktMzYuOCAxMS43Yy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjMCAwIDAgMCAwIDBsMC0uNSAwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDEyOCAwIC41Yy0xOSAwLTQxLjItNy45LTU5LjEtMjAuM2MtMTEuMS03LjgtMjQtMTEuNy0zNi45LTExLjdsMC0xMjQuOUM5NiAxOTAuMiA2NS44IDE2MCAyOC40IDE2MEMxMi43IDE2MCAwIDE0Ny4zIDAgMTMxLjZMMCA5NnpNMzA2LjUgMzg5LjlDMzI5IDQwNS40IDM1Ni41IDQxNiAzODQgNDE2YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDY5LjcgNDE3IDQ4MCAzODQgNDgwYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyA0MDUuMiAxNjUuMSA0MTYgMTkyIDQxNmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkJvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1ib290aCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc1NlwiLCBcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAgNjQgMCAwLTE2MHptMzIwIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ0OHpNMjI0IDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MC02NCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0zMjAgMGMtOS4zIDAtMTguMSA0LTI0LjIgMTFzLTguOCAxNi4zLTcuNSAyNS41bDMxLjIgMjE4LjZMMjg4LjYgNDA5LjdjLTMuNSAxNy4zIDcuOCAzNC4yIDI1LjEgMzcuN3MzNC4yLTcuOCAzNy43LTI1LjFsLjctMy42YzEuMyAxNi40IDE1LjEgMjkuNCAzMS45IDI5LjRjMTcuNyAwIDMyLTE0LjMgMzItMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNMTEyIDgwQTQ4IDQ4IDAgMSAwIDE2IDgwYTQ4IDQ4IDAgMSAwIDk2IDB6bTAgMjYxLjNsMC03Mi4xIDQuNyA0LjdjOSA5IDIxLjIgMTQuMSAzMy45IDE0LjFsNzMuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02Ni43IDAtNDEuNi00MS42Yy0xNC4zLTE0LjMtMzMuOC0yMi40LTU0LTIyLjRDMjcuNiAxNjAgMCAxODcuNiAwIDIyMS42bDAgNTUuNyAwIC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiA0Mi43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTguN2MwLTEwLjQtMy40LTIwLjUtOS42LTI4LjhMMTEyIDM0MS4zelwiXVxufTtcbmNvbnN0IGZhVGV4dFdpZHRoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RleHQtd2lkdGgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMzVcIiwgXCJNNjQgMTI4bDAtMzIgMTI4IDAgMCAxMjgtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtMTI4IDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCAzMiA0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwbDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNOS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMzIgMTkyIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlzLTE5LjggMTYuNi0xOS44IDI5LjZsMCAzMi0xOTIgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHpcIl1cbn07XG5jb25zdCBmYUhhdFdpemFyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXQtd2l6YXJkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmU4XCIsIFwiTTY0IDQxNkwxNjguNiAxODAuN2MxNS4zLTM0LjQgNDAuMy02My41IDcyLTgzLjdsMTQ2LjktOTRjMy0xLjkgNi41LTIuOSAxMC0yLjlDNDA3LjcgMCA0MTYgOC4zIDQxNiAxOC42bDAgMS42YzAgMi42LS41IDUuMS0xLjQgNy41TDM1NC44IDE3Ni45Yy0xLjkgNC43LTIuOCA5LjctMi44IDE0LjdjMCA1LjUgMS4yIDExIDMuNCAxNi4xTDQ0OCA0MTZsLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjc2LjQgMjMwLjkgMjcyIDIyNCAyNzJzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzM5IDE0NCAzNDUuMSAxNDQgMzUyczQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41TDIwNy4xIDQxNiA2NCA0MTZ6TTI3OS42IDE0MS41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNXMtNi41IDIuMi03LjYgNS41bC02LjcgMjAuMi0yMC4yIDYuN2MtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZzMi4yIDYuNSA1LjUgNy42bDIwLjIgNi43IDYuNyAyMC4yYzEuMSAzLjMgNC4xIDUuNSA3LjYgNS41czYuNS0yLjIgNy42LTUuNWw2LjctMjAuMiAyMC4yLTYuN2MzLjMtMS4xIDUuNS00LjEgNS41LTcuNnMtMi4yLTYuNS01LjUtNy42bC0yMC4yLTYuNy02LjctMjAuMnpNMzIgNDQ4bDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVBlbkZhbmN5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1mYW5jeScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODM5NSwgMTAwMDJdLCBcImY1YWNcIiwgXCJNMzczLjUgMjcuMUMzODguNSA5LjkgNDEwLjIgMCA0MzMgMGM0My42IDAgNzkgMzUuNCA3OSA3OWMwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI3Ny43IDMxOWwtMTAuMy0xMC4zLTY0LTY0TDE5MyAyMzQuMyAzNzMuNSAyNy4xek0xNzAuMyAyNTYuOWwxMC40IDEwLjQgNjQgNjQgMTAuNCAxMC40LTE5LjIgODMuNGMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNEwyNC4zIDUxMC4zbDk1LjQtOTUuNGMyLjYgLjcgNS40IDEuMSA4LjMgMS4xYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgMi45IC40IDUuNiAxLjEgOC4zTDEuNyA0ODcuNiA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44bDgzLjQtMTkuMnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkRpZ2dpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRpZ2dpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImRpZ2dpbmdcIl0sIFwiZjg1ZVwiLCBcIk0yMDggNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNOS44IDIxNC44YzUuMS0xMi4yIDE5LjEtMTggMzEuNC0xMi45TDYwLjcgMjEwbDIyLjktMzguMUM5OS45IDE0NC42IDEyOS4zIDEyOCAxNjEgMTI4YzUxLjQgMCA5NyAzMi45IDExMy4zIDgxLjdsMzQuNiAxMDMuNyA3OS4zIDMzLjEgMzQuMi00NS42YzYuNC04LjUgMTYuNi0xMy4zIDI3LjItMTIuOHMyMC4zIDYuNCAyNS44IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMnMtMTYuMyAxNi4yLTI3LjggMTYuMmwtMjU2IDBjLTExLjEgMC0yMS40LTUuNy0yNy4yLTE1LjJzLTYuNC0yMS4yLTEuNC0zMS4xbDE2LTMyYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdsMzIgMCAyMi41LTMwTDIyLjggMjQ2LjJjLTEyLjItNS4xLTE4LTE5LjEtMTIuOS0zMS40em04Mi44IDkxLjhsMTEyIDQ4YzExLjggNSAxOS40IDE2LjYgMTkuNCAyOS40bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC03NC45LTYwLjYtMjYtMzcgMTExYy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4yUy0zLjkgNDg2LjYgMS42IDQ2OS45bDQ4LTE0NCAxMS0zMyAzMiAxMy43elwiXVxufTtcbmNvbnN0IGZhRGlnZ2luZyA9IGZhUGVyc29uRGlnZ2luZztcbmNvbnN0IGZhVHJhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZjhcIiwgXCJNMTM1LjIgMTcuN0wxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTcuMi0xNC4zQzMwNy40IDYuOCAyOTYuMyAwIDI4NC4yIDBMMTYzLjggMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN3pNNDE2IDEyOEwzMiAxMjggNTMuMiA0NjdjMS42IDI1LjMgMjIuNiA0NSA0Ny45IDQ1bDI0NS44IDBjMjUuMyAwIDQ2LjMtMTkuNyA0Ny45LTQ1TDQxNiAxMjh6XCJdXG59O1xuY29uc3QgZmFHYXVnZVNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1zaW1wbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdhdWdlLXNpbXBsZS1tZWRcIiwgXCJ0YWNob21ldGVyLWF2ZXJhZ2VcIl0sIFwiZjYyOVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjgwIDg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA0LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuM2MwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbmNvbnN0IGZhR2F1Z2VTaW1wbGVNZWQgPSBmYUdhdWdlU2ltcGxlO1xuY29uc3QgZmFUYWNob21ldGVyQXZlcmFnZSA9IGZhR2F1Z2VTaW1wbGU7XG5jb25zdCBmYUJvb2tNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stbWVkaWNhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdlNlwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjA4IDExMmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVBvbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb28nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxNjldLCBcImYyZmVcIiwgXCJNMjY4LjkgLjljLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS40YzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjFjMCA0NC4xLTM1LjcgNzkuOS03OS44IDgwTDE2MCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4TDEwNCAyNDBjLTM5LjggMC03MiAzMi4yLTcyIDcyYzAgMjMuMiAxMSA0My44IDI4IDU3Yy0zNC4xIDUuNy02MCAzNS4zLTYwIDcxYzAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyYzAtMzUuNy0yNS45LTY1LjMtNjAtNzFjMTctMTMuMiAyOC0zMy44IDI4LTU3YzAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyYzAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjdjLTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43YzAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM2wxNjcuNCAwYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3pcIl1cbn07XG5jb25zdCBmYVF1b3RlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVvdGUtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MjIxLCBcInF1b3RlLXJpZ2h0LWFsdFwiXSwgXCJmMTBlXCIsIFwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDAgMzIgMCA3MnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiAwIDMyIDAgNzJ6XCJdXG59O1xuY29uc3QgZmFRdW90ZVJpZ2h0QWx0ID0gZmFRdW90ZVJpZ2h0O1xuY29uc3QgZmFTaGlydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGlydCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODA4NSwgXCJ0LXNoaXJ0XCIsIFwidHNoaXJ0XCJdLCBcImY1NTNcIiwgXCJNMjExLjggMGM3LjggMCAxNC4zIDUuNyAxNi43IDEzLjJDMjQwLjggNTEuOSAyNzcuMSA4MCAzMjAgODBzNzkuMi0yOC4xIDkxLjUtNjYuOEM0MTMuOSA1LjcgNDIwLjQgMCA0MjguMiAwbDEyLjYgMGMyMi41IDAgNDQuMiA3LjkgNjEuNSAyMi4zTDYyOC41IDEyNy40YzYuNiA1LjUgMTAuNyAxMy41IDExLjQgMjIuMXMtMi4xIDE3LjEtNy44IDIzLjZsLTU2IDY0Yy0xMS40IDEzLjEtMzEuMiAxNC42LTQ0LjYgMy41TDQ4MCAxOTcuNyA0ODAgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNTAuMy01MS41IDQyLjljLTEzLjMgMTEuMS0zMy4xIDkuNi00NC42LTMuNWwtNTYtNjRjLTUuNy02LjUtOC41LTE1LTcuOC0yMy42czQuOC0xNi42IDExLjQtMjIuMUwxMzcuNyAyMi4zQzE1NSA3LjkgMTc2LjcgMCAxOTkuMiAwbDEyLjYgMHpcIl1cbn07XG5jb25zdCBmYVRTaGlydCA9IGZhU2hpcnQ7XG5jb25zdCBmYVRzaGlydCA9IGZhU2hpcnQ7XG5jb25zdCBmYUN1YmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2N1YmVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMWIzXCIsIFwiTTI5MC44IDQ4LjZsNzguNCAyOS43TDI4OCAxMDkuNSAyMDYuOCA3OC4zbDc4LjQtMjkuN2MxLjgtLjcgMy44LS43IDUuNyAwek0xMzYgOTIuNWwwIDExMi4yYy0xLjMgLjQtMi42IC44LTMuOSAxLjNsLTk2IDM2LjRDMTQuNCAyNTAuNiAwIDI3MS41IDAgMjk0LjdMMCA0MTMuOWMwIDIyLjIgMTMuMSA0Mi4zIDMzLjUgNTEuM2w5NiA0Mi4yYzE0LjQgNi4zIDMwLjcgNi4zIDQ1LjEgMEwyODggNDU3LjVsMTEzLjUgNDkuOWMxNC40IDYuMyAzMC43IDYuMyA0NS4xIDBsOTYtNDIuMmMyMC4zLTguOSAzMy41LTI5LjEgMzMuNS01MS4zbDAtMTE5LjFjMC0yMy4zLTE0LjQtNDQuMS0zNi4xLTUyLjRsLTk2LTM2LjRjLTEuMy0uNS0yLjYtLjktMy45LTEuM2wwLTExMi4yYzAtMjMuMy0xNC40LTQ0LjEtMzYuMS01Mi40bC05Ni0zNi40Yy0xMi44LTQuOC0yNi45LTQuOC0zOS43IDBsLTk2IDM2LjRDMTUwLjQgNDguNCAxMzYgNjkuMyAxMzYgOTIuNXpNMzkyIDIxMC42bC04Mi40IDMxLjIgMC04OS4yTDM5MiAxMjFsMCA4OS42ek0xNTQuOCAyNTAuOWw3OC40IDI5LjdMMTUyIDMxMS43IDcwLjggMjgwLjZsNzguNC0yOS43YzEuOC0uNyAzLjgtLjcgNS43IDB6bTE4LjggMjA0LjRsMC0xMDAuNUwyNTYgMzIzLjJsMCA5NS45LTgyLjQgMzYuMnpNNDIxLjIgMjUwLjljMS44LS43IDMuOC0uNyA1LjcgMGw3OC40IDI5LjdMNDI0IDMxMS43bC04MS4yLTMxLjEgNzguNC0yOS43ek01MjMuMiA0MjEuMmwtNzcuNiAzNC4xIDAtMTAwLjVMNTI4IDMyMy4ybDAgOTAuN2MwIDMuMi0xLjkgNi00LjggNy4zelwiXVxufTtcbmNvbnN0IGZhRGl2aWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpdmlkZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEwMTM1LCAyNDddLCBcImY1MjlcIiwgXCJNMjcyIDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgMzIwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQwMCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNDggMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM1MiAwelwiXVxufTtcbmNvbnN0IGZhVGVuZ2VTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbmdlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4Mzc2LCBcInRlbmdlXCJdLCBcImY3ZDdcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMCAxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIl1cbn07XG5jb25zdCBmYVRlbmdlID0gZmFUZW5nZVNpZ247XG5jb25zdCBmYUhlYWRwaG9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZHBob25lcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkxMV0sIFwiZjAyNVwiLCBcIk0yNTYgODBDMTQ5LjkgODAgNjIuNCAxNTkuNCA0OS42IDI2MmM5LjQtMy44IDE5LjYtNiAzMC40LTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTYgMC00OCAwLTQ4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2bDAgNDggMCA0OCAwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGMxMC44IDAgMjEgMi4xIDMwLjQgNkM0NDkuNiAxNTkuNCAzNjIuMSA4MCAyNTYgODB6XCJdXG59O1xuY29uc3QgZmFIYW5kc0hvbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtaG9sZGluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRjMlwiLCBcIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0bDAgNTYgMCA2NEwwIDMyNS41YzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDEyOCA0OTMuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDY2LjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTc4LjljMC0yOS43LTExLjgtNTguMi0zMi44LTc5LjJsLTI1LjMtMjUuM2MwIDAgMCAwIDAgMGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wzMiAzMiAxNS4yIDE1LjJjMTEgMTEgOS4yIDI5LjItMy43IDM3LjhjLTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMjI0bDAtODAgMC00MHptNDgwIDBsMCA0MCAwIDgwIDAgNDAuMmMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNTEuMSA1MS4xYy04LjMgOC4zLTIxLjMgOS42LTMxIDMuMWMtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44bDE1LjItMTUuMiAzMi0zMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzIgMzItMTUuMiAxNS4yYzAgMCAwIDAgMCAwbC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMjI0bDAtNjQgMC01NmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHpcIl1cbn07XG5jb25zdCBmYUhhbmRzQ2xhcHBpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtY2xhcHBpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxYThcIiwgXCJNMzM2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0tOTguNyA3LjFsMzIgNDhjNC45IDcuNCAyLjkgMTcuMy00LjQgMjIuMnMtMTcuMyAyLjktMjIuMi00LjRsLTMyLTQ4Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjRjLTY0IDM4LjQtMTQ1LjggMjguMy0xOTguNS0yNC40TDcgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTMgNTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMMjMgMjY1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsOTMgOTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMNTUgMTg1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTE3IDExN2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMWwtOTMtOTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45ek00MzMuMSA0ODQuOWMtMjQuMiAxNC41LTUwLjkgMjIuMS03Ny43IDIzLjFjNDguMS0zOS42IDc2LjYtOTkgNzYuNi0xNjIuNGwwLTk4LjFjOC4yLS4xIDE2LTYuNCAxNi0xNmwwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNHpNNDI0LjkgMTguN2M3LjQgNC45IDkuMyAxNC44IDQuNCAyMi4ybC0zMiA0OGMtNC45IDcuNC0xNC44IDkuMy0yMi4yIDQuNHMtOS4zLTE0LjgtNC40LTIyLjJsMzItNDhjNC45LTcuNCAxNC44LTkuMyAyMi4yLTQuNHpcIl1cbn07XG5jb25zdCBmYVJlcHVibGljYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVwdWJsaWNhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc1ZVwiLCBcIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMybDIyNCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjRMMCAyNTZsMC02NHptNDE1LjktNjRjLTIuNCAwLTQuNyAxLjMtNS43IDMuNGwtMTIuNiAyNC42LTI4LjIgNGMtMi40IC4zLTQuNCAyLTUuMiA0LjJzLS4xIDQuNyAxLjYgNi4zbDIwLjQgMTkuMi00LjggMjcuMWMtLjQgMi4zIC42IDQuNyAyLjUgNnM0LjYgMS42IDYuNyAuNWwyNS4yLTEyLjggMjUuMiAxMi44YzIuMiAxLjEgNC44IC45IDYuNy0uNXMzLTMuNyAyLjUtNmwtNC44LTI3LjFMNDY2IDE3MC41YzEuNy0xLjYgMi40LTQuMSAxLjYtNi4zcy0yLjgtMy45LTUuMi00LjJsLTI4LjItNC0xMi42LTI0LjZjLTEuMS0yLjEtMy4zLTMuNC01LjctMy40em0tMTM4LjMgMy40Yy0xLjEtMi4xLTMuMy0zLjQtNS43LTMuNHMtNC43IDEuMy01LjcgMy40bC0xMi42IDI0LjYtMjguMiA0Yy0yLjQgLjMtNC40IDItNS4yIDQuMnMtLjEgNC43IDEuNiA2LjNsMjAuNCAxOS4yLTQuOCAyNy4xYy0uNCAyLjMgLjYgNC43IDIuNSA2czQuNiAxLjYgNi43IC41bDI1LjItMTIuOCAyNS4yIDEyLjhjMi4yIDEuMSA0LjggLjkgNi43LS41czMtMy43IDIuNS02bC00LjgtMjcuMUwzMjIgMTcwLjVjMS43LTEuNiAyLjQtNC4xIDEuNi02LjNzLTIuOC0zLjktNS4yLTQuMmwtMjguMi00LTEyLjYtMjQuNnpNMTI3LjkgMTI4Yy0yLjQgMC00LjcgMS4zLTUuNyAzLjRsLTEyLjYgMjQuNi0yOC4yIDRjLTIuNCAuMy00LjQgMi01LjIgNC4ycy0uMSA0LjcgMS42IDYuM2wyMC40IDE5LjItNC44IDI3LjFjLS40IDIuMyAuNiA0LjcgMi41IDZzNC42IDEuNiA2LjcgLjVsMjUuMi0xMi44IDI1LjIgMTIuOGMyLjIgMS4xIDQuOCAuOSA2LjctLjVzMy0zLjcgMi41LTZsLTQuOC0yNy4xTDE3OCAxNzAuNWMxLjctMS42IDIuNC00LjEgMS42LTYuM3MtMi44LTMuOS01LjItNC4ybC0yOC4yLTQtMTIuNi0yNC42Yy0xLjEtMi4xLTMuMy0zLjQtNS43LTMuNHptLjEgMTYwbDE5MiAwIDk2IDAgMzIgMCA2NCAwIDMyIDAgMCAzMiAwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgMzIgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0IDAtOTYgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg1OTJdLCBcImYwNjBcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjIgMjg4IDQxNiAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwNi43IDBMMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFQZXJzb25DaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQzXCIsIFwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjMuMUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmwyOS43IDBjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45IDIzMiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMEw0MzIgMzQ1LjRsLTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw0MDkuNCAzNjhsLTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDQzMiAzOTAuNmwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42TDQ1NC42IDM2OGwzNi43LTM2Ljd6XCJdXG59O1xuY29uc3QgZmFSdWxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIwN10sIFwiZjU0NVwiLCBcIk0xNzcuOSA0OTQuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTcuOSA0MDEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsNTAuNy01MC43IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNTAuNy01MC43YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDkyLjEgOTIuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxNzcuOSA0OTQuMXpcIl1cbn07XG5jb25zdCBmYUFsaWduTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM2XCIsIFwiTTI4OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFEaWNlRDYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1kNicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjZkMVwiLCBcIk0yMDEgMTAuM2MxNC4zLTcuOCAzMS42LTcuOCA0NiAwTDQyMi4zIDEwNmM1LjEgMi44IDguMyA4LjIgOC4zIDE0cy0zLjIgMTEuMi04LjMgMTRMMjMxLjcgMjM4Yy00LjggMi42LTEwLjUgMi42LTE1LjMgMEwyNS43IDEzNGMtNS4xLTIuOC04LjMtOC4yLTguMy0xNHMzLjItMTEuMiA4LjMtMTRMMjAxIDEwLjN6TTIzLjcgMTcwbDE3NiA5NmM1LjEgMi44IDguMyA4LjIgOC4zIDE0bDAgMjE2YzAgNS42LTMgMTAuOS03LjggMTMuOHMtMTAuOSAzLTE1LjggLjNMMjUgNDIzLjFDOS42IDQxNC43IDAgMzk4LjYgMCAzODFMMCAxODRjMC01LjYgMy0xMC45IDcuOC0xMy44czEwLjktMyAxNS44LS4zem00MDAuNyAwYzUtMi43IDExLTIuNiAxNS44IC4zczcuOCA4LjEgNy44IDEzLjhsMCAxOTdjMCAxNy42LTkuNiAzMy43LTI1IDQyLjFMMjYzLjcgNTEwYy01IDIuNy0xMSAyLjYtMTUuOC0uM3MtNy44LTguMS03LjgtMTMuOGwwLTIxNmMwLTUuOSAzLjItMTEuMiA4LjMtMTRsMTc2LTk2elwiXVxufTtcbmNvbnN0IGZhUmVzdHJvb20gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVzdHJvb20nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3YmRcIiwgXCJNODAgNDhhNDggNDggMCAxIDEgOTYgMEE0OCA0OCAwIDEgMSA4MCA0OHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTU0LjhjLTguMSA5LjItMjEuMSAxMy4yLTMzLjUgOS40Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwzMC45LTk5LjFDNDQuOSAxNTUuMyA4MiAxMjggMTI0IDEyOGw4IDBjNDIgMCA3OS4xIDI3LjMgOTEuNiA2Ny40bDMwLjkgOTkuMWM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xYy0xMi40IDMuOS0yNS40LS4yLTMzLjUtOS40TDIwMCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNMzIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00NjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ2NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00NDAgNDgwbDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw5LTI2LjljLTMuMiAwLTYuNC0uNS05LjUtMS41Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMWMtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFMNTg0IDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhSiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTA2XSwgXCI0YVwiLCBcIk0yODggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMGwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVXNlcnNWaWV3ZmluZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLXZpZXdmaW5kZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OTVcIiwgXCJNNDggNDhsODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6TTE3NS44IDIyNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS0yNi41IDMyQzExOS45IDI1NiA5NiAyNzkuOSA5NiAzMDkuM2MwIDE0LjcgMTEuOSAyNi43IDI2LjcgMjYuN2w1Ni4xIDBjOC0zNC4xIDMyLjgtNjEuNyA2NS4yLTczLjZjLTcuNS00LjEtMTYuMi02LjQtMjUuMy02LjRsLTY5LjMgMHptMzY4IDgwYzE0LjcgMCAyNi43LTExLjkgMjYuNy0yNi43YzAtMjkuNS0yMy45LTUzLjMtNTMuMy01My4zbC02OS4zIDBjLTkuMiAwLTE3LjggMi4zLTI1LjMgNi40YzMyLjQgMTEuOSA1Ny4yIDM5LjUgNjUuMiA3My42bDU2LjEgMHptLTg5LjQgMGMtOC42LTI0LjMtMjkuOS00Mi42LTU1LjktNDdjLTMuOS0uNy03LjktMS0xMi0xbC04MCAwYy00LjEgMC04LjEgLjMtMTIgMWMtMjYgNC40LTQ3LjMgMjIuNy01NS45IDQ3Yy0yLjcgNy41LTQuMSAxNS42LTQuMSAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGMwLTguNC0xLjQtMTYuNS00LjEtMjR6TTQ2NCAyMjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAtMzJhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01MDQgNDhsODggMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xNy43LTE0LjMtMzItMzItMzJMNTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6TTQ4IDQ2NGwwLTg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwem00NTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg4LTg4IDB6XCJdXG59O1xuY29uc3QgZmFGaWxlVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS12aWRlbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjOFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTY0IDI4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTMwMC45IDM5Ny45TDI1NiAzNjhsMC02NCA0NC45LTI5LjljMi0xLjMgNC40LTIuMSA2LjgtMi4xYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM2wwIDEwMy40YzAgNi44LTUuNSAxMi4zLTEyLjMgMTIuM2MtMi40IDAtNC44LS43LTYuOC0yLjF6XCJdXG59O1xuY29uc3QgZmFVcFJpZ2h0RnJvbVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cC1yaWdodC1mcm9tLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXh0ZXJuYWwtbGluay1hbHRcIl0sIFwiZjM1ZFwiLCBcIk0zNTIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlMMzcwLjcgOTYgMjAxLjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDE2IDE0MS4zbDQxLjQgNDEuNGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDM1MiAwek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMjAgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjBjMC04LjggNy4yLTE2IDE2LTE2bDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyelwiXVxufTtcbmNvbnN0IGZhRXh0ZXJuYWxMaW5rQWx0ID0gZmFVcFJpZ2h0RnJvbVNxdWFyZTtcbmNvbnN0IGZhVGFibGVDZWxscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS1jZWxscycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGhcIl0sIFwiZjAwYVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA2NGwwIDY0LTg4IDAgMC02NCA4OCAwem01NiAwbDg4IDAgMCA2NC04OCAwIDAtNjR6bTI0MCAwbDAgNjQtODggMCAwLTY0IDg4IDB6TTY0IDIyNGw4OCAwIDAgNjQtODggMCAwLTY0em0yMzIgMGwwIDY0LTg4IDAgMC02NCA4OCAwem02NCAwbDg4IDAgMCA2NC04OCAwIDAtNjR6TTE1MiAzNTJsMCA2NC04OCAwIDAtNjQgODggMHptNTYgMGw4OCAwIDAgNjQtODggMCAwLTY0em0yNDAgMGwwIDY0LTg4IDAgMC02NCA4OCAwelwiXVxufTtcbmNvbnN0IGZhVGggPSBmYVRhYmxlQ2VsbHM7XG5jb25zdCBmYUZpbGVQZGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wZGYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYzFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxNDQtMjA4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTQ0LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMTc2IDM1MmwzMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xNiAwIDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OCAwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMzIgODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMCA0OCAxNiAwem05Ni04MGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTEyOGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDEyOGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDAgMCA5NiAxNiAwem04MC0xMTJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDAgMCAzMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NCAwLTY0elwiXVxufTtcbmNvbnN0IGZhQm9va0JpYmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stYmlibGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImJpYmxlXCJdLCBcImY2NDdcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI4OCAwIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzODQgMCA5NiAwem0wIDM4NGwyNTYgMCAwIDY0TDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMjA4IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCaWJsZSA9IGZhQm9va0JpYmxlO1xuY29uc3QgZmFPID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ28nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMTFdLCBcIjRmXCIsIFwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZBMjI0IDIyNCAwIDEgMSAwIDI1NmEyMjQgMjI0IDAgMSAxIDQ0OCAwelwiXVxufTtcbmNvbnN0IGZhU3VpdGNhc2VNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlLW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1lZGtpdFwiXSwgXCJmMGZhXCIsIFwiTTE4NCA0OGwxNDQgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MEwxNzYgOTZsMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAgMCAzMiAwIDM1MiAyNTYgMCAwLTM1MiAwLTMyIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMTg0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek05NiA5Nkw2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMEw5NiA5NnpNNDE2IDQ4MGwzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgMzg0ek0yMjQgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhTWVka2l0ID0gZmFTdWl0Y2FzZU1lZGljYWw7XG5jb25zdCBmYVVzZXJTZWNyZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1zZWNyZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgzNzNdLCBcImYyMWJcIiwgXCJNMjI0IDE2Yy02LjcgMC0xMC44LTIuOC0xNS41LTYuMUMyMDEuOSA1LjQgMTk0IDAgMTc2IDBjLTMwLjUgMC01MiA0My43LTY2IDg5LjRDNjIuNyA5OC4xIDMyIDExMi4yIDMyIDEyOGMwIDE0LjMgMjUgMjcuMSA2NC42IDM1LjljLS40IDQtLjYgOC0uNiAxMi4xYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC01OS45IDBDMzggMjI0IDMyIDIzMCAzMiAyMzcuNGMwIDEuNyAuMyAzLjQgMSA1bDM4LjggOTYuOUMyOC4yIDM3MS44IDAgNDIzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM4OC42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjdjMC01OC41LTI4LjItMTEwLjQtNzEuNy0xNDNMNDE1IDI0Mi40Yy42LTEuNiAxLTMuMyAxLTVjMC03LjQtNi0xMy40LTEzLjQtMTMuNGwtNTkuOSAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4YzAtNC4xLS4yLTguMS0uNi0xMi4xQzM5MSAxNTUuMSA0MTYgMTQyLjMgNDE2IDEyOGMwLTE1LjgtMzAuNy0yOS45LTc4LTM4LjZDMzI0IDQzLjcgMzAyLjUgMCAyNzIgMGMtMTggMC0yNS45IDUuNC0zMi41IDkuOWMtNC44IDMuMy04LjggNi4xLTE1LjUgNi4xem01NiAyMDhsLTEyLjQgMGMtMTYuNSAwLTMxLjEtMTAuNi0zNi4zLTI2LjJjLTIuMy03LTEyLjItNy0xNC41IDBjLTUuMiAxNS42LTE5LjkgMjYuMi0zNi4zIDI2LjJMMTY4IDIyNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xNC40YzI4LjIgNC4xIDYxIDYuNCA5NiA2LjRzNjcuOC0yLjMgOTYtNi40bDAgMTQuNGMwIDIyLjEtMTcuOSA0MC00MCA0MHptLTg4IDk2bDE2IDMyTDE3NiA0ODAgMTI4IDI4OGw2NCAzMnptMTI4LTMyTDI3MiA0ODAgMjQwIDM1MmwxNi0zMiA2NC0zMnpcIl1cbn07XG5jb25zdCBmYU90dGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ290dGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5NDQ2XSwgXCJmNzAwXCIsIFwiTTE4MS41IDE5Ny4xbDEyLjkgNi40YzUuOSAzIDEyLjQgNC41IDE5LjEgNC41YzIzLjUgMCA0Mi42LTE5LjEgNDIuNi00Mi42bDAtMjEuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMS40YzAgMjMuNSAxOS4xIDQyLjYgNDIuNiA0Mi42YzYuNiAwIDEzLjEtMS41IDE5LjEtNC41bDEyLjktNi40IDguNC00LjJMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRMMTYwIDI0MGwtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42Yy0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC00OCAwLTE2YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGM5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyIDAgMTYgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjFzMCAwIDAgMGMwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0bC0xLjEgMEwyNTYgNDgwbC0uNiAwQzEzMiA0ODAgMzIgMzgwIDMyIDI1Ni42bDAtLjYgMC0zOS4yYy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40TDE2IDE0NGwwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjNjMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjNjLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuM2MtMTQuMSAwLTI3LjktMy4zLTQwLjUtOS42ek05NiAxMjhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyem0xMTIgMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkRyZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcycsXG4gIGljb246IFszMjAsIDUxMiwgW1wiZmVtYWxlXCJdLCBcImYxODJcIiwgXCJNMTYwIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek04OCAzODRsLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMOTMuMyAyNDguMSA1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTMuNi04OS4yYzIwLjMtMzMuNyA1Ni43LTU0LjMgOTYtNTQuM2wxMS42IDBjMzkuMyAwIDc1LjcgMjAuNiA5NiA1NC4zbDUzLjYgODkuMmM5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOWwtMzMuOS01Ni4zTDI2NSAzNjIuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFMMjMyIDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZ6XCJdXG59O1xuY29uc3QgZmFGZW1hbGUgPSBmYVBlcnNvbkRyZXNzO1xuY29uc3QgZmFDb21tZW50RG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbW1lbnQtZG9sbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjUxXCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXptMjAtMzEybDAgMTMuOWM3LjUgMS4yIDE0LjYgMi45IDIxLjEgNC43YzEwLjcgMi44IDE3IDEzLjggMTQuMiAyNC41cy0xMy44IDE3LTI0LjUgMTQuMmMtMTEtMi45LTIxLjYtNS0zMS4yLTUuMmMtNy45LS4xLTE2IDEuOC0yMS41IDVjLTQuOCAyLjgtNi4yIDUuNi02LjIgOS4zYzAgMS44IC4xIDMuNSA1LjMgNi43YzYuMyAzLjggMTUuNSA2LjcgMjguMyAxMC41bC43IC4yYzExLjIgMy40IDI1LjYgNy43IDM3LjEgMTVjMTIuOSA4LjEgMjQuMyAyMS4zIDI0LjYgNDEuNmMuMyAyMC45LTEwLjUgMzYuMS0yNC44IDQ1Yy03LjIgNC41LTE1LjIgNy4zLTIzLjIgOWwwIDEzLjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTQuNmMtMTAuMy0yLjItMjAtNS41LTI4LjItOC40YzAgMCAwIDAgMCAwczAgMCAwIDBjLTIuMS0uNy00LjEtMS40LTYuMS0yLjFjLTEwLjUtMy41LTE2LjEtMTQuOC0xMi42LTI1LjNzMTQuOC0xNi4xIDI1LjMtMTIuNmMyLjUgLjggNC45IDEuNyA3LjIgMi40YzAgMCAwIDAgMCAwYzEzLjYgNC42IDI0IDguMSAzNS4xIDguNWM4LjYgLjMgMTYuNS0xLjYgMjEuNC00LjdjNC4xLTIuNSA2LTUuNSA1LjktMTAuNWMwLTIuOS0uOC01LTUuOS04LjJjLTYuMy00LTE1LjQtNi45LTI4LTEwLjdsLTEuNy0uNWMtMTAuOS0zLjMtMjQuNi03LjQtMzUuNi0xNGMtMTIuNy03LjctMjQuNi0yMC41LTI0LjctNDAuN2MtLjEtMjEuMSAxMS44LTM1LjcgMjUuOC00My45YzYuOS00LjEgMTQuNS02LjggMjIuMi04LjVsMC0xNGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHpcIl1cbn07XG5jb25zdCBmYUJ1c2luZXNzVGltZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXNpbmVzcy10aW1lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJicmllZmNhc2UtY2xvY2tcIl0sIFwiZjY0YVwiLCBcIk0xODQgNDhsMTQ0IDBjNC40IDAgOCAzLjYgOCA4bDAgNDBMMTc2IDk2bDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwTDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDE5MiAwIDE2MCAwIDguMiAwYzMyLjMtMzkuMSA4MS4xLTY0IDEzNS44LTY0YzUuNCAwIDEwLjcgLjIgMTYgLjdsMC0zMi43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMTg0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek0zMjAgMzUybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyTDAgMjg4IDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI5Ni4yIDBDMzM1LjEgNDQ5LjYgMzIwIDQxMC41IDMyMCAzNjhjMC01LjQgLjItMTAuNyAuNy0xNmwtLjcgMHptMzIwIDE2YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQ5NiAyODhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQnJpZWZjYXNlQ2xvY2sgPSBmYUJ1c2luZXNzVGltZTtcbmNvbnN0IGZhVGFibGVDZWxsc0xhcmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWNlbGxzLWxhcmdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0aC1sYXJnZVwiXSwgXCJmMDA5XCIsIFwiTTQ0OCA5NmwwIDEyOC0xNjAgMCAwLTEyOCAxNjAgMHptMCAxOTJsMCAxMjgtMTYwIDAgMC0xMjggMTYwIDB6TTIyNCAyMjRMNjQgMjI0IDY0IDk2bDE2MCAwIDAgMTI4ek02NCAyODhsMTYwIDAgMCAxMjhMNjQgNDE2bDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbmNvbnN0IGZhVGhMYXJnZSA9IGZhVGFibGVDZWxsc0xhcmdlO1xuY29uc3QgZmFCb29rVGFuYWtoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stdGFuYWtoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YW5ha2hcIl0sIFwiZjgyN1wiLCBcIk0zNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzUyIDB6bTAgMzg0TDk2IDM4NGwwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyek0xMzguNyAyMDhsMTMuOSAyNC0yNy43IDAgMTMuOS0yNHptLTEzLjktMjRMOTcuMSAyMzJjLTYuMiAxMC43IDEuNSAyNCAxMy45IDI0bDU1LjQgMCAyNy43IDQ4YzYuMiAxMC43IDIxLjYgMTAuNyAyNy43IDBsMjcuNy00OCA1NS40IDBjMTIuMyAwIDIwLTEzLjMgMTMuOS0yNGwtMjcuNy00OCAyNy43LTQ4YzYuMi0xMC43LTEuNS0yNC0xMy45LTI0bC01NS40IDBMMjIxLjkgNjRjLTYuMi0xMC43LTIxLjYtMTAuNy0yNy43IDBsLTI3LjcgNDhMMTExIDExMmMtMTIuMyAwLTIwIDEzLjMtMTMuOSAyNGwyNy43IDQ4em0yNy43IDBsMjcuNy00OCA1NS40IDAgMjcuNyA0OC0yNy43IDQ4LTU1LjQgMC0yNy43LTQ4em0wLTQ4bC0xMy45IDI0LTEzLjktMjQgMjcuNyAwem00MS42LTI0TDIwOCA4OGwxMy45IDI0LTI3LjcgMHptNjkuMyAyNGwyNy43IDAtMTMuOSAyNC0xMy45LTI0em0xMy45IDcybDEzLjkgMjQtMjcuNyAwIDEzLjktMjR6bS01NS40IDQ4TDIwOCAyODBsLTEzLjktMjQgMjcuNyAwelwiXVxufTtcbmNvbnN0IGZhVGFuYWtoID0gZmFCb29rVGFuYWtoO1xuY29uc3QgZmFQaG9uZVZvbHVtZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZS12b2x1bWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInZvbHVtZS1jb250cm9sLXBob25lXCJdLCBcImYyYTBcIiwgXCJNMjgwIDBDNDA4LjEgMCA1MTIgMTAzLjkgNTEyIDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0Yzc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTE3LjUgMS40YzE5LjQtNS4zIDM5LjcgNC42IDQ3LjQgMjMuMmw0MCA5NmM2LjggMTYuMyAyLjEgMzUuMi0xMS42IDQ2LjNMMTQ0IDIwNy4zYzMzLjMgNzAuNCA5MC4zIDEyNy40IDE2MC43IDE2MC43TDM0NSAzMTguN2MxMS4yLTEzLjcgMzAtMTguNCA0Ni4zLTExLjZsOTYgNDBjMTguNiA3LjcgMjguNSAyOCAyMy4yIDQ3LjRsLTI0IDg4QzQ4MS44IDQ5OS45IDQ2NiA1MTIgNDQ4IDUxMkMyMDAuNiA1MTIgMCAzMTEuNCAwIDY0QzAgNDYgMTIuMSAzMC4yIDI5LjUgMjUuNGw4OC0yNHpcIl1cbn07XG5jb25zdCBmYVZvbHVtZUNvbnRyb2xQaG9uZSA9IGZhUGhvbmVWb2x1bWU7XG5jb25zdCBmYUhhdENvd2JveVNpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGF0LWNvd2JveS1zaWRlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmOGMxXCIsIFwiTTE1Mi43IDEzNS45bC0xMC40IDU3LjJjNi44LS43IDEzLjYtMS4xIDIwLjUtMS4xbDEwLjcgMGMzOS40IDAgNzcuOCAxMi4xIDExMC4xIDM0LjdMNTYyLjQgNDIxLjhsMzUuMSAyNC42YzI0LjQtNiA0Mi41LTI4LjEgNDIuNS01NC40YzAtNzUuOC05NC43LTEyNi42LTEzNC42LTE0NC43TDQ3NCA4My45QzQ2OC4yIDUzLjggNDQxLjggMzIgNDExLjEgMzJsLTIuNyAwYy01LjYgMC0xMS4xIC43LTE2LjUgMi4yTDE5OS4yIDg1LjVjLTIzLjkgNi40LTQyIDI2LTQ2LjUgNTAuNHpNMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDgwIDBMMjY1LjMgMjUyLjljLTI2LjktMTguOC01OC45LTI4LjktOTEuOC0yOC45bC0xMC43IDBjLTYwLjYgMC0xMTYgMzQuMi0xNDMuMSA4OC40TDEzLjUgMzI1QzQuNiAzNDIuNyAwIDM2Mi4zIDAgMzgyLjJMMCAzODR6XCJdXG59O1xuY29uc3QgZmFDbGlwYm9hcmRVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC11c2VyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2YzXCIsIFwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM3LjUgMEMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xMjggMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNODAgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2elwiXVxufTtcbmNvbnN0IGZhQ2hpbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYxYWVcIiwgXCJNOTYgNjRhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgNjR6bTQ4IDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLjJMNTkuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMFMtNC41IDMwMS45IDQuOSAyODdsMzkuOS02My4zQzY5LjcgMTg0IDExMy4yIDE2MCAxNjAgMTYwczkwLjMgMjQgMTE1LjIgNjMuNkwzMTUuMSAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBMMjQwIDI4Ny44IDI0MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAwelwiXVxufTtcbmNvbnN0IGZhTGlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlyYS1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbODM1Nl0sIFwiZjE5NVwiLCBcIk0xMTIgMTYwLjRjMC0zNS41IDI4LjgtNjQuNCA2NC40LTY0LjRjNi45IDAgMTMuOCAxLjEgMjAuNCAzLjNsODEuMiAyNy4xYzE2LjggNS42IDM0LjktMy41IDQwLjUtMjAuMnMtMy41LTM0LjktMjAuMi00MC41TDIxNyAzOC42Yy0xMy4xLTQuNC0yNi44LTYuNi00MC42LTYuNkMxMDUuNSAzMiA0OCA4OS41IDQ4IDE2MC40TDQ4IDE5MmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMzItMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNCAwYy0yLjIgMTAuNS02LjEgMjAuNi0xMS43IDI5LjlMNC42IDQzMS41Yy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJTMjAuNSA0ODAgMzIgNDgwbDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDg4LjUgNDE2bC43LTEuMWMxMS42LTE5LjMgMTguOS00MC43IDIxLjYtNjIuOUwyMjQgMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTMyIDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMCAwLTMxLjZ6XCJdXG59O1xuY29uc3QgZmFTYXRlbGxpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NzUyXSwgXCJmN2JmXCIsIFwiTTIzMyA3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtOTYgOTZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDg5LjQgODkuNC0xNS41IDE1LjVDMTUyLjMgMjMwLjQgMTI0LjkgMjI0IDk2IDIyNGMtMzEuNyAwLTYxLjUgNy43LTg3LjggMjEuMmMtOSA0LjctMTAuMyAxNi43LTMuMSAyMy44TDExMi43IDM3Ni43IDk2LjMgMzkzLjFjLTIuNi0uNy01LjQtMS4xLTguMy0xLjFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTIuOS0uNC01LjYtMS4xLTguM2wxNi40LTE2LjRMMjQyLjkgNTA2LjljNy4yIDcuMiAxOS4yIDUuOSAyMy44LTMuMUMyODAuMyA0NzcuNSAyODggNDQ3LjcgMjg4IDQxNmMwLTI4LjktNi40LTU2LjMtMTcuOC04MC45bDE1LjUtMTUuNUwzNzUgNDA5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDk2LTk2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC04OS40LTg5LjQgNTUtNTVjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTQ4LTQ4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNTUgNTVMMjMzIDd6bTE1OSAzNTFsLTcyLjQtNzIuNCA2Mi4xLTYyLjFMNDU0LjEgMjk2IDM5MiAzNTguMXpNMjI2LjMgMTkyLjRMMTUzLjkgMTIwIDIxNiA1Ny45bDcyLjQgNzIuNC02Mi4xIDYyLjF6XCJdXG59O1xuY29uc3QgZmFQbGFuZUxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1OFwiLCBcIk0xOTIgOTMuN0MxOTIgNTkuNSAyMjEgMCAyNTYgMGMzNiAwIDY0IDU5LjUgNjQgOTMuN2wwIDg0LjYgMTAxLjggNTguMkM0MTggMjQ3LjYgNDE2IDI1OS42IDQxNiAyNzJsMCAyNC42Yy0xNy45IDEwLjQtMzAuMyAyOS4xLTMxLjggNTAuOUwzMjAgMzI5LjFsMCA3MC45IDU3LjYgNDMuMmM0IDMgNi40IDcuOCA2LjQgMTIuOGwwIDI0IDAgMThjMCA3LjgtNi4zIDE0LTE0IDE0Yy0xLjMgMC0yLjYtLjItMy45LS41TDI1NiA0ODAgMTQ1LjkgNTExLjVjLTEuMyAuNC0yLjYgLjUtMy45IC41Yy03LjggMC0xNC02LjMtMTQtMTRsMC00MmMwLTUgMi40LTkuOCA2LjQtMTIuOEwxOTIgNDAwbDAtNzAuOS0xNzEuNiA0OUMxMC4yIDM4MS4xIDAgMzczLjQgMCAzNjIuOGwwLTY1LjVjMC01LjcgMy4xLTExIDguMS0xMy45TDE5MiAxNzguM2wwLTg0LjZ6TTUyOCAyNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMC00OHpcIl1cbn07XG5jb25zdCBmYVRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc5OTFdLCBcImYwMmJcIiwgXCJNMCA4MEwwIDIyOS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE3NiAxNzZjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDE4LjcgMzE3LjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE3Ni0xNzZjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTEyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNvbW1lbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQ4OSwgNjE2NjldLCBcImYwNzVcIiwgXCJNNTEyIDI0MGMwIDExNC45LTExNC42IDIwOC0yNTYgMjA4Yy0zNy4xIDAtNzIuMy02LjQtMTA0LjEtMTcuOWMtMTEuOSA4LjctMzEuMyAyMC42LTU0LjMgMzAuNkM3My42IDQ3MS4xIDQ0LjcgNDgwIDE2IDQ4MGMtNi41IDAtMTIuMy0zLjktMTQuOC05LjljLTIuNS02LTEuMS0xMi44IDMuNC0xNy40YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMy0uM2MuMy0uMyAuNy0uNyAxLjMtMS40YzEuMS0xLjIgMi44LTMuMSA0LjktNS43YzQuMS01IDkuNi0xMi40IDE1LjItMjEuNmMxMC0xNi42IDE5LjUtMzguNCAyMS40LTYyLjlDMTcuNyAzMjYuOCAwIDI4NS4xIDAgMjQwQzAgMTI1LjEgMTE0LjYgMzIgMjU2IDMyczI1NiA5My4xIDI1NiAyMDh6XCJdXG59O1xuY29uc3QgZmFDYWtlQ2FuZGxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWtlLWNhbmRsZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4NzQsIFwiYmlydGhkYXktY2FrZVwiLCBcImNha2VcIl0sIFwiZjFmZFwiLCBcIk04Ni40IDUuNUw2MS44IDQ3LjZDNTggNTQuMSA1NiA2MS42IDU2IDY5LjJMNTYgNzJjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42IDUuNUMxMDMuNiAyLjEgMTAwIDAgOTYgMHMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYgNS41QzIzMS42IDIuMSAyMjggMCAyMjQgMHMtNy42IDIuMS05LjYgNS41ek0zMTcuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYgNS41QzM1OS42IDIuMSAzNTYgMCAzNTIgMHMtNy42IDIuMS05LjYgNS41TDMxNy44IDQ3LjZ6TTEyOCAxNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA3MWM4LjMgNS4yIDE4LjEgOSAyOC44IDljMTMuNSAwIDI3LjItNi4xIDM4LjQtMTMuNGM1LjQtMy41IDkuOS03LjEgMTMtOS43YzEuNS0xLjMgMi43LTIuNCAzLjUtMy4xYy40LS40IC43LS42IC44LS44bC4xLS4xczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMy4xLTMuMiA3LjQtNC45IDExLjktNC44czguNiAyLjEgMTEuNiA1LjRjMCAwIDAgMCAwIDBzMCAwIDAgMGwuMSAuMWMuMSAuMSAuNCAuNCAuNyAuN2MuNyAuNyAxLjcgMS43IDMuMSAzYzIuOCAyLjYgNi44IDYuMSAxMS44IDkuNWMxMC4yIDcuMSAyMyAxMy4xIDM2LjMgMTMuMXMyNi4xLTYgMzYuMy0xMy4xYzUtMy41IDktNi45IDExLjgtOS41YzEuNC0xLjMgMi40LTIuMyAzLjEtM2MuMy0uMyAuNi0uNiAuNy0uN2wuMS0uMWMzLTMuNSA3LjQtNS40IDEyLTUuNHM5IDIgMTIgNS40bC4xIC4xYy4xIC4xIC40IC40IC43IC43Yy43IC43IDEuNyAxLjcgMy4xIDNjMi44IDIuNiA2LjggNi4xIDExLjggOS41YzEwLjIgNy4xIDIzIDEzLjEgMzYuMyAxMy4xczI2LjEtNiAzNi4zLTEzLjFjNS0zLjUgOS02LjkgMTEuOC05LjVjMS40LTEuMyAyLjQtMi4zIDMuMS0zYy4zLS4zIC42LS42IC43LS43bC4xLS4xYzIuOS0zLjQgNy4xLTUuMyAxMS42LTUuNHM4LjcgMS42IDExLjkgNC44YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGwuMSAuMWMuMiAuMiAuNCAuNCAuOCAuOGMuOCAuNyAxLjkgMS44IDMuNSAzLjFjMy4xIDIuNiA3LjUgNi4yIDEzIDkuN2MxMS4yIDcuMyAyNC45IDEzLjQgMzguNCAxMy40YzEwLjcgMCAyMC41LTMuOSAyOC44LTlsMC03MWMwLTM1LjMtMjguNy02NC02NC02NGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzk0LjZjLTguNSAzLjMtMTguMiA1LjQtMjguOCA1LjRjLTIyLjUgMC00Mi40LTkuOS01NS44LTE4LjZjLTQuMS0yLjctNy44LTUuNC0xMC45LTcuOGMtMi44IDIuNC02LjEgNS05LjggNy41QzMyOS44IDM5MCAzMTAuNiA0MDAgMjg4IDQwMHMtNDEuOC0xMC01NC42LTE4LjljLTMuNS0yLjQtNi43LTQuOS05LjQtNy4yYy0yLjcgMi4zLTUuOSA0LjctOS40IDcuMkMyMDEuOCAzOTAgMTgyLjYgNDAwIDE2MCA0MDBzLTQxLjgtMTAtNTQuNi0xOC45Yy0zLjctMi42LTctNS4yLTkuOC03LjVjLTMuMSAyLjQtNi44IDUuMS0xMC45IDcuOEM3MS4yIDM5MC4xIDUxLjMgNDAwIDI4LjggNDAwYy0xMC42IDAtMjAuMy0yLjItMjguOC01LjRMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04NS40elwiXVxufTtcbmNvbnN0IGZhQmlydGhkYXlDYWtlID0gZmFDYWtlQ2FuZGxlcztcbmNvbnN0IGZhQ2FrZSA9IGZhQ2FrZUNhbmRsZXM7XG5jb25zdCBmYUVudmVsb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Mzg2LCA5OTkzLCA2MTQ0M10sIFwiZjBlMFwiLCBcIk00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMmMwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40TDIzNi44IDMxMy42YzExLjQgOC41IDI3IDguNSAzOC40IDBMNDkyLjggMTUwLjRjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMCAxNzZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDhMMjk0LjQgMzM5LjJjLTIyLjggMTcuMS01NCAxNy4xLTc2LjggMEwwIDE3NnpcIl1cbn07XG5jb25zdCBmYUFuZ2xlc1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYW5nbGUtZG91YmxlLXVwXCJdLCBcImYxMDJcIiwgXCJNMjQ2LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjI0IDEwOS4zIDM2MS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6bTE2MCAzNTJsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDIyNCAzMDEuMyAzNjEuNCA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zelwiXVxufTtcbmNvbnN0IGZhQW5nbGVEb3VibGVVcCA9IGZhQW5nbGVzVXA7XG5jb25zdCBmYVBhcGVyY2xpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXBlcmNsaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyMDZdLCBcImYwYzZcIiwgXCJNMzY0LjIgODMuOGMtMjQuNC0yNC40LTY0LTI0LjQtODguNCAwbC0xODQgMTg0Yy00Mi4xIDQyLjEtNDIuMSAxMTAuMyAwIDE1Mi40czExMC4zIDQyLjEgMTUyLjQgMGwxNTItMTUyYzEwLjktMTAuOSAyOC43LTEwLjkgMzkuNiAwczEwLjkgMjguNyAwIDM5LjZsLTE1MiAxNTJjLTY0IDY0LTE2Ny42IDY0LTIzMS42IDBzLTY0LTE2Ny42IDAtMjMxLjZsMTg0LTE4NGM0Ni4zLTQ2LjMgMTIxLjMtNDYuMyAxNjcuNiAwczQ2LjMgMTIxLjMgMCAxNjcuNmwtMTc2IDE3NmMtMjguNiAyOC42LTc1IDI4LjYtMTAzLjYgMHMtMjguNi03NSAwLTEwMy42bDE0NC0xNDRjMTAuOS0xMC45IDI4LjctMTAuOSAzOS42IDBzMTAuOSAyOC43IDAgMzkuNmwtMTQ0IDE0NGMtNi43IDYuNy02LjcgMTcuNyAwIDI0LjRzMTcuNyA2LjcgMjQuNCAwbDE3Ni0xNzZjMjQuNC0yNC40IDI0LjQtNjQgMC04OC40elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodFRvQ2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC10by1jaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGIzXCIsIFwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0IDQwIDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDAtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDMybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAyNzJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTc2LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTY2LjYgMTUzLjRsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExNC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwelwiXVxufTtcbmNvbnN0IGZhUmliYm9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpYmJvbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzg5NV0sIFwiZjRkNlwiLCBcIk0zMzMuMiAzMjIuOHMwIDAgMCAwbC0xMzMuOS0xNDZzMCAwIDAgMEwxNDYgMTE4LjZjNy44LTUuMSAzNy0yMi42IDc4LTIyLjZzNzAuMiAxNy40IDc4IDIyLjZMMjQ1LjcgMTgwbDg1LjYgOTMuNCAyNy40LTI5LjhjMTYuMy0xNy43IDI1LjMtNDAuOSAyNS4zLTY1bDAtMjkuNWMwLTE5LTUuNi0zNy41LTE2LjEtNTMuM0wzMjcuOCAzNS42QzMxMi45IDEzLjQgMjg3LjkgMCAyNjEuMiAwbC03NiAwYy0yNS44IDAtNTAuMSAxMi41LTY1LjEgMzMuNUw4MS45IDg3QzcwLjMgMTAzLjIgNjQgMTIyLjggNjQgMTQyLjhMNjQgMTY0YzAgMjMuMiA4LjQgNDUuNiAyMy42IDYzLjFsNTYgNjQuMnMwIDAgMCAwbDgzLjMgOTUuNnMwIDAgMCAwbDkxLjggMTA1LjNjMTAgMTEuNSAyNi44IDE0LjMgNDAgNi44bDU0LjUtMzEuMWMxNy44LTEwLjIgMjEuNi0zNC4zIDcuNy00OS40bC04Ny43LTk1Ljd6TTIwNS4yIDQxMC42bC04My4zLTk1LjZMMjcuMSA0MTguNWMtMTMuOSAxNS4xLTEwLjEgMzkuMiA3LjcgNDkuNGw1NS4xIDMxLjVjMTMgNy40IDI5LjMgNC45IDM5LjQtNi4xbDc1LjktODIuNnpcIl1cbn07XG5jb25zdCBmYUx1bmdzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2x1bmdzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5NzI5XSwgXCJmNjA0XCIsIFwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTMyLjFjMCAxNi40IDguNCAzMS43IDIyLjIgNDAuNWw5LjggNi4yIDAtNDUuNUMzODQgMTI3IDQxNSA5NiA0NTMuMyA5NmMyMS43IDAgNDIuOCAxMC4yIDU1LjggMjguOGMxNS40IDIyLjEgNDQuMyA2NS40IDcxIDExNi45YzI2LjUgNTAuOSA1Mi40IDExMi41IDU5LjYgMTcwLjNjLjIgMS4zIC4yIDIuNiAuMiA0bDAgN2MwIDQ5LjEtMzkuOCA4OS04OSA4OWMtNy4zIDAtMTQuNS0uOS0yMS42LTIuN2wtNzIuNy0xOC4yQzQxNCA0ODAuNSAzODQgNDQyLjEgMzg0IDM5OGwwLTczIDkwLjUgNTcuNmM3LjUgNC43IDE3LjMgMi41IDIyLjEtNC45czIuNS0xNy4zLTQuOS0yMi4xTDM4NCAyODcuMWwwLS40LTQ0LjEtMjguMWMtNy4zLTQuNi0xMy45LTEwLjEtMTkuOS0xNi4xYy01LjkgNi0xMi42IDExLjUtMTkuOSAxNi4xTDI1NiAyODYuNyAxNjEuMiAzNDdsLTEzLjUgOC42YzAgMCAwIDAtLjEgMGMtNy40IDQuOC05LjYgMTQuNi00LjggMjIuMWM0LjcgNy41IDE0LjYgOS43IDIyLjEgNC45bDkxLjEtNTggMCA3My40YzAgNDQuMS0zMCA4Mi41LTcyLjcgOTMuMWwtNzIuNyAxOC4yYy03LjEgMS44LTE0LjMgMi43LTIxLjYgMi43Yy00OS4xIDAtODktMzkuOC04OS04OWwwLTdjMC0xLjMgLjEtMi43IC4yLTRjNy4yLTU3LjkgMzMuMS0xMTkuNCA1OS42LTE3MC4zYzI2LjgtNTEuNSA1NS42LTk0LjggNzEtMTE2LjljMTMtMTguNiAzNC0yOC44IDU1LjgtMjguOEMyMjUgOTYgMjU2IDEyNyAyNTYgMTY1LjNsMCA0NS41IDkuOC02LjJjMTMuOC04LjggMjIuMi0yNC4xIDIyLjItNDAuNUwyODggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwOTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtOS0xJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtdXAtYWx0XCJdLCBcImY4ODdcIiwgXCJNMTYwIDMyYzkgMCAxNy41IDMuOCAyMy42IDEwLjRsODggOTZjMTEuOSAxMyAxMS4xIDMzLjMtMiA0NS4ycy0zMy4zIDExLjEtNDUuMi0yTDE5MiAxNDYuMyAxOTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzAxLjdMOTUuNiAxODEuNmMtMTEuOSAxMy0zMi4yIDEzLjktNDUuMiAycy0xMy45LTMyLjItMi00NS4ybDg4LTk2QzE0Mi41IDM1LjggMTUxIDMyIDE2MCAzMnpNNDUwLjcgMjk0YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDggMC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6bS01LTE0NS4xQTMyIDMyIDAgMSAwIDQxOC4zIDkxYTMyIDMyIDAgMSAwIDI3LjQgNTcuOXptLTQwLjcgNTQuOUMzNjkuNiAxOTIuNCAzNDQgMTU5LjIgMzQ0IDEyMGMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMjMuNS03LjUgNDYuMy0yMS41IDY1LjJMNDQ5LjcgMjUxYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi43cy0xNy4yLTMwLjYtNi43LTQ0LjhsNi44LTkuMnpcIl1cbn07XG5jb25zdCBmYVNvcnROdW1lcmljVXBBbHQgPSBmYUFycm93VXA5MTtcbmNvbnN0IGZhTGl0ZWNvaW5TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpdGVjb2luLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZDNcIiwgXCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNDkuNkwyMy4yIDIyNS4yYy0xNyA0LjktMjYuOCAyMi42LTIyIDM5LjZzMjIuNiAyNi44IDM5LjYgMjJMNjQgMjgwLjEgNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE1NC4xIDEzNi44LTM5LjFjMTctNC45IDI2LjgtMjIuNiAyMi0zOS42cy0yMi42LTI2LjgtMzkuNi0yMkwxMjggMTk1LjMgMTI4IDY0elwiXVxufTtcbmNvbnN0IGZhQm9yZGVyTm9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3JkZXItbm9uZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjg1MFwiLCBcIk0zMiA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em05Ni02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAyNTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek0zMjAgNDE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMC0zMjBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIyNCA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wLTQ0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAgMjU2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNNDE2IDQxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek00MTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgMjg4YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTkyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTkyIDY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNMzIgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNDE2IDE5MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTMyIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTE5MiA2NGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVOb2RlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbm9kZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZTJcIiwgXCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjljMC00NC4yLTM1LjgtODAtODAtODBjLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4Yy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yelwiXVxufTtcbmNvbnN0IGZhUGFyYWNodXRlQm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcmFjaHV0ZS1ib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0Y2RcIiwgXCJNMzgzLjUgMTkyYy4zLTUuMyAuNS0xMC42IC41LTE2YzAtNTEtMTUuOS05Ni00MC4yLTEyNy42QzMxOS41IDE2LjkgMjg4LjIgMCAyNTYgMHMtNjMuNSAxNi45LTg3LjggNDguNEMxNDMuOSA4MCAxMjggMTI1IDEyOCAxNzZjMCA1LjQgLjIgMTAuNyAuNSAxNkwyNDAgMTkybDAgMTI4LTMyIDBjLTcgMC0xMy43IDEuNS0xOS43IDQuMkw2OC4yIDE5MmwyOC4zIDBjLS4zLTUuMy0uNS0xMC42LS41LTE2YzAtNjQgMjIuMi0xMjEuMiA1Ny4xLTE1OS4zQzYyIDQ5LjMgMTguNiAxMjIuNiA0LjIgMTczLjZDMS41IDE4My4xIDkgMTkyIDE4LjkgMTkybDYgMEwxNjUuMiAzNDYuM2MtMy4zIDYuNS01LjIgMTMuOS01LjIgMjEuN2wwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTcuOC0xLjktMTUuMi01LjItMjEuN0w0ODcuMSAxOTJsNiAwYzkuOSAwIDE3LjQtOC45IDE0LjctMTguNEM0OTMuNCAxMjIuNiA0NTAgNDkuMyAzNTguOSAxNi43QzM5My44IDU0LjggNDE2IDExMi4xIDQxNiAxNzZjMCA1LjQtLjIgMTAuNy0uNSAxNmwyOC4zIDBMMzIzLjcgMzI0LjJjLTYtMi43LTEyLjctNC4yLTE5LjctNC4ybC0zMiAwIDAtMTI4IDExMS41IDB6XCJdXG59O1xuY29uc3QgZmFJbmRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kZW50JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDNjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zelwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tGaWVsZFVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZpZWxkLXVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNThlXCIsIFwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDEyOCAwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00LjIgMGMtLjQtMS4xLS45LTIuMS0xLjMtMy4yTDQ4NS43IDEwMmMtMTAuMy0yMy4xLTMzLjItMzgtNTguNS0zOGwtNTEuOCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyem0yODggOTZsNDMuMiAwIDQyLjcgOTZMMzg0IDIyNGwwLTk2ek0xMTIgMzg0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM2OC00OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI1My4zIDEzNS4xbDM0LjcgNTIgMC00My4yYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTI4IDE0NGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhSG91cmdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcycsXG4gIGljb246IFszODQsIDUxMiwgWzkyMDMsIDYyMDMyLCBcImhvdXJnbGFzcy1lbXB0eVwiXSwgXCJmMjU0XCIsIFwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzIwIDBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDExYzAgNDIuNC0xNi45IDgzLjEtNDYuOSAxMTMuMUwyMzcuMyAyNTZsNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xTDE0Ni43IDI1NiA3OC45IDE4OC4xQzQ4LjkgMTU4LjEgMzIgMTE3LjQgMzIgNzVsMC0xMUMxNC4zIDY0IDAgNDkuNyAwIDMyek05NiA2NGwwIDExYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDE5MiAyMTAuN2w2Ny45LTY3LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOWwwLTExTDk2IDY0em0wIDM4NGwxOTIgMCAwLTExYzAtMjUuNS0xMC4xLTQ5LjktMjguMS02Ny45TDE5MiAzMDEuM2wtNjcuOSA2Ny45Yy0xOCAxOC0yOC4xIDQyLjQtMjguMSA2Ny45bDAgMTF6XCJdXG59O1xuY29uc3QgZmFIb3VyZ2xhc3NFbXB0eSA9IGZhSG91cmdsYXNzO1xuY29uc3QgZmFNb3VudGFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3VudGFpbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1Nl0sIFwiZjZmY1wiLCBcIk0yNTYgMzJjMTIuNSAwIDI0LjEgNi40IDMwLjggMTdMNTAzLjQgMzk0LjRjNS42IDguOSA4LjYgMTkuMiA4LjYgMjkuN2MwIDMwLjktMjUgNTUuOS01NS45IDU1LjlMNTUuOSA0ODBDMjUgNDgwIDAgNDU1IDAgNDI0LjFjMC0xMC41IDMtMjAuOCA4LjYtMjkuN0wyMjUuMiA0OWM2LjYtMTAuNiAxOC4zLTE3IDMwLjgtMTd6bTY1IDE5MkwyNTYgMTIwLjQgMTc2LjkgMjQ2LjVsMTguMyAyNC40YzYuNCA4LjUgMTkuMiA4LjUgMjUuNiAwbDI1LjYtMzQuMWM2LTguMSAxNS41LTEyLjggMjUuNi0xMi44bDQ5IDB6XCJdXG59O1xuY29uc3QgZmFVc2VyRG9jdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItZG9jdG9yJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ1c2VyLW1kXCJdLCBcImYwZjBcIiwgXCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS05NiA1NS4yQzU0IDMzMi45IDAgNDAxLjMgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM4OC42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjdjMC04MS01NC0xNDkuNC0xMjgtMTcxLjFsMCA1MC44YzI3LjYgNy4xIDQ4IDMyLjIgNDggNjJsMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MGMwLTI5LjggMjAuNC01NC45IDQ4LTYybDAtNTcuMWMtNi0uNi0xMi4xLS45LTE4LjMtLjlsLTkxLjQgMGMtNi4yIDAtMTIuMyAuMy0xOC4zIC45bDAgNjUuNGMyMy4xIDYuOSA0MCAyOC4zIDQwIDUzLjdjMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTZjMC0yNS40IDE2LjktNDYuOCA0MC01My43bDAtNTkuMXpNMTQ0IDQ0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFVc2VyTWQgPSBmYVVzZXJEb2N0b3I7XG5jb25zdCBmYUNpcmNsZUluZm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWluZm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImluZm8tY2lyY2xlXCJdLCBcImYwNWFcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxNiAzMzZsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptNDAtMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUluZm9DaXJjbGUgPSBmYUNpcmNsZUluZm87XG5jb25zdCBmYUNsb3VkTWVhdGJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbWVhdGJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3M2JcIiwgXCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5Nmw0NC43IDBjOS41LTIzLjUgMzIuNS00MCA1OS4zLTQwYzIgMCAzLjkgLjEgNS44IC4zQzIxNy42IDI2NS41IDIzNS43IDI1NiAyNTYgMjU2czM4LjQgOS41IDUwLjIgMjQuM2MxLjktLjIgMy45LS4zIDUuOC0uM2MyNi45IDAgNDkuOSAxNi41IDU5LjMgNDBsNDQuNyAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwYzEuMS01LjIgMS42LTEwLjUgMS42LTE2YzAtNDQuMi0zNS44LTgwLTgwLTgwYy0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjhDMjU2LjUgMjQuMyAyMTkuMSAwIDE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjEgLjcgMTQuMSAxLjkgMjAuOEMyNy42IDE0NS40IDAgMTgxLjUgMCAyMjR6bTI4OCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDEgLjEgMi4xIC4xIDMuMWMtLjctLjgtMS40LTEuNi0yLjEtMi4zYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2MuNyAuNyAxLjUgMS40IDIuMyAyLjFjLTEtLjEtMi4xLS4xLTMuMS0uMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMxIDAgMi4xLS4xIDMuMS0uMWMtLjggLjctMS42IDEuMy0yLjMgMi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwYy43LS43IDEuNC0xLjUgMi4xLTIuM2MtLjEgMS0uMSAyLjEtLjEgMy4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0xLS4xLTIuMS0uMS0zLjFjLjcgLjggMS4zIDEuNiAyLjEgMi4zYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNjLS43LS43LTEuNS0xLjQtMi4zLTIuMWMxIC4xIDIuMSAuMSAzLjEgLjFjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJjLTEgMC0yLjEgLjEtMy4xIC4xYy44LS43IDEuNi0xLjMgMi4zLTIuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtLjcgLjctMS40IDEuNS0yLjEgMi4zYy4xLTEgLjEtMi4xIC4xLTMuMXpNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwiXVxufTtcbmNvbnN0IGZhQ2FtZXJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMjU4LCBcImNhbWVyYS1hbHRcIl0sIFwiZjAzMFwiLCBcIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwTDM2Mi45IDY0LjhDMzU2LjQgNDUuMiAzMzguMSAzMiAzMTcuNCAzMkwxOTQuNiAzMmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek0yNTYgMTkyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwiXVxufTtcbmNvbnN0IGZhQ2FtZXJhQWx0ID0gZmFDYW1lcmE7XG5jb25zdCBmYVNxdWFyZVZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS12aXJ1cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTU3OFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjMuOCA5My43YzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMjkuMyAzNS40IDQzLjkgNTYuMSAyMy4yYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNyAyMC43LTYgNTYuMSAyMy4yIDU2LjFjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI5LjMgMC00My45IDM1LjQtMjMuMiA1Ni4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjctMjAuNy01Ni4xLTYtNTYuMSAyMy4yYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjkuMy0zNS40LTQzLjktNTYuMS0yMy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjctMjAuNyA2LTU2LjEtMjMuMi01Ni4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI5LjMgMCA0My45LTM1LjQgMjMuMi01Ni4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNyAyMC43IDU2LjEgNiA1Ni4xLTIzLjJjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em04OCAzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbmNvbnN0IGZhTWV0ZW9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21ldGVvcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3MzJdLCBcImY3NTNcIiwgXCJNNDkzLjcgLjlMMjk5LjQgNzUuNmwyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5QzAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMmM3Mi40IDAgMTM5LjQtMzguNiAxNzUuNy0xMDEuM0w0ODAuOCAyMzQuM2M2LjUtMTEuMS0yLjItMjUtMTUuMS0yNGwtMjkuMyAyLjNMNTExLjEgMTguM2MuNi0xLjUgLjktMy4yIC45LTQuOEM1MTIgNiA1MDYgMCA0OTguNSAwYy0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDYXJPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZGRcIiwgXCJNMjgwIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwek0xODUuOCAyMjRsMTQwLjMgMGM2LjggMCAxMi44IDQuMyAxNS4xIDEwLjZMMzYwLjMgMjg4bC0yMDguNiAwIDE5LjEtNTMuNGMyLjMtNi40IDguMy0xMC42IDE1LjEtMTAuNnptLTc1LjMtMTAuOUw4Mi4yIDI5Mi40QzYyLjEgMzAwLjkgNDggMzIwLjggNDggMzQ0bDAgNDAgMCA2NCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAwLTY0IDAtNDBjMC0yMy4yLTE0LjEtNDMuMS0zNC4yLTUxLjZsLTI4LjMtNzkuM0MzOTAuMSAxODEuMyAzNjAgMTYwIDMyNi4yIDE2MGwtMTQwLjMgMGMtMzMuOCAwLTY0IDIxLjMtNzUuMyA1My4xek0xMjggMzQ0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjMyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw0OCA0OGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNzMgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwem00MDAgMEwzOTEgODdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhU2xlaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NsZWlnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdjY1wiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMCAxNjBjMCA1MyA0MyA5NiA5NiA5NmwwIDMyIDY0IDAgMC0zMiAxOTIgMCAwIDMyIDY0IDAgMC0zMmM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MS4zYzAgMzAuMi0yNC41IDU0LjctNTQuNyA1NC43Yy03NS41IDAtMTQ1LjYtMzguOS0xODUuNi0xMDIuOWwtNC4zLTYuOUMxNzQuMiA2Ny42IDEyNSAzNy42IDcwLjcgMzIuN2MtMi4yLS41LTQuNC0uNy02LjctLjdsLTkgMEwzMiAzMnpNNjQwIDM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRMNjQgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQ4OCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtOHpcIl1cbn07XG5jb25zdCBmYUFycm93RG93bjE5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tMS05JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtYXNjXCIsIFwic29ydC1udW1lcmljLWRvd25cIl0sIFwiZjE2MlwiLCBcIk00NTAuNyAzOGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDggMCA0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTE2MCA0ODBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNGw4OC05NmMxMS45LTEzIDExLjEtMzMuMy0yLTQ1LjJzLTMzLjMtMTEuMS00NS4yIDJMMTkyIDM2NS43IDE5MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwMS43TDk1LjYgMzMwLjRjLTExLjktMTMtMzIuMi0xMy45LTQ1LjItMnMtMTMuOSAzMi4yLTIgNDUuMmw4OCA5NkMxNDIuNSA0NzYuMiAxNTEgNDgwIDE2MCA0ODB6TTQxOC4zIDMwN2EzMiAzMiAwIDEgMSAyNy40IDU3LjlBMzIgMzIgMCAxIDEgNDE4LjMgMzA3ek00MDUuMSA0MTkuOGwtNi44IDkuMmMtMTAuNSAxNC4yLTcuNSAzNC4yIDYuNyA0NC44czM0LjIgNy41IDQ0LjgtNi43bDQ4LjgtNjUuOGMxNC0xOC45IDIxLjUtNDEuNyAyMS41LTY1LjJjMC00OC42LTM5LjQtODgtODgtODhzLTg4IDM5LjQtODggODhjMCAzOS4yIDI1LjYgNzIuNCA2MS4xIDgzLjh6XCJdXG59O1xuY29uc3QgZmFTb3J0TnVtZXJpY0FzYyA9IGZhQXJyb3dEb3duMTk7XG5jb25zdCBmYVNvcnROdW1lcmljRG93biA9IGZhQXJyb3dEb3duMTk7XG5jb25zdCBmYUhhbmRIb2xkaW5nRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctZHJvcGxldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaGFuZC1ob2xkaW5nLXdhdGVyXCJdLCBcImY0YzFcIiwgXCJNMjc1LjUgNi42QzI3OC4zIDIuNSAyODMgMCAyODggMHM5LjcgMi41IDEyLjUgNi42TDM2Ni44IDEwM0MzNzggMTE5LjMgMzg0IDEzOC42IDM4NCAxNTguM2wwIDEuN2MwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTEuN2MwLTE5LjggNi0zOSAxNy4yLTU1LjNMMjc1LjUgNi42ek01NjguMiAzMzYuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDE5MiA1MTIgMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM2LjggMCA0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4bDc4LjMgMCAxNiAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDAtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjAuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzODRjMCAwIDAgMCAwIDBsLS45IDBjLjMgMCAuNiAwIC45IDB6XCJdXG59O1xuY29uc3QgZmFIYW5kSG9sZGluZ1dhdGVyID0gZmFIYW5kSG9sZGluZ0Ryb3BsZXQ7XG5jb25zdCBmYVdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzczXCIsIFwiTTI2OS41IDY5LjljMTEuMS03LjkgMjUuOS03LjkgMzcgMEMzMjkgODUuNCAzNTYuNSA5NiAzODQgOTZjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSAxNDkuNyA0MTcgMTYwIDM4NCAxNjBjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40QzQyLjggOTIuNiA2MSA4My41IDc1LjMgNzEuNmMxMS4xLTkuNSAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgODUuMiAxNjUuMSA5NiAxOTIgOTZjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xem0zNyAyODhDMzI5IDM3My40IDM1Ni41IDM4NCAzODQgMzg0YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDM3LjcgNDE3IDQ0OCAzODQgNDQ4Yy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyAzNzMuMiAxNjUuMSAzODQgMTkyIDM4NGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHptMC0xNDRDMzI5IDIyOS40IDM1Ni41IDI0MCAzODQgMjQwYzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xYzAgMCAwIDAgMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgMjkzLjcgNDE3IDMwNCAzODQgMzA0Yy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS41IDI3LjMtMTAuMSAzOS4yLTEuN2MwIDAgMCAwIDAgMEMxMzYuNyAyMjkuMiAxNjUuMSAyNDAgMTkyIDI0MGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIl1cbn07XG5jb25zdCBmYUNhbGVuZGFyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItY2hlY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyNzRcIiwgXCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhMMCAxNjBsMC00OEMwIDg1LjUgMjEuNSA2NCA0OCA2NGw0OCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkybDQ0OCAwIDAgMjcyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxOTJ6TTMyOSAzMDVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtOTUgOTUtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzI5IDMwNXpcIl1cbn07XG5jb25zdCBmYUJyYWlsbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJhaWxsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjJhMVwiLCBcIk0wIDk2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDAgOTZ6TTIyNCAyNzJhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0wLTgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek04MCA0MTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA0MTZ6bTI0MCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTkyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0yMjQgMzJhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTM1MiA5NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSAzNTIgOTZ6bTI0MCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDUxMiA5NnptNjQgMTc2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptMC04MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMTYgMjI0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNDE2IDI3MmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTAtODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTE2IDIyNGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tODAgMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJdXG59O1xuY29uc3QgZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCcsXG4gIGljb246IFszODQsIDUxMiwgW1wicHJlc2NyaXB0aW9uLWJvdHRsZS1hbHRcIl0sIFwiZjQ4NlwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnptMzIgOTZsMzIwIDAgMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyMHpNMTYwIDI0MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVByZXNjcmlwdGlvbkJvdHRsZUFsdCA9IGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDtcbmNvbnN0IGZhTGFuZG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFuZG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NjNdLCBcImY2NmZcIiwgXCJNMjQwLjEgNC4yYzkuOC01LjYgMjEuOS01LjYgMzEuOCAwbDE3MS44IDk4LjFMNDQ4IDEwNGwwIC45IDQ3LjkgMjcuNGMxMi42IDcuMiAxOC44IDIyIDE1LjEgMzZzLTE2LjQgMjMuOC0zMC45IDIzLjhMMzIgMTkyYy0xNC41IDAtMjcuMi05LjgtMzAuOS0yMy44czIuNS0yOC44IDE1LjEtMzZMNjQgMTA0LjlsMC0uOSA0LjQtMS42TDI0MC4xIDQuMnpNNjQgMjI0bDY0IDAgMCAxOTIgNDAgMCAwLTE5MiA2NCAwIDAgMTkyIDQ4IDAgMC0xOTIgNjQgMCAwIDE5MiA0MCAwIDAtMTkyIDY0IDAgMCAxOTYuM2MuNiAuMyAxLjIgLjcgMS44IDEuMWw0OCAzMmMxMS43IDcuOCAxNyAyMi40IDEyLjkgMzUuOVM0OTQuMSA1MTIgNDgwIDUxMkwzMiA1MTJjLTE0LjEgMC0yNi41LTkuMi0zMC42LTIyLjdzMS4xLTI4LjEgMTIuOS0zNS45bDQ4LTMyYy42LS40IDEuMi0uNyAxLjgtMS4xTDY0IDIyNHpcIl1cbn07XG5jb25zdCBmYVRydWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NjY2LCA5OTUxXSwgXCJmMGQxXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgMzY4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwxMjggMGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NCAwLTMyIDAtMTguN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTE0LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMNDE2IDk2bDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNDE2IDE2MGw1MC43IDBMNTQ0IDIzNy4zbDAgMTguNy0xMjggMCAwLTk2ek0xMTIgNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM2OC00OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDcm9zc2hhaXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3NzaGFpcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNWJcIiwgXCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMC40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNmwxMC40IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjQgMGMtMTMuOSA5My43LTg4IDE2Ny43LTE4MS42IDE4MS42bDAgMTAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEwLjRDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTAuNCAwQzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNEwyMjQgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEwNy40IDI4OGMxMi41IDU4LjMgNTguNCAxMDQuMSAxMTYuNiAxMTYuNmwwLTIwLjZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZMMzg0IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMC42IDBDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40bDAgMjAuNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIwLjZDMTY1LjcgMTE5LjkgMTE5LjkgMTY1LjcgMTA3LjQgMjI0bDIwLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjAuNiAwek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNhbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1M2NcIiwgXCJNMjcyIDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bS04IDE4Ny4zbDQ3LjQgNTcuMWMxMS4zIDEzLjYgMzEuNSAxNS41IDQ1LjEgNC4yczE1LjUtMzEuNSA0LjItNDUuMWwtNzMuNy04OC45Yy0xOC4yLTIyLTQ1LjMtMzQuNy03My45LTM0LjdsLTM1LjkgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuN3pNMzUyIDM3NmMwLTQuNCAzLjYtOCA4LThzOCAzLjYgOCA4bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04elwiXVxufTtcbmNvbnN0IGZhVGVudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTdkXCIsIFwiTTI2OS40IDZDMjgwLjUtMiAyOTUuNS0yIDMwNi42IDZsMjI0IDE2MGM3LjQgNS4zIDEyLjIgMTMuNSAxMy4yIDIyLjVsMzIgMjg4YzEgOS0xLjkgMTguMS04IDI0LjlzLTE0LjcgMTAuNy0yMy44IDEwLjdsLTgwIDAtMjguMiAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43TDMwNi43IDI5My41Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNWMtNS41IDAtOS45IDQuNC05LjkgOS45TDI4OCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2IDBMMzIgNTEyYy05LjEgMC0xNy44LTMuOS0yMy44LTEwLjdzLTktMTUuOC04LTI0LjlsMzItMjg4YzEtOSA1LjgtMTcuMiAxMy4yLTIyLjVMMjY5LjQgNnpcIl1cbn07XG5jb25zdCBmYVZlc3RQYXRjaGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Zlc3QtcGF0Y2hlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NlwiLCBcIk0xNTEuMiA2OS43bDU1LjkgMTY3LjctMTEgMzMuMWMtMi43IDguMi00LjEgMTYuNy00LjEgMjUuM0wxOTIgNDY0YzAgMTQuNSAzLjkgMjguMiAxMC43IDM5LjlDMTk1IDUwOSAxODUuOSA1MTIgMTc2IDUxMkw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcwLjVjMC05LjUgMi44LTE4LjcgOC4xLTI2LjZsNDcuOS03MS44YzUuMy03LjkgOC4xLTE3LjEgOC4xLTI2LjZMNjQgMTI4bDAtNzMuN0w2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGw0LjUgMGMuMiAwIC40IDAgLjYgMGMuNCAwIC44IDAgMS4yIDBjMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOEMxNzEuNiAyNy4yIDE5MC44IDQwIDIyNCA0MHM1Mi40LTEyLjggNjEuNy0yMS4yQzI5NS43IDkuNyAzMTEgMCAzMjkuNyAwYy40IDAgLjggMCAxLjIgMGMuMiAwIC40IDAgLjYgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDYuMyAwIDczLjcgMCAxNy41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2OC4yYzAtNS4yIC44LTEwLjMgMi41LTE1LjJMMjk2LjggNjkuN0MyNzkuNCA3OS43IDI1NS40IDg4IDIyNCA4OHMtNTUuNC04LjMtNzIuOC0xOC4zek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNWwxNS41IDE1LjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OGwxNS41LTE1LjVjNC43LTQuNyA0LjctMTIuMyAwLTE3cy0xMi4zLTQuNy0xNyAwTDk2IDI3MSA4MC41IDI1NS41Yy00LjctNC43LTEyLjMtNC43LTE3IDB6TTMwNCAyODBsMCA4IDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwiXVxufTtcbmNvbnN0IGZhQ2hlY2tEb3VibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2stZG91YmxlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTYwXCIsIFwiTTM0Mi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTYwIDE3OC43bC01Ny40LTU3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDgwIDgwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bTk2IDEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxNjAgNDAyLjcgNTQuNiAyOTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwyNTYtMjU2elwiXVxufTtcbmNvbnN0IGZhQXJyb3dEb3duQVogPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1hLXonLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYWxwaGEtYXNjXCIsIFwic29ydC1hbHBoYS1kb3duXCJdLCBcImYxNWRcIiwgXCJNMTgzLjYgNDY5LjZDMTc3LjUgNDc2LjIgMTY5IDQ4MCAxNjAgNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkwxMjggMzY1LjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMNDI5LjMgNDE2bDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDQwMi43IDM1MiAzNTIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDE2IDMyYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNjQgMTI4IDE2IDMyYzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNMNDYwLjIgMjI0bC04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsMTYtMzIgNjQtMTI4QzM5Mi44IDM4LjggNDAzLjkgMzIgNDE2IDMyek0zOTUuOCAxNzZsNDAuNCAwTDQxNiAxMzUuNiAzOTUuOCAxNzZ6XCJdXG59O1xuY29uc3QgZmFTb3J0QWxwaGFBc2MgPSBmYUFycm93RG93bkFaO1xuY29uc3QgZmFTb3J0QWxwaGFEb3duID0gZmFBcnJvd0Rvd25BWjtcbmNvbnN0IGZhTW9uZXlCaWxsV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbC13aGVhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUyYVwiLCBcIk0xNzYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiA2NEM0Mi43IDY0IDMyIDUzLjMgMzIgNDBzMTAuNy0yNCAyNC0yNHpNMjQgODhsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDg4IDI0IDg4em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMTZjMC04LjggNy4yLTE2IDE2LTE2YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMjhjOC44IDAgMTYgNy4yIDE2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJdXG59O1xuY29uc3QgZmFDb29raWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29va2llJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3ODUwXSwgXCJmNTYzXCIsIFwiTTI0Ny4yIDE3Yy0yMi4xLTMuMS00NC42IC45LTY0LjQgMTEuNGwtNzQgMzkuNUM4OS4xIDc4LjQgNzMuMiA5NC45IDYzLjQgMTE1TDI2LjcgMTkwLjZjLTkuOCAyMC4xLTEzIDQyLjktOS4xIDY0LjlsMTQuNSA4Mi44YzMuOSAyMi4xIDE0LjYgNDIuMyAzMC43IDU3LjlsNjAuMyA1OC40YzE2LjEgMTUuNiAzNi42IDI1LjYgNTguNyAyOC43bDgzIDExLjdjMjIuMSAzLjEgNDQuNi0uOSA2NC40LTExLjRsNzQtMzkuNWMxOS43LTEwLjUgMzUuNi0yNyA0NS40LTQ3LjJsMzYuNy03NS41YzkuOC0yMC4xIDEzLTQyLjkgOS4xLTY0LjlsLTE0LjYtODIuOGMtMy45LTIyLjEtMTQuNi00Mi4zLTMwLjctNTcuOUwzODguOSA1Ny41Yy0xNi4xLTE1LjYtMzYuNi0yNS42LTU4LjctMjguN0wyNDcuMiAxN3pNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUFycm93Um90YXRlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yb3RhdGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg2MzQsIFwiYXJyb3ctbGVmdC1yb3RhdGVcIiwgXCJhcnJvdy1yb3RhdGUtYmFja1wiLCBcImFycm93LXJvdGF0ZS1iYWNrd2FyZFwiLCBcInVuZG9cIl0sIFwiZjBlMlwiLCBcIk0xMjUuNyAxNjBsNTAuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDQ4IDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDUxLjJMOTcuNiA5Ny42Yzg3LjUtODcuNSAyMjkuMy04Ny41IDMxNi44IDBzODcuNSAyMjkuMyAwIDMxNi44cy0yMjkuMyA4Ny41LTMxNi44IDBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjNjIuNSA2Mi41IDE2My44IDYyLjUgMjI2LjMgMHM2Mi41LTE2My44IDAtMjI2LjNzLTE2My44LTYyLjUtMjI2LjMgMEwxMjUuNyAxNjB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnRSb3RhdGUgPSBmYUFycm93Um90YXRlTGVmdDtcbmNvbnN0IGZhQXJyb3dSb3RhdGVCYWNrID0gZmFBcnJvd1JvdGF0ZUxlZnQ7XG5jb25zdCBmYUFycm93Um90YXRlQmFja3dhcmQgPSBmYUFycm93Um90YXRlTGVmdDtcbmNvbnN0IGZhVW5kbyA9IGZhQXJyb3dSb3RhdGVMZWZ0O1xuY29uc3QgZmFIYXJkRHJpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFyZC1kcml2ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQzNiwgXCJoZGRcIl0sIFwiZjBhMFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTg0LjRjLTE3LTE1LjItMzkuNC0yNC40LTY0LTI0LjRMNjQgMjU2Yy0yNC42IDAtNDcgOS4yLTY0IDI0LjRMMCA5NnpNNjQgMjg4bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0ek0zMjAgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTI4LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFIZGQgPSBmYUhhcmREcml2ZTtcbmNvbnN0IGZhRmFjZUdyaW5TcXVpbnRUZWFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3F1aW50LXRlYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzE1LCBcImdyaW4tc3F1aW50LXRlYXJzXCJdLCBcImY1ODZcIiwgXCJNNDI2LjggMTQuMkM0NDYtNSA0NzcuNS00LjYgNDk3LjEgMTQuOXMyMCA1MSAuNyA3MC4zYy02LjggNi44LTIxLjQgMTIuNC0zNy40IDE2LjdjLTE2LjMgNC40LTM0LjEgNy41LTQ2LjMgOS4zYy0xLjYgLjItMy4xIC41LTQuNiAuNmMtNC45IC44LTkuMS0yLjgtOS41LTcuNGMtLjEtLjcgMC0xLjQgLjEtMi4xYzEuNi0xMS4yIDQuNi0yOS42IDktNDdjLjMtMS4zIC43LTIuNiAxLTMuOWM0LjMtMTUuOSA5LjgtMzAuNSAxNi43LTM3LjR6bS00NC43IDE5Yy0xLjUgNC44LTIuOSA5LjYtNC4xIDE0LjNjLTQuOCAxOC45LTggMzguNS05LjcgNTAuM2MtNCAyNi44IDE4LjkgNDkuNyA0NS43IDQ1LjhjMTEuOS0xLjYgMzEuNS00LjggNTAuNC05LjdjNC43LTEuMiA5LjUtMi41IDE0LjMtNC4xQzUzNC4yIDIyNy41IDUyMC4yIDM1My44IDQzNyA0MzdjLTgzLjIgODMuMi0yMDkuNSA5Ny4yLTMwNy4yIDQxLjhjMS41LTQuOCAyLjgtOS42IDQtMTQuM2M0LjgtMTguOSA4LTM4LjUgOS43LTUwLjNjNC0yNi44LTE4LjktNDkuNy00NS43LTQ1LjhjLTExLjkgMS42LTMxLjUgNC44LTUwLjQgOS43Yy00LjcgMS4yLTkuNSAyLjUtMTQuMyA0LjFDLTIyLjIgMjg0LjUtOC4yIDE1OC4yIDc1IDc1QzE1OC4yLTguMyAyODQuNS0yMi4yIDM4Mi4yIDMzLjJ6TTUxLjUgNDEwLjFjMTguNS01IDM4LjgtOC4zIDUwLjktMTBjLjQtLjEgLjctLjEgMS0uMWM1LjEtLjIgOS4yIDQuMyA4LjQgOS42Yy0xLjcgMTIuMS01IDMyLjQtMTAgNTAuOUM5Ny42IDQ3Ni40IDkyIDQ5MSA4NS4yIDQ5Ny44QzY2IDUxNyAzNC41IDUxNi42IDE0LjkgNDk3LjFzLTIwLTUxLS43LTcwLjNjNi44LTYuOCAyMS40LTEyLjQgMzcuNC0xNi43ek00MTYuOSAyMDljLTQuNy0xMS45LTIwLjgtMTEtMjYuOCAuM2MtMTkgMzUuNS00NSA3MC44LTc3LjUgMTAzLjNTMjQ0LjggMzcxLjEgMjA5LjMgMzkwYy0xMS4zIDYtMTIuMiAyMi4xLS4zIDI2LjhjNTcuNiAyMi45IDEyNS44IDExIDE3Mi4zLTM1LjVzNTguNC0xMTQuOCAzNS41LTE3Mi4zek04Ny4xIDI4NS4xYzIgMiA0LjYgMy4yIDcuMyAzLjRsNTYuMSA1LjEgNS4xIDU2LjFjLjMgMi44IDEuNSA1LjQgMy40IDcuM2M2LjMgNi4zIDE3LjIgMy42IDE5LjgtNC45bDI5LjctOTcuNGMzLjUtMTEuNi03LjMtMjIuNS0xOS0xOUw5MiAyNjUuM2MtOC42IDIuNi0xMS4zIDEzLjQtNC45IDE5Ljh6TTI2NS4zIDkybC0yOS43IDk3LjRjLTMuNSAxMS42IDcuMyAyMi41IDE5IDE5bDk3LjQtMjkuN2M4LjYtMi42IDExLjMtMTMuNCA0LjktMTkuOGMtMi0yLTQuNi0zLjItNy4zLTMuNGwtNTYuMS01LjEtNS4xLTU2LjFjLS4zLTIuOC0xLjUtNS40LTMuNC03LjNjLTYuMy02LjMtMTcuMi0zLjYtMTkuOCA0Ljl6XCJdXG59O1xuY29uc3QgZmFHcmluU3F1aW50VGVhcnMgPSBmYUZhY2VHcmluU3F1aW50VGVhcnM7XG5jb25zdCBmYUR1bWJiZWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bWJiZWxsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDRiXCIsIFwiTTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjAgMCA2NCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTY0em00NDggMGwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDAtNjQgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNNDE2IDIyNGwwIDY0LTE5MiAwIDAtNjQgMTkyIDB6XCJdXG59O1xuY29uc3QgZmFSZWN0YW5nbGVMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY3RhbmdsZS1saXN0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsaXN0LWFsdFwiXSwgXCJmMDIyXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzItMTI4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05Ni0yNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTIyNCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yMjQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjI0IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0QWx0ID0gZmFSZWN0YW5nbGVMaXN0O1xuY29uc3QgZmFUYXJwRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXJwLWRyb3BsZXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1N2NcIiwgXCJNMjg4IDE2MGMtMzUuMyAwLTY0LTI2LjktNjQtNjBjMC0yNCAzMy43LTcwLjEgNTIuMi05My41YzYuMS03LjcgMTcuNS03LjcgMjMuNiAwQzMxOC4zIDI5LjkgMzUyIDc2IDM1MiAxMDBjMCAzMy4xLTI4LjcgNjAtNjQgNjB6TTY0IDEyOGwxMzMuNSAwYzEzLjIgMzcuMyA0OC43IDY0IDkwLjUgNjRzNzcuNC0yNi43IDkwLjUtNjRMNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDUxMmwwLTEyOCAxMjggMEw0NDggNTEyek05NiAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhSG91c2VNZWRpY2FsQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTFcIiwgXCJNMzIwIDM2OGMwIDU5LjUgMjkuNSAxMTIuMSA3NC44IDE0NGwtMjY2LjcgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjAuNC0zMiAwYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w1MjIuMSAxOTMuOWMtOC41LTEuMy0xNy4zLTEuOS0yNi4xLTEuOWMtNTQuNyAwLTEwMy41IDI0LjktMTM1LjggNjRMMzIwIDI1NmwwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bTMyIDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDgwIDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFQZXJzb25Ta2lpbmdOb3JkaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXNraWluZy1ub3JkaWMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNraWluZy1ub3JkaWNcIl0sIFwiZjdjYVwiLCBcIk0zMzYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yMjcuMiAxNjBjMS45IDAgMy44IC4xIDUuNiAuM0wyMDEuNiAyNTRjLTkuMyAyOCAxLjcgNTguOCAyNi44IDc0LjVsODYuMiA1My45TDI5MS4zIDQ2NGwtODguNSAwIDQxLjEtODguMS0zMi40LTIwLjNjLTcuOC00LjktMTQuNy0xMC43LTIwLjYtMTcuM0wxMzIuMiA0NjRsLTMyLjQgMCA1NC4yLTI1Ny42YzQuNi0xLjUgOS00LjEgMTIuNy03LjhsMjMuMS0yMy4xYzkuOS05LjkgMjMuNC0xNS41IDM3LjUtMTUuNXpNMTIxLjQgMTk4LjZjLjQgLjQgLjggLjggMS4zIDEuMkw2NyA0NjRsLTQzIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTM1LjMgMGMuNSAwIC45IDAgMS40IDBsMTU4LjYgMGMuNSAwIDEgMCAxLjQgMEw1MDQgNTEyYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTY5LjQgMCAyNy42LTE3OS4zYzEwLjUtNS4yIDE3LjgtMTYuMSAxNy44LTI4LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTIxLjMgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjUtMTkuN2wtNi4zLTE1Yy0xNC42LTM1LjEtNDQuMS02MS45LTgwLjUtNzMuMWwtNDguNy0xNWMtMTEuMS0zLjQtMjIuNy01LjItMzQuNC01LjJjLTMxIDAtNjAuOCAxMi4zLTgyLjcgMzQuM2wtMjMuMSAyMy4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3ptMzA4IDg5LjRMNDAyLjMgNDY0bC00NC40IDAgMjEuNi03NS42YzUuOS0yMC42LTIuNi00Mi42LTIwLjctNTMuOUwzMDIgMjk5bDMwLjktODIuNCA1LjEgMTIuM0MzNTMgMjY0LjcgMzg3LjkgMjg4IDQyNi43IDI4OGwyLjcgMHpcIl1cbn07XG5jb25zdCBmYVNraWluZ05vcmRpYyA9IGZhUGVyc29uU2tpaW5nTm9yZGljO1xuY29uc3QgZmFDYWxlbmRhclBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItcGx1cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MVwiLCBcIk05NiAzMmwwIDMyTDQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEybDAgNDggNDQ4IDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJMMTYwIDY0bDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgMTQuMyA5NiAzMnpNNDQ4IDE5MkwwIDE5MiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3MnpNMjI0IDI0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDU2IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTU2LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMCAwLTU2YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhUGxhbmVBcnJpdmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lLWFycml2YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg3NDhdLCBcImY1YWZcIiwgXCJNLjMgMTY2LjlMMCA2OEMwIDU3LjcgOS41IDUwLjEgMTkuNSA1Mi4zbDM1LjYgNy45YzEwLjYgMi4zIDE5LjIgOS45IDIzIDIwTDk2IDEyOGwxMjcuMyAzNy42TDE4MS44IDIwLjRDMTc4LjkgMTAuMiAxODYuNiAwIDE5Ny4yIDBsNDAuMSAwYzExLjYgMCAyMi4yIDYuMiAyNy45IDE2LjNsMTA5IDE5My44IDEwNy4yIDMxLjdjMTUuOSA0LjcgMzAuOCAxMi41IDQzLjcgMjIuOGwzNC40IDI3LjZjMjQgMTkuMiAxOC4xIDU3LjMtMTAuNyA2OC4yYy00MS4yIDE1LjYtODYuMiAxOC4xLTEyOC44IDdMMTIxLjcgMjg5LjhjLTExLjEtMi45LTIxLjItOC43LTI5LjMtMTYuOUw5LjUgMTg5LjRjLTUuOS02LTkuMy0xNC4xLTkuMy0yMi41ek0zMiA0NDhsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjgtMTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxODQwLCBcImFycm93LWFsdC1jaXJjbGUtbGVmdFwiXSwgXCJmMzU5XCIsIFwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0xMTYuNyAyNDQuN2wxMTItMTEyYzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDY0IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDY0YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTEyLTExMmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0FsdENpcmNsZUxlZnQgPSBmYUNpcmNsZUxlZnQ7XG5jb25zdCBmYVRyYWluU3Vid2F5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWluLXN1YndheScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic3Vid2F5XCJdLCBcImYyMzlcIiwgXCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEybDM5LjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwxNjAgNDQ4bDEyOCAwIDU0LjYgNTQuNmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzkuNyAwYzEwIDAgMTUtMTIuMSA3LjktMTkuMWwtNDYtNDZjNDYtNy4xIDgxLjEtNDYuOSA4MS4xLTk0LjlsMC0yNTZjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0yNzIgOTZsODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVN1YndheSA9IGZhVHJhaW5TdWJ3YXk7XG5jb25zdCBmYUNoYXJ0R2FudHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtZ2FudHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwZTRcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTk2IDY0bDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMTYwIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFJbmRpYW5SdXBlZVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kaWFuLXJ1cGVlLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImluZGlhbi1ydXBlZVwiLCBcImluclwiXSwgXCJlMWJjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNjQgMCAxNiAwIDE3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01Ni4yIDBjOS42IDE0LjQgMTYuNyAzMC42IDIwLjcgNDhsMzUuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNS42IDBjLTEzLjIgNTguMy02MS45IDEwMy4yLTEyMi4yIDExMC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzMyLjggMCA2MS0xOS43IDczLjMtNDhMMzIgMjA4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1My4zIDBDMTczIDExNS43IDE0NC44IDk2IDExMiA5Nkw5NiA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbmNvbnN0IGZhSW5kaWFuUnVwZWUgPSBmYUluZGlhblJ1cGVlU2lnbjtcbmNvbnN0IGZhSW5yID0gZmFJbmRpYW5SdXBlZVNpZ247XG5jb25zdCBmYUNyb3BTaW1wbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcC1zaW1wbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNyb3AtYWx0XCJdLCBcImY1NjVcIiwgXCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMkwzMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMCAwLTY0LTIyNCAwIDAtMzUyek0zODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCA2NGwwIDY0IDIyNCAwIDAgMzUyelwiXVxufTtcbmNvbnN0IGZhQ3JvcEFsdCA9IGZhQ3JvcFNpbXBsZTtcbmNvbnN0IGZhTW9uZXlCaWxsMSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLTEnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1vbmV5LWJpbGwtYWx0XCJdLCBcImYzZDFcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDMyMGwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAxOTJsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTE3NiAyNTZhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHptNzYtNDhjMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDI0IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbEFsdCA9IGZhTW9uZXlCaWxsMTtcbmNvbnN0IGZhTGVmdExvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVmdC1sb25nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1sZWZ0XCJdLCBcImYzMGFcIiwgXCJNMTc3LjUgNDE0Yy04LjggMy44LTE5IDItMjYtNC42bC0xNDQtMTM2QzIuNyAyNjguOSAwIDI2Mi42IDAgMjU2czIuNy0xMi45IDcuNS0xNy40bDE0NC0xMzZjNy02LjYgMTcuMi04LjQgMjYtNC42czE0LjUgMTIuNSAxNC41IDIybDAgNzIgMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDAgMCA3MmMwIDkuNi01LjcgMTguMi0xNC41IDIyelwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93QWx0TGVmdCA9IGZhTGVmdExvbmc7XG5jb25zdCBmYURuYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkbmEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjk1MTZdLCBcImY0NzFcIiwgXCJNNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJjMCA1OS44LTMwLjMgMTA3LjUtNjkuNCAxNDYuNmMtMjggMjgtNjIuNSA1My41LTk3LjMgNzcuNGwtMi41IDEuN2MtMTEuOSA4LjEtMjMuOCAxNi4xLTM1LjUgMjMuOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBsLTEuNiAxYy02IDQtMTEuOSA3LjktMTcuOCAxMS45Yy0yMC45IDE0LTQwLjggMjcuNy01OS4zIDQxLjVsMTE4LjUgMGMtOS44LTcuNC0yMC4xLTE0LjctMzAuNy0yMi4xbDctNC43IDMtMmMxNS4xLTEwLjEgMzAuOS0yMC42IDQ2LjctMzEuNmMyNSAxOC4xIDQ4LjkgMzcuMyA2OS40IDU3LjdDNDE3LjcgMzcyLjUgNDQ4IDQyMC4yIDQ0OCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNTkuOCAzMC4zLTEwNy41IDY5LjQtMTQ2LjZjMjgtMjggNjIuNS01My41IDk3LjMtNzcuNGMtMzQuOC0yMy45LTY5LjMtNDkuMy05Ny4zLTc3LjRDMzAuMyAxMzkuNSAwIDkxLjggMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwzMjAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzM4LjYgMzg0bC0yMjkuMiAwYy0xMC4xIDEwLjYtMTguNiAyMS4zLTI1LjUgMzJsMjgwLjIgMGMtNi44LTEwLjctMTUuMy0yMS40LTI1LjUtMzJ6TTEwOS40IDEyOGwyMjkuMiAwYzEwLjEtMTAuNyAxOC42LTIxLjMgMjUuNS0zMkw4My45IDk2YzYuOCAxMC43IDE1LjMgMjEuMyAyNS41IDMyem01NS40IDQ4YzE4LjQgMTMuOCAzOC40IDI3LjUgNTkuMyA0MS41YzIwLjktMTQgNDAuOC0yNy43IDU5LjMtNDEuNWwtMTE4LjUgMHpcIl1cbn07XG5jb25zdCBmYVZpcnVzU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXMtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwNzVcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtMTU0LjMtMTIxYy0yLTMwLjEgMjAuOC02MC4xIDU2LTYwLjFsMTEuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDBjLTQ5LjkgMC03NC45LTYwLjMtMzkuNi05NS42bDguMi04LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTguMiA4LjJDNDEyLjMgMTE4LjQgMzUyIDkzLjQgMzUyIDQzLjVMMzUyIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEuNWMwIDQ5LjktNjAuMyA3NC45LTk1LjYgMzkuNkwxODQuMiA3NWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBjLTEuNiAxLjYtMy4xIDMuNC00LjMgNS4zTDM4LjggNS4xem0yMjUuOCAxNzdjNi45LTMuOSAxNC45LTYuMSAyMy40LTYuMWMyNi41IDAgNDggMjEuNSA0OCA0OGMwIDQuNC0uNiA4LjctMS43IDEyLjdsLTY5LjctNTQuNnpNNDAyIDQxMi43TDE0NC43IDIxMGMtOS41IDguNS0yMi4yIDE0LTM3LjIgMTRMOTYgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExLjUgMGM0OS45IDAgNzQuOSA2MC4zIDM5LjYgOTUuNmwtOC4yIDguMmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4LjItOC4yYzM1LjMtMzUuMyA5NS42LTEwLjMgOTUuNiAzOS42bDAgMTEuNWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEuNWMwLTMxLjIgMjMuNi01Mi43IDUwLTU1Ljd6XCJdXG59O1xuY29uc3QgZmFNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgWzgyMTEsIDg3MjIsIDEwMTM0LCBcInN1YnRyYWN0XCJdLCBcImYwNjhcIiwgXCJNNDMyIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTdWJ0cmFjdCA9IGZhTWludXM7XG5jb25zdCBmYUNoZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDM5XCIsIFwiTTE0NCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2TDk2IDMyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDE2IDAgMCAzMkw2MC4yIDk2QzQ5LjEgOTYgNDAgMTA1LjEgNDAgMTE2LjJjMCAyLjUgLjUgNC45IDEuMyA3LjNMNzMuOCAyMDggNzIgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQgMEw2MCAzODRsMTM2IDBMMTgwIDI1Nmw0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEuOCAwIDMyLjUtODQuNWMuOS0yLjMgMS4zLTQuOCAxLjMtNy4zYzAtMTEuMi05LjEtMjAuMi0yMC4yLTIwLjJMMTQ0IDk2bDAtMzIgMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMCAwLTE2ek00OCA0MTZMNC44IDQ3My42QzEuNyA0NzcuOCAwIDQ4Mi44IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtNS4yLTEuNy0xMC4yLTQuOC0xNC40TDIwOCA0MTYgNDggNDE2em0yODggMGwtNDMuMiA1Ny42Yy0zLjEgNC4yLTQuOCA5LjItNC44IDE0LjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC01LjItMS43LTEwLjItNC44LTE0LjRMNDY0IDQxNmwtMTI4IDB6TTMwNCAyMDhsMCA1MS45YzAgNy44IDIuOCAxNS4zIDggMjEuMUwzMzkuMiAzMTIgMzM3IDM4NGwxMjUuNSAwLTMuMy03MiAyOC4zLTMwLjhjNS40LTUuOSA4LjUtMTMuNiA4LjUtMjEuN2wwLTUxLjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi0yNCAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi0yNCAwIDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTgwIDk2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAzMi0zMiAwIDAtMzJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd0xlZnRMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWxlZnQtbG9uZycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibG9uZy1hcnJvdy1sZWZ0XCJdLCBcImYxNzdcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDQ4MCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3MC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93TGVmdCA9IGZhQXJyb3dMZWZ0TG9uZztcbmNvbnN0IGZhUGx1Z0NpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTVjXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIl1cbn07XG5jb25zdCBmYVN0cmVldFZpZXcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RyZWV0LXZpZXcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMWRcIiwgXCJNMzIwIDY0QTY0IDY0IDAgMSAwIDE5MiA2NGE2NCA2NCAwIDEgMCAxMjggMHptLTk2IDk2Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEuOCAwIDExLjEgOTkuNWMxLjggMTYuMiAxNS41IDI4LjUgMzEuOCAyOC41bDM4LjcgMGMxNi4zIDAgMzAtMTIuMyAzMS44LTI4LjVMMzE4LjIgMzA0bDEuOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTEzMi4zIDM5NC4yYzEzLTIuNCAyMS43LTE0LjkgMTkuMy0yNy45cy0xNC45LTIxLjctMjcuOS0xOS4zYy0zMi40IDUuOS02MC45IDE0LjItODIgMjQuOGMtMTAuNSA1LjMtMjAuMyAxMS43LTI3LjggMTkuNkM2LjQgMzk5LjUgMCA0MTAuNSAwIDQyNGMwIDIxLjQgMTUuNSAzNi4xIDI5LjEgNDVjMTQuNyA5LjYgMzQuMyAxNy4zIDU2LjQgMjMuNEMxMzAuMiA1MDQuNyAxOTAuNCA1MTIgMjU2IDUxMnMxMjUuOC03LjMgMTcwLjQtMTkuNmMyMi4xLTYuMSA0MS44LTEzLjggNTYuNC0yMy40YzEzLjctOC45IDI5LjEtMjMuNiAyOS4xLTQ1YzAtMTMuNS02LjQtMjQuNS0xNC0zMi42Yy03LjUtNy45LTE3LjMtMTQuMy0yNy44LTE5LjZjLTIxLTEwLjYtNDkuNS0xOC45LTgyLTI0LjhjLTEzLTIuNC0yNS41IDYuMy0yNy45IDE5LjNzNi4zIDI1LjUgMTkuMyAyNy45YzMwLjIgNS41IDUzLjcgMTIuOCA2OSAyMC41YzMuMiAxLjYgNS44IDMuMSA3LjkgNC41YzMuNiAyLjQgMy42IDcuMiAwIDkuNmMtOC44IDUuNy0yMy4xIDExLjgtNDMgMTcuM0MzNzQuMyA0NTcgMzE4LjUgNDY0IDI1NiA0NjRzLTExOC4zLTctMTU3LjctMTcuOWMtMTkuOS01LjUtMzQuMi0xMS42LTQzLTE3LjNjLTMuNi0yLjQtMy42LTcuMiAwLTkuNmMyLjEtMS40IDQuOC0yLjkgNy45LTQuNWMxNS4zLTcuNyAzOC44LTE0LjkgNjktMjAuNXpcIl1cbn07XG5jb25zdCBmYUZyYW5jU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmcmFuYy1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMThmXCIsIFwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDE2MCAwIDk2LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNjQgMTQ0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE0NCAwIDAtOTYgMTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJ6XCJdXG59O1xuY29uc3QgZmFWb2x1bWVPZmYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sdW1lLW9mZicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjAyNlwiLCBcIk0zMjAgNjRjMC0xMi42LTcuNC0yNC0xOC45LTI5LjJzLTI1LTMuMS0zNC40IDUuM0wxMzEuOCAxNjAgNjQgMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY3LjggMEwyNjYuNyA0NzEuOWM5LjQgOC40IDIyLjkgMTAuNCAzNC40IDUuM1MzMjAgNDYwLjYgMzIwIDQ0OGwwLTM4NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzQXNsSW50ZXJwcmV0aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWFzbC1pbnRlcnByZXRpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCIsIFwiYXNsLWludGVycHJldGluZ1wiLCBcImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCJdLCBcImYyYTNcIiwgXCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw3MiAwIDggMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjdjOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwYzE0LjggMCAyNy43IDggMzQuNyAyMGM4LjggMTUuMyAyOC40IDIwLjUgNDMuNyAxMS43czIwLjUtMjguNCAxMS43LTQzLjdjLTEyLjgtMjIuMS0zMy42LTM5LjEtNTguNC00Ny4xbDgwLjgtMjJjMTctNC42IDI3LjEtMjIuMiAyMi41LTM5LjNzLTIyLjItMjcuMS0zOS4zLTIyLjVMMTk0LjkgMTI0LjZsODEuNi02OGMxMy42LTExLjMgMTUuNC0zMS41IDQuMS00NS4xUzI0OS4xLTMuOSAyMzUuNSA3LjRMMTMzLjYgOTIuM2wyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTcyIDAtOCAwIDAgLjNjLTM1LjIgMi43LTY1LjQgMjIuOC04Mi4xIDUxLjdjLTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMGMtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjctMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnpcIl1cbn07XG5jb25zdCBmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbmNvbnN0IGZhQXNsSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbmNvbnN0IGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyA9IGZhSGFuZHNBc2xJbnRlcnByZXRpbmc7XG5jb25zdCBmYUdlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4ODEsIFwiY29nXCJdLCBcImYwMTNcIiwgXCJNNDk1LjkgMTY2LjZjMy4yIDguNyAuNSAxOC40LTYuNCAyNC42bC00My4zIDM5LjRjMS4xIDguMyAxLjcgMTYuOCAxLjcgMjUuNHMtLjYgMTcuMS0xLjcgMjUuNGw0My4zIDM5LjRjNi45IDYuMiA5LjYgMTUuOSA2LjQgMjQuNmMtNC40IDExLjktOS43IDIzLjMtMTUuOCAzNC4zbC00LjcgOC4xYy02LjYgMTEtMTQgMjEuNC0yMi4xIDMxLjJjLTUuOSA3LjItMTUuNyA5LjYtMjQuNSA2LjhsLTU1LjctMTcuN2MtMTMuNCAxMC4zLTI4LjIgMTguOS00NCAyNS40bC0xMi41IDU3LjFjLTIgOS4xLTkgMTYuMy0xOC4yIDE3LjhjLTEzLjggMi4zLTI4IDMuNS00Mi41IDMuNXMtMjguNy0xLjItNDIuNS0zLjVjLTkuMi0xLjUtMTYuMi04LjctMTguMi0xNy44bC0xMi41LTU3LjFjLTE1LjgtNi41LTMwLjYtMTUuMS00NC0yNS40TDgzLjEgNDI1LjljLTguOCAyLjgtMTguNiAuMy0yNC41LTYuOGMtOC4xLTkuOC0xNS41LTIwLjItMjIuMS0zMS4ybC00LjctOC4xYy02LjEtMTEtMTEuNC0yMi40LTE1LjgtMzQuM2MtMy4yLTguNy0uNS0xOC40IDYuNC0yNC42bDQzLjMtMzkuNEM2NC42IDI3My4xIDY0IDI2NC42IDY0IDI1NnMuNi0xNy4xIDEuNy0yNS40TDIyLjQgMTkxLjJjLTYuOS02LjItOS42LTE1LjktNi40LTI0LjZjNC40LTExLjkgOS43LTIzLjMgMTUuOC0zNC4zbDQuNy04LjFjNi42LTExIDE0LTIxLjQgMjIuMS0zMS4yYzUuOS03LjIgMTUuNy05LjYgMjQuNS02LjhsNTUuNyAxNy43YzEzLjQtMTAuMyAyOC4yLTE4LjkgNDQtMjUuNGwxMi41LTU3LjFjMi05LjEgOS0xNi4zIDE4LjItMTcuOEMyMjcuMyAxLjIgMjQxLjUgMCAyNTYgMHMyOC43IDEuMiA0Mi41IDMuNWM5LjIgMS41IDE2LjIgOC43IDE4LjIgMTcuOGwxMi41IDU3LjFjMTUuOCA2LjUgMzAuNiAxNS4xIDQ0IDI1LjRsNTUuNy0xNy43YzguOC0yLjggMTguNi0uMyAyNC41IDYuOGM4LjEgOS44IDE1LjUgMjAuMiAyMi4xIDMxLjJsNC43IDguMWM2LjEgMTEgMTEuNCAyMi40IDE1LjggMzQuM3pNMjU2IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNvZyA9IGZhR2VhcjtcbmNvbnN0IGZhRHJvcGxldFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Ryb3BsZXQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInRpbnQtc2xhc2hcIl0sIFwiZjVjN1wiLCBcIk0zMjAgNTEyYzUzLjIgMCAxMDEuNC0yMS42IDEzNi4xLTU2LjZsLTI5OC4zLTIzNUMxNDAgMjU3LjEgMTI4IDI5Mi4zIDEyOCAzMjBjMCAxMDYgODYgMTkyIDE5MiAxOTJ6TTUwNS4yIDM3MC43YzQuNC0xNi4yIDYuOC0zMy4xIDYuOC01MC43YzAtOTEuMi0xMzAuMi0yNjIuMy0xNjYuNi0zMDguM0MzMzkuNCA0LjIgMzMwLjUgMCAzMjAuOSAwbC0xLjggMGMtOS42IDAtMTguNSA0LjItMjQuNSAxMS43QzI3Ny44IDMzIDI0MC43IDgxLjMgMjA1LjggMTM2TDM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTA1LjIgMzcwLjd6TTIyNCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFUaW50U2xhc2ggPSBmYURyb3BsZXRTbGFzaDtcbmNvbnN0IGZhTW9zcXVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vc3F1ZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODMzMl0sIFwiZjY3OFwiLCBcIk00MDAgMGM1IDAgOS44IDIuNCAxMi44IDYuNGMzNC43IDQ2LjMgNzguMSA3NC45IDEzMy41IDExMS41YzAgMCAwIDAgMCAwczAgMCAwIDBjNS4yIDMuNCAxMC41IDcgMTYgMTAuNmMyOC45IDE5LjIgNDUuNyA1MS43IDQ1LjcgODYuMWMwIDI4LjYtMTEuMyA1NC41LTI5LjggNzMuNGwtMzU2LjQgMGMtMTguNC0xOS0yOS44LTQ0LjktMjkuOC03My40YzAtMzQuNCAxNi43LTY2LjkgNDUuNy04Ni4xYzUuNC0zLjYgMTAuOC03LjEgMTYtMTAuNmMwIDAgMCAwIDAgMHMwIDAgMCAwQzMwOS4xIDgxLjMgMzUyLjUgNTIuNyAzODcuMiA2LjRjMy00IDcuOC02LjQgMTIuOC02LjR6TTI4OCA1MTJsMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNThjMC0xOS04LjQtMzctMjMtNDkuMkw0MDAgMzg0bC0yNSAyMC44QzM2MC40IDQxNyAzNTIgNDM1IDM1MiA0NTRsMCA1OC02NCAwek03MC40IDUuMmM1LjctNC4zIDEzLjUtNC4zIDE5LjIgMGwxNiAxMkMxMzkuOCA0Mi45IDE2MCA4My4yIDE2MCAxMjZsMCAyTDAgMTI4bDAtMkMwIDgzLjIgMjAuMiA0Mi45IDU0LjQgMTcuMmwxNi0xMnpNMCAxNjBsMTYwIDAgMCAxMzYuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwwIDEyOGMwIDkuNiAyLjEgMTguNiA1LjggMjYuOGMtNi42IDMuNC0xNCA1LjItMjEuOCA1LjJsLTY0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTc2bDAtMTZ6XCJdXG59O1xuY29uc3QgZmFNb3NxdWl0byA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3NxdWl0bycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyYlwiLCBcIk00NjMuNyA1MDUuOWM5LjgtOC45IDEwLjctMjQuMyAyLjEtMzQuM2wtNDIuMS00OSAwLTU0LjdjMC01LjUtMS44LTEwLjgtNS4xLTE1LjFMMzUyIDI2Ni4zbDAtLjNMNDg1LjQgMzg3LjhDNTQyLjQgNDQ3LjYgNjQwIDQwNS4yIDY0MCAzMjAuNmMwLTQ3LjktMzQtODguMy03OS40LTk0LjJsLTE1My0yMy45IDQwLjgtNDAuOWM3LjgtNy44IDkuNC0yMC4xIDMuOS0yOS44TDQyOC41IDkwLjFsMzguMi01MC45YzgtMTAuNiA2LjEtMjUuOS00LjMtMzQuMXMtMjUuMi02LjMtMzMuMiA0LjRsLTQ4IDYzLjljLTUuOSA3LjktNi42IDE4LjYtMS43IDI3LjJMNDAyLjIgMTQwIDM1MiAxOTAuM2wwLTM4LjJjMC0xNC45LTEwLjItMjcuNC0yNC0zMWwwLTU3LjJjMC00LjQtMy42LTgtOC04cy04IDMuNi04IDhsMCA1Ny4yYy0xMy44IDMuNi0yNCAxNi4xLTI0IDMxbDAgMzguMUwyMzcuOCAxNDBsMjIuNi0zOS41YzQuOS04LjYgNC4yLTE5LjMtMS43LTI3LjJsLTQ4LTYzLjljLTgtMTAuNi0yMi44LTEyLjYtMzMuMi00LjRzLTEyLjIgMjMuNS00LjMgMzQuMWwzOC4yIDUwLjktMjMuOSA0MS43Yy01LjUgOS43LTMuOSAyMiAzLjkgMjkuOGw0MC44IDQwLjktMTUzIDIzLjlDMzQgMjMyLjMgMCAyNzIuNyAwIDMyMC42YzAgODQuNiA5Ny42IDEyNyAxNTQuNiA2Ny4xTDI4OCAyNjZsMCAuMy02Ni41IDg2LjRjLTMuMyA0LjMtNS4xIDkuNi01LjEgMTUuMWwwIDU0LjctNDIuMSA0OWMtOC42IDEwLjEtNy43IDI1LjUgMi4xIDM0LjNzMjQuNyA3LjkgMzMuNC0yLjFsNDgtNTUuOWMzLjgtNC40IDUuOS0xMC4yIDUuOS0xNi4xbDAtNTUuNEwyODggMzQ0LjdsMCA2My4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02My4xIDI0LjMgMzEuNiAwIDU1LjRjMCA1LjkgMi4xIDExLjcgNS45IDE2LjFsNDggNTUuOWM4LjYgMTAuMSAyMy42IDExIDMzLjQgMi4xelwiXVxufTtcbmNvbnN0IGZhU3Rhck9mRGF2aWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1vZi1kYXZpZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEwMDE3XSwgXCJmNjlhXCIsIFwiTTQwNC4yIDMwOS41TDM4My4xIDM0NGw0Mi4zIDAtMjEuMS0zNC41ek0zNzEuNCAyNTZsLTU0LTg4LTEyMi44IDAtNTQgODggNTQgODggMTIyLjggMCA1NC04OHptNjUuNyAwbDUzLjQgODdjMy42IDUuOSA1LjUgMTIuNyA1LjUgMTkuNmMwIDIwLjctMTYuOCAzNy40LTM3LjQgMzcuNGwtMTA5LjggMC01Ni4yIDkxLjVDMjg0LjggNTA0LjMgMjcwLjkgNTEyIDI1NiA1MTJzLTI4LjgtNy43LTM2LjYtMjAuNUwxNjMuMyA0MDAgNTMuNCA0MDBDMzIuOCA0MDAgMTYgMzgzLjIgMTYgMzYyLjZjMC02LjkgMS45LTEzLjcgNS41LTE5LjZsNTMuNC04N0wyMS41IDE2OWMtMy42LTUuOS01LjUtMTIuNy01LjUtMTkuNkMxNiAxMjguOCAzMi44IDExMiA1My40IDExMmwxMDkuOCAwIDU2LjItOTEuNUMyMjcuMiA3LjcgMjQxLjEgMCAyNTYgMHMyOC44IDcuNyAzNi42IDIwLjVMMzQ4LjcgMTEybDEwOS44IDBjMjAuNyAwIDM3LjQgMTYuOCAzNy40IDM3LjRjMCA2LjktMS45IDEzLjctNS41IDE5LjZsLTUzLjQgODd6bS01NC04OGwyMS4xIDM0LjVMNDI1LjQgMTY4bC00Mi4zIDB6TTI4MyAxMTJMMjU2IDY4bC0yNyA0NCA1NCAwek0xMjguOSAxNjhsLTQyLjMgMCAyMS4xIDM0LjVMMTI4LjkgMTY4ek0xMDcuOCAzMDkuNUw4Ni42IDM0NGw0Mi4zIDAtMjEuMS0zNC41ek0yMjkgNDAwbDI3IDQ0IDI3LTQ0LTU0IDB6XCJdXG59O1xuY29uc3QgZmFQZXJzb25NaWxpdGFyeVJpZmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1taWxpdGFyeS1yaWZsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU0YlwiLCBcIk0xNjAgMzljMC0xMyAxMC0yMy44IDIyLjktMjQuOUwzMzQuNyAxLjRDMzQ0IC43IDM1MiA4IDM1MiAxNy40TDM1MiA0OGMwIDguOC03LjIgMTYtMTYgMTZMMTg1IDY0Yy0xMy44IDAtMjUtMTEuMi0yNS0yNXptMTcuNiA1N2wxNTYuOCAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTUuNSAuNi0xMC44IDEuNi0xNnptMjI4IDM2NC4zTDM1MiAzNjkuNyAzNTIgNDgwYzAgMS4zLS4xIDIuNS0uMiAzLjhMMTc3LjUgMjM0LjljMTYuNi03LjEgMzQuNi0xMC45IDUzLjMtMTAuOWw1MC40IDBjMTUuOSAwIDMxLjMgMi44IDQ1LjggNy45TDQyMS45IDY3LjdjLTcuNy00LjQtMTAuMy0xNC4yLTUuOS0yMS45czE0LjItMTAuMyAyMS45LTUuOWwxMy45IDggMTMuOSA4YzcuNyA0LjQgMTAuMyAxNC4yIDUuOSAyMS45TDQxNiAxNzMuOWwxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzOTIuNiAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMzIwIDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFzLTI1LjMtMzUuOC0xNC4xLTU0LjhsNzYuMS0xMjguOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMzMxLjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjk2IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xuY29uc3QgZmFDYXJ0U2hvcHBpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FydC1zaG9wcGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODcyMiwgXCJzaG9wcGluZy1jYXJ0XCJdLCBcImYwN2FcIiwgXCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBMNjkuNSAwYzIyIDAgNDEuNSAxMi44IDUwLjYgMzJsNDExIDBjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNsLTI4OC41IDAgNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUw0ODggMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODguMyAwYy0zNC42IDAtNjQuMy0yNC42LTcwLjctNTguNUw3Ny40IDU0LjVjLS43LTMuOC00LTYuNS03LjktNi41TDI0IDQ4QzEwLjcgNDggMCAzNy4zIDAgMjR6TTEyOCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzM2LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVNob3BwaW5nQ2FydCA9IGZhQ2FydFNob3BwaW5nO1xuY29uc3QgZmFWaWFscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFscycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ5M1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDU2IDAgNDggMCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzA0YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTEzNiA5Nkw4OCA5NmwwIDE2MCA0OCAwIDAtMTYwek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNTYgMCA0OCAwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzMDRjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC0zMDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MjQgOTZsLTQ4IDAgMCAxNjAgNDggMCAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVBsdWdDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWZcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVBsYWNlT2ZXb3JzaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYWNlLW9mLXdvcnNoaXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2N2ZcIiwgXCJNMjI0IDEwOS4zbDAgMTA4LjNMMTgzLjMgMjQyYy0xNC41IDguNy0yMy4zIDI0LjMtMjMuMyA0MS4yTDE2MCA1MTJsOTYgMCAwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCA5NiA5NiAwIDAtMjI4LjhjMC0xNi45LTguOC0zMi41LTIzLjMtNDEuMkw0MTYgMjE3LjZsMC0xMDguM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkwzMzEuMyAxMS4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyMzMuNCA4Ni42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZ6TTI0LjkgMzMwLjNDOS41IDMzOC44IDAgMzU0LjkgMCAzNzIuNEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAtMjM4LjRMMjQuOSAzMzAuM3pNNTkyIDUxMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkxLjZjMC0xNy41LTkuNS0zMy42LTI0LjktNDIuMUw1MTIgMjczLjYgNTEyIDUxMmw4MCAwelwiXVxufTtcbmNvbnN0IGZhR3JpcFZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtdmVydGljYWwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY1OGVcIiwgXCJNNDAgMzUybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTkyIDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwek00MCAzMjBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwek0yMzIgMTkybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNDAgMTYwYy0yMi4xIDAtNDAtMTcuOS00MC00MEwwIDcyQzAgNDkuOSAxNy45IDMyIDQwIDMybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMHpNMjMyIDMybDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHpcIl1cbn07XG5jb25zdCBmYUFycm93VHVyblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXR1cm4tdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxldmVsLXVwXCJdLCBcImYxNDhcIiwgXCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYUxldmVsVXAgPSBmYUFycm93VHVyblVwO1xuY29uc3QgZmFVID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTddLCBcIjU1XCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUm9vdFZhcmlhYmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1yb290LXZhcmlhYmxlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzcXVhcmUtcm9vdC1hbHRcIl0sIFwiZjY5OFwiLCBcIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44TDI4Mi42IDc4LjF6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDQ4MCAyNzQuN2w0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0w1MjUuMyAzMjBsNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDQ4MCAzNjUuM2wtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MzQuNyAzMjBsLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVSb290QWx0ID0gZmFTcXVhcmVSb290VmFyaWFibGU7XG5jb25zdCBmYUNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb2NrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzM5LCBcImNsb2NrLWZvdXJcIl0sIFwiZjAxN1wiLCBcIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyQTI1NiAyNTYgMCAxIDEgMjU2IDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG5jb25zdCBmYUNsb2NrRm91ciA9IGZhQ2xvY2s7XG5jb25zdCBmYUJhY2t3YXJkU3RlcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZC1zdGVwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJzdGVwLWJhY2t3YXJkXCJdLCBcImYwNDhcIiwgXCJNMjY3LjUgNDQwLjZjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOWwwLTMyMGMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRsLTE5MiAxNjBMNjQgMjQxIDY0IDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNzguMyAwIDk2TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDUgMTEuNSA5LjYgMTkyIDE2MHpcIl1cbn07XG5jb25zdCBmYVN0ZXBCYWNrd2FyZCA9IGZhQmFja3dhcmRTdGVwO1xuY29uc3QgZmFQYWxsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFsbGV0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDgyXCIsIFwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDIyNCAwIDIyNCAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwLTIyNCAwTDk2IDMyMGwtNjQgMHptOTYgNjRsMTYwIDAgMCA2NC0xNjAgMCAwLTY0em0yMjQgMGwxNjAgMCAwIDY0LTE2MCAwIDAtNjR6XCJdXG59O1xuY29uc3QgZmFGYXVjZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmF1Y2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDA1XCIsIFwiTTE5MiA5NmwwIDEyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2LTEyIDMxLTMuOSAxLS4xIDEgLjEgMzEgMy45IDk2IDEyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAxMiAwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek0zMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwyNTYgMjI0bDAtNDMuOC0zMi00LTMyIDQgMCA0My44LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDI1NmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYUJhc2ViYWxsQmF0QmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXNlYmFsbC1iYXQtYmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQzMlwiLCBcIk00MjQgMGMtMTIuNCAwLTI0LjIgNC45LTMzIDEzLjdMMjMzLjUgMTcxLjJjLTEwLjUgMTAuNS0xOS44IDIyLjEtMjcuNyAzNC42TDEzMi43IDMyMS42Yy03LjMgMTEuNS0xNS44IDIyLjItMjUuNSAzMS45TDY5LjkgMzkwLjdsNTEuMyA1MS4zIDM3LjMtMzcuM2M5LjYtOS42IDIwLjMtMTguMiAzMS45LTI1LjVsMTE1LjgtNzMuMWMxMi41LTcuOSAyNC4xLTE3LjIgMzQuNi0yNy43TDQ5OC4zIDEyMWM4LjctOC43IDEzLjctMjAuNiAxMy43LTMzcy00LjktMjQuMi0xMy43LTMzTDQ1NyAxMy43QzQ0OC4yIDQuOSA0MzYuNCAwIDQyNCAwem04OCA0MzJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0xNSAzOTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDY0IDY0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0OSAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhUyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTE1XSwgXCI1M1wiLCBcIk05OS4xIDEwNS40Qzc5IDExNCA2OC4yIDEyNy4yIDY1LjIgMTQ0LjhjLTIuNCAxNC4xLS43IDIzLjIgMiAyOS40YzIuOCA2LjMgNy45IDEyLjQgMTYuNyAxOC42YzE5LjIgMTMuNCA0OC4zIDIyLjEgODQuOSAzMi41YzEgLjMgMS45IC42IDIuOSAuOGMzMi43IDkuMyA3MiAyMC42IDEwMC45IDQwLjdjMTUuNyAxMC45IDI5LjkgMjUuNSAzOC42IDQ1LjFjOC44IDE5LjggMTAuOCA0MiA2LjYgNjYuM2MtNy4zIDQyLjUtMzUuMyA3MS43LTcxLjggODcuM2MtMzUuNCAxNS4yLTc5LjEgMTcuOS0xMjMuNyAxMC45bC0uMiAwczAgMCAwIDBjLTI0LTMuOS02Mi43LTE3LjEtODcuNi0yNS42Yy00LjgtMS43LTkuMi0zLjEtMTIuOC00LjNDNS4xIDQ0MC44LTMuOSA0MjIuNyAxLjYgNDA1LjlzMjMuNy0yNS44IDQwLjUtMjAuM2M0LjkgMS42IDEwLjIgMy40IDE1LjkgNS40YzI1LjQgOC42IDU2LjQgMTkuMiA3NC40IDIyLjFjMzYuOCA1LjcgNjcuNSAyLjUgODguNS02LjVjMjAuMS04LjYgMzAuOC0yMS44IDMzLjktMzkuNGMyLjQtMTQuMSAuNy0yMy4yLTItMjkuNGMtMi44LTYuMy03LjktMTIuNC0xNi43LTE4LjZjLTE5LjItMTMuNC00OC4zLTIyLjEtODQuOS0zMi41Yy0xLS4zLTEuOS0uNi0yLjktLjhjLTMyLjctOS4zLTcyLTIwLjYtMTAwLjktNDAuN2MtMTUuNy0xMC45LTI5LjktMjUuNS0zOC42LTQ1LjFjLTguOC0xOS44LTEwLjgtNDItNi42LTY2LjNsMzEuNSA1LjVMMi4xIDEzMy45QzkuNCA5MS40IDM3LjQgNjIuMiA3My45IDQ2LjZjMzUuNC0xNS4yIDc5LjEtMTcuOSAxMjMuNy0xMC45YzEzIDIgNTIuNCA5LjYgNjYuNiAxMy40YzE3LjEgNC41IDI3LjIgMjIuMSAyMi43IDM5LjJzLTIyLjEgMjcuMi0zOS4yIDIyLjdjLTExLjItMy00OC4xLTEwLjItNjAuMS0xMmw0LjktMzEuNS00LjkgMzEuNWMtMzYuOS01LjgtNjcuNS0yLjUtODguNiA2LjV6XCJdXG59O1xuY29uc3QgZmFUaW1lbGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aW1lbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTI5Y1wiLCBcIk0xMjggNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMiA5Ny4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjNjMC00NC4yLTM1LjgtODAtODAtODBTNDggNTEuOCA0OCA5NmMwIDMyLjggMTkuNyA2MSA0OCA3My4zTDk2IDIyNGwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjNjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuM2MwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0zMjAgMCAwLTU0Ljd6TTQ4OCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zMjAgMzkyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYUtleWJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleWJvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTAwMF0sIFwiZjExY1wiLCBcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTYgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xNjAgMzM2YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDEyOGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0yNTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTM2OCAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMzUyIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00NjQgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYUNhcmV0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJldC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ3XCIsIFwiTTEzNy40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhMMzIgMTkyYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4elwiXVxufTtcbmNvbnN0IGZhSG91c2VDaGltbmV5TWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5LW1lZGljYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNsaW5pYy1tZWRpY2FsXCJdLCBcImY3ZjJcIiwgXCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFsLTMyIDAgLjcgMTYwLjJjLjIgMzUuNS0yOC41IDY0LjMtNjQgNjQuM2wtMzIwLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjAuNC0zMiAwYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0MTYgMTAwLjcgNDE2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjEgNTIuOCA0Ni40YzggNyAxMiAxNSAxMSAyNHpNMjcyIDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpcIl1cbn07XG5jb25zdCBmYUNsaW5pY01lZGljYWwgPSBmYUhvdXNlQ2hpbW5leU1lZGljYWw7XG5jb25zdCBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS10aHJlZS1xdWFydGVycycsXG4gIGljb246IFszMjAsIDUxMiwgW1widGVtcGVyYXR1cmUtM1wiLCBcInRoZXJtb21ldGVyLTNcIiwgXCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVyc1wiXSwgXCJmMmM4XCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNMMTQ0IDE0NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTc4LjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmUzID0gZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnM7XG5jb25zdCBmYVRoZXJtb21ldGVyMyA9IGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzO1xuY29uc3QgZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMgPSBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycztcbmNvbnN0IGZhTW9iaWxlU2NyZWVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZS1zY3JlZW4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcIm1vYmlsZS1hbmRyb2lkLWFsdFwiXSwgXCJmM2NmXCIsIFwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTQ0IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNjQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zMDQgNjRMODAgNjRsMCAzMjAgMjI0IDAgMC0zMjB6XCJdXG59O1xuY29uc3QgZmFNb2JpbGVBbmRyb2lkQWx0ID0gZmFNb2JpbGVTY3JlZW47XG5jb25zdCBmYVBsYW5lVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyMmRcIiwgXCJNMTkyIDkzLjdDMTkyIDU5LjUgMjIxIDAgMjU2IDBjMzYgMCA2NCA1OS41IDY0IDkzLjdsMCA2Ni4zTDQ5Ny44IDI3OC41YzguOSA1LjkgMTQuMiAxNS45IDE0LjIgMjYuNmwwIDU2LjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJMMzIwIDMyMGwwIDgwIDU3LjYgNDMuMmM0IDMgNi40IDcuOCA2LjQgMTIuOGwwIDQyYzAgNy44LTYuMyAxNC0xNCAxNGMtMS4zIDAtMi42LS4yLTMuOS0uNUwyNTYgNDgwIDE0NS45IDUxMS41Yy0xLjMgLjQtMi42IC41LTMuOSAuNWMtNy44IDAtMTQtNi4zLTE0LTE0bDAtNDJjMC01IDIuNC05LjggNi40LTEyLjhMMTkyIDQwMGwwLTgwTDIxLjEgMzc3QzEwLjcgMzgwLjQgMCAzNzIuNyAwIDM2MS44bDAtNTYuN2MwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDE5MiAxNjBsMC02Ni4zelwiXVxufTtcbmNvbnN0IGZhUGlnZ3lCYW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BpZ2d5LWJhbmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ZDNcIiwgXCJNNDAwIDk2bDAgLjdjLTUuMy0uNC0xMC42LS43LTE2LS43TDI1NiA5NmMtMTYuNSAwLTMyLjUgMi4xLTQ3LjggNmMtLjEtMi0uMi00LS4yLTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnptLTE2IDMyYzMuNSAwIDcgLjEgMTAuNCAuM2M0LjIgLjMgOC40IC43IDEyLjYgMS4zQzQyNC42IDEwOS4xIDQ1MC44IDk2IDQ4MCA5NmwxMS41IDBjMTAuNCAwIDE4IDkuOCAxNS41IDE5LjlsLTEzLjggNTUuMmMxNS44IDE0LjggMjguNyAzMi44IDM3LjUgNTIuOWwxMy4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtOS4xIDEyLjEtMTkuOSAyMi45LTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMtMzQuOS0yNi4yLTU4LjctNjYuMy02My4yLTExMkw2OCAzMDRjLTM3LjYgMC02OC0zMC40LTY4LTY4czMwLjQtNjggNjgtNjhsNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMxLjIgMGMxMi4xLTU5LjggNTcuNy0xMDcuNSAxMTYuMy0xMjIuOGMxMi45LTMuNCAyNi41LTUuMiA0MC41LTUuMmwxMjggMHptNjQgMTM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5SGFsZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXR0ZXJ5LWhhbGYnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImJhdHRlcnktM1wiXSwgXCJmMjQyXCIsIFwiTTQ2NCAxNjBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw4MCAzNTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzODQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC0xNmMwLTQ0LjItMzUuOC04MC04MC04MEw4MCA5NnptMjA4IDk2TDk2IDE5MmwwIDEyOCAxOTIgMCAwLTEyOHpcIl1cbn07XG5jb25zdCBmYUJhdHRlcnkzID0gZmFCYXR0ZXJ5SGFsZjtcbmNvbnN0IGZhTW91bnRhaW5DaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW50YWluLWNpdHknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MmVcIiwgXCJNMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTIuMSA3MS40IDExOC40YzIuNS0xLjYgNS40LTIuNSA4LjYtMi41bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zLjUgMCA3My44IDEyMi40YzEyLjQgMjAuNiAxMi45IDQ2LjMgMS4yIDY3LjNjLS40IC44LS45IDEuNi0xLjQgMi4zTDU5MiA1MTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0IDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTQwIDAgMC0xNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDB6bTMyIDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTM1MiAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYwIDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE2IDgwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCAxODguOUwyODMuOCAyODggMjIzIDI4OGwtNDggNjQtMjQuNi00MS4yTDIyNCAxODguOXptMjkuNC00NC4yQzI0Ny4xIDEzNC4zIDIzNiAxMjggMjI0IDEyOHMtMjMuMSA2LjMtMjkuNCAxNi43TDUuMSA0NTguOWMtNi41IDEwLjgtNi43IDI0LjMtLjcgMzUuM1MyMiA1MTIgMzQuNSA1MTJsMzc5LjEgMGMxMi41IDAgMjQtNi44IDMwLjEtMTcuOHM1LjgtMjQuNS0uNy0zNS4zTDI1My40IDE0NC43elwiXVxufTtcbmNvbnN0IGZhQ29pbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29pbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1MWVcIiwgXCJNNTEyIDgwYzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTI5LjEgMTYuMS03Mi41IDI3LjUtMTIyLjMgMzAuOWMtMy43LTEuOC03LjQtMy41LTExLjMtNUMzMDAuNiAxMzcuNCAyNDguMiAxMjggMTkyIDEyOGMtOC4zIDAtMTYuNCAuMi0yNC41IC42bC0xLjEtLjZDMTQyLjMgMTE0LjYgMTI4IDk4IDEyOCA4MGMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MHpNMTYwLjcgMTYxLjFjMTAuMi0uNyAyMC43LTEuMSAzMS4zLTEuMWM2Mi4yIDAgMTE3LjQgMTIuMyAxNTIuNSAzMS40QzM2OS4zIDIwNC45IDM4NCAyMjEuNyAzODQgMjQwYzAgNC0uNyA3LjktMi4xIDExLjdjLTQuNiAxMy4yLTE3IDI1LjMtMzUgMzUuNWMwIDAgMCAwIDAgMGMtLjEgLjEtLjMgLjEtLjQgLjJjMCAwIDAgMCAwIDBzMCAwIDAgMGMtLjMgLjItLjYgLjMtLjkgLjVjLTM1IDE5LjQtOTAuOCAzMi0xNTMuNiAzMmMtNTkuNiAwLTExMi45LTExLjMtMTQ4LjItMjkuMWMtMS45LS45LTMuNy0xLjktNS41LTIuOUMxNC4zIDI3NC42IDAgMjU4IDAgMjQwYzAtMzQuOCA1My40LTY0LjUgMTI4LTc1LjRjMTAuNS0xLjUgMjEuNC0yLjcgMzIuNy0zLjV6TTQxNiAyNDBjMC0yMS45LTEwLjYtMzkuOS0yNC4xLTUzLjRjMjguMy00LjQgNTQuMi0xMS40IDc2LjItMjAuNWMxNi4zLTYuOCAzMS41LTE1LjIgNDMuOS0yNS41bDAgMzUuNGMwIDE5LjMtMTYuNSAzNy4xLTQzLjggNTAuOWMtMTQuNiA3LjQtMzIuNCAxMy43LTUyLjQgMTguNWMuMS0xLjggLjItMy41IC4yLTUuM3ptLTMyIDk2YzAgMTgtMTQuMyAzNC42LTM4LjQgNDhjLTEuOCAxLTMuNiAxLjktNS41IDIuOUMzMDQuOSA0MDQuNyAyNTEuNiA0MTYgMTkyIDQxNmMtNjIuOCAwLTExOC42LTEyLjYtMTUzLjYtMzJDMTQuMyAzNzAuNiAwIDM1NCAwIDMzNmwwLTM1LjRjMTIuNSAxMC4zIDI3LjYgMTguNyA0My45IDI1LjVDODMuNCAzNDIuNiAxMzUuOCAzNTIgMTkyIDM1MnMxMDguNi05LjQgMTQ4LjEtMjUuOWM3LjgtMy4yIDE1LjMtNi45IDIyLjQtMTAuOWM2LjEtMy40IDExLjgtNy4yIDE3LjItMTEuMmMxLjUtMS4xIDIuOS0yLjMgNC4zLTMuNGwwIDMuNCAwIDUuNyAwIDI2LjN6bTMyIDBsMC0zMiAwLTI1LjljMTktNC4yIDM2LjUtOS41IDUyLjEtMTZjMTYuMy02LjggMzEuNS0xNS4yIDQzLjktMjUuNWwwIDM1LjRjMCAxMC41LTUgMjEtMTQuOSAzMC45Yy0xNi4zIDE2LjMtNDUgMjkuNy04MS4zIDM4LjRjLjEtMS43IC4yLTMuNSAuMi01LjN6TTE5MiA0NDhjNTYuMiAwIDEwOC42LTkuNCAxNDguMS0yNS45YzE2LjMtNi44IDMxLjUtMTUuMiA0My45LTI1LjVsMCAzNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTM1LjRjMTIuNSAxMC4zIDI3LjYgMTguNyA0My45IDI1LjVDODMuNCA0MzguNiAxMzUuOCA0NDggMTkyIDQ0OHpcIl1cbn07XG5jb25zdCBmYUtoYW5kYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraGFuZGEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzcyXSwgXCJmNjZkXCIsIFwiTTI0NS44IDMuN2M1LjktNC45IDE0LjYtNC45IDIwLjUgMGw0OCA0MGM1LjkgNC45IDcuNSAxMy4yIDMuOCAxOS45YzAgMCAwIDAgMCAwczAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwbC0uMSAuMS0uMyAuNmMtLjMgLjUtLjcgMS4zLTEuMiAyLjNjLTEgMi0yLjYgNS00LjQgOC42Yy0uNSAuOS0uOSAxLjktMS40IDIuOUMzNDQuOSA5Ny40IDM2OCAxMzQgMzY4IDE3NnMtMjMuMSA3OC42LTU3LjMgOTcuOGMuNSAxIDEgMiAxLjQgMi45YzEuOCAzLjcgMy4zIDYuNiA0LjQgOC42Yy41IDEgLjkgMS44IDEuMiAyLjNsLjMgLjYgLjEgLjFzMCAwIDAgMHMwIDAgMCAwYzMuNiA2LjcgMiAxNS0zLjggMTkuOUwyNzIgMzQzLjVsMCAxOS44IDM1LjYtMjQuNSA0MS4xLTI4LjJjNDIuOC0yOS40IDY4LjQtNzggNjguNC0xMzBjMC0zMS4xLTkuMi02MS42LTI2LjUtODcuNWwtMi44LTQuMmMtNC02LTMuNS0xNCAxLjMtMTkuNXMxMi43LTcgMTkuMi0zLjdMNDAxLjEgODBjNy4yLTE0LjMgNy4yLTE0LjMgNy4yLTE0LjNzMCAwIDAgMHMwIDAgMCAwbC4xIDAgLjMgLjIgMSAuNWMuOCAuNCAyIDEuMSAzLjUgMS45YzIuOSAxLjcgNyA0LjEgMTEuOCA3LjNjOS42IDYuNCAyMi41IDE2LjEgMzUuNCAyOWMyNS43IDI1LjcgNTIuNyA2NS42IDUyLjcgMTE5LjNjMCA1My4xLTI2LjQgMTAwLjUtNTEuMiAxMzMuNmMtMTIuNiAxNi43LTI1LjEgMzAuMy0zNC41IDM5LjdjLTQuNyA0LjctOC43IDguNC0xMS41IDEwLjljLTEuNCAxLjMtMi41IDIuMi0zLjMgMi45bC0uOSAuOC0uMyAuMi0uMSAuMWMwIDAgMCAwIDAgMHMwIDAgMCAwTDQwMS4xIDQwMGwxMC4yIDEyLjNjLTUuMSA0LjMtMTIuNCA0LjktMTguMiAxLjZsLTc1LjYtNDMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uN2MxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFMMjcyIDQyMy40bDAgMjguOWM5LjYgNS41IDE2IDE1LjkgMTYgMjcuN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTExLjggNi40LTIyLjIgMTYtMjcuN2wwLTI4LjEtNDAuMyAyNy43QzE5Ny44IDQ2My4zIDE4Ny45IDQ3MiAxNzYgNDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03NS42IDQzYy01LjggMy4zLTEzIDIuNy0xOC4yLTEuNkwxMTIgNDAwYy0xMC4yIDEyLjMtMTAuMiAxMi4zLTEwLjMgMTIuM3MwIDAgMCAwczAgMCAwIDBsLS4xLS4xLS4zLS4yLS45LS44Yy0uOC0uNy0xLjktMS43LTMuMy0yLjljLTIuOC0yLjUtNi43LTYuMi0xMS41LTEwLjljLTkuNC05LjQtMjEuOS0yMy0zNC41LTM5LjdDMjYuNCAzMjQuNSAwIDI3Ny4xIDAgMjI0YzAtNTMuNyAyNi45LTkzLjYgNTIuNy0xMTkuM2MxMi45LTEyLjkgMjUuOC0yMi42IDM1LjQtMjlDOTMgNzIuNSA5NyA3MCA5OS45IDY4LjRjMS41LS44IDIuNi0xLjUgMy41LTEuOWwxLS41IC4zLS4yIC4xIDBjMCAwIDAgMCAwIDBzMCAwIDAgMEwxMTIgODBsLTcuMi0xNC4zYzYuNS0zLjIgMTQuMy0xLjcgMTkuMiAzLjdzNS4zIDEzLjQgMS4zIDE5LjVsLTIuOCA0LjJDMTA1LjIgMTE5IDk2IDE0OS41IDk2IDE4MC42YzAgNTEuOSAyNS42IDEwMC42IDY4LjQgMTMwbDQxLjEgMjguMkwyNDAgMzYyLjZsMC0xOS4xLTQyLjItMzUuMmMtNS45LTQuOS03LjUtMTMuMi0zLjgtMTkuOWMwIDAgMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBsLjEtLjEgLjMtLjZjLjMtLjUgLjctMS4zIDEuMi0yLjNjMS0yIDIuNi01IDQuNC04LjZjLjUtLjkgLjktMS45IDEuNC0yLjlDMTY3LjEgMjU0LjYgMTQ0IDIxOCAxNDQgMTc2czIzLjEtNzguNiA1Ny4zLTk3LjhjLS41LTEtMS0yLTEuNC0yLjljLTEuOC0zLjctMy4zLTYuNi00LjQtOC42Yy0uNS0xLS45LTEuOC0xLjItMi4zbC0uMy0uNi0uMS0uMXMwIDAgMCAwczAgMCAwIDBzMCAwIDAgMGMtMy42LTYuNy0yLTE1IDMuOC0xOS45bDQ4LTQwek0yMjAuMiAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xQzIyNyAyMTAuMiAyMzIgMTkwLjkgMjMyIDE3NnMtNS0zNC4yLTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xQzI4NSAxNDEuOCAyODAgMTYxLjEgMjgwIDE3NnM1IDM0LjIgMTEuOCA1My4xelwiXVxufTtcbmNvbnN0IGZhU2xpZGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGlkZXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzbGlkZXJzLWhcIl0sIFwiZjFkZVwiLCBcIk0wIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyMCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzItODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDh6TTE5MiAxMjhhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em03My4zLTY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NHpcIl1cbn07XG5jb25zdCBmYVNsaWRlcnNIID0gZmFTbGlkZXJzO1xuY29uc3QgZmFGb2xkZXJUcmVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci10cmVlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODAyXCIsIFwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJsMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTY0TDY0IDM4NGwwLTIyNCAxOTIgMCAwLTY0TDY0IDk2bDAtNjR6TTI4OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTk4LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMNDA5LjQgOS40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwem0wIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMzIwIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjB6XCJdXG59O1xuY29uc3QgZmFOZXR3b3JrV2lyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmV0d29yay13aXJlZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZmZlwiLCBcIk0yNTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0ek0yNDAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0OCAwIDAgMzJMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAzMi00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMC0zMiAyNTYgMCAwIDMyLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTYwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtMzIgNDggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI0MCAwek05NiA0NDhsMC02NCAxMjggMCAwIDY0TDk2IDQ0OHptMzIwLTY0bDEyOCAwIDAgNjQtMTI4IDAgMC02NHpcIl1cbn07XG5jb25zdCBmYU1hcFBpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtcGluJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4MjA1XSwgXCJmMjc2XCIsIFwiTTE2IDE0NGExNDQgMTQ0IDAgMSAxIDI4OCAwQTE0NCAxNDQgMCAxIDEgMTYgMTQ0ek0xNjAgODBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTUzIDAtOTYgNDMtOTYgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMTI4IDQ4MGwwLTE2Mi45YzEwLjQgMS45IDIxLjEgMi45IDMyIDIuOXMyMS42LTEgMzItMi45TDE5MiA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xuY29uc3QgZmFIYW1zYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW1zYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NVwiLCBcIk0zNC42IDI4OEw4MCAyODhjOC44IDAgMTYtNy4yIDE2LTE2TDk2IDcyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxMzJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xNjRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE2NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEzMmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjAwYzAgOC44IDcuMiAxNiAxNiAxNmw0NS40IDBjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjZjMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFzLTExOS40LTI1LjgtMTYwLjYtNzFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zQzAgMzAzLjUgMTUuNSAyODggMzQuNiAyODh6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yYy0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUNlbnRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlbnQtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTNmNVwiLCBcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM0LjdjMzAuOSA1LjIgNTkuMiAxNy43IDgzLjIgMzUuOGMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNEMyNzkuNCAxMzcuNSAyNTIuOSAxMjggMjI0IDEyOGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhzNTcuMyAxMjggMTI4IDEyOGMyOC45IDAgNTUuNC05LjUgNzYuOC0yNS42YzE0LjEtMTAuNiAzNC4yLTcuOCA0NC44IDYuNHM3LjggMzQuMi02LjQgNDQuOGMtMjQgMTgtNTIuNCAzMC42LTgzLjIgMzUuOGwwIDM0LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43QzEwMS4yIDQzMC4xIDMyIDM1MS4xIDMyIDI1NnM2OS4yLTE3NC4xIDE2MC0xODkuM0wxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFGbGFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFzaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjM1wiLCBcIk0yODggMEwxNjAgMCAxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMmwwIDEzMi44YzAgMTEuOC0zLjMgMjMuNS05LjUgMzMuNUwxMC4zIDQwNi4yQzMuNiA0MTcuMiAwIDQyOS43IDAgNDQyLjZDMCA0ODAuOSAzMS4xIDUxMiA2OS40IDUxMmwzMDkuMiAwYzM4LjMgMCA2OS40LTMxLjEgNjkuNC02OS40YzAtMTIuOC0zLjYtMjUuNC0xMC4zLTM2LjRMMzI5LjUgMjMwLjRjLTYuMi0xMC4xLTkuNS0yMS43LTkuNS0zMy41TDMyMCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyODggMHpNMTkyIDE5Ni44TDE5MiA2NGw2NCAwIDAgMTMyLjhjMCAyMy43IDYuNiA0Ni45IDE5IDY3LjFMMzA5LjUgMzIwbC0xNzEgMEwxNzMgMjYzLjljMTIuNC0yMC4yIDE5LTQzLjQgMTktNjcuMXpcIl1cbn07XG5jb25zdCBmYVBlcnNvblByZWduYW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1wcmVnbmFudCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTMxZVwiLCBcIk0xOTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTEyMCAzODNjLTEzLjgtMy42LTI0LTE2LjEtMjQtMzFsMC01NS4xLTQuNiA3LjZjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE1LTI0LjkgNDAuMy00MS41IDY4LjctNDUuNmM0LjEtLjYgOC4yLTEgMTIuNS0xbDEuMSAwIDEyLjUgMCAyLjQgMGMxLjQgMCAyLjggLjEgNC4xIC4zYzM1LjcgMi45IDY1LjQgMjkuMyA3Mi4xIDY1bDYuMSAzMi41YzQ0LjMgOC42IDc3LjcgNDcuNSA3Ny43IDk0LjNsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYgMC00MCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni04IDAtOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05N3pcIl1cbn07XG5jb25zdCBmYVdhbmRTcGFya2xlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YW5kLXNwYXJrbGVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzJiXCIsIFwiTTQ2NCA2LjFjOS41LTguNSAyNC04LjEgMzMgLjlsOCA4YzkgOSA5LjQgMjMuNSAuOSAzM2wtODUuOCA5NS45Yy0yLjYgMi45LTQuMSA2LjctNC4xIDEwLjdsMCAyMS40YzAgOC44LTcuMiAxNi0xNiAxNmwtMTUuOCAwYy00LjYgMC04LjkgMS45LTExLjkgNS4zTDEwMC43IDUwMC45Qzk0LjMgNTA4IDg1LjMgNTEyIDc1LjggNTEyYy04LjggMC0xNy4zLTMuNS0yMy41LTkuOEw5LjcgNDU5LjdDMy41IDQ1My40IDAgNDQ1IDAgNDM2LjJjMC05LjUgNC0xOC41IDExLjEtMjQuOGwxMTEuNi05OS44YzMuNC0zIDUuMy03LjQgNS4zLTExLjlsMC0yNy42YzAtOC44IDcuMi0xNiAxNi0xNmwzNC42IDBjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOEw4Ny43IDIxOC4yYy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjhMNzIuMyA2OS44YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xelwiXVxufTtcbmNvbnN0IGZhRWxsaXBzaXNWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGxpcHNpcy12ZXJ0aWNhbCcsXG4gIGljb246IFsxMjgsIDUxMiwgW1wiZWxsaXBzaXMtdlwiXSwgXCJmMTQyXCIsIFwiTTY0IDM2MGE1NiA1NiAwIDEgMCAwIDExMiA1NiA1NiAwIDEgMCAwLTExMnptMC0xNjBhNTYgNTYgMCAxIDAgMCAxMTIgNTYgNTYgMCAxIDAgMC0xMTJ6TTEyMCA5NkE1NiA1NiAwIDEgMCA4IDk2YTU2IDU2IDAgMSAwIDExMiAwelwiXVxufTtcbmNvbnN0IGZhRWxsaXBzaXNWID0gZmFFbGxpcHNpc1ZlcnRpY2FsO1xuY29uc3QgZmFUaWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGlja2V0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTAzXSwgXCJmMTQ1XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRjMCA4LjggNy40IDE1LjcgMTUuNyAxOC42QzM0LjUgMjE3LjEgNDggMjM1IDQ4IDI1NnMtMTMuNSAzOC45LTMyLjMgNDUuNEM3LjQgMzA0LjMgMCAzMTEuMiAwIDMyMGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC04LjgtNy40LTE1LjctMTUuNy0xOC42QzU0MS41IDI5NC45IDUyOCAyNzcgNTI4IDI1NnMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTY0IDExMmwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6XCJdXG59O1xuY29uc3QgZmFQb3dlck9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb3dlci1vZmYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5MjExXSwgXCJmMDExXCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0ek0xNDMuNSAxMjAuNmMxMy42LTExLjMgMTUuNC0zMS41IDQuMS00NS4xcy0zMS41LTE1LjQtNDUuMS00LjFDNDkuNyAxMTUuNCAxNiAxODEuOCAxNiAyNTZjMCAxMzIuNSAxMDcuNSAyNDAgMjQwIDI0MHMyNDAtMTA3LjUgMjQwLTI0MGMwLTc0LjItMzMuOC0xNDAuNi04Ni42LTE4NC42Yy0xMy42LTExLjMtMzMuOC05LjQtNDUuMSA0LjFzLTkuNCAzMy44IDQuMSA0NS4xYzM4LjkgMzIuMyA2My41IDgxIDYzLjUgMTM1LjRjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZzLTE3Ni03OC44LTE3Ni0xNzZjMC01NC40IDI0LjctMTAzLjEgNjMuNS0xMzUuNHpcIl1cbn07XG5jb25zdCBmYVJpZ2h0TG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyaWdodC1sb25nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1yaWdodFwiXSwgXCJmMzBiXCIsIFwiTTMzNC41IDQxNGM4LjggMy44IDE5IDIgMjYtNC42bDE0NC0xMzZjNC44LTQuNSA3LjUtMTAuOCA3LjUtMTcuNHMtMi43LTEyLjktNy41LTE3LjRsLTE0NC0xMzZjLTctNi42LTE3LjItOC40LTI2LTQuNnMtMTQuNSAxMi41LTE0LjUgMjJsMCA3MkwzMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjg4IDAgMCA3MmMwIDkuNiA1LjcgMTguMiAxNC41IDIyelwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93QWx0UmlnaHQgPSBmYVJpZ2h0TG9uZztcbmNvbnN0IGZhRmxhZ1VzYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnLXVzYScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc0ZFwiLCBcIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41YzQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNEw0NDggMTM2LjNsMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNMNjQgMjAzLjFsMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRMNDQ4IDIzMi4zbDAgNjItNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zTDY0IDI5OS4xbDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40TDQ0OCAzMjguM2wwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40Yy0zNy45LTE5LTgxLjMtMjMuNy0xMjIuNS0xMy40TDY0IDQwMGwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQgMC03MC41IDAtMzIuNyAwLTYzLjMgMC0zMi43IDAtNjMuMyAwLTMyLjdMMCA2NCAwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZBMTYgMTYgMCAxIDAgODAgOTZhMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYUxhcHRvcEZpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wLWZpbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MWRcIiwgXCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCAyMjQtNDQuOCAwQzguNiAyODggMCAyOTYuNiAwIDMwNy4yQzAgMzQ5LjYgMzQuNCAzODQgNzYuOCAzODRMMzIwIDM4NGwwLTk2LTE5MiAwIDAtMjI0IDMyMCAwIDAgMzIgNjQgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwek01MTIgMTI4bC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyODhjMCAyNi41IDIxLjUgNDggNDggNDhsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDgtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnptMzIgMGwwIDk2IDk2IDAtOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFUdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0ZWxldHlwZVwiXSwgXCJmMWU0XCIsIFwiTTM4LjMgMjQxLjNMMTUuMSAyMDAuNmMtOS4yLTE2LjItOC40LTM2LjUgNC41LTUwQzYxLjQgMTA2LjggMTQ0LjcgNDggMjU2IDQ4czE5NC42IDU4LjggMjM2LjQgMTAyLjZjMTIuOSAxMy41IDEzLjcgMzMuOCA0LjUgNTBsLTIzLjEgNDAuN2MtNy41IDEzLjItMjMuMyAxOS4zLTM3LjggMTQuNmwtODEuMS0yNi42Yy0xMy4xLTQuMy0yMi0xNi42LTIyLTMwLjRsMC01NC44Yy00OS42LTE4LjEtMTA0LTE4LjEtMTUzLjYgMGwwIDU0LjhjMCAxMy44LTguOSAyNi4xLTIyIDMwLjRMNzYuMSAyNTUuOGMtMTQuNSA0LjctMzAuMy0xLjQtMzcuOC0xNC42ek0zMiAzMzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNDQgMzIwbDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpcIl1cbn07XG5jb25zdCBmYVRlbGV0eXBlID0gZmFUdHk7XG5jb25zdCBmYURpYWdyYW1OZXh0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYWdyYW0tbmV4dCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTQ3NlwiLCBcIk01MTIgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNjggMCAwIDY0IDQ2LjEgMGMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDI3MyAzOTljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2OSAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDFsNDYuMSAwIDAtNjRMNjQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6TTQ0OCA0MTZsMC02NC04Mi43IDAgLjQtLjRjMTguNC0xOC40IDIwLjQtNDMuNyAxMS02My42bDcxLjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw3MS4zIDBjLTkuNCAxOS45LTcuNCA0NS4yIDExIDYzLjZsLjQgLjRMNjQgMzUybDAgNjQgMTQ2LjcgMCA1LjcgNS43YzIxLjkgMjEuOSA1Ny4zIDIxLjkgNzkuMiAwbDUuNy01LjdMNDQ4IDQxNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvblJpZmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1yaWZsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0ZVwiLCBcIk0yNjUuMiAxOTJjMjUuNCAwIDQ5LjggNy4xIDcwLjggMTkuOUwzMzYgNTEybC0xOTIgMCAwLTE3NC4zTDkwLjQgNDI4LjNjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMXMtMjUuMy0zNS44LTE0LjEtNTQuOEw5Ny43IDI1OC44YzI0LjUtNDEuNCA2OS02Ni44IDExNy4xLTY2LjhsNTAuNCAwek0xNjAgODBhODAgODAgMCAxIDEgMTYwIDBBODAgODAgMCAxIDEgMTYwIDgwek00NDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxMTYuM2M5LjYgNS41IDE2IDE1LjkgMTYgMjcuN2wwIDEwOS4zIDE2LTUuMyAwLTU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDg0LjVjMCA2LjktNC40IDEzLTEwLjkgMTUuMkw0ODAgMzI1LjNsMCAyNi43IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC00NCAwIDIzIDkyLjFjMi41IDEwLjEtNS4xIDE5LjktMTUuNSAxOS45TDQzMiA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTk2LTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdMNDE2IDMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDAgMTYgMHpcIl1cbn07XG5jb25zdCBmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEyXCIsIFwiTTMyMCAzNjhjMCA1OS41IDI5LjUgMTEyLjEgNzQuOCAxNDRsLTI2Ni43IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwLjQtMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0TDMyMCAyNTZsMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUNsb3NlZENhcHRpb25pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvc2VkLWNhcHRpb25pbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMGFcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTIwMCAyMDhjMTQuMiAwIDI3IDYuMSAzNS44IDE2YzguOCA5LjkgMjQgMTAuNyAzMy45IDEuOXMxMC43LTI0IDEuOS0zMy45Yy0xNy41LTE5LjYtNDMuMS0zMi03MS41LTMyYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI4LjQgMCA1NC0xMi40IDcxLjUtMzJjOC44LTkuOSA4LTI1LTEuOS0zMy45cy0yNS04LTMzLjkgMS45Yy04LjggOS45LTIxLjYgMTYtMzUuOCAxNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHptMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzE0LjIgMCAyNyA2LjEgMzUuOCAxNmM4LjggOS45IDI0IDEwLjcgMzMuOSAxLjlzMTAuNy0yNCAxLjktMzMuOWMtMTcuNS0xOS42LTQzLjEtMzItNzEuNS0zMmMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyOC40IDAgNTQtMTIuNCA3MS41LTMyYzguOC05LjkgOC0yNS0xLjktMzMuOXMtMjUtOC0zMy45IDEuOWMtOC44IDkuOS0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbmNvbnN0IGZhUGVyc29uSGlraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1oaWtpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhpa2luZ1wiXSwgXCJmNmVjXCIsIFwiTTE5MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem01MS4zIDE4Mi43TDIyNC4yIDMwN2w0OS43IDQ5LjdjOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA4OS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy03My45LTczLjljLTE1LjgtMTUuOC0yMi4yLTM4LjYtMTYuOS02MC4zbDIwLjQtODRjOC4zLTM0LjEgNDIuNy01NC45IDc2LjctNDYuNGMxOSA0LjggMzUuNiAxNi40IDQ2LjQgMzIuN0wzMDUuMSAyMDhsMzAuOSAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU1LjhjMCAuMSAwIC4yIDAgLjJzMCAuMiAwIC4yTDM4NCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMTYtMzkuNCAwYy0xNiAwLTMxLTgtMzkuOS0yMS40bC0xMy4zLTIwek04MS4xIDQ3MS45TDExNy4zIDMzNGMzIDQuMiA2LjQgOC4yIDEwLjEgMTEuOWw0MS45IDQxLjlMMTQyLjkgNDg4LjFjLTQuNSAxNy4xLTIyIDI3LjMtMzkuMSAyMi44cy0yNy4zLTIyLTIyLjgtMzkuMXptNTUuNS0zNDZMMTAxLjQgMjY2LjVjLTMgMTIuMS0xNC45IDE5LjktMjcuMiAxNy45bC00Ny45LThjLTE0LTIuMy0yMi45LTE2LjMtMTkuMi0zMEwzMS45IDE1NWM5LjUtMzQuOCA0MS4xLTU5IDc3LjItNTlsNC4yIDBjMTUuNiAwIDI3LjEgMTQuNyAyMy4zIDI5Ljh6XCJdXG59O1xuY29uc3QgZmFIaWtpbmcgPSBmYVBlcnNvbkhpa2luZztcbmNvbnN0IGZhVmVudXNEb3VibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVudXMtZG91YmxlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTg5MF0sIFwiZjIyNlwiLCBcIk0xOTIgMjg4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMzY4IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFsMCAzNC45IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM0LjlDNzguMSAzMzQuMSAxNiAyNjIuMyAxNiAxNzZDMTYgNzguOCA5NC44IDAgMTkyIDBzMTc2IDc4LjggMTc2IDE3NnpNMzQ0IDMxOGMxNC42LTE1LjYgMjYuOC0zMy40IDM2LTUzYzE4LjggMTQuNCA0Mi40IDIzIDY4IDIzYzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEyYy0yNS42IDAtNDkuMSA4LjYtNjggMjNjLTkuMy0xOS41LTIxLjUtMzcuNC0zNi01M0MzNzMuMSAxMi42IDQwOS4xIDAgNDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy0yNi42LTQuOS01MS4xLTE1LjctNzItMzEuMXpcIl1cbn07XG5jb25zdCBmYUltYWdlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbWFnZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzMDJcIiwgXCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6TTM5NiAxMzguN2w5NiAxNDRjNC45IDcuNCA1LjQgMTYuOCAxLjIgMjQuNlM0ODAuOSAzMjAgNDcyIDMyMGwtMTQ0IDAtNDggMC04MCAwYy05LjIgMC0xNy42LTUuMy0yMS42LTEzLjZzLTIuOS0xOC4yIDIuOS0yNS40bDY0LTgwYzQuNi01LjcgMTEuNC05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMTcuMyAyMS42IDU2LTg0QzM2MC41IDEzMiAzNjggMTI4IDM3NiAxMjhzMTUuNSA0IDIwIDEwLjd6TTE5MiAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCAzNDRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzZsMzIwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyMCAwYy00OC42IDAtODgtMzkuNC04OC04OGwwLTIyNHpcIl1cbn07XG5jb25zdCBmYUNhbGN1bGF0b3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsY3VsYXRvcicsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQyNV0sIFwiZjFlY1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek05NiA2NGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgMTYwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTk2IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDI1NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTY0LTY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDQ0OGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6XCJdXG59O1xuY29uc3QgZmFQZW9wbGVQdWxsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blb3BsZS1wdWxsaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTM1XCIsIFwiTTgwIDk2QTQ4IDQ4IDAgMSAwIDgwIDBhNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmM5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhMMTIzLjEgMzUybDE1LjcgMCAzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuN2M4LjYgMy42IDE4IDMuMSAyNS45LS43YzMuNC0xLjYgNi42LTMuOSA5LjMtNi43YzMuMS0zLjIgNS41LTcgNy4xLTExLjRjLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDUzNyAyMzIuN2wtMTUuMy0zNi44QzUwNC41IDE1NC44IDQ2NC4zIDEyOCA0MTkuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6XCJdXG59O1xuY29uc3QgZmFOID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTBdLCBcIjRlXCIsIFwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwwIDY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6XCJdXG59O1xuY29uc3QgZmFDYWJsZUNhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWJsZS1jYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2NzMsIDU3NTUxLCBcInRyYW1cIl0sIFwiZjdkYVwiLCBcIk0yODggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCA1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC02Ni41LTIwMy4xIDQyYy0xMyAyLjctMjUuNy01LjctMjguNC0xOC42czUuNy0yNS43IDE4LjYtMjguNGwyMzItNDggMjMyLTQ4YzEzLTIuNyAyNS43IDUuNyAyOC40IDE4LjZzLTUuNyAyNS43LTE4LjYgMjguNEwyODAgMTQ3LjVsMCA3Ni41IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHptMTEyIDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwelwiXVxufTtcbmNvbnN0IGZhVHJhbSA9IGZhQ2FibGVDYXI7XG5jb25zdCBmYUNsb3VkUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1yYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzgzLCA5OTI2XSwgXCJmNzNkXCIsIFwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NmMwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMkM2NC43IDEyNi4xIDY0IDExOS4xIDY0IDExMkM2NCA1MC4xIDExNC4xIDAgMTc2IDBjNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwYzE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjhjNDQuMiAwIDgwIDM1LjggODAgODBjMCA1LjUtLjYgMTAuOC0xLjYgMTZjLjUgMCAxLjEgMCAxLjYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bS02LjggNTJjMS4zLTIuNSAzLjktNCA2LjgtNHM1LjQgMS41IDYuOCA0bDM1LjEgNjQuNmM0LjEgNy41IDYuMiAxNS44IDYuMiAyNC4zbDAgM2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTNjMC04LjUgMi4xLTE2LjkgNi4yLTI0LjNMODkuMiAzNzJ6bTE2MCAwYzEuMy0yLjUgMy45LTQgNi44LTRzNS40IDEuNSA2LjggNGwzNS4xIDY0LjZjNC4xIDcuNSA2LjIgMTUuOCA2LjIgMjQuM2wwIDNjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0zYzAtOC41IDIuMS0xNi45IDYuMi0yNC4zTDI0OS4yIDM3MnptMTI0LjkgNjQuNkw0MDkuMiAzNzJjMS4zLTIuNSAzLjktNCA2LjgtNHM1LjQgMS41IDYuOCA0bDM1LjEgNjQuNmM0LjEgNy41IDYuMiAxNS44IDYuMiAyNC4zbDAgM2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTNjMC04LjUgMi4xLTE2LjkgNi4yLTI0LjN6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0NpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRkNFwiLCBcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDk2IDBjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOEwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTExMi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek04MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFTaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg2NzRdLCBcImYyMWFcIiwgXCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOCA0NC40IDE0LjhjMjMuMSA3LjcgMjkuNSAzNy41IDExLjUgNTMuOWwtMTAxIDkyLjZjLTE2LjIgOS40LTM0LjcgMTUuMS01MC45IDE1LjFjLTE5LjYgMC00MC44LTcuNy01OS4yLTIwLjNjLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNy4xIDExLjgtMzggMjAuMy01OS4yIDIwLjNjLTE2LjIgMC0zNC43LTUuNy01MC45LTE1LjFsLTEwMS05Mi42Yy0xOC0xNi41LTExLjYtNDYuMiAxMS41LTUzLjlMOTYgMjQwbDAtMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMC0zMnpNMTYwIDIxOC43bDEwNy44LTM1LjljMTMuMS00LjQgMjcuMy00LjQgNDAuNSAwTDQxNiAyMTguN2wwLTkwLjctMjU2IDAgMCA5MC43ek0zMDYuNSA0MjEuOUMzMjkgNDM3LjQgMzU2LjUgNDQ4IDM4NCA0NDhjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFjMCAwIDAgMCAwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA1MDEuNyA0MTcgNTEyIDM4NCA1MTJjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43YzAgMCAwIDAgMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzRG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtZG93bi10by1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGI4XCIsIFwiTTU0NCA0MTZMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyem0yMi42LTEzNy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQ4MCAyNzQuNyA0ODAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2em0tMzIwLTQ1LjNjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE2MCAyNzQuNyAxNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuN0w1NC42IDIzMy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYURvd25sb2FkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvd25sb2FkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDE5XCIsIFwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI0Mi43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAyNzQuNyAyODggMzJ6TTY0IDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMDEuNSAwLTQ1LjMgNDUuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBMMTY1LjUgMzUyIDY0IDM1MnptMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYUZhY2VHcmluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3JpbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxMiwgXCJncmluXCJdLCBcImY1ODBcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4OC4xIDMxMi44YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN0MzODIuNCAzOTAuNiAzMjQuMiA0MzIgMjU2LjMgNDMycy0xMjYuMi00MS40LTE1MS4xLTEwMC41Yy01LTExLjggNy0yMi41IDE5LjMtMTguN2MzOS43IDEyLjIgODQuNSAxOSAxMzEuOCAxOXM5Mi4xLTYuOCAxMzEuOC0xOXpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFHcmluID0gZmFGYWNlR3JpbjtcbmNvbnN0IGZhRGVsZXRlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkZWxldGUtbGVmdCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzkwMDMsIFwiYmFja3NwYWNlXCJdLCBcImY1NWFcIiwgXCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjcxIDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG5jb25zdCBmYUJhY2tzcGFjZSA9IGZhRGVsZXRlTGVmdDtcbmNvbnN0IGZhRXllRHJvcHBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleWUtZHJvcHBlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXllLWRyb3BwZXItZW1wdHlcIiwgXCJleWVkcm9wcGVyXCJdLCBcImYxZmJcIiwgXCJNMzQxLjYgMjkuMkwyNDAuMSAxMzAuOGwtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40TDQ4Mi44IDE3MC40YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40TDUuNCA0NjIuMmMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRMODkuNyA0ODBsNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRMMzA5LjQgMzM1LjlsLTQ1LjMtNDUuM0wxNDMuNCA0MTEuM2MtMyAzLTcuMSA0LjctMTEuMyA0LjdMOTYgNDE2bDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zTDIyMS40IDI0Ny45bC00NS4zLTQ1LjNMNTUuNCAzMjMuM3pcIl1cbn07XG5jb25zdCBmYUV5ZURyb3BwZXJFbXB0eSA9IGZhRXllRHJvcHBlcjtcbmNvbnN0IGZhRXllZHJvcHBlciA9IGZhRXllRHJvcHBlcjtcbmNvbnN0IGZhRmlsZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNWEwXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0MTYgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYUZvcndhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzkxOTNdLCBcImYwNGVcIiwgXCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2TDAgOTZDMCA4My42IDcuMiA3Mi4zIDE4LjQgNjdzMjQuNS0zLjYgMzQuMSA0LjRMMjI0IDIxNC4zbDAgNDEuNyAwIDQxLjdMNTIuNSA0NDAuNnpNMjU2IDM1MmwwLTk2IDAtMTI4IDAtMzJjMC0xMi40IDcuMi0yMy43IDE4LjQtMjlzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MGM3LjMgNi4xIDExLjUgMTUuMSAxMS41IDI0LjZzLTQuMiAxOC41LTExLjUgMjQuNmwtMTkyIDE2MGMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNHMtMTguNC0xNi42LTE4LjQtMjlsMC02NHpcIl1cbn07XG5jb25zdCBmYU1vYmlsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb2JpbGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgyNDEsIFwibW9iaWxlLWFuZHJvaWRcIiwgXCJtb2JpbGUtcGhvbmVcIl0sIFwiZjNjZVwiLCBcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTgwIDQzMmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhTW9iaWxlQW5kcm9pZCA9IGZhTW9iaWxlO1xuY29uc3QgZmFNb2JpbGVQaG9uZSA9IGZhTW9iaWxlO1xuY29uc3QgZmFGYWNlTWVoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbWVoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTI4LCBcIm1laFwiXSwgXCJmMTFhXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTYwIDMzNmwxOTIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFNZWggPSBmYUZhY2VNZWg7XG5jb25zdCBmYUFsaWduQ2VudGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLWNlbnRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzN1wiLCBcIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpcIl1cbn07XG5jb25zdCBmYUJvb2tTa3VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLXNrdWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJib29rLWRlYWRcIl0sIFwiZjZiN1wiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzIwIDExMmMwLTM1LjMtMzUuOC02NC04MC02NHMtODAgMjguNy04MCA2NGMwIDIwLjkgMTIuNiAzOS41IDMyIDUxLjJsMCAxMi44YzAgOC44IDcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyLjhjMTkuNC0xMS43IDMyLTMwLjMgMzItNTEuMnpNMjA4IDk2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTM0LjMgMjA5LjNjLTguMS0zLjUtMTcuNSAuMy0yMSA4LjRzLjMgMTcuNSA4LjQgMjFMMTk5LjQgMjcybC03Ny43IDMzLjNjLTguMSAzLjUtMTEuOSAxMi45LTguNCAyMXMxMi45IDExLjkgMjEgOC40TDI0MCAyODkuNGwxMDUuNyA0NS4zYzguMSAzLjUgMTcuNS0uMyAyMS04LjRzLS4zLTE3LjUtOC40LTIxTDI4MC42IDI3Mmw3Ny43LTMzLjNjOC4xLTMuNSAxMS45LTEyLjkgOC40LTIxcy0xMi45LTExLjktMjEtOC40TDI0MCAyNTQuNiAxMzQuMyAyMDkuM3pcIl1cbn07XG5jb25zdCBmYUJvb2tEZWFkID0gZmFCb29rU2t1bGw7XG5jb25zdCBmYUlkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZC1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDcsIFwiZHJpdmVycy1saWNlbnNlXCJdLCBcImYyYzJcIiwgXCJNMCA5Nmw1NzYgMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2em0wIDMyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4TDAgMTI4ek02NCA0MDUuM2MwLTI5LjUgMjMuOS01My4zIDUzLjMtNTMuM2wxMTcuMyAwYzI5LjUgMCA1My4zIDIzLjkgNTMuMyA1My4zYzAgNS45LTQuOCAxMC43LTEwLjcgMTAuN0w3NC43IDQxNmMtNS45IDAtMTAuNy00LjgtMTAuNy0xMC43ek0xNzYgMTkyYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0xNzYgMTZjMC04LjggNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFEcml2ZXJzTGljZW5zZSA9IGZhSWRDYXJkO1xuY29uc3QgZmFPdXRkZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ291dGRlbnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImRlZGVudFwiXSwgXCJmMDNiXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS4yIDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjIgMjY4LjZ6XCJdXG59O1xuY29uc3QgZmFEZWRlbnQgPSBmYU91dGRlbnQ7XG5jb25zdCBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGZlXCIsIFwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlsMi42LTIuNEMyNjcuMiA0MzguNiAyNTYgNDA0LjYgMjU2IDM2OGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NmMyOC4zIDAgNTUgNi43IDc4LjcgMTguNWMuOS02LjUgMS4zLTEzIDEuMy0xOS42bDAtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjFsMCA1LjhjMCA0MS41IDE3LjIgODEuMiA0Ny42IDEwOS41ek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG91c2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5NjgsIDYzNDk4LCA2MzUwMCwgXCJob21lXCIsIFwiaG9tZS1hbHRcIiwgXCJob21lLWxnLWFsdFwiXSwgXCJmMDE1XCIsIFwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xbC0zMiAwIC43IDE2MC4yYzAgMi43LS4yIDUuNC0uNSA4LjFsMCAxNi4yYzAgMjIuMS0xNy45IDQwLTQwIDQwbC0xNiAwYy0xLjEgMC0yLjIgMC0zLjMtLjFjLTEuNCAuMS0yLjggLjEtNC4yIC4xTDQxNiA1MTJsLTI0IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtMjQgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NCAwIDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNCAwLTMxLjkgMGMtMS41IDAtMy0uMS00LjUtLjJjLTEuMiAuMS0yLjQgLjItMy42IC4ybC0xNiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLS45IDAtMS45IC4xLTIuOGwwLTY5LjctMzIgMGMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTY0LjggMjMxLjVjOCA3IDEyIDE1IDExIDI0elwiXVxufTtcbmNvbnN0IGZhSG9tZSA9IGZhSG91c2U7XG5jb25zdCBmYUhvbWVBbHQgPSBmYUhvdXNlO1xuY29uc3QgZmFIb21lTGdBbHQgPSBmYUhvdXNlO1xuY29uc3QgZmFDYWxlbmRhcldlZWsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItd2VlaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4NFwiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwyODggMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZMODAgMjU2elwiXVxufTtcbmNvbnN0IGZhTGFwdG9wTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXB0b3AtbWVkaWNhbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjgxMlwiLCBcIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1Ni02NCAwIDAtMjU2TDEyOCA5NmwwIDI1Ni02NCAwTDY0IDk2ek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJjMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbOThdLCBcIjQyXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAyNTYgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuN2MxOC43LTIyLjMgMzAtNTEgMzAtODIuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEw2NCAzMnptOTYgMTkybC05NiAwTDY0IDk2bDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGw5NiAwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRMNjQgNDE2bDAtMTI4elwiXVxufTtcbmNvbnN0IGZhRmlsZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1tZWRpY2FsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDc3XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwyMjQgMCA2NCAwek0yNTYgMGwwIDEyOCAxMjggMEwyNTYgMHpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OHpcIl1cbn07XG5jb25zdCBmYURpY2VPbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1vbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU2XSwgXCJmNTI1XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhS2l3aUJpcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2l3aS1iaXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTM1XCIsIFwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMXMxMS4yLTguMyAxMS4yLTE1LjNsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMGMtMzYuNCAwLTY5LjktMTcuNi0xMDEuMS0zNi40QzI2Mi4zIDQyLjEgMjI4LjMgMzIgMTkyIDMyQzg2IDMyIDAgMTE4IDAgMjI0YzAgNzEuMSAzOC42IDEzMy4xIDk2IDE2Ni4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDZjNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQXJyb3dSaWdodEFycm93TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC1hcnJvdy1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODY0NCwgXCJleGNoYW5nZVwiXSwgXCJmMGVjXCIsIFwiTTQzOC42IDE1MC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjcgOTYgMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMzA2LjcgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOTYtOTZ6bS0zMzMuMyAzNTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyA0MTYgNDE2IDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzA2LjcgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NnpcIl1cbn07XG5jb25zdCBmYUV4Y2hhbmdlID0gZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0O1xuY29uc3QgZmFSb3RhdGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb3RhdGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInJlZG8tYWx0XCIsIFwicm90YXRlLWZvcndhcmRcIl0sIFwiZjJmOVwiLCBcIk00NjMuNSAyMjRsOC41IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMjhjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMkw0MTMuNCA5Ni42Yy04Ny42LTg2LjUtMjI4LjctODYuMi0zMTUuOCAxYy04Ny41IDg3LjUtODcuNSAyMjkuMyAwIDMxNi44czIyOS4zIDg3LjUgMzE2LjggMGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtNjIuNSA2Mi41LTE2My44IDYyLjUtMjI2LjMgMHMtNjIuNS0xNjMuOCAwLTIyNi4zYzYyLjItNjIuMiAxNjIuNy02Mi41IDIyNS4zLTFMMzI3IDE4M2MtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44bDExOS41IDB6XCJdXG59O1xuY29uc3QgZmFSZWRvQWx0ID0gZmFSb3RhdGVSaWdodDtcbmNvbnN0IGZhUm90YXRlRm9yd2FyZCA9IGZhUm90YXRlUmlnaHQ7XG5jb25zdCBmYVV0ZW5zaWxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3V0ZW5zaWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3ODYwLCA2MTY4NSwgXCJjdXRsZXJ5XCJdLCBcImYyZTdcIiwgXCJNNDE2IDBDNDAwIDAgMjg4IDMyIDI4OCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDAtMTEyIDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NCAxNkM2NCA3LjggNTcuOSAxIDQ5LjcgLjFTMzQuMiA0LjYgMzIuNCAxMi41TDIuMSAxNDguOEMuNyAxNTUuMSAwIDE2MS41IDAgMTY3LjljMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDgwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43YzAtNi40LS43LTEyLjgtMi4xLTE5LjFMMTkxLjYgMTIuNWMtMS44LTgtOS4zLTEzLjMtMTcuNC0xMi40UzE2MCA3LjggMTYwIDE2bDAgMTM0LjJjMCA1LjQtNC40IDkuOC05LjggOS44Yy01LjEgMC05LjMtMy45LTkuOC05TDEyNy45IDE0LjZDMTI3LjIgNi4zIDEyMC4zIDAgMTEyIDBzLTE1LjIgNi4zLTE1LjkgMTQuNkw4My43IDE1MWMtLjUgNS4xLTQuNyA5LTkuOCA5Yy01LjQgMC05LjgtNC40LTkuOC05LjhMNjQgMTZ6bTQ4LjMgMTUybC0uMyAwLS4zIDAgLjMtLjcgLjMgLjd6XCJdXG59O1xuY29uc3QgZmFDdXRsZXJ5ID0gZmFVdGVuc2lscztcbmNvbnN0IGZhQXJyb3dVcFdpZGVTaG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC13aWRlLXNob3J0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFtb3VudC11cFwiXSwgXCJmMTYxXCIsIFwiTTE1MS42IDQyLjRDMTQ1LjUgMzUuOCAxMzcgMzIgMTI4IDMycy0xNy41IDMuOC0yMy42IDEwLjRsLTg4IDk2Yy0xMS45IDEzLTExLjEgMzMuMyAyIDQ1LjJzMzMuMyAxMS4xIDQ1LjItMkw5NiAxNDYuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwMS43IDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFTb3J0QW1vdW50VXAgPSBmYUFycm93VXBXaWRlU2hvcnQ7XG5jb25zdCBmYU1pbGxTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pbGwtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFlZFwiLCBcIk0zMDIuMSA0Mi44YzUuOS0xNi42LTIuNy0zNS0xOS40LTQwLjlzLTM1IDIuNy00MC45IDE5LjRMMjA4IDExNi4xYy01LjcgNC0xMS4xIDguNS0xNiAxMy41QzE3MS43IDEwOC45IDE0My4zIDk2IDExMiA5NmMtMTkuNSAwLTM3LjggNS01My43IDEzLjdDNTIuNSAxMDEuNCA0Mi45IDk2IDMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOGwwIDgwTDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDQyLjVMODEuOSA0NjkuMmMtNS45IDE2LjYgMi43IDM1IDE5LjQgNDAuOXMzNS0yLjcgNDAuOS0xOS40bDIxLjQtNjBDMTY4LjkgNDQxIDE3OS42IDQ0OCAxOTIgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTU0LjUgMzUuNy0xMDBjMy45LTEgOC4xLTEuNiAxMi4zLTEuNmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4YzAtNTguMi00NC4zLTEwNi0xMDEuMS0xMTEuNWwxOS4yLTUzLjh6XCJdXG59O1xuY29uc3QgZmFCb3dsUmljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3dsLXJpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyZWJcIiwgXCJNMTc2IDU2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNzZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjRjMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDMybDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xuY29uc3QgZmFTa3VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdza3VsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODEyOF0sIFwiZjU0Y1wiLCBcIk00MTYgMzk4LjljNTguNS00MS4xIDk2LTEwNC4xIDk2LTE3NC45QzUxMiAxMDAuMyAzOTcuNCAwIDI1NiAwUzAgMTAwLjMgMCAyMjRjMCA3MC43IDM3LjUgMTMzLjggOTYgMTc0LjljMCAuNCAwIC43IDAgMS4xbDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCA2NCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLS40IDAtLjcgMC0xLjF6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA5NiAyNTZ6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYVRvd2VyQnJvYWRjYXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvd2VyLWJyb2FkY2FzdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYnJvYWRjYXN0LXRvd2VyXCJdLCBcImY1MTlcIiwgXCJNODAuMyA0NEM2OS44IDY5LjkgNjQgOTguMiA2NCAxMjhzNS44IDU4LjEgMTYuMyA4NGM2LjYgMTYuNC0xLjMgMzUtMTcuNyA0MS43cy0zNS0xLjMtNDEuNy0xNy43QzcuNCAyMDIuNiAwIDE2Ni4xIDAgMTI4UzcuNCA1My40IDIwLjkgMjBDMjcuNiAzLjYgNDYuMi00LjMgNjIuNiAyLjNTODYuOSAyNy42IDgwLjMgNDR6TTU1NS4xIDIwQzU2OC42IDUzLjQgNTc2IDg5LjkgNTc2IDEyOHMtNy40IDc0LjYtMjAuOSAxMDhjLTYuNiAxNi40LTI1LjMgMjQuMy00MS43IDE3LjdTNDg5LjEgMjI4LjQgNDk1LjcgMjEyYzEwLjUtMjUuOSAxNi4zLTU0LjIgMTYuMy04NHMtNS44LTU4LjEtMTYuMy04NEM0ODkuMSAyNy42IDQ5NyA5IDUxMy40IDIuM3MzNSAxLjMgNDEuNyAxNy43ek0zNTIgMTI4YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEwzMjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2LjZjLTE5LjEtMTEuMS0zMi0zMS43LTMyLTU1LjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHpNMTcwLjYgNzYuOEMxNjMuOCA5Mi40IDE2MCAxMDkuNyAxNjAgMTI4czMuOCAzNS42IDEwLjYgNTEuMmM3LjEgMTYuMi0uMyAzNS4xLTE2LjUgNDIuMXMtMzUuMS0uMy00Mi4xLTE2LjVjLTEwLjMtMjMuNi0xNi00OS42LTE2LTc2LjhzNS43LTUzLjIgMTYtNzYuOGM3LjEtMTYuMiAyNS45LTIzLjYgNDIuMS0xNi41czIzLjYgMjUuOSAxNi41IDQyLjF6TTQ2NCA1MS4yYzEwLjMgMjMuNiAxNiA0OS42IDE2IDc2LjhzLTUuNyA1My4yLTE2IDc2LjhjLTcuMSAxNi4yLTI1LjkgMjMuNi00Mi4xIDE2LjVzLTIzLjYtMjUuOS0xNi41LTQyLjFjNi44LTE1LjYgMTAuNi0zMi45IDEwLjYtNTEuMnMtMy44LTM1LjYtMTAuNi01MS4yYy03LjEtMTYuMiAuMy0zNS4xIDE2LjUtNDIuMXMzNS4xIC4zIDQyLjEgMTYuNXpcIl1cbn07XG5jb25zdCBmYUJyb2FkY2FzdFRvd2VyID0gZmFUb3dlckJyb2FkY2FzdDtcbmNvbnN0IGZhVHJ1Y2tQaWNrdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stcGlja3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzYzXSwgXCJmNjNjXCIsIFwiTTM2OC42IDk2bDc2LjggOTZMMjg4IDE5MmwwLTk2IDgwLjYgMHpNMjI0IDgwbDAgMTEyTDY0IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMy4xIDBjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNmw2Ni4zIDBjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNmwzMy4xIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDguNiAwTDQxOC42IDU2Yy0xMi4xLTE1LjItMzAuNS0yNC01MC0yNEwyNzIgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4em0wIDI4OGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0yODggMGE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwelwiXVxufTtcbmNvbnN0IGZhVXBMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWxvbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImxvbmctYXJyb3ctYWx0LXVwXCJdLCBcImYzMGNcIiwgXCJNMzE4IDE3Ny41YzMuOC04LjggMi0xOS00LjYtMjZsLTEzNi0xNDRDMTcyLjkgMi43IDE2Ni42IDAgMTYwIDBzLTEyLjkgMi43LTE3LjQgNy41bC0xMzYgMTQ0Yy02LjYgNy04LjQgMTcuMi00LjYgMjZTMTQuNCAxOTIgMjQgMTkybDcyIDAgMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OCA3MiAwYzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJdXG59O1xuY29uc3QgZmFMb25nQXJyb3dBbHRVcCA9IGZhVXBMb25nO1xuY29uc3QgZmFTdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3AnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5MjA5XSwgXCJmMDRkXCIsIFwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHpcIl1cbn07XG5jb25zdCBmYUNvZGVNZXJnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLW1lcmdlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzg3XCIsIFwiTTgwIDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMzIuNCA5Ny4yYzI4LTEyLjQgNDcuNi00MC41IDQ3LjYtNzMuMmMwLTQ0LjItMzUuOC04MC04MC04MFMwIDM1LjggMCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNDMTkuNyAzNzEgMCAzOTkuMiAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC04Ni42YzI2LjcgMjAuMSA2MCAzMiA5NiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGMtMzIuOCAwLTYxIDE5LjctNzMuMyA0OEwyMDggMjQwYy00OS45IDAtOTEtMzguMS05NS42LTg2Ljh6TTgwIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTM0NCAyNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG5jb25zdCBmYVVwbG9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cGxvYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwOTNcIiwgXCJNMjg4IDEwOS4zTDI4OCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNDIuNy03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyODggMTA5LjN6TTY0IDM1MmwxMjggMGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0ek00MzIgNDU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG5jb25zdCBmYUh1cnJpY2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdodXJyaWNhbmUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3NTFcIiwgXCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42QzE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41QzMwNyAxMTIuNSAzODQgMTk5IDM4NCAzMDMuNGMwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjRjLTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM2MwLTguNC02LjUtMTUuMy0xNC43LTE2LjVDNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4QTk2IDk2IDAgMSAwIDk2IDI1NmE5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYU1vdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW5kJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTJkXCIsIFwiTTE0NC4xIDE3OS4yQzE3My44IDEyNy43IDIyOC42IDk2IDI4OCA5NnMxMTQuMiAzMS43IDE0My45IDgzLjJMNTQwLjQgMzY4YzEyLjMgMjEuMy0zLjEgNDgtMjcuNyA0OEg2My4zYy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDE0NC4xIDE3OS4yelwiXVxufTtcbmNvbnN0IGZhVG9pbGV0UG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0LXBvcnRhYmxlJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTgzXCIsIFwiTTAgMzJMMCA2NGwzMjAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyek0yNCA5NkwwIDk2bDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMjI0IDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zNjggMC0yNC0yNCAwTDI0IDk2ek0yNTYgMjQwbDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbmNvbnN0IGZhQ29tcGFjdERpc2MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFjdC1kaXNjJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTkxLCAxMjgxOTIsIDEyODQ0MF0sIFwiZjUxZlwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6TTk2IDI0MGMwLTM1IDE3LjUtNzEuMSA0NS4yLTk4LjhTMjA1IDk2IDI0MCA5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDUuNCAwLTg5LjIgMjIuMy0xMjEuNSA1NC41UzY0IDE5NC42IDY0IDI0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2elwiXVxufTtcbmNvbnN0IGZhRmlsZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWFycm93LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtZG93bmxvYWRcIl0sIFwiZjU2ZFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTIxNiAyMzJsMCAxMDIuMSAzMS0zMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNzItNzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMSAzMUwxNjggMjMyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xuY29uc3QgZmFGaWxlRG93bmxvYWQgPSBmYUZpbGVBcnJvd0Rvd247XG5jb25zdCBmYUNhcmF2YW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyYXZhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjhmZlwiLCBcIk0wIDExMkMwIDY3LjggMzUuOCAzMiA4MCAzMmwzMzYgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDE2MCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwLTI4OCAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDExMnpNMzIwIDM1MmwxMjggMCAwLTk2LTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MnpNOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4em05NiAzMzZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwiXVxufTtcbmNvbnN0IGZhU2hpZWxkQ2F0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1jYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NzJcIiwgXCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIl1cbn07XG5jb25zdCBmYUJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4ODksIFwiemFwXCJdLCBcImYwZTdcIiwgXCJNMzQ5LjQgNDQuNmM1LjktMTMuNyAxLjUtMjkuNy0xMC42LTM4LjVzLTI4LjYtOC0zOS45IDEuOGwtMjU2IDIyNGMtMTAgOC44LTEzLjYgMjIuOS04LjkgMzUuM1M1MC43IDI4OCA2NCAyODhsMTExLjUgMEw5OC42IDQ2Ny40Yy01LjkgMTMuNy0xLjUgMjkuNyAxMC42IDM4LjVzMjguNiA4IDM5LjktMS44bDI1Ni0yMjRjMTAtOC44IDEzLjYtMjIuOSA4LjktMzUuM3MtMTYuNi0yMC43LTMwLTIwLjdsLTExMS41IDBMMzQ5LjQgNDQuNnpcIl1cbn07XG5jb25zdCBmYVphcCA9IGZhQm9sdDtcbmNvbnN0IGZhR2xhc3NXYXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy13YXRlcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRmNFwiLCBcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNUw2Ni40IDY0bDI1MS4zIDBMMzExIDE1Ni41bC0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMGMtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDBjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMEw3MyAxNTYuNXpcIl1cbn07XG5jb25zdCBmYU9pbFdlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2lsLXdlbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzJcIiwgXCJNNTI4LjMgNjEuM2MtMTEuNC00Mi43LTU1LjMtNjgtOTgtNTYuNkw0MTQuOSA4LjhDMzk3LjggMTMuNCAzODcuNyAzMSAzOTIuMyA0OGwyNC41IDkxLjRMMzA4LjUgMTY3LjVsLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzlMOTYgMjIyLjYgOTYgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjY0LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzNy4zIDBMMzQwIDI1Ny41bC02Mi4yIDE2LjFMMzA1LjMgMzUybC02Ni42IDBMMjY1IDI3N2wtNzQuNiAxOS4zTDEzNy4zIDQ0OCA5NiA0NDhsMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxMS4yLTMyIDExMS40IDAgMTEuMiAzMi0xMzMuOCAwelwiXVxufTtcbmNvbnN0IGZhVmF1bHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmF1bHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUyYzVcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAxNiAzMiA2NCAwIDE2LTMyIDIyNCAwIDE2IDMyIDY0IDAgMTYtMzIgMTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgMzIwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTI0MGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6TTQ4MCAyMjEuM0w0ODAgMzM2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTE0LjdjLTE4LjYtNi42LTMyLTI0LjQtMzItNDUuM2MwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM3pcIl1cbn07XG5jb25zdCBmYU1hcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycycsXG4gIGljb246IFs0NDgsIDUxMiwgWzk3OTRdLCBcImYyMjJcIiwgXCJNMjg5LjggNDYuOGMzLjctOSAxMi41LTE0LjggMjIuMi0xNC44bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEwzMjEgMjA0LjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0czc4LjgtMTc2IDE3Ni0xNzZjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw1Mi42LTUyLjZMMjk1IDczYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yek00MDAgODBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDB6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0elwiXVxufTtcbmNvbnN0IGZhVG9pbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODcwMV0sIFwiZjdkOFwiLCBcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNEMxMC45IDIxNC41IDAgMjMyLjkgMCAyNTZjMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNWMxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zbDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjhjMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjVjMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjZjLTEuOC0xLjUtMy43LTMtNS42LTQuNEw0MTYgNDhsOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDB6TTM4NCAyNTYuM2MwIDEtLjMgMi42LTMuOCA1LjZjLTQuOCA0LjEtMTQgOS0yOS4zIDEzLjRDMzIwLjUgMjg0IDI3Ni4xIDI4OCAyMjQgMjg4cy05Ni41LTQtMTI2LjktMTIuOGMtMTUuMy00LjQtMjQuNS05LjMtMjkuMy0xMy40Yy0zLjUtMy0zLjgtNC42LTMuOC01LjZsMC0uM2MwIDAgMC0uMSAwLS4xYzAtMSAwLTIuNSAzLjgtNS44YzQuOC00LjEgMTQtOSAyOS4zLTEzLjRDMTI3LjUgMjI4IDE3MS45IDIyNCAyMjQgMjI0czk2LjUgNCAxMjYuOSAxMi44YzE1LjMgNC40IDI0LjUgOS4zIDI5LjMgMTMuNGMzLjggMy4yIDMuOCA0LjggMy44IDUuOGMwIDAgMCAuMSAwIC4xbDAgLjN6TTMyOC4yIDM4NGwtLjIgLjUgMC0uNSAuMiAwek0xMTIgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBsYW5lQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTU3XCIsIFwiTTI1NiAwYy0zNSAwLTY0IDU5LjUtNjQgOTMuN2wwIDg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45bDAgNjUuNWMwIDEwLjYgMTAuMiAxOC4zIDIwLjQgMTUuNGwxNzEuNi00OSAwIDcwLjktNTcuNiA0My4yYy00IDMtNi40IDcuOC02LjQgMTIuOGwwIDQyYzAgNy44IDYuMyAxNCAxNCAxNGMxLjMgMCAyLjYtLjIgMy45LS41TDI1NiA0ODBsMTEwLjEgMzEuNWMxLjMgLjQgMi42IC41IDMuOSAuNWM2IDAgMTEuMS0zLjcgMTMuMS05QzM0NC41IDQ3MC43IDMyMCA0MjIuMiAzMjAgMzY4YzAtNjAuNiAzMC42LTExNCA3Ny4xLTE0NS42TDMyMCAxNzguM2wwLTg0LjZDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhWWVuU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5ZW4tc2lnbicsXG4gIGljb246IFszMjAsIDUxMiwgWzE2NSwgXCJjbnlcIiwgXCJqcHlcIiwgXCJybWJcIiwgXCJ5ZW5cIl0sIFwiZjE1N1wiLCBcIk01OC42IDQ2LjNDNDguOCAzMS41IDI5IDI3LjYgMTQuMiAzNy40Uy00LjQgNjcgNS40IDgxLjhMMTAwLjIgMjI0IDQ4IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwIDAgMzItODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4MCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC0zMiA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi4yIDBMMzE0LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMTYwIDE5OC4zIDU4LjYgNDYuM3pcIl1cbn07XG5jb25zdCBmYUNueSA9IGZhWWVuU2lnbjtcbmNvbnN0IGZhSnB5ID0gZmFZZW5TaWduO1xuY29uc3QgZmFSbWIgPSBmYVllblNpZ247XG5jb25zdCBmYVllbiA9IGZhWWVuU2lnbjtcbmNvbnN0IGZhUnVibGVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1YmxlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4MzgxLCBcInJvdWJsZVwiLCBcInJ1YlwiLCBcInJ1YmxlXCJdLCBcImYxNThcIiwgXCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0bDAgMTkyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0zMiAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NEw5NiAzMnpNMjQwIDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6XCJdXG59O1xuY29uc3QgZmFSb3VibGUgPSBmYVJ1YmxlU2lnbjtcbmNvbnN0IGZhUnViID0gZmFSdWJsZVNpZ247XG5jb25zdCBmYVJ1YmxlID0gZmFSdWJsZVNpZ247XG5jb25zdCBmYVN1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzI4XSwgXCJmMTg1XCIsIFwiTTM2MS41IDEuMmM1IDIuMSA4LjYgNi42IDkuNiAxMS45TDM5MSAxMjFsMTA3LjkgMTkuOGM1LjMgMSA5LjggNC42IDExLjkgOS42czEuNSAxMC43LTEuNiAxNS4yTDQ0Ni45IDI1Nmw2Mi4zIDkwLjNjMy4xIDQuNSAzLjcgMTAuMiAxLjYgMTUuMnMtNi42IDguNi0xMS45IDkuNkwzOTEgMzkxIDM3MS4xIDQ5OC45Yy0xIDUuMy00LjYgOS44LTkuNiAxMS45cy0xMC43IDEuNS0xNS4yLTEuNkwyNTYgNDQ2LjlsLTkwLjMgNjIuM2MtNC41IDMuMS0xMC4yIDMuNy0xNS4yIDEuNnMtOC42LTYuNi05LjYtMTEuOUwxMjEgMzkxIDEzLjEgMzcxLjFjLTUuMy0xLTkuOC00LjYtMTEuOS05LjZzLTEuNS0xMC43IDEuNi0xNS4yTDY1LjEgMjU2IDIuOCAxNjUuN2MtMy4xLTQuNS0zLjctMTAuMi0xLjYtMTUuMnM2LjYtOC42IDExLjktOS42TDEyMSAxMjEgMTQwLjkgMTMuMWMxLTUuMyA0LjYtOS44IDkuNi0xMS45czEwLjctMS41IDE1LjIgMS42TDI1NiA2NS4xIDM0Ni4zIDIuOGM0LjUtMy4xIDEwLjItMy43IDE1LjItMS42ek0xNjAgMjU2YTk2IDk2IDAgMSAxIDE5MiAwIDk2IDk2IDAgMSAxIC0xOTIgMHptMjI0IDBhMTI4IDEyOCAwIDEgMCAtMjU2IDAgMTI4IDEyOCAwIDEgMCAyNTYgMHpcIl1cbn07XG5jb25zdCBmYUd1aXRhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndWl0YXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YTZcIiwgXCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjZjLTExIDExLTE4IDI0LjYtMjEuNCAzOS42Yy0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42Yy0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42Qy0xNiAzMjguNC03LjYgNDA5LjQgNDcuNSA0NjQuNXMxMzYuMSA2My41IDE4MC45IDE4LjdjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjNjLjktMTcgMTUtMzIuMyAzMS42LTM2LjFjMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjRjMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFGYWNlTGF1Z2hXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2gtd2lua1wiXSwgXCJmNTljXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek05Ni44IDMxNC4xYy0zLjgtMTMuNyA3LjQtMjYuMSAyMS42LTI2LjFsMjc1LjIgMGMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45ek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTU2LjQgMjUuNmMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yYy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMHpcIl1cbn07XG5jb25zdCBmYUxhdWdoV2luayA9IGZhRmFjZUxhdWdoV2luaztcbmNvbnN0IGZhSG9yc2VIZWFkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvcnNlLWhlYWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3YWJcIiwgXCJNNjQgNDY0bDAtMTQ3LjFjMC0xMDguNCA2OC4zLTIwNS4xIDE3MC41LTI0MS4zTDQwNC4yIDE1LjVDNDI1LjYgNy45IDQ0OCAyMy44IDQ0OCA0Ni40YzAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDQwMCA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41Yy0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRjMCAwIDAgMC0uMSAwYzAgMCAwIDAgMCAwYy02LjMgMC0xMi41LS41LTE4LjYtMS41Yy0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2MwIDAgMCAwIDAgMGMtMjguOS03LjgtNTMuMS0yNi44LTY3LjgtNTIuMmMtNC40LTcuNi0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjRjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMTEyIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTM5MiAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbmNvbnN0IGZhQm9yZUhvbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZS1ob2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGMzXCIsIFwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI2NC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0yMy43LTEyLjktNDQuNC0zMi01NS40TDI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDggMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTgwIDB6XCJdXG59O1xuY29uc3QgZmFJbmR1c3RyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbmR1c3RyeScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI3NVwiLCBcIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRsMCAyNDAgMCA0OCAwIDgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4IDAtMTUxLjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFMMzUyIDIxNS40bDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxNjAgMjE1LjQgMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNDY2LCBcImFycm93LWFsdC1jaXJjbGUtZG93blwiXSwgXCJmMzU4XCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMjQ0LjcgMzk1LjNsLTExMi0xMTJjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTExMiAxMTJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dBbHRDaXJjbGVEb3duID0gZmFDaXJjbGVEb3duO1xuY29uc3QgZmFBcnJvd3NUdXJuVG9Eb3RzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10dXJuLXRvLWRvdHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YzFcIiwgXCJNMjQ5LjQgMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI2OS4zIDk2IDQxNiA5NmM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTQ2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptMTMuMyAyNTZsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyA0MTYgOTYgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NmwxNDYuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMHpNMzg0IDM4NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTY0IDE5MkE2NCA2NCAwIDEgMSA2NCA2NGE2NCA2NCAwIDEgMSAwIDEyOHpcIl1cbn07XG5jb25zdCBmYUZsb3JpblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxvcmluLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxODRcIiwgXCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMEw5OC45IDM5Ni4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd0Rvd25TaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1zaG9ydC13aWRlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFtb3VudC1kZXNjXCIsIFwic29ydC1hbW91bnQtZG93bi1hbHRcIl0sIFwiZjg4NFwiLCBcIk0xNTEuNiA0NjkuNkMxNDUuNSA0NzYuMiAxMzcgNDgwIDEyOCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDk2IDM2NS43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDEuNyAzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTb3J0QW1vdW50RGVzYyA9IGZhQXJyb3dEb3duU2hvcnRXaWRlO1xuY29uc3QgZmFTb3J0QW1vdW50RG93bkFsdCA9IGZhQXJyb3dEb3duU2hvcnRXaWRlO1xuY29uc3QgZmFMZXNzVGhhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZXNzLXRoYW4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs2Mjc3NF0sIFwiM2NcIiwgXCJNMzgwLjYgODEuN2M3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45TDEwMy42IDI1NiAzNjYuMyAzODcuNGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zbC0zMjAtMTYwQzYuOCAyNzkuMiAwIDI2OC4xIDAgMjU2czYuOC0yMy4yIDE3LjctMjguNmwzMjAtMTYwYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtZG93bicsXG4gIGljb246IFs0NDgsIDUxMiwgWzg5NjRdLCBcImYxMDdcIiwgXCJNMjAxLjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzA2LjcgODYuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHpcIl1cbn07XG5jb25zdCBmYUNhclR1bm5lbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItdHVubmVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGRlXCIsIFwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTJjMC0yMC44IDExLjMtMzguOSAyOC4xLTQ4LjZsMjEtNjQuN2M3LjUtMjMuMSAyOS0zOC43IDUzLjMtMzguN2wxMTUuMiAwYzI0LjMgMCA0NS44IDE1LjYgNTMuMyAzOC43bDIxIDY0LjdjMTYuOCA5LjcgMjguMiAyNy44IDI4LjIgNDguNmwwIDExMmMwIDkuNi00LjIgMTguMS0xMC44IDI0bDQyLjggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMHpNMzYyLjggNTEyYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtNDAtMTkyIDAgMCA0MGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDIxMy43IDB6TTE5MC44IDI3Ny41TDE3NyAzMjBsMTU4IDAtMTMuOC00Mi41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNWwtMTE1LjIgMGMtMy41IDAtNi41IDIuMi03LjYgNS41ek0xNjggNDA4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjAwLTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xuY29uc3QgZmFIZWFkU2lkZUNvdWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWQtc2lkZS1jb3VnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA2MVwiLCBcIk0wIDIyNC4yQzAgMTAwLjYgMTAwLjIgMCAyMjQgMGwyNCAwYzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNi4yIDcuOCA5LjYgMTcuNCA5LjYgMjcuNGMwIDI0LjItMTkuNiA0My44LTQzLjggNDMuOEw0NDggMzIwczAgMCAwIDBsMCAzMkwzMzkuMiAzNjUuNmMtMTEgMS40LTE5LjIgMTAuNy0xOS4yIDIxLjhjMCAxMS42IDkgMjEuMiAyMC42IDIxLjlMNDQ4IDQxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04MCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDAgMHMwIDAgMCAwTDk2IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03Mi43YzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6bTM1Mi0uMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQ2NCAzODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTUyLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNNTkyIDQ4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek01NTIgMzEyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNTUyIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFHcmlwTGluZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JpcC1saW5lcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdhNFwiLCBcIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6XCJdXG59O1xuY29uc3QgZmFUaHVtYnNEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1icy1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MDc4LCA2MTU3Nl0sIFwiZjE2NVwiLCBcIk0zMTMuNCA0NzkuMWMyNi01LjIgNDIuOS0zMC41IDM3LjctNTYuNWwtMi4zLTExLjRjLTUuMy0yNi43LTE1LjEtNTIuMS0yOC44LTc1LjJsMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC0xOC41LTEwLjUtMzQuNi0yNS45LTQyLjZDNDk3IDIzNi42IDUwNCAyMjMuMSA1MDQgMjA4YzAtMjMuNC0xNi44LTQyLjktMzguOS00Ny4xYzQuNC03LjMgNi45LTE1LjggNi45LTI0LjljMC0yMS4zLTEzLjktMzkuNC0zMy4xLTQ1LjZjLjctMy4zIDEuMS02LjggMS4xLTEwLjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk3LjUgMGMtMTkgMC0zNy41IDUuNi01My4zIDE2LjFMMjAyLjcgNzMuOEMxNzYgOTEuNiAxNjAgMTIxLjYgMTYwIDE1My43bDAgMzguMyAwIDQ4IDAgMjQuOWMwIDI5LjIgMTMuMyA1Ni43IDM2IDc1bDcuNCA1LjljMjYuNSAyMS4yIDQ0LjYgNTEgNTEuMiA4NC4ybDIuMyAxMS40YzUuMiAyNiAzMC41IDQyLjkgNTYuNSAzNy43ek0zMiAzODRsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhMMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFVc2VyTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MDJcIiwgXCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS00NS43IDQ4Qzc5LjggMzA0IDAgMzgzLjggMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEybDM2Mi44IDBjLTUuNC05LjQtOC42LTIwLjMtOC42LTMybDAtMTI4YzAtMi4xIC4xLTQuMiAuMy02LjNjLTMxLTI2LTcxLTQxLjctMTE0LjYtNDEuN2wtOTEuNCAwek01MjggMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJsMCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0LWxvbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxvbmctYXJyb3ctcmlnaHRcIl0sIFwiZjE3OFwiLCBcIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNzAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4elwiXVxufTtcbmNvbnN0IGZhTG9uZ0Fycm93UmlnaHQgPSBmYUFycm93UmlnaHRMb25nO1xuY29uc3QgZmFBbmNob3JDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3ItY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFjXCIsIFwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBMMjI0IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjA4LTQ4IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03IDAgNi4xYzAgODguNCA3MS42IDE2MCAxNjAgMTYwbDgwIDAgODAgMGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJMMzIwIDQ0OGwwLTgwIDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNTE4LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFFbGxpcHNpcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGxpcHNpcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZWxsaXBzaXMtaFwiXSwgXCJmMTQxXCIsIFwiTTggMjU2YTU2IDU2IDAgMSAxIDExMiAwQTU2IDU2IDAgMSAxIDggMjU2em0xNjAgMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIxNi01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpcIl1cbn07XG5jb25zdCBmYUVsbGlwc2lzSCA9IGZhRWxsaXBzaXM7XG5jb25zdCBmYUNoZXNzUGF3biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1wYXduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbOTgyM10sIFwiZjQ0M1wiLCBcIk0yMTUuNSAyMjRjMjkuMi0xOC40IDQ4LjUtNTAuOSA0OC41LTg4YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0UzU2IDc4LjYgNTYgMTM2YzAgMzcuMSAxOS40IDY5LjYgNDguNSA4OEw5NiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyYzAgMTYuNSAxMi41IDMwIDI4LjUgMzEuOEw4MCA0MDBsMTYwIDBMMjI3LjUgMjg3LjhjMTYtMS44IDI4LjUtMTUuMyAyOC41LTMxLjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTguNSAwek0yMi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMTYgNTAxLjkgMjYuMSA1MTIgMzguNiA1MTJsMjQyLjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDI1NiA0MzIgNjQgNDMyIDIyLjYgNDczLjR6XCJdXG59O1xuY29uc3QgZmFLaXRNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tpdC1tZWRpY2FsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJmaXJzdC1haWRcIl0sIFwiZjQ3OVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDBMOTYgMzIgNjQgMzJ6bTY0IDBsMCA0NDggMzIwIDAgMC00NDhMMTI4IDMyek01MTIgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgNDQ4IDMyIDB6TTI1NiAxNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFGaXJzdEFpZCA9IGZhS2l0TWVkaWNhbDtcbmNvbnN0IGZhUGVyc29uVGhyb3VnaFdpbmRvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tdGhyb3VnaC13aW5kb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1YTlcIiwgXCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNEMxNjcuNiAxODYuNSAxMjggMjQ1IDEyOCAzMTAuMmwwIDczLjhzMCAwIDAgMGwtNjQgMEw2NCA2NHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNGM0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC00NS44IDAgNDIuNyA2NEw1OTIgNDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRMMzEwLjUgMzM2bDc0LjYgMCA0MCA0OHptLTE1OS41IDBMMTkyIDM4NHMwIDAgMCAwbDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJdXG59O1xuY29uc3QgZmFUb29sYm94ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb2xib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MjBdLCBcImY1NTJcIiwgXCJNMTc2IDg4bDAgNDAgMTYwIDAgMC00MGMwLTQuNC0zLjYtOC04LThMMTg0IDgwYy00LjQgMC04IDMuNi04IDh6bS00OCA0MGwwLTQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDE0NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDAgMjguMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFsNTEuOSA1MS45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45bDAgOTIuMS0xMjggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyTDAgMzIwbDAtOTIuMWMwLTEyLjcgNS4xLTI0LjkgMTQuMS0zMy45bDUxLjktNTEuOWM5LTkgMjEuMi0xNC4xIDMzLjktMTQuMWwyOC4xIDB6TTAgNDE2bDAtNjQgMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpcIl1cbn07XG5jb25zdCBmYUhhbmRzSG9sZGluZ0NpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1ob2xkaW5nLWNpcmNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRmYlwiLCBcIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2QTEyOCAxMjggMCAxIDEgMzIwIDB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDAgMCA4MCAwIDQwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xYzEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOGwtMTUuMi0xNS4yLTMyLTMyYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDMyIDMyIDE1LjIgMTUuMmMwIDAgMCAwIDAgMGwyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAyMjRsMC02NCAwLTU2QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDU2IDAgNjQgMCAxMDEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuM2MwIDAgMCAwIDAgMGwxNS4yLTE1LjIgMzItMzJjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMzIgMzItMTUuMiAxNS4yYy0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOGM5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wwLTQwLjIgMC04MCAwLTQwYzAtMjIuMSAxNy45LTQwIDQwLTQwelwiXVxufTtcbmNvbnN0IGZhQnVnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1ZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4OFwiLCBcIk0yNTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNmMwLTUzIDQzLTk2IDk2LTk2ek00MS40IDEwNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0Yy43IC43IDEuMyAxLjQgMS45IDIuMWMxNC4yLTcuMyAzMC40LTExLjQgNDcuNS0xMS40bDExMiAwYzE3LjEgMCAzMy4yIDQuMSA0Ny41IDExLjRjLjYtLjcgMS4yLTEuNCAxLjktMi4xbDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy0uNyAuNy0xLjQgMS4zLTIuMSAxLjljNi4yIDEyIDEwLjEgMjUuMyAxMS4xIDM5LjVsNjQuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYzAgMjQuNi01LjUgNDcuOC0xNS40IDY4LjZjMi4yIDEuMyA0LjIgMi45IDYgNC44bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC02My4xLTYzLjFjLTI0LjUgMjEuOC01NS44IDM2LjItOTAuMyAzOS42TDI3MiAyNDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyMzkuMmMtMzQuNS0zLjQtNjUuOC0xNy44LTkwLjMtMzkuNkw4Ni42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2NC02NGMxLjktMS45IDMuOS0zLjQgNi00LjhDMTAxLjUgMzY3LjggOTYgMzQ0LjYgOTYgMzIwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjMgMGMxLjEtMTQuMSA1LTI3LjUgMTEuMS0zOS41Yy0uNy0uNi0xLjQtMS4yLTIuMS0xLjlsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIl1cbn07XG5jb25zdCBmYUNyZWRpdENhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JlZGl0LWNhcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgxNzksIDYyMDgzLCBcImNyZWRpdC1jYXJkLWFsdFwiXSwgXCJmMDlkXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCAzMiA1NzYgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01NzYgMjI0TDAgMjI0IDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyek0xMTIgMzUybDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTExMiAxNmMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFDcmVkaXRDYXJkQWx0ID0gZmFDcmVkaXRDYXJkO1xuY29uc3QgZmFDYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NjY0LCBcImF1dG9tb2JpbGVcIl0sIFwiZjFiOVwiLCBcIk0xMzUuMiAxMTcuNEwxMDkuMSAxOTJsMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE0NCAwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4TDk2IDQwMGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4TDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMjg4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFBdXRvbW9iaWxlID0gZmFDYXI7XG5jb25zdCBmYUhhbmRIb2xkaW5nSGFuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGFuZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmN1wiLCBcIk03LjggMjA3LjdjLTEzLjEtMTcuOC05LjMtNDIuOCA4LjUtNTUuOUwxNDIuOSA1OC41QzE2Ni4yIDQxLjMgMTk0LjUgMzIgMjIzLjUgMzJMMzg0IDMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTM2LjggMC00NC45IDM2Yy0yMi43IDE4LjItNTAuOSAyOC04MCAyOEwzMDQgMjI0bC0xNiAwLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xMjAuNiAwTDYzLjcgMjE2LjJjLTE3LjggMTMuMS00Mi44IDkuMy01NS45LTguNXpNMzgyLjQgMTYwYzAgMCAwIDAgMCAwbC45IDBjLS4zIDAtLjYgMC0uOSAwek01NjguMiAzMDQuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDUzLjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDE5MiA0ODAgMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM2LjggMCA0NC45LTM2YzIyLjctMTguMiA1MC45LTI4IDgwLTI4bDc4LjMgMCAxNiAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDAtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjAuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41ek0xOTMuNiAzNTJjMCAwIDAgMCAwIDBsLS45IDBjLjMgMCAuNiAwIC45IDB6XCJdXG59O1xuY29uc3QgZmFCb29rT3BlblJlYWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLW9wZW4tcmVhZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJib29rLXJlYWRlclwiXSwgXCJmNWRhXCIsIFwiTTE2MCA5NmE5NiA5NiAwIDEgMSAxOTIgMEE5NiA5NiAwIDEgMSAxNjAgOTZ6bTgwIDE1MmwwIDI2NC00OC40LTI0LjJjLTIwLjktMTAuNC00My41LTE3LTY2LjgtMTkuM2wtOTYtOS42QzEyLjUgNDU3LjIgMCA0NDMuNSAwIDQyN0wwIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMC4zIDBjNjMuNiAwIDEyNS42IDE5LjYgMTc3LjcgNTZ6bTMyIDI2NGwwLTI2NGM1Mi4xLTM2LjQgMTE0LjEtNTYgMTc3LjctNTZsMzAuMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjAzYzAgMTYuNC0xMi41IDMwLjItMjguOCAzMS44bC05NiA5LjZjLTIzLjIgMi4zLTQ1LjkgOC45LTY2LjggMTkuM0wyNzIgNTEyelwiXVxufTtcbmNvbnN0IGZhQm9va1JlYWRlciA9IGZhQm9va09wZW5SZWFkZXI7XG5jb25zdCBmYU1vdW50YWluU3VuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdW50YWluLXN1bicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyZlwiLCBcIk01NjAgMTYwQTgwIDgwIDAgMSAwIDU2MCAwYTgwIDgwIDAgMSAwIDAgMTYwek01NS45IDUxMmwzMjUuMiAwIDc1IDAgMTIyLjggMGMzMy44IDAgNjEuMS0yNy40IDYxLjEtNjEuMWMwLTExLjItMy4xLTIyLjItOC45LTMxLjhsLTEzMi0yMTYuM0M0OTUgMTk2LjEgNDg3LjggMTkyIDQ4MCAxOTJzLTE1IDQuMS0xOS4xIDEwLjdsLTQ4LjIgNzlMMjg2LjggODFjLTYuNi0xMC42LTE4LjMtMTctMzAuOC0xN3MtMjQuMSA2LjQtMzAuOCAxN0w4LjYgNDI2LjRDMyA0MzUuMyAwIDQ0NS42IDAgNDU2LjFDMCA0ODcgMjUgNTEyIDU1LjkgNTEyelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YmFcIiwgXCJNMzIgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NHptMjE0LjYgNzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMDUuMyAyMjRsMjI5LjUgMC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MzQuNyAyODhsLTIyOS41IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6TTY0MCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhRGljZUQyMCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLWQyMCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZjZlwiLCBcIk00OC43IDEyNS44bDUzLjIgMzEuOWM3LjggNC43IDE3LjggMiAyMi4yLTUuOUwyMDEuNiAxMi4xYzMtNS40LS45LTEyLjEtNy4xLTEyLjFjLTEuNiAwLTMuMiAuNS00LjYgMS40TDQ3LjkgOTguOGMtOS42IDYuNi05LjIgMjAuOSAuOCAyNi45ek0xNiAxNzEuN2wwIDEyMy41YzAgOCAxMC40IDExIDE0LjcgNC40bDYwLTkyYzUtNy42IDIuNi0xNy44LTUuMi0yMi41TDQwLjIgMTU4QzI5LjYgMTUxLjYgMTYgMTU5LjMgMTYgMTcxLjd6TTMxMC40IDEyLjFsNzcuNiAxMzkuNmM0LjQgNy45IDE0LjUgMTAuNiAyMi4yIDUuOWw1My4yLTMxLjljMTAtNiAxMC40LTIwLjMgLjgtMjYuOUwzMjIuMSAxLjRjLTEuNC0uOS0zLTEuNC00LjYtMS40Yy02LjIgMC0xMC4xIDYuNy03LjEgMTIuMXpNNDk2IDE3MS43YzAtMTIuNC0xMy42LTIwLjEtMjQuMi0xMy43bC00NS4zIDI3LjJjLTcuOCA0LjctMTAuMSAxNC45LTUuMiAyMi41bDYwIDkyYzQuMyA2LjcgMTQuNyAzLjYgMTQuNy00LjRsMC0xMjMuNXptLTQ5LjMgMjQ2TDI4Ni4xIDQzNi42Yy04LjEgLjktMTQuMSA3LjgtMTQuMSAxNS45bDAgNTIuOGMwIDMuNyAzIDYuOCA2LjggNi44Yy44IDAgMS42LS4xIDIuNC0uNGwxNzIuNy02NGM2LjEtMi4yIDEwLjEtOCAxMC4xLTE0LjVjMC05LjMtOC4xLTE2LjUtMTcuMy0xNS40ek0yMzMuMiA1MTJjMy43IDAgNi44LTMgNi44LTYuOGwwLTUyLjZjMC04LjEtNi4xLTE0LjktMTQuMS0xNS45bC0xNjAuNi0xOWMtOS4yLTEuMS0xNy4zIDYuMS0xNy4zIDE1LjRjMCA2LjUgNCAxMi4zIDEwLjEgMTQuNWwxNzIuNyA2NGMuOCAuMyAxLjYgLjQgMi40IC40ek00MS43IDM4Mi45bDE3MC45IDIwLjJjNy44IC45IDEzLjQtNy41IDkuNS0xNC4zbC04NS43LTE1MGMtNS45LTEwLjQtMjAuNy0xMC44LTI3LjMtLjhMMzAuMiAzNTguMmMtNi41IDkuOS0uMyAyMy4zIDExLjUgMjQuN3ptNDM5LjYtMjQuOEw0MDIuOSAyMzguMWMtNi41LTEwLTIxLjQtOS42LTI3LjMgLjhMMjkwLjIgMzg4LjVjLTMuOSA2LjggMS42IDE1LjIgOS41IDE0LjNsMTcwLjEtMjBjMTEuOC0xLjQgMTgtMTQuNyAxMS41LTI0LjZ6bS0yMTYuOSAxMWw3OC40LTEzNy4yYzYuMS0xMC43LTEuNi0yMy45LTEzLjktMjMuOWwtMTQ1LjcgMGMtMTIuMyAwLTIwIDEzLjMtMTMuOSAyMy45bDc4LjQgMTM3LjJjMy43IDYuNCAxMyA2LjQgMTYuNyAwek0xNzQuNCAxNzZsMTYzLjIgMGMxMi4yIDAgMTkuOS0xMy4xIDE0LTIzLjhsLTgwLTE0NGMtMi44LTUuMS04LjItOC4yLTE0LTguMmwtMy4yIDBjLTUuOCAwLTExLjIgMy4yLTE0IDguMmwtODAgMTQ0Yy01LjkgMTAuNyAxLjggMjMuOCAxNCAyMy44elwiXVxufTtcbmNvbnN0IGZhVHJ1Y2tEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWRyb3BsZXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OGNcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzY4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTg5LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxOC43IDAgMzIgMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTI4IDBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6TTQxNiAyNTZsMTI4IDAgMC0xOC43TDQ2Ni43IDE2MCA0MTYgMTYwbDAgOTZ6TTE2MCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMjA4IDI3MmMzOS44IDAgNzItMjkuNiA3Mi02NmMwLTI3LTM5LjQtODIuOS01OS45LTExMC4zYy02LjEtOC4yLTE4LjEtOC4yLTI0LjIgMEMxNzUuNCAxMjMgMTM2IDE3OSAxMzYgMjA2YzAgMzYuNSAzMi4yIDY2IDcyIDY2elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNWExXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDMyIDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDA5LjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0MzIgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0NTQuNiAzNjhsMzYuNy0zNi43elwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWFycm93LXVwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS11cFwiXSwgXCJlMDQwXCIsIFwiTTEyOCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDE2NC41YzAgMTcuMyA3LjEgMzEuOSAxNS4zIDQyLjVDMjQ5LjggMzMyLjYgMjU2IDM0OS41IDI1NiAzNjhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0xOC41IDYuMi0zNS40IDE2LjctNDguOWM4LjItMTAuNiAxNS4zLTI1LjIgMTUuMy00Mi41TDEyOCAxMTJ6TTE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJsMCAxNjQuNGMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEM0My4yIDMwNC4yIDMyIDMzNC44IDMyIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzMuMi0xMS4yLTYzLjgtMzAuMS04OC4xYy0uOS0xLjItMS41LTIuMi0xLjctMi44Yy0uMS0uMy0uMi0uNS0uMi0uNkwyODggMTEyQzI4OCA1MC4xIDIzNy45IDAgMTc2IDB6bTAgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM0wxOTIgMTEyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjEwLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDgwIDE2MGwzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhsMzIgMCAwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4elwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVVcCA9IGZhVGVtcGVyYXR1cmVBcnJvd1VwO1xuY29uc3QgZmFNZWRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZWRhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk0MV0sIFwiZjVhMlwiLCBcIk00LjEgMzguMkMxLjQgMzQuMiAwIDI5LjQgMCAyNC42QzAgMTEgMTEgMCAyNC42IDBMMTMzLjkgMGMxMS4yIDAgMjEuNyA1LjkgMjcuNCAxNS41bDY4LjUgMTE0LjFjLTQ4LjIgNi4xLTkxLjMgMjguNi0xMjMuNCA2MS45TDQuMSAzOC4yem01MDMuNyAwTDQwNS42IDE5MS41Yy0zMi4xLTMzLjMtNzUuMi01NS44LTEyMy40LTYxLjlMMzUwLjcgMTUuNUMzNTYuNSA1LjkgMzY2LjkgMCAzNzguMSAwTDQ4Ny40IDBDNTAxIDAgNTEyIDExIDUxMiAyNC42YzAgNC44LTEuNCA5LjYtNC4xIDEzLjZ6TTgwIDMzNmExNzYgMTc2IDAgMSAxIDM1MiAwQTE3NiAxNzYgMCAxIDEgODAgMzM2em0xODQuNC05NC45Yy0zLjQtNy0xMy4zLTctMTYuOCAwbC0yMi40IDQ1LjRjLTEuNCAyLjgtNCA0LjctNyA1LjFMMTY4IDI5OC45Yy03LjcgMS4xLTEwLjcgMTAuNS01LjIgMTZsMzYuMyAzNS40YzIuMiAyLjIgMy4yIDUuMiAyLjcgOC4zbC04LjYgNDkuOWMtMS4zIDcuNiA2LjcgMTMuNSAxMy42IDkuOWw0NC44LTIzLjZjMi43LTEuNCA2LTEuNCA4LjcgMGw0NC44IDIzLjZjNi45IDMuNiAxNC45LTIuMiAxMy42LTkuOWwtOC42LTQ5LjljLS41LTMgLjUtNi4xIDIuNy04LjNsMzYuMy0zNS40YzUuNi01LjQgMi41LTE0LjgtNS4yLTE2bC01MC4xLTcuM2MtMy0uNC01LjctMi40LTctNS4xbC0yMi40LTQ1LjR6XCJdXG59O1xuY29uc3QgZmFCZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NzE2XSwgXCJmMjM2XCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2IDIyNCAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0yMjQgMC0zMiAwTDY0IDQxNmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTE0NCA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIl1cbn07XG5jb25zdCBmYVNxdWFyZUggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImgtc3F1YXJlXCJdLCBcImYwZmRcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzM2IDE1MmwwIDEwNCAwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgwLTEyOCAwIDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwIDEyOCAwIDAtODBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUhTcXVhcmUgPSBmYVNxdWFyZUg7XG5jb25zdCBmYVBvZGNhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9kY2FzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJjZVwiLCBcIk0zMTkuNCAzNzJjNDguNS0zMS4zIDgwLjYtODUuOSA4MC42LTE0OGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRjMCA2Mi4xIDMyLjEgMTE2LjYgODAuNiAxNDhjMS4yIDE3LjMgNCAzOCA3LjIgNTcuMWwuMiAxQzU2IDM5NS44IDAgMzE2LjUgMCAyMjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgOTIuNS01NiAxNzEuOS0xMzYgMjA2LjFsLjItMS4xYzMuMS0xOS4yIDYtMzkuOCA3LjItNTd6bS0yLjMtMzguMWMtMS42LTUuNy0zLjktMTEuMS03LTE2LjJjLTUuOC05LjctMTMuNS0xNy0yMS45LTIyLjRjMTkuNS0xNy42IDMxLjgtNDMgMzEuOC03MS4zYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjguMyAxMi4zIDUzLjggMzEuOCA3MS4zYy04LjQgNS40LTE2LjEgMTIuNy0yMS45IDIyLjRjLTMuMSA1LjEtNS40IDEwLjUtNyAxNi4yQzk5LjggMzA3LjUgODAgMjY4IDgwIDIyNGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NHMxNDQgNjQuNSAxNDQgMTQ0YzAgNDQtMTkuOCA4My41LTUwLjkgMTA5Ljl6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44YzAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45Yy01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOGMwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTQ0YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmVGdWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWZ1bGwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInRlbXBlcmF0dXJlLTRcIiwgXCJ0aGVybW9tZXRlci00XCIsIFwidGhlcm1vbWV0ZXItZnVsbFwiXSwgXCJmMmM3XCIsIFwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwyMDggMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42TDQ4IDExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNMMTQ0IDExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMjEwLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwiXVxufTtcbmNvbnN0IGZhVGVtcGVyYXR1cmU0ID0gZmFUZW1wZXJhdHVyZUZ1bGw7XG5jb25zdCBmYVRoZXJtb21ldGVyNCA9IGZhVGVtcGVyYXR1cmVGdWxsO1xuY29uc3QgZmFUaGVybW9tZXRlckZ1bGwgPSBmYVRlbXBlcmF0dXJlRnVsbDtcbmNvbnN0IGZhQmVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4Mjc2LCA2MTYwMl0sIFwiZjBmM1wiLCBcIk0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOS4yQzExOSA2NiA2NCAxMzAuNiA2NCAyMDhsMCAxOC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzE5LjQgNDE2IDMyIDQxNmwzODQgMGMxMi42IDAgMjQtNy40IDI5LjItMTguOXMzLjEtMjUtNS4zLTM0LjRsLTcuNC04LjNDNDAxLjMgMzE5LjIgMzg0IDI3My45IDM4NCAyMjYuOGwwLTE4LjhjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhMMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem00NS4zIDQ5My4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsLTY0IDAtNjQgMGMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM3MyOC4zIDE4LjcgNDUuMyAxOC43czMzLjMtNi43IDQ1LjMtMTguN3pcIl1cbn07XG5jb25zdCBmYVN1cGVyc2NyaXB0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1cGVyc2NyaXB0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTJiXCIsIFwiTTQ4MCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlDMzkzIDczLjUgNDA0LjMgODAgNDE2IDgwbDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4TDQ3LjMgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMTc2IDMxMS44bDg1LjggMTIyLjZjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDBMMjE1LjEgMjU2bDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwxNzYgMjAwLjIgOTAuMiA3Ny42Qzg0LjIgNjkuMSA3NC40IDY0IDY0IDY0TDMyIDY0elwiXVxufTtcbmNvbnN0IGZhUGx1Z0NpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTYwXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNDU0LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQzMiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQwOS40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDMyIDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xuY29uc3QgZmFTdGFyT2ZMaWZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXItb2YtbGlmZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjYyMVwiLCBcIk0yMDggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0MC45IDEyMi03MC40YzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2wxNiAyNy43YzguOCAxNS4zIDMuNiAzNC45LTExLjcgNDMuN0wzNTIgMjU2bDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdMMzA0IDMzOS4xIDMwNCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjlMODYgNDA5LjZjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43TDE2MCAyNTYgMzggMTg1LjZjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN0M1MS4xIDk4LjggNzAuNyA5My42IDg2IDEwMi40bDEyMiA3MC40TDIwOCAzMnpcIl1cbn07XG5jb25zdCBmYVBob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzZGRcIiwgXCJNMjI4LjkgMjQuNmMtNy43LTE4LjYtMjgtMjguNS00Ny40LTIzLjJsLTg4IDI0Qzc2LjEgMzAuMiA2NCA0NiA2NCA2NGMwIDEwNy40IDM3LjggMjA2IDEwMC44IDI4My4xTDkuMiA0NjkuMWMtMTAuNCA4LjItMTIuMyAyMy4zLTQuMSAzMy43czIzLjMgMTIuMyAzMy43IDQuMWw1OTItNDY0YzEwLjQtOC4yIDEyLjMtMjMuMyA0LjEtMzMuN3MtMjMuMy0xMi4zLTMzLjctNC4xTDI1MyAyNzhjLTE3LjgtMjEuNS0zMi45LTQ1LjItNDUtNzAuN0wyNTcuMyAxNjdjMTMuNy0xMS4yIDE4LjQtMzAgMTEuNi00Ni4zbC00MC05NnptOTYuOCAzMTlsLTkxLjMgNzJDMzEwLjcgNDc2IDQwNy4xIDUxMiA1MTIgNTEyYzE4IDAgMzMuOC0xMi4xIDM4LjYtMjkuNWwyNC04OGM1LjMtMTkuNC00LjYtMzkuNy0yMy4yLTQ3LjRsLTk2LTQwYy0xNi4zLTYuOC0zNS4yLTIuMS00Ni4zIDExLjZMMzY4LjcgMzY4Yy0xNS03LjEtMjkuMy0xNS4yLTQzLTI0LjN6XCJdXG59O1xuY29uc3QgZmFQYWludFJvbGxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludC1yb2xsZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YWFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCAxOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDAtOTAuNWMzNy4zIDEzLjIgNjQgNDguNyA2NCA5MC41bDAgMzJjMCA1My00MyA5Ni05NiA5NmwtMTQ0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOHpcIl1cbn07XG5jb25zdCBmYUhhbmRzaGFrZUFuZ2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzaGFrZS1hbmdsZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiaGFuZHMtaGVscGluZ1wiXSwgXCJmNGM0XCIsIFwiTTU0NCAyNDhsMCAzLjMgNjkuNy02OS43YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDUzNS42IDI0LjRjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDQxNi4zIDY0LjVjLTIuNy0uMy01LjUtLjUtOC4zLS41TDI5NiA2NGMtMzcuMSAwLTY3LjYgMjgtNzEuNiA2NGwtLjQgMCAwIDEyMGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNzJjMCAwIDAtLjEgMC0uMWwwLTE1LjkgMTYgMCAxMzYgMGMwIDAgMCAwIC4xIDBsNy45IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA4ek0zMzYgMTkybDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0xMTguNmMtMzUuOSA2LjItNjUuOCAzMi4zLTc2IDY4LjJMOTkuNSAyNTUuMiAyNi4zIDMyOC40Yy0yMS45IDIxLjktMjEuOSA1Ny4zIDAgNzkuMmw3OC4xIDc4LjFjMjEuOSAyMS45IDU3LjMgMjEuOSA3OS4yIDBsMzcuNy0zNy43Yy45IDAgMS44IC4xIDIuNyAuMWwxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGMwLTEyLjgtNS0yNC40LTEzLjItMzNjMjUuNy01IDQ1LjEtMjcuNiA0NS4yLTU0LjhsMC0uNGMtLjEtMzAuOC0yNS4xLTU1LjgtNTYtNTUuOGMwIDAgMCAwIDAgMGwtMTIwIDB6XCJdXG59O1xuY29uc3QgZmFIYW5kc0hlbHBpbmcgPSBmYUhhbmRzaGFrZUFuZ2xlO1xuY29uc3QgZmFMb2NhdGlvbkRvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1kb3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcIm1hcC1tYXJrZXItYWx0XCJdLCBcImYzYzVcIiwgXCJNMjE1LjcgNDk5LjJDMjY3IDQzNSAzODQgMjc5LjQgMzg0IDE5MkMzODQgODYgMjk4IDAgMTkyIDBTMCA4NiAwIDE5MmMwIDg3LjQgMTE3IDI0MyAxNjguMyAzMDcuMmMxMi4zIDE1LjMgMzUuMSAxNS4zIDQ3LjQgMHpNMTkyIDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG5jb25zdCBmYU1hcE1hcmtlckFsdCA9IGZhTG9jYXRpb25Eb3Q7XG5jb25zdCBmYUZpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODE5NiwgMTI4NDU5LCA2MTQ2Ml0sIFwiZjE1YlwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMjQgMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpcIl1cbn07XG5jb25zdCBmYUdyZWF0ZXJUaGFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbicsXG4gIGljb246IFszODQsIDUxMiwgWzYyNzY5XSwgXCIzZVwiLCBcIk0zLjQgODEuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOUwyODAuNSAyNTYgMTcuNyAzODcuNEMxLjkgMzk1LjMtNC41IDQxNC41IDMuNCA0MzAuM3MyNy4xIDIyLjIgNDIuOSAxNC4zbDMyMC0xNjBjMTAuOC01LjQgMTcuNy0xNi41IDE3LjctMjguNnMtNi44LTIzLjItMTcuNy0yOC42bC0zMjAtMTYwYy0xNS44LTcuOS0zNS0xLjUtNDIuOSAxNC4zelwiXVxufTtcbmNvbnN0IGZhUGVyc29uU3dpbW1pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXN3aW1taW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTQ2LCBcInN3aW1tZXJcIl0sIFwiZjVjNFwiLCBcIk0zMDkuNSAxNzguNEw0NDcuOSAyOTcuMWMtMS42IC45LTMuMiAyLTQuOCAzYy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjLTE5LjYgMC00MC44LTcuNy01OS4yLTIwLjNjLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNy4xIDExLjgtMzggMjAuMy01OS4yIDIwLjNjLTEwLjEgMC0yMS4xLTIuMi0zMS45LTYuMkMxNjMuMSAxOTMuMiAyNjIuMiA5NiAzODQgOTZsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMjYuOSAwLTUyLjMgNi42LTc0LjUgMTguNHpNMTYwIDE2MEE2NCA2NCAwIDEgMSAzMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDB6TTMwNi41IDMyNS45QzMyOSAzNDEuNCAzNTYuNSAzNTIgMzg0IDM1MmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWMwIDAgMCAwIDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQwNS43IDQxNyA0MTYgMzg0IDQxNmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgMzQxLjIgMTY1LjEgMzUyIDE5MiAzNTJjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJdXG59O1xuY29uc3QgZmFTd2ltbWVyID0gZmFQZXJzb25Td2ltbWluZztcbmNvbnN0IGZhQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4NTk1XSwgXCJmMDYzXCIsIFwiTTE2OS40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDM3MC44IDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwNi43TDU0LjYgMjY1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6XCJdXG59O1xuY29uc3QgZmFEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Ryb3BsZXQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxNjcsIFwidGludFwiXSwgXCJmMDQzXCIsIFwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwQzAgMjI4LjggMTMwLjIgNTcuNyAxNjYuNiAxMS43QzE3Mi42IDQuMiAxODEuNSAwIDE5MS4xIDBsMS44IDBjOS42IDAgMTguNSA0LjIgMjQuNSAxMS43QzI1My44IDU3LjcgMzg0IDIyOC44IDM4NCAzMjBjMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTk2IDMzNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNDQuMiAwLTgwLTM1LjgtODAtODB6XCJdXG59O1xuY29uc3QgZmFUaW50ID0gZmFEcm9wbGV0O1xuY29uc3QgZmFFcmFzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXJhc2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTJkXCIsIFwiTTI5MC43IDU3LjRMNTcuNCAyOTAuN2MtMjUgMjUtMjUgNjUuNSAwIDkwLjVsODAgODBjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0wyODggNDgwbDkuNCAwTDUxMiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyNC4xIDBMNTE4LjYgMjg1LjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVMMzgxLjMgNTcuNGMtMjUtMjUtNjUuNS0yNS05MC41IDB6TTI5Ny40IDQxNmwtOS40IDAtMTA1LjQgMC04MC04MEwyMjcuMyAyMTEuMyAzNjQuNyAzNDguNyAyOTcuNCA0MTZ6XCJdXG59O1xuY29uc3QgZmFFYXJ0aEFtZXJpY2FzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWFtZXJpY2FzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzU4LCBcImVhcnRoXCIsIFwiZWFydGgtYW1lcmljYVwiLCBcImdsb2JlLWFtZXJpY2FzXCJdLCBcImY1N2RcIiwgXCJNNTcuNyAxOTNsOS40IDE2LjRjOC4zIDE0LjUgMjEuOSAyNS4yIDM4IDI5LjhMMTYzIDI1NS43YzE3LjIgNC45IDI5IDIwLjYgMjkgMzguNWwwIDM5LjljMCAxMSA2LjIgMjEgMTYgMjUuOXMxNiAxNC45IDE2IDI1LjlsMCAzOWMwIDE1LjYgMTQuOSAyNi45IDI5LjkgMjIuNmMxNi4xLTQuNiAyOC42LTE3LjUgMzIuNy0zMy44bDIuOC0xMS4yYzQuMi0xNi45IDE1LjItMzEuNCAzMC4zLTQwbDguMS00LjZjMTUtOC41IDI0LjItMjQuNSAyNC4yLTQxLjdsMC04LjNjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtMy45LTMuOWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMjU3IDI1NmMtMTEuMSAwLTIyLjEtMi45LTMxLjgtOC40bC0zNC41LTE5LjdjLTQuMy0yLjUtNy42LTYuNS05LjItMTEuMmMtMy4yLTkuNiAxLjEtMjAgMTAuMi0yNC41bDUuOS0zYzYuNi0zLjMgMTQuMy0zLjkgMjEuMy0xLjVsMjMuMiA3LjdjOC4yIDIuNyAxNy4yLS40IDIxLjktNy41YzQuNy03IDQuMi0xNi4zLTEuMi0yMi44bC0xMy42LTE2LjNjLTEwLTEyLTkuOS0yOS41IC4zLTQxLjNsMTUuNy0xOC4zYzguOC0xMC4zIDEwLjItMjUgMy41LTM2LjdsLTIuNC00LjJjLTMuNS0uMi02LjktLjMtMTAuNC0uM0MxNjMuMSA0OCA4NC40IDEwOC45IDU3LjcgMTkzek00NjQgMjU2YzAtMzYuOC05LjYtNzEuNC0yNi40LTEwMS41TDQxMiAxNjQuOGMtMTUuNyA2LjMtMjMuOCAyMy44LTE4LjUgMzkuOGwxNi45IDUwLjdjMy41IDEwLjQgMTIgMTguMyAyMi42IDIwLjlsMjkuMSA3LjNjMS4yLTkgMS44LTE4LjIgMS44LTI3LjV6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUVhcnRoID0gZmFFYXJ0aEFtZXJpY2FzO1xuY29uc3QgZmFFYXJ0aEFtZXJpY2EgPSBmYUVhcnRoQW1lcmljYXM7XG5jb25zdCBmYUdsb2JlQW1lcmljYXMgPSBmYUVhcnRoQW1lcmljYXM7XG5jb25zdCBmYVBlcnNvbkJ1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1idXJzdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzYlwiLCBcIk00ODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjIzLjEgMjguNiA0Ny41YzkuMSAxNS4xIDI4LjggMjAgNDMuOSAxMC45czIwLTI4LjggMTAuOS00My45bC01OC4zLTk3Yy0xNy40LTI4LjktNDguNi00Ni42LTgyLjMtNDYuNmwtMjkuNyAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUw0MDggMjU2LjkgNDA4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek0xOTAuOSAxOC4xQzE4OC40IDEyIDE4Mi42IDggMTc2IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMNTUuNiA2OC45Yy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNzLTQuNiAxMi4yLTEuNCAxNy45bDM5LjUgNjkuMUwxMC45IDIwNi40Yy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yTDkwLjYgMzI3Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE3NiAyODYuMWw1OC42IDUzLjljNC44IDQuNCAxMS45IDUuNSAxNy44IDIuNnM5LjUtOSA5LTE1LjVsLTUuNi03OS40IDUwLjUtNy44IDI0LjMtNDAuNS01NS4yLTM4TDMxNSA5Mi4yYzMuMy01LjcgMi43LTEyLjgtMS40LTE3LjlzLTEwLjktNy4yLTE3LjItNS4zTDIyMC4zIDkyLjFsLTI5LjQtNzR6XCJdXG59O1xuY29uc3QgZmFEb3ZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMzBdLCBcImY0YmFcIiwgXCJNMTYwLjggOTYuNWMxNCAxNyAzMSAzMC45IDQ5LjUgNDIuMmMyNS45IDE1LjggNTMuNyAyNS45IDc3LjcgMzEuNmwwLTMxLjVDMjY1LjggMTA4LjUgMjUwIDcxLjUgMjQ4LjYgMjhjLS40LTExLjMtNy41LTIxLjUtMTguNC0yNC40Yy03LjYtMi0xNS44LS4yLTIxIDUuOGMtMTMuMyAxNS40LTMyLjcgNDQuNi00OC40IDg3LjJ6TTMyMCAxNDRsMCAzMC42czAgMCAwIDBsMCAxLjNzMCAwIDAgMGwwIDMyLjFjLTYwLjgtNS4xLTE4NS00My44LTIxOS4zLTE1Ny4yQzk3LjQgNDAgODcuOSAzMiA3Ni42IDMyYy03LjkgMC0xNS4zIDMuOS0xOC44IDExQzQ2LjggNjUuOSAzMiAxMTIuMSAzMiAxNzZjMCAxMTYuOSA4MC4xIDE4MC41IDExOC40IDIwMi44TDExLjggNDE2LjZDNi43IDQxOCAyLjYgNDIxLjggLjkgNDI2LjhzLS44IDEwLjYgMi4zIDE0LjhDMjEuNyA0NjYuMiA3Ny4zIDUxMiAxNjAgNTEyYzMuNiAwIDcuMi0xLjIgMTAtMy41TDI0NS42IDQ0OGw3NC40IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC0xNjAgMjkuOS00NC45YzEuMy0yIDIuMS00LjQgMi4xLTYuOGMwLTYuOC01LjUtMTIuMy0xMi4zLTEyLjNMNDAwIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MHptODAtMTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeUVtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktZW1wdHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImJhdHRlcnktMFwiXSwgXCJmMjQ0XCIsIFwiTTgwIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDE2MHpNMCAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsMzg0IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBMODAgNDE2Yy00NC4yIDAtODAtMzUuOC04MC04MEwwIDE3NnpcIl1cbn07XG5jb25zdCBmYUJhdHRlcnkwID0gZmFCYXR0ZXJ5RW1wdHk7XG5jb25zdCBmYVNvY2tzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvY2tzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTEwXSwgXCJmNjk2XCIsIFwiTTE3NS4yIDQ3Ni42Yy05LjctMTgtMTUuMi0zOC43LTE1LjItNjAuNmMwLTQwLjMgMTktNzguMiA1MS4yLTEwMi40bDY0LTQ4YzguMS02IDEyLjgtMTUuNSAxMi44LTI1LjZsMC0xNDRMMTI4IDk2bDAgMTQ0YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4QzE0LjIgMzU3LjMgMCAzODUuOCAwIDQxNmMwIDUzIDQzIDk2IDk2IDk2YzIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDIxLjYtMTYuMnpNMTI4IDY0bDE2MCAwIDAtMTZjMC0xNC41IDMuOS0yOC4yIDEwLjctMzkuOUMyOTEgMyAyODEuOSAwIDI3MiAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2ek0zMjAgOTZsMCAxNDRjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhDMjA2LjIgMzU3LjMgMTkyIDM4NS44IDE5MiA0MTZjMCA1MyA0MyA5NiA5NiA5NmMyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ5MyAzODIuMiA1MTIgMzQ0LjMgNTEyIDMwNGwwLTIwOEwzMjAgOTZ6TTUxMiA2NGwwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDM2OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDE5MiAwelwiXVxufTtcbmNvbnN0IGZhSW5ib3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5ib3gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMWNcIiwgXCJNMTIxIDMyQzkxLjYgMzIgNjYgNTIgNTguOSA4MC41TDEuOSAzMDguNEMuNiAzMTMuNSAwIDMxOC43IDAgMzIzLjlMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05Mi4xYzAtNS4yLS42LTEwLjQtMS45LTE1LjVsLTU3LTIyNy45QzQ0NiA1MiA0MjAuNCAzMiAzOTEgMzJMMTIxIDMyem0wIDY0bDI3MCAwIDQ4IDE5Mi01MS4yIDBjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE0LjMgMjguNmMtNS40IDEwLjgtMTYuNSAxNy43LTI4LjYgMTcuN2wtMTIwLjQgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN2wtMTQuMy0yOC42Yy01LjQtMTAuOC0xNi41LTE3LjctMjguNi0xNy43TDczIDI4OCAxMjEgOTZ6XCJdXG59O1xuY29uc3QgZmFTZWN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlY3Rpb24nLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImU0NDdcIiwgXCJNNjQuOSA5NkM2Ny4xIDg0LjQgNzMuNyA3Ni4yIDg2IDcwLjZjMTMuOC02LjIgMzQuOC04LjkgNjEuMi00LjVjOC44IDEuNCAzNi4xIDcuMSA0NC4xIDkuM2MxNyA0LjggMzQuNy01LjEgMzkuNS0yMi4ycy01LjEtMzQuNy0yMi4yLTM5LjVjLTExLjEtMy4xLTQxLTkuMi01MC45LTEwLjhDMTIzLTIuNyA4OC4zLS42IDU5LjcgMTIuM0MyOS45IDI1LjggNy41IDUwLjkgMS42IDg2LjVjLS4xIC41LS4yIDEuMS0uMiAxLjZjLTIuMiAxOS43IC4zIDM3LjkgOC4xIDU0LjFjNy43IDE2LjEgMTkuNCAyOCAzMiAzNi45Yy42IC41IDEuMyAuOSAyIDEuNEMyMi4zIDE5NC4yIDYuNSAyMTUuMSAxLjcgMjQzYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjMgMTkuMyAuNCAzNy4xIDguNCA1M2M3LjkgMTUuNiAxOS44IDI3IDMyLjMgMzUuNWMyMi40IDE1LjIgNTEuOSAyNCA3NS40IDMxYzAgMCAwIDAgMCAwbDMuNyAxLjFjMjcuMiA4LjIgNDYuOSAxNC42IDU5LjQgMjMuOGM1LjUgNCA4LjIgNy42IDkuNSAxMC45YzEuMyAzLjIgMi42IDguNiAuOSAxOC4xYy0xLjcgMTAuMS03LjcgMTgtMjAuNyAyMy41Yy0xNCA2LTM1LjQgOC41LTYyIDQuNGMtMTIuOC0yLjEtMzUuMS05LjctNTQuMS0xNi4yYzAgMCAwIDAgMCAwYy00LjMtMS41LTguNS0yLjktMTIuMy00LjJDMjUuMyA0MjAgNy4yIDQyOS4xIDEuNiA0NDUuOHMzLjUgMzQuOSAyMC4zIDQwLjVjMi42IC44IDUuNyAxLjkgOS4yIDMuMWMxOC42IDYuMyA0OC41IDE2LjYgNjcuMyAxOS42YzAgMCAwIDAgMCAwbC4yIDBjMzQuNSA1LjQgNjguOCAzLjQgOTcuMi04LjdjMjkuNC0xMi42IDUyLjUtMzYuNSA1OC41LTcxLjVjMy4zLTE5LjMgMS45LTM3LjQtNS01My45Yy02LjMtMTUtMTYuNC0yNi40LTI3LjYtMzUuMmMxNi41LTEzLjkgMjguNS0zMy4yIDMyLjYtNTguMmMzLjItMTkuOCAxLjktMzguMy00LjgtNTUuMWMtNi43LTE2LjgtMTcuOC0yOS40LTMwLjItMzljLTIyLjgtMTcuNi01My42LTI3LjQtNzcuNy0zNWwtMS40LS41Yy0yNy40LTguNy00Ny44LTE1LjMtNjEuNS0yNWMtNi4xLTQuNC05LjUtOC41LTExLjQtMTIuNGMtMS44LTMuNy0zLjItOS4zLTIuMy0xOC41em03Ni43IDIwOC41bC0uNi0uMi0xLjQtLjRjLTI3LjQtOC4yLTQ3LjktMTQuNS02MS43LTIzLjhjLTYuMi00LjItOS4zLTcuOS0xMS0xMS4zYy0xLjUtMy0yLjktNy43LTIuMS0xNS43YzEuOS05LjcgNy45LTE3LjMgMjAuNS0yMi43YzE0LTYgMzUuNC04LjUgNjIuMS00LjNsMTYuNCAyLjZjNi4zIDIuOSAxMS43IDYgMTYuMiA5LjVjNS41IDQuMiA4LjQgOC4yIDEwIDEyLjJjMS42IDQgMi44IDEwLjQgMS4xIDIwLjljLTIuNCAxNC43LTEyLjggMjYuNC0zNy4xIDMxbC0xMi40IDIuM3pcIl1cbn07XG5jb25zdCBmYUdhdWdlSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1oaWdoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI0NjEsIFwidGFjaG9tZXRlci1hbHRcIiwgXCJ0YWNob21ldGVyLWFsdC1mYXN0XCJdLCBcImY2MjVcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGMwLTE3LjQtNi45LTMzLjEtMTguMS00NC42TDM2NiAxNjEuN2M1LjMtMTIuMS0uMi0yNi4zLTEyLjMtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjNMMjU3LjkgMjg4Yy0uNiAwLTEuMyAwLTEuOSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0ek0xNzYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTk2IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTM1Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbmNvbnN0IGZhVGFjaG9tZXRlckFsdCA9IGZhR2F1Z2VIaWdoO1xuY29uc3QgZmFUYWNob21ldGVyQWx0RmFzdCA9IGZhR2F1Z2VIaWdoO1xuY29uc3QgZmFFbnZlbG9wZU9wZW5UZXh0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLW9wZW4tdGV4dCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY1OFwiLCBcIk0yMTUuNCA5NkwxNDQgOTZsLTM2LjIgMEw5NiA5NmwwIDguOEw5NiAxNDRsMCA0MC40IDAgODlMLjIgMjAyLjVjMS42LTE4LjEgMTAuOS0zNC45IDI1LjctNDUuOEw0OCAxNDAuMyA0OCA5NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni42IDAgNDkuOS0zNi45QzIzMi4yIDMuOSAyNDMuOSAwIDI1NiAwczIzLjggMy45IDMzLjUgMTFMMzM5LjQgNDggNDE2IDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDQuMyAyMi4xIDE2LjRjMTQuOCAxMC45IDI0LjEgMjcuNyAyNS43IDQ1LjhMNDE2IDI3My40bDAtODkgMC00MC40IDAtMzkuMiAwLTguOC0xMS44IDBMMzY4IDk2bC03MS40IDAtODEuMyAwek0wIDQ0OEwwIDI0Mi4xIDIxNy42IDQwMy4zYzExLjEgOC4yIDI0LjYgMTIuNyAzOC40IDEyLjdzMjcuMy00LjQgMzguNC0xMi43TDUxMiAyNDIuMSA1MTIgNDQ4czAgMCAwIDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwIDAgMCAwIDAgMHpNMTc2IDE2MGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhSG9zcGl0YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5NzMsIDYyNTg5LCBcImhvc3BpdGFsLWFsdFwiLCBcImhvc3BpdGFsLXdpZGVcIl0sIFwiZjBmOFwiLCBcIk0xOTIgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0NjQtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgODAtODAgMCAwLTQ2NHpNNDggOTZsMTEyIDAgMCA0MTZMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMyMGw4MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDAgMjg4bDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkwwIDE5MmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em01NDQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTEyIDAgMC00MTYgMTEyIDB6TTMxMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjQtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDAgMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNCAyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMCAwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHpcIl1cbn07XG5jb25zdCBmYUhvc3BpdGFsQWx0ID0gZmFIb3NwaXRhbDtcbmNvbnN0IGZhSG9zcGl0YWxXaWRlID0gZmFIb3NwaXRhbDtcbmNvbnN0IGZhV2luZUJvdHRsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWJvdHRsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjcyZlwiLCBcIk0zOTMuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNjLTExLjggMTEuOC0zMC43IDEyLjUtNDMuMiAxLjlsLTkuNSA5LjUtNDguOCA0OC44Yy05LjIgOS4yLTExLjUgMjIuOS04LjYgMzUuNmM5LjQgNDAuOS0xLjkgODUuNi0zMy44IDExNy41TDE5Ny4zIDQ5My4zYy0yNSAyNS02NS41IDI1LTkwLjUgMGwtODgtODhjLTI1LTI1LTI1LTY1LjUgMC05MC41TDE4MC4yIDE1My4zYzMxLjktMzEuOSA3Ni42LTQzLjEgMTE3LjUtMzMuOGMxMi42IDIuOSAyNi40IC41IDM1LjUtOC42bDQ4LjgtNDguOCA5LjUtOS41Yy0xMC42LTEyLjYtMTAtMzEuNCAxLjktNDMuMnpNOTkuMyAzNDcuM2w2NS40IDY1LjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsOTcuNC05Ny40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC02NS40LTY1LjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDk5LjMgMzI0LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbmNvbnN0IGZhQ2hlc3NSb29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLXJvb2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODIwXSwgXCJmNDQ3XCIsIFwiTTMyIDE5MkwzMiA0OGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNDRjMCAxMC4xLTQuNyAxOS42LTEyLjggMjUuNkwzNTIgMjU2bDE2IDE0NEw4MCA0MDAgOTYgMjU2IDQ0LjggMjE3LjZDMzYuNyAyMTEuNiAzMiAyMDIuMSAzMiAxOTJ6bTE3NiA5NmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2ek0yMi42IDQ3My40TDY0IDQzMmwzMjAgMCA0MS40IDQxLjRjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42TDM4LjYgNTEyQzI2LjEgNTEyIDE2IDUwMS45IDE2IDQ4OS40YzAtNiAyLjQtMTEuOCA2LjYtMTZ6XCJdXG59O1xuY29uc3QgZmFCYXJzU3RhZ2dlcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhcnMtc3RhZ2dlcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyZW9yZGVyXCIsIFwic3RyZWFtXCJdLCBcImY1NTBcIiwgXCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek02NCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFSZW9yZGVyID0gZmFCYXJzU3RhZ2dlcmVkO1xuY29uc3QgZmFTdHJlYW0gPSBmYUJhcnNTdGFnZ2VyZWQ7XG5jb25zdCBmYURoYXJtYWNoYWtyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaGFybWFjaGFrcmEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzg0XSwgXCJmNjU1XCIsIFwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMCA2LjQgMTkuNSAxMS42IDI4bC00OC42IDQyLjV6bTEwMy44IDY1Yy0yNC40LTQuMS00Ni45LTEzLjctNjYuMi0yNy40bDQyLjUtNDguNmM4LjUgNS4zIDE4IDkuMiAyOCAxMS42bC00LjMgNjQuNHptMTE5LjQtMjcuNGMtMTkuMyAxMy44LTQxLjkgMjMuNC02Ni4yIDI3LjRsLTQuMy02NC40YzEwLTIuNCAxOS41LTYuNCAyOC0xMS42bDQyLjUgNDguNnptNjUtMTAzLjhjLTQuMSAyNC40LTEzLjcgNDYuOS0yNy40IDY2LjJsLTQ4LjYtNDIuNWM1LjMtOC41IDkuMi0xOCAxMS42LTI4bDY0LjQgNC4zem0tNjUtMTU2LjlsLTQyLjUgNDguNmMtOC41LTUuMy0xOC05LjItMjgtMTEuNmw0LjMtNjQuNGMyNC40IDQuMSA0Ni45IDEzLjcgNjYuMiAyNy41ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUhvdGRvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3Rkb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3ODldLCBcImY4MGZcIiwgXCJNNDg4LjYgMjMuNGMzMS4yIDMxLjIgMzEuMiA4MS45IDAgMTEzLjFsLTM1MiAzNTJjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMHMtMzEuMi04MS45IDAtMTEzLjFsMzUyLTM1MmMzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDB6TTQ0My4zIDkyLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwYy0xMi41IDEyLjUtMjMuOCAxNS4xLTM3LjUgMTcuNmwtMi41IC40Yy0xMy44IDIuNS0zMS42IDUuNi00OCAyMmMtMTYuNyAxNi43LTIwLjkgMzYtMjQuMSA1MC45YzAgMCAwIDAgMCAwczAgMCAwIDBsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFzLTIwLjUgMTIuMy0zNi4xIDE1LjdsLTEgLjJjLTE0LjkgMy4yLTM0LjIgNy40LTUwLjkgMjQuMXMtMjAuOSAzNi0yNC4xIDUwLjlsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFjLTkuMiA5LjItMTggMTAuOC0zMi43IDEzLjRjMCAwIDAgMCAwIDBsLS45IC4yYy0xNS42IDIuOC0zNC45IDYuOS01NC40IDI2LjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGMxMi41LTEyLjUgMjMuOC0xNS4xIDM3LjUtMTcuNmwyLjUtLjRjMTMuOC0yLjUgMzEuNi01LjYgNDgtMjJjMTYuNy0xNi43IDIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMXMyMC41LTEyLjMgMzYuMS0xNS43bDEtLjJjMTQuOS0zLjIgMzQuMi03LjQgNTAuOS0yNC4xczIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMWM5LjItOS4yIDE4LTEwLjggMzIuNy0xMy40bC45LS4yYzE1LjYtMi44IDM0LjktNi45IDU0LjQtMjYuNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTkxLjIgNDc5LjJsMjg4LTI4OEw0OTUgMjA3YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MUwyODkgNDk1Yy0xMC45IDEwLjktMjUuNiAxNy00MSAxN3MtMzAuMS02LjEtNDEtMTdsLTE1LjgtMTUuOHpNMTcgMzA1QzYuMSAyOTQuMSAwIDI3OS40IDAgMjY0czYuMS0zMC4xIDE3LTQxTDIyMyAxN0MyMzMuOSA2LjEgMjQ4LjYgMCAyNjQgMHMzMC4xIDYuMSA0MSAxN2wxNS44IDE1LjgtMjg4IDI4OEwxNyAzMDV6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nV2l0aENhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmctd2l0aC1jYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJibGluZFwiXSwgXCJmMjlkXCIsIFwiTTE3NiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04LjQgMzJjLTM2LjQgMC02OS42IDIwLjUtODUuOSA1My4xTDM1LjQgMjczLjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM0wxMjggMjMxLjZsMCA0My4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDIyNCAzOTcuM2wwIDgyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTg5LjRjMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUwyMjQgMzA2LjdsMC05My40IDcwLjQgOTMuOWMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44TDI2OC44IDE2Ni40QzI1MC43IDE0Mi4yIDIyMi4yIDEyOCAxOTIgMTI4bC0yNC40IDB6TTEyOC4zIDM0Ni44TDk3IDQ3Mi4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDIyLTg4LjItNTIuOC01Mi44ek00NTAuOCA1MDUuMWM1IDcuMyAxNSA5LjEgMjIuMyA0czkuMS0xNSA0LTIyLjNMMzU4LjkgMzE2LjFjLTIuOCAzLjgtNi4xIDcuMy0xMC4xIDEwLjNjLTUgMy44LTEwLjUgNi40LTE2LjIgNy45TDQ1MC44IDUwNS4xelwiXVxufTtcbmNvbnN0IGZhQmxpbmQgPSBmYVBlcnNvbldhbGtpbmdXaXRoQ2FuZTtcbmNvbnN0IGZhRHJ1bSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzQ1XSwgXCJmNTY5XCIsIFwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2QzExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNUM0NTguNCAxODEuOCA0NjQgMTk3LjQgNDY0IDIwOGMwIC44LTIuNyAxNy4yLTQ2IDM1LjlDMzc5LjEgMjYwLjcgMzIyIDI3MiAyNTYgMjcycy0xMjMuMS0xMS4zLTE2Mi0yOC4xQzUwLjcgMjI1LjIgNDggMjA4LjggNDggMjA4YzAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjNDMTMwLjYgMTUxLjkgMTg3LjggMTQ0IDI1NiAxNDRjMTggMCAzNS4xIC41IDUxLjQgMS42elwiXVxufTtcbmNvbnN0IGZhSWNlQ3JlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNlLWNyZWFtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3ODQ4XSwgXCJmODEwXCIsIFwiTTM2Ny4xIDE2MGMuNi01LjMgLjktMTAuNiAuOS0xNkMzNjggNjQuNSAzMDMuNSAwIDIyNCAwUzgwIDY0LjUgODAgMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsNTMuNSAwIDE4MSAwIDUzLjUgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtLjkgMHpNOTYgMjg4TDIwMC44IDQ5Ny43YzQuNCA4LjggMTMuMyAxNC4zIDIzLjIgMTQuM3MxOC44LTUuNSAyMy4yLTE0LjNMMzUyIDI4OCA5NiAyODh6XCJdXG59O1xuY29uc3QgZmFIZWFydENpcmNsZUJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLWJvbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZmNcIiwgXCJNNDcuNiAzMDAuNEwyMjguMyA0NjkuMWM3LjUgNyAxNy40IDEwLjkgMjcuNyAxMC45czIwLjItMy45IDI3LjctMTAuOWwyLjYtMi40QzI2Ny4yIDQzOC42IDI1NiA0MDQuNiAyNTYgMzY4YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2YzI4LjMgMCA1NSA2LjcgNzguNyAxOC41Yy45LTYuNSAxLjMtMTMgMS4zLTE5LjZsMC01LjhjMC02OS45LTUwLjUtMTI5LjUtMTE5LjQtMTQxQzM0NyAzNi41IDMwMC42IDUxLjQgMjY4IDg0TDI1NiA5NiAyNDQgODRjLTMyLjYtMzIuNi03OS00Ny41LTEyNC42LTM5LjlDNTAuNSA1NS42IDAgMTE1LjIgMCAxODUuMWwwIDUuOGMwIDQxLjUgMTcuMiA4MS4yIDQ3LjYgMTA5LjV6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em00Ny45LTIyNWM0LjMgMy43IDUuNCA5LjkgMi42IDE0LjlMNDUyLjQgMzU2bDM1LjYgMGM1LjIgMCA5LjggMy4zIDExLjQgOC4ycy0uMSAxMC4zLTQuMiAxMy40bC05NiA3MmMtNC41IDMuNC0xMC44IDMuMi0xNS4xLS42cy01LjQtOS45LTIuNi0xNC45TDQxMS42IDM4MCAzNzYgMzgwYy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42elwiXVxufTtcbmNvbnN0IGZhRmF4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZheCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyNCwgMTI4NDM5XSwgXCJmMWFjXCIsIFwiTTEyOCA2NGwwIDk2IDY0IDAgMC05NiAxOTQuNyAwTDQxNiA5My4zbDAgNjYuNyA2NCAwIDAtNjYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MzIgMTguN0M0MjAgNi43IDQwMy43IDAgMzg2LjcgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTAgMTYwTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem00ODAgMzJsLTM1MiAwIDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yNTYgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMjQgNDE2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xuY29uc3QgZmFQYXJhZ3JhcGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFyYWdyYXBoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTgyXSwgXCJmMWRkXCIsIFwiTTE5MiAzMmw2NCAwIDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzUyLTMyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0zMiAwYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MHM3MS42LTE2MCAxNjAtMTYwelwiXVxufTtcbmNvbnN0IGZhQ2hlY2tUb1Nsb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2stdG8tc2xvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1widm90ZS15ZWFcIl0sIFwiZjc3MlwiLCBcIk05NiA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGwyODggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMwNEw5NiAzODQgOTYgODB6bTMxMyA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTExMSAxMTEtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMNDA5IDE2MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOCA0NDggMCAwLTEyOCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2elwiXVxufTtcbmNvbnN0IGZhVm90ZVllYSA9IGZhQ2hlY2tUb1Nsb3Q7XG5jb25zdCBmYVN0YXJIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXItaGFsZicsXG4gIGljb246IFs1NzYsIDUxMiwgWzYxNzMxXSwgXCJmMDg5XCIsIFwiTTI4OCAwYy0xMi4yIC4xLTIzLjMgNy0yOC42IDE4TDE5NSAxNTAuMyA1MS40IDE3MS41Yy0xMiAxLjgtMjIgMTAuMi0yNS43IDIxLjdzLS43IDI0LjIgNy45IDMyLjdMMTM3LjggMzI5IDExMy4yIDQ3NC43Yy0yIDEyIDMgMjQuMiAxMi45IDMxLjNzMjMgOCAzMy44IDIuM0wyODggNDM5LjggMjg4IDB6TTQyOS45IDUxMmMxLjEgLjEgMi4xIC4xIDMuMiAwbC0zLjIgMHpcIl1cbn07XG5jb25zdCBmYUJveGVzU3RhY2tlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3hlcy1zdGFja2VkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjI2MjUsIFwiYm94ZXNcIiwgXCJib3hlcy1hbHRcIl0sIFwiZjQ2OFwiLCBcIk0yNDggMEwyMDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzI4IDBsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTgwek02NCAyNTZjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC00MCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC04MC00MCAwek0zNTIgNTEybDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC00MCAwIDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC04MC00MCAwYy0xNSAwLTI4LjggNS4xLTM5LjcgMTMuOGM0LjkgMTAuNCA3LjcgMjIgNy43IDM0LjJsMCAxNjBjMCAxMi4yLTIuOCAyMy44LTcuNyAzNC4yQzMyMy4yIDUwNi45IDMzNyA1MTIgMzUyIDUxMnpcIl1cbn07XG5jb25zdCBmYUJveGVzID0gZmFCb3hlc1N0YWNrZWQ7XG5jb25zdCBmYUJveGVzQWx0ID0gZmFCb3hlc1N0YWNrZWQ7XG5jb25zdCBmYUxpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGluaycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODI3OSwgXCJjaGFpblwiXSwgXCJmMGMxXCIsIFwiTTU3OS44IDI2Ny43YzU2LjUtNTYuNSA1Ni41LTE0OCAwLTIwNC41Yy01MC01MC0xMjguOC01Ni41LTE4Ni4zLTE1LjRsLTEuNiAxLjFjLTE0LjQgMTAuMy0xNy43IDMwLjMtNy40IDQ0LjZzMzAuMyAxNy43IDQ0LjYgNy40bDEuNi0xLjFjMzIuMS0yMi45IDc2LTE5LjMgMTAzLjggOC42YzMxLjUgMzEuNSAzMS41IDgyLjUgMCAxMTRMNDIyLjMgMzM0LjhjLTMxLjUgMzEuNS04Mi41IDMxLjUtMTE0IDBjLTI3LjktMjcuOS0zMS41LTcxLjgtOC42LTEwMy44bDEuMS0xLjZjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42cy0zNC40LTYuOS00NC42IDcuNGwtMS4xIDEuNkMyMDYuNSAyNTEuMiAyMTMgMzMwIDI2MyAzODBjNTYuNSA1Ni41IDE0OCA1Ni41IDIwNC41IDBMNTc5LjggMjY3Ljd6TTYwLjIgMjQ0LjNjLTU2LjUgNTYuNS01Ni41IDE0OCAwIDIwNC41YzUwIDUwIDEyOC44IDU2LjUgMTg2LjMgMTUuNGwxLjYtMS4xYzE0LjQtMTAuMyAxNy43LTMwLjMgNy40LTQ0LjZzLTMwLjMtMTcuNy00NC42LTcuNGwtMS42IDEuMWMtMzIuMSAyMi45LTc2IDE5LjMtMTAzLjgtOC42Qzc0IDM3MiA3NCAzMjEgMTA1LjUgMjg5LjVMMjE3LjcgMTc3LjJjMzEuNS0zMS41IDgyLjUtMzEuNSAxMTQgMGMyNy45IDI3LjkgMzEuNSA3MS44IDguNiAxMDMuOWwtMS4xIDEuNmMtMTAuMyAxNC40LTYuOSAzNC40IDcuNCA0NC42czM0LjQgNi45IDQ0LjYtNy40bDEuMS0xLjZDNDMzLjUgMjYwLjggNDI3IDE4MiAzNzcgMTMyYy01Ni41LTU2LjUtMTQ4LTU2LjUtMjA0LjUgMEw2MC4yIDI0NC4zelwiXVxufTtcbmNvbnN0IGZhQ2hhaW4gPSBmYUxpbms7XG5jb25zdCBmYUVhckxpc3RlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXItbGlzdGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXNcIl0sIFwiZjJhMlwiLCBcIk0zOTguMyAzLjRjLTE1LjgtNy45LTM1LTEuNS00Mi45IDE0LjNjLTcuOSAxNS44LTEuNSAzNC45IDE0LjIgNDIuOWwuNCAuMmMuNCAuMiAxLjEgLjYgMi4xIDEuMmMyIDEuMiA1IDMgOC43IDUuNmM3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjJDNDI4LjUgMTEzLjQgNDQ4IDE0NiA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjdDNDQxLjYgMzMuMiA0MjcuNyAyMi4yIDQxNy4zIDE1Yy01LjMtMy43LTkuNy02LjQtMTMtOC4zYy0xLjYtMS0zLTEuNy00LTIuMmMtLjUtLjMtLjktLjUtMS4yLS43bC0uNC0uMi0uMi0uMWMwIDAgMCAwLS4xIDBjMCAwIDAgMCAwIDBMMzg0IDMyIDM5OC4zIDMuNHpNMTI4LjcgMjI3LjVjNi4yLTU2IDUzLjctOTkuNSAxMTEuMy05OS41YzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyYzAgMjkuMy0xMS4yIDU1LjktMjkuNiA3NS45Yy0xNyAxOC40LTM0LjQgNDUuMS0zNC40IDc4bDAgNi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEybDAtNi4xYzAtOS44IDUuNC0yMS43IDE3LjQtMzQuN0MzOTguMyAzMjcuOSA0MTYgMjg2IDQxNiAyNDBjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZDMTQ5LjQgNjQgNzQuOCAxMzIuNSA2NS4xIDIyMC41Yy0xLjkgMTcuNiAxMC43IDMzLjQgMjguMyAzNS4zczMzLjQtMTAuNyAzNS4zLTI4LjN6TTMyIDUxMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE5MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDEuNCAzNjEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwek0yMDggMjQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtcyA9IGZhRWFyTGlzdGVuO1xuY29uc3QgZmFUcmVlQ2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmVlLWNpdHknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1ODdcIiwgXCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDQgNDAgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAyNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQxNnptNjQgMzJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzUyIDI3MmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yMjQgMTYwYzAgNi0xIDExLTIgMTZjMjAgMTQgMzQgMzggMzQgNjRjMCA0NS0zNiA4MC04MCA4MGwtMTYgMCAwIDE2MGMwIDE4LTE1IDMyLTMyIDMyYy0xOCAwLTMyLTE0LTMyLTMybDAtMTYwLTE2IDBjLTQ1IDAtODAtMzUtODAtODBjMC0yNiAxMy01MCAzMy02NGMtMS01LTEtMTAtMS0xNmMwLTUzIDQyLTk2IDk2LTk2YzUzIDAgOTYgNDMgOTYgOTZ6XCJdXG59O1xuY29uc3QgZmFQbGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXknLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5NjU0XSwgXCJmMDRiXCIsIFwiTTczIDM5Yy0xNC44LTkuMS0zMy40LTkuNC00OC41LS45UzAgNjIuNiAwIDgwTDAgNDMyYzAgMTcuNCA5LjQgMzMuNCAyNC41IDQxLjlzMzMuNyA4LjEgNDguNS0uOUwzNjEgMjk3YzE0LjMtOC43IDIzLTI0LjIgMjMtNDFzLTguNy0zMi4yLTIzLTQxTDczIDM5elwiXVxufTtcbmNvbnN0IGZhRm9udCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb250JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDMxXCIsIFwiTTI1NCA1Mi44QzI0OS4zIDQwLjMgMjM3LjMgMzIgMjI0IDMycy0yNS4zIDguMy0zMCAyMC44TDU3LjggNDE2IDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xLjggMCAxOC00OCAxNTkuNiAwIDE4IDQ4LTEuOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1LjggMEwyNTQgNTIuOHpNMjc5LjggMzA0bC0xMTEuNiAwTDIyNCAxNTUuMSAyNzkuOCAzMDR6XCJdXG59O1xuY29uc3QgZmFUYWJsZUNlbGxzUm93TG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS1jZWxscy1yb3ctbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY3YVwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjUuMWMtMzcuOCA1LjQtNjkuNCAyOS42LTg1LjIgNjIuOUwzNjAgMjI0bDAgNjQgNTYgMCAwIDguNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwtMjQgMCAwIDY0IDI0IDAgMCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTY0IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0yMzIgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMTUyIDM1MmwtODggMCAwIDY0IDg4IDAgMC02NHptNTYgMGwwIDY0IDg4IDAgMC02NC04OCAwek01MjggMjQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgwIDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDh6XCJdXG59O1xuY29uc3QgZmFSdXBpYWhTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1cGlhaC1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMjNkXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjAgNjQgMzIwbDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMjg4IDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwTDY0IDk2bDAgMTYwem0yNTYtOTZsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnMtNTAuMSAxMTItMTEyIDExMmwtNDggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4IDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAwelwiXVxufTtcbmNvbnN0IGZhTWFnbmlmeWluZ0dsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNjksIFwic2VhcmNoXCJdLCBcImYwMDJcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6XCJdXG59O1xuY29uc3QgZmFTZWFyY2ggPSBmYU1hZ25pZnlpbmdHbGFzcztcbmNvbnN0IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1NSwgXCJwaW5nLXBvbmctcGFkZGxlLWJhbGxcIiwgXCJ0YWJsZS10ZW5uaXNcIl0sIFwiZjQ1ZFwiLCBcIk00MTYgMjg4Yy01MC4xIDAtOTMuNiAyOC44LTExNC42IDcwLjhMNjguOSAxMjYuM2wuNi0uNiA2MC4xLTYwLjFjODcuNS04Ny41IDIyOS4zLTg3LjUgMzE2LjggMGM2Ny4xIDY3LjEgODIuNyAxNjYuMyA0Ni44IDI0OC4zQzQ3MS44IDI5Ny42IDQ0NSAyODggNDE2IDI4OHpNNDkuMyAxNTEuOUwyOTAuMSAzOTIuN2MtMS40IDcuNS0yLjEgMTUuMy0yLjEgMjMuM2MwIDIzLjIgNi4yIDQ0LjkgMTYuOSA2My43Yy0zIC4yLTYuMSAuMy05LjIgLjNsLTIuNyAwYy0zMy45IDAtNjYuNS0xMy41LTkwLjUtMzcuNWwtOS44LTkuOGMtMTMuMS0xMy4xLTM0LjYtMTIuNC00Ni44IDEuN0w4OC4yIDUwMWMtNS44IDYuNy0xNC4yIDEwLjctMjMgMTFzLTE3LjUtMy4xLTIzLjgtOS40bC0zMi0zMkMzLjEgNDY0LjMtLjMgNDU1LjcgMCA0NDYuOXM0LjMtMTcuMiAxMS0yM2w2Ni42LTU3LjdjMTQtMTIuMiAxNC44LTMzLjcgMS43LTQ2LjhsLTkuOC05LjhDNDUuNSAyODUuNSAzMiAyNTIuOSAzMiAyMTlsMC0yLjdjMC0yMi44IDYuMS00NC45IDE3LjMtNjQuM3pNNDE2IDMyMGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIl1cbn07XG5jb25zdCBmYVBpbmdQb25nUGFkZGxlQmFsbCA9IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsO1xuY29uc3QgZmFUYWJsZVRlbm5pcyA9IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsO1xuY29uc3QgZmFQZXJzb25Eb3RzRnJvbUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRvdHMtZnJvbS1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJkaWFnbm9zZXNcIl0sIFwiZjQ3MFwiLCBcIk0yODggMTc2QTg4IDg4IDAgMSAwIDI4OCAwYTg4IDg4IDAgMSAwIDAgMTc2ek03OC43IDM3Mi45YzE1LTEyLjUgNTAtMzQuNCA5Ny4zLTUwLjFMMTc2IDQzMmwyMjQgMCAwLTEwOS4zYzQ3LjMgMTUuOCA4Mi4zIDM3LjcgOTcuMyA1MC4xYzIwLjQgMTcgNTAuNiAxNC4yIDY3LjYtNi4xczE0LjItNTAuNi02LjEtNjcuNmMtMTItMTAtMzAuMS0yMi41LTUzLjItMzVDNDk3LjIgMjc4LjQgNDgxLjcgMjg4IDQ2NCAyODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtNC4zIC42LTguNCAxLjYtMTIuNEMzNzkuMSAyMTUuOSAzMzUuMyAyMDggMjg4IDIwOGMtNjAuMiAwLTExNC45IDEyLjktMTYwIDI5LjljMCAuNyAwIDEuNCAwIDIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGMtMTEuOCAwLTIyLjctNC4zLTMxLTExLjRjLTEzLjEgOC4xLTIzLjcgMTUuOS0zMS43IDIyLjVjLTIwLjQgMTctMjMuMSA0Ny4yLTYuMSA2Ny42czQ3LjIgMjMuMSA2Ny42IDYuMXpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDUyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQ2NHpNMjI0IDI4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek05NiAyNDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzY4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYURpYWdub3NlcyA9IGZhUGVyc29uRG90c0Zyb21MaW5lO1xuY29uc3QgZmFUcmFzaENhbkFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gtY2FuLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlLWFsdFwiXSwgXCJmODJhXCIsIFwiTTE2My44IDBMMjg0LjIgMGMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43TDMyMCAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDcuMi0xNC4zQzE0MC42IDYuOCAxNTEuNyAwIDE2My44IDB6TTMyIDEyOGwzODQgMCAwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzIwem0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlMMjAwIDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM0LjEgMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIl1cbn07XG5jb25zdCBmYVRyYXNoUmVzdG9yZUFsdCA9IGZhVHJhc2hDYW5BcnJvd1VwO1xuY29uc3QgZmFOYWlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbmFpcmEtc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTFmNlwiLCBcIk0xMjIuNiA0Ni4zYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVM2NCA0OS45IDY0IDY0bDAgMTkyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEwMC4yIDAgOTcuMiAxNDUuOGM3LjggMTEuNyAyMi40IDE3IDM1LjkgMTIuOXMyMi43LTE2LjUgMjIuNy0zMC42bDAtMTI4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwTDEyMi42IDQ2LjN6TTMwNS4xIDMyMGwxNC45IDAgMCAyMi4zTDMwNS4xIDMyMHpNMTg1LjUgMjU2TDEyOCAyNTZsMC04Ni4zTDE4NS41IDI1NnpcIl1cbn07XG5jb25zdCBmYUNhcnRBcnJvd0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FydC1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjE4XCIsIFwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsNDUuNSAwYzMuOCAwIDcuMSAyLjcgNy45IDYuNWw1MS42IDI3MWM2LjUgMzQgMzYuMiA1OC41IDcwLjcgNTguNUw0ODggMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yODguMyAwYy0xMS41IDAtMjEuNC04LjItMjMuNi0xOS41TDE3MC43IDI4OGwyODguNSAwYzMyLjYgMCA2MS4xLTIxLjggNjkuNS01My4zbDQxLTE1Mi4zQzU3Ni42IDU3IDU1Ny40IDMyIDUzMS4xIDMyTDM2MCAzMmwwIDEwMi4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzTDMxMiAzMiAxMjAuMSAzMkMxMTEgMTIuOCA5MS42IDAgNjkuNSAwTDI0IDB6TTE3NiA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zMzYtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYVdhbGtpZVRhbGtpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YWxraWUtdGFsa2llJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmOGVmXCIsIFwiTTExMiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNFM2NCAxMC43IDY0IDI0bDAgNzJMNDggOTZDMjEuNSA5NiAwIDExNy41IDAgMTQ0TDAgMzAwLjFjMCAxMi43IDUuMSAyNC45IDE0LjEgMzMuOWwzLjkgMy45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDMyIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTkyLjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWwzLjktMy45YzktOSAxNC4xLTIxLjIgMTQuMS0zMy45TDM4NCAxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsLTMyIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsLTQ4IDAgMC03MnptMCAxMzZsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFGaWxlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjIxLCBcImZpbGUtZWRpdFwiXSwgXCJmMzFjXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI1LjctODYuOCA4Ni44Yy0xMC4zIDEwLjMtMTcuNSAyMy4xLTIxIDM3LjJsLTE4LjcgNzQuOWMtMi4zIDkuMi0xLjggMTguOCAxLjMgMjcuNUw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpNNTQ5LjggMjM1LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yOS40IDI5LjQtNzEtNzEgMjkuNC0yOS40YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0zMTEuOSA0MTdMNDQxLjEgMjg3LjhsNzEgNzFMMzgyLjkgNDg3LjljLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6XCJdXG59O1xuY29uc3QgZmFGaWxlRWRpdCA9IGZhRmlsZVBlbjtcbmNvbnN0IGZhUmVjZWlwdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWNlaXB0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI5NTM0XSwgXCJmNTQzXCIsIFwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMy03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42czE0IDEyLjQgMTQgMjEuOGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNkwzMDQgNDcxLjZsLTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDE5MiA0NzEuNmwtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek05NiAxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMOTYgMTQ0ek04MCAzNTJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDk2IDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiAyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMOTYgMjQwelwiXVxufTtcbmNvbnN0IGZhU3F1YXJlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wZW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBlbi1zcXVhcmVcIiwgXCJwZW5jaWwtc3F1YXJlXCJdLCBcImYxNGJcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMS40IDIxLjQtNzEtNzEgMjEuNC0yMS40YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlMMjI1LjEgMTgzLjhsNzEgNzFMMTkwLjkgMzU5LjljLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6XCJdXG59O1xuY29uc3QgZmFQZW5TcXVhcmUgPSBmYVNxdWFyZVBlbjtcbmNvbnN0IGZhUGVuY2lsU3F1YXJlID0gZmFTcXVhcmVQZW47XG5jb25zdCBmYVN1aXRjYXNlUm9sbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWl0Y2FzZS1yb2xsaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWMxXCIsIFwiTTE0NCA1NmMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6bTE3NiA3MmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE1MiAwQzEyMS4xIDAgOTYgMjUuMSA5NiA1NmwwIDcyLTMyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NHpNMTEyIDIyNGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgMTI4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1M2ZcIiwgXCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xTDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42bDI5LjcgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25Eb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA3OFwiLCBcIk0yMzMuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAzMzguNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeUZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1mdWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjY3LCBcImJhdHRlcnlcIiwgXCJiYXR0ZXJ5LTVcIl0sIFwiZjI0MFwiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTM2OCA5Nkw5NiAxOTJsMCAxMjggMzUyIDAgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5ID0gZmFCYXR0ZXJ5RnVsbDtcbmNvbnN0IGZhQmF0dGVyeTUgPSBmYUJhdHRlcnlGdWxsO1xuY29uc3QgZmFTa3VsbENyb3NzYm9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2t1bGwtY3Jvc3Nib25lcycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODM2OSwgOTc2MF0sIFwiZjcxNFwiLCBcIk0zNjggMTI4YzAgNDQuNC0yNS40IDgzLjUtNjQgMTA2LjRsMCAyMS42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIxLjZjLTM4LjYtMjMtNjQtNjIuMS02NC0xMDYuNEM4MCA1Ny4zIDE0NC41IDAgMjI0IDBzMTQ0IDU3LjMgMTQ0IDEyOHpNMTY4IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE0NC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zLjQgMjczLjdjNy45LTE1LjggMjcuMS0yMi4yIDQyLjktMTQuM0wyMjQgMzQ4LjJsMTc3LjctODguOGMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zczEuNSAzNS0xNC4zIDQyLjlMMjk1LjYgMzg0bDEzNC44IDY3LjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0wyMjQgNDE5LjggNDYuMyA1MDguNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOUwxNTIuNCAzODQgMTcuNyAzMTYuNkMxLjkgMzA4LjctNC41IDI4OS41IDMuNCAyNzMuN3pcIl1cbn07XG5jb25zdCBmYUNvZGVDb21wYXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZGUtY29tcGFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzYVwiLCBcIk0zMjAgNDg4YzAgOS41LTUuNiAxOC4xLTE0LjIgMjEuOXMtMTguOCAyLjMtMjUuOC00LjFsLTgwLTcyYy01LjEtNC42LTcuOS0xMS03LjktMTcuOHMyLjktMTMuMyA3LjktMTcuOGw4MC03MmM3LTYuMyAxNy4yLTcuOSAyNS44LTQuMXMxNC4yIDEyLjQgMTQuMiAyMS45bDAgNDAgMTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2Ni43QzM3MS43IDE0MSAzNTIgMTEyLjggMzUyIDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NjQgMzIwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNiAwIDAgNDB6TTQ1NiA4MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xOTIgMjRjMC05LjUgNS42LTE4LjEgMTQuMi0yMS45czE4LjgtMi4zIDI1LjggNC4xbDgwIDcyYzUuMSA0LjYgNy45IDExIDcuOSAxNy44cy0yLjkgMTMuMy03LjkgMTcuOGwtODAgNzJjLTcgNi4zLTE3LjIgNy45LTI1LjggNC4xcy0xNC4yLTEyLjQtMTQuMi0yMS45bDAtNDAtMTYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxNjYuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zYzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNDggMTkyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2IDAgMC00MHpNNTYgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0VWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC11bCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1kb3RzXCJdLCBcImYwY2FcIiwgXCJNNjQgMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTY0IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ4LTIwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbmNvbnN0IGZhTGlzdERvdHMgPSBmYUxpc3RVbDtcbmNvbnN0IGZhU2Nob29sTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2ZlwiLCBcIk0zMDIuMiA1LjRjMTAuNy03LjIgMjQuOC03LjIgMzUuNSAwTDQ3My43IDk2IDU5MiA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnMtMTEyIDUwLjEtMTEyIDExMmwwIDI0LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRsLTYzLjcgMC0uMyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDY0IDBzMCAwIDAgMEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDExOC4zIDBMMzAyLjIgNS40ek04MCAyMDhsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMCAxMjhsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTcyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0xNi0xMjBsMCAxNiAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0xOTIgOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMC00OHpcIl1cbn07XG5jb25zdCBmYVRvd2VyQ2VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3dlci1jZWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTg1XCIsIFwiTTYyLjYgMi4zQzQ2LjItNC4zIDI3LjYgMy42IDIwLjkgMjBDNy40IDUzLjQgMCA4OS45IDAgMTI4czcuNCA3NC42IDIwLjkgMTA4YzYuNiAxNi40IDI1LjMgMjQuMyA0MS43IDE3LjdTODYuOSAyMjguNCA4MC4zIDIxMkM2OS44IDE4Ni4xIDY0IDE1Ny44IDY0IDEyOHM1LjgtNTguMSAxNi4zLTg0Qzg2LjkgMjcuNiA3OSA5IDYyLjYgMi4zem00NTAuOCAwQzQ5NyA5IDQ4OS4xIDI3LjYgNDk1LjcgNDRDNTA2LjIgNjkuOSA1MTIgOTguMiA1MTIgMTI4cy01LjggNTguMS0xNi4zIDg0Yy02LjYgMTYuNCAxLjMgMzUgMTcuNyA0MS43czM1LTEuMyA0MS43LTE3LjdjMTMuNS0zMy40IDIwLjktNjkuOSAyMC45LTEwOHMtNy40LTc0LjYtMjAuOS0xMDhDNTQ4LjQgMy42IDUyOS44LTQuMyA1MTMuNCAyLjN6TTM0MC4xIDE2NS4yYzcuNS0xMC41IDExLjktMjMuMyAxMS45LTM3LjJjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAxMy45IDQuNCAyNi43IDExLjkgMzcuMkw5OC45IDQ2Ni44Yy03LjMgMTYuMS0uMiAzNS4xIDE1LjkgNDIuNHMzNS4xIC4yIDQyLjQtMTUuOUwxNzcuNyA0NDhsMjIwLjYgMCAyMC42IDQ1LjJjNy4zIDE2LjEgMjYuMyAyMy4yIDQyLjQgMTUuOXMyMy4yLTI2LjMgMTUuOS00Mi40TDM0MC4xIDE2NS4yek0zNjkuMiAzODRsLTE2Mi40IDAgMTQuNS0zMiAxMzMuMyAwIDE0LjUgMzJ6TTI4OCAyMDUuM0wzMjUuNiAyODhsLTc1LjIgMEwyODggMjA1LjN6TTE2My4zIDczLjZjNS4zLTEyLjEtLjItMjYuMy0xMi40LTMxLjZzLTI2LjMgLjItMzEuNiAxMi40QzEwOS41IDc3IDEwNCAxMDEuOSAxMDQgMTI4czUuNSA1MSAxNS4zIDczLjZjNS4zIDEyLjEgMTkuNSAxNy43IDMxLjYgMTIuNHMxNy43LTE5LjUgMTIuNC0zMS42QzE1NiAxNjUuOCAxNTIgMTQ3LjQgMTUyIDEyOHM0LTM3LjggMTEuMy01NC40ek00NTYuNyA1NC40Yy01LjMtMTIuMS0xOS41LTE3LjctMzEuNi0xMi40cy0xNy43IDE5LjUtMTIuNCAzMS42QzQyMCA5MC4yIDQyNCAxMDguNiA0MjQgMTI4cy00IDM3LjgtMTEuMyA1NC40Yy01LjMgMTIuMSAuMiAyNi4zIDEyLjQgMzEuNnMyNi4zLS4yIDMxLjYtMTIuNEM0NjYuNSAxNzkgNDcyIDE1NC4xIDQ3MiAxMjhzLTUuNS01MS0xNS4zLTczLjZ6XCJdXG59O1xuY29uc3QgZmFEb3duTG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb3duLWxvbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImxvbmctYXJyb3ctYWx0LWRvd25cIl0sIFwiZjMwOVwiLCBcIk0yIDMzNC41Yy0zLjggOC44LTIgMTkgNC42IDI2bDEzNiAxNDRjNC41IDQuOCAxMC44IDcuNSAxNy40IDcuNXMxMi45LTIuNyAxNy40LTcuNWwxMzYtMTQ0YzYuNi03IDguNC0xNy4yIDQuNi0yNnMtMTIuNS0xNC41LTIyLTE0LjVsLTcyIDAgMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMjg4LTcyIDBjLTkuNiAwLTE4LjIgNS43LTIyIDE0LjV6XCJdXG59O1xuY29uc3QgZmFMb25nQXJyb3dBbHREb3duID0gZmFEb3duTG9uZztcbmNvbnN0IGZhUmFua2luZ1N0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFua2luZy1zdGFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTYxXCIsIFwiTTM1My44IDU0LjFMMzMwLjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMEwyODYuMiA1NC4xbC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptNDE2IDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2hlc3NLaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWtpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODE4XSwgXCJmNDNmXCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDQ4IDE1MiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwYzAgNS4zLTEgMTAuNS0zLjEgMTUuNEwzNjggNDAwIDgwIDQwMCAzLjEgMjE1LjRDMSAyMTAuNSAwIDIwNS4zIDAgMjAwYzAtMjIuMSAxNy45LTQwIDQwLTQwbDE1MiAwIDAtNDgtMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM4LjYgNDczLjRMODAgNDMybDI4OCAwIDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZMNTQuNiA1MTJDNDIuMSA1MTIgMzIgNTAxLjkgMzIgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkhhcmFzc2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24taGFyYXNzaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTQ5XCIsIFwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU5LjQgMzA0LjVMODggMjU2LjkgODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQ0LjcgNDcuNCA1Ny4xYzExLjMgMTMuNiAzMS41IDE1LjUgNDUuMSA0LjJzMTUuNS0zMS41IDQuMi00NS4xbC03My43LTg4LjljLTE4LjItMjItNDUuMy0zNC43LTczLjktMzQuN2wtMzUuOSAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOXpNNDgwIDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NjQgMzQ0bDAgNTguNy00MS40LTQxLjRjLTcuMy03LjMtMTcuNi0xMC42LTI3LjgtOXMtMTguOSA4LjEtMjMuNSAxNy4zbC00OCA5NmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zTDQwOC44IDQzOGw1NC43IDU0LjdjMTIuNCAxMi40IDI5LjEgMTkuMyA0Ni42IDE5LjNjMzYuNCAwIDY1LjktMjkuNSA2NS45LTY1LjlMNTc2IDM0NGMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NnpNMjg4IDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bS0uOCA0OS43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ycy0uNyAxNy41IDcuMiAyMS41bDQ4IDI0YzcuOSA0IDE3LjUgLjcgMjEuNS03LjJzLjctMTcuNS03LjItMjEuNWwtNDgtMjR6XCJdXG59O1xuY29uc3QgZmFCcmF6aWxpYW5SZWFsU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmF6aWxpYW4tcmVhbC1zaWduJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNDZjXCIsIFwiTTQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguMmMxMi41IDIuMyAyNC43IDYuNCAzNi4yIDEyLjFsMTAuMSA1LjFjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM2wtMTAuMi01LjFjLTkuOS01LTIwLjktNy41LTMyLTcuNWwtMS43IDBjLTI5LjggMC01My45IDI0LjEtNTMuOSA1My45YzAgMjIgMTMuNCA0MS44IDMzLjkgNTBsNTIgMjAuOGM0NC43IDE3LjkgNzQuMSA2MS4yIDc0LjEgMTA5LjRsMCAzLjRjMCA1MS4yLTMzLjYgOTQuNi04MCAxMDkuMmwwIDIxLjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOS40Yy0xNS0zLjUtMjkuNC05LjctNDIuMy0xOC4zbC0yMy40LTE1LjZjLTE0LjctOS44LTE4LjctMjkuNy04LjktNDQuNHMyOS43LTE4LjcgNDQuNC04LjlMMzYxLjIgMzg5YzEwLjggNy4yIDIzLjQgMTEgMzYuMyAxMWMyNy45IDAgNTAuNS0yMi42IDUwLjUtNTAuNWwwLTMuNGMwLTIyLTEzLjQtNDEuOC0zMy45LTUwbC01Mi0yMC44QzMxNy4zIDI1Ny40IDI4OCAyMTQuMSAyODggMTY1LjlDMjg4IDExNCAzMjEuNSA3MCAzNjggNTQuMkwzNjggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjAgNjQgMzIwbDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDAgMjg4IDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwTDY0IDk2bDAgMTYwelwiXVxufTtcbmNvbnN0IGZhTGFuZG1hcmtEb21lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhbmRtYXJrLWRvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhbmRtYXJrLWFsdFwiXSwgXCJmNzUyXCIsIFwiTTI0OCAwbDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMC43QzM2OC40IDQ4LjEgNDMxLjkgMTExLjYgNDQ1LjMgMTkybDIuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyLjcgMEM4MC4xIDExMS42IDE0My42IDQ4LjEgMjI0IDM0LjdMMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek02NCAyODhsNjQgMCAwIDEyOCA0MCAwIDAtMTI4IDY0IDAgMCAxMjggNDggMCAwLTEyOCA2NCAwIDAgMTI4IDQwIDAgMC0xMjggNjQgMCAwIDEzMi4zYy42IC4zIDEuMiAuNyAxLjggMS4xbDQ4IDMyYzExLjcgNy44IDE3IDIyLjQgMTIuOSAzNS45UzQ5NC4xIDUxMiA0ODAgNTEyTDMyIDUxMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFMNjQgMjg4elwiXVxufTtcbmNvbnN0IGZhTGFuZG1hcmtBbHQgPSBmYUxhbmRtYXJrRG9tZTtcbmNvbnN0IGZhQXJyb3dVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzg1OTNdLCBcImYwNjJcIiwgXCJNMjE0LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4yIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43TDMyOS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFUdiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0dicsXG4gIGljb246IFs2NDAsIDUxMiwgWzYzNzE3LCBcInRlbGV2aXNpb25cIiwgXCJ0di1hbHRcIl0sIFwiZjI2Y1wiLCBcIk02NCA2NGwwIDI4OCA1MTIgMCAwLTI4OEw2NCA2NHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNTc2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xMjggNDQ4bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVRlbGV2aXNpb24gPSBmYVR2O1xuY29uc3QgZmFUdkFsdCA9IGZhVHY7XG5jb25zdCBmYVNocmltcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaHJpbXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk0MjRdLCBcImU0NDhcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnMyOC43IDY0IDY0IDY0bDEgMGMzLjcgODguOSA3NyAxNjAgMTY3IDE2MGw1NiAwIDAtMTkyLTI0IDBMODguOCAxMjggNjQgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQwMCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDY0IDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMWMwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42YzAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFMaXN0Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGFza3NcIl0sIFwiZjBhZVwiLCBcIk0xNTIuMSAzOC4yYzkuOSA4LjkgMTAuNyAyNCAxLjggMzMuOWwtNzIgODBjLTQuNCA0LjktMTAuNiA3LjgtMTcuMiA3LjlzLTEyLjktMi40LTE3LjYtN0w3IDExM0MtMi4zIDEwMy42LTIuMyA4OC40IDcgNzlzMjQuNi05LjQgMzMuOSAwbDIyLjEgMjIuMSA1NS4xLTYxLjJjOC45LTkuOSAyNC0xMC43IDMzLjktMS44em0wIDE2MGM5LjkgOC45IDEwLjcgMjQgMS44IDMzLjlsLTcyIDgwYy00LjQgNC45LTEwLjYgNy44LTE3LjIgNy45cy0xMi45LTIuNC0xNy42LTdMNyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi4xIDIyLjEgNTUuMS02MS4yYzguOS05LjkgMjQtMTAuNyAzMy45LTEuOHpNMjI0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2MCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDggMzY4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIl1cbn07XG5jb25zdCBmYVRhc2tzID0gZmFMaXN0Q2hlY2s7XG5jb25zdCBmYUp1Z0RldGVyZ2VudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqdWctZGV0ZXJnZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTE5XCIsIFwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyczEwLjctMjQgMjQtMjRsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtdXNlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTQyLCBcInVzZXItY2lyY2xlXCJdLCBcImYyYmRcIiwgXCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yYzM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6XCJdXG59O1xuY29uc3QgZmFVc2VyQ2lyY2xlID0gZmFDaXJjbGVVc2VyO1xuY29uc3QgZmFVc2VyU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItc2hpZWxkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA1XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzEuOCAwIDMuNS0uMiA1LjMtLjVjLTc2LjMtNTUuMS05OS44LTE0MS0xMDMuMS0yMDAuMmMtMTYuMS00LjgtMzMuMS03LjMtNTAuNy03LjNsLTkxLjQgMHptMzA4LjgtNzguM2wtMTIwIDQ4QzM1OCAyNzcuNCAzNTIgMjg2LjIgMzUyIDI5NmMwIDYzLjMgMjUuOSAxNjguOCAxMzQuOCAyMTQuMmM1LjkgMi41IDEyLjYgMi41IDE4LjUgMEM2MTQuMSA0NjQuOCA2NDAgMzU5LjMgNjQwIDI5NmMwLTkuOC02LTE4LjYtMTUuMS0yMi4zbC0xMjAtNDhjLTUuNy0yLjMtMTIuMS0yLjMtMTcuOCAwek01OTEuNCAzMTJjLTMuOSA1MC43LTI3LjIgMTE2LjctOTUuNCAxNDkuN2wwLTE4Ny44TDU5MS40IDMxMnpcIl1cbn07XG5jb25zdCBmYVdpbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjcyZVwiLCBcIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem02NCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NkwzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xMjggNTEybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyelwiXVxufTtcbmNvbnN0IGZhQ2FyQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLWJ1cnN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJjYXItY3Jhc2hcIl0sIFwiZjVlMVwiLCBcIk0xNzYgOGMtNi42IDAtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NEw1NS42IDY4LjljLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM3MtNC42IDEyLjItMS40IDE3LjlsMzkuNSA2OS4xTDEwLjkgMjA2LjRjLTUuNCAzLjctOCAxMC4zLTYuNSAxNi43czYuNyAxMS4yIDEzLjEgMTIuMmw3OC43IDEyLjJMOTAuNiAzMjdjLS41IDYuNSAzLjEgMTIuNyA5IDE1LjVzMTIuOSAxLjggMTcuOC0yLjZsMzUuMy0zMi41IDkuNS0zNS40IDEwLjQtMzguNmM4LTI5LjkgMzAuNS01Mi4xIDU3LjktNjAuOWw0MS01OS4yYzExLjMtMTYuMyAyNi40LTI4LjkgNDMuNS0zNy4yYy0uNC0uNi0uOC0xLjItMS4zLTEuOGMtNC4xLTUuMS0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0QzE4OC40IDEyIDE4Mi42IDggMTc2IDh6TTM2Ny43IDE2MS41bDEzNS42IDM2LjNjNi41IDEuOCAxMS4zIDcuNCAxMS44IDE0LjJsNC42IDU2LjUtMjAxLjUtNTQgMzIuMi00Ni42YzMuOC01LjYgMTAuOC04LjEgMTcuMy02LjR6bS02OS45LTMwbC00Ny45IDY5LjNjLTIxLjYgMy00MC4zIDE4LjYtNDYuMyA0MWwtMTAuNCAzOC42LTE2LjYgNjEuOC04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNmw4LjMtMzAuOSAyNDcuMyA2Ni4zLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45TDU5NSAzODhsMTAuNC0zOC42YzYtMjIuNC0yLjUtNDUuMi0xOS42LTU4LjdsLTYuOC04NGMtMi43LTMzLjctMjYuNC02Mi01OS03MC44TDM4NC4yIDk5LjdjLTMyLjctOC44LTY3LjMgNC04Ni41IDMxLjh6bS0xNyAxMzFhMjQgMjQgMCAxIDEgLTEyLjQgNDYuNCAyNCAyNCAwIDEgMSAxMi40LTQ2LjR6bTIxNy45IDgzLjJBMjQgMjQgMCAxIDEgNTQ1IDM1OC4xYTI0IDI0IDAgMSAxIC00Ni40LTEyLjR6XCJdXG59O1xuY29uc3QgZmFDYXJDcmFzaCA9IGZhQ2FyQnVyc3Q7XG5jb25zdCBmYVkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneScsXG4gIGljb246IFszODQsIDUxMiwgWzEyMV0sIFwiNTlcIiwgXCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43TDM3OCA4Mi42YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHpcIl1cbn07XG5jb25zdCBmYVBlcnNvblNub3dib2FyZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tc25vd2JvYXJkaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTM4LCBcInNub3dib2FyZGluZ1wiXSwgXCJmN2NlXCIsIFwiTTIwOS43IDMuNGMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zbDI1IDUwIDQyLjQgOC41YzE5LjUgMy45IDM3LjggMTIuMyA1My41IDI0LjVsMTI2LjEgOTguMWMxNCAxMC45IDE2LjUgMzEgNS42IDQ0LjlzLTMxIDE2LjUtNDQuOSA1LjZsLTcyLjEtNTYuMS03MS41IDMxLjggMzMuMSAyNy42YzIzLjIgMTkuMyAzMy41IDUwIDI2LjcgNzkuNGwtMTcuNCA3NS4yYy0yLjIgOS40LTguMiAxNi44LTE2LjEgMjFsODYuNSAzMy4xYzQuNiAxLjggOS40IDIuNiAxNC4zIDIuNmwyOC4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4LjIgMGMtMTAuOCAwLTIxLjQtMi0zMS41LTUuOEw2MC4xIDM3MS4zYy0xMS41LTQuNC0yMi0xMS4yLTMwLjgtMjBMNyAzMjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMi40IDIyLjRjNCA0IDguNyA3LjEgMTQgOS4xbDIyLjQgOC42Yy0uOC0xLjYtMS41LTMuMi0yLjEtNC45Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjVMMTkyIDI2NC45bDAtNTMuMmMwLTI0LjIgMTMuNy00Ni40IDM1LjQtNTcuMmw0NS4yLTIyLjYtNy41LTEuNWMtMTkuNC0zLjktMzUuOS0xNi41LTQ0LjctMzQuMWwtMjUtNTBjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjl6TTEzOSAzNTAuMWwxNTkgNjAuOWMtMi4xLTUuNi0yLjYtMTEuOS0xLjEtMTguMmwxNy40LTc1LjJjMS40LTUuOS0uNy0xMi01LjMtMTUuOWwtNTIuOC00NCAwIDE4LjhjMCAyMC43LTEzLjIgMzktMzIuOCA0NS41TDEzOSAzNTAuMXpNNDMyIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhU25vd2JvYXJkaW5nID0gZmFQZXJzb25Tbm93Ym9hcmRpbmc7XG5jb25zdCBmYVRydWNrRmFzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1mYXN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJzaGlwcGluZy1mYXN0XCJdLCBcImY0OGJcIiwgXCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA0OEwxNiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDIwOCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDE2MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwIDE3NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDIyNGwtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDE0NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDY0IDI4OGwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDEyOCAwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY0IDAtMzIgMC0xOC43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxMTQuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0w0MTYgOTZsMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEwxMTIgMHpNNTQ0IDIzNy4zbDAgMTguNy0xMjggMCAwLTk2IDUwLjcgMEw1NDQgMjM3LjN6TTE2MCAzNjhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIl1cbn07XG5jb25zdCBmYVNoaXBwaW5nRmFzdCA9IGZhVHJ1Y2tGYXN0O1xuY29uc3QgZmFGaXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zpc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMzFdLCBcImY1NzhcIiwgXCJNMTgwLjUgMTQxLjVDMjE5LjcgMTA4LjUgMjcyLjYgODAgMzM2IDgwczExNi4zIDI4LjUgMTU1LjUgNjEuNWMzOS4xIDMzIDY2LjkgNzIuNCA4MSA5OS44YzQuNyA5LjIgNC43IDIwLjEgMCAyOS4zYy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjhDNDUyLjMgNDAzLjUgMzk5LjQgNDMyIDMzNiA0MzJzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlTLTMgMzQ4LjcgNC4yIDMzNi4xTDUwIDI1NiA0LjIgMTc1LjljLTcuMi0xMi42LTUtMjguNCA1LjMtMzguNnMyNi4xLTEyLjIgMzguNy00LjlsODkuNyA1Mi4zYzEyLjItMTQuNiAyNi41LTI5LjQgNDIuNy00My4xek00NDggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFVc2VyR3JhZHVhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1ncmFkdWF0ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwMVwiLCBcIk0yMTkuMyAuNWMzLjEtLjYgNi4zLS42IDkuNCAwbDIwMCA0MEM0MzkuOSA0Mi43IDQ0OCA1Mi42IDQ0OCA2NHMtOC4xIDIxLjMtMTkuMyAyMy41TDM1MiAxMDIuOWwwIDU3LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhzLTEyOC01Ny4zLTEyOC0xMjhsMC01Ny4xTDQ4IDkzLjNsMCA2NS4xIDE1LjcgNzguNGMuOSA0LjctLjMgOS42LTMuMyAxMy4zcy03LjYgNS45LTEyLjQgNS45bC0zMiAwYy00LjggMC05LjMtMi4xLTEyLjQtNS45cy00LjMtOC42LTMuMy0xMy4zTDE2IDE1OC40bDAtNzEuOEM2LjUgODMuMyAwIDc0LjMgMCA2NEMwIDUyLjYgOC4xIDQyLjcgMTkuMyA0MC41bDIwMC00MHpNMTExLjkgMzI3LjdjMTAuNS0zLjQgMjEuOCAuNCAyOS40IDguNWw3MSA3NS41YzYuMyA2LjcgMTcgNi43IDIzLjMgMGw3MS03NS41YzcuNi04LjEgMTguOS0xMS45IDI5LjQtOC41QzQwMSAzNDguNiA0NDggNDA5LjQgNDQ4IDQ4MS4zYzAgMTctMTMuOCAzMC43LTMwLjcgMzAuN0wzMC43IDUxMkMxMy44IDUxMiAwIDQ5OC4yIDAgNDgxLjNjMC03MS45IDQ3LTEzMi43IDExMS45LTE1My42elwiXVxufTtcbmNvbnN0IGZhQ2lyY2xlSGFsZlN0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtaGFsZi1zdHJva2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NjgwLCBcImFkanVzdFwiXSwgXCJmMDQyXCIsIFwiTTQ0OCAyNTZjMC0xMDYtODYtMTkyLTE5Mi0xOTJsMCAzODRjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIl1cbn07XG5jb25zdCBmYUFkanVzdCA9IGZhQ2lyY2xlSGFsZlN0cm9rZTtcbmNvbnN0IGZhQ2xhcHBlcmJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsYXBwZXJib2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzMVwiLCBcIk00NDggMzJsLTg2LjEgMC0xIDEtMTI3IDEyNyA5Mi4xIDAgMS0xTDQ1My44IDMyLjNjLTEuOS0uMi0zLjgtLjMtNS44LS4zem02NCAxMjhsMC02NGMwLTE1LjEtNS4zLTI5LjEtMTQtNDBsLTEwNCAxMDRMNTEyIDE2MHpNMjk0LjEgMzJsLTkyLjEgMC0xIDFMNzMuOSAxNjBsOTIuMSAwIDEtMSAxMjctMTI3ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjQgNi4xIDAgMS0xIDEyNy0xMjdMNjQgMzJ6TTUxMiAxOTJMMCAxOTIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVSYWRpYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXJhZGlhdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NjIsIFwicmFkaWF0aW9uLWFsdFwiXSwgXCJmN2JhXCIsIFwiTTI1NiA2NGExOTIgMTkyIDAgMSAxIDAgMzg0IDE5MiAxOTIgMCAxIDEgMC0zODR6bTAgNDQ4QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDI1NmMwLTIwLjcgMTEuMy0zOC44IDI4LTQ4LjVsLTM2LTYyLjNjLTguOC0xNS4zLTI4LjctMjAuOC00Mi05Yy0yNS42IDIyLjYtNDMuOSA1My4zLTUwLjkgODguMUM5NS43IDI0MS41IDExMC4zIDI1NiAxMjggMjU2bDcyIDB6bTI4IDQ4LjVsLTM2IDYyLjRjLTguOCAxNS4zLTMuNiAzNS4yIDEzLjEgNDAuOGMxNiA1LjQgMzMuMSA4LjMgNTAuOSA4LjNzMzQuOS0yLjkgNTAuOS04LjNjMTYuNy01LjYgMjEuOS0yNS41IDEzLjEtNDAuOGwtMzYtNjIuNGMtOC4yIDQuOC0xNy44IDcuNS0yOCA3LjVzLTE5LjgtMi43LTI4LTcuNXpNMzEyIDI1Nmw3MiAwYzE3LjcgMCAzMi4zLTE0LjUgMjguOC0zMS44Yy03LTM0LjgtMjUuMy02NS41LTUwLjktODguMWMtMTMuMi0xMS43LTMzLjEtNi4zLTQyIDlsLTM2IDYyLjNjMTYuNyA5LjcgMjggMjcuOCAyOCA0OC41em0tNTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbmNvbnN0IGZhUmFkaWF0aW9uQWx0ID0gZmFDaXJjbGVSYWRpYXRpb247XG5jb25zdCBmYUJhc2ViYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2ViYWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzU4LCA5OTE4LCBcImJhc2ViYWxsLWJhbGxcIl0sIFwiZjQzM1wiLCBcIk02Mi43IDIyMy40Yy00LjggLjQtOS43IC42LTE0LjcgLjZjLTE1LjYgMC0zMC44LTItNDUuMi01LjlDMTkuMiAxMDcuMSAxMDcuMSAxOS4yIDIxOC4xIDIuOEMyMjIgMTcuMiAyMjQgMzIuNCAyMjQgNDhjMCA0LjktLjIgOS44LS42IDE0LjdjLS43IDguOCA1LjggMTYuNSAxNC42IDE3LjNzMTYuNS01LjggMTcuMy0xNC42Yy41LTUuNyAuNy0xMS41IC43LTE3LjNjMC0xNi41LTEuOS0zMi42LTUuNi00Ny45YzEuOCAwIDMuNy0uMSA1LjYtLjFDMzk3LjQgMCA1MTIgMTE0LjYgNTEyIDI1NmMwIDEuOSAwIDMuNy0uMSA1LjZjLTE1LjQtMy42LTMxLjQtNS42LTQ3LjktNS42Yy01LjggMC0xMS42IC4yLTE3LjMgLjdjLTguOCAuNy0xNS40IDguNS0xNC42IDE3LjNzOC41IDE1LjQgMTcuMyAxNC42YzQuOC0uNCA5LjctLjYgMTQuNy0uNmMxNS42IDAgMzAuOCAyIDQ1LjIgNS45QzQ5Mi44IDQwNC45IDQwNC45IDQ5Mi44IDI5My45IDUwOS4yQzI5MCA0OTQuOCAyODggNDc5LjYgMjg4IDQ2NGMwLTQuOSAuMi05LjggLjYtMTQuN2MuNy04LjgtNS44LTE2LjUtMTQuNi0xNy4zcy0xNi41IDUuOC0xNy4zIDE0LjZjLS41IDUuNy0uNyAxMS41LS43IDE3LjNjMCAxNi41IDEuOSAzMi42IDUuNiA0Ny45Yy0xLjggMC0zLjcgLjEtNS42IC4xQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2YzAtMS45IDAtMy43IC4xLTUuNkMxNS40IDI1NC4xIDMxLjUgMjU2IDQ4IDI1NmM1LjggMCAxMS42LS4yIDE3LjMtLjdjOC44LS43IDE1LjQtOC41IDE0LjYtMTcuM3MtOC41LTE1LjQtMTcuMy0xNC42ek0xMjEuMyAyMDhjLTggMy43LTExLjYgMTMuMi03LjkgMjEuMnMxMy4yIDExLjYgMjEuMiA3LjljNDUuMi0yMC44IDgxLjctNTcuMiAxMDIuNS0xMDIuNWMzLjctOCAuMi0xNy41LTcuOS0yMS4ycy0xNy41LS4yLTIxLjIgNy45Yy0xNy42IDM4LjMtNDguNSA2OS4yLTg2LjcgODYuN3ptMjc3LjIgNzQuN2MtMy43LTgtMTMuMi0xMS42LTIxLjItNy45Yy00NS4yIDIwLjgtODEuNyA1Ny4yLTEwMi41IDEwMi41Yy0zLjcgOC0uMiAxNy41IDcuOSAyMS4yczE3LjUgLjIgMjEuMi03LjljMTcuNi0zOC4zIDQ4LjUtNjkuMiA4Ni43LTg2LjdjOC0zLjcgMTEuNi0xMy4yIDcuOS0yMS4yelwiXVxufTtcbmNvbnN0IGZhQmFzZWJhbGxCYWxsID0gZmFCYXNlYmFsbDtcbmNvbnN0IGZhSmV0RmlnaHRlclVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2pldC1maWdodGVyLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTE4XCIsIFwiTTI3MC43IDkuN0MyNjguMiAzLjggMjYyLjQgMCAyNTYgMHMtMTIuMiAzLjgtMTQuNyA5LjdMMTk3LjIgMTEyLjZjLTMuNCA4LTUuMiAxNi41LTUuMiAyNS4ybDAgNzctMTQ0IDg0TDQ4IDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDU2IDAgMzIgMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNDQgMCAwIDMyLjdMMTMzLjUgNDY4Yy0zLjUgMy01LjUgNy40LTUuNSAxMmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwIDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0IDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC00LjYtMi05LTUuNS0xMkwzMjAgNDE2LjdsMC0zMi43IDE0NCAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgMC0zMiAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTguOC0xNDQtODQgMC03N2MwLTguNy0xLjgtMTcuMi01LjItMjUuMkwyNzAuNyA5Ljd6XCJdXG59O1xuY29uc3QgZmFEaWFncmFtUHJvamVjdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFncmFtLXByb2plY3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInByb2plY3QtZGlhZ3JhbVwiXSwgXCJmNTQyXCIsIFwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDE5MiAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTE5MiAwIDAgMTZjMCAxLjctLjEgMy40LS4zIDVMMjcyIDI4OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0xLjcgLjEtMy40IC4zLTVMMTQ0IDIyNGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHpcIl1cbn07XG5jb25zdCBmYVByb2plY3REaWFncmFtID0gZmFEaWFncmFtUHJvamVjdDtcbmNvbnN0IGZhQ29weSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3B5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMGM1XCIsIFwiTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHpcIl1cbn07XG5jb25zdCBmYVZvbHVtZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW1widm9sdW1lLW11dGVcIiwgXCJ2b2x1bWUtdGltZXNcIl0sIFwiZjZhOVwiLCBcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NGwwIDM4NGMwIDEyLjYtNy40IDI0LTE4LjkgMjkuMnMtMjUgMy4xLTM0LjQtNS4zTDEzMS44IDM1MiA2NCAzNTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjcuOCAwTDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQyNSAxNjdsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbmNvbnN0IGZhVm9sdW1lTXV0ZSA9IGZhVm9sdW1lWG1hcms7XG5jb25zdCBmYVZvbHVtZVRpbWVzID0gZmFWb2x1bWVYbWFyaztcbmNvbnN0IGZhSGFuZFNwYXJrbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtc3BhcmtsZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwNWRcIiwgXCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE5NS4xYy0xMS45IDQuOC0yMS4zIDE0LjktMjUgMjcuOGwtOC45IDMxLjJMNDc4LjkgMzkxQzQ2MC42IDM5Ni4zIDQ0OCA0MTMgNDQ4IDQzMmMwIDE4LjkgMTIuNSAzNS42IDMwLjYgNDAuOUM0NDguNCA0OTcuNCA0MDkuOSA1MTIgMzY4IDUxMmwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZMMjg4IDM1MmwtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN0wyODggMzg0bDcuMyAyNS40YzEuMSAzLjkgNC43IDYuNiA4LjcgNi42czcuNi0yLjcgOC43LTYuNkwzMjAgMzg0bDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdMMzIwIDM1MmwtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2bC0xMy44IDQ4LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1MzYgNDU2bC00OC4zLTEzLjhjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDhsMTMuOC00OC4zYzEuMy00LjYgNS41LTcuNyAxMC4yLTcuN3M4LjkgMy4xIDEwLjIgNy43TDU4NCA0MDh6XCJdXG59O1xuY29uc3QgZmFHcmlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImdyaXAtaG9yaXpvbnRhbFwiXSwgXCJmNThkXCIsIFwiTTEyOCAxMzZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgOTZDMTcuOSA5NiAwIDExMy45IDAgMTM2bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0wIDE5MmMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6bTMyLTE5MmwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTI4OCAzMjhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4em0zMi0xOTJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek00NDggMzI4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpcIl1cbn07XG5jb25zdCBmYUdyaXBIb3Jpem9udGFsID0gZmFHcmlwO1xuY29uc3QgZmFTaGFyZUZyb21TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUtZnJvbS1zcXVhcmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MTUwOSwgXCJzaGFyZS1zcXVhcmVcIl0sIFwiZjE0ZFwiLCBcIk0zNTIgMjI0bC00Ni41IDBjLTQ1IDAtODEuNSAzNi41LTgxLjUgODEuNWMwIDIyLjMgMTAuMyAzNC4zIDE5LjIgNDAuNWM2LjggNC43IDEyLjggMTIgMTIuOCAyMC4zYzAgOS44LTggMTcuOC0xNy44IDE3LjhsLTIuNSAwYy0yLjQgMC00LjgtLjQtNy4xLTEuNEMyMTAuOCAzNzQuOCAxMjggMzMzLjQgMTI4IDI0MGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NGw4MCAwIDAtNjEuM0MzNTIgMTUuNSAzNjcuNSAwIDM4Ni43IDBjOC42IDAgMTYuOCAzLjIgMjMuMiA4LjlMNTQ4LjEgMTMzLjNjNy42IDYuOCAxMS45IDE2LjUgMTEuOSAyNi43cy00LjMgMTkuOS0xMS45IDI2LjdsLTEzOSAxMjUuMWMtNS45IDUuMy0xMy41IDguMi0yMS40IDguMmwtMy43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTgwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgOTZ6XCJdXG59O1xuY29uc3QgZmFTaGFyZVNxdWFyZSA9IGZhU2hhcmVGcm9tU3F1YXJlO1xuY29uc3QgZmFDaGlsZENvbWJhdGFudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGlsZC1jb21iYXRhbnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNoaWxkLXJpZmxlXCJdLCBcImU0ZTBcIiwgXCJNMTc2IDEyOEE2NCA2NCAwIDEgMCAxNzYgMGE2NCA2NCAwIDEgMCAwIDEyOHptLTggMzUybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE3OS41TDI2MC45IDMyMWM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTUxLjctODIuMWMtMTcuNi0yNy45LTQ4LjMtNDQuOS04MS4yLTQ0LjlsLTEyLjMgMGMtMzMgMC02My43IDE2LjktODEuMiA0NC45TDM2LjkgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwTDEwNCAzMDAuNSAxMDQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OCAwTDQzMiAwIDQxNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDAgMTAwLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDAgMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsNTkuNSAwYzEwLjQgMCAxOC05LjggMTUuNS0xOS45TDQ4NCA0MDBsNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjNMNDgwIDE2MGMwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0NjQgMTZjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhQ2hpbGRSaWZsZSA9IGZhQ2hpbGRDb21iYXRhbnQ7XG5jb25zdCBmYUd1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUxOWJcIiwgXCJNNTI4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOEwzMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2TDAgMjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwIDBjMjAuOCAwIDM2LjEgMTkuNiAzMSAzOS44TDMzIDQ0MC4yYy0yLjQgOS42LS4yIDE5LjcgNS44IDI3LjVTNTQuMSA0ODAgNjQgNDgwbDk2IDBjMTQuNyAwIDI3LjUtMTAgMzEtMjQuMkwyMTcgMzUybDEwNC41IDBjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJMNDAwLjkgMjQwbDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEw0NzcuMyAyMDhsNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRMMjI5IDMwNGwxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVNxdWFyZVBob25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1waG9uZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicGhvbmUtc3F1YXJlXCJdLCBcImYwOThcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTAuNyA5Ni43YzkuNy0yLjYgMTkuOSAyLjMgMjMuNyAxMS42bDIwIDQ4YzMuNCA4LjIgMSAxNy42LTUuOCAyMy4yTDE2OCAyMzEuN2MxNi42IDM1LjIgNDUuMSA2My43IDgwLjMgODAuM2wyMC4yLTI0LjdjNS42LTYuOCAxNS05LjIgMjMuMi01LjhsNDggMjBjOS4zIDMuOSAxNC4yIDE0IDExLjYgMjMuN2wtMTIgNDRDMzM2LjkgMzc4IDMyOSAzODQgMzIwIDM4NEMxOTYuMyAzODQgOTYgMjgzLjcgOTYgMTYwYzAtOSA2LTE2LjkgMTQuNy0xOS4zbDQ0LTEyelwiXVxufTtcbmNvbnN0IGZhUGhvbmVTcXVhcmUgPSBmYVNxdWFyZVBob25lO1xuY29uc3QgZmFQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDEzMywgNjE1NDMsIFwiYWRkXCJdLCBcIjJiXCIsIFwiTTI1NiA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0NEw0OCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDAgMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC0xNDR6XCJdXG59O1xuY29uc3QgZmFBZGQgPSBmYVBsdXM7XG5jb25zdCBmYUV4cGFuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleHBhbmQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNjVcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNjR6TTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwek00NDggMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZ6XCJdXG59O1xuY29uc3QgZmFDb21wdXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wdXRlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRlNVwiLCBcIk0zODQgOTZsMCAyMjRMNjQgMzIwIDY0IDk2bDMyMCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy4zIDAtMTAuNyAzMkw5NiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTc0LjcgMC0xMC43LTMyTDM4NCAzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTQ2NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwem0xNiA2NGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tMTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3htYXJrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDczLCAxMDAwNSwgMTAwMDYsIDEwMDYwLCAyMTUsIFwiY2xvc2VcIiwgXCJtdWx0aXBseVwiLCBcInJlbW92ZVwiLCBcInRpbWVzXCJdLCBcImYwMGRcIiwgXCJNMzQyLjYgMTUwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDIxMC43IDg2LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE0Ni43IDI1NiA0MS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAzMDEuMyAyOTcuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy4zIDI1NiAzNDIuNiAxNTAuNnpcIl1cbn07XG5jb25zdCBmYUNsb3NlID0gZmFYbWFyaztcbmNvbnN0IGZhTXVsdGlwbHkgPSBmYVhtYXJrO1xuY29uc3QgZmFSZW1vdmUgPSBmYVhtYXJrO1xuY29uc3QgZmFUaW1lcyA9IGZhWG1hcms7XG5jb25zdCBmYUFycm93c1VwRG93bkxlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvd3NcIl0sIFwiZjA0N1wiLCBcIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40TDIyNCAyMjRsLTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjRMMjI0IDI4OGwwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40TDI4OCAyODhsMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNEwyODggMjI0bDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpcIl1cbn07XG5jb25zdCBmYUFycm93cyA9IGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0O1xuY29uc3QgZmFDaGFsa2JvYXJkVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFsa2JvYXJkLXVzZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNoYWxrYm9hcmQtdGVhY2hlclwiXSwgXCJmNTFjXCIsIFwiTTE2MCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjM5LjIgMGMtMTEuOC0yNS41LTI5LjktNDcuNS01Mi40LTY0bDk5LjYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA2NCAwIDAtMjg4TDIyNCA2NGwwIDQ5LjFDMjA1LjIgMTAyLjIgMTgzLjMgOTYgMTYwIDk2bDAtMzJ6bTAgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6TTEzMy4zIDM1Mmw1My4zIDBDMjYwLjMgMzUyIDMyMCA0MTEuNyAzMjAgNDg1LjNjMCAxNC43LTExLjkgMjYuNy0yNi43IDI2LjdMMjYuNyA1MTJDMTEuOSA1MTIgMCA1MDAuMSAwIDQ4NS4zQzAgNDExLjcgNTkuNyAzNTIgMTMzLjMgMzUyelwiXVxufTtcbmNvbnN0IGZhQ2hhbGtib2FyZFRlYWNoZXIgPSBmYUNoYWxrYm9hcmRVc2VyO1xuY29uc3QgZmFQZXNvU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXNvLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUyMjJcIiwgXCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0bDAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0IDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDgwIDBjNjguNCAwIDEyNy43LTM5IDE1Ni44LTk2bDE5LjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjcgMGMuNS01LjMgLjctMTAuNiAuNy0xNnMtLjItMTAuNy0uNy0xNmwuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOS4yIDBDMzAzLjcgNzEgMjQ0LjQgMzIgMTc2IDMyTDY0IDMyem0xOTAuNCA5Nkw5NiAxMjhsMC0zMiA4MCAwYzMwLjUgMCA1OC4yIDEyLjIgNzguNCAzMnpNOTYgMTkybDE5MC45IDBjLjcgNS4yIDEuMSAxMC42IDEuMSAxNnMtLjQgMTAuOC0xLjEgMTZMOTYgMjI0bDAtMzJ6bTE1OC40IDk2Yy0yMC4yIDE5LjgtNDcuOSAzMi03OC40IDMybC04MCAwIDAtMzIgMTU4LjQgMHpcIl1cbn07XG5jb25zdCBmYUJ1aWxkaW5nU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLXNoaWVsZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkOFwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE1OS00Mi40IDE3TDMwNCAyMjRsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDAgMjQuMiAwIDcuOGMwIC45IC4xIDEuNyAuMiAyLjZjMi4zIDU4LjEgMjQuMSAxNDQuOCA5OC43IDIwMS41Yy01LjggMi41LTEyLjIgMy45LTE4LjkgMy45bC05NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA4MC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4ek04MCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptODAgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNjQgMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem04MCAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjMuMSAyMjUuN2M1LjctMi4zIDEyLjEtMi4zIDE3LjggMGwxMjAgNDhDNTcwIDI3Ny40IDU3NiAyODYuMiA1NzYgMjk2YzAgNjMuMy0yNS45IDE2OC44LTEzNC44IDIxNC4yYy01LjkgMi41LTEyLjYgMi41LTE4LjUgMEMzMTMuOSA0NjQuOCAyODggMzU5LjMgMjg4IDI5NmMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zbDEyMC00OHpNNTI3LjQgMzEyTDQzMiAyNzMuOGwwIDE4Ny44YzY4LjItMzMgOTEuNS05OSA5NS40LTE0OS43elwiXVxufTtcbmNvbnN0IGZhQmFieSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWJ5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNzdjXCIsIFwiTTE1MiA4OGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSAxNTIgODh6TTM5LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDEzMS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVsMCAzNi4zLTE5MiAwIDAtMzYuM2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMNDguNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45em04OS44IDE4NC44bDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzcwIDQzOC42IDY4LjEgNDE3IDc5LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNkwyODQgNDE5LjRsLTI2LTM3LjJ6XCJdXG59O1xuY29uc3QgZmFVc2Vyc0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtbGluZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU5MlwiLCBcIk0yMTEuMiA5NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTMyIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4NS42IDBjMTAuMS0zOS40IDM4LjYtNzEuNSA3NS44LTg2LjZjLTkuNy02LTIxLjItOS40LTMzLjQtOS40bC05NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHptNDYxLjYgMzJsODIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwYy0xMS43IDAtMjIuNyAzLjEtMzIuMSA4LjZjMzguMSAxNC44IDY3LjQgNDcuMyA3Ny43IDg3LjR6TTM5MS4yIDIyNi40Yy02LjktMS42LTE0LjItMi40LTIxLjYtMi40bC05NiAwYy04LjUgMC0xNi43IDEuMS0yNC41IDMuMWMtMzAuOCA4LjEtNTUuNiAzMS4xLTY2LjEgNjAuOWMtMy41IDEwLTUuNSAyMC44LTUuNSAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTExLjItMS45LTIyLTUuNS0zMmMtMTAuOC0zMC43LTM2LjgtNTQuMi02OC45LTYxLjZ6TTU2My4yIDk2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMzIxLjYgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwek0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2elwiXVxufTtcbmNvbnN0IGZhUXVvdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3F1b3RlLWxlZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MjIwLCBcInF1b3RlLWxlZnQtYWx0XCJdLCBcImYxMGRcIiwgXCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMiAwLTMyIDAtNzJ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyIDAtMzIgMC03MnpcIl1cbn07XG5jb25zdCBmYVF1b3RlTGVmdEFsdCA9IGZhUXVvdGVMZWZ0O1xuY29uc3QgZmFUcmFjdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWN0b3InLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2NjhdLCBcImY3MjJcIiwgXCJNOTYgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjY2LjMgMGMyNi4yIDAgNDkuNyAxNS45IDU5LjQgNDAuMkwzNzMuNyAxNjAgNDgwIDE2MGwwLTMzLjhjMC0yNC44IDUuOC00OS4zIDE2LjktNzEuNmwyLjUtNWM3LjktMTUuOCAyNy4xLTIyLjIgNDIuOS0xNC4zczIyLjIgMjcuMSAxNC4zIDQyLjlsLTIuNSA1Yy02LjcgMTMuMy0xMC4xIDI4LTEwLjEgNDIuOWwwIDMzLjggNTYgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ1LjRjMCAxNi41LTguNSAzMS45LTIyLjYgNDAuN2wtNDMuMyAyNy4xYy0xNC4yLTUuOS0yOS44LTkuMi00Ni4xLTkuMmMtMzkuMyAwLTc0LjEgMTguOS05NiA0OGwtODAgMGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOC4yIDBjLTEuNyA0LjgtMy43IDkuNS01LjggMTQuMWw1LjggNS44YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0yMi42IDIyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01LjgtNS44Yy00LjYgMi4yLTkuMyA0LjEtMTQuMSA1LjhsMCA4LjJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOC4yYy00LjgtMS43LTkuNS0zLjctMTQuMS01LjhsLTUuOCA1LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQwLjIgNDQ5LjFjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDUuOC01LjhjLTIuMi00LjYtNC4xLTkuMy01LjgtMTQuMUwzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOC4yIDBjMS43LTQuOCAzLjctOS41IDUuOC0xNC4xbC01LjgtNS44Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wyMi42LTIyLjZjOS05IDIxLjktMTEuNSAzMy4xLTcuNmwwLS42IDAtMzIgMC05NnptMTcwLjMgMEwxNjAgNjRsMCA5NiAzMiAwIDExMi43IDBMMjY2LjMgNjR6TTE3NiAyNTZhODAgODAgMCAxIDAgMCAxNjAgODAgODAgMCAxIDAgMC0xNjB6TTUyOCA0NDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wIDY0Yy00OC42IDAtODgtMzkuNC04OC04OGMwLTI5LjggMTQuOC01Ni4xIDM3LjQtNzJjMTQuMy0xMC4xIDMxLjgtMTYgNTAuNi0xNmMyLjcgMCA1LjMgLjEgNy45IC4zYzQ0LjkgNCA4MC4xIDQxLjcgODAuMSA4Ny43YzAgNDguNi0zOS40IDg4LTg4IDg4elwiXVxufTtcbmNvbnN0IGZhVHJhc2hBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlXCJdLCBcImY4MjlcIiwgXCJNMTYzLjggMEwyODQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgNy4yLTE0LjNDMTQwLjYgNi44IDE1MS43IDAgMTYzLjggMHpNMzIgMTI4bDM4NCAwTDM5NC44IDQ2N2MtMS42IDI1LjMtMjIuNiA0NS00Ny45IDQ1bC0yNDUuOCAwYy0yNS4zIDAtNDYuMy0xOS43LTQ3LjktNDVMMzIgMTI4em0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlMMjAwIDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM0LjEgMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIl1cbn07XG5jb25zdCBmYVRyYXNoUmVzdG9yZSA9IGZhVHJhc2hBcnJvd1VwO1xuY29uc3QgZmFBcnJvd0Rvd25VcExvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi11cC1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGIwXCIsIFwiTTE1MC42IDUwMi42bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE2MCA0MDIuNyAxNjAgMjg4bDI1NiAwIDAtMTZjMC0xNy4yIDMuOS0zMy41IDEwLjgtNDhMMzUyIDIyNGwwLTExNC43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDEwOS4zIDI4OCAyMjRsLTEyOCAwLTY0IDAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMTE0LjdMNTQuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE2MCAxOTJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjggNjQgMHpNMjg4IDMyMGwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4LTY0IDB6bTI0MC04MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMybDAgNDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJdXG59O1xuY29uc3QgZmFMaW5lc0xlYW5pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGluZXMtbGVhbmluZycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTUxZVwiLCBcIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhUnVsZXJDb21iaW5lZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci1jb21iaW5lZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU0NlwiLCBcIk0uMiA0NjguOUMyLjcgNDkzLjEgMjMuMSA1MTIgNDggNTEybDk2IDAgMzIwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzNjhsMCA5NmMwIDEuNyAuMSAzLjMgLjIgNC45elwiXVxufTtcbmNvbnN0IGZhQ29weXJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvcHlyaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE2OV0sIFwiZjFmOVwiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTk5LjQgMzEyLjZjMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNTAgNTAtMTMxIDUwLTE4MSAwcy01MC0xMzEgMC0xODFzMTMxLTUwIDE4MSAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTMxLjItMzEuMi04MS45LTMxLjItMTEzLjEgMHMtMzEuMiA4MS45IDAgMTEzLjF6XCJdXG59O1xuY29uc3QgZmFFcXVhbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXF1YWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjI3NjRdLCBcIjNkXCIsIFwiTTQ4IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw0OCAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM1MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDQ4IDMyMHpcIl1cbn07XG5jb25zdCBmYUJsZW5kZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxlbmRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUxN1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMGw2NCAwIDMyIDBMNDcwLjEgMGMyMS4xIDAgMzYuNCAyMC4xIDMwLjkgNDAuNEw0OTQuNSA2NCAzMzYgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTQ5LjggMC0xNy41IDY0TDMzNiAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTIzLjYgMC0xNy41IDY0TDMzNiAyNTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTcuNSAwTDQxNiAzNTJsLTI1NiAwLTguNy05Nkw2NCAyNTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE0NS41IDE5MkwxMzMuOCA2NCA2NCA2NGwwIDEyOCA4MS41IDB6TTE0NCAzODRsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE0NCA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFUZWV0aCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZWV0aCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjYyZVwiLCBcIk0wIDEyOEMwIDc1IDQzIDMyIDk2IDMybDM4NCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjh6bTE3NiA0OGwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHptMTc2LTQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDggMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek05NiAzODRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptODAtNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0em0xNzYgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptODAtMTc2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em00OCAxNzZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHpcIl1cbn07XG5jb25zdCBmYVNoZWtlbFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hla2VsLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MzYyLCBcImlsc1wiLCBcInNoZWtlbFwiLCBcInNoZXFlbFwiLCBcInNoZXFlbC1zaWduXCJdLCBcImYyMGJcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDk2bDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwelwiXVxufTtcbmNvbnN0IGZhSWxzID0gZmFTaGVrZWxTaWduO1xuY29uc3QgZmFTaGVrZWwgPSBmYVNoZWtlbFNpZ247XG5jb25zdCBmYVNoZXFlbCA9IGZhU2hla2VsU2lnbjtcbmNvbnN0IGZhU2hlcWVsU2lnbiA9IGZhU2hla2VsU2lnbjtcbmNvbnN0IGZhTWFwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODUwNiwgNjIwNzJdLCBcImYyNzlcIiwgXCJNMzg0IDQ3Ni4xTDE5MiA0MjEuMmwwLTM4NS4zTDM4NCA5MC44bDAgMzg1LjN6bTMyLTEuMmwwLTM4Ni41TDU0My4xIDM3LjVjMTUuOC02LjMgMzIuOSA1LjMgMzIuOSAyMi4zbDAgMzM0LjhjMCA5LjgtNiAxOC42LTE1LjEgMjIuM0w0MTYgNDc0Ljh6TTE1LjEgOTUuMUwxNjAgMzcuMmwwIDM4Ni41TDMyLjkgNDc0LjVDMTcuMSA0ODAuOCAwIDQ2OS4yIDAgNDUyLjJMMCAxMTcuNGMwLTkuOCA2LTE4LjYgMTUuMS0yMi4zelwiXVxufTtcbmNvbnN0IGZhUm9ja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEzNVwiLCBcIk0xNTYuNiAzODQuOUwxMjUuNyAzNTRjLTguNS04LjUtMTEuNS0yMC44LTcuNy0zMi4yYzMtOC45IDctMjAuNSAxMS44LTMzLjhMMjQgMjg4Yy04LjYgMC0xNi42LTQuNi0yMC45LTEyLjFzLTQuMi0xNi43IC4yLTI0LjFsNTIuNS04OC41YzEzLTIxLjkgMzYuNS0zNS4zIDYxLjktMzUuM2w4Mi4zIDBjMi40LTQgNC44LTcuNyA3LjItMTEuM0MyODkuMS00LjEgNDExLjEtOC4xIDQ4My45IDUuM2MxMS42IDIuMSAyMC42IDExLjIgMjIuOCAyMi44YzEzLjQgNzIuOSA5LjMgMTk0LjgtMTExLjQgMjc2LjdjLTMuNSAyLjQtNy4zIDQuOC0xMS4zIDcuMmwwIDgyLjNjMCAyNS40LTEzLjQgNDktMzUuMyA2MS45bC04OC41IDUyLjVjLTcuNCA0LjQtMTYuNiA0LjUtMjQuMSAuMnMtMTIuMS0xMi4yLTEyLjEtMjAuOWwwLTEwNy4yYy0xNC4xIDQuOS0yNi40IDguOS0zNS43IDExLjljLTExLjIgMy42LTIzLjQgLjUtMzEuOC03Ljh6TTM4NCAxNjhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhUGhvdG9GaWxtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob3RvLWZpbG0nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcInBob3RvLXZpZGVvXCJdLCBcImY4N2NcIiwgXCJNMjU2IDBMNTc2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIyNGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDc2IDEwNi43QzQ3MS41IDEwMCA0NjQgOTYgNDU2IDk2cy0xNS41IDQtMjAgMTAuN2wtNTYgODRMMzYyLjcgMTY5Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmw4MCAwIDQ4IDAgMTQ0IDBjOC45IDAgMTctNC45IDIxLjItMTIuN3MzLjctMTcuMy0xLjItMjQuNmwtOTYtMTQ0ek0zMzYgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNjQgMTI4bDk2IDAgMCAyNTYgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE2MCAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NHptOCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0wIDEwNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0wIDEwNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMzYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG5jb25zdCBmYVBob3RvVmlkZW8gPSBmYVBob3RvRmlsbTtcbmNvbnN0IGZhRm9sZGVyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjVkXCIsIFwiTTQ0OCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEyOCAwYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwelwiXVxufTtcbmNvbnN0IGZhU3RvcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RvcmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NGVcIiwgXCJNNTQ3LjYgMTAzLjhMNDkwLjMgMTMuMUM0ODUuMiA1IDQ3Ni4xIDAgNDY2LjQgMEwxMDkuNiAwQzk5LjkgMCA5MC44IDUgODUuNyAxMy4xTDI4LjMgMTAzLjhjLTI5LjYgNDYuOC0zLjQgMTExLjkgNTEuOSAxMTkuNGM0IC41IDguMSAuOCAxMi4xIC44YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjIgMCA0OS4zLTExLjQgNjUuMi0yOWMxNiAxNy42IDM5LjEgMjkgNjUuMiAyOWM0LjEgMCA4LjEtLjMgMTIuMS0uOGM1NS41LTcuNCA4MS44LTcyLjUgNTIuMS0xMTkuNHpNNDk5LjcgMjU0LjljMCAwIDAgMC0uMSAwYy01LjMgLjctMTAuNyAxLjEtMTYuMiAxLjFjLTEyLjQgMC0yNC4zLTEuOS0zNS40LTUuM0w0NDggMzg0bC0zMjAgMCAwLTEzMy40Yy0xMS4yIDMuNS0yMy4yIDUuNC0zNS42IDUuNGMtNS41IDAtMTEtLjQtMTYuMy0xLjFsLS4xIDBjLTQuMS0uNi04LjEtMS4zLTEyLTIuM0w2NCAzODRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDAtMTMxLjRjLTQgMS04IDEuOC0xMi4zIDIuM3pcIl1cbn07XG5jb25zdCBmYUFycm93VHJlbmRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy10cmVuZC11cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5OFwiLCBcIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuN0wzNDIuNiAzNzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYwelwiXVxufTtcbmNvbnN0IGZhUGx1Z0NpcmNsZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTVlXCIsIFwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJsMCA5NiA2NCAwIDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCA2Ny4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Ny4yYzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MHpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnpcIl1cbn07XG5jb25zdCBmYVNpZ25IYW5naW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ24taGFuZ2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnblwiXSwgXCJmNGQ5XCIsIFwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHptOTYgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFTaWduID0gZmFTaWduSGFuZ2luZztcbmNvbnN0IGZhQmV6aWVyQ3VydmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmV6aWVyLWN1cnZlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTViXCIsIFwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDRMMTIxLjYgODRDMTExLjIgNjIuNyA4OS4zIDQ4IDY0IDQ4QzI4LjcgNDggMCA3Ni43IDAgMTEyczI4LjcgNjQgNjQgNjRjMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2bDY2LjkgMGMtNTguOSAzOS42LTk4LjkgMTA1LTEwNCAxODBMODAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy4zIDBjNS45LTY3IDQ4LjUtMTIzLjQgMTA3LjUtMTQ5LjFjOC42IDEyLjcgMjMuMiAyMS4xIDM5LjggMjEuMWw2NCAwYzE2LjYgMCAzMS4xLTguNCAzOS44LTIxLjFjNTkgMjUuNyAxMDEuNiA4Mi4xIDEwNy41IDE0OS4xbC0zLjMgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuNSAwYy01LTc1LTQ1LjEtMTQwLjQtMTA0LTE4MGw2Ni45IDBjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2TDQwMCA4NGwwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHpcIl1cbn07XG5jb25zdCBmYUJlbGxTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWxsLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4Mjc3LCA2MTk0M10sIFwiZjFmNlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC05MC4yLTcwLjdjLjItLjQgLjQtLjkgLjYtMS4zYzUuMi0xMS41IDMuMS0yNS01LjMtMzQuNGwtNy40LTguM0M0OTcuMyAzMTkuMiA0ODAgMjczLjkgNDgwIDIyNi44bDAtMTguOGMwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOEwzNTIgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOS4yYy00Mi42IDguNi03OSAzNC4yLTEwMiA2OS4zTDM4LjggNS4xek00MDYuMiA0MTZMMTYwIDIyMi4xbDAgNC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzExNS40IDQxNiAxMjggNDE2bDI3OC4yIDB6bS00MC45IDc3LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM2wtNjQgMC02NCAwYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zczI4LjMgMTguNyA0NS4zIDE4LjdzMzMuMy02LjcgNDUuMy0xOC43elwiXVxufTtcbmNvbnN0IGZhVGFibGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1widGFibGV0LWFuZHJvaWRcIl0sIFwiZjNmYlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgNDMybDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTk2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFUYWJsZXRBbmRyb2lkID0gZmFUYWJsZXQ7XG5jb25zdCBmYVNjaG9vbEZsYWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWZsYWcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NmVcIiwgXCJNMjg4IDBMNDAwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2bC03OS4zIDAgODkuNiA2NEw1MTIgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNzYgMCAwLTExMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDExMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEwMS43IDBMMjU2IDk1LjUgMjU2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem00OCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTM2OCAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek04MCAzNTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpcIl1cbn07XG5jb25zdCBmYUZpbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3NVwiLCBcIk04Ni42IDkuNEM3NC4xLTMuMSA1My45LTMuMSA0MS40IDkuNHMtMTIuNSAzMi44IDAgNDUuM0wxMjIuNyAxMzYgMzAuNiAyMjguMWMtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44TDE0OC4xIDQ4MS40YzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMEw0NzQuMyAyOTAuOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMMzIyLjkgMzcuN2MtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDE2OCA5MC43IDg2LjYgOS40ek0xNjggMTgxLjNsNDkuNCA0OS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjEzLjMgMTM2bDUzLjEtNTMuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwTDQyOS4xIDIzNC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNMMzg2LjcgMjg4IDY3LjUgMjg4YzEuNC01LjQgNC4yLTEwLjQgOC40LTE0LjZMMTY4IDE4MS4zelwiXVxufTtcbmNvbnN0IGZhQW5nbGVVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZS11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzg5NjNdLCBcImYxMDZcIiwgXCJNMjAxLjQgMTM3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMjA1LjMgODYuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MHpcIl1cbn07XG5jb25zdCBmYURydW1zdGlja0JpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJ1bXN0aWNrLWJpdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2ZDdcIiwgXCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjJDNjkuOCAzMjAuNiA2NSAzMjAgNjAgMzIwYy0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMmMwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjVjLTQuMi0xNi45LTUuMi0zNy4xIDcuMi00OS40bDI2LjgtMjYuOGM2LTYgMTQuMS05LjQgMjIuNi05LjRsODkuMiAwYzYuMyAwIDEyLjQtLjMgMTguNS0xYzExLjktMS4yIDE2LjQtMTUuNSAxMC44LTI2Yy04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01M2MwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4IDAgMTUuNyAuOCAyMy4yIDIuNGMxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42QzQ5NC41IDYyLjUgNDIyLjUgMCAzMzYgMEMyMzguOCAwIDE2MCA3OC44IDE2MCAxNzZsMCA4OS4yelwiXVxufTtcbmNvbnN0IGZhSG9sbHlCZXJyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob2xseS1iZXJyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhYVwiLCBcIk0yNTYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yNzYuOCAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjJjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjYgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42Yy0zNC42IDAtNjIuNy0yOC4xLTYyLjctNjIuN2wwLTMyYzAtMTYuNC0xNi0yNy45LTMxLjYtMjIuOGwtMTIuOCA0LjNjLTE4IDYtMzcuMyA2LjUtNTUuNiAxLjVsLTI5LjYtOC4xYy0yLjktLjgtNS45LTEtOC43LS43YzQuMiA5LjcgNS44IDIwLjggMy43IDMyLjNMMjc1IDI5OC43Yy0xLjUgOC40LTEuNCAxNyAuNSAyNS4zbDUuMyAyMy45YzIuOCAxMi43IDEuMSAyNS4yLTQgMzUuOXpNMTI3LjYgMjM0LjVjLTE1LjUtNS4yLTMxLjYgNi40LTMxLjYgMjIuOGwwIDMyQzk2IDMyMy45IDY3LjkgMzUyIDMzLjMgMzUyYy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZsNC4zIDEyLjhjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi4yIDQ4OS40IDIyLjYgNTA1LjggNDAuNSA1MDFMNjAgNDk1LjZjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOGwwLTMyYzAtMzQuNiAyOC4xLTYyLjcgNjIuNy02Mi43YzE2LjQgMCAyNy45LTE2IDIyLjgtMzEuNmwtNC4zLTEyLjhjLTYtMTgtNi41LTM3LjMtMS41LTU1LjZsNS4zLTE5LjRjNC45LTE3LjktMTEuNi0zNC40LTI5LjUtMjkuNUwxOTYgMjQwLjRjLTE4LjMgNS0zNy42IDQuNC01NS42LTEuNWwtMTIuOC00LjN6TTM4NCAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG5jb25zdCBmYUNoZXZyb25MZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gIGljb246IFszMjAsIDUxMiwgWzkwMDFdLCBcImYwNTNcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnpcIl1cbn07XG5jb25zdCBmYUJhY3RlcmlhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhY3RlcmlhJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDU5XCIsIFwiTTMwNC45IC43Yy05LjYtMi43LTE5LjUgMi44LTIyLjMgMTIuNGwtNC4zIDE1LjJjLTguMy0uNi0xNi44IDAtMjUuMiAxLjljLTcuMyAxLjctMTQuMyAzLjUtMjEuMSA1LjVsLTUuNS0xMi43Yy0zLjktOS4xLTE0LjUtMTMuNC0yMy42LTkuNXMtMTMuNCAxNC41LTkuNSAyMy42bDQuNCAxMC40Yy0xNi42IDYuNy0zMS43IDE0LjQtNDUuNCAyMi44TDE0NyA2MmMtNS41LTguMy0xNi43LTEwLjUtMjUtNXMtMTAuNSAxNi43LTUgMjVsNiA5Yy0xMy43IDExLTI1LjUgMjIuOC0zNS44IDM0LjlsLTEwLThjLTcuOC02LjItMTkuMS01LTI1LjMgMi44cy01IDE5LjEgMi44IDI1LjNMNjUuOSAxNTVjLTEuOCAyLjgtMy41IDUuNy01LjEgOC41Yy02LjYgMTEuNC0xMS44IDIyLjYtMTYgMzNsLTgtMy4yYy05LjItMy43LTE5LjcgLjgtMjMuNCAxMHMuOCAxOS43IDEwIDIzLjRsMTAuNCA0LjJjLS4yIC44LS40IDEuNS0uNSAyLjNjLTIuMiA5LjMtMy40IDE3LjMtNC4xIDIzLjRjLS40IDMuMS0uNiA1LjctLjggNy44Yy0uMSAxLjEtLjEgMi0uMiAyLjhsLS4xIDEuMSAwIC41IDAgLjIgMCAuMWMwIDAgMCAuMSAyOS4xIDFjMCAwIDAgMC0uMSAwTDI4IDI2OS4zYy0uMSAzLjEgMCA2LjEgLjIgOS4xbC0xNS4yIDQuM0MzLjUgMjg1LjQtMiAyOTUuNCAuNyAzMDQuOXMxMi43IDE1LjEgMjIuMyAxMi40bDE1LjYtNC41YzcuNiAxMy42IDE4LjkgMjUgMzIuNiAzMi42TDY2LjcgMzYxYy0yLjcgOS42IDIuOCAxOS41IDEyLjQgMjIuM3MxOS41LTIuOCAyMi4zLTEyLjRsNC4zLTE1LjJjMS4yIC4xIDIuNCAuMiAzLjYgLjJjMTUuNiAuNSAzMC4zLTMuMyA0My0xMC4ybDkgOWM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC03LjItNy4yYzkuMy0xMi42IDE1LjItMjcuOCAxNi4zLTQ0LjVsNy4xIDNjOS4xIDMuOSAxOS43LS4zIDIzLjYtOS41cy0uMy0xOS43LTkuNS0yMy42bC04LjYtMy43YzYuNC05LjkgMTcuMy0yMi40IDM2LjktMzMuM2wxLjMgNC40YzIuNyA5LjYgMTIuNyAxNS4xIDIyLjMgMTIuNHMxNS4xLTEyLjcgMTIuNC0yMi4zbC0yLjMtOC4xYzMuOC0xLjEgNy43LTIuMSAxMS45LTMuMWMxMS42LTIuNyAyMi4xLTcuNyAzMS4xLTE0LjRsNy4yIDcuMmM3IDcgMTguNCA3IDI1LjUgMHM3LTE4LjQgMC0yNS41bC05LTljNy42LTEzLjkgMTEuMy0zMC4xIDEwLjEtNDYuNmwxNS4yLTQuM2M5LjYtMi43IDE1LjEtMTIuNyAxMi40LTIyLjNTMzcwLjYgNjQgMzYxIDY2LjdsLTE1LjYgNC41Yy03LjctMTMuOS0xOS4xLTI1LjEtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zek0xMTIgMjcybC00OC0xLjVjMCAwIDAgMCAwIDBjMTEuNyAuNCAyNy4zIC45IDQ4IDEuNnptMTYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NC00OGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0zMjIuNyA0ODljLTIuNyA5LjYgMi44IDE5LjUgMTIuNCAyMi4zczE5LjUtMi44IDIyLjItMTIuNGw0LjMtMTUuMmM4LjMgLjYgMTYuOCAwIDI1LjItMS45YzcuMy0xLjcgMTQuMy0zLjUgMjEuMS01LjVsNS41IDEyLjdjMy45IDkuMSAxNC41IDEzLjQgMjMuNiA5LjVzMTMuNC0xNC41IDkuNS0yMy42bC00LjQtMTAuNGMxNi42LTYuNyAzMS43LTE0LjQgNDUuNC0yMi44TDQ5MyA0NTBjNS41IDguMyAxNi43IDEwLjUgMjUgNXMxMC41LTE2LjcgNS0yNWwtNi05YzEzLjctMTEgMjUuNS0yMi44IDM1LjgtMzQuOWwxMCA4YzcuOCA2LjIgMTkuMSA1IDI1LjMtMi44czUtMTkuMS0yLjgtMjUuM0w1NzQuMSAzNTdjMS44LTIuOCAzLjUtNS43IDUuMS04LjVjNi42LTExLjQgMTEuOC0yMi42IDE2LTMzbDggMy4yYzkuMiAzLjcgMTkuNy0uOCAyMy40LTEwcy0uOC0xOS43LTEwLTIzLjRsLTEwLjQtNC4yYy4yLS44IC40LTEuNSAuNS0yLjNjMi4yLTkuMyAzLjQtMTcuMyA0LjEtMjMuNGMuNC0zLjEgLjYtNS43IC44LTcuOGMuMS0xLjEgLjEtMiAuMi0yLjhsLjEtMS4xIDAtLjUgMC0uMiAwLS4xYzAgMCAwLS4xLTI5LjEtMWMwIDAgMCAwIC4xIDBsMjkuMSAuOWMuMS0zLjEgMC02LjEtLjItOS4xbDE1LjItNC4zYzkuNi0yLjcgMTUuMS0xMi43IDEyLjQtMjIuM3MtMTIuNy0xNS4xLTIyLjMtMTIuNGwtMTUuNiA0LjVjLTcuNi0xMy42LTE4LjktMjUtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zcy0xOS41IDIuOC0yMi4zIDEyLjRsLTQuMyAxNS4yYy0xLjItLjEtMi40LS4yLTMuNi0uMmMtMTUuNi0uNS0zMC4zIDMuMy00MyAxMC4ybC05LTljLTctNy0xOC40LTctMjUuNSAwcy03IDE4LjQgMCAyNS41bDcuMiA3LjJjLTkuMyAxMi42LTE1LjIgMjcuOC0xNi4zIDQ0LjVsLTcuMS0zYy05LjEtMy45LTE5LjcgLjMtMjMuNiA5LjVzLjMgMTkuNyA5LjUgMjMuNmw4LjYgMy43Yy02LjQgOS45LTE3LjMgMjIuNC0zNi45IDMzLjNsLTEuMy00LjRjLTIuNy05LjYtMTIuNy0xNS4xLTIyLjMtMTIuNHMtMTUuMSAxMi43LTEyLjQgMjIuM2wyLjMgOC4xYy0zLjggMS4xLTcuNyAyLjEtMTEuOSAzLjFjLTExLjYgMi43LTIyLjEgNy43LTMxLjEgMTQuNGwtNy4yLTcuMmMtNy03LTE4LjQtNy0yNS41IDBzLTcgMTguNCAwIDI1LjVsOSA5Yy03LjYgMTMuOS0xMS4zIDMwLjEtMTAuMSA0Ni42bC0xNS4yIDQuM2MtOS42IDIuNy0xNS4xIDEyLjctMTIuNCAyMi4yczEyLjcgMTUuMSAyMi4zIDEyLjRsMTUuNi00LjVjNy43IDEzLjkgMTkuMSAyNS4xIDMyLjYgMzIuNkwzMjIuNyA0ODl6TTU3NiAyNDEuNWMwIDAgMCAwIDAgMGMtMTEuNy0uNC0yNy4zLS45LTQ4LTEuNmw0OCAxLjV6TTQ0OCAzODRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpcIl1cbn07XG5jb25zdCBmYUhhbmRMaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1saXphcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNThcIiwgXCJNMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMTEyIDAgODAgMCA0Ni41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgMTIgMCAxNiAwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjhMMjczLjkgMzUyIDI0MCAzNTJsLTgwIDAtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGw0OCAwIDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTgwIDBMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHpcIl1cbn07XG5jb25zdCBmYU5vdGRlZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3RkZWYnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZmVcIiwgXCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43bDAgMjY4LjZ6TTEwMi41IDQ0OGwxNzkuMSAwTDE5MiAzMTMuNyAxMDIuNSA0NDh6bTEyOC0xOTJMMzIwIDM5MC4zbDAtMjY4LjZMMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpcIl1cbn07XG5jb25zdCBmYURpc2Vhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzZWFzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdmYVwiLCBcIk0yMzYuNCA2MS40TDIyNyA3NS41Yy0yMS4zIDMyLTU5LjQgNDguNS05Ny4zIDQyLjFsLTU5LjYtOS45QzMzLjQgMTAxLjYgMCAxMjkuOSAuMSAxNjcuMWMwIDE1LjkgNi40IDMxLjIgMTcuNiA0Mi41bDI5LjIgMjkuMmMxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41YzAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjMgMzM1LjFDMjIuMiAzNDUuOSAxNiAzNjAuNyAxNiAzNzYuMmMwIDM2LjggMzQuMSA2NC4yIDcwLjEgNTYuMmw2Mi4zLTEzLjhjNy43LTEuNyAxNS43LTIuNiAyMy42LTIuNmwxMCAwYzI3LjIgMCA1My43IDkuMyA3NSAyNi4zTDI4Ny44IDQ2N2MxMC41IDguNCAyMy42IDEzIDM3IDEzYzMyLjcgMCA1OS4zLTI2LjUgNTkuMy01OS4zbDAtMjUuMmMwLTM0LjkgMjEuNC02Ni4yIDUzLjktNzguOGwzNi45LTE0LjNjMjIuNC04LjcgMzcuMi0zMC4zIDM3LjItNTQuM2MwLTI4LjEtMjAuMS01Mi4zLTQ3LjgtNTcuM2wtMjgtNS4xYy0zNi41LTYuNy02NS40LTM0LjUtNzMuNi03MC43bC03LjEtMzEuNUMzNDguOSA1My40IDMyMi4xIDMyIDI5MS4zIDMyYy0yMiAwLTQyLjYgMTEtNTQuOSAyOS40ek0xNjAgMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQnJpZWZjYXNlTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmllZmNhc2UtbWVkaWNhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ2OVwiLCBcIk0xODQgNDhsMTQ0IDBjNC40IDAgOCAzLjYgOCA4bDAgNDBMMTc2IDk2bDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwTDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE4NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptOTYgMTUyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR2VuZGVybGVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZW5kZXJsZXNzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjJkXCIsIFwiTTE5MiAxNDRhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0wIDI4OGExNzYgMTc2IDAgMSAwIDAtMzUyIDE3NiAxNzYgMCAxIDAgMCAzNTJ6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1yaWdodCcsXG4gIGljb246IFszMjAsIDUxMiwgWzkwMDJdLCBcImYwNTRcIiwgXCJNMzEwLjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDI1NiA3My40IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnpcIl1cbn07XG5jb25zdCBmYVJldHdlZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmV0d2VldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjA3OVwiLCBcIk0yNzIgNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44bDMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NmwxMTIgMHpNMzA0IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwIDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZMMzA0IDk2elwiXVxufTtcbmNvbnN0IGZhQ2FyUmVhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItcmVhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2FyLWFsdFwiXSwgXCJmNWRlXCIsIFwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNEw0MDIuOSAxOTJsLTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgODBjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDggMjU2IDAgMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNTYuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtODBjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI3Mmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbmNvbnN0IGZhQ2FyQWx0ID0gZmFDYXJSZWFyO1xuY29uc3QgZmFQdW1wU29hcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwdW1wLXNvYXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNmJcIiwgXCJNMTI4IDMybDAgOTYgMTI4IDAgMC0zMiA2MC4xIDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2wzMy45IDMzLjljMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzNzIuNyA1NS40Yy0xNS0xNS0zNS40LTIzLjQtNTYuNi0yMy40TDI1NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEybDE4Ni40IDBjMzcuNCAwIDY2LjktMzIgNjMuOC02OS4zbC0xOC43LTIyNGMtMi44LTMzLjItMzAuNS01OC43LTYzLjgtNTguN2wtMTQ5LjEgMHpNMjU2IDM2MGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjljMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMjE5IDI3OS4xIDI1NiAzMjcuNSAyNTYgMzYwelwiXVxufTtcbmNvbnN0IGZhVmlkZW9TbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWRlby1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRlMlwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC04Ni40LTY3LjcgMTMuOCA5LjJjOS44IDYuNSAyMi40IDcuMiAzMi45IDEuNnMxNi45LTE2LjQgMTYuOS0yOC4ybDAtMjU2YzAtMTEuOC02LjUtMjIuNi0xNi45LTI4LjJzLTIzLTUtMzIuOSAxLjZsLTk2IDY0TDQ0OCAxNzQuOWwwIDE3LjEgMCAxMjggMCA1LjgtMzItMjUuMUw0MTYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDExMy45IDY0IDM4LjggNS4xek00MDcgNDE2LjdMMzIuMyAxMjEuNWMtLjIgMi4xLS4zIDQuMy0uMyA2LjVsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMjMuNCAwIDQzLjktMTIuNiA1NS0zMS4zelwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeVF1YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1xdWFydGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJiYXR0ZXJ5LTJcIl0sIFwiZjI0M1wiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTExMiA5NmwtOTYgMCAwIDEyOCA5NiAwIDAtMTI4elwiXVxufTtcbmNvbnN0IGZhQmF0dGVyeTIgPSBmYUJhdHRlcnlRdWFydGVyO1xuY29uc3QgZmFSYWRpbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpbycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1MV0sIFwiZjhkN1wiLCBcIk00OTQuOCA0N2MxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMi44IDQ4MS4yIDFMNTEuNyAxMjYuOWMtOS40IDIuNy0xNy45IDcuMy0yNS4xIDEzLjJDMTAuNSAxNTEuNyAwIDE3MC42IDAgMTkybDAgNEwwIDMwNCAwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjI5LjUgMEw0OTQuOCA0N3pNMzY4IDI0MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNODAgMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTY0IDMyMGMwLTguOCA3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgMzM2Yy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDY0YzAtOC44IDcuMi0xNiAxNi0xNmw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZ6XCJdXG59O1xuY29uc3QgZmFCYWJ5Q2FycmlhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFieS1jYXJyaWFnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2FycmlhZ2UtYmFieVwiXSwgXCJmNzdkXCIsIFwiTTI1NiAxOTJMLjEgMTkyQzIuNyAxMTcuOSA0MS4zIDUyLjkgOTkgMTQuMWMxMy4zLTguOSAzMC44LTQuMyAzOS45IDguOEwyNTYgMTkyem0xMjgtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMjUuMi01LjggNTAuMi0xNyA3My41cy0yNy44IDQ0LjUtNDguNiA2Mi4zcy00NS41IDMyLTcyLjcgNDEuNlMyNTMuNCA0MTYgMjI0IDQxNnMtNTguNS01LTg1LjctMTQuNnMtNTEuOS0yMy44LTcyLjctNDEuNnMtMzcuMy0zOS00OC42LTYyLjNTMCAyNDkuMiAwIDIyNGwyMjQgMCAxNjAgMCAwLTY0ek04MCA0MTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNDAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIl1cbn07XG5jb25zdCBmYUNhcnJpYWdlQmFieSA9IGZhQmFieUNhcnJpYWdlO1xuY29uc3QgZmFUcmFmZmljTGlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhZmZpYy1saWdodCcsXG4gIGljb246IFszMjAsIDUxMiwgWzEyODY3OF0sIFwiZjYzN1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwbDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6bTk2IDQxNmE0OCA0OCAwIDEgMSAwLTk2IDQ4IDQ4IDAgMSAxIDAgOTZ6bTQ4LTE3NmE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0tNDgtODBhNDggNDggMCAxIDEgMC05NiA0OCA0OCAwIDEgMSAwIDk2elwiXVxufTtcbmNvbnN0IGZhVGhlcm1vbWV0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlcm1vbWV0ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0OTFcIiwgXCJNOTYgMzgyLjFsMC04OC44YzAtMTQuOSA1LjktMjkuMSAxNi40LTM5LjZsMjcuMy0yNy4zIDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDEuNC00MS40IDU3IDU3YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNTctNTcgNDUuNS00NS41QzM1NS4yIDEwLjkgMzgxLjQgMCA0MDguOCAwQzQ2NS44IDAgNTEyIDQ2LjIgNTEyIDEwMy4yYzAgMjcuNC0xMC45IDUzLjYtMzAuMiA3M0wyNTguMyAzOTkuNmMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRsLTg4LjggMEw0MSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODktODl6XCJdXG59O1xuY29uc3QgZmFWckNhcmRib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ci1jYXJkYm9hcmQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3MjlcIiwgXCJNNTc2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyMC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMzItNjRjOC44LTE3LjUgMjYuNy0yOC42IDQ2LjMtMjguNnMzNy41IDExLjEgNDYuMyAyOC42bDMyIDY0YzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNEw1NzYgNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0ek05NiAyNDBhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgMjQwem0zODQtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFIYW5kTWlkZGxlRmluZ2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtbWlkZGxlLWZpbmdlcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODQwNV0sIFwiZjgwNlwiLCBcIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNjQuMmMtOC41LTcuNi0xOS43LTEyLjItMzItMTIuMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3IDAgNzNjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtNjQgMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MzNTAgMjI3LjUgMzI5LjMgMjA4IDMwNCAyMDhjLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHpcIl1cbn07XG5jb25zdCBmYVBlcmNlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyY2VudCcsXG4gIGljb246IFszODQsIDUxMiwgWzYyMTAxLCA2Mjc4NSwgXCJwZXJjZW50YWdlXCJdLCBcIjI1XCIsIFwiTTM3NC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0zMjAgMzIwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDMyMC0zMjB6TTEyOCAxMjhBNjQgNjQgMCAxIDAgMCAxMjhhNjQgNjQgMCAxIDAgMTI4IDB6TTM4NCAzODRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwiXVxufTtcbmNvbnN0IGZhUGVyY2VudGFnZSA9IGZhUGVyY2VudDtcbmNvbnN0IGZhVHJ1Y2tNb3ZpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW92aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGRmXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzMDRsMCA4MCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwYzI2LjIgMCA0OS40LTEyLjYgNjQtMzJjMTQuNiAxOS40IDM3LjggMzIgNjQgMzJjNDQuMiAwIDgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMNDE2IDM4NGwzMy42IDBjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2bDEuNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQgMC0xNiAwLTEwLjNjMC05LjItMy4yLTE4LjItOS0yNS4zbC01OC44LTcxLjhjLTEwLjYtMTMtMjYuNS0yMC41LTQzLjMtMjAuNUw0ODAgMTQ0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTU4NSAyNTZsLTEwNSAwIDAtNjQgNDguOCAwYzIuNCAwIDQuNyAxLjEgNi4yIDIuOUw1ODUgMjU2ek01MjggMzY4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTc2IDQwMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek04MCAzNjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhR2xhc3NXYXRlckRyb3BsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2xhc3Mtd2F0ZXItZHJvcGxldCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTRmNVwiLCBcIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek04MyAyOTcuNUw2Ni40IDY0bDI1MS4zIDBMMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDBzLTQzLjkgMTAuMS02NCAwbC0xMy02LjV6TTI1NiAxOTZjMC0yNC0zMy43LTcwLjEtNTIuMi05My41Yy02LjEtNy43LTE3LjUtNy43LTIzLjYgMEMxNjEuNyAxMjUuOSAxMjggMTcyIDEyOCAxOTZjMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHpcIl1cbn07XG5jb25zdCBmYURpc3BsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzcGxheScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTE2M1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNzYgMC0xMC43IDMyTDE2MCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY5LjMgMEwzMzYgNDE2bDE3NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTUxMiA2NGwwIDI4OEw2NCAzNTIgNjQgNjRsNDQ4IDB6XCJdXG59O1xuY29uc3QgZmFGYWNlU21pbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zbWlsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU3OCwgXCJzbWlsZVwiXSwgXCJmMTE4XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhU21pbGUgPSBmYUZhY2VTbWlsZTtcbmNvbnN0IGZhVGh1bWJ0YWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1idGFjaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODIwNCwgMTI4MzkyLCBcInRodW1iLXRhY2tcIl0sIFwiZjA4ZFwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOS41IDAgMTEuNCAxNDguMmMzNi43IDE5LjkgNjUuNyA1My4yIDc5LjUgOTQuN2wxIDNjMy4zIDkuOCAxLjYgMjAuNS00LjQgMjguOHMtMTUuNyAxMy4zLTI2IDEzLjNMMzIgMzUyYy0xMC4zIDAtMTkuOS00LjktMjYtMTMuM3MtNy43LTE5LjEtNC40LTI4LjhsMS0zYzEzLjgtNDEuNSA0Mi44LTc0LjggNzkuNS05NC43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgMzg0bDY0IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2elwiXVxufTtcbmNvbnN0IGZhVGh1bWJUYWNrID0gZmFUaHVtYnRhY2s7XG5jb25zdCBmYVRyb3BoeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm9waHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5NDJdLCBcImYwOTFcIiwgXCJNNDAwIDBMMTc2IDBjLTI2LjUgMC00OC4xIDIxLjgtNDcuMSA0OC4yYy4yIDUuMyAuNCAxMC42IC43IDE1LjhMMjQgNjRDMTAuNyA2NCAwIDc0LjcgMCA4OGMwIDkyLjYgMzMuNSAxNTcgNzguNSAyMDAuN2M0NC4zIDQzLjEgOTguMyA2NC44IDEzOC4xIDc1LjhjMjMuNCA2LjUgMzkuNCAyNiAzOS40IDQ1LjZjMCAyMC45LTE3IDM3LjktMzcuOSAzNy45TDE5MiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI2LjEgMEMzMzcgNDQ4IDMyMCA0MzEgMzIwIDQxMC4xYzAtMTkuNiAxNS45LTM5LjIgMzkuNC00NS42YzM5LjktMTEgOTMuOS0zMi43IDEzOC4yLTc1LjhDNTQyLjUgMjQ1IDU3NiAxODAuNiA1NzYgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRMNDQ2LjQgNjRjLjMtNS4yIC41LTEwLjQgLjctMTUuOEM0NDguMSAyMS44IDQyNi41IDAgNDAwIDB6TTQ4LjkgMTEybDg0LjQgMGM5LjEgOTAuMSAyOS4yIDE1MC4zIDUxLjkgMTkwLjZjLTI0LjktMTEtNTAuOC0yNi41LTczLjItNDguM2MtMzItMzEuMS01OC03Ni02My0xNDIuM3pNNDY0LjEgMjU0LjNjLTIyLjQgMjEuOC00OC4zIDM3LjMtNzMuMiA0OC4zYzIyLjctNDAuMyA0Mi44LTEwMC41IDUxLjktMTkwLjZsODQuNCAwYy01LjEgNjYuMy0zMS4xIDExMS4yLTYzIDE0Mi4zelwiXVxufTtcbmNvbnN0IGZhUGVyc29uUHJheWluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tcHJheWluZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODcyMCwgXCJwcmF5XCJdLCBcImY2ODNcIiwgXCJNMzUyIDY0QTY0IDY0IDAgMSAwIDIyNCA2NGE2NCA2NCAwIDEgMCAxMjggMHpNMjMyLjcgMjY0bDIyLjkgMzEuNWM2LjUgOC45IDE2LjMgMTQuNyAyNy4yIDE2LjFzMjEuOS0xLjcgMzAuNC04LjdsODgtNzJjMTcuMS0xNCAxOS42LTM5LjIgNS42LTU2LjNzLTM5LjItMTkuNi01Ni4zLTUuNmwtNTUuMiA0NS4yLTI2LjItMzZDMjUzLjYgMTU2LjcgMjI4LjYgMTQ0IDIwMiAxNDRjLTMwLjkgMC01OS4yIDE3LjEtNzMuNiA0NC40TDc5LjggMjgwLjljLTIwLjIgMzguNS05LjQgODUuOSAyNS42IDExMS44TDE1OC42IDQzMiA3MiA0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMjA4IDBjMTcuMyAwIDMyLjYtMTEuMSAzOC0yNy41cy0uMy0zNC40LTE0LjItNDQuN0wxODcuNyAzNTRsNDUtOTB6XCJdXG59O1xuY29uc3QgZmFQcmF5ID0gZmFQZXJzb25QcmF5aW5nO1xuY29uc3QgZmFIYW1tZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFtbWVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mjk2XSwgXCJmNmUzXCIsIFwiTTQxMy41IDIzNy41Yy0yOC4yIDQuOC01OC4yLTMuNi04MC0yNS40bC0zOC4xLTM4LjFDMjgwLjQgMTU5IDI3MiAxMzguOCAyNzIgMTE3LjZsMC0xMi4xTDE5Mi4zIDYyYy01LjMtMi45LTguNi04LjYtOC4zLTE0LjdzMy45LTExLjUgOS41LTE0bDQ3LjItMjFDMjU5LjEgNC4yIDI3OSAwIDI5OS4yIDBsMTguMSAwYzM2LjcgMCA3MiAxNCA5OC43IDM5LjFsNDQuNiA0MmMyNC4yIDIyLjggMzMuMiA1NS43IDI2LjYgODZMNTAzIDE4M2w4LThjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjQgMjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg4IDg4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjQtMjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDgtOC0xNy41LTE3LjV6TTI3LjQgMzc3LjFMMjYwLjkgMTgyLjZjMy41IDQuOSA3LjUgOS42IDExLjggMTRsMzguMSAzOC4xYzYgNiAxMi40IDExLjIgMTkuMiAxNS43TDEzNC45IDQ4NC42Yy0xNC41IDE3LjQtMzYgMjcuNC01OC42IDI3LjRDMzQuMSA1MTIgMCA0NzcuOCAwIDQzNS43YzAtMjIuNiAxMC4xLTQ0LjEgMjcuNC01OC42elwiXVxufTtcbmNvbnN0IGZhSGFuZFBlYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcGVhY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5OTk2XSwgXCJmMjViXCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek05My4zIDUxLjJMMTc1LjkgMjQwbC02OS45IDBMMzQuNyA3Ni44QzI3LjYgNjAuNiAzNSA0MS44IDUxLjIgMzQuN3MzNS4xIC4zIDQyLjEgMTYuNXptMjcgMjIxLjNsLS4yLS41IDY5LjkgMCAyNi4xIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNTYgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42YzEzLjIgMCAyNS40LTQgMzUuNi0xMC44YzguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjhjMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlsLTExLjYtMTEuNkM3Ny41IDQyOS41IDY0IDM5Ni45IDY0IDM2M2wwLTI3YzAtMzIuNyAyNC42LTU5LjcgNTYuMy02My41elwiXVxufTtcbmNvbnN0IGZhUm90YXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI2MCwgXCJzeW5jLWFsdFwiXSwgXCJmMmYxXCIsIFwiTTE0Mi45IDE0Mi45Yy0xNy41IDE3LjUtMzAuMSAzOC0zNy44IDU5LjhjLTUuOSAxNi43LTI0LjIgMjUuNC00MC44IDE5LjVzLTI1LjQtMjQuMi0xOS41LTQwLjhDNTUuNiAxNTAuNyA3My4yIDEyMiA5Ny42IDk3LjZjODcuMi04Ny4yIDIyOC4zLTg3LjUgMzE1LjgtMUw0NTUgNTVjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4ybDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04LjQgMGMwIDAgMCAwIDAgMEwzNDQgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQxLjEtNDEuMWMtNjIuNi02MS41LTE2My4xLTYxLjItMjI1LjMgMXpNMTYgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDcuNiAwIC43IDBMMTY4IDI4OGM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTQxLjEgNDEuMWM2Mi42IDYxLjUgMTYzLjEgNjEuMiAyMjUuMy0xYzE3LjUtMTcuNSAzMC4xLTM4IDM3LjgtNTkuOGM1LjktMTYuNyAyNC4yLTI1LjQgNDAuOC0xOS41czI1LjQgMjQuMiAxOS41IDQwLjhjLTEwLjggMzAuNi0yOC40IDU5LjMtNTIuOSA4My44Yy04Ny4yIDg3LjItMjI4LjMgODcuNS0zMTUuOCAxTDU3IDQ1N2MtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxNiA0NDkuNyAxNiA0NDBsMC0xMTkuNiAwLS43IDAtNy42elwiXVxufTtcbmNvbnN0IGZhU3luY0FsdCA9IGZhUm90YXRlO1xuY29uc3QgZmFTcGlubmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwaW5uZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMTBcIiwgXCJNMzA0IDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgNDE2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ4IDMwNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ2NC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNDIuOSA0MzdBNDggNDggMCAxIDAgNzUgMzY5LjEgNDggNDggMCAxIDAgMTQyLjkgNDM3em0wLTI5NC4yQTQ4IDQ4IDAgMSAwIDc1IDc1YTQ4IDQ4IDAgMSAwIDY3LjkgNjcuOXpNMzY5LjEgNDM3QTQ4IDQ4IDAgMSAwIDQzNyAzNjkuMSA0OCA0OCAwIDEgMCAzNjkuMSA0Mzd6XCJdXG59O1xuY29uc3QgZmFSb2JvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2JvdCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTMwMl0sIFwiZjU0NFwiLCBcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjcyYzAgMzkuOC0zMi4yIDcyLTcyIDcybC0zMDQgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC0yNzJjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjA4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDI1NmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0xNTIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek00OCAyMjRsMTYgMCAwIDE5Mi0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em01NDQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTkyIDE2IDB6XCJdXG59O1xuY29uc3QgZmFQZWFjZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZWFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NzRdLCBcImY2N2NcIiwgXCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOGwwLTE3NC4yQzEzMy4yIDgxLjkgNjQgMTYwLjkgNjQgMjU2YzAgMzQuNiA5LjIgNjcuMSAyNS4yIDk1LjF6bTI5My4xIDQ5LjVMMjg4IDMyMy41bDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xYzAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yTDQyMi44IDM1MS4xek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJdXG59O1xuY29uc3QgZmFHZWFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZWFycycsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiY29nc1wiXSwgXCJmMDg1XCIsIFwiTTMwOC41IDEzNS4zYzcuMS02LjMgOS45LTE2LjIgNi4yLTI1Yy0yLjMtNS4zLTQuOC0xMC41LTcuNi0xNS41TDMwNCA4OS40Yy0zLTUtNi4zLTkuOS05LjgtMTQuNmMtNS43LTcuNi0xNS43LTEwLjEtMjQuNy03LjFsLTI4LjIgOS4zYy0xMC43LTguOC0yMy0xNi0zNi4yLTIwLjlMMTk5IDI3LjFjLTEuOS05LjMtOS4xLTE2LjctMTguNS0xNy44QzE3My45IDguNCAxNjcuMiA4IDE2MC40IDhsLS43IDBjLTYuOCAwLTEzLjUgLjQtMjAuMSAxLjJjLTkuNCAxLjEtMTYuNiA4LjYtMTguNSAxNy44TDExNSA1Ni4xYy0xMy4zIDUtMjUuNSAxMi4xLTM2LjIgMjAuOUw1MC41IDY3LjhjLTktMy0xOS0uNS0yNC43IDcuMWMtMy41IDQuNy02LjggOS42LTkuOSAxNC42bC0zIDUuM2MtMi44IDUtNS4zIDEwLjItNy42IDE1LjZjLTMuNyA4LjctLjkgMTguNiA2LjIgMjVsMjIuMiAxOS44QzMyLjYgMTYxLjkgMzIgMTY4LjkgMzIgMTc2cy42IDE0LjEgMS43IDIwLjlMMTEuNSAyMTYuN2MtNy4xIDYuMy05LjkgMTYuMi02LjIgMjVjMi4zIDUuMyA0LjggMTAuNSA3LjYgMTUuNmwzIDUuMmMzIDUuMSA2LjMgOS45IDkuOSAxNC42YzUuNyA3LjYgMTUuNyAxMC4xIDI0LjcgNy4xbDI4LjItOS4zYzEwLjcgOC44IDIzIDE2IDM2LjIgMjAuOWw2LjEgMjkuMWMxLjkgOS4zIDkuMSAxNi43IDE4LjUgMTcuOGM2LjcgLjggMTMuNSAxLjIgMjAuNCAxLjJzMTMuNy0uNCAyMC40LTEuMmM5LjQtMS4xIDE2LjYtOC42IDE4LjUtMTcuOGw2LjEtMjkuMWMxMy4zLTUgMjUuNS0xMi4xIDM2LjItMjAuOWwyOC4yIDkuM2M5IDMgMTkgLjUgMjQuNy03LjFjMy41LTQuNyA2LjgtOS41IDkuOC0xNC42bDMuMS01LjRjMi44LTUgNS4zLTEwLjIgNy42LTE1LjVjMy43LTguNyAuOS0xOC42LTYuMi0yNWwtMjIuMi0xOS44YzEuMS02LjggMS43LTEzLjggMS43LTIwLjlzLS42LTE0LjEtMS43LTIwLjlsMjIuMi0xOS44ek0xMTIgMTc2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTUwNC43IDUwMC41YzYuMyA3LjEgMTYuMiA5LjkgMjUgNi4yYzUuMy0yLjMgMTAuNS00LjggMTUuNS03LjZsNS40LTMuMWM1LTMgOS45LTYuMyAxNC42LTkuOGM3LjYtNS43IDEwLjEtMTUuNyA3LjEtMjQuN2wtOS4zLTI4LjJjOC44LTEwLjcgMTYtMjMgMjAuOS0zNi4ybDI5LjEtNi4xYzkuMy0xLjkgMTYuNy05LjEgMTcuOC0xOC41Yy44LTYuNyAxLjItMTMuNSAxLjItMjAuNHMtLjQtMTMuNy0xLjItMjAuNGMtMS4xLTkuNC04LjYtMTYuNi0xNy44LTE4LjVMNTgzLjkgMzA3Yy01LTEzLjMtMTIuMS0yNS41LTIwLjktMzYuMmw5LjMtMjguMmMzLTkgLjUtMTktNy4xLTI0LjdjLTQuNy0zLjUtOS42LTYuOC0xNC42LTkuOWwtNS4zLTNjLTUtMi44LTEwLjItNS4zLTE1LjYtNy42Yy04LjctMy43LTE4LjYtLjktMjUgNi4ybC0xOS44IDIyLjJjLTYuOC0xLjEtMTMuOC0xLjctMjAuOS0xLjdzLTE0LjEgLjYtMjAuOSAxLjdsLTE5LjgtMjIuMmMtNi4zLTcuMS0xNi4yLTkuOS0yNS02LjJjLTUuMyAyLjMtMTAuNSA0LjgtMTUuNiA3LjZsLTUuMiAzYy01LjEgMy05LjkgNi4zLTE0LjYgOS45Yy03LjYgNS43LTEwLjEgMTUuNy03LjEgMjQuN2w5LjMgMjguMmMtOC44IDEwLjctMTYgMjMtMjAuOSAzNi4yTDMxNS4xIDMxM2MtOS4zIDEuOS0xNi43IDkuMS0xNy44IDE4LjVjLS44IDYuNy0xLjIgMTMuNS0xLjIgMjAuNHMuNCAxMy43IDEuMiAyMC40YzEuMSA5LjQgOC42IDE2LjYgMTcuOCAxOC41bDI5LjEgNi4xYzUgMTMuMyAxMi4xIDI1LjUgMjAuOSAzNi4ybC05LjMgMjguMmMtMyA5LS41IDE5IDcuMSAyNC43YzQuNyAzLjUgOS41IDYuOCAxNC42IDkuOGw1LjQgMy4xYzUgMi44IDEwLjIgNS4zIDE1LjUgNy42YzguNyAzLjcgMTguNiAuOSAyNS02LjJsMTkuOC0yMi4yYzYuOCAxLjEgMTMuOCAxLjcgMjAuOSAxLjdzMTQuMS0uNiAyMC45LTEuN2wxOS44IDIyLjJ6TTQ2NCAzMDRhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbmNvbnN0IGZhQ29ncyA9IGZhR2VhcnM7XG5jb25zdCBmYVdhcmVob3VzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YXJlaG91c2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OTRcIiwgXCJNMCA0ODhMMCAxNzEuM2MwLTI2LjIgMTUuOS00OS43IDQwLjItNTkuNEwzMDguMSA0LjhjNy42LTMuMSAxNi4xLTMuMSAyMy44IDBMNTk5LjggMTExLjljMjQuMyA5LjcgNDAuMiAzMy4zIDQwLjIgNTkuNEw2NDAgNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI2NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzg0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDg4IDI0bC0zMzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01NiAzODQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0xMjggNDAwbDAtNjQgMzg0IDAgMCA2NC0zODQgMHptMC05NmwwLTgwIDM4NCAwIDAgODAtMzg0IDB6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwUmlnaHREb3RzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLXJpZ2h0LWRvdHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YjdcIiwgXCJNMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwTDkuNCAyNjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyNTYgMTA5LjNsMCA1MC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDB6TTU3NiA4MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NDggMjA4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQwMCAzODRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00OCA4MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0xMjggMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yNzIgMzg0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDggODBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTQ0IDUxMmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU3NiAzMzZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptLTQ4LTgwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG5jb25zdCBmYVNwbG90Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Bsb3RjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjViY1wiLCBcIk0yMDguNSA2Mi4zbDI4LjEtMzYuOUMyNDguOCA5LjQgMjY3LjggMCAyODggMGMyOC41IDAgNTMuNiAxOC43IDYxLjggNDZsMTcuOCA1OS40YzEwLjMgMzQuNCAzNi4xIDYyIDY5LjggNzQuNmwzOS44IDE0LjljMjAuOSA3LjkgMzQuOCAyNy45IDM0LjggNTAuMmMwIDE2LjktNy45IDMyLjgtMjEuNSA0Mi45bC02Ny4zIDUwLjVjLTI0LjMgMTguMi0zNy4yIDQ3LjktMzMuOCA3OC4xbDIuNSAyMi43YzQuMyAzOC43LTI2IDcyLjYtNjUgNzIuNmMtMTQuOCAwLTI5LjMtNS4xLTQwLjgtMTQuM2wtNTUuNC00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjJjLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOUM0Ny44IDQ1OC4yIDE2IDQzMS42IDE2IDM5Ni41YzAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMWMwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOWMwLTMzLjQgMzAuMS01OC44IDYzLTUzLjJsNTEuMyA4LjdjMzUuOSA2LjEgNzIuMi04LjIgOTQuMi0zNy4xelwiXVxufTtcbmNvbnN0IGZhRmFjZUdyaW5IZWFydHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLWhlYXJ0cycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyNSwgXCJncmluLWhlYXJ0c1wiXSwgXCJmNTg0XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTE5OS4zIDEyOS4xYzE3LjggNC44IDI4LjQgMjMuMSAyMy42IDQwLjhsLTE3LjQgNjVjLTIuMyA4LjUtMTEuMSAxMy42LTE5LjYgMTEuM2wtNjUuMS0xNy40Yy0xNy44LTQuOC0yOC40LTIzLjEtMjMuNi00MC44czIzLjEtMjguNCA0MC44LTIzLjZsMTYuMSA0LjMgNC4zLTE2LjFjNC44LTE3LjggMjMuMS0yOC40IDQwLjgtMjMuNnptMTU0LjMgMjMuNmw0LjMgMTYuMSAxNi4xLTQuM2MxNy44LTQuOCAzNi4xIDUuOCA0MC44IDIzLjZzLTUuOCAzNi4xLTIzLjYgNDAuOGwtNjUuMSAxNy40Yy04LjUgMi4zLTE3LjMtMi44LTE5LjYtMTEuM2wtMTcuNC02NWMtNC44LTE3LjggNS44LTM2LjEgMjMuNi00MC44czM2LjEgNS44IDQwLjkgMjMuNnpcIl1cbn07XG5jb25zdCBmYUdyaW5IZWFydHMgPSBmYUZhY2VHcmluSGVhcnRzO1xuY29uc3QgZmFEaWNlRm91ciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLWZvdXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU5XSwgXCJmNTI0XCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFTaW1DYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpbS1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2M0XCIsIFwiTTY0IDBMMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyA5NmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0QzAgMjguNyAyOC43IDAgNjQgMHpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC02NC0zMiAwek02NCAzNTJsODAgMCA5NiAwIDgwIDAgMC02NC04MCAwLTk2IDAtODAgMCAwIDY0ek0zMjAgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgNjQgNjQgMCAwLTMyek0xNjAgMTkybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTI4OCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMi02NCAwIDAgNjQgMzIgMHpNMTYwIDM4NGwwIDY0IDY0IDAgMC02NC02NCAwek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTY0LTY0IDAgMCAzMnpcIl1cbn07XG5jb25zdCBmYVRyYW5zZ2VuZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYW5zZ2VuZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg5NSwgXCJ0cmFuc2dlbmRlci1hbHRcIl0sIFwiZjIyNVwiLCBcIk0xMTIgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtMzEgMzFMMTEyIDc4LjFsNy03YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNyA3IDE1LjIgMTUuMkMxODcuNyAxMDcuNiAyMjAuNSA5NiAyNTYgOTZzNjguMyAxMS42IDk0LjkgMzEuMmw2OC44LTY4LjgtMzEtMzFjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMzEtMzEtNjguOCA2OC44QzQwNC40IDE4Ny43IDQxNiAyMjAuNSA0MTYgMjU2YzAgODAuMi01OSAxNDYuNi0xMzYgMTU4LjJsMCAxNy44IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNy44QzE1NSA0MDIuNiA5NiAzMzYuMiA5NiAyNTZjMC0zNS41IDExLjYtNjguMyAzMS4yLTk0LjlMMTEyIDE0NS45bC03IDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNy03TDU4LjMgOTIuM2wtMzEgMzFjLTQuNiA0LjYtMTEuNSA1LjktMTcuNCAzLjVTMCAxMTguNSAwIDExMkwwIDE2QzAgNy4yIDcuMiAwIDE2IDBsOTYgMHpNMzUyIDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6XCJdXG59O1xuY29uc3QgZmFUcmFuc2dlbmRlckFsdCA9IGZhVHJhbnNnZW5kZXI7XG5jb25zdCBmYU1lcmN1cnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVyY3VyeScsXG4gIGljb246IFszODQsIDUxMiwgWzk3OTFdLCBcImYyMjNcIiwgXCJNNzIuMSA3Qzg1LjgtNCAxMDYtMS44IDExNyAxMmMxNy42IDIyIDQ0LjcgMzYgNzUgMzZzNTcuMy0xNCA3NS0zNmMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNy44IDkuNy0xNi42IDE4LjQtMjYuNCAyNi4xQzMzNy4zIDEwOS43IDM2OCAxNjMuMyAzNjggMjI0YzAgODkuMS02Ni4yIDE2Mi43LTE1MiAxNzQuNGwwIDI1LjYgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMiAwIDAtMjUuNkM4Mi4yIDM4Ni43IDE2IDMxMy4xIDE2IDIyNGMwLTYwLjcgMzAuNy0xMTQuMyA3Ny41LTE0NS45QzgzLjcgNzAuNSA3NC45IDYxLjcgNjcuMSA1MmMtMTEuMS0xMy44LTguOC0zMy45IDUtNDV6TTgwIDIyNGExMTIgMTEyIDAgMSAwIDIyNCAwQTExMiAxMTIgMCAxIDAgODAgMjI0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dUdXJuRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy10dXJuLWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxldmVsLWRvd25cIl0sIFwiZjE0OVwiLCBcIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0elwiXVxufTtcbmNvbnN0IGZhTGV2ZWxEb3duID0gZmFBcnJvd1R1cm5Eb3duO1xuY29uc3QgZmFQZXJzb25GYWxsaW5nQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWZhbGxpbmctYnVyc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NDdcIiwgXCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjRDNzEuNiAxNTQuNSAzMiAyMTMgMzIgMjc4LjJMMzIgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC03My44YzAtMTAgMS42LTE5LjggNC41LTI5TDI2MS4xIDQ5Ny40YzkuNiAxNC44IDI5LjQgMTkuMSA0NC4zIDkuNXMxOS4xLTI5LjQgOS41LTQ0LjNMMjIyLjYgMzIwbDEuNCAwIDgwIDAgMzguNCA1MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkMzNDEuMyAyNjMuMSAzMjcuMSAyNTYgMzEyIDI1NmwtNzEuNSAwLTU2LjgtODAuMi0uMi0uM2M0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHpNOTYgODBBNDggNDggMCAxIDAgMCA4MGE0OCA0OCAwIDEgMCA5NiAwek00NjQgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA3OC43LTEyLjJjNi41LTEgMTEuNy01LjkgMTMuMS0xMi4ycy0xLjEtMTMtNi41LTE2LjdsLTY1LjYtNDUuMUw2MDMgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0w1MDguMyA5Mi4xbC0yOS40LTc0QzQ3Ni40IDEyIDQ3MC42IDggNDY0IDhzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzRMMzQzLjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN2MuMSAuMyAuMSAuNiAuMiAuOGwxOS40IDBjMjAuMSAwIDM5LjIgNy41IDUzLjggMjAuOGwxOC40IDIuOUwzODMgMjY1LjNsMzYuMiA0OC4zYzIuMSAyLjggMy45IDUuNyA1LjUgOC42TDQ2NCAyODYuMXpcIl1cbn07XG5jb25zdCBmYUF3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F3YXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTU5XCIsIFwiTTE3My44IDUuNWMxMS03LjMgMjUuNC03LjMgMzYuNCAwTDIyOCAxNy4yYzYgMy45IDEzIDUuOCAyMC4xIDUuNGwyMS4zLTEuM2MxMy4yLS44IDI1LjYgNi40IDMxLjUgMTguMmw5LjYgMTkuMWMzLjIgNi40IDguNCAxMS41IDE0LjcgMTQuN0wzNDQuNSA4M2MxMS44IDUuOSAxOSAxOC4zIDE4LjIgMzEuNWwtMS4zIDIxLjNjLS40IDcuMSAxLjUgMTQuMiA1LjQgMjAuMWwxMS44IDE3LjhjNy4zIDExIDcuMyAyNS40IDAgMzYuNEwzNjYuOCAyMjhjLTMuOSA2LTUuOCAxMy01LjQgMjAuMWwxLjMgMjEuM2MuOCAxMy4yLTYuNCAyNS42LTE4LjIgMzEuNWwtMTkuMSA5LjZjLTYuNCAzLjItMTEuNSA4LjQtMTQuNyAxNC43TDMwMSAzNDQuNWMtNS45IDExLjgtMTguMyAxOS0zMS41IDE4LjJsLTIxLjMtMS4zYy03LjEtLjQtMTQuMiAxLjUtMjAuMSA1LjRsLTE3LjggMTEuOGMtMTEgNy4zLTI1LjQgNy4zLTM2LjQgMEwxNTYgMzY2LjhjLTYtMy45LTEzLTUuOC0yMC4xLTUuNGwtMjEuMyAxLjNjLTEzLjIgLjgtMjUuNi02LjQtMzEuNS0xOC4ybC05LjYtMTkuMWMtMy4yLTYuNC04LjQtMTEuNS0xNC43LTE0LjdMMzkuNSAzMDFjLTExLjgtNS45LTE5LTE4LjMtMTguMi0zMS41bDEuMy0yMS4zYy40LTcuMS0xLjUtMTQuMi01LjQtMjAuMUw1LjUgMjEwLjJjLTcuMy0xMS03LjMtMjUuNCAwLTM2LjRMMTcuMiAxNTZjMy45LTYgNS44LTEzIDUuNC0yMC4xbC0xLjMtMjEuM2MtLjgtMTMuMiA2LjQtMjUuNiAxOC4yLTMxLjVsMTkuMS05LjZDNjUgNzAuMiA3MC4yIDY1IDczLjQgNTguNkw4MyAzOS41YzUuOS0xMS44IDE4LjMtMTkgMzEuNS0xOC4ybDIxLjMgMS4zYzcuMSAuNCAxNC4yLTEuNSAyMC4xLTUuNEwxNzMuOCA1LjV6TTI3MiAxOTJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0xLjMgNDQxLjhMNDQuNCAzMzkuM2MuMiAuMSAuMyAuMiAuNCAuNGw5LjYgMTkuMWMxMS43IDIzLjIgMzYgMzcuMyA2MiAzNS44bDIxLjMtMS4zYy4yIDAgLjUgMCAuNyAuMmwxNy44IDExLjhjNS4xIDMuMyAxMC41IDUuOSAxNi4xIDcuN2wtMzcuNiA4OS4zYy0yLjMgNS41LTcuNCA5LjItMTMuMyA5LjdzLTExLjYtMi4yLTE0LjgtNy4yTDc0LjQgNDU1LjVsLTU2LjEgOC4zYy01LjcgLjgtMTEuNC0xLjUtMTUtNnMtNC4zLTEwLjctMi4xLTE2em0yNDggNjAuNEwyMTEuNyA0MTNjNS42LTEuOCAxMS00LjMgMTYuMS03LjdsMTcuOC0xMS44Yy4yLS4xIC40LS4yIC43LS4ybDIxLjMgMS4zYzI2IDEuNSA1MC4zLTEyLjYgNjItMzUuOGw5LjYtMTkuMWMuMS0uMiAuMi0uMyAuNC0uNGw0My4yIDEwMi41YzIuMiA1LjMgMS40IDExLjQtMi4xIDE2cy05LjMgNi45LTE1IDZsLTU2LjEtOC4zLTMyLjIgNDkuMmMtMy4yIDUtOC45IDcuNy0xNC44IDcuMnMtMTEtNC4zLTEzLjMtOS43elwiXVxufTtcbmNvbnN0IGZhVGlja2V0U2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpY2tldC1zaW1wbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRpY2tldC1hbHRcIl0sIFwiZjNmZlwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgOC44LTcuNCAxNS43LTE1LjcgMTguNkM1NDEuNSAyMTcuMSA1MjggMjM1IDUyOCAyNTZzMTMuNSAzOC45IDMyLjMgNDUuNGM4LjMgMi45IDE1LjcgOS44IDE1LjcgMTguNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguOCA3LjQtMTUuNyAxNS43LTE4LjZDMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6XCJdXG59O1xuY29uc3QgZmFUaWNrZXRBbHQgPSBmYVRpY2tldFNpbXBsZTtcbmNvbnN0IGZhQnVpbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjc5NzAsIDYxNjg3XSwgXCJmMWFkXCIsIFwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTQxNmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAwek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTEyLTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTgwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhQW5nbGVzTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZXMtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE3MSwgXCJhbmdsZS1kb3VibGUtbGVmdFwiXSwgXCJmMTAwXCIsIFwiTTQxLjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyNTYgMjQ2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6bTM1Mi0xNjBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMDEuMyAyNTYgNDM4LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZURvdWJsZUxlZnQgPSBmYUFuZ2xlc0xlZnQ7XG5jb25zdCBmYVFyY29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdxcmNvZGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMjlcIiwgXCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODB6TTY0IDk2bDAgNjQgNjQgMCAwLTY0TDY0IDk2ek0wIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6bTY0IDE2bDAgNjQgNjQgMCAwLTY0LTY0IDB6TTMwNCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6bTgwIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0ek0yNTYgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYwek0zNjggNDgwYTE2IDE2IDAgMSAxIDAtMzIgMTYgMTYgMCAxIDEgMCAzMnptNjQgMGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6XCJdXG59O1xuY29uc3QgZmFDbG9ja1JvdGF0ZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvY2stcm90YXRlLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImhpc3RvcnlcIl0sIFwiZjFkYVwiLCBcIk03NSA3NUw0MSA0MUMyNS45IDI1LjkgMCAzNi42IDAgNTcuOUwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTAuMSAwYzIxLjQgMCAzMi4xLTI1LjkgMTctNDFsLTMwLjgtMzAuOEMxNTUgODUuNSAyMDMgNjQgMjU2IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkycy04NiAxOTItMTkyIDE5MmMtNDAuOCAwLTc4LjYtMTIuNy0xMDkuNy0zNC40Yy0xNC41LTEwLjEtMzQuNC02LjYtNDQuNiA3LjlzLTYuNiAzNC40IDcuOSA0NC42QzE1MS4yIDQ5NSAyMDEuNyA1MTIgMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2UzM5Ny40IDAgMjU2IDBDMTg1LjMgMCAxMjEuMyAyOC43IDc1IDc1em0xODEgNTNjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NS02NSAwLTk0LjFjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xuY29uc3QgZmFIaXN0b3J5ID0gZmFDbG9ja1JvdGF0ZUxlZnQ7XG5jb25zdCBmYUZhY2VHcmluQmVhbVN3ZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1iZWFtLXN3ZWF0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTE3LCBcImdyaW4tYmVhbS1zd2VhdFwiXSwgXCJmNTgzXCIsIFwiTTQ3Ni44IDEyNi4zYy00LjEgMS4xLTguNCAxLjctMTIuOCAxLjdjLTI2LjUgMC00OC0yMS00OC00N2MwLTUgMS44LTExLjMgNC42LTE4LjFjLjMtLjcgLjYtMS40IC45LTIuMWM5LTIwLjIgMjYuNS00NC45IDM2LTU3LjVjMy4yLTQuNCA5LjYtNC40IDEyLjggMEM0ODMuNCAyMC42IDUxMiA2MSA1MTIgODFjMCAyMS43LTE0LjkgMzkuOC0zNS4yIDQ1LjN6TTI1NiAwYzUxLjQgMCA5OS4zIDE1LjIgMTM5LjQgNDEuMmMtMS41IDMuMS0zIDYuMi00LjMgOS4zYy0zLjQgOC03LjEgMTktNy4xIDMwLjVjMCA0NC4zIDM2LjYgNzkgODAgNzljOS42IDAgMTguOC0xLjcgMjcuNC00LjhjMTMuMyAzMC45IDIwLjYgNjUgMjAuNiAxMDAuOGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMHpNMzgzLjggMzE3LjhDMzQ1LjMgMzI5LjQgMzAxLjkgMzM2IDI1NiAzMzZzLTg5LjMtNi42LTEyNy44LTE4LjJjLTEyLjMtMy43LTI0LjMgNy0xOS4yIDE4LjdjMjQuNSA1Ni45IDgxLjEgOTYuNyAxNDcgOTYuN3MxMjIuNS0zOS44IDE0Ny05Ni43YzUuMS0xMS44LTYuOS0yMi40LTE5LjItMTguN3ptLTE2Ni4yLTg5czAgMCAwIDBzMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTI2LjcgMTg4LjQgMTIwIDIwNi4xIDEyMCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhjMCAwIDAgMCAwIDBzMCAwIDAgMGMwIDAgMCAwIDAgMGwuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMmMwIDAgMCAwIDAgMGMwIDAgMCAwIDAgMHptMTYwIDBzMCAwIDAgMHMwIDAgMCAwczAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzI4Ni43IDE4OC40IDI4MCAyMDYuMSAyODAgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44YzAgMCAwIDAgMCAwczAgMCAwIDBjMCAwIDAgMCAwIDBsLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjJjMCAwIDAgMCAwIDB6XCJdXG59O1xuY29uc3QgZmFHcmluQmVhbVN3ZWF0ID0gZmFGYWNlR3JpbkJlYW1Td2VhdDtcbmNvbnN0IGZhRmlsZUV4cG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWV4cG9ydCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYXJyb3ctcmlnaHQtZnJvbS1maWxlXCJdLCBcImY1NmVcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI0IDBsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxMjgtMTY4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDAgMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0zODQgMzM2bDAtNDggMTEwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOUwzODQgMzM2em0wLTIwOGwtMTI4IDBMMjU2IDAgMzg0IDEyOHpcIl1cbn07XG5jb25zdCBmYUFycm93UmlnaHRGcm9tRmlsZSA9IGZhRmlsZUV4cG9ydDtcbmNvbnN0IGZhU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODczNywgXCJzaGllbGQtYmxhbmtcIl0sIFwiZjEzMlwiLCBcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuNyA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMmMtLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yYy0xNi43IDgtMzYuMSA4LTUyLjggMEM1Ny4zIDQyMC43IDE2LjUgMjM5LjIgMTYgMTQwYy0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni44IDEgMjUxLjQgMCAyNTYgMHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEJsYW5rID0gZmFTaGllbGQ7XG5jb25zdCBmYUFycm93VXBTaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtc2hvcnQtd2lkZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic29ydC1hbW91bnQtdXAtYWx0XCJdLCBcImY4ODVcIiwgXCJNMTUxLjYgNDIuNEMxNDUuNSAzNS44IDEzNyAzMiAxMjggMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDk2IDE0Ni4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzAxLjcgMzIuNCAzNS40YzExLjkgMTMgMzIuMiAxMy45IDQ1LjIgMnMxMy45LTMyLjIgMi00NS4ybC04OC05NnpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwelwiXVxufTtcbmNvbnN0IGZhU29ydEFtb3VudFVwQWx0ID0gZmFBcnJvd1VwU2hvcnRXaWRlO1xuY29uc3QgZmFIb3VzZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtbWVkaWNhbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTNiMlwiLCBcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFsMzIgMCAwIDE2MC40YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMC40IDBjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMiAzMiAwek0yNTYgMjA4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR29sZkJhbGxUZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29sZi1iYWxsLXRlZScsXG4gIGljb246IFszODQsIDUxMiwgW1wiZ29sZi1iYWxsXCJdLCBcImY0NTBcIiwgXCJNMzg0IDE5MmMwIDY2LjgtMzQuMSAxMjUuNi04NS44IDE2MEw4NS44IDM1MkMzNC4xIDMxNy42IDAgMjU4LjggMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyek0yNDIuMSAyNTYuNmMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHptLTUyLjMtNDkuM2MtNC45IDAtOS4xIDUuMS01LjQgOC40YzUuOSA1LjIgMTMuNyA4LjQgMjIuMSA4LjRjMTguNSAwIDMzLjUtMTUgMzMuNS0zMy41YzAtOC41LTMuMi0xNi4yLTguNC0yMi4xYy0zLjMtMy43LTguNCAuNS04LjQgNS40YzAgMTguNS0xNSAzMy41LTMzLjUgMzMuNXptMTEzLjUtMTcuNWMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjVjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNHpNOTYgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbmNvbnN0IGZhR29sZkJhbGwgPSBmYUdvbGZCYWxsVGVlO1xuY29uc3QgZmFDaXJjbGVDaGV2cm9uTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtY2hldnJvbi1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS1sZWZ0XCJdLCBcImYxMzdcIiwgXCJNNTEyIDI1NkEyNTYgMjU2IDAgMSAwIDAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6XCJdXG59O1xuY29uc3QgZmFDaGV2cm9uQ2lyY2xlTGVmdCA9IGZhQ2lyY2xlQ2hldnJvbkxlZnQ7XG5jb25zdCBmYUhvdXNlQ2hpbW5leVdpbmRvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5LXdpbmRvdycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTAwZFwiLCBcIk01NzUuOCAyNTUuNWMwIDE4LTE1IDMyLjEtMzIgMzIuMWwtMzIgMCAuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zbC0zMjAuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MC40LTMyIDBjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQxNiAxMDAuNyA0MTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyMSA1Mi44IDQ2LjRjOCA3IDEyIDE1IDExIDI0ek0yNDggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMHpcIl1cbn07XG5jb25zdCBmYVBlbk5pYiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tbmliJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTAwMDFdLCBcImY1YWRcIiwgXCJNMzY4LjQgMTguM0wzMTIuNyA3NC4xIDQzNy45IDE5OS4zbDU1LjctNTUuN2MyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NDcuNiAxOC4zYy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMHpNMjg4IDk0LjZsLTkuMiAyLjhMMTM0LjcgMTQwLjZjLTE5LjkgNi0zNS43IDIxLjItNDIuMyA0MUwzLjggNDQ1LjhjLTMuOCAxMS4zLTEgMjMuOSA3LjMgMzIuNEwxNjQuNyAzMjQuN2MtMy02LjMtNC43LTEzLjMtNC43LTIwLjdjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGMtNy40IDAtMTQuNC0xLjctMjAuNy00LjdMMzMuNyA1MDAuOWM4LjYgOC4zIDIxLjEgMTEuMiAzMi40IDcuM2wyNjQuMy04OC42YzE5LjctNi42IDM1LTIyLjQgNDEtNDIuM2w0My4yLTE0NC4xIDIuNy05LjJMMjg4IDk0LjZ6XCJdXG59O1xuY29uc3QgZmFUZW50QXJyb3dUdXJuTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LXR1cm4tbGVmdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4MFwiLCBcIk0xMjAuMSA0MS44YzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOVM5Ny44LTIuNyA4Ny45IDYuMmwtODAgNzJDMi45IDgyLjcgMCA4OS4yIDAgOTZzMi45IDEzLjMgNy45IDE3LjhsODAgNzJjOS45IDguOSAyNSA4LjEgMzMuOS0xLjhzOC4xLTI1LTEuOC0zMy45TDg2LjUgMTIwIDQ1NiAxMjBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMC02Ni4zLTUzLjctMTIwLTEyMC0xMjBMODYuNSA3MmwzMy41LTMwLjJ6TTMwNy40IDE2Ni41Yy0xMS41LTguNy0yNy4zLTguNy0zOC44IDBsLTE2OCAxMjhjLTYuNiA1LTExIDEyLjUtMTIuMyAyMC43bC0yNCAxNjBjLTEuNCA5LjIgMS4zIDE4LjYgNy40IDI1LjZTODYuNyA1MTIgOTYgNTEybDE0NCAwIDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTguMWMwLTUuNSA0LjQtOS45IDkuOS05LjljMy43IDAgNy4yIDIuMSA4LjggNS41bDY4LjQgMTM2LjhjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w2MC4yIDAgMTYgMGM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJdXG59O1xuY29uc3QgZmFUZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4MlwiLCBcIk0zOTYuNiA2LjVMMjM1LjggMTI5LjFjOS42IDEuOCAxOC45IDUuOCAyNyAxMmwxNjggMTI4YzEzLjIgMTAuMSAyMiAyNC45IDI0LjUgNDEuNGw2LjIgNDEuNUw2MDggMzUyYzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOGMtMTEuNS04LjctMjcuMy04LjctMzguOCAwem0tMTUzLjIgMTYwYy0xMS41LTguNy0yNy4zLTguNy0zOC44IDBsLTE2OCAxMjhjLTYuNiA1LTExIDEyLjUtMTIuMyAyMC43bC0yNCAxNjBjLTEuNCA5LjIgMS4zIDE4LjYgNy40IDI1LjZTMjIuNyA1MTIgMzIgNTEybDE0NCAwIDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTguMWMwLTUuNSA0LjQtOS45IDkuOS05LjljMy43IDAgNy4yIDIuMSA4LjggNS41bDY4LjQgMTM2LjhjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w2MC4yIDAgMTYgMGM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJdXG59O1xuY29uc3QgZmFXYW5kTWFnaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFnaWNcIl0sIFwiZjBkMFwiLCBcIk0xNC4xIDQ2My4zYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOUwzOTUuNCAxNC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDM0LjYgMzQuNmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxMTYuNSA0OTcuOWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTQuMSA0NjMuM3pNMzQ3LjYgMTg3LjZsMTA1LTEwNUw0MjkuNCA1OS4zbC0xMDUgMTA1IDIzLjMgMjMuM3pcIl1cbn07XG5jb25zdCBmYU1hZ2ljID0gZmFXYW5kTWFnaWM7XG5jb25zdCBmYURvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb2cnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMjFdLCBcImY2ZDNcIiwgXCJNMzA5LjYgMTU4LjVMMzMyLjcgMTkuOEMzMzQuNiA4LjQgMzQ0LjUgMCAzNTYuMSAwYzcuNSAwIDE0LjUgMy41IDE5IDkuNUwzOTIgMzJsNTIuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDY0bDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMzIgMC0xNiAwLTIxLjMgMC01LjEgMzAuNS0xMTItNjR6TTQxNiAyNTYuMUw0MTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExNS4yYy0yNCAxMi4zLTUxLjIgMTkuMi04MCAxOS4ycy01Ni02LjktODAtMTkuMkwxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTIzMC4yYy0yOC44LTEwLjktNTEuNC0zNS4zLTU5LjItNjYuNUwxIDE2Ny44Yy00LjMtMTcuMSA2LjEtMzQuNSAyMy4zLTM4LjhzMzQuNSA2LjEgMzguOCAyMy4zbDMuOSAxNS41QzcwLjUgMTgyIDgzLjMgMTkyIDk4IDE5MmwzMCAwIDE2IDAgMTU5LjggMEw0MTYgMjU2LjF6TTQ2NCA4MGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbmNvbnN0IGZhQ2Fycm90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnJvdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTM2NV0sIFwiZjc4N1wiLCBcIk0zNDYuNyA2QzMzNy42IDE3IDMyMCA0Mi4zIDMyMCA3MmMwIDQwIDE1LjMgNTUuMyA0MCA4MHM0MCA0MCA4MCA0MGMyOS43IDAgNTUtMTcuNiA2Ni0yNi43YzQtMy4zIDYtOC4yIDYtMTMuM3MtMi0xMC02LTEzLjJjLTExLjQtOS4xLTM4LjMtMjYuOC03NC0yNi44Yy0zMiAwLTQwIDgtNDAgOHM4LTggOC00MGMwLTM1LjctMTcuNy02Mi42LTI2LjgtNzRDMzcwIDIgMzY1LjEgMCAzNjAgMHMtMTAgMi0xMy4zIDZ6TTI0NC42IDEzNmMtNDAgMC03Ny4xIDE4LjEtMTAxLjcgNDguMmw2MC41IDYwLjVjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtNTUuMy01NS4zIDAgLjFMMi4yIDQ3Ny45Qy0yIDQ4Ny0uMSA0OTcuOCA3IDUwNXMxNy45IDkgMjcuMSA0LjhsMTM0LjctNjIuNC01Mi4xLTUyLjFjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEwxOTkuNyA0MzNsMTAwLjItNDYuNGM0Ni40LTIxLjUgNzYuMi02OCA3Ni4yLTExOS4yQzM3NiAxOTQuOCAzMTcuMiAxMzYgMjQ0LjYgMTM2elwiXVxufTtcbmNvbnN0IGZhTW9vbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb29uJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI3NzY5LCA5MjE0XSwgXCJmMTg2XCIsIFwiTTIyMy41IDMyQzEwMCAzMiAwIDEzMi4zIDAgMjU2UzEwMCA0ODAgMjIzLjUgNDgwYzYwLjYgMCAxMTUuNS0yNC4yIDE1NS44LTYzLjRjNS00LjkgNi4zLTEyLjUgMy4xLTE4LjdzLTEwLjEtOS43LTE3LTguNWMtOS44IDEuNy0xOS44IDIuNi0zMC4xIDIuNmMtOTYuOSAwLTE3NS41LTc4LjgtMTc1LjUtMTc2YzAtNjUuOCAzNi0xMjMuMSA4OS4zLTE1My4zYzYuMS0zLjUgOS4yLTEwLjUgNy43LTE3LjNzLTcuMy0xMS45LTE0LjMtMTIuNWMtNi4zLS41LTEyLjYtLjgtMTktLjh6XCJdXG59O1xuY29uc3QgZmFXaW5lR2xhc3NFbXB0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWdsYXNzLWVtcHR5JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ3aW5lLWdsYXNzLWFsdFwiXSwgXCJmNWNlXCIsIFwiTTY0IDBDNDcuNCAwIDMzLjUgMTIuOCAzMi4xIDI5LjNsLTE0IDE2OC40Yy02IDcyIDQyLjUgMTM1LjIgMTA5LjkgMTUwLjZsMCA5OS42LTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMCA4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAtOTkuNmM2Ny40LTE1LjQgMTE1LjktNzguNiAxMDkuOS0xNTAuNmwtMTQtMTY4LjRDMjg2LjUgMTIuOCAyNzIuNiAwIDI1NiAwTDY0IDB6TTgxLjkgMjAzLjFMOTMuNCA2NGwxMzMuMSAwIDExLjYgMTM5LjFDMjQyIDI0OC44IDIwNS45IDI4OCAxNjAgMjg4cy04Mi0zOS4yLTc4LjEtODQuOXpcIl1cbn07XG5jb25zdCBmYVdpbmVHbGFzc0FsdCA9IGZhV2luZUdsYXNzRW1wdHk7XG5jb25zdCBmYUNoZWVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVlc2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZWZcIiwgXCJNNTEyIDI0MC4ybDAgMTUuOEwwIDI1NmMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguN0M0MTguOCAzMiA1MTIgMTI1LjIgNTEyIDI0MC4yem0wIDQ3LjhsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGw1MTIgMHpcIl1cbn07XG5jb25zdCBmYVlpbllhbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneWluLXlhbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzc1XSwgXCJmNmFkXCIsIFwiTTI1NiA2NGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnMtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6bTAgNDQ4QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMzItMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG5jb25zdCBmYU11c2ljID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ211c2ljJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTI1XSwgXCJmMDAxXCIsIFwiTTQ5OS4xIDYuM2M4LjEgNiAxMi45IDE1LjYgMTIuOSAyNS43bDAgNzIgMCAyNjRjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwczQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDQ0OCAxNDcgMTkyIDIyMy44IDE5MiA0MzJjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwczQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCAyMDBsMC03MmMwLTE0LjEgOS4zLTI2LjYgMjIuOC0zMC43bDMyMC05NmM5LjctMi45IDIwLjItMS4xIDI4LjMgNXpcIl1cbn07XG5jb25zdCBmYUNvZGVDb21taXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29kZS1jb21taXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzODZcIiwgXCJNMzIwIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDYyIDM2MSAzOTcuNCA0MTYgMzIwIDQxNnMtMTQyLTU1LTE1Ni44LTEyOEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTMxLjIgMEMxNzggMTUxIDI0Mi42IDk2IDMyMCA5NnMxNDIgNTUgMTU2LjggMTI4TDYwOCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEzMS4yIDB6XCJdXG59O1xuY29uc3QgZmFUZW1wZXJhdHVyZUxvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1sb3cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NmJcIiwgXCJNNDQ4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCA5NmE5NiA5NiAwIDEgMSAxOTIgMEE5NiA5NiAwIDEgMSAzMjAgOTZ6TTE0NCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjQuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41QzcwLjIgMzMyLjYgNjQgMzQ5LjUgNjQgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNUwxOTIgMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMiAxMTJDMzIgNTAuMiA4Mi4xIDAgMTQ0IDBzMTEyIDUwLjEgMTEyIDExMmwwIDE2NC40YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzAgNDQ3LjUgMCAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNkwzMiAxMTJ6TTE5MiAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuN2MwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTAuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN6XCJdXG59O1xuY29uc3QgZmFQZXJzb25CaWtpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJpa2luZycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY5MiwgXCJiaWtpbmdcIl0sIFwiZjg0YVwiLCBcIk00MDAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yNy4yIDY0bC02MS44LTQ4LjhjLTE3LjMtMTMuNi00MS43LTEzLjgtNTkuMS0uM2wtODMuMSA2NC4yYy0zMC43IDIzLjgtMjguNSA3MC44IDQuMyA5MS42TDI4OCAzMDUuMSAyODggNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xMC43LTUuMy0yMC43LTE0LjItMjYuNkwyOTUgMjMyLjlsNjAuMy00OC41TDM5NiAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTU2IDM4NGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSA1NiAzODR6bTIwMCAwQTEyOCAxMjggMCAxIDAgMCAzODRhMTI4IDEyOCAwIDEgMCAyNTYgMHptMTg0IDBhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwem0yMDAgMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwelwiXVxufTtcbmNvbnN0IGZhQmlraW5nID0gZmFQZXJzb25CaWtpbmc7XG5jb25zdCBmYUJyb29tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jyb29tJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI5NTI5XSwgXCJmNTFhXCIsIFwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjZjLTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42bDAgMjkuMUwzNjQuMyAzMjBsMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOEM3Ni41IDMwNy41IDY0IDMzNy43IDY0IDM2OS4yYzAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjlDMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44YzMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHpcIl1cbn07XG5jb25zdCBmYVNoaWVsZEhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZC1oZWFydCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU3NFwiLCBcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMmMuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjJjMTYuNyA4IDM2LjEgOCA1Mi44IDBDNDU0LjcgNDIwLjcgNDk1LjUgMjM5LjIgNDk2IDE0MGMuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNDQgMjIxLjNjMC0zMy44IDI3LjQtNjEuMyA2MS4zLTYxLjNjMTYuMiAwIDMxLjggNi41IDQzLjMgMTcuOWw3LjQgNy40IDcuNC03LjRjMTEuNS0xMS41IDI3LjEtMTcuOSA0My4zLTE3LjljMzMuOCAwIDYxLjMgMjcuNCA2MS4zIDYxLjNjMCAxNi4yLTYuNSAzMS44LTE3LjkgNDMuM2wtODIuNyA4Mi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtODIuNy04Mi43Yy0xMS41LTExLjUtMTcuOS0yNy4xLTE3LjktNDMuM3pcIl1cbn07XG5jb25zdCBmYUdvcHVyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29wdXJhbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NFwiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDggMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggNDAgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDggMCAzMiAwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwIDAtMTYwLTMyIDAgMC0xMjgtMzIgMCAwLTk2LTMyIDAgMCA5NiAzMiAwIDAgMTI4IDMyIDAgMCAxNjAtODAgMCAwLTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgNDgtODAgMCAwLTE2MCAzMiAwIDAtMTI4IDMyIDAgMC05Ni0zMiAwIDAgOTYtMzIgMCAwIDEyOC0zMiAwIDAgMTYwLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNjQgMC0zMiAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzItODBsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFFYXJ0aE9jZWFuaWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWFydGgtb2NlYW5pYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xvYmUtb2NlYW5pYVwiXSwgXCJlNDdiXCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDguNiAzNTcuM2wtMzktMTMuNWMtNi41LTIuMi0xMy42LTIuMy0yMC4xLS4zbC0xNS4zIDQuOWMtMTguNSA1LjktMzguNS0yLjQtNDcuNS0xOS41bC0zLjMtNi4yYy0xMC42LTIwLjEtMi4zLTQ1IDE4LjItNTQuN2wzNS4zLTE2LjhjMi4zLTEuMSA0LjQtMi44IDUuOS00LjhsNS4zLTdjNy4yLTkuNiAxOC42LTE1LjMgMzAuNi0xNS4zczIzLjQgNS43IDMwLjYgMTUuM2w0LjYgNi4xYzIgMi42IDQuOSA0LjUgOC4xIDUuMWM3LjggMS42IDE1LjctMS41IDIwLjQtNy45bDEwLjQtMTQuMmMyLTIuOCA1LjMtNC40IDguNy00LjRjNC40IDAgOC40IDIuNyAxMCA2LjhsMTAuMSAyNS45YzIuOCA3LjIgNi43IDE0IDExLjUgMjAuMkwzMTEgMjk5LjhjNS44IDcuNCA5IDE2LjYgOSAyNnMtMy4yIDE4LjYtOSAyNkwyOTkgMzY3LjJjLTguMyAxMC42LTIxIDE2LjgtMzQuNCAxNi44Yy04LjQgMC0xNi42LTIuNC0yMy43LTdsLTI1LjQtMTYuNGMtMi4yLTEuNC00LjUtMi41LTYuOS0zLjR6bTY1LjItMjE0LjhMMjk2IDE2NC43YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjNsLTI5LjkgMGMtNS42IDAtMTEuMS0xLjItMTYuMi0zLjRsLTQyLjgtMTljLTE0LjMtNi4zLTExLjktMjcuMyAzLjQtMzAuM2wzOC41LTcuN2MxMy4xLTIuNiAyNi43IDEuNSAzNi4xIDEwLjl6TTI0OCA0MzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNDMxLjIgMjk4LjlsOCAyNGMyLjggOC40LTEuNyAxNy40LTEwLjEgMjAuMnMtMTcuNC0xLjctMjAuMi0xMC4xbC04LTI0Yy0yLjgtOC40IDEuNy0xNy40IDEwLjEtMjAuMnMxNy40IDEuNyAyMC4yIDEwLjF6bS0xOS45IDgwLjRsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG5jb25zdCBmYUdsb2JlT2NlYW5pYSA9IGZhRWFydGhPY2VhbmlhO1xuY29uc3QgZmFTcXVhcmVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUteG1hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDA2MiwgXCJ0aW1lcy1zcXVhcmVcIiwgXCJ4bWFyay1zcXVhcmVcIl0sIFwiZjJkM1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03OSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xuY29uc3QgZmFUaW1lc1NxdWFyZSA9IGZhU3F1YXJlWG1hcms7XG5jb25zdCBmYVhtYXJrU3F1YXJlID0gZmFTcXVhcmVYbWFyaztcbmNvbnN0IGZhSGFzaHRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXNodGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjIwOThdLCBcIjIzXCIsIFwiTTE4MS4zIDMyLjRjMTcuNCAyLjkgMjkuMiAxOS40IDI2LjMgMzYuOEwxOTcuOCAxMjhsOTUuMSAwIDExLjUtNjkuM2MyLjktMTcuNCAxOS40LTI5LjIgMzYuOC0yNi4zczI5LjIgMTkuNCAyNi4zIDM2LjhMMzU3LjggMTI4bDU4LjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjguOSAwTDMyNS44IDMyMGw1OC4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY4LjkgMC0xMS41IDY5LjNjLTIuOSAxNy40LTE5LjQgMjkuMi0zNi44IDI2LjNzLTI5LjItMTkuNC0yNi4zLTM2LjhsOS44LTU4LjctOTUuMSAwLTExLjUgNjkuM2MtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOEw5MC4yIDM4NCAzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjguOSAwIDIxLjMtMTI4TDY0IDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2OC45IDAgMTEuNS02OS4zYzIuOS0xNy40IDE5LjQtMjkuMiAzNi44LTI2LjN6TTE4Ny4xIDE5MkwxNjUuOCAzMjBsOTUuMSAwIDIxLjMtMTI4LTk1LjEgMHpcIl1cbn07XG5jb25zdCBmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhwYW5kLWFsdFwiXSwgXCJmNDI0XCIsIFwiTTM0NCAwTDQ4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3TDMyNyA0MWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlMzMzQuMyAwIDM0NCAwek0xNjggNTEyTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMCAzNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yczE5LjMtMS43IDI2LjIgNS4ybDM5IDM5IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4ycy0xMi41IDE0LjgtMjIuMiAxNC44elwiXVxufTtcbmNvbnN0IGZhRXhwYW5kQWx0ID0gZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyO1xuY29uc3QgZmFPaWxDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2lsLWNhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYxM1wiLCBcIk0zMjAgMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzItODAgMC00OCAwLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQuOGMwIDE5IDExLjIgMzYuMiAyOC41IDQzLjlsNjcuNSAzMEw5NiAzNjhjMCAyNi41IDIxLjUgNDggNDggNDhsMjU5LjEgMGMxOC40IDAgMzUuOC03LjkgNDgtMjEuN0w2MzMuNSAxODcuN2MxMi4zLTEzLjktLjMtMzUuNC0xOC40LTMxLjVMNDQ4IDE5MmwtNTAuNS0yNS4yYy04LjktNC40LTE4LjctNi44LTI4LjYtNi44TDI4OCAxNjBsMC0zMiAzMiAwek05NiAyMDhsMCA4Ni4xTDQ4IDI3Mi44IDQ4IDIwOGw0OCAwelwiXVxufTtcbmNvbnN0IGZhVCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTE2XSwgXCI1NFwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgMzIgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFIaXBwbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaXBwbycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTQzNV0sIFwiZjZlZFwiLCBcIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMWMwIDEwLjIgNy40IDE4LjggMTYuNyAyM2MyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzNjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNGMtMS41LTEuMS0yLjktMi4zLTQuMy0zLjVjLTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNWMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjlMNDUuOSAzNjkuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43QzMyIDE1NS43IDExNy4yIDY4IDIyMy44IDY0LjFsLjItLjEgNy4yIDBMMjU2IDY0bDMyIDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43YzEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbmNvbnN0IGZhQ2hhcnRDb2x1bW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtY29sdW1uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMGUzXCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE2MCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xMjgtNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00ODAgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIl1cbn07XG5jb25zdCBmYUluZmluaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZmluaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbODczNCwgOTg1NF0sIFwiZjUzNFwiLCBcIk0wIDI0MS4xQzAgMTYxIDY1IDk2IDE0NS4xIDk2YzM4LjUgMCA3NS40IDE1LjMgMTAyLjYgNDIuNUwzMjAgMjEwLjdsNzIuMi03Mi4yQzQxOS41IDExMS4zIDQ1Ni40IDk2IDQ5NC45IDk2QzU3NSA5NiA2NDAgMTYxIDY0MCAyNDEuMWwwIDI5LjdDNjQwIDM1MSA1NzUgNDE2IDQ5NC45IDQxNmMtMzguNSAwLTc1LjQtMTUuMy0xMDIuNi00Mi41TDMyMCAzMDEuM2wtNzIuMiA3Mi4yQzIyMC41IDQwMC43IDE4My42IDQxNiAxNDUuMSA0MTZDNjUgNDE2IDAgMzUxIDAgMjcwLjlsMC0yOS43ek0yNzQuNyAyNTZsLTcyLjItNzIuMmMtMTUuMi0xNS4yLTM1LjktMjMuOC01Ny40LTIzLjhDMTAwLjMgMTYwIDY0IDE5Ni4zIDY0IDI0MS4xbDAgMjkuN2MwIDQ0LjggMzYuMyA4MS4xIDgxLjEgODEuMWMyMS41IDAgNDIuMi04LjUgNTcuNC0yMy44TDI3NC43IDI1NnptOTAuNSAwbDcyLjIgNzIuMmMxNS4yIDE1LjIgMzUuOSAyMy44IDU3LjQgMjMuOGM0NC44IDAgODEuMS0zNi4zIDgxLjEtODEuMWwwLTI5LjdjMC00NC44LTM2LjMtODEuMS04MS4xLTgxLjFjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMMzY1LjMgMjU2elwiXVxufTtcbmNvbnN0IGZhVmlhbENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTk2XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNjQgMCA2NCAwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNzAuOGMtMjAuMiAyOC42LTMyIDYzLjUtMzIgMTAxLjJjMCAyNS4yIDUuMyA0OS4xIDE0LjggNzAuOEMxODkuNSA0NjMuNyAxNjAuNiA0ODAgMTI4IDQ4MGMtNTMgMC05Ni00My05Ni05NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek05NiA5NmwwIDk2IDY0IDAgMC05Nkw5NiA5NnpNMjI0IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwzNTIgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkFycm93RG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tYXJyb3ctZG93bi10by1saW5lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTM4XCIsIFwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM1MmwwLTk2IDE2IDAgMCA5Ni0xNiAwem0tNjQgMGwtODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjAgMCA4MCAwIDM3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNDQgMCAwLTE5MS4xIDI4LjYgNDcuNWM5LjEgMTUuMSAyOC44IDIwIDQzLjkgMTAuOXMyMC0yOC44IDEwLjktNDMuOWwtNTguMy05N2MtMTcuNC0yOC45LTQ4LjYtNDYuNi04Mi4zLTQ2LjZsLTI5LjcgMGMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45IDEyMCA0NDh6TTQ2NCA2NGwwIDI0Mi43LTI1LjQtMjUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsODAgODBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsODAtODBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNTI4IDMwNi43IDUyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVZvaWNlbWFpbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2ljZW1haWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4OTdcIiwgXCJNMTQ0IDMyMGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptMTE5LjggMGMxNS4zLTIyLjkgMjQuMi01MC40IDI0LjItODBjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCAxNjAuNSAwIDI0MHM2NC41IDE0NCAxNDQgMTQ0bDM1MiAwYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0cy02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwiXVxufTtcbmNvbnN0IGZhRmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg2M1wiLCBcIk0yNTguNiAwYy0xLjcgMC0zLjQgLjEtNS4xIC41QzE2OCAxNyAxMTUuNiAxMDIuMyAxMzAuNSAxODkuM2MyLjkgMTcgOC40IDMyLjkgMTUuOSA0Ny40TDMyIDIyNGwtMi42IDBDMTMuMiAyMjQgMCAyMzcuMiAwIDI1My40YzAgMS43IC4xIDMuNCAuNSA1LjFDMTcgMzQ0IDEwMi4zIDM5Ni40IDE4OS4zIDM4MS41YzE3LTIuOSAzMi45LTguNCA0Ny40LTE1LjlMMjI0IDQ4MGwwIDIuNmMwIDE2LjIgMTMuMiAyOS40IDI5LjQgMjkuNGMxLjcgMCAzLjQtLjEgNS4xLS41QzM0NCA0OTUgMzk2LjQgNDA5LjcgMzgxLjUgMzIyLjdjLTIuOS0xNy04LjQtMzIuOS0xNS45LTQ3LjRMNDgwIDI4OGwyLjYgMGMxNi4yIDAgMjkuNC0xMy4yIDI5LjQtMjkuNGMwLTEuNy0uMS0zLjQtLjUtNS4xQzQ5NSAxNjggNDA5LjcgMTE1LjYgMzIyLjcgMTMwLjVjLTE3IDIuOS0zMi45IDguNC00Ny40IDE1LjlMMjg4IDMybDAtMi42QzI4OCAxMy4yIDI3NC44IDAgMjU4LjYgMHpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFQZXJzb25XYWxraW5nTHVnZ2FnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24td2Fsa2luZy1sdWdnYWdlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTU0XCIsIFwiTTQzMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0Ny43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUw1MDUgMjMyLjdsLTE1LjMtMzYuOEM0NzIuNSAxNTQuOCA0MzIuMyAxMjggMzg3LjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xbC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNDAuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek0yNTYgMjc0LjFjLTcuNy00LjQtMTcuNC0xLjgtMjEuOSA1LjlsLTMyIDU1LjRMMTQ3LjcgMzA0Yy0xNS4zLTguOC0zNC45LTMuNi00My43IDExLjdMNDAgNDI2LjZjLTguOCAxNS4zLTMuNiAzNC45IDExLjcgNDMuN2w1NS40IDMyYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN2w2NC0xMTAuOWMxLjUtMi42IDIuNi01LjIgMy4zLThMMjYxLjkgMjk2YzQuNC03LjcgMS44LTE3LjQtNS45LTIxLjl6XCJdXG59O1xuY29uc3QgZmFVcERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXAtZG93bicsXG4gIGljb246IFsyNTYsIDUxMiwgWzg1OTcsIDExMDIxLCBcImFycm93cy1hbHQtdlwiXSwgXCJmMzM4XCIsIFwiTTE0NS42IDcuN0MxNDEgMi44IDEzNC43IDAgMTI4IDBzLTEzIDIuOC0xNy42IDcuN2wtMTA0IDExMmMtNi41IDctOC4yIDE3LjItNC40IDI1LjlTMTQuNSAxNjAgMjQgMTYwbDU2IDAgMCAxOTItNTYgMGMtOS41IDAtMTguMiA1LjctMjIgMTQuNHMtMi4xIDE4LjkgNC40IDI1LjlsMTA0IDExMmM0LjUgNC45IDEwLjkgNy43IDE3LjYgNy43czEzLTIuOCAxNy42LTcuN2wxMDQtMTEyYzYuNS03IDguMi0xNy4yIDQuNC0yNS45cy0xMi41LTE0LjQtMjItMTQuNGwtNTYgMCAwLTE5MiA1NiAwYzkuNSAwIDE4LjItNS43IDIyLTE0LjRzMi4xLTE4LjktNC40LTI1LjlsLTEwNC0xMTJ6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NBbHRWID0gZmFVcERvd247XG5jb25zdCBmYUNsb3VkTW9vblJhaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbW9vbi1yYWluJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzNjXCIsIFwiTTQ4MS4yIDBDNDE3IDAgMzYzLjUgNDYuNSAzNTMuNyAxMDcuNmMzNS40IDE3LjYgNjAuMiA1My4zIDYyLjEgOTUuMWMyMy4yIDExIDQyIDI5LjcgNTMuMSA1Mi43YzQgLjQgOC4xIC42IDEyLjMgLjZjMzQuOSAwIDY2LjctMTMuOCA4OS45LTM2LjFjNS4xLTQuOSA2LjQtMTIuNSAzLjItMTguN3MtMTAuMS05LjctMTctOC42Yy00LjkgLjgtMTAgMS4zLTE1LjIgMS4zYy00OSAwLTg4LjQtMzkuMy04OC40LTg3LjRjMC0zMi42IDE4LTYxLjEgNDQuOS03Ni4xYzYuMS0zLjQgOS4zLTEwLjUgNy44LTE3LjRzLTcuMy0xMi0xNC4zLTEyLjZjLTMuNi0uMy03LjMtLjUtMTAuOS0uNXpNMzY3LjkgMzgzLjljNDQuMiAwIDgwLTM1LjggODAtODBjMC0zOS4zLTI4LjQtNzIuMS02NS44LTc4LjdjMS4yLTUuNiAxLjktMTEuMyAxLjktMTcuMmMwLTQ0LjItMzUuOC04MC04MC04MGMtMTcgMC0zMi44IDUuMy00NS44IDE0LjRDMjQxLjMgMTE0LjYgMjEwLjggOTYgMTc2IDk2Yy01MyAwLTk2IDQzLTk2IDk2bDAgMS4zYy00NS40IDcuNi04MCA0Ny4xLTgwIDk0LjZjMCA1MyA0MyA5NiA5NiA5NmwyNzEuOSAwek04NS40IDQyMC4xYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zelwiXVxufTtcbmNvbnN0IGZhQ2FsZW5kYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgxOTcsIDEyODE5OF0sIFwiZjEzM1wiLCBcIk05NiAzMmwwIDMyTDQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEybDAgNDggNDQ4IDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJMMTYwIDY0bDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgMTQuMyA5NiAzMnpNNDQ4IDE5MkwwIDE5MiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3MnpcIl1cbn07XG5jb25zdCBmYVRyYWlsZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaWxlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA0MVwiLCBcIk00OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgMzM2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE3LjEgMGM3LjgtNTQuMyA1NC40LTk2IDExMC45LTk2czEwMy4xIDQxLjcgMTEwLjkgOTZMNDg4IDM4NGw4IDAgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0yNDBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJ6TTgwIDk2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDEzMS4yYy0xMS40IDUuOS0yMi4yIDEyLjktMzIgMjFMNjQgMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptOTYgMTI4Yy01LjQgMC0xMC43IC4yLTE2IC43TDE2MCAxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDExMi43Yy01LjMtLjUtMTAuNi0uNy0xNi0uN3ptODAgMTkuMkwyNTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNTIuMmMtOS44LTguMS0yMC42LTE1LjItMzItMjF6TTM2OCA5NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2em0xMTIgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpNMTc2IDQ4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQmFoYWkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFoYWknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhheWthbFwiXSwgXCJmNjY2XCIsIFwiTTI4OCAwYzE0LjUgMCAyNy4yIDkuNyAzMC45IDIzLjhsMjMuOSA4OS42IDc1LjktNTMuM2MxMS45LTguMyAyNy44LTcuNiAzOSAxLjdzMTQuNiAyNC45IDguNCAzOC4xbC0zOS4zIDg0IDkyLjQgOGMxNC40IDEuMiAyNi4yIDEyIDI4LjggMjYuM3MtNC45IDI4LjUtMTggMzQuNmwtODQuMSAzOS4xIDY1LjcgNjUuNWMxMC4zIDEwLjIgMTIuNCAyNi4xIDUuMSAzOC43cy0yMiAxOC43LTM2IDE0LjlMMzkxIDM4Ni44bDguMiA5Mi40YzEuMyAxNC40LTcuMyAyNy45LTIwLjkgMzIuOXMtMjguOSAuMS0zNy4yLTExLjdsLTUzLjEtNzYtNTMuMSA3NmMtOC4zIDExLjktMjMuNiAxNi43LTM3LjIgMTEuN3MtMjIuMi0xOC41LTIwLjktMzIuOWw4LjItOTIuNEw5NS40IDQxMC45Yy0xNCAzLjgtMjguOC0yLjMtMzYtMTQuOXMtNS4yLTI4LjQgNS4xLTM4LjdsNjUuNy02NS41TDQ2IDI1Mi43Yy0xMy4xLTYuMS0yMC41LTIwLjMtMTgtMzQuNnMxNC4zLTI1LjEgMjguOC0yNi4zbDkyLjQtOC0zOS4zLTg0Yy02LjEtMTMuMS0yLjctMjguOCA4LjQtMzguMXMyNy4xLTEwIDM5LTEuN2w3NS45IDUzLjMgMjMuOS04OS42QzI2MC44IDkuNyAyNzMuNSAwIDI4OCAwem0wIDE1Ni4ybC00LjggMThjLTIuNyAxMC4xLTEwLjIgMTguMi0yMCAyMS44cy0yMC44IDIuMS0yOS4zLTMuOWwtMTUuMi0xMC43IDcuOSAxNi44YzQuNCA5LjUgNCAyMC41LTEuMyAyOS42cy0xNC41IDE1LTI1IDE1LjlsLTE4LjUgMS42IDE2LjggNy44YzkuNSA0LjQgMTYuMiAxMy4yIDE4IDIzLjVzLTEuNSAyMC44LTguOSAyOC4ybC0xMy4yIDEzLjEgMTcuOS00LjhjMTAuMS0yLjcgMjAuOS0uMyAyOC45IDYuNHMxMi4yIDE2LjkgMTEuMyAyNy4zbC0xLjYgMTguNSAxMC42LTE1LjJjNi04LjYgMTUuOC0xMy43IDI2LjItMTMuN3MyMC4yIDUuMSAyNi4yIDEzLjdsMTAuNiAxNS4yLTEuNi0xOC41Yy0uOS0xMC40IDMuMy0yMC42IDExLjMtMjcuM3MxOC44LTkuMSAyOC45LTYuNGwxNy45IDQuOC0xMy4yLTEzLjFjLTcuNC03LjQtMTAuNy0xNy45LTguOS0yOC4yczguNS0xOS4xIDE4LTIzLjVsMTYuOC03LjgtMTguNS0xLjZjLTEwLjQtLjktMTkuNy02LjgtMjUtMTUuOXMtNS43LTIwLjEtMS4zLTI5LjZsNy45LTE2LjgtMTUuMiAxMC43Yy04LjYgNi0xOS41IDcuNS0yOS4zIDMuOXMtMTcuMy0xMS43LTIwLTIxLjhsLTQuOC0xOHpcIl1cbn07XG5jb25zdCBmYUhheWthbCA9IGZhQmFoYWk7XG5jb25zdCBmYVNkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZC1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2MyXCIsIFwiTTMyMCAwTDE0MS4zIDBDMTI0LjMgMCAxMDggNi43IDk2IDE4LjdMMTguNyA5NkM2LjcgMTA4IDAgMTI0LjMgMCAxNDEuM0wwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NHpNMTYwIDg4bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwbDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwbDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbmNvbnN0IGZhRHJhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYWdvbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODAwOV0sIFwiZjZkNVwiLCBcIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjRMMjk0LjQgMjguOGMtNS41LTQuMS03LjgtMTEuMy01LjYtMTcuOVMyOTcuMSAwIDMwNCAwTDQxNiAwbDMyIDAgMTYgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNGw1Ny42IDc2LjhjNi4yIDguMyA5LjYgMTguNCA5LjYgMjguOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjEuNSAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0w0ODAgMTYwbC0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xQzY0MCA0NjIuOSA1OTAuOSA1MTIgNTMwLjIgNTEyTDQ5NiA1MTJsLTY0IDBMMzIuMyA1MTJjLTMuMyAwLTYuNi0uNC05LjYtMS40QzEzLjUgNTA3LjggNiA1MDEgMi40IDQ5Mi4xQzEgNDg4LjcgLjIgNDg1LjIgMCA0ODEuNGMtLjItMy43IC4zLTcuMyAxLjMtMTAuN2MyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNGMzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xYzAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC00NS41IDAtNTd6TTUxMiA3Mi4zYzAtLjEgMC0uMiAwLS4zczAtLjIgMC0uM2wwIC42em0tMS4zIDcuNEw0NjQuMyA2OC4xYy0uMiAxLjMtLjMgMi42LS4zIDMuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNGMxMC42IDAgMTkuNS02LjggMjIuNy0xNi4zek0xMzAuOSAxMTYuNWMxNi4zLTE0LjUgNDAuNC0xNi4yIDU4LjUtNC4xbDEzMC42IDg3IDAgMjcuNWMwIDMyLjggOC40IDY0LjggMjQgOTNsLTIzMiAwYy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43TDE3MSAyMzIuMyAxOC40IDI1NS44Yy03IDEuMS0xMy45LTIuNi0xNi45LTlzLTEuNS0xNC4xIDMuOC0xOC44TDEzMC45IDExNi41elwiXVxufTtcbmNvbnN0IGZhU2hvZVByaW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9lLXByaW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU0YlwiLCBcIk00MTYgMEMzNTIuMyAwIDI1NiAzMiAyNTYgMzJsMCAxMjhjNDggMCA3NiAxNiAxMDQgMzJzNTYgMzIgMTA0IDMyYzU2LjQgMCAxNzYtMTYgMTc2LTk2UzUxMiAwIDQxNiAwek0xMjggOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwLTEyOC0zMiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNMjg4IDUxMmM5NiAwIDIyNC00OCAyMjQtMTI4cy0xMTkuNi05Ni0xNzYtOTZjLTQ4IDAtNzYgMTYtMTA0IDMycy01NiAzMi0xMDQgMzJsMCAxMjhzOTYuMyAzMiAxNjAgMzJ6TTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDAgMC0xMjgtMzIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJwbHVzLWNpcmNsZVwiXSwgXCJmMDU1XCIsIFwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYVBsdXNDaXJjbGUgPSBmYUNpcmNsZVBsdXM7XG5jb25zdCBmYUZhY2VHcmluVG9uZ3VlV2luayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tdG9uZ3VlLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDAsIFwiZ3Jpbi10b25ndWUtd2lua1wiXSwgXCJmNThiXCIsIFwiTTE3NC41IDQ5OC44QzczLjEgNDY0LjcgMCAzNjguOSAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCAxMTIuOS03My4xIDIwOC43LTE3NC41IDI0Mi44QzM0Ni43IDQ4NCAzNTIgNDY2LjYgMzUyIDQ0OGwwLTQ2LjljMjQuMy0xNy41IDQzLjYtNDEuNiA1NS40LTY5LjZjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzExLjcgMjcuOCAzMC44IDUxLjcgNTQuOCA2OS4ybDAgNDcuM2MwIDE4LjYgNS4zIDM2IDE0LjUgNTAuOHptMjAuNy0yNjUuMmM1LjMgNy4xIDE1LjMgOC41IDIyLjQgMy4yczguNS0xNS4zIDMuMi0yMi40Yy0zMC40LTQwLjUtOTEuMi00MC41LTEyMS42IDBjLTUuMyA3LjEtMy45IDE3LjEgMy4yIDIyLjRzMTcuMSAzLjkgMjIuNC0zLjJjMTcuNi0yMy41IDUyLjgtMjMuNSA3MC40IDB6TTMzNiAyNzJhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45YzIuOCAxMi42IDIwLjggMTIuNiAyMy42IDBjMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhR3JpblRvbmd1ZVdpbmsgPSBmYUZhY2VHcmluVG9uZ3VlV2luaztcbmNvbnN0IGZhSGFuZEhvbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1ob2xkaW5nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGJkXCIsIFwiTTU1OS43IDM5Mi4yYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjcyIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAtMTYgMC03OC4zIDBjLTI5LjEgMC01Ny4zIDkuOS04MCAyOEw2OC44IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zem0tMzY3LTguMmMuMyAwIC42IDAgLjkgMGMwIDAgMCAwIDAgMGMtLjMgMC0uNiAwLS45IDB6XCJdXG59O1xuY29uc3QgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1Zy1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NWRcIiwgXCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMmwwIDk2IDY0IDAgMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYgNjQgMCAwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDY3LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY3LjJjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhTGlua1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpbmstc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNoYWluLWJyb2tlblwiLCBcImNoYWluLXNsYXNoXCIsIFwidW5saW5rXCJdLCBcImYxMjdcIiwgXCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w0ODkuMyAzNTguMmw5MC41LTkwLjVjNTYuNS01Ni41IDU2LjUtMTQ4IDAtMjA0LjVjLTUwLTUwLTEyOC44LTU2LjUtMTg2LjMtMTUuNGwtMS42IDEuMWMtMTQuNCAxMC4zLTE3LjcgMzAuMy03LjQgNDQuNnMzMC4zIDE3LjcgNDQuNiA3LjRsMS42LTEuMWMzMi4xLTIyLjkgNzYtMTkuMyAxMDMuOCA4LjZjMzEuNSAzMS41IDMxLjUgODIuNSAwIDExNGwtOTYgOTYtMzEuOS0yNUM0MzAuOSAyMzkuNiA0MjAuMSAxNzUuMSAzNzcgMTMyYy01Mi4yLTUyLjMtMTM0LjUtNTYuMi0xOTEuMy0xMS43TDM4LjggNS4xek0yMzkgMTYyYzMwLjEtMTQuOSA2Ny43LTkuOSA5Mi44IDE1LjNjMjAgMjAgMjcuNSA0OC4zIDIxLjcgNzQuNUwyMzkgMTYyek00MDYuNiA0MTYuNEwyMjAuOSAyNzBjLTIuMSAzOS44IDEyLjIgODAuMSA0Mi4yIDExMGMzOC45IDM4LjkgOTQuNCA1MSAxNDMuNiAzNi4zem0tMjkwLTIyOC41TDYwLjIgMjQ0LjNjLTU2LjUgNTYuNS01Ni41IDE0OCAwIDIwNC41YzUwIDUwIDEyOC44IDU2LjUgMTg2LjMgMTUuNGwxLjYtMS4xYzE0LjQtMTAuMyAxNy43LTMwLjMgNy40LTQ0LjZzLTMwLjMtMTcuNy00NC42LTcuNGwtMS42IDEuMWMtMzIuMSAyMi45LTc2IDE5LjMtMTAzLjgtOC42Qzc0IDM3MiA3NCAzMjEgMTA1LjUgMjg5LjVsNjEuOC02MS44LTUwLjYtMzkuOXpcIl1cbn07XG5jb25zdCBmYUNoYWluQnJva2VuID0gZmFMaW5rU2xhc2g7XG5jb25zdCBmYUNoYWluU2xhc2ggPSBmYUxpbmtTbGFzaDtcbmNvbnN0IGZhVW5saW5rID0gZmFMaW5rU2xhc2g7XG5jb25zdCBmYUNsb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb25lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjRkXCIsIFwiTTI4OCA0NDhMNjQgNDQ4bDAtMjI0IDY0IDAgMC02NC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0LTY0IDAgMCA2NHptLTY0LTk2bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIyNCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLWFycm93LWxvb3AtbGVmdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1MVwiLCBcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjMuNyAyMDAuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlMMjgxIDIzMi43bC0xNS4zLTM2LjhDMjQ4LjUgMTU0LjggMjA4LjMgMTI4IDE2My43IDEyOGMtMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0zMi45IDE0LjYtNTguMSA0Mi40LTY5LjQgNzYuNWwtMi42IDcuOGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwyLjYtNy44YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjV6bS0zMCAxMzUuMUw2OC43IDM5OCA5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTE2LjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnptMzQ3LjcgMTE5YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDYxLjMgMzg0bDE4LjcgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MHMtNzEuNi0xNjAtMTYwLTE2MEwzNTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE4LjcgMCAyNS40LTI1LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w4MCA4MHpcIl1cbn07XG5jb25zdCBmYUFycm93VXBaQSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC16LWEnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYWxwaGEtdXAtYWx0XCJdLCBcImY4ODJcIiwgXCJNMTgzLjYgNDIuNEMxNzcuNSAzNS44IDE2OSAzMiAxNjAgMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDEyOCAxNDYuMyAxMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDEuNyAzMi40IDM1LjRjMTEuOSAxMyAzMi4yIDEzLjkgNDUuMiAyczEzLjktMzIuMiAyLTQ1LjJsLTg4LTk2ek0zMjAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEwzNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxOTJjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTY0IDEyOC0xNiAzMmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTE2LTMyLTY0LTEyOEM0MzkuMiAyNjIuOCA0MjguMSAyNTYgNDE2IDI1NnpNMzk1LjggNDAwTDQxNiAzNTkuNiA0MzYuMiA0MDBsLTQwLjQgMHpcIl1cbn07XG5jb25zdCBmYVNvcnRBbHBoYVVwQWx0ID0gZmFBcnJvd1VwWkE7XG5jb25zdCBmYUZpcmVGbGFtZUN1cnZlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJlLWZsYW1lLWN1cnZlZCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiZmlyZS1hbHRcIl0sIFwiZjdlNFwiLCBcIk0xNTMuNiAyOS45bDE2LTIxLjNDMTczLjYgMy4yIDE4MCAwIDE4Ni43IDBDMTk4LjQgMCAyMDggOS42IDIwOCAyMS4zVjQzLjVjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuN0MzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEySDE5MkM4NiA1MTIgMCA0MjYgMCAzMjB2LTMuOGMwLTQ4LjggMTkuNC05NS42IDUzLjktMTMwLjFsMy41LTMuNWM0LjItNC4yIDEwLTYuNiAxNi02LjZDODUuOSAxNzYgOTYgMTg2LjEgOTYgMTk4LjZWMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR2LTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuN2MwLTI3LjcgOS01NC44IDI1LjYtNzYuOXpcIl1cbn07XG5jb25zdCBmYUZpcmVBbHQgPSBmYUZpcmVGbGFtZUN1cnZlZDtcbmNvbnN0IGZhVG9ybmFkbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3JuYWRvJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3Nzg2XSwgXCJmNzZmXCIsIFwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTZDNDE2IDEwLjEgNDA1LjkgMCAzOTMuNCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyem0zNTIuMiA5NkwxMy42IDEyOGMxMi4yIDM1LjkgMzIuMyA2OC43IDU4LjggOTZMNDEyIDIyNGwtNDcuMi02Mi45Yy03LjMtOS43LTExLjYtMjEuMi0xMi42LTMzLjF6bS0yMjYgMTM4LjJsMTE2LjQgNjguNWM4LjIgNC44IDE1LjggMTAuNyAyMi41IDE3LjNMNDQ1IDM1MmMyLTkuOCAzLTE5LjkgMy0zMC4xYzAtMjMtNS4zLTQ1LjUtMTUuMy02NS45bC0zMjIuNSAwYzUuMiAzLjYgMTAuNSA3IDE2IDEwLjJ6TTI4OCAzODRjMTAuMyAyMS40IDEzLjggNDUuNSA5LjkgNjlsLTUuOSAzNS43Yy0yIDEyLjIgNy40IDIzLjQgMTkuOCAyMy40YzUuMyAwIDEwLjQtMi4xIDE0LjItNS45bDc4LjItNzguMmMxMi44LTEyLjggMjMuMS0yNy43IDMwLjQtNDMuOUwyODggMzg0elwiXVxufTtcbmNvbnN0IGZhRmlsZUNpcmNsZVBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jaXJjbGUtcGx1cycsXG4gIGljb246IFs1NzYsIDUxMiwgWzU4NjA2XSwgXCJlNDk0XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0w2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTM4NCA2NGwtMTI4IDBMMjU2IDAgMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCb29rUXVyYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1xdXJhbicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicXVyYW5cIl0sIFwiZjY4N1wiLCBcIk0zNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZMNjQgNTEybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDY0IDAgMzUyIDB6bTAgMzg0TDk2IDM4NGwwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyek0yNzQuMSAxNTAuMmwtOC45IDIxLjQtMjMuMSAxLjljLTUuNyAuNS04IDcuNS0zLjcgMTEuMkwyNTYgMTk5LjhsLTUuNCAyMi42Yy0xLjMgNS41IDQuNyA5LjkgOS42IDYuOUwyODAgMjE3LjJsMTkuOCAxMi4xYzQuOSAzIDEwLjktMS40IDkuNi02LjlMMzA0IDE5OS44bDE3LjYtMTUuMWM0LjMtMy43IDItMTAuOC0zLjctMTEuMmwtMjMuMS0xLjktOC45LTIxLjRjLTIuMi01LjMtOS42LTUuMy0xMS44IDB6TTk2IDE5MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGMyNS42IDAgNDkuNS03LjUgNjkuNS0yMC41YzMuMi0yLjEgNC41LTYuMiAzLjEtOS43cy01LjItNS42LTktNC44Yy02LjEgMS4yLTEyLjUgMS45LTE5IDEuOWMtNTIuNCAwLTk0LjktNDIuNS05NC45LTk0LjlzNDIuNS05NC45IDk0LjktOTQuOWM2LjUgMCAxMi44IC43IDE5IDEuOWMzLjggLjggNy41LTEuMyA5LTQuOHMuMi03LjYtMy4xLTkuN0MyNzMuNSA3MS41IDI0OS42IDY0IDIyNCA2NEMxNTMuMyA2NCA5NiAxMjEuMyA5NiAxOTJ6XCJdXG59O1xuY29uc3QgZmFRdXJhbiA9IGZhQm9va1F1cmFuO1xuY29uc3QgZmFBbmNob3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTg3NV0sIFwiZjEzZFwiLCBcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwTDIyNCAxNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDIwOC00OCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNi4xIDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw4MCAwIDgwIDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02LjEgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTYtNTZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC01NiA1NmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctNyAwIDYuMWMwIDUzLTQzIDk2LTk2IDk2bC00OCAwIDAtMjA4IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjkgMHpcIl1cbn07XG5jb25zdCBmYUJvcmRlckFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3JkZXItYWxsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODRjXCIsIFwiTTM4NCA5NmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHptMCAxOTJsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6TTE5MiAyMjRMNjQgMjI0IDY0IDk2bDEyOCAwIDAgMTI4ek02NCAyODhsMTI4IDAgMCAxMjhMNjQgNDE2bDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbmNvbnN0IGZhRmFjZUFuZ3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtYW5ncnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDQsIFwiYW5ncnlcIl0sIFwiZjU1NlwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTMzOC43IDM5NS45YzYuNi01LjkgNy4xLTE2IDEuMi0yMi42QzMyMy44IDM1NS40IDI5NS43IDMzNiAyNTYgMzM2cy02Ny44IDE5LjQtODMuOSAzNy4zYy01LjkgNi42LTUuNCAxNi43IDEuMiAyMi42czE2LjcgNS40IDIyLjYtMS4yYzExLjctMTMgMzEuNi0yNi43IDYwLjEtMjYuN3M0OC40IDEzLjcgNjAuMSAyNi43YzUuOSA2LjYgMTYgNy4xIDIyLjYgMS4yek0xNzYuNCAyNzJjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC0xLjUtLjEtMy0uMy00LjRsMTAuOSAzLjZjOC40IDIuOCAxNy40LTEuNyAyMC4yLTEwLjFzLTEuNy0xNy40LTEwLjEtMjAuMmwtOTYtMzJjLTguNC0yLjgtMTcuNCAxLjctMjAuMiAxMC4xczEuNyAxNy40IDEwLjEgMjAuMmwzMC43IDEwLjJjLTUuOCA1LjgtOS4zIDEzLjgtOS4zIDIyLjZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTguOS0zLjYtMTctOS41LTIyLjhsMzAuMi0xMC4xYzguNC0yLjggMTIuOS0xMS45IDEwLjEtMjAuMnMtMTEuOS0xMi45LTIwLjItMTAuMWwtOTYgMzJjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMnMxMS45IDEyLjkgMjAuMiAxMC4xbDExLjctMy45Yy0uMiAxLjUtLjMgMy4xLS4zIDQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQW5ncnkgPSBmYUZhY2VBbmdyeTtcbmNvbnN0IGZhQ29va2llQml0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb29raWUtYml0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU2NFwiLCBcIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjZjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOWMtLjktNS4zLTUuMy05LjMtMTAuNi0xMC4xYy01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNGMtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42Yy01NC42LTguNy05Ny43LTUyLTEwNi4yLTEwNi44ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQXJyb3dUcmVuZERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdHJlbmQtZG93bicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5N1wiLCBcIk0zODQgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODIuN0wzNDIuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTkyIDI0Mi43IDU0LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMMzIwIDIwNS4zIDQ2Ni43IDM1MiAzODQgMzUyelwiXVxufTtcbmNvbnN0IGZhUnNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZmVlZFwiXSwgXCJmMDllXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJjMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA0MTZ6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xuY29uc3QgZmFGZWVkID0gZmFSc3M7XG5jb25zdCBmYURyYXdQb2x5Z29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYXctcG9seWdvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVlZVwiLCBcIk05NiAxNTEuNGwwIDIwOS4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzAtLjEgLjEtLjIgLjEtLjNsLTQuNS03LjktMzItNTZzMCAwIDAgMGMtMS40IC4xLTIuOCAuMS00LjIgLjFjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMS40IDAgMi44IDAgNC4yIC4xYzAgMCAwIDAgMCAwbDMyLTU2IDQuNS03LjktLjEtLjMtMjA5LjEgMGMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40ek0zODQuMyAzNTJjMzUuMiAuMiA2My43IDI4LjcgNjMuNyA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGMtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yMDkuMUMxMi45IDE0MC40IDAgMTE5LjcgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMzUuMy0yOC41IDYzLjgtNjMuNyA2NGwtNC41IDcuOS0zMiA1Ni0yLjMgNGM0LjIgOC41IDYuNSAxOCA2LjUgMjguMXMtMi4zIDE5LjYtNi41IDI4LjFsMi4zIDQgMzIgNTYgNC41IDcuOXpcIl1cbn07XG5jb25zdCBmYVNjYWxlQmFsYW5jZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NhbGUtYmFsYW5jZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODc4LCBcImJhbGFuY2Utc2NhbGVcIl0sIFwiZjI0ZVwiLCBcIk0zODQgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzk4LjQgOTZjLTUuMiAyNS44LTIyLjkgNDcuMS00Ni40IDU3LjNMMzUyIDQ0OGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjMuNS0xMC4zLTQxLjItMzEuNi00Ni40LTU3LjNMMTI4IDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyOCAwYzE0LjYtMTkuNCAzNy44LTMyIDY0LTMyczQ5LjQgMTIuNiA2NCAzMnptNTUuNiAyODhsMTQ0LjkgMEw1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjFDNjI3LjIgMzgyIDU3NC45IDQxNiA1MTIgNDE2ek0xMjYuOCAxOTUuOEw1NC40IDMyMGwxNDQuOSAwTDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMUMyNDIgMzgyIDE4OS43IDQxNiAxMjYuOCA0MTZTMTEuNyAzODIgLjkgMzM3LjF6XCJdXG59O1xuY29uc3QgZmFCYWxhbmNlU2NhbGUgPSBmYVNjYWxlQmFsYW5jZWQ7XG5jb25zdCBmYUdhdWdlU2ltcGxlSGlnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYXVnZS1zaW1wbGUtaGlnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNjY4LCBcInRhY2hvbWV0ZXJcIiwgXCJ0YWNob21ldGVyLWZhc3RcIl0sIFwiZjYyYVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTE1LjktNS44LTMwLjQtMTUuMy00MS42bDc2LjYtMTQ3LjRjNi4xLTExLjggMS41LTI2LjMtMTAuMi0zMi40cy0yNi4yLTEuNS0zMi40IDEwLjJMMjYyLjEgMjg4LjNjLTItLjItNC0uMy02LjEtLjNjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYVRhY2hvbWV0ZXIgPSBmYUdhdWdlU2ltcGxlSGlnaDtcbmNvbnN0IGZhVGFjaG9tZXRlckZhc3QgPSBmYUdhdWdlU2ltcGxlSGlnaDtcbmNvbnN0IGZhU2hvd2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3dlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODcwM10sIFwiZjJjY1wiLCBcIk02NCAxMzEuOUM2NCAxMTIuMSA4MC4xIDk2IDk5LjkgOTZjOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjItMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMkM0NC43IDMyIDAgNzYuNyAwIDEzMS45TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMTYuMXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFEZXNrdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rlc2t0b3AnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg0MjEsIDYxNzA0LCBcImRlc2t0b3AtYWx0XCJdLCBcImYzOTBcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTc2IDAtMTAuNyAzMkwxNjAgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OS4zIDBMMzM2IDQxNmwxNzYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek01MTIgNjRsMCAyMjRMNjQgMjg4IDY0IDY0bDQ0OCAwelwiXVxufTtcbmNvbnN0IGZhRGVza3RvcEFsdCA9IGZhRGVza3RvcDtcbmNvbnN0IGZhTSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTA5XSwgXCI0ZFwiLCBcIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zTDI1MC42IDM2OS44Yy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMCA2NEMwIDQ5LjkgOS4yIDM3LjUgMjIuNyAzMy40elwiXVxufTtcbmNvbnN0IGZhVGFibGVMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWxpc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInRoLWxpc3RcIl0sIFwiZjAwYlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NEw2NCA5NnptMzg0IDBMMTkyIDk2bDAgNjQgMjU2IDAgMC02NHpNNjQgMjI0bDAgNjQgNjQgMCAwLTY0LTY0IDB6bTM4NCAwbC0yNTYgMCAwIDY0IDI1NiAwIDAtNjR6TTY0IDM1MmwwIDY0IDY0IDAgMC02NC02NCAwem0zODQgMGwtMjU2IDAgMCA2NCAyNTYgMCAwLTY0elwiXVxufTtcbmNvbnN0IGZhVGhMaXN0ID0gZmFUYWJsZUxpc3Q7XG5jb25zdCBmYUNvbW1lbnRTbXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1zbXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNtc1wiXSwgXCJmN2NkXCIsIFwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjNjMCAwIDAgMCAwIDBjMCAwIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNOTYgMjEyLjhjMC0yMC4zIDE2LjUtMzYuOCAzNi44LTM2LjhsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTIuNyAwLTQuOCAyLjItNC44IDQuOGMwIDEuNiAuOCAzLjEgMi4yIDRsMjkuNCAxOS42YzEwLjMgNi44IDE2LjQgMTguMyAxNi40IDMwLjdjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMTEyIDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNy4yIDBjMi43IDAgNC44LTIuMiA0LjgtNC44YzAtMS42LS44LTMuMS0yLjItNGwtMjkuNC0xOS42QzEwMi4yIDIzNi43IDk2IDIyNS4yIDk2IDIxMi44ek0zNzIuOCAxNzZsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTIuNyAwLTQuOCAyLjItNC44IDQuOGMwIDEuNiAuOCAzLjEgMi4yIDRsMjkuNCAxOS42YzEwLjIgNi44IDE2LjQgMTguMyAxNi40IDMwLjdjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMMzUyIDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNy4yIDBjMi43IDAgNC44LTIuMiA0LjgtNC44YzAtMS42LS44LTMuMS0yLjItNGwtMjkuNC0xOS42Yy0xMC4yLTYuOC0xNi40LTE4LjMtMTYuNC0zMC43YzAtMjAuMyAxNi41LTM2LjggMzYuOC0zNi44em0tMTUyIDYuNEwyNTYgMjI5LjNsMzUuMi00Ni45YzQuMS01LjUgMTEuMy03LjggMTcuOS01LjZzMTAuOSA4LjMgMTAuOSAxNS4ybDAgOTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC0xOS4yIDI1LjZjLTMgNC03LjggNi40LTEyLjggNi40cy05LjgtMi40LTEyLjgtNi40TDIyNCAyNDBsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNi45IDQuNC0xMyAxMC45LTE1LjJzMTMuNyAuMSAxNy45IDUuNnpcIl1cbn07XG5jb25zdCBmYVNtcyA9IGZhQ29tbWVudFNtcztcbmNvbnN0IGZhQm9vayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MjEyXSwgXCJmMDJkXCIsIFwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyODggMCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzg0IDAgOTYgMHptMCAzODRsMjU2IDAgMCA2NEw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTMyLTI0MGMwLTguOCA3LjItMTYgMTYtMTZsMTkyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDQ4bDE5MiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIl1cbn07XG5jb25zdCBmYVVzZXJQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGx1cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjIzNFwiLCBcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGw5MS40IDBDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMMjkuNyA1MTJDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek01MDQgMzEybDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG5jb25zdCBmYUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTAwMDMsIDEwMDA0XSwgXCJmMDBjXCIsIFwiTTQzOC42IDEwNS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0yNTYgMjU2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgMzM4LjcgMzkzLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5VGhyZWVRdWFydGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJiYXR0ZXJ5LTRcIl0sIFwiZjI0MVwiLCBcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMODAgMzUyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZMMCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsMzg0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMODAgOTZ6bTI3MiA5Nkw5NiAxOTJsMCAxMjggMjU2IDAgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFCYXR0ZXJ5NCA9IGZhQmF0dGVyeVRocmVlUXVhcnRlcnM7XG5jb25zdCBmYUhvdXNlQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTA5XCIsIFwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWwzMiAwIDAgNjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOGwwIDExMmMwIDIyLjEgMTcuOSA0MCA0MCA0MGwxNiAwYzEuMiAwIDIuNC0uMSAzLjYtLjJjMS41IC4xIDMgLjIgNC41IC4ybDMxLjkgMCAyNCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtMjQgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwIC43IDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJdXG59O1xuY29uc3QgZmFBbmdsZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtbGVmdCcsXG4gIGljb246IFszMjAsIDUxMiwgWzgyNDldLCBcImYxMDRcIiwgXCJNNDEuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI1NiAyNDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHpcIl1cbn07XG5jb25zdCBmYURpYWdyYW1TdWNjZXNzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlhZ3JhbS1zdWNjZXNzb3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0N2FcIiwgXCJNNTEyIDQxNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgMTYwbDAtNjQgMTQ0IDAgMTYgMCAwIDY0TDY0IDE2MHptMjI0IDBsMC02NCA4MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2LTM4LjEgMGMtMjEuNCAwLTMyLjEgMjUuOS0xNyA0MUwzOTkgMjM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDUwMyAxNjljMTUuMS0xNS4xIDQuNC00MS0xNy00MUw0NDggMTI4bDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMMjI0IDMybC0xNiAwTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpcIl1cbn07XG5jb25zdCBmYVRydWNrQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1hcnJvdy1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4YlwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDUwLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w1ODkuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE4LjcgMCAzMiAwIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bC0xMjggMGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNNDE2IDI1NmwxMjggMCAwLTE4LjdMNDY2LjcgMTYwIDQxNiAxNjBsMCA5NnpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTM2OC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yNTcgOTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzkgMzlMOTYgMTY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2Ni4xIDAtMzkgMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNTcgOTV6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NTcGxpdFVwQW5kTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtc3BsaXQtdXAtYW5kLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YmNcIiwgXCJNMjQ2LjYgMTUwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDM1MiAxMDkuMyAzNTIgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMTQuNyAwIDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMjU2IDIyNCAyNTZjMjMuMyAwIDQ1LjIgNi4yIDY0IDE3LjFsMC0xNjMuOS00MS40IDQxLjR6XCJdXG59O1xuY29uc3QgZmFIYW5kRmlzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWZpc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5OTk0LCBcImZpc3QtcmFpc2VkXCJdLCBcImY2ZGVcIiwgXCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTItNjQgMCAwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwLTY0IDAgMC04MHptMTkyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZ6bTk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNmMxMy4yIDAgMjUuNC00IDM1LjYtMTAuOGM4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44YzExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA1Mi4zLTI1LjEgOTguOC02NCAxMjhsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzguNGMtMTcuMy03LjktMzMuMi0xOC44LTQ2LjktMzIuNUw2OS41IDM1Ny41QzQ1LjUgMzMzLjUgMzIgMzAwLjkgMzIgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyelwiXVxufTtcbmNvbnN0IGZhRmlzdFJhaXNlZCA9IGZhSGFuZEZpc3Q7XG5jb25zdCBmYUNsb3VkTW9vbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1tb29uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNmMzXCIsIFwiTTQ5NS44IDBjNS41IDAgMTAuOSAuMiAxNi4zIC43YzcgLjYgMTIuOCA1LjcgMTQuMyAxMi41cy0xLjYgMTMuOS03LjcgMTcuM2MtNDQuNCAyNS4yLTc0LjQgNzMtNzQuNCAxMjcuOGMwIDgxIDY1LjUgMTQ2LjYgMTQ2LjIgMTQ2LjZjOC42IDAgMTctLjcgMjUuMS0yLjFjNi45LTEuMiAxMy44IDIuMiAxNyA4LjVzMS45IDEzLjgtMy4xIDE4LjdjLTM0LjUgMzMuNi04MS43IDU0LjQtMTMzLjYgNTQuNGMtOS4zIDAtMTguNC0uNy0yNy40LTEuOWMtMTEuMi0yMi42LTI5LjgtNDAuOS01Mi42LTUxLjdjLTIuNy01OC41LTUwLjMtMTA1LjMtMTA5LjItMTA2LjdjLTEuNy0xMC40LTIuNi0yMS0yLjYtMzEuOEMzMDQgODYuMSAzODkuOCAwIDQ5NS44IDB6TTQ0Ny45IDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwTDk2IDUxMS45Yy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJdXG59O1xuY29uc3QgZmFCcmllZmNhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZWZjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTg4XSwgXCJmMGIxXCIsIFwiTTE4NCA0OGwxNDQgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MEwxNzYgOTZsMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDBMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwbDAgOTYgMTkyIDAgMTI4IDAgMTkyIDAgMC05NmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDE4NCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNTEyIDI4OGwtMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMkwwIDI4OCAwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyOHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkZhbGxpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWZhbGxpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NDZcIiwgXCJNMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5LjhjMCA1NC42LTI3LjkgMTA0LjYtNzIuNSAxMzMuNmwuMiAuM0wzMDQuNSAyNTZsODcuNSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzg0IDMyMGwtOTYgMC0xLjQgMCA5Mi4zIDE0Mi42YzkuNiAxNC44IDUuNCAzNC42LTkuNSA0NC4zcy0zNC42IDUuNC00NC4zLTkuNUwxNjQuNSAyNDkuMmMtMi45IDkuMi00LjUgMTktNC41IDI5bDAgNzMuOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTczLjhjMC02NS4xIDM5LjYtMTIzLjcgMTAwLjEtMTQ3LjlDMjMyLjMgMTE1LjggMjU2IDgwLjggMjU2IDQxLjhsMC05LjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTExMiAzMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xuY29uc3QgZmFJbWFnZVBvcnRyYWl0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ltYWdlLXBvcnRyYWl0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJwb3J0cmFpdFwiXSwgXCJmM2UwXCIsIFwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NHpNMTI4IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTgwIDM1Ni42YzAtMzcuOSAzMC43LTY4LjYgNjguNi02OC42bDg2LjkgMGMzNy45IDAgNjguNiAzMC43IDY4LjYgNjguNmMwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNGwtMTY5LjEgMEM5Mi4zIDM4NCA4MCAzNzEuNyA4MCAzNTYuNnpcIl1cbn07XG5jb25zdCBmYVBvcnRyYWl0ID0gZmFJbWFnZVBvcnRyYWl0O1xuY29uc3QgZmFVc2VyVGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA3XCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMmwzODguNiAwYzEwIDAgMTguOC00LjkgMjQuMi0xMi41bC05OS4yLTk5LjJjLTE0LjktMTQuOS0yMy4zLTM1LjEtMjMuMy01Ni4xbDAtMzNjLTE1LjktNC43LTMyLjgtNy4yLTUwLjMtNy4ybC05MS40IDB6TTM4NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODIuN2MwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w0NzguMSA0OTEuM2MxOC43IDE4LjcgNDkuMSAxOC43IDY3LjkgMGw3My40LTczLjRjMTguNy0xOC43IDE4LjctNDkuMSAwLTY3LjlMNTEyIDI0Mi43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDM4NCAyMjR6bTI0IDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xuY29uc3QgZmFSdWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY5XCIsIFwiTTI0IDY0bDMyIDAgMjQgMCAwIDI0IDAgODggMCA4MCAwIDgwIDAgODggMCAyNC0yNCAwLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em04OCAwbDQxNiAwIDAgMzg0LTQxNiAwIDAtMzg0ek02NDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMC0yNCAwIDAtMjQgMC04OCAwLTgwIDAtODAgMC04OCAwLTI0IDI0IDAgMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpcIl1cbn07XG5jb25zdCBmYUVhcnRoRXVyb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWV1cm9wZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2xvYmUtZXVyb3BlXCJdLCBcImY3YTJcIiwgXCJNMjY2LjMgNDguM0wyMzIuNSA3My42Yy01LjQgNC04LjUgMTAuNC04LjUgMTcuMWwwIDkuMWMwIDYuOCA1LjUgMTIuMyAxMi4zIDEyLjNjMi40IDAgNC44LS43IDYuOC0yLjFsNDEuOC0yNy45YzItMS4zIDQuNC0yLjEgNi44LTIuMWwxIDBjNi4yIDAgMTEuMyA1LjEgMTEuMyAxMS4zYzAgMy0xLjIgNS45LTMuMyA4bC0xOS45IDE5LjljLTUuOCA1LjgtMTIuOSAxMC4yLTIwLjcgMTIuOGwtMjYuNSA4LjhjLTUuOCAxLjktOS42IDcuMy05LjYgMTMuNGMwIDMuNy0xLjUgNy4zLTQuMSAxMGwtMTcuOSAxNy45Yy02LjQgNi40LTkuOSAxNS05LjkgMjRsMCA0LjNjMCAxNi40IDEzLjYgMjkuNyAyOS45IDI5LjdjMTEgMCAyMS4yLTYuMiAyNi4xLTE2bDQtOC4xYzIuNC00LjggNy40LTcuOSAxMi44LTcuOWM0LjUgMCA4LjcgMi4xIDExLjQgNS43bDE2LjMgMjEuN2MyLjEgMi45IDUuNSA0LjUgOS4xIDQuNWM4LjQgMCAxMy45LTguOSAxMC4xLTE2LjRsLTEuMS0yLjNjLTMuNS03IDAtMTUuNSA3LjUtMThsMjEuMi03LjFjNy42LTIuNSAxMi43LTkuNiAxMi43LTE3LjZjMC0xMC4zIDguMy0xOC42IDE4LjYtMTguNmwyOS40IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTIwLjcgMGMtNy4yIDAtMTQuMiAyLjktMTkuMyA4bC00LjcgNC43Yy0yLjEgMi4xLTMuMyA1LTMuMyA4YzAgNi4yIDUuMSAxMS4zIDExLjMgMTEuM2wxMS4zIDBjNiAwIDExLjggMi40IDE2IDYuNmw2LjUgNi41YzEuOCAxLjggMi44IDQuMyAyLjggNi44cy0xIDUtMi44IDYuOGwtNy41IDcuNUMzODYgMjYyIDM4NCAyNjYuOSAzODQgMjcyczIgMTAgNS43IDEzLjdMNDA4IDMwNGMxMC4yIDEwLjIgMjQuMSAxNiAzOC42IDE2bDcuMyAwYzYuNS0yMC4yIDEwLTQxLjcgMTAtNjRjMC0xMTEuNC04Ny42LTIwMi40LTE5Ny43LTIwNy43em0xNzIgMzA3LjljLTMuNy0yLjYtOC4yLTQuMS0xMy00LjFjLTYgMC0xMS44LTIuNC0xNi02LjZMMzk2IDMzMmMtNy43LTcuNy0xOC0xMi0yOC45LTEyYy05LjcgMC0xOS4yLTMuNS0yNi42LTkuOEwzMTQgMjg3LjRjLTExLjYtOS45LTI2LjQtMTUuNC00MS43LTE1LjRsLTIwLjkgMGMtMTIuNiAwLTI1IDMuNy0zNS41IDEwLjdMMTg4LjUgMzAxYy0xNy44IDExLjktMjguNSAzMS45LTI4LjUgNTMuM2wwIDMuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxNiAxNmM4LjUgOC41IDIwIDEzLjMgMzIgMTMuM2wyMS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRjMCAyLjUgLjQgNSAxLjEgNy4zYzcxLjMtNS44IDEzMi41LTQ3LjYgMTY1LjItMTA3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg3LjMgMTAwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zMiAzMmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMyLTMyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwiXVxufTtcbmNvbnN0IGZhR2xvYmVFdXJvcGUgPSBmYUVhcnRoRXVyb3BlO1xuY29uc3QgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtZmxhdGJlZC1zdWl0Y2FzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wibHVnZ2FnZS1jYXJ0XCJdLCBcImY1OWRcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY2LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2TDE0NCA0NDhjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek00MzIgOTZsMC00MGMwLTQuNC0zLjYtOC04LThsLTgwIDBjLTQuNCAwLTggMy42LTggOGwwIDQwIDk2IDB6TTI4OCA5NmwwLTQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDgwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAwIDIyNC0xOTIgMCAwLTIyNHpNNTEyIDMyMGwwLTIyNCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwek0yNDAgOTZsMTYgMCAwIDIyNC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OHpcIl1cbn07XG5jb25zdCBmYUx1Z2dhZ2VDYXJ0ID0gZmFDYXJ0RmxhdGJlZFN1aXRjYXNlO1xuY29uc3QgZmFSZWN0YW5nbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjE2NCwgXCJyZWN0YW5nbGUtdGltZXNcIiwgXCJ0aW1lcy1yZWN0YW5nbGVcIiwgXCJ3aW5kb3ctY2xvc2VcIl0sIFwiZjQxMFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0xNzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwiXVxufTtcbmNvbnN0IGZhUmVjdGFuZ2xlVGltZXMgPSBmYVJlY3RhbmdsZVhtYXJrO1xuY29uc3QgZmFUaW1lc1JlY3RhbmdsZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG5jb25zdCBmYVdpbmRvd0Nsb3NlID0gZmFSZWN0YW5nbGVYbWFyaztcbmNvbnN0IGZhQmFodFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFodC1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMGFjXCIsIFwiTTE0NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyTDM3LjYgNjRDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDIyNGwwIDQxLjdMMCAyODggMCA0MDYuM2MwIDIzIDE4LjcgNDEuNyA0MS43IDQxLjdsNzAuMyAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJjMC00MC4xLTIxLjEtNzUuMy01Mi43LTk1LjFDMjgwLjMgMjIyLjYgMjg4IDIwMC4yIDI4OCAxNzZjMC02MS45LTUwLjEtMTEyLTExMi0xMTJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTEyIDEyOGwwIDk2LTQ4IDAgMC05NiA0OCAwem02NCA5NmwwLTk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4em0tNjQgNjRsMCA5Ni00OCAwIDAtOTYgNDggMHptNjQgOTZsMC05NiAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0zMiAwelwiXVxufTtcbmNvbnN0IGZhQm9va09wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjE0LCAxMjgzNjZdLCBcImY1MThcIiwgXCJNMjQ5LjYgNDcxLjVjMTAuOCAzLjggMjIuNC00LjEgMjIuNC0xNS41bDAtMzc3LjRjMC00LjItMS42LTguNC01LTExQzI0Ny40IDUyIDIwMi40IDMyIDE0NCAzMkM5My41IDMyIDQ2LjMgNDUuMyAxOC4xIDU2LjFDNi44IDYwLjUgMCA3MS43IDAgODMuOEwwIDQ1NC4xYzAgMTEuOSAxMi44IDIwLjIgMjQuMSAxNi41QzU1LjYgNDYwLjEgMTA1LjUgNDQ4IDE0NCA0NDhjMzMuOSAwIDc5IDE0IDEwNS42IDIzLjV6bTc2LjggMEMzNTMgNDYyIDM5OC4xIDQ0OCA0MzIgNDQ4YzM4LjUgMCA4OC40IDEyLjEgMTE5LjkgMjIuNmMxMS4zIDMuOCAyNC4xLTQuNiAyNC4xLTE2LjVsMC0zNzAuM2MwLTEyLjEtNi44LTIzLjMtMTguMS0yNy42QzUyOS43IDQ1LjMgNDgyLjUgMzIgNDMyIDMyYy01OC40IDAtMTAzLjQgMjAtMTIzIDM1LjZjLTMuMyAyLjYtNSA2LjgtNSAxMUwzMDQgNDU2YzAgMTEuNCAxMS43IDE5LjMgMjIuNCAxNS41elwiXVxufTtcbmNvbnN0IGZhQm9va0pvdXJuYWxXaGlsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1qb3VybmFsLXdoaWxscycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiam91cm5hbC13aGlsbHNcIl0sIFwiZjY2YVwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDM4NCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJsMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMEw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjRMOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTAuNC0yMzQuNGwtMjEuMi0yMS4yYy0zIDEwLjEtNS4xIDIwLjYtNS4xIDMxLjZjMCAuMiAwIC41IC4xIC44cy4xIC41IC4xIC44TDE2NS4yIDIyNmMyLjUgMi4xIDMuNCA1LjggMi4zIDguOWMtMS4zIDMtNC4xIDUuMS03LjUgNS4xYy0xLjktLjEtMy44LS44LTUuMi0ybC0yMy42LTIwLjZDMTQyLjggMjY3IDE4Ni45IDMwNCAyNDAgMzA0czk3LjMtMzcgMTA4LjktODYuNkwzMjUuMyAyMzhjLTEuNCAxLjItMy4zIDItNS4zIDJjLTIuMi0uMS00LjQtMS4xLTYtMi44Yy0xLjItMS41LTEuOS0zLjQtMi01LjJjLjEtMi4yIDEuMS00LjQgMi44LTZsMzcuMS0zMi41YzAtLjMgMC0uNSAuMS0uOHMuMS0uNSAuMS0uOGMwLTExLTIuMS0yMS41LTUuMS0zMS42bC0yMS4yIDIxLjJjLTMuMSAzLjEtOC4xIDMuMS0xMS4zIDBzLTMuMS04LjEgMC0xMS4ybDI2LjQtMjYuNWMtOC4yLTE3LTIwLjUtMzEuNy0zNS45LTQyLjZjLTIuNy0xLjktNi4yIDEuNC01IDQuNWM4LjUgMjIuNCAzLjYgNDgtMTMgNjUuNmMtMy4yIDMuNC0zLjYgOC45LS45IDEyLjdjOS44IDE0IDEyLjcgMzEuOSA3LjUgNDguNWMtNS45IDE5LjQtMjIgMzQuMS00MS45IDM4LjNsLTEuNC0zNC4zIDEyLjYgOC42Yy42IC40IDEuNSAuNiAyLjMgLjZjMS41IDAgMi43LS44IDMuNS0ycy42LTIuOC0uMS00TDI2MCAyMjUuNGwxOC0zLjZjMS44LS40IDMuMS0yLjEgMy4xLTRzLTEuNC0zLjUtMy4xLTMuOWwtMTgtMy43IDguNS0xNC4zYy44LTEuMiAuOS0yLjkgLjEtNC4xcy0yLTItMy41LTJsLS4xIDBjLS43IC4xLTEuNSAuMy0yLjEgLjdsLTE0LjEgOS42TDI0NCA4Ny45Yy0uMS0yLjItMS45LTMuOS00LTMuOXMtMy45IDEuNi00IDMuOWwtNC42IDExMC44LTEyLTguMWMtMS41LTEuMS0zLjYtLjktNSAuNHMtMS42IDMuNC0uOCA1bDguNiAxNC4zLTE4IDMuN2MtMS44IC40LTMuMSAyLTMuMSAzLjlzMS40IDMuNiAzLjEgNGwxOCAzLjgtOC42IDE0LjJjLS4yIC42LS41IDEuNC0uNSAyYzAgMS4xIC41IDIuMSAxLjIgM2MuOCAuNiAxLjggMSAyLjggMWMuNyAwIDEuNi0uMiAyLjItLjZsMTAuNC03LjEtMS40IDMyLjhjLTE5LjktNC4xLTM2LTE4LjktNDEuOS0zOC4zYy01LjEtMTYuNi0yLjItMzQuNCA3LjYtNDguNWMyLjctMy45IDIuMy05LjMtLjktMTIuN2MtMTYuNi0xNy41LTIxLjYtNDMuMS0xMy4xLTY1LjVjMS4yLTMuMS0yLjMtNi40LTUtNC41Yy0xNS4zIDEwLjktMjcuNiAyNS42LTM1LjggNDIuNmwyNi40IDI2LjVjMy4xIDMuMSAzLjEgOC4xIDAgMTEuMnMtOC4xIDMuMS0xMS4yIDB6XCJdXG59O1xuY29uc3QgZmFKb3VybmFsV2hpbGxzID0gZmFCb29rSm91cm5hbFdoaWxscztcbmNvbnN0IGZhSGFuZGN1ZmZzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRjdWZmcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRmOFwiLCBcIk0yNDAgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTkyIDQ4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyIDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2YzAgMS43LS4yIDMuNC0uNSA1LjFDMjgwLjMgMjI5LjYgMzIwIDI4Ni4yIDMyMCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTY1LjggMzkuNy0xMjIuNCA5Ni41LTE0Ni45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMWwwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAzMjBhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6bTE5Mi05NmMwLTI1LjktNS4xLTUwLjUtMTQuNC03My4xYzE2LjktMzIuOSA0NC44LTU5LjEgNzguOS03My45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMWwwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE2YzAgMS43LS4yIDMuNC0uNSA1LjFDNjAwLjMgMjI5LjYgNjQwIDI4Ni4yIDY0MCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBjLTYyIDAtMTE1LjgtMzUuMy0xNDIuNC04Ni45YzkuMy0yMi41IDE0LjQtNDcuMiAxNC40LTczLjF6bTIyNCAwYTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNMzY4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em04MCA0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFUcmlhbmdsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyaWFuZ2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTg4OCwgXCJleGNsYW1hdGlvbi10cmlhbmdsZVwiLCBcIndhcm5pbmdcIl0sIFwiZjA3MVwiLCBcIk0yNTYgMzJjMTQuMiAwIDI3LjMgNy41IDM0LjUgMTkuOGwyMTYgMzY4YzcuMyAxMi40IDcuMyAyNy43IC4yIDQwLjFTNDg2LjMgNDgwIDQ3MiA0ODBMNDAgNDgwYy0xNC4zIDAtMjcuNi03LjctMzQuNy0yMC4xcy03LTI3LjggLjItNDAuMWwyMTYtMzY4QzIyOC43IDM5LjUgMjQxLjggMzIgMjU2IDMyem0wIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzIgMjI0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xuY29uc3QgZmFFeGNsYW1hdGlvblRyaWFuZ2xlID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xuY29uc3QgZmFXYXJuaW5nID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xuY29uc3QgZmFEYXRhYmFzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkYXRhYmFzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFjMFwiLCBcIk00NDggODBsMCA0OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMTcyLjIgMCAxMjhMMCA4MEMwIDM1LjggMTAwLjMgMCAyMjQgMFM0NDggMzUuOCA0NDggODB6TTM5My4yIDIxNC43YzIwLjgtNy40IDM5LjktMTYuOSA1NC44LTI4LjZMNDQ4IDI4OGMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgMzMyLjIgMCAyODhMMCAxODYuMWMxNC45IDExLjggMzQgMjEuMiA1NC44IDI4LjZDOTkuNyAyMzAuNyAxNTkuNSAyNDAgMjI0IDI0MHMxMjQuMy05LjMgMTY5LjItMjUuM3pNMCAzNDYuMWMxNC45IDExLjggMzQgMjEuMiA1NC44IDI4LjZDOTkuNyAzOTAuNyAxNTkuNSA0MDAgMjI0IDQwMHMxMjQuMy05LjMgMTY5LjItMjUuM2MyMC44LTcuNCAzOS45LTE2LjkgNTQuOC0yOC42bDAgODUuOWMwIDQ0LjItMTAwLjMgODAtMjI0IDgwUzAgNDc2LjIgMCA0MzJsMC04NS45elwiXVxufTtcbmNvbnN0IGZhU2hhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1haWwtZm9yd2FyZFwiXSwgXCJmMDY0XCIsIFwiTTMwNyAzNC44Yy0xMS41IDUuMS0xOSAxNi42LTE5IDI5LjJsMCA2NC0xMTIgMEM3OC44IDEyOCAwIDIwNi44IDAgMzA0QzAgNDE3LjMgODEuNSA0NjcuOSAxMDAuMiA0NzguMWMyLjUgMS40IDUuMyAxLjkgOC4xIDEuOWMxMC45IDAgMTkuNy04LjkgMTkuNy0xOS43YzAtNy41LTQuMy0xNC40LTkuOC0xOS41QzEwOC44IDQzMS45IDk2IDQxNC40IDk2IDM4NGMwLTUzIDQzLTk2IDk2LTk2bDk2IDAgMCA2NGMwIDEyLjYgNy40IDI0LjEgMTkgMjkuMnMyNSAzIDM0LjQtNS40bDE2MC0xNDRjNi43LTYuMSAxMC42LTE0LjcgMTAuNi0yMy44cy0zLjgtMTcuNy0xMC42LTIzLjhsLTE2MC0xNDRjLTkuNC04LjUtMjIuOS0xMC42LTM0LjQtNS40elwiXVxufTtcbmNvbnN0IGZhTWFpbEZvcndhcmQgPSBmYVNoYXJlO1xuY29uc3QgZmFCb3R0bGVEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvdHRsZS1kcm9wbGV0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNGM0XCIsIFwiTTk2IDBDODIuNyAwIDcyIDEwLjcgNzIgMjRzMTAuNyAyNCAyNCAyNGM0LjQgMCA4IDMuNiA4IDhsMCA2NC45YzAgMTIuMi03LjIgMjMuMS0xNy4yIDMwLjFDNTMuNyAxNzQuMSAzMiAyMTIuNSAzMiAyNTZsMCAxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC00My41LTIxLjctODEuOS01NC44LTEwNWMtMTAtNy0xNy4yLTE3LjktMTcuMi0zMC4xTDIxNiA1NmMwLTQuNCAzLjYtOCA4LThjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMHMwIDAgMCAwczAgMCAwIDBMMTA0IDBzMCAwIDAgMHMwIDAgMCAwTDk2IDB6bTY0IDM4MmMtMjYuNSAwLTQ4LTIwLjEtNDgtNDVjMC0xNi44IDIyLjEtNDguMSAzNi4zLTY2LjRjNi03LjggMTcuNS03LjggMjMuNSAwQzE4NS45IDI4OC45IDIwOCAzMjAuMiAyMDggMzM3YzAgMjQuOS0yMS41IDQ1LTQ4IDQ1elwiXVxufTtcbmNvbnN0IGZhTWFza0ZhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzay1mYWNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMWQ3XCIsIFwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFsLTkuMiAwLTE2IDAtNzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4NWMwIDU1LjEgMzcuNSAxMDMuMSA5MC45IDExNi40bDEwOCAyN0MyMzMuOCA0MzUgMjc1LjQgNDQ4IDMyMCA0NDhzODYuMi0xMyAxMjEuMS0zNS41bDEwOC0yN0M2MDIuNSAzNzIuMSA2NDAgMzI0LjEgNjQwIDI2OWwwLTg1YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC03MiAwLTE2IDAtOS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzIuMyAzNDYuM2wtMjkuOC03LjRDNzAuNSAzMzAuOSA0OCAzMDIuMSA0OCAyNjlsMC04NWMwLTQuNCAzLjYtOCA4LThsNDAgMCAwIDQ4YzAgNDUuMSAxMy40IDg3LjIgMzYuMyAxMjIuM3ptNDA1LjEtNy40bC0yOS44IDcuNGMyMy0zNS4yIDM2LjMtNzcuMiAzNi4zLTEyMi4zbDAtNDggNDAgMGM0LjQgMCA4IDMuNiA4IDhsMCA4NWMwIDMzLTIyLjUgNjEuOC01NC41IDY5Ljl6TTE5MiAyMDhjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0xNiA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTE2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUhpbGxSb2Nrc2xpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGlsbC1yb2Nrc2xpZGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MDhcIiwgXCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFSaWdodExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjaGFuZ2UtYWx0XCJdLCBcImYzNjJcIiwgXCJNMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNmwwLTY0TDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNNDgwIDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZjLTYtNi05LjQtMTQuMS05LjQtMjIuNnMzLjQtMTYuNiA5LjQtMjIuNmw5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXMxOS44IDE2LjYgMTkuOCAyOS42bDAgNjQgMzIwIDB6XCJdXG59O1xuY29uc3QgZmFFeGNoYW5nZUFsdCA9IGZhUmlnaHRMZWZ0O1xuY29uc3QgZmFQYXBlclBsYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcGVyLXBsYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE5MTNdLCBcImYxZDhcIiwgXCJNNDk4LjEgNS42YzEwLjEgNyAxNS40IDE5LjEgMTMuNSAzMS4ybC02NCA0MTZjLTEuNSA5LjctNy40IDE4LjItMTYgMjNzLTE4LjkgNS40LTI4IDEuNkwyODQgNDI3LjdsLTY4LjUgNzQuMWMtOC45IDkuNy0yMi45IDEyLjktMzUuMiA4LjFTMTYwIDQ5My4yIDE2MCA0ODBsMC04My42YzAtNCAxLjUtNy44IDQuMi0xMC44TDMzMS44IDIwMi44YzUuOC02LjMgNS42LTE2LS40LTIycy0xNS43LTYuNC0yMi0uN0wxMDYgMzYwLjggMTcuNyAzMTYuNkM3LjEgMzExLjMgLjMgMzAwLjcgMCAyODguOXM1LjktMjIuOCAxNi4xLTI4LjdsNDQ4LTI1NmMxMC43LTYuMSAyMy45LTUuNSAzNCAxLjR6XCJdXG59O1xuY29uc3QgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NjVcIiwgXCJNMjEzLjIgMzJMMjg4IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDc0LjggMGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhsMC00Mi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJjMi4zIDAgNC42LS4zIDYuOC0uN2MtNC41IDE1LjUtNi44IDMxLjgtNi44IDQ4LjdjMCA1LjQgLjIgMTAuNyAuNyAxNmwtLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NEw4Ni42IDQ4MEM1Ni41IDQ4MCAzMiA0NTUuNSAzMiA0MjUuNGMwLTYuMiAxLjEtMTIuNCAzLjEtMTguMkwxNTIuOSA3NC42QzE2MiA0OS4xIDE4Ni4xIDMyIDIxMy4yIDMyek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG5jb25zdCBmYUR1bmdlb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVuZ2VvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZkOVwiLCBcIk0zMzYuNiAxNTYuNWMxLjMgMS4xIDIuNyAyLjIgMy45IDMuM2M5LjMgOC4yIDIzIDEwLjUgMzMuNCAzLjZsNjcuNi00NS4xYzExLjQtNy42IDE0LjItMjMuMiA1LjEtMzMuNEM0MzAgNjYuNiA0MTAuOSA1MC42IDM4OS43IDM3LjZjLTExLjktNy4zLTI2LjktMS40LTMyLjEgMTEuNmwtMzAuNSA3Ni4yYy00LjUgMTEuMSAuMiAyMy42IDkuNSAzMS4yek0zMjggMzYuOGM1LjEtMTIuOC0xLjYtMjcuNC0xNS0zMC41QzI5NC43IDIuMiAyNzUuNiAwIDI1NiAwcy0zOC43IDIuMi01NyA2LjRDMTg1LjUgOS40IDE3OC44IDI0IDE4NCAzNi44bDMwLjMgNzUuOGM0LjUgMTEuMyAxNi44IDE3LjIgMjkgMTZjNC4yLS40IDguNC0uNiAxMi43LS42czguNiAuMiAxMi43IC42YzEyLjEgMS4yIDI0LjQtNC43IDI5LTE2TDMyOCAzNi44ek02NS41IDg1Yy05LjEgMTAuMi02LjMgMjUuOCA1LjEgMzMuNGw2Ny42IDQ1LjFjMTAuMyA2LjkgMjQuMSA0LjYgMzMuNC0zLjZjMS4zLTEuMSAyLjYtMi4zIDQtMy4zYzkuMy03LjUgMTMuOS0yMC4xIDkuNS0zMS4yTDE1NC40IDQ5LjJjLTUuMi0xMi45LTIwLjMtMTguOC0zMi4xLTExLjZDMTAxLjEgNTAuNiA4MiA2Ni42IDY1LjUgODV6bTMxNCAxMzcuMWMuOSAzLjMgMS43IDYuNiAyLjMgMTBjMi41IDEzIDEzIDIzLjkgMjYuMiAyMy45bDgwIDBjMTMuMyAwIDI0LjEtMTAuOCAyMi45LTI0Yy0yLjUtMjcuMi05LjMtNTMuMi0xOS43LTc3LjNjLTUuNS0xMi45LTIxLjQtMTYuNi0zMy4xLTguOWwtNjguNiA0NS43Yy05LjggNi41LTEzLjIgMTkuMi0xMCAzMC41ek01My45IDE0NS44Yy0xMS42LTcuOC0yNy42LTQtMzMuMSA4LjlDMTAuNCAxNzguOCAzLjYgMjA0LjggMS4xIDIzMmMtMS4yIDEzLjIgOS42IDI0IDIyLjkgMjRsODAgMGMxMy4zIDAgMjMuOC0xMC44IDI2LjItMjMuOWMuNi0zLjQgMS40LTYuNyAyLjMtMTBjMy4xLTExLjQtLjItMjQtMTAtMzAuNUw1My45IDE0NS44ek0xMDQgMjg4bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek0yNCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwem0zODQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI3MiAxOTJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTI3MnptLTY0IDMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNDB6bTEyOCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNDB6XCJdXG59O1xuY29uc3QgZmFBbGlnblJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM4XCIsIFwiTTQ0OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwxOTIgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xuY29uc3QgZmFNb25leUJpbGwxV2F2ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLTEtd2F2ZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibW9uZXktYmlsbC13YXZlLWFsdFwiXSwgXCJmNTNiXCIsIFwiTTAgMTEyLjVMMCA0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNGwwLTMwOS45YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMTI4IDQxNmwtNjQgMCAwLTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAyMjRsMC02NCA2NCAwYzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAgNjQtNjQgMHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGw2NCAwIDAgNjR6TTM4NCAyNTZjMCA2MS45LTQzIDExMi05NiAxMTJzLTk2LTUwLjEtOTYtMTEyczQzLTExMiA5Ni0xMTJzOTYgNTAuMSA5NiAxMTJ6TTI1MiAyMDhjMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDI0IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHpcIl1cbn07XG5jb25zdCBmYU1vbmV5QmlsbFdhdmVBbHQgPSBmYU1vbmV5QmlsbDFXYXZlO1xuY29uc3QgZmFMaWZlUmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaWZlLXJpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2RcIiwgXCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNzLTIwLjItMTEzLjktNTQtMTU3LjNjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2czIwLjIgMTEzLjkgNTQgMTU3LjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbmNvbnN0IGZhSGFuZHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNpZ24tbGFuZ3VhZ2VcIiwgXCJzaWduaW5nXCJdLCBcImYyYTdcIiwgXCJNNTQ0IDE2MGwtLjEgNzIuNmMtLjEgNTIuMi0yNCAxMDEtNjQgMTMzLjFjLjEtMS45IC4xLTMuOCAuMS01LjdsMC04YzAtNzEuOC0zNy0xMzguNi05Ny45LTE3Ni43bC02MC4yLTM3LjZjLTguNi01LjQtMTcuOS04LjQtMjcuMy05LjRMMjQ4LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNzggMTM1LjFjMy4zIDUuNyAxMC43IDcuNyAxNi40IDQuNHM3LjctMTAuNyA0LjQtMTYuNGwtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzM2MiA1IDM2OC42IDE2LjVsNjggMTE3LjhzMCAwIDAgMHMwIDAgMCAwbDQzLjMgNzVMNDgwIDE2MGMwLTE3LjcgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMyek0yNDMuOSA4OC41TDI2OC41IDEzMWMtMTMuOSA0LjUtMjYuNCAxMy43LTM0LjcgMjdjLS45IDEuNC0xLjcgMi45LTIuNSA0LjRsLTI4LjktNTBjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44em0tNDYuNCA2My43bDI2LjggNDYuNGMuNiA2IDIuMSAxMS44IDQuMyAxNy40bC00LjcgMC0xMy4zIDBzMCAwIDAgMEwxNzkgMjE2bC0yMy0zOS44Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHpNMjYwLjkgMTc1YzkuNC0xNSAyOS4xLTE5LjUgNDQuMS0xMC4ybDYwLjIgMzcuNkM0MTYuNyAyMzQuNyA0NDggMjkxLjIgNDQ4IDM1MmwwIDhjMCA4My45LTY4LjEgMTUyLTE1MiAxNTJsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDkyIDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMODggNDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEyNCAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNTYgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw4OCAyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTM2IDBzMCAwIDAgMHMwIDAgMCAwbDkzLjIgMEwyNzEgMjE5LjFjLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xelwiXVxufTtcbmNvbnN0IGZhU2lnbkxhbmd1YWdlID0gZmFIYW5kcztcbmNvbnN0IGZhU2lnbmluZyA9IGZhSGFuZHM7XG5jb25zdCBmYUNhbGVuZGFyRGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLWRheScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw5NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNmwtOTYgMHpcIl1cbn07XG5jb25zdCBmYVdhdGVyTGFkZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhdGVyLWxhZGRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibGFkZGVyLXdhdGVyXCIsIFwic3dpbW1pbmctcG9vbFwiXSwgXCJmNWM1XCIsIFwiTTEyOCAxMjcuN0MxMjggNzQuOSAxNzAuOSAzMiAyMjMuNyAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjhjLTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS43bDAgOTYuMyAxOTIgMCAwLTk2LjNDMzg0IDc0LjkgNDI2LjkgMzIgNDc5LjcgMzJjNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44Yy0xNy41IDAtMzEuNyAxNC4yLTMxLjcgMzEuN0w0NDggMzYxYy0xLjYgMS0zLjMgMi00LjggMy4xYy0xOCAxMi40LTQwLjEgMjAuMy01OS4yIDIwLjNjMCAwIDAgMCAwIDBsMC05Ni41LTE5MiAwIDAgOTYuNWMtMTkgMC00MS4yLTcuOS01OS4xLTIwLjNjLTEuNi0xLjEtMy4yLTIuMi00LjktMy4xbDAtMjMzLjN6TTMwNi41IDM4OS45QzMyOSA0MDUuNCAzNTYuNSA0MTYgMzg0IDQxNmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWMwIDAgMCAwIDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDQ2OS43IDQxNyA0ODAgMzg0IDQ4MGMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdjMCAwIDAgMCAwIDBDMTM2LjcgNDA1LjIgMTY1LjEgNDE2IDE5MiA0MTZjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJdXG59O1xuY29uc3QgZmFMYWRkZXJXYXRlciA9IGZhV2F0ZXJMYWRkZXI7XG5jb25zdCBmYVN3aW1taW5nUG9vbCA9IGZhV2F0ZXJMYWRkZXI7XG5jb25zdCBmYUFycm93c1VwRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtZG93bicsXG4gIGljb246IFszMjAsIDUxMiwgW1wiYXJyb3dzLXZcIl0sIFwiZjA3ZFwiLCBcIk0xODIuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggMTA5LjNsMCAyOTMuNUw4Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDAyLjdsMC0yOTMuNSA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6XCJdXG59O1xuY29uc3QgZmFBcnJvd3NWID0gZmFBcnJvd3NVcERvd247XG5jb25zdCBmYUZhY2VHcmltYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3JpbWFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NiwgXCJncmltYWNlXCJdLCBcImY1N2ZcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTExMmwtOCAwIDAtNDAgNTUuMyAwYy0zLjggMjIuNy0yMy42IDQwLTQ3LjMgNDB6bTQ3LjMtNTZMMzQ0IDM0NGwwLTQwIDggMGMyMy44IDAgNDMuNSAxNy4zIDQ3LjMgNDB6TTMyOCAzNDRsLTY0IDAgMC00MCA2NCAwIDAgNDB6bTAgNTZsLTY0IDAgMC00MCA2NCAwIDAgNDB6bS04MC05NmwwIDQwLTY0IDAgMC00MCA2NCAwem0wIDU2bDAgNDAtNjQgMCAwLTQwIDY0IDB6bS04MC0xNmwtNTUuMyAwYzMuOC0yMi43IDIzLjYtNDAgNDcuMy00MGw4IDAgMCA0MHptMCA1NmwtOCAwYy0yMy44IDAtNDMuNS0xNy4zLTQ3LjMtNDBsNTUuMyAwIDAgNDB6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhR3JpbWFjZSA9IGZhRmFjZUdyaW1hY2U7XG5jb25zdCBmYVdoZWVsY2hhaXJNb3ZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWVsY2hhaXItbW92ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wid2hlZWxjaGFpci1hbHRcIl0sIFwiZTJjZVwiLCBcIk0zMjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjA0LjUgMTIxLjNjLTUuNC0yLjUtMTEuNy0xLjktMTYuNCAxLjdsLTQwLjkgMzAuN2MtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw0MC45LTMwLjdjMjMuNy0xNy44IDU1LjMtMjEgODIuMS04LjRsOTAuNCA0Mi41YzI5LjEgMTMuNyAzNi44IDUxLjYgMTUuMiA3NS41TDI5OS4xIDIyNGw5Ny40IDBjMzAuMyAwIDUzIDI3LjcgNDcuMSA1Ny40TDQxNS40IDQyMi4zYy0zLjUgMTcuMy0yMC4zIDI4LjYtMzcuNyAyNS4xcy0yOC42LTIwLjMtMjUuMS0zNy43TDM3NyAyODhsLTcwLjMgMGM4LjYgMTkuNiAxMy4zIDQxLjIgMTMuMyA2NGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyczcxLjYtMTYwIDE2MC0xNjBjMTEuMSAwIDIyIDEuMSAzMi40IDMuM2w1NC4yLTU0LjItNDIuMS0xOS44ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwiXVxufTtcbmNvbnN0IGZhV2hlZWxjaGFpckFsdCA9IGZhV2hlZWxjaGFpck1vdmU7XG5jb25zdCBmYVR1cm5Eb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3R1cm4tZG93bicsXG4gIGljb246IFszODQsIDUxMiwgWzEwNTQ5LCBcImxldmVsLWRvd24tYWx0XCJdLCBcImYzYmVcIiwgXCJNMzUwIDMzNC41YzMuOCA4LjggMiAxOS00LjYgMjZsLTEzNiAxNDRjLTQuNSA0LjgtMTAuOCA3LjUtMTcuNCA3LjVzLTEyLjktMi43LTE3LjQtNy41bC0xMzYtMTQ0Yy02LjYtNy04LjQtMTcuMi00LjYtMjZzMTIuNS0xNC41IDIyLTE0LjVsODggMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwbDgwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgODggMGM5LjYgMCAxOC4yIDUuNyAyMiAxNC41elwiXVxufTtcbmNvbnN0IGZhTGV2ZWxEb3duQWx0ID0gZmFUdXJuRG93bjtcbmNvbnN0IGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmctYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTJcIiwgXCJNMjA4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTIzLjcgMjAwLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDI4MSAyMzIuN2wtMTUuMy0zNi44QzI0OC41IDE1NC44IDIwOC4zIDEyOCAxNjMuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMzIuOSAxNC42LTU4LjEgNDIuNC02OS40IDc2LjVsLTIuNiA3LjhjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMi42LTcuOGM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41em0tMzAgMTM1LjFMNjguNyAzOTggOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDExNi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6TTU1MC42IDE1My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w1MzAuNyAyMjQgMzg0IDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNDYuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4MC04MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtODAtODB6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVFbnZlbG9wZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZW52ZWxvcGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImVudmVsb3BlLXNxdWFyZVwiXSwgXCJmMTk5XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIxOCAyNzEuN0w2NC4yIDE3Mi40QzY2IDE1Ni40IDc5LjUgMTQ0IDk2IDE0NGwyNTYgMGMxNi41IDAgMzAgMTIuNCAzMS44IDI4LjRMMjMwIDI3MS43Yy0xLjggMS4yLTMuOSAxLjgtNiAxLjhzLTQuMi0uNi02LTEuOHptMjkuNCAyNi45TDM4NCAyMTAuNCAzODQgMzM2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDM2OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjUuNiAxMzYuNiA4OC4yYzcgNC41IDE1LjEgNi45IDIzLjQgNi45czE2LjQtMi40IDIzLjQtNi45elwiXVxufTtcbmNvbnN0IGZhRW52ZWxvcGVTcXVhcmUgPSBmYVNxdWFyZUVudmVsb3BlO1xuY29uc3QgZmFEaWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5MjJdLCBcImY1MjJcIiwgXCJNMjc0LjkgMzQuM2MtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDM0LjMgMTczLjFjLTI4LjEgMjguMS0yOC4xIDczLjcgMCAxMDEuOEwxNzMuMSA0MTMuN2MyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDBMNDEzLjcgMjc0LjljMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44TDI3NC45IDM0LjN6TTIwMCAyMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNOTYgMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjI0IDM3NmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTM1MiAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMjQgMTIwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptOTYgMzI4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xMTQuMyAwYzExLjYgMzYgMy4xIDc3LTI1LjQgMTA1LjVMMzIwIDQxMy44bDAgMzQuMnpNNDgwIDMyOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xuY29uc3QgZmFCb3dsaW5nQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3dsaW5nLWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MzZcIiwgXCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG5jb25zdCBmYUJyYWluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTA0XSwgXCJmNWRjXCIsIFwiTTE4NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDAwYzAgMzAuOS0yNS4xIDU2LTU2IDU2Yy0yOC45IDAtNTIuNy0yMS45LTU1LjctNTAuMWMtNS4yIDEuNC0xMC43IDIuMS0xNi4zIDIuMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC03LjQgMS4zLTE0LjYgMy42LTIxLjJDMjEuNCAzNjcuNCAwIDMzOC4yIDAgMzA0YzAtMzEuOSAxOC43LTU5LjUgNDUuOC03Mi4zQzM3LjEgMjIwLjggMzIgMjA3IDMyIDE5MmMwLTMwLjcgMjEuNi01Ni4zIDUwLjQtNjIuNkM4MC44IDEyMy45IDgwIDExOCA4MCAxMTJjMC0yOS45IDIwLjYtNTUuMSA0OC4zLTYyLjFDMTMxLjMgMjEuOSAxNTUuMSAwIDE4NCAwek0zMjggMGMyOC45IDAgNTIuNiAyMS45IDU1LjcgNDkuOWMyNy44IDcgNDguMyAzMi4xIDQ4LjMgNjIuMWMwIDYtLjggMTEuOS0yLjQgMTcuNGMyOC44IDYuMiA1MC40IDMxLjkgNTAuNCA2Mi42YzAgMTUtNS4xIDI4LjgtMTMuOCAzOS43QzQ5My4zIDI0NC41IDUxMiAyNzIuMSA1MTIgMzA0YzAgMzQuMi0yMS40IDYzLjQtNTEuNiA3NC44YzIuMyA2LjYgMy42IDEzLjggMy42IDIxLjJjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTUuNiAwLTExLjEtLjctMTYuMy0yLjFjLTMgMjguMi0yNi44IDUwLjEtNTUuNyA1MC4xYy0zMC45IDAtNTYtMjUuMS01Ni01NmwwLTQwMGMwLTMwLjkgMjUuMS01NiA1Ni01NnpcIl1cbn07XG5jb25zdCBmYUJhbmRhZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFuZGFnZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTY1NywgXCJiYW5kLWFpZFwiXSwgXCJmNDYyXCIsIFwiTTQ4MCA0MTZsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDMyMHpNNDQ4IDk2TDE5MiA5NmwwIDMyMCAyNTYgMCAwLTMyMHpNNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDAgMC0zMjBMNjQgOTZ6TTI0OCAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjQ4IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbmNvbnN0IGZhQmFuZEFpZCA9IGZhQmFuZGFnZTtcbmNvbnN0IGZhQ2FsZW5kYXJNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1taW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MlwiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OEwwIDE2MGwwLTQ4QzAgODUuNSAyMS41IDY0IDQ4IDY0bDQ4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJsNDQ4IDAgMCAyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE5MnpNMzEyIDM3NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDB6XCJdXG59O1xuY29uc3QgZmFDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTUzMiwgXCJ0aW1lcy1jaXJjbGVcIiwgXCJ4bWFyay1jaXJjbGVcIl0sIFwiZjA1N1wiLCBcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc1IDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG5jb25zdCBmYVRpbWVzQ2lyY2xlID0gZmFDaXJjbGVYbWFyaztcbmNvbnN0IGZhWG1hcmtDaXJjbGUgPSBmYUNpcmNsZVhtYXJrO1xuY29uc3QgZmFHaWZ0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnaWZ0cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc5Y1wiLCBcIk0yMDAuNiAzMkMyMDUgMTkuNSAxOTguNSA1LjggMTg2IDEuNFMxNTkuOCAzLjUgMTU1LjQgMTZMMTQ0LjcgNDYuMmwtOS45LTI5LjhDMTMwLjYgMy44IDExNy0zIDEwNC40IDEuMlM4NSAxOSA4OS4yIDMxLjZsOC4zIDI1LTI3LjQtMjBjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNUw3MC4yIDk2IDQ4IDk2QzIxLjUgOTYgMCAxMTcuNSAwIDE0NEwwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNTIuNiAwYy01LjQtOS40LTguNi0yMC4zLTguNi0zMmwwLTIyNGMwLTI5LjkgMjAuNS01NSA0OC4yLTYyYzEuOC0zMSAxNy4xLTU4LjIgNDAuMS03Ni4xQzI3MS43IDEwNC43IDI1Ni45IDk2IDI0MCA5NmwtMjIuMiAwIDI4LjMtMjAuNmMxMC43LTcuOCAxMy4xLTIyLjggNS4zLTMzLjVzLTIyLjgtMTMuMS0zMy41LTUuM0wxOTIuNSA1NS4xIDIwMC42IDMyek0zNjMuNSAxODUuNUwzOTMuMSAyMjQgMzQ0IDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRjMC0xMy4xIDEwLjgtMjQgMjQuMi0yNGM3LjYgMCAxNC43IDMuNSAxOS4zIDkuNXpNMjcyIDIwMGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTQuMSAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwIDE5MiAwIDAtOTYgMzIgMCAwIDk2IDE5MiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuMSAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0YzAtMzkuOS0zMi41LTcyLTcyLjItNzJjLTIyLjQgMC00My42IDEwLjQtNTcuMyAyOC4yTDQzMiAxOTUuOGwtMzAuNS0zOS42Yy0xMy43LTE3LjgtMzUtMjguMi01Ny4zLTI4LjJjLTM5LjcgMC03Mi4yIDMyLjEtNzIuMiA3MnpNMjI0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNDQgMCAwLTEyOC0xOTIgMCAwIDgwem0yMjQgNDhsMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC04MC0xOTIgMCAwIDEyOHptOTYtMzEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OS4xIDAgMjkuNi0zOC41YzQuNi01LjkgMTEuNy05LjUgMTkuMy05LjVjMTMuNCAwIDI0LjIgMTAuOSAyNC4yIDI0elwiXVxufTtcbmNvbnN0IGZhSG90ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG90ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NzZdLCBcImY1OTRcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE3NiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCA0OEwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnptOTYgODBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjQwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xMTIgMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMzI4IDM4NGMxMy4zIDAgMjQuMy0xMC45IDIxLTIzLjhjLTEwLjYtNDEuNS00OC4yLTcyLjItOTMtNzIuMnMtODIuNSAzMC43LTkzIDcyLjJjLTMuMyAxMi44IDcuOCAyMy44IDIxIDIzLjhsMTQ0IDB6XCJdXG59O1xuY29uc3QgZmFFYXJ0aEFzaWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWFydGgtYXNpYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1OSwgXCJnbG9iZS1hc2lhXCJdLCBcImY1N2VcIiwgXCJNNTEuNyAyOTUuMWwzMS43IDYuM2M3LjkgMS42IDE2LS45IDIxLjctNi42bDE1LjQtMTUuNGMxMS42LTExLjYgMzEuMS04LjQgMzguNCA2LjJsOS4zIDE4LjVjNC44IDkuNiAxNC42IDE1LjcgMjUuNCAxNS43YzE1LjIgMCAyNi4xLTE0LjYgMjEuNy0yOS4ybC02LTE5LjljLTQuNi0xNS40IDYuOS0zMC45IDIzLTMwLjlsMi4zIDBjMTMuNCAwIDI1LjktNi43IDMzLjMtMTcuOGwxMC43LTE2LjFjNS42LTguNSA1LjMtMTkuNi0uOC0yNy43bC0xNi4xLTIxLjVjLTEwLjMtMTMuNy0zLjMtMzMuNSAxMy40LTM3LjdsMTctNC4zYzcuNS0xLjkgMTMuNi03LjIgMTYuNS0xNC40bDE2LjQtNDAuOUMzMDMuNCA1Mi4xIDI4MC4yIDQ4IDI1NiA0OEMxNDEuMSA0OCA0OCAxNDEuMSA0OCAyNTZjMCAxMy40IDEuMyAyNi41IDMuNyAzOS4xem00MDcuNyA0LjZjLTMtLjMtNi0uMS05IC44bC0xNS44IDQuNGMtNi43IDEuOS0xMy44LS45LTE3LjUtNi43bC0yLTMuMWMtNi05LjQtMTYuNC0xNS4xLTI3LjYtMTUuMXMtMjEuNiA1LjctMjcuNiAxNS4xbC02LjEgOS41Yy0xLjQgMi4yLTMuNCA0LjEtNS43IDUuM0wzMTIgMzMwLjFjLTE4LjEgMTAuMS0yNS41IDMyLjQtMTcgNTEuM2w1LjUgMTIuNGM4LjYgMTkuMiAzMC43IDI4LjUgNTAuNSAyMS4xbDIuNi0xYzEwLTMuNyAyMS4zLTIuMiAyOS45IDQuMWwxLjUgMS4xYzM3LjItMjkuNSA2NC4xLTcxLjQgNzQuNC0xMTkuNXpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNDQuNSA5Mi4xYy0yLjEgOC42IDMuMSAxNy4zIDExLjYgMTkuNGwzMiA4YzguNiAyLjEgMTcuMy0zLjEgMTkuNC0xMS42cy0zLjEtMTcuMy0xMS42LTE5LjRsLTMyLThjLTguNi0yLjEtMTcuMyAzLjEtMTkuNCAxMS42em05Mi0yMGMtMi4xIDguNiAzLjEgMTcuMyAxMS42IDE5LjRzMTcuMy0zLjEgMTkuNC0xMS42bDgtMzJjMi4xLTguNi0zLjEtMTcuMy0xMS42LTE5LjRzLTE3LjMgMy4xLTE5LjQgMTEuNmwtOCAzMnpNMzQzLjIgMTEzLjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJsLTE2IDMyYy00IDcuOS0uNyAxNy41IDcuMiAyMS41czE3LjUgLjcgMjEuNS03LjJsMTYtMzJjNC03LjkgLjctMTcuNS03LjItMjEuNXpcIl1cbn07XG5jb25zdCBmYUdsb2JlQXNpYSA9IGZhRWFydGhBc2lhO1xuY29uc3QgZmFJZENhcmRDbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2lkLWNhcmQtY2xpcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiaWQtY2FyZC1hbHRcIl0sIFwiZjQ3ZlwiLCBcIk0yNTYgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDY0bDEyOCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTQ4IDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjR6TTE3NiA0MzcuM2MwIDUuOSA0LjggMTAuNyAxMC43IDEwLjdsMjAyLjcgMGM1LjkgMCAxMC43LTQuOCAxMC43LTEwLjdjMC0yOS41LTIzLjktNTMuMy01My4zLTUzLjNsLTExNy4zIDBjLTI5LjUgMC01My4zIDIzLjktNTMuMyA1My4zek0yODggMzUyYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwiXVxufTtcbmNvbnN0IGZhSWRDYXJkQWx0ID0gZmFJZENhcmRDbGlwO1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2VhcmNoLXBsdXNcIl0sIFwiZjAwZVwiLCBcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xODQgMjk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA2NC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA2NHpcIl1cbn07XG5jb25zdCBmYVNlYXJjaFBsdXMgPSBmYU1hZ25pZnlpbmdHbGFzc1BsdXM7XG5jb25zdCBmYVRodW1ic1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1icy11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODA3NywgNjE1NzVdLCBcImYxNjRcIiwgXCJNMzEzLjQgMzIuOWMyNiA1LjIgNDIuOSAzMC41IDM3LjcgNTYuNWwtMi4zIDExLjRjLTUuMyAyNi43LTE1LjEgNTIuMS0yOC44IDc1LjJsMTQ0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhjMCAxOC41LTEwLjUgMzQuNi0yNS45IDQyLjZDNDk3IDI3NS40IDUwNCAyODguOSA1MDQgMzA0YzAgMjMuNC0xNi44IDQyLjktMzguOSA0Ny4xYzQuNCA3LjMgNi45IDE1LjggNi45IDI0LjljMCAyMS4zLTEzLjkgMzkuNC0zMy4xIDQ1LjZjLjcgMy4zIDEuMSA2LjggMS4xIDEwLjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk3LjUgMGMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFsLTM4LjUtMjUuN0MxNzYgNDIwLjQgMTYwIDM5MC40IDE2MCAzNTguM2wwLTM4LjMgMC00OCAwLTI0LjljMC0yOS4yIDEzLjMtNTYuNyAzNi03NWw3LjQtNS45YzI2LjUtMjEuMiA0NC42LTUxIDUxLjItODQuMmwyLjMtMTEuNGM1LjItMjYgMzAuNS00Mi45IDU2LjUtMzcuN3pNMzIgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVXNlckNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItY2xvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0ZmRcIiwgXCJNMjI0IDBhMTI4IDEyOCAwIDEgMSAwIDI1NkExMjggMTI4IDAgMSAxIDIyNCAwek0xNzguMyAzMDRsOTEuNCAwYzIwLjYgMCA0MC40IDMuNSA1OC44IDkuOUMzMjMgMzMxIDMyMCAzNDkuMSAzMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0TDI5LjcgNTEyQzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbmNvbnN0IGZhSGFuZERvdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhbGxlcmdpZXNcIl0sIFwiZjQ2MVwiLCBcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNHMtMTQuNiA0MS4zIDEuNCA1Ni42TDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjQwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MCAxNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4LTE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bS0xNiA4MGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTI0MCA0MzJhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptLTQ4LTQ4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG5jb25zdCBmYUFsbGVyZ2llcyA9IGZhSGFuZERvdHM7XG5jb25zdCBmYUZpbGVJbnZvaWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtaW52b2ljZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMjI0IDAgNjQgMHpNMjU2IDBsMCAxMjggMTI4IDBMMjU2IDB6TTgwIDY0bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMTYgOTZsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMzJsMCA2NCAxOTIgMCAwLTY0TDk2IDI1NnpNMjQwIDQxNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbmNvbnN0IGZhV2luZG93TWluaW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1pbmltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDY5XSwgXCJmMmQxXCIsIFwiTTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6XCJdXG59O1xuY29uc3QgZmFNdWdTYXVjZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbXVnLXNhdWNlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiY29mZmVlXCJdLCBcImYwZjRcIiwgXCJNOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDAgNjQgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOGwtMzIgMGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw5NiA2NHpNNDgwIDIyNGwzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0bC0zMiAwIDAgMTI4ek0zMiA0MTZsNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhQ29mZmVlID0gZmFNdWdTYXVjZXI7XG5jb25zdCBmYUJydXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JydXNoJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTVkXCIsIFwiTTE2Mi40IDZjLTEuNS0zLjYtNS02LTguOS02bC0xOSAwYy0zLjkgMC03LjUgMi40LTguOSA2TDEwNC45IDU3LjdjLTMuMiA4LTE0LjYgOC0xNy44IDBMNjYuNCA2Yy0xLjUtMy42LTUtNi04LjktNkw0OCAwQzIxLjUgMCAwIDIxLjUgMCA0OEwwIDIyNGwwIDIyLjRMMCAyNTZsOS42IDAgMzY0LjggMCA5LjYgMCAwLTkuNiAwLTIyLjQgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMjg4bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzJMMCAyODh6TTE5MiA0MzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbmNvbnN0IGZhTWFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmZhXCIsIFwiTTI4OCA2NEM2NCA2NCAwIDE2MCAwIDI3MlM4MCA0NDggMTc2IDQ0OGw4LjQgMGMyNC4yIDAgNDYuNC0xMy43IDU3LjItMzUuNGwyMy4yLTQ2LjNjNC40LTguOCAxMy4zLTE0LjMgMjMuMi0xNC4zczE4LjggNS41IDIzLjIgMTQuM2wyMy4yIDQ2LjNjMTAuOCAyMS43IDMzIDM1LjQgNTcuMiAzNS40bDguNCAwYzk2IDAgMTc2LTY0IDE3Ni0xNzZzLTY0LTIwOC0yODgtMjA4ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgOTYgMjU2em0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xuY29uc3QgZmFNYWduaWZ5aW5nR2xhc3NNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzZWFyY2gtbWludXNcIl0sIFwiZjAxMFwiLCBcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpcIl1cbn07XG5jb25zdCBmYVNlYXJjaE1pbnVzID0gZmFNYWduaWZ5aW5nR2xhc3NNaW51cztcbmNvbnN0IGZhUnVsZXJWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci12ZXJ0aWNhbCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjU0OFwiLCBcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwyMDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDY0LTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAgMCAwIDQ4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpcIl1cbn07XG5jb25zdCBmYVVzZXJMYXJnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWxhcmdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ1c2VyLWFsdFwiXSwgXCJmNDA2XCIsIFwiTTI1NiAyODhBMTQ0IDE0NCAwIDEgMCAyNTYgMGExNDQgMTQ0IDAgMSAwIDAgMjg4em0tOTQuNyAzMkM3Mi4yIDMyMCAwIDM5Mi4yIDAgNDgxLjNjMCAxNyAxMy44IDMwLjcgMzAuNyAzMC43bDQ1MC42IDBjMTcgMCAzMC43LTEzLjggMzAuNy0zMC43QzUxMiAzOTIuMiA0MzkuOCAzMjAgMzUwLjcgMzIwbC0xODkuNCAwelwiXVxufTtcbmNvbnN0IGZhVXNlckFsdCA9IGZhVXNlckxhcmdlO1xuY29uc3QgZmFUcmFpblRyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhaW4tdHJhbScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODY1MF0sIFwiZTViNFwiLCBcIk04Ni44IDQ4Yy0xMi4yIDAtMjMuNiA1LjUtMzEuMiAxNUw0Mi43IDc5QzM0LjUgODkuMyAxOS40IDkxIDkgODIuN1MtMyA1OS40IDUuMyA0OUwxOCAzM0MzNC43IDEyLjIgNjAgMCA4Ni44IDBMMzYxLjIgMGMyNi43IDAgNTIgMTIuMiA2OC43IDMzbDEyLjggMTZjOC4zIDEwLjQgNi42IDI1LjUtMy44IDMzLjdzLTI1LjUgNi42LTMzLjctMy43TDM5Mi41IDYzYy03LjYtOS41LTE5LjEtMTUtMzEuMi0xNUwyNDggNDhsMCA0OCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMC42LTE0LjMgNTcuOC0zNi42IDc1LjRsNjUuNSA2NS41YzcuMSA3LjEgMi4xIDE5LjEtNy45IDE5LjFsLTM5LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMjg4IDQ0OGwtMTI4IDAtNTQuNiA1NC42Yy02IDYtMTQuMSA5LjQtMjIuNiA5LjRMNDMgNTEyYy0xMCAwLTE1LTEyLjEtNy45LTE5LjFsNjUuNS02NS41Qzc4LjMgNDA5LjggNjQgMzgyLjYgNjQgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTQ4TDg2LjggNDh6TTE2MCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xuY29uc3QgZmFVc2VyTnVyc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1udXJzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjgyZlwiLCBcIk05NiAxMjhsMC01Ny44YzAtMTMuMyA4LjMtMjUuMyAyMC44LTMwbDk2LTM2YzcuMi0yLjcgMTUuMi0yLjcgMjIuNSAwbDk2IDM2YzEyLjUgNC43IDIwLjggMTYuNiAyMC44IDMwbDAgNTcuOC0uMyAwYy4yIDIuNiAuMyA1LjMgLjMgOGwwIDQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4bDAtNDBjMC0yLjcgLjEtNS40IC4zLThsLS4zIDB6bTQ4IDQ4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNi0xNjAgMCAwIDE2ek0xMTEuOSAzMjcuN2MxMC41LTMuNCAyMS44IC40IDI5LjQgOC41bDcxIDc1LjVjNi4zIDYuNyAxNyA2LjcgMjMuMyAwbDcxLTc1LjVjNy42LTguMSAxOC45LTExLjkgMjkuNC04LjVDNDAxIDM0OC42IDQ0OCA0MDkuNCA0NDggNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43TDMwLjcgNTEyQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuM2MwLTcxLjkgNDctMTMyLjcgMTExLjktMTUzLjZ6TTIwOCA0OGwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDBjLTQuNCAwLTggMy42LTggOHpcIl1cbn07XG5jb25zdCBmYVN5cmluZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3lyaW5nZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODEzN10sIFwiZjQ4ZVwiLCBcIk00NDEgN2wzMiAzMiAzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0xNS0xNUw0MTcuOSAxMjhsNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJMMjk1IDczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTUgNTVMNDIyLjEgNTYgNDA3IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6TTIxMC4zIDE1NS43bDYxLjEtNjEuMWMuMyAuMyAuNiAuNyAxIDFsMTYgMTYgNTYgNTYgNTYgNTYgMTYgMTZjLjMgLjMgLjYgLjYgMSAxbC0xOTEgMTkxYy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwTDQxIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ny01NyAwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmw0My4zLTQzLjMgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01NyA0MS40LTQxLjQgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01N3pcIl1cbn07XG5jb25zdCBmYUNsb3VkU3VuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLXN1bicsXG4gIGljb246IFs2NDAsIDUxMiwgWzk5MjVdLCBcImY2YzRcIiwgXCJNMjk0LjIgMS4yYzUuMSAyLjEgOC43IDYuNyA5LjYgMTIuMWwxNC4xIDg0LjcgODQuNyAxNC4xYzUuNCAuOSAxMCA0LjUgMTIuMSA5LjZzMS41IDEwLjktMS42IDE1LjRsLTM4LjUgNTVjLTIuMi0uMS00LjQtLjItNi43LS4yYy0yMy4zIDAtNDUuMSA2LjItNjQgMTcuMWwwLTEuMWMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnM0MyA5NiA5NiA5NmM4LjEgMCAxNS45LTEgMjMuNC0yLjljLTM2LjYgMTguMS02My4zIDUzLjEtNjkuOCA5NC45bC0yNC40IDE3Yy00LjUgMy4yLTEwLjMgMy44LTE1LjQgMS42cy04LjctNi43LTkuNi0xMi4xTDk4LjEgMzE3LjkgMTMuNCAzMDMuOGMtNS40LS45LTEwLTQuNS0xMi4xLTkuNnMtMS41LTEwLjkgMS42LTE1LjRMNTIuNSAyMDggMi45IDEzNy4yYy0zLjItNC41LTMuOC0xMC4zLTEuNi0xNS40czYuNy04LjcgMTIuMS05LjZMOTguMSA5OC4xbDE0LjEtODQuN2MuOS01LjQgNC41LTEwIDkuNi0xMi4xczEwLjktMS41IDE1LjQgMS42TDIwOCA1Mi41IDI3OC44IDIuOWM0LjUtMy4yIDEwLjMtMy44IDE1LjQtMS42ek0xNDQgMjA4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjM5LjkgNDMxLjljMCA0NC4yLTM1LjggODAtODAgODBsLTI3MS45IDBjLTUzIDAtOTYtNDMtOTYtOTZjMC00Ny42IDM0LjYtODcgODAtOTQuNmwwLTEuM2MwLTUzIDQzLTk2IDk2LTk2YzM0LjkgMCA2NS40IDE4LjYgODIuMiA0Ni40YzEzLTkuMSAyOC44LTE0LjQgNDUuOC0xNC40YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS45LS42IDExLjctMS45IDE3LjJjMzcuNCA2LjcgNjUuOCAzOS40IDY1LjggNzguN3pcIl1cbn07XG5jb25zdCBmYVN0b3B3YXRjaDIwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3B3YXRjaC0yMCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA2ZlwiLCBcIk0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMzQuNEM5Mi4zIDExMy44IDE2IDIwMCAxNiAzMDRjMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4czIwOC05My4xIDIwOC0yMDhjMC00MS44LTEyLjMtODAuNy0zMy41LTExMy4ybDI0LjEtMjQuMWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzNTUuNyAxNDNjLTI4LjEtMjMtNjIuMi0zOC44LTk5LjctNDQuNkwyNTYgNjRsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxNzYgMHpNMjg4IDIwNGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtOTZjMC0yOC43IDIzLjMtNTIgNTItNTJ6bS0xMiA1MmwwIDk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC05NmMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMnpNMTU5LjUgMjQ0Yy01LjQgMC0xMC4yIDMuNS0xMS45IDguNmwtLjYgMS43Yy0zLjUgMTAuNS0xNC44IDE2LjEtMjUuMyAxMi42cy0xNi4xLTE0LjgtMTIuNi0yNS4zbC42LTEuN2M3LjItMjEuNSAyNy4yLTM1LjkgNDkuOC0zNS45YzI5IDAgNTIuNSAyMy41IDUyLjUgNTIuNWwwIDIuMmMwIDEzLjQtNC45IDI2LjQtMTMuOCAzNi40bC0zOSA0My45Yy02LjIgNy0xMCAxNS43LTEwLjkgMjQuOWw0My44IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC02NCAwYy0xMSAwLTIwLTktMjAtMjBsMC0xNS43YzAtMjAuNiA3LjUtNDAuNCAyMS4yLTU1LjhsMzktNDMuOWMyLjQtMi43IDMuNy02LjIgMy43LTkuOGwwLTIuMmMwLTYuOS01LjYtMTIuNS0xMi41LTEyLjV6XCJdXG59O1xuY29uc3QgZmFTcXVhcmVGdWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1mdWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4OTk3LCAxMjg5OTgsIDEyODk5OSwgMTI5MDAwLCAxMjkwMDEsIDEyOTAwMiwgMTI5MDAzLCAxMTAzNSwgMTEwMzZdLCBcImY0NWNcIiwgXCJNMCAwSDUxMlY1MTJIMFYwelwiXVxufTtcbmNvbnN0IGZhTWFnbmV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25ldCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyOTUyMl0sIFwiZjA3NlwiLCBcIk0wIDE2MGwwIDk2QzAgMzc5LjcgMTAwLjMgNDgwIDIyNCA0ODBzMjI0LTEwMC4zIDIyNC0yMjRsMC05Ni0xMjggMCAwIDk2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtOTZMMCAxNjB6bTAtMzJsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgNjR6bTMyMCAwbDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjR6XCJdXG59O1xuY29uc3QgZmFKYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamFyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTE2XCIsIFwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0wIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwem05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDIyNHpcIl1cbn07XG5jb25zdCBmYU5vdGVTdGlja3kgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbm90ZS1zdGlja3knLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs2MjAyNiwgXCJzdGlja3ktbm90ZVwiXSwgXCJmMjQ5XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDAgMC0xMTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMTEyIDAgMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ0OCAzNTJsLTQ1LjMgMEwzMzYgMzUyYy04LjggMC0xNiA3LjItMTYgMTZsMCA2Ni43IDAgNDUuMyAzMi0zMiA2NC02NCAzMi0zMnpcIl1cbn07XG5jb25zdCBmYVN0aWNreU5vdGUgPSBmYU5vdGVTdGlja3k7XG5jb25zdCBmYUJ1Z1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1Zy1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTQ5MFwiLCBcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Ny40IDM0OC45YzEuNy05LjQgMi42LTE5IDIuNi0yOC45bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0LjMgMGMtMS4xLTE0LjEtNS0yNy41LTExLjEtMzkuNWMuNy0uNiAxLjQtMS4yIDIuMS0xLjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0uNyAuNy0xLjMgMS40LTEuOSAyLjFDNDA5LjIgMTY0LjEgMzkzLjEgMTYwIDM3NiAxNjBsLTExMiAwYy04LjMgMC0xNi4zIDEtMjQgMi44TDM4LjggNS4xek0zMjAgMGMtNTMgMC05NiA0My05NiA5NmwwIDMuNmMwIDE1LjcgMTIuNyAyOC40IDI4LjQgMjguNGwxMzUuMSAwYzE1LjcgMCAyOC40LTEyLjcgMjguNC0yOC40bDAtMy42YzAtNTMtNDMtOTYtOTYtOTZ6TTE2MC4zIDI1Nkw5NiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMwIDI0LjYgNS41IDQ3LjggMTUuNCA2OC42Yy0yLjIgMS4zLTQuMiAyLjktNiA0LjhsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDYzLjEtNjMuMWMyNC41IDIxLjggNTUuOCAzNi4yIDkwLjMgMzkuNmwwLTE0My43TDE2Ni43IDIyNy4zYy0zLjQgOS01LjYgMTguNy02LjQgMjguN3pNMzM2IDQ3OS4yYzM2LjYtMy42IDY5LjctMTkuNiA5NC44LTQzLjhMMzM2IDM2MC43bDAgMTE4LjV6XCJdXG59O1xuY29uc3QgZmFBcnJvd1VwRnJvbVdhdGVyUHVtcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLXdhdGVyLXB1bXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YjZcIiwgXCJNMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCAyMDgtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDggMiAxNS42IDUuNCAyMi4yYzMuOC0xLjcgNy44LTMuMSAxMi00LjFjMTMuMS0zLjEgMjYuNy05LjggMzcuMy0xOC42YzIyLjItMTguNyA1NC4zLTIwLjEgNzguMS0zLjRjMTggMTIuNCA0MC4xIDIwLjMgNTkuMiAyMC4zYzIxLjEgMCA0Mi04LjUgNTkuMi0yMC4zYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjMgNzguMSAzLjRjMTAuNiA4LjggMjQuMiAxNS42IDM3LjMgMTguNmM0LjIgMSA4LjIgMi40IDEyIDQuMUM1NzQgNDE1LjYgNTc2IDQwOCA1NzYgNDAwbDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMC0xNDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0MTYgMTA5LjMgNDE2IDI1NmwtMTI4IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTMwNi41IDQyMS45Yy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFjMCAwIDAgMCAwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43YzAgMCAwIDAgMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjF6XCJdXG59O1xuY29uc3QgZmFCb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjk0NjBdLCBcImY1ZDdcIiwgXCJNMTUzLjcgMTQ0LjhjNi45IDE2LjMgMjAuNiAzMS4yIDM4LjMgMzEuMmwxOTIgMGMxNy43IDAgMzEuNC0xNC45IDM4LjMtMzEuMkM0MzQuNCAxMTYuMSA0NjIuOSA5NiA0OTYgOTZjNDQuMiAwIDgwIDM1LjggODAgODBjMCAzMC40LTE3IDU2LjktNDIgNzAuNGMtMy42IDEuOS02IDUuNS02IDkuNnMyLjQgNy43IDYgOS42YzI1IDEzLjUgNDIgNDAgNDIgNzAuNGMwIDQ0LjItMzUuOCA4MC04MCA4MGMtMzMuMSAwLTYxLjYtMjAuMS03My43LTQ4LjhDNDE1LjQgMzUwLjkgNDAxLjcgMzM2IDM4NCAzMzZsLTE5MiAwYy0xNy43IDAtMzEuNCAxNC45LTM4LjMgMzEuMkMxNDEuNiAzOTUuOSAxMTMuMSA0MTYgODAgNDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGMwLTMwLjQgMTctNTYuOSA0Mi03MC40YzMuNi0xLjkgNi01LjUgNi05LjZzLTIuNC03LjctNi05LjZDMTcgMjMyLjkgMCAyMDYuNCAwIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMy4xIDAgNjEuNiAyMC4xIDczLjcgNDguOHpcIl1cbn07XG5jb25zdCBmYVRhYmxlQ2VsbHNSb3dVbmxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtcm93LXVubG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY5MVwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjUuMWMtMzcuOCA1LjQtNjkuNCAyOS42LTg1LjIgNjIuOUwzNjAgMjI0bDAgNjQgNTYgMCAwIDguNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNGwtMjQgMCAwIDY0IDI0IDAgMCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTY0IDIyNGwwIDY0IDg4IDAgMC02NC04OCAwem0yMzIgMGwtODggMCAwIDY0IDg4IDAgMC02NHpNMTUyIDM1MmwtODggMCAwIDY0IDg4IDAgMC02NHptNTYgMGwwIDY0IDg4IDAgMC02NC04OCAwem0yODgtODBsMCA0OCAzMiAwIDMyIDAgNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtNDhjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwtNDggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG5jb25zdCBmYVVzZXJJbmp1cmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItaW5qdXJlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjcyOFwiLCBcIk0yNDAgODBsMTAyLjcgMGMtNy45LTE5LjUtMjAuNC0zNi41LTM2LjItNDkuOUwyNDAgODB6bTM3LjctNjguMkMyNjEuMyA0LjIgMjQzLjIgMCAyMjQgMGMtNTMuNyAwLTk5LjcgMzMuMS0xMTguNyA4MGw4MS40IDAgOTEtNjguMnpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTUuNC0uMy0xMC44LTEtMTZMOTcgMTEyYy0uNyA1LjItMSAxMC42LTEgMTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjh6TTEyNCAzMTIuNGMtOS43IDMuMS0xOS4xIDctMjggMTEuN0w5NiA1MTJsMTQ3LjcgMEwxODEuNSA0MDguMiAxMjQgMzEyLjR6bTMzLTcuMkwyMDQuMyAzODRsNjcuNyAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMTgtNiAzNC42LTE2IDQ4bDgyLjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN0M0NDggMzgzLjggMzY4LjIgMzA0IDI2OS43IDMwNGwtOTEuNCAwYy03LjIgMC0xNC4zIC40LTIxLjMgMS4zek0wIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJMNjQgNTEybDAtMTY2LjZDMjQuOSAzNzguMSAwIDQyNy4zIDAgNDgyLjN6TTMyMCA0NjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4LjUgMCA1Ny4xIDk1LjJDMzAzIDUwNy4yIDMyMCA0ODcuNiAzMjAgNDY0elwiXVxufTtcbmNvbnN0IGZhRmFjZVNhZFRlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zYWQtdGVhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU0NiwgXCJzYWQtdGVhclwiXSwgXCJmNWI0XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnptMjQwIDgwYzAtOC44IDcuMi0xNiAxNi0xNmM0NSAwIDg1LjYgMjAuNSAxMTUuNyA1My4xYzYgNi41IDUuNiAxNi42LS45IDIyLjZzLTE2LjYgNS42LTIyLjYtLjljLTI1LTI3LjEtNTcuNC00Mi45LTkyLjMtNDIuOWMtOC44IDAtMTYtNy4yLTE2LTE2em0tODAgODBjLTI2LjUgMC00OC0yMS00OC00N2MwLTIwIDI4LjYtNjAuNCA0MS42LTc3LjdjMy4yLTQuNCA5LjYtNC40IDEyLjggMEMxNzkuNiAzMDguNiAyMDggMzQ5IDIwOCAzNjljMCAyNi0yMS41IDQ3LTQ4IDQ3ek0zNjcuNiAyMDhhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xuY29uc3QgZmFTYWRUZWFyID0gZmFGYWNlU2FkVGVhcjtcbmNvbnN0IGZhUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNzJcIiwgXCJNNDgyLjMgMTkyYzM0LjIgMCA5My43IDI5IDkzLjcgNjRjMCAzNi01OS41IDY0LTkzLjcgNjRsLTExNi42IDBMMjY1LjIgNDk1LjljLTUuNyAxMC0xNi4zIDE2LjEtMjcuOCAxNi4xbC01Ni4yIDBjLTEwLjYgMC0xOC4zLTEwLjItMTUuNC0yMC40bDQ5LTE3MS42TDExMiAzMjAgNjguOCAzNzcuNmMtMyA0LTcuOCA2LjQtMTIuOCA2LjRsLTQyIDBjLTcuOCAwLTE0LTYuMy0xNC0xNGMwLTEuMyAuMi0yLjYgLjUtMy45TDMyIDI1NiAuNSAxNDUuOWMtLjQtMS4zLS41LTIuNi0uNS0zLjljMC03LjggNi4zLTE0IDE0LTE0bDQyIDBjNSAwIDkuOCAyLjQgMTIuOCA2LjRMMTEyIDE5MmwxMDIuOSAwLTQ5LTE3MS42QzE2Mi45IDEwLjIgMTcwLjYgMCAxODEuMiAwbDU2LjIgMGMxMS41IDAgMjIuMSA2LjIgMjcuOCAxNi4xTDM2NS43IDE5MmwxMTYuNiAwelwiXVxufTtcbmNvbnN0IGZhVGVudEFycm93c0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVudC1hcnJvd3MtZG93bicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4MVwiLCBcIk0yMDkuOCAxMTEuOWMtOC45LTkuOS0yNC0xMC43LTMzLjktMS44bC0zOS45IDM2TDEzNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNFM4OCAxMC43IDg4IDI0bDAgMTIyLjEtMzkuOS0zNmMtOS45LTguOS0yNS04LjEtMzMuOSAxLjhzLTguMSAyNSAxLjggMzMuOWw4MCA3MmM5LjEgOC4yIDIzIDguMiAzMi4xIDBsODAtNzJjOS45LTguOSAxMC43LTI0IDEuOC0zMy45em0zNTIgMGMtOC45LTkuOS0yNC0xMC43LTMzLjktMS44bC0zOS45IDM2TDQ4OCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEyMi4xLTM5LjktMzZjLTkuOS04LjktMjUtOC4xLTMzLjkgMS44cy04LjEgMjUgMS44IDMzLjlsODAgNzJjOS4xIDguMiAyMyA4LjIgMzIuMSAwbDgwLTcyYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOXpNMzA3LjQgMTY2LjVjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMGwtMTY4IDEyOGMtNi42IDUtMTEgMTIuNS0xMi4zIDIwLjdsLTI0IDE2MGMtMS40IDkuMiAxLjMgMTguNiA3LjQgMjUuNlM4Ni43IDUxMiA5NiA1MTJsMTQ0IDAgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExOC4xYzAtNS41IDQuNC05LjkgOS45LTkuOWMzLjcgMCA3LjIgMi4xIDguOCA1LjVsNjguNCAxMzYuOGM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDYwLjIgMCAxNiAwYzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIl1cbn07XG5jb25zdCBmYUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzEyOCwgNTEyLCBbMTAwNjksIDEwMDcxLCA2MTczOF0sIFwiMjFcIiwgXCJNOTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMzIgNDYuMyAzMiA2NGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDk2IDY0ek02NCA0ODBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbmNvbnN0IGZhQXJyb3dzU3BpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3Mtc3BpbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRiYlwiLCBcIk0yNTYgOTZjMzguNCAwIDczLjcgMTMuNSAxMDEuMyAzNi4xbC0zMi42IDMyLjZjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWwxMTIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0zNCAzNEMzNjMuNCA1Mi42IDMxMi4xIDMyIDI1NiAzMmMtMTAuOSAwLTIxLjUgLjgtMzIgMi4zbDAgNjQuOWMxMC4zLTIuMSAyMS0zLjIgMzItMy4yek0xMzIuMSAxNTQuN2wzMi42IDMyLjZjNC42IDQuNiAxMS41IDUuOSAxNy40IDMuNXM5LjktOC4zIDkuOS0xNC44bDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA0OGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDM0IDM0QzUyLjYgMTQ4LjYgMzIgMTk5LjkgMzIgMjU2YzAgMTAuOSAuOCAyMS41IDIuMyAzMmw2NC45IDBjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC0zOC40IDEzLjUtNzMuNyAzNi4xLTEwMS4zek00NzcuNyAyMjRsLTY0LjkgMGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyYzAgMzguNC0xMy41IDczLjctMzYuMSAxMDEuM2wtMzIuNi0zMi42Yy00LjYtNC42LTExLjUtNS45LTE3LjQtMy41cy05LjkgOC4zLTkuOSAxNC44bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMTIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMzQtMzRDNDU5LjQgMzYzLjQgNDgwIDMxMi4xIDQ4MCAyNTZjMC0xMC45LS44LTIxLjUtMi4zLTMyek0yNTYgNDE2Yy0zOC40IDAtNzMuNy0xMy41LTEwMS4zLTM2LjFsMzIuNi0zMi42YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRzLTguMy05LjktMTQuOC05LjlMNjQgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMzQtMzRDMTQ4LjYgNDU5LjQgMTk5LjkgNDgwIDI1NiA0ODBjMTAuOSAwIDIxLjUtLjggMzItMi4zbDAtNjQuOWMtMTAuMyAyLjEtMjEgMy4yLTMyIDMuMnpcIl1cbn07XG5jb25zdCBmYVByaW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByaW50JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDI0LCAxMjg0MzgsIDkxMTNdLCBcImYwMmZcIiwgXCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjRsMCA5NiA2NCAwIDAtOTYgMjI2LjcgMEwzODQgOTMuM2wwIDY2LjcgNjQgMCAwLTY2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDAwIDE4LjdDMzg4IDYuNyAzNzEuNyAwIDM1NC43IDBMMTI4IDB6TTM4NCAzNTJsMCAzMiAwIDY0LTI1NiAwIDAtNjQgMC0xNiAwLTE2IDI1NiAwem02NCAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek00MzIgMjQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG5jb25zdCBmYVR1cmtpc2hMaXJhU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0dXJraXNoLWxpcmEtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW1widHJ5XCIsIFwidHVya2lzaC1saXJhXCJdLCBcImUyYmJcIiwgXCJNOTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNS4zTDI0Ny4yIDY1LjJjMTctNC45IDM0LjcgNSAzOS42IDIycy01IDM0LjctMjIgMzkuNkwxMjggMTY1LjlsMCAyOS40IDExOS4yLTM0LjFjMTctNC45IDM0LjcgNSAzOS42IDIycy01IDM0LjctMjIgMzkuNkwxMjggMjYxLjkgMTI4IDQxNmw2My44IDBjNjguMiAwIDEyNC40LTUzLjUgMTI3LjgtMTIxLjZsLjQtOGMuOS0xNy43IDE1LjktMzEuMiAzMy42LTMwLjRzMzEuMiAxNS45IDMwLjQgMzMuNmwtLjQgOEMzNzguNSAzOTkuOCAyOTQuMSA0ODAgMTkxLjggNDgwTDk2IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjcuOS0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDIxMy42bDAtMjkuNC0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDExNy42IDY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhVHJ5ID0gZmFUdXJraXNoTGlyYVNpZ247XG5jb25zdCBmYVR1cmtpc2hMaXJhID0gZmFUdXJraXNoTGlyYVNpZ247XG5jb25zdCBmYURvbGxhclNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9sbGFyLXNpZ24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjgxNzgsIDYxNzgxLCBcImRvbGxhclwiLCBcInVzZFwiXSwgXCIyNFwiLCBcIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1LjdjMS42IC4yIDMuMSAuNCA0LjcgLjdjLjQgLjEgLjcgLjEgMS4xIC4ybDQ4IDguOGMxNy40IDMuMiAyOC45IDE5LjkgMjUuNyAzNy4ycy0xOS45IDI4LjktMzcuMiAyNS43bC00Ny41LTguN2MtMzEuMy00LjYtNTguOS0xLjUtNzguMyA2LjJzLTI3LjIgMTguMy0yOSAyOC4xYy0yIDEwLjctLjUgMTYuNyAxLjIgMjAuNGMxLjggMy45IDUuNSA4LjMgMTIuOCAxMy4yYzE2LjMgMTAuNyA0MS4zIDE3LjcgNzMuNyAyNi4zbDIuOSAuOGMyOC42IDcuNiA2My42IDE2LjggODkuNiAzMy44YzE0LjIgOS4zIDI3LjYgMjEuOSAzNS45IDM5LjVjOC41IDE3LjkgMTAuMyAzNy45IDYuNCA1OS4yYy02LjkgMzgtMzMuMSA2My40LTY1LjYgNzYuN2MtMTMuNyA1LjYtMjguNiA5LjItNDQuNCAxMWwwIDMzLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC45Yy0uNC0uMS0uOS0uMS0xLjMtLjJsLS4yIDBzMCAwIDAgMGMtMjQuNC0zLjgtNjQuNS0xNC4zLTkxLjUtMjYuM2MtMTYuMS03LjItMjMuNC0yNi4xLTE2LjItNDIuMnMyNi4xLTIzLjQgNDIuMi0xNi4yYzIwLjkgOS4zIDU1LjMgMTguNSA3NS4yIDIxLjZjMzEuOSA0LjcgNTguMiAyIDc2LTUuM2MxNi45LTYuOSAyNC42LTE2LjkgMjYuOC0yOC45YzEuOS0xMC42IC40LTE2LjctMS4zLTIwLjRjLTEuOS00LTUuNi04LjQtMTMtMTMuM2MtMTYuNC0xMC43LTQxLjUtMTcuNy03NC0yNi4zbC0yLjgtLjdzMCAwIDAgMEMxMTkuNCAyNzkuMyA4NC40IDI3MCA1OC40IDI1M2MtMTQuMi05LjMtMjcuNS0yMi0zNS44LTM5LjZjLTguNC0xNy45LTEwLjEtMzcuOS02LjEtNTkuMkMyMy43IDExNiA1Mi4zIDkxLjIgODQuOCA3OC4zYzEzLjMtNS4zIDI3LjktOC45IDQzLjItMTFMMTI4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbmNvbnN0IGZhRG9sbGFyID0gZmFEb2xsYXJTaWduO1xuY29uc3QgZmFVc2QgPSBmYURvbGxhclNpZ247XG5jb25zdCBmYVggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneCcsXG4gIGljb246IFszODQsIDUxMiwgWzEyMF0sIFwiNThcIiwgXCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXpcIl1cbn07XG5jb25zdCBmYU1hZ25pZnlpbmdHbGFzc0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzLWRvbGxhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2VhcmNoLWRvbGxhclwiXSwgXCJmNjg4XCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTIyOCAxMDRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xYzAgMCAwIDAgMCAwczAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNGwwIDE0LjZjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMy44YzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdsMC0xMy45elwiXVxufTtcbmNvbnN0IGZhU2VhcmNoRG9sbGFyID0gZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI7XG5jb25zdCBmYVVzZXJzR2VhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1nZWFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2Vycy1jb2dcIl0sIFwiZjUwOVwiLCBcIk0xNDQgMTYwQTgwIDgwIDAgMSAwIDE0NCAwYTgwIDgwIDAgMSAwIDAgMTYwem0zNjggMEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpNMCAyOTguN0MwIDMxMC40IDkuNiAzMjAgMjEuMyAzMjBsMjEzLjMgMGMuMiAwIC40IDAgLjcgMGMtMjYuNi0yMy41LTQzLjMtNTcuOC00My4zLTk2YzAtNy42IC43LTE1IDEuOS0yMi4zYy0xMy42LTYuMy0yOC43LTkuNy00NC42LTkuN2wtNDIuNyAwQzQ3LjggMTkyIDAgMjM5LjggMCAyOTguN3pNMzIwIDMyMGMyNCAwIDQ1LjktOC44IDYyLjctMjMuM2MyLjUtMy43IDUuMi03LjMgOC0xMC43YzIuNy0zLjMgNS43LTYuMSA5LTguM0M0MTAgMjYyLjMgNDE2IDI0My45IDQxNiAyMjRjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZ6bTY1LjQgNjAuMmMtMTAuMy01LjktMTguMS0xNi4yLTIwLjgtMjguMmwtMTAzLjIgMEMxODcuNyAzNTIgMTI4IDQxMS43IDEyOCA0ODUuM2MwIDE0LjcgMTEuOSAyNi43IDI2LjcgMjYuN2wzMDAuNiAwYy0yLjEtNS4yLTMuMi0xMC45LTMuMi0xNi40bDAtM2MtMS4zLS43LTIuNy0xLjUtNC0yLjNsLTIuNiAxLjVjLTE2LjggOS43LTQwLjUgOC01NC43LTkuN2MtNC41LTUuNi04LjYtMTEuNS0xMi40LTE3LjZsLS4xLS4yLS4xLS4yLTIuNC00LjEtLjEtLjItLjEtLjJjLTMuNC02LjItNi40LTEyLjYtOS0xOS4zYy04LjItMjEuMiAyLjItNDIuNiAxOS01Mi4zbDIuNy0xLjVjMC0uOCAwLTEuNSAwLTIuM3MwLTEuNSAwLTIuM2wtMi43LTEuNXpNNTMzLjMgMTkybC00Mi43IDBjLTE1LjkgMC0zMSAzLjUtNDQuNiA5LjdjMS4zIDcuMiAxLjkgMTQuNyAxLjkgMjIuM2MwIDE3LjQtMy41IDMzLjktOS43IDQ5YzIuNSAuOSA0LjkgMiA3LjEgMy4zbDIuNiAxLjVjMS4zLS44IDIuNi0xLjYgNC0yLjNsMC0zYzAtMTkuNCAxMy4zLTM5LjEgMzUuOC00Mi42YzcuOS0xLjIgMTYtMS45IDI0LjItMS45czE2LjMgLjYgMjQuMiAxLjljMjIuNSAzLjUgMzUuOCAyMy4yIDM1LjggNDIuNmwwIDNjMS4zIC43IDIuNyAxLjUgNCAyLjNsMi42LTEuNWMxNi44LTkuNyA0MC41LTggNTQuNyA5LjdjMi4zIDIuOCA0LjUgNS44IDYuNiA4LjdjLTIuMS01Ny4xLTQ5LTEwMi43LTEwNi42LTEwMi43em05MS4zIDE2My45YzYuMy0zLjYgOS41LTExLjEgNi44LTE4Yy0yLjEtNS41LTQuNi0xMC44LTcuNC0xNS45bC0yLjMtNGMtMy4xLTUuMS02LjUtOS45LTEwLjItMTQuNWMtNC42LTUuNy0xMi43LTYuNy0xOS0zbC0yLjkgMS43Yy05LjIgNS4zLTIwLjQgNC0yOS42LTEuM3MtMTYuMS0xNC41LTE2LjEtMjUuMWwwLTMuNGMwLTcuMy00LjktMTMuOC0xMi4xLTE0LjljLTYuNS0xLTEzLjEtMS41LTE5LjktMS41cy0xMy40IC41LTE5LjkgMS41Yy03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOWwwIDMuNGMwIDEwLjYtNi45IDE5LjgtMTYuMSAyNS4xcy0yMC40IDYuNi0yOS42IDEuM2wtMi45LTEuN2MtNi4zLTMuNi0xNC40LTIuNi0xOSAzYy0zLjcgNC42LTcuMSA5LjUtMTAuMiAxNC42bC0yLjMgMy45Yy0yLjggNS4xLTUuMyAxMC40LTcuNCAxNS45Yy0yLjYgNi44IC41IDE0LjMgNi44IDE3LjlsMi45IDEuN2M5LjIgNS4zIDEzLjcgMTUuOCAxMy43IDI2LjRzLTQuNSAyMS4xLTEzLjcgMjYuNGwtMyAxLjdjLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjljMi4xIDUuNSA0LjYgMTAuNyA3LjQgMTUuOGwyLjQgNC4xYzMgNS4xIDYuNCA5LjkgMTAuMSAxNC41YzQuNiA1LjcgMTIuNyA2LjcgMTkgM2wyLjktMS43YzkuMi01LjMgMjAuNC00IDI5LjYgMS4zczE2LjEgMTQuNSAxNi4xIDI1LjFsMCAzLjRjMCA3LjMgNC45IDEzLjggMTIuMSAxNC45YzYuNSAxIDEzLjEgMS41IDE5LjkgMS41czEzLjQtLjUgMTkuOS0xLjVjNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjlsMC0zLjRjMC0xMC42IDYuOS0xOS44IDE2LjEtMjUuMXMyMC40LTYuNiAyOS42LTEuM2wyLjkgMS43YzYuMyAzLjYgMTQuNCAyLjYgMTktM2MzLjctNC42IDcuMS05LjQgMTAuMS0xNC41bDIuNC00LjJjMi44LTUuMSA1LjMtMTAuMyA3LjQtMTUuOGMyLjYtNi44LS41LTE0LjMtNi44LTE3LjlsLTMtMS43Yy05LjItNS4zLTEzLjctMTUuOC0xMy43LTI2LjRzNC41LTIxLjEgMTMuNy0yNi40bDMtMS43ek00NzIgMzg0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6XCJdXG59O1xuY29uc3QgZmFVc2Vyc0NvZyA9IGZhVXNlcnNHZWFyO1xuY29uc3QgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1taWxpdGFyeS1wb2ludGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU0YVwiLCBcIk0yNDYuOSAxNC4xQzIzNCAxNS4yIDIyNCAyNiAyMjQgMzljMCAxMy44IDExLjIgMjUgMjUgMjVsMTUxIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzAuNkM0MTYgOCA0MDggLjcgMzk4LjcgMS40TDI0Ni45IDE0LjF6TTI0MCAxMTJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkwyNDEuNiA5NmMtMSA1LjItMS42IDEwLjUtMS42IDE2ek03MiAyMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTUyIDAgMCA4OS40TDM4Ni44IDIzMC41Yy0xMy4zLTQuMy0yNy4zLTYuNS00MS42LTYuNUwyNDAgMjI0IDcyIDIyNHptMzQ1LjcgMjAuOUwyNDYuNiA0MTYgNDE2IDQxNmwwLTQ2LjMgNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQ2Mi4zIDI5MC44Yy0xMS4yLTE4LjktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMjI0IDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6XCJdXG59O1xuY29uc3QgZmFCdWlsZGluZ0NvbHVtbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY29sdW1ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmFua1wiLCBcImluc3RpdHV0aW9uXCIsIFwibXVzZXVtXCIsIFwidW5pdmVyc2l0eVwiXSwgXCJmMTljXCIsIFwiTTI0My40IDIuNmwtMjI0IDk2Yy0xNCA2LTIxLjggMjEtMTguNyAzNS44UzE2LjggMTYwIDMyIDE2MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzE1LjIgMCAyOC4zLTEwLjcgMzEuMy0yNS42cy00LjgtMjkuOS0xOC43LTM1LjhsLTIyNC05NmMtOC0zLjQtMTcuMi0zLjQtMjUuMiAwek0xMjggMjI0bC02NCAwIDAgMTk2LjNjLS42IC4zLTEuMiAuNy0xLjggMS4xbC00OCAzMmMtMTEuNyA3LjgtMTcgMjIuNC0xMi45IDM1LjlTMTcuOSA1MTIgMzIgNTEybDQ0OCAwYzE0LjEgMCAyNi41LTkuMiAzMC42LTIyLjdzLTEuMS0yOC4xLTEyLjktMzUuOWwtNDgtMzJjLS42LS40LTEuMi0uNy0xLjgtMS4xTDQ0OCAyMjRsLTY0IDAgMCAxOTItNDAgMCAwLTE5Mi02NCAwIDAgMTkyLTQ4IDAgMC0xOTItNjQgMCAwIDE5Mi00MCAwIDAtMTkyek0yNTYgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbmNvbnN0IGZhQmFuayA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFJbnN0aXR1dGlvbiA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFNdXNldW0gPSBmYUJ1aWxkaW5nQ29sdW1ucztcbmNvbnN0IGZhVW5pdmVyc2l0eSA9IGZhQnVpbGRpbmdDb2x1bW5zO1xuY29uc3QgZmFVbWJyZWxsYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bWJyZWxsYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjBlOVwiLCBcIk0yODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE3LjdDNDUxLjggNjMuNCA1NTcuNyAxNjEgNTczLjkgMjg1LjljMiAxNS42LTE3LjMgMjQuNC0yNy44IDEyLjdDNTMyLjEgMjgzIDUwNC44IDI3MiA0ODAgMjcyYy0zOC43IDAtNzEgMjcuNS03OC40IDY0LjFjLTEuNyA4LjctOC43IDE1LjktMTcuNiAxNS45cy0xNS44LTcuMi0xNy42LTE1LjlDMzU5IDI5OS41IDMyNi43IDI3MiAyODggMjcycy03MSAyNy41LTc4LjQgNjQuMWMtMS43IDguNy04LjcgMTUuOS0xNy42IDE1LjlzLTE1LjgtNy4yLTE3LjYtMTUuOUMxNjcgMjk5LjUgMTM0LjcgMjcyIDk2IDI3MmMtMjQuOCAwLTUyLjEgMTEtNjYuMSAyNi43QzE5LjQgMzEwLjQgLjEgMzAxLjUgMi4xIDI4NS45QzE4LjMgMTYxIDEyNC4yIDYzLjQgMjU2IDQ5LjdMMjU2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDMwNGMxMi4zIDAgMjMuNSA0LjYgMzIgMTIuMmwwIDExNC4zYzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNGMtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjZjOS42IDAgMTcuNC03LjggMTcuNC0xNy40bDAtMTE0LjNjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMnpcIl1cbn07XG5jb25zdCBmYVRyb3dlbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm93ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1ODlcIiwgXCJNMzQzLjkgMjEzLjRMMjQ1LjMgMzEybDY1LjQgNjUuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45Uy0yLjEgNDgxLjggMS41IDQ3MC41bDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIwMCAyNjYuN2w5OC42LTk4LjZjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zelwiXVxufTtcbmNvbnN0IGZhRCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTAwXSwgXCI0NFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDk2IDBjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNHMtMTAwLjMgMjI0LTIyNCAyMjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCAwTDY0IDk2bDAgMzIwIDk2IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBzLTcxLjYtMTYwLTE2MC0xNjB6XCJdXG59O1xuY29uc3QgZmFTdGFwbGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXBsZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1YWZcIiwgXCJNNjQwIDI5OS4zbDAgNC43IDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04MCAwLTY0IDBMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwIDAtNDhMOTYgMzY4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExNi42TDMzLjggMjE0QzE0LjIgMjEwLjUgMCAxOTMuNSAwIDE3My43YzAtOC45IDIuOS0xNy41IDguMi0yNC42bDM1LjYtNDcuNUM3Ni43IDU3LjggMTI4LjIgMzIgMTgyLjkgMzJjMjcgMCA1My42IDYuMyA3Ny44IDE4LjRMNTg2LjkgMjEzLjVDNjE5LjUgMjI5LjcgNjQwIDI2MyA2NDAgMjk5LjN6TTQ0OCAzMDRsMC0xNkwxMjggMjMwLjlsMCA3My4xIDMyMCAwelwiXVxufTtcbmNvbnN0IGZhTWFza3NUaGVhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hc2tzLXRoZWF0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjc5MTcsIFwidGhlYXRlci1tYXNrc1wiXSwgXCJmNjMwXCIsIFwiTTc0LjYgMzczLjJjNDEuNyAzNi4xIDEwOCA4Mi41IDE2Ni4xIDczLjdjNi4xLS45IDEyLjEtMi41IDE4LTQuNWMtOS4yLTEyLjMtMTcuMy0yNC40LTI0LjItMzUuNGMtMjEuOS0zNS0yOC44LTc1LjItMjUuOS0xMTMuNmMtMjAuNiA0LjEtMzkuMiAxMy01NC43IDI1LjRjLTYuNSA1LjItMTYuMyAxLjMtMTQuOC03YzYuNC0zMy41IDMzLTYwLjkgNjguMi02Ni4zYzIuNi0uNCA1LjMtLjcgNy45LS44bDE5LjQtMTMxLjNjMi0xMy44IDgtMzIuNyAyNS00NS45QzI3OC4yIDUzLjIgMzEwLjUgMzcgMzYzLjIgMzIuMmMtLjgtLjctMS42LTEuNC0yLjQtMi4xQzM0MC42IDE0LjUgMjg4LjQtMTEuNSAxNzUuNyA1LjZTMjAuNSA2MyA1LjcgODMuOUMwIDkxLjktLjggMTAyIC42IDExMS44TDI0LjggMjc2LjFjNS41IDM3LjMgMjEuNSA3Mi42IDQ5LjggOTcuMnptODcuNy0yMTkuNmM0LjQtMy4xIDEwLjgtMiAxMS44IDMuM2MuMSAuNSAuMiAxLjEgLjMgMS42YzMuMiAyMS44LTExLjYgNDItMzMuMSA0NS4zcy00MS41LTExLjgtNDQuNy0zMy41Yy0uMS0uNS0uMS0xLjEtLjItMS42Yy0uNi01LjQgNS4yLTguNCAxMC4zLTYuN2M5IDMgMTguOCAzLjkgMjguNyAyLjRzMTkuMS01LjMgMjYuOC0xMC44ek0yNjEuNiAzOTBjMjkuNCA0Ni45IDc5LjUgMTEwLjkgMTM3LjYgMTE5LjdzMTI0LjUtMzcuNSAxNjYuMS03My43YzI4LjMtMjQuNSA0NC4zLTU5LjggNDkuOC05Ny4ybDI0LjItMTY0LjNjMS40LTkuOCAuNi0xOS45LTUuMS0yNy45Yy0xNC44LTIwLjktNTcuMy02MS4yLTE3MC03OC4zUzI5OS40IDc3LjIgMjc5LjIgOTIuOGMtNy44IDYtMTEuNSAxNS40LTEyLjkgMjUuMkwyNDIuMSAyODIuM2MtNS41IDM3LjMtLjQgNzUuOCAxOS42IDEwNy43ek00MDQuNSAyMzUuM2MtNy43LTUuNS0xNi44LTkuMy0yNi44LTEwLjhzLTE5LjgtLjYtMjguNyAyLjRjLTUuMSAxLjctMTAuOS0xLjMtMTAuMy02LjdjLjEtLjUgLjEtMS4xIC4yLTEuNmMzLjItMjEuOCAyMy4yLTM2LjggNDQuNy0zMy41czM2LjMgMjMuNSAzMy4xIDQ1LjNjLS4xIC41LS4yIDEuMS0uMyAxLjZjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjN6bTEzNi4yIDE1LjVjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjNjLTcuNy01LjUtMTYuOC05LjMtMjYuOC0xMC44cy0xOS44LS42LTI4LjcgMi40Yy01LjEgMS43LTEwLjktMS4zLTEwLjMtNi43Yy4xLS41IC4xLTEuMSAuMi0xLjZjMy4yLTIxLjggMjMuMi0zNi44IDQ0LjctMzMuNXMzNi4zIDIzLjUgMzMuMSA0NS4zYy0uMSAuNS0uMiAxLjEtLjMgMS42ek01MzAgMzUwLjJjLTE5LjYgNDQuNy02Ni44IDcyLjUtMTE2LjggNjQuOXMtODcuMS00OC4yLTkzLTk2LjdjLTEtOC4zIDguOS0xMi4xIDE1LjItNi43YzIzLjkgMjAuOCA1My42IDM1LjMgODcgNDAuM3M2Ni4xIC4xIDk0LjktMTIuOGM3LjYtMy40IDE2IDMuMiAxMi42IDEwLjl6XCJdXG59O1xuY29uc3QgZmFUaGVhdGVyTWFza3MgPSBmYU1hc2tzVGhlYXRlcjtcbmNvbnN0IGZhS2lwU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraXAtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFjNFwiLCBcIk0zNDAuOCA4OC4zYzEzLjQtMTEuNSAxNS0zMS43IDMuNS00NS4xcy0zMS43LTE1LTQ1LjEtMy41TDEyOCAxODYuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgNDYuMyA2NCA2NGwwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyMi40TDI5OS4yIDQ3Mi4zYzEzLjQgMTEuNSAzMy42IDkuOSA0NS4xLTMuNXM5LjktMzMuNi0zLjUtNDUuMUwxODIuNSAyODggMzUyIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTY5LjUgMEwzNDAuOCA4OC4zelwiXVxufTtcbmNvbnN0IGZhSGFuZFBvaW50TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTVcIiwgXCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMjA4IDAgMC02NEwzMiA5NnpNMTkyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem0tNjQtNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTk2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem04OC05NmwtLjYgMGM1LjQgOS40IDguNiAyMC4zIDguNiAzMmMwIDEzLjItNCAyNS40LTEwLjggMzUuNmMyNC45IDguNyA0Mi44IDMyLjUgNDIuOCA2MC40YzAgMTEuNy0zLjEgMjIuNi04LjYgMzJsOC42IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02MS43YzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtMTEuNi0xMS42QzQyOS41IDc3LjUgMzk2LjkgNjQgMzYzIDY0bC0yNyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC01NmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJ6XCJdXG59O1xuY29uc3QgZmFIYW5kc2hha2VTaW1wbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlLXNpbXBsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTMwOSwgXCJoYW5kc2hha2UtYWx0XCJdLCBcImY0YzZcIiwgXCJNMzIzLjQgODUuMmwtOTYuOCA3OC40Yy0xNi4xIDEzLTE5LjIgMzYuNC03IDUzLjFjMTIuOSAxNy44IDM4IDIxLjMgNTUuMyA3LjhsOTkuMy03Ny4yYzctNS40IDE3LTQuMiAyMi41IDIuOHM0LjIgMTctMi44IDIyLjVsLTIwLjkgMTYuMkw1NTAuMiAzNTJsNDEuOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC03NiAwLTQgMC0uNyAwLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4yem0yMi44IDEyNC40bC01MS43IDQwLjJDMjYzIDI3NC40IDIxNy4zIDI2OCAxOTMuNyAyMzUuNmMtMjIuMi0zMC41LTE2LjYtNzMuMSAxMi43LTk2LjhsODMuMi02Ny4zYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTcyIDQ4LTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwOC4yIDAgOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45YzQuNS00LjkgNy44LTEwLjYgOS45LTE2LjVjMTkuNCAxMyA0NS44IDEwLjMgNjIuMS03LjVjMTcuOS0xOS41IDE2LjYtNDkuOS0yLjktNjcuOGwtMTM0LjItMTIzelwiXVxufTtcbmNvbnN0IGZhSGFuZHNoYWtlQWx0ID0gZmFIYW5kc2hha2VTaW1wbGU7XG5jb25zdCBmYUpldEZpZ2h0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamV0LWZpZ2h0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImZpZ2h0ZXItamV0XCJdLCBcImYwZmJcIiwgXCJNMTYwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0TDI5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwTDM4NCAxOTJsMTE2LjQgMGM3LjcgMCAxNS4zIDEuNCAyMi41IDQuMUw2MjUgMjM0LjRjOSAzLjQgMTUgMTIgMTUgMjEuNnMtNiAxOC4yLTE1IDIxLjZMNTIyLjkgMzE1LjljLTcuMiAyLjctMTQuOCA0LjEtMjIuNSA0LjFMMzg0IDMyMCAyODAgNDY0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTE0NC0zMiAwLTU0LjYgNTQuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40TDY0IDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNEwxNjAgMTkybDMyIDAgMC0xNDQtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODAgMjQwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDB6XCJdXG59O1xuY29uc3QgZmFGaWdodGVySmV0ID0gZmFKZXRGaWdodGVyO1xuY29uc3QgZmFTcXVhcmVTaGFyZU5vZGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1zaGFyZS1ub2RlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2hhcmUtYWx0LXNxdWFyZVwiXSwgXCJmMWUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM4NCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVMMTk0LjEgMjU2bDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNWMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE3NC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxOC4zIDAgMzQuOCA3LjcgNDYuNSAyMGw4MS45LTQ0LjdjLS4zLTIuNC0uNC00LjktLjQtNy4zYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6XCJdXG59O1xuY29uc3QgZmFTaGFyZUFsdFNxdWFyZSA9IGZhU3F1YXJlU2hhcmVOb2RlcztcbmNvbnN0IGZhQmFyY29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXJjb2RlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDJhXCIsIFwiTTI0IDMyQzEwLjcgMzIgMCA0Mi43IDAgNTZMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNEw2NCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyNCAzMnptODggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDE2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00MTZjMC04LjgtNy4yLTE2LTE2LTE2em03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwem05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwek00NDggNTZsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bS02NC04bDAgNDE2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00MTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6XCJdXG59O1xuY29uc3QgZmFQbHVzTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1cy1taW51cycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTQzY1wiLCBcIk0yMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJMNDggMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDExMiAwIDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTIgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTExMiAwIDAtMTEyek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbmNvbnN0IGZhVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlkZW8nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInZpZGVvLWNhbWVyYVwiXSwgXCJmMDNkXCIsIFwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTU1OS4xIDk5LjhjMTAuNCA1LjYgMTYuOSAxNi40IDE2LjkgMjguMmwwIDI1NmMwIDExLjgtNi41IDIyLjYtMTYuOSAyOC4ycy0yMyA1LTMyLjktMS42bC05Ni02NEw0MTYgMzM3LjFsMC0xNy4xIDAtMTI4IDAtMTcuMSAxNC4yLTkuNSA5Ni02NGM5LjgtNi41IDIyLjQtNy4yIDMyLjktMS42elwiXVxufTtcbmNvbnN0IGZhVmlkZW9DYW1lcmEgPSBmYVZpZGVvO1xuY29uc3QgZmFHcmFkdWF0aW9uQ2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyYWR1YXRpb24tY2FwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI3ODkxLCBcIm1vcnRhci1ib2FyZFwiXSwgXCJmMTlkXCIsIFwiTTMyMCAzMmMtOC4xIDAtMTYuMSAxLjQtMjMuNyA0LjFMMTUuOCAxMzcuNEM2LjMgMTQwLjkgMCAxNDkuOSAwIDE2MHM2LjMgMTkuMSAxNS44IDIyLjZsNTcuOSAyMC45QzU3LjMgMjI5LjMgNDggMjU5LjggNDggMjkxLjlsMCAyOC4xYzAgMjguNC0xMC44IDU3LjctMjIuMyA4MC44Yy02LjUgMTMtMTMuOSAyNS44LTIyLjUgMzcuNkMwIDQ0Mi43LS45IDQ0OC4zIC45IDQ1My40czYgOC45IDExLjIgMTAuMmw2NCAxNmM0LjIgMS4xIDguNyAuMyAxMi40LTJzNi4zLTYuMSA3LjEtMTAuNGM4LjYtNDIuOCA0LjMtODEuMi0yLjEtMTA4LjdDOTAuMyAzNDQuMyA4NiAzMjkuOCA4MCAzMTYuNWwwLTI0LjZjMC0zMC4yIDEwLjItNTguNyAyNy45LTgxLjVjMTIuOS0xNS41IDI5LjYtMjggNDkuMi0zNS43bDE1Ny02MS43YzguMi0zLjIgMTcuNSAuOCAyMC43IDlzLS44IDE3LjUtOSAyMC43bC0xNTcgNjEuN2MtMTIuNCA0LjktMjMuMyAxMi40LTMyLjIgMjEuNmwxNTkuNiA1Ny42YzcuNiAyLjcgMTUuNiA0LjEgMjMuNyA0LjFzMTYuMS0xLjQgMjMuNy00LjFMNjI0LjIgMTgyLjZjOS41LTMuNCAxNS44LTEyLjUgMTUuOC0yMi42cy02LjMtMTkuMS0xNS44LTIyLjZMMzQzLjcgMzYuMUMzMzYuMSAzMy40IDMyOC4xIDMyIDMyMCAzMnpNMTI4IDQwOGMwIDM1LjMgODYgNzIgMTkyIDcyczE5Mi0zNi43IDE5Mi03Mkw0OTYuNyAyNjIuNiAzNTQuNSAzMTRjLTExLjEgNC0yMi44IDYtMzQuNSA2cy0yMy41LTItMzQuNS02TDE0My4zIDI2Mi42IDEyOCA0MDh6XCJdXG59O1xuY29uc3QgZmFNb3J0YXJCb2FyZCA9IGZhR3JhZHVhdGlvbkNhcDtcbmNvbnN0IGZhSGFuZEhvbGRpbmdNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtaG9sZGluZy1tZWRpY2FsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDVjXCIsIFwiTTIyNCAyNGwwIDU2LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNTYgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTU2IDAgMC01NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTU1OS43IDM5Mi4yYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjcyIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwIDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAtMTYgMC03OC4zIDBjLTI5LjEgMC01Ny4zIDkuOS04MCAyOEw2OC44IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMTYwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zem0tMzY3LTguMmwuOSAwYzAgMCAwIDAgMCAwYy0uMyAwLS42IDAtLjkgMHpcIl1cbn07XG5jb25zdCBmYVBlcnNvbkNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1M2VcIiwgXCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyMy4xTDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42bDI5LjcgMGMzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjkgMjMyIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwem0xMzYgMTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNDE2IDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJdXG59O1xuY29uc3QgZmFUdXJuVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHVybi11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzEwNTQ4LCBcImxldmVsLXVwLWFsdFwiXSwgXCJmM2JmXCIsIFwiTTM1MCAxNzcuNWMzLjgtOC44IDItMTktNC42LTI2bC0xMzYtMTQ0QzIwNC45IDIuNyAxOTguNiAwIDE5MiAwcy0xMi45IDIuNy0xNy40IDcuNWwtMTM2IDE0NGMtNi42IDctOC40IDE3LjItNC42IDI2czEyLjUgMTQuNSAyMiAxNC41bDg4IDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTE5MiA4OCAwYzkuNiAwIDE4LjItNS43IDIyLTE0LjV6XCJdXG59O1xuY29uc3QgZmFMZXZlbFVwQWx0ID0gZmFUdXJuVXA7XG52YXIgaWNvbnMgPSB7XG4gIGZhMCxcbiAgZmExLFxuICBmYTIsXG4gIGZhMyxcbiAgZmE0LFxuICBmYTUsXG4gIGZhNixcbiAgZmE3LFxuICBmYTgsXG4gIGZhOSxcbiAgZmFGaWxsRHJpcCxcbiAgZmFBcnJvd3NUb0NpcmNsZSxcbiAgZmFDaXJjbGVDaGV2cm9uUmlnaHQsXG4gIGZhQ2hldnJvbkNpcmNsZVJpZ2h0LFxuICBmYUF0LFxuICBmYVRyYXNoQ2FuLFxuICBmYVRyYXNoQWx0LFxuICBmYVRleHRIZWlnaHQsXG4gIGZhVXNlclhtYXJrLFxuICBmYVVzZXJUaW1lcyxcbiAgZmFTdGV0aG9zY29wZSxcbiAgZmFNZXNzYWdlLFxuICBmYUNvbW1lbnRBbHQsXG4gIGZhSW5mbyxcbiAgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcixcbiAgZmFDb21wcmVzc0FsdCxcbiAgZmFFeHBsb3Npb24sXG4gIGZhRmlsZUxpbmVzLFxuICBmYUZpbGVBbHQsXG4gIGZhRmlsZVRleHQsXG4gIGZhV2F2ZVNxdWFyZSxcbiAgZmFSaW5nLFxuICBmYUJ1aWxkaW5nVW4sXG4gIGZhRGljZVRocmVlLFxuICBmYUNhbGVuZGFyRGF5cyxcbiAgZmFDYWxlbmRhckFsdCxcbiAgZmFBbmNob3JDaXJjbGVDaGVjayxcbiAgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQsXG4gIGZhVm9sbGV5YmFsbCxcbiAgZmFWb2xsZXliYWxsQmFsbCxcbiAgZmFBcnJvd3NVcFRvTGluZSxcbiAgZmFTb3J0RG93bixcbiAgZmFTb3J0RGVzYyxcbiAgZmFDaXJjbGVNaW51cyxcbiAgZmFNaW51c0NpcmNsZSxcbiAgZmFEb29yT3BlbixcbiAgZmFSaWdodEZyb21CcmFja2V0LFxuICBmYVNpZ25PdXRBbHQsXG4gIGZhQXRvbSxcbiAgZmFTb2FwLFxuICBmYUljb25zLFxuICBmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0LFxuICBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoLFxuICBmYU1pY3JvcGhvbmVBbHRTbGFzaCxcbiAgZmFCcmlkZ2VDaXJjbGVDaGVjayxcbiAgZmFQdW1wTWVkaWNhbCxcbiAgZmFGaW5nZXJwcmludCxcbiAgZmFIYW5kUG9pbnRSaWdodCxcbiAgZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbixcbiAgZmFTZWFyY2hMb2NhdGlvbixcbiAgZmFGb3J3YXJkU3RlcCxcbiAgZmFTdGVwRm9yd2FyZCxcbiAgZmFGYWNlU21pbGVCZWFtLFxuICBmYVNtaWxlQmVhbSxcbiAgZmFGbGFnQ2hlY2tlcmVkLFxuICBmYUZvb3RiYWxsLFxuICBmYUZvb3RiYWxsQmFsbCxcbiAgZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDcm9wLFxuICBmYUFuZ2xlc0Rvd24sXG4gIGZhQW5nbGVEb3VibGVEb3duLFxuICBmYVVzZXJzUmVjdGFuZ2xlLFxuICBmYVBlb3BsZVJvb2YsXG4gIGZhUGVvcGxlTGluZSxcbiAgZmFCZWVyTXVnRW1wdHksXG4gIGZhQmVlcixcbiAgZmFEaWFncmFtUHJlZGVjZXNzb3IsXG4gIGZhQXJyb3dVcExvbmcsXG4gIGZhTG9uZ0Fycm93VXAsXG4gIGZhRmlyZUZsYW1lU2ltcGxlLFxuICBmYUJ1cm4sXG4gIGZhUGVyc29uLFxuICBmYU1hbGUsXG4gIGZhTGFwdG9wLFxuICBmYUZpbGVDc3YsXG4gIGZhTWVub3JhaCxcbiAgZmFUcnVja1BsYW5lLFxuICBmYVJlY29yZFZpbnlsLFxuICBmYUZhY2VHcmluU3RhcnMsXG4gIGZhR3JpblN0YXJzLFxuICBmYUJvbmcsXG4gIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZyxcbiAgZmFQYXN0YWZhcmlhbmlzbSxcbiAgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUsXG4gIGZhU3Bvb24sXG4gIGZhVXRlbnNpbFNwb29uLFxuICBmYUphcldoZWF0LFxuICBmYUVudmVsb3Blc0J1bGssXG4gIGZhTWFpbEJ1bGssXG4gIGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUNpcmNsZUgsXG4gIGZhSG9zcGl0YWxTeW1ib2wsXG4gIGZhUGFnZXIsXG4gIGZhQWRkcmVzc0Jvb2ssXG4gIGZhQ29udGFjdEJvb2ssXG4gIGZhU3RyaWtldGhyb3VnaCxcbiAgZmFLLFxuICBmYUxhbmRtYXJrRmxhZyxcbiAgZmFQZW5jaWwsXG4gIGZhUGVuY2lsQWx0LFxuICBmYUJhY2t3YXJkLFxuICBmYUNhcmV0UmlnaHQsXG4gIGZhQ29tbWVudHMsXG4gIGZhUGFzdGUsXG4gIGZhRmlsZUNsaXBib2FyZCxcbiAgZmFDb2RlUHVsbFJlcXVlc3QsXG4gIGZhQ2xpcGJvYXJkTGlzdCxcbiAgZmFUcnVja1JhbXBCb3gsXG4gIGZhVHJ1Y2tMb2FkaW5nLFxuICBmYVVzZXJDaGVjayxcbiAgZmFWaWFsVmlydXMsXG4gIGZhU2hlZXRQbGFzdGljLFxuICBmYUJsb2csXG4gIGZhVXNlck5pbmphLFxuICBmYVBlcnNvbkFycm93VXBGcm9tTGluZSxcbiAgZmFTY3JvbGxUb3JhaCxcbiAgZmFUb3JhaCxcbiAgZmFCcm9vbUJhbGwsXG4gIGZhUXVpZGRpdGNoLFxuICBmYVF1aWRkaXRjaEJyb29tQmFsbCxcbiAgZmFUb2dnbGVPZmYsXG4gIGZhQm94QXJjaGl2ZSxcbiAgZmFBcmNoaXZlLFxuICBmYVBlcnNvbkRyb3duaW5nLFxuICBmYUFycm93RG93bjkxLFxuICBmYVNvcnROdW1lcmljRGVzYyxcbiAgZmFTb3J0TnVtZXJpY0Rvd25BbHQsXG4gIGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQsXG4gIGZhR3JpblRvbmd1ZVNxdWludCxcbiAgZmFTcHJheUNhbixcbiAgZmFUcnVja01vbnN0ZXIsXG4gIGZhVyxcbiAgZmFFYXJ0aEFmcmljYSxcbiAgZmFHbG9iZUFmcmljYSxcbiAgZmFSYWluYm93LFxuICBmYUNpcmNsZU5vdGNoLFxuICBmYVRhYmxldFNjcmVlbkJ1dHRvbixcbiAgZmFUYWJsZXRBbHQsXG4gIGZhUGF3LFxuICBmYUNsb3VkLFxuICBmYVRyb3dlbEJyaWNrcyxcbiAgZmFGYWNlRmx1c2hlZCxcbiAgZmFGbHVzaGVkLFxuICBmYUhvc3BpdGFsVXNlcixcbiAgZmFUZW50QXJyb3dMZWZ0UmlnaHQsXG4gIGZhR2F2ZWwsXG4gIGZhTGVnYWwsXG4gIGZhQmlub2N1bGFycyxcbiAgZmFNaWNyb3Bob25lU2xhc2gsXG4gIGZhQm94VGlzc3VlLFxuICBmYU1vdG9yY3ljbGUsXG4gIGZhQmVsbENvbmNpZXJnZSxcbiAgZmFDb25jaWVyZ2VCZWxsLFxuICBmYVBlblJ1bGVyLFxuICBmYVBlbmNpbFJ1bGVyLFxuICBmYVBlb3BsZUFycm93cyxcbiAgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsXG4gIGZhTWFyc0FuZFZlbnVzQnVyc3QsXG4gIGZhU3F1YXJlQ2FyZXRSaWdodCxcbiAgZmFDYXJldFNxdWFyZVJpZ2h0LFxuICBmYVNjaXNzb3JzLFxuICBmYUN1dCxcbiAgZmFTdW5QbGFudFdpbHQsXG4gIGZhVG9pbGV0c1BvcnRhYmxlLFxuICBmYUhvY2tleVB1Y2ssXG4gIGZhVGFibGUsXG4gIGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodCxcbiAgZmFUYWNob2dyYXBoRGlnaXRhbCxcbiAgZmFEaWdpdGFsVGFjaG9ncmFwaCxcbiAgZmFVc2Vyc1NsYXNoLFxuICBmYUNsb3ZlcixcbiAgZmFSZXBseSxcbiAgZmFNYWlsUmVwbHksXG4gIGZhU3RhckFuZENyZXNjZW50LFxuICBmYUhvdXNlRmlyZSxcbiAgZmFTcXVhcmVNaW51cyxcbiAgZmFNaW51c1NxdWFyZSxcbiAgZmFIZWxpY29wdGVyLFxuICBmYUNvbXBhc3MsXG4gIGZhU3F1YXJlQ2FyZXREb3duLFxuICBmYUNhcmV0U3F1YXJlRG93bixcbiAgZmFGaWxlQ2lyY2xlUXVlc3Rpb24sXG4gIGZhTGFwdG9wQ29kZSxcbiAgZmFTd2F0Y2hib29rLFxuICBmYVByZXNjcmlwdGlvbkJvdHRsZSxcbiAgZmFCYXJzLFxuICBmYU5hdmljb24sXG4gIGZhUGVvcGxlR3JvdXAsXG4gIGZhSG91cmdsYXNzRW5kLFxuICBmYUhvdXJnbGFzczMsXG4gIGZhSGVhcnRDcmFjayxcbiAgZmFIZWFydEJyb2tlbixcbiAgZmFTcXVhcmVVcFJpZ2h0LFxuICBmYUV4dGVybmFsTGlua1NxdWFyZUFsdCxcbiAgZmFGYWNlS2lzc0JlYW0sXG4gIGZhS2lzc0JlYW0sXG4gIGZhRmlsbSxcbiAgZmFSdWxlckhvcml6b250YWwsXG4gIGZhUGVvcGxlUm9iYmVyeSxcbiAgZmFMaWdodGJ1bGIsXG4gIGZhQ2FyZXRMZWZ0LFxuICBmYUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUV4Y2xhbWF0aW9uQ2lyY2xlLFxuICBmYVNjaG9vbENpcmNsZVhtYXJrLFxuICBmYUFycm93UmlnaHRGcm9tQnJhY2tldCxcbiAgZmFTaWduT3V0LFxuICBmYUNpcmNsZUNoZXZyb25Eb3duLFxuICBmYUNoZXZyb25DaXJjbGVEb3duLFxuICBmYVVubG9ja0tleWhvbGUsXG4gIGZhVW5sb2NrQWx0LFxuICBmYUNsb3VkU2hvd2Vyc0hlYXZ5LFxuICBmYUhlYWRwaG9uZXNTaW1wbGUsXG4gIGZhSGVhZHBob25lc0FsdCxcbiAgZmFTaXRlbWFwLFxuICBmYUNpcmNsZURvbGxhclRvU2xvdCxcbiAgZmFEb25hdGUsXG4gIGZhTWVtb3J5LFxuICBmYVJvYWRTcGlrZXMsXG4gIGZhRmlyZUJ1cm5lcixcbiAgZmFGbGFnLFxuICBmYUhhbnVraWFoLFxuICBmYUZlYXRoZXIsXG4gIGZhVm9sdW1lTG93LFxuICBmYVZvbHVtZURvd24sXG4gIGZhQ29tbWVudFNsYXNoLFxuICBmYUNsb3VkU3VuUmFpbixcbiAgZmFDb21wcmVzcyxcbiAgZmFXaGVhdEF3bixcbiAgZmFXaGVhdEFsdCxcbiAgZmFBbmtoLFxuICBmYUhhbmRzSG9sZGluZ0NoaWxkLFxuICBmYUFzdGVyaXNrLFxuICBmYVNxdWFyZUNoZWNrLFxuICBmYUNoZWNrU3F1YXJlLFxuICBmYVBlc2V0YVNpZ24sXG4gIGZhSGVhZGluZyxcbiAgZmFIZWFkZXIsXG4gIGZhR2hvc3QsXG4gIGZhTGlzdCxcbiAgZmFMaXN0U3F1YXJlcyxcbiAgZmFTcXVhcmVQaG9uZUZsaXAsXG4gIGZhUGhvbmVTcXVhcmVBbHQsXG4gIGZhQ2FydFBsdXMsXG4gIGZhR2FtZXBhZCxcbiAgZmFDaXJjbGVEb3QsXG4gIGZhRG90Q2lyY2xlLFxuICBmYUZhY2VEaXp6eSxcbiAgZmFEaXp6eSxcbiAgZmFFZ2csXG4gIGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmssXG4gIGZhQ2FtcGdyb3VuZCxcbiAgZmFGb2xkZXJQbHVzLFxuICBmYUZ1dGJvbCxcbiAgZmFGdXRib2xCYWxsLFxuICBmYVNvY2NlckJhbGwsXG4gIGZhUGFpbnRicnVzaCxcbiAgZmFQYWludEJydXNoLFxuICBmYUxvY2ssXG4gIGZhR2FzUHVtcCxcbiAgZmFIb3RUdWJQZXJzb24sXG4gIGZhSG90VHViLFxuICBmYU1hcExvY2F0aW9uLFxuICBmYU1hcE1hcmtlZCxcbiAgZmFIb3VzZUZsb29kV2F0ZXIsXG4gIGZhVHJlZSxcbiAgZmFCcmlkZ2VMb2NrLFxuICBmYVNhY2tEb2xsYXIsXG4gIGZhUGVuVG9TcXVhcmUsXG4gIGZhRWRpdCxcbiAgZmFDYXJTaWRlLFxuICBmYVNoYXJlTm9kZXMsXG4gIGZhU2hhcmVBbHQsXG4gIGZhSGVhcnRDaXJjbGVNaW51cyxcbiAgZmFIb3VyZ2xhc3NIYWxmLFxuICBmYUhvdXJnbGFzczIsXG4gIGZhTWljcm9zY29wZSxcbiAgZmFTaW5rLFxuICBmYUJhZ1Nob3BwaW5nLFxuICBmYVNob3BwaW5nQmFnLFxuICBmYUFycm93RG93blpBLFxuICBmYVNvcnRBbHBoYURlc2MsXG4gIGZhU29ydEFscGhhRG93bkFsdCxcbiAgZmFNaXR0ZW4sXG4gIGZhUGVyc29uUmF5cyxcbiAgZmFVc2VycyxcbiAgZmFFeWVTbGFzaCxcbiAgZmFGbGFza1ZpYWwsXG4gIGZhSGFuZCxcbiAgZmFIYW5kUGFwZXIsXG4gIGZhT20sXG4gIGZhV29ybSxcbiAgZmFIb3VzZUNpcmNsZVhtYXJrLFxuICBmYVBsdWcsXG4gIGZhQ2hldnJvblVwLFxuICBmYUhhbmRTcG9jayxcbiAgZmFTdG9wd2F0Y2gsXG4gIGZhRmFjZUtpc3MsXG4gIGZhS2lzcyxcbiAgZmFCcmlkZ2VDaXJjbGVYbWFyayxcbiAgZmFGYWNlR3JpblRvbmd1ZSxcbiAgZmFHcmluVG9uZ3VlLFxuICBmYUNoZXNzQmlzaG9wLFxuICBmYUZhY2VHcmluV2luayxcbiAgZmFHcmluV2luayxcbiAgZmFFYXJEZWFmLFxuICBmYURlYWYsXG4gIGZhRGVhZm5lc3MsXG4gIGZhSGFyZE9mSGVhcmluZyxcbiAgZmFSb2FkQ2lyY2xlQ2hlY2ssXG4gIGZhRGljZUZpdmUsXG4gIGZhU3F1YXJlUnNzLFxuICBmYVJzc1NxdWFyZSxcbiAgZmFMYW5kTWluZU9uLFxuICBmYUlDdXJzb3IsXG4gIGZhU3RhbXAsXG4gIGZhU3RhaXJzLFxuICBmYUksXG4gIGZhSHJ5dm5pYVNpZ24sXG4gIGZhSHJ5dm5pYSxcbiAgZmFQaWxscyxcbiAgZmFGYWNlR3JpbldpZGUsXG4gIGZhR3JpbkFsdCxcbiAgZmFUb290aCxcbiAgZmFWLFxuICBmYUJhbmdsYWRlc2hpVGFrYVNpZ24sXG4gIGZhQmljeWNsZSxcbiAgZmFTdGFmZlNuYWtlLFxuICBmYVJvZEFzY2xlcGl1cyxcbiAgZmFSb2RTbmFrZSxcbiAgZmFTdGFmZkFlc2N1bGFwaXVzLFxuICBmYUhlYWRTaWRlQ291Z2hTbGFzaCxcbiAgZmFUcnVja01lZGljYWwsXG4gIGZhQW1idWxhbmNlLFxuICBmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhU25vd21hbixcbiAgZmFNb3J0YXJQZXN0bGUsXG4gIGZhUm9hZEJhcnJpZXIsXG4gIGZhU2Nob29sLFxuICBmYUlnbG9vLFxuICBmYUpvaW50LFxuICBmYUFuZ2xlUmlnaHQsXG4gIGZhSG9yc2UsXG4gIGZhUSxcbiAgZmFHLFxuICBmYU5vdGVzTWVkaWNhbCxcbiAgZmFUZW1wZXJhdHVyZUhhbGYsXG4gIGZhVGVtcGVyYXR1cmUyLFxuICBmYVRoZXJtb21ldGVyMixcbiAgZmFUaGVybW9tZXRlckhhbGYsXG4gIGZhRG9uZ1NpZ24sXG4gIGZhQ2Fwc3VsZXMsXG4gIGZhUG9vU3Rvcm0sXG4gIGZhUG9vQm9sdCxcbiAgZmFGYWNlRnJvd25PcGVuLFxuICBmYUZyb3duT3BlbixcbiAgZmFIYW5kUG9pbnRVcCxcbiAgZmFNb25leUJpbGwsXG4gIGZhQm9va21hcmssXG4gIGZhQWxpZ25KdXN0aWZ5LFxuICBmYVVtYnJlbGxhQmVhY2gsXG4gIGZhSGVsbWV0VW4sXG4gIGZhQnVsbHNleWUsXG4gIGZhQmFjb24sXG4gIGZhSGFuZFBvaW50RG93bixcbiAgZmFBcnJvd1VwRnJvbUJyYWNrZXQsXG4gIGZhRm9sZGVyLFxuICBmYUZvbGRlckJsYW5rLFxuICBmYUZpbGVXYXZlZm9ybSxcbiAgZmFGaWxlTWVkaWNhbEFsdCxcbiAgZmFSYWRpYXRpb24sXG4gIGZhQ2hhcnRTaW1wbGUsXG4gIGZhTWFyc1N0cm9rZSxcbiAgZmFWaWFsLFxuICBmYUdhdWdlLFxuICBmYURhc2hib2FyZCxcbiAgZmFHYXVnZU1lZCxcbiAgZmFUYWNob21ldGVyQWx0QXZlcmFnZSxcbiAgZmFXYW5kTWFnaWNTcGFya2xlcyxcbiAgZmFNYWdpY1dhbmRTcGFya2xlcyxcbiAgZmFFLFxuICBmYVBlbkNsaXAsXG4gIGZhUGVuQWx0LFxuICBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYVVzZXIsXG4gIGZhU2Nob29sQ2lyY2xlQ2hlY2ssXG4gIGZhRHVtcHN0ZXIsXG4gIGZhVmFuU2h1dHRsZSxcbiAgZmFTaHV0dGxlVmFuLFxuICBmYUJ1aWxkaW5nVXNlcixcbiAgZmFTcXVhcmVDYXJldExlZnQsXG4gIGZhQ2FyZXRTcXVhcmVMZWZ0LFxuICBmYUhpZ2hsaWdodGVyLFxuICBmYUtleSxcbiAgZmFCdWxsaG9ybixcbiAgZmFHbG9iZSxcbiAgZmFTeW5hZ29ndWUsXG4gIGZhUGVyc29uSGFsZkRyZXNzLFxuICBmYVJvYWRCcmlkZ2UsXG4gIGZhTG9jYXRpb25BcnJvdyxcbiAgZmFDLFxuICBmYVRhYmxldEJ1dHRvbixcbiAgZmFCdWlsZGluZ0xvY2ssXG4gIGZhUGl6emFTbGljZSxcbiAgZmFNb25leUJpbGxXYXZlLFxuICBmYUNoYXJ0QXJlYSxcbiAgZmFBcmVhQ2hhcnQsXG4gIGZhSG91c2VGbGFnLFxuICBmYVBlcnNvbkNpcmNsZU1pbnVzLFxuICBmYUJhbixcbiAgZmFDYW5jZWwsXG4gIGZhQ2FtZXJhUm90YXRlLFxuICBmYVNwcmF5Q2FuU3BhcmtsZXMsXG4gIGZhQWlyRnJlc2hlbmVyLFxuICBmYVN0YXIsXG4gIGZhUmVwZWF0LFxuICBmYUNyb3NzLFxuICBmYUJveCxcbiAgZmFWZW51c01hcnMsXG4gIGZhQXJyb3dQb2ludGVyLFxuICBmYU1vdXNlUG9pbnRlcixcbiAgZmFNYXhpbWl6ZSxcbiAgZmFFeHBhbmRBcnJvd3NBbHQsXG4gIGZhQ2hhcmdpbmdTdGF0aW9uLFxuICBmYVNoYXBlcyxcbiAgZmFUcmlhbmdsZUNpcmNsZVNxdWFyZSxcbiAgZmFTaHVmZmxlLFxuICBmYVJhbmRvbSxcbiAgZmFQZXJzb25SdW5uaW5nLFxuICBmYVJ1bm5pbmcsXG4gIGZhTW9iaWxlUmV0cm8sXG4gIGZhR3JpcExpbmVzVmVydGljYWwsXG4gIGZhU3BpZGVyLFxuICBmYUhhbmRzQm91bmQsXG4gIGZhRmlsZUludm9pY2VEb2xsYXIsXG4gIGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFYUmF5LFxuICBmYVNwZWxsQ2hlY2ssXG4gIGZhU2xhc2gsXG4gIGZhQ29tcHV0ZXJNb3VzZSxcbiAgZmFNb3VzZSxcbiAgZmFBcnJvd1JpZ2h0VG9CcmFja2V0LFxuICBmYVNpZ25JbixcbiAgZmFTaG9wU2xhc2gsXG4gIGZhU3RvcmVBbHRTbGFzaCxcbiAgZmFTZXJ2ZXIsXG4gIGZhVmlydXNDb3ZpZFNsYXNoLFxuICBmYVNob3BMb2NrLFxuICBmYUhvdXJnbGFzc1N0YXJ0LFxuICBmYUhvdXJnbGFzczEsXG4gIGZhQmxlbmRlclBob25lLFxuICBmYUJ1aWxkaW5nV2hlYXQsXG4gIGZhUGVyc29uQnJlYXN0ZmVlZGluZyxcbiAgZmFSaWdodFRvQnJhY2tldCxcbiAgZmFTaWduSW5BbHQsXG4gIGZhVmVudXMsXG4gIGZhUGFzc3BvcnQsXG4gIGZhVGh1bWJ0YWNrU2xhc2gsXG4gIGZhVGh1bWJUYWNrU2xhc2gsXG4gIGZhSGVhcnRQdWxzZSxcbiAgZmFIZWFydGJlYXQsXG4gIGZhUGVvcGxlQ2FycnlCb3gsXG4gIGZhUGVvcGxlQ2FycnksXG4gIGZhVGVtcGVyYXR1cmVIaWdoLFxuICBmYU1pY3JvY2hpcCxcbiAgZmFDcm93bixcbiAgZmFXZWlnaHRIYW5naW5nLFxuICBmYVhtYXJrc0xpbmVzLFxuICBmYUZpbGVQcmVzY3JpcHRpb24sXG4gIGZhV2VpZ2h0U2NhbGUsXG4gIGZhV2VpZ2h0LFxuICBmYVVzZXJHcm91cCxcbiAgZmFVc2VyRnJpZW5kcyxcbiAgZmFBcnJvd1VwQVosXG4gIGZhU29ydEFscGhhVXAsXG4gIGZhQ2hlc3NLbmlnaHQsXG4gIGZhRmFjZUxhdWdoU3F1aW50LFxuICBmYUxhdWdoU3F1aW50LFxuICBmYVdoZWVsY2hhaXIsXG4gIGZhQ2lyY2xlQXJyb3dVcCxcbiAgZmFBcnJvd0NpcmNsZVVwLFxuICBmYVRvZ2dsZU9uLFxuICBmYVBlcnNvbldhbGtpbmcsXG4gIGZhV2Fsa2luZyxcbiAgZmFMLFxuICBmYUZpcmUsXG4gIGZhQmVkUHVsc2UsXG4gIGZhUHJvY2VkdXJlcyxcbiAgZmFTaHV0dGxlU3BhY2UsXG4gIGZhU3BhY2VTaHV0dGxlLFxuICBmYUZhY2VMYXVnaCxcbiAgZmFMYXVnaCxcbiAgZmFGb2xkZXJPcGVuLFxuICBmYUhlYXJ0Q2lyY2xlUGx1cyxcbiAgZmFDb2RlRm9yayxcbiAgZmFDaXR5LFxuICBmYU1pY3JvcGhvbmVMaW5lcyxcbiAgZmFNaWNyb3Bob25lQWx0LFxuICBmYVBlcHBlckhvdCxcbiAgZmFVbmxvY2ssXG4gIGZhQ29sb25TaWduLFxuICBmYUhlYWRzZXQsXG4gIGZhU3RvcmVTbGFzaCxcbiAgZmFSb2FkQ2lyY2xlWG1hcmssXG4gIGZhVXNlck1pbnVzLFxuICBmYU1hcnNTdHJva2VVcCxcbiAgZmFNYXJzU3Ryb2tlVixcbiAgZmFDaGFtcGFnbmVHbGFzc2VzLFxuICBmYUdsYXNzQ2hlZXJzLFxuICBmYUNsaXBib2FyZCxcbiAgZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUZpbGVBcnJvd1VwLFxuICBmYUZpbGVVcGxvYWQsXG4gIGZhV2lmaSxcbiAgZmFXaWZpMyxcbiAgZmFXaWZpU3Ryb25nLFxuICBmYUJhdGgsXG4gIGZhQmF0aHR1YixcbiAgZmFVbmRlcmxpbmUsXG4gIGZhVXNlclBlbixcbiAgZmFVc2VyRWRpdCxcbiAgZmFTaWduYXR1cmUsXG4gIGZhU3Ryb29wd2FmZWwsXG4gIGZhQm9sZCxcbiAgZmFBbmNob3JMb2NrLFxuICBmYUJ1aWxkaW5nTmdvLFxuICBmYU1hbmF0U2lnbixcbiAgZmFOb3RFcXVhbCxcbiAgZmFCb3JkZXJUb3BMZWZ0LFxuICBmYUJvcmRlclN0eWxlLFxuICBmYU1hcExvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlZEFsdCxcbiAgZmFKZWRpLFxuICBmYVNxdWFyZVBvbGxWZXJ0aWNhbCxcbiAgZmFQb2xsLFxuICBmYU11Z0hvdCxcbiAgZmFDYXJCYXR0ZXJ5LFxuICBmYUJhdHRlcnlDYXIsXG4gIGZhR2lmdCxcbiAgZmFEaWNlVHdvLFxuICBmYUNoZXNzUXVlZW4sXG4gIGZhR2xhc3NlcyxcbiAgZmFDaGVzc0JvYXJkLFxuICBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2ssXG4gIGZhUGVyc29uQ2hhbGtib2FyZCxcbiAgZmFNYXJzU3Ryb2tlUmlnaHQsXG4gIGZhTWFyc1N0cm9rZUgsXG4gIGZhSGFuZEJhY2tGaXN0LFxuICBmYUhhbmRSb2NrLFxuICBmYVNxdWFyZUNhcmV0VXAsXG4gIGZhQ2FyZXRTcXVhcmVVcCxcbiAgZmFDbG91ZFNob3dlcnNXYXRlcixcbiAgZmFDaGFydEJhcixcbiAgZmFCYXJDaGFydCxcbiAgZmFIYW5kc0J1YmJsZXMsXG4gIGZhSGFuZHNXYXNoLFxuICBmYUxlc3NUaGFuRXF1YWwsXG4gIGZhVHJhaW4sXG4gIGZhRXllTG93VmlzaW9uLFxuICBmYUxvd1Zpc2lvbixcbiAgZmFDcm93LFxuICBmYVNhaWxib2F0LFxuICBmYVdpbmRvd1Jlc3RvcmUsXG4gIGZhU3F1YXJlUGx1cyxcbiAgZmFQbHVzU3F1YXJlLFxuICBmYVRvcmlpR2F0ZSxcbiAgZmFGcm9nLFxuICBmYUJ1Y2tldCxcbiAgZmFJbWFnZSxcbiAgZmFNaWNyb3Bob25lLFxuICBmYUNvdyxcbiAgZmFDYXJldFVwLFxuICBmYVNjcmV3ZHJpdmVyLFxuICBmYUZvbGRlckNsb3NlZCxcbiAgZmFIb3VzZVRzdW5hbWksXG4gIGZhU3F1YXJlTmZpLFxuICBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsXG4gIGZhTWFydGluaUdsYXNzLFxuICBmYUdsYXNzTWFydGluaUFsdCxcbiAgZmFSb3RhdGVMZWZ0LFxuICBmYVJvdGF0ZUJhY2ssXG4gIGZhUm90YXRlQmFja3dhcmQsXG4gIGZhVW5kb0FsdCxcbiAgZmFUYWJsZUNvbHVtbnMsXG4gIGZhQ29sdW1ucyxcbiAgZmFMZW1vbixcbiAgZmFIZWFkU2lkZU1hc2ssXG4gIGZhSGFuZHNoYWtlLFxuICBmYUdlbSxcbiAgZmFEb2xseSxcbiAgZmFEb2xseUJveCxcbiAgZmFTbW9raW5nLFxuICBmYU1pbmltaXplLFxuICBmYUNvbXByZXNzQXJyb3dzQWx0LFxuICBmYU1vbnVtZW50LFxuICBmYVNub3dwbG93LFxuICBmYUFuZ2xlc1JpZ2h0LFxuICBmYUFuZ2xlRG91YmxlUmlnaHQsXG4gIGZhQ2FubmFiaXMsXG4gIGZhQ2lyY2xlUGxheSxcbiAgZmFQbGF5Q2lyY2xlLFxuICBmYVRhYmxldHMsXG4gIGZhRXRoZXJuZXQsXG4gIGZhRXVyb1NpZ24sXG4gIGZhRXVyLFxuICBmYUV1cm8sXG4gIGZhQ2hhaXIsXG4gIGZhQ2lyY2xlQ2hlY2ssXG4gIGZhQ2hlY2tDaXJjbGUsXG4gIGZhQ2lyY2xlU3RvcCxcbiAgZmFTdG9wQ2lyY2xlLFxuICBmYUNvbXBhc3NEcmFmdGluZyxcbiAgZmFEcmFmdGluZ0NvbXBhc3MsXG4gIGZhUGxhdGVXaGVhdCxcbiAgZmFJY2ljbGVzLFxuICBmYVBlcnNvblNoZWx0ZXIsXG4gIGZhTmV1dGVyLFxuICBmYUlkQmFkZ2UsXG4gIGZhTWFya2VyLFxuICBmYUZhY2VMYXVnaEJlYW0sXG4gIGZhTGF1Z2hCZWFtLFxuICBmYUhlbGljb3B0ZXJTeW1ib2wsXG4gIGZhVW5pdmVyc2FsQWNjZXNzLFxuICBmYUNpcmNsZUNoZXZyb25VcCxcbiAgZmFDaGV2cm9uQ2lyY2xlVXAsXG4gIGZhTGFyaVNpZ24sXG4gIGZhVm9sY2FubyxcbiAgZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQsXG4gIGZhU3RlcmxpbmdTaWduLFxuICBmYUdicCxcbiAgZmFQb3VuZFNpZ24sXG4gIGZhVmlydXNlcyxcbiAgZmFTcXVhcmVQZXJzb25Db25maW5lZCxcbiAgZmFVc2VyVGllLFxuICBmYUFycm93RG93bkxvbmcsXG4gIGZhTG9uZ0Fycm93RG93bixcbiAgZmFUZW50QXJyb3dEb3duVG9MaW5lLFxuICBmYUNlcnRpZmljYXRlLFxuICBmYVJlcGx5QWxsLFxuICBmYU1haWxSZXBseUFsbCxcbiAgZmFTdWl0Y2FzZSxcbiAgZmFQZXJzb25Ta2F0aW5nLFxuICBmYVNrYXRpbmcsXG4gIGZhRmlsdGVyQ2lyY2xlRG9sbGFyLFxuICBmYUZ1bm5lbERvbGxhcixcbiAgZmFDYW1lcmFSZXRybyxcbiAgZmFDaXJjbGVBcnJvd0Rvd24sXG4gIGZhQXJyb3dDaXJjbGVEb3duLFxuICBmYUZpbGVJbXBvcnQsXG4gIGZhQXJyb3dSaWdodFRvRmlsZSxcbiAgZmFTcXVhcmVBcnJvd1VwUmlnaHQsXG4gIGZhRXh0ZXJuYWxMaW5rU3F1YXJlLFxuICBmYUJveE9wZW4sXG4gIGZhU2Nyb2xsLFxuICBmYVNwYSxcbiAgZmFMb2NhdGlvblBpbkxvY2ssXG4gIGZhUGF1c2UsXG4gIGZhSGlsbEF2YWxhbmNoZSxcbiAgZmFUZW1wZXJhdHVyZUVtcHR5LFxuICBmYVRlbXBlcmF0dXJlMCxcbiAgZmFUaGVybW9tZXRlcjAsXG4gIGZhVGhlcm1vbWV0ZXJFbXB0eSxcbiAgZmFCb21iLFxuICBmYVJlZ2lzdGVyZWQsXG4gIGZhQWRkcmVzc0NhcmQsXG4gIGZhQ29udGFjdENhcmQsXG4gIGZhVmNhcmQsXG4gIGZhU2NhbGVVbmJhbGFuY2VkRmxpcCxcbiAgZmFCYWxhbmNlU2NhbGVSaWdodCxcbiAgZmFTdWJzY3JpcHQsXG4gIGZhRGlhbW9uZFR1cm5SaWdodCxcbiAgZmFEaXJlY3Rpb25zLFxuICBmYUJ1cnN0LFxuICBmYUhvdXNlTGFwdG9wLFxuICBmYUxhcHRvcEhvdXNlLFxuICBmYUZhY2VUaXJlZCxcbiAgZmFUaXJlZCxcbiAgZmFNb25leUJpbGxzLFxuICBmYVNtb2csXG4gIGZhQ3J1dGNoLFxuICBmYUZvbnRBd2Vzb21lLFxuICBmYUZvbnRBd2Vzb21lRmxhZyxcbiAgZmFGb250QXdlc29tZUxvZ29GdWxsLFxuICBmYUNsb3VkQXJyb3dVcCxcbiAgZmFDbG91ZFVwbG9hZCxcbiAgZmFDbG91ZFVwbG9hZEFsdCxcbiAgZmFQYWxldHRlLFxuICBmYUFycm93c1R1cm5SaWdodCxcbiAgZmFWZXN0LFxuICBmYUZlcnJ5LFxuICBmYUFycm93c0Rvd25Ub1Blb3BsZSxcbiAgZmFTZWVkbGluZyxcbiAgZmFTcHJvdXQsXG4gIGZhTGVmdFJpZ2h0LFxuICBmYUFycm93c0FsdEgsXG4gIGZhQm94ZXNQYWNraW5nLFxuICBmYUNpcmNsZUFycm93TGVmdCxcbiAgZmFBcnJvd0NpcmNsZUxlZnQsXG4gIGZhR3JvdXBBcnJvd3NSb3RhdGUsXG4gIGZhQm93bEZvb2QsXG4gIGZhQ2FuZHlDYW5lLFxuICBmYUFycm93RG93bldpZGVTaG9ydCxcbiAgZmFTb3J0QW1vdW50QXNjLFxuICBmYVNvcnRBbW91bnREb3duLFxuICBmYUNsb3VkQm9sdCxcbiAgZmFUaHVuZGVyc3Rvcm0sXG4gIGZhVGV4dFNsYXNoLFxuICBmYVJlbW92ZUZvcm1hdCxcbiAgZmFGYWNlU21pbGVXaW5rLFxuICBmYVNtaWxlV2luayxcbiAgZmFGaWxlV29yZCxcbiAgZmFGaWxlUG93ZXJwb2ludCxcbiAgZmFBcnJvd3NMZWZ0UmlnaHQsXG4gIGZhQXJyb3dzSCxcbiAgZmFIb3VzZUxvY2ssXG4gIGZhQ2xvdWRBcnJvd0Rvd24sXG4gIGZhQ2xvdWREb3dubG9hZCxcbiAgZmFDbG91ZERvd25sb2FkQWx0LFxuICBmYUNoaWxkcmVuLFxuICBmYUNoYWxrYm9hcmQsXG4gIGZhQmxhY2tib2FyZCxcbiAgZmFVc2VyTGFyZ2VTbGFzaCxcbiAgZmFVc2VyQWx0U2xhc2gsXG4gIGZhRW52ZWxvcGVPcGVuLFxuICBmYUhhbmRzaGFrZVNpbXBsZVNsYXNoLFxuICBmYUhhbmRzaGFrZUFsdFNsYXNoLFxuICBmYU1hdHRyZXNzUGlsbG93LFxuICBmYUd1YXJhbmlTaWduLFxuICBmYUFycm93c1JvdGF0ZSxcbiAgZmFSZWZyZXNoLFxuICBmYVN5bmMsXG4gIGZhRmlyZUV4dGluZ3Vpc2hlcixcbiAgZmFDcnV6ZWlyb1NpZ24sXG4gIGZhR3JlYXRlclRoYW5FcXVhbCxcbiAgZmFTaGllbGRIYWx2ZWQsXG4gIGZhU2hpZWxkQWx0LFxuICBmYUJvb2tBdGxhcyxcbiAgZmFBdGxhcyxcbiAgZmFWaXJ1cyxcbiAgZmFFbnZlbG9wZUNpcmNsZUNoZWNrLFxuICBmYUxheWVyR3JvdXAsXG4gIGZhQXJyb3dzVG9Eb3QsXG4gIGZhQXJjaHdheSxcbiAgZmFIZWFydENpcmNsZUNoZWNrLFxuICBmYUhvdXNlQ2hpbW5leUNyYWNrLFxuICBmYUhvdXNlRGFtYWdlLFxuICBmYUZpbGVaaXBwZXIsXG4gIGZhRmlsZUFyY2hpdmUsXG4gIGZhU3F1YXJlLFxuICBmYU1hcnRpbmlHbGFzc0VtcHR5LFxuICBmYUdsYXNzTWFydGluaSxcbiAgZmFDb3VjaCxcbiAgZmFDZWRpU2lnbixcbiAgZmFJdGFsaWMsXG4gIGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssXG4gIGZhQ2h1cmNoLFxuICBmYUNvbW1lbnRzRG9sbGFyLFxuICBmYURlbW9jcmF0LFxuICBmYVosXG4gIGZhUGVyc29uU2tpaW5nLFxuICBmYVNraWluZyxcbiAgZmFSb2FkTG9jayxcbiAgZmFBLFxuICBmYVRlbXBlcmF0dXJlQXJyb3dEb3duLFxuICBmYVRlbXBlcmF0dXJlRG93bixcbiAgZmFGZWF0aGVyUG9pbnRlZCxcbiAgZmFGZWF0aGVyQWx0LFxuICBmYVAsXG4gIGZhU25vd2ZsYWtlLFxuICBmYU5ld3NwYXBlcixcbiAgZmFSZWN0YW5nbGVBZCxcbiAgZmFBZCxcbiAgZmFDaXJjbGVBcnJvd1JpZ2h0LFxuICBmYUFycm93Q2lyY2xlUmlnaHQsXG4gIGZhRmlsdGVyQ2lyY2xlWG1hcmssXG4gIGZhTG9jdXN0LFxuICBmYVNvcnQsXG4gIGZhVW5zb3J0ZWQsXG4gIGZhTGlzdE9sLFxuICBmYUxpc3QxMixcbiAgZmFMaXN0TnVtZXJpYyxcbiAgZmFQZXJzb25EcmVzc0J1cnN0LFxuICBmYU1vbmV5Q2hlY2tEb2xsYXIsXG4gIGZhTW9uZXlDaGVja0FsdCxcbiAgZmFWZWN0b3JTcXVhcmUsXG4gIGZhQnJlYWRTbGljZSxcbiAgZmFMYW5ndWFnZSxcbiAgZmFGYWNlS2lzc1dpbmtIZWFydCxcbiAgZmFLaXNzV2lua0hlYXJ0LFxuICBmYUZpbHRlcixcbiAgZmFRdWVzdGlvbixcbiAgZmFGaWxlU2lnbmF0dXJlLFxuICBmYVVwRG93bkxlZnRSaWdodCxcbiAgZmFBcnJvd3NBbHQsXG4gIGZhSG91c2VDaGltbmV5VXNlcixcbiAgZmFIYW5kSG9sZGluZ0hlYXJ0LFxuICBmYVB1enpsZVBpZWNlLFxuICBmYU1vbmV5Q2hlY2ssXG4gIGZhU3RhckhhbGZTdHJva2UsXG4gIGZhU3RhckhhbGZBbHQsXG4gIGZhQ29kZSxcbiAgZmFXaGlza2V5R2xhc3MsXG4gIGZhR2xhc3NXaGlza2V5LFxuICBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQsXG4gIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZSxcbiAgZmFFeHRlcm5hbExpbmssXG4gIGZhQ3ViZXNTdGFja2VkLFxuICBmYVdvblNpZ24sXG4gIGZhS3J3LFxuICBmYVdvbixcbiAgZmFWaXJ1c0NvdmlkLFxuICBmYUF1c3RyYWxTaWduLFxuICBmYUYsXG4gIGZhTGVhZixcbiAgZmFSb2FkLFxuICBmYVRheGksXG4gIGZhQ2FiLFxuICBmYVBlcnNvbkNpcmNsZVBsdXMsXG4gIGZhQ2hhcnRQaWUsXG4gIGZhUGllQ2hhcnQsXG4gIGZhQm9sdExpZ2h0bmluZyxcbiAgZmFTYWNrWG1hcmssXG4gIGZhRmlsZUV4Y2VsLFxuICBmYUZpbGVDb250cmFjdCxcbiAgZmFGaXNoRmlucyxcbiAgZmFCdWlsZGluZ0ZsYWcsXG4gIGZhRmFjZUdyaW5CZWFtLFxuICBmYUdyaW5CZWFtLFxuICBmYU9iamVjdFVuZ3JvdXAsXG4gIGZhUG9vcCxcbiAgZmFMb2NhdGlvblBpbixcbiAgZmFNYXBNYXJrZXIsXG4gIGZhS2FhYmEsXG4gIGZhVG9pbGV0UGFwZXIsXG4gIGZhSGVsbWV0U2FmZXR5LFxuICBmYUhhcmRIYXQsXG4gIGZhSGF0SGFyZCxcbiAgZmFFamVjdCxcbiAgZmFDaXJjbGVSaWdodCxcbiAgZmFBcnJvd0FsdENpcmNsZVJpZ2h0LFxuICBmYVBsYW5lQ2lyY2xlQ2hlY2ssXG4gIGZhRmFjZVJvbGxpbmdFeWVzLFxuICBmYU1laFJvbGxpbmdFeWVzLFxuICBmYU9iamVjdEdyb3VwLFxuICBmYUNoYXJ0TGluZSxcbiAgZmFMaW5lQ2hhcnQsXG4gIGZhTWFza1ZlbnRpbGF0b3IsXG4gIGZhQXJyb3dSaWdodCxcbiAgZmFTaWduc1Bvc3QsXG4gIGZhTWFwU2lnbnMsXG4gIGZhQ2FzaFJlZ2lzdGVyLFxuICBmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uLFxuICBmYUgsXG4gIGZhVGFycCxcbiAgZmFTY3Jld2RyaXZlcldyZW5jaCxcbiAgZmFUb29scyxcbiAgZmFBcnJvd3NUb0V5ZSxcbiAgZmFQbHVnQ2lyY2xlQm9sdCxcbiAgZmFIZWFydCxcbiAgZmFNYXJzQW5kVmVudXMsXG4gIGZhSG91c2VVc2VyLFxuICBmYUhvbWVVc2VyLFxuICBmYUR1bXBzdGVyRmlyZSxcbiAgZmFIb3VzZUNyYWNrLFxuICBmYU1hcnRpbmlHbGFzc0NpdHJ1cyxcbiAgZmFDb2NrdGFpbCxcbiAgZmFGYWNlU3VycHJpc2UsXG4gIGZhU3VycHJpc2UsXG4gIGZhQm90dGxlV2F0ZXIsXG4gIGZhQ2lyY2xlUGF1c2UsXG4gIGZhUGF1c2VDaXJjbGUsXG4gIGZhVG9pbGV0UGFwZXJTbGFzaCxcbiAgZmFBcHBsZVdob2xlLFxuICBmYUFwcGxlQWx0LFxuICBmYUtpdGNoZW5TZXQsXG4gIGZhUixcbiAgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsXG4gIGZhVGVtcGVyYXR1cmUxLFxuICBmYVRoZXJtb21ldGVyMSxcbiAgZmFUaGVybW9tZXRlclF1YXJ0ZXIsXG4gIGZhQ3ViZSxcbiAgZmFCaXRjb2luU2lnbixcbiAgZmFTaGllbGREb2csXG4gIGZhU29sYXJQYW5lbCxcbiAgZmFMb2NrT3BlbixcbiAgZmFFbGV2YXRvcixcbiAgZmFNb25leUJpbGxUcmFuc2ZlcixcbiAgZmFNb25leUJpbGxUcmVuZFVwLFxuICBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsXG4gIGZhU3F1YXJlUG9sbEhvcml6b250YWwsXG4gIGZhUG9sbEgsXG4gIGZhQ2lyY2xlLFxuICBmYUJhY2t3YXJkRmFzdCxcbiAgZmFGYXN0QmFja3dhcmQsXG4gIGZhUmVjeWNsZSxcbiAgZmFVc2VyQXN0cm9uYXV0LFxuICBmYVBsYW5lU2xhc2gsXG4gIGZhVHJhZGVtYXJrLFxuICBmYUJhc2tldGJhbGwsXG4gIGZhQmFza2V0YmFsbEJhbGwsXG4gIGZhU2F0ZWxsaXRlRGlzaCxcbiAgZmFDaXJjbGVVcCxcbiAgZmFBcnJvd0FsdENpcmNsZVVwLFxuICBmYU1vYmlsZVNjcmVlbkJ1dHRvbixcbiAgZmFNb2JpbGVBbHQsXG4gIGZhVm9sdW1lSGlnaCxcbiAgZmFWb2x1bWVVcCxcbiAgZmFVc2Vyc1JheXMsXG4gIGZhV2FsbGV0LFxuICBmYUNsaXBib2FyZENoZWNrLFxuICBmYUZpbGVBdWRpbyxcbiAgZmFCdXJnZXIsXG4gIGZhSGFtYnVyZ2VyLFxuICBmYVdyZW5jaCxcbiAgZmFCdWdzLFxuICBmYVJ1cGVlU2lnbixcbiAgZmFSdXBlZSxcbiAgZmFGaWxlSW1hZ2UsXG4gIGZhQ2lyY2xlUXVlc3Rpb24sXG4gIGZhUXVlc3Rpb25DaXJjbGUsXG4gIGZhUGxhbmVEZXBhcnR1cmUsXG4gIGZhSGFuZHNoYWtlU2xhc2gsXG4gIGZhQm9va0Jvb2ttYXJrLFxuICBmYUNvZGVCcmFuY2gsXG4gIGZhSGF0Q293Ym95LFxuICBmYUJyaWRnZSxcbiAgZmFQaG9uZUZsaXAsXG4gIGZhUGhvbmVBbHQsXG4gIGZhVHJ1Y2tGcm9udCxcbiAgZmFDYXQsXG4gIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhVHJ1Y2tGaWVsZCxcbiAgZmFSb3V0ZSxcbiAgZmFDbGlwYm9hcmRRdWVzdGlvbixcbiAgZmFQYW5vcmFtYSxcbiAgZmFDb21tZW50TWVkaWNhbCxcbiAgZmFUZWV0aE9wZW4sXG4gIGZhRmlsZUNpcmNsZU1pbnVzLFxuICBmYVRhZ3MsXG4gIGZhV2luZUdsYXNzLFxuICBmYUZvcndhcmRGYXN0LFxuICBmYUZhc3RGb3J3YXJkLFxuICBmYUZhY2VNZWhCbGFuayxcbiAgZmFNZWhCbGFuayxcbiAgZmFTcXVhcmVQYXJraW5nLFxuICBmYVBhcmtpbmcsXG4gIGZhSG91c2VTaWduYWwsXG4gIGZhQmFyc1Byb2dyZXNzLFxuICBmYVRhc2tzQWx0LFxuICBmYUZhdWNldERyaXAsXG4gIGZhQ2FydEZsYXRiZWQsXG4gIGZhRG9sbHlGbGF0YmVkLFxuICBmYUJhblNtb2tpbmcsXG4gIGZhU21va2luZ0JhbixcbiAgZmFUZXJtaW5hbCxcbiAgZmFNb2JpbGVCdXR0b24sXG4gIGZhSG91c2VNZWRpY2FsRmxhZyxcbiAgZmFCYXNrZXRTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0Jhc2tldCxcbiAgZmFUYXBlLFxuICBmYUJ1c1NpbXBsZSxcbiAgZmFCdXNBbHQsXG4gIGZhRXllLFxuICBmYUZhY2VTYWRDcnksXG4gIGZhU2FkQ3J5LFxuICBmYUF1ZGlvRGVzY3JpcHRpb24sXG4gIGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbixcbiAgZmFGaWxlU2hpZWxkLFxuICBmYVVzZXJTbGFzaCxcbiAgZmFQZW4sXG4gIGZhVG93ZXJPYnNlcnZhdGlvbixcbiAgZmFGaWxlQ29kZSxcbiAgZmFTaWduYWwsXG4gIGZhU2lnbmFsNSxcbiAgZmFTaWduYWxQZXJmZWN0LFxuICBmYUJ1cyxcbiAgZmFIZWFydENpcmNsZVhtYXJrLFxuICBmYUhvdXNlQ2hpbW5leSxcbiAgZmFIb21lTGcsXG4gIGZhV2luZG93TWF4aW1pemUsXG4gIGZhRmFjZUZyb3duLFxuICBmYUZyb3duLFxuICBmYVByZXNjcmlwdGlvbixcbiAgZmFTaG9wLFxuICBmYVN0b3JlQWx0LFxuICBmYUZsb3BweURpc2ssXG4gIGZhU2F2ZSxcbiAgZmFWaWhhcmEsXG4gIGZhU2NhbGVVbmJhbGFuY2VkLFxuICBmYUJhbGFuY2VTY2FsZUxlZnQsXG4gIGZhU29ydFVwLFxuICBmYVNvcnRBc2MsXG4gIGZhQ29tbWVudERvdHMsXG4gIGZhQ29tbWVudGluZyxcbiAgZmFQbGFudFdpbHQsXG4gIGZhRGlhbW9uZCxcbiAgZmFGYWNlR3JpblNxdWludCxcbiAgZmFHcmluU3F1aW50LFxuICBmYUhhbmRIb2xkaW5nRG9sbGFyLFxuICBmYUhhbmRIb2xkaW5nVXNkLFxuICBmYUJhY3Rlcml1bSxcbiAgZmFIYW5kUG9pbnRlcixcbiAgZmFEcnVtU3RlZWxwYW4sXG4gIGZhSGFuZFNjaXNzb3JzLFxuICBmYUhhbmRzUHJheWluZyxcbiAgZmFQcmF5aW5nSGFuZHMsXG4gIGZhQXJyb3dSb3RhdGVSaWdodCxcbiAgZmFBcnJvd1JpZ2h0Um90YXRlLFxuICBmYUFycm93Um90YXRlRm9yd2FyZCxcbiAgZmFSZWRvLFxuICBmYVdlYkF3ZXNvbWUsXG4gIGZhQmlvaGF6YXJkLFxuICBmYUxvY2F0aW9uQ3Jvc3NoYWlycyxcbiAgZmFMb2NhdGlvbixcbiAgZmFNYXJzRG91YmxlLFxuICBmYUNoaWxkRHJlc3MsXG4gIGZhVXNlcnNCZXR3ZWVuTGluZXMsXG4gIGZhTHVuZ3NWaXJ1cyxcbiAgZmFGYWNlR3JpblRlYXJzLFxuICBmYUdyaW5UZWFycyxcbiAgZmFQaG9uZSxcbiAgZmFDYWxlbmRhclhtYXJrLFxuICBmYUNhbGVuZGFyVGltZXMsXG4gIGZhQ2hpbGRSZWFjaGluZyxcbiAgZmFIZWFkU2lkZVZpcnVzLFxuICBmYVVzZXJHZWFyLFxuICBmYVVzZXJDb2csXG4gIGZhQXJyb3dVcDE5LFxuICBmYVNvcnROdW1lcmljVXAsXG4gIGZhRG9vckNsb3NlZCxcbiAgZmFTaGllbGRWaXJ1cyxcbiAgZmFEaWNlU2l4LFxuICBmYU1vc3F1aXRvTmV0LFxuICBmYUJyaWRnZVdhdGVyLFxuICBmYVBlcnNvbkJvb3RoLFxuICBmYVRleHRXaWR0aCxcbiAgZmFIYXRXaXphcmQsXG4gIGZhUGVuRmFuY3ksXG4gIGZhUGVyc29uRGlnZ2luZyxcbiAgZmFEaWdnaW5nLFxuICBmYVRyYXNoLFxuICBmYUdhdWdlU2ltcGxlLFxuICBmYUdhdWdlU2ltcGxlTWVkLFxuICBmYVRhY2hvbWV0ZXJBdmVyYWdlLFxuICBmYUJvb2tNZWRpY2FsLFxuICBmYVBvbyxcbiAgZmFRdW90ZVJpZ2h0LFxuICBmYVF1b3RlUmlnaHRBbHQsXG4gIGZhU2hpcnQsXG4gIGZhVFNoaXJ0LFxuICBmYVRzaGlydCxcbiAgZmFDdWJlcyxcbiAgZmFEaXZpZGUsXG4gIGZhVGVuZ2VTaWduLFxuICBmYVRlbmdlLFxuICBmYUhlYWRwaG9uZXMsXG4gIGZhSGFuZHNIb2xkaW5nLFxuICBmYUhhbmRzQ2xhcHBpbmcsXG4gIGZhUmVwdWJsaWNhbixcbiAgZmFBcnJvd0xlZnQsXG4gIGZhUGVyc29uQ2lyY2xlWG1hcmssXG4gIGZhUnVsZXIsXG4gIGZhQWxpZ25MZWZ0LFxuICBmYURpY2VENixcbiAgZmFSZXN0cm9vbSxcbiAgZmFKLFxuICBmYVVzZXJzVmlld2ZpbmRlcixcbiAgZmFGaWxlVmlkZW8sXG4gIGZhVXBSaWdodEZyb21TcXVhcmUsXG4gIGZhRXh0ZXJuYWxMaW5rQWx0LFxuICBmYVRhYmxlQ2VsbHMsXG4gIGZhVGgsXG4gIGZhRmlsZVBkZixcbiAgZmFCb29rQmlibGUsXG4gIGZhQmlibGUsXG4gIGZhTyxcbiAgZmFTdWl0Y2FzZU1lZGljYWwsXG4gIGZhTWVka2l0LFxuICBmYVVzZXJTZWNyZXQsXG4gIGZhT3R0ZXIsXG4gIGZhUGVyc29uRHJlc3MsXG4gIGZhRmVtYWxlLFxuICBmYUNvbW1lbnREb2xsYXIsXG4gIGZhQnVzaW5lc3NUaW1lLFxuICBmYUJyaWVmY2FzZUNsb2NrLFxuICBmYVRhYmxlQ2VsbHNMYXJnZSxcbiAgZmFUaExhcmdlLFxuICBmYUJvb2tUYW5ha2gsXG4gIGZhVGFuYWtoLFxuICBmYVBob25lVm9sdW1lLFxuICBmYVZvbHVtZUNvbnRyb2xQaG9uZSxcbiAgZmFIYXRDb3dib3lTaWRlLFxuICBmYUNsaXBib2FyZFVzZXIsXG4gIGZhQ2hpbGQsXG4gIGZhTGlyYVNpZ24sXG4gIGZhU2F0ZWxsaXRlLFxuICBmYVBsYW5lTG9jayxcbiAgZmFUYWcsXG4gIGZhQ29tbWVudCxcbiAgZmFDYWtlQ2FuZGxlcyxcbiAgZmFCaXJ0aGRheUNha2UsXG4gIGZhQ2FrZSxcbiAgZmFFbnZlbG9wZSxcbiAgZmFBbmdsZXNVcCxcbiAgZmFBbmdsZURvdWJsZVVwLFxuICBmYVBhcGVyY2xpcCxcbiAgZmFBcnJvd1JpZ2h0VG9DaXR5LFxuICBmYVJpYmJvbixcbiAgZmFMdW5ncyxcbiAgZmFBcnJvd1VwOTEsXG4gIGZhU29ydE51bWVyaWNVcEFsdCxcbiAgZmFMaXRlY29pblNpZ24sXG4gIGZhQm9yZGVyTm9uZSxcbiAgZmFDaXJjbGVOb2RlcyxcbiAgZmFQYXJhY2h1dGVCb3gsXG4gIGZhSW5kZW50LFxuICBmYVRydWNrRmllbGRVbixcbiAgZmFIb3VyZ2xhc3MsXG4gIGZhSG91cmdsYXNzRW1wdHksXG4gIGZhTW91bnRhaW4sXG4gIGZhVXNlckRvY3RvcixcbiAgZmFVc2VyTWQsXG4gIGZhQ2lyY2xlSW5mbyxcbiAgZmFJbmZvQ2lyY2xlLFxuICBmYUNsb3VkTWVhdGJhbGwsXG4gIGZhQ2FtZXJhLFxuICBmYUNhbWVyYUFsdCxcbiAgZmFTcXVhcmVWaXJ1cyxcbiAgZmFNZXRlb3IsXG4gIGZhQ2FyT24sXG4gIGZhU2xlaWdoLFxuICBmYUFycm93RG93bjE5LFxuICBmYVNvcnROdW1lcmljQXNjLFxuICBmYVNvcnROdW1lcmljRG93bixcbiAgZmFIYW5kSG9sZGluZ0Ryb3BsZXQsXG4gIGZhSGFuZEhvbGRpbmdXYXRlcixcbiAgZmFXYXRlcixcbiAgZmFDYWxlbmRhckNoZWNrLFxuICBmYUJyYWlsbGUsXG4gIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCxcbiAgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsXG4gIGZhTGFuZG1hcmssXG4gIGZhVHJ1Y2ssXG4gIGZhQ3Jvc3NoYWlycyxcbiAgZmFQZXJzb25DYW5lLFxuICBmYVRlbnQsXG4gIGZhVmVzdFBhdGNoZXMsXG4gIGZhQ2hlY2tEb3VibGUsXG4gIGZhQXJyb3dEb3duQVosXG4gIGZhU29ydEFscGhhQXNjLFxuICBmYVNvcnRBbHBoYURvd24sXG4gIGZhTW9uZXlCaWxsV2hlYXQsXG4gIGZhQ29va2llLFxuICBmYUFycm93Um90YXRlTGVmdCxcbiAgZmFBcnJvd0xlZnRSb3RhdGUsXG4gIGZhQXJyb3dSb3RhdGVCYWNrLFxuICBmYUFycm93Um90YXRlQmFja3dhcmQsXG4gIGZhVW5kbyxcbiAgZmFIYXJkRHJpdmUsXG4gIGZhSGRkLFxuICBmYUZhY2VHcmluU3F1aW50VGVhcnMsXG4gIGZhR3JpblNxdWludFRlYXJzLFxuICBmYUR1bWJiZWxsLFxuICBmYVJlY3RhbmdsZUxpc3QsXG4gIGZhTGlzdEFsdCxcbiAgZmFUYXJwRHJvcGxldCxcbiAgZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjayxcbiAgZmFQZXJzb25Ta2lpbmdOb3JkaWMsXG4gIGZhU2tpaW5nTm9yZGljLFxuICBmYUNhbGVuZGFyUGx1cyxcbiAgZmFQbGFuZUFycml2YWwsXG4gIGZhQ2lyY2xlTGVmdCxcbiAgZmFBcnJvd0FsdENpcmNsZUxlZnQsXG4gIGZhVHJhaW5TdWJ3YXksXG4gIGZhU3Vid2F5LFxuICBmYUNoYXJ0R2FudHQsXG4gIGZhSW5kaWFuUnVwZWVTaWduLFxuICBmYUluZGlhblJ1cGVlLFxuICBmYUlucixcbiAgZmFDcm9wU2ltcGxlLFxuICBmYUNyb3BBbHQsXG4gIGZhTW9uZXlCaWxsMSxcbiAgZmFNb25leUJpbGxBbHQsXG4gIGZhTGVmdExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0TGVmdCxcbiAgZmFEbmEsXG4gIGZhVmlydXNTbGFzaCxcbiAgZmFNaW51cyxcbiAgZmFTdWJ0cmFjdCxcbiAgZmFDaGVzcyxcbiAgZmFBcnJvd0xlZnRMb25nLFxuICBmYUxvbmdBcnJvd0xlZnQsXG4gIGZhUGx1Z0NpcmNsZUNoZWNrLFxuICBmYVN0cmVldFZpZXcsXG4gIGZhRnJhbmNTaWduLFxuICBmYVZvbHVtZU9mZixcbiAgZmFIYW5kc0FzbEludGVycHJldGluZyxcbiAgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyxcbiAgZmFBc2xJbnRlcnByZXRpbmcsXG4gIGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyxcbiAgZmFHZWFyLFxuICBmYUNvZyxcbiAgZmFEcm9wbGV0U2xhc2gsXG4gIGZhVGludFNsYXNoLFxuICBmYU1vc3F1ZSxcbiAgZmFNb3NxdWl0byxcbiAgZmFTdGFyT2ZEYXZpZCxcbiAgZmFQZXJzb25NaWxpdGFyeVJpZmxlLFxuICBmYUNhcnRTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0NhcnQsXG4gIGZhVmlhbHMsXG4gIGZhUGx1Z0NpcmNsZVBsdXMsXG4gIGZhUGxhY2VPZldvcnNoaXAsXG4gIGZhR3JpcFZlcnRpY2FsLFxuICBmYUFycm93VHVyblVwLFxuICBmYUxldmVsVXAsXG4gIGZhVSxcbiAgZmFTcXVhcmVSb290VmFyaWFibGUsXG4gIGZhU3F1YXJlUm9vdEFsdCxcbiAgZmFDbG9jayxcbiAgZmFDbG9ja0ZvdXIsXG4gIGZhQmFja3dhcmRTdGVwLFxuICBmYVN0ZXBCYWNrd2FyZCxcbiAgZmFQYWxsZXQsXG4gIGZhRmF1Y2V0LFxuICBmYUJhc2ViYWxsQmF0QmFsbCxcbiAgZmFTLFxuICBmYVRpbWVsaW5lLFxuICBmYUtleWJvYXJkLFxuICBmYUNhcmV0RG93bixcbiAgZmFIb3VzZUNoaW1uZXlNZWRpY2FsLFxuICBmYUNsaW5pY01lZGljYWwsXG4gIGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzLFxuICBmYVRlbXBlcmF0dXJlMyxcbiAgZmFUaGVybW9tZXRlcjMsXG4gIGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzLFxuICBmYU1vYmlsZVNjcmVlbixcbiAgZmFNb2JpbGVBbmRyb2lkQWx0LFxuICBmYVBsYW5lVXAsXG4gIGZhUGlnZ3lCYW5rLFxuICBmYUJhdHRlcnlIYWxmLFxuICBmYUJhdHRlcnkzLFxuICBmYU1vdW50YWluQ2l0eSxcbiAgZmFDb2lucyxcbiAgZmFLaGFuZGEsXG4gIGZhU2xpZGVycyxcbiAgZmFTbGlkZXJzSCxcbiAgZmFGb2xkZXJUcmVlLFxuICBmYU5ldHdvcmtXaXJlZCxcbiAgZmFNYXBQaW4sXG4gIGZhSGFtc2EsXG4gIGZhQ2VudFNpZ24sXG4gIGZhRmxhc2ssXG4gIGZhUGVyc29uUHJlZ25hbnQsXG4gIGZhV2FuZFNwYXJrbGVzLFxuICBmYUVsbGlwc2lzVmVydGljYWwsXG4gIGZhRWxsaXBzaXNWLFxuICBmYVRpY2tldCxcbiAgZmFQb3dlck9mZixcbiAgZmFSaWdodExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0UmlnaHQsXG4gIGZhRmxhZ1VzYSxcbiAgZmFMYXB0b3BGaWxlLFxuICBmYVR0eSxcbiAgZmFUZWxldHlwZSxcbiAgZmFEaWFncmFtTmV4dCxcbiAgZmFQZXJzb25SaWZsZSxcbiAgZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDbG9zZWRDYXB0aW9uaW5nLFxuICBmYVBlcnNvbkhpa2luZyxcbiAgZmFIaWtpbmcsXG4gIGZhVmVudXNEb3VibGUsXG4gIGZhSW1hZ2VzLFxuICBmYUNhbGN1bGF0b3IsXG4gIGZhUGVvcGxlUHVsbGluZyxcbiAgZmFOLFxuICBmYUNhYmxlQ2FyLFxuICBmYVRyYW0sXG4gIGZhQ2xvdWRSYWluLFxuICBmYUJ1aWxkaW5nQ2lyY2xlWG1hcmssXG4gIGZhU2hpcCxcbiAgZmFBcnJvd3NEb3duVG9MaW5lLFxuICBmYURvd25sb2FkLFxuICBmYUZhY2VHcmluLFxuICBmYUdyaW4sXG4gIGZhRGVsZXRlTGVmdCxcbiAgZmFCYWNrc3BhY2UsXG4gIGZhRXllRHJvcHBlcixcbiAgZmFFeWVEcm9wcGVyRW1wdHksXG4gIGZhRXllZHJvcHBlcixcbiAgZmFGaWxlQ2lyY2xlQ2hlY2ssXG4gIGZhRm9yd2FyZCxcbiAgZmFNb2JpbGUsXG4gIGZhTW9iaWxlQW5kcm9pZCxcbiAgZmFNb2JpbGVQaG9uZSxcbiAgZmFGYWNlTWVoLFxuICBmYU1laCxcbiAgZmFBbGlnbkNlbnRlcixcbiAgZmFCb29rU2t1bGwsXG4gIGZhQm9va0RlYWQsXG4gIGZhSWRDYXJkLFxuICBmYURyaXZlcnNMaWNlbnNlLFxuICBmYU91dGRlbnQsXG4gIGZhRGVkZW50LFxuICBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhSG91c2UsXG4gIGZhSG9tZSxcbiAgZmFIb21lQWx0LFxuICBmYUhvbWVMZ0FsdCxcbiAgZmFDYWxlbmRhcldlZWssXG4gIGZhTGFwdG9wTWVkaWNhbCxcbiAgZmFCLFxuICBmYUZpbGVNZWRpY2FsLFxuICBmYURpY2VPbmUsXG4gIGZhS2l3aUJpcmQsXG4gIGZhQXJyb3dSaWdodEFycm93TGVmdCxcbiAgZmFFeGNoYW5nZSxcbiAgZmFSb3RhdGVSaWdodCxcbiAgZmFSZWRvQWx0LFxuICBmYVJvdGF0ZUZvcndhcmQsXG4gIGZhVXRlbnNpbHMsXG4gIGZhQ3V0bGVyeSxcbiAgZmFBcnJvd1VwV2lkZVNob3J0LFxuICBmYVNvcnRBbW91bnRVcCxcbiAgZmFNaWxsU2lnbixcbiAgZmFCb3dsUmljZSxcbiAgZmFTa3VsbCxcbiAgZmFUb3dlckJyb2FkY2FzdCxcbiAgZmFCcm9hZGNhc3RUb3dlcixcbiAgZmFUcnVja1BpY2t1cCxcbiAgZmFVcExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0VXAsXG4gIGZhU3RvcCxcbiAgZmFDb2RlTWVyZ2UsXG4gIGZhVXBsb2FkLFxuICBmYUh1cnJpY2FuZSxcbiAgZmFNb3VuZCxcbiAgZmFUb2lsZXRQb3J0YWJsZSxcbiAgZmFDb21wYWN0RGlzYyxcbiAgZmFGaWxlQXJyb3dEb3duLFxuICBmYUZpbGVEb3dubG9hZCxcbiAgZmFDYXJhdmFuLFxuICBmYVNoaWVsZENhdCxcbiAgZmFCb2x0LFxuICBmYVphcCxcbiAgZmFHbGFzc1dhdGVyLFxuICBmYU9pbFdlbGwsXG4gIGZhVmF1bHQsXG4gIGZhTWFycyxcbiAgZmFUb2lsZXQsXG4gIGZhUGxhbmVDaXJjbGVYbWFyayxcbiAgZmFZZW5TaWduLFxuICBmYUNueSxcbiAgZmFKcHksXG4gIGZhUm1iLFxuICBmYVllbixcbiAgZmFSdWJsZVNpZ24sXG4gIGZhUm91YmxlLFxuICBmYVJ1YixcbiAgZmFSdWJsZSxcbiAgZmFTdW4sXG4gIGZhR3VpdGFyLFxuICBmYUZhY2VMYXVnaFdpbmssXG4gIGZhTGF1Z2hXaW5rLFxuICBmYUhvcnNlSGVhZCxcbiAgZmFCb3JlSG9sZSxcbiAgZmFJbmR1c3RyeSxcbiAgZmFDaXJjbGVEb3duLFxuICBmYUFycm93QWx0Q2lyY2xlRG93bixcbiAgZmFBcnJvd3NUdXJuVG9Eb3RzLFxuICBmYUZsb3JpblNpZ24sXG4gIGZhQXJyb3dEb3duU2hvcnRXaWRlLFxuICBmYVNvcnRBbW91bnREZXNjLFxuICBmYVNvcnRBbW91bnREb3duQWx0LFxuICBmYUxlc3NUaGFuLFxuICBmYUFuZ2xlRG93bixcbiAgZmFDYXJUdW5uZWwsXG4gIGZhSGVhZFNpZGVDb3VnaCxcbiAgZmFHcmlwTGluZXMsXG4gIGZhVGh1bWJzRG93bixcbiAgZmFVc2VyTG9jayxcbiAgZmFBcnJvd1JpZ2h0TG9uZyxcbiAgZmFMb25nQXJyb3dSaWdodCxcbiAgZmFBbmNob3JDaXJjbGVYbWFyayxcbiAgZmFFbGxpcHNpcyxcbiAgZmFFbGxpcHNpc0gsXG4gIGZhQ2hlc3NQYXduLFxuICBmYUtpdE1lZGljYWwsXG4gIGZhRmlyc3RBaWQsXG4gIGZhUGVyc29uVGhyb3VnaFdpbmRvdyxcbiAgZmFUb29sYm94LFxuICBmYUhhbmRzSG9sZGluZ0NpcmNsZSxcbiAgZmFCdWcsXG4gIGZhQ3JlZGl0Q2FyZCxcbiAgZmFDcmVkaXRDYXJkQWx0LFxuICBmYUNhcixcbiAgZmFBdXRvbW9iaWxlLFxuICBmYUhhbmRIb2xkaW5nSGFuZCxcbiAgZmFCb29rT3BlblJlYWRlcixcbiAgZmFCb29rUmVhZGVyLFxuICBmYU1vdW50YWluU3VuLFxuICBmYUFycm93c0xlZnRSaWdodFRvTGluZSxcbiAgZmFEaWNlRDIwLFxuICBmYVRydWNrRHJvcGxldCxcbiAgZmFGaWxlQ2lyY2xlWG1hcmssXG4gIGZhVGVtcGVyYXR1cmVBcnJvd1VwLFxuICBmYVRlbXBlcmF0dXJlVXAsXG4gIGZhTWVkYWwsXG4gIGZhQmVkLFxuICBmYVNxdWFyZUgsXG4gIGZhSFNxdWFyZSxcbiAgZmFQb2RjYXN0LFxuICBmYVRlbXBlcmF0dXJlRnVsbCxcbiAgZmFUZW1wZXJhdHVyZTQsXG4gIGZhVGhlcm1vbWV0ZXI0LFxuICBmYVRoZXJtb21ldGVyRnVsbCxcbiAgZmFCZWxsLFxuICBmYVN1cGVyc2NyaXB0LFxuICBmYVBsdWdDaXJjbGVYbWFyayxcbiAgZmFTdGFyT2ZMaWZlLFxuICBmYVBob25lU2xhc2gsXG4gIGZhUGFpbnRSb2xsZXIsXG4gIGZhSGFuZHNoYWtlQW5nbGUsXG4gIGZhSGFuZHNIZWxwaW5nLFxuICBmYUxvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlckFsdCxcbiAgZmFGaWxlLFxuICBmYUdyZWF0ZXJUaGFuLFxuICBmYVBlcnNvblN3aW1taW5nLFxuICBmYVN3aW1tZXIsXG4gIGZhQXJyb3dEb3duLFxuICBmYURyb3BsZXQsXG4gIGZhVGludCxcbiAgZmFFcmFzZXIsXG4gIGZhRWFydGhBbWVyaWNhcyxcbiAgZmFFYXJ0aCxcbiAgZmFFYXJ0aEFtZXJpY2EsXG4gIGZhR2xvYmVBbWVyaWNhcyxcbiAgZmFQZXJzb25CdXJzdCxcbiAgZmFEb3ZlLFxuICBmYUJhdHRlcnlFbXB0eSxcbiAgZmFCYXR0ZXJ5MCxcbiAgZmFTb2NrcyxcbiAgZmFJbmJveCxcbiAgZmFTZWN0aW9uLFxuICBmYUdhdWdlSGlnaCxcbiAgZmFUYWNob21ldGVyQWx0LFxuICBmYVRhY2hvbWV0ZXJBbHRGYXN0LFxuICBmYUVudmVsb3BlT3BlblRleHQsXG4gIGZhSG9zcGl0YWwsXG4gIGZhSG9zcGl0YWxBbHQsXG4gIGZhSG9zcGl0YWxXaWRlLFxuICBmYVdpbmVCb3R0bGUsXG4gIGZhQ2hlc3NSb29rLFxuICBmYUJhcnNTdGFnZ2VyZWQsXG4gIGZhUmVvcmRlcixcbiAgZmFTdHJlYW0sXG4gIGZhRGhhcm1hY2hha3JhLFxuICBmYUhvdGRvZyxcbiAgZmFQZXJzb25XYWxraW5nV2l0aENhbmUsXG4gIGZhQmxpbmQsXG4gIGZhRHJ1bSxcbiAgZmFJY2VDcmVhbSxcbiAgZmFIZWFydENpcmNsZUJvbHQsXG4gIGZhRmF4LFxuICBmYVBhcmFncmFwaCxcbiAgZmFDaGVja1RvU2xvdCxcbiAgZmFWb3RlWWVhLFxuICBmYVN0YXJIYWxmLFxuICBmYUJveGVzU3RhY2tlZCxcbiAgZmFCb3hlcyxcbiAgZmFCb3hlc0FsdCxcbiAgZmFMaW5rLFxuICBmYUNoYWluLFxuICBmYUVhckxpc3RlbixcbiAgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLFxuICBmYVRyZWVDaXR5LFxuICBmYVBsYXksXG4gIGZhRm9udCxcbiAgZmFUYWJsZUNlbGxzUm93TG9jayxcbiAgZmFSdXBpYWhTaWduLFxuICBmYU1hZ25pZnlpbmdHbGFzcyxcbiAgZmFTZWFyY2gsXG4gIGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsLFxuICBmYVBpbmdQb25nUGFkZGxlQmFsbCxcbiAgZmFUYWJsZVRlbm5pcyxcbiAgZmFQZXJzb25Eb3RzRnJvbUxpbmUsXG4gIGZhRGlhZ25vc2VzLFxuICBmYVRyYXNoQ2FuQXJyb3dVcCxcbiAgZmFUcmFzaFJlc3RvcmVBbHQsXG4gIGZhTmFpcmFTaWduLFxuICBmYUNhcnRBcnJvd0Rvd24sXG4gIGZhV2Fsa2llVGFsa2llLFxuICBmYUZpbGVQZW4sXG4gIGZhRmlsZUVkaXQsXG4gIGZhUmVjZWlwdCxcbiAgZmFTcXVhcmVQZW4sXG4gIGZhUGVuU3F1YXJlLFxuICBmYVBlbmNpbFNxdWFyZSxcbiAgZmFTdWl0Y2FzZVJvbGxpbmcsXG4gIGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhQ2hldnJvbkRvd24sXG4gIGZhQmF0dGVyeUZ1bGwsXG4gIGZhQmF0dGVyeSxcbiAgZmFCYXR0ZXJ5NSxcbiAgZmFTa3VsbENyb3NzYm9uZXMsXG4gIGZhQ29kZUNvbXBhcmUsXG4gIGZhTGlzdFVsLFxuICBmYUxpc3REb3RzLFxuICBmYVNjaG9vbExvY2ssXG4gIGZhVG93ZXJDZWxsLFxuICBmYURvd25Mb25nLFxuICBmYUxvbmdBcnJvd0FsdERvd24sXG4gIGZhUmFua2luZ1N0YXIsXG4gIGZhQ2hlc3NLaW5nLFxuICBmYVBlcnNvbkhhcmFzc2luZyxcbiAgZmFCcmF6aWxpYW5SZWFsU2lnbixcbiAgZmFMYW5kbWFya0RvbWUsXG4gIGZhTGFuZG1hcmtBbHQsXG4gIGZhQXJyb3dVcCxcbiAgZmFUdixcbiAgZmFUZWxldmlzaW9uLFxuICBmYVR2QWx0LFxuICBmYVNocmltcCxcbiAgZmFMaXN0Q2hlY2ssXG4gIGZhVGFza3MsXG4gIGZhSnVnRGV0ZXJnZW50LFxuICBmYUNpcmNsZVVzZXIsXG4gIGZhVXNlckNpcmNsZSxcbiAgZmFVc2VyU2hpZWxkLFxuICBmYVdpbmQsXG4gIGZhQ2FyQnVyc3QsXG4gIGZhQ2FyQ3Jhc2gsXG4gIGZhWSxcbiAgZmFQZXJzb25Tbm93Ym9hcmRpbmcsXG4gIGZhU25vd2JvYXJkaW5nLFxuICBmYVRydWNrRmFzdCxcbiAgZmFTaGlwcGluZ0Zhc3QsXG4gIGZhRmlzaCxcbiAgZmFVc2VyR3JhZHVhdGUsXG4gIGZhQ2lyY2xlSGFsZlN0cm9rZSxcbiAgZmFBZGp1c3QsXG4gIGZhQ2xhcHBlcmJvYXJkLFxuICBmYUNpcmNsZVJhZGlhdGlvbixcbiAgZmFSYWRpYXRpb25BbHQsXG4gIGZhQmFzZWJhbGwsXG4gIGZhQmFzZWJhbGxCYWxsLFxuICBmYUpldEZpZ2h0ZXJVcCxcbiAgZmFEaWFncmFtUHJvamVjdCxcbiAgZmFQcm9qZWN0RGlhZ3JhbSxcbiAgZmFDb3B5LFxuICBmYVZvbHVtZVhtYXJrLFxuICBmYVZvbHVtZU11dGUsXG4gIGZhVm9sdW1lVGltZXMsXG4gIGZhSGFuZFNwYXJrbGVzLFxuICBmYUdyaXAsXG4gIGZhR3JpcEhvcml6b250YWwsXG4gIGZhU2hhcmVGcm9tU3F1YXJlLFxuICBmYVNoYXJlU3F1YXJlLFxuICBmYUNoaWxkQ29tYmF0YW50LFxuICBmYUNoaWxkUmlmbGUsXG4gIGZhR3VuLFxuICBmYVNxdWFyZVBob25lLFxuICBmYVBob25lU3F1YXJlLFxuICBmYVBsdXMsXG4gIGZhQWRkLFxuICBmYUV4cGFuZCxcbiAgZmFDb21wdXRlcixcbiAgZmFYbWFyayxcbiAgZmFDbG9zZSxcbiAgZmFNdWx0aXBseSxcbiAgZmFSZW1vdmUsXG4gIGZhVGltZXMsXG4gIGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0LFxuICBmYUFycm93cyxcbiAgZmFDaGFsa2JvYXJkVXNlcixcbiAgZmFDaGFsa2JvYXJkVGVhY2hlcixcbiAgZmFQZXNvU2lnbixcbiAgZmFCdWlsZGluZ1NoaWVsZCxcbiAgZmFCYWJ5LFxuICBmYVVzZXJzTGluZSxcbiAgZmFRdW90ZUxlZnQsXG4gIGZhUXVvdGVMZWZ0QWx0LFxuICBmYVRyYWN0b3IsXG4gIGZhVHJhc2hBcnJvd1VwLFxuICBmYVRyYXNoUmVzdG9yZSxcbiAgZmFBcnJvd0Rvd25VcExvY2ssXG4gIGZhTGluZXNMZWFuaW5nLFxuICBmYVJ1bGVyQ29tYmluZWQsXG4gIGZhQ29weXJpZ2h0LFxuICBmYUVxdWFscyxcbiAgZmFCbGVuZGVyLFxuICBmYVRlZXRoLFxuICBmYVNoZWtlbFNpZ24sXG4gIGZhSWxzLFxuICBmYVNoZWtlbCxcbiAgZmFTaGVxZWwsXG4gIGZhU2hlcWVsU2lnbixcbiAgZmFNYXAsXG4gIGZhUm9ja2V0LFxuICBmYVBob3RvRmlsbSxcbiAgZmFQaG90b1ZpZGVvLFxuICBmYUZvbGRlck1pbnVzLFxuICBmYVN0b3JlLFxuICBmYUFycm93VHJlbmRVcCxcbiAgZmFQbHVnQ2lyY2xlTWludXMsXG4gIGZhU2lnbkhhbmdpbmcsXG4gIGZhU2lnbixcbiAgZmFCZXppZXJDdXJ2ZSxcbiAgZmFCZWxsU2xhc2gsXG4gIGZhVGFibGV0LFxuICBmYVRhYmxldEFuZHJvaWQsXG4gIGZhU2Nob29sRmxhZyxcbiAgZmFGaWxsLFxuICBmYUFuZ2xlVXAsXG4gIGZhRHJ1bXN0aWNrQml0ZSxcbiAgZmFIb2xseUJlcnJ5LFxuICBmYUNoZXZyb25MZWZ0LFxuICBmYUJhY3RlcmlhLFxuICBmYUhhbmRMaXphcmQsXG4gIGZhTm90ZGVmLFxuICBmYURpc2Vhc2UsXG4gIGZhQnJpZWZjYXNlTWVkaWNhbCxcbiAgZmFHZW5kZXJsZXNzLFxuICBmYUNoZXZyb25SaWdodCxcbiAgZmFSZXR3ZWV0LFxuICBmYUNhclJlYXIsXG4gIGZhQ2FyQWx0LFxuICBmYVB1bXBTb2FwLFxuICBmYVZpZGVvU2xhc2gsXG4gIGZhQmF0dGVyeVF1YXJ0ZXIsXG4gIGZhQmF0dGVyeTIsXG4gIGZhUmFkaW8sXG4gIGZhQmFieUNhcnJpYWdlLFxuICBmYUNhcnJpYWdlQmFieSxcbiAgZmFUcmFmZmljTGlnaHQsXG4gIGZhVGhlcm1vbWV0ZXIsXG4gIGZhVnJDYXJkYm9hcmQsXG4gIGZhSGFuZE1pZGRsZUZpbmdlcixcbiAgZmFQZXJjZW50LFxuICBmYVBlcmNlbnRhZ2UsXG4gIGZhVHJ1Y2tNb3ZpbmcsXG4gIGZhR2xhc3NXYXRlckRyb3BsZXQsXG4gIGZhRGlzcGxheSxcbiAgZmFGYWNlU21pbGUsXG4gIGZhU21pbGUsXG4gIGZhVGh1bWJ0YWNrLFxuICBmYVRodW1iVGFjayxcbiAgZmFUcm9waHksXG4gIGZhUGVyc29uUHJheWluZyxcbiAgZmFQcmF5LFxuICBmYUhhbW1lcixcbiAgZmFIYW5kUGVhY2UsXG4gIGZhUm90YXRlLFxuICBmYVN5bmNBbHQsXG4gIGZhU3Bpbm5lcixcbiAgZmFSb2JvdCxcbiAgZmFQZWFjZSxcbiAgZmFHZWFycyxcbiAgZmFDb2dzLFxuICBmYVdhcmVob3VzZSxcbiAgZmFBcnJvd1VwUmlnaHREb3RzLFxuICBmYVNwbG90Y2gsXG4gIGZhRmFjZUdyaW5IZWFydHMsXG4gIGZhR3JpbkhlYXJ0cyxcbiAgZmFEaWNlRm91cixcbiAgZmFTaW1DYXJkLFxuICBmYVRyYW5zZ2VuZGVyLFxuICBmYVRyYW5zZ2VuZGVyQWx0LFxuICBmYU1lcmN1cnksXG4gIGZhQXJyb3dUdXJuRG93bixcbiAgZmFMZXZlbERvd24sXG4gIGZhUGVyc29uRmFsbGluZ0J1cnN0LFxuICBmYUF3YXJkLFxuICBmYVRpY2tldFNpbXBsZSxcbiAgZmFUaWNrZXRBbHQsXG4gIGZhQnVpbGRpbmcsXG4gIGZhQW5nbGVzTGVmdCxcbiAgZmFBbmdsZURvdWJsZUxlZnQsXG4gIGZhUXJjb2RlLFxuICBmYUNsb2NrUm90YXRlTGVmdCxcbiAgZmFIaXN0b3J5LFxuICBmYUZhY2VHcmluQmVhbVN3ZWF0LFxuICBmYUdyaW5CZWFtU3dlYXQsXG4gIGZhRmlsZUV4cG9ydCxcbiAgZmFBcnJvd1JpZ2h0RnJvbUZpbGUsXG4gIGZhU2hpZWxkLFxuICBmYVNoaWVsZEJsYW5rLFxuICBmYUFycm93VXBTaG9ydFdpZGUsXG4gIGZhU29ydEFtb3VudFVwQWx0LFxuICBmYUhvdXNlTWVkaWNhbCxcbiAgZmFHb2xmQmFsbFRlZSxcbiAgZmFHb2xmQmFsbCxcbiAgZmFDaXJjbGVDaGV2cm9uTGVmdCxcbiAgZmFDaGV2cm9uQ2lyY2xlTGVmdCxcbiAgZmFIb3VzZUNoaW1uZXlXaW5kb3csXG4gIGZhUGVuTmliLFxuICBmYVRlbnRBcnJvd1R1cm5MZWZ0LFxuICBmYVRlbnRzLFxuICBmYVdhbmRNYWdpYyxcbiAgZmFNYWdpYyxcbiAgZmFEb2csXG4gIGZhQ2Fycm90LFxuICBmYU1vb24sXG4gIGZhV2luZUdsYXNzRW1wdHksXG4gIGZhV2luZUdsYXNzQWx0LFxuICBmYUNoZWVzZSxcbiAgZmFZaW5ZYW5nLFxuICBmYU11c2ljLFxuICBmYUNvZGVDb21taXQsXG4gIGZhVGVtcGVyYXR1cmVMb3csXG4gIGZhUGVyc29uQmlraW5nLFxuICBmYUJpa2luZyxcbiAgZmFCcm9vbSxcbiAgZmFTaGllbGRIZWFydCxcbiAgZmFHb3B1cmFtLFxuICBmYUVhcnRoT2NlYW5pYSxcbiAgZmFHbG9iZU9jZWFuaWEsXG4gIGZhU3F1YXJlWG1hcmssXG4gIGZhVGltZXNTcXVhcmUsXG4gIGZhWG1hcmtTcXVhcmUsXG4gIGZhSGFzaHRhZyxcbiAgZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyLFxuICBmYUV4cGFuZEFsdCxcbiAgZmFPaWxDYW4sXG4gIGZhVCxcbiAgZmFIaXBwbyxcbiAgZmFDaGFydENvbHVtbixcbiAgZmFJbmZpbml0eSxcbiAgZmFWaWFsQ2lyY2xlQ2hlY2ssXG4gIGZhUGVyc29uQXJyb3dEb3duVG9MaW5lLFxuICBmYVZvaWNlbWFpbCxcbiAgZmFGYW4sXG4gIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsXG4gIGZhVXBEb3duLFxuICBmYUFycm93c0FsdFYsXG4gIGZhQ2xvdWRNb29uUmFpbixcbiAgZmFDYWxlbmRhcixcbiAgZmFUcmFpbGVyLFxuICBmYUJhaGFpLFxuICBmYUhheWthbCxcbiAgZmFTZENhcmQsXG4gIGZhRHJhZ29uLFxuICBmYVNob2VQcmludHMsXG4gIGZhQ2lyY2xlUGx1cyxcbiAgZmFQbHVzQ2lyY2xlLFxuICBmYUZhY2VHcmluVG9uZ3VlV2luayxcbiAgZmFHcmluVG9uZ3VlV2luayxcbiAgZmFIYW5kSG9sZGluZyxcbiAgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhTGlua1NsYXNoLFxuICBmYUNoYWluQnJva2VuLFxuICBmYUNoYWluU2xhc2gsXG4gIGZhVW5saW5rLFxuICBmYUNsb25lLFxuICBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0LFxuICBmYUFycm93VXBaQSxcbiAgZmFTb3J0QWxwaGFVcEFsdCxcbiAgZmFGaXJlRmxhbWVDdXJ2ZWQsXG4gIGZhRmlyZUFsdCxcbiAgZmFUb3JuYWRvLFxuICBmYUZpbGVDaXJjbGVQbHVzLFxuICBmYUJvb2tRdXJhbixcbiAgZmFRdXJhbixcbiAgZmFBbmNob3IsXG4gIGZhQm9yZGVyQWxsLFxuICBmYUZhY2VBbmdyeSxcbiAgZmFBbmdyeSxcbiAgZmFDb29raWVCaXRlLFxuICBmYUFycm93VHJlbmREb3duLFxuICBmYVJzcyxcbiAgZmFGZWVkLFxuICBmYURyYXdQb2x5Z29uLFxuICBmYVNjYWxlQmFsYW5jZWQsXG4gIGZhQmFsYW5jZVNjYWxlLFxuICBmYUdhdWdlU2ltcGxlSGlnaCxcbiAgZmFUYWNob21ldGVyLFxuICBmYVRhY2hvbWV0ZXJGYXN0LFxuICBmYVNob3dlcixcbiAgZmFEZXNrdG9wLFxuICBmYURlc2t0b3BBbHQsXG4gIGZhTSxcbiAgZmFUYWJsZUxpc3QsXG4gIGZhVGhMaXN0LFxuICBmYUNvbW1lbnRTbXMsXG4gIGZhU21zLFxuICBmYUJvb2ssXG4gIGZhVXNlclBsdXMsXG4gIGZhQ2hlY2ssXG4gIGZhQmF0dGVyeVRocmVlUXVhcnRlcnMsXG4gIGZhQmF0dGVyeTQsXG4gIGZhSG91c2VDaXJjbGVDaGVjayxcbiAgZmFBbmdsZUxlZnQsXG4gIGZhRGlhZ3JhbVN1Y2Nlc3NvcixcbiAgZmFUcnVja0Fycm93UmlnaHQsXG4gIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsXG4gIGZhSGFuZEZpc3QsXG4gIGZhRmlzdFJhaXNlZCxcbiAgZmFDbG91ZE1vb24sXG4gIGZhQnJpZWZjYXNlLFxuICBmYVBlcnNvbkZhbGxpbmcsXG4gIGZhSW1hZ2VQb3J0cmFpdCxcbiAgZmFQb3J0cmFpdCxcbiAgZmFVc2VyVGFnLFxuICBmYVJ1ZyxcbiAgZmFFYXJ0aEV1cm9wZSxcbiAgZmFHbG9iZUV1cm9wZSxcbiAgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlLFxuICBmYUx1Z2dhZ2VDYXJ0LFxuICBmYVJlY3RhbmdsZVhtYXJrLFxuICBmYVJlY3RhbmdsZVRpbWVzLFxuICBmYVRpbWVzUmVjdGFuZ2xlLFxuICBmYVdpbmRvd0Nsb3NlLFxuICBmYUJhaHRTaWduLFxuICBmYUJvb2tPcGVuLFxuICBmYUJvb2tKb3VybmFsV2hpbGxzLFxuICBmYUpvdXJuYWxXaGlsbHMsXG4gIGZhSGFuZGN1ZmZzLFxuICBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sXG4gIGZhRXhjbGFtYXRpb25UcmlhbmdsZSxcbiAgZmFXYXJuaW5nLFxuICBmYURhdGFiYXNlLFxuICBmYVNoYXJlLFxuICBmYU1haWxGb3J3YXJkLFxuICBmYUJvdHRsZURyb3BsZXQsXG4gIGZhTWFza0ZhY2UsXG4gIGZhSGlsbFJvY2tzbGlkZSxcbiAgZmFSaWdodExlZnQsXG4gIGZhRXhjaGFuZ2VBbHQsXG4gIGZhUGFwZXJQbGFuZSxcbiAgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhRHVuZ2VvbixcbiAgZmFBbGlnblJpZ2h0LFxuICBmYU1vbmV5QmlsbDFXYXZlLFxuICBmYU1vbmV5QmlsbFdhdmVBbHQsXG4gIGZhTGlmZVJpbmcsXG4gIGZhSGFuZHMsXG4gIGZhU2lnbkxhbmd1YWdlLFxuICBmYVNpZ25pbmcsXG4gIGZhQ2FsZW5kYXJEYXksXG4gIGZhV2F0ZXJMYWRkZXIsXG4gIGZhTGFkZGVyV2F0ZXIsXG4gIGZhU3dpbW1pbmdQb29sLFxuICBmYUFycm93c1VwRG93bixcbiAgZmFBcnJvd3NWLFxuICBmYUZhY2VHcmltYWNlLFxuICBmYUdyaW1hY2UsXG4gIGZhV2hlZWxjaGFpck1vdmUsXG4gIGZhV2hlZWxjaGFpckFsdCxcbiAgZmFUdXJuRG93bixcbiAgZmFMZXZlbERvd25BbHQsXG4gIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsXG4gIGZhU3F1YXJlRW52ZWxvcGUsXG4gIGZhRW52ZWxvcGVTcXVhcmUsXG4gIGZhRGljZSxcbiAgZmFCb3dsaW5nQmFsbCxcbiAgZmFCcmFpbixcbiAgZmFCYW5kYWdlLFxuICBmYUJhbmRBaWQsXG4gIGZhQ2FsZW5kYXJNaW51cyxcbiAgZmFDaXJjbGVYbWFyayxcbiAgZmFUaW1lc0NpcmNsZSxcbiAgZmFYbWFya0NpcmNsZSxcbiAgZmFHaWZ0cyxcbiAgZmFIb3RlbCxcbiAgZmFFYXJ0aEFzaWEsXG4gIGZhR2xvYmVBc2lhLFxuICBmYUlkQ2FyZENsaXAsXG4gIGZhSWRDYXJkQWx0LFxuICBmYU1hZ25pZnlpbmdHbGFzc1BsdXMsXG4gIGZhU2VhcmNoUGx1cyxcbiAgZmFUaHVtYnNVcCxcbiAgZmFVc2VyQ2xvY2ssXG4gIGZhSGFuZERvdHMsXG4gIGZhQWxsZXJnaWVzLFxuICBmYUZpbGVJbnZvaWNlLFxuICBmYVdpbmRvd01pbmltaXplLFxuICBmYU11Z1NhdWNlcixcbiAgZmFDb2ZmZWUsXG4gIGZhQnJ1c2gsXG4gIGZhTWFzayxcbiAgZmFNYWduaWZ5aW5nR2xhc3NNaW51cyxcbiAgZmFTZWFyY2hNaW51cyxcbiAgZmFSdWxlclZlcnRpY2FsLFxuICBmYVVzZXJMYXJnZSxcbiAgZmFVc2VyQWx0LFxuICBmYVRyYWluVHJhbSxcbiAgZmFVc2VyTnVyc2UsXG4gIGZhU3lyaW5nZSxcbiAgZmFDbG91ZFN1bixcbiAgZmFTdG9wd2F0Y2gyMCxcbiAgZmFTcXVhcmVGdWxsLFxuICBmYU1hZ25ldCxcbiAgZmFKYXIsXG4gIGZhTm90ZVN0aWNreSxcbiAgZmFTdGlja3lOb3RlLFxuICBmYUJ1Z1NsYXNoLFxuICBmYUFycm93VXBGcm9tV2F0ZXJQdW1wLFxuICBmYUJvbmUsXG4gIGZhVGFibGVDZWxsc1Jvd1VubG9jayxcbiAgZmFVc2VySW5qdXJlZCxcbiAgZmFGYWNlU2FkVGVhcixcbiAgZmFTYWRUZWFyLFxuICBmYVBsYW5lLFxuICBmYVRlbnRBcnJvd3NEb3duLFxuICBmYUV4Y2xhbWF0aW9uLFxuICBmYUFycm93c1NwaW4sXG4gIGZhUHJpbnQsXG4gIGZhVHVya2lzaExpcmFTaWduLFxuICBmYVRyeSxcbiAgZmFUdXJraXNoTGlyYSxcbiAgZmFEb2xsYXJTaWduLFxuICBmYURvbGxhcixcbiAgZmFVc2QsXG4gIGZhWCxcbiAgZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIsXG4gIGZhU2VhcmNoRG9sbGFyLFxuICBmYVVzZXJzR2VhcixcbiAgZmFVc2Vyc0NvZyxcbiAgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nLFxuICBmYUJ1aWxkaW5nQ29sdW1ucyxcbiAgZmFCYW5rLFxuICBmYUluc3RpdHV0aW9uLFxuICBmYU11c2V1bSxcbiAgZmFVbml2ZXJzaXR5LFxuICBmYVVtYnJlbGxhLFxuICBmYVRyb3dlbCxcbiAgZmFELFxuICBmYVN0YXBsZXIsXG4gIGZhTWFza3NUaGVhdGVyLFxuICBmYVRoZWF0ZXJNYXNrcyxcbiAgZmFLaXBTaWduLFxuICBmYUhhbmRQb2ludExlZnQsXG4gIGZhSGFuZHNoYWtlU2ltcGxlLFxuICBmYUhhbmRzaGFrZUFsdCxcbiAgZmFKZXRGaWdodGVyLFxuICBmYUZpZ2h0ZXJKZXQsXG4gIGZhU3F1YXJlU2hhcmVOb2RlcyxcbiAgZmFTaGFyZUFsdFNxdWFyZSxcbiAgZmFCYXJjb2RlLFxuICBmYVBsdXNNaW51cyxcbiAgZmFWaWRlbyxcbiAgZmFWaWRlb0NhbWVyYSxcbiAgZmFHcmFkdWF0aW9uQ2FwLFxuICBmYU1vcnRhckJvYXJkLFxuICBmYUhhbmRIb2xkaW5nTWVkaWNhbCxcbiAgZmFQZXJzb25DaXJjbGVDaGVjayxcbiAgZmFUdXJuVXAsXG4gIGZhTGV2ZWxVcEFsdFxufTtcblxuZXhwb3J0IHsgaWNvbnMgYXMgZmFzLCBwcmVmaXgsIGZhMCwgZmExLCBmYTIsIGZhMywgZmE0LCBmYTUsIGZhNiwgZmE3LCBmYTgsIGZhOSwgZmFGaWxsRHJpcCwgZmFBcnJvd3NUb0NpcmNsZSwgZmFDaXJjbGVDaGV2cm9uUmlnaHQsIGZhQ2hldnJvbkNpcmNsZVJpZ2h0LCBmYUF0LCBmYVRyYXNoQ2FuLCBmYVRyYXNoQWx0LCBmYVRleHRIZWlnaHQsIGZhVXNlclhtYXJrLCBmYVVzZXJUaW1lcywgZmFTdGV0aG9zY29wZSwgZmFNZXNzYWdlLCBmYUNvbW1lbnRBbHQsIGZhSW5mbywgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciwgZmFDb21wcmVzc0FsdCwgZmFFeHBsb3Npb24sIGZhRmlsZUxpbmVzLCBmYUZpbGVBbHQsIGZhRmlsZVRleHQsIGZhV2F2ZVNxdWFyZSwgZmFSaW5nLCBmYUJ1aWxkaW5nVW4sIGZhRGljZVRocmVlLCBmYUNhbGVuZGFyRGF5cywgZmFDYWxlbmRhckFsdCwgZmFBbmNob3JDaXJjbGVDaGVjaywgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQsIGZhVm9sbGV5YmFsbCwgZmFWb2xsZXliYWxsQmFsbCwgZmFBcnJvd3NVcFRvTGluZSwgZmFTb3J0RG93biwgZmFTb3J0RGVzYywgZmFDaXJjbGVNaW51cywgZmFNaW51c0NpcmNsZSwgZmFEb29yT3BlbiwgZmFSaWdodEZyb21CcmFja2V0LCBmYVNpZ25PdXRBbHQsIGZhQXRvbSwgZmFTb2FwLCBmYUljb25zLCBmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0LCBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoLCBmYU1pY3JvcGhvbmVBbHRTbGFzaCwgZmFCcmlkZ2VDaXJjbGVDaGVjaywgZmFQdW1wTWVkaWNhbCwgZmFGaW5nZXJwcmludCwgZmFIYW5kUG9pbnRSaWdodCwgZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbiwgZmFTZWFyY2hMb2NhdGlvbiwgZmFGb3J3YXJkU3RlcCwgZmFTdGVwRm9yd2FyZCwgZmFGYWNlU21pbGVCZWFtLCBmYVNtaWxlQmVhbSwgZmFGbGFnQ2hlY2tlcmVkLCBmYUZvb3RiYWxsLCBmYUZvb3RiYWxsQmFsbCwgZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbiwgZmFDcm9wLCBmYUFuZ2xlc0Rvd24sIGZhQW5nbGVEb3VibGVEb3duLCBmYVVzZXJzUmVjdGFuZ2xlLCBmYVBlb3BsZVJvb2YsIGZhUGVvcGxlTGluZSwgZmFCZWVyTXVnRW1wdHksIGZhQmVlciwgZmFEaWFncmFtUHJlZGVjZXNzb3IsIGZhQXJyb3dVcExvbmcsIGZhTG9uZ0Fycm93VXAsIGZhRmlyZUZsYW1lU2ltcGxlLCBmYUJ1cm4sIGZhUGVyc29uLCBmYU1hbGUsIGZhTGFwdG9wLCBmYUZpbGVDc3YsIGZhTWVub3JhaCwgZmFUcnVja1BsYW5lLCBmYVJlY29yZFZpbnlsLCBmYUZhY2VHcmluU3RhcnMsIGZhR3JpblN0YXJzLCBmYUJvbmcsIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZywgZmFQYXN0YWZhcmlhbmlzbSwgZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUsIGZhU3Bvb24sIGZhVXRlbnNpbFNwb29uLCBmYUphcldoZWF0LCBmYUVudmVsb3Blc0J1bGssIGZhTWFpbEJ1bGssIGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUNpcmNsZUgsIGZhSG9zcGl0YWxTeW1ib2wsIGZhUGFnZXIsIGZhQWRkcmVzc0Jvb2ssIGZhQ29udGFjdEJvb2ssIGZhU3RyaWtldGhyb3VnaCwgZmFLLCBmYUxhbmRtYXJrRmxhZywgZmFQZW5jaWwsIGZhUGVuY2lsQWx0LCBmYUJhY2t3YXJkLCBmYUNhcmV0UmlnaHQsIGZhQ29tbWVudHMsIGZhUGFzdGUsIGZhRmlsZUNsaXBib2FyZCwgZmFDb2RlUHVsbFJlcXVlc3QsIGZhQ2xpcGJvYXJkTGlzdCwgZmFUcnVja1JhbXBCb3gsIGZhVHJ1Y2tMb2FkaW5nLCBmYVVzZXJDaGVjaywgZmFWaWFsVmlydXMsIGZhU2hlZXRQbGFzdGljLCBmYUJsb2csIGZhVXNlck5pbmphLCBmYVBlcnNvbkFycm93VXBGcm9tTGluZSwgZmFTY3JvbGxUb3JhaCwgZmFUb3JhaCwgZmFCcm9vbUJhbGwsIGZhUXVpZGRpdGNoLCBmYVF1aWRkaXRjaEJyb29tQmFsbCwgZmFUb2dnbGVPZmYsIGZhQm94QXJjaGl2ZSwgZmFBcmNoaXZlLCBmYVBlcnNvbkRyb3duaW5nLCBmYUFycm93RG93bjkxLCBmYVNvcnROdW1lcmljRGVzYywgZmFTb3J0TnVtZXJpY0Rvd25BbHQsIGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQsIGZhR3JpblRvbmd1ZVNxdWludCwgZmFTcHJheUNhbiwgZmFUcnVja01vbnN0ZXIsIGZhVywgZmFFYXJ0aEFmcmljYSwgZmFHbG9iZUFmcmljYSwgZmFSYWluYm93LCBmYUNpcmNsZU5vdGNoLCBmYVRhYmxldFNjcmVlbkJ1dHRvbiwgZmFUYWJsZXRBbHQsIGZhUGF3LCBmYUNsb3VkLCBmYVRyb3dlbEJyaWNrcywgZmFGYWNlRmx1c2hlZCwgZmFGbHVzaGVkLCBmYUhvc3BpdGFsVXNlciwgZmFUZW50QXJyb3dMZWZ0UmlnaHQsIGZhR2F2ZWwsIGZhTGVnYWwsIGZhQmlub2N1bGFycywgZmFNaWNyb3Bob25lU2xhc2gsIGZhQm94VGlzc3VlLCBmYU1vdG9yY3ljbGUsIGZhQmVsbENvbmNpZXJnZSwgZmFDb25jaWVyZ2VCZWxsLCBmYVBlblJ1bGVyLCBmYVBlbmNpbFJ1bGVyLCBmYVBlb3BsZUFycm93cywgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsIGZhTWFyc0FuZFZlbnVzQnVyc3QsIGZhU3F1YXJlQ2FyZXRSaWdodCwgZmFDYXJldFNxdWFyZVJpZ2h0LCBmYVNjaXNzb3JzLCBmYUN1dCwgZmFTdW5QbGFudFdpbHQsIGZhVG9pbGV0c1BvcnRhYmxlLCBmYUhvY2tleVB1Y2ssIGZhVGFibGUsIGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodCwgZmFUYWNob2dyYXBoRGlnaXRhbCwgZmFEaWdpdGFsVGFjaG9ncmFwaCwgZmFVc2Vyc1NsYXNoLCBmYUNsb3ZlciwgZmFSZXBseSwgZmFNYWlsUmVwbHksIGZhU3RhckFuZENyZXNjZW50LCBmYUhvdXNlRmlyZSwgZmFTcXVhcmVNaW51cywgZmFNaW51c1NxdWFyZSwgZmFIZWxpY29wdGVyLCBmYUNvbXBhc3MsIGZhU3F1YXJlQ2FyZXREb3duLCBmYUNhcmV0U3F1YXJlRG93biwgZmFGaWxlQ2lyY2xlUXVlc3Rpb24sIGZhTGFwdG9wQ29kZSwgZmFTd2F0Y2hib29rLCBmYVByZXNjcmlwdGlvbkJvdHRsZSwgZmFCYXJzLCBmYU5hdmljb24sIGZhUGVvcGxlR3JvdXAsIGZhSG91cmdsYXNzRW5kLCBmYUhvdXJnbGFzczMsIGZhSGVhcnRDcmFjaywgZmFIZWFydEJyb2tlbiwgZmFTcXVhcmVVcFJpZ2h0LCBmYUV4dGVybmFsTGlua1NxdWFyZUFsdCwgZmFGYWNlS2lzc0JlYW0sIGZhS2lzc0JlYW0sIGZhRmlsbSwgZmFSdWxlckhvcml6b250YWwsIGZhUGVvcGxlUm9iYmVyeSwgZmFMaWdodGJ1bGIsIGZhQ2FyZXRMZWZ0LCBmYUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUV4Y2xhbWF0aW9uQ2lyY2xlLCBmYVNjaG9vbENpcmNsZVhtYXJrLCBmYUFycm93UmlnaHRGcm9tQnJhY2tldCwgZmFTaWduT3V0LCBmYUNpcmNsZUNoZXZyb25Eb3duLCBmYUNoZXZyb25DaXJjbGVEb3duLCBmYVVubG9ja0tleWhvbGUsIGZhVW5sb2NrQWx0LCBmYUNsb3VkU2hvd2Vyc0hlYXZ5LCBmYUhlYWRwaG9uZXNTaW1wbGUsIGZhSGVhZHBob25lc0FsdCwgZmFTaXRlbWFwLCBmYUNpcmNsZURvbGxhclRvU2xvdCwgZmFEb25hdGUsIGZhTWVtb3J5LCBmYVJvYWRTcGlrZXMsIGZhRmlyZUJ1cm5lciwgZmFGbGFnLCBmYUhhbnVraWFoLCBmYUZlYXRoZXIsIGZhVm9sdW1lTG93LCBmYVZvbHVtZURvd24sIGZhQ29tbWVudFNsYXNoLCBmYUNsb3VkU3VuUmFpbiwgZmFDb21wcmVzcywgZmFXaGVhdEF3biwgZmFXaGVhdEFsdCwgZmFBbmtoLCBmYUhhbmRzSG9sZGluZ0NoaWxkLCBmYUFzdGVyaXNrLCBmYVNxdWFyZUNoZWNrLCBmYUNoZWNrU3F1YXJlLCBmYVBlc2V0YVNpZ24sIGZhSGVhZGluZywgZmFIZWFkZXIsIGZhR2hvc3QsIGZhTGlzdCwgZmFMaXN0U3F1YXJlcywgZmFTcXVhcmVQaG9uZUZsaXAsIGZhUGhvbmVTcXVhcmVBbHQsIGZhQ2FydFBsdXMsIGZhR2FtZXBhZCwgZmFDaXJjbGVEb3QsIGZhRG90Q2lyY2xlLCBmYUZhY2VEaXp6eSwgZmFEaXp6eSwgZmFFZ2csIGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmssIGZhQ2FtcGdyb3VuZCwgZmFGb2xkZXJQbHVzLCBmYUZ1dGJvbCwgZmFGdXRib2xCYWxsLCBmYVNvY2NlckJhbGwsIGZhUGFpbnRicnVzaCwgZmFQYWludEJydXNoLCBmYUxvY2ssIGZhR2FzUHVtcCwgZmFIb3RUdWJQZXJzb24sIGZhSG90VHViLCBmYU1hcExvY2F0aW9uLCBmYU1hcE1hcmtlZCwgZmFIb3VzZUZsb29kV2F0ZXIsIGZhVHJlZSwgZmFCcmlkZ2VMb2NrLCBmYVNhY2tEb2xsYXIsIGZhUGVuVG9TcXVhcmUsIGZhRWRpdCwgZmFDYXJTaWRlLCBmYVNoYXJlTm9kZXMsIGZhU2hhcmVBbHQsIGZhSGVhcnRDaXJjbGVNaW51cywgZmFIb3VyZ2xhc3NIYWxmLCBmYUhvdXJnbGFzczIsIGZhTWljcm9zY29wZSwgZmFTaW5rLCBmYUJhZ1Nob3BwaW5nLCBmYVNob3BwaW5nQmFnLCBmYUFycm93RG93blpBLCBmYVNvcnRBbHBoYURlc2MsIGZhU29ydEFscGhhRG93bkFsdCwgZmFNaXR0ZW4sIGZhUGVyc29uUmF5cywgZmFVc2VycywgZmFFeWVTbGFzaCwgZmFGbGFza1ZpYWwsIGZhSGFuZCwgZmFIYW5kUGFwZXIsIGZhT20sIGZhV29ybSwgZmFIb3VzZUNpcmNsZVhtYXJrLCBmYVBsdWcsIGZhQ2hldnJvblVwLCBmYUhhbmRTcG9jaywgZmFTdG9wd2F0Y2gsIGZhRmFjZUtpc3MsIGZhS2lzcywgZmFCcmlkZ2VDaXJjbGVYbWFyaywgZmFGYWNlR3JpblRvbmd1ZSwgZmFHcmluVG9uZ3VlLCBmYUNoZXNzQmlzaG9wLCBmYUZhY2VHcmluV2luaywgZmFHcmluV2luaywgZmFFYXJEZWFmLCBmYURlYWYsIGZhRGVhZm5lc3MsIGZhSGFyZE9mSGVhcmluZywgZmFSb2FkQ2lyY2xlQ2hlY2ssIGZhRGljZUZpdmUsIGZhU3F1YXJlUnNzLCBmYVJzc1NxdWFyZSwgZmFMYW5kTWluZU9uLCBmYUlDdXJzb3IsIGZhU3RhbXAsIGZhU3RhaXJzLCBmYUksIGZhSHJ5dm5pYVNpZ24sIGZhSHJ5dm5pYSwgZmFQaWxscywgZmFGYWNlR3JpbldpZGUsIGZhR3JpbkFsdCwgZmFUb290aCwgZmFWLCBmYUJhbmdsYWRlc2hpVGFrYVNpZ24sIGZhQmljeWNsZSwgZmFTdGFmZlNuYWtlLCBmYVJvZEFzY2xlcGl1cywgZmFSb2RTbmFrZSwgZmFTdGFmZkFlc2N1bGFwaXVzLCBmYUhlYWRTaWRlQ291Z2hTbGFzaCwgZmFUcnVja01lZGljYWwsIGZhQW1idWxhbmNlLCBmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb24sIGZhU25vd21hbiwgZmFNb3J0YXJQZXN0bGUsIGZhUm9hZEJhcnJpZXIsIGZhU2Nob29sLCBmYUlnbG9vLCBmYUpvaW50LCBmYUFuZ2xlUmlnaHQsIGZhSG9yc2UsIGZhUSwgZmFHLCBmYU5vdGVzTWVkaWNhbCwgZmFUZW1wZXJhdHVyZUhhbGYsIGZhVGVtcGVyYXR1cmUyLCBmYVRoZXJtb21ldGVyMiwgZmFUaGVybW9tZXRlckhhbGYsIGZhRG9uZ1NpZ24sIGZhQ2Fwc3VsZXMsIGZhUG9vU3Rvcm0sIGZhUG9vQm9sdCwgZmFGYWNlRnJvd25PcGVuLCBmYUZyb3duT3BlbiwgZmFIYW5kUG9pbnRVcCwgZmFNb25leUJpbGwsIGZhQm9va21hcmssIGZhQWxpZ25KdXN0aWZ5LCBmYVVtYnJlbGxhQmVhY2gsIGZhSGVsbWV0VW4sIGZhQnVsbHNleWUsIGZhQmFjb24sIGZhSGFuZFBvaW50RG93biwgZmFBcnJvd1VwRnJvbUJyYWNrZXQsIGZhRm9sZGVyLCBmYUZvbGRlckJsYW5rLCBmYUZpbGVXYXZlZm9ybSwgZmFGaWxlTWVkaWNhbEFsdCwgZmFSYWRpYXRpb24sIGZhQ2hhcnRTaW1wbGUsIGZhTWFyc1N0cm9rZSwgZmFWaWFsLCBmYUdhdWdlLCBmYURhc2hib2FyZCwgZmFHYXVnZU1lZCwgZmFUYWNob21ldGVyQWx0QXZlcmFnZSwgZmFXYW5kTWFnaWNTcGFya2xlcywgZmFNYWdpY1dhbmRTcGFya2xlcywgZmFFLCBmYVBlbkNsaXAsIGZhUGVuQWx0LCBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYVVzZXIsIGZhU2Nob29sQ2lyY2xlQ2hlY2ssIGZhRHVtcHN0ZXIsIGZhVmFuU2h1dHRsZSwgZmFTaHV0dGxlVmFuLCBmYUJ1aWxkaW5nVXNlciwgZmFTcXVhcmVDYXJldExlZnQsIGZhQ2FyZXRTcXVhcmVMZWZ0LCBmYUhpZ2hsaWdodGVyLCBmYUtleSwgZmFCdWxsaG9ybiwgZmFHbG9iZSwgZmFTeW5hZ29ndWUsIGZhUGVyc29uSGFsZkRyZXNzLCBmYVJvYWRCcmlkZ2UsIGZhTG9jYXRpb25BcnJvdywgZmFDLCBmYVRhYmxldEJ1dHRvbiwgZmFCdWlsZGluZ0xvY2ssIGZhUGl6emFTbGljZSwgZmFNb25leUJpbGxXYXZlLCBmYUNoYXJ0QXJlYSwgZmFBcmVhQ2hhcnQsIGZhSG91c2VGbGFnLCBmYVBlcnNvbkNpcmNsZU1pbnVzLCBmYUJhbiwgZmFDYW5jZWwsIGZhQ2FtZXJhUm90YXRlLCBmYVNwcmF5Q2FuU3BhcmtsZXMsIGZhQWlyRnJlc2hlbmVyLCBmYVN0YXIsIGZhUmVwZWF0LCBmYUNyb3NzLCBmYUJveCwgZmFWZW51c01hcnMsIGZhQXJyb3dQb2ludGVyLCBmYU1vdXNlUG9pbnRlciwgZmFNYXhpbWl6ZSwgZmFFeHBhbmRBcnJvd3NBbHQsIGZhQ2hhcmdpbmdTdGF0aW9uLCBmYVNoYXBlcywgZmFUcmlhbmdsZUNpcmNsZVNxdWFyZSwgZmFTaHVmZmxlLCBmYVJhbmRvbSwgZmFQZXJzb25SdW5uaW5nLCBmYVJ1bm5pbmcsIGZhTW9iaWxlUmV0cm8sIGZhR3JpcExpbmVzVmVydGljYWwsIGZhU3BpZGVyLCBmYUhhbmRzQm91bmQsIGZhRmlsZUludm9pY2VEb2xsYXIsIGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbiwgZmFYUmF5LCBmYVNwZWxsQ2hlY2ssIGZhU2xhc2gsIGZhQ29tcHV0ZXJNb3VzZSwgZmFNb3VzZSwgZmFBcnJvd1JpZ2h0VG9CcmFja2V0LCBmYVNpZ25JbiwgZmFTaG9wU2xhc2gsIGZhU3RvcmVBbHRTbGFzaCwgZmFTZXJ2ZXIsIGZhVmlydXNDb3ZpZFNsYXNoLCBmYVNob3BMb2NrLCBmYUhvdXJnbGFzc1N0YXJ0LCBmYUhvdXJnbGFzczEsIGZhQmxlbmRlclBob25lLCBmYUJ1aWxkaW5nV2hlYXQsIGZhUGVyc29uQnJlYXN0ZmVlZGluZywgZmFSaWdodFRvQnJhY2tldCwgZmFTaWduSW5BbHQsIGZhVmVudXMsIGZhUGFzc3BvcnQsIGZhVGh1bWJ0YWNrU2xhc2gsIGZhVGh1bWJUYWNrU2xhc2gsIGZhSGVhcnRQdWxzZSwgZmFIZWFydGJlYXQsIGZhUGVvcGxlQ2FycnlCb3gsIGZhUGVvcGxlQ2FycnksIGZhVGVtcGVyYXR1cmVIaWdoLCBmYU1pY3JvY2hpcCwgZmFDcm93biwgZmFXZWlnaHRIYW5naW5nLCBmYVhtYXJrc0xpbmVzLCBmYUZpbGVQcmVzY3JpcHRpb24sIGZhV2VpZ2h0U2NhbGUsIGZhV2VpZ2h0LCBmYVVzZXJHcm91cCwgZmFVc2VyRnJpZW5kcywgZmFBcnJvd1VwQVosIGZhU29ydEFscGhhVXAsIGZhQ2hlc3NLbmlnaHQsIGZhRmFjZUxhdWdoU3F1aW50LCBmYUxhdWdoU3F1aW50LCBmYVdoZWVsY2hhaXIsIGZhQ2lyY2xlQXJyb3dVcCwgZmFBcnJvd0NpcmNsZVVwLCBmYVRvZ2dsZU9uLCBmYVBlcnNvbldhbGtpbmcsIGZhV2Fsa2luZywgZmFMLCBmYUZpcmUsIGZhQmVkUHVsc2UsIGZhUHJvY2VkdXJlcywgZmFTaHV0dGxlU3BhY2UsIGZhU3BhY2VTaHV0dGxlLCBmYUZhY2VMYXVnaCwgZmFMYXVnaCwgZmFGb2xkZXJPcGVuLCBmYUhlYXJ0Q2lyY2xlUGx1cywgZmFDb2RlRm9yaywgZmFDaXR5LCBmYU1pY3JvcGhvbmVMaW5lcywgZmFNaWNyb3Bob25lQWx0LCBmYVBlcHBlckhvdCwgZmFVbmxvY2ssIGZhQ29sb25TaWduLCBmYUhlYWRzZXQsIGZhU3RvcmVTbGFzaCwgZmFSb2FkQ2lyY2xlWG1hcmssIGZhVXNlck1pbnVzLCBmYU1hcnNTdHJva2VVcCwgZmFNYXJzU3Ryb2tlViwgZmFDaGFtcGFnbmVHbGFzc2VzLCBmYUdsYXNzQ2hlZXJzLCBmYUNsaXBib2FyZCwgZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUZpbGVBcnJvd1VwLCBmYUZpbGVVcGxvYWQsIGZhV2lmaSwgZmFXaWZpMywgZmFXaWZpU3Ryb25nLCBmYUJhdGgsIGZhQmF0aHR1YiwgZmFVbmRlcmxpbmUsIGZhVXNlclBlbiwgZmFVc2VyRWRpdCwgZmFTaWduYXR1cmUsIGZhU3Ryb29wd2FmZWwsIGZhQm9sZCwgZmFBbmNob3JMb2NrLCBmYUJ1aWxkaW5nTmdvLCBmYU1hbmF0U2lnbiwgZmFOb3RFcXVhbCwgZmFCb3JkZXJUb3BMZWZ0LCBmYUJvcmRlclN0eWxlLCBmYU1hcExvY2F0aW9uRG90LCBmYU1hcE1hcmtlZEFsdCwgZmFKZWRpLCBmYVNxdWFyZVBvbGxWZXJ0aWNhbCwgZmFQb2xsLCBmYU11Z0hvdCwgZmFDYXJCYXR0ZXJ5LCBmYUJhdHRlcnlDYXIsIGZhR2lmdCwgZmFEaWNlVHdvLCBmYUNoZXNzUXVlZW4sIGZhR2xhc3NlcywgZmFDaGVzc0JvYXJkLCBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2ssIGZhUGVyc29uQ2hhbGtib2FyZCwgZmFNYXJzU3Ryb2tlUmlnaHQsIGZhTWFyc1N0cm9rZUgsIGZhSGFuZEJhY2tGaXN0LCBmYUhhbmRSb2NrLCBmYVNxdWFyZUNhcmV0VXAsIGZhQ2FyZXRTcXVhcmVVcCwgZmFDbG91ZFNob3dlcnNXYXRlciwgZmFDaGFydEJhciwgZmFCYXJDaGFydCwgZmFIYW5kc0J1YmJsZXMsIGZhSGFuZHNXYXNoLCBmYUxlc3NUaGFuRXF1YWwsIGZhVHJhaW4sIGZhRXllTG93VmlzaW9uLCBmYUxvd1Zpc2lvbiwgZmFDcm93LCBmYVNhaWxib2F0LCBmYVdpbmRvd1Jlc3RvcmUsIGZhU3F1YXJlUGx1cywgZmFQbHVzU3F1YXJlLCBmYVRvcmlpR2F0ZSwgZmFGcm9nLCBmYUJ1Y2tldCwgZmFJbWFnZSwgZmFNaWNyb3Bob25lLCBmYUNvdywgZmFDYXJldFVwLCBmYVNjcmV3ZHJpdmVyLCBmYUZvbGRlckNsb3NlZCwgZmFIb3VzZVRzdW5hbWksIGZhU3F1YXJlTmZpLCBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsIGZhTWFydGluaUdsYXNzLCBmYUdsYXNzTWFydGluaUFsdCwgZmFSb3RhdGVMZWZ0LCBmYVJvdGF0ZUJhY2ssIGZhUm90YXRlQmFja3dhcmQsIGZhVW5kb0FsdCwgZmFUYWJsZUNvbHVtbnMsIGZhQ29sdW1ucywgZmFMZW1vbiwgZmFIZWFkU2lkZU1hc2ssIGZhSGFuZHNoYWtlLCBmYUdlbSwgZmFEb2xseSwgZmFEb2xseUJveCwgZmFTbW9raW5nLCBmYU1pbmltaXplLCBmYUNvbXByZXNzQXJyb3dzQWx0LCBmYU1vbnVtZW50LCBmYVNub3dwbG93LCBmYUFuZ2xlc1JpZ2h0LCBmYUFuZ2xlRG91YmxlUmlnaHQsIGZhQ2FubmFiaXMsIGZhQ2lyY2xlUGxheSwgZmFQbGF5Q2lyY2xlLCBmYVRhYmxldHMsIGZhRXRoZXJuZXQsIGZhRXVyb1NpZ24sIGZhRXVyLCBmYUV1cm8sIGZhQ2hhaXIsIGZhQ2lyY2xlQ2hlY2ssIGZhQ2hlY2tDaXJjbGUsIGZhQ2lyY2xlU3RvcCwgZmFTdG9wQ2lyY2xlLCBmYUNvbXBhc3NEcmFmdGluZywgZmFEcmFmdGluZ0NvbXBhc3MsIGZhUGxhdGVXaGVhdCwgZmFJY2ljbGVzLCBmYVBlcnNvblNoZWx0ZXIsIGZhTmV1dGVyLCBmYUlkQmFkZ2UsIGZhTWFya2VyLCBmYUZhY2VMYXVnaEJlYW0sIGZhTGF1Z2hCZWFtLCBmYUhlbGljb3B0ZXJTeW1ib2wsIGZhVW5pdmVyc2FsQWNjZXNzLCBmYUNpcmNsZUNoZXZyb25VcCwgZmFDaGV2cm9uQ2lyY2xlVXAsIGZhTGFyaVNpZ24sIGZhVm9sY2FubywgZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQsIGZhU3RlcmxpbmdTaWduLCBmYUdicCwgZmFQb3VuZFNpZ24sIGZhVmlydXNlcywgZmFTcXVhcmVQZXJzb25Db25maW5lZCwgZmFVc2VyVGllLCBmYUFycm93RG93bkxvbmcsIGZhTG9uZ0Fycm93RG93biwgZmFUZW50QXJyb3dEb3duVG9MaW5lLCBmYUNlcnRpZmljYXRlLCBmYVJlcGx5QWxsLCBmYU1haWxSZXBseUFsbCwgZmFTdWl0Y2FzZSwgZmFQZXJzb25Ta2F0aW5nLCBmYVNrYXRpbmcsIGZhRmlsdGVyQ2lyY2xlRG9sbGFyLCBmYUZ1bm5lbERvbGxhciwgZmFDYW1lcmFSZXRybywgZmFDaXJjbGVBcnJvd0Rvd24sIGZhQXJyb3dDaXJjbGVEb3duLCBmYUZpbGVJbXBvcnQsIGZhQXJyb3dSaWdodFRvRmlsZSwgZmFTcXVhcmVBcnJvd1VwUmlnaHQsIGZhRXh0ZXJuYWxMaW5rU3F1YXJlLCBmYUJveE9wZW4sIGZhU2Nyb2xsLCBmYVNwYSwgZmFMb2NhdGlvblBpbkxvY2ssIGZhUGF1c2UsIGZhSGlsbEF2YWxhbmNoZSwgZmFUZW1wZXJhdHVyZUVtcHR5LCBmYVRlbXBlcmF0dXJlMCwgZmFUaGVybW9tZXRlcjAsIGZhVGhlcm1vbWV0ZXJFbXB0eSwgZmFCb21iLCBmYVJlZ2lzdGVyZWQsIGZhQWRkcmVzc0NhcmQsIGZhQ29udGFjdENhcmQsIGZhVmNhcmQsIGZhU2NhbGVVbmJhbGFuY2VkRmxpcCwgZmFCYWxhbmNlU2NhbGVSaWdodCwgZmFTdWJzY3JpcHQsIGZhRGlhbW9uZFR1cm5SaWdodCwgZmFEaXJlY3Rpb25zLCBmYUJ1cnN0LCBmYUhvdXNlTGFwdG9wLCBmYUxhcHRvcEhvdXNlLCBmYUZhY2VUaXJlZCwgZmFUaXJlZCwgZmFNb25leUJpbGxzLCBmYVNtb2csIGZhQ3J1dGNoLCBmYUZvbnRBd2Vzb21lLCBmYUZvbnRBd2Vzb21lRmxhZywgZmFGb250QXdlc29tZUxvZ29GdWxsLCBmYUNsb3VkQXJyb3dVcCwgZmFDbG91ZFVwbG9hZCwgZmFDbG91ZFVwbG9hZEFsdCwgZmFQYWxldHRlLCBmYUFycm93c1R1cm5SaWdodCwgZmFWZXN0LCBmYUZlcnJ5LCBmYUFycm93c0Rvd25Ub1Blb3BsZSwgZmFTZWVkbGluZywgZmFTcHJvdXQsIGZhTGVmdFJpZ2h0LCBmYUFycm93c0FsdEgsIGZhQm94ZXNQYWNraW5nLCBmYUNpcmNsZUFycm93TGVmdCwgZmFBcnJvd0NpcmNsZUxlZnQsIGZhR3JvdXBBcnJvd3NSb3RhdGUsIGZhQm93bEZvb2QsIGZhQ2FuZHlDYW5lLCBmYUFycm93RG93bldpZGVTaG9ydCwgZmFTb3J0QW1vdW50QXNjLCBmYVNvcnRBbW91bnREb3duLCBmYUNsb3VkQm9sdCwgZmFUaHVuZGVyc3Rvcm0sIGZhVGV4dFNsYXNoLCBmYVJlbW92ZUZvcm1hdCwgZmFGYWNlU21pbGVXaW5rLCBmYVNtaWxlV2luaywgZmFGaWxlV29yZCwgZmFGaWxlUG93ZXJwb2ludCwgZmFBcnJvd3NMZWZ0UmlnaHQsIGZhQXJyb3dzSCwgZmFIb3VzZUxvY2ssIGZhQ2xvdWRBcnJvd0Rvd24sIGZhQ2xvdWREb3dubG9hZCwgZmFDbG91ZERvd25sb2FkQWx0LCBmYUNoaWxkcmVuLCBmYUNoYWxrYm9hcmQsIGZhQmxhY2tib2FyZCwgZmFVc2VyTGFyZ2VTbGFzaCwgZmFVc2VyQWx0U2xhc2gsIGZhRW52ZWxvcGVPcGVuLCBmYUhhbmRzaGFrZVNpbXBsZVNsYXNoLCBmYUhhbmRzaGFrZUFsdFNsYXNoLCBmYU1hdHRyZXNzUGlsbG93LCBmYUd1YXJhbmlTaWduLCBmYUFycm93c1JvdGF0ZSwgZmFSZWZyZXNoLCBmYVN5bmMsIGZhRmlyZUV4dGluZ3Vpc2hlciwgZmFDcnV6ZWlyb1NpZ24sIGZhR3JlYXRlclRoYW5FcXVhbCwgZmFTaGllbGRIYWx2ZWQsIGZhU2hpZWxkQWx0LCBmYUJvb2tBdGxhcywgZmFBdGxhcywgZmFWaXJ1cywgZmFFbnZlbG9wZUNpcmNsZUNoZWNrLCBmYUxheWVyR3JvdXAsIGZhQXJyb3dzVG9Eb3QsIGZhQXJjaHdheSwgZmFIZWFydENpcmNsZUNoZWNrLCBmYUhvdXNlQ2hpbW5leUNyYWNrLCBmYUhvdXNlRGFtYWdlLCBmYUZpbGVaaXBwZXIsIGZhRmlsZUFyY2hpdmUsIGZhU3F1YXJlLCBmYU1hcnRpbmlHbGFzc0VtcHR5LCBmYUdsYXNzTWFydGluaSwgZmFDb3VjaCwgZmFDZWRpU2lnbiwgZmFJdGFsaWMsIGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssIGZhQ2h1cmNoLCBmYUNvbW1lbnRzRG9sbGFyLCBmYURlbW9jcmF0LCBmYVosIGZhUGVyc29uU2tpaW5nLCBmYVNraWluZywgZmFSb2FkTG9jaywgZmFBLCBmYVRlbXBlcmF0dXJlQXJyb3dEb3duLCBmYVRlbXBlcmF0dXJlRG93biwgZmFGZWF0aGVyUG9pbnRlZCwgZmFGZWF0aGVyQWx0LCBmYVAsIGZhU25vd2ZsYWtlLCBmYU5ld3NwYXBlciwgZmFSZWN0YW5nbGVBZCwgZmFBZCwgZmFDaXJjbGVBcnJvd1JpZ2h0LCBmYUFycm93Q2lyY2xlUmlnaHQsIGZhRmlsdGVyQ2lyY2xlWG1hcmssIGZhTG9jdXN0LCBmYVNvcnQsIGZhVW5zb3J0ZWQsIGZhTGlzdE9sLCBmYUxpc3QxMiwgZmFMaXN0TnVtZXJpYywgZmFQZXJzb25EcmVzc0J1cnN0LCBmYU1vbmV5Q2hlY2tEb2xsYXIsIGZhTW9uZXlDaGVja0FsdCwgZmFWZWN0b3JTcXVhcmUsIGZhQnJlYWRTbGljZSwgZmFMYW5ndWFnZSwgZmFGYWNlS2lzc1dpbmtIZWFydCwgZmFLaXNzV2lua0hlYXJ0LCBmYUZpbHRlciwgZmFRdWVzdGlvbiwgZmFGaWxlU2lnbmF0dXJlLCBmYVVwRG93bkxlZnRSaWdodCwgZmFBcnJvd3NBbHQsIGZhSG91c2VDaGltbmV5VXNlciwgZmFIYW5kSG9sZGluZ0hlYXJ0LCBmYVB1enpsZVBpZWNlLCBmYU1vbmV5Q2hlY2ssIGZhU3RhckhhbGZTdHJva2UsIGZhU3RhckhhbGZBbHQsIGZhQ29kZSwgZmFXaGlza2V5R2xhc3MsIGZhR2xhc3NXaGlza2V5LCBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24sIGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQsIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZSwgZmFFeHRlcm5hbExpbmssIGZhQ3ViZXNTdGFja2VkLCBmYVdvblNpZ24sIGZhS3J3LCBmYVdvbiwgZmFWaXJ1c0NvdmlkLCBmYUF1c3RyYWxTaWduLCBmYUYsIGZhTGVhZiwgZmFSb2FkLCBmYVRheGksIGZhQ2FiLCBmYVBlcnNvbkNpcmNsZVBsdXMsIGZhQ2hhcnRQaWUsIGZhUGllQ2hhcnQsIGZhQm9sdExpZ2h0bmluZywgZmFTYWNrWG1hcmssIGZhRmlsZUV4Y2VsLCBmYUZpbGVDb250cmFjdCwgZmFGaXNoRmlucywgZmFCdWlsZGluZ0ZsYWcsIGZhRmFjZUdyaW5CZWFtLCBmYUdyaW5CZWFtLCBmYU9iamVjdFVuZ3JvdXAsIGZhUG9vcCwgZmFMb2NhdGlvblBpbiwgZmFNYXBNYXJrZXIsIGZhS2FhYmEsIGZhVG9pbGV0UGFwZXIsIGZhSGVsbWV0U2FmZXR5LCBmYUhhcmRIYXQsIGZhSGF0SGFyZCwgZmFFamVjdCwgZmFDaXJjbGVSaWdodCwgZmFBcnJvd0FsdENpcmNsZVJpZ2h0LCBmYVBsYW5lQ2lyY2xlQ2hlY2ssIGZhRmFjZVJvbGxpbmdFeWVzLCBmYU1laFJvbGxpbmdFeWVzLCBmYU9iamVjdEdyb3VwLCBmYUNoYXJ0TGluZSwgZmFMaW5lQ2hhcnQsIGZhTWFza1ZlbnRpbGF0b3IsIGZhQXJyb3dSaWdodCwgZmFTaWduc1Bvc3QsIGZhTWFwU2lnbnMsIGZhQ2FzaFJlZ2lzdGVyLCBmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uLCBmYUgsIGZhVGFycCwgZmFTY3Jld2RyaXZlcldyZW5jaCwgZmFUb29scywgZmFBcnJvd3NUb0V5ZSwgZmFQbHVnQ2lyY2xlQm9sdCwgZmFIZWFydCwgZmFNYXJzQW5kVmVudXMsIGZhSG91c2VVc2VyLCBmYUhvbWVVc2VyLCBmYUR1bXBzdGVyRmlyZSwgZmFIb3VzZUNyYWNrLCBmYU1hcnRpbmlHbGFzc0NpdHJ1cywgZmFDb2NrdGFpbCwgZmFGYWNlU3VycHJpc2UsIGZhU3VycHJpc2UsIGZhQm90dGxlV2F0ZXIsIGZhQ2lyY2xlUGF1c2UsIGZhUGF1c2VDaXJjbGUsIGZhVG9pbGV0UGFwZXJTbGFzaCwgZmFBcHBsZVdob2xlLCBmYUFwcGxlQWx0LCBmYUtpdGNoZW5TZXQsIGZhUiwgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsIGZhVGVtcGVyYXR1cmUxLCBmYVRoZXJtb21ldGVyMSwgZmFUaGVybW9tZXRlclF1YXJ0ZXIsIGZhQ3ViZSwgZmFCaXRjb2luU2lnbiwgZmFTaGllbGREb2csIGZhU29sYXJQYW5lbCwgZmFMb2NrT3BlbiwgZmFFbGV2YXRvciwgZmFNb25leUJpbGxUcmFuc2ZlciwgZmFNb25leUJpbGxUcmVuZFVwLCBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsIGZhU3F1YXJlUG9sbEhvcml6b250YWwsIGZhUG9sbEgsIGZhQ2lyY2xlLCBmYUJhY2t3YXJkRmFzdCwgZmFGYXN0QmFja3dhcmQsIGZhUmVjeWNsZSwgZmFVc2VyQXN0cm9uYXV0LCBmYVBsYW5lU2xhc2gsIGZhVHJhZGVtYXJrLCBmYUJhc2tldGJhbGwsIGZhQmFza2V0YmFsbEJhbGwsIGZhU2F0ZWxsaXRlRGlzaCwgZmFDaXJjbGVVcCwgZmFBcnJvd0FsdENpcmNsZVVwLCBmYU1vYmlsZVNjcmVlbkJ1dHRvbiwgZmFNb2JpbGVBbHQsIGZhVm9sdW1lSGlnaCwgZmFWb2x1bWVVcCwgZmFVc2Vyc1JheXMsIGZhV2FsbGV0LCBmYUNsaXBib2FyZENoZWNrLCBmYUZpbGVBdWRpbywgZmFCdXJnZXIsIGZhSGFtYnVyZ2VyLCBmYVdyZW5jaCwgZmFCdWdzLCBmYVJ1cGVlU2lnbiwgZmFSdXBlZSwgZmFGaWxlSW1hZ2UsIGZhQ2lyY2xlUXVlc3Rpb24sIGZhUXVlc3Rpb25DaXJjbGUsIGZhUGxhbmVEZXBhcnR1cmUsIGZhSGFuZHNoYWtlU2xhc2gsIGZhQm9va0Jvb2ttYXJrLCBmYUNvZGVCcmFuY2gsIGZhSGF0Q293Ym95LCBmYUJyaWRnZSwgZmFQaG9uZUZsaXAsIGZhUGhvbmVBbHQsIGZhVHJ1Y2tGcm9udCwgZmFDYXQsIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sIGZhVHJ1Y2tGaWVsZCwgZmFSb3V0ZSwgZmFDbGlwYm9hcmRRdWVzdGlvbiwgZmFQYW5vcmFtYSwgZmFDb21tZW50TWVkaWNhbCwgZmFUZWV0aE9wZW4sIGZhRmlsZUNpcmNsZU1pbnVzLCBmYVRhZ3MsIGZhV2luZUdsYXNzLCBmYUZvcndhcmRGYXN0LCBmYUZhc3RGb3J3YXJkLCBmYUZhY2VNZWhCbGFuaywgZmFNZWhCbGFuaywgZmFTcXVhcmVQYXJraW5nLCBmYVBhcmtpbmcsIGZhSG91c2VTaWduYWwsIGZhQmFyc1Byb2dyZXNzLCBmYVRhc2tzQWx0LCBmYUZhdWNldERyaXAsIGZhQ2FydEZsYXRiZWQsIGZhRG9sbHlGbGF0YmVkLCBmYUJhblNtb2tpbmcsIGZhU21va2luZ0JhbiwgZmFUZXJtaW5hbCwgZmFNb2JpbGVCdXR0b24sIGZhSG91c2VNZWRpY2FsRmxhZywgZmFCYXNrZXRTaG9wcGluZywgZmFTaG9wcGluZ0Jhc2tldCwgZmFUYXBlLCBmYUJ1c1NpbXBsZSwgZmFCdXNBbHQsIGZhRXllLCBmYUZhY2VTYWRDcnksIGZhU2FkQ3J5LCBmYUF1ZGlvRGVzY3JpcHRpb24sIGZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiwgZmFGaWxlU2hpZWxkLCBmYVVzZXJTbGFzaCwgZmFQZW4sIGZhVG93ZXJPYnNlcnZhdGlvbiwgZmFGaWxlQ29kZSwgZmFTaWduYWwsIGZhU2lnbmFsNSwgZmFTaWduYWxQZXJmZWN0LCBmYUJ1cywgZmFIZWFydENpcmNsZVhtYXJrLCBmYUhvdXNlQ2hpbW5leSwgZmFIb21lTGcsIGZhV2luZG93TWF4aW1pemUsIGZhRmFjZUZyb3duLCBmYUZyb3duLCBmYVByZXNjcmlwdGlvbiwgZmFTaG9wLCBmYVN0b3JlQWx0LCBmYUZsb3BweURpc2ssIGZhU2F2ZSwgZmFWaWhhcmEsIGZhU2NhbGVVbmJhbGFuY2VkLCBmYUJhbGFuY2VTY2FsZUxlZnQsIGZhU29ydFVwLCBmYVNvcnRBc2MsIGZhQ29tbWVudERvdHMsIGZhQ29tbWVudGluZywgZmFQbGFudFdpbHQsIGZhRGlhbW9uZCwgZmFGYWNlR3JpblNxdWludCwgZmFHcmluU3F1aW50LCBmYUhhbmRIb2xkaW5nRG9sbGFyLCBmYUhhbmRIb2xkaW5nVXNkLCBmYUJhY3Rlcml1bSwgZmFIYW5kUG9pbnRlciwgZmFEcnVtU3RlZWxwYW4sIGZhSGFuZFNjaXNzb3JzLCBmYUhhbmRzUHJheWluZywgZmFQcmF5aW5nSGFuZHMsIGZhQXJyb3dSb3RhdGVSaWdodCwgZmFBcnJvd1JpZ2h0Um90YXRlLCBmYUFycm93Um90YXRlRm9yd2FyZCwgZmFSZWRvLCBmYVdlYkF3ZXNvbWUsIGZhQmlvaGF6YXJkLCBmYUxvY2F0aW9uQ3Jvc3NoYWlycywgZmFMb2NhdGlvbiwgZmFNYXJzRG91YmxlLCBmYUNoaWxkRHJlc3MsIGZhVXNlcnNCZXR3ZWVuTGluZXMsIGZhTHVuZ3NWaXJ1cywgZmFGYWNlR3JpblRlYXJzLCBmYUdyaW5UZWFycywgZmFQaG9uZSwgZmFDYWxlbmRhclhtYXJrLCBmYUNhbGVuZGFyVGltZXMsIGZhQ2hpbGRSZWFjaGluZywgZmFIZWFkU2lkZVZpcnVzLCBmYVVzZXJHZWFyLCBmYVVzZXJDb2csIGZhQXJyb3dVcDE5LCBmYVNvcnROdW1lcmljVXAsIGZhRG9vckNsb3NlZCwgZmFTaGllbGRWaXJ1cywgZmFEaWNlU2l4LCBmYU1vc3F1aXRvTmV0LCBmYUJyaWRnZVdhdGVyLCBmYVBlcnNvbkJvb3RoLCBmYVRleHRXaWR0aCwgZmFIYXRXaXphcmQsIGZhUGVuRmFuY3ksIGZhUGVyc29uRGlnZ2luZywgZmFEaWdnaW5nLCBmYVRyYXNoLCBmYUdhdWdlU2ltcGxlLCBmYUdhdWdlU2ltcGxlTWVkLCBmYVRhY2hvbWV0ZXJBdmVyYWdlLCBmYUJvb2tNZWRpY2FsLCBmYVBvbywgZmFRdW90ZVJpZ2h0LCBmYVF1b3RlUmlnaHRBbHQsIGZhU2hpcnQsIGZhVFNoaXJ0LCBmYVRzaGlydCwgZmFDdWJlcywgZmFEaXZpZGUsIGZhVGVuZ2VTaWduLCBmYVRlbmdlLCBmYUhlYWRwaG9uZXMsIGZhSGFuZHNIb2xkaW5nLCBmYUhhbmRzQ2xhcHBpbmcsIGZhUmVwdWJsaWNhbiwgZmFBcnJvd0xlZnQsIGZhUGVyc29uQ2lyY2xlWG1hcmssIGZhUnVsZXIsIGZhQWxpZ25MZWZ0LCBmYURpY2VENiwgZmFSZXN0cm9vbSwgZmFKLCBmYVVzZXJzVmlld2ZpbmRlciwgZmFGaWxlVmlkZW8sIGZhVXBSaWdodEZyb21TcXVhcmUsIGZhRXh0ZXJuYWxMaW5rQWx0LCBmYVRhYmxlQ2VsbHMsIGZhVGgsIGZhRmlsZVBkZiwgZmFCb29rQmlibGUsIGZhQmlibGUsIGZhTywgZmFTdWl0Y2FzZU1lZGljYWwsIGZhTWVka2l0LCBmYVVzZXJTZWNyZXQsIGZhT3R0ZXIsIGZhUGVyc29uRHJlc3MsIGZhRmVtYWxlLCBmYUNvbW1lbnREb2xsYXIsIGZhQnVzaW5lc3NUaW1lLCBmYUJyaWVmY2FzZUNsb2NrLCBmYVRhYmxlQ2VsbHNMYXJnZSwgZmFUaExhcmdlLCBmYUJvb2tUYW5ha2gsIGZhVGFuYWtoLCBmYVBob25lVm9sdW1lLCBmYVZvbHVtZUNvbnRyb2xQaG9uZSwgZmFIYXRDb3dib3lTaWRlLCBmYUNsaXBib2FyZFVzZXIsIGZhQ2hpbGQsIGZhTGlyYVNpZ24sIGZhU2F0ZWxsaXRlLCBmYVBsYW5lTG9jaywgZmFUYWcsIGZhQ29tbWVudCwgZmFDYWtlQ2FuZGxlcywgZmFCaXJ0aGRheUNha2UsIGZhQ2FrZSwgZmFFbnZlbG9wZSwgZmFBbmdsZXNVcCwgZmFBbmdsZURvdWJsZVVwLCBmYVBhcGVyY2xpcCwgZmFBcnJvd1JpZ2h0VG9DaXR5LCBmYVJpYmJvbiwgZmFMdW5ncywgZmFBcnJvd1VwOTEsIGZhU29ydE51bWVyaWNVcEFsdCwgZmFMaXRlY29pblNpZ24sIGZhQm9yZGVyTm9uZSwgZmFDaXJjbGVOb2RlcywgZmFQYXJhY2h1dGVCb3gsIGZhSW5kZW50LCBmYVRydWNrRmllbGRVbiwgZmFIb3VyZ2xhc3MsIGZhSG91cmdsYXNzRW1wdHksIGZhTW91bnRhaW4sIGZhVXNlckRvY3RvciwgZmFVc2VyTWQsIGZhQ2lyY2xlSW5mbywgZmFJbmZvQ2lyY2xlLCBmYUNsb3VkTWVhdGJhbGwsIGZhQ2FtZXJhLCBmYUNhbWVyYUFsdCwgZmFTcXVhcmVWaXJ1cywgZmFNZXRlb3IsIGZhQ2FyT24sIGZhU2xlaWdoLCBmYUFycm93RG93bjE5LCBmYVNvcnROdW1lcmljQXNjLCBmYVNvcnROdW1lcmljRG93biwgZmFIYW5kSG9sZGluZ0Ryb3BsZXQsIGZhSGFuZEhvbGRpbmdXYXRlciwgZmFXYXRlciwgZmFDYWxlbmRhckNoZWNrLCBmYUJyYWlsbGUsIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCwgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsIGZhTGFuZG1hcmssIGZhVHJ1Y2ssIGZhQ3Jvc3NoYWlycywgZmFQZXJzb25DYW5lLCBmYVRlbnQsIGZhVmVzdFBhdGNoZXMsIGZhQ2hlY2tEb3VibGUsIGZhQXJyb3dEb3duQVosIGZhU29ydEFscGhhQXNjLCBmYVNvcnRBbHBoYURvd24sIGZhTW9uZXlCaWxsV2hlYXQsIGZhQ29va2llLCBmYUFycm93Um90YXRlTGVmdCwgZmFBcnJvd0xlZnRSb3RhdGUsIGZhQXJyb3dSb3RhdGVCYWNrLCBmYUFycm93Um90YXRlQmFja3dhcmQsIGZhVW5kbywgZmFIYXJkRHJpdmUsIGZhSGRkLCBmYUZhY2VHcmluU3F1aW50VGVhcnMsIGZhR3JpblNxdWludFRlYXJzLCBmYUR1bWJiZWxsLCBmYVJlY3RhbmdsZUxpc3QsIGZhTGlzdEFsdCwgZmFUYXJwRHJvcGxldCwgZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjaywgZmFQZXJzb25Ta2lpbmdOb3JkaWMsIGZhU2tpaW5nTm9yZGljLCBmYUNhbGVuZGFyUGx1cywgZmFQbGFuZUFycml2YWwsIGZhQ2lyY2xlTGVmdCwgZmFBcnJvd0FsdENpcmNsZUxlZnQsIGZhVHJhaW5TdWJ3YXksIGZhU3Vid2F5LCBmYUNoYXJ0R2FudHQsIGZhSW5kaWFuUnVwZWVTaWduLCBmYUluZGlhblJ1cGVlLCBmYUluciwgZmFDcm9wU2ltcGxlLCBmYUNyb3BBbHQsIGZhTW9uZXlCaWxsMSwgZmFNb25leUJpbGxBbHQsIGZhTGVmdExvbmcsIGZhTG9uZ0Fycm93QWx0TGVmdCwgZmFEbmEsIGZhVmlydXNTbGFzaCwgZmFNaW51cywgZmFTdWJ0cmFjdCwgZmFDaGVzcywgZmFBcnJvd0xlZnRMb25nLCBmYUxvbmdBcnJvd0xlZnQsIGZhUGx1Z0NpcmNsZUNoZWNrLCBmYVN0cmVldFZpZXcsIGZhRnJhbmNTaWduLCBmYVZvbHVtZU9mZiwgZmFIYW5kc0FzbEludGVycHJldGluZywgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZywgZmFBc2xJbnRlcnByZXRpbmcsIGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZywgZmFHZWFyLCBmYUNvZywgZmFEcm9wbGV0U2xhc2gsIGZhVGludFNsYXNoLCBmYU1vc3F1ZSwgZmFNb3NxdWl0bywgZmFTdGFyT2ZEYXZpZCwgZmFQZXJzb25NaWxpdGFyeVJpZmxlLCBmYUNhcnRTaG9wcGluZywgZmFTaG9wcGluZ0NhcnQsIGZhVmlhbHMsIGZhUGx1Z0NpcmNsZVBsdXMsIGZhUGxhY2VPZldvcnNoaXAsIGZhR3JpcFZlcnRpY2FsLCBmYUFycm93VHVyblVwLCBmYUxldmVsVXAsIGZhVSwgZmFTcXVhcmVSb290VmFyaWFibGUsIGZhU3F1YXJlUm9vdEFsdCwgZmFDbG9jaywgZmFDbG9ja0ZvdXIsIGZhQmFja3dhcmRTdGVwLCBmYVN0ZXBCYWNrd2FyZCwgZmFQYWxsZXQsIGZhRmF1Y2V0LCBmYUJhc2ViYWxsQmF0QmFsbCwgZmFTLCBmYVRpbWVsaW5lLCBmYUtleWJvYXJkLCBmYUNhcmV0RG93biwgZmFIb3VzZUNoaW1uZXlNZWRpY2FsLCBmYUNsaW5pY01lZGljYWwsIGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzLCBmYVRlbXBlcmF0dXJlMywgZmFUaGVybW9tZXRlcjMsIGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzLCBmYU1vYmlsZVNjcmVlbiwgZmFNb2JpbGVBbmRyb2lkQWx0LCBmYVBsYW5lVXAsIGZhUGlnZ3lCYW5rLCBmYUJhdHRlcnlIYWxmLCBmYUJhdHRlcnkzLCBmYU1vdW50YWluQ2l0eSwgZmFDb2lucywgZmFLaGFuZGEsIGZhU2xpZGVycywgZmFTbGlkZXJzSCwgZmFGb2xkZXJUcmVlLCBmYU5ldHdvcmtXaXJlZCwgZmFNYXBQaW4sIGZhSGFtc2EsIGZhQ2VudFNpZ24sIGZhRmxhc2ssIGZhUGVyc29uUHJlZ25hbnQsIGZhV2FuZFNwYXJrbGVzLCBmYUVsbGlwc2lzVmVydGljYWwsIGZhRWxsaXBzaXNWLCBmYVRpY2tldCwgZmFQb3dlck9mZiwgZmFSaWdodExvbmcsIGZhTG9uZ0Fycm93QWx0UmlnaHQsIGZhRmxhZ1VzYSwgZmFMYXB0b3BGaWxlLCBmYVR0eSwgZmFUZWxldHlwZSwgZmFEaWFncmFtTmV4dCwgZmFQZXJzb25SaWZsZSwgZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbiwgZmFDbG9zZWRDYXB0aW9uaW5nLCBmYVBlcnNvbkhpa2luZywgZmFIaWtpbmcsIGZhVmVudXNEb3VibGUsIGZhSW1hZ2VzLCBmYUNhbGN1bGF0b3IsIGZhUGVvcGxlUHVsbGluZywgZmFOLCBmYUNhYmxlQ2FyLCBmYVRyYW0sIGZhQ2xvdWRSYWluLCBmYUJ1aWxkaW5nQ2lyY2xlWG1hcmssIGZhU2hpcCwgZmFBcnJvd3NEb3duVG9MaW5lLCBmYURvd25sb2FkLCBmYUZhY2VHcmluLCBmYUdyaW4sIGZhRGVsZXRlTGVmdCwgZmFCYWNrc3BhY2UsIGZhRXllRHJvcHBlciwgZmFFeWVEcm9wcGVyRW1wdHksIGZhRXllZHJvcHBlciwgZmFGaWxlQ2lyY2xlQ2hlY2ssIGZhRm9yd2FyZCwgZmFNb2JpbGUsIGZhTW9iaWxlQW5kcm9pZCwgZmFNb2JpbGVQaG9uZSwgZmFGYWNlTWVoLCBmYU1laCwgZmFBbGlnbkNlbnRlciwgZmFCb29rU2t1bGwsIGZhQm9va0RlYWQsIGZhSWRDYXJkLCBmYURyaXZlcnNMaWNlbnNlLCBmYU91dGRlbnQsIGZhRGVkZW50LCBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24sIGZhSG91c2UsIGZhSG9tZSwgZmFIb21lQWx0LCBmYUhvbWVMZ0FsdCwgZmFDYWxlbmRhcldlZWssIGZhTGFwdG9wTWVkaWNhbCwgZmFCLCBmYUZpbGVNZWRpY2FsLCBmYURpY2VPbmUsIGZhS2l3aUJpcmQsIGZhQXJyb3dSaWdodEFycm93TGVmdCwgZmFFeGNoYW5nZSwgZmFSb3RhdGVSaWdodCwgZmFSZWRvQWx0LCBmYVJvdGF0ZUZvcndhcmQsIGZhVXRlbnNpbHMsIGZhQ3V0bGVyeSwgZmFBcnJvd1VwV2lkZVNob3J0LCBmYVNvcnRBbW91bnRVcCwgZmFNaWxsU2lnbiwgZmFCb3dsUmljZSwgZmFTa3VsbCwgZmFUb3dlckJyb2FkY2FzdCwgZmFCcm9hZGNhc3RUb3dlciwgZmFUcnVja1BpY2t1cCwgZmFVcExvbmcsIGZhTG9uZ0Fycm93QWx0VXAsIGZhU3RvcCwgZmFDb2RlTWVyZ2UsIGZhVXBsb2FkLCBmYUh1cnJpY2FuZSwgZmFNb3VuZCwgZmFUb2lsZXRQb3J0YWJsZSwgZmFDb21wYWN0RGlzYywgZmFGaWxlQXJyb3dEb3duLCBmYUZpbGVEb3dubG9hZCwgZmFDYXJhdmFuLCBmYVNoaWVsZENhdCwgZmFCb2x0LCBmYVphcCwgZmFHbGFzc1dhdGVyLCBmYU9pbFdlbGwsIGZhVmF1bHQsIGZhTWFycywgZmFUb2lsZXQsIGZhUGxhbmVDaXJjbGVYbWFyaywgZmFZZW5TaWduLCBmYUNueSwgZmFKcHksIGZhUm1iLCBmYVllbiwgZmFSdWJsZVNpZ24sIGZhUm91YmxlLCBmYVJ1YiwgZmFSdWJsZSwgZmFTdW4sIGZhR3VpdGFyLCBmYUZhY2VMYXVnaFdpbmssIGZhTGF1Z2hXaW5rLCBmYUhvcnNlSGVhZCwgZmFCb3JlSG9sZSwgZmFJbmR1c3RyeSwgZmFDaXJjbGVEb3duLCBmYUFycm93QWx0Q2lyY2xlRG93biwgZmFBcnJvd3NUdXJuVG9Eb3RzLCBmYUZsb3JpblNpZ24sIGZhQXJyb3dEb3duU2hvcnRXaWRlLCBmYVNvcnRBbW91bnREZXNjLCBmYVNvcnRBbW91bnREb3duQWx0LCBmYUxlc3NUaGFuLCBmYUFuZ2xlRG93biwgZmFDYXJUdW5uZWwsIGZhSGVhZFNpZGVDb3VnaCwgZmFHcmlwTGluZXMsIGZhVGh1bWJzRG93biwgZmFVc2VyTG9jaywgZmFBcnJvd1JpZ2h0TG9uZywgZmFMb25nQXJyb3dSaWdodCwgZmFBbmNob3JDaXJjbGVYbWFyaywgZmFFbGxpcHNpcywgZmFFbGxpcHNpc0gsIGZhQ2hlc3NQYXduLCBmYUtpdE1lZGljYWwsIGZhRmlyc3RBaWQsIGZhUGVyc29uVGhyb3VnaFdpbmRvdywgZmFUb29sYm94LCBmYUhhbmRzSG9sZGluZ0NpcmNsZSwgZmFCdWcsIGZhQ3JlZGl0Q2FyZCwgZmFDcmVkaXRDYXJkQWx0LCBmYUNhciwgZmFBdXRvbW9iaWxlLCBmYUhhbmRIb2xkaW5nSGFuZCwgZmFCb29rT3BlblJlYWRlciwgZmFCb29rUmVhZGVyLCBmYU1vdW50YWluU3VuLCBmYUFycm93c0xlZnRSaWdodFRvTGluZSwgZmFEaWNlRDIwLCBmYVRydWNrRHJvcGxldCwgZmFGaWxlQ2lyY2xlWG1hcmssIGZhVGVtcGVyYXR1cmVBcnJvd1VwLCBmYVRlbXBlcmF0dXJlVXAsIGZhTWVkYWwsIGZhQmVkLCBmYVNxdWFyZUgsIGZhSFNxdWFyZSwgZmFQb2RjYXN0LCBmYVRlbXBlcmF0dXJlRnVsbCwgZmFUZW1wZXJhdHVyZTQsIGZhVGhlcm1vbWV0ZXI0LCBmYVRoZXJtb21ldGVyRnVsbCwgZmFCZWxsLCBmYVN1cGVyc2NyaXB0LCBmYVBsdWdDaXJjbGVYbWFyaywgZmFTdGFyT2ZMaWZlLCBmYVBob25lU2xhc2gsIGZhUGFpbnRSb2xsZXIsIGZhSGFuZHNoYWtlQW5nbGUsIGZhSGFuZHNIZWxwaW5nLCBmYUxvY2F0aW9uRG90LCBmYU1hcE1hcmtlckFsdCwgZmFGaWxlLCBmYUdyZWF0ZXJUaGFuLCBmYVBlcnNvblN3aW1taW5nLCBmYVN3aW1tZXIsIGZhQXJyb3dEb3duLCBmYURyb3BsZXQsIGZhVGludCwgZmFFcmFzZXIsIGZhRWFydGhBbWVyaWNhcywgZmFFYXJ0aCwgZmFFYXJ0aEFtZXJpY2EsIGZhR2xvYmVBbWVyaWNhcywgZmFQZXJzb25CdXJzdCwgZmFEb3ZlLCBmYUJhdHRlcnlFbXB0eSwgZmFCYXR0ZXJ5MCwgZmFTb2NrcywgZmFJbmJveCwgZmFTZWN0aW9uLCBmYUdhdWdlSGlnaCwgZmFUYWNob21ldGVyQWx0LCBmYVRhY2hvbWV0ZXJBbHRGYXN0LCBmYUVudmVsb3BlT3BlblRleHQsIGZhSG9zcGl0YWwsIGZhSG9zcGl0YWxBbHQsIGZhSG9zcGl0YWxXaWRlLCBmYVdpbmVCb3R0bGUsIGZhQ2hlc3NSb29rLCBmYUJhcnNTdGFnZ2VyZWQsIGZhUmVvcmRlciwgZmFTdHJlYW0sIGZhRGhhcm1hY2hha3JhLCBmYUhvdGRvZywgZmFQZXJzb25XYWxraW5nV2l0aENhbmUsIGZhQmxpbmQsIGZhRHJ1bSwgZmFJY2VDcmVhbSwgZmFIZWFydENpcmNsZUJvbHQsIGZhRmF4LCBmYVBhcmFncmFwaCwgZmFDaGVja1RvU2xvdCwgZmFWb3RlWWVhLCBmYVN0YXJIYWxmLCBmYUJveGVzU3RhY2tlZCwgZmFCb3hlcywgZmFCb3hlc0FsdCwgZmFMaW5rLCBmYUNoYWluLCBmYUVhckxpc3RlbiwgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLCBmYVRyZWVDaXR5LCBmYVBsYXksIGZhRm9udCwgZmFUYWJsZUNlbGxzUm93TG9jaywgZmFSdXBpYWhTaWduLCBmYU1hZ25pZnlpbmdHbGFzcywgZmFTZWFyY2gsIGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsLCBmYVBpbmdQb25nUGFkZGxlQmFsbCwgZmFUYWJsZVRlbm5pcywgZmFQZXJzb25Eb3RzRnJvbUxpbmUsIGZhRGlhZ25vc2VzLCBmYVRyYXNoQ2FuQXJyb3dVcCwgZmFUcmFzaFJlc3RvcmVBbHQsIGZhTmFpcmFTaWduLCBmYUNhcnRBcnJvd0Rvd24sIGZhV2Fsa2llVGFsa2llLCBmYUZpbGVQZW4sIGZhRmlsZUVkaXQsIGZhUmVjZWlwdCwgZmFTcXVhcmVQZW4sIGZhUGVuU3F1YXJlLCBmYVBlbmNpbFNxdWFyZSwgZmFTdWl0Y2FzZVJvbGxpbmcsIGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb24sIGZhQ2hldnJvbkRvd24sIGZhQmF0dGVyeUZ1bGwsIGZhQmF0dGVyeSwgZmFCYXR0ZXJ5NSwgZmFTa3VsbENyb3NzYm9uZXMsIGZhQ29kZUNvbXBhcmUsIGZhTGlzdFVsLCBmYUxpc3REb3RzLCBmYVNjaG9vbExvY2ssIGZhVG93ZXJDZWxsLCBmYURvd25Mb25nLCBmYUxvbmdBcnJvd0FsdERvd24sIGZhUmFua2luZ1N0YXIsIGZhQ2hlc3NLaW5nLCBmYVBlcnNvbkhhcmFzc2luZywgZmFCcmF6aWxpYW5SZWFsU2lnbiwgZmFMYW5kbWFya0RvbWUsIGZhTGFuZG1hcmtBbHQsIGZhQXJyb3dVcCwgZmFUdiwgZmFUZWxldmlzaW9uLCBmYVR2QWx0LCBmYVNocmltcCwgZmFMaXN0Q2hlY2ssIGZhVGFza3MsIGZhSnVnRGV0ZXJnZW50LCBmYUNpcmNsZVVzZXIsIGZhVXNlckNpcmNsZSwgZmFVc2VyU2hpZWxkLCBmYVdpbmQsIGZhQ2FyQnVyc3QsIGZhQ2FyQ3Jhc2gsIGZhWSwgZmFQZXJzb25Tbm93Ym9hcmRpbmcsIGZhU25vd2JvYXJkaW5nLCBmYVRydWNrRmFzdCwgZmFTaGlwcGluZ0Zhc3QsIGZhRmlzaCwgZmFVc2VyR3JhZHVhdGUsIGZhQ2lyY2xlSGFsZlN0cm9rZSwgZmFBZGp1c3QsIGZhQ2xhcHBlcmJvYXJkLCBmYUNpcmNsZVJhZGlhdGlvbiwgZmFSYWRpYXRpb25BbHQsIGZhQmFzZWJhbGwsIGZhQmFzZWJhbGxCYWxsLCBmYUpldEZpZ2h0ZXJVcCwgZmFEaWFncmFtUHJvamVjdCwgZmFQcm9qZWN0RGlhZ3JhbSwgZmFDb3B5LCBmYVZvbHVtZVhtYXJrLCBmYVZvbHVtZU11dGUsIGZhVm9sdW1lVGltZXMsIGZhSGFuZFNwYXJrbGVzLCBmYUdyaXAsIGZhR3JpcEhvcml6b250YWwsIGZhU2hhcmVGcm9tU3F1YXJlLCBmYVNoYXJlU3F1YXJlLCBmYUNoaWxkQ29tYmF0YW50LCBmYUNoaWxkUmlmbGUsIGZhR3VuLCBmYVNxdWFyZVBob25lLCBmYVBob25lU3F1YXJlLCBmYVBsdXMsIGZhQWRkLCBmYUV4cGFuZCwgZmFDb21wdXRlciwgZmFYbWFyaywgZmFDbG9zZSwgZmFNdWx0aXBseSwgZmFSZW1vdmUsIGZhVGltZXMsIGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0LCBmYUFycm93cywgZmFDaGFsa2JvYXJkVXNlciwgZmFDaGFsa2JvYXJkVGVhY2hlciwgZmFQZXNvU2lnbiwgZmFCdWlsZGluZ1NoaWVsZCwgZmFCYWJ5LCBmYVVzZXJzTGluZSwgZmFRdW90ZUxlZnQsIGZhUXVvdGVMZWZ0QWx0LCBmYVRyYWN0b3IsIGZhVHJhc2hBcnJvd1VwLCBmYVRyYXNoUmVzdG9yZSwgZmFBcnJvd0Rvd25VcExvY2ssIGZhTGluZXNMZWFuaW5nLCBmYVJ1bGVyQ29tYmluZWQsIGZhQ29weXJpZ2h0LCBmYUVxdWFscywgZmFCbGVuZGVyLCBmYVRlZXRoLCBmYVNoZWtlbFNpZ24sIGZhSWxzLCBmYVNoZWtlbCwgZmFTaGVxZWwsIGZhU2hlcWVsU2lnbiwgZmFNYXAsIGZhUm9ja2V0LCBmYVBob3RvRmlsbSwgZmFQaG90b1ZpZGVvLCBmYUZvbGRlck1pbnVzLCBmYVN0b3JlLCBmYUFycm93VHJlbmRVcCwgZmFQbHVnQ2lyY2xlTWludXMsIGZhU2lnbkhhbmdpbmcsIGZhU2lnbiwgZmFCZXppZXJDdXJ2ZSwgZmFCZWxsU2xhc2gsIGZhVGFibGV0LCBmYVRhYmxldEFuZHJvaWQsIGZhU2Nob29sRmxhZywgZmFGaWxsLCBmYUFuZ2xlVXAsIGZhRHJ1bXN0aWNrQml0ZSwgZmFIb2xseUJlcnJ5LCBmYUNoZXZyb25MZWZ0LCBmYUJhY3RlcmlhLCBmYUhhbmRMaXphcmQsIGZhTm90ZGVmLCBmYURpc2Vhc2UsIGZhQnJpZWZjYXNlTWVkaWNhbCwgZmFHZW5kZXJsZXNzLCBmYUNoZXZyb25SaWdodCwgZmFSZXR3ZWV0LCBmYUNhclJlYXIsIGZhQ2FyQWx0LCBmYVB1bXBTb2FwLCBmYVZpZGVvU2xhc2gsIGZhQmF0dGVyeVF1YXJ0ZXIsIGZhQmF0dGVyeTIsIGZhUmFkaW8sIGZhQmFieUNhcnJpYWdlLCBmYUNhcnJpYWdlQmFieSwgZmFUcmFmZmljTGlnaHQsIGZhVGhlcm1vbWV0ZXIsIGZhVnJDYXJkYm9hcmQsIGZhSGFuZE1pZGRsZUZpbmdlciwgZmFQZXJjZW50LCBmYVBlcmNlbnRhZ2UsIGZhVHJ1Y2tNb3ZpbmcsIGZhR2xhc3NXYXRlckRyb3BsZXQsIGZhRGlzcGxheSwgZmFGYWNlU21pbGUsIGZhU21pbGUsIGZhVGh1bWJ0YWNrLCBmYVRodW1iVGFjaywgZmFUcm9waHksIGZhUGVyc29uUHJheWluZywgZmFQcmF5LCBmYUhhbW1lciwgZmFIYW5kUGVhY2UsIGZhUm90YXRlLCBmYVN5bmNBbHQsIGZhU3Bpbm5lciwgZmFSb2JvdCwgZmFQZWFjZSwgZmFHZWFycywgZmFDb2dzLCBmYVdhcmVob3VzZSwgZmFBcnJvd1VwUmlnaHREb3RzLCBmYVNwbG90Y2gsIGZhRmFjZUdyaW5IZWFydHMsIGZhR3JpbkhlYXJ0cywgZmFEaWNlRm91ciwgZmFTaW1DYXJkLCBmYVRyYW5zZ2VuZGVyLCBmYVRyYW5zZ2VuZGVyQWx0LCBmYU1lcmN1cnksIGZhQXJyb3dUdXJuRG93biwgZmFMZXZlbERvd24sIGZhUGVyc29uRmFsbGluZ0J1cnN0LCBmYUF3YXJkLCBmYVRpY2tldFNpbXBsZSwgZmFUaWNrZXRBbHQsIGZhQnVpbGRpbmcsIGZhQW5nbGVzTGVmdCwgZmFBbmdsZURvdWJsZUxlZnQsIGZhUXJjb2RlLCBmYUNsb2NrUm90YXRlTGVmdCwgZmFIaXN0b3J5LCBmYUZhY2VHcmluQmVhbVN3ZWF0LCBmYUdyaW5CZWFtU3dlYXQsIGZhRmlsZUV4cG9ydCwgZmFBcnJvd1JpZ2h0RnJvbUZpbGUsIGZhU2hpZWxkLCBmYVNoaWVsZEJsYW5rLCBmYUFycm93VXBTaG9ydFdpZGUsIGZhU29ydEFtb3VudFVwQWx0LCBmYUhvdXNlTWVkaWNhbCwgZmFHb2xmQmFsbFRlZSwgZmFHb2xmQmFsbCwgZmFDaXJjbGVDaGV2cm9uTGVmdCwgZmFDaGV2cm9uQ2lyY2xlTGVmdCwgZmFIb3VzZUNoaW1uZXlXaW5kb3csIGZhUGVuTmliLCBmYVRlbnRBcnJvd1R1cm5MZWZ0LCBmYVRlbnRzLCBmYVdhbmRNYWdpYywgZmFNYWdpYywgZmFEb2csIGZhQ2Fycm90LCBmYU1vb24sIGZhV2luZUdsYXNzRW1wdHksIGZhV2luZUdsYXNzQWx0LCBmYUNoZWVzZSwgZmFZaW5ZYW5nLCBmYU11c2ljLCBmYUNvZGVDb21taXQsIGZhVGVtcGVyYXR1cmVMb3csIGZhUGVyc29uQmlraW5nLCBmYUJpa2luZywgZmFCcm9vbSwgZmFTaGllbGRIZWFydCwgZmFHb3B1cmFtLCBmYUVhcnRoT2NlYW5pYSwgZmFHbG9iZU9jZWFuaWEsIGZhU3F1YXJlWG1hcmssIGZhVGltZXNTcXVhcmUsIGZhWG1hcmtTcXVhcmUsIGZhSGFzaHRhZywgZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyLCBmYUV4cGFuZEFsdCwgZmFPaWxDYW4sIGZhVCwgZmFIaXBwbywgZmFDaGFydENvbHVtbiwgZmFJbmZpbml0eSwgZmFWaWFsQ2lyY2xlQ2hlY2ssIGZhUGVyc29uQXJyb3dEb3duVG9MaW5lLCBmYVZvaWNlbWFpbCwgZmFGYW4sIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsIGZhVXBEb3duLCBmYUFycm93c0FsdFYsIGZhQ2xvdWRNb29uUmFpbiwgZmFDYWxlbmRhciwgZmFUcmFpbGVyLCBmYUJhaGFpLCBmYUhheWthbCwgZmFTZENhcmQsIGZhRHJhZ29uLCBmYVNob2VQcmludHMsIGZhQ2lyY2xlUGx1cywgZmFQbHVzQ2lyY2xlLCBmYUZhY2VHcmluVG9uZ3VlV2luaywgZmFHcmluVG9uZ3VlV2luaywgZmFIYW5kSG9sZGluZywgZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb24sIGZhTGlua1NsYXNoLCBmYUNoYWluQnJva2VuLCBmYUNoYWluU2xhc2gsIGZhVW5saW5rLCBmYUNsb25lLCBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0LCBmYUFycm93VXBaQSwgZmFTb3J0QWxwaGFVcEFsdCwgZmFGaXJlRmxhbWVDdXJ2ZWQsIGZhRmlyZUFsdCwgZmFUb3JuYWRvLCBmYUZpbGVDaXJjbGVQbHVzLCBmYUJvb2tRdXJhbiwgZmFRdXJhbiwgZmFBbmNob3IsIGZhQm9yZGVyQWxsLCBmYUZhY2VBbmdyeSwgZmFBbmdyeSwgZmFDb29raWVCaXRlLCBmYUFycm93VHJlbmREb3duLCBmYVJzcywgZmFGZWVkLCBmYURyYXdQb2x5Z29uLCBmYVNjYWxlQmFsYW5jZWQsIGZhQmFsYW5jZVNjYWxlLCBmYUdhdWdlU2ltcGxlSGlnaCwgZmFUYWNob21ldGVyLCBmYVRhY2hvbWV0ZXJGYXN0LCBmYVNob3dlciwgZmFEZXNrdG9wLCBmYURlc2t0b3BBbHQsIGZhTSwgZmFUYWJsZUxpc3QsIGZhVGhMaXN0LCBmYUNvbW1lbnRTbXMsIGZhU21zLCBmYUJvb2ssIGZhVXNlclBsdXMsIGZhQ2hlY2ssIGZhQmF0dGVyeVRocmVlUXVhcnRlcnMsIGZhQmF0dGVyeTQsIGZhSG91c2VDaXJjbGVDaGVjaywgZmFBbmdsZUxlZnQsIGZhRGlhZ3JhbVN1Y2Nlc3NvciwgZmFUcnVja0Fycm93UmlnaHQsIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsIGZhSGFuZEZpc3QsIGZhRmlzdFJhaXNlZCwgZmFDbG91ZE1vb24sIGZhQnJpZWZjYXNlLCBmYVBlcnNvbkZhbGxpbmcsIGZhSW1hZ2VQb3J0cmFpdCwgZmFQb3J0cmFpdCwgZmFVc2VyVGFnLCBmYVJ1ZywgZmFFYXJ0aEV1cm9wZSwgZmFHbG9iZUV1cm9wZSwgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlLCBmYUx1Z2dhZ2VDYXJ0LCBmYVJlY3RhbmdsZVhtYXJrLCBmYVJlY3RhbmdsZVRpbWVzLCBmYVRpbWVzUmVjdGFuZ2xlLCBmYVdpbmRvd0Nsb3NlLCBmYUJhaHRTaWduLCBmYUJvb2tPcGVuLCBmYUJvb2tKb3VybmFsV2hpbGxzLCBmYUpvdXJuYWxXaGlsbHMsIGZhSGFuZGN1ZmZzLCBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sIGZhRXhjbGFtYXRpb25UcmlhbmdsZSwgZmFXYXJuaW5nLCBmYURhdGFiYXNlLCBmYVNoYXJlLCBmYU1haWxGb3J3YXJkLCBmYUJvdHRsZURyb3BsZXQsIGZhTWFza0ZhY2UsIGZhSGlsbFJvY2tzbGlkZSwgZmFSaWdodExlZnQsIGZhRXhjaGFuZ2VBbHQsIGZhUGFwZXJQbGFuZSwgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sIGZhRHVuZ2VvbiwgZmFBbGlnblJpZ2h0LCBmYU1vbmV5QmlsbDFXYXZlLCBmYU1vbmV5QmlsbFdhdmVBbHQsIGZhTGlmZVJpbmcsIGZhSGFuZHMsIGZhU2lnbkxhbmd1YWdlLCBmYVNpZ25pbmcsIGZhQ2FsZW5kYXJEYXksIGZhV2F0ZXJMYWRkZXIsIGZhTGFkZGVyV2F0ZXIsIGZhU3dpbW1pbmdQb29sLCBmYUFycm93c1VwRG93biwgZmFBcnJvd3NWLCBmYUZhY2VHcmltYWNlLCBmYUdyaW1hY2UsIGZhV2hlZWxjaGFpck1vdmUsIGZhV2hlZWxjaGFpckFsdCwgZmFUdXJuRG93biwgZmFMZXZlbERvd25BbHQsIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsIGZhU3F1YXJlRW52ZWxvcGUsIGZhRW52ZWxvcGVTcXVhcmUsIGZhRGljZSwgZmFCb3dsaW5nQmFsbCwgZmFCcmFpbiwgZmFCYW5kYWdlLCBmYUJhbmRBaWQsIGZhQ2FsZW5kYXJNaW51cywgZmFDaXJjbGVYbWFyaywgZmFUaW1lc0NpcmNsZSwgZmFYbWFya0NpcmNsZSwgZmFHaWZ0cywgZmFIb3RlbCwgZmFFYXJ0aEFzaWEsIGZhR2xvYmVBc2lhLCBmYUlkQ2FyZENsaXAsIGZhSWRDYXJkQWx0LCBmYU1hZ25pZnlpbmdHbGFzc1BsdXMsIGZhU2VhcmNoUGx1cywgZmFUaHVtYnNVcCwgZmFVc2VyQ2xvY2ssIGZhSGFuZERvdHMsIGZhQWxsZXJnaWVzLCBmYUZpbGVJbnZvaWNlLCBmYVdpbmRvd01pbmltaXplLCBmYU11Z1NhdWNlciwgZmFDb2ZmZWUsIGZhQnJ1c2gsIGZhTWFzaywgZmFNYWduaWZ5aW5nR2xhc3NNaW51cywgZmFTZWFyY2hNaW51cywgZmFSdWxlclZlcnRpY2FsLCBmYVVzZXJMYXJnZSwgZmFVc2VyQWx0LCBmYVRyYWluVHJhbSwgZmFVc2VyTnVyc2UsIGZhU3lyaW5nZSwgZmFDbG91ZFN1biwgZmFTdG9wd2F0Y2gyMCwgZmFTcXVhcmVGdWxsLCBmYU1hZ25ldCwgZmFKYXIsIGZhTm90ZVN0aWNreSwgZmFTdGlja3lOb3RlLCBmYUJ1Z1NsYXNoLCBmYUFycm93VXBGcm9tV2F0ZXJQdW1wLCBmYUJvbmUsIGZhVGFibGVDZWxsc1Jvd1VubG9jaywgZmFVc2VySW5qdXJlZCwgZmFGYWNlU2FkVGVhciwgZmFTYWRUZWFyLCBmYVBsYW5lLCBmYVRlbnRBcnJvd3NEb3duLCBmYUV4Y2xhbWF0aW9uLCBmYUFycm93c1NwaW4sIGZhUHJpbnQsIGZhVHVya2lzaExpcmFTaWduLCBmYVRyeSwgZmFUdXJraXNoTGlyYSwgZmFEb2xsYXJTaWduLCBmYURvbGxhciwgZmFVc2QsIGZhWCwgZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIsIGZhU2VhcmNoRG9sbGFyLCBmYVVzZXJzR2VhciwgZmFVc2Vyc0NvZywgZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nLCBmYUJ1aWxkaW5nQ29sdW1ucywgZmFCYW5rLCBmYUluc3RpdHV0aW9uLCBmYU11c2V1bSwgZmFVbml2ZXJzaXR5LCBmYVVtYnJlbGxhLCBmYVRyb3dlbCwgZmFELCBmYVN0YXBsZXIsIGZhTWFza3NUaGVhdGVyLCBmYVRoZWF0ZXJNYXNrcywgZmFLaXBTaWduLCBmYUhhbmRQb2ludExlZnQsIGZhSGFuZHNoYWtlU2ltcGxlLCBmYUhhbmRzaGFrZUFsdCwgZmFKZXRGaWdodGVyLCBmYUZpZ2h0ZXJKZXQsIGZhU3F1YXJlU2hhcmVOb2RlcywgZmFTaGFyZUFsdFNxdWFyZSwgZmFCYXJjb2RlLCBmYVBsdXNNaW51cywgZmFWaWRlbywgZmFWaWRlb0NhbWVyYSwgZmFHcmFkdWF0aW9uQ2FwLCBmYU1vcnRhckJvYXJkLCBmYUhhbmRIb2xkaW5nTWVkaWNhbCwgZmFQZXJzb25DaXJjbGVDaGVjaywgZmFUdXJuVXAsIGZhTGV2ZWxVcEFsdCB9O1xuIiwgImNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxubGV0IF9XSU5ET1cgPSB7fTtcbmxldCBfRE9DVU1FTlQgPSB7fTtcbmxldCBfTVVUQVRJT05fT0JTRVJWRVIgPSBudWxsO1xubGV0IF9QRVJGT1JNQU5DRSA9IHtcbiAgbWFyazogbm9vcCxcbiAgbWVhc3VyZTogbm9vcFxufTtcblxudHJ5IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSBfV0lORE9XID0gd2luZG93O1xuICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykgX0RPQ1VNRU5UID0gZG9jdW1lbnQ7XG4gIGlmICh0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIF9NVVRBVElPTl9PQlNFUlZFUiA9IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnKSBfUEVSRk9STUFOQ0UgPSBwZXJmb3JtYW5jZTtcbn0gY2F0Y2ggKGUpIHt9XG5cbmNvbnN0IHtcbiAgdXNlckFnZW50ID0gJydcbn0gPSBfV0lORE9XLm5hdmlnYXRvciB8fCB7fTtcbmNvbnN0IFdJTkRPVyA9IF9XSU5ET1c7XG5jb25zdCBET0NVTUVOVCA9IF9ET0NVTUVOVDtcbmNvbnN0IE1VVEFUSU9OX09CU0VSVkVSID0gX01VVEFUSU9OX09CU0VSVkVSO1xuY29uc3QgUEVSRk9STUFOQ0UgPSBfUEVSRk9STUFOQ0U7XG5jb25zdCBJU19CUk9XU0VSID0gISFXSU5ET1cuZG9jdW1lbnQ7XG5jb25zdCBJU19ET00gPSAhIURPQ1VNRU5ULmRvY3VtZW50RWxlbWVudCAmJiAhIURPQ1VNRU5ULmhlYWQgJiYgdHlwZW9mIERPQ1VNRU5ULmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQgPT09ICdmdW5jdGlvbic7XG5jb25zdCBJU19JRSA9IH51c2VyQWdlbnQuaW5kZXhPZignTVNJRScpIHx8IH51c2VyQWdlbnQuaW5kZXhPZignVHJpZGVudC8nKTtcblxudmFyIGEgPSBcImNsYXNzaWNcIixcbiAgICB0ID0gXCJkdW90b25lXCIsXG4gICAgciA9IFwic2hhcnBcIixcbiAgICBvID0gXCJzaGFycC1kdW90b25lXCIsXG4gICAgYyA9IFthLCB0LCByLCBvXTtcblxudmFyIGV0JDEgPSB7XG4gIGNsYXNzaWM6IHtcbiAgICA5MDA6IFwiZmFzXCIsXG4gICAgNDAwOiBcImZhclwiLFxuICAgIG5vcm1hbDogXCJmYXJcIixcbiAgICAzMDA6IFwiZmFsXCIsXG4gICAgMTAwOiBcImZhdFwiXG4gIH0sXG4gIHNoYXJwOiB7XG4gICAgOTAwOiBcImZhc3NcIixcbiAgICA0MDA6IFwiZmFzclwiLFxuICAgIDMwMDogXCJmYXNsXCIsXG4gICAgMTAwOiBcImZhc3RcIlxuICB9LFxuICBcInNoYXJwLWR1b3RvbmVcIjoge1xuICAgIDkwMDogXCJmYXNkc1wiXG4gIH1cbn07XG52YXIgYnQgPSB7XG4gIGtpdDoge1xuICAgIGZhazogXCJraXRcIixcbiAgICBcImZhLWtpdFwiOiBcImtpdFwiXG4gIH0sXG4gIFwia2l0LWR1b3RvbmVcIjoge1xuICAgIGZha2Q6IFwia2l0LWR1b3RvbmVcIixcbiAgICBcImZhLWtpdC1kdW90b25lXCI6IFwia2l0LWR1b3RvbmVcIlxuICB9XG59LFxuICAgIEN0ID0gW1wia2l0XCJdO1xudmFyIER0ID0gL2ZhKHN8cnxsfHR8ZHxifGt8a2R8c3N8c3J8c2x8c3R8c2RzKT9bXFwtXFwgXS8sXG4gICAgS3QgPSAvRm9udCA/QXdlc29tZSA/KFs1NiBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0KT8uKi9pO1xudmFyIGFvID0ge1xuICBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjoge1xuICAgIDkwMDogXCJmYXNcIixcbiAgICA0MDA6IFwiZmFyXCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNSBQcm9cIjoge1xuICAgIDkwMDogXCJmYXNcIixcbiAgICA0MDA6IFwiZmFyXCIsXG4gICAgbm9ybWFsOiBcImZhclwiLFxuICAgIDMwMDogXCJmYWxcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA1IEJyYW5kc1wiOiB7XG4gICAgNDAwOiBcImZhYlwiLFxuICAgIG5vcm1hbDogXCJmYWJcIlxuICB9LFxuICBcIkZvbnQgQXdlc29tZSA1IER1b3RvbmVcIjoge1xuICAgIDkwMDogXCJmYWRcIlxuICB9XG59O1xudmFyIGVvID0ge1xuICBcIkZvbnQgQXdlc29tZSA2IEZyZWVcIjoge1xuICAgIDkwMDogXCJmYXNcIixcbiAgICA0MDA6IFwiZmFyXCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNiBQcm9cIjoge1xuICAgIDkwMDogXCJmYXNcIixcbiAgICA0MDA6IFwiZmFyXCIsXG4gICAgbm9ybWFsOiBcImZhclwiLFxuICAgIDMwMDogXCJmYWxcIixcbiAgICAxMDA6IFwiZmF0XCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjoge1xuICAgIDQwMDogXCJmYWJcIixcbiAgICBub3JtYWw6IFwiZmFiXCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNiBEdW90b25lXCI6IHtcbiAgICA5MDA6IFwiZmFkXCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgNiBTaGFycFwiOiB7XG4gICAgOTAwOiBcImZhc3NcIixcbiAgICA0MDA6IFwiZmFzclwiLFxuICAgIG5vcm1hbDogXCJmYXNyXCIsXG4gICAgMzAwOiBcImZhc2xcIixcbiAgICAxMDA6IFwiZmFzdFwiXG4gIH0sXG4gIFwiRm9udCBBd2Vzb21lIDYgU2hhcnAgRHVvdG9uZVwiOiB7XG4gICAgOTAwOiBcImZhc2RzXCJcbiAgfVxufSxcbiAgICBsbyA9IHtcbiAgY2xhc3NpYzoge1xuICAgIFwiZmEtYnJhbmRzXCI6IFwiZmFiXCIsXG4gICAgXCJmYS1kdW90b25lXCI6IFwiZmFkXCIsXG4gICAgXCJmYS1saWdodFwiOiBcImZhbFwiLFxuICAgIFwiZmEtcmVndWxhclwiOiBcImZhclwiLFxuICAgIFwiZmEtc29saWRcIjogXCJmYXNcIixcbiAgICBcImZhLXRoaW5cIjogXCJmYXRcIlxuICB9LFxuICBzaGFycDoge1xuICAgIFwiZmEtc29saWRcIjogXCJmYXNzXCIsXG4gICAgXCJmYS1yZWd1bGFyXCI6IFwiZmFzclwiLFxuICAgIFwiZmEtbGlnaHRcIjogXCJmYXNsXCIsXG4gICAgXCJmYS10aGluXCI6IFwiZmFzdFwiXG4gIH0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgXCJmYS1zb2xpZFwiOiBcImZhc2RzXCJcbiAgfVxufSxcbiAgICB5ID0ge1xuICBjbGFzc2ljOiBbXCJmYXNcIiwgXCJmYXJcIiwgXCJmYWxcIiwgXCJmYXRcIl0sXG4gIHNoYXJwOiBbXCJmYXNzXCIsIFwiZmFzclwiLCBcImZhc2xcIiwgXCJmYXN0XCJdLFxuICBcInNoYXJwLWR1b3RvbmVcIjogW1wiZmFzZHNcIl1cbn0sXG4gICAgbm8gPSB7XG4gIGNsYXNzaWM6IHtcbiAgICBmYWI6IFwiZmEtYnJhbmRzXCIsXG4gICAgZmFkOiBcImZhLWR1b3RvbmVcIixcbiAgICBmYWw6IFwiZmEtbGlnaHRcIixcbiAgICBmYXI6IFwiZmEtcmVndWxhclwiLFxuICAgIGZhczogXCJmYS1zb2xpZFwiLFxuICAgIGZhdDogXCJmYS10aGluXCJcbiAgfSxcbiAgc2hhcnA6IHtcbiAgICBmYXNzOiBcImZhLXNvbGlkXCIsXG4gICAgZmFzcjogXCJmYS1yZWd1bGFyXCIsXG4gICAgZmFzbDogXCJmYS1saWdodFwiLFxuICAgIGZhc3Q6IFwiZmEtdGhpblwiXG4gIH0sXG4gIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgZmFzZHM6IFwiZmEtc29saWRcIlxuICB9XG59LFxuICAgIGZvID0ge1xuICBjbGFzc2ljOiB7XG4gICAgc29saWQ6IFwiZmFzXCIsXG4gICAgcmVndWxhcjogXCJmYXJcIixcbiAgICBsaWdodDogXCJmYWxcIixcbiAgICB0aGluOiBcImZhdFwiLFxuICAgIGR1b3RvbmU6IFwiZmFkXCIsXG4gICAgYnJhbmRzOiBcImZhYlwiXG4gIH0sXG4gIHNoYXJwOiB7XG4gICAgc29saWQ6IFwiZmFzc1wiLFxuICAgIHJlZ3VsYXI6IFwiZmFzclwiLFxuICAgIGxpZ2h0OiBcImZhc2xcIixcbiAgICB0aGluOiBcImZhc3RcIlxuICB9LFxuICBcInNoYXJwLWR1b3RvbmVcIjoge1xuICAgIHNvbGlkOiBcImZhc2RzXCJcbiAgfVxufSxcbiAgICBobyA9IHtcbiAgY2xhc3NpYzoge1xuICAgIGZhOiBcInNvbGlkXCIsXG4gICAgZmFzOiBcInNvbGlkXCIsXG4gICAgXCJmYS1zb2xpZFwiOiBcInNvbGlkXCIsXG4gICAgZmFyOiBcInJlZ3VsYXJcIixcbiAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgZmFsOiBcImxpZ2h0XCIsXG4gICAgXCJmYS1saWdodFwiOiBcImxpZ2h0XCIsXG4gICAgZmF0OiBcInRoaW5cIixcbiAgICBcImZhLXRoaW5cIjogXCJ0aGluXCIsXG4gICAgZmFkOiBcImR1b3RvbmVcIixcbiAgICBcImZhLWR1b3RvbmVcIjogXCJkdW90b25lXCIsXG4gICAgZmFiOiBcImJyYW5kc1wiLFxuICAgIFwiZmEtYnJhbmRzXCI6IFwiYnJhbmRzXCJcbiAgfSxcbiAgc2hhcnA6IHtcbiAgICBmYTogXCJzb2xpZFwiLFxuICAgIGZhc3M6IFwic29saWRcIixcbiAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIixcbiAgICBmYXNyOiBcInJlZ3VsYXJcIixcbiAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgZmFzbDogXCJsaWdodFwiLFxuICAgIFwiZmEtbGlnaHRcIjogXCJsaWdodFwiLFxuICAgIGZhc3Q6IFwidGhpblwiLFxuICAgIFwiZmEtdGhpblwiOiBcInRoaW5cIlxuICB9LFxuICBcInNoYXJwLWR1b3RvbmVcIjoge1xuICAgIGZhOiBcInNvbGlkXCIsXG4gICAgZmFzZHM6IFwic29saWRcIixcbiAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIlxuICB9XG59LFxuICAgIHgkMSA9IFtcInNvbGlkXCIsIFwicmVndWxhclwiLCBcImxpZ2h0XCIsIFwidGhpblwiLCBcImR1b3RvbmVcIiwgXCJicmFuZHNcIl0sXG4gICAgdSQxID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSxcbiAgICBtJDEgPSB1JDEuY29uY2F0KFsxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0pLFxuICAgIHQkMSA9IHtcbiAgR1JPVVA6IFwiZHVvdG9uZS1ncm91cFwiLFxuICBTV0FQX09QQUNJVFk6IFwic3dhcC1vcGFjaXR5XCIsXG4gIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICBTRUNPTkRBUlk6IFwic2Vjb25kYXJ5XCJcbn0sXG4gICAgeW8gPSBbLi4uT2JqZWN0LmtleXMoeSksIC4uLngkMSwgXCIyeHNcIiwgXCJ4c1wiLCBcInNtXCIsIFwibGdcIiwgXCJ4bFwiLCBcIjJ4bFwiLCBcImJlYXRcIiwgXCJib3JkZXJcIiwgXCJmYWRlXCIsIFwiYmVhdC1mYWRlXCIsIFwiYm91bmNlXCIsIFwiZmxpcC1ib3RoXCIsIFwiZmxpcC1ob3Jpem9udGFsXCIsIFwiZmxpcC12ZXJ0aWNhbFwiLCBcImZsaXBcIiwgXCJmd1wiLCBcImludmVyc2VcIiwgXCJsYXllcnMtY291bnRlclwiLCBcImxheWVycy10ZXh0XCIsIFwibGF5ZXJzXCIsIFwibGlcIiwgXCJwdWxsLWxlZnRcIiwgXCJwdWxsLXJpZ2h0XCIsIFwicHVsc2VcIiwgXCJyb3RhdGUtMTgwXCIsIFwicm90YXRlLTI3MFwiLCBcInJvdGF0ZS05MFwiLCBcInJvdGF0ZS1ieVwiLCBcInNoYWtlXCIsIFwic3Bpbi1wdWxzZVwiLCBcInNwaW4tcmV2ZXJzZVwiLCBcInNwaW5cIiwgXCJzdGFjay0xeFwiLCBcInN0YWNrLTJ4XCIsIFwic3RhY2tcIiwgXCJ1bFwiLCB0JDEuR1JPVVAsIHQkMS5TV0FQX09QQUNJVFksIHQkMS5QUklNQVJZLCB0JDEuU0VDT05EQVJZXS5jb25jYXQodSQxLm1hcChvID0+IFwiXCIuY29uY2F0KG8sIFwieFwiKSkpLmNvbmNhdChtJDEubWFwKG8gPT4gXCJ3LVwiLmNvbmNhdChvKSkpO1xudmFyIG1vID0ge1xuICBcIkZvbnQgQXdlc29tZSBLaXRcIjoge1xuICAgIDQwMDogXCJmYWtcIixcbiAgICBub3JtYWw6IFwiZmFrXCJcbiAgfSxcbiAgXCJGb250IEF3ZXNvbWUgS2l0IER1b3RvbmVcIjoge1xuICAgIDQwMDogXCJmYWtkXCIsXG4gICAgbm9ybWFsOiBcImZha2RcIlxuICB9XG59LFxuICAgIElvID0ge1xuICBraXQ6IHtcbiAgICBcImZhLWtpdFwiOiBcImZha1wiXG4gIH0sXG4gIFwia2l0LWR1b3RvbmVcIjoge1xuICAgIFwiZmEta2l0LWR1b3RvbmVcIjogXCJmYWtkXCJcbiAgfVxufSxcbiAgICBGbyA9IHtcbiAga2l0OiB7XG4gICAgZmFrOiBcImZhLWtpdFwiXG4gIH0sXG4gIFwia2l0LWR1b3RvbmVcIjoge1xuICAgIGZha2Q6IFwiZmEta2l0LWR1b3RvbmVcIlxuICB9XG59LFxuICAgIFNvID0ge1xuICBraXQ6IHtcbiAgICBraXQ6IFwiZmFrXCJcbiAgfSxcbiAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgXCJraXQtZHVvdG9uZVwiOiBcImZha2RcIlxuICB9XG59O1xuXG5jb25zdCBOQU1FU1BBQ0VfSURFTlRJRklFUiA9ICdfX19GT05UX0FXRVNPTUVfX18nO1xuY29uc3QgVU5JVFNfSU5fR1JJRCA9IDE2O1xuY29uc3QgREVGQVVMVF9DU1NfUFJFRklYID0gJ2ZhJztcbmNvbnN0IERFRkFVTFRfUkVQTEFDRU1FTlRfQ0xBU1MgPSAnc3ZnLWlubGluZS0tZmEnO1xuY29uc3QgREFUQV9GQV9JMlNWRyA9ICdkYXRhLWZhLWkyc3ZnJztcbmNvbnN0IERBVEFfRkFfUFNFVURPX0VMRU1FTlQgPSAnZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCc7XG5jb25zdCBEQVRBX0ZBX1BTRVVET19FTEVNRU5UX1BFTkRJTkcgPSAnZGF0YS1mYS1wc2V1ZG8tZWxlbWVudC1wZW5kaW5nJztcbmNvbnN0IERBVEFfUFJFRklYID0gJ2RhdGEtcHJlZml4JztcbmNvbnN0IERBVEFfSUNPTiA9ICdkYXRhLWljb24nO1xuY29uc3QgSFRNTF9DTEFTU19JMlNWR19CQVNFX0NMQVNTID0gJ2ZvbnRhd2Vzb21lLWkyc3ZnJztcbmNvbnN0IE1VVEFUSU9OX0FQUFJPQUNIX0FTWU5DID0gJ2FzeW5jJztcbmNvbnN0IFRBR05BTUVTX1RPX1NLSVBfRk9SX1BTRVVET0VMRU1FTlRTID0gWydIVE1MJywgJ0hFQUQnLCAnU1RZTEUnLCAnU0NSSVBUJ107XG5jb25zdCBQUk9EVUNUSU9OID0gKCgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbiAgfSBjYXRjaCAoZSQkMSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSkoKTtcbmNvbnN0IEZBTUlMSUVTID0gW2EsIHIsIG9dO1xuXG5mdW5jdGlvbiBmYW1pbHlQcm94eShvYmopIHtcbiAgLy8gRGVmYXVsdHMgdG8gdGhlIGNsYXNzaWMgZmFtaWx5IGlmIGZhbWlseSBpcyBub3QgYXZhaWxhYmxlXG4gIHJldHVybiBuZXcgUHJveHkob2JqLCB7XG4gICAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgICAgcmV0dXJuIHByb3AgaW4gdGFyZ2V0ID8gdGFyZ2V0W3Byb3BdIDogdGFyZ2V0W2FdO1xuICAgIH1cblxuICB9KTtcbn1cblxuY29uc3QgX1BSRUZJWF9UT19TVFlMRSA9IHsgLi4uaG9cbn07XG5fUFJFRklYX1RPX1NUWUxFW2FdID0geyAuLi5ob1thXSxcbiAgLi4uYnRbJ2tpdCddLFxuICAuLi5idFsna2l0LWR1b3RvbmUnXVxufTtcbmNvbnN0IFBSRUZJWF9UT19TVFlMRSA9IGZhbWlseVByb3h5KF9QUkVGSVhfVE9fU1RZTEUpO1xuY29uc3QgX1NUWUxFX1RPX1BSRUZJWCA9IHsgLi4uZm9cbn07XG5fU1RZTEVfVE9fUFJFRklYW2FdID0geyAuLi5fU1RZTEVfVE9fUFJFRklYW2FdLFxuICAuLi5Tb1sna2l0J10sXG4gIC4uLlNvWydraXQtZHVvdG9uZSddXG59O1xuY29uc3QgU1RZTEVfVE9fUFJFRklYID0gZmFtaWx5UHJveHkoX1NUWUxFX1RPX1BSRUZJWCk7XG5jb25zdCBfUFJFRklYX1RPX0xPTkdfU1RZTEUgPSB7IC4uLm5vXG59O1xuX1BSRUZJWF9UT19MT05HX1NUWUxFW2FdID0geyAuLi5fUFJFRklYX1RPX0xPTkdfU1RZTEVbYV0sXG4gIC4uLkZvWydraXQnXVxufTtcbmNvbnN0IFBSRUZJWF9UT19MT05HX1NUWUxFID0gZmFtaWx5UHJveHkoX1BSRUZJWF9UT19MT05HX1NUWUxFKTtcbmNvbnN0IF9MT05HX1NUWUxFX1RPX1BSRUZJWCA9IHsgLi4ubG9cbn07XG5fTE9OR19TVFlMRV9UT19QUkVGSVhbYV0gPSB7IC4uLl9MT05HX1NUWUxFX1RPX1BSRUZJWFthXSxcbiAgLi4uSW9bJ2tpdCddXG59O1xuY29uc3QgTE9OR19TVFlMRV9UT19QUkVGSVggPSBmYW1pbHlQcm94eShfTE9OR19TVFlMRV9UT19QUkVGSVgpO1xuY29uc3QgSUNPTl9TRUxFQ1RJT05fU1lOVEFYX1BBVFRFUk4gPSBEdDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuXG5jb25zdCBMQVlFUlNfVEVYVF9DTEFTU05BTUUgPSAnZmEtbGF5ZXJzLXRleHQnO1xuY29uc3QgRk9OVF9GQU1JTFlfUEFUVEVSTiA9IEt0O1xuY29uc3QgX0ZPTlRfV0VJR0hUX1RPX1BSRUZJWCA9IHsgLi4uZXQkMVxufTtcbmNvbnN0IEZPTlRfV0VJR0hUX1RPX1BSRUZJWCA9IGZhbWlseVByb3h5KF9GT05UX1dFSUdIVF9UT19QUkVGSVgpO1xuY29uc3QgQVRUUklCVVRFU19XQVRDSEVEX0ZPUl9NVVRBVElPTiA9IFsnY2xhc3MnLCAnZGF0YS1wcmVmaXgnLCAnZGF0YS1pY29uJywgJ2RhdGEtZmEtdHJhbnNmb3JtJywgJ2RhdGEtZmEtbWFzayddO1xuY29uc3QgRFVPVE9ORV9DTEFTU0VTID0gdCQxO1xuY29uc3QgcHJlZml4ZXMgPSBuZXcgU2V0KCk7XG5PYmplY3Qua2V5cyhTVFlMRV9UT19QUkVGSVhbYV0pLm1hcChwcmVmaXhlcy5hZGQuYmluZChwcmVmaXhlcykpO1xuT2JqZWN0LmtleXMoU1RZTEVfVE9fUFJFRklYW3JdKS5tYXAocHJlZml4ZXMuYWRkLmJpbmQocHJlZml4ZXMpKTtcbk9iamVjdC5rZXlzKFNUWUxFX1RPX1BSRUZJWFtvXSkubWFwKHByZWZpeGVzLmFkZC5iaW5kKHByZWZpeGVzKSk7XG5jb25zdCBSRVNFUlZFRF9DTEFTU0VTID0gWy4uLkN0LCAuLi55b107XG5cbmNvbnN0IGluaXRpYWwgPSBXSU5ET1cuRm9udEF3ZXNvbWVDb25maWcgfHwge307XG5cbmZ1bmN0aW9uIGdldEF0dHJDb25maWcoYXR0cikge1xuICB2YXIgZWxlbWVudCA9IERPQ1VNRU5ULnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFsnICsgYXR0ciArICddJyk7XG5cbiAgaWYgKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuICAvLyBHZXR0aW5nIGFuIGVtcHR5IHN0cmluZyB3aWxsIG9jY3VyIGlmIHRoZSBhdHRyaWJ1dGUgaXMgc2V0IG9uIHRoZSBIVE1MIHRhZyBidXQgd2l0aG91dCBhIHZhbHVlXG4gIC8vIFdlJ2xsIGFzc3VtZSB0aGF0IHRoaXMgaXMgYW4gaW5kaWNhdGlvbiB0aGF0IGl0IHNob3VsZCBiZSB0b2dnbGVkIHRvIHRydWVcbiAgaWYgKHZhbCA9PT0gJycpIHJldHVybiB0cnVlO1xuICBpZiAodmFsID09PSAnZmFsc2UnKSByZXR1cm4gZmFsc2U7XG4gIGlmICh2YWwgPT09ICd0cnVlJykgcmV0dXJuIHRydWU7XG4gIHJldHVybiB2YWw7XG59XG5cbmlmIChET0NVTUVOVCAmJiB0eXBlb2YgRE9DVU1FTlQucXVlcnlTZWxlY3RvciA9PT0gJ2Z1bmN0aW9uJykge1xuICBjb25zdCBhdHRycyA9IFtbJ2RhdGEtZmFtaWx5LXByZWZpeCcsICdmYW1pbHlQcmVmaXgnXSwgWydkYXRhLWNzcy1wcmVmaXgnLCAnY3NzUHJlZml4J10sIFsnZGF0YS1mYW1pbHktZGVmYXVsdCcsICdmYW1pbHlEZWZhdWx0J10sIFsnZGF0YS1zdHlsZS1kZWZhdWx0JywgJ3N0eWxlRGVmYXVsdCddLCBbJ2RhdGEtcmVwbGFjZW1lbnQtY2xhc3MnLCAncmVwbGFjZW1lbnRDbGFzcyddLCBbJ2RhdGEtYXV0by1yZXBsYWNlLXN2ZycsICdhdXRvUmVwbGFjZVN2ZyddLCBbJ2RhdGEtYXV0by1hZGQtY3NzJywgJ2F1dG9BZGRDc3MnXSwgWydkYXRhLWF1dG8tYTExeScsICdhdXRvQTExeSddLCBbJ2RhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cycsICdzZWFyY2hQc2V1ZG9FbGVtZW50cyddLCBbJ2RhdGEtb2JzZXJ2ZS1tdXRhdGlvbnMnLCAnb2JzZXJ2ZU11dGF0aW9ucyddLCBbJ2RhdGEtbXV0YXRlLWFwcHJvYWNoJywgJ211dGF0ZUFwcHJvYWNoJ10sIFsnZGF0YS1rZWVwLW9yaWdpbmFsLXNvdXJjZScsICdrZWVwT3JpZ2luYWxTb3VyY2UnXSwgWydkYXRhLW1lYXN1cmUtcGVyZm9ybWFuY2UnLCAnbWVhc3VyZVBlcmZvcm1hbmNlJ10sIFsnZGF0YS1zaG93LW1pc3NpbmctaWNvbnMnLCAnc2hvd01pc3NpbmdJY29ucyddXTtcbiAgYXR0cnMuZm9yRWFjaChfcmVmID0+IHtcbiAgICBsZXQgW2F0dHIsIGtleV0gPSBfcmVmO1xuICAgIGNvbnN0IHZhbCA9IGNvZXJjZShnZXRBdHRyQ29uZmlnKGF0dHIpKTtcblxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwpIHtcbiAgICAgIGluaXRpYWxba2V5XSA9IHZhbDtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCBfZGVmYXVsdCA9IHtcbiAgc3R5bGVEZWZhdWx0OiAnc29saWQnLFxuICBmYW1pbHlEZWZhdWx0OiAnY2xhc3NpYycsXG4gIGNzc1ByZWZpeDogREVGQVVMVF9DU1NfUFJFRklYLFxuICByZXBsYWNlbWVudENsYXNzOiBERUZBVUxUX1JFUExBQ0VNRU5UX0NMQVNTLFxuICBhdXRvUmVwbGFjZVN2ZzogdHJ1ZSxcbiAgYXV0b0FkZENzczogdHJ1ZSxcbiAgYXV0b0ExMXk6IHRydWUsXG4gIHNlYXJjaFBzZXVkb0VsZW1lbnRzOiBmYWxzZSxcbiAgb2JzZXJ2ZU11dGF0aW9uczogdHJ1ZSxcbiAgbXV0YXRlQXBwcm9hY2g6ICdhc3luYycsXG4gIGtlZXBPcmlnaW5hbFNvdXJjZTogdHJ1ZSxcbiAgbWVhc3VyZVBlcmZvcm1hbmNlOiBmYWxzZSxcbiAgc2hvd01pc3NpbmdJY29uczogdHJ1ZVxufTsgLy8gZmFtaWx5UHJlZml4IGlzIGRlcHJlY2F0ZWQgYnV0IHdlIG11c3Qgc3RpbGwgc3VwcG9ydCBpdCBpZiBwcmVzZW50XG5cbmlmIChpbml0aWFsLmZhbWlseVByZWZpeCkge1xuICBpbml0aWFsLmNzc1ByZWZpeCA9IGluaXRpYWwuZmFtaWx5UHJlZml4O1xufVxuXG5jb25zdCBfY29uZmlnID0geyAuLi5fZGVmYXVsdCxcbiAgLi4uaW5pdGlhbFxufTtcbmlmICghX2NvbmZpZy5hdXRvUmVwbGFjZVN2ZykgX2NvbmZpZy5vYnNlcnZlTXV0YXRpb25zID0gZmFsc2U7XG5jb25zdCBjb25maWcgPSB7fTtcbk9iamVjdC5rZXlzKF9kZWZhdWx0KS5mb3JFYWNoKGtleSA9PiB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIGtleSwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsKSB7XG4gICAgICBfY29uZmlnW2tleV0gPSB2YWw7XG5cbiAgICAgIF9vbkNoYW5nZUNiLmZvckVhY2goY2IgPT4gY2IoY29uZmlnKSk7XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfY29uZmlnW2tleV07XG4gICAgfVxuICB9KTtcbn0pOyAvLyBmYW1pbHlQcmVmaXggaXMgZGVwcmVjYXRlZCBhcyBvZiA2LjIuMCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgaW4gNy4wLjBcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgJ2ZhbWlseVByZWZpeCcsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgc2V0OiBmdW5jdGlvbiAodmFsKSB7XG4gICAgX2NvbmZpZy5jc3NQcmVmaXggPSB2YWw7XG5cbiAgICBfb25DaGFuZ2VDYi5mb3JFYWNoKGNiID0+IGNiKGNvbmZpZykpO1xuICB9LFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gX2NvbmZpZy5jc3NQcmVmaXg7XG4gIH1cbn0pO1xuV0lORE9XLkZvbnRBd2Vzb21lQ29uZmlnID0gY29uZmlnO1xuY29uc3QgX29uQ2hhbmdlQ2IgPSBbXTtcbmZ1bmN0aW9uIG9uQ2hhbmdlKGNiKSB7XG4gIF9vbkNoYW5nZUNiLnB1c2goY2IpO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgX29uQ2hhbmdlQ2Iuc3BsaWNlKF9vbkNoYW5nZUNiLmluZGV4T2YoY2IpLCAxKTtcbiAgfTtcbn1cblxuY29uc3QgZCQyID0gVU5JVFNfSU5fR1JJRDtcbmNvbnN0IG1lYW5pbmdsZXNzVHJhbnNmb3JtID0ge1xuICBzaXplOiAxNixcbiAgeDogMCxcbiAgeTogMCxcbiAgcm90YXRlOiAwLFxuICBmbGlwWDogZmFsc2UsXG4gIGZsaXBZOiBmYWxzZVxufTtcbmZ1bmN0aW9uIGluc2VydENzcyhjc3MpIHtcbiAgaWYgKCFjc3MgfHwgIUlTX0RPTSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHN0eWxlID0gRE9DVU1FTlQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgc3R5bGUuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XG4gIHN0eWxlLmlubmVySFRNTCA9IGNzcztcbiAgY29uc3QgaGVhZENoaWxkcmVuID0gRE9DVU1FTlQuaGVhZC5jaGlsZE5vZGVzO1xuICBsZXQgYmVmb3JlQ2hpbGQgPSBudWxsO1xuXG4gIGZvciAobGV0IGkgPSBoZWFkQ2hpbGRyZW4ubGVuZ3RoIC0gMTsgaSA+IC0xOyBpLS0pIHtcbiAgICBjb25zdCBjaGlsZCA9IGhlYWRDaGlsZHJlbltpXTtcbiAgICBjb25zdCB0YWdOYW1lID0gKGNoaWxkLnRhZ05hbWUgfHwgJycpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBpZiAoWydTVFlMRScsICdMSU5LJ10uaW5kZXhPZih0YWdOYW1lKSA+IC0xKSB7XG4gICAgICBiZWZvcmVDaGlsZCA9IGNoaWxkO1xuICAgIH1cbiAgfVxuXG4gIERPQ1VNRU5ULmhlYWQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBiZWZvcmVDaGlsZCk7XG4gIHJldHVybiBjc3M7XG59XG5jb25zdCBpZFBvb2wgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonO1xuZnVuY3Rpb24gbmV4dFVuaXF1ZUlkKCkge1xuICBsZXQgc2l6ZSA9IDEyO1xuICBsZXQgaWQgPSAnJztcblxuICB3aGlsZSAoc2l6ZS0tID4gMCkge1xuICAgIGlkICs9IGlkUG9vbFtNYXRoLnJhbmRvbSgpICogNjIgfCAwXTtcbiAgfVxuXG4gIHJldHVybiBpZDtcbn1cbmZ1bmN0aW9uIHRvQXJyYXkob2JqKSB7XG4gIGNvbnN0IGFycmF5ID0gW107XG5cbiAgZm9yIChsZXQgaSA9IChvYmogfHwgW10pLmxlbmd0aCA+Pj4gMDsgaS0tOykge1xuICAgIGFycmF5W2ldID0gb2JqW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gY2xhc3NBcnJheShub2RlKSB7XG4gIGlmIChub2RlLmNsYXNzTGlzdCkge1xuICAgIHJldHVybiB0b0FycmF5KG5vZGUuY2xhc3NMaXN0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKG5vZGUuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnKS5zcGxpdCgnICcpLmZpbHRlcihpID0+IGkpO1xuICB9XG59XG5mdW5jdGlvbiBodG1sRXNjYXBlKHN0cikge1xuICByZXR1cm4gXCJcIi5jb25jYXQoc3RyKS5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKS5yZXBsYWNlKC8nL2csICcmIzM5OycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG59XG5mdW5jdGlvbiBqb2luQXR0cmlidXRlcyhhdHRyaWJ1dGVzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzIHx8IHt9KS5yZWR1Y2UoKGFjYywgYXR0cmlidXRlTmFtZSkgPT4ge1xuICAgIHJldHVybiBhY2MgKyBcIlwiLmNvbmNhdChhdHRyaWJ1dGVOYW1lLCBcIj1cXFwiXCIpLmNvbmNhdChodG1sRXNjYXBlKGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0pLCBcIlxcXCIgXCIpO1xuICB9LCAnJykudHJpbSgpO1xufVxuZnVuY3Rpb24gam9pblN0eWxlcyhzdHlsZXMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHN0eWxlcyB8fCB7fSkucmVkdWNlKChhY2MsIHN0eWxlTmFtZSkgPT4ge1xuICAgIHJldHVybiBhY2MgKyBcIlwiLmNvbmNhdChzdHlsZU5hbWUsIFwiOiBcIikuY29uY2F0KHN0eWxlc1tzdHlsZU5hbWVdLnRyaW0oKSwgXCI7XCIpO1xuICB9LCAnJyk7XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSB7XG4gIHJldHVybiB0cmFuc2Zvcm0uc2l6ZSAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0uc2l6ZSB8fCB0cmFuc2Zvcm0ueCAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0ueCB8fCB0cmFuc2Zvcm0ueSAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0ueSB8fCB0cmFuc2Zvcm0ucm90YXRlICE9PSBtZWFuaW5nbGVzc1RyYW5zZm9ybS5yb3RhdGUgfHwgdHJhbnNmb3JtLmZsaXBYIHx8IHRyYW5zZm9ybS5mbGlwWTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybUZvclN2ZyhfcmVmKSB7XG4gIGxldCB7XG4gICAgdHJhbnNmb3JtLFxuICAgIGNvbnRhaW5lcldpZHRoLFxuICAgIGljb25XaWR0aFxuICB9ID0gX3JlZjtcbiAgY29uc3Qgb3V0ZXIgPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoY29udGFpbmVyV2lkdGggLyAyLCBcIiAyNTYpXCIpXG4gIH07XG4gIGNvbnN0IGlubmVyVHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54ICogMzIsIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS55ICogMzIsIFwiKSBcIik7XG4gIGNvbnN0IGlubmVyU2NhbGUgPSBcInNjYWxlKFwiLmNvbmNhdCh0cmFuc2Zvcm0uc2l6ZSAvIDE2ICogKHRyYW5zZm9ybS5mbGlwWCA/IC0xIDogMSksIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBZID8gLTEgOiAxKSwgXCIpIFwiKTtcbiAgY29uc3QgaW5uZXJSb3RhdGUgPSBcInJvdGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnJvdGF0ZSwgXCIgMCAwKVwiKTtcbiAgY29uc3QgaW5uZXIgPSB7XG4gICAgdHJhbnNmb3JtOiBcIlwiLmNvbmNhdChpbm5lclRyYW5zbGF0ZSwgXCIgXCIpLmNvbmNhdChpbm5lclNjYWxlLCBcIiBcIikuY29uY2F0KGlubmVyUm90YXRlKVxuICB9O1xuICBjb25zdCBwYXRoID0ge1xuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoXCIuY29uY2F0KGljb25XaWR0aCAvIDIgKiAtMSwgXCIgLTI1NilcIilcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBvdXRlcixcbiAgICBpbm5lcixcbiAgICBwYXRoXG4gIH07XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Gb3JDc3MoX3JlZjIpIHtcbiAgbGV0IHtcbiAgICB0cmFuc2Zvcm0sXG4gICAgd2lkdGggPSBVTklUU19JTl9HUklELFxuICAgIGhlaWdodCA9IFVOSVRTX0lOX0dSSUQsXG4gICAgc3RhcnRDZW50ZXJlZCA9IGZhbHNlXG4gIH0gPSBfcmVmMjtcbiAgbGV0IHZhbCA9ICcnO1xuXG4gIGlmIChzdGFydENlbnRlcmVkICYmIElTX0lFKSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiAtIHdpZHRoIC8gMiwgXCJlbSwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQkMiAtIGhlaWdodCAvIDIsIFwiZW0pIFwiKTtcbiAgfSBlbHNlIGlmIChzdGFydENlbnRlcmVkKSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKGNhbGMoLTUwJSArIFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiwgXCJlbSksIGNhbGMoLTUwJSArIFwiKS5jb25jYXQodHJhbnNmb3JtLnkgLyBkJDIsIFwiZW0pKSBcIik7XG4gIH0gZWxzZSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiwgXCJlbSwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQkMiwgXCJlbSkgXCIpO1xuICB9XG5cbiAgdmFsICs9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gZCQyICogKHRyYW5zZm9ybS5mbGlwWCA/IC0xIDogMSksIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gZCQyICogKHRyYW5zZm9ybS5mbGlwWSA/IC0xIDogMSksIFwiKSBcIik7XG4gIHZhbCArPSBcInJvdGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnJvdGF0ZSwgXCJkZWcpIFwiKTtcbiAgcmV0dXJuIHZhbDtcbn1cblxudmFyIGJhc2VTdHlsZXMgPSBcIjpyb290LCA6aG9zdCB7XFxuICAtLWZhLWZvbnQtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IEZyZWVcXFwiO1xcbiAgLS1mYS1mb250LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IEZyZWVcXFwiO1xcbiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBQcm9cXFwiO1xcbiAgLS1mYS1mb250LXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IFByb1xcXCI7XFxuICAtLWZhLWZvbnQtZHVvdG9uZTogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgRHVvdG9uZVxcXCI7XFxuICAtLWZhLWZvbnQtYnJhbmRzOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcXFwiO1xcbiAgLS1mYS1mb250LXNoYXJwLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgU2hhcnBcXFwiO1xcbiAgLS1mYS1mb250LXNoYXJwLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNiBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDYgU2hhcnBcXFwiO1xcbiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA2IFNoYXJwIER1b3RvbmVcXFwiO1xcbn1cXG5cXG5zdmc6bm90KDpyb290KS5zdmctaW5saW5lLS1mYSwgc3ZnOm5vdCg6aG9zdCkuc3ZnLWlubGluZS0tZmEge1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIGRpc3BsYXk6IHZhcigtLWZhLWRpc3BsYXksIGlubGluZS1ibG9jayk7XFxuICBoZWlnaHQ6IDFlbTtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtMnhzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAwLjFlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXhzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAwZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1zbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcwNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtbGcge1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXhsIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtMnhsIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1wdWxsLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pO1xcbiAgd2lkdGg6IGF1dG87XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1wdWxsLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pO1xcbiAgd2lkdGg6IGF1dG87XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1saSB7XFxuICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7XFxuICB0b3A6IDAuMjVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLWZ3IHtcXG4gIHdpZHRoOiB2YXIoLS1mYS1mdy13aWR0aCwgMS4yNWVtKTtcXG59XFxuXFxuLmZhLWxheWVycyBzdmcuc3ZnLWlubGluZS0tZmEge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG1hcmdpbjogYXV0bztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5mYS1sYXllcnMge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAxZW07XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XFxuICB3aWR0aDogMWVtO1xcbn1cXG4uZmEtbGF5ZXJzIHN2Zy5zdmctaW5saW5lLS1mYSB7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xcbn1cXG5cXG4uZmEtbGF5ZXJzLXRleHQge1xcbiAgbGVmdDogNTAlO1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XFxufVxcblxcbi5mYS1sYXllcnMtY291bnRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYS1jb3VudGVyLWJhY2tncm91bmQtY29sb3IsICNmZjI1M2EpO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtY291bnRlci1ib3JkZXItcmFkaXVzLCAxZW0pO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTtcXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mYS1jb3VudGVyLWxpbmUtaGVpZ2h0LCAxKTtcXG4gIG1heC13aWR0aDogdmFyKC0tZmEtY291bnRlci1tYXgtd2lkdGgsIDVlbSk7XFxuICBtaW4td2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWluLXdpZHRoLCAxLjVlbSk7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcGFkZGluZzogdmFyKC0tZmEtY291bnRlci1wYWRkaW5nLCAwLjI1ZW0gMC41ZW0pO1xcbiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgdG9wOiB2YXIoLS1mYS10b3AsIDApO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1jb3VudGVyLXNjYWxlLCAwLjI1KSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XFxufVxcblxcbi5mYS1sYXllcnMtYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTtcXG4gIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7XFxuICB0b3A6IGF1dG87XFxuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHtcXG4gIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTtcXG4gIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApO1xcbiAgcmlnaHQ6IGF1dG87XFxuICB0b3A6IGF1dG87XFxuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XFxufVxcblxcbi5mYS1sYXllcnMtdG9wLXJpZ2h0IHtcXG4gIHRvcDogdmFyKC0tZmEtdG9wLCAwKTtcXG4gIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7XFxuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLXRvcC1sZWZ0IHtcXG4gIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApO1xcbiAgcmlnaHQ6IGF1dG87XFxuICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7XFxuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxufVxcblxcbi5mYS0xeCB7XFxuICBmb250LXNpemU6IDFlbTtcXG59XFxuXFxuLmZhLTJ4IHtcXG4gIGZvbnQtc2l6ZTogMmVtO1xcbn1cXG5cXG4uZmEtM3gge1xcbiAgZm9udC1zaXplOiAzZW07XFxufVxcblxcbi5mYS00eCB7XFxuICBmb250LXNpemU6IDRlbTtcXG59XFxuXFxuLmZhLTV4IHtcXG4gIGZvbnQtc2l6ZTogNWVtO1xcbn1cXG5cXG4uZmEtNngge1xcbiAgZm9udC1zaXplOiA2ZW07XFxufVxcblxcbi5mYS03eCB7XFxuICBmb250LXNpemU6IDdlbTtcXG59XFxuXFxuLmZhLTh4IHtcXG4gIGZvbnQtc2l6ZTogOGVtO1xcbn1cXG5cXG4uZmEtOXgge1xcbiAgZm9udC1zaXplOiA5ZW07XFxufVxcblxcbi5mYS0xMHgge1xcbiAgZm9udC1zaXplOiAxMGVtO1xcbn1cXG5cXG4uZmEtMnhzIHtcXG4gIGZvbnQtc2l6ZTogMC42MjVlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjFlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAwLjIyNWVtO1xcbn1cXG5cXG4uZmEteHMge1xcbiAgZm9udC1zaXplOiAwLjc1ZW07XFxuICBsaW5lLWhlaWdodDogMC4wODMzMzMzMzM3ZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogMC4xMjVlbTtcXG59XFxuXFxuLmZhLXNtIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjA3MTQyODU3MThlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAwLjA1MzU3MTQyOTVlbTtcXG59XFxuXFxuLmZhLWxnIHtcXG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuMDVlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4wNzVlbTtcXG59XFxuXFxuLmZhLXhsIHtcXG4gIGZvbnQtc2l6ZTogMS41ZW07XFxuICBsaW5lLWhlaWdodDogMC4wNDE2NjY2NjgyZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XFxufVxcblxcbi5mYS0yeGwge1xcbiAgZm9udC1zaXplOiAyZW07XFxuICBsaW5lLWhlaWdodDogMC4wMzEyNWVtO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjE4NzVlbTtcXG59XFxuXFxuLmZhLWZ3IHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdpZHRoOiAxLjI1ZW07XFxufVxcblxcbi5mYS11bCB7XFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxuICBtYXJnaW4tbGVmdDogdmFyKC0tZmEtbGktbWFyZ2luLCAyLjVlbSk7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5mYS11bCA+IGxpIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLmZhLWxpIHtcXG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuXFxuLmZhLWJvcmRlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWZhLWJvcmRlci1jb2xvciwgI2VlZSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1ib3JkZXItcmFkaXVzLCAwLjFlbSk7XFxuICBib3JkZXItc3R5bGU6IHZhcigtLWZhLWJvcmRlci1zdHlsZSwgc29saWQpO1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mYS1ib3JkZXItd2lkdGgsIDAuMDhlbSk7XFxuICBwYWRkaW5nOiB2YXIoLS1mYS1ib3JkZXItcGFkZGluZywgMC4yZW0gMC4yNWVtIDAuMTVlbSk7XFxufVxcblxcbi5mYS1wdWxsLWxlZnQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7XFxufVxcblxcbi5mYS1wdWxsLXJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodDtcXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pO1xcbn1cXG5cXG4uZmEtYmVhdCB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtYmVhdDtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTtcXG59XFxuXFxuLmZhLWJvdW5jZSB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtYm91bmNlO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuMjgsIDAuODQsIDAuNDIsIDEpKTtcXG59XFxuXFxuLmZhLWZhZGUge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZhZGU7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTtcXG59XFxuXFxuLmZhLWJlYXQtZmFkZSB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtYmVhdC1mYWRlO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7XFxufVxcblxcbi5mYS1mbGlwIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1mbGlwO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpO1xcbn1cXG5cXG4uZmEtc2hha2Uge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNoYWtlO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTtcXG59XFxuXFxuLmZhLXNwaW4ge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAycyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpO1xcbn1cXG5cXG4uZmEtc3Bpbi1yZXZlcnNlIHtcXG4gIC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcXG59XFxuXFxuLmZhLXB1bHNlLFxcbi5mYS1zcGluLXB1bHNlIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBzdGVwcyg4KSk7XFxufVxcblxcbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XFxuICAuZmEtYmVhdCxcXG4uZmEtYm91bmNlLFxcbi5mYS1mYWRlLFxcbi5mYS1iZWF0LWZhZGUsXFxuLmZhLWZsaXAsXFxuLmZhLXB1bHNlLFxcbi5mYS1zaGFrZSxcXG4uZmEtc3BpbixcXG4uZmEtc3Bpbi1wdWxzZSB7XFxuICAgIGFuaW1hdGlvbi1kZWxheTogLTFtcztcXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxbXM7XFxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XFxuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1iZWF0IHtcXG4gIDAlLCA5MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNDUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLCAxLjI1KSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtYm91bmNlIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgMTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICAzMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7XFxuICB9XFxuICA1MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDU3JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTtcXG4gIH1cXG4gIDY0JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtZmFkZSB7XFxuICA1MCUge1xcbiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHtcXG4gIDAlLCAxMDAlIHtcXG4gICAgb3BhY2l0eTogdmFyKC0tZmEtYmVhdC1mYWRlLW9wYWNpdHksIDAuNCk7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1mbGlwIHtcXG4gIDUwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZhLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcXG4gIH1cXG4gIDQlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xcbiAgfVxcbiAgOCUsIDI0JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xOGRlZyk7XFxuICB9XFxuICAxMiUsIDI4JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4ZGVnKTtcXG4gIH1cXG4gIDE2JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMmRlZyk7XFxuICB9XFxuICAyMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMmRlZyk7XFxuICB9XFxuICAzMiUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTJkZWcpO1xcbiAgfVxcbiAgMzYlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTJkZWcpO1xcbiAgfVxcbiAgNDAlLCAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtc3BpbiB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcbi5mYS1yb3RhdGUtOTAge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5cXG4uZmEtcm90YXRlLTE4MCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbn1cXG5cXG4uZmEtcm90YXRlLTI3MCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xcbn1cXG5cXG4uZmEtZmxpcC1ob3Jpem9udGFsIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbn1cXG5cXG4uZmEtZmxpcC12ZXJ0aWNhbCB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuXFxuLmZhLWZsaXAtYm90aCxcXG4uZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgLTEpO1xcbn1cXG5cXG4uZmEtcm90YXRlLWJ5IHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpO1xcbn1cXG5cXG4uZmEtc3RhY2sge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGhlaWdodDogMmVtO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIuNWVtO1xcbn1cXG5cXG4uZmEtc3RhY2stMXgsXFxuLmZhLXN0YWNrLTJ4IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IHZhcigtLWZhLXN0YWNrLXotaW5kZXgsIGF1dG8pO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMXgge1xcbiAgaGVpZ2h0OiAxZW07XFxuICB3aWR0aDogMS4yNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMngge1xcbiAgaGVpZ2h0OiAyZW07XFxuICB3aWR0aDogMi41ZW07XFxufVxcblxcbi5mYS1pbnZlcnNlIHtcXG4gIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTtcXG59XFxuXFxuLnNyLW9ubHksXFxuLmZhLXNyLW9ubHkge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbjogLTFweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGJvcmRlci13aWR0aDogMDtcXG59XFxuXFxuLnNyLW9ubHktZm9jdXNhYmxlOm5vdCg6Zm9jdXMpLFxcbi5mYS1zci1vbmx5LWZvY3VzYWJsZTpub3QoOmZvY3VzKSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAtMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkge1xcbiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYSAuZmEtc2Vjb25kYXJ5IHtcXG4gIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1zZWNvbmRhcnkge1xcbiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksXFxuLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7XFxuICBmaWxsOiBibGFjaztcXG59XFxuXFxuLmZhZC5mYS1pbnZlcnNlLFxcbi5mYS1kdW90b25lLmZhLWludmVyc2Uge1xcbiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpO1xcbn1cIjtcblxuZnVuY3Rpb24gY3NzKCkge1xuICBjb25zdCBkY3AgPSBERUZBVUxUX0NTU19QUkVGSVg7XG4gIGNvbnN0IGRyYyA9IERFRkFVTFRfUkVQTEFDRU1FTlRfQ0xBU1M7XG4gIGNvbnN0IGZwID0gY29uZmlnLmNzc1ByZWZpeDtcbiAgY29uc3QgcmMgPSBjb25maWcucmVwbGFjZW1lbnRDbGFzcztcbiAgbGV0IHMgPSBiYXNlU3R5bGVzO1xuXG4gIGlmIChmcCAhPT0gZGNwIHx8IHJjICE9PSBkcmMpIHtcbiAgICBjb25zdCBkUGF0dCA9IG5ldyBSZWdFeHAoXCJcXFxcLlwiLmNvbmNhdChkY3AsIFwiXFxcXC1cIiksICdnJyk7XG4gICAgY29uc3QgY3VzdG9tUHJvcFBhdHQgPSBuZXcgUmVnRXhwKFwiXFxcXC0tXCIuY29uY2F0KGRjcCwgXCJcXFxcLVwiKSwgJ2cnKTtcbiAgICBjb25zdCByUGF0dCA9IG5ldyBSZWdFeHAoXCJcXFxcLlwiLmNvbmNhdChkcmMpLCAnZycpO1xuICAgIHMgPSBzLnJlcGxhY2UoZFBhdHQsIFwiLlwiLmNvbmNhdChmcCwgXCItXCIpKS5yZXBsYWNlKGN1c3RvbVByb3BQYXR0LCBcIi0tXCIuY29uY2F0KGZwLCBcIi1cIikpLnJlcGxhY2UoclBhdHQsIFwiLlwiLmNvbmNhdChyYykpO1xuICB9XG5cbiAgcmV0dXJuIHM7XG59XG5cbmxldCBfY3NzSW5zZXJ0ZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gZW5zdXJlQ3NzKCkge1xuICBpZiAoY29uZmlnLmF1dG9BZGRDc3MgJiYgIV9jc3NJbnNlcnRlZCkge1xuICAgIGluc2VydENzcyhjc3MoKSk7XG4gICAgX2Nzc0luc2VydGVkID0gdHJ1ZTtcbiAgfVxufVxuXG52YXIgSW5qZWN0Q1NTID0ge1xuICBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvbToge1xuICAgICAgICBjc3MsXG4gICAgICAgIGluc2VydENzczogZW5zdXJlQ3NzXG4gICAgICB9XG4gICAgfTtcbiAgfSxcblxuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uKCkge1xuICAgICAgICBlbnN1cmVDc3MoKTtcbiAgICAgIH0sXG5cbiAgICAgIGJlZm9yZUkyc3ZnKCkge1xuICAgICAgICBlbnN1cmVDc3MoKTtcbiAgICAgIH1cblxuICAgIH07XG4gIH1cblxufTtcblxuY29uc3QgdyQxID0gV0lORE9XIHx8IHt9O1xuaWYgKCF3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdKSB3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdID0ge307XG5pZiAoIXckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uc3R5bGVzKSB3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdLnN0eWxlcyA9IHt9O1xuaWYgKCF3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdLmhvb2tzKSB3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdLmhvb2tzID0ge307XG5pZiAoIXckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uc2hpbXMpIHckMVtOQU1FU1BBQ0VfSURFTlRJRklFUl0uc2hpbXMgPSBbXTtcbnZhciBuYW1lc3BhY2UgPSB3JDFbTkFNRVNQQUNFX0lERU5USUZJRVJdO1xuXG5jb25zdCBmdW5jdGlvbnMgPSBbXTtcblxuY29uc3QgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gIERPQ1VNRU5ULnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBsaXN0ZW5lcik7XG4gIGxvYWRlZCA9IDE7XG4gIGZ1bmN0aW9ucy5tYXAoZm4gPT4gZm4oKSk7XG59O1xuXG5sZXQgbG9hZGVkID0gZmFsc2U7XG5cbmlmIChJU19ET00pIHtcbiAgbG9hZGVkID0gKERPQ1VNRU5ULmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCA/IC9ebG9hZGVkfF5jLyA6IC9ebG9hZGVkfF5pfF5jLykudGVzdChET0NVTUVOVC5yZWFkeVN0YXRlKTtcbiAgaWYgKCFsb2FkZWQpIERPQ1VNRU5ULmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBsaXN0ZW5lcik7XG59XG5cbmZ1bmN0aW9uIGRvbXJlYWR5IChmbikge1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICBsb2FkZWQgPyBzZXRUaW1lb3V0KGZuLCAwKSA6IGZ1bmN0aW9ucy5wdXNoKGZuKTtcbn1cblxuZnVuY3Rpb24gdG9IdG1sKGFic3RyYWN0Tm9kZXMpIHtcbiAgY29uc3Qge1xuICAgIHRhZyxcbiAgICBhdHRyaWJ1dGVzID0ge30sXG4gICAgY2hpbGRyZW4gPSBbXVxuICB9ID0gYWJzdHJhY3ROb2RlcztcblxuICBpZiAodHlwZW9mIGFic3RyYWN0Tm9kZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGh0bWxFc2NhcGUoYWJzdHJhY3ROb2Rlcyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFwiPFwiLmNvbmNhdCh0YWcsIFwiIFwiKS5jb25jYXQoam9pbkF0dHJpYnV0ZXMoYXR0cmlidXRlcyksIFwiPlwiKS5jb25jYXQoY2hpbGRyZW4ubWFwKHRvSHRtbCkuam9pbignJyksIFwiPC9cIikuY29uY2F0KHRhZywgXCI+XCIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGljb25Gcm9tTWFwcGluZyhtYXBwaW5nLCBwcmVmaXgsIGljb25OYW1lKSB7XG4gIGlmIChtYXBwaW5nICYmIG1hcHBpbmdbcHJlZml4XSAmJiBtYXBwaW5nW3ByZWZpeF1baWNvbk5hbWVdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGljb25OYW1lLFxuICAgICAgaWNvbjogbWFwcGluZ1twcmVmaXhdW2ljb25OYW1lXVxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBoZWxwZXIgdG8gYmluZCBhIGZ1bmN0aW9uIGtub3duIHRvIGhhdmUgNCBhcmd1bWVudHNcbiAqIHRvIGEgZ2l2ZW4gY29udGV4dC5cbiAqL1xuXG52YXIgYmluZEludGVybmFsNCA9IGZ1bmN0aW9uIGJpbmRJbnRlcm5hbDQoZnVuYywgdGhpc0NvbnRleHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQ29udGV4dCwgYSwgYiwgYywgZCk7XG4gIH07XG59O1xuXG4vKipcbiAqICMgUmVkdWNlXG4gKlxuICogQSBmYXN0IG9iamVjdCBgLnJlZHVjZSgpYCBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9ICAgc3ViamVjdCAgICAgIFRoZSBvYmplY3QgdG8gcmVkdWNlIG92ZXIuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gZm4gICAgICAgICAgIFRoZSByZWR1Y2VyIGZ1bmN0aW9uLlxuICogQHBhcmFtICB7bWl4ZWR9ICAgIGluaXRpYWxWYWx1ZSBUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIHJlZHVjZXIsIGRlZmF1bHRzIHRvIHN1YmplY3RbMF0uXG4gKiBAcGFyYW0gIHtPYmplY3R9ICAgdGhpc0NvbnRleHQgIFRoZSBjb250ZXh0IGZvciB0aGUgcmVkdWNlci5cbiAqIEByZXR1cm4ge21peGVkfSAgICAgICAgICAgICAgICAgVGhlIGZpbmFsIHJlc3VsdC5cbiAqL1xuXG5cbnZhciByZWR1Y2UgPSBmdW5jdGlvbiBmYXN0UmVkdWNlT2JqZWN0KHN1YmplY3QsIGZuLCBpbml0aWFsVmFsdWUsIHRoaXNDb250ZXh0KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc3ViamVjdCksXG4gICAgICBsZW5ndGggPSBrZXlzLmxlbmd0aCxcbiAgICAgIGl0ZXJhdG9yID0gdGhpc0NvbnRleHQgIT09IHVuZGVmaW5lZCA/IGJpbmRJbnRlcm5hbDQoZm4sIHRoaXNDb250ZXh0KSA6IGZuLFxuICAgICAgaSxcbiAgICAgIGtleSxcbiAgICAgIHJlc3VsdDtcblxuICBpZiAoaW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBpID0gMTtcbiAgICByZXN1bHQgPSBzdWJqZWN0W2tleXNbMF1dO1xuICB9IGVsc2Uge1xuICAgIGkgPSAwO1xuICAgIHJlc3VsdCA9IGluaXRpYWxWYWx1ZTtcbiAgfVxuXG4gIGZvciAoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIHJlc3VsdCA9IGl0ZXJhdG9yKHJlc3VsdCwgc3ViamVjdFtrZXldLCBrZXksIHN1YmplY3QpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogdWNzMmRlY29kZSgpIGFuZCBjb2RlUG9pbnRBdCgpIGFyZSBib3RoIHdvcmtzIG9mIE1hdGhpYXMgQnluZW5zIGFuZCBsaWNlbnNlZCB1bmRlciBNSVRcbiAqXG4gKiBDb3B5cmlnaHQgTWF0aGlhcyBCeW5lbnMgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS8+XG5cbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZ1xuICogYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4gKiBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbiAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbiAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT05cbiAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKi9cbmZ1bmN0aW9uIHVjczJkZWNvZGUoc3RyaW5nKSB7XG4gIGNvbnN0IG91dHB1dCA9IFtdO1xuICBsZXQgY291bnRlciA9IDA7XG4gIGNvbnN0IGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cbiAgICBpZiAodmFsdWUgPj0gMHhEODAwICYmIHZhbHVlIDw9IDB4REJGRiAmJiBjb3VudGVyIDwgbGVuZ3RoKSB7XG4gICAgICBjb25zdCBleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cbiAgICAgIGlmICgoZXh0cmEgJiAweEZDMDApID09IDB4REMwMCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGVxZXFlcVxuICAgICAgICBvdXRwdXQucHVzaCgoKHZhbHVlICYgMHgzRkYpIDw8IDEwKSArIChleHRyYSAmIDB4M0ZGKSArIDB4MTAwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICBjb3VudGVyLS07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufVxuXG5mdW5jdGlvbiB0b0hleCh1bmljb2RlKSB7XG4gIGNvbnN0IGRlY29kZWQgPSB1Y3MyZGVjb2RlKHVuaWNvZGUpO1xuICByZXR1cm4gZGVjb2RlZC5sZW5ndGggPT09IDEgPyBkZWNvZGVkWzBdLnRvU3RyaW5nKDE2KSA6IG51bGw7XG59XG5mdW5jdGlvbiBjb2RlUG9pbnRBdChzdHJpbmcsIGluZGV4KSB7XG4gIGNvbnN0IHNpemUgPSBzdHJpbmcubGVuZ3RoO1xuICBsZXQgZmlyc3QgPSBzdHJpbmcuY2hhckNvZGVBdChpbmRleCk7XG4gIGxldCBzZWNvbmQ7XG5cbiAgaWYgKGZpcnN0ID49IDB4RDgwMCAmJiBmaXJzdCA8PSAweERCRkYgJiYgc2l6ZSA+IGluZGV4ICsgMSkge1xuICAgIHNlY29uZCA9IHN0cmluZy5jaGFyQ29kZUF0KGluZGV4ICsgMSk7XG5cbiAgICBpZiAoc2Vjb25kID49IDB4REMwMCAmJiBzZWNvbmQgPD0gMHhERkZGKSB7XG4gICAgICByZXR1cm4gKGZpcnN0IC0gMHhEODAwKSAqIDB4NDAwICsgc2Vjb25kIC0gMHhEQzAwICsgMHgxMDAwMDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmlyc3Q7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUljb25zKGljb25zKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhpY29ucykucmVkdWNlKChhY2MsIGljb25OYW1lKSA9PiB7XG4gICAgY29uc3QgaWNvbiA9IGljb25zW2ljb25OYW1lXTtcbiAgICBjb25zdCBleHBhbmRlZCA9ICEhaWNvbi5pY29uO1xuXG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICBhY2NbaWNvbi5pY29uTmFtZV0gPSBpY29uLmljb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1tpY29uTmFtZV0gPSBpY29uO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gZGVmaW5lSWNvbnMocHJlZml4LCBpY29ucykge1xuICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgY29uc3Qge1xuICAgIHNraXBIb29rcyA9IGZhbHNlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVJY29ucyhpY29ucyk7XG5cbiAgaWYgKHR5cGVvZiBuYW1lc3BhY2UuaG9va3MuYWRkUGFjayA9PT0gJ2Z1bmN0aW9uJyAmJiAhc2tpcEhvb2tzKSB7XG4gICAgbmFtZXNwYWNlLmhvb2tzLmFkZFBhY2socHJlZml4LCBub3JtYWxpemVJY29ucyhpY29ucykpO1xuICB9IGVsc2Uge1xuICAgIG5hbWVzcGFjZS5zdHlsZXNbcHJlZml4XSA9IHsgLi4uKG5hbWVzcGFjZS5zdHlsZXNbcHJlZml4XSB8fCB7fSksXG4gICAgICAuLi5ub3JtYWxpemVkXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogRm9udCBBd2Vzb21lIDQgdXNlZCB0aGUgcHJlZml4IG9mIGBmYWAgZm9yIGFsbCBpY29ucy4gV2l0aCB0aGUgaW50cm9kdWN0aW9uXG4gICAqIG9mIG5ldyBzdHlsZXMgd2UgbmVlZGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGVtLiBQcmVmaXggYGZhYCBpcyBub3cgYW4gYWxpYXNcbiAgICogZm9yIGBmYXNgIHNvIHdlJ2xsIGVhc2UgdGhlIHVwZ3JhZGUgcHJvY2VzcyBmb3Igb3VyIHVzZXJzIGJ5IGF1dG9tYXRpY2FsbHkgZGVmaW5pbmdcbiAgICogdGhpcyBhcyB3ZWxsLlxuICAgKi9cblxuXG4gIGlmIChwcmVmaXggPT09ICdmYXMnKSB7XG4gICAgZGVmaW5lSWNvbnMoJ2ZhJywgaWNvbnMpO1xuICB9XG59XG5cbmNvbnN0IHtcbiAgc3R5bGVzLFxuICBzaGltc1xufSA9IG5hbWVzcGFjZTtcbmNvbnN0IExPTkdfU1RZTEUgPSB7XG4gIFthXTogT2JqZWN0LnZhbHVlcyhQUkVGSVhfVE9fTE9OR19TVFlMRVthXSksXG4gIFtyXTogT2JqZWN0LnZhbHVlcyhQUkVGSVhfVE9fTE9OR19TVFlMRVtyXSksXG4gIFtvXTogT2JqZWN0LnZhbHVlcyhQUkVGSVhfVE9fTE9OR19TVFlMRVtvXSlcbn07XG5sZXQgX2RlZmF1bHRVc2FibGVQcmVmaXggPSBudWxsO1xubGV0IF9ieVVuaWNvZGUgPSB7fTtcbmxldCBfYnlMaWdhdHVyZSA9IHt9O1xubGV0IF9ieU9sZE5hbWUgPSB7fTtcbmxldCBfYnlPbGRVbmljb2RlID0ge307XG5sZXQgX2J5QWxpYXMgPSB7fTtcbmNvbnN0IFBSRUZJWEVTID0ge1xuICBbYV06IE9iamVjdC5rZXlzKFBSRUZJWF9UT19TVFlMRVthXSksXG4gIFtyXTogT2JqZWN0LmtleXMoUFJFRklYX1RPX1NUWUxFW3JdKSxcbiAgW29dOiBPYmplY3Qua2V5cyhQUkVGSVhfVE9fU1RZTEVbb10pXG59O1xuXG5mdW5jdGlvbiBpc1Jlc2VydmVkKG5hbWUpIHtcbiAgcmV0dXJuIH5SRVNFUlZFRF9DTEFTU0VTLmluZGV4T2YobmFtZSk7XG59XG5cbmZ1bmN0aW9uIGdldEljb25OYW1lKGNzc1ByZWZpeCwgY2xzKSB7XG4gIGNvbnN0IHBhcnRzID0gY2xzLnNwbGl0KCctJyk7XG4gIGNvbnN0IHByZWZpeCA9IHBhcnRzWzBdO1xuICBjb25zdCBpY29uTmFtZSA9IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy0nKTtcblxuICBpZiAocHJlZml4ID09PSBjc3NQcmVmaXggJiYgaWNvbk5hbWUgIT09ICcnICYmICFpc1Jlc2VydmVkKGljb25OYW1lKSkge1xuICAgIHJldHVybiBpY29uTmFtZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuY29uc3QgYnVpbGQgPSAoKSA9PiB7XG4gIGNvbnN0IGxvb2t1cCA9IHJlZHVjZXIgPT4ge1xuICAgIHJldHVybiByZWR1Y2Uoc3R5bGVzLCAobyQkMSwgc3R5bGUsIHByZWZpeCkgPT4ge1xuICAgICAgbyQkMVtwcmVmaXhdID0gcmVkdWNlKHN0eWxlLCByZWR1Y2VyLCB7fSk7XG4gICAgICByZXR1cm4gbyQkMTtcbiAgICB9LCB7fSk7XG4gIH07XG5cbiAgX2J5VW5pY29kZSA9IGxvb2t1cCgoYWNjLCBpY29uLCBpY29uTmFtZSkgPT4ge1xuICAgIGlmIChpY29uWzNdKSB7XG4gICAgICBhY2NbaWNvblszXV0gPSBpY29uTmFtZTtcbiAgICB9XG5cbiAgICBpZiAoaWNvblsyXSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IGljb25bMl0uZmlsdGVyKGEkJDEgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGEkJDEgPT09ICdudW1iZXInO1xuICAgICAgfSk7XG4gICAgICBhbGlhc2VzLmZvckVhY2goYWxpYXMgPT4ge1xuICAgICAgICBhY2NbYWxpYXMudG9TdHJpbmcoMTYpXSA9IGljb25OYW1lO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSk7XG4gIF9ieUxpZ2F0dXJlID0gbG9va3VwKChhY2MsIGljb24sIGljb25OYW1lKSA9PiB7XG4gICAgYWNjW2ljb25OYW1lXSA9IGljb25OYW1lO1xuXG4gICAgaWYgKGljb25bMl0pIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBpY29uWzJdLmZpbHRlcihhJCQxID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBhJCQxID09PSAnc3RyaW5nJztcbiAgICAgIH0pO1xuICAgICAgYWxpYXNlcy5mb3JFYWNoKGFsaWFzID0+IHtcbiAgICAgICAgYWNjW2FsaWFzXSA9IGljb25OYW1lO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSk7XG4gIF9ieUFsaWFzID0gbG9va3VwKChhY2MsIGljb24sIGljb25OYW1lKSA9PiB7XG4gICAgY29uc3QgYWxpYXNlcyA9IGljb25bMl07XG4gICAgYWNjW2ljb25OYW1lXSA9IGljb25OYW1lO1xuICAgIGFsaWFzZXMuZm9yRWFjaChhbGlhcyA9PiB7XG4gICAgICBhY2NbYWxpYXNdID0gaWNvbk5hbWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSk7IC8vIElmIHdlIGhhdmUgYSBLaXQsIHdlIGNhbid0IGRldGVybWluZSBpZiByZWd1bGFyIGlzIGF2YWlsYWJsZSBzaW5jZSB3ZVxuICAvLyBjb3VsZCBiZSBhdXRvLWZldGNoaW5nIGl0LiBXZSdsbCBoYXZlIHRvIGFzc3VtZSB0aGF0IGl0IGlzIGF2YWlsYWJsZS5cblxuICBjb25zdCBoYXNSZWd1bGFyID0gJ2ZhcicgaW4gc3R5bGVzIHx8IGNvbmZpZy5hdXRvRmV0Y2hTdmc7XG4gIGNvbnN0IHNoaW1Mb29rdXBzID0gcmVkdWNlKHNoaW1zLCAoYWNjLCBzaGltKSA9PiB7XG4gICAgY29uc3QgbWF5YmVOYW1lTWF5YmVVbmljb2RlID0gc2hpbVswXTtcbiAgICBsZXQgcHJlZml4ID0gc2hpbVsxXTtcbiAgICBjb25zdCBpY29uTmFtZSA9IHNoaW1bMl07XG5cbiAgICBpZiAocHJlZml4ID09PSAnZmFyJyAmJiAhaGFzUmVndWxhcikge1xuICAgICAgcHJlZml4ID0gJ2Zhcyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtYXliZU5hbWVNYXliZVVuaWNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBhY2MubmFtZXNbbWF5YmVOYW1lTWF5YmVVbmljb2RlXSA9IHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1heWJlTmFtZU1heWJlVW5pY29kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGFjYy51bmljb2Rlc1ttYXliZU5hbWVNYXliZVVuaWNvZGUudG9TdHJpbmcoMTYpXSA9IHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7XG4gICAgbmFtZXM6IHt9LFxuICAgIHVuaWNvZGVzOiB7fVxuICB9KTtcbiAgX2J5T2xkTmFtZSA9IHNoaW1Mb29rdXBzLm5hbWVzO1xuICBfYnlPbGRVbmljb2RlID0gc2hpbUxvb2t1cHMudW5pY29kZXM7XG4gIF9kZWZhdWx0VXNhYmxlUHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KGNvbmZpZy5zdHlsZURlZmF1bHQsIHtcbiAgICBmYW1pbHk6IGNvbmZpZy5mYW1pbHlEZWZhdWx0XG4gIH0pO1xufTtcbm9uQ2hhbmdlKGMkJDEgPT4ge1xuICBfZGVmYXVsdFVzYWJsZVByZWZpeCA9IGdldENhbm9uaWNhbFByZWZpeChjJCQxLnN0eWxlRGVmYXVsdCwge1xuICAgIGZhbWlseTogY29uZmlnLmZhbWlseURlZmF1bHRcbiAgfSk7XG59KTtcbmJ1aWxkKCk7XG5mdW5jdGlvbiBieVVuaWNvZGUocHJlZml4LCB1bmljb2RlKSB7XG4gIHJldHVybiAoX2J5VW5pY29kZVtwcmVmaXhdIHx8IHt9KVt1bmljb2RlXTtcbn1cbmZ1bmN0aW9uIGJ5TGlnYXR1cmUocHJlZml4LCBsaWdhdHVyZSkge1xuICByZXR1cm4gKF9ieUxpZ2F0dXJlW3ByZWZpeF0gfHwge30pW2xpZ2F0dXJlXTtcbn1cbmZ1bmN0aW9uIGJ5QWxpYXMocHJlZml4LCBhbGlhcykge1xuICByZXR1cm4gKF9ieUFsaWFzW3ByZWZpeF0gfHwge30pW2FsaWFzXTtcbn1cbmZ1bmN0aW9uIGJ5T2xkTmFtZShuYW1lKSB7XG4gIHJldHVybiBfYnlPbGROYW1lW25hbWVdIHx8IHtcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgaWNvbk5hbWU6IG51bGxcbiAgfTtcbn1cbmZ1bmN0aW9uIGJ5T2xkVW5pY29kZSh1bmljb2RlKSB7XG4gIGNvbnN0IG9sZFVuaWNvZGUgPSBfYnlPbGRVbmljb2RlW3VuaWNvZGVdO1xuICBjb25zdCBuZXdVbmljb2RlID0gYnlVbmljb2RlKCdmYXMnLCB1bmljb2RlKTtcbiAgcmV0dXJuIG9sZFVuaWNvZGUgfHwgKG5ld1VuaWNvZGUgPyB7XG4gICAgcHJlZml4OiAnZmFzJyxcbiAgICBpY29uTmFtZTogbmV3VW5pY29kZVxuICB9IDogbnVsbCkgfHwge1xuICAgIHByZWZpeDogbnVsbCxcbiAgICBpY29uTmFtZTogbnVsbFxuICB9O1xufVxuZnVuY3Rpb24gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpIHtcbiAgcmV0dXJuIF9kZWZhdWx0VXNhYmxlUHJlZml4O1xufVxuY29uc3QgZW1wdHlDYW5vbmljYWxJY29uID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHByZWZpeDogbnVsbCxcbiAgICBpY29uTmFtZTogbnVsbCxcbiAgICByZXN0OiBbXVxuICB9O1xufTtcbmZ1bmN0aW9uIGdldENhbm9uaWNhbFByZWZpeChzdHlsZU9yUHJlZml4KSB7XG4gIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICBjb25zdCB7XG4gICAgZmFtaWx5ID0gYVxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBzdHlsZSA9IFBSRUZJWF9UT19TVFlMRVtmYW1pbHldW3N0eWxlT3JQcmVmaXhdO1xuICBjb25zdCBwcmVmaXggPSBTVFlMRV9UT19QUkVGSVhbZmFtaWx5XVtzdHlsZU9yUHJlZml4XSB8fCBTVFlMRV9UT19QUkVGSVhbZmFtaWx5XVtzdHlsZV07XG4gIGNvbnN0IGRlZmluZWQgPSBzdHlsZU9yUHJlZml4IGluIG5hbWVzcGFjZS5zdHlsZXMgPyBzdHlsZU9yUHJlZml4IDogbnVsbDtcbiAgY29uc3QgcmVzdWx0ID0gcHJlZml4IHx8IGRlZmluZWQgfHwgbnVsbDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmNvbnN0IFBSRUZJWEVTX0ZPUl9GQU1JTFkgPSB7XG4gIFthXTogT2JqZWN0LmtleXMoUFJFRklYX1RPX0xPTkdfU1RZTEVbYV0pLFxuICBbcl06IE9iamVjdC5rZXlzKFBSRUZJWF9UT19MT05HX1NUWUxFW3JdKSxcbiAgW29dOiBPYmplY3Qua2V5cyhQUkVGSVhfVE9fTE9OR19TVFlMRVtvXSlcbn07XG5mdW5jdGlvbiBnZXRDYW5vbmljYWxJY29uKHZhbHVlcykge1xuICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgY29uc3Qge1xuICAgIHNraXBMb29rdXBzID0gZmFsc2VcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgZmFtUHJvcHMgPSB7XG4gICAgW2FdOiBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KGEpLFxuICAgIFtyXTogXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChyKSxcbiAgICBbb106IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQobylcbiAgfTtcbiAgbGV0IGdpdmVuUHJlZml4ID0gbnVsbDtcbiAgbGV0IGZhbWlseSA9IGE7XG4gIGNvbnN0IG5vbkR1b3RvbmVGYW1pbHlJZHMgPSBjLmZpbHRlcihmYW1pbHlJZCA9PiBmYW1pbHlJZCAhPT0gdCk7XG4gIG5vbkR1b3RvbmVGYW1pbHlJZHMuZm9yRWFjaChmYW1pbHlJZCA9PiB7XG4gICAgaWYgKHZhbHVlcy5pbmNsdWRlcyhmYW1Qcm9wc1tmYW1pbHlJZF0pIHx8IHZhbHVlcy5zb21lKHYkJDEgPT4gUFJFRklYRVNfRk9SX0ZBTUlMWVtmYW1pbHlJZF0uaW5jbHVkZXModiQkMSkpKSB7XG4gICAgICBmYW1pbHkgPSBmYW1pbHlJZDtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBjYW5vbmljYWwgPSB2YWx1ZXMucmVkdWNlKChhY2MsIGNscykgPT4ge1xuICAgIGNvbnN0IGljb25OYW1lID0gZ2V0SWNvbk5hbWUoY29uZmlnLmNzc1ByZWZpeCwgY2xzKTtcblxuICAgIGlmIChzdHlsZXNbY2xzXSkge1xuICAgICAgY2xzID0gTE9OR19TVFlMRVtmYW1pbHldLmluY2x1ZGVzKGNscykgPyBMT05HX1NUWUxFX1RPX1BSRUZJWFtmYW1pbHldW2Nsc10gOiBjbHM7XG4gICAgICBnaXZlblByZWZpeCA9IGNscztcbiAgICAgIGFjYy5wcmVmaXggPSBjbHM7XG4gICAgfSBlbHNlIGlmIChQUkVGSVhFU1tmYW1pbHldLmluZGV4T2YoY2xzKSA+IC0xKSB7XG4gICAgICBnaXZlblByZWZpeCA9IGNscztcbiAgICAgIGFjYy5wcmVmaXggPSBnZXRDYW5vbmljYWxQcmVmaXgoY2xzLCB7XG4gICAgICAgIGZhbWlseVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpY29uTmFtZSkge1xuICAgICAgYWNjLmljb25OYW1lID0gaWNvbk5hbWU7XG4gICAgfSBlbHNlIGlmIChjbHMgIT09IGNvbmZpZy5yZXBsYWNlbWVudENsYXNzICYmICFub25EdW90b25lRmFtaWx5SWRzLnNvbWUoZmFtaWx5TmFtZSA9PiBjbHMgPT09IGZhbVByb3BzW2ZhbWlseU5hbWVdKSkge1xuICAgICAgYWNjLnJlc3QucHVzaChjbHMpO1xuICAgIH1cblxuICAgIGlmICghc2tpcExvb2t1cHMgJiYgYWNjLnByZWZpeCAmJiBhY2MuaWNvbk5hbWUpIHtcbiAgICAgIGNvbnN0IHNoaW0gPSBnaXZlblByZWZpeCA9PT0gJ2ZhJyA/IGJ5T2xkTmFtZShhY2MuaWNvbk5hbWUpIDoge307XG4gICAgICBjb25zdCBhbGlhc0ljb25OYW1lID0gYnlBbGlhcyhhY2MucHJlZml4LCBhY2MuaWNvbk5hbWUpO1xuXG4gICAgICBpZiAoc2hpbS5wcmVmaXgpIHtcbiAgICAgICAgZ2l2ZW5QcmVmaXggPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBhY2MuaWNvbk5hbWUgPSBzaGltLmljb25OYW1lIHx8IGFsaWFzSWNvbk5hbWUgfHwgYWNjLmljb25OYW1lO1xuICAgICAgYWNjLnByZWZpeCA9IHNoaW0ucHJlZml4IHx8IGFjYy5wcmVmaXg7XG5cbiAgICAgIGlmIChhY2MucHJlZml4ID09PSAnZmFyJyAmJiAhc3R5bGVzWydmYXInXSAmJiBzdHlsZXNbJ2ZhcyddICYmICFjb25maWcuYXV0b0ZldGNoU3ZnKSB7XG4gICAgICAgIC8vIEFsbG93IGEgZmFsbGJhY2sgZnJvbSB0aGUgcmVndWxhciBzdHlsZSB0byBzb2xpZCBpZiByZWd1bGFyIGlzIG5vdCBhdmFpbGFibGVcbiAgICAgICAgLy8gYnV0IG9ubHkgaWYgd2UgYXJlbid0IGF1dG8tZmV0Y2hpbmcgU1ZHc1xuICAgICAgICBhY2MucHJlZml4ID0gJ2Zhcyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgZW1wdHlDYW5vbmljYWxJY29uKCkpO1xuXG4gIGlmICh2YWx1ZXMuaW5jbHVkZXMoJ2ZhLWJyYW5kcycpIHx8IHZhbHVlcy5pbmNsdWRlcygnZmFiJykpIHtcbiAgICBjYW5vbmljYWwucHJlZml4ID0gJ2ZhYic7XG4gIH1cblxuICBpZiAodmFsdWVzLmluY2x1ZGVzKCdmYS1kdW90b25lJykgfHwgdmFsdWVzLmluY2x1ZGVzKCdmYWQnKSkge1xuICAgIGNhbm9uaWNhbC5wcmVmaXggPSAnZmFkJztcbiAgfVxuXG4gIGlmICghY2Fub25pY2FsLnByZWZpeCAmJiBmYW1pbHkgPT09IHIgJiYgKHN0eWxlc1snZmFzcyddIHx8IGNvbmZpZy5hdXRvRmV0Y2hTdmcpKSB7XG4gICAgY2Fub25pY2FsLnByZWZpeCA9ICdmYXNzJztcbiAgICBjYW5vbmljYWwuaWNvbk5hbWUgPSBieUFsaWFzKGNhbm9uaWNhbC5wcmVmaXgsIGNhbm9uaWNhbC5pY29uTmFtZSkgfHwgY2Fub25pY2FsLmljb25OYW1lO1xuICB9XG5cbiAgaWYgKCFjYW5vbmljYWwucHJlZml4ICYmIGZhbWlseSA9PT0gbyAmJiAoc3R5bGVzWydmYXNkcyddIHx8IGNvbmZpZy5hdXRvRmV0Y2hTdmcpKSB7XG4gICAgY2Fub25pY2FsLnByZWZpeCA9ICdmYXNkcyc7XG4gICAgY2Fub25pY2FsLmljb25OYW1lID0gYnlBbGlhcyhjYW5vbmljYWwucHJlZml4LCBjYW5vbmljYWwuaWNvbk5hbWUpIHx8IGNhbm9uaWNhbC5pY29uTmFtZTtcbiAgfVxuXG4gIGlmIChjYW5vbmljYWwucHJlZml4ID09PSAnZmEnIHx8IGdpdmVuUHJlZml4ID09PSAnZmEnKSB7XG4gICAgLy8gVGhlIGZhIHByZWZpeCBpcyBub3QgY2Fub25pY2FsLiBTbyBpZiBpdCBoYXMgbWFkZSBpdCB0aHJvdWdoIHVudGlsIHRoaXMgcG9pbnRcbiAgICAvLyB3ZSB3aWxsIHNoaWZ0IGl0IHRvIHRoZSBjb3JyZWN0IHByZWZpeC5cbiAgICBjYW5vbmljYWwucHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpIHx8ICdmYXMnO1xuICB9XG5cbiAgcmV0dXJuIGNhbm9uaWNhbDtcbn1cblxuY2xhc3MgTGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGVmaW5pdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGFkZCgpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZGVmaW5pdGlvbnMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBkZWZpbml0aW9uc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRpdGlvbnMgPSBkZWZpbml0aW9ucy5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLCB7fSk7XG4gICAgT2JqZWN0LmtleXMoYWRkaXRpb25zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmRlZmluaXRpb25zW2tleV0gPSB7IC4uLih0aGlzLmRlZmluaXRpb25zW2tleV0gfHwge30pLFxuICAgICAgICAuLi5hZGRpdGlvbnNba2V5XVxuICAgICAgfTtcbiAgICAgIGRlZmluZUljb25zKGtleSwgYWRkaXRpb25zW2tleV0pOyAvLyBUT0RPIGNhbiB3ZSBzdG9wIGRvaW5nIHRoaXM/IFdlIGNhbid0IGdldCB0aGUgaWNvbnMgYnkgJ2ZhLXNvbGlkJyBhbnkgbG9uZ2VyIHNvIHRoaXMgcHJvYmFibHkgbmVlZHMgdG8gY2hhbmdlXG5cbiAgICAgIGNvbnN0IGxvbmdQcmVmaXggPSBQUkVGSVhfVE9fTE9OR19TVFlMRVthXVtrZXldO1xuICAgICAgaWYgKGxvbmdQcmVmaXgpIGRlZmluZUljb25zKGxvbmdQcmVmaXgsIGFkZGl0aW9uc1trZXldKTtcbiAgICAgIGJ1aWxkKCk7XG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmRlZmluaXRpb25zID0ge307XG4gIH1cblxuICBfcHVsbERlZmluaXRpb25zKGFkZGl0aW9ucywgZGVmaW5pdGlvbikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBkZWZpbml0aW9uLnByZWZpeCAmJiBkZWZpbml0aW9uLmljb25OYW1lICYmIGRlZmluaXRpb24uaWNvbiA/IHtcbiAgICAgIDA6IGRlZmluaXRpb25cbiAgICB9IDogZGVmaW5pdGlvbjtcbiAgICBPYmplY3Qua2V5cyhub3JtYWxpemVkKS5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpY29uTmFtZSxcbiAgICAgICAgaWNvblxuICAgICAgfSA9IG5vcm1hbGl6ZWRba2V5XTtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBpY29uWzJdO1xuICAgICAgaWYgKCFhZGRpdGlvbnNbcHJlZml4XSkgYWRkaXRpb25zW3ByZWZpeF0gPSB7fTtcblxuICAgICAgaWYgKGFsaWFzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhbGlhc2VzLmZvckVhY2goYWxpYXMgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYWxpYXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBhZGRpdGlvbnNbcHJlZml4XVthbGlhc10gPSBpY29uO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGFkZGl0aW9uc1twcmVmaXhdW2ljb25OYW1lXSA9IGljb247XG4gICAgfSk7XG4gICAgcmV0dXJuIGFkZGl0aW9ucztcbiAgfVxuXG59XG5cbmxldCBfcGx1Z2lucyA9IFtdO1xubGV0IF9ob29rcyA9IHt9O1xuY29uc3QgcHJvdmlkZXJzID0ge307XG5jb25zdCBkZWZhdWx0UHJvdmlkZXJLZXlzID0gT2JqZWN0LmtleXMocHJvdmlkZXJzKTtcbmZ1bmN0aW9uIHJlZ2lzdGVyUGx1Z2lucyhuZXh0UGx1Z2lucywgX3JlZikge1xuICBsZXQge1xuICAgIG1peG91dHNUbzogb2JqXG4gIH0gPSBfcmVmO1xuICBfcGx1Z2lucyA9IG5leHRQbHVnaW5zO1xuICBfaG9va3MgPSB7fTtcbiAgT2JqZWN0LmtleXMocHJvdmlkZXJzKS5mb3JFYWNoKGsgPT4ge1xuICAgIGlmIChkZWZhdWx0UHJvdmlkZXJLZXlzLmluZGV4T2YoaykgPT09IC0xKSB7XG4gICAgICBkZWxldGUgcHJvdmlkZXJzW2tdO1xuICAgIH1cbiAgfSk7XG5cbiAgX3BsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgIGNvbnN0IG1peG91dCA9IHBsdWdpbi5taXhvdXQgPyBwbHVnaW4ubWl4b3V0KCkgOiB7fTtcbiAgICBPYmplY3Qua2V5cyhtaXhvdXQpLmZvckVhY2godGsgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBtaXhvdXRbdGtdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9ialt0a10gPSBtaXhvdXRbdGtdO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG1peG91dFt0a10gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG1peG91dFt0a10pLmZvckVhY2goc2sgPT4ge1xuICAgICAgICAgIGlmICghb2JqW3RrXSkge1xuICAgICAgICAgICAgb2JqW3RrXSA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9ialt0a11bc2tdID0gbWl4b3V0W3RrXVtza107XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHBsdWdpbi5ob29rcykge1xuICAgICAgY29uc3QgaG9va3MgPSBwbHVnaW4uaG9va3MoKTtcbiAgICAgIE9iamVjdC5rZXlzKGhvb2tzKS5mb3JFYWNoKGhvb2sgPT4ge1xuICAgICAgICBpZiAoIV9ob29rc1tob29rXSkge1xuICAgICAgICAgIF9ob29rc1tob29rXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgX2hvb2tzW2hvb2tdLnB1c2goaG9va3NbaG9va10pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHBsdWdpbi5wcm92aWRlcykge1xuICAgICAgcGx1Z2luLnByb3ZpZGVzKHByb3ZpZGVycyk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gY2hhaW5Ib29rcyhob29rLCBhY2N1bXVsYXRvcikge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBjb25zdCBob29rRm5zID0gX2hvb2tzW2hvb2tdIHx8IFtdO1xuICBob29rRm5zLmZvckVhY2goaG9va0ZuID0+IHtcbiAgICBhY2N1bXVsYXRvciA9IGhvb2tGbi5hcHBseShudWxsLCBbYWNjdW11bGF0b3IsIC4uLmFyZ3NdKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWNhbGxcbiAgfSk7XG4gIHJldHVybiBhY2N1bXVsYXRvcjtcbn1cbmZ1bmN0aW9uIGNhbGxIb29rcyhob29rKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuXG4gIGNvbnN0IGhvb2tGbnMgPSBfaG9va3NbaG9va10gfHwgW107XG4gIGhvb2tGbnMuZm9yRWFjaChob29rRm4gPT4ge1xuICAgIGhvb2tGbi5hcHBseShudWxsLCBhcmdzKTtcbiAgfSk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBjYWxsUHJvdmlkZWQoKSB7XG4gIGNvbnN0IGhvb2sgPSBhcmd1bWVudHNbMF07XG4gIGNvbnN0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICByZXR1cm4gcHJvdmlkZXJzW2hvb2tdID8gcHJvdmlkZXJzW2hvb2tdLmFwcGx5KG51bGwsIGFyZ3MpIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBmaW5kSWNvbkRlZmluaXRpb24oaWNvbkxvb2t1cCkge1xuICBpZiAoaWNvbkxvb2t1cC5wcmVmaXggPT09ICdmYScpIHtcbiAgICBpY29uTG9va3VwLnByZWZpeCA9ICdmYXMnO1xuICB9XG5cbiAgbGV0IHtcbiAgICBpY29uTmFtZVxuICB9ID0gaWNvbkxvb2t1cDtcbiAgY29uc3QgcHJlZml4ID0gaWNvbkxvb2t1cC5wcmVmaXggfHwgZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICBpZiAoIWljb25OYW1lKSByZXR1cm47XG4gIGljb25OYW1lID0gYnlBbGlhcyhwcmVmaXgsIGljb25OYW1lKSB8fCBpY29uTmFtZTtcbiAgcmV0dXJuIGljb25Gcm9tTWFwcGluZyhsaWJyYXJ5LmRlZmluaXRpb25zLCBwcmVmaXgsIGljb25OYW1lKSB8fCBpY29uRnJvbU1hcHBpbmcobmFtZXNwYWNlLnN0eWxlcywgcHJlZml4LCBpY29uTmFtZSk7XG59XG5jb25zdCBsaWJyYXJ5ID0gbmV3IExpYnJhcnkoKTtcbmNvbnN0IG5vQXV0byA9ICgpID0+IHtcbiAgY29uZmlnLmF1dG9SZXBsYWNlU3ZnID0gZmFsc2U7XG4gIGNvbmZpZy5vYnNlcnZlTXV0YXRpb25zID0gZmFsc2U7XG4gIGNhbGxIb29rcygnbm9BdXRvJyk7XG59O1xuY29uc3QgZG9tID0ge1xuICBpMnN2ZzogZnVuY3Rpb24gKCkge1xuICAgIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgaWYgKElTX0RPTSkge1xuICAgICAgY2FsbEhvb2tzKCdiZWZvcmVJMnN2ZycsIHBhcmFtcyk7XG4gICAgICBjYWxsUHJvdmlkZWQoJ3BzZXVkb0VsZW1lbnRzMnN2ZycsIHBhcmFtcyk7XG4gICAgICByZXR1cm4gY2FsbFByb3ZpZGVkKCdpMnN2ZycsIHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ09wZXJhdGlvbiByZXF1aXJlcyBhIERPTSBvZiBzb21lIGtpbmQuJykpO1xuICAgIH1cbiAgfSxcbiAgd2F0Y2g6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICBjb25zdCB7XG4gICAgICBhdXRvUmVwbGFjZVN2Z1Jvb3RcbiAgICB9ID0gcGFyYW1zO1xuXG4gICAgaWYgKGNvbmZpZy5hdXRvUmVwbGFjZVN2ZyA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbmZpZy5hdXRvUmVwbGFjZVN2ZyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uZmlnLm9ic2VydmVNdXRhdGlvbnMgPSB0cnVlO1xuICAgIGRvbXJlYWR5KCgpID0+IHtcbiAgICAgIGF1dG9SZXBsYWNlKHtcbiAgICAgICAgYXV0b1JlcGxhY2VTdmdSb290XG4gICAgICB9KTtcbiAgICAgIGNhbGxIb29rcygnd2F0Y2gnLCBwYXJhbXMpO1xuICAgIH0pO1xuICB9XG59O1xuY29uc3QgcGFyc2UgPSB7XG4gIGljb246IGljb24gPT4ge1xuICAgIGlmIChpY29uID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdvYmplY3QnICYmIGljb24ucHJlZml4ICYmIGljb24uaWNvbk5hbWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeDogaWNvbi5wcmVmaXgsXG4gICAgICAgIGljb25OYW1lOiBieUFsaWFzKGljb24ucHJlZml4LCBpY29uLmljb25OYW1lKSB8fCBpY29uLmljb25OYW1lXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGljb24pICYmIGljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICBjb25zdCBpY29uTmFtZSA9IGljb25bMV0uaW5kZXhPZignZmEtJykgPT09IDAgPyBpY29uWzFdLnNsaWNlKDMpIDogaWNvblsxXTtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGdldENhbm9uaWNhbFByZWZpeChpY29uWzBdKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeCxcbiAgICAgICAgaWNvbk5hbWU6IGJ5QWxpYXMocHJlZml4LCBpY29uTmFtZSkgfHwgaWNvbk5hbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpY29uID09PSAnc3RyaW5nJyAmJiAoaWNvbi5pbmRleE9mKFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKSkgPiAtMSB8fCBpY29uLm1hdGNoKElDT05fU0VMRUNUSU9OX1NZTlRBWF9QQVRURVJOKSkpIHtcbiAgICAgIGNvbnN0IGNhbm9uaWNhbEljb24gPSBnZXRDYW5vbmljYWxJY29uKGljb24uc3BsaXQoJyAnKSwge1xuICAgICAgICBza2lwTG9va3VwczogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmVmaXg6IGNhbm9uaWNhbEljb24ucHJlZml4IHx8IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKSxcbiAgICAgICAgaWNvbk5hbWU6IGJ5QWxpYXMoY2Fub25pY2FsSWNvbi5wcmVmaXgsIGNhbm9uaWNhbEljb24uaWNvbk5hbWUpIHx8IGNhbm9uaWNhbEljb24uaWNvbk5hbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpY29uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgcHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhwcmVmaXgsIGljb24pIHx8IGljb25cbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xuY29uc3QgYXBpID0ge1xuICBub0F1dG8sXG4gIGNvbmZpZyxcbiAgZG9tLFxuICBwYXJzZSxcbiAgbGlicmFyeSxcbiAgZmluZEljb25EZWZpbml0aW9uLFxuICB0b0h0bWxcbn07XG5cbmNvbnN0IGF1dG9SZXBsYWNlID0gZnVuY3Rpb24gKCkge1xuICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgY29uc3Qge1xuICAgIGF1dG9SZXBsYWNlU3ZnUm9vdCA9IERPQ1VNRU5UXG4gIH0gPSBwYXJhbXM7XG4gIGlmICgoT2JqZWN0LmtleXMobmFtZXNwYWNlLnN0eWxlcykubGVuZ3RoID4gMCB8fCBjb25maWcuYXV0b0ZldGNoU3ZnKSAmJiBJU19ET00gJiYgY29uZmlnLmF1dG9SZXBsYWNlU3ZnKSBhcGkuZG9tLmkyc3ZnKHtcbiAgICBub2RlOiBhdXRvUmVwbGFjZVN2Z1Jvb3RcbiAgfSk7XG59O1xuXG5mdW5jdGlvbiBkb21WYXJpYW50cyh2YWwsIGFic3RyYWN0Q3JlYXRvcikge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsLCAnYWJzdHJhY3QnLCB7XG4gICAgZ2V0OiBhYnN0cmFjdENyZWF0b3JcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdodG1sJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHZhbC5hYnN0cmFjdC5tYXAoYSA9PiB0b0h0bWwoYSkpO1xuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdub2RlJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IHZhbC5odG1sO1xuICAgICAgcmV0dXJuIGNvbnRhaW5lci5jaGlsZHJlbjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gdmFsO1xufVxuXG5mdW5jdGlvbiBhc0ljb24gKF9yZWYpIHtcbiAgbGV0IHtcbiAgICBjaGlsZHJlbixcbiAgICBtYWluLFxuICAgIG1hc2ssXG4gICAgYXR0cmlidXRlcyxcbiAgICBzdHlsZXMsXG4gICAgdHJhbnNmb3JtXG4gIH0gPSBfcmVmO1xuXG4gIGlmICh0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSAmJiBtYWluLmZvdW5kICYmICFtYXNrLmZvdW5kKSB7XG4gICAgY29uc3Qge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gbWFpbjtcbiAgICBjb25zdCBvZmZzZXQgPSB7XG4gICAgICB4OiB3aWR0aCAvIGhlaWdodCAvIDIsXG4gICAgICB5OiAwLjVcbiAgICB9O1xuICAgIGF0dHJpYnV0ZXNbJ3N0eWxlJ10gPSBqb2luU3R5bGVzKHsgLi4uc3R5bGVzLFxuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBcIlwiLmNvbmNhdChvZmZzZXQueCArIHRyYW5zZm9ybS54IC8gMTYsIFwiZW0gXCIpLmNvbmNhdChvZmZzZXQueSArIHRyYW5zZm9ybS55IC8gMTYsIFwiZW1cIilcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBbe1xuICAgIHRhZzogJ3N2ZycsXG4gICAgYXR0cmlidXRlcyxcbiAgICBjaGlsZHJlblxuICB9XTtcbn1cblxuZnVuY3Rpb24gYXNTeW1ib2wgKF9yZWYpIHtcbiAgbGV0IHtcbiAgICBwcmVmaXgsXG4gICAgaWNvbk5hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgYXR0cmlidXRlcyxcbiAgICBzeW1ib2xcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGlkID0gc3ltYm9sID09PSB0cnVlID8gXCJcIi5jb25jYXQocHJlZml4LCBcIi1cIikuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoaWNvbk5hbWUpIDogc3ltYm9sO1xuICByZXR1cm4gW3tcbiAgICB0YWc6ICdzdmcnLFxuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIHN0eWxlOiAnZGlzcGxheTogbm9uZTsnXG4gICAgfSxcbiAgICBjaGlsZHJlbjogW3tcbiAgICAgIHRhZzogJ3N5bWJvbCcsXG4gICAgICBhdHRyaWJ1dGVzOiB7IC4uLmF0dHJpYnV0ZXMsXG4gICAgICAgIGlkXG4gICAgICB9LFxuICAgICAgY2hpbGRyZW5cbiAgICB9XVxuICB9XTtcbn1cblxuZnVuY3Rpb24gbWFrZUlubGluZVN2Z0Fic3RyYWN0KHBhcmFtcykge1xuICBjb25zdCB7XG4gICAgaWNvbnM6IHtcbiAgICAgIG1haW4sXG4gICAgICBtYXNrXG4gICAgfSxcbiAgICBwcmVmaXgsXG4gICAgaWNvbk5hbWUsXG4gICAgdHJhbnNmb3JtLFxuICAgIHN5bWJvbCxcbiAgICB0aXRsZSxcbiAgICBtYXNrSWQsXG4gICAgdGl0bGVJZCxcbiAgICBleHRyYSxcbiAgICB3YXRjaGFibGUgPSBmYWxzZVxuICB9ID0gcGFyYW1zO1xuICBjb25zdCB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH0gPSBtYXNrLmZvdW5kID8gbWFzayA6IG1haW47XG4gIGNvbnN0IGlzVXBsb2FkZWRJY29uID0gcHJlZml4ID09PSAnZmFrJztcbiAgY29uc3QgYXR0ckNsYXNzID0gW2NvbmZpZy5yZXBsYWNlbWVudENsYXNzLCBpY29uTmFtZSA/IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoaWNvbk5hbWUpIDogJyddLmZpbHRlcihjID0+IGV4dHJhLmNsYXNzZXMuaW5kZXhPZihjKSA9PT0gLTEpLmZpbHRlcihjID0+IGMgIT09ICcnIHx8ICEhYykuY29uY2F0KGV4dHJhLmNsYXNzZXMpLmpvaW4oJyAnKTtcbiAgbGV0IGNvbnRlbnQgPSB7XG4gICAgY2hpbGRyZW46IFtdLFxuICAgIGF0dHJpYnV0ZXM6IHsgLi4uZXh0cmEuYXR0cmlidXRlcyxcbiAgICAgICdkYXRhLXByZWZpeCc6IHByZWZpeCxcbiAgICAgICdkYXRhLWljb24nOiBpY29uTmFtZSxcbiAgICAgICdjbGFzcyc6IGF0dHJDbGFzcyxcbiAgICAgICdyb2xlJzogZXh0cmEuYXR0cmlidXRlcy5yb2xlIHx8ICdpbWcnLFxuICAgICAgJ3htbG5zJzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgICAgICd2aWV3Qm94JzogXCIwIDAgXCIuY29uY2F0KHdpZHRoLCBcIiBcIikuY29uY2F0KGhlaWdodClcbiAgICB9XG4gIH07XG4gIGNvbnN0IHVwbG9hZGVkSWNvbldpZHRoU3R5bGUgPSBpc1VwbG9hZGVkSWNvbiAmJiAhfmV4dHJhLmNsYXNzZXMuaW5kZXhPZignZmEtZncnKSA/IHtcbiAgICB3aWR0aDogXCJcIi5jb25jYXQod2lkdGggLyBoZWlnaHQgKiAxNiAqIDAuMDYyNSwgXCJlbVwiKVxuICB9IDoge307XG5cbiAgaWYgKHdhdGNoYWJsZSkge1xuICAgIGNvbnRlbnQuYXR0cmlidXRlc1tEQVRBX0ZBX0kyU1ZHXSA9ICcnO1xuICB9XG5cbiAgaWYgKHRpdGxlKSB7XG4gICAgY29udGVudC5jaGlsZHJlbi5wdXNoKHtcbiAgICAgIHRhZzogJ3RpdGxlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgaWQ6IGNvbnRlbnQuYXR0cmlidXRlc1snYXJpYS1sYWJlbGxlZGJ5J10gfHwgXCJ0aXRsZS1cIi5jb25jYXQodGl0bGVJZCB8fCBuZXh0VW5pcXVlSWQoKSlcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3RpdGxlXVxuICAgIH0pO1xuICAgIGRlbGV0ZSBjb250ZW50LmF0dHJpYnV0ZXMudGl0bGU7XG4gIH1cblxuICBjb25zdCBhcmdzID0geyAuLi5jb250ZW50LFxuICAgIHByZWZpeCxcbiAgICBpY29uTmFtZSxcbiAgICBtYWluLFxuICAgIG1hc2ssXG4gICAgbWFza0lkLFxuICAgIHRyYW5zZm9ybSxcbiAgICBzeW1ib2wsXG4gICAgc3R5bGVzOiB7IC4uLnVwbG9hZGVkSWNvbldpZHRoU3R5bGUsXG4gICAgICAuLi5leHRyYS5zdHlsZXNcbiAgICB9XG4gIH07XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBhdHRyaWJ1dGVzXG4gIH0gPSBtYXNrLmZvdW5kICYmIG1haW4uZm91bmQgPyBjYWxsUHJvdmlkZWQoJ2dlbmVyYXRlQWJzdHJhY3RNYXNrJywgYXJncykgfHwge1xuICAgIGNoaWxkcmVuOiBbXSxcbiAgICBhdHRyaWJ1dGVzOiB7fVxuICB9IDogY2FsbFByb3ZpZGVkKCdnZW5lcmF0ZUFic3RyYWN0SWNvbicsIGFyZ3MpIHx8IHtcbiAgICBjaGlsZHJlbjogW10sXG4gICAgYXR0cmlidXRlczoge31cbiAgfTtcbiAgYXJncy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICBhcmdzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIGlmIChzeW1ib2wpIHtcbiAgICByZXR1cm4gYXNTeW1ib2woYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGFzSWNvbihhcmdzKTtcbiAgfVxufVxuZnVuY3Rpb24gbWFrZUxheWVyc1RleHRBYnN0cmFjdChwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIGNvbnRlbnQsXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHRyYW5zZm9ybSxcbiAgICB0aXRsZSxcbiAgICBleHRyYSxcbiAgICB3YXRjaGFibGUgPSBmYWxzZVxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRyaWJ1dGVzID0geyAuLi5leHRyYS5hdHRyaWJ1dGVzLFxuICAgIC4uLih0aXRsZSA/IHtcbiAgICAgICd0aXRsZSc6IHRpdGxlXG4gICAgfSA6IHt9KSxcbiAgICAnY2xhc3MnOiBleHRyYS5jbGFzc2VzLmpvaW4oJyAnKVxuICB9O1xuXG4gIGlmICh3YXRjaGFibGUpIHtcbiAgICBhdHRyaWJ1dGVzW0RBVEFfRkFfSTJTVkddID0gJyc7XG4gIH1cblxuICBjb25zdCBzdHlsZXMgPSB7IC4uLmV4dHJhLnN0eWxlc1xuICB9O1xuXG4gIGlmICh0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSkge1xuICAgIHN0eWxlc1sndHJhbnNmb3JtJ10gPSB0cmFuc2Zvcm1Gb3JDc3Moe1xuICAgICAgdHJhbnNmb3JtLFxuICAgICAgc3RhcnRDZW50ZXJlZDogdHJ1ZSxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgfSk7XG4gICAgc3R5bGVzWyctd2Via2l0LXRyYW5zZm9ybSddID0gc3R5bGVzWyd0cmFuc2Zvcm0nXTtcbiAgfVxuXG4gIGNvbnN0IHN0eWxlU3RyaW5nID0gam9pblN0eWxlcyhzdHlsZXMpO1xuXG4gIGlmIChzdHlsZVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgYXR0cmlidXRlc1snc3R5bGUnXSA9IHN0eWxlU3RyaW5nO1xuICB9XG5cbiAgY29uc3QgdmFsID0gW107XG4gIHZhbC5wdXNoKHtcbiAgICB0YWc6ICdzcGFuJyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGNoaWxkcmVuOiBbY29udGVudF1cbiAgfSk7XG5cbiAgaWYgKHRpdGxlKSB7XG4gICAgdmFsLnB1c2goe1xuICAgICAgdGFnOiAnc3BhbicsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGNsYXNzOiAnc3Itb25seSdcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3RpdGxlXVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cbmZ1bmN0aW9uIG1ha2VMYXllcnNDb3VudGVyQWJzdHJhY3QocGFyYW1zKSB7XG4gIGNvbnN0IHtcbiAgICBjb250ZW50LFxuICAgIHRpdGxlLFxuICAgIGV4dHJhXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7IC4uLmV4dHJhLmF0dHJpYnV0ZXMsXG4gICAgLi4uKHRpdGxlID8ge1xuICAgICAgJ3RpdGxlJzogdGl0bGVcbiAgICB9IDoge30pLFxuICAgICdjbGFzcyc6IGV4dHJhLmNsYXNzZXMuam9pbignICcpXG4gIH07XG4gIGNvbnN0IHN0eWxlU3RyaW5nID0gam9pblN0eWxlcyhleHRyYS5zdHlsZXMpO1xuXG4gIGlmIChzdHlsZVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgYXR0cmlidXRlc1snc3R5bGUnXSA9IHN0eWxlU3RyaW5nO1xuICB9XG5cbiAgY29uc3QgdmFsID0gW107XG4gIHZhbC5wdXNoKHtcbiAgICB0YWc6ICdzcGFuJyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGNoaWxkcmVuOiBbY29udGVudF1cbiAgfSk7XG5cbiAgaWYgKHRpdGxlKSB7XG4gICAgdmFsLnB1c2goe1xuICAgICAgdGFnOiAnc3BhbicsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGNsYXNzOiAnc3Itb25seSdcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3RpdGxlXVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxuY29uc3Qge1xuICBzdHlsZXM6IHN0eWxlcyQxXG59ID0gbmFtZXNwYWNlO1xuZnVuY3Rpb24gYXNGb3VuZEljb24oaWNvbikge1xuICBjb25zdCB3aWR0aCA9IGljb25bMF07XG4gIGNvbnN0IGhlaWdodCA9IGljb25bMV07XG4gIGNvbnN0IFt2ZWN0b3JEYXRhXSA9IGljb24uc2xpY2UoNCk7XG4gIGxldCBlbGVtZW50ID0gbnVsbDtcblxuICBpZiAoQXJyYXkuaXNBcnJheSh2ZWN0b3JEYXRhKSkge1xuICAgIGVsZW1lbnQgPSB7XG4gICAgICB0YWc6ICdnJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2xhc3M6IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoRFVPVE9ORV9DTEFTU0VTLkdST1VQKVxuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIGNsYXNzOiBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KERVT1RPTkVfQ0xBU1NFUy5TRUNPTkRBUlkpLFxuICAgICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgICAgIGQ6IHZlY3RvckRhdGFbMF1cbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIGNsYXNzOiBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KERVT1RPTkVfQ0xBU1NFUy5QUklNQVJZKSxcbiAgICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgICBkOiB2ZWN0b3JEYXRhWzFdXG4gICAgICAgIH1cbiAgICAgIH1dXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50ID0ge1xuICAgICAgdGFnOiAncGF0aCcsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgICBkOiB2ZWN0b3JEYXRhXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZm91bmQ6IHRydWUsXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIGljb246IGVsZW1lbnRcbiAgfTtcbn1cbmNvbnN0IG1pc3NpbmdJY29uUmVzb2x1dGlvbk1peGluID0ge1xuICBmb3VuZDogZmFsc2UsXG4gIHdpZHRoOiA1MTIsXG4gIGhlaWdodDogNTEyXG59O1xuXG5mdW5jdGlvbiBtYXliZU5vdGlmeU1pc3NpbmcoaWNvbk5hbWUsIHByZWZpeCkge1xuICBpZiAoIVBST0RVQ1RJT04gJiYgIWNvbmZpZy5zaG93TWlzc2luZ0ljb25zICYmIGljb25OYW1lKSB7XG4gICAgY29uc29sZS5lcnJvcihcIkljb24gd2l0aCBuYW1lIFxcXCJcIi5jb25jYXQoaWNvbk5hbWUsIFwiXFxcIiBhbmQgcHJlZml4IFxcXCJcIikuY29uY2F0KHByZWZpeCwgXCJcXFwiIGlzIG1pc3NpbmcuXCIpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSWNvbihpY29uTmFtZSwgcHJlZml4KSB7XG4gIGxldCBnaXZlblByZWZpeCA9IHByZWZpeDtcblxuICBpZiAocHJlZml4ID09PSAnZmEnICYmIGNvbmZpZy5zdHlsZURlZmF1bHQgIT09IG51bGwpIHtcbiAgICBwcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChnaXZlblByZWZpeCA9PT0gJ2ZhJykge1xuICAgICAgY29uc3Qgc2hpbSA9IGJ5T2xkTmFtZShpY29uTmFtZSkgfHwge307XG4gICAgICBpY29uTmFtZSA9IHNoaW0uaWNvbk5hbWUgfHwgaWNvbk5hbWU7XG4gICAgICBwcmVmaXggPSBzaGltLnByZWZpeCB8fCBwcmVmaXg7XG4gICAgfVxuXG4gICAgaWYgKGljb25OYW1lICYmIHByZWZpeCAmJiBzdHlsZXMkMVtwcmVmaXhdICYmIHN0eWxlcyQxW3ByZWZpeF1baWNvbk5hbWVdKSB7XG4gICAgICBjb25zdCBpY29uID0gc3R5bGVzJDFbcHJlZml4XVtpY29uTmFtZV07XG4gICAgICByZXR1cm4gcmVzb2x2ZShhc0ZvdW5kSWNvbihpY29uKSk7XG4gICAgfVxuXG4gICAgbWF5YmVOb3RpZnlNaXNzaW5nKGljb25OYW1lLCBwcmVmaXgpO1xuICAgIHJlc29sdmUoeyAuLi5taXNzaW5nSWNvblJlc29sdXRpb25NaXhpbixcbiAgICAgIGljb246IGNvbmZpZy5zaG93TWlzc2luZ0ljb25zICYmIGljb25OYW1lID8gY2FsbFByb3ZpZGVkKCdtaXNzaW5nSWNvbkFic3RyYWN0JykgfHwge30gOiB7fVxuICAgIH0pO1xuICB9KTtcbn1cblxuY29uc3Qgbm9vcCQxID0gKCkgPT4ge307XG5cbmNvbnN0IHAkMiA9IGNvbmZpZy5tZWFzdXJlUGVyZm9ybWFuY2UgJiYgUEVSRk9STUFOQ0UgJiYgUEVSRk9STUFOQ0UubWFyayAmJiBQRVJGT1JNQU5DRS5tZWFzdXJlID8gUEVSRk9STUFOQ0UgOiB7XG4gIG1hcms6IG5vb3AkMSxcbiAgbWVhc3VyZTogbm9vcCQxXG59O1xuY29uc3QgcHJlYW1ibGUgPSBcIkZBIFxcXCI2LjYuMFxcXCJcIjtcblxuY29uc3QgYmVnaW4gPSBuYW1lID0+IHtcbiAgcCQyLm1hcmsoXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSwgXCIgYmVnaW5zXCIpKTtcbiAgcmV0dXJuICgpID0+IGVuZChuYW1lKTtcbn07XG5cbmNvbnN0IGVuZCA9IG5hbWUgPT4ge1xuICBwJDIubWFyayhcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBlbmRzXCIpKTtcbiAgcCQyLm1lYXN1cmUoXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSksIFwiXCIuY29uY2F0KHByZWFtYmxlLCBcIiBcIikuY29uY2F0KG5hbWUsIFwiIGJlZ2luc1wiKSwgXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSwgXCIgZW5kc1wiKSk7XG59O1xuXG52YXIgcGVyZiA9IHtcbiAgYmVnaW4sXG4gIGVuZFxufTtcblxuY29uc3Qgbm9vcCQyID0gKCkgPT4ge307XG5cbmZ1bmN0aW9uIGlzV2F0Y2hlZChub2RlKSB7XG4gIGNvbnN0IGkyc3ZnID0gbm9kZS5nZXRBdHRyaWJ1dGUgPyBub2RlLmdldEF0dHJpYnV0ZShEQVRBX0ZBX0kyU1ZHKSA6IG51bGw7XG4gIHJldHVybiB0eXBlb2YgaTJzdmcgPT09ICdzdHJpbmcnO1xufVxuXG5mdW5jdGlvbiBoYXNQcmVmaXhBbmRJY29uKG5vZGUpIHtcbiAgY29uc3QgcHJlZml4ID0gbm9kZS5nZXRBdHRyaWJ1dGUgPyBub2RlLmdldEF0dHJpYnV0ZShEQVRBX1BSRUZJWCkgOiBudWxsO1xuICBjb25zdCBpY29uID0gbm9kZS5nZXRBdHRyaWJ1dGUgPyBub2RlLmdldEF0dHJpYnV0ZShEQVRBX0lDT04pIDogbnVsbDtcbiAgcmV0dXJuIHByZWZpeCAmJiBpY29uO1xufVxuXG5mdW5jdGlvbiBoYXNCZWVuUmVwbGFjZWQobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJiBub2RlLmNsYXNzTGlzdCAmJiBub2RlLmNsYXNzTGlzdC5jb250YWlucyAmJiBub2RlLmNsYXNzTGlzdC5jb250YWlucyhjb25maWcucmVwbGFjZW1lbnRDbGFzcyk7XG59XG5cbmZ1bmN0aW9uIGdldE11dGF0b3IoKSB7XG4gIGlmIChjb25maWcuYXV0b1JlcGxhY2VTdmcgPT09IHRydWUpIHtcbiAgICByZXR1cm4gbXV0YXRvcnMucmVwbGFjZTtcbiAgfVxuXG4gIGNvbnN0IG11dGF0b3IgPSBtdXRhdG9yc1tjb25maWcuYXV0b1JlcGxhY2VTdmddO1xuICByZXR1cm4gbXV0YXRvciB8fCBtdXRhdG9ycy5yZXBsYWNlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50TlModGFnKSB7XG4gIHJldHVybiBET0NVTUVOVC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgdGFnKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0YWcpIHtcbiAgcmV0dXJuIERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQodGFnKTtcbn1cblxuZnVuY3Rpb24gY29udmVydFNWRyhhYnN0cmFjdE9iaikge1xuICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgY29uc3Qge1xuICAgIGNlRm4gPSBhYnN0cmFjdE9iai50YWcgPT09ICdzdmcnID8gY3JlYXRlRWxlbWVudE5TIDogY3JlYXRlRWxlbWVudFxuICB9ID0gcGFyYW1zO1xuXG4gIGlmICh0eXBlb2YgYWJzdHJhY3RPYmogPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIERPQ1VNRU5ULmNyZWF0ZVRleHROb2RlKGFic3RyYWN0T2JqKTtcbiAgfVxuXG4gIGNvbnN0IHRhZyA9IGNlRm4oYWJzdHJhY3RPYmoudGFnKTtcbiAgT2JqZWN0LmtleXMoYWJzdHJhY3RPYmouYXR0cmlidXRlcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgdGFnLnNldEF0dHJpYnV0ZShrZXksIGFic3RyYWN0T2JqLmF0dHJpYnV0ZXNba2V5XSk7XG4gIH0pO1xuICBjb25zdCBjaGlsZHJlbiA9IGFic3RyYWN0T2JqLmNoaWxkcmVuIHx8IFtdO1xuICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHRhZy5hcHBlbmRDaGlsZChjb252ZXJ0U1ZHKGNoaWxkLCB7XG4gICAgICBjZUZuXG4gICAgfSkpO1xuICB9KTtcbiAgcmV0dXJuIHRhZztcbn1cblxuZnVuY3Rpb24gbm9kZUFzQ29tbWVudChub2RlKSB7XG4gIGxldCBjb21tZW50ID0gXCIgXCIuY29uY2F0KG5vZGUub3V0ZXJIVE1MLCBcIiBcIik7XG4gIC8qIEJFR0lOLkFUVFJJQlVUSU9OICovXG5cbiAgY29tbWVudCA9IFwiXCIuY29uY2F0KGNvbW1lbnQsIFwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSBcIik7XG4gIC8qIEVORC5BVFRSSUJVVElPTiAqL1xuXG4gIHJldHVybiBjb21tZW50O1xufVxuXG5jb25zdCBtdXRhdG9ycyA9IHtcbiAgcmVwbGFjZTogZnVuY3Rpb24gKG11dGF0aW9uKSB7XG4gICAgY29uc3Qgbm9kZSA9IG11dGF0aW9uWzBdO1xuXG4gICAgaWYgKG5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgbXV0YXRpb25bMV0uZm9yRWFjaChhYnN0cmFjdCA9PiB7XG4gICAgICAgIG5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY29udmVydFNWRyhhYnN0cmFjdCksIG5vZGUpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChub2RlLmdldEF0dHJpYnV0ZShEQVRBX0ZBX0kyU1ZHKSA9PT0gbnVsbCAmJiBjb25maWcua2VlcE9yaWdpbmFsU291cmNlKSB7XG4gICAgICAgIGxldCBjb21tZW50ID0gRE9DVU1FTlQuY3JlYXRlQ29tbWVudChub2RlQXNDb21tZW50KG5vZGUpKTtcbiAgICAgICAgbm9kZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChjb21tZW50LCBub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBuZXN0OiBmdW5jdGlvbiAobXV0YXRpb24pIHtcbiAgICBjb25zdCBub2RlID0gbXV0YXRpb25bMF07XG4gICAgY29uc3QgYWJzdHJhY3QgPSBtdXRhdGlvblsxXTsgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcmVwbGFjZWQgbm9kZSB3ZSBkbyBub3Qgd2FudCB0byBjb250aW51ZSBuZXN0aW5nIHdpdGhpbiBpdC5cbiAgICAvLyBTaG9ydC1jaXJjdWl0IHRvIHRoZSBzdGFuZGFyZCByZXBsYWNlbWVudFxuXG4gICAgaWYgKH5jbGFzc0FycmF5KG5vZGUpLmluZGV4T2YoY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MpKSB7XG4gICAgICByZXR1cm4gbXV0YXRvcnMucmVwbGFjZShtdXRhdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgZm9yU3ZnID0gbmV3IFJlZ0V4cChcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi0uKlwiKSk7XG4gICAgZGVsZXRlIGFic3RyYWN0WzBdLmF0dHJpYnV0ZXMuaWQ7XG5cbiAgICBpZiAoYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5jbGFzcykge1xuICAgICAgY29uc3Qgc3BsaXRDbGFzc2VzID0gYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgnICcpLnJlZHVjZSgoYWNjLCBjbHMpID0+IHtcbiAgICAgICAgaWYgKGNscyA9PT0gY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MgfHwgY2xzLm1hdGNoKGZvclN2ZykpIHtcbiAgICAgICAgICBhY2MudG9TdmcucHVzaChjbHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy50b05vZGUucHVzaChjbHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHtcbiAgICAgICAgdG9Ob2RlOiBbXSxcbiAgICAgICAgdG9Tdmc6IFtdXG4gICAgICB9KTtcbiAgICAgIGFic3RyYWN0WzBdLmF0dHJpYnV0ZXMuY2xhc3MgPSBzcGxpdENsYXNzZXMudG9Tdmcuam9pbignICcpO1xuXG4gICAgICBpZiAoc3BsaXRDbGFzc2VzLnRvTm9kZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBzcGxpdENsYXNzZXMudG9Ob2RlLmpvaW4oJyAnKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3SW5uZXJIVE1MID0gYWJzdHJhY3QubWFwKGEgPT4gdG9IdG1sKGEpKS5qb2luKCdcXG4nKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZShEQVRBX0ZBX0kyU1ZHLCAnJyk7XG4gICAgbm9kZS5pbm5lckhUTUwgPSBuZXdJbm5lckhUTUw7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHBlcmZvcm1PcGVyYXRpb25TeW5jKG9wKSB7XG4gIG9wKCk7XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm0obXV0YXRpb25zLCBjYWxsYmFjaykge1xuICBjb25zdCBjYWxsYmFja0Z1bmN0aW9uID0gdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nID8gY2FsbGJhY2sgOiBub29wJDI7XG5cbiAgaWYgKG11dGF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICBjYWxsYmFja0Z1bmN0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IGZyYW1lID0gcGVyZm9ybU9wZXJhdGlvblN5bmM7XG5cbiAgICBpZiAoY29uZmlnLm11dGF0ZUFwcHJvYWNoID09PSBNVVRBVElPTl9BUFBST0FDSF9BU1lOQykge1xuICAgICAgZnJhbWUgPSBXSU5ET1cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHBlcmZvcm1PcGVyYXRpb25TeW5jO1xuICAgIH1cblxuICAgIGZyYW1lKCgpID0+IHtcbiAgICAgIGNvbnN0IG11dGF0b3IgPSBnZXRNdXRhdG9yKCk7XG4gICAgICBjb25zdCBtYXJrID0gcGVyZi5iZWdpbignbXV0YXRlJyk7XG4gICAgICBtdXRhdGlvbnMubWFwKG11dGF0b3IpO1xuICAgICAgbWFyaygpO1xuICAgICAgY2FsbGJhY2tGdW5jdGlvbigpO1xuICAgIH0pO1xuICB9XG59XG5sZXQgZGlzYWJsZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGRpc2FibGVPYnNlcnZhdGlvbigpIHtcbiAgZGlzYWJsZWQgPSB0cnVlO1xufVxuZnVuY3Rpb24gZW5hYmxlT2JzZXJ2YXRpb24oKSB7XG4gIGRpc2FibGVkID0gZmFsc2U7XG59XG5sZXQgbW8kMSA9IG51bGw7XG5mdW5jdGlvbiBvYnNlcnZlKG9wdGlvbnMpIHtcbiAgaWYgKCFNVVRBVElPTl9PQlNFUlZFUikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghY29uZmlnLm9ic2VydmVNdXRhdGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7XG4gICAgdHJlZUNhbGxiYWNrID0gbm9vcCQyLFxuICAgIG5vZGVDYWxsYmFjayA9IG5vb3AkMixcbiAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrID0gbm9vcCQyLFxuICAgIG9ic2VydmVNdXRhdGlvbnNSb290ID0gRE9DVU1FTlRcbiAgfSA9IG9wdGlvbnM7XG4gIG1vJDEgPSBuZXcgTVVUQVRJT05fT0JTRVJWRVIob2JqZWN0cyA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgZGVmYXVsdFByZWZpeCA9IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKTtcbiAgICB0b0FycmF5KG9iamVjdHMpLmZvckVhY2gobXV0YXRpb25SZWNvcmQgPT4ge1xuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdjaGlsZExpc3QnICYmIG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXMubGVuZ3RoID4gMCAmJiAhaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXNbMF0pKSB7XG4gICAgICAgIGlmIChjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmVlQ2FsbGJhY2sobXV0YXRpb25SZWNvcmQudGFyZ2V0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvblJlY29yZC50YXJnZXQucGFyZW50Tm9kZSAmJiBjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgcHNldWRvRWxlbWVudHNDYWxsYmFjayhtdXRhdGlvblJlY29yZC50YXJnZXQucGFyZW50Tm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtdXRhdGlvblJlY29yZC50eXBlID09PSAnYXR0cmlidXRlcycgJiYgaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLnRhcmdldCkgJiYgfkFUVFJJQlVURVNfV0FUQ0hFRF9GT1JfTVVUQVRJT04uaW5kZXhPZihtdXRhdGlvblJlY29yZC5hdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgICBpZiAobXV0YXRpb25SZWNvcmQuYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJyAmJiBoYXNQcmVmaXhBbmRJY29uKG11dGF0aW9uUmVjb3JkLnRhcmdldCkpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZVxuICAgICAgICAgIH0gPSBnZXRDYW5vbmljYWxJY29uKGNsYXNzQXJyYXkobXV0YXRpb25SZWNvcmQudGFyZ2V0KSk7XG4gICAgICAgICAgbXV0YXRpb25SZWNvcmQudGFyZ2V0LnNldEF0dHJpYnV0ZShEQVRBX1BSRUZJWCwgcHJlZml4IHx8IGRlZmF1bHRQcmVmaXgpO1xuICAgICAgICAgIGlmIChpY29uTmFtZSkgbXV0YXRpb25SZWNvcmQudGFyZ2V0LnNldEF0dHJpYnV0ZShEQVRBX0lDT04sIGljb25OYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXNCZWVuUmVwbGFjZWQobXV0YXRpb25SZWNvcmQudGFyZ2V0KSkge1xuICAgICAgICAgIG5vZGVDYWxsYmFjayhtdXRhdGlvblJlY29yZC50YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICBtbyQxLm9ic2VydmUob2JzZXJ2ZU11dGF0aW9uc1Jvb3QsIHtcbiAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgIHN1YnRyZWU6IHRydWVcbiAgfSk7XG59XG5mdW5jdGlvbiBkaXNjb25uZWN0KCkge1xuICBpZiAoIW1vJDEpIHJldHVybjtcbiAgbW8kMS5kaXNjb25uZWN0KCk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlUGFyc2VyIChub2RlKSB7XG4gIGNvbnN0IHN0eWxlID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG4gIGxldCB2YWwgPSBbXTtcblxuICBpZiAoc3R5bGUpIHtcbiAgICB2YWwgPSBzdHlsZS5zcGxpdCgnOycpLnJlZHVjZSgoYWNjLCBzdHlsZSkgPT4ge1xuICAgICAgY29uc3Qgc3R5bGVzID0gc3R5bGUuc3BsaXQoJzonKTtcbiAgICAgIGNvbnN0IHByb3AgPSBzdHlsZXNbMF07XG4gICAgICBjb25zdCB2YWx1ZSA9IHN0eWxlcy5zbGljZSgxKTtcblxuICAgICAgaWYgKHByb3AgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBhY2NbcHJvcF0gPSB2YWx1ZS5qb2luKCc6JykudHJpbSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGNsYXNzUGFyc2VyIChub2RlKSB7XG4gIGNvbnN0IGV4aXN0aW5nUHJlZml4ID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcHJlZml4Jyk7XG4gIGNvbnN0IGV4aXN0aW5nSWNvbk5hbWUgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1pY29uJyk7XG4gIGNvbnN0IGlubmVyVGV4dCA9IG5vZGUuaW5uZXJUZXh0ICE9PSB1bmRlZmluZWQgPyBub2RlLmlubmVyVGV4dC50cmltKCkgOiAnJztcbiAgbGV0IHZhbCA9IGdldENhbm9uaWNhbEljb24oY2xhc3NBcnJheShub2RlKSk7XG5cbiAgaWYgKCF2YWwucHJlZml4KSB7XG4gICAgdmFsLnByZWZpeCA9IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKTtcbiAgfVxuXG4gIGlmIChleGlzdGluZ1ByZWZpeCAmJiBleGlzdGluZ0ljb25OYW1lKSB7XG4gICAgdmFsLnByZWZpeCA9IGV4aXN0aW5nUHJlZml4O1xuICAgIHZhbC5pY29uTmFtZSA9IGV4aXN0aW5nSWNvbk5hbWU7XG4gIH1cblxuICBpZiAodmFsLmljb25OYW1lICYmIHZhbC5wcmVmaXgpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG5cbiAgaWYgKHZhbC5wcmVmaXggJiYgaW5uZXJUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICB2YWwuaWNvbk5hbWUgPSBieUxpZ2F0dXJlKHZhbC5wcmVmaXgsIG5vZGUuaW5uZXJUZXh0KSB8fCBieVVuaWNvZGUodmFsLnByZWZpeCwgdG9IZXgobm9kZS5pbm5lclRleHQpKTtcbiAgfVxuXG4gIGlmICghdmFsLmljb25OYW1lICYmIGNvbmZpZy5hdXRvRmV0Y2hTdmcgJiYgbm9kZS5maXJzdENoaWxkICYmIG5vZGUuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICB2YWwuaWNvbk5hbWUgPSBub2RlLmZpcnN0Q2hpbGQuZGF0YTtcbiAgfVxuXG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGF0dHJpYnV0ZXNQYXJzZXIgKG5vZGUpIHtcbiAgY29uc3QgZXh0cmFBdHRyaWJ1dGVzID0gdG9BcnJheShub2RlLmF0dHJpYnV0ZXMpLnJlZHVjZSgoYWNjLCBhdHRyKSA9PiB7XG4gICAgaWYgKGFjYy5uYW1lICE9PSAnY2xhc3MnICYmIGFjYy5uYW1lICE9PSAnc3R5bGUnKSB7XG4gICAgICBhY2NbYXR0ci5uYW1lXSA9IGF0dHIudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICBjb25zdCB0aXRsZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCd0aXRsZScpO1xuICBjb25zdCB0aXRsZUlkID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtdGl0bGUtaWQnKTtcblxuICBpZiAoY29uZmlnLmF1dG9BMTF5KSB7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICBleHRyYUF0dHJpYnV0ZXNbJ2FyaWEtbGFiZWxsZWRieSddID0gXCJcIi5jb25jYXQoY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MsIFwiLXRpdGxlLVwiKS5jb25jYXQodGl0bGVJZCB8fCBuZXh0VW5pcXVlSWQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlc1snYXJpYS1oaWRkZW4nXSA9ICd0cnVlJztcbiAgICAgIGV4dHJhQXR0cmlidXRlc1snZm9jdXNhYmxlJ10gPSAnZmFsc2UnO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHRyYUF0dHJpYnV0ZXM7XG59XG5cbmZ1bmN0aW9uIGJsYW5rTWV0YSgpIHtcbiAgcmV0dXJuIHtcbiAgICBpY29uTmFtZTogbnVsbCxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB0aXRsZUlkOiBudWxsLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgIHN5bWJvbDogZmFsc2UsXG4gICAgbWFzazoge1xuICAgICAgaWNvbk5hbWU6IG51bGwsXG4gICAgICBwcmVmaXg6IG51bGwsXG4gICAgICByZXN0OiBbXVxuICAgIH0sXG4gICAgbWFza0lkOiBudWxsLFxuICAgIGV4dHJhOiB7XG4gICAgICBjbGFzc2VzOiBbXSxcbiAgICAgIHN0eWxlczoge30sXG4gICAgICBhdHRyaWJ1dGVzOiB7fVxuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIHBhcnNlTWV0YShub2RlKSB7XG4gIGxldCBwYXJzZXIgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHtcbiAgICBzdHlsZVBhcnNlcjogdHJ1ZVxuICB9O1xuICBjb25zdCB7XG4gICAgaWNvbk5hbWUsXG4gICAgcHJlZml4LFxuICAgIHJlc3Q6IGV4dHJhQ2xhc3Nlc1xuICB9ID0gY2xhc3NQYXJzZXIobm9kZSk7XG4gIGNvbnN0IGV4dHJhQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXNQYXJzZXIobm9kZSk7XG4gIGNvbnN0IHBsdWdpbk1ldGEgPSBjaGFpbkhvb2tzKCdwYXJzZU5vZGVBdHRyaWJ1dGVzJywge30sIG5vZGUpO1xuICBsZXQgZXh0cmFTdHlsZXMgPSBwYXJzZXIuc3R5bGVQYXJzZXIgPyBzdHlsZVBhcnNlcihub2RlKSA6IFtdO1xuICByZXR1cm4ge1xuICAgIGljb25OYW1lLFxuICAgIHRpdGxlOiBub2RlLmdldEF0dHJpYnV0ZSgndGl0bGUnKSxcbiAgICB0aXRsZUlkOiBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS10aXRsZS1pZCcpLFxuICAgIHByZWZpeCxcbiAgICB0cmFuc2Zvcm06IG1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgIG1hc2s6IHtcbiAgICAgIGljb25OYW1lOiBudWxsLFxuICAgICAgcHJlZml4OiBudWxsLFxuICAgICAgcmVzdDogW11cbiAgICB9LFxuICAgIG1hc2tJZDogbnVsbCxcbiAgICBzeW1ib2w6IGZhbHNlLFxuICAgIGV4dHJhOiB7XG4gICAgICBjbGFzc2VzOiBleHRyYUNsYXNzZXMsXG4gICAgICBzdHlsZXM6IGV4dHJhU3R5bGVzLFxuICAgICAgYXR0cmlidXRlczogZXh0cmFBdHRyaWJ1dGVzXG4gICAgfSxcbiAgICAuLi5wbHVnaW5NZXRhXG4gIH07XG59XG5cbmNvbnN0IHtcbiAgc3R5bGVzOiBzdHlsZXMkMlxufSA9IG5hbWVzcGFjZTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVNdXRhdGlvbihub2RlKSB7XG4gIGNvbnN0IG5vZGVNZXRhID0gY29uZmlnLmF1dG9SZXBsYWNlU3ZnID09PSAnbmVzdCcgPyBwYXJzZU1ldGEobm9kZSwge1xuICAgIHN0eWxlUGFyc2VyOiBmYWxzZVxuICB9KSA6IHBhcnNlTWV0YShub2RlKTtcblxuICBpZiAofm5vZGVNZXRhLmV4dHJhLmNsYXNzZXMuaW5kZXhPZihMQVlFUlNfVEVYVF9DTEFTU05BTUUpKSB7XG4gICAgcmV0dXJuIGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVMYXllcnNUZXh0Jywgbm9kZSwgbm9kZU1ldGEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjYWxsUHJvdmlkZWQoJ2dlbmVyYXRlU3ZnUmVwbGFjZW1lbnRNdXRhdGlvbicsIG5vZGUsIG5vZGVNZXRhKTtcbiAgfVxufVxuXG5sZXQga25vd25QcmVmaXhlcyA9IG5ldyBTZXQoKTtcbkZBTUlMSUVTLm1hcChmYW1pbHkgPT4ge1xuICBrbm93blByZWZpeGVzLmFkZChcImZhLVwiLmNvbmNhdChmYW1pbHkpKTtcbn0pO1xuT2JqZWN0LmtleXMoUFJFRklYX1RPX1NUWUxFW2FdKS5tYXAoa25vd25QcmVmaXhlcy5hZGQuYmluZChrbm93blByZWZpeGVzKSk7XG5PYmplY3Qua2V5cyhQUkVGSVhfVE9fU1RZTEVbcl0pLm1hcChrbm93blByZWZpeGVzLmFkZC5iaW5kKGtub3duUHJlZml4ZXMpKTtcbk9iamVjdC5rZXlzKFBSRUZJWF9UT19TVFlMRVtvXSkubWFwKGtub3duUHJlZml4ZXMuYWRkLmJpbmQoa25vd25QcmVmaXhlcykpO1xua25vd25QcmVmaXhlcyA9IFsuLi5rbm93blByZWZpeGVzXTtcblxuZnVuY3Rpb24gb25UcmVlKHJvb3QpIHtcbiAgbGV0IGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsO1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICBjb25zdCBodG1sQ2xhc3NMaXN0ID0gRE9DVU1FTlQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdDtcblxuICBjb25zdCBoY2xBZGQgPSBzdWZmaXggPT4gaHRtbENsYXNzTGlzdC5hZGQoXCJcIi5jb25jYXQoSFRNTF9DTEFTU19JMlNWR19CQVNFX0NMQVNTLCBcIi1cIikuY29uY2F0KHN1ZmZpeCkpO1xuXG4gIGNvbnN0IGhjbFJlbW92ZSA9IHN1ZmZpeCA9PiBodG1sQ2xhc3NMaXN0LnJlbW92ZShcIlwiLmNvbmNhdChIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MsIFwiLVwiKS5jb25jYXQoc3VmZml4KSk7XG5cbiAgY29uc3QgcHJlZml4ZXMgPSBjb25maWcuYXV0b0ZldGNoU3ZnID8ga25vd25QcmVmaXhlcyA6IEZBTUlMSUVTLm1hcChmJCQxID0+IFwiZmEtXCIuY29uY2F0KGYkJDEpKS5jb25jYXQoT2JqZWN0LmtleXMoc3R5bGVzJDIpKTtcblxuICBpZiAoIXByZWZpeGVzLmluY2x1ZGVzKCdmYScpKSB7XG4gICAgcHJlZml4ZXMucHVzaCgnZmEnKTtcbiAgfVxuXG4gIGNvbnN0IHByZWZpeGVzRG9tUXVlcnkgPSBbXCIuXCIuY29uY2F0KExBWUVSU19URVhUX0NMQVNTTkFNRSwgXCI6bm90KFtcIikuY29uY2F0KERBVEFfRkFfSTJTVkcsIFwiXSlcIildLmNvbmNhdChwcmVmaXhlcy5tYXAocCQkMSA9PiBcIi5cIi5jb25jYXQocCQkMSwgXCI6bm90KFtcIikuY29uY2F0KERBVEFfRkFfSTJTVkcsIFwiXSlcIikpKS5qb2luKCcsICcpO1xuXG4gIGlmIChwcmVmaXhlc0RvbVF1ZXJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGxldCBjYW5kaWRhdGVzID0gW107XG5cbiAgdHJ5IHtcbiAgICBjYW5kaWRhdGVzID0gdG9BcnJheShyb290LnF1ZXJ5U2VsZWN0b3JBbGwocHJlZml4ZXNEb21RdWVyeSkpO1xuICB9IGNhdGNoIChlJCQxKSB7Ly8gbm9vcFxuICB9XG5cbiAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoID4gMCkge1xuICAgIGhjbEFkZCgncGVuZGluZycpO1xuICAgIGhjbFJlbW92ZSgnY29tcGxldGUnKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBjb25zdCBtYXJrID0gcGVyZi5iZWdpbignb25UcmVlJyk7XG4gIGNvbnN0IG11dGF0aW9ucyA9IGNhbmRpZGF0ZXMucmVkdWNlKChhY2MsIG5vZGUpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbXV0YXRpb24gPSBnZW5lcmF0ZU11dGF0aW9uKG5vZGUpO1xuXG4gICAgICBpZiAobXV0YXRpb24pIHtcbiAgICAgICAgYWNjLnB1c2gobXV0YXRpb24pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUkJDEpIHtcbiAgICAgIGlmICghUFJPRFVDVElPTikge1xuICAgICAgICBpZiAoZSQkMS5uYW1lID09PSAnTWlzc2luZ0ljb24nKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlJCQxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBQcm9taXNlLmFsbChtdXRhdGlvbnMpLnRoZW4ocmVzb2x2ZWRNdXRhdGlvbnMgPT4ge1xuICAgICAgcGVyZm9ybShyZXNvbHZlZE11dGF0aW9ucywgKCkgPT4ge1xuICAgICAgICBoY2xBZGQoJ2FjdGl2ZScpO1xuICAgICAgICBoY2xBZGQoJ2NvbXBsZXRlJyk7XG4gICAgICAgIGhjbFJlbW92ZSgncGVuZGluZycpO1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSBjYWxsYmFjaygpO1xuICAgICAgICBtYXJrKCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGUkJDEgPT4ge1xuICAgICAgbWFyaygpO1xuICAgICAgcmVqZWN0KGUkJDEpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb25Ob2RlKG5vZGUpIHtcbiAgbGV0IGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsO1xuICBnZW5lcmF0ZU11dGF0aW9uKG5vZGUpLnRoZW4obXV0YXRpb24gPT4ge1xuICAgIGlmIChtdXRhdGlvbikge1xuICAgICAgcGVyZm9ybShbbXV0YXRpb25dLCBjYWxsYmFjayk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUljb25zKG5leHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChtYXliZUljb25EZWZpbml0aW9uKSB7XG4gICAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgY29uc3QgaWNvbkRlZmluaXRpb24gPSAobWF5YmVJY29uRGVmaW5pdGlvbiB8fCB7fSkuaWNvbiA/IG1heWJlSWNvbkRlZmluaXRpb24gOiBmaW5kSWNvbkRlZmluaXRpb24obWF5YmVJY29uRGVmaW5pdGlvbiB8fCB7fSk7XG4gICAgbGV0IHtcbiAgICAgIG1hc2tcbiAgICB9ID0gcGFyYW1zO1xuXG4gICAgaWYgKG1hc2spIHtcbiAgICAgIG1hc2sgPSAobWFzayB8fCB7fSkuaWNvbiA/IG1hc2sgOiBmaW5kSWNvbkRlZmluaXRpb24obWFzayB8fCB7fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoaWNvbkRlZmluaXRpb24sIHsgLi4ucGFyYW1zLFxuICAgICAgbWFza1xuICAgIH0pO1xuICB9O1xufVxuXG5jb25zdCByZW5kZXIgPSBmdW5jdGlvbiAoaWNvbkRlZmluaXRpb24pIHtcbiAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIGNvbnN0IHtcbiAgICB0cmFuc2Zvcm0gPSBtZWFuaW5nbGVzc1RyYW5zZm9ybSxcbiAgICBzeW1ib2wgPSBmYWxzZSxcbiAgICBtYXNrID0gbnVsbCxcbiAgICBtYXNrSWQgPSBudWxsLFxuICAgIHRpdGxlID0gbnVsbCxcbiAgICB0aXRsZUlkID0gbnVsbCxcbiAgICBjbGFzc2VzID0gW10sXG4gICAgYXR0cmlidXRlcyA9IHt9LFxuICAgIHN0eWxlcyA9IHt9XG4gIH0gPSBwYXJhbXM7XG4gIGlmICghaWNvbkRlZmluaXRpb24pIHJldHVybjtcbiAgY29uc3Qge1xuICAgIHByZWZpeCxcbiAgICBpY29uTmFtZSxcbiAgICBpY29uXG4gIH0gPSBpY29uRGVmaW5pdGlvbjtcbiAgcmV0dXJuIGRvbVZhcmlhbnRzKHtcbiAgICB0eXBlOiAnaWNvbicsXG4gICAgLi4uaWNvbkRlZmluaXRpb25cbiAgfSwgKCkgPT4ge1xuICAgIGNhbGxIb29rcygnYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uJywge1xuICAgICAgaWNvbkRlZmluaXRpb24sXG4gICAgICBwYXJhbXNcbiAgICB9KTtcblxuICAgIGlmIChjb25maWcuYXV0b0ExMXkpIHtcbiAgICAgIGlmICh0aXRsZSkge1xuICAgICAgICBhdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSA9IFwiXCIuY29uY2F0KGNvbmZpZy5yZXBsYWNlbWVudENsYXNzLCBcIi10aXRsZS1cIikuY29uY2F0KHRpdGxlSWQgfHwgbmV4dFVuaXF1ZUlkKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXR0cmlidXRlc1snYXJpYS1oaWRkZW4nXSA9ICd0cnVlJztcbiAgICAgICAgYXR0cmlidXRlc1snZm9jdXNhYmxlJ10gPSAnZmFsc2UnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYWtlSW5saW5lU3ZnQWJzdHJhY3Qoe1xuICAgICAgaWNvbnM6IHtcbiAgICAgICAgbWFpbjogYXNGb3VuZEljb24oaWNvbiksXG4gICAgICAgIG1hc2s6IG1hc2sgPyBhc0ZvdW5kSWNvbihtYXNrLmljb24pIDoge1xuICAgICAgICAgIGZvdW5kOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogbnVsbCxcbiAgICAgICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICAgICAgaWNvbjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByZWZpeCxcbiAgICAgIGljb25OYW1lLFxuICAgICAgdHJhbnNmb3JtOiB7IC4uLm1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgICAgICAuLi50cmFuc2Zvcm1cbiAgICAgIH0sXG4gICAgICBzeW1ib2wsXG4gICAgICB0aXRsZSxcbiAgICAgIG1hc2tJZCxcbiAgICAgIHRpdGxlSWQsXG4gICAgICBleHRyYToge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIGNsYXNzZXNcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xudmFyIFJlcGxhY2VFbGVtZW50cyA9IHtcbiAgbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiByZXNvbHZlSWNvbnMocmVuZGVyKVxuICAgIH07XG4gIH0sXG5cbiAgaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MoYWNjdW11bGF0b3IpIHtcbiAgICAgICAgYWNjdW11bGF0b3IudHJlZUNhbGxiYWNrID0gb25UcmVlO1xuICAgICAgICBhY2N1bXVsYXRvci5ub2RlQ2FsbGJhY2sgPSBvbk5vZGU7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cblxuICAgIH07XG4gIH0sXG5cbiAgcHJvdmlkZXMocHJvdmlkZXJzJCQxKSB7XG4gICAgcHJvdmlkZXJzJCQxLmkyc3ZnID0gZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBub2RlID0gRE9DVU1FTlQsXG4gICAgICAgIGNhbGxiYWNrID0gKCkgPT4ge31cbiAgICAgIH0gPSBwYXJhbXM7XG4gICAgICByZXR1cm4gb25UcmVlKG5vZGUsIGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgcHJvdmlkZXJzJCQxLmdlbmVyYXRlU3ZnUmVwbGFjZW1lbnRNdXRhdGlvbiA9IGZ1bmN0aW9uIChub2RlLCBub2RlTWV0YSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpY29uTmFtZSxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIHRpdGxlSWQsXG4gICAgICAgIHByZWZpeCxcbiAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICBzeW1ib2wsXG4gICAgICAgIG1hc2ssXG4gICAgICAgIG1hc2tJZCxcbiAgICAgICAgZXh0cmFcbiAgICAgIH0gPSBub2RlTWV0YTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIFByb21pc2UuYWxsKFtmaW5kSWNvbihpY29uTmFtZSwgcHJlZml4KSwgbWFzay5pY29uTmFtZSA/IGZpbmRJY29uKG1hc2suaWNvbk5hbWUsIG1hc2sucHJlZml4KSA6IFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1MTIsXG4gICAgICAgICAgaGVpZ2h0OiA1MTIsXG4gICAgICAgICAgaWNvbjoge31cbiAgICAgICAgfSldKS50aGVuKF9yZWYgPT4ge1xuICAgICAgICAgIGxldCBbbWFpbiwgbWFza10gPSBfcmVmO1xuICAgICAgICAgIHJlc29sdmUoW25vZGUsIG1ha2VJbmxpbmVTdmdBYnN0cmFjdCh7XG4gICAgICAgICAgICBpY29uczoge1xuICAgICAgICAgICAgICBtYWluLFxuICAgICAgICAgICAgICBtYXNrXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgaWNvbk5hbWUsXG4gICAgICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgICAgICBzeW1ib2wsXG4gICAgICAgICAgICBtYXNrSWQsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIHRpdGxlSWQsXG4gICAgICAgICAgICBleHRyYSxcbiAgICAgICAgICAgIHdhdGNoYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pXSk7XG4gICAgICAgIH0pLmNhdGNoKHJlamVjdCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJvdmlkZXJzJCQxLmdlbmVyYXRlQWJzdHJhY3RJY29uID0gZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICBsZXQge1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgbWFpbixcbiAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICBzdHlsZXNcbiAgICAgIH0gPSBfcmVmMjtcbiAgICAgIGNvbnN0IHN0eWxlU3RyaW5nID0gam9pblN0eWxlcyhzdHlsZXMpO1xuXG4gICAgICBpZiAoc3R5bGVTdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gc3R5bGVTdHJpbmc7XG4gICAgICB9XG5cbiAgICAgIGxldCBuZXh0Q2hpbGQ7XG5cbiAgICAgIGlmICh0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSkge1xuICAgICAgICBuZXh0Q2hpbGQgPSBjYWxsUHJvdmlkZWQoJ2dlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZycsIHtcbiAgICAgICAgICBtYWluLFxuICAgICAgICAgIHRyYW5zZm9ybSxcbiAgICAgICAgICBjb250YWluZXJXaWR0aDogbWFpbi53aWR0aCxcbiAgICAgICAgICBpY29uV2lkdGg6IG1haW4ud2lkdGhcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkcmVuLnB1c2gobmV4dENoaWxkIHx8IG1haW4uaWNvbik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgYXR0cmlidXRlc1xuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbn07XG5cbnZhciBMYXllcnMgPSB7XG4gIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGF5ZXIoYXNzZW1ibGVyKSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgY2xhc3NlcyA9IFtdXG4gICAgICAgIH0gPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiBkb21WYXJpYW50cyh7XG4gICAgICAgICAgdHlwZTogJ2xheWVyJ1xuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgY2FsbEhvb2tzKCdiZWZvcmVET01FbGVtZW50Q3JlYXRpb24nLCB7XG4gICAgICAgICAgICBhc3NlbWJsZXIsXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICBhc3NlbWJsZXIoYXJncyA9PiB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncy5tYXAoYSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uY29uY2F0KGEuYWJzdHJhY3QpO1xuICAgICAgICAgICAgfSkgOiBjaGlsZHJlbiA9IGNoaWxkcmVuLmNvbmNhdChhcmdzLmFic3RyYWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgIHRhZzogJ3NwYW4nLFxuICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICBjbGFzczogW1wiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLWxheWVyc1wiKSwgLi4uY2xhc3Nlc10uam9pbignICcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICB9XTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG5cbn07XG5cbnZhciBMYXllcnNDb3VudGVyID0ge1xuICBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvdW50ZXIoY29udGVudCkge1xuICAgICAgICBsZXQgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRpdGxlID0gbnVsbCxcbiAgICAgICAgICBjbGFzc2VzID0gW10sXG4gICAgICAgICAgYXR0cmlidXRlcyA9IHt9LFxuICAgICAgICAgIHN0eWxlcyA9IHt9XG4gICAgICAgIH0gPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiBkb21WYXJpYW50cyh7XG4gICAgICAgICAgdHlwZTogJ2NvdW50ZXInLFxuICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIGNhbGxIb29rcygnYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uJywge1xuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0KHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgc3R5bGVzLFxuICAgICAgICAgICAgICBjbGFzc2VzOiBbXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItbGF5ZXJzLWNvdW50ZXJcIiksIC4uLmNsYXNzZXNdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfVxuXG59O1xuXG52YXIgTGF5ZXJzVGV4dCA9IHtcbiAgbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0KGNvbnRlbnQpIHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPSBtZWFuaW5nbGVzc1RyYW5zZm9ybSxcbiAgICAgICAgICB0aXRsZSA9IG51bGwsXG4gICAgICAgICAgY2xhc3NlcyA9IFtdLFxuICAgICAgICAgIGF0dHJpYnV0ZXMgPSB7fSxcbiAgICAgICAgICBzdHlsZXMgPSB7fVxuICAgICAgICB9ID0gcGFyYW1zO1xuICAgICAgICByZXR1cm4gZG9tVmFyaWFudHMoe1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICBjb250ZW50XG4gICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICBjYWxsSG9va3MoJ2JlZm9yZURPTUVsZW1lbnRDcmVhdGlvbicsIHtcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gbWFrZUxheWVyc1RleHRBYnN0cmFjdCh7XG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB7IC4uLm1lYW5pbmdsZXNzVHJhbnNmb3JtLFxuICAgICAgICAgICAgICAuLi50cmFuc2Zvcm1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgIHN0eWxlcyxcbiAgICAgICAgICAgICAgY2xhc3NlczogW1wiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLWxheWVycy10ZXh0XCIpLCAuLi5jbGFzc2VzXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgIH07XG4gIH0sXG5cbiAgcHJvdmlkZXMocHJvdmlkZXJzJCQxKSB7XG4gICAgcHJvdmlkZXJzJCQxLmdlbmVyYXRlTGF5ZXJzVGV4dCA9IGZ1bmN0aW9uIChub2RlLCBub2RlTWV0YSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICBleHRyYVxuICAgICAgfSA9IG5vZGVNZXRhO1xuICAgICAgbGV0IHdpZHRoID0gbnVsbDtcbiAgICAgIGxldCBoZWlnaHQgPSBudWxsO1xuXG4gICAgICBpZiAoSVNfSUUpIHtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRGb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUobm9kZSkuZm9udFNpemUsIDEwKTtcbiAgICAgICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgd2lkdGggPSBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGggLyBjb21wdXRlZEZvbnRTaXplO1xuICAgICAgICBoZWlnaHQgPSBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0IC8gY29tcHV0ZWRGb250U2l6ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5hdXRvQTExeSAmJiAhdGl0bGUpIHtcbiAgICAgICAgZXh0cmEuYXR0cmlidXRlc1snYXJpYS1oaWRkZW4nXSA9ICd0cnVlJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbbm9kZSwgbWFrZUxheWVyc1RleHRBYnN0cmFjdCh7XG4gICAgICAgIGNvbnRlbnQ6IG5vZGUuaW5uZXJIVE1MLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBleHRyYSxcbiAgICAgICAgd2F0Y2hhYmxlOiB0cnVlXG4gICAgICB9KV0pO1xuICAgIH07XG4gIH1cblxufTtcblxuY29uc3QgQ0xFQU5fQ09OVEVOVF9QQVRURVJOID0gbmV3IFJlZ0V4cCgnXFx1ezIyfScsICd1ZycpO1xuY29uc3QgU0VDT05EQVJZX1VOSUNPREVfUkFOR0UgPSBbMTEwNTkyMCwgMTExMjMxOV07XG5jb25zdCBfRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCA9IHsgLi4ue1xuICAgIEZvbnRBd2Vzb21lOiB7XG4gICAgICBub3JtYWw6ICdmYXMnLFxuICAgICAgNDAwOiAnZmFzJ1xuICAgIH1cbiAgfSxcbiAgLi4uZW8sXG4gIC4uLmFvLFxuICAuLi5tb1xufTtcbmNvbnN0IEZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVggPSBPYmplY3Qua2V5cyhfRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICBhY2Nba2V5LnRvTG93ZXJDYXNlKCldID0gX0ZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVhba2V5XTtcbiAgcmV0dXJuIGFjYztcbn0sIHt9KTtcbmNvbnN0IEZPTlRfRkFNSUxZX1dFSUdIVF9GQUxMQkFDSyA9IE9iamVjdC5rZXlzKEZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVgpLnJlZHVjZSgoYWNjLCBmb250RmFtaWx5KSA9PiB7XG4gIGNvbnN0IHdlaWdodHMgPSBGT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYW2ZvbnRGYW1pbHldO1xuICBhY2NbZm9udEZhbWlseV0gPSB3ZWlnaHRzWzkwMF0gfHwgWy4uLk9iamVjdC5lbnRyaWVzKHdlaWdodHMpXVswXVsxXTtcbiAgcmV0dXJuIGFjYztcbn0sIHt9KTtcbmZ1bmN0aW9uIGhleFZhbHVlRnJvbUNvbnRlbnQoY29udGVudCkge1xuICBjb25zdCBjbGVhbmVkID0gY29udGVudC5yZXBsYWNlKENMRUFOX0NPTlRFTlRfUEFUVEVSTiwgJycpO1xuICBjb25zdCBjb2RlUG9pbnQgPSBjb2RlUG9pbnRBdChjbGVhbmVkLCAwKTtcbiAgY29uc3QgaXNQcmVwZW5kVGVuID0gY29kZVBvaW50ID49IFNFQ09OREFSWV9VTklDT0RFX1JBTkdFWzBdICYmIGNvZGVQb2ludCA8PSBTRUNPTkRBUllfVU5JQ09ERV9SQU5HRVsxXTtcbiAgY29uc3QgaXNEb3VibGVkID0gY2xlYW5lZC5sZW5ndGggPT09IDIgPyBjbGVhbmVkWzBdID09PSBjbGVhbmVkWzFdIDogZmFsc2U7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IGlzRG91YmxlZCA/IHRvSGV4KGNsZWFuZWRbMF0pIDogdG9IZXgoY2xlYW5lZCksXG4gICAgaXNTZWNvbmRhcnk6IGlzUHJlcGVuZFRlbiB8fCBpc0RvdWJsZWRcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFByZWZpeChmb250RmFtaWx5LCBmb250V2VpZ2h0KSB7XG4gIGNvbnN0IGZvbnRGYW1pbHlTYW5pdGl6ZWQgPSBmb250RmFtaWx5LnJlcGxhY2UoL15bJ1wiXXxbJ1wiXSQvZywgJycpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGZvbnRXZWlnaHRJbnRlZ2VyID0gcGFyc2VJbnQoZm9udFdlaWdodCk7XG4gIGNvbnN0IGZvbnRXZWlnaHRTYW5pdGl6ZWQgPSBpc05hTihmb250V2VpZ2h0SW50ZWdlcikgPyAnbm9ybWFsJyA6IGZvbnRXZWlnaHRJbnRlZ2VyO1xuICByZXR1cm4gKEZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVhbZm9udEZhbWlseVNhbml0aXplZF0gfHwge30pW2ZvbnRXZWlnaHRTYW5pdGl6ZWRdIHx8IEZPTlRfRkFNSUxZX1dFSUdIVF9GQUxMQkFDS1tmb250RmFtaWx5U2FuaXRpemVkXTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUZvclBvc2l0aW9uKG5vZGUsIHBvc2l0aW9uKSB7XG4gIGNvbnN0IHBlbmRpbmdBdHRyaWJ1dGUgPSBcIlwiLmNvbmNhdChEQVRBX0ZBX1BTRVVET19FTEVNRU5UX1BFTkRJTkcpLmNvbmNhdChwb3NpdGlvbi5yZXBsYWNlKCc6JywgJy0nKSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKHBlbmRpbmdBdHRyaWJ1dGUpICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIG5vZGUgaXMgYWxyZWFkeSBiZWluZyBwcm9jZXNzZWRcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0b0FycmF5KG5vZGUuY2hpbGRyZW4pO1xuICAgIGNvbnN0IGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50ID0gY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5nZXRBdHRyaWJ1dGUoREFUQV9GQV9QU0VVRE9fRUxFTUVOVCkgPT09IHBvc2l0aW9uKVswXTtcbiAgICBjb25zdCBzdHlsZXMgPSBXSU5ET1cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBwb3NpdGlvbik7XG4gICAgY29uc3QgZm9udEZhbWlseSA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpO1xuICAgIGNvbnN0IGZvbnRGYW1pbHlNYXRjaCA9IGZvbnRGYW1pbHkubWF0Y2goRk9OVF9GQU1JTFlfUEFUVEVSTik7XG4gICAgY29uc3QgZm9udFdlaWdodCA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXdlaWdodCcpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnY29udGVudCcpO1xuXG4gICAgaWYgKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50ICYmICFmb250RmFtaWx5TWF0Y2gpIHtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgcHJvY2Vzc2VkIGl0IGJ1dCB0aGUgY3VycmVudCBjb21wdXRlZCBzdHlsZSBkb2VzIG5vdCByZXN1bHQgaW4gYSBmb250LWZhbWlseSxcbiAgICAgIC8vIHRoYXQgcHJvYmFibHkgbWVhbnMgdGhhdCBhIGNsYXNzIG5hbWUgdGhhdCB3YXMgcHJldmlvdXNseSBwcmVzZW50IHRvIG1ha2UgdGhlIGljb24gaGFzIGJlZW5cbiAgICAgIC8vIHJlbW92ZWQuIFNvIHdlIG5vdyBzaG91bGQgZGVsZXRlIHRoZSBpY29uLlxuICAgICAgbm9kZS5yZW1vdmVDaGlsZChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCk7XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0gZWxzZSBpZiAoZm9udEZhbWlseU1hdGNoICYmIGNvbnRlbnQgIT09ICdub25lJyAmJiBjb250ZW50ICE9PSAnJykge1xuICAgICAgY29uc3QgY29udGVudCA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdjb250ZW50Jyk7XG4gICAgICBsZXQgcHJlZml4ID0gZ2V0UHJlZml4KGZvbnRGYW1pbHksIGZvbnRXZWlnaHQpO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogaGV4VmFsdWUsXG4gICAgICAgIGlzU2Vjb25kYXJ5XG4gICAgICB9ID0gaGV4VmFsdWVGcm9tQ29udGVudChjb250ZW50KTtcbiAgICAgIGNvbnN0IGlzVjQgPSBmb250RmFtaWx5TWF0Y2hbMF0uc3RhcnRzV2l0aCgnRm9udEF3ZXNvbWUnKTtcbiAgICAgIGxldCBpY29uTmFtZSA9IGJ5VW5pY29kZShwcmVmaXgsIGhleFZhbHVlKTtcbiAgICAgIGxldCBpY29uSWRlbnRpZmllciA9IGljb25OYW1lO1xuXG4gICAgICBpZiAoaXNWNCkge1xuICAgICAgICBjb25zdCBpY29uTmFtZTQgPSBieU9sZFVuaWNvZGUoaGV4VmFsdWUpO1xuXG4gICAgICAgIGlmIChpY29uTmFtZTQuaWNvbk5hbWUgJiYgaWNvbk5hbWU0LnByZWZpeCkge1xuICAgICAgICAgIGljb25OYW1lID0gaWNvbk5hbWU0Lmljb25OYW1lO1xuICAgICAgICAgIHByZWZpeCA9IGljb25OYW1lNC5wcmVmaXg7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gT25seSBjb252ZXJ0IHRoZSBwc2V1ZG8gZWxlbWVudCBpbiB0aGlzIDo6YmVmb3JlLzo6YWZ0ZXIgcG9zaXRpb24gaW50byBhbiBpY29uIGlmIHdlIGhhdmVuJ3RcbiAgICAgIC8vIGFscmVhZHkgZG9uZSBzbyB3aXRoIHRoZSBzYW1lIHByZWZpeCBhbmQgaWNvbk5hbWVcblxuXG4gICAgICBpZiAoaWNvbk5hbWUgJiYgIWlzU2Vjb25kYXJ5ICYmICghYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQgfHwgYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQuZ2V0QXR0cmlidXRlKERBVEFfUFJFRklYKSAhPT0gcHJlZml4IHx8IGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50LmdldEF0dHJpYnV0ZShEQVRBX0lDT04pICE9PSBpY29uSWRlbnRpZmllcikpIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSwgaWNvbklkZW50aWZpZXIpO1xuXG4gICAgICAgIGlmIChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCkge1xuICAgICAgICAgIC8vIERlbGV0ZSB0aGUgb2xkIG9uZSwgc2luY2Ugd2UncmUgcmVwbGFjaW5nIGl0IHdpdGggYSBuZXcgb25lXG4gICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gYmxhbmtNZXRhKCk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBleHRyYVxuICAgICAgICB9ID0gbWV0YTtcbiAgICAgICAgZXh0cmEuYXR0cmlidXRlc1tEQVRBX0ZBX1BTRVVET19FTEVNRU5UXSA9IHBvc2l0aW9uO1xuICAgICAgICBmaW5kSWNvbihpY29uTmFtZSwgcHJlZml4KS50aGVuKG1haW4gPT4ge1xuICAgICAgICAgIGNvbnN0IGFic3RyYWN0ID0gbWFrZUlubGluZVN2Z0Fic3RyYWN0KHsgLi4ubWV0YSxcbiAgICAgICAgICAgIGljb25zOiB7XG4gICAgICAgICAgICAgIG1haW4sXG4gICAgICAgICAgICAgIG1hc2s6IGVtcHR5Q2Fub25pY2FsSWNvbigpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgaWNvbk5hbWU6IGljb25JZGVudGlmaWVyLFxuICAgICAgICAgICAgZXh0cmEsXG4gICAgICAgICAgICB3YXRjaGFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gRE9DVU1FTlQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdzdmcnKTtcblxuICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gJzo6YmVmb3JlJykge1xuICAgICAgICAgICAgbm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZS5maXJzdENoaWxkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50Lm91dGVySFRNTCA9IGFic3RyYWN0Lm1hcChhID0+IHRvSHRtbChhKSkuam9pbignXFxuJyk7XG4gICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZShub2RlKSB7XG4gIHJldHVybiBQcm9taXNlLmFsbChbcmVwbGFjZUZvclBvc2l0aW9uKG5vZGUsICc6OmJlZm9yZScpLCByZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgJzo6YWZ0ZXInKV0pO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzYWJsZShub2RlKSB7XG4gIHJldHVybiBub2RlLnBhcmVudE5vZGUgIT09IGRvY3VtZW50LmhlYWQgJiYgIX5UQUdOQU1FU19UT19TS0lQX0ZPUl9QU0VVRE9FTEVNRU5UUy5pbmRleE9mKG5vZGUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKSAmJiAhbm9kZS5nZXRBdHRyaWJ1dGUoREFUQV9GQV9QU0VVRE9fRUxFTUVOVCkgJiYgKCFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLnRhZ05hbWUgIT09ICdzdmcnKTtcbn1cblxuZnVuY3Rpb24gc2VhcmNoUHNldWRvRWxlbWVudHMocm9vdCkge1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB0b0FycmF5KHJvb3QucXVlcnlTZWxlY3RvckFsbCgnKicpKS5maWx0ZXIocHJvY2Vzc2FibGUpLm1hcChyZXBsYWNlKTtcbiAgICBjb25zdCBlbmQgPSBwZXJmLmJlZ2luKCdzZWFyY2hQc2V1ZG9FbGVtZW50cycpO1xuICAgIGRpc2FibGVPYnNlcnZhdGlvbigpO1xuICAgIFByb21pc2UuYWxsKG9wZXJhdGlvbnMpLnRoZW4oKCkgPT4ge1xuICAgICAgZW5kKCk7XG4gICAgICBlbmFibGVPYnNlcnZhdGlvbigpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgIGVuZCgpO1xuICAgICAgZW5hYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgIHJlamVjdCgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxudmFyIFBzZXVkb0VsZW1lbnRzID0ge1xuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyhhY2N1bXVsYXRvcikge1xuICAgICAgICBhY2N1bXVsYXRvci5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrID0gc2VhcmNoUHNldWRvRWxlbWVudHM7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cblxuICAgIH07XG4gIH0sXG5cbiAgcHJvdmlkZXMocHJvdmlkZXJzKSB7XG4gICAgcHJvdmlkZXJzLnBzZXVkb0VsZW1lbnRzMnN2ZyA9IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbm9kZSA9IERPQ1VNRU5UXG4gICAgICB9ID0gcGFyYW1zO1xuXG4gICAgICBpZiAoY29uZmlnLnNlYXJjaFBzZXVkb0VsZW1lbnRzKSB7XG4gICAgICAgIHNlYXJjaFBzZXVkb0VsZW1lbnRzKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxufTtcblxubGV0IF91bndhdGNoZWQgPSBmYWxzZTtcbnZhciBNdXRhdGlvbk9ic2VydmVyJDEgPSB7XG4gIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tOiB7XG4gICAgICAgIHVud2F0Y2goKSB7XG4gICAgICAgICAgZGlzYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgICAgICAgX3Vud2F0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH07XG4gIH0sXG5cbiAgaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb3RzdHJhcCgpIHtcbiAgICAgICAgb2JzZXJ2ZShjaGFpbkhvb2tzKCdtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzJywge30pKTtcbiAgICAgIH0sXG5cbiAgICAgIG5vQXV0bygpIHtcbiAgICAgICAgZGlzY29ubmVjdCgpO1xuICAgICAgfSxcblxuICAgICAgd2F0Y2gocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdFxuICAgICAgICB9ID0gcGFyYW1zO1xuXG4gICAgICAgIGlmIChfdW53YXRjaGVkKSB7XG4gICAgICAgICAgZW5hYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlKGNoYWluSG9va3MoJ211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MnLCB7XG4gICAgICAgICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfTtcbiAgfVxuXG59O1xuXG5jb25zdCBwYXJzZVRyYW5zZm9ybVN0cmluZyA9IHRyYW5zZm9ybVN0cmluZyA9PiB7XG4gIGxldCB0cmFuc2Zvcm0gPSB7XG4gICAgc2l6ZTogMTYsXG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIGZsaXBYOiBmYWxzZSxcbiAgICBmbGlwWTogZmFsc2UsXG4gICAgcm90YXRlOiAwXG4gIH07XG4gIHJldHVybiB0cmFuc2Zvcm1TdHJpbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLnJlZHVjZSgoYWNjLCBuKSA9PiB7XG4gICAgY29uc3QgcGFydHMgPSBuLnRvTG93ZXJDYXNlKCkuc3BsaXQoJy0nKTtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdO1xuICAgIGxldCByZXN0ID0gcGFydHMuc2xpY2UoMSkuam9pbignLScpO1xuXG4gICAgaWYgKGZpcnN0ICYmIHJlc3QgPT09ICdoJykge1xuICAgICAgYWNjLmZsaXBYID0gdHJ1ZTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuXG4gICAgaWYgKGZpcnN0ICYmIHJlc3QgPT09ICd2Jykge1xuICAgICAgYWNjLmZsaXBZID0gdHJ1ZTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuXG4gICAgcmVzdCA9IHBhcnNlRmxvYXQocmVzdCk7XG5cbiAgICBpZiAoaXNOYU4ocmVzdCkpIHtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuXG4gICAgc3dpdGNoIChmaXJzdCkge1xuICAgICAgY2FzZSAnZ3Jvdyc6XG4gICAgICAgIGFjYy5zaXplID0gYWNjLnNpemUgKyByZXN0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc2hyaW5rJzpcbiAgICAgICAgYWNjLnNpemUgPSBhY2Muc2l6ZSAtIHJlc3Q7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgYWNjLnggPSBhY2MueCAtIHJlc3Q7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGFjYy54ID0gYWNjLnggKyByZXN0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAndXAnOlxuICAgICAgICBhY2MueSA9IGFjYy55IC0gcmVzdDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICBhY2MueSA9IGFjYy55ICsgcmVzdDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JvdGF0ZSc6XG4gICAgICAgIGFjYy5yb3RhdGUgPSBhY2Mucm90YXRlICsgcmVzdDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgdHJhbnNmb3JtKTtcbn07XG52YXIgUG93ZXJUcmFuc2Zvcm1zID0ge1xuICBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnNlOiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtU3RyaW5nID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VUcmFuc2Zvcm1TdHJpbmcodHJhbnNmb3JtU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sXG5cbiAgaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnNlTm9kZUF0dHJpYnV0ZXMoYWNjdW11bGF0b3IsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtU3RyaW5nID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtdHJhbnNmb3JtJyk7XG5cbiAgICAgICAgaWYgKHRyYW5zZm9ybVN0cmluZykge1xuICAgICAgICAgIGFjY3VtdWxhdG9yLnRyYW5zZm9ybSA9IHBhcnNlVHJhbnNmb3JtU3RyaW5nKHRyYW5zZm9ybVN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG5cbiAgICB9O1xuICB9LFxuXG4gIHByb3ZpZGVzKHByb3ZpZGVycykge1xuICAgIHByb3ZpZGVycy5nZW5lcmF0ZUFic3RyYWN0VHJhbnNmb3JtR3JvdXBpbmcgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgbGV0IHtcbiAgICAgICAgbWFpbixcbiAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICBjb250YWluZXJXaWR0aCxcbiAgICAgICAgaWNvbldpZHRoXG4gICAgICB9ID0gX3JlZjtcbiAgICAgIGNvbnN0IG91dGVyID0ge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKFwiLmNvbmNhdChjb250YWluZXJXaWR0aCAvIDIsIFwiIDI1NilcIilcbiAgICAgIH07XG4gICAgICBjb25zdCBpbm5lclRyYW5zbGF0ZSA9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAqIDMyLCBcIiwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAqIDMyLCBcIikgXCIpO1xuICAgICAgY29uc3QgaW5uZXJTY2FsZSA9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICAgICAgY29uc3QgaW5uZXJSb3RhdGUgPSBcInJvdGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnJvdGF0ZSwgXCIgMCAwKVwiKTtcbiAgICAgIGNvbnN0IGlubmVyID0ge1xuICAgICAgICB0cmFuc2Zvcm06IFwiXCIuY29uY2F0KGlubmVyVHJhbnNsYXRlLCBcIiBcIikuY29uY2F0KGlubmVyU2NhbGUsIFwiIFwiKS5jb25jYXQoaW5uZXJSb3RhdGUpXG4gICAgICB9O1xuICAgICAgY29uc3QgcGF0aCA9IHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoaWNvbldpZHRoIC8gMiAqIC0xLCBcIiAtMjU2KVwiKVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB7XG4gICAgICAgIG91dGVyLFxuICAgICAgICBpbm5lcixcbiAgICAgICAgcGF0aFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRhZzogJ2cnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLm9wZXJhdGlvbnMub3V0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdGFnOiAnZycsXG4gICAgICAgICAgYXR0cmlidXRlczogeyAuLi5vcGVyYXRpb25zLmlubmVyXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICAgIHRhZzogbWFpbi5pY29uLnRhZyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBtYWluLmljb24uY2hpbGRyZW4sXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLm1haW4uaWNvbi5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAuLi5vcGVyYXRpb25zLnBhdGhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XVxuICAgICAgICB9XVxuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbn07XG5cbmNvbnN0IEFMTF9TUEFDRSA9IHtcbiAgeDogMCxcbiAgeTogMCxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgaGVpZ2h0OiAnMTAwJSdcbn07XG5cbmZ1bmN0aW9uIGZpbGxCbGFjayhhYnN0cmFjdCkge1xuICBsZXQgZm9yY2UgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHRydWU7XG5cbiAgaWYgKGFic3RyYWN0LmF0dHJpYnV0ZXMgJiYgKGFic3RyYWN0LmF0dHJpYnV0ZXMuZmlsbCB8fCBmb3JjZSkpIHtcbiAgICBhYnN0cmFjdC5hdHRyaWJ1dGVzLmZpbGwgPSAnYmxhY2snO1xuICB9XG5cbiAgcmV0dXJuIGFic3RyYWN0O1xufVxuXG5mdW5jdGlvbiBkZUdyb3VwKGFic3RyYWN0KSB7XG4gIGlmIChhYnN0cmFjdC50YWcgPT09ICdnJykge1xuICAgIHJldHVybiBhYnN0cmFjdC5jaGlsZHJlbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW2Fic3RyYWN0XTtcbiAgfVxufVxuXG52YXIgTWFza3MgPSB7XG4gIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJzZU5vZGVBdHRyaWJ1dGVzKGFjY3VtdWxhdG9yLCBub2RlKSB7XG4gICAgICAgIGNvbnN0IG1hc2tEYXRhID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtbWFzaycpO1xuICAgICAgICBjb25zdCBtYXNrID0gIW1hc2tEYXRhID8gZW1wdHlDYW5vbmljYWxJY29uKCkgOiBnZXRDYW5vbmljYWxJY29uKG1hc2tEYXRhLnNwbGl0KCcgJykubWFwKGkgPT4gaS50cmltKCkpKTtcblxuICAgICAgICBpZiAoIW1hc2sucHJlZml4KSB7XG4gICAgICAgICAgbWFzay5wcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICBhY2N1bXVsYXRvci5tYXNrID0gbWFzaztcbiAgICAgICAgYWNjdW11bGF0b3IubWFza0lkID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtbWFzay1pZCcpO1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG5cbiAgICB9O1xuICB9LFxuXG4gIHByb3ZpZGVzKHByb3ZpZGVycykge1xuICAgIHByb3ZpZGVycy5nZW5lcmF0ZUFic3RyYWN0TWFzayA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICBsZXQge1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgbWFpbixcbiAgICAgICAgbWFzayxcbiAgICAgICAgbWFza0lkOiBleHBsaWNpdE1hc2tJZCxcbiAgICAgICAgdHJhbnNmb3JtXG4gICAgICB9ID0gX3JlZjtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgd2lkdGg6IG1haW5XaWR0aCxcbiAgICAgICAgaWNvbjogbWFpblBhdGhcbiAgICAgIH0gPSBtYWluO1xuICAgICAgY29uc3Qge1xuICAgICAgICB3aWR0aDogbWFza1dpZHRoLFxuICAgICAgICBpY29uOiBtYXNrUGF0aFxuICAgICAgfSA9IG1hc2s7XG4gICAgICBjb25zdCB0cmFucyA9IHRyYW5zZm9ybUZvclN2Zyh7XG4gICAgICAgIHRyYW5zZm9ybSxcbiAgICAgICAgY29udGFpbmVyV2lkdGg6IG1hc2tXaWR0aCxcbiAgICAgICAgaWNvbldpZHRoOiBtYWluV2lkdGhcbiAgICAgIH0pO1xuICAgICAgY29uc3QgbWFza1JlY3QgPSB7XG4gICAgICAgIHRhZzogJ3JlY3QnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkFMTF9TUEFDRSxcbiAgICAgICAgICBmaWxsOiAnd2hpdGUnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBtYXNrSW5uZXJHcm91cENoaWxkcmVuTWl4aW4gPSBtYWluUGF0aC5jaGlsZHJlbiA/IHtcbiAgICAgICAgY2hpbGRyZW46IG1haW5QYXRoLmNoaWxkcmVuLm1hcChmaWxsQmxhY2spXG4gICAgICB9IDoge307XG4gICAgICBjb25zdCBtYXNrSW5uZXJHcm91cCA9IHtcbiAgICAgICAgdGFnOiAnZycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4udHJhbnMuaW5uZXJcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFtmaWxsQmxhY2soe1xuICAgICAgICAgIHRhZzogbWFpblBhdGgudGFnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4ubWFpblBhdGguYXR0cmlidXRlcyxcbiAgICAgICAgICAgIC4uLnRyYW5zLnBhdGhcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLm1hc2tJbm5lckdyb3VwQ2hpbGRyZW5NaXhpblxuICAgICAgICB9KV1cbiAgICAgIH07XG4gICAgICBjb25zdCBtYXNrT3V0ZXJHcm91cCA9IHtcbiAgICAgICAgdGFnOiAnZycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4udHJhbnMub3V0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFttYXNrSW5uZXJHcm91cF1cbiAgICAgIH07XG4gICAgICBjb25zdCBtYXNrSWQgPSBcIm1hc2stXCIuY29uY2F0KGV4cGxpY2l0TWFza0lkIHx8IG5leHRVbmlxdWVJZCgpKTtcbiAgICAgIGNvbnN0IGNsaXBJZCA9IFwiY2xpcC1cIi5jb25jYXQoZXhwbGljaXRNYXNrSWQgfHwgbmV4dFVuaXF1ZUlkKCkpO1xuICAgICAgY29uc3QgbWFza1RhZyA9IHtcbiAgICAgICAgdGFnOiAnbWFzaycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uQUxMX1NQQUNFLFxuICAgICAgICAgIGlkOiBtYXNrSWQsXG4gICAgICAgICAgbWFza1VuaXRzOiAndXNlclNwYWNlT25Vc2UnLFxuICAgICAgICAgIG1hc2tDb250ZW50VW5pdHM6ICd1c2VyU3BhY2VPblVzZSdcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFttYXNrUmVjdCwgbWFza091dGVyR3JvdXBdXG4gICAgICB9O1xuICAgICAgY29uc3QgZGVmcyA9IHtcbiAgICAgICAgdGFnOiAnZGVmcycsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIHRhZzogJ2NsaXBQYXRoJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBpZDogY2xpcElkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGlsZHJlbjogZGVHcm91cChtYXNrUGF0aClcbiAgICAgICAgfSwgbWFza1RhZ11cbiAgICAgIH07XG4gICAgICBjaGlsZHJlbi5wdXNoKGRlZnMsIHtcbiAgICAgICAgdGFnOiAncmVjdCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgICAnY2xpcC1wYXRoJzogXCJ1cmwoI1wiLmNvbmNhdChjbGlwSWQsIFwiKVwiKSxcbiAgICAgICAgICBtYXNrOiBcInVybCgjXCIuY29uY2F0KG1hc2tJZCwgXCIpXCIpLFxuICAgICAgICAgIC4uLkFMTF9TUEFDRVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzXG4gICAgICB9O1xuICAgIH07XG4gIH1cblxufTtcblxudmFyIE1pc3NpbmdJY29uSW5kaWNhdG9yID0ge1xuICBwcm92aWRlcyhwcm92aWRlcnMpIHtcbiAgICBsZXQgcmVkdWNlTW90aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoV0lORE9XLm1hdGNoTWVkaWEpIHtcbiAgICAgIHJlZHVjZU1vdGlvbiA9IFdJTkRPVy5tYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJvdmlkZXJzLm1pc3NpbmdJY29uQWJzdHJhY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBnQ2hpbGRyZW4gPSBbXTtcbiAgICAgIGNvbnN0IEZJTEwgPSB7XG4gICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InXG4gICAgICB9O1xuICAgICAgY29uc3QgQU5JTUFUSU9OX0JBU0UgPSB7XG4gICAgICAgIGF0dHJpYnV0ZVR5cGU6ICdYTUwnLFxuICAgICAgICByZXBlYXRDb3VudDogJ2luZGVmaW5pdGUnLFxuICAgICAgICBkdXI6ICcycydcbiAgICAgIH07IC8vIFJpbmdcblxuICAgICAgZ0NoaWxkcmVuLnB1c2goe1xuICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgYXR0cmlidXRlczogeyAuLi5GSUxMLFxuICAgICAgICAgIGQ6ICdNMTU2LjUsNDQ3LjdsLTEyLjYsMjkuNWMtMTguNy05LjUtMzUuOS0yMS4yLTUxLjUtMzQuOWwyMi43LTIyLjdDMTI3LjYsNDMwLjUsMTQxLjUsNDQwLDE1Ni41LDQ0Ny43eiBNNDAuNiwyNzJIOC41IGMxLjQsMjEuMiw1LjQsNDEuNywxMS43LDYxLjFMNTAsMzIxLjJDNDUuMSwzMDUuNSw0MS44LDI4OSw0MC42LDI3MnogTTQwLjYsMjQwYzEuNC0xOC44LDUuMi0zNywxMS4xLTU0LjFsLTI5LjUtMTIuNiBDMTQuNywxOTQuMywxMCwyMTYuNyw4LjUsMjQwSDQwLjZ6IE02NC4zLDE1Ni41YzcuOC0xNC45LDE3LjItMjguOCwyOC4xLTQxLjVMNjkuNyw5Mi4zYy0xMy43LDE1LjYtMjUuNSwzMi44LTM0LjksNTEuNSBMNjQuMywxNTYuNXogTTM5Nyw0MTkuNmMtMTMuOSwxMi0yOS40LDIyLjMtNDYuMSwzMC40bDExLjksMjkuOGMyMC43LTkuOSwzOS44LTIyLjYsNTYuOS0zNy42TDM5Nyw0MTkuNnogTTExNSw5Mi40IGMxMy45LTEyLDI5LjQtMjIuMyw0Ni4xLTMwLjRsLTExLjktMjkuOGMtMjAuNyw5LjktMzkuOCwyMi42LTU2LjgsMzcuNkwxMTUsOTIuNHogTTQ0Ny43LDM1NS41Yy03LjgsMTQuOS0xNy4yLDI4LjgtMjguMSw0MS41IGwyMi43LDIyLjdjMTMuNy0xNS42LDI1LjUtMzIuOSwzNC45LTUxLjVMNDQ3LjcsMzU1LjV6IE00NzEuNCwyNzJjLTEuNCwxOC44LTUuMiwzNy0xMS4xLDU0LjFsMjkuNSwxMi42IGM3LjUtMjEuMSwxMi4yLTQzLjUsMTMuNi02Ni44SDQ3MS40eiBNMzIxLjIsNDYyYy0xNS43LDUtMzIuMiw4LjItNDkuMiw5LjR2MzIuMWMyMS4yLTEuNCw0MS43LTUuNCw2MS4xLTExLjdMMzIxLjIsNDYyeiBNMjQwLDQ3MS40Yy0xOC44LTEuNC0zNy01LjItNTQuMS0xMS4xbC0xMi42LDI5LjVjMjEuMSw3LjUsNDMuNSwxMi4yLDY2LjgsMTMuNlY0NzEuNHogTTQ2MiwxOTAuOGM1LDE1LjcsOC4yLDMyLjIsOS40LDQ5LjJoMzIuMSBjLTEuNC0yMS4yLTUuNC00MS43LTExLjctNjEuMUw0NjIsMTkwLjh6IE05Mi40LDM5N2MtMTItMTMuOS0yMi4zLTI5LjQtMzAuNC00Ni4xbC0yOS44LDExLjljOS45LDIwLjcsMjIuNiwzOS44LDM3LjYsNTYuOSBMOTIuNCwzOTd6IE0yNzIsNDAuNmMxOC44LDEuNCwzNi45LDUuMiw1NC4xLDExLjFsMTIuNi0yOS41QzMxNy43LDE0LjcsMjk1LjMsMTAsMjcyLDguNVY0MC42eiBNMTkwLjgsNTAgYzE1LjctNSwzMi4yLTguMiw0OS4yLTkuNFY4LjVjLTIxLjIsMS40LTQxLjcsNS40LTYxLjEsMTEuN0wxOTAuOCw1MHogTTQ0Mi4zLDkyLjNMNDE5LjYsMTE1YzEyLDEzLjksMjIuMywyOS40LDMwLjUsNDYuMSBsMjkuOC0xMS45QzQ3MCwxMjguNSw0NTcuMywxMDkuNCw0NDIuMyw5Mi4zeiBNMzk3LDkyLjRsMjIuNy0yMi43Yy0xNS42LTEzLjctMzIuOC0yNS41LTUxLjUtMzQuOWwtMTIuNiwyOS41IEMzNzAuNCw3Mi4xLDM4NC40LDgxLjUsMzk3LDkyLjR6J1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IE9QQUNJVFlfQU5JTUFURSA9IHsgLi4uQU5JTUFUSU9OX0JBU0UsXG4gICAgICAgIGF0dHJpYnV0ZU5hbWU6ICdvcGFjaXR5J1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGRvdCA9IHtcbiAgICAgICAgdGFnOiAnY2lyY2xlJyxcbiAgICAgICAgYXR0cmlidXRlczogeyAuLi5GSUxMLFxuICAgICAgICAgIGN4OiAnMjU2JyxcbiAgICAgICAgICBjeTogJzM2NCcsXG4gICAgICAgICAgcjogJzI4J1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgIH07XG5cbiAgICAgIGlmICghcmVkdWNlTW90aW9uKSB7XG4gICAgICAgIGRvdC5jaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgICB0YWc6ICdhbmltYXRlJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkFOSU1BVElPTl9CQVNFLFxuICAgICAgICAgICAgYXR0cmlidXRlTmFtZTogJ3InLFxuICAgICAgICAgICAgdmFsdWVzOiAnMjg7MTQ7Mjg7Mjg7MTQ7Mjg7J1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uT1BBQ0lUWV9BTklNQVRFLFxuICAgICAgICAgICAgdmFsdWVzOiAnMTswOzE7MTswOzE7J1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGdDaGlsZHJlbi5wdXNoKGRvdCk7XG4gICAgICBnQ2hpbGRyZW4ucHVzaCh7XG4gICAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7IC4uLkZJTEwsXG4gICAgICAgICAgb3BhY2l0eTogJzEnLFxuICAgICAgICAgIGQ6ICdNMjYzLjcsMzEyaC0xNmMtNi42LDAtMTItNS40LTEyLTEyYzAtNzEsNzcuNC02My45LDc3LjQtMTA3LjhjMC0yMC0xNy44LTQwLjItNTcuNC00MC4yYy0yOS4xLDAtNDQuMyw5LjYtNTkuMiwyOC43IGMtMy45LDUtMTEuMSw2LTE2LjIsMi40bC0xMy4xLTkuMmMtNS42LTMuOS02LjktMTEuOC0yLjYtMTcuMmMyMS4yLTI3LjIsNDYuNC00NC43LDkxLjItNDQuN2M1Mi4zLDAsOTcuNCwyOS44LDk3LjQsODAuMiBjMCw2Ny42LTc3LjQsNjMuNS03Ny40LDEwNy44QzI3NS43LDMwNi42LDI3MC4zLDMxMiwyNjMuNywzMTJ6J1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogcmVkdWNlTW90aW9uID8gW10gOiBbe1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgLi4uT1BBQ0lUWV9BTklNQVRFLFxuICAgICAgICAgICAgdmFsdWVzOiAnMTswOzA7MDswOzE7J1xuICAgICAgICAgIH1cbiAgICAgICAgfV1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXJlZHVjZU1vdGlvbikge1xuICAgICAgICAvLyBFeGNsYW1hdGlvblxuICAgICAgICBnQ2hpbGRyZW4ucHVzaCh7XG4gICAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgICAgYXR0cmlidXRlczogeyAuLi5GSUxMLFxuICAgICAgICAgICAgb3BhY2l0eTogJzAnLFxuICAgICAgICAgICAgZDogJ00yMzIuNSwxMzQuNWw3LDE2OGMwLjMsNi40LDUuNiwxMS41LDEyLDExLjVoOWM2LjQsMCwxMS43LTUuMSwxMi0xMS41bDctMTY4YzAuMy02LjgtNS4yLTEyLjUtMTItMTIuNWgtMjMgQzIzNy43LDEyMiwyMzIuMiwxMjcuNywyMzIuNSwxMzQuNXonXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgICAgYXR0cmlidXRlczogeyAuLi5PUEFDSVRZX0FOSU1BVEUsXG4gICAgICAgICAgICAgIHZhbHVlczogJzA7MDsxOzE7MDswOydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGFnOiAnZycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAnY2xhc3MnOiAnbWlzc2luZydcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IGdDaGlsZHJlblxuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbn07XG5cbnZhciBTdmdTeW1ib2xzID0ge1xuICBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyc2VOb2RlQXR0cmlidXRlcyhhY2N1bXVsYXRvciwgbm9kZSkge1xuICAgICAgICBjb25zdCBzeW1ib2xEYXRhID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtc3ltYm9sJyk7XG4gICAgICAgIGNvbnN0IHN5bWJvbCA9IHN5bWJvbERhdGEgPT09IG51bGwgPyBmYWxzZSA6IHN5bWJvbERhdGEgPT09ICcnID8gdHJ1ZSA6IHN5bWJvbERhdGE7XG4gICAgICAgIGFjY3VtdWxhdG9yWydzeW1ib2wnXSA9IHN5bWJvbDtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfVxuXG59O1xuXG52YXIgcGx1Z2lucyA9IFtJbmplY3RDU1MsIFJlcGxhY2VFbGVtZW50cywgTGF5ZXJzLCBMYXllcnNDb3VudGVyLCBMYXllcnNUZXh0LCBQc2V1ZG9FbGVtZW50cywgTXV0YXRpb25PYnNlcnZlciQxLCBQb3dlclRyYW5zZm9ybXMsIE1hc2tzLCBNaXNzaW5nSWNvbkluZGljYXRvciwgU3ZnU3ltYm9sc107XG5cbnJlZ2lzdGVyUGx1Z2lucyhwbHVnaW5zLCB7XG4gIG1peG91dHNUbzogYXBpXG59KTtcbmNvbnN0IG5vQXV0byQxID0gYXBpLm5vQXV0bztcbmNvbnN0IGNvbmZpZyQxID0gYXBpLmNvbmZpZztcbmNvbnN0IGxpYnJhcnkkMSA9IGFwaS5saWJyYXJ5O1xuY29uc3QgZG9tJDEgPSBhcGkuZG9tO1xuY29uc3QgcGFyc2UkMSA9IGFwaS5wYXJzZTtcbmNvbnN0IGZpbmRJY29uRGVmaW5pdGlvbiQxID0gYXBpLmZpbmRJY29uRGVmaW5pdGlvbjtcbmNvbnN0IHRvSHRtbCQxID0gYXBpLnRvSHRtbDtcbmNvbnN0IGljb24gPSBhcGkuaWNvbjtcbmNvbnN0IGxheWVyID0gYXBpLmxheWVyO1xuY29uc3QgdGV4dCA9IGFwaS50ZXh0O1xuY29uc3QgY291bnRlciA9IGFwaS5jb3VudGVyO1xuXG5leHBvcnQgeyBub0F1dG8kMSBhcyBub0F1dG8sIGNvbmZpZyQxIGFzIGNvbmZpZywgbGlicmFyeSQxIGFzIGxpYnJhcnksIGRvbSQxIGFzIGRvbSwgcGFyc2UkMSBhcyBwYXJzZSwgZmluZEljb25EZWZpbml0aW9uJDEgYXMgZmluZEljb25EZWZpbml0aW9uLCB0b0h0bWwkMSBhcyB0b0h0bWwsIGljb24sIGxheWVyLCB0ZXh0LCBjb3VudGVyLCBhcGkgfTtcbiIsICJpbXBvcnQgeyBwYXJzZSwgaWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuICAgIGVudW1lcmFibGVPbmx5ICYmIChzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7XG4gICAgfSkpLCBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IG51bGwgIT0gYXJndW1lbnRzW2ldID8gYXJndW1lbnRzW2ldIDoge307XG4gICAgaSAlIDIgPyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKSA6IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gIH0gOiBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgfSwgX3R5cGVvZihvYmopO1xufVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuXG4gIHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcblxuICB2YXIga2V5LCBpO1xuXG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAga2V5ID0gc291cmNlU3ltYm9sS2V5c1tpXTtcbiAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlO1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBfaXRlcmFibGVUb0FycmF5KGFycikgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgX25vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5cbi8vIEdldCBDU1MgY2xhc3MgbGlzdCBmcm9tIGEgcHJvcHMgb2JqZWN0XG5mdW5jdGlvbiBjbGFzc0xpc3QocHJvcHMpIHtcbiAgdmFyIF9jbGFzc2VzO1xuXG4gIHZhciBiZWF0ID0gcHJvcHMuYmVhdCxcbiAgICAgIGZhZGUgPSBwcm9wcy5mYWRlLFxuICAgICAgYmVhdEZhZGUgPSBwcm9wcy5iZWF0RmFkZSxcbiAgICAgIGJvdW5jZSA9IHByb3BzLmJvdW5jZSxcbiAgICAgIHNoYWtlID0gcHJvcHMuc2hha2UsXG4gICAgICBmbGFzaCA9IHByb3BzLmZsYXNoLFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICBzcGluUHVsc2UgPSBwcm9wcy5zcGluUHVsc2UsXG4gICAgICBzcGluUmV2ZXJzZSA9IHByb3BzLnNwaW5SZXZlcnNlLFxuICAgICAgcHVsc2UgPSBwcm9wcy5wdWxzZSxcbiAgICAgIGZpeGVkV2lkdGggPSBwcm9wcy5maXhlZFdpZHRoLFxuICAgICAgaW52ZXJzZSA9IHByb3BzLmludmVyc2UsXG4gICAgICBib3JkZXIgPSBwcm9wcy5ib3JkZXIsXG4gICAgICBsaXN0SXRlbSA9IHByb3BzLmxpc3RJdGVtLFxuICAgICAgZmxpcCA9IHByb3BzLmZsaXAsXG4gICAgICBzaXplID0gcHJvcHMuc2l6ZSxcbiAgICAgIHJvdGF0aW9uID0gcHJvcHMucm90YXRpb24sXG4gICAgICBwdWxsID0gcHJvcHMucHVsbDsgLy8gbWFwIG9mIENTUyBjbGFzcyBuYW1lcyB0byBwcm9wZXJ0aWVzXG5cbiAgdmFyIGNsYXNzZXMgPSAoX2NsYXNzZXMgPSB7XG4gICAgJ2ZhLWJlYXQnOiBiZWF0LFxuICAgICdmYS1mYWRlJzogZmFkZSxcbiAgICAnZmEtYmVhdC1mYWRlJzogYmVhdEZhZGUsXG4gICAgJ2ZhLWJvdW5jZSc6IGJvdW5jZSxcbiAgICAnZmEtc2hha2UnOiBzaGFrZSxcbiAgICAnZmEtZmxhc2gnOiBmbGFzaCxcbiAgICAnZmEtc3Bpbic6IHNwaW4sXG4gICAgJ2ZhLXNwaW4tcmV2ZXJzZSc6IHNwaW5SZXZlcnNlLFxuICAgICdmYS1zcGluLXB1bHNlJzogc3BpblB1bHNlLFxuICAgICdmYS1wdWxzZSc6IHB1bHNlLFxuICAgICdmYS1mdyc6IGZpeGVkV2lkdGgsXG4gICAgJ2ZhLWludmVyc2UnOiBpbnZlcnNlLFxuICAgICdmYS1ib3JkZXInOiBib3JkZXIsXG4gICAgJ2ZhLWxpJzogbGlzdEl0ZW0sXG4gICAgJ2ZhLWZsaXAnOiBmbGlwID09PSB0cnVlLFxuICAgICdmYS1mbGlwLWhvcml6b250YWwnOiBmbGlwID09PSAnaG9yaXpvbnRhbCcgfHwgZmxpcCA9PT0gJ2JvdGgnLFxuICAgICdmYS1mbGlwLXZlcnRpY2FsJzogZmxpcCA9PT0gJ3ZlcnRpY2FsJyB8fCBmbGlwID09PSAnYm90aCdcbiAgfSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCBcImZhLVwiLmNvbmNhdChzaXplKSwgdHlwZW9mIHNpemUgIT09ICd1bmRlZmluZWQnICYmIHNpemUgIT09IG51bGwpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsIFwiZmEtcm90YXRlLVwiLmNvbmNhdChyb3RhdGlvbiksIHR5cGVvZiByb3RhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgcm90YXRpb24gIT09IG51bGwgJiYgcm90YXRpb24gIT09IDApLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsIFwiZmEtcHVsbC1cIi5jb25jYXQocHVsbCksIHR5cGVvZiBwdWxsICE9PSAndW5kZWZpbmVkJyAmJiBwdWxsICE9PSBudWxsKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCAnZmEtc3dhcC1vcGFjaXR5JywgcHJvcHMuc3dhcE9wYWNpdHkpLCBfY2xhc3Nlcyk7IC8vIG1hcCBvdmVyIGFsbCB0aGUga2V5cyBpbiB0aGUgY2xhc3NlcyBvYmplY3RcbiAgLy8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBrZXlzIHdoZXJlIHRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpcyBub3QgbnVsbFxuXG4gIHJldHVybiBPYmplY3Qua2V5cyhjbGFzc2VzKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBjbGFzc2VzW2tleV0gPyBrZXkgOiBudWxsO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBrZXk7XG4gIH0pO1xufVxuXG4vLyBDYW1lbGl6ZSB0YWtlbiBmcm9tIGh1bXBzXG4vLyBodW1wcyBpcyBjb3B5cmlnaHQgXHUwMEE5IDIwMTIrIERvbSBDaHJpc3RpZVxuLy8gUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuLy8gUGVyZm9ybWFudCB3YXkgdG8gZGV0ZXJtaW5lIGlmIG9iamVjdCBjb2VyY2VzIHRvIGEgbnVtYmVyXG5mdW5jdGlvbiBfaXNOdW1lcmljYWwob2JqKSB7XG4gIG9iaiA9IG9iaiAtIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcblxuICByZXR1cm4gb2JqID09PSBvYmo7XG59XG5cbmZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICBpZiAoX2lzTnVtZXJpY2FsKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuXG5cbiAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1tcXC1fXFxzXSsoLik/L2csIGZ1bmN0aW9uIChtYXRjaCwgY2hyKSB7XG4gICAgcmV0dXJuIGNociA/IGNoci50b1VwcGVyQ2FzZSgpIDogJyc7XG4gIH0pOyAvLyBFbnN1cmUgMXN0IGNoYXIgaXMgYWx3YXlzIGxvd2VyY2FzZVxuXG4gIHJldHVybiBzdHJpbmcuc3Vic3RyKDAsIDEpLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc3Vic3RyKDEpO1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wic3R5bGVcIl07XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUodmFsKSB7XG4gIHJldHVybiB2YWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWwuc2xpY2UoMSk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVG9PYmplY3Qoc3R5bGUpIHtcbiAgcmV0dXJuIHN0eWxlLnNwbGl0KCc7JykubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgcmV0dXJuIHMudHJpbSgpO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcbiAgICByZXR1cm4gcztcbiAgfSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBhaXIpIHtcbiAgICB2YXIgaSA9IHBhaXIuaW5kZXhPZignOicpO1xuICAgIHZhciBwcm9wID0gY2FtZWxpemUocGFpci5zbGljZSgwLCBpKSk7XG4gICAgdmFyIHZhbHVlID0gcGFpci5zbGljZShpICsgMSkudHJpbSgpO1xuICAgIHByb3Auc3RhcnRzV2l0aCgnd2Via2l0JykgPyBhY2NbY2FwaXRhbGl6ZShwcm9wKV0gPSB2YWx1ZSA6IGFjY1twcm9wXSA9IHZhbHVlO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gY29udmVydChjcmVhdGVFbGVtZW50LCBlbGVtZW50KSB7XG4gIHZhciBleHRyYVByb3BzID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcblxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICB2YXIgY2hpbGRyZW4gPSAoZWxlbWVudC5jaGlsZHJlbiB8fCBbXSkubWFwKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjb252ZXJ0KGNyZWF0ZUVsZW1lbnQsIGNoaWxkKTtcbiAgfSk7XG4gIC8qIGVzbGludC1kaXNhYmxlIGRvdC1ub3RhdGlvbiAqL1xuXG4gIHZhciBtaXhpbnMgPSBPYmplY3Qua2V5cyhlbGVtZW50LmF0dHJpYnV0ZXMgfHwge30pLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBrZXkpIHtcbiAgICB2YXIgdmFsID0gZWxlbWVudC5hdHRyaWJ1dGVzW2tleV07XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICBhY2MuYXR0cnNbJ2NsYXNzTmFtZSddID0gdmFsO1xuICAgICAgICBkZWxldGUgZWxlbWVudC5hdHRyaWJ1dGVzWydjbGFzcyddO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3R5bGUnOlxuICAgICAgICBhY2MuYXR0cnNbJ3N0eWxlJ10gPSBzdHlsZVRvT2JqZWN0KHZhbCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ2FyaWEtJykgPT09IDAgfHwga2V5LmluZGV4T2YoJ2RhdGEtJykgPT09IDApIHtcbiAgICAgICAgICBhY2MuYXR0cnNba2V5LnRvTG93ZXJDYXNlKCldID0gdmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy5hdHRyc1tjYW1lbGl6ZShrZXkpXSA9IHZhbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge1xuICAgIGF0dHJzOiB7fVxuICB9KTtcblxuICB2YXIgX2V4dHJhUHJvcHMkc3R5bGUgPSBleHRyYVByb3BzLnN0eWxlLFxuICAgICAgZXhpc3RpbmdTdHlsZSA9IF9leHRyYVByb3BzJHN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9leHRyYVByb3BzJHN0eWxlLFxuICAgICAgcmVtYWluaW5nID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGV4dHJhUHJvcHMsIF9leGNsdWRlZCk7XG5cbiAgbWl4aW5zLmF0dHJzWydzdHlsZSddID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIG1peGlucy5hdHRyc1snc3R5bGUnXSksIGV4aXN0aW5nU3R5bGUpO1xuICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLCBbZWxlbWVudC50YWcsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBtaXhpbnMuYXR0cnMpLCByZW1haW5pbmcpXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNoaWxkcmVuKSkpO1xufVxuXG52YXIgUFJPRFVDVElPTiA9IGZhbHNlO1xuXG50cnkge1xuICBQUk9EVUNUSU9OID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbn0gY2F0Y2ggKGUpIHt9XG5cbmZ1bmN0aW9uIGxvZyAoKSB7XG4gIGlmICghUFJPRFVDVElPTiAmJiBjb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIF9jb25zb2xlO1xuXG4gICAgKF9jb25zb2xlID0gY29uc29sZSkuZXJyb3IuYXBwbHkoX2NvbnNvbGUsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSWNvbkFyZ3MoaWNvbikge1xuICAvLyB0aGlzIGhhcyBldmVyeXRoaW5nIHRoYXQgaXQgbmVlZHMgdG8gYmUgcmVuZGVyZWQgd2hpY2ggbWVhbnMgaXQgd2FzIHByb2JhYmx5IGltcG9ydGVkXG4gIC8vIGRpcmVjdGx5IGZyb20gYW4gaWNvbiBzdmcgcGFja2FnZVxuICBpZiAoaWNvbiAmJiBfdHlwZW9mKGljb24pID09PSAnb2JqZWN0JyAmJiBpY29uLnByZWZpeCAmJiBpY29uLmljb25OYW1lICYmIGljb24uaWNvbikge1xuICAgIHJldHVybiBpY29uO1xuICB9XG5cbiAgaWYgKHBhcnNlLmljb24pIHtcbiAgICByZXR1cm4gcGFyc2UuaWNvbihpY29uKTtcbiAgfSAvLyBpZiB0aGUgaWNvbiBpcyBudWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG9cblxuXG4gIGlmIChpY29uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gaWYgdGhlIGljb24gaXMgYW4gb2JqZWN0IGFuZCBoYXMgYSBwcmVmaXggYW5kIGFuIGljb24gbmFtZSwgcmV0dXJuIGl0XG5cblxuICBpZiAoaWNvbiAmJiBfdHlwZW9mKGljb24pID09PSAnb2JqZWN0JyAmJiBpY29uLnByZWZpeCAmJiBpY29uLmljb25OYW1lKSB7XG4gICAgcmV0dXJuIGljb247XG4gIH0gLy8gaWYgaXQncyBhbiBhcnJheSB3aXRoIGxlbmd0aCBvZiB0d29cblxuXG4gIGlmIChBcnJheS5pc0FycmF5KGljb24pICYmIGljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgLy8gdXNlIHRoZSBmaXJzdCBpdGVtIGFzIHByZWZpeCwgc2Vjb25kIGFzIGljb24gbmFtZVxuICAgIHJldHVybiB7XG4gICAgICBwcmVmaXg6IGljb25bMF0sXG4gICAgICBpY29uTmFtZTogaWNvblsxXVxuICAgIH07XG4gIH0gLy8gaWYgaXQncyBhIHN0cmluZywgdXNlIGl0IGFzIHRoZSBpY29uIG5hbWVcblxuXG4gIGlmICh0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiAnZmFzJyxcbiAgICAgIGljb25OYW1lOiBpY29uXG4gICAgfTtcbiAgfVxufVxuXG4vLyBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIGEga2V5IG9mIGtleVxuLy8gYW5kIGEgdmFsdWUgb2YgdmFsdWVcbi8vIGlmIGNlcnRhaW4gY29uZGl0aW9ucyBhcmUgbWV0XG5mdW5jdGlvbiBvYmplY3RXaXRoS2V5KGtleSwgdmFsdWUpIHtcbiAgLy8gaWYgdGhlIHZhbHVlIGlzIGEgbm9uLWVtcHR5IGFycmF5XG4gIC8vIG9yIGl0J3Mgbm90IGFuIGFycmF5IGJ1dCBpdCBpcyB0cnV0aHlcbiAgLy8gdGhlbiBjcmVhdGUgdGhlIG9iamVjdCB3aXRoIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZVxuICAvLyBpZiBub3QsIHJldHVybiBhbiBlbXB0eSBhcnJheVxuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUgPyBfZGVmaW5lUHJvcGVydHkoe30sIGtleSwgdmFsdWUpIDoge307XG59XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGJvcmRlcjogZmFsc2UsXG4gIGNsYXNzTmFtZTogJycsXG4gIG1hc2s6IG51bGwsXG4gIG1hc2tJZDogbnVsbCxcbiAgZml4ZWRXaWR0aDogZmFsc2UsXG4gIGludmVyc2U6IGZhbHNlLFxuICBmbGlwOiBmYWxzZSxcbiAgaWNvbjogbnVsbCxcbiAgbGlzdEl0ZW06IGZhbHNlLFxuICBwdWxsOiBudWxsLFxuICBwdWxzZTogZmFsc2UsXG4gIHJvdGF0aW9uOiBudWxsLFxuICBzaXplOiBudWxsLFxuICBzcGluOiBmYWxzZSxcbiAgc3BpblB1bHNlOiBmYWxzZSxcbiAgc3BpblJldmVyc2U6IGZhbHNlLFxuICBiZWF0OiBmYWxzZSxcbiAgZmFkZTogZmFsc2UsXG4gIGJlYXRGYWRlOiBmYWxzZSxcbiAgYm91bmNlOiBmYWxzZSxcbiAgc2hha2U6IGZhbHNlLFxuICBzeW1ib2w6IGZhbHNlLFxuICB0aXRsZTogJycsXG4gIHRpdGxlSWQ6IG51bGwsXG4gIHRyYW5zZm9ybTogbnVsbCxcbiAgc3dhcE9wYWNpdHk6IGZhbHNlXG59O1xudmFyIEZvbnRBd2Vzb21lSWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBhbGxQcm9wcyA9IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBkZWZhdWx0UHJvcHMpLCBwcm9wcyk7XG5cbiAgdmFyIGljb25BcmdzID0gYWxsUHJvcHMuaWNvbixcbiAgICAgIG1hc2tBcmdzID0gYWxsUHJvcHMubWFzayxcbiAgICAgIHN5bWJvbCA9IGFsbFByb3BzLnN5bWJvbCxcbiAgICAgIGNsYXNzTmFtZSA9IGFsbFByb3BzLmNsYXNzTmFtZSxcbiAgICAgIHRpdGxlID0gYWxsUHJvcHMudGl0bGUsXG4gICAgICB0aXRsZUlkID0gYWxsUHJvcHMudGl0bGVJZCxcbiAgICAgIG1hc2tJZCA9IGFsbFByb3BzLm1hc2tJZDtcbiAgdmFyIGljb25Mb29rdXAgPSBub3JtYWxpemVJY29uQXJncyhpY29uQXJncyk7XG4gIHZhciBjbGFzc2VzID0gb2JqZWN0V2l0aEtleSgnY2xhc3NlcycsIFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY2xhc3NMaXN0KGFsbFByb3BzKSksIF90b0NvbnN1bWFibGVBcnJheSgoY2xhc3NOYW1lIHx8ICcnKS5zcGxpdCgnICcpKSkpO1xuICB2YXIgdHJhbnNmb3JtID0gb2JqZWN0V2l0aEtleSgndHJhbnNmb3JtJywgdHlwZW9mIGFsbFByb3BzLnRyYW5zZm9ybSA9PT0gJ3N0cmluZycgPyBwYXJzZS50cmFuc2Zvcm0oYWxsUHJvcHMudHJhbnNmb3JtKSA6IGFsbFByb3BzLnRyYW5zZm9ybSk7XG4gIHZhciBtYXNrID0gb2JqZWN0V2l0aEtleSgnbWFzaycsIG5vcm1hbGl6ZUljb25BcmdzKG1hc2tBcmdzKSk7XG4gIHZhciByZW5kZXJlZEljb24gPSBpY29uKGljb25Mb29rdXAsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBjbGFzc2VzKSwgdHJhbnNmb3JtKSwgbWFzayksIHt9LCB7XG4gICAgc3ltYm9sOiBzeW1ib2wsXG4gICAgdGl0bGU6IHRpdGxlLFxuICAgIHRpdGxlSWQ6IHRpdGxlSWQsXG4gICAgbWFza0lkOiBtYXNrSWRcbiAgfSkpO1xuXG4gIGlmICghcmVuZGVyZWRJY29uKSB7XG4gICAgbG9nKCdDb3VsZCBub3QgZmluZCBpY29uJywgaWNvbkxvb2t1cCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgYWJzdHJhY3QgPSByZW5kZXJlZEljb24uYWJzdHJhY3Q7XG4gIHZhciBleHRyYVByb3BzID0ge1xuICAgIHJlZjogcmVmXG4gIH07XG4gIE9iamVjdC5rZXlzKGFsbFByb3BzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgaWYgKCFkZWZhdWx0UHJvcHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgZXh0cmFQcm9wc1trZXldID0gYWxsUHJvcHNba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gY29udmVydEN1cnJ5KGFic3RyYWN0WzBdLCBleHRyYVByb3BzKTtcbn0pO1xuRm9udEF3ZXNvbWVJY29uLmRpc3BsYXlOYW1lID0gJ0ZvbnRBd2Vzb21lSWNvbic7XG5Gb250QXdlc29tZUljb24ucHJvcFR5cGVzID0ge1xuICBiZWF0OiBQcm9wVHlwZXMuYm9vbCxcbiAgYm9yZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgYmVhdEZhZGU6IFByb3BUeXBlcy5ib29sLFxuICBib3VuY2U6IFByb3BUeXBlcy5ib29sLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZhZGU6IFByb3BUeXBlcy5ib29sLFxuICBmbGFzaDogUHJvcFR5cGVzLmJvb2wsXG4gIG1hc2s6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBtYXNrSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZpeGVkV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICBpbnZlcnNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgZmxpcDogUHJvcFR5cGVzLm9uZU9mKFt0cnVlLCBmYWxzZSwgJ2hvcml6b250YWwnLCAndmVydGljYWwnLCAnYm90aCddKSxcbiAgaWNvbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIGxpc3RJdGVtOiBQcm9wVHlwZXMuYm9vbCxcbiAgcHVsbDogUHJvcFR5cGVzLm9uZU9mKFsncmlnaHQnLCAnbGVmdCddKSxcbiAgcHVsc2U6IFByb3BUeXBlcy5ib29sLFxuICByb3RhdGlvbjogUHJvcFR5cGVzLm9uZU9mKFswLCA5MCwgMTgwLCAyNzBdKSxcbiAgc2hha2U6IFByb3BUeXBlcy5ib29sLFxuICBzaXplOiBQcm9wVHlwZXMub25lT2YoWycyeHMnLCAneHMnLCAnc20nLCAnbGcnLCAneGwnLCAnMnhsJywgJzF4JywgJzJ4JywgJzN4JywgJzR4JywgJzV4JywgJzZ4JywgJzd4JywgJzh4JywgJzl4JywgJzEweCddKSxcbiAgc3BpbjogUHJvcFR5cGVzLmJvb2wsXG4gIHNwaW5QdWxzZTogUHJvcFR5cGVzLmJvb2wsXG4gIHNwaW5SZXZlcnNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3ltYm9sOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYm9vbCwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGl0bGVJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHJhbnNmb3JtOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSksXG4gIHN3YXBPcGFjaXR5OiBQcm9wVHlwZXMuYm9vbFxufTtcbnZhciBjb252ZXJ0Q3VycnkgPSBjb252ZXJ0LmJpbmQobnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudCk7XG5cbmV4cG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9O1xuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5pbXBvcnQgeyBHcm91cEVsZW1lbnQsIEdyb3VwaW5nLCBHcm91cGluZ3MsIExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0IH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VJbnRlcm5pbmcgfSBmcm9tIFwidWkvaG9va3NcIjtcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSBcInByZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgVk5vZGUsIGlzVmFsaWRFbGVtZW50IH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgQ29udHJvbGxlZFBhZ2VyLCB1c2VEYXRhY29yZVBhZ2luZyB9IGZyb20gXCIuL3BhZ2luZ1wiO1xuXG5pbXBvcnQgXCIuL3RhYmxlLmNzc1wiO1xuaW1wb3J0IHsgRWRpdGFibGUsIEVkaXRhYmxlQWN0aW9uLCBFZGl0YWJsZUVsZW1lbnQsIHVzZUVkaXRhYmxlRGlzcGF0Y2ggfSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBmYVNvcnREb3duLCBmYVNvcnRVcCwgZmFTb3J0IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSBcIkBmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZVwiO1xuXG4vKiogQSBzaW1wbGUgY29sdW1uIGRlZmluaXRpb24gd2hpY2ggYWxsb3dzIGZvciBjdXN0b20gcmVuZGVyZXJzIGFuZCB0aXRsZXMuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqIEB0eXBlUGFyYW0gVCAtIHRoZSB0eXBlIG9mIGVhY2ggcm93XG4gKiBAdHlwZVBhcmFtIFYgLSB0aGUgdHlwZSBvZiB0aGUgdmFsdWUgaW4gdGhpcyBjb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYW5pbGxhQ29sdW1uPFQsIFYgPSBMaXRlcmFsPiB7XG4gICAgLyoqIFRoZSB1bmlxdWUgSUQgb2YgdGhpcyB0YWJsZSBjb2x1bW47IHlvdSBjYW5ub3QgaGF2ZSBtdWx0aXBsZSBjb2x1bW5zIHdpdGggdGhlIHNhbWUgSUQgaW4gYSBnaXZlbiB0YWJsZS4gKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSB0aXRsZSB3aGljaCB3aWxsIGRpc3BsYXkgYXQgdGhlIHRvcCBvZiB0aGUgY29sdW1uIGlmIHByZXNlbnQuICovXG4gICAgdGl0bGU/OiBzdHJpbmcgfCBWTm9kZSB8ICgoKSA9PiBzdHJpbmcgfCBWTm9kZSk7XG5cbiAgICAvKiogSWYgcHJlc2VudCwgdGhlIENTUyB3aWR0aCB0byBhcHBseSB0byB0aGUgY29sdW1uLiAnbWluaW11bScgd2lsbCBzZXQgdGhlIGNvbHVtbiBzaXplIHRvIGl0J3Mgc21hbGxlc3QgcG9zc2libGUgdmFsdWUsIHdoaWxlICdtYXhpbXVtJyB3aWxsIGRvIHRoZSBvcHBvc2l0ZS4gKi9cbiAgICB3aWR0aD86IFwibWluaW11bVwiIHwgXCJtYXhpbXVtXCIgfCBzdHJpbmc7XG5cbiAgICAvKiogVmFsdWUgZnVuY3Rpb24gd2hpY2ggbWFwcyB0aGUgcm93IHRvIHRoZSB2YWx1ZSBiZWluZyByZW5kZXJlZC4gKi9cbiAgICB2YWx1ZTogKG9iamVjdDogVCkgPT4gVjtcblxuICAgIC8qKiBDYWxsZWQgdG8gcmVuZGVyIHRoZSBnaXZlbiBjb2x1bW4gdmFsdWUuIENhbiBkZXBlbmQgb24gYm90aCB0aGUgc3BlY2lmaWMgdmFsdWUgYW5kIHRoZSByb3cgb2JqZWN0LiAqL1xuICAgIHJlbmRlcj86ICh2YWx1ZTogViwgb2JqZWN0OiBUKSA9PiBMaXRlcmFsIHwgVk5vZGU7XG5cbiAgICAvKiogd2hldGhlciB0aGlzIGNvbHVtbiBpcyBlZGl0YWJsZSBvciBub3QgKi9cbiAgICBlZGl0YWJsZT86IGJvb2xlYW47XG5cbiAgICAvKiogUmVuZGVyZWQgd2hlbiBlZGl0aW5nIHRoZSBjb2x1bW4gKi9cbiAgICBlZGl0b3I/OiBFZGl0YWJsZUVsZW1lbnQ8Vj47XG5cbiAgICAvKiogUHJvcHMgdG8gcGFzcyB0byB0aGUgZWRpdG9yIGNvbXBvbmVudCAoaWYgYW55KSAqL1xuICAgIGVkaXRvclByb3BzOiB1bmtub3duO1xuXG4gICAgLyoqIENhbGxlZCB3aGVuIHRoZSBjb2x1bW4gdmFsdWUgdXBkYXRlcy4gKi9cbiAgICBvblVwZGF0ZT86ICh2YWx1ZTogViwgb2JqZWN0OiBUKSA9PiB1bmtub3duO1xufVxuXG4vKiogTWV0YWRhdGEgZm9yIGNvbmZpZ3VyaW5nIGhvdyBncm91cGluZ3MgaW4gdGhlIGRhdGEgc2hvdWxkIGJlIGhhbmRsZWQuXG4gKiBAZ3JvdXAgUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91cGluZ0NvbmZpZzxUPiB7XG4gICAgLyoqIEhvdyBhIGdyb3VwaW5nIHdpdGggdGhlIGdpdmVuIGtleSBhbmQgc2V0IG9mIHJvd3Mgc2hvdWxkIGJlIGhhbmRsZWQuICovXG4gICAgcmVuZGVyPzogKGtleTogTGl0ZXJhbCwgcm93czogR3JvdXBpbmc8VD4pID0+IExpdGVyYWwgfCBWTm9kZTtcbn1cblxuLyoqIEFsbCBhdmFpbGFibGUgcHJvcHMgZm9yIGEgdmFuaWxsYSB0YWJsZS5cbiAqIEBncm91cCBQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbmlsbGFUYWJsZVByb3BzPFQ+IHtcbiAgICAvKiogVGhlIGNvbHVtbnMgdG8gcmVuZGVyIGluIHRoZSB0YWJsZS4gKi9cbiAgICBjb2x1bW5zOiBWYW5pbGxhQ29sdW1uPFQ+W107XG5cbiAgICAvKiogVGhlIHJvd3MgdG8gcmVuZGVyOyBtYXkgcG90ZW50aWFsbHkgYmUgZ3JvdXBlZCBvciBqdXN0IGEgcGxhaW4gYXJyYXkuICovXG4gICAgcm93czogR3JvdXBpbmc8VD47XG5cbiAgICAvKiogQWxsb3dzIGZvciBncm91cGluZyBoZWFkZXIgY29sdW1ucyB0byBiZSBvdmVycmlkZGVuIHdpdGggY3VzdG9tIHJlbmRlcmluZy9sb2dpYy4gKi9cbiAgICBncm91cGluZ3M/OiBHcm91cGluZ0NvbmZpZzxUPiB8IEdyb3VwaW5nQ29uZmlnPFQ+W10gfCAoKGtleTogTGl0ZXJhbCwgcm93czogR3JvdXBpbmc8VD4pID0+IExpdGVyYWwgfCBWTm9kZSk7XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gYSBib29sZWFuIC0gZW5hYmxlcyBvciBkaXNhYmxlcyBwYWdpbmcuXG4gICAgICogSWYgc2V0IHRvIGEgbnVtYmVyLCBwYWdpbmcgd2lsbCBiZSBlbmFibGVkIHdpdGggdGhlIGdpdmVuIG51bWJlciBvZiByb3dzIHBlciBwYWdlLlxuICAgICAqL1xuICAgIHBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB2aWV3IHdpbGwgc2Nyb2xsIHRvIHRoZSB0b3AgYXV0b21hdGljYWxseSBvbiBwYWdlIGNoYW5nZXMuIElmIHRydWUsIHdpbGwgYWx3YXlzIHNjcm9sbCBvbiBwYWdlIGNoYW5nZXMuXG4gICAgICogSWYgYSBudW1iZXIsIHdpbGwgc2Nyb2xsIG9ubHkgaWYgdGhlIG51bWJlciBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgcGFnZSBzaXplLlxuICAgICAqKi9cbiAgICBzY3JvbGxPblBhZ2luZz86IGJvb2xlYW4gfCBudW1iZXI7XG59XG5cbi8qKiBBIHNpbXBsZSB0YWJsZSB3aGljaCBzdXBwb3J0cyBncm91cGluZywgc29ydGluZywgcGFnaW5nLCBhbmQgY3VzdG9tIGNvbHVtbnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICogQHBhcmFtIHByb3BzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBWYW5pbGxhVGFibGU8VD4ocHJvcHM6IFZhbmlsbGFUYWJsZVByb3BzPFQ+KSB7XG4gICAgLy8gQ2FjaGUgY29sdW1ucyBieSByZWZlcmVuY2UgZXF1YWxpdHkgb2YgdGhlIHNwZWNpZmljIGNvbHVtbnMuIENvbHVtbnMgaGF2ZSB2YXJpb3VzIGZ1bmN0aW9uIHJlZmVyZW5jZXNcbiAgICAvLyBpbnNpZGUgdGhlbSBhbmQgc28gY2Fubm90IGJlIGNvbXBhcmVkIGJ5IHZhbHVlIGVxdWFsaXR5LlxuICAgIGNvbnN0IGNvbHVtbnMgPSB1c2VJbnRlcm5pbmcocHJvcHMuY29sdW1ucywgKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09IGJbaW5kZXhdKTtcbiAgICB9KTtcblxuICAgIC8vIENvdW50IHRvdGFsIGVsZW1lbnRzIGFuZCB0aGVuIHBhZ2UgYXBwcm9wcmlhdGVseS5cbiAgICBjb25zdCB0YWJsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdG90YWxFbGVtZW50cyA9IHVzZU1lbW8oKCkgPT4gR3JvdXBpbmdzLmNvdW50KHByb3BzLnJvd3MpLCBbcHJvcHMucm93c10pO1xuICAgIGNvbnN0IHBhZ2luZyA9IHVzZURhdGFjb3JlUGFnaW5nKHtcbiAgICAgICAgaW5pdGlhbFBhZ2U6IDAsXG4gICAgICAgIHBhZ2luZzogcHJvcHMucGFnaW5nLFxuICAgICAgICBzY3JvbGxPblBhZ2VDaGFuZ2U6IHByb3BzLnNjcm9sbE9uUGFnaW5nLFxuICAgICAgICBlbGVtZW50czogdG90YWxFbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVyOiB0YWJsZVJlZixcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhZ2VkUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAocGFnaW5nLmVuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm4gR3JvdXBpbmdzLnNsaWNlKHByb3BzLnJvd3MsIHBhZ2luZy5wYWdlICogcGFnaW5nLnBhZ2VTaXplLCAocGFnaW5nLnBhZ2UgKyAxKSAqIHBhZ2luZy5wYWdlU2l6ZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHByb3BzLnJvd3M7XG4gICAgfSwgW3BhZ2luZy5wYWdlLCBwYWdpbmcucGFnZVNpemUsIHBhZ2luZy5lbmFibGVkLCBwcm9wcy5yb3dzXSk7XG5cbiAgICBjb25zdCBncm91cGluZ3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5ncm91cGluZ3MpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmdyb3VwaW5ncykpIHJldHVybiBwcm9wcy5ncm91cGluZ3M7XG5cbiAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24ocHJvcHMuZ3JvdXBpbmdzKSkgcmV0dXJuIFt7IHJlbmRlcjogcHJvcHMuZ3JvdXBpbmdzIH1dO1xuICAgICAgICBlbHNlIHJldHVybiBbcHJvcHMuZ3JvdXBpbmdzXTtcbiAgICB9LCBbcHJvcHMuZ3JvdXBpbmdzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHJlZj17dGFibGVSZWZ9PlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2wpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VmFuaWxsYVRhYmxlSGVhZGVyQ2VsbCBjb2x1bW49e2NvbH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICB7cGFnZWRSb3dzLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8VmFuaWxsYVJvd0dyb3VwIGxldmVsPXswfSBncm91cGluZ3M9e2dyb3VwaW5nc30gY29sdW1ucz17Y29sdW1uc30gZWxlbWVudD17cm93fSAvPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIHtwYWdpbmcuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgPENvbnRyb2xsZWRQYWdlciBwYWdlPXtwYWdpbmcucGFnZX0gdG90YWxQYWdlcz17cGFnaW5nLnRvdGFsUGFnZXN9IHNldFBhZ2U9e3BhZ2luZy5zZXRQYWdlfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cblxuLyoqIEFuIGluZGl2aWR1YWwgY29sdW1uIGNlbGwgaW4gdGhlIHRhYmxlLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVmFuaWxsYVRhYmxlSGVhZGVyQ2VsbDxUPih7IGNvbHVtbiB9OiB7IGNvbHVtbjogVmFuaWxsYUNvbHVtbjxUPiB9KSB7XG4gICAgY29uc3QgaGVhZGVyOiBzdHJpbmcgfCBWTm9kZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbHVtbi50aXRsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5pZDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29sdW1uLnRpdGxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4udGl0bGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4udGl0bGU7XG4gICAgICAgIH1cbiAgICB9LCBbY29sdW1uLmlkLCBjb2x1bW4udGl0bGVdKTtcblxuICAgIGNvbnN0IHJlYWxXaWR0aCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IChjb2x1bW4ud2lkdGggPT09IFwibWluaW11bVwiID8gXCIxcHhcIiA6IGNvbHVtbi53aWR0aCA9PT0gXCJtYXhpbXVtXCIgPyBcImF1dG9cIiA6IGNvbHVtbi53aWR0aCksXG4gICAgICAgIFtjb2x1bW4ud2lkdGhdXG4gICAgKTtcblxuICAgIC8vIFdlIHVzZSBhbiBpbnRlcm5hbCBkaXYgdG8gYXZvaWQgZmxleCBtZXNzaW5nIHdpdGggdGhlIHRhYmxlIGxheW91dC5cbiAgICByZXR1cm4gKFxuICAgICAgICA8dGggd2lkdGg9e3JlYWxXaWR0aH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXRpdGxlXCI+e2hlYWRlcn08L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICApO1xufVxuXG4vKiogQSBncm91cGluZyBpbiB0aGUgdGFibGUsIG9yIGFuIGluZGl2aWR1YWwgcm93LlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVmFuaWxsYVJvd0dyb3VwPFQ+KHtcbiAgICBsZXZlbCxcbiAgICBjb2x1bW5zLFxuICAgIGVsZW1lbnQsXG4gICAgZ3JvdXBpbmdzLFxufToge1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgY29sdW1uczogVmFuaWxsYUNvbHVtbjxUPltdO1xuICAgIGVsZW1lbnQ6IFQgfCBHcm91cEVsZW1lbnQ8VD47XG4gICAgZ3JvdXBpbmdzPzogR3JvdXBpbmdDb25maWc8VD5bXTtcbn0pIHtcbiAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwaW5nQ29uZmlnID0gZ3JvdXBpbmdzID8gZ3JvdXBpbmdzW01hdGgubWluKGdyb3VwaW5ncy5sZW5ndGggLSAxLCBsZXZlbCldIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPFRhYmxlR3JvdXBIZWFkZXIgbGV2ZWw9e2xldmVsfSB2YWx1ZT17ZWxlbWVudH0gd2lkdGg9e2NvbHVtbnMubGVuZ3RofSBjb25maWc9e2dyb3VwaW5nQ29uZmlnfSAvPlxuICAgICAgICAgICAgICAgIHtlbGVtZW50LnJvd3MubWFwKChyb3cpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFZhbmlsbGFSb3dHcm91cCBsZXZlbD17bGV2ZWwgKyAxfSBjb2x1bW5zPXtjb2x1bW5zfSBlbGVtZW50PXtyb3d9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8VGFibGVSb3cgbGV2ZWw9e2xldmVsfSByb3c9e2VsZW1lbnR9IGNvbHVtbnM9e2NvbHVtbnN9IC8+O1xuICAgIH1cbn1cblxuLyoqIEEgaGVhZGVyIG9mIGEgZ3JvdXBlZCBzZXQgb2YgY29sdW1ucy5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhYmxlR3JvdXBIZWFkZXI8VD4oe1xuICAgIGxldmVsLFxuICAgIHZhbHVlLFxuICAgIHdpZHRoLFxuICAgIGNvbmZpZyxcbn06IHtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHZhbHVlOiBHcm91cEVsZW1lbnQ8VD47XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBjb25maWc/OiBHcm91cGluZ0NvbmZpZzxUPjtcbn0pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3QgcmF3UmVuZGVyYWJsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnPy5yZW5kZXIpIHJldHVybiBjb25maWcucmVuZGVyKHZhbHVlLmtleSwgdmFsdWUucm93cyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICA8TGl0IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17dHJ1ZX0gdmFsdWU9e3ZhbHVlLmtleX0gLz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgKTtcbiAgICB9LCBbY29uZmlnPy5yZW5kZXIsIHZhbHVlLmtleSwgdmFsdWUucm93c10pO1xuICAgIGNvbnN0IHJlbmRlcmFibGUgPSB1c2VBc0VsZW1lbnQocmF3UmVuZGVyYWJsZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICA8dGQgY29sU3Bhbj17d2lkdGh9PntyZW5kZXJhYmxlfTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgKTtcbn1cblxuLyoqIEEgc2luZ2xlIHJvdyBpbnNpZGUgdGhlIHRhYmxlLlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFibGVSb3c8VD4oeyBsZXZlbCwgcm93LCBjb2x1bW5zIH06IHsgbGV2ZWw6IG51bWJlcjsgcm93OiBUOyBjb2x1bW5zOiBWYW5pbGxhQ29sdW1uPFQ+W10gfSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIDx0ciBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1yb3dcIiBzdHlsZT17bGV2ZWwgPyBgcGFkZGluZy1sZWZ0OiAke2xldmVsICogNX1weGAgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2wpID0+IChcbiAgICAgICAgICAgICAgICA8VGFibGVSb3dDZWxsIHJvdz17cm93fSBjb2x1bW49e2NvbH0gLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L3RyPlxuICAgICk7XG59XG5cbi8qKiBBIHNpbmdsZSBjZWxsIGluc2lkZSBvZiBhIHJvdyBvZiB0aGUgdGFibGUuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZVJvd0NlbGw8VD4oeyByb3csIGNvbHVtbiB9OiB7IHJvdzogVDsgY29sdW1uOiBWYW5pbGxhQ29sdW1uPFQ+IH0pIHtcbiAgICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gY29sdW1uLnZhbHVlKHJvdyksIFtyb3csIGNvbHVtbi52YWx1ZV0pO1xuICAgIGNvbnN0IFtlZGl0YWJsZVN0YXRlLCBkaXNwYXRjaF0gPSB1c2VFZGl0YWJsZURpc3BhdGNoPHR5cGVvZiB2YWx1ZT4oe1xuICAgICAgICBjb250ZW50OiB2YWx1ZSxcbiAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgdXBkYXRlcjogKHYpID0+IGNvbHVtbi5vblVwZGF0ZSAmJiBjb2x1bW4ub25VcGRhdGUodiwgcm93KSxcbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJhYmxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChjb2x1bW4ucmVuZGVyKSB7XG4gICAgICAgICAgICBsZXQgciA9IGNvbHVtbi5yZW5kZXIoZWRpdGFibGVTdGF0ZS5jb250ZW50LCByb3cpO1xuICAgICAgICAgICAgaWYgKHIgJiYgdHlwZW9mIHIgPT0gXCJvYmplY3RcIiAmJiBcInByb3BzXCIgaW4gcikgcmV0dXJuIHsgLi4uciwgcHJvcHM6IHsgLi4uci5wcm9wcywgZGlzcGF0Y2ggfSB9O1xuICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gdmFsdWU7XG4gICAgfSwgW3JvdywgY29sdW1uLnJlbmRlciwgdmFsdWVdKTtcblxuICAgIGNvbnN0IHJlbmRlcmVkID0gdXNlQXNFbGVtZW50KHJlbmRlcmFibGUpO1xuXG4gICAgY29uc3QgeyBlZGl0b3I6IEVkaXRvciB9ID0gY29sdW1uO1xuICAgIHJldHVybiAoXG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgb25EYmxDbGljaz17KCkgPT4gZGlzcGF0Y2goeyB0eXBlOiBcImVkaXRpbmctdG9nZ2xlZFwiLCBuZXdWYWx1ZTogIWVkaXRhYmxlU3RhdGUuaXNFZGl0aW5nIH0pfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtY2VsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHtjb2x1bW4uZWRpdGFibGUgJiYgZWRpdGFibGVTdGF0ZS5pc0VkaXRpbmcgJiYgRWRpdG9yID8gKFxuICAgICAgICAgICAgICAgIDxFZGl0b3IgZGlzcGF0Y2g9e2Rpc3BhdGNofSB7Li4uZWRpdGFibGVTdGF0ZX0gey4uLihjb2x1bW4uZWRpdG9yUHJvcHMgPz8ge30pfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICByZW5kZXJlZFxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC90ZD5cbiAgICApO1xufVxuXG4vKiogRW5zdXJlIHRoYXQgYSBnaXZlbiBsaXRlcmFsIG9yIGVsZW1lbnQgaW5wdXQgaXMgcmVuZGVyZWQgYXMgYSBKU1guRWxlbWVudC5cbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzRWxlbWVudChlbGVtZW50OiBWTm9kZSB8IExpdGVyYWwpOiBWTm9kZSB7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IHVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuXG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50IGFzIFZOb2RlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDxMaXQgc291cmNlUGF0aD17c291cmNlUGF0aH0gaW5saW5lPXt0cnVlfSB2YWx1ZT17ZWxlbWVudCBhcyBhbnl9IC8+O1xuICAgICAgICB9XG4gICAgfSwgW2VsZW1lbnRdKTtcbn1cbi8qKiBQcm92aWRlcyBhIHNvcnQgYnV0dG9uIHRoYXQgaGFzIGEgY2xpY2sgaGFuZGxlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTb3J0QnV0dG9uKHtcbiAgICBkaXJlY3Rpb24sXG4gICAgb25DbGljayxcbiAgICBjbGFzc05hbWUsXG59OiB7XG4gICAgZGlyZWN0aW9uPzogU29ydERpcmVjdGlvbjtcbiAgICBvbkNsaWNrPzogKGV2dDogTW91c2VFdmVudCkgPT4gYW55O1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbn0pIHtcbiAgICBjb25zdCBpY29uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gXCJhc2NlbmRpbmdcIikgcmV0dXJuIGZhU29ydERvd247XG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBcImRlc2NlbmRpbmdcIikgcmV0dXJuIGZhU29ydFVwO1xuICAgICAgICByZXR1cm4gZmFTb3J0O1xuICAgIH0sIFtkaXJlY3Rpb25dKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgb25DbGljaz17b25DbGlja30gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtpY29ufSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG4vKiogRGVmYXVsdCBjb21wYXJhdG9yIGZvciBzb3J0aW5nIG9uIGEgdGFibGUgY29sdW1uLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEFCTEVfQ09NUEFSQVRPUjogPFQ+KGE6IExpdGVyYWwsIGI6IExpdGVyYWwsIGFvOiBULCBibzogVCkgPT4gbnVtYmVyID0gKGEsIGIsIF9hbywgX2JvKSA9PlxuICAgIExpdGVyYWxzLmNvbXBhcmUoYSwgYik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUYWJsZSBIb29rcyAvL1xuLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgVGFibGVBY3Rpb24gPVxuICAgIHwgeyB0eXBlOiBcInJlc2V0LWFsbFwiIH1cbiAgICB8IHsgdHlwZTogXCJzZXQtcGFnZVwiOyBwYWdlOiBudW1iZXIgfVxuICAgIHwgeyB0eXBlOiBcInNvcnQtY29sdW1uXCI7IGNvbHVtbjogc3RyaW5nOyBkaXJlY3Rpb24/OiBcImFzY2VuZGluZ1wiIHwgXCJkZXNjZW5kaW5nXCIgfTtcblxuZXhwb3J0IHR5cGUgU29ydERpcmVjdGlvbiA9IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIjtcblxuLyoqIFRoZSB3YXlzIHRoYXQgdGhlIHRhYmxlIGNhbiBiZSBzb3J0ZWQuICovXG5leHBvcnQgdHlwZSBTb3J0T24gPSB7IHR5cGU6IFwiY29sdW1uXCI7IGlkOiBzdHJpbmc7IGRpcmVjdGlvbjogU29ydERpcmVjdGlvbiB9O1xuIiwgIi8qKlxuICogQG1vZHVsZSB2aWV3c1xuICovXG5pbXBvcnQgeyBWTm9kZSB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IFByb3BzV2l0aENoaWxkcmVuIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSB9IGZyb20gXCJ1aS9ob29rc1wiO1xuXG5pbXBvcnQgXCIuL2NhbGxvdXQuY3NzXCI7XG5pbXBvcnQgeyBjb21iaW5lQ2xhc3NlcyB9IGZyb20gXCIuLi9iYXNpY3NcIjtcblxuLyoqIEdlbmVyYWwgcHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYSBjYWxsb3V0LlxuICogQGdyb3VwIFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbG91dFByb3BzIHtcbiAgICAvKiogVGl0bGUgb2YgdGhlIGNhbGxvdXQuICovXG4gICAgdGl0bGU6IHN0cmluZyB8IFZOb2RlO1xuICAgIC8qKiBBcmJpdHJhcnkgaWNvbiB0byBzaG93IGF0IHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHRpdGxlIGluIHRoZSBjYWxsb3V0LiAqL1xuICAgIGljb24/OiBWTm9kZTtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIGNhbGxvdXQuICovXG4gICAgdHlwZT86IHN0cmluZztcbiAgICAvKiogV2hldGhlciB0aGUgY2FsbG91dCBpcyBjb2xsYXBzaWJsZSAoZGVmYXVsdHMgdG8gdHJ1ZSkuICovXG4gICAgY29sbGFwc2libGU/OiBib29sZWFuO1xuXG4gICAgLyoqIENvbnRyb2xsZWQgcHJvcCBmb3Igc2V0dGluZyB3aGV0aGVyIHRoZSBjYWxsb3V0IGlzIG9wZW4uICovXG4gICAgb3BlbjogYm9vbGVhbjtcbiAgICAvKiogV2hldGhlciB0aGUgY2FsbG91dCBpcyBpbml0aWFsbHkgb3BlbiBpZiB1bmNvbnRyb2xsZWQuICovXG4gICAgaW5pdGlhbE9wZW4/OiBib29sZWFuO1xuICAgIC8qKiBDYWxsZWQgd2hlbmV2ZXIgdGhlIG9wZW4gc3RhdGUgb2YgdGhlIGNhbGxvdXQgY2hhbmdlcyBkdWUgdG8gdXNlciBhY3Rpb24uICovXG4gICAgb25PcGVuQ2hhbmdlPzogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vKiogU3BsaXRzIG9uIGB8PHN0dWZmPmAuICovXG5jb25zdCBNRVRBREFUQV9TUExJVF9SRUdFWCA9IC9cXHwoLiopL3M7XG5cbi8qKlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqIEBwYXJhbSBwcm9wcyB7QGluaGVyaXREb2MgQ2FsbG91dFByb3BzfVxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FsbG91dCh7XG4gICAgY29sbGFwc2libGUgPSB0cnVlLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGluaXRpYWxPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICB0aXRsZSxcbiAgICBpY29uLFxuICAgIGNoaWxkcmVuLFxuICAgIHR5cGUsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxDYWxsb3V0UHJvcHM+KSB7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGluaXRpYWxPcGVuID8/IHRydWUsIG9wZW5Qcm9wLCBvbk9wZW5DaGFuZ2UpO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGRhdGEtY2FsbG91dC1tZXRhZGF0YT17dHlwZT8uc3BsaXQoTUVUQURBVEFfU1BMSVRfUkVHRVgpPy5bMV19XG4gICAgICAgICAgICBkYXRhLWNhbGxvdXQ9e3R5cGU/LnNwbGl0KE1FVEFEQVRBX1NQTElUX1JFR0VYKT8uWzBdfVxuICAgICAgICAgICAgZGF0YS1jYWxsb3V0LWZvbGQ9e29wZW4gPyBcIitcIiA6IFwiLVwifVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjb21iaW5lQ2xhc3NlcyhcImRhdGFjb3JlXCIsIFwiY2FsbG91dFwiLCBjb2xsYXBzaWJsZSA/IFwiaXMtY29sbGFwc2libGVcIiA6IHVuZGVmaW5lZCl9XG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FsbG91dC10aXRsZVwiIG9uQ2xpY2s9eygpID0+IGNvbGxhcHNpYmxlICYmIHNldE9wZW4oIW9wZW4pfT5cbiAgICAgICAgICAgICAgICB7aWNvbiAmJiA8ZGl2IGNsYXNzTmFtZT1cImNhbGxvdXQtaWNvblwiPntpY29ufTwvZGl2Pn1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGxvdXQtdGl0bGUtaW5uZXJcIj57dGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAge2NvbGxhcHNpYmxlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NvbWJpbmVDbGFzc2VzKFwiY2FsbG91dC1mb2xkXCIsICFvcGVuID8gXCJpcy1jb2xsYXBzZWRcIiA6IHVuZGVmaW5lZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBsdWNpZGUtY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTYgOSA2IDYgNi02XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtvcGVuICYmIDxkaXYgY2xhc3NOYW1lPVwiY2FsbG91dC1jb250ZW50XCI+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgdmlld3NcbiAqL1xuXG5pbXBvcnQgeyBMaXRlcmFsIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgVk5vZGUgfSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuXG5pbXBvcnQgXCIuL2NhcmRzLmNzc1wiO1xuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIGNhcmQgY29tcG9uZW50XG4gKlxuICogQGdyb3VwIFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FyZFByb3BzPFQ+IHtcbiAgICAvKiogdGhlIGFjdHVhbCB2YWx1ZSBoZWxkIGluIHRoaXMgY2FyZC4gKi9cbiAgICB2YWx1ZTogVDtcblxuICAgIC8qKiBUaGUgdGl0bGUgb2YgdGhlIGNhcmQuICovXG4gICAgdGl0bGU6IExpdGVyYWwgfCAoKHZhbDogVCkgPT4gTGl0ZXJhbCB8IFZOb2RlKTtcblxuICAgIC8qKiBUaGUgcmF3IGNvbnRlbnQgb2YgdGhlIGNhcmQuICovXG4gICAgY29udGVudDogTGl0ZXJhbCB8ICgodmFsOiBUKSA9PiBMaXRlcmFsIHwgVk5vZGUpO1xuXG4gICAgLyoqIG9wdGlvbmFsIGZvb3RlciAoYmVjYXVzZSB3aHkgbm90PykgKi9cbiAgICBmb290ZXI/OiBMaXRlcmFsIHwgKCh2YWw6IFQpID0+IExpdGVyYWwgfCBWTm9kZSk7XG5cbiAgICAvKiogSWYgdHJ1ZSwgdGhlIHRpdGxlIHdpbGwgYmUgcmVuZGVyZWQgY2VudGVyZWQuICovXG4gICAgY2VudGVyVGl0bGU/OiBib29sZWFuO1xufVxuLyoqXG4gKiBBIGNhcmQgd2l0aCBhIHRpdGxlIGFuZCBjb250ZW50XG4gKlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhcmQ8VD4ocHJvcHM6IENhcmRQcm9wczxUPikge1xuICAgIGNvbnN0IGNhcmRUaXRsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHByb3BzLnRpdGxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aXRsZShwcm9wcy52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMudGl0bGU7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMudmFsdWUsIHByb3BzLnRpdGxlXSk7XG5cbiAgICBjb25zdCBpbm5lckNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9wcy5jb250ZW50ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBwcm9wcy5jb250ZW50KHByb3BzLnZhbHVlKTtcbiAgICAgICAgZWxzZSByZXR1cm4gcHJvcHMuY29udGVudDtcbiAgICB9LCBbcHJvcHMudmFsdWUsIHByb3BzLmNvbnRlbnRdKTtcblxuICAgIGNvbnN0IGZvb3RlckNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmZvb3RlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3BzLmZvb3RlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmZvb3Rlcihwcm9wcy52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5mb290ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSwgW3Byb3BzLmZvb3RlciwgcHJvcHMudmFsdWVdKTtcblxuICAgIGNvbnN0IHRpdGxlQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgYmFzZSA9IFtcImRhdGFjb3JlLWNhcmQtdGl0bGVcIl07XG4gICAgICAgIGlmIChwcm9wcy5jZW50ZXJUaXRsZSkgYmFzZSA9IGJhc2UuY29uY2F0KFwiY2VudGVyZWRcIik7XG4gICAgICAgIHJldHVybiBiYXNlO1xuICAgIH0sIFtwcm9wcy5jZW50ZXJUaXRsZSwgcHJvcHMudGl0bGUsIHByb3BzLmNvbnRlbnQsIHByb3BzLnZhbHVlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aXRsZUNsYXNzZXMuam9pbihcIiBcIil9PntjYXJkVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWNhcmQtaW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFjb3JlLWNhcmQtY29udGVudFwiPntpbm5lckNvbnRlbnR9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRhY29yZS1jYXJkLWZvb3RlclwiPntmb290ZXJDb250ZW50fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGFwaVxuICovXG5pbXBvcnQgeyBHcm91cGluZ3MsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuXG4vKiogQSBmdW5jdGlvbiB3aGljaCBtYXBzIGFuIGFycmF5IGVsZW1lbnQgdG8gc29tZSB2YWx1ZS4gKi9cbmV4cG9ydCB0eXBlIEFycmF5RnVuYzxULCBPPiA9IChlbGVtOiBULCBpbmRleDogbnVtYmVyLCBhcnI6IFRbXSkgPT4gTztcblxuLyoqIEEgZnVuY3Rpb24gd2hpY2ggY29tcGFyZXMgdHdvIHR5cGVzLiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlDb21wYXJhdG9yPFQ+ID0gKGE6IFQsIGI6IFQpID0+IG51bWJlcjtcblxuLyoqIEZpbmRzIHRoZSB2YWx1ZSBvZiB0aGUgbG93ZXN0IHZhbHVlIHR5cGUgaW4gYSBncm91cGluZy4gKi9cbmV4cG9ydCB0eXBlIExvd2VzdEtleTxUPiA9IFQgZXh0ZW5kcyB7IGtleTogYW55OyByb3dzOiBhbnkgfSA/IExvd2VzdEtleTxUW1wicm93c1wiXVswXT4gOiBUO1xuXG4vKiogQSByaWRpY3Vsb3VzIHR5cGUgd2hpY2ggcHJvcGVybHkgdHlwZXMgdGhlIHJlc3VsdCBvZiB0aGUgJ2dyb3VwSW4nIGNvbW1hbmQuICovXG5leHBvcnQgdHlwZSBJbmdyb3VwZWQ8VSwgVD4gPSBUIGV4dGVuZHMgeyBrZXk6IGFueTsgcm93czogYW55IH1cbiAgICA/IHsga2V5OiBUW1wia2V5XCJdOyByb3dzOiBJbmdyb3VwZWQ8VSwgVFtcInJvd3NcIl1bMF0+IH1cbiAgICA6IHsga2V5OiBVOyByb3dzOiBUW10gfTtcblxuLyoqXG4gKiBQcm94aWVkIGludGVyZmFjZSB3aGljaCBhbGxvd3MgbWFuaXB1bGF0aW5nIGFycmF5LWJhc2VkIGRhdGEuIEFsbCBmdW5jdGlvbnMgb24gYSBkYXRhIGFycmF5IHByb2R1Y2UgYSBORVcgYXJyYXlcbiAqIChpLmUuLCB0aGUgYXJyYXlzIGFyZSBpbW11dGFibGUpLlxuICogQGdyb3VwIENvbW1vbiBUeXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFBcnJheTxUPiB7XG4gICAgLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5LiAqL1xuICAgIGxlbmd0aDogbnVtYmVyO1xuXG4gICAgLyoqIEFwcGxpZXMgdGhlIGdpdmVuIGZ1bmN0aW9uIHRvIHRoZSBlbnRpcmUgZGF0YSBhcnJheS4gQWxsb3dzIHVzaW5nIGZ1bmN0aW9uIGNoYWluaW5nIHdoaWxlIGFwcGx5aW5nIGFuIGFyYml0cmFyeSBpbnRlcm1lZGlhdGUgZnVuY3Rpb24uICovXG4gICAgY2hhaW48VT4ob3A6IChhcnI6IERhdGFBcnJheTxUPikgPT4gRGF0YUFycmF5PFU+KTogRGF0YUFycmF5PFU+O1xuXG4gICAgLyoqIEZpbHRlciB0aGUgZGF0YSBhcnJheSBkb3duIHRvIGp1c3QgZWxlbWVudHMgd2hpY2ggbWF0Y2ggdGhlIGdpdmVuIHByZWRpY2F0ZS4gKi9cbiAgICB3aGVyZShwcmVkaWNhdGU6IEFycmF5RnVuYzxULCBib29sZWFuPik6IERhdGFBcnJheTxUPjtcbiAgICAvKiogQWxpYXMgZm9yICd3aGVyZScgZm9yIHBlb3BsZSB3aG8gd2FudCBhcnJheSBzZW1hbnRpY3MuICovXG4gICAgZmlsdGVyKHByZWRpY2F0ZTogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogRGF0YUFycmF5PFQ+O1xuXG4gICAgLyoqIE1hcCBlbGVtZW50cyBpbiB0aGUgZGF0YSBhcnJheSBieSBhcHBseWluZyBhIGZ1bmN0aW9uIHRvIGVhY2guICovXG4gICAgbWFwPFU+KGY6IEFycmF5RnVuYzxULCBVPik6IERhdGFBcnJheTxVPjtcbiAgICAvKiogTWFwIGVsZW1lbnRzIGluIHRoZSBkYXRhIGFycmF5IGJ5IGFwcGx5aW5nIGEgZnVuY3Rpb24gdG8gZWFjaCwgdGhlbiBmbGF0dGVuIHRoZSByZXN1bHRzIHRvIHByb2R1Y2UgYSBuZXcgYXJyYXkuICovXG4gICAgZmxhdE1hcDxVPihmOiBBcnJheUZ1bmM8VCwgVVtdPik6IERhdGFBcnJheTxVPjtcbiAgICAvKiogTXV0YWJseSBjaGFuZ2UgZWFjaCB2YWx1ZSBpbiB0aGUgYXJyYXksIHJldHVybmluZyB0aGUgc2FtZSBhcnJheSB3aGljaCB5b3UgY2FuIGZ1cnRoZXIgY2hhaW4gb2ZmIG9mLiAqL1xuICAgIG11dGF0ZShmOiBBcnJheUZ1bmM8VCwgdm9pZD4pOiBEYXRhQXJyYXk8VD47XG5cbiAgICAvKiogTGltaXQgdGhlIHRvdGFsIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBhcnJheSB0byB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgbGltaXQoY291bnQ6IG51bWJlcik6IERhdGFBcnJheTxUPjtcbiAgICAvKipcbiAgICAgKiBUYWtlIGEgc2xpY2Ugb2YgdGhlIGFycmF5LiBJZiBgc3RhcnRgIGlzIHVuZGVmaW5lZCwgaXQgaXMgYXNzdW1lZCB0byBiZSAwOyBpZiBgZW5kYCBpcyB1bmRlZmluZWQsIGl0IGlzIGFzc3VtYmVkXG4gICAgICogdG8gYmUgdGhlIGVuZCBvZiB0aGUgYXJyYXkuXG4gICAgICovXG4gICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IERhdGFBcnJheTxUPjtcbiAgICAvKiogQ29uY2F0ZW5hdGUgdGhlIHZhbHVlcyBpbiB0aGlzIGRhdGEgYXJyYXkgd2l0aCB0aG9zZSBvZiBhbm90aGVyIGl0ZXJhYmxlIC8gZGF0YSBhcnJheSAvIGFycmF5LiAqL1xuICAgIGNvbmNhdChvdGhlcjogSXRlcmFibGU8VD4pOiBEYXRhQXJyYXk8VD47XG5cbiAgICAvKiogUmV0dXJuIHRoZSBmaXJzdCBpbmRleCBvZiB0aGUgZ2l2ZW4gKG9wdGlvbmFsbHkgc3RhcnRpbmcgdGhlIHNlYXJjaCkgKi9cbiAgICBpbmRleE9mKGVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjtcbiAgICAvKiogUmV0dXJuIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgc2F0aXNmaWVzIHRoZSBnaXZlbiBwcmVkaWNhdGUuICovXG4gICAgZmluZChwcmVkOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBUIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBGaW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IHNhdGlzZmllcyB0aGUgZ2l2ZW4gcHJlZGljYXRlLiBSZXR1cm5zIC0xIGlmIG5vdGhpbmcgd2FzIGZvdW5kLiAqL1xuICAgIGZpbmRJbmRleChwcmVkOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4sIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjtcbiAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBhcnJheSBjb250YWlucyB0aGUgZ2l2ZW4gZWxlbWVudCwgYW5kIGZhbHNlIG90aGVyd2lzZS4gKi9cbiAgICBpbmNsdWRlcyhlbGVtZW50OiBUKTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHN0cmluZyBvYnRhaW5lZCBieSBjb252ZXJ0aW5nIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdG8gYSBzdHJpbmcsIGFuZCBqb2luaW5nIGl0IHdpdGggdGhlXG4gICAgICogZ2l2ZW4gc2VwYXJhdG9yICh3aGljaCBkZWZhdWx0cyB0byAnLCAnKS5cbiAgICAgKi9cbiAgICBqb2luKHNlcD86IHN0cmluZyk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHNvcnRlZCBhcnJheSBzb3J0ZWQgYnkgdGhlIGdpdmVuIGtleTsgYW4gb3B0aW9uYWwgY29tcGFyYXRvciBjYW4gYmUgcHJvdmlkZWQsIHdoaWNoIHdpbGxcbiAgICAgKiBiZSB1c2VkIHRvIGNvbXBhcmUgdGhlIGtleXMgaW4gbGVpdSBvZiB0aGUgZGVmYXVsdCBkYXRhdmlldyBjb21wYXJhdG9yLlxuICAgICAqL1xuICAgIHNvcnQ8VT4oa2V5OiBBcnJheUZ1bmM8VCwgVT4sIGRpcmVjdGlvbj86IFwiYXNjXCIgfCBcImRlc2NcIiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxUPjtcblxuICAgIC8qKlxuICAgICAqIE11dGFibHkgbW9kaWZ5IHRoZSBjdXJyZW50IGFycmF5IHdpdGggYW4gaW4gcGxhY2Ugc29ydDsgdGhpcyBpcyBsZXNzIGZsZXhpYmxlIHRoYW4gYSByZWd1bGFyIHNvcnQgaW4gZXhjaGFuZ2VcbiAgICAgKiBmb3IgYmVpbmcgYSBsaXR0bGUgbW9yZSBwZXJmb3JtYW50LiBPbmx5IHVzZSB0aGlzIGlzIHBlcmZvcm1hbmNlIGlzIGEgc2VyaW91cyBjb25zaWRlcmF0aW9uLlxuICAgICAqL1xuICAgIHNvcnRJblBsYWNlPFU+KGtleTogKHY6IFQpID0+IFUsIGRpcmVjdGlvbj86IFwiYXNjXCIgfCBcImRlc2NcIiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxUPjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhbiBhcnJheSB3aGVyZSBlbGVtZW50cyBhcmUgZ3JvdXBlZCBieSB0aGUgZ2l2ZW4ga2V5OyB0aGUgcmVzdWx0aW5nIGFycmF5IHdpbGwgaGF2ZSBvYmplY3RzIG9mIHRoZSBmb3JtXG4gICAgICogXFxgeyBrZXk6IFxcPGtleSB2YWx1ZVxcPiwgcm93czogRGF0YUFycmF5IH1gLlxuICAgICAqL1xuICAgIGdyb3VwQnk8VT4oa2V5OiBBcnJheUZ1bmM8VCwgVT4sIGNvbXBhcmF0b3I/OiBBcnJheUNvbXBhcmF0b3I8VT4pOiBEYXRhQXJyYXk8eyBrZXk6IFU7IHJvd3M6IFRbXSB9PjtcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBhcnJheSBpcyBub3QgZ3JvdXBlZCwgZ3JvdXBzIGl0IGFzIGBncm91cEJ5YCBkb2VzOyBvdGhlcndpc2UsIGdyb3VwcyB0aGUgZWxlbWVudHMgaW5zaWRlIGVhY2ggY3VycmVudFxuICAgICAqIGdyb3VwLiBUaGlzIGFsbG93cyBmb3IgdG9wLWRvd24gcmVjdXJzaXZlIGdyb3VwaW5nIHdoaWNoIG1heSBiZSBlYXNpZXIgdGhhbiBib3R0b20tdXAgZ3JvdXBpbmcuXG4gICAgICovXG4gICAgZ3JvdXBJbjxVPihrZXk6IEFycmF5RnVuYzxMb3dlc3RLZXk8VD4sIFU+LCBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+KTogRGF0YUFycmF5PEluZ3JvdXBlZDxVLCBUPj47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gZGlzdGluY3QgZW50cmllcy4gSWYgYSBrZXkgaXMgcHJvdmlkZWQsIHRoZW4gcm93cyB3aXRoIGRpc3RpbmN0IGtleXMgYXJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIGRpc3RpbmN0PFU+KGtleT86IEFycmF5RnVuYzxULCBVPiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxUPjtcblxuICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcHJlZGljYXRlIGlzIHRydWUgZm9yIGFsbCB2YWx1ZXMuICovXG4gICAgZXZlcnkoZjogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogYm9vbGVhbjtcbiAgICAvKiogUmV0dXJuIHRydWUgaWYgdGhlIHByZWRpY2F0ZSBpcyB0cnVlIGZvciBhdCBsZWFzdCBvbmUgdmFsdWUuICovXG4gICAgc29tZShmOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBib29sZWFuO1xuICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcHJlZGljYXRlIGlzIEZBTFNFIGZvciBhbGwgdmFsdWVzLiAqL1xuICAgIG5vbmUoZjogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogYm9vbGVhbjtcblxuICAgIC8qKiBSZXR1cm4gdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGRhdGEgYXJyYXkuIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBhcnJheSBpcyBlbXB0eS4gKi9cbiAgICBmaXJzdCgpOiBUO1xuICAgIC8qKiBSZXR1cm4gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgZGF0YSBhcnJheS4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGFycmF5IGlzIGVtcHR5LiAqL1xuICAgIGxhc3QoKTogVDtcblxuICAgIC8qKiBNYXAgZXZlcnkgZWxlbWVudCBpbiB0aGlzIGRhdGEgYXJyYXkgdG8gdGhlIGdpdmVuIGtleSwgYW5kIHRoZW4gZmxhdHRlbiBpdC4qL1xuICAgIHRvKGtleTogc3RyaW5nKTogRGF0YUFycmF5PGFueT47XG4gICAgLyoqIE1hcCBldmVyeSBlbGVtZW50IGluIHRoaXMgZGF0YSBhcnJheSB0byB0aGUgZ2l2ZW4ga2V5OyB1bmxpa2UgdG8oKSwgZG9lcyBub3QgZmxhdHRlbiB0aGUgcmVzdWx0LiAqL1xuICAgIGludG8oa2V5OiBzdHJpbmcpOiBEYXRhQXJyYXk8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IGV4cGFuZCB0aGUgZ2l2ZW4ga2V5LCBmbGF0dGVuaW5nIGEgdHJlZSBzdHJ1Y3R1cmUgYmFzZWQgb24gdGhlIGtleSBpbnRvIGEgZmxhdCBhcnJheS4gVXNlZnVsIGZvciBoYW5kbGluZ1xuICAgICAqIGhlaXJhcmNoaWNhbCBkYXRhIGxpa2UgdGFza3Mgd2l0aCAnc3VidGFza3MnLlxuICAgICAqL1xuICAgIGV4cGFuZChrZXk6IHN0cmluZyk6IERhdGFBcnJheTxhbnk+O1xuXG4gICAgLyoqIFJ1biBhIGxhbWJkYSBvbiBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LiAqL1xuICAgIGZvckVhY2goZjogQXJyYXlGdW5jPFQsIHZvaWQ+KTogdm9pZDtcblxuICAgIC8qKiBDb252ZXJ0IHRoaXMgdG8gYSBwbGFpbiBqYXZhc2NyaXB0IGFycmF5LiAqL1xuICAgIGFycmF5KCk6IFRbXTtcblxuICAgIC8qKiBBbGxvdyBpdGVyYXRpbmcgZGlyZWN0bHkgb3ZlciB0aGUgYXJyYXkuICovXG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmF0b3I8VD47XG5cbiAgICAvKiogTWFwIGluZGV4ZXMgdG8gdmFsdWVzLiAqL1xuICAgIFtpbmRleDogbnVtYmVyXTogYW55O1xuICAgIC8qKiBBdXRvbWF0aWMgZmxhdHRlbmluZyBvZiBmaWVsZHMuIEVxdWl2YWxlbnQgdG8gaW1wbGljaXRseSBjYWxsaW5nIGBhcnJheS50byhcImZpZWxkXCIpYCAqL1xuICAgIFtmaWVsZDogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGhpZGRlblxuICogSW1wbGVtZW50YXRpb24gb2YgRGF0YUFycmF5LCBtaW51cyB0aGUgZHluYW1pYyB2YXJpYWJsZSBhY2Nlc3MsIHdoaWNoIGlzIGltcGxlbWVudGVkIHZpYSBwcm94eS5cbiAqICovXG5jbGFzcyBEYXRhQXJyYXlJbXBsPFQ+IGltcGxlbWVudHMgRGF0YUFycmF5PFQ+IHtcbiAgICBwcml2YXRlIHN0YXRpYyBBUlJBWV9GVU5DVElPTlM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICAgICAgIFwiY2hhaW5cIixcbiAgICAgICAgXCJ3aGVyZVwiLFxuICAgICAgICBcImZpbHRlclwiLFxuICAgICAgICBcIm1hcFwiLFxuICAgICAgICBcImZsYXRNYXBcIixcbiAgICAgICAgXCJtdXRhdGVcIixcbiAgICAgICAgXCJzbGljZVwiLFxuICAgICAgICBcImNvbmNhdFwiLFxuICAgICAgICBcImluZGV4T2ZcIixcbiAgICAgICAgXCJsaW1pdFwiLFxuICAgICAgICBcImZpbmRcIixcbiAgICAgICAgXCJmaW5kSW5kZXhcIixcbiAgICAgICAgXCJpbmNsdWRlc1wiLFxuICAgICAgICBcImpvaW5cIixcbiAgICAgICAgXCJzb3J0XCIsXG4gICAgICAgIFwic29ydEluUGxhY2VcIixcbiAgICAgICAgXCJncm91cEJ5XCIsXG4gICAgICAgIFwiZ3JvdXBJblwiLFxuICAgICAgICBcImRpc3RpbmN0XCIsXG4gICAgICAgIFwiZXZlcnlcIixcbiAgICAgICAgXCJzb21lXCIsXG4gICAgICAgIFwibm9uZVwiLFxuICAgICAgICBcImZpcnN0XCIsXG4gICAgICAgIFwibGFzdFwiLFxuICAgICAgICBcInRvXCIsXG4gICAgICAgIFwiaW50b1wiLFxuICAgICAgICBcImx3cmFwXCIsXG4gICAgICAgIFwiZXhwYW5kXCIsXG4gICAgICAgIFwiZm9yRWFjaFwiLFxuICAgICAgICBcImxlbmd0aFwiLFxuICAgICAgICBcInZhbHVlc1wiLFxuICAgICAgICBcImFycmF5XCIsXG4gICAgICAgIFwiZGVmYXVsdENvbXBhcmF0b3JcIixcbiAgICAgICAgXCJ0b1N0cmluZ1wiLFxuICAgICAgICBcInNldHRpbmdzXCIsXG4gICAgXSk7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBBUlJBWV9QUk9YWTogUHJveHlIYW5kbGVyPERhdGFBcnJheUltcGw8YW55Pj4gPSB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgcHJvcCwgcmVjaWV2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikgcmV0dXJuICh0YXJnZXQgYXMgYW55KVtwcm9wXTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wID09PSBcIm51bWJlclwiKSByZXR1cm4gdGFyZ2V0LnZhbHVlc1twcm9wXTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHByb3AgPT09IFwiY29uc3RydWN0b3JcIikgcmV0dXJuIHRhcmdldC52YWx1ZXMuY29uc3RydWN0b3I7XG4gICAgICAgICAgICBlbHNlIGlmICghaXNOYU4ocGFyc2VJbnQocHJvcCkpKSByZXR1cm4gdGFyZ2V0LnZhbHVlc1twYXJzZUludChwcm9wKV07XG4gICAgICAgICAgICBlbHNlIGlmIChEYXRhQXJyYXlJbXBsLkFSUkFZX0ZVTkNUSU9OUy5oYXMocHJvcC50b1N0cmluZygpKSkgcmV0dXJuIHRhcmdldFtwcm9wLnRvU3RyaW5nKCldO1xuXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnRvKHByb3ApO1xuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBwdWJsaWMgc3RhdGljIHdyYXA8VD4oYXJyOiBUW10sIGRlZmF1bHRDb21wYXJhdG9yOiBBcnJheUNvbXBhcmF0b3I8YW55PiA9IExpdGVyYWxzLmNvbXBhcmUpOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5PERhdGFBcnJheUltcGw8VD4+KG5ldyBEYXRhQXJyYXlJbXBsPFQ+KGFyciwgZGVmYXVsdENvbXBhcmF0b3IpLCBEYXRhQXJyYXlJbXBsLkFSUkFZX1BST1hZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWVzOiBhbnlbXSwgcHVibGljIGRlZmF1bHRDb21wYXJhdG9yOiBBcnJheUNvbXBhcmF0b3I8YW55PiA9IExpdGVyYWxzLmNvbXBhcmUpIHtcbiAgICAgICAgdGhpcy5sZW5ndGggPSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgbHdyYXA8VT4odmFsdWVzOiBVW10pOiBEYXRhQXJyYXk8VT4ge1xuICAgICAgICByZXR1cm4gRGF0YUFycmF5SW1wbC53cmFwKHZhbHVlcywgdGhpcy5kZWZhdWx0Q29tcGFyYXRvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYWluPFU+KG9wOiAoYXJyOiBEYXRhQXJyYXk8VD4pID0+IERhdGFBcnJheTxVPik6IERhdGFBcnJheTxVPiB7XG4gICAgICAgIHJldHVybiBvcCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2hlcmUocHJlZGljYXRlOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4pOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcCh0aGlzLnZhbHVlcy5maWx0ZXIocHJlZGljYXRlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlcihwcmVkaWNhdGU6IEFycmF5RnVuYzxULCBib29sZWFuPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndoZXJlKHByZWRpY2F0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcDxVPihmOiBBcnJheUZ1bmM8VCwgVT4pOiBEYXRhQXJyYXk8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcCh0aGlzLnZhbHVlcy5tYXAoZikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbGF0TWFwPFU+KGY6IEFycmF5RnVuYzxULCBVW10+KTogRGF0YUFycmF5PFU+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGYodGhpcy52YWx1ZXNbaW5kZXhdLCBpbmRleCwgdGhpcy52YWx1ZXMpO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT0gMCkgY29udGludWU7XG5cbiAgICAgICAgICAgIGZvciAobGV0IHIgb2YgdmFsdWUpIHJlc3VsdC5wdXNoKHIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbXV0YXRlKGY6IEFycmF5RnVuYzxULCB2b2lkPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnZhbHVlcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGYodGhpcy52YWx1ZXNbaW5kZXhdLCBpbmRleCwgdGhpcy52YWx1ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICAgIH1cblxuICAgIHB1YmxpYyBsaW1pdChjb3VudDogbnVtYmVyKTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAodGhpcy52YWx1ZXMuc2xpY2UoMCwgY291bnQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHRoaXMudmFsdWVzLnNsaWNlKHN0YXJ0LCBlbmQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uY2F0KG90aGVyOiBEYXRhQXJyYXk8VD4pOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcCh0aGlzLnZhbHVlcy5jb25jYXQob3RoZXIudmFsdWVzKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgZmlyc3QgaW5kZXggb2YgdGhlIGdpdmVuIChvcHRpb25hbGx5IHN0YXJ0aW5nIHRoZSBzZWFyY2gpICovXG4gICAgcHVibGljIGluZGV4T2YoZWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEluZGV4KChlKSA9PiB0aGlzLmRlZmF1bHRDb21wYXJhdG9yKGUsIGVsZW1lbnQpID09IDAsIGZyb21JbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IHNhdGlzZmllcyB0aGUgZ2l2ZW4gcHJlZGljYXRlLiAqL1xuICAgIHB1YmxpYyBmaW5kKHByZWQ6IEFycmF5RnVuYzxULCBib29sZWFuPik6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmZpbmRJbmRleChwcmVkKTtcbiAgICAgICAgaWYgKGluZGV4ID09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBlbHNlIHJldHVybiB0aGlzLnZhbHVlc1tpbmRleF07XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmRJbmRleChwcmVkOiBBcnJheUZ1bmM8VCwgYm9vbGVhbj4sIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gZnJvbUluZGV4ID8/IDA7IGluZGV4IDwgdGhpcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGlmIChwcmVkKHRoaXMudmFsdWVzW2luZGV4XSwgaW5kZXgsIHRoaXMudmFsdWVzKSkgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbmNsdWRlcyhlbGVtZW50OiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4T2YoZWxlbWVudCwgMCkgIT0gLTE7XG4gICAgfVxuXG4gICAgcHVibGljIGpvaW4oc2VwPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwKChzKSA9PiBMaXRlcmFscy50b1N0cmluZyhzKSlcbiAgICAgICAgICAgIC5hcnJheSgpXG4gICAgICAgICAgICAuam9pbihzZXAgPz8gXCIsIFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydDxVPihrZXk/OiBBcnJheUZ1bmM8VCwgVT4sIGRpcmVjdGlvbj86IFwiYXNjXCIgfCBcImRlc2NcIiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlcy5sZW5ndGggPT0gMCkgcmV0dXJuIHRoaXM7XG4gICAgICAgIGxldCByZWFsQ29tcGFyYXRvciA9IGNvbXBhcmF0b3IgPz8gdGhpcy5kZWZhdWx0Q29tcGFyYXRvcjtcbiAgICAgICAgbGV0IHJlYWxLZXkgPSBrZXkgPz8gKChsOiBUKSA9PiBsIGFzIGFueSBhcyBVKTtcblxuICAgICAgICAvLyBBc3NvY2lhdGUgZWFjaCBlbnRyeSB3aXRoIGl0J3MgaW5kZXggZm9yIHRoZSBrZXkgZnVuY3Rpb24sIGFuZCB0aGVuIGRvIGEgbm9ybWFsIHNvcnQuXG4gICAgICAgIGxldCBjb3B5ID0gKFtdIGFzIGFueVtdKS5jb25jYXQodGhpcy5hcnJheSgpKS5tYXAoKGVsZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBpbmRleDogaW5kZXgsIHZhbHVlOiBlbGVtIH07XG4gICAgICAgIH0pO1xuICAgICAgICBjb3B5LnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBhS2V5ID0gcmVhbEtleShhLnZhbHVlLCBhLmluZGV4LCB0aGlzLnZhbHVlcyk7XG4gICAgICAgICAgICBsZXQgYktleSA9IHJlYWxLZXkoYi52YWx1ZSwgYi5pbmRleCwgdGhpcy52YWx1ZXMpO1xuICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gXCJkZXNjXCIgPyAtcmVhbENvbXBhcmF0b3IoYUtleSwgYktleSkgOiByZWFsQ29tcGFyYXRvcihhS2V5LCBiS2V5KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubHdyYXAoY29weS5tYXAoKGUpID0+IGUudmFsdWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydEluUGxhY2U8VT4oXG4gICAgICAgIGtleT86ICh2YWx1ZTogVCkgPT4gVSxcbiAgICAgICAgZGlyZWN0aW9uPzogXCJhc2NcIiB8IFwiZGVzY1wiLFxuICAgICAgICBjb21wYXJhdG9yPzogQXJyYXlDb21wYXJhdG9yPFU+XG4gICAgKTogRGF0YUFycmF5PFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzLmxlbmd0aCA9PSAwKSByZXR1cm4gdGhpcztcbiAgICAgICAgbGV0IHJlYWxDb21wYXJhdG9yID0gY29tcGFyYXRvciA/PyB0aGlzLmRlZmF1bHRDb21wYXJhdG9yO1xuICAgICAgICBsZXQgcmVhbEtleSA9IGtleSA/PyAoKGw6IFQpID0+IGwgYXMgYW55IGFzIFUpO1xuXG4gICAgICAgIHRoaXMudmFsdWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBhS2V5ID0gcmVhbEtleShhKTtcbiAgICAgICAgICAgIGxldCBiS2V5ID0gcmVhbEtleShiKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBcImRlc2NcIiA/IC1yZWFsQ29tcGFyYXRvcihhS2V5LCBiS2V5KSA6IHJlYWxDb21wYXJhdG9yKGFLZXksIGJLZXkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ3JvdXBCeTxVPihrZXk6IEFycmF5RnVuYzxULCBVPiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTx7IGtleTogVTsgcm93czogVFtdIH0+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzLmxlbmd0aCA9PSAwKSByZXR1cm4gdGhpcy5sd3JhcChbXSk7XG5cbiAgICAgICAgLy8gSmF2YVNjcmlwdCBzdWNrcyBhbmQgd2UgY2FuJ3QgbWFrZSBoYXNoIG1hcHMgb3ZlciBhcmJpdHJhcnkgdHlwZXMgKG9ubHkgc3RyaW5ncy9pbnRzKSwgc29cbiAgICAgICAgLy8gd2UgZG8gYSBwb29yIG1hbiBhbGdvcml0aG0gd2hlcmUgd2UgU09SVCwgZm9sbG93ZWQgYnkgZ3JvdXBpbmcuXG4gICAgICAgIGxldCBpbnRlcm1lZGlhdGUgPSB0aGlzLnNvcnQoa2V5LCBcImFzY1wiLCBjb21wYXJhdG9yKTtcbiAgICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgPz8gdGhpcy5kZWZhdWx0Q29tcGFyYXRvcjtcblxuICAgICAgICBsZXQgcmVzdWx0OiB7IGtleTogVTsgcm93czogVFtdIH1bXSA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudFJvdyA9IFtpbnRlcm1lZGlhdGVbMF1dO1xuICAgICAgICBsZXQgY3VycmVudCA9IGtleShpbnRlcm1lZGlhdGVbMF0sIDAsIGludGVybWVkaWF0ZS52YWx1ZXMpO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgaW50ZXJtZWRpYXRlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgbGV0IG5ld0tleSA9IGtleShpbnRlcm1lZGlhdGVbaW5kZXhdLCBpbmRleCwgaW50ZXJtZWRpYXRlLnZhbHVlcyk7XG4gICAgICAgICAgICBpZiAoY29tcGFyYXRvcihjdXJyZW50LCBuZXdLZXkpICE9IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7IGtleTogY3VycmVudCwgcm93czogY3VycmVudFJvdyB9KTtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbmV3S2V5O1xuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3cgPSBbaW50ZXJtZWRpYXRlW2luZGV4XV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3cucHVzaChpbnRlcm1lZGlhdGVbaW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaCh7IGtleTogY3VycmVudCwgcm93czogY3VycmVudFJvdyB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcChyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBncm91cEluPFU+KGtleTogQXJyYXlGdW5jPExvd2VzdEtleTxUPiwgVT4sIGNvbXBhcmF0b3I/OiBBcnJheUNvbXBhcmF0b3I8VT4pOiBEYXRhQXJyYXk8SW5ncm91cGVkPFUsIFQ+PiB7XG4gICAgICAgIGlmIChHcm91cGluZ3MuaXNHcm91cGluZyh0aGlzLnZhbHVlcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcCgodikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogKHYgYXMgYW55KS5rZXksXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IERhdGFBcnJheS53cmFwKCh2IGFzIGFueSkucm93cykuZ3JvdXBJbihrZXkgYXMgYW55LCBjb21wYXJhdG9yIGFzIGFueSksXG4gICAgICAgICAgICAgICAgfSBhcyBhbnk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyb3VwQnkoa2V5IGFzIGFueSwgY29tcGFyYXRvcikgYXMgYW55O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3RpbmN0PFU+KGtleT86IEFycmF5RnVuYzxULCBVPiwgY29tcGFyYXRvcj86IEFycmF5Q29tcGFyYXRvcjxVPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlcy5sZW5ndGggPT0gMCkgcmV0dXJuIHRoaXM7XG4gICAgICAgIGxldCByZWFsS2V5ID0ga2V5ID8/ICgoeCkgPT4geCBhcyBhbnkgYXMgVSk7XG5cbiAgICAgICAgLy8gRm9yIHNpbWlsYXIgcmVhc29ucyB0byBncm91cEJ5LCBkbyBhIHNvcnQgYW5kIHRha2UgdGhlIGZpcnN0IGVsZW1lbnQgb2YgZWFjaCBibG9jay5cbiAgICAgICAgbGV0IGludGVybWVkaWF0ZSA9IHRoaXMubWFwKCh4LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsga2V5OiByZWFsS2V5KHgsIGluZGV4LCB0aGlzLnZhbHVlcyksIHZhbHVlOiB4IH07XG4gICAgICAgIH0pLnNvcnQoKHgpID0+IHgua2V5LCBcImFzY1wiLCBjb21wYXJhdG9yKTtcbiAgICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgPz8gdGhpcy5kZWZhdWx0Q29tcGFyYXRvcjtcblxuICAgICAgICBsZXQgcmVzdWx0OiBUW10gPSBbaW50ZXJtZWRpYXRlWzBdLnZhbHVlXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IGludGVybWVkaWF0ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGlmIChjb21wYXJhdG9yKGludGVybWVkaWF0ZVtpbmRleCAtIDFdLmtleSwgaW50ZXJtZWRpYXRlW2luZGV4XS5rZXkpICE9IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpbnRlcm1lZGlhdGVbaW5kZXhdLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGV2ZXJ5KGY6IEFycmF5RnVuYzxULCBib29sZWFuPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMuZXZlcnkoZik7XG4gICAgfVxuXG4gICAgcHVibGljIHNvbWUoZjogQXJyYXlGdW5jPFQsIGJvb2xlYW4+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5zb21lKGYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBub25lKGY6IEFycmF5RnVuYzxULCBib29sZWFuPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMuZXZlcnkoKHYsIGksIGEpID0+ICFmKHYsIGksIGEpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlyc3QoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBsYXN0KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RoID4gMCA/IHRoaXMudmFsdWVzW3RoaXMudmFsdWVzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyB0byhrZXk6IHN0cmluZyk6IERhdGFBcnJheTxhbnk+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNoaWxkW2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgY29udGludWU7XG5cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBEYXRhQXJyYXkuaXNEYXRhQXJyYXkodmFsdWUpKSB2YWx1ZS5mb3JFYWNoKCh2KSA9PiByZXN1bHQucHVzaCh2KSk7XG4gICAgICAgICAgICBlbHNlIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGludG8oa2V5OiBzdHJpbmcpOiBEYXRhQXJyYXk8YW55PiB7XG4gICAgICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBjaGlsZFtrZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sd3JhcChyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoa2V5OiBzdHJpbmcpOiBEYXRhQXJyYXk8YW55PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgbGV0IHF1ZXVlOiBhbnlbXSA9IChbXSBhcyBhbnlbXSkuY29uY2F0KHRoaXMudmFsdWVzKTtcblxuICAgICAgICB3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IG5leHQgPSBxdWV1ZS5wb3AoKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IG5leHRba2V5XTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZS5mb3JFYWNoKCh2KSA9PiBxdWV1ZS5wdXNoKHYpKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0YUFycmF5SW1wbCkgdmFsdWUuZm9yRWFjaCgodikgPT4gcXVldWUucHVzaCh2KSk7XG4gICAgICAgICAgICBlbHNlIHF1ZXVlLnB1c2godmFsdWUpO1xuXG4gICAgICAgICAgICByZXN1bHQucHVzaChuZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmx3cmFwKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvckVhY2goZjogQXJyYXlGdW5jPFQsIHZvaWQ+KSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnZhbHVlcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGYodGhpcy52YWx1ZXNbaW5kZXhdLCBpbmRleCwgdGhpcy52YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFycmF5KCk6IFRbXSB7XG4gICAgICAgIHJldHVybiAoW10gYXMgYW55W10pLmNvbmNhdCh0aGlzLnZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiW1wiICsgdGhpcy52YWx1ZXMuam9pbihcIiwgXCIpICsgXCJdXCI7XG4gICAgfVxufVxuXG4vKiogUHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGdlbmVyYXRpbmcgZGF0YSBhcnJheXMuXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgRGF0YUFycmF5IHtcbiAgICAvKiogQ3JlYXRlIGEgbmV3IERhdGF2aWV3IGRhdGEgYXJyYXkuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHdyYXA8VD4ocmF3OiBUW10gfCBEYXRhQXJyYXk8VD4pOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICBpZiAoaXNEYXRhQXJyYXkocmF3KSkgcmV0dXJuIHJhdztcbiAgICAgICAgcmV0dXJuIERhdGFBcnJheUltcGwud3JhcChyYXcpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBuZXcgRGF0YUFycmF5IGZyb20gYW4gaXRlcmFibGUgb2JqZWN0LiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBmcm9tPFQ+KHJhdzogSXRlcmFibGU8VD4pOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICBpZiAoaXNEYXRhQXJyYXkocmF3KSkgcmV0dXJuIHJhdztcblxuICAgICAgICBsZXQgZGF0YSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBlbGVtIG9mIHJhdykgZGF0YS5wdXNoKGVsZW0pO1xuICAgICAgICByZXR1cm4gRGF0YUFycmF5SW1wbC53cmFwKGRhdGEpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgZGF0YSBhcnJheS4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gaXNEYXRhQXJyYXkob2JqOiBhbnkpOiBvYmogaXMgRGF0YUFycmF5PGFueT4ge1xuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0YUFycmF5SW1wbDtcbiAgICB9XG59XG5cbi8vIEEgc2NhcnkgbG9va2luZyBwb2x5ZmlsbCwgc3VyZSwgYnV0IGl0IGZpeGVzIHVwIGRhdGEgYXJyYXkvYXJyYXkgaW50ZXJvcCBmb3IgdXMuXG5jb25zdCBvbGRBcnJheUlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuQXJyYXkuaXNBcnJheSA9IChhcmcpOiBhcmcgaXMgYW55W10gPT4ge1xuICAgIHJldHVybiBvbGRBcnJheUlzQXJyYXkoYXJnKSB8fCBEYXRhQXJyYXkuaXNEYXRhQXJyYXkoYXJnKTtcbn07XG4iLCAiLyoqIEBpZ25vcmUgKi9cbi8vISBVdGlsaXRpZXMgZm9yIGZvcmNpbmcgdHlwZXMgdG8gYmUgb2YgYSBzcGVjaWZpYyB0eXBlIG9yIHJldHVybmluZyAndW5kZWZpbmVkJyBpZiBub3QsIGFsbG93aW5nIGZvciBtdWNoIG1vcmUgY29uY2lzZSB0eXBpbmcuXG5cbmltcG9ydCB7IExpbmssIExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgUFJJTUlUSVZFUyB9IGZyb20gXCJleHByZXNzaW9uL3BhcnNlclwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUsIER1cmF0aW9uIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyByZW5kZXJNaW5pbWFsRGF0ZSB9IGZyb20gXCJ1dGlscy9ub3JtYWxpemVyc1wiO1xuXG5leHBvcnQgbmFtZXNwYWNlIENvZXJjZSB7XG4gICAgLyoqIENvZXJjZXMgY29tbW9uIHR5cGVzIHRvIHN0cmluZyBvciBvdGhlcndpc2UgdW5kZWZpbmVkLiAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBzdHJpbmcodmFsdWU6IExpdGVyYWwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCB3cmFwcGVkID0gTGl0ZXJhbHMud3JhcFZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKCF3cmFwcGVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIHN3aXRjaCAod3JhcHBlZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyTWluaW1hbERhdGUod3JhcHBlZC52YWx1ZSwgXCJ5eXl5LU1NLWRkXCIsIFwieXl5eS1NTS1kZCBISDptbTpzc1wiKTtcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQudmFsdWUubWFya2Rvd24oKTtcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyB3cmFwcGVkLnZhbHVlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENvZXJjZXMgYm9vbGVhbnMgYW5kIHN0cmluZy1ib29sZWFucy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gYm9vbGVhbih2YWx1ZTogTGl0ZXJhbCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHZhbHVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQ29lcmNlcyBudW1iZXJzIGFuZCBzdHJpbmdzIHRvIG51bWJlcnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG51bWJlcih2YWx1ZTogTGl0ZXJhbCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIENvZXJjZXMgZGF0ZXMgYW5kIHN0cmluZ3MgaW50byBkYXRlcy4gKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gZGF0ZSh2YWx1ZTogTGl0ZXJhbCk6IERhdGVUaW1lIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVRpbWUpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBQUklNSVRJVkVTLmRhdGVQbHVzLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQuc3RhdHVzKSByZXR1cm4gcGFyc2VkLnZhbHVlO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQ29lcmNlcyBkdXJhdGlvbnMgYW5kIHN0cmluZ3MgaW50byBkdXJhdGlvbnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGR1cmF0aW9uKHZhbHVlOiBMaXRlcmFsKTogRHVyYXRpb24gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEdXJhdGlvbikgcmV0dXJuIHZhbHVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IFBSSU1JVElWRVMuZHVyYXRpb24ucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZC5zdGF0dXMpIHJldHVybiBwYXJzZWQudmFsdWU7XG4gICAgICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBDb2VyY2VzIGxpbmtzIGFuZCBzdHJpbmdzIGludG8gbGlua3MuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGxpbmsodmFsdWU6IExpdGVyYWwpOiBMaW5rIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTGluaykgcmV0dXJuIHZhbHVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IFBSSU1JVElWRVMuZW1iZWRMaW5rLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQuc3RhdHVzKSByZXR1cm4gcGFyc2VkLnZhbHVlO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQ29lcmNlcyBhbnl0aGluZyBpbnRvIGFuIGFycmF5LCBieSBjb252ZXJ0aW5nIG5vbi1hcnJheXMgaW50byB1bml0IGxlbmd0aCBhcnJheXMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGFycmF5KHZhbHVlOiBMaXRlcmFsKTogTGl0ZXJhbFtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIFt2YWx1ZV07XG4gICAgfVxufVxuIiwgIi8qKiBBIHByb21pc2UgdGhhdCBjYW4gYmUgcmVzb2x2ZWQgZGlyZWN0bHkuICovXG5leHBvcnQgdHlwZSBEZWZlcnJlZDxUPiA9IFByb21pc2U8VD4gJiB7XG4gICAgcmVzb2x2ZTogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICAgIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQ7XG59O1xuXG4vKiogQ3JlYXRlIGEgbmV3IGRlZmVycmVkIG9iamVjdCwgd2hpY2ggaXMgYSByZXNvbHZhYmxlIHByb21pc2UuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmZXJyZWQ8VD4oKTogRGVmZXJyZWQ8VD4ge1xuICAgIGxldCByZXNvbHZlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG4gICAgbGV0IHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQ7XG5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgICAgIHJlamVjdCA9IHJlajtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmVycmVkID0gcHJvbWlzZSBhcyBhbnkgYXMgRGVmZXJyZWQ8VD47XG4gICAgZGVmZXJyZWQucmVzb2x2ZSA9IHJlc29sdmUhO1xuICAgIGRlZmVycmVkLnJlamVjdCA9IHJlamVjdCE7XG5cbiAgICByZXR1cm4gZGVmZXJyZWQ7XG59XG4iLCAiaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IERhdGFzdG9yZSB9IGZyb20gXCJpbmRleC9kYXRhc3RvcmVcIjtcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCIuL3Jlc3VsdFwiO1xuaW1wb3J0IHsgTWFya2Rvd25Db2RlYmxvY2ssIE1hcmtkb3duU2VjdGlvbiB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgRGVmZXJyZWQsIGRlZmVycmVkIH0gZnJvbSBcInV0aWxzL2RlZmVycmVkXCI7XG5pbXBvcnQgeyBTY3JpcHRMYW5ndWFnZSwgYXN5bmNFdmFsSW5Db250ZXh0LCB0cmFuc3BpbGUgfSBmcm9tIFwidXRpbHMvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgbGluZVJhbmdlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGggfSBmcm9tIFwicHJlYWN0XCI7XG5cbi8qKiBBIHNjcmlwdCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdTY3JpcHQge1xuICAgIHR5cGU6IFwibG9hZGluZ1wiO1xuXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHByb21pc2U6IERlZmVycmVkPFJlc3VsdDxhbnksIHN0cmluZz4+O1xufVxuXG4vKiogQSBzY3JpcHQgdGhhdCBoYXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGVkU2NyaXB0IHtcbiAgICB0eXBlOiBcImxvYWRlZFwiO1xuXG4gICAgcGF0aDogc3RyaW5nO1xuICAgIG9iamVjdDogYW55O1xufVxuXG5leHBvcnQgdHlwZSBEYXRhY29yZVNjcmlwdCA9IExvYWRpbmdTY3JpcHQgfCBMb2FkZWRTY3JpcHQ7XG5cbi8qKiBBIHNpbXBsZSBjYWNoaW5nIHNjcmlwdCBsb2FkZXIgdGhhdCBjYW4gbG9hZCBhbnkgREFHIG9mIHNjcmlwdCBkZXBlbmRlbmNpZXMuICovXG5leHBvcnQgY2xhc3MgU2NyaXB0Q2FjaGUge1xuICAgIC8qKiBBbGwgb2YgdGhlIHRhZ3Mgd2UgcmVjb2duaXplIGZvciBzY3JpcHRzLiAqL1xuICAgIHByaXZhdGUgc3RhdGljIFNDUklQVF9MQU5HVUFHRVM6IFJlY29yZDxzdHJpbmcsIFNjcmlwdExhbmd1YWdlPiA9IHtcbiAgICAgICAganM6IFwianNcIixcbiAgICAgICAgamF2YXNjcmlwdDogXCJqc1wiLFxuICAgICAgICBkYXRhY29yZWpzOiBcImpzXCIsXG4gICAgICAgIHR5cGVzY3JpcHQ6IFwidHNcIixcbiAgICAgICAgdHM6IFwidHNcIixcbiAgICAgICAgZGF0YWNvcmV0czogXCJ0c1wiLFxuICAgICAgICBqc3g6IFwianN4XCIsXG4gICAgICAgIGRhdGFjb3JlanN4OiBcImpzeFwiLFxuICAgICAgICB0c3g6IFwidHN4XCIsXG4gICAgICAgIGRhdGFjb3JldHN4OiBcInRzeFwiLFxuICAgIH07XG5cbiAgICAvKiogQWxsIG9mIHRoZSBkaXJlY3QgZmlsZSBleHRlbnNpb25zIHdlIGNhbiBsb2FkLiAqL1xuICAgIHByaXZhdGUgc3RhdGljIEZJTEVfRVhURU5TSU9OUzogUmVjb3JkPHN0cmluZywgU2NyaXB0TGFuZ3VhZ2U+ID0ge1xuICAgICAgICB0c3g6IFwidHN4XCIsXG4gICAgICAgIGpzeDogXCJqc3hcIixcbiAgICAgICAganM6IFwianNcIixcbiAgICAgICAgdHM6IFwidHNcIixcbiAgICB9O1xuXG4gICAgLyoqIENhY2hlcyBzY3JpcHRzIGJ5IGZ1bGx5IHF1YWxpZmllZCBwYXRoLiAqL1xuICAgIHB1YmxpYyBzY3JpcHRzOiBNYXA8c3RyaW5nLCBEYXRhY29yZVNjcmlwdD4gPSBuZXcgTWFwPHN0cmluZywgRGF0YWNvcmVTY3JpcHQ+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogRGF0YXN0b3JlKSB7fVxuXG4gICAgLyoqIExvYWQgdGhlIGdpdmVuIHNjcmlwdCBhdCB0aGUgZ2l2ZW4gcGF0aCwgcmVjdXJzaXZlbHkgbG9hZGluZyBhbnkgc3Vic2NyaXB0cyBhcyB3ZWxsLiAgKi9cbiAgICBwdWJsaWMgYXN5bmMgbG9hZChwYXRoOiBzdHJpbmcgfCBMaW5rLCBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxSZXN1bHQ8YW55LCBzdHJpbmc+PiB7XG4gICAgICAgIC8vIEFsd2F5cyBjaGVjayB0aGUgY2FjaGUgZmlyc3QuXG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMucGF0aGtleShwYXRoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFNjcmlwdCA9IHRoaXMuc2NyaXB0cy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGN1cnJlbnRTY3JpcHQpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50U2NyaXB0LnR5cGUgPT09IFwibG9hZGVkXCIpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhjdXJyZW50U2NyaXB0Lm9iamVjdCk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IElmIHdlIHRyeSB0byBsb2FkIGFuIGFscmVhZHktbG9hZGluZyBzY3JpcHQsIHdlIGFyZSBhbG1vc3QgY2VydGFpbmx5IGRvaW5nIHNvbWV0aGluZ1xuICAgICAgICAgICAgLy8gd2VpcmQuIEVpdGhlciB0aGUgY2FsbGVyIGlzIG5vdCBgYXdhaXRgLWluZyB0aGUgbG9hZCBhbmQgbG9hZGluZyBtdWx0aXBsZSB0aW1lcywgT1JcbiAgICAgICAgICAgIC8vIHdlIGFyZSBpbiBhIGByZXF1aXJlKClgIGxvb3AuIEVpdGhlciB3YXksIHdlJ2xsIGVycm9yIG91dCBmb3Igbm93IHNpbmNlIHdlIGNhbid0IGhhbmRsZVxuICAgICAgICAgICAgLy8gZWl0aGVyIGNhc2UgY3VycmVudGx5LlxuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gaW1wb3J0IHNjcmlwdCBcIiR7cGF0aC50b1N0cmluZygpfVwiLCBhcyBpdCBpcyBpbiB0aGUgbWlkZGxlIG9mIGJlaW5nIGxvYWRlZC4gRG8geW91IGhhdmVcbiAgICAgICAgICAgICAgICAgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGluIHlvdXIgcmVxdWlyZSgpIGNhbGxzPyBUaGUgY3VycmVudGx5IGxvYWRlZCBvciBsb2FkaW5nIHNjcmlwdHMgYXJlOiBcbiAgICAgICAgICAgICAgICAgJHtBcnJheS5mcm9tKHRoaXMuc2NyaXB0cy52YWx1ZXMoKSlcbiAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHNjKSA9PiBcIlxcdFwiICsgc2MucGF0aClcbiAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDYWNoZSBoYXMgbWlzc2VkLCBzbyBhZGQgb3Vyc2VsdmVzIHRvIHRoZSBjYWNoZSBhbmQgdHJ5IGFuZCBsb2FkIGl0IGRpcmVjdGx5LlxuICAgICAgICBjb25zdCBkZWZlcnJhbCA9IGRlZmVycmVkPFJlc3VsdDxhbnksIHN0cmluZz4+KCk7XG4gICAgICAgIHRoaXMuc2NyaXB0cy5zZXQoa2V5LCB7IHR5cGU6IFwibG9hZGluZ1wiLCBwcm9taXNlOiBkZWZlcnJhbCwgcGF0aDoga2V5IH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubG9hZFVuY2FjaGVkKHBhdGgsIGNvbnRleHQpO1xuICAgICAgICBkZWZlcnJhbC5yZXNvbHZlKHJlc3VsdCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICB0aGlzLnNjcmlwdHMuc2V0KGtleSwgeyB0eXBlOiBcImxvYWRlZFwiLCBwYXRoOiBrZXksIG9iamVjdDogcmVzdWx0LnZhbHVlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zY3JpcHRzLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBhIHNjcmlwdCwgZGlyZWN0bHkgYnlwYXNzaW5nIHRoZSBjYWNoZS4gKi9cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRVbmNhY2hlZChwYXRoOiBzdHJpbmcgfCBMaW5rLCBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxSZXN1bHQ8YW55LCBzdHJpbmc+PiB7XG4gICAgICAgIGNvbnN0IG1heWJlU291cmNlID0gYXdhaXQgdGhpcy5yZXNvbHZlU291cmNlKHBhdGgpO1xuICAgICAgICBpZiAoIW1heWJlU291cmNlLnN1Y2Nlc3NmdWwpIHJldHVybiBtYXliZVNvdXJjZTtcblxuICAgICAgICAvLyBUcmFuc3BpbGUgdG8gdmFuaWxsYSBqYXZhc2NyaXB0IGZpcnN0Li4uXG4gICAgICAgIGNvbnN0IHsgY29kZSwgbGFuZ3VhZ2UgfSA9IG1heWJlU291cmNlLnZhbHVlO1xuICAgICAgICBsZXQgYmFzaWM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBiYXNpYyA9IHRyYW5zcGlsZShjb2RlLCBsYW5ndWFnZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYEZhaWxlZCB0byBpbXBvcnQgJHtwYXRoLnRvU3RyaW5nKCl9IHdoaWxlIHRyYW5zcGlsaW5nIGZyb20gJHtsYW5ndWFnZX06ICR7ZXJyb3J9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGVuIGZpbmFsbHkgZXhlY3V0ZSB0aGUgc2NyaXB0IHRvICdsb2FkJyBpdC5cbiAgICAgICAgY29uc3QgZmluYWxDb250ZXh0ID0gT2JqZWN0LmFzc2lnbih7IGg6IGgsIEZyYWdtZW50OiBGcmFnbWVudCB9LCBjb250ZXh0KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcyhhd2FpdCBhc3luY0V2YWxJbkNvbnRleHQoYmFzaWMsIGZpbmFsQ29udGV4dCkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBGYWlsZWQgdG8gZXhlY3V0ZSBzY3JpcHQgJyR7cGF0aC50b1N0cmluZygpfSc6ICR7ZXJyb3J9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTm9ybWFsaXplIGEgcGF0aCBvciBsaW5rIHRvIGEgdGV4dHVhbCBwYXRoLiAqL1xuICAgIHByaXZhdGUgcGF0aGtleShwYXRoOiBzdHJpbmcgfCBMaW5rKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHBhdGggaW5zdGFuY2VvZiBMaW5rKSByZXR1cm4gcGF0aC5vYnNpZGlhbkxpbmsoKTtcbiAgICAgICAgZWxzZSByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICAvKiogQXR0ZW1wdHMgdG8gcmVzb2x2ZSB0aGUgc291cmNlIHRvIGxvYWQgZ2l2ZW4gYSBwYXRoIG9yIGxpbmsgdG8gYSBtYXJrZG93biBzZWN0aW9uLiAqL1xuICAgIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVNvdXJjZShcbiAgICAgICAgcGF0aDogc3RyaW5nIHwgTGlua1xuICAgICk6IFByb21pc2U8UmVzdWx0PHsgY29kZTogc3RyaW5nOyBsYW5ndWFnZTogU2NyaXB0TGFuZ3VhZ2UgfSwgc3RyaW5nPj4ge1xuICAgICAgICBjb25zdCBvYmplY3QgPSB0aGlzLnN0b3JlLnJlc29sdmVMaW5rKHBhdGgpO1xuICAgICAgICBpZiAoIW9iamVjdCkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFwiQ291bGQgbm90IGZpbmQgYSBzY3JpcHQgYXQgdGhlIGdpdmVuIHBhdGg6IFwiICsgcGF0aC50b1N0cmluZygpKTtcblxuICAgICAgICBjb25zdCB0ZmlsZSA9IHRoaXMuc3RvcmUudmF1bHQuZ2V0RmlsZUJ5UGF0aChvYmplY3QuJGZpbGUhKTtcbiAgICAgICAgaWYgKCF0ZmlsZSkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBGaWxlIFwiJHtvYmplY3QuJGZpbGV9XCIgbm90IGZvdW5kLmApO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBKUyBmaWxlIHdlIHNob3VsZCBsb2FkIGRpcmVjdGx5LlxuICAgICAgICBpZiAodGZpbGUuZXh0ZW5zaW9uLnRvTG9jYWxlTG93ZXJDYXNlKCkgaW4gU2NyaXB0Q2FjaGUuRklMRV9FWFRFTlNJT05TKSB7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IFNjcmlwdENhY2hlLkZJTEVfRVhURU5TSU9OU1t0ZmlsZS5leHRlbnNpb24udG9Mb2NhbGVMb3dlckNhc2UoKV07XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29kZSA9IGF3YWl0IHRoaXMuc3RvcmUudmF1bHQuY2FjaGVkUmVhZCh0ZmlsZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHsgY29kZSwgbGFuZ3VhZ2UgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShcIkZhaWxlZCB0byBsb2FkIGphdmFzY3JpcHQvdHlwZXNjcmlwdCBzb3VyY2UgZmlsZTogXCIgKyBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGlzIGEgbWFya2Rvd24gc2VjdGlvbiwgc2VhcmNoIGZvciBhbnkgamF2YXNjcmlwdCBjb2RlYmxvY2tzOyBvdGhlcndpc2UsIGNoZWNrIGlmIGl0IGlzIGEgZnVsbCBzY3JpcHQgZmlsZS5cbiAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIE1hcmtkb3duU2VjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVCbG9jayA9IG9iamVjdC4kYmxvY2tzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYik6IGIgaXMgTWFya2Rvd25Db2RlYmxvY2sgPT4gYi4kdHlwZSA9PT0gXCJjb2RlYmxvY2tcIilcbiAgICAgICAgICAgICAgICAuZmluZCgoY2IpID0+XG4gICAgICAgICAgICAgICAgICAgIGNiLiRsYW5ndWFnZXMuc29tZSgobGFuZ3VhZ2UpID0+IGxhbmd1YWdlLnRvTG9jYWxlTG93ZXJDYXNlKCkgaW4gU2NyaXB0Q2FjaGUuU0NSSVBUX0xBTkdVQUdFUylcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIW1heWJlQmxvY2spXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFwiQ291bGQgbm90IGZpbmQgYSBzY3JpcHQgaW4gdGhlIGdpdmVuIG1hcmtkb3duIHNlY3Rpb246IFwiICsgcGF0aC50b1N0cmluZygpKTtcblxuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPVxuICAgICAgICAgICAgICAgIFNjcmlwdENhY2hlLlNDUklQVF9MQU5HVUFHRVNbXG4gICAgICAgICAgICAgICAgICAgIG1heWJlQmxvY2suJGxhbmd1YWdlcy5maW5kKChsYW5nKSA9PiBsYW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkgaW4gU2NyaXB0Q2FjaGUuU0NSSVBUX0xBTkdVQUdFUykhXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5yZWFkQ29kZWJsb2NrKHRmaWxlLCBtYXliZUJsb2NrKSkubWFwKChjb2RlKSA9PiAoeyBjb2RlLCBsYW5ndWFnZSB9KSk7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0IGluc3RhbmNlb2YgTWFya2Rvd25Db2RlYmxvY2spIHtcbiAgICAgICAgICAgIGNvbnN0IG1heWJlTGFuZ3VhZ2UgPSBvYmplY3QuJGxhbmd1YWdlcy5maW5kKFxuICAgICAgICAgICAgICAgIChsYW5nKSA9PiBsYW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkgaW4gU2NyaXB0Q2FjaGUuU0NSSVBUX0xBTkdVQUdFU1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghbWF5YmVMYW5ndWFnZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYFRoZSBjb2RlYmxvY2sgcmVmZXJlbmNlZCBieSAnJHtwYXRofScgaXMgbm90IGEgSlMvVFMgY29kZWJsb2NrLmApO1xuXG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IFNjcmlwdENhY2hlLlNDUklQVF9MQU5HVUFHRVNbbWF5YmVMYW5ndWFnZV07XG4gICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMucmVhZENvZGVibG9jayh0ZmlsZSwgb2JqZWN0KSkubWFwKChjb2RlKSA9PiAoeyBjb2RlLCBsYW5ndWFnZSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYENhbm5vdCBpbXBvcnQgJyR7cGF0aC50b1N0cmluZygpfTogbm90IGEgSlMvVFMgZmlsZSBvciBjb2RlYmxvY2sgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIC8qKiBSZWFkIHRoZSBjb250ZW50cyBvZiBhIGNvZGVibG9jayBmcm9tIGEgZmlsZS4gKi9cbiAgICBwcml2YXRlIGFzeW5jIHJlYWRDb2RlYmxvY2soZmlsZTogVEZpbGUsIGJsb2NrOiBNYXJrZG93bkNvZGVibG9jayk6IFByb21pc2U8UmVzdWx0PHN0cmluZywgc3RyaW5nPj4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmF3ID0gbGluZVJhbmdlKFxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RvcmUudmF1bHQuY2FjaGVkUmVhZChmaWxlKSxcbiAgICAgICAgICAgICAgICBibG9jay4kY29udGVudFBvc2l0aW9uLnN0YXJ0LFxuICAgICAgICAgICAgICAgIGJsb2NrLiRjb250ZW50UG9zaXRpb24uZW5kXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2suJHN0eWxlID09PSBcImZlbmNlZFwiKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MocmF3KTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgIHJhd1xuICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChsaW5lKSA9PiBsaW5lLnRyaW1TdGFydCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBGYWlsZWQgdG8gcmVhZCBhIGNvZGVibG9jayBmcm9tICR7ZmlsZS5wYXRofTogJHtlcnJvcn1gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBDaGVja2JveCwgT21pdHRhYmxlLCBTbGlkZXIsIFN3aXRjaCB9IGZyb20gXCJhcGkvdWkvYmFzaWNzXCI7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gXCJleHByZXNzaW9uL2ZpZWxkXCI7XG5pbXBvcnQgeyBEaXNwYXRjaCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuaW1wb3J0IHsgdXNlRmluYWxpemVyLCB1c2VTZXRGaWVsZCB9IGZyb20gXCJ1dGlscy9maWVsZHNcIjtcbmltcG9ydCB7IEVkaXRhYmxlQWN0aW9uLCBVbmNvbnRyb2xsZWRUZXh0RWRpdGFibGUgfSBmcm9tIFwiLi9lZGl0YWJsZVwiO1xuaW1wb3J0IFNlbGVjdCBmcm9tIFwicmVhY3Qtc2VsZWN0XCI7XG5leHBvcnQgZnVuY3Rpb24gRmllbGRDaGVja2JveChcbiAgICBwcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICAgIGZpZWxkOiBGaWVsZDtcbiAgICAgICAgZGVmYXVsdENoZWNrZWQ/OiBib29sZWFuO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248RmllbGQ+PjtcbiAgICB9ICYgUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+XG4pIHtcbiAgICBjb25zdCB7IGZpZWxkLCBkZWZhdWx0Q2hlY2tlZCA9IGZhbHNlLCBkaXNwYXRjaCwgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgIGRpc2FibGVkPXt1bmRlZmluZWR9XG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17KGZpZWxkPy52YWx1ZSA/PyBkZWZhdWx0Q2hlY2tlZCkgYXMgYm9vbGVhbn1cbiAgICAgICAgICAgIG9uQ2hlY2tDaGFuZ2U9e3VzZVNldEZpZWxkKGZpZWxkLCAoYikgPT5cbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiY29udGVudC1jaGFuZ2VkXCIsIG5ld1ZhbHVlOiB7IC4uLmZpZWxkLCB2YWx1ZTogYiB9IH0pXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgY2hlY2tlZD17dW5kZWZpbmVkfVxuICAgICAgICAvPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFZGl0YWJsZVRleHRGaWVsZChwcm9wczoge1xuICAgIGZpZWxkOiBGaWVsZDtcbiAgICBpbmxpbmU6IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPHN0cmluZz4+O1xufSkge1xuICAgIGNvbnN0IHsgZmllbGQsIGRlZmF1bHRWYWx1ZSA9IFwiXCIsIGlubGluZSwgZGlzcGF0Y2ggfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxDb250cm9sbGVkRWRpdGFibGVUZXh0RmllbGRcbiAgICAgICAgICAgIGNvbnRlbnQ9eyhmaWVsZD8udmFsdWUgPz8gZGVmYXVsdFZhbHVlKSBhcyBzdHJpbmd9XG4gICAgICAgICAgICBpbmxpbmU9e2lubGluZX1cbiAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgLz5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlZEVkaXRhYmxlVGV4dEZpZWxkKHByb3BzOiB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGlubGluZTogYm9vbGVhbjtcbiAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248c3RyaW5nPj47XG59KSB7XG4gICAgY29uc3QgeyBjb250ZW50LCBpbmxpbmUsIGRpc3BhdGNoIH0gPSBwcm9wcztcbiAgICBjb25zdCBbdGV4dFN0YXRlLCBzZXRUZXh0XSA9IHVzZVN0YXRlKGNvbnRlbnQpO1xuICAgIGNvbnN0IG9uSW5wdXQgPSBhc3luYyAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBzZXRUZXh0KChlLmN1cnJlbnRUYXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuXG4gICAgICAgIGlmIChwcm9wcy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHVzZUZpbmFsaXplcih0ZXh0U3RhdGUsIGRpc3BhdGNoKSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIgJiYgZS5jdHJsS2V5KSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHVzZUZpbmFsaXplcih0ZXh0U3RhdGUsIGRpc3BhdGNoKSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gPFVuY29udHJvbGxlZFRleHRFZGl0YWJsZSB0ZXh0PXtjb250ZW50fSBpbmxpbmU9e2lubGluZX0gZGlzcGF0Y2g9e2Rpc3BhdGNofSBvbklucHV0PXtvbklucHV0fSAvPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZpZWxkU2xpZGVyKFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgICBtaW46IG51bWJlcjtcbiAgICAgICAgbWF4OiBudW1iZXI7XG4gICAgICAgIHN0ZXA6IG51bWJlcjtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBudW1iZXI7XG4gICAgICAgIGZpZWxkOiBGaWVsZDtcbiAgICAgICAgZGlzcGF0Y2g6IERpc3BhdGNoPEVkaXRhYmxlQWN0aW9uPEZpZWxkPj47XG4gICAgfSAmIE9taXQ8UmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+LCBPbWl0dGFibGU+XG4pIHtcbiAgICBjb25zdCB7IGZpZWxkLCBkaXNwYXRjaCwgZGVmYXVsdFZhbHVlID0gMCwgbWluLCBtYXgsIHN0ZXAsIC4uLnJlc3QgfSA9IHByb3BzO1xuICAgIGNvbnN0IHZhbHVlID0gKGZpZWxkPy52YWx1ZSA/PyBkZWZhdWx0VmFsdWUpIGFzIG51bWJlcjtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U2xpZGVyXG4gICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBtaW49e21pbn1cbiAgICAgICAgICAgIG1heD17bWF4fVxuICAgICAgICAgICAgc3RlcD17c3RlcH1cbiAgICAgICAgICAgIHZhbHVlPXt1bmRlZmluZWR9XG4gICAgICAgICAgICBvblZhbHVlQ2hhbmdlPXt1c2VTZXRGaWVsZChmaWVsZCwgKGIpID0+XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogeyAuLi5maWVsZCwgdmFsdWU6IGIgfSB9KVxuICAgICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRmllbGRTd2l0Y2goXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogYm9vbGVhbjtcbiAgICAgICAgZmllbGQ6IEZpZWxkO1xuICAgICAgICBkaXNwYXRjaDogRGlzcGF0Y2g8RWRpdGFibGVBY3Rpb248RmllbGQ+PjtcbiAgICB9ICYgT21pdDxSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudD4sIE9taXR0YWJsZT5cbikge1xuICAgIGNvbnN0IHsgZmllbGQsIGRpc3BhdGNoLCBkZWZhdWx0VmFsdWUgPSBmYWxzZSwgLi4ucmVzdCB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICBvblRvZ2dsZUNoYW5nZT17dXNlU2V0RmllbGQoZmllbGQsIChiKSA9PlxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHsgLi4uZmllbGQsIHZhbHVlOiBiIH0gfSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17KGZpZWxkPy52YWx1ZSA/PyBkZWZhdWx0VmFsdWUpIGFzIGJvb2xlYW59XG4gICAgICAgICAgICBjaGVja2VkPXt1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZpZWxkU2VsZWN0KHtcbiAgICBtdWx0aSA9IGZhbHNlLFxuICAgIG9wdGlvbnMsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGZpZWxkLFxuICAgIGRpc3BhdGNoLFxufToge1xuICAgIG11bHRpPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIGZpZWxkOiBGaWVsZDtcbiAgICBvcHRpb25zOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICAgIGRpc3BhdGNoOiBEaXNwYXRjaDxFZGl0YWJsZUFjdGlvbjxGaWVsZD4+O1xufSkge1xuICAgIGNvbnN0IGlubmVyQ2FsbGJhY2sgPSB1c2VTZXRGaWVsZChmaWVsZCwgKGIpID0+XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJjb250ZW50LWNoYW5nZWRcIiwgbmV3VmFsdWU6IHsgLi4uZmllbGQsIHZhbHVlOiBiIH0gfSlcbiAgICApO1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChuZXdWYWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgbm9ybWFsaXplZDtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBuZXdWYWx1ZS5tYXAoKHgpID0+IHgudmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbmV3VmFsdWUudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbm5lckNhbGxiYWNrKG5vcm1hbGl6ZWQpO1xuICAgICAgICB9LFxuICAgICAgICBbZmllbGQsIGlubmVyQ2FsbGJhY2tdXG4gICAgKTtcblxuICAgIGNvbnN0IGFycmF5VmFsID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKEFycmF5LmlzQXJyYXkoZmllbGQ/LnZhbHVlKSA/IGZpZWxkLnZhbHVlIDogISFmaWVsZCA/IFtmaWVsZC52YWx1ZV0gOiBbZGVmYXVsdFZhbHVlXSksXG4gICAgICAgIFtmaWVsZF1cbiAgICApO1xuICAgIGNvbnN0IGRlZlZhbCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+XG4gICAgICAgICAgICBtdWx0aVxuICAgICAgICAgICAgICAgID8gb3B0aW9ucy5maWx0ZXIoKGEpID0+IGFycmF5VmFsLmZpbmRJbmRleCgoYikgPT4gYiA9PSBhLnZhbHVlKSAhPSAtMSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbnMuZmluZCgoYSkgPT4gYS52YWx1ZSA9PSBmaWVsZD8udmFsdWUpLFxuICAgICAgICBbb3B0aW9ucywgbXVsdGldXG4gICAgKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9XCJkYXRhY29yZS1zZWxlY3RhYmxlXCJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsobikgPT4gb25DaGFuZ2Uobil9XG4gICAgICAgICAgICB1bnN0eWxlZFxuICAgICAgICAgICAgaXNNdWx0aT17bXVsdGkgPz8gZmFsc2V9XG4gICAgICAgICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgbWVudVBvcnRhbFRhcmdldD17ZG9jdW1lbnQuYm9keX1cbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmVmFsfVxuICAgICAgICAgICAgY2xhc3NOYW1lcz17e1xuICAgICAgICAgICAgICAgIGlucHV0OiAoKSA9PiBcInByb21wdC1pbnB1dFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlQ29udGFpbmVyOiAoKSA9PiBcInN1Z2dlc3Rpb24taXRlbSB2YWx1ZS1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICBjb250YWluZXI6ICgpID0+IFwic3VnZ2VzdGlvbi1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICBtZW51OiAoKSA9PiBcInN1Z2dlc3Rpb24tY29udGVudCBzdWdnZXN0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIG9wdGlvbjogKHByb3BzOiBhbnkpID0+IGBzdWdnZXN0aW9uLWl0ZW0ke3Byb3BzLmlzU2VsZWN0ZWQgPyBcIiBpcy1zZWxlY3RlZFwiIDogXCJcIn1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICApO1xufVxuIiwgImltcG9ydCB7IEdyb3VwRWxlbWVudCwgR3JvdXBpbmcsIEdyb3VwaW5ncywgTGl0ZXJhbCwgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBHcm91cGluZ0NvbmZpZywgdXNlQXNFbGVtZW50LCBWYW5pbGxhQ29sdW1uLCBWYW5pbGxhVGFibGVQcm9wcyB9IGZyb20gXCIuL3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VJbnRlcm5pbmcsIHVzZVN0YWJsZUNhbGxiYWNrIH0gZnJvbSBcInVpL2hvb2tzXCI7XG5pbXBvcnQgeyBEaXNwYXRjaCwgUmVkdWNlciwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVkdWNlciwgdXNlUmVmIH0gZnJvbSBcInByZWFjdC9ob29rc1wiO1xuaW1wb3J0IHsgQ29udHJvbGxlZFBhZ2VyLCB1c2VEYXRhY29yZVBhZ2luZyB9IGZyb20gXCIuL3BhZ2luZ1wiO1xuaW1wb3J0IHsgREVGQVVMVF9UQUJMRV9DT01QQVJBVE9SLCBTb3J0QnV0dG9uLCBTb3J0RGlyZWN0aW9uLCBTb3J0T24gfSBmcm9tIFwiLi90YWJsZVwiO1xuaW1wb3J0IHsgQ29udGV4dCwgY3JlYXRlQ29udGV4dCwgRnJhZ21lbnQsIFZOb2RlIH0gZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgQ1VSUkVOVF9GSUxFX0NPTlRFWFQsIExpdCB9IGZyb20gXCJ1aS9tYXJrZG93blwiO1xuaW1wb3J0IHsgRWRpdGFibGUsIHVzZUVkaXRhYmxlRGlzcGF0Y2ggfSBmcm9tIFwidWkvZmllbGRzL2VkaXRhYmxlXCI7XG5pbXBvcnQgeyBjb21iaW5lQ2xhc3NlcyB9IGZyb20gXCIuLi9iYXNpY3NcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUcmVlVGFibGVSb3dEYXRhPFQ+IHtcbiAgICB2YWx1ZTogVDtcbiAgICBjaGlsZHJlbjogVHJlZVRhYmxlUm93RGF0YTxUPltdO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFRyZWVVdGlscyB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGlzVHJlZVRhYmxlUm93RGF0YTxUPihkYXRhOiBhbnkpOiBkYXRhIGlzIFRyZWVUYWJsZVJvd0RhdGE8VD4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgXCJjaGlsZHJlblwiIGluIGRhdGEgJiZcbiAgICAgICAgICAgIFwidmFsdWVcIiBpbiBkYXRhICYmXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShkYXRhKSAmJlxuICAgICAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoID09IDIgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoZGF0YS5jaGlsZHJlbilcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvdW50SW5UcmVlUm93PFQ+KG5vZGU6IFRyZWVUYWJsZVJvd0RhdGE8VD4sIHRvcDogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgaWYgKCF0b3ApIHJlc3VsdCsrO1xuICAgICAgICBmb3IgKGxldCBuIG9mIG5vZGUuY2hpbGRyZW4pIHJlc3VsdCArPSBjb3VudEluVHJlZVJvdyhuLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGV4cG9ydCBmdW5jdGlvbiBvZkFycmF5PFQ+KHNvdXJjZTogVFtdLCBjaGlsZEZuOiAoZWw6IFQpID0+IFRbXSk6IFRyZWVUYWJsZVJvd0RhdGE8VD5bXSB7XG4gICAgICAgIGNvbnN0IG1hcHBlciA9IChlbDogVCk6IFRyZWVUYWJsZVJvd0RhdGE8VD4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogZWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkRm4oZWwpLm1hcChtYXBwZXIpLFxuICAgICAgICAgICAgfSBhcyBUcmVlVGFibGVSb3dEYXRhPFQ+O1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc291cmNlLm1hcChtYXBwZXIpO1xuICAgIH1cbiAgICBleHBvcnQgZnVuY3Rpb24gb2ZOb2RlPFQ+KHNvdXJjZTogVCwgY2hpbGRGbjogKGVsOiBUKSA9PiBUW10pOiBUcmVlVGFibGVSb3dEYXRhPFQ+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBzb3VyY2UsXG4gICAgICAgICAgICBjaGlsZHJlbjogb2ZBcnJheShjaGlsZEZuKHNvdXJjZSksIGNoaWxkRm4pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBvZkdyb3VwaW5nPFQ+KGVsZW1lbnRzOiBHcm91cGluZzxUPiwgY2hpbGRGbjogKGVsOiBUKSA9PiBUW10pOiBHcm91cGluZzxUcmVlVGFibGVSb3dEYXRhPFQ+PiB7XG4gICAgICAgIGNvbnN0IG1hcHBlciA9IChsOiBUIHwgR3JvdXBFbGVtZW50PFQ+KTogR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+IHwgVHJlZVRhYmxlUm93RGF0YTxUPiA9PiB7XG4gICAgICAgICAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGwpKVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGtleTogbC5rZXksIHJvd3M6IGwucm93cy5tYXAobWFwcGVyKSB9IGFzIEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkRm4obCkubWFwKG1hcHBlciksXG4gICAgICAgICAgICB9IGFzIFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5tYXAobWFwcGVyKSBhcyBHcm91cGluZzxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gY291bnQ8VD4oZWxlbWVudHM6IEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+KTogbnVtYmVyIHtcbiAgICAgICAgaWYgKEdyb3VwaW5ncy5pc0VsZW1lbnRHcm91cChlbGVtZW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBjb3VudChlbGVtZW50cy5yb3dzKTtcbiAgICAgICAgfSBlbHNlIGlmIChHcm91cGluZ3MuaXNHcm91cGluZyhlbGVtZW50cykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgZ3JvdXAgb2YgZWxlbWVudHMpIHJlc3VsdCArPSBjb3VudChncm91cC5yb3dzKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHMucmVkdWNlKChwdiwgY3YpID0+IHB2ICsgY291bnRJblRyZWVSb3coY3YpLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNsaWNlSW5UcmVlUm93PFQ+KGVsZW1lbnRzOiBUcmVlVGFibGVSb3dEYXRhPFQ+W10sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogVHJlZVRhYmxlUm93RGF0YTxUPltdIHtcbiAgICAgICAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuIFtdO1xuXG4gICAgICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgICAgICBzZWVuID0gMDtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgZWxlbWVudHMubGVuZ3RoICYmIHNlZW4gKyBjb3VudEluVHJlZVJvdyhlbGVtZW50c1tpbmRleF0pIDw9IHN0YXJ0KSB7XG4gICAgICAgICAgICBzZWVuICs9IGNvdW50SW5UcmVlUm93KGVsZW1lbnRzW2luZGV4XSk7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID49IGVsZW1lbnRzLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogVHJlZVRhYmxlUm93RGF0YTxUPltdID0gW107XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGVsZW1lbnRzLmxlbmd0aCAmJiBzZWVuIDwgZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGVsZW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU2l6ZSA9IGNvdW50SW5UcmVlUm93KGdyb3VwKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU3RhcnQgPSBNYXRoLm1heChzZWVuLCBzdGFydCk7XG4gICAgICAgICAgICBjb25zdCBncm91cEVuZCA9IE1hdGgubWluKGdyb3VwU2l6ZSArIHNlZW4sIGVuZCk7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogZ3JvdXAudmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHNsaWNlSW5UcmVlUm93KGdyb3VwLmNoaWxkcmVuLCBncm91cFN0YXJ0IC0gc2VlbiwgZ3JvdXBFbmQgLSBzZWVuKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZWVuICs9IGdyb3VwU2l6ZTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBzbGljZTxUPihcbiAgICAgICAgZWxlbWVudHM6IEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+LFxuICAgICAgICBzdGFydDogbnVtYmVyLFxuICAgICAgICBlbmQ6IG51bWJlclxuICAgICk6IEdyb3VwaW5nPFRyZWVUYWJsZVJvd0RhdGE8VD4+IHtcbiAgICAgICAgbGV0IGluaXRpYWwgPSBbLi4uR3JvdXBpbmdzLnNsaWNlKGVsZW1lbnRzLCBzdGFydCwgZW5kKV0gYXMgR3JvdXBpbmc8VHJlZVRhYmxlUm93RGF0YTxUPj47XG4gICAgICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgICAgICBzZWVuID0gMDtcblxuICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGluaXRpYWwpIHtcbiAgICAgICAgICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBTaXplID0gR3JvdXBpbmdzLmNvdW50KGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBTdGFydCA9IE1hdGgubWluKHNlZW4sIHN0YXJ0KTtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBFbmQgPSBNYXRoLm1pbihncm91cFNpemUsIGVuZCk7XG4gICAgICAgICAgICAgICAgKGluaXRpYWxbaW5kZXhdIGFzIEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+Pikucm93cyA9IEdyb3VwaW5ncy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yb3dzLFxuICAgICAgICAgICAgICAgICAgICBncm91cFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICBncm91cEVuZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2VlbiArPSBncm91cFNpemU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlZW4gKz0gY291bnRJblRyZWVSb3coZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbml0aWFsO1xuICAgIH1cbiAgICAvKiogcmVjdXJzaXZlbHkgc29ydCBhIHRyZWUgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gc29ydDxULCBWID0gTGl0ZXJhbD4oXG4gICAgICAgIHJvd3M6IChUcmVlVGFibGVSb3dEYXRhPFQ+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+KVtdLFxuICAgICAgICBjb21wYXJhdG9yczoge1xuICAgICAgICAgICAgZm46IChhOiBWLCBiOiBWLCBhbzogVCwgYWI6IFQpID0+IG51bWJlcjtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgICAgICAgICAgIGFjdHVhbFZhbHVlOiAob2JqOiBUKSA9PiBWO1xuICAgICAgICB9W11cbiAgICApOiAoVHJlZVRhYmxlUm93RGF0YTxUPiB8IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PilbXSB7XG4gICAgICAgIGNvbnN0IHJlYWxDb21wYXJhdG9yID0gKFxuICAgICAgICAgICAgYTogVHJlZVRhYmxlUm93RGF0YTxUPiB8IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PixcbiAgICAgICAgICAgIGI6IFRyZWVUYWJsZVJvd0RhdGE8VD4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj5cbiAgICAgICAgKTogbnVtYmVyID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGNvbXAgb2YgY29tcGFyYXRvcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBjb21wLmRpcmVjdGlvbi50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcImFzY2VuZGluZ1wiID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICAgICAgICAgIGlmIChHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoYSkgJiYgR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGEpICYmICFHcm91cGluZ3MuaXNFbGVtZW50R3JvdXAoYikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiAqIGNvbXAuZm4oY29tcC5hY3R1YWxWYWx1ZShhLnZhbHVlKSwgY29tcC5hY3R1YWxWYWx1ZShiLnZhbHVlKSwgYS52YWx1ZSwgYi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtYXAgPSAoXG4gICAgICAgICAgICB0OiBUcmVlVGFibGVSb3dEYXRhPFQ+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+XG4gICAgICAgICk6IFRyZWVUYWJsZVJvd0RhdGE8VD4gfCBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj4gPT4ge1xuICAgICAgICAgICAgbGV0IHI7XG4gICAgICAgICAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKHQpKVxuICAgICAgICAgICAgICAgIHIgPSB7IC4uLnQsIHJvd3M6IHNvcnQodC5yb3dzLCBjb21wYXJhdG9ycykubWFwKG1hcCkgfSBhcyBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj47XG4gICAgICAgICAgICBlbHNlIHIgPSB7IC4uLnQsIGNoaWxkcmVuOiBzb3J0KHQuY2hpbGRyZW4sIGNvbXBhcmF0b3JzKS5tYXAobWFwKSB9IGFzIFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJvd3MubWFwKG1hcCkuc29ydChyZWFsQ29tcGFyYXRvcik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB1c2VLZXlGbjxUPihpZDogVHJlZVRhYmxlU3RhdGU8VD5bXCJpZFwiXSwgLi4uZGVwczogYW55W10pIHtcbiAgICBjb25zdCByZXQgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGVsOiBUcmVlVGFibGVSb3dEYXRhPFQ+IHwgR3JvdXBFbGVtZW50PFRyZWVUYWJsZVJvd0RhdGE8VD4+KSA9PiB7XG4gICAgICAgICAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbC5rZXk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZChlbC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFsuLi5kZXBzXVxuICAgICk7XG4gICAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmVlVGFibGVDb2x1bW48VCwgViA9IExpdGVyYWw+IGV4dGVuZHMgVmFuaWxsYUNvbHVtbjxULCBWPiB7XG4gICAgc29ydGFibGU/OiBib29sZWFuO1xuXG4gICAgY29tcGFyYXRvcj86IChmaXJzdDogViwgc2Vjb25kOiBWLCBmaXJzdE9iamVjdDogVCwgc2Vjb25kT2JqZWN0OiBUKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVRhYmxlU3RhdGU8VD4ge1xuICAgIHNvcnRPbj86IFNvcnRPbltdO1xuICAgIG9wZW5NYXA/OiBNYXA8c3RyaW5nLCBib29sZWFuPjtcbiAgICBpZDogKG9iajogVCkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVUYWJsZVByb3BzPFQ+IHtcbiAgICBjb2x1bW5zOiBUcmVlVGFibGVDb2x1bW48VD5bXTtcbiAgICByb3dzOiBUW10gfCBHcm91cGluZzxUPjtcbiAgICBwYWdpbmc/OiBib29sZWFuIHwgbnVtYmVyO1xuICAgIHNjcm9sbE9uUGFnaW5nPzogYm9vbGVhbiB8IG51bWJlcjtcbiAgICBncm91cGluZ3M/OiBWYW5pbGxhVGFibGVQcm9wczxUcmVlVGFibGVSb3dEYXRhPFQ+PltcImdyb3VwaW5nc1wiXTtcbiAgICBzb3J0T24/OiBTb3J0T25bXTtcbiAgICBjaGlsZFNlbGVjdG9yOiAocmF3OiBUKSA9PiBUW107XG4gICAgaWQ/OiAob2JqOiBUKSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFRyZWVUYWJsZUFjdGlvbjxUPiA9XG4gICAgfCB7IHR5cGU6IFwic29ydC1jb2x1bW5cIjsgY29sdW1uOiBzdHJpbmc7IGRpcmVjdGlvbjogU29ydERpcmVjdGlvbiB8IHVuZGVmaW5lZCB9XG4gICAgfCB7XG4gICAgICAgICAgdHlwZTogXCJyb3ctZXhwYW5kXCI7XG4gICAgICAgICAgcm93OiBUO1xuICAgICAgICAgIG5ld1ZhbHVlOiBib29sZWFuO1xuICAgICAgfVxuICAgIHwgeyB0eXBlOiBcIm9wZW4tbWFwLWNoYW5nZWRcIjsgbmV3VmFsdWU6IE1hcDxzdHJpbmcsIGJvb2xlYW4+IH07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmVlVGFibGVSZWR1Y2VyPFQ+KHN0YXRlOiBUcmVlVGFibGVTdGF0ZTxUPiwgYWN0aW9uOiBUcmVlVGFibGVBY3Rpb248VD4pOiBUcmVlVGFibGVTdGF0ZTxUPiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFwic29ydC1jb2x1bW5cIjpcbiAgICAgICAgICAgIGlmIChhY3Rpb24uZGlyZWN0aW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzb3J0T246IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgc29ydE9uOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjb2x1bW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYWN0aW9uLmNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGFjdGlvbi5kaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJyb3ctZXhwYW5kXCI6XG4gICAgICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgICAgICAgICAgIGlmICghc3RhdGUub3Blbk1hcCkgcmV0dXJuIHsgLi4uc3RhdGUgfTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBzdGF0ZS5vcGVuTWFwLmtleXMoKSkgbmV3TWFwLnNldChrLCBzdGF0ZS5vcGVuTWFwLmdldChrKSEpO1xuICAgICAgICAgICAgbmV3TWFwLnNldChzdGF0ZS5pZChhY3Rpb24ucm93KSwgYWN0aW9uLm5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBvcGVuTWFwOiBuZXdNYXAgfTtcbiAgICAgICAgY2FzZSBcIm9wZW4tbWFwLWNoYW5nZWRcIjpcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBvcGVuTWFwOiBhY3Rpb24ubmV3VmFsdWUgfTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKFwiZGF0YWNvcmU6IEVuY291bnRlcmVkIHVucmVjb2duaXplZCBvcGVyYXRpb246IFwiICsgKGFjdGlvbiBhcyBUcmVlVGFibGVBY3Rpb248VD4pLnR5cGUpO1xuICAgIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyZWVUYWJsZURpc3BhdGNoPFQ+KFxuICAgIGluaXRpYWw6IFRyZWVUYWJsZVN0YXRlPFQ+IHwgKCgpID0+IFRyZWVUYWJsZVN0YXRlPFQ+KVxuKTogW1RyZWVUYWJsZVN0YXRlPFQ+LCBEaXNwYXRjaDxUcmVlVGFibGVBY3Rpb248VD4+XSB7XG4gICAgY29uc3QgaW5pdCA9IHVzZU1lbW8oKCkgPT4gKHR5cGVvZiBpbml0aWFsID09IFwiZnVuY3Rpb25cIiA/IGluaXRpYWwoKSA6IGluaXRpYWwpLCBbXSk7XG4gICAgcmV0dXJuIHVzZVJlZHVjZXIodHJlZVRhYmxlUmVkdWNlciBhcyBSZWR1Y2VyPFRyZWVUYWJsZVN0YXRlPFQ+LCBUcmVlVGFibGVBY3Rpb248VD4+LCBpbml0KTtcbn1cblxuZXhwb3J0IHR5cGUgUm93RXhwYW5zaW9uQ29udGV4dFR5cGU8VD4gPSB7XG4gICAgZGlzcGF0Y2g6IERpc3BhdGNoPFRyZWVUYWJsZUFjdGlvbjxUPj47XG4gICAgb3Blbk1hcDogTWFwPHN0cmluZywgYm9vbGVhbj47XG4gICAgaWQ6IChvYmo6IFQpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBBTkRFRF9DT05URVhUID0gY3JlYXRlQ29udGV4dDxSb3dFeHBhbnNpb25Db250ZXh0VHlwZTx1bmtub3duPiB8IG51bGw+KG51bGwpO1xuXG5leHBvcnQgZnVuY3Rpb24gVHlwZWRFeHBhbmRlZENvbnRleHQ8VD4oKSB7XG4gICAgcmV0dXJuIEVYUEFOREVEX0NPTlRFWFQgYXMgQ29udGV4dDxSb3dFeHBhbnNpb25Db250ZXh0VHlwZTxUPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVIZWFkZXJDZWxsPFQ+KHtcbiAgICBjb2x1bW4sXG4gICAgc29ydCxcbiAgICBzb3J0YWJsZSxcbn06IHtcbiAgICBjb2x1bW46IFRyZWVUYWJsZUNvbHVtbjxUPjtcbiAgICBzb3J0PzogU29ydERpcmVjdGlvbjtcbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbn0pIHtcbiAgICBjb25zdCB7IGRpc3BhdGNoIH0gPSB1c2VDb250ZXh0KFR5cGVkRXhwYW5kZWRDb250ZXh0PFQ+KCkpO1xuICAgIGNvbnN0IGhlYWRlcjogc3RyaW5nIHwgVk5vZGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFjb2x1bW4udGl0bGUpIHJldHVybiBjb2x1bW4uaWQ7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb2x1bW4udGl0bGUgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGNvbHVtbi50aXRsZSgpO1xuICAgICAgICBlbHNlIHJldHVybiBjb2x1bW4udGl0bGU7XG4gICAgfSwgW2NvbHVtbi5pZCwgY29sdW1uLnRpdGxlXSk7XG5cbiAgICBjb25zdCBzb3J0Q2xpY2tlZCA9IHVzZVN0YWJsZUNhbGxiYWNrKFxuICAgICAgICAoX2V2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoc29ydCA9PSB1bmRlZmluZWQpIGRpc3BhdGNoKHsgdHlwZTogXCJzb3J0LWNvbHVtblwiLCBjb2x1bW46IGNvbHVtbi5pZCwgZGlyZWN0aW9uOiBcImFzY2VuZGluZ1wiIH0pO1xuICAgICAgICAgICAgZWxzZSBpZiAoc29ydCA9PSBcImFzY2VuZGluZ1wiKSBkaXNwYXRjaCh7IHR5cGU6IFwic29ydC1jb2x1bW5cIiwgY29sdW1uOiBjb2x1bW4uaWQsIGRpcmVjdGlvbjogXCJkZXNjZW5kaW5nXCIgfSk7XG4gICAgICAgICAgICBlbHNlIGRpc3BhdGNoKHsgdHlwZTogXCJzb3J0LWNvbHVtblwiLCBjb2x1bW46IGNvbHVtbi5pZCwgZGlyZWN0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFtjb2x1bW4uaWRdXG4gICAgKTtcblxuICAgIGNvbnN0IHJlYWxXaWR0aCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IChjb2x1bW4ud2lkdGggPT09IFwibWluaW11bVwiID8gXCIxcHhcIiA6IGNvbHVtbi53aWR0aCA9PT0gXCJtYXhpbXVtXCIgPyBcImF1dG9cIiA6IGNvbHVtbi53aWR0aCArIFwicHhcIiksXG4gICAgICAgIFtjb2x1bW4ud2lkdGhdXG4gICAgKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8dGggd2lkdGg9e3JlYWxXaWR0aH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIHtzb3J0YWJsZSAmJiA8U29ydEJ1dHRvbiBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1zb3J0XCIgZGlyZWN0aW9uPXtzb3J0fSBvbkNsaWNrPXtzb3J0Q2xpY2tlZH0gLz59XG4gICAgICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzb3J0Q2xpY2tlZH0gY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVHJlZVRhYmxlR3JvdXBIZWFkZXI8VD4oe1xuICAgIGxldmVsLFxuICAgIHZhbHVlLFxuICAgIHdpZHRoLFxuICAgIGNvbmZpZyxcbn06IHtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHZhbHVlOiBHcm91cEVsZW1lbnQ8VHJlZVRhYmxlUm93RGF0YTxUPj47XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBjb25maWc/OiBHcm91cGluZ0NvbmZpZzxUcmVlVGFibGVSb3dEYXRhPFQ+Pjtcbn0pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gdXNlQ29udGV4dChDVVJSRU5UX0ZJTEVfQ09OVEVYVCk7XG4gICAgY29uc3QgcmF3UmVuZGVyYWJsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnPy5yZW5kZXIpIHJldHVybiBjb25maWcucmVuZGVyKHZhbHVlLmtleSwgdmFsdWUucm93cyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICA8TGl0IHNvdXJjZVBhdGg9e3NvdXJjZVBhdGh9IGlubGluZT17dHJ1ZX0gdmFsdWU9e3ZhbHVlLmtleX0gLz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgKTtcbiAgICB9LCBbY29uZmlnPy5yZW5kZXIsIHZhbHVlLmtleSwgdmFsdWUucm93c10pO1xuICAgIGNvbnN0IHJlbmRlcmFibGUgPSB1c2VBc0VsZW1lbnQocmF3UmVuZGVyYWJsZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICA8dGQgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IGAke2xldmVsICogMS4xMn1lbWAgfX0gY29sU3Bhbj17d2lkdGggKyAxfT5cbiAgICAgICAgICAgICAgICB7cmVuZGVyYWJsZX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVSb3dHcm91cDxUPih7XG4gICAgbGV2ZWwsXG4gICAgY29sdW1ucyxcbiAgICBlbGVtZW50LFxuICAgIGdyb3VwaW5ncyxcbn06IHtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIGNvbHVtbnM6IFRyZWVUYWJsZUNvbHVtbjxUPltdO1xuICAgIGVsZW1lbnQ6IEdyb3VwRWxlbWVudDxUcmVlVGFibGVSb3dEYXRhPFQ+PiB8IFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgZ3JvdXBpbmdzPzogR3JvdXBpbmdDb25maWc8VHJlZVRhYmxlUm93RGF0YTxUPj5bXTtcbn0pIHtcbiAgICBjb25zdCB7IGlkIH0gPSB1c2VDb250ZXh0KFR5cGVkRXhwYW5kZWRDb250ZXh0PFQ+KCkpO1xuICAgIGNvbnN0IGtleUZuID0gdXNlS2V5Rm4oaWQpO1xuICAgIGNvbnN0IGdyb3VwSW5kZXggPSBncm91cGluZ3MgPyBNYXRoLm1pbihncm91cGluZ3MubGVuZ3RoIC0gMSwgbGV2ZWwpIDogMDtcbiAgICBpZiAoR3JvdXBpbmdzLmlzRWxlbWVudEdyb3VwKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwaW5nQ29uZmlnID0gZ3JvdXBpbmdzID8gZ3JvdXBpbmdzW2dyb3VwSW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17a2V5Rm4oZWxlbWVudCl9PlxuICAgICAgICAgICAgICAgIDxUcmVlVGFibGVHcm91cEhlYWRlciBsZXZlbD17bGV2ZWx9IHZhbHVlPXtlbGVtZW50fSB3aWR0aD17Y29sdW1ucy5sZW5ndGh9IGNvbmZpZz17Z3JvdXBpbmdDb25maWd9IC8+XG4gICAgICAgICAgICAgICAge2VsZW1lbnQucm93cy5tYXAoKHJvdykgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8VHJlZVRhYmxlUm93R3JvdXA8VD4gbGV2ZWw9e2xldmVsICsgMX0gY29sdW1ucz17Y29sdW1uc30gZWxlbWVudD17cm93fSBncm91cGluZ3M9e2dyb3VwaW5nc30gLz5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxUcmVlVGFibGVSb3cgcm93PXtlbGVtZW50fSBjb2x1bW5zPXtjb2x1bW5zfSBsZXZlbD17bGV2ZWwgLSBncm91cEluZGV4ICsgMX0ga2V5PXtrZXlGbihlbGVtZW50KX0gLz47XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gVHJlZVRhYmxlUm93RXhwYW5kZXI8VD4oeyByb3csIGxldmVsIH06IHsgcm93OiBUOyBsZXZlbDogbnVtYmVyIH0pIHtcbiAgICBjb25zdCB7IG9wZW5NYXAsIGRpc3BhdGNoLCBpZCB9ID0gdXNlQ29udGV4dChUeXBlZEV4cGFuZGVkQ29udGV4dDxUPigpKTtcbiAgICBjb25zdCBvcGVuID0gdXNlTWVtbygoKSA9PiBvcGVuTWFwLmdldChpZChyb3cpKSA/PyBmYWxzZSwgW3Jvdywgb3Blbk1hcCwgb3Blbk1hcC5nZXQoaWQocm93KSksIGRpc3BhdGNoXSk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHRkXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBkaXNwYXRjaCh7IHR5cGU6IFwicm93LWV4cGFuZFwiLCByb3csIG5ld1ZhbHVlOiAhb3BlbiB9KX1cbiAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiBgJHsobGV2ZWwgLSAxKSAqIDEuMTI1fWVtYCB9fVxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y29tYmluZUNsYXNzZXMoXCJkYXRhY29yZS1jb2xsYXBzZXJcIiwgIW9wZW4gPyBcImlzLWNvbGxhcHNlZFwiIDogdW5kZWZpbmVkKX0gZGlyPVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzdmctaWNvbiByaWdodC10cmlhbmdsZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgOEwxMiAxN0wyMSA4XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRyZWVUYWJsZVJvdzxUPih7XG4gICAgbGV2ZWwsXG4gICAgcm93LFxuICAgIGNvbHVtbnMsXG59OiB7XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3c6IFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgY29sdW1uczogVHJlZVRhYmxlQ29sdW1uPFQ+W107XG59KSB7XG4gICAgY29uc3QgeyBvcGVuTWFwLCBpZCB9ID0gdXNlQ29udGV4dChUeXBlZEV4cGFuZGVkQ29udGV4dDxUPigpKTtcbiAgICBjb25zdCBvcGVuID0gdXNlTWVtbygoKSA9PiBvcGVuTWFwLmdldChpZChyb3cudmFsdWUpKSwgW29wZW5NYXAsIG9wZW5NYXAuZ2V0KGlkKHJvdy52YWx1ZSkpLCByb3csIHJvdy52YWx1ZV0pO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gdXNlTWVtbygoKSA9PiByb3cuY2hpbGRyZW4ubGVuZ3RoID4gMCwgW3Jvdywgcm93LmNoaWxkcmVuLCByb3cudmFsdWVdKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtcm93XCI+XG4gICAgICAgICAgICAgICAge2hhc0NoaWxkcmVuID8gPFRyZWVUYWJsZVJvd0V4cGFuZGVyPFQ+IGxldmVsPXtsZXZlbH0gcm93PXtyb3cudmFsdWV9IC8+IDogPHRkPjwvdGQ+fVxuICAgICAgICAgICAgICAgIHtjb2x1bW5zLm1hcCgoY29sLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxUcmVlVGFibGVSb3dDZWxsPFQ+IHJvdz17cm93fSBjb2x1bW49e2NvbH0gbGV2ZWw9e2xldmVsfSBpc0ZpcnN0PXtpID09IDB9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAge29wZW5cbiAgICAgICAgICAgICAgICA/IHJvdy5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFRyZWVUYWJsZVJvdyByb3c9e2NoaWxkfSBjb2x1bW5zPXtjb2x1bW5zfSBsZXZlbD17bGV2ZWwgKyAxfSBrZXk9e2lkKGNoaWxkLnZhbHVlKX0gLz5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICA8L0ZyYWdtZW50PlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVSb3dDZWxsPFQ+KHtcbiAgICByb3csXG4gICAgY29sdW1uLFxuICAgIGxldmVsLFxuICAgIGlzRmlyc3QgPSBmYWxzZSxcbn06IHtcbiAgICByb3c6IFRyZWVUYWJsZVJvd0RhdGE8VD47XG4gICAgY29sdW1uOiBUcmVlVGFibGVDb2x1bW48VD47XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICBpc0ZpcnN0OiBib29sZWFuO1xufSkge1xuICAgIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBjb2x1bW4udmFsdWUocm93LnZhbHVlKSwgW3Jvdy52YWx1ZSwgY29sdW1uLnZhbHVlLCBjb2x1bW4udmFsdWUocm93LnZhbHVlKV0pO1xuICAgIGNvbnN0IHVwZGF0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKHY6IExpdGVyYWwpID0+IHtcbiAgICAgICAgICAgIGNvbHVtbi5vblVwZGF0ZSAmJiBjb2x1bW4ub25VcGRhdGUodiwgcm93LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3ZhbHVlLCByb3cudmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBbZWRpdGFibGVTdGF0ZSwgZGlzcGF0Y2hdID0gdXNlRWRpdGFibGVEaXNwYXRjaDx0eXBlb2YgdmFsdWU+KHtcbiAgICAgICAgY29udGVudDogdmFsdWUsXG4gICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgIHVwZGF0ZXI6ICh2KSA9PiBjb2x1bW4ub25VcGRhdGUgJiYgY29sdW1uLm9uVXBkYXRlKHYsIHJvdy52YWx1ZSksXG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcImNvbnRlbnQtY2hhbmdlZFwiLCBuZXdWYWx1ZTogdmFsdWUgfSk7XG4gICAgfSwgW3ZhbHVlLCB1cGRhdGVyXSk7XG4gICAgbGV0IHJlbmRlcmVkQ29sdW1uID0gY29sdW1uLnJlbmRlciA/IGNvbHVtbi5yZW5kZXIoZWRpdGFibGVTdGF0ZS5jb250ZW50LCByb3cudmFsdWUpIDogdmFsdWU7XG4gICAgY29uc3QgcmVuZGVyYWJsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAocmVuZGVyZWRDb2x1bW4gJiYgdHlwZW9mIHJlbmRlcmVkQ29sdW1uID09IFwib2JqZWN0XCIgJiYgXCJwcm9wc1wiIGluIHJlbmRlcmVkQ29sdW1uKVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVuZGVyZWRDb2x1bW4sIHsgcHJvcHM6IE9iamVjdC5hc3NpZ24ocmVuZGVyZWRDb2x1bW4ucHJvcHMsIHsgZGlzcGF0Y2ggfSkgfSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHJlbmRlcmVkQ29sdW1uO1xuICAgIH0sIFtjb2x1bW4ucmVuZGVyLCB2YWx1ZSwgZWRpdGFibGVTdGF0ZS5jb250ZW50LCByZW5kZXJlZENvbHVtbiwgcm93LnZhbHVlLCB1cGRhdGVyXSk7XG5cbiAgICBjb25zdCByZW5kZXJlZCA9IHVzZUFzRWxlbWVudChyZW5kZXJhYmxlKTtcblxuICAgIGNvbnN0IHsgZWRpdG9yOiBFZGl0b3IgfSA9IGNvbHVtbjtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IGlzRmlyc3QgPyBgJHsobGV2ZWwgLSAxKSAqIDEuMn1lbWAgOiB1bmRlZmluZWQgfX1cbiAgICAgICAgICAgIG9uRGJsQ2xpY2s9eygpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJlZGl0aW5nLXRvZ2dsZWRcIiwgbmV3VmFsdWU6ICFlZGl0YWJsZVN0YXRlLmlzRWRpdGluZyB9KX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGFjb3JlLXRhYmxlLWNlbGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7Y29sdW1uLmVkaXRhYmxlICYmIGVkaXRhYmxlU3RhdGUuaXNFZGl0aW5nICYmIEVkaXRvciA/IChcbiAgICAgICAgICAgICAgICA8RWRpdG9yIGRpc3BhdGNoPXtkaXNwYXRjaH0gey4uLmVkaXRhYmxlU3RhdGV9IHsuLi4oY29sdW1uLmVkaXRvclByb3BzID8/IHt9KX0gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgcmVuZGVyZWRcbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvdGQ+XG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZWRUcmVlVGFibGVWaWV3PFQ+KFxuICAgIHByb3BzOiBUcmVlVGFibGVTdGF0ZTxUPiAmIFRyZWVUYWJsZVByb3BzPFQ+ICYgeyBkaXNwYXRjaDogRGlzcGF0Y2g8VHJlZVRhYmxlQWN0aW9uPFQ+PiB9XG4pIHtcbiAgICBjb25zdCBjb2x1bW5zID0gdXNlSW50ZXJuaW5nKHByb3BzLmNvbHVtbnMsIChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gYS5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB2YWx1ZSA9PSBiW2luZGV4XSk7XG4gICAgfSk7XG4gICAgY29uc3QgdG90YWxFbGVtZW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoR3JvdXBpbmdzLmlzR3JvdXBpbmcocHJvcHMucm93cykpIHJldHVybiBHcm91cGluZ3MuY291bnQocHJvcHMucm93cyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5yb3dzLnJlZHVjZShcbiAgICAgICAgICAgICAgICAocHYsIGN2KSA9PiBwdiArIFRyZWVVdGlscy5jb3VudEluVHJlZVJvdyhUcmVlVXRpbHMub2ZOb2RlKGN2LCBwcm9wcy5jaGlsZFNlbGVjdG9yKSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgKTtcbiAgICB9LCBbcHJvcHMucm93c10pO1xuICAgIGNvbnN0IHRhYmxlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBwYWdpbmcgPSB1c2VEYXRhY29yZVBhZ2luZyh7XG4gICAgICAgIGluaXRpYWxQYWdlOiAwLFxuICAgICAgICBwYWdpbmc6IHByb3BzLnBhZ2luZyxcbiAgICAgICAgc2Nyb2xsT25QYWdlQ2hhbmdlOiBwcm9wcy5zY3JvbGxPblBhZ2luZyxcbiAgICAgICAgZWxlbWVudHM6IHRvdGFsRWxlbWVudHMsXG4gICAgICAgIGNvbnRhaW5lcjogdGFibGVSZWYsXG4gICAgfSk7XG4gICAgY29uc3QgcmF3U29ydHMgPSB1c2VJbnRlcm5pbmcocHJvcHMuc29ydE9uLCAoYSwgYikgPT4gTGl0ZXJhbHMuY29tcGFyZShhLCBiKSA9PSAwKTtcbiAgICBjb25zdCBzb3J0cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gcmF3U29ydHM/LmZpbHRlcigoc29ydCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjb2wpID0+IGNvbC5pZCA9PSBzb3J0LmlkKTtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW4gJiYgKGNvbHVtbi5zb3J0YWJsZSA/PyB0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW2NvbHVtbnMsIHJhd1NvcnRzXSk7XG4gICAgY29uc3QgZ3JvdXBpbmdzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuZ3JvdXBpbmdzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy5ncm91cGluZ3MpKSByZXR1cm4gcHJvcHMuZ3JvdXBpbmdzO1xuXG4gICAgICAgIGlmIChMaXRlcmFscy5pc0Z1bmN0aW9uKHByb3BzLmdyb3VwaW5ncykpIHJldHVybiBbeyByZW5kZXI6IHByb3BzLmdyb3VwaW5ncyB9XTtcbiAgICAgICAgZWxzZSByZXR1cm4gW3Byb3BzLmdyb3VwaW5nc107XG4gICAgfSwgW3Byb3BzLmdyb3VwaW5nc10pO1xuICAgIGNvbnN0IHJhd1Jvd3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFHcm91cGluZ3MuaXNHcm91cGluZyhwcm9wcy5yb3dzKSkgcmV0dXJuIFRyZWVVdGlscy5vZkFycmF5KHByb3BzLnJvd3MsIHByb3BzLmNoaWxkU2VsZWN0b3IpO1xuICAgICAgICByZXR1cm4gVHJlZVV0aWxzLm9mR3JvdXBpbmcocHJvcHMucm93cywgcHJvcHMuY2hpbGRTZWxlY3Rvcik7XG4gICAgfSwgW3Byb3BzLnJvd3NdKTtcbiAgICBjb25zdCByb3dzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzb3J0cyA9PSB1bmRlZmluZWQgfHwgc29ydHMubGVuZ3RoID09IDApIHJldHVybiByYXdSb3dzO1xuICAgICAgICBjb25zdCBjb21wYXJhdG9ycyA9IHNvcnRzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sID0gY29sdW1ucy5maW5kKCh5KSA9PiB5LmlkID09IHguaWQpITtcbiAgICAgICAgICAgIGNvbnN0IGNvbXAgPSBjb2w/LmNvbXBhcmF0b3IgPz8gREVGQVVMVF9UQUJMRV9DT01QQVJBVE9SO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmbjogY29tcCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHguZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgIGFjdHVhbFZhbHVlOiBjb2wudmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFRyZWVVdGlscy5zb3J0PFQsIExpdGVyYWw+KHJhd1Jvd3MsIGNvbXBhcmF0b3JzKSBhcyBHcm91cGluZzxUcmVlVGFibGVSb3dEYXRhPFQ+PjtcbiAgICB9LCBbcmF3Um93cywgc29ydHNdKTtcblxuICAgIGNvbnN0IHBhZ2VkUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAocGFnaW5nLmVuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm4gVHJlZVV0aWxzLnNsaWNlKHJvd3MsIHBhZ2luZy5wYWdlICogcGFnaW5nLnBhZ2VTaXplLCAocGFnaW5nLnBhZ2UgKyAxKSAqIHBhZ2luZy5wYWdlU2l6ZSk7XG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH0sIFtwYWdpbmcucGFnZSwgcGFnaW5nLnBhZ2VTaXplLCBwYWdpbmcuZW5hYmxlZCwgcHJvcHMucm93cywgcm93c10pO1xuXG4gICAgY29uc3Qga2V5Rm4gPSB1c2VLZXlGbihwcm9wcy5pZCwgcGFnZWRSb3dzKTtcbiAgICBjb25zdCBDb250ZXh0ID0gVHlwZWRFeHBhbmRlZENvbnRleHQ8VD4oKTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyBvcGVuTWFwOiBwcm9wcy5vcGVuTWFwISwgZGlzcGF0Y2g6IHByb3BzLmRpc3BhdGNoLCBpZDogcHJvcHMuaWQgfX0+XG4gICAgICAgICAgICA8ZGl2IHJlZj17dGFibGVSZWZ9PlxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwiZGF0YWNvcmUtdGFibGUtaGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJkYXRhY29yZS10YWJsZS1oZWFkZXItY2VsbFwiIHdpZHRoPVwiMXB4XCI+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1ucy5tYXAoKHgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRyZWVUYWJsZUhlYWRlckNlbGw8VD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ9e3Byb3BzLnNvcnRPbj8uZmluZCgocykgPT4gcy5pZCA9PT0geC5pZCk/LmRpcmVjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbj17eH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRhYmxlPXt4LnNvcnRhYmxlID8/IHRydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFnZWRSb3dzLm1hcCgocm93KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRyZWVUYWJsZVJvd0dyb3VwPFQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ9e3Jvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5ncz17Z3JvdXBpbmdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleUZuKHJvdyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAge3BhZ2luZy5lbmFibGVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgPENvbnRyb2xsZWRQYWdlciBwYWdlPXtwYWdpbmcucGFnZX0gdG90YWxQYWdlcz17cGFnaW5nLnRvdGFsUGFnZXN9IHNldFBhZ2U9e3BhZ2luZy5zZXRQYWdlfSAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmVlVGFibGVWaWV3PFQ+KHByb3BzOiBUcmVlVGFibGVQcm9wczxUPikge1xuICAgIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlVHJlZVRhYmxlRGlzcGF0Y2g8VD4oe1xuICAgICAgICBzb3J0T246IHByb3BzLnNvcnRPbiA/PyBbXSxcbiAgICAgICAgaWQ6IHByb3BzLmlkID8gcHJvcHMuaWQgOiAoeCkgPT4gKHggYXMgSW5kZXhhYmxlKS4kaWQsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZWZTdGF0ZSA9IHVzZU1lbW8oKCkgPT4gdXNlUmVmKHN0YXRlKSwgW3N0YXRlXSk7XG4gICAgaWYgKHN0YXRlLm9wZW5NYXAgIT09IHVuZGVmaW5lZCkgcmVmU3RhdGUuY3VycmVudCA9IHN0YXRlO1xuICAgIGVsc2UgcmVmU3RhdGUuY3VycmVudC5vcGVuTWFwID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIm9wZW4tbWFwLWNoYW5nZWRcIiwgbmV3VmFsdWU6IHJlZlN0YXRlLmN1cnJlbnQub3Blbk1hcCA/PyBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKSB9KTtcbiAgICB9LCBbZGlzcGF0Y2hdKTtcbiAgICBkZWxldGUgcHJvcHMuc29ydE9uO1xuICAgIHJldHVybiA8Q29udHJvbGxlZFRyZWVUYWJsZVZpZXc8VD4gZGlzcGF0Y2g9e2Rpc3BhdGNofSB7Li4uc3RhdGV9IHsuLi5wcm9wc30gLz47XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGFwaVxuICovXG5pbXBvcnQgeyBEYXRhY29yZUFwaSB9IGZyb20gXCJhcGkvYXBpXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHsgRGF0YWNvcmUgfSBmcm9tIFwiaW5kZXgvZGF0YWNvcmVcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gXCJpbmRleC9kYXRhc3RvcmVcIjtcbmltcG9ydCB7IEluZGV4UXVlcnkgfSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXgtcXVlcnlcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IE1hcmtkb3duUGFnZSwgTWFya2Rvd25UYXNrSXRlbSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyB1c2VGaWxlTWV0YWRhdGEsIHVzZUZ1bGxRdWVyeSwgdXNlSW5kZXhVcGRhdGVzLCB1c2VJbnRlcm5pbmcsIHVzZVF1ZXJ5IH0gZnJvbSBcInVpL2hvb2tzXCI7XG5pbXBvcnQgKiBhcyBsdXhvbiBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIHByZWFjdCBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQgKiBhcyBob29rcyBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiLi9yZXN1bHRcIjtcbmltcG9ydCB7IEdyb3VwLCBTdGFjayB9IGZyb20gXCIuL3VpL2xheW91dFwiO1xuaW1wb3J0IHsgRW1iZWQsIExpbmVTcGFuRW1iZWQgfSBmcm9tIFwiYXBpL3VpL2VtYmVkXCI7XG5pbXBvcnQgeyBDVVJSRU5UX0ZJTEVfQ09OVEVYVCwgTGl0LCBNYXJrZG93biwgT2JzaWRpYW5MaW5rIH0gZnJvbSBcInVpL21hcmtkb3duXCI7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSBcInByZWFjdC9jb21wYXRcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5pbXBvcnQgeyBCdXR0b24sIENoZWNrYm94LCBJY29uLCBTbGlkZXIsIFN3aXRjaCwgVGV4dGJveCwgVmFuaWxsYVNlbGVjdCB9IGZyb20gXCIuL3VpL2Jhc2ljc1wiO1xuaW1wb3J0IHsgVGFza0xpc3QgfSBmcm9tIFwiLi91aS92aWV3cy90YXNrXCI7XG5pbXBvcnQgeyBWYW5pbGxhVGFibGUgfSBmcm9tIFwiLi91aS92aWV3cy90YWJsZVwiO1xuaW1wb3J0IHsgQ2FsbG91dCB9IGZyb20gXCIuL3VpL3ZpZXdzL2NhbGxvdXRcIjtcbmltcG9ydCB7IENhcmQgfSBmcm9tIFwiLi91aS92aWV3cy9jYXJkc1wiO1xuaW1wb3J0IHsgRGF0YUFycmF5IH0gZnJvbSBcIi4vZGF0YS1hcnJheVwiO1xuaW1wb3J0IHsgQ29lcmNlIH0gZnJvbSBcIi4vY29lcmNlXCI7XG5pbXBvcnQgeyBTY3JpcHRDYWNoZSB9IGZyb20gXCIuL3NjcmlwdC1jYWNoZVwiO1xuaW1wb3J0IHsgc2V0VGFza1RleHQsIHVzZVNldEZpZWxkIH0gZnJvbSBcInV0aWxzL2ZpZWxkc1wiO1xuaW1wb3J0IHtcbiAgICBGaWVsZENoZWNrYm94LFxuICAgIEVkaXRhYmxlVGV4dEZpZWxkLFxuICAgIEZpZWxkU2xpZGVyLFxuICAgIEZpZWxkU2VsZWN0LFxuICAgIEZpZWxkU3dpdGNoLFxuICAgIENvbnRyb2xsZWRFZGl0YWJsZVRleHRGaWVsZCxcbn0gZnJvbSBcInVpL2ZpZWxkcy9lZGl0YWJsZS1maWVsZHNcIjtcbmltcG9ydCB7IGNvbXBsZXRlVGFzayB9IGZyb20gXCJ1dGlscy90YXNrXCI7XG5pbXBvcnQgeyBUcmVlVGFibGVWaWV3IH0gZnJvbSBcIi4vdWkvdmlld3MvdHJlZS10YWJsZVwiO1xuaW1wb3J0IHsgVGV4dEVkaXRhYmxlIH0gZnJvbSBcInVpL2ZpZWxkcy9lZGl0YWJsZVwiO1xuXG4vKiogTG9jYWwgQVBJIHByb3ZpZGVkIHRvIHNwZWNpZmljIGNvZGVibG9ja3Mgd2hlbiB0aGV5IGFyZSBleGVjdXRpbmcuXG4gKiBAZ3JvdXAgQ29yZVxuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmVMb2NhbEFwaSB7XG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNjcmlwdENhY2hlOiBTY3JpcHRDYWNoZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgYXBpOiBEYXRhY29yZUFwaSwgcHVibGljIHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNjcmlwdENhY2hlID0gbmV3IFNjcmlwdENhY2hlKHRoaXMuY29yZS5kYXRhc3RvcmUpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgY3VycmVudCBmaWxlIHBhdGggZm9yIHRoZSBsb2NhbCBBUEkuICovXG4gICAgcHVibGljIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGg7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBmdWxsIG1hcmtkb3duIGZpbGUgbWV0YWRhdGEgZm9yIHRoZSBjdXJyZW50IGZpbGUuICovXG4gICAgcHVibGljIGN1cnJlbnRGaWxlKCk6IE1hcmtkb3duUGFnZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wYWdlKHRoaXMucGF0aCkhO1xuICAgIH1cblxuICAgIC8qKiBHZXQgYWNlc3MgdG8gbHV4b24gZnVuY3Rpb25zLiAqL1xuICAgIGdldCBsdXhvbigpOiB0eXBlb2YgbHV4b24ge1xuICAgICAgICByZXR1cm4gbHV4b247XG4gICAgfVxuXG4gICAgLyoqIEdldCBhY2Nlc3MgdG8gcHJlYWN0IGZ1bmN0aW9ucy4gKi9cbiAgICBnZXQgcHJlYWN0KCk6IHR5cGVvZiBwcmVhY3Qge1xuICAgICAgICByZXR1cm4gcHJlYWN0O1xuICAgIH1cblxuICAgIC8qKiBDZW50cmFsIE9ic2lkaWFuIGFwcCBvYmplY3QuICovXG4gICAgZ2V0IGFwcCgpOiBBcHAge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3JlLmFwcDtcbiAgICB9XG5cbiAgICAvKiogVGhlIGludGVybmFsIHBsdWdpbiBjZW50cmFsIGRhdGFzdHJ1Y3R1cmUuICovXG4gICAgZ2V0IGNvcmUoKTogRGF0YWNvcmUge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuY29yZTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBTY3JpcHQgbG9hZGluZyB1dGlsaXRpZXMgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC8qKlxuICAgICAqIEFzeW5jaHJvbm91c2x5IGxvYWQgYSBqYXZhc2NyaXB0IGJsb2NrIGZyb20gdGhlIGdpdmVuIHBhdGggb3IgbGluazsgeW91IGNhbiBlaXRoZXIgbG9hZCBmcm9tIEpTL1RTL0pTWC9UU1ggZmlsZXNcbiAgICAgKiBkaXJlY3RseSwgb3IgZnJvbSBjb2RlYmxvY2tzIGJ5IGxvYWRpbmcgZnJvbSB0aGUgc2VjdGlvbiB0aGUgY29kZWJsb2NrIGlzIGluc2lkZSBvZi4gVGhlcmUgYXJlIGEgZmV3IHN0aXB1bGF0aW9uc1xuICAgICAqIHRvIGxvYWRpbmc6XG4gICAgICogLSBZb3UgY2Fubm90IGxvYWQgY3ljbGljYWwgZGVwZW5kZW5jaWVzLlxuICAgICAqIC0gVGhpcyBpcyBzaW1pbGFyIHRvIHZhbmlsbGEganMgYHJlcXVpcmUoKWAsIG5vdCBgaW1wb3J0IC4uLiBgLiBZb3VyIHNjcmlwdHMgeW91IGFyZSByZXF1aXJpbmcgbmVlZCB0byBleHBsaWNpdGx5XG4gICAgICogICByZXR1cm4gdGhlIHRoaW5ncyB0aGV5IGFyZSBleHBvcnRpbmcsIGxpa2UgdGhlIGV4YW1wbGUgYmVsb3cuIFRoZSBgZXhwb3J0YCBrZXl3b3JkIGRvZXMgbm90IHdvcmsuXG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqIGZ1bmN0aW9uIE15RWxlbWVudCgpIHtcbiAgICAgKiAgLi4uXG4gICAgICogfVxuICAgICAqXG4gICAgICogcmV0dXJuIHsgTXlFbGVtZW50IH07XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHJlcXVpcmUocGF0aDogc3RyaW5nIHwgTGluayk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc2NyaXB0Q2FjaGUubG9hZChwYXRoLCB7IGRjOiB0aGlzIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lm9yRWxzZVRocm93KCk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBHZW5lcmFsIHV0aWxpdGllcyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAvKiogVXRpbGl0aWVzIGZvciBjb2VyY2luZyB0eXBlcyBpbnRvIG9uZSBzcGVjaWZpYyB0eXBlIGZvciBlYXNpZXIgcHJvZ3JhbW1pbmcuICovXG4gICAgcHVibGljIGNvZXJjZSA9IENvZXJjZTtcblxuICAgIC8qKiBSZXNvbHZlIGEgbG9jYWwgb3IgYWJzb2x1dGUgcGF0aCBvciBsaW5rIHRvIGFuIGFic29sdXRlIHBhdGguICovXG4gICAgcHVibGljIHJlc29sdmVQYXRoKHBhdGg6IHN0cmluZyB8IExpbmssIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucmVzb2x2ZVBhdGgocGF0aCwgc291cmNlUGF0aCA/PyB0aGlzLnBhdGgpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgdGhlIGdpdmVuIHF1ZXJ5LCByZXR1cm5pbmcgYSBtb25hZGljIHN1Y2Nlc3MvZmFpbHVyZSByZXN1bHQuICovXG4gICAgcHVibGljIHRyeVBhcnNlUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnkpOiBSZXN1bHQ8SW5kZXhRdWVyeSwgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS50cnlQYXJzZVF1ZXJ5KHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvKiogVHJ5IHRvIHBhcnNlIHRoZSBnaXZlbiBxdWVyeSwgdGhyb3dpbmcgYW4gZXJyb3IgaWYgaXQgaXMgaW52YWxpZC4gKi9cbiAgICBwdWJsaWMgcGFyc2VRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IEluZGV4UXVlcnkge1xuICAgICAgICByZXR1cm4gdGhpcy50cnlQYXJzZVF1ZXJ5KHF1ZXJ5KS5vckVsc2VUaHJvdygoZSkgPT4gXCJGYWlsZWQgdG8gcGFyc2UgcXVlcnk6IFwiICsgZSk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGZpbGUgbGluayBwb2ludGluZyB0byB0aGUgZ2l2ZW4gcGF0aC4gKi9cbiAgICBwdWJsaWMgZmlsZUxpbmsocGF0aDogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUocGF0aCk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGxpbmsgdG8gYSBoZWFkZXIgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gKi9cbiAgICBwdWJsaWMgaGVhZGVyTGluayhwYXRoOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmhlYWRlcihwYXRoLCBoZWFkZXIpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gcGF0aCBhbmQgYmxvY2sgSUQuICovXG4gICAgcHVibGljIGJsb2NrTGluayhwYXRoOiBzdHJpbmcsIGJsb2NrOiBzdHJpbmcpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuYmxvY2socGF0aCwgYmxvY2spO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgdGhlIGdpdmVuIGxpbmssIHRocm93aW5nIGFuIGVycm9yIGlmIGl0IGlzIGludmFsaWQuICovXG4gICAgcHVibGljIHBhcnNlTGluayhsaW5rdGV4dDogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wYXJzZUxpbmsobGlua3RleHQpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgYSBsaW5rLCByZXR1cm5pbmcgYSBtb25hZGljIHN1Y2Nlc3MvZmFpbHVyZSByZXN1bHQuICovXG4gICAgcHVibGljIHRyeVBhcnNlTGluayhsaW5rdGV4dDogc3RyaW5nKTogUmVzdWx0PExpbmssIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkudHJ5UGFyc2VMaW5rKGxpbmt0ZXh0KTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgZGF0YSBhcnJheSBmcm9tIGEgcmVndWxhciBhcnJheS4gKi9cbiAgICBwdWJsaWMgYXJyYXk8VD4oaW5wdXQ6IFRbXSB8IERhdGFBcnJheTxUPik6IERhdGFBcnJheTxUPiB7XG4gICAgICAgIHJldHVybiBEYXRhQXJyYXkud3JhcChpbnB1dCk7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdGhlIHRleHQgb2YgYSBnaXZlbiB0YXNrIHByb2dyYW1tYXRpY2FsbHkuICovXG5cbiAgICBwdWJsaWMgc2V0VGFza1RleHQobmV3VGV4dDogc3RyaW5nLCB0YXNrOiBNYXJrZG93blRhc2tJdGVtKTogdm9pZCB7XG4gICAgICAgIHNldFRhc2tUZXh0KHRoaXMuYXBwLCB0aGlzLmNvcmUsIG5ld1RleHQsIHRhc2spO1xuICAgIH1cblxuICAgIC8qKiBTZXRzIHRoZSBjb21wbGV0aW9uIHN0YXR1cyBvZiBhIGdpdmVuIHRhc2sgcHJvZ3JhbW1hdGljYWxseS4gKi9cbiAgICBwdWJsaWMgc2V0VGFza0NvbXBsZXRpb24oY29tcGxldGVkOiBib29sZWFuLCB0YXNrOiBNYXJrZG93blRhc2tJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbXBsZXRlVGFzayhjb21wbGV0ZWQsIHRhc2ssIHRoaXMuYXBwLnZhdWx0LCB0aGlzLmNvcmUpO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy9cbiAgICAvLyAgSG9va3MgIC8vXG4gICAgLy8vLy8vLy8vLy8vL1xuXG4gICAgLy8gRXhwb3J0IHRoZSBjb21tb24gcHJlYWN0IGhvb2tzIGZvciBwZW9wbGUgdG8gdXNlIHZpYSBgZGMuYDpcbiAgICBwdWJsaWMgdXNlU3RhdGUgPSBob29rcy51c2VTdGF0ZTtcbiAgICBwdWJsaWMgdXNlQ2FsbGJhY2sgPSBob29rcy51c2VDYWxsYmFjaztcbiAgICBwdWJsaWMgdXNlUmVkdWNlciA9IGhvb2tzLnVzZVJlZHVjZXI7XG4gICAgcHVibGljIHVzZU1lbW8gPSBob29rcy51c2VNZW1vO1xuICAgIHB1YmxpYyB1c2VFZmZlY3QgPSBob29rcy51c2VFZmZlY3Q7XG4gICAgcHVibGljIGNyZWF0ZUNvbnRleHQgPSBwcmVhY3QuY3JlYXRlQ29udGV4dDtcbiAgICBwdWJsaWMgdXNlQ29udGV4dCA9IGhvb2tzLnVzZUNvbnRleHQ7XG4gICAgcHVibGljIHVzZVJlZiA9IGhvb2tzLnVzZVJlZjtcbiAgICBwdWJsaWMgdXNlSW50ZXJuaW5nID0gdXNlSW50ZXJuaW5nO1xuICAgIHB1YmxpYyB1c2VTZXRGaWVsZCA9IHVzZVNldEZpZWxkO1xuXG4gICAgLyoqIE1lbW9pemUgdGhlIGlucHV0IGF1dG9tYXRpY2FsbHkgYW5kIHByb2Nlc3MgaXQgdXNpbmcgYSBEYXRhIEFycmF5OyByZXR1cm5zIGEgdmFuaWxsYSBhcnJheSBiYWNrLiAqL1xuICAgIHB1YmxpYyB1c2VBcnJheTxULCBVPihpbnB1dDogVFtdIHwgRGF0YUFycmF5PFQ+LCBwcm9jZXNzOiAoZGF0YTogRGF0YUFycmF5PFQ+KSA9PiBEYXRhQXJyYXk8VT4sIGRlcHM/OiBhbnlbXSk6IFVbXSB7XG4gICAgICAgIHJldHVybiBob29rcy51c2VNZW1vKCgpID0+IHByb2Nlc3MoRGF0YUFycmF5LndyYXAoaW5wdXQpKS5hcnJheSgpLCBbaW5wdXQsIC4uLihkZXBzID8/IFtdKV0pO1xuICAgIH1cblxuICAgIC8qKiBVc2UgdGhlIGZpbGUgbWV0YWRhdGEgZm9yIHRoZSBjdXJyZW50IGZpbGUuIEF1dG9tYXRpY2FsbHkgdXBkYXRlcyB0aGUgdmlldyB3aGVuIHRoZSBjdXJyZW50IGZpbGUgbWV0YWRhdGEgY2hhbmdlcy4gKi9cbiAgICBwdWJsaWMgdXNlQ3VycmVudEZpbGUoc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBNYXJrZG93blBhZ2Uge1xuICAgICAgICByZXR1cm4gdXNlRmlsZU1ldGFkYXRhKHRoaXMuY29yZSwgdGhpcy5wYXRoLCBzZXR0aW5ncykgYXMgTWFya2Rvd25QYWdlO1xuICAgIH1cblxuICAgIC8qKiBVc2UgdGhlIGN1cnJlbnQgcGF0aC4gQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSB2aWV3IGlmIHRoZSBwYXRoIGNoYW5nZXMgKHRob3VnaCB0aGF0IHdvdWxkIGJlIHdlaXJkKS4gKi9cbiAgICBwdWJsaWMgdXNlQ3VycmVudFBhdGgoc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy51c2VDdXJyZW50RmlsZShzZXR0aW5ncyk7XG4gICAgICAgIHJldHVybiBtZXRhLiRwYXRoO1xuICAgIH1cblxuICAgIC8qKiBVc2UgdGhlIGZpbGUgbWV0YWRhdGEgZm9yIGEgc3BlY2lmaWMgZmlsZS4gQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSB2aWV3IHdoZW4gdGhlIGZpbGUgY2hhbmdlcy4gKi9cbiAgICBwdWJsaWMgdXNlRmlsZShwYXRoOiBzdHJpbmcsIHNldHRpbmdzPzogeyBkZWJvdW5jZT86IG51bWJlciB9KTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHVzZUZpbGVNZXRhZGF0YSh0aGlzLmNvcmUsIHBhdGgsIHNldHRpbmdzKSE7XG4gICAgfVxuXG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgcmVmcmVzaCB0aGUgdmlldyB3aGVuZXZlciB0aGUgaW5kZXggdXBkYXRlczsgcmV0dXJucyB0aGUgbGF0ZXN0IGluZGV4IHJldmlzaW9uIElELiAqL1xuICAgIHB1YmxpYyB1c2VJbmRleFVwZGF0ZXMoc2V0dGluZ3M/OiB7IGRlYm91bmNlPzogbnVtYmVyIH0pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdXNlSW5kZXhVcGRhdGVzKHRoaXMuY29yZSwgc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJ1biBhIHF1ZXJ5LCBhdXRvbWF0aWNhbGx5IHJlLXJ1bm5pbmcgaXQgd2hlbmV2ZXIgdGhlIHZhdWx0IGNoYW5nZXMuIFJldHVybnMgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcXVlcnlcbiAgICAgKiBleGVjdXRpb24sIHN1Y2ggYXMgaW5kZXggcmV2aXNpb24gYW5kIHRvdGFsIHNlYXJjaCBkdXJhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXNlRnVsbFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IHsgZGVib3VuY2U/OiBudW1iZXIgfSk6IFNlYXJjaFJlc3VsdDxJbmRleGFibGU+IHtcbiAgICAgICAgcmV0dXJuIHVzZUZ1bGxRdWVyeSh0aGlzLmNvcmUsIHRoaXMucGFyc2VRdWVyeShxdWVyeSksIHNldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvKiogUnVuIGEgcXVlcnksIGF1dG9tYXRpY2FsbHkgcmUtcnVubmluZyBpdCB3aGVuZXZlciB0aGUgdmF1bHQgY2hhbmdlcy4gKi9cbiAgICBwdWJsaWMgdXNlUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnksIHNldHRpbmdzPzogeyBkZWJvdW5jZT86IG51bWJlciB9KTogSW5kZXhhYmxlW10ge1xuICAgICAgICAvLyBIb29rcyBuZWVkIHRvIGJlIGNhbGxlZCBpbiBhIGNvbnNpc3RlbnQgb3JkZXIsIHNvIHdlIGRvbid0IG5lc3QgdGhlIGB1c2VRdWVyeWAgY2FsbCBpbiB0aGUgRGF0YUFycmF5LndyYXAgX2p1c3RfIGluIGNhc2UuXG4gICAgICAgIHJldHVybiB1c2VRdWVyeSh0aGlzLmNvcmUsIHRoaXMucGFyc2VRdWVyeShxdWVyeSksIHNldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBWaXN1YWwgRWxlbWVudHMgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC8qKiBWZXJ0aWNhbCBmbGV4Ym94IGNvbnRhaW5lcjsgZ29vZCBmb3IgcHV0dGluZyBpdGVtcyB0b2dldGhlciBpbiBhIGNvbHVtbi4gKi9cbiAgICBwdWJsaWMgU3RhY2sgPSBTdGFjaztcbiAgICAvKiogSG9yaXpvbnRhbCBmbGV4Ym94IGNvbnRhaW5lcjsgZ29vZCBmb3IgcHV0dGluZyBpdGVtcyB0b2dldGhlciBpbiBhIHJvdy4gKi9cbiAgICBwdWJsaWMgR3JvdXAgPSBHcm91cDtcblxuICAgIC8qKiBSZW5kZXJzIGEgbGl0ZXJhbCB2YWx1ZSBpbiBhIHByZXR0eSB3YXkgdGhhdCByZXNwZWN0cyBzZXR0aW5ncy4gKi9cbiAgICBwdWJsaWMgTGl0ZXJhbCA9ICgoeyB2YWx1ZSwgc291cmNlUGF0aCwgaW5saW5lIH06IHsgdmFsdWU6IExpdGVyYWw7IHNvdXJjZVBhdGg/OiBzdHJpbmc7IGlubGluZT86IGJvb2xlYW4gfSkgPT4ge1xuICAgICAgICBjb25zdCBpbXBsaWNpdFNvdXJjZVBhdGggPSBob29rcy51c2VDb250ZXh0KENVUlJFTlRfRklMRV9DT05URVhUKTtcbiAgICAgICAgcmV0dXJuIDxMaXQgdmFsdWU9e3ZhbHVlfSBzb3VyY2VQYXRoPXtzb3VyY2VQYXRoID8/IGltcGxpY2l0U291cmNlUGF0aCA/PyB0aGlzLnBhdGh9IGlubGluZT17aW5saW5lfSAvPjtcbiAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgLyoqIFJlbmRlcnMgbWFya2Rvd24gdXNpbmcgdGhlIE9ic2lkaWFuIG1hcmtkb3duIHJlbmRlcmVyLCBvcHRpb25hbGx5IGF0dGFjaGluZyBhZGRpdGlvbmFsIHN0eWxlcy4gKi9cbiAgICBwdWJsaWMgTWFya2Rvd24gPSAoKHtcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgc291cmNlUGF0aCxcbiAgICAgICAgaW5saW5lLFxuICAgICAgICBzdHlsZSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgIH06IHtcbiAgICAgICAgY29udGVudDogc3RyaW5nO1xuICAgICAgICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICAgICAgICBpbmxpbmU/OiBib29sZWFuO1xuICAgICAgICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0U291cmNlUGF0aCA9IGhvb2tzLnVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1hcmtkb3duXG4gICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgICAgICAgICBzb3VyY2VQYXRoPXtzb3VyY2VQYXRoID8/IGltcGxpY2l0U291cmNlUGF0aCA/PyB0aGlzLnBhdGh9XG4gICAgICAgICAgICAgICAgaW5saW5lPXtpbmxpbmV9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgICAgIGNscz17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgLyoqIFJlbmRlcnMgYW4gb2JzaWRpYW4tc3R5bGUgbGluayBkaXJlY3RseSBhbmQgbW9yZSBlZmZpZWljbnRseSB0aGFuIHJlbmRlcmluZyBtYXJrZG93bi4gKi9cbiAgICBwdWJsaWMgTGluayA9IE9ic2lkaWFuTGluaztcblxuICAgIC8qKiBDcmVhdGUgYSB2YW5pbGxhIE9ic2lkaWFuIGVtYmVkIGZvciB0aGUgZ2l2ZW4gbGluay4gKi9cbiAgICBwdWJsaWMgTGlua0VtYmVkID0gKCh7XG4gICAgICAgIGxpbmssXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgc291cmNlUGF0aCxcbiAgICB9OiB7XG4gICAgICAgIGxpbms6IHN0cmluZyB8IExpbms7XG4gICAgICAgIGlubGluZT86IGJvb2xlYW47XG4gICAgICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgICBjb25zdCByZWFsTGluayA9IGhvb2tzLnVzZU1lbW8oKCkgPT4gKHR5cGVvZiBsaW5rID09PSBcInN0cmluZ1wiID8gTGluay5maWxlKGxpbmspIDogbGluayksIFtsaW5rXSk7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0U291cmNlUGF0aCA9IGhvb2tzLnVzZUNvbnRleHQoQ1VSUkVOVF9GSUxFX0NPTlRFWFQpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEVtYmVkXG4gICAgICAgICAgICAgICAgbGluaz17cmVhbExpbmt9XG4gICAgICAgICAgICAgICAgaW5saW5lPXtpbmxpbmUgPz8gZmFsc2V9XG4gICAgICAgICAgICAgICAgc291cmNlUGF0aD17c291cmNlUGF0aCA/PyBpbXBsaWNpdFNvdXJjZVBhdGggPz8gdGhpcy5wYXRofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgLyoqIENyZWF0ZSBhbiBleHBsaWNpdCAnc3BhbicgZW1iZWQgd2hpY2ggZXh0cmFjdHMgYSBzcGFuIG9mIGxpbmVzIGZyb20gYSBtYXJrZG93biBmaWxlLiAqL1xuICAgIHB1YmxpYyBTcGFuRW1iZWQgPSAoKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZCxcbiAgICAgICAgZXhwbGFpbixcbiAgICAgICAgc2hvd0V4cGxhaW4sXG4gICAgICAgIHNvdXJjZVBhdGg6IG1heWJlU291cmNlUGF0aCxcbiAgICB9OiB7XG4gICAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgICAgc291cmNlUGF0aD86IHN0cmluZztcbiAgICAgICAgZXhwbGFpbj86IHN0cmluZztcbiAgICAgICAgc2hvd0V4cGxhaW4/OiBib29sZWFuO1xuICAgICAgICBzdGFydDogbnVtYmVyO1xuICAgICAgICBlbmQ6IG51bWJlcjtcbiAgICB9KSA9PiB7XG4gICAgICAgIC8vIFJlc29sdmUgdGhlIHBhdGggdG8gdGhlIGNvcnJlY3QgcGF0aCBpZiBhIHNvdXJjZSBwYXRoIGlzIHByb3ZpZGVkLlxuICAgICAgICBjb25zdCBzb3VyY2VQYXRoID0gbWF5YmVTb3VyY2VQYXRoID8/IHRoaXMucGF0aDtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gaG9va3MudXNlTWVtbygoKSA9PiB0aGlzLnJlc29sdmVQYXRoKHBhdGgsIHNvdXJjZVBhdGgpLCBbcGF0aCwgc291cmNlUGF0aF0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TGluZVNwYW5FbWJlZCBwYXRoPXtyZXNvbHZlZFBhdGh9IHN0YXJ0PXtzdGFydH0gZW5kPXtlbmR9IGV4cGxhaW49e2V4cGxhaW59IHNob3dFeHBsYWluPXtzaG93RXhwbGFpbn0gLz5cbiAgICAgICAgKTtcbiAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgLyoqIFJlbmRlcnMgYW4gb2JzaWRpYW4gbHVjaWRlIGljb24uICovXG4gICAgcHVibGljIEljb24gPSBJY29uO1xuXG4gICAgLy8vLy8vLy8vLy9cbiAgICAvLyBWaWV3cyAvL1xuICAgIC8vLy8vLy8vLy8vXG5cbiAgICBwdWJsaWMgVGFza0xpc3QgPSBUYXNrTGlzdDtcbiAgICBwdWJsaWMgVmFuaWxsYVRhYmxlID0gVmFuaWxsYVRhYmxlO1xuICAgIHB1YmxpYyBUcmVlVGFibGUgPSBUcmVlVGFibGVWaWV3O1xuICAgIHB1YmxpYyBDYXJkID0gQ2FyZDtcblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJbnRlcmF0aXZlIGVsZW1lbnRzIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcHVibGljIEJ1dHRvbiA9IEJ1dHRvbjtcbiAgICBwdWJsaWMgVGV4dGJveCA9IFRleHRib3g7XG4gICAgcHVibGljIENhbGxvdXQgPSBDYWxsb3V0O1xuICAgIHB1YmxpYyBDaGVja2JveCA9IENoZWNrYm94O1xuICAgIHB1YmxpYyBTbGlkZXIgPSBTbGlkZXI7XG4gICAgcHVibGljIFN3aXRjaCA9IFN3aXRjaDtcbiAgICBwdWJsaWMgVmFuaWxsYVNlbGVjdCA9IFZhbmlsbGFTZWxlY3Q7XG4gICAgcHVibGljIFZhbmlsbGFUZXh0Qm94ID0gQ29udHJvbGxlZEVkaXRhYmxlVGV4dEZpZWxkO1xuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vICAgIGZpZWxkIGVkaXRvcnMgICAgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgcHVibGljIEZpZWxkQ2hlY2tib3ggPSBGaWVsZENoZWNrYm94O1xuICAgIHB1YmxpYyBGaWVsZFNsaWRlciA9IEZpZWxkU2xpZGVyO1xuICAgIHB1YmxpYyBGaWVsZFNlbGVjdCA9IEZpZWxkU2VsZWN0O1xuICAgIHB1YmxpYyBGaWVsZFN3aXRjaCA9IEZpZWxkU3dpdGNoO1xuICAgIHB1YmxpYyBUZXh0RmllbGQgPSBFZGl0YWJsZVRleHRGaWVsZDtcbn1cbiIsICIvKipcbiAqIEBtb2R1bGUgYXBpXG4gKi9cbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiZXhwcmVzc2lvbi9saW5rXCI7XG5pbXBvcnQgeyBEYXRhY29yZSB9IGZyb20gXCJpbmRleC9kYXRhY29yZVwiO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSBcImluZGV4L2RhdGFzdG9yZVwiO1xuaW1wb3J0IHsgUFJJTUlUSVZFUywgUVVFUlkgfSBmcm9tIFwiZXhwcmVzc2lvbi9wYXJzZXJcIjtcbmltcG9ydCB7IEluZGV4UXVlcnkgfSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXgtcXVlcnlcIjtcbmltcG9ydCB7IEluZGV4YWJsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IE1hcmtkb3duUGFnZSB9IGZyb20gXCJpbmRleC90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcIi4vcmVzdWx0XCI7XG5pbXBvcnQgeyBBcHAsIENvbXBvbmVudCwgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgTWFya2Rvd25SZW5kZXJDaGlsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRGF0YWNvcmVKU1JlbmRlcmVyIH0gZnJvbSBcInVpL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFjb3JlTG9jYWxBcGkgfSBmcm9tIFwiLi9sb2NhbC1hcGlcIjtcbmltcG9ydCBQYXJzaW1tb24gZnJvbSBcInBhcnNpbW1vblwiO1xuaW1wb3J0IHsgQ29lcmNlIH0gZnJvbSBcIi4vY29lcmNlXCI7XG5pbXBvcnQgeyBEYXRhQXJyYXkgfSBmcm9tIFwiLi9kYXRhLWFycmF5XCI7XG5pbXBvcnQgKiBhcyBsdXhvbiBmcm9tIFwibHV4b25cIjtcbmltcG9ydCAqIGFzIHByZWFjdCBmcm9tIFwicHJlYWN0XCI7XG5cbi8qKiBFeHRlcmFsbHkgdmlzaWJsZSBBUEkgZm9yIGRhdGFjb3JlLlxuICogQGdyb3VwIENvcmVcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFjb3JlQXBpIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvcmU6IERhdGFjb3JlKSB7fVxuXG4gICAgLyoqIEdldCBhY2VzcyB0byBsdXhvbiBmdW5jdGlvbnMuICovXG4gICAgZ2V0IGx1eG9uKCk6IHR5cGVvZiBsdXhvbiB7XG4gICAgICAgIHJldHVybiBsdXhvbjtcbiAgICB9XG5cbiAgICAvKiogR2V0IGFjY2VzcyB0byBwcmVhY3QgZnVuY3Rpb25zLiAqL1xuICAgIGdldCBwcmVhY3QoKTogdHlwZW9mIHByZWFjdCB7XG4gICAgICAgIHJldHVybiBwcmVhY3Q7XG4gICAgfVxuXG4gICAgLyoqIENlbnRyYWwgT2JzaWRpYW4gYXBwIG9iamVjdC4gKi9cbiAgICBnZXQgYXBwKCk6IEFwcCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcmUuYXBwO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIExvY2FsIEFQSSAvL1xuICAgIC8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLyoqIENvbnN0cnVjdCBhIGxvY2FsIEFQSSBmb3IgdGhlIGZpbGUgYXQgdGhlIGdpdmVuIHBhdGguICovXG4gICAgcHVibGljIGxvY2FsKHBhdGg6IHN0cmluZyk6IERhdGFjb3JlTG9jYWxBcGkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGFjb3JlTG9jYWxBcGkodGhpcywgcGF0aCk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFF1ZXJ5aW5nICsgRmV0Y2hpbmcgLy9cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAvKiogTG9hZCBhIG1hcmtkb3duIGZpbGUgYnkgZnVsbCBwYXRoIG9yIGxpbmsuICovXG4gICAgcHVibGljIHBhZ2UocGF0aDogc3RyaW5nIHwgTGluayk6IE1hcmtkb3duUGFnZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHJlYWxQYXRoID0gcGF0aCBpbnN0YW5jZW9mIExpbmsgPyBwYXRoLnBhdGggOiBwYXRoO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvcmUuZGF0YXN0b3JlLmxvYWQocmVhbFBhdGgpIGFzIE1hcmtkb3duUGFnZSB8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogRXhlY3V0ZSBhIHRleHR1YWwgb3IgdHlwZWQgaW5kZXggcXVlcnksIHJldHVybmluZyBhbGwgcmVzdWx0cy4gKi9cbiAgICBwdWJsaWMgcXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnkpOiBJbmRleGFibGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyeVF1ZXJ5KHF1ZXJ5KS5vckVsc2VUaHJvdygpO1xuICAgIH1cblxuICAgIC8qKiBFeGVjdXRlIGEgdGV4dHVhbCBvciB0eXBlZCBpbmRleCBxdWVyeSwgcmV0dXJuaW5nIGFsbCByZXN1bHRzLiAqL1xuICAgIHB1YmxpYyB0cnlRdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IFJlc3VsdDxJbmRleGFibGVbXSwgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyeUZ1bGxRdWVyeShxdWVyeSkubWFwKChyZXN1bHQpID0+IHJlc3VsdC5yZXN1bHRzKTtcbiAgICB9XG5cbiAgICAvKiogRXhlY3V0ZSBhIHRleHR1YWwgb3IgdHlwZWQgaW5kZXggcXVlcnksIHJldHVybmluZyByZXN1bHRzIHBsdXMgcGVyZm9ybWFuY2UgbWV0YWRhdGEuICovXG4gICAgcHVibGljIGZ1bGxxdWVyeShxdWVyeTogc3RyaW5nIHwgSW5kZXhRdWVyeSk6IFNlYXJjaFJlc3VsdDxJbmRleGFibGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ5RnVsbFF1ZXJ5KHF1ZXJ5KS5vckVsc2VUaHJvdygpO1xuICAgIH1cblxuICAgIC8qKiBFeGVjdXRlIGEgdGV4dHVhbCBvciB0eXBlZCBpbmRleCBxdWVyeSwgcmV0dXJuaW5nIHJlc3VsdHMgcGx1cyBwZXJmb3JtYW5jZSBtZXRhZGF0YS4gKi9cbiAgICBwdWJsaWMgdHJ5RnVsbFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBJbmRleFF1ZXJ5KTogUmVzdWx0PFNlYXJjaFJlc3VsdDxJbmRleGFibGU+LCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkUXVlcnkgPSB0eXBlb2YgcXVlcnkgPT09IFwic3RyaW5nXCIgPyBRVUVSWS5xdWVyeS50cnlQYXJzZShxdWVyeSkgOiBxdWVyeTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29yZS5kYXRhc3RvcmUuc2VhcmNoKHBhcnNlZFF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEdlbmVyYWwgdXRpbGl0aWVzIC8vXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC8qKiBVdGlsaXRpZXMgZm9yIGNvZXJjaW5nIHR5cGVzIGludG8gb25lIHNwZWNpZmljIHR5cGUgZm9yIGVhc2llciBwcm9ncmFtbWluZy4gKi9cbiAgICBwdWJsaWMgY29lcmNlID0gQ29lcmNlO1xuXG4gICAgLyoqIFJlc29sdmUgYSBsb2NhbCBvciBhYnNvbHV0ZSBwYXRoIG9yIGxpbmsgdG8gYW4gYWJzb2x1dGUgcGF0aC4gKi9cbiAgICBwdWJsaWMgcmVzb2x2ZVBhdGgocGF0aDogc3RyaW5nIHwgTGluaywgc291cmNlUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhd3BhdGggPSBwYXRoIGluc3RhbmNlb2YgTGluayA/IHBhdGgucGF0aCA6IHBhdGg7XG4gICAgICAgIGlmIChyYXdwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSByZXR1cm4gcmF3cGF0aC5zdWJzdHJpbmcoMSk7XG5cbiAgICAgICAgY29uc3QgYWJzb2x1dGUgPSB0aGlzLmNvcmUubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChyYXdwYXRoLCBzb3VyY2VQYXRoID8/IFwiXCIpO1xuICAgICAgICBpZiAoYWJzb2x1dGUpIHJldHVybiBhYnNvbHV0ZS5wYXRoO1xuXG4gICAgICAgIHJldHVybiByYXdwYXRoO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgdGhlIGdpdmVuIHF1ZXJ5LCByZXR1cm5pbmcgYSBtb25hZGljIHN1Y2Nlc3MvZmFpbHVyZSByZXN1bHQuICovXG4gICAgcHVibGljIHRyeVBhcnNlUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnkpOiBSZXN1bHQ8SW5kZXhRdWVyeSwgc3RyaW5nPiB7XG4gICAgICAgIGlmICghKHR5cGVvZiBxdWVyeSA9PT0gXCJzdHJpbmdcIikpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhxdWVyeSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gUVVFUlkucXVlcnkucGFyc2UocXVlcnkpO1xuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cykgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFBhcnNpbW1vbi5mb3JtYXRFcnJvcihxdWVyeSwgcmVzdWx0KSk7XG4gICAgfVxuXG4gICAgLyoqIFRyeSB0byBwYXJzZSB0aGUgZ2l2ZW4gcXVlcnksIHRocm93aW5nIGFuIGVycm9yIGlmIGl0IGlzIGludmFsaWQuICovXG4gICAgcHVibGljIHBhcnNlUXVlcnkocXVlcnk6IHN0cmluZyB8IEluZGV4UXVlcnkpOiBJbmRleFF1ZXJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ5UGFyc2VRdWVyeShxdWVyeSkub3JFbHNlVGhyb3coKGUpID0+IFwiRmFpbGVkIHRvIHBhcnNlIHF1ZXJ5OiBcIiArIGUpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBmaWxlIGxpbmsgcG9pbnRpbmcgdG8gdGhlIGdpdmVuIHBhdGguICovXG4gICAgcHVibGljIGZpbGVMaW5rKHBhdGg6IHN0cmluZyk6IExpbmsge1xuICAgICAgICByZXR1cm4gTGluay5maWxlKHBhdGgpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgYSBsaW5rIHRvIGEgaGVhZGVyIHdpdGggdGhlIGdpdmVuIG5hbWUuICovXG4gICAgcHVibGljIGhlYWRlckxpbmsocGF0aDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZyk6IExpbmsge1xuICAgICAgICByZXR1cm4gTGluay5oZWFkZXIocGF0aCwgaGVhZGVyKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbGluayB0byBhIGJsb2NrIHdpdGggdGhlIGdpdmVuIHBhdGggYW5kIGJsb2NrIElELiAqL1xuICAgIHB1YmxpYyBibG9ja0xpbmsocGF0aDogc3RyaW5nLCBibG9jazogc3RyaW5nKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmJsb2NrKHBhdGgsIGJsb2NrKTtcbiAgICB9XG5cbiAgICAvKiogVHJ5IHRvIHBhcnNlIHRoZSBnaXZlbiBsaW5rLCB0aHJvd2luZyBhbiBlcnJvciBpZiBpdCBpcyBpbnZhbGlkLiAqL1xuICAgIHB1YmxpYyBwYXJzZUxpbmsobGlua3RleHQ6IHN0cmluZyk6IExpbmsge1xuICAgICAgICByZXR1cm4gdGhpcy50cnlQYXJzZUxpbmsobGlua3RleHQpLm9yRWxzZVRocm93KChlKSA9PiBcIkZhaWxlZCB0byBwYXJzZSBsaW5rOiBcIiArIGUpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgYSBsaW5rLCByZXR1cm5pbmcgYSBtb25hZGljIHN1Y2Nlc3MvZmFpbHVyZSByZXN1bHQuICovXG4gICAgcHVibGljIHRyeVBhcnNlTGluayhsaW5rdGV4dDogc3RyaW5nKTogUmVzdWx0PExpbmssIHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBQUklNSVRJVkVTLmVtYmVkTGluay5wYXJzZShsaW5rdGV4dCk7XG4gICAgICAgIGlmICghcGFyc2VkLnN0YXR1cykgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKFBhcnNpbW1vbi5mb3JtYXRFcnJvcihsaW5rdGV4dCwgcGFyc2VkKSk7XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHBhcnNlZC52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBhIGRhdGEgYXJyYXkgZnJvbSBhIHJlZ3VsYXIgYXJyYXkuICovXG4gICAgcHVibGljIGFycmF5PFQ+KGlucHV0OiBUW10gfCBEYXRhQXJyYXk8VD4pOiBEYXRhQXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gRGF0YUFycmF5LndyYXAoaW5wdXQpO1xuICAgIH1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFZpc3VhbCBFbGVtZW50cyAvL1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgLyoqXG4gICAgICogUnVuIHRoZSBnaXZlbiBEYXRhY29yZUpTIHNjcmlwdCwgcmVuZGVyaW5nIGl0IGludG8gdGhlIGdpdmVuIGNvbnRhaW5lci4gVGhpcyBmdW5jdGlvblxuICAgICAqIHdpbGwgcmV0dXJuIHF1aWNrbHk7IGFjdHVhbCByZW5kZXJpbmcgaXMgZG9uZSBhc3luY2hyb25vdXNseSBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICAgKlxuICAgICAqIFJldHVybnMgYSBtYXJrZG93biByZW5kZXIgY2hpbGQgcmVwcmVzZW50aW5nIHRoZSByZW5kZXJlZCBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIGV4ZWN1dGVKcyhcbiAgICAgICAgc291cmNlOiBzdHJpbmcsXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50IHwgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCxcbiAgICAgICAgc291cmNlUGF0aDogc3RyaW5nXG4gICAgKTogTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJKYXZhc2NyaXB0KHNvdXJjZSwgY29udGFpbmVyLCBjb21wb25lbnQsIHNvdXJjZVBhdGgsIFwianNcIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2ltaWxhciB0byBgZXhlY3V0ZUpzYCwgYnV0IGZvciBKU1ggc2NyaXB0cy4gSWYgeW91IGFyZSB1bnN1cmUgaWYgeW91ciBpbnB1dCB3aWxsIGJlIEpTXG4gICAgICogb3IgSlNYLCB1c2UgdGhpcyBvbmUsIGFzIGl0IGFsc28gc3VwcG9ydHMgcmVndWxhciBqYXZhc2NyaXB0IChhbGJlaXQgYXQgYXQgYSBtaWxkIHBlcmZvcm1hbmNlXG4gICAgICogaGl0IHRvIHJlbmRlcmluZykuXG4gICAgICovXG4gICAgcHVibGljIGV4ZWN1dGVKc3goXG4gICAgICAgIHNvdXJjZTogc3RyaW5nLFxuICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudCB8IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gICAgICAgIHNvdXJjZVBhdGg6IHN0cmluZ1xuICAgICk6IE1hcmtkb3duUmVuZGVyQ2hpbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVySmF2YXNjcmlwdChzb3VyY2UsIGNvbnRhaW5lciwgY29tcG9uZW50LCBzb3VyY2VQYXRoLCBcImpzeFwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaW1pbGFyIHRvIGBleGVjdXRlSnNgLCBidXQgZm9yIFR5cGVTY3JpcHQgc2NyaXB0cy4gVXNlIHRoZSBUU1ggdmFyaWFudCBmb3IgVFNYIHN1cHByb3QuXG4gICAgICovXG4gICAgcHVibGljIGV4ZWN1dGVUcyhcbiAgICAgICAgc291cmNlOiBzdHJpbmcsXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50IHwgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCxcbiAgICAgICAgc291cmNlUGF0aDogc3RyaW5nXG4gICAgKTogTWFya2Rvd25SZW5kZXJDaGlsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJKYXZhc2NyaXB0KHNvdXJjZSwgY29udGFpbmVyLCBjb21wb25lbnQsIHNvdXJjZVBhdGgsIFwidHNcIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2ltaWxhciB0byBgZXhlY3V0ZVRzYCwgYnV0IGZvciBUU1ggc2NyaXB0cy4gSWYgeW91IGFyZSB1bnN1cmUgaWYgeW91ciBpbnB1dCB3aWxsIGJlIFRTXG4gICAgICogb3IgVFNYLCB1c2UgdGhpcyBvbmUsIGFzIGl0IGFsc28gc3VwcG9ydHMgcmVndWxhciBqYXZhc2NyaXB0IChhbGJlaXQgYXQgYXQgYSBtaWxkIHBlcmZvcm1hbmNlXG4gICAgICogaGl0IHRvIHJlbmRlcmluZykuXG4gICAgICpcbiAgICAgKiBUaGlzIGdlbmVyYWxseSB3aWxsIGFsc28gd29yayBpZiB5b3UgYXJlIHVuc3VyZSBpZiB5b3VyIGlucHV0IGlzIGphdmFzY3JpcHQgb3IgdHlwZXNjcmlwdCxcbiAgICAgKiB0aG91Z2ggYmV3YXJlIHRoZXJlIGFyZSBhIGZldyBuaWNoZSBjYXNlcyB3aGVyZSBqYXZhc2NyaXB0IGFuZCB0eXBlc2NyaXB0IGRpdmVyZ2UgaW4gc3ludGF4LlxuICAgICAqL1xuICAgIHB1YmxpYyBleGVjdXRlVHN4KFxuICAgICAgICBzb3VyY2U6IHN0cmluZyxcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnQgfCBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LFxuICAgICAgICBzb3VyY2VQYXRoOiBzdHJpbmdcbiAgICApOiBNYXJrZG93blJlbmRlckNoaWxkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckphdmFzY3JpcHQoc291cmNlLCBjb250YWluZXIsIGNvbXBvbmVudCwgc291cmNlUGF0aCwgXCJ0c3hcIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBTaGFyZWQgbG9naWMgZm9yIHJlbmRlcmluZyBhbnkgSlMvVFMgc2NyaXB0LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlbmRlckphdmFzY3JpcHQoXG4gICAgICAgIHNvdXJjZTogc3RyaW5nLFxuICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudCB8IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gICAgICAgIHNvdXJjZVBhdGg6IHN0cmluZyxcbiAgICAgICAgbGFuZ3VhZ2U6IFwianNcIiB8IFwidHNcIiB8IFwianN4XCIgfCBcInRzeFwiXG4gICAgKSB7XG4gICAgICAgIGxldCBsb2NhbCA9IG5ldyBEYXRhY29yZUxvY2FsQXBpKHRoaXMsIHNvdXJjZVBhdGgpO1xuICAgICAgICBjb25zdCByZW5kZXJlciA9IG5ldyBEYXRhY29yZUpTUmVuZGVyZXIobG9jYWwsIGNvbnRhaW5lciwgc291cmNlUGF0aCwgc291cmNlLCBsYW5ndWFnZSk7XG4gICAgICAgIGNvbXBvbmVudC5hZGRDaGlsZChyZW5kZXJlcik7XG5cbiAgICAgICAgcmV0dXJuIHJlbmRlcmVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRQYXJlbnRGb2xkZXIgfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IFRGaWxlLCBURm9sZGVyLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG4vKiogU3BlY2lmaWMgaW5kZXggZm9yIHRyYWNraW5nIG9iamVjdHMgaW4gcmVsYXRpdmUgcGF0aHMuIFNwZWNpZmljYWxseSB0cmFja3MgdG9wLWxldmVsIHBhZ2Ugb2JqZWN0cy4gKi9cbmV4cG9ydCBjbGFzcyBGb2xkZXJJbmRleCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZhdWx0OiBWYXVsdCkge31cblxuICAgIC8qKiBHZXQgdGhlIGxpc3Qgb2YgYWxsIGZpbGVzIHVuZGVyIHRoZSBnaXZlbiBwYXRoLiAqL1xuICAgIHB1YmxpYyBnZXQocHJlZml4OiBzdHJpbmcsIGZpbHRlcj86IChwYXRoOiBzdHJpbmcpID0+IGJvb2xlYW4pOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIGxldCBmb2xkZXIgPSB0aGlzLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChwcmVmaXggfHwgXCIvXCIpO1xuICAgICAgICBpZiAoIWZvbGRlcikge1xuICAgICAgICAgICAgcmV0dXJuIEZvbGRlckluZGV4LkVNUFRZX1NFVDtcbiAgICAgICAgfSBlbHNlIGlmIChmb2xkZXIgaW5zdGFuY2VvZiBURm9sZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNldCh0aGlzLndhbGsoZm9sZGVyLCBmaWx0ZXIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQocHJlZml4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZvbGRlckluZGV4LkVNUFRZX1NFVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZXQgdGhlIGxpc3Qgb2YgZmlsZXMgc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBnaXZlbiBwYXRoLiAqL1xuICAgIHB1YmxpYyBnZXRFeGFjdChwcmVmaXg6IHN0cmluZywgZmlsdGVyPzogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbik6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgbGV0IGZvbGRlciA9IHRoaXMudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHByZWZpeCB8fCBcIi9cIik7XG4gICAgICAgIGlmICghZm9sZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gRm9sZGVySW5kZXguRU1QVFlfU0VUO1xuICAgICAgICB9IGVsc2UgaWYgKGZvbGRlciBpbnN0YW5jZW9mIFRGb2xkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZm9sZGVyLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyKGZpbGUucGF0aCkpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgZWxlbWVudHMuYWRkKGZpbGUucGF0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQocHJlZml4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZvbGRlckluZGV4LkVNUFRZX1NFVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBwYXRoIGV4aXN0cyBpbiB0aGUgaW5kZXguICovXG4gICAgcHVibGljIHBhdGhFeGlzdHMocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChwYXRoIHx8IFwiL1wiKSAhPSBudWxsO1xuICAgIH1cblxuICAgIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBmb2xkZXIgZXhpc3RzIGluIHRoZSBpbmRleC4gKi9cbiAgICBwdWJsaWMgZm9sZGVyRXhpc3RzKGZvbGRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChmb2xkZXIgfHwgXCIvXCIpIGluc3RhbmNlb2YgVEZvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2UgdGhlIGluLW1lbW9yeSBwcmVmaXggaW5kZXggdG8gY29udmVydCBhIHJlbGF0aXZlIHBhdGggdG8gYW4gYWJzb2x1dGUgb25lLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNvbHZlUmVsYXRpdmUocGF0aDogc3RyaW5nLCBvcmlnaW4/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIW9yaWdpbikgcmV0dXJuIHBhdGg7XG4gICAgICAgIGVsc2UgaWYgKHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHJldHVybiBwYXRoLnN1YnN0cmluZygxKTtcblxuICAgICAgICBsZXQgcmVsYXRpdmVQYXRoID0gZ2V0UGFyZW50Rm9sZGVyKG9yaWdpbikgKyBcIi9cIiArIHBhdGg7XG4gICAgICAgIGlmICh0aGlzLnBhdGhFeGlzdHMocmVsYXRpdmVQYXRoKSkgcmV0dXJuIHJlbGF0aXZlUGF0aDtcbiAgICAgICAgZWxzZSByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlICp3YWxrKGZvbGRlcjogVEZvbGRlciwgZmlsdGVyPzogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbik6IEdlbmVyYXRvcjxzdHJpbmc+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZvbGRlci5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGZpbGUgaW5zdGFuY2VvZiBURm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgeWllbGQqIHRoaXMud2FsayhmaWxlLCBmaWx0ZXIpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIgPyBmaWx0ZXIoZmlsZS5wYXRoKSA6IHRydWUpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBmaWxlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRW1wdHkgcGxhY2Vob2xkZXIgc2V0LiAqL1xuICAgIHByaXZhdGUgc3RhdGljIEVNUFRZX1NFVDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG59XG4iLCAiLyoqIFRyYWNrcyBhbiBpbnZlcnRlZCBpbmRleCBvZiB2YWx1ZSAtPiBzZXRcXDxpZHNcXD4uICovXG5leHBvcnQgY2xhc3MgSW52ZXJ0ZWRJbmRleDxWPiB7XG4gICAgcHJpdmF0ZSBpbnZlcnRlZDogTWFwPFYsIFNldDxzdHJpbmc+PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbnZlcnRlZCA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRoZSBrZXkgdG8gdGhlIGdpdmVuIHZhbHVlcy4gKi9cbiAgICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZXM6IEl0ZXJhYmxlPFY+KSB7XG4gICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmludmVydGVkLmhhcyh2YWx1ZSkpIHRoaXMuaW52ZXJ0ZWQuc2V0KHZhbHVlLCBuZXcgU2V0KCkpO1xuICAgICAgICAgICAgdGhpcy5pbnZlcnRlZC5nZXQodmFsdWUpIS5hZGQoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZXQgYWxsIGtleXMgdGhhdCBtYXAgdG8gdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIHB1YmxpYyBnZXQodmFsdWU6IFYpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmludmVydGVkLmdldCh2YWx1ZSkgPz8gSW52ZXJ0ZWRJbmRleC5FTVBUWV9TRVQ7XG4gICAgfVxuXG4gICAgLyoqIERlbGV0ZSBhIGtleSBmcm9tIHRoZSBzZXQgb2YgYXNzb2NpYXRlZCB2YWx1ZXMuICovXG4gICAgcHVibGljIGRlbGV0ZShrZXk6IHN0cmluZywgdmFsdWVzOiBJdGVyYWJsZTxWPikge1xuICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNldCA9IHRoaXMuaW52ZXJ0ZWQuZ2V0KHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChzZXQpIHtcbiAgICAgICAgICAgICAgICBzZXQuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZXQgJiYgc2V0LnNpemUgPT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52ZXJ0ZWQuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5pbnZlcnRlZC5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIEVNUFRZX1NFVDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG59XG4iLCAiXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGbGF0UXVldWUge1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaWRzID0gW107XG4gICAgICAgIHRoaXMudmFsdWVzID0gW107XG4gICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAwO1xuICAgIH1cblxuICAgIHB1c2goaWQsIHZhbHVlKSB7XG4gICAgICAgIGxldCBwb3MgPSB0aGlzLmxlbmd0aCsrO1xuXG4gICAgICAgIHdoaWxlIChwb3MgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSAocG9zIC0gMSkgPj4gMTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudFZhbHVlID0gdGhpcy52YWx1ZXNbcGFyZW50XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+PSBwYXJlbnRWYWx1ZSkgYnJlYWs7XG4gICAgICAgICAgICB0aGlzLmlkc1twb3NdID0gdGhpcy5pZHNbcGFyZW50XTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW3Bvc10gPSBwYXJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHBvcyA9IHBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaWRzW3Bvc10gPSBpZDtcbiAgICAgICAgdGhpcy52YWx1ZXNbcG9zXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHBvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMuaWRzWzBdO1xuICAgICAgICB0aGlzLmxlbmd0aC0tO1xuXG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZHNbMF0gPSB0aGlzLmlkc1t0aGlzLmxlbmd0aF07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVzWzBdID0gdGhpcy52YWx1ZXNbdGhpcy5sZW5ndGhdO1xuICAgICAgICAgICAgY29uc3QgaGFsZkxlbmd0aCA9IHRoaXMubGVuZ3RoID4+IDE7XG4gICAgICAgICAgICBsZXQgcG9zID0gMDtcblxuICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGhhbGZMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IChwb3MgPDwgMSkgKyAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gbGVmdCArIDE7XG4gICAgICAgICAgICAgICAgbGV0IGJlc3RJbmRleCA9IHRoaXMuaWRzW2xlZnRdO1xuICAgICAgICAgICAgICAgIGxldCBiZXN0VmFsdWUgPSB0aGlzLnZhbHVlc1tsZWZ0XTtcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodFZhbHVlID0gdGhpcy52YWx1ZXNbcmlnaHRdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJpZ2h0IDwgdGhpcy5sZW5ndGggJiYgcmlnaHRWYWx1ZSA8IGJlc3RWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RJbmRleCA9IHRoaXMuaWRzW3JpZ2h0XTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFZhbHVlID0gcmlnaHRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RWYWx1ZSA+PSB2YWx1ZSkgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlkc1twb3NdID0gYmVzdEluZGV4O1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVzW3Bvc10gPSBiZXN0VmFsdWU7XG4gICAgICAgICAgICAgICAgcG9zID0gbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pZHNbcG9zXSA9IGlkO1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcG9zXSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvcDtcbiAgICB9XG5cbiAgICBwZWVrKCkge1xuICAgICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmlkc1swXTtcbiAgICB9XG5cbiAgICBwZWVrVmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzWzBdO1xuICAgIH1cblxuICAgIHNocmluaygpIHtcbiAgICAgICAgdGhpcy5pZHMubGVuZ3RoID0gdGhpcy52YWx1ZXMubGVuZ3RoID0gdGhpcy5sZW5ndGg7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IEJUcmVlIGZyb20gXCJzb3J0ZWQtYnRyZWVcIjtcblxuLyoqIEdlbmVyYWwgYWJzdHJhY3Rpb24gZm9yIGFsbCBmaWVsZCBpbmRpY2VzOyBzb21lIG1heSBiZSBvcHRpbWl6ZWQgZm9yIHNvbWUgdHlwZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkSW5kZXgge1xuICAgIC8vIFRPRE86IENoYW5nZSBhbGwoKSBhbmQgZXF1YWxzKCkgdG8gcmV0dXJuIEZpbHRlcjxzdHJpbmc+IGluc3RlYWQgZm9yIHBlcmZvcm1hbmNlIG9uIHNvbWUgaW5kZXggdHlwZXMuXG5cbiAgICAvKiogQWRkIGFuIChvYmplY3QsIHZhbHVlKSBwYWlyaW5nIHRvIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIGFkZChpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQ7XG5cbiAgICAvKiogRGVsZXRlIGFuIChvYmplY3QsIHZhbHVlKSBwYWlyaW5nIGZyb20gdGhlIGNvbGxlY3Rpb24uICovXG4gICAgZGVsZXRlKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHBhZ2VzIGluIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIGFsbCgpOiBTZXQ8c3RyaW5nPjtcblxuICAgIC8qKiBGb3IgaW5kaWNlcyB3aGljaCBzdXBwb3J0IGZhc3QgdmFsdWUgbG9va3VwcywgcmV0dXJucyB0aGUgc2V0IG9mIGFsbCBkb2N1bWVudHMgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgZXF1YWxzKHZhbHVlOiBMaXRlcmFsKTogU2V0PHN0cmluZz4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBGaWVsZCBpbmRleCBmb3IgYW55IGZpZWxkIHdoaWNoIGlzIGFsd2F5cyBvciBhbG1vc3QgYWx3YXlzIHByZXNlbnQgKCRyZXZpc2lvbiwgJHR5cGVzKS4gKi9cbmV4cG9ydCBjbGFzcyBFdmVyeXRoaW5nRmllbGRJbmRleCBpbXBsZW1lbnRzIEZpZWxkSW5kZXgge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgYWxsOiAoKSA9PiBTZXQ8c3RyaW5nPikge31cblxuICAgIHB1YmxpYyBhZGQoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHt9XG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG4vKiogU3BlY2lhbGl6ZWQgZmllbGQgaW5kZXggZm9yIElEcyB3aGljaCBrbm93cyB0byBkaXJlY3RseSBqdXN0IHJldHVybiB0aGUgSUQuICovXG5leHBvcnQgY2xhc3MgSWRGaWVsZEluZGV4IGltcGxlbWVudHMgRmllbGRJbmRleCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBhbGw6ICgpID0+IFNldDxzdHJpbmc+LCBwdWJsaWMgbG9va3VwOiAoaWQ6IHN0cmluZykgPT4gYm9vbGVhbikge31cblxuICAgIHB1YmxpYyBhZGQoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHt9XG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghTGl0ZXJhbHMuaXNTdHJpbmcodmFsdWUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLmxvb2t1cCh2YWx1ZSBhcyBzdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNldChbdmFsdWUgYXMgc3RyaW5nXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogRGVmYXVsdCBmaWVsZCBpbmRleCB3aGljaCB0cmFja3MgZmllbGQgbG9jYXRpb25zIHVzaW5nIGEgc2V0LiAqL1xuZXhwb3J0IGNsYXNzIFNldEZpZWxkSW5kZXggaW1wbGVtZW50cyBGaWVsZEluZGV4IHtcbiAgICAvKiogVGhlIElEIG9mIGV2ZXJ5IG9iamVjdCB0aGF0IHRoaXMgZmllbGQgaXMgcHJlc2VudCBvbi4gKi9cbiAgICBwcml2YXRlIHByZXNlbnQ6IFNldDxzdHJpbmc+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnByZXNlbnQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhbiAob2JqZWN0LCB2YWx1ZSkgcGFpcmluZyB0byB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwdWJsaWMgYWRkKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc2VudC5hZGQoaWQpO1xuICAgIH1cblxuICAgIC8qKiBEZWxldGUgYW4gKG9iamVjdCwgdmFsdWUpIHBhaXJpbmcgZnJvbSB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwdWJsaWMgZGVsZXRlKGlkOiBzdHJpbmcsIHZhbHVlOiBMaXRlcmFsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJlc2VudC5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHBhZ2VzIGluIHdoaWNoIHRoZSBmaWVsZCBleGlzdHMgYXQgYWxsIChldmVuIGlmIHVuZGVmaW5lZCkuICovXG4gICAgcHVibGljIGFsbCgpOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXNlbnQ7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhbGwgcGFnZXMgd2l0aCBhIHZhbHVlIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGdpdmVuIHZhbHVlLiAqL1xuICAgIHB1YmxpYyBlcXVhbHModmFsdWU6IExpdGVyYWwpOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG4vKiogRmllbGQgaW5kZXggd2hpY2ggdHJhY2tzIGZpZWxkIGxvY2F0aW9ucyB1c2luZyBib3RoIGFuIG92ZXJhbGwgc2V0IGFuZCBhIEJUcmVlIG9mIHZhbHVlcy4gKi9cbmV4cG9ydCBjbGFzcyBCVHJlZUZpZWxkSW5kZXggaW1wbGVtZW50cyBGaWVsZEluZGV4IHtcbiAgICAvKiogVGhlIElEIG9mIGV2ZXJ5IG9iamVjdCB0aGF0IHRoaXMgZmllbGQgaXMgcHJlc2VudCBvbi4gKi9cbiAgICBwcml2YXRlIHByZXNlbnQ6IFNldDxzdHJpbmc+O1xuICAgIC8qKiBNYXBzICh2YWx1ZSwgc2V0IG9mIHBhZ2VzIGNvbnRhaW5pbmcgdGhhdCB2YWx1ZSkuICovXG4gICAgcHJpdmF0ZSB2YWx1ZXM6IEJUcmVlPExpdGVyYWwsIFNldDxzdHJpbmc+PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5wcmVzZW50ID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IG5ldyBCVHJlZShbXSwgKGEsIGIpID0+IExpdGVyYWxzLmNvbXBhcmUoYSwgYikpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYW4gKG9iamVjdCwgdmFsdWUpIHBhaXJpbmcgdG8gdGhlIGNvbGxlY3Rpb24uICovXG4gICAgcHVibGljIGFkZChpZDogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXNlbnQuYWRkKGlkKTtcblxuICAgICAgICB0aGlzLnZhbHVlcy5zZXRJZk5vdFByZXNlbnQodmFsdWUsIG5ldyBTZXQoKSk7XG4gICAgICAgIHRoaXMudmFsdWVzLmdldCh2YWx1ZSkhLmFkZChpZCk7XG4gICAgfVxuXG4gICAgLyoqIERlbGV0ZSBhbiAob2JqZWN0LCB2YWx1ZSkgcGFpcmluZyBmcm9tIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHB1YmxpYyBkZWxldGUoaWQ6IHN0cmluZywgdmFsdWU6IExpdGVyYWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVzZW50LmRlbGV0ZShpZCk7XG5cbiAgICAgICAgY29uc3Qgc2V0ID0gdGhpcy52YWx1ZXMuZ2V0KHZhbHVlKTtcbiAgICAgICAgc2V0Py5kZWxldGUoaWQpO1xuXG4gICAgICAgIGlmIChzZXQgPT0gbnVsbCB8fCBzZXQuc2l6ZSA9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiBhIHNldCBvZiBhbGwgcGFnZXMgaW4gd2hpY2ggdGhlIGZpZWxkIGV4aXN0cyBhdCBhbGwgKGV2ZW4gaWYgdW5kZWZpbmVkKS4gKi9cbiAgICBwdWJsaWMgYWxsKCk6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2VudDtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJuIGFsbCBwYWdlcyB3aXRoIGEgdmFsdWUgZXhhY3RseSBlcXVhbCB0byB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gICAgcHVibGljIGVxdWFscyh2YWx1ZTogTGl0ZXJhbCk6IFNldDxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzLmdldCh2YWx1ZSwgQlRyZWVGaWVsZEluZGV4LkVNUFRZX1NFVCk7XG4gICAgfVxuXG4gICAgLyoqIFBsYWNlaG9sZGVyIGVtcHR5IHNldC4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBFTVBUWV9TRVQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbn1cbiIsICIvKiogUHJvdmlkZXMgYSBnbG9iYWwgZGlzcGF0Y2ggdGFibGUgZm9yIGV2YWx1YXRpbmcgYmluYXJ5IG9wZXJhdG9ycywgaW5jbHVkaW5nIGNvbXBhcmlzb24uICovXG5pbXBvcnQgeyBMaXRlcmFsUmVwciwgTGl0ZXJhbFR5cGUsIExpdGVyYWwsIExpdGVyYWxzLCBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplRHVyYXRpb24gfSBmcm9tIFwidXRpbHMvbm9ybWFsaXplcnNcIjtcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gXCJhcGkvcmVzdWx0XCI7XG5pbXBvcnQgeyBCaW5hcnlPcCwgRXhwcmVzc2lvbnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9leHByZXNzaW9uXCI7XG5pbXBvcnQgdHlwZSB7IEV2YWx1YXRvciB9IGZyb20gXCJleHByZXNzaW9uL2V2YWx1YXRvclwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUsIER1cmF0aW9uIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuaW1wb3J0IHsgRmllbGRiZWFyaW5ncyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbi8qKiBBIGxpdGVyYWwgdHlwZSBvciBhIGNhdGNoLWFsbCAnKicuICovXG5leHBvcnQgdHlwZSBMaXRlcmFsVHlwZU9yQWxsID0gTGl0ZXJhbFR5cGUgfCBcIipcIjtcblxuLyoqIE1hcHMgYSBsaXRlcmFsIHR5cGUgb3IgdGhlIGNhdGNoLWFsbCAnKicuICovXG5leHBvcnQgdHlwZSBMaXRlcmFsUmVwckFsbDxUIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4gPSBUIGV4dGVuZHMgXCIqXCJcbiAgICA/IExpdGVyYWxcbiAgICA6IFQgZXh0ZW5kcyBMaXRlcmFsVHlwZVxuICAgID8gTGl0ZXJhbFJlcHI8VD5cbiAgICA6IGFueTtcblxuLyoqIEFuIGltcGxlbWVudGF0aW9uIGZvciBhIGJpbmFyeSBvcGVyYXRvci4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wSW1wbDxBIGV4dGVuZHMgTGl0ZXJhbCwgQiBleHRlbmRzIExpdGVyYWw+ID0gKGZpcnN0OiBBLCBzZWNvbmQ6IEIsIGN0eDogRXZhbHVhdG9yKSA9PiBMaXRlcmFsO1xuLyoqIEJpbmFyeSBvcGVyYXRvciB3aGljaCBjYW4gZmFpbCBhbmQgcHJvZHVjZSBhbiBlcnJvci4gKi9cbmV4cG9ydCB0eXBlIEJpbmFyeU9wUmVzdWx0SW1wbDxBIGV4dGVuZHMgTGl0ZXJhbCwgQiBleHRlbmRzIExpdGVyYWw+ID0gKFxuICAgIGZpcnN0OiBBLFxuICAgIHNlY29uZDogQixcbiAgICBjdHg6IEV2YWx1YXRvclxuKSA9PiBSZXN1bHQ8TGl0ZXJhbCwgc3RyaW5nPjtcbi8qKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBhIGNvbXBhcmF0b3IgKHJldHVybmluZyBhIG51bWJlcikgd2hpY2ggdGhlbiBhdXRvbWF0aWNhbGx5IGRlZmluZXMgYWxsIG9mIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycy4gKi9cbmV4cG9ydCB0eXBlIENvbXBhcmVJbXBsPFQgZXh0ZW5kcyBMaXRlcmFsPiA9IChmaXJzdDogVCwgc2Vjb25kOiBULCBjdHg6IEV2YWx1YXRvcikgPT4gbnVtYmVyO1xuXG4vKiogUHJvdmlkZXMgaW1wbGVtZW50YXRpb25zIGZvciBiaW5hcnkgb3BlcmF0b3JzIG9uIHR3byB0eXBlcyB1c2luZyBhIHJlZ2lzdHJ5LiAqL1xuZXhwb3J0IGNsYXNzIEJpbmFyeU9wSGFuZGxlciB7XG4gICAgcHJpdmF0ZSBtYXA6IE1hcDxzdHJpbmcsIEJpbmFyeU9wUmVzdWx0SW1wbDxhbnksIGFueT4+O1xuICAgIHByaXZhdGUgaGFuZGxlRGVmYXVsdE51bGxzOiBib29sZWFuO1xuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmluYXJ5T3BIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVEZWZhdWx0TnVsbHMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXI8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgbGVmdDogVCxcbiAgICAgICAgb3A6IEJpbmFyeU9wLFxuICAgICAgICByaWdodDogVSxcbiAgICAgICAgZnVuYzogQmluYXJ5T3BJbXBsPExpdGVyYWxSZXByQWxsPFQ+LCBMaXRlcmFsUmVwckFsbDxVPj5cbiAgICApOiBCaW5hcnlPcEhhbmRsZXIge1xuICAgICAgICB0aGlzLm1hcC5zZXQoQmluYXJ5T3BIYW5kbGVyLnJlcHIob3AsIGxlZnQsIHJpZ2h0KSwgKGEsIGIsIGMpID0+IFJlc3VsdC5zdWNjZXNzKGZ1bmMoYSwgYiwgYykpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyUmVzdWx0PFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBVIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGxlZnQ6IFQsXG4gICAgICAgIG9wOiBCaW5hcnlPcCxcbiAgICAgICAgcmlnaHQ6IFUsXG4gICAgICAgIGZ1bmM6IEJpbmFyeU9wUmVzdWx0SW1wbDxMaXRlcmFsUmVwckFsbDxUPiwgTGl0ZXJhbFJlcHJBbGw8VT4+XG4gICAgKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgdGhpcy5tYXAuc2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBsZWZ0LCByaWdodCksIGZ1bmMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJDb21tPFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBVIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGxlZnQ6IFQsXG4gICAgICAgIG9wOiBCaW5hcnlPcCxcbiAgICAgICAgcmlnaHQ6IFUsXG4gICAgICAgIGZ1bmM6IEJpbmFyeU9wSW1wbDxMaXRlcmFsUmVwckFsbDxUPiwgTGl0ZXJhbFJlcHJBbGw8VT4+XG4gICAgKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIobGVmdCwgb3AsIHJpZ2h0LCBmdW5jKS5yZWdpc3RlcihyaWdodCwgb3AsIGxlZnQsIChhLCBiLCBjdHgpID0+IGZ1bmMoYiwgYSwgY3R4KSk7XG4gICAgfVxuXG4gICAgLyoqIElmIGVuYWJsZWQsIGFsbCBudWxsIChvcCkgbnVsbCBvcGVyYXRpb25zIHByb2R1Y2UgbnVsbC4gKi9cbiAgICBwdWJsaWMgd2l0aERlZmF1bHROdWxsSGFuZGxpbmcoKTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEZWZhdWx0TnVsbHMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogSW1wbGVtZW50IGEgY29tcGFyaXNvbiBmdW5jdGlvbi4gKi9cbiAgICBwdWJsaWMgY29tcGFyZTxUIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4odHlwZTogVCwgY29tcGFyZTogQ29tcGFyZUltcGw8TGl0ZXJhbFJlcHJBbGw8VD4+KTogQmluYXJ5T3BIYW5kbGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIodHlwZSwgXCI8XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSA8IDApXG4gICAgICAgICAgICAucmVnaXN0ZXIodHlwZSwgXCI8PVwiLCB0eXBlLCAoYSwgYiwgY3R4KSA9PiBjb21wYXJlKGEsIGIsIGN0eCkgPD0gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIj5cIiwgdHlwZSwgKGEsIGIsIGN0eCkgPT4gY29tcGFyZShhLCBiLCBjdHgpID4gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIj49XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSA+PSAwKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKHR5cGUsIFwiPVwiLCB0eXBlLCAoYSwgYiwgY3R4KSA9PiBjb21wYXJlKGEsIGIsIGN0eCkgPT0gMClcbiAgICAgICAgICAgIC5yZWdpc3Rlcih0eXBlLCBcIiE9XCIsIHR5cGUsIChhLCBiLCBjdHgpID0+IGNvbXBhcmUoYSwgYiwgY3R4KSAhPSAwKTtcbiAgICB9XG5cbiAgICAvKiogQXR0ZW1wdCB0byBldmFsdWF0ZSB0aGUgZ2l2ZW4gYmluYXJ5IG9wZXJhdG9yIG9uIHRoZSB0d28gbGl0ZXJhbCBmaWVsZHMuICovXG4gICAgcHVibGljIGV2YWx1YXRlKG9wOiBCaW5hcnlPcCwgbGVmdDogTGl0ZXJhbCwgcmlnaHQ6IExpdGVyYWwsIGN0eDogRXZhbHVhdG9yKTogUmVzdWx0PExpdGVyYWwsIHN0cmluZz4ge1xuICAgICAgICBsZXQgbGVmdFR5cGUgPSBMaXRlcmFscy50eXBlT2YobGVmdCk7XG4gICAgICAgIGxldCByaWdodFR5cGUgPSBMaXRlcmFscy50eXBlT2YocmlnaHQpO1xuICAgICAgICBpZiAoIWxlZnRUeXBlKSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYFVucmVjb2duaXplZCB2YWx1ZSAnJHtsZWZ0fSdgKTtcbiAgICAgICAgZWxzZSBpZiAoIXJpZ2h0VHlwZSkgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBVbnJlY29nbml6ZWQgdmFsdWUgJyR7cmlnaHR9J2ApO1xuXG4gICAgICAgIC8vIFF1aWNrIGNhc2U6IGhhbmRsZSBudWxsIChvcCkgbnVsbCBieSBkZWZhdWx0IGlmIGVuYWJsZWQuXG4gICAgICAgIGlmICh0aGlzLmhhbmRsZURlZmF1bHROdWxscyAmJiBsZWZ0VHlwZSA9PT0gXCJudWxsXCIgJiYgcmlnaHRUeXBlID09PSBcIm51bGxcIikgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xuXG4gICAgICAgIGxldCBoYW5kbGVyID0gdGhpcy5tYXAuZ2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBsZWZ0VHlwZSwgcmlnaHRUeXBlKSk7XG4gICAgICAgIGlmIChoYW5kbGVyKSByZXR1cm4gaGFuZGxlcihsZWZ0LCByaWdodCwgY3R4KTtcblxuICAgICAgICAvLyBSaWdodC0nKicgZmFsbGJhY2s6XG4gICAgICAgIGxldCBoYW5kbGVyMiA9IHRoaXMubWFwLmdldChCaW5hcnlPcEhhbmRsZXIucmVwcihvcCwgbGVmdFR5cGUsIFwiKlwiKSk7XG4gICAgICAgIGlmIChoYW5kbGVyMikgcmV0dXJuIGhhbmRsZXIyKGxlZnQsIHJpZ2h0LCBjdHgpO1xuXG4gICAgICAgIC8vIExlZnQtJyonIGZhbGxiYWNrOlxuICAgICAgICBsZXQgaGFuZGxlcjMgPSB0aGlzLm1hcC5nZXQoQmluYXJ5T3BIYW5kbGVyLnJlcHIob3AsIFwiKlwiLCByaWdodFR5cGUpKTtcbiAgICAgICAgaWYgKGhhbmRsZXIzKSByZXR1cm4gaGFuZGxlcjMobGVmdCwgcmlnaHQsIGN0eCk7XG5cbiAgICAgICAgLy8gRG91YmxlICcqJyBmYWxsYmFjay5cbiAgICAgICAgbGV0IGhhbmRsZXI0ID0gdGhpcy5tYXAuZ2V0KEJpbmFyeU9wSGFuZGxlci5yZXByKG9wLCBcIipcIiwgXCIqXCIpKTtcbiAgICAgICAgaWYgKGhhbmRsZXI0KSByZXR1cm4gaGFuZGxlcjQobGVmdCwgcmlnaHQsIGN0eCk7XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGBObyBpbXBsZW1lbnRhdGlvbiBmb3VuZCBmb3IgJyR7bGVmdFR5cGV9ICR7b3B9ICR7cmlnaHRUeXBlfSdgKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiB0cmlwbGV0IGZvciB1bmlxdWUgbG9va3VwIGluIHRoZSBtYXAuICovXG4gICAgcHVibGljIHN0YXRpYyByZXByKG9wOiBCaW5hcnlPcCwgbGVmdDogTGl0ZXJhbFR5cGVPckFsbCwgcmlnaHQ6IExpdGVyYWxUeXBlT3JBbGwpIHtcbiAgICAgICAgcmV0dXJuIGAke2xlZnR9LCR7b3B9LCR7cmlnaHR9YDtcbiAgICB9XG59XG5cbi8qKiBDb25maWd1cmUgYW5kIGNyZWF0ZSBhIGJpbmFyeSBPUCBoYW5kbGVyIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmluYXJ5T3BzKGxpbmtOb3JtYWxpemVyOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBCaW5hcnlPcEhhbmRsZXIge1xuICAgIHJldHVybiAoXG4gICAgICAgIEJpbmFyeU9wSGFuZGxlci5jcmVhdGUoKVxuICAgICAgICAgICAgLmNvbXBhcmUoXCIqXCIsIChhLCBiKSA9PiBMaXRlcmFscy5jb21wYXJlKGEsIGIsIGxpbmtOb3JtYWxpemVyKSlcbiAgICAgICAgICAgIC8vIEdsb2JhbCBib29sZWFuIG9wZXJhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCIqXCIsIFwiJlwiLCBcIipcIiwgKGEsIGIpID0+IExpdGVyYWxzLmlzVHJ1dGh5KGEpICYmIExpdGVyYWxzLmlzVHJ1dGh5KGIpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiKlwiLCBcInxcIiwgXCIqXCIsIChhLCBiKSA9PiBMaXRlcmFscy5pc1RydXRoeShhKSB8fCBMaXRlcmFscy5pc1RydXRoeShiKSlcbiAgICAgICAgICAgIC8vIE51bWJlciBpbXBsZW1lbnRhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJudW1iZXJcIiwgXCIrXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBhICsgYilcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm51bWJlclwiLCBcIi1cIiwgXCJudW1iZXJcIiwgKGEsIGIpID0+IGEgLSBiKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwibnVtYmVyXCIsIFwiKlwiLCBcIm51bWJlclwiLCAoYSwgYikgPT4gYSAqIGIpXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJudW1iZXJcIiwgXCIvXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBhIC8gYilcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm51bWJlclwiLCBcIiVcIiwgXCJudW1iZXJcIiwgKGEsIGIpID0+IGEgJSBiKVxuICAgICAgICAgICAgLy8gU3RyaW5nIGltcGxlbWVudGF0aW9ucy5cbiAgICAgICAgICAgIC5yZWdpc3RlcihcInN0cmluZ1wiLCBcIitcIiwgXCIqXCIsIChhLCBiLCBjdHgpID0+IGEgKyBMaXRlcmFscy50b1N0cmluZyhiLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIipcIiwgXCIrXCIsIFwic3RyaW5nXCIsIChhLCBiLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGEsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpICsgYilcbiAgICAgICAgICAgIC5yZWdpc3RlckNvbW0oXCJzdHJpbmdcIiwgXCIqXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiAoYiA8IDAgPyBcIlwiIDogYS5yZXBlYXQoYikpKVxuICAgICAgICAgICAgLy8gRGF0ZSBPcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZGF0ZVwiLCBcIi1cIiwgXCJkYXRlXCIsIChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUR1cmF0aW9uKFxuICAgICAgICAgICAgICAgICAgICBhLmRpZmYoYiwgW1wieWVhcnNcIiwgXCJtb250aHNcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiLCBcIm1pbGxpc2Vjb25kc1wiXSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcImRhdGVcIiwgXCItXCIsIFwiZHVyYXRpb25cIiwgKGEsIGIpID0+IGEubWludXMoYikpXG4gICAgICAgICAgICAucmVnaXN0ZXJDb21tKFwiZGF0ZVwiLCBcIitcIiwgXCJkdXJhdGlvblwiLCAoYSwgYikgPT4gYS5wbHVzKGIpKVxuICAgICAgICAgICAgLy8gRHVyYXRpb24gT3BlcmF0aW9ucy5cbiAgICAgICAgICAgIC5yZWdpc3RlcihcImR1cmF0aW9uXCIsIFwiK1wiLCBcImR1cmF0aW9uXCIsIChhLCBiKSA9PiBub3JtYWxpemVEdXJhdGlvbihhLnBsdXMoYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZHVyYXRpb25cIiwgXCItXCIsIFwiZHVyYXRpb25cIiwgKGEsIGIpID0+IG5vcm1hbGl6ZUR1cmF0aW9uKGEubWludXMoYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZHVyYXRpb25cIiwgXCIvXCIsIFwibnVtYmVyXCIsIChhLCBiKSA9PiBub3JtYWxpemVEdXJhdGlvbihhLm1hcFVuaXRzKCh4KSA9PiB4IC8gYikpKVxuICAgICAgICAgICAgLnJlZ2lzdGVyQ29tbShcImR1cmF0aW9uXCIsIFwiKlwiLCBcIm51bWJlclwiLCAoYSwgYikgPT4gbm9ybWFsaXplRHVyYXRpb24oYS5tYXBVbml0cygoeCkgPT4geCAqIGIpKSlcbiAgICAgICAgICAgIC8vIEFycmF5IG9wZXJhdGlvbnMuXG4gICAgICAgICAgICAucmVnaXN0ZXIoXCJhcnJheVwiLCBcIitcIiwgXCJhcnJheVwiLCAoYSwgYikgPT4gKFtdIGFzIExpdGVyYWxbXSkuY29uY2F0KGEpLmNvbmNhdChiKSlcbiAgICAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwib2JqZWN0XCIsIFwiK1wiLCBcIm9iamVjdFwiLCAoYSwgYikgPT4gT2JqZWN0LmFzc2lnbih7fSwgYSwgYikpXG4gICAgICAgICAgICAvLyBJbmRleCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiYXJyYXlcIiwgXCJpbmRleFwiLCBcIm51bWJlclwiLCAoYXJyLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWR4IDwgMCB8fCBpZHggPj0gYXJyLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycltpZHhdO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlclJlc3VsdChcImFycmF5XCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgKGFyciwga2V5LCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKFtdKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBhcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBjb250ZXh0LmV2YWx1YXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbnMuaW5kZXgoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtZW50KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkLnN1Y2Nlc3NmdWwpIHJldHVybiBSZXN1bHQuZmFpbHVyZShyZXNvbHZlZC5lcnJvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzb2x2ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm9iamVjdFwiLCBcImluZGV4XCIsIFwic3RyaW5nXCIsIChvYmosIGtleSkgPT4gRmllbGRiZWFyaW5ncy5nZXQob2JqLCBrZXkpID8/IG51bGwpXG4gICAgICAgICAgICAucmVnaXN0ZXJSZXN1bHQoXCJsaW5rXCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgaW5kZXhMaW5rKVxuICAgICAgICAgICAgLnJlZ2lzdGVyUmVzdWx0KFwibGlua1wiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIGluZGV4TGluaylcbiAgICAgICAgICAgIC5yZWdpc3RlcihcIm9iamVjdFwiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIChvYmosIGtleSkgPT4gb2JqW2tleV0gPz8gbnVsbClcbiAgICAgICAgICAgIC5yZWdpc3RlcihcInN0cmluZ1wiLCBcImluZGV4XCIsIFwibnVtYmVyXCIsIChzdHIsIGlkeCkgPT4gKGlkeCA8IDAgfHwgaWR4ID49IHN0ci5sZW5ndGggPyBudWxsIDogc3RyW2lkeF0pKVxuICAgICAgICAgICAgLnJlZ2lzdGVyKFwiZGF0ZVwiLCBcImluZGV4XCIsIFwic3RyaW5nXCIsIGluZGV4RGF0ZSlcbiAgICAgICAgICAgIC5yZWdpc3RlcihcImR1cmF0aW9uXCIsIFwiaW5kZXhcIiwgXCJzdHJpbmdcIiwgaW5kZXhEdXJhdGlvbilcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdE51bGxIYW5kbGluZygpXG4gICAgKTtcbn1cblxuLyoqIENvbnZlcnQgaGlnaCBsZXZlbCBzZXR0aW5ncyB0byBzZXR0aW5ncyB1c2VkIGZvciBzdHJpbmcgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1NldHRpbmdzKHNldHRpbmdzOiBTZXR0aW5ncyk6IExpdGVyYWxzLlRvU3RyaW5nU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICAgIGRhdGVGb3JtYXQ6IHNldHRpbmdzLmRlZmF1bHREYXRlRm9ybWF0LFxuICAgICAgICBkYXRlVGltZUZvcm1hdDogc2V0dGluZ3MuZGVmYXVsdERhdGVUaW1lRm9ybWF0LFxuICAgICAgICBudWxsUmVwcmVzZW50YXRpb246IHNldHRpbmdzLnJlbmRlck51bGxBcyxcbiAgICB9O1xufVxuXG4vKiogQWxsb3dzIHlvdSB0byBpbmRleCBpbnRvIGxpbmtzIHRvIGdldCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleExpbmsobGluazogTGluaywga2V5OiBzdHJpbmcgfCBudW1iZXIsIGNvbnRleHQ6IEV2YWx1YXRvcik6IFJlc3VsdDxMaXRlcmFsLCBzdHJpbmc+IHtcbiAgICBjb25zdCBvYmplY3QgPSBjb250ZXh0LmxpbmtIYW5kbGVyLnJlc29sdmUobGluayk7XG4gICAgaWYgKCFvYmplY3QpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhudWxsKTtcblxuICAgIHJldHVybiBjb250ZXh0LmV2YWx1YXRlKEV4cHJlc3Npb25zLmluZGV4KEV4cHJlc3Npb25zLmxpdGVyYWwob2JqZWN0KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKSk7XG59XG5cbi8qKiBJbmRleCBpbnRvIGEgZGF0ZSwgcHJvZHVjaW5nIHZhcmlvdXMgdXNlZnVsIGZpZWxkcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleERhdGUoZGF0ZTogRGF0ZVRpbWUsIGtleTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcInllYXJcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLnllYXI7XG4gICAgICAgIGNhc2UgXCJtb250aFwiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUubW9udGg7XG4gICAgICAgIGNhc2UgXCJkYXlcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmRheTtcbiAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmhvdXI7XG4gICAgICAgIGNhc2UgXCJtaW51dGVcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZTtcbiAgICAgICAgY2FzZSBcInNlY29uZFwiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUuc2Vjb25kO1xuICAgICAgICBjYXNlIFwibWlsbGlzZWNvbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBkYXRlLm1pbGxpc2Vjb25kO1xuICAgICAgICBjYXNlIFwid2Vla1wiOlxuICAgICAgICAgICAgcmV0dXJuIGRhdGUud2Vla051bWJlcjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqIEluZGV4IGludG8gYSBkdXJhdGlvbiwgcHJvZHVjaW5nIHZhcmlvdXMgdXNlZnVsIGZpZWxkcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleER1cmF0aW9uKGR1cjogRHVyYXRpb24sIGtleTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLnllYXJzO1xuICAgICAgICBjYXNlIFwibW9udGhzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLm1vbnRocztcbiAgICAgICAgY2FzZSBcImRheXNcIjpcbiAgICAgICAgICAgIHJldHVybiBkdXIuZGF5cztcbiAgICAgICAgY2FzZSBcImhvdXJzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLmhvdXJzO1xuICAgICAgICBjYXNlIFwibWludXRlc1wiOlxuICAgICAgICAgICAgcmV0dXJuIGR1ci5taW51dGVzO1xuICAgICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICAgICAgcmV0dXJuIGR1ci5zZWNvbmRzO1xuICAgICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgICAgICByZXR1cm4gZHVyLm1pbGxpc2Vjb25kcztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiIsICIvKiogRGVmYXVsdCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBleHByZXNzaW9uIGV2YWx1YXRvci4gKi9cblxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IExpdGVyYWxUeXBlLCBMaW5rLCBMaXRlcmFsLCBMaXRlcmFscyB9IGZyb20gXCJleHByZXNzaW9uL2xpdGVyYWxcIjtcbmltcG9ydCB7IGVzY2FwZVJlZ2V4LCBjdXJyZW50TG9jYWxlIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBMaXRlcmFsUmVwckFsbCwgTGl0ZXJhbFR5cGVPckFsbCwgc3RyaW5nU2V0dGluZ3MgfSBmcm9tIFwiZXhwcmVzc2lvbi9iaW5hcnlvcFwiO1xuaW1wb3J0IHsgRXZhbHVhdG9yIH0gZnJvbSBcImV4cHJlc3Npb24vZXZhbHVhdG9yXCI7XG5pbXBvcnQgeyBFeHByZXNzaW9ucyB9IGZyb20gXCJleHByZXNzaW9uL2V4cHJlc3Npb25cIjtcbmltcG9ydCB7IFBSSU1JVElWRVMgfSBmcm9tIFwiZXhwcmVzc2lvbi9wYXJzZXJcIjtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHdoaWNoIHRha2VzIGluIGEgZnVuY3Rpb24gY29udGV4dCBhbmQgYSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzLiBUaHJvd3MgYW4gZXJyb3IgaWYgYW5cbiAqIGludmFsaWQgbnVtYmVyL3R5cGUgb2YgYXJndW1lbnRzIGFyZSBwYXNzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uSW1wbCA9IChjb250ZXh0OiBFdmFsdWF0b3IsIC4uLnJlc3Q6IExpdGVyYWxbXSkgPT4gTGl0ZXJhbDtcbi8qKiBBIFwiYm91bmRcIiBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBoYXMgYWxyZWFkeSBoYWQgYSBmdW5jdGlvbiBjb250ZXh0IHBhc3NlZCB0byBpdC4gKi9cbmV4cG9ydCB0eXBlIEJvdW5kRnVuY3Rpb25JbXBsID0gKC4uLmFyZ3M6IExpdGVyYWxbXSkgPT4gTGl0ZXJhbDtcblxuLyoqIEEgZnVuY3Rpb24gdmFyaWFudCB1c2VkIGluIHRoZSBmdW5jdGlvbiBidWlsZGVyIHdoaWNoIGhvbGRzIHRoZSBhcmd1bWVudCB0eXBlcy4gKi9cbmludGVyZmFjZSBGdW5jdGlvblZhcmlhbnQge1xuICAgIGFyZ3M6IExpdGVyYWxUeXBlT3JBbGxbXTtcbiAgICB2YXJhcmdzOiBib29sZWFuO1xuICAgIC8qKiBUaGUgaW1wbGVtZW50aW5nIGZ1bmN0aW9uIGZvciB0aGlzIHNwZWNpZmljIHZhcmlhbnQuICovXG4gICAgaW1wbDogRnVuY3Rpb25JbXBsO1xufVxuXG4vKipcbiAqIEFsbG93cyBmb3IgdGhlIGNyZWF0aW9uIG9mIGZ1bmN0aW9ucyB0aGF0IGNoZWNrIHRoZSBudW1iZXIgYW5kIHR5cGUgb2YgdGhlaXIgYXJndW1lbnRzLCBhbmQgZGlzcGF0Y2hcbiAqIHRvIGRpZmZlcmVudCBpbXBsZW1lbmF0aW9ucyBiYXNlZCBvbiB0aGUgdHlwZXMgb2YgdGhlIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uQnVpbGRlciB7XG4gICAgdmFyaWFudHM6IEZ1bmN0aW9uVmFyaWFudFtdO1xuICAgIHZlY3Rvcml6ZWQ6IFJlY29yZDxudW1iZXIsIG51bWJlcltdPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFyaWFudHMgPSBbXTtcbiAgICAgICAgdGhpcy52ZWN0b3JpemVkID0ge307XG4gICAgfVxuXG4gICAgLyoqIEFkZCBhIGdlbmVyYWwgZnVuY3Rpb24gdmFyaWFudCB3aGljaCBhY2NlcHRzIGFueSBudW1iZXIgb2YgYXJndW1lbnRzIG9mIGFueSB0eXBlLiAqL1xuICAgIHB1YmxpYyB2YXJhcmcoaW1wbDogRnVuY3Rpb25JbXBsKTogRnVuY3Rpb25CdWlsZGVyIHtcbiAgICAgICAgdGhpcy52YXJpYW50cy5wdXNoKHsgYXJnczogW10sIHZhcmFyZ3M6IHRydWUsIGltcGwgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYSBmdW5jdGlvbiB2YXJpYW50IHdoaWNoIHRha2VzIGluIGEgc2luZ2xlIGFyZ3VtZW50LiAqL1xuICAgIHB1YmxpYyBhZGQxPFQgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgYXJnVHlwZTogVCxcbiAgICAgICAgaW1wbDogKGE6IExpdGVyYWxSZXByQWxsPFQ+LCBjb250ZXh0OiBFdmFsdWF0b3IpID0+IExpdGVyYWxcbiAgICApOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZhcmlhbnRzLnB1c2goe1xuICAgICAgICAgICAgYXJnczogW2FyZ1R5cGVdLFxuICAgICAgICAgICAgdmFyYXJnczogZmFsc2UsXG4gICAgICAgICAgICBpbXBsOiAoYywgLi4ucmVzdCkgPT4gaW1wbChyZXN0WzBdIGFzIExpdGVyYWxSZXByQWxsPFQ+LCBjKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBBZGQgYSBmdW5jdGlvbiB2YXJpYW50IHdoaWNoIHRha2VzIGluIHR3byB0eXBlZCBhcmd1bWVudHMuICovXG4gICAgcHVibGljIGFkZDI8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsPihcbiAgICAgICAgYXJnMTogVCxcbiAgICAgICAgYXJnMjogVSxcbiAgICAgICAgaW1wbDogKGE6IExpdGVyYWxSZXByQWxsPFQ+LCBiOiBMaXRlcmFsUmVwckFsbDxVPiwgY29udGV4dDogRXZhbHVhdG9yKSA9PiBMaXRlcmFsXG4gICAgKTogRnVuY3Rpb25CdWlsZGVyIHtcbiAgICAgICAgdGhpcy52YXJpYW50cy5wdXNoKHtcbiAgICAgICAgICAgIGFyZ3M6IFthcmcxLCBhcmcyXSxcbiAgICAgICAgICAgIHZhcmFyZ3M6IGZhbHNlLFxuICAgICAgICAgICAgaW1wbDogKGMsIC4uLnJlc3QpID0+IGltcGwocmVzdFswXSBhcyBMaXRlcmFsUmVwckFsbDxUPiwgcmVzdFsxXSBhcyBMaXRlcmFsUmVwckFsbDxVPiwgYyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogQWRkIGEgZnVuY3Rpb24gdmFyaWFudCB3aGljaCB0YWtlcyBpbiB0aHJlZSB0eXBlZCBhcmd1bWVudHMuICovXG4gICAgcHVibGljIGFkZDM8VCBleHRlbmRzIExpdGVyYWxUeXBlT3JBbGwsIFUgZXh0ZW5kcyBMaXRlcmFsVHlwZU9yQWxsLCBWIGV4dGVuZHMgTGl0ZXJhbFR5cGVPckFsbD4oXG4gICAgICAgIGFyZzE6IFQsXG4gICAgICAgIGFyZzI6IFUsXG4gICAgICAgIGFyZzM6IFYsXG4gICAgICAgIGltcGw6IChhOiBMaXRlcmFsUmVwckFsbDxUPiwgYjogTGl0ZXJhbFJlcHJBbGw8VT4sIGM6IExpdGVyYWxSZXByQWxsPFY+LCBjb250ZXh0OiBFdmFsdWF0b3IpID0+IExpdGVyYWxcbiAgICApOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZhcmlhbnRzLnB1c2goe1xuICAgICAgICAgICAgYXJnczogW2FyZzEsIGFyZzIsIGFyZzNdLFxuICAgICAgICAgICAgdmFyYXJnczogZmFsc2UsXG4gICAgICAgICAgICBpbXBsOiAoYywgLi4ucmVzdCkgPT5cbiAgICAgICAgICAgICAgICBpbXBsKHJlc3RbMF0gYXMgTGl0ZXJhbFJlcHJBbGw8VD4sIHJlc3RbMV0gYXMgTGl0ZXJhbFJlcHJBbGw8VT4sIHJlc3RbMl0gYXMgTGl0ZXJhbFJlcHJBbGw8Vj4sIGMpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqIEFkZCB2ZWN0b3JpemVkIHZhcmlhbnRzIHdoaWNoIGFjY2VwdCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cyBhbmQgZGVsZWdhdGUuICovXG4gICAgcHVibGljIHZlY3Rvcml6ZShudW1BcmdzOiBudW1iZXIsIHBvc2l0aW9uczogbnVtYmVyW10pOiBGdW5jdGlvbkJ1aWxkZXIge1xuICAgICAgICB0aGlzLnZlY3Rvcml6ZWRbbnVtQXJnc10gPSBwb3NpdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm4gYSBmdW5jdGlvbiB3aGljaCBjaGVja3MgdGhlIG51bWJlciBhbmQgdHlwZSBvZiBhcmd1bWVudHMsIHBhc3NpbmcgdGhlbSBvbiB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgdmFyaWFudC4gKi9cbiAgICBwdWJsaWMgYnVpbGQoKTogRnVuY3Rpb25JbXBsIHtcbiAgICAgICAgbGV0IHNlbGY6IEZ1bmN0aW9uSW1wbCA9IChjb250ZXh0OiBFdmFsdWF0b3IsIC4uLmFyZ3M6IExpdGVyYWxbXSkgPT4ge1xuICAgICAgICAgICAgbGV0IHR5cGVzOiBMaXRlcmFsVHlwZVtdID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBhcmcgb2YgYXJncykge1xuICAgICAgICAgICAgICAgIGxldCBhcmdUeXBlID0gTGl0ZXJhbHMudHlwZU9mKGFyZyk7XG4gICAgICAgICAgICAgICAgaWYgKCFhcmdUeXBlKSB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemVkIGFyZ3VtZW50IHR5cGUgZm9yIGFyZ3VtZW50ICcke2FyZ30nYCk7XG4gICAgICAgICAgICAgICAgdHlwZXMucHVzaChhcmdUeXBlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSGFuZGxlIHZlY3Rvcml6YXRpb24sIHBvc3NpYmx5IGluIG11bHRpcGxlIGZpZWxkcy5cbiAgICAgICAgICAgIGlmICh0aGlzLnZlY3Rvcml6ZWRbdHlwZXMubGVuZ3RoXSkge1xuICAgICAgICAgICAgICAgIGxldCB2ZWN0b3JpemVkUG9zaXRpb25zID0gdGhpcy52ZWN0b3JpemVkW3R5cGVzLmxlbmd0aF0uZmlsdGVyKChrKSA9PiB0eXBlc1trXSA9PSBcImFycmF5XCIpO1xuICAgICAgICAgICAgICAgIGlmICh2ZWN0b3JpemVkUG9zaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkxlbmd0aCA9IHZlY3Rvcml6ZWRQb3NpdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHApID0+IChhcmdzW3BdIGFzIGFueVtdKS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBNYXRoLm1pbihwLCBjKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgc3ViZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgbG9uZ2VzdCBhcnJheS5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgeW91IGNhbGwgYSB2ZWN0b3JpemVkIGZ1bmN0aW9uIHdpdGggZGlmZmVyZW50LWxlbmd0aCBhcnJheXMsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBvdXRwdXQgaXMgbGltaXRlZCBieSB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydGVzdCBhcnJheS5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB2cG9zID0gMDsgdnBvcyA8IG1pbkxlbmd0aDsgdnBvcysrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3ViYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlY3Rvcml6ZWRQb3NpdGlvbnMuaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcnIgPSBhcmdzW2luZGV4XSBhcyBhbnlbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYXJncy5wdXNoKGFyclt2cG9zXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYXJncy5wdXNoKGFyZ3NbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHNlbGYoY29udGV4dCwgLi4uc3ViYXJncykpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG91dGVyOiBmb3IgKGxldCB2YXJpYW50IG9mIHRoaXMudmFyaWFudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFyaWFudC52YXJhcmdzKSByZXR1cm4gdmFyaWFudC5pbXBsKGNvbnRleHQsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmICh2YXJpYW50LmFyZ3MubGVuZ3RoICE9IHR5cGVzLmxlbmd0aCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdmFyaWFudC5hcmdzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5hcmdzW2luZGV4XSAhPSBcIipcIiAmJiB2YXJpYW50LmFyZ3NbaW5kZXhdICE9IHR5cGVzW2luZGV4XSkgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhbnQuaW1wbChjb250ZXh0LCAuLi5hcmdzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIGltcGxlbWVudGF0aW9uIG9mICcke3RoaXMubmFtZX0nIGZvdW5kIGZvciBhcmd1bWVudHM6ICR7dHlwZXMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbn1cblxuLyoqIFV0aWxpdGllcyBmb3IgbWFuYWdpbmcgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zLiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGdW5jdGlvbnMge1xuICAgIC8qKiBCaW5kIGEgY29udGV4dCB0byBhIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uLCB5aWVsZGluZyBhIGZ1bmN0aW9uIHdoaWNoIGRvZXMgbm90IG5lZWQgdGhlIGNvbnRleHQgYXJndW1lbnQuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmQoZnVuYzogRnVuY3Rpb25JbXBsLCBjb250ZXh0OiBFdmFsdWF0b3IpOiBCb3VuZEZ1bmN0aW9uSW1wbCB7XG4gICAgICAgIHJldHVybiAoLi4uYXJnczogTGl0ZXJhbFtdKSA9PiBmdW5jKGNvbnRleHQsIC4uLmFyZ3MpO1xuICAgIH1cblxuICAgIC8qKiBCaW5kIGEgY29udGV4dCB0byBhbGwgZnVuY3Rpb25zIGluIHRoZSBnaXZlbiBtYXAsIHlpZWxkaW5nIGEgbmV3IG1hcCBvZiBib3VuZCBmdW5jdGlvbnMuICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJpbmRBbGwoXG4gICAgICAgIGZ1bmNzOiBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbkltcGw+LFxuICAgICAgICBjb250ZXh0OiBFdmFsdWF0b3JcbiAgICApOiBSZWNvcmQ8c3RyaW5nLCBCb3VuZEZ1bmN0aW9uSW1wbD4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBCb3VuZEZ1bmN0aW9uSW1wbD4gPSB7fTtcbiAgICAgICAgZm9yIChsZXQgW2tleSwgZnVuY10gb2YgT2JqZWN0LmVudHJpZXMoZnVuY3MpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IEZ1bmN0aW9ucy5iaW5kKGZ1bmMsIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBhbGwgZGVmaW5lZCBmdW5jdGlvbnM7IGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZXkgY2FuIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBkYXRhdmlldyxcbiAqIGFuZCB0ZXN0IGNvZGUuXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgRGVmYXVsdEZ1bmN0aW9ucyB7XG4gICAgZXhwb3J0IGNvbnN0IHR5cGVPZiA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJ0eXBlXCIpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKF8pID0+IFwiYXJyYXlcIilcbiAgICAgICAgLmFkZDEoXCJib29sZWFuXCIsIChfKSA9PiBcImJvb2xlYW5cIilcbiAgICAgICAgLmFkZDEoXCJkYXRlXCIsIChfKSA9PiBcImRhdGVcIilcbiAgICAgICAgLmFkZDEoXCJkdXJhdGlvblwiLCAoXykgPT4gXCJkdXJhdGlvblwiKVxuICAgICAgICAuYWRkMShcImZ1bmN0aW9uXCIsIChfKSA9PiBcImZ1bmN0aW9uXCIpXG4gICAgICAgIC5hZGQxKFwibGlua1wiLCAoXykgPT4gXCJsaW5rXCIpXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoXykgPT4gXCJudWxsXCIpXG4gICAgICAgIC5hZGQxKFwibnVtYmVyXCIsIChfKSA9PiBcIm51bWJlclwiKVxuICAgICAgICAuYWRkMShcIm9iamVjdFwiLCAoXykgPT4gXCJvYmplY3RcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKF8pID0+IFwic3RyaW5nXCIpXG4gICAgICAgIC5hZGQxKFwiKlwiLCAoXykgPT4gXCJ1bmtub3duXCIpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIENvbXB1dGUgdGhlIGxlbmd0aCBvZiBhIGRhdGEgdHlwZS4gKi9cbiAgICBleHBvcnQgY29uc3QgbGVuZ3RoID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImxlbmd0aFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhKSA9PiBhLmxlbmd0aClcbiAgICAgICAgLmFkZDEoXCJvYmplY3RcIiwgKGEpID0+IE9iamVjdC5rZXlzKGEpLmxlbmd0aClcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKGEpID0+IGEubGVuZ3RoKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9hKSA9PiAwKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBMaXN0IGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBsaXN0OiBGdW5jdGlvbkltcGwgPSAoX2NvbnRleHQsIC4uLmFyZ3MpID0+IGFyZ3M7XG5cbiAgICAvKiogT2JqZWN0IGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBvYmplY3Q6IEZ1bmN0aW9uSW1wbCA9IChfY29udGV4dCwgLi4uYXJncykgPT4ge1xuICAgICAgICBpZiAoYXJncy5sZW5ndGggJSAyICE9IDApIHRocm93IEVycm9yKFwib2JqZWN0KCkgcmVxdWlyZXMgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzXCIpO1xuICAgICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBMaXRlcmFsPiA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJncy5sZW5ndGg7IGluZGV4ICs9IDIpIHtcbiAgICAgICAgICAgIGxldCBrZXkgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgICAgIGlmICghTGl0ZXJhbHMuaXNTdHJpbmcoa2V5KSkgdGhyb3cgRXJyb3IoXCJrZXlzIHNob3VsZCBiZSBvZiB0eXBlIHN0cmluZyBmb3Igb2JqZWN0KGtleTEsIHZhbHVlMSwgLi4uKVwiKTtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gYXJnc1tpbmRleCArIDFdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgLyoqIEludGVybmFsIGxpbmsgY29uc3RydWN0b3IgZnVuY3Rpb24uICovXG4gICAgZXhwb3J0IGNvbnN0IGxpbms6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsaW5rXCIpXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChhLCBjKSA9PiBMaW5rLmZpbGUoYy5saW5rSGFuZGxlci5ub3JtYWxpemUoYSksIGZhbHNlKSlcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChhKSA9PiBhKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9hKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHQsIGQsIGMpID0+IExpbmsuZmlsZShjLmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSh0KSwgZmFsc2UsIGQpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcImJvb2xlYW5cIiwgKHQsIGQsIGUsIGMpID0+IExpbmsuZmlsZShjLmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSh0KSwgZSwgZCkpXG4gICAgICAgIC5hZGQyKFwibGlua1wiLCBcInN0cmluZ1wiLCAodCwgZCkgPT4gdC53aXRoRGlzcGxheShkKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICh0LCBfbiwgYykgPT4gbGluayhjLCB0KSlcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIEVtYmVkIGFuZCB1bi1lbWJlZCBhIGxpbmsuICovXG4gICAgZXhwb3J0IGNvbnN0IGVtYmVkOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZW1iZWRcIilcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChsKSA9PiBsLnRvRW1iZWQoKSlcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5hZGQyKFwibGlua1wiLCBcImJvb2xlYW5cIiwgKGwsIGUsIGMpID0+IChlID8gbC50b0VtYmVkKCkgOiBsLmZyb21FbWJlZCgpKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvKiogRGF0ZSBjb25zdHJ1Y3RvciBmdW5jdGlvbi4gKi9cbiAgICBleHBvcnQgY29uc3QgZGF0ZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJkYXRlXCIpXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChzdHIpID0+IHtcbiAgICAgICAgICAgIGxldCBwYXJzZWREYXRlID0gUFJJTUlUSVZFUy5kYXRlUGx1cy5wYXJzZShzdHIpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuc3RhdHVzKSByZXR1cm4gcGFyc2VkRGF0ZS52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiZGF0ZVwiLCAoZCkgPT4gZClcbiAgICAgICAgLmFkZDEoXCJsaW5rXCIsIChsaW5rLCBjKSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gcGFyc2UgZnJvbSB0aGUgZGlzcGxheS4uLlxuICAgICAgICAgICAgaWYgKGxpbmsuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWREYXRlID0gUFJJTUlUSVZFUy5kYXRlLnBhcnNlKGxpbmsuZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuc3RhdHVzKSByZXR1cm4gcGFyc2VkRGF0ZS52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGhlbiB0cnkgdG8gcGFyc2UgZnJvbSB0aGUgcGF0aC4uLlxuICAgICAgICAgICAgbGV0IHBhcnNlZERhdGUgPSBQUklNSVRJVkVTLmRhdGUucGFyc2UobGluay5wYXRoKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWREYXRlLnN0YXR1cykgcmV0dXJuIHBhcnNlZERhdGUudmFsdWU7XG5cbiAgICAgICAgICAgIC8vIFRoZW4gcHVsbCBpdCBmcm9tIHRoZSBmaWxlLlxuICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gYy5saW5rSGFuZGxlci5yZXNvbHZlKGxpbmsucGF0aCk7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZWQgJiYgKHJlc29sdmVkIGFzIGFueSk/LmZpbGU/LmRheSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAocmVzb2x2ZWQgYXMgYW55KT8uZmlsZT8uZGF5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKGQsIGYpID0+IHtcbiAgICAgICAgICAgIGlmIChmID09PSBcInhcIiB8fCBmID09PSBcIlhcIikge1xuICAgICAgICAgICAgICAgIGxldCBtYXRjaCA9IE5VTUJFUl9SRUdFWC5leGVjKGQpO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgcmV0dXJuIERhdGVUaW1lLmZyb21NaWxsaXMoTnVtYmVyLnBhcnNlSW50KG1hdGNoWzBdKSAqIChmID09PSBcIlhcIiA/IDEwMDAgOiAxKSk7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwiTm90IGEgbnVtYmVyIGZvciBmb3JtYXQoICgkeyBmIH0pOiAkeyBkIH1cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkRGF0ZSA9IERhdGVUaW1lLmZyb21Gb3JtYXQoZCwgZik7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuaXNWYWxpZCkgcmV0dXJuIHBhcnNlZERhdGU7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBDYW4ndCBoYW5kbGUgZm9ybWF0ICgke2Z9KSBvbiBkYXRlIHN0cmluZyAoJHtkfSlgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvKiogRHVyYXRpb24gY29uc3RydWN0b3IgZnVuY3Rpb24uICovXG4gICAgZXhwb3J0IGNvbnN0IGR1ciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJkdXJcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKHN0cikgPT4ge1xuICAgICAgICAgICAgbGV0IHBhcnNlZER1ciA9IFBSSU1JVElWRVMuZHVyYXRpb24ucGFyc2Uoc3RyLnRyaW0oKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkRHVyLnN0YXR1cykgcmV0dXJuIHBhcnNlZER1ci52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiZHVyYXRpb25cIiwgKGQpID0+IGQpXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoZCkgPT4gZClcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLyoqIEZvcm1hdCBhIGRhdGUgdXNpbmcgYSBsdXhvbi9tb21lbnQtc3R5bGUgZGF0ZSBmb3JtYXQuICovXG4gICAgZXhwb3J0IGNvbnN0IGRhdGVmb3JtYXQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZGF0ZWZvcm1hdFwiKVxuICAgICAgICAuYWRkMihcImRhdGVcIiwgXCJzdHJpbmdcIiwgKGRhdGUsIGZvcm1hdCkgPT4gZGF0ZS50b0Zvcm1hdChmb3JtYXQsIHsgbG9jYWxlOiBjdXJyZW50TG9jYWxlKCkgfSkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcInN0cmluZ1wiLCAoX251bCwgX2Zvcm1hdCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGxvY2FsdGltZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsb2NhbHRpbWVcIilcbiAgICAgICAgLmFkZDEoXCJkYXRlXCIsIChkKSA9PiBkLnRvTG9jYWwoKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGNvbnN0IE5VTUJFUl9SRUdFWCA9IC8tP1swLTldKyhcXC5bMC05XSspPy87XG5cbiAgICAvKiogTnVtYmVyIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAqL1xuICAgIGV4cG9ydCBjb25zdCBudW1iZXIgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibnVtYmVyXCIpXG4gICAgICAgIC5hZGQxKFwibnVtYmVyXCIsIChhKSA9PiBhKVxuICAgICAgICAuYWRkMShcInN0cmluZ1wiLCAoc3RyKSA9PiB7XG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSBOVU1CRVJfUkVHRVguZXhlYyhzdHIpO1xuICAgICAgICAgICAgaWYgKG1hdGNoKSByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQobWF0Y2hbMF0pO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYW55IHZhbHVlIHRvIGEgcmVhc29uYWJsZSBpbnRlcm5hbCBzdHJpbmcgcmVwcmVzZW50YXRpb24uIE1vc3QgdXNlZnVsIGZvciBkYXRlcywgc3RyaW5ncywgbnVtYmVycywgYW5kXG4gICAgICogc28gb24uXG4gICAgICovXG4gICAgZXhwb3J0IGNvbnN0IHN0cmluZyA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzdHJpbmdcIilcbiAgICAgICAgLmFkZDEoXCIqXCIsIChhLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGEsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCByb3VuZCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyb3VuZFwiKVxuICAgICAgICAuYWRkMShcIm51bWJlclwiLCAobikgPT4gTWF0aC5yb3VuZChuKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYWRkMihcIm51bWJlclwiLCBcIm51bWJlclwiLCAobiwgcCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAgPD0gMCkgcmV0dXJuIE1hdGgucm91bmQobik7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChuLnRvRml4ZWQocCkpO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bWJlclwiLCBcIm51bGxcIiwgKG4pID0+IE1hdGgucm91bmQobikpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1pbjogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcIm1pblwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChhLCBfbikgPT4gYSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoX24sIGEpID0+IGEpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGEsIGIsIGN0eCkgPT4gKExpdGVyYWxzLmNvbXBhcmUoYSwgYiwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPD0gMCA/IGEgOiBiKSlcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYSwgY3R4KSA9PiBtaW4oY3R4LCAuLi5hKSlcbiAgICAgICAgLnZhcmFyZygoY3R4LCAuLi5hcmdzKSA9PiAoYXJncy5sZW5ndGggPT0gMCA/IG51bGwgOiBhcmdzLnJlZHVjZSgocCwgYykgPT4gbWluKGN0eCwgcCwgYykpKSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbWF4OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWF4XCIpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKGEsIF9uKSA9PiBhKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgYSkgPT4gYSlcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwiKlwiLCAoYSwgYiwgY3R4KSA9PiAoTGl0ZXJhbHMuY29tcGFyZShhLCBiLCBjdHgubGlua0hhbmRsZXIubm9ybWFsaXplKSA+IDAgPyBhIDogYikpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKGEsIGN0eCkgPT4gbWF4KGN0eCwgLi4uYSkpXG4gICAgICAgIC52YXJhcmcoKGN0eCwgLi4uYXJncykgPT4gKGFyZ3MubGVuZ3RoID09IDAgPyBudWxsIDogYXJncy5yZWR1Y2UoKHAsIGMpID0+IG1heChjdHgsIHAsIGMpKSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1pbmJ5OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWluYnlcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGZ1bmMsIGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBhcnIubWFwKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHYsIG1hcHBlZDogZnVuYyhjdHgsIHYpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZCA9IHZhbHVlcy5maWx0ZXIoKHYpID0+ICFMaXRlcmFscy5pc051bGwodi5tYXBwZWQpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT0gMCkgcmV0dXJuIGFyclswXTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkLnJlZHVjZSgocCwgYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChMaXRlcmFscy5jb21wYXJlKHAubWFwcGVkLCBjLm1hcHBlZCwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPD0gMCkgcmV0dXJuIHA7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gYztcbiAgICAgICAgICAgIH0pLnZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCJmdW5jdGlvblwiLCAoX2FyciwgX2Z1bmMsIF9jdHgpID0+IG51bGwpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG1heGJ5OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibWF4YnlcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGZ1bmMsIGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBhcnIubWFwKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHYsIG1hcHBlZDogZnVuYyhjdHgsIHYpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZCA9IHZhbHVlcy5maWx0ZXIoKHYpID0+ICFMaXRlcmFscy5pc051bGwodi5tYXBwZWQpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT0gMCkgcmV0dXJuIGFyclswXTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkLnJlZHVjZSgocCwgYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChMaXRlcmFscy5jb21wYXJlKHAubWFwcGVkLCBjLm1hcHBlZCwgY3R4LmxpbmtIYW5kbGVyLm5vcm1hbGl6ZSkgPiAwKSByZXR1cm4gcDtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBjO1xuICAgICAgICAgICAgfSkudmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcImZ1bmN0aW9uXCIsIChfYXJyLCBfZnVuYywgX2N0eCkgPT4gbnVsbClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3Qgc3RyaXB0aW1lID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInN0cmlwdGltZVwiKVxuICAgICAgICAuYWRkMShcImRhdGVcIiwgKGQpID0+IERhdGVUaW1lLmZyb21PYmplY3QoeyB5ZWFyOiBkLnllYXIsIG1vbnRoOiBkLm1vbnRoLCBkYXk6IGQuZGF5IH0pKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKF9uKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDEsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBEZWZhdWx0IGNvbnRhaW5zLCB3aGljaCBsb29rcyB0aHJvdWdoIGRhdGEgc3RydWN0dXJlcyByZWN1cnNpdmVseS5cbiAgICBleHBvcnQgY29uc3QgY29udGFpbnM6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJjb250YWluc1wiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiKlwiLCAobCwgZWxlbSwgY29udGV4dCkgPT4gbC5zb21lKChlKSA9PiBjb250YWlucyhjb250ZXh0LCBlLCBlbGVtKSkpXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChoYXlzdGFjaywgbmVlZGxlKSA9PiBoYXlzdGFjay5pbmNsdWRlcyhuZWVkbGUpKVxuICAgICAgICAuYWRkMihcIm9iamVjdFwiLCBcInN0cmluZ1wiLCAob2JqLCBrZXkpID0+IGtleSBpbiBvYmopXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGVsZW0xLCBlbGVtMiwgY29udGV4dCkgPT5cbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMSksIFwiPVwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGVsZW0yKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KClcbiAgICAgICAgKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBDYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24gb2YgY29udGFpbnMuXG4gICAgZXhwb3J0IGNvbnN0IGljb250YWluczogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImljb250YWluc1wiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiKlwiLCAobCwgZWxlbSwgY29udGV4dCkgPT4gbC5zb21lKChlKSA9PiBpY29udGFpbnMoY29udGV4dCwgZSwgZWxlbSkpKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoaGF5c3RhY2ssIG5lZWRsZSkgPT5cbiAgICAgICAgICAgIGhheXN0YWNrLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMobmVlZGxlLnRvTG9jYWxlTG93ZXJDYXNlKCkpXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJvYmplY3RcIiwgXCJzdHJpbmdcIiwgKG9iaiwga2V5KSA9PiBrZXkgaW4gb2JqKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsIChlbGVtMSwgZWxlbTIsIGNvbnRleHQpID0+XG4gICAgICAgICAgICBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoZWxlbTEpLCBcIj1cIiwgRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMikpKVxuICAgICAgICAgICAgICAgIC5vckVsc2VUaHJvdygpXG4gICAgICAgIClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gXCJleGFjdFwiIGNvbnRhaW5zLCBkb2VzIG5vdCBsb29rIHJlY3Vyc2l2ZWx5LlxuICAgIGV4cG9ydCBjb25zdCBlY29udGFpbnM6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJlY29udGFpbnNcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcIipcIiwgKGwsIGVsZW0sIGNvbnRleHQpID0+XG4gICAgICAgICAgICBsLnNvbWUoKGUpID0+XG4gICAgICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtKSwgXCI9XCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoZSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChoYXlzdGFjaywgbmVlZGxlKSA9PiBoYXlzdGFjay5pbmNsdWRlcyhuZWVkbGUpKVxuICAgICAgICAuYWRkMihcIm9iamVjdFwiLCBcInN0cmluZ1wiLCAob2JqLCBrZXkpID0+IGtleSBpbiBvYmopXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIipcIiwgKGVsZW0xLCBlbGVtMiwgY29udGV4dCkgPT5cbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChlbGVtMSksIFwiPVwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGVsZW0yKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KClcbiAgICAgICAgKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAvLyBDYXNlIGluc2Vuc2l0aXZlIGNvbnRhaW5zIHdoaWNoIGxvb2tzIGZvciBleGFjdCB3b3JkIG1hdGNoZXMgKGkuZS4sIGJvdW5kcnktdG8tYm91bmRyeSBtYXRjaCkuXG4gICAgZXhwb3J0IGNvbnN0IGNvbnRhaW5zd29yZDogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImNvbnRhaW5zd29yZFwiKVxuICAgICAgICAuYWRkMihcbiAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgKGhheSwgbmVlZGxlKSA9PiAhIWhheS5tYXRjaChuZXcgUmVnRXhwKFwiLipcXFxcYlwiICsgZXNjYXBlUmVnZXgobmVlZGxlKSArIFwiXFxcXGIuKlwiLCBcImlcIikpXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoX2EsIF9iKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX2IpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBFeHRyYWN0IDAgb3IgbW9yZSBrZXlzIGZyb20gYSBnaXZlbiBvYmplY3QgdmlhIGluZGV4aW5nLiAqL1xuICAgIGV4cG9ydCBjb25zdCBleHRyYWN0OiBGdW5jdGlvbkltcGwgPSAoY29udGV4dDogRXZhbHVhdG9yLCAuLi5hcmdzOiBMaXRlcmFsW10pID0+IHtcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHJldHVybiBcImV4dHJhY3Qob2JqZWN0LCBrZXkxLCAuLi4pIHJlcXVpcmVzIGF0IGxlYXN0IDEgYXJndW1lbnRcIjtcblxuICAgICAgICAvLyBNYW51YWxseSBoYW5kbGUgdmVjdG9yaXphdGlvbiBpbiB0aGUgZmlyc3QgYXJndW1lbnQuXG4gICAgICAgIGxldCBvYmplY3QgPSBhcmdzWzBdO1xuICAgICAgICBpZiAoTGl0ZXJhbHMuaXNBcnJheShvYmplY3QpKSByZXR1cm4gb2JqZWN0Lm1hcCgodikgPT4gZXh0cmFjdChjb250ZXh0LCB2LCAuLi5hcmdzLnNsaWNlKDEpKSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4gPSB7fTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBsZXQga2V5ID0gYXJnc1tpbmRleF07XG4gICAgICAgICAgICBpZiAoIUxpdGVyYWxzLmlzU3RyaW5nKGtleSkpIHRocm93IEVycm9yKFwiZXh0cmFjdChvYmplY3QsIGtleTEsIC4uLikgbXVzdCBiZSBjYWxsZWQgd2l0aCBzdHJpbmcga2V5c1wiKTtcblxuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmluZGV4KEV4cHJlc3Npb25zLmxpdGVyYWwob2JqZWN0KSwgRXhwcmVzc2lvbnMubGl0ZXJhbChrZXkpKSlcbiAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIC8vIFJldmVyc2UgYW4gYXJyYXkgb3Igc3RyaW5nLlxuICAgIGV4cG9ydCBjb25zdCByZXZlcnNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJldmVyc2VcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAobCkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSBsLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHJlc3VsdC5wdXNoKGxbaW5kZXhdKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwic3RyaW5nXCIsIChsKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgbC5sZW5ndGg7IGMrKykgcmVzdWx0ICs9IGxbbC5sZW5ndGggLSBjIC0gMV07XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gU29ydCBhbiBhcnJheTsgaWYgZ2l2ZW4gdHdvIGFyZ3VtZW50cywgc29ydHMgYnkgdGhlIGtleSByZXR1cm5lZC5cbiAgICBleHBvcnQgY29uc3Qgc29ydDogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInNvcnRcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAobGlzdCwgY29udGV4dCkgPT4gc29ydChjb250ZXh0LCBsaXN0LCAoX2N0eDogRXZhbHVhdG9yLCBhOiBMaXRlcmFsKSA9PiBhKSlcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChsaXN0LCBrZXksIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAoW10gYXMgTGl0ZXJhbFtdKS5jb25jYXQobGlzdCk7XG4gICAgICAgICAgICByZXN1bHQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBha2V5ID0ga2V5KGNvbnRleHQsIGEpO1xuICAgICAgICAgICAgICAgIGxldCBia2V5ID0ga2V5KGNvbnRleHQsIGIpO1xuICAgICAgICAgICAgICAgIGxldCBsZSA9IGNvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoYWtleSksIFwiPFwiLCBFeHByZXNzaW9ucy5saXRlcmFsKGJrZXkpKSlcbiAgICAgICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKExpdGVyYWxzLmlzVHJ1dGh5KGxlKSkgcmV0dXJuIC0xO1xuXG4gICAgICAgICAgICAgICAgbGV0IGVxID0gY29udGV4dFxuICAgICAgICAgICAgICAgICAgICAuZXZhbHVhdGUoRXhwcmVzc2lvbnMuYmluYXJ5T3AoRXhwcmVzc2lvbnMubGl0ZXJhbChha2V5KSwgXCI9XCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoYmtleSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgICAgICBpZiAoTGl0ZXJhbHMuaXNUcnV0aHkoZXEpKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IHJlZ2V4dGVzdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyZWdleHRlc3RcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHBhdHRlcm46IHN0cmluZywgZmllbGQ6IHN0cmluZykgPT4gUmVnRXhwKHBhdHRlcm4pLnRlc3QoZmllbGQpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgX2EpID0+IGZhbHNlKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX24pID0+IGZhbHNlKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVnZXhtYXRjaCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJyZWdleG1hdGNoXCIpXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwic3RyaW5nXCIsIChwYXR0ZXJuOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICghcGF0dGVybi5zdGFydHNXaXRoKFwiXlwiKSAmJiAhcGF0dGVybi5lbmRzV2l0aChcIiRcIikpIHBhdHRlcm4gPSBcIl5cIiArIHBhdHRlcm4gKyBcIiRcIjtcbiAgICAgICAgICAgIHJldHVybiAhIWZpZWxkLm1hdGNoKHBhdHRlcm4pO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsIChfbiwgX2EpID0+IGZhbHNlKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsIChfYSwgX24pID0+IGZhbHNlKVxuICAgICAgICAudmVjdG9yaXplKDIsIFswLCAxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVnZXhyZXBsYWNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJlZ2V4cmVwbGFjZVwiKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoZmllbGQ6IHN0cmluZywgcGF0OiBzdHJpbmcsIHJlcDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCByZWcgPSBuZXcgUmVnRXhwKHBhdCwgXCJnXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC5yZXBsYWNlKHJlZywgcmVwKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgcmVnZXhwICcke3BhdH0nIGluIHJlZ2V4cmVwbGFjZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuYWRkMyhcIm51bGxcIiwgXCIqXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbG93ZXIgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibG93ZXJcIilcbiAgICAgICAgLmFkZDEoXCJzdHJpbmdcIiwgKHMpID0+IHMudG9Mb2NhbGVMb3dlckNhc2UoKSlcbiAgICAgICAgLmFkZDEoXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMSwgWzBdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCB1cHBlciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJ1cHBlclwiKVxuICAgICAgICAuYWRkMShcInN0cmluZ1wiLCAocykgPT4gcy50b0xvY2FsZVVwcGVyQ2FzZSgpKVxuICAgICAgICAuYWRkMShcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgxLCBbMF0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IHJlcGxhY2UgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwicmVwbGFjZVwiKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyLCBwYXQsIHJlcHIpID0+IHN0ci5zcGxpdChwYXQpLmpvaW4ocmVwcikpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8vIEVuc3VyZSB1bmRlZmluZWQgbWF0Y2hlcyB0dXJuIGludG8gZW1wdHkgc3RyaW5ncyBmb3Igc3BsaXQvMiBhbmQgc3BsaXQvMy5cbiAgICBjb25zdCBzcGxpdEltcGwgPSAoc3RyOiBzdHJpbmcsIGRlbGltOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyKTogc3RyaW5nW10gPT5cbiAgICAgICAgc3RyLnNwbGl0KG5ldyBSZWdFeHAoZGVsaW0pLCBsaW1pdCkubWFwKChzdHIpID0+IHN0ciB8fCBcIlwiKTtcblxuICAgIC8qKiBTcGxpdCBhIHN0cmluZyBvbiBhIGdpdmVuIHN0cmluZy4gKi9cbiAgICBleHBvcnQgY29uc3Qgc3BsaXQ6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzcGxpdFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyaW5nLCBzcGxpdHRlcikgPT4gc3BsaXRJbXBsKHN0cmluZywgc3BsaXR0ZXIpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyaW5nLCBzcGxpdHRlciwgbGltaXQpID0+IHNwbGl0SW1wbChzdHJpbmcsIHNwbGl0dGVyLCBsaW1pdCkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIipcIiwgXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMyhcIm51bGxcIiwgXCIqXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBzdGFydHN3aXRoOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwic3RhcnRzd2l0aFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcInN0cmluZ1wiLCAoc3RyLCBzdGFydGluZykgPT4gc3RyLnN0YXJ0c1dpdGgoc3RhcnRpbmcpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGVuZHN3aXRoOiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZW5kc3dpdGhcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJzdHJpbmdcIiwgKHN0ciwgZW5kaW5nKSA9PiBzdHIuZW5kc1dpdGgoZW5kaW5nKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBwYWRsZWZ0OiBGdW5jdGlvbkltcGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwicGFkbGVmdFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyLCBsZW4pID0+IHN0ci5wYWRTdGFydChsZW4sIFwiIFwiKSlcbiAgICAgICAgLmFkZDMoXCJzdHJpbmdcIiwgXCJudW1iZXJcIiwgXCJzdHJpbmdcIiwgKHN0ciwgbGVuLCBwYWRkaW5nKSA9PiBzdHIucGFkU3RhcnQobGVuLCBwYWRkaW5nKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcGFkcmlnaHQ6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJwYWRyaWdodFwiKVxuICAgICAgICAuYWRkMihcInN0cmluZ1wiLCBcIm51bWJlclwiLCAoc3RyLCBsZW4pID0+IHN0ci5wYWRFbmQobGVuLCBcIiBcIikpXG4gICAgICAgIC5hZGQzKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIFwic3RyaW5nXCIsIChzdHIsIGxlbiwgcGFkZGluZykgPT4gc3RyLnBhZEVuZChsZW4sIHBhZGRpbmcpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCJudWxsXCIsIFwiKlwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBzdWJzdHJpbmc6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJzdWJzdHJpbmdcIilcbiAgICAgICAgLmFkZDIoXCJzdHJpbmdcIiwgXCJudW1iZXJcIiwgKHN0ciwgc3RhcnQpID0+IHN0ci5zdWJzdHJpbmcoc3RhcnQpKVxuICAgICAgICAuYWRkMyhcInN0cmluZ1wiLCBcIm51bWJlclwiLCBcIm51bWJlclwiLCAoc3RyLCBzdGFydCwgZW5kKSA9PiBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQyKFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCJudWxsXCIsIFwiKlwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIm51bGxcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLnZlY3Rvcml6ZSgyLCBbMCwgMV0pXG4gICAgICAgIC52ZWN0b3JpemUoMywgWzAsIDEsIDJdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCB0cnVuY2F0ZTogRnVuY3Rpb25JbXBsID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInRydW5jYXRlXCIpXG4gICAgICAgIC5hZGQzKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIFwic3RyaW5nXCIsIChzdHIsIGxlbmd0aCwgc3VmZml4KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IGxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBNYXRoLm1heCgwLCBsZW5ndGggLSBzdWZmaXgubGVuZ3RoKSkgKyBzdWZmaXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwic3RyaW5nXCIsIFwibnVtYmVyXCIsIChzdHIsIGxlbmd0aCwgY3R4KSA9PiB0cnVuY2F0ZShjdHgsIHN0ciwgbGVuZ3RoLCBcIi4uLlwiKSlcbiAgICAgICAgLmFkZDIoXCJudWxsXCIsIFwiKlwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwibnVsbFwiLCBcIipcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5hZGQzKFwiKlwiLCBcIipcIiwgXCJudWxsXCIsICgpID0+IG51bGwpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswLCAxLCAyXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgZmRlZmF1bHQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZGVmYXVsdFwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsICh2LCBiaykgPT4gKExpdGVyYWxzLmlzTnVsbCh2KSA/IGJrIDogdikpXG4gICAgICAgIC52ZWN0b3JpemUoMiwgWzAsIDFdKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBsZGVmYXVsdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJsZGVmYXVsdFwiKVxuICAgICAgICAuYWRkMihcIipcIiwgXCIqXCIsICh2LCBiaykgPT4gKExpdGVyYWxzLmlzTnVsbCh2KSA/IGJrIDogdikpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGNob2ljZSA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJjaG9pY2VcIilcbiAgICAgICAgLmFkZDMoXCIqXCIsIFwiKlwiLCBcIipcIiwgKGIsIGxlZnQsIHJpZ2h0KSA9PiAoTGl0ZXJhbHMuaXNUcnV0aHkoYikgPyBsZWZ0IDogcmlnaHQpKVxuICAgICAgICAudmVjdG9yaXplKDMsIFswXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcmVkdWNlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInJlZHVjZVwiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwic3RyaW5nXCIsIChsaXMsIG9wLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAobGlzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgaWYgKG9wICE9IFwiK1wiICYmIG9wICE9IFwiLVwiICYmIG9wICE9IFwiKlwiICYmIG9wICE9IFwiL1wiICYmIG9wICE9IFwiJlwiICYmIG9wICE9IFwifFwiKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwicmVkdWNlKGFycmF5LCBvcCkgc3VwcG9ydHMgJysnLCAnLScsICcvJywgJyonLCAnJicsIGFuZCAnfCdcIik7XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGxpc1swXTtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBsaXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBjb250ZXh0XG4gICAgICAgICAgICAgICAgICAgIC5ldmFsdWF0ZShFeHByZXNzaW9ucy5iaW5hcnlPcChFeHByZXNzaW9ucy5saXRlcmFsKHZhbHVlKSwgb3AsIEV4cHJlc3Npb25zLmxpdGVyYWwobGlzW2luZGV4XSkpKVxuICAgICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGxpcywgb3AsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGlmIChsaXMubGVuZ3RoID09IDApIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBsaXNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgbGlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgbnVsbCB2YWx1ZXMgdG8gcmVkdWNlIHRoZSBwYWluIG9mIHN1bW1pbmcgb3ZlciBmaWVsZHMgdGhhdCBtYXkgb3IgbWF5IG5vdCBleGlzdC5cbiAgICAgICAgICAgICAgICBpZiAoTGl0ZXJhbHMuaXNOdWxsKGxpc1tpbmRleF0pKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgIHZhbHVlID0gb3AoY29udGV4dCwgdmFsdWUsIGxpc1tpbmRleF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmFkZDIoXCIqXCIsIFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3Qgc3VtID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcInN1bVwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIsIGMpID0+IHJlZHVjZShjLCBhcnIsIFwiK1wiKSlcbiAgICAgICAgLmFkZDEoXCIqXCIsIChlKSA9PiBlKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBhdmVyYWdlID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImF2ZXJhZ2VcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyYXksIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIGNvbnN0IGFkZCA9IHN1bShjb250ZXh0LCBhcnJheSk7XG4gICAgICAgICAgICBpZiAoYWRkID09IG51bGwgfHwgYWRkID09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0XG4gICAgICAgICAgICAgICAgLmV2YWx1YXRlKEV4cHJlc3Npb25zLmJpbmFyeU9wKEV4cHJlc3Npb25zLmxpdGVyYWwoYWRkKSwgXCIvXCIsIEV4cHJlc3Npb25zLmxpdGVyYWwoYXJyYXkubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwiKlwiLCAoZSkgPT4gZSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgcHJvZHVjdCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJwcm9kdWN0XCIpXG4gICAgICAgIC5hZGQxKFwiYXJyYXlcIiwgKGFyciwgYykgPT4gcmVkdWNlKGMsIGFyciwgXCIqXCIpKVxuICAgICAgICAuYWRkMShcIipcIiwgKGUpID0+IGUpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGpvaW46IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJqb2luXCIpXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJzdHJpbmdcIiwgKGFyciwgc2VwLCBjdHgpID0+XG4gICAgICAgICAgICBhcnIubWFwKChlKSA9PiBMaXRlcmFscy50b1N0cmluZyhlLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSkuam9pbihzZXApXG4gICAgICAgIClcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcIm51bGxcIiwgKGFyciwgX3MsIGNvbnRleHQpID0+IGpvaW4oY29udGV4dCwgYXJyLCBcIiwgXCIpKVxuICAgICAgICAuYWRkMihcIipcIiwgXCJzdHJpbmdcIiwgKGVsZW0sIHNlcCwgY3R4KSA9PiBMaXRlcmFscy50b1N0cmluZyhlbGVtLCBzdHJpbmdTZXR0aW5ncyhjdHguc2V0dGluZ3MpKSlcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyLCBjb250ZXh0KSA9PiBqb2luKGNvbnRleHQsIGFyciwgXCIsIFwiKSlcbiAgICAgICAgLmFkZDEoXCIqXCIsIChlLCBjdHgpID0+IExpdGVyYWxzLnRvU3RyaW5nKGUsIHN0cmluZ1NldHRpbmdzKGN0eC5zZXR0aW5ncykpKVxuICAgICAgICAudmVjdG9yaXplKDIsIFsxXSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgYW55ID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImFueVwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+IGFyci5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJmdW5jdGlvblwiLCAoYXJyLCBmLCBjdHgpID0+IGFyci5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeShmKGN0eCwgdikpKSlcbiAgICAgICAgLnZhcmFyZygoX2N0eCwgLi4uYXJncykgPT4gYXJncy5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGFsbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJhbGxcIilcbiAgICAgICAgLmFkZDEoXCJhcnJheVwiLCAoYXJyKSA9PiBhcnIuZXZlcnkoKHYpID0+IExpdGVyYWxzLmlzVHJ1dGh5KHYpKSlcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGYsIGN0eCkgPT4gYXJyLmV2ZXJ5KCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeShmKGN0eCwgdikpKSlcbiAgICAgICAgLnZhcmFyZygoX2N0eCwgLi4uYXJncykgPT4gYXJncy5ldmVyeSgodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkodikpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIGV4cG9ydCBjb25zdCBub25lID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcImFsbFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+ICFhcnIuc29tZSgodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkodikpKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGFyciwgZiwgY3R4KSA9PiAhYXJyLnNvbWUoKHYpID0+IExpdGVyYWxzLmlzVHJ1dGh5KGYoY3R4LCB2KSkpKVxuICAgICAgICAudmFyYXJnKChfY3R4LCAuLi5hcmdzKSA9PiAhYXJncy5zb21lKCh2KSA9PiBMaXRlcmFscy5pc1RydXRoeSh2KSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IGZpbHRlciA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJmaWx0ZXJcIilcbiAgICAgICAgLmFkZDIoXCJhcnJheVwiLCBcImZ1bmN0aW9uXCIsIChhcnIsIGYsIGN0eCkgPT4gYXJyLmZpbHRlcigodikgPT4gTGl0ZXJhbHMuaXNUcnV0aHkoZihjdHgsIHYpKSkpXG4gICAgICAgIC5hZGQyKFwibnVsbFwiLCBcIipcIiwgKCkgPT4gbnVsbClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICBleHBvcnQgY29uc3QgbWFwID0gbmV3IEZ1bmN0aW9uQnVpbGRlcihcIm1hcFwiKVxuICAgICAgICAuYWRkMihcImFycmF5XCIsIFwiZnVuY3Rpb25cIiwgKGFyciwgZiwgY3R4KSA9PiBhcnIubWFwKCh2KSA9PiBmKGN0eCwgdikpKVxuICAgICAgICAuYWRkMihcIm51bGxcIiwgXCIqXCIsICgpID0+IG51bGwpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgZXhwb3J0IGNvbnN0IG5vbm51bGwgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwibm9ubnVsbFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhcnIpID0+IGFyci5maWx0ZXIoKHYpID0+IExpdGVyYWxzLnR5cGVPZih2KSAhPSBcIm51bGxcIikpXG4gICAgICAgIC52YXJhcmcoKF9jdHgsIC4uLmFyZ3MpID0+IGFyZ3MuZmlsdGVyKCh2KSA9PiBMaXRlcmFscy50eXBlT2YodikgIT0gXCJudWxsXCIpKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgIC8qKiBHZXRzIGFuIG9iamVjdCBjb250YWluaW5nIGEgbGluaydzIG93biBwcm9wZXJ0aWVzICovXG4gICAgZXhwb3J0IGNvbnN0IG1ldGE6IEZ1bmN0aW9uSW1wbCA9IG5ldyBGdW5jdGlvbkJ1aWxkZXIoXCJtZXRhXCIpXG4gICAgICAgIC5hZGQxKFwibGlua1wiLCAobGluaykgPT4gKHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpbmsuZGlzcGxheSA/PyBudWxsLFxuICAgICAgICAgICAgZW1iZWQ6IGxpbmsuZW1iZWQsXG4gICAgICAgICAgICBwYXRoOiBsaW5rLnBhdGgsXG4gICAgICAgICAgICBzdWJwYXRoOiBsaW5rLnN1YnBhdGggPz8gbnVsbCxcbiAgICAgICAgICAgIHR5cGU6IGxpbmsudHlwZSxcbiAgICAgICAgfSkpXG4gICAgICAgIC5idWlsZCgpO1xuXG4gICAgLy8gQ29uY2F0ZW5hdGVzIHN1Yi1hcnJheSBlbGVtZW50cyBpbnRvIGEgbmV3IGFycmF5XG4gICAgZXhwb3J0IGNvbnN0IGZsYXQgPSBuZXcgRnVuY3Rpb25CdWlsZGVyKFwiZmxhdFwiKVxuICAgICAgICAuYWRkMShcImFycmF5XCIsIChhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5mbGF0KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQyKFwiYXJyYXlcIiwgXCJudW1iZXJcIiwgKGEsIG4pID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiBhLmZsYXQobik7XG4gICAgICAgIH0pXG4gICAgICAgIC5hZGQxKFwibnVsbFwiLCAoKSA9PiBudWxsKVxuICAgICAgICAuYnVpbGQoKTtcbn1cblxuLyoqIERlZmF1bHQgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zIGZvciB0aGUgZXhwcmVzc2lvbiBldmFsdWF0b3IuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GVU5DVElPTlM6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uSW1wbD4gPSB7XG4gICAgLy8gQ29uc3RydWN0b3JzLlxuICAgIGxpc3Q6IERlZmF1bHRGdW5jdGlvbnMubGlzdCxcbiAgICBhcnJheTogRGVmYXVsdEZ1bmN0aW9ucy5saXN0LFxuICAgIGxpbms6IERlZmF1bHRGdW5jdGlvbnMubGluayxcbiAgICBlbWJlZDogRGVmYXVsdEZ1bmN0aW9ucy5lbWJlZCxcbiAgICBkYXRlOiBEZWZhdWx0RnVuY3Rpb25zLmRhdGUsXG4gICAgZHVyOiBEZWZhdWx0RnVuY3Rpb25zLmR1cixcbiAgICBkYXRlZm9ybWF0OiBEZWZhdWx0RnVuY3Rpb25zLmRhdGVmb3JtYXQsXG4gICAgbG9jYWx0aW1lOiBEZWZhdWx0RnVuY3Rpb25zLmxvY2FsdGltZSxcbiAgICBudW1iZXI6IERlZmF1bHRGdW5jdGlvbnMubnVtYmVyLFxuICAgIHN0cmluZzogRGVmYXVsdEZ1bmN0aW9ucy5zdHJpbmcsXG4gICAgb2JqZWN0OiBEZWZhdWx0RnVuY3Rpb25zLm9iamVjdCxcbiAgICB0eXBlb2Y6IERlZmF1bHRGdW5jdGlvbnMudHlwZU9mLFxuXG4gICAgLy8gTWF0aCBPcGVyYXRpb25zLlxuICAgIHJvdW5kOiBEZWZhdWx0RnVuY3Rpb25zLnJvdW5kLFxuICAgIG1pbjogRGVmYXVsdEZ1bmN0aW9ucy5taW4sXG4gICAgbWF4OiBEZWZhdWx0RnVuY3Rpb25zLm1heCxcbiAgICBtaW5ieTogRGVmYXVsdEZ1bmN0aW9ucy5taW5ieSxcbiAgICBtYXhieTogRGVmYXVsdEZ1bmN0aW9ucy5tYXhieSxcblxuICAgIC8vIFN0cmluZyBvcGVyYXRpb25zLlxuICAgIHJlZ2V4cmVwbGFjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZWdleHJlcGxhY2UsXG4gICAgcmVnZXh0ZXN0OiBEZWZhdWx0RnVuY3Rpb25zLnJlZ2V4dGVzdCxcbiAgICByZWdleG1hdGNoOiBEZWZhdWx0RnVuY3Rpb25zLnJlZ2V4bWF0Y2gsXG4gICAgcmVwbGFjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZXBsYWNlLFxuICAgIGxvd2VyOiBEZWZhdWx0RnVuY3Rpb25zLmxvd2VyLFxuICAgIHVwcGVyOiBEZWZhdWx0RnVuY3Rpb25zLnVwcGVyLFxuICAgIHNwbGl0OiBEZWZhdWx0RnVuY3Rpb25zLnNwbGl0LFxuICAgIHN0YXJ0c3dpdGg6IERlZmF1bHRGdW5jdGlvbnMuc3RhcnRzd2l0aCxcbiAgICBlbmRzd2l0aDogRGVmYXVsdEZ1bmN0aW9ucy5lbmRzd2l0aCxcbiAgICBwYWRsZWZ0OiBEZWZhdWx0RnVuY3Rpb25zLnBhZGxlZnQsXG4gICAgcGFkcmlnaHQ6IERlZmF1bHRGdW5jdGlvbnMucGFkcmlnaHQsXG4gICAgc3Vic3RyaW5nOiBEZWZhdWx0RnVuY3Rpb25zLnN1YnN0cmluZyxcbiAgICB0cnVuY2F0ZTogRGVmYXVsdEZ1bmN0aW9ucy50cnVuY2F0ZSxcblxuICAgIC8vIERhdGUgT3BlcmF0aW9ucy5cbiAgICBzdHJpcHRpbWU6IERlZmF1bHRGdW5jdGlvbnMuc3RyaXB0aW1lLFxuXG4gICAgLy8gTGlzdCBvcGVyYXRpb25zLlxuICAgIGxlbmd0aDogRGVmYXVsdEZ1bmN0aW9ucy5sZW5ndGgsXG4gICAgY29udGFpbnM6IERlZmF1bHRGdW5jdGlvbnMuY29udGFpbnMsXG4gICAgaWNvbnRhaW5zOiBEZWZhdWx0RnVuY3Rpb25zLmljb250YWlucyxcbiAgICBlY29udGFpbnM6IERlZmF1bHRGdW5jdGlvbnMuZWNvbnRhaW5zLFxuICAgIGNvbnRhaW5zd29yZDogRGVmYXVsdEZ1bmN0aW9ucy5jb250YWluc3dvcmQsXG4gICAgcmV2ZXJzZTogRGVmYXVsdEZ1bmN0aW9ucy5yZXZlcnNlLFxuICAgIHNvcnQ6IERlZmF1bHRGdW5jdGlvbnMuc29ydCxcbiAgICBmbGF0OiBEZWZhdWx0RnVuY3Rpb25zLmZsYXQsXG5cbiAgICAvLyBBZ2dyZWdhdGlvbiBvcGVyYXRpb25zIGxpa2UgcmVkdWNlLlxuICAgIHJlZHVjZTogRGVmYXVsdEZ1bmN0aW9ucy5yZWR1Y2UsXG4gICAgam9pbjogRGVmYXVsdEZ1bmN0aW9ucy5qb2luLFxuICAgIHN1bTogRGVmYXVsdEZ1bmN0aW9ucy5zdW0sXG4gICAgcHJvZHVjdDogRGVmYXVsdEZ1bmN0aW9ucy5wcm9kdWN0LFxuICAgIGF2ZXJhZ2U6IERlZmF1bHRGdW5jdGlvbnMuYXZlcmFnZSxcbiAgICBhbGw6IERlZmF1bHRGdW5jdGlvbnMuYWxsLFxuICAgIGFueTogRGVmYXVsdEZ1bmN0aW9ucy5hbnksXG4gICAgbm9uZTogRGVmYXVsdEZ1bmN0aW9ucy5ub25lLFxuICAgIGZpbHRlcjogRGVmYXVsdEZ1bmN0aW9ucy5maWx0ZXIsXG4gICAgbWFwOiBEZWZhdWx0RnVuY3Rpb25zLm1hcCxcbiAgICBub25udWxsOiBEZWZhdWx0RnVuY3Rpb25zLm5vbm51bGwsXG5cbiAgICAvLyBPYmplY3QvVXRpbGl0eSBvcGVyYXRpb25zLlxuICAgIGV4dHJhY3Q6IERlZmF1bHRGdW5jdGlvbnMuZXh0cmFjdCxcbiAgICBkZWZhdWx0OiBEZWZhdWx0RnVuY3Rpb25zLmZkZWZhdWx0LFxuICAgIGxkZWZhdWx0OiBEZWZhdWx0RnVuY3Rpb25zLmxkZWZhdWx0LFxuICAgIGNob2ljZTogRGVmYXVsdEZ1bmN0aW9ucy5jaG9pY2UsXG4gICAgbWV0YTogRGVmYXVsdEZ1bmN0aW9ucy5tZXRhLFxufTtcbiIsICIvKiogQ29yZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcXVlcnkgbGFuZ3VhZ2UgZXZhbHVhdGlvbiBlbmdpbmUuICovXG5cbmltcG9ydCB7IERhdGFPYmplY3QsIExpbmssIExpdGVyYWwsIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcbmltcG9ydCB7IEJpbmFyeU9wSGFuZGxlciwgY3JlYXRlQmluYXJ5T3BzIH0gZnJvbSBcIi4vYmluYXJ5b3BcIjtcbmltcG9ydCB7IEV4cHJlc3Npb24sIEV4cHJlc3Npb25zIH0gZnJvbSBcImV4cHJlc3Npb24vZXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgREVGQVVMVF9GVU5DVElPTlMsIEZ1bmN0aW9uSW1wbCB9IGZyb20gXCIuL2Z1bmN0aW9uc1wiO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tIFwic2V0dGluZ3NcIjtcbmltcG9ydCB7IEZpZWxkYmVhcmluZywgRmllbGRiZWFyaW5ncyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbi8qKiBIYW5kbGVzIGxpbmsgcmVzb2x1dGlvbiBhbmQgbm9ybWFsaXphdGlvbiBpbnNpZGUgb2YgYSBjb250ZXh0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rSGFuZGxlciB7XG4gICAgLyoqIFJlc29sdmUgYSBsaW5rIHRvIHRoZSBtZXRhZGF0YSBpdCBjb250YWlucy4gKi9cbiAgICByZXNvbHZlKHBhdGg6IHN0cmluZyB8IExpbmspOiBEYXRhT2JqZWN0IHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemUgYSBsaW5rIHRvIGl0J3MgZnVsbHktcXVhbGlmaWVkIHBhdGggZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAgICogSWYgdGhlIHBhdGggZG9lcyBub3QgZXhpc3QsIHJldHVybnMgaXQgdW5jaGFuZ2VkLlxuICAgICAqL1xuICAgIG5vcm1hbGl6ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBwYXRoIGFjdHVhbGx5IGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLiAqL1xuICAgIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG4vKiogU291cmNlIG9mIHZhcmlhYmxlcyB3aGljaCBjYW4gYmUgcmVmZXJlbmNlZCBpbiB0aGUgZXZhbHVhdG9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZXMge1xuICAgIC8qKiBSZW5kZXIgdGhlIGVudGlyZSB2YXJpYWJsZSBzdG9yZSB0byBhIGtleS12YWx1ZSBtYXAuICovXG4gICAgYWxsKCk6IERhdGFPYmplY3Q7XG5cbiAgICAvKiogUmVzb2x2ZSBhIHZhcmlhYmxlIGJ5IG5hbWUuICovXG4gICAgcmVzb2x2ZShuYW1lOiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEV2YWx1YXRpb24gY29udGV4dCB0aGF0IGV4cHJlc3Npb25zIGNhbiBiZSBldmFsdWF0ZWQgaW4uIEluY2x1ZGVzIGdsb2JhbCBzdGF0ZSwgYXMgd2VsbCBhcyBhdmFpbGFibGUgZnVuY3Rpb25zIGFuZCBhIGhhbmRsZXJcbiAqIGZvciBiaW5hcnkgb3BlcmF0b3JzLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdG9yIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgY29udGV4dCB3aXRoIHRoZSBnaXZlbiBuYW1lc3BhY2Ugb2YgZ2xvYmFscywgYXMgd2VsbCBhcyBvcHRpb25hbGx5IHdpdGggY3VzdG9tIGJpbmFyeSBvcGVyYXRvciwgZnVuY3Rpb24sXG4gICAgICogYW5kIGxpbmsgaGFuZGxlcnMuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbGlua0hhbmRsZXI6IExpbmtIYW5kbGVyLFxuICAgICAgICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzLFxuICAgICAgICBwdWJsaWMgZ2xvYmFsczogUmVjb3JkPHN0cmluZywgTGl0ZXJhbD4gPSB7fSxcbiAgICAgICAgcHVibGljIGJpbmFyeU9wczogQmluYXJ5T3BIYW5kbGVyID0gY3JlYXRlQmluYXJ5T3BzKGxpbmtIYW5kbGVyLm5vcm1hbGl6ZSksXG4gICAgICAgIHB1YmxpYyBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uSW1wbD4gPSBERUZBVUxUX0ZVTkNUSU9OU1xuICAgICkge31cblxuICAgIC8qKiBTZXQgYSBnbG9iYWwgdmFsdWUgaW4gdGhpcyBjb250ZXh0LiAqL1xuICAgIHB1YmxpYyBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogTGl0ZXJhbCk6IEV2YWx1YXRvciB7XG4gICAgICAgIHRoaXMuZ2xvYmFsc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKiogR2V0IHRoZSB2YWx1ZSBvZiBhIGdsb2JhbCB2YXJpYWJsZSBieSBuYW1lLiBSZXR1cm5zIG51bGwgaWYgbm90IHByZXNlbnQuICovXG4gICAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBMaXRlcmFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2xvYmFsc1tuYW1lXSA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gZXZhbHVhdGUgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gaW4gdGhpcyBjb250ZXh0LCByYWlzaW5nIGFuIGV4Y2VwdGlvbiBvbiBmYWlsdXJlLiAqL1xuICAgIHB1YmxpYyB0cnlFdmFsdWF0ZShleHByOiBFeHByZXNzaW9uLCB2YXJpYWJsZXM6IFZhcmlhYmxlcyA9IFZhcmlhYmxlcy5lbXB0eSgpKTogTGl0ZXJhbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlKGV4cHIsIHZhcmlhYmxlcykub3JFbHNlVGhyb3coKTtcbiAgICB9XG5cbiAgICAvKiogRXZhbHVhdGUgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gaW4gdGhpcyBjb250ZXh0LiAqL1xuICAgIHB1YmxpYyBldmFsdWF0ZShleHByOiBFeHByZXNzaW9uLCB2YXJpYWJsZXM6IFZhcmlhYmxlcyA9IFZhcmlhYmxlcy5lbXB0eSgpKTogUmVzdWx0PExpdGVyYWwsIHN0cmluZz4ge1xuICAgICAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImxpdGVyYWxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoZXhwci52YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFwidmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5uYW1lID09PSBFeHByZXNzaW9ucy5ST1cpIHJldHVybiBSZXN1bHQuc3VjY2Vzcyh2YXJpYWJsZXMuYWxsKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB2YXJpYWJsZXMucmVzb2x2ZShleHByLm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIGlmIChleHByLm5hbWUgaW4gdGhpcy5nbG9iYWxzKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3ModGhpcy5nbG9iYWxzW2V4cHIubmFtZV0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKG51bGwpO1xuICAgICAgICAgICAgY2FzZSBcIm5lZ2F0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZShleHByLmNoaWxkLCB2YXJpYWJsZXMpLm1hcCgocykgPT4gIUxpdGVyYWxzLmlzVHJ1dGh5KHMpKTtcbiAgICAgICAgICAgIGNhc2UgXCJiaW5hcnlvcFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmxhdE1hcDIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZhbHVhdGUoZXhwci5sZWZ0LCB2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2YWx1YXRlKGV4cHIucmlnaHQsIHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PiB0aGlzLmJpbmFyeU9wcy5ldmFsdWF0ZShleHByLm9wLCBhLCBiLCB0aGlzKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBleHByLnZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3ViZXZhbCA9IHRoaXMuZXZhbHVhdGUoY2hpbGQsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3ViZXZhbC5zdWNjZXNzZnVsKSByZXR1cm4gc3ViZXZhbDtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goc3ViZXZhbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGxldCBvYmpSZXN1bHQ6IERhdGFPYmplY3QgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCBjaGlsZF0gb2YgT2JqZWN0LmVudHJpZXMoZXhwci52YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJldmFsID0gdGhpcy5ldmFsdWF0ZShjaGlsZCwgdmFyaWFibGVzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWJldmFsLnN1Y2Nlc3NmdWwpIHJldHVybiBzdWJldmFsO1xuICAgICAgICAgICAgICAgICAgICBvYmpSZXN1bHRba2V5XSA9IHN1YmV2YWwudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhvYmpSZXN1bHQpO1xuICAgICAgICAgICAgY2FzZSBcImxhbWJkYVwiOlxuICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVseWluZyBvbiBKUyB0byBjYXB0dXJlICdkYXRhJyBmb3IgdXMgaW1wbGljaXRseTsgdW5zdXJlXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjb3JyZWN0IHRoaW5nIHRvIGRvLiBDb3VsZCBjYXVzZSB3ZWlyZCBiZWhhdmlvcnMuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKChjdHg6IEV2YWx1YXRvciwgLi4uYXJnczogTGl0ZXJhbFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+ID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFyZyA9IDA7IGFyZyA8IE1hdGgubWluKGFyZ3MubGVuZ3RoLCBleHByLmFyZ3VtZW50cy5sZW5ndGgpOyBhcmcrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzW2V4cHIuYXJndW1lbnRzW2FyZ11dID0gYXJnc1thcmddO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5ldmFsdWF0ZShleHByLnZhbHVlLCBWYXJpYWJsZXMubGFtYmRhKHZhcmlhYmxlcywgbG9jYWxzKSkub3JFbHNlVGhyb3coKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIGxldCByYXdGdW5jID1cbiAgICAgICAgICAgICAgICAgICAgZXhwci5mdW5jLnR5cGUgPT0gXCJ2YXJpYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFJlc3VsdC5zdWNjZXNzPHN0cmluZywgc3RyaW5nPihleHByLmZ1bmMubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5ldmFsdWF0ZShleHByLmZ1bmMsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyYXdGdW5jLnN1Y2Nlc3NmdWwpIHJldHVybiByYXdGdW5jO1xuICAgICAgICAgICAgICAgIGxldCBmdW5jID0gcmF3RnVuYy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGxldCBhcmdzOiBMaXRlcmFsW10gPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBhcmcgb2YgZXhwci5hcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gdGhpcy5ldmFsdWF0ZShhcmcsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzb2x2ZWQuc3VjY2Vzc2Z1bCkgcmV0dXJuIHJlc29sdmVkO1xuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2gocmVzb2x2ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBjYWxsOiBGdW5jdGlvbkltcGw7XG4gICAgICAgICAgICAgICAgaWYgKExpdGVyYWxzLmlzRnVuY3Rpb24oZnVuYykpIGNhbGwgPSBmdW5jIGFzIEZ1bmN0aW9uSW1wbDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChMaXRlcmFscy5pc1N0cmluZyhmdW5jKSAmJiBmdW5jIGluIHRoaXMuZnVuY3Rpb25zKSBjYWxsID0gdGhpcy5mdW5jdGlvbnNbZnVuY107XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoTGl0ZXJhbHMuaXNTdHJpbmcoZnVuYykpIHJldHVybiBSZXN1bHQuZmFpbHVyZShgVW5yZWNvZ25pemVkIGZ1bmN0aW9uIG5hbWUgJyR7ZnVuY30nYCk7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gUmVzdWx0LmZhaWx1cmUoYENhbm5vdCBjYWxsIHR5cGUgJyR7TGl0ZXJhbHMudHlwZU9mKGZ1bmMpfScgYXMgYSBmdW5jdGlvbmApO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKGNhbGwodGhpcywgLi4uYXJncykpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5mYWlsdXJlKGUubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogR2V0IHZhcmlhYmxlcyBmcm9tIGEgcGxhaW4gb2JqZWN0LiAqL1xuZXhwb3J0IGNsYXNzIE9iamVjdFZhcmlhYmxlcyBpbXBsZW1lbnRzIFZhcmlhYmxlcyB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvYmplY3Q6IERhdGFPYmplY3QpIHt9XG5cbiAgICBwdWJsaWMgYWxsKCk6IERhdGFPYmplY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFtuYW1lXTtcbiAgICB9XG59XG5cbi8qKiBHZXQgdmFyaWFibGVzIGZyb20gYSBmaWVsZC1iZWFyaW5nIG9iamVjdCAod2hpY2ggc3VwcG9ydHMgY2FzZSBpbnNlbnNpdGl2aXR5KS4gKi9cbmV4cG9ydCBjbGFzcyBGaWVsZGJlYXJpbmdWYXJpYWJsZXMgaW1wbGVtZW50cyBWYXJpYWJsZXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgb2JqZWN0OiBGaWVsZGJlYXJpbmcpIHt9XG5cbiAgICBwdWJsaWMgYWxsKCk6IERhdGFPYmplY3Qge1xuICAgICAgICBjb25zdCBvYmplY3Q6IERhdGFPYmplY3QgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLm9iamVjdC5maWVsZHMpIHtcbiAgICAgICAgICAgIG9iamVjdFtmaWVsZC5rZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlKG5hbWU6IHN0cmluZyk6IExpdGVyYWwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3QuZmllbGQobmFtZSk/LnZhbHVlO1xuICAgIH1cbn1cblxuLyoqIERlbGVnYXRlIHRvIGxvY2FsIGNvbnRleHQgZmlyc3QsIHRoZW4gdG8gcGFyZW50IGNvbnRleHQgaWYgbm90IGF2YWlsYWJsZS4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFWYXJpYWJsZXMgaW1wbGVtZW50cyBWYXJpYWJsZXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcGFyZW50OiBWYXJpYWJsZXMsIHB1YmxpYyBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+KSB7fVxuXG4gICAgcHVibGljIGFsbCgpOiBEYXRhT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5wYXJlbnQuYWxsKCksIC4uLnRoaXMubG9jYWxzIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogTGl0ZXJhbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2Fsc1tuYW1lXSA/PyB0aGlzLnBhcmVudC5yZXNvbHZlKG5hbWUpO1xuICAgIH1cbn1cblxuLyoqIERlZmF1bHQgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1ha2luZyB2YXJpYWJsZSBzdG9yZXMuICovXG5leHBvcnQgbmFtZXNwYWNlIFZhcmlhYmxlcyB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIGVtcHR5KCkge1xuICAgICAgICByZXR1cm4gbmV3IE9iamVjdFZhcmlhYmxlcyh7fSk7XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGluZmVyKG9iamVjdDogYW55KTogVmFyaWFibGVzIHtcbiAgICAgICAgaWYgKEZpZWxkYmVhcmluZ3MuaXNGaWVsZGJlYXJpbmcob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWVsZGJlYXJpbmdWYXJpYWJsZXMob2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0VmFyaWFibGVzKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gbGFtYmRhKHBhcmVudDogVmFyaWFibGVzLCBsb2NhbHM6IFJlY29yZDxzdHJpbmcsIExpdGVyYWw+KTogVmFyaWFibGVzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMYW1iZGFWYXJpYWJsZXMocGFyZW50LCBsb2NhbHMpO1xuICAgIH1cbn1cbiIsICIvLyEgUHJvdmlkZXMgdXRpbGl0aWVzIGZvciBleGVjdXRpbmcgcXVlcmllcyBhZ2FpbnN0IHRoZSBzdG9yYWdlIGxheWVyLlxuaW1wb3J0IHsgSW5kZXhQcmltaXRpdmUsIEluZGV4UXVlcnksIEluZGV4U291cmNlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4LXF1ZXJ5XCI7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlcnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWx0ZXJzXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgRXhwcmVzc2lvbnMgfSBmcm9tIFwiZXhwcmVzc2lvbi9leHByZXNzaW9uXCI7XG5pbXBvcnQgeyBFdmFsdWF0b3IsIFZhcmlhYmxlcyB9IGZyb20gXCJleHByZXNzaW9uL2V2YWx1YXRvclwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgTGl0ZXJhbHMgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW5kZXggUXVlcnkgT3B0aW1pemF0aW9uIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIFBlcmZvcm0gc2ltcGxlIHJlY3Vyc2l2ZSBvcHRpbWl6YXRpb25zIG92ZXIgYW4gaW5kZXggcXVlcnksIHN1Y2ggYXMgY29uc3RhbnQgZm9sZGluZyBhbmQgZGUtbmVzdGluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcHRpbWl6ZVF1ZXJ5KHF1ZXJ5OiBJbmRleFF1ZXJ5KTogSW5kZXhRdWVyeSB7XG4gICAgcXVlcnkgPSBkZW5lc3QocXVlcnkpO1xuICAgIHF1ZXJ5ID0gY29uc3RhbnRmb2xkKHF1ZXJ5KTtcblxuICAgIHJldHVybiBxdWVyeTtcbn1cblxuLyoqIERlLW5lc3QgcmVjdXJzaXZlbHkgbmVzdGVkIEFORCBhbmQgT1IgcXVlcmllcyBpbnRvIGEgc2luZ2xlIHRvcC1sZXZlbCBhbmQvb3IuICovXG5mdW5jdGlvbiBkZW5lc3QocXVlcnk6IEluZGV4UXVlcnkpOiBJbmRleFF1ZXJ5IHtcbiAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgYW5kcyA9IHF1ZXJ5LmVsZW1lbnRzLmZsYXRNYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXhlZCA9IGRlbmVzdChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZml4ZWQudHlwZSA9PT0gXCJhbmRcIikgcmV0dXJuIGZpeGVkLmVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFtmaXhlZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiYW5kXCIsIGVsZW1lbnRzOiBhbmRzIH07XG4gICAgICAgIGNhc2UgXCJvclwiOlxuICAgICAgICAgICAgY29uc3Qgb3JzID0gcXVlcnkuZWxlbWVudHMuZmxhdE1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVkID0gZGVuZXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChmaXhlZC50eXBlID09PSBcIm9yXCIpIHJldHVybiBmaXhlZC5lbGVtZW50cztcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBbZml4ZWRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcIm9yXCIsIGVsZW1lbnRzOiBvcnMgfTtcbiAgICAgICAgY2FzZSBcIm5vdFwiOlxuICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3RcIiwgZWxlbWVudDogZGVuZXN0KHF1ZXJ5LmVsZW1lbnQpIH07XG4gICAgICAgIGNhc2UgXCJjaGlsZC1vZlwiOlxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IHBhcmVudHM6IGRlbmVzdChxdWVyeS5wYXJlbnRzKSB9KTtcbiAgICAgICAgY2FzZSBcInBhcmVudC1vZlwiOlxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IGNoaWxkcmVuOiBkZW5lc3QocXVlcnkuY2hpbGRyZW4pIH0pO1xuICAgICAgICBjYXNlIFwibGlua2VkXCI6XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgcXVlcnksIHsgc291cmNlOiBkZW5lc3QocXVlcnkuc291cmNlKSB9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9XG59XG5cbi8qKiBQZXJmb3JtIGNvbnN0YW50IGZvbGRpbmcgYnkgZWxpbWluYXRpbmcgZGVhZCAndHJ1ZScgYW5kICdmYWxzZScgdGVybXMuICovXG5mdW5jdGlvbiBjb25zdGFudGZvbGQocXVlcnk6IEluZGV4UXVlcnkpOiBJbmRleFF1ZXJ5IHtcbiAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgYWNoaWxkcmVuID0gW10gYXMgSW5kZXhRdWVyeVtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBxdWVyeS5lbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlZCA9IGNvbnN0YW50Zm9sZChjaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAvLyBFbGltaW5hdGUgJ3RydWUnIGNvbnN0YW50cyBhbmQgZWxpbWluYXRlIHRoZSBlbnRpcmUgYW5kIG9uIGEgJ2ZhbHNlJyBjb25zdGFudC5cbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLmNvbnN0YW50KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGFjaGlsZHJlbi5wdXNoKGZvbGRlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiYW5kXCIsIGVsZW1lbnRzOiBhY2hpbGRyZW4gfTtcbiAgICAgICAgY2FzZSBcIm9yXCI6XG4gICAgICAgICAgICBjb25zdCBvY2hpbGRyZW4gPSBbXSBhcyBJbmRleFF1ZXJ5W107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHF1ZXJ5LmVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVkID0gY29uc3RhbnRmb2xkKGNoaWxkKTtcblxuICAgICAgICAgICAgICAgIC8vIEVsaW1pbmF0ZSAnZmFsc2UnIGNvbnN0YW50cyBhbmQgc2hvcnQgY2lyY3VpdCBvbiBhICd0cnVlJyBjb25zdGFudC5cbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVkLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZvbGRlZC5jb25zdGFudCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHsgdHlwZTogXCJjb25zdGFudFwiLCBjb25zdGFudDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9jaGlsZHJlbi5wdXNoKGZvbGRlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwib3JcIiwgZWxlbWVudHM6IG9jaGlsZHJlbiB9O1xuICAgICAgICBjYXNlIFwibm90XCI6XG4gICAgICAgICAgICBjb25zdCBmb2xkZWQgPSBjb25zdGFudGZvbGQocXVlcnkuZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChmb2xkZWQudHlwZSA9PT0gXCJjb25zdGFudFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogXCJjb25zdGFudFwiLCBjb25zdGFudDogIWZvbGRlZC5jb25zdGFudCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiBcIm5vdFwiLCBlbGVtZW50OiBmb2xkZWQgfTtcbiAgICAgICAgY2FzZSBcImNoaWxkLW9mXCI6XG4gICAgICAgICAgICAvLyBwYXJlbnRzID0gRU1QVFkgbWVhbnMgdGhpcyB3aWxsIGFsc28gYmUgZW1wdHkuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRzID0gY29uc3RhbnRmb2xkKHF1ZXJ5LnBhcmVudHMpO1xuICAgICAgICAgICAgaWYgKHBhcmVudHMudHlwZSA9PT0gXCJjb25zdGFudFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnRzLmNvbnN0YW50KSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhcmVudHMuY29uc3RhbnQgJiYgcXVlcnkuaW5jbHVzaXZlKSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBxdWVyeSwgeyBwYXJlbnRzIH0pO1xuICAgICAgICBjYXNlIFwicGFyZW50LW9mXCI6XG4gICAgICAgICAgICAvLyBjaGlsZHJlbiA9IEVNUFRZIG1lYW5zIHRoaXMgd2lsbCBhbHNvIGJlIGVtcHR5LlxuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBjb25zdGFudGZvbGQocXVlcnkuY2hpbGRyZW4pO1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgIGlmICghY2hpbGRyZW4uY29uc3RhbnQpIHJldHVybiB7IHR5cGU6IFwiY29uc3RhbnRcIiwgY29uc3RhbnQ6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4uY29uc3RhbnQgJiYgcXVlcnkuaW5jbHVzaXZlKSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBxdWVyeSwgeyBjaGlsZHJlbiB9KTtcbiAgICAgICAgY2FzZSBcImxpbmtlZFwiOlxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29uc3RhbnRmb2xkKHF1ZXJ5LnNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoc291cmNlLnR5cGUgPT09IFwiY29uc3RhbnRcIikge1xuICAgICAgICAgICAgICAgIGlmICghc291cmNlLmNvbnN0YW50KSByZXR1cm4geyB0eXBlOiBcImNvbnN0YW50XCIsIGNvbnN0YW50OiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZS5jb25zdGFudCAmJiBxdWVyeS5pbmNsdXNpdmUpIHJldHVybiB7IHR5cGU6IFwiY29uc3RhbnRcIiwgY29uc3RhbnQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5LCB7IHNvdXJjZSB9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbmRleCBRdWVyeSBFeGVjdXRvciAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqIEludGVyZmFjZSBwcm92aWRlZCB0byB0aGUgcXVlcnkgZXhlY3V0b3IgdG8gcmVzb2x2ZSBxdWVyeSBsZWFmIG5vZGVzIChsaWtlIFwiZmluZCBhbGwgcGFnZXMgbWF0Y2hpbmcgJyN0YWcnXCIpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmRleFJlc29sdmVyPFQ+IHtcbiAgICAvKiogVGhlIHNldCBvZiBhbGwgcG9zc2libGUgb2JqZWN0cy4gKi9cbiAgICB1bml2ZXJzZTogU2V0PFQ+O1xuXG4gICAgLyoqIFJlc29sdmUgYW4gYXJiaXRyYXJ5IGluZGV4IHNvdXJjZSAobGlrZSBcImZpbmQgYWxsIHBhZ2VzIG1hdGNoaW5nICcjdGFnJ1wiKSBpbnRvIGEgZmlsdGVyLiAgKi9cbiAgICByZXNvbHZlKGxlYWY6IEluZGV4U291cmNlKTogUmVzdWx0PEZpbHRlcjxUPiwgc3RyaW5nPjtcblxuICAgIC8qKiBSZXNvbHZlIGFuIGluZGV4IHByaW1pdGl2ZSwgd2hpY2ggaXMgZ2FyYXVudGVlZCB0byBuZXZlciByYWlzZSBhbiBleGNlcHRpb24uICovXG4gICAgcmVzb2x2ZVByaW1pdGl2ZShsZWFmOiBJbmRleFByaW1pdGl2ZSk6IEZpbHRlcjxUPjtcblxuICAgIC8qKiBMb2FkIGEgc3BlY2lmaWMgb2JqZWN0IGlmIGF2YWlsYWJsZS4gKi9cbiAgICBsb2FkKGlkOiBUKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogRXhlY3V0ZSBhIHF1ZXJ5LCB1c2luZyB0aGUgZ2l2ZW4gcmVzb2x2ZXIgdG8gZXhlY3V0ZSB0aGUgbGVhZiBub2RlcyBhbmQgdGhlIGdpdmVuIGV2YWx1YXRvciB0byByZXNvbHZlIGV4cHJlc3Npb25zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGU8VD4oXG4gICAgcXVlcnk6IEluZGV4UXVlcnksXG4gICAgcmVzb2x2ZXI6IEluZGV4UmVzb2x2ZXI8VD4sXG4gICAgZXZhbHVhdG9yOiBFdmFsdWF0b3Jcbik6IFJlc3VsdDxGaWx0ZXI8VD4sIHN0cmluZz4ge1xuICAgIHJldHVybiBzaW1wbGlmeShxdWVyeSwgcmVzb2x2ZXIpLmZsYXRNYXAoKHRyZWUpID0+IGNvbGxhcHNlKHRyZWUsIHJlc29sdmVyLCBldmFsdWF0b3IpKTtcbn1cblxuLyoqIFNpbXBsaWZ5IGEgdHJlZSwgY29tYmluaW5nIHByaW1pdGl2ZXMgaW4gQU5Ecy9PUnMuICovXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxpZnk8VD4ocXVlcnk6IEluZGV4UXVlcnksIHJlc29sdmVyOiBJbmRleFJlc29sdmVyPFQ+KTogUmVzdWx0PEZpbHRlclRyZWU8VD4sIHN0cmluZz4ge1xuICAgIHN3aXRjaCAocXVlcnkudHlwZSkge1xuICAgICAgICBjYXNlIFwiYW5kXCI6XG4gICAgICAgICAgICAvLyBUT0RPOiBFYXJseSByZXR1cm4gb24gYSBOT1RISU5HIGluc2lkZSB0aGUgbWFwQWxsIGxvb3AuXG4gICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm1hcEFsbChxdWVyeS5lbGVtZW50cywgKGNoaWxkKSA9PiBzaW1wbGlmeShjaGlsZCwgcmVzb2x2ZXIpKS5tYXAoKGVsZW1lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdHRlbmVkID0gZWxlbWVudHMuZmxhdE1hcCgoZWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID09PSBcImFuZFwiID8gZWxlbWVudC5lbGVtZW50cyA6IFtlbGVtZW50XVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvdGhlcjogRmlsdGVyVHJlZTxUPltdID0gW107XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlID0gRmlsdGVycy5sYXp5SW50ZXJzZWN0KGZsYXR0ZW5lZCwgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXCJmaWx0ZXJcIikgcmV0dXJuIGVsZW1lbnQuZmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBFYXJseSByZXR1cm4gb24gTk9USElORyAobm90aGluZyB3aWxsIG1hdGNoKSwgYW5kIHNraXAgb24gTk9USElORy5cbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlLnR5cGUgPT09IFwibm90aGluZ1wiKSByZXR1cm4geyB0eXBlOiBcImZpbHRlclwiLCBmaWx0ZXI6IEZpbHRlcnMuTk9USElORyB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZS50eXBlICE9IFwiZXZlcnl0aGluZ1wiKSBvdGhlci5wdXNoKEZpbHRlclRyZWVzLmZpbHRlcihwcmltaXRpdmUpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJUcmVlcy5hbmQob3RoZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgXCJvclwiOlxuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5tYXBBbGwocXVlcnkuZWxlbWVudHMsIChjaGlsZCkgPT4gc2ltcGxpZnkoY2hpbGQsIHJlc29sdmVyKSkubWFwKChlbGVtZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXR0ZW5lZCA9IGVsZW1lbnRzLmZsYXRNYXAoKGVsZW1lbnQpID0+IChlbGVtZW50LnR5cGUgPT09IFwib3JcIiA/IGVsZW1lbnQuZWxlbWVudHMgOiBbZWxlbWVudF0pKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG90aGVyOiBGaWx0ZXJUcmVlPFQ+W10gPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmltaXRpdmUgPSBGaWx0ZXJzLmxhenlVbmlvbihmbGF0dGVuZWQsIChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFwiZmlsdGVyXCIpIHJldHVybiBlbGVtZW50LmZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gRWFybHkgcmV0dXJuIG9uIEVWRVJZVEhJTkcgKGFsbCB3aWxsIG1hdGNoKSwgYW5kIHNraXAgb24gTk9USElORy5cbiAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSByZXR1cm4geyB0eXBlOiBcImZpbHRlclwiLCBmaWx0ZXI6IEZpbHRlcnMuRVZFUllUSElORyB9O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZS50eXBlICE9IFwibm90aGluZ1wiKSBvdGhlci5wdXNoKEZpbHRlclRyZWVzLmZpbHRlcihwcmltaXRpdmUpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJUcmVlcy5vcihvdGhlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSBcIm5vdFwiOlxuICAgICAgICAgICAgcmV0dXJuIHNpbXBsaWZ5KHF1ZXJ5LmVsZW1lbnQsIHJlc29sdmVyKS5tYXAoRmlsdGVyVHJlZXMubm90KTtcbiAgICAgICAgY2FzZSBcImV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBoYXNWYXJpYWJsZXMocXVlcnkuZXhwcmVzc2lvbiwgcmVzb2x2ZXIpO1xuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHsgdHlwZTogXCJzY2FuXCIsIGNhbmRpZGF0ZXMsIGV4cHJlc3Npb246IHF1ZXJ5LmV4cHJlc3Npb24gfSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShxdWVyeSkubWFwKChmaWx0ZXIpID0+ICh7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlciB9KSk7XG4gICAgfVxufVxuXG4vKiogQ29sbGFwc2UgYSBmaWx0ZXIgdHJlZSBieSBldmFsdWF0aW5nIGFsbCBzY2FucyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb250ZXh0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxhcHNlPFQ+KFxuICAgIHRyZWU6IEZpbHRlclRyZWU8VD4sXG4gICAgcmVzb2x2ZXI6IEluZGV4UmVzb2x2ZXI8VD4sXG4gICAgZXZhbHVhdG9yOiBFdmFsdWF0b3IsXG4gICAgbGltaXQ6IEZpbHRlcjxUPiA9IEZpbHRlcnMuRVZFUllUSElOR1xuKTogUmVzdWx0PEZpbHRlcjxUPiwgc3RyaW5nPiB7XG4gICAgc3dpdGNoICh0cmVlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcIm9yXCI6XG4gICAgICAgICAgICByZXR1cm4gRmlsdGVycy5sYXp5RmFpbGFibGVVbmlvbih0cmVlLmVsZW1lbnRzLCAoZWxlbWVudCkgPT4gY29sbGFwc2UoZWxlbWVudCwgcmVzb2x2ZXIsIGV2YWx1YXRvciwgbGltaXQpKTtcbiAgICAgICAgY2FzZSBcImFuZFwiOlxuICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlcyA9IHRyZWUuZWxlbWVudHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChlbGVtKTogZWxlbSBpcyB7IHR5cGU6IFwiZmlsdGVyXCI7IGZpbHRlcjogRmlsdGVyPFQ+IH0gPT4gZWxlbS50eXBlID09PSBcImZpbHRlclwiKVxuICAgICAgICAgICAgICAgIC5tYXAoKGYpID0+IGYuZmlsdGVyKTtcbiAgICAgICAgICAgIGxldCByZXN0cmljdGVkTGltaXQgPSBGaWx0ZXJzLmludGVyc2VjdChbbGltaXQsIC4uLnByaW1pdGl2ZXNdKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRyZWUuZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBcImZpbHRlclwiKSBjb250aW51ZTsgLy8gQWxyZWFkeSBpbiB0aGUgaW50ZXJzZWN0aW9uLlxuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVFdmFsdWF0ZWQgPSBjb2xsYXBzZShlbGVtZW50LCByZXNvbHZlciwgZXZhbHVhdG9yLCByZXN0cmljdGVkTGltaXQpO1xuICAgICAgICAgICAgICAgIGlmICghbWF5YmVFdmFsdWF0ZWQuc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlRXZhbHVhdGVkLmNhc3QoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2YWx1YXRlZCA9IG1heWJlRXZhbHVhdGVkLnZhbHVlO1xuICAgICAgICAgICAgICAgIHJlc3RyaWN0ZWRMaW1pdCA9IEZpbHRlcnMuaW50ZXJzZWN0KFtyZXN0cmljdGVkTGltaXQsIGV2YWx1YXRlZF0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3RyaWN0ZWRMaW1pdC50eXBlID09PSBcIm5vdGhpbmdcIikgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN0cmljdGVkTGltaXQpO1xuICAgICAgICBjYXNlIFwibm90XCI6XG4gICAgICAgICAgICByZXR1cm4gY29sbGFwc2UodHJlZS5lbGVtZW50LCByZXNvbHZlciwgZXZhbHVhdG9yLCBsaW1pdCkubWFwKEZpbHRlcnMubmVnYXRlKTtcbiAgICAgICAgY2FzZSBcImZpbHRlclwiOlxuICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHRyZWUuZmlsdGVyKTtcbiAgICAgICAgY2FzZSBcInNjYW5cIjpcbiAgICAgICAgICAgIC8vIExvY2FsIHRyZWUgY2FuZGlkYXRlcyArIGV4aXN0aW5nIGxpbWl0IHRvIHByb2R1Y2UgdGhlIG1pbmltYWwgc2V0IG9mIGNhbmRpZGF0ZXMuXG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gRmlsdGVycy5yZXNvbHZlKEZpbHRlcnMuaW50ZXJzZWN0KFt0cmVlLmNhbmRpZGF0ZXMsIGxpbWl0XSksIHJlc29sdmVyLnVuaXZlcnNlKTtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJTY2FuKGNhbmRpZGF0ZXMsIHRyZWUuZXhwcmVzc2lvbiwgZXZhbHVhdG9yLCByZXNvbHZlcikubWFwKEZpbHRlcnMuYXRvbSk7XG4gICAgfVxufVxuXG4vKiogU2NhbiBvdmVyIGFsbCBjYW5kaWRhdGUgb2JqZWN0cywgcmV0dXJuaW5nIG9iamVjdHMgZm9yIHdoaWNoIHRoZSBnaXZlbiBleHByZXNzaW9uIHJlc29sdmVzIHRvIHRydWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2NhbjxUPihcbiAgICBjYW5kaWRhdGVzOiBTZXQ8VD4sXG4gICAgZXhwcjogRXhwcmVzc2lvbixcbiAgICBldmFsdWF0b3I6IEV2YWx1YXRvcixcbiAgICByZXNvbHZlcjogSW5kZXhSZXNvbHZlcjxUPlxuKTogUmVzdWx0PFNldDxUPiwgc3RyaW5nPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldDxUPigpO1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0gcmVzb2x2ZXIubG9hZChjYW5kaWRhdGUpO1xuICAgICAgICBpZiAoIW9iamVjdCkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmFsdWF0b3IuZXZhbHVhdGUoZXhwciwgVmFyaWFibGVzLmluZmVyKG9iamVjdCkpO1xuICAgICAgICBpZiAoIXZhbHVlLnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZmFpbHVyZShgRXJyb3Igd2hpbGUgZXZhbHVhdGluZyBleHByZXNzaW9uIFwiJHtFeHByZXNzaW9ucy50b1N0cmluZyhleHByKX1cIjogJHt2YWx1ZS5lcnJvcn1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChMaXRlcmFscy5pc1RydXRoeSh2YWx1ZS52YWx1ZSkpIHJlc3VsdC5hZGQoY2FuZGlkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhyZXN1bHQpO1xufVxuXG4vKiogRmlsdGVycyBhbiBleHByZXNzaW9uIHRvIGZpbmQgcGFnZXMgdGhhdCBoYXZlIHRoZSB2YXJpYWJsZXMgZm9yIHRoYXQgZXhwcmVzc2lvbi4gICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVmFyaWFibGVzPFQ+KGV4cHI6IEV4cHJlc3Npb24sIHJlc29sdmVyOiBJbmRleFJlc29sdmVyPFQ+KTogRmlsdGVyPFQ+IHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBFeHByZXNzaW9ucy51bmJvdW5kVmFyaWFibGVzKGV4cHIsIG5ldyBTZXQoW0V4cHJlc3Npb25zLlJPVywgXCJ0aGlzXCJdKSk7XG5cbiAgICAvLyB2YXJpYWJsZXMgPSAwIGltcGxpZXNzIHNvbWUgd2VpcmQgZnVuY3Rpb24gb3IgY29uc3RhbnQgZXhwcmVzc2lvbi5cbiAgICAvLyBUT0RPOiB3ZSBjYW4gcHJvYmFibHkgZXZhbHVhdGUgaXQgd2l0aG91dCBldmVuIHNjYW5uaW5nIHRvIGB0cnVlYCBvciBgZmFsc2VgIGJ1dCB0byBiZSBkZWZlbnNpdmUgaGF2ZSB0byByZXR1cm4gZXZlcnl0aGluZyBmb3Igbm93LlxuICAgIGlmICh2YXJpYWJsZXMuc2l6ZSA9PSAwKSByZXR1cm4gRmlsdGVycy5FVkVSWVRISU5HO1xuXG4gICAgcmV0dXJuIEZpbHRlcnMubGF6eVVuaW9uKHZhcmlhYmxlcywgKHZhcmlhYmxlKSA9PiByZXNvbHZlci5yZXNvbHZlUHJpbWl0aXZlKHsgdHlwZTogXCJmaWVsZFwiLCB2YWx1ZTogdmFyaWFibGUgfSkpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbHRlciBUcmVlcyAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIEZpbHRlclRyZWU8VD4gPVxuICAgIHwgeyB0eXBlOiBcImFuZFwiOyBlbGVtZW50czogRmlsdGVyVHJlZTxUPltdIH1cbiAgICB8IHsgdHlwZTogXCJvclwiOyBlbGVtZW50czogRmlsdGVyVHJlZTxUPltdIH1cbiAgICB8IHsgdHlwZTogXCJub3RcIjsgZWxlbWVudDogRmlsdGVyVHJlZTxUPiB9XG4gICAgfCB7IHR5cGU6IFwiZmlsdGVyXCI7IGZpbHRlcjogRmlsdGVyPFQ+IH1cbiAgICB8IHsgdHlwZTogXCJzY2FuXCI7IGNhbmRpZGF0ZXM6IEZpbHRlcjxUPjsgZXhwcmVzc2lvbjogRXhwcmVzc2lvbiB9O1xuXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlclRyZWVzIHtcbiAgICBleHBvcnQgZnVuY3Rpb24gZmlsdGVyPFQ+KGZpbHRlcjogRmlsdGVyPFQ+KTogRmlsdGVyVHJlZTxUPiB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlciB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBhbmQ8VD4oY2hpbGRyZW46IEZpbHRlclRyZWU8VD5bXSk6IEZpbHRlclRyZWU8VD4ge1xuICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBmaWx0ZXIoRmlsdGVycy5FVkVSWVRISU5HKTtcbiAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDEpIHJldHVybiBjaGlsZHJlblswXTtcbiAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcImFuZFwiLCBlbGVtZW50czogY2hpbGRyZW4gfTtcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gb3I8VD4oY2hpbGRyZW46IEZpbHRlclRyZWU8VD5bXSk6IEZpbHRlclRyZWU8VD4ge1xuICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBmaWx0ZXIoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09IDEpIHJldHVybiBjaGlsZHJlblswXTtcbiAgICAgICAgZWxzZSByZXR1cm4geyB0eXBlOiBcIm9yXCIsIGVsZW1lbnRzOiBjaGlsZHJlbiB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBub3Q8VD4oY2hpbGQ6IEZpbHRlclRyZWU8VD4pOiBGaWx0ZXJUcmVlPFQ+IHtcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IFwiZmlsdGVyXCIpIHJldHVybiB7IHR5cGU6IFwiZmlsdGVyXCIsIGZpbHRlcjogRmlsdGVycy5uZWdhdGUoY2hpbGQuZmlsdGVyKSB9O1xuICAgICAgICBlbHNlIHJldHVybiB7IHR5cGU6IFwibm90XCIsIGVsZW1lbnQ6IGNoaWxkIH07XG4gICAgfVxufVxuIiwgImltcG9ydCB7IExpbmssIExpdGVyYWxzIH0gZnJvbSBcImV4cHJlc3Npb24vbGl0ZXJhbFwiO1xuaW1wb3J0IHsgRmlsdGVyLCBGaWx0ZXJzIH0gZnJvbSBcImV4cHJlc3Npb24vZmlsdGVyc1wiO1xuaW1wb3J0IHsgRm9sZGVySW5kZXggfSBmcm9tIFwiaW5kZXgvc3RvcmFnZS9mb2xkZXJcIjtcbmltcG9ydCB7IEludmVydGVkSW5kZXggfSBmcm9tIFwiaW5kZXgvc3RvcmFnZS9pbnZlcnRlZFwiO1xuaW1wb3J0IHsgSW5kZXhQcmltaXRpdmUsIEluZGV4UXVlcnksIEluZGV4U291cmNlIH0gZnJvbSBcImluZGV4L3R5cGVzL2luZGV4LXF1ZXJ5XCI7XG5pbXBvcnQgeyBJbmRleGFibGUsIExJTktBQkxFX1RZUEUsIExJTktCRUFSSU5HX1RZUEUsIFRBR0dBQkxFX1RZUEUgfSBmcm9tIFwiaW5kZXgvdHlwZXMvaW5kZXhhYmxlXCI7XG5pbXBvcnQgeyBNZXRhZGF0YUNhY2hlLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgTWFya2Rvd25QYWdlIH0gZnJvbSBcIi4vdHlwZXMvbWFya2Rvd25cIjtcbmltcG9ydCB7IGV4dHJhY3RTdWJ0YWdzLCBub3JtYWxpemVIZWFkZXJGb3JMaW5rIH0gZnJvbSBcInV0aWxzL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgRmxhdFF1ZXVlIGZyb20gXCJmbGF0cXVldWVcIjtcbmltcG9ydCB7IEJUcmVlRmllbGRJbmRleCwgRXZlcnl0aGluZ0ZpZWxkSW5kZXgsIEZpZWxkSW5kZXgsIElkRmllbGRJbmRleCwgU2V0RmllbGRJbmRleCB9IGZyb20gXCJpbmRleC9zdG9yYWdlL2ZpZWxkc1wiO1xuaW1wb3J0IHsgRklFTERCRUFSSU5HX1RZUEUsIEZpZWxkLCBGaWVsZGJlYXJpbmcgfSBmcm9tIFwiZXhwcmVzc2lvbi9maWVsZFwiO1xuaW1wb3J0IHsgSW5kZXhSZXNvbHZlciwgZXhlY3V0ZSwgb3B0aW1pemVRdWVyeSB9IGZyb20gXCJpbmRleC9zdG9yYWdlL3F1ZXJ5LWV4ZWN1dG9yXCI7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tIFwiYXBpL3Jlc3VsdFwiO1xuaW1wb3J0IHsgRXZhbHVhdG9yIH0gZnJvbSBcImV4cHJlc3Npb24vZXZhbHVhdG9yXCI7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gXCJzZXR0aW5nc1wiO1xuXG4vKiogQ2VudHJhbCwgaW5kZXggc3RvcmFnZSBmb3IgZGF0YWNvcmUgdmFsdWVzLiAqL1xuZXhwb3J0IGNsYXNzIERhdGFzdG9yZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHN0b3JlIHJldmlzaW9uLiAqL1xuICAgIHB1YmxpYyByZXZpc2lvbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE1hc3RlciBjb2xsZWN0aW9uIG9mIGFsbCBvYmplY3QgSURzLiBUaGlzIGlzIHRlY2huaWNhbGx5IHJlZHVuZGFudCB3aXRoIG9iamVjdHMua2V5cygpIGJ1dCB0aGlzIGlzIGEgZmFzdCBzZXRcbiAgICAgKiBjb21wYXJlZCB0byBhbiBpdGVyYXRvci5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlkczogU2V0PHN0cmluZz47XG4gICAgLyoqIFRoZSBtYXN0ZXIgY29sbGVjdGlvbiBvZiBBTEwgaW5kZXhlZCBvYmplY3RzLCBtYXBwaW5nIElEIC0+IHRoZSBvYmplY3QuICovXG4gICAgcHJpdmF0ZSBvYmplY3RzOiBNYXA8c3RyaW5nLCBJbmRleGFibGU+O1xuICAgIC8qKiBNYXAgcGFyZW50IG9iamVjdCB0byBpdCdzIGRpcmVjdCBjaGlsZCBvYmplY3RzLiAqL1xuICAgIHByaXZhdGUgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PjtcblxuICAgIC8vIEluZGljZXMgZm9yIHRoZSB2YXJpb3VzIGFjY2VwdGVkIHF1ZXJ5IHR5cGVzLiBUaGVzZSB3aWxsIHByb2JhYmx5IGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IHR5cGUgbGF0ZXIuXG4gICAgLyoqIEdsb2JhbCBtYXAgb2Ygb2JqZWN0IHR5cGUgLT4gbGlzdCBvZiBhbGwgb2JqZWN0cyBvZiB0aGF0IHR5cGUuICovXG4gICAgcHJpdmF0ZSB0eXBlczogSW52ZXJ0ZWRJbmRleDxzdHJpbmc+O1xuICAgIC8qKiBUcmFja3MgZXhhY3QgdGFnIG9jY3VyZW5jZSBpbiBvYmplY3RzLiAqL1xuICAgIHByaXZhdGUgZXRhZ3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogVHJhY2tzIHRhZyBvY2N1cmVuY2UgaW4gb2JqZWN0cy4gKi9cbiAgICBwcml2YXRlIHRhZ3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogTWFwcyBsaW5rIHN0cmluZ3MgdG8gdGhlIG9iamVjdCBJRHMgdGhhdCBsaW5rIHRvIHRob3NlIGxpbmtzLiAqL1xuICAgIHByaXZhdGUgbGlua3M6IEludmVydGVkSW5kZXg8c3RyaW5nPjtcbiAgICAvKiogVHJhY2tzIHRoZSBleGlzdGVuY2Ugb2YgZmllbGRzIChpbmRleGVkIGJ5IG5vcm1hbGl6ZWQga2V5IG5hbWUpLiAqL1xuICAgIHByaXZhdGUgZmllbGRzOiBNYXA8c3RyaW5nLCBGaWVsZEluZGV4PjtcbiAgICAvKipcbiAgICAgKiBRdWljayBzZWFyY2hlcyBmb3Igb2JqZWN0cyBpbiBmb2xkZXJzLiBUaGlzIGluZGV4IG9ubHkgdHJhY2tzIHRvcC1sZXZlbCBvYmplY3RzIC0gaXQgaXMgZXhwYW5kZWQgcmVjdXJzaXZlbHkgdG9cbiAgICAgKiBmaW5kIGNoaWxkIG9iamVjdHMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmb2xkZXI6IEZvbGRlckluZGV4O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyB2YXVsdDogVmF1bHQsIHB1YmxpYyBtZXRhZGF0YUNhY2hlOiBNZXRhZGF0YUNhY2hlLCBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMucmV2aXNpb24gPSAwO1xuICAgICAgICB0aGlzLmlkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgdGhpcy5vYmplY3RzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIHRoaXMudHlwZXMgPSBuZXcgSW52ZXJ0ZWRJbmRleCgpO1xuICAgICAgICB0aGlzLmV0YWdzID0gbmV3IEludmVydGVkSW5kZXgoKTtcbiAgICAgICAgdGhpcy50YWdzID0gbmV3IEludmVydGVkSW5kZXgoKTtcbiAgICAgICAgdGhpcy5saW5rcyA9IG5ldyBJbnZlcnRlZEluZGV4KCk7XG4gICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5faW5pdGlhbGl6ZUZpZWxkcygpO1xuICAgICAgICB0aGlzLmZvbGRlciA9IG5ldyBGb2xkZXJJbmRleCh2YXVsdCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybiB0aGUgdG90YWwgbnVtYmVyIG9mIG9iamVjdHMgaW4gdGhlIHN0b3JlLiAqL1xuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RzLnNpemU7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSB0aGUgcmV2aXNpb24gb2YgdGhlIGRhdGFzdG9yZSBkdWUgdG8gYW4gZXh0ZXJuYWwgdXBkYXRlLiAqL1xuICAgIHB1YmxpYyB0b3VjaCgpIHtcbiAgICAgICAgdGhpcy5yZXZpc2lvbiArPSAxO1xuICAgIH1cblxuICAgIC8qKiBMb2FkIGFuIG9iamVjdCBieSBJRC4gKi9cbiAgICBwdWJsaWMgbG9hZChpZDogc3RyaW5nKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMb2FkIGEgbGlzdCBvZiBvYmplY3RzIGJ5IElELiAqL1xuICAgIHB1YmxpYyBsb2FkKGlkczogc3RyaW5nW10pOiBJbmRleGFibGVbXTtcblxuICAgIC8qKiBMb2FkIGFuIG9iamVjdCBieSBJRCBvciBsaXN0IG9mIElEcy4gKi9cbiAgICBsb2FkKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSk6IEluZGV4YWJsZSB8IEluZGV4YWJsZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gaWQubWFwKChhKSA9PiB0aGlzLmxvYWQoYSkpLmZpbHRlcigob2JqKTogb2JqIGlzIEluZGV4YWJsZSA9PiBvYmogIT09IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RzLmdldChpZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdXAgc2FuZSBmaWVsZCBkZWZhdWx0cyBmb3Igc2V2ZXJhbCBpbmRleGFibGUgZmllbGRzLiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVGaWVsZHMoKTogTWFwPHN0cmluZywgRmllbGRJbmRleD4ge1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBuZXcgTWFwPHN0cmluZywgRmllbGRJbmRleD4oKTtcblxuICAgICAgICAvLyBTcGVjaWFsaXplIGluZGljZXMgZm9yICRpZCBhbmQgdGhlIG90aGVyIG9tbmlwcmVzZW50IGZpZWxkIHZhbHVlcy5cbiAgICAgICAgZmllbGRzLnNldChcbiAgICAgICAgICAgIFwiJGlkXCIsXG4gICAgICAgICAgICBuZXcgSWRGaWVsZEluZGV4KFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMuaWRzLFxuICAgICAgICAgICAgICAgIChpZCkgPT4gdGhpcy5vYmplY3RzLmhhcyhpZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGRzLnNldChcIiR0eXBlc1wiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcbiAgICAgICAgZmllbGRzLnNldChcIiR0eXBlbmFtZVwiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcbiAgICAgICAgZmllbGRzLnNldChcIiRyZXZpc2lvblwiLCBuZXcgRXZlcnl0aGluZ0ZpZWxkSW5kZXgoKCkgPT4gdGhpcy5pZHMpKTtcblxuICAgICAgICAvLyBPcHRpbWl6ZSBvdmVyICRjb21wbGV0ZWQgYW5kICRzdGF0dXMgbG9va3VwcyBmb3IgdGFza3MuXG4gICAgICAgIGZpZWxkcy5zZXQoXCIkY29tcGxldGVkXCIsIG5ldyBCVHJlZUZpZWxkSW5kZXgoKSk7XG4gICAgICAgIGZpZWxkcy5zZXQoXCIkc3RhdHVzXCIsIG5ldyBCVHJlZUZpZWxkSW5kZXgoKSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgZ2l2ZW4gb2JqZWN0LCBtYWtpbmcgaXQgaW1tZWRpYXRlbHkgcXVlcnlhYmxlLiBTdG9yaW5nIGFuIG9iamVjdFxuICAgICAqIHRha2VzIG93bmVyc2hpcCBvdmVyIGl0LCBhbmQgaW5kZXgtc3BlY2lmaWMgdmFyaWFibGVzIChwcmVmaXhlZCB2aWEgJyQnKSBtYXkgYmVcbiAgICAgKiBhZGRlZCB0byB0aGUgb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9yZTxUIGV4dGVuZHMgSW5kZXhhYmxlPihvYmplY3Q6IFQgfCBUW10sIHN1YnN0b3Jlcj86IFN1YnN0b3JlcjxUPikge1xuICAgICAgICB0aGlzLl9yZWN1cnNpdmVTdG9yZShvYmplY3QsIHRoaXMucmV2aXNpb24rKywgc3Vic3RvcmVyLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIC8qKiBSZWN1cnNpdmVseSBzdG9yZSBvYmplY3RzIHVzaW5nIGEgcG90ZW50aWFsIHN1YmluZGV4ZXIuICovXG4gICAgcHJpdmF0ZSBfcmVjdXJzaXZlU3RvcmU8VCBleHRlbmRzIEluZGV4YWJsZT4oXG4gICAgICAgIG9iamVjdDogVCB8IFRbXSxcbiAgICAgICAgcmV2aXNpb246IG51bWJlcixcbiAgICAgICAgc3Vic3RvcmVyPzogU3Vic3RvcmVyPFQ+LFxuICAgICAgICBwYXJlbnQ/OiBJbmRleGFibGVcbiAgICApIHtcbiAgICAgICAgLy8gSGFuZGxlIGFycmF5IGlucHV0cy5cbiAgICAgICAgaWYgKExpdGVyYWxzLmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWN1cnNpdmVTdG9yZShlbGVtZW50LCByZXZpc2lvbiwgc3Vic3RvcmVyLCBwYXJlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWxldGUgdGhlIHByZXZpb3VzIGluc3RhbmNlIG9mIHRoaXMgb2JqZWN0IGlmIHByZXNlbnQuXG4gICAgICAgIC8vIFRPRE86IFByb2JhYmx5IG9ubHkgYWN0dWFsbHkgbmVlZCB0byBkZWxldGUgdGhlIHJvb3Qgb2JqZWN0cy5cbiAgICAgICAgdGhpcy5fZGVsZXRlUmVjdXJzaXZlKG9iamVjdC4kaWQpO1xuXG4gICAgICAgIC8vIEFzc2lnbiB0aGUgbmV4dCByZXZpc2lvbiB0byB0aGlzIG9iamVjdDsgaW5kZXhlZCBvYmplY3RzIGFyZSBpbXBsaWVkIHRvIGJlIHJvb3Qgb2JqZWN0cy5cbiAgICAgICAgb2JqZWN0LiRyZXZpc2lvbiA9IHJldmlzaW9uO1xuICAgICAgICBvYmplY3QuJHBhcmVudCA9IHBhcmVudDtcblxuICAgICAgICAvLyBBZGQgdGhlIG9iamVjdCB0byB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IG1hcHMuXG4gICAgICAgIHRoaXMuaWRzLmFkZChvYmplY3QuJGlkKTtcbiAgICAgICAgdGhpcy5vYmplY3RzLnNldChvYmplY3QuJGlkLCBvYmplY3QpO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgb2JqZWN0IHRvIHRoZSBwYXJlbnQgY2hpbGRyZW4gbWFwLlxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW4uaGFzKHBhcmVudC4kaWQpKSB0aGlzLmNoaWxkcmVuLnNldChwYXJlbnQuJGlkLCBuZXcgU2V0KCkpO1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5nZXQocGFyZW50LiRpZCkhLmFkZChvYmplY3QuJGlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luZGV4KG9iamVjdCk7XG5cbiAgICAgICAgLy8gSW5kZXggYW55IHN1Ym9yZGluYXRlIG9iamVjdHMgaW4gdGhpcyBvYmplY3QuXG4gICAgICAgIHN1YnN0b3Jlcj8uKG9iamVjdCwgKGluY29taW5nLCBzdWJpbmRleCkgPT4gdGhpcy5fcmVjdXJzaXZlU3RvcmUoaW5jb21pbmcsIHJldmlzaW9uLCBzdWJpbmRleCwgb2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqIERlbGV0ZSBhbiBvYmplY3QgYnkgSUQgZnJvbSB0aGUgaW5kZXgsIHJlY3Vyc2l2ZWx5IGRlbGV0aW5nIGFueSBjaGlsZCBvYmplY3RzIGFzIHdlbGwuICovXG4gICAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9kZWxldGVSZWN1cnNpdmUoaWQpKSB7XG4gICAgICAgICAgICB0aGlzLnJldmlzaW9uKys7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogSW50ZXJuYWwgbWV0aG9kIHRoYXQgZG9lcyBub3QgYnVtcCB0aGUgcmV2aXNpb24uICovXG4gICAgcHJpdmF0ZSBfZGVsZXRlUmVjdXJzaXZlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0gdGhpcy5vYmplY3RzLmdldChpZCk7XG4gICAgICAgIGlmICghb2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBkZWxldGUgYWxsIGNoaWxkIG9iamVjdHMuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5nZXQoaWQpO1xuICAgICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVsZXRlUmVjdXJzaXZlKGNoaWxkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHJvcCB0aGlzIG9iamVjdCBmcm9tIHRoZSBhcHByb3ByaWF0ZSBtYXBzLlxuICAgICAgICB0aGlzLl91bmluZGV4KG9iamVjdCk7XG4gICAgICAgIHRoaXMuaWRzLmRlbGV0ZShpZCk7XG4gICAgICAgIHRoaXMub2JqZWN0cy5kZWxldGUoaWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQWRkIHRoZSBnaXZlbiBpbmRleGFibGUgdG8gdGhlIGFwcHJvcHJpYXRlIGluZGljZXMuICovXG4gICAgcHJpdmF0ZSBfaW5kZXgob2JqZWN0OiBJbmRleGFibGUpIHtcbiAgICAgICAgdGhpcy50eXBlcy5zZXQob2JqZWN0LiRpZCwgb2JqZWN0LiR0eXBlcyk7XG5cbiAgICAgICAgLy8gRXhhY3QgYW5kIGRlcml2ZWQgdGFncy5cbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZXMuY29udGFpbnMoVEFHR0FCTEVfVFlQRSkgJiYgaXRlcmFibGVFeGlzdHMob2JqZWN0LCBcIiR0YWdzXCIpKSB7XG4gICAgICAgICAgICBjb25zdCB0YWdzID0gb2JqZWN0LiR0YWdzIGFzIFNldDxzdHJpbmc+O1xuXG4gICAgICAgICAgICB0aGlzLmV0YWdzLnNldChvYmplY3QuJGlkLCB0YWdzKTtcbiAgICAgICAgICAgIHRoaXMudGFncy5zZXQob2JqZWN0LiRpZCwgZXh0cmFjdFN1YnRhZ3ModGFncykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhhY3QgYW5kIGRlcml2ZWQgbGlua3MuXG4gICAgICAgIGlmIChvYmplY3QuJHR5cGVzLmNvbnRhaW5zKExJTktCRUFSSU5HX1RZUEUpICYmIGl0ZXJhYmxlRXhpc3RzKG9iamVjdCwgXCIkbGlua3NcIikpIHtcbiAgICAgICAgICAgIHRoaXMubGlua3Muc2V0KFxuICAgICAgICAgICAgICAgIG9iamVjdC4kaWQsXG4gICAgICAgICAgICAgICAgKG9iamVjdC4kbGlua3MgYXMgTGlua1tdKS5tYXAoKGxpbmspID0+IGxpbmsub2JzaWRpYW5MaW5rKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsIGZpZWxkcyBvbiBhbiBvYmplY3QuXG4gICAgICAgIGlmIChvYmplY3QuJHR5cGVzLmNvbnRhaW5zKEZJRUxEQkVBUklOR19UWVBFKSAmJiBcImZpZWxkc1wiIGluIG9iamVjdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBvYmplY3QuZmllbGRzIGFzIEl0ZXJhYmxlPEZpZWxkPikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm0gPSBmaWVsZC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGRzLmhhcyhub3JtKSkgdGhpcy5maWVsZHMuc2V0KG5vcm0sIG5ldyBTZXRGaWVsZEluZGV4KCkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZ2V0KG5vcm0pIS5hZGQob2JqZWN0LiRpZCwgZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZSB0aGUgZ2l2ZW4gaW5kZXhhYmxlIGZyb20gYWxsIGluZGljZXMuICovXG4gICAgcHJpdmF0ZSBfdW5pbmRleChvYmplY3Q6IEluZGV4YWJsZSkge1xuICAgICAgICB0aGlzLnR5cGVzLmRlbGV0ZShvYmplY3QuJGlkLCBvYmplY3QuJHR5cGVzKTtcblxuICAgICAgICBpZiAob2JqZWN0LiR0eXBlcy5jb250YWlucyhUQUdHQUJMRV9UWVBFKSAmJiBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJHRhZ3NcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSBvYmplY3QuJHRhZ3MgYXMgU2V0PHN0cmluZz47XG5cbiAgICAgICAgICAgIHRoaXMuZXRhZ3MuZGVsZXRlKG9iamVjdC4kaWQsIHRhZ3MpO1xuICAgICAgICAgICAgdGhpcy50YWdzLmRlbGV0ZShvYmplY3QuJGlkLCBleHRyYWN0U3VidGFncyh0YWdzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2JqZWN0LiR0eXBlcy5jb250YWlucyhMSU5LQkVBUklOR19UWVBFKSAmJiBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJGxpbmtzXCIpKSB7XG4gICAgICAgICAgICAvLyBBc3N1bWUgbGlua3MgYXJlIG5vcm1hbGl6ZWQgd2hlbiBkZWxldGluZyB0aGVtLiBDb3VsZCBiZSBicm9rZW4gYnV0IEkgaG9wZSBub3QuIFdlIGNhbiBhbHdheXMgdXNlIGEgMi13YXkgaW5kZXggdG9cbiAgICAgICAgICAgIC8vIGZpeCB0aGlzIGlmIHdlIGVuY291bnRlciBub24tbm9ybWFsaXplZCBsaW5rcy5cbiAgICAgICAgICAgIHRoaXMubGlua3MuZGVsZXRlKFxuICAgICAgICAgICAgICAgIG9iamVjdC4kaWQsXG4gICAgICAgICAgICAgICAgKG9iamVjdC4kbGlua3MgYXMgTGlua1tdKS5tYXAoKGxpbmspID0+IGxpbmsub2JzaWRpYW5MaW5rKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9iamVjdC4kdHlwZXMuY29udGFpbnMoRklFTERCRUFSSU5HX1RZUEUpICYmIFwiZmllbGRzXCIgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIG9iamVjdC5maWVsZHMgYXMgSXRlcmFibGU8RmllbGQ+KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybSA9IGZpZWxkLmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZHMuaGFzKG5vcm0pKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmdldChub3JtKSEuZGVsZXRlKG9iamVjdC4kaWQsIGZpZWxkLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDb21wbGV0ZWx5IGNsZWFyIHRoZSBkYXRhc3RvcmUgb2YgYWxsIHZhbHVlcy4gKi9cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaWRzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMub2JqZWN0cy5jbGVhcigpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmNsZWFyKCk7XG5cbiAgICAgICAgdGhpcy50eXBlcy5jbGVhcigpO1xuICAgICAgICB0aGlzLnRhZ3MuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5ldGFncy5jbGVhcigpO1xuICAgICAgICB0aGlzLmxpbmtzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZmllbGRzLmNsZWFyKCk7XG5cbiAgICAgICAgdGhpcy5yZXZpc2lvbisrO1xuICAgIH1cblxuICAgIC8qKiBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdCBmb3IgYSBnaXZlbiBsaW5rLiAqL1xuICAgIHB1YmxpYyByZXNvbHZlTGluayhyYXdMaW5rOiBzdHJpbmcgfCBMaW5rLCBzb3VyY2VQYXRoPzogc3RyaW5nKTogSW5kZXhhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGxpbmsgPSB0eXBlb2YgcmF3TGluayA9PT0gXCJzdHJpbmdcIiA/IExpbmsucGFyc2VJbm5lcihyYXdMaW5rKSA6IHJhd0xpbms7XG5cbiAgICAgICAgaWYgKHNvdXJjZVBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtkZXN0ID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmsucGF0aCwgc291cmNlUGF0aCk7XG4gICAgICAgICAgICBpZiAobGlua2Rlc3QpIGxpbmsgPSBsaW5rLndpdGhQYXRoKGxpbmtkZXN0LnBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMub2JqZWN0cy5nZXQobGluay5wYXRoKTtcbiAgICAgICAgaWYgKCFmaWxlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChsaW5rLnR5cGUgPT09IFwiZmlsZVwiKSByZXR1cm4gZmlsZTtcblxuICAgICAgICAvLyBCbG9ja3MgYW5kIGhlYWRlciBsaW5rcyBjYW4gb25seSByZXNvbHZlIGluc2lkZSBvZiBtYXJrZG93biBmaWxlcy5cbiAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIE1hcmtkb3duUGFnZSkpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGxpbmsudHlwZSA9PT0gXCJoZWFkZXJcIikge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IGZpbGUuJHNlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKHNlYykgPT4gbm9ybWFsaXplSGVhZGVyRm9yTGluayhzZWMuJHRpdGxlKSA9PSBsaW5rLnN1YnBhdGggfHwgc2VjLiR0aXRsZSA9PSBsaW5rLnN1YnBhdGhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChzZWN0aW9uKSByZXR1cm4gc2VjdGlvbjtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5rLnR5cGUgPT09IFwiYmxvY2tcIikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGZpbGUuJHNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBzZWN0aW9uLiRibG9ja3MuZmluZCgoYmwpID0+IGJsLiRibG9ja0lkID09PSBsaW5rLnN1YnBhdGgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrKSByZXR1cm4gYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBsaW5rIHR5cGU6ICR7bGluay50eXBlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHRoZSBkYXRhc3RvcmUgZm9yIGFsbCBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIGdpdmVuIHF1ZXJ5LCByZXR1cm5pbmcgdGhlbVxuICAgICAqIGFzIGEgbGlzdCBvZiBpbmRleGVkIG9iamVjdHMgYWxvbmcgd2l0aCBwZXJmb3JtYW5jZSBtZXRhZGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoKHF1ZXJ5OiBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PFNlYXJjaFJlc3VsdDxJbmRleGFibGU+LCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIGNvbnN0IG1heWJlRmlsdGVyID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LCBzZXR0aW5ncyk7XG4gICAgICAgIGlmICghbWF5YmVGaWx0ZXIuc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlRmlsdGVyLmNhc3QoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gRmlsdGVycy5yZXNvbHZlKG1heWJlRmlsdGVyLnZhbHVlLCB0aGlzLmlkcyk7XG5cbiAgICAgICAgY29uc3Qgb2JqZWN0czogSW5kZXhhYmxlW10gPSBbXTtcbiAgICAgICAgbGV0IG1heFJldmlzaW9uID0gMDtcbiAgICAgICAgZm9yIChsZXQgaWQgb2YgcmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KGlkKTtcbiAgICAgICAgICAgIGlmIChvYmplY3QpIHtcbiAgICAgICAgICAgICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcbiAgICAgICAgICAgICAgICBtYXhSZXZpc2lvbiA9IE1hdGgubWF4KG1heFJldmlzaW9uLCBvYmplY3QuJHJldmlzaW9uID8/IDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKHtcbiAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSxcbiAgICAgICAgICAgIHJlc3VsdHM6IG9iamVjdHMsXG4gICAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLjAsXG4gICAgICAgICAgICByZXZpc2lvbjogbWF4UmV2aXNpb24sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBJbnRlcm5hbCBzZWFyY2ggd2hpY2ggeWllbGRzIGEgZmlsdGVyIG9mIHJlc3VsdHMuICovXG4gICAgcHJpdmF0ZSBfc2VhcmNoKHF1ZXJ5OiBJbmRleFF1ZXJ5LCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PEZpbHRlcjxzdHJpbmc+LCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IHNldHRpbmdzPy5zb3VyY2VQYXRoO1xuICAgICAgICBjb25zdCBmaWxlID0gc291cmNlUGF0aCA/IHRoaXMub2JqZWN0cy5nZXQoc291cmNlUGF0aCkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgZXZhbHVhdG9yID0gbmV3IEV2YWx1YXRvcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBleGlzdHM6IChwYXRoOiBzdHJpbmcgfCBMaW5rKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVMaW5rKHR5cGVvZiBwYXRoID09IFwic3RyaW5nXCIgPyBMaW5rLmZpbGUocGF0aCkgOiBwYXRoLCBzb3VyY2VQYXRoKSAhPSBudWxsLFxuICAgICAgICAgICAgICAgIHJlc29sdmU6IChwYXRoOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUxpbmsodHlwZW9mIHBhdGggPT0gXCJzdHJpbmdcIiA/IExpbmsuZmlsZShwYXRoKSA6IHBhdGgsIHNvdXJjZVBhdGgpID8/IG51bGwsXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplOiAocGF0aDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QocGF0aCwgc291cmNlUGF0aCA/PyBcIlwiKT8ucGF0aCA/PyBwYXRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBTZXQgYHRoaXNgIG9uIHRoZSBmaWxlIGlmIG5lZWRlZC5cbiAgICAgICAgaWYgKGZpbGUpIGV2YWx1YXRvci5zZXQoXCJ0aGlzXCIsIGZpbGUpO1xuXG4gICAgICAgIGNvbnN0IHJlc29sdmVyOiBJbmRleFJlc29sdmVyPHN0cmluZz4gPSB7XG4gICAgICAgICAgICB1bml2ZXJzZTogdGhpcy5pZHMsXG4gICAgICAgICAgICByZXNvbHZlOiAobGVhZikgPT4gdGhpcy5fcmVzb2x2ZVNvdXJjZShsZWFmLCBzZXR0aW5ncyksXG4gICAgICAgICAgICByZXNvbHZlUHJpbWl0aXZlOiAobGVhZikgPT4gdGhpcy5fcmVzb2x2ZVByaW1pdGl2ZShsZWFmLCBzZXR0aW5ncyksXG4gICAgICAgICAgICBsb2FkOiAoaWQpID0+IHRoaXMubG9hZChpZCksXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGV4ZWN1dGUob3B0aW1pemVRdWVyeShxdWVyeSksIHJlc29sdmVyLCBldmFsdWF0b3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVTb3VyY2UocXVlcnk6IEluZGV4U291cmNlLCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogUmVzdWx0PEZpbHRlcjxzdHJpbmc+LCBzdHJpbmc+IHtcbiAgICAgICAgc3dpdGNoIChxdWVyeS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiY2hpbGQtb2ZcIjpcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBDb25zaWRlciBjb252ZXJ0aW5nIHRoaXMgdG8gYmUgYSBzY2FuIGluc3RlYWQgZm9yIGEgbm90aWNhYmxlIHNwZWVkdXAuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVQYXJlbnRzID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LnBhcmVudHMsIHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1heWJlUGFyZW50cy5zdWNjZXNzZnVsKSByZXR1cm4gbWF5YmVQYXJlbnRzLmNhc3QoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudHMgPSBtYXliZVBhcmVudHMudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKEZpbHRlcnMuZW1wdHkocGFyZW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRzLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeS5pbmNsdXNpdmUpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLkVWRVJZVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiB0aGUgc2V0IGFsbCBjaGlsZHJlbi4gVE9ETzogQ29uc2lkZXIgY2FjaGluZyB2aWEgYSBgcGFyZW50c2AgbWFwLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbGxDaGlsZHJlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5vYmplY3RzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC4kcGFyZW50KSBhbGxDaGlsZHJlbi5hZGQoZWxlbWVudC4kaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuYXRvbShhbGxDaGlsZHJlbikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUGFyZW50cyA9IEZpbHRlcnMucmVzb2x2ZShwYXJlbnRzLCB0aGlzLmlkcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSZXN1bHRzID0gbmV3IFNldDxzdHJpbmc+KHF1ZXJ5LmluY2x1c2l2ZSA/IHJlc29sdmVkUGFyZW50cyA6IFtdKTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHJlc29sdmVkUGFyZW50cykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2l0ZXJhdGVDaGlsZHJlbihwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFJlc3VsdHMuYWRkKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20oY2hpbGRSZXN1bHRzKSk7XG4gICAgICAgICAgICBjYXNlIFwicGFyZW50LW9mXCI6XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQ29uc2lkZXIgY29udmVydGluZyB0aGlzIHRvIGJlIGEgc2NhbiBpbnN0ZWFkIGZvciBhIG5vdGljYWJsZSBzcGVlZHVwLlxuICAgICAgICAgICAgICAgIGNvbnN0IG1heWJlQ2hpbGRyZW4gPSB0aGlzLl9zZWFyY2gocXVlcnkuY2hpbGRyZW4sIHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1heWJlQ2hpbGRyZW4uc3VjY2Vzc2Z1bCkgcmV0dXJuIG1heWJlQ2hpbGRyZW4uY2FzdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbWF5YmVDaGlsZHJlbi52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChGaWx0ZXJzLmVtcHR5KGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuLnR5cGUgPT09IFwiZXZlcnl0aGluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeS5pbmNsdXNpdmUpIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLkVWRVJZVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20obmV3IFNldCh0aGlzLmNoaWxkcmVuLmtleXMoKSkpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZENoaWxkcmVuID0gRmlsdGVycy5yZXNvbHZlKGNoaWxkcmVuLCB0aGlzLmlkcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVzdWx0cyA9IG5ldyBTZXQ8c3RyaW5nPihxdWVyeS5pbmNsdXNpdmUgPyByZXNvbHZlZENoaWxkcmVuIDogW10pO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiByZXNvbHZlZENoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHRoaXMuX2l0ZXJhdGVQYXJlbnRzKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVzdWx0cy5hZGQocGFyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20ocGFyZW50UmVzdWx0cykpO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtlZFwiOlxuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5kaXN0YW5jZSAmJiBxdWVyeS5kaXN0YW5jZSA8IDApIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLk5PVEhJTkcpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgc291cmNlIG9iamVjdHMgZmlyc3QuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVTb3VyY2VzID0gdGhpcy5fc2VhcmNoKHF1ZXJ5LnNvdXJjZSwgc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIGlmICghbWF5YmVTb3VyY2VzLnN1Y2Nlc3NmdWwpIHJldHVybiBtYXliZVNvdXJjZXMuY2FzdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZXMgPSBtYXliZVNvdXJjZXMudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoRmlsdGVycy5lbXB0eShzb3VyY2VzKSkgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuTk9USElORyk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlcy50eXBlID09PSBcImV2ZXJ5dGhpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnkuaW5jbHVzaXZlKSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5FVkVSWVRISU5HKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gUmVzdWx0LnN1Y2Nlc3MoRmlsdGVycy5OT1RISU5HKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFNvdXJjZXMgPSBGaWx0ZXJzLnJlc29sdmUoc291cmNlcywgdGhpcy5pZHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHF1ZXJ5LmRpcmVjdGlvbiA/PyBcImJvdGhcIjtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5fdHJhdmVyc2VMaW5rZWQocmVzb2x2ZWRTb3VyY2VzLCBxdWVyeS5kaXN0YW5jZSA/PyAxLCAoaWQpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGVBZGphY2VudExpbmtlZChpZCwgZGlyZWN0aW9uKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LmluY2x1c2l2ZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5zdWNjZXNzKEZpbHRlcnMuYXRvbShGaWx0ZXJzLnNldEludGVyc2VjdE5lZ2F0aW9uKHJlc3VsdHMsIHJlc29sdmVkU291cmNlcykpKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBSZXN1bHQuc3VjY2VzcyhGaWx0ZXJzLmF0b20ocmVzdWx0cykpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LnN1Y2Nlc3ModGhpcy5fcmVzb2x2ZVByaW1pdGl2ZShxdWVyeSwgc2V0dGluZ3MpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZXNvbHZlIGxlYWYgbm9kZXMgaW4gYSBzZWFyY2ggQVNULCB5aWVsZGluZyByYXcgc2V0cyBvZiByZXN1bHRzLiAqL1xuICAgIHByaXZhdGUgX3Jlc29sdmVQcmltaXRpdmUocXVlcnk6IEluZGV4UHJpbWl0aXZlLCBzZXR0aW5ncz86IFNlYXJjaFNldHRpbmdzKTogRmlsdGVyPHN0cmluZz4ge1xuICAgICAgICBzd2l0Y2ggKHF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJjb25zdGFudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmNvbnN0YW50KHF1ZXJ5LmNvbnN0YW50KTtcbiAgICAgICAgICAgIGNhc2UgXCJpZFwiOlxuICAgICAgICAgICAgICAgIGNvbnN0IGV4YWN0T2JqZWN0ID0gdGhpcy5vYmplY3RzLmdldChxdWVyeS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4YWN0T2JqZWN0ID8gRmlsdGVycy5hdG9tKG5ldyBTZXQoW2V4YWN0T2JqZWN0LiRpZF0pKSA6IEZpbHRlcnMuTk9USElORztcbiAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KFxuICAgICAgICAgICAgICAgICAgICBxdWVyeS52YWx1ZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz8uc291cmNlUGF0aCA/PyBcIlwiXG4gICAgICAgICAgICAgICAgKT8ucGF0aDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVkUGF0aCA/IHF1ZXJ5LnZhbHVlLndpdGhQYXRoKHJlc29sdmVkUGF0aCkgOiBxdWVyeS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHRoaXMucmVzb2x2ZUxpbmsocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QgPyBGaWx0ZXJzLmF0b20obmV3IFNldChbb2JqZWN0LiRpZF0pKSA6IEZpbHRlcnMuTk9USElORztcbiAgICAgICAgICAgIGNhc2UgXCJ0eXBlZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLm51bGxhYmxlQXRvbSh0aGlzLnR5cGVzLmdldChxdWVyeS52YWx1ZSkpO1xuICAgICAgICAgICAgY2FzZSBcInRhZ2dlZFwiOlxuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5leGFjdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5udWxsYWJsZUF0b20odGhpcy5ldGFncy5nZXQocXVlcnkudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5udWxsYWJsZUF0b20odGhpcy50YWdzLmdldChxdWVyeS52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICAgICAgICAgICAgbGV0IHRvcGxldmVsO1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeS5leGFjdCkge1xuICAgICAgICAgICAgICAgICAgICB0b3BsZXZlbCA9IHRoaXMuZm9sZGVyLmdldEV4YWN0KHF1ZXJ5LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnkudmFsdWUgPT0gXCJcIiB8fCBxdWVyeS52YWx1ZSA9PSBcIi9cIikgcmV0dXJuIEZpbHRlcnMuRVZFUllUSElORztcblxuICAgICAgICAgICAgICAgICAgICB0b3BsZXZlbCA9IHRoaXMuZm9sZGVyLmdldChxdWVyeS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRvcGxldmVsLnNpemUgPT0gMCkgcmV0dXJuIEZpbHRlcnMuTk9USElORztcblxuICAgICAgICAgICAgICAgIC8vIEV4cGFuZCBhbGwgY2hpbGRyZW4uXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFNldCh0b3BsZXZlbCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdG9wIG9mIHRvcGxldmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuX2l0ZXJhdGVDaGlsZHJlbih0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20ocmVzdWx0KTtcbiAgICAgICAgICAgIGNhc2UgXCJmaWVsZFwiOlxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1rZXkgPSBxdWVyeS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSB0aGlzLmZpZWxkcy5nZXQobm9ybWtleSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPT0gbnVsbCkgcmV0dXJuIEZpbHRlcnMuTk9USElORztcblxuICAgICAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20oZmllbGRJbmRleC5hbGwoKSk7XG4gICAgICAgICAgICBjYXNlIFwiZXF1YWwtdmFsdWVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsdGVycy5sYXp5VW5pb24ocXVlcnkudmFsdWVzLCAodmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlckZpZWxkcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LmZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGluZGV4KSA9PiBpbmRleC5lcXVhbHModmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkKSA9PiBMaXRlcmFscy5jb21wYXJlKHZhbHVlLCBmaWVsZC52YWx1ZSkgPT0gMFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGaWx0ZXIgZG9jdW1lbnRzIGJ5IGZpZWxkIHZhbHVlcywgdXNpbmcgdGhlIGZhc3QgbG9va3VwIGlmIGl0IHJldHVybnMgYSByZXN1bHQgYW5kIG90aGVyd2lzZSBmaWx0ZXJpbmcgb3ZlciBldmVyeSBkb2N1bWVudCB1c2luZyB0aGUgc2xvdyBwcmVkaWNhdGUuICovXG4gICAgcHJpdmF0ZSBfZmlsdGVyRmllbGRzKFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgZmFzdDogKGluZGV4OiBGaWVsZEluZGV4KSA9PiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCxcbiAgICAgICAgc2xvdzogKGZpZWxkOiBGaWVsZCkgPT4gYm9vbGVhblxuICAgICk6IEZpbHRlcjxzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgbm9ybWtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzLmdldChub3Jta2V5KTtcbiAgICAgICAgaWYgKGluZGV4ID09IG51bGwpIHJldHVybiBGaWx0ZXJzLk5PVEhJTkc7XG5cbiAgICAgICAgY29uc3QgZmFzdGxvb2t1cCA9IGZhc3QoaW5kZXgpO1xuICAgICAgICBpZiAoZmFzdGxvb2t1cCAhPSBudWxsKSByZXR1cm4gRmlsdGVycy5hdG9tKGZhc3Rsb29rdXApO1xuXG4gICAgICAgIC8vIENvbXB1dGUgYnkgaXRlcmF0aW5nIG92ZXIgZWFjaCBmaWVsZC5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IG9iamVjdElkIG9mIGluZGV4LmFsbCgpKSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KG9iamVjdElkKTtcbiAgICAgICAgICAgIGlmICghb2JqZWN0IHx8ICFvYmplY3QuJHR5cGVzLmNvbnRhaW5zKEZJRUxEQkVBUklOR19UWVBFKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gKG9iamVjdCBhcyBhbnkgYXMgRmllbGRiZWFyaW5nKS5maWVsZChub3Jta2V5KTtcbiAgICAgICAgICAgIGlmICghZmllbGQpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBpZiAoc2xvdyhmaWVsZCkpIG1hdGNoZXMuYWRkKG9iamVjdElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBGaWx0ZXJzLmF0b20obWF0Y2hlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRG9lcyBCcmVhZHRoLWZpcnN0IFNlYXJjaCB0byBmaW5kIGFsbCBsaW5rZWQgZmlsZXMgd2l0aGluIGRpc3RhbmNlIDxkaXN0YW5jZT4uIFRoaXMgaW5jbHVkZXMgYWxsIHNvdXJjZSBub2RlcyxcbiAgICAgKiBzbyByZW1vdmUgdGhlbSBhZnRlcndhcmRzIGlmIHlvdSBkbyBub3Qgd2FudCB0aGVtLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3RyYXZlcnNlTGlua2VkKFxuICAgICAgICBzb3VyY2VJZHM6IFNldDxzdHJpbmc+LFxuICAgICAgICBkaXN0YW5jZTogbnVtYmVyLFxuICAgICAgICBhZGphY2VudDogKGlkOiBzdHJpbmcpID0+IEl0ZXJhYmxlPHN0cmluZz5cbiAgICApOiBTZXQ8c3RyaW5nPiB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IDApIHJldHVybiBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChzb3VyY2VJZHMuc2l6ZSA9PSAwKSByZXR1cm4gbmV3IFNldCgpO1xuXG4gICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oc291cmNlSWRzKTtcblxuICAgICAgICBjb25zdCBxdWV1ZSA9IG5ldyBGbGF0UXVldWU8c3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2Ygc291cmNlSWRzKSBxdWV1ZS5wdXNoKGVsZW1lbnQsIDApO1xuXG4gICAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0ID0gcXVldWUucGVla1ZhbHVlKCkhO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHF1ZXVlLnBvcCgpITtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBuZWlnaGJvciBvZiBhZGphY2VudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvcikpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgdmlzaXRlZC5hZGQobmVpZ2hib3IpO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgZGlzdGFuY2UpIHF1ZXVlLnB1c2gobmVpZ2hib3IsIGRpc3QgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgIH1cblxuICAgIC8qKiBJdGVyYXRlIGFsbCBsaW5rZWQgb2JqZWN0cyBmb3IgdGhlIGdpdmVuIG9iamVjdC4gKi9cbiAgICBwcml2YXRlICpfaXRlcmF0ZUFkamFjZW50TGlua2VkKGlkOiBzdHJpbmcsIGRpcmVjdGlvbjogXCJpbmNvbWluZ1wiIHwgXCJvdXRnb2luZ1wiIHwgXCJib3RoXCIpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IG9iamVjdCA9IHRoaXMub2JqZWN0cy5nZXQoaWQpO1xuICAgICAgICBpZiAoIW9iamVjdCkgcmV0dXJuO1xuXG4gICAgICAgIGlmICgoZGlyZWN0aW9uID09PSBcImJvdGhcIiB8fCBkaXJlY3Rpb24gPT09IFwiaW5jb21pbmdcIikgJiYgXCIkbGlua1wiIGluIG9iamVjdCAmJiBvYmplY3RbXCIkbGlua1wiXSkge1xuICAgICAgICAgICAgY29uc3QgaW5jb21pbmcgPSB0aGlzLmxpbmtzLmdldCgob2JqZWN0LiRsaW5rIGFzIExpbmspLm9ic2lkaWFuTGluaygpKTtcbiAgICAgICAgICAgIGlmIChpbmNvbWluZykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgaW5jb21pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGRpcmVjdGlvbiA9PT0gXCJib3RoXCIgfHwgZGlyZWN0aW9uID09PSBcIm91dGdvaW5nXCIpICYmXG4gICAgICAgICAgICBvYmplY3QuJHR5cGVzLmNvbnRhaW5zKExJTktBQkxFX1RZUEUpICYmXG4gICAgICAgICAgICBpdGVyYWJsZUV4aXN0cyhvYmplY3QsIFwiJGxpbmtzXCIpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIG9iamVjdC4kbGlua3MgYXMgTGlua1tdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVMaW5rKGxpbmspO1xuICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkgeWllbGQgcmVzb2x2ZWQuJGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEl0ZXJhdG9yIHdoaWNoIHByb2R1Y2VzIGFsbCBwYXJlbnRzIG9mIHRoZSBnaXZlbiBvYmplY3QuICovXG4gICAgcHJpdmF0ZSAqX2l0ZXJhdGVQYXJlbnRzKGNoaWxkOiBzdHJpbmcpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGxldCBvYmplY3QgPSB0aGlzLm9iamVjdHMuZ2V0KGNoaWxkKTtcbiAgICAgICAgd2hpbGUgKG9iamVjdCAmJiBvYmplY3Q/LiRwYXJlbnQpIHtcbiAgICAgICAgICAgIHlpZWxkIG9iamVjdC4kcGFyZW50LiRpZDtcbiAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdC4kcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEl0ZXJhdGl2ZSB3aGljaCBwcm9kdWNlcyBhbGwgY2hpbGRyZW4gKHJlY3Vyc2l2ZWx5KSBvZiB0aGUgZ2l2ZW4gb2JqZWN0LiAqL1xuICAgIHByaXZhdGUgKl9pdGVyYXRlQ2hpbGRyZW4ocGFyZW50OiBzdHJpbmcpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5nZXQocGFyZW50KTtcbiAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLnNpemUgPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHlpZWxkIGNoaWxkO1xuICAgICAgICAgICAgICAgIHlpZWxkKiB0aGlzLl9pdGVyYXRlQ2hpbGRyZW4oY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogQSBnZW5lcmFsIGZ1bmN0aW9uIGZvciBzdG9yaW5nIHN1Yi1vYmplY3RzIGluIGEgZ2l2ZW4gb2JqZWN0LiAqL1xuZXhwb3J0IHR5cGUgU3Vic3RvcmVyPFQgZXh0ZW5kcyBJbmRleGFibGU+ID0gKFxuICAgIG9iamVjdDogVCxcbiAgICBhZGQ6IDxVIGV4dGVuZHMgSW5kZXhhYmxlPihvYmplY3Q6IFUgfCBVW10sIHN1YmluZGV4PzogU3Vic3RvcmVyPFU+KSA9PiB2b2lkXG4pID0+IHZvaWQ7XG5cbi8qKiBUaGUgcmVzdWx0IG9mIHNlYXJjaGluZyBnaXZlbiBhbiBpbmRleCBxdWVyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0PE8+IHtcbiAgICAvKiogVGhlIHF1ZXJ5IHVzZWQgdG8gc2VhcmNoLiAqL1xuICAgIHF1ZXJ5OiBJbmRleFF1ZXJ5O1xuICAgIC8qKiBBbGwgb2YgdGhlIHJldHVybmVkIHJlc3VsdHMuICovXG4gICAgcmVzdWx0czogT1tdO1xuICAgIC8qKiBUaGUgYW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBzZWFyY2ggdG9vay4gKi9cbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIC8qKiBUaGUgbWF4aW11bSByZXZpc2lvbiBvZiBhbnkgZG9jdW1lbnQgaW4gdGhlIHJlc3VsdCwgd2hpY2ggaXMgdXNlZnVsIGZvciBkaWZmaW5nLiAqL1xuICAgIHJldmlzaW9uOiBudW1iZXI7XG59XG5cbi8qKiBFeHRyYSBzZXR0aW5ncyB0aGF0IGNhbiBiZSBwcm92aWRlZCB0byBhIHNlYXJjaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU2V0dGluZ3Mge1xuICAgIC8qKiBUaGUgcGF0aCB0byBydW4gZnJvbSB3aGVuIHJlc29sdmluZyBsaW5rcyBhbmQgYHRoaXNgIHNlY3Rpb25zLiAqL1xuICAgIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGd1YXJkIHdoaWNoIGNoZWNrcyBpZiBvYmplY3Rba2V5XSBleGlzdHMgYW5kIGlzIGFuIGl0ZXJhYmxlLiAqL1xuZnVuY3Rpb24gaXRlcmFibGVFeGlzdHM8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sIEsgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIG9iamVjdDogVCxcbiAgICBrZXk6IEtcbik6IG9iamVjdCBpcyBUICYgUmVjb3JkPEssIEl0ZXJhYmxlPGFueT4+IHtcbiAgICByZXR1cm4ga2V5IGluIG9iamVjdCAmJiBvYmplY3Rba2V5XSAhPT0gdW5kZWZpbmVkICYmIFN5bWJvbC5pdGVyYXRvciBpbiBvYmplY3Rba2V5XTtcbn1cbiIsICJpbXBvcnQgbG9jYWxmb3JhZ2UgZnJvbSBcImxvY2FsZm9yYWdlXCI7XG5cbi8qKiBBIHBpZWNlIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBjYWNoZWQgZm9yIGEgc3BlY2lmaWMgdmVyc2lvbiBhbmQgdGltZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVkPFQ+IHtcbiAgICAvKiogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBkYXRhIHdhcyB3cml0dGVuIHRvIGNhY2hlIHdpdGguICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIC8qKiBUaGUgVU5JWCBlcG9jaCB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBkYXRhIHdhcyB3cml0dGVuIHRvIGNhY2hlLiAqL1xuICAgIHRpbWU6IG51bWJlcjtcbiAgICAvKiogVGhlIGRhdGEgdGhhdCB3YXMgY2FjaGVkLiAqL1xuICAgIGRhdGE6IFQ7XG59XG5cbi8qKiBTaW1wbGVyIHdyYXBwZXIgZm9yIGEgZmlsZS1iYWNrZWQgY2FjaGUgZm9yIGFyYml0cmFyeSBtZXRhZGF0YS4gKi9cbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VDYWNoZSB7XG4gICAgcHVibGljIHBlcnNpc3RlcjogTG9jYWxGb3JhZ2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGFwcElkOiBzdHJpbmcsIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wZXJzaXN0ZXIgPSBsb2NhbGZvcmFnZS5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgICAgICBuYW1lOiBcImRhdGFjb3JlL2NhY2hlL1wiICsgYXBwSWQsXG4gICAgICAgICAgICBkcml2ZXI6IFtsb2NhbGZvcmFnZS5JTkRFWEVEREJdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ2FjaGUgbWV0YWRhdGEgYWJvdXQgZmlsZXMgYW5kIHNlY3Rpb25zIGluIHRoZSBkYXRhY29yZSBpbmRleC5cIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIERyb3AgdGhlIGVudGlyZSBjYWNoZSBpbnN0YW5jZSBhbmQgcmUtY3JlYXRlIGEgbmV3IGZyZXNoIGluc3RhbmNlLiAqL1xuICAgIHB1YmxpYyBhc3luYyByZWNyZWF0ZSgpIHtcbiAgICAgICAgYXdhaXQgbG9jYWxmb3JhZ2UuZHJvcEluc3RhbmNlKHsgbmFtZTogXCJkYXRhY29yZS9jYWNoZS9cIiArIHRoaXMuYXBwSWQgfSk7XG5cbiAgICAgICAgdGhpcy5wZXJzaXN0ZXIgPSBsb2NhbGZvcmFnZS5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgICAgICBuYW1lOiBcImRhdGFjb3JlL2NhY2hlL1wiICsgdGhpcy5hcHBJZCxcbiAgICAgICAgICAgIGRyaXZlcjogW2xvY2FsZm9yYWdlLklOREVYRUREQl0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJDYWNoZSBtZXRhZGF0YSBhYm91dCBmaWxlcyBhbmQgc2VjdGlvbnMgaW4gdGhlIGRhdGFjb3JlIGluZGV4LlwiLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTG9hZCBmaWxlIG1ldGFkYXRhIGJ5IHBhdGguICovXG4gICAgcHVibGljIGFzeW5jIGxvYWRGaWxlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVkPFBhcnRpYWw8YW55Pj4gfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcnNpc3Rlci5nZXRJdGVtKHRoaXMuZmlsZUtleShwYXRoKSkudGhlbigocmF3KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmF3IGFzIGFueSBhcyBDYWNoZWQ8UGFydGlhbDxhbnk+PjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFN0b3JlIGZpbGUgbWV0YWRhdGEgYnkgcGF0aC4gKi9cbiAgICBwdWJsaWMgYXN5bmMgc3RvcmVGaWxlKHBhdGg6IHN0cmluZywgZGF0YTogUGFydGlhbDxhbnk+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucGVyc2lzdGVyLnNldEl0ZW0odGhpcy5maWxlS2V5KHBhdGgpLCB7XG4gICAgICAgICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICAgICAgICB0aW1lOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIERyb3Agb2xkIGZpbGUga2V5cyB0aGF0IG5vIGxvbmdlciBleGlzdC4gKi9cbiAgICBwdWJsaWMgYXN5bmMgc3luY2hyb25pemUoZXhpc3Rpbmc6IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4pOiBQcm9taXNlPFNldDxzdHJpbmc+PiB7XG4gICAgICAgIGxldCBrZXlzID0gbmV3IFNldChhd2FpdCB0aGlzLmFsbEZpbGVzKCkpO1xuICAgICAgICBmb3IgKGxldCBleGlzdCBvZiBleGlzdGluZykga2V5cy5kZWxldGUoZXhpc3QpO1xuXG4gICAgICAgIC8vIEFueSBrZXlzIHJlbWFpbmluZyBhZnRlciBkZWxldGluZyBleGlzdGluZyBrZXlzIGFyZSBub24tZXhpc3RlbnQga2V5cyB0aGF0IHNob3VsZCBiZSBjbGVhcmVkIGZyb20gY2FjaGUuXG4gICAgICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSBhd2FpdCB0aGlzLnBlcnNpc3Rlci5yZW1vdmVJdGVtKHRoaXMuZmlsZUtleShrZXkpKTtcblxuICAgICAgICByZXR1cm4ga2V5cztcbiAgICB9XG5cbiAgICAvKiogT2J0YWluIGEgbGlzdCBvZiBhbGwgbWV0YWRhdGEga2V5cy4gKi9cbiAgICBwdWJsaWMgYXN5bmMgYWxsS2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcnNpc3Rlci5rZXlzKCk7XG4gICAgfVxuXG4gICAgLyoqIE9idGFpbiBhIGxpc3Qgb2YgYWxsIHBlcnNpc3RlZCBmaWxlcy4gKi9cbiAgICBwdWJsaWMgYXN5bmMgYWxsRmlsZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQga2V5cyA9IGF3YWl0IHRoaXMuYWxsS2V5cygpO1xuICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcImZpbGU6XCIpKS5tYXAoKGspID0+IGsuc3Vic3RyaW5nKDUpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGEgdW5pcXVlIGtleSBmb3IgYSBnaXZlbiBmaWxlIHBhdGguICovXG4gICAgcHVibGljIGZpbGVLZXkocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiZmlsZTpcIiArIHBhdGg7XG4gICAgfVxufVxuIiwgIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5saW5lV29ya2VyKHNjcmlwdFRleHQpIHtcbiAgbGV0IGJsb2IgPSBuZXcgQmxvYihbc2NyaXB0VGV4dF0sIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xuICBsZXQgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgbGV0IHdvcmtlciA9IG5ldyBXb3JrZXIodXJsLCB7XCJuYW1lXCI6XCJEYXRhY29yZSBJbmRleGVyXCJ9KTtcbiAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICByZXR1cm4gd29ya2VyO1xufVxuIiwgImltcG9ydCBpbmxpbmVXb3JrZXIgZnJvbSAnX19pbmxpbmUtd29ya2VyJ1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gV29ya2VyKCkge1xuICByZXR1cm4gaW5saW5lV29ya2VyKFwidmFyIGNsPU9iamVjdC5jcmVhdGU7dmFyIEpzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmbD1PYmplY3QuZGVmaW5lUHJvcGVydGllcyxkbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGhsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHBsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLHFyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsbWw9T2JqZWN0LmdldFByb3RvdHlwZU9mLHpzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTW89T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgSHM9KG4sZSk9PihlPVN5bWJvbFtuXSk/ZTpTeW1ib2wuZm9yKFxcXCJTeW1ib2wuXFxcIituKSxEbD1uPT57dGhyb3cgVHlwZUVycm9yKG4pfTt2YXIgQW89KG4sZSx0KT0+ZSBpbiBuP0pzKG4sZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pOm5bZV09dCxSPShuLGUpPT57Zm9yKHZhciB0IGluIGV8fChlPXt9KSl6cy5jYWxsKGUsdCkmJkFvKG4sdCxlW3RdKTtpZihxcilmb3IodmFyIHQgb2YgcXIoZSkpTW8uY2FsbChlLHQpJiZBbyhuLHQsZVt0XSk7cmV0dXJuIG59LHllPShuLGUpPT5mbChuLGhsKGUpKTt2YXIgWXM9KG4sZSk9Pnt2YXIgdD17fTtmb3IodmFyIHIgaW4gbil6cy5jYWxsKG4scikmJmUuaW5kZXhPZihyKTwwJiYodFtyXT1uW3JdKTtpZihuIT1udWxsJiZxcilmb3IodmFyIHIgb2YgcXIobikpZS5pbmRleE9mKHIpPDAmJk1vLmNhbGwobixyKSYmKHRbcl09bltyXSk7cmV0dXJuIHR9O3ZhciBfbz0obixlKT0+KCk9PihlfHxuKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciB5bD0obixlLHQscik9PntpZihlJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCJ8fHR5cGVvZiBlPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXQgcyBvZiBwbChlKSkhenMuY2FsbChuLHMpJiZzIT09dCYmSnMobixzLHtnZXQ6KCk9PmVbc10sZW51bWVyYWJsZTohKHI9ZGwoZSxzKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBufTt2YXIgVnI9KG4sZSx0KT0+KHQ9biE9bnVsbD9jbChtbChuKSk6e30seWwoZXx8IW58fCFuLl9fZXNNb2R1bGU/SnModCxcXFwiZGVmYXVsdFxcXCIse3ZhbHVlOm4sZW51bWVyYWJsZTohMH0pOnQsbikpO3ZhciBnbD1mdW5jdGlvbihuLGUpe3RoaXNbMF09bix0aGlzWzFdPWV9O3ZhciBTPW49Pnt2YXIgZT1uW0hzKFxcXCJhc3luY0l0ZXJhdG9yXFxcIildLHQ9ITEscixzPXt9O3JldHVybiBlPT1udWxsPyhlPW5bSHMoXFxcIml0ZXJhdG9yXFxcIildKCkscj1pPT5zW2ldPW89PmVbaV0obykpOihlPWUuY2FsbChuKSxyPWk9PnNbaV09bz0+e2lmKHQpe2lmKHQ9ITEsaT09PVxcXCJ0aHJvd1xcXCIpdGhyb3cgbztyZXR1cm4gb31yZXR1cm4gdD0hMCx7ZG9uZTohMSx2YWx1ZTpuZXcgZ2wobmV3IFByb21pc2UoYT0+e3ZhciB1PWVbaV0obyk7dSBpbnN0YW5jZW9mIE9iamVjdHx8RGwoXFxcIk9iamVjdCBleHBlY3RlZFxcXCIpLGEodSl9KSwxKX19KSxzW0hzKFxcXCJpdGVyYXRvclxcXCIpXT0oKT0+cyxyKFxcXCJuZXh0XFxcIiksXFxcInRocm93XFxcImluIGU/cihcXFwidGhyb3dcXFwiKTpzLnRocm93PWk9Pnt0aHJvdyBpfSxcXFwicmV0dXJuXFxcImluIGUmJnIoXFxcInJldHVyblxcXCIpLHN9O3ZhciBucz1fbygocHIsQWkpPT57KGZ1bmN0aW9uKG4sZSl7dHlwZW9mIHByPT1cXFwib2JqZWN0XFxcIiYmdHlwZW9mIEFpPT1cXFwib2JqZWN0XFxcIj9BaS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT1cXFwiZnVuY3Rpb25cXFwiJiZkZWZpbmUuYW1kP2RlZmluZShbXSxlKTp0eXBlb2YgcHI9PVxcXCJvYmplY3RcXFwiP3ByLlBhcnNpbW1vbj1lKCk6bi5QYXJzaW1tb249ZSgpfSkodHlwZW9mIHNlbGYhPVxcXCJ1bmRlZmluZWRcXFwiP3NlbGY6cHIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9e307ZnVuY3Rpb24gdChyKXtpZihlW3JdKXJldHVybiBlW3JdLmV4cG9ydHM7dmFyIHM9ZVtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIG5bcl0uY2FsbChzLmV4cG9ydHMscyxzLmV4cG9ydHMsdCkscy5sPSEwLHMuZXhwb3J0c31yZXR1cm4gdC5tPW4sdC5jPWUsdC5kPWZ1bmN0aW9uKHIscyxpKXt0Lm8ocixzKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHIscyx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsZ2V0Oml9KX0sdC5yPWZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KX0sdC5uPWZ1bmN0aW9uKHIpe3ZhciBzPXImJnIuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiByLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9O3JldHVybiB0LmQocyxcXFwiYVxcXCIscyksc30sdC5vPWZ1bmN0aW9uKHIscyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLHMpfSx0LnA9XFxcIlxcXCIsdCh0LnM9MCl9KFtmdW5jdGlvbihuLGUsdCl7XFxcInVzZSBzdHJpY3RcXFwiO2Z1bmN0aW9uIHIoYyl7aWYoISh0aGlzIGluc3RhbmNlb2YgcikpcmV0dXJuIG5ldyByKGMpO3RoaXMuXz1jfXZhciBzPXIucHJvdG90eXBlO2Z1bmN0aW9uIGkoYyxtKXtmb3IodmFyIEU9MDtFPGM7RSsrKW0oRSl9ZnVuY3Rpb24gbyhjLG0sRSl7cmV0dXJuIGZ1bmN0aW9uKGssTCl7aShMLmxlbmd0aCxmdW5jdGlvbihBKXtrKExbQV0sQSxMKX0pfShmdW5jdGlvbihrLEwsQSl7bT1jKG0sayxMLEEpfSxFKSxtfWZ1bmN0aW9uIGEoYyxtKXtyZXR1cm4gbyhmdW5jdGlvbihFLGssTCxBKXtyZXR1cm4gRS5jb25jYXQoW2MoayxMLEEpXSl9LFtdLG0pfWZ1bmN0aW9uIHUoYyxtKXt2YXIgRT17djowLGJ1ZjptfTtyZXR1cm4gaShjLGZ1bmN0aW9uKCl7dmFyIGs7RT17djpFLnY8PDF8KGs9RS5idWYsa1swXT4+NyksYnVmOmZ1bmN0aW9uKEwpe3ZhciBBPW8oZnVuY3Rpb24oTSxVLHRlLEVlKXtyZXR1cm4gTS5jb25jYXQodGU9PT1FZS5sZW5ndGgtMT9CdWZmZXIuZnJvbShbVSwwXSkucmVhZFVJbnQxNkJFKDApOkVlLnJlYWRVSW50MTZCRSh0ZSkpfSxbXSxMKTtyZXR1cm4gQnVmZmVyLmZyb20oYShmdW5jdGlvbihNKXtyZXR1cm4oTTw8MSY2NTUzNSk+Pjh9LEEpKX0oRS5idWYpfX0pLEV9ZnVuY3Rpb24gbCgpe3JldHVybiB0eXBlb2YgQnVmZmVyIT1cXFwidW5kZWZpbmVkXFxcIn1mdW5jdGlvbiBmKCl7aWYoIWwoKSl0aHJvdyBuZXcgRXJyb3IoXFxcIkJ1ZmZlciBnbG9iYWwgZG9lcyBub3QgZXhpc3Q7IHBsZWFzZSB1c2Ugd2VicGFjayBpZiB5b3UgbmVlZCB0byBwYXJzZSBCdWZmZXJzIGluIHRoZSBicm93c2VyLlxcXCIpfWZ1bmN0aW9uIGQoYyl7ZigpO3ZhciBtPW8oZnVuY3Rpb24oQSxNKXtyZXR1cm4gQStNfSwwLGMpO2lmKG0lOCE9MCl0aHJvdyBuZXcgRXJyb3IoXFxcIlRoZSBiaXRzIFtcXFwiK2Muam9pbihcXFwiLCBcXFwiKStcXFwiXSBhZGQgdXAgdG8gXFxcIittK1xcXCIgd2hpY2ggaXMgbm90IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzOyB0aGUgdG90YWwgc2hvdWxkIGJlIGRpdmlzaWJsZSBieSA4XFxcIik7dmFyIEUsaz1tLzgsTD0oRT1mdW5jdGlvbihBKXtyZXR1cm4gQT40OH0sbyhmdW5jdGlvbihBLE0pe3JldHVybiBBfHwoRShNKT9NOkEpfSxudWxsLGMpKTtpZihMKXRocm93IG5ldyBFcnJvcihMK1xcXCIgYml0IHJhbmdlIHJlcXVlc3RlZCBleGNlZWRzIDQ4IGJpdCAoNiBieXRlKSBOdW1iZXIgbWF4LlxcXCIpO3JldHVybiBuZXcgcihmdW5jdGlvbihBLE0pe3ZhciBVPWsrTTtyZXR1cm4gVT5BLmxlbmd0aD92KE0say50b1N0cmluZygpK1xcXCIgYnl0ZXNcXFwiKTp3KFUsbyhmdW5jdGlvbih0ZSxFZSl7dmFyIHBlPXUoRWUsdGUuYnVmKTtyZXR1cm57Y29sbDp0ZS5jb2xsLmNvbmNhdChwZS52KSxidWY6cGUuYnVmfX0se2NvbGw6W10sYnVmOkEuc2xpY2UoTSxVKX0sYykuY29sbCl9KX1mdW5jdGlvbiBwKGMsbSl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKEUsayl7cmV0dXJuIGYoKSxrK20+RS5sZW5ndGg/dihrLG0rXFxcIiBieXRlcyBmb3IgXFxcIitjKTp3KGsrbSxFLnNsaWNlKGssayttKSl9KX1mdW5jdGlvbiBoKGMsbSl7aWYodHlwZW9mKEU9bSkhPVxcXCJudW1iZXJcXFwifHxNYXRoLmZsb29yKEUpIT09RXx8bTwwfHxtPjYpdGhyb3cgbmV3IEVycm9yKGMrXFxcIiByZXF1aXJlcyBpbnRlZ2VyIGxlbmd0aCBpbiByYW5nZSBbMCwgNl0uXFxcIik7dmFyIEV9ZnVuY3Rpb24gYihjKXtyZXR1cm4gaChcXFwidWludEJFXFxcIixjKSxwKFxcXCJ1aW50QkUoXFxcIitjK1xcXCIpXFxcIixjKS5tYXAoZnVuY3Rpb24obSl7cmV0dXJuIG0ucmVhZFVJbnRCRSgwLGMpfSl9ZnVuY3Rpb24gZyhjKXtyZXR1cm4gaChcXFwidWludExFXFxcIixjKSxwKFxcXCJ1aW50TEUoXFxcIitjK1xcXCIpXFxcIixjKS5tYXAoZnVuY3Rpb24obSl7cmV0dXJuIG0ucmVhZFVJbnRMRSgwLGMpfSl9ZnVuY3Rpb24gRChjKXtyZXR1cm4gaChcXFwiaW50QkVcXFwiLGMpLHAoXFxcImludEJFKFxcXCIrYytcXFwiKVxcXCIsYykubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBtLnJlYWRJbnRCRSgwLGMpfSl9ZnVuY3Rpb24gVChjKXtyZXR1cm4gaChcXFwiaW50TEVcXFwiLGMpLHAoXFxcImludExFKFxcXCIrYytcXFwiKVxcXCIsYykubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBtLnJlYWRJbnRMRSgwLGMpfSl9ZnVuY3Rpb24gSShjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIHJ9ZnVuY3Rpb24gTihjKXtyZXR1cm57fS50b1N0cmluZy5jYWxsKGMpPT09XFxcIltvYmplY3QgQXJyYXldXFxcIn1mdW5jdGlvbiB5KGMpe3JldHVybiBsKCkmJkJ1ZmZlci5pc0J1ZmZlcihjKX1mdW5jdGlvbiB3KGMsbSl7cmV0dXJue3N0YXR1czohMCxpbmRleDpjLHZhbHVlOm0sZnVydGhlc3Q6LTEsZXhwZWN0ZWQ6W119fWZ1bmN0aW9uIHYoYyxtKXtyZXR1cm4gTihtKXx8KG09W21dKSx7c3RhdHVzOiExLGluZGV4Oi0xLHZhbHVlOm51bGwsZnVydGhlc3Q6YyxleHBlY3RlZDptfX1mdW5jdGlvbiBPKGMsbSl7aWYoIW18fGMuZnVydGhlc3Q+bS5mdXJ0aGVzdClyZXR1cm4gYzt2YXIgRT1jLmZ1cnRoZXN0PT09bS5mdXJ0aGVzdD9mdW5jdGlvbihrLEwpe2lmKGZ1bmN0aW9uKCl7aWYoci5fc3VwcG9ydHNTZXQhPT12b2lkIDApcmV0dXJuIHIuX3N1cHBvcnRzU2V0O3ZhciBodD10eXBlb2YgU2V0IT1cXFwidW5kZWZpbmVkXFxcIjtyZXR1cm4gci5fc3VwcG9ydHNTZXQ9aHQsaHR9KCkmJkFycmF5LmZyb20pe2Zvcih2YXIgQT1uZXcgU2V0KGspLE09MDtNPEwubGVuZ3RoO00rKylBLmFkZChMW01dKTt2YXIgVT1BcnJheS5mcm9tKEEpO3JldHVybiBVLnNvcnQoKSxVfWZvcih2YXIgdGU9e30sRWU9MDtFZTxrLmxlbmd0aDtFZSsrKXRlW2tbRWVdXT0hMDtmb3IodmFyIHBlPTA7cGU8TC5sZW5ndGg7cGUrKyl0ZVtMW3BlXV09ITA7dmFyIGR0PVtdO2Zvcih2YXIgdmUgaW4gdGUpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLHZlKSYmZHQucHVzaCh2ZSk7cmV0dXJuIGR0LnNvcnQoKSxkdH0oYy5leHBlY3RlZCxtLmV4cGVjdGVkKTptLmV4cGVjdGVkO3JldHVybntzdGF0dXM6Yy5zdGF0dXMsaW5kZXg6Yy5pbmRleCx2YWx1ZTpjLnZhbHVlLGZ1cnRoZXN0Om0uZnVydGhlc3QsZXhwZWN0ZWQ6RX19dmFyIEM9e307ZnVuY3Rpb24gVihjLG0pe2lmKHkoYykpcmV0dXJue29mZnNldDptLGxpbmU6LTEsY29sdW1uOi0xfTtjIGluIEN8fChDW2NdPXt9KTtmb3IodmFyIEU9Q1tjXSxrPTAsTD0wLEE9MCxNPW07TT49MDspe2lmKE0gaW4gRSl7az1FW01dLmxpbmUsQT09PTAmJihBPUVbTV0ubGluZVN0YXJ0KTticmVha30oYy5jaGFyQXQoTSk9PT1gXFxuYHx8Yy5jaGFyQXQoTSk9PT1cXFwiXFxcXHJcXFwiJiZjLmNoYXJBdChNKzEpIT09YFxcbmApJiYoTCsrLEE9PT0wJiYoQT1NKzEpKSxNLS19dmFyIFU9aytMLHRlPW0tQTtyZXR1cm4gRVttXT17bGluZTpVLGxpbmVTdGFydDpBfSx7b2Zmc2V0Om0sbGluZTpVKzEsY29sdW1uOnRlKzF9fWZ1bmN0aW9uIGooYyl7aWYoIUkoYykpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBwYXJzZXI6IFxcXCIrYyl9ZnVuY3Rpb24gWShjLG0pe3JldHVybiB0eXBlb2YgYz09XFxcInN0cmluZ1xcXCI/Yy5jaGFyQXQobSk6Y1ttXX1mdW5jdGlvbiBlZShjKXtpZih0eXBlb2YgYyE9XFxcIm51bWJlclxcXCIpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBudW1iZXI6IFxcXCIrYyl9ZnVuY3Rpb24gYWUoYyl7aWYodHlwZW9mIGMhPVxcXCJmdW5jdGlvblxcXCIpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBmdW5jdGlvbjogXFxcIitjKX1mdW5jdGlvbiB4KGMpe2lmKHR5cGVvZiBjIT1cXFwic3RyaW5nXFxcIil0aHJvdyBuZXcgRXJyb3IoXFxcIm5vdCBhIHN0cmluZzogXFxcIitjKX12YXIgJD0yLFE9Myx1ZT04LERlPTUqdWUsUmU9NCp1ZSxRdD1cXFwiICBcXFwiO2Z1bmN0aW9uIE10KGMsbSl7cmV0dXJuIG5ldyBBcnJheShtKzEpLmpvaW4oYyl9ZnVuY3Rpb24gX3QoYyxtLEUpe3ZhciBrPW0tYy5sZW5ndGg7cmV0dXJuIGs8PTA/YzpNdChFLGspK2N9ZnVuY3Rpb24gQWUoYyxtLEUsayl7cmV0dXJue2Zyb206Yy1tPjA/Yy1tOjAsdG86YytFPms/azpjK0V9fWZ1bmN0aW9uIEJ0KGMsbSl7dmFyIEUsayxMLEEsTSxVPW0uaW5kZXgsdGU9VS5vZmZzZXQsRWU9MTtpZih0ZT09PWMubGVuZ3RoKXJldHVyblxcXCJHb3QgdGhlIGVuZCBvZiB0aGUgaW5wdXRcXFwiO2lmKHkoYykpe3ZhciBwZT10ZS10ZSV1ZSxkdD10ZS1wZSx2ZT1BZShwZSxEZSxSZSt1ZSxjLmxlbmd0aCksaHQ9YShmdW5jdGlvbihsZSl7cmV0dXJuIGEoZnVuY3Rpb24oZW4pe3JldHVybiBfdChlbi50b1N0cmluZygxNiksMixcXFwiMFxcXCIpfSxsZSl9LGZ1bmN0aW9uKGxlLGVuKXt2YXIgdG49bGUubGVuZ3RoLFJ0PVtdLG5uPTA7aWYodG48PWVuKXJldHVybltsZS5zbGljZSgpXTtmb3IodmFyIHJuPTA7cm48dG47cm4rKylSdFtubl18fFJ0LnB1c2goW10pLFJ0W25uXS5wdXNoKGxlW3JuXSksKHJuKzEpJWVuPT0wJiZubisrO3JldHVybiBSdH0oYy5zbGljZSh2ZS5mcm9tLHZlLnRvKS50b0pTT04oKS5kYXRhLHVlKSk7QT1mdW5jdGlvbihsZSl7cmV0dXJuIGxlLmZyb209PT0wJiZsZS50bz09PTE/e2Zyb206bGUuZnJvbSx0bzpsZS50b306e2Zyb206bGUuZnJvbS91ZSx0bzpNYXRoLmZsb29yKGxlLnRvL3VlKX19KHZlKSxrPXBlL3VlLEU9MypkdCxkdD49NCYmKEUrPTEpLEVlPTIsTD1hKGZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUubGVuZ3RoPD00P2xlLmpvaW4oXFxcIiBcXFwiKTpsZS5zbGljZSgwLDQpLmpvaW4oXFxcIiBcXFwiKStcXFwiICBcXFwiK2xlLnNsaWNlKDQpLmpvaW4oXFxcIiBcXFwiKX0saHQpLChNPSg4KihBLnRvPjA/QS50by0xOkEudG8pKS50b1N0cmluZygxNikubGVuZ3RoKTwyJiYoTT0yKX1lbHNle3ZhciBYdD1jLnNwbGl0KC9cXFxcclxcXFxufFtcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XS8pO0U9VS5jb2x1bW4tMSxrPVUubGluZS0xLEE9QWUoaywkLFEsWHQubGVuZ3RoKSxMPVh0LnNsaWNlKEEuZnJvbSxBLnRvKSxNPUEudG8udG9TdHJpbmcoKS5sZW5ndGh9dmFyIGxsPWstQS5mcm9tO3JldHVybiB5KGMpJiYoTT0oOCooQS50bz4wP0EudG8tMTpBLnRvKSkudG9TdHJpbmcoMTYpLmxlbmd0aCk8MiYmKE09MiksbyhmdW5jdGlvbihsZSxlbix0bil7dmFyIFJ0LG5uPXRuPT09bGwscm49bm4/XFxcIj4gXFxcIjpRdDtyZXR1cm4gUnQ9eShjKT9fdCgoOCooQS5mcm9tK3RuKSkudG9TdHJpbmcoMTYpLE0sXFxcIjBcXFwiKTpfdCgoQS5mcm9tK3RuKzEpLnRvU3RyaW5nKCksTSxcXFwiIFxcXCIpLFtdLmNvbmNhdChsZSxbcm4rUnQrXFxcIiB8IFxcXCIrZW5dLG5uP1tRdCtNdChcXFwiIFxcXCIsTSkrXFxcIiB8IFxcXCIrX3QoXFxcIlxcXCIsRSxcXFwiIFxcXCIpK010KFxcXCJeXFxcIixFZSldOltdKX0sW10sTCkuam9pbihgXFxuYCl9ZnVuY3Rpb24gU28oYyxtKXtyZXR1cm5bYFxcbmAsXFxcIi0tIFBBUlNJTkcgRkFJTEVEIFxcXCIrTXQoXFxcIi1cXFwiLDUwKSxgXFxuXFxuYCxCdChjLG0pLGBcXG5cXG5gLChFPW0uZXhwZWN0ZWQsRS5sZW5ndGg9PT0xP2BFeHBlY3RlZDpcXG5cXG5gK0VbMF06YEV4cGVjdGVkIG9uZSBvZiB0aGUgZm9sbG93aW5nOiBcXG5cXG5gK0Uuam9pbihcXFwiLCBcXFwiKSksYFxcbmBdLmpvaW4oXFxcIlxcXCIpO3ZhciBFfWZ1bmN0aW9uIGtvKGMpe3JldHVybiBjLmZsYWdzIT09dm9pZCAwP2MuZmxhZ3M6W2MuZ2xvYmFsP1xcXCJnXFxcIjpcXFwiXFxcIixjLmlnbm9yZUNhc2U/XFxcImlcXFwiOlxcXCJcXFwiLGMubXVsdGlsaW5lP1xcXCJtXFxcIjpcXFwiXFxcIixjLnVuaWNvZGU/XFxcInVcXFwiOlxcXCJcXFwiLGMuc3RpY2t5P1xcXCJ5XFxcIjpcXFwiXFxcIl0uam9pbihcXFwiXFxcIil9ZnVuY3Rpb24gQnIoKXtmb3IodmFyIGM9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLG09Yy5sZW5ndGgsRT0wO0U8bTtFKz0xKWooY1tFXSk7cmV0dXJuIHIoZnVuY3Rpb24oayxMKXtmb3IodmFyIEEsTT1uZXcgQXJyYXkobSksVT0wO1U8bTtVKz0xKXtpZighKEE9TyhjW1VdLl8oayxMKSxBKSkuc3RhdHVzKXJldHVybiBBO01bVV09QS52YWx1ZSxMPUEuaW5kZXh9cmV0dXJuIE8odyhMLE0pLEEpfSl9ZnVuY3Rpb24gUHQoKXt2YXIgYz1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYoYy5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcihcXFwic2VxTWFwIG5lZWRzIGF0IGxlYXN0IG9uZSBhcmd1bWVudFxcXCIpO3ZhciBtPWMucG9wKCk7cmV0dXJuIGFlKG0pLEJyLmFwcGx5KG51bGwsYykubWFwKGZ1bmN0aW9uKEUpe3JldHVybiBtLmFwcGx5KG51bGwsRSl9KX1mdW5jdGlvbiBQcigpe3ZhciBjPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxtPWMubGVuZ3RoO2lmKG09PT0wKXJldHVybiAkcihcXFwiemVybyBhbHRlcm5hdGVzXFxcIik7Zm9yKHZhciBFPTA7RTxtO0UrPTEpaihjW0VdKTtyZXR1cm4gcihmdW5jdGlvbihrLEwpe2Zvcih2YXIgQSxNPTA7TTxjLmxlbmd0aDtNKz0xKWlmKChBPU8oY1tNXS5fKGssTCksQSkpLnN0YXR1cylyZXR1cm4gQTtyZXR1cm4gQX0pfWZ1bmN0aW9uIENvKGMsbSl7cmV0dXJuIFVzKGMsbSkub3IoJHQoW10pKX1mdW5jdGlvbiBVcyhjLG0pe3JldHVybiBqKGMpLGoobSksUHQoYyxtLnRoZW4oYykubWFueSgpLGZ1bmN0aW9uKEUsayl7cmV0dXJuW0VdLmNvbmNhdChrKX0pfWZ1bmN0aW9uIEJuKGMpe3goYyk7dmFyIG09XFxcIidcXFwiK2MrXFxcIidcXFwiO3JldHVybiByKGZ1bmN0aW9uKEUsayl7dmFyIEw9aytjLmxlbmd0aCxBPUUuc2xpY2UoayxMKTtyZXR1cm4gQT09PWM/dyhMLEEpOnYoayxtKX0pfWZ1bmN0aW9uIGZ0KGMsbSl7KGZ1bmN0aW9uKEwpe2lmKCEoTCBpbnN0YW5jZW9mIFJlZ0V4cCkpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSByZWdleHA6IFxcXCIrTCk7Zm9yKHZhciBBPWtvKEwpLE09MDtNPEEubGVuZ3RoO00rKyl7dmFyIFU9QS5jaGFyQXQoTSk7aWYoVSE9PVxcXCJpXFxcIiYmVSE9PVxcXCJtXFxcIiYmVSE9PVxcXCJ1XFxcIiYmVSE9PVxcXCJzXFxcIil0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHJlZ2V4cCBmbGFnIFxcXCInK1UrJ1xcXCI6ICcrTCl9fSkoYyksYXJndW1lbnRzLmxlbmd0aD49Mj9lZShtKTptPTA7dmFyIEU9ZnVuY3Rpb24oTCl7cmV0dXJuIFJlZ0V4cChcXFwiXig/OlxcXCIrTC5zb3VyY2UrXFxcIilcXFwiLGtvKEwpKX0oYyksaz1cXFwiXFxcIitjO3JldHVybiByKGZ1bmN0aW9uKEwsQSl7dmFyIE09RS5leGVjKEwuc2xpY2UoQSkpO2lmKE0pe2lmKDA8PW0mJm08PU0ubGVuZ3RoKXt2YXIgVT1NWzBdLHRlPU1bbV07cmV0dXJuIHcoQStVLmxlbmd0aCx0ZSl9cmV0dXJuIHYoQSxcXFwidmFsaWQgbWF0Y2ggZ3JvdXAgKDAgdG8gXFxcIitNLmxlbmd0aCtcXFwiKSBpbiBcXFwiK2spfXJldHVybiB2KEEsayl9KX1mdW5jdGlvbiAkdChjKXtyZXR1cm4gcihmdW5jdGlvbihtLEUpe3JldHVybiB3KEUsYyl9KX1mdW5jdGlvbiAkcihjKXtyZXR1cm4gcihmdW5jdGlvbihtLEUpe3JldHVybiB2KEUsYyl9KX1mdW5jdGlvbiBScihjKXtpZihJKGMpKXJldHVybiByKGZ1bmN0aW9uKG0sRSl7dmFyIGs9Yy5fKG0sRSk7cmV0dXJuIGsuaW5kZXg9RSxrLnZhbHVlPVxcXCJcXFwiLGt9KTtpZih0eXBlb2YgYz09XFxcInN0cmluZ1xcXCIpcmV0dXJuIFJyKEJuKGMpKTtpZihjIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBScihmdChjKSk7dGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYSBzdHJpbmcsIHJlZ2V4cCwgb3IgcGFyc2VyOiBcXFwiK2MpfWZ1bmN0aW9uIHZvKGMpe3JldHVybiBqKGMpLHIoZnVuY3Rpb24obSxFKXt2YXIgaz1jLl8obSxFKSxMPW0uc2xpY2UoRSxrLmluZGV4KTtyZXR1cm4gay5zdGF0dXM/dihFLCdub3QgXFxcIicrTCsnXFxcIicpOncoRSxudWxsKX0pfWZ1bmN0aW9uIGpyKGMpe3JldHVybiBhZShjKSxyKGZ1bmN0aW9uKG0sRSl7dmFyIGs9WShtLEUpO3JldHVybiBFPG0ubGVuZ3RoJiZjKGspP3coRSsxLGspOnYoRSxcXFwiYSBjaGFyYWN0ZXIvYnl0ZSBtYXRjaGluZyBcXFwiK2MpfSl9ZnVuY3Rpb24gT28oYyxtKXthcmd1bWVudHMubGVuZ3RoPDImJihtPWMsYz12b2lkIDApO3ZhciBFPXIoZnVuY3Rpb24oayxMKXtyZXR1cm4gRS5fPW0oKS5fLEUuXyhrLEwpfSk7cmV0dXJuIGM/RS5kZXNjKGMpOkV9ZnVuY3Rpb24gS3MoKXtyZXR1cm4gJHIoXFxcImZhbnRhc3ktbGFuZC9lbXB0eVxcXCIpfXMucGFyc2U9ZnVuY3Rpb24oYyl7aWYodHlwZW9mIGMhPVxcXCJzdHJpbmdcXFwiJiYheShjKSl0aHJvdyBuZXcgRXJyb3IoXFxcIi5wYXJzZSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc3RyaW5nIG9yIEJ1ZmZlciBhcyBpdHMgYXJndW1lbnRcXFwiKTt2YXIgbSxFPXRoaXMuc2tpcChXcykuXyhjLDApO3JldHVybiBtPUUuc3RhdHVzP3tzdGF0dXM6ITAsdmFsdWU6RS52YWx1ZX06e3N0YXR1czohMSxpbmRleDpWKGMsRS5mdXJ0aGVzdCksZXhwZWN0ZWQ6RS5leHBlY3RlZH0sZGVsZXRlIENbY10sbX0scy50cnlQYXJzZT1mdW5jdGlvbihjKXt2YXIgbT10aGlzLnBhcnNlKGMpO2lmKG0uc3RhdHVzKXJldHVybiBtLnZhbHVlO3ZhciBFPVNvKGMsbSksaz1uZXcgRXJyb3IoRSk7dGhyb3cgay50eXBlPVxcXCJQYXJzaW1tb25FcnJvclxcXCIsay5yZXN1bHQ9bSxrfSxzLmFzc2VydD1mdW5jdGlvbihjLG0pe3JldHVybiB0aGlzLmNoYWluKGZ1bmN0aW9uKEUpe3JldHVybiBjKEUpPyR0KEUpOiRyKG0pfSl9LHMub3I9ZnVuY3Rpb24oYyl7cmV0dXJuIFByKHRoaXMsYyl9LHMudHJpbT1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy53cmFwKGMsYyl9LHMud3JhcD1mdW5jdGlvbihjLG0pe3JldHVybiBQdChjLHRoaXMsbSxmdW5jdGlvbihFLGspe3JldHVybiBrfSl9LHMudGhydT1mdW5jdGlvbihjKXtyZXR1cm4gYyh0aGlzKX0scy50aGVuPWZ1bmN0aW9uKGMpe3JldHVybiBqKGMpLEJyKHRoaXMsYykubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBtWzFdfSl9LHMubWFueT1mdW5jdGlvbigpe3ZhciBjPXRoaXM7cmV0dXJuIHIoZnVuY3Rpb24obSxFKXtmb3IodmFyIGs9W10sTD12b2lkIDA7Oyl7aWYoIShMPU8oYy5fKG0sRSksTCkpLnN0YXR1cylyZXR1cm4gTyh3KEUsayksTCk7aWYoRT09PUwuaW5kZXgpdGhyb3cgbmV3IEVycm9yKFxcXCJpbmZpbml0ZSBsb29wIGRldGVjdGVkIGluIC5tYW55KCkgcGFyc2VyIC0tLSBjYWxsaW5nIC5tYW55KCkgb24gYSBwYXJzZXIgd2hpY2ggY2FuIGFjY2VwdCB6ZXJvIGNoYXJhY3RlcnMgaXMgdXN1YWxseSB0aGUgY2F1c2VcXFwiKTtFPUwuaW5kZXgsay5wdXNoKEwudmFsdWUpfX0pfSxzLnRpZVdpdGg9ZnVuY3Rpb24oYyl7cmV0dXJuIHgoYyksdGhpcy5tYXAoZnVuY3Rpb24obSl7aWYoZnVuY3Rpb24oTCl7aWYoIU4oTCkpdGhyb3cgbmV3IEVycm9yKFxcXCJub3QgYW4gYXJyYXk6IFxcXCIrTCl9KG0pLG0ubGVuZ3RoKXt4KG1bMF0pO2Zvcih2YXIgRT1tWzBdLGs9MTtrPG0ubGVuZ3RoO2srKyl4KG1ba10pLEUrPWMrbVtrXTtyZXR1cm4gRX1yZXR1cm5cXFwiXFxcIn0pfSxzLnRpZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpZVdpdGgoXFxcIlxcXCIpfSxzLnRpbWVzPWZ1bmN0aW9uKGMsbSl7dmFyIEU9dGhpcztyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYobT1jKSxlZShjKSxlZShtKSxyKGZ1bmN0aW9uKGssTCl7Zm9yKHZhciBBPVtdLE09dm9pZCAwLFU9dm9pZCAwLHRlPTA7dGU8Yzt0ZSs9MSl7aWYoVT1PKE09RS5fKGssTCksVSksIU0uc3RhdHVzKXJldHVybiBVO0w9TS5pbmRleCxBLnB1c2goTS52YWx1ZSl9Zm9yKDt0ZTxtJiYoVT1PKE09RS5fKGssTCksVSksTS5zdGF0dXMpO3RlKz0xKUw9TS5pbmRleCxBLnB1c2goTS52YWx1ZSk7cmV0dXJuIE8odyhMLEEpLFUpfSl9LHMucmVzdWx0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBjfSl9LHMuYXRNb3N0PWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnRpbWVzKDAsYyl9LHMuYXRMZWFzdD1mdW5jdGlvbihjKXtyZXR1cm4gUHQodGhpcy50aW1lcyhjKSx0aGlzLm1hbnkoKSxmdW5jdGlvbihtLEUpe3JldHVybiBtLmNvbmNhdChFKX0pfSxzLm1hcD1mdW5jdGlvbihjKXthZShjKTt2YXIgbT10aGlzO3JldHVybiByKGZ1bmN0aW9uKEUsayl7dmFyIEw9bS5fKEUsayk7cmV0dXJuIEwuc3RhdHVzP08odyhMLmluZGV4LGMoTC52YWx1ZSkpLEwpOkx9KX0scy5jb250cmFtYXA9ZnVuY3Rpb24oYyl7YWUoYyk7dmFyIG09dGhpcztyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPW0ucGFyc2UoYyhFLnNsaWNlKGspKSk7cmV0dXJuIEwuc3RhdHVzP3coaytFLmxlbmd0aCxMLnZhbHVlKTpMfSl9LHMucHJvbWFwPWZ1bmN0aW9uKGMsbSl7cmV0dXJuIGFlKGMpLGFlKG0pLHRoaXMuY29udHJhbWFwKGMpLm1hcChtKX0scy5za2lwPWZ1bmN0aW9uKGMpe3JldHVybiBCcih0aGlzLGMpLm1hcChmdW5jdGlvbihtKXtyZXR1cm4gbVswXX0pfSxzLm1hcms9ZnVuY3Rpb24oKXtyZXR1cm4gUHQoUG4sdGhpcyxQbixmdW5jdGlvbihjLG0sRSl7cmV0dXJue3N0YXJ0OmMsdmFsdWU6bSxlbmQ6RX19KX0scy5ub2RlPWZ1bmN0aW9uKGMpe3JldHVybiBQdChQbix0aGlzLFBuLGZ1bmN0aW9uKG0sRSxrKXtyZXR1cm57bmFtZTpjLHZhbHVlOkUsc3RhcnQ6bSxlbmQ6a319KX0scy5zZXBCeT1mdW5jdGlvbihjKXtyZXR1cm4gQ28odGhpcyxjKX0scy5zZXBCeTE9ZnVuY3Rpb24oYyl7cmV0dXJuIFVzKHRoaXMsYyl9LHMubG9va2FoZWFkPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnNraXAoUnIoYykpfSxzLm5vdEZvbGxvd2VkQnk9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuc2tpcCh2byhjKSl9LHMuZGVzYz1mdW5jdGlvbihjKXtOKGMpfHwoYz1bY10pO3ZhciBtPXRoaXM7cmV0dXJuIHIoZnVuY3Rpb24oRSxrKXt2YXIgTD1tLl8oRSxrKTtyZXR1cm4gTC5zdGF0dXN8fChMLmV4cGVjdGVkPWMpLEx9KX0scy5mYWxsYmFjaz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5vcigkdChjKSl9LHMuYXA9ZnVuY3Rpb24oYyl7cmV0dXJuIFB0KGMsdGhpcyxmdW5jdGlvbihtLEUpe3JldHVybiBtKEUpfSl9LHMuY2hhaW49ZnVuY3Rpb24oYyl7dmFyIG09dGhpcztyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPW0uXyhFLGspO3JldHVybiBMLnN0YXR1cz9PKGMoTC52YWx1ZSkuXyhFLEwuaW5kZXgpLEwpOkx9KX0scy5jb25jYXQ9cy5vcixzLmVtcHR5PUtzLHMub2Y9JHQsc1tcXFwiZmFudGFzeS1sYW5kL2FwXFxcIl09cy5hcCxzW1xcXCJmYW50YXN5LWxhbmQvY2hhaW5cXFwiXT1zLmNoYWluLHNbXFxcImZhbnRhc3ktbGFuZC9jb25jYXRcXFwiXT1zLmNvbmNhdCxzW1xcXCJmYW50YXN5LWxhbmQvZW1wdHlcXFwiXT1zLmVtcHR5LHNbXFxcImZhbnRhc3ktbGFuZC9vZlxcXCJdPXMub2Ysc1tcXFwiZmFudGFzeS1sYW5kL21hcFxcXCJdPXMubWFwO3ZhciBQbj1yKGZ1bmN0aW9uKGMsbSl7cmV0dXJuIHcobSxWKGMsbSkpfSksZWw9cihmdW5jdGlvbihjLG0pe3JldHVybiBtPj1jLmxlbmd0aD92KG0sXFxcImFueSBjaGFyYWN0ZXIvYnl0ZVxcXCIpOncobSsxLFkoYyxtKSl9KSx0bD1yKGZ1bmN0aW9uKGMsbSl7cmV0dXJuIHcoYy5sZW5ndGgsYy5zbGljZShtKSl9KSxXcz1yKGZ1bmN0aW9uKGMsbSl7cmV0dXJuIG08Yy5sZW5ndGg/dihtLFxcXCJFT0ZcXFwiKTp3KG0sbnVsbCl9KSxubD1mdCgvWzAtOV0vKS5kZXNjKFxcXCJhIGRpZ2l0XFxcIikscmw9ZnQoL1swLTldKi8pLmRlc2MoXFxcIm9wdGlvbmFsIGRpZ2l0c1xcXCIpLHNsPWZ0KC9bYS16XS9pKS5kZXNjKFxcXCJhIGxldHRlclxcXCIpLGlsPWZ0KC9bYS16XSovaSkuZGVzYyhcXFwib3B0aW9uYWwgbGV0dGVyc1xcXCIpLG9sPWZ0KC9cXFxccyovKS5kZXNjKFxcXCJvcHRpb25hbCB3aGl0ZXNwYWNlXFxcIiksYWw9ZnQoL1xcXFxzKy8pLmRlc2MoXFxcIndoaXRlc3BhY2VcXFwiKSx4bz1CbihcXFwiXFxcXHJcXFwiKSxJbz1CbihgXFxuYCksTG89Qm4oYFxcXFxyXFxuYCksTm89UHIoTG8sSW8seG8pLmRlc2MoXFxcIm5ld2xpbmVcXFwiKSx1bD1QcihObyxXcyk7ci5hbGw9dGwsci5hbHQ9UHIsci5hbnk9ZWwsci5jcj14byxyLmNyZWF0ZUxhbmd1YWdlPWZ1bmN0aW9uKGMpe3ZhciBtPXt9O2Zvcih2YXIgRSBpbiBjKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChjLEUpJiZmdW5jdGlvbihrKXttW2tdPU9vKGZ1bmN0aW9uKCl7cmV0dXJuIGNba10obSl9KX0oRSk7cmV0dXJuIG19LHIuY3JsZj1MbyxyLmN1c3RvbT1mdW5jdGlvbihjKXtyZXR1cm4gcihjKHcsdikpfSxyLmRpZ2l0PW5sLHIuZGlnaXRzPXJsLHIuZW1wdHk9S3Msci5lbmQ9dWwsci5lb2Y9V3Msci5mYWlsPSRyLHIuZm9ybWF0RXJyb3I9U28sci5pbmRleD1QbixyLmlzUGFyc2VyPUksci5sYXp5PU9vLHIubGV0dGVyPXNsLHIubGV0dGVycz1pbCxyLmxmPUlvLHIubG9va2FoZWFkPVJyLHIubWFrZUZhaWx1cmU9dixyLm1ha2VTdWNjZXNzPXcsci5uZXdsaW5lPU5vLHIubm9uZU9mPWZ1bmN0aW9uKGMpe3JldHVybiBqcihmdW5jdGlvbihtKXtyZXR1cm4gYy5pbmRleE9mKG0pPDB9KS5kZXNjKFxcXCJub25lIG9mICdcXFwiK2MrXFxcIidcXFwiKX0sci5ub3RGb2xsb3dlZEJ5PXZvLHIub2Y9JHQsci5vbmVPZj1mdW5jdGlvbihjKXtmb3IodmFyIG09Yy5zcGxpdChcXFwiXFxcIiksRT0wO0U8bS5sZW5ndGg7RSsrKW1bRV09XFxcIidcXFwiK21bRV0rXFxcIidcXFwiO3JldHVybiBqcihmdW5jdGlvbihrKXtyZXR1cm4gYy5pbmRleE9mKGspPj0wfSkuZGVzYyhtKX0sci5vcHRXaGl0ZXNwYWNlPW9sLHIuUGFyc2VyPXIsci5yYW5nZT1mdW5jdGlvbihjLG0pe3JldHVybiBqcihmdW5jdGlvbihFKXtyZXR1cm4gYzw9RSYmRTw9bX0pLmRlc2MoYytcXFwiLVxcXCIrbSl9LHIucmVnZXg9ZnQsci5yZWdleHA9ZnQsci5zZXBCeT1DbyxyLnNlcEJ5MT1VcyxyLnNlcT1CcixyLnNlcU1hcD1QdCxyLnNlcU9iaj1mdW5jdGlvbigpe2Zvcih2YXIgYyxtPXt9LEU9MCxrPShjPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjKSksTD1rLmxlbmd0aCxBPTA7QTxMO0ErPTEpe3ZhciBNPWtbQV07aWYoIUkoTSkpe2lmKE4oTSkmJk0ubGVuZ3RoPT09MiYmdHlwZW9mIE1bMF09PVxcXCJzdHJpbmdcXFwiJiZJKE1bMV0pKXt2YXIgVT1NWzBdO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtLFUpKXRocm93IG5ldyBFcnJvcihcXFwic2VxT2JqOiBkdXBsaWNhdGUga2V5IFxcXCIrVSk7bVtVXT0hMCxFKys7Y29udGludWV9dGhyb3cgbmV3IEVycm9yKFxcXCJzZXFPYmogYXJndW1lbnRzIG11c3QgYmUgcGFyc2VycyBvciBbc3RyaW5nLCBwYXJzZXJdIGFycmF5IHBhaXJzLlxcXCIpfX1pZihFPT09MCl0aHJvdyBuZXcgRXJyb3IoXFxcInNlcU9iaiBleHBlY3RzIGF0IGxlYXN0IG9uZSBuYW1lZCBwYXJzZXIsIGZvdW5kIHplcm9cXFwiKTtyZXR1cm4gcihmdW5jdGlvbih0ZSxFZSl7Zm9yKHZhciBwZSxkdD17fSx2ZT0wO3ZlPEw7dmUrPTEpe3ZhciBodCxYdDtpZihOKGtbdmVdKT8oaHQ9a1t2ZV1bMF0sWHQ9a1t2ZV1bMV0pOihodD1udWxsLFh0PWtbdmVdKSwhKHBlPU8oWHQuXyh0ZSxFZSkscGUpKS5zdGF0dXMpcmV0dXJuIHBlO2h0JiYoZHRbaHRdPXBlLnZhbHVlKSxFZT1wZS5pbmRleH1yZXR1cm4gTyh3KEVlLGR0KSxwZSl9KX0sci5zdHJpbmc9Qm4sci5zdWNjZWVkPSR0LHIudGFrZVdoaWxlPWZ1bmN0aW9uKGMpe3JldHVybiBhZShjKSxyKGZ1bmN0aW9uKG0sRSl7Zm9yKHZhciBrPUU7azxtLmxlbmd0aCYmYyhZKG0saykpOylrKys7cmV0dXJuIHcoayxtLnNsaWNlKEUsaykpfSl9LHIudGVzdD1qcixyLndoaXRlc3BhY2U9YWwscltcXFwiZmFudGFzeS1sYW5kL2VtcHR5XFxcIl09S3MscltcXFwiZmFudGFzeS1sYW5kL29mXFxcIl09JHQsci5CaW5hcnk9e2JpdFNlcTpkLGJpdFNlcU9iajpmdW5jdGlvbihjKXtmKCk7dmFyIG09e30sRT0wLGs9YShmdW5jdGlvbihBKXtpZihOKEEpKXt2YXIgTT1BO2lmKE0ubGVuZ3RoIT09Mil0aHJvdyBuZXcgRXJyb3IoXFxcIltcXFwiK00uam9pbihcXFwiLCBcXFwiKStcXFwiXSBzaG91bGQgYmUgbGVuZ3RoIDIsIGdvdCBsZW5ndGggXFxcIitNLmxlbmd0aCk7aWYoeChNWzBdKSxlZShNWzFdKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobSxNWzBdKSl0aHJvdyBuZXcgRXJyb3IoXFxcImR1cGxpY2F0ZSBrZXkgaW4gYml0U2VxT2JqOiBcXFwiK01bMF0pO3JldHVybiBtW01bMF1dPSEwLEUrKyxNfXJldHVybiBlZShBKSxbbnVsbCxBXX0sYyk7aWYoRTwxKXRocm93IG5ldyBFcnJvcihcXFwiYml0U2VxT2JqIGV4cGVjdHMgYXQgbGVhc3Qgb25lIG5hbWVkIHBhaXIsIGdvdCBbXFxcIitjLmpvaW4oXFxcIiwgXFxcIikrXFxcIl1cXFwiKTt2YXIgTD1hKGZ1bmN0aW9uKEEpe3JldHVybiBBWzBdfSxrKTtyZXR1cm4gZChhKGZ1bmN0aW9uKEEpe3JldHVybiBBWzFdfSxrKSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBvKGZ1bmN0aW9uKE0sVSl7cmV0dXJuIFVbMF0hPT1udWxsJiYoTVtVWzBdXT1VWzFdKSxNfSx7fSxhKGZ1bmN0aW9uKE0sVSl7cmV0dXJuW00sQVtVXV19LEwpKX0pfSxieXRlOmZ1bmN0aW9uKGMpe2lmKGYoKSxlZShjKSxjPjI1NSl0aHJvdyBuZXcgRXJyb3IoXFxcIlZhbHVlIHNwZWNpZmllZCB0byBieXRlIGNvbnN0cnVjdG9yIChcXFwiK2MrXFxcIj0weFxcXCIrYy50b1N0cmluZygxNikrXFxcIikgaXMgbGFyZ2VyIGluIHZhbHVlIHRoYW4gYSBzaW5nbGUgYnl0ZS5cXFwiKTt2YXIgbT0oYz4xNT9cXFwiMHhcXFwiOlxcXCIweDBcXFwiKStjLnRvU3RyaW5nKDE2KTtyZXR1cm4gcihmdW5jdGlvbihFLGspe3ZhciBMPVkoRSxrKTtyZXR1cm4gTD09PWM/dyhrKzEsTCk6dihrLG0pfSl9LGJ1ZmZlcjpmdW5jdGlvbihjKXtyZXR1cm4gcChcXFwiYnVmZmVyXFxcIixjKS5tYXAoZnVuY3Rpb24obSl7cmV0dXJuIEJ1ZmZlci5mcm9tKG0pfSl9LGVuY29kZWRTdHJpbmc6ZnVuY3Rpb24oYyxtKXtyZXR1cm4gcChcXFwic3RyaW5nXFxcIixtKS5tYXAoZnVuY3Rpb24oRSl7cmV0dXJuIEUudG9TdHJpbmcoYyl9KX0sdWludEJFOmIsdWludDhCRTpiKDEpLHVpbnQxNkJFOmIoMiksdWludDMyQkU6Yig0KSx1aW50TEU6Zyx1aW50OExFOmcoMSksdWludDE2TEU6ZygyKSx1aW50MzJMRTpnKDQpLGludEJFOkQsaW50OEJFOkQoMSksaW50MTZCRTpEKDIpLGludDMyQkU6RCg0KSxpbnRMRTpULGludDhMRTpUKDEpLGludDE2TEU6VCgyKSxpbnQzMkxFOlQoNCksZmxvYXRCRTpwKFxcXCJmbG9hdEJFXFxcIiw0KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMucmVhZEZsb2F0QkUoMCl9KSxmbG9hdExFOnAoXFxcImZsb2F0TEVcXFwiLDQpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5yZWFkRmxvYXRMRSgwKX0pLGRvdWJsZUJFOnAoXFxcImRvdWJsZUJFXFxcIiw4KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMucmVhZERvdWJsZUJFKDApfSksZG91YmxlTEU6cChcXFwiZG91YmxlTEVcXFwiLDgpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5yZWFkRG91YmxlTEUoMCl9KX0sbi5leHBvcnRzPXJ9XSl9KX0pO3ZhciBSdT1fbyhOZT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgU2Y9TmUmJk5lLl9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgbj1mdW5jdGlvbihlLHQpe3JldHVybiBuPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLHMpe3IuX19wcm90b19fPXN9fHxmdW5jdGlvbihyLHMpe2Zvcih2YXIgaSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGkpJiYocltpXT1zW2ldKX0sbihlLHQpfTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgdCE9XFxcImZ1bmN0aW9uXFxcIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihcXFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcXFwiK1N0cmluZyh0KStcXFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcXFwiKTtuKGUsdCk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT10PT09bnVsbD9PYmplY3QuY3JlYXRlKHQpOihyLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgcil9fSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShOZSxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSk7TmUuRW1wdHlCVHJlZT1OZS5hc1NldD1OZS5zaW1wbGVDb21wYXJhdG9yPU5lLmRlZmF1bHRDb21wYXJhdG9yPXZvaWQgMDtmdW5jdGlvbiBCdShuLGUpe2lmKE51bWJlci5pc0Zpbml0ZShuKSYmTnVtYmVyLmlzRmluaXRlKGUpKXJldHVybiBuLWU7dmFyIHQ9dHlwZW9mIG4scj10eXBlb2YgZTtpZih0IT09cilyZXR1cm4gdDxyPy0xOjE7aWYodD09PVxcXCJvYmplY3RcXFwiKXtpZihuPT09bnVsbClyZXR1cm4gZT09PW51bGw/MDotMTtpZihlPT09bnVsbClyZXR1cm4gMTtpZihuPW4udmFsdWVPZigpLGU9ZS52YWx1ZU9mKCksdD10eXBlb2YgbixyPXR5cGVvZiBlLHQhPT1yKXJldHVybiB0PHI/LTE6MX1yZXR1cm4gbjxlPy0xOm4+ZT8xOm49PT1lPzA6TnVtYmVyLmlzTmFOKG4pP051bWJlci5pc05hTihlKT8wOi0xOk51bWJlci5pc05hTihlKT8xOkFycmF5LmlzQXJyYXkobik/MDpOdW1iZXIuTmFOfU5lLmRlZmF1bHRDb21wYXJhdG9yPUJ1O2Z1bmN0aW9uIGtmKG4sZSl7cmV0dXJuIG4+ZT8xOm48ZT8tMTowfU5lLnNpbXBsZUNvbXBhcmF0b3I9a2Y7dmFyIGx0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihlLHQscil7dGhpcy5fcm9vdD1mbyx0aGlzLl9zaXplPTAsdGhpcy5fbWF4Tm9kZVNpemU9cj49ND9NYXRoLm1pbihyLDI1Nik6MzIsdGhpcy5fY29tcGFyZT10fHxCdSxlJiZ0aGlzLnNldFBhaXJzKGUpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcInNpemVcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcImxlbmd0aFxcXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaXplfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwiaXNFbXB0eVxcXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaXplPT09MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3Jvb3Q9Zm8sdGhpcy5fc2l6ZT0wfSxuLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztyZXR1cm4gdCE9PXZvaWQgMCYmKGU9ZS5iaW5kKHQpKSx0aGlzLmZvckVhY2hQYWlyKGZ1bmN0aW9uKHMsaSl7cmV0dXJuIGUoaSxzLHIpfSl9LG4ucHJvdG90eXBlLmZvckVhY2hQYWlyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5taW5LZXkoKSxzPXRoaXMubWF4S2V5KCk7cmV0dXJuIHRoaXMuZm9yUmFuZ2UocixzLCEwLGUsdCl9LG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9yb290LmdldChlLHQsdGhpcyl9LG4ucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQscil7dGhpcy5fcm9vdC5pc1NoYXJlZCYmKHRoaXMuX3Jvb3Q9dGhpcy5fcm9vdC5jbG9uZSgpKTt2YXIgcz10aGlzLl9yb290LnNldChlLHQscix0aGlzKTtyZXR1cm4gcz09PSEwfHxzPT09ITE/czoodGhpcy5fcm9vdD1uZXcgdmYoW3RoaXMuX3Jvb3Qsc10pLCEwKX0sbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZvclJhbmdlKGUsZSwhMCx2b2lkIDApIT09MH0sbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVkaXRSYW5nZShlLGUsITAsTXUpIT09MH0sbi5wcm90b3R5cGUud2l0aD1mdW5jdGlvbihlLHQscil7dmFyIHM9dGhpcy5jbG9uZSgpO3JldHVybiBzLnNldChlLHQscil8fHI/czp0aGlzfSxuLnByb3RvdHlwZS53aXRoUGFpcnM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmNsb25lKCk7cmV0dXJuIHIuc2V0UGFpcnMoZSx0KSE9PTB8fHQ/cjp0aGlzfSxuLnByb3RvdHlwZS53aXRoS2V5cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLmNsb25lKCkscz0hMSxpPTA7aTxlLmxlbmd0aDtpKyspcz1yLnNldChlW2ldLHZvaWQgMCwhMSl8fHM7cmV0dXJuIHQmJiFzP3RoaXM6cn0sbi5wcm90b3R5cGUud2l0aG91dD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLndpdGhvdXRSYW5nZShlLGUsITAsdCl9LG4ucHJvdG90eXBlLndpdGhvdXRLZXlzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5jbG9uZSgpO3JldHVybiByLmRlbGV0ZUtleXMoZSl8fCF0P3I6dGhpc30sbi5wcm90b3R5cGUud2l0aG91dFJhbmdlPWZ1bmN0aW9uKGUsdCxyLHMpe3ZhciBpPXRoaXMuY2xvbmUoKTtyZXR1cm4gaS5kZWxldGVSYW5nZShlLHQscik9PT0wJiZzP3RoaXM6aX0sbi5wcm90b3R5cGUuZmlsdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5ncmVlZHlDbG9uZSgpLHM7cmV0dXJuIHIuZWRpdEFsbChmdW5jdGlvbihpLG8sYSl7aWYoIWUoaSxvLGEpKXJldHVybiBzPSR1fSksIXMmJnQ/dGhpczpyfSxuLnByb3RvdHlwZS5tYXBWYWx1ZXM9ZnVuY3Rpb24oZSl7dmFyIHQ9e30scj10aGlzLmdyZWVkeUNsb25lKCk7cmV0dXJuIHIuZWRpdEFsbChmdW5jdGlvbihzLGksbyl7cmV0dXJuIHQudmFsdWU9ZShpLHMsbyksdH0pLHJ9LG4ucHJvdG90eXBlLnJlZHVjZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0wLHM9dCxpPXRoaXMuZW50cmllcyh0aGlzLm1pbktleSgpLE1yKSxvOyEobz1pLm5leHQoKSkuZG9uZTspcz1lKHMsby52YWx1ZSxyKyssdGhpcyk7cmV0dXJuIHN9LG4ucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmZpbmRQYXRoKGUpO2lmKHI9PT12b2lkIDApcmV0dXJuIEFuKCk7dmFyIHM9ci5ub2RlcXVldWUsaT1yLm5vZGVpbmRleCxvPXIubGVhZixhPXQhPT12b2lkIDA/MTowLHU9ZT09PXZvaWQgMD8tMTpvLmluZGV4T2YoZSwwLHRoaXMuX2NvbXBhcmUpLTE7cmV0dXJuIEFuKGZ1bmN0aW9uKCl7ZTpmb3IoOzspc3dpdGNoKGEpe2Nhc2UgMDppZigrK3U8by5rZXlzLmxlbmd0aClyZXR1cm57ZG9uZTohMSx2YWx1ZTpbby5rZXlzW3VdLG8udmFsdWVzW3VdXX07YT0yO2NvbnRpbnVlO2Nhc2UgMTppZigrK3U8by5rZXlzLmxlbmd0aClyZXR1cm4gdFswXT1vLmtleXNbdV0sdFsxXT1vLnZhbHVlc1t1XSx7ZG9uZTohMSx2YWx1ZTp0fTthPTI7Y2FzZSAyOmZvcih2YXIgbD0tMTs7KXtpZigrK2w+PXMubGVuZ3RoKXthPTM7Y29udGludWUgZX1pZigrK2lbbF08c1tsXS5sZW5ndGgpYnJlYWt9Zm9yKDtsPjA7bC0tKXNbbC0xXT1zW2xdW2lbbF1dLmNoaWxkcmVuLGlbbC0xXT0wO289c1swXVtpWzBdXSx1PS0xLGE9dCE9PXZvaWQgMD8xOjA7Y29udGludWU7Y2FzZSAzOnJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fSl9LG4ucHJvdG90eXBlLmVudHJpZXNSZXZlcnNlZD1mdW5jdGlvbihlLHQscil7aWYoZT09PXZvaWQgMCYmKGU9dGhpcy5tYXhLZXkoKSxyPXZvaWQgMCxlPT09dm9pZCAwKSlyZXR1cm4gQW4oKTt2YXIgcz10aGlzLmZpbmRQYXRoKGUpfHx0aGlzLmZpbmRQYXRoKHRoaXMubWF4S2V5KCkpLGk9cy5ub2RlcXVldWUsbz1zLm5vZGVpbmRleCxhPXMubGVhZjtMZSghaVswXXx8YT09PWlbMF1bb1swXV0sXFxcIndhdCFcXFwiKTt2YXIgdT1hLmluZGV4T2YoZSwwLHRoaXMuX2NvbXBhcmUpOyFyJiZ1PGEua2V5cy5sZW5ndGgmJnRoaXMuX2NvbXBhcmUoYS5rZXlzW3VdLGUpPD0wJiZ1Kys7dmFyIGw9dCE9PXZvaWQgMD8xOjA7cmV0dXJuIEFuKGZ1bmN0aW9uKCl7ZTpmb3IoOzspc3dpdGNoKGwpe2Nhc2UgMDppZigtLXU+PTApcmV0dXJue2RvbmU6ITEsdmFsdWU6W2Eua2V5c1t1XSxhLnZhbHVlc1t1XV19O2w9Mjtjb250aW51ZTtjYXNlIDE6aWYoLS11Pj0wKXJldHVybiB0WzBdPWEua2V5c1t1XSx0WzFdPWEudmFsdWVzW3VdLHtkb25lOiExLHZhbHVlOnR9O2w9MjtjYXNlIDI6Zm9yKHZhciBmPS0xOzspe2lmKCsrZj49aS5sZW5ndGgpe2w9Mztjb250aW51ZSBlfWlmKC0tb1tmXT49MClicmVha31mb3IoO2Y+MDtmLS0paVtmLTFdPWlbZl1bb1tmXV0uY2hpbGRyZW4sb1tmLTFdPWlbZi0xXS5sZW5ndGgtMTthPWlbMF1bb1swXV0sdT1hLmtleXMubGVuZ3RoLGw9dCE9PXZvaWQgMD8xOjA7Y29udGludWU7Y2FzZSAzOnJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fSl9LG4ucHJvdG90eXBlLmZpbmRQYXRoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3Jvb3QscixzO2lmKHQuaXNMZWFmKXI9X3Uscz1fdTtlbHNle3I9W10scz1bXTtmb3IodmFyIGk9MDshdC5pc0xlYWY7aSsrKXtpZihyW2ldPXQuY2hpbGRyZW4sc1tpXT1lPT09dm9pZCAwPzA6dC5pbmRleE9mKGUsMCx0aGlzLl9jb21wYXJlKSxzW2ldPj1yW2ldLmxlbmd0aClyZXR1cm47dD1yW2ldW3NbaV1dfXIucmV2ZXJzZSgpLHMucmV2ZXJzZSgpfXJldHVybntub2RlcXVldWU6cixub2RlaW5kZXg6cyxsZWFmOnR9fSxuLnByb3RvdHlwZS5kaWZmQWdhaW5zdD1mdW5jdGlvbihlLHQscixzKXtpZihlLl9jb21wYXJlIT09dGhpcy5fY29tcGFyZSl0aHJvdyBuZXcgRXJyb3IoXFxcIlRyZWUgY29tcGFyYXRvcnMgYXJlIG5vdCB0aGUgc2FtZS5cXFwiKTtpZih0aGlzLmlzRW1wdHl8fGUuaXNFbXB0eSlyZXR1cm4gdGhpcy5pc0VtcHR5JiZlLmlzRW1wdHk/dm9pZCAwOnRoaXMuaXNFbXB0eT9yPT09dm9pZCAwP3ZvaWQgMDpuLnN0ZXBUb0VuZChuLm1ha2VEaWZmQ3Vyc29yKGUpLHIpOnQ9PT12b2lkIDA/dm9pZCAwOm4uc3RlcFRvRW5kKG4ubWFrZURpZmZDdXJzb3IodGhpcyksdCk7Zm9yKHZhciBpPXRoaXMuX2NvbXBhcmUsbz1uLm1ha2VEaWZmQ3Vyc29yKHRoaXMpLGE9bi5tYWtlRGlmZkN1cnNvcihlKSx1PSEwLGw9ITAsZj1uLmNvbXBhcmUobyxhLGkpO3UmJmw7KXt2YXIgZD1uLmNvbXBhcmUobyxhLGkpLHA9by5sZWFmLGg9by5pbnRlcm5hbFNwaW5lLGI9by5sZXZlbEluZGljZXMsZz1hLmxlYWYsRD1hLmludGVybmFsU3BpbmUsVD1hLmxldmVsSW5kaWNlcztpZihwfHxnKXtpZihmIT09MCl7aWYoZD09PTApe2lmKHAmJmcmJnMpe3ZhciBJPXAudmFsdWVzW2JbYi5sZW5ndGgtMV1dLE49Zy52YWx1ZXNbVFtULmxlbmd0aC0xXV07aWYoIU9iamVjdC5pcyhJLE4pKXt2YXIgeT1zKG8uY3VycmVudEtleSxJLE4pO2lmKHkmJnkuYnJlYWspcmV0dXJuIHkuYnJlYWt9fX1lbHNlIGlmKGQ+MCl7aWYoZyYmcil7dmFyIHc9Zy52YWx1ZXNbVFtULmxlbmd0aC0xXV0seT1yKGEuY3VycmVudEtleSx3KTtpZih5JiZ5LmJyZWFrKXJldHVybiB5LmJyZWFrfX1lbHNlIGlmKHQmJnAmJmYhPT0wKXt2YXIgST1wLnZhbHVlc1tiW2IubGVuZ3RoLTFdXSx5PXQoby5jdXJyZW50S2V5LEkpO2lmKHkmJnkuYnJlYWspcmV0dXJuIHkuYnJlYWt9fX1lbHNlIGlmKCFwJiYhZyYmZD09PTApe3ZhciB2PWgubGVuZ3RoLTEsTz1ELmxlbmd0aC0xLEM9aFt2XVtiW3ZdXSxWPURbT11bVFtPXV07aWYoVj09PUMpe2Y9MCx1PW4uc3RlcChvLCEwKSxsPW4uc3RlcChhLCEwKTtjb250aW51ZX19Zj1kLGQ8MD91PW4uc3RlcChvKTpsPW4uc3RlcChhKX1pZih1JiZ0KXJldHVybiBuLmZpbmlzaEN1cnNvcldhbGsobyxhLGksdCk7aWYobCYmcilyZXR1cm4gbi5maW5pc2hDdXJzb3JXYWxrKGEsbyxpLHIpfSxuLmZpbmlzaEN1cnNvcldhbGs9ZnVuY3Rpb24oZSx0LHIscyl7dmFyIGk9bi5jb21wYXJlKGUsdCxyKTtpZihpPT09MCl7aWYoIW4uc3RlcChlKSlyZXR1cm59ZWxzZSBpPDAmJkxlKCExLFxcXCJjdXJzb3Igd2FsayB0ZXJtaW5hdGVkIGVhcmx5XFxcIik7cmV0dXJuIG4uc3RlcFRvRW5kKGUscyl9LG4uc3RlcFRvRW5kPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPSEwO3I7KXt2YXIgcz1lLmxlYWYsaT1lLmxldmVsSW5kaWNlcyxvPWUuY3VycmVudEtleTtpZihzKXt2YXIgYT1zLnZhbHVlc1tpW2kubGVuZ3RoLTFdXSx1PXQobyxhKTtpZih1JiZ1LmJyZWFrKXJldHVybiB1LmJyZWFrfXI9bi5zdGVwKGUpfX0sbi5tYWtlRGlmZkN1cnNvcj1mdW5jdGlvbihlKXt2YXIgdD1lLl9yb290LHI9ZS5oZWlnaHQ7cmV0dXJue2hlaWdodDpyLGludGVybmFsU3BpbmU6W1t0XV0sbGV2ZWxJbmRpY2VzOlswXSxsZWFmOnZvaWQgMCxjdXJyZW50S2V5OnQubWF4S2V5KCl9fSxuLnN0ZXA9ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmludGVybmFsU3BpbmUscz1lLmxldmVsSW5kaWNlcyxpPWUubGVhZjtpZih0PT09ITB8fGkpe3ZhciBvPXMubGVuZ3RoO2lmKHQ9PT0hMHx8c1tvLTFdPT09MCl7dmFyIGE9ci5sZW5ndGg7aWYoYT09PTApcmV0dXJuITE7Zm9yKHZhciB1PWEtMSxsPXU7bD49MDspe2lmKHNbbF0+MClyZXR1cm4gbDxvLTEmJihlLmxlYWY9dm9pZCAwLHMucG9wKCkpLGw8dSYmKGUuaW50ZXJuYWxTcGluZT1yLnNsaWNlKDAsbCsxKSksZS5jdXJyZW50S2V5PXJbbF1bLS1zW2xdXS5tYXhLZXkoKSwhMDtsLS19cmV0dXJuITF9ZWxzZXt2YXIgZj0tLXNbby0xXTtyZXR1cm4gZS5jdXJyZW50S2V5PWkua2V5c1tmXSwhMH19ZWxzZXt2YXIgZD1yLmxlbmd0aCxwPWQtMSxoPXJbcF1bc1twXV07aWYoaC5pc0xlYWYpe2UubGVhZj1oO3ZhciBmPXNbZF09aC52YWx1ZXMubGVuZ3RoLTE7ZS5jdXJyZW50S2V5PWgua2V5c1tmXX1lbHNle3ZhciBiPWguY2hpbGRyZW47cltkXT1iO3ZhciBnPWIubGVuZ3RoLTE7c1tkXT1nLGUuY3VycmVudEtleT1iW2ddLm1heEtleSgpfXJldHVybiEwfX0sbi5jb21wYXJlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgcz1lLmhlaWdodCxpPWUuY3VycmVudEtleSxvPWUubGV2ZWxJbmRpY2VzLGE9dC5oZWlnaHQsdT10LmN1cnJlbnRLZXksbD10LmxldmVsSW5kaWNlcyxmPXIodSxpKTtpZihmIT09MClyZXR1cm4gZjt2YXIgZD1zPGE/czphLHA9by5sZW5ndGgtKHMtZCksaD1sLmxlbmd0aC0oYS1kKTtyZXR1cm4gcC1ofSxuLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZW50cmllcyhlLE1yKTtyZXR1cm4gQW4oZnVuY3Rpb24oKXt2YXIgcj10Lm5leHQoKTtyZXR1cm4gci52YWx1ZSYmKHIudmFsdWU9ci52YWx1ZVswXSkscn0pfSxuLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbnRyaWVzKGUsTXIpO3JldHVybiBBbihmdW5jdGlvbigpe3ZhciByPXQubmV4dCgpO3JldHVybiByLnZhbHVlJiYoci52YWx1ZT1yLnZhbHVlWzFdKSxyfSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwibWF4Tm9kZVNpemVcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4Tm9kZVNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3QubWluS2V5KCl9LG4ucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290Lm1heEtleSgpfSxuLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3RoaXMuX3Jvb3QuaXNTaGFyZWQ9ITA7dmFyIGU9bmV3IG4odm9pZCAwLHRoaXMuX2NvbXBhcmUsdGhpcy5fbWF4Tm9kZVNpemUpO3JldHVybiBlLl9yb290PXRoaXMuX3Jvb3QsZS5fc2l6ZT10aGlzLl9zaXplLGV9LG4ucHJvdG90eXBlLmdyZWVkeUNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKHZvaWQgMCx0aGlzLl9jb21wYXJlLHRoaXMuX21heE5vZGVTaXplKTtyZXR1cm4gdC5fcm9vdD10aGlzLl9yb290LmdyZWVkeUNsb25lKGUpLHQuX3NpemU9dGhpcy5fc2l6ZSx0fSxuLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPTIxNDc0ODM2NDcpO3ZhciB0PXRoaXMubWluS2V5KCkscj10aGlzLm1heEtleSgpO3JldHVybiB0IT09dm9pZCAwP3RoaXMuZ2V0UmFuZ2UodCxyLCEwLGUpOltdfSxuLnByb3RvdHlwZS5rZXlzQXJyYXk9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5fcm9vdC5mb3JSYW5nZSh0aGlzLm1pbktleSgpLHRoaXMubWF4S2V5KCksITAsITEsdGhpcywwLGZ1bmN0aW9uKHQscil7ZS5wdXNoKHQpfSksZX0sbi5wcm90b3R5cGUudmFsdWVzQXJyYXk9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5fcm9vdC5mb3JSYW5nZSh0aGlzLm1pbktleSgpLHRoaXMubWF4S2V5KCksITAsITEsdGhpcywwLGZ1bmN0aW9uKHQscil7ZS5wdXNoKHIpfSksZX0sbi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0FycmF5KCkudG9TdHJpbmcoKX0sbi5wcm90b3R5cGUuc2V0SWZOb3RQcmVzZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2V0KGUsdCwhMSl9LG4ucHJvdG90eXBlLm5leHRIaWdoZXJQYWlyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8W10sZT09PXZvaWQgMD90aGlzLl9yb290Lm1pblBhaXIodCk6dGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0SGlnaGVyKGUsdGhpcy5fY29tcGFyZSwhMSx0KX0sbi5wcm90b3R5cGUubmV4dEhpZ2hlcktleT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm5leHRIaWdoZXJQYWlyKGUsTXIpO3JldHVybiB0JiZ0WzBdfSxuLnByb3RvdHlwZS5uZXh0TG93ZXJQYWlyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8W10sZT09PXZvaWQgMD90aGlzLl9yb290Lm1heFBhaXIodCk6dGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0TG93ZXIoZSx0aGlzLl9jb21wYXJlLCExLHQpfSxuLnByb3RvdHlwZS5uZXh0TG93ZXJLZXk9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5uZXh0TG93ZXJQYWlyKGUsTXIpO3JldHVybiB0JiZ0WzBdfSxuLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcm9vdC5nZXRQYWlyT3JOZXh0TG93ZXIoZSx0aGlzLl9jb21wYXJlLCEwLHR8fFtdKX0sbi5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9yb290LmdldFBhaXJPck5leHRIaWdoZXIoZSx0aGlzLl9jb21wYXJlLCEwLHR8fFtdKX0sbi5wcm90b3R5cGUuY2hhbmdlSWZQcmVzZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKGUsZSwhMCxmdW5jdGlvbihyLHMpe3JldHVybnt2YWx1ZTp0fX0pIT09MH0sbi5wcm90b3R5cGUuZ2V0UmFuZ2U9ZnVuY3Rpb24oZSx0LHIscyl7cz09PXZvaWQgMCYmKHM9NjcxMDg4NjMpO3ZhciBpPVtdO3JldHVybiB0aGlzLl9yb290LmZvclJhbmdlKGUsdCxyLCExLHRoaXMsMCxmdW5jdGlvbihvLGEpe3JldHVybiBpLnB1c2goW28sYV0pLGkubGVuZ3RoPnM/T2Y6dm9pZCAwfSksaX0sbi5wcm90b3R5cGUuc2V0UGFpcnM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxzPTA7czxlLmxlbmd0aDtzKyspdGhpcy5zZXQoZVtzXVswXSxlW3NdWzFdLHQpJiZyKys7cmV0dXJuIHJ9LG4ucHJvdG90eXBlLmZvclJhbmdlPWZ1bmN0aW9uKGUsdCxyLHMsaSl7dmFyIG89dGhpcy5fcm9vdC5mb3JSYW5nZShlLHQsciwhMSx0aGlzLGl8fDAscyk7cmV0dXJuIHR5cGVvZiBvPT1cXFwibnVtYmVyXFxcIj9vOm8uYnJlYWt9LG4ucHJvdG90eXBlLmVkaXRSYW5nZT1mdW5jdGlvbihlLHQscixzLGkpe3ZhciBvPXRoaXMuX3Jvb3Q7by5pc1NoYXJlZCYmKHRoaXMuX3Jvb3Q9bz1vLmNsb25lKCkpO3RyeXt2YXIgYT1vLmZvclJhbmdlKGUsdCxyLCEwLHRoaXMsaXx8MCxzKTtyZXR1cm4gdHlwZW9mIGE9PVxcXCJudW1iZXJcXFwiP2E6YS5icmVha31maW5hbGx5e2Zvcih2YXIgdT12b2lkIDA7by5rZXlzLmxlbmd0aDw9MSYmIW8uaXNMZWFmOyl1fHwodT1vLmlzU2hhcmVkKSx0aGlzLl9yb290PW89by5rZXlzLmxlbmd0aD09PTA/Zm86by5jaGlsZHJlblswXTt1JiYoby5pc1NoYXJlZD0hMCl9fSxuLnByb3RvdHlwZS5lZGl0QWxsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKHRoaXMubWluS2V5KCksdGhpcy5tYXhLZXkoKSwhMCxlLHQpfSxuLnByb3RvdHlwZS5kZWxldGVSYW5nZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuZWRpdFJhbmdlKGUsdCxyLE11KX0sbi5wcm90b3R5cGUuZGVsZXRlS2V5cz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPTA7dDxlLmxlbmd0aDt0KyspdGhpcy5kZWxldGUoZVt0XSkmJnIrKztyZXR1cm4gcn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFxcXCJoZWlnaHRcXFwiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5fcm9vdCx0PS0xO2U7KXQrKyxlPWUuaXNMZWFmP3ZvaWQgMDplLmNoaWxkcmVuWzBdO3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmZyZWV6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5jbGVhcj1lLnNldD1lLmVkaXRSYW5nZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcXFwiQXR0ZW1wdGVkIHRvIG1vZGlmeSBhIGZyb3plbiBCVHJlZVxcXCIpfX0sbi5wcm90b3R5cGUudW5mcmVlemU9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jbGVhcixkZWxldGUgdGhpcy5zZXQsZGVsZXRlIHRoaXMuZWRpdFJhbmdlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXFxcImlzRnJvemVuXFxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoXFxcImVkaXRSYW5nZVxcXCIpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9yb290LmNoZWNrVmFsaWQoMCx0aGlzLDApO0xlKGU9PT10aGlzLnNpemUsXFxcInNpemUgbWlzbWF0Y2g6IGNvdW50ZWQgXFxcIixlLFxcXCJidXQgc3RvcmVkXFxcIix0aGlzLnNpemUpfSxufSgpO05lLmRlZmF1bHQ9bHQ7ZnVuY3Rpb24gQ2Yobil7cmV0dXJuIG59TmUuYXNTZXQ9Q2Y7U3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJihsdC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1sdC5wcm90b3R5cGUuZW50cmllcyk7bHQucHJvdG90eXBlLndoZXJlPWx0LnByb3RvdHlwZS5maWx0ZXI7bHQucHJvdG90eXBlLnNldFJhbmdlPWx0LnByb3RvdHlwZS5zZXRQYWlycztsdC5wcm90b3R5cGUuYWRkPWx0LnByb3RvdHlwZS5zZXQ7ZnVuY3Rpb24gQW4obil7bj09PXZvaWQgMCYmKG49ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSk7dmFyIGU9e25leHQ6bn07cmV0dXJuIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiYoZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxlfXZhciBQdT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oZSx0KXtlPT09dm9pZCAwJiYoZT1bXSksdGhpcy5rZXlzPWUsdGhpcy52YWx1ZXM9dHx8bWUsdGhpcy5pc1NoYXJlZD12b2lkIDB9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcXFwiaXNMZWFmXFxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW49PT12b2lkIDB9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMua2V5c1t0aGlzLmtleXMubGVuZ3RoLTFdfSxuLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIHM9dGhpcy5rZXlzLGk9MCxvPXMubGVuZ3RoLGE9bz4+MTtpPG87KXt2YXIgdT1yKHNbYV0sZSk7aWYodTwwKWk9YSsxO2Vsc2UgaWYodT4wKW89YTtlbHNle2lmKHU9PT0wKXJldHVybiBhO2lmKGU9PT1lKXJldHVybiBzLmxlbmd0aDt0aHJvdyBuZXcgRXJyb3IoXFxcIkJUcmVlOiBOYU4gd2FzIHVzZWQgYXMgYSBrZXlcXFwiKX1hPWkrbz4+MX1yZXR1cm4gYV50fSxuLnByb3RvdHlwZS5taW5LZXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rZXlzWzBdfSxuLnByb3RvdHlwZS5taW5QYWlyPWZ1bmN0aW9uKGUpe2lmKHRoaXMua2V5cy5sZW5ndGghPT0wKXJldHVybiBlWzBdPXRoaXMua2V5c1swXSxlWzFdPXRoaXMudmFsdWVzWzBdLGV9LG4ucHJvdG90eXBlLm1heFBhaXI9ZnVuY3Rpb24oZSl7aWYodGhpcy5rZXlzLmxlbmd0aCE9PTApe3ZhciB0PXRoaXMua2V5cy5sZW5ndGgtMTtyZXR1cm4gZVswXT10aGlzLmtleXNbdF0sZVsxXT10aGlzLnZhbHVlc1t0XSxlfX0sbi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnZhbHVlcztyZXR1cm4gbmV3IG4odGhpcy5rZXlzLnNsaWNlKDApLGU9PT1tZT9lOmUuc2xpY2UoMCkpfSxuLnByb3RvdHlwZS5ncmVlZHlDbG9uZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc1NoYXJlZCYmIWU/dGhpczp0aGlzLmNsb25lKCl9LG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbihlLHQscil7dmFyIHM9dGhpcy5pbmRleE9mKGUsLTEsci5fY29tcGFyZSk7cmV0dXJuIHM8MD90OnRoaXMudmFsdWVzW3NdfSxuLnByb3RvdHlwZS5nZXRQYWlyT3JOZXh0TG93ZXI9ZnVuY3Rpb24oZSx0LHIscyl7dmFyIGk9dGhpcy5pbmRleE9mKGUsLTEsdCksbz1pPDA/fmktMTpyP2k6aS0xO2lmKG8+PTApcmV0dXJuIHNbMF09dGhpcy5rZXlzW29dLHNbMV09dGhpcy52YWx1ZXNbb10sc30sbi5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbihlLHQscixzKXt2YXIgaT10aGlzLmluZGV4T2YoZSwtMSx0KSxvPWk8MD9+aTpyP2k6aSsxLGE9dGhpcy5rZXlzO2lmKG88YS5sZW5ndGgpcmV0dXJuIHNbMF09YVtvXSxzWzFdPXRoaXMudmFsdWVzW29dLHN9LG4ucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBzPXRoaXMua2V5cy5sZW5ndGgsaT10aGlzLnZhbHVlcy5sZW5ndGg7cmV0dXJuIExlKHRoaXMudmFsdWVzPT09bWU/czw9aTpzPT09aSxcXFwia2V5cy92YWx1ZXMgbGVuZ3RoIG1pc21hdGNoOiBkZXB0aFxcXCIsZSxcXFwid2l0aCBsZW5ndGhzXFxcIixzLGksXFxcImFuZCBiYXNlSW5kZXhcXFwiLHIpLExlKGU9PTB8fHM+MCxcXFwiZW1wdHkgbGVhZiBhdCBkZXB0aFxcXCIsZSxcXFwiYW5kIGJhc2VJbmRleFxcXCIsciksc30sbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyLHMpe3ZhciBpPXRoaXMuaW5kZXhPZihlLC0xLHMuX2NvbXBhcmUpO2lmKGk8MCl7aWYoaT1+aSxzLl9zaXplKyssdGhpcy5rZXlzLmxlbmd0aDxzLl9tYXhOb2RlU2l6ZSlyZXR1cm4gdGhpcy5pbnNlcnRJbkxlYWYoaSxlLHQscyk7dmFyIG89dGhpcy5zcGxpdE9mZlJpZ2h0U2lkZSgpLGE9dGhpcztyZXR1cm4gaT50aGlzLmtleXMubGVuZ3RoJiYoaS09dGhpcy5rZXlzLmxlbmd0aCxhPW8pLGEuaW5zZXJ0SW5MZWFmKGksZSx0LHMpLG99ZWxzZSByZXR1cm4gciE9PSExJiYodCE9PXZvaWQgMCYmdGhpcy5yZWlmeVZhbHVlcygpLHRoaXMua2V5c1tpXT1lLHRoaXMudmFsdWVzW2ldPXQpLCExfSxuLnByb3RvdHlwZS5yZWlmeVZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcz09PW1lP3RoaXMudmFsdWVzPXRoaXMudmFsdWVzLnNsaWNlKDAsdGhpcy5rZXlzLmxlbmd0aCk6dGhpcy52YWx1ZXN9LG4ucHJvdG90eXBlLmluc2VydEluTGVhZj1mdW5jdGlvbihlLHQscixzKXtpZih0aGlzLmtleXMuc3BsaWNlKGUsMCx0KSx0aGlzLnZhbHVlcz09PW1lKXtmb3IoO21lLmxlbmd0aDxzLl9tYXhOb2RlU2l6ZTspbWUucHVzaCh2b2lkIDApO2lmKHI9PT12b2lkIDApcmV0dXJuITA7dGhpcy52YWx1ZXM9bWUuc2xpY2UoMCx0aGlzLmtleXMubGVuZ3RoLTEpfXJldHVybiB0aGlzLnZhbHVlcy5zcGxpY2UoZSwwLHIpLCEwfSxuLnByb3RvdHlwZS50YWtlRnJvbVJpZ2h0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMudmFsdWVzO2UudmFsdWVzPT09bWU/dCE9PW1lJiZ0LnB1c2godm9pZCAwKToodD10aGlzLnJlaWZ5VmFsdWVzKCksdC5wdXNoKGUudmFsdWVzLnNoaWZ0KCkpKSx0aGlzLmtleXMucHVzaChlLmtleXMuc2hpZnQoKSl9LG4ucHJvdG90eXBlLnRha2VGcm9tTGVmdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnZhbHVlcztlLnZhbHVlcz09PW1lP3QhPT1tZSYmdC51bnNoaWZ0KHZvaWQgMCk6KHQ9dGhpcy5yZWlmeVZhbHVlcygpLHQudW5zaGlmdChlLnZhbHVlcy5wb3AoKSkpLHRoaXMua2V5cy51bnNoaWZ0KGUua2V5cy5wb3AoKSl9LG4ucHJvdG90eXBlLnNwbGl0T2ZmUmlnaHRTaWRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5rZXlzLmxlbmd0aD4+MSx0PXRoaXMua2V5cy5zcGxpY2UoZSkscj10aGlzLnZhbHVlcz09PW1lP21lOnRoaXMudmFsdWVzLnNwbGljZShlKTtyZXR1cm4gbmV3IG4odCxyKX0sbi5wcm90b3R5cGUuZm9yUmFuZ2U9ZnVuY3Rpb24oZSx0LHIscyxpLG8sYSl7dmFyIHU9aS5fY29tcGFyZSxsLGY7aWYodD09PWUpe2lmKCFyfHwoZj0obD10aGlzLmluZGV4T2YoZSwtMSx1KSkrMSxsPDApKXJldHVybiBvfWVsc2UgbD10aGlzLmluZGV4T2YoZSwwLHUpLGY9dGhpcy5pbmRleE9mKHQsLTEsdSksZjwwP2Y9fmY6cj09PSEwJiZmKys7dmFyIGQ9dGhpcy5rZXlzLHA9dGhpcy52YWx1ZXM7aWYoYSE9PXZvaWQgMClmb3IodmFyIGg9bDtoPGY7aCsrKXt2YXIgYj1kW2hdLGc9YShiLHBbaF0sbysrKTtpZihnIT09dm9pZCAwKXtpZihzPT09ITApe2lmKGIhPT1kW2hdfHx0aGlzLmlzU2hhcmVkPT09ITApdGhyb3cgbmV3IEVycm9yKFxcXCJCVHJlZSBpbGxlZ2FsbHkgY2hhbmdlZCBvciBjbG9uZWQgaW4gZWRpdFJhbmdlXFxcIik7Zy5kZWxldGU/KHRoaXMua2V5cy5zcGxpY2UoaCwxKSx0aGlzLnZhbHVlcyE9PW1lJiZ0aGlzLnZhbHVlcy5zcGxpY2UoaCwxKSxpLl9zaXplLS0saC0tLGYtLSk6Zy5oYXNPd25Qcm9wZXJ0eShcXFwidmFsdWVcXFwiKSYmKHBbaF09Zy52YWx1ZSl9aWYoZy5icmVhayE9PXZvaWQgMClyZXR1cm4gZ319ZWxzZSBvKz1mLWw7cmV0dXJuIG99LG4ucHJvdG90eXBlLm1lcmdlU2libGluZz1mdW5jdGlvbihlLHQpe2lmKHRoaXMua2V5cy5wdXNoLmFwcGx5KHRoaXMua2V5cyxlLmtleXMpLHRoaXMudmFsdWVzPT09bWUpe2lmKGUudmFsdWVzPT09bWUpcmV0dXJuO3RoaXMudmFsdWVzPXRoaXMudmFsdWVzLnNsaWNlKDAsdGhpcy5rZXlzLmxlbmd0aCl9dGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcyxlLnJlaWZ5VmFsdWVzKCkpfSxufSgpLHZmPWZ1bmN0aW9uKG4pe1NmKGUsbik7ZnVuY3Rpb24gZSh0LHIpe3ZhciBzPXRoaXM7aWYoIXIpe3I9W107Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspcltpXT10W2ldLm1heEtleSgpfXJldHVybiBzPW4uY2FsbCh0aGlzLHIpfHx0aGlzLHMuY2hpbGRyZW49dCxzfXJldHVybiBlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmNoaWxkcmVuLnNsaWNlKDApLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdLmlzU2hhcmVkPSEwO3JldHVybiBuZXcgZSh0LHRoaXMua2V5cy5zbGljZSgwKSl9LGUucHJvdG90eXBlLmdyZWVkeUNsb25lPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNTaGFyZWQmJiF0KXJldHVybiB0aGlzO2Zvcih2YXIgcj1uZXcgZSh0aGlzLmNoaWxkcmVuLnNsaWNlKDApLHRoaXMua2V5cy5zbGljZSgwKSkscz0wO3M8ci5jaGlsZHJlbi5sZW5ndGg7cysrKXIuY2hpbGRyZW5bc109ci5jaGlsZHJlbltzXS5ncmVlZHlDbG9uZSh0KTtyZXR1cm4gcn0sZS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluS2V5KCl9LGUucHJvdG90eXBlLm1pblBhaXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ubWluUGFpcih0KX0sZS5wcm90b3R5cGUubWF4UGFpcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXS5tYXhQYWlyKHQpfSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxyLHMpe3ZhciBpPXRoaXMuaW5kZXhPZih0LDAscy5fY29tcGFyZSksbz10aGlzLmNoaWxkcmVuO3JldHVybiBpPG8ubGVuZ3RoP29baV0uZ2V0KHQscixzKTp2b2lkIDB9LGUucHJvdG90eXBlLmdldFBhaXJPck5leHRMb3dlcj1mdW5jdGlvbih0LHIscyxpKXt2YXIgbz10aGlzLmluZGV4T2YodCwwLHIpLGE9dGhpcy5jaGlsZHJlbjtpZihvPj1hLmxlbmd0aClyZXR1cm4gdGhpcy5tYXhQYWlyKGkpO3ZhciB1PWFbb10uZ2V0UGFpck9yTmV4dExvd2VyKHQscixzLGkpO3JldHVybiB1PT09dm9pZCAwJiZvPjA/YVtvLTFdLm1heFBhaXIoaSk6dX0sZS5wcm90b3R5cGUuZ2V0UGFpck9yTmV4dEhpZ2hlcj1mdW5jdGlvbih0LHIscyxpKXt2YXIgbz10aGlzLmluZGV4T2YodCwwLHIpLGE9dGhpcy5jaGlsZHJlbix1PWEubGVuZ3RoO2lmKCEobz49dSkpe3ZhciBsPWFbb10uZ2V0UGFpck9yTmV4dEhpZ2hlcih0LHIscyxpKTtyZXR1cm4gbD09PXZvaWQgMCYmbzx1LTE/YVtvKzFdLm1pblBhaXIoaSk6bH19LGUucHJvdG90eXBlLmNoZWNrVmFsaWQ9ZnVuY3Rpb24odCxyLHMpe3ZhciBpPXRoaXMua2V5cy5sZW5ndGgsbz10aGlzLmNoaWxkcmVuLmxlbmd0aDtMZShpPT09byxcXFwia2V5cy9jaGlsZHJlbiBsZW5ndGggbWlzbWF0Y2g6IGRlcHRoXFxcIix0LFxcXCJsZW5ndGhzXFxcIixpLG8sXFxcImJhc2VJbmRleFxcXCIscyksTGUoaT4xfHx0PjAsXFxcImludGVybmFsIG5vZGUgaGFzIGxlbmd0aFxcXCIsaSxcXFwiYXQgZGVwdGhcXFwiLHQsXFxcImJhc2VJbmRleFxcXCIscyk7Zm9yKHZhciBhPTAsdT10aGlzLmNoaWxkcmVuLGw9dGhpcy5rZXlzLGY9MCxkPTA7ZDxvO2QrKylhKz11W2RdLmNoZWNrVmFsaWQodCsxLHIscythKSxmKz11W2RdLmtleXMubGVuZ3RoLExlKGE+PWYsXFxcInd0ZlxcXCIscyksTGUoZD09PTB8fHVbZC0xXS5jb25zdHJ1Y3Rvcj09PXVbZF0uY29uc3RydWN0b3IsXFxcInR5cGUgbWlzbWF0Y2gsIGJhc2VJbmRleDpcXFwiLHMpLHVbZF0ubWF4S2V5KCkhPWxbZF0mJkxlKCExLFxcXCJrZXlzW1xcXCIsZCxcXFwiXSA9XFxcIixsW2RdLFxcXCJpcyB3cm9uZywgc2hvdWxkIGJlIFxcXCIsdVtkXS5tYXhLZXkoKSxcXFwiYXQgZGVwdGhcXFwiLHQsXFxcImJhc2VJbmRleFxcXCIscyksZD09PTB8fHIuX2NvbXBhcmUobFtkLTFdLGxbZF0pPDB8fExlKCExLFxcXCJzb3J0IHZpb2xhdGlvbiBhdCBkZXB0aFxcXCIsdCxcXFwiaW5kZXhcXFwiLGQsXFxcImtleXNcXFwiLGxbZC0xXSxsW2RdKTt2YXIgcD1mPT09MDtyZXR1cm4ocHx8Zj5yLm1heE5vZGVTaXplKm8pJiZMZSghMSxwP1xcXCJ0b28gZmV3XFxcIjpcXFwidG9vIG1hbnlcXFwiLFxcXCJjaGlsZHJlbiAoXFxcIixmLGEsXFxcIikgYXQgZGVwdGhcXFwiLHQsXFxcIm1heE5vZGVTaXplOlxcXCIsci5tYXhOb2RlU2l6ZSxcXFwiY2hpbGRyZW4ubGVuZ3RoOlxcXCIsbyxcXFwiYmFzZUluZGV4OlxcXCIscyksYX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscixzLGkpe3ZhciBvPXRoaXMuY2hpbGRyZW4sYT1pLl9tYXhOb2RlU2l6ZSx1PWkuX2NvbXBhcmUsbD1NYXRoLm1pbih0aGlzLmluZGV4T2YodCwwLHUpLG8ubGVuZ3RoLTEpLGY9b1tsXTtpZihmLmlzU2hhcmVkJiYob1tsXT1mPWYuY2xvbmUoKSksZi5rZXlzLmxlbmd0aD49YSl7dmFyIGQ7bD4wJiYoZD1vW2wtMV0pLmtleXMubGVuZ3RoPGEmJnUoZi5rZXlzWzBdLHQpPDA/KGQuaXNTaGFyZWQmJihvW2wtMV09ZD1kLmNsb25lKCkpLGQudGFrZUZyb21SaWdodChmKSx0aGlzLmtleXNbbC0xXT1kLm1heEtleSgpKTooZD1vW2wrMV0pIT09dm9pZCAwJiZkLmtleXMubGVuZ3RoPGEmJnUoZi5tYXhLZXkoKSx0KTwwJiYoZC5pc1NoYXJlZCYmKG9bbCsxXT1kPWQuY2xvbmUoKSksZC50YWtlRnJvbUxlZnQoZiksdGhpcy5rZXlzW2xdPW9bbF0ubWF4S2V5KCkpfXZhciBwPWYuc2V0KHQscixzLGkpO2lmKHA9PT0hMSlyZXR1cm4hMTtpZih0aGlzLmtleXNbbF09Zi5tYXhLZXkoKSxwPT09ITApcmV0dXJuITA7aWYodGhpcy5rZXlzLmxlbmd0aDxhKXJldHVybiB0aGlzLmluc2VydChsKzEscCksITA7dmFyIGg9dGhpcy5zcGxpdE9mZlJpZ2h0U2lkZSgpLGI9dGhpcztyZXR1cm4gdShwLm1heEtleSgpLHRoaXMubWF4S2V5KCkpPjAmJihiPWgsbC09dGhpcy5rZXlzLmxlbmd0aCksYi5pbnNlcnQobCsxLHApLGh9LGUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LHIpe3RoaXMuY2hpbGRyZW4uc3BsaWNlKHQsMCxyKSx0aGlzLmtleXMuc3BsaWNlKHQsMCxyLm1heEtleSgpKX0sZS5wcm90b3R5cGUuc3BsaXRPZmZSaWdodFNpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNoaWxkcmVuLmxlbmd0aD4+MTtyZXR1cm4gbmV3IGUodGhpcy5jaGlsZHJlbi5zcGxpY2UodCksdGhpcy5rZXlzLnNwbGljZSh0KSl9LGUucHJvdG90eXBlLnRha2VGcm9tUmlnaHQ9ZnVuY3Rpb24odCl7dGhpcy5rZXlzLnB1c2godC5rZXlzLnNoaWZ0KCkpLHRoaXMuY2hpbGRyZW4ucHVzaCh0LmNoaWxkcmVuLnNoaWZ0KCkpfSxlLnByb3RvdHlwZS50YWtlRnJvbUxlZnQ9ZnVuY3Rpb24odCl7dGhpcy5rZXlzLnVuc2hpZnQodC5rZXlzLnBvcCgpKSx0aGlzLmNoaWxkcmVuLnVuc2hpZnQodC5jaGlsZHJlbi5wb3AoKSl9LGUucHJvdG90eXBlLmZvclJhbmdlPWZ1bmN0aW9uKHQscixzLGksbyxhLHUpe3ZhciBsPW8uX2NvbXBhcmUsZj10aGlzLmtleXMsZD10aGlzLmNoaWxkcmVuLHA9dGhpcy5pbmRleE9mKHQsMCxsKSxoPXAsYj1NYXRoLm1pbihyPT09dD9wOnRoaXMuaW5kZXhPZihyLDAsbCksZi5sZW5ndGgtMSk7aWYoaSl7aWYoaDw9Yil0cnl7Zm9yKDtoPD1iO2grKyl7ZFtoXS5pc1NoYXJlZCYmKGRbaF09ZFtoXS5jbG9uZSgpKTt2YXIgZz1kW2hdLmZvclJhbmdlKHQscixzLGksbyxhLHUpO2lmKGZbaF09ZFtoXS5tYXhLZXkoKSx0eXBlb2YgZyE9XFxcIm51bWJlclxcXCIpcmV0dXJuIGc7YT1nfX1maW5hbGx5e3ZhciBEPW8uX21heE5vZGVTaXplPj4xO2ZvcihwPjAmJnAtLSxoPWI7aD49cDtoLS0pZFtoXS5rZXlzLmxlbmd0aDw9RCYmKGRbaF0ua2V5cy5sZW5ndGghPT0wP3RoaXMudHJ5TWVyZ2UoaCxvLl9tYXhOb2RlU2l6ZSk6KGYuc3BsaWNlKGgsMSksZC5zcGxpY2UoaCwxKSkpO2QubGVuZ3RoIT09MCYmZFswXS5rZXlzLmxlbmd0aD09PTAmJkxlKCExLFxcXCJlbXB0aW5lc3MgYnVnXFxcIil9fWVsc2UgZm9yKDtoPD1iO2grKyl7dmFyIGc9ZFtoXS5mb3JSYW5nZSh0LHIscyxpLG8sYSx1KTtpZih0eXBlb2YgZyE9XFxcIm51bWJlclxcXCIpcmV0dXJuIGc7YT1nfXJldHVybiBhfSxlLnByb3RvdHlwZS50cnlNZXJnZT1mdW5jdGlvbih0LHIpe3ZhciBzPXRoaXMuY2hpbGRyZW47cmV0dXJuIHQ+PTAmJnQrMTxzLmxlbmd0aCYmc1t0XS5rZXlzLmxlbmd0aCtzW3QrMV0ua2V5cy5sZW5ndGg8PXI/KHNbdF0uaXNTaGFyZWQmJihzW3RdPXNbdF0uY2xvbmUoKSksc1t0XS5tZXJnZVNpYmxpbmcoc1t0KzFdLHIpLHMuc3BsaWNlKHQrMSwxKSx0aGlzLmtleXMuc3BsaWNlKHQrMSwxKSx0aGlzLmtleXNbdF09c1t0XS5tYXhLZXkoKSwhMCk6ITF9LGUucHJvdG90eXBlLm1lcmdlU2libGluZz1mdW5jdGlvbih0LHIpe3ZhciBzPXRoaXMua2V5cy5sZW5ndGg7dGhpcy5rZXlzLnB1c2guYXBwbHkodGhpcy5rZXlzLHQua2V5cyk7dmFyIGk9dC5jaGlsZHJlbjtpZih0aGlzLmNoaWxkcmVuLnB1c2guYXBwbHkodGhpcy5jaGlsZHJlbixpKSx0LmlzU2hhcmVkJiYhdGhpcy5pc1NoYXJlZClmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKylpW29dLmlzU2hhcmVkPSEwO3RoaXMudHJ5TWVyZ2Uocy0xLHIpfSxlfShQdSksbWU9W10sJHU9e2RlbGV0ZTohMH0sTXU9ZnVuY3Rpb24oKXtyZXR1cm4gJHV9LE9mPXticmVhazohMH0sZm89ZnVuY3Rpb24oKXt2YXIgbj1uZXcgUHU7cmV0dXJuIG4uaXNTaGFyZWQ9ITAsbn0oKSxfdT1bXSxNcj1bXTtmdW5jdGlvbiBMZShuKXtmb3IodmFyIGU9W10sdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0LTFdPWFyZ3VtZW50c1t0XTtpZighbil0aHJvdyBlLnVuc2hpZnQoXFxcIkIrIHRyZWVcXFwiKSxuZXcgRXJyb3IoZS5qb2luKFxcXCIgXFxcIikpfU5lLkVtcHR5QlRyZWU9ZnVuY3Rpb24oKXt2YXIgbj1uZXcgbHQ7cmV0dXJuIG4uZnJlZXplKCksbn0oKX0pO3ZhciBwdD1jbGFzcyBleHRlbmRzIEVycm9ye30sVXI9Y2xhc3MgZXh0ZW5kcyBwdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBEYXRlVGltZTogJHtlLnRvTWVzc2FnZSgpfWApfX0sS3I9Y2xhc3MgZXh0ZW5kcyBwdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtlLnRvTWVzc2FnZSgpfWApfX0sV3I9Y2xhc3MgZXh0ZW5kcyBwdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgSW52YWxpZCBEdXJhdGlvbjogJHtlLnRvTWVzc2FnZSgpfWApfX0sbXQ9Y2xhc3MgZXh0ZW5kcyBwdHt9LHNuPWNsYXNzIGV4dGVuZHMgcHR7Y29uc3RydWN0b3IoZSl7c3VwZXIoYEludmFsaWQgdW5pdCAke2V9YCl9fSxmZT1jbGFzcyBleHRlbmRzIHB0e30samU9Y2xhc3MgZXh0ZW5kcyBwdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKFxcXCJab25lIGlzIGFuIGFic3RyYWN0IGNsYXNzXFxcIil9fTt2YXIgXz1cXFwibnVtZXJpY1xcXCIscWU9XFxcInNob3J0XFxcIixPZT1cXFwibG9uZ1xcXCIsb249e3llYXI6Xyxtb250aDpfLGRheTpffSwkbj17eWVhcjpfLG1vbnRoOnFlLGRheTpffSxHcz17eWVhcjpfLG1vbnRoOnFlLGRheTpfLHdlZWtkYXk6cWV9LFJuPXt5ZWFyOl8sbW9udGg6T2UsZGF5Ol99LGpuPXt5ZWFyOl8sbW9udGg6T2UsZGF5Ol8sd2Vla2RheTpPZX0scW49e2hvdXI6XyxtaW51dGU6X30sVm49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6X30sVW49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyx0aW1lWm9uZU5hbWU6cWV9LEtuPXtob3VyOl8sbWludXRlOl8sc2Vjb25kOl8sdGltZVpvbmVOYW1lOk9lfSxXbj17aG91cjpfLG1pbnV0ZTpfLGhvdXJDeWNsZTpcXFwiaDIzXFxcIn0sSG49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyxob3VyQ3ljbGU6XFxcImgyM1xcXCJ9LEpuPXtob3VyOl8sbWludXRlOl8sc2Vjb25kOl8saG91ckN5Y2xlOlxcXCJoMjNcXFwiLHRpbWVab25lTmFtZTpxZX0sem49e2hvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyxob3VyQ3ljbGU6XFxcImgyM1xcXCIsdGltZVpvbmVOYW1lOk9lfSxZbj17eWVhcjpfLG1vbnRoOl8sZGF5Ol8saG91cjpfLG1pbnV0ZTpffSxHbj17eWVhcjpfLG1vbnRoOl8sZGF5Ol8saG91cjpfLG1pbnV0ZTpfLHNlY29uZDpffSxabj17eWVhcjpfLG1vbnRoOnFlLGRheTpfLGhvdXI6XyxtaW51dGU6X30sUW49e3llYXI6Xyxtb250aDpxZSxkYXk6Xyxob3VyOl8sbWludXRlOl8sc2Vjb25kOl99LFpzPXt5ZWFyOl8sbW9udGg6cWUsZGF5Ol8sd2Vla2RheTpxZSxob3VyOl8sbWludXRlOl99LFhuPXt5ZWFyOl8sbW9udGg6T2UsZGF5Ol8saG91cjpfLG1pbnV0ZTpfLHRpbWVab25lTmFtZTpxZX0sZXI9e3llYXI6Xyxtb250aDpPZSxkYXk6Xyxob3VyOl8sbWludXRlOl8sc2Vjb25kOl8sdGltZVpvbmVOYW1lOnFlfSx0cj17eWVhcjpfLG1vbnRoOk9lLGRheTpfLHdlZWtkYXk6T2UsaG91cjpfLG1pbnV0ZTpfLHRpbWVab25lTmFtZTpPZX0sbnI9e3llYXI6Xyxtb250aDpPZSxkYXk6Xyx3ZWVrZGF5Ok9lLGhvdXI6XyxtaW51dGU6XyxzZWNvbmQ6Xyx0aW1lWm9uZU5hbWU6T2V9O2Z1bmN0aW9uIFcobil7cmV0dXJuIHR5cGVvZiBuPT1cXFwidW5kZWZpbmVkXFxcIn1mdW5jdGlvbiB0dChuKXtyZXR1cm4gdHlwZW9mIG49PVxcXCJudW1iZXJcXFwifWZ1bmN0aW9uIHJyKG4pe3JldHVybiB0eXBlb2Ygbj09XFxcIm51bWJlclxcXCImJm4lMT09PTB9ZnVuY3Rpb24gQm8obil7cmV0dXJuIHR5cGVvZiBuPT1cXFwic3RyaW5nXFxcIn1mdW5jdGlvbiBQbyhuKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pPT09XFxcIltvYmplY3QgRGF0ZV1cXFwifWZ1bmN0aW9uIEhyKCl7dHJ5e3JldHVybiB0eXBlb2YgSW50bCE9XFxcInVuZGVmaW5lZFxcXCImJiEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXR9Y2F0Y2gobil7cmV0dXJuITF9fWZ1bmN0aW9uICRvKG4pe3JldHVybiBBcnJheS5pc0FycmF5KG4pP246W25dfWZ1bmN0aW9uIFhzKG4sZSx0KXtpZihuLmxlbmd0aCE9PTApcmV0dXJuIG4ucmVkdWNlKChyLHMpPT57bGV0IGk9W2Uocyksc107cmV0dXJuIHImJnQoclswXSxpWzBdKT09PXJbMF0/cjppfSxudWxsKVsxXX1mdW5jdGlvbiBSbyhuLGUpe3JldHVybiBlLnJlZHVjZSgodCxyKT0+KHRbcl09bltyXSx0KSx7fSl9ZnVuY3Rpb24ga3QobixlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sZSl9ZnVuY3Rpb24gbnQobixlLHQpe3JldHVybiBycihuKSYmbj49ZSYmbjw9dH1mdW5jdGlvbiBibChuLGUpe3JldHVybiBuLWUqTWF0aC5mbG9vcihuL2UpfWZ1bmN0aW9uIHJlKG4sZT0yKXtsZXQgdD1uPDAscjtyZXR1cm4gdD9yPVxcXCItXFxcIisoXFxcIlxcXCIrLW4pLnBhZFN0YXJ0KGUsXFxcIjBcXFwiKTpyPShcXFwiXFxcIituKS5wYWRTdGFydChlLFxcXCIwXFxcIikscn1mdW5jdGlvbiBEdChuKXtpZighKFcobil8fG49PT1udWxsfHxuPT09XFxcIlxcXCIpKXJldHVybiBwYXJzZUludChuLDEwKX1mdW5jdGlvbiBDdChuKXtpZighKFcobil8fG49PT1udWxsfHxuPT09XFxcIlxcXCIpKXJldHVybiBwYXJzZUZsb2F0KG4pfWZ1bmN0aW9uIHNyKG4pe2lmKCEoVyhuKXx8bj09PW51bGx8fG49PT1cXFwiXFxcIikpe2xldCBlPXBhcnNlRmxvYXQoXFxcIjAuXFxcIituKSoxZTM7cmV0dXJuIE1hdGguZmxvb3IoZSl9fWZ1bmN0aW9uIGFuKG4sZSx0PSExKXtsZXQgcj0xMCoqZTtyZXR1cm4odD9NYXRoLnRydW5jOk1hdGgucm91bmQpKG4qcikvcn1mdW5jdGlvbiBqdChuKXtyZXR1cm4gbiU0PT09MCYmKG4lMTAwIT09MHx8biU0MDA9PT0wKX1mdW5jdGlvbiBxdChuKXtyZXR1cm4ganQobik/MzY2OjM2NX1mdW5jdGlvbiB1bihuLGUpe2xldCB0PWJsKGUtMSwxMikrMSxyPW4rKGUtdCkvMTI7cmV0dXJuIHQ9PT0yP2p0KHIpPzI5OjI4OlszMSxudWxsLDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXVt0LTFdfWZ1bmN0aW9uIGlyKG4pe2xldCBlPURhdGUuVVRDKG4ueWVhcixuLm1vbnRoLTEsbi5kYXksbi5ob3VyLG4ubWludXRlLG4uc2Vjb25kLG4ubWlsbGlzZWNvbmQpO3JldHVybiBuLnllYXI8MTAwJiZuLnllYXI+PTAmJihlPW5ldyBEYXRlKGUpLGUuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpLTE5MDApKSwrZX1mdW5jdGlvbiBsbihuKXtsZXQgZT0obitNYXRoLmZsb29yKG4vNCktTWF0aC5mbG9vcihuLzEwMCkrTWF0aC5mbG9vcihuLzQwMCkpJTcsdD1uLTEscj0odCtNYXRoLmZsb29yKHQvNCktTWF0aC5mbG9vcih0LzEwMCkrTWF0aC5mbG9vcih0LzQwMCkpJTc7cmV0dXJuIGU9PT00fHxyPT09Mz81Mzo1Mn1mdW5jdGlvbiBvcihuKXtyZXR1cm4gbj45OT9uOm4+NjA/MTkwMCtuOjJlMytufWZ1bmN0aW9uIEpyKG4sZSx0LHI9bnVsbCl7bGV0IHM9bmV3IERhdGUobiksaT17aG91ckN5Y2xlOlxcXCJoMjNcXFwiLHllYXI6XFxcIm51bWVyaWNcXFwiLG1vbnRoOlxcXCIyLWRpZ2l0XFxcIixkYXk6XFxcIjItZGlnaXRcXFwiLGhvdXI6XFxcIjItZGlnaXRcXFwiLG1pbnV0ZTpcXFwiMi1kaWdpdFxcXCJ9O3ImJihpLnRpbWVab25lPXIpO2xldCBvPVIoe3RpbWVab25lTmFtZTplfSxpKSxhPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHQsbykuZm9ybWF0VG9QYXJ0cyhzKS5maW5kKHU9PnUudHlwZS50b0xvd2VyQ2FzZSgpPT09XFxcInRpbWV6b25lbmFtZVxcXCIpO3JldHVybiBhP2EudmFsdWU6bnVsbH1mdW5jdGlvbiBWdChuLGUpe2xldCB0PXBhcnNlSW50KG4sMTApO051bWJlci5pc05hTih0KSYmKHQ9MCk7bGV0IHI9cGFyc2VJbnQoZSwxMCl8fDAscz10PDB8fE9iamVjdC5pcyh0LC0wKT8tcjpyO3JldHVybiB0KjYwK3N9ZnVuY3Rpb24gZWkobil7bGV0IGU9TnVtYmVyKG4pO2lmKHR5cGVvZiBuPT1cXFwiYm9vbGVhblxcXCJ8fG49PT1cXFwiXFxcInx8TnVtYmVyLmlzTmFOKGUpKXRocm93IG5ldyBmZShgSW52YWxpZCB1bml0IHZhbHVlICR7bn1gKTtyZXR1cm4gZX1mdW5jdGlvbiBjbihuLGUpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBuKWlmKGt0KG4scikpe2xldCBzPW5bcl07aWYocz09bnVsbCljb250aW51ZTt0W2UocildPWVpKHMpfXJldHVybiB0fWZ1bmN0aW9uIHZ0KG4sZSl7bGV0IHQ9TWF0aC50cnVuYyhNYXRoLmFicyhuLzYwKSkscj1NYXRoLnRydW5jKE1hdGguYWJzKG4lNjApKSxzPW4+PTA/XFxcIitcXFwiOlxcXCItXFxcIjtzd2l0Y2goZSl7Y2FzZVxcXCJzaG9ydFxcXCI6cmV0dXJuYCR7c30ke3JlKHQsMil9OiR7cmUociwyKX1gO2Nhc2VcXFwibmFycm93XFxcIjpyZXR1cm5gJHtzfSR7dH0ke3I+MD9gOiR7cn1gOlxcXCJcXFwifWA7Y2FzZVxcXCJ0ZWNoaWVcXFwiOnJldHVybmAke3N9JHtyZSh0LDIpfSR7cmUociwyKX1gO2RlZmF1bHQ6dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFZhbHVlIGZvcm1hdCAke2V9IGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0YCl9fWZ1bmN0aW9uIGFyKG4pe3JldHVybiBSbyhuLFtcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0pfXZhciB0aT0vW0EtWmEtel8rLV17MSwyNTZ9KD86Oj9cXFxcL1tBLVphLXowLTlfKy1dezEsMjU2fSg/OlxcXFwvW0EtWmEtejAtOV8rLV17MSwyNTZ9KT8pPy87dmFyIEZsPVtcXFwiSmFudWFyeVxcXCIsXFxcIkZlYnJ1YXJ5XFxcIixcXFwiTWFyY2hcXFwiLFxcXCJBcHJpbFxcXCIsXFxcIk1heVxcXCIsXFxcIkp1bmVcXFwiLFxcXCJKdWx5XFxcIixcXFwiQXVndXN0XFxcIixcXFwiU2VwdGVtYmVyXFxcIixcXFwiT2N0b2JlclxcXCIsXFxcIk5vdmVtYmVyXFxcIixcXFwiRGVjZW1iZXJcXFwiXSxuaT1bXFxcIkphblxcXCIsXFxcIkZlYlxcXCIsXFxcIk1hclxcXCIsXFxcIkFwclxcXCIsXFxcIk1heVxcXCIsXFxcIkp1blxcXCIsXFxcIkp1bFxcXCIsXFxcIkF1Z1xcXCIsXFxcIlNlcFxcXCIsXFxcIk9jdFxcXCIsXFxcIk5vdlxcXCIsXFxcIkRlY1xcXCJdLEVsPVtcXFwiSlxcXCIsXFxcIkZcXFwiLFxcXCJNXFxcIixcXFwiQVxcXCIsXFxcIk1cXFwiLFxcXCJKXFxcIixcXFwiSlxcXCIsXFxcIkFcXFwiLFxcXCJTXFxcIixcXFwiT1xcXCIsXFxcIk5cXFwiLFxcXCJEXFxcIl07ZnVuY3Rpb24gcmkobil7c3dpdGNoKG4pe2Nhc2VcXFwibmFycm93XFxcIjpyZXR1cm5bLi4uRWxdO2Nhc2VcXFwic2hvcnRcXFwiOnJldHVyblsuLi5uaV07Y2FzZVxcXCJsb25nXFxcIjpyZXR1cm5bLi4uRmxdO2Nhc2VcXFwibnVtZXJpY1xcXCI6cmV0dXJuW1xcXCIxXFxcIixcXFwiMlxcXCIsXFxcIjNcXFwiLFxcXCI0XFxcIixcXFwiNVxcXCIsXFxcIjZcXFwiLFxcXCI3XFxcIixcXFwiOFxcXCIsXFxcIjlcXFwiLFxcXCIxMFxcXCIsXFxcIjExXFxcIixcXFwiMTJcXFwiXTtjYXNlXFxcIjItZGlnaXRcXFwiOnJldHVybltcXFwiMDFcXFwiLFxcXCIwMlxcXCIsXFxcIjAzXFxcIixcXFwiMDRcXFwiLFxcXCIwNVxcXCIsXFxcIjA2XFxcIixcXFwiMDdcXFwiLFxcXCIwOFxcXCIsXFxcIjA5XFxcIixcXFwiMTBcXFwiLFxcXCIxMVxcXCIsXFxcIjEyXFxcIl07ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIHNpPVtcXFwiTW9uZGF5XFxcIixcXFwiVHVlc2RheVxcXCIsXFxcIldlZG5lc2RheVxcXCIsXFxcIlRodXJzZGF5XFxcIixcXFwiRnJpZGF5XFxcIixcXFwiU2F0dXJkYXlcXFwiLFxcXCJTdW5kYXlcXFwiXSxpaT1bXFxcIk1vblxcXCIsXFxcIlR1ZVxcXCIsXFxcIldlZFxcXCIsXFxcIlRodVxcXCIsXFxcIkZyaVxcXCIsXFxcIlNhdFxcXCIsXFxcIlN1blxcXCJdLHdsPVtcXFwiTVxcXCIsXFxcIlRcXFwiLFxcXCJXXFxcIixcXFwiVFxcXCIsXFxcIkZcXFwiLFxcXCJTXFxcIixcXFwiU1xcXCJdO2Z1bmN0aW9uIG9pKG4pe3N3aXRjaChuKXtjYXNlXFxcIm5hcnJvd1xcXCI6cmV0dXJuWy4uLndsXTtjYXNlXFxcInNob3J0XFxcIjpyZXR1cm5bLi4uaWldO2Nhc2VcXFwibG9uZ1xcXCI6cmV0dXJuWy4uLnNpXTtjYXNlXFxcIm51bWVyaWNcXFwiOnJldHVybltcXFwiMVxcXCIsXFxcIjJcXFwiLFxcXCIzXFxcIixcXFwiNFxcXCIsXFxcIjVcXFwiLFxcXCI2XFxcIixcXFwiN1xcXCJdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBhaT1bXFxcIkFNXFxcIixcXFwiUE1cXFwiXSxUbD1bXFxcIkJlZm9yZSBDaHJpc3RcXFwiLFxcXCJBbm5vIERvbWluaVxcXCJdLFNsPVtcXFwiQkNcXFwiLFxcXCJBRFxcXCJdLGtsPVtcXFwiQlxcXCIsXFxcIkFcXFwiXTtmdW5jdGlvbiB1aShuKXtzd2l0Y2gobil7Y2FzZVxcXCJuYXJyb3dcXFwiOnJldHVyblsuLi5rbF07Y2FzZVxcXCJzaG9ydFxcXCI6cmV0dXJuWy4uLlNsXTtjYXNlXFxcImxvbmdcXFwiOnJldHVyblsuLi5UbF07ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gam8obil7cmV0dXJuIGFpW24uaG91cjwxMj8wOjFdfWZ1bmN0aW9uIHFvKG4sZSl7cmV0dXJuIG9pKGUpW24ud2Vla2RheS0xXX1mdW5jdGlvbiBWbyhuLGUpe3JldHVybiByaShlKVtuLm1vbnRoLTFdfWZ1bmN0aW9uIFVvKG4sZSl7cmV0dXJuIHVpKGUpW24ueWVhcjwwPzA6MV19ZnVuY3Rpb24gS28obixlLHQ9XFxcImFsd2F5c1xcXCIscj0hMSl7bGV0IHM9e3llYXJzOltcXFwieWVhclxcXCIsXFxcInlyLlxcXCJdLHF1YXJ0ZXJzOltcXFwicXVhcnRlclxcXCIsXFxcInF0ci5cXFwiXSxtb250aHM6W1xcXCJtb250aFxcXCIsXFxcIm1vLlxcXCJdLHdlZWtzOltcXFwid2Vla1xcXCIsXFxcIndrLlxcXCJdLGRheXM6W1xcXCJkYXlcXFwiLFxcXCJkYXlcXFwiLFxcXCJkYXlzXFxcIl0saG91cnM6W1xcXCJob3VyXFxcIixcXFwiaHIuXFxcIl0sbWludXRlczpbXFxcIm1pbnV0ZVxcXCIsXFxcIm1pbi5cXFwiXSxzZWNvbmRzOltcXFwic2Vjb25kXFxcIixcXFwic2VjLlxcXCJdfSxpPVtcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCJdLmluZGV4T2Yobik9PT0tMTtpZih0PT09XFxcImF1dG9cXFwiJiZpKXtsZXQgZD1uPT09XFxcImRheXNcXFwiO3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGQ/XFxcInRvbW9ycm93XFxcIjpgbmV4dCAke3Nbbl1bMF19YDtjYXNlLTE6cmV0dXJuIGQ/XFxcInllc3RlcmRheVxcXCI6YGxhc3QgJHtzW25dWzBdfWA7Y2FzZSAwOnJldHVybiBkP1xcXCJ0b2RheVxcXCI6YHRoaXMgJHtzW25dWzBdfWA7ZGVmYXVsdDp9fWxldCBvPU9iamVjdC5pcyhlLC0wKXx8ZTwwLGE9TWF0aC5hYnMoZSksdT1hPT09MSxsPXNbbl0sZj1yP3U/bFsxXTpsWzJdfHxsWzFdOnU/c1tuXVswXTpuO3JldHVybiBvP2Ake2F9ICR7Zn0gYWdvYDpgaW4gJHthfSAke2Z9YH1mdW5jdGlvbiBXbyhuLGUpe2xldCB0PVxcXCJcXFwiO2ZvcihsZXQgciBvZiBuKXIubGl0ZXJhbD90Kz1yLnZhbDp0Kz1lKHIudmFsKTtyZXR1cm4gdH12YXIgQ2w9e0Q6b24sREQ6JG4sREREOlJuLEREREQ6am4sdDpxbix0dDpWbix0dHQ6VW4sdHR0dDpLbixUOlduLFRUOkhuLFRUVDpKbixUVFRUOnpuLGY6WW4sZmY6Wm4sZmZmOlhuLGZmZmY6dHIsRjpHbixGRjpRbixGRkY6ZXIsRkZGRjpucn0sd2U9Y2xhc3MgbntzdGF0aWMgY3JlYXRlKGUsdD17fSl7cmV0dXJuIG5ldyBuKGUsdCl9c3RhdGljIHBhcnNlRm9ybWF0KGUpe2xldCB0PW51bGwscj1cXFwiXFxcIixzPSExLGk9W107Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2xldCBhPWUuY2hhckF0KG8pO2E9PT1cXFwiJ1xcXCI/KHIubGVuZ3RoPjAmJmkucHVzaCh7bGl0ZXJhbDpzLHZhbDpyfSksdD1udWxsLHI9XFxcIlxcXCIscz0hcyk6c3x8YT09PXQ/cis9YTooci5sZW5ndGg+MCYmaS5wdXNoKHtsaXRlcmFsOiExLHZhbDpyfSkscj1hLHQ9YSl9cmV0dXJuIHIubGVuZ3RoPjAmJmkucHVzaCh7bGl0ZXJhbDpzLHZhbDpyfSksaX1zdGF0aWMgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyhlKXtyZXR1cm4gQ2xbZV19Y29uc3RydWN0b3IoZSx0KXt0aGlzLm9wdHM9dCx0aGlzLmxvYz1lLHRoaXMuc3lzdGVtTG9jPW51bGx9Zm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZSx0KXtyZXR1cm4gdGhpcy5zeXN0ZW1Mb2M9PT1udWxsJiYodGhpcy5zeXN0ZW1Mb2M9dGhpcy5sb2MucmVkZWZhdWx0VG9TeXN0ZW0oKSksdGhpcy5zeXN0ZW1Mb2MuZHRGb3JtYXR0ZXIoZSxSKFIoe30sdGhpcy5vcHRzKSx0KSkuZm9ybWF0KCl9Zm9ybWF0RGF0ZVRpbWUoZSx0PXt9KXtyZXR1cm4gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZSxSKFIoe30sdGhpcy5vcHRzKSx0KSkuZm9ybWF0KCl9Zm9ybWF0RGF0ZVRpbWVQYXJ0cyhlLHQ9e30pe3JldHVybiB0aGlzLmxvYy5kdEZvcm1hdHRlcihlLFIoUih7fSx0aGlzLm9wdHMpLHQpKS5mb3JtYXRUb1BhcnRzKCl9cmVzb2x2ZWRPcHRpb25zKGUsdD17fSl7cmV0dXJuIHRoaXMubG9jLmR0Rm9ybWF0dGVyKGUsUihSKHt9LHRoaXMub3B0cyksdCkpLnJlc29sdmVkT3B0aW9ucygpfW51bShlLHQ9MCl7aWYodGhpcy5vcHRzLmZvcmNlU2ltcGxlKXJldHVybiByZShlLHQpO2xldCByPVIoe30sdGhpcy5vcHRzKTtyZXR1cm4gdD4wJiYoci5wYWRUbz10KSx0aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIocikuZm9ybWF0KGUpfWZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhlLHQpe2xldCByPXRoaXMubG9jLmxpc3RpbmdNb2RlKCk9PT1cXFwiZW5cXFwiLHM9dGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXImJnRoaXMubG9jLm91dHB1dENhbGVuZGFyIT09XFxcImdyZWdvcnlcXFwiLGk9KGgsYik9PnRoaXMubG9jLmV4dHJhY3QoZSxoLGIpLG89aD0+ZS5pc09mZnNldEZpeGVkJiZlLm9mZnNldD09PTAmJmguYWxsb3daP1xcXCJaXFxcIjplLmlzVmFsaWQ/ZS56b25lLmZvcm1hdE9mZnNldChlLnRzLGguZm9ybWF0KTpcXFwiXFxcIixhPSgpPT5yP2pvKGUpOmkoe2hvdXI6XFxcIm51bWVyaWNcXFwiLGhvdXJDeWNsZTpcXFwiaDEyXFxcIn0sXFxcImRheXBlcmlvZFxcXCIpLHU9KGgsYik9PnI/Vm8oZSxoKTppKGI/e21vbnRoOmh9Onttb250aDpoLGRheTpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpLGw9KGgsYik9PnI/cW8oZSxoKTppKGI/e3dlZWtkYXk6aH06e3dlZWtkYXk6aCxtb250aDpcXFwibG9uZ1xcXCIsZGF5OlxcXCJudW1lcmljXFxcIn0sXFxcIndlZWtkYXlcXFwiKSxmPWg9PntsZXQgYj1uLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHMoaCk7cmV0dXJuIGI/dGhpcy5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChlLGIpOmh9LGQ9aD0+cj9VbyhlLGgpOmkoe2VyYTpofSxcXFwiZXJhXFxcIikscD1oPT57c3dpdGNoKGgpe2Nhc2VcXFwiU1xcXCI6cmV0dXJuIHRoaXMubnVtKGUubWlsbGlzZWNvbmQpO2Nhc2VcXFwidVxcXCI6Y2FzZVxcXCJTU1NcXFwiOnJldHVybiB0aGlzLm51bShlLm1pbGxpc2Vjb25kLDMpO2Nhc2VcXFwic1xcXCI6cmV0dXJuIHRoaXMubnVtKGUuc2Vjb25kKTtjYXNlXFxcInNzXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5zZWNvbmQsMik7Y2FzZVxcXCJ1dVxcXCI6cmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZS5taWxsaXNlY29uZC8xMCksMik7Y2FzZVxcXCJ1dXVcXFwiOnJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGUubWlsbGlzZWNvbmQvMTAwKSk7Y2FzZVxcXCJtXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5taW51dGUpO2Nhc2VcXFwibW1cXFwiOnJldHVybiB0aGlzLm51bShlLm1pbnV0ZSwyKTtjYXNlXFxcImhcXFwiOnJldHVybiB0aGlzLm51bShlLmhvdXIlMTI9PT0wPzEyOmUuaG91ciUxMik7Y2FzZVxcXCJoaFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91ciUxMj09PTA/MTI6ZS5ob3VyJTEyLDIpO2Nhc2VcXFwiSFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91cik7Y2FzZVxcXCJISFxcXCI6cmV0dXJuIHRoaXMubnVtKGUuaG91ciwyKTtjYXNlXFxcIlpcXFwiOnJldHVybiBvKHtmb3JtYXQ6XFxcIm5hcnJvd1xcXCIsYWxsb3daOnRoaXMub3B0cy5hbGxvd1p9KTtjYXNlXFxcIlpaXFxcIjpyZXR1cm4gbyh7Zm9ybWF0OlxcXCJzaG9ydFxcXCIsYWxsb3daOnRoaXMub3B0cy5hbGxvd1p9KTtjYXNlXFxcIlpaWlxcXCI6cmV0dXJuIG8oe2Zvcm1hdDpcXFwidGVjaGllXFxcIixhbGxvd1o6dGhpcy5vcHRzLmFsbG93Wn0pO2Nhc2VcXFwiWlpaWlxcXCI6cmV0dXJuIGUuem9uZS5vZmZzZXROYW1lKGUudHMse2Zvcm1hdDpcXFwic2hvcnRcXFwiLGxvY2FsZTp0aGlzLmxvYy5sb2NhbGV9KTtjYXNlXFxcIlpaWlpaXFxcIjpyZXR1cm4gZS56b25lLm9mZnNldE5hbWUoZS50cyx7Zm9ybWF0OlxcXCJsb25nXFxcIixsb2NhbGU6dGhpcy5sb2MubG9jYWxlfSk7Y2FzZVxcXCJ6XFxcIjpyZXR1cm4gZS56b25lTmFtZTtjYXNlXFxcImFcXFwiOnJldHVybiBhKCk7Y2FzZVxcXCJkXFxcIjpyZXR1cm4gcz9pKHtkYXk6XFxcIm51bWVyaWNcXFwifSxcXFwiZGF5XFxcIik6dGhpcy5udW0oZS5kYXkpO2Nhc2VcXFwiZGRcXFwiOnJldHVybiBzP2koe2RheTpcXFwiMi1kaWdpdFxcXCJ9LFxcXCJkYXlcXFwiKTp0aGlzLm51bShlLmRheSwyKTtjYXNlXFxcImNcXFwiOnJldHVybiB0aGlzLm51bShlLndlZWtkYXkpO2Nhc2VcXFwiY2NjXFxcIjpyZXR1cm4gbChcXFwic2hvcnRcXFwiLCEwKTtjYXNlXFxcImNjY2NcXFwiOnJldHVybiBsKFxcXCJsb25nXFxcIiwhMCk7Y2FzZVxcXCJjY2NjY1xcXCI6cmV0dXJuIGwoXFxcIm5hcnJvd1xcXCIsITApO2Nhc2VcXFwiRVxcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla2RheSk7Y2FzZVxcXCJFRUVcXFwiOnJldHVybiBsKFxcXCJzaG9ydFxcXCIsITEpO2Nhc2VcXFwiRUVFRVxcXCI6cmV0dXJuIGwoXFxcImxvbmdcXFwiLCExKTtjYXNlXFxcIkVFRUVFXFxcIjpyZXR1cm4gbChcXFwibmFycm93XFxcIiwhMSk7Y2FzZVxcXCJMXFxcIjpyZXR1cm4gcz9pKHttb250aDpcXFwibnVtZXJpY1xcXCIsZGF5OlxcXCJudW1lcmljXFxcIn0sXFxcIm1vbnRoXFxcIik6dGhpcy5udW0oZS5tb250aCk7Y2FzZVxcXCJMTFxcXCI6cmV0dXJuIHM/aSh7bW9udGg6XFxcIjItZGlnaXRcXFwiLGRheTpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpOnRoaXMubnVtKGUubW9udGgsMik7Y2FzZVxcXCJMTExcXFwiOnJldHVybiB1KFxcXCJzaG9ydFxcXCIsITApO2Nhc2VcXFwiTExMTFxcXCI6cmV0dXJuIHUoXFxcImxvbmdcXFwiLCEwKTtjYXNlXFxcIkxMTExMXFxcIjpyZXR1cm4gdShcXFwibmFycm93XFxcIiwhMCk7Y2FzZVxcXCJNXFxcIjpyZXR1cm4gcz9pKHttb250aDpcXFwibnVtZXJpY1xcXCJ9LFxcXCJtb250aFxcXCIpOnRoaXMubnVtKGUubW9udGgpO2Nhc2VcXFwiTU1cXFwiOnJldHVybiBzP2koe21vbnRoOlxcXCIyLWRpZ2l0XFxcIn0sXFxcIm1vbnRoXFxcIik6dGhpcy5udW0oZS5tb250aCwyKTtjYXNlXFxcIk1NTVxcXCI6cmV0dXJuIHUoXFxcInNob3J0XFxcIiwhMSk7Y2FzZVxcXCJNTU1NXFxcIjpyZXR1cm4gdShcXFwibG9uZ1xcXCIsITEpO2Nhc2VcXFwiTU1NTU1cXFwiOnJldHVybiB1KFxcXCJuYXJyb3dcXFwiLCExKTtjYXNlXFxcInlcXFwiOnJldHVybiBzP2koe3llYXI6XFxcIm51bWVyaWNcXFwifSxcXFwieWVhclxcXCIpOnRoaXMubnVtKGUueWVhcik7Y2FzZVxcXCJ5eVxcXCI6cmV0dXJuIHM/aSh7eWVhcjpcXFwiMi1kaWdpdFxcXCJ9LFxcXCJ5ZWFyXFxcIik6dGhpcy5udW0oZS55ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLDIpO2Nhc2VcXFwieXl5eVxcXCI6cmV0dXJuIHM/aSh7eWVhcjpcXFwibnVtZXJpY1xcXCJ9LFxcXCJ5ZWFyXFxcIik6dGhpcy5udW0oZS55ZWFyLDQpO2Nhc2VcXFwieXl5eXl5XFxcIjpyZXR1cm4gcz9pKHt5ZWFyOlxcXCJudW1lcmljXFxcIn0sXFxcInllYXJcXFwiKTp0aGlzLm51bShlLnllYXIsNik7Y2FzZVxcXCJHXFxcIjpyZXR1cm4gZChcXFwic2hvcnRcXFwiKTtjYXNlXFxcIkdHXFxcIjpyZXR1cm4gZChcXFwibG9uZ1xcXCIpO2Nhc2VcXFwiR0dHR0dcXFwiOnJldHVybiBkKFxcXCJuYXJyb3dcXFwiKTtjYXNlXFxcImtrXFxcIjpyZXR1cm4gdGhpcy5udW0oZS53ZWVrWWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwyKTtjYXNlXFxcImtra2tcXFwiOnJldHVybiB0aGlzLm51bShlLndlZWtZZWFyLDQpO2Nhc2VcXFwiV1xcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla051bWJlcik7Y2FzZVxcXCJXV1xcXCI6cmV0dXJuIHRoaXMubnVtKGUud2Vla051bWJlciwyKTtjYXNlXFxcIm9cXFwiOnJldHVybiB0aGlzLm51bShlLm9yZGluYWwpO2Nhc2VcXFwib29vXFxcIjpyZXR1cm4gdGhpcy5udW0oZS5vcmRpbmFsLDMpO2Nhc2VcXFwicVxcXCI6cmV0dXJuIHRoaXMubnVtKGUucXVhcnRlcik7Y2FzZVxcXCJxcVxcXCI6cmV0dXJuIHRoaXMubnVtKGUucXVhcnRlciwyKTtjYXNlXFxcIlhcXFwiOnJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGUudHMvMWUzKSk7Y2FzZVxcXCJ4XFxcIjpyZXR1cm4gdGhpcy5udW0oZS50cyk7ZGVmYXVsdDpyZXR1cm4gZihoKX19O3JldHVybiBXbyhuLnBhcnNlRm9ybWF0KHQpLHApfWZvcm1hdER1cmF0aW9uRnJvbVN0cmluZyhlLHQpe2xldCByPXU9Pntzd2l0Y2godVswXSl7Y2FzZVxcXCJTXFxcIjpyZXR1cm5cXFwibWlsbGlzZWNvbmRcXFwiO2Nhc2VcXFwic1xcXCI6cmV0dXJuXFxcInNlY29uZFxcXCI7Y2FzZVxcXCJtXFxcIjpyZXR1cm5cXFwibWludXRlXFxcIjtjYXNlXFxcImhcXFwiOnJldHVyblxcXCJob3VyXFxcIjtjYXNlXFxcImRcXFwiOnJldHVyblxcXCJkYXlcXFwiO2Nhc2VcXFwid1xcXCI6cmV0dXJuXFxcIndlZWtcXFwiO2Nhc2VcXFwiTVxcXCI6cmV0dXJuXFxcIm1vbnRoXFxcIjtjYXNlXFxcInlcXFwiOnJldHVyblxcXCJ5ZWFyXFxcIjtkZWZhdWx0OnJldHVybiBudWxsfX0scz11PT5sPT57bGV0IGY9cihsKTtyZXR1cm4gZj90aGlzLm51bSh1LmdldChmKSxsLmxlbmd0aCk6bH0saT1uLnBhcnNlRm9ybWF0KHQpLG89aS5yZWR1Y2UoKHUse2xpdGVyYWw6bCx2YWw6Zn0pPT5sP3U6dS5jb25jYXQoZiksW10pLGE9ZS5zaGlmdFRvKC4uLm8ubWFwKHIpLmZpbHRlcih1PT51KSk7cmV0dXJuIFdvKGkscyhhKSl9fTt2YXIgZGU9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnJlYXNvbj1lLHRoaXMuZXhwbGFuYXRpb249dH10b01lc3NhZ2UoKXtyZXR1cm4gdGhpcy5leHBsYW5hdGlvbj9gJHt0aGlzLnJlYXNvbn06ICR7dGhpcy5leHBsYW5hdGlvbn1gOnRoaXMucmVhc29ufX07dmFyIGtlPWNsYXNze2dldCB0eXBlKCl7dGhyb3cgbmV3IGplfWdldCBuYW1lKCl7dGhyb3cgbmV3IGplfWdldCBpYW5hTmFtZSgpe3JldHVybiB0aGlzLm5hbWV9Z2V0IGlzVW5pdmVyc2FsKCl7dGhyb3cgbmV3IGplfW9mZnNldE5hbWUoZSx0KXt0aHJvdyBuZXcgamV9Zm9ybWF0T2Zmc2V0KGUsdCl7dGhyb3cgbmV3IGplfW9mZnNldChlKXt0aHJvdyBuZXcgamV9ZXF1YWxzKGUpe3Rocm93IG5ldyBqZX1nZXQgaXNWYWxpZCgpe3Rocm93IG5ldyBqZX19O3ZhciBjaT1udWxsLGZuPWNsYXNzIG4gZXh0ZW5kcyBrZXtzdGF0aWMgZ2V0IGluc3RhbmNlKCl7cmV0dXJuIGNpPT09bnVsbCYmKGNpPW5ldyBuKSxjaX1nZXQgdHlwZSgpe3JldHVyblxcXCJzeXN0ZW1cXFwifWdldCBuYW1lKCl7cmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmV9Z2V0IGlzVW5pdmVyc2FsKCl7cmV0dXJuITF9b2Zmc2V0TmFtZShlLHtmb3JtYXQ6dCxsb2NhbGU6cn0pe3JldHVybiBKcihlLHQscil9Zm9ybWF0T2Zmc2V0KGUsdCl7cmV0dXJuIHZ0KHRoaXMub2Zmc2V0KGUpLHQpfW9mZnNldChlKXtyZXR1cm4tbmV3IERhdGUoZSkuZ2V0VGltZXpvbmVPZmZzZXQoKX1lcXVhbHMoZSl7cmV0dXJuIGUudHlwZT09PVxcXCJzeXN0ZW1cXFwifWdldCBpc1ZhbGlkKCl7cmV0dXJuITB9fTt2YXIgWXI9e307ZnVuY3Rpb24gdmwobil7cmV0dXJuIFlyW25dfHwoWXJbbl09bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXFxcImVuLVVTXFxcIix7aG91cjEyOiExLHRpbWVab25lOm4seWVhcjpcXFwibnVtZXJpY1xcXCIsbW9udGg6XFxcIjItZGlnaXRcXFwiLGRheTpcXFwiMi1kaWdpdFxcXCIsaG91cjpcXFwiMi1kaWdpdFxcXCIsbWludXRlOlxcXCIyLWRpZ2l0XFxcIixzZWNvbmQ6XFxcIjItZGlnaXRcXFwiLGVyYTpcXFwic2hvcnRcXFwifSkpLFlyW25dfXZhciBPbD17eWVhcjowLG1vbnRoOjEsZGF5OjIsZXJhOjMsaG91cjo0LG1pbnV0ZTo1LHNlY29uZDo2fTtmdW5jdGlvbiB4bChuLGUpe2xldCB0PW4uZm9ybWF0KGUpLnJlcGxhY2UoL1xcXFx1MjAwRS9nLFxcXCJcXFwiKSxyPS8oXFxcXGQrKVxcXFwvKFxcXFxkKylcXFxcLyhcXFxcZCspIChBRHxCQyksPyAoXFxcXGQrKTooXFxcXGQrKTooXFxcXGQrKS8uZXhlYyh0KSxbLHMsaSxvLGEsdSxsLGZdPXI7cmV0dXJuW28scyxpLGEsdSxsLGZdfWZ1bmN0aW9uIElsKG4sZSl7bGV0IHQ9bi5mb3JtYXRUb1BhcnRzKGUpLHI9W107Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldHt0eXBlOmksdmFsdWU6b309dFtzXSxhPU9sW2ldO2k9PT1cXFwiZXJhXFxcIj9yW2FdPW86VyhhKXx8KHJbYV09cGFyc2VJbnQobywxMCkpfXJldHVybiByfXZhciB6cj17fSxnZT1jbGFzcyBuIGV4dGVuZHMga2V7c3RhdGljIGNyZWF0ZShlKXtyZXR1cm4genJbZV18fCh6cltlXT1uZXcgbihlKSksenJbZV19c3RhdGljIHJlc2V0Q2FjaGUoKXt6cj17fSxZcj17fX1zdGF0aWMgaXNWYWxpZFNwZWNpZmllcihlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkWm9uZShlKX1zdGF0aWMgaXNWYWxpZFpvbmUoZSl7aWYoIWUpcmV0dXJuITE7dHJ5e3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcXFwiZW4tVVNcXFwiLHt0aW1lWm9uZTplfSkuZm9ybWF0KCksITB9Y2F0Y2godCl7cmV0dXJuITF9fWNvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy56b25lTmFtZT1lLHRoaXMudmFsaWQ9bi5pc1ZhbGlkWm9uZShlKX1nZXQgdHlwZSgpe3JldHVyblxcXCJpYW5hXFxcIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLnpvbmVOYW1lfWdldCBpc1VuaXZlcnNhbCgpe3JldHVybiExfW9mZnNldE5hbWUoZSx7Zm9ybWF0OnQsbG9jYWxlOnJ9KXtyZXR1cm4gSnIoZSx0LHIsdGhpcy5uYW1lKX1mb3JtYXRPZmZzZXQoZSx0KXtyZXR1cm4gdnQodGhpcy5vZmZzZXQoZSksdCl9b2Zmc2V0KGUpe2xldCB0PW5ldyBEYXRlKGUpO2lmKGlzTmFOKHQpKXJldHVybiBOYU47bGV0IHI9dmwodGhpcy5uYW1lKSxbcyxpLG8sYSx1LGwsZl09ci5mb3JtYXRUb1BhcnRzP0lsKHIsdCk6eGwocix0KTthPT09XFxcIkJDXFxcIiYmKHM9LU1hdGguYWJzKHMpKzEpO2xldCBwPWlyKHt5ZWFyOnMsbW9udGg6aSxkYXk6byxob3VyOnU9PT0yND8wOnUsbWludXRlOmwsc2Vjb25kOmYsbWlsbGlzZWNvbmQ6MH0pLGg9K3QsYj1oJTFlMztyZXR1cm4gaC09Yj49MD9iOjFlMytiLChwLWgpLyg2MCoxZTMpfWVxdWFscyhlKXtyZXR1cm4gZS50eXBlPT09XFxcImlhbmFcXFwiJiZlLm5hbWU9PT10aGlzLm5hbWV9Z2V0IGlzVmFsaWQoKXtyZXR1cm4gdGhpcy52YWxpZH19O3ZhciBmaT1udWxsLGhlPWNsYXNzIG4gZXh0ZW5kcyBrZXtzdGF0aWMgZ2V0IHV0Y0luc3RhbmNlKCl7cmV0dXJuIGZpPT09bnVsbCYmKGZpPW5ldyBuKDApKSxmaX1zdGF0aWMgaW5zdGFuY2UoZSl7cmV0dXJuIGU9PT0wP24udXRjSW5zdGFuY2U6bmV3IG4oZSl9c3RhdGljIHBhcnNlU3BlY2lmaWVyKGUpe2lmKGUpe2xldCB0PWUubWF0Y2goL151dGMoPzooWystXVxcXFxkezEsMn0pKD86OihcXFxcZHsyfSkpPyk/JC9pKTtpZih0KXJldHVybiBuZXcgbihWdCh0WzFdLHRbMl0pKX1yZXR1cm4gbnVsbH1jb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuZml4ZWQ9ZX1nZXQgdHlwZSgpe3JldHVyblxcXCJmaXhlZFxcXCJ9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5maXhlZD09PTA/XFxcIlVUQ1xcXCI6YFVUQyR7dnQodGhpcy5maXhlZCxcXFwibmFycm93XFxcIil9YH1nZXQgaWFuYU5hbWUoKXtyZXR1cm4gdGhpcy5maXhlZD09PTA/XFxcIkV0Yy9VVENcXFwiOmBFdGMvR01UJHt2dCgtdGhpcy5maXhlZCxcXFwibmFycm93XFxcIil9YH1vZmZzZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1mb3JtYXRPZmZzZXQoZSx0KXtyZXR1cm4gdnQodGhpcy5maXhlZCx0KX1nZXQgaXNVbml2ZXJzYWwoKXtyZXR1cm4hMH1vZmZzZXQoKXtyZXR1cm4gdGhpcy5maXhlZH1lcXVhbHMoZSl7cmV0dXJuIGUudHlwZT09PVxcXCJmaXhlZFxcXCImJmUuZml4ZWQ9PT10aGlzLmZpeGVkfWdldCBpc1ZhbGlkKCl7cmV0dXJuITB9fTt2YXIgZG49Y2xhc3MgZXh0ZW5kcyBrZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuem9uZU5hbWU9ZX1nZXQgdHlwZSgpe3JldHVyblxcXCJpbnZhbGlkXFxcIn1nZXQgbmFtZSgpe3JldHVybiB0aGlzLnpvbmVOYW1lfWdldCBpc1VuaXZlcnNhbCgpe3JldHVybiExfW9mZnNldE5hbWUoKXtyZXR1cm4gbnVsbH1mb3JtYXRPZmZzZXQoKXtyZXR1cm5cXFwiXFxcIn1vZmZzZXQoKXtyZXR1cm4gTmFOfWVxdWFscygpe3JldHVybiExfWdldCBpc1ZhbGlkKCl7cmV0dXJuITF9fTtmdW5jdGlvbiBWZShuLGUpe2xldCB0O2lmKFcobil8fG49PT1udWxsKXJldHVybiBlO2lmKG4gaW5zdGFuY2VvZiBrZSlyZXR1cm4gbjtpZihCbyhuKSl7bGV0IHI9bi50b0xvd2VyQ2FzZSgpO3JldHVybiByPT09XFxcImxvY2FsXFxcInx8cj09PVxcXCJzeXN0ZW1cXFwiP2U6cj09PVxcXCJ1dGNcXFwifHxyPT09XFxcImdtdFxcXCI/aGUudXRjSW5zdGFuY2U6aGUucGFyc2VTcGVjaWZpZXIocil8fGdlLmNyZWF0ZShuKX1lbHNlIHJldHVybiB0dChuKT9oZS5pbnN0YW5jZShuKTp0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm4ub2Zmc2V0JiZ0eXBlb2Ygbi5vZmZzZXQ9PVxcXCJudW1iZXJcXFwiP246bmV3IGRuKG4pfXZhciBIbz0oKT0+RGF0ZS5ub3coKSxKbz1cXFwic3lzdGVtXFxcIix6bz1udWxsLFlvPW51bGwsR289bnVsbCxabyxYPWNsYXNze3N0YXRpYyBnZXQgbm93KCl7cmV0dXJuIEhvfXN0YXRpYyBzZXQgbm93KGUpe0hvPWV9c3RhdGljIHNldCBkZWZhdWx0Wm9uZShlKXtKbz1lfXN0YXRpYyBnZXQgZGVmYXVsdFpvbmUoKXtyZXR1cm4gVmUoSm8sZm4uaW5zdGFuY2UpfXN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpe3JldHVybiB6b31zdGF0aWMgc2V0IGRlZmF1bHRMb2NhbGUoZSl7em89ZX1zdGF0aWMgZ2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0oKXtyZXR1cm4gWW99c3RhdGljIHNldCBkZWZhdWx0TnVtYmVyaW5nU3lzdGVtKGUpe1lvPWV9c3RhdGljIGdldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoKXtyZXR1cm4gR299c3RhdGljIHNldCBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIoZSl7R289ZX1zdGF0aWMgZ2V0IHRocm93T25JbnZhbGlkKCl7cmV0dXJuIFpvfXN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQoZSl7Wm89ZX1zdGF0aWMgcmVzZXRDYWNoZXMoKXtuZS5yZXNldENhY2hlKCksZ2UucmVzZXRDYWNoZSgpfX07dmFyIFFvPXt9O2Z1bmN0aW9uIExsKG4sZT17fSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoW24sZV0pLHI9UW9bdF07cmV0dXJuIHJ8fChyPW5ldyBJbnRsLkxpc3RGb3JtYXQobixlKSxRb1t0XT1yKSxyfXZhciBkaT17fTtmdW5jdGlvbiBoaShuLGU9e30pe2xldCB0PUpTT04uc3RyaW5naWZ5KFtuLGVdKSxyPWRpW3RdO3JldHVybiByfHwocj1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChuLGUpLGRpW3RdPXIpLHJ9dmFyIHBpPXt9O2Z1bmN0aW9uIE5sKG4sZT17fSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoW24sZV0pLHI9cGlbdF07cmV0dXJuIHJ8fChyPW5ldyBJbnRsLk51bWJlckZvcm1hdChuLGUpLHBpW3RdPXIpLHJ9dmFyIG1pPXt9O2Z1bmN0aW9uIEFsKG4sZT17fSl7bGV0IG89ZSx7YmFzZTp0fT1vLHI9WXMobyxbXFxcImJhc2VcXFwiXSkscz1KU09OLnN0cmluZ2lmeShbbixyXSksaT1taVtzXTtyZXR1cm4gaXx8KGk9bmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KG4sZSksbWlbc109aSksaX12YXIgdXI9bnVsbDtmdW5jdGlvbiBNbCgpe3JldHVybiB1cnx8KHVyPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLHVyKX1mdW5jdGlvbiBfbChuKXtsZXQgZT1uLmluZGV4T2YoXFxcIi11LVxcXCIpO2lmKGU9PT0tMSlyZXR1cm5bbl07e2xldCB0LHI9bi5zdWJzdHJpbmcoMCxlKTt0cnl7dD1oaShuKS5yZXNvbHZlZE9wdGlvbnMoKX1jYXRjaChvKXt0PWhpKHIpLnJlc29sdmVkT3B0aW9ucygpfWxldHtudW1iZXJpbmdTeXN0ZW06cyxjYWxlbmRhcjppfT10O3JldHVybltyLHMsaV19fWZ1bmN0aW9uIEJsKG4sZSx0KXtyZXR1cm4odHx8ZSkmJihuKz1cXFwiLXVcXFwiLHQmJihuKz1gLWNhLSR7dH1gKSxlJiYobis9YC1udS0ke2V9YCkpLG59ZnVuY3Rpb24gUGwobil7bGV0IGU9W107Zm9yKGxldCB0PTE7dDw9MTI7dCsrKXtsZXQgcj1xLnV0YygyMDE2LHQsMSk7ZS5wdXNoKG4ocikpfXJldHVybiBlfWZ1bmN0aW9uICRsKG4pe2xldCBlPVtdO2ZvcihsZXQgdD0xO3Q8PTc7dCsrKXtsZXQgcj1xLnV0YygyMDE2LDExLDEzK3QpO2UucHVzaChuKHIpKX1yZXR1cm4gZX1mdW5jdGlvbiBHcihuLGUsdCxyLHMpe2xldCBpPW4ubGlzdGluZ01vZGUodCk7cmV0dXJuIGk9PT1cXFwiZXJyb3JcXFwiP251bGw6aT09PVxcXCJlblxcXCI/cihlKTpzKGUpfWZ1bmN0aW9uIFJsKG4pe3JldHVybiBuLm51bWJlcmluZ1N5c3RlbSYmbi5udW1iZXJpbmdTeXN0ZW0hPT1cXFwibGF0blxcXCI/ITE6bi5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCJ8fCFuLmxvY2FsZXx8bi5sb2NhbGUuc3RhcnRzV2l0aChcXFwiZW5cXFwiKXx8bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobi5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCJ9dmFyIERpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnBhZFRvPXIucGFkVG98fDAsdGhpcy5mbG9vcj1yLmZsb29yfHwhMTtsZXQgYT1yLHtwYWRUbzpzLGZsb29yOml9PWEsbz1ZcyhhLFtcXFwicGFkVG9cXFwiLFxcXCJmbG9vclxcXCJdKTtpZighdHx8T2JqZWN0LmtleXMobykubGVuZ3RoPjApe2xldCB1PVIoe3VzZUdyb3VwaW5nOiExfSxyKTtyLnBhZFRvPjAmJih1Lm1pbmltdW1JbnRlZ2VyRGlnaXRzPXIucGFkVG8pLHRoaXMuaW5mPU5sKGUsdSl9fWZvcm1hdChlKXtpZih0aGlzLmluZil7bGV0IHQ9dGhpcy5mbG9vcj9NYXRoLmZsb29yKGUpOmU7cmV0dXJuIHRoaXMuaW5mLmZvcm1hdCh0KX1lbHNle2xldCB0PXRoaXMuZmxvb3I/TWF0aC5mbG9vcihlKTphbihlLDMpO3JldHVybiByZSh0LHRoaXMucGFkVG8pfX19LHlpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLm9wdHM9cjtsZXQgcztpZihlLnpvbmUuaXNVbml2ZXJzYWwpe2xldCBvPS0xKihlLm9mZnNldC82MCksYT1vPj0wP2BFdGMvR01UKyR7b31gOmBFdGMvR01UJHtvfWA7ZS5vZmZzZXQhPT0wJiZnZS5jcmVhdGUoYSkudmFsaWQ/KHM9YSx0aGlzLmR0PWUpOihzPVxcXCJVVENcXFwiLHIudGltZVpvbmVOYW1lP3RoaXMuZHQ9ZTp0aGlzLmR0PWUub2Zmc2V0PT09MD9lOnEuZnJvbU1pbGxpcyhlLnRzK2Uub2Zmc2V0KjYwKjFlMykpfWVsc2UgZS56b25lLnR5cGU9PT1cXFwic3lzdGVtXFxcIj90aGlzLmR0PWU6KHRoaXMuZHQ9ZSxzPWUuem9uZS5uYW1lKTtsZXQgaT1SKHt9LHRoaXMub3B0cyk7cyYmKGkudGltZVpvbmU9cyksdGhpcy5kdGY9aGkodCxpKX1mb3JtYXQoKXtyZXR1cm4gdGhpcy5kdGYuZm9ybWF0KHRoaXMuZHQudG9KU0RhdGUoKSl9Zm9ybWF0VG9QYXJ0cygpe3JldHVybiB0aGlzLmR0Zi5mb3JtYXRUb1BhcnRzKHRoaXMuZHQudG9KU0RhdGUoKSl9cmVzb2x2ZWRPcHRpb25zKCl7cmV0dXJuIHRoaXMuZHRmLnJlc29sdmVkT3B0aW9ucygpfX0sZ2k9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMub3B0cz1SKHtzdHlsZTpcXFwibG9uZ1xcXCJ9LHIpLCF0JiZIcigpJiYodGhpcy5ydGY9QWwoZSxyKSl9Zm9ybWF0KGUsdCl7cmV0dXJuIHRoaXMucnRmP3RoaXMucnRmLmZvcm1hdChlLHQpOktvKHQsZSx0aGlzLm9wdHMubnVtZXJpYyx0aGlzLm9wdHMuc3R5bGUhPT1cXFwibG9uZ1xcXCIpfWZvcm1hdFRvUGFydHMoZSx0KXtyZXR1cm4gdGhpcy5ydGY/dGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhlLHQpOltdfX0sbmU9Y2xhc3MgbntzdGF0aWMgZnJvbU9wdHMoZSl7cmV0dXJuIG4uY3JlYXRlKGUubG9jYWxlLGUubnVtYmVyaW5nU3lzdGVtLGUub3V0cHV0Q2FsZW5kYXIsZS5kZWZhdWx0VG9FTil9c3RhdGljIGNyZWF0ZShlLHQscixzPSExKXtsZXQgaT1lfHxYLmRlZmF1bHRMb2NhbGUsbz1pfHwocz9cXFwiZW4tVVNcXFwiOk1sKCkpLGE9dHx8WC5kZWZhdWx0TnVtYmVyaW5nU3lzdGVtLHU9cnx8WC5kZWZhdWx0T3V0cHV0Q2FsZW5kYXI7cmV0dXJuIG5ldyBuKG8sYSx1LGkpfXN0YXRpYyByZXNldENhY2hlKCl7dXI9bnVsbCxkaT17fSxwaT17fSxtaT17fX1zdGF0aWMgZnJvbU9iamVjdCh7bG9jYWxlOmUsbnVtYmVyaW5nU3lzdGVtOnQsb3V0cHV0Q2FsZW5kYXI6cn09e30pe3JldHVybiBuLmNyZWF0ZShlLHQscil9Y29uc3RydWN0b3IoZSx0LHIscyl7bGV0W2ksbyxhXT1fbChlKTt0aGlzLmxvY2FsZT1pLHRoaXMubnVtYmVyaW5nU3lzdGVtPXR8fG98fG51bGwsdGhpcy5vdXRwdXRDYWxlbmRhcj1yfHxhfHxudWxsLHRoaXMuaW50bD1CbCh0aGlzLmxvY2FsZSx0aGlzLm51bWJlcmluZ1N5c3RlbSx0aGlzLm91dHB1dENhbGVuZGFyKSx0aGlzLndlZWtkYXlzQ2FjaGU9e2Zvcm1hdDp7fSxzdGFuZGFsb25lOnt9fSx0aGlzLm1vbnRoc0NhY2hlPXtmb3JtYXQ6e30sc3RhbmRhbG9uZTp7fX0sdGhpcy5tZXJpZGllbUNhY2hlPW51bGwsdGhpcy5lcmFDYWNoZT17fSx0aGlzLnNwZWNpZmllZExvY2FsZT1zLHRoaXMuZmFzdE51bWJlcnNDYWNoZWQ9bnVsbH1nZXQgZmFzdE51bWJlcnMoKXtyZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZD09bnVsbCYmKHRoaXMuZmFzdE51bWJlcnNDYWNoZWQ9UmwodGhpcykpLHRoaXMuZmFzdE51bWJlcnNDYWNoZWR9bGlzdGluZ01vZGUoKXtsZXQgZT10aGlzLmlzRW5nbGlzaCgpLHQ9KHRoaXMubnVtYmVyaW5nU3lzdGVtPT09bnVsbHx8dGhpcy5udW1iZXJpbmdTeXN0ZW09PT1cXFwibGF0blxcXCIpJiYodGhpcy5vdXRwdXRDYWxlbmRhcj09PW51bGx8fHRoaXMub3V0cHV0Q2FsZW5kYXI9PT1cXFwiZ3JlZ29yeVxcXCIpO3JldHVybiBlJiZ0P1xcXCJlblxcXCI6XFxcImludGxcXFwifWNsb25lKGUpe3JldHVybiFlfHxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5sZW5ndGg9PT0wP3RoaXM6bi5jcmVhdGUoZS5sb2NhbGV8fHRoaXMuc3BlY2lmaWVkTG9jYWxlLGUubnVtYmVyaW5nU3lzdGVtfHx0aGlzLm51bWJlcmluZ1N5c3RlbSxlLm91dHB1dENhbGVuZGFyfHx0aGlzLm91dHB1dENhbGVuZGFyLGUuZGVmYXVsdFRvRU58fCExKX1yZWRlZmF1bHRUb0VOKGU9e30pe3JldHVybiB0aGlzLmNsb25lKHllKFIoe30sZSkse2RlZmF1bHRUb0VOOiEwfSkpfXJlZGVmYXVsdFRvU3lzdGVtKGU9e30pe3JldHVybiB0aGlzLmNsb25lKHllKFIoe30sZSkse2RlZmF1bHRUb0VOOiExfSkpfW1vbnRocyhlLHQ9ITEscj0hMCl7cmV0dXJuIEdyKHRoaXMsZSxyLHJpLCgpPT57bGV0IHM9dD97bW9udGg6ZSxkYXk6XFxcIm51bWVyaWNcXFwifTp7bW9udGg6ZX0saT10P1xcXCJmb3JtYXRcXFwiOlxcXCJzdGFuZGFsb25lXFxcIjtyZXR1cm4gdGhpcy5tb250aHNDYWNoZVtpXVtlXXx8KHRoaXMubW9udGhzQ2FjaGVbaV1bZV09UGwobz0+dGhpcy5leHRyYWN0KG8scyxcXFwibW9udGhcXFwiKSkpLHRoaXMubW9udGhzQ2FjaGVbaV1bZV19KX13ZWVrZGF5cyhlLHQ9ITEscj0hMCl7cmV0dXJuIEdyKHRoaXMsZSxyLG9pLCgpPT57bGV0IHM9dD97d2Vla2RheTplLHllYXI6XFxcIm51bWVyaWNcXFwiLG1vbnRoOlxcXCJsb25nXFxcIixkYXk6XFxcIm51bWVyaWNcXFwifTp7d2Vla2RheTplfSxpPXQ/XFxcImZvcm1hdFxcXCI6XFxcInN0YW5kYWxvbmVcXFwiO3JldHVybiB0aGlzLndlZWtkYXlzQ2FjaGVbaV1bZV18fCh0aGlzLndlZWtkYXlzQ2FjaGVbaV1bZV09JGwobz0+dGhpcy5leHRyYWN0KG8scyxcXFwid2Vla2RheVxcXCIpKSksdGhpcy53ZWVrZGF5c0NhY2hlW2ldW2VdfSl9bWVyaWRpZW1zKGU9ITApe3JldHVybiBHcih0aGlzLHZvaWQgMCxlLCgpPT5haSwoKT0+e2lmKCF0aGlzLm1lcmlkaWVtQ2FjaGUpe2xldCB0PXtob3VyOlxcXCJudW1lcmljXFxcIixob3VyQ3ljbGU6XFxcImgxMlxcXCJ9O3RoaXMubWVyaWRpZW1DYWNoZT1bcS51dGMoMjAxNiwxMSwxMyw5KSxxLnV0YygyMDE2LDExLDEzLDE5KV0ubWFwKHI9PnRoaXMuZXh0cmFjdChyLHQsXFxcImRheXBlcmlvZFxcXCIpKX1yZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlfSl9ZXJhcyhlLHQ9ITApe3JldHVybiBHcih0aGlzLGUsdCx1aSwoKT0+e2xldCByPXtlcmE6ZX07cmV0dXJuIHRoaXMuZXJhQ2FjaGVbZV18fCh0aGlzLmVyYUNhY2hlW2VdPVtxLnV0YygtNDAsMSwxKSxxLnV0YygyMDE3LDEsMSldLm1hcChzPT50aGlzLmV4dHJhY3QocyxyLFxcXCJlcmFcXFwiKSkpLHRoaXMuZXJhQ2FjaGVbZV19KX1leHRyYWN0KGUsdCxyKXtsZXQgcz10aGlzLmR0Rm9ybWF0dGVyKGUsdCksaT1zLmZvcm1hdFRvUGFydHMoKSxvPWkuZmluZChhPT5hLnR5cGUudG9Mb3dlckNhc2UoKT09PXIpO3JldHVybiBvP28udmFsdWU6bnVsbH1udW1iZXJGb3JtYXR0ZXIoZT17fSl7cmV0dXJuIG5ldyBEaSh0aGlzLmludGwsZS5mb3JjZVNpbXBsZXx8dGhpcy5mYXN0TnVtYmVycyxlKX1kdEZvcm1hdHRlcihlLHQ9e30pe3JldHVybiBuZXcgeWkoZSx0aGlzLmludGwsdCl9cmVsRm9ybWF0dGVyKGU9e30pe3JldHVybiBuZXcgZ2kodGhpcy5pbnRsLHRoaXMuaXNFbmdsaXNoKCksZSl9bGlzdEZvcm1hdHRlcihlPXt9KXtyZXR1cm4gTGwodGhpcy5pbnRsLGUpfWlzRW5nbGlzaCgpe3JldHVybiB0aGlzLmxvY2FsZT09PVxcXCJlblxcXCJ8fHRoaXMubG9jYWxlLnRvTG93ZXJDYXNlKCk9PT1cXFwiZW4tdXNcXFwifHxuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmludGwpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZS5zdGFydHNXaXRoKFxcXCJlbi11c1xcXCIpfWVxdWFscyhlKXtyZXR1cm4gdGhpcy5sb2NhbGU9PT1lLmxvY2FsZSYmdGhpcy5udW1iZXJpbmdTeXN0ZW09PT1lLm51bWJlcmluZ1N5c3RlbSYmdGhpcy5vdXRwdXRDYWxlbmRhcj09PWUub3V0cHV0Q2FsZW5kYXJ9fTtmdW5jdGlvbiBwbiguLi5uKXtsZXQgZT1uLnJlZHVjZSgodCxyKT0+dCtyLnNvdXJjZSxcXFwiXFxcIik7cmV0dXJuIFJlZ0V4cChgXiR7ZX0kYCl9ZnVuY3Rpb24gbW4oLi4ubil7cmV0dXJuIGU9Pm4ucmVkdWNlKChbdCxyLHNdLGkpPT57bGV0W28sYSx1XT1pKGUscyk7cmV0dXJuW1IoUih7fSx0KSxvKSxhfHxyLHVdfSxbe30sbnVsbCwxXSkuc2xpY2UoMCwyKX1mdW5jdGlvbiBEbihuLC4uLmUpe2lmKG49PW51bGwpcmV0dXJuW251bGwsbnVsbF07Zm9yKGxldFt0LHJdb2YgZSl7bGV0IHM9dC5leGVjKG4pO2lmKHMpcmV0dXJuIHIocyl9cmV0dXJuW251bGwsbnVsbF19ZnVuY3Rpb24gZWEoLi4ubil7cmV0dXJuKGUsdCk9PntsZXQgcj17fSxzO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspcltuW3NdXT1EdChlW3Qrc10pO3JldHVybltyLG51bGwsdCtzXX19dmFyIHRhPS8oPzooWil8KFsrLV1cXFxcZFxcXFxkKSg/Ojo/KFxcXFxkXFxcXGQpKT8pLyxqbD1gKD86JHt0YS5zb3VyY2V9Pyg/OlxcXFxcXFxcWygke3RpLnNvdXJjZX0pXFxcXFxcXFxdKT8pP2AsYmk9LyhcXFxcZFxcXFxkKSg/Ojo/KFxcXFxkXFxcXGQpKD86Oj8oXFxcXGRcXFxcZCkoPzpbLixdKFxcXFxkezEsMzB9KSk/KT8pPy8sbmE9UmVnRXhwKGAke2JpLnNvdXJjZX0ke2psfWApLEZpPVJlZ0V4cChgKD86VCR7bmEuc291cmNlfSk/YCkscWw9LyhbKy1dXFxcXGR7Nn18XFxcXGR7NH0pKD86LT8oXFxcXGRcXFxcZCkoPzotPyhcXFxcZFxcXFxkKSk/KT8vLFZsPS8oXFxcXGR7NH0pLT9XKFxcXFxkXFxcXGQpKD86LT8oXFxcXGQpKT8vLFVsPS8oXFxcXGR7NH0pLT8oXFxcXGR7M30pLyxLbD1lYShcXFwid2Vla1llYXJcXFwiLFxcXCJ3ZWVrTnVtYmVyXFxcIixcXFwid2Vla0RheVxcXCIpLFdsPWVhKFxcXCJ5ZWFyXFxcIixcXFwib3JkaW5hbFxcXCIpLEhsPS8oXFxcXGR7NH0pLShcXFxcZFxcXFxkKS0oXFxcXGRcXFxcZCkvLHJhPVJlZ0V4cChgJHtiaS5zb3VyY2V9ID8oPzoke3RhLnNvdXJjZX18KCR7dGkuc291cmNlfSkpP2ApLEpsPVJlZ0V4cChgKD86ICR7cmEuc291cmNlfSk/YCk7ZnVuY3Rpb24gaG4obixlLHQpe2xldCByPW5bZV07cmV0dXJuIFcocik/dDpEdChyKX1mdW5jdGlvbiB6bChuLGUpe3JldHVyblt7eWVhcjpobihuLGUpLG1vbnRoOmhuKG4sZSsxLDEpLGRheTpobihuLGUrMiwxKX0sbnVsbCxlKzNdfWZ1bmN0aW9uIHluKG4sZSl7cmV0dXJuW3tob3VyczpobihuLGUsMCksbWludXRlczpobihuLGUrMSwwKSxzZWNvbmRzOmhuKG4sZSsyLDApLG1pbGxpc2Vjb25kczpzcihuW2UrM10pfSxudWxsLGUrNF19ZnVuY3Rpb24gbHIobixlKXtsZXQgdD0hbltlXSYmIW5bZSsxXSxyPVZ0KG5bZSsxXSxuW2UrMl0pLHM9dD9udWxsOmhlLmluc3RhbmNlKHIpO3JldHVyblt7fSxzLGUrM119ZnVuY3Rpb24gY3IobixlKXtsZXQgdD1uW2VdP2dlLmNyZWF0ZShuW2VdKTpudWxsO3JldHVyblt7fSx0LGUrMV19dmFyIFlsPVJlZ0V4cChgXlQ/JHtiaS5zb3VyY2V9JGApLEdsPS9eLT9QKD86KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pWSk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pTSk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pVyk/KD86KC0/XFxcXGR7MSwyMH0oPzpcXFxcLlxcXFxkezEsMjB9KT8pRCk/KD86VCg/OigtP1xcXFxkezEsMjB9KD86XFxcXC5cXFxcZHsxLDIwfSk/KUgpPyg/OigtP1xcXFxkezEsMjB9KD86XFxcXC5cXFxcZHsxLDIwfSk/KU0pPyg/OigtP1xcXFxkezEsMjB9KSg/OlsuLF0oLT9cXFxcZHsxLDIwfSkpP1MpPyk/KSQvO2Z1bmN0aW9uIFpsKG4pe2xldFtlLHQscixzLGksbyxhLHUsbF09bixmPWVbMF09PT1cXFwiLVxcXCIsZD11JiZ1WzBdPT09XFxcIi1cXFwiLHA9KGgsYj0hMSk9PmghPT12b2lkIDAmJihifHxoJiZmKT8taDpoO3JldHVyblt7eWVhcnM6cChDdCh0KSksbW9udGhzOnAoQ3QocikpLHdlZWtzOnAoQ3QocykpLGRheXM6cChDdChpKSksaG91cnM6cChDdChvKSksbWludXRlczpwKEN0KGEpKSxzZWNvbmRzOnAoQ3QodSksdT09PVxcXCItMFxcXCIpLG1pbGxpc2Vjb25kczpwKHNyKGwpLGQpfV19dmFyIFFsPXtHTVQ6MCxFRFQ6LTQqNjAsRVNUOi01KjYwLENEVDotNSo2MCxDU1Q6LTYqNjAsTURUOi02KjYwLE1TVDotNyo2MCxQRFQ6LTcqNjAsUFNUOi04KjYwfTtmdW5jdGlvbiBFaShuLGUsdCxyLHMsaSxvKXtsZXQgYT17eWVhcjplLmxlbmd0aD09PTI/b3IoRHQoZSkpOkR0KGUpLG1vbnRoOm5pLmluZGV4T2YodCkrMSxkYXk6RHQociksaG91cjpEdChzKSxtaW51dGU6RHQoaSl9O3JldHVybiBvJiYoYS5zZWNvbmQ9RHQobykpLG4mJihhLndlZWtkYXk9bi5sZW5ndGg+Mz9zaS5pbmRleE9mKG4pKzE6aWkuaW5kZXhPZihuKSsxKSxhfXZhciBYbD0vXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLFxcXFxzKT8oXFxcXGR7MSwyfSlcXFxccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylcXFxccyhcXFxcZHsyLDR9KVxcXFxzKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKSg/OjooXFxcXGRcXFxcZCkpP1xcXFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxcXGRcXFxcZCkoXFxcXGRcXFxcZCkpKSQvO2Z1bmN0aW9uIGVjKG4pe2xldFssZSx0LHIscyxpLG8sYSx1LGwsZixkXT1uLHA9RWkoZSxzLHIsdCxpLG8sYSksaDtyZXR1cm4gdT9oPVFsW3VdOmw/aD0wOmg9VnQoZixkKSxbcCxuZXcgaGUoaCldfWZ1bmN0aW9uIHRjKG4pe3JldHVybiBuLnJlcGxhY2UoL1xcXFwoW14oKV0qXFxcXCl8W1xcXFxuXFxcXHRdL2csXFxcIiBcXFwiKS5yZXBsYWNlKC8oXFxcXHNcXFxccyspL2csXFxcIiBcXFwiKS50cmltKCl9dmFyIG5jPS9eKE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksIChcXFxcZFxcXFxkKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpIChcXFxcZHs0fSkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgR01UJC8scmM9L14oTW9uZGF5fFR1ZXNkYXl8V2VkbmVzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXFxcXGRcXFxcZCktKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKS0oXFxcXGRcXFxcZCkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgR01UJC8sc2M9L14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpICggXFxcXGR8XFxcXGRcXFxcZCkgKFxcXFxkXFxcXGQpOihcXFxcZFxcXFxkKTooXFxcXGRcXFxcZCkgKFxcXFxkezR9KSQvO2Z1bmN0aW9uIFhvKG4pe2xldFssZSx0LHIscyxpLG8sYV09bjtyZXR1cm5bRWkoZSxzLHIsdCxpLG8sYSksaGUudXRjSW5zdGFuY2VdfWZ1bmN0aW9uIGljKG4pe2xldFssZSx0LHIscyxpLG8sYV09bjtyZXR1cm5bRWkoZSxhLHQscixzLGksbyksaGUudXRjSW5zdGFuY2VdfXZhciBvYz1wbihxbCxGaSksYWM9cG4oVmwsRmkpLHVjPXBuKFVsLEZpKSxsYz1wbihuYSksc2E9bW4oemwseW4sbHIsY3IpLGNjPW1uKEtsLHluLGxyLGNyKSxmYz1tbihXbCx5bixscixjciksZGM9bW4oeW4sbHIsY3IpO2Z1bmN0aW9uIGlhKG4pe3JldHVybiBEbihuLFtvYyxzYV0sW2FjLGNjXSxbdWMsZmNdLFtsYyxkY10pfWZ1bmN0aW9uIG9hKG4pe3JldHVybiBEbih0YyhuKSxbWGwsZWNdKX1mdW5jdGlvbiBhYShuKXtyZXR1cm4gRG4obixbbmMsWG9dLFtyYyxYb10sW3NjLGljXSl9ZnVuY3Rpb24gdWEobil7cmV0dXJuIERuKG4sW0dsLFpsXSl9dmFyIGhjPW1uKHluKTtmdW5jdGlvbiBsYShuKXtyZXR1cm4gRG4obixbWWwsaGNdKX12YXIgcGM9cG4oSGwsSmwpLG1jPXBuKHJhKSxEYz1tbih5bixscixjcik7ZnVuY3Rpb24gY2Eobil7cmV0dXJuIERuKG4sW3BjLHNhXSxbbWMsRGNdKX12YXIgeWM9XFxcIkludmFsaWQgRHVyYXRpb25cXFwiLGZhPXt3ZWVrczp7ZGF5czo3LGhvdXJzOjcqMjQsbWludXRlczo3KjI0KjYwLHNlY29uZHM6NyoyNCo2MCo2MCxtaWxsaXNlY29uZHM6NyoyNCo2MCo2MCoxZTN9LGRheXM6e2hvdXJzOjI0LG1pbnV0ZXM6MjQqNjAsc2Vjb25kczoyNCo2MCo2MCxtaWxsaXNlY29uZHM6MjQqNjAqNjAqMWUzfSxob3Vyczp7bWludXRlczo2MCxzZWNvbmRzOjYwKjYwLG1pbGxpc2Vjb25kczo2MCo2MCoxZTN9LG1pbnV0ZXM6e3NlY29uZHM6NjAsbWlsbGlzZWNvbmRzOjYwKjFlM30sc2Vjb25kczp7bWlsbGlzZWNvbmRzOjFlM319LGdjPVIoe3llYXJzOntxdWFydGVyczo0LG1vbnRoczoxMix3ZWVrczo1MixkYXlzOjM2NSxob3VyczozNjUqMjQsbWludXRlczozNjUqMjQqNjAsc2Vjb25kczozNjUqMjQqNjAqNjAsbWlsbGlzZWNvbmRzOjM2NSoyNCo2MCo2MCoxZTN9LHF1YXJ0ZXJzOnttb250aHM6Myx3ZWVrczoxMyxkYXlzOjkxLGhvdXJzOjkxKjI0LG1pbnV0ZXM6OTEqMjQqNjAsc2Vjb25kczo5MSoyNCo2MCo2MCxtaWxsaXNlY29uZHM6OTEqMjQqNjAqNjAqMWUzfSxtb250aHM6e3dlZWtzOjQsZGF5czozMCxob3VyczozMCoyNCxtaW51dGVzOjMwKjI0KjYwLHNlY29uZHM6MzAqMjQqNjAqNjAsbWlsbGlzZWNvbmRzOjMwKjI0KjYwKjYwKjFlM319LGZhKSxNZT0xNDYwOTcvNDAwLGduPTE0NjA5Ny80ODAwLGJjPVIoe3llYXJzOntxdWFydGVyczo0LG1vbnRoczoxMix3ZWVrczpNZS83LGRheXM6TWUsaG91cnM6TWUqMjQsbWludXRlczpNZSoyNCo2MCxzZWNvbmRzOk1lKjI0KjYwKjYwLG1pbGxpc2Vjb25kczpNZSoyNCo2MCo2MCoxZTN9LHF1YXJ0ZXJzOnttb250aHM6Myx3ZWVrczpNZS8yOCxkYXlzOk1lLzQsaG91cnM6TWUqMjQvNCxtaW51dGVzOk1lKjI0KjYwLzQsc2Vjb25kczpNZSoyNCo2MCo2MC80LG1pbGxpc2Vjb25kczpNZSoyNCo2MCo2MCoxZTMvNH0sbW9udGhzOnt3ZWVrczpnbi83LGRheXM6Z24saG91cnM6Z24qMjQsbWludXRlczpnbioyNCo2MCxzZWNvbmRzOmduKjI0KjYwKjYwLG1pbGxpc2Vjb25kczpnbioyNCo2MCo2MCoxZTN9fSxmYSksS3Q9W1xcXCJ5ZWFyc1xcXCIsXFxcInF1YXJ0ZXJzXFxcIixcXFwibW9udGhzXFxcIixcXFwid2Vla3NcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCJdLEZjPUt0LnNsaWNlKDApLnJldmVyc2UoKTtmdW5jdGlvbiBVdChuLGUsdD0hMSl7bGV0IHI9e3ZhbHVlczp0P2UudmFsdWVzOlIoUih7fSxuLnZhbHVlcyksZS52YWx1ZXN8fHt9KSxsb2M6bi5sb2MuY2xvbmUoZS5sb2MpLGNvbnZlcnNpb25BY2N1cmFjeTplLmNvbnZlcnNpb25BY2N1cmFjeXx8bi5jb252ZXJzaW9uQWNjdXJhY3l9O3JldHVybiBuZXcgQihyKX1mdW5jdGlvbiBFYyhuKXtyZXR1cm4gbjwwP01hdGguZmxvb3Iobik6TWF0aC5jZWlsKG4pfWZ1bmN0aW9uIGRhKG4sZSx0LHIscyl7bGV0IGk9bltzXVt0XSxvPWVbdF0vaSxhPU1hdGguc2lnbihvKT09PU1hdGguc2lnbihyW3NdKSx1PSFhJiZyW3NdIT09MCYmTWF0aC5hYnMobyk8PTE/RWMobyk6TWF0aC50cnVuYyhvKTtyW3NdKz11LGVbdF0tPXUqaX1mdW5jdGlvbiB3YyhuLGUpe0ZjLnJlZHVjZSgodCxyKT0+VyhlW3JdKT90Oih0JiZkYShuLGUsdCxlLHIpLHIpLG51bGwpfXZhciBCPWNsYXNzIG57Y29uc3RydWN0b3IoZSl7bGV0IHQ9ZS5jb252ZXJzaW9uQWNjdXJhY3k9PT1cXFwibG9uZ3Rlcm1cXFwifHwhMTt0aGlzLnZhbHVlcz1lLnZhbHVlcyx0aGlzLmxvYz1lLmxvY3x8bmUuY3JlYXRlKCksdGhpcy5jb252ZXJzaW9uQWNjdXJhY3k9dD9cXFwibG9uZ3Rlcm1cXFwiOlxcXCJjYXN1YWxcXFwiLHRoaXMuaW52YWxpZD1lLmludmFsaWR8fG51bGwsdGhpcy5tYXRyaXg9dD9iYzpnYyx0aGlzLmlzTHV4b25EdXJhdGlvbj0hMH1zdGF0aWMgZnJvbU1pbGxpcyhlLHQpe3JldHVybiBuLmZyb21PYmplY3Qoe21pbGxpc2Vjb25kczplfSx0KX1zdGF0aWMgZnJvbU9iamVjdChlLHQ9e30pe2lmKGU9PW51bGx8fHR5cGVvZiBlIT1cXFwib2JqZWN0XFxcIil0aHJvdyBuZXcgZmUoYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7ZT09PW51bGw/XFxcIm51bGxcXFwiOnR5cGVvZiBlfWApO3JldHVybiBuZXcgbih7dmFsdWVzOmNuKGUsbi5ub3JtYWxpemVVbml0KSxsb2M6bmUuZnJvbU9iamVjdCh0KSxjb252ZXJzaW9uQWNjdXJhY3k6dC5jb252ZXJzaW9uQWNjdXJhY3l9KX1zdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShlKXtpZih0dChlKSlyZXR1cm4gbi5mcm9tTWlsbGlzKGUpO2lmKG4uaXNEdXJhdGlvbihlKSlyZXR1cm4gZTtpZih0eXBlb2YgZT09XFxcIm9iamVjdFxcXCIpcmV0dXJuIG4uZnJvbU9iamVjdChlKTt0aHJvdyBuZXcgZmUoYFVua25vd24gZHVyYXRpb24gYXJndW1lbnQgJHtlfSBvZiB0eXBlICR7dHlwZW9mIGV9YCl9c3RhdGljIGZyb21JU08oZSx0KXtsZXRbcl09dWEoZSk7cmV0dXJuIHI/bi5mcm9tT2JqZWN0KHIsdCk6bi5pbnZhbGlkKFxcXCJ1bnBhcnNhYmxlXFxcIixgdGhlIGlucHV0IFxcXCIke2V9XFxcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKX1zdGF0aWMgZnJvbUlTT1RpbWUoZSx0KXtsZXRbcl09bGEoZSk7cmV0dXJuIHI/bi5mcm9tT2JqZWN0KHIsdCk6bi5pbnZhbGlkKFxcXCJ1bnBhcnNhYmxlXFxcIixgdGhlIGlucHV0IFxcXCIke2V9XFxcIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKX1zdGF0aWMgaW52YWxpZChlLHQ9bnVsbCl7aWYoIWUpdGhyb3cgbmV3IGZlKFxcXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIER1cmF0aW9uIGlzIGludmFsaWRcXFwiKTtsZXQgcj1lIGluc3RhbmNlb2YgZGU/ZTpuZXcgZGUoZSx0KTtpZihYLnRocm93T25JbnZhbGlkKXRocm93IG5ldyBXcihyKTtyZXR1cm4gbmV3IG4oe2ludmFsaWQ6cn0pfXN0YXRpYyBub3JtYWxpemVVbml0KGUpe2xldCB0PXt5ZWFyOlxcXCJ5ZWFyc1xcXCIseWVhcnM6XFxcInllYXJzXFxcIixxdWFydGVyOlxcXCJxdWFydGVyc1xcXCIscXVhcnRlcnM6XFxcInF1YXJ0ZXJzXFxcIixtb250aDpcXFwibW9udGhzXFxcIixtb250aHM6XFxcIm1vbnRoc1xcXCIsd2VlazpcXFwid2Vla3NcXFwiLHdlZWtzOlxcXCJ3ZWVrc1xcXCIsZGF5OlxcXCJkYXlzXFxcIixkYXlzOlxcXCJkYXlzXFxcIixob3VyOlxcXCJob3Vyc1xcXCIsaG91cnM6XFxcImhvdXJzXFxcIixtaW51dGU6XFxcIm1pbnV0ZXNcXFwiLG1pbnV0ZXM6XFxcIm1pbnV0ZXNcXFwiLHNlY29uZDpcXFwic2Vjb25kc1xcXCIsc2Vjb25kczpcXFwic2Vjb25kc1xcXCIsbWlsbGlzZWNvbmQ6XFxcIm1pbGxpc2Vjb25kc1xcXCIsbWlsbGlzZWNvbmRzOlxcXCJtaWxsaXNlY29uZHNcXFwifVtlJiZlLnRvTG93ZXJDYXNlKCldO2lmKCF0KXRocm93IG5ldyBzbihlKTtyZXR1cm4gdH1zdGF0aWMgaXNEdXJhdGlvbihlKXtyZXR1cm4gZSYmZS5pc0x1eG9uRHVyYXRpb258fCExfWdldCBsb2NhbGUoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMubG9jLmxvY2FsZTpudWxsfWdldCBudW1iZXJpbmdTeXN0ZW0oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMubG9jLm51bWJlcmluZ1N5c3RlbTpudWxsfXRvRm9ybWF0KGUsdD17fSl7bGV0IHI9eWUoUih7fSx0KSx7Zmxvb3I6dC5yb3VuZCE9PSExJiZ0LmZsb29yIT09ITF9KTtyZXR1cm4gdGhpcy5pc1ZhbGlkP3dlLmNyZWF0ZSh0aGlzLmxvYyxyKS5mb3JtYXREdXJhdGlvbkZyb21TdHJpbmcodGhpcyxlKTp5Y310b0h1bWFuKGU9e30pe2xldCB0PUt0Lm1hcChyPT57bGV0IHM9dGhpcy52YWx1ZXNbcl07cmV0dXJuIFcocyk/bnVsbDp0aGlzLmxvYy5udW1iZXJGb3JtYXR0ZXIoeWUoUih7c3R5bGU6XFxcInVuaXRcXFwiLHVuaXREaXNwbGF5OlxcXCJsb25nXFxcIn0sZSkse3VuaXQ6ci5zbGljZSgwLC0xKX0pKS5mb3JtYXQocyl9KS5maWx0ZXIocj0+cik7cmV0dXJuIHRoaXMubG9jLmxpc3RGb3JtYXR0ZXIoUih7dHlwZTpcXFwiY29uanVuY3Rpb25cXFwiLHN0eWxlOmUubGlzdFN0eWxlfHxcXFwibmFycm93XFxcIn0sZSkpLmZvcm1hdCh0KX10b09iamVjdCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/Uih7fSx0aGlzLnZhbHVlcyk6e319dG9JU08oKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiBudWxsO2xldCBlPVxcXCJQXFxcIjtyZXR1cm4gdGhpcy55ZWFycyE9PTAmJihlKz10aGlzLnllYXJzK1xcXCJZXFxcIiksKHRoaXMubW9udGhzIT09MHx8dGhpcy5xdWFydGVycyE9PTApJiYoZSs9dGhpcy5tb250aHMrdGhpcy5xdWFydGVycyozK1xcXCJNXFxcIiksdGhpcy53ZWVrcyE9PTAmJihlKz10aGlzLndlZWtzK1xcXCJXXFxcIiksdGhpcy5kYXlzIT09MCYmKGUrPXRoaXMuZGF5cytcXFwiRFxcXCIpLCh0aGlzLmhvdXJzIT09MHx8dGhpcy5taW51dGVzIT09MHx8dGhpcy5zZWNvbmRzIT09MHx8dGhpcy5taWxsaXNlY29uZHMhPT0wKSYmKGUrPVxcXCJUXFxcIiksdGhpcy5ob3VycyE9PTAmJihlKz10aGlzLmhvdXJzK1xcXCJIXFxcIiksdGhpcy5taW51dGVzIT09MCYmKGUrPXRoaXMubWludXRlcytcXFwiTVxcXCIpLCh0aGlzLnNlY29uZHMhPT0wfHx0aGlzLm1pbGxpc2Vjb25kcyE9PTApJiYoZSs9YW4odGhpcy5zZWNvbmRzK3RoaXMubWlsbGlzZWNvbmRzLzFlMywzKStcXFwiU1xcXCIpLGU9PT1cXFwiUFxcXCImJihlKz1cXFwiVDBTXFxcIiksZX10b0lTT1RpbWUoZT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnRvTWlsbGlzKCk7aWYodDwwfHx0Pj04NjRlNSlyZXR1cm4gbnVsbDtlPVIoe3N1cHByZXNzTWlsbGlzZWNvbmRzOiExLHN1cHByZXNzU2Vjb25kczohMSxpbmNsdWRlUHJlZml4OiExLGZvcm1hdDpcXFwiZXh0ZW5kZWRcXFwifSxlKTtsZXQgcj10aGlzLnNoaWZ0VG8oXFxcImhvdXJzXFxcIixcXFwibWludXRlc1xcXCIsXFxcInNlY29uZHNcXFwiLFxcXCJtaWxsaXNlY29uZHNcXFwiKSxzPWUuZm9ybWF0PT09XFxcImJhc2ljXFxcIj9cXFwiaGhtbVxcXCI6XFxcImhoOm1tXFxcIjsoIWUuc3VwcHJlc3NTZWNvbmRzfHxyLnNlY29uZHMhPT0wfHxyLm1pbGxpc2Vjb25kcyE9PTApJiYocys9ZS5mb3JtYXQ9PT1cXFwiYmFzaWNcXFwiP1xcXCJzc1xcXCI6XFxcIjpzc1xcXCIsKCFlLnN1cHByZXNzTWlsbGlzZWNvbmRzfHxyLm1pbGxpc2Vjb25kcyE9PTApJiYocys9XFxcIi5TU1NcXFwiKSk7bGV0IGk9ci50b0Zvcm1hdChzKTtyZXR1cm4gZS5pbmNsdWRlUHJlZml4JiYoaT1cXFwiVFxcXCIraSksaX10b0pTT04oKXtyZXR1cm4gdGhpcy50b0lTTygpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9JU08oKX10b01pbGxpcygpe3JldHVybiB0aGlzLmFzKFxcXCJtaWxsaXNlY29uZHNcXFwiKX12YWx1ZU9mKCl7cmV0dXJuIHRoaXMudG9NaWxsaXMoKX1wbHVzKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9bi5mcm9tRHVyYXRpb25MaWtlKGUpLHI9e307Zm9yKGxldCBzIG9mIEt0KShrdCh0LnZhbHVlcyxzKXx8a3QodGhpcy52YWx1ZXMscykpJiYocltzXT10LmdldChzKSt0aGlzLmdldChzKSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczpyfSwhMCl9bWludXMoZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgdD1uLmZyb21EdXJhdGlvbkxpa2UoZSk7cmV0dXJuIHRoaXMucGx1cyh0Lm5lZ2F0ZSgpKX1tYXBVbml0cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PXt9O2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykpdFtyXT1laShlKHRoaXMudmFsdWVzW3JdLHIpKTtyZXR1cm4gVXQodGhpcyx7dmFsdWVzOnR9LCEwKX1nZXQoZSl7cmV0dXJuIHRoaXNbbi5ub3JtYWxpemVVbml0KGUpXX1zZXQoZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgdD1SKFIoe30sdGhpcy52YWx1ZXMpLGNuKGUsbi5ub3JtYWxpemVVbml0KSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczp0fSl9cmVjb25maWd1cmUoe2xvY2FsZTplLG51bWJlcmluZ1N5c3RlbTp0LGNvbnZlcnNpb25BY2N1cmFjeTpyfT17fSl7bGV0IHM9dGhpcy5sb2MuY2xvbmUoe2xvY2FsZTplLG51bWJlcmluZ1N5c3RlbTp0fSksaT17bG9jOnN9O3JldHVybiByJiYoaS5jb252ZXJzaW9uQWNjdXJhY3k9ciksVXQodGhpcyxpKX1hcyhlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuc2hpZnRUbyhlKS5nZXQoZSk6TmFOfW5vcm1hbGl6ZSgpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IGU9dGhpcy50b09iamVjdCgpO3JldHVybiB3Yyh0aGlzLm1hdHJpeCxlKSxVdCh0aGlzLHt2YWx1ZXM6ZX0sITApfXNoaWZ0VG8oLi4uZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztpZihlLmxlbmd0aD09PTApcmV0dXJuIHRoaXM7ZT1lLm1hcChvPT5uLm5vcm1hbGl6ZVVuaXQobykpO2xldCB0PXt9LHI9e30scz10aGlzLnRvT2JqZWN0KCksaTtmb3IobGV0IG8gb2YgS3QpaWYoZS5pbmRleE9mKG8pPj0wKXtpPW87bGV0IGE9MDtmb3IobGV0IGwgaW4gcilhKz10aGlzLm1hdHJpeFtsXVtvXSpyW2xdLHJbbF09MDt0dChzW29dKSYmKGErPXNbb10pO2xldCB1PU1hdGgudHJ1bmMoYSk7dFtvXT11LHJbb109KGEqMWUzLXUqMWUzKS8xZTM7Zm9yKGxldCBsIGluIHMpS3QuaW5kZXhPZihsKT5LdC5pbmRleE9mKG8pJiZkYSh0aGlzLm1hdHJpeCxzLGwsdCxvKX1lbHNlIHR0KHNbb10pJiYocltvXT1zW29dKTtmb3IobGV0IG8gaW4gcilyW29dIT09MCYmKHRbaV0rPW89PT1pP3Jbb106cltvXS90aGlzLm1hdHJpeFtpXVtvXSk7cmV0dXJuIFV0KHRoaXMse3ZhbHVlczp0fSwhMCkubm9ybWFsaXplKCl9bmVnYXRlKCl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gdGhpcztsZXQgZT17fTtmb3IobGV0IHQgb2YgT2JqZWN0LmtleXModGhpcy52YWx1ZXMpKWVbdF09dGhpcy52YWx1ZXNbdF09PT0wPzA6LXRoaXMudmFsdWVzW3RdO3JldHVybiBVdCh0aGlzLHt2YWx1ZXM6ZX0sITApfWdldCB5ZWFycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMueWVhcnN8fDA6TmFOfWdldCBxdWFydGVycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMucXVhcnRlcnN8fDA6TmFOfWdldCBtb250aHMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudmFsdWVzLm1vbnRoc3x8MDpOYU59Z2V0IHdlZWtzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnZhbHVlcy53ZWVrc3x8MDpOYU59Z2V0IGRheXMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudmFsdWVzLmRheXN8fDA6TmFOfWdldCBob3Vycygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMuaG91cnN8fDA6TmFOfWdldCBtaW51dGVzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnZhbHVlcy5taW51dGVzfHwwOk5hTn1nZXQgc2Vjb25kcygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMuc2Vjb25kc3x8MDpOYU59Z2V0IG1pbGxpc2Vjb25kcygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy52YWx1ZXMubWlsbGlzZWNvbmRzfHwwOk5hTn1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWQ9PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9ZXF1YWxzKGUpe2lmKCF0aGlzLmlzVmFsaWR8fCFlLmlzVmFsaWR8fCF0aGlzLmxvYy5lcXVhbHMoZS5sb2MpKXJldHVybiExO2Z1bmN0aW9uIHQocixzKXtyZXR1cm4gcj09PXZvaWQgMHx8cj09PTA/cz09PXZvaWQgMHx8cz09PTA6cj09PXN9Zm9yKGxldCByIG9mIEt0KWlmKCF0KHRoaXMudmFsdWVzW3JdLGUudmFsdWVzW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH19O3ZhciBmcj1cXFwiSW52YWxpZCBJbnRlcnZhbFxcXCI7ZnVuY3Rpb24gVGMobixlKXtyZXR1cm4hbnx8IW4uaXNWYWxpZD95dC5pbnZhbGlkKFxcXCJtaXNzaW5nIG9yIGludmFsaWQgc3RhcnRcXFwiKTohZXx8IWUuaXNWYWxpZD95dC5pbnZhbGlkKFxcXCJtaXNzaW5nIG9yIGludmFsaWQgZW5kXFxcIik6ZTxuP3l0LmludmFsaWQoXFxcImVuZCBiZWZvcmUgc3RhcnRcXFwiLGBUaGUgZW5kIG9mIGFuIGludGVydmFsIG11c3QgYmUgYWZ0ZXIgaXRzIHN0YXJ0LCBidXQgeW91IGhhZCBzdGFydD0ke24udG9JU08oKX0gYW5kIGVuZD0ke2UudG9JU08oKX1gKTpudWxsfXZhciB5dD1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMucz1lLnN0YXJ0LHRoaXMuZT1lLmVuZCx0aGlzLmludmFsaWQ9ZS5pbnZhbGlkfHxudWxsLHRoaXMuaXNMdXhvbkludGVydmFsPSEwfXN0YXRpYyBpbnZhbGlkKGUsdD1udWxsKXtpZighZSl0aHJvdyBuZXcgZmUoXFxcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgSW50ZXJ2YWwgaXMgaW52YWxpZFxcXCIpO2xldCByPWUgaW5zdGFuY2VvZiBkZT9lOm5ldyBkZShlLHQpO2lmKFgudGhyb3dPbkludmFsaWQpdGhyb3cgbmV3IEtyKHIpO3JldHVybiBuZXcgbih7aW52YWxpZDpyfSl9c3RhdGljIGZyb21EYXRlVGltZXMoZSx0KXtsZXQgcj1ibihlKSxzPWJuKHQpLGk9VGMocixzKTtyZXR1cm4gaT09bnVsbD9uZXcgbih7c3RhcnQ6cixlbmQ6c30pOml9c3RhdGljIGFmdGVyKGUsdCl7bGV0IHI9Qi5mcm9tRHVyYXRpb25MaWtlKHQpLHM9Ym4oZSk7cmV0dXJuIG4uZnJvbURhdGVUaW1lcyhzLHMucGx1cyhyKSl9c3RhdGljIGJlZm9yZShlLHQpe2xldCByPUIuZnJvbUR1cmF0aW9uTGlrZSh0KSxzPWJuKGUpO3JldHVybiBuLmZyb21EYXRlVGltZXMocy5taW51cyhyKSxzKX1zdGF0aWMgZnJvbUlTTyhlLHQpe2xldFtyLHNdPShlfHxcXFwiXFxcIikuc3BsaXQoXFxcIi9cXFwiLDIpO2lmKHImJnMpe2xldCBpLG87dHJ5e2k9cS5mcm9tSVNPKHIsdCksbz1pLmlzVmFsaWR9Y2F0Y2gobCl7bz0hMX1sZXQgYSx1O3RyeXthPXEuZnJvbUlTTyhzLHQpLHU9YS5pc1ZhbGlkfWNhdGNoKGwpe3U9ITF9aWYobyYmdSlyZXR1cm4gbi5mcm9tRGF0ZVRpbWVzKGksYSk7aWYobyl7bGV0IGw9Qi5mcm9tSVNPKHMsdCk7aWYobC5pc1ZhbGlkKXJldHVybiBuLmFmdGVyKGksbCl9ZWxzZSBpZih1KXtsZXQgbD1CLmZyb21JU08ocix0KTtpZihsLmlzVmFsaWQpcmV0dXJuIG4uYmVmb3JlKGEsbCl9fXJldHVybiBuLmludmFsaWQoXFxcInVucGFyc2FibGVcXFwiLGB0aGUgaW5wdXQgXFxcIiR7ZX1cXFwiIGNhbid0IGJlIHBhcnNlZCBhcyBJU08gODYwMWApfXN0YXRpYyBpc0ludGVydmFsKGUpe3JldHVybiBlJiZlLmlzTHV4b25JbnRlcnZhbHx8ITF9Z2V0IHN0YXJ0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnM6bnVsbH1nZXQgZW5kKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmU6bnVsbH1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWRSZWFzb249PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9bGVuZ3RoKGU9XFxcIm1pbGxpc2Vjb25kc1xcXCIpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy50b0R1cmF0aW9uKGUpLmdldChlKTpOYU59Y291bnQoZT1cXFwibWlsbGlzZWNvbmRzXFxcIil7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gTmFOO2xldCB0PXRoaXMuc3RhcnQuc3RhcnRPZihlKSxyPXRoaXMuZW5kLnN0YXJ0T2YoZSk7cmV0dXJuIE1hdGguZmxvb3Ioci5kaWZmKHQsZSkuZ2V0KGUpKSsxfWhhc1NhbWUoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmlzRW1wdHkoKXx8dGhpcy5lLm1pbnVzKDEpLmhhc1NhbWUodGhpcy5zLGUpOiExfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5zLnZhbHVlT2YoKT09PXRoaXMuZS52YWx1ZU9mKCl9aXNBZnRlcihlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMucz5lOiExfWlzQmVmb3JlKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5lPD1lOiExfWNvbnRhaW5zKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5zPD1lJiZ0aGlzLmU+ZTohMX1zZXQoe3N0YXJ0OmUsZW5kOnR9PXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP24uZnJvbURhdGVUaW1lcyhlfHx0aGlzLnMsdHx8dGhpcy5lKTp0aGlzfXNwbGl0QXQoLi4uZSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm5bXTtsZXQgdD1lLm1hcChibikuZmlsdGVyKG89PnRoaXMuY29udGFpbnMobykpLnNvcnQoKSxyPVtdLHtzfT10aGlzLGk9MDtmb3IoO3M8dGhpcy5lOyl7bGV0IG89dFtpXXx8dGhpcy5lLGE9K28+K3RoaXMuZT90aGlzLmU6bztyLnB1c2gobi5mcm9tRGF0ZVRpbWVzKHMsYSkpLHM9YSxpKz0xfXJldHVybiByfXNwbGl0QnkoZSl7bGV0IHQ9Qi5mcm9tRHVyYXRpb25MaWtlKGUpO2lmKCF0aGlzLmlzVmFsaWR8fCF0LmlzVmFsaWR8fHQuYXMoXFxcIm1pbGxpc2Vjb25kc1xcXCIpPT09MClyZXR1cm5bXTtsZXR7czpyfT10aGlzLHM9MSxpLG89W107Zm9yKDtyPHRoaXMuZTspe2xldCBhPXRoaXMuc3RhcnQucGx1cyh0Lm1hcFVuaXRzKHU9PnUqcykpO2k9K2E+K3RoaXMuZT90aGlzLmU6YSxvLnB1c2gobi5mcm9tRGF0ZVRpbWVzKHIsaSkpLHI9aSxzKz0xfXJldHVybiBvfWRpdmlkZUVxdWFsbHkoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnNwbGl0QnkodGhpcy5sZW5ndGgoKS9lKS5zbGljZSgwLGUpOltdfW92ZXJsYXBzKGUpe3JldHVybiB0aGlzLmU+ZS5zJiZ0aGlzLnM8ZS5lfWFidXRzU3RhcnQoZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD8rdGhpcy5lPT0rZS5zOiExfWFidXRzRW5kKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/K2UuZT09K3RoaXMuczohMX1lbmd1bGZzKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5zPD1lLnMmJnRoaXMuZT49ZS5lOiExfWVxdWFscyhlKXtyZXR1cm4hdGhpcy5pc1ZhbGlkfHwhZS5pc1ZhbGlkPyExOnRoaXMucy5lcXVhbHMoZS5zKSYmdGhpcy5lLmVxdWFscyhlLmUpfWludGVyc2VjdGlvbihlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PXRoaXMucz5lLnM/dGhpcy5zOmUucyxyPXRoaXMuZTxlLmU/dGhpcy5lOmUuZTtyZXR1cm4gdD49cj9udWxsOm4uZnJvbURhdGVUaW1lcyh0LHIpfXVuaW9uKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcy5zPGUucz90aGlzLnM6ZS5zLHI9dGhpcy5lPmUuZT90aGlzLmU6ZS5lO3JldHVybiBuLmZyb21EYXRlVGltZXModCxyKX1zdGF0aWMgbWVyZ2UoZSl7bGV0W3Qscl09ZS5zb3J0KChzLGkpPT5zLnMtaS5zKS5yZWR1Y2UoKFtzLGldLG8pPT5pP2kub3ZlcmxhcHMobyl8fGkuYWJ1dHNTdGFydChvKT9bcyxpLnVuaW9uKG8pXTpbcy5jb25jYXQoW2ldKSxvXTpbcyxvXSxbW10sbnVsbF0pO3JldHVybiByJiZ0LnB1c2gociksdH1zdGF0aWMgeG9yKGUpe2xldCB0PW51bGwscj0wLHM9W10saT1lLm1hcCh1PT5be3RpbWU6dS5zLHR5cGU6XFxcInNcXFwifSx7dGltZTp1LmUsdHlwZTpcXFwiZVxcXCJ9XSksbz1BcnJheS5wcm90b3R5cGUuY29uY2F0KC4uLmkpLGE9by5zb3J0KCh1LGwpPT51LnRpbWUtbC50aW1lKTtmb3IobGV0IHUgb2YgYSlyKz11LnR5cGU9PT1cXFwic1xcXCI/MTotMSxyPT09MT90PXUudGltZToodCYmK3QhPSt1LnRpbWUmJnMucHVzaChuLmZyb21EYXRlVGltZXModCx1LnRpbWUpKSx0PW51bGwpO3JldHVybiBuLm1lcmdlKHMpfWRpZmZlcmVuY2UoLi4uZSl7cmV0dXJuIG4ueG9yKFt0aGlzXS5jb25jYXQoZSkpLm1hcCh0PT50aGlzLmludGVyc2VjdGlvbih0KSkuZmlsdGVyKHQ9PnQmJiF0LmlzRW1wdHkoKSl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2BbJHt0aGlzLnMudG9JU08oKX0gXFxcXHUyMDEzICR7dGhpcy5lLnRvSVNPKCl9KWA6ZnJ9dG9JU08oZSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnMudG9JU08oZSl9LyR7dGhpcy5lLnRvSVNPKGUpfWA6ZnJ9dG9JU09EYXRlKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnMudG9JU09EYXRlKCl9LyR7dGhpcy5lLnRvSVNPRGF0ZSgpfWA6ZnJ9dG9JU09UaW1lKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/YCR7dGhpcy5zLnRvSVNPVGltZShlKX0vJHt0aGlzLmUudG9JU09UaW1lKGUpfWA6ZnJ9dG9Gb3JtYXQoZSx7c2VwYXJhdG9yOnQ9XFxcIiBcXFxcdTIwMTMgXFxcIn09e30pe3JldHVybiB0aGlzLmlzVmFsaWQ/YCR7dGhpcy5zLnRvRm9ybWF0KGUpfSR7dH0ke3RoaXMuZS50b0Zvcm1hdChlKX1gOmZyfXRvRHVyYXRpb24oZSx0KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuZS5kaWZmKHRoaXMucyxlLHQpOkIuaW52YWxpZCh0aGlzLmludmFsaWRSZWFzb24pfW1hcEVuZHBvaW50cyhlKXtyZXR1cm4gbi5mcm9tRGF0ZVRpbWVzKGUodGhpcy5zKSxlKHRoaXMuZSkpfX07dmFyIGd0PWNsYXNze3N0YXRpYyBoYXNEU1QoZT1YLmRlZmF1bHRab25lKXtsZXQgdD1xLm5vdygpLnNldFpvbmUoZSkuc2V0KHttb250aDoxMn0pO3JldHVybiFlLmlzVW5pdmVyc2FsJiZ0Lm9mZnNldCE9PXQuc2V0KHttb250aDo2fSkub2Zmc2V0fXN0YXRpYyBpc1ZhbGlkSUFOQVpvbmUoZSl7cmV0dXJuIGdlLmlzVmFsaWRab25lKGUpfXN0YXRpYyBub3JtYWxpemVab25lKGUpe3JldHVybiBWZShlLFguZGVmYXVsdFpvbmUpfXN0YXRpYyBtb250aHMoZT1cXFwibG9uZ1xcXCIse2xvY2FsZTp0PW51bGwsbnVtYmVyaW5nU3lzdGVtOnI9bnVsbCxsb2NPYmo6cz1udWxsLG91dHB1dENhbGVuZGFyOmk9XFxcImdyZWdvcnlcXFwifT17fSl7cmV0dXJuKHN8fG5lLmNyZWF0ZSh0LHIsaSkpLm1vbnRocyhlKX1zdGF0aWMgbW9udGhzRm9ybWF0KGU9XFxcImxvbmdcXFwiLHtsb2NhbGU6dD1udWxsLG51bWJlcmluZ1N5c3RlbTpyPW51bGwsbG9jT2JqOnM9bnVsbCxvdXRwdXRDYWxlbmRhcjppPVxcXCJncmVnb3J5XFxcIn09e30pe3JldHVybihzfHxuZS5jcmVhdGUodCxyLGkpKS5tb250aHMoZSwhMCl9c3RhdGljIHdlZWtkYXlzKGU9XFxcImxvbmdcXFwiLHtsb2NhbGU6dD1udWxsLG51bWJlcmluZ1N5c3RlbTpyPW51bGwsbG9jT2JqOnM9bnVsbH09e30pe3JldHVybihzfHxuZS5jcmVhdGUodCxyLG51bGwpKS53ZWVrZGF5cyhlKX1zdGF0aWMgd2Vla2RheXNGb3JtYXQoZT1cXFwibG9uZ1xcXCIse2xvY2FsZTp0PW51bGwsbnVtYmVyaW5nU3lzdGVtOnI9bnVsbCxsb2NPYmo6cz1udWxsfT17fSl7cmV0dXJuKHN8fG5lLmNyZWF0ZSh0LHIsbnVsbCkpLndlZWtkYXlzKGUsITApfXN0YXRpYyBtZXJpZGllbXMoe2xvY2FsZTplPW51bGx9PXt9KXtyZXR1cm4gbmUuY3JlYXRlKGUpLm1lcmlkaWVtcygpfXN0YXRpYyBlcmFzKGU9XFxcInNob3J0XFxcIix7bG9jYWxlOnQ9bnVsbH09e30pe3JldHVybiBuZS5jcmVhdGUodCxudWxsLFxcXCJncmVnb3J5XFxcIikuZXJhcyhlKX1zdGF0aWMgZmVhdHVyZXMoKXtyZXR1cm57cmVsYXRpdmU6SHIoKX19fTtmdW5jdGlvbiBoYShuLGUpe2xldCB0PXM9PnMudG9VVEMoMCx7a2VlcExvY2FsVGltZTohMH0pLnN0YXJ0T2YoXFxcImRheVxcXCIpLnZhbHVlT2YoKSxyPXQoZSktdChuKTtyZXR1cm4gTWF0aC5mbG9vcihCLmZyb21NaWxsaXMocikuYXMoXFxcImRheXNcXFwiKSl9ZnVuY3Rpb24gU2MobixlLHQpe2xldCByPVtbXFxcInllYXJzXFxcIiwoYSx1KT0+dS55ZWFyLWEueWVhcl0sW1xcXCJxdWFydGVyc1xcXCIsKGEsdSk9PnUucXVhcnRlci1hLnF1YXJ0ZXJdLFtcXFwibW9udGhzXFxcIiwoYSx1KT0+dS5tb250aC1hLm1vbnRoKyh1LnllYXItYS55ZWFyKSoxMl0sW1xcXCJ3ZWVrc1xcXCIsKGEsdSk9PntsZXQgbD1oYShhLHUpO3JldHVybihsLWwlNykvN31dLFtcXFwiZGF5c1xcXCIsaGFdXSxzPXt9LGksbztmb3IobGV0W2EsdV1vZiByKWlmKHQuaW5kZXhPZihhKT49MCl7aT1hO2xldCBsPXUobixlKTtvPW4ucGx1cyh7W2FdOmx9KSxvPmU/KG49bi5wbHVzKHtbYV06bC0xfSksbC09MSk6bj1vLHNbYV09bH1yZXR1cm5bbixzLG8saV19ZnVuY3Rpb24gcGEobixlLHQscil7bGV0W3MsaSxvLGFdPVNjKG4sZSx0KSx1PWUtcyxsPXQuZmlsdGVyKGQ9PltcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCJdLmluZGV4T2YoZCk+PTApO2wubGVuZ3RoPT09MCYmKG88ZSYmKG89cy5wbHVzKHtbYV06MX0pKSxvIT09cyYmKGlbYV09KGlbYV18fDApK3UvKG8tcykpKTtsZXQgZj1CLmZyb21PYmplY3QoaSxyKTtyZXR1cm4gbC5sZW5ndGg+MD9CLmZyb21NaWxsaXModSxyKS5zaGlmdFRvKC4uLmwpLnBsdXMoZik6Zn12YXIgd2k9e2FyYWI6XFxcIltcXFxcdTA2NjAtXFxcXHUwNjY5XVxcXCIsYXJhYmV4dDpcXFwiW1xcXFx1MDZGMC1cXFxcdTA2RjldXFxcIixiYWxpOlxcXCJbXFxcXHUxQjUwLVxcXFx1MUI1OV1cXFwiLGJlbmc6XFxcIltcXFxcdTA5RTYtXFxcXHUwOUVGXVxcXCIsZGV2YTpcXFwiW1xcXFx1MDk2Ni1cXFxcdTA5NkZdXFxcIixmdWxsd2lkZTpcXFwiW1xcXFx1RkYxMC1cXFxcdUZGMTldXFxcIixndWpyOlxcXCJbXFxcXHUwQUU2LVxcXFx1MEFFRl1cXFwiLGhhbmlkZWM6XFxcIltcXFxcdTMwMDd8XFxcXHU0RTAwfFxcXFx1NEU4Q3xcXFxcdTRFMDl8XFxcXHU1NkRCfFxcXFx1NEU5NHxcXFxcdTUxNkR8XFxcXHU0RTAzfFxcXFx1NTE2QnxcXFxcdTRFNURdXFxcIixraG1yOlxcXCJbXFxcXHUxN0UwLVxcXFx1MTdFOV1cXFwiLGtuZGE6XFxcIltcXFxcdTBDRTYtXFxcXHUwQ0VGXVxcXCIsbGFvbzpcXFwiW1xcXFx1MEVEMC1cXFxcdTBFRDldXFxcIixsaW1iOlxcXCJbXFxcXHUxOTQ2LVxcXFx1MTk0Rl1cXFwiLG1seW06XFxcIltcXFxcdTBENjYtXFxcXHUwRDZGXVxcXCIsbW9uZzpcXFwiW1xcXFx1MTgxMC1cXFxcdTE4MTldXFxcIixteW1yOlxcXCJbXFxcXHUxMDQwLVxcXFx1MTA0OV1cXFwiLG9yeWE6XFxcIltcXFxcdTBCNjYtXFxcXHUwQjZGXVxcXCIsdGFtbGRlYzpcXFwiW1xcXFx1MEJFNi1cXFxcdTBCRUZdXFxcIix0ZWx1OlxcXCJbXFxcXHUwQzY2LVxcXFx1MEM2Rl1cXFwiLHRoYWk6XFxcIltcXFxcdTBFNTAtXFxcXHUwRTU5XVxcXCIsdGlidDpcXFwiW1xcXFx1MEYyMC1cXFxcdTBGMjldXFxcIixsYXRuOlxcXCJcXFxcXFxcXGRcXFwifSxtYT17YXJhYjpbMTYzMiwxNjQxXSxhcmFiZXh0OlsxNzc2LDE3ODVdLGJhbGk6WzY5OTIsNzAwMV0sYmVuZzpbMjUzNCwyNTQzXSxkZXZhOlsyNDA2LDI0MTVdLGZ1bGx3aWRlOls2NTI5Niw2NTMwM10sZ3VqcjpbMjc5MCwyNzk5XSxraG1yOls2MTEyLDYxMjFdLGtuZGE6WzMzMDIsMzMxMV0sbGFvbzpbMzc5MiwzODAxXSxsaW1iOls2NDcwLDY0NzldLG1seW06WzM0MzAsMzQzOV0sbW9uZzpbNjE2MCw2MTY5XSxteW1yOls0MTYwLDQxNjldLG9yeWE6WzI5MTgsMjkyN10sdGFtbGRlYzpbMzA0NiwzMDU1XSx0ZWx1OlszMTc0LDMxODNdLHRoYWk6WzM2NjQsMzY3M10sdGlidDpbMzg3MiwzODgxXX0sa2M9d2kuaGFuaWRlYy5yZXBsYWNlKC9bXFxcXFt8XFxcXF1dL2csXFxcIlxcXCIpLnNwbGl0KFxcXCJcXFwiKTtmdW5jdGlvbiBEYShuKXtsZXQgZT1wYXJzZUludChuLDEwKTtpZihpc05hTihlKSl7ZT1cXFwiXFxcIjtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7bGV0IHI9bi5jaGFyQ29kZUF0KHQpO2lmKG5bdF0uc2VhcmNoKHdpLmhhbmlkZWMpIT09LTEpZSs9a2MuaW5kZXhPZihuW3RdKTtlbHNlIGZvcihsZXQgcyBpbiBtYSl7bGV0W2ksb109bWFbc107cj49aSYmcjw9byYmKGUrPXItaSl9fXJldHVybiBwYXJzZUludChlLDEwKX1lbHNlIHJldHVybiBlfWZ1bmN0aW9uIF9lKHtudW1iZXJpbmdTeXN0ZW06bn0sZT1cXFwiXFxcIil7cmV0dXJuIG5ldyBSZWdFeHAoYCR7d2lbbnx8XFxcImxhdG5cXFwiXX0ke2V9YCl9dmFyIENjPVxcXCJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0XFxcIjtmdW5jdGlvbiBHKG4sZT10PT50KXtyZXR1cm57cmVnZXg6bixkZXNlcjooW3RdKT0+ZShEYSh0KSl9fXZhciB2Yz1cXFwiXFxcXHhBMFxcXCIsYmE9YFsgJHt2Y31dYCxGYT1uZXcgUmVnRXhwKGJhLFxcXCJnXFxcIik7ZnVuY3Rpb24gT2Mobil7cmV0dXJuIG4ucmVwbGFjZSgvXFxcXC4vZyxcXFwiXFxcXFxcXFwuP1xcXCIpLnJlcGxhY2UoRmEsYmEpfWZ1bmN0aW9uIHlhKG4pe3JldHVybiBuLnJlcGxhY2UoL1xcXFwuL2csXFxcIlxcXCIpLnJlcGxhY2UoRmEsXFxcIiBcXFwiKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFVlKG4sZSl7cmV0dXJuIG49PT1udWxsP251bGw6e3JlZ2V4OlJlZ0V4cChuLm1hcChPYykuam9pbihcXFwifFxcXCIpKSxkZXNlcjooW3RdKT0+bi5maW5kSW5kZXgocj0+eWEodCk9PT15YShyKSkrZX19ZnVuY3Rpb24gZ2EobixlKXtyZXR1cm57cmVnZXg6bixkZXNlcjooWyx0LHJdKT0+VnQodCxyKSxncm91cHM6ZX19ZnVuY3Rpb24gVGkobil7cmV0dXJue3JlZ2V4Om4sZGVzZXI6KFtlXSk9PmV9fWZ1bmN0aW9uIHhjKG4pe3JldHVybiBuLnJlcGxhY2UoL1tcXFxcLVxcXFxbXFxcXF17fSgpKis/LixcXFxcXFxcXFxcXFxeJHwjXFxcXHNdL2csXFxcIlxcXFxcXFxcJCZcXFwiKX1mdW5jdGlvbiBJYyhuLGUpe2xldCB0PV9lKGUpLHI9X2UoZSxcXFwiezJ9XFxcIikscz1fZShlLFxcXCJ7M31cXFwiKSxpPV9lKGUsXFxcIns0fVxcXCIpLG89X2UoZSxcXFwiezZ9XFxcIiksYT1fZShlLFxcXCJ7MSwyfVxcXCIpLHU9X2UoZSxcXFwiezEsM31cXFwiKSxsPV9lKGUsXFxcInsxLDZ9XFxcIiksZj1fZShlLFxcXCJ7MSw5fVxcXCIpLGQ9X2UoZSxcXFwiezIsNH1cXFwiKSxwPV9lKGUsXFxcIns0LDZ9XFxcIiksaD1EPT4oe3JlZ2V4OlJlZ0V4cCh4YyhELnZhbCkpLGRlc2VyOihbVF0pPT5ULGxpdGVyYWw6ITB9KSxnPShEPT57aWYobi5saXRlcmFsKXJldHVybiBoKEQpO3N3aXRjaChELnZhbCl7Y2FzZVxcXCJHXFxcIjpyZXR1cm4gVWUoZS5lcmFzKFxcXCJzaG9ydFxcXCIsITEpLDApO2Nhc2VcXFwiR0dcXFwiOnJldHVybiBVZShlLmVyYXMoXFxcImxvbmdcXFwiLCExKSwwKTtjYXNlXFxcInlcXFwiOnJldHVybiBHKGwpO2Nhc2VcXFwieXlcXFwiOnJldHVybiBHKGQsb3IpO2Nhc2VcXFwieXl5eVxcXCI6cmV0dXJuIEcoaSk7Y2FzZVxcXCJ5eXl5eVxcXCI6cmV0dXJuIEcocCk7Y2FzZVxcXCJ5eXl5eXlcXFwiOnJldHVybiBHKG8pO2Nhc2VcXFwiTVxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJNTVxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJNTU1cXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwic2hvcnRcXFwiLCEwLCExKSwxKTtjYXNlXFxcIk1NTU1cXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwibG9uZ1xcXCIsITAsITEpLDEpO2Nhc2VcXFwiTFxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJMTFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJMTExcXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwic2hvcnRcXFwiLCExLCExKSwxKTtjYXNlXFxcIkxMTExcXFwiOnJldHVybiBVZShlLm1vbnRocyhcXFwibG9uZ1xcXCIsITEsITEpLDEpO2Nhc2VcXFwiZFxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJkZFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJvXFxcIjpyZXR1cm4gRyh1KTtjYXNlXFxcIm9vb1xcXCI6cmV0dXJuIEcocyk7Y2FzZVxcXCJISFxcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJIXFxcIjpyZXR1cm4gRyhhKTtjYXNlXFxcImhoXFxcIjpyZXR1cm4gRyhyKTtjYXNlXFxcImhcXFwiOnJldHVybiBHKGEpO2Nhc2VcXFwibW1cXFwiOnJldHVybiBHKHIpO2Nhc2VcXFwibVxcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJxXFxcIjpyZXR1cm4gRyhhKTtjYXNlXFxcInFxXFxcIjpyZXR1cm4gRyhyKTtjYXNlXFxcInNcXFwiOnJldHVybiBHKGEpO2Nhc2VcXFwic3NcXFwiOnJldHVybiBHKHIpO2Nhc2VcXFwiU1xcXCI6cmV0dXJuIEcodSk7Y2FzZVxcXCJTU1NcXFwiOnJldHVybiBHKHMpO2Nhc2VcXFwidVxcXCI6cmV0dXJuIFRpKGYpO2Nhc2VcXFwidXVcXFwiOnJldHVybiBUaShhKTtjYXNlXFxcInV1dVxcXCI6cmV0dXJuIEcodCk7Y2FzZVxcXCJhXFxcIjpyZXR1cm4gVWUoZS5tZXJpZGllbXMoKSwwKTtjYXNlXFxcImtra2tcXFwiOnJldHVybiBHKGkpO2Nhc2VcXFwia2tcXFwiOnJldHVybiBHKGQsb3IpO2Nhc2VcXFwiV1xcXCI6cmV0dXJuIEcoYSk7Y2FzZVxcXCJXV1xcXCI6cmV0dXJuIEcocik7Y2FzZVxcXCJFXFxcIjpjYXNlXFxcImNcXFwiOnJldHVybiBHKHQpO2Nhc2VcXFwiRUVFXFxcIjpyZXR1cm4gVWUoZS53ZWVrZGF5cyhcXFwic2hvcnRcXFwiLCExLCExKSwxKTtjYXNlXFxcIkVFRUVcXFwiOnJldHVybiBVZShlLndlZWtkYXlzKFxcXCJsb25nXFxcIiwhMSwhMSksMSk7Y2FzZVxcXCJjY2NcXFwiOnJldHVybiBVZShlLndlZWtkYXlzKFxcXCJzaG9ydFxcXCIsITAsITEpLDEpO2Nhc2VcXFwiY2NjY1xcXCI6cmV0dXJuIFVlKGUud2Vla2RheXMoXFxcImxvbmdcXFwiLCEwLCExKSwxKTtjYXNlXFxcIlpcXFwiOmNhc2VcXFwiWlpcXFwiOnJldHVybiBnYShuZXcgUmVnRXhwKGAoWystXSR7YS5zb3VyY2V9KSg/OjooJHtyLnNvdXJjZX0pKT9gKSwyKTtjYXNlXFxcIlpaWlxcXCI6cmV0dXJuIGdhKG5ldyBSZWdFeHAoYChbKy1dJHthLnNvdXJjZX0pKCR7ci5zb3VyY2V9KT9gKSwyKTtjYXNlXFxcInpcXFwiOnJldHVybiBUaSgvW2Etel8rLS9dezEsMjU2fT8vaSk7ZGVmYXVsdDpyZXR1cm4gaChEKX19KShuKXx8e2ludmFsaWRSZWFzb246Q2N9O3JldHVybiBnLnRva2VuPW4sZ312YXIgTGM9e3llYXI6e1xcXCIyLWRpZ2l0XFxcIjpcXFwieXlcXFwiLG51bWVyaWM6XFxcInl5eXl5XFxcIn0sbW9udGg6e251bWVyaWM6XFxcIk1cXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiTU1cXFwiLHNob3J0OlxcXCJNTU1cXFwiLGxvbmc6XFxcIk1NTU1cXFwifSxkYXk6e251bWVyaWM6XFxcImRcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiZGRcXFwifSx3ZWVrZGF5OntzaG9ydDpcXFwiRUVFXFxcIixsb25nOlxcXCJFRUVFXFxcIn0sZGF5cGVyaW9kOlxcXCJhXFxcIixkYXlQZXJpb2Q6XFxcImFcXFwiLGhvdXI6e251bWVyaWM6XFxcImhcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwiaGhcXFwifSxtaW51dGU6e251bWVyaWM6XFxcIm1cXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwibW1cXFwifSxzZWNvbmQ6e251bWVyaWM6XFxcInNcXFwiLFxcXCIyLWRpZ2l0XFxcIjpcXFwic3NcXFwifX07ZnVuY3Rpb24gTmMobixlLHQpe2xldHt0eXBlOnIsdmFsdWU6c309bjtpZihyPT09XFxcImxpdGVyYWxcXFwiKXJldHVybntsaXRlcmFsOiEwLHZhbDpzfTtsZXQgaT10W3JdLG89TGNbcl07aWYodHlwZW9mIG89PVxcXCJvYmplY3RcXFwiJiYobz1vW2ldKSxvKXJldHVybntsaXRlcmFsOiExLHZhbDpvfX1mdW5jdGlvbiBBYyhuKXtyZXR1cm5bYF4ke24ubWFwKHQ9PnQucmVnZXgpLnJlZHVjZSgodCxyKT0+YCR7dH0oJHtyLnNvdXJjZX0pYCxcXFwiXFxcIil9JGAsbl19ZnVuY3Rpb24gTWMobixlLHQpe2xldCByPW4ubWF0Y2goZSk7aWYocil7bGV0IHM9e30saT0xO2ZvcihsZXQgbyBpbiB0KWlmKGt0KHQsbykpe2xldCBhPXRbb10sdT1hLmdyb3Vwcz9hLmdyb3VwcysxOjE7IWEubGl0ZXJhbCYmYS50b2tlbiYmKHNbYS50b2tlbi52YWxbMF1dPWEuZGVzZXIoci5zbGljZShpLGkrdSkpKSxpKz11fXJldHVybltyLHNdfWVsc2UgcmV0dXJuW3Ise31dfWZ1bmN0aW9uIF9jKG4pe2xldCBlPWk9Pntzd2l0Y2goaSl7Y2FzZVxcXCJTXFxcIjpyZXR1cm5cXFwibWlsbGlzZWNvbmRcXFwiO2Nhc2VcXFwic1xcXCI6cmV0dXJuXFxcInNlY29uZFxcXCI7Y2FzZVxcXCJtXFxcIjpyZXR1cm5cXFwibWludXRlXFxcIjtjYXNlXFxcImhcXFwiOmNhc2VcXFwiSFxcXCI6cmV0dXJuXFxcImhvdXJcXFwiO2Nhc2VcXFwiZFxcXCI6cmV0dXJuXFxcImRheVxcXCI7Y2FzZVxcXCJvXFxcIjpyZXR1cm5cXFwib3JkaW5hbFxcXCI7Y2FzZVxcXCJMXFxcIjpjYXNlXFxcIk1cXFwiOnJldHVyblxcXCJtb250aFxcXCI7Y2FzZVxcXCJ5XFxcIjpyZXR1cm5cXFwieWVhclxcXCI7Y2FzZVxcXCJFXFxcIjpjYXNlXFxcImNcXFwiOnJldHVyblxcXCJ3ZWVrZGF5XFxcIjtjYXNlXFxcIldcXFwiOnJldHVyblxcXCJ3ZWVrTnVtYmVyXFxcIjtjYXNlXFxcImtcXFwiOnJldHVyblxcXCJ3ZWVrWWVhclxcXCI7Y2FzZVxcXCJxXFxcIjpyZXR1cm5cXFwicXVhcnRlclxcXCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LHQ9bnVsbCxyO3JldHVybiBXKG4ueil8fCh0PWdlLmNyZWF0ZShuLnopKSxXKG4uWil8fCh0fHwodD1uZXcgaGUobi5aKSkscj1uLlopLFcobi5xKXx8KG4uTT0obi5xLTEpKjMrMSksVyhuLmgpfHwobi5oPDEyJiZuLmE9PT0xP24uaCs9MTI6bi5oPT09MTImJm4uYT09PTAmJihuLmg9MCkpLG4uRz09PTAmJm4ueSYmKG4ueT0tbi55KSxXKG4udSl8fChuLlM9c3Iobi51KSksW09iamVjdC5rZXlzKG4pLnJlZHVjZSgoaSxvKT0+e2xldCBhPWUobyk7cmV0dXJuIGEmJihpW2FdPW5bb10pLGl9LHt9KSx0LHJdfXZhciBTaT1udWxsO2Z1bmN0aW9uIEJjKCl7cmV0dXJuIFNpfHwoU2k9cS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpKSxTaX1mdW5jdGlvbiBQYyhuLGUpe2lmKG4ubGl0ZXJhbClyZXR1cm4gbjtsZXQgdD13ZS5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKG4udmFsKTtpZighdClyZXR1cm4gbjtsZXQgaT13ZS5jcmVhdGUoZSx0KS5mb3JtYXREYXRlVGltZVBhcnRzKEJjKCkpLm1hcChvPT5OYyhvLGUsdCkpO3JldHVybiBpLmluY2x1ZGVzKHZvaWQgMCk/bjppfWZ1bmN0aW9uICRjKG4sZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoLi4ubi5tYXAodD0+UGModCxlKSkpfWZ1bmN0aW9uIGtpKG4sZSx0KXtsZXQgcj0kYyh3ZS5wYXJzZUZvcm1hdCh0KSxuKSxzPXIubWFwKG89PkljKG8sbikpLGk9cy5maW5kKG89Pm8uaW52YWxpZFJlYXNvbik7aWYoaSlyZXR1cm57aW5wdXQ6ZSx0b2tlbnM6cixpbnZhbGlkUmVhc29uOmkuaW52YWxpZFJlYXNvbn07e2xldFtvLGFdPUFjKHMpLHU9UmVnRXhwKG8sXFxcImlcXFwiKSxbbCxmXT1NYyhlLHUsYSksW2QscCxoXT1mP19jKGYpOltudWxsLG51bGwsdm9pZCAwXTtpZihrdChmLFxcXCJhXFxcIikmJmt0KGYsXFxcIkhcXFwiKSl0aHJvdyBuZXcgbXQoXFxcIkNhbid0IGluY2x1ZGUgbWVyaWRpZW0gd2hlbiBzcGVjaWZ5aW5nIDI0LWhvdXIgZm9ybWF0XFxcIik7cmV0dXJue2lucHV0OmUsdG9rZW5zOnIscmVnZXg6dSxyYXdNYXRjaGVzOmwsbWF0Y2hlczpmLHJlc3VsdDpkLHpvbmU6cCxzcGVjaWZpY09mZnNldDpofX19ZnVuY3Rpb24gRWEobixlLHQpe2xldHtyZXN1bHQ6cix6b25lOnMsc3BlY2lmaWNPZmZzZXQ6aSxpbnZhbGlkUmVhc29uOm99PWtpKG4sZSx0KTtyZXR1cm5bcixzLGksb119dmFyIHdhPVswLDMxLDU5LDkwLDEyMCwxNTEsMTgxLDIxMiwyNDMsMjczLDMwNCwzMzRdLFRhPVswLDMxLDYwLDkxLDEyMSwxNTIsMTgyLDIxMywyNDQsMjc0LDMwNSwzMzVdO2Z1bmN0aW9uIEJlKG4sZSl7cmV0dXJuIG5ldyBkZShcXFwidW5pdCBvdXQgb2YgcmFuZ2VcXFwiLGB5b3Ugc3BlY2lmaWVkICR7ZX0gKG9mIHR5cGUgJHt0eXBlb2YgZX0pIGFzIGEgJHtufSwgd2hpY2ggaXMgaW52YWxpZGApfWZ1bmN0aW9uIFNhKG4sZSx0KXtsZXQgcj1uZXcgRGF0ZShEYXRlLlVUQyhuLGUtMSx0KSk7bjwxMDAmJm4+PTAmJnIuc2V0VVRDRnVsbFllYXIoci5nZXRVVENGdWxsWWVhcigpLTE5MDApO2xldCBzPXIuZ2V0VVRDRGF5KCk7cmV0dXJuIHM9PT0wPzc6c31mdW5jdGlvbiBrYShuLGUsdCl7cmV0dXJuIHQrKGp0KG4pP1RhOndhKVtlLTFdfWZ1bmN0aW9uIENhKG4sZSl7bGV0IHQ9anQobik/VGE6d2Escj10LmZpbmRJbmRleChpPT5pPGUpLHM9ZS10W3JdO3JldHVybnttb250aDpyKzEsZGF5OnN9fWZ1bmN0aW9uIFpyKG4pe2xldHt5ZWFyOmUsbW9udGg6dCxkYXk6cn09bixzPWthKGUsdCxyKSxpPVNhKGUsdCxyKSxvPU1hdGguZmxvb3IoKHMtaSsxMCkvNyksYTtyZXR1cm4gbzwxPyhhPWUtMSxvPWxuKGEpKTpvPmxuKGUpPyhhPWUrMSxvPTEpOmE9ZSxSKHt3ZWVrWWVhcjphLHdlZWtOdW1iZXI6byx3ZWVrZGF5Oml9LGFyKG4pKX1mdW5jdGlvbiBDaShuKXtsZXR7d2Vla1llYXI6ZSx3ZWVrTnVtYmVyOnQsd2Vla2RheTpyfT1uLHM9U2EoZSwxLDQpLGk9cXQoZSksbz10Kjcrci1zLTMsYTtvPDE/KGE9ZS0xLG8rPXF0KGEpKTpvPmk/KGE9ZSsxLG8tPXF0KGUpKTphPWU7bGV0e21vbnRoOnUsZGF5Omx9PUNhKGEsbyk7cmV0dXJuIFIoe3llYXI6YSxtb250aDp1LGRheTpsfSxhcihuKSl9ZnVuY3Rpb24gUXIobil7bGV0e3llYXI6ZSxtb250aDp0LGRheTpyfT1uLHM9a2EoZSx0LHIpO3JldHVybiBSKHt5ZWFyOmUsb3JkaW5hbDpzfSxhcihuKSl9ZnVuY3Rpb24gdmkobil7bGV0e3llYXI6ZSxvcmRpbmFsOnR9PW4se21vbnRoOnIsZGF5OnN9PUNhKGUsdCk7cmV0dXJuIFIoe3llYXI6ZSxtb250aDpyLGRheTpzfSxhcihuKSl9ZnVuY3Rpb24gdmEobil7bGV0IGU9cnIobi53ZWVrWWVhciksdD1udChuLndlZWtOdW1iZXIsMSxsbihuLndlZWtZZWFyKSkscj1udChuLndlZWtkYXksMSw3KTtyZXR1cm4gZT90P3I/ITE6QmUoXFxcIndlZWtkYXlcXFwiLG4ud2Vla2RheSk6QmUoXFxcIndlZWtcXFwiLG4ud2Vlayk6QmUoXFxcIndlZWtZZWFyXFxcIixuLndlZWtZZWFyKX1mdW5jdGlvbiBPYShuKXtsZXQgZT1ycihuLnllYXIpLHQ9bnQobi5vcmRpbmFsLDEscXQobi55ZWFyKSk7cmV0dXJuIGU/dD8hMTpCZShcXFwib3JkaW5hbFxcXCIsbi5vcmRpbmFsKTpCZShcXFwieWVhclxcXCIsbi55ZWFyKX1mdW5jdGlvbiBPaShuKXtsZXQgZT1ycihuLnllYXIpLHQ9bnQobi5tb250aCwxLDEyKSxyPW50KG4uZGF5LDEsdW4obi55ZWFyLG4ubW9udGgpKTtyZXR1cm4gZT90P3I/ITE6QmUoXFxcImRheVxcXCIsbi5kYXkpOkJlKFxcXCJtb250aFxcXCIsbi5tb250aCk6QmUoXFxcInllYXJcXFwiLG4ueWVhcil9ZnVuY3Rpb24geGkobil7bGV0e2hvdXI6ZSxtaW51dGU6dCxzZWNvbmQ6cixtaWxsaXNlY29uZDpzfT1uLGk9bnQoZSwwLDIzKXx8ZT09PTI0JiZ0PT09MCYmcj09PTAmJnM9PT0wLG89bnQodCwwLDU5KSxhPW50KHIsMCw1OSksdT1udChzLDAsOTk5KTtyZXR1cm4gaT9vP2E/dT8hMTpCZShcXFwibWlsbGlzZWNvbmRcXFwiLHMpOkJlKFxcXCJzZWNvbmRcXFwiLHIpOkJlKFxcXCJtaW51dGVcXFwiLHQpOkJlKFxcXCJob3VyXFxcIixlKX12YXIgSWk9XFxcIkludmFsaWQgRGF0ZVRpbWVcXFwiLHhhPTg2NGUxMztmdW5jdGlvbiBYcihuKXtyZXR1cm4gbmV3IGRlKFxcXCJ1bnN1cHBvcnRlZCB6b25lXFxcIixgdGhlIHpvbmUgXFxcIiR7bi5uYW1lfVxcXCIgaXMgbm90IHN1cHBvcnRlZGApfWZ1bmN0aW9uIExpKG4pe3JldHVybiBuLndlZWtEYXRhPT09bnVsbCYmKG4ud2Vla0RhdGE9WnIobi5jKSksbi53ZWVrRGF0YX1mdW5jdGlvbiBkcihuLGUpe2xldCB0PXt0czpuLnRzLHpvbmU6bi56b25lLGM6bi5jLG86bi5vLGxvYzpuLmxvYyxpbnZhbGlkOm4uaW52YWxpZH07cmV0dXJuIG5ldyBxKHllKFIoUih7fSx0KSxlKSx7b2xkOnR9KSl9ZnVuY3Rpb24gUGEobixlLHQpe2xldCByPW4tZSo2MCoxZTMscz10Lm9mZnNldChyKTtpZihlPT09cylyZXR1cm5bcixlXTtyLT0ocy1lKSo2MCoxZTM7bGV0IGk9dC5vZmZzZXQocik7cmV0dXJuIHM9PT1pP1tyLHNdOltuLU1hdGgubWluKHMsaSkqNjAqMWUzLE1hdGgubWF4KHMsaSldfWZ1bmN0aW9uIElhKG4sZSl7bis9ZSo2MCoxZTM7bGV0IHQ9bmV3IERhdGUobik7cmV0dXJue3llYXI6dC5nZXRVVENGdWxsWWVhcigpLG1vbnRoOnQuZ2V0VVRDTW9udGgoKSsxLGRheTp0LmdldFVUQ0RhdGUoKSxob3VyOnQuZ2V0VVRDSG91cnMoKSxtaW51dGU6dC5nZXRVVENNaW51dGVzKCksc2Vjb25kOnQuZ2V0VVRDU2Vjb25kcygpLG1pbGxpc2Vjb25kOnQuZ2V0VVRDTWlsbGlzZWNvbmRzKCl9fWZ1bmN0aW9uIHRzKG4sZSx0KXtyZXR1cm4gUGEoaXIobiksZSx0KX1mdW5jdGlvbiBMYShuLGUpe2xldCB0PW4ubyxyPW4uYy55ZWFyK01hdGgudHJ1bmMoZS55ZWFycykscz1uLmMubW9udGgrTWF0aC50cnVuYyhlLm1vbnRocykrTWF0aC50cnVuYyhlLnF1YXJ0ZXJzKSozLGk9eWUoUih7fSxuLmMpLHt5ZWFyOnIsbW9udGg6cyxkYXk6TWF0aC5taW4obi5jLmRheSx1bihyLHMpKStNYXRoLnRydW5jKGUuZGF5cykrTWF0aC50cnVuYyhlLndlZWtzKSo3fSksbz1CLmZyb21PYmplY3Qoe3llYXJzOmUueWVhcnMtTWF0aC50cnVuYyhlLnllYXJzKSxxdWFydGVyczplLnF1YXJ0ZXJzLU1hdGgudHJ1bmMoZS5xdWFydGVycyksbW9udGhzOmUubW9udGhzLU1hdGgudHJ1bmMoZS5tb250aHMpLHdlZWtzOmUud2Vla3MtTWF0aC50cnVuYyhlLndlZWtzKSxkYXlzOmUuZGF5cy1NYXRoLnRydW5jKGUuZGF5cyksaG91cnM6ZS5ob3VycyxtaW51dGVzOmUubWludXRlcyxzZWNvbmRzOmUuc2Vjb25kcyxtaWxsaXNlY29uZHM6ZS5taWxsaXNlY29uZHN9KS5hcyhcXFwibWlsbGlzZWNvbmRzXFxcIiksYT1pcihpKSxbdSxsXT1QYShhLHQsbi56b25lKTtyZXR1cm4gbyE9PTAmJih1Kz1vLGw9bi56b25lLm9mZnNldCh1KSkse3RzOnUsbzpsfX1mdW5jdGlvbiBocihuLGUsdCxyLHMsaSl7bGV0e3NldFpvbmU6byx6b25lOmF9PXQ7aWYobiYmT2JqZWN0LmtleXMobikubGVuZ3RoIT09MCl7bGV0IHU9ZXx8YSxsPXEuZnJvbU9iamVjdChuLHllKFIoe30sdCkse3pvbmU6dSxzcGVjaWZpY09mZnNldDppfSkpO3JldHVybiBvP2w6bC5zZXRab25lKGEpfWVsc2UgcmV0dXJuIHEuaW52YWxpZChuZXcgZGUoXFxcInVucGFyc2FibGVcXFwiLGB0aGUgaW5wdXQgXFxcIiR7c31cXFwiIGNhbid0IGJlIHBhcnNlZCBhcyAke3J9YCkpfWZ1bmN0aW9uIGVzKG4sZSx0PSEwKXtyZXR1cm4gbi5pc1ZhbGlkP3dlLmNyZWF0ZShuZS5jcmVhdGUoXFxcImVuLVVTXFxcIikse2FsbG93Wjp0LGZvcmNlU2ltcGxlOiEwfSkuZm9ybWF0RGF0ZVRpbWVGcm9tU3RyaW5nKG4sZSk6bnVsbH1mdW5jdGlvbiBOaShuLGUpe2xldCB0PW4uYy55ZWFyPjk5OTl8fG4uYy55ZWFyPDAscj1cXFwiXFxcIjtyZXR1cm4gdCYmbi5jLnllYXI+PTAmJihyKz1cXFwiK1xcXCIpLHIrPXJlKG4uYy55ZWFyLHQ/Njo0KSxlPyhyKz1cXFwiLVxcXCIscis9cmUobi5jLm1vbnRoKSxyKz1cXFwiLVxcXCIscis9cmUobi5jLmRheSkpOihyKz1yZShuLmMubW9udGgpLHIrPXJlKG4uYy5kYXkpKSxyfWZ1bmN0aW9uIE5hKG4sZSx0LHIscyxpKXtsZXQgbz1yZShuLmMuaG91cik7cmV0dXJuIGU/KG8rPVxcXCI6XFxcIixvKz1yZShuLmMubWludXRlKSwobi5jLnNlY29uZCE9PTB8fCF0KSYmKG8rPVxcXCI6XFxcIikpOm8rPXJlKG4uYy5taW51dGUpLChuLmMuc2Vjb25kIT09MHx8IXQpJiYobys9cmUobi5jLnNlY29uZCksKG4uYy5taWxsaXNlY29uZCE9PTB8fCFyKSYmKG8rPVxcXCIuXFxcIixvKz1yZShuLmMubWlsbGlzZWNvbmQsMykpKSxzJiYobi5pc09mZnNldEZpeGVkJiZuLm9mZnNldD09PTAmJiFpP28rPVxcXCJaXFxcIjpuLm88MD8obys9XFxcIi1cXFwiLG8rPXJlKE1hdGgudHJ1bmMoLW4uby82MCkpLG8rPVxcXCI6XFxcIixvKz1yZShNYXRoLnRydW5jKC1uLm8lNjApKSk6KG8rPVxcXCIrXFxcIixvKz1yZShNYXRoLnRydW5jKG4uby82MCkpLG8rPVxcXCI6XFxcIixvKz1yZShNYXRoLnRydW5jKG4ubyU2MCkpKSksaSYmKG8rPVxcXCJbXFxcIituLnpvbmUuaWFuYU5hbWUrXFxcIl1cXFwiKSxvfXZhciAkYT17bW9udGg6MSxkYXk6MSxob3VyOjAsbWludXRlOjAsc2Vjb25kOjAsbWlsbGlzZWNvbmQ6MH0sUmM9e3dlZWtOdW1iZXI6MSx3ZWVrZGF5OjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9LGpjPXtvcmRpbmFsOjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9LFJhPVtcXFwieWVhclxcXCIsXFxcIm1vbnRoXFxcIixcXFwiZGF5XFxcIixcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0scWM9W1xcXCJ3ZWVrWWVhclxcXCIsXFxcIndlZWtOdW1iZXJcXFwiLFxcXCJ3ZWVrZGF5XFxcIixcXFwiaG91clxcXCIsXFxcIm1pbnV0ZVxcXCIsXFxcInNlY29uZFxcXCIsXFxcIm1pbGxpc2Vjb25kXFxcIl0sVmM9W1xcXCJ5ZWFyXFxcIixcXFwib3JkaW5hbFxcXCIsXFxcImhvdXJcXFwiLFxcXCJtaW51dGVcXFwiLFxcXCJzZWNvbmRcXFwiLFxcXCJtaWxsaXNlY29uZFxcXCJdO2Z1bmN0aW9uIEFhKG4pe2xldCBlPXt5ZWFyOlxcXCJ5ZWFyXFxcIix5ZWFyczpcXFwieWVhclxcXCIsbW9udGg6XFxcIm1vbnRoXFxcIixtb250aHM6XFxcIm1vbnRoXFxcIixkYXk6XFxcImRheVxcXCIsZGF5czpcXFwiZGF5XFxcIixob3VyOlxcXCJob3VyXFxcIixob3VyczpcXFwiaG91clxcXCIsbWludXRlOlxcXCJtaW51dGVcXFwiLG1pbnV0ZXM6XFxcIm1pbnV0ZVxcXCIscXVhcnRlcjpcXFwicXVhcnRlclxcXCIscXVhcnRlcnM6XFxcInF1YXJ0ZXJcXFwiLHNlY29uZDpcXFwic2Vjb25kXFxcIixzZWNvbmRzOlxcXCJzZWNvbmRcXFwiLG1pbGxpc2Vjb25kOlxcXCJtaWxsaXNlY29uZFxcXCIsbWlsbGlzZWNvbmRzOlxcXCJtaWxsaXNlY29uZFxcXCIsd2Vla2RheTpcXFwid2Vla2RheVxcXCIsd2Vla2RheXM6XFxcIndlZWtkYXlcXFwiLHdlZWtudW1iZXI6XFxcIndlZWtOdW1iZXJcXFwiLHdlZWtzbnVtYmVyOlxcXCJ3ZWVrTnVtYmVyXFxcIix3ZWVrbnVtYmVyczpcXFwid2Vla051bWJlclxcXCIsd2Vla3llYXI6XFxcIndlZWtZZWFyXFxcIix3ZWVreWVhcnM6XFxcIndlZWtZZWFyXFxcIixvcmRpbmFsOlxcXCJvcmRpbmFsXFxcIn1bbi50b0xvd2VyQ2FzZSgpXTtpZighZSl0aHJvdyBuZXcgc24obik7cmV0dXJuIGV9ZnVuY3Rpb24gTWEobixlKXtsZXQgdD1WZShlLnpvbmUsWC5kZWZhdWx0Wm9uZSkscj1uZS5mcm9tT2JqZWN0KGUpLHM9WC5ub3coKSxpLG87aWYoVyhuLnllYXIpKWk9cztlbHNle2ZvcihsZXQgbCBvZiBSYSlXKG5bbF0pJiYobltsXT0kYVtsXSk7bGV0IGE9T2kobil8fHhpKG4pO2lmKGEpcmV0dXJuIHEuaW52YWxpZChhKTtsZXQgdT10Lm9mZnNldChzKTtbaSxvXT10cyhuLHUsdCl9cmV0dXJuIG5ldyBxKHt0czppLHpvbmU6dCxsb2M6cixvfSl9ZnVuY3Rpb24gX2EobixlLHQpe2xldCByPVcodC5yb3VuZCk/ITA6dC5yb3VuZCxzPShvLGEpPT4obz1hbihvLHJ8fHQuY2FsZW5kYXJ5PzA6MiwhMCksZS5sb2MuY2xvbmUodCkucmVsRm9ybWF0dGVyKHQpLmZvcm1hdChvLGEpKSxpPW89PnQuY2FsZW5kYXJ5P2UuaGFzU2FtZShuLG8pPzA6ZS5zdGFydE9mKG8pLmRpZmYobi5zdGFydE9mKG8pLG8pLmdldChvKTplLmRpZmYobixvKS5nZXQobyk7aWYodC51bml0KXJldHVybiBzKGkodC51bml0KSx0LnVuaXQpO2ZvcihsZXQgbyBvZiB0LnVuaXRzKXtsZXQgYT1pKG8pO2lmKE1hdGguYWJzKGEpPj0xKXJldHVybiBzKGEsbyl9cmV0dXJuIHMobj5lPy0wOjAsdC51bml0c1t0LnVuaXRzLmxlbmd0aC0xXSl9ZnVuY3Rpb24gQmEobil7bGV0IGU9e30sdDtyZXR1cm4gbi5sZW5ndGg+MCYmdHlwZW9mIG5bbi5sZW5ndGgtMV09PVxcXCJvYmplY3RcXFwiPyhlPW5bbi5sZW5ndGgtMV0sdD1BcnJheS5mcm9tKG4pLnNsaWNlKDAsbi5sZW5ndGgtMSkpOnQ9QXJyYXkuZnJvbShuKSxbZSx0XX12YXIgcT1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe2xldCB0PWUuem9uZXx8WC5kZWZhdWx0Wm9uZSxyPWUuaW52YWxpZHx8KE51bWJlci5pc05hTihlLnRzKT9uZXcgZGUoXFxcImludmFsaWQgaW5wdXRcXFwiKTpudWxsKXx8KHQuaXNWYWxpZD9udWxsOlhyKHQpKTt0aGlzLnRzPVcoZS50cyk/WC5ub3coKTplLnRzO2xldCBzPW51bGwsaT1udWxsO2lmKCFyKWlmKGUub2xkJiZlLm9sZC50cz09PXRoaXMudHMmJmUub2xkLnpvbmUuZXF1YWxzKHQpKVtzLGldPVtlLm9sZC5jLGUub2xkLm9dO2Vsc2V7bGV0IGE9dC5vZmZzZXQodGhpcy50cyk7cz1JYSh0aGlzLnRzLGEpLHI9TnVtYmVyLmlzTmFOKHMueWVhcik/bmV3IGRlKFxcXCJpbnZhbGlkIGlucHV0XFxcIik6bnVsbCxzPXI/bnVsbDpzLGk9cj9udWxsOmF9dGhpcy5fem9uZT10LHRoaXMubG9jPWUubG9jfHxuZS5jcmVhdGUoKSx0aGlzLmludmFsaWQ9cix0aGlzLndlZWtEYXRhPW51bGwsdGhpcy5jPXMsdGhpcy5vPWksdGhpcy5pc0x1eG9uRGF0ZVRpbWU9ITB9c3RhdGljIG5vdygpe3JldHVybiBuZXcgbih7fSl9c3RhdGljIGxvY2FsKCl7bGV0W2UsdF09QmEoYXJndW1lbnRzKSxbcixzLGksbyxhLHUsbF09dDtyZXR1cm4gTWEoe3llYXI6cixtb250aDpzLGRheTppLGhvdXI6byxtaW51dGU6YSxzZWNvbmQ6dSxtaWxsaXNlY29uZDpsfSxlKX1zdGF0aWMgdXRjKCl7bGV0W2UsdF09QmEoYXJndW1lbnRzKSxbcixzLGksbyxhLHUsbF09dDtyZXR1cm4gZS56b25lPWhlLnV0Y0luc3RhbmNlLE1hKHt5ZWFyOnIsbW9udGg6cyxkYXk6aSxob3VyOm8sbWludXRlOmEsc2Vjb25kOnUsbWlsbGlzZWNvbmQ6bH0sZSl9c3RhdGljIGZyb21KU0RhdGUoZSx0PXt9KXtsZXQgcj1QbyhlKT9lLnZhbHVlT2YoKTpOYU47aWYoTnVtYmVyLmlzTmFOKHIpKXJldHVybiBuLmludmFsaWQoXFxcImludmFsaWQgaW5wdXRcXFwiKTtsZXQgcz1WZSh0LnpvbmUsWC5kZWZhdWx0Wm9uZSk7cmV0dXJuIHMuaXNWYWxpZD9uZXcgbih7dHM6cix6b25lOnMsbG9jOm5lLmZyb21PYmplY3QodCl9KTpuLmludmFsaWQoWHIocykpfXN0YXRpYyBmcm9tTWlsbGlzKGUsdD17fSl7aWYodHQoZSkpcmV0dXJuIGU8LXhhfHxlPnhhP24uaW52YWxpZChcXFwiVGltZXN0YW1wIG91dCBvZiByYW5nZVxcXCIpOm5ldyBuKHt0czplLHpvbmU6VmUodC56b25lLFguZGVmYXVsdFpvbmUpLGxvYzpuZS5mcm9tT2JqZWN0KHQpfSk7dGhyb3cgbmV3IGZlKGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBlfSB3aXRoIHZhbHVlICR7ZX1gKX1zdGF0aWMgZnJvbVNlY29uZHMoZSx0PXt9KXtpZih0dChlKSlyZXR1cm4gbmV3IG4oe3RzOmUqMWUzLHpvbmU6VmUodC56b25lLFguZGVmYXVsdFpvbmUpLGxvYzpuZS5mcm9tT2JqZWN0KHQpfSk7dGhyb3cgbmV3IGZlKFxcXCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dFxcXCIpfXN0YXRpYyBmcm9tT2JqZWN0KGUsdD17fSl7ZT1lfHx7fTtsZXQgcj1WZSh0LnpvbmUsWC5kZWZhdWx0Wm9uZSk7aWYoIXIuaXNWYWxpZClyZXR1cm4gbi5pbnZhbGlkKFhyKHIpKTtsZXQgcz1YLm5vdygpLGk9Vyh0LnNwZWNpZmljT2Zmc2V0KT9yLm9mZnNldChzKTp0LnNwZWNpZmljT2Zmc2V0LG89Y24oZSxBYSksYT0hVyhvLm9yZGluYWwpLHU9IVcoby55ZWFyKSxsPSFXKG8ubW9udGgpfHwhVyhvLmRheSksZj11fHxsLGQ9by53ZWVrWWVhcnx8by53ZWVrTnVtYmVyLHA9bmUuZnJvbU9iamVjdCh0KTtpZigoZnx8YSkmJmQpdGhyb3cgbmV3IG10KFxcXCJDYW4ndCBtaXggd2Vla1llYXIvd2Vla051bWJlciB1bml0cyB3aXRoIHllYXIvbW9udGgvZGF5IG9yIG9yZGluYWxzXFxcIik7aWYobCYmYSl0aHJvdyBuZXcgbXQoXFxcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XFxcIik7bGV0IGg9ZHx8by53ZWVrZGF5JiYhZixiLGcsRD1JYShzLGkpO2g/KGI9cWMsZz1SYyxEPVpyKEQpKTphPyhiPVZjLGc9amMsRD1RcihEKSk6KGI9UmEsZz0kYSk7bGV0IFQ9ITE7Zm9yKGxldCBDIG9mIGIpe2xldCBWPW9bQ107VyhWKT9UP29bQ109Z1tDXTpvW0NdPURbQ106VD0hMH1sZXQgST1oP3ZhKG8pOmE/T2Eobyk6T2kobyksTj1JfHx4aShvKTtpZihOKXJldHVybiBuLmludmFsaWQoTik7bGV0IHk9aD9DaShvKTphP3ZpKG8pOm8sW3csdl09dHMoeSxpLHIpLE89bmV3IG4oe3RzOncsem9uZTpyLG86dixsb2M6cH0pO3JldHVybiBvLndlZWtkYXkmJmYmJmUud2Vla2RheSE9PU8ud2Vla2RheT9uLmludmFsaWQoXFxcIm1pc21hdGNoZWQgd2Vla2RheVxcXCIsYHlvdSBjYW4ndCBzcGVjaWZ5IGJvdGggYSB3ZWVrZGF5IG9mICR7by53ZWVrZGF5fSBhbmQgYSBkYXRlIG9mICR7Ty50b0lTTygpfWApOk99c3RhdGljIGZyb21JU08oZSx0PXt9KXtsZXRbcixzXT1pYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIklTTyA4NjAxXFxcIixlKX1zdGF0aWMgZnJvbVJGQzI4MjIoZSx0PXt9KXtsZXRbcixzXT1vYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIlJGQyAyODIyXFxcIixlKX1zdGF0aWMgZnJvbUhUVFAoZSx0PXt9KXtsZXRbcixzXT1hYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIkhUVFBcXFwiLHQpfXN0YXRpYyBmcm9tRm9ybWF0KGUsdCxyPXt9KXtpZihXKGUpfHxXKHQpKXRocm93IG5ldyBmZShcXFwiZnJvbUZvcm1hdCByZXF1aXJlcyBhbiBpbnB1dCBzdHJpbmcgYW5kIGEgZm9ybWF0XFxcIik7bGV0e2xvY2FsZTpzPW51bGwsbnVtYmVyaW5nU3lzdGVtOmk9bnVsbH09cixvPW5lLmZyb21PcHRzKHtsb2NhbGU6cyxudW1iZXJpbmdTeXN0ZW06aSxkZWZhdWx0VG9FTjohMH0pLFthLHUsbCxmXT1FYShvLGUsdCk7cmV0dXJuIGY/bi5pbnZhbGlkKGYpOmhyKGEsdSxyLGBmb3JtYXQgJHt0fWAsZSxsKX1zdGF0aWMgZnJvbVN0cmluZyhlLHQscj17fSl7cmV0dXJuIG4uZnJvbUZvcm1hdChlLHQscil9c3RhdGljIGZyb21TUUwoZSx0PXt9KXtsZXRbcixzXT1jYShlKTtyZXR1cm4gaHIocixzLHQsXFxcIlNRTFxcXCIsZSl9c3RhdGljIGludmFsaWQoZSx0PW51bGwpe2lmKCFlKXRocm93IG5ldyBmZShcXFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEYXRlVGltZSBpcyBpbnZhbGlkXFxcIik7bGV0IHI9ZSBpbnN0YW5jZW9mIGRlP2U6bmV3IGRlKGUsdCk7aWYoWC50aHJvd09uSW52YWxpZCl0aHJvdyBuZXcgVXIocik7cmV0dXJuIG5ldyBuKHtpbnZhbGlkOnJ9KX1zdGF0aWMgaXNEYXRlVGltZShlKXtyZXR1cm4gZSYmZS5pc0x1eG9uRGF0ZVRpbWV8fCExfWdldChlKXtyZXR1cm4gdGhpc1tlXX1nZXQgaXNWYWxpZCgpe3JldHVybiB0aGlzLmludmFsaWQ9PT1udWxsfWdldCBpbnZhbGlkUmVhc29uKCl7cmV0dXJuIHRoaXMuaW52YWxpZD90aGlzLmludmFsaWQucmVhc29uOm51bGx9Z2V0IGludmFsaWRFeHBsYW5hdGlvbigpe3JldHVybiB0aGlzLmludmFsaWQ/dGhpcy5pbnZhbGlkLmV4cGxhbmF0aW9uOm51bGx9Z2V0IGxvY2FsZSgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5sb2MubG9jYWxlOm51bGx9Z2V0IG51bWJlcmluZ1N5c3RlbSgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtOm51bGx9Z2V0IG91dHB1dENhbGVuZGFyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmxvYy5vdXRwdXRDYWxlbmRhcjpudWxsfWdldCB6b25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9Z2V0IHpvbmVOYW1lKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnpvbmUubmFtZTpudWxsfWdldCB5ZWFyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmMueWVhcjpOYU59Z2V0IHF1YXJ0ZXIoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP01hdGguY2VpbCh0aGlzLmMubW9udGgvMyk6TmFOfWdldCBtb250aCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLm1vbnRoOk5hTn1nZXQgZGF5KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLmMuZGF5Ok5hTn1nZXQgaG91cigpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLmhvdXI6TmFOfWdldCBtaW51dGUoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuYy5taW51dGU6TmFOfWdldCBzZWNvbmQoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuYy5zZWNvbmQ6TmFOfWdldCBtaWxsaXNlY29uZCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5jLm1pbGxpc2Vjb25kOk5hTn1nZXQgd2Vla1llYXIoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP0xpKHRoaXMpLndlZWtZZWFyOk5hTn1nZXQgd2Vla051bWJlcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/TGkodGhpcykud2Vla051bWJlcjpOYU59Z2V0IHdlZWtkYXkoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP0xpKHRoaXMpLndlZWtkYXk6TmFOfWdldCBvcmRpbmFsKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9Rcih0aGlzLmMpLm9yZGluYWw6TmFOfWdldCBtb250aFNob3J0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9ndC5tb250aHMoXFxcInNob3J0XFxcIix7bG9jT2JqOnRoaXMubG9jfSlbdGhpcy5tb250aC0xXTpudWxsfWdldCBtb250aExvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2d0Lm1vbnRocyhcXFwibG9uZ1xcXCIse2xvY09iajp0aGlzLmxvY30pW3RoaXMubW9udGgtMV06bnVsbH1nZXQgd2Vla2RheVNob3J0KCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9ndC53ZWVrZGF5cyhcXFwic2hvcnRcXFwiLHtsb2NPYmo6dGhpcy5sb2N9KVt0aGlzLndlZWtkYXktMV06bnVsbH1nZXQgd2Vla2RheUxvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP2d0LndlZWtkYXlzKFxcXCJsb25nXFxcIix7bG9jT2JqOnRoaXMubG9jfSlbdGhpcy53ZWVrZGF5LTFdOm51bGx9Z2V0IG9mZnNldCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/K3RoaXMubzpOYU59Z2V0IG9mZnNldE5hbWVTaG9ydCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cyx7Zm9ybWF0OlxcXCJzaG9ydFxcXCIsbG9jYWxlOnRoaXMubG9jYWxlfSk6bnVsbH1nZXQgb2Zmc2V0TmFtZUxvbmcoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMuem9uZS5vZmZzZXROYW1lKHRoaXMudHMse2Zvcm1hdDpcXFwibG9uZ1xcXCIsbG9jYWxlOnRoaXMubG9jYWxlfSk6bnVsbH1nZXQgaXNPZmZzZXRGaXhlZCgpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy56b25lLmlzVW5pdmVyc2FsOm51bGx9Z2V0IGlzSW5EU1QoKXtyZXR1cm4gdGhpcy5pc09mZnNldEZpeGVkPyExOnRoaXMub2Zmc2V0PnRoaXMuc2V0KHttb250aDoxLGRheToxfSkub2Zmc2V0fHx0aGlzLm9mZnNldD50aGlzLnNldCh7bW9udGg6NX0pLm9mZnNldH1nZXQgaXNJbkxlYXBZZWFyKCl7cmV0dXJuIGp0KHRoaXMueWVhcil9Z2V0IGRheXNJbk1vbnRoKCl7cmV0dXJuIHVuKHRoaXMueWVhcix0aGlzLm1vbnRoKX1nZXQgZGF5c0luWWVhcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/cXQodGhpcy55ZWFyKTpOYU59Z2V0IHdlZWtzSW5XZWVrWWVhcigpe3JldHVybiB0aGlzLmlzVmFsaWQ/bG4odGhpcy53ZWVrWWVhcik6TmFOfXJlc29sdmVkTG9jYWxlT3B0aW9ucyhlPXt9KXtsZXR7bG9jYWxlOnQsbnVtYmVyaW5nU3lzdGVtOnIsY2FsZW5kYXI6c309d2UuY3JlYXRlKHRoaXMubG9jLmNsb25lKGUpLGUpLnJlc29sdmVkT3B0aW9ucyh0aGlzKTtyZXR1cm57bG9jYWxlOnQsbnVtYmVyaW5nU3lzdGVtOnIsb3V0cHV0Q2FsZW5kYXI6c319dG9VVEMoZT0wLHQ9e30pe3JldHVybiB0aGlzLnNldFpvbmUoaGUuaW5zdGFuY2UoZSksdCl9dG9Mb2NhbCgpe3JldHVybiB0aGlzLnNldFpvbmUoWC5kZWZhdWx0Wm9uZSl9c2V0Wm9uZShlLHtrZWVwTG9jYWxUaW1lOnQ9ITEsa2VlcENhbGVuZGFyVGltZTpyPSExfT17fSl7aWYoZT1WZShlLFguZGVmYXVsdFpvbmUpLGUuZXF1YWxzKHRoaXMuem9uZSkpcmV0dXJuIHRoaXM7aWYoZS5pc1ZhbGlkKXtsZXQgcz10aGlzLnRzO2lmKHR8fHIpe2xldCBpPWUub2Zmc2V0KHRoaXMudHMpLG89dGhpcy50b09iamVjdCgpO1tzXT10cyhvLGksZSl9cmV0dXJuIGRyKHRoaXMse3RzOnMsem9uZTplfSl9ZWxzZSByZXR1cm4gbi5pbnZhbGlkKFhyKGUpKX1yZWNvbmZpZ3VyZSh7bG9jYWxlOmUsbnVtYmVyaW5nU3lzdGVtOnQsb3V0cHV0Q2FsZW5kYXI6cn09e30pe2xldCBzPXRoaXMubG9jLmNsb25lKHtsb2NhbGU6ZSxudW1iZXJpbmdTeXN0ZW06dCxvdXRwdXRDYWxlbmRhcjpyfSk7cmV0dXJuIGRyKHRoaXMse2xvYzpzfSl9c2V0TG9jYWxlKGUpe3JldHVybiB0aGlzLnJlY29uZmlndXJlKHtsb2NhbGU6ZX0pfXNldChlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PWNuKGUsQWEpLHI9IVcodC53ZWVrWWVhcil8fCFXKHQud2Vla051bWJlcil8fCFXKHQud2Vla2RheSkscz0hVyh0Lm9yZGluYWwpLGk9IVcodC55ZWFyKSxvPSFXKHQubW9udGgpfHwhVyh0LmRheSksYT1pfHxvLHU9dC53ZWVrWWVhcnx8dC53ZWVrTnVtYmVyO2lmKChhfHxzKSYmdSl0aHJvdyBuZXcgbXQoXFxcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcXFwiKTtpZihvJiZzKXRocm93IG5ldyBtdChcXFwiQ2FuJ3QgbWl4IG9yZGluYWwgZGF0ZXMgd2l0aCBtb250aC9kYXlcXFwiKTtsZXQgbDtyP2w9Q2koUihSKHt9LFpyKHRoaXMuYykpLHQpKTpXKHQub3JkaW5hbCk/KGw9UihSKHt9LHRoaXMudG9PYmplY3QoKSksdCksVyh0LmRheSkmJihsLmRheT1NYXRoLm1pbih1bihsLnllYXIsbC5tb250aCksbC5kYXkpKSk6bD12aShSKFIoe30sUXIodGhpcy5jKSksdCkpO2xldFtmLGRdPXRzKGwsdGhpcy5vLHRoaXMuem9uZSk7cmV0dXJuIGRyKHRoaXMse3RzOmYsbzpkfSl9cGx1cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PUIuZnJvbUR1cmF0aW9uTGlrZShlKTtyZXR1cm4gZHIodGhpcyxMYSh0aGlzLHQpKX1taW51cyhlKXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiB0aGlzO2xldCB0PUIuZnJvbUR1cmF0aW9uTGlrZShlKS5uZWdhdGUoKTtyZXR1cm4gZHIodGhpcyxMYSh0aGlzLHQpKX1zdGFydE9mKGUpe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJuIHRoaXM7bGV0IHQ9e30scj1CLm5vcm1hbGl6ZVVuaXQoZSk7c3dpdGNoKHIpe2Nhc2VcXFwieWVhcnNcXFwiOnQubW9udGg9MTtjYXNlXFxcInF1YXJ0ZXJzXFxcIjpjYXNlXFxcIm1vbnRoc1xcXCI6dC5kYXk9MTtjYXNlXFxcIndlZWtzXFxcIjpjYXNlXFxcImRheXNcXFwiOnQuaG91cj0wO2Nhc2VcXFwiaG91cnNcXFwiOnQubWludXRlPTA7Y2FzZVxcXCJtaW51dGVzXFxcIjp0LnNlY29uZD0wO2Nhc2VcXFwic2Vjb25kc1xcXCI6dC5taWxsaXNlY29uZD0wO2JyZWFrO2Nhc2VcXFwibWlsbGlzZWNvbmRzXFxcIjpicmVha31pZihyPT09XFxcIndlZWtzXFxcIiYmKHQud2Vla2RheT0xKSxyPT09XFxcInF1YXJ0ZXJzXFxcIil7bGV0IHM9TWF0aC5jZWlsKHRoaXMubW9udGgvMyk7dC5tb250aD0ocy0xKSozKzF9cmV0dXJuIHRoaXMuc2V0KHQpfWVuZE9mKGUpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy5wbHVzKHtbZV06MX0pLnN0YXJ0T2YoZSkubWludXMoMSk6dGhpc310b0Zvcm1hdChlLHQ9e30pe3JldHVybiB0aGlzLmlzVmFsaWQ/d2UuY3JlYXRlKHRoaXMubG9jLnJlZGVmYXVsdFRvRU4odCkpLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyh0aGlzLGUpOklpfXRvTG9jYWxlU3RyaW5nKGU9b24sdD17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD93ZS5jcmVhdGUodGhpcy5sb2MuY2xvbmUodCksZSkuZm9ybWF0RGF0ZVRpbWUodGhpcyk6SWl9dG9Mb2NhbGVQYXJ0cyhlPXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3dlLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShlKSxlKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpOltdfXRvSVNPKHtmb3JtYXQ6ZT1cXFwiZXh0ZW5kZWRcXFwiLHN1cHByZXNzU2Vjb25kczp0PSExLHN1cHByZXNzTWlsbGlzZWNvbmRzOnI9ITEsaW5jbHVkZU9mZnNldDpzPSEwLGV4dGVuZGVkWm9uZTppPSExfT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgbz1lPT09XFxcImV4dGVuZGVkXFxcIixhPU5pKHRoaXMsbyk7cmV0dXJuIGErPVxcXCJUXFxcIixhKz1OYSh0aGlzLG8sdCxyLHMsaSksYX10b0lTT0RhdGUoe2Zvcm1hdDplPVxcXCJleHRlbmRlZFxcXCJ9PXt9KXtyZXR1cm4gdGhpcy5pc1ZhbGlkP05pKHRoaXMsZT09PVxcXCJleHRlbmRlZFxcXCIpOm51bGx9dG9JU09XZWVrRGF0ZSgpe3JldHVybiBlcyh0aGlzLFxcXCJra2trLSdXJ1dXLWNcXFwiKX10b0lTT1RpbWUoe3N1cHByZXNzTWlsbGlzZWNvbmRzOmU9ITEsc3VwcHJlc3NTZWNvbmRzOnQ9ITEsaW5jbHVkZU9mZnNldDpyPSEwLGluY2x1ZGVQcmVmaXg6cz0hMSxleHRlbmRlZFpvbmU6aT0hMSxmb3JtYXQ6bz1cXFwiZXh0ZW5kZWRcXFwifT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD8ocz9cXFwiVFxcXCI6XFxcIlxcXCIpK05hKHRoaXMsbz09PVxcXCJleHRlbmRlZFxcXCIsdCxlLHIsaSk6bnVsbH10b1JGQzI4MjIoKXtyZXR1cm4gZXModGhpcyxcXFwiRUVFLCBkZCBMTEwgeXl5eSBISDptbTpzcyBaWlpcXFwiLCExKX10b0hUVFAoKXtyZXR1cm4gZXModGhpcy50b1VUQygpLFxcXCJFRUUsIGRkIExMTCB5eXl5IEhIOm1tOnNzICdHTVQnXFxcIil9dG9TUUxEYXRlKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9OaSh0aGlzLCEwKTpudWxsfXRvU1FMVGltZSh7aW5jbHVkZU9mZnNldDplPSEwLGluY2x1ZGVab25lOnQ9ITEsaW5jbHVkZU9mZnNldFNwYWNlOnI9ITB9PXt9KXtsZXQgcz1cXFwiSEg6bW06c3MuU1NTXFxcIjtyZXR1cm4odHx8ZSkmJihyJiYocys9XFxcIiBcXFwiKSx0P3MrPVxcXCJ6XFxcIjplJiYocys9XFxcIlpaXFxcIikpLGVzKHRoaXMscywhMCl9dG9TUUwoZT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9gJHt0aGlzLnRvU1FMRGF0ZSgpfSAke3RoaXMudG9TUUxUaW1lKGUpfWA6bnVsbH10b1N0cmluZygpe3JldHVybiB0aGlzLmlzVmFsaWQ/dGhpcy50b0lTTygpOklpfXZhbHVlT2YoKXtyZXR1cm4gdGhpcy50b01pbGxpcygpfXRvTWlsbGlzKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD90aGlzLnRzOk5hTn10b1NlY29uZHMoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3RoaXMudHMvMWUzOk5hTn10b1VuaXhJbnRlZ2VyKCl7cmV0dXJuIHRoaXMuaXNWYWxpZD9NYXRoLmZsb29yKHRoaXMudHMvMWUzKTpOYU59dG9KU09OKCl7cmV0dXJuIHRoaXMudG9JU08oKX10b0JTT04oKXtyZXR1cm4gdGhpcy50b0pTRGF0ZSgpfXRvT2JqZWN0KGU9e30pe2lmKCF0aGlzLmlzVmFsaWQpcmV0dXJue307bGV0IHQ9Uih7fSx0aGlzLmMpO3JldHVybiBlLmluY2x1ZGVDb25maWcmJih0Lm91dHB1dENhbGVuZGFyPXRoaXMub3V0cHV0Q2FsZW5kYXIsdC5udW1iZXJpbmdTeXN0ZW09dGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtLHQubG9jYWxlPXRoaXMubG9jLmxvY2FsZSksdH10b0pTRGF0ZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmlzVmFsaWQ/dGhpcy50czpOYU4pfWRpZmYoZSx0PVxcXCJtaWxsaXNlY29uZHNcXFwiLHI9e30pe2lmKCF0aGlzLmlzVmFsaWR8fCFlLmlzVmFsaWQpcmV0dXJuIEIuaW52YWxpZChcXFwiY3JlYXRlZCBieSBkaWZmaW5nIGFuIGludmFsaWQgRGF0ZVRpbWVcXFwiKTtsZXQgcz1SKHtsb2NhbGU6dGhpcy5sb2NhbGUsbnVtYmVyaW5nU3lzdGVtOnRoaXMubnVtYmVyaW5nU3lzdGVtfSxyKSxpPSRvKHQpLm1hcChCLm5vcm1hbGl6ZVVuaXQpLG89ZS52YWx1ZU9mKCk+dGhpcy52YWx1ZU9mKCksYT1vP3RoaXM6ZSx1PW8/ZTp0aGlzLGw9cGEoYSx1LGkscyk7cmV0dXJuIG8/bC5uZWdhdGUoKTpsfWRpZmZOb3coZT1cXFwibWlsbGlzZWNvbmRzXFxcIix0PXt9KXtyZXR1cm4gdGhpcy5kaWZmKG4ubm93KCksZSx0KX11bnRpbChlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkP3l0LmZyb21EYXRlVGltZXModGhpcyxlKTp0aGlzfWhhc1NhbWUoZSx0KXtpZighdGhpcy5pc1ZhbGlkKXJldHVybiExO2xldCByPWUudmFsdWVPZigpLHM9dGhpcy5zZXRab25lKGUuem9uZSx7a2VlcExvY2FsVGltZTohMH0pO3JldHVybiBzLnN0YXJ0T2YodCk8PXImJnI8PXMuZW5kT2YodCl9ZXF1YWxzKGUpe3JldHVybiB0aGlzLmlzVmFsaWQmJmUuaXNWYWxpZCYmdGhpcy52YWx1ZU9mKCk9PT1lLnZhbHVlT2YoKSYmdGhpcy56b25lLmVxdWFscyhlLnpvbmUpJiZ0aGlzLmxvYy5lcXVhbHMoZS5sb2MpfXRvUmVsYXRpdmUoZT17fSl7aWYoIXRoaXMuaXNWYWxpZClyZXR1cm4gbnVsbDtsZXQgdD1lLmJhc2V8fG4uZnJvbU9iamVjdCh7fSx7em9uZTp0aGlzLnpvbmV9KSxyPWUucGFkZGluZz90aGlzPHQ/LWUucGFkZGluZzplLnBhZGRpbmc6MCxzPVtcXFwieWVhcnNcXFwiLFxcXCJtb250aHNcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCJdLGk9ZS51bml0O3JldHVybiBBcnJheS5pc0FycmF5KGUudW5pdCkmJihzPWUudW5pdCxpPXZvaWQgMCksX2EodCx0aGlzLnBsdXMocikseWUoUih7fSxlKSx7bnVtZXJpYzpcXFwiYWx3YXlzXFxcIix1bml0czpzLHVuaXQ6aX0pKX10b1JlbGF0aXZlQ2FsZW5kYXIoZT17fSl7cmV0dXJuIHRoaXMuaXNWYWxpZD9fYShlLmJhc2V8fG4uZnJvbU9iamVjdCh7fSx7em9uZTp0aGlzLnpvbmV9KSx0aGlzLHllKFIoe30sZSkse251bWVyaWM6XFxcImF1dG9cXFwiLHVuaXRzOltcXFwieWVhcnNcXFwiLFxcXCJtb250aHNcXFwiLFxcXCJkYXlzXFxcIl0sY2FsZW5kYXJ5OiEwfSkpOm51bGx9c3RhdGljIG1pbiguLi5lKXtpZighZS5ldmVyeShuLmlzRGF0ZVRpbWUpKXRocm93IG5ldyBmZShcXFwibWluIHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXFxcIik7cmV0dXJuIFhzKGUsdD0+dC52YWx1ZU9mKCksTWF0aC5taW4pfXN0YXRpYyBtYXgoLi4uZSl7aWYoIWUuZXZlcnkobi5pc0RhdGVUaW1lKSl0aHJvdyBuZXcgZmUoXFxcIm1heCByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGJlIERhdGVUaW1lc1xcXCIpO3JldHVybiBYcyhlLHQ9PnQudmFsdWVPZigpLE1hdGgubWF4KX1zdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4oZSx0LHI9e30pe2xldHtsb2NhbGU6cz1udWxsLG51bWJlcmluZ1N5c3RlbTppPW51bGx9PXIsbz1uZS5mcm9tT3B0cyh7bG9jYWxlOnMsbnVtYmVyaW5nU3lzdGVtOmksZGVmYXVsdFRvRU46ITB9KTtyZXR1cm4ga2kobyxlLHQpfXN0YXRpYyBmcm9tU3RyaW5nRXhwbGFpbihlLHQscj17fSl7cmV0dXJuIG4uZnJvbUZvcm1hdEV4cGxhaW4oZSx0LHIpfXN0YXRpYyBnZXQgREFURV9TSE9SVCgpe3JldHVybiBvbn1zdGF0aWMgZ2V0IERBVEVfTUVEKCl7cmV0dXJuICRufXN0YXRpYyBnZXQgREFURV9NRURfV0lUSF9XRUVLREFZKCl7cmV0dXJuIEdzfXN0YXRpYyBnZXQgREFURV9GVUxMKCl7cmV0dXJuIFJufXN0YXRpYyBnZXQgREFURV9IVUdFKCl7cmV0dXJuIGpufXN0YXRpYyBnZXQgVElNRV9TSU1QTEUoKXtyZXR1cm4gcW59c3RhdGljIGdldCBUSU1FX1dJVEhfU0VDT05EUygpe3JldHVybiBWbn1zdGF0aWMgZ2V0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQoKXtyZXR1cm4gVW59c3RhdGljIGdldCBUSU1FX1dJVEhfTE9OR19PRkZTRVQoKXtyZXR1cm4gS259c3RhdGljIGdldCBUSU1FXzI0X1NJTVBMRSgpe3JldHVybiBXbn1zdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9TRUNPTkRTKCl7cmV0dXJuIEhufXN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCgpe3JldHVybiBKbn1zdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCgpe3JldHVybiB6bn1zdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCl7cmV0dXJuIFlufXN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKCl7cmV0dXJuIEdufXN0YXRpYyBnZXQgREFURVRJTUVfTUVEKCl7cmV0dXJuIFpufXN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpe3JldHVybiBRbn1zdGF0aWMgZ2V0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkoKXtyZXR1cm4gWnN9c3RhdGljIGdldCBEQVRFVElNRV9GVUxMKCl7cmV0dXJuIFhufXN0YXRpYyBnZXQgREFURVRJTUVfRlVMTF9XSVRIX1NFQ09ORFMoKXtyZXR1cm4gZXJ9c3RhdGljIGdldCBEQVRFVElNRV9IVUdFKCl7cmV0dXJuIHRyfXN0YXRpYyBnZXQgREFURVRJTUVfSFVHRV9XSVRIX1NFQ09ORFMoKXtyZXR1cm4gbnJ9fTtmdW5jdGlvbiBibihuKXtpZihxLmlzRGF0ZVRpbWUobikpcmV0dXJuIG47aWYobiYmbi52YWx1ZU9mJiZ0dChuLnZhbHVlT2YoKSkpcmV0dXJuIHEuZnJvbUpTRGF0ZShuKTtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpcmV0dXJuIHEuZnJvbU9iamVjdChuKTt0aHJvdyBuZXcgZmUoYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7bn0sIG9mIHR5cGUgJHt0eXBlb2Ygbn1gKX12YXIgYnQ9VnIobnMoKSk7dmFyIEZuPSgpPT4vWyMqMC05XVxcXFx1RkUwRj9cXFxcdTIwRTN8W1xcXFx4QTlcXFxceEFFXFxcXHUyMDNDXFxcXHUyMDQ5XFxcXHUyMTIyXFxcXHUyMTM5XFxcXHUyMTk0LVxcXFx1MjE5OVxcXFx1MjFBOVxcXFx1MjFBQVxcXFx1MjMxQVxcXFx1MjMxQlxcXFx1MjMyOFxcXFx1MjNDRlxcXFx1MjNFRC1cXFxcdTIzRUZcXFxcdTIzRjFcXFxcdTIzRjJcXFxcdTIzRjgtXFxcXHUyM0ZBXFxcXHUyNEMyXFxcXHUyNUFBXFxcXHUyNUFCXFxcXHUyNUI2XFxcXHUyNUMwXFxcXHUyNUZCXFxcXHUyNUZDXFxcXHUyNUZFXFxcXHUyNjAwLVxcXFx1MjYwNFxcXFx1MjYwRVxcXFx1MjYxMVxcXFx1MjYxNFxcXFx1MjYxNVxcXFx1MjYxOFxcXFx1MjYyMFxcXFx1MjYyMlxcXFx1MjYyM1xcXFx1MjYyNlxcXFx1MjYyQVxcXFx1MjYyRVxcXFx1MjYyRlxcXFx1MjYzOC1cXFxcdTI2M0FcXFxcdTI2NDBcXFxcdTI2NDJcXFxcdTI2NDgtXFxcXHUyNjUzXFxcXHUyNjVGXFxcXHUyNjYwXFxcXHUyNjYzXFxcXHUyNjY1XFxcXHUyNjY2XFxcXHUyNjY4XFxcXHUyNjdCXFxcXHUyNjdFXFxcXHUyNjdGXFxcXHUyNjkyXFxcXHUyNjk0LVxcXFx1MjY5N1xcXFx1MjY5OVxcXFx1MjY5QlxcXFx1MjY5Q1xcXFx1MjZBMFxcXFx1MjZBN1xcXFx1MjZBQVxcXFx1MjZCMFxcXFx1MjZCMVxcXFx1MjZCRFxcXFx1MjZCRVxcXFx1MjZDNFxcXFx1MjZDOFxcXFx1MjZDRlxcXFx1MjZEMVxcXFx1MjZFOVxcXFx1MjZGMC1cXFxcdTI2RjVcXFxcdTI2RjdcXFxcdTI2RjhcXFxcdTI2RkFcXFxcdTI3MDJcXFxcdTI3MDhcXFxcdTI3MDlcXFxcdTI3MEZcXFxcdTI3MTJcXFxcdTI3MTRcXFxcdTI3MTZcXFxcdTI3MURcXFxcdTI3MjFcXFxcdTI3MzNcXFxcdTI3MzRcXFxcdTI3NDRcXFxcdTI3NDdcXFxcdTI3NTdcXFxcdTI3NjNcXFxcdTI3QTFcXFxcdTI5MzRcXFxcdTI5MzVcXFxcdTJCMDUtXFxcXHUyQjA3XFxcXHUyQjFCXFxcXHUyQjFDXFxcXHUyQjU1XFxcXHUzMDMwXFxcXHUzMDNEXFxcXHUzMjk3XFxcXHUzMjk5XVxcXFx1RkUwRj98W1xcXFx1MjYxRFxcXFx1MjcwQ1xcXFx1MjcwRF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVGRTBGKT98W1xcXFx1MjcwQVxcXFx1MjcwQl0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pP3xbXFxcXHUyM0U5LVxcXFx1MjNFQ1xcXFx1MjNGMFxcXFx1MjNGM1xcXFx1MjVGRFxcXFx1MjY5M1xcXFx1MjZBMVxcXFx1MjZBQlxcXFx1MjZDNVxcXFx1MjZDRVxcXFx1MjZENFxcXFx1MjZFQVxcXFx1MjZGRFxcXFx1MjcwNVxcXFx1MjcyOFxcXFx1Mjc0Q1xcXFx1Mjc0RVxcXFx1Mjc1My1cXFxcdTI3NTVcXFxcdTI3OTUtXFxcXHUyNzk3XFxcXHUyN0IwXFxcXHUyN0JGXFxcXHUyQjUwXXxcXFxcdTI2RDNcXFxcdUZFMEY/KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQ0E1KT98XFxcXHUyNkY5KD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RkUwRik/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98XFxcXHUyNzY0XFxcXHVGRTBGPyg/OlxcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REQyNXxcXFxcdUQ4M0VcXFxcdURFNzkpKT98XFxcXHVEODNDKD86W1xcXFx1REMwNFxcXFx1REQ3MFxcXFx1REQ3MVxcXFx1REQ3RVxcXFx1REQ3RlxcXFx1REUwMlxcXFx1REUzN1xcXFx1REYyMVxcXFx1REYyNC1cXFxcdURGMkNcXFxcdURGMzZcXFxcdURGN0RcXFxcdURGOTZcXFxcdURGOTdcXFxcdURGOTktXFxcXHVERjlCXFxcXHVERjlFXFxcXHVERjlGXFxcXHVERkNEXFxcXHVERkNFXFxcXHVERkQ0LVxcXFx1REZERlxcXFx1REZGNVxcXFx1REZGN11cXFxcdUZFMEY/fFtcXFxcdURGODVcXFxcdURGQzJcXFxcdURGQzddKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT98W1xcXFx1REZDNFxcXFx1REZDQV0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pPyg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFtcXFxcdURGQ0JcXFxcdURGQ0NdKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RkUwRik/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98W1xcXFx1RENDRlxcXFx1REQ4RVxcXFx1REQ5MS1cXFxcdUREOUFcXFxcdURFMDFcXFxcdURFMUFcXFxcdURFMkZcXFxcdURFMzItXFxcXHVERTM2XFxcXHVERTM4LVxcXFx1REUzQVxcXFx1REU1MFxcXFx1REU1MVxcXFx1REYwMC1cXFxcdURGMjBcXFxcdURGMkQtXFxcXHVERjM1XFxcXHVERjM3LVxcXFx1REY0M1xcXFx1REY0NS1cXFxcdURGNEFcXFxcdURGNEMtXFxcXHVERjdDXFxcXHVERjdFLVxcXFx1REY4NFxcXFx1REY4Ni1cXFxcdURGOTNcXFxcdURGQTAtXFxcXHVERkMxXFxcXHVERkM1XFxcXHVERkM2XFxcXHVERkM4XFxcXHVERkM5XFxcXHVERkNGLVxcXFx1REZEM1xcXFx1REZFMC1cXFxcdURGRjBcXFxcdURGRjgtXFxcXHVERkZGXXxcXFxcdURERTZcXFxcdUQ4M0NbXFxcXHVEREU4LVxcXFx1RERFQ1xcXFx1RERFRVxcXFx1RERGMVxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGNi1cXFxcdURERkFcXFxcdURERkNcXFxcdURERkRcXFxcdURERkZdfFxcXFx1RERFN1xcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERTdcXFxcdURERTktXFxcXHVEREVGXFxcXHVEREYxLVxcXFx1RERGNFxcXFx1RERGNi1cXFxcdURERjlcXFxcdURERkJcXFxcdURERkNcXFxcdURERkVcXFxcdURERkZdfFxcXFx1RERFOFxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERThcXFxcdURERTlcXFxcdURERUItXFxcXHVEREVFXFxcXHVEREYwLVxcXFx1RERGN1xcXFx1RERGQS1cXFxcdURERkZdfFxcXFx1RERFOVxcXFx1RDgzQ1tcXFxcdURERUFcXFxcdURERUNcXFxcdURERUZcXFxcdURERjBcXFxcdURERjJcXFxcdURERjRcXFxcdURERkZdfFxcXFx1RERFQVxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERThcXFxcdURERUFcXFxcdURERUNcXFxcdURERURcXFxcdURERjctXFxcXHVEREZBXXxcXFxcdURERUJcXFxcdUQ4M0NbXFxcXHVEREVFLVxcXFx1RERGMFxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGN118XFxcXHVEREVDXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFN1xcXFx1RERFOS1cXFxcdURERUVcXFxcdURERjEtXFxcXHVEREYzXFxcXHVEREY1LVxcXFx1RERGQVxcXFx1RERGQ1xcXFx1RERGRV18XFxcXHVEREVEXFxcXHVEODNDW1xcXFx1RERGMFxcXFx1RERGMlxcXFx1RERGM1xcXFx1RERGN1xcXFx1RERGOVxcXFx1RERGQV18XFxcXHVEREVFXFxcXHVEODNDW1xcXFx1RERFOC1cXFxcdURERUFcXFxcdURERjEtXFxcXHVEREY0XFxcXHVEREY2LVxcXFx1RERGOV18XFxcXHVEREVGXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERGMlxcXFx1RERGNFxcXFx1RERGNV18XFxcXHVEREYwXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERFQy1cXFxcdURERUVcXFxcdURERjJcXFxcdURERjNcXFxcdURERjVcXFxcdURERjdcXFxcdURERkNcXFxcdURERkVcXFxcdURERkZdfFxcXFx1RERGMVxcXFx1RDgzQ1tcXFxcdURERTYtXFxcXHVEREU4XFxcXHVEREVFXFxcXHVEREYwXFxcXHVEREY3LVxcXFx1RERGQlxcXFx1RERGRV18XFxcXHVEREYyXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFOC1cXFxcdURERURcXFxcdURERjAtXFxcXHVEREZGXXxcXFxcdURERjNcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREU4XFxcXHVEREVBLVxcXFx1RERFQ1xcXFx1RERFRVxcXFx1RERGMVxcXFx1RERGNFxcXFx1RERGNVxcXFx1RERGN1xcXFx1RERGQVxcXFx1RERGRl18XFxcXHVEREY0XFxcXHVEODNDXFxcXHVEREYyfFxcXFx1RERGNVxcXFx1RDgzQ1tcXFxcdURERTZcXFxcdURERUEtXFxcXHVEREVEXFxcXHVEREYwLVxcXFx1RERGM1xcXFx1RERGNy1cXFxcdURERjlcXFxcdURERkNcXFxcdURERkVdfFxcXFx1RERGNlxcXFx1RDgzQ1xcXFx1RERFNnxcXFxcdURERjdcXFxcdUQ4M0NbXFxcXHVEREVBXFxcXHVEREY0XFxcXHVEREY4XFxcXHVEREZBXFxcXHVEREZDXXxcXFxcdURERjhcXFxcdUQ4M0NbXFxcXHVEREU2LVxcXFx1RERFQVxcXFx1RERFQy1cXFxcdURERjRcXFxcdURERjctXFxcXHVEREY5XFxcXHVEREZCXFxcXHVEREZELVxcXFx1RERGRl18XFxcXHVEREY5XFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERFOFxcXFx1RERFOVxcXFx1RERFQi1cXFxcdURERURcXFxcdURERUYtXFxcXHVEREY0XFxcXHVEREY3XFxcXHVEREY5XFxcXHVEREZCXFxcXHVEREZDXFxcXHVEREZGXXxcXFxcdURERkFcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREVDXFxcXHVEREYyXFxcXHVEREYzXFxcXHVEREY4XFxcXHVEREZFXFxcXHVEREZGXXxcXFxcdURERkJcXFxcdUQ4M0NbXFxcXHVEREU2XFxcXHVEREU4XFxcXHVEREVBXFxcXHVEREVDXFxcXHVEREVFXFxcXHVEREYzXFxcXHVEREZBXXxcXFxcdURERkNcXFxcdUQ4M0NbXFxcXHVEREVCXFxcXHVEREY4XXxcXFxcdURERkRcXFxcdUQ4M0NcXFxcdURERjB8XFxcXHVEREZFXFxcXHVEODNDW1xcXFx1RERFQVxcXFx1RERGOV18XFxcXHVEREZGXFxcXHVEODNDW1xcXFx1RERFNlxcXFx1RERGMlxcXFx1RERGQ118XFxcXHVERjQ0KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVERkVCKT98XFxcXHVERjRCKD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVERkU5KT98XFxcXHVERkMzKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98XFxcXHUyN0ExXFxcXHVGRTBGPykpP3xcXFxcdURGRjNcXFxcdUZFMEY/KD86XFxcXHUyMDBEKD86XFxcXHUyNkE3XFxcXHVGRTBGP3xcXFxcdUQ4M0NcXFxcdURGMDgpKT98XFxcXHVERkY0KD86XFxcXHUyMDBEXFxcXHUyNjIwXFxcXHVGRTBGP3xcXFxcdURCNDBcXFxcdURDNjdcXFxcdURCNDBcXFxcdURDNjJcXFxcdURCNDAoPzpcXFxcdURDNjVcXFxcdURCNDBcXFxcdURDNkVcXFxcdURCNDBcXFxcdURDNjd8XFxcXHVEQzczXFxcXHVEQjQwXFxcXHVEQzYzXFxcXHVEQjQwXFxcXHVEQzc0fFxcXFx1REM3N1xcXFx1REI0MFxcXFx1REM2Q1xcXFx1REI0MFxcXFx1REM3MylcXFxcdURCNDBcXFxcdURDN0YpPyl8XFxcXHVEODNEKD86W1xcXFx1REMzRlxcXFx1RENGRFxcXFx1REQ0OVxcXFx1REQ0QVxcXFx1REQ2RlxcXFx1REQ3MFxcXFx1REQ3M1xcXFx1REQ3Ni1cXFxcdURENzlcXFxcdUREODdcXFxcdUREOEEtXFxcXHVERDhEXFxcXHVEREE1XFxcXHVEREE4XFxcXHVEREIxXFxcXHVEREIyXFxcXHVEREJDXFxcXHVEREMyLVxcXFx1RERDNFxcXFx1REREMS1cXFxcdURERDNcXFxcdUREREMtXFxcXHVERERFXFxcXHVEREUxXFxcXHVEREUzXFxcXHVEREU4XFxcXHVEREVGXFxcXHVEREYzXFxcXHVEREZBXFxcXHVERUNCXFxcXHVERUNELVxcXFx1REVDRlxcXFx1REVFMC1cXFxcdURFRTVcXFxcdURFRTlcXFxcdURFRjBcXFxcdURFRjNdXFxcXHVGRTBGP3xbXFxcXHVEQzQyXFxcXHVEQzQzXFxcXHVEQzQ2LVxcXFx1REM1MFxcXFx1REM2NlxcXFx1REM2N1xcXFx1REM2Qi1cXFxcdURDNkRcXFxcdURDNzJcXFxcdURDNzQtXFxcXHVEQzc2XFxcXHVEQzc4XFxcXHVEQzdDXFxcXHVEQzgzXFxcXHVEQzg1XFxcXHVEQzhGXFxcXHVEQzkxXFxcXHVEQ0FBXFxcXHVERDdBXFxcXHVERDk1XFxcXHVERDk2XFxcXHVERTRDXFxcXHVERTRGXFxcXHVERUMwXFxcXHVERUNDXSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSk/fFtcXFxcdURDNkVcXFxcdURDNzBcXFxcdURDNzFcXFxcdURDNzNcXFxcdURDNzdcXFxcdURDODFcXFxcdURDODJcXFxcdURDODZcXFxcdURDODdcXFxcdURFNDUtXFxcXHVERTQ3XFxcXHVERTRCXFxcXHVERTREXFxcXHVERTRFXFxcXHVERUEzXFxcXHVERUI0XFxcXHVERUI1XSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSk/KD86XFxcXHUyMDBEW1xcXFx1MjY0MFxcXFx1MjY0Ml1cXFxcdUZFMEY/KT98W1xcXFx1REQ3NFxcXFx1REQ5MF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVGRTBGKT98W1xcXFx1REMwMC1cXFxcdURDMDdcXFxcdURDMDktXFxcXHVEQzE0XFxcXHVEQzE2LVxcXFx1REMyNVxcXFx1REMyNy1cXFxcdURDM0FcXFxcdURDM0MtXFxcXHVEQzNFXFxcXHVEQzQwXFxcXHVEQzQ0XFxcXHVEQzQ1XFxcXHVEQzUxLVxcXFx1REM2NVxcXFx1REM2QVxcXFx1REM3OS1cXFxcdURDN0JcXFxcdURDN0QtXFxcXHVEQzgwXFxcXHVEQzg0XFxcXHVEQzg4LVxcXFx1REM4RVxcXFx1REM5MFxcXFx1REM5Mi1cXFxcdURDQTlcXFxcdURDQUItXFxcXHVEQ0ZDXFxcXHVEQ0ZGLVxcXFx1REQzRFxcXFx1REQ0Qi1cXFxcdURENEVcXFxcdURENTAtXFxcXHVERDY3XFxcXHVEREE0XFxcXHVEREZCLVxcXFx1REUyRFxcXFx1REUyRi1cXFxcdURFMzRcXFxcdURFMzctXFxcXHVERTQxXFxcXHVERTQzXFxcXHVERTQ0XFxcXHVERTQ4LVxcXFx1REU0QVxcXFx1REU4MC1cXFxcdURFQTJcXFxcdURFQTQtXFxcXHVERUIzXFxcXHVERUI3LVxcXFx1REVCRlxcXFx1REVDMS1cXFxcdURFQzVcXFxcdURFRDAtXFxcXHVERUQyXFxcXHVERUQ1LVxcXFx1REVEN1xcXFx1REVEQy1cXFxcdURFREZcXFxcdURFRUJcXFxcdURFRUNcXFxcdURFRjQtXFxcXHVERUZDXFxcXHVERkUwLVxcXFx1REZFQlxcXFx1REZGMF18XFxcXHVEQzA4KD86XFxcXHUyMDBEXFxcXHUyQjFCKT98XFxcXHVEQzE1KD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREJBKT98XFxcXHVEQzI2KD86XFxcXHUyMDBEKD86XFxcXHUyQjFCfFxcXFx1RDgzRFxcXFx1REQyNSkpP3xcXFxcdURDM0IoPzpcXFxcdTIwMERcXFxcdTI3NDRcXFxcdUZFMEY/KT98XFxcXHVEQzQxXFxcXHVGRTBGPyg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RERFOFxcXFx1RkUwRj8pP3xcXFxcdURDNjgoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4fFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldXFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPyl8W1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPyl8XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdKSl8XFxcXHVEODNDKD86XFxcXHVERkZCKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0QpP1xcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQy1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkMoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RcXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCXFxcXHVERkZELVxcXFx1REZGRl0pKSk/fFxcXFx1REZGRCg/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEKT9cXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkNcXFxcdURGRkVcXFxcdURGRkZdKSkpP3xcXFxcdURGRkUoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OlxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRCk/XFxcXHVEQzY4XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RcXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRFxcXFx1REZGRl0pKSk/fFxcXFx1REZGRig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEKT9cXFxcdURDNjhcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2OFxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZFXSkpKT8pKT98XFxcXHVEQzY5KD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0QpP1tcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRCg/OltcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1REM2Nig/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1REM2Nik/fFxcXFx1REM2Nyg/OlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjZcXFxcdURDNjddKT98XFxcXHVEQzY5XFxcXHUyMDBEXFxcXHVEODNEKD86XFxcXHVEQzY2KD86XFxcXHUyMDBEXFxcXHVEODNEXFxcXHVEQzY2KT98XFxcXHVEQzY3KD86XFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2NlxcXFx1REM2N10pPykpfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXSkpfFxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEXFxcXHVEODNEKD86W1xcXFx1REM2OFxcXFx1REM2OV18XFxcXHVEQzhCXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV0pXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XVxcXFx1RDgzQ1tcXFxcdURGRkMtXFxcXHVERkZGXSkpKT98XFxcXHVERkZDKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpbXFxcXHVEQzY4XFxcXHVEQzY5XXxcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XSlcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldXFxcXHVEODNDW1xcXFx1REZGQlxcXFx1REZGRC1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkQoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldKVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV1cXFxcdUQ4M0NbXFxcXHVERkZCXFxcXHVERkZDXFxcXHVERkZFXFxcXHVERkZGXSkpKT98XFxcXHVERkZFKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMERcXFxcdUQ4M0QoPzpbXFxcXHVEQzY4XFxcXHVEQzY5XXxcXFxcdURDOEJcXFxcdTIwMERcXFxcdUQ4M0RbXFxcXHVEQzY4XFxcXHVEQzY5XSlcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkRcXFxcdURGRkZdKSkpP3xcXFxcdURGRkYoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRFxcXFx1RDgzRCg/OltcXFxcdURDNjhcXFxcdURDNjldfFxcXFx1REM4QlxcXFx1MjAwRFxcXFx1RDgzRFtcXFxcdURDNjhcXFxcdURDNjldKVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNEW1xcXFx1REM2OFxcXFx1REM2OV1cXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRV0pKSk/KSk/fFxcXFx1REM2Rig/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFxcXFx1REQ3NSg/OlxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXXxcXFxcdUZFMEYpPyg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFxcXFx1REUyRSg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RENBOCk/fFxcXFx1REUzNSg/OlxcXFx1MjAwRFxcXFx1RDgzRFxcXFx1RENBQik/fFxcXFx1REUzNig/OlxcXFx1MjAwRFxcXFx1RDgzQ1xcXFx1REYyQlxcXFx1RkUwRj8pP3xcXFxcdURFNDIoPzpcXFxcdTIwMERbXFxcXHUyMTk0XFxcXHUyMTk1XVxcXFx1RkUwRj8pP3xcXFxcdURFQjYoPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pPyg/OlxcXFx1MjAwRCg/OltcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xcXFxcdTI3QTFcXFxcdUZFMEY/KSk/KXxcXFxcdUQ4M0UoPzpbXFxcXHVERDBDXFxcXHVERDBGXFxcXHVERDE4LVxcXFx1REQxRlxcXFx1REQzMC1cXFxcdUREMzRcXFxcdUREMzZcXFxcdURENzdcXFxcdUREQjVcXFxcdUREQjZcXFxcdUREQkJcXFxcdURERDJcXFxcdURERDNcXFxcdURERDVcXFxcdURFQzMtXFxcXHVERUM1XFxcXHVERUYwXFxcXHVERUYyLVxcXFx1REVGOF0oPzpcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pP3xbXFxcXHVERDI2XFxcXHVERDM1XFxcXHVERDM3LVxcXFx1REQzOVxcXFx1REQzRFxcXFx1REQzRVxcXFx1RERCOFxcXFx1RERCOVxcXFx1RERDRFxcXFx1RERDRlxcXFx1RERENFxcXFx1RERENi1cXFxcdURERERdKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMERbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8pP3xbXFxcXHVERERFXFxcXHVERERGXSg/OlxcXFx1MjAwRFtcXFxcdTI2NDBcXFxcdTI2NDJdXFxcXHVGRTBGPyk/fFtcXFxcdUREMERcXFxcdUREMEVcXFxcdUREMTAtXFxcXHVERDE3XFxcXHVERDIwLVxcXFx1REQyNVxcXFx1REQyNy1cXFxcdUREMkZcXFxcdUREM0FcXFxcdUREM0YtXFxcXHVERDQ1XFxcXHVERDQ3LVxcXFx1REQ3NlxcXFx1REQ3OC1cXFxcdUREQjRcXFxcdUREQjdcXFxcdUREQkFcXFxcdUREQkMtXFxcXHVERENDXFxcXHVEREQwXFxcXHVEREUwLVxcXFx1RERGRlxcXFx1REU3MC1cXFxcdURFN0NcXFxcdURFODAtXFxcXHVERTg5XFxcXHVERThGLVxcXFx1REVDMlxcXFx1REVDNlxcXFx1REVDRS1cXFxcdURFRENcXFxcdURFREYtXFxcXHVERUU5XXxcXFxcdUREM0MoPzpcXFxcdTIwMERbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj98XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT98XFxcXHVERENFKD86XFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKT8oPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjQwXFxcXHUyNjQyXVxcXFx1RkUwRj8oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98XFxcXHUyN0ExXFxcXHVGRTBGPykpP3xcXFxcdURERDEoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMXxcXFxcdURERDFcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIoPzpcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIpP3xcXFxcdURERDIoPzpcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDIpPykpfFxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRCg/OltcXFxcdTI2OTVcXFxcdTI2OTZcXFxcdTI3MDhdXFxcXHVGRTBGP3xcXFxcdTI3NjRcXFxcdUZFMEY/XFxcXHUyMDBEKD86XFxcXHVEODNEXFxcXHVEQzhCXFxcXHUyMDBEKT9cXFxcdUQ4M0VcXFxcdURERDFcXFxcdUQ4M0NbXFxcXHVERkZDLVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSkpKT98XFxcXHVERkZDKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMEQoPzpcXFxcdUQ4M0RcXFxcdURDOEJcXFxcdTIwMEQpP1xcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkQtXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjg0XFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkQoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REM4QlxcXFx1MjAwRCk/XFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQlxcXFx1REZGQ1xcXFx1REZGRVxcXFx1REZGRl18XFxcXHVEODNDW1xcXFx1REYzRVxcXFx1REY3M1xcXFx1REY3Q1xcXFx1REY4NFxcXFx1REY5M1xcXFx1REZBNFxcXFx1REZBOFxcXFx1REZFQlxcXFx1REZFRF18XFxcXHVEODNEW1xcXFx1RENCQlxcXFx1RENCQ1xcXFx1REQyN1xcXFx1REQyQ1xcXFx1REU4MFxcXFx1REU5Ml18XFxcXHVEODNFKD86W1xcXFx1RERBRlxcXFx1RERCQ1xcXFx1RERCRF0oPzpcXFxcdTIwMERcXFxcdTI3QTFcXFxcdUZFMEY/KT98W1xcXFx1RERCMC1cXFxcdUREQjNdfFxcXFx1REQxRFxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZGXSkpKT98XFxcXHVERkZFKD86XFxcXHUyMDBEKD86W1xcXFx1MjY5NVxcXFx1MjY5NlxcXFx1MjcwOF1cXFxcdUZFMEY/fFxcXFx1Mjc2NFxcXFx1RkUwRj9cXFxcdTIwMEQoPzpcXFxcdUQ4M0RcXFxcdURDOEJcXFxcdTIwMEQpP1xcXFx1RDgzRVxcXFx1REREMVxcXFx1RDgzQ1tcXFxcdURGRkItXFxcXHVERkZEXFxcXHVERkZGXXxcXFxcdUQ4M0NbXFxcXHVERjNFXFxcXHVERjczXFxcXHVERjdDXFxcXHVERjg0XFxcXHVERjkzXFxcXHVERkE0XFxcXHVERkE4XFxcXHVERkVCXFxcXHVERkVEXXxcXFxcdUQ4M0RbXFxcXHVEQ0JCXFxcXHVEQ0JDXFxcXHVERDI3XFxcXHVERDJDXFxcXHVERTgwXFxcXHVERTkyXXxcXFxcdUQ4M0UoPzpbXFxcXHVEREFGXFxcXHVEREJDXFxcXHVEREJEXSg/OlxcXFx1MjAwRFxcXFx1MjdBMVxcXFx1RkUwRj8pP3xbXFxcXHVEREIwLVxcXFx1RERCM118XFxcXHVERDFEXFxcXHUyMDBEXFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkZdKSkpP3xcXFxcdURGRkYoPzpcXFxcdTIwMEQoPzpbXFxcXHUyNjk1XFxcXHUyNjk2XFxcXHUyNzA4XVxcXFx1RkUwRj98XFxcXHUyNzY0XFxcXHVGRTBGP1xcXFx1MjAwRCg/OlxcXFx1RDgzRFxcXFx1REM4QlxcXFx1MjAwRCk/XFxcXHVEODNFXFxcXHVEREQxXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkVdfFxcXFx1RDgzQ1tcXFxcdURGM0VcXFxcdURGNzNcXFxcdURGN0NcXFxcdURGODRcXFxcdURGOTNcXFxcdURGQTRcXFxcdURGQThcXFxcdURGRUJcXFxcdURGRURdfFxcXFx1RDgzRFtcXFxcdURDQkJcXFxcdURDQkNcXFxcdUREMjdcXFxcdUREMkNcXFxcdURFODBcXFxcdURFOTJdfFxcXFx1RDgzRSg/OltcXFxcdUREQUZcXFxcdUREQkNcXFxcdUREQkRdKD86XFxcXHUyMDBEXFxcXHUyN0ExXFxcXHVGRTBGPyk/fFtcXFxcdUREQjAtXFxcXHVEREIzXXxcXFxcdUREMURcXFxcdTIwMERcXFxcdUQ4M0VcXFxcdURERDFcXFxcdUQ4M0NbXFxcXHVERkZCLVxcXFx1REZGRl0pKSk/KSk/fFxcXFx1REVGMSg/OlxcXFx1RDgzQyg/OlxcXFx1REZGQig/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkMtXFxcXHVERkZGXSk/fFxcXFx1REZGQyg/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkQtXFxcXHVERkZGXSk/fFxcXFx1REZGRCg/OlxcXFx1MjAwRFxcXFx1RDgzRVxcXFx1REVGMlxcXFx1RDgzQ1tcXFxcdURGRkJcXFxcdURGRkNcXFxcdURGRkVcXFxcdURGRkZdKT98XFxcXHVERkZFKD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVERUYyXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkRcXFxcdURGRkZdKT98XFxcXHVERkZGKD86XFxcXHUyMDBEXFxcXHVEODNFXFxcXHVERUYyXFxcXHVEODNDW1xcXFx1REZGQi1cXFxcdURGRkVdKT8pKT8pL2c7ZnVuY3Rpb24gTWkobil7cmV0dXJuIG49PW51bGw/bjpuLnNoaWZ0VG8oXFxcInllYXJzXFxcIixcXFwibW9udGhzXFxcIixcXFwid2Vla3NcXFwiLFxcXCJkYXlzXFxcIixcXFwiaG91cnNcXFwiLFxcXCJtaW51dGVzXFxcIixcXFwic2Vjb25kc1xcXCIsXFxcIm1pbGxpc2Vjb25kc1xcXCIpLm5vcm1hbGl6ZSgpfWZ1bmN0aW9uIGphKG4sZSx0LHIpe3JldHVybiBuLnNlY29uZD09MCYmbi5taW51dGU9PTAmJm4uaG91cj09MD9uLnRvTG9jYWwoKS50b0Zvcm1hdChlLHtsb2NhbGU6cn0pOm4udG9Mb2NhbCgpLnRvRm9ybWF0KHQse2xvY2FsZTpyfSl9ZnVuY3Rpb24gcWEobil7bj1NaShuKTtsZXQgZT1cXFwiXFxcIjtyZXR1cm4gbi55ZWFycyYmKGUrPWAke24ueWVhcnN9IHllYXJzLCBgKSxuLm1vbnRocyYmKGUrPWAke24ubW9udGhzfSBtb250aHMsIGApLG4ud2Vla3MmJihlKz1gJHtuLndlZWtzfSB3ZWVrcywgYCksbi5kYXlzJiYoZSs9YCR7bi5kYXlzfSBkYXlzLCBgKSxuLmhvdXJzJiYoZSs9YCR7bi5ob3Vyc30gaG91cnMsIGApLG4ubWludXRlcyYmKGUrPWAke24ubWludXRlc30gbWludXRlcywgYCksbi5zZWNvbmRzJiYoZSs9YCR7TWF0aC5yb3VuZChuLnNlY29uZHMpfSBzZWNvbmRzLCBgKSxuLm1pbGxpc2Vjb25kcyYmKGUrPWAke01hdGgucm91bmQobi5taWxsaXNlY29uZHMpfSBtcywgYCksZS5lbmRzV2l0aChcXFwiLCBcXFwiKSYmKGU9ZS5zdWJzdHJpbmcoMCxlLmxlbmd0aC0yKSksZX1mdW5jdGlvbiBFbihuKXtyZXR1cm4gbi5pbmNsdWRlcyhcXFwiL1xcXCIpJiYobj1uLnN1YnN0cmluZyhuLmxhc3RJbmRleE9mKFxcXCIvXFxcIikrMSkpLG4uZW5kc1dpdGgoXFxcIi5tZFxcXCIpJiYobj1uLnN1YnN0cmluZygwLG4ubGVuZ3RoLTMpKSxufWZ1bmN0aW9uIFZhKG4pe3JldHVybiBuLmluY2x1ZGVzKFxcXCIuXFxcIik/bi5zdWJzdHJpbmcobi5sYXN0SW5kZXhPZihcXFwiLlxcXCIpKzEpOlxcXCJcXFwifXZhciBVYz1idC5hbHQoYnQucmVnZXgobmV3IFJlZ0V4cChGbigpLFxcXCJcXFwiKSksYnQucmVnZXgoL1swLTlcXFxccHtMZXR0ZXJ9Xy1dKy91KSxidC53aGl0ZXNwYWNlLm1hcChuPT5cXFwiIFxcXCIpLGJ0LmFueS5tYXAobj0+XFxcIiBcXFwiKSkubWFueSgpLm1hcChuPT5uLmpvaW4oXFxcIlxcXCIpLnNwbGl0KC9cXFxccysvKS5qb2luKFxcXCIgXFxcIikudHJpbSgpKTtmdW5jdGlvbiBVYShuKXtyZXR1cm4gVWMudHJ5UGFyc2Uobil9dmFyIHhlPWNsYXNzIG57c3RhdGljIGZpbGUoZSx0PSExLHIpe3JldHVybiBuZXcgbih7cGF0aDplLGVtYmVkOnQsZGlzcGxheTpyLHN1YnBhdGg6dm9pZCAwLHR5cGU6XFxcImZpbGVcXFwifSl9c3RhdGljIGluZmVyKGUsdD0hMSxyKXtpZihlLmluY2x1ZGVzKFxcXCIjXlxcXCIpKXtsZXQgcz1lLnNwbGl0KFxcXCIjXlxcXCIpO3JldHVybiBuLmJsb2NrKHNbMF0sc1sxXSx0LHIpfWVsc2UgaWYoZS5pbmNsdWRlcyhcXFwiI1xcXCIpKXtsZXQgcz1lLnNwbGl0KFxcXCIjXFxcIik7cmV0dXJuIG4uaGVhZGVyKHNbMF0sc1sxXSx0LHIpfWVsc2UgcmV0dXJuIG4uZmlsZShlLHQscil9c3RhdGljIGhlYWRlcihlLHQscixzKXtyZXR1cm4gbmV3IG4oe3BhdGg6ZSxlbWJlZDpyLGRpc3BsYXk6cyxzdWJwYXRoOlVhKHQpLHR5cGU6XFxcImhlYWRlclxcXCJ9KX1zdGF0aWMgYmxvY2soZSx0LHIscyl7cmV0dXJuIG5ldyBuKHtwYXRoOmUsZW1iZWQ6cixkaXNwbGF5OnMsc3VicGF0aDp0LHR5cGU6XFxcImJsb2NrXFxcIn0pfXN0YXRpYyBmcm9tT2JqZWN0KGUpe3JldHVybiBuZXcgbihlKX1zdGF0aWMgcGFyc2VJbm5lcihlKXtsZXRbdCxyXT1LYyhlKTtyZXR1cm4gbi5pbmZlcih0LCExLHIpfWNvbnN0cnVjdG9yKGUpe09iamVjdC5hc3NpZ24odGhpcyxlKX13aXRoUGF0aChlKXtyZXR1cm4gbmV3IG4oT2JqZWN0LmFzc2lnbih7fSx0aGlzLHtwYXRoOmV9KSl9d2l0aERpc3BsYXkoZSl7cmV0dXJuIG5ldyBuKE9iamVjdC5hc3NpZ24oe30sdGhpcyx7ZGlzcGxheTplfSkpfXdpdGhFbWJlZChlKXtyZXR1cm4gdGhpcy5lbWJlZD09ZT90aGlzOm5ldyBuKE9iamVjdC5hc3NpZ24oe30sdGhpcyx7ZW1iZWQ6ZX0pKX13aXRoSGVhZGVyKGUpe3JldHVybiBuLmhlYWRlcih0aGlzLnBhdGgsZSx0aGlzLmVtYmVkLHRoaXMuZGlzcGxheSl9d2l0aEJsb2NrKGUpe3JldHVybiBuLmJsb2NrKHRoaXMucGF0aCxlLHRoaXMuZW1iZWQsdGhpcy5kaXNwbGF5KX1lcXVhbHMoZSl7cmV0dXJuIGU9PW51bGx8fGU9PW51bGw/ITE6dGhpcy5wYXRoPT1lLnBhdGgmJnRoaXMudHlwZT09ZS50eXBlJiZ0aGlzLnN1YnBhdGg9PWUuc3VicGF0aH10b1N0cmluZygpe3JldHVybiB0aGlzLm1hcmtkb3duKCl9dG9PYmplY3QoKXtyZXR1cm57cGF0aDp0aGlzLnBhdGgsdHlwZTp0aGlzLnR5cGUsc3VicGF0aDp0aGlzLnN1YnBhdGgsZGlzcGxheTp0aGlzLmRpc3BsYXksZW1iZWQ6dGhpcy5lbWJlZH19dG9GaWxlKCl7cmV0dXJuIG4uZmlsZSh0aGlzLnBhdGgsdGhpcy5lbWJlZCx0aGlzLmRpc3BsYXkpfXRvRW1iZWQoKXtyZXR1cm4gdGhpcy53aXRoRW1iZWQoITApfWZyb21FbWJlZCgpe3JldHVybiB0aGlzLndpdGhFbWJlZCghMSl9bWFya2Rvd24oKXtsZXQgZT0odGhpcy5lbWJlZD9cXFwiIVxcXCI6XFxcIlxcXCIpK1xcXCJbW1xcXCIrdGhpcy5vYnNpZGlhbkxpbmsoKTtyZXR1cm4gZSs9XFxcInxcXFwiLGUrPXRoaXMuZGlzcGxheU9yRGVmYXVsdCgpLGUrPVxcXCJdXVxcXCIsZX1kaXNwbGF5T3JEZWZhdWx0KCl7aWYodGhpcy5kaXNwbGF5KXJldHVybiB0aGlzLmRpc3BsYXk7e2xldCBlPUVuKHRoaXMucGF0aCk7cmV0dXJuKHRoaXMudHlwZT09XFxcImhlYWRlclxcXCJ8fHRoaXMudHlwZT09XFxcImJsb2NrXFxcIikmJihlKz1cXFwiID4gXFxcIit0aGlzLnN1YnBhdGgpLGV9fW9ic2lkaWFuTGluaygpe3ZhciB0LHI7bGV0IGU9dGhpcy5wYXRoLnJlcGxhY2UoXFxcInxcXFwiLFxcXCJcXFxcXFxcXHxcXFwiKTtyZXR1cm4gdGhpcy50eXBlPT1cXFwiaGVhZGVyXFxcIj9lK1xcXCIjXFxcIisoKHQ9dGhpcy5zdWJwYXRoKT09bnVsbD92b2lkIDA6dC5yZXBsYWNlKFxcXCJ8XFxcIixcXFwiXFxcXFxcXFx8XFxcIikpOnRoaXMudHlwZT09XFxcImJsb2NrXFxcIj9lK1xcXCIjXlxcXCIrKChyPXRoaXMuc3VicGF0aCk9PW51bGw/dm9pZCAwOnIucmVwbGFjZShcXFwifFxcXCIsXFxcIlxcXFxcXFxcfFxcXCIpKTplfWZpbGVOYW1lKCl7cmV0dXJuIEVuKHRoaXMucGF0aCl9fTtmdW5jdGlvbiBLYyhuKXtsZXQgZT0tMTtmb3IoOyhlPW4uaW5kZXhPZihcXFwifFxcXCIsZSsxKSk+PTA7KWlmKCEoZT4wJiZuW2UtMV09PVxcXCJcXFxcXFxcXFxcXCIpKXJldHVybltuLnN1YnN0cmluZygwLGUpLnJlcGxhY2UoL1xcXFxcXFxcXFxcXHwvZyxcXFwifFxcXCIpLG4uc3Vic3RyaW5nKGUrMSldO3JldHVybltuLnJlcGxhY2UoL1xcXFxcXFxcXFxcXHwvZyxcXFwifFxcXCIpLHZvaWQgMF19dmFyIHJzPVN5bWJvbC5mb3IoXFxcInlhbWwuYWxpYXNcXFwiKSxzcz1TeW1ib2wuZm9yKFxcXCJ5YW1sLmRvY3VtZW50XFxcIiksS2U9U3ltYm9sLmZvcihcXFwieWFtbC5tYXBcXFwiKSxfaT1TeW1ib2wuZm9yKFxcXCJ5YW1sLnBhaXJcXFwiKSxJZT1TeW1ib2wuZm9yKFxcXCJ5YW1sLnNjYWxhclxcXCIpLEZ0PVN5bWJvbC5mb3IoXFxcInlhbWwuc2VxXFxcIiksVGU9U3ltYm9sLmZvcihcXFwieWFtbC5ub2RlLnR5cGVcXFwiKSxXZT1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1ycyxydD1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1zcyxIZT1uPT4hIW4mJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmbltUZV09PT1LZSxIPW49PiEhbiYmdHlwZW9mIG49PVxcXCJvYmplY3RcXFwiJiZuW1RlXT09PV9pLEs9bj0+ISFuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm5bVGVdPT09SWUsSmU9bj0+ISFuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJm5bVGVdPT09RnQ7ZnVuY3Rpb24gWihuKXtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpc3dpdGNoKG5bVGVdKXtjYXNlIEtlOmNhc2UgRnQ6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gSihuKXtpZihuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpc3dpdGNoKG5bVGVdKXtjYXNlIHJzOmNhc2UgS2U6Y2FzZSBJZTpjYXNlIEZ0OnJldHVybiEwfXJldHVybiExfXZhciBLYT1uPT4oSyhuKXx8WihuKSkmJiEhbi5hbmNob3I7dmFyIENlPVN5bWJvbChcXFwiYnJlYWsgdmlzaXRcXFwiKSxXYT1TeW1ib2woXFxcInNraXAgY2hpbGRyZW5cXFwiKSxzdD1TeW1ib2woXFxcInJlbW92ZSBub2RlXFxcIik7ZnVuY3Rpb24gemUobixlKXtsZXQgdD1IYShlKTtydChuKT93bihudWxsLG4uY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtuXSkpPT09c3QmJihuLmNvbnRlbnRzPW51bGwpOnduKG51bGwsbix0LE9iamVjdC5mcmVlemUoW10pKX16ZS5CUkVBSz1DZTt6ZS5TS0lQPVdhO3plLlJFTU9WRT1zdDtmdW5jdGlvbiB3bihuLGUsdCxyKXtsZXQgcz1KYShuLGUsdCxyKTtpZihKKHMpfHxIKHMpKXJldHVybiB6YShuLHIscyksd24obixzLHQscik7aWYodHlwZW9mIHMhPVxcXCJzeW1ib2xcXFwiKXtpZihaKGUpKXtyPU9iamVjdC5mcmVlemUoci5jb25jYXQoZSkpO2ZvcihsZXQgaT0wO2k8ZS5pdGVtcy5sZW5ndGg7KytpKXtsZXQgbz13bihpLGUuaXRlbXNbaV0sdCxyKTtpZih0eXBlb2Ygbz09XFxcIm51bWJlclxcXCIpaT1vLTE7ZWxzZXtpZihvPT09Q2UpcmV0dXJuIENlO289PT1zdCYmKGUuaXRlbXMuc3BsaWNlKGksMSksaS09MSl9fX1lbHNlIGlmKEgoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7bGV0IGk9d24oXFxcImtleVxcXCIsZS5rZXksdCxyKTtpZihpPT09Q2UpcmV0dXJuIENlO2k9PT1zdCYmKGUua2V5PW51bGwpO2xldCBvPXduKFxcXCJ2YWx1ZVxcXCIsZS52YWx1ZSx0LHIpO2lmKG89PT1DZSlyZXR1cm4gQ2U7bz09PXN0JiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9YXN5bmMgZnVuY3Rpb24gaXMobixlKXtsZXQgdD1IYShlKTtydChuKT9hd2FpdCBUbihudWxsLG4uY29udGVudHMsdCxPYmplY3QuZnJlZXplKFtuXSkpPT09c3QmJihuLmNvbnRlbnRzPW51bGwpOmF3YWl0IFRuKG51bGwsbix0LE9iamVjdC5mcmVlemUoW10pKX1pcy5CUkVBSz1DZTtpcy5TS0lQPVdhO2lzLlJFTU9WRT1zdDthc3luYyBmdW5jdGlvbiBUbihuLGUsdCxyKXtsZXQgcz1hd2FpdCBKYShuLGUsdCxyKTtpZihKKHMpfHxIKHMpKXJldHVybiB6YShuLHIscyksVG4obixzLHQscik7aWYodHlwZW9mIHMhPVxcXCJzeW1ib2xcXFwiKXtpZihaKGUpKXtyPU9iamVjdC5mcmVlemUoci5jb25jYXQoZSkpO2ZvcihsZXQgaT0wO2k8ZS5pdGVtcy5sZW5ndGg7KytpKXtsZXQgbz1hd2FpdCBUbihpLGUuaXRlbXNbaV0sdCxyKTtpZih0eXBlb2Ygbz09XFxcIm51bWJlclxcXCIpaT1vLTE7ZWxzZXtpZihvPT09Q2UpcmV0dXJuIENlO289PT1zdCYmKGUuaXRlbXMuc3BsaWNlKGksMSksaS09MSl9fX1lbHNlIGlmKEgoZSkpe3I9T2JqZWN0LmZyZWV6ZShyLmNvbmNhdChlKSk7bGV0IGk9YXdhaXQgVG4oXFxcImtleVxcXCIsZS5rZXksdCxyKTtpZihpPT09Q2UpcmV0dXJuIENlO2k9PT1zdCYmKGUua2V5PW51bGwpO2xldCBvPWF3YWl0IFRuKFxcXCJ2YWx1ZVxcXCIsZS52YWx1ZSx0LHIpO2lmKG89PT1DZSlyZXR1cm4gQ2U7bz09PXN0JiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9ZnVuY3Rpb24gSGEobil7cmV0dXJuIHR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIiYmKG4uQ29sbGVjdGlvbnx8bi5Ob2RlfHxuLlZhbHVlKT9PYmplY3QuYXNzaWduKHtBbGlhczpuLk5vZGUsTWFwOm4uTm9kZSxTY2FsYXI6bi5Ob2RlLFNlcTpuLk5vZGV9LG4uVmFsdWUmJntNYXA6bi5WYWx1ZSxTY2FsYXI6bi5WYWx1ZSxTZXE6bi5WYWx1ZX0sbi5Db2xsZWN0aW9uJiZ7TWFwOm4uQ29sbGVjdGlvbixTZXE6bi5Db2xsZWN0aW9ufSxuKTpufWZ1bmN0aW9uIEphKG4sZSx0LHIpe3ZhciBzLGksbyxhLHU7aWYodHlwZW9mIHQ9PVxcXCJmdW5jdGlvblxcXCIpcmV0dXJuIHQobixlLHIpO2lmKEhlKGUpKXJldHVybihzPXQuTWFwKT09bnVsbD92b2lkIDA6cy5jYWxsKHQsbixlLHIpO2lmKEplKGUpKXJldHVybihpPXQuU2VxKT09bnVsbD92b2lkIDA6aS5jYWxsKHQsbixlLHIpO2lmKEgoZSkpcmV0dXJuKG89dC5QYWlyKT09bnVsbD92b2lkIDA6by5jYWxsKHQsbixlLHIpO2lmKEsoZSkpcmV0dXJuKGE9dC5TY2FsYXIpPT1udWxsP3ZvaWQgMDphLmNhbGwodCxuLGUscik7aWYoV2UoZSkpcmV0dXJuKHU9dC5BbGlhcyk9PW51bGw/dm9pZCAwOnUuY2FsbCh0LG4sZSxyKX1mdW5jdGlvbiB6YShuLGUsdCl7bGV0IHI9ZVtlLmxlbmd0aC0xXTtpZihaKHIpKXIuaXRlbXNbbl09dDtlbHNlIGlmKEgocikpbj09PVxcXCJrZXlcXFwiP3Iua2V5PXQ6ci52YWx1ZT10O2Vsc2UgaWYocnQocikpci5jb250ZW50cz10O2Vsc2V7bGV0IHM9V2Uocik/XFxcImFsaWFzXFxcIjpcXFwic2NhbGFyXFxcIjt0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXBsYWNlIG5vZGUgd2l0aCAke3N9IHBhcmVudGApfX12YXIgV2M9e1xcXCIhXFxcIjpcXFwiJTIxXFxcIixcXFwiLFxcXCI6XFxcIiUyQ1xcXCIsXFxcIltcXFwiOlxcXCIlNUJcXFwiLFxcXCJdXFxcIjpcXFwiJTVEXFxcIixcXFwie1xcXCI6XFxcIiU3QlxcXCIsXFxcIn1cXFwiOlxcXCIlN0RcXFwifSxIYz1uPT5uLnJlcGxhY2UoL1shLFtcXFxcXXt9XS9nLGU9PldjW2VdKSxpdD1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5kb2NTdGFydD1udWxsLHRoaXMuZG9jRW5kPSExLHRoaXMueWFtbD1PYmplY3QuYXNzaWduKHt9LG4uZGVmYXVsdFlhbWwsZSksdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sbi5kZWZhdWx0VGFncyx0KX1jbG9uZSgpe2xldCBlPW5ldyBuKHRoaXMueWFtbCx0aGlzLnRhZ3MpO3JldHVybiBlLmRvY1N0YXJ0PXRoaXMuZG9jU3RhcnQsZX1hdERvY3VtZW50KCl7bGV0IGU9bmV3IG4odGhpcy55YW1sLHRoaXMudGFncyk7c3dpdGNoKHRoaXMueWFtbC52ZXJzaW9uKXtjYXNlXFxcIjEuMVxcXCI6dGhpcy5hdE5leHREb2N1bWVudD0hMDticmVhaztjYXNlXFxcIjEuMlxcXCI6dGhpcy5hdE5leHREb2N1bWVudD0hMSx0aGlzLnlhbWw9e2V4cGxpY2l0Om4uZGVmYXVsdFlhbWwuZXhwbGljaXQsdmVyc2lvbjpcXFwiMS4yXFxcIn0sdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sbi5kZWZhdWx0VGFncyk7YnJlYWt9cmV0dXJuIGV9YWRkKGUsdCl7dGhpcy5hdE5leHREb2N1bWVudCYmKHRoaXMueWFtbD17ZXhwbGljaXQ6bi5kZWZhdWx0WWFtbC5leHBsaWNpdCx2ZXJzaW9uOlxcXCIxLjFcXFwifSx0aGlzLnRhZ3M9T2JqZWN0LmFzc2lnbih7fSxuLmRlZmF1bHRUYWdzKSx0aGlzLmF0TmV4dERvY3VtZW50PSExKTtsZXQgcj1lLnRyaW0oKS5zcGxpdCgvWyBcXFxcdF0rLykscz1yLnNoaWZ0KCk7c3dpdGNoKHMpe2Nhc2VcXFwiJVRBR1xcXCI6e2lmKHIubGVuZ3RoIT09MiYmKHQoMCxcXFwiJVRBRyBkaXJlY3RpdmUgc2hvdWxkIGNvbnRhaW4gZXhhY3RseSB0d28gcGFydHNcXFwiKSxyLmxlbmd0aDwyKSlyZXR1cm4hMTtsZXRbaSxvXT1yO3JldHVybiB0aGlzLnRhZ3NbaV09bywhMH1jYXNlXFxcIiVZQU1MXFxcIjp7aWYodGhpcy55YW1sLmV4cGxpY2l0PSEwLHIubGVuZ3RoIT09MSlyZXR1cm4gdCgwLFxcXCIlWUFNTCBkaXJlY3RpdmUgc2hvdWxkIGNvbnRhaW4gZXhhY3RseSBvbmUgcGFydFxcXCIpLCExO2xldFtpXT1yO2lmKGk9PT1cXFwiMS4xXFxcInx8aT09PVxcXCIxLjJcXFwiKXJldHVybiB0aGlzLnlhbWwudmVyc2lvbj1pLCEwO3tsZXQgbz0vXlxcXFxkK1xcXFwuXFxcXGQrJC8udGVzdChpKTtyZXR1cm4gdCg2LGBVbnN1cHBvcnRlZCBZQU1MIHZlcnNpb24gJHtpfWAsbyksITF9fWRlZmF1bHQ6cmV0dXJuIHQoMCxgVW5rbm93biBkaXJlY3RpdmUgJHtzfWAsITApLCExfX10YWdOYW1lKGUsdCl7aWYoZT09PVxcXCIhXFxcIilyZXR1cm5cXFwiIVxcXCI7aWYoZVswXSE9PVxcXCIhXFxcIilyZXR1cm4gdChgTm90IGEgdmFsaWQgdGFnOiAke2V9YCksbnVsbDtpZihlWzFdPT09XFxcIjxcXFwiKXtsZXQgbz1lLnNsaWNlKDIsLTEpO3JldHVybiBvPT09XFxcIiFcXFwifHxvPT09XFxcIiEhXFxcIj8odChgVmVyYmF0aW0gdGFncyBhcmVuJ3QgcmVzb2x2ZWQsIHNvICR7ZX0gaXMgaW52YWxpZC5gKSxudWxsKTooZVtlLmxlbmd0aC0xXSE9PVxcXCI+XFxcIiYmdChcXFwiVmVyYmF0aW0gdGFncyBtdXN0IGVuZCB3aXRoIGEgPlxcXCIpLG8pfWxldFsscixzXT1lLm1hdGNoKG5ldyBSZWdFeHAoXFxcIl4oLiohKShbXiFdKikkXFxcIixcXFwic1xcXCIpKTtzfHx0KGBUaGUgJHtlfSB0YWcgaGFzIG5vIHN1ZmZpeGApO2xldCBpPXRoaXMudGFnc1tyXTtpZihpKXRyeXtyZXR1cm4gaStkZWNvZGVVUklDb21wb25lbnQocyl9Y2F0Y2gobyl7cmV0dXJuIHQoU3RyaW5nKG8pKSxudWxsfXJldHVybiByPT09XFxcIiFcXFwiP2U6KHQoYENvdWxkIG5vdCByZXNvbHZlIHRhZzogJHtlfWApLG51bGwpfXRhZ1N0cmluZyhlKXtmb3IobGV0W3Qscl1vZiBPYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpKWlmKGUuc3RhcnRzV2l0aChyKSlyZXR1cm4gdCtIYyhlLnN1YnN0cmluZyhyLmxlbmd0aCkpO3JldHVybiBlWzBdPT09XFxcIiFcXFwiP2U6YCE8JHtlfT5gfXRvU3RyaW5nKGUpe2xldCB0PXRoaXMueWFtbC5leHBsaWNpdD9bYCVZQU1MICR7dGhpcy55YW1sLnZlcnNpb258fFxcXCIxLjJcXFwifWBdOltdLHI9T2JqZWN0LmVudHJpZXModGhpcy50YWdzKSxzO2lmKGUmJnIubGVuZ3RoPjAmJkooZS5jb250ZW50cykpe2xldCBpPXt9O3plKGUuY29udGVudHMsKG8sYSk9PntKKGEpJiZhLnRhZyYmKGlbYS50YWddPSEwKX0pLHM9T2JqZWN0LmtleXMoaSl9ZWxzZSBzPVtdO2ZvcihsZXRbaSxvXW9mIHIpaT09PVxcXCIhIVxcXCImJm89PT1cXFwidGFnOnlhbWwub3JnLDIwMDI6XFxcInx8KCFlfHxzLnNvbWUoYT0+YS5zdGFydHNXaXRoKG8pKSkmJnQucHVzaChgJVRBRyAke2l9ICR7b31gKTtyZXR1cm4gdC5qb2luKGBcXG5gKX19O2l0LmRlZmF1bHRZYW1sPXtleHBsaWNpdDohMSx2ZXJzaW9uOlxcXCIxLjJcXFwifTtpdC5kZWZhdWx0VGFncz17XFxcIiEhXFxcIjpcXFwidGFnOnlhbWwub3JnLDIwMDI6XFxcIn07ZnVuY3Rpb24gb3Mobil7aWYoL1tcXFxceDAwLVxcXFx4MTlcXFxccyxbXFxcXF17fV0vLnRlc3Qobikpe2xldCB0PWBBbmNob3IgbXVzdCBub3QgY29udGFpbiB3aGl0ZXNwYWNlIG9yIGNvbnRyb2wgY2hhcmFjdGVyczogJHtKU09OLnN0cmluZ2lmeShuKX1gO3Rocm93IG5ldyBFcnJvcih0KX1yZXR1cm4hMH1mdW5jdGlvbiBCaShuKXtsZXQgZT1uZXcgU2V0O3JldHVybiB6ZShuLHtWYWx1ZSh0LHIpe3IuYW5jaG9yJiZlLmFkZChyLmFuY2hvcil9fSksZX1mdW5jdGlvbiBQaShuLGUpe2ZvcihsZXQgdD0xOzsrK3Qpe2xldCByPWAke259JHt0fWA7aWYoIWUuaGFzKHIpKXJldHVybiByfX1mdW5jdGlvbiBZYShuLGUpe2xldCB0PVtdLHI9bmV3IE1hcCxzPW51bGw7cmV0dXJue29uQW5jaG9yOmk9Pnt0LnB1c2goaSksc3x8KHM9QmkobikpO2xldCBvPVBpKGUscyk7cmV0dXJuIHMuYWRkKG8pLG99LHNldEFuY2hvcnM6KCk9Pntmb3IobGV0IGkgb2YgdCl7bGV0IG89ci5nZXQoaSk7aWYodHlwZW9mIG89PVxcXCJvYmplY3RcXFwiJiZvLmFuY2hvciYmKEsoby5ub2RlKXx8WihvLm5vZGUpKSlvLm5vZGUuYW5jaG9yPW8uYW5jaG9yO2Vsc2V7bGV0IGE9bmV3IEVycm9yKFxcXCJGYWlsZWQgdG8gcmVzb2x2ZSByZXBlYXRlZCBvYmplY3QgKHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4pXFxcIik7dGhyb3cgYS5zb3VyY2U9aSxhfX19LHNvdXJjZU9iamVjdHM6cn19ZnVuY3Rpb24gT3QobixlLHQscil7aWYociYmdHlwZW9mIHI9PVxcXCJvYmplY3RcXFwiKWlmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBzPTAsaT1yLmxlbmd0aDtzPGk7KytzKXtsZXQgbz1yW3NdLGE9T3QobixyLFN0cmluZyhzKSxvKTthPT09dm9pZCAwP2RlbGV0ZSByW3NdOmEhPT1vJiYocltzXT1hKX1lbHNlIGlmKHIgaW5zdGFuY2VvZiBNYXApZm9yKGxldCBzIG9mIEFycmF5LmZyb20oci5rZXlzKCkpKXtsZXQgaT1yLmdldChzKSxvPU90KG4scixzLGkpO289PT12b2lkIDA/ci5kZWxldGUocyk6byE9PWkmJnIuc2V0KHMsbyl9ZWxzZSBpZihyIGluc3RhbmNlb2YgU2V0KWZvcihsZXQgcyBvZiBBcnJheS5mcm9tKHIpKXtsZXQgaT1PdChuLHIscyxzKTtpPT09dm9pZCAwP3IuZGVsZXRlKHMpOmkhPT1zJiYoci5kZWxldGUocyksci5hZGQoaSkpfWVsc2UgZm9yKGxldFtzLGldb2YgT2JqZWN0LmVudHJpZXMocikpe2xldCBvPU90KG4scixzLGkpO289PT12b2lkIDA/ZGVsZXRlIHJbc106byE9PWkmJihyW3NdPW8pfXJldHVybiBuLmNhbGwoZSx0LHIpfWZ1bmN0aW9uIGNlKG4sZSx0KXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuLm1hcCgocixzKT0+Y2UocixTdHJpbmcocyksdCkpO2lmKG4mJnR5cGVvZiBuLnRvSlNPTj09XFxcImZ1bmN0aW9uXFxcIil7aWYoIXR8fCFLYShuKSlyZXR1cm4gbi50b0pTT04oZSx0KTtsZXQgcj17YWxpYXNDb3VudDowLGNvdW50OjEscmVzOnZvaWQgMH07dC5hbmNob3JzLnNldChuLHIpLHQub25DcmVhdGU9aT0+e3IucmVzPWksZGVsZXRlIHQub25DcmVhdGV9O2xldCBzPW4udG9KU09OKGUsdCk7cmV0dXJuIHQub25DcmVhdGUmJnQub25DcmVhdGUocyksc31yZXR1cm4gdHlwZW9mIG49PVxcXCJiaWdpbnRcXFwiJiYhKHQhPW51bGwmJnQua2VlcCk/TnVtYmVyKG4pOm59dmFyIHh0PWNsYXNze2NvbnN0cnVjdG9yKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFRlLHt2YWx1ZTplfSl9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7cmV0dXJuIHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX10b0pTKGUse21hcEFzTWFwOnQsbWF4QWxpYXNDb3VudDpyLG9uQW5jaG9yOnMscmV2aXZlcjppfT17fSl7aWYoIXJ0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXFxcIkEgZG9jdW1lbnQgYXJndW1lbnQgaXMgcmVxdWlyZWRcXFwiKTtsZXQgbz17YW5jaG9yczpuZXcgTWFwLGRvYzplLGtlZXA6ITAsbWFwQXNNYXA6dD09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiByPT1cXFwibnVtYmVyXFxcIj9yOjEwMH0sYT1jZSh0aGlzLFxcXCJcXFwiLG8pO2lmKHR5cGVvZiBzPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXR7Y291bnQ6dSxyZXM6bH1vZiBvLmFuY2hvcnMudmFsdWVzKCkpcyhsLHUpO3JldHVybiB0eXBlb2YgaT09XFxcImZ1bmN0aW9uXFxcIj9PdChpLHtcXFwiXFxcIjphfSxcXFwiXFxcIixhKTphfX07dmFyIEV0PWNsYXNzIGV4dGVuZHMgeHR7Y29uc3RydWN0b3IoZSl7c3VwZXIocnMpLHRoaXMuc291cmNlPWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXFxcInRhZ1xcXCIse3NldCgpe3Rocm93IG5ldyBFcnJvcihcXFwiQWxpYXMgbm9kZXMgY2Fubm90IGhhdmUgdGFnc1xcXCIpfX0pfXJlc29sdmUoZSl7bGV0IHQ7cmV0dXJuIHplKGUse05vZGU6KHIscyk9PntpZihzPT09dGhpcylyZXR1cm4gemUuQlJFQUs7cy5hbmNob3I9PT10aGlzLnNvdXJjZSYmKHQ9cyl9fSksdH10b0pTT04oZSx0KXtpZighdClyZXR1cm57c291cmNlOnRoaXMuc291cmNlfTtsZXR7YW5jaG9yczpyLGRvYzpzLG1heEFsaWFzQ291bnQ6aX09dCxvPXRoaXMucmVzb2x2ZShzKTtpZighbyl7bGV0IHU9YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IodSl9bGV0IGE9ci5nZXQobyk7aWYoYXx8KGNlKG8sbnVsbCx0KSxhPXIuZ2V0KG8pKSwhYXx8YS5yZXM9PT12b2lkIDApe2xldCB1PVxcXCJUaGlzIHNob3VsZCBub3QgaGFwcGVuOiBBbGlhcyBhbmNob3Igd2FzIG5vdCByZXNvbHZlZD9cXFwiO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcih1KX1pZihpPj0wJiYoYS5jb3VudCs9MSxhLmFsaWFzQ291bnQ9PT0wJiYoYS5hbGlhc0NvdW50PWFzKHMsbyxyKSksYS5jb3VudCphLmFsaWFzQ291bnQ+aSkpe2xldCB1PVxcXCJFeGNlc3NpdmUgYWxpYXMgY291bnQgaW5kaWNhdGVzIGEgcmVzb3VyY2UgZXhoYXVzdGlvbiBhdHRhY2tcXFwiO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcih1KX1yZXR1cm4gYS5yZXN9dG9TdHJpbmcoZSx0LHIpe2xldCBzPWAqJHt0aGlzLnNvdXJjZX1gO2lmKGUpe2lmKG9zKHRoaXMuc291cmNlKSxlLm9wdGlvbnMudmVyaWZ5QWxpYXNPcmRlciYmIWUuYW5jaG9ycy5oYXModGhpcy5zb3VyY2UpKXtsZXQgaT1gVW5yZXNvbHZlZCBhbGlhcyAodGhlIGFuY2hvciBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGFsaWFzKTogJHt0aGlzLnNvdXJjZX1gO3Rocm93IG5ldyBFcnJvcihpKX1pZihlLmltcGxpY2l0S2V5KXJldHVybmAke3N9IGB9cmV0dXJuIHN9fTtmdW5jdGlvbiBhcyhuLGUsdCl7aWYoV2UoZSkpe2xldCByPWUucmVzb2x2ZShuKSxzPXQmJnImJnQuZ2V0KHIpO3JldHVybiBzP3MuY291bnQqcy5hbGlhc0NvdW50OjB9ZWxzZSBpZihaKGUpKXtsZXQgcj0wO2ZvcihsZXQgcyBvZiBlLml0ZW1zKXtsZXQgaT1hcyhuLHMsdCk7aT5yJiYocj1pKX1yZXR1cm4gcn1lbHNlIGlmKEgoZSkpe2xldCByPWFzKG4sZS5rZXksdCkscz1hcyhuLGUudmFsdWUsdCk7cmV0dXJuIE1hdGgubWF4KHIscyl9cmV0dXJuIDF9dmFyIHVzPW49PiFufHx0eXBlb2YgbiE9XFxcImZ1bmN0aW9uXFxcIiYmdHlwZW9mIG4hPVxcXCJvYmplY3RcXFwiLFA9Y2xhc3MgZXh0ZW5kcyB4dHtjb25zdHJ1Y3RvcihlKXtzdXBlcihJZSksdGhpcy52YWx1ZT1lfXRvSlNPTihlLHQpe3JldHVybiB0IT1udWxsJiZ0LmtlZXA/dGhpcy52YWx1ZTpjZSh0aGlzLnZhbHVlLGUsdCl9dG9TdHJpbmcoKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfX07UC5CTE9DS19GT0xERUQ9XFxcIkJMT0NLX0ZPTERFRFxcXCI7UC5CTE9DS19MSVRFUkFMPVxcXCJCTE9DS19MSVRFUkFMXFxcIjtQLlBMQUlOPVxcXCJQTEFJTlxcXCI7UC5RVU9URV9ET1VCTEU9XFxcIlFVT1RFX0RPVUJMRVxcXCI7UC5RVU9URV9TSU5HTEU9XFxcIlFVT1RFX1NJTkdMRVxcXCI7dmFyIEpjPVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpcXFwiO2Z1bmN0aW9uIHpjKG4sZSx0KXt2YXIgcjtpZihlKXtsZXQgcz10LmZpbHRlcihvPT5vLnRhZz09PWUpLGk9KHI9cy5maW5kKG89PiFvLmZvcm1hdCkpIT1udWxsP3I6c1swXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYFRhZyAke2V9IG5vdCBmb3VuZGApO3JldHVybiBpfXJldHVybiB0LmZpbmQocz0+e3ZhciBpO3JldHVybigoaT1zLmlkZW50aWZ5KT09bnVsbD92b2lkIDA6aS5jYWxsKHMsbikpJiYhcy5mb3JtYXR9KX1mdW5jdGlvbiB3dChuLGUsdCl7dmFyIGQscCxoO2lmKHJ0KG4pJiYobj1uLmNvbnRlbnRzKSxKKG4pKXJldHVybiBuO2lmKEgobikpe2xldCBiPShwPShkPXQuc2NoZW1hW0tlXSkuY3JlYXRlTm9kZSk9PW51bGw/dm9pZCAwOnAuY2FsbChkLHQuc2NoZW1hLG51bGwsdCk7cmV0dXJuIGIuaXRlbXMucHVzaChuKSxifShuIGluc3RhbmNlb2YgU3RyaW5nfHxuIGluc3RhbmNlb2YgTnVtYmVyfHxuIGluc3RhbmNlb2YgQm9vbGVhbnx8dHlwZW9mIEJpZ0ludCE9XFxcInVuZGVmaW5lZFxcXCImJm4gaW5zdGFuY2VvZiBCaWdJbnQpJiYobj1uLnZhbHVlT2YoKSk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czpyLG9uQW5jaG9yOnMsb25UYWdPYmo6aSxzY2hlbWE6byxzb3VyY2VPYmplY3RzOmF9PXQsdTtpZihyJiZuJiZ0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCIpe2lmKHU9YS5nZXQobiksdSlyZXR1cm4gdS5hbmNob3J8fCh1LmFuY2hvcj1zKG4pKSxuZXcgRXQodS5hbmNob3IpO3U9e2FuY2hvcjpudWxsLG5vZGU6bnVsbH0sYS5zZXQobix1KX1lIT1udWxsJiZlLnN0YXJ0c1dpdGgoXFxcIiEhXFxcIikmJihlPUpjK2Uuc2xpY2UoMikpO2xldCBsPXpjKG4sZSxvLnRhZ3MpO2lmKCFsKXtpZihuJiZ0eXBlb2Ygbi50b0pTT049PVxcXCJmdW5jdGlvblxcXCImJihuPW4udG9KU09OKCkpLCFufHx0eXBlb2YgbiE9XFxcIm9iamVjdFxcXCIpe2xldCBiPW5ldyBQKG4pO3JldHVybiB1JiYodS5ub2RlPWIpLGJ9bD1uIGluc3RhbmNlb2YgTWFwP29bS2VdOlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3Qobik/b1tGdF06b1tLZV19aSYmKGkobCksZGVsZXRlIHQub25UYWdPYmopO2xldCBmPWwhPW51bGwmJmwuY3JlYXRlTm9kZT9sLmNyZWF0ZU5vZGUodC5zY2hlbWEsbix0KTp0eXBlb2YoKGg9bD09bnVsbD92b2lkIDA6bC5ub2RlQ2xhc3MpPT1udWxsP3ZvaWQgMDpoLmZyb20pPT1cXFwiZnVuY3Rpb25cXFwiP2wubm9kZUNsYXNzLmZyb20odC5zY2hlbWEsbix0KTpuZXcgUChuKTtyZXR1cm4gZT9mLnRhZz1lOmwuZGVmYXVsdHx8KGYudGFnPWwudGFnKSx1JiYodS5ub2RlPWYpLGZ9ZnVuY3Rpb24gbXIobixlLHQpe2xldCByPXQ7Zm9yKGxldCBzPWUubGVuZ3RoLTE7cz49MDstLXMpe2xldCBpPWVbc107aWYodHlwZW9mIGk9PVxcXCJudW1iZXJcXFwiJiZOdW1iZXIuaXNJbnRlZ2VyKGkpJiZpPj0wKXtsZXQgbz1bXTtvW2ldPXIscj1vfWVsc2Ugcj1uZXcgTWFwKFtbaSxyXV0pfXJldHVybiB3dChyLHZvaWQgMCx7YWxpYXNEdXBsaWNhdGVPYmplY3RzOiExLGtlZXBVbmRlZmluZWQ6ITEsb25BbmNob3I6KCk9Pnt0aHJvdyBuZXcgRXJyb3IoXFxcIlRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIHBsZWFzZSByZXBvcnQgYSBidWcuXFxcIil9LHNjaGVtYTpuLHNvdXJjZU9iamVjdHM6bmV3IE1hcH0pfXZhciBrbj1uPT5uPT1udWxsfHx0eXBlb2Ygbj09XFxcIm9iamVjdFxcXCImJiEhbltTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLmRvbmUsU249Y2xhc3MgZXh0ZW5kcyB4dHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFxcXCJzY2hlbWFcXFwiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwfSl9Y2xvbmUoZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlJiYodC5zY2hlbWE9ZSksdC5pdGVtcz10Lml0ZW1zLm1hcChyPT5KKHIpfHxIKHIpP3IuY2xvbmUoZSk6ciksdGhpcy5yYW5nZSYmKHQucmFuZ2U9dGhpcy5yYW5nZS5zbGljZSgpKSx0fWFkZEluKGUsdCl7aWYoa24oZSkpdGhpcy5hZGQodCk7ZWxzZXtsZXRbciwuLi5zXT1lLGk9dGhpcy5nZXQociwhMCk7aWYoWihpKSlpLmFkZEluKHMsdCk7ZWxzZSBpZihpPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChyLG1yKHRoaXMuc2NoZW1hLHMsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtyfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19ZGVsZXRlSW4oZSl7bGV0W3QsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuZGVsZXRlKHQpO2xldCBzPXRoaXMuZ2V0KHQsITApO2lmKFoocykpcmV0dXJuIHMuZGVsZXRlSW4ocik7dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHt0fS4gUmVtYWluaW5nIHBhdGg6ICR7cn1gKX1nZXRJbihlLHQpe2xldFtyLC4uLnNdPWUsaT10aGlzLmdldChyLCEwKTtyZXR1cm4gcy5sZW5ndGg9PT0wPyF0JiZLKGkpP2kudmFsdWU6aTpaKGkpP2kuZ2V0SW4ocyx0KTp2b2lkIDB9aGFzQWxsTnVsbFZhbHVlcyhlKXtyZXR1cm4gdGhpcy5pdGVtcy5ldmVyeSh0PT57aWYoIUgodCkpcmV0dXJuITE7bGV0IHI9dC52YWx1ZTtyZXR1cm4gcj09bnVsbHx8ZSYmSyhyKSYmci52YWx1ZT09bnVsbCYmIXIuY29tbWVudEJlZm9yZSYmIXIuY29tbWVudCYmIXIudGFnfSl9aGFzSW4oZSl7bGV0W3QsLi4ucl09ZTtpZihyLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuaGFzKHQpO2xldCBzPXRoaXMuZ2V0KHQsITApO3JldHVybiBaKHMpP3MuaGFzSW4ocik6ITF9c2V0SW4oZSx0KXtsZXRbciwuLi5zXT1lO2lmKHMubGVuZ3RoPT09MCl0aGlzLnNldChyLHQpO2Vsc2V7bGV0IGk9dGhpcy5nZXQociwhMCk7aWYoWihpKSlpLnNldEluKHMsdCk7ZWxzZSBpZihpPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChyLG1yKHRoaXMuc2NoZW1hLHMsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHtyfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19fTt2YXIgR2E9bj0+bi5yZXBsYWNlKC9eKD8hJCkoPzogJCk/L2dtLFxcXCIjXFxcIik7ZnVuY3Rpb24gUGUobixlKXtyZXR1cm4vXlxcXFxuKyQvLnRlc3Qobik/bi5zdWJzdHJpbmcoMSk6ZT9uLnJlcGxhY2UoL14oPyEgKiQpL2dtLGUpOm59dmFyIG90PShuLGUsdCk9Pm4uZW5kc1dpdGgoYFxcbmApP1BlKHQsZSk6dC5pbmNsdWRlcyhgXFxuYCk/YFxcbmArUGUodCxlKToobi5lbmRzV2l0aChcXFwiIFxcXCIpP1xcXCJcXFwiOlxcXCIgXFxcIikrdDt2YXIgJGk9XFxcImZsb3dcXFwiLGxzPVxcXCJibG9ja1xcXCIsRHI9XFxcInF1b3RlZFxcXCI7ZnVuY3Rpb24geXIobixlLHQ9XFxcImZsb3dcXFwiLHtpbmRlbnRBdFN0YXJ0OnIsbGluZVdpZHRoOnM9ODAsbWluQ29udGVudFdpZHRoOmk9MjAsb25Gb2xkOm8sb25PdmVyZmxvdzphfT17fSl7aWYoIXN8fHM8MClyZXR1cm4gbjtzPGkmJihpPTApO2xldCB1PU1hdGgubWF4KDEraSwxK3MtZS5sZW5ndGgpO2lmKG4ubGVuZ3RoPD11KXJldHVybiBuO2xldCBsPVtdLGY9e30sZD1zLWUubGVuZ3RoO3R5cGVvZiByPT1cXFwibnVtYmVyXFxcIiYmKHI+cy1NYXRoLm1heCgyLGkpP2wucHVzaCgwKTpkPXMtcik7bGV0IHAsaCxiPSExLGc9LTEsRD0tMSxUPS0xO3Q9PT1scyYmKGc9WmEobixnLGUubGVuZ3RoKSxnIT09LTEmJihkPWcrdSkpO2ZvcihsZXQgTjtOPW5bZys9MV07KXtpZih0PT09RHImJk49PT1cXFwiXFxcXFxcXFxcXFwiKXtzd2l0Y2goRD1nLG5bZysxXSl7Y2FzZVxcXCJ4XFxcIjpnKz0zO2JyZWFrO2Nhc2VcXFwidVxcXCI6Zys9NTticmVhaztjYXNlXFxcIlVcXFwiOmcrPTk7YnJlYWs7ZGVmYXVsdDpnKz0xfVQ9Z31pZihOPT09YFxcbmApdD09PWxzJiYoZz1aYShuLGcsZS5sZW5ndGgpKSxkPWcrZS5sZW5ndGgrdSxwPXZvaWQgMDtlbHNle2lmKE49PT1cXFwiIFxcXCImJmgmJmghPT1cXFwiIFxcXCImJmghPT1gXFxuYCYmaCE9PVxcXCJcXHRcXFwiKXtsZXQgeT1uW2crMV07eSYmeSE9PVxcXCIgXFxcIiYmeSE9PWBcXG5gJiZ5IT09XFxcIlxcdFxcXCImJihwPWcpfWlmKGc+PWQpaWYocClsLnB1c2gocCksZD1wK3UscD12b2lkIDA7ZWxzZSBpZih0PT09RHIpe2Zvcig7aD09PVxcXCIgXFxcInx8aD09PVxcXCJcXHRcXFwiOyloPU4sTj1uW2crPTFdLGI9ITA7bGV0IHk9Zz5UKzE/Zy0yOkQtMTtpZihmW3ldKXJldHVybiBuO2wucHVzaCh5KSxmW3ldPSEwLGQ9eSt1LHA9dm9pZCAwfWVsc2UgYj0hMH1oPU59aWYoYiYmYSYmYSgpLGwubGVuZ3RoPT09MClyZXR1cm4gbjtvJiZvKCk7bGV0IEk9bi5zbGljZSgwLGxbMF0pO2ZvcihsZXQgTj0wO048bC5sZW5ndGg7KytOKXtsZXQgeT1sW05dLHc9bFtOKzFdfHxuLmxlbmd0aDt5PT09MD9JPWBcXG4ke2V9JHtuLnNsaWNlKDAsdyl9YDoodD09PURyJiZmW3ldJiYoSSs9YCR7blt5XX1cXFxcXFxcXGApLEkrPWBcXG4ke2V9JHtuLnNsaWNlKHkrMSx3KX1gKX1yZXR1cm4gSX1mdW5jdGlvbiBaYShuLGUsdCl7bGV0IHI9ZSxzPWUrMSxpPW5bc107Zm9yKDtpPT09XFxcIiBcXFwifHxpPT09XFxcIlxcdFxcXCI7KWlmKGU8cyt0KWk9blsrK2VdO2Vsc2V7ZG8gaT1uWysrZV07d2hpbGUoaSYmaSE9PWBcXG5gKTtyPWUscz1lKzEsaT1uW3NdfXJldHVybiByfXZhciBmcz0obixlKT0+KHtpbmRlbnRBdFN0YXJ0OmU/bi5pbmRlbnQubGVuZ3RoOm4uaW5kZW50QXRTdGFydCxsaW5lV2lkdGg6bi5vcHRpb25zLmxpbmVXaWR0aCxtaW5Db250ZW50V2lkdGg6bi5vcHRpb25zLm1pbkNvbnRlbnRXaWR0aH0pLGRzPW49Pi9eKCV8LS0tfFxcXFwuXFxcXC5cXFxcLikvbS50ZXN0KG4pO2Z1bmN0aW9uIFljKG4sZSx0KXtpZighZXx8ZTwwKXJldHVybiExO2xldCByPWUtdCxzPW4ubGVuZ3RoO2lmKHM8PXIpcmV0dXJuITE7Zm9yKGxldCBpPTAsbz0wO2k8czsrK2kpaWYobltpXT09PWBcXG5gKXtpZihpLW8+cilyZXR1cm4hMDtpZihvPWkrMSxzLW88PXIpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZ3IobixlKXtsZXQgdD1KU09OLnN0cmluZ2lmeShuKTtpZihlLm9wdGlvbnMuZG91YmxlUXVvdGVkQXNKU09OKXJldHVybiB0O2xldHtpbXBsaWNpdEtleTpyfT1lLHM9ZS5vcHRpb25zLmRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aCxpPWUuaW5kZW50fHwoZHMobik/XFxcIiAgXFxcIjpcXFwiXFxcIiksbz1cXFwiXFxcIixhPTA7Zm9yKGxldCB1PTAsbD10W3VdO2w7bD10WysrdV0paWYobD09PVxcXCIgXFxcIiYmdFt1KzFdPT09XFxcIlxcXFxcXFxcXFxcIiYmdFt1KzJdPT09XFxcIm5cXFwiJiYobys9dC5zbGljZShhLHUpK1xcXCJcXFxcXFxcXCBcXFwiLHUrPTEsYT11LGw9XFxcIlxcXFxcXFxcXFxcIiksbD09PVxcXCJcXFxcXFxcXFxcXCIpc3dpdGNoKHRbdSsxXSl7Y2FzZVxcXCJ1XFxcIjp7bys9dC5zbGljZShhLHUpO2xldCBmPXQuc3Vic3RyKHUrMiw0KTtzd2l0Y2goZil7Y2FzZVxcXCIwMDAwXFxcIjpvKz1cXFwiXFxcXFxcXFwwXFxcIjticmVhaztjYXNlXFxcIjAwMDdcXFwiOm8rPVxcXCJcXFxcXFxcXGFcXFwiO2JyZWFrO2Nhc2VcXFwiMDAwYlxcXCI6bys9XFxcIlxcXFxcXFxcdlxcXCI7YnJlYWs7Y2FzZVxcXCIwMDFiXFxcIjpvKz1cXFwiXFxcXFxcXFxlXFxcIjticmVhaztjYXNlXFxcIjAwODVcXFwiOm8rPVxcXCJcXFxcXFxcXE5cXFwiO2JyZWFrO2Nhc2VcXFwiMDBhMFxcXCI6bys9XFxcIlxcXFxcXFxcX1xcXCI7YnJlYWs7Y2FzZVxcXCIyMDI4XFxcIjpvKz1cXFwiXFxcXFxcXFxMXFxcIjticmVhaztjYXNlXFxcIjIwMjlcXFwiOm8rPVxcXCJcXFxcXFxcXFBcXFwiO2JyZWFrO2RlZmF1bHQ6Zi5zdWJzdHIoMCwyKT09PVxcXCIwMFxcXCI/bys9XFxcIlxcXFxcXFxceFxcXCIrZi5zdWJzdHIoMik6bys9dC5zdWJzdHIodSw2KX11Kz01LGE9dSsxfWJyZWFrO2Nhc2VcXFwiblxcXCI6aWYocnx8dFt1KzJdPT09J1xcXCInfHx0Lmxlbmd0aDxzKXUrPTE7ZWxzZXtmb3Iobys9dC5zbGljZShhLHUpK2BcXG5cXG5gO3RbdSsyXT09PVxcXCJcXFxcXFxcXFxcXCImJnRbdSszXT09PVxcXCJuXFxcIiYmdFt1KzRdIT09J1xcXCInOylvKz1gXFxuYCx1Kz0yO28rPWksdFt1KzJdPT09XFxcIiBcXFwiJiYobys9XFxcIlxcXFxcXFxcXFxcIiksdSs9MSxhPXUrMX1icmVhaztkZWZhdWx0OnUrPTF9cmV0dXJuIG89YT9vK3Quc2xpY2UoYSk6dCxyP286eXIobyxpLERyLGZzKGUsITEpKX1mdW5jdGlvbiBSaShuLGUpe2lmKGUub3B0aW9ucy5zaW5nbGVRdW90ZT09PSExfHxlLmltcGxpY2l0S2V5JiZuLmluY2x1ZGVzKGBcXG5gKXx8L1sgXFxcXHRdXFxcXG58XFxcXG5bIFxcXFx0XS8udGVzdChuKSlyZXR1cm4gZ3IobixlKTtsZXQgdD1lLmluZGVudHx8KGRzKG4pP1xcXCIgIFxcXCI6XFxcIlxcXCIpLHI9XFxcIidcXFwiK24ucmVwbGFjZSgvJy9nLFxcXCInJ1xcXCIpLnJlcGxhY2UoL1xcXFxuKy9nLGAkJlxcbiR7dH1gKStcXFwiJ1xcXCI7cmV0dXJuIGUuaW1wbGljaXRLZXk/cjp5cihyLHQsJGksZnMoZSwhMSkpfWZ1bmN0aW9uIENuKG4sZSl7bGV0e3NpbmdsZVF1b3RlOnR9PWUub3B0aW9ucyxyO2lmKHQ9PT0hMSlyPWdyO2Vsc2V7bGV0IHM9bi5pbmNsdWRlcygnXFxcIicpLGk9bi5pbmNsdWRlcyhcXFwiJ1xcXCIpO3MmJiFpP3I9Umk6aSYmIXM/cj1ncjpyPXQ/Umk6Z3J9cmV0dXJuIHIobixlKX12YXIgamk7dHJ5e2ppPW5ldyBSZWdFeHAoYChefCg/PCFcXG4pKVxcbisoPyFcXG58JClgLFxcXCJnXFxcIil9Y2F0Y2gobil7amk9L1xcXFxuKyg/IVxcXFxufCQpL2d9ZnVuY3Rpb24gY3Moe2NvbW1lbnQ6bix0eXBlOmUsdmFsdWU6dH0scixzLGkpe2xldHtibG9ja1F1b3RlOm8sY29tbWVudFN0cmluZzphLGxpbmVXaWR0aDp1fT1yLm9wdGlvbnM7aWYoIW98fC9cXFxcbltcXFxcdCBdKyQvLnRlc3QodCl8fC9eXFxcXHMqJC8udGVzdCh0KSlyZXR1cm4gQ24odCxyKTtsZXQgbD1yLmluZGVudHx8KHIuZm9yY2VCbG9ja0luZGVudHx8ZHModCk/XFxcIiAgXFxcIjpcXFwiXFxcIiksZj1vPT09XFxcImxpdGVyYWxcXFwiPyEwOm89PT1cXFwiZm9sZGVkXFxcInx8ZT09PVAuQkxPQ0tfRk9MREVEPyExOmU9PT1QLkJMT0NLX0xJVEVSQUw/ITA6IVljKHQsdSxsLmxlbmd0aCk7aWYoIXQpcmV0dXJuIGY/YHxcXG5gOmA+XFxuYDtsZXQgZCxwO2ZvcihwPXQubGVuZ3RoO3A+MDstLXApe2xldCB2PXRbcC0xXTtpZih2IT09YFxcbmAmJnYhPT1cXFwiXFx0XFxcIiYmdiE9PVxcXCIgXFxcIilicmVha31sZXQgaD10LnN1YnN0cmluZyhwKSxiPWguaW5kZXhPZihgXFxuYCk7Yj09PS0xP2Q9XFxcIi1cXFwiOnQ9PT1ofHxiIT09aC5sZW5ndGgtMT8oZD1cXFwiK1xcXCIsaSYmaSgpKTpkPVxcXCJcXFwiLGgmJih0PXQuc2xpY2UoMCwtaC5sZW5ndGgpLGhbaC5sZW5ndGgtMV09PT1gXFxuYCYmKGg9aC5zbGljZSgwLC0xKSksaD1oLnJlcGxhY2UoamksYCQmJHtsfWApKTtsZXQgZz0hMSxELFQ9LTE7Zm9yKEQ9MDtEPHQubGVuZ3RoOysrRCl7bGV0IHY9dFtEXTtpZih2PT09XFxcIiBcXFwiKWc9ITA7ZWxzZSBpZih2PT09YFxcbmApVD1EO2Vsc2UgYnJlYWt9bGV0IEk9dC5zdWJzdHJpbmcoMCxUPEQ/VCsxOkQpO0kmJih0PXQuc3Vic3RyaW5nKEkubGVuZ3RoKSxJPUkucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApKTtsZXQgeT0oZj9cXFwifFxcXCI6XFxcIj5cXFwiKSsoZz9sP1xcXCIyXFxcIjpcXFwiMVxcXCI6XFxcIlxcXCIpK2Q7aWYobiYmKHkrPVxcXCIgXFxcIithKG4ucmVwbGFjZSgvID9bXFxcXHJcXFxcbl0rL2csXFxcIiBcXFwiKSkscyYmcygpKSxmKXJldHVybiB0PXQucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApLGAke3l9XFxuJHtsfSR7SX0ke3R9JHtofWA7dD10LnJlcGxhY2UoL1xcXFxuKy9nLGBcXG4kJmApLnJlcGxhY2UoLyg/Ol58XFxcXG4pKFtcXFxcdCBdLiopKD86KFtcXFxcblxcXFx0IF0qKVxcXFxuKD8hW1xcXFxuXFxcXHQgXSkpPy9nLFxcXCIkMSQyXFxcIikucmVwbGFjZSgvXFxcXG4rL2csYCQmJHtsfWApO2xldCB3PXlyKGAke0l9JHt0fSR7aH1gLGwsbHMsZnMociwhMCkpO3JldHVybmAke3l9XFxuJHtsfSR7d31gfWZ1bmN0aW9uIEdjKG4sZSx0LHIpe2xldHt0eXBlOnMsdmFsdWU6aX09bix7YWN0dWFsU3RyaW5nOm8saW1wbGljaXRLZXk6YSxpbmRlbnQ6dSxpbmRlbnRTdGVwOmwsaW5GbG93OmZ9PWU7aWYoYSYmaS5pbmNsdWRlcyhgXFxuYCl8fGYmJi9bW1xcXFxde30sXS8udGVzdChpKSlyZXR1cm4gQ24oaSxlKTtpZighaXx8L15bXFxcXG5cXFxcdCAsW1xcXFxde30jJiohfD4nXFxcIiVAYF18Xls/LV0kfF5bPy1dWyBcXFxcdF18W1xcXFxuOl1bIFxcXFx0XXxbIFxcXFx0XVxcXFxufFtcXFxcblxcXFx0IF0jfFtcXFxcblxcXFx0IDpdJC8udGVzdChpKSlyZXR1cm4gYXx8Znx8IWkuaW5jbHVkZXMoYFxcbmApP0NuKGksZSk6Y3MobixlLHQscik7aWYoIWEmJiFmJiZzIT09UC5QTEFJTiYmaS5pbmNsdWRlcyhgXFxuYCkpcmV0dXJuIGNzKG4sZSx0LHIpO2lmKGRzKGkpKXtpZih1PT09XFxcIlxcXCIpcmV0dXJuIGUuZm9yY2VCbG9ja0luZGVudD0hMCxjcyhuLGUsdCxyKTtpZihhJiZ1PT09bClyZXR1cm4gQ24oaSxlKX1sZXQgZD1pLnJlcGxhY2UoL1xcXFxuKy9nLGAkJlxcbiR7dX1gKTtpZihvKXtsZXQgcD1nPT57dmFyIEQ7cmV0dXJuIGcuZGVmYXVsdCYmZy50YWchPT1cXFwidGFnOnlhbWwub3JnLDIwMDI6c3RyXFxcIiYmKChEPWcudGVzdCk9PW51bGw/dm9pZCAwOkQudGVzdChkKSl9LHtjb21wYXQ6aCx0YWdzOmJ9PWUuZG9jLnNjaGVtYTtpZihiLnNvbWUocCl8fGghPW51bGwmJmguc29tZShwKSlyZXR1cm4gQ24oaSxlKX1yZXR1cm4gYT9kOnlyKGQsdSwkaSxmcyhlLCExKSl9ZnVuY3Rpb24gV3QobixlLHQscil7bGV0e2ltcGxpY2l0S2V5OnMsaW5GbG93Oml9PWUsbz10eXBlb2Ygbi52YWx1ZT09XFxcInN0cmluZ1xcXCI/bjpPYmplY3QuYXNzaWduKHt9LG4se3ZhbHVlOlN0cmluZyhuLnZhbHVlKX0pLHt0eXBlOmF9PW47YSE9PVAuUVVPVEVfRE9VQkxFJiYvW1xcXFx4MDAtXFxcXHgwOFxcXFx4MGItXFxcXHgxZlxcXFx4N2YtXFxcXHg5ZlxcXFx1e0Q4MDB9LVxcXFx1e0RGRkZ9XS91LnRlc3Qoby52YWx1ZSkmJihhPVAuUVVPVEVfRE9VQkxFKTtsZXQgdT1mPT57c3dpdGNoKGYpe2Nhc2UgUC5CTE9DS19GT0xERUQ6Y2FzZSBQLkJMT0NLX0xJVEVSQUw6cmV0dXJuIHN8fGk/Q24oby52YWx1ZSxlKTpjcyhvLGUsdCxyKTtjYXNlIFAuUVVPVEVfRE9VQkxFOnJldHVybiBncihvLnZhbHVlLGUpO2Nhc2UgUC5RVU9URV9TSU5HTEU6cmV0dXJuIFJpKG8udmFsdWUsZSk7Y2FzZSBQLlBMQUlOOnJldHVybiBHYyhvLGUsdCxyKTtkZWZhdWx0OnJldHVybiBudWxsfX0sbD11KGEpO2lmKGw9PT1udWxsKXtsZXR7ZGVmYXVsdEtleVR5cGU6ZixkZWZhdWx0U3RyaW5nVHlwZTpkfT1lLm9wdGlvbnMscD1zJiZmfHxkO2lmKGw9dShwKSxsPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlZmF1bHQgc3RyaW5nIHR5cGUgJHtwfWApfXJldHVybiBsfWZ1bmN0aW9uIGhzKG4sZSl7bGV0IHQ9T2JqZWN0LmFzc2lnbih7YmxvY2tRdW90ZTohMCxjb21tZW50U3RyaW5nOkdhLGRlZmF1bHRLZXlUeXBlOm51bGwsZGVmYXVsdFN0cmluZ1R5cGU6XFxcIlBMQUlOXFxcIixkaXJlY3RpdmVzOm51bGwsZG91YmxlUXVvdGVkQXNKU09OOiExLGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDo0MCxmYWxzZVN0cjpcXFwiZmFsc2VcXFwiLGZsb3dDb2xsZWN0aW9uUGFkZGluZzohMCxpbmRlbnRTZXE6ITAsbGluZVdpZHRoOjgwLG1pbkNvbnRlbnRXaWR0aDoyMCxudWxsU3RyOlxcXCJudWxsXFxcIixzaW1wbGVLZXlzOiExLHNpbmdsZVF1b3RlOm51bGwsdHJ1ZVN0cjpcXFwidHJ1ZVxcXCIsdmVyaWZ5QWxpYXNPcmRlcjohMH0sbi5zY2hlbWEudG9TdHJpbmdPcHRpb25zLGUpLHI7c3dpdGNoKHQuY29sbGVjdGlvblN0eWxlKXtjYXNlXFxcImJsb2NrXFxcIjpyPSExO2JyZWFrO2Nhc2VcXFwiZmxvd1xcXCI6cj0hMDticmVhaztkZWZhdWx0OnI9bnVsbH1yZXR1cm57YW5jaG9yczpuZXcgU2V0LGRvYzpuLGZsb3dDb2xsZWN0aW9uUGFkZGluZzp0LmZsb3dDb2xsZWN0aW9uUGFkZGluZz9cXFwiIFxcXCI6XFxcIlxcXCIsaW5kZW50OlxcXCJcXFwiLGluZGVudFN0ZXA6dHlwZW9mIHQuaW5kZW50PT1cXFwibnVtYmVyXFxcIj9cXFwiIFxcXCIucmVwZWF0KHQuaW5kZW50KTpcXFwiICBcXFwiLGluRmxvdzpyLG9wdGlvbnM6dH19ZnVuY3Rpb24gWmMobixlKXt2YXIgcyxpLG8sYTtpZihlLnRhZyl7bGV0IHU9bi5maWx0ZXIobD0+bC50YWc9PT1lLnRhZyk7aWYodS5sZW5ndGg+MClyZXR1cm4ocz11LmZpbmQobD0+bC5mb3JtYXQ9PT1lLmZvcm1hdCkpIT1udWxsP3M6dVswXX1sZXQgdCxyO2lmKEsoZSkpe3I9ZS52YWx1ZTtsZXQgdT1uLmZpbHRlcihsPT57dmFyIGY7cmV0dXJuKGY9bC5pZGVudGlmeSk9PW51bGw/dm9pZCAwOmYuY2FsbChsLHIpfSk7aWYodS5sZW5ndGg+MSl7bGV0IGw9dS5maWx0ZXIoZj0+Zi50ZXN0KTtsLmxlbmd0aD4wJiYodT1sKX10PShpPXUuZmluZChsPT5sLmZvcm1hdD09PWUuZm9ybWF0KSkhPW51bGw/aTp1LmZpbmQobD0+IWwuZm9ybWF0KX1lbHNlIHI9ZSx0PW4uZmluZCh1PT51Lm5vZGVDbGFzcyYmciBpbnN0YW5jZW9mIHUubm9kZUNsYXNzKTtpZighdCl7bGV0IHU9KGE9KG89cj09bnVsbD92b2lkIDA6ci5jb25zdHJ1Y3Rvcik9PW51bGw/dm9pZCAwOm8ubmFtZSkhPW51bGw/YTp0eXBlb2Ygcjt0aHJvdyBuZXcgRXJyb3IoYFRhZyBub3QgcmVzb2x2ZWQgZm9yICR7dX0gdmFsdWVgKX1yZXR1cm4gdH1mdW5jdGlvbiBRYyhuLGUse2FuY2hvcnM6dCxkb2M6cn0pe2lmKCFyLmRpcmVjdGl2ZXMpcmV0dXJuXFxcIlxcXCI7bGV0IHM9W10saT0oSyhuKXx8WihuKSkmJm4uYW5jaG9yO2kmJm9zKGkpJiYodC5hZGQoaSkscy5wdXNoKGAmJHtpfWApKTtsZXQgbz1uLnRhZz9uLnRhZzplLmRlZmF1bHQ/bnVsbDplLnRhZztyZXR1cm4gbyYmcy5wdXNoKHIuZGlyZWN0aXZlcy50YWdTdHJpbmcobykpLHMuam9pbihcXFwiIFxcXCIpfWZ1bmN0aW9uIFR0KG4sZSx0LHIpe3ZhciB1LGw7aWYoSChuKSlyZXR1cm4gbi50b1N0cmluZyhlLHQscik7aWYoV2Uobikpe2lmKGUuZG9jLmRpcmVjdGl2ZXMpcmV0dXJuIG4udG9TdHJpbmcoZSk7aWYoKHU9ZS5yZXNvbHZlZEFsaWFzZXMpIT1udWxsJiZ1LmhhcyhuKSl0aHJvdyBuZXcgVHlwZUVycm9yKFxcXCJDYW5ub3Qgc3RyaW5naWZ5IGNpcmN1bGFyIHN0cnVjdHVyZSB3aXRob3V0IGFsaWFzIG5vZGVzXFxcIik7ZS5yZXNvbHZlZEFsaWFzZXM/ZS5yZXNvbHZlZEFsaWFzZXMuYWRkKG4pOmUucmVzb2x2ZWRBbGlhc2VzPW5ldyBTZXQoW25dKSxuPW4ucmVzb2x2ZShlLmRvYyl9bGV0IHMsaT1KKG4pP246ZS5kb2MuY3JlYXRlTm9kZShuLHtvblRhZ09iajpmPT5zPWZ9KTtzfHwocz1aYyhlLmRvYy5zY2hlbWEudGFncyxpKSk7bGV0IG89UWMoaSxzLGUpO28ubGVuZ3RoPjAmJihlLmluZGVudEF0U3RhcnQ9KChsPWUuaW5kZW50QXRTdGFydCkhPW51bGw/bDowKStvLmxlbmd0aCsxKTtsZXQgYT10eXBlb2Ygcy5zdHJpbmdpZnk9PVxcXCJmdW5jdGlvblxcXCI/cy5zdHJpbmdpZnkoaSxlLHQscik6SyhpKT9XdChpLGUsdCxyKTppLnRvU3RyaW5nKGUsdCxyKTtyZXR1cm4gbz9LKGkpfHxhWzBdPT09XFxcIntcXFwifHxhWzBdPT09XFxcIltcXFwiP2Ake299ICR7YX1gOmAke299XFxuJHtlLmluZGVudH0ke2F9YDphfWZ1bmN0aW9uIFFhKHtrZXk6bix2YWx1ZTplfSx0LHIscyl7dmFyIE8sQztsZXR7YWxsTnVsbFZhbHVlczppLGRvYzpvLGluZGVudDphLGluZGVudFN0ZXA6dSxvcHRpb25zOntjb21tZW50U3RyaW5nOmwsaW5kZW50U2VxOmYsc2ltcGxlS2V5czpkfX09dCxwPUoobikmJm4uY29tbWVudHx8bnVsbDtpZihkKXtpZihwKXRocm93IG5ldyBFcnJvcihcXFwiV2l0aCBzaW1wbGUga2V5cywga2V5IG5vZGVzIGNhbm5vdCBoYXZlIGNvbW1lbnRzXFxcIik7aWYoWihuKXx8IUoobikmJnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIil7bGV0IFY9XFxcIldpdGggc2ltcGxlIGtleXMsIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQgYXMgYSBrZXkgdmFsdWVcXFwiO3Rocm93IG5ldyBFcnJvcihWKX19bGV0IGg9IWQmJighbnx8cCYmZT09bnVsbCYmIXQuaW5GbG93fHxaKG4pfHwoSyhuKT9uLnR5cGU9PT1QLkJMT0NLX0ZPTERFRHx8bi50eXBlPT09UC5CTE9DS19MSVRFUkFMOnR5cGVvZiBuPT1cXFwib2JqZWN0XFxcIikpO3Q9T2JqZWN0LmFzc2lnbih7fSx0LHthbGxOdWxsVmFsdWVzOiExLGltcGxpY2l0S2V5OiFoJiYoZHx8IWkpLGluZGVudDphK3V9KTtsZXQgYj0hMSxnPSExLEQ9VHQobix0LCgpPT5iPSEwLCgpPT5nPSEwKTtpZighaCYmIXQuaW5GbG93JiZELmxlbmd0aD4xMDI0KXtpZihkKXRocm93IG5ldyBFcnJvcihcXFwiV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVyc1xcXCIpO2g9ITB9aWYodC5pbkZsb3cpe2lmKGl8fGU9PW51bGwpcmV0dXJuIGImJnImJnIoKSxEPT09XFxcIlxcXCI/XFxcIj9cXFwiOmg/YD8gJHtEfWA6RH1lbHNlIGlmKGkmJiFkfHxlPT1udWxsJiZoKXJldHVybiBEPWA/ICR7RH1gLHAmJiFiP0QrPW90KEQsdC5pbmRlbnQsbChwKSk6ZyYmcyYmcygpLEQ7YiYmKHA9bnVsbCksaD8ocCYmKEQrPW90KEQsdC5pbmRlbnQsbChwKSkpLEQ9YD8gJHtEfVxcbiR7YX06YCk6KEQ9YCR7RH06YCxwJiYoRCs9b3QoRCx0LmluZGVudCxsKHApKSkpO2xldCBULEksTjtKKGUpPyhUPSEhZS5zcGFjZUJlZm9yZSxJPWUuY29tbWVudEJlZm9yZSxOPWUuY29tbWVudCk6KFQ9ITEsST1udWxsLE49bnVsbCxlJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCImJihlPW8uY3JlYXRlTm9kZShlKSkpLHQuaW1wbGljaXRLZXk9ITEsIWgmJiFwJiZLKGUpJiYodC5pbmRlbnRBdFN0YXJ0PUQubGVuZ3RoKzEpLGc9ITEsIWYmJnUubGVuZ3RoPj0yJiYhdC5pbkZsb3cmJiFoJiZKZShlKSYmIWUuZmxvdyYmIWUudGFnJiYhZS5hbmNob3ImJih0LmluZGVudD10LmluZGVudC5zdWJzdHJpbmcoMikpO2xldCB5PSExLHc9VHQoZSx0LCgpPT55PSEwLCgpPT5nPSEwKSx2PVxcXCIgXFxcIjtpZihwfHxUfHxJKXtpZih2PVQ/YFxcbmA6XFxcIlxcXCIsSSl7bGV0IFY9bChJKTt2Kz1gXFxuJHtQZShWLHQuaW5kZW50KX1gfXc9PT1cXFwiXFxcIiYmIXQuaW5GbG93P3Y9PT1gXFxuYCYmKHY9YFxcblxcbmApOnYrPWBcXG4ke3QuaW5kZW50fWB9ZWxzZSBpZighaCYmWihlKSl7bGV0IFY9d1swXSxqPXcuaW5kZXhPZihgXFxuYCksWT1qIT09LTEsZWU9KEM9KE89dC5pbkZsb3cpIT1udWxsP086ZS5mbG93KSE9bnVsbD9DOmUuaXRlbXMubGVuZ3RoPT09MDtpZihZfHwhZWUpe2xldCBhZT0hMTtpZihZJiYoVj09PVxcXCImXFxcInx8Vj09PVxcXCIhXFxcIikpe2xldCB4PXcuaW5kZXhPZihcXFwiIFxcXCIpO1Y9PT1cXFwiJlxcXCImJnghPT0tMSYmeDxqJiZ3W3grMV09PT1cXFwiIVxcXCImJih4PXcuaW5kZXhPZihcXFwiIFxcXCIseCsxKSksKHg9PT0tMXx8ajx4KSYmKGFlPSEwKX1hZXx8KHY9YFxcbiR7dC5pbmRlbnR9YCl9fWVsc2Uodz09PVxcXCJcXFwifHx3WzBdPT09YFxcbmApJiYodj1cXFwiXFxcIik7cmV0dXJuIEQrPXYrdyx0LmluRmxvdz95JiZyJiZyKCk6TiYmIXk/RCs9b3QoRCx0LmluZGVudCxsKE4pKTpnJiZzJiZzKCksRH1mdW5jdGlvbiBwcyhuLGUpeyhuPT09XFxcImRlYnVnXFxcInx8bj09PVxcXCJ3YXJuXFxcIikmJih0eXBlb2YgcHJvY2VzcyE9XFxcInVuZGVmaW5lZFxcXCImJnByb2Nlc3MuZW1pdFdhcm5pbmc/cHJvY2Vzcy5lbWl0V2FybmluZyhlKTpjb25zb2xlLndhcm4oZSkpfXZhciBtcz1cXFwiPDxcXFwiLFllPXtpZGVudGlmeTpuPT5uPT09bXN8fHR5cGVvZiBuPT1cXFwic3ltYm9sXFxcIiYmbi5kZXNjcmlwdGlvbj09PW1zLGRlZmF1bHQ6XFxcImtleVxcXCIsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZVxcXCIsdGVzdDovXjw8JC8scmVzb2x2ZTooKT0+T2JqZWN0LmFzc2lnbihuZXcgUChTeW1ib2wobXMpKSx7YWRkVG9KU01hcDpWaX0pLHN0cmluZ2lmeTooKT0+bXN9LFhhPShuLGUpPT4oWWUuaWRlbnRpZnkoZSl8fEsoZSkmJighZS50eXBlfHxlLnR5cGU9PT1QLlBMQUlOKSYmWWUuaWRlbnRpZnkoZS52YWx1ZSkpJiYobj09bnVsbD92b2lkIDA6bi5kb2Muc2NoZW1hLnRhZ3Muc29tZSh0PT50LnRhZz09PVllLnRhZyYmdC5kZWZhdWx0KSk7ZnVuY3Rpb24gVmkobixlLHQpe2lmKHQ9biYmV2UodCk/dC5yZXNvbHZlKG4uZG9jKTp0LEplKHQpKWZvcihsZXQgciBvZiB0Lml0ZW1zKXFpKG4sZSxyKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCByIG9mIHQpcWkobixlLHIpO2Vsc2UgcWkobixlLHQpfWZ1bmN0aW9uIHFpKG4sZSx0KXtsZXQgcj1uJiZXZSh0KT90LnJlc29sdmUobi5kb2MpOnQ7aWYoIUhlKHIpKXRocm93IG5ldyBFcnJvcihcXFwiTWVyZ2Ugc291cmNlcyBtdXN0IGJlIG1hcHMgb3IgbWFwIGFsaWFzZXNcXFwiKTtsZXQgcz1yLnRvSlNPTihudWxsLG4sTWFwKTtmb3IobGV0W2ksb11vZiBzKWUgaW5zdGFuY2VvZiBNYXA/ZS5oYXMoaSl8fGUuc2V0KGksbyk6ZSBpbnN0YW5jZW9mIFNldD9lLmFkZChpKTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBlfWZ1bmN0aW9uIERzKG4sZSx7a2V5OnQsdmFsdWU6cn0pe2lmKEoodCkmJnQuYWRkVG9KU01hcCl0LmFkZFRvSlNNYXAobixlLHIpO2Vsc2UgaWYoWGEobix0KSlWaShuLGUscik7ZWxzZXtsZXQgcz1jZSh0LFxcXCJcXFwiLG4pO2lmKGUgaW5zdGFuY2VvZiBNYXApZS5zZXQocyxjZShyLHMsbikpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFNldCllLmFkZChzKTtlbHNle2xldCBpPVhjKHQscyxuKSxvPWNlKHIsaSxuKTtpIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7dmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOmVbaV09b319cmV0dXJuIGV9ZnVuY3Rpb24gWGMobixlLHQpe2lmKGU9PT1udWxsKXJldHVyblxcXCJcXFwiO2lmKHR5cGVvZiBlIT1cXFwib2JqZWN0XFxcIilyZXR1cm4gU3RyaW5nKGUpO2lmKEoobikmJih0IT1udWxsJiZ0LmRvYykpe2xldCByPWhzKHQuZG9jLHt9KTtyLmFuY2hvcnM9bmV3IFNldDtmb3IobGV0IGkgb2YgdC5hbmNob3JzLmtleXMoKSlyLmFuY2hvcnMuYWRkKGkuYW5jaG9yKTtyLmluRmxvdz0hMCxyLmluU3RyaW5naWZ5S2V5PSEwO2xldCBzPW4udG9TdHJpbmcocik7aWYoIXQubWFwS2V5V2FybmVkKXtsZXQgaT1KU09OLnN0cmluZ2lmeShzKTtpLmxlbmd0aD40MCYmKGk9aS5zdWJzdHJpbmcoMCwzNikrJy4uLlxcXCInKSxwcyh0LmRvYy5vcHRpb25zLmxvZ0xldmVsLGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtpfS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKSx0Lm1hcEtleVdhcm5lZD0hMH1yZXR1cm4gc31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9ZnVuY3Rpb24gdm4obixlLHQpe2xldCByPXd0KG4sdm9pZCAwLHQpLHM9d3QoZSx2b2lkIDAsdCk7cmV0dXJuIG5ldyBpZShyLHMpfXZhciBpZT1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdD1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxUZSx7dmFsdWU6X2l9KSx0aGlzLmtleT1lLHRoaXMudmFsdWU9dH1jbG9uZShlKXtsZXR7a2V5OnQsdmFsdWU6cn09dGhpcztyZXR1cm4gSih0KSYmKHQ9dC5jbG9uZShlKSksSihyKSYmKHI9ci5jbG9uZShlKSksbmV3IG4odCxyKX10b0pTT04oZSx0KXtsZXQgcj10IT1udWxsJiZ0Lm1hcEFzTWFwP25ldyBNYXA6e307cmV0dXJuIERzKHQscix0aGlzKX10b1N0cmluZyhlLHQscil7cmV0dXJuIGUhPW51bGwmJmUuZG9jP1FhKHRoaXMsZSx0LHIpOkpTT04uc3RyaW5naWZ5KHRoaXMpfX07ZnVuY3Rpb24gZ3MobixlLHQpe3ZhciBpO3JldHVybigoKGk9ZS5pbkZsb3cpIT1udWxsP2k6bi5mbG93KT90ZjplZikobixlLHQpfWZ1bmN0aW9uIGVmKHtjb21tZW50Om4saXRlbXM6ZX0sdCx7YmxvY2tJdGVtUHJlZml4OnIsZmxvd0NoYXJzOnMsaXRlbUluZGVudDppLG9uQ2hvbXBLZWVwOm8sb25Db21tZW50OmF9KXtsZXR7aW5kZW50OnUsb3B0aW9uczp7Y29tbWVudFN0cmluZzpsfX09dCxmPU9iamVjdC5hc3NpZ24oe30sdCx7aW5kZW50OmksdHlwZTpudWxsfSksZD0hMSxwPVtdO2ZvcihsZXQgYj0wO2I8ZS5sZW5ndGg7KytiKXtsZXQgZz1lW2JdLEQ9bnVsbDtpZihKKGcpKSFkJiZnLnNwYWNlQmVmb3JlJiZwLnB1c2goXFxcIlxcXCIpLHlzKHQscCxnLmNvbW1lbnRCZWZvcmUsZCksZy5jb21tZW50JiYoRD1nLmNvbW1lbnQpO2Vsc2UgaWYoSChnKSl7bGV0IEk9SihnLmtleSk/Zy5rZXk6bnVsbDtJJiYoIWQmJkkuc3BhY2VCZWZvcmUmJnAucHVzaChcXFwiXFxcIikseXModCxwLEkuY29tbWVudEJlZm9yZSxkKSl9ZD0hMTtsZXQgVD1UdChnLGYsKCk9PkQ9bnVsbCwoKT0+ZD0hMCk7RCYmKFQrPW90KFQsaSxsKEQpKSksZCYmRCYmKGQ9ITEpLHAucHVzaChyK1QpfWxldCBoO2lmKHAubGVuZ3RoPT09MCloPXMuc3RhcnQrcy5lbmQ7ZWxzZXtoPXBbMF07Zm9yKGxldCBiPTE7YjxwLmxlbmd0aDsrK2Ipe2xldCBnPXBbYl07aCs9Zz9gXFxuJHt1fSR7Z31gOmBcXG5gfX1yZXR1cm4gbj8oaCs9YFxcbmArUGUobChuKSx1KSxhJiZhKCkpOmQmJm8mJm8oKSxofWZ1bmN0aW9uIHRmKHtpdGVtczpufSxlLHtmbG93Q2hhcnM6dCxpdGVtSW5kZW50OnJ9KXtsZXR7aW5kZW50OnMsaW5kZW50U3RlcDppLGZsb3dDb2xsZWN0aW9uUGFkZGluZzpvLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6YX19PWU7cis9aTtsZXQgdT1PYmplY3QuYXNzaWduKHt9LGUse2luZGVudDpyLGluRmxvdzohMCx0eXBlOm51bGx9KSxsPSExLGY9MCxkPVtdO2ZvcihsZXQgYj0wO2I8bi5sZW5ndGg7KytiKXtsZXQgZz1uW2JdLEQ9bnVsbDtpZihKKGcpKWcuc3BhY2VCZWZvcmUmJmQucHVzaChcXFwiXFxcIikseXMoZSxkLGcuY29tbWVudEJlZm9yZSwhMSksZy5jb21tZW50JiYoRD1nLmNvbW1lbnQpO2Vsc2UgaWYoSChnKSl7bGV0IEk9SihnLmtleSk/Zy5rZXk6bnVsbDtJJiYoSS5zcGFjZUJlZm9yZSYmZC5wdXNoKFxcXCJcXFwiKSx5cyhlLGQsSS5jb21tZW50QmVmb3JlLCExKSxJLmNvbW1lbnQmJihsPSEwKSk7bGV0IE49SihnLnZhbHVlKT9nLnZhbHVlOm51bGw7Tj8oTi5jb21tZW50JiYoRD1OLmNvbW1lbnQpLE4uY29tbWVudEJlZm9yZSYmKGw9ITApKTpnLnZhbHVlPT1udWxsJiYoSSE9bnVsbCYmSS5jb21tZW50KSYmKEQ9SS5jb21tZW50KX1EJiYobD0hMCk7bGV0IFQ9VHQoZyx1LCgpPT5EPW51bGwpO2I8bi5sZW5ndGgtMSYmKFQrPVxcXCIsXFxcIiksRCYmKFQrPW90KFQscixhKEQpKSksIWwmJihkLmxlbmd0aD5mfHxULmluY2x1ZGVzKGBcXG5gKSkmJihsPSEwKSxkLnB1c2goVCksZj1kLmxlbmd0aH1sZXR7c3RhcnQ6cCxlbmQ6aH09dDtpZihkLmxlbmd0aD09PTApcmV0dXJuIHAraDtpZighbCl7bGV0IGI9ZC5yZWR1Y2UoKGcsRCk9PmcrRC5sZW5ndGgrMiwyKTtsPWUub3B0aW9ucy5saW5lV2lkdGg+MCYmYj5lLm9wdGlvbnMubGluZVdpZHRofWlmKGwpe2xldCBiPXA7Zm9yKGxldCBnIG9mIGQpYis9Zz9gXFxuJHtpfSR7c30ke2d9YDpgXFxuYDtyZXR1cm5gJHtifVxcbiR7c30ke2h9YH1lbHNlIHJldHVybmAke3B9JHtvfSR7ZC5qb2luKFxcXCIgXFxcIil9JHtvfSR7aH1gfWZ1bmN0aW9uIHlzKHtpbmRlbnQ6bixvcHRpb25zOntjb21tZW50U3RyaW5nOmV9fSx0LHIscyl7aWYociYmcyYmKHI9ci5yZXBsYWNlKC9eXFxcXG4rLyxcXFwiXFxcIikpLHIpe2xldCBpPVBlKGUociksbik7dC5wdXNoKGkudHJpbVN0YXJ0KCkpfX1mdW5jdGlvbiBJdChuLGUpe2xldCB0PUsoZSk/ZS52YWx1ZTplO2ZvcihsZXQgciBvZiBuKWlmKEgocikmJihyLmtleT09PWV8fHIua2V5PT09dHx8SyhyLmtleSkmJnIua2V5LnZhbHVlPT09dCkpcmV0dXJuIHJ9dmFyIG9lPWNsYXNzIGV4dGVuZHMgU257c3RhdGljIGdldCB0YWdOYW1lKCl7cmV0dXJuXFxcInRhZzp5YW1sLm9yZywyMDAyOm1hcFxcXCJ9Y29uc3RydWN0b3IoZSl7c3VwZXIoS2UsZSksdGhpcy5pdGVtcz1bXX1zdGF0aWMgZnJvbShlLHQscil7bGV0e2tlZXBVbmRlZmluZWQ6cyxyZXBsYWNlcjppfT1yLG89bmV3IHRoaXMoZSksYT0odSxsKT0+e2lmKHR5cGVvZiBpPT1cXFwiZnVuY3Rpb25cXFwiKWw9aS5jYWxsKHQsdSxsKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkmJiFpLmluY2x1ZGVzKHUpKXJldHVybjsobCE9PXZvaWQgMHx8cykmJm8uaXRlbXMucHVzaCh2bih1LGwscikpfTtpZih0IGluc3RhbmNlb2YgTWFwKWZvcihsZXRbdSxsXW9mIHQpYSh1LGwpO2Vsc2UgaWYodCYmdHlwZW9mIHQ9PVxcXCJvYmplY3RcXFwiKWZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyh0KSlhKHUsdFt1XSk7cmV0dXJuIHR5cGVvZiBlLnNvcnRNYXBFbnRyaWVzPT1cXFwiZnVuY3Rpb25cXFwiJiZvLml0ZW1zLnNvcnQoZS5zb3J0TWFwRW50cmllcyksb31hZGQoZSx0KXt2YXIgbztsZXQgcjtIKGUpP3I9ZTohZXx8dHlwZW9mIGUhPVxcXCJvYmplY3RcXFwifHwhKFxcXCJrZXlcXFwiaW4gZSk/cj1uZXcgaWUoZSxlPT1udWxsP3ZvaWQgMDplLnZhbHVlKTpyPW5ldyBpZShlLmtleSxlLnZhbHVlKTtsZXQgcz1JdCh0aGlzLml0ZW1zLHIua2V5KSxpPShvPXRoaXMuc2NoZW1hKT09bnVsbD92b2lkIDA6by5zb3J0TWFwRW50cmllcztpZihzKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEtleSAke3Iua2V5fSBhbHJlYWR5IHNldGApO0socy52YWx1ZSkmJnVzKHIudmFsdWUpP3MudmFsdWUudmFsdWU9ci52YWx1ZTpzLnZhbHVlPXIudmFsdWV9ZWxzZSBpZihpKXtsZXQgYT10aGlzLml0ZW1zLmZpbmRJbmRleCh1PT5pKHIsdSk8MCk7YT09PS0xP3RoaXMuaXRlbXMucHVzaChyKTp0aGlzLml0ZW1zLnNwbGljZShhLDAscil9ZWxzZSB0aGlzLml0ZW1zLnB1c2gocil9ZGVsZXRlKGUpe2xldCB0PUl0KHRoaXMuaXRlbXMsZSk7cmV0dXJuIHQ/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKHQpLDEpLmxlbmd0aD4wOiExfWdldChlLHQpe3ZhciBpO2xldCByPUl0KHRoaXMuaXRlbXMsZSkscz1yPT1udWxsP3ZvaWQgMDpyLnZhbHVlO3JldHVybihpPSF0JiZLKHMpP3MudmFsdWU6cykhPW51bGw/aTp2b2lkIDB9aGFzKGUpe3JldHVybiEhSXQodGhpcy5pdGVtcyxlKX1zZXQoZSx0KXt0aGlzLmFkZChuZXcgaWUoZSx0KSwhMCl9dG9KU09OKGUsdCxyKXtsZXQgcz1yP25ldyByOnQhPW51bGwmJnQubWFwQXNNYXA/bmV3IE1hcDp7fTt0IT1udWxsJiZ0Lm9uQ3JlYXRlJiZ0Lm9uQ3JlYXRlKHMpO2ZvcihsZXQgaSBvZiB0aGlzLml0ZW1zKURzKHQscyxpKTtyZXR1cm4gc310b1N0cmluZyhlLHQscil7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKWlmKCFIKHMpKXRocm93IG5ldyBFcnJvcihgTWFwIGl0ZW1zIG11c3QgYWxsIGJlIHBhaXJzOyBmb3VuZCAke0pTT04uc3RyaW5naWZ5KHMpfSBpbnN0ZWFkYCk7cmV0dXJuIWUuYWxsTnVsbFZhbHVlcyYmdGhpcy5oYXNBbGxOdWxsVmFsdWVzKCExKSYmKGU9T2JqZWN0LmFzc2lnbih7fSxlLHthbGxOdWxsVmFsdWVzOiEwfSkpLGdzKHRoaXMsZSx7YmxvY2tJdGVtUHJlZml4OlxcXCJcXFwiLGZsb3dDaGFyczp7c3RhcnQ6XFxcIntcXFwiLGVuZDpcXFwifVxcXCJ9LGl0ZW1JbmRlbnQ6ZS5pbmRlbnR8fFxcXCJcXFwiLG9uQ2hvbXBLZWVwOnIsb25Db21tZW50OnR9KX19O3ZhciBHZT17Y29sbGVjdGlvbjpcXFwibWFwXFxcIixkZWZhdWx0OiEwLG5vZGVDbGFzczpvZSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOm1hcFxcXCIscmVzb2x2ZShuLGUpe3JldHVybiBIZShuKXx8ZShcXFwiRXhwZWN0ZWQgYSBtYXBwaW5nIGZvciB0aGlzIHRhZ1xcXCIpLG59LGNyZWF0ZU5vZGU6KG4sZSx0KT0+b2UuZnJvbShuLGUsdCl9O3ZhciBiZT1jbGFzcyBleHRlbmRzIFNue3N0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVyblxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXFcXFwifWNvbnN0cnVjdG9yKGUpe3N1cGVyKEZ0LGUpLHRoaXMuaXRlbXM9W119YWRkKGUpe3RoaXMuaXRlbXMucHVzaChlKX1kZWxldGUoZSl7bGV0IHQ9YnMoZSk7cmV0dXJuIHR5cGVvZiB0IT1cXFwibnVtYmVyXFxcIj8hMTp0aGlzLml0ZW1zLnNwbGljZSh0LDEpLmxlbmd0aD4wfWdldChlLHQpe2xldCByPWJzKGUpO2lmKHR5cGVvZiByIT1cXFwibnVtYmVyXFxcIilyZXR1cm47bGV0IHM9dGhpcy5pdGVtc1tyXTtyZXR1cm4hdCYmSyhzKT9zLnZhbHVlOnN9aGFzKGUpe2xldCB0PWJzKGUpO3JldHVybiB0eXBlb2YgdD09XFxcIm51bWJlclxcXCImJnQ8dGhpcy5pdGVtcy5sZW5ndGh9c2V0KGUsdCl7bGV0IHI9YnMoZSk7aWYodHlwZW9mIHIhPVxcXCJudW1iZXJcXFwiKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YWxpZCBpbmRleCwgbm90ICR7ZX0uYCk7bGV0IHM9dGhpcy5pdGVtc1tyXTtLKHMpJiZ1cyh0KT9zLnZhbHVlPXQ6dGhpcy5pdGVtc1tyXT10fXRvSlNPTihlLHQpe2xldCByPVtdO3QhPW51bGwmJnQub25DcmVhdGUmJnQub25DcmVhdGUocik7bGV0IHM9MDtmb3IobGV0IGkgb2YgdGhpcy5pdGVtcylyLnB1c2goY2UoaSxTdHJpbmcocysrKSx0KSk7cmV0dXJuIHJ9dG9TdHJpbmcoZSx0LHIpe3JldHVybiBlP2dzKHRoaXMsZSx7YmxvY2tJdGVtUHJlZml4OlxcXCItIFxcXCIsZmxvd0NoYXJzOntzdGFydDpcXFwiW1xcXCIsZW5kOlxcXCJdXFxcIn0saXRlbUluZGVudDooZS5pbmRlbnR8fFxcXCJcXFwiKStcXFwiICBcXFwiLG9uQ2hvbXBLZWVwOnIsb25Db21tZW50OnR9KTpKU09OLnN0cmluZ2lmeSh0aGlzKX1zdGF0aWMgZnJvbShlLHQscil7bGV0e3JlcGxhY2VyOnN9PXIsaT1uZXcgdGhpcyhlKTtpZih0JiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHQpKXtsZXQgbz0wO2ZvcihsZXQgYSBvZiB0KXtpZih0eXBlb2Ygcz09XFxcImZ1bmN0aW9uXFxcIil7bGV0IHU9dCBpbnN0YW5jZW9mIFNldD9hOlN0cmluZyhvKyspO2E9cy5jYWxsKHQsdSxhKX1pLml0ZW1zLnB1c2god3QoYSx2b2lkIDAscikpfX1yZXR1cm4gaX19O2Z1bmN0aW9uIGJzKG4pe2xldCBlPUsobik/bi52YWx1ZTpuO3JldHVybiBlJiZ0eXBlb2YgZT09XFxcInN0cmluZ1xcXCImJihlPU51bWJlcihlKSksdHlwZW9mIGU9PVxcXCJudW1iZXJcXFwiJiZOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wP2U6bnVsbH12YXIgWmU9e2NvbGxlY3Rpb246XFxcInNlcVxcXCIsZGVmYXVsdDohMCxub2RlQ2xhc3M6YmUsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXFcXFwiLHJlc29sdmUobixlKXtyZXR1cm4gSmUobil8fGUoXFxcIkV4cGVjdGVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgdGFnXFxcIiksbn0sY3JlYXRlTm9kZToobixlLHQpPT5iZS5mcm9tKG4sZSx0KX07dmFyIEx0PXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcInN0cmluZ1xcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOnN0clxcXCIscmVzb2x2ZTpuPT5uLHN0cmluZ2lmeShuLGUsdCxyKXtyZXR1cm4gZT1PYmplY3QuYXNzaWduKHthY3R1YWxTdHJpbmc6ITB9LGUpLFd0KG4sZSx0LHIpfX07dmFyIEh0PXtpZGVudGlmeTpuPT5uPT1udWxsLGNyZWF0ZU5vZGU6KCk9Pm5ldyBQKG51bGwpLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXFxcIix0ZXN0Oi9eKD86fnxbTm5ddWxsfE5VTEwpPyQvLHJlc29sdmU6KCk9Pm5ldyBQKG51bGwpLHN0cmluZ2lmeTooe3NvdXJjZTpufSxlKT0+dHlwZW9mIG49PVxcXCJzdHJpbmdcXFwiJiZIdC50ZXN0LnRlc3Qobik/bjplLm9wdGlvbnMubnVsbFN0cn07dmFyIGJyPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcImJvb2xlYW5cXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXFxcIix0ZXN0Oi9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLHJlc29sdmU6bj0+bmV3IFAoblswXT09PVxcXCJ0XFxcInx8blswXT09PVxcXCJUXFxcIiksc3RyaW5naWZ5KHtzb3VyY2U6bix2YWx1ZTplfSx0KXtpZihuJiZici50ZXN0LnRlc3Qobikpe2xldCByPW5bMF09PT1cXFwidFxcXCJ8fG5bMF09PT1cXFwiVFxcXCI7aWYoZT09PXIpcmV0dXJuIG59cmV0dXJuIGU/dC5vcHRpb25zLnRydWVTdHI6dC5vcHRpb25zLmZhbHNlU3RyfX07ZnVuY3Rpb24gRmUoe2Zvcm1hdDpuLG1pbkZyYWN0aW9uRGlnaXRzOmUsdGFnOnQsdmFsdWU6cn0pe2lmKHR5cGVvZiByPT1cXFwiYmlnaW50XFxcIilyZXR1cm4gU3RyaW5nKHIpO2xldCBzPXR5cGVvZiByPT1cXFwibnVtYmVyXFxcIj9yOk51bWJlcihyKTtpZighaXNGaW5pdGUocykpcmV0dXJuIGlzTmFOKHMpP1xcXCIubmFuXFxcIjpzPDA/XFxcIi0uaW5mXFxcIjpcXFwiLmluZlxcXCI7bGV0IGk9SlNPTi5zdHJpbmdpZnkocik7aWYoIW4mJmUmJighdHx8dD09PVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIpJiYvXlxcXFxkLy50ZXN0KGkpKXtsZXQgbz1pLmluZGV4T2YoXFxcIi5cXFwiKTtvPDAmJihvPWkubGVuZ3RoLGkrPVxcXCIuXFxcIik7bGV0IGE9ZS0oaS5sZW5ndGgtby0xKTtmb3IoO2EtLSA+MDspaSs9XFxcIjBcXFwifXJldHVybiBpfXZhciBGcz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXig/OlstK10/XFxcXC4oPzppbmZ8SW5mfElORil8XFxcXC5uYW58XFxcXC5OYU58XFxcXC5OQU4pJC8scmVzb2x2ZTpuPT5uLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09XFxcIm5hblxcXCI/TmFOOm5bMF09PT1cXFwiLVxcXCI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxzdHJpbmdpZnk6RmV9LEVzPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIkVYUFxcXCIsdGVzdDovXlstK10/KD86XFxcXC5bMC05XSt8WzAtOV0rKD86XFxcXC5bMC05XSopPylbZUVdWy0rXT9bMC05XSskLyxyZXNvbHZlOm49PnBhcnNlRmxvYXQobiksc3RyaW5naWZ5KG4pe2xldCBlPU51bWJlcihuLnZhbHVlKTtyZXR1cm4gaXNGaW5pdGUoZSk/ZS50b0V4cG9uZW50aWFsKCk6RmUobil9fSx3cz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXlstK10/KD86XFxcXC5bMC05XSt8WzAtOV0rXFxcXC5bMC05XSopJC8scmVzb2x2ZShuKXtsZXQgZT1uZXcgUChwYXJzZUZsb2F0KG4pKSx0PW4uaW5kZXhPZihcXFwiLlxcXCIpO3JldHVybiB0IT09LTEmJm5bbi5sZW5ndGgtMV09PT1cXFwiMFxcXCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoLXQtMSksZX0sc3RyaW5naWZ5OkZlfTt2YXIgVHM9bj0+dHlwZW9mIG49PVxcXCJiaWdpbnRcXFwifHxOdW1iZXIuaXNJbnRlZ2VyKG4pLFVpPShuLGUsdCx7aW50QXNCaWdJbnQ6cn0pPT5yP0JpZ0ludChuKTpwYXJzZUludChuLnN1YnN0cmluZyhlKSx0KTtmdW5jdGlvbiBldShuLGUsdCl7bGV0e3ZhbHVlOnJ9PW47cmV0dXJuIFRzKHIpJiZyPj0wP3Qrci50b1N0cmluZyhlKTpGZShuKX12YXIgU3M9e2lkZW50aWZ5Om49PlRzKG4pJiZuPj0wLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiT0NUXFxcIix0ZXN0Oi9eMG9bMC03XSskLyxyZXNvbHZlOihuLGUsdCk9PlVpKG4sMiw4LHQpLHN0cmluZ2lmeTpuPT5ldShuLDgsXFxcIjBvXFxcIil9LGtzPXtpZGVudGlmeTpUcyxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6aW50XFxcIix0ZXN0Oi9eWy0rXT9bMC05XSskLyxyZXNvbHZlOihuLGUsdCk9PlVpKG4sMCwxMCx0KSxzdHJpbmdpZnk6RmV9LENzPXtpZGVudGlmeTpuPT5UcyhuKSYmbj49MCxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6aW50XFxcIixmb3JtYXQ6XFxcIkhFWFxcXCIsdGVzdDovXjB4WzAtOWEtZkEtRl0rJC8scmVzb2x2ZToobixlLHQpPT5VaShuLDIsMTYsdCksc3RyaW5naWZ5Om49PmV1KG4sMTYsXFxcIjB4XFxcIil9O3ZhciB0dT1bR2UsWmUsTHQsSHQsYnIsU3Msa3MsQ3MsRnMsRXMsd3NdO2Z1bmN0aW9uIG51KG4pe3JldHVybiB0eXBlb2Ygbj09XFxcImJpZ2ludFxcXCJ8fE51bWJlci5pc0ludGVnZXIobil9dmFyIHZzPSh7dmFsdWU6bn0pPT5KU09OLnN0cmluZ2lmeShuKSxuZj1be2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwic3RyaW5nXFxcIixkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6c3RyXFxcIixyZXNvbHZlOm49Pm4sc3RyaW5naWZ5OnZzfSx7aWRlbnRpZnk6bj0+bj09bnVsbCxjcmVhdGVOb2RlOigpPT5uZXcgUChudWxsKSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6bnVsbFxcXCIsdGVzdDovXm51bGwkLyxyZXNvbHZlOigpPT5udWxsLHN0cmluZ2lmeTp2c30se2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwiYm9vbGVhblxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcXFwiLHRlc3Q6L150cnVlfGZhbHNlJC8scmVzb2x2ZTpuPT5uPT09XFxcInRydWVcXFwiLHN0cmluZ2lmeTp2c30se2lkZW50aWZ5Om51LGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopJC8scmVzb2x2ZToobixlLHtpbnRBc0JpZ0ludDp0fSk9PnQ/QmlnSW50KG4pOnBhcnNlSW50KG4sMTApLHN0cmluZ2lmeTooe3ZhbHVlOm59KT0+bnUobik/bi50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KG4pfSx7aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXi0/KD86MHxbMS05XVswLTldKikoPzpcXFxcLlswLTldKik/KD86W2VFXVstK10/WzAtOV0rKT8kLyxyZXNvbHZlOm49PnBhcnNlRmxvYXQobiksc3RyaW5naWZ5OnZzfV0scmY9e2RlZmF1bHQ6ITAsdGFnOlxcXCJcXFwiLHRlc3Q6L14vLHJlc29sdmUobixlKXtyZXR1cm4gZShgVW5yZXNvbHZlZCBwbGFpbiBzY2FsYXIgJHtKU09OLnN0cmluZ2lmeShuKX1gKSxufX0scnU9W0dlLFplXS5jb25jYXQobmYscmYpO3ZhciBGcj17aWRlbnRpZnk6bj0+biBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksZGVmYXVsdDohMSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeVxcXCIscmVzb2x2ZShuLGUpe2lmKHR5cGVvZiBCdWZmZXI9PVxcXCJmdW5jdGlvblxcXCIpcmV0dXJuIEJ1ZmZlci5mcm9tKG4sXFxcImJhc2U2NFxcXCIpO2lmKHR5cGVvZiBhdG9iPT1cXFwiZnVuY3Rpb25cXFwiKXtsZXQgdD1hdG9iKG4ucmVwbGFjZSgvW1xcXFxuXFxcXHJdL2csXFxcIlxcXCIpKSxyPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHM9MDtzPHQubGVuZ3RoOysrcylyW3NdPXQuY2hhckNvZGVBdChzKTtyZXR1cm4gcn1lbHNlIHJldHVybiBlKFxcXCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkXFxcIiksbn0sc3RyaW5naWZ5KHtjb21tZW50Om4sdHlwZTplLHZhbHVlOnR9LHIscyxpKXtsZXQgbz10LGE7aWYodHlwZW9mIEJ1ZmZlcj09XFxcImZ1bmN0aW9uXFxcIilhPW8gaW5zdGFuY2VvZiBCdWZmZXI/by50b1N0cmluZyhcXFwiYmFzZTY0XFxcIik6QnVmZmVyLmZyb20oby5idWZmZXIpLnRvU3RyaW5nKFxcXCJiYXNlNjRcXFwiKTtlbHNlIGlmKHR5cGVvZiBidG9hPT1cXFwiZnVuY3Rpb25cXFwiKXtsZXQgdT1cXFwiXFxcIjtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoOysrbCl1Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKG9bbF0pO2E9YnRvYSh1KX1lbHNlIHRocm93IG5ldyBFcnJvcihcXFwiVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYnRvYSBpcyByZXF1aXJlZFxcXCIpO2lmKGV8fChlPVAuQkxPQ0tfTElURVJBTCksZSE9PVAuUVVPVEVfRE9VQkxFKXtsZXQgdT1NYXRoLm1heChyLm9wdGlvbnMubGluZVdpZHRoLXIuaW5kZW50Lmxlbmd0aCxyLm9wdGlvbnMubWluQ29udGVudFdpZHRoKSxsPU1hdGguY2VpbChhLmxlbmd0aC91KSxmPW5ldyBBcnJheShsKTtmb3IobGV0IGQ9MCxwPTA7ZDxsOysrZCxwKz11KWZbZF09YS5zdWJzdHIocCx1KTthPWYuam9pbihlPT09UC5CTE9DS19MSVRFUkFMP2BcXG5gOlxcXCIgXFxcIil9cmV0dXJuIFd0KHtjb21tZW50Om4sdHlwZTplLHZhbHVlOmF9LHIscyxpKX19O2Z1bmN0aW9uIEtpKG4sZSl7dmFyIHQ7aWYoSmUobikpZm9yKGxldCByPTA7cjxuLml0ZW1zLmxlbmd0aDsrK3Ipe2xldCBzPW4uaXRlbXNbcl07aWYoIUgocykpe2lmKEhlKHMpKXtzLml0ZW1zLmxlbmd0aD4xJiZlKFxcXCJFYWNoIHBhaXIgbXVzdCBoYXZlIGl0cyBvd24gc2VxdWVuY2UgaW5kaWNhdG9yXFxcIik7bGV0IGk9cy5pdGVtc1swXXx8bmV3IGllKG5ldyBQKG51bGwpKTtpZihzLmNvbW1lbnRCZWZvcmUmJihpLmtleS5jb21tZW50QmVmb3JlPWkua2V5LmNvbW1lbnRCZWZvcmU/YCR7cy5jb21tZW50QmVmb3JlfVxcbiR7aS5rZXkuY29tbWVudEJlZm9yZX1gOnMuY29tbWVudEJlZm9yZSkscy5jb21tZW50KXtsZXQgbz0odD1pLnZhbHVlKSE9bnVsbD90Omkua2V5O28uY29tbWVudD1vLmNvbW1lbnQ/YCR7cy5jb21tZW50fVxcbiR7by5jb21tZW50fWA6cy5jb21tZW50fXM9aX1uLml0ZW1zW3JdPUgocyk/czpuZXcgaWUocyl9fWVsc2UgZShcXFwiRXhwZWN0ZWQgYSBzZXF1ZW5jZSBmb3IgdGhpcyB0YWdcXFwiKTtyZXR1cm4gbn1mdW5jdGlvbiBXaShuLGUsdCl7bGV0e3JlcGxhY2VyOnJ9PXQscz1uZXcgYmUobik7cy50YWc9XFxcInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzXFxcIjtsZXQgaT0wO2lmKGUmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpZm9yKGxldCBvIG9mIGUpe3R5cGVvZiByPT1cXFwiZnVuY3Rpb25cXFwiJiYobz1yLmNhbGwoZSxTdHJpbmcoaSsrKSxvKSk7bGV0IGEsdTtpZihBcnJheS5pc0FycmF5KG8pKWlmKG8ubGVuZ3RoPT09MilhPW9bMF0sdT1vWzFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke299YCk7ZWxzZSBpZihvJiZvIGluc3RhbmNlb2YgT2JqZWN0KXtsZXQgbD1PYmplY3Qua2V5cyhvKTtpZihsLmxlbmd0aD09PTEpYT1sWzBdLHU9b1thXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHR1cGxlIHdpdGggb25lIGtleSwgbm90ICR7bC5sZW5ndGh9IGtleXNgKX1lbHNlIGE9bztzLml0ZW1zLnB1c2godm4oYSx1LHQpKX1yZXR1cm4gc312YXIgRXI9e2NvbGxlY3Rpb246XFxcInNlcVxcXCIsZGVmYXVsdDohMSx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzXFxcIixyZXNvbHZlOktpLGNyZWF0ZU5vZGU6V2l9O3ZhciBPbj1jbGFzcyBuIGV4dGVuZHMgYmV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkPW9lLnByb3RvdHlwZS5hZGQuYmluZCh0aGlzKSx0aGlzLmRlbGV0ZT1vZS5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyksdGhpcy5nZXQ9b2UucHJvdG90eXBlLmdldC5iaW5kKHRoaXMpLHRoaXMuaGFzPW9lLnByb3RvdHlwZS5oYXMuYmluZCh0aGlzKSx0aGlzLnNldD1vZS5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyksdGhpcy50YWc9bi50YWd9dG9KU09OKGUsdCl7aWYoIXQpcmV0dXJuIHN1cGVyLnRvSlNPTihlKTtsZXQgcj1uZXcgTWFwO3QhPW51bGwmJnQub25DcmVhdGUmJnQub25DcmVhdGUocik7Zm9yKGxldCBzIG9mIHRoaXMuaXRlbXMpe2xldCBpLG87aWYoSChzKT8oaT1jZShzLmtleSxcXFwiXFxcIix0KSxvPWNlKHMudmFsdWUsaSx0KSk6aT1jZShzLFxcXCJcXFwiLHQpLHIuaGFzKGkpKXRocm93IG5ldyBFcnJvcihcXFwiT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXNcXFwiKTtyLnNldChpLG8pfXJldHVybiByfXN0YXRpYyBmcm9tKGUsdCxyKXtsZXQgcz1XaShlLHQsciksaT1uZXcgdGhpcztyZXR1cm4gaS5pdGVtcz1zLml0ZW1zLGl9fTtPbi50YWc9XFxcInRhZzp5YW1sLm9yZywyMDAyOm9tYXBcXFwiO3ZhciB3cj17Y29sbGVjdGlvbjpcXFwic2VxXFxcIixpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgTWFwLG5vZGVDbGFzczpPbixkZWZhdWx0OiExLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6b21hcFxcXCIscmVzb2x2ZShuLGUpe2xldCB0PUtpKG4sZSkscj1bXTtmb3IobGV0e2tleTpzfW9mIHQuaXRlbXMpSyhzKSYmKHIuaW5jbHVkZXMocy52YWx1ZSk/ZShgT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXM6ICR7cy52YWx1ZX1gKTpyLnB1c2gocy52YWx1ZSkpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyBPbix0KX0sY3JlYXRlTm9kZToobixlLHQpPT5Pbi5mcm9tKG4sZSx0KX07ZnVuY3Rpb24gc3Uoe3ZhbHVlOm4sc291cmNlOmV9LHQpe3JldHVybiBlJiYobj9IaTpKaSkudGVzdC50ZXN0KGUpP2U6bj90Lm9wdGlvbnMudHJ1ZVN0cjp0Lm9wdGlvbnMuZmFsc2VTdHJ9dmFyIEhpPXtpZGVudGlmeTpuPT5uPT09ITAsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcXFwiLHRlc3Q6L14oPzpZfHl8W1l5XWVzfFlFU3xbVHRdcnVlfFRSVUV8W09vXW58T04pJC8scmVzb2x2ZTooKT0+bmV3IFAoITApLHN0cmluZ2lmeTpzdX0sSmk9e2lkZW50aWZ5Om49Pm49PT0hMSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6Ym9vbFxcXCIsdGVzdDovXig/Ok58bnxbTm5db3xOT3xbRmZdYWxzZXxGQUxTRXxbT29dZmZ8T0ZGKSQvLHJlc29sdmU6KCk9Pm5ldyBQKCExKSxzdHJpbmdpZnk6c3V9O3ZhciBpdT17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJudW1iZXJcXFwiLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFxcXCIsdGVzdDovXig/OlstK10/XFxcXC4oPzppbmZ8SW5mfElORil8XFxcXC5uYW58XFxcXC5OYU58XFxcXC5OQU4pJC8scmVzb2x2ZTpuPT5uLnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09XFxcIm5hblxcXCI/TmFOOm5bMF09PT1cXFwiLVxcXCI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxzdHJpbmdpZnk6RmV9LG91PXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIkVYUFxcXCIsdGVzdDovXlstK10/KD86WzAtOV1bMC05X10qKT8oPzpcXFxcLlswLTlfXSopP1tlRV1bLStdP1swLTldKyQvLHJlc29sdmU6bj0+cGFyc2VGbG9hdChuLnJlcGxhY2UoL18vZyxcXFwiXFxcIikpLHN0cmluZ2lmeShuKXtsZXQgZT1OdW1iZXIobi52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOkZlKG4pfX0sYXU9e2lkZW50aWZ5Om49PnR5cGVvZiBuPT1cXFwibnVtYmVyXFxcIixkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcXFwiLHRlc3Q6L15bLStdPyg/OlswLTldWzAtOV9dKik/XFxcXC5bMC05X10qJC8scmVzb2x2ZShuKXtsZXQgZT1uZXcgUChwYXJzZUZsb2F0KG4ucmVwbGFjZSgvXy9nLFxcXCJcXFwiKSkpLHQ9bi5pbmRleE9mKFxcXCIuXFxcIik7aWYodCE9PS0xKXtsZXQgcj1uLnN1YnN0cmluZyh0KzEpLnJlcGxhY2UoL18vZyxcXFwiXFxcIik7cltyLmxlbmd0aC0xXT09PVxcXCIwXFxcIiYmKGUubWluRnJhY3Rpb25EaWdpdHM9ci5sZW5ndGgpfXJldHVybiBlfSxzdHJpbmdpZnk6RmV9O3ZhciBUcj1uPT50eXBlb2Ygbj09XFxcImJpZ2ludFxcXCJ8fE51bWJlci5pc0ludGVnZXIobik7ZnVuY3Rpb24gT3MobixlLHQse2ludEFzQmlnSW50OnJ9KXtsZXQgcz1uWzBdO2lmKChzPT09XFxcIi1cXFwifHxzPT09XFxcIitcXFwiKSYmKGUrPTEpLG49bi5zdWJzdHJpbmcoZSkucmVwbGFjZSgvXy9nLFxcXCJcXFwiKSxyKXtzd2l0Y2godCl7Y2FzZSAyOm49YDBiJHtufWA7YnJlYWs7Y2FzZSA4Om49YDBvJHtufWA7YnJlYWs7Y2FzZSAxNjpuPWAweCR7bn1gO2JyZWFrfWxldCBvPUJpZ0ludChuKTtyZXR1cm4gcz09PVxcXCItXFxcIj9CaWdJbnQoLTEpKm86b31sZXQgaT1wYXJzZUludChuLHQpO3JldHVybiBzPT09XFxcIi1cXFwiPy0xKmk6aX1mdW5jdGlvbiB6aShuLGUsdCl7bGV0e3ZhbHVlOnJ9PW47aWYoVHIocikpe2xldCBzPXIudG9TdHJpbmcoZSk7cmV0dXJuIHI8MD9cXFwiLVxcXCIrdCtzLnN1YnN0cigxKTp0K3N9cmV0dXJuIEZlKG4pfXZhciB1dT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsZm9ybWF0OlxcXCJCSU5cXFwiLHRlc3Q6L15bLStdPzBiWzAtMV9dKyQvLHJlc29sdmU6KG4sZSx0KT0+T3MobiwyLDIsdCksc3RyaW5naWZ5Om49PnppKG4sMixcXFwiMGJcXFwiKX0sbHU9e2lkZW50aWZ5OlRyLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiT0NUXFxcIix0ZXN0Oi9eWy0rXT8wWzAtN19dKyQvLHJlc29sdmU6KG4sZSx0KT0+T3MobiwxLDgsdCksc3RyaW5naWZ5Om49PnppKG4sOCxcXFwiMFxcXCIpfSxjdT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qJC8scmVzb2x2ZToobixlLHQpPT5PcyhuLDAsMTAsdCksc3RyaW5naWZ5OkZlfSxmdT17aWRlbnRpZnk6VHIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmludFxcXCIsZm9ybWF0OlxcXCJIRVhcXFwiLHRlc3Q6L15bLStdPzB4WzAtOWEtZkEtRl9dKyQvLHJlc29sdmU6KG4sZSx0KT0+T3MobiwyLDE2LHQpLHN0cmluZ2lmeTpuPT56aShuLDE2LFxcXCIweFxcXCIpfTt2YXIgeG49Y2xhc3MgbiBleHRlbmRzIG9le2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudGFnPW4udGFnfWFkZChlKXtsZXQgdDtIKGUpP3Q9ZTplJiZ0eXBlb2YgZT09XFxcIm9iamVjdFxcXCImJlxcXCJrZXlcXFwiaW4gZSYmXFxcInZhbHVlXFxcImluIGUmJmUudmFsdWU9PT1udWxsP3Q9bmV3IGllKGUua2V5LG51bGwpOnQ9bmV3IGllKGUsbnVsbCksSXQodGhpcy5pdGVtcyx0LmtleSl8fHRoaXMuaXRlbXMucHVzaCh0KX1nZXQoZSx0KXtsZXQgcj1JdCh0aGlzLml0ZW1zLGUpO3JldHVybiF0JiZIKHIpP0soci5rZXkpP3Iua2V5LnZhbHVlOnIua2V5OnJ9c2V0KGUsdCl7aWYodHlwZW9mIHQhPVxcXCJib29sZWFuXFxcIil0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4gdmFsdWUgZm9yIHNldChrZXksIHZhbHVlKSBpbiBhIFlBTUwgc2V0LCBub3QgJHt0eXBlb2YgdH1gKTtsZXQgcj1JdCh0aGlzLml0ZW1zLGUpO3ImJiF0P3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihyKSwxKTohciYmdCYmdGhpcy5pdGVtcy5wdXNoKG5ldyBpZShlKSl9dG9KU09OKGUsdCl7cmV0dXJuIHN1cGVyLnRvSlNPTihlLHQsU2V0KX10b1N0cmluZyhlLHQscil7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2lmKHRoaXMuaGFzQWxsTnVsbFZhbHVlcyghMCkpcmV0dXJuIHN1cGVyLnRvU3RyaW5nKE9iamVjdC5hc3NpZ24oe30sZSx7YWxsTnVsbFZhbHVlczohMH0pLHQscik7dGhyb3cgbmV3IEVycm9yKFxcXCJTZXQgaXRlbXMgbXVzdCBhbGwgaGF2ZSBudWxsIHZhbHVlc1xcXCIpfXN0YXRpYyBmcm9tKGUsdCxyKXtsZXR7cmVwbGFjZXI6c309cixpPW5ldyB0aGlzKGUpO2lmKHQmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpZm9yKGxldCBvIG9mIHQpdHlwZW9mIHM9PVxcXCJmdW5jdGlvblxcXCImJihvPXMuY2FsbCh0LG8sbykpLGkuaXRlbXMucHVzaCh2bihvLG51bGwscikpO3JldHVybiBpfX07eG4udGFnPVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXRcXFwiO3ZhciBTcj17Y29sbGVjdGlvbjpcXFwibWFwXFxcIixpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgU2V0LG5vZGVDbGFzczp4bixkZWZhdWx0OiExLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6c2V0XFxcIixjcmVhdGVOb2RlOihuLGUsdCk9PnhuLmZyb20obixlLHQpLHJlc29sdmUobixlKXtpZihIZShuKSl7aWYobi5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgeG4sbik7ZShcXFwiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXNcXFwiKX1lbHNlIGUoXFxcIkV4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWdcXFwiKTtyZXR1cm4gbn19O2Z1bmN0aW9uIFlpKG4sZSl7bGV0IHQ9blswXSxyPXQ9PT1cXFwiLVxcXCJ8fHQ9PT1cXFwiK1xcXCI/bi5zdWJzdHJpbmcoMSk6bixzPW89PmU/QmlnSW50KG8pOk51bWJlcihvKSxpPXIucmVwbGFjZSgvXy9nLFxcXCJcXFwiKS5zcGxpdChcXFwiOlxcXCIpLnJlZHVjZSgobyxhKT0+bypzKDYwKStzKGEpLHMoMCkpO3JldHVybiB0PT09XFxcIi1cXFwiP3MoLTEpKmk6aX1mdW5jdGlvbiBkdShuKXtsZXR7dmFsdWU6ZX09bix0PW89Pm87aWYodHlwZW9mIGU9PVxcXCJiaWdpbnRcXFwiKXQ9bz0+QmlnSW50KG8pO2Vsc2UgaWYoaXNOYU4oZSl8fCFpc0Zpbml0ZShlKSlyZXR1cm4gRmUobik7bGV0IHI9XFxcIlxcXCI7ZTwwJiYocj1cXFwiLVxcXCIsZSo9dCgtMSkpO2xldCBzPXQoNjApLGk9W2Ulc107cmV0dXJuIGU8NjA/aS51bnNoaWZ0KDApOihlPShlLWlbMF0pL3MsaS51bnNoaWZ0KGUlcyksZT49NjAmJihlPShlLWlbMF0pL3MsaS51bnNoaWZ0KGUpKSkscitpLm1hcChvPT5TdHJpbmcobykucGFkU3RhcnQoMixcXFwiMFxcXCIpKS5qb2luKFxcXCI6XFxcIikucmVwbGFjZSgvMDAwMDAwXFxcXGQqJC8sXFxcIlxcXCIpfXZhciB4cz17aWRlbnRpZnk6bj0+dHlwZW9mIG49PVxcXCJiaWdpbnRcXFwifHxOdW1iZXIuaXNJbnRlZ2VyKG4pLGRlZmF1bHQ6ITAsdGFnOlxcXCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcXFwiLGZvcm1hdDpcXFwiVElNRVxcXCIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKSskLyxyZXNvbHZlOihuLGUse2ludEFzQmlnSW50OnR9KT0+WWkobix0KSxzdHJpbmdpZnk6ZHV9LElzPXtpZGVudGlmeTpuPT50eXBlb2Ygbj09XFxcIm51bWJlclxcXCIsZGVmYXVsdDohMCx0YWc6XFxcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XFxcIixmb3JtYXQ6XFxcIlRJTUVcXFwiLHRlc3Q6L15bLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFxcXC5bMC05X10qJC8scmVzb2x2ZTpuPT5ZaShuLCExKSxzdHJpbmdpZnk6ZHV9LEluPXtpZGVudGlmeTpuPT5uIGluc3RhbmNlb2YgRGF0ZSxkZWZhdWx0OiEwLHRhZzpcXFwidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wXFxcIix0ZXN0OlJlZ0V4cChcXFwiXihbMC05XXs0fSktKFswLTldezEsMn0pLShbMC05XXsxLDJ9KSg/Oig/OnR8VHxbIFxcXFxcXFxcdF0rKShbMC05XXsxLDJ9KTooWzAtOV17MSwyfSk6KFswLTldezEsMn0oXFxcXFxcXFwuWzAtOV0rKT8pKD86WyBcXFxcXFxcXHRdKihafFstK11bMDEyXT9bMC05XSg/OjpbMC05XXsyfSk/KSk/KT8kXFxcIikscmVzb2x2ZShuKXtsZXQgZT1uLm1hdGNoKEluLnRlc3QpO2lmKCFlKXRocm93IG5ldyBFcnJvcihcXFwiISF0aW1lc3RhbXAgZXhwZWN0cyBhIGRhdGUsIHN0YXJ0aW5nIHdpdGggeXl5eS1tbS1kZFxcXCIpO2xldFssdCxyLHMsaSxvLGFdPWUubWFwKE51bWJlciksdT1lWzddP051bWJlcigoZVs3XStcXFwiMDBcXFwiKS5zdWJzdHIoMSwzKSk6MCxsPURhdGUuVVRDKHQsci0xLHMsaXx8MCxvfHwwLGF8fDAsdSksZj1lWzhdO2lmKGYmJmYhPT1cXFwiWlxcXCIpe2xldCBkPVlpKGYsITEpO01hdGguYWJzKGQpPDMwJiYoZCo9NjApLGwtPTZlNCpkfXJldHVybiBuZXcgRGF0ZShsKX0sc3RyaW5naWZ5Oih7dmFsdWU6bn0pPT5uLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKChUMDA6MDApPzowMCk/XFxcXC4wMDBaJC8sXFxcIlxcXCIpfTt2YXIgR2k9W0dlLFplLEx0LEh0LEhpLEppLHV1LGx1LGN1LGZ1LGl1LG91LGF1LEZyLFllLHdyLEVyLFNyLHhzLElzLEluXTt2YXIgaHU9bmV3IE1hcChbW1xcXCJjb3JlXFxcIix0dV0sW1xcXCJmYWlsc2FmZVxcXCIsW0dlLFplLEx0XV0sW1xcXCJqc29uXFxcIixydV0sW1xcXCJ5YW1sMTFcXFwiLEdpXSxbXFxcInlhbWwtMS4xXFxcIixHaV1dKSxwdT17YmluYXJ5OkZyLGJvb2w6YnIsZmxvYXQ6d3MsZmxvYXRFeHA6RXMsZmxvYXROYU46RnMsZmxvYXRUaW1lOklzLGludDprcyxpbnRIZXg6Q3MsaW50T2N0OlNzLGludFRpbWU6eHMsbWFwOkdlLG1lcmdlOlllLG51bGw6SHQsb21hcDp3cixwYWlyczpFcixzZXE6WmUsc2V0OlNyLHRpbWVzdGFtcDpJbn0sbXU9e1xcXCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnlcXFwiOkZyLFxcXCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZVxcXCI6WWUsXFxcInRhZzp5YW1sLm9yZywyMDAyOm9tYXBcXFwiOndyLFxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlyc1xcXCI6RXIsXFxcInRhZzp5YW1sLm9yZywyMDAyOnNldFxcXCI6U3IsXFxcInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcFxcXCI6SW59O2Z1bmN0aW9uIExzKG4sZSx0KXtsZXQgcj1odS5nZXQoZSk7aWYociYmIW4pcmV0dXJuIHQmJiFyLmluY2x1ZGVzKFllKT9yLmNvbmNhdChZZSk6ci5zbGljZSgpO2xldCBzPXI7aWYoIXMpaWYoQXJyYXkuaXNBcnJheShuKSlzPVtdO2Vsc2V7bGV0IGk9QXJyYXkuZnJvbShodS5rZXlzKCkpLmZpbHRlcihvPT5vIT09XFxcInlhbWwxMVxcXCIpLm1hcChvPT5KU09OLnN0cmluZ2lmeShvKSkuam9pbihcXFwiLCBcXFwiKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hIFxcXCIke2V9XFxcIjsgdXNlIG9uZSBvZiAke2l9IG9yIGRlZmluZSBjdXN0b21UYWdzIGFycmF5YCl9aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGkgb2YgbilzPXMuY29uY2F0KGkpO2Vsc2UgdHlwZW9mIG49PVxcXCJmdW5jdGlvblxcXCImJihzPW4ocy5zbGljZSgpKSk7cmV0dXJuIHQmJihzPXMuY29uY2F0KFllKSkscy5yZWR1Y2UoKGksbyk9PntsZXQgYT10eXBlb2Ygbz09XFxcInN0cmluZ1xcXCI/cHVbb106bztpZighYSl7bGV0IHU9SlNPTi5zdHJpbmdpZnkobyksbD1PYmplY3Qua2V5cyhwdSkubWFwKGY9PkpTT04uc3RyaW5naWZ5KGYpKS5qb2luKFxcXCIsIFxcXCIpO3Rocm93IG5ldyBFcnJvcihgVW5rbm93biBjdXN0b20gdGFnICR7dX07IHVzZSBvbmUgb2YgJHtsfWApfXJldHVybiBpLmluY2x1ZGVzKGEpfHxpLnB1c2goYSksaX0sW10pfXZhciBzZj0obixlKT0+bi5rZXk8ZS5rZXk/LTE6bi5rZXk+ZS5rZXk/MTowLGtyPWNsYXNzIG57Y29uc3RydWN0b3Ioe2NvbXBhdDplLGN1c3RvbVRhZ3M6dCxtZXJnZTpyLHJlc29sdmVLbm93blRhZ3M6cyxzY2hlbWE6aSxzb3J0TWFwRW50cmllczpvLHRvU3RyaW5nRGVmYXVsdHM6YX0pe3RoaXMuY29tcGF0PUFycmF5LmlzQXJyYXkoZSk/THMoZSxcXFwiY29tcGF0XFxcIik6ZT9McyhudWxsLGUpOm51bGwsdGhpcy5uYW1lPXR5cGVvZiBpPT1cXFwic3RyaW5nXFxcIiYmaXx8XFxcImNvcmVcXFwiLHRoaXMua25vd25UYWdzPXM/bXU6e30sdGhpcy50YWdzPUxzKHQsdGhpcy5uYW1lLHIpLHRoaXMudG9TdHJpbmdPcHRpb25zPWEhPW51bGw/YTpudWxsLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEtlLHt2YWx1ZTpHZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEllLHt2YWx1ZTpMdH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLEZ0LHt2YWx1ZTpaZX0pLHRoaXMuc29ydE1hcEVudHJpZXM9dHlwZW9mIG89PVxcXCJmdW5jdGlvblxcXCI/bzpvPT09ITA/c2Y6bnVsbH1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlLnRhZ3M9dGhpcy50YWdzLnNsaWNlKCksZX19O2Z1bmN0aW9uIER1KG4sZSl7dmFyIHU7bGV0IHQ9W10scj1lLmRpcmVjdGl2ZXM9PT0hMDtpZihlLmRpcmVjdGl2ZXMhPT0hMSYmbi5kaXJlY3RpdmVzKXtsZXQgbD1uLmRpcmVjdGl2ZXMudG9TdHJpbmcobik7bD8odC5wdXNoKGwpLHI9ITApOm4uZGlyZWN0aXZlcy5kb2NTdGFydCYmKHI9ITApfXImJnQucHVzaChcXFwiLS0tXFxcIik7bGV0IHM9aHMobixlKSx7Y29tbWVudFN0cmluZzppfT1zLm9wdGlvbnM7aWYobi5jb21tZW50QmVmb3JlKXt0Lmxlbmd0aCE9PTEmJnQudW5zaGlmdChcXFwiXFxcIik7bGV0IGw9aShuLmNvbW1lbnRCZWZvcmUpO3QudW5zaGlmdChQZShsLFxcXCJcXFwiKSl9bGV0IG89ITEsYT1udWxsO2lmKG4uY29udGVudHMpe2lmKEoobi5jb250ZW50cykpe2lmKG4uY29udGVudHMuc3BhY2VCZWZvcmUmJnImJnQucHVzaChcXFwiXFxcIiksbi5jb250ZW50cy5jb21tZW50QmVmb3JlKXtsZXQgZD1pKG4uY29udGVudHMuY29tbWVudEJlZm9yZSk7dC5wdXNoKFBlKGQsXFxcIlxcXCIpKX1zLmZvcmNlQmxvY2tJbmRlbnQ9ISFuLmNvbW1lbnQsYT1uLmNvbnRlbnRzLmNvbW1lbnR9bGV0IGw9YT92b2lkIDA6KCk9Pm89ITAsZj1UdChuLmNvbnRlbnRzLHMsKCk9PmE9bnVsbCxsKTthJiYoZis9b3QoZixcXFwiXFxcIixpKGEpKSksKGZbMF09PT1cXFwifFxcXCJ8fGZbMF09PT1cXFwiPlxcXCIpJiZ0W3QubGVuZ3RoLTFdPT09XFxcIi0tLVxcXCI/dFt0Lmxlbmd0aC0xXT1gLS0tICR7Zn1gOnQucHVzaChmKX1lbHNlIHQucHVzaChUdChuLmNvbnRlbnRzLHMpKTtpZigodT1uLmRpcmVjdGl2ZXMpIT1udWxsJiZ1LmRvY0VuZClpZihuLmNvbW1lbnQpe2xldCBsPWkobi5jb21tZW50KTtsLmluY2x1ZGVzKGBcXG5gKT8odC5wdXNoKFxcXCIuLi5cXFwiKSx0LnB1c2goUGUobCxcXFwiXFxcIikpKTp0LnB1c2goYC4uLiAke2x9YCl9ZWxzZSB0LnB1c2goXFxcIi4uLlxcXCIpO2Vsc2V7bGV0IGw9bi5jb21tZW50O2wmJm8mJihsPWwucmVwbGFjZSgvXlxcXFxuKy8sXFxcIlxcXCIpKSxsJiYoKCFvfHxhKSYmdFt0Lmxlbmd0aC0xXSE9PVxcXCJcXFwiJiZ0LnB1c2goXFxcIlxcXCIpLHQucHVzaChQZShpKGwpLFxcXCJcXFwiKSkpfXJldHVybiB0LmpvaW4oYFxcbmApK2BcXG5gfXZhciBOdD1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmNvbW1lbnRCZWZvcmU9bnVsbCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmVycm9ycz1bXSx0aGlzLndhcm5pbmdzPVtdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFRlLHt2YWx1ZTpzc30pO2xldCBzPW51bGw7dHlwZW9mIHQ9PVxcXCJmdW5jdGlvblxcXCJ8fEFycmF5LmlzQXJyYXkodCk/cz10OnI9PT12b2lkIDAmJnQmJihyPXQsdD12b2lkIDApO2xldCBpPU9iamVjdC5hc3NpZ24oe2ludEFzQmlnSW50OiExLGtlZXBTb3VyY2VUb2tlbnM6ITEsbG9nTGV2ZWw6XFxcIndhcm5cXFwiLHByZXR0eUVycm9yczohMCxzdHJpY3Q6ITAsc3RyaW5nS2V5czohMSx1bmlxdWVLZXlzOiEwLHZlcnNpb246XFxcIjEuMlxcXCJ9LHIpO3RoaXMub3B0aW9ucz1pO2xldHt2ZXJzaW9uOm99PWk7ciE9bnVsbCYmci5fZGlyZWN0aXZlcz8odGhpcy5kaXJlY3RpdmVzPXIuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpLHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0JiYobz10aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uKSk6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjpvfSksdGhpcy5zZXRTY2hlbWEobyxyKSx0aGlzLmNvbnRlbnRzPWU9PT12b2lkIDA/bnVsbDp0aGlzLmNyZWF0ZU5vZGUoZSxzLHIpfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSx7W1RlXTp7dmFsdWU6c3N9fSk7cmV0dXJuIGUuY29tbWVudEJlZm9yZT10aGlzLmNvbW1lbnRCZWZvcmUsZS5jb21tZW50PXRoaXMuY29tbWVudCxlLmVycm9ycz10aGlzLmVycm9ycy5zbGljZSgpLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncy5zbGljZSgpLGUub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyksdGhpcy5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPXRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpKSxlLnNjaGVtYT10aGlzLnNjaGVtYS5jbG9uZSgpLGUuY29udGVudHM9Sih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmNsb25lKGUuc2NoZW1hKTp0aGlzLmNvbnRlbnRzLHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX1hZGQoZSl7TG4odGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuYWRkKGUpfWFkZEluKGUsdCl7TG4odGhpcy5jb250ZW50cykmJnRoaXMuY29udGVudHMuYWRkSW4oZSx0KX1jcmVhdGVBbGlhcyhlLHQpe2lmKCFlLmFuY2hvcil7bGV0IHI9QmkodGhpcyk7ZS5hbmNob3I9IXR8fHIuaGFzKHQpP1BpKHR8fFxcXCJhXFxcIixyKTp0fXJldHVybiBuZXcgRXQoZS5hbmNob3IpfWNyZWF0ZU5vZGUoZSx0LHIpe2xldCBzO2lmKHR5cGVvZiB0PT1cXFwiZnVuY3Rpb25cXFwiKWU9dC5jYWxsKHtcXFwiXFxcIjplfSxcXFwiXFxcIixlKSxzPXQ7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgRD1JPT50eXBlb2YgST09XFxcIm51bWJlclxcXCJ8fEkgaW5zdGFuY2VvZiBTdHJpbmd8fEkgaW5zdGFuY2VvZiBOdW1iZXIsVD10LmZpbHRlcihEKS5tYXAoU3RyaW5nKTtULmxlbmd0aD4wJiYodD10LmNvbmNhdChUKSkscz10fWVsc2Ugcj09PXZvaWQgMCYmdCYmKHI9dCx0PXZvaWQgMCk7bGV0e2FsaWFzRHVwbGljYXRlT2JqZWN0czppLGFuY2hvclByZWZpeDpvLGZsb3c6YSxrZWVwVW5kZWZpbmVkOnUsb25UYWdPYmo6bCx0YWc6Zn09ciE9bnVsbD9yOnt9LHtvbkFuY2hvcjpkLHNldEFuY2hvcnM6cCxzb3VyY2VPYmplY3RzOmh9PVlhKHRoaXMsb3x8XFxcImFcXFwiKSxiPXthbGlhc0R1cGxpY2F0ZU9iamVjdHM6aSE9bnVsbD9pOiEwLGtlZXBVbmRlZmluZWQ6dSE9bnVsbD91OiExLG9uQW5jaG9yOmQsb25UYWdPYmo6bCxyZXBsYWNlcjpzLHNjaGVtYTp0aGlzLnNjaGVtYSxzb3VyY2VPYmplY3RzOmh9LGc9d3QoZSxmLGIpO3JldHVybiBhJiZaKGcpJiYoZy5mbG93PSEwKSxwKCksZ31jcmVhdGVQYWlyKGUsdCxyPXt9KXtsZXQgcz10aGlzLmNyZWF0ZU5vZGUoZSxudWxsLHIpLGk9dGhpcy5jcmVhdGVOb2RlKHQsbnVsbCxyKTtyZXR1cm4gbmV3IGllKHMsaSl9ZGVsZXRlKGUpe3JldHVybiBMbih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZShlKTohMX1kZWxldGVJbihlKXtyZXR1cm4ga24oZSk/dGhpcy5jb250ZW50cz09bnVsbD8hMToodGhpcy5jb250ZW50cz1udWxsLCEwKTpMbih0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmRlbGV0ZUluKGUpOiExfWdldChlLHQpe3JldHVybiBaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0KGUsdCk6dm9pZCAwfWdldEluKGUsdCl7cmV0dXJuIGtuKGUpPyF0JiZLKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMudmFsdWU6dGhpcy5jb250ZW50czpaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuZ2V0SW4oZSx0KTp2b2lkIDB9aGFzKGUpe3JldHVybiBaKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMuaGFzKGUpOiExfWhhc0luKGUpe3JldHVybiBrbihlKT90aGlzLmNvbnRlbnRzIT09dm9pZCAwOloodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXNJbihlKTohMX1zZXQoZSx0KXt0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9bXIodGhpcy5zY2hlbWEsW2VdLHQpOkxuKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldChlLHQpfXNldEluKGUsdCl7a24oZSk/dGhpcy5jb250ZW50cz10OnRoaXMuY29udGVudHM9PW51bGw/dGhpcy5jb250ZW50cz1tcih0aGlzLnNjaGVtYSxBcnJheS5mcm9tKGUpLHQpOkxuKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldEluKGUsdCl9c2V0U2NoZW1hKGUsdD17fSl7dHlwZW9mIGU9PVxcXCJudW1iZXJcXFwiJiYoZT1TdHJpbmcoZSkpO2xldCByO3N3aXRjaChlKXtjYXNlXFxcIjEuMVxcXCI6dGhpcy5kaXJlY3RpdmVzP3RoaXMuZGlyZWN0aXZlcy55YW1sLnZlcnNpb249XFxcIjEuMVxcXCI6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjpcXFwiMS4xXFxcIn0pLHI9e3Jlc29sdmVLbm93blRhZ3M6ITEsc2NoZW1hOlxcXCJ5YW1sLTEuMVxcXCJ9O2JyZWFrO2Nhc2VcXFwiMS4yXFxcIjpjYXNlXFxcIm5leHRcXFwiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPWU6dGhpcy5kaXJlY3RpdmVzPW5ldyBpdCh7dmVyc2lvbjplfSkscj17cmVzb2x2ZUtub3duVGFnczohMCxzY2hlbWE6XFxcImNvcmVcXFwifTticmVhaztjYXNlIG51bGw6dGhpcy5kaXJlY3RpdmVzJiZkZWxldGUgdGhpcy5kaXJlY3RpdmVzLHI9bnVsbDticmVhaztkZWZhdWx0OntsZXQgcz1KU09OLnN0cmluZ2lmeShlKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICcxLjEnLCAnMS4yJyBvciBudWxsIGFzIGZpcnN0IGFyZ3VtZW50LCBidXQgZm91bmQ6ICR7c31gKX19aWYodC5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpdGhpcy5zY2hlbWE9dC5zY2hlbWE7ZWxzZSBpZihyKXRoaXMuc2NoZW1hPW5ldyBrcihPYmplY3QuYXNzaWduKHIsdCkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFxcXCJXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkXFxcIil9dG9KUyh7anNvbjplLGpzb25Bcmc6dCxtYXBBc01hcDpyLG1heEFsaWFzQ291bnQ6cyxvbkFuY2hvcjppLHJldml2ZXI6b309e30pe2xldCBhPXthbmNob3JzOm5ldyBNYXAsZG9jOnRoaXMsa2VlcDohZSxtYXBBc01hcDpyPT09ITAsbWFwS2V5V2FybmVkOiExLG1heEFsaWFzQ291bnQ6dHlwZW9mIHM9PVxcXCJudW1iZXJcXFwiP3M6MTAwfSx1PWNlKHRoaXMuY29udGVudHMsdCE9bnVsbD90OlxcXCJcXFwiLGEpO2lmKHR5cGVvZiBpPT1cXFwiZnVuY3Rpb25cXFwiKWZvcihsZXR7Y291bnQ6bCxyZXM6Zn1vZiBhLmFuY2hvcnMudmFsdWVzKCkpaShmLGwpO3JldHVybiB0eXBlb2Ygbz09XFxcImZ1bmN0aW9uXFxcIj9PdChvLHtcXFwiXFxcIjp1fSxcXFwiXFxcIix1KTp1fXRvSlNPTihlLHQpe3JldHVybiB0aGlzLnRvSlMoe2pzb246ITAsanNvbkFyZzplLG1hcEFzTWFwOiExLG9uQW5jaG9yOnR9KX10b1N0cmluZyhlPXt9KXtpZih0aGlzLmVycm9ycy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoXFxcIkRvY3VtZW50IHdpdGggZXJyb3JzIGNhbm5vdCBiZSBzdHJpbmdpZmllZFxcXCIpO2lmKFxcXCJpbmRlbnRcXFwiaW4gZSYmKCFOdW1iZXIuaXNJbnRlZ2VyKGUuaW5kZW50KXx8TnVtYmVyKGUuaW5kZW50KTw9MCkpe2xldCB0PUpTT04uc3RyaW5naWZ5KGUuaW5kZW50KTt0aHJvdyBuZXcgRXJyb3IoYFxcXCJpbmRlbnRcXFwiIG9wdGlvbiBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgbm90ICR7dH1gKX1yZXR1cm4gRHUodGhpcyxlKX19O2Z1bmN0aW9uIExuKG4pe2lmKFoobikpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKFxcXCJFeHBlY3RlZCBhIFlBTUwgY29sbGVjdGlvbiBhcyBkb2N1bWVudCBjb250ZW50c1xcXCIpfXZhciBDcj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCxyLHMpe3N1cGVyKCksdGhpcy5uYW1lPWUsdGhpcy5jb2RlPXIsdGhpcy5tZXNzYWdlPXMsdGhpcy5wb3M9dH19LFFlPWNsYXNzIGV4dGVuZHMgQ3J7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKFxcXCJZQU1MUGFyc2VFcnJvclxcXCIsZSx0LHIpfX0sdnI9Y2xhc3MgZXh0ZW5kcyBDcntjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoXFxcIllBTUxXYXJuaW5nXFxcIixlLHQscil9fSxaaT0obixlKT0+dD0+e2lmKHQucG9zWzBdPT09LTEpcmV0dXJuO3QubGluZVBvcz10LnBvcy5tYXAoYT0+ZS5saW5lUG9zKGEpKTtsZXR7bGluZTpyLGNvbDpzfT10LmxpbmVQb3NbMF07dC5tZXNzYWdlKz1gIGF0IGxpbmUgJHtyfSwgY29sdW1uICR7c31gO2xldCBpPXMtMSxvPW4uc3Vic3RyaW5nKGUubGluZVN0YXJ0c1tyLTFdLGUubGluZVN0YXJ0c1tyXSkucmVwbGFjZSgvW1xcXFxuXFxcXHJdKyQvLFxcXCJcXFwiKTtpZihpPj02MCYmby5sZW5ndGg+ODApe2xldCBhPU1hdGgubWluKGktMzksby5sZW5ndGgtNzkpO289XFxcIlxcXFx1MjAyNlxcXCIrby5zdWJzdHJpbmcoYSksaS09YS0xfWlmKG8ubGVuZ3RoPjgwJiYobz1vLnN1YnN0cmluZygwLDc5KStcXFwiXFxcXHUyMDI2XFxcIikscj4xJiYvXiAqJC8udGVzdChvLnN1YnN0cmluZygwLGkpKSl7bGV0IGE9bi5zdWJzdHJpbmcoZS5saW5lU3RhcnRzW3ItMl0sZS5saW5lU3RhcnRzW3ItMV0pO2EubGVuZ3RoPjgwJiYoYT1hLnN1YnN0cmluZygwLDc5KStgXFxcXHUyMDI2XFxuYCksbz1hK299aWYoL1teIF0vLnRlc3Qobykpe2xldCBhPTEsdT10LmxpbmVQb3NbMV07dSYmdS5saW5lPT09ciYmdS5jb2w+cyYmKGE9TWF0aC5tYXgoMSxNYXRoLm1pbih1LmNvbC1zLDgwLWkpKSk7bGV0IGw9XFxcIiBcXFwiLnJlcGVhdChpKStcXFwiXlxcXCIucmVwZWF0KGEpO3QubWVzc2FnZSs9YDpcXG5cXG4ke299XFxuJHtsfVxcbmB9fTtmdW5jdGlvbiBhdChuLHtmbG93OmUsaW5kaWNhdG9yOnQsbmV4dDpyLG9mZnNldDpzLG9uRXJyb3I6aSxwYXJlbnRJbmRlbnQ6byxzdGFydE9uTmV3bGluZTphfSl7bGV0IHU9ITEsbD1hLGY9YSxkPVxcXCJcXFwiLHA9XFxcIlxcXCIsaD0hMSxiPSExLGc9bnVsbCxEPW51bGwsVD1udWxsLEk9bnVsbCxOPW51bGwseT1udWxsLHc9bnVsbDtmb3IobGV0IEMgb2Ygbilzd2l0Y2goYiYmKEMudHlwZSE9PVxcXCJzcGFjZVxcXCImJkMudHlwZSE9PVxcXCJuZXdsaW5lXFxcIiYmQy50eXBlIT09XFxcImNvbW1hXFxcIiYmaShDLm9mZnNldCxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiVGFncyBhbmQgYW5jaG9ycyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBuZXh0IHRva2VuIGJ5IHdoaXRlIHNwYWNlXFxcIiksYj0hMSksZyYmKGwmJkMudHlwZSE9PVxcXCJjb21tZW50XFxcIiYmQy50eXBlIT09XFxcIm5ld2xpbmVcXFwiJiZpKGcsXFxcIlRBQl9BU19JTkRFTlRcXFwiLFxcXCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvblxcXCIpLGc9bnVsbCksQy50eXBlKXtjYXNlXFxcInNwYWNlXFxcIjohZSYmKHQhPT1cXFwiZG9jLXN0YXJ0XFxcInx8KHI9PW51bGw/dm9pZCAwOnIudHlwZSkhPT1cXFwiZmxvdy1jb2xsZWN0aW9uXFxcIikmJkMuc291cmNlLmluY2x1ZGVzKFxcXCJcXHRcXFwiKSYmKGc9QyksZj0hMDticmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOntmfHxpKEMsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnNcXFwiKTtsZXQgVj1DLnNvdXJjZS5zdWJzdHJpbmcoMSl8fFxcXCIgXFxcIjtkP2QrPXArVjpkPVYscD1cXFwiXFxcIixsPSExO2JyZWFrfWNhc2VcXFwibmV3bGluZVxcXCI6bD9kP2QrPUMuc291cmNlOnU9ITA6cCs9Qy5zb3VyY2UsbD0hMCxoPSEwLChEfHxUKSYmKEk9QyksZj0hMDticmVhaztjYXNlXFxcImFuY2hvclxcXCI6RCYmaShDLFxcXCJNVUxUSVBMRV9BTkNIT1JTXFxcIixcXFwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIGFuY2hvclxcXCIpLEMuc291cmNlLmVuZHNXaXRoKFxcXCI6XFxcIikmJmkoQy5vZmZzZXQrQy5zb3VyY2UubGVuZ3RoLTEsXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFuY2hvciBlbmRpbmcgaW4gOiBpcyBhbWJpZ3VvdXNcXFwiLCEwKSxEPUMsdz09PW51bGwmJih3PUMub2Zmc2V0KSxsPSExLGY9ITEsYj0hMDticmVhaztjYXNlXFxcInRhZ1xcXCI6e1QmJmkoQyxcXFwiTVVMVElQTEVfVEFHU1xcXCIsXFxcIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSB0YWdcXFwiKSxUPUMsdz09PW51bGwmJih3PUMub2Zmc2V0KSxsPSExLGY9ITEsYj0hMDticmVha31jYXNlIHQ6KER8fFQpJiZpKEMsXFxcIkJBRF9QUk9QX09SREVSXFxcIixgQW5jaG9ycyBhbmQgdGFncyBtdXN0IGJlIGFmdGVyIHRoZSAke0Muc291cmNlfSBpbmRpY2F0b3JgKSx5JiZpKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICR7Qy5zb3VyY2V9IGluICR7ZSE9bnVsbD9lOlxcXCJjb2xsZWN0aW9uXFxcIn1gKSx5PUMsbD10PT09XFxcInNlcS1pdGVtLWluZFxcXCJ8fHQ9PT1cXFwiZXhwbGljaXQta2V5LWluZFxcXCIsZj0hMTticmVhaztjYXNlXFxcImNvbW1hXFxcIjppZihlKXtOJiZpKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICwgaW4gJHtlfWApLE49QyxsPSExLGY9ITE7YnJlYWt9ZGVmYXVsdDppKEMsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkICR7Qy50eXBlfSB0b2tlbmApLGw9ITEsZj0hMX1sZXQgdj1uW24ubGVuZ3RoLTFdLE89dj92Lm9mZnNldCt2LnNvdXJjZS5sZW5ndGg6cztyZXR1cm4gYiYmciYmci50eXBlIT09XFxcInNwYWNlXFxcIiYmci50eXBlIT09XFxcIm5ld2xpbmVcXFwiJiZyLnR5cGUhPT1cXFwiY29tbWFcXFwiJiYoci50eXBlIT09XFxcInNjYWxhclxcXCJ8fHIuc291cmNlIT09XFxcIlxcXCIpJiZpKHIub2Zmc2V0LFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2VcXFwiKSxnJiYobCYmZy5pbmRlbnQ8PW98fChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XFxcImJsb2NrLW1hcFxcXCJ8fChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XFxcImJsb2NrLXNlcVxcXCIpJiZpKGcsXFxcIlRBQl9BU19JTkRFTlRcXFwiLFxcXCJUYWJzIGFyZSBub3QgYWxsb3dlZCBhcyBpbmRlbnRhdGlvblxcXCIpLHtjb21tYTpOLGZvdW5kOnksc3BhY2VCZWZvcmU6dSxjb21tZW50OmQsaGFzTmV3bGluZTpoLGFuY2hvcjpELHRhZzpULG5ld2xpbmVBZnRlclByb3A6SSxlbmQ6TyxzdGFydDp3IT1udWxsP3c6T319ZnVuY3Rpb24gQXQobil7aWYoIW4pcmV0dXJuIG51bGw7c3dpdGNoKG4udHlwZSl7Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmlmKG4uc291cmNlLmluY2x1ZGVzKGBcXG5gKSlyZXR1cm4hMDtpZihuLmVuZCl7Zm9yKGxldCBlIG9mIG4uZW5kKWlmKGUudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMH1yZXR1cm4hMTtjYXNlXFxcImZsb3ctY29sbGVjdGlvblxcXCI6Zm9yKGxldCBlIG9mIG4uaXRlbXMpe2ZvcihsZXQgdCBvZiBlLnN0YXJ0KWlmKHQudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMDtpZihlLnNlcCl7Zm9yKGxldCB0IG9mIGUuc2VwKWlmKHQudHlwZT09PVxcXCJuZXdsaW5lXFxcIilyZXR1cm4hMH1pZihBdChlLmtleSl8fEF0KGUudmFsdWUpKXJldHVybiEwfXJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIE9yKG4sZSx0KXtpZigoZT09bnVsbD92b2lkIDA6ZS50eXBlKT09PVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiKXtsZXQgcj1lLmVuZFswXTtyLmluZGVudD09PW4mJihyLnNvdXJjZT09PVxcXCJdXFxcInx8ci5zb3VyY2U9PT1cXFwifVxcXCIpJiZBdChlKSYmdChyLFxcXCJCQURfSU5ERU5UXFxcIixcXFwiRmxvdyBlbmQgaW5kaWNhdG9yIHNob3VsZCBiZSBtb3JlIGluZGVudGVkIHRoYW4gcGFyZW50XFxcIiwhMCl9fWZ1bmN0aW9uIE5zKG4sZSx0KXtsZXR7dW5pcXVlS2V5czpyfT1uLm9wdGlvbnM7aWYocj09PSExKXJldHVybiExO2xldCBzPXR5cGVvZiByPT1cXFwiZnVuY3Rpb25cXFwiP3I6KGksbyk9Pmk9PT1vfHxLKGkpJiZLKG8pJiZpLnZhbHVlPT09by52YWx1ZTtyZXR1cm4gZS5zb21lKGk9PnMoaS5rZXksdCkpfXZhciB5dT1cXFwiQWxsIG1hcHBpbmcgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW5cXFwiO2Z1bmN0aW9uIGd1KHtjb21wb3NlTm9kZTpuLGNvbXBvc2VFbXB0eU5vZGU6ZX0sdCxyLHMsaSl7dmFyIGYsZDtsZXQgbz0oZj1pPT1udWxsP3ZvaWQgMDppLm5vZGVDbGFzcykhPW51bGw/ZjpvZSxhPW5ldyBvKHQuc2NoZW1hKTt0LmF0Um9vdCYmKHQuYXRSb290PSExKTtsZXQgdT1yLm9mZnNldCxsPW51bGw7Zm9yKGxldCBwIG9mIHIuaXRlbXMpe2xldHtzdGFydDpoLGtleTpiLHNlcDpnLHZhbHVlOkR9PXAsVD1hdChoLHtpbmRpY2F0b3I6XFxcImV4cGxpY2l0LWtleS1pbmRcXFwiLG5leHQ6YiE9bnVsbD9iOmc9PW51bGw/dm9pZCAwOmdbMF0sb2Zmc2V0OnUsb25FcnJvcjpzLHBhcmVudEluZGVudDpyLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pLEk9IVQuZm91bmQ7aWYoSSl7aWYoYiYmKGIudHlwZT09PVxcXCJibG9jay1zZXFcXFwiP3ModSxcXFwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZXFxcIixcXFwiQSBibG9jayBzZXF1ZW5jZSBtYXkgbm90IGJlIHVzZWQgYXMgYW4gaW1wbGljaXQgbWFwIGtleVxcXCIpOlxcXCJpbmRlbnRcXFwiaW4gYiYmYi5pbmRlbnQhPT1yLmluZGVudCYmcyh1LFxcXCJCQURfSU5ERU5UXFxcIix5dSkpLCFULmFuY2hvciYmIVQudGFnJiYhZyl7bD1ULmVuZCxULmNvbW1lbnQmJihhLmNvbW1lbnQ/YS5jb21tZW50Kz1gXFxuYCtULmNvbW1lbnQ6YS5jb21tZW50PVQuY29tbWVudCk7Y29udGludWV9KFQubmV3bGluZUFmdGVyUHJvcHx8QXQoYikpJiZzKGIhPW51bGw/YjpoW2gubGVuZ3RoLTFdLFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmVcXFwiKX1lbHNlKChkPVQuZm91bmQpPT1udWxsP3ZvaWQgMDpkLmluZGVudCkhPT1yLmluZGVudCYmcyh1LFxcXCJCQURfSU5ERU5UXFxcIix5dSk7dC5hdEtleT0hMDtsZXQgTj1ULmVuZCx5PWI/bih0LGIsVCxzKTplKHQsTixoLG51bGwsVCxzKTt0LnNjaGVtYS5jb21wYXQmJk9yKHIuaW5kZW50LGIscyksdC5hdEtleT0hMSxOcyh0LGEuaXRlbXMseSkmJnMoTixcXFwiRFVQTElDQVRFX0tFWVxcXCIsXFxcIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlXFxcIik7bGV0IHc9YXQoZyE9bnVsbD9nOltdLHtpbmRpY2F0b3I6XFxcIm1hcC12YWx1ZS1pbmRcXFwiLG5leHQ6RCxvZmZzZXQ6eS5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiFifHxiLnR5cGU9PT1cXFwiYmxvY2stc2NhbGFyXFxcIn0pO2lmKHU9dy5lbmQsdy5mb3VuZCl7SSYmKChEPT1udWxsP3ZvaWQgMDpELnR5cGUpPT09XFxcImJsb2NrLW1hcFxcXCImJiF3Lmhhc05ld2xpbmUmJnModSxcXFwiQkxPQ0tfQVNfSU1QTElDSVRfS0VZXFxcIixcXFwiTmVzdGVkIG1hcHBpbmdzIGFyZSBub3QgYWxsb3dlZCBpbiBjb21wYWN0IG1hcHBpbmdzXFxcIiksdC5vcHRpb25zLnN0cmljdCYmVC5zdGFydDx3LmZvdW5kLm9mZnNldC0xMDI0JiZzKHkucmFuZ2UsXFxcIktFWV9PVkVSXzEwMjRfQ0hBUlNcXFwiLFxcXCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGJsb2NrIG1hcHBpbmcga2V5XFxcIikpO2xldCB2PUQ/bih0LEQsdyxzKTplKHQsdSxnLG51bGwsdyxzKTt0LnNjaGVtYS5jb21wYXQmJk9yKHIuaW5kZW50LEQscyksdT12LnJhbmdlWzJdO2xldCBPPW5ldyBpZSh5LHYpO3Qub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoTy5zcmNUb2tlbj1wKSxhLml0ZW1zLnB1c2goTyl9ZWxzZXtJJiZzKHkucmFuZ2UsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkltcGxpY2l0IG1hcCBrZXlzIG5lZWQgdG8gYmUgZm9sbG93ZWQgYnkgbWFwIHZhbHVlc1xcXCIpLHcuY29tbWVudCYmKHkuY29tbWVudD95LmNvbW1lbnQrPWBcXG5gK3cuY29tbWVudDp5LmNvbW1lbnQ9dy5jb21tZW50KTtsZXQgdj1uZXcgaWUoeSk7dC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJih2LnNyY1Rva2VuPXApLGEuaXRlbXMucHVzaCh2KX19cmV0dXJuIGwmJmw8dSYmcyhsLFxcXCJJTVBPU1NJQkxFXFxcIixcXFwiTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50XFxcIiksYS5yYW5nZT1bci5vZmZzZXQsdSxsIT1udWxsP2w6dV0sYX1mdW5jdGlvbiBidSh7Y29tcG9zZU5vZGU6bixjb21wb3NlRW1wdHlOb2RlOmV9LHQscixzLGkpe3ZhciBmO2xldCBvPShmPWk9PW51bGw/dm9pZCAwOmkubm9kZUNsYXNzKSE9bnVsbD9mOmJlLGE9bmV3IG8odC5zY2hlbWEpO3QuYXRSb290JiYodC5hdFJvb3Q9ITEpLHQuYXRLZXkmJih0LmF0S2V5PSExKTtsZXQgdT1yLm9mZnNldCxsPW51bGw7Zm9yKGxldHtzdGFydDpkLHZhbHVlOnB9b2Ygci5pdGVtcyl7bGV0IGg9YXQoZCx7aW5kaWNhdG9yOlxcXCJzZXEtaXRlbS1pbmRcXFwiLG5leHQ6cCxvZmZzZXQ6dSxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiEwfSk7aWYoIWguZm91bmQpaWYoaC5hbmNob3J8fGgudGFnfHxwKXAmJnAudHlwZT09PVxcXCJibG9jay1zZXFcXFwiP3MoaC5lbmQsXFxcIkJBRF9JTkRFTlRcXFwiLFxcXCJBbGwgc2VxdWVuY2UgaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW5cXFwiKTpzKHUsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIlNlcXVlbmNlIGl0ZW0gd2l0aG91dCAtIGluZGljYXRvclxcXCIpO2Vsc2V7bD1oLmVuZCxoLmNvbW1lbnQmJihhLmNvbW1lbnQ9aC5jb21tZW50KTtjb250aW51ZX1sZXQgYj1wP24odCxwLGgscyk6ZSh0LGguZW5kLGQsbnVsbCxoLHMpO3Quc2NoZW1hLmNvbXBhdCYmT3Ioci5pbmRlbnQscCxzKSx1PWIucmFuZ2VbMl0sYS5pdGVtcy5wdXNoKGIpfXJldHVybiBhLnJhbmdlPVtyLm9mZnNldCx1LGwhPW51bGw/bDp1XSxhfWZ1bmN0aW9uIHV0KG4sZSx0LHIpe2xldCBzPVxcXCJcXFwiO2lmKG4pe2xldCBpPSExLG89XFxcIlxcXCI7Zm9yKGxldCBhIG9mIG4pe2xldHtzb3VyY2U6dSx0eXBlOmx9PWE7c3dpdGNoKGwpe2Nhc2VcXFwic3BhY2VcXFwiOmk9ITA7YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjp7dCYmIWkmJnIoYSxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVyc1xcXCIpO2xldCBmPXUuc3Vic3RyaW5nKDEpfHxcXFwiIFxcXCI7cz9zKz1vK2Y6cz1mLG89XFxcIlxcXCI7YnJlYWt9Y2FzZVxcXCJuZXdsaW5lXFxcIjpzJiYobys9dSksaT0hMDticmVhaztkZWZhdWx0OnIoYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgJHtsfSBhdCBub2RlIGVuZGApfWUrPXUubGVuZ3RofX1yZXR1cm57Y29tbWVudDpzLG9mZnNldDplfX12YXIgUWk9XFxcIkJsb2NrIGNvbGxlY3Rpb25zIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gZmxvdyBjb2xsZWN0aW9uc1xcXCIsWGk9bj0+biYmKG4udHlwZT09PVxcXCJibG9jay1tYXBcXFwifHxuLnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIik7ZnVuY3Rpb24gRnUoe2NvbXBvc2VOb2RlOm4sY29tcG9zZUVtcHR5Tm9kZTplfSx0LHIscyxpKXt2YXIgRCxUO2xldCBvPXIuc3RhcnQuc291cmNlPT09XFxcIntcXFwiLGE9bz9cXFwiZmxvdyBtYXBcXFwiOlxcXCJmbG93IHNlcXVlbmNlXFxcIix1PShEPWk9PW51bGw/dm9pZCAwOmkubm9kZUNsYXNzKSE9bnVsbD9EOm8/b2U6YmUsbD1uZXcgdSh0LnNjaGVtYSk7bC5mbG93PSEwO2xldCBmPXQuYXRSb290O2YmJih0LmF0Um9vdD0hMSksdC5hdEtleSYmKHQuYXRLZXk9ITEpO2xldCBkPXIub2Zmc2V0K3Iuc3RhcnQuc291cmNlLmxlbmd0aDtmb3IobGV0IEk9MDtJPHIuaXRlbXMubGVuZ3RoOysrSSl7bGV0IE49ci5pdGVtc1tJXSx7c3RhcnQ6eSxrZXk6dyxzZXA6dix2YWx1ZTpPfT1OLEM9YXQoeSx7ZmxvdzphLGluZGljYXRvcjpcXFwiZXhwbGljaXQta2V5LWluZFxcXCIsbmV4dDp3IT1udWxsP3c6dj09bnVsbD92b2lkIDA6dlswXSxvZmZzZXQ6ZCxvbkVycm9yOnMscGFyZW50SW5kZW50OnIuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoIUMuZm91bmQpe2lmKCFDLmFuY2hvciYmIUMudGFnJiYhdiYmIU8pe0k9PT0wJiZDLmNvbW1hP3MoQy5jb21tYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgLCBpbiAke2F9YCk6STxyLml0ZW1zLmxlbmd0aC0xJiZzKEMuc3RhcnQsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGBVbmV4cGVjdGVkIGVtcHR5IGl0ZW0gaW4gJHthfWApLEMuY29tbWVudCYmKGwuY29tbWVudD9sLmNvbW1lbnQrPWBcXG5gK0MuY29tbWVudDpsLmNvbW1lbnQ9Qy5jb21tZW50KSxkPUMuZW5kO2NvbnRpbnVlfSFvJiZ0Lm9wdGlvbnMuc3RyaWN0JiZBdCh3KSYmcyh3LFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZVxcXCIpfWlmKEk9PT0wKUMuY29tbWEmJnMoQy5jb21tYSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuZXhwZWN0ZWQgLCBpbiAke2F9YCk7ZWxzZSBpZihDLmNvbW1hfHxzKEMuc3RhcnQsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsYE1pc3NpbmcgLCBiZXR3ZWVuICR7YX0gaXRlbXNgKSxDLmNvbW1lbnQpe2xldCBWPVxcXCJcXFwiO2U6Zm9yKGxldCBqIG9mIHkpc3dpdGNoKGoudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJzcGFjZVxcXCI6YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjpWPWouc291cmNlLnN1YnN0cmluZygxKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1pZihWKXtsZXQgaj1sLml0ZW1zW2wuaXRlbXMubGVuZ3RoLTFdO0goaikmJihqPShUPWoudmFsdWUpIT1udWxsP1Q6ai5rZXkpLGouY29tbWVudD9qLmNvbW1lbnQrPWBcXG5gK1Y6ai5jb21tZW50PVYsQy5jb21tZW50PUMuY29tbWVudC5zdWJzdHJpbmcoVi5sZW5ndGgrMSl9fWlmKCFvJiYhdiYmIUMuZm91bmQpe2xldCBWPU8/bih0LE8sQyxzKTplKHQsQy5lbmQsdixudWxsLEMscyk7bC5pdGVtcy5wdXNoKFYpLGQ9Vi5yYW5nZVsyXSxYaShPKSYmcyhWLnJhbmdlLFxcXCJCTE9DS19JTl9GTE9XXFxcIixRaSl9ZWxzZXt0LmF0S2V5PSEwO2xldCBWPUMuZW5kLGo9dz9uKHQsdyxDLHMpOmUodCxWLHksbnVsbCxDLHMpO1hpKHcpJiZzKGoucmFuZ2UsXFxcIkJMT0NLX0lOX0ZMT1dcXFwiLFFpKSx0LmF0S2V5PSExO2xldCBZPWF0KHYhPW51bGw/djpbXSx7ZmxvdzphLGluZGljYXRvcjpcXFwibWFwLXZhbHVlLWluZFxcXCIsbmV4dDpPLG9mZnNldDpqLnJhbmdlWzJdLG9uRXJyb3I6cyxwYXJlbnRJbmRlbnQ6ci5pbmRlbnQsc3RhcnRPbk5ld2xpbmU6ITF9KTtpZihZLmZvdW5kKXtpZighbyYmIUMuZm91bmQmJnQub3B0aW9ucy5zdHJpY3Qpe2lmKHYpZm9yKGxldCB4IG9mIHYpe2lmKHg9PT1ZLmZvdW5kKWJyZWFrO2lmKHgudHlwZT09PVxcXCJuZXdsaW5lXFxcIil7cyh4LFxcXCJNVUxUSUxJTkVfSU1QTElDSVRfS0VZXFxcIixcXFwiSW1wbGljaXQga2V5cyBvZiBmbG93IHNlcXVlbmNlIHBhaXJzIG5lZWQgdG8gYmUgb24gYSBzaW5nbGUgbGluZVxcXCIpO2JyZWFrfX1DLnN0YXJ0PFkuZm91bmQub2Zmc2V0LTEwMjQmJnMoWS5mb3VuZCxcXFwiS0VZX09WRVJfMTAyNF9DSEFSU1xcXCIsXFxcIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgZmxvdyBzZXF1ZW5jZSBrZXlcXFwiKX19ZWxzZSBPJiYoXFxcInNvdXJjZVxcXCJpbiBPJiZPLnNvdXJjZSYmTy5zb3VyY2VbMF09PT1cXFwiOlxcXCI/cyhPLFxcXCJNSVNTSU5HX0NIQVJcXFwiLGBNaXNzaW5nIHNwYWNlIGFmdGVyIDogaW4gJHthfWApOnMoWS5zdGFydCxcXFwiTUlTU0lOR19DSEFSXFxcIixgTWlzc2luZyAsIG9yIDogYmV0d2VlbiAke2F9IGl0ZW1zYCkpO2xldCBlZT1PP24odCxPLFkscyk6WS5mb3VuZD9lKHQsWS5lbmQsdixudWxsLFkscyk6bnVsbDtlZT9YaShPKSYmcyhlZS5yYW5nZSxcXFwiQkxPQ0tfSU5fRkxPV1xcXCIsUWkpOlkuY29tbWVudCYmKGouY29tbWVudD9qLmNvbW1lbnQrPWBcXG5gK1kuY29tbWVudDpqLmNvbW1lbnQ9WS5jb21tZW50KTtsZXQgYWU9bmV3IGllKGosZWUpO2lmKHQub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoYWUuc3JjVG9rZW49Tiksbyl7bGV0IHg9bDtOcyh0LHguaXRlbXMsaikmJnMoVixcXFwiRFVQTElDQVRFX0tFWVxcXCIsXFxcIk1hcCBrZXlzIG11c3QgYmUgdW5pcXVlXFxcIikseC5pdGVtcy5wdXNoKGFlKX1lbHNle2xldCB4PW5ldyBvZSh0LnNjaGVtYSk7eC5mbG93PSEwLHguaXRlbXMucHVzaChhZSk7bGV0ICQ9KGVlIT1udWxsP2VlOmopLnJhbmdlO3gucmFuZ2U9W2oucmFuZ2VbMF0sJFsxXSwkWzJdXSxsLml0ZW1zLnB1c2goeCl9ZD1lZT9lZS5yYW5nZVsyXTpZLmVuZH19bGV0IHA9bz9cXFwifVxcXCI6XFxcIl1cXFwiLFtoLC4uLmJdPXIuZW5kLGc9ZDtpZihoJiZoLnNvdXJjZT09PXApZz1oLm9mZnNldCtoLnNvdXJjZS5sZW5ndGg7ZWxzZXtsZXQgST1hWzBdLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSksTj1mP2Ake0l9IG11c3QgZW5kIHdpdGggYSAke3B9YDpgJHtJfSBpbiBibG9jayBjb2xsZWN0aW9uIG11c3QgYmUgc3VmZmljaWVudGx5IGluZGVudGVkIGFuZCBlbmQgd2l0aCBhICR7cH1gO3MoZCxmP1xcXCJNSVNTSU5HX0NIQVJcXFwiOlxcXCJCQURfSU5ERU5UXFxcIixOKSxoJiZoLnNvdXJjZS5sZW5ndGghPT0xJiZiLnVuc2hpZnQoaCl9aWYoYi5sZW5ndGg+MCl7bGV0IEk9dXQoYixnLHQub3B0aW9ucy5zdHJpY3Qscyk7SS5jb21tZW50JiYobC5jb21tZW50P2wuY29tbWVudCs9YFxcbmArSS5jb21tZW50OmwuY29tbWVudD1JLmNvbW1lbnQpLGwucmFuZ2U9W3Iub2Zmc2V0LGcsSS5vZmZzZXRdfWVsc2UgbC5yYW5nZT1bci5vZmZzZXQsZyxnXTtyZXR1cm4gbH1mdW5jdGlvbiBlbyhuLGUsdCxyLHMsaSl7bGV0IG89dC50eXBlPT09XFxcImJsb2NrLW1hcFxcXCI/Z3UobixlLHQscixpKTp0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIj9idShuLGUsdCxyLGkpOkZ1KG4sZSx0LHIsaSksYT1vLmNvbnN0cnVjdG9yO3JldHVybiBzPT09XFxcIiFcXFwifHxzPT09YS50YWdOYW1lPyhvLnRhZz1hLnRhZ05hbWUsbyk6KHMmJihvLnRhZz1zKSxvKX1mdW5jdGlvbiBFdShuLGUsdCxyLHMpe3ZhciBwLGg7bGV0IGk9ci50YWcsbz1pP2UuZGlyZWN0aXZlcy50YWdOYW1lKGkuc291cmNlLGI9PnMoaSxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixiKSk6bnVsbDtpZih0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIil7bGV0e2FuY2hvcjpiLG5ld2xpbmVBZnRlclByb3A6Z309cixEPWImJmk/Yi5vZmZzZXQ+aS5vZmZzZXQ/YjppOmIhPW51bGw/YjppO0QmJighZ3x8Zy5vZmZzZXQ8RC5vZmZzZXQpJiZzKEQsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIk1pc3NpbmcgbmV3bGluZSBhZnRlciBibG9jayBzZXF1ZW5jZSBwcm9wc1xcXCIpfWxldCBhPXQudHlwZT09PVxcXCJibG9jay1tYXBcXFwiP1xcXCJtYXBcXFwiOnQudHlwZT09PVxcXCJibG9jay1zZXFcXFwiP1xcXCJzZXFcXFwiOnQuc3RhcnQuc291cmNlPT09XFxcIntcXFwiP1xcXCJtYXBcXFwiOlxcXCJzZXFcXFwiO2lmKCFpfHwhb3x8bz09PVxcXCIhXFxcInx8bz09PW9lLnRhZ05hbWUmJmE9PT1cXFwibWFwXFxcInx8bz09PWJlLnRhZ05hbWUmJmE9PT1cXFwic2VxXFxcIilyZXR1cm4gZW8obixlLHQscyxvKTtsZXQgdT1lLnNjaGVtYS50YWdzLmZpbmQoYj0+Yi50YWc9PT1vJiZiLmNvbGxlY3Rpb249PT1hKTtpZighdSl7bGV0IGI9ZS5zY2hlbWEua25vd25UYWdzW29dO2lmKGImJmIuY29sbGVjdGlvbj09PWEpZS5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sYix7ZGVmYXVsdDohMX0pKSx1PWI7ZWxzZSByZXR1cm4gYiE9bnVsbCYmYi5jb2xsZWN0aW9uP3MoaSxcXFwiQkFEX0NPTExFQ1RJT05fVFlQRVxcXCIsYCR7Yi50YWd9IHVzZWQgZm9yICR7YX0gY29sbGVjdGlvbiwgYnV0IGV4cGVjdHMgJHtiLmNvbGxlY3Rpb259YCwhMCk6cyhpLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLGBVbnJlc29sdmVkIHRhZzogJHtvfWAsITApLGVvKG4sZSx0LHMsbyl9bGV0IGw9ZW8obixlLHQscyxvLHUpLGY9KGg9KHA9dS5yZXNvbHZlKT09bnVsbD92b2lkIDA6cC5jYWxsKHUsbCxiPT5zKGksXFxcIlRBR19SRVNPTFZFX0ZBSUxFRFxcXCIsYiksZS5vcHRpb25zKSkhPW51bGw/aDpsLGQ9SihmKT9mOm5ldyBQKGYpO3JldHVybiBkLnJhbmdlPWwucmFuZ2UsZC50YWc9byx1IT1udWxsJiZ1LmZvcm1hdCYmKGQuZm9ybWF0PXUuZm9ybWF0KSxkfWZ1bmN0aW9uIHRvKG4sZSx0KXtsZXQgcj1lLm9mZnNldCxzPW9mKGUsbi5vcHRpb25zLnN0cmljdCx0KTtpZighcylyZXR1cm57dmFsdWU6XFxcIlxcXCIsdHlwZTpudWxsLGNvbW1lbnQ6XFxcIlxcXCIscmFuZ2U6W3IscixyXX07bGV0IGk9cy5tb2RlPT09XFxcIj5cXFwiP1AuQkxPQ0tfRk9MREVEOlAuQkxPQ0tfTElURVJBTCxvPWUuc291cmNlP2FmKGUuc291cmNlKTpbXSxhPW8ubGVuZ3RoO2ZvcihsZXQgZz1vLmxlbmd0aC0xO2c+PTA7LS1nKXtsZXQgRD1vW2ddWzFdO2lmKEQ9PT1cXFwiXFxcInx8RD09PVxcXCJcXFxcclxcXCIpYT1nO2Vsc2UgYnJlYWt9aWYoYT09PTApe2xldCBnPXMuY2hvbXA9PT1cXFwiK1xcXCImJm8ubGVuZ3RoPjA/YFxcbmAucmVwZWF0KE1hdGgubWF4KDEsby5sZW5ndGgtMSkpOlxcXCJcXFwiLEQ9citzLmxlbmd0aDtyZXR1cm4gZS5zb3VyY2UmJihEKz1lLnNvdXJjZS5sZW5ndGgpLHt2YWx1ZTpnLHR5cGU6aSxjb21tZW50OnMuY29tbWVudCxyYW5nZTpbcixELERdfX1sZXQgdT1lLmluZGVudCtzLmluZGVudCxsPWUub2Zmc2V0K3MubGVuZ3RoLGY9MDtmb3IobGV0IGc9MDtnPGE7KytnKXtsZXRbRCxUXT1vW2ddO2lmKFQ9PT1cXFwiXFxcInx8VD09PVxcXCJcXFxcclxcXCIpcy5pbmRlbnQ9PT0wJiZELmxlbmd0aD51JiYodT1ELmxlbmd0aCk7ZWxzZXtELmxlbmd0aDx1JiZ0KGwrRC5sZW5ndGgsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIkJsb2NrIHNjYWxhcnMgd2l0aCBtb3JlLWluZGVudGVkIGxlYWRpbmcgZW1wdHkgbGluZXMgbXVzdCB1c2UgYW4gZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yXFxcIikscy5pbmRlbnQ9PT0wJiYodT1ELmxlbmd0aCksZj1nLHU9PT0wJiYhbi5hdFJvb3QmJnQobCxcXFwiQkFEX0lOREVOVFxcXCIsXFxcIkJsb2NrIHNjYWxhciB2YWx1ZXMgaW4gY29sbGVjdGlvbnMgbXVzdCBiZSBpbmRlbnRlZFxcXCIpO2JyZWFrfWwrPUQubGVuZ3RoK1QubGVuZ3RoKzF9Zm9yKGxldCBnPW8ubGVuZ3RoLTE7Zz49YTstLWcpb1tnXVswXS5sZW5ndGg+dSYmKGE9ZysxKTtsZXQgZD1cXFwiXFxcIixwPVxcXCJcXFwiLGg9ITE7Zm9yKGxldCBnPTA7ZzxmOysrZylkKz1vW2ddWzBdLnNsaWNlKHUpK2BcXG5gO2ZvcihsZXQgZz1mO2c8YTsrK2cpe2xldFtELFRdPW9bZ107bCs9RC5sZW5ndGgrVC5sZW5ndGgrMTtsZXQgST1UW1QubGVuZ3RoLTFdPT09XFxcIlxcXFxyXFxcIjtpZihJJiYoVD1ULnNsaWNlKDAsLTEpKSxUJiZELmxlbmd0aDx1KXtsZXQgeT1gQmxvY2sgc2NhbGFyIGxpbmVzIG11c3Qgbm90IGJlIGxlc3MgaW5kZW50ZWQgdGhhbiB0aGVpciAke3MuaW5kZW50P1xcXCJleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3JcXFwiOlxcXCJmaXJzdCBsaW5lXFxcIn1gO3QobC1ULmxlbmd0aC0oST8yOjEpLFxcXCJCQURfSU5ERU5UXFxcIix5KSxEPVxcXCJcXFwifWk9PT1QLkJMT0NLX0xJVEVSQUw/KGQrPXArRC5zbGljZSh1KStULHA9YFxcbmApOkQubGVuZ3RoPnV8fFRbMF09PT1cXFwiXFx0XFxcIj8ocD09PVxcXCIgXFxcIj9wPWBcXG5gOiFoJiZwPT09YFxcbmAmJihwPWBcXG5cXG5gKSxkKz1wK0Quc2xpY2UodSkrVCxwPWBcXG5gLGg9ITApOlQ9PT1cXFwiXFxcIj9wPT09YFxcbmA/ZCs9YFxcbmA6cD1gXFxuYDooZCs9cCtULHA9XFxcIiBcXFwiLGg9ITEpfXN3aXRjaChzLmNob21wKXtjYXNlXFxcIi1cXFwiOmJyZWFrO2Nhc2VcXFwiK1xcXCI6Zm9yKGxldCBnPWE7ZzxvLmxlbmd0aDsrK2cpZCs9YFxcbmArb1tnXVswXS5zbGljZSh1KTtkW2QubGVuZ3RoLTFdIT09YFxcbmAmJihkKz1gXFxuYCk7YnJlYWs7ZGVmYXVsdDpkKz1gXFxuYH1sZXQgYj1yK3MubGVuZ3RoK2Uuc291cmNlLmxlbmd0aDtyZXR1cm57dmFsdWU6ZCx0eXBlOmksY29tbWVudDpzLmNvbW1lbnQscmFuZ2U6W3IsYixiXX19ZnVuY3Rpb24gb2Yoe29mZnNldDpuLHByb3BzOmV9LHQscil7aWYoZVswXS50eXBlIT09XFxcImJsb2NrLXNjYWxhci1oZWFkZXJcXFwiKXJldHVybiByKGVbMF0sXFxcIklNUE9TU0lCTEVcXFwiLFxcXCJCbG9jayBzY2FsYXIgaGVhZGVyIG5vdCBmb3VuZFxcXCIpLG51bGw7bGV0e3NvdXJjZTpzfT1lWzBdLGk9c1swXSxvPTAsYT1cXFwiXFxcIix1PS0xO2ZvcihsZXQgcD0xO3A8cy5sZW5ndGg7KytwKXtsZXQgaD1zW3BdO2lmKCFhJiYoaD09PVxcXCItXFxcInx8aD09PVxcXCIrXFxcIikpYT1oO2Vsc2V7bGV0IGI9TnVtYmVyKGgpOyFvJiZiP289Yjp1PT09LTEmJih1PW4rcCl9fXUhPT0tMSYmcih1LFxcXCJVTkVYUEVDVEVEX1RPS0VOXFxcIixgQmxvY2sgc2NhbGFyIGhlYWRlciBpbmNsdWRlcyBleHRyYSBjaGFyYWN0ZXJzOiAke3N9YCk7bGV0IGw9ITEsZj1cXFwiXFxcIixkPXMubGVuZ3RoO2ZvcihsZXQgcD0xO3A8ZS5sZW5ndGg7KytwKXtsZXQgaD1lW3BdO3N3aXRjaChoLnR5cGUpe2Nhc2VcXFwic3BhY2VcXFwiOmw9ITA7Y2FzZVxcXCJuZXdsaW5lXFxcIjpkKz1oLnNvdXJjZS5sZW5ndGg7YnJlYWs7Y2FzZVxcXCJjb21tZW50XFxcIjp0JiYhbCYmcihoLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJDb21tZW50cyBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHRva2VucyBieSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzXFxcIiksZCs9aC5zb3VyY2UubGVuZ3RoLGY9aC5zb3VyY2Uuc3Vic3RyaW5nKDEpO2JyZWFrO2Nhc2VcXFwiZXJyb3JcXFwiOnIoaCxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsaC5tZXNzYWdlKSxkKz1oLnNvdXJjZS5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp7bGV0IGI9YFVuZXhwZWN0ZWQgdG9rZW4gaW4gYmxvY2sgc2NhbGFyIGhlYWRlcjogJHtoLnR5cGV9YDtyKGgsXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLGIpO2xldCBnPWguc291cmNlO2cmJnR5cGVvZiBnPT1cXFwic3RyaW5nXFxcIiYmKGQrPWcubGVuZ3RoKX19fXJldHVybnttb2RlOmksaW5kZW50Om8sY2hvbXA6YSxjb21tZW50OmYsbGVuZ3RoOmR9fWZ1bmN0aW9uIGFmKG4pe2xldCBlPW4uc3BsaXQoL1xcXFxuKCAqKS8pLHQ9ZVswXSxyPXQubWF0Y2goL14oICopLyksaT1bciE9bnVsbCYmclsxXT9bclsxXSx0LnNsaWNlKHJbMV0ubGVuZ3RoKV06W1xcXCJcXFwiLHRdXTtmb3IobGV0IG89MTtvPGUubGVuZ3RoO28rPTIpaS5wdXNoKFtlW29dLGVbbysxXV0pO3JldHVybiBpfWZ1bmN0aW9uIG5vKG4sZSx0KXtsZXR7b2Zmc2V0OnIsdHlwZTpzLHNvdXJjZTppLGVuZDpvfT1uLGEsdSxsPShwLGgsYik9PnQocitwLGgsYik7c3dpdGNoKHMpe2Nhc2VcXFwic2NhbGFyXFxcIjphPVAuUExBSU4sdT11ZihpLGwpO2JyZWFrO2Nhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmE9UC5RVU9URV9TSU5HTEUsdT1sZihpLGwpO2JyZWFrO2Nhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOmE9UC5RVU9URV9ET1VCTEUsdT1jZihpLGwpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHQobixcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYEV4cGVjdGVkIGEgZmxvdyBzY2FsYXIgdmFsdWUsIGJ1dCBmb3VuZDogJHtzfWApLHt2YWx1ZTpcXFwiXFxcIix0eXBlOm51bGwsY29tbWVudDpcXFwiXFxcIixyYW5nZTpbcixyK2kubGVuZ3RoLHIraS5sZW5ndGhdfX1sZXQgZj1yK2kubGVuZ3RoLGQ9dXQobyxmLGUsdCk7cmV0dXJue3ZhbHVlOnUsdHlwZTphLGNvbW1lbnQ6ZC5jb21tZW50LHJhbmdlOltyLGYsZC5vZmZzZXRdfX1mdW5jdGlvbiB1ZihuLGUpe2xldCB0PVxcXCJcXFwiO3N3aXRjaChuWzBdKXtjYXNlXFxcIlxcdFxcXCI6dD1cXFwiYSB0YWIgY2hhcmFjdGVyXFxcIjticmVhaztjYXNlXFxcIixcXFwiOnQ9XFxcImZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlciAsXFxcIjticmVhaztjYXNlXFxcIiVcXFwiOnQ9XFxcImRpcmVjdGl2ZSBpbmRpY2F0b3IgY2hhcmFjdGVyICVcXFwiO2JyZWFrO2Nhc2VcXFwifFxcXCI6Y2FzZVxcXCI+XFxcIjp7dD1gYmxvY2sgc2NhbGFyIGluZGljYXRvciAke25bMF19YDticmVha31jYXNlXFxcIkBcXFwiOmNhc2VcXFwiYFxcXCI6e3Q9YHJlc2VydmVkIGNoYXJhY3RlciAke25bMF19YDticmVha319cmV0dXJuIHQmJmUoMCxcXFwiQkFEX1NDQUxBUl9TVEFSVFxcXCIsYFBsYWluIHZhbHVlIGNhbm5vdCBzdGFydCB3aXRoICR7dH1gKSx3dShuKX1mdW5jdGlvbiBsZihuLGUpe3JldHVybihuW24ubGVuZ3RoLTFdIT09XFxcIidcXFwifHxuLmxlbmd0aD09PTEpJiZlKG4ubGVuZ3RoLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlXFxcIiksd3Uobi5zbGljZSgxLC0xKSkucmVwbGFjZSgvJycvZyxcXFwiJ1xcXCIpfWZ1bmN0aW9uIHd1KG4pe3ZhciB1O2xldCBlLHQ7dHJ5e2U9bmV3IFJlZ0V4cChgKC4qPykoPzwhWyBcXHRdKVsgXFx0XSpcXFxccj9cXG5gLFxcXCJzeVxcXCIpLHQ9bmV3IFJlZ0V4cChgWyBcXHRdKiguKj8pKD86KD88IVsgXFx0XSlbIFxcdF0qKT9cXFxccj9cXG5gLFxcXCJzeVxcXCIpfWNhdGNoKGwpe2U9bmV3IFJlZ0V4cChcXFwiKC4qPylbIFxcXFxcXFxcdF0qXFxcXFxcXFxyP1xcXFxcXFxcblxcXCIsXFxcInN5XFxcIiksdD1uZXcgUmVnRXhwKFxcXCJbIFxcXFxcXFxcdF0qKC4qPylbIFxcXFxcXFxcdF0qXFxcXFxcXFxyP1xcXFxcXFxcblxcXCIsXFxcInN5XFxcIil9bGV0IHI9ZS5leGVjKG4pO2lmKCFyKXJldHVybiBuO2xldCBzPXJbMV0saT1cXFwiIFxcXCIsbz1lLmxhc3RJbmRleDtmb3IodC5sYXN0SW5kZXg9bztyPXQuZXhlYyhuKTspclsxXT09PVxcXCJcXFwiP2k9PT1gXFxuYD9zKz1pOmk9YFxcbmA6KHMrPWkrclsxXSxpPVxcXCIgXFxcIiksbz10Lmxhc3RJbmRleDtsZXQgYT1uZXcgUmVnRXhwKFxcXCJbIFxcXFxcXFxcdF0qKC4qKVxcXCIsXFxcInN5XFxcIik7cmV0dXJuIGEubGFzdEluZGV4PW8scj1hLmV4ZWMobikscytpKygodT1yPT1udWxsP3ZvaWQgMDpyWzFdKSE9bnVsbD91OlxcXCJcXFwiKX1mdW5jdGlvbiBjZihuLGUpe2xldCB0PVxcXCJcXFwiO2ZvcihsZXQgcj0xO3I8bi5sZW5ndGgtMTsrK3Ipe2xldCBzPW5bcl07aWYoIShzPT09XFxcIlxcXFxyXFxcIiYmbltyKzFdPT09YFxcbmApKWlmKHM9PT1gXFxuYCl7bGV0e2ZvbGQ6aSxvZmZzZXQ6b309ZmYobixyKTt0Kz1pLHI9b31lbHNlIGlmKHM9PT1cXFwiXFxcXFxcXFxcXFwiKXtsZXQgaT1uWysrcl0sbz1kZltpXTtpZihvKXQrPW87ZWxzZSBpZihpPT09YFxcbmApZm9yKGk9bltyKzFdO2k9PT1cXFwiIFxcXCJ8fGk9PT1cXFwiXFx0XFxcIjspaT1uWysrcisxXTtlbHNlIGlmKGk9PT1cXFwiXFxcXHJcXFwiJiZuW3IrMV09PT1gXFxuYClmb3IoaT1uWysrcisxXTtpPT09XFxcIiBcXFwifHxpPT09XFxcIlxcdFxcXCI7KWk9blsrK3IrMV07ZWxzZSBpZihpPT09XFxcInhcXFwifHxpPT09XFxcInVcXFwifHxpPT09XFxcIlVcXFwiKXtsZXQgYT17eDoyLHU6NCxVOjh9W2ldO3QrPWhmKG4scisxLGEsZSkscis9YX1lbHNle2xldCBhPW4uc3Vic3RyKHItMSwyKTtlKHItMSxcXFwiQkFEX0RRX0VTQ0FQRVxcXCIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7YX1gKSx0Kz1hfX1lbHNlIGlmKHM9PT1cXFwiIFxcXCJ8fHM9PT1cXFwiXFx0XFxcIil7bGV0IGk9cixvPW5bcisxXTtmb3IoO289PT1cXFwiIFxcXCJ8fG89PT1cXFwiXFx0XFxcIjspbz1uWysrcisxXTtvIT09YFxcbmAmJiEobz09PVxcXCJcXFxcclxcXCImJm5bcisyXT09PWBcXG5gKSYmKHQrPXI+aT9uLnNsaWNlKGkscisxKTpzKX1lbHNlIHQrPXN9cmV0dXJuKG5bbi5sZW5ndGgtMV0hPT0nXFxcIid8fG4ubGVuZ3RoPT09MSkmJmUobi5sZW5ndGgsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsJ01pc3NpbmcgY2xvc2luZyBcXFwicXVvdGUnKSx0fWZ1bmN0aW9uIGZmKG4sZSl7bGV0IHQ9XFxcIlxcXCIscj1uW2UrMV07Zm9yKDsocj09PVxcXCIgXFxcInx8cj09PVxcXCJcXHRcXFwifHxyPT09YFxcbmB8fHI9PT1cXFwiXFxcXHJcXFwiKSYmIShyPT09XFxcIlxcXFxyXFxcIiYmbltlKzJdIT09YFxcbmApOylyPT09YFxcbmAmJih0Kz1gXFxuYCksZSs9MSxyPW5bZSsxXTtyZXR1cm4gdHx8KHQ9XFxcIiBcXFwiKSx7Zm9sZDp0LG9mZnNldDplfX12YXIgZGY9ezA6XFxcIlxcXFwwXFxcIixhOlxcXCJcXFxceDA3XFxcIixiOlxcXCJcXFxcYlxcXCIsZTpcXFwiXFxcXHgxQlxcXCIsZjpcXFwiXFxcXGZcXFwiLG46YFxcbmAscjpcXFwiXFxcXHJcXFwiLHQ6XFxcIlxcdFxcXCIsdjpcXFwiXFxcXHZcXFwiLE46XFxcIlxcXFx4ODVcXFwiLF86XFxcIlxcXFx4QTBcXFwiLEw6XFxcIlxcXFx1MjAyOFxcXCIsUDpcXFwiXFxcXHUyMDI5XFxcIixcXFwiIFxcXCI6XFxcIiBcXFwiLCdcXFwiJzonXFxcIicsXFxcIi9cXFwiOlxcXCIvXFxcIixcXFwiXFxcXFxcXFxcXFwiOlxcXCJcXFxcXFxcXFxcXCIsXFxcIlxcdFxcXCI6XFxcIlxcdFxcXCJ9O2Z1bmN0aW9uIGhmKG4sZSx0LHIpe2xldCBzPW4uc3Vic3RyKGUsdCksbz1zLmxlbmd0aD09PXQmJi9eWzAtOWEtZkEtRl0rJC8udGVzdChzKT9wYXJzZUludChzLDE2KTpOYU47aWYoaXNOYU4obykpe2xldCBhPW4uc3Vic3RyKGUtMix0KzIpO3JldHVybiByKGUtMixcXFwiQkFEX0RRX0VTQ0FQRVxcXCIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7YX1gKSxhfXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChvKX1mdW5jdGlvbiBybyhuLGUsdCxyKXtsZXR7dmFsdWU6cyx0eXBlOmksY29tbWVudDpvLHJhbmdlOmF9PWUudHlwZT09PVxcXCJibG9jay1zY2FsYXJcXFwiP3RvKG4sZSxyKTpubyhlLG4ub3B0aW9ucy5zdHJpY3QsciksdT10P24uZGlyZWN0aXZlcy50YWdOYW1lKHQuc291cmNlLGQ9PnIodCxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixkKSk6bnVsbCxsO24ub3B0aW9ucy5zdHJpbmdLZXlzJiZuLmF0S2V5P2w9bi5zY2hlbWFbSWVdOnU/bD1wZihuLnNjaGVtYSxzLHUsdCxyKTplLnR5cGU9PT1cXFwic2NhbGFyXFxcIj9sPW1mKG4scyxlLHIpOmw9bi5zY2hlbWFbSWVdO2xldCBmO3RyeXtsZXQgZD1sLnJlc29sdmUocyxwPT5yKHQhPW51bGw/dDplLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLHApLG4ub3B0aW9ucyk7Zj1LKGQpP2Q6bmV3IFAoZCl9Y2F0Y2goZCl7bGV0IHA9ZCBpbnN0YW5jZW9mIEVycm9yP2QubWVzc2FnZTpTdHJpbmcoZCk7cih0IT1udWxsP3Q6ZSxcXFwiVEFHX1JFU09MVkVfRkFJTEVEXFxcIixwKSxmPW5ldyBQKHMpfXJldHVybiBmLnJhbmdlPWEsZi5zb3VyY2U9cyxpJiYoZi50eXBlPWkpLHUmJihmLnRhZz11KSxsLmZvcm1hdCYmKGYuZm9ybWF0PWwuZm9ybWF0KSxvJiYoZi5jb21tZW50PW8pLGZ9ZnVuY3Rpb24gcGYobixlLHQscixzKXt2YXIgYTtpZih0PT09XFxcIiFcXFwiKXJldHVybiBuW0llXTtsZXQgaT1bXTtmb3IobGV0IHUgb2Ygbi50YWdzKWlmKCF1LmNvbGxlY3Rpb24mJnUudGFnPT09dClpZih1LmRlZmF1bHQmJnUudGVzdClpLnB1c2godSk7ZWxzZSByZXR1cm4gdTtmb3IobGV0IHUgb2YgaSlpZigoYT11LnRlc3QpIT1udWxsJiZhLnRlc3QoZSkpcmV0dXJuIHU7bGV0IG89bi5rbm93blRhZ3NbdF07cmV0dXJuIG8mJiFvLmNvbGxlY3Rpb24/KG4udGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30sbyx7ZGVmYXVsdDohMSx0ZXN0OnZvaWQgMH0pKSxvKToocyhyLFxcXCJUQUdfUkVTT0xWRV9GQUlMRURcXFwiLGBVbnJlc29sdmVkIHRhZzogJHt0fWAsdCE9PVxcXCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHJcXFwiKSxuW0llXSl9ZnVuY3Rpb24gbWYoe2F0S2V5Om4sZGlyZWN0aXZlczplLHNjaGVtYTp0fSxyLHMsaSl7dmFyIGE7bGV0IG89dC50YWdzLmZpbmQodT0+e3ZhciBsO3JldHVybih1LmRlZmF1bHQ9PT0hMHx8biYmdS5kZWZhdWx0PT09XFxcImtleVxcXCIpJiYoKGw9dS50ZXN0KT09bnVsbD92b2lkIDA6bC50ZXN0KHIpKX0pfHx0W0llXTtpZih0LmNvbXBhdCl7bGV0IHU9KGE9dC5jb21wYXQuZmluZChsPT57dmFyIGY7cmV0dXJuIGwuZGVmYXVsdCYmKChmPWwudGVzdCk9PW51bGw/dm9pZCAwOmYudGVzdChyKSl9KSkhPW51bGw/YTp0W0llXTtpZihvLnRhZyE9PXUudGFnKXtsZXQgbD1lLnRhZ1N0cmluZyhvLnRhZyksZj1lLnRhZ1N0cmluZyh1LnRhZyksZD1gVmFsdWUgbWF5IGJlIHBhcnNlZCBhcyBlaXRoZXIgJHtsfSBvciAke2Z9YDtpKHMsXFxcIlRBR19SRVNPTFZFX0ZBSUxFRFxcXCIsZCwhMCl9fXJldHVybiBvfWZ1bmN0aW9uIFR1KG4sZSx0KXtpZihlKXt0PT09bnVsbCYmKHQ9ZS5sZW5ndGgpO2ZvcihsZXQgcj10LTE7cj49MDstLXIpe2xldCBzPWVbcl07c3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOm4tPXMuc291cmNlLmxlbmd0aDtjb250aW51ZX1mb3Iocz1lWysrcl07KHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cXFwic3BhY2VcXFwiOyluKz1zLnNvdXJjZS5sZW5ndGgscz1lWysrcl07YnJlYWt9fXJldHVybiBufXZhciBEZj17Y29tcG9zZU5vZGU6c28sY29tcG9zZUVtcHR5Tm9kZTpBc307ZnVuY3Rpb24gc28obixlLHQscil7bGV0IHM9bi5hdEtleSx7c3BhY2VCZWZvcmU6aSxjb21tZW50Om8sYW5jaG9yOmEsdGFnOnV9PXQsbCxmPSEwO3N3aXRjaChlLnR5cGUpe2Nhc2VcXFwiYWxpYXNcXFwiOmw9eWYobixlLHIpLChhfHx1KSYmcihlLFxcXCJBTElBU19QUk9QU1xcXCIsXFxcIkFuIGFsaWFzIG5vZGUgbXVzdCBub3Qgc3BlY2lmeSBhbnkgcHJvcGVydGllc1xcXCIpO2JyZWFrO2Nhc2VcXFwic2NhbGFyXFxcIjpjYXNlXFxcInNpbmdsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImRvdWJsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImJsb2NrLXNjYWxhclxcXCI6bD1ybyhuLGUsdSxyKSxhJiYobC5hbmNob3I9YS5zb3VyY2Uuc3Vic3RyaW5nKDEpKTticmVhaztjYXNlXFxcImJsb2NrLW1hcFxcXCI6Y2FzZVxcXCJibG9jay1zZXFcXFwiOmNhc2VcXFwiZmxvdy1jb2xsZWN0aW9uXFxcIjpsPUV1KERmLG4sZSx0LHIpLGEmJihsLmFuY2hvcj1hLnNvdXJjZS5zdWJzdHJpbmcoMSkpO2JyZWFrO2RlZmF1bHQ6e2xldCBkPWUudHlwZT09PVxcXCJlcnJvclxcXCI/ZS5tZXNzYWdlOmBVbnN1cHBvcnRlZCB0b2tlbiAodHlwZTogJHtlLnR5cGV9KWA7cihlLFxcXCJVTkVYUEVDVEVEX1RPS0VOXFxcIixkKSxsPUFzKG4sZS5vZmZzZXQsdm9pZCAwLG51bGwsdCxyKSxmPSExfX1yZXR1cm4gYSYmbC5hbmNob3I9PT1cXFwiXFxcIiYmcihhLFxcXCJCQURfQUxJQVNcXFwiLFxcXCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZ1xcXCIpLHMmJm4ub3B0aW9ucy5zdHJpbmdLZXlzJiYoIUsobCl8fHR5cGVvZiBsLnZhbHVlIT1cXFwic3RyaW5nXFxcInx8bC50YWcmJmwudGFnIT09XFxcInRhZzp5YW1sLm9yZywyMDAyOnN0clxcXCIpJiZyKHUhPW51bGw/dTplLFxcXCJOT05fU1RSSU5HX0tFWVxcXCIsXFxcIldpdGggc3RyaW5nS2V5cywgYWxsIGtleXMgbXVzdCBiZSBzdHJpbmdzXFxcIiksaSYmKGwuc3BhY2VCZWZvcmU9ITApLG8mJihlLnR5cGU9PT1cXFwic2NhbGFyXFxcIiYmZS5zb3VyY2U9PT1cXFwiXFxcIj9sLmNvbW1lbnQ9bzpsLmNvbW1lbnRCZWZvcmU9byksbi5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJmYmJihsLnNyY1Rva2VuPWUpLGx9ZnVuY3Rpb24gQXMobixlLHQscix7c3BhY2VCZWZvcmU6cyxjb21tZW50OmksYW5jaG9yOm8sdGFnOmEsZW5kOnV9LGwpe2xldCBmPXt0eXBlOlxcXCJzY2FsYXJcXFwiLG9mZnNldDpUdShlLHQsciksaW5kZW50Oi0xLHNvdXJjZTpcXFwiXFxcIn0sZD1ybyhuLGYsYSxsKTtyZXR1cm4gbyYmKGQuYW5jaG9yPW8uc291cmNlLnN1YnN0cmluZygxKSxkLmFuY2hvcj09PVxcXCJcXFwiJiZsKG8sXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFuY2hvciBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nXFxcIikpLHMmJihkLnNwYWNlQmVmb3JlPSEwKSxpJiYoZC5jb21tZW50PWksZC5yYW5nZVsyXT11KSxkfWZ1bmN0aW9uIHlmKHtvcHRpb25zOm59LHtvZmZzZXQ6ZSxzb3VyY2U6dCxlbmQ6cn0scyl7bGV0IGk9bmV3IEV0KHQuc3Vic3RyaW5nKDEpKTtpLnNvdXJjZT09PVxcXCJcXFwiJiZzKGUsXFxcIkJBRF9BTElBU1xcXCIsXFxcIkFsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmdcXFwiKSxpLnNvdXJjZS5lbmRzV2l0aChcXFwiOlxcXCIpJiZzKGUrdC5sZW5ndGgtMSxcXFwiQkFEX0FMSUFTXFxcIixcXFwiQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzXFxcIiwhMCk7bGV0IG89ZSt0Lmxlbmd0aCxhPXV0KHIsbyxuLnN0cmljdCxzKTtyZXR1cm4gaS5yYW5nZT1bZSxvLGEub2Zmc2V0XSxhLmNvbW1lbnQmJihpLmNvbW1lbnQ9YS5jb21tZW50KSxpfWZ1bmN0aW9uIFN1KG4sZSx7b2Zmc2V0OnQsc3RhcnQ6cix2YWx1ZTpzLGVuZDppfSxvKXtsZXQgYT1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczplfSxuKSx1PW5ldyBOdCh2b2lkIDAsYSksbD17YXRLZXk6ITEsYXRSb290OiEwLGRpcmVjdGl2ZXM6dS5kaXJlY3RpdmVzLG9wdGlvbnM6dS5vcHRpb25zLHNjaGVtYTp1LnNjaGVtYX0sZj1hdChyLHtpbmRpY2F0b3I6XFxcImRvYy1zdGFydFxcXCIsbmV4dDpzIT1udWxsP3M6aT09bnVsbD92b2lkIDA6aVswXSxvZmZzZXQ6dCxvbkVycm9yOm8scGFyZW50SW5kZW50OjAsc3RhcnRPbk5ld2xpbmU6ITB9KTtmLmZvdW5kJiYodS5kaXJlY3RpdmVzLmRvY1N0YXJ0PSEwLHMmJihzLnR5cGU9PT1cXFwiYmxvY2stbWFwXFxcInx8cy50eXBlPT09XFxcImJsb2NrLXNlcVxcXCIpJiYhZi5oYXNOZXdsaW5lJiZvKGYuZW5kLFxcXCJNSVNTSU5HX0NIQVJcXFwiLFxcXCJCbG9jayBjb2xsZWN0aW9uIGNhbm5vdCBzdGFydCBvbiBzYW1lIGxpbmUgd2l0aCBkaXJlY3RpdmVzLWVuZCBtYXJrZXJcXFwiKSksdS5jb250ZW50cz1zP3NvKGwscyxmLG8pOkFzKGwsZi5lbmQscixudWxsLGYsbyk7bGV0IGQ9dS5jb250ZW50cy5yYW5nZVsyXSxwPXV0KGksZCwhMSxvKTtyZXR1cm4gcC5jb21tZW50JiYodS5jb21tZW50PXAuY29tbWVudCksdS5yYW5nZT1bdCxkLHAub2Zmc2V0XSx1fWZ1bmN0aW9uIHhyKG4pe2lmKHR5cGVvZiBuPT1cXFwibnVtYmVyXFxcIilyZXR1cm5bbixuKzFdO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG4ubGVuZ3RoPT09Mj9uOltuWzBdLG5bMV1dO2xldHtvZmZzZXQ6ZSxzb3VyY2U6dH09bjtyZXR1cm5bZSxlKyh0eXBlb2YgdD09XFxcInN0cmluZ1xcXCI/dC5sZW5ndGg6MSldfWZ1bmN0aW9uIGt1KG4pe3ZhciBzO2xldCBlPVxcXCJcXFwiLHQ9ITEscj0hMTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoOysraSl7bGV0IG89bltpXTtzd2l0Y2gob1swXSl7Y2FzZVxcXCIjXFxcIjplKz0oZT09PVxcXCJcXFwiP1xcXCJcXFwiOnI/YFxcblxcbmA6YFxcbmApKyhvLnN1YnN0cmluZygxKXx8XFxcIiBcXFwiKSx0PSEwLHI9ITE7YnJlYWs7Y2FzZVxcXCIlXFxcIjooKHM9bltpKzFdKT09bnVsbD92b2lkIDA6c1swXSkhPT1cXFwiI1xcXCImJihpKz0xKSx0PSExO2JyZWFrO2RlZmF1bHQ6dHx8KHI9ITApLHQ9ITF9fXJldHVybntjb21tZW50OmUsYWZ0ZXJFbXB0eUxpbmU6cn19dmFyIElyPWNsYXNze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMuZG9jPW51bGwsdGhpcy5hdERpcmVjdGl2ZXM9ITEsdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sdGhpcy5vbkVycm9yPSh0LHIscyxpKT0+e2xldCBvPXhyKHQpO2k/dGhpcy53YXJuaW5ncy5wdXNoKG5ldyB2cihvLHIscykpOnRoaXMuZXJyb3JzLnB1c2gobmV3IFFlKG8scixzKSl9LHRoaXMuZGlyZWN0aXZlcz1uZXcgaXQoe3ZlcnNpb246ZS52ZXJzaW9ufHxcXFwiMS4yXFxcIn0pLHRoaXMub3B0aW9ucz1lfWRlY29yYXRlKGUsdCl7bGV0e2NvbW1lbnQ6cixhZnRlckVtcHR5TGluZTpzfT1rdSh0aGlzLnByZWx1ZGUpO2lmKHIpe2xldCBpPWUuY29udGVudHM7aWYodCllLmNvbW1lbnQ9ZS5jb21tZW50P2Ake2UuY29tbWVudH1cXG4ke3J9YDpyO2Vsc2UgaWYoc3x8ZS5kaXJlY3RpdmVzLmRvY1N0YXJ0fHwhaSllLmNvbW1lbnRCZWZvcmU9cjtlbHNlIGlmKFooaSkmJiFpLmZsb3cmJmkuaXRlbXMubGVuZ3RoPjApe2xldCBvPWkuaXRlbXNbMF07SChvKSYmKG89by5rZXkpO2xldCBhPW8uY29tbWVudEJlZm9yZTtvLmNvbW1lbnRCZWZvcmU9YT9gJHtyfVxcbiR7YX1gOnJ9ZWxzZXtsZXQgbz1pLmNvbW1lbnRCZWZvcmU7aS5jb21tZW50QmVmb3JlPW8/YCR7cn1cXG4ke299YDpyfX10PyhBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLmVycm9ycyx0aGlzLmVycm9ycyksQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS53YXJuaW5ncyx0aGlzLndhcm5pbmdzKSk6KGUuZXJyb3JzPXRoaXMuZXJyb3JzLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncyksdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W119c3RyZWFtSW5mbygpe3JldHVybntjb21tZW50Omt1KHRoaXMucHJlbHVkZSkuY29tbWVudCxkaXJlY3RpdmVzOnRoaXMuZGlyZWN0aXZlcyxlcnJvcnM6dGhpcy5lcnJvcnMsd2FybmluZ3M6dGhpcy53YXJuaW5nc319KmNvbXBvc2UoZSx0PSExLHI9LTEpe2ZvcihsZXQgcyBvZiBlKXlpZWxkKlModGhpcy5uZXh0KHMpKTt5aWVsZCpTKHRoaXMuZW5kKHQscikpfSpuZXh0KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2VcXFwiZGlyZWN0aXZlXFxcIjp0aGlzLmRpcmVjdGl2ZXMuYWRkKGUuc291cmNlLCh0LHIscyk9PntsZXQgaT14cihlKTtpWzBdKz10LHRoaXMub25FcnJvcihpLFxcXCJCQURfRElSRUNUSVZFXFxcIixyLHMpfSksdGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpLHRoaXMuYXREaXJlY3RpdmVzPSEwO2JyZWFrO2Nhc2VcXFwiZG9jdW1lbnRcXFwiOntsZXQgdD1TdSh0aGlzLm9wdGlvbnMsdGhpcy5kaXJlY3RpdmVzLGUsdGhpcy5vbkVycm9yKTt0aGlzLmF0RGlyZWN0aXZlcyYmIXQuZGlyZWN0aXZlcy5kb2NTdGFydCYmdGhpcy5vbkVycm9yKGUsXFxcIk1JU1NJTkdfQ0hBUlxcXCIsXFxcIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQvZG9jLXN0YXJ0IGluZGljYXRvciBsaW5lXFxcIiksdGhpcy5kZWNvcmF0ZSh0LCExKSx0aGlzLmRvYyYmKHlpZWxkIHRoaXMuZG9jKSx0aGlzLmRvYz10LHRoaXMuYXREaXJlY3RpdmVzPSExO2JyZWFrfWNhc2VcXFwiYnl0ZS1vcmRlci1tYXJrXFxcIjpjYXNlXFxcInNwYWNlXFxcIjpicmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6dGhpcy5wcmVsdWRlLnB1c2goZS5zb3VyY2UpO2JyZWFrO2Nhc2VcXFwiZXJyb3JcXFwiOntsZXQgdD1lLnNvdXJjZT9gJHtlLm1lc3NhZ2V9OiAke0pTT04uc3RyaW5naWZ5KGUuc291cmNlKX1gOmUubWVzc2FnZSxyPW5ldyBRZSh4cihlKSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsdCk7dGhpcy5hdERpcmVjdGl2ZXN8fCF0aGlzLmRvYz90aGlzLmVycm9ycy5wdXNoKHIpOnRoaXMuZG9jLmVycm9ycy5wdXNoKHIpO2JyZWFrfWNhc2VcXFwiZG9jLWVuZFxcXCI6e2lmKCF0aGlzLmRvYyl7bGV0IHI9XFxcIlVuZXhwZWN0ZWQgZG9jLWVuZCB3aXRob3V0IHByZWNlZGluZyBkb2N1bWVudFxcXCI7dGhpcy5lcnJvcnMucHVzaChuZXcgUWUoeHIoZSksXFxcIlVORVhQRUNURURfVE9LRU5cXFwiLHIpKTticmVha310aGlzLmRvYy5kaXJlY3RpdmVzLmRvY0VuZD0hMDtsZXQgdD11dChlLmVuZCxlLm9mZnNldCtlLnNvdXJjZS5sZW5ndGgsdGhpcy5kb2Mub3B0aW9ucy5zdHJpY3QsdGhpcy5vbkVycm9yKTtpZih0aGlzLmRlY29yYXRlKHRoaXMuZG9jLCEwKSx0LmNvbW1lbnQpe2xldCByPXRoaXMuZG9jLmNvbW1lbnQ7dGhpcy5kb2MuY29tbWVudD1yP2Ake3J9XFxuJHt0LmNvbW1lbnR9YDp0LmNvbW1lbnR9dGhpcy5kb2MucmFuZ2VbMl09dC5vZmZzZXQ7YnJlYWt9ZGVmYXVsdDp0aGlzLmVycm9ycy5wdXNoKG5ldyBRZSh4cihlKSxcXFwiVU5FWFBFQ1RFRF9UT0tFTlxcXCIsYFVuc3VwcG9ydGVkIHRva2VuICR7ZS50eXBlfWApKX19KmVuZChlPSExLHQ9LTEpe2lmKHRoaXMuZG9jKXRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHlpZWxkIHRoaXMuZG9jLHRoaXMuZG9jPW51bGw7ZWxzZSBpZihlKXtsZXQgcj1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXN9LHRoaXMub3B0aW9ucykscz1uZXcgTnQodm9pZCAwLHIpO3RoaXMuYXREaXJlY3RpdmVzJiZ0aGlzLm9uRXJyb3IodCxcXFwiTUlTU0lOR19DSEFSXFxcIixcXFwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZCBpbmRpY2F0b3IgbGluZVxcXCIpLHMucmFuZ2U9WzAsdCx0XSx0aGlzLmRlY29yYXRlKHMsITEpLHlpZWxkIHN9fX07dmFyIGlvPVN5bWJvbChcXFwiYnJlYWsgdmlzaXRcXFwiKSxnZj1TeW1ib2woXFxcInNraXAgY2hpbGRyZW5cXFwiKSxDdT1TeW1ib2woXFxcInJlbW92ZSBpdGVtXFxcIik7ZnVuY3Rpb24gSnQobixlKXtcXFwidHlwZVxcXCJpbiBuJiZuLnR5cGU9PT1cXFwiZG9jdW1lbnRcXFwiJiYobj17c3RhcnQ6bi5zdGFydCx2YWx1ZTpuLnZhbHVlfSksdnUoT2JqZWN0LmZyZWV6ZShbXSksbixlKX1KdC5CUkVBSz1pbztKdC5TS0lQPWdmO0p0LlJFTU9WRT1DdTtKdC5pdGVtQXRQYXRoPShuLGUpPT57bGV0IHQ9bjtmb3IobGV0W3Isc11vZiBlKXtsZXQgaT10PT1udWxsP3ZvaWQgMDp0W3JdO2lmKGkmJlxcXCJpdGVtc1xcXCJpbiBpKXQ9aS5pdGVtc1tzXTtlbHNlIHJldHVybn1yZXR1cm4gdH07SnQucGFyZW50Q29sbGVjdGlvbj0obixlKT0+e2xldCB0PUp0Lml0ZW1BdFBhdGgobixlLnNsaWNlKDAsLTEpKSxyPWVbZS5sZW5ndGgtMV1bMF0scz10PT1udWxsP3ZvaWQgMDp0W3JdO2lmKHMmJlxcXCJpdGVtc1xcXCJpbiBzKXJldHVybiBzO3Rocm93IG5ldyBFcnJvcihcXFwiUGFyZW50IGNvbGxlY3Rpb24gbm90IGZvdW5kXFxcIil9O2Z1bmN0aW9uIHZ1KG4sZSx0KXtsZXQgcj10KGUsbik7aWYodHlwZW9mIHI9PVxcXCJzeW1ib2xcXFwiKXJldHVybiByO2ZvcihsZXQgcyBvZltcXFwia2V5XFxcIixcXFwidmFsdWVcXFwiXSl7bGV0IGk9ZVtzXTtpZihpJiZcXFwiaXRlbXNcXFwiaW4gaSl7Zm9yKGxldCBvPTA7bzxpLml0ZW1zLmxlbmd0aDsrK28pe2xldCBhPXZ1KE9iamVjdC5mcmVlemUobi5jb25jYXQoW1tzLG9dXSkpLGkuaXRlbXNbb10sdCk7aWYodHlwZW9mIGE9PVxcXCJudW1iZXJcXFwiKW89YS0xO2Vsc2V7aWYoYT09PWlvKXJldHVybiBpbzthPT09Q3UmJihpLml0ZW1zLnNwbGljZShvLDEpLG8tPTEpfX10eXBlb2Ygcj09XFxcImZ1bmN0aW9uXFxcIiYmcz09PVxcXCJrZXlcXFwiJiYocj1yKGUsbikpfX1yZXR1cm4gdHlwZW9mIHI9PVxcXCJmdW5jdGlvblxcXCI/cihlLG4pOnJ9dmFyIG9vPVxcXCJcXFxcdUZFRkZcXFwiLGFvPVxcXCJcXHUwMDAyXFxcIix1bz1cXFwiXFx1MDAxOFxcXCIsTXM9XFxcIlxcdTAwMWZcXFwiO2Z1bmN0aW9uIE91KG4pe3N3aXRjaChuKXtjYXNlIG9vOnJldHVyblxcXCJieXRlLW9yZGVyLW1hcmtcXFwiO2Nhc2UgYW86cmV0dXJuXFxcImRvYy1tb2RlXFxcIjtjYXNlIHVvOnJldHVyblxcXCJmbG93LWVycm9yLWVuZFxcXCI7Y2FzZSBNczpyZXR1cm5cXFwic2NhbGFyXFxcIjtjYXNlXFxcIi0tLVxcXCI6cmV0dXJuXFxcImRvYy1zdGFydFxcXCI7Y2FzZVxcXCIuLi5cXFwiOnJldHVyblxcXCJkb2MtZW5kXFxcIjtjYXNlXFxcIlxcXCI6Y2FzZWBcXG5gOmNhc2VgXFxcXHJcXG5gOnJldHVyblxcXCJuZXdsaW5lXFxcIjtjYXNlXFxcIi1cXFwiOnJldHVyblxcXCJzZXEtaXRlbS1pbmRcXFwiO2Nhc2VcXFwiP1xcXCI6cmV0dXJuXFxcImV4cGxpY2l0LWtleS1pbmRcXFwiO2Nhc2VcXFwiOlxcXCI6cmV0dXJuXFxcIm1hcC12YWx1ZS1pbmRcXFwiO2Nhc2VcXFwie1xcXCI6cmV0dXJuXFxcImZsb3ctbWFwLXN0YXJ0XFxcIjtjYXNlXFxcIn1cXFwiOnJldHVyblxcXCJmbG93LW1hcC1lbmRcXFwiO2Nhc2VcXFwiW1xcXCI6cmV0dXJuXFxcImZsb3ctc2VxLXN0YXJ0XFxcIjtjYXNlXFxcIl1cXFwiOnJldHVyblxcXCJmbG93LXNlcS1lbmRcXFwiO2Nhc2VcXFwiLFxcXCI6cmV0dXJuXFxcImNvbW1hXFxcIn1zd2l0Y2goblswXSl7Y2FzZVxcXCIgXFxcIjpjYXNlXFxcIlxcdFxcXCI6cmV0dXJuXFxcInNwYWNlXFxcIjtjYXNlXFxcIiNcXFwiOnJldHVyblxcXCJjb21tZW50XFxcIjtjYXNlXFxcIiVcXFwiOnJldHVyblxcXCJkaXJlY3RpdmUtbGluZVxcXCI7Y2FzZVxcXCIqXFxcIjpyZXR1cm5cXFwiYWxpYXNcXFwiO2Nhc2VcXFwiJlxcXCI6cmV0dXJuXFxcImFuY2hvclxcXCI7Y2FzZVxcXCIhXFxcIjpyZXR1cm5cXFwidGFnXFxcIjtjYXNlXFxcIidcXFwiOnJldHVyblxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI7Y2FzZSdcXFwiJzpyZXR1cm5cXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiO2Nhc2VcXFwifFxcXCI6Y2FzZVxcXCI+XFxcIjpyZXR1cm5cXFwiYmxvY2stc2NhbGFyLWhlYWRlclxcXCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWGUobil7c3dpdGNoKG4pe2Nhc2Ugdm9pZCAwOmNhc2VcXFwiIFxcXCI6Y2FzZWBcXG5gOmNhc2VcXFwiXFxcXHJcXFwiOmNhc2VcXFwiXFx0XFxcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX12YXIgeHU9bmV3IFNldChcXFwiMDEyMzQ1Njc4OUFCQ0RFRmFiY2RlZlxcXCIpLEZmPW5ldyBTZXQoXFxcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LSM7Lz86QCY9KyRfLiF+KicoKVxcXCIpLF9zPW5ldyBTZXQoXFxcIixbXXt9XFxcIiksRWY9bmV3IFNldChgICxbXXt9XFxuXFxcXHJcXHRgKSxsbz1uPT4hbnx8RWYuaGFzKG4pLExyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hdEVuZD0hMSx0aGlzLmJsb2NrU2NhbGFySW5kZW50PS0xLHRoaXMuYmxvY2tTY2FsYXJLZWVwPSExLHRoaXMuYnVmZmVyPVxcXCJcXFwiLHRoaXMuZmxvd0tleT0hMSx0aGlzLmZsb3dMZXZlbD0wLHRoaXMuaW5kZW50TmV4dD0wLHRoaXMuaW5kZW50VmFsdWU9MCx0aGlzLmxpbmVFbmRQb3M9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLnBvcz0wfSpsZXgoZSx0PSExKXt2YXIgcztpZihlKXtpZih0eXBlb2YgZSE9XFxcInN0cmluZ1xcXCIpdGhyb3cgVHlwZUVycm9yKFxcXCJzb3VyY2UgaXMgbm90IGEgc3RyaW5nXFxcIik7dGhpcy5idWZmZXI9dGhpcy5idWZmZXI/dGhpcy5idWZmZXIrZTplLHRoaXMubGluZUVuZFBvcz1udWxsfXRoaXMuYXRFbmQ9IXQ7bGV0IHI9KHM9dGhpcy5uZXh0KSE9bnVsbD9zOlxcXCJzdHJlYW1cXFwiO2Zvcig7ciYmKHR8fHRoaXMuaGFzQ2hhcnMoMSkpOylyPXlpZWxkKlModGhpcy5wYXJzZU5leHQocikpfWF0TGluZUVuZCgpe2xldCBlPXRoaXMucG9zLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0PT09XFxcIiBcXFwifHx0PT09XFxcIlxcdFxcXCI7KXQ9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4hdHx8dD09PVxcXCIjXFxcInx8dD09PWBcXG5gPyEwOnQ9PT1cXFwiXFxcXHJcXFwiP3RoaXMuYnVmZmVyW2UrMV09PT1gXFxuYDohMX1jaGFyQXQoZSl7cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zK2VdfWNvbnRpbnVlU2NhbGFyKGUpe2xldCB0PXRoaXMuYnVmZmVyW2VdO2lmKHRoaXMuaW5kZW50TmV4dD4wKXtsZXQgcj0wO2Zvcig7dD09PVxcXCIgXFxcIjspdD10aGlzLmJ1ZmZlclsrK3IrZV07aWYodD09PVxcXCJcXFxcclxcXCIpe2xldCBzPXRoaXMuYnVmZmVyW3IrZSsxXTtpZihzPT09YFxcbmB8fCFzJiYhdGhpcy5hdEVuZClyZXR1cm4gZStyKzF9cmV0dXJuIHQ9PT1gXFxuYHx8cj49dGhpcy5pbmRlbnROZXh0fHwhdCYmIXRoaXMuYXRFbmQ/ZStyOi0xfWlmKHQ9PT1cXFwiLVxcXCJ8fHQ9PT1cXFwiLlxcXCIpe2xldCByPXRoaXMuYnVmZmVyLnN1YnN0cihlLDMpO2lmKChyPT09XFxcIi0tLVxcXCJ8fHI9PT1cXFwiLi4uXFxcIikmJlhlKHRoaXMuYnVmZmVyW2UrM10pKXJldHVybi0xfXJldHVybiBlfWdldExpbmUoKXtsZXQgZT10aGlzLmxpbmVFbmRQb3M7cmV0dXJuKHR5cGVvZiBlIT1cXFwibnVtYmVyXFxcInx8ZSE9PS0xJiZlPHRoaXMucG9zKSYmKGU9dGhpcy5idWZmZXIuaW5kZXhPZihgXFxuYCx0aGlzLnBvcyksdGhpcy5saW5lRW5kUG9zPWUpLGU9PT0tMT90aGlzLmF0RW5kP3RoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyk6bnVsbDoodGhpcy5idWZmZXJbZS0xXT09PVxcXCJcXFxcclxcXCImJihlLT0xKSx0aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MsZSkpfWhhc0NoYXJzKGUpe3JldHVybiB0aGlzLnBvcytlPD10aGlzLmJ1ZmZlci5sZW5ndGh9c2V0TmV4dChlKXtyZXR1cm4gdGhpcy5idWZmZXI9dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKSx0aGlzLnBvcz0wLHRoaXMubGluZUVuZFBvcz1udWxsLHRoaXMubmV4dD1lLG51bGx9cGVlayhlKXtyZXR1cm4gdGhpcy5idWZmZXIuc3Vic3RyKHRoaXMucG9zLGUpfSpwYXJzZU5leHQoZSl7c3dpdGNoKGUpe2Nhc2VcXFwic3RyZWFtXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlU3RyZWFtKCkpO2Nhc2VcXFwibGluZS1zdGFydFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtjYXNlXFxcImJsb2NrLXN0YXJ0XFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlQmxvY2tTdGFydCgpKTtjYXNlXFxcImRvY1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZURvY3VtZW50KCkpO2Nhc2VcXFwiZmxvd1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUZsb3dDb2xsZWN0aW9uKCkpO2Nhc2VcXFwicXVvdGVkLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpKTtjYXNlXFxcImJsb2NrLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFyKCkpO2Nhc2VcXFwicGxhaW4tc2NhbGFyXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKSl9fSpwYXJzZVN0cmVhbSgpe2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcInN0cmVhbVxcXCIpO2lmKGVbMF09PT1vbyYmKHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLGU9ZS5zdWJzdHJpbmcoMSkpLGVbMF09PT1cXFwiJVxcXCIpe2xldCB0PWUubGVuZ3RoLHI9ZS5pbmRleE9mKFxcXCIjXFxcIik7Zm9yKDtyIT09LTE7KXtsZXQgaT1lW3ItMV07aWYoaT09PVxcXCIgXFxcInx8aT09PVxcXCJcXHRcXFwiKXt0PXItMTticmVha31lbHNlIHI9ZS5pbmRleE9mKFxcXCIjXFxcIixyKzEpfWZvcig7Oyl7bGV0IGk9ZVt0LTFdO2lmKGk9PT1cXFwiIFxcXCJ8fGk9PT1cXFwiXFx0XFxcIil0LT0xO2Vsc2UgYnJlYWt9bGV0IHM9KHlpZWxkKlModGhpcy5wdXNoQ291bnQodCkpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSk7cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcykpLHRoaXMucHVzaE5ld2xpbmUoKSxcXFwic3RyZWFtXFxcIn1pZih0aGlzLmF0TGluZUVuZCgpKXtsZXQgdD15aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpKSx5aWVsZCpTKHRoaXMucHVzaE5ld2xpbmUoKSksXFxcInN0cmVhbVxcXCJ9cmV0dXJuIHlpZWxkIGFvLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKX0qcGFyc2VMaW5lU3RhcnQoKXtsZXQgZT10aGlzLmNoYXJBdCgwKTtpZighZSYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwibGluZS1zdGFydFxcXCIpO2lmKGU9PT1cXFwiLVxcXCJ8fGU9PT1cXFwiLlxcXCIpe2lmKCF0aGlzLmF0RW5kJiYhdGhpcy5oYXNDaGFycyg0KSlyZXR1cm4gdGhpcy5zZXROZXh0KFxcXCJsaW5lLXN0YXJ0XFxcIik7bGV0IHQ9dGhpcy5wZWVrKDMpO2lmKCh0PT09XFxcIi0tLVxcXCJ8fHQ9PT1cXFwiLi4uXFxcIikmJlhlKHRoaXMuY2hhckF0KDMpKSlyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudCgzKSksdGhpcy5pbmRlbnRWYWx1ZT0wLHRoaXMuaW5kZW50TmV4dD0wLHQ9PT1cXFwiLS0tXFxcIj9cXFwiZG9jXFxcIjpcXFwic3RyZWFtXFxcIn1yZXR1cm4gdGhpcy5pbmRlbnRWYWx1ZT15aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMSkpLHRoaXMuaW5kZW50TmV4dD50aGlzLmluZGVudFZhbHVlJiYhWGUodGhpcy5jaGFyQXQoMSkpJiYodGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUpLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU3RhcnQoKSl9KnBhcnNlQmxvY2tTdGFydCgpe2xldFtlLHRdPXRoaXMucGVlaygyKTtpZighdCYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc3RhcnRcXFwiKTtpZigoZT09PVxcXCItXFxcInx8ZT09PVxcXCI/XFxcInx8ZT09PVxcXCI6XFxcIikmJlhlKHQpKXtsZXQgcj0oeWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSkpKyh5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpKTtyZXR1cm4gdGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSx0aGlzLmluZGVudFZhbHVlKz1yLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU3RhcnQoKSl9cmV0dXJuXFxcImRvY1xcXCJ9KnBhcnNlRG9jdW1lbnQoKXt5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpO2xldCBlPXRoaXMuZ2V0TGluZSgpO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcImRvY1xcXCIpO2xldCB0PXlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKTtzd2l0Y2goZVt0XSl7Y2FzZVxcXCIjXFxcIjp5aWVsZCpTKHRoaXMucHVzaENvdW50KGUubGVuZ3RoLXQpKTtjYXNlIHZvaWQgMDpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hOZXdsaW5lKCkpLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtjYXNlXFxcIntcXFwiOmNhc2VcXFwiW1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHRoaXMuZmxvd0tleT0hMSx0aGlzLmZsb3dMZXZlbD0xLFxcXCJmbG93XFxcIjtjYXNlXFxcIn1cXFwiOmNhc2VcXFwiXVxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLFxcXCJkb2NcXFwiO2Nhc2VcXFwiKlxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVW50aWwobG8pKSxcXFwiZG9jXFxcIjtjYXNlJ1xcXCInOmNhc2VcXFwiJ1xcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpKTtjYXNlXFxcInxcXFwiOmNhc2VcXFwiPlxcXCI6cmV0dXJuIHQrPXlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkpLHQrPXlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSkseWllbGQqUyh0aGlzLnB1c2hDb3VudChlLmxlbmd0aC10KSkseWllbGQqUyh0aGlzLnB1c2hOZXdsaW5lKCkpLHlpZWxkKlModGhpcy5wYXJzZUJsb2NrU2NhbGFyKCkpO2RlZmF1bHQ6cmV0dXJuIHlpZWxkKlModGhpcy5wYXJzZVBsYWluU2NhbGFyKCkpfX0qcGFyc2VGbG93Q29sbGVjdGlvbigpe2xldCBlLHQscj0tMTtkbyBlPXlpZWxkKlModGhpcy5wdXNoTmV3bGluZSgpKSxlPjA/KHQ9eWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITEpKSx0aGlzLmluZGVudFZhbHVlPXI9dCk6dD0wLHQrPXlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSk7d2hpbGUoZSt0PjApO2xldCBzPXRoaXMuZ2V0TGluZSgpO2lmKHM9PT1udWxsKXJldHVybiB0aGlzLnNldE5leHQoXFxcImZsb3dcXFwiKTtpZigociE9PS0xJiZyPHRoaXMuaW5kZW50TmV4dCYmc1swXSE9PVxcXCIjXFxcInx8cj09PTAmJihzLnN0YXJ0c1dpdGgoXFxcIi0tLVxcXCIpfHxzLnN0YXJ0c1dpdGgoXFxcIi4uLlxcXCIpKSYmWGUoc1szXSkpJiYhKHI9PT10aGlzLmluZGVudE5leHQtMSYmdGhpcy5mbG93TGV2ZWw9PT0xJiYoc1swXT09PVxcXCJdXFxcInx8c1swXT09PVxcXCJ9XFxcIikpKXJldHVybiB0aGlzLmZsb3dMZXZlbD0wLHlpZWxkIHVvLHlpZWxkKlModGhpcy5wYXJzZUxpbmVTdGFydCgpKTtsZXQgaT0wO2Zvcig7c1tpXT09PVxcXCIsXFxcIjspaSs9eWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSksaSs9eWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSx0aGlzLmZsb3dLZXk9ITE7c3dpdGNoKGkrPXlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSxzW2ldKXtjYXNlIHZvaWQgMDpyZXR1cm5cXFwiZmxvd1xcXCI7Y2FzZVxcXCIjXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudChzLmxlbmd0aC1pKSksXFxcImZsb3dcXFwiO2Nhc2VcXFwie1xcXCI6Y2FzZVxcXCJbXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSksdGhpcy5mbG93S2V5PSExLHRoaXMuZmxvd0xldmVsKz0xLFxcXCJmbG93XFxcIjtjYXNlXFxcIn1cXFwiOmNhc2VcXFwiXVxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHRoaXMuZmxvd0tleT0hMCx0aGlzLmZsb3dMZXZlbC09MSx0aGlzLmZsb3dMZXZlbD9cXFwiZmxvd1xcXCI6XFxcImRvY1xcXCI7Y2FzZVxcXCIqXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLnB1c2hVbnRpbChsbykpLFxcXCJmbG93XFxcIjtjYXNlJ1xcXCInOmNhc2VcXFwiJ1xcXCI6cmV0dXJuIHRoaXMuZmxvd0tleT0hMCx5aWVsZCpTKHRoaXMucGFyc2VRdW90ZWRTY2FsYXIoKSk7Y2FzZVxcXCI6XFxcIjp7bGV0IG89dGhpcy5jaGFyQXQoMSk7aWYodGhpcy5mbG93S2V5fHxYZShvKXx8bz09PVxcXCIsXFxcIilyZXR1cm4gdGhpcy5mbG93S2V5PSExLHlpZWxkKlModGhpcy5wdXNoQ291bnQoMSkpLHlpZWxkKlModGhpcy5wdXNoU3BhY2VzKCEwKSksXFxcImZsb3dcXFwifWRlZmF1bHQ6cmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCpTKHRoaXMucGFyc2VQbGFpblNjYWxhcigpKX19KnBhcnNlUXVvdGVkU2NhbGFyKCl7bGV0IGU9dGhpcy5jaGFyQXQoMCksdD10aGlzLmJ1ZmZlci5pbmRleE9mKGUsdGhpcy5wb3MrMSk7aWYoZT09PVxcXCInXFxcIilmb3IoO3QhPT0tMSYmdGhpcy5idWZmZXJbdCsxXT09PVxcXCInXFxcIjspdD10aGlzLmJ1ZmZlci5pbmRleE9mKFxcXCInXFxcIix0KzIpO2Vsc2UgZm9yKDt0IT09LTE7KXtsZXQgaT0wO2Zvcig7dGhpcy5idWZmZXJbdC0xLWldPT09XFxcIlxcXFxcXFxcXFxcIjspaSs9MTtpZihpJTI9PT0wKWJyZWFrO3Q9dGhpcy5idWZmZXIuaW5kZXhPZignXFxcIicsdCsxKX1sZXQgcj10aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCx0KSxzPXIuaW5kZXhPZihgXFxuYCx0aGlzLnBvcyk7aWYocyE9PS0xKXtmb3IoO3MhPT0tMTspe2xldCBpPXRoaXMuY29udGludWVTY2FsYXIocysxKTtpZihpPT09LTEpYnJlYWs7cz1yLmluZGV4T2YoYFxcbmAsaSl9cyE9PS0xJiYodD1zLShyW3MtMV09PT1cXFwiXFxcXHJcXFwiPzI6MSkpfWlmKHQ9PT0tMSl7aWYoIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwicXVvdGVkLXNjYWxhclxcXCIpO3Q9dGhpcy5idWZmZXIubGVuZ3RofXJldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgodCsxLCExKSksdGhpcy5mbG93TGV2ZWw/XFxcImZsb3dcXFwiOlxcXCJkb2NcXFwifSpwYXJzZUJsb2NrU2NhbGFySGVhZGVyKCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMTtsZXQgZT10aGlzLnBvcztmb3IoOzspe2xldCB0PXRoaXMuYnVmZmVyWysrZV07aWYodD09PVxcXCIrXFxcIil0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMDtlbHNlIGlmKHQ+XFxcIjBcXFwiJiZ0PD1cXFwiOVxcXCIpdGhpcy5ibG9ja1NjYWxhckluZGVudD1OdW1iZXIodCktMTtlbHNlIGlmKHQhPT1cXFwiLVxcXCIpYnJlYWt9cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVW50aWwodD0+WGUodCl8fHQ9PT1cXFwiI1xcXCIpKX0qcGFyc2VCbG9ja1NjYWxhcigpe2xldCBlPXRoaXMucG9zLTEsdD0wLHI7ZTpmb3IobGV0IGk9dGhpcy5wb3M7cj10aGlzLmJ1ZmZlcltpXTsrK2kpc3dpdGNoKHIpe2Nhc2VcXFwiIFxcXCI6dCs9MTticmVhaztjYXNlYFxcbmA6ZT1pLHQ9MDticmVhaztjYXNlXFxcIlxcXFxyXFxcIjp7bGV0IG89dGhpcy5idWZmZXJbaSsxXTtpZighbyYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc2NhbGFyXFxcIik7aWYobz09PWBcXG5gKWJyZWFrfWRlZmF1bHQ6YnJlYWsgZX1pZighciYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dChcXFwiYmxvY2stc2NhbGFyXFxcIik7aWYodD49dGhpcy5pbmRlbnROZXh0KXt0aGlzLmJsb2NrU2NhbGFySW5kZW50PT09LTE/dGhpcy5pbmRlbnROZXh0PXQ6dGhpcy5pbmRlbnROZXh0PXRoaXMuYmxvY2tTY2FsYXJJbmRlbnQrKHRoaXMuaW5kZW50TmV4dD09PTA/MTp0aGlzLmluZGVudE5leHQpO2Rve2xldCBpPXRoaXMuY29udGludWVTY2FsYXIoZSsxKTtpZihpPT09LTEpYnJlYWs7ZT10aGlzLmJ1ZmZlci5pbmRleE9mKGBcXG5gLGkpfXdoaWxlKGUhPT0tMSk7aWYoZT09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KFxcXCJibG9jay1zY2FsYXJcXFwiKTtlPXRoaXMuYnVmZmVyLmxlbmd0aH19bGV0IHM9ZSsxO2ZvcihyPXRoaXMuYnVmZmVyW3NdO3I9PT1cXFwiIFxcXCI7KXI9dGhpcy5idWZmZXJbKytzXTtpZihyPT09XFxcIlxcdFxcXCIpe2Zvcig7cj09PVxcXCJcXHRcXFwifHxyPT09XFxcIiBcXFwifHxyPT09XFxcIlxcXFxyXFxcInx8cj09PWBcXG5gOylyPXRoaXMuYnVmZmVyWysrc107ZT1zLTF9ZWxzZSBpZighdGhpcy5ibG9ja1NjYWxhcktlZXApZG97bGV0IGk9ZS0xLG89dGhpcy5idWZmZXJbaV07bz09PVxcXCJcXFxcclxcXCImJihvPXRoaXMuYnVmZmVyWy0taV0pO2xldCBhPWk7Zm9yKDtvPT09XFxcIiBcXFwiOylvPXRoaXMuYnVmZmVyWy0taV07aWYobz09PWBcXG5gJiZpPj10aGlzLnBvcyYmaSsxK3Q+YSllPWk7ZWxzZSBicmVha313aGlsZSghMCk7cmV0dXJuIHlpZWxkIE1zLHlpZWxkKlModGhpcy5wdXNoVG9JbmRleChlKzEsITApKSx5aWVsZCpTKHRoaXMucGFyc2VMaW5lU3RhcnQoKSl9KnBhcnNlUGxhaW5TY2FsYXIoKXtsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHQ9dGhpcy5wb3MtMSxyPXRoaXMucG9zLTEscztmb3IoO3M9dGhpcy5idWZmZXJbKytyXTspaWYocz09PVxcXCI6XFxcIil7bGV0IGk9dGhpcy5idWZmZXJbcisxXTtpZihYZShpKXx8ZSYmX3MuaGFzKGkpKWJyZWFrO3Q9cn1lbHNlIGlmKFhlKHMpKXtsZXQgaT10aGlzLmJ1ZmZlcltyKzFdO2lmKHM9PT1cXFwiXFxcXHJcXFwiJiYoaT09PWBcXG5gPyhyKz0xLHM9YFxcbmAsaT10aGlzLmJ1ZmZlcltyKzFdKTp0PXIpLGk9PT1cXFwiI1xcXCJ8fGUmJl9zLmhhcyhpKSlicmVhaztpZihzPT09YFxcbmApe2xldCBvPXRoaXMuY29udGludWVTY2FsYXIocisxKTtpZihvPT09LTEpYnJlYWs7cj1NYXRoLm1heChyLG8tMil9fWVsc2V7aWYoZSYmX3MuaGFzKHMpKWJyZWFrO3Q9cn1yZXR1cm4hcyYmIXRoaXMuYXRFbmQ/dGhpcy5zZXROZXh0KFxcXCJwbGFpbi1zY2FsYXJcXFwiKTooeWllbGQgTXMseWllbGQqUyh0aGlzLnB1c2hUb0luZGV4KHQrMSwhMCkpLGU/XFxcImZsb3dcXFwiOlxcXCJkb2NcXFwiKX0qcHVzaENvdW50KGUpe3JldHVybiBlPjA/KHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxlKSx0aGlzLnBvcys9ZSxlKTowfSpwdXNoVG9JbmRleChlLHQpe2xldCByPXRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLGUpO3JldHVybiByPyh5aWVsZCByLHRoaXMucG9zKz1yLmxlbmd0aCxyLmxlbmd0aCk6KHQmJih5aWVsZFxcXCJcXFwiKSwwKX0qcHVzaEluZGljYXRvcnMoKXtzd2l0Y2godGhpcy5jaGFyQXQoMCkpe2Nhc2VcXFwiIVxcXCI6cmV0dXJuKHlpZWxkKlModGhpcy5wdXNoVGFnKCkpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSkrKHlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSk7Y2FzZVxcXCImXFxcIjpyZXR1cm4oeWllbGQqUyh0aGlzLnB1c2hVbnRpbChsbykpKSsoeWllbGQqUyh0aGlzLnB1c2hTcGFjZXMoITApKSkrKHlpZWxkKlModGhpcy5wdXNoSW5kaWNhdG9ycygpKSk7Y2FzZVxcXCItXFxcIjpjYXNlXFxcIj9cXFwiOmNhc2VcXFwiOlxcXCI6e2xldCBlPXRoaXMuZmxvd0xldmVsPjAsdD10aGlzLmNoYXJBdCgxKTtpZihYZSh0KXx8ZSYmX3MuaGFzKHQpKXJldHVybiBlP3RoaXMuZmxvd0tleSYmKHRoaXMuZmxvd0tleT0hMSk6dGhpcy5pbmRlbnROZXh0PXRoaXMuaW5kZW50VmFsdWUrMSwoeWllbGQqUyh0aGlzLnB1c2hDb3VudCgxKSkpKyh5aWVsZCpTKHRoaXMucHVzaFNwYWNlcyghMCkpKSsoeWllbGQqUyh0aGlzLnB1c2hJbmRpY2F0b3JzKCkpKX19cmV0dXJuIDB9KnB1c2hUYWcoKXtpZih0aGlzLmNoYXJBdCgxKT09PVxcXCI8XFxcIil7bGV0IGU9dGhpcy5wb3MrMix0PXRoaXMuYnVmZmVyW2VdO2Zvcig7IVhlKHQpJiZ0IT09XFxcIj5cXFwiOyl0PXRoaXMuYnVmZmVyWysrZV07cmV0dXJuIHlpZWxkKlModGhpcy5wdXNoVG9JbmRleCh0PT09XFxcIj5cXFwiP2UrMTplLCExKSl9ZWxzZXtsZXQgZT10aGlzLnBvcysxLHQ9dGhpcy5idWZmZXJbZV07Zm9yKDt0OylpZihGZi5oYXModCkpdD10aGlzLmJ1ZmZlclsrK2VdO2Vsc2UgaWYodD09PVxcXCIlXFxcIiYmeHUuaGFzKHRoaXMuYnVmZmVyW2UrMV0pJiZ4dS5oYXModGhpcy5idWZmZXJbZSsyXSkpdD10aGlzLmJ1ZmZlcltlKz0zXTtlbHNlIGJyZWFrO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgoZSwhMSkpfX0qcHVzaE5ld2xpbmUoKXtsZXQgZT10aGlzLmJ1ZmZlclt0aGlzLnBvc107cmV0dXJuIGU9PT1gXFxuYD95aWVsZCpTKHRoaXMucHVzaENvdW50KDEpKTplPT09XFxcIlxcXFxyXFxcIiYmdGhpcy5jaGFyQXQoMSk9PT1gXFxuYD95aWVsZCpTKHRoaXMucHVzaENvdW50KDIpKTowfSpwdXNoU3BhY2VzKGUpe2xldCB0PXRoaXMucG9zLTEscjtkbyByPXRoaXMuYnVmZmVyWysrdF07d2hpbGUocj09PVxcXCIgXFxcInx8ZSYmcj09PVxcXCJcXHRcXFwiKTtsZXQgcz10LXRoaXMucG9zO3JldHVybiBzPjAmJih5aWVsZCB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MscyksdGhpcy5wb3M9dCksc30qcHVzaFVudGlsKGUpe2xldCB0PXRoaXMucG9zLHI9dGhpcy5idWZmZXJbdF07Zm9yKDshZShyKTspcj10aGlzLmJ1ZmZlclsrK3RdO3JldHVybiB5aWVsZCpTKHRoaXMucHVzaFRvSW5kZXgodCwhMSkpfX07dmFyIE5yPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5saW5lU3RhcnRzPVtdLHRoaXMuYWRkTmV3TGluZT1lPT50aGlzLmxpbmVTdGFydHMucHVzaChlKSx0aGlzLmxpbmVQb3M9ZT0+e2xldCB0PTAscj10aGlzLmxpbmVTdGFydHMubGVuZ3RoO2Zvcig7dDxyOyl7bGV0IGk9dCtyPj4xO3RoaXMubGluZVN0YXJ0c1tpXTxlP3Q9aSsxOnI9aX1pZih0aGlzLmxpbmVTdGFydHNbdF09PT1lKXJldHVybntsaW5lOnQrMSxjb2w6MX07aWYodD09PTApcmV0dXJue2xpbmU6MCxjb2w6ZX07bGV0IHM9dGhpcy5saW5lU3RhcnRzW3QtMV07cmV0dXJue2xpbmU6dCxjb2w6ZS1zKzF9fX19O2Z1bmN0aW9uIHp0KG4sZSl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDsrK3QpaWYoblt0XS50eXBlPT09ZSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBJdShuKXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoOysrZSlzd2l0Y2gobltlXS50eXBlKXtjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gZX1yZXR1cm4tMX1mdW5jdGlvbiBOdShuKXtzd2l0Y2gobj09bnVsbD92b2lkIDA6bi50eXBlKXtjYXNlXFxcImFsaWFzXFxcIjpjYXNlXFxcInNjYWxhclxcXCI6Y2FzZVxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJkb3VibGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEJzKG4pe3ZhciBlO3N3aXRjaChuLnR5cGUpe2Nhc2VcXFwiZG9jdW1lbnRcXFwiOnJldHVybiBuLnN0YXJ0O2Nhc2VcXFwiYmxvY2stbWFwXFxcIjp7bGV0IHQ9bi5pdGVtc1tuLml0ZW1zLmxlbmd0aC0xXTtyZXR1cm4oZT10LnNlcCkhPW51bGw/ZTp0LnN0YXJ0fWNhc2VcXFwiYmxvY2stc2VxXFxcIjpyZXR1cm4gbi5pdGVtc1tuLml0ZW1zLmxlbmd0aC0xXS5zdGFydDtkZWZhdWx0OnJldHVybltdfX1mdW5jdGlvbiBObihuKXt2YXIgdDtpZihuLmxlbmd0aD09PTApcmV0dXJuW107bGV0IGU9bi5sZW5ndGg7ZTpmb3IoOy0tZT49MDspc3dpdGNoKG5bZV0udHlwZSl7Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOmNhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6Y2FzZVxcXCJtYXAtdmFsdWUtaW5kXFxcIjpjYXNlXFxcInNlcS1pdGVtLWluZFxcXCI6Y2FzZVxcXCJuZXdsaW5lXFxcIjpicmVhayBlfWZvcig7KCh0PW5bKytlXSk9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cXFwic3BhY2VcXFwiOyk7cmV0dXJuIG4uc3BsaWNlKGUsbi5sZW5ndGgpfWZ1bmN0aW9uIEx1KG4pe2lmKG4uc3RhcnQudHlwZT09PVxcXCJmbG93LXNlcS1zdGFydFxcXCIpZm9yKGxldCBlIG9mIG4uaXRlbXMpZS5zZXAmJiFlLnZhbHVlJiYhenQoZS5zdGFydCxcXFwiZXhwbGljaXQta2V5LWluZFxcXCIpJiYhenQoZS5zZXAsXFxcIm1hcC12YWx1ZS1pbmRcXFwiKSYmKGUua2V5JiYoZS52YWx1ZT1lLmtleSksZGVsZXRlIGUua2V5LE51KGUudmFsdWUpP2UudmFsdWUuZW5kP0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGUudmFsdWUuZW5kLGUuc2VwKTplLnZhbHVlLmVuZD1lLnNlcDpBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLnN0YXJ0LGUuc2VwKSxkZWxldGUgZS5zZXApfXZhciBBcj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmF0U2NhbGFyPSExLHRoaXMuaW5kZW50PTAsdGhpcy5vZmZzZXQ9MCx0aGlzLm9uS2V5TGluZT0hMSx0aGlzLnN0YWNrPVtdLHRoaXMuc291cmNlPVxcXCJcXFwiLHRoaXMudHlwZT1cXFwiXFxcIix0aGlzLmxleGVyPW5ldyBMcix0aGlzLm9uTmV3TGluZT1lfSpwYXJzZShlLHQ9ITEpe3RoaXMub25OZXdMaW5lJiZ0aGlzLm9mZnNldD09PTAmJnRoaXMub25OZXdMaW5lKDApO2ZvcihsZXQgciBvZiB0aGlzLmxleGVyLmxleChlLHQpKXlpZWxkKlModGhpcy5uZXh0KHIpKTt0fHwoeWllbGQqUyh0aGlzLmVuZCgpKSl9Km5leHQoZSl7aWYodGhpcy5zb3VyY2U9ZSx0aGlzLmF0U2NhbGFyKXt0aGlzLmF0U2NhbGFyPSExLHlpZWxkKlModGhpcy5zdGVwKCkpLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aDtyZXR1cm59bGV0IHQ9T3UoZSk7aWYodClpZih0PT09XFxcInNjYWxhclxcXCIpdGhpcy5hdE5ld0xpbmU9ITEsdGhpcy5hdFNjYWxhcj0hMCx0aGlzLnR5cGU9XFxcInNjYWxhclxcXCI7ZWxzZXtzd2l0Y2godGhpcy50eXBlPXQseWllbGQqUyh0aGlzLnN0ZXAoKSksdCl7Y2FzZVxcXCJuZXdsaW5lXFxcIjp0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lJiZ0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCtlLmxlbmd0aCk7YnJlYWs7Y2FzZVxcXCJzcGFjZVxcXCI6dGhpcy5hdE5ld0xpbmUmJmVbMF09PT1cXFwiIFxcXCImJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6Y2FzZVxcXCJtYXAtdmFsdWUtaW5kXFxcIjpjYXNlXFxcInNlcS1pdGVtLWluZFxcXCI6dGhpcy5hdE5ld0xpbmUmJih0aGlzLmluZGVudCs9ZS5sZW5ndGgpO2JyZWFrO2Nhc2VcXFwiZG9jLW1vZGVcXFwiOmNhc2VcXFwiZmxvdy1lcnJvci1lbmRcXFwiOnJldHVybjtkZWZhdWx0OnRoaXMuYXROZXdMaW5lPSExfXRoaXMub2Zmc2V0Kz1lLmxlbmd0aH1lbHNle2xldCByPWBOb3QgYSBZQU1MIHRva2VuOiAke2V9YDt5aWVsZCpTKHRoaXMucG9wKHt0eXBlOlxcXCJlcnJvclxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6cixzb3VyY2U6ZX0pKSx0aGlzLm9mZnNldCs9ZS5sZW5ndGh9fSplbmQoKXtmb3IoO3RoaXMuc3RhY2subGVuZ3RoPjA7KXlpZWxkKlModGhpcy5wb3AoKSl9Z2V0IHNvdXJjZVRva2VuKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc291cmNlOnRoaXMuc291cmNlfX0qc3RlcCgpe2xldCBlPXRoaXMucGVlaygxKTtpZih0aGlzLnR5cGU9PT1cXFwiZG9jLWVuZFxcXCImJighZXx8ZS50eXBlIT09XFxcImRvYy1lbmRcXFwiKSl7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCpTKHRoaXMucG9wKCkpO3RoaXMuc3RhY2sucHVzaCh7dHlwZTpcXFwiZG9jLWVuZFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX0pO3JldHVybn1pZighZSlyZXR1cm4geWllbGQqUyh0aGlzLnN0cmVhbSgpKTtzd2l0Y2goZS50eXBlKXtjYXNlXFxcImRvY3VtZW50XFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLmRvY3VtZW50KGUpKTtjYXNlXFxcImFsaWFzXFxcIjpjYXNlXFxcInNjYWxhclxcXCI6Y2FzZVxcXCJzaW5nbGUtcXVvdGVkLXNjYWxhclxcXCI6Y2FzZVxcXCJkb3VibGUtcXVvdGVkLXNjYWxhclxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5zY2FsYXIoZSkpO2Nhc2VcXFwiYmxvY2stc2NhbGFyXFxcIjpyZXR1cm4geWllbGQqUyh0aGlzLmJsb2NrU2NhbGFyKGUpKTtjYXNlXFxcImJsb2NrLW1hcFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5ibG9ja01hcChlKSk7Y2FzZVxcXCJibG9jay1zZXFcXFwiOnJldHVybiB5aWVsZCpTKHRoaXMuYmxvY2tTZXF1ZW5jZShlKSk7Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOnJldHVybiB5aWVsZCpTKHRoaXMuZmxvd0NvbGxlY3Rpb24oZSkpO2Nhc2VcXFwiZG9jLWVuZFxcXCI6cmV0dXJuIHlpZWxkKlModGhpcy5kb2N1bWVudEVuZChlKSl9eWllbGQqUyh0aGlzLnBvcCgpKX1wZWVrKGUpe3JldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWVdfSpwb3AoZSl7bGV0IHQ9ZSE9bnVsbD9lOnRoaXMuc3RhY2sucG9wKCk7aWYoIXQpeWllbGR7dHlwZTpcXFwiZXJyb3JcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxzb3VyY2U6XFxcIlxcXCIsbWVzc2FnZTpcXFwiVHJpZWQgdG8gcG9wIGFuIGVtcHR5IHN0YWNrXFxcIn07ZWxzZSBpZih0aGlzLnN0YWNrLmxlbmd0aD09PTApeWllbGQgdDtlbHNle2xldCByPXRoaXMucGVlaygxKTtzd2l0Y2godC50eXBlPT09XFxcImJsb2NrLXNjYWxhclxcXCI/dC5pbmRlbnQ9XFxcImluZGVudFxcXCJpbiByP3IuaW5kZW50OjA6dC50eXBlPT09XFxcImZsb3ctY29sbGVjdGlvblxcXCImJnIudHlwZT09PVxcXCJkb2N1bWVudFxcXCImJih0LmluZGVudD0wKSx0LnR5cGU9PT1cXFwiZmxvdy1jb2xsZWN0aW9uXFxcIiYmTHUodCksci50eXBlKXtjYXNlXFxcImRvY3VtZW50XFxcIjpyLnZhbHVlPXQ7YnJlYWs7Y2FzZVxcXCJibG9jay1zY2FsYXJcXFwiOnIucHJvcHMucHVzaCh0KTticmVhaztjYXNlXFxcImJsb2NrLW1hcFxcXCI6e2xldCBzPXIuaXRlbXNbci5pdGVtcy5sZW5ndGgtMV07aWYocy52YWx1ZSl7ci5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6dCxzZXA6W119KSx0aGlzLm9uS2V5TGluZT0hMDtyZXR1cm59ZWxzZSBpZihzLnNlcClzLnZhbHVlPXQ7ZWxzZXtPYmplY3QuYXNzaWduKHMse2tleTp0LHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSFzLmV4cGxpY2l0S2V5O3JldHVybn1icmVha31jYXNlXFxcImJsb2NrLXNlcVxcXCI6e2xldCBzPXIuaXRlbXNbci5pdGVtcy5sZW5ndGgtMV07cy52YWx1ZT9yLml0ZW1zLnB1c2goe3N0YXJ0OltdLHZhbHVlOnR9KTpzLnZhbHVlPXQ7YnJlYWt9Y2FzZVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiOntsZXQgcz1yLml0ZW1zW3IuaXRlbXMubGVuZ3RoLTFdOyFzfHxzLnZhbHVlP3IuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5OnQsc2VwOltdfSk6cy5zZXA/cy52YWx1ZT10Ok9iamVjdC5hc3NpZ24ocyx7a2V5OnQsc2VwOltdfSk7cmV0dXJufWRlZmF1bHQ6eWllbGQqUyh0aGlzLnBvcCgpKSx5aWVsZCpTKHRoaXMucG9wKHQpKX1pZigoci50eXBlPT09XFxcImRvY3VtZW50XFxcInx8ci50eXBlPT09XFxcImJsb2NrLW1hcFxcXCJ8fHIudHlwZT09PVxcXCJibG9jay1zZXFcXFwiKSYmKHQudHlwZT09PVxcXCJibG9jay1tYXBcXFwifHx0LnR5cGU9PT1cXFwiYmxvY2stc2VxXFxcIikpe2xldCBzPXQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV07cyYmIXMuc2VwJiYhcy52YWx1ZSYmcy5zdGFydC5sZW5ndGg+MCYmSXUocy5zdGFydCk9PT0tMSYmKHQuaW5kZW50PT09MHx8cy5zdGFydC5ldmVyeShpPT5pLnR5cGUhPT1cXFwiY29tbWVudFxcXCJ8fGkuaW5kZW50PHQuaW5kZW50KSkmJihyLnR5cGU9PT1cXFwiZG9jdW1lbnRcXFwiP3IuZW5kPXMuc3RhcnQ6ci5pdGVtcy5wdXNoKHtzdGFydDpzLnN0YXJ0fSksdC5pdGVtcy5zcGxpY2UoLTEsMSkpfX19KnN0cmVhbSgpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcXFwiZGlyZWN0aXZlLWxpbmVcXFwiOnlpZWxke3R5cGU6XFxcImRpcmVjdGl2ZVxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX07cmV0dXJuO2Nhc2VcXFwiYnl0ZS1vcmRlci1tYXJrXFxcIjpjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmNhc2VcXFwibmV3bGluZVxcXCI6eWllbGQgdGhpcy5zb3VyY2VUb2tlbjtyZXR1cm47Y2FzZVxcXCJkb2MtbW9kZVxcXCI6Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOntsZXQgZT17dHlwZTpcXFwiZG9jdW1lbnRcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxzdGFydDpbXX07dGhpcy50eXBlPT09XFxcImRvYy1zdGFydFxcXCImJmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKSx0aGlzLnN0YWNrLnB1c2goZSk7cmV0dXJufX15aWVsZHt0eXBlOlxcXCJlcnJvclxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgc3RyZWFtYCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpkb2N1bWVudChlKXtpZihlLnZhbHVlKXJldHVybiB5aWVsZCpTKHRoaXMubGluZUVuZChlKSk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOntJdShlLnN0YXJ0KSE9PS0xPyh5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpKTplLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWNhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59bGV0IHQ9dGhpcy5zdGFydEJsb2NrVmFsdWUoZSk7dD90aGlzLnN0YWNrLnB1c2godCk6eWllbGR7dHlwZTpcXFwiZXJyb3JcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxtZXNzYWdlOmBVbmV4cGVjdGVkICR7dGhpcy50eXBlfSB0b2tlbiBpbiBZQU1MIGRvY3VtZW50YCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpzY2FsYXIoZSl7aWYodGhpcy50eXBlPT09XFxcIm1hcC12YWx1ZS1pbmRcXFwiKXtsZXQgdD1Ccyh0aGlzLnBlZWsoMikpLHI9Tm4odCkscztlLmVuZD8ocz1lLmVuZCxzLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZGVsZXRlIGUuZW5kKTpzPVt0aGlzLnNvdXJjZVRva2VuXTtsZXQgaT17dHlwZTpcXFwiYmxvY2stbWFwXFxcIixvZmZzZXQ6ZS5vZmZzZXQsaW5kZW50OmUuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6cixrZXk6ZSxzZXA6c31dfTt0aGlzLm9uS2V5TGluZT0hMCx0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdPWl9ZWxzZSB5aWVsZCpTKHRoaXMubGluZUVuZChlKSl9KmJsb2NrU2NhbGFyKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcXFwic3BhY2VcXFwiOmNhc2VcXFwiY29tbWVudFxcXCI6Y2FzZVxcXCJuZXdsaW5lXFxcIjplLnByb3BzLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwic2NhbGFyXFxcIjppZihlLnNvdXJjZT10aGlzLnNvdXJjZSx0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmluZGVudD0wLHRoaXMub25OZXdMaW5lKXtsZXQgdD10aGlzLnNvdXJjZS5pbmRleE9mKGBcXG5gKSsxO2Zvcig7dCE9PTA7KXRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K3QpLHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgXFxuYCx0KSsxfXlpZWxkKlModGhpcy5wb3AoKSk7YnJlYWs7ZGVmYXVsdDp5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfX0qYmxvY2tNYXAoZSl7dmFyIHI7bGV0IHQ9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0xXTtzd2l0Y2godGhpcy50eXBlKXtjYXNlXFxcIm5ld2xpbmVcXFwiOmlmKHRoaXMub25LZXlMaW5lPSExLHQudmFsdWUpe2xldCBzPVxcXCJlbmRcXFwiaW4gdC52YWx1ZT90LnZhbHVlLmVuZDp2b2lkIDAsaT1BcnJheS5pc0FycmF5KHMpP3Nbcy5sZW5ndGgtMV06dm9pZCAwOyhpPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09XFxcImNvbW1lbnRcXFwiP3M9PW51bGx8fHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2UgdC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwic3BhY2VcXFwiOmNhc2VcXFwiY29tbWVudFxcXCI6aWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYodC5zZXApdC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQodC5zdGFydCxlLmluZGVudCkpe2xldCBzPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0saT0ocj1zPT1udWxsP3ZvaWQgMDpzLnZhbHVlKT09bnVsbD92b2lkIDA6ci5lbmQ7aWYoQXJyYXkuaXNBcnJheShpKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaSx0LnN0YXJ0KSxpLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm59aWYodGhpcy5pbmRlbnQ+PWUuaW5kZW50KXtsZXQgcz0hdGhpcy5vbktleUxpbmUmJnRoaXMuaW5kZW50PT09ZS5pbmRlbnQsaT1zJiYodC5zZXB8fHQuZXhwbGljaXRLZXkpJiZ0aGlzLnR5cGUhPT1cXFwic2VxLWl0ZW0taW5kXFxcIixvPVtdO2lmKGkmJnQuc2VwJiYhdC52YWx1ZSl7bGV0IGE9W107Zm9yKGxldCB1PTA7dTx0LnNlcC5sZW5ndGg7Kyt1KXtsZXQgbD10LnNlcFt1XTtzd2l0Y2gobC50eXBlKXtjYXNlXFxcIm5ld2xpbmVcXFwiOmEucHVzaCh1KTticmVhaztjYXNlXFxcInNwYWNlXFxcIjpicmVhaztjYXNlXFxcImNvbW1lbnRcXFwiOmwuaW5kZW50PmUuaW5kZW50JiYoYS5sZW5ndGg9MCk7YnJlYWs7ZGVmYXVsdDphLmxlbmd0aD0wfX1hLmxlbmd0aD49MiYmKG89dC5zZXAuc3BsaWNlKGFbMV0pKX1zd2l0Y2godGhpcy50eXBlKXtjYXNlXFxcImFuY2hvclxcXCI6Y2FzZVxcXCJ0YWdcXFwiOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om99KSx0aGlzLm9uS2V5TGluZT0hMCk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwiZXhwbGljaXQta2V5LWluZFxcXCI6IXQuc2VwJiYhdC5leHBsaWNpdEtleT8odC5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHQuZXhwbGljaXRLZXk9ITApOml8fHQudmFsdWU/KG8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnB1c2goe3N0YXJ0Om8sZXhwbGljaXRLZXk6ITB9KSk6dGhpcy5zdGFjay5wdXNoKHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl0sZXhwbGljaXRLZXk6ITB9XX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybjtjYXNlXFxcIm1hcC12YWx1ZS1pbmRcXFwiOmlmKHQuZXhwbGljaXRLZXkpaWYodC5zZXApaWYodC52YWx1ZSllLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNlIGlmKHp0KHQuc2VwLFxcXCJtYXAtdmFsdWUtaW5kXFxcIikpdGhpcy5zdGFjay5wdXNoKHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpvLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pO2Vsc2UgaWYoTnUodC5rZXkpJiYhenQodC5zZXAsXFxcIm5ld2xpbmVcXFwiKSl7bGV0IGE9Tm4odC5zdGFydCksdT10LmtleSxsPXQuc2VwO2wucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgdC5rZXksZGVsZXRlIHQuc2VwLHRoaXMuc3RhY2sucHVzaCh7dHlwZTpcXFwiYmxvY2stbWFwXFxcIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6YSxrZXk6dSxzZXA6bH1dfSl9ZWxzZSBvLmxlbmd0aD4wP3Quc2VwPXQuc2VwLmNvbmNhdChvLHRoaXMuc291cmNlVG9rZW4pOnQuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7ZWxzZSBpZih6dCh0LnN0YXJ0LFxcXCJuZXdsaW5lXFxcIikpT2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtsZXQgYT1Obih0LnN0YXJ0KTt0aGlzLnN0YWNrLnB1c2goe3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSl9ZWxzZSB0LnNlcD90LnZhbHVlfHxpP2UuaXRlbXMucHVzaCh7c3RhcnQ6byxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6enQodC5zZXAsXFxcIm1hcC12YWx1ZS1pbmRcXFwiKT90aGlzLnN0YWNrLnB1c2goe3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pOnQuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbih0LHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7dGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2VcXFwiYWxpYXNcXFwiOmNhc2VcXFwic2NhbGFyXFxcIjpjYXNlXFxcInNpbmdsZS1xdW90ZWQtc2NhbGFyXFxcIjpjYXNlXFxcImRvdWJsZS1xdW90ZWQtc2NhbGFyXFxcIjp7bGV0IGE9dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7aXx8dC52YWx1ZT8oZS5pdGVtcy5wdXNoKHtzdGFydDpvLGtleTphLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTp0LnNlcD90aGlzLnN0YWNrLnB1c2goYSk6KE9iamVjdC5hc3NpZ24odCx7a2V5OmEsc2VwOltdfSksdGhpcy5vbktleUxpbmU9ITApO3JldHVybn1kZWZhdWx0OntsZXQgYT10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihhKXtzJiZhLnR5cGUhPT1cXFwiYmxvY2stc2VxXFxcIiYmZS5pdGVtcy5wdXNoKHtzdGFydDpvfSksdGhpcy5zdGFjay5wdXNoKGEpO3JldHVybn19fX15aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfSpibG9ja1NlcXVlbmNlKGUpe3ZhciByO2xldCB0PWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJuZXdsaW5lXFxcIjppZih0LnZhbHVlKXtsZXQgcz1cXFwiZW5kXFxcImluIHQudmFsdWU/dC52YWx1ZS5lbmQ6dm9pZCAwLGk9QXJyYXkuaXNBcnJheShzKT9zW3MubGVuZ3RoLTFdOnZvaWQgMDsoaT09bnVsbD92b2lkIDA6aS50eXBlKT09PVxcXCJjb21tZW50XFxcIj9zPT1udWxsfHxzLnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KX1lbHNlIHQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjppZih0LnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtpZih0aGlzLmF0SW5kZW50ZWRDb21tZW50KHQuc3RhcnQsZS5pbmRlbnQpKXtsZXQgcz1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTJdLGk9KHI9cz09bnVsbD92b2lkIDA6cy52YWx1ZSk9PW51bGw/dm9pZCAwOnIuZW5kO2lmKEFycmF5LmlzQXJyYXkoaSkpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGksdC5zdGFydCksaS5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucG9wKCk7cmV0dXJufX10LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbil9cmV0dXJuO2Nhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6aWYodC52YWx1ZXx8dGhpcy5pbmRlbnQ8PWUuaW5kZW50KWJyZWFrO3Quc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJzZXEtaXRlbS1pbmRcXFwiOmlmKHRoaXMuaW5kZW50IT09ZS5pbmRlbnQpYnJlYWs7dC52YWx1ZXx8enQodC5zdGFydCxcXFwic2VxLWl0ZW0taW5kXFxcIik/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWlmKHRoaXMuaW5kZW50PmUuaW5kZW50KXtsZXQgcz10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihzKXt0aGlzLnN0YWNrLnB1c2gocyk7cmV0dXJufX15aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpfSpmbG93Q29sbGVjdGlvbihlKXtsZXQgdD1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO2lmKHRoaXMudHlwZT09PVxcXCJmbG93LWVycm9yLWVuZFxcXCIpe2xldCByO2RvIHlpZWxkKlModGhpcy5wb3AoKSkscj10aGlzLnBlZWsoMSk7d2hpbGUociYmci50eXBlPT09XFxcImZsb3ctY29sbGVjdGlvblxcXCIpfWVsc2UgaWYoZS5lbmQubGVuZ3RoPT09MCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJleHBsaWNpdC1rZXktaW5kXFxcIjohdHx8dC5zZXA/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2VcXFwibWFwLXZhbHVlLWluZFxcXCI6IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6dC5zZXA/dC5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTpPYmplY3QuYXNzaWduKHQse2tleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtyZXR1cm47Y2FzZVxcXCJzcGFjZVxcXCI6Y2FzZVxcXCJjb21tZW50XFxcIjpjYXNlXFxcIm5ld2xpbmVcXFwiOmNhc2VcXFwiYW5jaG9yXFxcIjpjYXNlXFxcInRhZ1xcXCI6IXR8fHQudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTp0LnNlcD90LnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnQuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOntsZXQgcz10aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTshdHx8dC52YWx1ZT9lLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpzLHNlcDpbXX0pOnQuc2VwP3RoaXMuc3RhY2sucHVzaChzKTpPYmplY3QuYXNzaWduKHQse2tleTpzLHNlcDpbXX0pO3JldHVybn1jYXNlXFxcImZsb3ctbWFwLWVuZFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1lbmRcXFwiOmUuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCByPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO3I/dGhpcy5zdGFjay5wdXNoKHIpOih5aWVsZCpTKHRoaXMucG9wKCkpLHlpZWxkKlModGhpcy5zdGVwKCkpKX1lbHNle2xldCByPXRoaXMucGVlaygyKTtpZihyLnR5cGU9PT1cXFwiYmxvY2stbWFwXFxcIiYmKHRoaXMudHlwZT09PVxcXCJtYXAtdmFsdWUtaW5kXFxcIiYmci5pbmRlbnQ9PT1lLmluZGVudHx8dGhpcy50eXBlPT09XFxcIm5ld2xpbmVcXFwiJiYhci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXS5zZXApKXlpZWxkKlModGhpcy5wb3AoKSkseWllbGQqUyh0aGlzLnN0ZXAoKSk7ZWxzZSBpZih0aGlzLnR5cGU9PT1cXFwibWFwLXZhbHVlLWluZFxcXCImJnIudHlwZSE9PVxcXCJmbG93LWNvbGxlY3Rpb25cXFwiKXtsZXQgcz1CcyhyKSxpPU5uKHMpO0x1KGUpO2xldCBvPWUuZW5kLnNwbGljZSgxLGUuZW5kLmxlbmd0aCk7by5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2xldCBhPXt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDppLGtleTplLHNlcDpvfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09YX1lbHNlIHlpZWxkKlModGhpcy5saW5lRW5kKGUpKX19Zmxvd1NjYWxhcihlKXtpZih0aGlzLm9uTmV3TGluZSl7bGV0IHQ9dGhpcy5zb3VyY2UuaW5kZXhPZihgXFxuYCkrMTtmb3IoO3QhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCt0KSx0PXRoaXMuc291cmNlLmluZGV4T2YoYFxcbmAsdCkrMX1yZXR1cm57dHlwZTplLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc291cmNlOnRoaXMuc291cmNlfX1zdGFydEJsb2NrVmFsdWUoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJhbGlhc1xcXCI6Y2FzZVxcXCJzY2FsYXJcXFwiOmNhc2VcXFwic2luZ2xlLXF1b3RlZC1zY2FsYXJcXFwiOmNhc2VcXFwiZG91YmxlLXF1b3RlZC1zY2FsYXJcXFwiOnJldHVybiB0aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTtjYXNlXFxcImJsb2NrLXNjYWxhci1oZWFkZXJcXFwiOnJldHVybnt0eXBlOlxcXCJibG9jay1zY2FsYXJcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQscHJvcHM6W3RoaXMuc291cmNlVG9rZW5dLHNvdXJjZTpcXFwiXFxcIn07Y2FzZVxcXCJmbG93LW1hcC1zdGFydFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1zdGFydFxcXCI6cmV0dXJue3R5cGU6XFxcImZsb3ctY29sbGVjdGlvblxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxzdGFydDp0aGlzLnNvdXJjZVRva2VuLGl0ZW1zOltdLGVuZDpbXX07Y2FzZVxcXCJzZXEtaXRlbS1pbmRcXFwiOnJldHVybnt0eXBlOlxcXCJibG9jay1zZXFcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19XX07Y2FzZVxcXCJleHBsaWNpdC1rZXktaW5kXFxcIjp7dGhpcy5vbktleUxpbmU9ITA7bGV0IHQ9QnMoZSkscj1Obih0KTtyZXR1cm4gci5wdXNoKHRoaXMuc291cmNlVG9rZW4pLHt0eXBlOlxcXCJibG9jay1tYXBcXFwiLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsaXRlbXM6W3tzdGFydDpyLGV4cGxpY2l0S2V5OiEwfV19fWNhc2VcXFwibWFwLXZhbHVlLWluZFxcXCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCB0PUJzKGUpLHI9Tm4odCk7cmV0dXJue3R5cGU6XFxcImJsb2NrLW1hcFxcXCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OnIsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfX19cmV0dXJuIG51bGx9YXRJbmRlbnRlZENvbW1lbnQoZSx0KXtyZXR1cm4gdGhpcy50eXBlIT09XFxcImNvbW1lbnRcXFwifHx0aGlzLmluZGVudDw9dD8hMTplLmV2ZXJ5KHI9PnIudHlwZT09PVxcXCJuZXdsaW5lXFxcInx8ci50eXBlPT09XFxcInNwYWNlXFxcIil9KmRvY3VtZW50RW5kKGUpe3RoaXMudHlwZSE9PVxcXCJkb2MtbW9kZVxcXCImJihlLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT1cXFwibmV3bGluZVxcXCImJih5aWVsZCpTKHRoaXMucG9wKCkpKSl9KmxpbmVFbmQoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVxcXCJjb21tYVxcXCI6Y2FzZVxcXCJkb2Mtc3RhcnRcXFwiOmNhc2VcXFwiZG9jLWVuZFxcXCI6Y2FzZVxcXCJmbG93LXNlcS1lbmRcXFwiOmNhc2VcXFwiZmxvdy1tYXAtZW5kXFxcIjpjYXNlXFxcIm1hcC12YWx1ZS1pbmRcXFwiOnlpZWxkKlModGhpcy5wb3AoKSkseWllbGQqUyh0aGlzLnN0ZXAoKSk7YnJlYWs7Y2FzZVxcXCJuZXdsaW5lXFxcIjp0aGlzLm9uS2V5TGluZT0hMTtjYXNlXFxcInNwYWNlXFxcIjpjYXNlXFxcImNvbW1lbnRcXFwiOmRlZmF1bHQ6ZS5lbmQ/ZS5lbmQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLmVuZD1bdGhpcy5zb3VyY2VUb2tlbl0sdGhpcy50eXBlPT09XFxcIm5ld2xpbmVcXFwiJiYoeWllbGQqUyh0aGlzLnBvcCgpKSl9fX07ZnVuY3Rpb24gd2Yobil7bGV0IGU9bi5wcmV0dHlFcnJvcnMhPT0hMTtyZXR1cm57bGluZUNvdW50ZXI6bi5saW5lQ291bnRlcnx8ZSYmbmV3IE5yfHxudWxsLHByZXR0eUVycm9yczplfX1mdW5jdGlvbiBBdShuLGU9e30pe2xldHtsaW5lQ291bnRlcjp0LHByZXR0eUVycm9yczpyfT13ZihlKSxzPW5ldyBBcih0PT1udWxsP3ZvaWQgMDp0LmFkZE5ld0xpbmUpLGk9bmV3IElyKGUpLG89bnVsbDtmb3IobGV0IGEgb2YgaS5jb21wb3NlKHMucGFyc2UobiksITAsbi5sZW5ndGgpKWlmKCFvKW89YTtlbHNlIGlmKG8ub3B0aW9ucy5sb2dMZXZlbCE9PVxcXCJzaWxlbnRcXFwiKXtvLmVycm9ycy5wdXNoKG5ldyBRZShhLnJhbmdlLnNsaWNlKDAsMiksXFxcIk1VTFRJUExFX0RPQ1NcXFwiLFxcXCJTb3VyY2UgY29udGFpbnMgbXVsdGlwbGUgZG9jdW1lbnRzOyBwbGVhc2UgdXNlIFlBTUwucGFyc2VBbGxEb2N1bWVudHMoKVxcXCIpKTticmVha31yZXR1cm4gciYmdCYmKG8uZXJyb3JzLmZvckVhY2goWmkobix0KSksby53YXJuaW5ncy5mb3JFYWNoKFppKG4sdCkpKSxvfWZ1bmN0aW9uIGNvKG4sZSx0KXtsZXQgcjt0eXBlb2YgZT09XFxcImZ1bmN0aW9uXFxcIj9yPWU6dD09PXZvaWQgMCYmZSYmdHlwZW9mIGU9PVxcXCJvYmplY3RcXFwiJiYodD1lKTtsZXQgcz1BdShuLHQpO2lmKCFzKXJldHVybiBudWxsO2lmKHMud2FybmluZ3MuZm9yRWFjaChpPT5wcyhzLm9wdGlvbnMubG9nTGV2ZWwsaSkpLHMuZXJyb3JzLmxlbmd0aD4wKXtpZihzLm9wdGlvbnMubG9nTGV2ZWwhPT1cXFwic2lsZW50XFxcIil0aHJvdyBzLmVycm9yc1swXTtzLmVycm9ycz1bXX1yZXR1cm4gcy50b0pTKE9iamVjdC5hc3NpZ24oe3Jldml2ZXI6cn0sdCkpfXZhciBqcz1WcihSdSgpKTt2YXIgRj1WcihucygpKTt2YXIgZXQ7KE49PntOLkRFRkFVTFRfVE9fU1RSSU5HPXtudWxsUmVwcmVzZW50YXRpb246XFxcIi1cXFwiLGRhdGVGb3JtYXQ6XFxcIk1NTU0gZGQsIHl5eXlcXFwiLGRhdGVUaW1lRm9ybWF0OlxcXCJoOm1tIGEgLSBNTU1NIGRkLCB5eXl5XFxcIn07ZnVuY3Rpb24gZSh5LHc9Ti5ERUZBVUxUX1RPX1NUUklORyx2PSExKXtsZXQgTz10KHkpO2lmKCFPKXJldHVybiB3Lm51bGxSZXByZXNlbnRhdGlvbjtzd2l0Y2goTy50eXBlKXtjYXNlXFxcIm51bGxcXFwiOnJldHVybiB3Lm51bGxSZXByZXNlbnRhdGlvbjtjYXNlXFxcInN0cmluZ1xcXCI6cmV0dXJuIE8udmFsdWU7Y2FzZVxcXCJudW1iZXJcXFwiOmNhc2VcXFwiYm9vbGVhblxcXCI6cmV0dXJuXFxcIlxcXCIrTy52YWx1ZTtjYXNlXFxcImxpbmtcXFwiOnJldHVybiBPLnZhbHVlLm1hcmtkb3duKCk7Y2FzZVxcXCJmdW5jdGlvblxcXCI6cmV0dXJuXFxcIjxmdW5jdGlvbj5cXFwiO2Nhc2VcXFwiYXJyYXlcXFwiOmxldCBDPVxcXCJcXFwiO3JldHVybiB2JiYoQys9XFxcIltcXFwiKSxDKz1PLnZhbHVlLm1hcChWPT5lKFYsdywhMCkpLmpvaW4oXFxcIiwgXFxcIiksdiYmKEMrPVxcXCJdXFxcIiksQztjYXNlXFxcIm9iamVjdFxcXCI6cmV0dXJuXFxcInsgXFxcIitPYmplY3QuZW50cmllcyhPLnZhbHVlKS5tYXAoVj0+VlswXStcXFwiOiBcXFwiK2UoVlsxXSx3LCEwKSkuam9pbihcXFwiLCBcXFwiKStcXFwiIH1cXFwiO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIGphKE8udmFsdWUsdy5kYXRlRm9ybWF0LHcuZGF0ZVRpbWVGb3JtYXQpO2Nhc2VcXFwiZHVyYXRpb25cXFwiOnJldHVybiBxYShPLnZhbHVlKX19Ti50b1N0cmluZz1lO2Z1bmN0aW9uIHQoeSl7cmV0dXJuIGgoeSk/e3R5cGU6XFxcIm51bGxcXFwiLHZhbHVlOnl9OmYoeSk/e3R5cGU6XFxcIm51bWJlclxcXCIsdmFsdWU6eX06bCh5KT97dHlwZTpcXFwic3RyaW5nXFxcIix2YWx1ZTp5fTpnKHkpP3t0eXBlOlxcXCJib29sZWFuXFxcIix2YWx1ZTp5fTpwKHkpP3t0eXBlOlxcXCJkdXJhdGlvblxcXCIsdmFsdWU6eX06ZCh5KT97dHlwZTpcXFwiZGF0ZVxcXCIsdmFsdWU6eX06Yih5KT97dHlwZTpcXFwiYXJyYXlcXFwiLHZhbHVlOnl9OkQoeSk/e3R5cGU6XFxcImxpbmtcXFwiLHZhbHVlOnl9OkkoeSk/e3R5cGU6XFxcImZ1bmN0aW9uXFxcIix2YWx1ZTp5fTpUKHkpP3t0eXBlOlxcXCJvYmplY3RcXFwiLHZhbHVlOnl9OnZvaWQgMH1OLndyYXBWYWx1ZT10O2Z1bmN0aW9uIHIoeSx3KXtpZihUKHkpKXtsZXQgdj17fTtmb3IobGV0W08sQ11vZiBPYmplY3QuZW50cmllcyh5KSl2W09dPXIoQyx3KTtyZXR1cm4gdn1lbHNlIGlmKGIoeSkpe2xldCB2PVtdO2ZvcihsZXQgTyBvZiB5KXYucHVzaChyKE8sdykpO3JldHVybiB2fWVsc2UgcmV0dXJuIHcoeSl9Ti5tYXBMZWF2ZXM9cjtmdW5jdGlvbiBzKHksdyl7cmV0dXJuIGkoeSx3KT09MH1OLmVxdWFscz1zO2Z1bmN0aW9uIGkoeSx3LHYpe3ZhciBWLGo7aWYoeT09PXd8fCh5PT09dm9pZCAwJiYoeT1udWxsKSx3PT09dm9pZCAwJiYodz1udWxsKSx5PT09bnVsbCYmdz09PW51bGwpKXJldHVybiAwO2lmKHk9PT1udWxsKXJldHVybi0xO2lmKHc9PT1udWxsKXJldHVybiAxO2xldCBPPXQoeSksQz10KHcpO2lmKE89PT12b2lkIDAmJkM9PT12b2lkIDApcmV0dXJuIDA7aWYoTz09PXZvaWQgMClyZXR1cm4tMTtpZihDPT09dm9pZCAwKXJldHVybiAxO2lmKE8udHlwZSE9Qy50eXBlKXJldHVybiBPLnR5cGUubG9jYWxlQ29tcGFyZShDLnR5cGUpO2lmKE8udmFsdWU9PT1DLnZhbHVlKXJldHVybiAwO3N3aXRjaChPLnR5cGUpe2Nhc2VcXFwic3RyaW5nXFxcIjpyZXR1cm4gTy52YWx1ZS5sb2NhbGVDb21wYXJlKEMudmFsdWUpO2Nhc2VcXFwibnVtYmVyXFxcIjpyZXR1cm4gTy52YWx1ZTxDLnZhbHVlPy0xOk8udmFsdWU9PUMudmFsdWU/MDoxO2Nhc2VcXFwibnVsbFxcXCI6cmV0dXJuIDA7Y2FzZVxcXCJib29sZWFuXFxcIjpyZXR1cm4gTy52YWx1ZT09Qy52YWx1ZT8wOk8udmFsdWU/MTotMTtjYXNlXFxcImxpbmtcXFwiOmxldCBZPU8udmFsdWUsZWU9Qy52YWx1ZSxhZT12IT1udWxsP3Y6QWU9PkFlLHg9YWUoWS5wYXRoKS5sb2NhbGVDb21wYXJlKGFlKGVlLnBhdGgpKTtpZih4IT0wKXJldHVybiB4O2xldCAkPVkudHlwZS5sb2NhbGVDb21wYXJlKGVlLnR5cGUpO3JldHVybiAkIT0wPyQ6WS5zdWJwYXRoJiYhZWUuc3VicGF0aD8xOiFZLnN1YnBhdGgmJmVlLnN1YnBhdGg/LTE6IVkuc3VicGF0aCYmIWVlLnN1YnBhdGg/MDooKFY9WS5zdWJwYXRoKSE9bnVsbD9WOlxcXCJcXFwiKS5sb2NhbGVDb21wYXJlKChqPWVlLnN1YnBhdGgpIT1udWxsP2o6XFxcIlxcXCIpO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIE8udmFsdWU8Qy52YWx1ZT8tMTpPLnZhbHVlLmVxdWFscyhDLnZhbHVlKT8wOjE7Y2FzZVxcXCJkdXJhdGlvblxcXCI6cmV0dXJuIE8udmFsdWU8Qy52YWx1ZT8tMTpPLnZhbHVlLmVxdWFscyhDLnZhbHVlKT8wOjE7Y2FzZVxcXCJhcnJheVxcXCI6bGV0IFE9Ty52YWx1ZSx1ZT1DLnZhbHVlO2ZvcihsZXQgQWU9MDtBZTxNYXRoLm1pbihRLmxlbmd0aCx1ZS5sZW5ndGgpO0FlKyspe2xldCBCdD1pKFFbQWVdLHVlW0FlXSk7aWYoQnQhPTApcmV0dXJuIEJ0fXJldHVybiBRLmxlbmd0aC11ZS5sZW5ndGg7Y2FzZVxcXCJvYmplY3RcXFwiOmxldCBEZT1PLnZhbHVlLFJlPUMudmFsdWUsUXQ9QXJyYXkuZnJvbShPYmplY3Qua2V5cyhEZSkpLE10PUFycmF5LmZyb20oT2JqZWN0LmtleXMoUmUpKTtRdC5zb3J0KCksTXQuc29ydCgpO2xldCBfdD1pKFF0LE10KTtpZihfdCE9MClyZXR1cm4gX3Q7Zm9yKGxldCBBZSBvZiBRdCl7bGV0IEJ0PWkoRGVbQWVdLFJlW0FlXSk7aWYoQnQhPTApcmV0dXJuIEJ0fXJldHVybiAwO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybiAwfX1OLmNvbXBhcmU9aTtmdW5jdGlvbiBvKHkpe3ZhciB3O3JldHVybih3PXQoeSkpPT1udWxsP3ZvaWQgMDp3LnR5cGV9Ti50eXBlT2Y9bztmdW5jdGlvbiBhKHkpe2xldCB3PXQoeSk7aWYoIXcpcmV0dXJuITE7c3dpdGNoKHcudHlwZSl7Y2FzZVxcXCJudW1iZXJcXFwiOnJldHVybiB3LnZhbHVlIT0wO2Nhc2VcXFwic3RyaW5nXFxcIjpyZXR1cm4gdy52YWx1ZS5sZW5ndGg+MDtjYXNlXFxcImJvb2xlYW5cXFwiOnJldHVybiB3LnZhbHVlO2Nhc2VcXFwibGlua1xcXCI6cmV0dXJuISF3LnZhbHVlLnBhdGg7Y2FzZVxcXCJkYXRlXFxcIjpyZXR1cm4gdy52YWx1ZS50b01pbGxpcygpIT0wO2Nhc2VcXFwiZHVyYXRpb25cXFwiOnJldHVybiB3LnZhbHVlLmFzKFxcXCJzZWNvbmRzXFxcIikhPTA7Y2FzZVxcXCJvYmplY3RcXFwiOnJldHVybiBPYmplY3Qua2V5cyh3LnZhbHVlKS5sZW5ndGg+MDtjYXNlXFxcImFycmF5XFxcIjpyZXR1cm4gdy52YWx1ZS5sZW5ndGg+MDtjYXNlXFxcIm51bGxcXFwiOnJldHVybiExO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybiEwfX1OLmlzVHJ1dGh5PWE7ZnVuY3Rpb24gdSh5KXtpZih5PT1udWxsKXJldHVybiB5O2lmKE4uaXNBcnJheSh5KSlyZXR1cm5bXS5jb25jYXQoeS5tYXAodz0+dSh3KSkpO2lmKE4uaXNPYmplY3QoeSkpe2xldCB3PXt9O2ZvcihsZXRbdixPXW9mIE9iamVjdC5lbnRyaWVzKHkpKXdbdl09dShPKTtyZXR1cm4gd31lbHNlIHJldHVybiB5fU4uZGVlcENvcHk9dTtmdW5jdGlvbiBsKHkpe3JldHVybiB0eXBlb2YgeT09XFxcInN0cmluZ1xcXCJ9Ti5pc1N0cmluZz1sO2Z1bmN0aW9uIGYoeSl7cmV0dXJuIHR5cGVvZiB5PT1cXFwibnVtYmVyXFxcIn1OLmlzTnVtYmVyPWY7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geSBpbnN0YW5jZW9mIHF9Ti5pc0RhdGU9ZDtmdW5jdGlvbiBwKHkpe3JldHVybiB5IGluc3RhbmNlb2YgQn1OLmlzRHVyYXRpb249cDtmdW5jdGlvbiBoKHkpe3JldHVybiB5PT1udWxsfU4uaXNOdWxsPWg7ZnVuY3Rpb24gYih5KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh5KX1OLmlzQXJyYXk9YjtmdW5jdGlvbiBnKHkpe3JldHVybiB0eXBlb2YgeT09XFxcImJvb2xlYW5cXFwifU4uaXNCb29sZWFuPWc7ZnVuY3Rpb24gRCh5KXtyZXR1cm4geSBpbnN0YW5jZW9mIHhlfU4uaXNMaW5rPUQ7ZnVuY3Rpb24gVCh5KXtyZXR1cm4geSE9PXZvaWQgMCYmdHlwZW9mIHk9PVxcXCJvYmplY3RcXFwiJiYhYih5KSYmIXAoeSkmJiFkKHkpJiYhRCh5KSYmIWgoeSl9Ti5pc09iamVjdD1UO2Z1bmN0aW9uIEkoeSl7cmV0dXJuIHR5cGVvZiB5PT1cXFwiZnVuY3Rpb25cXFwifU4uaXNGdW5jdGlvbj1JfSkoZXR8fChldD17fSkpO3ZhciBqdTsoaT0+e2Z1bmN0aW9uIG4obyl7cmV0dXJuIGV0LmlzT2JqZWN0KG8pJiZPYmplY3Qua2V5cyhvKS5sZW5ndGg9PTImJlxcXCJrZXlcXFwiaW4gbyYmXFxcInJvd3NcXFwiaW4gb31pLmlzRWxlbWVudEdyb3VwPW47ZnVuY3Rpb24gZShvKXtmb3IobGV0IGEgb2YgbylpZighbihhKSlyZXR1cm4hMTtyZXR1cm4hMH1pLmlzR3JvdXBpbmc9ZTtmdW5jdGlvbiB0KG8pe2ZvcihsZXQgYSBvZiBvKWlmKG4oYSkpcmV0dXJuITE7cmV0dXJuITB9aS5pc0xlYWY9dDtmdW5jdGlvbiByKG8pe2lmKG4obykpcmV0dXJuIHIoby5yb3dzKTtpZihlKG8pKXtsZXQgYT0wO2ZvcihsZXQgdSBvZiBvKWErPXIodS5yb3dzKTtyZXR1cm4gYX1lbHNlIHJldHVybiBvLmxlbmd0aH1pLmNvdW50PXI7ZnVuY3Rpb24gcyhvLGEsdSl7aWYodTw9YSlyZXR1cm5bXTtpZih0KG8pKXJldHVybiBvLnNsaWNlKGEsdSk7bGV0IGw9MCxmPTA7Zm9yKDtsPG8ubGVuZ3RoJiZmK3Iob1tsXSk8PWE7KWYrPXIob1tsXSksbCsrO2lmKGw+PW8ubGVuZ3RoKXJldHVybltdO2xldCBkPVtdO2Zvcig7bDxvLmxlbmd0aCYmZjx1Oyl7bGV0IHA9b1tsXSxoPXIocCksYj1NYXRoLm1heChmLGEpLGc9TWF0aC5taW4oaCtmLHUpO2QucHVzaCh7a2V5OnAua2V5LHJvd3M6cyhwLnJvd3MsYi1mLGctZil9KSxmKz1oLGwrK31yZXR1cm4gZH1pLnNsaWNlPXN9KShqdXx8KGp1PXt9KSk7dmFyIGhvPWNsYXNzIG57Y29uc3RydWN0b3IoZSl7dGhpcy52YWx1ZT1lO3RoaXMuc3VjY2Vzc2Z1bD0hMH1tYXAoZSl7cmV0dXJuIG5ldyBuKGUodGhpcy52YWx1ZSkpfWZsYXRNYXAoZSl7cmV0dXJuIGUodGhpcy52YWx1ZSl9bWFwRXJyKGUpe3JldHVybiB0aGlzfWJpbWFwKGUsdCl7cmV0dXJuIHRoaXMubWFwKGUpfW9yRWxzZShlKXtyZXR1cm4gdGhpcy52YWx1ZX1jYXN0KCl7cmV0dXJuIHRoaXN9b3JFbHNlVGhyb3coZSl7cmV0dXJuIHRoaXMudmFsdWV9fSxwbz1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuZXJyb3I9ZTt0aGlzLnN1Y2Nlc3NmdWw9ITF9bWFwKGUpe3JldHVybiB0aGlzfWZsYXRNYXAoZSl7cmV0dXJuIHRoaXN9bWFwRXJyKGUpe3JldHVybiBuZXcgbihlKHRoaXMuZXJyb3IpKX1iaW1hcChlLHQpe3JldHVybiB0aGlzLm1hcEVycih0KX1vckVsc2UoZSl7cmV0dXJuIGV9Y2FzdCgpe3JldHVybiB0aGlzfW9yRWxzZVRocm93KGUpe3Rocm93IGU/bmV3IEVycm9yKGUodGhpcy5lcnJvcikpOm5ldyBFcnJvcihcXFwiXFxcIit0aGlzLmVycm9yKX19LFNlOyhhPT57ZnVuY3Rpb24gbih1KXtyZXR1cm4gbmV3IGhvKHUpfWEuc3VjY2Vzcz1uO2Z1bmN0aW9uIGUodSl7cmV0dXJuIG5ldyBwbyh1KX1hLmZhaWx1cmU9ZTtmdW5jdGlvbiB0KHUsbCxmKXtyZXR1cm4gdS5zdWNjZXNzZnVsP2wuc3VjY2Vzc2Z1bD9mKHUudmFsdWUsbC52YWx1ZSk6ZShsLmVycm9yKTplKHUuZXJyb3IpfWEuZmxhdE1hcDI9dDtmdW5jdGlvbiByKHUsbCxmKXtyZXR1cm4gdCh1LGwsKGQscCk9Pm4oZihkLHApKSl9YS5tYXAyPXI7ZnVuY3Rpb24gcyh1LGwpe2xldCBmPVtdO2ZvcihsZXQgZCBvZiB1KXtsZXQgcD1sKGQpO2lmKCFwLnN1Y2Nlc3NmdWwpcmV0dXJuIHAuY2FzdCgpO2YucHVzaChwLnZhbHVlKX1yZXR1cm4gYS5zdWNjZXNzKGYpfWEubWFwQWxsPXM7ZnVuY3Rpb24gaSh1KXt0cnl7cmV0dXJuIGEuc3VjY2Vzcyh1KCkpfWNhdGNoKGwpe3JldHVybiBhLmZhaWx1cmUobCl9fWEudHJ5aW5nPWk7YXN5bmMgZnVuY3Rpb24gbyh1KXt0cnl7cmV0dXJuIGEuc3VjY2Vzcyhhd2FpdCB1KX1jYXRjaChsKXtyZXR1cm4gYS5mYWlsdXJlKGwpfX1hLmFzeW5jPW99KShTZXx8KFNlPXt9KSk7dmFyIFl0OyhOPT57Ti5FVkVSWVRISU5HPXt0eXBlOlxcXCJldmVyeXRoaW5nXFxcIn0sTi5OT1RISU5HPXt0eXBlOlxcXCJub3RoaW5nXFxcIn0sTi5FTVBUWV9TRVQ9bmV3IFNldDtmdW5jdGlvbiByKHkpe3JldHVybiB5LnNpemU9PTA/Ti5OT1RISU5HOnt0eXBlOlxcXCJhdG9tXFxcIix2YWx1ZTp5fX1OLmF0b209cjtmdW5jdGlvbiBzKHkpe3JldHVybiB5P04uRVZFUllUSElORzpOLk5PVEhJTkd9Ti5jb25zdGFudD1zO2Z1bmN0aW9uIGkoeSl7cmV0dXJuIHkhPT12b2lkIDA/cih5KTpOLk5PVEhJTkd9Ti5udWxsYWJsZUF0b209aTtmdW5jdGlvbiBvKHkpe3JldHVybiB5LnNpemU9PTA/Ti5FVkVSWVRISU5HOnt0eXBlOlxcXCJuZWdhdGVkXFxcIix2YWx1ZTp5fX1OLm5lZ2F0ZWQ9bztmdW5jdGlvbiBhKHkpe3N3aXRjaCh5LnR5cGUpe2Nhc2VcXFwiZXZlcnl0aGluZ1xcXCI6cmV0dXJuIE4uTk9USElORztjYXNlXFxcIm5vdGhpbmdcXFwiOnJldHVybiBOLkVWRVJZVEhJTkc7Y2FzZVxcXCJhdG9tXFxcIjpyZXR1cm4gbyh5LnZhbHVlKTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiByKHkudmFsdWUpfX1OLm5lZ2F0ZT1hO2Z1bmN0aW9uIHUoeSl7c3dpdGNoKHkudHlwZSl7Y2FzZVxcXCJldmVyeXRoaW5nXFxcIjpyZXR1cm4hMTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiExO2Nhc2VcXFwiYXRvbVxcXCI6cmV0dXJuIHkudmFsdWUuc2l6ZT09MDtjYXNlXFxcIm5vdGhpbmdcXFwiOnJldHVybiEwfX1OLmVtcHR5PXU7ZnVuY3Rpb24gbCh5LHcpe3N3aXRjaCh5LnR5cGUpe2Nhc2VcXFwiZXZlcnl0aGluZ1xcXCI6cmV0dXJuIHc7Y2FzZVxcXCJub3RoaW5nXFxcIjpyZXR1cm4gTi5FTVBUWV9TRVQ7Y2FzZVxcXCJhdG9tXFxcIjpyZXR1cm4geS52YWx1ZTtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybiBJKHcseS52YWx1ZSl9fU4ucmVzb2x2ZT1sO2Z1bmN0aW9uIGYoeSl7cmV0dXJuIGQoeSx3PT53KX1OLmludGVyc2VjdD1mO2Z1bmN0aW9uIGQoeSx3KXtyZXR1cm4gcCh5LHY9PlNlLnN1Y2Nlc3Modyh2KSkpLm9yRWxzZVRocm93KCl9Ti5sYXp5SW50ZXJzZWN0PWQ7ZnVuY3Rpb24gcCh5LHcpe2xldCB2PVtdLE89W107Zm9yKGxldCBDIG9mIHkpe2xldCBWPXcoQyk7aWYoIVYuc3VjY2Vzc2Z1bClyZXR1cm4gVi5jYXN0KCk7bGV0IGo9Vi52YWx1ZTtpZihqIT09dm9pZCAwKXtpZih1KGopKXJldHVybiBTZS5zdWNjZXNzKE4uTk9USElORyk7ai50eXBlIT09XFxcImV2ZXJ5dGhpbmdcXFwiJiYoai50eXBlPT1cXFwiYXRvbVxcXCI/di5wdXNoKGoudmFsdWUpOmoudHlwZT09XFxcIm5lZ2F0ZWRcXFwiJiZPLnB1c2goai52YWx1ZSkpfX1yZXR1cm4gdi5sZW5ndGg9PTAmJk8ubGVuZ3RoPT0wP1NlLnN1Y2Nlc3MoTi5FVkVSWVRISU5HKTp2Lmxlbmd0aD4wJiZPLmxlbmd0aD09MD9TZS5zdWNjZXNzKHIoRCh2KSkpOnYubGVuZ3RoPT0wJiZPLmxlbmd0aD4wP1NlLnN1Y2Nlc3MobyhUKE8pKSk6U2Uuc3VjY2VzcyhOLmF0b20oSShEKHYpLFQoTykpKSl9Ti5sYXp5RmFpbGFibGVJbnRlcnNlY3Rpb249cDtmdW5jdGlvbiBoKHkpe3JldHVybiBiKHksdz0+dyl9Ti51bmlvbj1oO2Z1bmN0aW9uIGIoeSx3KXtyZXR1cm4gZyh5LHY9PlNlLnN1Y2Nlc3Modyh2KSkpLm9yRWxzZVRocm93KCl9Ti5sYXp5VW5pb249YjtmdW5jdGlvbiBnKHksdyl7bGV0IHY9W10sTz1bXTtmb3IobGV0IEMgb2YgeSl7bGV0IFY9dyhDKTtpZighVi5zdWNjZXNzZnVsKXJldHVybiBWLmNhc3QoKTtsZXQgaj1WLnZhbHVlO2lmKGohPT12b2lkIDApe2lmKGoudHlwZT09PVxcXCJldmVyeXRoaW5nXFxcIilyZXR1cm4gU2Uuc3VjY2VzcyhOLkVWRVJZVEhJTkcpO3Uoail8fChqLnR5cGU9PVxcXCJhdG9tXFxcIj92LnB1c2goai52YWx1ZSk6ai50eXBlPT1cXFwibmVnYXRlZFxcXCImJk8ucHVzaChqLnZhbHVlKSl9fXJldHVybiB2Lmxlbmd0aD09MCYmTy5sZW5ndGg9PTA/U2Uuc3VjY2VzcyhOLk5PVEhJTkcpOnYubGVuZ3RoPjAmJk8ubGVuZ3RoPT0wP1NlLnN1Y2Nlc3MoTi5hdG9tKFQodikpKTp2Lmxlbmd0aD09MCYmTy5sZW5ndGg+MD9TZS5zdWNjZXNzKE4ubmVnYXRlZChEKE8pKSk6U2Uuc3VjY2VzcyhvKEkoRChPKSxUKHYpKSkpfU4ubGF6eUZhaWxhYmxlVW5pb249ZztmdW5jdGlvbiBEKHkpe2lmKHkubGVuZ3RoPT0wKXJldHVybiBuZXcgU2V0O2lmKHkubGVuZ3RoPT0xKXJldHVybiB5WzBdO2xldCB3PVtdLmNvbmNhdCh5KS5zb3J0KCh2LE8pPT52LnNpemUtTy5zaXplKTtmb3IoO3cubGVuZ3RoPjE7KXtsZXQgdj1uZXcgU2V0LE89dy5wb3AoKTtmb3IobGV0IEMgb2Ygd1swXSlPLmhhcyhDKSYmdi5hZGQoQyk7d1swXT12fXJldHVybiB3WzBdfU4uc2V0SW50ZXJzZWN0PUQ7ZnVuY3Rpb24gVCh5KXtpZih5Lmxlbmd0aD09MClyZXR1cm4gbmV3IFNldDtpZih5Lmxlbmd0aD09MSlyZXR1cm4geVswXTtsZXQgdz1uZXcgU2V0O2ZvcihsZXQgdiBvZiB5KWZvcihsZXQgTyBvZiB2KXcuYWRkKE8pO3JldHVybiB3fU4uc2V0VW5pb249VDtmdW5jdGlvbiBJKHksdyl7aWYoeS5zaXplPncuc2l6ZSl7bGV0IHY9bmV3IFNldCh5KTtmb3IobGV0IE8gb2Ygdyl2LmRlbGV0ZShPKTtyZXR1cm4gdn1lbHNle2xldCB2PW5ldyBTZXQ7Zm9yKGxldCBPIG9mIHkpdy5oYXMoTyl8fHYuYWRkKE8pO3JldHVybiB2fX1OLnNldEludGVyc2VjdE5lZ2F0aW9uPUl9KShZdHx8KFl0PXt9KSk7dmFyIHNlOyhnPT57Zy5ST1c9XFxcIiRyb3dcXFwiO2Z1bmN0aW9uIGUoRCl7cmV0dXJue3R5cGU6XFxcInZhcmlhYmxlXFxcIixuYW1lOkR9fWcudmFyaWFibGU9ZTtmdW5jdGlvbiB0KEQpe3JldHVybnt0eXBlOlxcXCJsaXRlcmFsXFxcIix2YWx1ZTpEfX1nLmxpdGVyYWw9dDtmdW5jdGlvbiByKEQsVCxJKXtyZXR1cm57dHlwZTpcXFwiYmluYXJ5b3BcXFwiLGxlZnQ6RCxvcDpULHJpZ2h0Okl9fWcuYmluYXJ5T3A9cjtmdW5jdGlvbiBzKEQsVCl7cmV0dXJue3R5cGU6XFxcImJpbmFyeW9wXFxcIixsZWZ0OkQscmlnaHQ6VCxvcDpcXFwiaW5kZXhcXFwifX1nLmluZGV4PXM7ZnVuY3Rpb24gaShEKXtsZXQgVD1ELnNwbGl0KFxcXCIuXFxcIiksST1nLnZhcmlhYmxlKFRbMF0pO2ZvcihsZXQgTj0xO048VC5sZW5ndGg7TisrKUk9Zy5pbmRleChJLGcubGl0ZXJhbChUW05dKSk7cmV0dXJuIEl9Zy5pbmRleFZhcmlhYmxlPWk7ZnVuY3Rpb24gbyhELFQpe3JldHVybnt0eXBlOlxcXCJsYW1iZGFcXFwiLGFyZ3VtZW50czpELHZhbHVlOlR9fWcubGFtYmRhPW87ZnVuY3Rpb24gYShELFQpe3JldHVybnt0eXBlOlxcXCJmdW5jdGlvblxcXCIsZnVuYzpELGFyZ3VtZW50czpUfX1nLmZ1bmM9YTtmdW5jdGlvbiB1KEQpe3JldHVybnt0eXBlOlxcXCJsaXN0XFxcIix2YWx1ZXM6RH19Zy5saXN0PXU7ZnVuY3Rpb24gbChEKXtyZXR1cm57dHlwZTpcXFwib2JqZWN0XFxcIix2YWx1ZXM6RH19Zy5vYmplY3Q9bDtmdW5jdGlvbiBmKEQpe3JldHVybnt0eXBlOlxcXCJuZWdhdGVkXFxcIixjaGlsZDpEfX1nLm5lZ2F0ZT1mO2Z1bmN0aW9uIGQoRCl7cmV0dXJuIEQ9PVxcXCI8PVxcXCJ8fEQ9PVxcXCI8XFxcInx8RD09XFxcIj5cXFwifHxEPT1cXFwiPj1cXFwifHxEPT1cXFwiIT1cXFwifHxEPT1cXFwiPVxcXCJ9Zy5pc0NvbXBhcmVPcD1kO2Z1bmN0aW9uIHAoRCxUPW5ldyBTZXQoW2cuUk9XXSkpe3N3aXRjaChELnR5cGUpe2Nhc2VcXFwiYmluYXJ5b3BcXFwiOnJldHVybiBELm9wPT09XFxcImluZGV4XFxcIiYmRC5sZWZ0LnR5cGU9PVxcXCJ2YXJpYWJsZVxcXCImJkQubGVmdC5uYW1lPT1nLlJPVyYmRC5yaWdodC50eXBlPT1cXFwibGl0ZXJhbFxcXCImJmV0LmlzU3RyaW5nKEQucmlnaHQudmFsdWUpP1QuaGFzKEQucmlnaHQudmFsdWUpP25ldyBTZXQ6bmV3IFNldChbRC5yaWdodC52YWx1ZV0pOll0LnNldFVuaW9uKFtwKEQubGVmdCxUKSxwKEQucmlnaHQsVCldKTtjYXNlXFxcImZ1bmN0aW9uXFxcIjpyZXR1cm4gWXQuc2V0VW5pb24oRC5hcmd1bWVudHMubWFwKE49PnAoTixUKSkpO2Nhc2VcXFwibGFtYmRhXFxcIjpsZXQgST1UIT1udWxsP1Q6bmV3IFNldDtmb3IobGV0IE4gb2YgRC5hcmd1bWVudHMpSS5hZGQoTik7cmV0dXJuIHAoRC52YWx1ZSxJKTtjYXNlXFxcImxpc3RcXFwiOnJldHVybiBZdC5zZXRVbmlvbihELnZhbHVlcy5tYXAoTj0+cChOLFQpKSk7Y2FzZVxcXCJuZWdhdGVkXFxcIjpyZXR1cm4gcChELmNoaWxkLFQpO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gWXQuc2V0VW5pb24oT2JqZWN0LnZhbHVlcyhELnZhbHVlcykubWFwKE49PnAoTixUKSkpO2Nhc2VcXFwidmFyaWFibGVcXFwiOnJldHVybiBUJiZULmhhcyhELm5hbWUpP25ldyBTZXQ6bmV3IFNldChbRC5uYW1lXSk7Y2FzZVxcXCJsaXRlcmFsXFxcIjpyZXR1cm4gbmV3IFNldH19Zy51bmJvdW5kVmFyaWFibGVzPXA7ZnVuY3Rpb24gaChEKXtzd2l0Y2goRC50eXBlKXtjYXNlXFxcImJpbmFyeW9wXFxcIjpyZXR1cm4gRC5vcD09PVxcXCJpbmRleFxcXCI/YCR7aChELmxlZnQpfVske2goRC5yaWdodCl9XWA6YCR7aChELmxlZnQpfSAke0Qub3B9ICR7aChELnJpZ2h0KX1gO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnJldHVybmAke2goRC5mdW5jKX0oJHtELmFyZ3VtZW50cy5tYXAoaCkuam9pbihcXFwiLCBcXFwiKX0pYDtjYXNlXFxcImxhbWJkYVxcXCI6cmV0dXJuYCgke0QuYXJndW1lbnRzLmpvaW4oXFxcIiwgXFxcIil9KSA9PiAke2goRC52YWx1ZSl9YDtjYXNlXFxcImxpc3RcXFwiOnJldHVybmBbJHtELnZhbHVlcy5tYXAoaCkuam9pbihcXFwiLCBcXFwiKX1dYDtjYXNlXFxcIm5lZ2F0ZWRcXFwiOnJldHVybmAhJHtoKEQuY2hpbGQpfWA7Y2FzZVxcXCJvYmplY3RcXFwiOnJldHVybmB7JHtPYmplY3QuZW50cmllcyhELnZhbHVlcykubWFwKChbSSxOXSk9PmAke0l9OiAke2goTil9YCkuam9pbihcXFwiLCBcXFwiKX19YDtjYXNlXFxcInZhcmlhYmxlXFxcIjpyZXR1cm4gRC5uYW1lO2Nhc2VcXFwibGl0ZXJhbFxcXCI6bGV0IFQ9ZXQud3JhcFZhbHVlKEQudmFsdWUpO2lmKCFUKXJldHVyblxcXCJudWxsXFxcIjtzd2l0Y2goVC50eXBlKXtjYXNlXFxcInN0cmluZ1xcXCI6cmV0dXJuYFxcXCIke1QudmFsdWV9XFxcImA7ZGVmYXVsdDpyZXR1cm4gZXQudG9TdHJpbmcoVC52YWx1ZSl9fX1nLnRvU3RyaW5nPWgsZy5OVUxMPWcubGl0ZXJhbChudWxsKX0pKHNlfHwoc2U9e30pKTt2YXIgej1GLmNyZWF0ZUxhbmd1YWdlKHtudW1iZXI6bj0+Ri5yZWdleHAoLy0/WzAtOV0rKFxcXFwuWzAtOV0rKT8vKS5tYXAoZT0+TnVtYmVyLnBhcnNlRmxvYXQoZSkpLmRlc2MoXFxcIm51bWJlclxcXCIpLHN0cmluZzpuPT5GLnN0cmluZygnXFxcIicpLnRoZW4oRi5hbHQobi5lc2NhcGVDaGFyYWN0ZXIsRi5ub25lT2YoJ1xcXCJcXFxcXFxcXCcpKS5hdExlYXN0KDApLm1hcChlPT5lLmpvaW4oXFxcIlxcXCIpKSkuc2tpcChGLnN0cmluZygnXFxcIicpKS5kZXNjKFxcXCJzdHJpbmdcXFwiKSxlc2NhcGVDaGFyYWN0ZXI6bj0+Ri5zdHJpbmcoXFxcIlxcXFxcXFxcXFxcIikudGhlbihGLmFueSkubWFwKGU9PmU9PT0nXFxcIic/J1xcXCInOmU9PT1cXFwiXFxcXFxcXFxcXFwiP1xcXCJcXFxcXFxcXFxcXCI6XFxcIlxcXFxcXFxcXFxcIitlKSxib29sOm49PkYucmVnZXhwKC90cnVlfGZhbHNlfFRydWV8RmFsc2UvKS5tYXAoZT0+ZS50b0xvd2VyQ2FzZSgpPT1cXFwidHJ1ZVxcXCIpLmRlc2MoXFxcImJvb2xlYW5cXFwiKSx0YWc6bj0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIiNcXFwiKSxGLmFsdChGLnJlZ2V4cCgvW15cXFxcdTIwMDAtXFxcXHUyMDZGXFxcXHUyRTAwLVxcXFx1MkU3RichXFxcIiMkJSYoKSorLC46Ozw9Pj9AXmB7fH1+XFxcXFtcXFxcXVxcXFxcXFxcXFxcXHNdLykuZGVzYyhcXFwidGV4dFxcXCIpKS5tYW55KCksKGUsdCk9PmUrdC5qb2luKFxcXCJcXFwiKSkuZGVzYyhcXFwidGFnXFxcIiksaWRlbnRpZmllcjpuPT5GLnNlcU1hcChGLmFsdChGLnJlZ2V4cCgvW1xcXFxwe0xldHRlcn0kXS91KSxGLnJlZ2V4cChxdSkuZGVzYyhcXFwidGV4dFxcXCIpKSxGLmFsdChGLnJlZ2V4cCgvWzAtOVxcXFxwe0xldHRlcn0kXy1dL3UpLEYucmVnZXhwKHF1KS5kZXNjKFxcXCJ0ZXh0XFxcIikpLm1hbnkoKSwoZSx0KT0+ZSt0LmpvaW4oXFxcIlxcXCIpKS5kZXNjKFxcXCJ2YXJpYWJsZVxcXCIpLGxpbms6bj0+Ri5yZWdleHAoL1xcXFxbXFxcXFsoW15cXFxcW1xcXFxdXSo/KVxcXFxdXFxcXF0vdSwxKS5tYXAoZT0+eGUucGFyc2VJbm5lcihlKSkuZGVzYyhcXFwiZmlsZSBsaW5rXFxcIiksZW1iZWRMaW5rOm49PkYuc2VxTWFwKEYuc3RyaW5nKFxcXCIhXFxcIikuYXRNb3N0KDEpLG4ubGluaywoZSx0KT0+KGUubGVuZ3RoPjAmJih0LmVtYmVkPSEwKSx0KSkuZGVzYyhcXFwiZmlsZSBsaW5rXFxcIiksYmluYXJ5UGx1c01pbnVzOm49PkYucmVnZXhwKC9cXFxcK3wtLykubWFwKGU9PmUpLmRlc2MoXFxcIicrJyBvciAnLSdcXFwiKSxiaW5hcnlNdWxEaXY6bj0+Ri5yZWdleHAoL1xcXFwqfFxcXFwvfCUvKS5tYXAoZT0+ZSkuZGVzYyhcXFwiJyonIG9yICcvJyBvciAnJSdcXFwiKSxiaW5hcnlDb21wYXJlT3A6bj0+Ri5yZWdleHAoLz49fDw9fCE9fD58PHw9LykubWFwKGU9PmUpLmRlc2MoXFxcIic+PScgb3IgJzw9JyBvciAnIT0nIG9yICc9JyBvciAnPicgb3IgJzwnXFxcIiksYmluYXJ5QW5kT3A6bj0+Ri5yZWdleHAoL2FuZHwmL2kpLm1hcChlPT5cXFwiJlxcXCIpLmRlc2MoXFxcIidhbmQnXFxcIiksYmluYXJ5T3JPcDpuPT5GLnJlZ2V4cCgvb3J8XFxcXHwvaSkubWFwKGU9PlxcXCJ8XFxcIikuZGVzYyhcXFwiJ29yJ1xcXCIpLHJvb3REYXRlOm49PkYuc2VxTWFwKEYucmVnZXhwKC9cXFxcZHs0fS8pLEYuc3RyaW5nKFxcXCItXFxcIiksRi5yZWdleHAoL1xcXFxkezJ9LyksKGUsdCxyKT0+cS5mcm9tT2JqZWN0KHt5ZWFyOk51bWJlci5wYXJzZUludChlKSxtb250aDpOdW1iZXIucGFyc2VJbnQocil9KSkuZGVzYyhcXFwiZGF0ZSBpbiBmb3JtYXQgWVlZWS1NTVstRERUSEgtTU0tU1MuTVNdXFxcIiksZGF0ZVNob3J0aGFuZDpuPT5GLmFsdCguLi5PYmplY3Qua2V5cyhVdSkuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLm1hcChGLnN0cmluZykpLGRhdGU6bj0+eGYobi5yb290RGF0ZSxlPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiLVxcXCIpLEYucmVnZXhwKC9cXFxcZHsyfS8pLCh0LHIpPT5lLnNldCh7ZGF5Ok51bWJlci5wYXJzZUludChyKX0pKSxlPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiVFxcXCIpLEYucmVnZXhwKC9cXFxcZHsyfS8pLCh0LHIpPT5lLnNldCh7aG91cjpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIjpcXFwiKSxGLnJlZ2V4cCgvXFxcXGR7Mn0vKSwodCxyKT0+ZS5zZXQoe21pbnV0ZTpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIjpcXFwiKSxGLnJlZ2V4cCgvXFxcXGR7Mn0vKSwodCxyKT0+ZS5zZXQoe3NlY29uZDpOdW1iZXIucGFyc2VJbnQocil9KSksZT0+Ri5hbHQoRi5zZXFNYXAoRi5zdHJpbmcoXFxcIi5cXFwiKSxGLnJlZ2V4cCgvXFxcXGR7M30vKSwodCxyKT0+ZS5zZXQoe21pbGxpc2Vjb25kOk51bWJlci5wYXJzZUludChyKX0pKSxGLnN1Y2NlZWQoZSkpLGU9PkYuYWx0KEYuc2VxTWFwKEYuc3RyaW5nKFxcXCIrXFxcIikub3IoRi5zdHJpbmcoXFxcIi1cXFwiKSksRi5yZWdleHAoL1xcXFxkezEsMn0oOlxcXFxkezJ9KT8vKSwodCxyKT0+ZS5zZXRab25lKFxcXCJVVENcXFwiK3Qrcix7a2VlcExvY2FsVGltZTohMH0pKSxGLnNlcU1hcChGLnN0cmluZyhcXFwiWlxcXCIpLCgpPT5lLnNldFpvbmUoXFxcInV0Y1xcXCIse2tlZXBMb2NhbFRpbWU6ITB9KSksRi5zZXFNYXAoRi5zdHJpbmcoXFxcIltcXFwiKSxGLnJlZ2V4cCgvWzAtOUEtWmEteistXFxcXC9dKy91KSxGLnN0cmluZyhcXFwiXVxcXCIpLCh0LHIscyk9PmUuc2V0Wm9uZShyLHtrZWVwTG9jYWxUaW1lOiEwfSkpKSkuYXNzZXJ0KGU9PmUuaXNWYWxpZCxcXFwidmFsaWQgZGF0ZVxcXCIpLmRlc2MoXFxcImRhdGUgaW4gZm9ybWF0IFlZWVktTU1bLUREVEhILU1NLVNTLk1TXVxcXCIpLGRhdGVQbHVzOm49PkYuYWx0KG4uZGF0ZVNob3J0aGFuZC5tYXAoZT0+VXVbZV0oKSksbi5kYXRlKS5kZXNjKFxcXCJkYXRlIGluIGZvcm1hdCBZWVlZLU1NWy1ERFRISC1NTS1TUy5NU10gb3IgaW4gc2hvcnRoYW5kXFxcIiksZHVyYXRpb25UeXBlOm49PkYuYWx0KC4uLk9iamVjdC5rZXlzKFZ1KS5zb3J0KChlLHQpPT50Lmxlbmd0aC1lLmxlbmd0aCkubWFwKEYuc3RyaW5nKSksZHVyYXRpb246bj0+Ri5zZXFNYXAobi5udW1iZXIsRi5vcHRXaGl0ZXNwYWNlLG4uZHVyYXRpb25UeXBlLChlLHQscik9PlZ1W3JdLm1hcFVuaXRzKHM9PnMqZSkpLnNlcEJ5MShGLnN0cmluZyhcXFwiLFxcXCIpLnRyaW0oRi5vcHRXaGl0ZXNwYWNlKS5vcihGLm9wdFdoaXRlc3BhY2UpKS5tYXAoZT0+ZS5yZWR1Y2UoKHQscik9PnQucGx1cyhyKSkpLmRlc2MoXFxcImR1cmF0aW9uIGxpa2UgNGhyMm1pblxcXCIpLHJhd051bGw6bj0+Ri5zdHJpbmcoXFxcIm51bGxcXFwiKSxhdG9tSW5saW5lRmllbGQ6bj0+Ri5hbHQobi5kYXRlLG4uZHVyYXRpb24ubWFwKGU9Pk1pKGUpKSxuLnN0cmluZyxuLnRhZyxuLmVtYmVkTGluayxuLmJvb2wsbi5udW1iZXIsbi5yYXdOdWxsKSxpbmxpbmVGaWVsZExpc3Q6bj0+bi5hdG9tSW5saW5lRmllbGQuc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkubG9va2FoZWFkKG4uYXRvbUlubGluZUZpZWxkKSksaW5saW5lRmllbGQ6bj0+Ri5hbHQoRi5zZXFNYXAobi5hdG9tSW5saW5lRmllbGQsRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5pbmxpbmVGaWVsZExpc3QsKGUsdCxyKT0+W2VdLmNvbmNhdChyKSksbi5hdG9tSW5saW5lRmllbGQpfSkscXU9bmV3IFJlZ0V4cChGbigpLFxcXCJcXFwiKSxWdT17eWVhcjpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5ZWFyczpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5cjpCLmZyb21PYmplY3Qoe3llYXJzOjF9KSx5cnM6Qi5mcm9tT2JqZWN0KHt5ZWFyczoxfSksbW9udGg6Qi5mcm9tT2JqZWN0KHttb250aHM6MX0pLG1vbnRoczpCLmZyb21PYmplY3Qoe21vbnRoczoxfSksbW86Qi5mcm9tT2JqZWN0KHttb250aHM6MX0pLG1vczpCLmZyb21PYmplY3Qoe21vbnRoczoxfSksd2VlazpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3ZWVrczpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3azpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSx3a3M6Qi5mcm9tT2JqZWN0KHt3ZWVrczoxfSksdzpCLmZyb21PYmplY3Qoe3dlZWtzOjF9KSxkYXk6Qi5mcm9tT2JqZWN0KHtkYXlzOjF9KSxkYXlzOkIuZnJvbU9iamVjdCh7ZGF5czoxfSksZDpCLmZyb21PYmplY3Qoe2RheXM6MX0pLGhvdXI6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaG91cnM6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaHI6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksaHJzOkIuZnJvbU9iamVjdCh7aG91cnM6MX0pLGg6Qi5mcm9tT2JqZWN0KHtob3VyczoxfSksbWludXRlOkIuZnJvbU9iamVjdCh7bWludXRlczoxfSksbWludXRlczpCLmZyb21PYmplY3Qoe21pbnV0ZXM6MX0pLG1pbjpCLmZyb21PYmplY3Qoe21pbnV0ZXM6MX0pLG1pbnM6Qi5mcm9tT2JqZWN0KHttaW51dGVzOjF9KSxtOkIuZnJvbU9iamVjdCh7bWludXRlczoxfSksc2Vjb25kOkIuZnJvbU9iamVjdCh7c2Vjb25kczoxfSksc2Vjb25kczpCLmZyb21PYmplY3Qoe3NlY29uZHM6MX0pLHNlYzpCLmZyb21PYmplY3Qoe3NlY29uZHM6MX0pLHNlY3M6Qi5mcm9tT2JqZWN0KHtzZWNvbmRzOjF9KSxzOkIuZnJvbU9iamVjdCh7c2Vjb25kczoxfSl9LFV1PXtub3c6KCk9PnEubG9jYWwoKSx0b2RheTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcImRheVxcXCIpLHllc3RlcmRheTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcImRheVxcXCIpLm1pbnVzKEIuZnJvbU9iamVjdCh7ZGF5czoxfSkpLHRvbW9ycm93OigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwiZGF5XFxcIikucGx1cyhCLmZyb21PYmplY3Qoe2RheXM6MX0pKSxzb3c6KCk9PnEubG9jYWwoKS5zdGFydE9mKFxcXCJ3ZWVrXFxcIiksXFxcInN0YXJ0LW9mLXdlZWtcXFwiOigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwid2Vla1xcXCIpLGVvdzooKT0+cS5sb2NhbCgpLmVuZE9mKFxcXCJ3ZWVrXFxcIiksXFxcImVuZC1vZi13ZWVrXFxcIjooKT0+cS5sb2NhbCgpLmVuZE9mKFxcXCJ3ZWVrXFxcIiksc295OigpPT5xLmxvY2FsKCkuc3RhcnRPZihcXFwieWVhclxcXCIpLFxcXCJzdGFydC1vZi15ZWFyXFxcIjooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcInllYXJcXFwiKSxlb3k6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwieWVhclxcXCIpLFxcXCJlbmQtb2YteWVhclxcXCI6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwieWVhclxcXCIpLHNvbTooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcIm1vbnRoXFxcIiksXFxcInN0YXJ0LW9mLW1vbnRoXFxcIjooKT0+cS5sb2NhbCgpLnN0YXJ0T2YoXFxcIm1vbnRoXFxcIiksZW9tOigpPT5xLmxvY2FsKCkuZW5kT2YoXFxcIm1vbnRoXFxcIiksXFxcImVuZC1vZi1tb250aFxcXCI6KCk9PnEubG9jYWwoKS5lbmRPZihcXFwibW9udGhcXFwiKX0sS3U9Ri5jcmVhdGVMYW5ndWFnZSh7dmFyaWFibGU6bj0+ei5pZGVudGlmaWVyLm1hcChzZS52YXJpYWJsZSkuZGVzYyhcXFwidmFyaWFibGVcXFwiKSxudW1iZXI6bj0+ei5udW1iZXIubWFwKHNlLmxpdGVyYWwpLmRlc2MoXFxcIm51bWJlclxcXCIpLHN0cmluZzpuPT56LnN0cmluZy5tYXAoc2UubGl0ZXJhbCkuZGVzYyhcXFwic3RyaW5nXFxcIiksYm9vbDpuPT56LmJvb2wubWFwKHNlLmxpdGVyYWwpLmRlc2MoXFxcImJvb2xlYW5cXFwiKSxkYXRlOm49PlN0KFxcXCJkYXRlXFxcIix6LmRhdGVQbHVzKS5tYXAoKFtlLHRdKT0+c2UubGl0ZXJhbCh0KSkuZGVzYyhcXFwiZGF0ZVxcXCIpLGR1cmF0aW9uOm49PlN0KFxcXCJkdXJcXFwiLHouZHVyYXRpb24pLm1hcCgoW2UsdF0pPT5zZS5saXRlcmFsKHQpKS5kZXNjKFxcXCJkdXJhdGlvblxcXCIpLG51bGw6bj0+ei5yYXdOdWxsLm1hcChlPT5zZS5OVUxMKSxsaW5rOm49PnoubGluay5tYXAoc2UubGl0ZXJhbCksbGlzdDpuPT5uLmV4cHJlc3Npb24uc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLndyYXAoRi5zdHJpbmcoXFxcIltcXFwiKS5za2lwKEYub3B0V2hpdGVzcGFjZSksRi5vcHRXaGl0ZXNwYWNlLnRoZW4oRi5zdHJpbmcoXFxcIl1cXFwiKSkpLm1hcChlPT5zZS5saXN0KGUpKS5kZXNjKFxcXCJsaXN0XFxcIiksb2JqZWN0Om49PkYuc2VxTWFwKHouaWRlbnRpZmllci5vcih6LnN0cmluZyksRi5zdHJpbmcoXFxcIjpcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5leHByZXNzaW9uLChlLHQscik9Pih7bmFtZTplLHZhbHVlOnJ9KSkuc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLndyYXAoRi5zdHJpbmcoXFxcIntcXFwiKS5za2lwKEYub3B0V2hpdGVzcGFjZSksRi5vcHRXaGl0ZXNwYWNlLnRoZW4oRi5zdHJpbmcoXFxcIn1cXFwiKSkpLm1hcChlPT57bGV0IHQ9e307Zm9yKGxldCByIG9mIGUpdFtyLm5hbWVdPXIudmFsdWU7cmV0dXJuIHNlLm9iamVjdCh0KX0pLmRlc2MoXFxcIm9iamVjdCAoJ3sgYTogMSwgYjogMiB9JylcXFwiKSxhdG9tOm49PkYuYWx0KHouZW1iZWRMaW5rLm1hcChlPT5zZS5saXRlcmFsKGUpKSxuLm5lZ2F0ZWQsbi5saW5rLG4ubGlzdCxuLm9iamVjdCxuLmxhbWJkYSxuLnBhcmVucyxuLmJvb2wsbi5udW1iZXIsbi5zdHJpbmcsbi5kYXRlLG4uZHVyYXRpb24sbi5udWxsLG4udmFyaWFibGUpLGluZGV4Om49PkYuc2VxTWFwKG4uYXRvbSxGLmFsdChuLmRvdFBvc3RmaXgsbi5pbmRleFBvc3RmaXgsbi5mdW5jdGlvblBvc3RmaXgpLm1hbnkoKSwoZSx0KT0+e2xldCByPWU7Zm9yKGxldCBzIG9mIHQpc3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJkb3RcXFwiOnI9c2UuaW5kZXgocixzZS5saXRlcmFsKHMuZXhwcikpO2JyZWFrO2Nhc2VcXFwiaW5kZXhcXFwiOnI9c2UuaW5kZXgocixzLmV4cHIpO2JyZWFrO2Nhc2VcXFwiZnVuY3Rpb25cXFwiOnI9c2UuZnVuYyhyLHMuZXhwcnMpO2JyZWFrfXJldHVybiByfSksbmVnYXRlZDpuPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiIVxcXCIpLG4uaW5kZXgsKGUsdCk9PnNlLm5lZ2F0ZSh0KSkuZGVzYyhcXFwibmVnYXRlZCBmaWVsZFxcXCIpLHBhcmVuczpuPT5uLmV4cHJlc3Npb24udHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSxsYW1iZGE6bj0+Ri5zZXFNYXAoei5pZGVudGlmaWVyLnNlcEJ5KEYuc3RyaW5nKFxcXCIsXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpKS53cmFwKEYuc3RyaW5nKFxcXCIoXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpLEYuc3RyaW5nKFxcXCIpXFxcIikudHJpbShGLm9wdFdoaXRlc3BhY2UpKSxGLnN0cmluZyhcXFwiPT5cXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSksbi5leHByZXNzaW9uLChlLHQscik9Pih7dHlwZTpcXFwibGFtYmRhXFxcIixhcmd1bWVudHM6ZSx2YWx1ZTpyfSkpLGRvdFBvc3RmaXg6bj0+Ri5zZXFNYXAoRi5zdHJpbmcoXFxcIi5cXFwiKSx6LmlkZW50aWZpZXIsKGUsdCk9Pih7dHlwZTpcXFwiZG90XFxcIixleHByOnR9KSksaW5kZXhQb3N0Zml4Om49PkYuc2VxTWFwKEYuc3RyaW5nKFxcXCJbXFxcIiksRi5vcHRXaGl0ZXNwYWNlLG4uZXhwcmVzc2lvbixGLm9wdFdoaXRlc3BhY2UsRi5zdHJpbmcoXFxcIl1cXFwiKSwoZSx0LHIscyxpKT0+KHt0eXBlOlxcXCJpbmRleFxcXCIsZXhwcjpyfSkpLGZ1bmN0aW9uUG9zdGZpeDpuPT5GLnNlcU1hcChGLnN0cmluZyhcXFwiKFxcXCIpLEYub3B0V2hpdGVzcGFjZSxuLmV4cHJlc3Npb24uc2VwQnkoRi5zdHJpbmcoXFxcIixcXFwiKS50cmltKEYub3B0V2hpdGVzcGFjZSkpLEYub3B0V2hpdGVzcGFjZSxGLnN0cmluZyhcXFwiKVxcXCIpLChlLHQscixzLGkpPT4oe3R5cGU6XFxcImZ1bmN0aW9uXFxcIixleHByczpyfSkpLGJpbmFyeU11bERpdjpuPT5NbihuLmluZGV4LHouYmluYXJ5TXVsRGl2LHNlLmJpbmFyeU9wKSxiaW5hcnlQbHVzTWludXM6bj0+TW4obi5iaW5hcnlNdWxEaXYsei5iaW5hcnlQbHVzTWludXMsc2UuYmluYXJ5T3ApLGJpbmFyeUNvbXBhcmU6bj0+TW4obi5iaW5hcnlQbHVzTWludXMsei5iaW5hcnlDb21wYXJlT3Asc2UuYmluYXJ5T3ApLGJpbmFyeUJvb2xlYW46bj0+TW4obi5iaW5hcnlDb21wYXJlLHouYmluYXJ5QW5kT3Aub3Ioei5iaW5hcnlPck9wKSxzZS5iaW5hcnlPcCksYmluYXJ5T3A6bj0+bi5iaW5hcnlCb29sZWFuLGV4cHJlc3Npb246bj0+bi5iaW5hcnlPcH0pLGxiPUYuY3JlYXRlTGFuZ3VhZ2Uoe3F1ZXJ5VGFnOm49PnoudGFnLm1hcChlPT4oe3R5cGU6XFxcInRhZ2dlZFxcXCIsdmFsdWU6ZX0pKSxxdWVyeUlkOm49PlN0KFxcXCJpZFxcXCIsei5zdHJpbmcpLm1hcCgoW2UsdF0pPT4oe3R5cGU6XFxcImlkXFxcIix2YWx1ZTp0fSkpLHF1ZXJ5VHlwZTpuPT5GLnN0cmluZyhcXFwiQFxcXCIpLnRoZW4oei5pZGVudGlmaWVyKS5tYXAoZT0+KHt0eXBlOlxcXCJ0eXBlZFxcXCIsdmFsdWU6ZX0pKSxxdWVyeVBhdGg6bj0+U3QoRi5yZWdleHAoL2U/cGF0aC9pKS5kZXNjKFxcXCJbZV1wYXRoXFxcIiksei5zdHJpbmcpLm1hcCgoW2UsdF0pPT4oe3R5cGU6XFxcInBhdGhcXFwiLHZhbHVlOnQsZXhhY3Q6ZS50b0xvd2VyQ2FzZSgpPT09XFxcImVwYXRoXFxcIn0pKSxxdWVyeVBhcmVudE9mOm49PlN0KEYucmVnZXhwKC9wYXJlbnRvZnxzdXBlcnRyZWUvaSkuZGVzYyhcXFwicGFyZW50b2ZcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJwYXJlbnQtb2ZcXFwiLGNoaWxkcmVuOnQsaW5jbHVzaXZlOmUudG9Mb3dlckNhc2UoKT09PVxcXCJzdXBlcnRyZWVcXFwifSkpLHF1ZXJ5Q2hpbGRPZjpuPT5TdChGLnJlZ2V4cCgvY2hpbGRvZnxzdWJ0cmVlL2kpLmRlc2MoXFxcImNoaWxkb2ZcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJjaGlsZC1vZlxcXCIscGFyZW50czp0LGluY2x1c2l2ZTplLnRvTG93ZXJDYXNlKCk9PT1cXFwic3VidHJlZVxcXCJ9KSkscXVlcnlTaW1wbGVMaW5rZWQ6bj0+ei5saW5rLm1hcChlPT4oe3R5cGU6XFxcImxpbmtlZFxcXCIsc291cmNlOnt0eXBlOlxcXCJsaW5rXFxcIix2YWx1ZTplfSxkaXJlY3Rpb246XFxcImluY29taW5nXFxcIn0pKSxxdWVyeUxpbmtlZDpuPT5TdChGLnJlZ2V4cCgvbGlua3N0b3xsaW5rZWRmcm9tfGNvbm5lY3RlZC9pKS5kZXNjKFxcXCJjb25uZWN0ZWRcXFwiKSxuLnF1ZXJ5KS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJsaW5rZWRcXFwiLHNvdXJjZTp0LGRpcmVjdGlvbjplLnRvTG93ZXJDYXNlKCk9PVxcXCJsaW5rc3RvXFxcIj9cXFwiaW5jb21pbmdcXFwiOmUudG9Mb3dlckNhc2UoKT09XFxcImxpbmtlZGZyb21cXFwiP1xcXCJvdXRnb2luZ1xcXCI6XFxcImJvdGhcXFwifSkpLHF1ZXJ5RXhpc3RzOm49PlN0KEYucmVnZXhwKC9leGlzdHMvaSkuZGVzYyhcXFwiZXhpc3RzXFxcIiksei5pZGVudGlmaWVyLm9yKHouc3RyaW5nKSkubWFwKChbZSx0XSk9Pih7dHlwZTpcXFwiZmllbGRcXFwiLHZhbHVlOnR9KSkscXVlcnlRdW90ZWRFeHByZXNzaW9uOm49PlN0KEYucmVnZXhwKC9leHByL2kpLmRlc2MoXFxcImV4cHJcXFwiKSxLdS5leHByZXNzaW9uKS5tYXAoKFtlLHRdKT0+KHt0eXBlOlxcXCJleHByZXNzaW9uXFxcIixleHByZXNzaW9uOnR9KSkscXVlcnlSYXdFeHByZXNzaW9uOm49Pkt1LmJpbmFyeUNvbXBhcmUubWFwKGU9Pih7dHlwZTpcXFwiZXhwcmVzc2lvblxcXCIsZXhwcmVzc2lvbjplfSkpLHF1ZXJ5UGFyZW5zOm49Pm4ucXVlcnkudHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSxxdWVyeU5lZ2F0ZTpuPT5GLnN0cmluZyhcXFwiIVxcXCIpLnNraXAoRi5vcHRXaGl0ZXNwYWNlKS50aGVuKG4ucXVlcnlBdG9tKS5tYXAoZT0+KHt0eXBlOlxcXCJub3RcXFwiLGVsZW1lbnQ6ZX0pKSxxdWVyeUF0b206bj0+Ri5hbHQobi5xdWVyeVBhcmVucyxuLnF1ZXJ5TmVnYXRlLG4ucXVlcnlTaW1wbGVMaW5rZWQsbi5xdWVyeVRhZyxuLnF1ZXJ5VHlwZSxuLnF1ZXJ5SWQsbi5xdWVyeUV4aXN0cyxuLnF1ZXJ5Q2hpbGRPZixuLnF1ZXJ5UGFyZW50T2Ysbi5xdWVyeUxpbmtlZCxuLnF1ZXJ5UGF0aCxuLnF1ZXJ5UXVvdGVkRXhwcmVzc2lvbixuLnF1ZXJ5UmF3RXhwcmVzc2lvbikscXVlcnlBbmRzOm49Pk1uKG4ucXVlcnlBdG9tLHouYmluYXJ5QW5kT3AsKGUsdCxyKT0+KHt0eXBlOlxcXCJhbmRcXFwiLGVsZW1lbnRzOltlLHJdfSkpLHF1ZXJ5T3JzOm49Pk1uKG4ucXVlcnlBbmRzLHouYmluYXJ5T3JPcCwoZSx0LHIpPT4oe3R5cGU6XFxcIm9yXFxcIixlbGVtZW50czpbZSxyXX0pKSxxdWVyeTpuPT5uLnF1ZXJ5T3JzLnRyaW0oRi5vcHRXaGl0ZXNwYWNlKX0pO2Z1bmN0aW9uIE1uKG4sZSx0KXtyZXR1cm4gRi5zZXFNYXAobixGLnNlcShGLm9wdFdoaXRlc3BhY2UsZSxGLm9wdFdoaXRlc3BhY2UsbikubWFueSgpLChyLHMpPT57aWYocy5sZW5ndGg9PTApcmV0dXJuIHI7bGV0IGk9dChyLHNbMF1bMV0sc1swXVszXSk7Zm9yKGxldCBvPTE7bzxzLmxlbmd0aDtvKyspaT10KGksc1tvXVsxXSxzW29dWzNdKTtyZXR1cm4gaX0pfWZ1bmN0aW9uIFN0KG4sZSl7bGV0IHQ9dHlwZW9mIG49PVxcXCJzdHJpbmdcXFwiP0Yuc3RyaW5nKG4pOm47cmV0dXJuIEYuc2VxTWFwKHQuc2tpcChGLm9wdFdoaXRlc3BhY2UpLGUudHJpbShGLm9wdFdoaXRlc3BhY2UpLndyYXAoRi5zdHJpbmcoXFxcIihcXFwiKSxGLnN0cmluZyhcXFwiKVxcXCIpKSwocixzKT0+W3Isc10pfWZ1bmN0aW9uIHhmKG4sLi4uZSl7cmV0dXJuIEYuY3VzdG9tKCh0LHIpPT4ocyxpKT0+e2xldCBvPW4uXyhzLGkpO2lmKCFvLnN0YXR1cylyZXR1cm4gbztmb3IobGV0IGEgb2YgZSl7bGV0IHU9YShvLnZhbHVlKS5fKHMsby5pbmRleCk7aWYoIXUuc3RhdHVzKXJldHVybiBvO289dX1yZXR1cm4gb30pfXZhciBadD1WcihucygpKTtmdW5jdGlvbiBHdChuLGUpe2xldCB0PXt9O2ZvcihsZXRbcixzXW9mIE9iamVjdC5lbnRyaWVzKG4pKXRbcl09ZShzKTtyZXR1cm4gdH12YXIgX247KHI9PntyLk5PT1BfTk9STUFMSVpFUj1zPT5zO2Z1bmN0aW9uIGUocyl7bGV0IGk9ZXQud3JhcFZhbHVlKHMpO2lmKCFpKXJldHVybiBudWxsO3N3aXRjaChpPT1udWxsP3ZvaWQgMDppLnR5cGUpe2Nhc2VcXFwiYXJyYXlcXFwiOnJldHVybiBpLnZhbHVlLm1hcChyLmpzb24pO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gR3QoaS52YWx1ZSxyLmpzb24pO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJueyRfdHlwZTpcXFwiZGF0ZVxcXCIsdmFsdWU6aS52YWx1ZS50b0lTTyh7ZXh0ZW5kZWRab25lOiEwLGluY2x1ZGVPZmZzZXQ6ITB9KX07Y2FzZVxcXCJsaW5rXFxcIjpyZXR1cm57JF90eXBlOlxcXCJsaW5rXFxcIix2YWx1ZTppLnZhbHVlLnRvT2JqZWN0KCl9O2Nhc2VcXFwiZHVyYXRpb25cXFwiOnJldHVybnskX3R5cGU6XFxcImR1cmF0aW9uXFxcIix2YWx1ZTppLnZhbHVlLnRvSVNPKCl9O2Nhc2VcXFwiYm9vbGVhblxcXCI6Y2FzZVxcXCJudW1iZXJcXFwiOmNhc2VcXFwic3RyaW5nXFxcIjpyZXR1cm4gaS52YWx1ZTtjYXNlXFxcImZ1bmN0aW9uXFxcIjpjYXNlXFxcIm51bGxcXFwiOnJldHVybiBudWxsfX1yLmpzb249ZTtmdW5jdGlvbiB0KHMsaT1yLk5PT1BfTk9STUFMSVpFUil7aWYocz09bnVsbClyZXR1cm4gbnVsbDtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBpKHMubWFwKG89PnIudmFsdWUobyxpKSkpO2lmKHR5cGVvZiBzPT1cXFwib2JqZWN0XFxcIil7aWYoIShcXFwiJF90eXBlXFxcImluIHMpKXJldHVybiBHdChzLGE9PnIudmFsdWUoYSxpKSk7bGV0IG89cy4kX3R5cGU7c3dpdGNoKG8pe2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIGkocS5mcm9tSVNPKHMudmFsdWUpKTtjYXNlXFxcImR1cmF0aW9uXFxcIjpyZXR1cm4gaShCLmZyb21JU08ocy52YWx1ZSkpO2Nhc2VcXFwibGlua1xcXCI6cmV0dXJuIGkoeGUuZnJvbU9iamVjdChzLnZhbHVlKSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBzZXJpYWxpemVkIHR5cGUgJyR7b30nIWApfX1yZXR1cm4gaShzKX1yLnZhbHVlPXR9KShfbnx8KF9uPXt9KSk7ZnVuY3Rpb24gV3Uobil7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbix7dmFsdWU6X24uanNvbihuLnZhbHVlKX0pfWZ1bmN0aW9uICRzKG4sZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bi5tYXAodD0+JHModCxlKSk6e2tleTpuLmtleSxyYXc6bi52YWx1ZSx2YWx1ZTpOZihuLnZhbHVlKSxwb3NpdGlvbjp7bGluZTplLHN0YXJ0Om4uc3RhcnQsc3RhcnRWYWx1ZTpuLnN0YXJ0VmFsdWUsZW5kOm4uZW5kfSx3cmFwcGluZzpuLndyYXBwaW5nfX12YXIgUHM9T2JqZWN0LmZyZWV6ZSh7XFxcIltcXFwiOlxcXCJdXFxcIixcXFwiKFxcXCI6XFxcIilcXFwifSk7ZnVuY3Rpb24gSWYobixlLHQscil7bGV0IHM9MCxpPSExO2ZvcihsZXQgbz1lO288bi5sZW5ndGg7bysrKXtsZXQgYT1uLmNoYXJBdChvKTtpZihhPT1cXFwiXFxcXFxcXFxcXFwiKXtpPSFpO2NvbnRpbnVlfWlmKGkpe2k9ITE7Y29udGludWV9aWYoYT09dD9zKys6YT09ciYmcy0tLHM8MClyZXR1cm57dmFsdWU6bi5zdWJzdHJpbmcoZSxvKS50cmltKCksZW5kSW5kZXg6bysxfTtpPSExfX1mdW5jdGlvbiBIdShuLGUpe2xldCB0PW4uaW5kZXhPZihcXFwiOjpcXFwiLGUpO2lmKCEodDwwKSlyZXR1cm57a2V5Om4uc3Vic3RyaW5nKGUsdCkudHJpbSgpLHZhbHVlSW5kZXg6dCsyfX1mdW5jdGlvbiBMZihuLGUpe2xldCB0PW4uY2hhckF0KGUpLHI9SHUobixlKzEpO2lmKHI9PT12b2lkIDApcmV0dXJuO2ZvcihsZXQgaSBvZiBPYmplY3Qua2V5cyhQcykuY29uY2F0KE9iamVjdC52YWx1ZXMoUHMpKSlpZihyLmtleS5pbmNsdWRlcyhpKSlyZXR1cm47bGV0IHM9SWYobixyLnZhbHVlSW5kZXgsdCxQc1t0XSk7aWYocyE9PXZvaWQgMClyZXR1cm57a2V5OnIua2V5LHZhbHVlOnMudmFsdWUsc3RhcnQ6ZSxzdGFydFZhbHVlOnIudmFsdWVJbmRleCxlbmQ6cy5lbmRJbmRleCx3cmFwcGluZzp0fX1mdW5jdGlvbiBOZihuKXtpZihuLnRyaW0oKT09XFxcIlxcXCIpcmV0dXJuIG51bGw7bGV0IGU9ei5pbmxpbmVGaWVsZC5wYXJzZShuKTtyZXR1cm4gZS5zdGF0dXM/ZS52YWx1ZTpufWZ1bmN0aW9uIEp1KG4sZT0hMSl7bGV0IHQ9W107Zm9yKGxldCBzIG9mIE9iamVjdC5rZXlzKFBzKSl7bGV0IGk9bi5pbmRleE9mKHMpO2Zvcig7aT49MDspe2xldCBvPUxmKG4saSk7aWYoIW8pe2k9bi5pbmRleE9mKHMsaSsxKTtjb250aW51ZX10LnB1c2gobyksaT1uLmluZGV4T2YocyxvLmVuZCl9fWUmJih0PXQuY29uY2F0KHFmKG4pKSksdC5zb3J0KChzLGkpPT5zLnN0YXJ0LWkuc3RhcnQpO2xldCByPVtdO2ZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cysrKShzPT0wfHxyW3IubGVuZ3RoLTFdLmVuZDx0W3NdLnN0YXJ0KSYmci5wdXNoKHRbc10pO3JldHVybiByfXZhciBBZj1adC5hbHQoWnQucmVnZXhwKG5ldyBSZWdFeHAoRm4oKSxcXFwidVxcXCIpKSxadC5yZWdleHAoL1swLTlcXFxccHtMZXR0ZXJ9XFxcXHdcXFxcc18vLV0rL3UpKS5tYW55KCkubWFwKG49Pm4uam9pbihcXFwiXFxcIikpLE1mPVp0LnJlZ2V4cCgvW14wLTlcXFxcd1xcXFxwe0xldHRlcn1dKi91KS50aGVuKEFmKS5za2lwKFp0LnJlZ2V4cCgvW19cXFxcKn5gXSovdSkpO2Z1bmN0aW9uIHp1KG4pe2xldCBlPUh1KG4sMCk7aWYoIWUpcmV0dXJuO2xldCB0PU1mLnBhcnNlKGUua2V5KTtpZih0LnN0YXR1cylyZXR1cm57a2V5OnQudmFsdWUsdmFsdWU6bi5zdWJzdHJpbmcoZS52YWx1ZUluZGV4KS50cmltKCksc3RhcnQ6MCxzdGFydFZhbHVlOmUudmFsdWVJbmRleCxlbmQ6bi5sZW5ndGh9fXZhciBfZj0vXFxcXHV7Mjc5NX1cXFxccyooXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0pL3UsQmY9Lyg/OlxcXFx1ezFGNEM1fXxcXFxcdXsxRjRDNn18XFxcXHV7MUY1RDN9XFxcXHV7RkUwRn0/KVxcXFxzKihcXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfSkvdSxQZj0vXFxcXHV7MjcwNX1cXFxccyooXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0pL3UsJGY9L1tcXFxcdXsyM0YzfVxcXFx1ezIzMUJ9XVxcXFxzKihcXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfSkvdSxSZj0vXFxcXHV7MUY2RUJ9XFxcXHMqKFxcXFxkezR9LVxcXFxkezJ9LVxcXFxkezJ9KS91LGpmPVt7cmVnZXg6X2Ysa2V5OlxcXCJjcmVhdGVkXFxcIn0se3JlZ2V4OlJmLGtleTpcXFwic3RhcnRcXFwifSx7cmVnZXg6JGYsa2V5OlxcXCJzY2hlZHVsZWRcXFwifSx7cmVnZXg6QmYsa2V5OlxcXCJkdWVcXFwifSx7cmVnZXg6UGYsa2V5OlxcXCJjb21wbGV0aW9uXFxcIn1dO2Z1bmN0aW9uIHFmKG4pe2xldCBlPVtdO2ZvcihsZXR7cmVnZXg6dCxrZXk6cn1vZiBqZil7bGV0IHM9dC5leGVjKG4pO3MmJmUucHVzaCh7a2V5OnIsdmFsdWU6c1sxXSxzdGFydDpzLmluZGV4LHN0YXJ0VmFsdWU6cy5pbmRleCsxLGVuZDpzLmluZGV4K3NbMF0ubGVuZ3RoLHdyYXBwaW5nOlxcXCJlbW9qaS1zaG9ydGhhbmRcXFwifSl9cmV0dXJuIGV9dmFyIFJzOyh0PT57ZnVuY3Rpb24gbihyKXtsZXQgcz1ldC53cmFwVmFsdWUoZSk7aWYoIXMpcmV0dXJuIG51bGw7c3dpdGNoKHMudHlwZSl7Y2FzZVxcXCJzdHJpbmdcXFwiOmNhc2VcXFwiYm9vbGVhblxcXCI6Y2FzZVxcXCJudWxsXFxcIjpjYXNlXFxcIm51bWJlclxcXCI6cmV0dXJuIHMudmFsdWU7Y2FzZVxcXCJhcnJheVxcXCI6cmV0dXJuIHMudmFsdWUubWFwKG4pO2Nhc2VcXFwiZGF0ZVxcXCI6cmV0dXJuIHMudmFsdWUudG9JU08oKTtjYXNlXFxcImR1cmF0aW9uXFxcIjpyZXR1cm4gcy52YWx1ZS50b0h1bWFuKCk7Y2FzZVxcXCJmdW5jdGlvblxcXCI6cmV0dXJuIG51bGw7Y2FzZVxcXCJsaW5rXFxcIjpyZXR1cm4gcy52YWx1ZS5tYXJrZG93bigpO2Nhc2VcXFwib2JqZWN0XFxcIjpyZXR1cm4gR3Qocy52YWx1ZSxuKX19dC55YW1sPW47ZnVuY3Rpb24gZShyKXtpZihyPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiByPT1cXFwib2JqZWN0XFxcIilpZihBcnJheS5pc0FycmF5KHIpKXtsZXQgcz1bXTtmb3IobGV0IGkgb2YgcilzLnB1c2goZShpKSk7cmV0dXJuIHN9ZWxzZXtpZihyIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gcS5mcm9tSlNEYXRlKHIpO3tsZXQgcz1yLGk9e307Zm9yKGxldCBvIGluIHMpaVtvXT1lKHNbb10pO3JldHVybiBpfX1lbHNle2lmKHR5cGVvZiByPT1cXFwibnVtYmVyXFxcIilyZXR1cm4gcjtpZih0eXBlb2Ygcj09XFxcImJvb2xlYW5cXFwiKXJldHVybiByO2lmKHR5cGVvZiByPT1cXFwic3RyaW5nXFxcIil7bGV0IHM9ei5kYXRlLnBhcnNlKHIpO2lmKHMuc3RhdHVzKXJldHVybiBzLnZhbHVlO2xldCBpPXouZHVyYXRpb24ucGFyc2Uocik7aWYoaS5zdGF0dXMpcmV0dXJuIGkudmFsdWU7bGV0IG89ei5saW5rLnBhcnNlKHIpO3JldHVybiBvLnN0YXR1cz9vLnZhbHVlOnJ9fXJldHVybiBudWxsfXQubGl0ZXJhbD1lfSkoUnN8fChScz17fSkpO3ZhciBWZj0vYGBgeWFtbDpkYXRhL2ksVWY9L14oPzpgYGB8fn5+KSguKikkL2ltLEtmPW5ldyBSZWdFeHAoXFxcIl5bXFxcXFxcXFxzPl0qKFxcXFxcXFxcZCtcXFxcXFxcXC58XFxcXFxcXFxkK1xcXFxcXFxcKXxcXFxcXFxcXCp8LXxcXFxcXFxcXCspXFxcXFxcXFxzKihcXFxcXFxcXFsuezAsMX1cXFxcXFxcXF0pP1xcXFxcXFxccyooLiopXFxcIixcXFwibXN1XFxcIik7ZnVuY3Rpb24gWnUobixlLHQscil7bGV0e2xpbmVzOnMsbWV0YWRhdGE6aSxmcm9udG1hdHRlcjpvLHNlY3Rpb25zOmF9PUZvKG4sZSx0KTtyZXR1cm4gbmV3IG1vKG4scixzLmxlbmd0aCxpLGEsbykuYnVpbGQoKX1mdW5jdGlvbiBGbyhuLGUsdCl7dmFyIGIsZyxELFQsSSxOLHksdyx2LE8sQyxWLGosWSxlZSxhZTtsZXQgcj10IT1udWxsJiZ0LmZyb250bWF0dGVyP0d1KHQuZnJvbnRtYXR0ZXIpOnZvaWQgMCxzPWUuc3BsaXQoL1xcXFxyXFxcXG58XFxcXHJ8XFxcXG4vKSxpPW5ldyAkZSxvPVtdLGE9KGI9dD09bnVsbD92b2lkIDA6dC5oZWFkaW5ncykhPW51bGw/YjpbXTthLnNvcnQoKHgsJCk9PngucG9zaXRpb24uc3RhcnQubGluZS0kLnBvc2l0aW9uLnN0YXJ0LmxpbmUpO2xldCB1PW5ldyBqcy5kZWZhdWx0KHZvaWQgMCwoeCwkKT0+eC0kKTtmb3IobGV0IHg9MDt4PGEubGVuZ3RoO3grKyl7bGV0ICQ9YVt4XSxRPSQucG9zaXRpb24uc3RhcnQubGluZSx1ZT14PT1hLmxlbmd0aC0xP3MubGVuZ3RoOmFbeCsxXS5wb3NpdGlvbi5zdGFydC5saW5lLERlPW5ldyBfcihRLHVlLCQuaGVhZGluZywkLmxldmVsLHgrMSk7dS5zZXQoUSxEZSl9aWYodS5zaXplPT0wKXtpZighWXUocywwLHMubGVuZ3RoKSl7bGV0IHg9bmV3IF9yKDAscy5sZW5ndGgsRW4obiksMSwwKTt1LnNldCgwLHgpfX1lbHNle2xldCB4PShnPXUuZ2V0UGFpck9yTmV4dEhpZ2hlcigwKSk9PW51bGw/dm9pZCAwOmdbMV07aWYoeC5zdGFydD4wJiYhWXUocywwLHguc3RhcnQpKXtsZXQgJD1uZXcgX3IoMCx4LnN0YXJ0LEVuKG4pLDEsMCk7dS5zZXQoMCwkKX19bGV0IGw9bmV3IGpzLmRlZmF1bHQodm9pZCAwLCh4LCQpPT54LSQpLGY9MTtmb3IobGV0IHggb2YodD09bnVsbD92b2lkIDA6dC5zZWN0aW9ucyl8fFtdKXtpZih4LnR5cGU9PT1cXFwiaGVhZGluZ1xcXCIpY29udGludWU7bGV0ICQ9eC5wb3NpdGlvbi5zdGFydC5saW5lLFE9eC5wb3NpdGlvbi5lbmQubGluZSsxLHVlPXNbJF07aWYoeC50eXBlPT09XFxcImxpc3RcXFwiKWwuc2V0KCQsbmV3IERvKCQsUSxmKysseC5pZCkpO2Vsc2UgaWYoeC50eXBlPT1cXFwiY29kZVxcXCImJlZmLnRlc3QodWUpKXtsZXQgRGU9cy5zbGljZSgkKzEsUS0xKS5qb2luKGBcXG5gKS5yZXBsYWNlKC9cXFxcdC9nbSxcXFwiICBcXFwiKSxSZT1HdShjbyhEZSkpO2wuc2V0KCQsbmV3IHlvKCQsUSxmKyssUmUseC5pZCkpfWVsc2UgaWYoeC50eXBlPT09XFxcImNvZGVcXFwiKXtsZXQgRGU9dWUubWF0Y2goVWYpO2lmKCFEZSlsLnNldCgkLG5ldyBxcygkLFEsZisrLFtdLFxcXCJpbmRlbnRcXFwiLCQsUSx4LmlkKSk7ZWxzZXtsZXQgUmU9RGUubGVuZ3RoPjEmJkRlWzFdP0RlWzFdLnNwbGl0KFxcXCIsXFxcIik6W107bC5zZXQoJCxuZXcgcXMoJCxRLGYrKyxSZSxcXFwiZmVuY2VkXFxcIiwkKzEsUS0xLHguaWQpKX19ZWxzZSBsLnNldCgkLG5ldyBnbygkLFEsZisrLHgudHlwZSx4LmlkKSl9Zm9yKGxldCB4IG9mIGwudmFsdWVzKCkpKEQ9Y3QoeC5zdGFydCx1KSk9PW51bGx8fEQuYmxvY2soeCk7bGV0IGQ9L15bXFxcXHRcXFxcZlxcXFx2IF0qW1xcXFwtK1xcXFwqXVxcXFxzKFxcXFxbLlxcXFxdXFxcXHMpPy8scD0vXig+P1xcXFxzPykqKFxcXFx0fFxcXFxzKSovZyxoPW5ldyBqcy5kZWZhdWx0KHZvaWQgMCwoeCwkKT0+eC0kKTtmb3IobGV0IHggb2YodD09bnVsbD92b2lkIDA6dC5saXN0SXRlbXMpfHxbXSl7bGV0IFE9cy5zbGljZSh4LnBvc2l0aW9uLnN0YXJ0LmxpbmUseC5wb3NpdGlvbi5lbmQubGluZSsxKS5qb2luKGBcXG5gKS5tYXRjaChLZiksdWUsRGU7USYmKHVlPVFbMV0sRGU9UVszXSk7bGV0IFJlPW5ldyBibyh4LnBvc2l0aW9uLnN0YXJ0LmxpbmUseC5wb3NpdGlvbi5lbmQubGluZSsxLHgucGFyZW50LHVlLHguaWQseC50YXNrLERlKTtoLnNldChSZS5zdGFydCxSZSl9Zm9yKGxldCB4IG9mIGgudmFsdWVzKCkpaWYoeC5wYXJlbnRMaW5lPDApe2xldCAkPWwuZ2V0KC14LnBhcmVudExpbmUpO2lmKCEkfHwkLnR5cGUhPT1cXFwibGlzdFxcXCIpY29udGludWU7JC5pdGVtcy5wdXNoKHgpfWVsc2UoVD1oLmdldCh4LnBhcmVudExpbmUpKT09bnVsbHx8VC5lbGVtZW50cy5wdXNoKHgpO2ZvcihsZXQgeCBvZihJPXQ9PW51bGw/dm9pZCAwOnQudGFncykhPW51bGw/STpbXSl7bGV0ICQ9eC50YWcuc3RhcnRzV2l0aChcXFwiI1xcXCIpP3gudGFnOlxcXCIjXFxcIit4LnRhZyxRPXgucG9zaXRpb24uc3RhcnQubGluZTtpLnRhZygkKSwoTj1jdChRLHUpKT09bnVsbHx8Ti5tZXRhZGF0YS50YWcoJCksKHk9Y3QoUSxsKSk9PW51bGx8fHkubWV0YWRhdGEudGFnKCQpLCh3PWN0KFEsaCkpPT1udWxsfHx3Lm1ldGFkYXRhLnRhZygkKX1pZih0IT1udWxsJiZ0LmZyb250bWF0dGVyKWZvcihsZXQgeCBvZiBXZih0LmZyb250bWF0dGVyKSl7bGV0ICQ9eC5zdGFydHNXaXRoKFxcXCIjXFxcIik/eDpcXFwiI1xcXCIreDtpLnRhZygkKX1mb3IobGV0IHggb2Yodj10PT1udWxsP3ZvaWQgMDp0LmxpbmtzKSE9bnVsbD92OltdKXtsZXQgJD14ZS5pbmZlcih4LmxpbmspLFE9eC5wb3NpdGlvbi5zdGFydC5saW5lO2kubGluaygkKSwoTz1jdChRLHUpKT09bnVsbHx8Ty5tZXRhZGF0YS5saW5rKCQpLChDPWN0KFEsbCkpPT1udWxsfHxDLm1ldGFkYXRhLmxpbmsoJCksKFY9Y3QoUSxoKSk9PW51bGx8fFYubWV0YWRhdGEubGluaygkKX1mb3IobGV0IHggb2Yoaj10PT1udWxsP3ZvaWQgMDp0LmZyb250bWF0dGVyTGlua3MpIT1udWxsP2o6W10paS5saW5rKHhlLmluZmVyKHgubGluaywhMSx4LmRpc3BsYXlUZXh0KSk7Zm9yKGxldCB4IG9mIEVvKHMpKXtsZXQgJD14LnBvc2l0aW9uLmxpbmU7aS5pbmxpbmVGaWVsZCh4KSwoWT1jdCgkLHUpKT09bnVsbHx8WS5tZXRhZGF0YS5pbmxpbmVGaWVsZCh4KSwoZWU9Y3QoJCxsKSk9PW51bGx8fGVlLm1ldGFkYXRhLmlubGluZUZpZWxkKHgpLChhZT1jdCgkLGgpKT09bnVsbHx8YWUubWV0YWRhdGEuaW5saW5lRmllbGQoeCl9cmV0dXJuIG8ucHVzaCguLi51LnZhbHVlcygpKSx7bGluZXM6cyxmcm9udG1hdHRlcjpyLG1ldGFkYXRhOmksc2VjdGlvbnM6b319ZnVuY3Rpb24gWXUobixlLHQpe2ZvcihsZXQgcj1lO3I8dDtyKyspaWYobltyXS50cmltKCkhPT1cXFwiXFxcIilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbipFbyhuKXtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7bGV0IHQ9bltlXTtpZih0Lmxlbmd0aD4zMjc2OHx8IXQuaW5jbHVkZXMoXFxcIjo6XFxcIikpY29udGludWU7bGV0IHI9SnUodCk7aWYoci5sZW5ndGg+MClmb3IobGV0IHMgb2Ygcil5aWVsZCAkcyhzLGUpO2Vsc2V7bGV0IHM9enUodCk7cyYmKHlpZWxkICRzKHMsZSkpfX19ZnVuY3Rpb24gR3Uobil7bGV0IGU9e307Zm9yKGxldCB0IG9mIE9iamVjdC5rZXlzKG4pKXtsZXQgcj1uW3RdO2VbdC50b0xvd2VyQ2FzZSgpXT17a2V5OnQsdmFsdWU6X24uanNvbihScy5saXRlcmFsKHIpKSxyYXc6cn19cmV0dXJuIGV9ZnVuY3Rpb24gY3QobixlKXt2YXIgcjtsZXQgdD0ocj1lLmdldFBhaXJPck5leHRMb3dlcihuKSk9PW51bGw/dm9pZCAwOnJbMV07aWYodCYmdC5lbmQ+PW4pcmV0dXJuIHR9ZnVuY3Rpb24gV2Yobil7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZpbHRlcih0PT50LnRvTG93ZXJDYXNlKCk9PVxcXCJ0YWdzXFxcInx8dC50b0xvd2VyQ2FzZSgpPT1cXFwidGFnXFxcIikubWFwKHQ9PlF1KG5bdF0sL1ssXFxcXHNdKy8pKS5yZWR1Y2UoKHQscik9PnQuY29uY2F0KHIpLFtdKS5tYXAodD0+dC5zdGFydHNXaXRoKFxcXCIjXFxcIik/dDpcXFwiI1xcXCIrdCl9ZnVuY3Rpb24gUXUobixlKXtyZXR1cm4gbj09bnVsbHx8bj09bnVsbD9bXTpBcnJheS5pc0FycmF5KG4pP24uZmlsdGVyKHQ9PiEhdCkubWFwKHQ9PlF1KHQsZSkpLnJlZHVjZSgodCxyKT0+dC5jb25jYXQociksW10pOihcXFwiXFxcIituKS5zcGxpdChlKS5maWx0ZXIodD0+ISF0KS5tYXAodD0+dC50cmltKCkpLmZpbHRlcih0PT50Lmxlbmd0aD4wKX12YXIgJGU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnRhZ3M9bmV3IFNldDt0aGlzLmxpbmtzPVtdO3RoaXMuaW5saW5lRmllbGRzPXt9fXRhZyhlKXt0aGlzLnRhZ3MuYWRkKGUpfWxpbmsoZSl7dGhpcy5saW5rcy5maW5kKHQ9PnQuZXF1YWxzKGUpKXx8dGhpcy5saW5rcy5wdXNoKGUpfWlubGluZUZpZWxkKGUpe2xldCB0PWUua2V5LnRvTG93ZXJDYXNlKCk7T2JqZWN0LmtleXModGhpcy5pbmxpbmVGaWVsZHMpLnNvbWUocj0+ci50b0xvd2VyQ2FzZSgpPT10KXx8KHRoaXMuaW5saW5lRmllbGRzW3RdPWUpfWZpbmlzaFRhZ3MoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhZ3MpfWZpbmlzaExpbmtzKCl7cmV0dXJuIHRoaXMubGlua3MubWFwKGU9PmUudG9PYmplY3QoKSl9ZmluaXNoSW5saW5lRmllbGRzKCl7cmV0dXJuIEd0KHRoaXMuaW5saW5lRmllbGRzLFd1KX19LG1vPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLHMsaSxvKXt0aGlzLnBhdGg9ZTt0aGlzLnN0YXRzPXQ7dGhpcy5sZW5ndGg9cjt0aGlzLm1ldGFkYXRhPXM7dGhpcy5zZWN0aW9ucz1pO3RoaXMuZnJvbnRtYXR0ZXI9b31idWlsZCgpe3JldHVybnskcGF0aDp0aGlzLnBhdGgsJGN0aW1lOnRoaXMuc3RhdHMuY3RpbWUsJG10aW1lOnRoaXMuc3RhdHMubXRpbWUsJHNpemU6dGhpcy5zdGF0cy5zaXplLCRleHRlbnNpb246VmEodGhpcy5wYXRoKSwkcG9zaXRpb246e3N0YXJ0OjAsZW5kOnRoaXMubGVuZ3RofSwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCRpbmZpZWxkczp0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLCRzZWN0aW9uczp0aGlzLnNlY3Rpb25zLm1hcChlPT5lLmJ1aWxkKCkpLCRmcm9udG1hdHRlcjp0aGlzLmZyb250bWF0dGVyfX19LF9yPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLHMsaSl7dGhpcy5zdGFydD1lO3RoaXMuZW5kPXQ7dGhpcy50aXRsZT1yO3RoaXMubGV2ZWw9czt0aGlzLm9yZGluYWw9aTt0aGlzLmJsb2Nrcz1bXTt0aGlzLm1ldGFkYXRhPW5ldyAkZX1ibG9jayhlKXt0aGlzLmJsb2Nrcy5wdXNoKGUpfWJ1aWxkKCl7cmV0dXJueyR0aXRsZTp0aGlzLnRpdGxlLCRvcmRpbmFsOnRoaXMub3JkaW5hbCwkbGV2ZWw6dGhpcy5sZXZlbCwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCRwb3NpdGlvbjp7c3RhcnQ6dGhpcy5zdGFydCxlbmQ6dGhpcy5lbmR9LCRibG9ja3M6dGhpcy5ibG9ja3MubWFwKGU9PmUuYnVpbGQoKSl9fX0sRG89Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIscyl7dGhpcy5zdGFydD1lO3RoaXMuZW5kPXQ7dGhpcy5vcmRpbmFsPXI7dGhpcy5ibG9ja0lkPXM7dGhpcy50eXBlPVxcXCJsaXN0XFxcIjt0aGlzLm1ldGFkYXRhPW5ldyAkZTt0aGlzLml0ZW1zPVtdfWJ1aWxkKCl7cmV0dXJueyRvcmRpbmFsOnRoaXMub3JkaW5hbCwkcG9zaXRpb246e3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfSwkaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCR0eXBlOlxcXCJsaXN0XFxcIiwkYmxvY2tJZDp0aGlzLmJsb2NrSWQsJGVsZW1lbnRzOnRoaXMuaXRlbXMubWFwKGU9PmUuYnVpbGQoKSl9fX0scXM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIscyxpLG8sYSx1KXt0aGlzLnN0YXJ0PWU7dGhpcy5lbmQ9dDt0aGlzLm9yZGluYWw9cjt0aGlzLmxhbmd1YWdlcz1zO3RoaXMuc3R5bGU9aTt0aGlzLmNvbnRlbnRTdGFydD1vO3RoaXMuY29udGVudEVuZD1hO3RoaXMuYmxvY2tJZD11O3RoaXMudHlwZT1cXFwiY29kZWJsb2NrXFxcIjt0aGlzLm1ldGFkYXRhPW5ldyAkZX1idWlsZCgpe3JldHVybnskdHlwZTpcXFwiY29kZWJsb2NrXFxcIiwkb3JkaW5hbDp0aGlzLm9yZGluYWwsJHBvc2l0aW9uOntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH0sJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkYmxvY2tJZDp0aGlzLmJsb2NrSWQsJGxhbmd1YWdlczp0aGlzLmxhbmd1YWdlcywkc3R5bGU6dGhpcy5zdHlsZSwkY29udGVudFBvc2l0aW9uOntzdGFydDp0aGlzLmNvbnRlbnRTdGFydCxlbmQ6dGhpcy5jb250ZW50RW5kfX19fSx5bz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixzLGkpe3RoaXMuc3RhcnQ9ZTt0aGlzLmVuZD10O3RoaXMub3JkaW5hbD1yO3RoaXMuZGF0YT1zO3RoaXMuYmxvY2tJZD1pO3RoaXMudHlwZT1cXFwiZGF0YWJsb2NrXFxcIjt0aGlzLm1ldGFkYXRhPW5ldyAkZX1idWlsZCgpe3JldHVybnskdHlwZTpcXFwiZGF0YWJsb2NrXFxcIiwkb3JkaW5hbDp0aGlzLm9yZGluYWwsJHBvc2l0aW9uOntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH0sJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkYmxvY2tJZDp0aGlzLmJsb2NrSWQsJGRhdGE6dGhpcy5kYXRhfX19LGdvPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLHMsaSl7dGhpcy5zdGFydD1lO3RoaXMuZW5kPXQ7dGhpcy5vcmRpbmFsPXI7dGhpcy50eXBlPXM7dGhpcy5ibG9ja0lkPWk7dGhpcy5tZXRhZGF0YT1uZXcgJGV9YnVpbGQoKXtyZXR1cm57JHR5cGU6dGhpcy50eXBlLCRvcmRpbmFsOnRoaXMub3JkaW5hbCwkcG9zaXRpb246e3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfSwkaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkdGFnczp0aGlzLm1ldGFkYXRhLmZpbmlzaFRhZ3MoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCRibG9ja0lkOnRoaXMuYmxvY2tJZH19fSxibz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixzLGksbyxhKXt0aGlzLnN0YXJ0PWU7dGhpcy5lbmQ9dDt0aGlzLnBhcmVudExpbmU9cjt0aGlzLnN5bWJvbD1zO3RoaXMuYmxvY2tJZD1pO3RoaXMuc3RhdHVzPW87dGhpcy50ZXh0PWE7dGhpcy5tZXRhZGF0YT1uZXcgJGU7dGhpcy5lbGVtZW50cz1bXX1idWlsZCgpe3JldHVybnskcGFyZW50TGluZTp0aGlzLnBhcmVudExpbmUsJHBvc2l0aW9uOntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH0sJGJsb2NrSWQ6dGhpcy5ibG9ja0lkLCRlbGVtZW50czp0aGlzLmVsZW1lbnRzLm1hcChlPT5lLmJ1aWxkKCkpLCR0eXBlOnRoaXMuc3RhdHVzP1xcXCJ0YXNrXFxcIjpcXFwibGlzdFxcXCIsJGluZmllbGRzOnRoaXMubWV0YWRhdGEuZmluaXNoSW5saW5lRmllbGRzKCksJHRhZ3M6dGhpcy5tZXRhZGF0YS5maW5pc2hUYWdzKCksJGxpbmtzOnRoaXMubWV0YWRhdGEuZmluaXNoTGlua3MoKSwkc3RhdHVzOnRoaXMuc3RhdHVzLCRzeW1ib2w6dGhpcy5zeW1ib2wsJHRleHQ6dGhpcy50ZXh0fX19O2Z1bmN0aW9uIFh1KG4sZSx0LHIpe3ZhciBvO2xldCBzPW5ldyBUbyhuLHIpLGk9SlNPTi5wYXJzZShlKTtmb3IobGV0IGEgb2YgaS5ub2RlcylpZihhLnR5cGUhPVxcXCJncm91cFxcXCIpaWYoYS50eXBlPT1cXFwidGV4dFxcXCIpe2xldHtmcm9udG1hdHRlcjp1LG1ldGFkYXRhOmwsbGluZXM6ZixzZWN0aW9uczpkfT1GbyhuLGEudGV4dCx0PT1udWxsP3ZvaWQgMDp0LmNhY2hlc1thLmlkXSkscD1uZXcgVnMobixhLmlkLGEsdSk7ZC5mb3JFYWNoKGg9PnAuc2VjdGlvbihoKSkscy5jYXJkKHApO2ZvcihsZXQgaCBpbiBsLnRhZ3Mpcy5tZXRhZGF0YS50YWcoaCk7Zm9yKGxldCBoIG9mKG89bC5saW5rcykhPW51bGw/bzpbXSlzLm1ldGFkYXRhLmxpbmsoaCk7Zm9yKGxldCBoIG9mIEVvKGYpKXMubWV0YWRhdGEuaW5saW5lRmllbGQoaCl9ZWxzZXtsZXQgdT1uZXcgVnMobixhLmlkLGEpO3MuY2FyZCh1KX1yZXR1cm4gcy5idWlsZCgpfXZhciB3bz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5wYXRoPWU7dGhpcy5pZD10O3RoaXMubm9kZUpzb249cjt0aGlzLm1ldGFkYXRhPW5ldyAkZX1idWlsZCgpe3JldHVybnskZmlsZTp0aGlzLnBhdGgsJGlkOnRoaXMuaWQsJHBvc2l0aW9uOnt4OnRoaXMubm9kZUpzb24ueCx5OnRoaXMubm9kZUpzb24ueX0sJGRpbWVuc2lvbnM6e3dpZHRoOnRoaXMubm9kZUpzb24ud2lkdGgsaGVpZ2h0OnRoaXMubm9kZUpzb24uaGVpZ2h0fSwkY29sb3I6dGhpcy5ub2RlSnNvbi5jb2xvciwkbGluazp4ZS5maWxlKHRoaXMucGF0aCkud2l0aEJsb2NrKHRoaXMuaWQpLnRvT2JqZWN0KCl9fX0sVnM9Y2xhc3MgZXh0ZW5kcyB3b3tjb25zdHJ1Y3Rvcih0LHIscyxpKXtzdXBlcih0LHIscyk7dGhpcy5wYXRoPXQ7dGhpcy5pZD1yO3RoaXMubm9kZUpzb249czt0aGlzLmZyb250bWF0dGVyPWk7dGhpcy5zZWN0aW9ucz1bXX1zZWN0aW9uKHQpe3JldHVybiB0aGlzLnNlY3Rpb25zLnB1c2godCksdH1idWlsZCgpe3N3aXRjaCh0aGlzLm5vZGVKc29uLnR5cGUpe2Nhc2VcXFwidGV4dFxcXCI6cmV0dXJuIHllKFIoe30sc3VwZXIuYnVpbGQoKSkseyRpbmZpZWxkczp0aGlzLm1ldGFkYXRhLmZpbmlzaElubGluZUZpZWxkcygpLCRmcm9udG1hdHRlcjp0aGlzLmZyb250bWF0dGVyLCRzZWN0aW9uczp0aGlzLnNlY3Rpb25zLm1hcCh0PT50LmJ1aWxkKCkpLCR0YWdzOnRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLCRsaW5rczp0aGlzLm1ldGFkYXRhLmZpbmlzaExpbmtzKCksJHR5cGU6XFxcInRleHQtY2FyZFxcXCIsJGNvbG9yOnRoaXMubm9kZUpzb24uY29sb3J9KTtjYXNlXFxcImZpbGVcXFwiOnJldHVybiB5ZShSKHt9LHN1cGVyLmJ1aWxkKCkpLHskbGlua2VkRmlsZTp0aGlzLm5vZGVKc29uLmZpbGV9KTtjYXNlXFxcImxpbmtcXFwiOnJldHVybiB5ZShSKHt9LHN1cGVyLmJ1aWxkKCkpLHskdXJsOnRoaXMubm9kZUpzb24udXJsfSl9fX0sVG89Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnBhdGg9ZTt0aGlzLnN0YXRzPXQ7dGhpcy5jYXJkcz1bXTt0aGlzLm1ldGFkYXRhPW5ldyAkZX1jYXJkKGUpe3JldHVybiB0aGlzLmNhcmRzLnB1c2goZSksZX1idWlsZCgpe3JldHVybnskY2FyZHM6dGhpcy5jYXJkcy5tYXAoZT0+ZS5idWlsZCgpKSwkY3RpbWU6dGhpcy5zdGF0cy5jdGltZSwkbXRpbWU6dGhpcy5zdGF0cy5tdGltZSwkaW5maWVsZHM6dGhpcy5tZXRhZGF0YS5maW5pc2hJbmxpbmVGaWVsZHMoKSwkbGlua3M6dGhpcy5tZXRhZGF0YS5maW5pc2hMaW5rcygpLCR0YWdzOnRoaXMubWV0YWRhdGEuZmluaXNoVGFncygpLCRwYXRoOnRoaXMucGF0aCwkc2l6ZTp0aGlzLnN0YXRzLnNpemV9fX07b25tZXNzYWdlPWFzeW5jIG49Pnt0cnl7bGV0IGU9bi5kYXRhO2lmKGUudHlwZT09PVxcXCJtYXJrZG93blxcXCIpe2xldCB0PVp1KGUucGF0aCxlLmNvbnRlbnRzLGUubWV0YWRhdGEsZS5zdGF0KTtwb3N0TWVzc2FnZSh7dHlwZTpcXFwibWFya2Rvd25cXFwiLHJlc3VsdDp0fSl9ZWxzZSBpZihlLnR5cGU9PT1cXFwiY2FudmFzXFxcIil7bGV0IHQ9WHUoZS5wYXRoLGUuY29udGVudHMsZS5pbmRleCxlLnN0YXQpO3Bvc3RNZXNzYWdlKHt0eXBlOlxcXCJjYW52YXNcXFwiLHJlc3VsdDp0fSl9ZWxzZSBwb3N0TWVzc2FnZSh7JGVycm9yOlxcXCJVbnN1cHBvcnRlZCBpbXBvcnQgbWV0aG9kLlxcXCJ9KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGBEYXRhY29yZSBJbmRleGVyIGZhaWxlZCB0byBpbmRleCAke24uZGF0YS5wYXRofTogJHtlfWApLHBvc3RNZXNzYWdlKHskZXJyb3I6ZS5tZXNzYWdlfSl9fTtcXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV3b2dJQ0oyWlhKemFXOXVJam9nTXl3S0lDQWljMjkxY21ObGN5STZJRnNpTGk0dkxpNHZjR0Z5YzJsdGJXOXVMMkoxYVd4a0wzQmhjbk5wYlcxdmJpNTFiV1F1YldsdUxtcHpJaXdnSWk0dUx5NHVMM052Y25SbFpDMWlkSEpsWlM5aUszUnlaV1V1YW5NaUxDQWlMaTR2TGk0dmJIVjRiMjR2YzNKakwyVnljbTl5Y3k1cWN5SXNJQ0l1TGk4dUxpOXNkWGh2Ymk5emNtTXZhVzF3YkM5bWIzSnRZWFJ6TG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OXBiWEJzTDNWMGFXd3Vhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDJsdGNHd3ZaVzVuYkdsemFDNXFjeUlzSUNJdUxpOHVMaTlzZFhodmJpOXpjbU12YVcxd2JDOW1iM0p0WVhSMFpYSXVhbk1pTENBaUxpNHZMaTR2YkhWNGIyNHZjM0pqTDJsdGNHd3ZhVzUyWVd4cFpDNXFjeUlzSUNJdUxpOHVMaTlzZFhodmJpOXpjbU12ZW05dVpTNXFjeUlzSUNJdUxpOHVMaTlzZFhodmJpOXpjbU12ZW05dVpYTXZjM2x6ZEdWdFdtOXVaUzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmVtOXVaWE12U1VGT1FWcHZibVV1YW5NaUxDQWlMaTR2TGk0dmJIVjRiMjR2YzNKakwzcHZibVZ6TDJacGVHVmtUMlptYzJWMFdtOXVaUzVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdmVtOXVaWE12YVc1MllXeHBaRnB2Ym1VdWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMMmx0Y0d3dmVtOXVaVlYwYVd3dWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMM05sZEhScGJtZHpMbXB6SWl3Z0lpNHVMeTR1TDJ4MWVHOXVMM055WXk5cGJYQnNMMnh2WTJGc1pTNXFjeUlzSUNJdUxpOHVMaTlzZFhodmJpOXpjbU12YVcxd2JDOXlaV2RsZUZCaGNuTmxjaTVxY3lJc0lDSXVMaTh1TGk5c2RYaHZiaTl6Y21NdlpIVnlZWFJwYjI0dWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMMmx1ZEdWeWRtRnNMbXB6SWl3Z0lpNHVMeTR1TDJ4MWVHOXVMM055WXk5cGJtWnZMbXB6SWl3Z0lpNHVMeTR1TDJ4MWVHOXVMM055WXk5cGJYQnNMMlJwWm1ZdWFuTWlMQ0FpTGk0dkxpNHZiSFY0YjI0dmMzSmpMMmx0Y0d3dlpHbG5hWFJ6TG1weklpd2dJaTR1THk0dUwyeDFlRzl1TDNOeVl5OXBiWEJzTDNSdmEyVnVVR0Z5YzJWeUxtcHpJaXdnSWk0dUx5NHVMMngxZUc5dUwzTnlZeTlwYlhCc0wyTnZiblpsY25OcGIyNXpMbXB6SWl3Z0lpNHVMeTR1TDJ4MWVHOXVMM055WXk5a1lYUmxkR2x0WlM1cWN5SXNJQ0l1TGk4dUxpOHVMaTl6Y21NdmRYUnBiSE12Ym05eWJXRnNhWHBsY25NdWRITWlMQ0FpTGk0dkxpNHZaVzF2YW1rdGNtVm5aWGd2YVc1a1pYZ3ViV3B6SWl3Z0lpNHVMeTR1THk0dUwzTnlZeTlsZUhCeVpYTnphVzl1TDJ4cGJtc3VkSE1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2ZG1semFYUXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Wkc5akwyUnBjbVZqZEdsMlpYTXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Wkc5akwyRnVZMmh2Y25NdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZaRzlqTDJGd2NHeDVVbVYyYVhabGNpNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl1YjJSbGN5OTBiMHBUTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyNXZaR1Z6TDA1dlpHVXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Ym05a1pYTXZRV3hwWVhNdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZibTlrWlhNdlUyTmhiR0Z5TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyUnZZeTlqY21WaGRHVk9iMlJsTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyNXZaR1Z6TDBOdmJHeGxZM1JwYjI0dWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjM1J5YVc1bmFXWjVMM04wY21sdVoybG1lVU52YlcxbGJuUXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzNSeWFXNW5hV1o1TDJadmJHUkdiRzkzVEdsdVpYTXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVZOMGNtbHVaeTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5emRISnBibWRwWm5rdmMzUnlhVzVuYVdaNUxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMM04wY21sdVoybG1lUzl6ZEhKcGJtZHBabmxRWVdseUxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMnh2Wnk1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdmVXRnRiQzB4TGpFdmJXVnlaMlV1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmJtOWtaWE12WVdSa1VHRnBjbFJ2U2xOTllYQXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2Ym05a1pYTXZVR0ZwY2k1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpkSEpwYm1kcFpua3ZjM1J5YVc1bmFXWjVRMjlzYkdWamRHbHZiaTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5dWIyUmxjeTlaUVUxTVRXRndMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNOamFHVnRZUzlqYjIxdGIyNHZiV0Z3TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyNXZaR1Z6TDFsQlRVeFRaWEV1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMyTm9aVzFoTDJOdmJXMXZiaTl6WlhFdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwyTnZiVzF2Ymk5emRISnBibWN1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMyTm9aVzFoTDJOdmJXMXZiaTl1ZFd4c0xtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMM05qYUdWdFlTOWpiM0psTDJKdmIyd3Vhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVU1MWJXSmxjaTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5elkyaGxiV0V2WTI5eVpTOW1iRzloZEM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdlkyOXlaUzlwYm5RdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwyTnZjbVV2YzJOb1pXMWhMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNOamFHVnRZUzlxYzI5dUwzTmphR1Z0WVM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdmVXRnRiQzB4TGpFdlltbHVZWEo1TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzTmphR1Z0WVM5NVlXMXNMVEV1TVM5d1lXbHljeTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5elkyaGxiV0V2ZVdGdGJDMHhMakV2YjIxaGNDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZlV0Z0YkMweExqRXZZbTl2YkM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdmVXRnRiQzB4TGpFdlpteHZZWFF1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmMyTm9aVzFoTDNsaGJXd3RNUzR4TDJsdWRDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl6WTJobGJXRXZlV0Z0YkMweExqRXZjMlYwTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwzTmphR1Z0WVM5NVlXMXNMVEV1TVM5MGFXMWxjM1JoYlhBdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjMk5vWlcxaEwzbGhiV3d0TVM0eEwzTmphR1Z0WVM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOXpZMmhsYldFdmRHRm5jeTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5elkyaGxiV0V2VTJOb1pXMWhMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sRWIyTjFiV1Z1ZEM1cWN5SXNJQ0l1TGk4dUxpOTVZVzFzTDJKeWIzZHpaWEl2WkdsemRDOWtiMk12Ukc5amRXMWxiblF1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdlpYSnliM0p6TG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyTnZiWEJ2YzJVdmNtVnpiMngyWlMxd2NtOXdjeTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDNWMGFXd3RZMjl1ZEdGcGJuTXRibVYzYkdsdVpTNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzlqYjIxd2IzTmxMM1YwYVd3dFpteHZkeTFwYm1SbGJuUXRZMmhsWTJzdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZZMjl0Y0c5elpTOTFkR2xzTFcxaGNDMXBibU5zZFdSbGN5NXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzlqYjIxd2IzTmxMM0psYzI5c2RtVXRZbXh2WTJzdGJXRndMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDJOdmJYQnZjMlV2Y21WemIyeDJaUzFpYkc5amF5MXpaWEV1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdlkyOXRjRzl6WlM5eVpYTnZiSFpsTFdWdVpDNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzlqYjIxd2IzTmxMM0psYzI5c2RtVXRabXh2ZHkxamIyeHNaV04wYVc5dUxtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMMk52YlhCdmMyVXZZMjl0Y0c5elpTMWpiMnhzWldOMGFXOXVMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDJOdmJYQnZjMlV2Y21WemIyeDJaUzFpYkc5amF5MXpZMkZzWVhJdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZZMjl0Y0c5elpTOXlaWE52YkhabExXWnNiM2N0YzJOaGJHRnlMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDJOdmJYQnZjMlV2WTI5dGNHOXpaUzF6WTJGc1lYSXVhbk1pTENBaUxpNHZMaTR2ZVdGdGJDOWljbTkzYzJWeUwyUnBjM1F2WTI5dGNHOXpaUzkxZEdsc0xXVnRjSFI1TFhOallXeGhjaTF3YjNOcGRHbHZiaTVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5amIyMXdiM05sTDJOdmJYQnZjMlV0Ym05a1pTNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzlqYjIxd2IzTmxMMk52YlhCdmMyVXRaRzlqTG1weklpd2dJaTR1THk0dUwzbGhiV3d2WW5KdmQzTmxjaTlrYVhOMEwyTnZiWEJ2YzJVdlkyOXRjRzl6WlhJdWFuTWlMQ0FpTGk0dkxpNHZlV0Z0YkM5aWNtOTNjMlZ5TDJScGMzUXZjR0Z5YzJVdlkzTjBMWFpwYzJsMExtcHpJaXdnSWk0dUx5NHVMM2xoYld3dlluSnZkM05sY2k5a2FYTjBMM0JoY25ObEwyTnpkQzVxY3lJc0lDSXVMaTh1TGk5NVlXMXNMMkp5YjNkelpYSXZaR2x6ZEM5d1lYSnpaUzlzWlhobGNpNXFjeUlzSUNJdUxpOHVMaTk1WVcxc0wySnliM2R6WlhJdlpHbHpkQzl3WVhKelpTOXNhVzVsTFdOdmRXNTBaWEl1YW5NaUxDQWlMaTR2TGk0dmVXRnRiQzlpY205M2MyVnlMMlJwYzNRdmNHRnljMlV2Y0dGeWMyVnlMbXB6SWl3Z0lpNHVMeTR1TDNsaGJXd3ZZbkp2ZDNObGNpOWthWE4wTDNCMVlteHBZeTFoY0drdWFuTWlMQ0FpTGk0dkxpNHZMaTR2YzNKakwybHVaR1Y0TDJsdGNHOXlkQzl0WVhKclpHOTNiaTUwY3lJc0lDSXVMaTh1TGk4dUxpOXpjbU12Wlhod2NtVnpjMmx2Ymk5d1lYSnpaWEl1ZEhNaUxDQWlMaTR2TGk0dkxpNHZjM0pqTDJWNGNISmxjM05wYjI0dmJHbDBaWEpoYkM1MGN5SXNJQ0l1TGk4dUxpOHVMaTl6Y21NdllYQnBMM0psYzNWc2RDNTBjeUlzSUNJdUxpOHVMaTh1TGk5emNtTXZaWGh3Y21WemMybHZiaTltYVd4MFpYSnpMblJ6SWl3Z0lpNHVMeTR1THk0dUwzTnlZeTlsZUhCeVpYTnphVzl1TDJWNGNISmxjM05wYjI0dWRITWlMQ0FpTGk0dkxpNHZMaTR2YzNKakwybHVaR1Y0TDJsdGNHOXlkQzlwYm14cGJtVXRabWxsYkdRdWRITWlMQ0FpTGk0dkxpNHZMaTR2YzNKakwzVjBhV3h6TDJSaGRHRXVkSE1pTENBaUxpNHZMaTR2TGk0dmMzSmpMMmx1WkdWNEwzUjVjR1Z6TDJwemIyNHZZMjl0Ylc5dUxuUnpJaXdnSWk0dUx5NHVMeTR1TDNOeVl5OXBibVJsZUM5MGVYQmxjeTk1WVcxc0xuUnpJaXdnSWk0dUx5NHVMeTR1TDNOeVl5OXBibVJsZUM5cGJYQnZjblF2WTJGdWRtRnpMblJ6SWl3Z0lpNHVMeTR1THk0dUwzTnlZeTlwYm1SbGVDOTNaV0l0ZDI5eWEyVnlMMmx0Y0c5eWRHVnlMbmR2Y210bGNpNTBjeUpkTEFvZ0lDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNklGc2lJV1oxYm1OMGFXOXVLRzRzZENsN1hDSnZZbXBsWTNSY0lqMDlkSGx3Wlc5bUlHVjRjRzl5ZEhNbUpsd2liMkpxWldOMFhDSTlQWFI1Y0dWdlppQnRiMlIxYkdVL2JXOWtkV3hsTG1WNGNHOXlkSE05ZENncE9sd2lablZ1WTNScGIyNWNJajA5ZEhsd1pXOW1JR1JsWm1sdVpTWW1aR1ZtYVc1bExtRnRaRDlrWldacGJtVW9XMTBzZENrNlhDSnZZbXBsWTNSY0lqMDlkSGx3Wlc5bUlHVjRjRzl5ZEhNL1pYaHdiM0owY3k1UVlYSnphVzF0YjI0OWRDZ3BPbTR1VUdGeWMybHRiVzl1UFhRb0tYMG9YQ0oxYm1SbFptbHVaV1JjSWlFOWRIbHdaVzltSUhObGJHWS9jMlZzWmpwMGFHbHpMR1oxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJR1oxYm1OMGFXOXVLRzRwZTNaaGNpQjBQWHQ5TzJaMWJtTjBhVzl1SUhJb1pTbDdhV1lvZEZ0bFhTbHlaWFIxY200Z2RGdGxYUzVsZUhCdmNuUnpPM1poY2lCMVBYUmJaVjA5ZTJrNlpTeHNPaUV4TEdWNGNHOXlkSE02ZTMxOU8zSmxkSFZ5YmlCdVcyVmRMbU5oYkd3b2RTNWxlSEJ2Y25SekxIVXNkUzVsZUhCdmNuUnpMSElwTEhVdWJEMGhNQ3gxTG1WNGNHOXlkSE45Y21WMGRYSnVJSEl1YlQxdUxISXVZejEwTEhJdVpEMW1kVzVqZEdsdmJpaHVMSFFzWlNsN2NpNXZLRzRzZENsOGZFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2h1TEhRc2UyTnZibVpwWjNWeVlXSnNaVG9oTVN4bGJuVnRaWEpoWW14bE9pRXdMR2RsZERwbGZTbDlMSEl1Y2oxbWRXNWpkR2x2YmlodUtYdFBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvYml4Y0lsOWZaWE5OYjJSMWJHVmNJaXg3ZG1Gc2RXVTZJVEI5S1gwc2NpNXVQV1oxYm1OMGFXOXVLRzRwZTNaaGNpQjBQVzRtSm00dVgxOWxjMDF2WkhWc1pUOW1kVzVqZEdsdmJpZ3BlM0psZEhWeWJpQnVMbVJsWm1GMWJIUjlPbVoxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJRzU5TzNKbGRIVnliaUJ5TG1Rb2RDeGNJbUZjSWl4MEtTeDBmU3h5TG04OVpuVnVZM1JwYjI0b2JpeDBLWHR5WlhSMWNtNGdUMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzRzZENsOUxISXVjRDFjSWx3aUxISW9jaTV6UFRBcGZTaGJablZ1WTNScGIyNG9iaXgwTEhJcGUxd2lkWE5sSUhOMGNtbGpkRndpTzJaMWJtTjBhVzl1SUdVb2JpbDdhV1lvSVNoMGFHbHpJR2x1YzNSaGJtTmxiMllnWlNrcGNtVjBkWEp1SUc1bGR5QmxLRzRwTzNSb2FYTXVYejF1ZlhaaGNpQjFQV1V1Y0hKdmRHOTBlWEJsTzJaMWJtTjBhVzl1SUc4b2JpeDBLWHRtYjNJb2RtRnlJSEk5TUR0eVBHNDdjaXNyS1hRb2NpbDlablZ1WTNScGIyNGdhU2h1TEhRc2NpbDdjbVYwZFhKdUlHWjFibU4wYVc5dUtHNHNkQ2w3YnloMExteGxibWQwYUN4bWRXNWpkR2x2YmloeUtYdHVLSFJiY2wwc2NpeDBLWDBwZlNobWRXNWpkR2x2YmloeUxHVXNkU2w3ZEQxdUtIUXNjaXhsTEhVcGZTeHlLU3gwZldaMWJtTjBhVzl1SUdFb2JpeDBLWHR5WlhSMWNtNGdhU2htZFc1amRHbHZiaWgwTEhJc1pTeDFLWHR5WlhSMWNtNGdkQzVqYjI1allYUW9XMjRvY2l4bExIVXBYU2w5TEZ0ZExIUXBmV1oxYm1OMGFXOXVJR1lvYml4MEtYdDJZWElnY2oxN2Rqb3dMR0oxWmpwMGZUdHlaWFIxY200Z2J5aHVMR1oxYm1OMGFXOXVLQ2w3ZG1GeUlHNDdjajE3ZGpweUxuWThQREY4S0c0OWNpNWlkV1lzYmxzd1hUNCtOeWtzWW5WbU9tWjFibU4wYVc5dUtHNHBlM1poY2lCMFBXa29ablZ1WTNScGIyNG9iaXgwTEhJc1pTbDdjbVYwZFhKdUlHNHVZMjl1WTJGMEtISTlQVDFsTG14bGJtZDBhQzB4UDBKMVptWmxjaTVtY205dEtGdDBMREJkS1M1eVpXRmtWVWx1ZERFMlFrVW9NQ2s2WlM1eVpXRmtWVWx1ZERFMlFrVW9jaWtwZlN4YlhTeHVLVHR5WlhSMWNtNGdRblZtWm1WeUxtWnliMjBvWVNobWRXNWpkR2x2YmlodUtYdHlaWFIxY200b2JqdzhNU1kyTlRVek5TaytQamg5TEhRcEtYMG9jaTVpZFdZcGZYMHBMSEo5Wm5WdVkzUnBiMjRnWXlncGUzSmxkSFZ5Ymx3aWRXNWtaV1pwYm1Wa1hDSWhQWFI1Y0dWdlppQkNkV1ptWlhKOVpuVnVZM1JwYjI0Z2N5Z3BlMmxtS0NGaktDa3BkR2h5YjNjZ2JtVjNJRVZ5Y205eUtGd2lRblZtWm1WeUlHZHNiMkpoYkNCa2IyVnpJRzV2ZENCbGVHbHpkRHNnY0d4bFlYTmxJSFZ6WlNCM1pXSndZV05ySUdsbUlIbHZkU0J1WldWa0lIUnZJSEJoY25ObElFSjFabVpsY25NZ2FXNGdkR2hsSUdKeWIzZHpaWEl1WENJcGZXWjFibU4wYVc5dUlHd29iaWw3Y3lncE8zWmhjaUIwUFdrb1puVnVZM1JwYjI0b2JpeDBLWHR5WlhSMWNtNGdiaXQwZlN3d0xHNHBPMmxtS0hRbE9DRTlNQ2wwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pVYUdVZ1ltbDBjeUJiWENJcmJpNXFiMmx1S0Z3aUxDQmNJaWtyWENKZElHRmtaQ0IxY0NCMGJ5QmNJaXQwSzF3aUlIZG9hV05vSUdseklHNXZkQ0JoYmlCbGRtVnVJRzUxYldKbGNpQnZaaUJpZVhSbGN6c2dkR2hsSUhSdmRHRnNJSE5vYjNWc1pDQmlaU0JrYVhacGMybGliR1VnWW5rZ09Gd2lLVHQyWVhJZ2NpeDFQWFF2T0N4dlBTaHlQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJ1UGpRNGZTeHBLR1oxYm1OMGFXOXVLRzRzZENsN2NtVjBkWEp1SUc1OGZDaHlLSFFwUDNRNmJpbDlMRzUxYkd3c2Jpa3BPMmxtS0c4cGRHaHliM2NnYm1WM0lFVnljbTl5S0c4clhDSWdZbWwwSUhKaGJtZGxJSEpsY1hWbGMzUmxaQ0JsZUdObFpXUnpJRFE0SUdKcGRDQW9OaUJpZVhSbEtTQk9kVzFpWlhJZ2JXRjRMbHdpS1R0eVpYUjFjbTRnYm1WM0lHVW9ablZ1WTNScGIyNG9kQ3h5S1h0MllYSWdaVDExSzNJN2NtVjBkWEp1SUdVK2RDNXNaVzVuZEdnL2VDaHlMSFV1ZEc5VGRISnBibWNvS1N0Y0lpQmllWFJsYzF3aUtUcGlLR1VzYVNobWRXNWpkR2x2YmlodUxIUXBlM1poY2lCeVBXWW9kQ3h1TG1KMVppazdjbVYwZFhKdWUyTnZiR3c2Ymk1amIyeHNMbU52Ym1OaGRDaHlMbllwTEdKMVpqcHlMbUoxWm4xOUxIdGpiMnhzT2x0ZExHSjFaanAwTG5Oc2FXTmxLSElzWlNsOUxHNHBMbU52Ykd3cGZTbDlablZ1WTNScGIyNGdhQ2h1TEhRcGUzSmxkSFZ5YmlCdVpYY2daU2htZFc1amRHbHZiaWh5TEdVcGUzSmxkSFZ5YmlCektDa3NaU3QwUG5JdWJHVnVaM1JvUDNnb1pTeDBLMXdpSUdKNWRHVnpJR1p2Y2lCY0lpdHVLVHBpS0dVcmRDeHlMbk5zYVdObEtHVXNaU3QwS1NsOUtYMW1kVzVqZEdsdmJpQndLRzRzZENsN2FXWW9YQ0p1ZFcxaVpYSmNJaUU5ZEhsd1pXOW1LSEk5ZENsOGZFMWhkR2d1Wm14dmIzSW9jaWtoUFQxeWZIeDBQREI4ZkhRK05pbDBhSEp2ZHlCdVpYY2dSWEp5YjNJb2JpdGNJaUJ5WlhGMWFYSmxjeUJwYm5SbFoyVnlJR3hsYm1kMGFDQnBiaUJ5WVc1blpTQmJNQ3dnTmwwdVhDSXBPM1poY2lCeWZXWjFibU4wYVc5dUlHUW9iaWw3Y21WMGRYSnVJSEFvWENKMWFXNTBRa1ZjSWl4dUtTeG9LRndpZFdsdWRFSkZLRndpSzI0clhDSXBYQ0lzYmlrdWJXRndLR1oxYm1OMGFXOXVLSFFwZTNKbGRIVnliaUIwTG5KbFlXUlZTVzUwUWtVb01DeHVLWDBwZldaMWJtTjBhVzl1SUhZb2JpbDdjbVYwZFhKdUlIQW9YQ0oxYVc1MFRFVmNJaXh1S1N4b0tGd2lkV2x1ZEV4RktGd2lLMjRyWENJcFhDSXNiaWt1YldGd0tHWjFibU4wYVc5dUtIUXBlM0psZEhWeWJpQjBMbkpsWVdSVlNXNTBURVVvTUN4dUtYMHBmV1oxYm1OMGFXOXVJR2NvYmlsN2NtVjBkWEp1SUhBb1hDSnBiblJDUlZ3aUxHNHBMR2dvWENKcGJuUkNSU2hjSWl0dUsxd2lLVndpTEc0cExtMWhjQ2htZFc1amRHbHZiaWgwS1h0eVpYUjFjbTRnZEM1eVpXRmtTVzUwUWtVb01DeHVLWDBwZldaMWJtTjBhVzl1SUcwb2JpbDdjbVYwZFhKdUlIQW9YQ0pwYm5STVJWd2lMRzRwTEdnb1hDSnBiblJNUlNoY0lpdHVLMXdpS1Z3aUxHNHBMbTFoY0NobWRXNWpkR2x2YmloMEtYdHlaWFIxY200Z2RDNXlaV0ZrU1c1MFRFVW9NQ3h1S1gwcGZXWjFibU4wYVc5dUlIa29iaWw3Y21WMGRYSnVJRzRnYVc1emRHRnVZMlZ2WmlCbGZXWjFibU4wYVc5dUlFVW9iaWw3Y21WMGRYSnVYQ0piYjJKcVpXTjBJRUZ5Y21GNVhWd2lQVDA5ZTMwdWRHOVRkSEpwYm1jdVkyRnNiQ2h1S1gxbWRXNWpkR2x2YmlCM0tHNHBlM0psZEhWeWJpQmpLQ2ttSmtKMVptWmxjaTVwYzBKMVptWmxjaWh1S1gxbWRXNWpkR2x2YmlCaUtHNHNkQ2w3Y21WMGRYSnVlM04wWVhSMWN6b2hNQ3hwYm1SbGVEcHVMSFpoYkhWbE9uUXNablZ5ZEdobGMzUTZMVEVzWlhod1pXTjBaV1E2VzExOWZXWjFibU4wYVc5dUlIZ29iaXgwS1h0eVpYUjFjbTRnUlNoMEtYeDhLSFE5VzNSZEtTeDdjM1JoZEhWek9pRXhMR2x1WkdWNE9pMHhMSFpoYkhWbE9tNTFiR3dzWm5WeWRHaGxjM1E2Yml4bGVIQmxZM1JsWkRwMGZYMW1kVzVqZEdsdmJpQkNLRzRzZENsN2FXWW9JWFFwY21WMGRYSnVJRzQ3YVdZb2JpNW1kWEowYUdWemRENTBMbVoxY25Sb1pYTjBLWEpsZEhWeWJpQnVPM1poY2lCeVBXNHVablZ5ZEdobGMzUTlQVDEwTG1aMWNuUm9aWE4wUDJaMWJtTjBhVzl1S0c0c2RDbDdhV1lvWm5WdVkzUnBiMjRvS1h0cFppaDJiMmxrSURBaFBUMWxMbDl6ZFhCd2IzSjBjMU5sZENseVpYUjFjbTRnWlM1ZmMzVndjRzl5ZEhOVFpYUTdkbUZ5SUc0OVhDSjFibVJsWm1sdVpXUmNJaUU5ZEhsd1pXOW1JRk5sZER0eVpYUjFjbTRnWlM1ZmMzVndjRzl5ZEhOVFpYUTliaXh1ZlNncEppWkJjbkpoZVM1bWNtOXRLWHRtYjNJb2RtRnlJSEk5Ym1WM0lGTmxkQ2h1S1N4MVBUQTdkVHgwTG14bGJtZDBhRHQxS3lzcGNpNWhaR1FvZEZ0MVhTazdkbUZ5SUc4OVFYSnlZWGt1Wm5KdmJTaHlLVHR5WlhSMWNtNGdieTV6YjNKMEtDa3NiMzFtYjNJb2RtRnlJR2s5ZTMwc1lUMHdPMkU4Ymk1c1pXNW5kR2c3WVNzcktXbGJibHRoWFYwOUlUQTdabTl5S0haaGNpQm1QVEE3Wmp4MExteGxibWQwYUR0bUt5c3BhVnQwVzJaZFhUMGhNRHQyWVhJZ1l6MWJYVHRtYjNJb2RtRnlJSE1nYVc0Z2FTa29lMzBwTG1oaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2FTeHpLU1ltWXk1d2RYTm9LSE1wTzNKbGRIVnliaUJqTG5OdmNuUW9LU3hqZlNodUxtVjRjR1ZqZEdWa0xIUXVaWGh3WldOMFpXUXBPblF1Wlhod1pXTjBaV1E3Y21WMGRYSnVlM04wWVhSMWN6cHVMbk4wWVhSMWN5eHBibVJsZURwdUxtbHVaR1Y0TEhaaGJIVmxPbTR1ZG1Gc2RXVXNablZ5ZEdobGMzUTZkQzVtZFhKMGFHVnpkQ3hsZUhCbFkzUmxaRHB5ZlgxMllYSWdhajE3ZlR0bWRXNWpkR2x2YmlCVEtHNHNkQ2w3YVdZb2R5aHVLU2x5WlhSMWNtNTdiMlptYzJWME9uUXNiR2x1WlRvdE1TeGpiMngxYlc0NkxURjlPMjRnYVc0Z2FueDhLR3BiYmwwOWUzMHBPMlp2Y2loMllYSWdjajFxVzI1ZExHVTlNQ3gxUFRBc2J6MHdMR2s5ZER0cFBqMHdPeWw3YVdZb2FTQnBiaUJ5S1h0bFBYSmJhVjB1YkdsdVpTd3dQVDA5YnlZbUtHODljbHRwWFM1c2FXNWxVM1JoY25RcE8ySnlaV0ZyZlNoY0lseGNibHdpUFQwOWJpNWphR0Z5UVhRb2FTbDhmRndpWEZ4eVhDSTlQVDF1TG1Ob1lYSkJkQ2hwS1NZbVhDSmNYRzVjSWlFOVBXNHVZMmhoY2tGMEtHa3JNU2twSmlZb2RTc3JMREE5UFQxdkppWW9iejFwS3pFcEtTeHBMUzE5ZG1GeUlHRTlaU3QxTEdZOWRDMXZPM0psZEhWeWJpQnlXM1JkUFh0c2FXNWxPbUVzYkdsdVpWTjBZWEowT205OUxIdHZabVp6WlhRNmRDeHNhVzVsT21Fck1TeGpiMngxYlc0Nlppc3hmWDFtZFc1amRHbHZiaUJmS0c0cGUybG1LQ0Y1S0c0cEtYUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0ltNXZkQ0JoSUhCaGNuTmxjam9nWENJcmJpbDlablZ1WTNScGIyNGdUQ2h1TEhRcGUzSmxkSFZ5Ymx3aWMzUnlhVzVuWENJOVBYUjVjR1Z2WmlCdVAyNHVZMmhoY2tGMEtIUXBPbTViZEYxOVpuVnVZM1JwYjI0Z1R5aHVLWHRwWmloY0ltNTFiV0psY2x3aUlUMTBlWEJsYjJZZ2JpbDBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSnViM1FnWVNCdWRXMWlaWEk2SUZ3aUsyNHBmV1oxYm1OMGFXOXVJR3NvYmlsN2FXWW9YQ0ptZFc1amRHbHZibHdpSVQxMGVYQmxiMllnYmlsMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKdWIzUWdZU0JtZFc1amRHbHZiam9nWENJcmJpbDlablZ1WTNScGIyNGdVQ2h1S1h0cFppaGNJbk4wY21sdVoxd2lJVDEwZVhCbGIyWWdiaWwwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0p1YjNRZ1lTQnpkSEpwYm1jNklGd2lLMjRwZlhaaGNpQnhQVElzUVQwekxFazlPQ3hHUFRVcVNTeE5QVFFxU1N4NlBWd2lJQ0JjSWp0bWRXNWpkR2x2YmlCU0tHNHNkQ2w3Y21WMGRYSnVJRzVsZHlCQmNuSmhlU2gwS3pFcExtcHZhVzRvYmlsOVpuVnVZM1JwYjI0Z1ZTaHVMSFFzY2lsN2RtRnlJR1U5ZEMxdUxteGxibWQwYUR0eVpYUjFjbTRnWlR3OU1EOXVPbElvY2l4bEtTdHVmV1oxYm1OMGFXOXVJRmNvYml4MExISXNaU2w3Y21WMGRYSnVlMlp5YjIwNmJpMTBQakEvYmkxME9qQXNkRzg2Yml0eVBtVS9aVHB1SzNKOWZXWjFibU4wYVc5dUlFUW9iaXgwS1h0MllYSWdjaXhsTEhVc2J5eG1MR005ZEM1cGJtUmxlQ3h6UFdNdWIyWm1jMlYwTEd3OU1UdHBaaWh6UFQwOWJpNXNaVzVuZEdncGNtVjBkWEp1WENKSGIzUWdkR2hsSUdWdVpDQnZaaUIwYUdVZ2FXNXdkWFJjSWp0cFppaDNLRzRwS1h0MllYSWdhRDF6TFhNbFNTeHdQWE10YUN4a1BWY29hQ3hHTEUwclNTeHVMbXhsYm1kMGFDa3NkajFoS0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCaEtHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQlZLRzR1ZEc5VGRISnBibWNvTVRZcExESXNYQ0l3WENJcGZTeHVLWDBzWm5WdVkzUnBiMjRvYml4MEtYdDJZWElnY2oxdUxteGxibWQwYUN4bFBWdGRMSFU5TUR0cFppaHlQRDEwS1hKbGRIVnlibHR1TG5Oc2FXTmxLQ2xkTzJadmNpaDJZWElnYnowd08yODhjanR2S3lzcFpWdDFYWHg4WlM1d2RYTm9LRnRkS1N4bFczVmRMbkIxYzJnb2JsdHZYU2tzS0c4ck1Ta2xkRDA5TUNZbWRTc3JPM0psZEhWeWJpQmxmU2h1TG5Oc2FXTmxLR1F1Wm5KdmJTeGtMblJ2S1M1MGIwcFRUMDRvS1M1a1lYUmhMRWtwS1R0dlBXWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQXdQVDA5Ymk1bWNtOXRKaVl4UFQwOWJpNTBiejk3Wm5KdmJUcHVMbVp5YjIwc2RHODZiaTUwYjMwNmUyWnliMjA2Ymk1bWNtOXRMMGtzZEc4NlRXRjBhQzVtYkc5dmNpaHVMblJ2TDBrcGZYMG9aQ2tzWlQxb0wwa3NjajB6S25Bc2NENDlOQ1ltS0hJclBURXBMR3c5TWl4MVBXRW9ablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRzR1YkdWdVozUm9QRDAwUDI0dWFtOXBiaWhjSWlCY0lpazZiaTV6YkdsalpTZ3dMRFFwTG1wdmFXNG9YQ0lnWENJcEsxd2lJQ0JjSWl0dUxuTnNhV05sS0RRcExtcHZhVzRvWENJZ1hDSXBmU3gyS1N3b1pqMG9PQ29vYnk1MGJ6NHdQMjh1ZEc4dE1UcHZMblJ2S1NrdWRHOVRkSEpwYm1jb01UWXBMbXhsYm1kMGFDazhNaVltS0dZOU1pbDlaV3h6Wlh0MllYSWdaejF1TG5Od2JHbDBLQzljWEhKY1hHNThXMXhjYmx4Y2NseGNkVEl3TWpoY1hIVXlNREk1WFM4cE8zSTlZeTVqYjJ4MWJXNHRNU3hsUFdNdWJHbHVaUzB4TEc4OVZ5aGxMSEVzUVN4bkxteGxibWQwYUNrc2RUMW5Mbk5zYVdObEtHOHVabkp2YlN4dkxuUnZLU3htUFc4dWRHOHVkRzlUZEhKcGJtY29LUzVzWlc1bmRHaDlkbUZ5SUcwOVpTMXZMbVp5YjIwN2NtVjBkWEp1SUhjb2Jpa21KaWhtUFNnNEtpaHZMblJ2UGpBL2J5NTBieTB4T204dWRHOHBLUzUwYjFOMGNtbHVaeWd4TmlrdWJHVnVaM1JvS1R3eUppWW9aajB5S1N4cEtHWjFibU4wYVc5dUtIUXNaU3gxS1h0MllYSWdhU3hoUFhVOVBUMXRMR005WVQ5Y0lqNGdYQ0k2ZWp0eVpYUjFjbTRnYVQxM0tHNHBQMVVvS0RncUtHOHVabkp2YlN0MUtTa3VkRzlUZEhKcGJtY29NVFlwTEdZc1hDSXdYQ0lwT2xVb0tHOHVabkp2YlN0MUt6RXBMblJ2VTNSeWFXNW5LQ2tzWml4Y0lpQmNJaWtzVzEwdVkyOXVZMkYwS0hRc1cyTXJhU3RjSWlCOElGd2lLMlZkTEdFL1czb3JVaWhjSWlCY0lpeG1LU3RjSWlCOElGd2lLMVVvWENKY0lpeHlMRndpSUZ3aUtTdFNLRndpWGx3aUxHd3BYVHBiWFNsOUxGdGRMSFVwTG1wdmFXNG9YQ0pjWEc1Y0lpbDlablZ1WTNScGIyNGdUaWh1TEhRcGUzSmxkSFZ5Ymx0Y0lseGNibHdpTEZ3aUxTMGdVRUZTVTBsT1J5QkdRVWxNUlVRZ1hDSXJVaWhjSWkxY0lpdzFNQ2tzWENKY1hHNWNYRzVjSWl4RUtHNHNkQ2tzWENKY1hHNWNYRzVjSWl3b2NqMTBMbVY0Y0dWamRHVmtMREU5UFQxeUxteGxibWQwYUQ5Y0lrVjRjR1ZqZEdWa09seGNibHhjYmx3aUszSmJNRjA2WENKRmVIQmxZM1JsWkNCdmJtVWdiMllnZEdobElHWnZiR3h2ZDJsdVp6b2dYRnh1WEZ4dVhDSXJjaTVxYjJsdUtGd2lMQ0JjSWlrcExGd2lYRnh1WENKZExtcHZhVzRvWENKY0lpazdkbUZ5SUhKOVpuVnVZM1JwYjI0Z1J5aHVLWHR5WlhSMWNtNGdkbTlwWkNBd0lUMDliaTVtYkdGbmN6OXVMbVpzWVdkek9sdHVMbWRzYjJKaGJEOWNJbWRjSWpwY0lsd2lMRzR1YVdkdWIzSmxRMkZ6WlQ5Y0ltbGNJanBjSWx3aUxHNHViWFZzZEdsc2FXNWxQMXdpYlZ3aU9sd2lYQ0lzYmk1MWJtbGpiMlJsUDF3aWRWd2lPbHdpWENJc2JpNXpkR2xqYTNrL1hDSjVYQ0k2WENKY0lsMHVhbTlwYmloY0lsd2lLWDFtZFc1amRHbHZiaUJES0NsN1ptOXlLSFpoY2lCdVBWdGRMbk5zYVdObExtTmhiR3dvWVhKbmRXMWxiblJ6S1N4MFBXNHViR1Z1WjNSb0xISTlNRHR5UEhRN2NpczlNU2xmS0c1YmNsMHBPM0psZEhWeWJpQmxLR1oxYm1OMGFXOXVLSElzWlNsN1ptOXlLSFpoY2lCMUxHODlibVYzSUVGeWNtRjVLSFFwTEdrOU1EdHBQSFE3YVNzOU1TbDdhV1lvSVNoMVBVSW9ibHRwWFM1ZktISXNaU2tzZFNrcExuTjBZWFIxY3lseVpYUjFjbTRnZFR0dlcybGRQWFV1ZG1Gc2RXVXNaVDExTG1sdVpHVjRmWEpsZEhWeWJpQkNLR0lvWlN4dktTeDFLWDBwZldaMWJtTjBhVzl1SUVvb0tYdDJZWElnYmoxYlhTNXpiR2xqWlM1allXeHNLR0Z5WjNWdFpXNTBjeWs3YVdZb01EMDlQVzR1YkdWdVozUm9LWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbk5sY1UxaGNDQnVaV1ZrY3lCaGRDQnNaV0Z6ZENCdmJtVWdZWEpuZFcxbGJuUmNJaWs3ZG1GeUlIUTliaTV3YjNBb0tUdHlaWFIxY200Z2F5aDBLU3hETG1Gd2NHeDVLRzUxYkd3c2Jpa3ViV0Z3S0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCMExtRndjR3g1S0c1MWJHd3NiaWw5S1gxbWRXNWpkR2x2YmlCVUtDbDdkbUZ5SUc0OVcxMHVjMnhwWTJVdVkyRnNiQ2hoY21kMWJXVnVkSE1wTEhROWJpNXNaVzVuZEdnN2FXWW9NRDA5UFhRcGNtVjBkWEp1SUZrb1hDSjZaWEp2SUdGc2RHVnlibUYwWlhOY0lpazdabTl5S0haaGNpQnlQVEE3Y2p4ME8zSXJQVEVwWHlodVczSmRLVHR5WlhSMWNtNGdaU2htZFc1amRHbHZiaWgwTEhJcGUyWnZjaWgyWVhJZ1pTeDFQVEE3ZFR4dUxteGxibWQwYUR0MUt6MHhLV2xtS0NobFBVSW9ibHQxWFM1ZktIUXNjaWtzWlNrcExuTjBZWFIxY3lseVpYUjFjbTRnWlR0eVpYUjFjbTRnWlgwcGZXWjFibU4wYVc5dUlGWW9iaXgwS1h0eVpYUjFjbTRnU0NodUxIUXBMbTl5S0Znb1cxMHBLWDFtZFc1amRHbHZiaUJJS0c0c2RDbDdjbVYwZFhKdUlGOG9iaWtzWHloMEtTeEtLRzRzZEM1MGFHVnVLRzRwTG0xaGJua29LU3htZFc1amRHbHZiaWh1TEhRcGUzSmxkSFZ5Ymx0dVhTNWpiMjVqWVhRb2RDbDlLWDFtZFc1amRHbHZiaUJMS0c0cGUxQW9iaWs3ZG1GeUlIUTlYQ0luWENJcmJpdGNJaWRjSWp0eVpYUjFjbTRnWlNobWRXNWpkR2x2YmloeUxHVXBlM1poY2lCMVBXVXJiaTVzWlc1bmRHZ3NiejF5TG5Oc2FXTmxLR1VzZFNrN2NtVjBkWEp1SUc4OVBUMXVQMklvZFN4dktUcDRLR1VzZENsOUtYMW1kVzVqZEdsdmJpQlJLRzRzZENsN0lXWjFibU4wYVc5dUtHNHBlMmxtS0NFb2JpQnBibk4wWVc1alpXOW1JRkpsWjBWNGNDa3BkR2h5YjNjZ2JtVjNJRVZ5Y205eUtGd2libTkwSUdFZ2NtVm5aWGh3T2lCY0lpdHVLVHRtYjNJb2RtRnlJSFE5UnlodUtTeHlQVEE3Y2p4MExteGxibWQwYUR0eUt5c3BlM1poY2lCbFBYUXVZMmhoY2tGMEtISXBPMmxtS0Z3aWFWd2lJVDA5WlNZbVhDSnRYQ0loUFQxbEppWmNJblZjSWlFOVBXVW1KbHdpYzF3aUlUMDlaU2wwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1Z1YzNWd2NHOXlkR1ZrSUhKbFoyVjRjQ0JtYkdGbklGd2lKeXRsS3lkY0lqb2dKeXR1S1gxOUtHNHBMR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZytQVEkvVHloMEtUcDBQVEE3ZG1GeUlISTlablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRkpsWjBWNGNDaGNJbDRvUHpwY0lpdHVMbk52ZFhKalpTdGNJaWxjSWl4SEtHNHBLWDBvYmlrc2RUMWNJbHdpSzI0N2NtVjBkWEp1SUdVb1puVnVZM1JwYjI0b2JpeGxLWHQyWVhJZ2J6MXlMbVY0WldNb2JpNXpiR2xqWlNobEtTazdhV1lvYnlsN2FXWW9NRHc5ZENZbWREdzlieTVzWlc1bmRHZ3BlM1poY2lCcFBXOWJNRjBzWVQxdlczUmRPM0psZEhWeWJpQmlLR1VyYVM1c1pXNW5kR2dzWVNsOWNtVjBkWEp1SUhnb1pTeGNJblpoYkdsa0lHMWhkR05vSUdkeWIzVndJQ2d3SUhSdklGd2lLMjh1YkdWdVozUm9LMXdpS1NCcGJpQmNJaXQxS1gxeVpYUjFjbTRnZUNobExIVXBmU2w5Wm5WdVkzUnBiMjRnV0NodUtYdHlaWFIxY200Z1pTaG1kVzVqZEdsdmJpaDBMSElwZTNKbGRIVnliaUJpS0hJc2JpbDlLWDFtZFc1amRHbHZiaUJaS0c0cGUzSmxkSFZ5YmlCbEtHWjFibU4wYVc5dUtIUXNjaWw3Y21WMGRYSnVJSGdvY2l4dUtYMHBmV1oxYm1OMGFXOXVJRm9vYmlsN2FXWW9lU2h1S1NseVpYUjFjbTRnWlNobWRXNWpkR2x2YmloMExISXBlM1poY2lCbFBXNHVYeWgwTEhJcE8zSmxkSFZ5YmlCbExtbHVaR1Y0UFhJc1pTNTJZV3gxWlQxY0lsd2lMR1Y5S1R0cFppaGNJbk4wY21sdVoxd2lQVDEwZVhCbGIyWWdiaWx5WlhSMWNtNGdXaWhMS0c0cEtUdHBaaWh1SUdsdWMzUmhibU5sYjJZZ1VtVm5SWGh3S1hKbGRIVnliaUJhS0ZFb2Jpa3BPM1JvY205M0lHNWxkeUJGY25KdmNpaGNJbTV2ZENCaElITjBjbWx1Wnl3Z2NtVm5aWGh3TENCdmNpQndZWEp6WlhJNklGd2lLMjRwZldaMWJtTjBhVzl1SUNRb2JpbDdjbVYwZFhKdUlGOG9iaWtzWlNobWRXNWpkR2x2YmloMExISXBlM1poY2lCbFBXNHVYeWgwTEhJcExIVTlkQzV6YkdsalpTaHlMR1V1YVc1a1pYZ3BPM0psZEhWeWJpQmxMbk4wWVhSMWN6OTRLSElzSjI1dmRDQmNJaWNyZFNzblhDSW5LVHBpS0hJc2JuVnNiQ2w5S1gxbWRXNWpkR2x2YmlCdWJpaHVLWHR5WlhSMWNtNGdheWh1S1N4bEtHWjFibU4wYVc5dUtIUXNjaWw3ZG1GeUlHVTlUQ2gwTEhJcE8zSmxkSFZ5YmlCeVBIUXViR1Z1WjNSb0ppWnVLR1VwUDJJb2Npc3hMR1VwT25nb2NpeGNJbUVnWTJoaGNtRmpkR1Z5TDJKNWRHVWdiV0YwWTJocGJtY2dYQ0lyYmlsOUtYMW1kVzVqZEdsdmJpQjBiaWh1TEhRcGUyRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnOE1pWW1LSFE5Yml4dVBYWnZhV1FnTUNrN2RtRnlJSEk5WlNobWRXNWpkR2x2YmlodUxHVXBlM0psZEhWeWJpQnlMbDg5ZENncExsOHNjaTVmS0c0c1pTbDlLVHR5WlhSMWNtNGdiajl5TG1SbGMyTW9iaWs2Y24xbWRXNWpkR2x2YmlCeWJpZ3BlM0psZEhWeWJpQlpLRndpWm1GdWRHRnplUzFzWVc1a0wyVnRjSFI1WENJcGZYVXVjR0Z5YzJVOVpuVnVZM1JwYjI0b2JpbDdhV1lvWENKemRISnBibWRjSWlFOWRIbHdaVzltSUc0bUppRjNLRzRwS1hSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWk1d1lYSnpaU0J0ZFhOMElHSmxJR05oYkd4bFpDQjNhWFJvSUdFZ2MzUnlhVzVuSUc5eUlFSjFabVpsY2lCaGN5QnBkSE1nWVhKbmRXMWxiblJjSWlrN2RtRnlJSFFzY2oxMGFHbHpMbk5yYVhBb1lXNHBMbDhvYml3d0tUdHlaWFIxY200Z2REMXlMbk4wWVhSMWN6OTdjM1JoZEhWek9pRXdMSFpoYkhWbE9uSXVkbUZzZFdWOU9udHpkR0YwZFhNNklURXNhVzVrWlhnNlV5aHVMSEl1Wm5WeWRHaGxjM1FwTEdWNGNHVmpkR1ZrT25JdVpYaHdaV04wWldSOUxHUmxiR1YwWlNCcVcyNWRMSFI5TEhVdWRISjVVR0Z5YzJVOVpuVnVZM1JwYjI0b2JpbDdkbUZ5SUhROWRHaHBjeTV3WVhKelpTaHVLVHRwWmloMExuTjBZWFIxY3lseVpYUjFjbTRnZEM1MllXeDFaVHQyWVhJZ2NqMU9LRzRzZENrc1pUMXVaWGNnUlhKeWIzSW9jaWs3ZEdoeWIzY2daUzUwZVhCbFBWd2lVR0Z5YzJsdGJXOXVSWEp5YjNKY0lpeGxMbkpsYzNWc2REMTBMR1Y5TEhVdVlYTnpaWEowUFdaMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlIUm9hWE11WTJoaGFXNG9ablZ1WTNScGIyNG9jaWw3Y21WMGRYSnVJRzRvY2lrL1dDaHlLVHBaS0hRcGZTbDlMSFV1YjNJOVpuVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlGUW9kR2hwY3l4dUtYMHNkUzUwY21sdFBXWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQjBhR2x6TG5keVlYQW9iaXh1S1gwc2RTNTNjbUZ3UFdaMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlFb29iaXgwYUdsekxIUXNablZ1WTNScGIyNG9iaXgwS1h0eVpYUjFjbTRnZEgwcGZTeDFMblJvY25VOVpuVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlHNG9kR2hwY3lsOUxIVXVkR2hsYmoxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z1h5aHVLU3hES0hSb2FYTXNiaWt1YldGd0tHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQnVXekZkZlNsOUxIVXViV0Z1ZVQxbWRXNWpkR2x2YmlncGUzWmhjaUJ1UFhSb2FYTTdjbVYwZFhKdUlHVW9ablZ1WTNScGIyNG9kQ3h5S1h0bWIzSW9kbUZ5SUdVOVcxMHNkVDEyYjJsa0lEQTdPeWw3YVdZb0lTaDFQVUlvYmk1ZktIUXNjaWtzZFNrcExuTjBZWFIxY3lseVpYUjFjbTRnUWloaUtISXNaU2tzZFNrN2FXWW9jajA5UFhVdWFXNWtaWGdwZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpYVc1bWFXNXBkR1VnYkc5dmNDQmtaWFJsWTNSbFpDQnBiaUF1YldGdWVTZ3BJSEJoY25ObGNpQXRMUzBnWTJGc2JHbHVaeUF1YldGdWVTZ3BJRzl1SUdFZ2NHRnljMlZ5SUhkb2FXTm9JR05oYmlCaFkyTmxjSFFnZW1WeWJ5QmphR0Z5WVdOMFpYSnpJR2x6SUhWemRXRnNiSGtnZEdobElHTmhkWE5sWENJcE8zSTlkUzVwYm1SbGVDeGxMbkIxYzJnb2RTNTJZV3gxWlNsOWZTbDlMSFV1ZEdsbFYybDBhRDFtZFc1amRHbHZiaWh1S1h0eVpYUjFjbTRnVUNodUtTeDBhR2x6TG0xaGNDaG1kVzVqZEdsdmJpaDBLWHRwWmlobWRXNWpkR2x2YmlodUtYdHBaaWdoUlNodUtTbDBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSnViM1FnWVc0Z1lYSnlZWGs2SUZ3aUsyNHBmU2gwS1N4MExteGxibWQwYUNsN1VDaDBXekJkS1R0bWIzSW9kbUZ5SUhJOWRGc3dYU3hsUFRFN1pUeDBMbXhsYm1kMGFEdGxLeXNwVUNoMFcyVmRLU3h5S3oxdUszUmJaVjA3Y21WMGRYSnVJSEo5Y21WMGRYSnVYQ0pjSW4wcGZTeDFMblJwWlQxbWRXNWpkR2x2YmlncGUzSmxkSFZ5YmlCMGFHbHpMblJwWlZkcGRHZ29YQ0pjSWlsOUxIVXVkR2x0WlhNOVpuVnVZM1JwYjI0b2JpeDBLWHQyWVhJZ2NqMTBhR2x6TzNKbGRIVnliaUJoY21kMWJXVnVkSE11YkdWdVozUm9QREltSmloMFBXNHBMRThvYmlrc1R5aDBLU3hsS0daMWJtTjBhVzl1S0dVc2RTbDdabTl5S0haaGNpQnZQVnRkTEdrOWRtOXBaQ0F3TEdFOWRtOXBaQ0F3TEdZOU1EdG1QRzQ3WmlzOU1TbDdhV1lvWVQxQ0tHazljaTVmS0dVc2RTa3NZU2tzSVdrdWMzUmhkSFZ6S1hKbGRIVnliaUJoTzNVOWFTNXBibVJsZUN4dkxuQjFjMmdvYVM1MllXeDFaU2w5Wm05eUtEdG1QSFFtSmloaFBVSW9hVDF5TGw4b1pTeDFLU3hoS1N4cExuTjBZWFIxY3lrN1ppczlNU2wxUFdrdWFXNWtaWGdzYnk1d2RYTm9LR2t1ZG1Gc2RXVXBPM0psZEhWeWJpQkNLR0lvZFN4dktTeGhLWDBwZlN4MUxuSmxjM1ZzZEQxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2RHaHBjeTV0WVhBb1puVnVZM1JwYjI0b0tYdHlaWFIxY200Z2JuMHBmU3gxTG1GMFRXOXpkRDFtZFc1amRHbHZiaWh1S1h0eVpYUjFjbTRnZEdocGN5NTBhVzFsY3lnd0xHNHBmU3gxTG1GMFRHVmhjM1E5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUVvb2RHaHBjeTUwYVcxbGN5aHVLU3gwYUdsekxtMWhibmtvS1N4bWRXNWpkR2x2YmlodUxIUXBlM0psZEhWeWJpQnVMbU52Ym1OaGRDaDBLWDBwZlN4MUxtMWhjRDFtZFc1amRHbHZiaWh1S1h0cktHNHBPM1poY2lCMFBYUm9hWE03Y21WMGRYSnVJR1VvWm5WdVkzUnBiMjRvY2l4bEtYdDJZWElnZFQxMExsOG9jaXhsS1R0eVpYUjFjbTRnZFM1emRHRjBkWE0vUWloaUtIVXVhVzVrWlhnc2JpaDFMblpoYkhWbEtTa3NkU2s2ZFgwcGZTeDFMbU52Ym5SeVlXMWhjRDFtZFc1amRHbHZiaWh1S1h0cktHNHBPM1poY2lCMFBYUm9hWE03Y21WMGRYSnVJR1VvWm5WdVkzUnBiMjRvY2l4bEtYdDJZWElnZFQxMExuQmhjbk5sS0c0b2NpNXpiR2xqWlNobEtTa3BPM0psZEhWeWJpQjFMbk4wWVhSMWN6OWlLR1VyY2k1c1pXNW5kR2dzZFM1MllXeDFaU2s2ZFgwcGZTeDFMbkJ5YjIxaGNEMW1kVzVqZEdsdmJpaHVMSFFwZTNKbGRIVnliaUJyS0c0cExHc29kQ2tzZEdocGN5NWpiMjUwY21GdFlYQW9iaWt1YldGd0tIUXBmU3gxTG5OcmFYQTlablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJRU1vZEdocGN5eHVLUzV0WVhBb1puVnVZM1JwYjI0b2JpbDdjbVYwZFhKdUlHNWJNRjE5S1gwc2RTNXRZWEpyUFdaMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUVvb1pXNHNkR2hwY3l4bGJpeG1kVzVqZEdsdmJpaHVMSFFzY2lsN2NtVjBkWEp1ZTNOMFlYSjBPbTRzZG1Gc2RXVTZkQ3hsYm1RNmNuMTlLWDBzZFM1dWIyUmxQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJLS0dWdUxIUm9hWE1zWlc0c1puVnVZM1JwYjI0b2RDeHlMR1VwZTNKbGRIVnlibnR1WVcxbE9tNHNkbUZzZFdVNmNpeHpkR0Z5ZERwMExHVnVaRHBsZlgwcGZTeDFMbk5sY0VKNVBXWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQldLSFJvYVhNc2JpbDlMSFV1YzJWd1Fua3hQV1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJJS0hSb2FYTXNiaWw5TEhVdWJHOXZhMkZvWldGa1BXWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQjBhR2x6TG5OcmFYQW9XaWh1S1NsOUxIVXVibTkwUm05c2JHOTNaV1JDZVQxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2RHaHBjeTV6YTJsd0tDUW9iaWtwZlN4MUxtUmxjMk05Wm5WdVkzUnBiMjRvYmlsN1JTaHVLWHg4S0c0OVcyNWRLVHQyWVhJZ2REMTBhR2x6TzNKbGRIVnliaUJsS0daMWJtTjBhVzl1S0hJc1pTbDdkbUZ5SUhVOWRDNWZLSElzWlNrN2NtVjBkWEp1SUhVdWMzUmhkSFZ6Zkh3b2RTNWxlSEJsWTNSbFpEMXVLU3gxZlNsOUxIVXVabUZzYkdKaFkyczlablZ1WTNScGIyNG9iaWw3Y21WMGRYSnVJSFJvYVhNdWIzSW9XQ2h1S1NsOUxIVXVZWEE5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUVvb2JpeDBhR2x6TEdaMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlHNG9kQ2w5S1gwc2RTNWphR0ZwYmoxbWRXNWpkR2x2YmlodUtYdDJZWElnZEQxMGFHbHpPM0psZEhWeWJpQmxLR1oxYm1OMGFXOXVLSElzWlNsN2RtRnlJSFU5ZEM1ZktISXNaU2s3Y21WMGRYSnVJSFV1YzNSaGRIVnpQMElvYmloMUxuWmhiSFZsS1M1ZktISXNkUzVwYm1SbGVDa3NkU2s2ZFgwcGZTeDFMbU52Ym1OaGREMTFMbTl5TEhVdVpXMXdkSGs5Y200c2RTNXZaajFZTEhWYlhDSm1ZVzUwWVhONUxXeGhibVF2WVhCY0lsMDlkUzVoY0N4MVcxd2labUZ1ZEdGemVTMXNZVzVrTDJOb1lXbHVYQ0pkUFhVdVkyaGhhVzRzZFZ0Y0ltWmhiblJoYzNrdGJHRnVaQzlqYjI1allYUmNJbDA5ZFM1amIyNWpZWFFzZFZ0Y0ltWmhiblJoYzNrdGJHRnVaQzlsYlhCMGVWd2lYVDExTG1WdGNIUjVMSFZiWENKbVlXNTBZWE41TFd4aGJtUXZiMlpjSWwwOWRTNXZaaXgxVzF3aVptRnVkR0Z6ZVMxc1lXNWtMMjFoY0Z3aVhUMTFMbTFoY0R0MllYSWdaVzQ5WlNobWRXNWpkR2x2YmlodUxIUXBlM0psZEhWeWJpQmlLSFFzVXlodUxIUXBLWDBwTEhWdVBXVW9ablZ1WTNScGIyNG9iaXgwS1h0eVpYUjFjbTRnZEQ0OWJpNXNaVzVuZEdnL2VDaDBMRndpWVc1NUlHTm9ZWEpoWTNSbGNpOWllWFJsWENJcE9tSW9kQ3N4TEV3b2JpeDBLU2w5S1N4dmJqMWxLR1oxYm1OMGFXOXVLRzRzZENsN2NtVjBkWEp1SUdJb2JpNXNaVzVuZEdnc2JpNXpiR2xqWlNoMEtTbDlLU3hoYmoxbEtHWjFibU4wYVc5dUtHNHNkQ2w3Y21WMGRYSnVJSFE4Ymk1c1pXNW5kR2cvZUNoMExGd2lSVTlHWENJcE9tSW9kQ3h1ZFd4c0tYMHBMR1p1UFZFb0wxc3dMVGxkTHlrdVpHVnpZeWhjSW1FZ1pHbG5hWFJjSWlrc1kyNDlVU2d2V3pBdE9WMHFMeWt1WkdWell5aGNJbTl3ZEdsdmJtRnNJR1JwWjJsMGMxd2lLU3h6YmoxUktDOWJZUzE2WFM5cEtTNWtaWE5qS0Z3aVlTQnNaWFIwWlhKY0lpa3NiRzQ5VVNndlcyRXRlbDBxTDJrcExtUmxjMk1vWENKdmNIUnBiMjVoYkNCc1pYUjBaWEp6WENJcExHaHVQVkVvTDF4Y2N5b3ZLUzVrWlhOaktGd2liM0IwYVc5dVlXd2dkMmhwZEdWemNHRmpaVndpS1N4d2JqMVJLQzljWEhNckx5a3VaR1Z6WXloY0luZG9hWFJsYzNCaFkyVmNJaWtzWkc0OVN5aGNJbHhjY2x3aUtTeDJiajFMS0Z3aVhGeHVYQ0lwTEdkdVBVc29YQ0pjWEhKY1hHNWNJaWtzYlc0OVZDaG5iaXgyYml4a2Jpa3VaR1Z6WXloY0ltNWxkMnhwYm1WY0lpa3NlVzQ5VkNodGJpeGhiaWs3WlM1aGJHdzliMjRzWlM1aGJIUTlWQ3hsTG1GdWVUMTFiaXhsTG1OeVBXUnVMR1V1WTNKbFlYUmxUR0Z1WjNWaFoyVTlablZ1WTNScGIyNG9iaWw3ZG1GeUlIUTllMzA3Wm05eUtIWmhjaUJ5SUdsdUlHNHBLSHQ5S1M1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHNHNjaWttSm1aMWJtTjBhVzl1S0hJcGUzUmJjbDA5ZEc0b1puVnVZM1JwYjI0b0tYdHlaWFIxY200Z2JsdHlYU2gwS1gwcGZTaHlLVHR5WlhSMWNtNGdkSDBzWlM1amNteG1QV2R1TEdVdVkzVnpkRzl0UFdaMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCbEtHNG9ZaXg0S1NsOUxHVXVaR2xuYVhROVptNHNaUzVrYVdkcGRITTlZMjRzWlM1bGJYQjBlVDF5Yml4bExtVnVaRDE1Yml4bExtVnZaajFoYml4bExtWmhhV3c5V1N4bExtWnZjbTFoZEVWeWNtOXlQVTRzWlM1cGJtUmxlRDFsYml4bExtbHpVR0Z5YzJWeVBYa3NaUzVzWVhwNVBYUnVMR1V1YkdWMGRHVnlQWE51TEdVdWJHVjBkR1Z5Y3oxc2JpeGxMbXhtUFhadUxHVXViRzl2YTJGb1pXRmtQVm9zWlM1dFlXdGxSbUZwYkhWeVpUMTRMR1V1YldGclpWTjFZMk5sYzNNOVlpeGxMbTVsZDJ4cGJtVTliVzRzWlM1dWIyNWxUMlk5Wm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUc1dUtHWjFibU4wYVc5dUtIUXBlM0psZEhWeWJpQnVMbWx1WkdWNFQyWW9kQ2s4TUgwcExtUmxjMk1vWENKdWIyNWxJRzltSUNkY0lpdHVLMXdpSjF3aUtYMHNaUzV1YjNSR2IyeHNiM2RsWkVKNVBTUXNaUzV2WmoxWUxHVXViMjVsVDJZOVpuVnVZM1JwYjI0b2JpbDdabTl5S0haaGNpQjBQVzR1YzNCc2FYUW9YQ0pjSWlrc2NqMHdPM0k4ZEM1c1pXNW5kR2c3Y2lzcktYUmJjbDA5WENJblhDSXJkRnR5WFN0Y0lpZGNJanR5WlhSMWNtNGdibTRvWm5WdVkzUnBiMjRvZENsN2NtVjBkWEp1SUc0dWFXNWtaWGhQWmloMEtUNDlNSDBwTG1SbGMyTW9kQ2w5TEdVdWIzQjBWMmhwZEdWemNHRmpaVDFvYml4bExsQmhjbk5sY2oxbExHVXVjbUZ1WjJVOVpuVnVZM1JwYjI0b2JpeDBLWHR5WlhSMWNtNGdibTRvWm5WdVkzUnBiMjRvY2lsN2NtVjBkWEp1SUc0OFBYSW1Kbkk4UFhSOUtTNWtaWE5qS0c0clhDSXRYQ0lyZENsOUxHVXVjbVZuWlhnOVVTeGxMbkpsWjJWNGNEMVJMR1V1YzJWd1FuazlWaXhsTG5ObGNFSjVNVDFJTEdVdWMyVnhQVU1zWlM1elpYRk5ZWEE5U2l4bExuTmxjVTlpYWoxbWRXNWpkR2x2YmlncGUyWnZjaWgyWVhJZ2JpeDBQWHQ5TEhJOU1DeDFQU2h1UFdGeVozVnRaVzUwY3l4QmNuSmhlUzV3Y205MGIzUjVjR1V1YzJ4cFkyVXVZMkZzYkNodUtTa3NiejExTG14bGJtZDBhQ3hwUFRBN2FUeHZPMmtyUFRFcGUzWmhjaUJoUFhWYmFWMDdhV1lvSVhrb1lTa3BlMmxtS0VVb1lTa21Kakk5UFQxaExteGxibWQwYUNZbVhDSnpkSEpwYm1kY0lqMDlkSGx3Wlc5bUlHRmJNRjBtSm5rb1lWc3hYU2twZTNaaGNpQm1QV0ZiTUYwN2FXWW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLSFFzWmlrcGRHaHliM2NnYm1WM0lFVnljbTl5S0Z3aWMyVnhUMkpxT2lCa2RYQnNhV05oZEdVZ2EyVjVJRndpSzJZcE8zUmJabDA5SVRBc2Npc3JPMk52Ym5ScGJuVmxmWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbk5sY1U5aWFpQmhjbWQxYldWdWRITWdiWFZ6ZENCaVpTQndZWEp6WlhKeklHOXlJRnR6ZEhKcGJtY3NJSEJoY25ObGNsMGdZWEp5WVhrZ2NHRnBjbk11WENJcGZYMXBaaWd3UFQwOWNpbDBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSnpaWEZQWW1vZ1pYaHdaV04wY3lCaGRDQnNaV0Z6ZENCdmJtVWdibUZ0WldRZ2NHRnljMlZ5TENCbWIzVnVaQ0I2WlhKdlhDSXBPM0psZEhWeWJpQmxLR1oxYm1OMGFXOXVLRzRzZENsN1ptOXlLSFpoY2lCeUxHVTllMzBzYVQwd08yazhienRwS3oweEtYdDJZWElnWVN4bU8ybG1LRVVvZFZ0cFhTay9LR0U5ZFZ0cFhWc3dYU3htUFhWYmFWMWJNVjBwT2loaFBXNTFiR3dzWmoxMVcybGRLU3doS0hJOVFpaG1MbDhvYml4MEtTeHlLU2t1YzNSaGRIVnpLWEpsZEhWeWJpQnlPMkVtSmlobFcyRmRQWEl1ZG1Gc2RXVXBMSFE5Y2k1cGJtUmxlSDF5WlhSMWNtNGdRaWhpS0hRc1pTa3NjaWw5S1gwc1pTNXpkSEpwYm1jOVN5eGxMbk4xWTJObFpXUTlXQ3hsTG5SaGEyVlhhR2xzWlQxbWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z2F5aHVLU3hsS0daMWJtTjBhVzl1S0hRc2NpbDdabTl5S0haaGNpQmxQWEk3WlR4MExteGxibWQwYUNZbWJpaE1LSFFzWlNrcE95bGxLeXM3Y21WMGRYSnVJR0lvWlN4MExuTnNhV05sS0hJc1pTa3BmU2w5TEdVdWRHVnpkRDF1Yml4bExuZG9hWFJsYzNCaFkyVTljRzRzWlZ0Y0ltWmhiblJoYzNrdGJHRnVaQzlsYlhCMGVWd2lYVDF5Yml4bFcxd2labUZ1ZEdGemVTMXNZVzVrTDI5bVhDSmRQVmdzWlM1Q2FXNWhjbms5ZTJKcGRGTmxjVHBzTEdKcGRGTmxjVTlpYWpwbWRXNWpkR2x2YmlodUtYdHpLQ2s3ZG1GeUlIUTllMzBzY2owd0xHVTlZU2htZFc1amRHbHZiaWh1S1h0cFppaEZLRzRwS1h0MllYSWdaVDF1TzJsbUtESWhQVDFsTG14bGJtZDBhQ2wwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0piWENJclpTNXFiMmx1S0Z3aUxDQmNJaWtyWENKZElITm9iM1ZzWkNCaVpTQnNaVzVuZEdnZ01pd2daMjkwSUd4bGJtZDBhQ0JjSWl0bExteGxibWQwYUNrN2FXWW9VQ2hsV3pCZEtTeFBLR1ZiTVYwcExFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaDBMR1ZiTUYwcEtYUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0ltUjFjR3hwWTJGMFpTQnJaWGtnYVc0Z1ltbDBVMlZ4VDJKcU9pQmNJaXRsV3pCZEtUdHlaWFIxY200Z2RGdGxXekJkWFQwaE1DeHlLeXNzWlgxeVpYUjFjbTRnVHlodUtTeGJiblZzYkN4dVhYMHNiaWs3YVdZb2Nqd3hLWFJvY205M0lHNWxkeUJGY25KdmNpaGNJbUpwZEZObGNVOWlhaUJsZUhCbFkzUnpJR0YwSUd4bFlYTjBJRzl1WlNCdVlXMWxaQ0J3WVdseUxDQm5iM1FnVzF3aUsyNHVhbTlwYmloY0lpd2dYQ0lwSzF3aVhWd2lLVHQyWVhJZ2RUMWhLR1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJ1V3pCZGZTeGxLVHR5WlhSMWNtNGdiQ2hoS0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCdVd6RmRmU3hsS1NrdWJXRndLR1oxYm1OMGFXOXVLRzRwZTNKbGRIVnliaUJwS0daMWJtTjBhVzl1S0c0c2RDbDdjbVYwZFhKdUlHNTFiR3doUFQxMFd6QmRKaVlvYmx0MFd6QmRYVDEwV3pGZEtTeHVmU3g3ZlN4aEtHWjFibU4wYVc5dUtIUXNjaWw3Y21WMGRYSnVXM1FzYmx0eVhWMTlMSFVwS1gwcGZTeGllWFJsT21aMWJtTjBhVzl1S0c0cGUybG1LSE1vS1N4UEtHNHBMRzQrTWpVMUtYUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0lsWmhiSFZsSUhOd1pXTnBabWxsWkNCMGJ5QmllWFJsSUdOdmJuTjBjblZqZEc5eUlDaGNJaXR1SzF3aVBUQjRYQ0lyYmk1MGIxTjBjbWx1WnlneE5pa3JYQ0lwSUdseklHeGhjbWRsY2lCcGJpQjJZV3gxWlNCMGFHRnVJR0VnYzJsdVoyeGxJR0o1ZEdVdVhDSXBPM1poY2lCMFBTaHVQakUxUDF3aU1IaGNJanBjSWpCNE1Gd2lLU3R1TG5SdlUzUnlhVzVuS0RFMktUdHlaWFIxY200Z1pTaG1kVzVqZEdsdmJpaHlMR1VwZTNaaGNpQjFQVXdvY2l4bEtUdHlaWFIxY200Z2RUMDlQVzQvWWlobEt6RXNkU2s2ZUNobExIUXBmU2w5TEdKMVptWmxjanBtZFc1amRHbHZiaWh1S1h0eVpYUjFjbTRnYUNoY0ltSjFabVpsY2x3aUxHNHBMbTFoY0NobWRXNWpkR2x2YmlodUtYdHlaWFIxY200Z1FuVm1abVZ5TG1aeWIyMG9iaWw5S1gwc1pXNWpiMlJsWkZOMGNtbHVaenBtZFc1amRHbHZiaWh1TEhRcGUzSmxkSFZ5YmlCb0tGd2ljM1J5YVc1blhDSXNkQ2t1YldGd0tHWjFibU4wYVc5dUtIUXBlM0psZEhWeWJpQjBMblJ2VTNSeWFXNW5LRzRwZlNsOUxIVnBiblJDUlRwa0xIVnBiblE0UWtVNlpDZ3hLU3gxYVc1ME1UWkNSVHBrS0RJcExIVnBiblF6TWtKRk9tUW9OQ2tzZFdsdWRFeEZPbllzZFdsdWREaE1SVHAyS0RFcExIVnBiblF4Tmt4Rk9uWW9NaWtzZFdsdWRETXlURVU2ZGlnMEtTeHBiblJDUlRwbkxHbHVkRGhDUlRwbktERXBMR2x1ZERFMlFrVTZaeWd5S1N4cGJuUXpNa0pGT21jb05Da3NhVzUwVEVVNmJTeHBiblE0VEVVNmJTZ3hLU3hwYm5ReE5reEZPbTBvTWlrc2FXNTBNekpNUlRwdEtEUXBMR1pzYjJGMFFrVTZhQ2hjSW1ac2IyRjBRa1ZjSWl3MEtTNXRZWEFvWm5WdVkzUnBiMjRvYmlsN2NtVjBkWEp1SUc0dWNtVmhaRVpzYjJGMFFrVW9NQ2w5S1N4bWJHOWhkRXhGT21nb1hDSm1iRzloZEV4RlhDSXNOQ2t1YldGd0tHWjFibU4wYVc5dUtHNHBlM0psZEhWeWJpQnVMbkpsWVdSR2JHOWhkRXhGS0RBcGZTa3NaRzkxWW14bFFrVTZhQ2hjSW1SdmRXSnNaVUpGWENJc09Da3ViV0Z3S0daMWJtTjBhVzl1S0c0cGUzSmxkSFZ5YmlCdUxuSmxZV1JFYjNWaWJHVkNSU2d3S1gwcExHUnZkV0pzWlV4Rk9tZ29YQ0prYjNWaWJHVk1SVndpTERncExtMWhjQ2htZFc1amRHbHZiaWh1S1h0eVpYUjFjbTRnYmk1eVpXRmtSRzkxWW14bFRFVW9NQ2w5S1gwc2JpNWxlSEJ2Y25SelBXVjlYU2w5S1RzaUxDQWlYQ0oxYzJVZ2MzUnlhV04wWENJN1hISmNiblpoY2lCZlgyVjRkR1Z1WkhNZ1BTQW9kR2hwY3lBbUppQjBhR2x6TGw5ZlpYaDBaVzVrY3lrZ2ZId2dLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhaaGNpQmxlSFJsYm1SVGRHRjBhV056SUQwZ1puVnVZM1JwYjI0Z0tHUXNJR0lwSUh0Y2NseHVJQ0FnSUNBZ0lDQmxlSFJsYm1SVGRHRjBhV056SUQwZ1QySnFaV04wTG5ObGRGQnliM1J2ZEhsd1pVOW1JSHg4WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ2g3SUY5ZmNISnZkRzlmWHpvZ1cxMGdmU0JwYm5OMFlXNWpaVzltSUVGeWNtRjVJQ1ltSUdaMWJtTjBhVzl1SUNoa0xDQmlLU0I3SUdRdVgxOXdjbTkwYjE5ZklEMGdZanNnZlNrZ2ZIeGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z0tHUXNJR0lwSUhzZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJpS1NCcFppQW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR0lzSUhBcEtTQmtXM0JkSUQwZ1lsdHdYVHNnZlR0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pYaDBaVzVrVTNSaGRHbGpjeWhrTENCaUtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0Z0tHUXNJR0lwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JR0lnSVQwOUlGd2lablZ1WTNScGIyNWNJaUFtSmlCaUlDRTlQU0J1ZFd4c0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMnhoYzNNZ1pYaDBaVzVrY3lCMllXeDFaU0JjSWlBcklGTjBjbWx1WnloaUtTQXJJRndpSUdseklHNXZkQ0JoSUdOdmJuTjBjblZqZEc5eUlHOXlJRzUxYkd4Y0lpazdYSEpjYmlBZ0lDQWdJQ0FnWlhoMFpXNWtVM1JoZEdsamN5aGtMQ0JpS1R0Y2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQmZYeWdwSUhzZ2RHaHBjeTVqYjI1emRISjFZM1J2Y2lBOUlHUTdJSDFjY2x4dUlDQWdJQ0FnSUNCa0xuQnliM1J2ZEhsd1pTQTlJR0lnUFQwOUlHNTFiR3dnUHlCUFltcGxZM1F1WTNKbFlYUmxLR0lwSURvZ0tGOWZMbkJ5YjNSdmRIbHdaU0E5SUdJdWNISnZkRzkwZVhCbExDQnVaWGNnWDE4b0tTazdYSEpjYmlBZ0lDQjlPMXh5WEc1OUtTZ3BPMXh5WEc1UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aWGh3YjNKMGN5d2dYQ0pmWDJWelRXOWtkV3hsWENJc0lIc2dkbUZzZFdVNklIUnlkV1VnZlNrN1hISmNibVY0Y0c5eWRITXVSVzF3ZEhsQ1ZISmxaU0E5SUdWNGNHOXlkSE11WVhOVFpYUWdQU0JsZUhCdmNuUnpMbk5wYlhCc1pVTnZiWEJoY21GMGIzSWdQU0JsZUhCdmNuUnpMbVJsWm1GMWJIUkRiMjF3WVhKaGRHOXlJRDBnZG05cFpDQXdPMXh5WEc0dktpcGNjbHh1SUNvZ1EyOXRjR0Z5WlhNZ1JHVm1ZWFZzZEVOdmJYQmhjbUZpYkdWeklIUnZJR1p2Y20wZ1lTQnpkSEpwWTNRZ2NHRnlkR2xoYkNCdmNtUmxjbWx1Wnk1Y2NseHVJQ3BjY2x4dUlDb2dTR0Z1Wkd4bGN5QXJMeTB3SUdGdVpDQk9ZVTRnYkdsclpTQk5ZWEE2SUU1aFRpQnBjeUJsY1hWaGJDQjBieUJPWVU0c0lHRnVaQ0F0TUNCcGN5QmxjWFZoYkNCMGJ5QXJNQzVjY2x4dUlDcGNjbHh1SUNvZ1FYSnlZWGx6SUdGeVpTQmpiMjF3WVhKbFpDQjFjMmx1WnlBblBDY2dZVzVrSUNjK0p5d2dkMmhwWTJnZ2JXRjVJR05oZFhObElIVnVaWGh3WldOMFpXUWdaWEYxWVd4cGRIazZYSEpjYmlBcUlHWnZjaUJsZUdGdGNHeGxJRnN4WFNCM2FXeHNJR0psSUdOdmJuTnBaR1Z5WldRZ1pYRjFZV3dnZEc4Z1d5Y3hKMTB1WEhKY2JpQXFYSEpjYmlBcUlGUjNieUJ2WW1wbFkzUnpJSGRwZEdnZ1pYRjFZV3dnZG1Gc2RXVlBaaUJqYjIxd1lYSmxJSFJvWlNCellXMWxMQ0JpZFhRZ1kyOXRjR0Z5WlNCMWJtVnhkV0ZzSUhSdlhISmNiaUFxSUhCeWFXMXBkR2wyWlhNZ2RHaGhkQ0JvWVhabElIUm9aU0J6WVcxbElIWmhiSFZsTGx4eVhHNGdLaTljY2x4dVpuVnVZM1JwYjI0Z1pHVm1ZWFZzZEVOdmJYQmhjbUYwYjNJb1lTd2dZaWtnZTF4eVhHNGdJQ0FnTHk4Z1UzQmxZMmxoYkNCallYTmxJR1pwYm1sMFpTQnVkVzFpWlhKeklHWnBjbk4wSUdadmNpQndaWEptYjNKdFlXNWpaUzVjY2x4dUlDQWdJQzh2SUU1dmRHVWdkR2hoZENCMGFHVWdkSEpwWTJzZ2IyWWdkWE5wYm1jZ0oyRWdMU0JpSnlCaGJtUWdZMmhsWTJ0cGJtY2dabTl5SUU1aFRpQjBieUJrWlhSbFkzUWdibTl1TFc1MWJXSmxjbk5jY2x4dUlDQWdJQzh2SUdSdlpYTWdibTkwSUhkdmNtc2dhV1lnZEdobElITjBjbWx1WjNNZ1lYSmxJRzUxYldWeWFXTWdLR1Y0T2lCY0lqVmNJaWt1SUZSb2FYTWdkMjkxYkdRZ2JHVmhaR2x1WnlCdGIzTjBJRnh5WEc0Z0lDQWdMeThnWTI5dGNHRnlhWE52YmlCbWRXNWpkR2x2Ym5NZ2RYTnBibWNnZEdoaGRDQmhjSEJ5YjJGamFDQjBieUJtWVdsc0lIUnZJR2hoZG1VZ2RISmhibk5wZEdsMmFYUjVMbHh5WEc0Z0lDQWdhV1lnS0U1MWJXSmxjaTVwYzBacGJtbDBaU2hoS1NBbUppQk9kVzFpWlhJdWFYTkdhVzVwZEdVb1lpa3BJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVNBdElHSTdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQXZMeUJVYUdVZ1pHVm1ZWFZzZENBOElHRnVaQ0ErSUc5d1pYSmhkRzl5Y3lCaGNtVWdibTkwSUhSdmRHRnNiSGtnYjNKa1pYSmxaQzRnVkc4Z1lXeHNiM2NnZEhsd1pYTWdkRzhnWW1VZ2JXbDRaV1JjY2x4dUlDQWdJQzh2SUdsdUlHRWdjMmx1WjJ4bElHTnZiR3hsWTNScGIyNHNJR052YlhCaGNtVWdkSGx3WlhNZ1lXNWtJRzl5WkdWeUlIWmhiSFZsY3lCdlppQmthV1ptWlhKbGJuUWdkSGx3WlhNZ1lua2dkSGx3WlM1Y2NseHVJQ0FnSUhaaGNpQjBZU0E5SUhSNWNHVnZaaUJoTzF4eVhHNGdJQ0FnZG1GeUlIUmlJRDBnZEhsd1pXOW1JR0k3WEhKY2JpQWdJQ0JwWmlBb2RHRWdJVDA5SUhSaUtTQjdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJoSUR3Z2RHSWdQeUF0TVNBNklERTdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnBaaUFvZEdFZ1BUMDlJQ2R2WW1wbFkzUW5LU0I3WEhKY2JpQWdJQ0FnSUNBZ0x5OGdjM1JoYm1SaGNtUnBlbVZrSUVwaGRtRlRZM0pwY0hRZ1luVm5PaUJ1ZFd4c0lHbHpJRzV2ZENCaGJpQnZZbXBsWTNRc0lHSjFkQ0IwZVhCbGIyWWdjMkY1Y3lCcGRDQnBjMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaGhJRDA5UFNCdWRXeHNLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lpQTlQVDBnYm5Wc2JDQS9JREFnT2lBdE1UdGNjbHh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hpSUQwOVBTQnVkV3hzS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNVHRjY2x4dUlDQWdJQ0FnSUNCaElEMGdZUzUyWVd4MVpVOW1LQ2s3WEhKY2JpQWdJQ0FnSUNBZ1lpQTlJR0l1ZG1Gc2RXVlBaaWdwTzF4eVhHNGdJQ0FnSUNBZ0lIUmhJRDBnZEhsd1pXOW1JR0U3WEhKY2JpQWdJQ0FnSUNBZ2RHSWdQU0IwZVhCbGIyWWdZanRjY2x4dUlDQWdJQ0FnSUNBdkx5QkVaV0ZzSUhkcGRHZ2dkR2hsSUhSM2J5QjJZV3gxWlU5bUtDbHpJSEJ5YjJSMVkybHVaeUJrYVdabVpYSmxiblFnZEhsd1pYTmNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RHRWdJVDA5SUhSaUtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMFlTQThJSFJpSUQ4Z0xURWdPaUF4TzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lDOHZJR0VnWVc1a0lHSWdZWEpsSUc1dmR5QjBhR1VnYzJGdFpTQjBlWEJsTENCaGJtUWdkMmxzYkNCaVpTQmhJRzUxYldKbGNpd2djM1J5YVc1bklHOXlJR0Z5Y21GNUlGeHlYRzRnSUNBZ0x5OGdLSGRvYVdOb0lIZGxJR0Z6YzNWdFpTQm9iMnhrY3lCdWRXMWlaWEp6SUc5eUlITjBjbWx1WjNNcExDQnZjaUJ6YjIxbGRHaHBibWNnZFc1emRYQndiM0owWldRdVhISmNiaUFnSUNCcFppQW9ZU0E4SUdJcFhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDMHhPMXh5WEc0Z0lDQWdhV1lnS0dFZ1BpQmlLVnh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUF4TzF4eVhHNGdJQ0FnYVdZZ0tHRWdQVDA5SUdJcFhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEQTdYSEpjYmlBZ0lDQXZMeUJQY21SbGNpQk9ZVTRnYkdWemN5QjBhR0Z1SUc5MGFHVnlJRzUxYldKbGNuTmNjbHh1SUNBZ0lHbG1JQ2hPZFcxaVpYSXVhWE5PWVU0b1lTa3BYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRTUxYldKbGNpNXBjMDVoVGloaUtTQS9JREFnT2lBdE1UdGNjbHh1SUNBZ0lHVnNjMlVnYVdZZ0tFNTFiV0psY2k1cGMwNWhUaWhpS1NsY2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01UdGNjbHh1SUNBZ0lDOHZJRlJvYVhNZ1kyOTFiR1FnWW1VZ2RIZHZJRzlpYW1WamRITWdLR1V1Wnk0Z1d6ZGRJR0Z1WkNCYkp6Y25YU2tnZEdoaGRDQmhjbVZ1SjNRZ2IzSmtaWEpsWkZ4eVhHNGdJQ0FnY21WMGRYSnVJRUZ5Y21GNUxtbHpRWEp5WVhrb1lTa2dQeUF3SURvZ1RuVnRZbVZ5TGs1aFRqdGNjbHh1ZlZ4eVhHNWxlSEJ2Y25SekxtUmxabUYxYkhSRGIyMXdZWEpoZEc5eUlEMGdaR1ZtWVhWc2RFTnZiWEJoY21GMGIzSTdYSEpjYmp0Y2NseHVablZ1WTNScGIyNGdjMmx0Y0d4bFEyOXRjR0Z5WVhSdmNpaGhMQ0JpS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnWVNBK0lHSWdQeUF4SURvZ1lTQThJR0lnUHlBdE1TQTZJREE3WEhKY2JuMWNjbHh1Wlhod2IzSjBjeTV6YVcxd2JHVkRiMjF3WVhKaGRHOXlJRDBnYzJsdGNHeGxRMjl0Y0dGeVlYUnZjanRjY2x4dU8xeHlYRzR2S2lwY2NseHVJQ29nUVNCeVpXRnpiMjVoWW14NUlHWmhjM1FnWTI5c2JHVmpkR2x2YmlCdlppQnJaWGt0ZG1Gc2RXVWdjR0ZwY25NZ2QybDBhQ0JoSUhCdmQyVnlablZzSUVGUVNTNWNjbHh1SUNvZ1RHRnlaMlZzZVNCamIyMXdZWFJwWW14bElIZHBkR2dnZEdobElITjBZVzVrWVhKa0lFMWhjQzRnUWxSeVpXVWdhWE1nWVNCQ0t5QjBjbVZsSUdSaGRHRWdjM1J5ZFdOMGRYSmxMRnh5WEc0Z0tpQnpieUIwYUdVZ1kyOXNiR1ZqZEdsdmJpQnBjeUJ6YjNKMFpXUWdZbmtnYTJWNUxseHlYRzRnS2x4eVhHNGdLaUJDS3lCMGNtVmxjeUIwWlc1a0lIUnZJSFZ6WlNCdFpXMXZjbmtnYlc5eVpTQmxabVpwWTJsbGJuUnNlU0IwYUdGdUlHaGhjMmgwWVdKc1pYTWdjM1ZqYUNCaGN5QjBhR1ZjY2x4dUlDb2djM1JoYm1SaGNtUWdUV0Z3TENCbGMzQmxZMmxoYkd4NUlIZG9aVzRnZEdobElHTnZiR3hsWTNScGIyNGdZMjl1ZEdGcGJuTWdZU0JzWVhKblpTQnVkVzFpWlhJZ2IyWmNjbHh1SUNvZ2FYUmxiWE11SUVodmQyVjJaWElzSUcxaGFXNTBZV2x1YVc1bklIUm9aU0J6YjNKMElHOXlaR1Z5SUcxaGEyVnpJSFJvWlcwZ2JXOWtaWE4wYkhrZ2MyeHZkMlZ5T2x4eVhHNGdLaUJQS0d4dlp5QnphWHBsS1NCeVlYUm9aWElnZEdoaGJpQlBLREVwTGlCVWFHbHpJRUlySUhSeVpXVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2MzVndjRzl5ZEhNZ1R5Z3hLVnh5WEc0Z0tpQm1ZWE4wSUdOc2IyNXBibWN1SUVsMElHRnNjMjhnYzNWd2NHOXlkSE1nWm5KbFpYcGxLQ2tzSUhkb2FXTm9JR05oYmlCaVpTQjFjMlZrSUhSdklHVnVjM1Z5WlNCMGFHRjBYSEpjYmlBcUlHRWdRbFJ5WldVZ2FYTWdibTkwSUdOb1lXNW5aV1FnWVdOamFXUmxiblJoYkd4NUxseHlYRzRnS2x4eVhHNGdLaUJEYjI1bWRYTnBibWRzZVN3Z2RHaGxJRVZUTmlCTllYQXVabTl5UldGamFDaGpLU0J0WlhSb2IyUWdZMkZzYkhNZ1l5aDJZV3gxWlN4clpYa3BJR2x1YzNSbFlXUWdiMlpjY2x4dUlDb2dZeWhyWlhrc2RtRnNkV1VwTENCcGJpQmpiMjUwY21GemRDQjBieUJ2ZEdobGNpQnRaWFJvYjJSeklITjFZMmdnWVhNZ2MyVjBLQ2tnWVc1a0lHVnVkSEpwWlhNb0tWeHlYRzRnS2lCM2FHbGphQ0J3ZFhRZ2RHaGxJR3RsZVNCbWFYSnpkQzRnU1NCallXNGdiMjVzZVNCaGMzTjFiV1VnZEdoaGRDQjBhR1VnYjNKa1pYSWdkMkZ6SUhKbGRtVnljMlZrSUc5dVhISmNiaUFxSUhSb1pTQjBhR1Z2Y25rZ2RHaGhkQ0IxYzJWeWN5QjNiM1ZzWkNCMWMzVmhiR3g1SUhkaGJuUWdkRzhnWlhoaGJXbHVaU0IyWVd4MVpYTWdZVzVrSUdsbmJtOXlaU0JyWlhsekxseHlYRzRnS2lCQ1ZISmxaU2R6SUdadmNrVmhZMmdvS1NCMGFHVnlaV1p2Y21VZ2QyOXlhM01nZEdobElITmhiV1VnZDJGNUxDQmlkWFFnWVNCelpXTnZibVFnYldWMGFHOWtYSEpjYmlBcUlHQXVabTl5UldGamFGQmhhWElvS0d0bGVTeDJZV3gxWlNrOVBuc3VMaTU5S1dBZ2FYTWdjSEp2ZG1sa1pXUWdkMmhwWTJnZ2MyVnVaSE1nZVc5MUlIUm9aU0JyWlhsY2NseHVJQ29nWm1seWMzUWdZVzVrSUhSb1pTQjJZV3gxWlNCelpXTnZibVE3SUhSb2FYTWdiV1YwYUc5a0lHbHpJSE5zYVdkb2RHeDVJR1poYzNSbGNpQmlaV05oZFhObElHbDBJR2x6WEhKY2JpQXFJSFJvWlNCY0ltNWhkR2wyWlZ3aUlHWnZjaTFsWVdOb0lHMWxkR2h2WkNCbWIzSWdkR2hwY3lCamJHRnpjeTVjY2x4dUlDcGNjbHh1SUNvZ1QzVjBJRzltSUhSb1pTQmliM2dzSUVKVWNtVmxJSE4xY0hCdmNuUnpJR3RsZVhNZ2RHaGhkQ0JoY21VZ2JuVnRZbVZ5Y3l3Z2MzUnlhVzVuY3l3Z1lYSnlZWGx6SUc5bVhISmNiaUFxSUc1MWJXSmxjbk12YzNSeWFXNW5jeXdnUkdGMFpTd2dZVzVrSUc5aWFtVmpkSE1nZEdoaGRDQm9ZWFpsSUdFZ2RtRnNkV1ZQWmlncElHMWxkR2h2WkNCeVpYUjFjbTVwYm1jZ1lWeHlYRzRnS2lCdWRXMWlaWElnYjNJZ2MzUnlhVzVuTGlCUGRHaGxjaUJrWVhSaElIUjVjR1Z6TENCemRXTm9JR0Z6SUdGeWNtRjVjeUJ2WmlCRVlYUmxJRzl5SUdOMWMzUnZiVnh5WEc0Z0tpQnZZbXBsWTNSekxDQnlaWEYxYVhKbElHRWdZM1Z6ZEc5dElHTnZiWEJoY21GMGIzSXNJSGRvYVdOb0lIbHZkU0J0ZFhOMElIQmhjM01nWVhNZ2RHaGxJSE5sWTI5dVpGeHlYRzRnS2lCaGNtZDFiV1Z1ZENCMGJ5QjBhR1VnWTI5dWMzUnlkV04wYjNJZ0tIUm9aU0JtYVhKemRDQmhjbWQxYldWdWRDQnBjeUJoYmlCdmNIUnBiMjVoYkNCc2FYTjBJRzltWEhKY2JpQXFJR2x1YVhScFlXd2dhWFJsYlhNcExpQlRlVzFpYjJ4eklHTmhibTV2ZENCaVpTQjFjMlZrSUdGeklHdGxlWE1nWW1WallYVnpaU0IwYUdWNUlHRnlaU0IxYm05eVpHVnlaV1JjY2x4dUlDb2dLRzl1WlNCVGVXMWliMndnYVhNZ2JtVjJaWElnWENKbmNtVmhkR1Z5WENJZ2IzSWdYQ0pzWlhOelhDSWdkR2hoYmlCaGJtOTBhR1Z5S1M1Y2NseHVJQ3BjY2x4dUlDb2dRR1Y0WVcxd2JHVmNjbHh1SUNvZ1IybDJaVzRnWVNCN2JtRnRaVG9nYzNSeWFXNW5MQ0JoWjJVNklHNTFiV0psY24wZ2IySnFaV04wTENCNWIzVWdZMkZ1SUdOeVpXRjBaU0JoSUhSeVpXVWdjMjl5ZEdWa0lHSjVYSEpjYmlBcUlHNWhiV1VnWVc1a0lIUm9aVzRnWW5rZ1lXZGxJR3hwYTJVZ2RHaHBjenBjY2x4dUlDcGNjbHh1SUNvZ0lDQWdJSFpoY2lCMGNtVmxJRDBnYm1WM0lFSlVjbVZsS0hWdVpHVm1hVzVsWkN3Z0tHRXNJR0lwSUQwK0lIdGNjbHh1SUNvZ0lDQWdJQ0FnYVdZZ0tHRXVibUZ0WlNBK0lHSXVibUZ0WlNsY2NseHVJQ29nSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNVHNnTHk4Z1VtVjBkWEp1SUdFZ2JuVnRZbVZ5SUQ0d0lIZG9aVzRnWVNBK0lHSmNjbHh1SUNvZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVM1dVlXMWxJRHdnWWk1dVlXMWxLVnh5WEc0Z0tpQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBdE1Uc2dMeThnVW1WMGRYSnVJR0VnYm5WdFltVnlJRHd3SUhkb1pXNGdZU0E4SUdKY2NseHVJQ29nSUNBZ0lDQWdaV3h6WlNBdkx5QnVZVzFsY3lCaGNtVWdaWEYxWVd3Z0tHOXlJR2x1WTI5dGNHRnlZV0pzWlNsY2NseHVJQ29nSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZUzVoWjJVZ0xTQmlMbUZuWlRzZ0x5OGdVbVYwZFhKdUlENHdJSGRvWlc0Z1lTNWhaMlVnUGlCaUxtRm5aVnh5WEc0Z0tpQWdJQ0FnZlNrN1hISmNiaUFxWEhKY2JpQXFJQ0FnSUNCMGNtVmxMbk5sZENoN2JtRnRaVHBjSWtKcGJHeGNJaXdnWVdkbE9qRTNmU3dnWENKb1lYQndlVndpS1R0Y2NseHVJQ29nSUNBZ0lIUnlaV1V1YzJWMEtIdHVZVzFsT2x3aVJuSmhibHdpTENCaFoyVTZOREI5TENCY0ltSjFjM2tnSmlCemRISmxjM05sWkZ3aUtUdGNjbHh1SUNvZ0lDQWdJSFJ5WldVdWMyVjBLSHR1WVcxbE9sd2lRbWxzYkZ3aUxDQmhaMlU2TlRWOUxDQmNJbkpsWTJWdWRHeDVJR3hoYVdRZ2IyWm1YQ0lwTzF4eVhHNGdLaUFnSUNBZ2RISmxaUzVtYjNKRllXTm9VR0ZwY2lnb2F5d2dkaWtnUFQ0Z2UxeHlYRzRnS2lBZ0lDQWdJQ0JqYjI1emIyeGxMbXh2WnloZ1RtRnRaVG9nSkh0ckxtNWhiV1Y5SUVGblpUb2dKSHRyTG1GblpYMGdVM1JoZEhWek9pQWtlM1o5WUNrN1hISmNiaUFxSUNBZ0lDQjlLVHRjY2x4dUlDcGNjbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVYSEpjYmlBcUlGUm9aU0JjSW5KaGJtZGxYQ0lnYldWMGFHOWtjeUFvWUdadmNrVmhZMmdzSUdadmNsSmhibWRsTENCbFpHbDBVbUZ1WjJWZ0tTQjNhV3hzSUhKbGRIVnliaUIwYUdVZ2JuVnRZbVZ5WEhKY2JpQXFJRzltSUdWc1pXMWxiblJ6SUhSb1lYUWdkMlZ5WlNCelkyRnVibVZrTGlCSmJpQmhaR1JwZEdsdmJpd2dkR2hsSUdOaGJHeGlZV05ySUdOaGJpQnlaWFIxY200Z2UySnlaV0ZyT2xKOVhISmNiaUFxSUhSdklITjBiM0FnWldGeWJIa2dZVzVrSUhKbGRIVnliaUJTSUdaeWIyMGdkR2hsSUc5MWRHVnlJR1oxYm1OMGFXOXVMbHh5WEc0Z0tseHlYRzRnS2lBdElGUlBSRTg2SUZSbGMzUWdjR1Z5Wm05eWJXRnVZMlVnYjJZZ2NISmxZV3hzYjJOaGRHbHVaeUIyWVd4MVpYTWdZWEp5WVhrZ1lYUWdiV0Y0SUhOcGVtVmNjbHh1SUNvZ0xTQlVUMFJQT2lCQlpHUWdabUZ6ZENCcGJtbDBhV0ZzYVhwaGRHbHZiaUIzYUdWdUlHRWdjMjl5ZEdWa0lHRnljbUY1SUdseklIQnliM1pwWkdWa0lIUnZJR052Ym5OMGNuVmpkRzl5WEhKY2JpQXFYSEpjYmlBcUlFWnZjaUJ0YjNKbElHUnZZM1Z0Wlc1MFlYUnBiMjRnYzJWbElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXhkMlZ5ZEdsbEwySjBjbVZsTFhSNWNHVnpZM0pwY0hSY2NseHVJQ3BjY2x4dUlDb2dRWEpsSUhsdmRTQmhJRU1qSUdSbGRtVnNiM0JsY2o4Z1dXOTFJRzFwWjJoMElHeHBhMlVnZEdobElITnBiV2xzWVhJZ1pHRjBZU0J6ZEhKMVkzUjFjbVZ6SUVrZ2JXRmtaU0JtYjNJZ1F5TTZYSEpjYmlBcUlFSkVhV04wYVc5dVlYSjVMQ0JDVEdsemRDd2daWFJqTGlCVFpXVWdhSFIwY0RvdkwyTnZjbVV1Ykc5NVl5NXVaWFF2WTI5c2JHVmpkR2x2Ym5NdlhISmNiaUFxWEhKY2JpQXFJRUJoZFhSb2IzSWdSR0YyYVdRZ1VHbGxjR2R5WVhOelhISmNiaUFxTDF4eVhHNTJZWElnUWxSeVpXVWdQU0F2S2lvZ1FHTnNZWE56SUNvdklDaG1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0F2S2lwY2NseHVJQ0FnSUNBcUlFbHVhWFJwWVd4cGVtVnpJR0Z1SUdWdGNIUjVJRUlySUhSeVpXVXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdZMjl0Y0dGeVpTQkRkWE4wYjIwZ1puVnVZM1JwYjI0Z2RHOGdZMjl0Y0dGeVpTQndZV2x5Y3lCdlppQmxiR1Z0Wlc1MGN5QnBiaUIwYUdVZ2RISmxaUzVjY2x4dUlDQWdJQ0FxSUNBZ1NXWWdibTkwSUhOd1pXTnBabWxsWkN3Z1pHVm1ZWFZzZEVOdmJYQmhjbUYwYjNJZ2QybHNiQ0JpWlNCMWMyVmtJSGRvYVdOb0lHbHpJSFpoYkdsa0lHRnpJR3h2Ym1jZ1lYTWdTeUJsZUhSbGJtUnpJRVJsWm1GMWJIUkRiMjF3WVhKaFlteGxMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR1Z1ZEhKcFpYTWdRU0J6WlhRZ2IyWWdhMlY1TFhaaGJIVmxJSEJoYVhKeklIUnZJR2x1YVhScFlXeHBlbVVnZEdobElIUnlaV1ZjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0J0WVhoT2IyUmxVMmw2WlNCQ2NtRnVZMmhwYm1jZ1ptRmpkRzl5SUNodFlYaHBiWFZ0SUdsMFpXMXpJRzl5SUdOb2FXeGtjbVZ1SUhCbGNpQnViMlJsS1Z4eVhHNGdJQ0FnSUNvZ0lDQk5kWE4wSUdKbElHbHVJSEpoYm1kbElEUXVMakkxTmk0Z1NXWWdkVzVrWldacGJtVmtJRzl5SUR3MElIUm9aVzRnWkdWbVlYVnNkQ0JwY3lCMWMyVmtPeUJwWmlBK01qVTJJSFJvWlc0Z01qVTJMbHh5WEc0Z0lDQWdJQ292WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJDVkhKbFpTaGxiblJ5YVdWekxDQmpiMjF3WVhKbExDQnRZWGhPYjJSbFUybDZaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUWdQU0JGYlhCMGVVeGxZV1k3WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYzJsNlpTQTlJREE3WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYldGNFRtOWtaVk5wZW1VZ1BTQnRZWGhPYjJSbFUybDZaU0ErUFNBMElEOGdUV0YwYUM1dGFXNG9iV0Y0VG05a1pWTnBlbVVzSURJMU5pa2dPaUF6TWp0Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5amIyMXdZWEpsSUQwZ1kyOXRjR0Z5WlNCOGZDQmtaV1poZFd4MFEyOXRjR0Z5WVhSdmNqdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb1pXNTBjbWxsY3lsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJRWVdseWN5aGxiblJ5YVdWektUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hDVkhKbFpTNXdjbTkwYjNSNWNHVXNJRndpYzJsNlpWd2lMQ0I3WEhKY2JpQWdJQ0FnSUNBZ0x5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJQ0FnSUNBdkx5QkZVellnVFdGd1BFc3NWajRnYldWMGFHOWtjeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdJQ0FnSUM4cUtpQkhaWFJ6SUhSb1pTQnVkVzFpWlhJZ2IyWWdhMlY1TFhaaGJIVmxJSEJoYVhKeklHbHVJSFJvWlNCMGNtVmxMaUFxTDF4eVhHNGdJQ0FnSUNBZ0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjeTVmYzJsNlpUc2dmU3hjY2x4dUlDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQm1ZV3h6WlN4Y2NseHVJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVmNjbHh1SUNBZ0lIMHBPMXh5WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0VKVWNtVmxMbkJ5YjNSdmRIbHdaU3dnWENKc1pXNW5kR2hjSWl3Z2UxeHlYRzRnSUNBZ0lDQWdJQzhxS2lCSFpYUnpJSFJvWlNCdWRXMWlaWElnYjJZZ2EyVjVMWFpoYkhWbElIQmhhWEp6SUdsdUlIUm9aU0IwY21WbExpQXFMMXh5WEc0Z0lDQWdJQ0FnSUdkbGREb2dablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN5NWZjMmw2WlRzZ2ZTeGNjbHh1SUNBZ0lDQWdJQ0JsYm5WdFpYSmhZbXhsT2lCbVlXeHpaU3hjY2x4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdWY2NseHVJQ0FnSUgwcE8xeHlYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRUpVY21WbExuQnliM1J2ZEhsd1pTd2dYQ0pwYzBWdGNIUjVYQ0lzSUh0Y2NseHVJQ0FnSUNBZ0lDQXZLaW9nVW1WMGRYSnVjeUIwY25WbElHbG1aaUIwYUdVZ2RISmxaU0JqYjI1MFlXbHVjeUJ1YnlCclpYa3RkbUZzZFdVZ2NHRnBjbk11SUNvdlhISmNiaUFnSUNBZ0lDQWdaMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQjBhR2x6TGw5emFYcGxJRDA5UFNBd095QjlMRnh5WEc0Z0lDQWdJQ0FnSUdWdWRXMWxjbUZpYkdVNklHWmhiSE5sTEZ4eVhHNGdJQ0FnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nZEhKMVpWeHlYRzRnSUNBZ2ZTazdYSEpjYmlBZ0lDQXZLaW9nVW1Wc1pXRnpaWE1nZEdobElIUnlaV1VnYzI4Z2RHaGhkQ0JwZEhNZ2MybDZaU0JwY3lBd0xpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtTnNaV0Z5SUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRZ1BTQkZiWEIwZVV4bFlXWTdYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NWZjMmw2WlNBOUlEQTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKMWJuTWdZU0JtZFc1amRHbHZiaUJtYjNJZ1pXRmphQ0JyWlhrdGRtRnNkV1VnY0dGcGNpd2dhVzRnYjNKa1pYSWdabkp2YlNCemJXRnNiR1Z6ZENCMGIxeHlYRzRnSUNBZ0lDb2dJR3hoY21kbGMzUWdhMlY1TGlCR2IzSWdZMjl0Y0dGMGFXSnBiR2wwZVNCM2FYUm9JRVZUTmlCTllYQXNJSFJvWlNCaGNtZDFiV1Z1ZENCdmNtUmxjaUIwYjF4eVhHNGdJQ0FnSUNvZ0lIUm9aU0JqWVd4c1ltRmpheUJwY3lCaVlXTnJkMkZ5WkhNNklIWmhiSFZsSUdacGNuTjBMQ0IwYUdWdUlHdGxlUzRnUTJGc2JDQm1iM0pGWVdOb1VHRnBjbHh5WEc0Z0lDQWdJQ29nSUdsdWMzUmxZV1FnZEc4Z2NtVmpaV2wyWlNCMGFHVWdhMlY1SUdGeklIUm9aU0JtYVhKemRDQmhjbWQxYldWdWRDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjBhR2x6UVhKbklFbG1JSEJ5YjNacFpHVmtMQ0IwYUdseklIQmhjbUZ0WlhSbGNpQnBjeUJoYzNOcFoyNWxaQ0JoY3lCMGFHVWdZSFJvYVhOZ1hISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ2RtRnNkV1VnWm05eUlHVmhZMmdnWTJGc2JHSmhZMnN1WEhKY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCMGFHVWdiblZ0WW1WeUlHOW1JSFpoYkhWbGN5QjBhR0YwSUhkbGNtVWdjMlZ1ZENCMGJ5QjBhR1VnWTJGc2JHSmhZMnNzWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnYjNJZ2RHaGxJRklnZG1Gc2RXVWdhV1lnZEdobElHTmhiR3hpWVdOcklISmxkSFZ5Ym1Wa0lIdGljbVZoYXpwU2ZTNGdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNW1iM0pGWVdOb0lEMGdablZ1WTNScGIyNGdLR05oYkd4aVlXTnJMQ0IwYUdselFYSm5LU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJRjkwYUdseklEMGdkR2hwY3p0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGMwRnlaeUFoUFQwZ2RXNWtaV1pwYm1Wa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCallXeHNZbUZqYXlBOUlHTmhiR3hpWVdOckxtSnBibVFvZEdocGMwRnlaeWs3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVabTl5UldGamFGQmhhWElvWm5WdVkzUnBiMjRnS0dzc0lIWXBJSHNnY21WMGRYSnVJR05oYkd4aVlXTnJLSFlzSUdzc0lGOTBhR2x6S1RzZ2ZTazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKMWJuTWdZU0JtZFc1amRHbHZiaUJtYjNJZ1pXRmphQ0JyWlhrdGRtRnNkV1VnY0dGcGNpd2dhVzRnYjNKa1pYSWdabkp2YlNCemJXRnNiR1Z6ZENCMGIxeHlYRzRnSUNBZ0lDb2dJR3hoY21kbGMzUWdhMlY1TGlCVWFHVWdZMkZzYkdKaFkyc2dZMkZ1SUhKbGRIVnliaUI3WW5KbFlXczZVbjBnS0hkb1pYSmxJRklnYVhNZ1lXNTVJSFpoYkhWbFhISmNiaUFnSUNBZ0tpQWdaWGhqWlhCMElIVnVaR1ZtYVc1bFpDa2dkRzhnYzNSdmNDQnBiVzFsWkdsaGRHVnNlU0JoYm1RZ2NtVjBkWEp1SUZJZ1puSnZiU0JtYjNKRllXTm9VR0ZwY2k1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCdmJrWnZkVzVrSUVFZ1puVnVZM1JwYjI0Z2RHaGhkQ0JwY3lCallXeHNaV1FnWm05eUlHVmhZMmdnYTJWNUxYWmhiSFZsSUhCaGFYSXVJRlJvYVhOY2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNCbWRXNWpkR2x2YmlCallXNGdjbVYwZFhKdUlIdGljbVZoYXpwU2ZTQjBieUJ6ZEc5d0lHVmhjbXg1SUhkcGRHZ2djbVZ6ZFd4MElGSXVYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdWR2hsSUhKbFlYTnZiaUIwYUdGMElIbHZkU0J0ZFhOMElISmxkSFZ5YmlCN1luSmxZV3M2VW4wZ2FXNXpkR1ZoWkNCdlppQnphVzF3YkhrZ1VseHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHbDBjMlZzWmlCcGN5Qm1iM0lnWTI5dWMybHpkR1Z1WTNrZ2QybDBhQ0JsWkdsMFVtRnVaMlVvS1N3Z2QyaHBZMmdnWVd4c2IzZHpYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdiWFZzZEdsd2JHVWdZV04wYVc5dWN5d2dibTkwSUdwMWMzUWdZbkpsWVd0cGJtY3VYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhVzVwZEdsaGJFTnZkVzUwWlhJZ1ZHaHBjeUJwY3lCMGFHVWdkbUZzZFdVZ2IyWWdkR2hsSUhSb2FYSmtJR0Z5WjNWdFpXNTBJRzltWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnWUc5dVJtOTFibVJnSUhSb1pTQm1hWEp6ZENCMGFXMWxJR2wwSUdseklHTmhiR3hsWkM0Z1ZHaGxJR052ZFc1MFpYSWdhVzVqY21WaGMyVnpYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdZbmtnYjI1bElHVmhZMmdnZEdsdFpTQmdiMjVHYjNWdVpHQWdhWE1nWTJGc2JHVmtMaUJFWldaaGRXeDBJSFpoYkhWbE9pQXdYSEpjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUIwYUdVZ2JuVnRZbVZ5SUc5bUlIQmhhWEp6SUhObGJuUWdkRzhnZEdobElHTmhiR3hpWVdOcklDaHdiSFZ6SUdsdWFYUnBZV3hEYjNWdWRHVnlMRnh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR2xtSUhsdmRTQndjbTkyYVdSbFpDQnZibVVwTGlCSlppQjBhR1VnWTJGc2JHSmhZMnNnY21WMGRYSnVaV1FnZTJKeVpXRnJPbEo5SUhSb1pXNWNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQjBhR1VnVWlCMllXeDFaU0JwY3lCeVpYUjFjbTVsWkNCcGJuTjBaV0ZrTGlBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1admNrVmhZMmhRWVdseUlEMGdablZ1WTNScGIyNGdLR05oYkd4aVlXTnJMQ0JwYm1sMGFXRnNRMjkxYm5SbGNpa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnNiM2NnUFNCMGFHbHpMbTFwYmt0bGVTZ3BMQ0JvYVdkb0lEMGdkR2hwY3k1dFlYaExaWGtvS1R0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVtYjNKU1lXNW5aU2hzYjNjc0lHaHBaMmdzSUhSeWRXVXNJR05oYkd4aVlXTnJMQ0JwYm1sMGFXRnNRMjkxYm5SbGNpazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xWEhKY2JpQWdJQ0FnS2lCR2FXNWtjeUJoSUhCaGFYSWdhVzRnZEdobElIUnlaV1VnWVc1a0lISmxkSFZ5Ym5NZ2RHaGxJR0Z6YzI5amFXRjBaV1FnZG1Gc2RXVXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdaR1ZtWVhWc2RGWmhiSFZsSUdFZ2RtRnNkV1VnZEc4Z2NtVjBkWEp1SUdsbUlIUm9aU0JyWlhrZ2QyRnpJRzV2ZENCbWIzVnVaQzVjY2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhSb1pTQjJZV3gxWlN3Z2IzSWdaR1ZtWVhWc2RGWmhiSFZsSUdsbUlIUm9aU0JyWlhrZ2QyRnpJRzV2ZENCbWIzVnVaQzVjY2x4dUlDQWdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkRiMjF3ZFhSaGRHbHZibUZzSUdOdmJYQnNaWGhwZEhrNklFOG9iRzluSUhOcGVtVXBYSEpjYmlBZ0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNW5aWFFnUFNCbWRXNWpkR2x2YmlBb2EyVjVMQ0JrWldaaGRXeDBWbUZzZFdVcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmNtOXZkQzVuWlhRb2EyVjVMQ0JrWldaaGRXeDBWbUZzZFdVc0lIUm9hWE1wTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtseHlYRzRnSUNBZ0lDb2dRV1JrY3lCdmNpQnZkbVZ5ZDNKcGRHVnpJR0VnYTJWNUxYWmhiSFZsSUhCaGFYSWdhVzRnZEdobElFSXJJSFJ5WldVdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2EyVjVJSFJvWlNCclpYa2dhWE1nZFhObFpDQjBieUJrWlhSbGNtMXBibVVnZEdobElITnZjblFnYjNKa1pYSWdiMlpjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0JrWVhSaElHbHVJSFJvWlNCMGNtVmxMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSFpoYkhWbElHUmhkR0VnZEc4Z1lYTnpiMk5wWVhSbElIZHBkR2dnZEdobElHdGxlU0FvYjNCMGFXOXVZV3dwWEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnYjNabGNuZHlhWFJsSUZkb1pYUm9aWElnZEc4Z2IzWmxjbmR5YVhSbElHRnVJR1Y0YVhOMGFXNW5JR3RsZVMxMllXeDFaU0J3WVdseVhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ0tHUmxabUYxYkhRNklIUnlkV1VwTGlCSlppQjBhR2x6SUdseklHWmhiSE5sSUdGdVpDQjBhR1Z5WlNCcGN5QmhiaUJsZUdsemRHbHVaMXh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJR3RsZVMxMllXeDFaU0J3WVdseUlIUm9aVzRnZEdocGN5QnRaWFJvYjJRZ2FHRnpJRzV2SUdWbVptVmpkQzVjY2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhSeWRXVWdhV1lnWVNCdVpYY2dhMlY1TFhaaGJIVmxJSEJoYVhJZ2QyRnpJR0ZrWkdWa0xseHlYRzRnSUNBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJYQjFkR0YwYVc5dVlXd2dZMjl0Y0d4bGVHbDBlVG9nVHloc2IyY2djMmw2WlNsY2NseHVJQ0FnSUNBcUlFNXZkR1U2SUhkb1pXNGdiM1psY25keWFYUnBibWNnWVNCd2NtVjJhVzkxY3lCbGJuUnllU3dnZEdobElHdGxlU0JwY3lCMWNHUmhkR1ZrWEhKY2JpQWdJQ0FnS2lCaGN5QjNaV3hzSUdGeklIUm9aU0IyWVd4MVpTNGdWR2hwY3lCb1lYTWdibThnWldabVpXTjBJSFZ1YkdWemN5QjBhR1VnYm1WM0lHdGxlVnh5WEc0Z0lDQWdJQ29nYUdGeklHUmhkR0VnZEdoaGRDQmtiMlZ6SUc1dmRDQmhabVpsWTNRZ2FYUnpJSE52Y25RZ2IzSmtaWEl1WEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzV6WlhRZ1BTQm1kVzVqZEdsdmJpQW9hMlY1TENCMllXeDFaU3dnYjNabGNuZHlhWFJsS1NCN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVYM0p2YjNRdWFYTlRhR0Z5WldRcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRZ1BTQjBhR2x6TGw5eWIyOTBMbU5zYjI1bEtDazdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlIUm9hWE11WDNKdmIzUXVjMlYwS0d0bGVTd2dkbUZzZFdVc0lHOTJaWEozY21sMFpTd2dkR2hwY3lrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hKbGMzVnNkQ0E5UFQwZ2RISjFaU0I4ZkNCeVpYTjFiSFFnUFQwOUlHWmhiSE5sS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHlYRzRnSUNBZ0lDQWdJQzh2SUZKdmIzUWdibTlrWlNCb1lYTWdjM0JzYVhRc0lITnZJR055WldGMFpTQmhJRzVsZHlCeWIyOTBJRzV2WkdVdVhISmNiaUFnSUNBZ0lDQWdkR2hwY3k1ZmNtOXZkQ0E5SUc1bGR5QkNUbTlrWlVsdWRHVnlibUZzS0Z0MGFHbHpMbDl5YjI5MExDQnlaWE4xYkhSZEtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpcGNjbHh1SUNBZ0lDQXFJRkpsZEhWeWJuTWdkSEoxWlNCcFppQjBhR1VnYTJWNUlHVjRhWE4wY3lCcGJpQjBhR1VnUWlzZ2RISmxaU3dnWm1Gc2MyVWdhV1lnYm05MExseHlYRzRnSUNBZ0lDb2dWWE5sSUdkbGRDZ3BJR1p2Y2lCaVpYTjBJSEJsY21admNtMWhibU5sT3lCMWMyVWdhR0Z6S0NrZ2FXWWdlVzkxSUc1bFpXUWdkRzljY2x4dUlDQWdJQ0FxSUdScGMzUnBibWQxYVhOb0lHSmxkSGRsWlc0Z1hDSjFibVJsWm1sdVpXUWdkbUZzZFdWY0lpQmhibVFnWENKclpYa2dibTkwSUhCeVpYTmxiblJjSWk1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCclpYa2dTMlY1SUhSdklHUmxkR1ZqZEZ4eVhHNGdJQ0FnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52YlhCMWRHRjBhVzl1WVd3Z1kyOXRjR3hsZUdsMGVUb2dUeWhzYjJjZ2MybDZaU2xjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbWhoY3lBOUlHWjFibU4wYVc5dUlDaHJaWGtwSUh0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVtYjNKU1lXNW5aU2hyWlhrc0lHdGxlU3dnZEhKMVpTd2dkVzVrWldacGJtVmtLU0FoUFQwZ01EdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaXBjY2x4dUlDQWdJQ0FxSUZKbGJXOTJaWE1nWVNCemFXNW5iR1VnYTJWNUxYWmhiSFZsSUhCaGFYSWdabkp2YlNCMGFHVWdRaXNnZEhKbFpTNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnJaWGtnUzJWNUlIUnZJR1pwYm1SY2NseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIUnlkV1VnYVdZZ1lTQndZV2x5SUhkaGN5Qm1iM1Z1WkNCaGJtUWdjbVZ0YjNabFpDd2dabUZzYzJVZ2IzUm9aWEozYVhObExseHlYRzRnSUNBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJYQjFkR0YwYVc5dVlXd2dZMjl0Y0d4bGVHbDBlVG9nVHloc2IyY2djMmw2WlNsY2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1SbGJHVjBaU0E5SUdaMWJtTjBhVzl1SUNoclpYa3BJSHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxaR2wwVW1GdVoyVW9hMlY1TENCclpYa3NJSFJ5ZFdVc0lFUmxiR1YwWlZKaGJtZGxLU0FoUFQwZ01EdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWQybDBhQ0E5SUdaMWJtTjBhVzl1SUNoclpYa3NJSFpoYkhWbExDQnZkbVZ5ZDNKcGRHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdiblVnUFNCMGFHbHpMbU5zYjI1bEtDazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxTG5ObGRDaHJaWGtzSUhaaGJIVmxMQ0J2ZG1WeWQzSnBkR1VwSUh4OElHOTJaWEozY21sMFpTQS9JRzUxSURvZ2RHaHBjenRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2S2lvZ1VtVjBkWEp1Y3lCaElHTnZjSGtnYjJZZ2RHaGxJSFJ5WldVZ2QybDBhQ0IwYUdVZ2MzQmxZMmxtYVdWa0lHdGxlUzEyWVd4MVpTQndZV2x5Y3lCelpYUXVJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkMmwwYUZCaGFYSnpJRDBnWm5WdVkzUnBiMjRnS0hCaGFYSnpMQ0J2ZG1WeWQzSnBkR1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYm5VZ1BTQjBhR2x6TG1Oc2IyNWxLQ2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MUxuTmxkRkJoYVhKektIQmhhWEp6TENCdmRtVnlkM0pwZEdVcElDRTlQU0F3SUh4OElHOTJaWEozY21sMFpTQS9JRzUxSURvZ2RHaHBjenRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2S2lvZ1VtVjBkWEp1Y3lCaElHTnZjSGtnYjJZZ2RHaGxJSFJ5WldVZ2QybDBhQ0IwYUdVZ2MzQmxZMmxtYVdWa0lHdGxlWE1nY0hKbGMyVnVkQzVjY2x4dUlDQWdJQ0FxSUNCQWNHRnlZVzBnYTJWNWN5QlVhR1VnYTJWNWN5QjBieUJoWkdRdUlFbG1JR0VnYTJWNUlHbHpJR0ZzY21WaFpIa2djSEpsYzJWdWRDQnBiaUIwYUdVZ2RISmxaU3hjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0FnYm1WcGRHaGxjaUIwYUdVZ1pYaHBjM1JwYm1jZ2EyVjVJRzV2Y2lCMGFHVWdaWGhwYzNScGJtY2dkbUZzZFdVZ2FYTWdiVzlrYVdacFpXUXVYSEpjYmlBZ0lDQWdLaUFnUUhCaGNtRnRJSEpsZEhWeWJsUm9hWE5KWmxWdVkyaGhibWRsWkNCcFppQjBjblZsTENCeVpYUjFjbTV6SUhSb2FYTWdhV1lnWVd4c0lHdGxlWE1nWVd4eVpXRmtlVnh5WEc0Z0lDQWdJQ29nSUdWNGFYTjBaV1F1SUZCbGNtWnZjbTFoYm1ObElHNXZkR1U2SUdSMVpTQjBieUIwYUdVZ1lYSmphR2wwWldOMGRYSmxJRzltSUhSb2FYTWdZMnhoYzNNc0lHRnNiRnh5WEc0Z0lDQWdJQ29nSUc1dlpHVW9jeWtnYkdWaFpHbHVaeUIwYnlCbGVHbHpkR2x1WnlCclpYbHpJR0Z5WlNCamJHOXVaV1FnWlhabGJpQnBaaUIwYUdVZ1kyOXNiR1ZqZEdsdmJpQnBjMXh5WEc0Z0lDQWdJQ29nSUhWc2RHbHRZWFJsYkhrZ2RXNWphR0Z1WjJWa0xseHlYRzRnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1M2FYUm9TMlY1Y3lBOUlHWjFibU4wYVc5dUlDaHJaWGx6TENCeVpYUjFjbTVVYUdselNXWlZibU5vWVc1blpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdiblVnUFNCMGFHbHpMbU5zYjI1bEtDa3NJR05vWVc1blpXUWdQU0JtWVd4elpUdGNjbHh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ01Ec2dhU0E4SUd0bGVYTXViR1Z1WjNSb095QnBLeXNwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR05vWVc1blpXUWdQU0J1ZFM1elpYUW9hMlY1YzF0cFhTd2dkVzVrWldacGJtVmtMQ0JtWVd4elpTa2dmSHdnWTJoaGJtZGxaRHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WMGRYSnVWR2hwYzBsbVZXNWphR0Z1WjJWa0lDWW1JQ0ZqYUdGdVoyVmtJRDhnZEdocGN5QTZJRzUxTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtpQlNaWFIxY201eklHRWdZMjl3ZVNCdlppQjBhR1VnZEhKbFpTQjNhWFJvSUhSb1pTQnpjR1ZqYVdacFpXUWdhMlY1SUhKbGJXOTJaV1F1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY21WMGRYSnVWR2hwYzBsbVZXNWphR0Z1WjJWa0lHbG1JSFJ5ZFdVc0lISmxkSFZ5Ym5NZ2RHaHBjeUJwWmlCMGFHVWdhMlY1SUdScFpHNG5kQ0JsZUdsemRDNWNjbHh1SUNBZ0lDQXFJQ0JRWlhKbWIzSnRZVzVqWlNCdWIzUmxPaUJrZFdVZ2RHOGdkR2hsSUdGeVkyaHBkR1ZqZEhWeVpTQnZaaUIwYUdseklHTnNZWE56TENCdWIyUmxLSE1wSUd4bFlXUnBibWRjY2x4dUlDQWdJQ0FxSUNCMGJ5QjNhR1Z5WlNCMGFHVWdhMlY1SUhkdmRXeGtJR2hoZG1VZ1ltVmxiaUJ6ZEc5eVpXUWdZWEpsSUdOc2IyNWxaQ0JsZG1WdUlIZG9aVzRnZEdobElHdGxlVnh5WEc0Z0lDQWdJQ29nSUhSMWNtNXpJRzkxZENCdWIzUWdkRzhnWlhocGMzUWdZVzVrSUhSb1pTQmpiMnhzWldOMGFXOXVJR2x6SUhWdVkyaGhibWRsWkM1Y2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG5kcGRHaHZkWFFnUFNCbWRXNWpkR2x2YmlBb2EyVjVMQ0J5WlhSMWNtNVVhR2x6U1daVmJtTm9ZVzVuWldRcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1M2FYUm9iM1YwVW1GdVoyVW9hMlY1TENCclpYa3NJSFJ5ZFdVc0lISmxkSFZ5YmxSb2FYTkpabFZ1WTJoaGJtZGxaQ2s3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGSmxkSFZ5Ym5NZ1lTQmpiM0I1SUc5bUlIUm9aU0IwY21WbElIZHBkR2dnZEdobElITndaV05wWm1sbFpDQnJaWGx6SUhKbGJXOTJaV1F1WEhKY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY21WMGRYSnVWR2hwYzBsbVZXNWphR0Z1WjJWa0lHbG1JSFJ5ZFdVc0lISmxkSFZ5Ym5NZ2RHaHBjeUJwWmlCdWIyNWxJRzltSUhSb1pTQnJaWGx6WEhKY2JpQWdJQ0FnS2lBZ1pYaHBjM1JsWkM0Z1VHVnlabTl5YldGdVkyVWdibTkwWlRvZ1pIVmxJSFJ2SUhSb1pTQmhjbU5vYVhSbFkzUjFjbVVnYjJZZ2RHaHBjeUJqYkdGemN5eGNjbHh1SUNBZ0lDQXFJQ0J1YjJSbEtITXBJR3hsWVdScGJtY2dkRzhnZDJobGNtVWdkR2hsSUd0bGVTQjNiM1ZzWkNCb1lYWmxJR0psWlc0Z2MzUnZjbVZrSUdGeVpTQmpiRzl1WldSY2NseHVJQ0FnSUNBcUlDQmxkbVZ1SUhkb1pXNGdkR2hsSUd0bGVTQjBkWEp1Y3lCdmRYUWdibTkwSUhSdklHVjRhWE4wTGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1ZDJsMGFHOTFkRXRsZVhNZ1BTQm1kVzVqZEdsdmJpQW9hMlY1Y3l3Z2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJRzUxSUQwZ2RHaHBjeTVqYkc5dVpTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFM1a1pXeGxkR1ZMWlhsektHdGxlWE1wSUh4OElDRnlaWFIxY201VWFHbHpTV1pWYm1Ob1lXNW5aV1FnUHlCdWRTQTZJSFJvYVhNN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdZU0JqYjNCNUlHOW1JSFJvWlNCMGNtVmxJSGRwZEdnZ2RHaGxJSE53WldOcFptbGxaQ0J5WVc1blpTQnZaaUJyWlhseklISmxiVzkyWldRdUlDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWQybDBhRzkxZEZKaGJtZGxJRDBnWm5WdVkzUnBiMjRnS0d4dmR5d2dhR2xuYUN3Z2FXNWpiSFZrWlVocFoyZ3NJSEpsZEhWeWJsUm9hWE5KWmxWdVkyaGhibWRsWkNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCdWRTQTlJSFJvYVhNdVkyeHZibVVvS1R0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvYm5VdVpHVnNaWFJsVW1GdVoyVW9iRzkzTENCb2FXZG9MQ0JwYm1Oc2RXUmxTR2xuYUNrZ1BUMDlJREFnSmlZZ2NtVjBkWEp1VkdocGMwbG1WVzVqYUdGdVoyVmtLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm5VN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdZU0JqYjNCNUlHOW1JSFJvWlNCMGNtVmxJSGRwZEdnZ2NHRnBjbk1nY21WdGIzWmxaQ0IzYUdWdVpYWmxjaUIwYUdVZ1kyRnNiR0poWTJ0Y2NseHVJQ0FnSUNBcUlDQm1kVzVqZEdsdmJpQnlaWFIxY201eklHWmhiSE5sTGlCZ2QyaGxjbVVvS1dBZ2FYTWdZU0J6ZVc1dmJubHRJR1p2Y2lCMGFHbHpJRzFsZEdodlpDNGdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNW1hV3gwWlhJZ1BTQm1kVzVqZEdsdmJpQW9ZMkZzYkdKaFkyc3NJSEpsZEhWeWJsUm9hWE5KWmxWdVkyaGhibWRsWkNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCdWRTQTlJSFJvYVhNdVozSmxaV1I1UTJ4dmJtVW9LVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdaR1ZzTzF4eVhHNGdJQ0FnSUNBZ0lHNTFMbVZrYVhSQmJHd29ablZ1WTNScGIyNGdLR3NzSUhZc0lHa3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGallXeHNZbUZqYXlockxDQjJMQ0JwS1NsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa1pXd2dQU0JFWld4bGRHVTdYSEpjYmlBZ0lDQWdJQ0FnZlNrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0NGa1pXd2dKaVlnY21WMGRYSnVWR2hwYzBsbVZXNWphR0Z1WjJWa0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblU3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGSmxkSFZ5Ym5NZ1lTQmpiM0I1SUc5bUlIUm9aU0IwY21WbElIZHBkR2dnWVd4c0lIWmhiSFZsY3lCaGJIUmxjbVZrSUdKNUlHRWdZMkZzYkdKaFkyc2dablZ1WTNScGIyNHVJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXViV0Z3Vm1Gc2RXVnpJRDBnWm5WdVkzUnBiMjRnS0dOaGJHeGlZV05yS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhSdGNDQTlJSHQ5TzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1ZFNBOUlIUm9hWE11WjNKbFpXUjVRMnh2Ym1Vb0tUdGNjbHh1SUNBZ0lDQWdJQ0J1ZFM1bFpHbDBRV3hzS0daMWJtTjBhVzl1SUNockxDQjJMQ0JwS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYlhBdWRtRnNkV1VnUFNCallXeHNZbUZqYXloMkxDQnJMQ0JwS1N3Z2RHMXdPMXh5WEc0Z0lDQWdJQ0FnSUgwcE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVjbVZrZFdObElEMGdablZ1WTNScGIyNGdLR05oYkd4aVlXTnJMQ0JwYm1sMGFXRnNWbUZzZFdVcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2FTQTlJREFzSUhBZ1BTQnBibWwwYVdGc1ZtRnNkV1U3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR2wwSUQwZ2RHaHBjeTVsYm5SeWFXVnpLSFJvYVhNdWJXbHVTMlY1S0Nrc0lGSmxkWE5sWkVGeWNtRjVLU3dnYm1WNGREdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9JU2h1WlhoMElEMGdhWFF1Ym1WNGRDZ3BLUzVrYjI1bEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCd0lEMGdZMkZzYkdKaFkyc29jQ3dnYm1WNGRDNTJZV3gxWlN3Z2FTc3JMQ0IwYUdsektUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjRHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHlYRzRnSUNBZ0x5OGdTWFJsY21GMGIzSWdiV1YwYUc5a2N5QXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJQzhxS2lCU1pYUjFjbTV6SUdGdUlHbDBaWEpoZEc5eUlIUm9ZWFFnY0hKdmRtbGtaWE1nYVhSbGJYTWdhVzRnYjNKa1pYSWdLR0Z6WTJWdVpHbHVaeUJ2Y21SbGNpQnBabHh5WEc0Z0lDQWdJQ29nSUhSb1pTQmpiMnhzWldOMGFXOXVKM01nWTI5dGNHRnlZWFJ2Y2lCMWMyVnpJR0Z6WTJWdVpHbHVaeUJ2Y21SbGNpd2dZWE1nYVhNZ2RHaGxJR1JsWm1GMWJIUXVLVnh5WEc0Z0lDQWdJQ29nSUVCd1lYSmhiU0JzYjNkbGMzUkxaWGtnUm1seWMzUWdhMlY1SUhSdklHSmxJR2wwWlhKaGRHVmtMQ0J2Y2lCMWJtUmxabWx1WldRZ2RHOGdjM1JoY25RZ1lYUmNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQWdiV2x1UzJWNUtDa3VJRWxtSUhSb1pTQnpjR1ZqYVdacFpXUWdhMlY1SUdSdlpYTnVKM1FnWlhocGMzUWdkR2hsYmlCcGRHVnlZWFJwYjI1Y2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNBZ2MzUmhjblJ6SUdGMElIUm9aU0J1WlhoMElHaHBaMmhsY2lCclpYa2dLR0ZqWTI5eVpHbHVaeUIwYnlCMGFHVWdZMjl0Y0dGeVlYUnZjaWt1WEhKY2JpQWdJQ0FnS2lBZ1FIQmhjbUZ0SUhKbGRYTmxaRUZ5Y21GNUlFOXdkR2x2Ym1Gc0lHRnljbUY1SUhWelpXUWdjbVZ3WldGMFpXUnNlU0IwYnlCemRHOXlaU0JyWlhrdGRtRnNkV1ZjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0FnY0dGcGNuTXNJSFJ2SUdGMmIybGtJR055WldGMGFXNW5JR0VnYm1WM0lHRnljbUY1SUc5dUlHVjJaWEo1SUdsMFpYSmhkR2x2Ymk1Y2NseHVJQ0FnSUNBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1WdWRISnBaWE1nUFNCbWRXNWpkR2x2YmlBb2JHOTNaWE4wUzJWNUxDQnlaWFZ6WldSQmNuSmhlU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJwYm1adklEMGdkR2hwY3k1bWFXNWtVR0YwYUNoc2IzZGxjM1JMWlhrcE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNocGJtWnZJRDA5UFNCMWJtUmxabWx1WldRcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwZEdWeVlYUnZjaWdwTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1YjJSbGNYVmxkV1VnUFNCcGJtWnZMbTV2WkdWeGRXVjFaU3dnYm05a1pXbHVaR1Y0SUQwZ2FXNW1ieTV1YjJSbGFXNWtaWGdzSUd4bFlXWWdQU0JwYm1adkxteGxZV1k3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSE4wWVhSbElEMGdjbVYxYzJWa1FYSnlZWGtnSVQwOUlIVnVaR1ZtYVc1bFpDQS9JREVnT2lBd08xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcElEMGdLR3h2ZDJWemRFdGxlU0E5UFQwZ2RXNWtaV1pwYm1Wa0lEOGdMVEVnT2lCc1pXRm1MbWx1WkdWNFQyWW9iRzkzWlhOMFMyVjVMQ0F3TENCMGFHbHpMbDlqYjIxd1lYSmxLU0F0SURFcE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBkR1Z5WVhSdmNpaG1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR3AxYlhBNklHWnZjaUFvT3pzcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4zYVhSamFDQW9jM1JoZEdVcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJREE2WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ3JLMmtnUENCc1pXRm1MbXRsZVhNdWJHVnVaM1JvS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2daRzl1WlRvZ1ptRnNjMlVzSUhaaGJIVmxPaUJiYkdWaFppNXJaWGx6VzJsZExDQnNaV0ZtTG5aaGJIVmxjMXRwWFYwZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoZEdVZ1BTQXlPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURFNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dySzJrZ1BDQnNaV0ZtTG10bGVYTXViR1Z1WjNSb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3dYU0E5SUd4bFlXWXVhMlY1YzF0cFhTd2djbVYxYzJWa1FYSnlZWGxiTVYwZ1BTQnNaV0ZtTG5aaGJIVmxjMXRwWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJR1J2Ym1VNklHWmhiSE5sTENCMllXeDFaVG9nY21WMWMyVmtRWEp5WVhrZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGMFpTQTlJREk3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBeU9seHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJCWkhaaGJtTmxJSFJ2SUhSb1pTQnVaWGgwSUd4bFlXWWdibTlrWlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCc1pYWmxiQ0E5SUMweE96c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dySzJ4bGRtVnNJRDQ5SUc1dlpHVnhkV1YxWlM1c1pXNW5kR2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SURNN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVZ2FuVnRjRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ3JLMjV2WkdWcGJtUmxlRnRzWlhabGJGMGdQQ0J1YjJSbGNYVmxkV1ZiYkdWMlpXeGRMbXhsYm1kMGFDbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0RzZ2JHVjJaV3dnUGlBd095QnNaWFpsYkMwdEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxjWFZsZFdWYmJHVjJaV3dnTFNBeFhTQTlJRzV2WkdWeGRXVjFaVnRzWlhabGJGMWJibTlrWldsdVpHVjRXMnhsZG1Wc1hWMHVZMmhwYkdSeVpXNDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxhVzVrWlhoYmJHVjJaV3dnTFNBeFhTQTlJREE3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVmhaaUE5SUc1dlpHVnhkV1YxWlZzd1hWdHViMlJsYVc1a1pYaGJNRjFkTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElEMGdMVEU3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMFlYUmxJRDBnY21WMWMyVmtRWEp5WVhrZ0lUMDlJSFZ1WkdWbWFXNWxaQ0EvSURFZ09pQXdPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURNNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lHUnZibVU2SUhSeWRXVXNJSFpoYkhWbE9pQjFibVJsWm1sdVpXUWdmVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIMHBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCU1pYUjFjbTV6SUdGdUlHbDBaWEpoZEc5eUlIUm9ZWFFnY0hKdmRtbGtaWE1nYVhSbGJYTWdhVzRnY21WMlpYSnpaV1FnYjNKa1pYSXVYSEpjYmlBZ0lDQWdLaUFnUUhCaGNtRnRJR2hwWjJobGMzUkxaWGtnUzJWNUlHRjBJSGRvYVdOb0lIUnZJSE4wWVhKMElHbDBaWEpoZEdsdVp5d2diM0lnZFc1a1pXWnBibVZrSUhSdlhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ0lITjBZWEowSUdGMElHMWhlRXRsZVNncExpQkpaaUIwYUdVZ2MzQmxZMmxtYVdWa0lHdGxlU0JrYjJWemJpZDBJR1Y0YVhOMElIUm9aVzRnYVhSbGNtRjBhVzl1WEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnSUhOMFlYSjBjeUJoZENCMGFHVWdibVY0ZENCc2IzZGxjaUJyWlhrZ0tHRmpZMjl5WkdsdVp5QjBieUIwYUdVZ1kyOXRjR0Z5WVhSdmNpa3VYSEpjYmlBZ0lDQWdLaUFnUUhCaGNtRnRJSEpsZFhObFpFRnljbUY1SUU5d2RHbHZibUZzSUdGeWNtRjVJSFZ6WldRZ2NtVndaV0YwWldSc2VTQjBieUJ6ZEc5eVpTQnJaWGt0ZG1Gc2RXVmNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQWdjR0ZwY25Nc0lIUnZJR0YyYjJsa0lHTnlaV0YwYVc1bklHRWdibVYzSUdGeWNtRjVJRzl1SUdWMlpYSjVJR2wwWlhKaGRHbHZiaTVjY2x4dUlDQWdJQ0FxSUNCQWNHRnlZVzBnYzJ0cGNFaHBaMmhsYzNRZ1NXWm1JSFJvYVhNZ1pteGhaeUJwY3lCMGNuVmxJR0Z1WkNCMGFHVWdhR2xuYUdWemRFdGxlU0JsZUdsemRITWdhVzRnZEdobFhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ0lHTnZiR3hsWTNScGIyNHNJSFJvWlNCd1lXbHlJRzFoZEdOb2FXNW5JR2hwWjJobGMzUkxaWGtnYVhNZ2MydHBjSEJsWkN3Z2JtOTBJR2wwWlhKaGRHVmtMbHh5WEc0Z0lDQWdJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVaVzUwY21sbGMxSmxkbVZ5YzJWa0lEMGdablZ1WTNScGIyNGdLR2hwWjJobGMzUkxaWGtzSUhKbGRYTmxaRUZ5Y21GNUxDQnphMmx3U0dsbmFHVnpkQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hvYVdkb1pYTjBTMlY1SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhR2xuYUdWemRFdGxlU0E5SUhSb2FYTXViV0Y0UzJWNUtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lITnJhWEJJYVdkb1pYTjBJRDBnZFc1a1pXWnBibVZrTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FHbG5hR1Z6ZEV0bGVTQTlQVDBnZFc1a1pXWnBibVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsMFpYSmhkRzl5S0NrN0lDOHZJR052Ykd4bFkzUnBiMjRnYVhNZ1pXMXdkSGxjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdkbUZ5SUY5aElEMGdkR2hwY3k1bWFXNWtVR0YwYUNob2FXZG9aWE4wUzJWNUtTQjhmQ0IwYUdsekxtWnBibVJRWVhSb0tIUm9hWE11YldGNFMyVjVLQ2twTENCdWIyUmxjWFZsZFdVZ1BTQmZZUzV1YjJSbGNYVmxkV1VzSUc1dlpHVnBibVJsZUNBOUlGOWhMbTV2WkdWcGJtUmxlQ3dnYkdWaFppQTlJRjloTG14bFlXWTdYSEpjYmlBZ0lDQWdJQ0FnWTJobFkyc29JVzV2WkdWeGRXVjFaVnN3WFNCOGZDQnNaV0ZtSUQwOVBTQnViMlJsY1hWbGRXVmJNRjFiYm05a1pXbHVaR1Y0V3pCZFhTd2dYQ0ozWVhRaFhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnYkdWaFppNXBibVJsZUU5bUtHaHBaMmhsYzNSTFpYa3NJREFzSUhSb2FYTXVYMk52YlhCaGNtVXBPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hjMnRwY0VocFoyaGxjM1FnSmlZZ2FTQThJR3hsWVdZdWEyVjVjeTVzWlc1bmRHZ2dKaVlnZEdocGN5NWZZMjl0Y0dGeVpTaHNaV0ZtTG10bGVYTmJhVjBzSUdocFoyaGxjM1JMWlhrcElEdzlJREFwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2tyS3p0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYzNSaGRHVWdQU0J5WlhWelpXUkJjbkpoZVNBaFBUMGdkVzVrWldacGJtVmtJRDhnTVNBNklEQTdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2wwWlhKaGRHOXlLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYW5WdGNEb2dabTl5SUNnN095a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2h6ZEdGMFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnTURwY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQzB0YVNBK1BTQXdLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ1pHOXVaVG9nWm1Gc2MyVXNJSFpoYkhWbE9pQmJiR1ZoWmk1clpYbHpXMmxkTENCc1pXRm1MblpoYkhWbGMxdHBYVjBnZlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1VnUFNBeU8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJREU2WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ3RMV2tnUGowZ01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjFjMlZrUVhKeVlYbGJNRjBnUFNCc1pXRm1MbXRsZVhOYmFWMHNJSEpsZFhObFpFRnljbUY1V3pGZElEMGdiR1ZoWmk1MllXeDFaWE5iYVYwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUJrYjI1bE9pQm1ZV3h6WlN3Z2RtRnNkV1U2SUhKbGRYTmxaRUZ5Y21GNUlIMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGRHVWdQU0F5TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ01qcGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnUVdSMllXNWpaU0IwYnlCMGFHVWdibVY0ZENCc1pXRm1JRzV2WkdWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2JHVjJaV3dnUFNBdE1UczdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvS3l0c1pYWmxiQ0ErUFNCdWIyUmxjWFZsZFdVdWJHVnVaM1JvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1VnUFNBek8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbElHcDFiWEE3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9MUzF1YjJSbGFXNWtaWGhiYkdWMlpXeGRJRDQ5SURBcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2c3SUd4bGRtVnNJRDRnTURzZ2JHVjJaV3d0TFNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pYRjFaWFZsVzJ4bGRtVnNJQzBnTVYwZ1BTQnViMlJsY1hWbGRXVmJiR1YyWld4ZFcyNXZaR1ZwYm1SbGVGdHNaWFpsYkYxZExtTm9hV3hrY21WdU8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pXbHVaR1Y0VzJ4bGRtVnNJQzBnTVYwZ1BTQnViMlJsY1hWbGRXVmJiR1YyWld3Z0xTQXhYUzVzWlc1bmRHZ2dMU0F4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxZV1lnUFNCdWIyUmxjWFZsZFdWYk1GMWJibTlrWldsdVpHVjRXekJkWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJR3hsWVdZdWEyVjVjeTVzWlc1bmRHZzdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhSbElEMGdjbVYxYzJWa1FYSnlZWGtnSVQwOUlIVnVaR1ZtYVc1bFpDQS9JREVnT2lBd08xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRE02WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3SUdSdmJtVTZJSFJ5ZFdVc0lIWmhiSFZsT2lCMWJtUmxabWx1WldRZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUgwcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFJRlZ6WldRZ1lua2daVzUwY21sbGN5Z3BJR0Z1WkNCbGJuUnlhV1Z6VW1WMlpYSnpaV1FvS1NCMGJ5QndjbVZ3WVhKbElIUnZJSE4wWVhKMElHbDBaWEpoZEdsdVp5NWNjbHh1SUNBZ0lDQXFJRWwwSUdSbGRtVnNiM0J6SUdFZ1hDSnViMlJsSUhGMVpYVmxYQ0lnWm05eUlHVmhZMmdnYm05dUxXeGxZV1lnYkdWMlpXd2diMllnZEdobElIUnlaV1V1WEhKY2JpQWdJQ0FnS2lCTVpYWmxiSE1nWVhKbElHNTFiV0psY21Wa0lGd2lZbTkwZEc5dExYVndYQ0lnYzI4Z2RHaGhkQ0JzWlhabGJDQXdJR2x6SUdFZ2JHbHpkQ0J2WmlCc1pXRm1YSEpjYmlBZ0lDQWdLaUJ1YjJSbGN5Qm1jbTl0SUdFZ2JHOTNMV3hsZG1Wc0lHNXZiaTFzWldGbUlHNXZaR1V1SUZSb1pTQnhkV1YxWlNCaGRDQmhJR2RwZG1WdUlHeGxkbVZzSUV4Y2NseHVJQ0FnSUNBcUlHTnZibk5wYzNSeklHOW1JRzV2WkdWeGRXVjFaVnRNWFNCM2FHbGphQ0JwY3lCMGFHVWdZMmhwYkdSeVpXNGdiMllnWVNCQ1RtOWtaVWx1ZEdWeWJtRnNMRnh5WEc0Z0lDQWdJQ29nWVc1a0lHNXZaR1ZwYm1SbGVGdE1YU3dnZEdobElHTjFjbkpsYm5RZ2FXNWtaWGdnZDJsMGFHbHVJSFJvWVhRZ1kyaHBiR1FnYkdsemRDd2djM1ZqYUZ4eVhHNGdJQ0FnSUNvZ2MzVmphQ0IwYUdGMElHNXZaR1Z4ZFdWMVpWdE1MVEZkSUQwOVBTQnViMlJsY1hWbGRXVmJURjFiYm05a1pXbHVaR1Y0VzB4ZFhTNWphR2xzWkhKbGJpNWNjbHh1SUNBZ0lDQXFJQ2hJYjNkbGRtVnlJR2x1YzJsa1pTQjBhR2x6SUdaMWJtTjBhVzl1SUhSb1pTQnZjbVJsY2lCcGN5QnlaWFpsY25ObFpDNHBYSEpjYmlBZ0lDQWdLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNW1hVzVrVUdGMGFDQTlJR1oxYm1OMGFXOXVJQ2hyWlhrcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2JtVjRkRzV2WkdVZ1BTQjBhR2x6TGw5eWIyOTBPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnViMlJsY1hWbGRXVXNJRzV2WkdWcGJtUmxlRHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9ibVY0ZEc1dlpHVXVhWE5NWldGbUtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1Z4ZFdWMVpTQTlJRVZ0Y0hSNVFYSnlZWGtzSUc1dlpHVnBibVJsZUNBOUlFVnRjSFI1UVhKeVlYazdJQzh2SUdGMmIybGtJR0ZzYkc5allYUnBiMjV6WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxjWFZsZFdVZ1BTQmJYU3dnYm05a1pXbHVaR1Y0SUQwZ1cxMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHUWdQU0F3T3lBaGJtVjRkRzV2WkdVdWFYTk1aV0ZtT3lCa0t5c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1dlpHVnhkV1YxWlZ0a1hTQTlJRzVsZUhSdWIyUmxMbU5vYVd4a2NtVnVPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pXbHVaR1Y0VzJSZElEMGdhMlY1SUQwOVBTQjFibVJsWm1sdVpXUWdQeUF3SURvZ2JtVjRkRzV2WkdVdWFXNWtaWGhQWmloclpYa3NJREFzSUhSb2FYTXVYMk52YlhCaGNtVXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHNXZaR1ZwYm1SbGVGdGtYU0ErUFNCdWIyUmxjWFZsZFdWYlpGMHViR1Z1WjNSb0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianNnTHk4Z1ptbHljM1FnYTJWNUlENGdiV0Y0UzJWNUtDbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhSdWIyUmxJRDBnYm05a1pYRjFaWFZsVzJSZFcyNXZaR1ZwYm1SbGVGdGtYVjA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdibTlrWlhGMVpYVmxMbkpsZG1WeWMyVW9LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdibTlrWldsdVpHVjRMbkpsZG1WeWMyVW9LVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIc2dibTlrWlhGMVpYVmxPaUJ1YjJSbGNYVmxkV1VzSUc1dlpHVnBibVJsZURvZ2JtOWtaV2x1WkdWNExDQnNaV0ZtT2lCdVpYaDBibTlrWlNCOU8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLbHh5WEc0Z0lDQWdJQ29nUTI5dGNIVjBaWE1nZEdobElHUnBabVpsY21WdVkyVnpJR0psZEhkbFpXNGdZSFJvYVhOZ0lHRnVaQ0JnYjNSb1pYSmdMbHh5WEc0Z0lDQWdJQ29nUm05eUlHVm1abWxqYVdWdVkza3NJSFJvWlNCa2FXWm1JR2x6SUhKbGRIVnlibVZrSUhacFlTQnBiblp2WTJGMGFXOXVjeUJ2WmlCemRYQndiR2xsWkNCb1lXNWtiR1Z5Y3k1Y2NseHVJQ0FnSUNBcUlGUm9aU0JqYjIxd2RYUmhkR2x2YmlCcGN5QnZjSFJwYldsNlpXUWdabTl5SUhSb1pTQmpZWE5sSUdsdUlIZG9hV05vSUhSb1pTQjBkMjhnZEhKbFpYTWdhR0YyWlNCc1lYSm5aU0JoYlc5MWJuUnpYSEpjYmlBZ0lDQWdLaUJ2WmlCemFHRnlaV1FnWkdGMFlTQW9iMkowWVdsdVpXUWdZbmtnWTJGc2JHbHVaeUIwYUdVZ1lHTnNiMjVsWUNCdmNpQmdkMmwwYUdBZ1FWQkpjeWtnWVc1a0lIZHBiR3dnWVhadmFXUmNjbHh1SUNBZ0lDQXFJR0Z1ZVNCcGRHVnlZWFJwYjI0Z2IyWWdjMmhoY21Wa0lITjBZWFJsTGx4eVhHNGdJQ0FnSUNvZ1ZHaGxJR2hoYm1Sc1pYSnpJR05oYmlCallYVnpaU0JqYjIxd2RYUmhkR2x2YmlCMGJ5QmxZWEpzZVNCbGVHbDBJR0o1SUhKbGRIVnlibWx1WnlCN1luSmxZV3M2SUZKOUxseHlYRzRnSUNBZ0lDb2dUbVZwZEdobGNpQnZaaUIwYUdVZ1kyOXNiR1ZqZEdsdmJuTWdjMmh2ZFd4a0lHSmxJR05vWVc1blpXUWdaSFZ5YVc1bklIUm9aU0JqYjIxd1lYSnBjMjl1SUhCeWIyTmxjM01nS0dsdUlIbHZkWElnWTJGc2JHSmhZMnR6S1N3Z1lYTWdkR2hwY3lCdFpYUm9iMlFnWVhOemRXMWxjeUIwYUdWNUlIZHBiR3dnYm05MElHSmxJRzExZEdGMFpXUXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdiM1JvWlhJZ1ZHaGxJSFJ5WldVZ2RHOGdZMjl0Y0hWMFpTQmhJR1JwWm1ZZ1lXZGhhVzV6ZEM1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCdmJteDVWR2hwY3lCRFlXeHNZbUZqYXlCcGJuWnZhMlZrSUdadmNpQmhiR3dnYTJWNWN5QnZibXg1SUhCeVpYTmxiblFnYVc0Z1lIUm9hWE5nTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUc5dWJIbFBkR2hsY2lCRFlXeHNZbUZqYXlCcGJuWnZhMlZrSUdadmNpQmhiR3dnYTJWNWN5QnZibXg1SUhCeVpYTmxiblFnYVc0Z1lHOTBhR1Z5WUM1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCa2FXWm1aWEpsYm5RZ1EyRnNiR0poWTJzZ2FXNTJiMnRsWkNCbWIzSWdZV3hzSUd0bGVYTWdkMmwwYUNCa2FXWm1aWEpwYm1jZ2RtRnNkV1Z6TGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1WkdsbVprRm5ZV2x1YzNRZ1BTQm1kVzVqZEdsdmJpQW9iM1JvWlhJc0lHOXViSGxVYUdsekxDQnZibXg1VDNSb1pYSXNJR1JwWm1abGNtVnVkQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2ZEdobGNpNWZZMjl0Y0dGeVpTQWhQVDBnZEdocGN5NWZZMjl0Y0dGeVpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSlVjbVZsSUdOdmJYQmhjbUYwYjNKeklHRnlaU0J1YjNRZ2RHaGxJSE5oYldVdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMFZ0Y0hSNUlIeDhJRzkwYUdWeUxtbHpSVzF3ZEhrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFYTkZiWEIwZVNBbUppQnZkR2hsY2k1cGMwVnRjSFI1S1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1NXWWdiMjVsSUhSeVpXVWdhWE1nWlcxd2RIa3NJR1YyWlhKNWRHaHBibWNnZDJsc2JDQmlaU0JoYmlCdmJteDVWR2hwY3k5dmJteDVUM1JvWlhJdVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1selJXMXdkSGtwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1c2VVOTBhR1Z5SUQwOVBTQjFibVJsWm1sdVpXUWdQeUIxYm1SbFptbHVaV1FnT2lCQ1ZISmxaUzV6ZEdWd1ZHOUZibVFvUWxSeVpXVXViV0ZyWlVScFptWkRkWEp6YjNJb2IzUm9aWElwTENCdmJteDVUM1JvWlhJcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1c2VWUm9hWE1nUFQwOUlIVnVaR1ZtYVc1bFpDQS9JSFZ1WkdWbWFXNWxaQ0E2SUVKVWNtVmxMbk4wWlhCVWIwVnVaQ2hDVkhKbFpTNXRZV3RsUkdsbVprTjFjbk52Y2loMGFHbHpLU3dnYjI1c2VWUm9hWE1wTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0F2THlCRGRYSnpiM0l0WW1GelpXUWdaR2xtWmlCaGJHZHZjbWwwYUcwZ2FYTWdZWE1nWm05c2JHOTNjenBjY2x4dUlDQWdJQ0FnSUNBdkx5QXRJRlZ1ZEdsc0lHNWxhWFJvWlhJZ1kzVnljMjl5SUdoaGN5QnVZWFpwWjJGMFpXUWdkRzhnZEdobElHVnVaQ0J2WmlCMGFHVWdkSEpsWlN3Z1pHOGdkR2hsSUdadmJHeHZkMmx1WnpwY2NseHVJQ0FnSUNBZ0lDQXZMeUFnTFNCSlppQjBhR1VnWUhSb2FYTmdJR04xY25OdmNpQnBjeUJjSW1KbGFHbHVaRndpSUhSb1pTQmdiM1JvWlhKZ0lHTjFjbk52Y2lBb2MzUnlhV04wYkhrZ1BDd2dkbWxoSUdOdmJYQmhjbVVwTENCaFpIWmhibU5sSUdsMExseHlYRzRnSUNBZ0lDQWdJQzh2SUNBdElFOTBhR1Z5ZDJselpTd2dZV1IyWVc1alpTQjBhR1VnWUc5MGFHVnlZQ0JqZFhKemIzSXVYSEpjYmlBZ0lDQWdJQ0FnTHk4Z0lDMGdRVzU1SUhScGJXVWdZU0JqZFhKemIzSWdhWE1nYzNSbGNIQmxaQ3dnY0dWeVptOXliU0IwYUdVZ1ptOXNiRzkzYVc1bk9seHlYRzRnSUNBZ0lDQWdJQzh2SUNBZ0lDMGdTV1lnWldsMGFHVnlJR04xY25OdmNpQndiMmx1ZEhNZ2RHOGdZU0JyWlhrdmRtRnNkV1VnY0dGcGNqcGNjbHh1SUNBZ0lDQWdJQ0F2THlBZ0lDQWdJQzBnU1dZZ2RHaHBjME4xY25OdmNpQTlQVDBnYjNSb1pYSkRkWEp6YjNJZ1lXNWtJSFJvWlNCMllXeDFaWE1nWkdsbVptVnlMQ0JwZENCcGN5QmhJRVJwWm1abGNtVnVkQzVjY2x4dUlDQWdJQ0FnSUNBdkx5QWdJQ0FnSUMwZ1NXWWdkR2hwYzBOMWNuTnZjaUErSUc5MGFHVnlRM1Z5YzI5eUlHRnVaQ0J2ZEdobGNrTjFjbk52Y2lCcGN5QmhkQ0JoSUd0bGVTOTJZV3gxWlNCd1lXbHlMQ0JwZENCcGN5QmhiaUJQYm14NVQzUm9aWEl1WEhKY2JpQWdJQ0FnSUNBZ0x5OGdJQ0FnSUNBdElFbG1JSFJvYVhORGRYSnpiM0lnUENCdmRHaGxja04xY25OdmNpQmhibVFnZEdocGMwTjFjbk52Y2lCcGN5QmhkQ0JoSUd0bGVTOTJZV3gxWlNCd1lXbHlMQ0JwZENCcGN5QmhiaUJQYm14NVZHaHBjeUJoY3lCc2IyNW5JR0Z6SUhSb1pTQnRiM04wSUhKbFkyVnVkQ0JjY2x4dUlDQWdJQ0FnSUNBdkx5QWdJQ0FnSUNBZ1kzVnljMjl5SUhOMFpYQWdkMkZ6SUNwdWIzUXFJRzkwYUdWeVEzVnljMjl5SUdGa2RtRnVZMmx1WnlCbWNtOXRJR0VnZEdsbExpQlVhR1VnWlhoMGNtRWdZMjl1WkdsMGFXOXVJR0YyYjJsa2N5Qmxjbkp2Ym1WdmRYTWdUMjVzZVU5MGFHVnlJR05oYkd4eklGeHlYRzRnSUNBZ0lDQWdJQzh2SUNBZ0lDQWdJQ0IwYUdGMElIZHZkV3hrSUc5alkzVnlJR1IxWlNCMGJ5QnZkR2hsY2tOMWNuTnZjaUJpWldsdVp5QjBhR1VnWENKc1pXRmtaWEpjSWk1Y2NseHVJQ0FnSUNBZ0lDQXZMeUFnSUNBdElFOTBhR1Z5ZDJselpTd2dhV1lnWW05MGFDQmpkWEp6YjNKeklIQnZhVzUwSUhSdklHNXZaR1Z6TENCamIyMXdZWEpsSUhSb1pXMHVJRWxtSUhSb1pYa2dZWEpsSUdWeGRXRnNJR0o1SUhKbFptVnlaVzVqWlNBb2MyaGhjbVZrS1N3Z2MydHBjRnh5WEc0Z0lDQWdJQ0FnSUM4dklDQWdJQ0FnWW05MGFDQmpkWEp6YjNKeklIUnZJSFJvWlNCdVpYaDBJRzV2WkdVZ2FXNGdkR2hsSUhkaGJHc3VYSEpjYmlBZ0lDQWdJQ0FnTHk4Z0xTQlBibU5sSUc5dVpTQmpkWEp6YjNJZ2FHRnpJR1pwYm1semFHVmtJSE4wWlhCd2FXNW5MQ0JoYm5rZ2NtVnRZV2x1YVc1bklITjBaWEJ6SUNocFppQmhibmtwSUdGeVpTQjBZV3RsYmlCaGJtUWdhMlY1TDNaaGJIVmxJSEJoYVhKeklHRnlaU0JzYjJkblpXUmNjbHh1SUNBZ0lDQWdJQ0F2THlBZ0lHRnpJRTl1YkhsUGRHaGxjaUFvYVdZZ2IzUm9aWEpEZFhKemIzSWdhWE1nYzNSbGNIQnBibWNwSUc5eUlFOXViSGxVYUdseklDaHBaaUIwYUdselEzVnljMjl5SUdseklITjBaWEJ3YVc1bktTNWNjbHh1SUNBZ0lDQWdJQ0F2THlCVWFHbHpJR0ZzWjI5eWFYUm9iU0JuYVhabGN5QjBhR1VnWTNKcGRHbGpZV3dnWjNWaGNtRnVkR1ZsSUhSb1lYUWdZV3hzSUd4dlkyRjBhVzl1Y3lBb1ltOTBhQ0J1YjJSbGN5QmhibVFnYTJWNUwzWmhiSFZsSUhCaGFYSnpLU0JwYmlCaWIzUm9JSFJ5WldWeklIUm9ZWFFnWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZWEpsSUdsa1pXNTBhV05oYkNCaWVTQjJZV3gxWlNBb1lXNWtJSEJ2YzNOcFlteDVJR0o1SUhKbFptVnlaVzVqWlNrZ2QybHNiQ0JpWlNCMmFYTnBkR1ZrSUNwaGRDQjBhR1VnYzJGdFpTQjBhVzFsS2lCaWVTQjBhR1VnWTNWeWMyOXljeTVjY2x4dUlDQWdJQ0FnSUNBdkx5QlVhR2x6SUhKbGJXOTJaWE1nZEdobElIQnZjM05wWW1sc2FYUjVJRzltSUdWdGFYUjBhVzVuSUdsdVkyOXljbVZqZENCa2FXWm1jeXdnWVhNZ2QyVnNiQ0JoY3lCaGJHeHZkMmx1WnlCbWIzSWdjMnRwY0hCcGJtY2djMmhoY21Wa0lHNXZaR1Z6TGx4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJmWTI5dGNHRnlaU0E5SUhSb2FYTXVYMk52YlhCaGNtVTdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlIUm9hWE5EZFhKemIzSWdQU0JDVkhKbFpTNXRZV3RsUkdsbVprTjFjbk52Y2loMGFHbHpLVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdiM1JvWlhKRGRYSnpiM0lnUFNCQ1ZISmxaUzV0WVd0bFJHbG1aa04xY25OdmNpaHZkR2hsY2lrN1hISmNiaUFnSUNBZ0lDQWdMeThnU1hRZ1pHOWxjMjRuZENCdFlYUjBaWElnYUc5M0lIUm9hWE5UZEdWd2NHVmtUR0Z6ZENCcGN5QnBibWwwYVdGc2FYcGxaQzVjY2x4dUlDQWdJQ0FnSUNBdkx5QlRkR1Z3SUc5eVpHVnlJR2x6SUc5dWJIa2dkWE5sWkNCM2FHVnVJR1ZwZEdobGNpQmpkWEp6YjNJZ2FYTWdZWFFnWVNCc1pXRm1MQ0JoYm1RZ1kzVnljMjl5Y3lCaGJIZGhlWE1nYzNSaGNuUWdZWFFnWVNCdWIyUmxMbHh5WEc0Z0lDQWdJQ0FnSUhaaGNpQjBhR2x6VTNWalkyVnpjeUE5SUhSeWRXVXNJRzkwYUdWeVUzVmpZMlZ6Y3lBOUlIUnlkV1VzSUhCeVpYWkRkWEp6YjNKUGNtUmxjaUE5SUVKVWNtVmxMbU52YlhCaGNtVW9kR2hwYzBOMWNuTnZjaXdnYjNSb1pYSkRkWEp6YjNJc0lGOWpiMjF3WVhKbEtUdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9kR2hwYzFOMVkyTmxjM01nSmlZZ2IzUm9aWEpUZFdOalpYTnpLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCamRYSnpiM0pQY21SbGNpQTlJRUpVY21WbExtTnZiWEJoY21Vb2RHaHBjME4xY25OdmNpd2diM1JvWlhKRGRYSnpiM0lzSUY5amIyMXdZWEpsS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlIUm9hWE5NWldGbUlEMGdkR2hwYzBOMWNuTnZjaTVzWldGbUxDQjBhR2x6U1c1MFpYSnVZV3hUY0dsdVpTQTlJSFJvYVhORGRYSnpiM0l1YVc1MFpYSnVZV3hUY0dsdVpTd2dkR2hwYzB4bGRtVnNTVzVrYVdObGN5QTlJSFJvYVhORGRYSnpiM0l1YkdWMlpXeEpibVJwWTJWek8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdiM1JvWlhKTVpXRm1JRDBnYjNSb1pYSkRkWEp6YjNJdWJHVmhaaXdnYjNSb1pYSkpiblJsY201aGJGTndhVzVsSUQwZ2IzUm9aWEpEZFhKemIzSXVhVzUwWlhKdVlXeFRjR2x1WlN3Z2IzUm9aWEpNWlhabGJFbHVaR2xqWlhNZ1BTQnZkR2hsY2tOMWNuTnZjaTVzWlhabGJFbHVaR2xqWlhNN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6VEdWaFppQjhmQ0J2ZEdobGNreGxZV1lwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRWxtSUhSb1pTQmpkWEp6YjNKeklIZGxjbVVnWVhRZ2RHaGxJSE5oYldVZ2JHOWpZWFJwYjI0Z2JHRnpkQ0J6ZEdWd0xDQjBhR1Z1SUhSb1pYSmxJR2x6SUc1dklIZHZjbXNnZEc4Z1ltVWdaRzl1WlM1Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3Y21WMlEzVnljMjl5VDNKa1pYSWdJVDA5SURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZM1Z5YzI5eVQzSmtaWElnUFQwOUlEQXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE5NWldGbUlDWW1JRzkwYUdWeVRHVmhaaUFtSmlCa2FXWm1aWEpsYm5RcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFVnhkV0ZzSUd0bGVYTXNJR05vWldOcklHWnZjaUJ0YjJScFptbGpZWFJwYjI1elhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2RtRnNWR2hwY3lBOUlIUm9hWE5NWldGbUxuWmhiSFZsYzF0MGFHbHpUR1YyWld4SmJtUnBZMlZ6VzNSb2FYTk1aWFpsYkVsdVpHbGpaWE11YkdWdVozUm9JQzBnTVYxZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlIWmhiRTkwYUdWeUlEMGdiM1JvWlhKTVpXRm1MblpoYkhWbGMxdHZkR2hsY2t4bGRtVnNTVzVrYVdObGMxdHZkR2hsY2t4bGRtVnNTVzVrYVdObGN5NXNaVzVuZEdnZ0xTQXhYVjA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVU5aWFtVmpkQzVwY3loMllXeFVhR2x6TENCMllXeFBkR2hsY2lrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnWkdsbVptVnlaVzUwS0hSb2FYTkRkWEp6YjNJdVkzVnljbVZ1ZEV0bGVTd2dkbUZzVkdocGN5d2dkbUZzVDNSb1pYSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnSmlZZ2NtVnpkV3gwTG1KeVpXRnJLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBMbUp5WldGck8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR04xY25OdmNrOXlaR1Z5SUQ0Z01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCSlppQjBhR2x6SUdseklIUm9aU0JqWVhObExDQjNaU0JyYm05M0lIUm9ZWFFnWldsMGFHVnlPbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlBeExpQnZkR2hsY2tOMWNuTnZjaUJ6ZEdWd2NHVmtJR3hoYzNRZ1puSnZiU0JoSUhOMFlYSjBhVzVuSUhCdmMybDBhVzl1SUhSb1lYUWdkSEpoYVd4bFpDQjBhR2x6UTNWeWMyOXlMQ0JoYm1RZ2FYTWdjM1JwYkd3Z1ltVm9hVzVrTENCdmNseHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUF5TGlCMGFHbHpRM1Z5YzI5eUlITjBaWEJ3WldRZ2JHRnpkQ0JoYm1RZ2JHVmhjR1p5YjJkblpXUWdiM1JvWlhKRGRYSnpiM0pjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1JXbDBhR1Z5SUc5bUlIUm9aWE5sSUdOaGMyVnpJR2x6SUdGdUlGd2liMjVzZVNCdmRHaGxjbHdpWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZkR2hsY2t4bFlXWWdKaVlnYjI1c2VVOTBhR1Z5S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2IzUm9aWEpXWVd3Z1BTQnZkR2hsY2t4bFlXWXVkbUZzZFdWelcyOTBhR1Z5VEdWMlpXeEpibVJwWTJWelcyOTBhR1Z5VEdWMlpXeEpibVJwWTJWekxteGxibWQwYUNBdElERmRYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J2Ym14NVQzUm9aWElvYjNSb1pYSkRkWEp6YjNJdVkzVnljbVZ1ZEV0bGVTd2diM1JvWlhKV1lXd3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDQW1KaUJ5WlhOMWJIUXVZbkpsWVdzcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkQzVpY21WaGF6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNodmJteDVWR2hwY3lrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGMweGxZV1lnSmlZZ2NISmxka04xY25OdmNrOXlaR1Z5SUNFOVBTQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZWElnZG1Gc1ZHaHBjeUE5SUhSb2FYTk1aV0ZtTG5aaGJIVmxjMXQwYUdselRHVjJaV3hKYm1ScFkyVnpXM1JvYVhOTVpYWmxiRWx1WkdsalpYTXViR1Z1WjNSb0lDMGdNVjFkTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUc5dWJIbFVhR2x6S0hSb2FYTkRkWEp6YjNJdVkzVnljbVZ1ZEV0bGVTd2dkbUZzVkdocGN5azdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MElDWW1JSEpsYzNWc2RDNWljbVZoYXlsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBMbUp5WldGck8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tDRjBhR2x6VEdWaFppQW1KaUFoYjNSb1pYSk1aV0ZtSUNZbUlHTjFjbk52Y2s5eVpHVnlJRDA5UFNBd0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2JHRnpkRlJvYVhNZ1BTQjBhR2x6U1c1MFpYSnVZV3hUY0dsdVpTNXNaVzVuZEdnZ0xTQXhPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHeGhjM1JQZEdobGNpQTlJRzkwYUdWeVNXNTBaWEp1WVd4VGNHbHVaUzVzWlc1bmRHZ2dMU0F4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJRzV2WkdWVWFHbHpJRDBnZEdocGMwbHVkR1Z5Ym1Gc1UzQnBibVZiYkdGemRGUm9hWE5kVzNSb2FYTk1aWFpsYkVsdVpHbGpaWE5iYkdGemRGUm9hWE5kWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ1YjJSbFQzUm9aWElnUFNCdmRHaGxja2x1ZEdWeWJtRnNVM0JwYm1WYmJHRnpkRTkwYUdWeVhWdHZkR2hsY2t4bGRtVnNTVzVrYVdObGMxdHNZWE4wVDNSb1pYSmRYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHViMlJsVDNSb1pYSWdQVDA5SUc1dlpHVlVhR2x6S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRrTjFjbk52Y2s5eVpHVnlJRDBnTUR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdselUzVmpZMlZ6Y3lBOUlFSlVjbVZsTG5OMFpYQW9kR2hwYzBOMWNuTnZjaXdnZEhKMVpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzUm9aWEpUZFdOalpYTnpJRDBnUWxSeVpXVXVjM1JsY0NodmRHaGxja04xY25OdmNpd2dkSEoxWlNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRrTjFjbk52Y2s5eVpHVnlJRDBnWTNWeWMyOXlUM0prWlhJN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpkWEp6YjNKUGNtUmxjaUE4SURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhOVGRXTmpaWE56SUQwZ1FsUnlaV1V1YzNSbGNDaDBhR2x6UTNWeWMyOXlLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTBhR1Z5VTNWalkyVnpjeUE5SUVKVWNtVmxMbk4wWlhBb2IzUm9aWEpEZFhKemIzSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdselUzVmpZMlZ6Y3lBbUppQnZibXg1VkdocGN5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKVWNtVmxMbVpwYm1semFFTjFjbk52Y2xkaGJHc29kR2hwYzBOMWNuTnZjaXdnYjNSb1pYSkRkWEp6YjNJc0lGOWpiMjF3WVhKbExDQnZibXg1VkdocGN5azdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHOTBhR1Z5VTNWalkyVnpjeUFtSmlCdmJteDVUM1JvWlhJcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJDVkhKbFpTNW1hVzVwYzJoRGRYSnpiM0pYWVd4cktHOTBhR1Z5UTNWeWMyOXlMQ0IwYUdselEzVnljMjl5TENCZlkyOXRjR0Z5WlN3Z2IyNXNlVTkwYUdWeUtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJQzh2SUVobGJIQmxjaUJ0WlhSb2IyUnpJR1p2Y2lCa2FXWm1RV2RoYVc1emRDQXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnUWxSeVpXVXVabWx1YVhOb1EzVnljMjl5VjJGc2F5QTlJR1oxYm1OMGFXOXVJQ2hqZFhKemIzSXNJR04xY25OdmNrWnBibWx6YUdWa0xDQmpiMjF3WVhKbFMyVjVjeXdnWTJGc2JHSmhZMnNwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWTI5dGNHRnlaV1FnUFNCQ1ZISmxaUzVqYjIxd1lYSmxLR04xY25OdmNpd2dZM1Z5YzI5eVJtbHVhWE5vWldRc0lHTnZiWEJoY21WTFpYbHpLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9ZMjl0Y0dGeVpXUWdQVDA5SURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZDVkhKbFpTNXpkR1Z3S0dOMWNuTnZjaWtwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqYjIxd1lYSmxaQ0E4SURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyaGxZMnNvWm1Gc2MyVXNJRndpWTNWeWMyOXlJSGRoYkdzZ2RHVnliV2x1WVhSbFpDQmxZWEpzZVZ3aUtUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKVWNtVmxMbk4wWlhCVWIwVnVaQ2hqZFhKemIzSXNJR05oYkd4aVlXTnJLVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVkhKbFpTNXpkR1Z3Vkc5RmJtUWdQU0JtZFc1amRHbHZiaUFvWTNWeWMyOXlMQ0JqWVd4c1ltRmpheWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJqWVc1VGRHVndJRDBnZEhKMVpUdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9ZMkZ1VTNSbGNDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnYkdWaFppQTlJR04xY25OdmNpNXNaV0ZtTENCc1pYWmxiRWx1WkdsalpYTWdQU0JqZFhKemIzSXViR1YyWld4SmJtUnBZMlZ6TENCamRYSnlaVzUwUzJWNUlEMGdZM1Z5YzI5eUxtTjFjbkpsYm5STFpYazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hzWldGbUtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2RtRnNkV1VnUFNCc1pXRm1MblpoYkhWbGMxdHNaWFpsYkVsdVpHbGpaWE5iYkdWMlpXeEpibVJwWTJWekxteGxibWQwYUNBdElERmRYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQmpZV3hzWW1GamF5aGpkWEp5Wlc1MFMyVjVMQ0IyWVd4MVpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVnpkV3gwSUNZbUlISmxjM1ZzZEM1aWNtVmhheWxjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTG1KeVpXRnJPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhibE4wWlhBZ1BTQkNWSEpsWlM1emRHVndLR04xY25OdmNpazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FsUnlaV1V1YldGclpVUnBabVpEZFhKemIzSWdQU0JtZFc1amRHbHZiaUFvZEhKbFpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmZjbTl2ZENBOUlIUnlaV1V1WDNKdmIzUXNJR2hsYVdkb2RDQTlJSFJ5WldVdWFHVnBaMmgwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lHaGxhV2RvZERvZ2FHVnBaMmgwTENCcGJuUmxjbTVoYkZOd2FXNWxPaUJiVzE5eWIyOTBYVjBzSUd4bGRtVnNTVzVrYVdObGN6b2dXekJkTENCc1pXRm1PaUIxYm1SbFptbHVaV1FzSUdOMWNuSmxiblJMWlhrNklGOXliMjkwTG0xaGVFdGxlU2dwSUgwN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FYSEpjYmlBZ0lDQWdLaUJCWkhaaGJtTmxjeUIwYUdVZ1kzVnljMjl5SUhSdklIUm9aU0J1WlhoMElITjBaWEFnYVc0Z2RHaGxJSGRoYkdzZ2IyWWdhWFJ6SUhSeVpXVXVYSEpjYmlBZ0lDQWdLaUJEZFhKemIzSnpJR0Z5WlNCM1lXeHJaV1FnWW1GamEzZGhjbVJ6SUdsdUlITnZjblFnYjNKa1pYSXNJR0Z6SUhSb2FYTWdZV3hzYjNkeklIUm9aVzBnZEc4Z2JHVjJaWEpoWjJVZ2JXRjRTMlY1S0NrZ2FXNGdiM0prWlhJZ2RHOGdZbVVnWTI5dGNHRnlaV1FnYVc0Z1R5Z3hLUzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JqZFhKemIzSWdWR2hsSUdOMWNuTnZjaUIwYnlCemRHVndYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdjM1JsY0ZSdlRtOWtaU0JKWmlCMGNuVmxMQ0IwYUdVZ1kzVnljMjl5SUhkcGJHd2dZbVVnWVdSMllXNWpaV1FnZEc4Z2RHaGxJRzVsZUhRZ2JtOWtaU0FvYzJ0cGNIQnBibWNnZG1Gc2RXVnpLVnh5WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZEhKMVpTQnBaaUIwYUdVZ2MzUmxjQ0IzWVhNZ1kyOXRjR3hsZEdWa0lHRnVaQ0JtWVd4elpTQnBaaUIwYUdVZ2MzUmxjQ0IzYjNWc1pDQm9ZWFpsSUdOaGRYTmxaQ0IwYUdVZ1kzVnljMjl5SUhSdklHMXZkbVVnWW1WNWIyNWtJSFJvWlNCbGJtUWdiMllnZEdobElIUnlaV1V1WEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbk4wWlhBZ1BTQm1kVzVqZEdsdmJpQW9ZM1Z5YzI5eUxDQnpkR1Z3Vkc5T2IyUmxLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR2x1ZEdWeWJtRnNVM0JwYm1VZ1BTQmpkWEp6YjNJdWFXNTBaWEp1WVd4VGNHbHVaU3dnYkdWMlpXeEpibVJwWTJWeklEMGdZM1Z5YzI5eUxteGxkbVZzU1c1a2FXTmxjeXdnYkdWaFppQTlJR04xY25OdmNpNXNaV0ZtTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2h6ZEdWd1ZHOU9iMlJsSUQwOVBTQjBjblZsSUh4OElHeGxZV1lwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHeGxkbVZzYzB4bGJtZDBhQ0E5SUd4bGRtVnNTVzVrYVdObGN5NXNaVzVuZEdnN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGTjBaWEFnZEc4Z2RHaGxJRzVsZUhRZ2JtOWtaU0J2Ym14NUlHbG1PbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUF0SUZkbElHRnlaU0JsZUhCc2FXTnBkR3g1SUdScGNtVmpkR1ZrSUhSdklIWnBZU0J6ZEdWd1ZHOU9iMlJsTENCdmNseHlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QXRJRlJvWlhKbElHRnlaU0J1YnlCclpYa3ZkbUZzZFdVZ2NHRnBjbk1nYkdWbWRDQjBieUJ6ZEdWd0lIUnZJR2x1SUhSb2FYTWdiR1ZoWmx4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MzUmxjRlJ2VG05a1pTQTlQVDBnZEhKMVpTQjhmQ0JzWlhabGJFbHVaR2xqWlhOYmJHVjJaV3h6VEdWdVozUm9JQzBnTVYwZ1BUMDlJREFwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ6Y0dsdVpVeGxibWQwYUNBOUlHbHVkR1Z5Ym1Gc1UzQnBibVV1YkdWdVozUm9PMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1VtOXZkQ0JwY3lCc1pXRm1YSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MzQnBibVZNWlc1bmRHZ2dQVDA5SURBcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnVjJGc2F5QmlZV05ySUhWd0lIUm9aU0IwY21WbElIVnVkR2xzSUhkbElHWnBibVFnWVNCdVpYY2djM1ZpZEhKbFpTQjBieUJrWlhOalpXNWtJR2x1ZEc5Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ1YjJSbFRHVjJaV3hKYm1SbGVDQTlJSE53YVc1bFRHVnVaM1JvSUMwZ01UdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCc1pYWmxiRWx1WkdWNFYyRnNhMEpoWTJzZ1BTQnViMlJsVEdWMlpXeEpibVJsZUR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNoc1pYWmxiRWx1WkdWNFYyRnNhMEpoWTJzZ1BqMGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1pYWmxiRWx1WkdsalpYTmJiR1YyWld4SmJtUmxlRmRoYkd0Q1lXTnJYU0ErSURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d4bGRtVnNTVzVrWlhoWFlXeHJRbUZqYXlBOElHeGxkbVZzYzB4bGJtZDBhQ0F0SURFcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklGSmxiVzkyWlNCc1pXRm1JSE4wWVhSbElHWnliMjBnWTNWeWMyOXlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnpiM0l1YkdWaFppQTlJSFZ1WkdWbWFXNWxaRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxkbVZzU1c1a2FXTmxjeTV3YjNBb0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCSlppQjNaU0IzWVd4clpXUWdkWEIzWVhKa2N5QndZWE4wSUdGdWVTQnBiblJsY201aGJDQnViMlJsTENCemJHbGpaU0IwYUdWdElHOTFkRnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHVjJaV3hKYm1SbGVGZGhiR3RDWVdOcklEd2dibTlrWlV4bGRtVnNTVzVrWlhncFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZFhKemIzSXVhVzUwWlhKdVlXeFRjR2x1WlNBOUlHbHVkR1Z5Ym1Gc1UzQnBibVV1YzJ4cFkyVW9NQ3dnYkdWMlpXeEpibVJsZUZkaGJHdENZV05ySUNzZ01TazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUUxdmRtVWdkRzhnYm1WM0lHbHVkR1Z5Ym1Gc0lHNXZaR1ZjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNWeWMyOXlMbU4xY25KbGJuUkxaWGtnUFNCcGJuUmxjbTVoYkZOd2FXNWxXMnhsZG1Wc1NXNWtaWGhYWVd4clFtRmphMTFiTFMxc1pYWmxiRWx1WkdsalpYTmJiR1YyWld4SmJtUmxlRmRoYkd0Q1lXTnJYVjB1YldGNFMyVjVLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhabGJFbHVaR1Y0VjJGc2EwSmhZMnN0TFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUVOMWNuTnZjaUJwY3lCcGJpQjBhR1VnWm1GeUlHeGxablFnYkdWaFppQnZaaUIwYUdVZ2RISmxaU3dnYm04Z2JXOXlaU0J1YjJSbGN5QjBieUJsYm5WdFpYSmhkR1ZjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFMXZkbVVnZEc4Z2JtVjNJR3hsWVdZZ2RtRnNkV1ZjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQjJZV3gxWlVsdVpHVjRJRDBnTFMxc1pYWmxiRWx1WkdsalpYTmJiR1YyWld4elRHVnVaM1JvSUMwZ01WMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZFhKemIzSXVZM1Z5Y21WdWRFdGxlU0E5SUd4bFlXWXVhMlY1YzF0MllXeDFaVWx1WkdWNFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2V5QXZMeUJEZFhKemIzSWdaRzlsY3lCdWIzUWdjRzlwYm5RZ2RHOGdZU0IyWVd4MVpTQnBiaUJoSUd4bFlXWXNJSE52SUcxdmRtVWdaRzkzYm5kaGNtUnpYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ1WlhoMFRHVjJaV3dnUFNCcGJuUmxjbTVoYkZOd2FXNWxMbXhsYm1kMGFEdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR04xY25KbGJuUk1aWFpsYkNBOUlHNWxlSFJNWlhabGJDQXRJREU3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdWIyUmxJRDBnYVc1MFpYSnVZV3hUY0dsdVpWdGpkWEp5Wlc1MFRHVjJaV3hkVzJ4bGRtVnNTVzVrYVdObGMxdGpkWEp5Wlc1MFRHVjJaV3hkWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHNXZaR1V1YVhOTVpXRm1LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkZiblJsY21sdVp5QnBiblJ2SUdFZ2JHVmhaaTRnVTJWMElIUm9aU0JqZFhKemIzSWdkRzhnY0c5cGJuUWdZWFFnZEdobElHeGhjM1FnYTJWNUwzWmhiSFZsSUhCaGFYSXVYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZFhKemIzSXViR1ZoWmlBOUlHNXZaR1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdkbUZzZFdWSmJtUmxlQ0E5SUd4bGRtVnNTVzVrYVdObGMxdHVaWGgwVEdWMlpXeGRJRDBnYm05a1pTNTJZV3gxWlhNdWJHVnVaM1JvSUMwZ01UdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR04xY25OdmNpNWpkWEp5Wlc1MFMyVjVJRDBnYm05a1pTNXJaWGx6VzNaaGJIVmxTVzVrWlhoZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHTm9hV3hrY21WdUlEMGdibTlrWlM1amFHbHNaSEpsYmp0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVkR1Z5Ym1Gc1UzQnBibVZiYm1WNGRFeGxkbVZzWFNBOUlHTm9hV3hrY21WdU8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOb2FXeGtTVzVrWlhnZ1BTQmphR2xzWkhKbGJpNXNaVzVuZEdnZ0xTQXhPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMlpXeEpibVJwWTJWelcyNWxlSFJNWlhabGJGMGdQU0JqYUdsc1pFbHVaR1Y0TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzVnljMjl5TG1OMWNuSmxiblJMWlhrZ1BTQmphR2xzWkhKbGJsdGphR2xzWkVsdVpHVjRYUzV0WVhoTFpYa29LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FYSEpjYmlBZ0lDQWdLaUJEYjIxd1lYSmxjeUIwYUdVZ2RIZHZJR04xY25OdmNuTXVJRkpsZEhWeWJuTWdZU0IyWVd4MVpTQnBibVJwWTJGMGFXNW5JSGRvYVdOb0lHTjFjbk52Y2lCcGN5QmhhR1ZoWkNCcGJpQmhJSGRoYkdzdVhISmNiaUFnSUNBZ0tpQk9iM1JsSUhSb1lYUWdZM1Z5YzI5eWN5QmhjbVVnWVdSMllXNWpaV1FnYVc0Z2NtVjJaWEp6WlNCemIzSjBhVzVuSUc5eVpHVnlMbHh5WEc0Z0lDQWdJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNWpiMjF3WVhKbElEMGdablZ1WTNScGIyNGdLR04xY25OdmNrRXNJR04xY25OdmNrSXNJR052YlhCaGNtVkxaWGx6S1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdobGFXZG9kRUVnUFNCamRYSnpiM0pCTG1obGFXZG9kQ3dnWTNWeWNtVnVkRXRsZVVFZ1BTQmpkWEp6YjNKQkxtTjFjbkpsYm5STFpYa3NJR3hsZG1Wc1NXNWthV05sYzBFZ1BTQmpkWEp6YjNKQkxteGxkbVZzU1c1a2FXTmxjenRjY2x4dUlDQWdJQ0FnSUNCMllYSWdhR1ZwWjJoMFFpQTlJR04xY25OdmNrSXVhR1ZwWjJoMExDQmpkWEp5Wlc1MFMyVjVRaUE5SUdOMWNuTnZja0l1WTNWeWNtVnVkRXRsZVN3Z2JHVjJaV3hKYm1ScFkyVnpRaUE5SUdOMWNuTnZja0l1YkdWMlpXeEpibVJwWTJWek8xeHlYRzRnSUNBZ0lDQWdJQzh2SUZKbGRtVnljMlVnZEdobElHTnZiWEJoY21semIyNGdiM0prWlhJc0lHRnpJR04xY25OdmNuTWdZWEpsSUdGa2RtRnVZMlZrSUdsdUlISmxkbVZ5YzJVZ2MyOXlkR2x1WnlCdmNtUmxjbHh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnJaWGxEYjIxd1lYSnBjMjl1SUQwZ1kyOXRjR0Z5WlV0bGVYTW9ZM1Z5Y21WdWRFdGxlVUlzSUdOMWNuSmxiblJMWlhsQktUdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2EyVjVRMjl0Y0dGeWFYTnZiaUFoUFQwZ01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2EyVjVRMjl0Y0dGeWFYTnZianRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdMeThnVG05eWJXRnNhWHBsSUdSbGNIUm9JSFpoYkhWbGN5QnlaV3hoZEdsMlpTQjBieUIwYUdVZ2MyaHZjblJsYzNRZ2RISmxaUzVjY2x4dUlDQWdJQ0FnSUNBdkx5QlVhR2x6SUdWdWMzVnlaWE1nZEdoaGRDQmpiMjVqZFhKeVpXNTBJR04xY25OdmNpQjNZV3hyY3lCdlppQjBjbVZsY3lCdlppQmthV1ptWlhKcGJtY2dhR1ZwWjJoMGN5QmpZVzRnY21Wc2FXRmliSGtnYkdGdVpDQnZiaUJ6YUdGeVpXUWdibTlrWlhNZ1lYUWdkR2hsSUhOaGJXVWdkR2x0WlM1Y2NseHVJQ0FnSUNBZ0lDQXZMeUJVYnlCaFkyTnZiWEJzYVhOb0lIUm9hWE1zSUdFZ1kzVnljMjl5SUhSb1lYUWdhWE1nYjI0Z1lXNGdhVzUwWlhKdVlXd2dibTlrWlNCaGRDQmtaWEIwYUNCRU1TQjNhWFJvSUcxaGVFdGxlU0JZSUdseklHTnZibk5wWkdWeVpXUWdYQ0ppWldocGJtUmNJaUJoSUdOMWNuTnZjaUJ2YmlCaGJseHlYRzRnSUNBZ0lDQWdJQzh2SUdsdWRHVnlibUZzSUc1dlpHVWdZWFFnWkdWd2RHZ2dSRElnZDJsMGFDQnRZWGhMWlhrZ1dTd2dkMmhsYmlCRU1TQThJRVF5TGlCVWFIVnpMQ0JoYkhkaGVYTWdkMkZzYTJsdVp5QjBhR1VnWTNWeWMyOXlJSFJvWVhRZ2FYTWdYQ0ppWldocGJtUmNJaUIzYVd4c0lHRnNiRzkzSUhSb1pTQmpkWEp6YjNKY2NseHVJQ0FnSUNBZ0lDQXZMeUJoZENCemFHRnNiRzkzWlhJZ1pHVndkR2dnS0dKMWRDQmxjWFZoYkNCdFlYaExaWGtwSUhSdklGd2lZMkYwWTJnZ2RYQmNJaUJoYm1RZ2JHRnVaQ0J2YmlCemFHRnlaV1FnYm05a1pYTXVYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHaGxhV2RvZEUxcGJpQTlJR2hsYVdkb2RFRWdQQ0JvWldsbmFIUkNJRDhnYUdWcFoyaDBRU0E2SUdobGFXZG9kRUk3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR1JsY0hSb1FVNXZjbTFoYkdsNlpXUWdQU0JzWlhabGJFbHVaR2xqWlhOQkxteGxibWQwYUNBdElDaG9aV2xuYUhSQklDMGdhR1ZwWjJoMFRXbHVLVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdaR1Z3ZEdoQ1RtOXliV0ZzYVhwbFpDQTlJR3hsZG1Wc1NXNWthV05sYzBJdWJHVnVaM1JvSUMwZ0tHaGxhV2RvZEVJZ0xTQm9aV2xuYUhSTmFXNHBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJrWlhCMGFFRk9iM0p0WVd4cGVtVmtJQzBnWkdWd2RHaENUbTl5YldGc2FYcGxaRHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0F2THlCRmJtUWdiMllnYUdWc2NHVnlJRzFsZEdodlpITWdabTl5SUdScFptWkJaMkZwYm5OMElDOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdZU0J1WlhjZ2FYUmxjbUYwYjNJZ1ptOXlJR2wwWlhKaGRHbHVaeUIwYUdVZ2EyVjVjeUJ2WmlCbFlXTm9JSEJoYVhJZ2FXNGdZWE5qWlc1a2FXNW5JRzl5WkdWeUxseHlYRzRnSUNBZ0lDb2dJRUJ3WVhKaGJTQm1hWEp6ZEV0bGVUb2dUV2x1YVcxMWJTQnJaWGtnZEc4Z2FXNWpiSFZrWlNCcGJpQjBhR1VnYjNWMGNIVjBMaUFxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbXRsZVhNZ1BTQm1kVzVqZEdsdmJpQW9abWx5YzNSTFpYa3BJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdhWFFnUFNCMGFHbHpMbVZ1ZEhKcFpYTW9abWx5YzNSTFpYa3NJRkpsZFhObFpFRnljbUY1S1R0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYUmxjbUYwYjNJb1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnYmlBOUlHbDBMbTVsZUhRb0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzR1ZG1Gc2RXVXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1TG5aaGJIVmxJRDBnYmk1MllXeDFaVnN3WFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzQ3WEhKY2JpQWdJQ0FnSUNBZ2ZTazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUZKbGRIVnlibk1nWVNCdVpYY2dhWFJsY21GMGIzSWdabTl5SUdsMFpYSmhkR2x1WnlCMGFHVWdkbUZzZFdWeklHOW1JR1ZoWTJnZ2NHRnBjaUJwYmlCdmNtUmxjaUJpZVNCclpYa3VYSEpjYmlBZ0lDQWdLaUFnUUhCaGNtRnRJR1pwY25OMFMyVjVPaUJOYVc1cGJYVnRJR3RsZVNCM2FHOXpaU0JoYzNOdlkybGhkR1ZrSUhaaGJIVmxJR2x6SUdsdVkyeDFaR1ZrSUdsdUlIUm9aU0J2ZFhSd2RYUXVJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkbUZzZFdWeklEMGdablZ1WTNScGIyNGdLR1pwY25OMFMyVjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR2wwSUQwZ2RHaHBjeTVsYm5SeWFXVnpLR1pwY25OMFMyVjVMQ0JTWlhWelpXUkJjbkpoZVNrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHbDBaWEpoZEc5eUtHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUc0Z1BTQnBkQzV1WlhoMEtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1TG5aaGJIVmxLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYmk1MllXeDFaU0E5SUc0dWRtRnNkV1ZiTVYwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1TzF4eVhHNGdJQ0FnSUNBZ0lIMHBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoQ1ZISmxaUzV3Y205MGIzUjVjR1VzSUZ3aWJXRjRUbTlrWlZOcGVtVmNJaXdnZTF4eVhHNGdJQ0FnSUNBZ0lDOHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2WEhKY2JpQWdJQ0FnSUNBZ0x5OGdRV1JrYVhScGIyNWhiQ0J0WlhSb2IyUnpJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJQ0FnSUNBdktpb2dVbVYwZFhKdWN5QjBhR1VnYldGNGFXMTFiU0J1ZFcxaVpYSWdiMllnWTJocGJHUnlaVzR2ZG1Gc2RXVnpJR0psWm05eVpTQnViMlJsY3lCM2FXeHNJSE53YkdsMExpQXFMMXh5WEc0Z0lDQWdJQ0FnSUdkbGREb2dablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmJXRjRUbTlrWlZOcGVtVTdYSEpjYmlBZ0lDQWdJQ0FnZlN4Y2NseHVJQ0FnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUJtWVd4elpTeGNjbHh1SUNBZ0lDQWdJQ0JqYjI1bWFXZDFjbUZpYkdVNklIUnlkV1ZjY2x4dUlDQWdJSDBwTzF4eVhHNGdJQ0FnTHlvcUlFZGxkSE1nZEdobElHeHZkMlZ6ZENCclpYa2dhVzRnZEdobElIUnlaV1V1SUVOdmJYQnNaWGhwZEhrNklFOG9iRzluSUhOcGVtVXBJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXViV2x1UzJWNUlEMGdablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN5NWZjbTl2ZEM1dGFXNUxaWGtvS1RzZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJIWlhSeklIUm9aU0JvYVdkb1pYTjBJR3RsZVNCcGJpQjBhR1VnZEhKbFpTNGdRMjl0Y0d4bGVHbDBlVG9nVHlneEtTQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtMWhlRXRsZVNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJSFJvYVhNdVgzSnZiM1F1YldGNFMyVjVLQ2s3SUgwN1hISmNiaUFnSUNBdktpb2dVWFZwWTJ0c2VTQmpiRzl1WlhNZ2RHaGxJSFJ5WldVZ1lua2diV0Z5YTJsdVp5QjBhR1VnY205dmRDQnViMlJsSUdGeklITm9ZWEpsWkM1Y2NseHVJQ0FnSUNBcUlDQkNiM1JvSUdOdmNHbGxjeUJ5WlcxaGFXNGdaV1JwZEdGaWJHVXVJRmRvWlc0Z2VXOTFJRzF2WkdsbWVTQmxhWFJvWlhJZ1kyOXdlU3dnWVc1NVhISmNiaUFnSUNBZ0tpQWdibTlrWlhNZ2RHaGhkQ0JoY21VZ2MyaGhjbVZrSUNodmNpQndiM1JsYm5ScFlXeHNlU0J6YUdGeVpXUXBJR0psZEhkbFpXNGdkR2hsSUhSM2IxeHlYRzRnSUNBZ0lDb2dJR052Y0dsbGN5QmhjbVVnWTJ4dmJtVmtJSE52SUhSb1lYUWdkR2hsSUdOb1lXNW5aWE1nWkc4Z2JtOTBJR0ZtWm1WamRDQnZkR2hsY2lCamIzQnBaWE11WEhKY2JpQWdJQ0FnS2lBZ1ZHaHBjeUJwY3lCcmJtOTNiaUJoY3lCamIzQjVMVzl1TFhkeWFYUmxJR0psYUdGMmFXOXlMQ0J2Y2lCY0lteGhlbmtnWTI5d2VXbHVaMXdpTGlBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1Oc2IyNWxJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzSnZiM1F1YVhOVGFHRnlaV1FnUFNCMGNuVmxPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQnVaWGNnUWxSeVpXVW9kVzVrWldacGJtVmtMQ0IwYUdsekxsOWpiMjF3WVhKbExDQjBhR2x6TGw5dFlYaE9iMlJsVTJsNlpTazdYSEpjYmlBZ0lDQWdJQ0FnY21WemRXeDBMbDl5YjI5MElEMGdkR2hwY3k1ZmNtOXZkRHRjY2x4dUlDQWdJQ0FnSUNCeVpYTjFiSFF1WDNOcGVtVWdQU0IwYUdsekxsOXphWHBsTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcUlGQmxjbVp2Y20xeklHRWdaM0psWldSNUlHTnNiMjVsTENCcGJXMWxaR2xoZEdWc2VTQmtkWEJzYVdOaGRHbHVaeUJoYm5rZ2JtOWtaWE1nZEdoaGRDQmhjbVZjY2x4dUlDQWdJQ0FxSUNCdWIzUWdZM1Z5Y21WdWRHeDVJRzFoY210bFpDQmhjeUJ6YUdGeVpXUXNJR2x1SUc5eVpHVnlJSFJ2SUdGMmIybGtJRzFoY210cGJtY2dZVzU1WEhKY2JpQWdJQ0FnS2lBZ1lXUmthWFJwYjI1aGJDQnViMlJsY3lCaGN5QnphR0Z5WldRdVhISmNiaUFnSUNBZ0tpQWdRSEJoY21GdElHWnZjbU5sSUVOc2IyNWxJR0ZzYkNCdWIyUmxjeXdnWlhabGJpQnphR0Z5WldRZ2IyNWxjeTVjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbWR5WldWa2VVTnNiMjVsSUQwZ1puVnVZM1JwYjI0Z0tHWnZjbU5sS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUc1bGR5QkNWSEpsWlNoMWJtUmxabWx1WldRc0lIUm9hWE11WDJOdmJYQmhjbVVzSUhSb2FYTXVYMjFoZUU1dlpHVlRhWHBsS1R0Y2NseHVJQ0FnSUNBZ0lDQnlaWE4xYkhRdVgzSnZiM1FnUFNCMGFHbHpMbDl5YjI5MExtZHlaV1ZrZVVOc2IyNWxLR1p2Y21ObEtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhOMWJIUXVYM05wZW1VZ1BTQjBhR2x6TGw5emFYcGxPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUVkbGRITWdZVzRnWVhKeVlYa2dabWxzYkdWa0lIZHBkR2dnZEdobElHTnZiblJsYm5SeklHOW1JSFJvWlNCMGNtVmxMQ0J6YjNKMFpXUWdZbmtnYTJWNUlDb3ZYSEpjYmlBZ0lDQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWRHOUJjbkpoZVNBOUlHWjFibU4wYVc5dUlDaHRZWGhNWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9iV0Y0VEdWdVozUm9JRDA5UFNCMmIybGtJREFwSUhzZ2JXRjRUR1Z1WjNSb0lEMGdNSGczUmtaR1JrWkdSanNnZlZ4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ0YVc0Z1BTQjBhR2x6TG0xcGJrdGxlU2dwTENCdFlYZ2dQU0IwYUdsekxtMWhlRXRsZVNncE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNodGFXNGdJVDA5SUhWdVpHVm1hVzVsWkNsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBVbUZ1WjJVb2JXbHVMQ0J0WVhnc0lIUnlkV1VzSUcxaGVFeGxibWQwYUNrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGdGRPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCSFpYUnpJR0Z1SUdGeWNtRjVJRzltSUdGc2JDQnJaWGx6TENCemIzSjBaV1FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVyWlhselFYSnlZWGtnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZEhNZ1BTQmJYVHRjY2x4dUlDQWdJQ0FnSUNCMGFHbHpMbDl5YjI5MExtWnZjbEpoYm1kbEtIUm9hWE11YldsdVMyVjVLQ2tzSUhSb2FYTXViV0Y0UzJWNUtDa3NJSFJ5ZFdVc0lHWmhiSE5sTENCMGFHbHpMQ0F3TENCbWRXNWpkR2x2YmlBb2F5d2dkaWtnZXlCeVpYTjFiSFJ6TG5CMWMyZ29heWs3SUgwcE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhSek8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJIWlhSeklHRnVJR0Z5Y21GNUlHOW1JR0ZzYkNCMllXeDFaWE1zSUhOdmNuUmxaQ0JpZVNCclpYa2dLaTljY2x4dUlDQWdJRUpVY21WbExuQnliM1J2ZEhsd1pTNTJZV3gxWlhOQmNuSmhlU0E5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2NtVnpkV3gwY3lBOUlGdGRPMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRdVptOXlVbUZ1WjJVb2RHaHBjeTV0YVc1TFpYa29LU3dnZEdocGN5NXRZWGhMWlhrb0tTd2dkSEoxWlN3Z1ptRnNjMlVzSUhSb2FYTXNJREFzSUdaMWJtTjBhVzl1SUNockxDQjJLU0I3SUhKbGMzVnNkSE11Y0hWemFDaDJLVHNnZlNrN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZEhNN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRWRsZEhNZ1lTQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MGFXNW5JSFJvWlNCMGNtVmxKM01nWkdGMFlTQmlZWE5sWkNCdmJpQjBiMEZ5Y21GNUtDa3VJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVkRzlUZEhKcGJtY2dQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZEc5QmNuSmhlU2dwTG5SdlUzUnlhVzVuS0NrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRk4wYjNKbGN5QmhJR3RsZVMxMllXeDFaU0J3WVdseUlHOXViSGtnYVdZZ2RHaGxJR3RsZVNCa2IyVnpiaWQwSUdGc2NtVmhaSGtnWlhocGMzUWdhVzRnZEdobElIUnlaV1V1WEhKY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCMGNuVmxJR2xtSUdFZ2JtVjNJR3RsZVNCM1lYTWdZV1JrWldSY2NseHVJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1YzJWMFNXWk9iM1JRY21WelpXNTBJRDBnWm5WdVkzUnBiMjRnS0d0bGVTd2dkbUZzZFdVcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUW9hMlY1TENCMllXeDFaU3dnWm1Gc2MyVXBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2lCU1pYUjFjbTV6SUhSb1pTQnVaWGgwSUhCaGFYSWdkMmh2YzJVZ2EyVjVJR2x6SUd4aGNtZGxjaUIwYUdGdUlIUm9aU0J6Y0dWamFXWnBaV1FnYTJWNUlDaHZjaUIxYm1SbFptbHVaV1FnYVdZZ2RHaGxjbVVnYVhNZ2JtOXVaU2t1WEhKY2JpQWdJQ0FnS2lCSlppQnJaWGtnUFQwOUlIVnVaR1ZtYVc1bFpDd2dkR2hwY3lCbWRXNWpkR2x2YmlCeVpYUjFjbTV6SUhSb1pTQnNiM2RsYzNRZ2NHRnBjaTVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JyWlhrZ1ZHaGxJR3RsZVNCMGJ5QnpaV0Z5WTJnZ1ptOXlMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSEpsZFhObFpFRnljbUY1SUU5d2RHbHZibUZzSUdGeWNtRjVJSFZ6WldRZ2NtVndaV0YwWldSc2VTQjBieUJ6ZEc5eVpTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25Nc0lIUnZYSEpjYmlBZ0lDQWdLaUJoZG05cFpDQmpjbVZoZEdsdVp5QmhJRzVsZHlCaGNuSmhlU0J2YmlCbGRtVnllU0JwZEdWeVlYUnBiMjR1WEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzV1WlhoMFNHbG5hR1Z5VUdGcGNpQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lISmxkWE5sWkVGeWNtRjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjFjMlZrUVhKeVlYa2dQU0J5WlhWelpXUkJjbkpoZVNCOGZDQmJYVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hMlY1SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDNKdmIzUXViV2x1VUdGcGNpaHlaWFZ6WldSQmNuSmhlU2s3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TGw5eWIyOTBMbWRsZEZCaGFYSlBjazVsZUhSSWFXZG9aWElvYTJWNUxDQjBhR2x6TGw5amIyMXdZWEpsTENCbVlXeHpaU3dnY21WMWMyVmtRWEp5WVhrcE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJTWlhSMWNtNXpJSFJvWlNCdVpYaDBJR3RsZVNCc1lYSm5aWElnZEdoaGJpQjBhR1VnYzNCbFkybG1hV1ZrSUd0bGVTd2diM0lnZFc1a1pXWnBibVZrSUdsbUlIUm9aWEpsSUdseklHNXZibVV1WEhKY2JpQWdJQ0FnS2lBZ1FXeHpieXdnYm1WNGRFaHBaMmhsY2t0bGVTaDFibVJsWm1sdVpXUXBJSEpsZEhWeWJuTWdkR2hsSUd4dmQyVnpkQ0JyWlhrdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1dVpYaDBTR2xuYUdWeVMyVjVJRDBnWm5WdVkzUnBiMjRnS0d0bGVTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQndJRDBnZEdocGN5NXVaWGgwU0dsbmFHVnlVR0ZwY2loclpYa3NJRkpsZFhObFpFRnljbUY1S1R0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NDQW1KaUJ3V3pCZE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLaUJTWlhSMWNtNXpJSFJvWlNCdVpYaDBJSEJoYVhJZ2QyaHZjMlVnYTJWNUlHbHpJSE50WVd4c1pYSWdkR2hoYmlCMGFHVWdjM0JsWTJsbWFXVmtJR3RsZVNBb2IzSWdkVzVrWldacGJtVmtJR2xtSUhSb1pYSmxJR2x6SUc1dmJtVXBMbHh5WEc0Z0lDQWdJQ29nSUVsbUlHdGxlU0E5UFQwZ2RXNWtaV1pwYm1Wa0xDQjBhR2x6SUdaMWJtTjBhVzl1SUhKbGRIVnlibk1nZEdobElHaHBaMmhsYzNRZ2NHRnBjaTVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JyWlhrZ1ZHaGxJR3RsZVNCMGJ5QnpaV0Z5WTJnZ1ptOXlMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSEpsZFhObFpFRnljbUY1SUU5d2RHbHZibUZzSUdGeWNtRjVJSFZ6WldRZ2NtVndaV0YwWldSc2VTQjBieUJ6ZEc5eVpTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25Nc0lIUnZYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdZWFp2YVdRZ1kzSmxZWFJwYm1jZ1lTQnVaWGNnWVhKeVlYa2daV0ZqYUNCMGFXMWxJSGx2ZFNCallXeHNJSFJvYVhNZ2JXVjBhRzlrTGx4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1Ym1WNGRFeHZkMlZ5VUdGcGNpQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lISmxkWE5sWkVGeWNtRjVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjFjMlZrUVhKeVlYa2dQU0J5WlhWelpXUkJjbkpoZVNCOGZDQmJYVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hMlY1SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDNKdmIzUXViV0Y0VUdGcGNpaHlaWFZ6WldSQmNuSmhlU2s3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TGw5eWIyOTBMbWRsZEZCaGFYSlBjazVsZUhSTWIzZGxjaWhyWlhrc0lIUm9hWE11WDJOdmJYQmhjbVVzSUdaaGJITmxMQ0J5WlhWelpXUkJjbkpoZVNrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRkpsZEhWeWJuTWdkR2hsSUc1bGVIUWdhMlY1SUhOdFlXeHNaWElnZEdoaGJpQjBhR1VnYzNCbFkybG1hV1ZrSUd0bGVTd2diM0lnZFc1a1pXWnBibVZrSUdsbUlIUm9aWEpsSUdseklHNXZibVV1WEhKY2JpQWdJQ0FnS2lBZ1FXeHpieXdnYm1WNGRFeHZkMlZ5UzJWNUtIVnVaR1ZtYVc1bFpDa2djbVYwZFhKdWN5QjBhR1VnYUdsbmFHVnpkQ0JyWlhrdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1dVpYaDBURzkzWlhKTFpYa2dQU0JtZFc1amRHbHZiaUFvYTJWNUtTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlIQWdQU0IwYUdsekxtNWxlSFJNYjNkbGNsQmhhWElvYTJWNUxDQlNaWFZ6WldSQmNuSmhlU2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBZ0ppWWdjRnN3WFR0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpb2dVbVYwZFhKdWN5QjBhR1VnYTJWNUxYWmhiSFZsSUhCaGFYSWdZWE56YjJOcFlYUmxaQ0IzYVhSb0lIUm9aU0J6ZFhCd2JHbGxaQ0JyWlhrZ2FXWWdhWFFnWlhocGMzUnpYSEpjYmlBZ0lDQWdLaUFnYjNJZ2RHaGxJSEJoYVhJZ1lYTnpiMk5wWVhSbFpDQjNhWFJvSUhSb1pTQnVaWGgwSUd4dmQyVnlJSEJoYVhJZ2IzUm9aWEozYVhObExpQkpaaUIwYUdWeVpTQnBjeUJ1YjF4eVhHNGdJQ0FnSUNvZ0lHNWxlSFFnYkc5M1pYSWdjR0ZwY2l3Z2RXNWtaV1pwYm1Wa0lHbHpJSEpsZEhWeWJtVmtMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR3RsZVNCVWFHVWdhMlY1SUhSdklITmxZWEpqYUNCbWIzSXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdjbVYxYzJWa1FYSnlZWGtnVDNCMGFXOXVZV3dnWVhKeVlYa2dkWE5sWkNCeVpYQmxZWFJsWkd4NUlIUnZJSE4wYjNKbElHdGxlUzEyWVd4MVpTQndZV2x5Y3l3Z2RHOWNjbHh1SUNBZ0lDQXFJQ0FnSUNBZ0lDQmhkbTlwWkNCamNtVmhkR2x1WnlCaElHNWxkeUJoY25KaGVTQmxZV05vSUhScGJXVWdlVzkxSUdOaGJHd2dkR2hwY3lCdFpYUm9iMlF1WEhKY2JpQWdJQ0FnS2lBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG1kbGRGQmhhWEpQY2s1bGVIUk1iM2RsY2lBOUlHWjFibU4wYVc5dUlDaHJaWGtzSUhKbGRYTmxaRUZ5Y21GNUtTQjdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSnZiM1F1WjJWMFVHRnBjazl5VG1WNGRFeHZkMlZ5S0d0bGVTd2dkR2hwY3k1ZlkyOXRjR0Z5WlN3Z2RISjFaU3dnY21WMWMyVmtRWEp5WVhrZ2ZId2dXMTBwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtpQlNaWFIxY201eklIUm9aU0JyWlhrdGRtRnNkV1VnY0dGcGNpQmhjM052WTJsaGRHVmtJSGRwZEdnZ2RHaGxJSE4xY0hCc2FXVmtJR3RsZVNCcFppQnBkQ0JsZUdsemRITmNjbHh1SUNBZ0lDQXFJQ0J2Y2lCMGFHVWdjR0ZwY2lCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElHNWxlSFFnYkc5M1pYSWdjR0ZwY2lCdmRHaGxjbmRwYzJVdUlFbG1JSFJvWlhKbElHbHpJRzV2WEhKY2JpQWdJQ0FnS2lBZ2JtVjRkQ0JzYjNkbGNpQndZV2x5TENCMWJtUmxabWx1WldRZ2FYTWdjbVYwZFhKdVpXUXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhMlY1SUZSb1pTQnJaWGtnZEc4Z2MyVmhjbU5vSUdadmNpNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnlaWFZ6WldSQmNuSmhlU0JQY0hScGIyNWhiQ0JoY25KaGVTQjFjMlZrSUhKbGNHVmhkR1ZrYkhrZ2RHOGdjM1J2Y21VZ2EyVjVMWFpoYkhWbElIQmhhWEp6TENCMGIxeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHRjJiMmxrSUdOeVpXRjBhVzVuSUdFZ2JtVjNJR0Z5Y21GNUlHVmhZMmdnZEdsdFpTQjViM1VnWTJGc2JDQjBhR2x6SUcxbGRHaHZaQzVjY2x4dUlDQWdJQ0FxSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1WjJWMFVHRnBjazl5VG1WNGRFaHBaMmhsY2lBOUlHWjFibU4wYVc5dUlDaHJaWGtzSUhKbGRYTmxaRUZ5Y21GNUtTQjdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSnZiM1F1WjJWMFVHRnBjazl5VG1WNGRFaHBaMmhsY2loclpYa3NJSFJvYVhNdVgyTnZiWEJoY21Vc0lIUnlkV1VzSUhKbGRYTmxaRUZ5Y21GNUlIeDhJRnRkS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpb2dSV1JwZEhNZ2RHaGxJSFpoYkhWbElHRnpjMjlqYVdGMFpXUWdkMmwwYUNCaElHdGxlU0JwYmlCMGFHVWdkSEpsWlN3Z2FXWWdhWFFnWVd4eVpXRmtlU0JsZUdsemRITXVYSEpjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUIwY25WbElHbG1JSFJvWlNCclpYa2daWGhwYzNSbFpDd2dabUZzYzJVZ2FXWWdibTkwTGx4eVhHNGdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVqYUdGdVoyVkpabEJ5WlhObGJuUWdQU0JtZFc1amRHbHZiaUFvYTJWNUxDQjJZV3gxWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1Wa2FYUlNZVzVuWlNoclpYa3NJR3RsZVN3Z2RISjFaU3dnWm5WdVkzUnBiMjRnS0dzc0lIWXBJSHNnY21WMGRYSnVJQ2g3SUhaaGJIVmxPaUIyWVd4MVpTQjlLVHNnZlNrZ0lUMDlJREE3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcVhISmNiaUFnSUNBZ0tpQkNkV2xzWkhNZ1lXNGdZWEp5WVhrZ2IyWWdjR0ZwY25NZ1puSnZiU0IwYUdVZ2MzQmxZMmxtYVdWa0lISmhibWRsSUc5bUlHdGxlWE1zSUhOdmNuUmxaQ0JpZVNCclpYa3VYSEpjYmlBZ0lDQWdLaUJGWVdOb0lISmxkSFZ5Ym1Wa0lIQmhhWElnYVhNZ1lXeHpieUJoYmlCaGNuSmhlVG9nY0dGcGNsc3dYU0JwY3lCMGFHVWdhMlY1TENCd1lXbHlXekZkSUdseklIUm9aU0IyWVd4MVpTNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnNiM2NnVkdobElHWnBjbk4wSUd0bGVTQnBiaUIwYUdVZ1lYSnlZWGtnZDJsc2JDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdZR3h2ZDJBdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2FHbG5hQ0JVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUhkb1pXNGdZU0JyWlhrZ2JHRnlaMlZ5SUhSb1lXNGdkR2hwY3lCcGN5QnlaV0ZqYUdWa0xseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHbHVZMngxWkdWSWFXZG9JRWxtSUhSb1pTQmdhR2xuYUdBZ2EyVjVJR2x6SUhCeVpYTmxiblFzSUdsMGN5QndZV2x5SUhkcGJHd2dZbVVnYVc1amJIVmtaV1JjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0JwYmlCMGFHVWdiM1YwY0hWMElHbG1JR0Z1WkNCdmJteDVJR2xtSUhSb2FYTWdjR0Z5WVcxbGRHVnlJR2x6SUhSeWRXVXVJRTV2ZEdVNklHbG1JSFJvWlZ4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUdCc2IzZGdJR3RsZVNCcGN5QndjbVZ6Wlc1MExDQnBkQ0JwY3lCaGJIZGhlWE1nYVc1amJIVmtaV1FnYVc0Z2RHaGxJRzkxZEhCMWRDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnRZWGhNWlc1bmRHZ2dUR1Z1WjNSb0lHeHBiV2wwTGlCblpYUlNZVzVuWlNCM2FXeHNJSE4wYjNBZ2MyTmhibTVwYm1jZ2RHaGxJSFJ5WldVZ2QyaGxibHh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdVZ1lYSnlZWGtnY21WaFkyaGxjeUIwYUdseklITnBlbVV1WEhKY2JpQWdJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRMjl0Y0hWMFlYUnBiMjVoYkNCamIyMXdiR1Y0YVhSNU9pQlBLSEpsYzNWc2RDNXNaVzVuZEdnZ0t5QnNiMmNnYzJsNlpTbGNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtZGxkRkpoYm1kbElEMGdablZ1WTNScGIyNGdLR3h2ZHl3Z2FHbG5hQ3dnYVc1amJIVmtaVWhwWjJnc0lHMWhlRXhsYm1kMGFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHRZWGhNWlc1bmRHZ2dQVDA5SUhadmFXUWdNQ2tnZXlCdFlYaE1aVzVuZEdnZ1BTQXdlRE5HUmtaR1JrWTdJSDFjY2x4dUlDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MGN5QTlJRnRkTzF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKdmIzUXVabTl5VW1GdVoyVW9iRzkzTENCb2FXZG9MQ0JwYm1Oc2RXUmxTR2xuYUN3Z1ptRnNjMlVzSUhSb2FYTXNJREFzSUdaMWJtTjBhVzl1SUNockxDQjJLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RITXVjSFZ6YUNoYmF5d2dkbDBwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MGN5NXNaVzVuZEdnZ1BpQnRZWGhNWlc1bmRHZ2dQeUJDY21WaGF5QTZJSFZ1WkdWbWFXNWxaRHRjY2x4dUlDQWdJQ0FnSUNCOUtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MGN6dGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaW9nUVdSa2N5QmhiR3dnY0dGcGNuTWdabkp2YlNCaElHeHBjM1FnYjJZZ2EyVjVMWFpoYkhWbElIQmhhWEp6TGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhCaGFYSnpJRkJoYVhKeklIUnZJR0ZrWkNCMGJ5QjBhR2x6SUhSeVpXVXVJRWxtSUhSb1pYSmxJR0Z5WlNCa2RYQnNhV05oZEdVZ2EyVjVjeXhjY2x4dUlDQWdJQ0FxSUNBZ0lDQWdJQ0JzWVhSbGNpQndZV2x5Y3lCamRYSnlaVzUwYkhrZ2IzWmxjbmR5YVhSbElHVmhjbXhwWlhJZ2IyNWxjeUFvWlM1bkxpQmJXekFzTVYwc1d6QXNOMTFkWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnWVhOemIyTnBZWFJsY3lBd0lIZHBkR2dnTnk0cFhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2IzWmxjbmR5YVhSbElGZG9aWFJvWlhJZ2RHOGdiM1psY25keWFYUmxJSEJoYVhKeklIUm9ZWFFnWVd4eVpXRmtlU0JsZUdsemRDQW9hV1lnWm1Gc2MyVXNYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdjR0ZwY25OYmFWMGdhWE1nYVdkdWIzSmxaQ0IzYUdWdUlIUm9aU0JyWlhrZ2NHRnBjbk5iYVYxYk1GMGdZV3h5WldGa2VTQmxlR2x6ZEhNdUtWeHlYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdWR2hsSUc1MWJXSmxjaUJ2WmlCd1lXbHljeUJoWkdSbFpDQjBieUIwYUdVZ1kyOXNiR1ZqZEdsdmJpNWNjbHh1SUNBZ0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGIyMXdkWFJoZEdsdmJtRnNJR052YlhCc1pYaHBkSGs2SUU4b2NHRnBjbk11YkdWdVozUm9JQ29nYkc5bktITnBlbVVnS3lCd1lXbHljeTVzWlc1bmRHZ3BLVnh5WEc0Z0lDQWdJQ292WEhKY2JpQWdJQ0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVjMlYwVUdGcGNuTWdQU0JtZFc1amRHbHZiaUFvY0dGcGNuTXNJRzkyWlhKM2NtbDBaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJoWkdSbFpDQTlJREE3WEhKY2JpQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2FTQTlJREE3SUdrZ1BDQndZV2x5Y3k1c1pXNW5kR2c3SUdrckt5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMyVjBLSEJoYVhKelcybGRXekJkTENCd1lXbHljMXRwWFZzeFhTd2diM1psY25keWFYUmxLU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGa1pHVmtLeXM3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGa1pHVmtPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzhxS2x4eVhHNGdJQ0FnSUNvZ1UyTmhibk1nZEdobElITndaV05wWm1sbFpDQnlZVzVuWlNCdlppQnJaWGx6TENCcGJpQmhjMk5sYm1ScGJtY2diM0prWlhJZ1lua2dhMlY1TGx4eVhHNGdJQ0FnSUNvZ1RtOTBaVG9nZEdobElHTmhiR3hpWVdOcklHQnZia1p2ZFc1a1lDQnRkWE4wSUc1dmRDQnBibk5sY25RZ2IzSWdjbVZ0YjNabElHbDBaVzF6SUdsdUlIUm9aVnh5WEc0Z0lDQWdJQ29nWTI5c2JHVmpkR2x2Ymk0Z1JHOXBibWNnYzI4Z2JXRjVJR05oZFhObElHbHVZMjl5Y21WamRDQmtZWFJoSUhSdklHSmxJSE5sYm5RZ2RHOGdkR2hsWEhKY2JpQWdJQ0FnS2lCallXeHNZbUZqYXlCaFpuUmxjbmRoY21RdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2JHOTNJRlJvWlNCbWFYSnpkQ0JyWlhrZ2MyTmhibTVsWkNCM2FXeHNJR0psSUdkeVpXRjBaWElnZEdoaGJpQnZjaUJsY1hWaGJDQjBieUJnYkc5M1lDNWNjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQm9hV2RvSUZOallXNXVhVzVuSUhOMGIzQnpJSGRvWlc0Z1lTQnJaWGtnYkdGeVoyVnlJSFJvWVc0Z2RHaHBjeUJwY3lCeVpXRmphR1ZrTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdsdVkyeDFaR1ZJYVdkb0lFbG1JSFJvWlNCZ2FHbG5hR0FnYTJWNUlHbHpJSEJ5WlhObGJuUXNJR0J2YmtadmRXNWtZQ0JwY3lCallXeHNaV1FnWm05eVhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ2RHaGhkQ0JtYVc1aGJDQndZV2x5SUdsbUlHRnVaQ0J2Ym14NUlHbG1JSFJvYVhNZ2NHRnlZVzFsZEdWeUlHbHpJSFJ5ZFdVdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2IyNUdiM1Z1WkNCQklHWjFibU4wYVc5dUlIUm9ZWFFnYVhNZ1kyRnNiR1ZrSUdadmNpQmxZV05vSUd0bGVTMTJZV3gxWlNCd1lXbHlMaUJVYUdselhISmNiaUFnSUNBZ0tpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z1kyRnVJSEpsZEhWeWJpQjdZbkpsWVdzNlVuMGdkRzhnYzNSdmNDQmxZWEpzZVNCM2FYUm9JSEpsYzNWc2RDQlNMbHh5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR2x1YVhScFlXeERiM1Z1ZEdWeUlFbHVhWFJwWVd3Z2RHaHBjbVFnWVhKbmRXMWxiblFnYjJZZ2IyNUdiM1Z1WkM0Z1ZHaHBjeUIyWVd4MVpWeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHbHVZM0psWVhObGN5QmllU0J2Ym1VZ1pXRmphQ0IwYVcxbElHQnZia1p2ZFc1a1lDQnBjeUJqWVd4c1pXUXVJRVJsWm1GMWJIUTZJREJjY2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUZSb1pTQnVkVzFpWlhJZ2IyWWdkbUZzZFdWeklHWnZkVzVrTENCdmNpQlNJR2xtSUhSb1pTQmpZV3hzWW1GamF5QnlaWFIxY201bFpGeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lHQjdZbkpsWVdzNlVuMWdJSFJ2SUhOMGIzQWdaV0Z5YkhrdVhISmNiaUFnSUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dGNIVjBZWFJwYjI1aGJDQmpiMjF3YkdWNGFYUjVPaUJQS0c1MWJXSmxjaUJ2WmlCcGRHVnRjeUJ6WTJGdWJtVmtJQ3NnYkc5bklITnBlbVVwWEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVtYjNKU1lXNW5aU0E5SUdaMWJtTjBhVzl1SUNoc2IzY3NJR2hwWjJnc0lHbHVZMngxWkdWSWFXZG9MQ0J2YmtadmRXNWtMQ0JwYm1sMGFXRnNRMjkxYm5SbGNpa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnlJRDBnZEdocGN5NWZjbTl2ZEM1bWIzSlNZVzVuWlNoc2IzY3NJR2hwWjJnc0lHbHVZMngxWkdWSWFXZG9MQ0JtWVd4elpTd2dkR2hwY3l3Z2FXNXBkR2xoYkVOdmRXNTBaWElnZkh3Z01Dd2diMjVHYjNWdVpDazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlJRDA5UFNCY0ltNTFiV0psY2x3aUlEOGdjaUE2SUhJdVluSmxZV3M3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnTHlvcVhISmNiaUFnSUNBZ0tpQlRZMkZ1Y3lCaGJtUWdjRzkwWlc1MGFXRnNiSGtnYlc5a2FXWnBaWE1nZG1Gc2RXVnpJR1p2Y2lCaElITjFZbk5sY1hWbGJtTmxJRzltSUd0bGVYTXVYSEpjYmlBZ0lDQWdLaUJPYjNSbE9pQjBhR1VnWTJGc2JHSmhZMnNnWUc5dVJtOTFibVJnSUhOb2IzVnNaQ0JwWkdWaGJHeDVJR0psSUdFZ2NIVnlaU0JtZFc1amRHbHZiaTVjY2x4dUlDQWdJQ0FxSUNBZ1UzQmxZMlpwWTJGc2JIa3NJR2wwSUcxMWMzUWdibTkwSUdsdWMyVnlkQ0JwZEdWdGN5d2dZMkZzYkNCamJHOXVaU2dwTENCdmNpQmphR0Z1WjJWY2NseHVJQ0FnSUNBcUlDQWdkR2hsSUdOdmJHeGxZM1JwYjI0Z1pYaGpaWEIwSUhacFlTQnlaWFIxY200Z2RtRnNkV1U3SUc5MWRDMXZaaTFpWVc1a0lHVmthWFJwYm1jZ2JXRjVYSEpjYmlBZ0lDQWdLaUFnSUdOaGRYTmxJR0Z1SUdWNFkyVndkR2x2YmlCdmNpQnRZWGtnWTJGMWMyVWdhVzVqYjNKeVpXTjBJR1JoZEdFZ2RHOGdZbVVnYzJWdWRDQjBiMXh5WEc0Z0lDQWdJQ29nSUNCMGFHVWdZMkZzYkdKaFkyc2dLR1IxY0d4cFkyRjBaU0J2Y2lCdGFYTnpaV1FnYVhSbGJYTXBMaUJKZENCdGRYTjBJRzV2ZENCallYVnpaU0JoWEhKY2JpQWdJQ0FnS2lBZ0lHTnNiMjVsS0NrZ2IyWWdkR2hsSUdOdmJHeGxZM1JwYjI0c0lHOTBhR1Z5ZDJselpTQjBhR1VnWTJ4dmJtVWdZMjkxYkdRZ1ltVWdiVzlrYVdacFpXUmNjbHh1SUNBZ0lDQXFJQ0FnWW5rZ1kyaGhibWRsY3lCeVpYRjFaWE4wWldRZ1lua2dkR2hsSUdOaGJHeGlZV05yTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUd4dmR5QlVhR1VnWm1seWMzUWdhMlY1SUhOallXNXVaV1FnZDJsc2JDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOGdZR3h2ZDJBdVhISmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2FHbG5hQ0JUWTJGdWJtbHVaeUJ6ZEc5d2N5QjNhR1Z1SUdFZ2EyVjVJR3hoY21kbGNpQjBhR0Z1SUhSb2FYTWdhWE1nY21WaFkyaGxaQzVjY2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0JwYm1Oc2RXUmxTR2xuYUNCSlppQjBhR1VnWUdocFoyaGdJR3RsZVNCcGN5QndjbVZ6Wlc1MExDQmdiMjVHYjNWdVpHQWdhWE1nWTJGc2JHVmtJR1p2Y2x4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUhSb1lYUWdabWx1WVd3Z2NHRnBjaUJwWmlCaGJtUWdiMjVzZVNCcFppQjBhR2x6SUhCaGNtRnRaWFJsY2lCcGN5QjBjblZsTGx4eVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUc5dVJtOTFibVFnUVNCbWRXNWpkR2x2YmlCMGFHRjBJR2x6SUdOaGJHeGxaQ0JtYjNJZ1pXRmphQ0JyWlhrdGRtRnNkV1VnY0dGcGNpNGdWR2hwYzF4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUdOaGJpQnlaWFIxY200Z1lIdDJZV3gxWlRwMmZXQWdkRzhnWTJoaGJtZGxJSFJvWlNCMllXeDFaU0JoYzNOdlkybGhkR1ZrWEhKY2JpQWdJQ0FnS2lBZ0lDQWdJQ0FnZDJsMGFDQjBhR1VnWTNWeWNtVnVkQ0JyWlhrc0lHQjdaR1ZzWlhSbE9uUnlkV1Y5WUNCMGJ5QmtaV3hsZEdVZ2RHaGxJR04xY25KbGJuUWdjR0ZwY2l4Y2NseHVJQ0FnSUNBcUlDQWdJQ0FnSUNCZ2UySnlaV0ZyT2xKOVlDQjBieUJ6ZEc5d0lHVmhjbXg1SUhkcGRHZ2djbVZ6ZFd4MElGSXNJRzl5SUdsMElHTmhiaUJ5WlhSMWNtNGdibTkwYUdsdVoxeHlYRzRnSUNBZ0lDb2dJQ0FnSUNBZ0lDaDFibVJsWm1sdVpXUWdiM0lnZTMwcElIUnZJR05oZFhObElHNXZJR1ZtWm1WamRDQmhibVFnWTI5dWRHbHVkV1VnYVhSbGNtRjBhVzVuTGx4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUdCN1luSmxZV3M2VW4xZ0lHTmhiaUJpWlNCamIyMWlhVzVsWkNCM2FYUm9JRzl1WlNCdlppQjBhR1VnYjNSb1pYSWdkSGR2SUdOdmJXMWhibVJ6TGx4eVhHNGdJQ0FnSUNvZ0lDQWdJQ0FnSUZSb1pTQjBhR2x5WkNCaGNtZDFiV1Z1ZENCZ1kyOTFiblJsY21BZ2FYTWdkR2hsSUc1MWJXSmxjaUJ2WmlCcGRHVnRjeUJwZEdWeVlYUmxaRnh5WEc0Z0lDQWdJQ29nSUNBZ0lDQWdJSEJ5WlhacGIzVnpiSGs3SUdsMElHVnhkV0ZzY3lBd0lIZG9aVzRnWUc5dVJtOTFibVJnSUdseklHTmhiR3hsWkNCMGFHVWdabWx5YzNRZ2RHbHRaUzVjY2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUZSb1pTQnVkVzFpWlhJZ2IyWWdkbUZzZFdWeklITmpZVzV1WldRc0lHOXlJRklnYVdZZ2RHaGxJR05oYkd4aVlXTnJJSEpsZEhWeWJtVmtYSEpjYmlBZ0lDQWdLaUFnSUNBZ0lDQWdZSHRpY21WaGF6cFNmV0FnZEc4Z2MzUnZjQ0JsWVhKc2VTNWNjbHh1SUNBZ0lDQXFJRUJrWlhOamNtbHdkR2x2Ymx4eVhHNGdJQ0FnSUNvZ0lDQkRiMjF3ZFhSaGRHbHZibUZzSUdOdmJYQnNaWGhwZEhrNklFOG9iblZ0WW1WeUlHOW1JR2wwWlcxeklITmpZVzV1WldRZ0t5QnNiMmNnYzJsNlpTbGNjbHh1SUNBZ0lDQXFJQ0FnVG05MFpUb2dhV1lnZEdobElIUnlaV1VnYUdGeklHSmxaVzRnWTJ4dmJtVmtJSGRwZEdnZ1kyeHZibVVvS1N3Z1lXNTVJSE5vWVhKbFpGeHlYRzRnSUNBZ0lDb2dJQ0J1YjJSbGN5QmhjbVVnWTI5d2FXVmtJR0psWm05eVpTQmdiMjVHYjNWdVpHQWdhWE1nWTJGc2JHVmtMaUJVYUdseklIUmhhMlZ6SUU4b2Jpa2dkR2x0WlZ4eVhHNGdJQ0FnSUNvZ0lDQjNhR1Z5WlNCdUlHbHpJSEJ5YjNCdmNuUnBiMjVoYkNCMGJ5QjBhR1VnWVcxdmRXNTBJRzltSUhOb1lYSmxaQ0JrWVhSaElITmpZVzV1WldRdVhISmNiaUFnSUNBZ0tpOWNjbHh1SUNBZ0lFSlVjbVZsTG5CeWIzUnZkSGx3WlM1bFpHbDBVbUZ1WjJVZ1BTQm1kVzVqZEdsdmJpQW9iRzkzTENCb2FXZG9MQ0JwYm1Oc2RXUmxTR2xuYUN3Z2IyNUdiM1Z1WkN3Z2FXNXBkR2xoYkVOdmRXNTBaWElwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnY205dmRDQTlJSFJvYVhNdVgzSnZiM1E3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSEp2YjNRdWFYTlRhR0Z5WldRcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVYM0p2YjNRZ1BTQnliMjkwSUQwZ2NtOXZkQzVqYkc5dVpTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5SUQwZ2NtOXZkQzVtYjNKU1lXNW5aU2hzYjNjc0lHaHBaMmdzSUdsdVkyeDFaR1ZJYVdkb0xDQjBjblZsTENCMGFHbHpMQ0JwYm1sMGFXRnNRMjkxYm5SbGNpQjhmQ0F3TENCdmJrWnZkVzVrS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlJRDA5UFNCY0ltNTFiV0psY2x3aUlEOGdjaUE2SUhJdVluSmxZV3M3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1pwYm1Gc2JIa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnYVhOVGFHRnlaV1FnUFNCMmIybGtJREE3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaHliMjkwTG10bGVYTXViR1Z1WjNSb0lEdzlJREVnSmlZZ0lYSnZiM1F1YVhOTVpXRm1LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGMxTm9ZWEpsWkNCOGZDQW9hWE5UYUdGeVpXUWdQU0J5YjI5MExtbHpVMmhoY21Wa0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgzSnZiM1FnUFNCeWIyOTBJRDBnY205dmRDNXJaWGx6TG14bGJtZDBhQ0E5UFQwZ01DQS9JRVZ0Y0hSNVRHVmhaaUE2WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbTl2ZEM1amFHbHNaSEpsYmxzd1hUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpaaUJoYm5rZ1lXNWpaWE4wYjNJZ2IyWWdkR2hsSUc1bGR5QnliMjkwSUhkaGN5QnphR0Z5WldRc0lIUm9aU0J1WlhjZ2NtOXZkQ0J0ZFhOMElHRnNjMjhnWW1VZ2MyaGhjbVZrWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxTm9ZWEpsWkNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbTl2ZEM1cGMxTm9ZWEpsWkNBOUlIUnlkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRk5oYldVZ1lYTWdZR1ZrYVhSU1lXNW5aV0FnWlhoalpYQjBJSFJvWVhRZ2RHaGxJR05oYkd4aVlXTnJJR2x6SUdOaGJHeGxaQ0JtYjNJZ1lXeHNJSEJoYVhKekxpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtVmthWFJCYkd3Z1BTQm1kVzVqZEdsdmJpQW9iMjVHYjNWdVpDd2dhVzVwZEdsaGJFTnZkVzUwWlhJcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bFpHbDBVbUZ1WjJVb2RHaHBjeTV0YVc1TFpYa29LU3dnZEdocGN5NXRZWGhMWlhrb0tTd2dkSEoxWlN3Z2IyNUdiM1Z1WkN3Z2FXNXBkR2xoYkVOdmRXNTBaWElwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUM4cUtseHlYRzRnSUNBZ0lDb2dVbVZ0YjNabGN5QmhJSEpoYm1kbElHOW1JR3RsZVMxMllXeDFaU0J3WVdseWN5Qm1jbTl0SUhSb1pTQkNLeUIwY21WbExseHlYRzRnSUNBZ0lDb2dRSEJoY21GdElHeHZkeUJVYUdVZ1ptbHljM1FnYTJWNUlITmpZVzV1WldRZ2QybHNiQ0JpWlNCbmNtVmhkR1Z5SUhSb1lXNGdiM0lnWlhGMVlXd2dkRzhnWUd4dmQyQXVYSEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhR2xuYUNCVFkyRnVibWx1WnlCemRHOXdjeUIzYUdWdUlHRWdhMlY1SUd4aGNtZGxjaUIwYUdGdUlIUm9hWE1nYVhNZ2NtVmhZMmhsWkM1Y2NseHVJQ0FnSUNBcUlFQndZWEpoYlNCcGJtTnNkV1JsU0dsbmFDQlRjR1ZqYVdacFpYTWdkMmhsZEdobGNpQjBhR1VnWUdocFoyaGdJR3RsZVN3Z2FXWWdjSEpsYzJWdWRDd2dhWE1nWkdWc1pYUmxaQzVjY2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUZSb1pTQnVkVzFpWlhJZ2IyWWdhMlY1TFhaaGJIVmxJSEJoYVhKeklIUm9ZWFFnZDJWeVpTQmtaV3hsZEdWa0xseHlYRzRnSUNBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJYQjFkR0YwYVc5dVlXd2dZMjl0Y0d4bGVHbDBlVG9nVHloc2IyY2djMmw2WlNBcklHNTFiV0psY2lCdlppQnBkR1Z0Y3lCa1pXeGxkR1ZrS1Z4eVhHNGdJQ0FnSUNvdlhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1V1WkdWc1pYUmxVbUZ1WjJVZ1BTQm1kVzVqZEdsdmJpQW9iRzkzTENCb2FXZG9MQ0JwYm1Oc2RXUmxTR2xuYUNrZ2UxeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1Wa2FYUlNZVzVuWlNoc2IzY3NJR2hwWjJnc0lHbHVZMngxWkdWSWFXZG9MQ0JFWld4bGRHVlNZVzVuWlNrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5b3FJRVJsYkdWMFpYTWdZU0J6WlhKcFpYTWdiMllnYTJWNWN5Qm1jbTl0SUhSb1pTQmpiMnhzWldOMGFXOXVMaUFxTDF4eVhHNGdJQ0FnUWxSeVpXVXVjSEp2ZEc5MGVYQmxMbVJsYkdWMFpVdGxlWE1nUFNCbWRXNWpkR2x2YmlBb2EyVjVjeWtnZTF4eVhHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F3TENCeUlEMGdNRHNnYVNBOElHdGxlWE11YkdWdVozUm9PeUJwS3lzcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1SbGJHVjBaU2hyWlhselcybGRLU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhJckt6dGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjanRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1FsUnlaV1V1Y0hKdmRHOTBlWEJsTENCY0ltaGxhV2RvZEZ3aUxDQjdYSEpjYmlBZ0lDQWdJQ0FnTHlvcUlFZGxkSE1nZEdobElHaGxhV2RvZENCdlppQjBhR1VnZEhKbFpUb2dkR2hsSUc1MWJXSmxjaUJ2WmlCcGJuUmxjbTVoYkNCdWIyUmxjeUJpWlhSM1pXVnVJSFJvWlZ4eVhHNGdJQ0FnSUNBZ0lDQXFJQ0JDVkhKbFpTQnZZbXBsWTNRZ1lXNWtJR2wwY3lCc1pXRm1JRzV2WkdWeklDaDZaWEp2SUdsbUlIUm9aWEpsSUdGeVpTQnVieUJwYm5SbGNtNWhiQ0J1YjJSbGN5a3VJQ292WEhKY2JpQWdJQ0FnSUNBZ1oyVjBPaUJtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnViMlJsSUQwZ2RHaHBjeTVmY205dmREdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR2hsYVdkb2RDQTlJQzB4TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9ibTlrWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhR1ZwWjJoMEt5czdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbElEMGdibTlrWlM1cGMweGxZV1lnUHlCMWJtUmxabWx1WldRZ09pQnViMlJsTG1Ob2FXeGtjbVZ1V3pCZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJvWldsbmFIUTdYSEpjYmlBZ0lDQWdJQ0FnZlN4Y2NseHVJQ0FnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUJtWVd4elpTeGNjbHh1SUNBZ0lDQWdJQ0JqYjI1bWFXZDFjbUZpYkdVNklIUnlkV1ZjY2x4dUlDQWdJSDBwTzF4eVhHNGdJQ0FnTHlvcUlFMWhhMlZ6SUhSb1pTQnZZbXBsWTNRZ2NtVmhaQzF2Ym14NUlIUnZJR1Z1YzNWeVpTQnBkQ0JwY3lCdWIzUWdZV05qYVdSbGJuUmhiR3g1SUcxdlpHbG1hV1ZrTGx4eVhHNGdJQ0FnSUNvZ0lFWnlaV1Y2YVc1bklHUnZaWE1nYm05MElHaGhkbVVnZEc4Z1ltVWdjR1Z5YldGdVpXNTBPeUIxYm1aeVpXVjZaU2dwSUhKbGRtVnljMlZ6SUhSb1pTQmxabVpsWTNRdVhISmNiaUFnSUNBZ0tpQWdWR2hwY3lCcGN5QmhZMk52YlhCc2FYTm9aV1FnWW5rZ2NtVndiR0ZqYVc1bklHMTFkR0YwYjNJZ1puVnVZM1JwYjI1eklIZHBkR2dnWVNCbWRXNWpkR2x2Ymx4eVhHNGdJQ0FnSUNvZ0lIUm9ZWFFnZEdoeWIzZHpJR0Z1SUVWeWNtOXlMaUJEYjIxd1lYSmxaQ0IwYnlCMWMybHVaeUJoSUhCeWIzQmxjblI1SUNobExtY3VJSFJvYVhNdWFYTkdjbTk2Wlc0cFhISmNiaUFnSUNBZ0tpQWdkR2hwY3lCcGJYQnNaVzFsYm5SaGRHbHZiaUJuYVhabGN5QmlaWFIwWlhJZ2NHVnlabTl5YldGdVkyVWdhVzRnYm05dUxXWnliM3BsYmlCQ1ZISmxaWE11WEhKY2JpQWdJQ0FnS2k5Y2NseHVJQ0FnSUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVtY21WbGVtVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhRZ1BTQjBhR2x6TzF4eVhHNGdJQ0FnSUNBZ0lDOHZJRTV2ZEdVNklHRnNiQ0J2ZEdobGNpQnRkWFJoZEc5eWN5QjFiSFJwYldGMFpXeDVJR05oYkd3Z2MyVjBLQ2tnYjNJZ1pXUnBkRkpoYm1kbEtDa2dYSEpjYmlBZ0lDQWdJQ0FnTHk4Z0lDQWdJQ0FnYzI4Z2QyVWdaRzl1SjNRZ2JtVmxaQ0IwYnlCdmRtVnljbWxrWlNCMGFHOXpaU0J2ZEdobGNuTXVYSEpjYmlBZ0lDQWdJQ0FnZEM1amJHVmhjaUE5SUhRdWMyVjBJRDBnZEM1bFpHbDBVbUZ1WjJVZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJa0YwZEdWdGNIUmxaQ0IwYnlCdGIyUnBabmtnWVNCbWNtOTZaVzRnUWxSeVpXVmNJaWs3WEhKY2JpQWdJQ0FnSUNBZ2ZUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZLaW9nUlc1emRYSmxjeUJ0ZFhSaGRHbHZibk1nWVhKbElHRnNiRzkzWldRc0lISmxkbVZ5YzJsdVp5QjBhR1VnWldabVpXTjBJRzltSUdaeVpXVjZaU2dwTGlBcUwxeHlYRzRnSUNBZ1FsUnlaV1V1Y0hKdmRHOTBlWEJsTG5WdVpuSmxaWHBsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVWdYQ0pVYUdVZ2IzQmxjbUZ1WkNCdlppQmhJQ2RrWld4bGRHVW5JRzl3WlhKaGRHOXlJRzExYzNRZ1ltVWdiM0IwYVc5dVlXd3VYQ0pjY2x4dUlDQWdJQ0FnSUNBdkx5QWdJQ0FnSUNBZ0lDQWdJQ2gzY205dVp6b2daR1ZzWlhSbElHUnZaWE1nYm05MElHRm1abVZqZENCMGFHVWdjSEp2ZEc5MGVYQmxMaWxjY2x4dUlDQWdJQ0FnSUNCa1pXeGxkR1VnZEdocGN5NWpiR1ZoY2p0Y2NseHVJQ0FnSUNBZ0lDQXZMeUJBZEhNdGFXZHViM0psWEhKY2JpQWdJQ0FnSUNBZ1pHVnNaWFJsSUhSb2FYTXVjMlYwTzF4eVhHNGdJQ0FnSUNBZ0lDOHZJRUIwY3kxcFoyNXZjbVZjY2x4dUlDQWdJQ0FnSUNCa1pXeGxkR1VnZEdocGN5NWxaR2wwVW1GdVoyVTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0VKVWNtVmxMbkJ5YjNSdmRIbHdaU3dnWENKcGMwWnliM3BsYmx3aUxDQjdYSEpjYmlBZ0lDQWdJQ0FnTHlvcUlGSmxkSFZ5Ym5NZ2RISjFaU0JwWmlCMGFHVWdkSEpsWlNCaGNIQmxZWEp6SUhSdklHSmxJR1p5YjNwbGJpNGdLaTljY2x4dUlDQWdJQ0FnSUNCblpYUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWFHRnpUM2R1VUhKdmNHVnlkSGtvSjJWa2FYUlNZVzVuWlNjcE8xeHlYRzRnSUNBZ0lDQWdJSDBzWEhKY2JpQWdJQ0FnSUNBZ1pXNTFiV1Z5WVdKc1pUb2dabUZzYzJVc1hISmNiaUFnSUNBZ0lDQWdZMjl1Wm1sbmRYSmhZbXhsT2lCMGNuVmxYSEpjYmlBZ0lDQjlLVHRjY2x4dUlDQWdJQzhxS2lCVFkyRnVjeUIwYUdVZ2RISmxaU0JtYjNJZ2MybG5ibk1nYjJZZ2MyVnlhVzkxY3lCaWRXZHpJQ2hsTG1jdUlIUm9hWE11YzJsNlpTQmtiMlZ6YmlkMElHMWhkR05vWEhKY2JpQWdJQ0FnS2lBZ2JuVnRZbVZ5SUc5bUlHVnNaVzFsYm5SekxDQnBiblJsY201aGJDQnViMlJsY3lCdWIzUWdZMkZqYUdsdVp5QnRZWGdnWld4bGJXVnVkQ0J3Y205d1pYSnNlUzR1TGlsY2NseHVJQ0FnSUNBcUlDQkRiMjF3ZFhSaGRHbHZibUZzSUdOdmJYQnNaWGhwZEhrNklFOG9iblZ0WW1WeUlHOW1JRzV2WkdWektTd2dhUzVsTGlCUEtITnBlbVVwTGlCVWFHbHpJRzFsZEdodlpGeHlYRzRnSUNBZ0lDb2dJSE5yYVhCeklIUm9aU0J0YjNOMElHVjRjR1Z1YzJsMlpTQjBaWE4wSUMwZ2QyaGxkR2hsY2lCaGJHd2dhMlY1Y3lCaGNtVWdjMjl5ZEdWa0lDMGdZblYwSUdsMFhISmNiaUFnSUNBZ0tpQWdaRzlsY3lCamFHVmpheUIwYUdGMElHMWhlRXRsZVNncElHOW1JSFJvWlNCamFHbHNaSEpsYmlCdlppQnBiblJsY201aGJDQnViMlJsY3lCaGNtVWdjMjl5ZEdWa0xpQXFMMXh5WEc0Z0lDQWdRbFJ5WldVdWNISnZkRzkwZVhCbExtTm9aV05yVm1Gc2FXUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhOcGVtVWdQU0IwYUdsekxsOXliMjkwTG1Ob1pXTnJWbUZzYVdRb01Dd2dkR2hwY3l3Z01DazdYSEpjYmlBZ0lDQWdJQ0FnWTJobFkyc29jMmw2WlNBOVBUMGdkR2hwY3k1emFYcGxMQ0JjSW5OcGVtVWdiV2x6YldGMFkyZzZJR052ZFc1MFpXUWdYQ0lzSUhOcGVtVXNJRndpWW5WMElITjBiM0psWkZ3aUxDQjBhR2x6TG5OcGVtVXBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJSEpsZEhWeWJpQkNWSEpsWlR0Y2NseHVmU2dwS1R0Y2NseHVaWGh3YjNKMGN5NWtaV1poZFd4MElEMGdRbFJ5WldVN1hISmNiaThxS2lCQklGUjVjR1ZUWTNKcGNIUWdhR1ZzY0dWeUlHWjFibU4wYVc5dUlIUm9ZWFFnYzJsdGNHeDVJSEpsZEhWeWJuTWdhWFJ6SUdGeVozVnRaVzUwTENCMGVYQmxaQ0JoYzF4eVhHNGdLaUFnWUVsVGIzSjBaV1JUWlhROFN6NWdJR2xtSUhSb1pTQkNWSEpsWlNCcGJYQnNaVzFsYm5SeklHbDBMQ0JoY3lCcGRDQmtiMlZ6SUdsbUlHQldJR1Y0ZEdWdVpITWdkVzVrWldacGJtVmtZQzVjY2x4dUlDb2dJRWxtSUdCV1lDQmpZVzV1YjNRZ1ltVWdZSFZ1WkdWbWFXNWxaR0FzSUdsMElISmxkSFZ5Ym5NZ1lIVnVhMjV2ZDI1Z0lHbHVjM1JsWVdRdUlFOXlJR0YwSUd4bFlYTjBMQ0IwYUdGMFhISmNiaUFxSUNCM1lYTWdkR2hsSUdsdWRHVnVkR2x2Yml3Z1luVjBJRlI1Y0dWVFkzSnBjSFFnYVhNZ1lXTjBhVzVuSUhkbGFYSmtJR0Z1WkNCdFlYa2djbVYwZFhKdUlHQkpVMjl5ZEdWa1UyVjBQRXMrWUZ4eVhHNGdLaUFnWlhabGJpQnBaaUJnVm1BZ1kyRnVKM1FnWW1VZ1lIVnVaR1ZtYVc1bFpHQWdLR1JwYzJOMWMzTnBiMjQ2SUdKMGNtVmxMWFI1Y0dWelkzSnBjSFFnYVhOemRXVWdJekUwS1NBcUwxeHlYRzVtZFc1amRHbHZiaUJoYzFObGRDaGlkSEpsWlNrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUdKMGNtVmxPMXh5WEc1OVhISmNibVY0Y0c5eWRITXVZWE5UWlhRZ1BTQmhjMU5sZER0Y2NseHVhV1lnS0ZONWJXSnZiQ0FtSmlCVGVXMWliMnd1YVhSbGNtRjBiM0lwSUM4dklHbDBaWEpoZEc5eUlHbHpJR1Z4ZFdsMllXeGxiblFnZEc4Z1pXNTBjbWxsY3lncFhISmNiaUFnSUNCQ1ZISmxaUzV3Y205MGIzUjVjR1ZiVTNsdFltOXNMbWwwWlhKaGRHOXlYU0E5SUVKVWNtVmxMbkJ5YjNSdmRIbHdaUzVsYm5SeWFXVnpPMXh5WEc1Q1ZISmxaUzV3Y205MGIzUjVjR1V1ZDJobGNtVWdQU0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVabWxzZEdWeU8xeHlYRzVDVkhKbFpTNXdjbTkwYjNSNWNHVXVjMlYwVW1GdVoyVWdQU0JDVkhKbFpTNXdjbTkwYjNSNWNHVXVjMlYwVUdGcGNuTTdYSEpjYmtKVWNtVmxMbkJ5YjNSdmRIbHdaUzVoWkdRZ1BTQkNWSEpsWlM1d2NtOTBiM1I1Y0dVdWMyVjBPeUF2THlCbWIzSWdZMjl0Y0dGMGFXSnBiR2wwZVNCM2FYUm9JRWxUWlhSVGFXNXJQRXMrWEhKY2JtWjFibU4wYVc5dUlHbDBaWEpoZEc5eUtHNWxlSFFwSUh0Y2NseHVJQ0FnSUdsbUlDaHVaWGgwSUQwOVBTQjJiMmxrSURBcElIc2dibVY0ZENBOUlDaG1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUFvZXlCa2IyNWxPaUIwY25WbExDQjJZV3gxWlRvZ2RXNWtaV1pwYm1Wa0lIMHBPeUI5S1RzZ2ZWeHlYRzRnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJSHNnYm1WNGREb2dibVY0ZENCOU8xeHlYRzRnSUNBZ2FXWWdLRk41YldKdmJDQW1KaUJUZVcxaWIyd3VhWFJsY21GMGIzSXBYSEpjYmlBZ0lDQWdJQ0FnY21WemRXeDBXMU41YldKdmJDNXBkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaUFvS1NCN0lISmxkSFZ5YmlCMGFHbHpPeUI5TzF4eVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNjbHh1ZlZ4eVhHNHZLaW9nVEdWaFppQnViMlJsSUM4Z1ltRnpaU0JqYkdGemN5NGdLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvdlhISmNiblpoY2lCQ1RtOWtaU0E5SUM4cUtpQkFZMnhoYzNNZ0tpOGdLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUVKT2IyUmxLR3RsZVhNc0lIWmhiSFZsY3lrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNoclpYbHpJRDA5UFNCMmIybGtJREFwSUhzZ2EyVjVjeUE5SUZ0ZE95QjlYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6SUQwZ2EyVjVjenRjY2x4dUlDQWdJQ0FnSUNCMGFHbHpMblpoYkhWbGN5QTlJSFpoYkhWbGN5QjhmQ0IxYm1SbFpsWmhiSE03WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYzFOb1lYSmxaQ0E5SUhWdVpHVm1hVzVsWkR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaENUbTlrWlM1d2NtOTBiM1I1Y0dVc0lGd2lhWE5NWldGbVhDSXNJSHRjY2x4dUlDQWdJQ0FnSUNCblpYUTZJR1oxYm1OMGFXOXVJQ2dwSUhzZ2NtVjBkWEp1SUhSb2FYTXVZMmhwYkdSeVpXNGdQVDA5SUhWdVpHVm1hVzVsWkRzZ2ZTeGNjbHh1SUNBZ0lDQWdJQ0JsYm5WdFpYSmhZbXhsT2lCbVlXeHpaU3hjY2x4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdWY2NseHVJQ0FnSUgwcE8xeHlYRzRnSUNBZ0x5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYSEpjYmlBZ0lDQXZMeUJUYUdGeVpXUWdiV1YwYUc5a2N5QXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJRUpPYjJSbExuQnliM1J2ZEhsd1pTNXRZWGhMWlhrZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhMlY1YzF0MGFHbHpMbXRsZVhNdWJHVnVaM1JvSUMwZ01WMDdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeThnU1dZZ2EyVjVJRzV2ZENCbWIzVnVaQ3dnY21WMGRYSnVjeUJwWG1aaGFXeFliM0lnZDJobGNtVWdhU0JwY3lCMGFHVWdhVzV6WlhKMGFXOXVJR2x1WkdWNExseHlYRzRnSUNBZ0x5OGdRMkZzYkdWeWN5QjBhR0YwSUdSdmJpZDBJR05oY21VZ2QyaGxkR2hsY2lCMGFHVnlaU0IzWVhNZ1lTQnRZWFJqYUNCM2FXeHNJSE5sZENCbVlXbHNXRzl5UFRBdVhISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1YVc1a1pYaFBaaUE5SUdaMWJtTjBhVzl1SUNoclpYa3NJR1poYVd4WWIzSXNJR050Y0NrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCclpYbHpJRDBnZEdocGN5NXJaWGx6TzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJzYnlBOUlEQXNJR2hwSUQwZ2EyVjVjeTVzWlc1bmRHZ3NJRzFwWkNBOUlHaHBJRDQrSURFN1hISmNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHeHZJRHdnYUdrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR01nUFNCamJYQW9hMlY1YzF0dGFXUmRMQ0JyWlhrcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZeUE4SURBcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNieUE5SUcxcFpDQXJJREU3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR01nUGlBd0tTQXZMeUJyWlhrZ1BDQnJaWGx6VzIxcFpGMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2hwSUQwZ2JXbGtPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGpJRDA5UFNBd0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMXBaRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJqSUdseklFNWhUaUJ2Y2lCdmRHaGxjbmRwYzJVZ2FXNTJZV3hwWkZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVNBOVBUMGdhMlY1S1NBdkx5QmhkQ0JzWldGemRDQjBhR1VnYzJWaGNtTm9JR3RsZVNCcGN5QnViM1FnVG1GT1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR3RsZVhNdWJHVnVaM1JvTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY0lrSlVjbVZsT2lCT1lVNGdkMkZ6SUhWelpXUWdZWE1nWVNCclpYbGNJaWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdiV2xrSUQwZ0tHeHZJQ3NnYUdrcElENCtJREU3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnRhV1FnWGlCbVlXbHNXRzl5TzF4eVhHNGdJQ0FnSUNBZ0lDOHZJRlZ1Y205c2JHVmtJSFpsY25OcGIyNDZJR0psYm1Ob2JXRnlhM01nYzJodmR5QnpZVzFsSUhOd1pXVmtMQ0J1YjNRZ2QyOXlkR2dnZFhOcGJtZGNjbHh1SUNBZ0lDQWdJQ0F2S25aaGNpQnBJRDBnTVN3Z1l6b2diblZ0WW1WeUlEMGdNQ3dnYzNWdElEMGdNRHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hMlY1Y3k1c1pXNW5kR2dnUGowZ05Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ2FTQTlJRE03WEhKY2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYTJWNWN5NXNaVzVuZEdnZ1BqMGdPQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwSUQwZ056dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVhNdWJHVnVaM1JvSUQ0OUlERTJLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBOUlERTFPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbHpMbXhsYm1kMGFDQStQU0F6TWlrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0E5SURNeE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d0bGVYTXViR1Z1WjNSb0lENDlJRFkwS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2tnUFNBeE1qYzdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrZ0t6MGdLR01nUFNCcElEd2dhMlY1Y3k1c1pXNW5kR2dnUHlCamJYQW9hMlY1YzF0cFhTd2dhMlY1S1NBNklERXBJRHdnTUNBL0lEWTBJRG9nTFRZME8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZFcwZ0t6MGdZenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQXJQU0FvWXlBOUlHa2dQQ0JyWlhsekxteGxibWQwYUNBL0lHTnRjQ2hyWlhselcybGRMQ0JyWlhrcElEb2dNU2tnUENBd0lEOGdNeklnT2lBdE16STdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMWJTQXJQU0JqTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBb1l5QTlJR2tnUENCclpYbHpMbXhsYm1kMGFDQS9JR050Y0NoclpYbHpXMmxkTENCclpYa3BJRG9nTVNrZ1BDQXdJRDhnTVRZZ09pQXRNVFk3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRXMGdLejBnWXp0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FTQXJQU0FvWXlBOUlHa2dQQ0JyWlhsekxteGxibWQwYUNBL0lHTnRjQ2hyWlhselcybGRMQ0JyWlhrcElEb2dNU2tnUENBd0lEOGdPQ0E2SUMwNE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITjFiU0FyUFNCak8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdrZ0t6MGdLR01nUFNCcElEd2dhMlY1Y3k1c1pXNW5kR2dnUHlCamJYQW9hMlY1YzF0cFhTd2dhMlY1S1NBNklERXBJRHdnTUNBL0lEUWdPaUF0TkR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYzNWdElDczlJR003WEhKY2JpQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNCcElDczlJQ2hqSUQwZ2FTQThJR3RsZVhNdWJHVnVaM1JvSUQ4Z1kyMXdLR3RsZVhOYmFWMHNJR3RsZVNrZ09pQXhLU0E4SURBZ1B5QXlJRG9nTFRJN1hISmNiaUFnSUNBZ0lDQWdJQ0J6ZFcwZ0t6MGdZenRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhU0FyUFNBb1l5QTlJR2tnUENCclpYbHpMbXhsYm1kMGFDQS9JR050Y0NoclpYbHpXMmxkTENCclpYa3BJRG9nTVNrZ1BDQXdJRDhnTVNBNklDMHhPMXh5WEc0Z0lDQWdJQ0FnSUdNZ1BTQnBJRHdnYTJWNWN5NXNaVzVuZEdnZ1B5QmpiWEFvYTJWNWMxdHBYU3dnYTJWNUtTQTZJREU3WEhKY2JpQWdJQ0FnSUNBZ2MzVnRJQ3M5SUdNN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0dNZ1BDQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQXJLMms3WEhKY2JpQWdJQ0FnSUNBZ0lDQmpJRDBnYVNBOElHdGxlWE11YkdWdVozUm9JRDhnWTIxd0tHdGxlWE5iYVYwc0lHdGxlU2tnT2lBeE8xeHlYRzRnSUNBZ0lDQWdJQ0FnYzNWdElDczlJR003WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR2xtSUNoemRXMGdJVDA5SUhOMWJTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVNBOVBUMGdhMlY1S1NBdkx5QmhkQ0JzWldGemRDQjBhR1VnYzJWaGNtTm9JR3RsZVNCcGN5QnViM1FnVG1GT1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJyWlhsekxteGxibWQwYUNCZUlHWmhhV3hZYjNJN1hISmNiaUFnSUNBZ0lDQWdJQ0JsYkhObFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWtKVWNtVmxPaUJPWVU0Z2QyRnpJSFZ6WldRZ1lYTWdZU0JyWlhsY0lpazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaklEMDlQU0F3SUQ4Z2FTQTZJR2tnWGlCbVlXbHNXRzl5T3lvdlhISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ0x5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljY2x4dUlDQWdJQzh2SUV4bFlXWWdUbTlrWlRvZ2JXbHpZeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1YldsdVMyVjVJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG10bGVYTmJNRjA3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnUWs1dlpHVXVjSEp2ZEc5MGVYQmxMbTFwYmxCaGFYSWdQU0JtZFc1amRHbHZiaUFvY21WMWMyVmtRWEp5WVhrcElIdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVyWlhsekxteGxibWQwYUNBOVBUMGdNQ2xjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNjbHh1SUNBZ0lDQWdJQ0J5WlhWelpXUkJjbkpoZVZzd1hTQTlJSFJvYVhNdWEyVjVjMXN3WFR0Y2NseHVJQ0FnSUNBZ0lDQnlaWFZ6WldSQmNuSmhlVnN4WFNBOUlIUm9hWE11ZG1Gc2RXVnpXekJkTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYVnpaV1JCY25KaGVUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWJXRjRVR0ZwY2lBOUlHWjFibU4wYVc5dUlDaHlaWFZ6WldSQmNuSmhlU2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtdGxlWE11YkdWdVozUm9JRDA5UFNBd0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJzWVhOMFNXNWtaWGdnUFNCMGFHbHpMbXRsZVhNdWJHVnVaM1JvSUMwZ01UdGNjbHh1SUNBZ0lDQWdJQ0J5WlhWelpXUkJjbkpoZVZzd1hTQTlJSFJvYVhNdWEyVjVjMXRzWVhOMFNXNWtaWGhkTzF4eVhHNGdJQ0FnSUNBZ0lISmxkWE5sWkVGeWNtRjVXekZkSUQwZ2RHaHBjeTUyWVd4MVpYTmJiR0Z6ZEVsdVpHVjRYVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WMWMyVmtRWEp5WVhrN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1V1Y0hKdmRHOTBlWEJsTG1Oc2IyNWxJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCMklEMGdkR2hwY3k1MllXeDFaWE03WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkNUbTlrWlNoMGFHbHpMbXRsZVhNdWMyeHBZMlVvTUNrc0lIWWdQVDA5SUhWdVpHVm1WbUZzY3lBL0lIWWdPaUIyTG5Oc2FXTmxLREFwS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1WjNKbFpXUjVRMnh2Ym1VZ1BTQm1kVzVqZEdsdmJpQW9abTl5WTJVcElIdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1cGMxTm9ZWEpsWkNBbUppQWhabTl5WTJVZ1B5QjBhR2x6SURvZ2RHaHBjeTVqYkc5dVpTZ3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbExuQnliM1J2ZEhsd1pTNW5aWFFnUFNCbWRXNWpkR2x2YmlBb2EyVjVMQ0JrWldaaGRXeDBWbUZzZFdVc0lIUnlaV1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVNBOUlIUm9hWE11YVc1a1pYaFBaaWhyWlhrc0lDMHhMQ0IwY21WbExsOWpiMjF3WVhKbEtUdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhU0E4SURBZ1B5QmtaV1poZFd4MFZtRnNkV1VnT2lCMGFHbHpMblpoYkhWbGMxdHBYVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVG05a1pTNXdjbTkwYjNSNWNHVXVaMlYwVUdGcGNrOXlUbVY0ZEV4dmQyVnlJRDBnWm5WdVkzUnBiMjRnS0d0bGVTd2dZMjl0Y0dGeVpTd2dhVzVqYkhWemFYWmxMQ0J5WlhWelpXUkJjbkpoZVNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcElEMGdkR2hwY3k1cGJtUmxlRTltS0d0bGVTd2dMVEVzSUdOdmJYQmhjbVVwTzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJwYm1SbGVFOXlURzkzWlhJZ1BTQnBJRHdnTUNBL0lINXBJQzBnTVNBNklDaHBibU5zZFhOcGRtVWdQeUJwSURvZ2FTQXRJREVwTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm1SbGVFOXlURzkzWlhJZ1BqMGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhWelpXUkJjbkpoZVZzd1hTQTlJSFJvYVhNdWEyVjVjMXRwYm1SbGVFOXlURzkzWlhKZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYVnpaV1JCY25KaGVWc3hYU0E5SUhSb2FYTXVkbUZzZFdWelcybHVaR1Y0VDNKTWIzZGxjbDA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWFZ6WldSQmNuSmhlVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdVoyVjBVR0ZwY2s5eVRtVjRkRWhwWjJobGNpQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lHTnZiWEJoY21Vc0lHbHVZMngxYzJsMlpTd2djbVYxYzJWa1FYSnlZWGtwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVNBOUlIUm9hWE11YVc1a1pYaFBaaWhyWlhrc0lDMHhMQ0JqYjIxd1lYSmxLVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdhVzVrWlhoUGNreHZkMlZ5SUQwZ2FTQThJREFnUHlCK2FTQTZJQ2hwYm1Oc2RYTnBkbVVnUHlCcElEb2dhU0FySURFcE8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCclpYbHpJRDBnZEdocGN5NXJaWGx6TzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm1SbGVFOXlURzkzWlhJZ1BDQnJaWGx6TG14bGJtZDBhQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhWelpXUkJjbkpoZVZzd1hTQTlJR3RsZVhOYmFXNWtaWGhQY2t4dmQyVnlYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYxYzJWa1FYSnlZWGxiTVYwZ1BTQjBhR2x6TG5aaGJIVmxjMXRwYm1SbGVFOXlURzkzWlhKZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WMWMyVmtRWEp5WVhrN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnUWs1dlpHVXVjSEp2ZEc5MGVYQmxMbU5vWldOclZtRnNhV1FnUFNCbWRXNWpkR2x2YmlBb1pHVndkR2dzSUhSeVpXVXNJR0poYzJWSmJtUmxlQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJyVENBOUlIUm9hWE11YTJWNWN5NXNaVzVuZEdnc0lIWk1JRDBnZEdocGN5NTJZV3gxWlhNdWJHVnVaM1JvTzF4eVhHNGdJQ0FnSUNBZ0lHTm9aV05yS0hSb2FYTXVkbUZzZFdWeklEMDlQU0IxYm1SbFpsWmhiSE1nUHlCclRDQThQU0IyVENBNklHdE1JRDA5UFNCMlRDd2dYQ0pyWlhsekwzWmhiSFZsY3lCc1pXNW5kR2dnYldsemJXRjBZMmc2SUdSbGNIUm9YQ0lzSUdSbGNIUm9MQ0JjSW5kcGRHZ2diR1Z1WjNSb2Mxd2lMQ0JyVEN3Z2Rrd3NJRndpWVc1a0lHSmhjMlZKYm1SbGVGd2lMQ0JpWVhObFNXNWtaWGdwTzF4eVhHNGdJQ0FnSUNBZ0lDOHZJRTV2ZEdVNklIZGxJR1J2YmlkMElHTm9aV05ySUdadmNpQmNJbTV2WkdVZ2RHOXZJSE50WVd4c1hDSWdZbVZqWVhWelpTQnpiMjFsZEdsdFpYTWdZU0J1YjJSbFhISmNiaUFnSUNBZ0lDQWdMeThnWTJGdUlHeGxaMmwwYVcxaGRHVnNlU0JvWVhabElITnBlbVVnTVM0Z1ZHaHBjeUJ2WTJOMWNuTWdhV1lnZEdobGNtVWdhWE1nWVNCaVlYUmphQ0JjY2x4dUlDQWdJQ0FnSUNBdkx5QmtaV3hsZEdsdmJpd2diR1ZoZG1sdVp5QmhJRzV2WkdVZ2IyWWdjMmw2WlNBeExDQmhibVFnZEdobElITnBZbXhwYm1keklHRnlaU0JtZFd4c0lITnZYSEpjYmlBZ0lDQWdJQ0FnTHk4Z2FYUWdZMkZ1SjNRZ1ltVWdiV1Z5WjJWa0lIZHBkR2dnWVdScVlXTmxiblFnYm05a1pYTXVJRWh2ZDJWMlpYSXNJSFJvWlNCd1lYSmxiblFnZDJsc2JGeHlYRzRnSUNBZ0lDQWdJQzh2SUhabGNtbG1lU0IwYUdGMElIUm9aU0JoZG1WeVlXZGxJRzV2WkdVZ2MybDZaU0JwY3lCaGRDQnNaV0Z6ZENCb1lXeG1JRzltSUhSb1pTQnRZWGhwYlhWdExseHlYRzRnSUNBZ0lDQWdJR05vWldOcktHUmxjSFJvSUQwOUlEQWdmSHdnYTB3Z1BpQXdMQ0JjSW1WdGNIUjVJR3hsWVdZZ1lYUWdaR1Z3ZEdoY0lpd2daR1Z3ZEdnc0lGd2lZVzVrSUdKaGMyVkpibVJsZUZ3aUxDQmlZWE5sU1c1a1pYZ3BPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJyVER0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdMeThnVEdWaFppQk9iMlJsT2lCelpYUWdKaUJ1YjJSbElITndiR2wwZEdsdVp5QXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2NseHVJQ0FnSUVKT2IyUmxMbkJ5YjNSdmRIbHdaUzV6WlhRZ1BTQm1kVzVqZEdsdmJpQW9hMlY1TENCMllXeDFaU3dnYjNabGNuZHlhWFJsTENCMGNtVmxLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR2tnUFNCMGFHbHpMbWx1WkdWNFQyWW9hMlY1TENBdE1Td2dkSEpsWlM1ZlkyOXRjR0Z5WlNrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0drZ1BDQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd0bGVTQmtiMlZ6SUc1dmRDQmxlR2x6ZENCNVpYUmNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJSDVwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IwY21WbExsOXphWHBsS3lzN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG10bGVYTXViR1Z1WjNSb0lEd2dkSEpsWlM1ZmJXRjRUbTlrWlZOcGVtVXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHVjMlZ5ZEVsdVRHVmhaaWhwTENCclpYa3NJSFpoYkhWbExDQjBjbVZsS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUZSb2FYTWdiR1ZoWmlCdWIyUmxJR2x6SUdaMWJHd2dZVzVrSUcxMWMzUWdjM0JzYVhSY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ1WlhkU2FXZG9kRk5wWW14cGJtY2dQU0IwYUdsekxuTndiR2wwVDJabVVtbG5hSFJUYVdSbEtDa3NJSFJoY21kbGRDQTlJSFJvYVhNN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVNBK0lIUm9hWE11YTJWNWN5NXNaVzVuZEdncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDMDlJSFJvYVhNdWEyVjVjeTVzWlc1bmRHZzdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHRnlaMlYwSUQwZ2JtVjNVbWxuYUhSVGFXSnNhVzVuTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR0Z5WjJWMExtbHVjMlZ5ZEVsdVRHVmhaaWhwTENCclpYa3NJSFpoYkhWbExDQjBjbVZsS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYZFNhV2RvZEZOcFlteHBibWM3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFdGxlU0JoYkhKbFlXUjVJR1Y0YVhOMGMxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iM1psY25keWFYUmxJQ0U5UFNCbVlXeHpaU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElDRTlQU0IxYm1SbFptbHVaV1FwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1eVpXbG1lVlpoYkhWbGN5Z3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2RYTjFZV3hzZVNCMGFHbHpJR2x6SUdFZ2JtOHRiM0FzSUdKMWRDQnpiMjFsSUhWelpYSnpJRzFoZVNCM2FYTm9JSFJ2SUdWa2FYUWdkR2hsSUd0bGVWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1clpYbHpXMmxkSUQwZ2EyVjVPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTJZV3gxWlhOYmFWMGdQU0IyWVd4MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxMbkJ5YjNSdmRIbHdaUzV5WldsbWVWWmhiSFZsY3lBOUlHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1MllXeDFaWE1nUFQwOUlIVnVaR1ZtVm1Gc2N5bGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkbUZzZFdWeklEMGdkR2hwY3k1MllXeDFaWE11YzJ4cFkyVW9NQ3dnZEdocGN5NXJaWGx6TG14bGJtZDBhQ2s3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkbUZzZFdWek8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lFSk9iMlJsTG5CeWIzUnZkSGx3WlM1cGJuTmxjblJKYmt4bFlXWWdQU0JtZFc1amRHbHZiaUFvYVN3Z2EyVjVMQ0IyWVd4MVpTd2dkSEpsWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFJvYVhNdWEyVjVjeTV6Y0d4cFkyVW9hU3dnTUN3Z2EyVjVLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1MllXeDFaWE1nUFQwOUlIVnVaR1ZtVm1Gc2N5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjNhR2xzWlNBb2RXNWtaV1pXWVd4ekxteGxibWQwYUNBOElIUnlaV1V1WDIxaGVFNXZaR1ZUYVhwbEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkVzVrWldaV1lXeHpMbkIxYzJnb2RXNWtaV1pwYm1Wa0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4MVpYTWdQU0IxYm1SbFpsWmhiSE11YzJ4cFkyVW9NQ3dnZEdocGN5NXJaWGx6TG14bGJtZDBhQ0F0SURFcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkbUZzZFdWekxuTndiR2xqWlNocExDQXdMQ0IyWVd4MVpTazdYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hISmNiaUFnSUNCOU8xeHlYRzRnSUNBZ1FrNXZaR1V1Y0hKdmRHOTBlWEJsTG5SaGEyVkdjbTl0VW1sbmFIUWdQU0JtZFc1amRHbHZiaUFvY21oektTQjdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1VtVnRhVzVrWlhJNklIQmhjbVZ1ZENCdWIyUmxJRzExYzNRZ2RYQmtZWFJsSUdsMGN5QmpiM0I1SUc5bUlHdGxlU0JtYjNJZ2RHaHBjeUJ1YjJSbFhISmNiaUFnSUNBZ0lDQWdMeThnWVhOelpYSjBPaUJ1WldsMGFHVnlJRzV2WkdVZ2FYTWdjMmhoY21Wa1hISmNiaUFnSUNBZ0lDQWdMeThnWVhOelpYSjBJSEpvY3k1clpYbHpMbXhsYm1kMGFDQStJQ2h0WVhoT2IyUmxVMmw2WlM4eUlDWW1JSFJvYVhNdWEyVjVjeTVzWlc1bmRHZzhiV0Y0VG05a1pWTnBlbVVwWEhKY2JpQWdJQ0FnSUNBZ2RtRnlJSFlnUFNCMGFHbHpMblpoYkhWbGN6dGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2NtaHpMblpoYkhWbGN5QTlQVDBnZFc1a1pXWldZV3h6S1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDJJQ0U5UFNCMWJtUmxabFpoYkhNcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJMbkIxYzJnb2RXNWtaV1pwYm1Wa0tUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFlnUFNCMGFHbHpMbkpsYVdaNVZtRnNkV1Z6S0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhZdWNIVnphQ2h5YUhNdWRtRnNkV1Z6TG5Ob2FXWjBLQ2twTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0IwYUdsekxtdGxlWE11Y0hWemFDaHlhSE11YTJWNWN5NXphR2xtZENncEtUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQkNUbTlrWlM1d2NtOTBiM1I1Y0dVdWRHRnJaVVp5YjIxTVpXWjBJRDBnWm5WdVkzUnBiMjRnS0d4b2N5a2dlMXh5WEc0Z0lDQWdJQ0FnSUM4dklGSmxiV2x1WkdWeU9pQndZWEpsYm5RZ2JtOWtaU0J0ZFhOMElIVndaR0YwWlNCcGRITWdZMjl3ZVNCdlppQnJaWGtnWm05eUlIUm9hWE1nYm05a1pWeHlYRzRnSUNBZ0lDQWdJQzh2SUdGemMyVnlkRG9nYm1WcGRHaGxjaUJ1YjJSbElHbHpJSE5vWVhKbFpGeHlYRzRnSUNBZ0lDQWdJQzh2SUdGemMyVnlkQ0J5YUhNdWEyVjVjeTVzWlc1bmRHZ2dQaUFvYldGNFRtOWtaVk5wZW1Vdk1pQW1KaUIwYUdsekxtdGxlWE11YkdWdVozUm9QRzFoZUU1dlpHVlRhWHBsS1Z4eVhHNGdJQ0FnSUNBZ0lIWmhjaUIySUQwZ2RHaHBjeTUyWVd4MVpYTTdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHeG9jeTUyWVd4MVpYTWdQVDA5SUhWdVpHVm1WbUZzY3lrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kaUFoUFQwZ2RXNWtaV1pXWVd4ektWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkaTUxYm5Ob2FXWjBLSFZ1WkdWbWFXNWxaQ2s3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMklEMGdkR2hwY3k1eVpXbG1lVlpoYkhWbGN5Z3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJMblZ1YzJocFpuUW9iR2h6TG5aaGJIVmxjeTV3YjNBb0tTazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11YTJWNWN5NTFibk5vYVdaMEtHeG9jeTVyWlhsekxuQnZjQ2dwS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1YzNCc2FYUlBabVpTYVdkb2RGTnBaR1VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1VtVnRhVzVrWlhJNklIQmhjbVZ1ZENCdWIyUmxJRzExYzNRZ2RYQmtZWFJsSUdsMGN5QmpiM0I1SUc5bUlHdGxlU0JtYjNJZ2RHaHBjeUJ1YjJSbFhISmNiaUFnSUNBZ0lDQWdkbUZ5SUdoaGJHWWdQU0IwYUdsekxtdGxlWE11YkdWdVozUm9JRDQrSURFc0lHdGxlWE1nUFNCMGFHbHpMbXRsZVhNdWMzQnNhV05sS0doaGJHWXBPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQjJZV3gxWlhNZ1BTQjBhR2x6TG5aaGJIVmxjeUE5UFQwZ2RXNWtaV1pXWVd4eklEOGdkVzVrWldaV1lXeHpJRG9nZEdocGN5NTJZV3gxWlhNdWMzQnNhV05sS0doaGJHWXBPMXh5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1FrNXZaR1VvYTJWNWN5d2dkbUZzZFdWektUdGNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4eVhHNGdJQ0FnTHk4Z1RHVmhaaUJPYjJSbE9pQnpZMkZ1Ym1sdVp5QW1JR1JsYkdWMGFXOXVjeUF2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNjbHh1SUNBZ0lFSk9iMlJsTG5CeWIzUnZkSGx3WlM1bWIzSlNZVzVuWlNBOUlHWjFibU4wYVc5dUlDaHNiM2NzSUdocFoyZ3NJR2x1WTJ4MVpHVklhV2RvTENCbFpHbDBUVzlrWlN3Z2RISmxaU3dnWTI5MWJuUXNJRzl1Um05MWJtUXBJSHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdZMjF3SUQwZ2RISmxaUzVmWTI5dGNHRnlaVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdhVXh2ZHl3Z2FVaHBaMmc3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR2hwWjJnZ1BUMDlJR3h2ZHlrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2x1WTJ4MVpHVklhV2RvS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOdmRXNTBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBTR2xuYUNBOUlDaHBURzkzSUQwZ2RHaHBjeTVwYm1SbGVFOW1LR3h2ZHl3Z0xURXNJR050Y0NrcElDc2dNVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsTWIzY2dQQ0F3S1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOdmRXNTBPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVV4dmR5QTlJSFJvYVhNdWFXNWtaWGhQWmloc2IzY3NJREFzSUdOdGNDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbElhV2RvSUQwZ2RHaHBjeTVwYm1SbGVFOW1LR2hwWjJnc0lDMHhMQ0JqYlhBcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hVWhwWjJnZ1BDQXdLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVVocFoyZ2dQU0IrYVVocFoyZzdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbHVZMngxWkdWSWFXZG9JRDA5UFNCMGNuVmxLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVVocFoyZ3JLenRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdkbUZ5SUd0bGVYTWdQU0IwYUdsekxtdGxlWE1zSUhaaGJIVmxjeUE5SUhSb2FYTXVkbUZzZFdWek8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNodmJrWnZkVzVrSUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoMllYSWdhU0E5SUdsTWIzYzdJR2tnUENCcFNHbG5hRHNnYVNzcktTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2EyVjVJRDBnYTJWNWMxdHBYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQnZia1p2ZFc1a0tHdGxlU3dnZG1Gc2RXVnpXMmxkTENCamIzVnVkQ3NyS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMWJIUWdJVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxaR2wwVFc5a1pTQTlQVDBnZEhKMVpTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2EyVjVJQ0U5UFNCclpYbHpXMmxkSUh4OElIUm9hWE11YVhOVGFHRnlaV1FnUFQwOUlIUnlkV1VwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSkNWSEpsWlNCcGJHeGxaMkZzYkhrZ1kyaGhibWRsWkNCdmNpQmpiRzl1WldRZ2FXNGdaV1JwZEZKaGJtZGxYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MExtUmxiR1YwWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6TG5Od2JHbGpaU2hwTENBeEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5aaGJIVmxjeUFoUFQwZ2RXNWtaV1pXWVd4ektWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZG1Gc2RXVnpMbk53YkdsalpTaHBMQ0F4S1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ5WldVdVgzTnBlbVV0TFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2t0TFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xJYVdkb0xTMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvY21WemRXeDBMbWhoYzA5M2JsQnliM0JsY25SNUtDZDJZV3gxWlNjcEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaWE5iYVYwZ1BTQnlaWE4xYkhRdWRtRnNkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKbGMzVnNkQzVpY21WaGF5QWhQVDBnZFc1a1pXWnBibVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1ZzYzJWY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5MWJuUWdLejBnYVVocFoyZ2dMU0JwVEc5M08xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiM1Z1ZER0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNBdktpb2dRV1JrY3lCbGJuUnBjbVVnWTI5dWRHVnVkSE1nYjJZZ2NtbG5hSFF0YUdGdVpDQnphV0pzYVc1bklDaHlhSE1nYVhNZ2JHVm1kQ0IxYm1Ob1lXNW5aV1FwSUNvdlhISmNiaUFnSUNCQ1RtOWtaUzV3Y205MGIzUjVjR1V1YldWeVoyVlRhV0pzYVc1bklEMGdablZ1WTNScGIyNGdLSEpvY3l3Z1h5a2dlMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhMlY1Y3k1d2RYTm9MbUZ3Y0d4NUtIUm9hWE11YTJWNWN5d2djbWh6TG10bGVYTXBPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5aaGJIVmxjeUE5UFQwZ2RXNWtaV1pXWVd4ektTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5YUhNdWRtRnNkV1Z6SUQwOVBTQjFibVJsWmxaaGJITXBYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZG1Gc2RXVnpJRDBnZEdocGN5NTJZV3gxWlhNdWMyeHBZMlVvTUN3Z2RHaHBjeTVyWlhsekxteGxibWQwYUNrN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkbUZzZFdWekxuQjFjMmd1WVhCd2JIa29kR2hwY3k1MllXeDFaWE1zSUhKb2N5NXlaV2xtZVZaaGJIVmxjeWdwS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCeVpYUjFjbTRnUWs1dlpHVTdYSEpjYm4wb0tTazdYSEpjYmk4cUtpQkpiblJsY201aGJDQnViMlJsSUNodWIyNHRiR1ZoWmlCdWIyUmxLU0FxS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaTljY2x4dWRtRnlJRUpPYjJSbFNXNTBaWEp1WVd3Z1BTQXZLaW9nUUdOc1lYTnpJQ292SUNobWRXNWpkR2x2YmlBb1gzTjFjR1Z5S1NCN1hISmNiaUFnSUNCZlgyVjRkR1Z1WkhNb1FrNXZaR1ZKYm5SbGNtNWhiQ3dnWDNOMWNHVnlLVHRjY2x4dUlDQWdJQzhxS2x4eVhHNGdJQ0FnSUNvZ1ZHaHBjeUJrYjJWeklHNXZkQ0J0WVhKcklHQmphR2xzWkhKbGJtQWdZWE1nYzJoaGNtVmtMQ0J6YnlCcGRDQnBjeUIwYUdVZ2NtVnpjRzl1YzJsaWFXeHBkSGtnYjJZZ2RHaGxJR05oYkd4bGNseHlYRzRnSUNBZ0lDb2dkRzhnWlc1emRYSmxJR05vYVd4a2NtVnVJR0Z5WlNCbGFYUm9aWElnYldGeWEyVmtJSE5vWVhKbFpDd2diM0lnWVhKbGJpZDBJR2x1WTJ4MVpHVmtJR2x1SUdGdWIzUm9aWElnZEhKbFpTNWNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdRazV2WkdWSmJuUmxjbTVoYkNoamFHbHNaSEpsYml3Z2EyVjVjeWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJmZEdocGN5QTlJSFJvYVhNN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0NGclpYbHpLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR3RsZVhNZ1BTQmJYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoMllYSWdhU0E5SURBN0lHa2dQQ0JqYUdsc1pISmxiaTVzWlc1bmRHZzdJR2tyS3lsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlWE5iYVYwZ1BTQmphR2xzWkhKbGJsdHBYUzV0WVhoTFpYa29LVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdYM1JvYVhNZ1BTQmZjM1Z3WlhJdVkyRnNiQ2gwYUdsekxDQnJaWGx6S1NCOGZDQjBhR2x6TzF4eVhHNGdJQ0FnSUNBZ0lGOTBhR2x6TG1Ob2FXeGtjbVZ1SUQwZ1kyaHBiR1J5Wlc0N1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGOTBhR2x6TzF4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXVZMnh2Ym1VZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR05vYVd4a2NtVnVJRDBnZEdocGN5NWphR2xzWkhKbGJpNXpiR2xqWlNnd0tUdGNjbHh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ01Ec2dhU0E4SUdOb2FXeGtjbVZ1TG14bGJtZDBhRHNnYVNzcktWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCamFHbHNaSEpsYmx0cFhTNXBjMU5vWVhKbFpDQTlJSFJ5ZFdVN1hISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJDVG05a1pVbHVkR1Z5Ym1Gc0tHTm9hV3hrY21WdUxDQjBhR2x6TG10bGVYTXVjMnhwWTJVb01Da3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbFNXNTBaWEp1WVd3dWNISnZkRzkwZVhCbExtZHlaV1ZrZVVOc2IyNWxJRDBnWm5WdVkzUnBiMjRnS0dadmNtTmxLU0I3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFYTlRhR0Z5WldRZ0ppWWdJV1p2Y21ObEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ2JuVWdQU0J1WlhjZ1FrNXZaR1ZKYm5SbGNtNWhiQ2gwYUdsekxtTm9hV3hrY21WdUxuTnNhV05sS0RBcExDQjBhR2x6TG10bGVYTXVjMnhwWTJVb01Da3BPMXh5WEc0Z0lDQWdJQ0FnSUdadmNpQW9kbUZ5SUdrZ1BTQXdPeUJwSUR3Z2JuVXVZMmhwYkdSeVpXNHViR1Z1WjNSb095QnBLeXNwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJRzUxTG1Ob2FXeGtjbVZ1VzJsZElEMGdiblV1WTJocGJHUnlaVzViYVYwdVozSmxaV1I1UTJ4dmJtVW9abTl5WTJVcE8xeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkVHRjY2x4dUlDQWdJSDA3WEhKY2JpQWdJQ0JDVG05a1pVbHVkR1Z5Ym1Gc0xuQnliM1J2ZEhsd1pTNXRhVzVMWlhrZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMmhwYkdSeVpXNWJNRjB1YldsdVMyVjVLQ2s3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXViV2x1VUdGcGNpQTlJR1oxYm1OMGFXOXVJQ2h5WlhWelpXUkJjbkpoZVNrZ2UxeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1Ob2FXeGtjbVZ1V3pCZExtMXBibEJoYVhJb2NtVjFjMlZrUVhKeVlYa3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbFNXNTBaWEp1WVd3dWNISnZkRzkwZVhCbExtMWhlRkJoYVhJZ1BTQm1kVzVqZEdsdmJpQW9jbVYxYzJWa1FYSnlZWGtwSUh0Y2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYUdsc1pISmxibHQwYUdsekxtTm9hV3hrY21WdUxteGxibWQwYUNBdElERmRMbTFoZUZCaGFYSW9jbVYxYzJWa1FYSnlZWGtwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUVKT2IyUmxTVzUwWlhKdVlXd3VjSEp2ZEc5MGVYQmxMbWRsZENBOUlHWjFibU4wYVc5dUlDaHJaWGtzSUdSbFptRjFiSFJXWVd4MVpTd2dkSEpsWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcElEMGdkR2hwY3k1cGJtUmxlRTltS0d0bGVTd2dNQ3dnZEhKbFpTNWZZMjl0Y0dGeVpTa3NJR05vYVd4a2NtVnVJRDBnZEdocGN5NWphR2xzWkhKbGJqdGNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhU0E4SUdOb2FXeGtjbVZ1TG14bGJtZDBhQ0EvSUdOb2FXeGtjbVZ1VzJsZExtZGxkQ2hyWlhrc0lHUmxabUYxYkhSV1lXeDFaU3dnZEhKbFpTa2dPaUIxYm1SbFptbHVaV1E3WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXVaMlYwVUdGcGNrOXlUbVY0ZEV4dmQyVnlJRDBnWm5WdVkzUnBiMjRnS0d0bGVTd2dZMjl0Y0dGeVpTd2dhVzVqYkhWemFYWmxMQ0J5WlhWelpXUkJjbkpoZVNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCcElEMGdkR2hwY3k1cGJtUmxlRTltS0d0bGVTd2dNQ3dnWTI5dGNHRnlaU2tzSUdOb2FXeGtjbVZ1SUQwZ2RHaHBjeTVqYUdsc1pISmxianRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hU0ErUFNCamFHbHNaSEpsYmk1c1pXNW5kR2dwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG0xaGVGQmhhWElvY21WMWMyVmtRWEp5WVhrcE8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCamFHbHNaSEpsYmx0cFhTNW5aWFJRWVdseVQzSk9aWGgwVEc5M1pYSW9hMlY1TENCamIyMXdZWEpsTENCcGJtTnNkWE5wZG1Vc0lISmxkWE5sWkVGeWNtRjVLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MElEMDlQU0IxYm1SbFptbHVaV1FnSmlZZ2FTQStJREFwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR05vYVd4a2NtVnVXMmtnTFNBeFhTNXRZWGhRWVdseUtISmxkWE5sWkVGeWNtRjVLVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaVWx1ZEdWeWJtRnNMbkJ5YjNSdmRIbHdaUzVuWlhSUVlXbHlUM0pPWlhoMFNHbG5hR1Z5SUQwZ1puVnVZM1JwYjI0Z0tHdGxlU3dnWTI5dGNHRnlaU3dnYVc1amJIVnphWFpsTENCeVpYVnpaV1JCY25KaGVTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBJRDBnZEdocGN5NXBibVJsZUU5bUtHdGxlU3dnTUN3Z1kyOXRjR0Z5WlNrc0lHTm9hV3hrY21WdUlEMGdkR2hwY3k1amFHbHNaSEpsYml3Z2JHVnVaM1JvSUQwZ1kyaHBiR1J5Wlc0dWJHVnVaM1JvTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hwSUQ0OUlHeGxibWQwYUNsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdZMmhwYkdSeVpXNWJhVjB1WjJWMFVHRnBjazl5VG1WNGRFaHBaMmhsY2loclpYa3NJR052YlhCaGNtVXNJR2x1WTJ4MWMybDJaU3dnY21WMWMyVmtRWEp5WVhrcE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnUFQwOUlIVnVaR1ZtYVc1bFpDQW1KaUJwSUR3Z2JHVnVaM1JvSUMwZ01Ta2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyaHBiR1J5Wlc1YmFTQXJJREZkTG0xcGJsQmhhWElvY21WMWMyVmtRWEp5WVhrcE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbFNXNTBaWEp1WVd3dWNISnZkRzkwZVhCbExtTm9aV05yVm1Gc2FXUWdQU0JtZFc1amRHbHZiaUFvWkdWd2RHZ3NJSFJ5WldVc0lHSmhjMlZKYm1SbGVDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnJUQ0E5SUhSb2FYTXVhMlY1Y3k1c1pXNW5kR2dzSUdOTUlEMGdkR2hwY3k1amFHbHNaSEpsYmk1c1pXNW5kR2c3WEhKY2JpQWdJQ0FnSUNBZ1kyaGxZMnNvYTB3Z1BUMDlJR05NTENCY0ltdGxlWE12WTJocGJHUnlaVzRnYkdWdVozUm9JRzFwYzIxaGRHTm9PaUJrWlhCMGFGd2lMQ0JrWlhCMGFDd2dYQ0pzWlc1bmRHaHpYQ0lzSUd0TUxDQmpUQ3dnWENKaVlYTmxTVzVrWlhoY0lpd2dZbUZ6WlVsdVpHVjRLVHRjY2x4dUlDQWdJQ0FnSUNCamFHVmpheWhyVENBK0lERWdmSHdnWkdWd2RHZ2dQaUF3TENCY0ltbHVkR1Z5Ym1Gc0lHNXZaR1VnYUdGeklHeGxibWQwYUZ3aUxDQnJUQ3dnWENKaGRDQmtaWEIwYUZ3aUxDQmtaWEIwYUN3Z1hDSmlZWE5sU1c1a1pYaGNJaXdnWW1GelpVbHVaR1Y0S1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYzJsNlpTQTlJREFzSUdNZ1BTQjBhR2x6TG1Ob2FXeGtjbVZ1TENCcklEMGdkR2hwY3k1clpYbHpMQ0JqYUdsc1pGTnBlbVVnUFNBd08xeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR2tnUFNBd095QnBJRHdnWTB3N0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J6YVhwbElDczlJR05iYVYwdVkyaGxZMnRXWVd4cFpDaGtaWEIwYUNBcklERXNJSFJ5WldVc0lHSmhjMlZKYm1SbGVDQXJJSE5wZW1VcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCamFHbHNaRk5wZW1VZ0t6MGdZMXRwWFM1clpYbHpMbXhsYm1kMGFEdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyaGxZMnNvYzJsNlpTQStQU0JqYUdsc1pGTnBlbVVzSUZ3aWQzUm1YQ0lzSUdKaGMyVkpibVJsZUNrN0lDOHZJRzV2SUhkaGVTQjBhR2x6SUhkcGJHd2daWFpsY2lCbVlXbHNYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9aV05yS0drZ1BUMDlJREFnZkh3Z1kxdHBJQzBnTVYwdVkyOXVjM1J5ZFdOMGIzSWdQVDA5SUdOYmFWMHVZMjl1YzNSeWRXTjBiM0lzSUZ3aWRIbHdaU0J0YVhOdFlYUmphQ3dnWW1GelpVbHVaR1Y0T2x3aUxDQmlZWE5sU1c1a1pYZ3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTF0cFhTNXRZWGhMWlhrb0tTQWhQU0JyVzJsZEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmhsWTJzb1ptRnNjMlVzSUZ3aWEyVjVjMXRjSWl3Z2FTd2dYQ0pkSUQxY0lpd2dhMXRwWFN3Z1hDSnBjeUIzY205dVp5d2djMmh2ZFd4a0lHSmxJRndpTENCalcybGRMbTFoZUV0bGVTZ3BMQ0JjSW1GMElHUmxjSFJvWENJc0lHUmxjSFJvTENCY0ltSmhjMlZKYm1SbGVGd2lMQ0JpWVhObFNXNWtaWGdwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lTaHBJRDA5UFNBd0lIeDhJSFJ5WldVdVgyTnZiWEJoY21Vb2ExdHBJQzBnTVYwc0lHdGJhVjBwSUR3Z01Da3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUdWamF5aG1ZV3h6WlN3Z1hDSnpiM0owSUhacGIyeGhkR2x2YmlCaGRDQmtaWEIwYUZ3aUxDQmtaWEIwYUN3Z1hDSnBibVJsZUZ3aUxDQnBMQ0JjSW10bGVYTmNJaXdnYTF0cElDMGdNVjBzSUd0YmFWMHBPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQXZMeUF5TURJd0x6QTRPaUJDVkhKbFpTQmtiMlZ6YmlkMElHRnNkMkY1Y3lCaGRtOXBaQ0JuY205emMyeDVJSFZ1WkdWeWMybDZaV1FnYm05a1pYTXNYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1luVjBJRUZHUVVsTElITjFZMmdnYm05a1pYTWdZWEpsSUhCeVpYUjBlU0JvWVhKdGJHVnpjeXdnYzI4Z1lXTmpaWEIwSUhSb1pXMHVYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlIUnZiMlpsZHlBOUlHTm9hV3hrVTJsNlpTQTlQVDBnTURzZ0x5OGdZMmhwYkdSVGFYcGxJRHdnS0hSeVpXVXViV0Y0VG05a1pWTnBlbVVnUGo0Z01Ta3FZMHc3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSFJ2YjJabGR5QjhmQ0JqYUdsc1pGTnBlbVVnUGlCMGNtVmxMbTFoZUU1dlpHVlRhWHBsSUNvZ1kwd3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9aV05yS0daaGJITmxMQ0IwYjI5bVpYY2dQeUJjSW5SdmJ5Qm1aWGRjSWlBNklGd2lkRzl2SUcxaGJubGNJaXdnWENKamFHbHNaSEpsYmlBb1hDSXNJR05vYVd4a1UybDZaU3dnYzJsNlpTd2dYQ0lwSUdGMElHUmxjSFJvWENJc0lHUmxjSFJvTENCY0ltMWhlRTV2WkdWVGFYcGxPbHdpTENCMGNtVmxMbTFoZUU1dlpHVlRhWHBsTENCY0ltTm9hV3hrY21WdUxteGxibWQwYURwY0lpd2dZMHdzSUZ3aVltRnpaVWx1WkdWNE9sd2lMQ0JpWVhObFNXNWtaWGdwTzF4eVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemFYcGxPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhISmNiaUFnSUNBdkx5QkpiblJsY201aGJDQk9iMlJsT2lCelpYUWdKaUJ1YjJSbElITndiR2wwZEdsdVp5QXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdRazV2WkdWSmJuUmxjbTVoYkM1d2NtOTBiM1I1Y0dVdWMyVjBJRDBnWm5WdVkzUnBiMjRnS0d0bGVTd2dkbUZzZFdVc0lHOTJaWEozY21sMFpTd2dkSEpsWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCaklEMGdkR2hwY3k1amFHbHNaSEpsYml3Z2JXRjRJRDBnZEhKbFpTNWZiV0Y0VG05a1pWTnBlbVVzSUdOdGNDQTlJSFJ5WldVdVgyTnZiWEJoY21VN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdrZ1BTQk5ZWFJvTG0xcGJpaDBhR2x6TG1sdVpHVjRUMllvYTJWNUxDQXdMQ0JqYlhBcExDQmpMbXhsYm1kMGFDQXRJREVwTENCamFHbHNaQ0E5SUdOYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHTm9hV3hrTG1selUyaGhjbVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqVzJsZElEMGdZMmhwYkdRZ1BTQmphR2xzWkM1amJHOXVaU2dwTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYUdsc1pDNXJaWGx6TG14bGJtZDBhQ0ErUFNCdFlYZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWTJocGJHUWdhWE1nWm5Wc2JEc2dhVzV6WlhKMGFXNW5JR0Z1ZVhSb2FXNW5JR1ZzYzJVZ2QybHNiQ0JqWVhWelpTQmhJSE53YkdsMExseHlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QlRhR2xtZEdsdVp5QmhiaUJwZEdWdElIUnZJSFJvWlNCc1pXWjBJRzl5SUhKcFoyaDBJSE5wWW14cGJtY2diV0Y1SUdGMmIybGtJR0VnYzNCc2FYUXVYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRmRsSUdOaGJpQmtieUJoSUhOb2FXWjBJR2xtSUhSb1pTQmhaR3BoWTJWdWRDQnViMlJsSUdseklHNXZkQ0JtZFd4c0lHRnVaQ0JwWmlCMGFHVmNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdZM1Z5Y21WdWRDQnJaWGtnWTJGdUlITjBhV3hzSUdKbElIQnNZV05sWkNCcGJpQjBhR1VnYzJGdFpTQnViMlJsSUdGbWRHVnlJSFJvWlNCemFHbG1kQzVjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUc5MGFHVnlPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVNBK0lEQWdKaVlnS0c5MGFHVnlJRDBnWTF0cElDMGdNVjBwTG10bGVYTXViR1Z1WjNSb0lEd2diV0Y0SUNZbUlHTnRjQ2hqYUdsc1pDNXJaWGx6V3pCZExDQnJaWGtwSUR3Z01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHOTBhR1Z5TG1selUyaGhjbVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05iYVNBdElERmRJRDBnYjNSb1pYSWdQU0J2ZEdobGNpNWpiRzl1WlNncE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM1JvWlhJdWRHRnJaVVp5YjIxU2FXZG9kQ2hqYUdsc1pDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtdGxlWE5iYVNBdElERmRJRDBnYjNSb1pYSXViV0Y0UzJWNUtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb0tHOTBhR1Z5SUQwZ1kxdHBJQ3NnTVYwcElDRTlQU0IxYm1SbFptbHVaV1FnSmlZZ2IzUm9aWEl1YTJWNWN5NXNaVzVuZEdnZ1BDQnRZWGdnSmlZZ1kyMXdLR05vYVd4a0xtMWhlRXRsZVNncExDQnJaWGtwSUR3Z01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHOTBhR1Z5TG1selUyaGhjbVZrS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05iYVNBcklERmRJRDBnYjNSb1pYSWdQU0J2ZEdobGNpNWpiRzl1WlNncE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM1JvWlhJdWRHRnJaVVp5YjIxTVpXWjBLR05vYVd4a0tUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWEyVjVjMXRwWFNBOUlHTmJhVjB1YldGNFMyVjVLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUdOb2FXeGtMbk5sZENoclpYa3NJSFpoYkhWbExDQnZkbVZ5ZDNKcGRHVXNJSFJ5WldVcE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnUFQwOUlHWmhiSE5sS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1clpYbHpXMmxkSUQwZ1kyaHBiR1F1YldGNFMyVjVLQ2s3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDQTlQVDBnZEhKMVpTbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1ZHaGxJR05vYVd4a0lHaGhjeUJ6Y0d4cGRDQmhibVFnWUhKbGMzVnNkR0FnYVhNZ1lTQnVaWGNnY21sbmFIUWdZMmhwYkdRdUxpNGdaRzlsY3lCcGRDQm1hWFEvWEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWEyVjVjeTVzWlc1bmRHZ2dQQ0J0WVhncElIc2dMeThnZVdWelhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzV6WlhKMEtHa2dLeUF4TENCeVpYTjFiSFFwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnWld4elpTQjdJQzh2SUc1dkxDQjNaU0J0ZFhOMElITndiR2wwSUdGc2MyOWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJRzVsZDFKcFoyaDBVMmxpYkdsdVp5QTlJSFJvYVhNdWMzQnNhWFJQWm1aU2FXZG9kRk5wWkdVb0tTd2dkR0Z5WjJWMElEMGdkR2hwY3p0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnRjQ2h5WlhOMWJIUXViV0Y0UzJWNUtDa3NJSFJvYVhNdWJXRjRTMlY1S0NrcElENGdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHRnlaMlYwSUQwZ2JtVjNVbWxuYUhSVGFXSnNhVzVuTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQXRQU0IwYUdsekxtdGxlWE11YkdWdVozUm9PMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhjbWRsZEM1cGJuTmxjblFvYVNBcklERXNJSEpsYzNWc2RDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYZFNhV2RvZEZOcFlteHBibWM3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLbHh5WEc0Z0lDQWdJQ29nU1c1elpYSjBjeUJnWTJocGJHUmdJR0YwSUdsdVpHVjRJR0JwWUM1Y2NseHVJQ0FnSUNBcUlGUm9hWE1nWkc5bGN5QnViM1FnYldGeWF5QmdZMmhwYkdSZ0lHRnpJSE5vWVhKbFpDd2djMjhnYVhRZ2FYTWdkR2hsSUhKbGMzQnZibk5wWW1sc2FYUjVJRzltSUhSb1pTQmpZV3hzWlhKY2NseHVJQ0FnSUNBcUlIUnZJR1Z1YzNWeVpTQjBhR0YwSUdWcGRHaGxjaUJqYUdsc1pDQnBjeUJ0WVhKclpXUWdjMmhoY21Wa0xDQnZjaUJwZENCcGN5QnViM1FnYVc1amJIVmtaV1FnYVc0Z1lXNXZkR2hsY2lCMGNtVmxMbHh5WEc0Z0lDQWdJQ292WEhKY2JpQWdJQ0JDVG05a1pVbHVkR1Z5Ym1Gc0xuQnliM1J2ZEhsd1pTNXBibk5sY25RZ1BTQm1kVzVqZEdsdmJpQW9hU3dnWTJocGJHUXBJSHRjY2x4dUlDQWdJQ0FnSUNCMGFHbHpMbU5vYVd4a2NtVnVMbk53YkdsalpTaHBMQ0F3TENCamFHbHNaQ2s3WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTVyWlhsekxuTndiR2xqWlNocExDQXdMQ0JqYUdsc1pDNXRZWGhMWlhrb0tTazdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xWEhKY2JpQWdJQ0FnS2lCVGNHeHBkQ0IwYUdseklHNXZaR1V1WEhKY2JpQWdJQ0FnS2lCTmIyUnBabWxsY3lCMGFHbHpJSFJ2SUhKbGJXOTJaU0IwYUdVZ2MyVmpiMjVrSUdoaGJHWWdiMllnZEdobElHbDBaVzF6TENCeVpYUjFjbTVwYm1jZ1lTQnpaWEJoY21GMFpTQnViMlJsSUdOdmJuUmhhVzVwYm1jZ2RHaGxiUzVjY2x4dUlDQWdJQ0FxTDF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXVjM0JzYVhSUFptWlNhV2RvZEZOcFpHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnWVhOelpYSjBJQ0YwYUdsekxtbHpVMmhoY21Wa08xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCb1lXeG1JRDBnZEdocGN5NWphR2xzWkhKbGJpNXNaVzVuZEdnZ1BqNGdNVHRjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFSk9iMlJsU1c1MFpYSnVZV3dvZEdocGN5NWphR2xzWkhKbGJpNXpjR3hwWTJVb2FHRnNaaWtzSUhSb2FYTXVhMlY1Y3k1emNHeHBZMlVvYUdGc1ppa3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJRUpPYjJSbFNXNTBaWEp1WVd3dWNISnZkRzkwZVhCbExuUmhhMlZHY205dFVtbG5hSFFnUFNCbWRXNWpkR2x2YmlBb2NtaHpLU0I3WEhKY2JpQWdJQ0FnSUNBZ0x5OGdVbVZ0YVc1a1pYSTZJSEJoY21WdWRDQnViMlJsSUcxMWMzUWdkWEJrWVhSbElHbDBjeUJqYjNCNUlHOW1JR3RsZVNCbWIzSWdkR2hwY3lCdWIyUmxYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1lYTnpaWEowT2lCdVpXbDBhR1Z5SUc1dlpHVWdhWE1nYzJoaGNtVmtYSEpjYmlBZ0lDQWdJQ0FnTHk4Z1lYTnpaWEowSUhKb2N5NXJaWGx6TG14bGJtZDBhQ0ErSUNodFlYaE9iMlJsVTJsNlpTOHlJQ1ltSUhSb2FYTXVhMlY1Y3k1c1pXNW5kR2c4YldGNFRtOWtaVk5wZW1VcFhISmNiaUFnSUNBZ0lDQWdkR2hwY3k1clpYbHpMbkIxYzJnb2NtaHpMbXRsZVhNdWMyaHBablFvS1NrN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1amFHbHNaSEpsYmk1d2RYTm9LSEpvY3k1amFHbHNaSEpsYmk1emFHbG1kQ2dwS1R0Y2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCQ1RtOWtaVWx1ZEdWeWJtRnNMbkJ5YjNSdmRIbHdaUzUwWVd0bFJuSnZiVXhsWm5RZ1BTQm1kVzVqZEdsdmJpQW9iR2h6S1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnVW1WdGFXNWtaWEk2SUhCaGNtVnVkQ0J1YjJSbElHMTFjM1FnZFhCa1lYUmxJR2wwY3lCamIzQjVJRzltSUd0bGVTQm1iM0lnZEdocGN5QnViMlJsWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZWE56WlhKME9pQnVaV2wwYUdWeUlHNXZaR1VnYVhNZ2MyaGhjbVZrWEhKY2JpQWdJQ0FnSUNBZ0x5OGdZWE56WlhKMElISm9jeTVyWlhsekxteGxibWQwYUNBK0lDaHRZWGhPYjJSbFUybDZaUzh5SUNZbUlIUm9hWE11YTJWNWN5NXNaVzVuZEdnOGJXRjRUbTlrWlZOcGVtVXBYSEpjYmlBZ0lDQWdJQ0FnZEdocGN5NXJaWGx6TG5WdWMyaHBablFvYkdoekxtdGxlWE11Y0c5d0tDa3BPMXh5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZMmhwYkdSeVpXNHVkVzV6YUdsbWRDaHNhSE11WTJocGJHUnlaVzR1Y0c5d0tDa3BPMXh5WEc0Z0lDQWdmVHRjY2x4dUlDQWdJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhISmNiaUFnSUNBdkx5QkpiblJsY201aGJDQk9iMlJsT2lCelkyRnVibWx1WnlBbUlHUmxiR1YwYVc5dWN5QXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh5WEc0Z0lDQWdMeThnVG05MFpUb2dZR052ZFc1MFlDQnBjeUIwYUdVZ2JtVjRkQ0IyWVd4MVpTQnZaaUIwYUdVZ2RHaHBjbVFnWVhKbmRXMWxiblFnZEc4Z1lHOXVSbTkxYm1SZ0xpQmNjbHh1SUNBZ0lDOHZJQ0FnSUNBZ0lFRWdiR1ZoWmlCdWIyUmxKM01nWUdadmNsSmhibWRsWUNCbWRXNWpkR2x2YmlCeVpYUjFjbTV6SUdFZ2JtVjNJSFpoYkhWbElHWnZjaUIwYUdseklHTnZkVzUwWlhJc1hISmNiaUFnSUNBdkx5QWdJQ0FnSUNCMWJteGxjM01nZEdobElHOXdaWEpoZEdsdmJpQnBjeUIwYnlCemRHOXdJR1ZoY214NUxseHlYRzRnSUNBZ1FrNXZaR1ZKYm5SbGNtNWhiQzV3Y205MGIzUjVjR1V1Wm05eVVtRnVaMlVnUFNCbWRXNWpkR2x2YmlBb2JHOTNMQ0JvYVdkb0xDQnBibU5zZFdSbFNHbG5hQ3dnWldScGRFMXZaR1VzSUhSeVpXVXNJR052ZFc1MExDQnZia1p2ZFc1a0tTQjdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHTnRjQ0E5SUhSeVpXVXVYMk52YlhCaGNtVTdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlHdGxlWE1nUFNCMGFHbHpMbXRsZVhNc0lHTm9hV3hrY21WdUlEMGdkR2hwY3k1amFHbHNaSEpsYmp0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnYVV4dmR5QTlJSFJvYVhNdWFXNWtaWGhQWmloc2IzY3NJREFzSUdOdGNDa3NJR2tnUFNCcFRHOTNPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQnBTR2xuYUNBOUlFMWhkR2d1YldsdUtHaHBaMmdnUFQwOUlHeHZkeUEvSUdsTWIzY2dPaUIwYUdsekxtbHVaR1Y0VDJZb2FHbG5hQ3dnTUN3Z1kyMXdLU3dnYTJWNWN5NXNaVzVuZEdnZ0xTQXhLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9JV1ZrYVhSTmIyUmxLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZOcGJYQnNaU0JqWVhObFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9PeUJwSUR3OUlHbElhV2RvT3lCcEt5c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQmphR2xzWkhKbGJsdHBYUzVtYjNKU1lXNW5aU2hzYjNjc0lHaHBaMmdzSUdsdVkyeDFaR1ZJYVdkb0xDQmxaR2wwVFc5a1pTd2dkSEpsWlN3Z1kyOTFiblFzSUc5dVJtOTFibVFwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnlaWE4xYkhRZ0lUMDlJQ2R1ZFcxaVpYSW5LVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIzVnVkQ0E5SUhKbGMzVnNkRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBJRHc5SUdsSWFXZG9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0RzZ2FTQThQU0JwU0dsbmFEc2dhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTm9hV3hrY21WdVcybGRMbWx6VTJoaGNtVmtLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUdsc1pISmxibHRwWFNBOUlHTm9hV3hrY21WdVcybGRMbU5zYjI1bEtDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJR05vYVd4a2NtVnVXMmxkTG1admNsSmhibWRsS0d4dmR5d2dhR2xuYUN3Z2FXNWpiSFZrWlVocFoyZ3NJR1ZrYVhSTmIyUmxMQ0IwY21WbExDQmpiM1Z1ZEN3Z2IyNUdiM1Z1WkNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1RtOTBaVG9nYVdZZ1kyaHBiR1J5Wlc1YmFWMGdhWE1nWlcxd2RIa2dkR2hsYmlCclpYbHpXMmxkUFhWdVpHVm1hVzVsWkM1Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlBZ0lDQWdJQ0JVYUdseklHbHpJR0Z1SUdsdWRtRnNhV1FnYzNSaGRHVXNJR0oxZENCcGRDQnBjeUJtYVhobFpDQmlaV3h2ZHk1Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhselcybGRJRDBnWTJocGJHUnlaVzViYVYwdWJXRjRTMlY1S0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYTjFiSFFnSVQwOUlDZHVkVzFpWlhJbktWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052ZFc1MElEMGdjbVZ6ZFd4ME8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnBibUZzYkhrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnUkdWc1pYUnBiMjV6SUcxaGVTQm9ZWFpsSUc5alkzVnljbVZrTENCemJ5QnNiMjlySUdadmNpQnZjSEJ2Y25SMWJtbDBhV1Z6SUhSdklHMWxjbWRsSUc1dlpHVnpMbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHaGhiR1lnUFNCMGNtVmxMbDl0WVhoT2IyUmxVMmw2WlNBK1BpQXhPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbE1iM2NnUGlBd0tWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsTWIzY3RMVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdadmNpQW9hU0E5SUdsSWFXZG9PeUJwSUQ0OUlHbE1iM2M3SUdrdExTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYUdsc1pISmxibHRwWFM1clpYbHpMbXhsYm1kMGFDQThQU0JvWVd4bUtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamFHbHNaSEpsYmx0cFhTNXJaWGx6TG14bGJtZDBhQ0FoUFQwZ01Da2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUwY25sTlpYSm5aU2hwTENCMGNtVmxMbDl0WVhoT2IyUmxVMmw2WlNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN0lDOHZJR05vYVd4a0lHbHpJR1Z0Y0hSNUlTQmtaV3hsZEdVZ2FYUWhYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCclpYbHpMbk53YkdsalpTaHBMQ0F4S1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vYVd4a2NtVnVMbk53YkdsalpTaHBMQ0F4S1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamFHbHNaSEpsYmk1c1pXNW5kR2dnSVQwOUlEQWdKaVlnWTJocGJHUnlaVzViTUYwdWEyVjVjeTVzWlc1bmRHZ2dQVDA5SURBcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJobFkyc29abUZzYzJVc0lGd2laVzF3ZEdsdVpYTnpJR0oxWjF3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5MWJuUTdYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdMeW9xSUUxbGNtZGxjeUJqYUdsc1pDQnBJSGRwZEdnZ1kyaHBiR1FnYVNzeElHbG1JSFJvWldseUlHTnZiV0pwYm1Wa0lITnBlbVVnYVhNZ2JtOTBJSFJ2YnlCc1lYSm5aU0FxTDF4eVhHNGdJQ0FnUWs1dlpHVkpiblJsY201aGJDNXdjbTkwYjNSNWNHVXVkSEo1VFdWeVoyVWdQU0JtZFc1amRHbHZiaUFvYVN3Z2JXRjRVMmw2WlNrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoY2lCamFHbHNaSEpsYmlBOUlIUm9hWE11WTJocGJHUnlaVzQ3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR2tnUGowZ01DQW1KaUJwSUNzZ01TQThJR05vYVd4a2NtVnVMbXhsYm1kMGFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJocGJHUnlaVzViYVYwdWEyVjVjeTVzWlc1bmRHZ2dLeUJqYUdsc1pISmxibHRwSUNzZ01WMHVhMlY1Y3k1c1pXNW5kR2dnUEQwZ2JXRjRVMmw2WlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOb2FXeGtjbVZ1VzJsZExtbHpVMmhoY21Wa0tTQXZMeUJqYkc5dVpXUWdZV3h5WldGa2VTQlZUa3hGVTFNZ2FTQnBjeUJ2ZFhSemFXUmxJSE5qWVc0Z2NtRnVaMlZjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmphR2xzWkhKbGJsdHBYU0E5SUdOb2FXeGtjbVZ1VzJsZExtTnNiMjVsS0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmphR2xzWkhKbGJsdHBYUzV0WlhKblpWTnBZbXhwYm1jb1kyaHBiR1J5Wlc1YmFTQXJJREZkTENCdFlYaFRhWHBsS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTm9hV3hrY21WdUxuTndiR2xqWlNocElDc2dNU3dnTVNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG10bGVYTXVjM0JzYVdObEtHa2dLeUF4TENBeEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWEyVjVjMXRwWFNBOUlHTm9hV3hrY21WdVcybGRMbTFoZUV0bGVTZ3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lDOHFLbHh5WEc0Z0lDQWdJQ29nVFc5MlpTQmphR2xzWkhKbGJpQm1jbTl0SUdCeWFITmdJR2x1ZEc4Z2RHaHBjeTVjY2x4dUlDQWdJQ0FxSUdCeWFITmdJRzExYzNRZ1ltVWdjR0Z5ZENCdlppQjBhR2x6SUhSeVpXVXNJR0Z1WkNCaVpTQnlaVzF2ZG1Wa0lHWnliMjBnYVhRZ1lXWjBaWElnZEdocGN5QmpZV3hzWEhKY2JpQWdJQ0FnS2lBb2IzUm9aWEozYVhObElHbHpVMmhoY21Wa0lHWnZjaUJwZEhNZ1kyaHBiR1J5Wlc0Z1kyOTFiR1FnWW1VZ2FXNWpiM0p5WldOMEtTNWNjbHh1SUNBZ0lDQXFMMXh5WEc0Z0lDQWdRazV2WkdWSmJuUmxjbTVoYkM1d2NtOTBiM1I1Y0dVdWJXVnlaMlZUYVdKc2FXNW5JRDBnWm5WdVkzUnBiMjRnS0hKb2N5d2diV0Y0VG05a1pWTnBlbVVwSUh0Y2NseHVJQ0FnSUNBZ0lDQXZMeUJoYzNObGNuUWdJWFJvYVhNdWFYTlRhR0Z5WldRN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUc5c1pFeGxibWQwYUNBOUlIUm9hWE11YTJWNWN5NXNaVzVuZEdnN1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k1clpYbHpMbkIxYzJndVlYQndiSGtvZEdocGN5NXJaWGx6TENCeWFITXVhMlY1Y3lrN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhKb2MwTm9hV3hrY21WdUlEMGdjbWh6TG1Ob2FXeGtjbVZ1TzF4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11WTJocGJHUnlaVzR1Y0hWemFDNWhjSEJzZVNoMGFHbHpMbU5vYVd4a2NtVnVMQ0J5YUhORGFHbHNaSEpsYmlrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0hKb2N5NXBjMU5vWVhKbFpDQW1KaUFoZEdocGN5NXBjMU5vWVhKbFpDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJCYkd3Z1kyaHBiR1J5Wlc0Z2IyWWdZU0J6YUdGeVpXUWdibTlrWlNCaGNtVWdhVzF3YkdsamFYUnNlU0J6YUdGeVpXUXNJR0Z1WkNCemFXNWpaU0IwYUdWcGNpQnVaWGRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnY0dGeVpXNTBJR2x6SUc1dmRDQnphR0Z5WldRc0lIUm9aWGtnYlhWemRDQnViM2NnWW1VZ1pYaHdiR2xqYVhSc2VTQnRZWEpyWldRZ1lYTWdjMmhoY21Wa0xseHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCcElEMGdNRHNnYVNBOElISm9jME5vYVd4a2NtVnVMbXhsYm1kMGFEc2dhU3NyS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtaHpRMmhwYkdSeVpXNWJhVjB1YVhOVGFHRnlaV1FnUFNCMGNuVmxPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQXZMeUJKWmlCdmRYSWdZMmhwYkdSeVpXNGdZWEpsSUhSb1pXMXpaV3gyWlhNZ1lXeHRiM04wSUdWdGNIUjVJR1IxWlNCMGJ5QmhJRzFoYzNNdFpHVnNaWFJsTEZ4eVhHNGdJQ0FnSUNBZ0lDOHZJSFJvWlhrZ2JXRjVJRzVsWldRZ2RHOGdZbVVnYldWeVoyVmtJSFJ2YnlBb1luVjBJRzl1YkhrZ2RHaGxJRzlzWkV4bGJtZDBhQzB4SUdGdVpDQnBkSE5jY2x4dUlDQWdJQ0FnSUNBdkx5QnlhV2RvZENCemFXSnNhVzVuSUhOb2IzVnNaQ0J1WldWa0lIUm9hWE1wTGx4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11ZEhKNVRXVnlaMlVvYjJ4a1RHVnVaM1JvSUMwZ01Td2diV0Y0VG05a1pWTnBlbVVwTzF4eVhHNGdJQ0FnZlR0Y2NseHVJQ0FnSUhKbGRIVnliaUJDVG05a1pVbHVkR1Z5Ym1Gc08xeHlYRzU5S0VKT2IyUmxLU2s3WEhKY2JpOHZJRTl3ZEdsdGFYcGhkR2x2YmpvZ2RHaHBjeUJoY25KaGVTQnZaaUJnZFc1a1pXWnBibVZrWUhNZ2FYTWdkWE5sWkNCcGJuTjBaV0ZrSUc5bUlHRWdibTl5YldGc1hISmNiaTh2SUdGeWNtRjVJRzltSUhaaGJIVmxjeUJwYmlCdWIyUmxjeUIzYUdWeVpTQmdkVzVrWldacGJtVmtZQ0JwY3lCMGFHVWdiMjVzZVNCMllXeDFaUzVjY2x4dUx5OGdTWFJ6SUd4bGJtZDBhQ0JwY3lCbGVIUmxibVJsWkNCMGJ5QnRZWGdnYm05a1pTQnphWHBsSUc5dUlHWnBjbk4wSUhWelpUc2djMmx1WTJVZ2FYUWdZMkZ1WEhKY2JpOHZJR0psSUhOb1lYSmxaQ0JpWlhSM1pXVnVJSFJ5WldWeklIZHBkR2dnWkdsbVptVnlaVzUwSUcxaGVHbHRkVzF6TENCcGRITWdiR1Z1WjNSb0lHTmhiaUJ2Ym14NVhISmNiaTh2SUdsdVkzSmxZWE5sTENCdVpYWmxjaUJrWldOeVpXRnpaUzRnU1hSeklIUjVjR1VnYzJodmRXeGtJR0psSUhWdVpHVm1hVzVsWkZ0ZElHSjFkQ0J6ZEhKaGJtZGxiSGxjY2x4dUx5OGdWSGx3WlZOamNtbHdkQ0IzYjI0bmRDQmhiR3h2ZHlCMGFHVWdZMjl0Y0dGeWFYTnZiaUJXVzEwZ1BUMDlJSFZ1WkdWbWFXNWxaRnRkTGlCVWJ5QndjbVYyWlc1MFhISmNiaTh2SUhWelpYSnpJR1p5YjIwZ2JXRnJhVzVuSUhSb2FYTWdZWEp5WVhrZ2RHOXZJR3hoY21kbExDQkNWSEpsWlNCb1lYTWdZU0J0WVhocGJYVnRJRzV2WkdVZ2MybDZaUzVjY2x4dUx5OWNjbHh1THk4Z1JrRlJPaUIxYm1SbFpsWmhiSE5iYVYwZ2FYTWdZV3h5WldGa2VTQjFibVJsWm1sdVpXUXNJSE52SUhkb2VTQnBibU55WldGelpTQjBhR1VnWVhKeVlYa2djMmw2WlQ5Y2NseHVMeThnVW1WaFpHbHVaeUJ2ZFhSemFXUmxJSFJvWlNCaWIzVnVaSE1nYjJZZ1lXNGdZWEp5WVhrZ2FYTWdjbVZzWVhScGRtVnNlU0J6Ykc5M0lHSmxZMkYxYzJVZ2FYUmNjbHh1THk4Z2FHRnpJSFJvWlNCemFXUmxJR1ZtWm1WamRDQnZaaUJ6WTJGdWJtbHVaeUIwYUdVZ2NISnZkRzkwZVhCbElHTm9ZV2x1TGx4eVhHNTJZWElnZFc1a1pXWldZV3h6SUQwZ1cxMDdYSEpjYm5aaGNpQkVaV3hsZEdVZ1BTQjdJR1JsYkdWMFpUb2dkSEoxWlNCOUxDQkVaV3hsZEdWU1lXNW5aU0E5SUdaMWJtTjBhVzl1SUNncElIc2djbVYwZFhKdUlFUmxiR1YwWlRzZ2ZUdGNjbHh1ZG1GeUlFSnlaV0ZySUQwZ2V5QmljbVZoYXpvZ2RISjFaU0I5TzF4eVhHNTJZWElnUlcxd2RIbE1aV0ZtSUQwZ0tHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJSFpoY2lCdUlEMGdibVYzSUVKT2IyUmxLQ2s3WEhKY2JpQWdJQ0J1TG1selUyaGhjbVZrSUQwZ2RISjFaVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnVPMXh5WEc1OUtTZ3BPMXh5WEc1MllYSWdSVzF3ZEhsQmNuSmhlU0E5SUZ0ZE8xeHlYRzUyWVhJZ1VtVjFjMlZrUVhKeVlYa2dQU0JiWFRzZ0x5OGdZWE56ZFcxbFpDQjBhSEpsWVdRdGJHOWpZV3hjY2x4dVpuVnVZM1JwYjI0Z1kyaGxZMnNvWm1GamRDa2dlMXh5WEc0Z0lDQWdkbUZ5SUdGeVozTWdQU0JiWFR0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUY5cElEMGdNVHNnWDJrZ1BDQmhjbWQxYldWdWRITXViR1Z1WjNSb095QmZhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdZWEpuYzF0ZmFTQXRJREZkSUQwZ1lYSm5kVzFsYm5SelcxOXBYVHRjY2x4dUlDQWdJSDFjY2x4dUlDQWdJR2xtSUNnaFptRmpkQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lHRnlaM011ZFc1emFHbG1kQ2duUWlzZ2RISmxaU2NwT3lBdkx5QmhkQ0JpWldkcGJtNXBibWNnYjJZZ2JXVnpjMkZuWlZ4eVhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loaGNtZHpMbXB2YVc0b0p5QW5LU2s3WEhKY2JpQWdJQ0I5WEhKY2JuMWNjbHh1THlvcUlFRWdRbFJ5WldVZ1puSnZlbVZ1SUdsdUlIUm9aU0JsYlhCMGVTQnpkR0YwWlM0Z0tpOWNjbHh1Wlhod2IzSjBjeTVGYlhCMGVVSlVjbVZsSUQwZ0tHWjFibU4wYVc5dUlDZ3BJSHNnZG1GeUlIUWdQU0J1WlhjZ1FsUnlaV1VvS1RzZ2RDNW1jbVZsZW1Vb0tUc2djbVYwZFhKdUlIUTdJSDBwS0NrN1hISmNiaUlzSUNJdkx5QjBhR1Z6WlNCaGNtVnVKM1FnY21WaGJHeDVJSEJ5YVhaaGRHVXNJR0oxZENCdWIzSWdZWEpsSUhSb1pYa2djbVZoYkd4NUlIVnpaV1oxYkNCMGJ5QmtiMk4xYldWdWRGeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JtTnNZWE56SUV4MWVHOXVSWEp5YjNJZ1pYaDBaVzVrY3lCRmNuSnZjaUI3ZlZ4dVhHNHZLaXBjYmlBcUlFQndjbWwyWVhSbFhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QkpiblpoYkdsa1JHRjBaVlJwYldWRmNuSnZjaUJsZUhSbGJtUnpJRXgxZUc5dVJYSnliM0lnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWh5WldGemIyNHBJSHRjYmlBZ0lDQnpkWEJsY2loZ1NXNTJZV3hwWkNCRVlYUmxWR2x0WlRvZ0pIdHlaV0Z6YjI0dWRHOU5aWE56WVdkbEtDbDlZQ2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1NXNTJZV3hwWkVsdWRHVnlkbUZzUlhKeWIzSWdaWGgwWlc1a2N5Qk1kWGh2YmtWeWNtOXlJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9jbVZoYzI5dUtTQjdYRzRnSUNBZ2MzVndaWElvWUVsdWRtRnNhV1FnU1c1MFpYSjJZV3c2SUNSN2NtVmhjMjl1TG5SdlRXVnpjMkZuWlNncGZXQXBPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVsdWRtRnNhV1JFZFhKaGRHbHZia1Z5Y205eUlHVjRkR1Z1WkhNZ1RIVjRiMjVGY25KdmNpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtISmxZWE52YmlrZ2UxeHVJQ0FnSUhOMWNHVnlLR0JKYm5aaGJHbGtJRVIxY21GMGFXOXVPaUFrZTNKbFlYTnZiaTUwYjAxbGMzTmhaMlVvS1gxZ0tUdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJEYjI1bWJHbGpkR2x1WjFOd1pXTnBabWxqWVhScGIyNUZjbkp2Y2lCbGVIUmxibVJ6SUV4MWVHOXVSWEp5YjNJZ2UzMWNibHh1THlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nU1c1MllXeHBaRlZ1YVhSRmNuSnZjaUJsZUhSbGJtUnpJRXgxZUc5dVJYSnliM0lnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWgxYm1sMEtTQjdYRzRnSUNBZ2MzVndaWElvWUVsdWRtRnNhV1FnZFc1cGRDQWtlM1Z1YVhSOVlDazdYRzRnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nU1c1MllXeHBaRUZ5WjNWdFpXNTBSWEp5YjNJZ1pYaDBaVzVrY3lCTWRYaHZia1Z5Y205eUlIdDlYRzVjYmk4cUtseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZwdmJtVkpjMEZpYzNSeVlXTjBSWEp5YjNJZ1pYaDBaVzVrY3lCTWRYaHZia1Z5Y205eUlIdGNiaUFnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ2MzVndaWElvWENKYWIyNWxJR2x6SUdGdUlHRmljM1J5WVdOMElHTnNZWE56WENJcE8xeHVJQ0I5WEc1OVhHNGlMQ0FpTHlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWNibU52Ym5OMElHNGdQU0JjSW01MWJXVnlhV05jSWl4Y2JpQWdjeUE5SUZ3aWMyaHZjblJjSWl4Y2JpQWdiQ0E5SUZ3aWJHOXVaMXdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWOVRTRTlTVkNBOUlIdGNiaUFnZVdWaGNqb2diaXhjYmlBZ2JXOXVkR2c2SUc0c1hHNGdJR1JoZVRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUVZSRlgwMUZSQ0E5SUh0Y2JpQWdlV1ZoY2pvZ2JpeGNiaUFnYlc5dWRHZzZJSE1zWEc0Z0lHUmhlVG9nYml4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkVRVlJGWDAxRlJGOVhTVlJJWDFkRlJVdEVRVmtnUFNCN1hHNGdJSGxsWVhJNklHNHNYRzRnSUcxdmJuUm9PaUJ6TEZ4dUlDQmtZWGs2SUc0c1hHNGdJSGRsWld0a1lYazZJSE1zWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFRlVSVjlHVlV4TUlEMGdlMXh1SUNCNVpXRnlPaUJ1TEZ4dUlDQnRiMjUwYURvZ2JDeGNiaUFnWkdGNU9pQnVMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVSQlZFVmZTRlZIUlNBOUlIdGNiaUFnZVdWaGNqb2diaXhjYmlBZ2JXOXVkR2c2SUd3c1hHNGdJR1JoZVRvZ2JpeGNiaUFnZDJWbGEyUmhlVG9nYkN4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlVTVTFGWDFOSlRWQk1SU0E5SUh0Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGUkpUVVZmVjBsVVNGOVRSVU5QVGtSVElEMGdlMXh1SUNCb2IzVnlPaUJ1TEZ4dUlDQnRhVzUxZEdVNklHNHNYRzRnSUhObFkyOXVaRG9nYml4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlVTVTFGWDFkSlZFaGZVMGhQVWxSZlQwWkdVMFZVSUQwZ2UxeHVJQ0JvYjNWeU9pQnVMRnh1SUNCdGFXNTFkR1U2SUc0c1hHNGdJSE5sWTI5dVpEb2diaXhjYmlBZ2RHbHRaVnB2Ym1WT1lXMWxPaUJ6TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGUkpUVVZmVjBsVVNGOU1UMDVIWDA5R1JsTkZWQ0E5SUh0Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQnpaV052Ym1RNklHNHNYRzRnSUhScGJXVmFiMjVsVG1GdFpUb2diQ3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCVVNVMUZYekkwWDFOSlRWQk1SU0E5SUh0Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQm9iM1Z5UTNsamJHVTZJRndpYURJelhDSXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVkVsTlJWOHlORjlYU1ZSSVgxTkZRMDlPUkZNZ1BTQjdYRzRnSUdodmRYSTZJRzRzWEc0Z0lHMXBiblYwWlRvZ2JpeGNiaUFnYzJWamIyNWtPaUJ1TEZ4dUlDQm9iM1Z5UTNsamJHVTZJRndpYURJelhDSXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVkVsTlJWOHlORjlYU1ZSSVgxTklUMUpVWDA5R1JsTkZWQ0E5SUh0Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQnpaV052Ym1RNklHNHNYRzRnSUdodmRYSkRlV05zWlRvZ1hDSm9Nak5jSWl4Y2JpQWdkR2x0WlZwdmJtVk9ZVzFsT2lCekxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRlJKVFVWZk1qUmZWMGxVU0Y5TVQwNUhYMDlHUmxORlZDQTlJSHRjYmlBZ2FHOTFjam9nYml4Y2JpQWdiV2x1ZFhSbE9pQnVMRnh1SUNCelpXTnZibVE2SUc0c1hHNGdJR2h2ZFhKRGVXTnNaVG9nWENKb01qTmNJaXhjYmlBZ2RHbHRaVnB2Ym1WT1lXMWxPaUJzTEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFUkJWRVZVU1UxRlgxTklUMUpVSUQwZ2UxeHVJQ0I1WldGeU9pQnVMRnh1SUNCdGIyNTBhRG9nYml4Y2JpQWdaR0Y1T2lCdUxGeHVJQ0JvYjNWeU9pQnVMRnh1SUNCdGFXNTFkR1U2SUc0c1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRUZVUlZSSlRVVmZVMGhQVWxSZlYwbFVTRjlUUlVOUFRrUlRJRDBnZTF4dUlDQjVaV0Z5T2lCdUxGeHVJQ0J0YjI1MGFEb2diaXhjYmlBZ1pHRjVPaUJ1TEZ4dUlDQm9iM1Z5T2lCdUxGeHVJQ0J0YVc1MWRHVTZJRzRzWEc0Z0lITmxZMjl1WkRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUVZSRlZFbE5SVjlOUlVRZ1BTQjdYRzRnSUhsbFlYSTZJRzRzWEc0Z0lHMXZiblJvT2lCekxGeHVJQ0JrWVhrNklHNHNYRzRnSUdodmRYSTZJRzRzWEc0Z0lHMXBiblYwWlRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlUUlVOUFRrUlRJRDBnZTF4dUlDQjVaV0Z5T2lCdUxGeHVJQ0J0YjI1MGFEb2djeXhjYmlBZ1pHRjVPaUJ1TEZ4dUlDQm9iM1Z5T2lCdUxGeHVJQ0J0YVc1MWRHVTZJRzRzWEc0Z0lITmxZMjl1WkRvZ2JpeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlYUlVWTFJFRlpJRDBnZTF4dUlDQjVaV0Z5T2lCdUxGeHVJQ0J0YjI1MGFEb2djeXhjYmlBZ1pHRjVPaUJ1TEZ4dUlDQjNaV1ZyWkdGNU9pQnpMRnh1SUNCb2IzVnlPaUJ1TEZ4dUlDQnRhVzUxZEdVNklHNHNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWUkpUVVZmUmxWTVRDQTlJSHRjYmlBZ2VXVmhjam9nYml4Y2JpQWdiVzl1ZEdnNklHd3NYRzRnSUdSaGVUb2diaXhjYmlBZ2FHOTFjam9nYml4Y2JpQWdiV2x1ZFhSbE9pQnVMRnh1SUNCMGFXMWxXbTl1WlU1aGJXVTZJSE1zWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFRlVSVlJKVFVWZlJsVk1URjlYU1ZSSVgxTkZRMDlPUkZNZ1BTQjdYRzRnSUhsbFlYSTZJRzRzWEc0Z0lHMXZiblJvT2lCc0xGeHVJQ0JrWVhrNklHNHNYRzRnSUdodmRYSTZJRzRzWEc0Z0lHMXBiblYwWlRvZ2JpeGNiaUFnYzJWamIyNWtPaUJ1TEZ4dUlDQjBhVzFsV205dVpVNWhiV1U2SUhNc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRUZVUlZSSlRVVmZTRlZIUlNBOUlIdGNiaUFnZVdWaGNqb2diaXhjYmlBZ2JXOXVkR2c2SUd3c1hHNGdJR1JoZVRvZ2JpeGNiaUFnZDJWbGEyUmhlVG9nYkN4Y2JpQWdhRzkxY2pvZ2JpeGNiaUFnYldsdWRYUmxPaUJ1TEZ4dUlDQjBhVzFsV205dVpVNWhiV1U2SUd3c1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRUZVUlZSSlRVVmZTRlZIUlY5WFNWUklYMU5GUTA5T1JGTWdQU0I3WEc0Z0lIbGxZWEk2SUc0c1hHNGdJRzF2Ym5Sb09pQnNMRnh1SUNCa1lYazZJRzRzWEc0Z0lIZGxaV3RrWVhrNklHd3NYRzRnSUdodmRYSTZJRzRzWEc0Z0lHMXBiblYwWlRvZ2JpeGNiaUFnYzJWamIyNWtPaUJ1TEZ4dUlDQjBhVzFsV205dVpVNWhiV1U2SUd3c1hHNTlPMXh1SWl3Z0lpOHFYRzRnSUZSb2FYTWdhWE1nYW5WemRDQmhJR3AxYm1zZ1pISmhkMlZ5TENCamIyNTBZV2x1YVc1bklHRnVlWFJvYVc1bklIVnpaV1FnWVdOeWIzTnpJRzExYkhScGNHeGxJR05zWVhOelpYTXVYRzRnSUVKbFkyRjFjMlVnVEhWNGIyNGdhWE1nYzIxaGJHd29hWE5vS1N3Z2RHaHBjeUJ6YUc5MWJHUWdjM1JoZVNCemJXRnNiQ0JoYm1RZ2QyVWdkMjl1SjNRZ2QyOXljbmtnWVdKdmRYUWdjM0JzYVhSMGFXNW5YRzRnSUdsMElIVndJR2x1ZEc4c0lITmhlU3dnY0dGeWMybHVaMVYwYVd3dWFuTWdZVzVrSUdKaGMybGpWWFJwYkM1cWN5QmhibVFnYzI4Z2IyNHVJRUoxZENCMGFHVjVJR0Z5WlNCa2FYWnBaR1ZrSUhWd0lHSjVJR1psWVhSMWNtVWdZWEpsWVM1Y2Jpb3ZYRzVjYm1sdGNHOXlkQ0I3SUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUlIMGdabkp2YlNCY0lpNHVMMlZ5Y205eWN5NXFjMXdpTzF4dVhHNHZLaXBjYmlBcUlFQndjbWwyWVhSbFhHNGdLaTljYmx4dUx5OGdWRmxRUlZOY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpWVzVrWldacGJtVmtLRzhwSUh0Y2JpQWdjbVYwZFhKdUlIUjVjR1Z2WmlCdklEMDlQU0JjSW5WdVpHVm1hVzVsWkZ3aU8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOT2RXMWlaWElvYnlrZ2UxeHVJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlHOGdQVDA5SUZ3aWJuVnRZbVZ5WENJN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzBsdWRHVm5aWElvYnlrZ2UxeHVJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlHOGdQVDA5SUZ3aWJuVnRZbVZ5WENJZ0ppWWdieUFsSURFZ1BUMDlJREE3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMU4wY21sdVp5aHZLU0I3WEc0Z0lISmxkSFZ5YmlCMGVYQmxiMllnYnlBOVBUMGdYQ0p6ZEhKcGJtZGNJanRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpSR0YwWlNodktTQjdYRzRnSUhKbGRIVnliaUJQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMblJ2VTNSeWFXNW5MbU5oYkd3b2J5a2dQVDA5SUZ3aVcyOWlhbVZqZENCRVlYUmxYVndpTzF4dWZWeHVYRzR2THlCRFFWQkJRa2xNU1ZSSlJWTmNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYzFKbGJHRjBhWFpsS0NrZ2UxeHVJQ0IwY25rZ2UxeHVJQ0FnSUhKbGRIVnliaUIwZVhCbGIyWWdTVzUwYkNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlBbUppQWhJVWx1ZEd3dVVtVnNZWFJwZG1WVWFXMWxSbTl5YldGME8xeHVJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc1OVhHNWNiaTh2SUU5Q1NrVkRWRk1nUVU1RUlFRlNVa0ZaVTF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JXRjVZbVZCY25KaGVTaDBhR2x1WnlrZ2UxeHVJQ0J5WlhSMWNtNGdRWEp5WVhrdWFYTkJjbkpoZVNoMGFHbHVaeWtnUHlCMGFHbHVaeUE2SUZ0MGFHbHVaMTA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmlaWE4wUW5rb1lYSnlMQ0JpZVN3Z1kyOXRjR0Z5WlNrZ2UxeHVJQ0JwWmlBb1lYSnlMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR0Z5Y2k1eVpXUjFZMlVvS0dKbGMzUXNJRzVsZUhRcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCd1lXbHlJRDBnVzJKNUtHNWxlSFFwTENCdVpYaDBYVHRjYmlBZ0lDQnBaaUFvSVdKbGMzUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQndZV2x5TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvWTI5dGNHRnlaU2hpWlhOMFd6QmRMQ0J3WVdseVd6QmRLU0E5UFQwZ1ltVnpkRnN3WFNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKbGMzUTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3WVdseU8xeHVJQ0FnSUgxY2JpQWdmU3dnYm5Wc2JDbGJNVjA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndhV05yS0c5aWFpd2dhMlY1Y3lrZ2UxeHVJQ0J5WlhSMWNtNGdhMlY1Y3k1eVpXUjFZMlVvS0dFc0lHc3BJRDArSUh0Y2JpQWdJQ0JoVzJ0ZElEMGdiMkpxVzJ0ZE8xeHVJQ0FnSUhKbGRIVnliaUJoTzF4dUlDQjlMQ0I3ZlNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJvWVhOUGQyNVFjbTl3WlhKMGVTaHZZbW9zSUhCeWIzQXBJSHRjYmlBZ2NtVjBkWEp1SUU5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNodlltb3NJSEJ5YjNBcE8xeHVmVnh1WEc0dkx5Qk9WVTFDUlZKVElFRk9SQ0JUVkZKSlRrZFRYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYm5SbFoyVnlRbVYwZDJWbGJpaDBhR2x1Wnl3Z1ltOTBkRzl0TENCMGIzQXBJSHRjYmlBZ2NtVjBkWEp1SUdselNXNTBaV2RsY2loMGFHbHVaeWtnSmlZZ2RHaHBibWNnUGowZ1ltOTBkRzl0SUNZbUlIUm9hVzVuSUR3OUlIUnZjRHRjYm4xY2JseHVMeThnZUNBbElHNGdZblYwSUhSaGEyVnpJSFJvWlNCemFXZHVJRzltSUc0Z2FXNXpkR1ZoWkNCdlppQjRYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdabXh2YjNKTmIyUW9lQ3dnYmlrZ2UxeHVJQ0J5WlhSMWNtNGdlQ0F0SUc0Z0tpQk5ZWFJvTG1ac2IyOXlLSGdnTHlCdUtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCaFpGTjBZWEowS0dsdWNIVjBMQ0J1SUQwZ01pa2dlMXh1SUNCamIyNXpkQ0JwYzA1bFp5QTlJR2x1Y0hWMElEd2dNRHRjYmlBZ2JHVjBJSEJoWkdSbFpEdGNiaUFnYVdZZ0tHbHpUbVZuS1NCN1hHNGdJQ0FnY0dGa1pHVmtJRDBnWENJdFhDSWdLeUFvWENKY0lpQXJJQzFwYm5CMWRDa3VjR0ZrVTNSaGNuUW9iaXdnWENJd1hDSXBPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSEJoWkdSbFpDQTlJQ2hjSWx3aUlDc2dhVzV3ZFhRcExuQmhaRk4wWVhKMEtHNHNJRndpTUZ3aUtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z2NHRmtaR1ZrTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjR0Z5YzJWSmJuUmxaMlZ5S0hOMGNtbHVaeWtnZTF4dUlDQnBaaUFvYVhOVmJtUmxabWx1WldRb2MzUnlhVzVuS1NCOGZDQnpkSEpwYm1jZ1BUMDlJRzUxYkd3Z2ZId2djM1J5YVc1bklEMDlQU0JjSWx3aUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnY0dGeWMyVkpiblFvYzNSeWFXNW5MQ0F4TUNrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sUm14dllYUnBibWNvYzNSeWFXNW5LU0I3WEc0Z0lHbG1JQ2hwYzFWdVpHVm1hVzVsWkNoemRISnBibWNwSUh4OElITjBjbWx1WnlBOVBUMGdiblZzYkNCOGZDQnpkSEpwYm1jZ1BUMDlJRndpWENJcElIdGNiaUFnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJ3WVhKelpVWnNiMkYwS0hOMGNtbHVaeWs3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCaGNuTmxUV2xzYkdsektHWnlZV04wYVc5dUtTQjdYRzRnSUM4dklGSmxkSFZ5YmlCMWJtUmxabWx1WldRZ0tHbHVjM1JsWVdRZ2IyWWdNQ2tnYVc0Z2RHaGxjMlVnWTJGelpYTXNJSGRvWlhKbElHWnlZV04wYVc5dUlHbHpJRzV2ZENCelpYUmNiaUFnYVdZZ0tHbHpWVzVrWldacGJtVmtLR1p5WVdOMGFXOXVLU0I4ZkNCbWNtRmpkR2x2YmlBOVBUMGdiblZzYkNCOGZDQm1jbUZqZEdsdmJpQTlQVDBnWENKY0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ1kyOXVjM1FnWmlBOUlIQmhjbk5sUm14dllYUW9YQ0l3TGx3aUlDc2dabkpoWTNScGIyNHBJQ29nTVRBd01EdGNiaUFnSUNCeVpYUjFjbTRnVFdGMGFDNW1iRzl2Y2lobUtUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTkxYm1SVWJ5aHVkVzFpWlhJc0lHUnBaMmwwY3l3Z2RHOTNZWEprV21WeWJ5QTlJR1poYkhObEtTQjdYRzRnSUdOdmJuTjBJR1poWTNSdmNpQTlJREV3SUNvcUlHUnBaMmwwY3l4Y2JpQWdJQ0J5YjNWdVpHVnlJRDBnZEc5M1lYSmtXbVZ5YnlBL0lFMWhkR2d1ZEhKMWJtTWdPaUJOWVhSb0xuSnZkVzVrTzF4dUlDQnlaWFIxY200Z2NtOTFibVJsY2lodWRXMWlaWElnS2lCbVlXTjBiM0lwSUM4Z1ptRmpkRzl5TzF4dWZWeHVYRzR2THlCRVFWUkZJRUpCVTBsRFUxeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5NWldGd1dXVmhjaWg1WldGeUtTQjdYRzRnSUhKbGRIVnliaUI1WldGeUlDVWdOQ0E5UFQwZ01DQW1KaUFvZVdWaGNpQWxJREV3TUNBaFBUMGdNQ0I4ZkNCNVpXRnlJQ1VnTkRBd0lEMDlQU0F3S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JoZVhOSmJsbGxZWElvZVdWaGNpa2dlMXh1SUNCeVpYUjFjbTRnYVhOTVpXRndXV1ZoY2loNVpXRnlLU0EvSURNMk5pQTZJRE0yTlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JoZVhOSmJrMXZiblJvS0hsbFlYSXNJRzF2Ym5Sb0tTQjdYRzRnSUdOdmJuTjBJRzF2WkUxdmJuUm9JRDBnWm14dmIzSk5iMlFvYlc5dWRHZ2dMU0F4TENBeE1pa2dLeUF4TEZ4dUlDQWdJRzF2WkZsbFlYSWdQU0I1WldGeUlDc2dLRzF2Ym5Sb0lDMGdiVzlrVFc5dWRHZ3BJQzhnTVRJN1hHNWNiaUFnYVdZZ0tHMXZaRTF2Ym5Sb0lEMDlQU0F5S1NCN1hHNGdJQ0FnY21WMGRYSnVJR2x6VEdWaGNGbGxZWElvYlc5a1dXVmhjaWtnUHlBeU9TQTZJREk0TzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJiTXpFc0lHNTFiR3dzSURNeExDQXpNQ3dnTXpFc0lETXdMQ0F6TVN3Z016RXNJRE13TENBek1Td2dNekFzSURNeFhWdHRiMlJOYjI1MGFDQXRJREZkTzF4dUlDQjlYRzU5WEc1Y2JpOHZJR052ZG1WeWRDQmhJR05oYkdWdVpHRnlJRzlpYW1WamRDQjBieUJoSUd4dlkyRnNJSFJwYldWemRHRnRjQ0FvWlhCdlkyZ3NJR0oxZENCM2FYUm9JSFJvWlNCdlptWnpaWFFnWW1GclpXUWdhVzRwWEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYjJKcVZHOU1iMk5oYkZSVEtHOWlhaWtnZTF4dUlDQnNaWFFnWkNBOUlFUmhkR1V1VlZSREtGeHVJQ0FnSUc5aWFpNTVaV0Z5TEZ4dUlDQWdJRzlpYWk1dGIyNTBhQ0F0SURFc1hHNGdJQ0FnYjJKcUxtUmhlU3hjYmlBZ0lDQnZZbW91YUc5MWNpeGNiaUFnSUNCdlltb3ViV2x1ZFhSbExGeHVJQ0FnSUc5aWFpNXpaV052Ym1Rc1hHNGdJQ0FnYjJKcUxtMXBiR3hwYzJWamIyNWtYRzRnSUNrN1hHNWNiaUFnTHk4Z1ptOXlJR3hsWjJGamVTQnlaV0Z6YjI1ekxDQjVaV0Z5Y3lCaVpYUjNaV1Z1SURBZ1lXNWtJRGs1SUdGeVpTQnBiblJsY25CeVpYUmxaQ0JoY3lBeE9WaFlPeUJ5WlhabGNuUWdkR2hoZEZ4dUlDQnBaaUFvYjJKcUxubGxZWElnUENBeE1EQWdKaVlnYjJKcUxubGxZWElnUGowZ01Da2dlMXh1SUNBZ0lHUWdQU0J1WlhjZ1JHRjBaU2hrS1R0Y2JpQWdJQ0JrTG5ObGRGVlVRMFoxYkd4WlpXRnlLR1F1WjJWMFZWUkRSblZzYkZsbFlYSW9LU0F0SURFNU1EQXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQXJaRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIZGxaV3R6U1c1WFpXVnJXV1ZoY2loM1pXVnJXV1ZoY2lrZ2UxeHVJQ0JqYjI1emRDQndNU0E5WEc0Z0lDQWdJQ0FvZDJWbGExbGxZWElnSzF4dUlDQWdJQ0FnSUNCTllYUm9MbVpzYjI5eUtIZGxaV3RaWldGeUlDOGdOQ2tnTFZ4dUlDQWdJQ0FnSUNCTllYUm9MbVpzYjI5eUtIZGxaV3RaWldGeUlDOGdNVEF3S1NBclhHNGdJQ0FnSUNBZ0lFMWhkR2d1Wm14dmIzSW9kMlZsYTFsbFlYSWdMeUEwTURBcEtTQWxYRzRnSUNBZ0lDQTNMRnh1SUNBZ0lHeGhjM1FnUFNCM1pXVnJXV1ZoY2lBdElERXNYRzRnSUNBZ2NESWdQU0FvYkdGemRDQXJJRTFoZEdndVpteHZiM0lvYkdGemRDQXZJRFFwSUMwZ1RXRjBhQzVtYkc5dmNpaHNZWE4wSUM4Z01UQXdLU0FySUUxaGRHZ3VabXh2YjNJb2JHRnpkQ0F2SURRd01Da3BJQ1VnTnp0Y2JpQWdjbVYwZFhKdUlIQXhJRDA5UFNBMElIeDhJSEF5SUQwOVBTQXpJRDhnTlRNZ09pQTFNanRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIVnVkSEoxYm1OaGRHVlpaV0Z5S0hsbFlYSXBJSHRjYmlBZ2FXWWdLSGxsWVhJZ1BpQTVPU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjVaV0Z5TzF4dUlDQjlJR1ZzYzJVZ2NtVjBkWEp1SUhsbFlYSWdQaUEyTUNBL0lERTVNREFnS3lCNVpXRnlJRG9nTWpBd01DQXJJSGxsWVhJN1hHNTlYRzVjYmk4dklGQkJVbE5KVGtkY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sV205dVpVbHVabThvZEhNc0lHOW1abk5sZEVadmNtMWhkQ3dnYkc5allXeGxMQ0IwYVcxbFdtOXVaU0E5SUc1MWJHd3BJSHRjYmlBZ1kyOXVjM1FnWkdGMFpTQTlJRzVsZHlCRVlYUmxLSFJ6S1N4Y2JpQWdJQ0JwYm5Sc1QzQjBjeUE5SUh0Y2JpQWdJQ0FnSUdodmRYSkRlV05zWlRvZ1hDSm9Nak5jSWl4Y2JpQWdJQ0FnSUhsbFlYSTZJRndpYm5WdFpYSnBZMXdpTEZ4dUlDQWdJQ0FnYlc5dWRHZzZJRndpTWkxa2FXZHBkRndpTEZ4dUlDQWdJQ0FnWkdGNU9pQmNJakl0WkdsbmFYUmNJaXhjYmlBZ0lDQWdJR2h2ZFhJNklGd2lNaTFrYVdkcGRGd2lMRnh1SUNBZ0lDQWdiV2x1ZFhSbE9pQmNJakl0WkdsbmFYUmNJaXhjYmlBZ0lDQjlPMXh1WEc0Z0lHbG1JQ2gwYVcxbFdtOXVaU2tnZTF4dUlDQWdJR2x1ZEd4UGNIUnpMblJwYldWYWIyNWxJRDBnZEdsdFpWcHZibVU3WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0J0YjJScFptbGxaQ0E5SUhzZ2RHbHRaVnB2Ym1WT1lXMWxPaUJ2Wm1aelpYUkdiM0p0WVhRc0lDNHVMbWx1ZEd4UGNIUnpJSDA3WEc1Y2JpQWdZMjl1YzNRZ2NHRnljMlZrSUQwZ2JtVjNJRWx1ZEd3dVJHRjBaVlJwYldWR2IzSnRZWFFvYkc5allXeGxMQ0J0YjJScFptbGxaQ2xjYmlBZ0lDQXVabTl5YldGMFZHOVFZWEowY3loa1lYUmxLVnh1SUNBZ0lDNW1hVzVrS0NodEtTQTlQaUJ0TG5SNWNHVXVkRzlNYjNkbGNrTmhjMlVvS1NBOVBUMGdYQ0owYVcxbGVtOXVaVzVoYldWY0lpazdYRzRnSUhKbGRIVnliaUJ3WVhKelpXUWdQeUJ3WVhKelpXUXVkbUZzZFdVZ09pQnVkV3hzTzF4dWZWeHVYRzR2THlCemFXZHVaV1JQWm1aelpYUW9KeTAxSnl3Z0p6TXdKeWtnTFQ0Z0xUTXpNRnh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5wWjI1bFpFOW1abk5sZENodlptWkliM1Z5VTNSeUxDQnZabVpOYVc1MWRHVlRkSElwSUh0Y2JpQWdiR1YwSUc5bVpraHZkWElnUFNCd1lYSnpaVWx1ZENodlptWkliM1Z5VTNSeUxDQXhNQ2s3WEc1Y2JpQWdMeThnWkc5dUozUWdmSHdnZEdocGN5QmlaV05oZFhObElIZGxJSGRoYm5RZ2RHOGdjSEpsYzJWeWRtVWdMVEJjYmlBZ2FXWWdLRTUxYldKbGNpNXBjMDVoVGlodlptWkliM1Z5S1NrZ2UxeHVJQ0FnSUc5bVpraHZkWElnUFNBd08xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2IyWm1UV2x1SUQwZ2NHRnljMlZKYm5Rb2IyWm1UV2x1ZFhSbFUzUnlMQ0F4TUNrZ2ZId2dNQ3hjYmlBZ0lDQnZabVpOYVc1VGFXZHVaV1FnUFNCdlptWkliM1Z5SUR3Z01DQjhmQ0JQWW1wbFkzUXVhWE1vYjJabVNHOTFjaXdnTFRBcElEOGdMVzltWmsxcGJpQTZJRzltWmsxcGJqdGNiaUFnY21WMGRYSnVJRzltWmtodmRYSWdLaUEyTUNBcklHOW1aazFwYmxOcFoyNWxaRHRjYm4xY2JseHVMeThnUTA5RlVrTkpUMDVjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdGelRuVnRZbVZ5S0haaGJIVmxLU0I3WEc0Z0lHTnZibk4wSUc1MWJXVnlhV05XWVd4MVpTQTlJRTUxYldKbGNpaDJZV3gxWlNrN1hHNGdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aVltOXZiR1ZoYmx3aUlIeDhJSFpoYkhWbElEMDlQU0JjSWx3aUlIeDhJRTUxYldKbGNpNXBjMDVoVGlodWRXMWxjbWxqVm1Gc2RXVXBLVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkpiblpoYkdsa1FYSm5kVzFsYm5SRmNuSnZjaWhnU1c1MllXeHBaQ0IxYm1sMElIWmhiSFZsSUNSN2RtRnNkV1Y5WUNrN1hHNGdJSEpsZEhWeWJpQnVkVzFsY21salZtRnNkV1U3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnViM0p0WVd4cGVtVlBZbXBsWTNRb2IySnFMQ0J1YjNKdFlXeHBlbVZ5S1NCN1hHNGdJR052Ym5OMElHNXZjbTFoYkdsNlpXUWdQU0I3ZlR0Y2JpQWdabTl5SUNoamIyNXpkQ0IxSUdsdUlHOWlhaWtnZTF4dUlDQWdJR2xtSUNob1lYTlBkMjVRY205d1pYSjBlU2h2WW1vc0lIVXBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjJJRDBnYjJKcVczVmRPMXh1SUNBZ0lDQWdhV1lnS0hZZ1BUMDlJSFZ1WkdWbWFXNWxaQ0I4ZkNCMklEMDlQU0J1ZFd4c0tTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lHNXZjbTFoYkdsNlpXUmJibTl5YldGc2FYcGxjaWgxS1YwZ1BTQmhjMDUxYldKbGNpaDJLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHNXZjbTFoYkdsNlpXUTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbWIzSnRZWFJQWm1aelpYUW9iMlptYzJWMExDQm1iM0p0WVhRcElIdGNiaUFnWTI5dWMzUWdhRzkxY25NZ1BTQk5ZWFJvTG5SeWRXNWpLRTFoZEdndVlXSnpLRzltWm5ObGRDQXZJRFl3S1Nrc1hHNGdJQ0FnYldsdWRYUmxjeUE5SUUxaGRHZ3VkSEoxYm1Nb1RXRjBhQzVoWW5Nb2IyWm1jMlYwSUNVZ05qQXBLU3hjYmlBZ0lDQnphV2R1SUQwZ2IyWm1jMlYwSUQ0OUlEQWdQeUJjSWl0Y0lpQTZJRndpTFZ3aU8xeHVYRzRnSUhOM2FYUmphQ0FvWm05eWJXRjBLU0I3WEc0Z0lDQWdZMkZ6WlNCY0luTm9iM0owWENJNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWUNSN2MybG5ibjBrZTNCaFpGTjBZWEowS0dodmRYSnpMQ0F5S1gwNkpIdHdZV1JUZEdGeWRDaHRhVzUxZEdWekxDQXlLWDFnTzF4dUlDQWdJR05oYzJVZ1hDSnVZWEp5YjNkY0lqcGNiaUFnSUNBZ0lISmxkSFZ5YmlCZ0pIdHphV2R1ZlNSN2FHOTFjbk45Skh0dGFXNTFkR1Z6SUQ0Z01DQS9JR0E2Skh0dGFXNTFkR1Z6ZldBZ09pQmNJbHdpZldBN1hHNGdJQ0FnWTJGelpTQmNJblJsWTJocFpWd2lPbHh1SUNBZ0lDQWdjbVYwZFhKdUlHQWtlM05wWjI1OUpIdHdZV1JUZEdGeWRDaG9iM1Z5Y3l3Z01pbDlKSHR3WVdSVGRHRnlkQ2h0YVc1MWRHVnpMQ0F5S1gxZ08xeHVJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVW1GdVoyVkZjbkp2Y2loZ1ZtRnNkV1VnWm05eWJXRjBJQ1I3Wm05eWJXRjBmU0JwY3lCdmRYUWdiMllnY21GdVoyVWdabTl5SUhCeWIzQmxjblI1SUdadmNtMWhkR0FwTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMGFXMWxUMkpxWldOMEtHOWlhaWtnZTF4dUlDQnlaWFIxY200Z2NHbGpheWh2WW1vc0lGdGNJbWh2ZFhKY0lpd2dYQ0p0YVc1MWRHVmNJaXdnWENKelpXTnZibVJjSWl3Z1hDSnRhV3hzYVhObFkyOXVaRndpWFNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBZVzVoVW1WblpYZ2dQVnh1SUNBdlcwRXRXbUV0ZWw4ckxWMTdNU3d5TlRaOUtEODZPajljWEM5YlFTMWFZUzE2TUMwNVh5c3RYWHN4TERJMU5uMG9QenBjWEM5YlFTMWFZUzE2TUMwNVh5c3RYWHN4TERJMU5uMHBQeWsvTHp0Y2JpSXNJQ0pwYlhCdmNuUWdLaUJoY3lCR2IzSnRZWFJ6SUdaeWIyMGdYQ0l1TDJadmNtMWhkSE11YW5OY0lqdGNibWx0Y0c5eWRDQjdJSEJwWTJzZ2ZTQm1jbTl0SUZ3aUxpOTFkR2xzTG1welhDSTdYRzVjYm1aMWJtTjBhVzl1SUhOMGNtbHVaMmxtZVNodlltb3BJSHRjYmlBZ2NtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLRzlpYWl3Z1QySnFaV04wTG10bGVYTW9iMkpxS1M1emIzSjBLQ2twTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JseHVaWGh3YjNKMElHTnZibk4wSUcxdmJuUm9jMHh2Ym1jZ1BTQmJYRzRnSUZ3aVNtRnVkV0Z5ZVZ3aUxGeHVJQ0JjSWtabFluSjFZWEo1WENJc1hHNGdJRndpVFdGeVkyaGNJaXhjYmlBZ1hDSkJjSEpwYkZ3aUxGeHVJQ0JjSWsxaGVWd2lMRnh1SUNCY0lrcDFibVZjSWl4Y2JpQWdYQ0pLZFd4NVhDSXNYRzRnSUZ3aVFYVm5kWE4wWENJc1hHNGdJRndpVTJWd2RHVnRZbVZ5WENJc1hHNGdJRndpVDJOMGIySmxjbHdpTEZ4dUlDQmNJazV2ZG1WdFltVnlYQ0lzWEc0Z0lGd2lSR1ZqWlcxaVpYSmNJaXhjYmwwN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCdGIyNTBhSE5UYUc5eWRDQTlJRnRjYmlBZ1hDSktZVzVjSWl4Y2JpQWdYQ0pHWldKY0lpeGNiaUFnWENKTllYSmNJaXhjYmlBZ1hDSkJjSEpjSWl4Y2JpQWdYQ0pOWVhsY0lpeGNiaUFnWENKS2RXNWNJaXhjYmlBZ1hDSktkV3hjSWl4Y2JpQWdYQ0pCZFdkY0lpeGNiaUFnWENKVFpYQmNJaXhjYmlBZ1hDSlBZM1JjSWl4Y2JpQWdYQ0pPYjNaY0lpeGNiaUFnWENKRVpXTmNJaXhjYmwwN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCdGIyNTBhSE5PWVhKeWIzY2dQU0JiWENKS1hDSXNJRndpUmx3aUxDQmNJazFjSWl3Z1hDSkJYQ0lzSUZ3aVRWd2lMQ0JjSWtwY0lpd2dYQ0pLWENJc0lGd2lRVndpTENCY0lsTmNJaXdnWENKUFhDSXNJRndpVGx3aUxDQmNJa1JjSWwwN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRiMjUwYUhNb2JHVnVaM1JvS1NCN1hHNGdJSE4zYVhSamFDQW9iR1Z1WjNSb0tTQjdYRzRnSUNBZ1kyRnpaU0JjSW01aGNuSnZkMXdpT2x4dUlDQWdJQ0FnY21WMGRYSnVJRnN1TGk1dGIyNTBhSE5PWVhKeWIzZGRPMXh1SUNBZ0lHTmhjMlVnWENKemFHOXlkRndpT2x4dUlDQWdJQ0FnY21WMGRYSnVJRnN1TGk1dGIyNTBhSE5UYUc5eWRGMDdYRzRnSUNBZ1kyRnpaU0JjSW14dmJtZGNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmJMaTR1Ylc5dWRHaHpURzl1WjEwN1hHNGdJQ0FnWTJGelpTQmNJbTUxYldWeWFXTmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYQ0l4WENJc0lGd2lNbHdpTENCY0lqTmNJaXdnWENJMFhDSXNJRndpTlZ3aUxDQmNJalpjSWl3Z1hDSTNYQ0lzSUZ3aU9Gd2lMQ0JjSWpsY0lpd2dYQ0l4TUZ3aUxDQmNJakV4WENJc0lGd2lNVEpjSWwwN1hHNGdJQ0FnWTJGelpTQmNJakl0WkdsbmFYUmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYQ0l3TVZ3aUxDQmNJakF5WENJc0lGd2lNRE5jSWl3Z1hDSXdORndpTENCY0lqQTFYQ0lzSUZ3aU1EWmNJaXdnWENJd04xd2lMQ0JjSWpBNFhDSXNJRndpTURsY0lpd2dYQ0l4TUZ3aUxDQmNJakV4WENJc0lGd2lNVEpjSWwwN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0IzWldWclpHRjVjMHh2Ym1jZ1BTQmJYRzRnSUZ3aVRXOXVaR0Y1WENJc1hHNGdJRndpVkhWbGMyUmhlVndpTEZ4dUlDQmNJbGRsWkc1bGMyUmhlVndpTEZ4dUlDQmNJbFJvZFhKelpHRjVYQ0lzWEc0Z0lGd2lSbkpwWkdGNVhDSXNYRzRnSUZ3aVUyRjBkWEprWVhsY0lpeGNiaUFnWENKVGRXNWtZWGxjSWl4Y2JsMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQjNaV1ZyWkdGNWMxTm9iM0owSUQwZ1cxd2lUVzl1WENJc0lGd2lWSFZsWENJc0lGd2lWMlZrWENJc0lGd2lWR2gxWENJc0lGd2lSbkpwWENJc0lGd2lVMkYwWENJc0lGd2lVM1Z1WENKZE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2QyVmxhMlJoZVhOT1lYSnliM2NnUFNCYlhDSk5YQ0lzSUZ3aVZGd2lMQ0JjSWxkY0lpd2dYQ0pVWENJc0lGd2lSbHdpTENCY0lsTmNJaXdnWENKVFhDSmRPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZDJWbGEyUmhlWE1vYkdWdVozUm9LU0I3WEc0Z0lITjNhWFJqYUNBb2JHVnVaM1JvS1NCN1hHNGdJQ0FnWTJGelpTQmNJbTVoY25KdmQxd2lPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGc3VMaTUzWldWclpHRjVjMDVoY25KdmQxMDdYRzRnSUNBZ1kyRnpaU0JjSW5Ob2IzSjBYQ0k2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXeTR1TG5kbFpXdGtZWGx6VTJodmNuUmRPMXh1SUNBZ0lHTmhjMlVnWENKc2IyNW5YQ0k2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXeTR1TG5kbFpXdGtZWGx6VEc5dVoxMDdYRzRnSUNBZ1kyRnpaU0JjSW01MWJXVnlhV05jSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJiWENJeFhDSXNJRndpTWx3aUxDQmNJak5jSWl3Z1hDSTBYQ0lzSUZ3aU5Wd2lMQ0JjSWpaY0lpd2dYQ0kzWENKZE8xeHVJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYldWeWFXUnBaVzF6SUQwZ1cxd2lRVTFjSWl3Z1hDSlFUVndpWFR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdWeVlYTk1iMjVuSUQwZ1cxd2lRbVZtYjNKbElFTm9jbWx6ZEZ3aUxDQmNJa0Z1Ym04Z1JHOXRhVzVwWENKZE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pYSmhjMU5vYjNKMElEMGdXMXdpUWtOY0lpd2dYQ0pCUkZ3aVhUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHVnlZWE5PWVhKeWIzY2dQU0JiWENKQ1hDSXNJRndpUVZ3aVhUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1Z5WVhNb2JHVnVaM1JvS1NCN1hHNGdJSE4zYVhSamFDQW9iR1Z1WjNSb0tTQjdYRzRnSUNBZ1kyRnpaU0JjSW01aGNuSnZkMXdpT2x4dUlDQWdJQ0FnY21WMGRYSnVJRnN1TGk1bGNtRnpUbUZ5Y205M1hUdGNiaUFnSUNCallYTmxJRndpYzJodmNuUmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmJMaTR1WlhKaGMxTm9iM0owWFR0Y2JpQWdJQ0JqWVhObElGd2liRzl1WjF3aU9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZzdUxpNWxjbUZ6VEc5dVoxMDdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRaWEpwWkdsbGJVWnZja1JoZEdWVWFXMWxLR1IwS1NCN1hHNGdJSEpsZEhWeWJpQnRaWEpwWkdsbGJYTmJaSFF1YUc5MWNpQThJREV5SUQ4Z01DQTZJREZkTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkMlZsYTJSaGVVWnZja1JoZEdWVWFXMWxLR1IwTENCc1pXNW5kR2dwSUh0Y2JpQWdjbVYwZFhKdUlIZGxaV3RrWVhsektHeGxibWQwYUNsYlpIUXVkMlZsYTJSaGVTQXRJREZkTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiVzl1ZEdoR2IzSkVZWFJsVkdsdFpTaGtkQ3dnYkdWdVozUm9LU0I3WEc0Z0lISmxkSFZ5YmlCdGIyNTBhSE1vYkdWdVozUm9LVnRrZEM1dGIyNTBhQ0F0SURGZE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWlhKaFJtOXlSR0YwWlZScGJXVW9aSFFzSUd4bGJtZDBhQ2tnZTF4dUlDQnlaWFIxY200Z1pYSmhjeWhzWlc1bmRHZ3BXMlIwTG5sbFlYSWdQQ0F3SUQ4Z01DQTZJREZkTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdabTl5YldGMFVtVnNZWFJwZG1WVWFXMWxLSFZ1YVhRc0lHTnZkVzUwTENCdWRXMWxjbWxqSUQwZ1hDSmhiSGRoZVhOY0lpd2dibUZ5Y205M0lEMGdabUZzYzJVcElIdGNiaUFnWTI5dWMzUWdkVzVwZEhNZ1BTQjdYRzRnSUNBZ2VXVmhjbk02SUZ0Y0lubGxZWEpjSWl3Z1hDSjVjaTVjSWwwc1hHNGdJQ0FnY1hWaGNuUmxjbk02SUZ0Y0luRjFZWEowWlhKY0lpd2dYQ0p4ZEhJdVhDSmRMRnh1SUNBZ0lHMXZiblJvY3pvZ1cxd2liVzl1ZEdoY0lpd2dYQ0p0Ynk1Y0lsMHNYRzRnSUNBZ2QyVmxhM002SUZ0Y0luZGxaV3RjSWl3Z1hDSjNheTVjSWwwc1hHNGdJQ0FnWkdGNWN6b2dXMXdpWkdGNVhDSXNJRndpWkdGNVhDSXNJRndpWkdGNWMxd2lYU3hjYmlBZ0lDQm9iM1Z5Y3pvZ1cxd2lhRzkxY2x3aUxDQmNJbWh5TGx3aVhTeGNiaUFnSUNCdGFXNTFkR1Z6T2lCYlhDSnRhVzUxZEdWY0lpd2dYQ0p0YVc0dVhDSmRMRnh1SUNBZ0lITmxZMjl1WkhNNklGdGNJbk5sWTI5dVpGd2lMQ0JjSW5ObFl5NWNJbDBzWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnYkdGemRHRmliR1VnUFNCYlhDSm9iM1Z5YzF3aUxDQmNJbTFwYm5WMFpYTmNJaXdnWENKelpXTnZibVJ6WENKZExtbHVaR1Y0VDJZb2RXNXBkQ2tnUFQwOUlDMHhPMXh1WEc0Z0lHbG1JQ2h1ZFcxbGNtbGpJRDA5UFNCY0ltRjFkRzljSWlBbUppQnNZWE4wWVdKc1pTa2dlMXh1SUNBZ0lHTnZibk4wSUdselJHRjVJRDBnZFc1cGRDQTlQVDBnWENKa1lYbHpYQ0k3WEc0Z0lDQWdjM2RwZEdOb0lDaGpiM1Z1ZENrZ2UxeHVJQ0FnSUNBZ1kyRnpaU0F4T2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhORVlYa2dQeUJjSW5SdmJXOXljbTkzWENJZ09pQmdibVY0ZENBa2UzVnVhWFJ6VzNWdWFYUmRXekJkZldBN1hHNGdJQ0FnSUNCallYTmxJQzB4T2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhORVlYa2dQeUJjSW5sbGMzUmxjbVJoZVZ3aUlEb2dZR3hoYzNRZ0pIdDFibWwwYzF0MWJtbDBYVnN3WFgxZ08xeHVJQ0FnSUNBZ1kyRnpaU0F3T2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhORVlYa2dQeUJjSW5SdlpHRjVYQ0lnT2lCZ2RHaHBjeUFrZTNWdWFYUnpXM1Z1YVhSZFd6QmRmV0E3WEc0Z0lDQWdJQ0JrWldaaGRXeDBPaUF2THlCbVlXeHNJSFJvY205MVoyaGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQmpiMjV6ZENCcGMwbHVVR0Z6ZENBOUlFOWlhbVZqZEM1cGN5aGpiM1Z1ZEN3Z0xUQXBJSHg4SUdOdmRXNTBJRHdnTUN4Y2JpQWdJQ0JtYlhSV1lXeDFaU0E5SUUxaGRHZ3VZV0p6S0dOdmRXNTBLU3hjYmlBZ0lDQnphVzVuZFd4aGNpQTlJR1p0ZEZaaGJIVmxJRDA5UFNBeExGeHVJQ0FnSUd4cGJGVnVhWFJ6SUQwZ2RXNXBkSE5iZFc1cGRGMHNYRzRnSUNBZ1ptMTBWVzVwZENBOUlHNWhjbkp2ZDF4dUlDQWdJQ0FnUHlCemFXNW5kV3hoY2x4dUlDQWdJQ0FnSUNBL0lHeHBiRlZ1YVhSeld6RmRYRzRnSUNBZ0lDQWdJRG9nYkdsc1ZXNXBkSE5iTWwwZ2ZId2diR2xzVlc1cGRITmJNVjFjYmlBZ0lDQWdJRG9nYzJsdVozVnNZWEpjYmlBZ0lDQWdJRDhnZFc1cGRITmJkVzVwZEYxYk1GMWNiaUFnSUNBZ0lEb2dkVzVwZER0Y2JpQWdjbVYwZFhKdUlHbHpTVzVRWVhOMElEOGdZQ1I3Wm0xMFZtRnNkV1Y5SUNSN1ptMTBWVzVwZEgwZ1lXZHZZQ0E2SUdCcGJpQWtlMlp0ZEZaaGJIVmxmU0FrZTJadGRGVnVhWFI5WUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1p2Y20xaGRGTjBjbWx1WnlocmJtOTNia1p2Y20xaGRDa2dlMXh1SUNBdkx5QjBhR1Z6WlNCaGJHd2dhR0YyWlNCMGFHVWdiMlptYzJWMGN5QnlaVzF2ZG1Wa0lHSmxZMkYxYzJVZ2QyVWdaRzl1SjNRZ2FHRjJaU0JoWTJObGMzTWdkRzhnZEdobGJWeHVJQ0F2THlCM2FYUm9iM1YwSUdGc2JDQjBhR1VnYVc1MGJDQnpkSFZtWmlCMGFHbHpJR2x6SUdKaFkydG1hV3hzYVc1blhHNGdJR052Ym5OMElHWnBiSFJsY21Wa0lEMGdjR2xqYXlocmJtOTNia1p2Y20xaGRDd2dXMXh1SUNBZ0lDQWdYQ0ozWldWclpHRjVYQ0lzWEc0Z0lDQWdJQ0JjSW1WeVlWd2lMRnh1SUNBZ0lDQWdYQ0o1WldGeVhDSXNYRzRnSUNBZ0lDQmNJbTF2Ym5Sb1hDSXNYRzRnSUNBZ0lDQmNJbVJoZVZ3aUxGeHVJQ0FnSUNBZ1hDSm9iM1Z5WENJc1hHNGdJQ0FnSUNCY0ltMXBiblYwWlZ3aUxGeHVJQ0FnSUNBZ1hDSnpaV052Ym1SY0lpeGNiaUFnSUNBZ0lGd2lkR2x0WlZwdmJtVk9ZVzFsWENJc1hHNGdJQ0FnSUNCY0ltaHZkWEpEZVdOc1pWd2lMRnh1SUNBZ0lGMHBMRnh1SUNBZ0lHdGxlU0E5SUhOMGNtbHVaMmxtZVNobWFXeDBaWEpsWkNrc1hHNGdJQ0FnWkdGMFpWUnBiV1ZJZFdkbElEMGdYQ0pGUlVWRkxDQk1URXhNSUdRc0lIbDVlWGtzSUdnNmJXMGdZVndpTzF4dUlDQnpkMmwwWTJnZ0tHdGxlU2tnZTF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVJFRlVSVjlUU0U5U1ZDazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSk5MMlF2ZVhsNWVWd2lPMXh1SUNBZ0lHTmhjMlVnYzNSeWFXNW5hV1o1S0VadmNtMWhkSE11UkVGVVJWOU5SVVFwT2x4dUlDQWdJQ0FnY21WMGRYSnVJRndpVEV4TUlHUXNJSGw1ZVhsY0lqdGNiaUFnSUNCallYTmxJSE4wY21sdVoybG1lU2hHYjNKdFlYUnpMa1JCVkVWZlRVVkVYMWRKVkVoZlYwVkZTMFJCV1NrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKRlJVVXNJRXhNVENCa0xDQjVlWGw1WENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NUVRVlJGWDBaVlRFd3BPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lURXhNVENCa0xDQjVlWGw1WENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NUVRVlJGWDBoVlIwVXBPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lSVVZGUlN3Z1RFeE1UQ0JrTENCNWVYbDVYQ0k3WEc0Z0lDQWdZMkZ6WlNCemRISnBibWRwWm5rb1JtOXliV0YwY3k1VVNVMUZYMU5KVFZCTVJTazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSm9PbTF0SUdGY0lqdGNiaUFnSUNCallYTmxJSE4wY21sdVoybG1lU2hHYjNKdFlYUnpMbFJKVFVWZlYwbFVTRjlUUlVOUFRrUlRLVHBjYmlBZ0lDQWdJSEpsZEhWeWJpQmNJbWc2YlcwNmMzTWdZVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVZFbE5SVjlYU1ZSSVgxTklUMUpVWDA5R1JsTkZWQ2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pvT20xdElHRmNJanRjYmlBZ0lDQmpZWE5sSUhOMGNtbHVaMmxtZVNoR2IzSnRZWFJ6TGxSSlRVVmZWMGxVU0Y5TVQwNUhYMDlHUmxORlZDazZYRzRnSUNBZ0lDQnlaWFIxY200Z1hDSm9PbTF0SUdGY0lqdGNiaUFnSUNCallYTmxJSE4wY21sdVoybG1lU2hHYjNKdFlYUnpMbFJKVFVWZk1qUmZVMGxOVUV4RktUcGNiaUFnSUNBZ0lISmxkSFZ5YmlCY0lraElPbTF0WENJN1hHNGdJQ0FnWTJGelpTQnpkSEpwYm1kcFpua29SbTl5YldGMGN5NVVTVTFGWHpJMFgxZEpWRWhmVTBWRFQwNUVVeWs2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pJU0RwdGJUcHpjMXdpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVZFbE5SVjh5TkY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKSVNEcHRiVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVZFbE5SVjh5TkY5WFNWUklYMHhQVGtkZlQwWkdVMFZVS1RwY2JpQWdJQ0FnSUhKbGRIVnliaUJjSWtoSU9tMXRYQ0k3WEc0Z0lDQWdZMkZ6WlNCemRISnBibWRwWm5rb1JtOXliV0YwY3k1RVFWUkZWRWxOUlY5VFNFOVNWQ2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pOTDJRdmVYbDVlU3dnYURwdGJTQmhYQ0k3WEc0Z0lDQWdZMkZ6WlNCemRISnBibWRwWm5rb1JtOXliV0YwY3k1RVFWUkZWRWxOUlY5TlJVUXBPbHh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lURXhNSUdRc0lIbDVlWGtzSUdnNmJXMGdZVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlJsVk1UQ2s2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdYQ0pNVEV4TUlHUXNJSGw1ZVhrc0lHZzZiVzBnWVZ3aU8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZTRlZIUlNrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWkdGMFpWUnBiV1ZJZFdkbE8xeHVJQ0FnSUdOaGMyVWdjM1J5YVc1bmFXWjVLRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZVMGhQVWxSZlYwbFVTRjlUUlVOUFRrUlRLVHBjYmlBZ0lDQWdJSEpsZEhWeWJpQmNJazB2WkM5NWVYbDVMQ0JvT20xdE9uTnpJR0ZjSWp0Y2JpQWdJQ0JqWVhObElITjBjbWx1WjJsbWVTaEdiM0p0WVhSekxrUkJWRVZVU1UxRlgwMUZSRjlYU1ZSSVgxTkZRMDlPUkZNcE9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVRFeE1JR1FzSUhsNWVYa3NJR2c2YlcwNmMzTWdZVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlRVVkVYMWRKVkVoZlYwVkZTMFJCV1NrNlhHNGdJQ0FnSUNCeVpYUjFjbTRnWENKRlJVVXNJR1FnVEV4TUlIbDVlWGtzSUdnNmJXMGdZVndpTzF4dUlDQWdJR05oYzJVZ2MzUnlhVzVuYVdaNUtFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlJsVk1URjlYU1ZSSVgxTkZRMDlPUkZNcE9seHVJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVRFeE1UQ0JrTENCNWVYbDVMQ0JvT20xdE9uTnpJR0ZjSWp0Y2JpQWdJQ0JqWVhObElITjBjbWx1WjJsbWVTaEdiM0p0WVhSekxrUkJWRVZVU1UxRlgwaFZSMFZmVjBsVVNGOVRSVU5QVGtSVEtUcGNiaUFnSUNBZ0lISmxkSFZ5YmlCY0lrVkZSVVVzSUV4TVRFd2daQ3dnZVhsNWVTd2dhRHB0YlRwemN5QmhYQ0k3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1lYUmxWR2x0WlVoMVoyVTdYRzRnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnS2lCaGN5QkZibWRzYVhOb0lHWnliMjBnWENJdUwyVnVaMnhwYzJndWFuTmNJanRjYm1sdGNHOXlkQ0FxSUdGeklFWnZjbTFoZEhNZ1puSnZiU0JjSWk0dlptOXliV0YwY3k1cWMxd2lPMXh1YVcxd2IzSjBJSHNnY0dGa1UzUmhjblFnZlNCbWNtOXRJRndpTGk5MWRHbHNMbXB6WENJN1hHNWNibVoxYm1OMGFXOXVJSE4wY21sdVoybG1lVlJ2YTJWdWN5aHpjR3hwZEhNc0lIUnZhMlZ1Vkc5VGRISnBibWNwSUh0Y2JpQWdiR1YwSUhNZ1BTQmNJbHdpTzF4dUlDQm1iM0lnS0dOdmJuTjBJSFJ2YTJWdUlHOW1JSE53YkdsMGN5a2dlMXh1SUNBZ0lHbG1JQ2gwYjJ0bGJpNXNhWFJsY21Gc0tTQjdYRzRnSUNBZ0lDQnpJQ3M5SUhSdmEyVnVMblpoYkR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjeUFyUFNCMGIydGxibFJ2VTNSeWFXNW5LSFJ2YTJWdUxuWmhiQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQnpPMXh1ZlZ4dVhHNWpiMjV6ZENCdFlXTnliMVJ2YTJWdVZHOUdiM0p0WVhSUGNIUnpJRDBnZTF4dUlDQkVPaUJHYjNKdFlYUnpMa1JCVkVWZlUwaFBVbFFzWEc0Z0lFUkVPaUJHYjNKdFlYUnpMa1JCVkVWZlRVVkVMRnh1SUNCRVJFUTZJRVp2Y20xaGRITXVSRUZVUlY5R1ZVeE1MRnh1SUNCRVJFUkVPaUJHYjNKdFlYUnpMa1JCVkVWZlNGVkhSU3hjYmlBZ2REb2dSbTl5YldGMGN5NVVTVTFGWDFOSlRWQk1SU3hjYmlBZ2RIUTZJRVp2Y20xaGRITXVWRWxOUlY5WFNWUklYMU5GUTA5T1JGTXNYRzRnSUhSMGREb2dSbTl5YldGMGN5NVVTVTFGWDFkSlZFaGZVMGhQVWxSZlQwWkdVMFZVTEZ4dUlDQjBkSFIwT2lCR2IzSnRZWFJ6TGxSSlRVVmZWMGxVU0Y5TVQwNUhYMDlHUmxORlZDeGNiaUFnVkRvZ1JtOXliV0YwY3k1VVNVMUZYekkwWDFOSlRWQk1SU3hjYmlBZ1ZGUTZJRVp2Y20xaGRITXVWRWxOUlY4eU5GOVhTVlJJWDFORlEwOU9SRk1zWEc0Z0lGUlVWRG9nUm05eWJXRjBjeTVVU1UxRlh6STBYMWRKVkVoZlUwaFBVbFJmVDBaR1UwVlVMRnh1SUNCVVZGUlVPaUJHYjNKdFlYUnpMbFJKVFVWZk1qUmZWMGxVU0Y5TVQwNUhYMDlHUmxORlZDeGNiaUFnWmpvZ1JtOXliV0YwY3k1RVFWUkZWRWxOUlY5VFNFOVNWQ3hjYmlBZ1ptWTZJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZUVVZFTEZ4dUlDQm1abVk2SUVadmNtMWhkSE11UkVGVVJWUkpUVVZmUmxWTVRDeGNiaUFnWm1abVpqb2dSbTl5YldGMGN5NUVRVlJGVkVsTlJWOUlWVWRGTEZ4dUlDQkdPaUJHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMU5JVDFKVVgxZEpWRWhmVTBWRFQwNUVVeXhjYmlBZ1JrWTZJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZUVVZFWDFkSlZFaGZVMFZEVDA1RVV5eGNiaUFnUmtaR09pQkdiM0p0WVhSekxrUkJWRVZVU1UxRlgwWlZURXhmVjBsVVNGOVRSVU5QVGtSVExGeHVJQ0JHUmtaR09pQkdiM0p0WVhSekxrUkJWRVZVU1UxRlgwaFZSMFZmVjBsVVNGOVRSVU5QVGtSVExGeHVmVHRjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJR05zWVhOeklFWnZjbTFoZEhSbGNpQjdYRzRnSUhOMFlYUnBZeUJqY21WaGRHVW9iRzlqWVd4bExDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRVp2Y20xaGRIUmxjaWhzYjJOaGJHVXNJRzl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklIQmhjbk5sUm05eWJXRjBLR1p0ZENrZ2UxeHVJQ0FnSUd4bGRDQmpkWEp5Wlc1MElEMGdiblZzYkN4Y2JpQWdJQ0FnSUdOMWNuSmxiblJHZFd4c0lEMGdYQ0pjSWl4Y2JpQWdJQ0FnSUdKeVlXTnJaWFJsWkNBOUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OMElITndiR2wwY3lBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dabTEwTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaklEMGdabTEwTG1Ob1lYSkJkQ2hwS1R0Y2JpQWdJQ0FnSUdsbUlDaGpJRDA5UFNCY0lpZGNJaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZM1Z5Y21WdWRFWjFiR3d1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSE53YkdsMGN5NXdkWE5vS0hzZ2JHbDBaWEpoYkRvZ1luSmhZMnRsZEdWa0xDQjJZV3c2SUdOMWNuSmxiblJHZFd4c0lIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOMWNuSmxiblFnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBSblZzYkNBOUlGd2lYQ0k3WEc0Z0lDQWdJQ0FnSUdKeVlXTnJaWFJsWkNBOUlDRmljbUZqYTJWMFpXUTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR0p5WVdOclpYUmxaQ2tnZTF4dUlDQWdJQ0FnSUNCamRYSnlaVzUwUm5Wc2JDQXJQU0JqTzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNoaklEMDlQU0JqZFhKeVpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUdOMWNuSmxiblJHZFd4c0lDczlJR003WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzVnljbVZ1ZEVaMWJHd3ViR1Z1WjNSb0lENGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lITndiR2wwY3k1d2RYTm9LSHNnYkdsMFpYSmhiRG9nWm1Gc2MyVXNJSFpoYkRvZ1kzVnljbVZ1ZEVaMWJHd2dmU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1kzVnljbVZ1ZEVaMWJHd2dQU0JqTzF4dUlDQWdJQ0FnSUNCamRYSnlaVzUwSUQwZ1l6dGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9ZM1Z5Y21WdWRFWjFiR3d1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ2MzQnNhWFJ6TG5CMWMyZ29leUJzYVhSbGNtRnNPaUJpY21GamEyVjBaV1FzSUhaaGJEb2dZM1Z5Y21WdWRFWjFiR3dnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE53YkdsMGN6dGNiaUFnZlZ4dVhHNGdJSE4wWVhScFl5QnRZV055YjFSdmEyVnVWRzlHYjNKdFlYUlBjSFJ6S0hSdmEyVnVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHMWhZM0p2Vkc5clpXNVViMFp2Y20xaGRFOXdkSE5iZEc5clpXNWRPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2JHOWpZV3hsTENCbWIzSnRZWFJQY0hSektTQjdYRzRnSUNBZ2RHaHBjeTV2Y0hSeklEMGdabTl5YldGMFQzQjBjenRjYmlBZ0lDQjBhR2x6TG14dll5QTlJR3h2WTJGc1pUdGNiaUFnSUNCMGFHbHpMbk41YzNSbGJVeHZZeUE5SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0JtYjNKdFlYUlhhWFJvVTNsemRHVnRSR1ZtWVhWc2RDaGtkQ3dnYjNCMGN5a2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTjVjM1JsYlV4dll5QTlQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1emVYTjBaVzFNYjJNZ1BTQjBhR2x6TG14dll5NXlaV1JsWm1GMWJIUlViMU41YzNSbGJTZ3BPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JrWmlBOUlIUm9hWE11YzNsemRHVnRURzlqTG1SMFJtOXliV0YwZEdWeUtHUjBMQ0I3SUM0dUxuUm9hWE11YjNCMGN5d2dMaTR1YjNCMGN5QjlLVHRjYmlBZ0lDQnlaWFIxY200Z1pHWXVabTl5YldGMEtDazdYRzRnSUgxY2JseHVJQ0JtYjNKdFlYUkVZWFJsVkdsdFpTaGtkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaR1lnUFNCMGFHbHpMbXh2WXk1a2RFWnZjbTFoZEhSbGNpaGtkQ3dnZXlBdUxpNTBhR2x6TG05d2RITXNJQzR1TG05d2RITWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHUm1MbVp2Y20xaGRDZ3BPMXh1SUNCOVhHNWNiaUFnWm05eWJXRjBSR0YwWlZScGJXVlFZWEowY3loa2RDd2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1pHWWdQU0IwYUdsekxteHZZeTVrZEVadmNtMWhkSFJsY2loa2RDd2dleUF1TGk1MGFHbHpMbTl3ZEhNc0lDNHVMbTl3ZEhNZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUdSbUxtWnZjbTFoZEZSdlVHRnlkSE1vS1R0Y2JpQWdmVnh1WEc0Z0lISmxjMjlzZG1Wa1QzQjBhVzl1Y3loa2RDd2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1pHWWdQU0IwYUdsekxteHZZeTVrZEVadmNtMWhkSFJsY2loa2RDd2dleUF1TGk1MGFHbHpMbTl3ZEhNc0lDNHVMbTl3ZEhNZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUdSbUxuSmxjMjlzZG1Wa1QzQjBhVzl1Y3lncE8xeHVJQ0I5WEc1Y2JpQWdiblZ0S0c0c0lIQWdQU0F3S1NCN1hHNGdJQ0FnTHk4Z2QyVWdaMlYwSUhOdmJXVWdjR1Z5WmlCdmRYUWdiMllnWkc5cGJtY2dkR2hwY3lCb1pYSmxMQ0JoYm01dmVXbHVaMng1WEc0Z0lDQWdhV1lnS0hSb2FYTXViM0IwY3k1bWIzSmpaVk5wYlhCc1pTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIQmhaRk4wWVhKMEtHNHNJSEFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHOXdkSE1nUFNCN0lDNHVMblJvYVhNdWIzQjBjeUI5TzF4dVhHNGdJQ0FnYVdZZ0tIQWdQaUF3S1NCN1hHNGdJQ0FnSUNCdmNIUnpMbkJoWkZSdklEMGdjRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVzYjJNdWJuVnRZbVZ5Um05eWJXRjBkR1Z5S0c5d2RITXBMbVp2Y20xaGRDaHVLVHRjYmlBZ2ZWeHVYRzRnSUdadmNtMWhkRVJoZEdWVWFXMWxSbkp2YlZOMGNtbHVaeWhrZEN3Z1ptMTBLU0I3WEc0Z0lDQWdZMjl1YzNRZ2EyNXZkMjVGYm1kc2FYTm9JRDBnZEdocGN5NXNiMk11YkdsemRHbHVaMDF2WkdVb0tTQTlQVDBnWENKbGJsd2lMRnh1SUNBZ0lDQWdkWE5sUkdGMFpWUnBiV1ZHYjNKdFlYUjBaWElnUFNCMGFHbHpMbXh2WXk1dmRYUndkWFJEWVd4bGJtUmhjaUFtSmlCMGFHbHpMbXh2WXk1dmRYUndkWFJEWVd4bGJtUmhjaUFoUFQwZ1hDSm5jbVZuYjNKNVhDSXNYRzRnSUNBZ0lDQnpkSEpwYm1jZ1BTQW9iM0IwY3l3Z1pYaDBjbUZqZENrZ1BUNGdkR2hwY3k1c2IyTXVaWGgwY21GamRDaGtkQ3dnYjNCMGN5d2daWGgwY21GamRDa3NYRzRnSUNBZ0lDQm1iM0p0WVhSUFptWnpaWFFnUFNBb2IzQjBjeWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWkhRdWFYTlBabVp6WlhSR2FYaGxaQ0FtSmlCa2RDNXZabVp6WlhRZ1BUMDlJREFnSmlZZ2IzQjBjeTVoYkd4dmQxb3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWENKYVhDSTdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkhRdWFYTldZV3hwWkNBL0lHUjBMbnB2Ym1VdVptOXliV0YwVDJabWMyVjBLR1IwTG5SekxDQnZjSFJ6TG1admNtMWhkQ2tnT2lCY0lsd2lPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJRzFsY21sa2FXVnRJRDBnS0NrZ1BUNWNiaUFnSUNBZ0lDQWdhMjV2ZDI1RmJtZHNhWE5vWEc0Z0lDQWdJQ0FnSUNBZ1B5QkZibWRzYVhOb0xtMWxjbWxrYVdWdFJtOXlSR0YwWlZScGJXVW9aSFFwWEc0Z0lDQWdJQ0FnSUNBZ09pQnpkSEpwYm1jb2V5Qm9iM1Z5T2lCY0ltNTFiV1Z5YVdOY0lpd2dhRzkxY2tONVkyeGxPaUJjSW1neE1sd2lJSDBzSUZ3aVpHRjVjR1Z5YVc5a1hDSXBMRnh1SUNBZ0lDQWdiVzl1ZEdnZ1BTQW9iR1Z1WjNSb0xDQnpkR0Z1WkdGc2IyNWxLU0E5UGx4dUlDQWdJQ0FnSUNCcmJtOTNia1Z1WjJ4cGMyaGNiaUFnSUNBZ0lDQWdJQ0EvSUVWdVoyeHBjMmd1Ylc5dWRHaEdiM0pFWVhSbFZHbHRaU2hrZEN3Z2JHVnVaM1JvS1Z4dUlDQWdJQ0FnSUNBZ0lEb2djM1J5YVc1bktITjBZVzVrWVd4dmJtVWdQeUI3SUcxdmJuUm9PaUJzWlc1bmRHZ2dmU0E2SUhzZ2JXOXVkR2c2SUd4bGJtZDBhQ3dnWkdGNU9pQmNJbTUxYldWeWFXTmNJaUI5TENCY0ltMXZiblJvWENJcExGeHVJQ0FnSUNBZ2QyVmxhMlJoZVNBOUlDaHNaVzVuZEdnc0lITjBZVzVrWVd4dmJtVXBJRDArWEc0Z0lDQWdJQ0FnSUd0dWIzZHVSVzVuYkdsemFGeHVJQ0FnSUNBZ0lDQWdJRDhnUlc1bmJHbHphQzUzWldWclpHRjVSbTl5UkdGMFpWUnBiV1VvWkhRc0lHeGxibWQwYUNsY2JpQWdJQ0FnSUNBZ0lDQTZJSE4wY21sdVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhibVJoYkc5dVpTQS9JSHNnZDJWbGEyUmhlVG9nYkdWdVozUm9JSDBnT2lCN0lIZGxaV3RrWVhrNklHeGxibWQwYUN3Z2JXOXVkR2c2SUZ3aWJHOXVaMXdpTENCa1lYazZJRndpYm5WdFpYSnBZMXdpSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUZ3aWQyVmxhMlJoZVZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnYldGNVltVk5ZV055YnlBOUlDaDBiMnRsYmlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm1iM0p0WVhSUGNIUnpJRDBnUm05eWJXRjBkR1Z5TG0xaFkzSnZWRzlyWlc1VWIwWnZjbTFoZEU5d2RITW9kRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWm05eWJXRjBUM0IwY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1admNtMWhkRmRwZEdoVGVYTjBaVzFFWldaaGRXeDBLR1IwTENCbWIzSnRZWFJQY0hSektUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkRzlyWlc0N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmxjbUVnUFNBb2JHVnVaM1JvS1NBOVBseHVJQ0FnSUNBZ0lDQnJibTkzYmtWdVoyeHBjMmdnUHlCRmJtZHNhWE5vTG1WeVlVWnZja1JoZEdWVWFXMWxLR1IwTENCc1pXNW5kR2dwSURvZ2MzUnlhVzVuS0hzZ1pYSmhPaUJzWlc1bmRHZ2dmU3dnWENKbGNtRmNJaWtzWEc0Z0lDQWdJQ0IwYjJ0bGJsUnZVM1J5YVc1bklEMGdLSFJ2YTJWdUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUM4dklGZG9aWEpsSUhCdmMzTnBZbXhsT2lCb2RIUndPaTh2WTJ4a2NpNTFibWxqYjJSbExtOXlaeTkwY21GdWMyeGhkR2x2Ymk5a1lYUmxMWFJwYldVdE1TOWtZWFJsTFhScGJXVWpWRTlETFZOMFlXNWtZV3h2Ym1VdGRuTXVMVVp2Y20xaGRDMVRkSGxzWlhOY2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMGIydGxiaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRzF6WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWxOY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1dGFXeHNhWE5sWTI5dVpDazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJblZjSWpwY2JpQWdJQ0FnSUNBZ0lDQXZMeUJtWVd4c2N5QjBhSEp2ZFdkb1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lsTlRVMXdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtHUjBMbTFwYkd4cGMyVmpiMjVrTENBektUdGNiaUFnSUNBZ0lDQWdJQ0F2THlCelpXTnZibVJ6WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5OY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1elpXTnZibVFwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKemMxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViblZ0S0dSMExuTmxZMjl1WkN3Z01pazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1puSmhZM1JwYjI1aGJDQnpaV052Ym1SelhHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luVjFYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1RXRjBhQzVtYkc5dmNpaGtkQzV0YVd4c2FYTmxZMjl1WkNBdklERXdLU3dnTWlrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0luVjFkVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtFMWhkR2d1Wm14dmIzSW9aSFF1Yldsc2JHbHpaV052Ym1RZ0x5QXhNREFwS1R0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ0YVc1MWRHVnpYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTFjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG01MWJTaGtkQzV0YVc1MWRHVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p0YlZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG0xcGJuVjBaU3dnTWlrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnYUc5MWNuTmNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lhRndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtHUjBMbWh2ZFhJZ0pTQXhNaUE5UFQwZ01DQS9JREV5SURvZ1pIUXVhRzkxY2lBbElERXlLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpYUdoY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1b2IzVnlJQ1VnTVRJZ1BUMDlJREFnUHlBeE1pQTZJR1IwTG1odmRYSWdKU0F4TWl3Z01pazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJa2hjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG01MWJTaGtkQzVvYjNWeUtUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lTRWhjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG01MWJTaGtkQzVvYjNWeUxDQXlLVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnZabVp6WlhSY2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVdsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBck5seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1p2Y20xaGRFOW1abk5sZENoN0lHWnZjbTFoZERvZ1hDSnVZWEp5YjNkY0lpd2dZV3hzYjNkYU9pQjBhR2x6TG05d2RITXVZV3hzYjNkYUlIMHBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0phV2x3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0FyTURZNk1EQmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtYjNKdFlYUlBabVp6WlhRb2V5Qm1iM0p0WVhRNklGd2ljMmh2Y25SY0lpd2dZV3hzYjNkYU9pQjBhR2x6TG05d2RITXVZV3hzYjNkYUlIMHBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0phV2xwY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHeHBhMlVnS3pBMk1EQmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtYjNKdFlYUlBabVp6WlhRb2V5Qm1iM0p0WVhRNklGd2lkR1ZqYUdsbFhDSXNJR0ZzYkc5M1dqb2dkR2hwY3k1dmNIUnpMbUZzYkc5M1dpQjlLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpV2xwYVdsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNCRlUxUmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJrZEM1NmIyNWxMbTltWm5ObGRFNWhiV1VvWkhRdWRITXNJSHNnWm05eWJXRjBPaUJjSW5Ob2IzSjBYQ0lzSUd4dlkyRnNaVG9nZEdocGN5NXNiMk11Ykc5allXeGxJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKYVdscGFXbHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQkZZWE4wWlhKdUlGTjBZVzVrWVhKa0lGUnBiV1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa2RDNTZiMjVsTG05bVpuTmxkRTVoYldVb1pIUXVkSE1zSUhzZ1ptOXliV0YwT2lCY0lteHZibWRjSWl3Z2JHOWpZV3hsT2lCMGFHbHpMbXh2WXk1c2IyTmhiR1VnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnZW05dVpWeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSjZYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElFRnRaWEpwWTJFdlRtVjNYMWx2Y210Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmtkQzU2YjI1bFRtRnRaVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnRaWEpwWkdsbGJYTmNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lZVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMWxjbWxrYVdWdEtDazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1pHRjBaWE5jYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpWkZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFZ6WlVSaGRHVlVhVzFsUm05eWJXRjBkR1Z5SUQ4Z2MzUnlhVzVuS0hzZ1pHRjVPaUJjSW01MWJXVnlhV05jSWlCOUxDQmNJbVJoZVZ3aUtTQTZJSFJvYVhNdWJuVnRLR1IwTG1SaGVTazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVJrWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkWE5sUkdGMFpWUnBiV1ZHYjNKdFlYUjBaWElnUHlCemRISnBibWNvZXlCa1lYazZJRndpTWkxa2FXZHBkRndpSUgwc0lGd2laR0Y1WENJcElEb2dkR2hwY3k1dWRXMG9aSFF1WkdGNUxDQXlLVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QjNaV1ZyWkdGNWN5QXRJSE4wWVc1a1lXeHZibVZjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpWTF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0F4WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXVkMlZsYTJSaGVTazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbU5qWTF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0FuVkhWbGN5ZGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIzWldWclpHRjVLRndpYzJodmNuUmNJaXdnZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbU5qWTJOY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHeHBhMlVnSjFSMVpYTmtZWGtuWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2QyVmxhMlJoZVNoY0lteHZibWRjSWl3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1OalkyTmpYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElDZFVKMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhkbFpXdGtZWGtvWENKdVlYSnliM2RjSWl3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdkMlZsYTJSaGVYTWdMU0JtYjNKdFlYUmNiaUFnSUNBZ0lDQWdJQ0JqWVhObElGd2lSVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQXhYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXVkVzBvWkhRdWQyVmxhMlJoZVNrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lrVkZSVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQW5WSFZsY3lkY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNaV1ZyWkdGNUtGd2ljMmh2Y25SY0lpd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSkZSVVZGWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJQ2RVZFdWelpHRjVKMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhkbFpXdGtZWGtvWENKc2IyNW5YQ0lzSUdaaGJITmxLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpUlVWRlJVVmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3hwYTJVZ0oxUW5YRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDJWbGEyUmhlU2hjSW01aGNuSnZkMXdpTENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdiVzl1ZEdoeklDMGdjM1JoYm1SaGJHOXVaVnh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pNWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJREZjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWMyVkVZWFJsVkdsdFpVWnZjbTFoZEhSbGNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lITjBjbWx1WnloN0lHMXZiblJvT2lCY0ltNTFiV1Z5YVdOY0lpd2daR0Y1T2lCY0ltNTFiV1Z5YVdOY0lpQjlMQ0JjSW0xdmJuUm9YQ0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NXVkVzBvWkhRdWJXOXVkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKTVRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNBd01Td2daRzlsYzI0bmRDQnpaV1Z0SUhSdklIZHZjbXRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWMyVkVZWFJsVkdsdFpVWnZjbTFoZEhSbGNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lITjBjbWx1WnloN0lHMXZiblJvT2lCY0lqSXRaR2xuYVhSY0lpd2daR0Y1T2lCY0ltNTFiV1Z5YVdOY0lpQjlMQ0JjSW0xdmJuUm9YQ0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NXVkVzBvWkhRdWJXOXVkR2dzSURJcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSk1URXhjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd4cGEyVWdTbUZ1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXOXVkR2dvWENKemFHOXlkRndpTENCMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpVEV4TVRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNCS1lXNTFZWEo1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXOXVkR2dvWENKc2IyNW5YQ0lzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pNVEV4TVRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR2xyWlNCS1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiVzl1ZEdnb1hDSnVZWEp5YjNkY0lpd2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnYlc5dWRHaHpJQzBnWm05eWJXRjBYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJazFjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd4cGEyVWdNVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWelpVUmhkR1ZVYVcxbFJtOXliV0YwZEdWeVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2MzUnlhVzVuS0hzZ2JXOXVkR2c2SUZ3aWJuVnRaWEpwWTF3aUlIMHNJRndpYlc5dWRHaGNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIwYUdsekxtNTFiU2hrZEM1dGIyNTBhQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWsxTlhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSURBeFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkWE5sUkdGMFpWUnBiV1ZHYjNKdFlYUjBaWEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJ6ZEhKcGJtY29leUJ0YjI1MGFEb2dYQ0l5TFdScFoybDBYQ0lnZlN3Z1hDSnRiMjUwYUZ3aUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklIUm9hWE11Ym5WdEtHUjBMbTF2Ym5Sb0xDQXlLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpVFUxTlhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSUVwaGJseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzF2Ym5Sb0tGd2ljMmh2Y25SY0lpd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSk5UVTFOWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJRXBoYm5WaGNubGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ0YjI1MGFDaGNJbXh2Ym1kY0lpd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSk5UVTFOVFZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0JLWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXOXVkR2dvWENKdVlYSnliM2RjSWl3Z1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDOHZJSGxsWVhKelhHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lubGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3hwYTJVZ01qQXhORnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWelpVUmhkR1ZVYVcxbFJtOXliV0YwZEdWeUlEOGdjM1J5YVc1bktIc2dlV1ZoY2pvZ1hDSnVkVzFsY21salhDSWdmU3dnWENKNVpXRnlYQ0lwSURvZ2RHaHBjeTV1ZFcwb1pIUXVlV1ZoY2lrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0lubDVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJzYVd0bElERTBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFhObFJHRjBaVlJwYldWR2IzSnRZWFIwWlhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCemRISnBibWNvZXlCNVpXRnlPaUJjSWpJdFpHbG5hWFJjSWlCOUxDQmNJbmxsWVhKY0lpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ09pQjBhR2x6TG01MWJTaGtkQzU1WldGeUxuUnZVM1J5YVc1bktDa3VjMnhwWTJVb0xUSXBMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWVYbDVlVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYkdsclpTQXdNREV5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RYTmxSR0YwWlZScGJXVkdiM0p0WVhSMFpYSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1B5QnpkSEpwYm1jb2V5QjVaV0Z5T2lCY0ltNTFiV1Z5YVdOY0lpQjlMQ0JjSW5sbFlYSmNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIwYUdsekxtNTFiU2hrZEM1NVpXRnlMQ0EwS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWVYbDVlWGw1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJREF3TURBeE1seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFZ6WlVSaGRHVlVhVzFsUm05eWJXRjBkR1Z5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRDhnYzNSeWFXNW5LSHNnZVdWaGNqb2dYQ0p1ZFcxbGNtbGpYQ0lnZlN3Z1hDSjVaV0Z5WENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTV1ZFcwb1pIUXVlV1ZoY2l3Z05pazdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1pYSmhjMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pIWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCc2FXdGxJRUZFWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1pYSmhLRndpYzJodmNuUmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWtkSFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnNhV3RsSUVGdWJtOGdSRzl0YVc1cFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdaWEpoS0Z3aWJHOXVaMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVIwZEhSMGRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmxjbUVvWENKdVlYSnliM2RjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltdHJYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXVkMlZsYTFsbFlYSXVkRzlUZEhKcGJtY29LUzV6YkdsalpTZ3RNaWtzSURJcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnJhMnRyWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dWRXMG9aSFF1ZDJWbGExbGxZWElzSURRcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSlhYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXVkMlZsYTA1MWJXSmxjaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSWxkWFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXVkVzBvWkhRdWQyVmxhMDUxYldKbGNpd2dNaWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW05Y0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtNTFiU2hrZEM1dmNtUnBibUZzS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWIyOXZYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV1ZFcwb1pIUXViM0prYVc1aGJDd2dNeWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5GY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHeHBhMlVnTVZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtHUjBMbkYxWVhKMFpYSXBPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p4Y1Z3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JHbHJaU0F3TVZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Ym5WdEtHUjBMbkYxWVhKMFpYSXNJRElwTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKWVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXVkVzBvVFdGMGFDNW1iRzl2Y2loa2RDNTBjeUF2SURFd01EQXBLVHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpZUZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJuVnRLR1IwTG5SektUdGNiaUFnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGVXSmxUV0ZqY204b2RHOXJaVzRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOU8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhOMGNtbHVaMmxtZVZSdmEyVnVjeWhHYjNKdFlYUjBaWEl1Y0dGeWMyVkdiM0p0WVhRb1ptMTBLU3dnZEc5clpXNVViMU4wY21sdVp5azdYRzRnSUgxY2JseHVJQ0JtYjNKdFlYUkVkWEpoZEdsdmJrWnliMjFUZEhKcGJtY29aSFZ5TENCbWJYUXBJSHRjYmlBZ0lDQmpiMjV6ZENCMGIydGxibFJ2Um1sbGJHUWdQU0FvZEc5clpXNHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMGIydGxibHN3WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSlRYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSnRhV3hzYVhObFkyOXVaRndpTzF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKelhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWENKelpXTnZibVJjSWp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aWJXbHVkWFJsWENJN1hHNGdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltaGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0ltaHZkWEpjSWp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aVpHRjVYQ0k3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5kY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJjSW5kbFpXdGNJanRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpVFZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRndpYlc5dWRHaGNJanRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRndpZVZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRndpZVdWaGNsd2lPMXh1SUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhSdmEyVnVWRzlUZEhKcGJtY2dQU0FvYkdsc1pIVnlLU0E5UGlBb2RHOXJaVzRwSUQwK0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRndjR1ZrSUQwZ2RHOXJaVzVVYjBacFpXeGtLSFJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0cxaGNIQmxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTUxYlNoc2FXeGtkWEl1WjJWMEtHMWhjSEJsWkNrc0lIUnZhMlZ1TG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSdmEyVnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZEc5clpXNXpJRDBnUm05eWJXRjBkR1Z5TG5CaGNuTmxSbTl5YldGMEtHWnRkQ2tzWEc0Z0lDQWdJQ0J5WldGc1ZHOXJaVzV6SUQwZ2RHOXJaVzV6TG5KbFpIVmpaU2hjYmlBZ0lDQWdJQ0FnS0dadmRXNWtMQ0I3SUd4cGRHVnlZV3dzSUhaaGJDQjlLU0E5UGlBb2JHbDBaWEpoYkNBL0lHWnZkVzVrSURvZ1ptOTFibVF1WTI5dVkyRjBLSFpoYkNrcExGeHVJQ0FnSUNBZ0lDQmJYVnh1SUNBZ0lDQWdLU3hjYmlBZ0lDQWdJR052Ykd4aGNITmxaQ0E5SUdSMWNpNXphR2xtZEZSdktDNHVMbkpsWVd4VWIydGxibk11YldGd0tIUnZhMlZ1Vkc5R2FXVnNaQ2t1Wm1sc2RHVnlLQ2gwS1NBOVBpQjBLU2s3WEc0Z0lDQWdjbVYwZFhKdUlITjBjbWx1WjJsbWVWUnZhMlZ1Y3loMGIydGxibk1zSUhSdmEyVnVWRzlUZEhKcGJtY29ZMjlzYkdGd2MyVmtLU2s3WEc0Z0lIMWNibjFjYmlJc0lDSmxlSEJ2Y25RZ1pHVm1ZWFZzZENCamJHRnpjeUJKYm5aaGJHbGtJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9jbVZoYzI5dUxDQmxlSEJzWVc1aGRHbHZiaWtnZTF4dUlDQWdJSFJvYVhNdWNtVmhjMjl1SUQwZ2NtVmhjMjl1TzF4dUlDQWdJSFJvYVhNdVpYaHdiR0Z1WVhScGIyNGdQU0JsZUhCc1lXNWhkR2x2Ymp0Y2JpQWdmVnh1WEc0Z0lIUnZUV1Z6YzJGblpTZ3BJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NWxlSEJzWVc1aGRHbHZiaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0FrZTNSb2FYTXVjbVZoYzI5dWZUb2dKSHQwYUdsekxtVjRjR3hoYm1GMGFXOXVmV0E3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsWVhOdmJqdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSXNJQ0pwYlhCdmNuUWdleUJhYjI1bFNYTkJZbk4wY21GamRFVnljbTl5SUgwZ1puSnZiU0JjSWk0dlpYSnliM0p6TG1welhDSTdYRzVjYmk4cUtseHVJQ29nUUdsdWRHVnlabUZqWlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmpiR0Z6Y3lCYWIyNWxJSHRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0IwZVhCbElHOW1JSHB2Ym1WY2JpQWdJQ29nUUdGaWMzUnlZV04wWEc0Z0lDQXFJRUIwZVhCbElIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQm5aWFFnZEhsd1pTZ3BJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dXbTl1WlVselFXSnpkSEpoWTNSRmNuSnZjaWdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0J1WVcxbElHOW1JSFJvYVhNZ2VtOXVaUzVjYmlBZ0lDb2dRR0ZpYzNSeVlXTjBYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdibUZ0WlNncElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1dtOXVaVWx6UVdKemRISmhZM1JGY25KdmNpZ3BPMXh1SUNCOVhHNWNiaUFnWjJWMElHbGhibUZPWVcxbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTVoYldVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjNhR1YwYUdWeUlIUm9aU0J2Wm1aelpYUWdhWE1nYTI1dmQyNGdkRzhnWW1VZ1ptbDRaV1FnWm05eUlIUm9aU0IzYUc5c1pTQjVaV0Z5TGx4dUlDQWdLaUJBWVdKemRISmhZM1JjYmlBZ0lDb2dRSFI1Y0dVZ2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQm5aWFFnYVhOVmJtbDJaWEp6WVd3b0tTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lGcHZibVZKYzBGaWMzUnlZV04wUlhKeWIzSW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhSb1pTQnZabVp6WlhRbmN5QmpiMjF0YjI0Z2JtRnRaU0FvYzNWamFDQmhjeUJGVTFRcElHRjBJSFJvWlNCemNHVmphV1pwWldRZ2RHbHRaWE4wWVcxd1hHNGdJQ0FxSUVCaFluTjBjbUZqZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdkSE1nTFNCRmNHOWphQ0J0YVd4c2FYTmxZMjl1WkhNZ1ptOXlJSGRvYVdOb0lIUnZJR2RsZENCMGFHVWdibUZ0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElFOXdkR2x2Ym5NZ2RHOGdZV1ptWldOMElIUm9aU0JtYjNKdFlYUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RITXVabTl5YldGMElDMGdWMmhoZENCemRIbHNaU0J2WmlCdlptWnpaWFFnZEc4Z2NtVjBkWEp1TGlCQlkyTmxjSFJ6SUNkc2IyNW5KeUJ2Y2lBbmMyaHZjblFuTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiM0IwY3k1c2IyTmhiR1VnTFNCWGFHRjBJR3h2WTJGc1pTQjBieUJ5WlhSMWNtNGdkR2hsSUc5bVpuTmxkQ0J1WVcxbElHbHVMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQnZabVp6WlhST1lXMWxLSFJ6TENCdmNIUnpLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRnB2Ym1WSmMwRmljM1J5WVdOMFJYSnliM0lvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklIUm9aU0J2Wm1aelpYUW5jeUIyWVd4MVpTQmhjeUJoSUhOMGNtbHVaMXh1SUNBZ0tpQkFZV0p6ZEhKaFkzUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhSeklDMGdSWEJ2WTJnZ2JXbHNiR2x6WldOdmJtUnpJR1p2Y2lCM2FHbGphQ0IwYnlCblpYUWdkR2hsSUc5bVpuTmxkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1ptOXliV0YwSUMwZ1YyaGhkQ0J6ZEhsc1pTQnZaaUJ2Wm1aelpYUWdkRzhnY21WMGRYSnVMbHh1SUNBZ0tpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1FXTmpaWEIwY3lBbmJtRnljbTkzSnl3Z0ozTm9iM0owSnl3Z2IzSWdKM1JsWTJocFpTY3VJRkpsZEhWeWJtbHVaeUFuS3pZbkxDQW5LekEyT2pBd0p5d2diM0lnSnlzd05qQXdKeUJ5WlhOd1pXTjBhWFpsYkhsY2JpQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWm05eWJXRjBUMlptYzJWMEtIUnpMQ0JtYjNKdFlYUXBJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dXbTl1WlVselFXSnpkSEpoWTNSRmNuSnZjaWdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCMGFHVWdiMlptYzJWMElHbHVJRzFwYm5WMFpYTWdabTl5SUhSb2FYTWdlbTl1WlNCaGRDQjBhR1VnYzNCbFkybG1hV1ZrSUhScGJXVnpkR0Z0Y0M1Y2JpQWdJQ29nUUdGaWMzUnlZV04wWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjBjeUF0SUVWd2IyTm9JRzFwYkd4cGMyVmpiMjVrY3lCbWIzSWdkMmhwWTJnZ2RHOGdZMjl0Y0hWMFpTQjBhR1VnYjJabWMyVjBYRzRnSUNBcUlFQnlaWFIxY200Z2UyNTFiV0psY24xY2JpQWdJQ292WEc0Z0lHOW1abk5sZENoMGN5a2dlMXh1SUNBZ0lIUm9jbTkzSUc1bGR5QmFiMjVsU1hOQlluTjBjbUZqZEVWeWNtOXlLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhkb1pYUm9aWElnZEdocGN5QmFiMjVsSUdseklHVnhkV0ZzSUhSdklHRnViM1JvWlhJZ2VtOXVaVnh1SUNBZ0tpQkFZV0p6ZEhKaFkzUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0YWIyNWxmU0J2ZEdobGNscHZibVVnTFNCMGFHVWdlbTl1WlNCMGJ5QmpiMjF3WVhKbFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCbGNYVmhiSE1vYjNSb1pYSmFiMjVsS1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUZwdmJtVkpjMEZpYzNSeVlXTjBSWEp5YjNJb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkMmhsZEdobGNpQjBhR2x6SUZwdmJtVWdhWE1nZG1Gc2FXUXVYRzRnSUNBcUlFQmhZbk4wY21GamRGeHVJQ0FnS2lCQWRIbHdaU0I3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUdkbGRDQnBjMVpoYkdsa0tDa2dlMXh1SUNBZ0lIUm9jbTkzSUc1bGR5QmFiMjVsU1hOQlluTjBjbUZqZEVWeWNtOXlLQ2s3WEc0Z0lIMWNibjFjYmlJc0lDSnBiWEJ2Y25RZ2V5Qm1iM0p0WVhSUFptWnpaWFFzSUhCaGNuTmxXbTl1WlVsdVptOGdmU0JtY205dElGd2lMaTR2YVcxd2JDOTFkR2xzTG1welhDSTdYRzVwYlhCdmNuUWdXbTl1WlNCbWNtOXRJRndpTGk0dmVtOXVaUzVxYzF3aU8xeHVYRzVzWlhRZ2MybHVaMnhsZEc5dUlEMGdiblZzYkR0Y2JseHVMeW9xWEc0Z0tpQlNaWEJ5WlhObGJuUnpJSFJvWlNCc2IyTmhiQ0I2YjI1bElHWnZjaUIwYUdseklFcGhkbUZUWTNKcGNIUWdaVzUyYVhKdmJtMWxiblF1WEc0Z0tpQkFhVzF3YkdWdFpXNTBjeUI3V205dVpYMWNiaUFxTDF4dVpYaHdiM0owSUdSbFptRjFiSFFnWTJ4aGMzTWdVM2x6ZEdWdFdtOXVaU0JsZUhSbGJtUnpJRnB2Ym1VZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHRWdjMmx1WjJ4bGRHOXVJR2x1YzNSaGJtTmxJRzltSUhSb1pTQnNiMk5oYkNCNmIyNWxYRzRnSUNBcUlFQnlaWFIxY200Z2UxTjVjM1JsYlZwdmJtVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUdsdWMzUmhibU5sS0NrZ2UxeHVJQ0FnSUdsbUlDaHphVzVuYkdWMGIyNGdQVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSE5wYm1kc1pYUnZiaUE5SUc1bGR5QlRlWE4wWlcxYWIyNWxLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCemFXNW5iR1YwYjI0N1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2RIbHdaU2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdYQ0p6ZVhOMFpXMWNJanRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHZGxkQ0J1WVcxbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dTVzUwYkM1RVlYUmxWR2x0WlVadmNtMWhkQ2dwTG5KbGMyOXNkbVZrVDNCMGFXOXVjeWdwTG5ScGJXVmFiMjVsTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdaMlYwSUdselZXNXBkbVZ5YzJGc0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHOW1abk5sZEU1aGJXVW9kSE1zSUhzZ1ptOXliV0YwTENCc2IyTmhiR1VnZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ3WVhKelpWcHZibVZKYm1adktIUnpMQ0JtYjNKdFlYUXNJR3h2WTJGc1pTazdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCbWIzSnRZWFJQWm1aelpYUW9kSE1zSUdadmNtMWhkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQm1iM0p0WVhSUFptWnpaWFFvZEdocGN5NXZabVp6WlhRb2RITXBMQ0JtYjNKdFlYUXBPMXh1SUNCOVhHNWNiaUFnTHlvcUlFQnZkbVZ5Y21sa1pTQXFLaTljYmlBZ2IyWm1jMlYwS0hSektTQjdYRzRnSUNBZ2NtVjBkWEp1SUMxdVpYY2dSR0YwWlNoMGN5a3VaMlYwVkdsdFpYcHZibVZQWm1aelpYUW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHVnhkV0ZzY3lodmRHaGxjbHB2Ym1VcElIdGNiaUFnSUNCeVpYUjFjbTRnYjNSb1pYSmFiMjVsTG5SNWNHVWdQVDA5SUZ3aWMzbHpkR1Z0WENJN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2FYTldZV3hwWkNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dWZWeHVJaXdnSW1sdGNHOXlkQ0I3SUdadmNtMWhkRTltWm5ObGRDd2djR0Z5YzJWYWIyNWxTVzVtYnl3Z2FYTlZibVJsWm1sdVpXUXNJRzlpYWxSdlRHOWpZV3hVVXlCOUlHWnliMjBnWENJdUxpOXBiWEJzTDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENCYWIyNWxJR1p5YjIwZ1hDSXVMaTk2YjI1bExtcHpYQ0k3WEc1Y2JteGxkQ0JrZEdaRFlXTm9aU0E5SUh0OU8xeHVablZ1WTNScGIyNGdiV0ZyWlVSVVJpaDZiMjVsS1NCN1hHNGdJR2xtSUNnaFpIUm1RMkZqYUdWYmVtOXVaVjBwSUh0Y2JpQWdJQ0JrZEdaRFlXTm9aVnQ2YjI1bFhTQTlJRzVsZHlCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMEtGd2laVzR0VlZOY0lpd2dlMXh1SUNBZ0lDQWdhRzkxY2pFeU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUhScGJXVmFiMjVsT2lCNmIyNWxMRnh1SUNBZ0lDQWdlV1ZoY2pvZ1hDSnVkVzFsY21salhDSXNYRzRnSUNBZ0lDQnRiMjUwYURvZ1hDSXlMV1JwWjJsMFhDSXNYRzRnSUNBZ0lDQmtZWGs2SUZ3aU1pMWthV2RwZEZ3aUxGeHVJQ0FnSUNBZ2FHOTFjam9nWENJeUxXUnBaMmwwWENJc1hHNGdJQ0FnSUNCdGFXNTFkR1U2SUZ3aU1pMWthV2RwZEZ3aUxGeHVJQ0FnSUNBZ2MyVmpiMjVrT2lCY0lqSXRaR2xuYVhSY0lpeGNiaUFnSUNBZ0lHVnlZVG9nWENKemFHOXlkRndpTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJrZEdaRFlXTm9aVnQ2YjI1bFhUdGNibjFjYmx4dVkyOXVjM1FnZEhsd1pWUnZVRzl6SUQwZ2UxeHVJQ0I1WldGeU9pQXdMRnh1SUNCdGIyNTBhRG9nTVN4Y2JpQWdaR0Y1T2lBeUxGeHVJQ0JsY21FNklETXNYRzRnSUdodmRYSTZJRFFzWEc0Z0lHMXBiblYwWlRvZ05TeGNiaUFnYzJWamIyNWtPaUEyTEZ4dWZUdGNibHh1Wm5WdVkzUnBiMjRnYUdGamEzbFBabVp6WlhRb1pIUm1MQ0JrWVhSbEtTQjdYRzRnSUdOdmJuTjBJR1p2Y20xaGRIUmxaQ0E5SUdSMFppNW1iM0p0WVhRb1pHRjBaU2t1Y21Wd2JHRmpaU2d2WEZ4MU1qQXdSUzluTENCY0lsd2lLU3hjYmlBZ0lDQndZWEp6WldRZ1BTQXZLRnhjWkNzcFhGd3ZLRnhjWkNzcFhGd3ZLRnhjWkNzcElDaEJSSHhDUXlrc1B5QW9YRnhrS3lrNktGeGNaQ3NwT2loY1hHUXJLUzh1WlhobFl5aG1iM0p0WVhSMFpXUXBMRnh1SUNBZ0lGc3NJR1pOYjI1MGFDd2daa1JoZVN3Z1psbGxZWElzSUdaaFpFOXlRbU1zSUdaSWIzVnlMQ0JtVFdsdWRYUmxMQ0JtVTJWamIyNWtYU0E5SUhCaGNuTmxaRHRjYmlBZ2NtVjBkWEp1SUZ0bVdXVmhjaXdnWmsxdmJuUm9MQ0JtUkdGNUxDQm1ZV1JQY2tKakxDQm1TRzkxY2l3Z1prMXBiblYwWlN3Z1psTmxZMjl1WkYwN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhCaGNuUnpUMlptYzJWMEtHUjBaaXdnWkdGMFpTa2dlMXh1SUNCamIyNXpkQ0JtYjNKdFlYUjBaV1FnUFNCa2RHWXVabTl5YldGMFZHOVFZWEowY3loa1lYUmxLVHRjYmlBZ1kyOXVjM1FnWm1sc2JHVmtJRDBnVzEwN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWm05eWJXRjBkR1ZrTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCMGVYQmxMQ0IyWVd4MVpTQjlJRDBnWm05eWJXRjBkR1ZrVzJsZE8xeHVJQ0FnSUdOdmJuTjBJSEJ2Y3lBOUlIUjVjR1ZVYjFCdmMxdDBlWEJsWFR0Y2JseHVJQ0FnSUdsbUlDaDBlWEJsSUQwOVBTQmNJbVZ5WVZ3aUtTQjdYRzRnSUNBZ0lDQm1hV3hzWldSYmNHOXpYU0E5SUhaaGJIVmxPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9JV2x6Vlc1a1pXWnBibVZrS0hCdmN5a3BJSHRjYmlBZ0lDQWdJR1pwYkd4bFpGdHdiM05kSUQwZ2NHRnljMlZKYm5Rb2RtRnNkV1VzSURFd0tUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUdacGJHeGxaRHRjYm4xY2JseHViR1YwSUdsaGJtRmFiMjVsUTJGamFHVWdQU0I3ZlR0Y2JpOHFLbHh1SUNvZ1FTQjZiMjVsSUdsa1pXNTBhV1pwWldRZ1lua2dZVzRnU1VGT1FTQnBaR1Z1ZEdsbWFXVnlMQ0JzYVd0bElFRnRaWEpwWTJFdlRtVjNYMWx2Y210Y2JpQXFJRUJwYlhCc1pXMWxiblJ6SUh0YWIyNWxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCamJHRnpjeUJKUVU1QldtOXVaU0JsZUhSbGJtUnpJRnB2Ym1VZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzVoYldVZ0xTQmFiMjVsSUc1aGJXVmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1NVRk9RVnB2Ym1WOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1kzSmxZWFJsS0c1aGJXVXBJSHRjYmlBZ0lDQnBaaUFvSVdsaGJtRmFiMjVsUTJGamFHVmJibUZ0WlYwcElIdGNiaUFnSUNBZ0lHbGhibUZhYjI1bFEyRmphR1ZiYm1GdFpWMGdQU0J1WlhjZ1NVRk9RVnB2Ym1Vb2JtRnRaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCcFlXNWhXbTl1WlVOaFkyaGxXMjVoYldWZE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsYzJWMElHeHZZMkZzSUdOaFkyaGxjeTRnVTJodmRXeGtJRzl1YkhrZ1ltVWdibVZqWlhOellYSjVJR2x1SUhSbGMzUnBibWNnYzJObGJtRnlhVzl6TGx4dUlDQWdLaUJBY21WMGRYSnVJSHQyYjJsa2ZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklISmxjMlYwUTJGamFHVW9LU0I3WEc0Z0lDQWdhV0Z1WVZwdmJtVkRZV05vWlNBOUlIdDlPMXh1SUNBZ0lHUjBaa05oWTJobElEMGdlMzA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCM2FHVjBhR1Z5SUhSb1pTQndjbTkyYVdSbFpDQnpkSEpwYm1jZ2FYTWdZU0IyWVd4cFpDQnpjR1ZqYVdacFpYSXVJRlJvYVhNZ2IyNXNlU0JqYUdWamEzTWdkR2hsSUhOMGNtbHVaeWR6SUdadmNtMWhkQ3dnYm05MElIUm9ZWFFnZEdobElITndaV05wWm1sbGNpQnBaR1Z1ZEdsbWFXVnpJR0VnYTI1dmQyNGdlbTl1WlRzZ2MyVmxJR2x6Vm1Gc2FXUmFiMjVsSUdadmNpQjBhR0YwTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjeUF0SUZSb1pTQnpkSEpwYm1jZ2RHOGdZMmhsWTJzZ2RtRnNhV1JwZEhrZ2IyNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NVRk9RVnB2Ym1VdWFYTldZV3hwWkZOd1pXTnBabWxsY2loY0lrRnRaWEpwWTJFdlRtVjNYMWx2Y210Y0lpa2dMeTg5UGlCMGNuVmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbEJUa0ZhYjI1bExtbHpWbUZzYVdSVGNHVmphV1pwWlhJb1hDSlRjRzl5ZEg1K1lteHZjbkJjSWlrZ0x5ODlQaUJtWVd4elpWeHVJQ0FnS2lCQVpHVndjbVZqWVhSbFpDQlVhR2x6SUcxbGRHaHZaQ0J5WlhSMWNtNXpJR1poYkhObElHWnZjaUJ6YjIxbElIWmhiR2xrSUVsQlRrRWdibUZ0WlhNdUlGVnpaU0JwYzFaaGJHbGtXbTl1WlNCcGJuTjBaV0ZrTGx4dUlDQWdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2x6Vm1Gc2FXUlRjR1ZqYVdacFpYSW9jeWtnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1JhYjI1bEtITXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZDJobGRHaGxjaUIwYUdVZ2NISnZkbWxrWldRZ2MzUnlhVzVuSUdsa1pXNTBhV1pwWlhNZ1lTQnlaV0ZzSUhwdmJtVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhwdmJtVWdMU0JVYUdVZ2MzUnlhVzVuSUhSdklHTm9aV05yWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWxCVGtGYWIyNWxMbWx6Vm1Gc2FXUmFiMjVsS0Z3aVFXMWxjbWxqWVM5T1pYZGZXVzl5YTF3aUtTQXZMejArSUhSeWRXVmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NVRk9RVnB2Ym1VdWFYTldZV3hwWkZwdmJtVW9YQ0pHWVc1MFlYTnBZUzlEWVhOMGJHVmNJaWtnTHk4OVBpQm1ZV3h6WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JKUVU1QldtOXVaUzVwYzFaaGJHbGtXbTl1WlNoY0lsTndiM0owZm41aWJHOXljRndpS1NBdkx6MCtJR1poYkhObFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYVhOV1lXeHBaRnB2Ym1Vb2VtOXVaU2tnZTF4dUlDQWdJR2xtSUNnaGVtOXVaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2JtVjNJRWx1ZEd3dVJHRjBaVlJwYldWR2IzSnRZWFFvWENKbGJpMVZVMXdpTENCN0lIUnBiV1ZhYjI1bE9pQjZiMjVsSUgwcExtWnZjbTFoZENncE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHNWhiV1VwSUh0Y2JpQWdJQ0J6ZFhCbGNpZ3BPMXh1SUNBZ0lDOHFLaUJBY0hKcGRtRjBaU0FxS2k5Y2JpQWdJQ0IwYUdsekxucHZibVZPWVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0F2S2lvZ1FIQnlhWFpoZEdVZ0tpb3ZYRzRnSUNBZ2RHaHBjeTUyWVd4cFpDQTlJRWxCVGtGYWIyNWxMbWx6Vm1Gc2FXUmFiMjVsS0c1aGJXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcUlFQnZkbVZ5Y21sa1pTQXFLaTljYmlBZ1oyVjBJSFI1Y0dVb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUZ3aWFXRnVZVndpTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdaMlYwSUc1aGJXVW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZW05dVpVNWhiV1U3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm5aWFFnYVhOVmJtbDJaWEp6WVd3b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnTHlvcUlFQnZkbVZ5Y21sa1pTQXFLaTljYmlBZ2IyWm1jMlYwVG1GdFpTaDBjeXdnZXlCbWIzSnRZWFFzSUd4dlkyRnNaU0I5S1NCN1hHNGdJQ0FnY21WMGRYSnVJSEJoY25ObFdtOXVaVWx1Wm04b2RITXNJR1p2Y20xaGRDd2diRzlqWVd4bExDQjBhR2x6TG01aGJXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcUlFQnZkbVZ5Y21sa1pTQXFLaTljYmlBZ1ptOXliV0YwVDJabWMyVjBLSFJ6TENCbWIzSnRZWFFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabTl5YldGMFQyWm1jMlYwS0hSb2FYTXViMlptYzJWMEtIUnpLU3dnWm05eWJXRjBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHOW1abk5sZENoMGN5a2dlMXh1SUNBZ0lHTnZibk4wSUdSaGRHVWdQU0J1WlhjZ1JHRjBaU2gwY3lrN1hHNWNiaUFnSUNCcFppQW9hWE5PWVU0b1pHRjBaU2twSUhKbGRIVnliaUJPWVU0N1hHNWNiaUFnSUNCamIyNXpkQ0JrZEdZZ1BTQnRZV3RsUkZSR0tIUm9hWE11Ym1GdFpTazdYRzRnSUNBZ2JHVjBJRnQ1WldGeUxDQnRiMjUwYUN3Z1pHRjVMQ0JoWkU5eVFtTXNJR2h2ZFhJc0lHMXBiblYwWlN3Z2MyVmpiMjVrWFNBOUlHUjBaaTVtYjNKdFlYUlViMUJoY25SelhHNGdJQ0FnSUNBL0lIQmhjblJ6VDJabWMyVjBLR1IwWml3Z1pHRjBaU2xjYmlBZ0lDQWdJRG9nYUdGamEzbFBabVp6WlhRb1pIUm1MQ0JrWVhSbEtUdGNibHh1SUNBZ0lHbG1JQ2hoWkU5eVFtTWdQVDA5SUZ3aVFrTmNJaWtnZTF4dUlDQWdJQ0FnZVdWaGNpQTlJQzFOWVhSb0xtRmljeWg1WldGeUtTQXJJREU3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnWW1WallYVnpaU0IzWlNkeVpTQjFjMmx1WnlCb2IzVnlNVElnWVc1a0lHaDBkSEJ6T2k4dlluVm5jeTVqYUhKdmJXbDFiUzV2Y21jdmNDOWphSEp2YldsMWJTOXBjM04xWlhNdlpHVjBZV2xzUDJsa1BURXdNalUxTmpRbVkyRnVQVEltY1QwbE1qSXlOQ1V6UVRBd0pUSXlKVEl3WkdGMFpYUnBiV1ZtYjNKdFlYUmNiaUFnSUNCamIyNXpkQ0JoWkdwMWMzUmxaRWh2ZFhJZ1BTQm9iM1Z5SUQwOVBTQXlOQ0EvSURBZ09pQm9iM1Z5TzF4dVhHNGdJQ0FnWTI5dWMzUWdZWE5WVkVNZ1BTQnZZbXBVYjB4dlkyRnNWRk1vZTF4dUlDQWdJQ0FnZVdWaGNpeGNiaUFnSUNBZ0lHMXZiblJvTEZ4dUlDQWdJQ0FnWkdGNUxGeHVJQ0FnSUNBZ2FHOTFjam9nWVdScWRYTjBaV1JJYjNWeUxGeHVJQ0FnSUNBZ2JXbHVkWFJsTEZ4dUlDQWdJQ0FnYzJWamIyNWtMRnh1SUNBZ0lDQWdiV2xzYkdselpXTnZibVE2SURBc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCc1pYUWdZWE5VVXlBOUlDdGtZWFJsTzF4dUlDQWdJR052Ym5OMElHOTJaWElnUFNCaGMxUlRJQ1VnTVRBd01EdGNiaUFnSUNCaGMxUlRJQzA5SUc5MlpYSWdQajBnTUNBL0lHOTJaWElnT2lBeE1EQXdJQ3NnYjNabGNqdGNiaUFnSUNCeVpYUjFjbTRnS0dGelZWUkRJQzBnWVhOVVV5a2dMeUFvTmpBZ0tpQXhNREF3S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR1Z4ZFdGc2N5aHZkR2hsY2xwdmJtVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2IzUm9aWEphYjI1bExuUjVjR1VnUFQwOUlGd2lhV0Z1WVZ3aUlDWW1JRzkwYUdWeVdtOXVaUzV1WVcxbElEMDlQU0IwYUdsekxtNWhiV1U3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm5aWFFnYVhOV1lXeHBaQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1MllXeHBaRHRjYmlBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCN0lHWnZjbTFoZEU5bVpuTmxkQ3dnYzJsbmJtVmtUMlptYzJWMElIMGdabkp2YlNCY0lpNHVMMmx0Y0d3dmRYUnBiQzVxYzF3aU8xeHVhVzF3YjNKMElGcHZibVVnWm5KdmJTQmNJaTR1TDNwdmJtVXVhbk5jSWp0Y2JseHViR1YwSUhOcGJtZHNaWFJ2YmlBOUlHNTFiR3c3WEc1Y2JpOHFLbHh1SUNvZ1FTQjZiMjVsSUhkcGRHZ2dZU0JtYVhobFpDQnZabVp6WlhRZ0tHMWxZVzVwYm1jZ2JtOGdSRk5VS1Z4dUlDb2dRR2x0Y0d4bGJXVnVkSE1nZTFwdmJtVjlYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdOc1lYTnpJRVpwZUdWa1QyWm1jMlYwV205dVpTQmxlSFJsYm1SeklGcHZibVVnZTF4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUdFZ2MybHVaMnhsZEc5dUlHbHVjM1JoYm1ObElHOW1JRlZVUTF4dUlDQWdLaUJBY21WMGRYSnVJSHRHYVhobFpFOW1abk5sZEZwdmJtVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUhWMFkwbHVjM1JoYm1ObEtDa2dlMXh1SUNBZ0lHbG1JQ2h6YVc1bmJHVjBiMjRnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhOcGJtZHNaWFJ2YmlBOUlHNWxkeUJHYVhobFpFOW1abk5sZEZwdmJtVW9NQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCemFXNW5iR1YwYjI0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUdGdUlHbHVjM1JoYm1ObElIZHBkR2dnWVNCemNHVmphV1pwWldRZ2IyWm1jMlYwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZabVp6WlhRZ0xTQlVhR1VnYjJabWMyVjBJR2x1SUcxcGJuVjBaWE5jYmlBZ0lDb2dRSEpsZEhWeWJpQjdSbWw0WldSUFptWnpaWFJhYjI1bGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHbHVjM1JoYm1ObEtHOW1abk5sZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ2Wm1aelpYUWdQVDA5SURBZ1B5QkdhWGhsWkU5bVpuTmxkRnB2Ym1VdWRYUmpTVzV6ZEdGdVkyVWdPaUJ1WlhjZ1JtbDRaV1JQWm1aelpYUmFiMjVsS0c5bVpuTmxkQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJR0Z1SUdsdWMzUmhibU5sSUc5bUlFWnBlR1ZrVDJabWMyVjBXbTl1WlNCbWNtOXRJR0VnVlZSRElHOW1abk5sZENCemRISnBibWNzSUd4cGEyVWdYQ0pWVkVNck5sd2lYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCeklDMGdWR2hsSUc5bVpuTmxkQ0J6ZEhKcGJtY2dkRzhnY0dGeWMyVmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JtbDRaV1JQWm1aelpYUmFiMjVsTG5CaGNuTmxVM0JsWTJsbWFXVnlLRndpVlZSREt6WmNJaWxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSbWw0WldSUFptWnpaWFJhYjI1bExuQmhjbk5sVTNCbFkybG1hV1Z5S0Z3aVZWUkRLekEyWENJcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVacGVHVmtUMlptYzJWMFdtOXVaUzV3WVhKelpWTndaV05wWm1sbGNpaGNJbFZVUXkwMk9qQXdYQ0lwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFpwZUdWa1QyWm1jMlYwV205dVpYMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QndZWEp6WlZOd1pXTnBabWxsY2loektTQjdYRzRnSUNBZ2FXWWdLSE1wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSElnUFNCekxtMWhkR05vS0M5ZWRYUmpLRDg2S0ZzckxWMWNYR1I3TVN3eWZTa29Qem82S0Z4Y1pIc3lmU2twUHlrL0pDOXBLVHRjYmlBZ0lDQWdJR2xtSUNoeUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUm1sNFpXUlBabVp6WlhSYWIyNWxLSE5wWjI1bFpFOW1abk5sZENoeVd6RmRMQ0J5V3pKZEtTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYjJabWMyVjBLU0I3WEc0Z0lDQWdjM1Z3WlhJb0tUdGNiaUFnSUNBdktpb2dRSEJ5YVhaaGRHVWdLaW92WEc0Z0lDQWdkR2hwY3k1bWFYaGxaQ0E5SUc5bVpuTmxkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHZGxkQ0IwZVhCbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCY0ltWnBlR1ZrWENJN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JuWlhRZ2JtRnRaU2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bWFYaGxaQ0E5UFQwZ01DQS9JRndpVlZSRFhDSWdPaUJnVlZSREpIdG1iM0p0WVhSUFptWnpaWFFvZEdocGN5NW1hWGhsWkN3Z1hDSnVZWEp5YjNkY0lpbDlZRHRjYmlBZ2ZWeHVYRzRnSUdkbGRDQnBZVzVoVG1GdFpTZ3BJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhsWkNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRndpUlhSakwxVlVRMXdpTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lFVjBZeTlIVFZRa2UyWnZjbTFoZEU5bVpuTmxkQ2d0ZEdocGN5NW1hWGhsWkN3Z1hDSnVZWEp5YjNkY0lpbDlZRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCdlptWnpaWFJPWVcxbEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbTVoYldVN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0JtYjNKdFlYUlBabVp6WlhRb2RITXNJR1p2Y20xaGRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbWIzSnRZWFJQWm1aelpYUW9kR2hwY3k1bWFYaGxaQ3dnWm05eWJXRjBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHZGxkQ0JwYzFWdWFYWmxjbk5oYkNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQWIzWmxjbkpwWkdVZ0tpb3ZYRzRnSUc5bVpuTmxkQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bWFYaGxaRHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHVnhkV0ZzY3lodmRHaGxjbHB2Ym1VcElIdGNiaUFnSUNCeVpYUjFjbTRnYjNSb1pYSmFiMjVsTG5SNWNHVWdQVDA5SUZ3aVptbDRaV1JjSWlBbUppQnZkR2hsY2xwdmJtVXVabWw0WldRZ1BUMDlJSFJvYVhNdVptbDRaV1E3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm5aWFFnYVhOV1lXeHBaQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1ZlZ4dUlpd2dJbWx0Y0c5eWRDQmFiMjVsSUdaeWIyMGdYQ0l1TGk5NmIyNWxMbXB6WENJN1hHNWNiaThxS2x4dUlDb2dRU0I2YjI1bElIUm9ZWFFnWm1GcGJHVmtJSFJ2SUhCaGNuTmxMaUJaYjNVZ2MyaHZkV3hrSUc1bGRtVnlJRzVsWldRZ2RHOGdhVzV6ZEdGdWRHbGhkR1VnZEdocGN5NWNiaUFxSUVCcGJYQnNaVzFsYm5SeklIdGFiMjVsZlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmpiR0Z6Y3lCSmJuWmhiR2xrV205dVpTQmxlSFJsYm1SeklGcHZibVVnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWg2YjI1bFRtRnRaU2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzRnSUNBZ0x5b3FJQ0JBY0hKcGRtRjBaU0FxTDF4dUlDQWdJSFJvYVhNdWVtOXVaVTVoYldVZ1BTQjZiMjVsVG1GdFpUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQWIzWmxjbkpwWkdVZ0tpb3ZYRzRnSUdkbGRDQjBlWEJsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJjSW1sdWRtRnNhV1JjSWp0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJBYjNabGNuSnBaR1VnS2lvdlhHNGdJR2RsZENCdVlXMWxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5wdmJtVk9ZVzFsTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUJ2ZG1WeWNtbGtaU0FxS2k5Y2JpQWdaMlYwSUdselZXNXBkbVZ5YzJGc0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHOW1abk5sZEU1aGJXVW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNBdktpb2dRRzkyWlhKeWFXUmxJQ29xTDF4dUlDQm1iM0p0WVhSUFptWnpaWFFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRndpWENJN1hHNGdJSDFjYmx4dUlDQXZLaW9nUUc5MlpYSnlhV1JsSUNvcUwxeHVJQ0J2Wm1aelpYUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkFiM1psY25KcFpHVWdLaW92WEc0Z0lHVnhkV0ZzY3lncElIdGNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FHOTJaWEp5YVdSbElDb3FMMXh1SUNCblpYUWdhWE5XWVd4cFpDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibjFjYmlJc0lDSXZLaXBjYmlBcUlFQndjbWwyWVhSbFhHNGdLaTljYmx4dWFXMXdiM0owSUZwdmJtVWdabkp2YlNCY0lpNHVMM3B2Ym1VdWFuTmNJanRjYm1sdGNHOXlkQ0JKUVU1QldtOXVaU0JtY205dElGd2lMaTR2ZW05dVpYTXZTVUZPUVZwdmJtVXVhbk5jSWp0Y2JtbHRjRzl5ZENCR2FYaGxaRTltWm5ObGRGcHZibVVnWm5KdmJTQmNJaTR1TDNwdmJtVnpMMlpwZUdWa1QyWm1jMlYwV205dVpTNXFjMXdpTzF4dWFXMXdiM0owSUVsdWRtRnNhV1JhYjI1bElHWnliMjBnWENJdUxpOTZiMjVsY3k5cGJuWmhiR2xrV205dVpTNXFjMXdpTzF4dVhHNXBiWEJ2Y25RZ2V5QnBjMVZ1WkdWbWFXNWxaQ3dnYVhOVGRISnBibWNzSUdselRuVnRZbVZ5SUgwZ1puSnZiU0JjSWk0dmRYUnBiQzVxYzF3aU8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdibTl5YldGc2FYcGxXbTl1WlNocGJuQjFkQ3dnWkdWbVlYVnNkRnB2Ym1VcElIdGNiaUFnYkdWMElHOW1abk5sZER0Y2JpQWdhV1lnS0dselZXNWtaV1pwYm1Wa0tHbHVjSFYwS1NCOGZDQnBibkIxZENBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJrWldaaGRXeDBXbTl1WlR0Y2JpQWdmU0JsYkhObElHbG1JQ2hwYm5CMWRDQnBibk4wWVc1alpXOW1JRnB2Ym1VcElIdGNiaUFnSUNCeVpYUjFjbTRnYVc1d2RYUTdYRzRnSUgwZ1pXeHpaU0JwWmlBb2FYTlRkSEpwYm1jb2FXNXdkWFFwS1NCN1hHNGdJQ0FnWTI5dWMzUWdiRzkzWlhKbFpDQTlJR2x1Y0hWMExuUnZURzkzWlhKRFlYTmxLQ2s3WEc0Z0lDQWdhV1lnS0d4dmQyVnlaV1FnUFQwOUlGd2liRzlqWVd4Y0lpQjhmQ0JzYjNkbGNtVmtJRDA5UFNCY0luTjVjM1JsYlZ3aUtTQnlaWFIxY200Z1pHVm1ZWFZzZEZwdmJtVTdYRzRnSUNBZ1pXeHpaU0JwWmlBb2JHOTNaWEpsWkNBOVBUMGdYQ0oxZEdOY0lpQjhmQ0JzYjNkbGNtVmtJRDA5UFNCY0ltZHRkRndpS1NCeVpYUjFjbTRnUm1sNFpXUlBabVp6WlhSYWIyNWxMblYwWTBsdWMzUmhibU5sTzF4dUlDQWdJR1ZzYzJVZ2NtVjBkWEp1SUVacGVHVmtUMlptYzJWMFdtOXVaUzV3WVhKelpWTndaV05wWm1sbGNpaHNiM2RsY21Wa0tTQjhmQ0JKUVU1QldtOXVaUzVqY21WaGRHVW9hVzV3ZFhRcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0dselRuVnRZbVZ5S0dsdWNIVjBLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQkdhWGhsWkU5bVpuTmxkRnB2Ym1VdWFXNXpkR0Z1WTJVb2FXNXdkWFFwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLSFI1Y0dWdlppQnBibkIxZENBOVBUMGdYQ0p2WW1wbFkzUmNJaUFtSmlCcGJuQjFkQzV2Wm1aelpYUWdKaVlnZEhsd1pXOW1JR2x1Y0hWMExtOW1abk5sZENBOVBUMGdYQ0p1ZFcxaVpYSmNJaWtnZTF4dUlDQWdJQzh2SUZSb2FYTWdhWE1nWkhWdFlpd2dZblYwSUhSb1pTQnBibk4wWVc1alpXOW1JR05vWldOcklHRmliM1psSUdSdlpYTnVKM1FnYzJWbGJTQjBieUJ5WldGc2JIa2dkMjl5YTF4dUlDQWdJQzh2SUhOdklIZGxKM0psSUdSMVkyc2dZMmhsWTJ0cGJtY2dhWFJjYmlBZ0lDQnlaWFIxY200Z2FXNXdkWFE3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCSmJuWmhiR2xrV205dVpTaHBibkIxZENrN1hHNGdJSDFjYm4xY2JpSXNJQ0pwYlhCdmNuUWdVM2x6ZEdWdFdtOXVaU0JtY205dElGd2lMaTk2YjI1bGN5OXplWE4wWlcxYWIyNWxMbXB6WENJN1hHNXBiWEJ2Y25RZ1NVRk9RVnB2Ym1VZ1puSnZiU0JjSWk0dmVtOXVaWE12U1VGT1FWcHZibVV1YW5OY0lqdGNibWx0Y0c5eWRDQk1iMk5oYkdVZ1puSnZiU0JjSWk0dmFXMXdiQzlzYjJOaGJHVXVhbk5jSWp0Y2JseHVhVzF3YjNKMElIc2dibTl5YldGc2FYcGxXbTl1WlNCOUlHWnliMjBnWENJdUwybHRjR3d2ZW05dVpWVjBhV3d1YW5OY0lqdGNibHh1YkdWMElHNXZkeUE5SUNncElEMCtJRVJoZEdVdWJtOTNLQ2tzWEc0Z0lHUmxabUYxYkhSYWIyNWxJRDBnWENKemVYTjBaVzFjSWl4Y2JpQWdaR1ZtWVhWc2RFeHZZMkZzWlNBOUlHNTFiR3dzWEc0Z0lHUmxabUYxYkhST2RXMWlaWEpwYm1kVGVYTjBaVzBnUFNCdWRXeHNMRnh1SUNCa1pXWmhkV3gwVDNWMGNIVjBRMkZzWlc1a1lYSWdQU0J1ZFd4c0xGeHVJQ0IwYUhKdmQwOXVTVzUyWVd4cFpEdGNibHh1THlvcVhHNGdLaUJUWlhSMGFXNW5jeUJqYjI1MFlXbHVjeUJ6ZEdGMGFXTWdaMlYwZEdWeWN5QmhibVFnYzJWMGRHVnljeUIwYUdGMElHTnZiblJ5YjJ3Z1RIVjRiMjRuY3lCdmRtVnlZV3hzSUdKbGFHRjJhVzl5TGlCTWRYaHZiaUJwY3lCaElITnBiWEJzWlNCc2FXSnlZWEo1SUhkcGRHZ2dabVYzSUc5d2RHbHZibk1zSUdKMWRDQjBhR1VnYjI1bGN5QnBkQ0JrYjJWeklHaGhkbVVnYkdsMlpTQm9aWEpsTGx4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmpiR0Z6Y3lCVFpYUjBhVzVuY3lCN1hHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJR05oYkd4aVlXTnJJR1p2Y2lCeVpYUjFjbTVwYm1jZ2RHaGxJR04xY25KbGJuUWdkR2x0WlhOMFlXMXdMbHh1SUNBZ0tpQkFkSGx3WlNCN1puVnVZM1JwYjI1OVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBJRzV2ZHlncElIdGNiaUFnSUNCeVpYUjFjbTRnYm05M08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk5sZENCMGFHVWdZMkZzYkdKaFkyc2dabTl5SUhKbGRIVnlibWx1WnlCMGFHVWdZM1Z5Y21WdWRDQjBhVzFsYzNSaGJYQXVYRzRnSUNBcUlGUm9aU0JtZFc1amRHbHZiaUJ6YUc5MWJHUWdjbVYwZFhKdUlHRWdiblZ0WW1WeUxDQjNhR2xqYUNCM2FXeHNJR0psSUdsdWRHVnljSEpsZEdWa0lHRnpJR0Z1SUVWd2IyTm9JRzFwYkd4cGMyVmpiMjVrSUdOdmRXNTBYRzRnSUNBcUlFQjBlWEJsSUh0bWRXNWpkR2x2Ym4xY2JpQWdJQ29nUUdWNFlXMXdiR1VnVTJWMGRHbHVaM011Ym05M0lEMGdLQ2tnUFQ0Z1JHRjBaUzV1YjNjb0tTQXJJRE13TURBZ0x5OGdjSEpsZEdWdVpDQnBkQ0JwY3lBeklITmxZMjl1WkhNZ2FXNGdkR2hsSUdaMWRIVnlaVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQlRaWFIwYVc1bmN5NXViM2NnUFNBb0tTQTlQaUF3SUM4dklHRnNkMkY1Y3lCd2NtVjBaVzVrSUdsMEozTWdTbUZ1SURFc0lERTVOekFnWVhRZ2JXbGtibWxuYUhRZ2FXNGdWVlJESUhScGJXVmNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnpaWFFnYm05M0tHNHBJSHRjYmlBZ0lDQnViM2NnUFNCdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk5sZENCMGFHVWdaR1ZtWVhWc2RDQjBhVzFsSUhwdmJtVWdkRzhnWTNKbFlYUmxJRVJoZEdWVWFXMWxjeUJwYmk0Z1JHOWxjeUJ1YjNRZ1lXWm1aV04wSUdWNGFYTjBhVzVuSUdsdWMzUmhibU5sY3k1Y2JpQWdJQ29nVlhObElIUm9aU0IyWVd4MVpTQmNJbk41YzNSbGJWd2lJSFJ2SUhKbGMyVjBJSFJvYVhNZ2RtRnNkV1VnZEc4Z2RHaGxJSE41YzNSbGJTZHpJSFJwYldVZ2VtOXVaUzVjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCelpYUWdaR1ZtWVhWc2RGcHZibVVvZW05dVpTa2dlMXh1SUNBZ0lHUmxabUYxYkhSYWIyNWxJRDBnZW05dVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJR1JsWm1GMWJIUWdkR2x0WlNCNmIyNWxJRzlpYW1WamRDQmpkWEp5Wlc1MGJIa2dkWE5sWkNCMGJ5QmpjbVZoZEdVZ1JHRjBaVlJwYldWekxpQkViMlZ6SUc1dmRDQmhabVpsWTNRZ1pYaHBjM1JwYm1jZ2FXNXpkR0Z1WTJWekxseHVJQ0FnS2lCVWFHVWdaR1ZtWVhWc2RDQjJZV3gxWlNCcGN5QjBhR1VnYzNsemRHVnRKM01nZEdsdFpTQjZiMjVsSUNoMGFHVWdiMjVsSUhObGRDQnZiaUIwYUdVZ2JXRmphR2x1WlNCMGFHRjBJSEoxYm5NZ2RHaHBjeUJqYjJSbEtTNWNiaUFnSUNvZ1FIUjVjR1VnZTFwdmJtVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUdSbFptRjFiSFJhYjI1bEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWIzSnRZV3hwZW1WYWIyNWxLR1JsWm1GMWJIUmFiMjVsTENCVGVYTjBaVzFhYjI1bExtbHVjM1JoYm1ObEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJR1JsWm1GMWJIUWdiRzlqWVd4bElIUnZJR055WldGMFpTQkVZWFJsVkdsdFpYTWdkMmwwYUM0Z1JHOWxjeUJ1YjNRZ1lXWm1aV04wSUdWNGFYTjBhVzVuSUdsdWMzUmhibU5sY3k1Y2JpQWdJQ29nUUhSNWNHVWdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnWkdWbVlYVnNkRXh2WTJGc1pTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1pHVm1ZWFZzZEV4dlkyRnNaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVFpYUWdkR2hsSUdSbFptRjFiSFFnYkc5allXeGxJSFJ2SUdOeVpXRjBaU0JFWVhSbFZHbHRaWE1nZDJsMGFDNGdSRzlsY3lCdWIzUWdZV1ptWldOMElHVjRhWE4wYVc1bklHbHVjM1JoYm1ObGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ6WlhRZ1pHVm1ZWFZzZEV4dlkyRnNaU2hzYjJOaGJHVXBJSHRjYmlBZ0lDQmtaV1poZFd4MFRHOWpZV3hsSUQwZ2JHOWpZV3hsTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ1pHVm1ZWFZzZENCdWRXMWlaWEpwYm1jZ2MzbHpkR1Z0SUhSdklHTnlaV0YwWlNCRVlYUmxWR2x0WlhNZ2QybDBhQzRnUkc5bGN5QnViM1FnWVdabVpXTjBJR1Y0YVhOMGFXNW5JR2x1YzNSaGJtTmxjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdaR1ZtWVhWc2RFNTFiV0psY21sdVoxTjVjM1JsYlNncElIdGNiaUFnSUNCeVpYUjFjbTRnWkdWbVlYVnNkRTUxYldKbGNtbHVaMU41YzNSbGJUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJUWlhRZ2RHaGxJR1JsWm1GMWJIUWdiblZ0WW1WeWFXNW5JSE41YzNSbGJTQjBieUJqY21WaGRHVWdSR0YwWlZScGJXVnpJSGRwZEdndUlFUnZaWE1nYm05MElHRm1abVZqZENCbGVHbHpkR2x1WnlCcGJuTjBZVzVqWlhNdVhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdjMlYwSUdSbFptRjFiSFJPZFcxaVpYSnBibWRUZVhOMFpXMG9iblZ0WW1WeWFXNW5VM2x6ZEdWdEtTQjdYRzRnSUNBZ1pHVm1ZWFZzZEU1MWJXSmxjbWx1WjFONWMzUmxiU0E5SUc1MWJXSmxjbWx1WjFONWMzUmxiVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUdSbFptRjFiSFFnYjNWMGNIVjBJR05oYkdWdVpHRnlJSFJ2SUdOeVpXRjBaU0JFWVhSbFZHbHRaWE1nZDJsMGFDNGdSRzlsY3lCdWIzUWdZV1ptWldOMElHVjRhWE4wYVc1bklHbHVjM1JoYm1ObGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1pHVm1ZWFZzZEU5MWRIQjFkRU5oYkdWdVpHRnlLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmtaV1poZFd4MFQzVjBjSFYwUTJGc1pXNWtZWEk3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1UyVjBJSFJvWlNCa1pXWmhkV3gwSUc5MWRIQjFkQ0JqWVd4bGJtUmhjaUIwYnlCamNtVmhkR1VnUkdGMFpWUnBiV1Z6SUhkcGRHZ3VJRVJ2WlhNZ2JtOTBJR0ZtWm1WamRDQmxlR2x6ZEdsdVp5QnBibk4wWVc1alpYTXVYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYzJWMElHUmxabUYxYkhSUGRYUndkWFJEWVd4bGJtUmhjaWh2ZFhSd2RYUkRZV3hsYm1SaGNpa2dlMXh1SUNBZ0lHUmxabUYxYkhSUGRYUndkWFJEWVd4bGJtUmhjaUE5SUc5MWRIQjFkRU5oYkdWdVpHRnlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjNhR1YwYUdWeUlFeDFlRzl1SUhkcGJHd2dkR2h5YjNjZ2QyaGxiaUJwZENCbGJtTnZkVzUwWlhKeklHbHVkbUZzYVdRZ1JHRjBaVlJwYldWekxDQkVkWEpoZEdsdmJuTXNJRzl5SUVsdWRHVnlkbUZzYzF4dUlDQWdLaUJBZEhsd1pTQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnZEdoeWIzZFBia2x1ZG1Gc2FXUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9jbTkzVDI1SmJuWmhiR2xrTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTmxkQ0IzYUdWMGFHVnlJRXgxZUc5dUlIZHBiR3dnZEdoeWIzY2dkMmhsYmlCcGRDQmxibU52ZFc1MFpYSnpJR2x1ZG1Gc2FXUWdSR0YwWlZScGJXVnpMQ0JFZFhKaGRHbHZibk1zSUc5eUlFbHVkR1Z5ZG1Gc2MxeHVJQ0FnS2lCQWRIbHdaU0I3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ6WlhRZ2RHaHliM2RQYmtsdWRtRnNhV1FvZENrZ2UxeHVJQ0FnSUhSb2NtOTNUMjVKYm5aaGJHbGtJRDBnZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWE5sZENCTWRYaHZiaWR6SUdkc2IySmhiQ0JqWVdOb1pYTXVJRk5vYjNWc1pDQnZibXg1SUdKbElHNWxZMlZ6YzJGeWVTQnBiaUIwWlhOMGFXNW5JSE5qWlc1aGNtbHZjeTVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdkbTlwWkgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCeVpYTmxkRU5oWTJobGN5Z3BJSHRjYmlBZ0lDQk1iMk5oYkdVdWNtVnpaWFJEWVdOb1pTZ3BPMXh1SUNBZ0lFbEJUa0ZhYjI1bExuSmxjMlYwUTJGamFHVW9LVHRjYmlBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCN0lIQmhaRk4wWVhKMExDQnliM1Z1WkZSdkxDQm9ZWE5TWld4aGRHbDJaU0I5SUdaeWIyMGdYQ0l1TDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRVZ1WjJ4cGMyZ2dabkp2YlNCY0lpNHZaVzVuYkdsemFDNXFjMXdpTzF4dWFXMXdiM0owSUZObGRIUnBibWR6SUdaeWIyMGdYQ0l1TGk5elpYUjBhVzVuY3k1cWMxd2lPMXh1YVcxd2IzSjBJRVJoZEdWVWFXMWxJR1p5YjIwZ1hDSXVMaTlrWVhSbGRHbHRaUzVxYzF3aU8xeHVhVzF3YjNKMElFbEJUa0ZhYjI1bElHWnliMjBnWENJdUxpOTZiMjVsY3k5SlFVNUJXbTl1WlM1cWMxd2lPMXh1WEc0dkx5QjBiMlJ2SUMwZ2NtVnRZWEFnWTJGamFHbHVaMXh1WEc1c1pYUWdhVzUwYkV4R1EyRmphR1VnUFNCN2ZUdGNibVoxYm1OMGFXOXVJR2RsZEVOaFkyaGxaRXhHS0d4dlkxTjBjbWx1Wnl3Z2IzQjBjeUE5SUh0OUtTQjdYRzRnSUdOdmJuTjBJR3RsZVNBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0Z0c2IyTlRkSEpwYm1jc0lHOXdkSE5kS1R0Y2JpQWdiR1YwSUdSMFppQTlJR2x1ZEd4TVJrTmhZMmhsVzJ0bGVWMDdYRzRnSUdsbUlDZ2haSFJtS1NCN1hHNGdJQ0FnWkhSbUlEMGdibVYzSUVsdWRHd3VUR2x6ZEVadmNtMWhkQ2hzYjJOVGRISnBibWNzSUc5d2RITXBPMXh1SUNBZ0lHbHVkR3hNUmtOaFkyaGxXMnRsZVYwZ1BTQmtkR1k3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR1IwWmp0Y2JuMWNibHh1YkdWMElHbHVkR3hFVkVOaFkyaGxJRDBnZTMwN1hHNW1kVzVqZEdsdmJpQm5aWFJEWVdOb1pXUkVWRVlvYkc5alUzUnlhVzVuTENCdmNIUnpJRDBnZTMwcElIdGNiaUFnWTI5dWMzUWdhMlY1SUQwZ1NsTlBUaTV6ZEhKcGJtZHBabmtvVzJ4dlkxTjBjbWx1Wnl3Z2IzQjBjMTBwTzF4dUlDQnNaWFFnWkhSbUlEMGdhVzUwYkVSVVEyRmphR1ZiYTJWNVhUdGNiaUFnYVdZZ0tDRmtkR1lwSUh0Y2JpQWdJQ0JrZEdZZ1BTQnVaWGNnU1c1MGJDNUVZWFJsVkdsdFpVWnZjbTFoZENoc2IyTlRkSEpwYm1jc0lHOXdkSE1wTzF4dUlDQWdJR2x1ZEd4RVZFTmhZMmhsVzJ0bGVWMGdQU0JrZEdZN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUdSMFpqdGNibjFjYmx4dWJHVjBJR2x1ZEd4T2RXMURZV05vWlNBOUlIdDlPMXh1Wm5WdVkzUnBiMjRnWjJWMFEyRmphR1ZrU1U1R0tHeHZZMU4wY21sdVp5d2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lHTnZibk4wSUd0bGVTQTlJRXBUVDA0dWMzUnlhVzVuYVdaNUtGdHNiMk5UZEhKcGJtY3NJRzl3ZEhOZEtUdGNiaUFnYkdWMElHbHVaaUE5SUdsdWRHeE9kVzFEWVdOb1pWdHJaWGxkTzF4dUlDQnBaaUFvSVdsdVppa2dlMXh1SUNBZ0lHbHVaaUE5SUc1bGR5QkpiblJzTGs1MWJXSmxja1p2Y20xaGRDaHNiMk5UZEhKcGJtY3NJRzl3ZEhNcE8xeHVJQ0FnSUdsdWRHeE9kVzFEWVdOb1pWdHJaWGxkSUQwZ2FXNW1PMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnBibVk3WEc1OVhHNWNibXhsZENCcGJuUnNVbVZzUTJGamFHVWdQU0I3ZlR0Y2JtWjFibU4wYVc5dUlHZGxkRU5oWTJobFpGSlVSaWhzYjJOVGRISnBibWNzSUc5d2RITWdQU0I3ZlNrZ2UxeHVJQ0JqYjI1emRDQjdJR0poYzJVc0lDNHVMbU5oWTJobFMyVjVUM0IwY3lCOUlEMGdiM0IwY3pzZ0x5OGdaWGhqYkhWa1pTQmdZbUZ6WldBZ1puSnZiU0IwYUdVZ2IzQjBhVzl1YzF4dUlDQmpiMjV6ZENCclpYa2dQU0JLVTA5T0xuTjBjbWx1WjJsbWVTaGJiRzlqVTNSeWFXNW5MQ0JqWVdOb1pVdGxlVTl3ZEhOZEtUdGNiaUFnYkdWMElHbHVaaUE5SUdsdWRHeFNaV3hEWVdOb1pWdHJaWGxkTzF4dUlDQnBaaUFvSVdsdVppa2dlMXh1SUNBZ0lHbHVaaUE5SUc1bGR5QkpiblJzTGxKbGJHRjBhWFpsVkdsdFpVWnZjbTFoZENoc2IyTlRkSEpwYm1jc0lHOXdkSE1wTzF4dUlDQWdJR2x1ZEd4U1pXeERZV05vWlZ0clpYbGRJRDBnYVc1bU8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCcGJtWTdYRzU5WEc1Y2JteGxkQ0J6ZVhOTWIyTmhiR1ZEWVdOb1pTQTlJRzUxYkd3N1hHNW1kVzVqZEdsdmJpQnplWE4wWlcxTWIyTmhiR1VvS1NCN1hHNGdJR2xtSUNoemVYTk1iMk5oYkdWRFlXTm9aU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnplWE5NYjJOaGJHVkRZV05vWlR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCemVYTk1iMk5oYkdWRFlXTm9aU0E5SUc1bGR5QkpiblJzTGtSaGRHVlVhVzFsUm05eWJXRjBLQ2t1Y21WemIyeDJaV1JQY0hScGIyNXpLQ2t1Ykc5allXeGxPMXh1SUNBZ0lISmxkSFZ5YmlCemVYTk1iMk5oYkdWRFlXTm9aVHRjYmlBZ2ZWeHVmVnh1WEc1bWRXNWpkR2x2YmlCd1lYSnpaVXh2WTJGc1pWTjBjbWx1Wnloc2IyTmhiR1ZUZEhJcElIdGNiaUFnTHk4Z1NTQnlaV0ZzYkhrZ2QyRnVkQ0IwYnlCaGRtOXBaQ0IzY21sMGFXNW5JR0VnUWtOUUlEUTNJSEJoY25ObGNseHVJQ0F2THlCelpXVXNJR1V1Wnk0Z2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzZHZiMjl5YlM5aVkzQXRORGRjYmlBZ0x5OGdTVzV6ZEdWaFpDd2dkMlVuYkd3Z1pHOGdkR2hwY3pwY2JseHVJQ0F2THlCaEtTQnBaaUIwYUdVZ2MzUnlhVzVuSUdoaGN5QnVieUF0ZFNCbGVIUmxibk5wYjI1ekxDQnFkWE4wSUd4bFlYWmxJR2wwSUdGc2IyNWxYRzRnSUM4dklHSXBJR2xtSUdsMElHUnZaWE1zSUhWelpTQkpiblJzSUhSdklISmxjMjlzZG1VZ1pYWmxjbmwwYUdsdVoxeHVJQ0F2THlCaktTQnBaaUJKYm5Sc0lHWmhhV3h6TENCMGNua2dZV2RoYVc0Z2QybDBhRzkxZENCMGFHVWdMWFZjYmx4dUlDQmpiMjV6ZENCMVNXNWtaWGdnUFNCc2IyTmhiR1ZUZEhJdWFXNWtaWGhQWmloY0lpMTFMVndpS1R0Y2JpQWdhV1lnS0hWSmJtUmxlQ0E5UFQwZ0xURXBJSHRjYmlBZ0lDQnlaWFIxY200Z1cyeHZZMkZzWlZOMGNsMDdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdiR1YwSUc5d2RHbHZibk03WEc0Z0lDQWdZMjl1YzNRZ2MyMWhiR3hsY2lBOUlHeHZZMkZzWlZOMGNpNXpkV0p6ZEhKcGJtY29NQ3dnZFVsdVpHVjRLVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnYjNCMGFXOXVjeUE5SUdkbGRFTmhZMmhsWkVSVVJpaHNiMk5oYkdWVGRISXBMbkpsYzI5c2RtVmtUM0IwYVc5dWN5Z3BPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJRzl3ZEdsdmJuTWdQU0JuWlhSRFlXTm9aV1JFVkVZb2MyMWhiR3hsY2lrdWNtVnpiMngyWldSUGNIUnBiMjV6S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdleUJ1ZFcxaVpYSnBibWRUZVhOMFpXMHNJR05oYkdWdVpHRnlJSDBnUFNCdmNIUnBiMjV6TzF4dUlDQWdJQzh2SUhKbGRIVnliaUIwYUdVZ2MyMWhiR3hsY2lCdmJtVWdjMjhnZEdoaGRDQjNaU0JqWVc0Z1lYQndaVzVrSUhSb1pTQmpZV3hsYm1SaGNpQmhibVFnYm5WdFltVnlhVzVuSUc5MlpYSnlhV1JsY3lCMGJ5QnBkRnh1SUNBZ0lISmxkSFZ5YmlCYmMyMWhiR3hsY2l3Z2JuVnRZbVZ5YVc1blUzbHpkR1Z0TENCallXeGxibVJoY2wwN1hHNGdJSDFjYm4xY2JseHVablZ1WTNScGIyNGdhVzUwYkVOdmJtWnBaMU4wY21sdVp5aHNiMk5oYkdWVGRISXNJRzUxYldKbGNtbHVaMU41YzNSbGJTd2diM1YwY0hWMFEyRnNaVzVrWVhJcElIdGNiaUFnYVdZZ0tHOTFkSEIxZEVOaGJHVnVaR0Z5SUh4OElHNTFiV0psY21sdVoxTjVjM1JsYlNrZ2UxeHVJQ0FnSUd4dlkyRnNaVk4wY2lBclBTQmNJaTExWENJN1hHNWNiaUFnSUNCcFppQW9iM1YwY0hWMFEyRnNaVzVrWVhJcElIdGNiaUFnSUNBZ0lHeHZZMkZzWlZOMGNpQXJQU0JnTFdOaExTUjdiM1YwY0hWMFEyRnNaVzVrWVhKOVlEdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iblZ0WW1WeWFXNW5VM2x6ZEdWdEtTQjdYRzRnSUNBZ0lDQnNiMk5oYkdWVGRISWdLejBnWUMxdWRTMGtlMjUxYldKbGNtbHVaMU41YzNSbGJYMWdPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYkc5allXeGxVM1J5TzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJzYjJOaGJHVlRkSEk3WEc0Z0lIMWNibjFjYmx4dVpuVnVZM1JwYjI0Z2JXRndUVzl1ZEdoektHWXBJSHRjYmlBZ1kyOXVjM1FnYlhNZ1BTQmJYVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREU3SUdrZ1BEMGdNVEk3SUdrckt5a2dlMXh1SUNBZ0lHTnZibk4wSUdSMElEMGdSR0YwWlZScGJXVXVkWFJqS0RJd01UWXNJR2tzSURFcE8xeHVJQ0FnSUcxekxuQjFjMmdvWmloa2RDa3BPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnRjenRjYm4xY2JseHVablZ1WTNScGIyNGdiV0Z3VjJWbGEyUmhlWE1vWmlrZ2UxeHVJQ0JqYjI1emRDQnRjeUE5SUZ0ZE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Uc2dhU0E4UFNBM095QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQmtkQ0E5SUVSaGRHVlVhVzFsTG5WMFl5Z3lNREUyTENBeE1Td2dNVE1nS3lCcEtUdGNiaUFnSUNCdGN5NXdkWE5vS0dZb1pIUXBLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdiWE03WEc1OVhHNWNibVoxYm1OMGFXOXVJR3hwYzNSVGRIVm1aaWhzYjJNc0lHeGxibWQwYUN3Z1pHVm1ZWFZzZEU5TExDQmxibWRzYVhOb1JtNHNJR2x1ZEd4R2Jpa2dlMXh1SUNCamIyNXpkQ0J0YjJSbElEMGdiRzlqTG14cGMzUnBibWROYjJSbEtHUmxabUYxYkhSUFN5azdYRzVjYmlBZ2FXWWdLRzF2WkdVZ1BUMDlJRndpWlhKeWIzSmNJaWtnZTF4dUlDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLRzF2WkdVZ1BUMDlJRndpWlc1Y0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbGJtZHNhWE5vUm00b2JHVnVaM1JvS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnYVc1MGJFWnVLR3hsYm1kMGFDazdYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnYzNWd2NHOXlkSE5HWVhOMFRuVnRZbVZ5Y3loc2IyTXBJSHRjYmlBZ2FXWWdLR3h2WXk1dWRXMWlaWEpwYm1kVGVYTjBaVzBnSmlZZ2JHOWpMbTUxYldKbGNtbHVaMU41YzNSbGJTQWhQVDBnWENKc1lYUnVYQ0lwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUd4dll5NXVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BUMDlJRndpYkdGMGJsd2lJSHg4WEc0Z0lDQWdJQ0FoYkc5akxteHZZMkZzWlNCOGZGeHVJQ0FnSUNBZ2JHOWpMbXh2WTJGc1pTNXpkR0Z5ZEhOWGFYUm9LRndpWlc1Y0lpa2dmSHhjYmlBZ0lDQWdJRzVsZHlCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMEtHeHZZeTVwYm5Sc0tTNXlaWE52YkhabFpFOXdkR2x2Ym5Nb0tTNXVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BUMDlJRndpYkdGMGJsd2lYRzRnSUNBZ0tUdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRUJ3Y21sMllYUmxYRzRnS2k5Y2JseHVZMnhoYzNNZ1VHOXNlVTUxYldKbGNrWnZjbTFoZEhSbGNpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtHbHVkR3dzSUdadmNtTmxVMmx0Y0d4bExDQnZjSFJ6S1NCN1hHNGdJQ0FnZEdocGN5NXdZV1JVYnlBOUlHOXdkSE11Y0dGa1ZHOGdmSHdnTUR0Y2JpQWdJQ0IwYUdsekxtWnNiMjl5SUQwZ2IzQjBjeTVtYkc5dmNpQjhmQ0JtWVd4elpUdGNibHh1SUNBZ0lHTnZibk4wSUhzZ2NHRmtWRzhzSUdac2IyOXlMQ0F1TGk1dmRHaGxjazl3ZEhNZ2ZTQTlJRzl3ZEhNN1hHNWNiaUFnSUNCcFppQW9JV1p2Y21ObFUybHRjR3hsSUh4OElFOWlhbVZqZEM1clpYbHpLRzkwYUdWeVQzQjBjeWt1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYVc1MGJFOXdkSE1nUFNCN0lIVnpaVWR5YjNWd2FXNW5PaUJtWVd4elpTd2dMaTR1YjNCMGN5QjlPMXh1SUNBZ0lDQWdhV1lnS0c5d2RITXVjR0ZrVkc4Z1BpQXdLU0JwYm5Sc1QzQjBjeTV0YVc1cGJYVnRTVzUwWldkbGNrUnBaMmwwY3lBOUlHOXdkSE11Y0dGa1ZHODdYRzRnSUNBZ0lDQjBhR2x6TG1sdVppQTlJR2RsZEVOaFkyaGxaRWxPUmlocGJuUnNMQ0JwYm5Sc1QzQjBjeWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnWm05eWJXRjBLR2twSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVwYm1ZcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdacGVHVmtJRDBnZEdocGN5NW1iRzl2Y2lBL0lFMWhkR2d1Wm14dmIzSW9hU2tnT2lCcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhVzVtTG1admNtMWhkQ2htYVhobFpDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklIUnZJRzFoZEdOb0lIUm9aU0JpY205M2MyVnlKM01nYm5WdFltVnlabTl5YldGMGRHVnlJR1JsWm1GMWJIUnpYRzRnSUNBZ0lDQmpiMjV6ZENCbWFYaGxaQ0E5SUhSb2FYTXVabXh2YjNJZ1B5Qk5ZWFJvTG1ac2IyOXlLR2twSURvZ2NtOTFibVJVYnlocExDQXpLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQndZV1JUZEdGeWRDaG1hWGhsWkN3Z2RHaHBjeTV3WVdSVWJ5azdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dRSEJ5YVhaaGRHVmNiaUFxTDF4dVhHNWpiR0Z6Y3lCUWIyeDVSR0YwWlVadmNtMWhkSFJsY2lCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0dSMExDQnBiblJzTENCdmNIUnpLU0I3WEc0Z0lDQWdkR2hwY3k1dmNIUnpJRDBnYjNCMGN6dGNibHh1SUNBZ0lHeGxkQ0I2TzF4dUlDQWdJR2xtSUNoa2RDNTZiMjVsTG1selZXNXBkbVZ5YzJGc0tTQjdYRzRnSUNBZ0lDQXZMeUJWVkVNdE9DQnZjaUJGZEdNdlZWUkRMVGdnWVhKbElHNXZkQ0J3WVhKMElHOW1JSFI2WkdGMFlTd2diMjVzZVNCRmRHTXZSMDFVS3pnZ1lXNWtJSFJvWlNCc2FXdGxMbHh1SUNBZ0lDQWdMeThnVkdoaGRDQnBjeUIzYUhrZ1ptbDRaV1F0YjJabWMyVjBJRlJhSUdseklITmxkQ0IwYnlCMGFHRjBJSFZ1YkdWemN5QnBkQ0JwY3pwY2JpQWdJQ0FnSUM4dklERXVJRkpsY0hKbGMyVnVkR2x1WnlCdlptWnpaWFFnTUNCM2FHVnVJRlZVUXlCcGN5QjFjMlZrSUhSdklHMWhhVzUwWVdsdUlIQnlaWFpwYjNWeklHSmxhR0YyYVc5eUlHRnVaQ0JrYjJWeklHNXZkQ0JpWldOdmJXVWdSMDFVTGx4dUlDQWdJQ0FnTHk4Z01pNGdWVzV6ZFhCd2IzSjBaV1FnWW5rZ2RHaGxJR0p5YjNkelpYSTZYRzRnSUNBZ0lDQXZMeUFnSUNBdElITnZiV1VnWkc4Z2JtOTBJSE4xY0hCdmNuUWdSWFJqTDF4dUlDQWdJQ0FnTHk4Z0lDQWdMU0E4SUVWMFl5OUhUVlF0TVRRc0lENGdSWFJqTDBkTlZDc3hNaXdnWVc1a0lETXdMVzFwYm5WMFpTQnZjaUEwTlMxdGFXNTFkR1VnYjJabWMyVjBjeUJoY21VZ2JtOTBJSEJoY25RZ2IyWWdkSHBrWVhSaFhHNGdJQ0FnSUNCamIyNXpkQ0JuYlhSUFptWnpaWFFnUFNBdE1TQXFJQ2hrZEM1dlptWnpaWFFnTHlBMk1DazdYRzRnSUNBZ0lDQmpiMjV6ZENCdlptWnpaWFJhSUQwZ1oyMTBUMlptYzJWMElENDlJREFnUHlCZ1JYUmpMMGROVkNza2UyZHRkRTltWm5ObGRIMWdJRG9nWUVWMFl5OUhUVlFrZTJkdGRFOW1abk5sZEgxZ08xeHVJQ0FnSUNBZ2FXWWdLR1IwTG05bVpuTmxkQ0FoUFQwZ01DQW1KaUJKUVU1QldtOXVaUzVqY21WaGRHVW9iMlptYzJWMFdpa3VkbUZzYVdRcElIdGNiaUFnSUNBZ0lDQWdlaUE5SUc5bVpuTmxkRm83WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaSFFnUFNCa2REdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDOHZJRTV2ZENCaGJHd2dabWw0WldRdGIyWm1jMlYwSUhwdmJtVnpJR3hwYTJVZ1JYUmpMeXMwT2pNd0lHRnlaU0J3Y21WelpXNTBJR2x1SUhSNlpHRjBZUzVjYmlBZ0lDQWdJQ0FnTHk4Z1UyOGdkMlVnYUdGMlpTQjBieUJ0WVd0bElHUnZMaUJVZDI4Z1kyRnpaWE02WEc0Z0lDQWdJQ0FnSUM4dklERXVJRlJvWlNCbWIzSnRZWFFnYjNCMGFXOXVjeUIwWld4c0lIVnpJSFJ2SUhOb2IzY2dkR2hsSUhwdmJtVXVJRmRsSUdOaGJpZDBJR1J2SUhSb1lYUXNJSE52SUhSb1pTQmlaWE4wWEc0Z0lDQWdJQ0FnSUM4dklIZGxJR05oYmlCa2J5QnBjeUJtYjNKdFlYUWdkR2hsSUdSaGRHVWdhVzRnVlZSRExseHVJQ0FnSUNBZ0lDQXZMeUF5TGlCVWFHVWdabTl5YldGMElHOXdkR2x2Ym5NZ1pHOXVKM1FnZEdWc2JDQjFjeUIwYnlCemFHOTNJSFJvWlNCNmIyNWxMaUJVYUdWdUlIZGxJR05oYmlCaFpHcDFjM1FnZEdobGJWeHVJQ0FnSUNBZ0lDQXZMeUIwYUdVZ2RHbHRaU0JoYm1RZ2RHVnNiQ0IwYUdVZ1ptOXliV0YwZEdWeUlIUnZJSE5vYjNjZ2FYUWdkRzhnZFhNZ2FXNGdWVlJETENCemJ5QjBhR0YwSUhSb1pTQjBhVzFsSUdseklISnBaMmgwWEc0Z0lDQWdJQ0FnSUM4dklHRnVaQ0IwYUdVZ1ltRmtJSHB2Ym1VZ1pHOWxjMjRuZENCemFHOTNJSFZ3TGx4dUlDQWdJQ0FnSUNCNklEMGdYQ0pWVkVOY0lqdGNiaUFnSUNBZ0lDQWdhV1lnS0c5d2RITXVkR2x0WlZwdmJtVk9ZVzFsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1a2RDQTlJR1IwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11WkhRZ1BTQmtkQzV2Wm1aelpYUWdQVDA5SURBZ1B5QmtkQ0E2SUVSaGRHVlVhVzFsTG1aeWIyMU5hV3hzYVhNb1pIUXVkSE1nS3lCa2RDNXZabVp6WlhRZ0tpQTJNQ0FxSURFd01EQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hrZEM1NmIyNWxMblI1Y0dVZ1BUMDlJRndpYzNsemRHVnRYQ0lwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVaSFFnUFNCa2REdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnZEdocGN5NWtkQ0E5SUdSME8xeHVJQ0FnSUNBZ2VpQTlJR1IwTG5wdmJtVXVibUZ0WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnBiblJzVDNCMGN5QTlJSHNnTGk0dWRHaHBjeTV2Y0hSeklIMDdYRzRnSUNBZ2FXWWdLSG9wSUh0Y2JpQWdJQ0FnSUdsdWRHeFBjSFJ6TG5ScGJXVmFiMjVsSUQwZ2VqdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NWtkR1lnUFNCblpYUkRZV05vWldSRVZFWW9hVzUwYkN3Z2FXNTBiRTl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdabTl5YldGMEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVIwWmk1bWIzSnRZWFFvZEdocGN5NWtkQzUwYjBwVFJHRjBaU2dwS1R0Y2JpQWdmVnh1WEc0Z0lHWnZjbTFoZEZSdlVHRnlkSE1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpIUm1MbVp2Y20xaGRGUnZVR0Z5ZEhNb2RHaHBjeTVrZEM1MGIwcFRSR0YwWlNncEtUdGNiaUFnZlZ4dVhHNGdJSEpsYzI5c2RtVmtUM0IwYVc5dWN5Z3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVrZEdZdWNtVnpiMngyWldSUGNIUnBiMjV6S0NrN1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1amJHRnpjeUJRYjJ4NVVtVnNSbTl5YldGMGRHVnlJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9hVzUwYkN3Z2FYTkZibWRzYVhOb0xDQnZjSFJ6S1NCN1hHNGdJQ0FnZEdocGN5NXZjSFJ6SUQwZ2V5QnpkSGxzWlRvZ1hDSnNiMjVuWENJc0lDNHVMbTl3ZEhNZ2ZUdGNiaUFnSUNCcFppQW9JV2x6Ulc1bmJHbHphQ0FtSmlCb1lYTlNaV3hoZEdsMlpTZ3BLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSjBaaUE5SUdkbGRFTmhZMmhsWkZKVVJpaHBiblJzTENCdmNIUnpLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JtYjNKdFlYUW9ZMjkxYm5Rc0lIVnVhWFFwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV5ZEdZcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkowWmk1bWIzSnRZWFFvWTI5MWJuUXNJSFZ1YVhRcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSVzVuYkdsemFDNW1iM0p0WVhSU1pXeGhkR2wyWlZScGJXVW9kVzVwZEN3Z1kyOTFiblFzSUhSb2FYTXViM0IwY3k1dWRXMWxjbWxqTENCMGFHbHpMbTl3ZEhNdWMzUjViR1VnSVQwOUlGd2liRzl1WjF3aUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQm1iM0p0WVhSVWIxQmhjblJ6S0dOdmRXNTBMQ0IxYm1sMEtTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWNuUm1LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eWRHWXVabTl5YldGMFZHOVFZWEowY3loamIzVnVkQ3dnZFc1cGRDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJiWFR0Y2JpQWdJQ0I5WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb3ZYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJR05zWVhOeklFeHZZMkZzWlNCN1hHNGdJSE4wWVhScFl5Qm1jbTl0VDNCMGN5aHZjSFJ6S1NCN1hHNGdJQ0FnY21WMGRYSnVJRXh2WTJGc1pTNWpjbVZoZEdVb2IzQjBjeTVzYjJOaGJHVXNJRzl3ZEhNdWJuVnRZbVZ5YVc1blUzbHpkR1Z0TENCdmNIUnpMbTkxZEhCMWRFTmhiR1Z1WkdGeUxDQnZjSFJ6TG1SbFptRjFiSFJVYjBWT0tUdGNiaUFnZlZ4dVhHNGdJSE4wWVhScFl5QmpjbVZoZEdVb2JHOWpZV3hsTENCdWRXMWlaWEpwYm1kVGVYTjBaVzBzSUc5MWRIQjFkRU5oYkdWdVpHRnlMQ0JrWldaaGRXeDBWRzlGVGlBOUlHWmhiSE5sS1NCN1hHNGdJQ0FnWTI5dWMzUWdjM0JsWTJsbWFXVmtURzlqWVd4bElEMGdiRzlqWVd4bElIeDhJRk5sZEhScGJtZHpMbVJsWm1GMWJIUk1iMk5oYkdVN1hHNGdJQ0FnTHk4Z2RHaGxJSE41YzNSbGJTQnNiMk5oYkdVZ2FYTWdkWE5sWm5Wc0lHWnZjaUJvZFcxaGJpQnlaV0ZrWVdKc1pTQnpkSEpwYm1keklHSjFkQ0JoYm01dmVXbHVaeUJtYjNJZ2NHRnljMmx1Wnk5bWIzSnRZWFIwYVc1bklHdHViM2R1SUdadmNtMWhkSE5jYmlBZ0lDQmpiMjV6ZENCc2IyTmhiR1ZTSUQwZ2MzQmxZMmxtYVdWa1RHOWpZV3hsSUh4OElDaGtaV1poZFd4MFZHOUZUaUEvSUZ3aVpXNHRWVk5jSWlBNklITjVjM1JsYlV4dlkyRnNaU2dwS1R0Y2JpQWdJQ0JqYjI1emRDQnVkVzFpWlhKcGJtZFRlWE4wWlcxU0lEMGdiblZ0WW1WeWFXNW5VM2x6ZEdWdElIeDhJRk5sZEhScGJtZHpMbVJsWm1GMWJIUk9kVzFpWlhKcGJtZFRlWE4wWlcwN1hHNGdJQ0FnWTI5dWMzUWdiM1YwY0hWMFEyRnNaVzVrWVhKU0lEMGdiM1YwY0hWMFEyRnNaVzVrWVhJZ2ZId2dVMlYwZEdsdVozTXVaR1ZtWVhWc2RFOTFkSEIxZEVOaGJHVnVaR0Z5TzF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnVEc5allXeGxLR3h2WTJGc1pWSXNJRzUxYldKbGNtbHVaMU41YzNSbGJWSXNJRzkxZEhCMWRFTmhiR1Z1WkdGeVVpd2djM0JsWTJsbWFXVmtURzlqWVd4bEtUdGNiaUFnZlZ4dVhHNGdJSE4wWVhScFl5QnlaWE5sZEVOaFkyaGxLQ2tnZTF4dUlDQWdJSE41YzB4dlkyRnNaVU5oWTJobElEMGdiblZzYkR0Y2JpQWdJQ0JwYm5Sc1JGUkRZV05vWlNBOUlIdDlPMXh1SUNBZ0lHbHVkR3hPZFcxRFlXTm9aU0E5SUh0OU8xeHVJQ0FnSUdsdWRHeFNaV3hEWVdOb1pTQTlJSHQ5TzF4dUlDQjlYRzVjYmlBZ2MzUmhkR2xqSUdaeWIyMVBZbXBsWTNRb2V5QnNiMk5oYkdVc0lHNTFiV0psY21sdVoxTjVjM1JsYlN3Z2IzVjBjSFYwUTJGc1pXNWtZWElnZlNBOUlIdDlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFeHZZMkZzWlM1amNtVmhkR1VvYkc5allXeGxMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNJRzkxZEhCMWRFTmhiR1Z1WkdGeUtUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0d4dlkyRnNaU3dnYm5WdFltVnlhVzVuTENCdmRYUndkWFJEWVd4bGJtUmhjaXdnYzNCbFkybG1hV1ZrVEc5allXeGxLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czQmhjbk5sWkV4dlkyRnNaU3dnY0dGeWMyVmtUblZ0WW1WeWFXNW5VM2x6ZEdWdExDQndZWEp6WldSUGRYUndkWFJEWVd4bGJtUmhjbDBnUFNCd1lYSnpaVXh2WTJGc1pWTjBjbWx1Wnloc2IyTmhiR1VwTzF4dVhHNGdJQ0FnZEdocGN5NXNiMk5oYkdVZ1BTQndZWEp6WldSTWIyTmhiR1U3WEc0Z0lDQWdkR2hwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBnUFNCdWRXMWlaWEpwYm1jZ2ZId2djR0Z5YzJWa1RuVnRZbVZ5YVc1blUzbHpkR1Z0SUh4OElHNTFiR3c3WEc0Z0lDQWdkR2hwY3k1dmRYUndkWFJEWVd4bGJtUmhjaUE5SUc5MWRIQjFkRU5oYkdWdVpHRnlJSHg4SUhCaGNuTmxaRTkxZEhCMWRFTmhiR1Z1WkdGeUlIeDhJRzUxYkd3N1hHNGdJQ0FnZEdocGN5NXBiblJzSUQwZ2FXNTBiRU52Ym1acFoxTjBjbWx1WnloMGFHbHpMbXh2WTJGc1pTd2dkR2hwY3k1dWRXMWlaWEpwYm1kVGVYTjBaVzBzSUhSb2FYTXViM1YwY0hWMFEyRnNaVzVrWVhJcE8xeHVYRzRnSUNBZ2RHaHBjeTUzWldWclpHRjVjME5oWTJobElEMGdleUJtYjNKdFlYUTZJSHQ5TENCemRHRnVaR0ZzYjI1bE9pQjdmU0I5TzF4dUlDQWdJSFJvYVhNdWJXOXVkR2h6UTJGamFHVWdQU0I3SUdadmNtMWhkRG9nZTMwc0lITjBZVzVrWVd4dmJtVTZJSHQ5SUgwN1hHNGdJQ0FnZEdocGN5NXRaWEpwWkdsbGJVTmhZMmhsSUQwZ2JuVnNiRHRjYmlBZ0lDQjBhR2x6TG1WeVlVTmhZMmhsSUQwZ2UzMDdYRzVjYmlBZ0lDQjBhR2x6TG5Od1pXTnBabWxsWkV4dlkyRnNaU0E5SUhOd1pXTnBabWxsWkV4dlkyRnNaVHRjYmlBZ0lDQjBhR2x6TG1aaGMzUk9kVzFpWlhKelEyRmphR1ZrSUQwZ2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUdkbGRDQm1ZWE4wVG5WdFltVnljeWdwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVtWVhOMFRuVnRZbVZ5YzBOaFkyaGxaQ0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtWmhjM1JPZFcxaVpYSnpRMkZqYUdWa0lEMGdjM1Z3Y0c5eWRITkdZWE4wVG5WdFltVnljeWgwYUdsektUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW1ZWE4wVG5WdFltVnljME5oWTJobFpEdGNiaUFnZlZ4dVhHNGdJR3hwYzNScGJtZE5iMlJsS0NrZ2UxeHVJQ0FnSUdOdmJuTjBJR2x6UVdOMGRXRnNiSGxGYmlBOUlIUm9hWE11YVhORmJtZHNhWE5vS0NrN1hHNGdJQ0FnWTI5dWMzUWdhR0Z6VG05WFpXbHlaRzVsYzNNZ1BWeHVJQ0FnSUNBZ0tIUm9hWE11Ym5WdFltVnlhVzVuVTNsemRHVnRJRDA5UFNCdWRXeHNJSHg4SUhSb2FYTXViblZ0WW1WeWFXNW5VM2x6ZEdWdElEMDlQU0JjSW14aGRHNWNJaWtnSmlaY2JpQWdJQ0FnSUNoMGFHbHpMbTkxZEhCMWRFTmhiR1Z1WkdGeUlEMDlQU0J1ZFd4c0lIeDhJSFJvYVhNdWIzVjBjSFYwUTJGc1pXNWtZWElnUFQwOUlGd2laM0psWjI5eWVWd2lLVHRjYmlBZ0lDQnlaWFIxY200Z2FYTkJZM1IxWVd4c2VVVnVJQ1ltSUdoaGMwNXZWMlZwY21SdVpYTnpJRDhnWENKbGJsd2lJRG9nWENKcGJuUnNYQ0k3WEc0Z0lIMWNibHh1SUNCamJHOXVaU2hoYkhSektTQjdYRzRnSUNBZ2FXWWdLQ0ZoYkhSeklIeDhJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVU1aGJXVnpLR0ZzZEhNcExteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQk1iMk5oYkdVdVkzSmxZWFJsS0Z4dUlDQWdJQ0FnSUNCaGJIUnpMbXh2WTJGc1pTQjhmQ0IwYUdsekxuTndaV05wWm1sbFpFeHZZMkZzWlN4Y2JpQWdJQ0FnSUNBZ1lXeDBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdmSHdnZEdocGN5NXVkVzFpWlhKcGJtZFRlWE4wWlcwc1hHNGdJQ0FnSUNBZ0lHRnNkSE11YjNWMGNIVjBRMkZzWlc1a1lYSWdmSHdnZEdocGN5NXZkWFJ3ZFhSRFlXeGxibVJoY2l4Y2JpQWdJQ0FnSUNBZ1lXeDBjeTVrWldaaGRXeDBWRzlGVGlCOGZDQm1ZV3h6WlZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCeVpXUmxabUYxYkhSVWIwVk9LR0ZzZEhNZ1BTQjdmU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1Oc2IyNWxLSHNnTGk0dVlXeDBjeXdnWkdWbVlYVnNkRlJ2UlU0NklIUnlkV1VnZlNrN1hHNGdJSDFjYmx4dUlDQnlaV1JsWm1GMWJIUlViMU41YzNSbGJTaGhiSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYkc5dVpTaDdJQzR1TG1Gc2RITXNJR1JsWm1GMWJIUlViMFZPT2lCbVlXeHpaU0I5S1R0Y2JpQWdmVnh1WEc0Z0lHMXZiblJvY3loc1pXNW5kR2dzSUdadmNtMWhkQ0E5SUdaaGJITmxMQ0JrWldaaGRXeDBUMHNnUFNCMGNuVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHeHBjM1JUZEhWbVppaDBhR2x6TENCc1pXNW5kR2dzSUdSbFptRjFiSFJQU3l3Z1JXNW5iR2x6YUM1dGIyNTBhSE1zSUNncElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHbHVkR3dnUFNCbWIzSnRZWFFnUHlCN0lHMXZiblJvT2lCc1pXNW5kR2dzSUdSaGVUb2dYQ0p1ZFcxbGNtbGpYQ0lnZlNBNklIc2diVzl1ZEdnNklHeGxibWQwYUNCOUxGeHVJQ0FnSUNBZ0lDQm1iM0p0WVhSVGRISWdQU0JtYjNKdFlYUWdQeUJjSW1admNtMWhkRndpSURvZ1hDSnpkR0Z1WkdGc2IyNWxYQ0k3WEc0Z0lDQWdJQ0JwWmlBb0lYUm9hWE11Ylc5dWRHaHpRMkZqYUdWYlptOXliV0YwVTNSeVhWdHNaVzVuZEdoZEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJXOXVkR2h6UTJGamFHVmJabTl5YldGMFUzUnlYVnRzWlc1bmRHaGRJRDBnYldGd1RXOXVkR2h6S0Noa2RDa2dQVDRnZEdocGN5NWxlSFJ5WVdOMEtHUjBMQ0JwYm5Sc0xDQmNJbTF2Ym5Sb1hDSXBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG0xdmJuUm9jME5oWTJobFcyWnZjbTFoZEZOMGNsMWJiR1Z1WjNSb1hUdGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJSGRsWld0a1lYbHpLR3hsYm1kMGFDd2dabTl5YldGMElEMGdabUZzYzJVc0lHUmxabUYxYkhSUFN5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnYkdsemRGTjBkV1ptS0hSb2FYTXNJR3hsYm1kMGFDd2daR1ZtWVhWc2RFOUxMQ0JGYm1kc2FYTm9MbmRsWld0a1lYbHpMQ0FvS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcGJuUnNJRDBnWm05eWJXRjBYRzRnSUNBZ0lDQWdJQ0FnUHlCN0lIZGxaV3RrWVhrNklHeGxibWQwYUN3Z2VXVmhjam9nWENKdWRXMWxjbWxqWENJc0lHMXZiblJvT2lCY0lteHZibWRjSWl3Z1pHRjVPaUJjSW01MWJXVnlhV05jSWlCOVhHNGdJQ0FnSUNBZ0lDQWdPaUI3SUhkbFpXdGtZWGs2SUd4bGJtZDBhQ0I5TEZ4dUlDQWdJQ0FnSUNCbWIzSnRZWFJUZEhJZ1BTQm1iM0p0WVhRZ1B5QmNJbVp2Y20xaGRGd2lJRG9nWENKemRHRnVaR0ZzYjI1bFhDSTdYRzRnSUNBZ0lDQnBaaUFvSVhSb2FYTXVkMlZsYTJSaGVYTkRZV05vWlZ0bWIzSnRZWFJUZEhKZFcyeGxibWQwYUYwcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1M1pXVnJaR0Y1YzBOaFkyaGxXMlp2Y20xaGRGTjBjbDFiYkdWdVozUm9YU0E5SUcxaGNGZGxaV3RrWVhsektDaGtkQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WNGRISmhZM1FvWkhRc0lHbHVkR3dzSUZ3aWQyVmxhMlJoZVZ3aUtWeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZDJWbGEyUmhlWE5EWVdOb1pWdG1iM0p0WVhSVGRISmRXMnhsYm1kMGFGMDdYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0J0WlhKcFpHbGxiWE1vWkdWbVlYVnNkRTlMSUQwZ2RISjFaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnNhWE4wVTNSMVptWW9YRzRnSUNBZ0lDQjBhR2x6TEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnWkdWbVlYVnNkRTlMTEZ4dUlDQWdJQ0FnS0NrZ1BUNGdSVzVuYkdsemFDNXRaWEpwWkdsbGJYTXNYRzRnSUNBZ0lDQW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDOHZJRWx1SUhSb1pXOXllU0IwYUdWeVpTQmpiM1ZzWkNCaVpTQmhjbWxpYVhSeVlYSjVJR1JoZVNCd1pYSnBiMlJ6TGlCWFpTZHlaU0JuYjI1dVlTQmhjM04xYldVZ2RHaGxjbVVnWVhKbElHVjRZV04wYkhrZ2RIZHZYRzRnSUNBZ0lDQWdJQzh2SUdadmNpQkJUU0JoYm1RZ1VFMHVJRlJvYVhNZ2FYTWdjSEp2WW1GaWJIa2dkM0p2Ym1jc0lHSjFkQ0JwZENkeklHMWhhMlZ6SUhCaGNuTnBibWNnZDJGNUlHVmhjMmxsY2k1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtMWxjbWxrYVdWdFEyRmphR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGJuUnNJRDBnZXlCb2IzVnlPaUJjSW01MWJXVnlhV05jSWl3Z2FHOTFja041WTJ4bE9pQmNJbWd4TWx3aUlIMDdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXRaWEpwWkdsbGJVTmhZMmhsSUQwZ1cwUmhkR1ZVYVcxbExuVjBZeWd5TURFMkxDQXhNU3dnTVRNc0lEa3BMQ0JFWVhSbFZHbHRaUzUxZEdNb01qQXhOaXdnTVRFc0lERXpMQ0F4T1NsZExtMWhjQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaGtkQ2tnUFQ0Z2RHaHBjeTVsZUhSeVlXTjBLR1IwTENCcGJuUnNMQ0JjSW1SaGVYQmxjbWx2WkZ3aUtWeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV0WlhKcFpHbGxiVU5oWTJobE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmxjbUZ6S0d4bGJtZDBhQ3dnWkdWbVlYVnNkRTlMSUQwZ2RISjFaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnNhWE4wVTNSMVptWW9kR2hwY3l3Z2JHVnVaM1JvTENCa1pXWmhkV3gwVDBzc0lFVnVaMnhwYzJndVpYSmhjeXdnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FXNTBiQ0E5SUhzZ1pYSmhPaUJzWlc1bmRHZ2dmVHRjYmx4dUlDQWdJQ0FnTHk4Z1ZHaHBjeUJwY3lCd2NtOWliR1Z0WVhScFl5NGdSR2xtWm1WeVpXNTBJR05oYkdWdVpHRnljeUJoY21VZ1oyOXBibWNnZEc4Z1pHVm1hVzVsSUdWeVlYTWdkRzkwWVd4c2VTQmthV1ptWlhKbGJuUnNlUzRnVjJoaGRDQkpJRzVsWldRZ2FYTWdkR2hsSUcxcGJtbHRkVzBnYzJWMElHOW1JR1JoZEdWelhHNGdJQ0FnSUNBdkx5QjBieUJrWldacGJtbDBaV3g1SUdWdWRXMWxjbUYwWlNCMGFHVnRMbHh1SUNBZ0lDQWdhV1lnS0NGMGFHbHpMbVZ5WVVOaFkyaGxXMnhsYm1kMGFGMHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWxjbUZEWVdOb1pWdHNaVzVuZEdoZElEMGdXMFJoZEdWVWFXMWxMblYwWXlndE5EQXNJREVzSURFcExDQkVZWFJsVkdsdFpTNTFkR01vTWpBeE55d2dNU3dnTVNsZExtMWhjQ2dvWkhRcElEMCtYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWxlSFJ5WVdOMEtHUjBMQ0JwYm5Sc0xDQmNJbVZ5WVZ3aUtWeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bGNtRkRZV05vWlZ0c1pXNW5kR2hkTzF4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ1pYaDBjbUZqZENoa2RDd2dhVzUwYkU5d2RITXNJR1pwWld4a0tTQjdYRzRnSUNBZ1kyOXVjM1FnWkdZZ1BTQjBhR2x6TG1SMFJtOXliV0YwZEdWeUtHUjBMQ0JwYm5Sc1QzQjBjeWtzWEc0Z0lDQWdJQ0J5WlhOMWJIUnpJRDBnWkdZdVptOXliV0YwVkc5UVlYSjBjeWdwTEZ4dUlDQWdJQ0FnYldGMFkyaHBibWNnUFNCeVpYTjFiSFJ6TG1acGJtUW9LRzBwSUQwK0lHMHVkSGx3WlM1MGIweHZkMlZ5UTJGelpTZ3BJRDA5UFNCbWFXVnNaQ2s3WEc0Z0lDQWdjbVYwZFhKdUlHMWhkR05vYVc1bklEOGdiV0YwWTJocGJtY3VkbUZzZFdVZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ2JuVnRZbVZ5Um05eWJXRjBkR1Z5S0c5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUM4dklIUm9hWE1nWm05eVkyVnphVzF3YkdVZ2IzQjBhVzl1SUdseklHNWxkbVZ5SUhWelpXUWdLSFJvWlNCdmJteDVJR05oYkd4bGNpQnphRzl5ZEMxamFYSmpkV2wwY3lCdmJpQnBkQ3dnWW5WMElHbDBJSE5sWlcxeklITmhabVZ5SUhSdklHeGxZWFpsS1Z4dUlDQWdJQzh2SUNocGJpQmpiMjUwY21GemRDd2dkR2hsSUhKbGMzUWdiMllnZEdobElHTnZibVJwZEdsdmJpQnBjeUIxYzJWa0lHaGxZWFpwYkhrcFhHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUWIyeDVUblZ0WW1WeVJtOXliV0YwZEdWeUtIUm9hWE11YVc1MGJDd2diM0IwY3k1bWIzSmpaVk5wYlhCc1pTQjhmQ0IwYUdsekxtWmhjM1JPZFcxaVpYSnpMQ0J2Y0hSektUdGNiaUFnZlZ4dVhHNGdJR1IwUm05eWJXRjBkR1Z5S0dSMExDQnBiblJzVDNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUWIyeDVSR0YwWlVadmNtMWhkSFJsY2loa2RDd2dkR2hwY3k1cGJuUnNMQ0JwYm5Sc1QzQjBjeWs3WEc0Z0lIMWNibHh1SUNCeVpXeEdiM0p0WVhSMFpYSW9iM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJRYjJ4NVVtVnNSbTl5YldGMGRHVnlLSFJvYVhNdWFXNTBiQ3dnZEdocGN5NXBjMFZ1WjJ4cGMyZ29LU3dnYjNCMGN5azdYRzRnSUgxY2JseHVJQ0JzYVhOMFJtOXliV0YwZEdWeUtHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCblpYUkRZV05vWldSTVJpaDBhR2x6TG1sdWRHd3NJRzl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdhWE5GYm1kc2FYTm9LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQjBhR2x6TG14dlkyRnNaU0E5UFQwZ1hDSmxibHdpSUh4OFhHNGdJQ0FnSUNCMGFHbHpMbXh2WTJGc1pTNTBiMHh2ZDJWeVEyRnpaU2dwSUQwOVBTQmNJbVZ1TFhWelhDSWdmSHhjYmlBZ0lDQWdJRzVsZHlCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMEtIUm9hWE11YVc1MGJDa3VjbVZ6YjJ4MlpXUlBjSFJwYjI1ektDa3ViRzlqWVd4bExuTjBZWEowYzFkcGRHZ29YQ0psYmkxMWMxd2lLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JsY1hWaGJITW9iM1JvWlhJcElIdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnZEdocGN5NXNiMk5oYkdVZ1BUMDlJRzkwYUdWeUxteHZZMkZzWlNBbUpseHVJQ0FnSUNBZ2RHaHBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdQVDA5SUc5MGFHVnlMbTUxYldKbGNtbHVaMU41YzNSbGJTQW1KbHh1SUNBZ0lDQWdkR2hwY3k1dmRYUndkWFJEWVd4bGJtUmhjaUE5UFQwZ2IzUm9aWEl1YjNWMGNIVjBRMkZzWlc1a1lYSmNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNGlMQ0FpYVcxd2IzSjBJSHRjYmlBZ2RXNTBjblZ1WTJGMFpWbGxZWElzWEc0Z0lITnBaMjVsWkU5bVpuTmxkQ3hjYmlBZ2NHRnljMlZKYm5SbFoyVnlMRnh1SUNCd1lYSnpaVTFwYkd4cGN5eGNiaUFnYVdGdVlWSmxaMlY0TEZ4dUlDQnBjMVZ1WkdWbWFXNWxaQ3hjYmlBZ2NHRnljMlZHYkc5aGRHbHVaMXh1ZlNCbWNtOXRJRndpTGk5MWRHbHNMbXB6WENJN1hHNXBiWEJ2Y25RZ0tpQmhjeUJGYm1kc2FYTm9JR1p5YjIwZ1hDSXVMMlZ1WjJ4cGMyZ3Vhbk5jSWp0Y2JtbHRjRzl5ZENCR2FYaGxaRTltWm5ObGRGcHZibVVnWm5KdmJTQmNJaTR1TDNwdmJtVnpMMlpwZUdWa1QyWm1jMlYwV205dVpTNXFjMXdpTzF4dWFXMXdiM0owSUVsQlRrRmFiMjVsSUdaeWIyMGdYQ0l1TGk5NmIyNWxjeTlKUVU1QldtOXVaUzVxYzF3aU8xeHVYRzR2S2x4dUlDb2dWR2hwY3lCbWFXeGxJR2hoYm1Sc1pYTWdjR0Z5YzJsdVp5Qm1iM0lnZDJWc2JDMXpjR1ZqYVdacFpXUWdabTl5YldGMGN5NGdTR1Z5WlNkeklHaHZkeUJwZENCM2IzSnJjenBjYmlBcUlGUjNieUIwYUdsdVozTWdaMjhnYVc1MGJ5QndZWEp6YVc1bk9pQmhJSEpsWjJWNElIUnZJRzFoZEdOb0lIZHBkR2dnWVc1a0lHRnVJR1Y0ZEhKaFkzUnZjaUIwYnlCMFlXdGxJR0Z3WVhKMElIUm9aU0JuY205MWNITWdhVzRnZEdobElHMWhkR05vTGx4dUlDb2dRVzRnWlhoMGNtRmpkRzl5SUdseklHcDFjM1FnWVNCbWRXNWpkR2x2YmlCMGFHRjBJSFJoYTJWeklHRWdjbVZuWlhnZ2JXRjBZMmdnWVhKeVlYa2dZVzVrSUhKbGRIVnlibk1nWVNCN0lIbGxZWEk2SUM0dUxpd2diVzl1ZEdnNklDNHVMaUI5SUc5aWFtVmpkRnh1SUNvZ2NHRnljMlVvS1NCa2IyVnpJSFJvWlNCM2IzSnJJRzltSUdWNFpXTjFkR2x1WnlCMGFHVWdjbVZuWlhnZ1lXNWtJR0Z3Y0d4NWFXNW5JSFJvWlNCbGVIUnlZV04wYjNJdUlFbDBJSFJoYTJWeklHMTFiSFJwY0d4bElISmxaMlY0TDJWNGRISmhZM1J2Y2lCd1lXbHljeUIwYnlCMGNua2dhVzRnYzJWeGRXVnVZMlV1WEc0Z0tpQkZlSFJ5WVdOMGIzSnpJR05oYmlCMFlXdGxJR0VnWENKamRYSnpiM0pjSWlCeVpYQnlaWE5sYm5ScGJtY2dkR2hsSUc5bVpuTmxkQ0JwYmlCMGFHVWdiV0YwWTJnZ2RHOGdiRzl2YXlCaGRDNGdWR2hwY3lCdFlXdGxjeUJwZENCbFlYTjVJSFJ2SUdOdmJXSnBibVVnWlhoMGNtRmpkRzl5Y3k1Y2JpQXFJR052YldKcGJtVkZlSFJ5WVdOMGIzSnpLQ2tnWkc5bGN5QjBhR1VnZDI5eWF5QnZaaUJqYjIxaWFXNXBibWNnZEdobGJTd2dhMlZsY0dsdVp5QjBjbUZqYXlCdlppQjBhR1VnWTNWeWMyOXlJSFJvY205MVoyZ2diWFZzZEdsd2JHVWdaWGgwY21GamRHbHZibk11WEc0Z0tpQlRiMjFsSUdWNGRISmhZM1JwYjI1eklHRnlaU0J6ZFhCbGNpQmtkVzFpSUdGdVpDQnphVzF3YkdWUVlYSnpaU0JoYm1RZ1puSnZiVk4wY21sdVozTWdhR1ZzY0NCRVVsa2dkR2hsYlM1Y2JpQXFMMXh1WEc1bWRXNWpkR2x2YmlCamIyMWlhVzVsVW1WblpYaGxjeWd1TGk1eVpXZGxlR1Z6S1NCN1hHNGdJR052Ym5OMElHWjFiR3dnUFNCeVpXZGxlR1Z6TG5KbFpIVmpaU2dvWml3Z2Npa2dQVDRnWmlBcklISXVjMjkxY21ObExDQmNJbHdpS1R0Y2JpQWdjbVYwZFhKdUlGSmxaMFY0Y0NoZ1hpUjdablZzYkgwa1lDazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHTnZiV0pwYm1WRmVIUnlZV04wYjNKektDNHVMbVY0ZEhKaFkzUnZjbk1wSUh0Y2JpQWdjbVYwZFhKdUlHMGdQVDVjYmlBZ0lDQmxlSFJ5WVdOMGIzSnpYRzRnSUNBZ0lDQXVjbVZrZFdObEtGeHVJQ0FnSUNBZ0lDQW9XMjFsY21kbFpGWmhiSE1zSUcxbGNtZGxaRnB2Ym1Vc0lHTjFjbk52Y2wwc0lHVjRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1czWmhiQ3dnZW05dVpTd2dibVY0ZEYwZ1BTQmxlQ2h0TENCamRYSnpiM0lwTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCYmV5QXVMaTV0WlhKblpXUldZV3h6TENBdUxpNTJZV3dnZlN3Z2VtOXVaU0I4ZkNCdFpYSm5aV1JhYjI1bExDQnVaWGgwWFR0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdXM3Q5TENCdWRXeHNMQ0F4WFZ4dUlDQWdJQ0FnS1Z4dUlDQWdJQ0FnTG5Oc2FXTmxLREFzSURJcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCd1lYSnpaU2h6TENBdUxpNXdZWFIwWlhKdWN5a2dlMXh1SUNCcFppQW9jeUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdjbVYwZFhKdUlGdHVkV3hzTENCdWRXeHNYVHRjYmlBZ2ZWeHVYRzRnSUdadmNpQW9ZMjl1YzNRZ1czSmxaMlY0TENCbGVIUnlZV04wYjNKZElHOW1JSEJoZEhSbGNtNXpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2JTQTlJSEpsWjJWNExtVjRaV01vY3lrN1hHNGdJQ0FnYVdZZ0tHMHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmxlSFJ5WVdOMGIzSW9iU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQmJiblZzYkN3Z2JuVnNiRjA3WEc1OVhHNWNibVoxYm1OMGFXOXVJSE5wYlhCc1pWQmhjbk5sS0M0dUxtdGxlWE1wSUh0Y2JpQWdjbVYwZFhKdUlDaHRZWFJqYUN3Z1kzVnljMjl5S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnY21WMElEMGdlMzA3WEc0Z0lDQWdiR1YwSUdrN1hHNWNiaUFnSUNCbWIzSWdLR2tnUFNBd095QnBJRHdnYTJWNWN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnY21WMFcydGxlWE5iYVYxZElEMGdjR0Z5YzJWSmJuUmxaMlZ5S0cxaGRHTm9XMk4xY25OdmNpQXJJR2xkS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlGdHlaWFFzSUc1MWJHd3NJR04xY25OdmNpQXJJR2xkTzF4dUlDQjlPMXh1ZlZ4dVhHNHZMeUJKVTA4Z1lXNWtJRk5SVENCd1lYSnphVzVuWEc1amIyNXpkQ0J2Wm1aelpYUlNaV2RsZUNBOUlDOG9Qem9vV2lsOEtGc3JMVjFjWEdSY1hHUXBLRDg2T2o4b1hGeGtYRnhrS1NrL0tTODdYRzVqYjI1emRDQnBjMjlGZUhSbGJtUmxaRnB2Ym1VZ1BTQmdLRDg2Skh0dlptWnpaWFJTWldkbGVDNXpiM1Z5WTJWOVB5Zy9PbHhjWEZ4YktDUjdhV0Z1WVZKbFoyVjRMbk52ZFhKalpYMHBYRnhjWEYwcFB5ay9ZRHRjYm1OdmJuTjBJR2x6YjFScGJXVkNZWE5sVW1WblpYZ2dQU0F2S0Z4Y1pGeGNaQ2tvUHpvNlB5aGNYR1JjWEdRcEtEODZPajhvWEZ4a1hGeGtLU2cvT2xzdUxGMG9YRnhrZXpFc016QjlLU2svS1Q4cFB5ODdYRzVqYjI1emRDQnBjMjlVYVcxbFVtVm5aWGdnUFNCU1pXZEZlSEFvWUNSN2FYTnZWR2x0WlVKaGMyVlNaV2RsZUM1emIzVnlZMlY5Skh0cGMyOUZlSFJsYm1SbFpGcHZibVY5WUNrN1hHNWpiMjV6ZENCcGMyOVVhVzFsUlhoMFpXNXphVzl1VW1WblpYZ2dQU0JTWldkRmVIQW9ZQ2cvT2xRa2UybHpiMVJwYldWU1pXZGxlQzV6YjNWeVkyVjlLVDlnS1R0Y2JtTnZibk4wSUdsemIxbHRaRkpsWjJWNElEMGdMeWhiS3kxZFhGeGtlelo5ZkZ4Y1pIczBmU2tvUHpvdFB5aGNYR1JjWEdRcEtEODZMVDhvWEZ4a1hGeGtLU2svS1Q4dk8xeHVZMjl1YzNRZ2FYTnZWMlZsYTFKbFoyVjRJRDBnTHloY1hHUjdOSDBwTFQ5WEtGeGNaRnhjWkNrb1B6b3RQeWhjWEdRcEtUOHZPMXh1WTI5dWMzUWdhWE52VDNKa2FXNWhiRkpsWjJWNElEMGdMeWhjWEdSN05IMHBMVDhvWEZ4a2V6TjlLUzg3WEc1amIyNXpkQ0JsZUhSeVlXTjBTVk5QVjJWbGEwUmhkR0VnUFNCemFXMXdiR1ZRWVhKelpTaGNJbmRsWld0WlpXRnlYQ0lzSUZ3aWQyVmxhMDUxYldKbGNsd2lMQ0JjSW5kbFpXdEVZWGxjSWlrN1hHNWpiMjV6ZENCbGVIUnlZV04wU1ZOUFQzSmthVzVoYkVSaGRHRWdQU0J6YVcxd2JHVlFZWEp6WlNoY0lubGxZWEpjSWl3Z1hDSnZjbVJwYm1Gc1hDSXBPMXh1WTI5dWMzUWdjM0ZzV1cxa1VtVm5aWGdnUFNBdktGeGNaSHMwZlNrdEtGeGNaRnhjWkNrdEtGeGNaRnhjWkNrdk95QXZMeUJrZFcxaVpXUXRaRzkzYmlCMlpYSnphVzl1SUc5bUlIUm9aU0JKVTA4Z2IyNWxYRzVqYjI1emRDQnpjV3hVYVcxbFVtVm5aWGdnUFNCU1pXZEZlSEFvWEc0Z0lHQWtlMmx6YjFScGJXVkNZWE5sVW1WblpYZ3VjMjkxY21ObGZTQS9LRDg2Skh0dlptWnpaWFJTWldkbGVDNXpiM1Z5WTJWOWZDZ2tlMmxoYm1GU1pXZGxlQzV6YjNWeVkyVjlLU2svWUZ4dUtUdGNibU52Ym5OMElITnhiRlJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ0E5SUZKbFowVjRjQ2hnS0Q4NklDUjdjM0ZzVkdsdFpWSmxaMlY0TG5OdmRYSmpaWDBwUDJBcE8xeHVYRzVtZFc1amRHbHZiaUJwYm5Rb2JXRjBZMmdzSUhCdmN5d2dabUZzYkdKaFkyc3BJSHRjYmlBZ1kyOXVjM1FnYlNBOUlHMWhkR05vVzNCdmMxMDdYRzRnSUhKbGRIVnliaUJwYzFWdVpHVm1hVzVsWkNodEtTQS9JR1poYkd4aVlXTnJJRG9nY0dGeWMyVkpiblJsWjJWeUtHMHBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmxlSFJ5WVdOMFNWTlBXVzFrS0cxaGRHTm9MQ0JqZFhKemIzSXBJSHRjYmlBZ1kyOXVjM1FnYVhSbGJTQTlJSHRjYmlBZ0lDQjVaV0Z5T2lCcGJuUW9iV0YwWTJnc0lHTjFjbk52Y2lrc1hHNGdJQ0FnYlc5dWRHZzZJR2x1ZENodFlYUmphQ3dnWTNWeWMyOXlJQ3NnTVN3Z01Ta3NYRzRnSUNBZ1pHRjVPaUJwYm5Rb2JXRjBZMmdzSUdOMWNuTnZjaUFySURJc0lERXBYRzRnSUgwN1hHNWNiaUFnY21WMGRYSnVJRnRwZEdWdExDQnVkV3hzTENCamRYSnpiM0lnS3lBelhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pYaDBjbUZqZEVsVFQxUnBiV1VvYldGMFkyZ3NJR04xY25OdmNpa2dlMXh1SUNCamIyNXpkQ0JwZEdWdElEMGdlMXh1SUNBZ0lHaHZkWEp6T2lCcGJuUW9iV0YwWTJnc0lHTjFjbk52Y2l3Z01Da3NYRzRnSUNBZ2JXbHVkWFJsY3pvZ2FXNTBLRzFoZEdOb0xDQmpkWEp6YjNJZ0t5QXhMQ0F3S1N4Y2JpQWdJQ0J6WldOdmJtUnpPaUJwYm5Rb2JXRjBZMmdzSUdOMWNuTnZjaUFySURJc0lEQXBMRnh1SUNBZ0lHMXBiR3hwYzJWamIyNWtjem9nY0dGeWMyVk5hV3hzYVhNb2JXRjBZMmhiWTNWeWMyOXlJQ3NnTTEwcFhHNGdJSDA3WEc1Y2JpQWdjbVYwZFhKdUlGdHBkR1Z0TENCdWRXeHNMQ0JqZFhKemIzSWdLeUEwWFR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWlhoMGNtRmpkRWxUVDA5bVpuTmxkQ2h0WVhSamFDd2dZM1Z5YzI5eUtTQjdYRzRnSUdOdmJuTjBJR3h2WTJGc0lEMGdJVzFoZEdOb1cyTjFjbk52Y2wwZ0ppWWdJVzFoZEdOb1cyTjFjbk52Y2lBcklERmRMRnh1SUNBZ0lHWjFiR3hQWm1aelpYUWdQU0J6YVdkdVpXUlBabVp6WlhRb2JXRjBZMmhiWTNWeWMyOXlJQ3NnTVYwc0lHMWhkR05vVzJOMWNuTnZjaUFySURKZEtTeGNiaUFnSUNCNmIyNWxJRDBnYkc5allXd2dQeUJ1ZFd4c0lEb2dSbWw0WldSUFptWnpaWFJhYjI1bExtbHVjM1JoYm1ObEtHWjFiR3hQWm1aelpYUXBPMXh1SUNCeVpYUjFjbTRnVzN0OUxDQjZiMjVsTENCamRYSnpiM0lnS3lBelhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pYaDBjbUZqZEVsQlRrRmFiMjVsS0cxaGRHTm9MQ0JqZFhKemIzSXBJSHRjYmlBZ1kyOXVjM1FnZW05dVpTQTlJRzFoZEdOb1cyTjFjbk52Y2wwZ1B5QkpRVTVCV205dVpTNWpjbVZoZEdVb2JXRjBZMmhiWTNWeWMyOXlYU2tnT2lCdWRXeHNPMXh1SUNCeVpYUjFjbTRnVzN0OUxDQjZiMjVsTENCamRYSnpiM0lnS3lBeFhUdGNibjFjYmx4dUx5OGdTVk5QSUhScGJXVWdjR0Z5YzJsdVoxeHVYRzVqYjI1emRDQnBjMjlVYVcxbFQyNXNlU0E5SUZKbFowVjRjQ2hnWGxRL0pIdHBjMjlVYVcxbFFtRnpaVkpsWjJWNExuTnZkWEpqWlgwa1lDazdYRzVjYmk4dklFbFRUeUJrZFhKaGRHbHZiaUJ3WVhKemFXNW5YRzVjYm1OdmJuTjBJR2x6YjBSMWNtRjBhVzl1SUQwZ0wxNHRQMUFvUHpvb1B6b29MVDljWEdSN01Td3lNSDBvUHpwY1hDNWNYR1I3TVN3eU1IMHBQeWxaS1Q4b1B6b29MVDljWEdSN01Td3lNSDBvUHpwY1hDNWNYR1I3TVN3eU1IMHBQeWxOS1Q4b1B6b29MVDljWEdSN01Td3lNSDBvUHpwY1hDNWNYR1I3TVN3eU1IMHBQeWxYS1Q4b1B6b29MVDljWEdSN01Td3lNSDBvUHpwY1hDNWNYR1I3TVN3eU1IMHBQeWxFS1Q4b1B6cFVLRDg2S0MwL1hGeGtlekVzTWpCOUtEODZYRnd1WEZ4a2V6RXNNakI5S1Q4cFNDay9LRDg2S0MwL1hGeGtlekVzTWpCOUtEODZYRnd1WEZ4a2V6RXNNakI5S1Q4cFRTay9LRDg2S0MwL1hGeGtlekVzTWpCOUtTZy9PbHN1TEYwb0xUOWNYR1I3TVN3eU1IMHBLVDlUS1Q4cFB5a2tMenRjYmx4dVpuVnVZM1JwYjI0Z1pYaDBjbUZqZEVsVFQwUjFjbUYwYVc5dUtHMWhkR05vS1NCN1hHNGdJR052Ym5OMElGdGNiaUFnSUNCekxGeHVJQ0FnSUhsbFlYSlRkSElzWEc0Z0lDQWdiVzl1ZEdoVGRISXNYRzRnSUNBZ2QyVmxhMU4wY2l4Y2JpQWdJQ0JrWVhsVGRISXNYRzRnSUNBZ2FHOTFjbE4wY2l4Y2JpQWdJQ0J0YVc1MWRHVlRkSElzWEc0Z0lDQWdjMlZqYjI1a1UzUnlMRnh1SUNBZ0lHMXBiR3hwYzJWamIyNWtjMU4wY2x4dUlDQmRJRDBnYldGMFkyZzdYRzVjYmlBZ1kyOXVjM1FnYUdGelRtVm5ZWFJwZG1WUWNtVm1hWGdnUFNCeld6QmRJRDA5UFNCY0lpMWNJanRjYmlBZ1kyOXVjM1FnYm1WbllYUnBkbVZUWldOdmJtUnpJRDBnYzJWamIyNWtVM1J5SUNZbUlITmxZMjl1WkZOMGNsc3dYU0E5UFQwZ1hDSXRYQ0k3WEc1Y2JpQWdZMjl1YzNRZ2JXRjVZbVZPWldkaGRHVWdQU0FvYm5WdExDQm1iM0pqWlNBOUlHWmhiSE5sS1NBOVBseHVJQ0FnSUc1MWJTQWhQVDBnZFc1a1pXWnBibVZrSUNZbUlDaG1iM0pqWlNCOGZDQW9iblZ0SUNZbUlHaGhjMDVsWjJGMGFYWmxVSEpsWm1sNEtTa2dQeUF0Ym5WdElEb2diblZ0TzF4dVhHNGdJSEpsZEhWeWJpQmJYRzRnSUNBZ2UxeHVJQ0FnSUNBZ2VXVmhjbk02SUcxaGVXSmxUbVZuWVhSbEtIQmhjbk5sUm14dllYUnBibWNvZVdWaGNsTjBjaWtwTEZ4dUlDQWdJQ0FnYlc5dWRHaHpPaUJ0WVhsaVpVNWxaMkYwWlNod1lYSnpaVVpzYjJGMGFXNW5LRzF2Ym5Sb1UzUnlLU2tzWEc0Z0lDQWdJQ0IzWldWcmN6b2diV0Y1WW1WT1pXZGhkR1VvY0dGeWMyVkdiRzloZEdsdVp5aDNaV1ZyVTNSeUtTa3NYRzRnSUNBZ0lDQmtZWGx6T2lCdFlYbGlaVTVsWjJGMFpTaHdZWEp6WlVac2IyRjBhVzVuS0dSaGVWTjBjaWtwTEZ4dUlDQWdJQ0FnYUc5MWNuTTZJRzFoZVdKbFRtVm5ZWFJsS0hCaGNuTmxSbXh2WVhScGJtY29hRzkxY2xOMGNpa3BMRnh1SUNBZ0lDQWdiV2x1ZFhSbGN6b2diV0Y1WW1WT1pXZGhkR1VvY0dGeWMyVkdiRzloZEdsdVp5aHRhVzUxZEdWVGRISXBLU3hjYmlBZ0lDQWdJSE5sWTI5dVpITTZJRzFoZVdKbFRtVm5ZWFJsS0hCaGNuTmxSbXh2WVhScGJtY29jMlZqYjI1a1UzUnlLU3dnYzJWamIyNWtVM1J5SUQwOVBTQmNJaTB3WENJcExGeHVJQ0FnSUNBZ2JXbHNiR2x6WldOdmJtUnpPaUJ0WVhsaVpVNWxaMkYwWlNod1lYSnpaVTFwYkd4cGN5aHRhV3hzYVhObFkyOXVaSE5UZEhJcExDQnVaV2RoZEdsMlpWTmxZMjl1WkhNcFhHNGdJQ0FnZlZ4dUlDQmRPMXh1ZlZ4dVhHNHZMeUJVYUdWelpTQmhjbVVnWVNCc2FYUjBiR1VnWW5KaGFXNWtaV0ZrTGlCRlJGUWdLbk5vYjNWc1pDb2dkR1ZzYkNCMWN5QjBhR0YwSUhkbEozSmxJR2x1TENCellYa3NJRUZ0WlhKcFkyRXZUbVYzWDFsdmNtdGNiaTh2SUdGdVpDQnViM1FnYW5WemRDQjBhR0YwSUhkbEozSmxJR2x1SUMweU5EQWdLbkpwWjJoMElHNXZkeW91SUVKMWRDQnphVzVqWlNCSklHUnZiaWQwSUhSb2FXNXJJSFJvWlhObElHRnlaU0IxYzJWa0lIUm9ZWFFnYjJaMFpXNWNiaTh2SUVrbmJTQnFkWE4wSUdkdmFXNW5JSFJ2SUdsbmJtOXlaU0IwYUdGMFhHNWpiMjV6ZENCdlluTlBabVp6WlhSeklEMGdlMXh1SUNCSFRWUTZJREFzWEc0Z0lFVkVWRG9nTFRRZ0tpQTJNQ3hjYmlBZ1JWTlVPaUF0TlNBcUlEWXdMRnh1SUNCRFJGUTZJQzAxSUNvZ05qQXNYRzRnSUVOVFZEb2dMVFlnS2lBMk1DeGNiaUFnVFVSVU9pQXROaUFxSURZd0xGeHVJQ0JOVTFRNklDMDNJQ29nTmpBc1hHNGdJRkJFVkRvZ0xUY2dLaUEyTUN4Y2JpQWdVRk5VT2lBdE9DQXFJRFl3WEc1OU8xeHVYRzVtZFc1amRHbHZiaUJtY205dFUzUnlhVzVuY3loM1pXVnJaR0Y1VTNSeUxDQjVaV0Z5VTNSeUxDQnRiMjUwYUZOMGNpd2daR0Y1VTNSeUxDQm9iM1Z5VTNSeUxDQnRhVzUxZEdWVGRISXNJSE5sWTI5dVpGTjBjaWtnZTF4dUlDQmpiMjV6ZENCeVpYTjFiSFFnUFNCN1hHNGdJQ0FnZVdWaGNqb2dlV1ZoY2xOMGNpNXNaVzVuZEdnZ1BUMDlJRElnUHlCMWJuUnlkVzVqWVhSbFdXVmhjaWh3WVhKelpVbHVkR1ZuWlhJb2VXVmhjbE4wY2lrcElEb2djR0Z5YzJWSmJuUmxaMlZ5S0hsbFlYSlRkSElwTEZ4dUlDQWdJRzF2Ym5Sb09pQkZibWRzYVhOb0xtMXZiblJvYzFOb2IzSjBMbWx1WkdWNFQyWW9iVzl1ZEdoVGRISXBJQ3NnTVN4Y2JpQWdJQ0JrWVhrNklIQmhjbk5sU1c1MFpXZGxjaWhrWVhsVGRISXBMRnh1SUNBZ0lHaHZkWEk2SUhCaGNuTmxTVzUwWldkbGNpaG9iM1Z5VTNSeUtTeGNiaUFnSUNCdGFXNTFkR1U2SUhCaGNuTmxTVzUwWldkbGNpaHRhVzUxZEdWVGRISXBYRzRnSUgwN1hHNWNiaUFnYVdZZ0tITmxZMjl1WkZOMGNpa2djbVZ6ZFd4MExuTmxZMjl1WkNBOUlIQmhjbk5sU1c1MFpXZGxjaWh6WldOdmJtUlRkSElwTzF4dUlDQnBaaUFvZDJWbGEyUmhlVk4wY2lrZ2UxeHVJQ0FnSUhKbGMzVnNkQzUzWldWclpHRjVJRDFjYmlBZ0lDQWdJSGRsWld0a1lYbFRkSEl1YkdWdVozUm9JRDRnTTF4dUlDQWdJQ0FnSUNBL0lFVnVaMnhwYzJndWQyVmxhMlJoZVhOTWIyNW5MbWx1WkdWNFQyWW9kMlZsYTJSaGVWTjBjaWtnS3lBeFhHNGdJQ0FnSUNBZ0lEb2dSVzVuYkdsemFDNTNaV1ZyWkdGNWMxTm9iM0owTG1sdVpHVjRUMllvZDJWbGEyUmhlVk4wY2lrZ0t5QXhPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSEpsYzNWc2REdGNibjFjYmx4dUx5OGdVa1pESURJNE1qSXZOVE15TWx4dVkyOXVjM1FnY21aak1qZ3lNaUE5SUM5ZUtEODZLRTF2Ym54VWRXVjhWMlZrZkZSb2RYeEdjbWw4VTJGMGZGTjFiaWtzWEZ4ektUOG9YRnhrZXpFc01uMHBYRnh6S0VwaGJueEdaV0o4VFdGeWZFRndjbnhOWVhsOFNuVnVmRXAxYkh4QmRXZDhVMlZ3ZkU5amRIeE9iM1o4UkdWaktWeGNjeWhjWEdSN01pdzBmU2xjWEhNb1hGeGtYRnhrS1Rvb1hGeGtYRnhrS1NnL09qb29YRnhrWEZ4a0tTay9YRnh6S0Q4NktGVlVmRWROVkh4YlJVTk5VRjFiVTBSZFZDbDhLRnRhZWwwcGZDZy9PaWhiS3kxZFhGeGtYRnhrS1NoY1hHUmNYR1FwS1Nra0x6dGNibHh1Wm5WdVkzUnBiMjRnWlhoMGNtRmpkRkpHUXpJNE1qSW9iV0YwWTJncElIdGNiaUFnWTI5dWMzUWdXMXh1SUNBZ0lDQWdMRnh1SUNBZ0lDQWdkMlZsYTJSaGVWTjBjaXhjYmlBZ0lDQWdJR1JoZVZOMGNpeGNiaUFnSUNBZ0lHMXZiblJvVTNSeUxGeHVJQ0FnSUNBZ2VXVmhjbE4wY2l4Y2JpQWdJQ0FnSUdodmRYSlRkSElzWEc0Z0lDQWdJQ0J0YVc1MWRHVlRkSElzWEc0Z0lDQWdJQ0J6WldOdmJtUlRkSElzWEc0Z0lDQWdJQ0J2WW5OUFptWnpaWFFzWEc0Z0lDQWdJQ0J0YVd4UFptWnpaWFFzWEc0Z0lDQWdJQ0J2Wm1aSWIzVnlVM1J5TEZ4dUlDQWdJQ0FnYjJabVRXbHVkWFJsVTNSeVhHNGdJQ0FnWFNBOUlHMWhkR05vTEZ4dUlDQWdJSEpsYzNWc2RDQTlJR1p5YjIxVGRISnBibWR6S0hkbFpXdGtZWGxUZEhJc0lIbGxZWEpUZEhJc0lHMXZiblJvVTNSeUxDQmtZWGxUZEhJc0lHaHZkWEpUZEhJc0lHMXBiblYwWlZOMGNpd2djMlZqYjI1a1UzUnlLVHRjYmx4dUlDQnNaWFFnYjJabWMyVjBPMXh1SUNCcFppQW9iMkp6VDJabWMyVjBLU0I3WEc0Z0lDQWdiMlptYzJWMElEMGdiMkp6VDJabWMyVjBjMXR2WW5OUFptWnpaWFJkTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLRzFwYkU5bVpuTmxkQ2tnZTF4dUlDQWdJRzltWm5ObGRDQTlJREE3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYjJabWMyVjBJRDBnYzJsbmJtVmtUMlptYzJWMEtHOW1aa2h2ZFhKVGRISXNJRzltWmsxcGJuVjBaVk4wY2lrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z1czSmxjM1ZzZEN3Z2JtVjNJRVpwZUdWa1QyWm1jMlYwV205dVpTaHZabVp6WlhRcFhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2NISmxjSEp2WTJWemMxSkdRekk0TWpJb2N5a2dlMXh1SUNBdkx5QlNaVzF2ZG1VZ1kyOXRiV1Z1ZEhNZ1lXNWtJR1p2YkdScGJtY2dkMmhwZEdWemNHRmpaU0JoYm1RZ2NtVndiR0ZqWlNCdGRXeDBhWEJzWlMxemNHRmpaWE1nZDJsMGFDQmhJSE5wYm1kc1pTQnpjR0ZqWlZ4dUlDQnlaWFIxY200Z2MxeHVJQ0FnSUM1eVpYQnNZV05sS0M5Y1hDaGJYaWdwWFNwY1hDbDhXMXhjYmx4Y2RGMHZaeXdnWENJZ1hDSXBYRzRnSUNBZ0xuSmxjR3hoWTJVb0x5aGNYSE5jWEhNcktTOW5MQ0JjSWlCY0lpbGNiaUFnSUNBdWRISnBiU2dwTzF4dWZWeHVYRzR2THlCb2RIUndJR1JoZEdWY2JseHVZMjl1YzNRZ2NtWmpNVEV5TXlBOUlDOWVLRTF2Ym54VWRXVjhWMlZrZkZSb2RYeEdjbWw4VTJGMGZGTjFiaWtzSUNoY1hHUmNYR1FwSUNoS1lXNThSbVZpZkUxaGNueEJjSEo4VFdGNWZFcDFibnhLZFd4OFFYVm5mRk5sY0h4UFkzUjhUbTkyZkVSbFl5a2dLRnhjWkhzMGZTa2dLRnhjWkZ4Y1pDazZLRnhjWkZ4Y1pDazZLRnhjWkZ4Y1pDa2dSMDFVSkM4c1hHNGdJSEptWXpnMU1DQTlJQzllS0UxdmJtUmhlWHhVZFdWelpHRjVmRmRsWkc1bGMyUmhlWHhVYUhWeWMyUmhlWHhHY21sa1lYbDhVMkYwZFhKa1lYbDhVM1Z1WkdGNUtTd2dLRnhjWkZ4Y1pDa3RLRXBoYm54R1pXSjhUV0Z5ZkVGd2NueE5ZWGw4U25WdWZFcDFiSHhCZFdkOFUyVndmRTlqZEh4T2IzWjhSR1ZqS1Mwb1hGeGtYRnhrS1NBb1hGeGtYRnhrS1Rvb1hGeGtYRnhrS1Rvb1hGeGtYRnhrS1NCSFRWUWtMeXhjYmlBZ1lYTmphV2tnUFNBdlhpaE5iMjU4VkhWbGZGZGxaSHhVYUhWOFJuSnBmRk5oZEh4VGRXNHBJQ2hLWVc1OFJtVmlmRTFoY254QmNISjhUV0Y1ZkVwMWJueEtkV3g4UVhWbmZGTmxjSHhQWTNSOFRtOTJmRVJsWXlrZ0tDQmNYR1I4WEZ4a1hGeGtLU0FvWEZ4a1hGeGtLVG9vWEZ4a1hGeGtLVG9vWEZ4a1hGeGtLU0FvWEZ4a2V6UjlLU1F2TzF4dVhHNW1kVzVqZEdsdmJpQmxlSFJ5WVdOMFVrWkRNVEV5TTA5eU9EVXdLRzFoZEdOb0tTQjdYRzRnSUdOdmJuTjBJRnNzSUhkbFpXdGtZWGxUZEhJc0lHUmhlVk4wY2l3Z2JXOXVkR2hUZEhJc0lIbGxZWEpUZEhJc0lHaHZkWEpUZEhJc0lHMXBiblYwWlZOMGNpd2djMlZqYjI1a1UzUnlYU0E5SUcxaGRHTm9MRnh1SUNBZ0lISmxjM1ZzZENBOUlHWnliMjFUZEhKcGJtZHpLSGRsWld0a1lYbFRkSElzSUhsbFlYSlRkSElzSUcxdmJuUm9VM1J5TENCa1lYbFRkSElzSUdodmRYSlRkSElzSUcxcGJuVjBaVk4wY2l3Z2MyVmpiMjVrVTNSeUtUdGNiaUFnY21WMGRYSnVJRnR5WlhOMWJIUXNJRVpwZUdWa1QyWm1jMlYwV205dVpTNTFkR05KYm5OMFlXNWpaVjA3WEc1OVhHNWNibVoxYm1OMGFXOXVJR1Y0ZEhKaFkzUkJVME5KU1NodFlYUmphQ2tnZTF4dUlDQmpiMjV6ZENCYkxDQjNaV1ZyWkdGNVUzUnlMQ0J0YjI1MGFGTjBjaXdnWkdGNVUzUnlMQ0JvYjNWeVUzUnlMQ0J0YVc1MWRHVlRkSElzSUhObFkyOXVaRk4wY2l3Z2VXVmhjbE4wY2wwZ1BTQnRZWFJqYUN4Y2JpQWdJQ0J5WlhOMWJIUWdQU0JtY205dFUzUnlhVzVuY3loM1pXVnJaR0Y1VTNSeUxDQjVaV0Z5VTNSeUxDQnRiMjUwYUZOMGNpd2daR0Y1VTNSeUxDQm9iM1Z5VTNSeUxDQnRhVzUxZEdWVGRISXNJSE5sWTI5dVpGTjBjaWs3WEc0Z0lISmxkSFZ5YmlCYmNtVnpkV3gwTENCR2FYaGxaRTltWm5ObGRGcHZibVV1ZFhSalNXNXpkR0Z1WTJWZE8xeHVmVnh1WEc1amIyNXpkQ0JwYzI5WmJXUlhhWFJvVkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0SUQwZ1kyOXRZbWx1WlZKbFoyVjRaWE1vYVhOdldXMWtVbVZuWlhnc0lHbHpiMVJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ2s3WEc1amIyNXpkQ0JwYzI5WFpXVnJWMmwwYUZScGJXVkZlSFJsYm5OcGIyNVNaV2RsZUNBOUlHTnZiV0pwYm1WU1pXZGxlR1Z6S0dsemIxZGxaV3RTWldkbGVDd2dhWE52VkdsdFpVVjRkR1Z1YzJsdmJsSmxaMlY0S1R0Y2JtTnZibk4wSUdsemIwOXlaR2x1WVd4WGFYUm9WR2x0WlVWNGRHVnVjMmx2YmxKbFoyVjRJRDBnWTI5dFltbHVaVkpsWjJWNFpYTW9hWE52VDNKa2FXNWhiRkpsWjJWNExDQnBjMjlVYVcxbFJYaDBaVzV6YVc5dVVtVm5aWGdwTzF4dVkyOXVjM1FnYVhOdlZHbHRaVU52YldKcGJtVmtVbVZuWlhnZ1BTQmpiMjFpYVc1bFVtVm5aWGhsY3locGMyOVVhVzFsVW1WblpYZ3BPMXh1WEc1amIyNXpkQ0JsZUhSeVlXTjBTVk5QV1cxa1ZHbHRaVUZ1WkU5bVpuTmxkQ0E5SUdOdmJXSnBibVZGZUhSeVlXTjBiM0p6S0Z4dUlDQmxlSFJ5WVdOMFNWTlBXVzFrTEZ4dUlDQmxlSFJ5WVdOMFNWTlBWR2x0WlN4Y2JpQWdaWGgwY21GamRFbFRUMDltWm5ObGRDeGNiaUFnWlhoMGNtRmpkRWxCVGtGYWIyNWxYRzRwTzF4dVkyOXVjM1FnWlhoMGNtRmpkRWxUVDFkbFpXdFVhVzFsUVc1a1QyWm1jMlYwSUQwZ1kyOXRZbWx1WlVWNGRISmhZM1J2Y25Nb1hHNGdJR1Y0ZEhKaFkzUkpVMDlYWldWclJHRjBZU3hjYmlBZ1pYaDBjbUZqZEVsVFQxUnBiV1VzWEc0Z0lHVjRkSEpoWTNSSlUwOVBabVp6WlhRc1hHNGdJR1Y0ZEhKaFkzUkpRVTVCV205dVpWeHVLVHRjYm1OdmJuTjBJR1Y0ZEhKaFkzUkpVMDlQY21ScGJtRnNSR0YwWlVGdVpGUnBiV1VnUFNCamIyMWlhVzVsUlhoMGNtRmpkRzl5Y3loY2JpQWdaWGgwY21GamRFbFRUMDl5WkdsdVlXeEVZWFJoTEZ4dUlDQmxlSFJ5WVdOMFNWTlBWR2x0WlN4Y2JpQWdaWGgwY21GamRFbFRUMDltWm5ObGRDeGNiaUFnWlhoMGNtRmpkRWxCVGtGYWIyNWxYRzRwTzF4dVkyOXVjM1FnWlhoMGNtRmpkRWxUVDFScGJXVkJibVJQWm1aelpYUWdQU0JqYjIxaWFXNWxSWGgwY21GamRHOXljeWhjYmlBZ1pYaDBjbUZqZEVsVFQxUnBiV1VzWEc0Z0lHVjRkSEpoWTNSSlUwOVBabVp6WlhRc1hHNGdJR1Y0ZEhKaFkzUkpRVTVCV205dVpWeHVLVHRjYmx4dUx5cGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpOWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJoY25ObFNWTlBSR0YwWlNoektTQjdYRzRnSUhKbGRIVnliaUJ3WVhKelpTaGNiaUFnSUNCekxGeHVJQ0FnSUZ0cGMyOVpiV1JYYVhSb1ZHbHRaVVY0ZEdWdWMybHZibEpsWjJWNExDQmxlSFJ5WVdOMFNWTlBXVzFrVkdsdFpVRnVaRTltWm5ObGRGMHNYRzRnSUNBZ1cybHpiMWRsWld0WGFYUm9WR2x0WlVWNGRHVnVjMmx2YmxKbFoyVjRMQ0JsZUhSeVlXTjBTVk5QVjJWbGExUnBiV1ZCYm1SUFptWnpaWFJkTEZ4dUlDQWdJRnRwYzI5UGNtUnBibUZzVjJsMGFGUnBiV1ZGZUhSbGJuTnBiMjVTWldkbGVDd2daWGgwY21GamRFbFRUMDl5WkdsdVlXeEVZWFJsUVc1a1ZHbHRaVjBzWEc0Z0lDQWdXMmx6YjFScGJXVkRiMjFpYVc1bFpGSmxaMlY0TENCbGVIUnlZV04wU1ZOUFZHbHRaVUZ1WkU5bVpuTmxkRjFjYmlBZ0tUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCaGNuTmxVa1pETWpneU1rUmhkR1VvY3lrZ2UxeHVJQ0J5WlhSMWNtNGdjR0Z5YzJVb2NISmxjSEp2WTJWemMxSkdRekk0TWpJb2N5a3NJRnR5Wm1NeU9ESXlMQ0JsZUhSeVlXTjBVa1pETWpneU1sMHBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHRnljMlZJVkZSUVJHRjBaU2h6S1NCN1hHNGdJSEpsZEhWeWJpQndZWEp6WlNoY2JpQWdJQ0J6TEZ4dUlDQWdJRnR5Wm1NeE1USXpMQ0JsZUhSeVlXTjBVa1pETVRFeU0wOXlPRFV3WFN4Y2JpQWdJQ0JiY21aak9EVXdMQ0JsZUhSeVlXTjBVa1pETVRFeU0wOXlPRFV3WFN4Y2JpQWdJQ0JiWVhOamFXa3NJR1Y0ZEhKaFkzUkJVME5KU1YxY2JpQWdLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sU1ZOUFJIVnlZWFJwYjI0b2N5a2dlMXh1SUNCeVpYUjFjbTRnY0dGeWMyVW9jeXdnVzJsemIwUjFjbUYwYVc5dUxDQmxlSFJ5WVdOMFNWTlBSSFZ5WVhScGIyNWRLVHRjYm4xY2JseHVZMjl1YzNRZ1pYaDBjbUZqZEVsVFQxUnBiV1ZQYm14NUlEMGdZMjl0WW1sdVpVVjRkSEpoWTNSdmNuTW9aWGgwY21GamRFbFRUMVJwYldVcE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjR0Z5YzJWSlUwOVVhVzFsVDI1c2VTaHpLU0I3WEc0Z0lISmxkSFZ5YmlCd1lYSnpaU2h6TENCYmFYTnZWR2x0WlU5dWJIa3NJR1Y0ZEhKaFkzUkpVMDlVYVcxbFQyNXNlVjBwTzF4dWZWeHVYRzVqYjI1emRDQnpjV3haYldSWGFYUm9WR2x0WlVWNGRHVnVjMmx2YmxKbFoyVjRJRDBnWTI5dFltbHVaVkpsWjJWNFpYTW9jM0ZzV1cxa1VtVm5aWGdzSUhOeGJGUnBiV1ZGZUhSbGJuTnBiMjVTWldkbGVDazdYRzVqYjI1emRDQnpjV3hVYVcxbFEyOXRZbWx1WldSU1pXZGxlQ0E5SUdOdmJXSnBibVZTWldkbGVHVnpLSE54YkZScGJXVlNaV2RsZUNrN1hHNWNibU52Ym5OMElHVjRkSEpoWTNSSlUwOVVhVzFsVDJabWMyVjBRVzVrU1VGT1FWcHZibVVnUFNCamIyMWlhVzVsUlhoMGNtRmpkRzl5Y3loY2JpQWdaWGgwY21GamRFbFRUMVJwYldVc1hHNGdJR1Y0ZEhKaFkzUkpVMDlQWm1aelpYUXNYRzRnSUdWNGRISmhZM1JKUVU1QldtOXVaVnh1S1R0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhjbk5sVTFGTUtITXBJSHRjYmlBZ2NtVjBkWEp1SUhCaGNuTmxLRnh1SUNBZ0lITXNYRzRnSUNBZ1czTnhiRmx0WkZkcGRHaFVhVzFsUlhoMFpXNXphVzl1VW1WblpYZ3NJR1Y0ZEhKaFkzUkpVMDlaYldSVWFXMWxRVzVrVDJabWMyVjBYU3hjYmlBZ0lDQmJjM0ZzVkdsdFpVTnZiV0pwYm1Wa1VtVm5aWGdzSUdWNGRISmhZM1JKVTA5VWFXMWxUMlptYzJWMFFXNWtTVUZPUVZwdmJtVmRYRzRnSUNrN1hHNTlYRzRpTENBaWFXMXdiM0owSUhzZ1NXNTJZV3hwWkVGeVozVnRaVzUwUlhKeWIzSXNJRWx1ZG1Gc2FXUkVkWEpoZEdsdmJrVnljbTl5TENCSmJuWmhiR2xrVlc1cGRFVnljbTl5SUgwZ1puSnZiU0JjSWk0dlpYSnliM0p6TG1welhDSTdYRzVwYlhCdmNuUWdSbTl5YldGMGRHVnlJR1p5YjIwZ1hDSXVMMmx0Y0d3dlptOXliV0YwZEdWeUxtcHpYQ0k3WEc1cGJYQnZjblFnU1c1MllXeHBaQ0JtY205dElGd2lMaTlwYlhCc0wybHVkbUZzYVdRdWFuTmNJanRjYm1sdGNHOXlkQ0JNYjJOaGJHVWdabkp2YlNCY0lpNHZhVzF3YkM5c2IyTmhiR1V1YW5OY0lqdGNibWx0Y0c5eWRDQjdJSEJoY25ObFNWTlBSSFZ5WVhScGIyNHNJSEJoY25ObFNWTlBWR2x0WlU5dWJIa2dmU0JtY205dElGd2lMaTlwYlhCc0wzSmxaMlY0VUdGeWMyVnlMbXB6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JoYzA1MWJXSmxjaXhjYmlBZ2FHRnpUM2R1VUhKdmNHVnlkSGtzWEc0Z0lHbHpUblZ0WW1WeUxGeHVJQ0JwYzFWdVpHVm1hVzVsWkN4Y2JpQWdibTl5YldGc2FYcGxUMkpxWldOMExGeHVJQ0J5YjNWdVpGUnZMRnh1ZlNCbWNtOXRJRndpTGk5cGJYQnNMM1YwYVd3dWFuTmNJanRjYm1sdGNHOXlkQ0JUWlhSMGFXNW5jeUJtY205dElGd2lMaTl6WlhSMGFXNW5jeTVxYzF3aU8xeHVYRzVqYjI1emRDQkpUbFpCVEVsRUlEMGdYQ0pKYm5aaGJHbGtJRVIxY21GMGFXOXVYQ0k3WEc1Y2JpOHZJSFZ1YVhRZ1kyOXVkbVZ5YzJsdmJpQmpiMjV6ZEdGdWRITmNibVY0Y0c5eWRDQmpiMjV6ZENCc2IzZFBjbVJsY2sxaGRISnBlQ0E5SUh0Y2JpQWdJQ0IzWldWcmN6b2dlMXh1SUNBZ0lDQWdaR0Y1Y3pvZ055eGNiaUFnSUNBZ0lHaHZkWEp6T2lBM0lDb2dNalFzWEc0Z0lDQWdJQ0J0YVc1MWRHVnpPaUEzSUNvZ01qUWdLaUEyTUN4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SURjZ0tpQXlOQ0FxSURZd0lDb2dOakFzWEc0Z0lDQWdJQ0J0YVd4c2FYTmxZMjl1WkhNNklEY2dLaUF5TkNBcUlEWXdJQ29nTmpBZ0tpQXhNREF3TEZ4dUlDQWdJSDBzWEc0Z0lDQWdaR0Y1Y3pvZ2UxeHVJQ0FnSUNBZ2FHOTFjbk02SURJMExGeHVJQ0FnSUNBZ2JXbHVkWFJsY3pvZ01qUWdLaUEyTUN4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SURJMElDb2dOakFnS2lBMk1DeGNiaUFnSUNBZ0lHMXBiR3hwYzJWamIyNWtjem9nTWpRZ0tpQTJNQ0FxSURZd0lDb2dNVEF3TUN4Y2JpQWdJQ0I5TEZ4dUlDQWdJR2h2ZFhKek9pQjdJRzFwYm5WMFpYTTZJRFl3TENCelpXTnZibVJ6T2lBMk1DQXFJRFl3TENCdGFXeHNhWE5sWTI5dVpITTZJRFl3SUNvZ05qQWdLaUF4TURBd0lIMHNYRzRnSUNBZ2JXbHVkWFJsY3pvZ2V5QnpaV052Ym1Sek9pQTJNQ3dnYldsc2JHbHpaV052Ym1Sek9pQTJNQ0FxSURFd01EQWdmU3hjYmlBZ0lDQnpaV052Ym1Sek9pQjdJRzFwYkd4cGMyVmpiMjVrY3pvZ01UQXdNQ0I5TEZ4dUlDQjlMRnh1SUNCallYTjFZV3hOWVhSeWFYZ2dQU0I3WEc0Z0lDQWdlV1ZoY25NNklIdGNiaUFnSUNBZ0lIRjFZWEowWlhKek9pQTBMRnh1SUNBZ0lDQWdiVzl1ZEdoek9pQXhNaXhjYmlBZ0lDQWdJSGRsWld0ek9pQTFNaXhjYmlBZ0lDQWdJR1JoZVhNNklETTJOU3hjYmlBZ0lDQWdJR2h2ZFhKek9pQXpOalVnS2lBeU5DeGNiaUFnSUNBZ0lHMXBiblYwWlhNNklETTJOU0FxSURJMElDb2dOakFzWEc0Z0lDQWdJQ0J6WldOdmJtUnpPaUF6TmpVZ0tpQXlOQ0FxSURZd0lDb2dOakFzWEc0Z0lDQWdJQ0J0YVd4c2FYTmxZMjl1WkhNNklETTJOU0FxSURJMElDb2dOakFnS2lBMk1DQXFJREV3TURBc1hHNGdJQ0FnZlN4Y2JpQWdJQ0J4ZFdGeWRHVnljem9nZTF4dUlDQWdJQ0FnYlc5dWRHaHpPaUF6TEZ4dUlDQWdJQ0FnZDJWbGEzTTZJREV6TEZ4dUlDQWdJQ0FnWkdGNWN6b2dPVEVzWEc0Z0lDQWdJQ0JvYjNWeWN6b2dPVEVnS2lBeU5DeGNiaUFnSUNBZ0lHMXBiblYwWlhNNklEa3hJQ29nTWpRZ0tpQTJNQ3hjYmlBZ0lDQWdJSE5sWTI5dVpITTZJRGt4SUNvZ01qUWdLaUEyTUNBcUlEWXdMRnh1SUNBZ0lDQWdiV2xzYkdselpXTnZibVJ6T2lBNU1TQXFJREkwSUNvZ05qQWdLaUEyTUNBcUlERXdNREFzWEc0Z0lDQWdmU3hjYmlBZ0lDQnRiMjUwYUhNNklIdGNiaUFnSUNBZ0lIZGxaV3R6T2lBMExGeHVJQ0FnSUNBZ1pHRjVjem9nTXpBc1hHNGdJQ0FnSUNCb2IzVnljem9nTXpBZ0tpQXlOQ3hjYmlBZ0lDQWdJRzFwYm5WMFpYTTZJRE13SUNvZ01qUWdLaUEyTUN4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SURNd0lDb2dNalFnS2lBMk1DQXFJRFl3TEZ4dUlDQWdJQ0FnYldsc2JHbHpaV052Ym1Sek9pQXpNQ0FxSURJMElDb2dOakFnS2lBMk1DQXFJREV3TURBc1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUM0dUxteHZkMDl5WkdWeVRXRjBjbWw0TEZ4dUlDQjlMRnh1SUNCa1lYbHpTVzVaWldGeVFXTmpkWEpoZEdVZ1BTQXhORFl3T1RjdU1DQXZJRFF3TUN4Y2JpQWdaR0Y1YzBsdVRXOXVkR2hCWTJOMWNtRjBaU0E5SURFME5qQTVOeTR3SUM4Z05EZ3dNQ3hjYmlBZ1lXTmpkWEpoZEdWTllYUnlhWGdnUFNCN1hHNGdJQ0FnZVdWaGNuTTZJSHRjYmlBZ0lDQWdJSEYxWVhKMFpYSnpPaUEwTEZ4dUlDQWdJQ0FnYlc5dWRHaHpPaUF4TWl4Y2JpQWdJQ0FnSUhkbFpXdHpPaUJrWVhselNXNVpaV0Z5UVdOamRYSmhkR1VnTHlBM0xGeHVJQ0FnSUNBZ1pHRjVjem9nWkdGNWMwbHVXV1ZoY2tGalkzVnlZWFJsTEZ4dUlDQWdJQ0FnYUc5MWNuTTZJR1JoZVhOSmJsbGxZWEpCWTJOMWNtRjBaU0FxSURJMExGeHVJQ0FnSUNBZ2JXbHVkWFJsY3pvZ1pHRjVjMGx1V1dWaGNrRmpZM1Z5WVhSbElDb2dNalFnS2lBMk1DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklHUmhlWE5KYmxsbFlYSkJZMk4xY21GMFpTQXFJREkwSUNvZ05qQWdLaUEyTUN4Y2JpQWdJQ0FnSUcxcGJHeHBjMlZqYjI1a2N6b2daR0Y1YzBsdVdXVmhja0ZqWTNWeVlYUmxJQ29nTWpRZ0tpQTJNQ0FxSURZd0lDb2dNVEF3TUN4Y2JpQWdJQ0I5TEZ4dUlDQWdJSEYxWVhKMFpYSnpPaUI3WEc0Z0lDQWdJQ0J0YjI1MGFITTZJRE1zWEc0Z0lDQWdJQ0IzWldWcmN6b2daR0Y1YzBsdVdXVmhja0ZqWTNWeVlYUmxJQzhnTWpnc1hHNGdJQ0FnSUNCa1lYbHpPaUJrWVhselNXNVpaV0Z5UVdOamRYSmhkR1VnTHlBMExGeHVJQ0FnSUNBZ2FHOTFjbk02SUNoa1lYbHpTVzVaWldGeVFXTmpkWEpoZEdVZ0tpQXlOQ2tnTHlBMExGeHVJQ0FnSUNBZ2JXbHVkWFJsY3pvZ0tHUmhlWE5KYmxsbFlYSkJZMk4xY21GMFpTQXFJREkwSUNvZ05qQXBJQzhnTkN4Y2JpQWdJQ0FnSUhObFkyOXVaSE02SUNoa1lYbHpTVzVaWldGeVFXTmpkWEpoZEdVZ0tpQXlOQ0FxSURZd0lDb2dOakFwSUM4Z05DeGNiaUFnSUNBZ0lHMXBiR3hwYzJWamIyNWtjem9nS0dSaGVYTkpibGxsWVhKQlkyTjFjbUYwWlNBcUlESTBJQ29nTmpBZ0tpQTJNQ0FxSURFd01EQXBJQzhnTkN4Y2JpQWdJQ0I5TEZ4dUlDQWdJRzF2Ym5Sb2N6b2dlMXh1SUNBZ0lDQWdkMlZsYTNNNklHUmhlWE5KYmsxdmJuUm9RV05qZFhKaGRHVWdMeUEzTEZ4dUlDQWdJQ0FnWkdGNWN6b2daR0Y1YzBsdVRXOXVkR2hCWTJOMWNtRjBaU3hjYmlBZ0lDQWdJR2h2ZFhKek9pQmtZWGx6U1c1TmIyNTBhRUZqWTNWeVlYUmxJQ29nTWpRc1hHNGdJQ0FnSUNCdGFXNTFkR1Z6T2lCa1lYbHpTVzVOYjI1MGFFRmpZM1Z5WVhSbElDb2dNalFnS2lBMk1DeGNiaUFnSUNBZ0lITmxZMjl1WkhNNklHUmhlWE5KYmsxdmJuUm9RV05qZFhKaGRHVWdLaUF5TkNBcUlEWXdJQ29nTmpBc1hHNGdJQ0FnSUNCdGFXeHNhWE5sWTI5dVpITTZJR1JoZVhOSmJrMXZiblJvUVdOamRYSmhkR1VnS2lBeU5DQXFJRFl3SUNvZ05qQWdLaUF4TURBd0xGeHVJQ0FnSUgwc1hHNGdJQ0FnTGk0dWJHOTNUM0prWlhKTllYUnlhWGdzWEc0Z0lIMDdYRzVjYmk4dklIVnVhWFJ6SUc5eVpHVnlaV1FnWW5rZ2MybDZaVnh1WTI5dWMzUWdiM0prWlhKbFpGVnVhWFJ6SUQwZ1cxeHVJQ0JjSW5sbFlYSnpYQ0lzWEc0Z0lGd2ljWFZoY25SbGNuTmNJaXhjYmlBZ1hDSnRiMjUwYUhOY0lpeGNiaUFnWENKM1pXVnJjMXdpTEZ4dUlDQmNJbVJoZVhOY0lpeGNiaUFnWENKb2IzVnljMXdpTEZ4dUlDQmNJbTFwYm5WMFpYTmNJaXhjYmlBZ1hDSnpaV052Ym1SelhDSXNYRzRnSUZ3aWJXbHNiR2x6WldOdmJtUnpYQ0lzWEc1ZE8xeHVYRzVqYjI1emRDQnlaWFpsY25ObFZXNXBkSE1nUFNCdmNtUmxjbVZrVlc1cGRITXVjMnhwWTJVb01Da3VjbVYyWlhKelpTZ3BPMXh1WEc0dkx5QmpiRzl1WlNCeVpXRnNiSGtnYldWaGJuTWdYQ0pqY21WaGRHVWdZVzV2ZEdobGNpQnBibk4wWVc1alpTQnFkWE4wSUd4cGEyVWdkR2hwY3lCdmJtVXNJR0oxZENCM2FYUm9JSFJvWlhObElHTm9ZVzVuWlhOY0lseHVablZ1WTNScGIyNGdZMnh2Ym1Vb1pIVnlMQ0JoYkhSekxDQmpiR1ZoY2lBOUlHWmhiSE5sS1NCN1hHNGdJQzh2SUdSbFpYQWdiV1Z5WjJVZ1ptOXlJSFpoYkhOY2JpQWdZMjl1YzNRZ1kyOXVaaUE5SUh0Y2JpQWdJQ0IyWVd4MVpYTTZJR05zWldGeUlEOGdZV3gwY3k1MllXeDFaWE1nT2lCN0lDNHVMbVIxY2k1MllXeDFaWE1zSUM0dUxpaGhiSFJ6TG5aaGJIVmxjeUI4ZkNCN2ZTa2dmU3hjYmlBZ0lDQnNiMk02SUdSMWNpNXNiMk11WTJ4dmJtVW9ZV3gwY3k1c2IyTXBMRnh1SUNBZ0lHTnZiblpsY25OcGIyNUJZMk4xY21GamVUb2dZV3gwY3k1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrZ2ZId2daSFZ5TG1OdmJuWmxjbk5wYjI1QlkyTjFjbUZqZVN4Y2JpQWdmVHRjYmlBZ2NtVjBkWEp1SUc1bGR5QkVkWEpoZEdsdmJpaGpiMjVtS1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWVc1MGFWUnlkVzVqS0c0cElIdGNiaUFnY21WMGRYSnVJRzRnUENBd0lEOGdUV0YwYUM1bWJHOXZjaWh1S1NBNklFMWhkR2d1WTJWcGJDaHVLVHRjYm4xY2JseHVMeThnVGtJNklHMTFkR0YwWlhNZ2NHRnlZVzFsZEdWeWMxeHVablZ1WTNScGIyNGdZMjl1ZG1WeWRDaHRZWFJ5YVhnc0lHWnliMjFOWVhBc0lHWnliMjFWYm1sMExDQjBiMDFoY0N3Z2RHOVZibWwwS1NCN1hHNGdJR052Ym5OMElHTnZibllnUFNCdFlYUnlhWGhiZEc5VmJtbDBYVnRtY205dFZXNXBkRjBzWEc0Z0lDQWdjbUYzSUQwZ1puSnZiVTFoY0Z0bWNtOXRWVzVwZEYwZ0x5QmpiMjUyTEZ4dUlDQWdJSE5oYldWVGFXZHVJRDBnVFdGMGFDNXphV2R1S0hKaGR5a2dQVDA5SUUxaGRHZ3VjMmxuYmloMGIwMWhjRnQwYjFWdWFYUmRLU3hjYmlBZ0lDQXZMeUJ2YXl3Z2MyOGdkR2hwY3lCcGN5QjNhV3hrTENCaWRYUWdjMlZsSUhSb1pTQnRZWFJ5YVhnZ2FXNGdkR2hsSUhSbGMzUnpYRzRnSUNBZ1lXUmtaV1FnUFZ4dUlDQWdJQ0FnSVhOaGJXVlRhV2R1SUNZbUlIUnZUV0Z3VzNSdlZXNXBkRjBnSVQwOUlEQWdKaVlnVFdGMGFDNWhZbk1vY21GM0tTQThQU0F4SUQ4Z1lXNTBhVlJ5ZFc1aktISmhkeWtnT2lCTllYUm9MblJ5ZFc1aktISmhkeWs3WEc0Z0lIUnZUV0Z3VzNSdlZXNXBkRjBnS3owZ1lXUmtaV1E3WEc0Z0lHWnliMjFOWVhCYlpuSnZiVlZ1YVhSZElDMDlJR0ZrWkdWa0lDb2dZMjl1ZGp0Y2JuMWNibHh1THk4Z1RrSTZJRzExZEdGMFpYTWdjR0Z5WVcxbGRHVnljMXh1Wm5WdVkzUnBiMjRnYm05eWJXRnNhWHBsVm1Gc2RXVnpLRzFoZEhKcGVDd2dkbUZzY3lrZ2UxeHVJQ0J5WlhabGNuTmxWVzVwZEhNdWNtVmtkV05sS0Nod2NtVjJhVzkxY3l3Z1kzVnljbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doYVhOVmJtUmxabWx1WldRb2RtRnNjMXRqZFhKeVpXNTBYU2twSUh0Y2JpQWdJQ0FnSUdsbUlDaHdjbVYyYVc5MWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1MlpYSjBLRzFoZEhKcGVDd2dkbUZzY3l3Z2NISmxkbWx2ZFhNc0lIWmhiSE1zSUdOMWNuSmxiblFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR04xY25KbGJuUTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3Y21WMmFXOTFjenRjYmlBZ0lDQjlYRzRnSUgwc0lHNTFiR3dwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUVnUkhWeVlYUnBiMjRnYjJKcVpXTjBJSEpsY0hKbGMyVnVkSE1nWVNCd1pYSnBiMlFnYjJZZ2RHbHRaU3dnYkdsclpTQmNJaklnYlc5dWRHaHpYQ0lnYjNJZ1hDSXhJR1JoZVN3Z01TQm9iM1Z5WENJdUlFTnZibU5sY0hSMVlXeHNlU3dnYVhRbmN5QnFkWE4wSUdFZ2JXRndJRzltSUhWdWFYUnpJSFJ2SUhSb1pXbHlJSEYxWVc1MGFYUnBaWE1zSUdGalkyOXRjR0Z1YVdWa0lHSjVJSE52YldVZ1lXUmthWFJwYjI1aGJDQmpiMjVtYVdkMWNtRjBhVzl1SUdGdVpDQnRaWFJvYjJSeklHWnZjaUJqY21WaGRHbHVaeXdnY0dGeWMybHVaeXdnYVc1MFpYSnliMmRoZEdsdVp5d2dkSEpoYm5ObWIzSnRhVzVuTENCaGJtUWdabTl5YldGMGRHbHVaeUIwYUdWdExpQlVhR1Y1SUdOaGJpQmlaU0IxYzJWa0lHOXVJSFJvWldseUlHOTNiaUJ2Y2lCcGJpQmpiMjVxZFc1amRHbHZiaUIzYVhSb0lHOTBhR1Z5SUV4MWVHOXVJSFI1Y0dWek95Qm1iM0lnWlhoaGJYQnNaU3dnZVc5MUlHTmhiaUIxYzJVZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNCc2RYTjlJSFJ2SUdGa1pDQmhJRVIxY21GMGFXOXVJRzlpYW1WamRDQjBieUJoSUVSaGRHVlVhVzFsTENCd2NtOWtkV05wYm1jZ1lXNXZkR2hsY2lCRVlYUmxWR2x0WlM1Y2JpQXFYRzRnS2lCSVpYSmxJR2x6SUdFZ1luSnBaV1lnYjNabGNuWnBaWGNnYjJZZ1kyOXRiVzl1YkhrZ2RYTmxaQ0J0WlhSb2IyUnpJR0Z1WkNCblpYUjBaWEp6SUdsdUlFUjFjbUYwYVc5dU9seHVJQ3BjYmlBcUlDb2dLaXBEY21WaGRHbHZiaW9xSUZSdklHTnlaV0YwWlNCaElFUjFjbUYwYVc5dUxDQjFjMlVnZTBCc2FXNXJJRVIxY21GMGFXOXVJMlp5YjIxTmFXeHNhWE45TENCN1FHeHBibXNnUkhWeVlYUnBiMjRqWm5KdmJVOWlhbVZqZEgwc0lHOXlJSHRBYkdsdWF5QkVkWEpoZEdsdmJpTm1jbTl0U1ZOUGZTNWNiaUFxSUNvZ0tpcFZibWwwSUhaaGJIVmxjeW9xSUZObFpTQjBhR1VnZTBCc2FXNXJJRVIxY21GMGFXOXVJM2xsWVhKemZTd2dlMEJzYVc1cklFUjFjbUYwYVc5dUkyMXZiblJvYzMwc0lIdEFiR2x1YXlCRWRYSmhkR2x2YmlOM1pXVnJjMzBzSUh0QWJHbHVheUJFZFhKaGRHbHZiaU5rWVhsemZTd2dlMEJzYVc1cklFUjFjbUYwYVc5dUkyaHZkWEp6ZlN3Z2UwQnNhVzVySUVSMWNtRjBhVzl1STIxcGJuVjBaWE45TENCN1FHeHBibXNnUkhWeVlYUnBiMjRqYzJWamIyNWtjMzBzSUh0QWJHbHVheUJFZFhKaGRHbHZiaU50YVd4c2FYTmxZMjl1WkhOOUlHRmpZMlZ6YzI5eWN5NWNiaUFxSUNvZ0tpcERiMjVtYVdkMWNtRjBhVzl1S2lvZ1UyVmxJQ0I3UUd4cGJtc2dSSFZ5WVhScGIyNGpiRzlqWVd4bGZTQmhibVFnZTBCc2FXNXJJRVIxY21GMGFXOXVJMjUxYldKbGNtbHVaMU41YzNSbGJYMGdZV05qWlhOemIzSnpMbHh1SUNvZ0tpQXFLbFJ5WVc1elptOXliV0YwYVc5dUtpb2dWRzhnWTNKbFlYUmxJRzVsZHlCRWRYSmhkR2x2Ym5NZ2IzVjBJRzltSUc5c1pDQnZibVZ6SUhWelpTQjdRR3hwYm1zZ1JIVnlZWFJwYjI0amNHeDFjMzBzSUh0QWJHbHVheUJFZFhKaGRHbHZiaU50YVc1MWMzMHNJSHRBYkdsdWF5QkVkWEpoZEdsdmJpTnViM0p0WVd4cGVtVjlMQ0I3UUd4cGJtc2dSSFZ5WVhScGIyNGpjMlYwZlN3Z2UwQnNhVzVySUVSMWNtRjBhVzl1STNKbFkyOXVabWxuZFhKbGZTd2dlMEJzYVc1cklFUjFjbUYwYVc5dUkzTm9hV1owVkc5OUxDQmhibVFnZTBCc2FXNXJJRVIxY21GMGFXOXVJMjVsWjJGMFpYMHVYRzRnS2lBcUlDb3FUM1YwY0hWMEtpb2dWRzhnWTI5dWRtVnlkQ0IwYUdVZ1JIVnlZWFJwYjI0Z2FXNTBieUJ2ZEdobGNpQnlaWEJ5WlhObGJuUmhkR2x2Ym5Nc0lITmxaU0I3UUd4cGJtc2dSSFZ5WVhScGIyNGpZWE45TENCN1FHeHBibXNnUkhWeVlYUnBiMjRqZEc5SlUwOTlMQ0I3UUd4cGJtc2dSSFZ5WVhScGIyNGpkRzlHYjNKdFlYUjlMQ0JoYm1RZ2UwQnNhVzVySUVSMWNtRjBhVzl1STNSdlNsTlBUbjFjYmlBcVhHNGdLaUJVYUdWeVpTZHpJR0Z5WlNCdGIzSmxJRzFsZEdodlpITWdaRzlqZFcxbGJuUmxaQ0JpWld4dmR5NGdTVzRnWVdSa2FYUnBiMjRzSUdadmNpQnRiM0psSUdsdVptOXliV0YwYVc5dUlHOXVJSE4xWW5Sc1pYSWdkRzl3YVdOeklHeHBhMlVnYVc1MFpYSnVZWFJwYjI1aGJHbDZZWFJwYjI0Z1lXNWtJSFpoYkdsa2FYUjVMQ0J6WldVZ2RHaGxJR1Y0ZEdWeWJtRnNJR1J2WTNWdFpXNTBZWFJwYjI0dVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR05zWVhOeklFUjFjbUYwYVc5dUlIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaGpiMjVtYVdjcElIdGNiaUFnSUNCamIyNXpkQ0JoWTJOMWNtRjBaU0E5SUdOdmJtWnBaeTVqYjI1MlpYSnphVzl1UVdOamRYSmhZM2tnUFQwOUlGd2liRzl1WjNSbGNtMWNJaUI4ZkNCbVlXeHpaVHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMblpoYkhWbGN5QTlJR052Ym1acFp5NTJZV3gxWlhNN1hHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FHRmpZMlZ6Y3lCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1c2IyTWdQU0JqYjI1bWFXY3ViRzlqSUh4OElFeHZZMkZzWlM1amNtVmhkR1VvS1R0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQVlXTmpaWE56SUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1OdmJuWmxjbk5wYjI1QlkyTjFjbUZqZVNBOUlHRmpZM1Z5WVhSbElEOGdYQ0pzYjI1bmRHVnliVndpSURvZ1hDSmpZWE4xWVd4Y0lqdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtbHVkbUZzYVdRZ1BTQmpiMjVtYVdjdWFXNTJZV3hwWkNCOGZDQnVkV3hzTzF4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVCaFkyTmxjM01nY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11YldGMGNtbDRJRDBnWVdOamRYSmhkR1VnUHlCaFkyTjFjbUYwWlUxaGRISnBlQ0E2SUdOaGMzVmhiRTFoZEhKcGVEdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtbHpUSFY0YjI1RWRYSmhkR2x2YmlBOUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUVSMWNtRjBhVzl1SUdaeWIyMGdZU0J1ZFcxaVpYSWdiMllnYldsc2JHbHpaV052Ym1SekxseHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWTI5MWJuUWdiMllnYldsc2JHbHpaV052Ym1SelhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWN5Qm1iM0lnY0dGeWMybHVaMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Ykc5allXeGxQU2RsYmkxVlV5ZGRJQzBnZEdobElHeHZZMkZzWlNCMGJ5QjFjMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11Ym5WdFltVnlhVzVuVTNsemRHVnRJQzBnZEdobElHNTFiV0psY21sdVp5QnplWE4wWlcwZ2RHOGdkWE5sWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrOUoyTmhjM1ZoYkNkZElDMGdkR2hsSUdOdmJuWmxjbk5wYjI0Z2MzbHpkR1Z0SUhSdklIVnpaVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVkWEpoZEdsdmJuMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm1jbTl0VFdsc2JHbHpLR052ZFc1MExDQnZjSFJ6S1NCN1hHNGdJQ0FnY21WMGRYSnVJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCdGFXeHNhWE5sWTI5dVpITTZJR052ZFc1MElIMHNJRzl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJRVIxY21GMGFXOXVJR1p5YjIwZ1lTQktZWFpoVTJOeWFYQjBJRzlpYW1WamRDQjNhWFJvSUd0bGVYTWdiR2xyWlNBbmVXVmhjbk1uSUdGdVpDQW5hRzkxY25NbkxseHVJQ0FnS2lCSlppQjBhR2x6SUc5aWFtVmpkQ0JwY3lCbGJYQjBlU0IwYUdWdUlHRWdlbVZ5YnlCdGFXeHNhWE5sWTI5dVpITWdaSFZ5WVhScGIyNGdhWE1nY21WMGRYSnVaV1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbW9nTFNCMGFHVWdiMkpxWldOMElIUnZJR055WldGMFpTQjBhR1VnUkdGMFpWUnBiV1VnWm5KdmJWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYjJKcUxubGxZWEp6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91Y1hWaGNuUmxjbk5jYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTV0YjI1MGFITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUc5aWFpNTNaV1ZyYzF4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiMkpxTG1SaGVYTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUc5aWFpNW9iM1Z5YzF4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiMkpxTG0xcGJuVjBaWE5jYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTV6WldOdmJtUnpYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3ViV2xzYkdselpXTnZibVJ6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQmJiM0IwY3oxYlhWMGdMU0J2Y0hScGIyNXpJR1p2Y2lCamNtVmhkR2x1WnlCMGFHbHpJRVIxY21GMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVTlKMlZ1TFZWVEoxMGdMU0IwYUdVZ2JHOWpZV3hsSUhSdklIVnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2IzQjBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdMU0IwYUdVZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlNCMGJ5QjFjMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJ6TG1OdmJuWmxjbk5wYjI1QlkyTjFjbUZqZVQwblkyRnpkV0ZzSjEwZ0xTQjBhR1VnWTI5dWRtVnljMmx2YmlCemVYTjBaVzBnZEc4Z2RYTmxYRzRnSUNBcUlFQnlaWFIxY200Z2UwUjFjbUYwYVc5dWZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHWnliMjFQWW1wbFkzUW9iMkpxTENCdmNIUnpJRDBnZTMwcElIdGNiaUFnSUNCcFppQW9iMkpxSUQwOUlHNTFiR3dnZkh3Z2RIbHdaVzltSUc5aWFpQWhQVDBnWENKdlltcGxZM1JjSWlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZERvZ1lYSm5kVzFsYm5RZ1pYaHdaV04wWldRZ2RHOGdZbVVnWVc0Z2IySnFaV04wTENCbmIzUWdKSHRjYmlBZ0lDQWdJQ0FnSUNCdlltb2dQVDA5SUc1MWJHd2dQeUJjSW01MWJHeGNJaUE2SUhSNWNHVnZaaUJ2WW1wY2JpQWdJQ0FnSUNBZ2ZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkVkWEpoZEdsdmJpaDdYRzRnSUNBZ0lDQjJZV3gxWlhNNklHNXZjbTFoYkdsNlpVOWlhbVZqZENodlltb3NJRVIxY21GMGFXOXVMbTV2Y20xaGJHbDZaVlZ1YVhRcExGeHVJQ0FnSUNBZ2JHOWpPaUJNYjJOaGJHVXVabkp2YlU5aWFtVmpkQ2h2Y0hSektTeGNiaUFnSUNBZ0lHTnZiblpsY25OcGIyNUJZMk4xY21GamVUb2diM0IwY3k1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSSFZ5WVhScGIyNGdabkp2YlNCRWRYSmhkR2x2Ymt4cGEyVXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBJSHdnYm5WdFltVnlJSHdnUkhWeVlYUnBiMjU5SUdSMWNtRjBhVzl1VEdsclpWeHVJQ0FnS2lCUGJtVWdiMlk2WEc0Z0lDQXFJQzBnYjJKcVpXTjBJSGRwZEdnZ2EyVjVjeUJzYVd0bElDZDVaV0Z5Y3ljZ1lXNWtJQ2RvYjNWeWN5Y3VYRzRnSUNBcUlDMGdiblZ0WW1WeUlISmxjSEpsYzJWdWRHbHVaeUJ0YVd4c2FYTmxZMjl1WkhOY2JpQWdJQ29nTFNCRWRYSmhkR2x2YmlCcGJuTjBZVzVqWlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJtY205dFJIVnlZWFJwYjI1TWFXdGxLR1IxY21GMGFXOXVUR2xyWlNrZ2UxeHVJQ0FnSUdsbUlDaHBjMDUxYldKbGNpaGtkWEpoZEdsdmJreHBhMlVwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkhWeVlYUnBiMjR1Wm5KdmJVMXBiR3hwY3loa2RYSmhkR2x2Ymt4cGEyVXBPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9SSFZ5WVhScGIyNHVhWE5FZFhKaGRHbHZiaWhrZFhKaGRHbHZia3hwYTJVcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1pIVnlZWFJwYjI1TWFXdGxPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9kSGx3Wlc5bUlHUjFjbUYwYVc5dVRHbHJaU0E5UFQwZ1hDSnZZbXBsWTNSY0lpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9aSFZ5WVhScGIyNU1hV3RsS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1ZXNXJibTkzYmlCa2RYSmhkR2x2YmlCaGNtZDFiV1Z1ZENBa2UyUjFjbUYwYVc5dVRHbHJaWDBnYjJZZ2RIbHdaU0FrZTNSNWNHVnZaaUJrZFhKaGRHbHZia3hwYTJWOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSSFZ5WVhScGIyNGdabkp2YlNCaGJpQkpVMDhnT0RZd01TQmtkWEpoZEdsdmJpQnpkSEpwYm1jdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWlhoMElDMGdkR1Y0ZENCMGJ5QndZWEp6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5NZ1ptOXlJSEJoY25OcGJtZGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnpMbXh2WTJGc1pUMG5aVzR0VlZNblhTQXRJSFJvWlNCc2IyTmhiR1VnZEc4Z2RYTmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnpMbTUxYldKbGNtbHVaMU41YzNSbGJTQXRJSFJvWlNCdWRXMWlaWEpwYm1jZ2MzbHpkR1Z0SUhSdklIVnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11WTI5dWRtVnljMmx2YmtGalkzVnlZV041UFNkallYTjFZV3duWFNBdElIUm9aU0JqYjI1MlpYSnphVzl1SUhONWMzUmxiU0IwYnlCMWMyVmNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5SlUwOWZPRFl3TVNORWRYSmhkR2x2Ym5OY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVbFRUeWduVUROWk5rMHhWelJFVkRFeVNETXdUVFZUSnlrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2VXVmhjbk02SURNc0lHMXZiblJvY3pvZ05pd2dkMlZsYTNNNklERXNJR1JoZVhNNklEUXNJR2h2ZFhKek9pQXhNaXdnYldsdWRYUmxjem9nTXpBc0lITmxZMjl1WkhNNklEVWdmVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVkWEpoZEdsdmJpNW1jbTl0U1ZOUEtDZFFWREl6U0NjcExuUnZUMkpxWldOMEtDa2dMeTg5UGlCN0lHaHZkWEp6T2lBeU15QjlYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFKVTA4b0oxQTFXVE5OSnlrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2VXVmhjbk02SURVc0lHMXZiblJvY3pvZ015QjlYRzRnSUNBcUlFQnlaWFIxY200Z2UwUjFjbUYwYVc5dWZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHWnliMjFKVTA4b2RHVjRkQ3dnYjNCMGN5a2dlMXh1SUNBZ0lHTnZibk4wSUZ0d1lYSnpaV1JkSUQwZ2NHRnljMlZKVTA5RWRYSmhkR2x2YmloMFpYaDBLVHRjYmlBZ0lDQnBaaUFvY0dGeWMyVmtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2h3WVhKelpXUXNJRzl3ZEhNcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSSFZ5WVhScGIyNHVhVzUyWVd4cFpDaGNJblZ1Y0dGeWMyRmliR1ZjSWl3Z1lIUm9aU0JwYm5CMWRDQmNJaVI3ZEdWNGRIMWNJaUJqWVc0bmRDQmlaU0J3WVhKelpXUWdZWE1nU1ZOUElEZzJNREZnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ1JIVnlZWFJwYjI0Z1puSnZiU0JoYmlCSlUwOGdPRFl3TVNCMGFXMWxJSE4wY21sdVp5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSbGVIUWdMU0IwWlhoMElIUnZJSEJoY25ObFhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWN5Qm1iM0lnY0dGeWMybHVaMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Ykc5allXeGxQU2RsYmkxVlV5ZGRJQzBnZEdobElHeHZZMkZzWlNCMGJ5QjFjMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11Ym5WdFltVnlhVzVuVTNsemRHVnRJQzBnZEdobElHNTFiV0psY21sdVp5QnplWE4wWlcwZ2RHOGdkWE5sWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1amIyNTJaWEp6YVc5dVFXTmpkWEpoWTNrOUoyTmhjM1ZoYkNkZElDMGdkR2hsSUdOdmJuWmxjbk5wYjI0Z2MzbHpkR1Z0SUhSdklIVnpaVnh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2Wlc0dWQybHJhWEJsWkdsaExtOXlaeTkzYVd0cEwwbFRUMTg0TmpBeEkxUnBiV1Z6WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxSlUwOVVhVzFsS0NjeE1Ub3lNam96TXk0ME5EUW5LUzUwYjA5aWFtVmpkQ2dwSUM4dlBUNGdleUJvYjNWeWN6b2dNVEVzSUcxcGJuVjBaWE02SURJeUxDQnpaV052Ym1Sek9pQXpNeXdnYldsc2JHbHpaV052Ym1Sek9pQTBORFFnZlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFNWTlBWR2x0WlNnbk1URTZNREFuS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTVRFc0lHMXBiblYwWlhNNklEQXNJSE5sWTI5dVpITTZJREFnZlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFNWTlBWR2x0WlNnblZERXhPakF3SnlrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2FHOTFjbk02SURFeExDQnRhVzUxZEdWek9pQXdMQ0J6WldOdmJtUnpPaUF3SUgxY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVbFRUMVJwYldVb0p6RXhNREFuS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTVRFc0lHMXBiblYwWlhNNklEQXNJSE5sWTI5dVpITTZJREFnZlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFNWTlBWR2x0WlNnblZERXhNREFuS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTVRFc0lHMXBiblYwWlhNNklEQXNJSE5sWTI5dVpITTZJREFnZlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJtY205dFNWTlBWR2x0WlNoMFpYaDBMQ0J2Y0hSektTQjdYRzRnSUNBZ1kyOXVjM1FnVzNCaGNuTmxaRjBnUFNCd1lYSnpaVWxUVDFScGJXVlBibXg1S0hSbGVIUXBPMXh1SUNBZ0lHbG1JQ2h3WVhKelpXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSEJoY25ObFpDd2diM0IwY3lrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQkVkWEpoZEdsdmJpNXBiblpoYkdsa0tGd2lkVzV3WVhKellXSnNaVndpTENCZ2RHaGxJR2x1Y0hWMElGd2lKSHQwWlhoMGZWd2lJR05oYmlkMElHSmxJSEJoY25ObFpDQmhjeUJKVTA4Z09EWXdNV0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVc0Z2FXNTJZV3hwWkNCRWRYSmhkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSEpsWVhOdmJpQXRJSE5wYlhCc1pTQnpkSEpwYm1jZ2IyWWdkMmg1SUhSb2FYTWdaR0YwWlhScGJXVWdhWE1nYVc1MllXeHBaQzRnVTJodmRXeGtJRzV2ZENCamIyNTBZV2x1SUhCaGNtRnRaWFJsY25NZ2IzSWdZVzU1ZEdocGJtY2daV3h6WlNCa1lYUmhMV1JsY0dWdVpHVnVkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyVjRjR3hoYm1GMGFXOXVQVzUxYkd4ZElDMGdiRzl1WjJWeUlHVjRjR3hoYm1GMGFXOXVMQ0J0WVhrZ2FXNWpiSFZrWlNCd1lYSmhiV1YwWlhKeklHRnVaQ0J2ZEdobGNpQjFjMlZtZFd3Z1pHVmlkV2RuYVc1bklHbHVabTl5YldGMGFXOXVYRzRnSUNBcUlFQnlaWFIxY200Z2UwUjFjbUYwYVc5dWZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHbHVkbUZzYVdRb2NtVmhjMjl1TENCbGVIQnNZVzVoZEdsdmJpQTlJRzUxYkd3cElIdGNiaUFnSUNCcFppQW9JWEpsWVhOdmJpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5S0Z3aWJtVmxaQ0IwYnlCemNHVmphV1o1SUdFZ2NtVmhjMjl1SUhSb1pTQkVkWEpoZEdsdmJpQnBjeUJwYm5aaGJHbGtYQ0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHVkbUZzYVdRZ1BTQnlaV0Z6YjI0Z2FXNXpkR0Z1WTJWdlppQkpiblpoYkdsa0lEOGdjbVZoYzI5dUlEb2dibVYzSUVsdWRtRnNhV1FvY21WaGMyOXVMQ0JsZUhCc1lXNWhkR2x2YmlrN1hHNWNiaUFnSUNCcFppQW9VMlYwZEdsdVozTXVkR2h5YjNkUGJrbHVkbUZzYVdRcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblpoYkdsa1JIVnlZWFJwYjI1RmNuSnZjaWhwYm5aaGJHbGtLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkVkWEpoZEdsdmJpaDdJR2x1ZG1Gc2FXUWdmU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYm05eWJXRnNhWHBsVlc1cGRDaDFibWwwS1NCN1hHNGdJQ0FnWTI5dWMzUWdibTl5YldGc2FYcGxaQ0E5SUh0Y2JpQWdJQ0FnSUhsbFlYSTZJRndpZVdWaGNuTmNJaXhjYmlBZ0lDQWdJSGxsWVhKek9pQmNJbmxsWVhKelhDSXNYRzRnSUNBZ0lDQnhkV0Z5ZEdWeU9pQmNJbkYxWVhKMFpYSnpYQ0lzWEc0Z0lDQWdJQ0J4ZFdGeWRHVnljem9nWENKeGRXRnlkR1Z5YzF3aUxGeHVJQ0FnSUNBZ2JXOXVkR2c2SUZ3aWJXOXVkR2h6WENJc1hHNGdJQ0FnSUNCdGIyNTBhSE02SUZ3aWJXOXVkR2h6WENJc1hHNGdJQ0FnSUNCM1pXVnJPaUJjSW5kbFpXdHpYQ0lzWEc0Z0lDQWdJQ0IzWldWcmN6b2dYQ0ozWldWcmMxd2lMRnh1SUNBZ0lDQWdaR0Y1T2lCY0ltUmhlWE5jSWl4Y2JpQWdJQ0FnSUdSaGVYTTZJRndpWkdGNWMxd2lMRnh1SUNBZ0lDQWdhRzkxY2pvZ1hDSm9iM1Z5YzF3aUxGeHVJQ0FnSUNBZ2FHOTFjbk02SUZ3aWFHOTFjbk5jSWl4Y2JpQWdJQ0FnSUcxcGJuVjBaVG9nWENKdGFXNTFkR1Z6WENJc1hHNGdJQ0FnSUNCdGFXNTFkR1Z6T2lCY0ltMXBiblYwWlhOY0lpeGNiaUFnSUNBZ0lITmxZMjl1WkRvZ1hDSnpaV052Ym1SelhDSXNYRzRnSUNBZ0lDQnpaV052Ym1Sek9pQmNJbk5sWTI5dVpITmNJaXhjYmlBZ0lDQWdJRzFwYkd4cGMyVmpiMjVrT2lCY0ltMXBiR3hwYzJWamIyNWtjMXdpTEZ4dUlDQWdJQ0FnYldsc2JHbHpaV052Ym1Sek9pQmNJbTFwYkd4cGMyVmpiMjVrYzF3aUxGeHVJQ0FnSUgxYmRXNXBkQ0EvSUhWdWFYUXVkRzlNYjNkbGNrTmhjMlVvS1NBNklIVnVhWFJkTzF4dVhHNGdJQ0FnYVdZZ0tDRnViM0p0WVd4cGVtVmtLU0IwYUhKdmR5QnVaWGNnU1c1MllXeHBaRlZ1YVhSRmNuSnZjaWgxYm1sMEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCdWIzSnRZV3hwZW1Wa08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU5vWldOcklHbG1JR0Z1SUc5aWFtVmpkQ0JwY3lCaElFUjFjbUYwYVc5dUxpQlhiM0pyY3lCaFkzSnZjM01nWTI5dWRHVjRkQ0JpYjNWdVpHRnlhV1Z6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiMkpxWldOMGZTQnZYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2FYTkVkWEpoZEdsdmJpaHZLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHZJQ1ltSUc4dWFYTk1kWGh2YmtSMWNtRjBhVzl1S1NCOGZDQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnSUhSb1pTQnNiMk5oYkdVZ2IyWWdZU0JFZFhKaGRHbHZiaXdnYzNWamFDQW5aVzR0UjBJblhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JHOWpZV3hsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG14dll5NXNiMk5oYkdVZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlNCdlppQmhJRVIxY21GMGFXOXVMQ0J6ZFdOb0lDZGlaVzVuSnk0Z1ZHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdhWE1nZFhObFpDQjNhR1Z1SUdadmNtMWhkSFJwYm1jZ2RHaGxJRVIxY21GMGFXOXVYRzRnSUNBcVhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JuVnRZbVZ5YVc1blUzbHpkR1Z0S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG14dll5NXVkVzFpWlhKcGJtZFRlWE4wWlcwZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lTQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJFZFhKaGRHbHZiaUJtYjNKdFlYUjBaV1FnWVdOamIzSmthVzVuSUhSdklIUm9aU0J6Y0dWamFXWnBaV1FnWm05eWJXRjBJSE4wY21sdVp5NGdXVzkxSUcxaGVTQjFjMlVnZEdobGMyVWdkRzlyWlc1ek9seHVJQ0FnS2lBcUlHQlRZQ0JtYjNJZ2JXbHNiR2x6WldOdmJtUnpYRzRnSUNBcUlDb2dZSE5nSUdadmNpQnpaV052Ym1SelhHNGdJQ0FxSUNvZ1lHMWdJR1p2Y2lCdGFXNTFkR1Z6WEc0Z0lDQXFJQ29nWUdoZ0lHWnZjaUJvYjNWeWMxeHVJQ0FnS2lBcUlHQmtZQ0JtYjNJZ1pHRjVjMXh1SUNBZ0tpQXFJR0IzWUNCbWIzSWdkMlZsYTNOY2JpQWdJQ29nS2lCZ1RXQWdabTl5SUcxdmJuUm9jMXh1SUNBZ0tpQXFJR0I1WUNCbWIzSWdlV1ZoY25OY2JpQWdJQ29nVG05MFpYTTZYRzRnSUNBcUlDb2dRV1JrSUhCaFpHUnBibWNnWW5rZ2NtVndaV0YwYVc1bklIUm9aU0IwYjJ0bGJpd2daUzVuTGlCY0lubDVYQ0lnY0dGa2N5QjBhR1VnZVdWaGNuTWdkRzhnZEhkdklHUnBaMmwwY3l3Z1hDSm9hR2hvWENJZ2NHRmtjeUIwYUdVZ2FHOTFjbk1nYjNWMElIUnZJR1p2ZFhJZ1pHbG5hWFJ6WEc0Z0lDQXFJQ29nVkc5clpXNXpJR05oYmlCaVpTQmxjMk5oY0dWa0lHSjVJSGR5WVhCd2FXNW5JSGRwZEdnZ2MybHVaMnhsSUhGMWIzUmxjeTVjYmlBZ0lDb2dLaUJVYUdVZ1pIVnlZWFJwYjI0Z2QybHNiQ0JpWlNCamIyNTJaWEowWldRZ2RHOGdkR2hsSUhObGRDQnZaaUIxYm1sMGN5QnBiaUIwYUdVZ1ptOXliV0YwSUhOMGNtbHVaeUIxYzJsdVp5QjdRR3hwYm1zZ1JIVnlZWFJwYjI0amMyaHBablJVYjMwZ1lXNWtJSFJvWlNCRWRYSmhkR2x2Ym5NbmN5QmpiMjUyWlhKemFXOXVJR0ZqWTNWeVlXTjVJSE5sZEhScGJtY3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCbWJYUWdMU0IwYUdVZ1ptOXliV0YwSUhOMGNtbHVaMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk5jYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1bWJHOXZjajEwY25WbFhTQXRJR1pzYjI5eUlHNTFiV1Z5YVdOaGJDQjJZV3gxWlhOY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIbGxZWEp6T2lBeExDQmtZWGx6T2lBMkxDQnpaV052Ym1Sek9pQXlJSDBwTG5SdlJtOXliV0YwS0Z3aWVTQmtJSE5jSWlrZ0x5ODlQaUJjSWpFZ05pQXlYQ0pjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUhsbFlYSnpPaUF4TENCa1lYbHpPaUEyTENCelpXTnZibVJ6T2lBeUlIMHBMblJ2Um05eWJXRjBLRndpZVhrZ1pHUWdjM056WENJcElDOHZQVDRnWENJd01TQXdOaUF3TURKY0lseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2dlV1ZoY25NNklERXNJR1JoZVhNNklEWXNJSE5sWTI5dVpITTZJRElnZlNrdWRHOUdiM0p0WVhRb1hDSk5JRk5jSWlrZ0x5ODlQaUJjSWpFeUlEVXhPRFF3TWpBd01Gd2lYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZSbTl5YldGMEtHWnRkQ3dnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnTHk4Z2NtVjJaWEp6WlMxamIyMXdZWFFnYzJsdVkyVWdNUzR5T3lCM1pTQmhiSGRoZVhNZ2NtOTFibVFnWkc5M2JpQnViM2NzSUc1bGRtVnlJSFZ3TENCaGJtUWdkMlVnWkc4Z2FYUWdZbmtnWkdWbVlYVnNkRnh1SUNBZ0lHTnZibk4wSUdadGRFOXdkSE1nUFNCN1hHNGdJQ0FnSUNBdUxpNXZjSFJ6TEZ4dUlDQWdJQ0FnWm14dmIzSTZJRzl3ZEhNdWNtOTFibVFnSVQwOUlHWmhiSE5sSUNZbUlHOXdkSE11Wm14dmIzSWdJVDA5SUdaaGJITmxMRnh1SUNBZ0lIMDdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpGeHVJQ0FnSUNBZ1B5QkdiM0p0WVhSMFpYSXVZM0psWVhSbEtIUm9hWE11Ykc5akxDQm1iWFJQY0hSektTNW1iM0p0WVhSRWRYSmhkR2x2YmtaeWIyMVRkSEpwYm1jb2RHaHBjeXdnWm0xMEtWeHVJQ0FnSUNBZ09pQkpUbFpCVEVsRU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdZU0JFZFhKaGRHbHZiaUIzYVhSb0lHRnNiQ0IxYm1sMGN5QnBibU5zZFdSbFpDNWNiaUFnSUNvZ1ZHOGdiVzlrYVdaNUlHbDBjeUJpWldoaGRtbHZjaUIxYzJVZ2RHaGxJR0JzYVhOMFUzUjViR1ZnSUdGdVpDQmhibmtnU1c1MGJDNU9kVzFpWlhKR2IzSnRZWFFnYjNCMGFXOXVMQ0IwYUc5MVoyZ2dZSFZ1YVhSRWFYTndiR0Y1WUNCcGN5QmxjM0JsWTJsaGJHeDVJSEpsYkdWMllXNTBMbHh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2WkdWMlpXeHZjR1Z5TG0xdmVtbHNiR0V1YjNKbkwyVnVMVlZUTDJSdlkzTXZWMlZpTDBwaGRtRlRZM0pwY0hRdlVtVm1aWEpsYm1ObEwwZHNiMkpoYkY5UFltcGxZM1J6TDBsdWRHd3ZUblZ0WW1WeVJtOXliV0YwWEc0Z0lDQXFJRUJ3WVhKaGJTQnZjSFJ6SUMwZ1QyNGdiM0IwYVc5dUlHOWlhbVZqZENCMGJ5QnZkbVZ5Y21sa1pTQjBhR1VnWm05eWJXRjBkR2x1Wnk0Z1FXTmpaWEIwY3lCMGFHVWdjMkZ0WlNCclpYbHpJR0Z6SUhSb1pTQnZjSFJwYjI1eklIQmhjbUZ0WlhSbGNpQnZaaUIwYUdVZ2JtRjBhWFpsSUdCSmJuUXVUblZ0WW1WeVJtOXliV0YwWUNCamIyNXpkSEoxWTNSdmNpd2dZWE1nZDJWc2JDQmhjeUJnYkdsemRGTjBlV3hsWUM1Y2JpQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDb2dZR0JnYW5OY2JpQWdJQ29nZG1GeUlHUjFjaUE5SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QmtZWGx6T2lBeExDQm9iM1Z5Y3pvZ05Td2diV2x1ZFhSbGN6b2dOaUI5S1Z4dUlDQWdLaUJrZFhJdWRHOUlkVzFoYmlncElDOHZQVDRnSnpFZ1pHRjVMQ0ExSUdodmRYSnpMQ0EySUcxcGJuVjBaWE1uWEc0Z0lDQXFJR1IxY2k1MGIwaDFiV0Z1S0hzZ2JHbHpkRk4wZVd4bE9pQmNJbXh2Ym1kY0lpQjlLU0F2THowK0lDY3hJR1JoZVN3Z05TQm9iM1Z5Y3l3Z1lXNWtJRFlnYldsdWRYUmxjeWRjYmlBZ0lDb2daSFZ5TG5SdlNIVnRZVzRvZXlCMWJtbDBSR2x6Y0d4aGVUb2dYQ0p6YUc5eWRGd2lJSDBwSUM4dlBUNGdKekVnWkdGNUxDQTFJR2h5TENBMklHMXBiaWRjYmlBZ0lDb2dZR0JnWEc0Z0lDQXFMMXh1SUNCMGIwaDFiV0Z1S0c5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUdOdmJuTjBJR3dnUFNCdmNtUmxjbVZrVlc1cGRITmNiaUFnSUNBZ0lDNXRZWEFvS0hWdWFYUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc0lEMGdkR2hwY3k1MllXeDFaWE5iZFc1cGRGMDdYRzRnSUNBZ0lDQWdJR2xtSUNocGMxVnVaR1ZtYVc1bFpDaDJZV3dwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViRzlqWEc0Z0lDQWdJQ0FnSUNBZ0xtNTFiV0psY2tadmNtMWhkSFJsY2loN0lITjBlV3hsT2lCY0luVnVhWFJjSWl3Z2RXNXBkRVJwYzNCc1lYazZJRndpYkc5dVoxd2lMQ0F1TGk1dmNIUnpMQ0IxYm1sME9pQjFibWwwTG5Oc2FXTmxLREFzSUMweEtTQjlLVnh1SUNBZ0lDQWdJQ0FnSUM1bWIzSnRZWFFvZG1Gc0tUdGNiaUFnSUNBZ0lIMHBYRzRnSUNBZ0lDQXVabWxzZEdWeUtDaHVLU0E5UGlCdUtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbXh2WTF4dUlDQWdJQ0FnTG14cGMzUkdiM0p0WVhSMFpYSW9leUIwZVhCbE9pQmNJbU52Ym1wMWJtTjBhVzl1WENJc0lITjBlV3hsT2lCdmNIUnpMbXhwYzNSVGRIbHNaU0I4ZkNCY0ltNWhjbkp2ZDF3aUxDQXVMaTV2Y0hSeklIMHBYRzRnSUNBZ0lDQXVabTl5YldGMEtHd3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCS1lYWmhVMk55YVhCMElHOWlhbVZqZENCM2FYUm9JSFJvYVhNZ1JIVnlZWFJwYjI0bmN5QjJZV3gxWlhNdVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QjVaV0Z5Y3pvZ01Td2daR0Y1Y3pvZ05pd2djMlZqYjI1a2N6b2dNaUI5S1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCNVpXRnljem9nTVN3Z1pHRjVjem9nTml3Z2MyVmpiMjVrY3pvZ01pQjlYRzRnSUNBcUlFQnlaWFIxY200Z2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lIUnZUMkpxWldOMEtDa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z2UzMDdYRzRnSUNBZ2NtVjBkWEp1SUhzZ0xpNHVkR2hwY3k1MllXeDFaWE1nZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhMV052YlhCc2FXRnVkQ0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRWRYSmhkR2x2Ymk1Y2JpQWdJQ29nUUhObFpTQm9kSFJ3Y3pvdkwyVnVMbmRwYTJsd1pXUnBZUzV2Y21jdmQybHJhUzlKVTA5Zk9EWXdNU05FZFhKaGRHbHZibk5jYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUhsbFlYSnpPaUF6TENCelpXTnZibVJ6T2lBME5TQjlLUzUwYjBsVFR5Z3BJQzh2UFQ0Z0oxQXpXVlEwTlZNblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QnRiMjUwYUhNNklEUXNJSE5sWTI5dVpITTZJRFExSUgwcExuUnZTVk5QS0NrZ0x5ODlQaUFuVURSTlZEUTFVeWRjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUcxdmJuUm9jem9nTlNCOUtTNTBiMGxUVHlncElDOHZQVDRnSjFBMVRTZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJRzFwYm5WMFpYTTZJRFVnZlNrdWRHOUpVMDhvS1NBdkx6MCtJQ2RRVkRWTkoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2diV2xzYkdselpXTnZibVJ6T2lBMklIMHBMblJ2U1ZOUEtDa2dMeTg5UGlBblVGUXdMakF3TmxNblhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlNWTlBLQ2tnZTF4dUlDQWdJQzh2SUhkbElHTnZkV3hrSUhWelpTQjBhR1VnWm05eWJXRjBkR1Z5TENCaWRYUWdkR2hwY3lCcGN5QmhiaUJsWVhOcFpYSWdkMkY1SUhSdklHZGxkQ0IwYUdVZ2JXbHVhVzExYlNCemRISnBibWRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlHNTFiR3c3WEc1Y2JpQWdJQ0JzWlhRZ2N5QTlJRndpVUZ3aU8xeHVJQ0FnSUdsbUlDaDBhR2x6TG5sbFlYSnpJQ0U5UFNBd0tTQnpJQ3M5SUhSb2FYTXVlV1ZoY25NZ0t5QmNJbGxjSWp0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV0YjI1MGFITWdJVDA5SURBZ2ZId2dkR2hwY3k1eGRXRnlkR1Z5Y3lBaFBUMGdNQ2tnY3lBclBTQjBhR2x6TG0xdmJuUm9jeUFySUhSb2FYTXVjWFZoY25SbGNuTWdLaUF6SUNzZ1hDSk5YQ0k3WEc0Z0lDQWdhV1lnS0hSb2FYTXVkMlZsYTNNZ0lUMDlJREFwSUhNZ0t6MGdkR2hwY3k1M1pXVnJjeUFySUZ3aVYxd2lPMXh1SUNBZ0lHbG1JQ2gwYUdsekxtUmhlWE1nSVQwOUlEQXBJSE1nS3owZ2RHaHBjeTVrWVhseklDc2dYQ0pFWENJN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YUc5MWNuTWdJVDA5SURBZ2ZId2dkR2hwY3k1dGFXNTFkR1Z6SUNFOVBTQXdJSHg4SUhSb2FYTXVjMlZqYjI1a2N5QWhQVDBnTUNCOGZDQjBhR2x6TG0xcGJHeHBjMlZqYjI1a2N5QWhQVDBnTUNsY2JpQWdJQ0FnSUhNZ0t6MGdYQ0pVWENJN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YUc5MWNuTWdJVDA5SURBcElITWdLejBnZEdocGN5NW9iM1Z5Y3lBcklGd2lTRndpTzF4dUlDQWdJR2xtSUNoMGFHbHpMbTFwYm5WMFpYTWdJVDA5SURBcElITWdLejBnZEdocGN5NXRhVzUxZEdWeklDc2dYQ0pOWENJN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YzJWamIyNWtjeUFoUFQwZ01DQjhmQ0IwYUdsekxtMXBiR3hwYzJWamIyNWtjeUFoUFQwZ01DbGNiaUFnSUNBZ0lDOHZJSFJvYVhNZ2QybHNiQ0JvWVc1a2JHVWdYQ0ptYkc5aGRHbHVaeUJ3YjJsdWRDQnRZV1J1WlhOelhDSWdZbmtnY21WdGIzWnBibWNnWlhoMGNtRWdaR1ZqYVcxaGJDQndiR0ZqWlhOY2JpQWdJQ0FnSUM4dklHaDBkSEJ6T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdmNYVmxjM1JwYjI1ekx6VTRPREF3TkM5cGN5MW1iRzloZEdsdVp5MXdiMmx1ZEMxdFlYUm9MV0p5YjJ0bGJseHVJQ0FnSUNBZ2N5QXJQU0J5YjNWdVpGUnZLSFJvYVhNdWMyVmpiMjVrY3lBcklIUm9hWE11Yldsc2JHbHpaV052Ym1SeklDOGdNVEF3TUN3Z015a2dLeUJjSWxOY0lqdGNiaUFnSUNCcFppQW9jeUE5UFQwZ1hDSlFYQ0lwSUhNZ0t6MGdYQ0pVTUZOY0lqdGNiaUFnSUNCeVpYUjFjbTRnY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhMV052YlhCc2FXRnVkQ0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRWRYSmhkR2x2Yml3Z1ptOXliV0YwZEdWa0lHRnpJR0VnZEdsdFpTQnZaaUJrWVhrdVhHNGdJQ0FxSUU1dmRHVWdkR2hoZENCMGFHbHpJSGRwYkd3Z2NtVjBkWEp1SUc1MWJHd2dhV1lnZEdobElHUjFjbUYwYVc5dUlHbHpJR2x1ZG1Gc2FXUXNJRzVsWjJGMGFYWmxMQ0J2Y2lCbGNYVmhiQ0IwYnlCdmNpQm5jbVZoZEdWeUlIUm9ZVzRnTWpRZ2FHOTFjbk11WEc0Z0lDQXFJRUJ6WldVZ2FIUjBjSE02THk5bGJpNTNhV3RwY0dWa2FXRXViM0puTDNkcGEya3ZTVk5QWHpnMk1ERWpWR2x0WlhOY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJwYjI1elhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVjM1Z3Y0hKbGMzTk5hV3hzYVhObFkyOXVaSE05Wm1Gc2MyVmRJQzBnWlhoamJIVmtaU0J0YVd4c2FYTmxZMjl1WkhNZ1puSnZiU0IwYUdVZ1ptOXliV0YwSUdsbUlIUm9aWGtuY21VZ01GeHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0dmNIUnpMbk4xY0hCeVpYTnpVMlZqYjI1a2N6MW1ZV3h6WlYwZ0xTQmxlR05zZFdSbElITmxZMjl1WkhNZ1puSnZiU0IwYUdVZ1ptOXliV0YwSUdsbUlIUm9aWGtuY21VZ01GeHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0dmNIUnpMbWx1WTJ4MVpHVlFjbVZtYVhnOVptRnNjMlZkSUMwZ2FXNWpiSFZrWlNCMGFHVWdZRlJnSUhCeVpXWnBlRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Wm05eWJXRjBQU2RsZUhSbGJtUmxaQ2RkSUMwZ1kyaHZiM05sSUdKbGRIZGxaVzRnZEdobElHSmhjMmxqSUdGdVpDQmxlSFJsYm1SbFpDQm1iM0p0WVhSY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeE1TQjlLUzUwYjBsVFQxUnBiV1VvS1NBdkx6MCtJQ2N4TVRvd01Eb3dNQzR3TURBblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ01URWdmU2t1ZEc5SlUwOVVhVzFsS0hzZ2MzVndjSEpsYzNOTmFXeHNhWE5sWTI5dVpITTZJSFJ5ZFdVZ2ZTa2dMeTg5UGlBbk1URTZNREE2TURBblhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ01URWdmU2t1ZEc5SlUwOVVhVzFsS0hzZ2MzVndjSEpsYzNOVFpXTnZibVJ6T2lCMGNuVmxJSDBwSUM4dlBUNGdKekV4T2pBd0oxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2dhRzkxY25NNklERXhJSDBwTG5SdlNWTlBWR2x0WlNoN0lHbHVZMngxWkdWUWNtVm1hWGc2SUhSeWRXVWdmU2tnTHk4OVBpQW5WREV4T2pBd09qQXdMakF3TUNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeE1TQjlLUzUwYjBsVFQxUnBiV1VvZXlCbWIzSnRZWFE2SUNkaVlYTnBZeWNnZlNrZ0x5ODlQaUFuTVRFd01EQXdMakF3TUNkY2JpQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnZEc5SlUwOVVhVzFsS0c5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnYm5Wc2JEdGNibHh1SUNBZ0lHTnZibk4wSUcxcGJHeHBjeUE5SUhSb2FYTXVkRzlOYVd4c2FYTW9LVHRjYmlBZ0lDQnBaaUFvYldsc2JHbHpJRHdnTUNCOGZDQnRhV3hzYVhNZ1BqMGdPRFkwTURBd01EQXBJSEpsZEhWeWJpQnVkV3hzTzF4dVhHNGdJQ0FnYjNCMGN5QTlJSHRjYmlBZ0lDQWdJSE4xY0hCeVpYTnpUV2xzYkdselpXTnZibVJ6T2lCbVlXeHpaU3hjYmlBZ0lDQWdJSE4xY0hCeVpYTnpVMlZqYjI1a2N6b2dabUZzYzJVc1hHNGdJQ0FnSUNCcGJtTnNkV1JsVUhKbFptbDRPaUJtWVd4elpTeGNiaUFnSUNBZ0lHWnZjbTFoZERvZ1hDSmxlSFJsYm1SbFpGd2lMRnh1SUNBZ0lDQWdMaTR1YjNCMGN5eGNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0IwYUdsekxuTm9hV1owVkc4b1hDSm9iM1Z5YzF3aUxDQmNJbTFwYm5WMFpYTmNJaXdnWENKelpXTnZibVJ6WENJc0lGd2liV2xzYkdselpXTnZibVJ6WENJcE8xeHVYRzRnSUNBZ2JHVjBJR1p0ZENBOUlHOXdkSE11Wm05eWJXRjBJRDA5UFNCY0ltSmhjMmxqWENJZ1B5QmNJbWhvYlcxY0lpQTZJRndpYUdnNmJXMWNJanRjYmx4dUlDQWdJR2xtSUNnaGIzQjBjeTV6ZFhCd2NtVnpjMU5sWTI5dVpITWdmSHdnZG1Gc2RXVXVjMlZqYjI1a2N5QWhQVDBnTUNCOGZDQjJZV3gxWlM1dGFXeHNhWE5sWTI5dVpITWdJVDA5SURBcElIdGNiaUFnSUNBZ0lHWnRkQ0FyUFNCdmNIUnpMbVp2Y20xaGRDQTlQVDBnWENKaVlYTnBZMXdpSUQ4Z1hDSnpjMXdpSURvZ1hDSTZjM05jSWp0Y2JpQWdJQ0FnSUdsbUlDZ2hiM0IwY3k1emRYQndjbVZ6YzAxcGJHeHBjMlZqYjI1a2N5QjhmQ0IyWVd4MVpTNXRhV3hzYVhObFkyOXVaSE1nSVQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnWm0xMElDczlJRndpTGxOVFUxd2lPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J6ZEhJZ1BTQjJZV3gxWlM1MGIwWnZjbTFoZENobWJYUXBPMXh1WEc0Z0lDQWdhV1lnS0c5d2RITXVhVzVqYkhWa1pWQnlaV1pwZUNrZ2UxeHVJQ0FnSUNBZ2MzUnlJRDBnWENKVVhDSWdLeUJ6ZEhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE4wY2p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhJSEpsY0hKbGMyVnVkR0YwYVc5dUlHOW1JSFJvYVhNZ1JIVnlZWFJwYjI0Z1lYQndjbTl3Y21saGRHVWdabTl5SUhWelpTQnBiaUJLVTA5T0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCMGIwcFRUMDRvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRHOUpVMDhvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhJSEpsY0hKbGMyVnVkR0YwYVc5dUlHOW1JSFJvYVhNZ1JIVnlZWFJwYjI0Z1lYQndjbTl3Y21saGRHVWdabTl5SUhWelpTQnBiaUJrWldKMVoyZHBibWN1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2VTNSeWFXNW5LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5SdlNWTlBLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaGJpQnRhV3hzYVhObFkyOXVaSE1nZG1Gc2RXVWdiMllnZEdocGN5QkVkWEpoZEdsdmJpNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ2RHOU5hV3hzYVhNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZWE1vWENKdGFXeHNhWE5sWTI5dVpITmNJaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaGJpQnRhV3hzYVhObFkyOXVaSE1nZG1Gc2RXVWdiMllnZEdocGN5QkVkWEpoZEdsdmJpNGdRV3hwWVhNZ2IyWWdlMEJzYVc1cklIUnZUV2xzYkdsemZWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCMllXeDFaVTltS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuUnZUV2xzYkdsektDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVFdGclpTQjBhR2x6SUVSMWNtRjBhVzl1SUd4dmJtZGxjaUJpZVNCMGFHVWdjM0JsWTJsbWFXVmtJR0Z0YjNWdWRDNGdVbVYwZFhKdUlHRWdibVYzYkhrdFkyOXVjM1J5ZFdOMFpXUWdSSFZ5WVhScGIyNHVYRzRnSUNBcUlFQndZWEpoYlNCN1JIVnlZWFJwYjI1OFQySnFaV04wZkc1MWJXSmxjbjBnWkhWeVlYUnBiMjRnTFNCVWFHVWdZVzF2ZFc1MElIUnZJR0ZrWkM0Z1JXbDBhR1Z5SUdFZ1RIVjRiMjRnUkhWeVlYUnBiMjRzSUdFZ2JuVnRZbVZ5SUc5bUlHMXBiR3hwYzJWamIyNWtjeXdnZEdobElHOWlhbVZqZENCaGNtZDFiV1Z1ZENCMGJ5QkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLQ2xjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSSFZ5WVhScGIyNTlYRzRnSUNBcUwxeHVJQ0J3YkhWektHUjFjbUYwYVc5dUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCMGFHbHpPMXh1WEc0Z0lDQWdZMjl1YzNRZ1pIVnlJRDBnUkhWeVlYUnBiMjR1Wm5KdmJVUjFjbUYwYVc5dVRHbHJaU2hrZFhKaGRHbHZiaWtzWEc0Z0lDQWdJQ0J5WlhOMWJIUWdQU0I3ZlR0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2F5QnZaaUJ2Y21SbGNtVmtWVzVwZEhNcElIdGNiaUFnSUNBZ0lHbG1JQ2hvWVhOUGQyNVFjbTl3WlhKMGVTaGtkWEl1ZG1Gc2RXVnpMQ0JyS1NCOGZDQm9ZWE5QZDI1UWNtOXdaWEowZVNoMGFHbHpMblpoYkhWbGN5d2dheWtwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwVzJ0ZElEMGdaSFZ5TG1kbGRDaHJLU0FySUhSb2FYTXVaMlYwS0dzcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJqYkc5dVpTaDBhR2x6TENCN0lIWmhiSFZsY3pvZ2NtVnpkV3gwSUgwc0lIUnlkV1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFMWhhMlVnZEdocGN5QkVkWEpoZEdsdmJpQnphRzl5ZEdWeUlHSjVJSFJvWlNCemNHVmphV1pwWldRZ1lXMXZkVzUwTGlCU1pYUjFjbTRnWVNCdVpYZHNlUzFqYjI1emRISjFZM1JsWkNCRWRYSmhkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRFZFhKaGRHbHZibnhQWW1wbFkzUjhiblZ0WW1WeWZTQmtkWEpoZEdsdmJpQXRJRlJvWlNCaGJXOTFiblFnZEc4Z2MzVmlkSEpoWTNRdUlFVnBkR2hsY2lCaElFeDFlRzl1SUVSMWNtRjBhVzl1TENCaElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1zSUhSb1pTQnZZbXBsWTNRZ1lYSm5kVzFsYm5RZ2RHOGdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2dwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFIxY21GMGFXOXVmVnh1SUNBZ0tpOWNiaUFnYldsdWRYTW9aSFZ5WVhScGIyNHBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlIUm9hWE03WEc1Y2JpQWdJQ0JqYjI1emRDQmtkWElnUFNCRWRYSmhkR2x2Ymk1bWNtOXRSSFZ5WVhScGIyNU1hV3RsS0dSMWNtRjBhVzl1S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2JIVnpLR1IxY2k1dVpXZGhkR1VvS1NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVMk5oYkdVZ2RHaHBjeUJFZFhKaGRHbHZiaUJpZVNCMGFHVWdjM0JsWTJsbWFXVmtJR0Z0YjNWdWRDNGdVbVYwZFhKdUlHRWdibVYzYkhrdFkyOXVjM1J5ZFdOMFpXUWdSSFZ5WVhScGIyNHVYRzRnSUNBcUlFQndZWEpoYlNCN1puVnVZM1JwYjI1OUlHWnVJQzBnVkdobElHWjFibU4wYVc5dUlIUnZJR0Z3Y0d4NUlIUnZJR1ZoWTJnZ2RXNXBkQzRnUVhKcGRIa2dhWE1nTVNCdmNpQXlPaUIwYUdVZ2RtRnNkV1VnYjJZZ2RHaGxJSFZ1YVhRZ1lXNWtMQ0J2Y0hScGIyNWhiR3g1TENCMGFHVWdkVzVwZENCdVlXMWxMaUJOZFhOMElISmxkSFZ5YmlCaElHNTFiV0psY2k1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHaHZkWEp6T2lBeExDQnRhVzUxZEdWek9pQXpNQ0I5S1M1dFlYQlZibWwwY3loNElEMCtJSGdnS2lBeUtTQXZMejArSUhzZ2FHOTFjbk02SURJc0lHMXBiblYwWlhNNklEWXdJSDFjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUdodmRYSnpPaUF4TENCdGFXNTFkR1Z6T2lBek1DQjlLUzV0WVhCVmJtbDBjeWdvZUN3Z2RTa2dQVDRnZFNBOVBUMGdYQ0pvYjNWeVhDSWdQeUI0SUNvZ01pQTZJSGdwSUM4dlBUNGdleUJvYjNWeWN6b2dNaXdnYldsdWRYUmxjem9nTXpBZ2ZWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lHMWhjRlZ1YVhSektHWnVLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJR052Ym5OMElISmxjM1ZzZENBOUlIdDlPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdheUJ2WmlCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG5aaGJIVmxjeWtwSUh0Y2JpQWdJQ0FnSUhKbGMzVnNkRnRyWFNBOUlHRnpUblZ0WW1WeUtHWnVLSFJvYVhNdWRtRnNkV1Z6VzJ0ZExDQnJLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCamJHOXVaU2gwYUdsekxDQjdJSFpoYkhWbGN6b2djbVZ6ZFd4MElIMHNJSFJ5ZFdVcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdkbUZzZFdVZ2IyWWdkVzVwZEM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFZ1YVhRZ0xTQmhJSFZ1YVhRZ2MzVmphQ0JoY3lBbmJXbHVkWFJsSnlCdmNpQW5aR0Y1SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0h0NVpXRnljem9nTWl3Z1pHRjVjem9nTTMwcExtZGxkQ2duZVdWaGNuTW5LU0F2THowK0lESmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdlV1ZoY25NNklESXNJR1JoZVhNNklETjlLUzVuWlhRb0oyMXZiblJvY3ljcElDOHZQVDRnTUZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0h0NVpXRnljem9nTWl3Z1pHRjVjem9nTTMwcExtZGxkQ2duWkdGNWN5Y3BJQzh2UFQ0Z00xeHVJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUW9kVzVwZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdselcwUjFjbUYwYVc5dUxtNXZjbTFoYkdsNlpWVnVhWFFvZFc1cGRDbGRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZ3aVUyVjBYQ0lnZEdobElIWmhiSFZsY3lCdlppQnpjR1ZqYVdacFpXUWdkVzVwZEhNdUlGSmxkSFZ5YmlCaElHNWxkMng1TFdOdmJuTjBjblZqZEdWa0lFUjFjbUYwYVc5dUxseHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnZG1Gc2RXVnpJQzBnWVNCdFlYQndhVzVuSUc5bUlIVnVhWFJ6SUhSdklHNTFiV0psY25OY2JpQWdJQ29nUUdWNFlXMXdiR1VnWkhWeUxuTmxkQ2g3SUhsbFlYSnpPaUF5TURFM0lIMHBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElHUjFjaTV6WlhRb2V5Qm9iM1Z5Y3pvZ09Dd2diV2x1ZFhSbGN6b2dNekFnZlNsY2JpQWdJQ29nUUhKbGRIVnliaUI3UkhWeVlYUnBiMjU5WEc0Z0lDQXFMMXh1SUNCelpYUW9kbUZzZFdWektTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCMGFHbHpPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXbDRaV1FnUFNCN0lDNHVMblJvYVhNdWRtRnNkV1Z6TENBdUxpNXViM0p0WVd4cGVtVlBZbXBsWTNRb2RtRnNkV1Z6TENCRWRYSmhkR2x2Ymk1dWIzSnRZV3hwZW1WVmJtbDBLU0I5TzF4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlNoMGFHbHpMQ0I3SUhaaGJIVmxjem9nYldsNFpXUWdmU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1hDSlRaWFJjSWlCMGFHVWdiRzlqWVd4bElHRnVaQzl2Y2lCdWRXMWlaWEpwYm1kVGVYTjBaVzB1SUNCU1pYUjFjbTV6SUdFZ2JtVjNiSGt0WTI5dWMzUnlkV04wWldRZ1JIVnlZWFJwYjI0dVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUdSMWNpNXlaV052Ym1acFozVnlaU2g3SUd4dlkyRnNaVG9nSjJWdUxVZENKeUI5S1Z4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUhKbFkyOXVabWxuZFhKbEtIc2diRzlqWVd4bExDQnVkVzFpWlhKcGJtZFRlWE4wWlcwc0lHTnZiblpsY25OcGIyNUJZMk4xY21GamVTQjlJRDBnZTMwcElIdGNiaUFnSUNCamIyNXpkQ0JzYjJNZ1BTQjBhR2x6TG14dll5NWpiRzl1WlNoN0lHeHZZMkZzWlN3Z2JuVnRZbVZ5YVc1blUzbHpkR1Z0SUgwcExGeHVJQ0FnSUNBZ2IzQjBjeUE5SUhzZ2JHOWpJSDA3WEc1Y2JpQWdJQ0JwWmlBb1kyOXVkbVZ5YzJsdmJrRmpZM1Z5WVdONUtTQjdYRzRnSUNBZ0lDQnZjSFJ6TG1OdmJuWmxjbk5wYjI1QlkyTjFjbUZqZVNBOUlHTnZiblpsY25OcGIyNUJZMk4xY21GamVUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWTJ4dmJtVW9kR2hwY3l3Z2IzQjBjeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSb1pTQnNaVzVuZEdnZ2IyWWdkR2hsSUdSMWNtRjBhVzl1SUdsdUlIUm9aU0J6Y0dWamFXWnBaV1FnZFc1cGRDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhWdWFYUWdMU0JoSUhWdWFYUWdjM1ZqYUNCaGN5QW5iV2x1ZFhSbGN5Y2diM0lnSjJSaGVYTW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9lM2xsWVhKek9pQXhmU2t1WVhNb0oyUmhlWE1uS1NBdkx6MCtJRE0yTlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0h0NVpXRnljem9nTVgwcExtRnpLQ2R0YjI1MGFITW5LU0F2THowK0lERXlYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9lMmh2ZFhKek9pQTJNSDBwTG1GektDZGtZWGx6SnlrZ0x5ODlQaUF5TGpWY2JpQWdJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWVhNb2RXNXBkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMbk5vYVdaMFZHOG9kVzVwZENrdVoyVjBLSFZ1YVhRcElEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxaSFZqWlNCMGFHbHpJRVIxY21GMGFXOXVJSFJ2SUdsMGN5QmpZVzV2Ym1sallXd2djbVZ3Y21WelpXNTBZWFJwYjI0Z2FXNGdhWFJ6SUdOMWNuSmxiblFnZFc1cGRITXVYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUI1WldGeWN6b2dNaXdnWkdGNWN6b2dOVEF3TUNCOUtTNXViM0p0WVd4cGVtVW9LUzUwYjA5aWFtVmpkQ2dwSUM4dlBUNGdleUI1WldGeWN6b2dNVFVzSUdSaGVYTTZJREkxTlNCOVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ01USXNJRzFwYm5WMFpYTTZJQzAwTlNCOUtTNXViM0p0WVd4cGVtVW9LUzUwYjA5aWFtVmpkQ2dwSUM4dlBUNGdleUJvYjNWeWN6b2dNVEVzSUcxcGJuVjBaWE02SURFMUlIMWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JIVnlZWFJwYjI1OVhHNGdJQ0FxTDF4dUlDQnViM0p0WVd4cGVtVW9LU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJR052Ym5OMElIWmhiSE1nUFNCMGFHbHpMblJ2VDJKcVpXTjBLQ2s3WEc0Z0lDQWdibTl5YldGc2FYcGxWbUZzZFdWektIUm9hWE11YldGMGNtbDRMQ0IyWVd4ektUdGNiaUFnSUNCeVpYUjFjbTRnWTJ4dmJtVW9kR2hwY3l3Z2V5QjJZV3gxWlhNNklIWmhiSE1nZlN3Z2RISjFaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCMGFHbHpJRVIxY21GMGFXOXVJR2x1ZEc4Z2FYUnpJSEpsY0hKbGMyVnVkR0YwYVc5dUlHbHVJR0VnWkdsbVptVnlaVzUwSUhObGRDQnZaaUIxYm1sMGN5NWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhKek9pQXhMQ0J6WldOdmJtUnpPaUF6TUNCOUtTNXphR2xtZEZSdktDZHRhVzUxZEdWekp5d2dKMjFwYkd4cGMyVmpiMjVrY3ljcExuUnZUMkpxWldOMEtDa2dMeTg5UGlCN0lHMXBiblYwWlhNNklEWXdMQ0J0YVd4c2FYTmxZMjl1WkhNNklETXdNREF3SUgxY2JpQWdJQ29nUUhKbGRIVnliaUI3UkhWeVlYUnBiMjU5WEc0Z0lDQXFMMXh1SUNCemFHbG1kRlJ2S0M0dUxuVnVhWFJ6S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUIwYUdsek8xeHVYRzRnSUNBZ2FXWWdLSFZ1YVhSekxteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZFc1cGRITWdQU0IxYm1sMGN5NXRZWEFvS0hVcElEMCtJRVIxY21GMGFXOXVMbTV2Y20xaGJHbDZaVlZ1YVhRb2RTa3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1luVnBiSFFnUFNCN2ZTeGNiaUFnSUNBZ0lHRmpZM1Z0ZFd4aGRHVmtJRDBnZTMwc1hHNGdJQ0FnSUNCMllXeHpJRDBnZEdocGN5NTBiMDlpYW1WamRDZ3BPMXh1SUNBZ0lHeGxkQ0JzWVhOMFZXNXBkRHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQnZjbVJsY21Wa1ZXNXBkSE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaDFibWwwY3k1cGJtUmxlRTltS0dzcElENDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ2JHRnpkRlZ1YVhRZ1BTQnJPMXh1WEc0Z0lDQWdJQ0FnSUd4bGRDQnZkMjRnUFNBd08xeHVYRzRnSUNBZ0lDQWdJQzh2SUdGdWVYUm9hVzVuSUhkbElHaGhkbVZ1SjNRZ1ltOXBiR1ZrSUdSdmQyNGdlV1YwSUhOb2IzVnNaQ0JuWlhRZ1ltOXBiR1ZrSUhSdklIUm9hWE1nZFc1cGRGeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR0ZySUdsdUlHRmpZM1Z0ZFd4aGRHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2IzZHVJQ3M5SUhSb2FYTXViV0YwY21sNFcyRnJYVnRyWFNBcUlHRmpZM1Z0ZFd4aGRHVmtXMkZyWFR0Y2JpQWdJQ0FnSUNBZ0lDQmhZMk4xYlhWc1lYUmxaRnRoYTEwZ1BTQXdPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdjR3gxY3lCaGJubDBhR2x1WnlCMGFHRjBKM01nWVd4eVpXRmtlU0JwYmlCMGFHbHpJSFZ1YVhSY2JpQWdJQ0FnSUNBZ2FXWWdLR2x6VG5WdFltVnlLSFpoYkhOYmExMHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2IzZHVJQ3M5SUhaaGJITmJhMTA3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCcElEMGdUV0YwYUM1MGNuVnVZeWh2ZDI0cE8xeHVJQ0FnSUNBZ0lDQmlkV2xzZEZ0clhTQTlJR2s3WEc0Z0lDQWdJQ0FnSUdGalkzVnRkV3hoZEdWa1cydGRJRDBnS0c5M2JpQXFJREV3TURBZ0xTQnBJQ29nTVRBd01Da2dMeUF4TURBd08xeHVYRzRnSUNBZ0lDQWdJQzh2SUhCc2RYTWdZVzU1ZEdocGJtY2dablZ5ZEdobGNpQmtiM2R1SUhSb1pTQmphR0ZwYmlCMGFHRjBJSE5vYjNWc1pDQmlaU0J5YjJ4c1pXUWdkWEFnYVc0Z2RHOGdkR2hwYzF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHUnZkMjRnYVc0Z2RtRnNjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h2Y21SbGNtVmtWVzVwZEhNdWFXNWtaWGhQWmloa2IzZHVLU0ErSUc5eVpHVnlaV1JWYm1sMGN5NXBibVJsZUU5bUtHc3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUyWlhKMEtIUm9hWE11YldGMGNtbDRMQ0IyWVd4ekxDQmtiM2R1TENCaWRXbHNkQ3dnYXlrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklHOTBhR1Z5ZDJselpTd2dhMlZsY0NCcGRDQnBiaUIwYUdVZ2QybHVaM01nZEc4Z1ltOXBiQ0JwZENCc1lYUmxjbHh1SUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hwYzA1MWJXSmxjaWgyWVd4elcydGRLU2tnZTF4dUlDQWdJQ0FnSUNCaFkyTjFiWFZzWVhSbFpGdHJYU0E5SUhaaGJITmJhMTA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnWVc1NWRHaHBibWNnYkdWbWRHOTJaWElnWW1WamIyMWxjeUIwYUdVZ1pHVmphVzFoYkNCbWIzSWdkR2hsSUd4aGMzUWdkVzVwZEZ4dUlDQWdJQzh2SUd4aGMzUlZibWwwSUcxMWMzUWdZbVVnWkdWbWFXNWxaQ0J6YVc1alpTQjFibWwwY3lCcGN5QnViM1FnWlcxd2RIbGNiaUFnSUNCbWIzSWdLR052Ym5OMElHdGxlU0JwYmlCaFkyTjFiWFZzWVhSbFpDa2dlMXh1SUNBZ0lDQWdhV1lnS0dGalkzVnRkV3hoZEdWa1cydGxlVjBnSVQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnWW5WcGJIUmJiR0Z6ZEZWdWFYUmRJQ3M5WEc0Z0lDQWdJQ0FnSUNBZ2EyVjVJRDA5UFNCc1lYTjBWVzVwZENBL0lHRmpZM1Z0ZFd4aGRHVmtXMnRsZVYwZ09pQmhZMk4xYlhWc1lYUmxaRnRyWlhsZElDOGdkR2hwY3k1dFlYUnlhWGhiYkdGemRGVnVhWFJkVzJ0bGVWMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdOc2IyNWxLSFJvYVhNc0lIc2dkbUZzZFdWek9pQmlkV2xzZENCOUxDQjBjblZsS1M1dWIzSnRZV3hwZW1Vb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUc1bFoyRjBhWFpsSUc5bUlIUm9hWE1nUkhWeVlYUnBiMjR1WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCb2IzVnljem9nTVN3Z2MyVmpiMjVrY3pvZ016QWdmU2t1Ym1WbllYUmxLQ2t1ZEc5UFltcGxZM1FvS1NBdkx6MCtJSHNnYUc5MWNuTTZJQzB4TENCelpXTnZibVJ6T2lBdE16QWdmVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVkWEpoZEdsdmJuMWNiaUFnSUNvdlhHNGdJRzVsWjJGMFpTZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdZMjl1YzNRZ2JtVm5ZWFJsWkNBOUlIdDlPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdheUJ2WmlCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG5aaGJIVmxjeWtwSUh0Y2JpQWdJQ0FnSUc1bFoyRjBaV1JiYTEwZ1BTQjBhR2x6TG5aaGJIVmxjMXRyWFNBOVBUMGdNQ0EvSURBZ09pQXRkR2hwY3k1MllXeDFaWE5iYTEwN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlNoMGFHbHpMQ0I3SUhaaGJIVmxjem9nYm1WbllYUmxaQ0I5TENCMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUhsbFlYSnpMbHh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJSGxsWVhKektDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuWmhiSFZsY3k1NVpXRnljeUI4ZkNBd0lEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2NYVmhjblJsY25NdVhHNGdJQ0FxSUVCMGVYQmxJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2NYVmhjblJsY25Nb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRtRnNkV1Z6TG5GMVlYSjBaWEp6SUh4OElEQWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQnRiMjUwYUhNdVhHNGdJQ0FxSUVCMGVYQmxJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JXOXVkR2h6S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5aaGJIVmxjeTV0YjI1MGFITWdmSHdnTUNBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUhkbFpXdHpYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdkMlZsYTNNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRtRnNkV1Z6TG5kbFpXdHpJSHg4SURBZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCa1lYbHpMbHh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR1JoZVhNb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRtRnNkV1Z6TG1SaGVYTWdmSHdnTUNBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUdodmRYSnpMbHh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR2h2ZFhKektDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuWmhiSFZsY3k1b2IzVnljeUI4ZkNBd0lEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2JXbHVkWFJsY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMjUxYldKbGNuMWNiaUFnSUNvdlhHNGdJR2RsZENCdGFXNTFkR1Z6S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5aaGJIVmxjeTV0YVc1MWRHVnpJSHg4SURBZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCelpXTnZibVJ6TGx4dUlDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2MyVmpiMjVrY3lncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa0lEOGdkR2hwY3k1MllXeDFaWE11YzJWamIyNWtjeUI4ZkNBd0lEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2JXbHNiR2x6WldOdmJtUnpMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnYldsc2JHbHpaV052Ym1SektDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuWmhiSFZsY3k1dGFXeHNhWE5sWTI5dVpITWdmSHdnTUNBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUhkb1pYUm9aWElnZEdobElFUjFjbUYwYVc5dUlHbHpJR2x1ZG1Gc2FXUXVJRWx1ZG1Gc2FXUWdaSFZ5WVhScGIyNXpJR0Z5WlNCeVpYUjFjbTVsWkNCaWVTQmthV1ptSUc5d1pYSmhkR2x2Ym5OY2JpQWdJQ29nYjI0Z2FXNTJZV3hwWkNCRVlYUmxWR2x0WlhNZ2IzSWdTVzUwWlhKMllXeHpMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdGliMjlzWldGdWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdselZtRnNhV1FvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFXNTJZV3hwWkNBOVBUMGdiblZzYkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJR1Z5Y205eUlHTnZaR1VnYVdZZ2RHaHBjeUJFZFhKaGRHbHZiaUJpWldOaGJXVWdhVzUyWVd4cFpDd2diM0lnYm5Wc2JDQnBaaUIwYUdVZ1JIVnlZWFJwYjI0Z2FYTWdkbUZzYVdSY2JpQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWjJWMElHbHVkbUZzYVdSU1pXRnpiMjRvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFXNTJZV3hwWkNBL0lIUm9hWE11YVc1MllXeHBaQzV5WldGemIyNGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZVzRnWlhod2JHRnVZWFJwYjI0Z2IyWWdkMmg1SUhSb2FYTWdSSFZ5WVhScGIyNGdZbVZqWVcxbElHbHVkbUZzYVdRc0lHOXlJRzUxYkd3Z2FXWWdkR2hsSUVSMWNtRjBhVzl1SUdseklIWmhiR2xrWEc0Z0lDQXFJRUIwZVhCbElIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQm5aWFFnYVc1MllXeHBaRVY0Y0d4aGJtRjBhVzl1S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHVkbUZzYVdRZ1B5QjBhR2x6TG1sdWRtRnNhV1F1Wlhod2JHRnVZWFJwYjI0Z09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFVnhkV0ZzYVhSNUlHTm9aV05yWEc0Z0lDQXFJRlIzYnlCRWRYSmhkR2x2Ym5NZ1lYSmxJR1Z4ZFdGc0lHbG1aaUIwYUdWNUlHaGhkbVVnZEdobElITmhiV1VnZFc1cGRITWdZVzVrSUhSb1pTQnpZVzFsSUhaaGJIVmxjeUJtYjNJZ1pXRmphQ0IxYm1sMExseHVJQ0FnS2lCQWNHRnlZVzBnZTBSMWNtRjBhVzl1ZlNCdmRHaGxjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdGliMjlzWldGdWZWeHVJQ0FnS2k5Y2JpQWdaWEYxWVd4ektHOTBhR1Z5S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FnZkh3Z0lXOTBhR1Z5TG1selZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9JWFJvYVhNdWJHOWpMbVZ4ZFdGc2N5aHZkR2hsY2k1c2IyTXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWm5WdVkzUnBiMjRnWlhFb2RqRXNJSFl5S1NCN1hHNGdJQ0FnSUNBdkx5QkRiMjV6YVdSbGNpQXdJR0Z1WkNCMWJtUmxabWx1WldRZ1lYTWdaWEYxWVd4Y2JpQWdJQ0FnSUdsbUlDaDJNU0E5UFQwZ2RXNWtaV1pwYm1Wa0lIeDhJSFl4SUQwOVBTQXdLU0J5WlhSMWNtNGdkaklnUFQwOUlIVnVaR1ZtYVc1bFpDQjhmQ0IyTWlBOVBUMGdNRHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjJNU0E5UFQwZ2RqSTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQjFJRzltSUc5eVpHVnlaV1JWYm1sMGN5a2dlMXh1SUNBZ0lDQWdhV1lnS0NGbGNTaDBhR2x6TG5aaGJIVmxjMXQxWFN3Z2IzUm9aWEl1ZG1Gc2RXVnpXM1ZkS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNTlYRzRpTENBaWFXMXdiM0owSUVSaGRHVlVhVzFsTENCN0lHWnlhV1Z1Wkd4NVJHRjBaVlJwYldVZ2ZTQm1jbTl0SUZ3aUxpOWtZWFJsZEdsdFpTNXFjMXdpTzF4dWFXMXdiM0owSUVSMWNtRjBhVzl1SUdaeWIyMGdYQ0l1TDJSMWNtRjBhVzl1TG1welhDSTdYRzVwYlhCdmNuUWdVMlYwZEdsdVozTWdabkp2YlNCY0lpNHZjMlYwZEdsdVozTXVhbk5jSWp0Y2JtbHRjRzl5ZENCN0lFbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlMQ0JKYm5aaGJHbGtTVzUwWlhKMllXeEZjbkp2Y2lCOUlHWnliMjBnWENJdUwyVnljbTl5Y3k1cWMxd2lPMXh1YVcxd2IzSjBJRWx1ZG1Gc2FXUWdabkp2YlNCY0lpNHZhVzF3YkM5cGJuWmhiR2xrTG1welhDSTdYRzVjYm1OdmJuTjBJRWxPVmtGTVNVUWdQU0JjSWtsdWRtRnNhV1FnU1c1MFpYSjJZV3hjSWp0Y2JseHVMeThnWTJobFkydHpJR2xtSUhSb1pTQnpkR0Z5ZENCcGN5QmxjWFZoYkNCMGJ5QnZjaUJpWldadmNtVWdkR2hsSUdWdVpGeHVablZ1WTNScGIyNGdkbUZzYVdSaGRHVlRkR0Z5ZEVWdVpDaHpkR0Z5ZEN3Z1pXNWtLU0I3WEc0Z0lHbG1JQ2doYzNSaGNuUWdmSHdnSVhOMFlYSjBMbWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQnlaWFIxY200Z1NXNTBaWEoyWVd3dWFXNTJZV3hwWkNoY0ltMXBjM05wYm1jZ2IzSWdhVzUyWVd4cFpDQnpkR0Z5ZEZ3aUtUdGNiaUFnZlNCbGJITmxJR2xtSUNnaFpXNWtJSHg4SUNGbGJtUXVhWE5XWVd4cFpDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCSmJuUmxjblpoYkM1cGJuWmhiR2xrS0Z3aWJXbHpjMmx1WnlCdmNpQnBiblpoYkdsa0lHVnVaRndpS1R0Y2JpQWdmU0JsYkhObElHbG1JQ2hsYm1RZ1BDQnpkR0Z5ZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUJKYm5SbGNuWmhiQzVwYm5aaGJHbGtLRnh1SUNBZ0lDQWdYQ0psYm1RZ1ltVm1iM0psSUhOMFlYSjBYQ0lzWEc0Z0lDQWdJQ0JnVkdobElHVnVaQ0J2WmlCaGJpQnBiblJsY25aaGJDQnRkWE4wSUdKbElHRm1kR1Z5SUdsMGN5QnpkR0Z5ZEN3Z1luVjBJSGx2ZFNCb1lXUWdjM1JoY25ROUpIdHpkR0Z5ZEM1MGIwbFRUeWdwZlNCaGJtUWdaVzVrUFNSN1pXNWtMblJ2U1ZOUEtDbDlZRnh1SUNBZ0lDazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCQmJpQkpiblJsY25aaGJDQnZZbXBsWTNRZ2NtVndjbVZ6Wlc1MGN5QmhJR2hoYkdZdGIzQmxiaUJwYm5SbGNuWmhiQ0J2WmlCMGFXMWxMQ0IzYUdWeVpTQmxZV05vSUdWdVpIQnZhVzUwSUdseklHRWdlMEJzYVc1cklFUmhkR1ZVYVcxbGZTNGdRMjl1WTJWd2RIVmhiR3g1TENCcGRDZHpJR0VnWTI5dWRHRnBibVZ5SUdadmNpQjBhRzl6WlNCMGQyOGdaVzVrY0c5cGJuUnpMQ0JoWTJOdmJYQmhibWxsWkNCaWVTQnRaWFJvYjJSeklHWnZjaUJqY21WaGRHbHVaeXdnY0dGeWMybHVaeXdnYVc1MFpYSnliMmRoZEdsdVp5d2dZMjl0Y0dGeWFXNW5MQ0IwY21GdWMyWnZjbTFwYm1jc0lHRnVaQ0JtYjNKdFlYUjBhVzVuSUhSb1pXMHVYRzRnS2x4dUlDb2dTR1Z5WlNCcGN5QmhJR0p5YVdWbUlHOTJaWEoyYVdWM0lHOW1JSFJvWlNCdGIzTjBJR052YlcxdmJteDVJSFZ6WldRZ2JXVjBhRzlrY3lCaGJtUWdaMlYwZEdWeWN5QnBiaUJKYm5SbGNuWmhiRHBjYmlBcVhHNGdLaUFxSUNvcVEzSmxZWFJwYjI0cUtpQlVieUJqY21WaGRHVWdZVzRnU1c1MFpYSjJZV3dzSUhWelpTQjdRR3hwYm1zZ1NXNTBaWEoyWVd3alpuSnZiVVJoZEdWVWFXMWxjMzBzSUh0QWJHbHVheUJKYm5SbGNuWmhiQ05oWm5SbGNuMHNJSHRBYkdsdWF5QkpiblJsY25aaGJDTmlaV1p2Y21WOUxDQnZjaUI3UUd4cGJtc2dTVzUwWlhKMllXd2pabkp2YlVsVFQzMHVYRzRnS2lBcUlDb3FRV05qWlhOemIzSnpLaW9nVlhObElIdEFiR2x1YXlCSmJuUmxjblpoYkNOemRHRnlkSDBnWVc1a0lIdEFiR2x1YXlCSmJuUmxjblpoYkNObGJtUjlJSFJ2SUdkbGRDQjBhR1VnYzNSaGNuUWdZVzVrSUdWdVpDNWNiaUFxSUNvZ0tpcEpiblJsY25KdloyRjBhVzl1S2lvZ1ZHOGdZVzVoYkhsNlpTQjBhR1VnU1c1MFpYSjJZV3dzSUhWelpTQjdRR3hwYm1zZ1NXNTBaWEoyWVd3alkyOTFiblI5TENCN1FHeHBibXNnU1c1MFpYSjJZV3dqYkdWdVozUm9mU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJMmhoYzFOaGJXVjlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2pZMjl1ZEdGcGJuTjlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2phWE5CWm5SbGNuMHNJRzl5SUh0QWJHbHVheUJKYm5SbGNuWmhiQ05wYzBKbFptOXlaWDB1WEc0Z0tpQXFJQ29xVkhKaGJuTm1iM0p0WVhScGIyNHFLaUJVYnlCamNtVmhkR1VnYjNSb1pYSWdTVzUwWlhKMllXeHpJRzkxZENCdlppQjBhR2x6SUc5dVpTd2dkWE5sSUh0QWJHbHVheUJKYm5SbGNuWmhiQ056WlhSOUxDQjdRR3hwYm1zZ1NXNTBaWEoyWVd3amMzQnNhWFJCZEgwc0lIdEFiR2x1YXlCSmJuUmxjblpoYkNOemNHeHBkRUo1ZlN3Z2UwQnNhVzVySUVsdWRHVnlkbUZzSTJScGRtbGtaVVZ4ZFdGc2JIbDlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2piV1Z5WjJWOUxDQjdRR3hwYm1zZ1NXNTBaWEoyWVd3amVHOXlmU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJM1Z1YVc5dWZTd2dlMEJzYVc1cklFbHVkR1Z5ZG1Gc0kybHVkR1Z5YzJWamRHbHZibjBzSUc5eUlIdEFiR2x1YXlCSmJuUmxjblpoYkNOa2FXWm1aWEpsYm1ObGZTNWNiaUFxSUNvZ0tpcERiMjF3WVhKcGMyOXVLaW9nVkc4Z1kyOXRjR0Z5WlNCMGFHbHpJRWx1ZEdWeWRtRnNJSFJ2SUdGdWIzUm9aWElnYjI1bExDQjFjMlVnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJMlZ4ZFdGc2MzMHNJSHRBYkdsdWF5QkpiblJsY25aaGJDTnZkbVZ5YkdGd2MzMHNJSHRBYkdsdWF5QkpiblJsY25aaGJDTmhZblYwYzFOMFlYSjBmU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJMkZpZFhSelJXNWtmU3dnZTBCc2FXNXJJRWx1ZEdWeWRtRnNJMlZ1WjNWc1puTjlYRzRnS2lBcUlDb3FUM1YwY0hWMEtpb2dWRzhnWTI5dWRtVnlkQ0IwYUdVZ1NXNTBaWEoyWVd3Z2FXNTBieUJ2ZEdobGNpQnlaWEJ5WlhObGJuUmhkR2x2Ym5Nc0lITmxaU0I3UUd4cGJtc2dTVzUwWlhKMllXd2pkRzlUZEhKcGJtZDlMQ0I3UUd4cGJtc2dTVzUwWlhKMllXd2pkRzlKVTA5OUxDQjdRR3hwYm1zZ1NXNTBaWEoyWVd3amRHOUpVMDlFWVhSbGZTd2dlMEJzYVc1cklFbHVkR1Z5ZG1Gc0kzUnZTVk5QVkdsdFpYMHNJSHRBYkdsdWF5QkpiblJsY25aaGJDTjBiMFp2Y20xaGRIMHNJR0Z1WkNCN1FHeHBibXNnU1c1MFpYSjJZV3dqZEc5RWRYSmhkR2x2Ym4wdVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR05zWVhOeklFbHVkR1Z5ZG1Gc0lIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaGpiMjVtYVdjcElIdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxuTWdQU0JqYjI1bWFXY3VjM1JoY25RN1hHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FHRmpZMlZ6Y3lCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1bElEMGdZMjl1Wm1sbkxtVnVaRHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBWVdOalpYTnpJSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbWx1ZG1Gc2FXUWdQU0JqYjI1bWFXY3VhVzUyWVd4cFpDQjhmQ0J1ZFd4c08xeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQmhZMk5sYzNNZ2NISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWFYTk1kWGh2YmtsdWRHVnlkbUZzSUQwZ2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVc0Z2FXNTJZV3hwWkNCSmJuUmxjblpoYkM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSEpsWVhOdmJpQXRJSE5wYlhCc1pTQnpkSEpwYm1jZ2IyWWdkMmg1SUhSb2FYTWdTVzUwWlhKMllXd2dhWE1nYVc1MllXeHBaQzRnVTJodmRXeGtJRzV2ZENCamIyNTBZV2x1SUhCaGNtRnRaWFJsY25NZ2IzSWdZVzU1ZEdocGJtY2daV3h6WlNCa1lYUmhMV1JsY0dWdVpHVnVkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyVjRjR3hoYm1GMGFXOXVQVzUxYkd4ZElDMGdiRzl1WjJWeUlHVjRjR3hoYm1GMGFXOXVMQ0J0WVhrZ2FXNWpiSFZrWlNCd1lYSmhiV1YwWlhKeklHRnVaQ0J2ZEdobGNpQjFjMlZtZFd3Z1pHVmlkV2RuYVc1bklHbHVabTl5YldGMGFXOXVYRzRnSUNBcUlFQnlaWFIxY200Z2UwbHVkR1Z5ZG1Gc2ZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHbHVkbUZzYVdRb2NtVmhjMjl1TENCbGVIQnNZVzVoZEdsdmJpQTlJRzUxYkd3cElIdGNiaUFnSUNCcFppQW9JWEpsWVhOdmJpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZG1Gc2FXUkJjbWQxYldWdWRFVnljbTl5S0Z3aWJtVmxaQ0IwYnlCemNHVmphV1o1SUdFZ2NtVmhjMjl1SUhSb1pTQkpiblJsY25aaGJDQnBjeUJwYm5aaGJHbGtYQ0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHVkbUZzYVdRZ1BTQnlaV0Z6YjI0Z2FXNXpkR0Z1WTJWdlppQkpiblpoYkdsa0lEOGdjbVZoYzI5dUlEb2dibVYzSUVsdWRtRnNhV1FvY21WaGMyOXVMQ0JsZUhCc1lXNWhkR2x2YmlrN1hHNWNiaUFnSUNCcFppQW9VMlYwZEdsdVozTXVkR2h5YjNkUGJrbHVkbUZzYVdRcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblpoYkdsa1NXNTBaWEoyWVd4RmNuSnZjaWhwYm5aaGJHbGtLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkpiblJsY25aaGJDaDdJR2x1ZG1Gc2FXUWdmU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoYmlCSmJuUmxjblpoYkNCbWNtOXRJR0VnYzNSaGNuUWdSR0YwWlZScGJXVWdZVzVrSUdGdUlHVnVaQ0JFWVhSbFZHbHRaUzRnU1c1amJIVnphWFpsSUc5bUlIUm9aU0J6ZEdGeWRDQmlkWFFnYm05MElIUm9aU0JsYm1RdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y4UkdGMFpYeFBZbXBsWTNSOUlITjBZWEowWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjhSR0YwWlh4UFltcGxZM1I5SUdWdVpGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0SmJuUmxjblpoYkgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCbWNtOXRSR0YwWlZScGJXVnpLSE4wWVhKMExDQmxibVFwSUh0Y2JpQWdJQ0JqYjI1emRDQmlkV2xzZEZOMFlYSjBJRDBnWm5KcFpXNWtiSGxFWVhSbFZHbHRaU2h6ZEdGeWRDa3NYRzRnSUNBZ0lDQmlkV2xzZEVWdVpDQTlJR1p5YVdWdVpHeDVSR0YwWlZScGJXVW9aVzVrS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFpoYkdsa1lYUmxSWEp5YjNJZ1BTQjJZV3hwWkdGMFpWTjBZWEowUlc1a0tHSjFhV3gwVTNSaGNuUXNJR0oxYVd4MFJXNWtLVHRjYmx4dUlDQWdJR2xtSUNoMllXeHBaR0YwWlVWeWNtOXlJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSjJZV3dvZTF4dUlDQWdJQ0FnSUNCemRHRnlkRG9nWW5WcGJIUlRkR0Z5ZEN4Y2JpQWdJQ0FnSUNBZ1pXNWtPaUJpZFdsc2RFVnVaQ3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RtRnNhV1JoZEdWRmNuSnZjanRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0Z1SUVsdWRHVnlkbUZzSUdaeWIyMGdZU0J6ZEdGeWRDQkVZWFJsVkdsdFpTQmhibVFnWVNCRWRYSmhkR2x2YmlCMGJ5QmxlSFJsYm1RZ2RHOHVYRzRnSUNBcUlFQndZWEpoYlNCN1JHRjBaVlJwYldWOFJHRjBaWHhQWW1wbFkzUjlJSE4wWVhKMFhHNGdJQ0FxSUVCd1lYSmhiU0I3UkhWeVlYUnBiMjU4VDJKcVpXTjBmRzUxYldKbGNuMGdaSFZ5WVhScGIyNGdMU0IwYUdVZ2JHVnVaM1JvSUc5bUlIUm9aU0JKYm5SbGNuWmhiQzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdTVzUwWlhKMllXeDlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdZV1owWlhJb2MzUmhjblFzSUdSMWNtRjBhVzl1S1NCN1hHNGdJQ0FnWTI5dWMzUWdaSFZ5SUQwZ1JIVnlZWFJwYjI0dVpuSnZiVVIxY21GMGFXOXVUR2xyWlNoa2RYSmhkR2x2Ymlrc1hHNGdJQ0FnSUNCa2RDQTlJR1p5YVdWdVpHeDVSR0YwWlZScGJXVW9jM1JoY25RcE8xeHVJQ0FnSUhKbGRIVnliaUJKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektHUjBMQ0JrZEM1d2JIVnpLR1IxY2lrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhiaUJKYm5SbGNuWmhiQ0JtY205dElHRnVJR1Z1WkNCRVlYUmxWR2x0WlNCaGJtUWdZU0JFZFhKaGRHbHZiaUIwYnlCbGVIUmxibVFnWW1GamEzZGhjbVJ6SUhSdkxseHVJQ0FnS2lCQWNHRnlZVzBnZTBSaGRHVlVhVzFsZkVSaGRHVjhUMkpxWldOMGZTQmxibVJjYmlBZ0lDb2dRSEJoY21GdElIdEVkWEpoZEdsdmJueFBZbXBsWTNSOGJuVnRZbVZ5ZlNCa2RYSmhkR2x2YmlBdElIUm9aU0JzWlc1bmRHZ2diMllnZEdobElFbHVkR1Z5ZG1Gc0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0SmJuUmxjblpoYkgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCaVpXWnZjbVVvWlc1a0xDQmtkWEpoZEdsdmJpa2dlMXh1SUNBZ0lHTnZibk4wSUdSMWNpQTlJRVIxY21GMGFXOXVMbVp5YjIxRWRYSmhkR2x2Ymt4cGEyVW9aSFZ5WVhScGIyNHBMRnh1SUNBZ0lDQWdaSFFnUFNCbWNtbGxibVJzZVVSaGRHVlVhVzFsS0dWdVpDazdYRzRnSUNBZ2NtVjBkWEp1SUVsdWRHVnlkbUZzTG1aeWIyMUVZWFJsVkdsdFpYTW9aSFF1YldsdWRYTW9aSFZ5S1N3Z1pIUXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoYmlCSmJuUmxjblpoYkNCbWNtOXRJR0Z1SUVsVFR5QTROakF4SUhOMGNtbHVaeTVjYmlBZ0lDb2dRV05qWlhCMGN5QmdQSE4wWVhKMFBpODhaVzVrUG1Bc0lHQThjM1JoY25RK0x6eGtkWEpoZEdsdmJqNWdMQ0JoYm1RZ1lEeGtkWEpoZEdsdmJqNHZQR1Z1WkQ1Z0lHWnZjbTFoZEhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWlhoMElDMGdkR2hsSUVsVFR5QnpkSEpwYm1jZ2RHOGdjR0Z5YzJWY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRnR2Y0hSelhTQXRJRzl3ZEdsdmJuTWdkRzhnY0dGemN5QjdRR3hwYm1zZ1JHRjBaVlJwYldValpuSnZiVWxUVDMwZ1lXNWtJRzl3ZEdsdmJtRnNiSGtnZTBCc2FXNXJJRVIxY21GMGFXOXVJMlp5YjIxSlUwOTlYRzRnSUNBcUlFQnpaV1VnYUhSMGNITTZMeTlsYmk1M2FXdHBjR1ZrYVdFdWIzSm5MM2RwYTJrdlNWTlBYemcyTURFalZHbHRaVjlwYm5SbGNuWmhiSE5jYmlBZ0lDb2dRSEpsZEhWeWJpQjdTVzUwWlhKMllXeDlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlVsVFR5aDBaWGgwTENCdmNIUnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czTXNJR1ZkSUQwZ0tIUmxlSFFnZkh3Z1hDSmNJaWt1YzNCc2FYUW9YQ0l2WENJc0lESXBPMXh1SUNBZ0lHbG1JQ2h6SUNZbUlHVXBJSHRjYmlBZ0lDQWdJR3hsZENCemRHRnlkQ3dnYzNSaGNuUkpjMVpoYkdsa08xeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnYzNSaGNuUWdQU0JFWVhSbFZHbHRaUzVtY205dFNWTlBLSE1zSUc5d2RITXBPMXh1SUNBZ0lDQWdJQ0J6ZEdGeWRFbHpWbUZzYVdRZ1BTQnpkR0Z5ZEM1cGMxWmhiR2xrTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ0lDQnpkR0Z5ZEVselZtRnNhV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYkdWMElHVnVaQ3dnWlc1a1NYTldZV3hwWkR0Y2JpQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJR1Z1WkNBOUlFUmhkR1ZVYVcxbExtWnliMjFKVTA4b1pTd2diM0IwY3lrN1hHNGdJQ0FnSUNBZ0lHVnVaRWx6Vm1Gc2FXUWdQU0JsYm1RdWFYTldZV3hwWkR0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIdGNiaUFnSUNBZ0lDQWdaVzVrU1hOV1lXeHBaQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2MzUmhjblJKYzFaaGJHbGtJQ1ltSUdWdVpFbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vYzNSaGNuUXNJR1Z1WkNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2h6ZEdGeWRFbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pIVnlJRDBnUkhWeVlYUnBiMjR1Wm5KdmJVbFRUeWhsTENCdmNIUnpLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUjFjaTVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVsdWRHVnlkbUZzTG1GbWRHVnlLSE4wWVhKMExDQmtkWElwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHVnVaRWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaSFZ5SUQwZ1JIVnlZWFJwYjI0dVpuSnZiVWxUVHloekxDQnZjSFJ6S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1IxY2k1cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtSmxabTl5WlNobGJtUXNJR1IxY2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRWx1ZEdWeWRtRnNMbWx1ZG1Gc2FXUW9YQ0oxYm5CaGNuTmhZbXhsWENJc0lHQjBhR1VnYVc1d2RYUWdYQ0lrZTNSbGVIUjlYQ0lnWTJGdUozUWdZbVVnY0dGeWMyVmtJR0Z6SUVsVFR5QTROakF4WUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMmhsWTJzZ2FXWWdZVzRnYjJKcVpXTjBJR2x6SUdGdUlFbHVkR1Z5ZG1Gc0xpQlhiM0pyY3lCaFkzSnZjM01nWTI5dWRHVjRkQ0JpYjNWdVpHRnlhV1Z6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiMkpxWldOMGZTQnZYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2FYTkpiblJsY25aaGJDaHZLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHZJQ1ltSUc4dWFYTk1kWGh2YmtsdWRHVnlkbUZzS1NCOGZDQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklIUm9aU0J6ZEdGeWRDQnZaaUIwYUdVZ1NXNTBaWEoyWVd4Y2JpQWdJQ29nUUhSNWNHVWdlMFJoZEdWVWFXMWxmVnh1SUNBZ0tpOWNiaUFnWjJWMElITjBZWEowS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5NZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2RHaGxJR1Z1WkNCdlppQjBhR1VnU1c1MFpYSjJZV3hjYmlBZ0lDb2dRSFI1Y0dVZ2UwUmhkR1ZVYVcxbGZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdWdVpDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVwYzFaaGJHbGtJRDhnZEdocGN5NWxJRG9nYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSGRvWlhSb1pYSWdkR2hwY3lCSmJuUmxjblpoYkNkeklHVnVaQ0JwY3lCaGRDQnNaV0Z6ZENCcGRITWdjM1JoY25Rc0lHMWxZVzVwYm1jZ2RHaGhkQ0IwYUdVZ1NXNTBaWEoyWVd3Z2FYTnVKM1FnSjJKaFkydDNZWEprY3ljdVhHNGdJQ0FxSUVCMGVYQmxJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnWjJWMElHbHpWbUZzYVdRb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhVzUyWVd4cFpGSmxZWE52YmlBOVBUMGdiblZzYkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJR1Z5Y205eUlHTnZaR1VnYVdZZ2RHaHBjeUJKYm5SbGNuWmhiQ0JwY3lCcGJuWmhiR2xrTENCdmNpQnVkV3hzSUdsbUlIUm9aU0JKYm5SbGNuWmhiQ0JwY3lCMllXeHBaRnh1SUNBZ0tpQkFkSGx3WlNCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ1oyVjBJR2x1ZG1Gc2FXUlNaV0Z6YjI0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhVzUyWVd4cFpDQS9JSFJvYVhNdWFXNTJZV3hwWkM1eVpXRnpiMjRnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVc0Z1pYaHdiR0Z1WVhScGIyNGdiMllnZDJoNUlIUm9hWE1nU1c1MFpYSjJZV3dnWW1WallXMWxJR2x1ZG1Gc2FXUXNJRzl5SUc1MWJHd2dhV1lnZEdobElFbHVkR1Z5ZG1Gc0lHbHpJSFpoYkdsa1hHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2FXNTJZV3hwWkVWNGNHeGhibUYwYVc5dUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx1ZG1Gc2FXUWdQeUIwYUdsekxtbHVkbUZzYVdRdVpYaHdiR0Z1WVhScGIyNGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdkR2hsSUd4bGJtZDBhQ0J2WmlCMGFHVWdTVzUwWlhKMllXd2dhVzRnZEdobElITndaV05wWm1sbFpDQjFibWwwTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkVzVwZENBdElIUm9aU0IxYm1sMElDaHpkV05vSUdGeklDZG9iM1Z5Y3ljZ2IzSWdKMlJoZVhNbktTQjBieUJ5WlhSMWNtNGdkR2hsSUd4bGJtZDBhQ0JwYmk1Y2JpQWdJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnYkdWdVozUm9LSFZ1YVhRZ1BTQmNJbTFwYkd4cGMyVmpiMjVrYzF3aUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JSFJvYVhNdWRHOUVkWEpoZEdsdmJpZ3VMaTViZFc1cGRGMHBMbWRsZENoMWJtbDBLU0E2SUU1aFRqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJvWlNCamIzVnVkQ0J2WmlCdGFXNTFkR1Z6TENCb2IzVnljeXdnWkdGNWN5d2diVzl1ZEdoekxDQnZjaUI1WldGeWN5QnBibU5zZFdSbFpDQnBiaUIwYUdVZ1NXNTBaWEoyWVd3c0lHVjJaVzRnYVc0Z2NHRnlkQzVjYmlBZ0lDb2dWVzVzYVd0bElIdEFiR2x1YXlCSmJuUmxjblpoYkNOc1pXNW5kR2g5SUhSb2FYTWdZMjkxYm5SeklITmxZM1JwYjI1eklHOW1JSFJvWlNCallXeGxibVJoY2l3Z2JtOTBJSEJsY21sdlpITWdiMllnZEdsdFpTd2daUzVuTGlCemNHVmphV1o1YVc1bklDZGtZWGtuWEc0Z0lDQXFJR0Z6YTNNZ0ozZG9ZWFFnWkdGMFpYTWdZWEpsSUdsdVkyeDFaR1ZrSUdsdUlIUm9hWE1nYVc1MFpYSjJZV3cvSnl3Z2JtOTBJQ2RvYjNjZ2JXRnVlU0JrWVhseklHeHZibWNnYVhNZ2RHaHBjeUJwYm5SbGNuWmhiRDhuWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJkVzVwZEQwbmJXbHNiR2x6WldOdmJtUnpKMTBnTFNCMGFHVWdkVzVwZENCdlppQjBhVzFsSUhSdklHTnZkVzUwTGx4dUlDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JqYjNWdWRDaDFibWwwSUQwZ1hDSnRhV3hzYVhObFkyOXVaSE5jSWlrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnVG1GT08xeHVJQ0FnSUdOdmJuTjBJSE4wWVhKMElEMGdkR2hwY3k1emRHRnlkQzV6ZEdGeWRFOW1LSFZ1YVhRcExGeHVJQ0FnSUNBZ1pXNWtJRDBnZEdocGN5NWxibVF1YzNSaGNuUlBaaWgxYm1sMEtUdGNiaUFnSUNCeVpYUjFjbTRnVFdGMGFDNW1iRzl2Y2lobGJtUXVaR2xtWmloemRHRnlkQ3dnZFc1cGRDa3VaMlYwS0hWdWFYUXBLU0FySURFN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QjNhR1YwYUdWeUlIUm9hWE1nU1c1MFpYSjJZV3duY3lCemRHRnlkQ0JoYm1RZ1pXNWtJR0Z5WlNCaWIzUm9JR2x1SUhSb1pTQnpZVzFsSUhWdWFYUWdiMllnZEdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRDQXRJSFJvWlNCMWJtbDBJRzltSUhScGJXVWdkRzhnWTJobFkyc2djMkZ0Wlc1bGMzTWdiMjVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJR2hoYzFOaGJXVW9kVzVwZENrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG1selJXMXdkSGtvS1NCOGZDQjBhR2x6TG1VdWJXbHVkWE1vTVNrdWFHRnpVMkZ0WlNoMGFHbHpMbk1zSUhWdWFYUXBJRG9nWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSGRvWlhSb1pYSWdkR2hwY3lCSmJuUmxjblpoYkNCb1lYTWdkR2hsSUhOaGJXVWdjM1JoY25RZ1lXNWtJR1Z1WkNCRVlYUmxWR2x0WlhNdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCcGMwVnRjSFI1S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTXVkbUZzZFdWUFppZ3BJRDA5UFNCMGFHbHpMbVV1ZG1Gc2RXVlBaaWdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCM2FHVjBhR1Z5SUhSb2FYTWdTVzUwWlhKMllXd25jeUJ6ZEdGeWRDQnBjeUJoWm5SbGNpQjBhR1VnYzNCbFkybG1hV1ZrSUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMFJoZEdWVWFXMWxmU0JrWVhSbFZHbHRaVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdGliMjlzWldGdWZWeHVJQ0FnS2k5Y2JpQWdhWE5CWm5SbGNpaGtZWFJsVkdsdFpTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y3lBK0lHUmhkR1ZVYVcxbE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9hWE1nU1c1MFpYSjJZV3duY3lCbGJtUWdhWE1nWW1WbWIzSmxJSFJvWlNCemNHVmphV1pwWldRZ1JHRjBaVlJwYldVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkdGMFpWUnBiV1Y5SUdSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JwYzBKbFptOXlaU2hrWVhSbFZHbHRaU2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpTQThQU0JrWVhSbFZHbHRaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZDJobGRHaGxjaUIwYUdseklFbHVkR1Z5ZG1Gc0lHTnZiblJoYVc1eklIUm9aU0J6Y0dWamFXWnBaV1FnUkdGMFpWUnBiV1V1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjlJR1JoZEdWVWFXMWxYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQmpiMjUwWVdsdWN5aGtZWFJsVkdsdFpTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y3lBOFBTQmtZWFJsVkdsdFpTQW1KaUIwYUdsekxtVWdQaUJrWVhSbFZHbHRaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCY0lsTmxkSE5jSWlCMGFHVWdjM1JoY25RZ1lXNWtMMjl5SUdWdVpDQmtZWFJsY3k0Z1VtVjBkWEp1Y3lCaElHNWxkMng1TFdOdmJuTjBjblZqZEdWa0lFbHVkR1Z5ZG1Gc0xseHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnZG1Gc2RXVnpJQzBnZEdobElIWmhiSFZsY3lCMGJ5QnpaWFJjYmlBZ0lDb2dRSEJoY21GdElIdEVZWFJsVkdsdFpYMGdkbUZzZFdWekxuTjBZWEowSUMwZ2RHaGxJSE4wWVhKMGFXNW5JRVJoZEdWVWFXMWxYRzRnSUNBcUlFQndZWEpoYlNCN1JHRjBaVlJwYldWOUlIWmhiSFZsY3k1bGJtUWdMU0IwYUdVZ1pXNWthVzVuSUVSaGRHVlVhVzFsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMGx1ZEdWeWRtRnNmVnh1SUNBZ0tpOWNiaUFnYzJWMEtIc2djM1JoY25Rc0lHVnVaQ0I5SUQwZ2UzMHBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vYzNSaGNuUWdmSHdnZEdocGN5NXpMQ0JsYm1RZ2ZId2dkR2hwY3k1bEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0d4cGRDQjBhR2x6SUVsdWRHVnlkbUZzSUdGMElHVmhZMmdnYjJZZ2RHaGxJSE53WldOcFptbGxaQ0JFWVhSbFZHbHRaWE5jYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVFWVhSbFZHbHRaWDBnWkdGMFpWUnBiV1Z6SUMwZ2RHaGxJSFZ1YVhRZ2IyWWdkR2x0WlNCMGJ5QmpiM1Z1ZEM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UVhKeVlYbDlYRzRnSUNBcUwxeHVJQ0J6Y0d4cGRFRjBLQzR1TG1SaGRHVlVhVzFsY3lrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnWTI5dWMzUWdjMjl5ZEdWa0lEMGdaR0YwWlZScGJXVnpYRzRnSUNBZ0lDQWdJQzV0WVhBb1puSnBaVzVrYkhsRVlYUmxWR2x0WlNsY2JpQWdJQ0FnSUNBZ0xtWnBiSFJsY2lnb1pDa2dQVDRnZEdocGN5NWpiMjUwWVdsdWN5aGtLU2xjYmlBZ0lDQWdJQ0FnTG5OdmNuUW9LU3hjYmlBZ0lDQWdJSEpsYzNWc2RITWdQU0JiWFR0Y2JpQWdJQ0JzWlhRZ2V5QnpJSDBnUFNCMGFHbHpMRnh1SUNBZ0lDQWdhU0E5SURBN1hHNWNiaUFnSUNCM2FHbHNaU0FvY3lBOElIUm9hWE11WlNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWVdSa1pXUWdQU0J6YjNKMFpXUmJhVjBnZkh3Z2RHaHBjeTVsTEZ4dUlDQWdJQ0FnSUNCdVpYaDBJRDBnSzJGa1pHVmtJRDRnSzNSb2FYTXVaU0EvSUhSb2FYTXVaU0E2SUdGa1pHVmtPMXh1SUNBZ0lDQWdjbVZ6ZFd4MGN5NXdkWE5vS0VsdWRHVnlkbUZzTG1aeWIyMUVZWFJsVkdsdFpYTW9jeXdnYm1WNGRDa3BPMXh1SUNBZ0lDQWdjeUE5SUc1bGVIUTdYRzRnSUNBZ0lDQnBJQ3M5SURFN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2RITTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVTNCc2FYUWdkR2hwY3lCSmJuUmxjblpoYkNCcGJuUnZJSE50WVd4c1pYSWdTVzUwWlhKMllXeHpMQ0JsWVdOb0lHOW1JSFJvWlNCemNHVmphV1pwWldRZ2JHVnVaM1JvTGx4dUlDQWdLaUJNWldaMElHOTJaWElnZEdsdFpTQnBjeUJuY205MWNHVmtJR2x1ZEc4Z1lTQnpiV0ZzYkdWeUlHbHVkR1Z5ZG1Gc1hHNGdJQ0FxSUVCd1lYSmhiU0I3UkhWeVlYUnBiMjU4VDJKcVpXTjBmRzUxYldKbGNuMGdaSFZ5WVhScGIyNGdMU0JVYUdVZ2JHVnVaM1JvSUc5bUlHVmhZMmdnY21WemRXeDBhVzVuSUdsdWRHVnlkbUZzTGx4dUlDQWdLaUJBY21WMGRYSnVJSHRCY25KaGVYMWNiaUFnSUNvdlhHNGdJSE53YkdsMFFua29aSFZ5WVhScGIyNHBJSHRjYmlBZ0lDQmpiMjV6ZENCa2RYSWdQU0JFZFhKaGRHbHZiaTVtY205dFJIVnlZWFJwYjI1TWFXdGxLR1IxY21GMGFXOXVLVHRjYmx4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtJSHg4SUNGa2RYSXVhWE5XWVd4cFpDQjhmQ0JrZFhJdVlYTW9YQ0p0YVd4c2FYTmxZMjl1WkhOY0lpa2dQVDA5SURBcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCYlhUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc1pYUWdleUJ6SUgwZ1BTQjBhR2x6TEZ4dUlDQWdJQ0FnYVdSNElEMGdNU3hjYmlBZ0lDQWdJRzVsZUhRN1hHNWNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUnpJRDBnVzEwN1hHNGdJQ0FnZDJocGJHVWdLSE1nUENCMGFHbHpMbVVwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR0ZrWkdWa0lEMGdkR2hwY3k1emRHRnlkQzV3YkhWektHUjFjaTV0WVhCVmJtbDBjeWdvZUNrZ1BUNGdlQ0FxSUdsa2VDa3BPMXh1SUNBZ0lDQWdibVY0ZENBOUlDdGhaR1JsWkNBK0lDdDBhR2x6TG1VZ1B5QjBhR2x6TG1VZ09pQmhaR1JsWkR0Y2JpQWdJQ0FnSUhKbGMzVnNkSE11Y0hWemFDaEpiblJsY25aaGJDNW1jbTl0UkdGMFpWUnBiV1Z6S0hNc0lHNWxlSFFwS1R0Y2JpQWdJQ0FnSUhNZ1BTQnVaWGgwTzF4dUlDQWdJQ0FnYVdSNElDczlJREU3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZEhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVM0JzYVhRZ2RHaHBjeUJKYm5SbGNuWmhiQ0JwYm5SdklIUm9aU0J6Y0dWamFXWnBaV1FnYm5WdFltVnlJRzltSUhOdFlXeHNaWElnYVc1MFpYSjJZV3h6TGx4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiblZ0WW1WeVQyWlFZWEowY3lBdElGUm9aU0J1ZFcxaVpYSWdiMllnU1c1MFpYSjJZV3h6SUhSdklHUnBkbWxrWlNCMGFHVWdTVzUwWlhKMllXd2dhVzUwYnk1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UVhKeVlYbDlYRzRnSUNBcUwxeHVJQ0JrYVhacFpHVkZjWFZoYkd4NUtHNTFiV0psY2s5bVVHRnlkSE1wSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJRnRkTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5Od2JHbDBRbmtvZEdocGN5NXNaVzVuZEdnb0tTQXZJRzUxYldKbGNrOW1VR0Z5ZEhNcExuTnNhV05sS0RBc0lHNTFiV0psY2s5bVVHRnlkSE1wTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCM2FHVjBhR1Z5SUhSb2FYTWdTVzUwWlhKMllXd2diM1psY214aGNITWdkMmwwYUNCMGFHVWdjM0JsWTJsbWFXVmtJRWx1ZEdWeWRtRnNYRzRnSUNBcUlFQndZWEpoYlNCN1NXNTBaWEoyWVd4OUlHOTBhR1Z5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J2ZG1WeWJHRndjeWh2ZEdobGNpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVVnUGlCdmRHaGxjaTV6SUNZbUlIUm9hWE11Y3lBOElHOTBhR1Z5TG1VN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIZG9aWFJvWlhJZ2RHaHBjeUJKYm5SbGNuWmhiQ2R6SUdWdVpDQnBjeUJoWkdwaFkyVnVkQ0IwYnlCMGFHVWdjM0JsWTJsbWFXVmtJRWx1ZEdWeWRtRnNKM01nYzNSaGNuUXVYRzRnSUNBcUlFQndZWEpoYlNCN1NXNTBaWEoyWVd4OUlHOTBhR1Z5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JoWW5WMGMxTjBZWEowS0c5MGFHVnlLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0J5WlhSMWNtNGdLM1JvYVhNdVpTQTlQVDBnSzI5MGFHVnlMbk03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhkb1pYUm9aWElnZEdocGN5QkpiblJsY25aaGJDZHpJSE4wWVhKMElHbHpJR0ZrYW1GalpXNTBJSFJ2SUhSb1pTQnpjR1ZqYVdacFpXUWdTVzUwWlhKMllXd25jeUJsYm1RdVhHNGdJQ0FxSUVCd1lYSmhiU0I3U1c1MFpYSjJZV3g5SUc5MGFHVnlYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQmhZblYwYzBWdVpDaHZkR2hsY2lrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2NtVjBkWEp1SUN0dmRHaGxjaTVsSUQwOVBTQXJkR2hwY3k1ek8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9hWE1nU1c1MFpYSjJZV3dnWlc1bmRXeG1jeUIwYUdVZ2MzUmhjblFnWVc1a0lHVnVaQ0J2WmlCMGFHVWdjM0JsWTJsbWFXVmtJRWx1ZEdWeWRtRnNMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwbHVkR1Z5ZG1Gc2ZTQnZkR2hsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmVnh1SUNBZ0tpOWNiaUFnWlc1bmRXeG1jeWh2ZEdobGNpa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y3lBOFBTQnZkR2hsY2k1eklDWW1JSFJvYVhNdVpTQStQU0J2ZEdobGNpNWxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvYVhNZ1NXNTBaWEoyWVd3Z2FHRnpJSFJvWlNCellXMWxJSE4wWVhKMElHRnVaQ0JsYm1RZ1lYTWdkR2hsSUhOd1pXTnBabWxsWkNCSmJuUmxjblpoYkM1Y2JpQWdJQ29nUUhCaGNtRnRJSHRKYm5SbGNuWmhiSDBnYjNSb1pYSmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1ltOXZiR1ZoYm4xY2JpQWdJQ292WEc0Z0lHVnhkV0ZzY3lodmRHaGxjaWtnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtJSHg4SUNGdmRHaGxjaTVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWN5NWxjWFZoYkhNb2IzUm9aWEl1Y3lrZ0ppWWdkR2hwY3k1bExtVnhkV0ZzY3lodmRHaGxjaTVsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z1lXNGdTVzUwWlhKMllXd2djbVZ3Y21WelpXNTBhVzVuSUhSb1pTQnBiblJsY25ObFkzUnBiMjRnYjJZZ2RHaHBjeUJKYm5SbGNuWmhiQ0JoYm1RZ2RHaGxJSE53WldOcFptbGxaQ0JKYm5SbGNuWmhiQzVjYmlBZ0lDb2dVM0JsWTJsbWFXTmhiR3g1TENCMGFHVWdjbVZ6ZFd4MGFXNW5JRWx1ZEdWeWRtRnNJR2hoY3lCMGFHVWdiV0Y0YVcxMWJTQnpkR0Z5ZENCMGFXMWxJR0Z1WkNCMGFHVWdiV2x1YVcxMWJTQmxibVFnZEdsdFpTQnZaaUIwYUdVZ2RIZHZJRWx1ZEdWeWRtRnNjeTVjYmlBZ0lDb2dVbVYwZFhKdWN5QnVkV3hzSUdsbUlIUm9aU0JwYm5SbGNuTmxZM1JwYjI0Z2FYTWdaVzF3ZEhrc0lHMWxZVzVwYm1jc0lIUm9aU0JwYm5SbGNuWmhiSE1nWkc5dUozUWdhVzUwWlhKelpXTjBMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwbHVkR1Z5ZG1Gc2ZTQnZkR2hsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHRKYm5SbGNuWmhiSDFjYmlBZ0lDb3ZYRzRnSUdsdWRHVnljMlZqZEdsdmJpaHZkR2hsY2lrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCamIyNXpkQ0J6SUQwZ2RHaHBjeTV6SUQ0Z2IzUm9aWEl1Y3lBL0lIUm9hWE11Y3lBNklHOTBhR1Z5TG5Nc1hHNGdJQ0FnSUNCbElEMGdkR2hwY3k1bElEd2diM1JvWlhJdVpTQS9JSFJvYVhNdVpTQTZJRzkwYUdWeUxtVTdYRzVjYmlBZ0lDQnBaaUFvY3lBK1BTQmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vY3l3Z1pTazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQmhiaUJKYm5SbGNuWmhiQ0J5WlhCeVpYTmxiblJwYm1jZ2RHaGxJSFZ1YVc5dUlHOW1JSFJvYVhNZ1NXNTBaWEoyWVd3Z1lXNWtJSFJvWlNCemNHVmphV1pwWldRZ1NXNTBaWEoyWVd3dVhHNGdJQ0FxSUZOd1pXTnBabWxqWVd4c2VTd2dkR2hsSUhKbGMzVnNkR2x1WnlCSmJuUmxjblpoYkNCb1lYTWdkR2hsSUcxcGJtbHRkVzBnYzNSaGNuUWdkR2x0WlNCaGJtUWdkR2hsSUcxaGVHbHRkVzBnWlc1a0lIUnBiV1VnYjJZZ2RHaGxJSFIzYnlCSmJuUmxjblpoYkhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3U1c1MFpYSjJZV3g5SUc5MGFHVnlYRzRnSUNBcUlFQnlaWFIxY200Z2UwbHVkR1Z5ZG1Gc2ZWeHVJQ0FnS2k5Y2JpQWdkVzVwYjI0b2IzUm9aWElwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnWTI5dWMzUWdjeUE5SUhSb2FYTXVjeUE4SUc5MGFHVnlMbk1nUHlCMGFHbHpMbk1nT2lCdmRHaGxjaTV6TEZ4dUlDQWdJQ0FnWlNBOUlIUm9hWE11WlNBK0lHOTBhR1Z5TG1VZ1B5QjBhR2x6TG1VZ09pQnZkR2hsY2k1bE8xeHVJQ0FnSUhKbGRIVnliaUJKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektITXNJR1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFMWxjbWRsSUdGdUlHRnljbUY1SUc5bUlFbHVkR1Z5ZG1Gc2N5QnBiblJ2SUdFZ1pYRjFhWFpoYkdWdWRDQnRhVzVwYldGc0lITmxkQ0J2WmlCSmJuUmxjblpoYkhNdVhHNGdJQ0FxSUVOdmJXSnBibVZ6SUc5MlpYSnNZWEJ3YVc1bklHRnVaQ0JoWkdwaFkyVnVkQ0JKYm5SbGNuWmhiSE11WEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHbHVkR1Z5ZG1Gc2MxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ0WlhKblpTaHBiblJsY25aaGJITXBJSHRjYmlBZ0lDQmpiMjV6ZENCYlptOTFibVFzSUdacGJtRnNYU0E5SUdsdWRHVnlkbUZzYzF4dUlDQWdJQ0FnTG5OdmNuUW9LR0VzSUdJcElEMCtJR0V1Y3lBdElHSXVjeWxjYmlBZ0lDQWdJQzV5WldSMVkyVW9YRzRnSUNBZ0lDQWdJQ2hiYzI5bVlYSXNJR04xY25KbGJuUmRMQ0JwZEdWdEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZqZFhKeVpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1czTnZabUZ5TENCcGRHVnRYVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHTjFjbkpsYm5RdWIzWmxjbXhoY0hNb2FYUmxiU2tnZkh3Z1kzVnljbVZ1ZEM1aFluVjBjMU4wWVhKMEtHbDBaVzBwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdXM052Wm1GeUxDQmpkWEp5Wlc1MExuVnVhVzl1S0dsMFpXMHBYVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGdHpiMlpoY2k1amIyNWpZWFFvVzJOMWNuSmxiblJkS1N3Z2FYUmxiVjA3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0JiVzEwc0lHNTFiR3hkWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJR2xtSUNobWFXNWhiQ2tnZTF4dUlDQWdJQ0FnWm05MWJtUXVjSFZ6YUNobWFXNWhiQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCbWIzVnVaRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnWVc0Z1lYSnlZWGtnYjJZZ1NXNTBaWEoyWVd4eklISmxjSEpsYzJWdWRHbHVaeUIwYUdVZ2MzQmhibk1nYjJZZ2RHbHRaU0IwYUdGMElHOXViSGtnWVhCd1pXRnlJR2x1SUc5dVpTQnZaaUIwYUdVZ2MzQmxZMmxtYVdWa0lFbHVkR1Z5ZG1Gc2N5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnYVc1MFpYSjJZV3h6WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMEZ5Y21GNWZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklIaHZjaWhwYm5SbGNuWmhiSE1wSUh0Y2JpQWdJQ0JzWlhRZ2MzUmhjblFnUFNCdWRXeHNMRnh1SUNBZ0lDQWdZM1Z5Y21WdWRFTnZkVzUwSUQwZ01EdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUnpJRDBnVzEwc1hHNGdJQ0FnSUNCbGJtUnpJRDBnYVc1MFpYSjJZV3h6TG0xaGNDZ29hU2tnUFQ0Z1cxeHVJQ0FnSUNBZ0lDQjdJSFJwYldVNklHa3VjeXdnZEhsd1pUb2dYQ0p6WENJZ2ZTeGNiaUFnSUNBZ0lDQWdleUIwYVcxbE9pQnBMbVVzSUhSNWNHVTZJRndpWlZ3aUlIMHNYRzRnSUNBZ0lDQmRLU3hjYmlBZ0lDQWdJR1pzWVhSMFpXNWxaQ0E5SUVGeWNtRjVMbkJ5YjNSdmRIbHdaUzVqYjI1allYUW9MaTR1Wlc1a2N5a3NYRzRnSUNBZ0lDQmhjbklnUFNCbWJHRjBkR1Z1WldRdWMyOXlkQ2dvWVN3Z1lpa2dQVDRnWVM1MGFXMWxJQzBnWWk1MGFXMWxLVHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQmhjbklwSUh0Y2JpQWdJQ0FnSUdOMWNuSmxiblJEYjNWdWRDQXJQU0JwTG5SNWNHVWdQVDA5SUZ3aWMxd2lJRDhnTVNBNklDMHhPMXh1WEc0Z0lDQWdJQ0JwWmlBb1kzVnljbVZ1ZEVOdmRXNTBJRDA5UFNBeEtTQjdYRzRnSUNBZ0lDQWdJSE4wWVhKMElEMGdhUzUwYVcxbE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE4wWVhKMElDWW1JQ3R6ZEdGeWRDQWhQVDBnSzJrdWRHbHRaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEhNdWNIVnphQ2hKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektITjBZWEowTENCcExuUnBiV1VwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSE4wWVhKMElEMGdiblZzYkR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdTVzUwWlhKMllXd3ViV1Z5WjJVb2NtVnpkV3gwY3lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlHRnVJRWx1ZEdWeWRtRnNJSEpsY0hKbGMyVnVkR2x1WnlCMGFHVWdjM0JoYmlCdlppQjBhVzFsSUdsdUlIUm9hWE1nU1c1MFpYSjJZV3dnZEdoaGRDQmtiMlZ6YmlkMElHOTJaWEpzWVhBZ2QybDBhQ0JoYm5rZ2IyWWdkR2hsSUhOd1pXTnBabWxsWkNCSmJuUmxjblpoYkhNdVhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVNXNTBaWEoyWVd4OUlHbHVkR1Z5ZG1Gc2MxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUdScFptWmxjbVZ1WTJVb0xpNHVhVzUwWlhKMllXeHpLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFbHVkR1Z5ZG1Gc0xuaHZjaWhiZEdocGMxMHVZMjl1WTJGMEtHbHVkR1Z5ZG1Gc2N5a3BYRzRnSUNBZ0lDQXViV0Z3S0NocEtTQTlQaUIwYUdsekxtbHVkR1Z5YzJWamRHbHZiaWhwS1NsY2JpQWdJQ0FnSUM1bWFXeDBaWElvS0drcElEMCtJR2tnSmlZZ0lXa3VhWE5GYlhCMGVTZ3BLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdTVzUwWlhKMllXd2dZWEJ3Y205d2NtbGhkR1VnWm05eUlHUmxZblZuWjJsdVp5NWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ2RHOVRkSEpwYm1jb0tTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCSlRsWkJURWxFTzF4dUlDQWdJSEpsZEhWeWJpQmdXeVI3ZEdocGN5NXpMblJ2U1ZOUEtDbDlJRngxTWpBeE15QWtlM1JvYVhNdVpTNTBiMGxUVHlncGZTbGdPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVc0Z1NWTlBJRGcyTURFdFkyOXRjR3hwWVc1MElITjBjbWx1WnlCeVpYQnlaWE5sYm5SaGRHbHZiaUJ2WmlCMGFHbHpJRWx1ZEdWeWRtRnNMbHh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2Wlc0dWQybHJhWEJsWkdsaExtOXlaeTkzYVd0cEwwbFRUMTg0TmpBeEkxUnBiV1ZmYVc1MFpYSjJZV3h6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ1ZHaGxJSE5oYldVZ2IzQjBhVzl1Y3lCaGN5QjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOUpVMDk5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2U1ZOUEtHOXdkSE1wSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJRWxPVmtGTVNVUTdYRzRnSUNBZ2NtVjBkWEp1SUdBa2UzUm9hWE11Y3k1MGIwbFRUeWh2Y0hSektYMHZKSHQwYUdsekxtVXVkRzlKVTA4b2IzQjBjeWw5WUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhMV052YlhCc2FXRnVkQ0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdaR0YwWlNCdlppQjBhR2x6SUVsdWRHVnlkbUZzTGx4dUlDQWdLaUJVYUdVZ2RHbHRaU0JqYjIxd2IyNWxiblJ6SUdGeVpTQnBaMjV2Y21Wa0xseHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZaVzR1ZDJscmFYQmxaR2xoTG05eVp5OTNhV3RwTDBsVFQxODROakF4STFScGJXVmZhVzUwWlhKMllXeHpYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZTVk5QUkdGMFpTZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlFbE9Wa0ZNU1VRN1hHNGdJQ0FnY21WMGRYSnVJR0FrZTNSb2FYTXVjeTUwYjBsVFQwUmhkR1VvS1gwdkpIdDBhR2x6TG1VdWRHOUpVMDlFWVhSbEtDbDlZRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdGdUlFbFRUeUE0TmpBeExXTnZiWEJzYVdGdWRDQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHbHRaU0J2WmlCMGFHbHpJRWx1ZEdWeWRtRnNMbHh1SUNBZ0tpQlVhR1VnWkdGMFpTQmpiMjF3YjI1bGJuUnpJR0Z5WlNCcFoyNXZjbVZrTGx4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpXNHVkMmxyYVhCbFpHbGhMbTl5Wnk5M2FXdHBMMGxUVDE4NE5qQXhJMVJwYldWZmFXNTBaWEoyWVd4elhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdWR2hsSUhOaGJXVWdiM0IwYVc5dWN5QmhjeUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlKVTA5OVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUhSdlNWTlBWR2x0WlNodmNIUnpLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSEpsZEhWeWJpQkpUbFpCVEVsRU8xeHVJQ0FnSUhKbGRIVnliaUJnSkh0MGFHbHpMbk11ZEc5SlUwOVVhVzFsS0c5d2RITXBmUzhrZTNSb2FYTXVaUzUwYjBsVFQxUnBiV1VvYjNCMGN5bDlZRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdTVzUwWlhKMllXd2dabTl5YldGMGRHVmtJR0ZqWTI5eVpHbHVaeUIwYnlCMGFHVWdjM0JsWTJsbWFXVmtJR1p2Y20xaGRDQnpkSEpwYm1jdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JrWVhSbFJtOXliV0YwSUMwZ2RHaGxJR1p2Y20xaGRDQnpkSEpwYm1jdUlGUm9hWE1nYzNSeWFXNW5JR1p2Y20xaGRITWdkR2hsSUhOMFlYSjBJR0Z1WkNCbGJtUWdkR2x0WlM0Z1UyVmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMFp2Y20xaGRIMGdabTl5SUdSbGRHRnBiSE11WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ2IzQjBhVzl1YzF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWMyVndZWEpoZEc5eUlEMGdJQ2NnWEhVeU1ERXpJQ2RkSUMwZ1lTQnpaWEJoY21GMGIzSWdkRzhnY0d4aFkyVWdZbVYwZDJWbGJpQjBhR1VnYzNSaGNuUWdZVzVrSUdWdVpDQnlaWEJ5WlhObGJuUmhkR2x2Ym5OY2JpQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnZEc5R2IzSnRZWFFvWkdGMFpVWnZjbTFoZEN3Z2V5QnpaWEJoY21GMGIzSWdQU0JjSWlCY2RUSXdNVE1nWENJZ2ZTQTlJSHQ5S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUhKbGRIVnliaUJKVGxaQlRFbEVPMXh1SUNBZ0lISmxkSFZ5YmlCZ0pIdDBhR2x6TG5NdWRHOUdiM0p0WVhRb1pHRjBaVVp2Y20xaGRDbDlKSHR6WlhCaGNtRjBiM0o5Skh0MGFHbHpMbVV1ZEc5R2IzSnRZWFFvWkdGMFpVWnZjbTFoZENsOVlEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdZU0JFZFhKaGRHbHZiaUJ5WlhCeVpYTmxiblJwYm1jZ2RHaGxJSFJwYldVZ2MzQmhibTVsWkNCaWVTQjBhR2x6SUdsdWRHVnlkbUZzTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeHpkSEpwYm1kYlhYMGdXM1Z1YVhROVd5ZHRhV3hzYVhObFkyOXVaSE1uWFYwZ0xTQjBhR1VnZFc1cGRDQnZjaUIxYm1sMGN5QW9jM1ZqYUNCaGN5QW5hRzkxY25NbklHOXlJQ2RrWVhsekp5a2dkRzhnYVc1amJIVmtaU0JwYmlCMGFHVWdaSFZ5WVhScGIyNHVYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjeUIwYUdGMElHRm1abVZqZENCMGFHVWdZM0psWVhScGIyNGdiMllnZEdobElFUjFjbUYwYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NWpiMjUyWlhKemFXOXVRV05qZFhKaFkzazlKMk5oYzNWaGJDZGRJQzBnZEdobElHTnZiblpsY25OcGIyNGdjM2x6ZEdWdElIUnZJSFZ6WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektHUjBNU3dnWkhReUtTNTBiMFIxY21GMGFXOXVLQ2t1ZEc5UFltcGxZM1FvS1NBdkx6MCtJSHNnYldsc2JHbHpaV052Ym1Sek9pQTRPRFE0T1RJMU55QjlYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vWkhReExDQmtkRElwTG5SdlJIVnlZWFJwYjI0b0oyUmhlWE1uS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCa1lYbHpPaUF4TGpBeU5ERTRNVEl4TlRJM056YzNOemdnZlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JKYm5SbGNuWmhiQzVtY205dFJHRjBaVlJwYldWektHUjBNU3dnWkhReUtTNTBiMFIxY21GMGFXOXVLRnNuYUc5MWNuTW5MQ0FuYldsdWRYUmxjeWRkS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCb2IzVnljem9nTWpRc0lHMXBiblYwWlhNNklETTBMamd5TURrMUlIMWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NXNTBaWEoyWVd3dVpuSnZiVVJoZEdWVWFXMWxjeWhrZERFc0lHUjBNaWt1ZEc5RWRYSmhkR2x2YmloYkoyaHZkWEp6Snl3Z0oyMXBiblYwWlhNbkxDQW5jMlZqYjI1a2N5ZGRLUzUwYjA5aWFtVmpkQ2dwSUM4dlBUNGdleUJvYjNWeWN6b2dNalFzSUcxcGJuVjBaWE02SURNMExDQnpaV052Ym1Sek9pQTBPUzR5TlRjZ2ZWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLR1IwTVN3Z1pIUXlLUzUwYjBSMWNtRjBhVzl1S0NkelpXTnZibVJ6SnlrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2MyVmpiMjVrY3pvZ09EZzBPRGt1TWpVM0lIMWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JIVnlZWFJwYjI1OVhHNGdJQ0FxTDF4dUlDQjBiMFIxY21GMGFXOXVLSFZ1YVhRc0lHOXdkSE1wSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRVIxY21GMGFXOXVMbWx1ZG1Gc2FXUW9kR2hwY3k1cGJuWmhiR2xrVW1WaGMyOXVLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaUzVrYVdabUtIUm9hWE11Y3l3Z2RXNXBkQ3dnYjNCMGN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW5WdUlHMWhjRVp1SUc5dUlIUm9aU0JwYm5SbGNuWmhiQ0J6ZEdGeWRDQmhibVFnWlc1a0xDQnlaWFIxY201cGJtY2dZU0J1WlhjZ1NXNTBaWEoyWVd3Z1puSnZiU0IwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbGMxeHVJQ0FnS2lCQWNHRnlZVzBnZTJaMWJtTjBhVzl1ZlNCdFlYQkdibHh1SUNBZ0tpQkFjbVYwZFhKdUlIdEpiblJsY25aaGJIMWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1NXNTBaWEoyWVd3dVpuSnZiVVJoZEdWVWFXMWxjeWhrZERFc0lHUjBNaWt1YldGd1JXNWtjRzlwYm5SektHVnVaSEJ2YVc1MElEMCtJR1Z1WkhCdmFXNTBMblJ2VlZSREtDa3BYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbHVkR1Z5ZG1Gc0xtWnliMjFFWVhSbFZHbHRaWE1vWkhReExDQmtkRElwTG0xaGNFVnVaSEJ2YVc1MGN5aGxibVJ3YjJsdWRDQTlQaUJsYm1Sd2IybHVkQzV3YkhWektIc2dhRzkxY25NNklESWdmU2twWEc0Z0lDQXFMMXh1SUNCdFlYQkZibVJ3YjJsdWRITW9iV0Z3Um00cElIdGNiaUFnSUNCeVpYUjFjbTRnU1c1MFpYSjJZV3d1Wm5KdmJVUmhkR1ZVYVcxbGN5aHRZWEJHYmloMGFHbHpMbk1wTENCdFlYQkdiaWgwYUdsekxtVXBLVHRjYmlBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCRVlYUmxWR2x0WlNCbWNtOXRJRndpTGk5a1lYUmxkR2x0WlM1cWMxd2lPMXh1YVcxd2IzSjBJRk5sZEhScGJtZHpJR1p5YjIwZ1hDSXVMM05sZEhScGJtZHpMbXB6WENJN1hHNXBiWEJ2Y25RZ1RHOWpZV3hsSUdaeWIyMGdYQ0l1TDJsdGNHd3ZiRzlqWVd4bExtcHpYQ0k3WEc1cGJYQnZjblFnU1VGT1FWcHZibVVnWm5KdmJTQmNJaTR2ZW05dVpYTXZTVUZPUVZwdmJtVXVhbk5jSWp0Y2JtbHRjRzl5ZENCN0lHNXZjbTFoYkdsNlpWcHZibVVnZlNCbWNtOXRJRndpTGk5cGJYQnNMM3B2Ym1WVmRHbHNMbXB6WENJN1hHNWNibWx0Y0c5eWRDQjdJR2hoYzFKbGJHRjBhWFpsSUgwZ1puSnZiU0JjSWk0dmFXMXdiQzkxZEdsc0xtcHpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1ZHaGxJRWx1Wm04Z1kyeGhjM01nWTI5dWRHRnBibk1nYzNSaGRHbGpJRzFsZEdodlpITWdabTl5SUhKbGRISnBaWFpwYm1jZ1oyVnVaWEpoYkNCMGFXMWxJR0Z1WkNCa1lYUmxJSEpsYkdGMFpXUWdaR0YwWVM0Z1JtOXlJR1Y0WVcxd2JHVXNJR2wwSUdoaGN5QnRaWFJvYjJSeklHWnZjaUJtYVc1a2FXNW5JRzkxZENCcFppQmhJSFJwYldVZ2VtOXVaU0JvWVhNZ1lTQkVVMVFzSUdadmNpQnNhWE4wYVc1bklIUm9aU0J0YjI1MGFITWdhVzRnWVc1NUlITjFjSEJ2Y25SbFpDQnNiMk5oYkdVc0lHRnVaQ0JtYjNJZ1pHbHpZMjkyWlhKcGJtY2dkMmhwWTJnZ2IyWWdUSFY0YjI0Z1ptVmhkSFZ5WlhNZ1lYSmxJR0YyWVdsc1lXSnNaU0JwYmlCMGFHVWdZM1Z5Y21WdWRDQmxiblpwY205dWJXVnVkQzVjYmlBcUwxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1kyeGhjM01nU1c1bWJ5QjdYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZDJobGRHaGxjaUIwYUdVZ2MzQmxZMmxtYVdWa0lIcHZibVVnWTI5dWRHRnBibk1nWVNCRVUxUXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZkZwdmJtVjlJRnQ2YjI1bFBTZHNiMk5oYkNkZElDMGdXbTl1WlNCMGJ5QmphR1ZqYXk0Z1JHVm1ZWFZzZEhNZ2RHOGdkR2hsSUdWdWRtbHliMjV0Wlc1MEozTWdiRzlqWVd3Z2VtOXVaUzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm9ZWE5FVTFRb2VtOXVaU0E5SUZObGRIUnBibWR6TG1SbFptRjFiSFJhYjI1bEtTQjdYRzRnSUNBZ1kyOXVjM1FnY0hKdmRHOGdQU0JFWVhSbFZHbHRaUzV1YjNjb0tTNXpaWFJhYjI1bEtIcHZibVVwTG5ObGRDaDdJRzF2Ym5Sb09pQXhNaUI5S1R0Y2JseHVJQ0FnSUhKbGRIVnliaUFoZW05dVpTNXBjMVZ1YVhabGNuTmhiQ0FtSmlCd2NtOTBieTV2Wm1aelpYUWdJVDA5SUhCeWIzUnZMbk5sZENoN0lHMXZiblJvT2lBMklIMHBMbTltWm5ObGREdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkMmhsZEdobGNpQjBhR1VnYzNCbFkybG1hV1ZrSUhwdmJtVWdhWE1nWVNCMllXeHBaQ0JKUVU1QklITndaV05wWm1sbGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhwdmJtVWdMU0JhYjI1bElIUnZJR05vWldOclhHNGdJQ0FxSUVCeVpYUjFjbTRnZTJKdmIyeGxZVzU5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYVhOV1lXeHBaRWxCVGtGYWIyNWxLSHB2Ym1VcElIdGNiaUFnSUNCeVpYUjFjbTRnU1VGT1FWcHZibVV1YVhOV1lXeHBaRnB2Ym1Vb2VtOXVaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZEhNZ2RHaGxJR2x1Y0hWMElHbHVkRzhnWVNCN1FHeHBibXNnV205dVpYMGdhVzV6ZEdGdVkyVXVYRzRnSUNBcVhHNGdJQ0FxSUNvZ1NXWWdZR2x1Y0hWMFlDQnBjeUJoYkhKbFlXUjVJR0VnV205dVpTQnBibk4wWVc1alpTd2dhWFFnYVhNZ2NtVjBkWEp1WldRZ2RXNWphR0Z1WjJWa0xseHVJQ0FnS2lBcUlFbG1JR0JwYm5CMWRHQWdhWE1nWVNCemRISnBibWNnWTI5dWRHRnBibWx1WnlCaElIWmhiR2xrSUhScGJXVWdlbTl1WlNCdVlXMWxMQ0JoSUZwdmJtVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ0lDQjNhWFJvSUhSb1lYUWdibUZ0WlNCcGN5QnlaWFIxY201bFpDNWNiaUFnSUNvZ0tpQkpaaUJnYVc1d2RYUmdJR2x6SUdFZ2MzUnlhVzVuSUhSb1lYUWdaRzlsYzI0bmRDQnlaV1psY2lCMGJ5QmhJR3R1YjNkdUlIUnBiV1VnZW05dVpTd2dZU0JhYjI1bFhHNGdJQ0FxSUNBZ2FXNXpkR0Z1WTJVZ2QybDBhQ0I3UUd4cGJtc2dXbTl1WlNOcGMxWmhiR2xrZlNBOVBTQm1ZV3h6WlNCcGN5QnlaWFIxY201bFpDNWNiaUFnSUNvZ0tpQkpaaUJnYVc1d2RYUWdhWE1nWVNCdWRXMWlaWElzSUdFZ1dtOXVaU0JwYm5OMFlXNWpaU0IzYVhSb0lIUm9aU0J6Y0dWamFXWnBaV1FnWm1sNFpXUWdiMlptYzJWMFhHNGdJQ0FxSUNBZ2FXNGdiV2x1ZFhSbGN5QnBjeUJ5WlhSMWNtNWxaQzVjYmlBZ0lDb2dLaUJKWmlCZ2FXNXdkWFJnSUdseklHQnVkV3hzWUNCdmNpQmdkVzVrWldacGJtVmtZQ3dnZEdobElHUmxabUYxYkhRZ2VtOXVaU0JwY3lCeVpYUjFjbTVsWkM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDhXbTl1Wlh4dWRXMWlaWEo5SUZ0cGJuQjFkRjBnTFNCMGFHVWdkbUZzZFdVZ2RHOGdZbVVnWTI5dWRtVnlkR1ZrWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMXB2Ym1WOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2JtOXliV0ZzYVhwbFdtOXVaU2hwYm5CMWRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWIzSnRZV3hwZW1WYWIyNWxLR2x1Y0hWMExDQlRaWFIwYVc1bmN5NWtaV1poZFd4MFdtOXVaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdGdUlHRnljbUY1SUc5bUlITjBZVzVrWVd4dmJtVWdiVzl1ZEdnZ2JtRnRaWE11WEc0Z0lDQXFJRUJ6WldVZ2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlYWldJdlNtRjJZVk5qY21sd2RDOVNaV1psY21WdVkyVXZSMnh2WW1Gc1gwOWlhbVZqZEhNdlJHRjBaVlJwYldWR2IzSnRZWFJjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHNaVzVuZEdnOUoyeHZibWNuWFNBdElIUm9aU0JzWlc1bmRHZ2diMllnZEdobElHMXZiblJvSUhKbGNISmxjMlZ1ZEdGMGFXOXVMQ0J6ZFdOb0lHRnpJRndpYm5WdFpYSnBZMXdpTENCY0lqSXRaR2xuYVhSY0lpd2dYQ0p1WVhKeWIzZGNJaXdnWENKemFHOXlkRndpTENCY0lteHZibWRjSWx4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxteHZZMkZzWlYwZ0xTQjBhR1VnYkc5allXeGxJR052WkdWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxtNTFiV0psY21sdVoxTjVjM1JsYlQxdWRXeHNYU0F0SUhSb1pTQnVkVzFpWlhKcGJtY2djM2x6ZEdWdFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXNiMk5QWW1vOWJuVnNiRjBnTFNCaGJpQmxlR2x6ZEdsdVp5QnNiMk5oYkdVZ2IySnFaV04wSUhSdklIVnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11YjNWMGNIVjBRMkZzWlc1a1lYSTlKMmR5WldkdmNua25YU0F0SUhSb1pTQmpZV3hsYm1SaGNseHVJQ0FnS2lCQVpYaGhiWEJzWlNCSmJtWnZMbTF2Ym5Sb2N5Z3BXekJkSUM4dlBUNGdKMHBoYm5WaGNua25YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbHVabTh1Ylc5dWRHaHpLQ2R6YUc5eWRDY3BXekJkSUM4dlBUNGdKMHBoYmlkY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NXRiMjUwYUhNb0oyNTFiV1Z5YVdNbktWc3dYU0F2THowK0lDY3hKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkpibVp2TG0xdmJuUm9jeWduYzJodmNuUW5MQ0I3SUd4dlkyRnNaVG9nSjJaeUxVTkJKeUI5SUNsYk1GMGdMeTg5UGlBbmFtRnVkaTRuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dWJXOXVkR2h6S0NkdWRXMWxjbWxqSnl3Z2V5QnNiMk5oYkdVNklDZGhjaWNnZlNsYk1GMGdMeTg5UGlBblhIVXdOall4SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JKYm1adkxtMXZiblJvY3lnbmJHOXVaeWNzSUhzZ2IzVjBjSFYwUTJGc1pXNWtZWEk2SUNkcGMyeGhiV2xqSnlCOUtWc3dYU0F2THowK0lDZFNZV0pwWEhVd01rSkNJRWtuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMEZ5Y21GNWZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHMXZiblJvY3loY2JpQWdJQ0JzWlc1bmRHZ2dQU0JjSW14dmJtZGNJaXhjYmlBZ0lDQjdJR3h2WTJGc1pTQTlJRzUxYkd3c0lHNTFiV0psY21sdVoxTjVjM1JsYlNBOUlHNTFiR3dzSUd4dlkwOWlhaUE5SUc1MWJHd3NJRzkxZEhCMWRFTmhiR1Z1WkdGeUlEMGdYQ0puY21WbmIzSjVYQ0lnZlNBOUlIdDlYRzRnSUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUFvYkc5alQySnFJSHg4SUV4dlkyRnNaUzVqY21WaGRHVW9iRzlqWVd4bExDQnVkVzFpWlhKcGJtZFRlWE4wWlcwc0lHOTFkSEIxZEVOaGJHVnVaR0Z5S1NrdWJXOXVkR2h6S0d4bGJtZDBhQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdGdUlHRnljbUY1SUc5bUlHWnZjbTFoZENCdGIyNTBhQ0J1WVcxbGN5NWNiaUFnSUNvZ1JtOXliV0YwSUcxdmJuUm9jeUJrYVdabVpYSWdabkp2YlNCemRHRnVaR0ZzYjI1bElHMXZiblJvY3lCcGJpQjBhR0YwSUhSb1pYa25jbVVnYldWaGJuUWdkRzhnWVhCd1pXRnlJRzVsZUhRZ2RHOGdkR2hsSUdSaGVTQnZaaUIwYUdVZ2JXOXVkR2d1SUVsdUlITnZiV1VnYkdGdVozVmhaMlZ6TENCMGFHRjBYRzRnSUNBcUlHTm9ZVzVuWlhNZ2RHaGxJSE4wY21sdVp5NWNiaUFnSUNvZ1UyVmxJSHRBYkdsdWF5QkpibVp2STIxdmJuUm9jMzFjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHNaVzVuZEdnOUoyeHZibWNuWFNBdElIUm9aU0JzWlc1bmRHZ2diMllnZEdobElHMXZiblJvSUhKbGNISmxjMlZ1ZEdGMGFXOXVMQ0J6ZFdOb0lHRnpJRndpYm5WdFpYSnBZMXdpTENCY0lqSXRaR2xuYVhSY0lpd2dYQ0p1WVhKeWIzZGNJaXdnWENKemFHOXlkRndpTENCY0lteHZibWRjSWx4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxteHZZMkZzWlYwZ0xTQjBhR1VnYkc5allXeGxJR052WkdWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxtNTFiV0psY21sdVoxTjVjM1JsYlQxdWRXeHNYU0F0SUhSb1pTQnVkVzFpWlhKcGJtY2djM2x6ZEdWdFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXNiMk5QWW1vOWJuVnNiRjBnTFNCaGJpQmxlR2x6ZEdsdVp5QnNiMk5oYkdVZ2IySnFaV04wSUhSdklIVnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11YjNWMGNIVjBRMkZzWlc1a1lYSTlKMmR5WldkdmNua25YU0F0SUhSb1pTQmpZV3hsYm1SaGNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0QmNuSmhlWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJ0YjI1MGFITkdiM0p0WVhRb1hHNGdJQ0FnYkdWdVozUm9JRDBnWENKc2IyNW5YQ0lzWEc0Z0lDQWdleUJzYjJOaGJHVWdQU0J1ZFd4c0xDQnVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BTQnVkV3hzTENCc2IyTlBZbW9nUFNCdWRXeHNMQ0J2ZFhSd2RYUkRZV3hsYm1SaGNpQTlJRndpWjNKbFoyOXllVndpSUgwZ1BTQjdmVnh1SUNBcElIdGNiaUFnSUNCeVpYUjFjbTRnS0d4dlkwOWlhaUI4ZkNCTWIyTmhiR1V1WTNKbFlYUmxLR3h2WTJGc1pTd2diblZ0WW1WeWFXNW5VM2x6ZEdWdExDQnZkWFJ3ZFhSRFlXeGxibVJoY2lrcExtMXZiblJvY3loc1pXNW5kR2dzSUhSeWRXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUJoYmlCaGNuSmhlU0J2WmlCemRHRnVaR0ZzYjI1bElIZGxaV3NnYm1GdFpYTXVYRzRnSUNBcUlFQnpaV1VnYUhSMGNITTZMeTlrWlhabGJHOXdaWEl1Ylc5NmFXeHNZUzV2Y21jdlpXNHRWVk12Wkc5amN5OVhaV0l2U21GMllWTmpjbWx3ZEM5U1pXWmxjbVZ1WTJVdlIyeHZZbUZzWDA5aWFtVmpkSE12UkdGMFpWUnBiV1ZHYjNKdFlYUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0c1pXNW5kR2c5SjJ4dmJtY25YU0F0SUhSb1pTQnNaVzVuZEdnZ2IyWWdkR2hsSUhkbFpXdGtZWGtnY21Wd2NtVnpaVzUwWVhScGIyNHNJSE4xWTJnZ1lYTWdYQ0p1WVhKeWIzZGNJaXdnWENKemFHOXlkRndpTENCY0lteHZibWRjSWk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJwYjI1elhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXNiMk5oYkdWZElDMGdkR2hsSUd4dlkyRnNaU0JqYjJSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXVkVzFpWlhKcGJtZFRlWE4wWlcwOWJuVnNiRjBnTFNCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXViRzlqVDJKcVBXNTFiR3hkSUMwZ1lXNGdaWGhwYzNScGJtY2diRzlqWVd4bElHOWlhbVZqZENCMGJ5QjFjMlZjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzVtYnk1M1pXVnJaR0Y1Y3lncFd6QmRJQzh2UFQ0Z0owMXZibVJoZVNkY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NTNaV1ZyWkdGNWN5Z25jMmh2Y25RbktWc3dYU0F2THowK0lDZE5iMjRuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dWQyVmxhMlJoZVhNb0ozTm9iM0owSnl3Z2V5QnNiMk5oYkdVNklDZG1jaTFEUVNjZ2ZTbGJNRjBnTHk4OVBpQW5iSFZ1TGlkY2JpQWdJQ29nUUdWNFlXMXdiR1VnU1c1bWJ5NTNaV1ZyWkdGNWN5Z25jMmh2Y25RbkxDQjdJR3h2WTJGc1pUb2dKMkZ5SnlCOUtWc3dYU0F2THowK0lDZGNkVEEyTWpkY2RUQTJORFJjZFRBMk1qZGNkVEEyTWtKY2RUQTJORFpjZFRBMk5FRmNkVEEyTkRZblhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBGeWNtRjVmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJSGRsWld0a1lYbHpLR3hsYm1kMGFDQTlJRndpYkc5dVoxd2lMQ0I3SUd4dlkyRnNaU0E5SUc1MWJHd3NJRzUxYldKbGNtbHVaMU41YzNSbGJTQTlJRzUxYkd3c0lHeHZZMDlpYWlBOUlHNTFiR3dnZlNBOUlIdDlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHNiMk5QWW1vZ2ZId2dURzlqWVd4bExtTnlaV0YwWlNoc2IyTmhiR1VzSUc1MWJXSmxjbWx1WjFONWMzUmxiU3dnYm5Wc2JDa3BMbmRsWld0a1lYbHpLR3hsYm1kMGFDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJR0Z1SUdGeWNtRjVJRzltSUdadmNtMWhkQ0IzWldWcklHNWhiV1Z6TGx4dUlDQWdLaUJHYjNKdFlYUWdkMlZsYTJSaGVYTWdaR2xtWm1WeUlHWnliMjBnYzNSaGJtUmhiRzl1WlNCM1pXVnJaR0Y1Y3lCcGJpQjBhR0YwSUhSb1pYa25jbVVnYldWaGJuUWdkRzhnWVhCd1pXRnlJRzVsZUhRZ2RHOGdiVzl5WlNCa1lYUmxJR2x1Wm05eWJXRjBhVzl1TGlCSmJpQnpiMjFsSUd4aGJtZDFZV2RsY3l3Z2RHaGhkRnh1SUNBZ0tpQmphR0Z1WjJWeklIUm9aU0J6ZEhKcGJtY3VYRzRnSUNBcUlGTmxaU0I3UUd4cGJtc2dTVzVtYnlOM1pXVnJaR0Y1YzMxY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRzWlc1bmRHZzlKMnh2Ym1jblhTQXRJSFJvWlNCc1pXNW5kR2dnYjJZZ2RHaGxJRzF2Ym5Sb0lISmxjSEpsYzJWdWRHRjBhVzl1TENCemRXTm9JR0Z6SUZ3aWJtRnljbTkzWENJc0lGd2ljMmh2Y25SY0lpd2dYQ0pzYjI1blhDSXVYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkSE11Ykc5allXeGxQVzUxYkd4ZElDMGdkR2hsSUd4dlkyRnNaU0JqYjJSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXVkVzFpWlhKcGJtZFRlWE4wWlcwOWJuVnNiRjBnTFNCMGFHVWdiblZ0WW1WeWFXNW5JSE41YzNSbGJWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXViRzlqVDJKcVBXNTFiR3hkSUMwZ1lXNGdaWGhwYzNScGJtY2diRzlqWVd4bElHOWlhbVZqZENCMGJ5QjFjMlZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdRWEp5WVhsOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2QyVmxhMlJoZVhOR2IzSnRZWFFvWEc0Z0lDQWdiR1Z1WjNSb0lEMGdYQ0pzYjI1blhDSXNYRzRnSUNBZ2V5QnNiMk5oYkdVZ1BTQnVkV3hzTENCdWRXMWlaWEpwYm1kVGVYTjBaVzBnUFNCdWRXeHNMQ0JzYjJOUFltb2dQU0J1ZFd4c0lIMGdQU0I3ZlZ4dUlDQXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tHeHZZMDlpYWlCOGZDQk1iMk5oYkdVdVkzSmxZWFJsS0d4dlkyRnNaU3dnYm5WdFltVnlhVzVuVTNsemRHVnRMQ0J1ZFd4c0tTa3VkMlZsYTJSaGVYTW9iR1Z1WjNSb0xDQjBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z1lXNGdZWEp5WVhrZ2IyWWdiV1Z5YVdScFpXMXpMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk5jYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJ6TG14dlkyRnNaVjBnTFNCMGFHVWdiRzlqWVd4bElHTnZaR1ZjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzVtYnk1dFpYSnBaR2xsYlhNb0tTQXZMejArSUZzZ0owRk5KeXdnSjFCTkp5QmRYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbHVabTh1YldWeWFXUnBaVzF6S0hzZ2JHOWpZV3hsT2lBbmJYa25JSDBwSUM4dlBUNGdXeUFuWEhVeE1ERTBYSFV4TURNMlhIVXhNREUwWEhVeE1EQXdYSFV4TUROQkp5d2dKMXgxTVRBd1FWeDFNVEF4TkZ4MU1UQXpNU2NnWFZ4dUlDQWdLaUJBY21WMGRYSnVJSHRCY25KaGVYMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnRaWEpwWkdsbGJYTW9leUJzYjJOaGJHVWdQU0J1ZFd4c0lIMGdQU0I3ZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJNYjJOaGJHVXVZM0psWVhSbEtHeHZZMkZzWlNrdWJXVnlhV1JwWlcxektDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJR0Z1SUdGeWNtRjVJRzltSUdWeVlYTXNJSE4xWTJnZ1lYTWdXeWRDUXljc0lDZEJSQ2RkTGlCVWFHVWdiRzlqWVd4bElHTmhiaUJpWlNCemNHVmphV1pwWldRc0lHSjFkQ0IwYUdVZ1kyRnNaVzVrWVhJZ2MzbHpkR1Z0SUdseklHRnNkMkY1Y3lCSGNtVm5iM0pwWVc0dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYkdWdVozUm9QU2R6YUc5eWRDZGRJQzBnZEdobElHeGxibWQwYUNCdlppQjBhR1VnWlhKaElISmxjSEpsYzJWdWRHRjBhVzl1TENCemRXTm9JR0Z6SUZ3aWMyaHZjblJjSWlCdmNpQmNJbXh2Ym1kY0lpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hScGIyNXpYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVmRJQzBnZEdobElHeHZZMkZzWlNCamIyUmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFbHVabTh1WlhKaGN5Z3BJQzh2UFQ0Z1d5QW5Ra01uTENBblFVUW5JRjFjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzVtYnk1bGNtRnpLQ2RzYjI1bkp5a2dMeTg5UGlCYklDZENaV1p2Y21VZ1EyaHlhWE4wSnl3Z0owRnVibThnUkc5dGFXNXBKeUJkWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRWx1Wm04dVpYSmhjeWduYkc5dVp5Y3NJSHNnYkc5allXeGxPaUFuWm5JbklIMHBJQzh2UFQ0Z1d5QW5ZWFpoYm5RZ1NseDFNREJGT1hOMWN5MURhSEpwYzNRbkxDQW5ZWEJ5WEhVd01FVTRjeUJLWEhVd01FVTVjM1Z6TFVOb2NtbHpkQ2NnWFZ4dUlDQWdLaUJBY21WMGRYSnVJSHRCY25KaGVYMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QmxjbUZ6S0d4bGJtZDBhQ0E5SUZ3aWMyaHZjblJjSWl3Z2V5QnNiMk5oYkdVZ1BTQnVkV3hzSUgwZ1BTQjdmU2tnZTF4dUlDQWdJSEpsZEhWeWJpQk1iMk5oYkdVdVkzSmxZWFJsS0d4dlkyRnNaU3dnYm5Wc2JDd2dYQ0puY21WbmIzSjVYQ0lwTG1WeVlYTW9iR1Z1WjNSb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUhObGRDQnZaaUJoZG1GcGJHRmliR1VnWm1WaGRIVnlaWE1nYVc0Z2RHaHBjeUJsYm5acGNtOXViV1Z1ZEM1Y2JpQWdJQ29nVTI5dFpTQm1aV0YwZFhKbGN5QnZaaUJNZFhodmJpQmhjbVVnYm05MElHRjJZV2xzWVdKc1pTQnBiaUJoYkd3Z1pXNTJhWEp2Ym0xbGJuUnpMaUJHYjNJZ1pYaGhiWEJzWlN3Z2IyNGdiMnhrWlhJZ1luSnZkM05sY25Nc0lISmxiR0YwYVhabElIUnBiV1VnWm05eWJXRjBkR2x1WnlCemRYQndiM0owSUdseklHNXZkQ0JoZG1GcGJHRmliR1V1SUZWelpTQjBhR2x6SUdaMWJtTjBhVzl1SUhSdklHWnBaM1Z5WlNCdmRYUWdhV1lnZEdoaGRDZHpJSFJvWlNCallYTmxMbHh1SUNBZ0tpQkxaWGx6T2x4dUlDQWdLaUFxSUdCeVpXeGhkR2wyWldBNklIZG9aWFJvWlhJZ2RHaHBjeUJsYm5acGNtOXViV1Z1ZENCemRYQndiM0owY3lCeVpXeGhkR2wyWlNCMGFXMWxJR1p2Y20xaGRIUnBibWRjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdTVzVtYnk1bVpXRjBkWEpsY3lncElDOHZQVDRnZXlCeVpXeGhkR2wyWlRvZ1ptRnNjMlVnZlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRQWW1wbFkzUjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabVZoZEhWeVpYTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIc2djbVZzWVhScGRtVTZJR2hoYzFKbGJHRjBhWFpsS0NrZ2ZUdGNiaUFnZlZ4dWZWeHVJaXdnSW1sdGNHOXlkQ0JFZFhKaGRHbHZiaUJtY205dElGd2lMaTR2WkhWeVlYUnBiMjR1YW5OY0lqdGNibHh1Wm5WdVkzUnBiMjRnWkdGNVJHbG1aaWhsWVhKc2FXVnlMQ0JzWVhSbGNpa2dlMXh1SUNCamIyNXpkQ0IxZEdORVlYbFRkR0Z5ZENBOUlDaGtkQ2tnUFQ0Z1pIUXVkRzlWVkVNb01Dd2dleUJyWldWd1RHOWpZV3hVYVcxbE9pQjBjblZsSUgwcExuTjBZWEowVDJZb1hDSmtZWGxjSWlrdWRtRnNkV1ZQWmlncExGeHVJQ0FnSUcxeklEMGdkWFJqUkdGNVUzUmhjblFvYkdGMFpYSXBJQzBnZFhSalJHRjVVM1JoY25Rb1pXRnliR2xsY2lrN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG1ac2IyOXlLRVIxY21GMGFXOXVMbVp5YjIxTmFXeHNhWE1vYlhNcExtRnpLRndpWkdGNWMxd2lLU2s3WEc1OVhHNWNibVoxYm1OMGFXOXVJR2hwWjJoUGNtUmxja1JwWm1aektHTjFjbk52Y2l3Z2JHRjBaWElzSUhWdWFYUnpLU0I3WEc0Z0lHTnZibk4wSUdScFptWmxjbk1nUFNCYlhHNGdJQ0FnVzF3aWVXVmhjbk5jSWl3Z0tHRXNJR0lwSUQwK0lHSXVlV1ZoY2lBdElHRXVlV1ZoY2wwc1hHNGdJQ0FnVzF3aWNYVmhjblJsY25OY0lpd2dLR0VzSUdJcElEMCtJR0l1Y1hWaGNuUmxjaUF0SUdFdWNYVmhjblJsY2wwc1hHNGdJQ0FnVzF3aWJXOXVkR2h6WENJc0lDaGhMQ0JpS1NBOVBpQmlMbTF2Ym5Sb0lDMGdZUzV0YjI1MGFDQXJJQ2hpTG5sbFlYSWdMU0JoTG5sbFlYSXBJQ29nTVRKZExGeHVJQ0FnSUZ0Y2JpQWdJQ0FnSUZ3aWQyVmxhM05jSWl4Y2JpQWdJQ0FnSUNoaExDQmlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSaGVYTWdQU0JrWVhsRWFXWm1LR0VzSUdJcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0tHUmhlWE1nTFNBb1pHRjVjeUFsSURjcEtTQXZJRGM3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJRjBzWEc0Z0lDQWdXMXdpWkdGNWMxd2lMQ0JrWVhsRWFXWm1YU3hjYmlBZ1hUdGNibHh1SUNCamIyNXpkQ0J5WlhOMWJIUnpJRDBnZTMwN1hHNGdJR3hsZENCc2IzZGxjM1JQY21SbGNpd2dhR2xuYUZkaGRHVnlPMXh1WEc0Z0lHWnZjaUFvWTI5dWMzUWdXM1Z1YVhRc0lHUnBabVpsY2wwZ2IyWWdaR2xtWm1WeWN5a2dlMXh1SUNBZ0lHbG1JQ2gxYm1sMGN5NXBibVJsZUU5bUtIVnVhWFFwSUQ0OUlEQXBJSHRjYmlBZ0lDQWdJR3h2ZDJWemRFOXlaR1Z5SUQwZ2RXNXBkRHRjYmx4dUlDQWdJQ0FnYkdWMElHUmxiSFJoSUQwZ1pHbG1abVZ5S0dOMWNuTnZjaXdnYkdGMFpYSXBPMXh1SUNBZ0lDQWdhR2xuYUZkaGRHVnlJRDBnWTNWeWMyOXlMbkJzZFhNb2V5QmJkVzVwZEYwNklHUmxiSFJoSUgwcE8xeHVYRzRnSUNBZ0lDQnBaaUFvYUdsbmFGZGhkR1Z5SUQ0Z2JHRjBaWElwSUh0Y2JpQWdJQ0FnSUNBZ1kzVnljMjl5SUQwZ1kzVnljMjl5TG5Cc2RYTW9leUJiZFc1cGRGMDZJR1JsYkhSaElDMGdNU0I5S1R0Y2JpQWdJQ0FnSUNBZ1pHVnNkR0VnTFQwZ01UdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTjFjbk52Y2lBOUlHaHBaMmhYWVhSbGNqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbVZ6ZFd4MGMxdDFibWwwWFNBOUlHUmxiSFJoTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJiWTNWeWMyOXlMQ0J5WlhOMWJIUnpMQ0JvYVdkb1YyRjBaWElzSUd4dmQyVnpkRTl5WkdWeVhUdGNibjFjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnWm5WdVkzUnBiMjRnS0dWaGNteHBaWElzSUd4aGRHVnlMQ0IxYm1sMGN5d2diM0IwY3lrZ2UxeHVJQ0JzWlhRZ1cyTjFjbk52Y2l3Z2NtVnpkV3gwY3l3Z2FHbG5hRmRoZEdWeUxDQnNiM2RsYzNSUGNtUmxjbDBnUFNCb2FXZG9UM0prWlhKRWFXWm1jeWhsWVhKc2FXVnlMQ0JzWVhSbGNpd2dkVzVwZEhNcE8xeHVYRzRnSUdOdmJuTjBJSEpsYldGcGJtbHVaMDFwYkd4cGN5QTlJR3hoZEdWeUlDMGdZM1Z5YzI5eU8xeHVYRzRnSUdOdmJuTjBJR3h2ZDJWeVQzSmtaWEpWYm1sMGN5QTlJSFZ1YVhSekxtWnBiSFJsY2loY2JpQWdJQ0FvZFNrZ1BUNGdXMXdpYUc5MWNuTmNJaXdnWENKdGFXNTFkR1Z6WENJc0lGd2ljMlZqYjI1a2Mxd2lMQ0JjSW0xcGJHeHBjMlZqYjI1a2Mxd2lYUzVwYm1SbGVFOW1LSFVwSUQ0OUlEQmNiaUFnS1R0Y2JseHVJQ0JwWmlBb2JHOTNaWEpQY21SbGNsVnVhWFJ6TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lHbG1JQ2hvYVdkb1YyRjBaWElnUENCc1lYUmxjaWtnZTF4dUlDQWdJQ0FnYUdsbmFGZGhkR1Z5SUQwZ1kzVnljMjl5TG5Cc2RYTW9leUJiYkc5M1pYTjBUM0prWlhKZE9pQXhJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNob2FXZG9WMkYwWlhJZ0lUMDlJR04xY25OdmNpa2dlMXh1SUNBZ0lDQWdjbVZ6ZFd4MGMxdHNiM2RsYzNSUGNtUmxjbDBnUFNBb2NtVnpkV3gwYzF0c2IzZGxjM1JQY21SbGNsMGdmSHdnTUNrZ0t5QnlaVzFoYVc1cGJtZE5hV3hzYVhNZ0x5QW9hR2xuYUZkaGRHVnlJQzBnWTNWeWMyOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JqYjI1emRDQmtkWEpoZEdsdmJpQTlJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvY21WemRXeDBjeXdnYjNCMGN5azdYRzVjYmlBZ2FXWWdLR3h2ZDJWeVQzSmtaWEpWYm1sMGN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFUjFjbUYwYVc5dUxtWnliMjFOYVd4c2FYTW9jbVZ0WVdsdWFXNW5UV2xzYkdsekxDQnZjSFJ6S1Z4dUlDQWdJQ0FnTG5Ob2FXWjBWRzhvTGk0dWJHOTNaWEpQY21SbGNsVnVhWFJ6S1Z4dUlDQWdJQ0FnTG5Cc2RYTW9aSFZ5WVhScGIyNHBPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSEpsZEhWeWJpQmtkWEpoZEdsdmJqdGNiaUFnZlZ4dWZWeHVJaXdnSW1OdmJuTjBJRzUxYldKbGNtbHVaMU41YzNSbGJYTWdQU0I3WEc0Z0lHRnlZV0k2SUZ3aVcxeGNkVEEyTmpBdFhGeDFNRFkyT1YxY0lpeGNiaUFnWVhKaFltVjRkRG9nWENKYlhGeDFNRFpHTUMxY1hIVXdOa1k1WFZ3aUxGeHVJQ0JpWVd4cE9pQmNJbHRjWEhVeFFqVXdMVnhjZFRGQ05UbGRYQ0lzWEc0Z0lHSmxibWM2SUZ3aVcxeGNkVEE1UlRZdFhGeDFNRGxGUmwxY0lpeGNiaUFnWkdWMllUb2dYQ0piWEZ4MU1EazJOaTFjWEhVd09UWkdYVndpTEZ4dUlDQm1kV3hzZDJsa1pUb2dYQ0piWEZ4MVJrWXhNQzFjWEhWR1JqRTVYVndpTEZ4dUlDQm5kV3B5T2lCY0lsdGNYSFV3UVVVMkxWeGNkVEJCUlVaZFhDSXNYRzRnSUdoaGJtbGtaV002SUZ3aVcxeDFNekF3TjN4Y2RUUkZNREI4WEhVMFJUaERmRngxTkVVd09YeGNkVFUyUkVKOFhIVTBSVGswZkZ4MU5URTJSSHhjZFRSRk1ETjhYSFUxTVRaQ2ZGeDFORVUxUkYxY0lpeGNiaUFnYTJodGNqb2dYQ0piWEZ4MU1UZEZNQzFjWEhVeE4wVTVYVndpTEZ4dUlDQnJibVJoT2lCY0lsdGNYSFV3UTBVMkxWeGNkVEJEUlVaZFhDSXNYRzRnSUd4aGIyODZJRndpVzF4Y2RUQkZSREF0WEZ4MU1FVkVPVjFjSWl4Y2JpQWdiR2x0WWpvZ1hDSmJYRngxTVRrME5pMWNYSFV4T1RSR1hWd2lMRnh1SUNCdGJIbHRPaUJjSWx0Y1hIVXdSRFkyTFZ4Y2RUQkVOa1pkWENJc1hHNGdJRzF2Ym1jNklGd2lXMXhjZFRFNE1UQXRYRngxTVRneE9WMWNJaXhjYmlBZ2JYbHRjam9nWENKYlhGeDFNVEEwTUMxY1hIVXhNRFE1WFZ3aUxGeHVJQ0J2Y25saE9pQmNJbHRjWEhVd1FqWTJMVnhjZFRCQ05rWmRYQ0lzWEc0Z0lIUmhiV3hrWldNNklGd2lXMXhjZFRCQ1JUWXRYRngxTUVKRlJsMWNJaXhjYmlBZ2RHVnNkVG9nWENKYlhGeDFNRU0yTmkxY1hIVXdRelpHWFZ3aUxGeHVJQ0IwYUdGcE9pQmNJbHRjWEhVd1JUVXdMVnhjZFRCRk5UbGRYQ0lzWEc0Z0lIUnBZblE2SUZ3aVcxeGNkVEJHTWpBdFhGeDFNRVl5T1YxY0lpeGNiaUFnYkdGMGJqb2dYQ0pjWEZ4Y1pGd2lMRnh1ZlR0Y2JseHVZMjl1YzNRZ2JuVnRZbVZ5YVc1blUzbHpkR1Z0YzFWVVJqRTJJRDBnZTF4dUlDQmhjbUZpT2lCYk1UWXpNaXdnTVRZME1WMHNYRzRnSUdGeVlXSmxlSFE2SUZzeE56YzJMQ0F4TnpnMVhTeGNiaUFnWW1Gc2FUb2dXelk1T1RJc0lEY3dNREZkTEZ4dUlDQmlaVzVuT2lCYk1qVXpOQ3dnTWpVME0xMHNYRzRnSUdSbGRtRTZJRnN5TkRBMkxDQXlOREUxWFN4Y2JpQWdablZzYkhkcFpHVTZJRnMyTlRJNU5pd2dOalV6TUROZExGeHVJQ0JuZFdweU9pQmJNamM1TUN3Z01qYzVPVjBzWEc0Z0lHdG9iWEk2SUZzMk1URXlMQ0EyTVRJeFhTeGNiaUFnYTI1a1lUb2dXek16TURJc0lETXpNVEZkTEZ4dUlDQnNZVzl2T2lCYk16YzVNaXdnTXpnd01WMHNYRzRnSUd4cGJXSTZJRnMyTkRjd0xDQTJORGM1WFN4Y2JpQWdiV3g1YlRvZ1d6TTBNekFzSURNME16bGRMRnh1SUNCdGIyNW5PaUJiTmpFMk1Dd2dOakUyT1Ywc1hHNGdJRzE1YlhJNklGczBNVFl3TENBME1UWTVYU3hjYmlBZ2IzSjVZVG9nV3pJNU1UZ3NJREk1TWpkZExGeHVJQ0IwWVcxc1pHVmpPaUJiTXpBME5pd2dNekExTlYwc1hHNGdJSFJsYkhVNklGc3pNVGMwTENBek1UZ3pYU3hjYmlBZ2RHaGhhVG9nV3pNMk5qUXNJRE0yTnpOZExGeHVJQ0IwYVdKME9pQmJNemczTWl3Z016ZzRNVjBzWEc1OU8xeHVYRzVqYjI1emRDQm9ZVzVwWkdWalEyaGhjbk1nUFNCdWRXMWlaWEpwYm1kVGVYTjBaVzF6TG1oaGJtbGtaV011Y21Wd2JHRmpaU2d2VzF4Y1czeGNYRjFkTDJjc0lGd2lYQ0lwTG5Od2JHbDBLRndpWENJcE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjR0Z5YzJWRWFXZHBkSE1vYzNSeUtTQjdYRzRnSUd4bGRDQjJZV3gxWlNBOUlIQmhjbk5sU1c1MEtITjBjaXdnTVRBcE8xeHVJQ0JwWmlBb2FYTk9ZVTRvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdkbUZzZFdVZ1BTQmNJbHdpTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzNSeUxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMlJsSUQwZ2MzUnlMbU5vWVhKRGIyUmxRWFFvYVNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2h6ZEhKYmFWMHVjMlZoY21Ob0tHNTFiV0psY21sdVoxTjVjM1JsYlhNdWFHRnVhV1JsWXlrZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lIWmhiSFZsSUNzOUlHaGhibWxrWldORGFHRnljeTVwYm1SbGVFOW1LSE4wY2x0cFhTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR3RsZVNCcGJpQnVkVzFpWlhKcGJtZFRlWE4wWlcxelZWUkdNVFlwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCYmJXbHVMQ0J0WVhoZElEMGdiblZ0WW1WeWFXNW5VM2x6ZEdWdGMxVlVSakUyVzJ0bGVWMDdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnZaR1VnUGowZ2JXbHVJQ1ltSUdOdlpHVWdQRDBnYldGNEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0FyUFNCamIyUmxJQzBnYldsdU8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NHRnljMlZKYm5Rb2RtRnNkV1VzSURFd0tUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdScFoybDBVbVZuWlhnb2V5QnVkVzFpWlhKcGJtZFRlWE4wWlcwZ2ZTd2dZWEJ3Wlc1a0lEMGdYQ0pjSWlrZ2UxeHVJQ0J5WlhSMWNtNGdibVYzSUZKbFowVjRjQ2hnSkh0dWRXMWlaWEpwYm1kVGVYTjBaVzF6VzI1MWJXSmxjbWx1WjFONWMzUmxiU0I4ZkNCY0lteGhkRzVjSWwxOUpIdGhjSEJsYm1SOVlDazdYRzU5WEc0aUxDQWlhVzF3YjNKMElIc2djR0Z5YzJWTmFXeHNhWE1zSUdselZXNWtaV1pwYm1Wa0xDQjFiblJ5ZFc1allYUmxXV1ZoY2l3Z2MybG5ibVZrVDJabWMyVjBMQ0JvWVhOUGQyNVFjbTl3WlhKMGVTQjlJR1p5YjIwZ1hDSXVMM1YwYVd3dWFuTmNJanRjYm1sdGNHOXlkQ0JHYjNKdFlYUjBaWElnWm5KdmJTQmNJaTR2Wm05eWJXRjBkR1Z5TG1welhDSTdYRzVwYlhCdmNuUWdSbWw0WldSUFptWnpaWFJhYjI1bElHWnliMjBnWENJdUxpOTZiMjVsY3k5bWFYaGxaRTltWm5ObGRGcHZibVV1YW5OY0lqdGNibWx0Y0c5eWRDQkpRVTVCV205dVpTQm1jbTl0SUZ3aUxpNHZlbTl1WlhNdlNVRk9RVnB2Ym1VdWFuTmNJanRjYm1sdGNHOXlkQ0JFWVhSbFZHbHRaU0JtY205dElGd2lMaTR2WkdGMFpYUnBiV1V1YW5OY0lqdGNibWx0Y0c5eWRDQjdJR1JwWjJsMFVtVm5aWGdzSUhCaGNuTmxSR2xuYVhSeklIMGdabkp2YlNCY0lpNHZaR2xuYVhSekxtcHpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNW1iR2xqZEdsdVoxTndaV05wWm1sallYUnBiMjVGY25KdmNpQjlJR1p5YjIwZ1hDSXVMaTlsY25KdmNuTXVhbk5jSWp0Y2JseHVZMjl1YzNRZ1RVbFRVMGxPUjE5R1ZGQWdQU0JjSW0xcGMzTnBibWNnU1c1MGJDNUVZWFJsVkdsdFpVWnZjbTFoZEM1bWIzSnRZWFJVYjFCaGNuUnpJSE4xY0hCdmNuUmNJanRjYmx4dVpuVnVZM1JwYjI0Z2FXNTBWVzVwZENoeVpXZGxlQ3dnY0c5emRDQTlJQ2hwS1NBOVBpQnBLU0I3WEc0Z0lISmxkSFZ5YmlCN0lISmxaMlY0TENCa1pYTmxjam9nS0Z0elhTa2dQVDRnY0c5emRDaHdZWEp6WlVScFoybDBjeWh6S1NrZ2ZUdGNibjFjYmx4dVkyOXVjM1FnVGtKVFVDQTlJRk4wY21sdVp5NW1jbTl0UTJoaGNrTnZaR1VvTVRZd0tUdGNibU52Ym5OMElITndZV05sVDNKT1FsTlFJRDBnWUZzZ0pIdE9RbE5RZlYxZ08xeHVZMjl1YzNRZ2MzQmhZMlZQY2s1Q1UxQlNaV2RGZUhBZ1BTQnVaWGNnVW1WblJYaHdLSE53WVdObFQzSk9RbE5RTENCY0ltZGNJaWs3WEc1Y2JtWjFibU4wYVc5dUlHWnBlRXhwYzNSU1pXZGxlQ2h6S1NCN1hHNGdJQzh2SUcxaGEyVWdaRzkwY3lCdmNIUnBiMjVoYkNCaGJtUWdZV3h6YnlCdFlXdGxJSFJvWlcwZ2JHbDBaWEpoYkZ4dUlDQXZMeUJ0WVd0bElITndZV05sSUdGdVpDQnViMjRnWW5KbFlXdGhZbXhsSUhOd1lXTmxJR05vWVhKaFkzUmxjbk1nYVc1MFpYSmphR0Z1WjJWaFlteGxYRzRnSUhKbGRIVnliaUJ6TG5KbGNHeGhZMlVvTDF4Y0xpOW5MQ0JjSWx4Y1hGd3VQMXdpS1M1eVpYQnNZV05sS0hOd1lXTmxUM0pPUWxOUVVtVm5SWGh3TENCemNHRmpaVTl5VGtKVFVDazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlITjBjbWx3U1c1elpXNXphWFJwZG1sMGFXVnpLSE1wSUh0Y2JpQWdjbVYwZFhKdUlITmNiaUFnSUNBdWNtVndiR0ZqWlNndlhGd3VMMmNzSUZ3aVhDSXBJQzh2SUdsbmJtOXlaU0JrYjNSeklIUm9ZWFFnZDJWeVpTQnRZV1JsSUc5d2RHbHZibUZzWEc0Z0lDQWdMbkpsY0d4aFkyVW9jM0JoWTJWUGNrNUNVMUJTWldkRmVIQXNJRndpSUZ3aUtTQXZMeUJwYm5SbGNtTm9ZVzVuWlNCemNHRmpaU0JoYm1RZ2JtSnpjRnh1SUNBZ0lDNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJ2Ym1WUFppaHpkSEpwYm1kekxDQnpkR0Z5ZEVsdVpHVjRLU0I3WEc0Z0lHbG1JQ2h6ZEhKcGJtZHpJRDA5UFNCdWRXeHNLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJSEpsWjJWNE9pQlNaV2RGZUhBb2MzUnlhVzVuY3k1dFlYQW9abWw0VEdsemRGSmxaMlY0S1M1cWIybHVLRndpZkZ3aUtTa3NYRzRnSUNBZ0lDQmtaWE5sY2pvZ0tGdHpYU2tnUFQ1Y2JpQWdJQ0FnSUNBZ2MzUnlhVzVuY3k1bWFXNWtTVzVrWlhnb0tHa3BJRDArSUhOMGNtbHdTVzV6Wlc1emFYUnBkbWwwYVdWektITXBJRDA5UFNCemRISnBjRWx1YzJWdWMybDBhWFpwZEdsbGN5aHBLU2tnS3lCemRHRnlkRWx1WkdWNExGeHVJQ0FnSUgwN1hHNGdJSDFjYm4xY2JseHVablZ1WTNScGIyNGdiMlptYzJWMEtISmxaMlY0TENCbmNtOTFjSE1wSUh0Y2JpQWdjbVYwZFhKdUlIc2djbVZuWlhnc0lHUmxjMlZ5T2lBb1d5d2dhQ3dnYlYwcElEMCtJSE5wWjI1bFpFOW1abk5sZENob0xDQnRLU3dnWjNKdmRYQnpJSDA3WEc1OVhHNWNibVoxYm1OMGFXOXVJSE5wYlhCc1pTaHlaV2RsZUNrZ2UxeHVJQ0J5WlhSMWNtNGdleUJ5WldkbGVDd2daR1Z6WlhJNklDaGJjMTBwSUQwK0lITWdmVHRjYm4xY2JseHVablZ1WTNScGIyNGdaWE5qWVhCbFZHOXJaVzRvZG1Gc2RXVXBJSHRjYmlBZ2NtVjBkWEp1SUhaaGJIVmxMbkpsY0d4aFkyVW9MMXRjWEMxY1hGdGNYRjE3ZlNncEtpcy9MaXhjWEZ4Y1hGeGVKSHdqWEZ4elhTOW5MQ0JjSWx4Y1hGd2tKbHdpS1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnZFc1cGRFWnZjbFJ2YTJWdUtIUnZhMlZ1TENCc2IyTXBJSHRjYmlBZ1kyOXVjM1FnYjI1bElEMGdaR2xuYVhSU1pXZGxlQ2hzYjJNcExGeHVJQ0FnSUhSM2J5QTlJR1JwWjJsMFVtVm5aWGdvYkc5akxDQmNJbnN5ZlZ3aUtTeGNiaUFnSUNCMGFISmxaU0E5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zemZWd2lLU3hjYmlBZ0lDQm1iM1Z5SUQwZ1pHbG5hWFJTWldkbGVDaHNiMk1zSUZ3aWV6UjlYQ0lwTEZ4dUlDQWdJSE5wZUNBOUlHUnBaMmwwVW1WblpYZ29iRzlqTENCY0luczJmVndpS1N4Y2JpQWdJQ0J2Ym1WUGNsUjNieUE5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zeExESjlYQ0lwTEZ4dUlDQWdJRzl1WlZSdlZHaHlaV1VnUFNCa2FXZHBkRkpsWjJWNEtHeHZZeXdnWENKN01Td3pmVndpS1N4Y2JpQWdJQ0J2Ym1WVWIxTnBlQ0E5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zeExEWjlYQ0lwTEZ4dUlDQWdJRzl1WlZSdlRtbHVaU0E5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zeExEbDlYQ0lwTEZ4dUlDQWdJSFIzYjFSdlJtOTFjaUE5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zeUxEUjlYQ0lwTEZ4dUlDQWdJR1p2ZFhKVWIxTnBlQ0E5SUdScFoybDBVbVZuWlhnb2JHOWpMQ0JjSW5zMExEWjlYQ0lwTEZ4dUlDQWdJR3hwZEdWeVlXd2dQU0FvZENrZ1BUNGdLSHNnY21WblpYZzZJRkpsWjBWNGNDaGxjMk5oY0dWVWIydGxiaWgwTG5aaGJDa3BMQ0JrWlhObGNqb2dLRnR6WFNrZ1BUNGdjeXdnYkdsMFpYSmhiRG9nZEhKMVpTQjlLU3hjYmlBZ0lDQjFibWwwWVhSbElEMGdLSFFwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2gwYjJ0bGJpNXNhWFJsY21Gc0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnNhWFJsY21Gc0tIUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjM2RwZEdOb0lDaDBMblpoYkNrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJsY21GY2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSWtkY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMjVsVDJZb2JHOWpMbVZ5WVhNb1hDSnphRzl5ZEZ3aUxDQm1ZV3h6WlNrc0lEQXBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lSMGRjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyNWxUMllvYkc5akxtVnlZWE1vWENKc2IyNW5YQ0lzSUdaaGJITmxLU3dnTUNrN1hHNGdJQ0FnSUNBZ0lDOHZJSGxsWVhKelhHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKNVhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1ZEZWdWFYUW9iMjVsVkc5VGFYZ3BPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2llWGxjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENoMGQyOVViMFp2ZFhJc0lIVnVkSEoxYm1OaGRHVlpaV0Z5S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW5sNWVYbGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2htYjNWeUtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lubDVlWGw1WENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb1ptOTFjbFJ2VTJsNEtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lubDVlWGw1ZVZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblJWYm1sMEtITnBlQ2s3WEc0Z0lDQWdJQ0FnSUM4dklHMXZiblJvYzF4dUlDQWdJQ0FnSUNCallYTmxJRndpVFZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblJWYm1sMEtHOXVaVTl5VkhkdktUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lrMU5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvZEhkdktUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lrMU5UVndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdmJtVlBaaWhzYjJNdWJXOXVkR2h6S0Z3aWMyaHZjblJjSWl3Z2RISjFaU3dnWm1Gc2MyVXBMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSWsxTlRVMWNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG0xdmJuUm9jeWhjSW14dmJtZGNJaXdnZEhKMVpTd2dabUZzYzJVcExDQXhLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJa3hjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENodmJtVlBjbFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKTVRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLSFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKTVRFeGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjI1bFQyWW9iRzlqTG0xdmJuUm9jeWhjSW5Ob2IzSjBYQ0lzSUdaaGJITmxMQ0JtWVd4elpTa3NJREVwTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpVEV4TVRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2Ym1WUFppaHNiMk11Ylc5dWRHaHpLRndpYkc5dVoxd2lMQ0JtWVd4elpTd2dabUZzYzJVcExDQXhLVHRjYmlBZ0lDQWdJQ0FnTHk4Z1pHRjBaWE5jYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbVJjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENodmJtVlBjbFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKa1pGd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLSFIzYnlrN1hHNGdJQ0FnSUNBZ0lDOHZJRzl5WkdsdVlXeHpYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSnZYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvYjI1bFZHOVVhSEpsWlNrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKdmIyOWNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2gwYUhKbFpTazdYRzRnSUNBZ0lDQWdJQzh2SUhScGJXVmNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lraElYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvZEhkdktUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lraGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2h2Ym1WUGNsUjNieWs3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pvYUZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblJWYm1sMEtIUjNieWs3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pvWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2IyNWxUM0pVZDI4cE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJXMWNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2gwZDI4cE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJWd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLRzl1WlU5eVZIZHZLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbkZjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENodmJtVlBjbFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKeGNWd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5SVmJtbDBLSFIzYnlrN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKelhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1ZEZWdWFYUW9iMjVsVDNKVWQyOHBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2ljM05jSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENoMGQyOHBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lVMXdpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJuUlZibWwwS0c5dVpWUnZWR2h5WldVcE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVUxTlRYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvZEdoeVpXVXBPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lkVndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCemFXMXdiR1VvYjI1bFZHOU9hVzVsS1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW5WMVhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE5wYlhCc1pTaHZibVZQY2xSM2J5azdYRzRnSUNBZ0lDQWdJR05oYzJVZ1hDSjFkWFZjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBWVzVwZENodmJtVXBPMXh1SUNBZ0lDQWdJQ0F2THlCdFpYSnBaR2xsYlZ4dUlDQWdJQ0FnSUNCallYTmxJRndpWVZ3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnZibVZQWmloc2IyTXViV1Z5YVdScFpXMXpLQ2tzSURBcE8xeHVJQ0FnSUNBZ0lDQXZMeUIzWldWcldXVmhjaUFvYXlsY2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW10cmEydGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2htYjNWeUtUdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0ltdHJYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdWRGVnVhWFFvZEhkdlZHOUdiM1Z5TENCMWJuUnlkVzVqWVhSbFdXVmhjaWs3WEc0Z0lDQWdJQ0FnSUM4dklIZGxaV3RPZFcxaVpYSWdLRmNwWEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pYWENJNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbHVkRlZ1YVhRb2IyNWxUM0pVZDI4cE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVYxZGNJanBjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MFZXNXBkQ2gwZDI4cE8xeHVJQ0FnSUNBZ0lDQXZMeUIzWldWclpHRjVjMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2lSVndpT2x4dUlDQWdJQ0FnSUNCallYTmxJRndpWTF3aU9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblJWYm1sMEtHOXVaU2s3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pGUlVWY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMjVsVDJZb2JHOWpMbmRsWld0a1lYbHpLRndpYzJodmNuUmNJaXdnWm1Gc2MyVXNJR1poYkhObEtTd2dNU2s3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pGUlVWRlhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzl1WlU5bUtHeHZZeTUzWldWclpHRjVjeWhjSW14dmJtZGNJaXdnWm1Gc2MyVXNJR1poYkhObEtTd2dNU2s3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pqWTJOY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMjVsVDJZb2JHOWpMbmRsWld0a1lYbHpLRndpYzJodmNuUmNJaXdnZEhKMVpTd2dabUZzYzJVcExDQXhLVHRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbU5qWTJOY0lqcGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiMjVsVDJZb2JHOWpMbmRsWld0a1lYbHpLRndpYkc5dVoxd2lMQ0IwY25WbExDQm1ZV3h6WlNrc0lERXBPMXh1SUNBZ0lDQWdJQ0F2THlCdlptWnpaWFF2ZW05dVpWeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVdsd2lPbHh1SUNBZ0lDQWdJQ0JqWVhObElGd2lXbHBjSWpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyWm1jMlYwS0c1bGR5QlNaV2RGZUhBb1lDaGJLeTFkSkh0dmJtVlBjbFIzYnk1emIzVnlZMlY5S1NnL09qb29KSHQwZDI4dWMyOTFjbU5sZlNrcFAyQXBMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSWxwYVdsd2lPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2Wm1aelpYUW9ibVYzSUZKbFowVjRjQ2hnS0ZzckxWMGtlMjl1WlU5eVZIZHZMbk52ZFhKalpYMHBLQ1I3ZEhkdkxuTnZkWEpqWlgwcFAyQXBMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0x5OGdkMlVnWkc5dUozUWdjM1Z3Y0c5eWRDQmFXbHBhSUNoUVUxUXBJRzl5SUZwYVdscGFJQ2hRWVdOcFptbGpJRk4wWVc1a1lYSmtJRlJwYldVcElHbHVJSEJoY25OcGJtZGNiaUFnSUNBZ0lDQWdMeThnWW1WallYVnpaU0IzWlNCa2IyNG5kQ0JvWVhabElHRnVlU0IzWVhrZ2RHOGdabWxuZFhKbElHOTFkQ0IzYUdGMElIUm9aWGtnWVhKbFhHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKNlhDSTZYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE5wYlhCc1pTZ3ZXMkV0ZWw4ckxTOWRlekVzTWpVMmZUOHZhU2s3WEc0Z0lDQWdJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUd4cGRHVnlZV3dvZENrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlR0Y2JseHVJQ0JqYjI1emRDQjFibWwwSUQwZ2RXNXBkR0YwWlNoMGIydGxiaWtnZkh3Z2UxeHVJQ0FnSUdsdWRtRnNhV1JTWldGemIyNDZJRTFKVTFOSlRrZGZSbFJRTEZ4dUlDQjlPMXh1WEc0Z0lIVnVhWFF1ZEc5clpXNGdQU0IwYjJ0bGJqdGNibHh1SUNCeVpYUjFjbTRnZFc1cGREdGNibjFjYmx4dVkyOXVjM1FnY0dGeWRGUjVjR1ZUZEhsc1pWUnZWRzlyWlc1V1lXd2dQU0I3WEc0Z0lIbGxZWEk2SUh0Y2JpQWdJQ0JjSWpJdFpHbG5hWFJjSWpvZ1hDSjVlVndpTEZ4dUlDQWdJRzUxYldWeWFXTTZJRndpZVhsNWVYbGNJaXhjYmlBZ2ZTeGNiaUFnYlc5dWRHZzZJSHRjYmlBZ0lDQnVkVzFsY21sak9pQmNJazFjSWl4Y2JpQWdJQ0JjSWpJdFpHbG5hWFJjSWpvZ1hDSk5UVndpTEZ4dUlDQWdJSE5vYjNKME9pQmNJazFOVFZ3aUxGeHVJQ0FnSUd4dmJtYzZJRndpVFUxTlRWd2lMRnh1SUNCOUxGeHVJQ0JrWVhrNklIdGNiaUFnSUNCdWRXMWxjbWxqT2lCY0ltUmNJaXhjYmlBZ0lDQmNJakl0WkdsbmFYUmNJam9nWENKa1pGd2lMRnh1SUNCOUxGeHVJQ0IzWldWclpHRjVPaUI3WEc0Z0lDQWdjMmh2Y25RNklGd2lSVVZGWENJc1hHNGdJQ0FnYkc5dVp6b2dYQ0pGUlVWRlhDSXNYRzRnSUgwc1hHNGdJR1JoZVhCbGNtbHZaRG9nWENKaFhDSXNYRzRnSUdSaGVWQmxjbWx2WkRvZ1hDSmhYQ0lzWEc0Z0lHaHZkWEk2SUh0Y2JpQWdJQ0J1ZFcxbGNtbGpPaUJjSW1oY0lpeGNiaUFnSUNCY0lqSXRaR2xuYVhSY0lqb2dYQ0pvYUZ3aUxGeHVJQ0I5TEZ4dUlDQnRhVzUxZEdVNklIdGNiaUFnSUNCdWRXMWxjbWxqT2lCY0ltMWNJaXhjYmlBZ0lDQmNJakl0WkdsbmFYUmNJam9nWENKdGJWd2lMRnh1SUNCOUxGeHVJQ0J6WldOdmJtUTZJSHRjYmlBZ0lDQnVkVzFsY21sak9pQmNJbk5jSWl4Y2JpQWdJQ0JjSWpJdFpHbG5hWFJjSWpvZ1hDSnpjMXdpTEZ4dUlDQjlMRnh1ZlR0Y2JseHVablZ1WTNScGIyNGdkRzlyWlc1R2IzSlFZWEowS0hCaGNuUXNJR3h2WTJGc1pTd2dabTl5YldGMFQzQjBjeWtnZTF4dUlDQmpiMjV6ZENCN0lIUjVjR1VzSUhaaGJIVmxJSDBnUFNCd1lYSjBPMXh1WEc0Z0lHbG1JQ2gwZVhCbElEMDlQU0JjSW14cGRHVnlZV3hjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JzYVhSbGNtRnNPaUIwY25WbExGeHVJQ0FnSUNBZ2RtRnNPaUIyWVd4MVpTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MzUjViR1VnUFNCbWIzSnRZWFJQY0hSelczUjVjR1ZkTzF4dVhHNGdJR3hsZENCMllXd2dQU0J3WVhKMFZIbHdaVk4wZVd4bFZHOVViMnRsYmxaaGJGdDBlWEJsWFR0Y2JpQWdhV1lnS0hSNWNHVnZaaUIyWVd3Z1BUMDlJRndpYjJKcVpXTjBYQ0lwSUh0Y2JpQWdJQ0IyWVd3Z1BTQjJZV3hiYzNSNWJHVmRPMXh1SUNCOVhHNWNiaUFnYVdZZ0tIWmhiQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnNhWFJsY21Gc09pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUhaaGJDeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1luVnBiR1JTWldkbGVDaDFibWwwY3lrZ2UxeHVJQ0JqYjI1emRDQnlaU0E5SUhWdWFYUnpMbTFoY0Nnb2RTa2dQVDRnZFM1eVpXZGxlQ2t1Y21Wa2RXTmxLQ2htTENCeUtTQTlQaUJnSkh0bWZTZ2tlM0l1YzI5MWNtTmxmU2xnTENCY0lsd2lLVHRjYmlBZ2NtVjBkWEp1SUZ0Z1hpUjdjbVY5SkdBc0lIVnVhWFJ6WFR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYldGMFkyZ29hVzV3ZFhRc0lISmxaMlY0TENCb1lXNWtiR1Z5Y3lrZ2UxeHVJQ0JqYjI1emRDQnRZWFJqYUdWeklEMGdhVzV3ZFhRdWJXRjBZMmdvY21WblpYZ3BPMXh1WEc0Z0lHbG1JQ2h0WVhSamFHVnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1lXeHNJRDBnZTMwN1hHNGdJQ0FnYkdWMElHMWhkR05vU1c1a1pYZ2dQU0F4TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCcGJpQm9ZVzVrYkdWeWN5a2dlMXh1SUNBZ0lDQWdhV1lnS0doaGMwOTNibEJ5YjNCbGNuUjVLR2hoYm1Sc1pYSnpMQ0JwS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCb0lEMGdhR0Z1Wkd4bGNuTmJhVjBzWEc0Z0lDQWdJQ0FnSUNBZ1ozSnZkWEJ6SUQwZ2FDNW5jbTkxY0hNZ1B5Qm9MbWR5YjNWd2N5QXJJREVnT2lBeE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdndWJHbDBaWEpoYkNBbUppQm9MblJ2YTJWdUtTQjdYRzRnSUNBZ0lDQWdJQ0FnWVd4c1cyZ3VkRzlyWlc0dWRtRnNXekJkWFNBOUlHZ3VaR1Z6WlhJb2JXRjBZMmhsY3k1emJHbGpaU2h0WVhSamFFbHVaR1Y0TENCdFlYUmphRWx1WkdWNElDc2daM0p2ZFhCektTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYldGMFkyaEpibVJsZUNBclBTQm5jbTkxY0hNN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmJiV0YwWTJobGN5d2dZV3hzWFR0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnVzIxaGRHTm9aWE1zSUh0OVhUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJrWVhSbFZHbHRaVVp5YjIxTllYUmphR1Z6S0cxaGRHTm9aWE1wSUh0Y2JpQWdZMjl1YzNRZ2RHOUdhV1ZzWkNBOUlDaDBiMnRsYmlrZ1BUNGdlMXh1SUNBZ0lITjNhWFJqYUNBb2RHOXJaVzRwSUh0Y2JpQWdJQ0FnSUdOaGMyVWdYQ0pUWENJNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0ltMXBiR3hwYzJWamIyNWtYQ0k3WEc0Z0lDQWdJQ0JqWVhObElGd2ljMXdpT2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWENKelpXTnZibVJjSWp0Y2JpQWdJQ0FnSUdOaGMyVWdYQ0p0WENJNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0ltMXBiblYwWlZ3aU8xeHVJQ0FnSUNBZ1kyRnpaU0JjSW1oY0lqcGNiaUFnSUNBZ0lHTmhjMlVnWENKSVhDSTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbWh2ZFhKY0lqdGNiaUFnSUNBZ0lHTmhjMlVnWENKa1hDSTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbVJoZVZ3aU8xeHVJQ0FnSUNBZ1kyRnpaU0JjSW05Y0lqcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGd2liM0prYVc1aGJGd2lPMXh1SUNBZ0lDQWdZMkZ6WlNCY0lreGNJanBjYmlBZ0lDQWdJR05oYzJVZ1hDSk5YQ0k2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJjSW0xdmJuUm9YQ0k3WEc0Z0lDQWdJQ0JqWVhObElGd2llVndpT2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWENKNVpXRnlYQ0k3WEc0Z0lDQWdJQ0JqWVhObElGd2lSVndpT2x4dUlDQWdJQ0FnWTJGelpTQmNJbU5jSWpwY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aWQyVmxhMlJoZVZ3aU8xeHVJQ0FnSUNBZ1kyRnpaU0JjSWxkY0lqcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGd2lkMlZsYTA1MWJXSmxjbHdpTzF4dUlDQWdJQ0FnWTJGelpTQmNJbXRjSWpwY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ3aWQyVmxhMWxsWVhKY0lqdGNiaUFnSUNBZ0lHTmhjMlVnWENKeFhDSTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbkYxWVhKMFpYSmNJanRjYmlBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCc1pYUWdlbTl1WlNBOUlHNTFiR3c3WEc0Z0lHeGxkQ0J6Y0dWamFXWnBZMDltWm5ObGREdGNiaUFnYVdZZ0tDRnBjMVZ1WkdWbWFXNWxaQ2h0WVhSamFHVnpMbm9wS1NCN1hHNGdJQ0FnZW05dVpTQTlJRWxCVGtGYWIyNWxMbU55WldGMFpTaHRZWFJqYUdWekxub3BPMXh1SUNCOVhHNWNiaUFnYVdZZ0tDRnBjMVZ1WkdWbWFXNWxaQ2h0WVhSamFHVnpMbG9wS1NCN1hHNGdJQ0FnYVdZZ0tDRjZiMjVsS1NCN1hHNGdJQ0FnSUNCNmIyNWxJRDBnYm1WM0lFWnBlR1ZrVDJabWMyVjBXbTl1WlNodFlYUmphR1Z6TGxvcE8xeHVJQ0FnSUgxY2JpQWdJQ0J6Y0dWamFXWnBZMDltWm5ObGRDQTlJRzFoZEdOb1pYTXVXanRjYmlBZ2ZWeHVYRzRnSUdsbUlDZ2hhWE5WYm1SbFptbHVaV1FvYldGMFkyaGxjeTV4S1NrZ2UxeHVJQ0FnSUcxaGRHTm9aWE11VFNBOUlDaHRZWFJqYUdWekxuRWdMU0F4S1NBcUlETWdLeUF4TzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0ZwYzFWdVpHVm1hVzVsWkNodFlYUmphR1Z6TG1ncEtTQjdYRzRnSUNBZ2FXWWdLRzFoZEdOb1pYTXVhQ0E4SURFeUlDWW1JRzFoZEdOb1pYTXVZU0E5UFQwZ01Ta2dlMXh1SUNBZ0lDQWdiV0YwWTJobGN5NW9JQ3M5SURFeU8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2JXRjBZMmhsY3k1b0lEMDlQU0F4TWlBbUppQnRZWFJqYUdWekxtRWdQVDA5SURBcElIdGNiaUFnSUNBZ0lHMWhkR05vWlhNdWFDQTlJREE3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnYVdZZ0tHMWhkR05vWlhNdVJ5QTlQVDBnTUNBbUppQnRZWFJqYUdWekxua3BJSHRjYmlBZ0lDQnRZWFJqYUdWekxua2dQU0F0YldGMFkyaGxjeTU1TzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0ZwYzFWdVpHVm1hVzVsWkNodFlYUmphR1Z6TG5VcEtTQjdYRzRnSUNBZ2JXRjBZMmhsY3k1VElEMGdjR0Z5YzJWTmFXeHNhWE1vYldGMFkyaGxjeTUxS1R0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUhaaGJITWdQU0JQWW1wbFkzUXVhMlY1Y3lodFlYUmphR1Z6S1M1eVpXUjFZMlVvS0hJc0lHc3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQm1JRDBnZEc5R2FXVnNaQ2hyS1R0Y2JpQWdJQ0JwWmlBb1ppa2dlMXh1SUNBZ0lDQWdjbHRtWFNBOUlHMWhkR05vWlhOYmExMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhJN1hHNGdJSDBzSUh0OUtUdGNibHh1SUNCeVpYUjFjbTRnVzNaaGJITXNJSHB2Ym1Vc0lITndaV05wWm1salQyWm1jMlYwWFR0Y2JuMWNibHh1YkdWMElHUjFiVzE1UkdGMFpWUnBiV1ZEWVdOb1pTQTlJRzUxYkd3N1hHNWNibVoxYm1OMGFXOXVJR2RsZEVSMWJXMTVSR0YwWlZScGJXVW9LU0I3WEc0Z0lHbG1JQ2doWkhWdGJYbEVZWFJsVkdsdFpVTmhZMmhsS1NCN1hHNGdJQ0FnWkhWdGJYbEVZWFJsVkdsdFpVTmhZMmhsSUQwZ1JHRjBaVlJwYldVdVpuSnZiVTFwYkd4cGN5Z3hOVFUxTlRVMU5UVTFOVFUxS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCa2RXMXRlVVJoZEdWVWFXMWxRMkZqYUdVN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUcxaGVXSmxSWGh3WVc1a1RXRmpjbTlVYjJ0bGJpaDBiMnRsYml3Z2JHOWpZV3hsS1NCN1hHNGdJR2xtSUNoMGIydGxiaTVzYVhSbGNtRnNLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnZhMlZ1TzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWm05eWJXRjBUM0IwY3lBOUlFWnZjbTFoZEhSbGNpNXRZV055YjFSdmEyVnVWRzlHYjNKdFlYUlBjSFJ6S0hSdmEyVnVMblpoYkNrN1hHNWNiaUFnYVdZZ0tDRm1iM0p0WVhSUGNIUnpLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnZhMlZ1TzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWm05eWJXRjBkR1Z5SUQwZ1JtOXliV0YwZEdWeUxtTnlaV0YwWlNoc2IyTmhiR1VzSUdadmNtMWhkRTl3ZEhNcE8xeHVJQ0JqYjI1emRDQndZWEowY3lBOUlHWnZjbTFoZEhSbGNpNW1iM0p0WVhSRVlYUmxWR2x0WlZCaGNuUnpLR2RsZEVSMWJXMTVSR0YwWlZScGJXVW9LU2s3WEc1Y2JpQWdZMjl1YzNRZ2RHOXJaVzV6SUQwZ2NHRnlkSE11YldGd0tDaHdLU0E5UGlCMGIydGxia1p2Y2xCaGNuUW9jQ3dnYkc5allXeGxMQ0JtYjNKdFlYUlBjSFJ6S1NrN1hHNWNiaUFnYVdZZ0tIUnZhMlZ1Y3k1cGJtTnNkV1JsY3loMWJtUmxabWx1WldRcEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSdmEyVnVPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSFJ2YTJWdWN6dGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pYaHdZVzVrVFdGamNtOVViMnRsYm5Nb2RHOXJaVzV6TENCc2IyTmhiR1VwSUh0Y2JpQWdjbVYwZFhKdUlFRnljbUY1TG5CeWIzUnZkSGx3WlM1amIyNWpZWFFvTGk0dWRHOXJaVzV6TG0xaGNDZ29kQ2tnUFQ0Z2JXRjVZbVZGZUhCaGJtUk5ZV055YjFSdmEyVnVLSFFzSUd4dlkyRnNaU2twS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJBY0hKcGRtRjBaVnh1SUNvdlhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxlSEJzWVdsdVJuSnZiVlJ2YTJWdWN5aHNiMk5oYkdVc0lHbHVjSFYwTENCbWIzSnRZWFFwSUh0Y2JpQWdZMjl1YzNRZ2RHOXJaVzV6SUQwZ1pYaHdZVzVrVFdGamNtOVViMnRsYm5Nb1JtOXliV0YwZEdWeUxuQmhjbk5sUm05eWJXRjBLR1p2Y20xaGRDa3NJR3h2WTJGc1pTa3NYRzRnSUNBZ2RXNXBkSE1nUFNCMGIydGxibk11YldGd0tDaDBLU0E5UGlCMWJtbDBSbTl5Vkc5clpXNG9kQ3dnYkc5allXeGxLU2tzWEc0Z0lDQWdaR2x6Y1hWaGJHbG1lV2x1WjFWdWFYUWdQU0IxYm1sMGN5NW1hVzVrS0NoMEtTQTlQaUIwTG1sdWRtRnNhV1JTWldGemIyNHBPMXh1WEc0Z0lHbG1JQ2hrYVhOeGRXRnNhV1o1YVc1blZXNXBkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdJR2x1Y0hWMExDQjBiMnRsYm5Nc0lHbHVkbUZzYVdSU1pXRnpiMjQ2SUdScGMzRjFZV3hwWm5scGJtZFZibWwwTG1sdWRtRnNhV1JTWldGemIyNGdmVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0JqYjI1emRDQmJjbVZuWlhoVGRISnBibWNzSUdoaGJtUnNaWEp6WFNBOUlHSjFhV3hrVW1WblpYZ29kVzVwZEhNcExGeHVJQ0FnSUNBZ2NtVm5aWGdnUFNCU1pXZEZlSEFvY21WblpYaFRkSEpwYm1jc0lGd2lhVndpS1N4Y2JpQWdJQ0FnSUZ0eVlYZE5ZWFJqYUdWekxDQnRZWFJqYUdWelhTQTlJRzFoZEdOb0tHbHVjSFYwTENCeVpXZGxlQ3dnYUdGdVpHeGxjbk1wTEZ4dUlDQWdJQ0FnVzNKbGMzVnNkQ3dnZW05dVpTd2djM0JsWTJsbWFXTlBabVp6WlhSZElEMGdiV0YwWTJobGMxeHVJQ0FnSUNBZ0lDQS9JR1JoZEdWVWFXMWxSbkp2YlUxaGRHTm9aWE1vYldGMFkyaGxjeWxjYmlBZ0lDQWdJQ0FnT2lCYmJuVnNiQ3dnYm5Wc2JDd2dkVzVrWldacGJtVmtYVHRjYmlBZ0lDQnBaaUFvYUdGelQzZHVVSEp2Y0dWeWRIa29iV0YwWTJobGN5d2dYQ0poWENJcElDWW1JR2hoYzA5M2JsQnliM0JsY25SNUtHMWhkR05vWlhNc0lGd2lTRndpS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFTnZibVpzYVdOMGFXNW5VM0JsWTJsbWFXTmhkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWtOaGJpZDBJR2x1WTJ4MVpHVWdiV1Z5YVdScFpXMGdkMmhsYmlCemNHVmphV1o1YVc1bklESTBMV2h2ZFhJZ1ptOXliV0YwWENKY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdJR2x1Y0hWMExDQjBiMnRsYm5Nc0lISmxaMlY0TENCeVlYZE5ZWFJqYUdWekxDQnRZWFJqYUdWekxDQnlaWE4xYkhRc0lIcHZibVVzSUhOd1pXTnBabWxqVDJabWMyVjBJSDA3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCaGNuTmxSbkp2YlZSdmEyVnVjeWhzYjJOaGJHVXNJR2x1Y0hWMExDQm1iM0p0WVhRcElIdGNiaUFnWTI5dWMzUWdleUJ5WlhOMWJIUXNJSHB2Ym1Vc0lITndaV05wWm1salQyWm1jMlYwTENCcGJuWmhiR2xrVW1WaGMyOXVJSDBnUFNCbGVIQnNZV2x1Um5KdmJWUnZhMlZ1Y3loc2IyTmhiR1VzSUdsdWNIVjBMQ0JtYjNKdFlYUXBPMXh1SUNCeVpYUjFjbTRnVzNKbGMzVnNkQ3dnZW05dVpTd2djM0JsWTJsbWFXTlBabVp6WlhRc0lHbHVkbUZzYVdSU1pXRnpiMjVkTzF4dWZWeHVJaXdnSW1sdGNHOXlkQ0I3WEc0Z0lHbHVkR1ZuWlhKQ1pYUjNaV1Z1TEZ4dUlDQnBjMHhsWVhCWlpXRnlMRnh1SUNCMGFXMWxUMkpxWldOMExGeHVJQ0JrWVhselNXNVpaV0Z5TEZ4dUlDQmtZWGx6U1c1TmIyNTBhQ3hjYmlBZ2QyVmxhM05KYmxkbFpXdFpaV0Z5TEZ4dUlDQnBjMGx1ZEdWblpYSXNYRzU5SUdaeWIyMGdYQ0l1TDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENCSmJuWmhiR2xrSUdaeWIyMGdYQ0l1TDJsdWRtRnNhV1F1YW5OY0lqdGNibHh1WTI5dWMzUWdibTl1VEdWaGNFeGhaR1JsY2lBOUlGc3dMQ0F6TVN3Z05Ua3NJRGt3TENBeE1qQXNJREUxTVN3Z01UZ3hMQ0F5TVRJc0lESTBNeXdnTWpjekxDQXpNRFFzSURNek5GMHNYRzRnSUd4bFlYQk1ZV1JrWlhJZ1BTQmJNQ3dnTXpFc0lEWXdMQ0E1TVN3Z01USXhMQ0F4TlRJc0lERTRNaXdnTWpFekxDQXlORFFzSURJM05Dd2dNekExTENBek16VmRPMXh1WEc1bWRXNWpkR2x2YmlCMWJtbDBUM1YwVDJaU1lXNW5aU2gxYm1sMExDQjJZV3gxWlNrZ2UxeHVJQ0J5WlhSMWNtNGdibVYzSUVsdWRtRnNhV1FvWEc0Z0lDQWdYQ0oxYm1sMElHOTFkQ0J2WmlCeVlXNW5aVndpTEZ4dUlDQWdJR0I1YjNVZ2MzQmxZMmxtYVdWa0lDUjdkbUZzZFdWOUlDaHZaaUIwZVhCbElDUjdkSGx3Wlc5bUlIWmhiSFZsZlNrZ1lYTWdZU0FrZTNWdWFYUjlMQ0IzYUdsamFDQnBjeUJwYm5aaGJHbGtZRnh1SUNBcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCa1lYbFBabGRsWldzb2VXVmhjaXdnYlc5dWRHZ3NJR1JoZVNrZ2UxeHVJQ0JqYjI1emRDQmtJRDBnYm1WM0lFUmhkR1VvUkdGMFpTNVZWRU1vZVdWaGNpd2diVzl1ZEdnZ0xTQXhMQ0JrWVhrcEtUdGNibHh1SUNCcFppQW9lV1ZoY2lBOElERXdNQ0FtSmlCNVpXRnlJRDQ5SURBcElIdGNiaUFnSUNCa0xuTmxkRlZVUTBaMWJHeFpaV0Z5S0dRdVoyVjBWVlJEUm5Wc2JGbGxZWElvS1NBdElERTVNREFwTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYW5NZ1BTQmtMbWRsZEZWVVEwUmhlU2dwTzF4dVhHNGdJSEpsZEhWeWJpQnFjeUE5UFQwZ01DQS9JRGNnT2lCcWN6dGNibjFjYmx4dVpuVnVZM1JwYjI0Z1kyOXRjSFYwWlU5eVpHbHVZV3dvZVdWaGNpd2diVzl1ZEdnc0lHUmhlU2tnZTF4dUlDQnlaWFIxY200Z1pHRjVJQ3NnS0dselRHVmhjRmxsWVhJb2VXVmhjaWtnUHlCc1pXRndUR0ZrWkdWeUlEb2dibTl1VEdWaGNFeGhaR1JsY2lsYmJXOXVkR2dnTFNBeFhUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2RXNWpiMjF3ZFhSbFQzSmthVzVoYkNoNVpXRnlMQ0J2Y21ScGJtRnNLU0I3WEc0Z0lHTnZibk4wSUhSaFlteGxJRDBnYVhOTVpXRndXV1ZoY2loNVpXRnlLU0EvSUd4bFlYQk1ZV1JrWlhJZ09pQnViMjVNWldGd1RHRmtaR1Z5TEZ4dUlDQWdJRzF2Ym5Sb01DQTlJSFJoWW14bExtWnBibVJKYm1SbGVDZ29hU2tnUFQ0Z2FTQThJRzl5WkdsdVlXd3BMRnh1SUNBZ0lHUmhlU0E5SUc5eVpHbHVZV3dnTFNCMFlXSnNaVnR0YjI1MGFEQmRPMXh1SUNCeVpYUjFjbTRnZXlCdGIyNTBhRG9nYlc5dWRHZ3dJQ3NnTVN3Z1pHRjVJSDA3WEc1OVhHNWNiaThxS2x4dUlDb2dRSEJ5YVhaaGRHVmNiaUFxTDF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1ozSmxaMjl5YVdGdVZHOVhaV1ZyS0dkeVpXZFBZbW9wSUh0Y2JpQWdZMjl1YzNRZ2V5QjVaV0Z5TENCdGIyNTBhQ3dnWkdGNUlIMGdQU0JuY21WblQySnFMRnh1SUNBZ0lHOXlaR2x1WVd3Z1BTQmpiMjF3ZFhSbFQzSmthVzVoYkNoNVpXRnlMQ0J0YjI1MGFDd2daR0Y1S1N4Y2JpQWdJQ0IzWldWclpHRjVJRDBnWkdGNVQyWlhaV1ZyS0hsbFlYSXNJRzF2Ym5Sb0xDQmtZWGtwTzF4dVhHNGdJR3hsZENCM1pXVnJUblZ0WW1WeUlEMGdUV0YwYUM1bWJHOXZjaWdvYjNKa2FXNWhiQ0F0SUhkbFpXdGtZWGtnS3lBeE1Da2dMeUEzS1N4Y2JpQWdJQ0IzWldWcldXVmhjanRjYmx4dUlDQnBaaUFvZDJWbGEwNTFiV0psY2lBOElERXBJSHRjYmlBZ0lDQjNaV1ZyV1dWaGNpQTlJSGxsWVhJZ0xTQXhPMXh1SUNBZ0lIZGxaV3RPZFcxaVpYSWdQU0IzWldWcmMwbHVWMlZsYTFsbFlYSW9kMlZsYTFsbFlYSXBPMXh1SUNCOUlHVnNjMlVnYVdZZ0tIZGxaV3RPZFcxaVpYSWdQaUIzWldWcmMwbHVWMlZsYTFsbFlYSW9lV1ZoY2lrcElIdGNiaUFnSUNCM1pXVnJXV1ZoY2lBOUlIbGxZWElnS3lBeE8xeHVJQ0FnSUhkbFpXdE9kVzFpWlhJZ1BTQXhPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSGRsWld0WlpXRnlJRDBnZVdWaGNqdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQjdJSGRsWld0WlpXRnlMQ0IzWldWclRuVnRZbVZ5TENCM1pXVnJaR0Y1TENBdUxpNTBhVzFsVDJKcVpXTjBLR2R5WldkUFltb3BJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjNaV1ZyVkc5SGNtVm5iM0pwWVc0b2QyVmxhMFJoZEdFcElIdGNiaUFnWTI5dWMzUWdleUIzWldWcldXVmhjaXdnZDJWbGEwNTFiV0psY2l3Z2QyVmxhMlJoZVNCOUlEMGdkMlZsYTBSaGRHRXNYRzRnSUNBZ2QyVmxhMlJoZVU5bVNtRnVOQ0E5SUdSaGVVOW1WMlZsYXloM1pXVnJXV1ZoY2l3Z01Td2dOQ2tzWEc0Z0lDQWdlV1ZoY2tsdVJHRjVjeUE5SUdSaGVYTkpibGxsWVhJb2QyVmxhMWxsWVhJcE8xeHVYRzRnSUd4bGRDQnZjbVJwYm1Gc0lEMGdkMlZsYTA1MWJXSmxjaUFxSURjZ0t5QjNaV1ZyWkdGNUlDMGdkMlZsYTJSaGVVOW1TbUZ1TkNBdElETXNYRzRnSUNBZ2VXVmhjanRjYmx4dUlDQnBaaUFvYjNKa2FXNWhiQ0E4SURFcElIdGNiaUFnSUNCNVpXRnlJRDBnZDJWbGExbGxZWElnTFNBeE8xeHVJQ0FnSUc5eVpHbHVZV3dnS3owZ1pHRjVjMGx1V1dWaGNpaDVaV0Z5S1R0Y2JpQWdmU0JsYkhObElHbG1JQ2h2Y21ScGJtRnNJRDRnZVdWaGNrbHVSR0Y1Y3lrZ2UxeHVJQ0FnSUhsbFlYSWdQU0IzWldWcldXVmhjaUFySURFN1hHNGdJQ0FnYjNKa2FXNWhiQ0F0UFNCa1lYbHpTVzVaWldGeUtIZGxaV3RaWldGeUtUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQjVaV0Z5SUQwZ2QyVmxhMWxsWVhJN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCN0lHMXZiblJvTENCa1lYa2dmU0E5SUhWdVkyOXRjSFYwWlU5eVpHbHVZV3dvZVdWaGNpd2diM0prYVc1aGJDazdYRzRnSUhKbGRIVnliaUI3SUhsbFlYSXNJRzF2Ym5Sb0xDQmtZWGtzSUM0dUxuUnBiV1ZQWW1wbFkzUW9kMlZsYTBSaGRHRXBJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5jbVZuYjNKcFlXNVViMDl5WkdsdVlXd29aM0psWjBSaGRHRXBJSHRjYmlBZ1kyOXVjM1FnZXlCNVpXRnlMQ0J0YjI1MGFDd2daR0Y1SUgwZ1BTQm5jbVZuUkdGMFlUdGNiaUFnWTI5dWMzUWdiM0prYVc1aGJDQTlJR052YlhCMWRHVlBjbVJwYm1Gc0tIbGxZWElzSUcxdmJuUm9MQ0JrWVhrcE8xeHVJQ0J5WlhSMWNtNGdleUI1WldGeUxDQnZjbVJwYm1Gc0xDQXVMaTUwYVcxbFQySnFaV04wS0dkeVpXZEVZWFJoS1NCOU8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYjNKa2FXNWhiRlJ2UjNKbFoyOXlhV0Z1S0c5eVpHbHVZV3hFWVhSaEtTQjdYRzRnSUdOdmJuTjBJSHNnZVdWaGNpd2diM0prYVc1aGJDQjlJRDBnYjNKa2FXNWhiRVJoZEdFN1hHNGdJR052Ym5OMElIc2diVzl1ZEdnc0lHUmhlU0I5SUQwZ2RXNWpiMjF3ZFhSbFQzSmthVzVoYkNoNVpXRnlMQ0J2Y21ScGJtRnNLVHRjYmlBZ2NtVjBkWEp1SUhzZ2VXVmhjaXdnYlc5dWRHZ3NJR1JoZVN3Z0xpNHVkR2x0WlU5aWFtVmpkQ2h2Y21ScGJtRnNSR0YwWVNrZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGMwbHVkbUZzYVdSWFpXVnJSR0YwWVNodlltb3BJSHRjYmlBZ1kyOXVjM1FnZG1Gc2FXUlpaV0Z5SUQwZ2FYTkpiblJsWjJWeUtHOWlhaTUzWldWcldXVmhjaWtzWEc0Z0lDQWdkbUZzYVdSWFpXVnJJRDBnYVc1MFpXZGxja0psZEhkbFpXNG9iMkpxTG5kbFpXdE9kVzFpWlhJc0lERXNJSGRsWld0elNXNVhaV1ZyV1dWaGNpaHZZbW91ZDJWbGExbGxZWElwS1N4Y2JpQWdJQ0IyWVd4cFpGZGxaV3RrWVhrZ1BTQnBiblJsWjJWeVFtVjBkMlZsYmlodlltb3VkMlZsYTJSaGVTd2dNU3dnTnlrN1hHNWNiaUFnYVdZZ0tDRjJZV3hwWkZsbFlYSXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RXNXBkRTkxZEU5bVVtRnVaMlVvWENKM1pXVnJXV1ZoY2x3aUxDQnZZbW91ZDJWbGExbGxZWElwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLQ0YyWVd4cFpGZGxaV3NwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkVzVwZEU5MWRFOW1VbUZ1WjJVb1hDSjNaV1ZyWENJc0lHOWlhaTUzWldWcktUdGNiaUFnZlNCbGJITmxJR2xtSUNnaGRtRnNhV1JYWldWclpHRjVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIVnVhWFJQZFhSUFpsSmhibWRsS0Z3aWQyVmxhMlJoZVZ3aUxDQnZZbW91ZDJWbGEyUmhlU2s3WEc0Z0lIMGdaV3h6WlNCeVpYUjFjbTRnWm1Gc2MyVTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb1lYTkpiblpoYkdsa1QzSmthVzVoYkVSaGRHRW9iMkpxS1NCN1hHNGdJR052Ym5OMElIWmhiR2xrV1dWaGNpQTlJR2x6U1c1MFpXZGxjaWh2WW1vdWVXVmhjaWtzWEc0Z0lDQWdkbUZzYVdSUGNtUnBibUZzSUQwZ2FXNTBaV2RsY2tKbGRIZGxaVzRvYjJKcUxtOXlaR2x1WVd3c0lERXNJR1JoZVhOSmJsbGxZWElvYjJKcUxubGxZWElwS1R0Y2JseHVJQ0JwWmlBb0lYWmhiR2xrV1dWaGNpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtbDBUM1YwVDJaU1lXNW5aU2hjSW5sbFlYSmNJaXdnYjJKcUxubGxZWElwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLQ0YyWVd4cFpFOXlaR2x1WVd3cElIdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRFOTFkRTltVW1GdVoyVW9YQ0p2Y21ScGJtRnNYQ0lzSUc5aWFpNXZjbVJwYm1Gc0tUdGNiaUFnZlNCbGJITmxJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYzBsdWRtRnNhV1JIY21WbmIzSnBZVzVFWVhSaEtHOWlhaWtnZTF4dUlDQmpiMjV6ZENCMllXeHBaRmxsWVhJZ1BTQnBjMGx1ZEdWblpYSW9iMkpxTG5sbFlYSXBMRnh1SUNBZ0lIWmhiR2xrVFc5dWRHZ2dQU0JwYm5SbFoyVnlRbVYwZDJWbGJpaHZZbW91Ylc5dWRHZ3NJREVzSURFeUtTeGNiaUFnSUNCMllXeHBaRVJoZVNBOUlHbHVkR1ZuWlhKQ1pYUjNaV1Z1S0c5aWFpNWtZWGtzSURFc0lHUmhlWE5KYmsxdmJuUm9LRzlpYWk1NVpXRnlMQ0J2WW1vdWJXOXVkR2dwS1R0Y2JseHVJQ0JwWmlBb0lYWmhiR2xrV1dWaGNpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtbDBUM1YwVDJaU1lXNW5aU2hjSW5sbFlYSmNJaXdnYjJKcUxubGxZWElwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLQ0YyWVd4cFpFMXZiblJvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFZ1YVhSUGRYUlBabEpoYm1kbEtGd2liVzl1ZEdoY0lpd2diMkpxTG0xdmJuUm9LVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDZ2hkbUZzYVdSRVlYa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RXNXBkRTkxZEU5bVVtRnVaMlVvWENKa1lYbGNJaXdnYjJKcUxtUmhlU2s3WEc0Z0lIMGdaV3h6WlNCeVpYUjFjbTRnWm1Gc2MyVTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb1lYTkpiblpoYkdsa1ZHbHRaVVJoZEdFb2IySnFLU0I3WEc0Z0lHTnZibk4wSUhzZ2FHOTFjaXdnYldsdWRYUmxMQ0J6WldOdmJtUXNJRzFwYkd4cGMyVmpiMjVrSUgwZ1BTQnZZbW83WEc0Z0lHTnZibk4wSUhaaGJHbGtTRzkxY2lBOVhHNGdJQ0FnSUNCcGJuUmxaMlZ5UW1WMGQyVmxiaWhvYjNWeUxDQXdMQ0F5TXlrZ2ZIeGNiaUFnSUNBZ0lDaG9iM1Z5SUQwOVBTQXlOQ0FtSmlCdGFXNTFkR1VnUFQwOUlEQWdKaVlnYzJWamIyNWtJRDA5UFNBd0lDWW1JRzFwYkd4cGMyVmpiMjVrSUQwOVBTQXdLU3hjYmlBZ0lDQjJZV3hwWkUxcGJuVjBaU0E5SUdsdWRHVm5aWEpDWlhSM1pXVnVLRzFwYm5WMFpTd2dNQ3dnTlRrcExGeHVJQ0FnSUhaaGJHbGtVMlZqYjI1a0lEMGdhVzUwWldkbGNrSmxkSGRsWlc0b2MyVmpiMjVrTENBd0xDQTFPU2tzWEc0Z0lDQWdkbUZzYVdSTmFXeHNhWE5sWTI5dVpDQTlJR2x1ZEdWblpYSkNaWFIzWldWdUtHMXBiR3hwYzJWamIyNWtMQ0F3TENBNU9Ua3BPMXh1WEc0Z0lHbG1JQ2doZG1Gc2FXUkliM1Z5S1NCN1hHNGdJQ0FnY21WMGRYSnVJSFZ1YVhSUGRYUlBabEpoYm1kbEtGd2lhRzkxY2x3aUxDQm9iM1Z5S1R0Y2JpQWdmU0JsYkhObElHbG1JQ2doZG1Gc2FXUk5hVzUxZEdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRFOTFkRTltVW1GdVoyVW9YQ0p0YVc1MWRHVmNJaXdnYldsdWRYUmxLVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDZ2hkbUZzYVdSVFpXTnZibVFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkVzVwZEU5MWRFOW1VbUZ1WjJVb1hDSnpaV052Ym1SY0lpd2djMlZqYjI1a0tUdGNiaUFnZlNCbGJITmxJR2xtSUNnaGRtRnNhV1JOYVd4c2FYTmxZMjl1WkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIxYm1sMFQzVjBUMlpTWVc1blpTaGNJbTFwYkd4cGMyVmpiMjVrWENJc0lHMXBiR3hwYzJWamIyNWtLVHRjYmlBZ2ZTQmxiSE5sSUhKbGRIVnliaUJtWVd4elpUdGNibjFjYmlJc0lDSnBiWEJ2Y25RZ1JIVnlZWFJwYjI0Z1puSnZiU0JjSWk0dlpIVnlZWFJwYjI0dWFuTmNJanRjYm1sdGNHOXlkQ0JKYm5SbGNuWmhiQ0JtY205dElGd2lMaTlwYm5SbGNuWmhiQzVxYzF3aU8xeHVhVzF3YjNKMElGTmxkSFJwYm1keklHWnliMjBnWENJdUwzTmxkSFJwYm1kekxtcHpYQ0k3WEc1cGJYQnZjblFnU1c1bWJ5Qm1jbTl0SUZ3aUxpOXBibVp2TG1welhDSTdYRzVwYlhCdmNuUWdSbTl5YldGMGRHVnlJR1p5YjIwZ1hDSXVMMmx0Y0d3dlptOXliV0YwZEdWeUxtcHpYQ0k3WEc1cGJYQnZjblFnUm1sNFpXUlBabVp6WlhSYWIyNWxJR1p5YjIwZ1hDSXVMM3B2Ym1WekwyWnBlR1ZrVDJabWMyVjBXbTl1WlM1cWMxd2lPMXh1YVcxd2IzSjBJRXh2WTJGc1pTQm1jbTl0SUZ3aUxpOXBiWEJzTDJ4dlkyRnNaUzVxYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnYVhOVmJtUmxabWx1WldRc1hHNGdJRzFoZVdKbFFYSnlZWGtzWEc0Z0lHbHpSR0YwWlN4Y2JpQWdhWE5PZFcxaVpYSXNYRzRnSUdKbGMzUkNlU3hjYmlBZ1pHRjVjMGx1VFc5dWRHZ3NYRzRnSUdSaGVYTkpibGxsWVhJc1hHNGdJR2x6VEdWaGNGbGxZWElzWEc0Z0lIZGxaV3R6U1c1WFpXVnJXV1ZoY2l4Y2JpQWdibTl5YldGc2FYcGxUMkpxWldOMExGeHVJQ0J5YjNWdVpGUnZMRnh1SUNCdlltcFViMHh2WTJGc1ZGTXNYRzRnSUhCaFpGTjBZWEowTEZ4dWZTQm1jbTl0SUZ3aUxpOXBiWEJzTDNWMGFXd3Vhbk5jSWp0Y2JtbHRjRzl5ZENCN0lHNXZjbTFoYkdsNlpWcHZibVVnZlNCbWNtOXRJRndpTGk5cGJYQnNMM3B2Ym1WVmRHbHNMbXB6WENJN1hHNXBiWEJ2Y25RZ1pHbG1aaUJtY205dElGd2lMaTlwYlhCc0wyUnBabVl1YW5OY0lqdGNibWx0Y0c5eWRDQjdJSEJoY25ObFVrWkRNamd5TWtSaGRHVXNJSEJoY25ObFNWTlBSR0YwWlN3Z2NHRnljMlZJVkZSUVJHRjBaU3dnY0dGeWMyVlRVVXdnZlNCbWNtOXRJRndpTGk5cGJYQnNMM0psWjJWNFVHRnljMlZ5TG1welhDSTdYRzVwYlhCdmNuUWdleUJ3WVhKelpVWnliMjFVYjJ0bGJuTXNJR1Y0Y0d4aGFXNUdjbTl0Vkc5clpXNXpJSDBnWm5KdmJTQmNJaTR2YVcxd2JDOTBiMnRsYmxCaGNuTmxjaTVxYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnWjNKbFoyOXlhV0Z1Vkc5WFpXVnJMRnh1SUNCM1pXVnJWRzlIY21WbmIzSnBZVzRzWEc0Z0lHZHlaV2R2Y21saGJsUnZUM0prYVc1aGJDeGNiaUFnYjNKa2FXNWhiRlJ2UjNKbFoyOXlhV0Z1TEZ4dUlDQm9ZWE5KYm5aaGJHbGtSM0psWjI5eWFXRnVSR0YwWVN4Y2JpQWdhR0Z6U1c1MllXeHBaRmRsWld0RVlYUmhMRnh1SUNCb1lYTkpiblpoYkdsa1QzSmthVzVoYkVSaGRHRXNYRzRnSUdoaGMwbHVkbUZzYVdSVWFXMWxSR0YwWVN4Y2JuMGdabkp2YlNCY0lpNHZhVzF3YkM5amIyNTJaWEp6YVc5dWN5NXFjMXdpTzF4dWFXMXdiM0owSUNvZ1lYTWdSbTl5YldGMGN5Qm1jbTl0SUZ3aUxpOXBiWEJzTDJadmNtMWhkSE11YW5OY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUxGeHVJQ0JEYjI1bWJHbGpkR2x1WjFOd1pXTnBabWxqWVhScGIyNUZjbkp2Y2l4Y2JpQWdTVzUyWVd4cFpGVnVhWFJGY25KdmNpeGNiaUFnU1c1MllXeHBaRVJoZEdWVWFXMWxSWEp5YjNJc1hHNTlJR1p5YjIwZ1hDSXVMMlZ5Y205eWN5NXFjMXdpTzF4dWFXMXdiM0owSUVsdWRtRnNhV1FnWm5KdmJTQmNJaTR2YVcxd2JDOXBiblpoYkdsa0xtcHpYQ0k3WEc1Y2JtTnZibk4wSUVsT1ZrRk1TVVFnUFNCY0lrbHVkbUZzYVdRZ1JHRjBaVlJwYldWY0lqdGNibU52Ym5OMElFMUJXRjlFUVZSRklEMGdPQzQyTkdVeE5UdGNibHh1Wm5WdVkzUnBiMjRnZFc1emRYQndiM0owWldSYWIyNWxLSHB2Ym1VcElIdGNiaUFnY21WMGRYSnVJRzVsZHlCSmJuWmhiR2xrS0Z3aWRXNXpkWEJ3YjNKMFpXUWdlbTl1WlZ3aUxDQmdkR2hsSUhwdmJtVWdYQ0lrZTNwdmJtVXVibUZ0WlgxY0lpQnBjeUJ1YjNRZ2MzVndjRzl5ZEdWa1lDazdYRzU5WEc1Y2JpOHZJSGRsSUdOaFkyaGxJSGRsWldzZ1pHRjBZU0J2YmlCMGFHVWdSRlFnYjJKcVpXTjBJR0Z1WkNCMGFHbHpJR2x1ZEdWeWJXVmthV0YwWlhNZ2RHaGxJR05oWTJobFhHNW1kVzVqZEdsdmJpQndiM056YVdKc2VVTmhZMmhsWkZkbFpXdEVZWFJoS0dSMEtTQjdYRzRnSUdsbUlDaGtkQzUzWldWclJHRjBZU0E5UFQwZ2JuVnNiQ2tnZTF4dUlDQWdJR1IwTG5kbFpXdEVZWFJoSUQwZ1ozSmxaMjl5YVdGdVZHOVhaV1ZyS0dSMExtTXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQmtkQzUzWldWclJHRjBZVHRjYm4xY2JseHVMeThnWTJ4dmJtVWdjbVZoYkd4NUlHMWxZVzV6TENCY0ltMWhhMlVnWVNCdVpYY2diMkpxWldOMElIZHBkR2dnZEdobGMyVWdiVzlrYVdacFkyRjBhVzl1YzF3aUxpQmhiR3dnWENKelpYUjBaWEp6WENJZ2NtVmhiR3g1SUhWelpTQjBhR2x6WEc0dkx5QjBieUJqY21WaGRHVWdZU0J1WlhjZ2IySnFaV04wSUhkb2FXeGxJRzl1YkhrZ1kyaGhibWRwYm1jZ2MyOXRaU0J2WmlCMGFHVWdjSEp2Y0dWeWRHbGxjMXh1Wm5WdVkzUnBiMjRnWTJ4dmJtVW9hVzV6ZEN3Z1lXeDBjeWtnZTF4dUlDQmpiMjV6ZENCamRYSnlaVzUwSUQwZ2UxeHVJQ0FnSUhSek9pQnBibk4wTG5SekxGeHVJQ0FnSUhwdmJtVTZJR2x1YzNRdWVtOXVaU3hjYmlBZ0lDQmpPaUJwYm5OMExtTXNYRzRnSUNBZ2J6b2dhVzV6ZEM1dkxGeHVJQ0FnSUd4dll6b2dhVzV6ZEM1c2IyTXNYRzRnSUNBZ2FXNTJZV3hwWkRvZ2FXNXpkQzVwYm5aaGJHbGtMRnh1SUNCOU8xeHVJQ0J5WlhSMWNtNGdibVYzSUVSaGRHVlVhVzFsS0hzZ0xpNHVZM1Z5Y21WdWRDd2dMaTR1WVd4MGN5d2diMnhrT2lCamRYSnlaVzUwSUgwcE8xeHVmVnh1WEc0dkx5Qm1hVzVrSUhSb1pTQnlhV2RvZENCdlptWnpaWFFnWVNCbmFYWmxiaUJzYjJOaGJDQjBhVzFsTGlCVWFHVWdieUJwYm5CMWRDQnBjeUJ2ZFhJZ1ozVmxjM01zSUhkb2FXTm9JR1JsZEdWeWJXbHVaWE1nZDJocFkyaGNiaTh2SUc5bVpuTmxkQ0IzWlNkc2JDQndhV05ySUdsdUlHRnRZbWxuZFc5MWN5QmpZWE5sY3lBb1pTNW5MaUIwYUdWeVpTQmhjbVVnZEhkdklETWdRVTF6SUdJdll5QkdZV3hzWW1GamF5QkVVMVFwWEc1bWRXNWpkR2x2YmlCbWFYaFBabVp6WlhRb2JHOWpZV3hVVXl3Z2J5d2dkSG9wSUh0Y2JpQWdMeThnVDNWeUlGVlVReUIwYVcxbElHbHpJR3AxYzNRZ1lTQm5kV1Z6Y3lCaVpXTmhkWE5sSUc5MWNpQnZabVp6WlhRZ2FYTWdhblZ6ZENCaElHZDFaWE56WEc0Z0lHeGxkQ0IxZEdOSGRXVnpjeUE5SUd4dlkyRnNWRk1nTFNCdklDb2dOakFnS2lBeE1EQXdPMXh1WEc0Z0lDOHZJRlJsYzNRZ2QyaGxkR2hsY2lCMGFHVWdlbTl1WlNCdFlYUmphR1Z6SUhSb1pTQnZabVp6WlhRZ1ptOXlJSFJvYVhNZ2RITmNiaUFnWTI5dWMzUWdieklnUFNCMGVpNXZabVp6WlhRb2RYUmpSM1ZsYzNNcE8xeHVYRzRnSUM4dklFbG1JSE52TENCdlptWnpaWFFnWkdsa2JpZDBJR05vWVc1blpTQmhibVFnZDJVbmNtVWdaRzl1WlZ4dUlDQnBaaUFvYnlBOVBUMGdieklwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdXM1YwWTBkMVpYTnpMQ0J2WFR0Y2JpQWdmVnh1WEc0Z0lDOHZJRWxtSUc1dmRDd2dZMmhoYm1kbElIUm9aU0IwY3lCaWVTQjBhR1VnWkdsbVptVnlaVzVqWlNCcGJpQjBhR1VnYjJabWMyVjBYRzRnSUhWMFkwZDFaWE56SUMwOUlDaHZNaUF0SUc4cElDb2dOakFnS2lBeE1EQXdPMXh1WEc0Z0lDOHZJRWxtSUhSb1lYUWdaMmwyWlhNZ2RYTWdkR2hsSUd4dlkyRnNJSFJwYldVZ2QyVWdkMkZ1ZEN3Z2QyVW5jbVVnWkc5dVpWeHVJQ0JqYjI1emRDQnZNeUE5SUhSNkxtOW1abk5sZENoMWRHTkhkV1Z6Y3lrN1hHNGdJR2xtSUNodk1pQTlQVDBnYnpNcElIdGNiaUFnSUNCeVpYUjFjbTRnVzNWMFkwZDFaWE56TENCdk1sMDdYRzRnSUgxY2JseHVJQ0F2THlCSlppQnBkQ2R6SUdScFptWmxjbVZ1ZEN3Z2QyVW5jbVVnYVc0Z1lTQm9iMnhsSUhScGJXVXVJRlJvWlNCdlptWnpaWFFnYUdGeklHTm9ZVzVuWldRc0lHSjFkQ0IwYUdVZ2QyVWdaRzl1SjNRZ1lXUnFkWE4wSUhSb1pTQjBhVzFsWEc0Z0lISmxkSFZ5YmlCYmJHOWpZV3hVVXlBdElFMWhkR2d1YldsdUtHOHlMQ0J2TXlrZ0tpQTJNQ0FxSURFd01EQXNJRTFoZEdndWJXRjRLRzh5TENCdk15bGRPMXh1ZlZ4dVhHNHZMeUJqYjI1MlpYSjBJR0Z1SUdWd2IyTm9JSFJwYldWemRHRnRjQ0JwYm5SdklHRWdZMkZzWlc1a1lYSWdiMkpxWldOMElIZHBkR2dnZEdobElHZHBkbVZ1SUc5bVpuTmxkRnh1Wm5WdVkzUnBiMjRnZEhOVWIwOWlhaWgwY3l3Z2IyWm1jMlYwS1NCN1hHNGdJSFJ6SUNzOUlHOW1abk5sZENBcUlEWXdJQ29nTVRBd01EdGNibHh1SUNCamIyNXpkQ0JrSUQwZ2JtVjNJRVJoZEdVb2RITXBPMXh1WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnZVdWaGNqb2daQzVuWlhSVlZFTkdkV3hzV1dWaGNpZ3BMRnh1SUNBZ0lHMXZiblJvT2lCa0xtZGxkRlZVUTAxdmJuUm9LQ2tnS3lBeExGeHVJQ0FnSUdSaGVUb2daQzVuWlhSVlZFTkVZWFJsS0Nrc1hHNGdJQ0FnYUc5MWNqb2daQzVuWlhSVlZFTkliM1Z5Y3lncExGeHVJQ0FnSUcxcGJuVjBaVG9nWkM1blpYUlZWRU5OYVc1MWRHVnpLQ2tzWEc0Z0lDQWdjMlZqYjI1a09pQmtMbWRsZEZWVVExTmxZMjl1WkhNb0tTeGNiaUFnSUNCdGFXeHNhWE5sWTI5dVpEb2daQzVuWlhSVlZFTk5hV3hzYVhObFkyOXVaSE1vS1N4Y2JpQWdmVHRjYm4xY2JseHVMeThnWTI5dWRtVnlkQ0JoSUdOaGJHVnVaR0Z5SUc5aWFtVmpkQ0IwYnlCaElHVndiMk5vSUhScGJXVnpkR0Z0Y0Z4dVpuVnVZM1JwYjI0Z2IySnFWRzlVVXlodlltb3NJRzltWm5ObGRDd2dlbTl1WlNrZ2UxeHVJQ0J5WlhSMWNtNGdabWw0VDJabWMyVjBLRzlpYWxSdlRHOWpZV3hVVXlodlltb3BMQ0J2Wm1aelpYUXNJSHB2Ym1VcE8xeHVmVnh1WEc0dkx5QmpjbVZoZEdVZ1lTQnVaWGNnUkZRZ2FXNXpkR0Z1WTJVZ1lua2dZV1JrYVc1bklHRWdaSFZ5WVhScGIyNHNJR0ZrYW5WemRHbHVaeUJtYjNJZ1JGTlVjMXh1Wm5WdVkzUnBiMjRnWVdScWRYTjBWR2x0WlNocGJuTjBMQ0JrZFhJcElIdGNiaUFnWTI5dWMzUWdiMUJ5WlNBOUlHbHVjM1F1Ynl4Y2JpQWdJQ0I1WldGeUlEMGdhVzV6ZEM1akxubGxZWElnS3lCTllYUm9MblJ5ZFc1aktHUjFjaTU1WldGeWN5a3NYRzRnSUNBZ2JXOXVkR2dnUFNCcGJuTjBMbU11Ylc5dWRHZ2dLeUJOWVhSb0xuUnlkVzVqS0dSMWNpNXRiMjUwYUhNcElDc2dUV0YwYUM1MGNuVnVZeWhrZFhJdWNYVmhjblJsY25NcElDb2dNeXhjYmlBZ0lDQmpJRDBnZTF4dUlDQWdJQ0FnTGk0dWFXNXpkQzVqTEZ4dUlDQWdJQ0FnZVdWaGNpeGNiaUFnSUNBZ0lHMXZiblJvTEZ4dUlDQWdJQ0FnWkdGNU9seHVJQ0FnSUNBZ0lDQk5ZWFJvTG0xcGJpaHBibk4wTG1NdVpHRjVMQ0JrWVhselNXNU5iMjUwYUNoNVpXRnlMQ0J0YjI1MGFDa3BJQ3RjYmlBZ0lDQWdJQ0FnVFdGMGFDNTBjblZ1WXloa2RYSXVaR0Y1Y3lrZ0sxeHVJQ0FnSUNBZ0lDQk5ZWFJvTG5SeWRXNWpLR1IxY2k1M1pXVnJjeWtnS2lBM0xGeHVJQ0FnSUgwc1hHNGdJQ0FnYldsc2JHbHpWRzlCWkdRZ1BTQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHRjYmlBZ0lDQWdJSGxsWVhKek9pQmtkWEl1ZVdWaGNuTWdMU0JOWVhSb0xuUnlkVzVqS0dSMWNpNTVaV0Z5Y3lrc1hHNGdJQ0FnSUNCeGRXRnlkR1Z5Y3pvZ1pIVnlMbkYxWVhKMFpYSnpJQzBnVFdGMGFDNTBjblZ1WXloa2RYSXVjWFZoY25SbGNuTXBMRnh1SUNBZ0lDQWdiVzl1ZEdoek9pQmtkWEl1Ylc5dWRHaHpJQzBnVFdGMGFDNTBjblZ1WXloa2RYSXViVzl1ZEdoektTeGNiaUFnSUNBZ0lIZGxaV3R6T2lCa2RYSXVkMlZsYTNNZ0xTQk5ZWFJvTG5SeWRXNWpLR1IxY2k1M1pXVnJjeWtzWEc0Z0lDQWdJQ0JrWVhsek9pQmtkWEl1WkdGNWN5QXRJRTFoZEdndWRISjFibU1vWkhWeUxtUmhlWE1wTEZ4dUlDQWdJQ0FnYUc5MWNuTTZJR1IxY2k1b2IzVnljeXhjYmlBZ0lDQWdJRzFwYm5WMFpYTTZJR1IxY2k1dGFXNTFkR1Z6TEZ4dUlDQWdJQ0FnYzJWamIyNWtjem9nWkhWeUxuTmxZMjl1WkhNc1hHNGdJQ0FnSUNCdGFXeHNhWE5sWTI5dVpITTZJR1IxY2k1dGFXeHNhWE5sWTI5dVpITXNYRzRnSUNBZ2ZTa3VZWE1vWENKdGFXeHNhWE5sWTI5dVpITmNJaWtzWEc0Z0lDQWdiRzlqWVd4VVV5QTlJRzlpYWxSdlRHOWpZV3hVVXloaktUdGNibHh1SUNCc1pYUWdXM1J6TENCdlhTQTlJR1pwZUU5bVpuTmxkQ2hzYjJOaGJGUlRMQ0J2VUhKbExDQnBibk4wTG5wdmJtVXBPMXh1WEc0Z0lHbG1JQ2h0YVd4c2FYTlViMEZrWkNBaFBUMGdNQ2tnZTF4dUlDQWdJSFJ6SUNzOUlHMXBiR3hwYzFSdlFXUmtPMXh1SUNBZ0lDOHZJSFJvWVhRZ1kyOTFiR1FnYUdGMlpTQmphR0Z1WjJWa0lIUm9aU0J2Wm1aelpYUWdZbmtnWjI5cGJtY2diM1psY2lCaElFUlRWQ3dnWW5WMElIZGxJSGRoYm5RZ2RHOGdhMlZsY0NCMGFHVWdkSE1nZEdobElITmhiV1ZjYmlBZ0lDQnZJRDBnYVc1emRDNTZiMjVsTG05bVpuTmxkQ2gwY3lrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2V5QjBjeXdnYnlCOU8xeHVmVnh1WEc0dkx5Qm9aV3h3WlhJZ2RYTmxablZzSUdsdUlIUjFjbTVwYm1jZ2RHaGxJSEpsYzNWc2RITWdiMllnY0dGeWMybHVaeUJwYm5SdklISmxZV3dnWkdGMFpYTmNiaTh2SUdKNUlHaGhibVJzYVc1bklIUm9aU0I2YjI1bElHOXdkR2x2Ym5OY2JtWjFibU4wYVc5dUlIQmhjbk5sUkdGMFlWUnZSR0YwWlZScGJXVW9jR0Z5YzJWa0xDQndZWEp6WldSYWIyNWxMQ0J2Y0hSekxDQm1iM0p0WVhRc0lIUmxlSFFzSUhOd1pXTnBabWxqVDJabWMyVjBLU0I3WEc0Z0lHTnZibk4wSUhzZ2MyVjBXbTl1WlN3Z2VtOXVaU0I5SUQwZ2IzQjBjenRjYmlBZ2FXWWdLSEJoY25ObFpDQW1KaUJQWW1wbFkzUXVhMlY1Y3lod1lYSnpaV1FwTG14bGJtZDBhQ0FoUFQwZ01Da2dlMXh1SUNBZ0lHTnZibk4wSUdsdWRHVnljSEpsZEdGMGFXOXVXbTl1WlNBOUlIQmhjbk5sWkZwdmJtVWdmSHdnZW05dVpTeGNiaUFnSUNBZ0lHbHVjM1FnUFNCRVlYUmxWR2x0WlM1bWNtOXRUMkpxWldOMEtIQmhjbk5sWkN3Z2UxeHVJQ0FnSUNBZ0lDQXVMaTV2Y0hSekxGeHVJQ0FnSUNBZ0lDQjZiMjVsT2lCcGJuUmxjbkJ5WlhSaGRHbHZibHB2Ym1Vc1hHNGdJQ0FnSUNBZ0lITndaV05wWm1salQyWm1jMlYwTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJSE5sZEZwdmJtVWdQeUJwYm5OMElEb2dhVzV6ZEM1elpYUmFiMjVsS0hwdmJtVXBPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSEpsZEhWeWJpQkVZWFJsVkdsdFpTNXBiblpoYkdsa0tGeHVJQ0FnSUNBZ2JtVjNJRWx1ZG1Gc2FXUW9YQ0oxYm5CaGNuTmhZbXhsWENJc0lHQjBhR1VnYVc1d2RYUWdYQ0lrZTNSbGVIUjlYQ0lnWTJGdUozUWdZbVVnY0dGeWMyVmtJR0Z6SUNSN1ptOXliV0YwZldBcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1ZlZ4dVhHNHZMeUJwWmlCNWIzVWdkMkZ1ZENCMGJ5QnZkWFJ3ZFhRZ1lTQjBaV05vYm1sallXd2dabTl5YldGMElDaGxMbWN1SUZKR1F5QXlPREl5S1N3Z2RHaHBjeUJvWld4d1pYSmNiaTh2SUdobGJIQnpJR2hoYm1Sc1pTQjBhR1VnWkdWMFlXbHNjMXh1Wm5WdVkzUnBiMjRnZEc5VVpXTm9SbTl5YldGMEtHUjBMQ0JtYjNKdFlYUXNJR0ZzYkc5M1dpQTlJSFJ5ZFdVcElIdGNiaUFnY21WMGRYSnVJR1IwTG1selZtRnNhV1JjYmlBZ0lDQS9JRVp2Y20xaGRIUmxjaTVqY21WaGRHVW9URzlqWVd4bExtTnlaV0YwWlNoY0ltVnVMVlZUWENJcExDQjdYRzRnSUNBZ0lDQWdJR0ZzYkc5M1dpeGNiaUFnSUNBZ0lDQWdabTl5WTJWVGFXMXdiR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLUzVtYjNKdFlYUkVZWFJsVkdsdFpVWnliMjFUZEhKcGJtY29aSFFzSUdadmNtMWhkQ2xjYmlBZ0lDQTZJRzUxYkd3N1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhSdlNWTlBSR0YwWlNodkxDQmxlSFJsYm1SbFpDa2dlMXh1SUNCamIyNXpkQ0JzYjI1blJtOXliV0YwSUQwZ2J5NWpMbmxsWVhJZ1BpQTVPVGs1SUh4OElHOHVZeTU1WldGeUlEd2dNRHRjYmlBZ2JHVjBJR01nUFNCY0lsd2lPMXh1SUNCcFppQW9iRzl1WjBadmNtMWhkQ0FtSmlCdkxtTXVlV1ZoY2lBK1BTQXdLU0JqSUNzOUlGd2lLMXdpTzF4dUlDQmpJQ3M5SUhCaFpGTjBZWEowS0c4dVl5NTVaV0Z5TENCc2IyNW5SbTl5YldGMElEOGdOaUE2SURRcE8xeHVYRzRnSUdsbUlDaGxlSFJsYm1SbFpDa2dlMXh1SUNBZ0lHTWdLejBnWENJdFhDSTdYRzRnSUNBZ1l5QXJQU0J3WVdSVGRHRnlkQ2h2TG1NdWJXOXVkR2dwTzF4dUlDQWdJR01nS3owZ1hDSXRYQ0k3WEc0Z0lDQWdZeUFyUFNCd1lXUlRkR0Z5ZENodkxtTXVaR0Y1S1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCaklDczlJSEJoWkZOMFlYSjBLRzh1WXk1dGIyNTBhQ2s3WEc0Z0lDQWdZeUFyUFNCd1lXUlRkR0Z5ZENodkxtTXVaR0Y1S1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWXp0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnZEc5SlUwOVVhVzFsS0Z4dUlDQnZMRnh1SUNCbGVIUmxibVJsWkN4Y2JpQWdjM1Z3Y0hKbGMzTlRaV052Ym1SekxGeHVJQ0J6ZFhCd2NtVnpjMDFwYkd4cGMyVmpiMjVrY3l4Y2JpQWdhVzVqYkhWa1pVOW1abk5sZEN4Y2JpQWdaWGgwWlc1a1pXUmFiMjVsWEc0cElIdGNiaUFnYkdWMElHTWdQU0J3WVdSVGRHRnlkQ2h2TG1NdWFHOTFjaWs3WEc0Z0lHbG1JQ2hsZUhSbGJtUmxaQ2tnZTF4dUlDQWdJR01nS3owZ1hDSTZYQ0k3WEc0Z0lDQWdZeUFyUFNCd1lXUlRkR0Z5ZENodkxtTXViV2x1ZFhSbEtUdGNiaUFnSUNCcFppQW9ieTVqTG5ObFkyOXVaQ0FoUFQwZ01DQjhmQ0FoYzNWd2NISmxjM05UWldOdmJtUnpLU0I3WEc0Z0lDQWdJQ0JqSUNzOUlGd2lPbHdpTzF4dUlDQWdJSDFjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0JqSUNzOUlIQmhaRk4wWVhKMEtHOHVZeTV0YVc1MWRHVXBPMXh1SUNCOVhHNWNiaUFnYVdZZ0tHOHVZeTV6WldOdmJtUWdJVDA5SURBZ2ZId2dJWE4xY0hCeVpYTnpVMlZqYjI1a2N5a2dlMXh1SUNBZ0lHTWdLejBnY0dGa1UzUmhjblFvYnk1akxuTmxZMjl1WkNrN1hHNWNiaUFnSUNCcFppQW9ieTVqTG0xcGJHeHBjMlZqYjI1a0lDRTlQU0F3SUh4OElDRnpkWEJ3Y21WemMwMXBiR3hwYzJWamIyNWtjeWtnZTF4dUlDQWdJQ0FnWXlBclBTQmNJaTVjSWp0Y2JpQWdJQ0FnSUdNZ0t6MGdjR0ZrVTNSaGNuUW9ieTVqTG0xcGJHeHBjMlZqYjI1a0xDQXpLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JwWmlBb2FXNWpiSFZrWlU5bVpuTmxkQ2tnZTF4dUlDQWdJR2xtSUNodkxtbHpUMlptYzJWMFJtbDRaV1FnSmlZZ2J5NXZabVp6WlhRZ1BUMDlJREFnSmlZZ0lXVjRkR1Z1WkdWa1dtOXVaU2tnZTF4dUlDQWdJQ0FnWXlBclBTQmNJbHBjSWp0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0c4dWJ5QThJREFwSUh0Y2JpQWdJQ0FnSUdNZ0t6MGdYQ0l0WENJN1hHNGdJQ0FnSUNCaklDczlJSEJoWkZOMFlYSjBLRTFoZEdndWRISjFibU1vTFc4dWJ5QXZJRFl3S1NrN1hHNGdJQ0FnSUNCaklDczlJRndpT2x3aU8xeHVJQ0FnSUNBZ1l5QXJQU0J3WVdSVGRHRnlkQ2hOWVhSb0xuUnlkVzVqS0MxdkxtOGdKU0EyTUNrcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JqSUNzOUlGd2lLMXdpTzF4dUlDQWdJQ0FnWXlBclBTQndZV1JUZEdGeWRDaE5ZWFJvTG5SeWRXNWpLRzh1YnlBdklEWXdLU2s3WEc0Z0lDQWdJQ0JqSUNzOUlGd2lPbHdpTzF4dUlDQWdJQ0FnWXlBclBTQndZV1JUZEdGeWRDaE5ZWFJvTG5SeWRXNWpLRzh1YnlBbElEWXdLU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnYVdZZ0tHVjRkR1Z1WkdWa1dtOXVaU2tnZTF4dUlDQWdJR01nS3owZ1hDSmJYQ0lnS3lCdkxucHZibVV1YVdGdVlVNWhiV1VnS3lCY0lsMWNJanRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdZenRjYm4xY2JseHVMeThnWkdWbVlYVnNkSE1nWm05eUlIVnVjM0JsWTJsbWFXVmtJSFZ1YVhSeklHbHVJSFJvWlNCemRYQndiM0owWldRZ1kyRnNaVzVrWVhKelhHNWpiMjV6ZENCa1pXWmhkV3gwVlc1cGRGWmhiSFZsY3lBOUlIdGNiaUFnSUNCdGIyNTBhRG9nTVN4Y2JpQWdJQ0JrWVhrNklERXNYRzRnSUNBZ2FHOTFjam9nTUN4Y2JpQWdJQ0J0YVc1MWRHVTZJREFzWEc0Z0lDQWdjMlZqYjI1a09pQXdMRnh1SUNBZ0lHMXBiR3hwYzJWamIyNWtPaUF3TEZ4dUlDQjlMRnh1SUNCa1pXWmhkV3gwVjJWbGExVnVhWFJXWVd4MVpYTWdQU0I3WEc0Z0lDQWdkMlZsYTA1MWJXSmxjam9nTVN4Y2JpQWdJQ0IzWldWclpHRjVPaUF4TEZ4dUlDQWdJR2h2ZFhJNklEQXNYRzRnSUNBZ2JXbHVkWFJsT2lBd0xGeHVJQ0FnSUhObFkyOXVaRG9nTUN4Y2JpQWdJQ0J0YVd4c2FYTmxZMjl1WkRvZ01DeGNiaUFnZlN4Y2JpQWdaR1ZtWVhWc2RFOXlaR2x1WVd4VmJtbDBWbUZzZFdWeklEMGdlMXh1SUNBZ0lHOXlaR2x1WVd3NklERXNYRzRnSUNBZ2FHOTFjam9nTUN4Y2JpQWdJQ0J0YVc1MWRHVTZJREFzWEc0Z0lDQWdjMlZqYjI1a09pQXdMRnh1SUNBZ0lHMXBiR3hwYzJWamIyNWtPaUF3TEZ4dUlDQjlPMXh1WEc0dkx5QlZibWwwY3lCcGJpQjBhR1VnYzNWd2NHOXlkR1ZrSUdOaGJHVnVaR0Z5Y3l3Z2MyOXlkR1ZrSUdKNUlHSnBaMjVsYzNOY2JtTnZibk4wSUc5eVpHVnlaV1JWYm1sMGN5QTlJRnRjSW5sbFlYSmNJaXdnWENKdGIyNTBhRndpTENCY0ltUmhlVndpTENCY0ltaHZkWEpjSWl3Z1hDSnRhVzUxZEdWY0lpd2dYQ0p6WldOdmJtUmNJaXdnWENKdGFXeHNhWE5sWTI5dVpGd2lYU3hjYmlBZ2IzSmtaWEpsWkZkbFpXdFZibWwwY3lBOUlGdGNiaUFnSUNCY0luZGxaV3RaWldGeVhDSXNYRzRnSUNBZ1hDSjNaV1ZyVG5WdFltVnlYQ0lzWEc0Z0lDQWdYQ0ozWldWclpHRjVYQ0lzWEc0Z0lDQWdYQ0pvYjNWeVhDSXNYRzRnSUNBZ1hDSnRhVzUxZEdWY0lpeGNiaUFnSUNCY0luTmxZMjl1WkZ3aUxGeHVJQ0FnSUZ3aWJXbHNiR2x6WldOdmJtUmNJaXhjYmlBZ1hTeGNiaUFnYjNKa1pYSmxaRTl5WkdsdVlXeFZibWwwY3lBOUlGdGNJbmxsWVhKY0lpd2dYQ0p2Y21ScGJtRnNYQ0lzSUZ3aWFHOTFjbHdpTENCY0ltMXBiblYwWlZ3aUxDQmNJbk5sWTI5dVpGd2lMQ0JjSW0xcGJHeHBjMlZqYjI1a1hDSmRPMXh1WEc0dkx5QnpkR0Z1WkdGeVpHbDZaU0JqWVhObElHRnVaQ0J3YkhWeVlXeHBkSGtnYVc0Z2RXNXBkSE5jYm1aMWJtTjBhVzl1SUc1dmNtMWhiR2w2WlZWdWFYUW9kVzVwZENrZ2UxeHVJQ0JqYjI1emRDQnViM0p0WVd4cGVtVmtJRDBnZTF4dUlDQWdJSGxsWVhJNklGd2llV1ZoY2x3aUxGeHVJQ0FnSUhsbFlYSnpPaUJjSW5sbFlYSmNJaXhjYmlBZ0lDQnRiMjUwYURvZ1hDSnRiMjUwYUZ3aUxGeHVJQ0FnSUcxdmJuUm9jem9nWENKdGIyNTBhRndpTEZ4dUlDQWdJR1JoZVRvZ1hDSmtZWGxjSWl4Y2JpQWdJQ0JrWVhsek9pQmNJbVJoZVZ3aUxGeHVJQ0FnSUdodmRYSTZJRndpYUc5MWNsd2lMRnh1SUNBZ0lHaHZkWEp6T2lCY0ltaHZkWEpjSWl4Y2JpQWdJQ0J0YVc1MWRHVTZJRndpYldsdWRYUmxYQ0lzWEc0Z0lDQWdiV2x1ZFhSbGN6b2dYQ0p0YVc1MWRHVmNJaXhjYmlBZ0lDQnhkV0Z5ZEdWeU9pQmNJbkYxWVhKMFpYSmNJaXhjYmlBZ0lDQnhkV0Z5ZEdWeWN6b2dYQ0p4ZFdGeWRHVnlYQ0lzWEc0Z0lDQWdjMlZqYjI1a09pQmNJbk5sWTI5dVpGd2lMRnh1SUNBZ0lITmxZMjl1WkhNNklGd2ljMlZqYjI1a1hDSXNYRzRnSUNBZ2JXbHNiR2x6WldOdmJtUTZJRndpYldsc2JHbHpaV052Ym1SY0lpeGNiaUFnSUNCdGFXeHNhWE5sWTI5dVpITTZJRndpYldsc2JHbHpaV052Ym1SY0lpeGNiaUFnSUNCM1pXVnJaR0Y1T2lCY0luZGxaV3RrWVhsY0lpeGNiaUFnSUNCM1pXVnJaR0Y1Y3pvZ1hDSjNaV1ZyWkdGNVhDSXNYRzRnSUNBZ2QyVmxhMjUxYldKbGNqb2dYQ0ozWldWclRuVnRZbVZ5WENJc1hHNGdJQ0FnZDJWbGEzTnVkVzFpWlhJNklGd2lkMlZsYTA1MWJXSmxjbHdpTEZ4dUlDQWdJSGRsWld0dWRXMWlaWEp6T2lCY0luZGxaV3RPZFcxaVpYSmNJaXhjYmlBZ0lDQjNaV1ZyZVdWaGNqb2dYQ0ozWldWcldXVmhjbHdpTEZ4dUlDQWdJSGRsWld0NVpXRnljem9nWENKM1pXVnJXV1ZoY2x3aUxGeHVJQ0FnSUc5eVpHbHVZV3c2SUZ3aWIzSmthVzVoYkZ3aUxGeHVJQ0I5VzNWdWFYUXVkRzlNYjNkbGNrTmhjMlVvS1YwN1hHNWNiaUFnYVdZZ0tDRnViM0p0WVd4cGVtVmtLU0IwYUhKdmR5QnVaWGNnU1c1MllXeHBaRlZ1YVhSRmNuSnZjaWgxYm1sMEtUdGNibHh1SUNCeVpYUjFjbTRnYm05eWJXRnNhWHBsWkR0Y2JuMWNibHh1THk4Z2RHaHBjeUJwY3lCaElHUjFiV0psWkNCa2IzZHVJSFpsY25OcGIyNGdiMllnWm5KdmJVOWlhbVZqZENncElIUm9ZWFFnY25WdWN5QmhZbTkxZENBMk1DVWdabUZ6ZEdWeVhHNHZMeUJpZFhRZ1pHOWxjMjRuZENCa2J5QmhibmtnZG1Gc2FXUmhkR2x2Yml3Z2JXRnJaWE1nWVNCaWRXNWphQ0J2WmlCaGMzTjFiWEIwYVc5dWN5QmhZbTkxZENCM2FHRjBJSFZ1YVhSelhHNHZMeUJoY21VZ2NISmxjMlZ1ZEN3Z1lXNWtJSE52SUc5dUxseHVablZ1WTNScGIyNGdjWFZwWTJ0RVZDaHZZbW9zSUc5d2RITXBJSHRjYmlBZ1kyOXVjM1FnZW05dVpTQTlJRzV2Y20xaGJHbDZaVnB2Ym1Vb2IzQjBjeTU2YjI1bExDQlRaWFIwYVc1bmN5NWtaV1poZFd4MFdtOXVaU2tzWEc0Z0lDQWdiRzlqSUQwZ1RHOWpZV3hsTG1aeWIyMVBZbXBsWTNRb2IzQjBjeWtzWEc0Z0lDQWdkSE5PYjNjZ1BTQlRaWFIwYVc1bmN5NXViM2NvS1R0Y2JseHVJQ0JzWlhRZ2RITXNJRzg3WEc1Y2JpQWdMeThnWVhOemRXMWxJSGRsSUdoaGRtVWdkR2hsSUdocFoyaGxjaTF2Y21SbGNpQjFibWwwYzF4dUlDQnBaaUFvSVdselZXNWtaV1pwYm1Wa0tHOWlhaTU1WldGeUtTa2dlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdkU0J2WmlCdmNtUmxjbVZrVlc1cGRITXBJSHRjYmlBZ0lDQWdJR2xtSUNocGMxVnVaR1ZtYVc1bFpDaHZZbXBiZFYwcEtTQjdYRzRnSUNBZ0lDQWdJRzlpYWx0MVhTQTlJR1JsWm1GMWJIUlZibWwwVm1Gc2RXVnpXM1ZkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHVkbUZzYVdRZ1BTQm9ZWE5KYm5aaGJHbGtSM0psWjI5eWFXRnVSR0YwWVNodlltb3BJSHg4SUdoaGMwbHVkbUZzYVdSVWFXMWxSR0YwWVNodlltb3BPMXh1SUNBZ0lHbG1JQ2hwYm5aaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSR0YwWlZScGJXVXVhVzUyWVd4cFpDaHBiblpoYkdsa0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J2Wm1aelpYUlFjbTkyYVhNZ1BTQjZiMjVsTG05bVpuTmxkQ2gwYzA1dmR5azdYRzRnSUNBZ1czUnpMQ0J2WFNBOUlHOWlhbFJ2VkZNb2IySnFMQ0J2Wm1aelpYUlFjbTkyYVhNc0lIcHZibVVwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhSeklEMGdkSE5PYjNjN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2JtVjNJRVJoZEdWVWFXMWxLSHNnZEhNc0lIcHZibVVzSUd4dll5d2dieUI5S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWkdsbVpsSmxiR0YwYVhabEtITjBZWEowTENCbGJtUXNJRzl3ZEhNcElIdGNiaUFnWTI5dWMzUWdjbTkxYm1RZ1BTQnBjMVZ1WkdWbWFXNWxaQ2h2Y0hSekxuSnZkVzVrS1NBL0lIUnlkV1VnT2lCdmNIUnpMbkp2ZFc1a0xGeHVJQ0FnSUdadmNtMWhkQ0E5SUNoakxDQjFibWwwS1NBOVBpQjdYRzRnSUNBZ0lDQmpJRDBnY205MWJtUlVieWhqTENCeWIzVnVaQ0I4ZkNCdmNIUnpMbU5oYkdWdVpHRnllU0EvSURBZ09pQXlMQ0IwY25WbEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdadmNtMWhkSFJsY2lBOUlHVnVaQzVzYjJNdVkyeHZibVVvYjNCMGN5a3VjbVZzUm05eWJXRjBkR1Z5S0c5d2RITXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWnZjbTFoZEhSbGNpNW1iM0p0WVhRb1l5d2dkVzVwZENrN1hHNGdJQ0FnZlN4Y2JpQWdJQ0JrYVdabVpYSWdQU0FvZFc1cGRDa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tHOXdkSE11WTJGc1pXNWtZWEo1S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWlc1a0xtaGhjMU5oYldVb2MzUmhjblFzSUhWdWFYUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdWdVpDNXpkR0Z5ZEU5bUtIVnVhWFFwTG1ScFptWW9jM1JoY25RdWMzUmhjblJQWmloMWJtbDBLU3dnZFc1cGRDa3VaMlYwS0hWdWFYUXBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdjbVYwZFhKdUlEQTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pXNWtMbVJwWm1Zb2MzUmhjblFzSUhWdWFYUXBMbWRsZENoMWJtbDBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlPMXh1WEc0Z0lHbG1JQ2h2Y0hSekxuVnVhWFFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabTl5YldGMEtHUnBabVpsY2lodmNIUnpMblZ1YVhRcExDQnZjSFJ6TG5WdWFYUXBPMXh1SUNCOVhHNWNiaUFnWm05eUlDaGpiMjV6ZENCMWJtbDBJRzltSUc5d2RITXVkVzVwZEhNcElIdGNiaUFnSUNCamIyNXpkQ0JqYjNWdWRDQTlJR1JwWm1abGNpaDFibWwwS1R0Y2JpQWdJQ0JwWmlBb1RXRjBhQzVoWW5Nb1kyOTFiblFwSUQ0OUlERXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1iM0p0WVhRb1kyOTFiblFzSUhWdWFYUXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1ptOXliV0YwS0hOMFlYSjBJRDRnWlc1a0lEOGdMVEFnT2lBd0xDQnZjSFJ6TG5WdWFYUnpXMjl3ZEhNdWRXNXBkSE11YkdWdVozUm9JQzBnTVYwcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCc1lYTjBUM0IwY3loaGNtZE1hWE4wS1NCN1hHNGdJR3hsZENCdmNIUnpJRDBnZTMwc1hHNGdJQ0FnWVhKbmN6dGNiaUFnYVdZZ0tHRnlaMHhwYzNRdWJHVnVaM1JvSUQ0Z01DQW1KaUIwZVhCbGIyWWdZWEpuVEdsemRGdGhjbWRNYVhOMExteGxibWQwYUNBdElERmRJRDA5UFNCY0ltOWlhbVZqZEZ3aUtTQjdYRzRnSUNBZ2IzQjBjeUE5SUdGeVoweHBjM1JiWVhKblRHbHpkQzVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0JoY21keklEMGdRWEp5WVhrdVpuSnZiU2hoY21kTWFYTjBLUzV6YkdsalpTZ3dMQ0JoY21kTWFYTjBMbXhsYm1kMGFDQXRJREVwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdGeVozTWdQU0JCY25KaGVTNW1jbTl0S0dGeVoweHBjM1FwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJiYjNCMGN5d2dZWEpuYzEwN1hHNTlYRzVjYmk4cUtseHVJQ29nUVNCRVlYUmxWR2x0WlNCcGN5QmhiaUJwYlcxMWRHRmliR1VnWkdGMFlTQnpkSEoxWTNSMWNtVWdjbVZ3Y21WelpXNTBhVzVuSUdFZ2MzQmxZMmxtYVdNZ1pHRjBaU0JoYm1RZ2RHbHRaU0JoYm1RZ1lXTmpiMjF3WVc1NWFXNW5JRzFsZEdodlpITXVJRWwwSUdOdmJuUmhhVzV6SUdOc1lYTnpJR0Z1WkNCcGJuTjBZVzVqWlNCdFpYUm9iMlJ6SUdadmNpQmpjbVZoZEdsdVp5d2djR0Z5YzJsdVp5d2dhVzUwWlhKeWIyZGhkR2x1Wnl3Z2RISmhibk5tYjNKdGFXNW5MQ0JoYm1RZ1ptOXliV0YwZEdsdVp5QjBhR1Z0TGx4dUlDcGNiaUFxSUVFZ1JHRjBaVlJwYldVZ1kyOXRjSEpwYzJWeklHOW1PbHh1SUNvZ0tpQkJJSFJwYldWemRHRnRjQzRnUldGamFDQkVZWFJsVkdsdFpTQnBibk4wWVc1alpTQnlaV1psY25NZ2RHOGdZU0J6Y0dWamFXWnBZeUJ0YVd4c2FYTmxZMjl1WkNCdlppQjBhR1VnVlc1cGVDQmxjRzlqYUM1Y2JpQXFJQ29nUVNCMGFXMWxJSHB2Ym1VdUlFVmhZMmdnYVc1emRHRnVZMlVnYVhNZ1kyOXVjMmxrWlhKbFpDQnBiaUIwYUdVZ1kyOXVkR1Y0ZENCdlppQmhJSE53WldOcFptbGpJSHB2Ym1VZ0tHSjVJR1JsWm1GMWJIUWdkR2hsSUd4dlkyRnNJSE41YzNSbGJTZHpJSHB2Ym1VcExseHVJQ29nS2lCRGIyNW1hV2QxY21GMGFXOXVJSEJ5YjNCbGNuUnBaWE1nZEdoaGRDQmxabVpsWTNRZ2FHOTNJRzkxZEhCMWRDQnpkSEpwYm1keklHRnlaU0JtYjNKdFlYUjBaV1FzSUhOMVkyZ2dZWE1nWUd4dlkyRnNaV0FzSUdCdWRXMWlaWEpwYm1kVGVYTjBaVzFnTENCaGJtUWdZRzkxZEhCMWRFTmhiR1Z1WkdGeVlDNWNiaUFxWEc0Z0tpQklaWEpsSUdseklHRWdZbkpwWldZZ2IzWmxjblpwWlhjZ2IyWWdkR2hsSUcxdmMzUWdZMjl0Ylc5dWJIa2dkWE5sWkNCbWRXNWpkR2x2Ym1Gc2FYUjVJR2wwSUhCeWIzWnBaR1Z6T2x4dUlDcGNiaUFxSUNvZ0tpcERjbVZoZEdsdmJpb3FPaUJVYnlCamNtVmhkR1VnWVNCRVlYUmxWR2x0WlNCbWNtOXRJR2wwY3lCamIyMXdiMjVsYm5SekxDQjFjMlVnYjI1bElHOW1JR2wwY3lCbVlXTjBiM0o1SUdOc1lYTnpJRzFsZEdodlpITTZJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTnNiMk5oYkgwc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMWRHTjlMQ0JoYm1RZ0tHMXZjM1FnWm14bGVHbGliSGtwSUh0QWJHbHVheUJFWVhSbFZHbHRaU05tY205dFQySnFaV04wZlM0Z1ZHOGdZM0psWVhSbElHOXVaU0JtY205dElHRWdjM1JoYm1SaGNtUWdjM1J5YVc1bklHWnZjbTFoZEN3Z2RYTmxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTm1jbTl0U1ZOUGZTd2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkyWnliMjFJVkZSUWZTd2dZVzVrSUh0QWJHbHVheUJFWVhSbFZHbHRaU05tY205dFVrWkRNamd5TW4wdUlGUnZJR055WldGMFpTQnZibVVnWm5KdmJTQmhJR04xYzNSdmJTQnpkSEpwYm1jZ1ptOXliV0YwTENCMWMyVWdlMEJzYVc1cklFUmhkR1ZVYVcxbEkyWnliMjFHYjNKdFlYUjlMaUJVYnlCamNtVmhkR1VnYjI1bElHWnliMjBnWVNCdVlYUnBkbVVnU2xNZ1pHRjBaU3dnZFhObElIdEFiR2x1YXlCRVlYUmxWR2x0WlNObWNtOXRTbE5FWVhSbGZTNWNiaUFxSUNvZ0tpcEhjbVZuYjNKcFlXNGdZMkZzWlc1a1lYSWdZVzVrSUhScGJXVXFLam9nVkc4Z1pYaGhiV2x1WlNCMGFHVWdSM0psWjI5eWFXRnVJSEJ5YjNCbGNuUnBaWE1nYjJZZ1lTQkVZWFJsVkdsdFpTQnBibVJwZG1sa2RXRnNiSGtnS0drdVpTQmhjeUJ2Y0hCdmMyVmtJSFJ2SUdOdmJHeGxZM1JwZG1Wc2VTQjBhSEp2ZFdkb0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIwOWlhbVZqZEgwcExDQjFjMlVnZEdobElIdEFiR2x1YXlCRVlYUmxWR2x0WlNONVpXRnlmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJMjF2Ym5Sb2ZTeGNiaUFxSUh0QWJHbHVheUJFWVhSbFZHbHRaU05rWVhsOUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamFHOTFjbjBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU050YVc1MWRHVjlMQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpjMlZqYjI1a2ZTd2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkyMXBiR3hwYzJWamIyNWtmU0JoWTJObGMzTnZjbk11WEc0Z0tpQXFJQ29xVjJWbGF5QmpZV3hsYm1SaGNpb3FPaUJHYjNJZ1NWTlBJSGRsWldzZ1kyRnNaVzVrWVhJZ1lYUjBjbWxpZFhSbGN5d2djMlZsSUhSb1pTQjdRR3hwYm1zZ1JHRjBaVlJwYldVamQyVmxhMWxsWVhKOUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamQyVmxhMDUxYldKbGNuMHNJR0Z1WkNCN1FHeHBibXNnUkdGMFpWUnBiV1VqZDJWbGEyUmhlWDBnWVdOalpYTnpiM0p6TGx4dUlDb2dLaUFxS2tOdmJtWnBaM1Z5WVhScGIyNHFLaUJUWldVZ2RHaGxJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTnNiMk5oYkdWOUlHRnVaQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpiblZ0WW1WeWFXNW5VM2x6ZEdWdGZTQmhZMk5sYzNOdmNuTXVYRzRnS2lBcUlDb3FWSEpoYm5ObWIzSnRZWFJwYjI0cUtqb2dWRzhnZEhKaGJuTm1iM0p0SUhSb1pTQkVZWFJsVkdsdFpTQnBiblJ2SUc5MGFHVnlJRVJoZEdWVWFXMWxjeXdnZFhObElIdEFiR2x1YXlCRVlYUmxWR2x0WlNOelpYUjlMQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpjbVZqYjI1bWFXZDFjbVY5TENCN1FHeHBibXNnUkdGMFpWUnBiV1VqYzJWMFdtOXVaWDBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU056WlhSTWIyTmhiR1Y5TENCN1FHeHBibXNnUkdGMFpWUnBiV1V1Y0d4MWMzMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTnRhVzUxYzMwc0lIdEFiR2x1YXlCRVlYUmxWR2x0WlNObGJtUlBabjBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU056ZEdGeWRFOW1mU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VlZSRGZTd2dZVzVrSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNmUzVjYmlBcUlDb2dLaXBQZFhSd2RYUXFLam9nVkc4Z1kyOXVkbVZ5ZENCMGFHVWdSR0YwWlZScGJXVWdkRzhnYjNSb1pYSWdjbVZ3Y21WelpXNTBZWFJwYjI1ekxDQjFjMlVnZEdobElIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIxSmxiR0YwYVhabGZTd2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZVbVZzWVhScGRtVkRZV3hsYm1SaGNuMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHBUVDA1OUxDQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOUpVMDk5TENCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5SVZGUlFmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VDJKcVpXTjBmU3dnZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VWtaRE1qZ3lNbjBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjFOMGNtbHVaMzBzSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMFp2Y20xaGRIMHNJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMDFwYkd4cGMzMGdZVzVrSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjBwVFJHRjBaWDB1WEc0Z0tseHVJQ29nVkdobGNtVW5jeUJ3YkdWdWRIa2diM1JvWlhKeklHUnZZM1Z0Wlc1MFpXUWdZbVZzYjNjdUlFbHVJR0ZrWkdsMGFXOXVMQ0JtYjNJZ2JXOXlaU0JwYm1admNtMWhkR2x2YmlCdmJpQnpkV0owYkdWeUlIUnZjR2xqY3lCc2FXdGxJR2x1ZEdWeWJtRjBhVzl1WVd4cGVtRjBhVzl1TENCMGFXMWxJSHB2Ym1WekxDQmhiSFJsY201aGRHbDJaU0JqWVd4bGJtUmhjbk1zSUhaaGJHbGthWFI1TENCaGJtUWdjMjhnYjI0c0lITmxaU0IwYUdVZ1pYaDBaWEp1WVd3Z1pHOWpkVzFsYm5SaGRHbHZiaTVjYmlBcUwxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1kyeGhjM01nUkdGMFpWUnBiV1VnZTF4dUlDQXZLaXBjYmlBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhqYjI1bWFXY3BJSHRjYmlBZ0lDQmpiMjV6ZENCNmIyNWxJRDBnWTI5dVptbG5MbnB2Ym1VZ2ZId2dVMlYwZEdsdVozTXVaR1ZtWVhWc2RGcHZibVU3WEc1Y2JpQWdJQ0JzWlhRZ2FXNTJZV3hwWkNBOVhHNGdJQ0FnSUNCamIyNW1hV2N1YVc1MllXeHBaQ0I4ZkZ4dUlDQWdJQ0FnS0U1MWJXSmxjaTVwYzA1aFRpaGpiMjVtYVdjdWRITXBJRDhnYm1WM0lFbHVkbUZzYVdRb1hDSnBiblpoYkdsa0lHbHVjSFYwWENJcElEb2diblZzYkNrZ2ZIeGNiaUFnSUNBZ0lDZ2hlbTl1WlM1cGMxWmhiR2xrSUQ4Z2RXNXpkWEJ3YjNKMFpXUmFiMjVsS0hwdmJtVXBJRG9nYm5Wc2JDazdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NTBjeUE5SUdselZXNWtaV1pwYm1Wa0tHTnZibVpwWnk1MGN5a2dQeUJUWlhSMGFXNW5jeTV1YjNjb0tTQTZJR052Ym1acFp5NTBjenRjYmx4dUlDQWdJR3hsZENCaklEMGdiblZzYkN4Y2JpQWdJQ0FnSUc4Z1BTQnVkV3hzTzF4dUlDQWdJR2xtSUNnaGFXNTJZV3hwWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZFc1amFHRnVaMlZrSUQwZ1kyOXVabWxuTG05c1pDQW1KaUJqYjI1bWFXY3ViMnhrTG5SeklEMDlQU0IwYUdsekxuUnpJQ1ltSUdOdmJtWnBaeTV2YkdRdWVtOXVaUzVsY1hWaGJITW9lbTl1WlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gxYm1Ob1lXNW5aV1FwSUh0Y2JpQWdJQ0FnSUNBZ1cyTXNJRzlkSUQwZ1cyTnZibVpwWnk1dmJHUXVZeXdnWTI5dVptbG5MbTlzWkM1dlhUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5MElEMGdlbTl1WlM1dlptWnpaWFFvZEdocGN5NTBjeWs3WEc0Z0lDQWdJQ0FnSUdNZ1BTQjBjMVJ2VDJKcUtIUm9hWE11ZEhNc0lHOTBLVHRjYmlBZ0lDQWdJQ0FnYVc1MllXeHBaQ0E5SUU1MWJXSmxjaTVwYzA1aFRpaGpMbmxsWVhJcElEOGdibVYzSUVsdWRtRnNhV1FvWENKcGJuWmhiR2xrSUdsdWNIVjBYQ0lwSURvZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnWXlBOUlHbHVkbUZzYVdRZ1B5QnVkV3hzSURvZ1l6dGNiaUFnSUNBZ0lDQWdieUE5SUdsdWRtRnNhV1FnUHlCdWRXeHNJRG9nYjNRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FHRmpZMlZ6Y3lCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1ZmVtOXVaU0E5SUhwdmJtVTdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXNiMk1nUFNCamIyNW1hV2N1Ykc5aklIeDhJRXh2WTJGc1pTNWpjbVZoZEdVb0tUdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFZV05qWlhOeklIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtbHVkbUZzYVdRZ1BTQnBiblpoYkdsa08xeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQmhZMk5sYzNNZ2NISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWQyVmxhMFJoZEdFZ1BTQnVkV3hzTzF4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVCaFkyTmxjM01nY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11WXlBOUlHTTdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRR0ZqWTJWemN5QndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXZJRDBnYnp0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQVlXTmpaWE56SUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1selRIVjRiMjVFWVhSbFZHbHRaU0E5SUhSeWRXVTdYRzRnSUgxY2JseHVJQ0F2THlCRFQwNVRWRkpWUTFSY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkdGMFpWUnBiV1VnWm05eUlIUm9aU0JqZFhKeVpXNTBJR2x1YzNSaGJuUXNJR2x1SUhSb1pTQnplWE4wWlcwbmN5QjBhVzFsSUhwdmJtVXVYRzRnSUNBcVhHNGdJQ0FxSUZWelpTQlRaWFIwYVc1bmN5QjBieUJ2ZG1WeWNtbGtaU0IwYUdWelpTQmtaV1poZFd4MElIWmhiSFZsY3lCcFppQnVaV1ZrWldRdVhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG01dmR5Z3BMblJ2U1ZOUEtDa2dMeTkrUGlCdWIzY2dhVzRnZEdobElFbFRUeUJtYjNKdFlYUmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2JtOTNLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnUkdGMFpWUnBiV1VvZTMwcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJR3h2WTJGc0lFUmhkR1ZVYVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiZVdWaGNsMGdMU0JVYUdVZ1kyRnNaVzVrWVhJZ2VXVmhjaTRnU1dZZ2IyMXBkSFJsWkNBb1lYTWdhVzRzSUdOaGJHd2dZR3h2WTJGc0tDbGdJSGRwZEdnZ2JtOGdZWEpuZFcxbGJuUnpLU3dnZEdobElHTjFjbkpsYm5RZ2RHbHRaU0IzYVd4c0lHSmxJSFZ6WldSY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR0YjI1MGFEMHhYU0F0SUZSb1pTQnRiMjUwYUN3Z01TMXBibVJsZUdWa1hHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiWkdGNVBURmRJQzBnVkdobElHUmhlU0J2WmlCMGFHVWdiVzl1ZEdnc0lERXRhVzVrWlhobFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJodmRYSTlNRjBnTFNCVWFHVWdhRzkxY2lCdlppQjBhR1VnWkdGNUxDQnBiaUF5TkMxb2IzVnlJSFJwYldWY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR0YVc1MWRHVTlNRjBnTFNCVWFHVWdiV2x1ZFhSbElHOW1JSFJvWlNCb2IzVnlMQ0J0WldGdWFXNW5JR0VnYm5WdFltVnlJR0psZEhkbFpXNGdNQ0JoYm1RZ05UbGNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0elpXTnZibVE5TUYwZ0xTQlVhR1VnYzJWamIyNWtJRzltSUhSb1pTQnRhVzUxZEdVc0lHMWxZVzVwYm1jZ1lTQnVkVzFpWlhJZ1ltVjBkMlZsYmlBd0lHRnVaQ0ExT1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjFwYkd4cGMyVmpiMjVrUFRCZElDMGdWR2hsSUcxcGJHeHBjMlZqYjI1a0lHOW1JSFJvWlNCelpXTnZibVFzSUcxbFlXNXBibWNnWVNCdWRXMWlaWElnWW1WMGQyVmxiaUF3SUdGdVpDQTVPVGxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b0tTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJRzV2ZDF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDaDdJSHB2Ym1VNklGd2lRVzFsY21sallTOU9aWGRmV1c5eWExd2lJSDBwSUNBZ0lDQWdMeTkrUGlCdWIzY3NJR2x1SUZWVElHVmhjM1FnWTI5aGMzUWdkR2x0WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzS1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNUzB3TVZRd01Eb3dNRG93TUZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBektTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNeTB3TVZRd01Eb3dNRG93TUZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUzTENBekxDQXhNaXdnZXlCc2IyTmhiR1U2SUZ3aVpuSmNJaUI5S1NBZ0lDQWdMeTkrUGlBeU1ERTNMVEF6TFRFeVZEQXdPakF3T2pBd0xDQjNhWFJvSUdFZ1JuSmxibU5vSUd4dlkyRnNaVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXNiMk5oYkNneU1ERTNMQ0F6TENBeE1pd2dOU2tnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dmZqNGdNakF4Tnkwd015MHhNbFF3TlRvd01Eb3dNRnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXNiMk5oYkNneU1ERTNMQ0F6TENBeE1pd2dOU3dnZXlCNmIyNWxPaUJjSW5WMFkxd2lJSDBwSUNBZ0x5OStQaUF5TURFM0xUQXpMVEV5VkRBMU9qQXdPakF3TENCcGJpQlZWRU5jYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTXl3Z01USXNJRFVzSURRMUtTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJREl3TVRjdE1ETXRNVEpVTURVNk5EVTZNREJjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTXl3Z01USXNJRFVzSURRMUxDQXhNQ2tnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJREl3TVRjdE1ETXRNVEpVTURVNk5EVTZNVEJjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTXl3Z01USXNJRFVzSURRMUxDQXhNQ3dnTnpZMUtTQWdJQ0FnSUNBdkwzNCtJREl3TVRjdE1ETXRNVEpVTURVNk5EVTZNVEF1TnpZMVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSaGRHVlVhVzFsZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUd4dlkyRnNLQ2tnZTF4dUlDQWdJR052Ym5OMElGdHZjSFJ6TENCaGNtZHpYU0E5SUd4aGMzUlBjSFJ6S0dGeVozVnRaVzUwY3lrc1hHNGdJQ0FnSUNCYmVXVmhjaXdnYlc5dWRHZ3NJR1JoZVN3Z2FHOTFjaXdnYldsdWRYUmxMQ0J6WldOdmJtUXNJRzFwYkd4cGMyVmpiMjVrWFNBOUlHRnlaM003WEc0Z0lDQWdjbVYwZFhKdUlIRjFhV05yUkZRb2V5QjVaV0Z5TENCdGIyNTBhQ3dnWkdGNUxDQm9iM1Z5TENCdGFXNTFkR1VzSUhObFkyOXVaQ3dnYldsc2JHbHpaV052Ym1RZ2ZTd2diM0IwY3lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSR0YwWlZScGJXVWdhVzRnVlZSRFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiZVdWaGNsMGdMU0JVYUdVZ1kyRnNaVzVrWVhJZ2VXVmhjaTRnU1dZZ2IyMXBkSFJsWkNBb1lYTWdhVzRzSUdOaGJHd2dZSFYwWXlncFlDQjNhWFJvSUc1dklHRnlaM1Z0Wlc1MGN5a3NJSFJvWlNCamRYSnlaVzUwSUhScGJXVWdkMmxzYkNCaVpTQjFjMlZrWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJiVzl1ZEdnOU1WMGdMU0JVYUdVZ2JXOXVkR2dzSURFdGFXNWtaWGhsWkZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMlJoZVQweFhTQXRJRlJvWlNCa1lYa2diMllnZEdobElHMXZiblJvWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJhRzkxY2owd1hTQXRJRlJvWlNCb2IzVnlJRzltSUhSb1pTQmtZWGtzSUdsdUlESTBMV2h2ZFhJZ2RHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyMXBiblYwWlQwd1hTQXRJRlJvWlNCdGFXNTFkR1VnYjJZZ2RHaGxJR2h2ZFhJc0lHMWxZVzVwYm1jZ1lTQnVkVzFpWlhJZ1ltVjBkMlZsYmlBd0lHRnVaQ0ExT1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXM05sWTI5dVpEMHdYU0F0SUZSb1pTQnpaV052Ym1RZ2IyWWdkR2hsSUcxcGJuVjBaU3dnYldWaGJtbHVaeUJoSUc1MWJXSmxjaUJpWlhSM1pXVnVJREFnWVc1a0lEVTVYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmJXbHNiR2x6WldOdmJtUTlNRjBnTFNCVWFHVWdiV2xzYkdselpXTnZibVFnYjJZZ2RHaGxJSE5sWTI5dVpDd2diV1ZoYm1sdVp5QmhJRzUxYldKbGNpQmlaWFIzWldWdUlEQWdZVzVrSURrNU9WeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGFXOXVjeUF0SUdOdmJtWnBaM1Z5WVhScGIyNGdiM0IwYVc5dWN5Qm1iM0lnZEdobElFUmhkR1ZVYVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGFXOXVjeTVzYjJOaGJHVmRJQzBnWVNCc2IyTmhiR1VnZEc4Z2MyVjBJRzl1SUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnBiMjV6TG05MWRIQjFkRU5oYkdWdVpHRnlYU0F0SUhSb1pTQnZkWFJ3ZFhRZ1kyRnNaVzVrWVhJZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJwYjI1ekxtNTFiV0psY21sdVoxTjVjM1JsYlYwZ0xTQjBhR1VnYm5WdFltVnlhVzVuSUhONWMzUmxiU0IwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9LU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2TDM0K0lHNXZkMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vTWpBeE55a2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkwzNCtJREl3TVRjdE1ERXRNREZVTURBNk1EQTZNREJhWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMblYwWXlneU1ERTNMQ0F6S1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZmajRnTWpBeE55MHdNeTB3TVZRd01Eb3dNRG93TUZwY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVGNzSURNc0lERXlLU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeTkrUGlBeU1ERTNMVEF6TFRFeVZEQXdPakF3T2pBd1dseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9NakF4Tnl3Z015d2dNVElzSURVcElDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2TDM0K0lESXdNVGN0TURNdE1USlVNRFU2TURBNk1EQmFYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExuVjBZeWd5TURFM0xDQXpMQ0F4TWl3Z05Td2dORFVwSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dmZqNGdNakF4Tnkwd015MHhNbFF3TlRvME5Ub3dNRnBjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0RJd01UY3NJRE1zSURFeUxDQTFMQ0EwTlN3Z2V5QnNiMk5oYkdVNklGd2labkpjSWlCOUtTQWdJQ0FnSUNBZ0lDQXZMMzQrSURJd01UY3RNRE10TVRKVU1EVTZORFU2TURCYUlIZHBkR2dnWVNCR2NtVnVZMmdnYkc5allXeGxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExuVjBZeWd5TURFM0xDQXpMQ0F4TWl3Z05Td2dORFVzSURFd0tTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dmZqNGdNakF4Tnkwd015MHhNbFF3TlRvME5Ub3hNRnBjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0RJd01UY3NJRE1zSURFeUxDQTFMQ0EwTlN3Z01UQXNJRGMyTlN3Z2V5QnNiMk5oYkdVNklGd2labkpjSWlCOUtTQXZMMzQrSURJd01UY3RNRE10TVRKVU1EVTZORFU2TVRBdU56WTFXaUIzYVhSb0lHRWdSbkpsYm1Ob0lHeHZZMkZzWlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUIxZEdNb0tTQjdYRzRnSUNBZ1kyOXVjM1FnVzI5d2RITXNJR0Z5WjNOZElEMGdiR0Z6ZEU5d2RITW9ZWEpuZFcxbGJuUnpLU3hjYmlBZ0lDQWdJRnQ1WldGeUxDQnRiMjUwYUN3Z1pHRjVMQ0JvYjNWeUxDQnRhVzUxZEdVc0lITmxZMjl1WkN3Z2JXbHNiR2x6WldOdmJtUmRJRDBnWVhKbmN6dGNibHh1SUNBZ0lHOXdkSE11ZW05dVpTQTlJRVpwZUdWa1QyWm1jMlYwV205dVpTNTFkR05KYm5OMFlXNWpaVHRjYmlBZ0lDQnlaWFIxY200Z2NYVnBZMnRFVkNoN0lIbGxZWElzSUcxdmJuUm9MQ0JrWVhrc0lHaHZkWElzSUcxcGJuVjBaU3dnYzJWamIyNWtMQ0J0YVd4c2FYTmxZMjl1WkNCOUxDQnZjSFJ6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lTQkVZWFJsVkdsdFpTQm1jbTl0SUdFZ1NtRjJZVk5qY21sd2RDQkVZWFJsSUc5aWFtVmpkQzRnVlhObGN5QjBhR1VnWkdWbVlYVnNkQ0I2YjI1bExseHVJQ0FnS2lCQWNHRnlZVzBnZTBSaGRHVjlJR1JoZEdVZ0xTQmhJRXBoZG1GVFkzSnBjSFFnUkdGMFpTQnZZbXBsWTNSY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEdsdmJuTWdMU0JqYjI1bWFXZDFjbUYwYVc5dUlHOXdkR2x2Ym5NZ1ptOXlJSFJvWlNCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeGFiMjVsZlNCYmIzQjBhVzl1Y3k1NmIyNWxQU2RzYjJOaGJDZGRJQzBnZEdobElIcHZibVVnZEc4Z2NHeGhZMlVnZEdobElFUmhkR1ZVYVcxbElHbHVkRzljYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlVwVFJHRjBaU2hrWVhSbExDQnZjSFJwYjI1eklEMGdlMzBwSUh0Y2JpQWdJQ0JqYjI1emRDQjBjeUE5SUdselJHRjBaU2hrWVhSbEtTQS9JR1JoZEdVdWRtRnNkV1ZQWmlncElEb2dUbUZPTzF4dUlDQWdJR2xtSUNoT2RXMWlaWEl1YVhOT1lVNG9kSE1wS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkdGMFpWUnBiV1V1YVc1MllXeHBaQ2hjSW1sdWRtRnNhV1FnYVc1d2RYUmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2VtOXVaVlJ2VlhObElEMGdibTl5YldGc2FYcGxXbTl1WlNodmNIUnBiMjV6TG5wdmJtVXNJRk5sZEhScGJtZHpMbVJsWm1GMWJIUmFiMjVsS1R0Y2JpQWdJQ0JwWmlBb0lYcHZibVZVYjFWelpTNXBjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdWFXNTJZV3hwWkNoMWJuTjFjSEJ2Y25SbFpGcHZibVVvZW05dVpWUnZWWE5sS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRzVsZHlCRVlYUmxWR2x0WlNoN1hHNGdJQ0FnSUNCMGN6b2dkSE1zWEc0Z0lDQWdJQ0I2YjI1bE9pQjZiMjVsVkc5VmMyVXNYRzRnSUNBZ0lDQnNiMk02SUV4dlkyRnNaUzVtY205dFQySnFaV04wS0c5d2RHbHZibk1wTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElFUmhkR1ZVYVcxbElHWnliMjBnWVNCdWRXMWlaWElnYjJZZ2JXbHNiR2x6WldOdmJtUnpJSE5wYm1ObElIUm9aU0JsY0c5amFDQW9iV1ZoYm1sdVp5QnphVzVqWlNBeElFcGhiblZoY25rZ01UazNNQ0F3TURvd01Eb3dNQ0JWVkVNcExpQlZjMlZ6SUhSb1pTQmtaV1poZFd4MElIcHZibVV1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnRhV3hzYVhObFkyOXVaSE1nTFNCaElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1nYzJsdVkyVWdNVGszTUNCVlZFTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RHbHZibk1nTFNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTWdabTl5SUhSb1pTQkVZWFJsVkdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaM3hhYjI1bGZTQmJiM0IwYVc5dWN5NTZiMjVsUFNkc2IyTmhiQ2RkSUMwZ2RHaGxJSHB2Ym1VZ2RHOGdjR3hoWTJVZ2RHaGxJRVJoZEdWVWFXMWxJR2x1ZEc5Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hScGIyNXpMbXh2WTJGc1pWMGdMU0JoSUd4dlkyRnNaU0IwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYjNCMGFXOXVjeTV2ZFhSd2RYUkRZV3hsYm1SaGNpQXRJSFJvWlNCdmRYUndkWFFnWTJGc1pXNWtZWElnZEc4Z2MyVjBJRzl1SUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RHbHZibk11Ym5WdFltVnlhVzVuVTNsemRHVnRJQzBnZEdobElHNTFiV0psY21sdVp5QnplWE4wWlcwZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlUxcGJHeHBjeWh0YVd4c2FYTmxZMjl1WkhNc0lHOXdkR2x2Ym5NZ1BTQjdmU2tnZTF4dUlDQWdJR2xtSUNnaGFYTk9kVzFpWlhJb2JXbHNiR2x6WldOdmJtUnpLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdabkp2YlUxcGJHeHBjeUJ5WlhGMWFYSmxjeUJoSUc1MWJXVnlhV05oYkNCcGJuQjFkQ3dnWW5WMElISmxZMlZwZG1Wa0lHRWdKSHQwZVhCbGIyWWdiV2xzYkdselpXTnZibVJ6ZlNCM2FYUm9JSFpoYkhWbElDUjdiV2xzYkdselpXTnZibVJ6ZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNodGFXeHNhWE5sWTI5dVpITWdQQ0F0VFVGWVgwUkJWRVVnZkh3Z2JXbHNiR2x6WldOdmJtUnpJRDRnVFVGWVgwUkJWRVVwSUh0Y2JpQWdJQ0FnSUM4dklIUm9hWE1nYVhOdUozUWdjR1Z5Wm1WamRDQmlaV05oZFhObElHSmxZMkYxYzJVZ2QyVWdZMkZ1SUhOMGFXeHNJR1Z1WkNCMWNDQnZkWFFnYjJZZ2NtRnVaMlVnWW1WallYVnpaU0J2WmlCaFpHUnBkR2x2Ym1Gc0lITm9hV1owYVc1bkxDQmlkWFFnYVhRbmN5QmhJSE4wWVhKMFhHNGdJQ0FnSUNCeVpYUjFjbTRnUkdGMFpWUnBiV1V1YVc1MllXeHBaQ2hjSWxScGJXVnpkR0Z0Y0NCdmRYUWdiMllnY21GdVoyVmNJaWs3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dSR0YwWlZScGJXVW9lMXh1SUNBZ0lDQWdJQ0IwY3pvZ2JXbHNiR2x6WldOdmJtUnpMRnh1SUNBZ0lDQWdJQ0I2YjI1bE9pQnViM0p0WVd4cGVtVmFiMjVsS0c5d2RHbHZibk11ZW05dVpTd2dVMlYwZEdsdVozTXVaR1ZtWVhWc2RGcHZibVVwTEZ4dUlDQWdJQ0FnSUNCc2IyTTZJRXh2WTJGc1pTNW1jbTl0VDJKcVpXTjBLRzl3ZEdsdmJuTXBMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUVSaGRHVlVhVzFsSUdaeWIyMGdZU0J1ZFcxaVpYSWdiMllnYzJWamIyNWtjeUJ6YVc1alpTQjBhR1VnWlhCdlkyZ2dLRzFsWVc1cGJtY2djMmx1WTJVZ01TQktZVzUxWVhKNUlERTVOekFnTURBNk1EQTZNREFnVlZSREtTNGdWWE5sY3lCMGFHVWdaR1ZtWVhWc2RDQjZiMjVsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjMlZqYjI1a2N5QXRJR0VnYm5WdFltVnlJRzltSUhObFkyOXVaSE1nYzJsdVkyVWdNVGszTUNCVlZFTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RHbHZibk1nTFNCamIyNW1hV2QxY21GMGFXOXVJRzl3ZEdsdmJuTWdabTl5SUhSb1pTQkVZWFJsVkdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaM3hhYjI1bGZTQmJiM0IwYVc5dWN5NTZiMjVsUFNkc2IyTmhiQ2RkSUMwZ2RHaGxJSHB2Ym1VZ2RHOGdjR3hoWTJVZ2RHaGxJRVJoZEdWVWFXMWxJR2x1ZEc5Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hScGIyNXpMbXh2WTJGc1pWMGdMU0JoSUd4dlkyRnNaU0IwYnlCelpYUWdiMjRnZEdobElISmxjM1ZzZEdsdVp5QkVZWFJsVkdsdFpTQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYjNCMGFXOXVjeTV2ZFhSd2RYUkRZV3hsYm1SaGNpQXRJSFJvWlNCdmRYUndkWFFnWTJGc1pXNWtZWElnZEc4Z2MyVjBJRzl1SUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RHbHZibk11Ym5WdFltVnlhVzVuVTNsemRHVnRJQzBnZEdobElHNTFiV0psY21sdVp5QnplWE4wWlcwZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlZObFkyOXVaSE1vYzJWamIyNWtjeXdnYjNCMGFXOXVjeUE5SUh0OUtTQjdYRzRnSUNBZ2FXWWdLQ0ZwYzA1MWJXSmxjaWh6WldOdmJtUnpLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUtGd2labkp2YlZObFkyOXVaSE1nY21WeGRXbHlaWE1nWVNCdWRXMWxjbWxqWVd3Z2FXNXdkWFJjSWlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUkdGMFpWUnBiV1VvZTF4dUlDQWdJQ0FnSUNCMGN6b2djMlZqYjI1a2N5QXFJREV3TURBc1hHNGdJQ0FnSUNBZ0lIcHZibVU2SUc1dmNtMWhiR2w2WlZwdmJtVW9iM0IwYVc5dWN5NTZiMjVsTENCVFpYUjBhVzVuY3k1a1pXWmhkV3gwV205dVpTa3NYRzRnSUNBZ0lDQWdJR3h2WXpvZ1RHOWpZV3hsTG1aeWIyMVBZbXBsWTNRb2IzQjBhVzl1Y3lrc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdSR0YwWlZScGJXVWdabkp2YlNCaElFcGhkbUZUWTNKcGNIUWdiMkpxWldOMElIZHBkR2dnYTJWNWN5QnNhV3RsSUNkNVpXRnlKeUJoYm1RZ0oyaHZkWEluSUhkcGRHZ2djbVZoYzI5dVlXSnNaU0JrWldaaGRXeDBjeTVjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhaUF0SUhSb1pTQnZZbXBsWTNRZ2RHOGdZM0psWVhSbElIUm9aU0JFWVhSbFZHbHRaU0JtY205dFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2WW1vdWVXVmhjaUF0SUdFZ2VXVmhjaXdnYzNWamFDQmhjeUF4T1RnM1hHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J2WW1vdWJXOXVkR2dnTFNCaElHMXZiblJvTENBeExURXlYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3VaR0Y1SUMwZ1lTQmtZWGtnYjJZZ2RHaGxJRzF2Ym5Sb0xDQXhMVE14TENCa1pYQmxibVJwYm1jZ2IyNGdkR2hsSUcxdmJuUm9YRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3ViM0prYVc1aGJDQXRJR1JoZVNCdlppQjBhR1VnZVdWaGNpd2dNUzB6TmpVZ2IzSWdNelkyWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91ZDJWbGExbGxZWElnTFNCaGJpQkpVMDhnZDJWbGF5QjVaV0Z5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnZZbW91ZDJWbGEwNTFiV0psY2lBdElHRnVJRWxUVHlCM1pXVnJJRzUxYldKbGNpd2dZbVYwZDJWbGJpQXhJR0Z1WkNBMU1pQnZjaUExTXl3Z1pHVndaVzVrYVc1bklHOXVJSFJvWlNCNVpXRnlYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdlltb3VkMlZsYTJSaGVTQXRJR0Z1SUVsVFR5QjNaV1ZyWkdGNUxDQXhMVGNzSUhkb1pYSmxJREVnYVhNZ1RXOXVaR0Y1SUdGdVpDQTNJR2x6SUZOMWJtUmhlVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2IySnFMbWh2ZFhJZ0xTQm9iM1Z5SUc5bUlIUm9aU0JrWVhrc0lEQXRNak5jYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHOWlhaTV0YVc1MWRHVWdMU0J0YVc1MWRHVWdiMllnZEdobElHaHZkWElzSURBdE5UbGNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUc5aWFpNXpaV052Ym1RZ0xTQnpaV052Ym1RZ2IyWWdkR2hsSUcxcGJuVjBaU3dnTUMwMU9WeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYjJKcUxtMXBiR3hwYzJWamIyNWtJQzBnYldsc2JHbHpaV052Ym1RZ2IyWWdkR2hsSUhObFkyOXVaQ3dnTUMwNU9UbGNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hScGIyNXpJR1p2Y2lCamNtVmhkR2x1WnlCMGFHbHpJRVJoZEdWVWFXMWxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZkZwdmJtVjlJRnR2Y0hSekxucHZibVU5SjJ4dlkyRnNKMTBnTFNCcGJuUmxjbkJ5WlhRZ2RHaGxJRzUxYldKbGNuTWdhVzRnZEdobElHTnZiblJsZUhRZ2IyWWdZU0J3WVhKMGFXTjFiR0Z5SUhwdmJtVXVJRU5oYmlCMFlXdGxJR0Z1ZVNCMllXeDFaU0IwWVd0bGJpQmhjeUIwYUdVZ1ptbHljM1FnWVhKbmRXMWxiblFnZEc4Z2MyVjBXbTl1WlNncFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NXNiMk5oYkdVOUozTjVjM1JsYlNkeklHeHZZMkZzWlNkZElDMGdZU0JzYjJOaGJHVWdkRzhnYzJWMElHOXVJSFJvWlNCeVpYTjFiSFJwYm1jZ1JHRjBaVlJwYldVZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzl3ZEhNdWIzVjBjSFYwUTJGc1pXNWtZWElnTFNCMGFHVWdiM1YwY0hWMElHTmhiR1Z1WkdGeUlIUnZJSE5sZENCdmJpQjBhR1VnY21WemRXeDBhVzVuSUVSaGRHVlVhVzFsSUdsdWMzUmhibU5sWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnZjSFJ6TG01MWJXSmxjbWx1WjFONWMzUmxiU0F0SUhSb1pTQnVkVzFpWlhKcGJtY2djM2x6ZEdWdElIUnZJSE5sZENCdmJpQjBhR1VnY21WemRXeDBhVzVuSUVSaGRHVlVhVzFsSUdsdWMzUmhibU5sWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnlPaUF4T1RneUxDQnRiMjUwYURvZ05Td2daR0Y1T2lBeU5YMHBMblJ2U1ZOUFJHRjBaU2dwSUM4dlBUNGdKekU1T0RJdE1EVXRNalVuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnlPaUF4T1RneUlIMHBMblJ2U1ZOUFJHRjBaU2dwSUM4dlBUNGdKekU1T0RJdE1ERXRNREVuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCb2IzVnlPaUF4TUN3Z2JXbHVkWFJsT2lBeU5pd2djMlZqYjI1a09pQTJJSDBwSUM4dmZqNGdkRzlrWVhrZ1lYUWdNVEE2TWpZNk1EWmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhJNklERXdMQ0J0YVc1MWRHVTZJREkyTENCelpXTnZibVE2SURZZ2ZTd2dleUI2YjI1bE9pQW5kWFJqSnlCOUtTeGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhJNklERXdMQ0J0YVc1MWRHVTZJREkyTENCelpXTnZibVE2SURZZ2ZTd2dleUI2YjI1bE9pQW5iRzlqWVd3bklIMHBYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFQWW1wbFkzUW9leUJvYjNWeU9pQXhNQ3dnYldsdWRYUmxPaUF5Tml3Z2MyVmpiMjVrT2lBMklIMHNJSHNnZW05dVpUb2dKMEZ0WlhKcFkyRXZUbVYzWDFsdmNtc25JSDBwWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxUFltcGxZM1FvZXlCM1pXVnJXV1ZoY2pvZ01qQXhOaXdnZDJWbGEwNTFiV0psY2pvZ01pd2dkMlZsYTJSaGVUb2dNeUI5S1M1MGIwbFRUMFJoZEdVb0tTQXZMejArSUNjeU1ERTJMVEF4TFRFekoxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxWR2x0WlgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCbWNtOXRUMkpxWldOMEtHOWlhaXdnYjNCMGN5QTlJSHQ5S1NCN1hHNGdJQ0FnYjJKcUlEMGdiMkpxSUh4OElIdDlPMXh1SUNBZ0lHTnZibk4wSUhwdmJtVlViMVZ6WlNBOUlHNXZjbTFoYkdsNlpWcHZibVVvYjNCMGN5NTZiMjVsTENCVFpYUjBhVzVuY3k1a1pXWmhkV3gwV205dVpTazdYRzRnSUNBZ2FXWWdLQ0Y2YjI1bFZHOVZjMlV1YVhOV1lXeHBaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRVJoZEdWVWFXMWxMbWx1ZG1Gc2FXUW9kVzV6ZFhCd2IzSjBaV1JhYjI1bEtIcHZibVZVYjFWelpTa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhSelRtOTNJRDBnVTJWMGRHbHVaM011Ym05M0tDa3NYRzRnSUNBZ0lDQnZabVp6WlhSUWNtOTJhWE1nUFNBaGFYTlZibVJsWm1sdVpXUW9iM0IwY3k1emNHVmphV1pwWTA5bVpuTmxkQ2xjYmlBZ0lDQWdJQ0FnUHlCdmNIUnpMbk53WldOcFptbGpUMlptYzJWMFhHNGdJQ0FnSUNBZ0lEb2dlbTl1WlZSdlZYTmxMbTltWm5ObGRDaDBjMDV2ZHlrc1hHNGdJQ0FnSUNCdWIzSnRZV3hwZW1Wa0lEMGdibTl5YldGc2FYcGxUMkpxWldOMEtHOWlhaXdnYm05eWJXRnNhWHBsVlc1cGRDa3NYRzRnSUNBZ0lDQmpiMjUwWVdsdWMwOXlaR2x1WVd3Z1BTQWhhWE5WYm1SbFptbHVaV1FvYm05eWJXRnNhWHBsWkM1dmNtUnBibUZzS1N4Y2JpQWdJQ0FnSUdOdmJuUmhhVzV6UjNKbFoyOXlXV1ZoY2lBOUlDRnBjMVZ1WkdWbWFXNWxaQ2h1YjNKdFlXeHBlbVZrTG5sbFlYSXBMRnh1SUNBZ0lDQWdZMjl1ZEdGcGJuTkhjbVZuYjNKTlJDQTlJQ0ZwYzFWdVpHVm1hVzVsWkNodWIzSnRZV3hwZW1Wa0xtMXZiblJvS1NCOGZDQWhhWE5WYm1SbFptbHVaV1FvYm05eWJXRnNhWHBsWkM1a1lYa3BMRnh1SUNBZ0lDQWdZMjl1ZEdGcGJuTkhjbVZuYjNJZ1BTQmpiMjUwWVdsdWMwZHlaV2R2Y2xsbFlYSWdmSHdnWTI5dWRHRnBibk5IY21WbmIzSk5SQ3hjYmlBZ0lDQWdJR1JsWm1sdWFYUmxWMlZsYTBSbFppQTlJRzV2Y20xaGJHbDZaV1F1ZDJWbGExbGxZWElnZkh3Z2JtOXliV0ZzYVhwbFpDNTNaV1ZyVG5WdFltVnlMRnh1SUNBZ0lDQWdiRzlqSUQwZ1RHOWpZV3hsTG1aeWIyMVBZbXBsWTNRb2IzQjBjeWs3WEc1Y2JpQWdJQ0F2THlCallYTmxjenBjYmlBZ0lDQXZMeUJxZFhOMElHRWdkMlZsYTJSaGVTQXRQaUIwYUdseklIZGxaV3NuY3lCcGJuTjBZVzVqWlNCdlppQjBhR0YwSUhkbFpXdGtZWGtzSUc1dklIZHZjbkpwWlhOY2JpQWdJQ0F2THlBb1ozSmxaMjl5YVdGdUlHUmhkR0VnYjNJZ2IzSmthVzVoYkNrZ0t5QW9kMlZsYTFsbFlYSWdiM0lnZDJWbGEwNTFiV0psY2lrZ0xUNGdaWEp5YjNKY2JpQWdJQ0F2THlBb1ozSmxaMjl5YVdGdUlHMXZiblJvSUc5eUlHUmhlU2tnS3lCdmNtUnBibUZzSUMwK0lHVnljbTl5WEc0Z0lDQWdMeThnYjNSb1pYSjNhWE5sSUdwMWMzUWdkWE5sSUhkbFpXdHpJRzl5SUc5eVpHbHVZV3h6SUc5eUlHZHlaV2R2Y21saGJpd2daR1Z3Wlc1a2FXNW5JRzl1SUhkb1lYUW5jeUJ6Y0dWamFXWnBaV1JjYmx4dUlDQWdJR2xtSUNnb1kyOXVkR0ZwYm5OSGNtVm5iM0lnZkh3Z1kyOXVkR0ZwYm5OUGNtUnBibUZzS1NBbUppQmtaV1pwYm1sMFpWZGxaV3RFWldZcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkRiMjVtYkdsamRHbHVaMU53WldOcFptbGpZWFJwYjI1RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKRFlXNG5kQ0J0YVhnZ2QyVmxhMWxsWVhJdmQyVmxhMDUxYldKbGNpQjFibWwwY3lCM2FYUm9JSGxsWVhJdmJXOXVkR2d2WkdGNUlHOXlJRzl5WkdsdVlXeHpYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0dOdmJuUmhhVzV6UjNKbFoyOXlUVVFnSmlZZ1kyOXVkR0ZwYm5OUGNtUnBibUZzS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1EyOXVabXhwWTNScGJtZFRjR1ZqYVdacFkyRjBhVzl1UlhKeWIzSW9YQ0pEWVc0bmRDQnRhWGdnYjNKa2FXNWhiQ0JrWVhSbGN5QjNhWFJvSUcxdmJuUm9MMlJoZVZ3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0IxYzJWWFpXVnJSR0YwWVNBOUlHUmxabWx1YVhSbFYyVmxhMFJsWmlCOGZDQW9ibTl5YldGc2FYcGxaQzUzWldWclpHRjVJQ1ltSUNGamIyNTBZV2x1YzBkeVpXZHZjaWs3WEc1Y2JpQWdJQ0F2THlCamIyNW1hV2QxY21VZ2IzVnljMlZzZG1WeklIUnZJR1JsWVd3Z2QybDBhQ0JuY21WbmIzSnBZVzRnWkdGMFpYTWdiM0lnZDJWbGF5QnpkSFZtWmx4dUlDQWdJR3hsZENCMWJtbDBjeXhjYmlBZ0lDQWdJR1JsWm1GMWJIUldZV3gxWlhNc1hHNGdJQ0FnSUNCdlltcE9iM2NnUFNCMGMxUnZUMkpxS0hSelRtOTNMQ0J2Wm1aelpYUlFjbTkyYVhNcE8xeHVJQ0FnSUdsbUlDaDFjMlZYWldWclJHRjBZU2tnZTF4dUlDQWdJQ0FnZFc1cGRITWdQU0J2Y21SbGNtVmtWMlZsYTFWdWFYUnpPMXh1SUNBZ0lDQWdaR1ZtWVhWc2RGWmhiSFZsY3lBOUlHUmxabUYxYkhSWFpXVnJWVzVwZEZaaGJIVmxjenRjYmlBZ0lDQWdJRzlpYWs1dmR5QTlJR2R5WldkdmNtbGhibFJ2VjJWbGF5aHZZbXBPYjNjcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1kyOXVkR0ZwYm5OUGNtUnBibUZzS1NCN1hHNGdJQ0FnSUNCMWJtbDBjeUE5SUc5eVpHVnlaV1JQY21ScGJtRnNWVzVwZEhNN1hHNGdJQ0FnSUNCa1pXWmhkV3gwVm1Gc2RXVnpJRDBnWkdWbVlYVnNkRTl5WkdsdVlXeFZibWwwVm1Gc2RXVnpPMXh1SUNBZ0lDQWdiMkpxVG05M0lEMGdaM0psWjI5eWFXRnVWRzlQY21ScGJtRnNLRzlpYWs1dmR5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhWdWFYUnpJRDBnYjNKa1pYSmxaRlZ1YVhSek8xeHVJQ0FnSUNBZ1pHVm1ZWFZzZEZaaGJIVmxjeUE5SUdSbFptRjFiSFJWYm1sMFZtRnNkV1Z6TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUhObGRDQmtaV1poZFd4MElIWmhiSFZsY3lCbWIzSWdiV2x6YzJsdVp5QnpkSFZtWmx4dUlDQWdJR3hsZENCbWIzVnVaRVpwY25OMElEMGdabUZzYzJVN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMUlHOW1JSFZ1YVhSektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMklEMGdibTl5YldGc2FYcGxaRnQxWFR0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5WYm1SbFptbHVaV1FvZGlrcElIdGNiaUFnSUNBZ0lDQWdabTkxYm1SR2FYSnpkQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR1p2ZFc1a1JtbHljM1FwSUh0Y2JpQWdJQ0FnSUNBZ2JtOXliV0ZzYVhwbFpGdDFYU0E5SUdSbFptRjFiSFJXWVd4MVpYTmJkVjA3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0J1YjNKdFlXeHBlbVZrVzNWZElEMGdiMkpxVG05M1czVmRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRzFoYTJVZ2MzVnlaU0IwYUdVZ2RtRnNkV1Z6SUhkbElHaGhkbVVnWVhKbElHbHVJSEpoYm1kbFhHNGdJQ0FnWTI5dWMzUWdhR2xuYUdWeVQzSmtaWEpKYm5aaGJHbGtJRDBnZFhObFYyVmxhMFJoZEdGY2JpQWdJQ0FnSUNBZ1B5Qm9ZWE5KYm5aaGJHbGtWMlZsYTBSaGRHRW9ibTl5YldGc2FYcGxaQ2xjYmlBZ0lDQWdJQ0FnT2lCamIyNTBZV2x1YzA5eVpHbHVZV3hjYmlBZ0lDQWdJQ0FnUHlCb1lYTkpiblpoYkdsa1QzSmthVzVoYkVSaGRHRW9ibTl5YldGc2FYcGxaQ2xjYmlBZ0lDQWdJQ0FnT2lCb1lYTkpiblpoYkdsa1IzSmxaMjl5YVdGdVJHRjBZU2h1YjNKdFlXeHBlbVZrS1N4Y2JpQWdJQ0FnSUdsdWRtRnNhV1FnUFNCb2FXZG9aWEpQY21SbGNrbHVkbUZzYVdRZ2ZId2dhR0Z6U1c1MllXeHBaRlJwYldWRVlYUmhLRzV2Y20xaGJHbDZaV1FwTzF4dVhHNGdJQ0FnYVdZZ0tHbHVkbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCRVlYUmxWR2x0WlM1cGJuWmhiR2xrS0dsdWRtRnNhV1FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUdOdmJYQjFkR1VnZEdobElHRmpkSFZoYkNCMGFXMWxYRzRnSUNBZ1kyOXVjM1FnWjNKbFoyOXlhV0Z1SUQwZ2RYTmxWMlZsYTBSaGRHRmNiaUFnSUNBZ0lDQWdQeUIzWldWclZHOUhjbVZuYjNKcFlXNG9ibTl5YldGc2FYcGxaQ2xjYmlBZ0lDQWdJQ0FnT2lCamIyNTBZV2x1YzA5eVpHbHVZV3hjYmlBZ0lDQWdJQ0FnUHlCdmNtUnBibUZzVkc5SGNtVm5iM0pwWVc0b2JtOXliV0ZzYVhwbFpDbGNiaUFnSUNBZ0lDQWdPaUJ1YjNKdFlXeHBlbVZrTEZ4dUlDQWdJQ0FnVzNSelJtbHVZV3dzSUc5bVpuTmxkRVpwYm1Gc1hTQTlJRzlpYWxSdlZGTW9aM0psWjI5eWFXRnVMQ0J2Wm1aelpYUlFjbTkyYVhNc0lIcHZibVZVYjFWelpTa3NYRzRnSUNBZ0lDQnBibk4wSUQwZ2JtVjNJRVJoZEdWVWFXMWxLSHRjYmlBZ0lDQWdJQ0FnZEhNNklIUnpSbWx1WVd3c1hHNGdJQ0FnSUNBZ0lIcHZibVU2SUhwdmJtVlViMVZ6WlN4Y2JpQWdJQ0FnSUNBZ2J6b2diMlptYzJWMFJtbHVZV3dzWEc0Z0lDQWdJQ0FnSUd4dll5eGNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnWjNKbFoyOXlhV0Z1SUdSaGRHRWdLeUIzWldWclpHRjVJSE5sY25abGN5QnZibXg1SUhSdklIWmhiR2xrWVhSbFhHNGdJQ0FnYVdZZ0tHNXZjbTFoYkdsNlpXUXVkMlZsYTJSaGVTQW1KaUJqYjI1MFlXbHVjMGR5WldkdmNpQW1KaUJ2WW1vdWQyVmxhMlJoZVNBaFBUMGdhVzV6ZEM1M1pXVnJaR0Y1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUkdGMFpWUnBiV1V1YVc1MllXeHBaQ2hjYmlBZ0lDQWdJQ0FnWENKdGFYTnRZWFJqYUdWa0lIZGxaV3RrWVhsY0lpeGNiaUFnSUNBZ0lDQWdZSGx2ZFNCallXNG5kQ0J6Y0dWamFXWjVJR0p2ZEdnZ1lTQjNaV1ZyWkdGNUlHOW1JQ1I3Ym05eWJXRnNhWHBsWkM1M1pXVnJaR0Y1ZlNCaGJtUWdZU0JrWVhSbElHOW1JQ1I3YVc1emRDNTBiMGxUVHlncGZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdsdWMzUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnUkdGMFpWUnBiV1VnWm5KdmJTQmhiaUJKVTA4Z09EWXdNU0J6ZEhKcGJtZGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSbGVIUWdMU0IwYUdVZ1NWTlBJSE4wY21sdVoxeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTWdkRzhnWVdabVpXTjBJSFJvWlNCamNtVmhkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeGFiMjVsZlNCYmIzQjBjeTU2YjI1bFBTZHNiMk5oYkNkZElDMGdkWE5sSUhSb2FYTWdlbTl1WlNCcFppQnVieUJ2Wm1aelpYUWdhWE1nYzNCbFkybG1hV1ZrSUdsdUlIUm9aU0JwYm5CMWRDQnpkSEpwYm1jZ2FYUnpaV3htTGlCWGFXeHNJR0ZzYzI4Z1kyOXVkbVZ5ZENCMGFHVWdkR2x0WlNCMGJ5QjBhR2x6SUhwdmJtVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmIzQjBjeTV6WlhSYWIyNWxQV1poYkhObFhTQXRJRzkyWlhKeWFXUmxJSFJvWlNCNmIyNWxJSGRwZEdnZ1lTQm1hWGhsWkMxdlptWnpaWFFnZW05dVpTQnpjR1ZqYVdacFpXUWdhVzRnZEdobElITjBjbWx1WnlCcGRITmxiR1lzSUdsbUlHbDBJSE53WldOcFptbGxjeUJ2Ym1WY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR2Y0hSekxteHZZMkZzWlQwbmMzbHpkR1Z0SjNNZ2JHOWpZV3hsSjEwZ0xTQmhJR3h2WTJGc1pTQjBieUJ6WlhRZ2IyNGdkR2hsSUhKbGMzVnNkR2x1WnlCRVlYUmxWR2x0WlNCcGJuTjBZVzVqWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWIzVjBjSFYwUTJGc1pXNWtZWEpkSUMwZ2RHaGxJRzkxZEhCMWRDQmpZV3hsYm1SaGNpQjBieUJ6WlhRZ2IyNGdkR2hsSUhKbGMzVnNkR2x1WnlCRVlYUmxWR2x0WlNCcGJuTjBZVzVqWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdWJuVnRZbVZ5YVc1blUzbHpkR1Z0WFNBdElIUm9aU0J1ZFcxaVpYSnBibWNnYzNsemRHVnRJSFJ2SUhObGRDQnZiaUIwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMUpVMDhvSnpJd01UWXRNRFV0TWpWVU1EazZNRGc2TXpRdU1USXpKeWxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVabkp2YlVsVFR5Z25NakF4Tmkwd05TMHlOVlF3T1Rvd09Eb3pOQzR4TWpNck1EWTZNREFuS1Z4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVtY205dFNWTlBLQ2N5TURFMkxUQTFMVEkxVkRBNU9qQTRPak0wTGpFeU15c3dOam93TUNjc0lIdHpaWFJhYjI1bE9pQjBjblZsZlNsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Wm5KdmJVbFRUeWduTWpBeE5pMHdOUzB5TlZRd09Ub3dPRG96TkM0eE1qTW5MQ0I3ZW05dVpUb2dKM1YwWXlkOUtWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRTVk5QS0NjeU1ERTJMVmN3TlMwMEp5bGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1puSnZiVWxUVHloMFpYaDBMQ0J2Y0hSeklEMGdlMzBwSUh0Y2JpQWdJQ0JqYjI1emRDQmJkbUZzY3l3Z2NHRnljMlZrV205dVpWMGdQU0J3WVhKelpVbFRUMFJoZEdVb2RHVjRkQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIQmhjbk5sUkdGMFlWUnZSR0YwWlZScGJXVW9kbUZzY3l3Z2NHRnljMlZrV205dVpTd2diM0IwY3l3Z1hDSkpVMDhnT0RZd01Wd2lMQ0IwWlhoMEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVWdZU0JFWVhSbFZHbHRaU0JtY205dElHRnVJRkpHUXlBeU9ESXlJSE4wY21sdVoxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdWNGRDQXRJSFJvWlNCU1JrTWdNamd5TWlCemRISnBibWRjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6SUhSdklHRm1abVZqZENCMGFHVWdZM0psWVhScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ4V205dVpYMGdXMjl3ZEhNdWVtOXVaVDBuYkc5allXd25YU0F0SUdOdmJuWmxjblFnZEdobElIUnBiV1VnZEc4Z2RHaHBjeUI2YjI1bExpQlRhVzVqWlNCMGFHVWdiMlptYzJWMElHbHpJR0ZzZDJGNWN5QnpjR1ZqYVdacFpXUWdhVzRnZEdobElITjBjbWx1WnlCcGRITmxiR1lzSUhSb2FYTWdhR0Z6SUc1dklHVm1abVZqZENCdmJpQjBhR1VnYVc1MFpYSndjbVYwWVhScGIyNGdiMllnYzNSeWFXNW5MQ0J0WlhKbGJIa2dkR2hsSUhwdmJtVWdkR2hsSUhKbGMzVnNkR2x1WnlCRVlYUmxWR2x0WlNCcGN5QmxlSEJ5WlhOelpXUWdhVzR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWMyVjBXbTl1WlQxbVlXeHpaVjBnTFNCdmRtVnljbWxrWlNCMGFHVWdlbTl1WlNCM2FYUm9JR0VnWm1sNFpXUXRiMlptYzJWMElIcHZibVVnYzNCbFkybG1hV1ZrSUdsdUlIUm9aU0J6ZEhKcGJtY2dhWFJ6Wld4bUxDQnBaaUJwZENCemNHVmphV1pwWlhNZ2IyNWxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVTlKM041YzNSbGJTZHpJR3h2WTJGc1pTZGRJQzBnWVNCc2IyTmhiR1VnZEc4Z2MyVjBJRzl1SUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RITXViM1YwY0hWMFEyRnNaVzVrWVhJZ0xTQjBhR1VnYjNWMGNIVjBJR05oYkdWdVpHRnlJSFJ2SUhObGRDQnZiaUIwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y0hSekxtNTFiV0psY21sdVoxTjVjM1JsYlNBdElIUm9aU0J1ZFcxaVpYSnBibWNnYzNsemRHVnRJSFJ2SUhObGRDQnZiaUIwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVNSa015T0RJeUtDY3lOU0JPYjNZZ01qQXhOaUF4TXpveU16b3hNaUJIVFZRbktWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRVa1pETWpneU1pZ25SbkpwTENBeU5TQk9iM1lnTWpBeE5pQXhNem95TXpveE1pQXJNRFl3TUNjcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVNSa015T0RJeUtDY3lOU0JPYjNZZ01qQXhOaUF4TXpveU15QmFKeWxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlZKR1F6STRNaklvZEdWNGRDd2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czWmhiSE1zSUhCaGNuTmxaRnB2Ym1WZElEMGdjR0Z5YzJWU1JrTXlPREl5UkdGMFpTaDBaWGgwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjR0Z5YzJWRVlYUmhWRzlFWVhSbFZHbHRaU2gyWVd4ekxDQndZWEp6WldSYWIyNWxMQ0J2Y0hSekxDQmNJbEpHUXlBeU9ESXlYQ0lzSUhSbGVIUXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUVSaGRHVlVhVzFsSUdaeWIyMGdZVzRnU0ZSVVVDQm9aV0ZrWlhJZ1pHRjBaVnh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk5UWNtOTBiMk52YkhNdmNtWmpNall4Tmk5eVptTXlOakUyTFhObFl6TXVhSFJ0YkNOelpXTXpMak11TVZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR1Y0ZENBdElIUm9aU0JJVkZSUUlHaGxZV1JsY2lCa1lYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjeUIwYnlCaFptWmxZM1FnZEdobElHTnlaV0YwYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mRnB2Ym1WOUlGdHZjSFJ6TG5wdmJtVTlKMnh2WTJGc0oxMGdMU0JqYjI1MlpYSjBJSFJvWlNCMGFXMWxJSFJ2SUhSb2FYTWdlbTl1WlM0Z1UybHVZMlVnU0ZSVVVDQmtZWFJsY3lCaGNtVWdZV3gzWVhseklHbHVJRlZVUXl3Z2RHaHBjeUJvWVhNZ2JtOGdaV1ptWldOMElHOXVJSFJvWlNCcGJuUmxjbkJ5WlhSaGRHbHZiaUJ2WmlCemRISnBibWNzSUcxbGNtVnNlU0IwYUdVZ2VtOXVaU0IwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElHbHpJR1Y0Y0hKbGMzTmxaQ0JwYmk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NXpaWFJhYjI1bFBXWmhiSE5sWFNBdElHOTJaWEp5YVdSbElIUm9aU0I2YjI1bElIZHBkR2dnZEdobElHWnBlR1ZrTFc5bVpuTmxkQ0I2YjI1bElITndaV05wWm1sbFpDQnBiaUIwYUdVZ2MzUnlhVzVuTGlCR2IzSWdTRlJVVUNCa1lYUmxjeXdnZEdocGN5QnBjeUJoYkhkaGVYTWdWVlJETENCemJ5QjBhR2x6SUc5d2RHbHZiaUJwY3lCbGNYVnBkbUZzWlc1MElIUnZJSE5sZEhScGJtY2dkR2hsSUdCNmIyNWxZQ0J2Y0hScGIyNGdkRzhnSjNWMFl5Y3NJR0oxZENCMGFHbHpJRzl3ZEdsdmJpQnBjeUJwYm1Oc2RXUmxaQ0JtYjNJZ1kyOXVjMmx6ZEdWdVkza2dkMmwwYUNCemFXMXBiR0Z5SUcxbGRHaHZaSE11WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM0IwY3k1c2IyTmhiR1U5SjNONWMzUmxiU2R6SUd4dlkyRnNaU2RkSUMwZ1lTQnNiMk5oYkdVZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkSE11YjNWMGNIVjBRMkZzWlc1a1lYSWdMU0IwYUdVZ2IzVjBjSFYwSUdOaGJHVnVaR0Z5SUhSdklITmxkQ0J2YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNIUnpMbTUxYldKbGNtbHVaMU41YzNSbGJTQXRJSFJvWlNCdWRXMWlaWEpwYm1jZ2MzbHpkR1Z0SUhSdklITmxkQ0J2YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtWnliMjFJVkZSUUtDZFRkVzRzSURBMklFNXZkaUF4T1RrMElEQTRPalE1T2pNM0lFZE5WQ2NwWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxSVZGUlFLQ2RUZFc1a1lYa3NJREEyTFU1dmRpMDVOQ0F3T0RvME9Ub3pOeUJIVFZRbktWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1bWNtOXRTRlJVVUNnblUzVnVJRTV2ZGlBZ05pQXdPRG8wT1Rvek55QXhPVGswSnlsY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJVaFVWRkFvZEdWNGRDd2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czWmhiSE1zSUhCaGNuTmxaRnB2Ym1WZElEMGdjR0Z5YzJWSVZGUlFSR0YwWlNoMFpYaDBLVHRjYmlBZ0lDQnlaWFIxY200Z2NHRnljMlZFWVhSaFZHOUVZWFJsVkdsdFpTaDJZV3h6TENCd1lYSnpaV1JhYjI1bExDQnZjSFJ6TENCY0lraFVWRkJjSWl3Z2IzQjBjeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ1JHRjBaVlJwYldVZ1puSnZiU0JoYmlCcGJuQjFkQ0J6ZEhKcGJtY2dZVzVrSUdadmNtMWhkQ0J6ZEhKcGJtY3VYRzRnSUNBcUlFUmxabUYxYkhSeklIUnZJR1Z1TFZWVElHbG1JRzV2SUd4dlkyRnNaU0JvWVhNZ1ltVmxiaUJ6Y0dWamFXWnBaV1FzSUhKbFoyRnlaR3hsYzNNZ2IyWWdkR2hsSUhONWMzUmxiU2R6SUd4dlkyRnNaUzRnUm05eUlHRWdkR0ZpYkdVZ2IyWWdkRzlyWlc1eklHRnVaQ0IwYUdWcGNpQnBiblJsY25CeVpYUmhkR2x2Ym5Nc0lITmxaU0JiYUdWeVpWMG9hSFIwY0hNNkx5OXRiMjFsYm5RdVoybDBhSFZpTG1sdkwyeDFlRzl1THlNdmNHRnljMmx1Wno5cFpEMTBZV0pzWlMxdlppMTBiMnRsYm5NcExseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdWNGRDQXRJSFJvWlNCemRISnBibWNnZEc4Z2NHRnljMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHWnRkQ0F0SUhSb1pTQm1iM0p0WVhRZ2RHaGxJSE4wY21sdVp5QnBjeUJsZUhCbFkzUmxaQ0IwYnlCaVpTQnBiaUFvYzJWbElIUm9aU0JzYVc1cklHSmxiRzkzSUdadmNpQjBhR1VnWm05eWJXRjBjeWxjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6SUhSdklHRm1abVZqZENCMGFHVWdZM0psWVhScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ4V205dVpYMGdXMjl3ZEhNdWVtOXVaVDBuYkc5allXd25YU0F0SUhWelpTQjBhR2x6SUhwdmJtVWdhV1lnYm04Z2IyWm1jMlYwSUdseklITndaV05wWm1sbFpDQnBiaUIwYUdVZ2FXNXdkWFFnYzNSeWFXNW5JR2wwYzJWc1ppNGdWMmxzYkNCaGJITnZJR052Ym5abGNuUWdkR2hsSUVSaGRHVlVhVzFsSUhSdklIUm9hWE1nZW05dVpWeHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0dmNIUnpMbk5sZEZwdmJtVTlabUZzYzJWZElDMGdiM1psY25KcFpHVWdkR2hsSUhwdmJtVWdkMmwwYUNCaElIcHZibVVnYzNCbFkybG1hV1ZrSUdsdUlIUm9aU0J6ZEhKcGJtY2dhWFJ6Wld4bUxDQnBaaUJwZENCemNHVmphV1pwWlhNZ2IyNWxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVzYjJOaGJHVTlKMlZ1TFZWVEoxMGdMU0JoSUd4dlkyRnNaU0J6ZEhKcGJtY2dkRzhnZFhObElIZG9aVzRnY0dGeWMybHVaeTRnVjJsc2JDQmhiSE52SUhObGRDQjBhR1VnUkdGMFpWUnBiV1VnZEc4Z2RHaHBjeUJzYjJOaGJHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUc5d2RITXViblZ0WW1WeWFXNW5VM2x6ZEdWdElDMGdkR2hsSUc1MWJXSmxjbWx1WnlCemVYTjBaVzBnZEc4Z2RYTmxJSGRvWlc0Z2NHRnljMmx1Wnk0Z1YybHNiQ0JoYkhOdklITmxkQ0IwYUdVZ2NtVnpkV3gwYVc1bklFUmhkR1ZVYVcxbElIUnZJSFJvYVhNZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiM0IwY3k1dmRYUndkWFJEWVd4bGJtUmhjaUF0SUhSb1pTQnZkWFJ3ZFhRZ1kyRnNaVzVrWVhJZ2RHOGdjMlYwSUc5dUlIUm9aU0J5WlhOMWJIUnBibWNnUkdGMFpWUnBiV1VnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR0YwWlZScGJXVjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdabkp2YlVadmNtMWhkQ2gwWlhoMExDQm1iWFFzSUc5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDaHBjMVZ1WkdWbWFXNWxaQ2gwWlhoMEtTQjhmQ0JwYzFWdVpHVm1hVzVsWkNobWJYUXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MllXeHBaRUZ5WjNWdFpXNTBSWEp5YjNJb1hDSm1jbTl0Um05eWJXRjBJSEpsY1hWcGNtVnpJR0Z1SUdsdWNIVjBJSE4wY21sdVp5QmhibVFnWVNCbWIzSnRZWFJjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdleUJzYjJOaGJHVWdQU0J1ZFd4c0xDQnVkVzFpWlhKcGJtZFRlWE4wWlcwZ1BTQnVkV3hzSUgwZ1BTQnZjSFJ6TEZ4dUlDQWdJQ0FnYkc5allXeGxWRzlWYzJVZ1BTQk1iMk5oYkdVdVpuSnZiVTl3ZEhNb2UxeHVJQ0FnSUNBZ0lDQnNiMk5oYkdVc1hHNGdJQ0FnSUNBZ0lHNTFiV0psY21sdVoxTjVjM1JsYlN4Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZEZSdlJVNDZJSFJ5ZFdVc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lGdDJZV3h6TENCd1lYSnpaV1JhYjI1bExDQnpjR1ZqYVdacFkwOW1abk5sZEN3Z2FXNTJZV3hwWkYwZ1BTQndZWEp6WlVaeWIyMVViMnRsYm5Nb2JHOWpZV3hsVkc5VmMyVXNJSFJsZUhRc0lHWnRkQ2s3WEc0Z0lDQWdhV1lnS0dsdWRtRnNhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJFWVhSbFZHbHRaUzVwYm5aaGJHbGtLR2x1ZG1Gc2FXUXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY0dGeWMyVkVZWFJoVkc5RVlYUmxWR2x0WlNoMllXeHpMQ0J3WVhKelpXUmFiMjVsTENCdmNIUnpMQ0JnWm05eWJXRjBJQ1I3Wm0xMGZXQXNJSFJsZUhRc0lITndaV05wWm1salQyWm1jMlYwS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjSEpsWTJGMFpXUWdkWE5sSUdaeWIyMUdiM0p0WVhRZ2FXNXpkR1ZoWkZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdaeWIyMVRkSEpwYm1jb2RHVjRkQ3dnWm0xMExDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdVpuSnZiVVp2Y20xaGRDaDBaWGgwTENCbWJYUXNJRzl3ZEhNcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJRVJoZEdWVWFXMWxJR1p5YjIwZ1lTQlRVVXdnWkdGMFpTd2dkR2x0WlN3Z2IzSWdaR0YwWlhScGJXVmNiaUFnSUNvZ1JHVm1ZWFZzZEhNZ2RHOGdaVzR0VlZNZ2FXWWdibThnYkc5allXeGxJR2hoY3lCaVpXVnVJSE53WldOcFptbGxaQ3dnY21WbllYSmtiR1Z6Y3lCdlppQjBhR1VnYzNsemRHVnRKM01nYkc5allXeGxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFpYaDBJQzBnZEdobElITjBjbWx1WnlCMGJ5QndZWEp6WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwY3lBdElHOXdkR2x2Ym5NZ2RHOGdZV1ptWldOMElIUm9aU0JqY21WaGRHbHZibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjN4YWIyNWxmU0JiYjNCMGN5NTZiMjVsUFNkc2IyTmhiQ2RkSUMwZ2RYTmxJSFJvYVhNZ2VtOXVaU0JwWmlCdWJ5QnZabVp6WlhRZ2FYTWdjM0JsWTJsbWFXVmtJR2x1SUhSb1pTQnBibkIxZENCemRISnBibWNnYVhSelpXeG1MaUJYYVd4c0lHRnNjMjhnWTI5dWRtVnlkQ0IwYUdVZ1JHRjBaVlJwYldVZ2RHOGdkR2hwY3lCNmIyNWxYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YzJWMFdtOXVaVDFtWVd4elpWMGdMU0J2ZG1WeWNtbGtaU0IwYUdVZ2VtOXVaU0IzYVhSb0lHRWdlbTl1WlNCemNHVmphV1pwWldRZ2FXNGdkR2hsSUhOMGNtbHVaeUJwZEhObGJHWXNJR2xtSUdsMElITndaV05wWm1sbGN5QnZibVZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHZjSFJ6TG14dlkyRnNaVDBuWlc0dFZWTW5YU0F0SUdFZ2JHOWpZV3hsSUhOMGNtbHVaeUIwYnlCMWMyVWdkMmhsYmlCd1lYSnphVzVuTGlCWGFXeHNJR0ZzYzI4Z2MyVjBJSFJvWlNCRVlYUmxWR2x0WlNCMGJ5QjBhR2x6SUd4dlkyRnNaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2IzQjBjeTV1ZFcxaVpYSnBibWRUZVhOMFpXMGdMU0IwYUdVZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlNCMGJ5QjFjMlVnZDJobGJpQndZWEp6YVc1bkxpQlhhV3hzSUdGc2MyOGdjMlYwSUhSb1pTQnlaWE4xYkhScGJtY2dSR0YwWlZScGJXVWdkRzhnZEdocGN5QnVkVzFpWlhKcGJtY2djM2x6ZEdWdFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y0hSekxtOTFkSEIxZEVOaGJHVnVaR0Z5SUMwZ2RHaGxJRzkxZEhCMWRDQmpZV3hsYm1SaGNpQjBieUJ6WlhRZ2IyNGdkR2hsSUhKbGMzVnNkR2x1WnlCRVlYUmxWR2x0WlNCcGJuTjBZVzVqWlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVtY205dFUxRk1LQ2N5TURFM0xUQTFMVEUxSnlsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Wm5KdmJWTlJUQ2duTWpBeE55MHdOUzB4TlNBd09Ub3hNam96TkNjcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG1aeWIyMVRVVXdvSnpJd01UY3RNRFV0TVRVZ01EazZNVEk2TXpRdU16UXlKeWxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVabkp2YlZOUlRDZ25NakF4Tnkwd05TMHhOU0F3T1RveE1qb3pOQzR6TkRJck1EWTZNREFuS1Z4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVtY205dFUxRk1LQ2N5TURFM0xUQTFMVEUxSURBNU9qRXlPak0wTGpNME1pQkJiV1Z5YVdOaEwweHZjMTlCYm1kbGJHVnpKeWxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVabkp2YlZOUlRDZ25NakF4Tnkwd05TMHhOU0F3T1RveE1qb3pOQzR6TkRJZ1FXMWxjbWxqWVM5TWIzTmZRVzVuWld4bGN5Y3NJSHNnYzJWMFdtOXVaVG9nZEhKMVpTQjlLVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNW1jbTl0VTFGTUtDY3lNREUzTFRBMUxURTFJREE1T2pFeU9qTTBMak0wTWljc0lIc2dlbTl1WlRvZ0owRnRaWEpwWTJFdlRHOXpYMEZ1WjJWc1pYTW5JSDBwWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbVp5YjIxVFVVd29KekE1T2pFeU9qTTBMak0wTWljcFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSaGRHVlVhVzFsZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdaeWIyMVRVVXdvZEdWNGRDd2diM0IwY3lBOUlIdDlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1czWmhiSE1zSUhCaGNuTmxaRnB2Ym1WZElEMGdjR0Z5YzJWVFVVd29kR1Y0ZENrN1hHNGdJQ0FnY21WMGRYSnVJSEJoY25ObFJHRjBZVlJ2UkdGMFpWUnBiV1VvZG1Gc2N5d2djR0Z5YzJWa1dtOXVaU3dnYjNCMGN5d2dYQ0pUVVV4Y0lpd2dkR1Y0ZENrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRnVJR2x1ZG1Gc2FXUWdSR0YwWlZScGJXVXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCeVpXRnpiMjRnTFNCemFXMXdiR1VnYzNSeWFXNW5JRzltSUhkb2VTQjBhR2x6SUVSaGRHVlVhVzFsSUdseklHbHVkbUZzYVdRdUlGTm9iM1ZzWkNCdWIzUWdZMjl1ZEdGcGJpQndZWEpoYldWMFpYSnpJRzl5SUdGdWVYUm9hVzVuSUdWc2MyVWdaR0YwWVMxa1pYQmxibVJsYm5SY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRsZUhCc1lXNWhkR2x2YmoxdWRXeHNYU0F0SUd4dmJtZGxjaUJsZUhCc1lXNWhkR2x2Yml3Z2JXRjVJR2x1WTJ4MVpHVWdjR0Z5WVcxbGRHVnljeUJoYm1RZ2IzUm9aWElnZFhObFpuVnNJR1JsWW5WbloybHVaeUJwYm1admNtMWhkR2x2Ymx4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJwYm5aaGJHbGtLSEpsWVhOdmJpd2daWGh3YkdGdVlYUnBiMjRnUFNCdWRXeHNLU0I3WEc0Z0lDQWdhV1lnS0NGeVpXRnpiMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuWmhiR2xrUVhKbmRXMWxiblJGY25KdmNpaGNJbTVsWldRZ2RHOGdjM0JsWTJsbWVTQmhJSEpsWVhOdmJpQjBhR1VnUkdGMFpWUnBiV1VnYVhNZ2FXNTJZV3hwWkZ3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JwYm5aaGJHbGtJRDBnY21WaGMyOXVJR2x1YzNSaGJtTmxiMllnU1c1MllXeHBaQ0EvSUhKbFlYTnZiaUE2SUc1bGR5QkpiblpoYkdsa0tISmxZWE52Yml3Z1pYaHdiR0Z1WVhScGIyNHBPMXh1WEc0Z0lDQWdhV1lnS0ZObGRIUnBibWR6TG5Sb2NtOTNUMjVKYm5aaGJHbGtLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MllXeHBaRVJoZEdWVWFXMWxSWEp5YjNJb2FXNTJZV3hwWkNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUkdGMFpWUnBiV1VvZXlCcGJuWmhiR2xrSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRhR1ZqYXlCcFppQmhiaUJ2WW1wbFkzUWdhWE1nWVc0Z2FXNXpkR0Z1WTJVZ2IyWWdSR0YwWlZScGJXVXVJRmR2Y210eklHRmpjbTl6Y3lCamIyNTBaWGgwSUdKdmRXNWtZWEpwWlhOY2JpQWdJQ29nUUhCaGNtRnRJSHR2WW1wbFkzUjlJRzljYmlBZ0lDb2dRSEpsZEhWeWJpQjdZbTl2YkdWaGJuMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnBjMFJoZEdWVWFXMWxLRzhwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRzhnSmlZZ2J5NXBjMHgxZUc5dVJHRjBaVlJwYldVcElIeDhJR1poYkhObE8xeHVJQ0I5WEc1Y2JpQWdMeThnU1U1R1QxeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUhaaGJIVmxJRzltSUhWdWFYUXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMWJtbDBJQzBnWVNCMWJtbDBJSE4xWTJnZ1lYTWdKMjFwYm5WMFpTY2diM0lnSjJSaGVTZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOeXdnTkNrdVoyVjBLQ2R0YjI1MGFDY3BPeUF2THowK0lEZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOeXdnTkNrdVoyVjBLQ2RrWVhrbktUc2dMeTg5UGlBMFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTI1MWJXSmxjbjFjYmlBZ0lDb3ZYRzRnSUdkbGRDaDFibWwwS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhOYmRXNXBkRjA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCM2FHVjBhR1Z5SUhSb1pTQkVZWFJsVkdsdFpTQnBjeUIyWVd4cFpDNGdTVzUyWVd4cFpDQkVZWFJsVkdsdFpYTWdiMk5qZFhJZ2QyaGxianBjYmlBZ0lDb2dLaUJVYUdVZ1JHRjBaVlJwYldVZ2QyRnpJR055WldGMFpXUWdabkp2YlNCcGJuWmhiR2xrSUdOaGJHVnVaR0Z5SUdsdVptOXliV0YwYVc5dUxDQnpkV05vSUdGeklIUm9aU0F4TTNSb0lHMXZiblJvSUc5eUlFWmxZbkoxWVhKNUlETXdYRzRnSUNBcUlDb2dWR2hsSUVSaGRHVlVhVzFsSUhkaGN5QmpjbVZoZEdWa0lHSjVJR0Z1SUc5d1pYSmhkR2x2YmlCdmJpQmhibTkwYUdWeUlHbHVkbUZzYVdRZ1pHRjBaVnh1SUNBZ0tpQkFkSGx3WlNCN1ltOXZiR1ZoYm4xY2JpQWdJQ292WEc0Z0lHZGxkQ0JwYzFaaGJHbGtLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1sdWRtRnNhV1FnUFQwOUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaGJpQmxjbkp2Y2lCamIyUmxJR2xtSUhSb2FYTWdSR0YwWlZScGJXVWdhWE1nYVc1MllXeHBaQ3dnYjNJZ2JuVnNiQ0JwWmlCMGFHVWdSR0YwWlZScGJXVWdhWE1nZG1Gc2FXUmNiaUFnSUNvZ1FIUjVjR1VnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUdkbGRDQnBiblpoYkdsa1VtVmhjMjl1S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHVkbUZzYVdRZ1B5QjBhR2x6TG1sdWRtRnNhV1F1Y21WaGMyOXVJRG9nYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUdWNGNHeGhibUYwYVc5dUlHOW1JSGRvZVNCMGFHbHpJRVJoZEdWVWFXMWxJR0psWTJGdFpTQnBiblpoYkdsa0xDQnZjaUJ1ZFd4c0lHbG1JSFJvWlNCRVlYUmxWR2x0WlNCcGN5QjJZV3hwWkZ4dUlDQWdLaUJBZEhsd1pTQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdsdWRtRnNhV1JGZUhCc1lXNWhkR2x2YmlncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBiblpoYkdsa0lEOGdkR2hwY3k1cGJuWmhiR2xrTG1WNGNHeGhibUYwYVc5dUlEb2diblZzYkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHeHZZMkZzWlNCdlppQmhJRVJoZEdWVWFXMWxMQ0J6ZFdOb0lDZGxiaTFIUWljdUlGUm9aU0JzYjJOaGJHVWdhWE1nZFhObFpDQjNhR1Z1SUdadmNtMWhkSFJwYm1jZ2RHaGxJRVJoZEdWVWFXMWxYRzRnSUNBcVhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JHOWpZV3hsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG14dll5NXNiMk5oYkdVZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2JuVnRZbVZ5YVc1bklITjVjM1JsYlNCdlppQmhJRVJoZEdWVWFXMWxMQ0J6ZFdOb0lDZGlaVzVuSnk0Z1ZHaGxJRzUxYldKbGNtbHVaeUJ6ZVhOMFpXMGdhWE1nZFhObFpDQjNhR1Z1SUdadmNtMWhkSFJwYm1jZ2RHaGxJRVJoZEdWVWFXMWxYRzRnSUNBcVhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JuVnRZbVZ5YVc1blUzbHpkR1Z0S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG14dll5NXVkVzFpWlhKcGJtZFRlWE4wWlcwZ09pQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2IzVjBjSFYwSUdOaGJHVnVaR0Z5SUc5bUlHRWdSR0YwWlZScGJXVXNJSE4xWTJnZ0oybHpiR0Z0YVdNbkxpQlVhR1VnYjNWMGNIVjBJR05oYkdWdVpHRnlJR2x6SUhWelpXUWdkMmhsYmlCbWIzSnRZWFIwYVc1bklIUm9aU0JFWVhSbFZHbHRaVnh1SUNBZ0tseHVJQ0FnS2lCQWRIbHdaU0I3YzNSeWFXNW5mVnh1SUNBZ0tpOWNiaUFnWjJWMElHOTFkSEIxZEVOaGJHVnVaR0Z5S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG14dll5NXZkWFJ3ZFhSRFlXeGxibVJoY2lBNklHNTFiR3c3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCMGFXMWxJSHB2Ym1VZ1lYTnpiMk5wWVhSbFpDQjNhWFJvSUhSb2FYTWdSR0YwWlZScGJXVXVYRzRnSUNBcUlFQjBlWEJsSUh0YWIyNWxmVnh1SUNBZ0tpOWNiaUFnWjJWMElIcHZibVVvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzcHZibVU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCdVlXMWxJRzltSUhSb1pTQjBhVzFsSUhwdmJtVXVYRzRnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCblpYUWdlbTl1WlU1aGJXVW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhSb2FYTXVlbTl1WlM1dVlXMWxJRG9nYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2RHaGxJSGxsWVhKY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z05Td2dNalVwTG5sbFlYSWdMeTg5UGlBeU1ERTNYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdlV1ZoY2lncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa0lEOGdkR2hwY3k1akxubGxZWElnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0J4ZFdGeWRHVnlYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UY3NJRFVzSURJMUtTNXhkV0Z5ZEdWeUlDOHZQVDRnTWx4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUhGMVlYSjBaWElvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lFMWhkR2d1WTJWcGJDaDBhR2x6TG1NdWJXOXVkR2dnTHlBektTQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnZEdobElHMXZiblJvSUNneExURXlLUzVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTlN3Z01qVXBMbTF2Ym5Sb0lDOHZQVDRnTlZ4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUcxdmJuUm9LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMbU11Ylc5dWRHZ2dPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQmtZWGtnYjJZZ2RHaGxJRzF2Ym5Sb0lDZ3hMVE13YVhOb0tTNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dOU3dnTWpVcExtUmhlU0F2THowK0lESTFYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdaR0Y1S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG1NdVpHRjVJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdhRzkxY2lCdlppQjBhR1VnWkdGNUlDZ3dMVEl6S1M1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z05Td2dNalVzSURrcExtaHZkWElnTHk4OVBpQTVYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdhRzkxY2lncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa0lEOGdkR2hwY3k1akxtaHZkWElnT2lCT1lVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElIUm9aU0J0YVc1MWRHVWdiMllnZEdobElHaHZkWElnS0RBdE5Ua3BMbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXNiMk5oYkNneU1ERTNMQ0ExTENBeU5Td2dPU3dnTXpBcExtMXBiblYwWlNBdkx6MCtJRE13WEc0Z0lDQXFJRUIwZVhCbElIdHVkVzFpWlhKOVhHNGdJQ0FxTDF4dUlDQm5aWFFnYldsdWRYUmxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMbU11YldsdWRYUmxJRG9nVG1GT08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdjMlZqYjI1a0lHOW1JSFJvWlNCdGFXNTFkR1VnS0RBdE5Ua3BMbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXNiMk5oYkNneU1ERTNMQ0ExTENBeU5Td2dPU3dnTXpBc0lEVXlLUzV6WldOdmJtUWdMeTg5UGlBMU1seHVJQ0FnS2lCQWRIbHdaU0I3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWjJWMElITmxZMjl1WkNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa0lEOGdkR2hwY3k1akxuTmxZMjl1WkNBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUcxcGJHeHBjMlZqYjI1a0lHOW1JSFJvWlNCelpXTnZibVFnS0RBdE9UazVLUzVjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTlN3Z01qVXNJRGtzSURNd0xDQTFNaXdnTmpVMEtTNXRhV3hzYVhObFkyOXVaQ0F2THowK0lEWTFORnh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJRzFwYkd4cGMyVmpiMjVrS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG1NdWJXbHNiR2x6WldOdmJtUWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQjNaV1ZySUhsbFlYSmNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5SlUwOWZkMlZsYTE5a1lYUmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UUXNJREV5TENBek1Ta3VkMlZsYTFsbFlYSWdMeTg5UGlBeU1ERTFYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdkMlZsYTFsbFlYSW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhCdmMzTnBZbXg1UTJGamFHVmtWMlZsYTBSaGRHRW9kR2hwY3lrdWQyVmxhMWxsWVhJZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJSFJvWlNCM1pXVnJJRzUxYldKbGNpQnZaaUIwYUdVZ2QyVmxheUI1WldGeUlDZ3hMVFV5YVhOb0tTNWNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5SlUwOWZkMlZsYTE5a1lYUmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UY3NJRFVzSURJMUtTNTNaV1ZyVG5WdFltVnlJQzh2UFQ0Z01qRmNiaUFnSUNvZ1FIUjVjR1VnZTI1MWJXSmxjbjFjYmlBZ0lDb3ZYRzRnSUdkbGRDQjNaV1ZyVG5WdFltVnlLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCd2IzTnphV0pzZVVOaFkyaGxaRmRsWld0RVlYUmhLSFJvYVhNcExuZGxaV3RPZFcxaVpYSWdPaUJPWVU0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQmtZWGtnYjJZZ2RHaGxJSGRsWldzdVhHNGdJQ0FxSURFZ2FYTWdUVzl1WkdGNUlHRnVaQ0EzSUdseklGTjFibVJoZVZ4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpXNHVkMmxyYVhCbFpHbGhMbTl5Wnk5M2FXdHBMMGxUVDE5M1pXVnJYMlJoZEdWY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4TkN3Z01URXNJRE14S1M1M1pXVnJaR0Y1SUM4dlBUNGdORnh1SUNBZ0tpQkFkSGx3WlNCN2JuVnRZbVZ5ZlZ4dUlDQWdLaTljYmlBZ1oyVjBJSGRsWld0a1lYa29LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUhCdmMzTnBZbXg1UTJGamFHVmtWMlZsYTBSaGRHRW9kR2hwY3lrdWQyVmxhMlJoZVNBNklFNWhUanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdkR2hsSUc5eVpHbHVZV3dnS0cxbFlXNXBibWNnZEdobElHUmhlU0J2WmlCMGFHVWdlV1ZoY2lsY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z05Td2dNalVwTG05eVpHbHVZV3dnTHk4OVBpQXhORFZjYmlBZ0lDb2dRSFI1Y0dVZ2UyNTFiV0psY254RVlYUmxWR2x0WlgxY2JpQWdJQ292WEc0Z0lHZGxkQ0J2Y21ScGJtRnNLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCbmNtVm5iM0pwWVc1VWIwOXlaR2x1WVd3b2RHaHBjeTVqS1M1dmNtUnBibUZzSURvZ1RtRk9PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnYUhWdFlXNGdjbVZoWkdGaWJHVWdjMmh2Y25RZ2JXOXVkR2dnYm1GdFpTd2djM1ZqYUNCaGN5QW5UMk4wSnk1Y2JpQWdJQ29nUkdWbVlYVnNkSE1nZEc4Z2RHaGxJSE41YzNSbGJTZHpJR3h2WTJGc1pTQnBaaUJ1YnlCc2IyTmhiR1VnYUdGeklHSmxaVzRnYzNCbFkybG1hV1ZrWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVGNzSURFd0xDQXpNQ2t1Ylc5dWRHaFRhRzl5ZENBdkx6MCtJRTlqZEZ4dUlDQWdLaUJBZEhsd1pTQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUcxdmJuUm9VMmh2Y25Rb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpDQS9JRWx1Wm04dWJXOXVkR2h6S0Z3aWMyaHZjblJjSWl3Z2V5QnNiMk5QWW1vNklIUm9hWE11Ykc5aklIMHBXM1JvYVhNdWJXOXVkR2dnTFNBeFhTQTZJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQm9kVzFoYmlCeVpXRmtZV0pzWlNCc2IyNW5JRzF2Ym5Sb0lHNWhiV1VzSUhOMVkyZ2dZWE1nSjA5amRHOWlaWEluTGx4dUlDQWdLaUJFWldaaGRXeDBjeUIwYnlCMGFHVWdjM2x6ZEdWdEozTWdiRzlqWVd4bElHbG1JRzV2SUd4dlkyRnNaU0JvWVhNZ1ltVmxiaUJ6Y0dWamFXWnBaV1JjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOeXdnTVRBc0lETXdLUzV0YjI1MGFFeHZibWNnTHk4OVBpQlBZM1J2WW1WeVhHNGdJQ0FxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2JXOXVkR2hNYjI1bktDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUJKYm1adkxtMXZiblJvY3loY0lteHZibWRjSWl3Z2V5QnNiMk5QWW1vNklIUm9hWE11Ykc5aklIMHBXM1JvYVhNdWJXOXVkR2dnTFNBeFhTQTZJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlYwSUhSb1pTQm9kVzFoYmlCeVpXRmtZV0pzWlNCemFHOXlkQ0IzWldWclpHRjVMQ0J6ZFdOb0lHRnpJQ2ROYjI0bkxseHVJQ0FnS2lCRVpXWmhkV3gwY3lCMGJ5QjBhR1VnYzNsemRHVnRKM01nYkc5allXeGxJR2xtSUc1dklHeHZZMkZzWlNCb1lYTWdZbVZsYmlCemNHVmphV1pwWldSY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4Tnl3Z01UQXNJRE13S1M1M1pXVnJaR0Y1VTJodmNuUWdMeTg5UGlCTmIyNWNiaUFnSUNvZ1FIUjVjR1VnZTNOMGNtbHVaMzFjYmlBZ0lDb3ZYRzRnSUdkbGRDQjNaV1ZyWkdGNVUyaHZjblFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lFbHVabTh1ZDJWbGEyUmhlWE1vWENKemFHOXlkRndpTENCN0lHeHZZMDlpYWpvZ2RHaHBjeTVzYjJNZ2ZTbGJkR2hwY3k1M1pXVnJaR0Y1SUMwZ01WMGdPaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdhSFZ0WVc0Z2NtVmhaR0ZpYkdVZ2JHOXVaeUIzWldWclpHRjVMQ0J6ZFdOb0lHRnpJQ2ROYjI1a1lYa25MbHh1SUNBZ0tpQkVaV1poZFd4MGN5QjBieUIwYUdVZ2MzbHpkR1Z0SjNNZ2JHOWpZV3hsSUdsbUlHNXZJR3h2WTJGc1pTQm9ZWE1nWW1WbGJpQnpjR1ZqYVdacFpXUmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE55d2dNVEFzSURNd0tTNTNaV1ZyWkdGNVRHOXVaeUF2THowK0lFMXZibVJoZVZ4dUlDQWdLaUJBZEhsd1pTQjdjM1J5YVc1bmZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUhkbFpXdGtZWGxNYjI1bktDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUJKYm1adkxuZGxaV3RrWVhsektGd2liRzl1WjF3aUxDQjdJR3h2WTA5aWFqb2dkR2hwY3k1c2IyTWdmU2xiZEdocGN5NTNaV1ZyWkdGNUlDMGdNVjBnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnVlZSRElHOW1abk5sZENCdlppQjBhR2x6SUVSaGRHVlVhVzFsSUdsdUlHMXBiblYwWlhOY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3ViMlptYzJWMElDOHZQVDRnTFRJME1GeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9LUzV2Wm1aelpYUWdMeTg5UGlBd1hHNGdJQ0FxSUVCMGVYQmxJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2IyWm1jMlYwS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QXJkR2hwY3k1dklEb2dUbUZPTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2MyaHZjblFnYUhWdFlXNGdibUZ0WlNCbWIzSWdkR2hsSUhwdmJtVW5jeUJqZFhKeVpXNTBJRzltWm5ObGRDd2dabTl5SUdWNFlXMXdiR1VnWENKRlUxUmNJaUJ2Y2lCY0lrVkVWRndpTGx4dUlDQWdLaUJFWldaaGRXeDBjeUIwYnlCMGFHVWdjM2x6ZEdWdEozTWdiRzlqWVd4bElHbG1JRzV2SUd4dlkyRnNaU0JvWVhNZ1ltVmxiaUJ6Y0dWamFXWnBaV1JjYmlBZ0lDb2dRSFI1Y0dVZ2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lHZGxkQ0J2Wm1aelpYUk9ZVzFsVTJodmNuUW9LU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5XWVd4cFpDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZW05dVpTNXZabVp6WlhST1lXMWxLSFJvYVhNdWRITXNJSHRjYmlBZ0lDQWdJQ0FnWm05eWJXRjBPaUJjSW5Ob2IzSjBYQ0lzWEc0Z0lDQWdJQ0FnSUd4dlkyRnNaVG9nZEdocGN5NXNiMk5oYkdVc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2JHOXVaeUJvZFcxaGJpQnVZVzFsSUdadmNpQjBhR1VnZW05dVpTZHpJR04xY25KbGJuUWdiMlptYzJWMExDQm1iM0lnWlhoaGJYQnNaU0JjSWtWaGMzUmxjbTRnVTNSaGJtUmhjbVFnVkdsdFpWd2lJRzl5SUZ3aVJXRnpkR1Z5YmlCRVlYbHNhV2RvZENCVWFXMWxYQ0l1WEc0Z0lDQXFJRVJsWm1GMWJIUnpJSFJ2SUhSb1pTQnplWE4wWlcwbmN5QnNiMk5oYkdVZ2FXWWdibThnYkc5allXeGxJR2hoY3lCaVpXVnVJSE53WldOcFptbGxaRnh1SUNBZ0tpQkFkSGx3WlNCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ1oyVjBJRzltWm5ObGRFNWhiV1ZNYjI1bktDa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtbHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbnB2Ym1VdWIyWm1jMlYwVG1GdFpTaDBhR2x6TG5SekxDQjdYRzRnSUNBZ0lDQWdJR1p2Y20xaGREb2dYQ0pzYjI1blhDSXNYRzRnSUNBZ0lDQWdJR3h2WTJGc1pUb2dkR2hwY3k1c2IyTmhiR1VzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjNhR1YwYUdWeUlIUm9hWE1nZW05dVpTZHpJRzltWm5ObGRDQmxkbVZ5SUdOb1lXNW5aWE1zSUdGeklHbHVJR0VnUkZOVUxseHVJQ0FnS2lCQWRIbHdaU0I3WW05dmJHVmhibjFjYmlBZ0lDb3ZYRzRnSUdkbGRDQnBjMDltWm5ObGRFWnBlR1ZrS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRZ1B5QjBhR2x6TG5wdmJtVXVhWE5WYm1sMlpYSnpZV3dnT2lCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjNhR1YwYUdWeUlIUm9aU0JFWVhSbFZHbHRaU0JwY3lCcGJpQmhJRVJUVkM1Y2JpQWdJQ29nUUhSNWNHVWdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2FYTkpia1JUVkNncElIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGMwOW1abk5sZEVacGVHVmtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJSFJvYVhNdWIyWm1jMlYwSUQ0Z2RHaHBjeTV6WlhRb2V5QnRiMjUwYURvZ01Td2daR0Y1T2lBeElIMHBMbTltWm5ObGRDQjhmRnh1SUNBZ0lDQWdJQ0IwYUdsekxtOW1abk5sZENBK0lIUm9hWE11YzJWMEtIc2diVzl1ZEdnNklEVWdmU2t1YjJabWMyVjBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJ5ZFdVZ2FXWWdkR2hwY3lCRVlYUmxWR2x0WlNCcGN5QnBiaUJoSUd4bFlYQWdlV1ZoY2l3Z1ptRnNjMlVnYjNSb1pYSjNhWE5sWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFlwTG1selNXNU1aV0Z3V1dWaGNpQXZMejArSUhSeWRXVmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE15a3VhWE5KYmt4bFlYQlpaV0Z5SUM4dlBUNGdabUZzYzJWY2JpQWdJQ29nUUhSNWNHVWdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JuWlhRZ2FYTkpia3hsWVhCWlpXRnlLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnBjMHhsWVhCWlpXRnlLSFJvYVhNdWVXVmhjaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCMGFHVWdiblZ0WW1WeUlHOW1JR1JoZVhNZ2FXNGdkR2hwY3lCRVlYUmxWR2x0WlNkeklHMXZiblJvWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFlzSURJcExtUmhlWE5KYmsxdmJuUm9JQzh2UFQ0Z01qbGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE5pd2dNeWt1WkdGNWMwbHVUVzl1ZEdnZ0x5ODlQaUF6TVZ4dUlDQWdLaUJBZEhsd1pTQjdiblZ0WW1WeWZWeHVJQ0FnS2k5Y2JpQWdaMlYwSUdSaGVYTkpiazF2Ym5Sb0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCa1lYbHpTVzVOYjI1MGFDaDBhR2x6TG5sbFlYSXNJSFJvYVhNdWJXOXVkR2dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2RHaGxJRzUxYldKbGNpQnZaaUJrWVhseklHbHVJSFJvYVhNZ1JHRjBaVlJwYldVbmN5QjVaV0Z5WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFlwTG1SaGVYTkpibGxsWVhJZ0x5ODlQaUF6TmpaY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4TXlrdVpHRjVjMGx1V1dWaGNpQXZMejArSURNMk5WeHVJQ0FnS2lCQWRIbHdaU0I3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnWjJWMElHUmhlWE5KYmxsbFlYSW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ0EvSUdSaGVYTkpibGxsWVhJb2RHaHBjeTU1WldGeUtTQTZJRTVoVGp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklIUm9aU0J1ZFcxaVpYSWdiMllnZDJWbGEzTWdhVzRnZEdocGN5QkVZWFJsVkdsdFpTZHpJSGxsWVhKY2JpQWdJQ29nUUhObFpTQm9kSFJ3Y3pvdkwyVnVMbmRwYTJsd1pXUnBZUzV2Y21jdmQybHJhUzlKVTA5ZmQyVmxhMTlrWVhSbFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TURRcExuZGxaV3R6U1c1WFpXVnJXV1ZoY2lBdkx6MCtJRFV6WEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVE1wTG5kbFpXdHpTVzVYWldWcldXVmhjaUF2THowK0lEVXlYRzRnSUNBcUlFQjBlWEJsSUh0dWRXMWlaWEo5WEc0Z0lDQXFMMXh1SUNCblpYUWdkMlZsYTNOSmJsZGxaV3RaWldGeUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUIzWldWcmMwbHVWMlZsYTFsbFlYSW9kR2hwY3k1M1pXVnJXV1ZoY2lrZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCMGFHVWdjbVZ6YjJ4MlpXUWdTVzUwYkNCdmNIUnBiMjV6SUdadmNpQjBhR2x6SUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJVYUdseklHbHpJSFZ6WldaMWJDQnBiaUIxYm1SbGNuTjBZVzVrYVc1bklIUm9aU0JpWldoaGRtbHZjaUJ2WmlCbWIzSnRZWFIwYVc1bklHMWxkR2h2WkhOY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQjBhR1VnYzJGdFpTQnZjSFJwYjI1eklHRnpJSFJ2VEc5allXeGxVM1J5YVc1blhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhKbGMyOXNkbVZrVEc5allXeGxUM0IwYVc5dWN5aHZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZZMkZzWlN3Z2JuVnRZbVZ5YVc1blUzbHpkR1Z0TENCallXeGxibVJoY2lCOUlEMGdSbTl5YldGMGRHVnlMbU55WldGMFpTaGNiaUFnSUNBZ0lIUm9hWE11Ykc5akxtTnNiMjVsS0c5d2RITXBMRnh1SUNBZ0lDQWdiM0IwYzF4dUlDQWdJQ2t1Y21WemIyeDJaV1JQY0hScGIyNXpLSFJvYVhNcE8xeHVJQ0FnSUhKbGRIVnliaUI3SUd4dlkyRnNaU3dnYm5WdFltVnlhVzVuVTNsemRHVnRMQ0J2ZFhSd2RYUkRZV3hsYm1SaGNqb2dZMkZzWlc1a1lYSWdmVHRjYmlBZ2ZWeHVYRzRnSUM4dklGUlNRVTVUUms5U1RWeHVYRzRnSUM4cUtseHVJQ0FnS2lCY0lsTmxkRndpSUhSb1pTQkVZWFJsVkdsdFpTZHpJSHB2Ym1VZ2RHOGdWVlJETGlCU1pYUjFjbTV6SUdFZ2JtVjNiSGt0WTI5dWMzUnlkV04wWldRZ1JHRjBaVlJwYldVdVhHNGdJQ0FxWEc0Z0lDQXFJRVZ4ZFdsMllXeGxiblFnZEc4Z2UwQnNhVzVySUVSaGRHVlVhVzFsSTNObGRGcHZibVY5S0NkMWRHTW5LVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyOW1abk5sZEQwd1hTQXRJRzl3ZEdsdmJtRnNiSGtzSUdGdUlHOW1abk5sZENCbWNtOXRJRlZVUXlCcGJpQnRhVzUxZEdWelhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYjNCMGN6MTdmVjBnTFNCdmNIUnBiMjV6SUhSdklIQmhjM01nZEc4Z1lITmxkRnB2Ym1Vb0tXQmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQjBiMVZVUXlodlptWnpaWFFnUFNBd0xDQnZjSFJ6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhSYWIyNWxLRVpwZUdWa1QyWm1jMlYwV205dVpTNXBibk4wWVc1alpTaHZabVp6WlhRcExDQnZjSFJ6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQmNJbE5sZEZ3aUlIUm9aU0JFWVhSbFZHbHRaU2R6SUhwdmJtVWdkRzhnZEdobElHaHZjM1FuY3lCc2IyTmhiQ0I2YjI1bExpQlNaWFIxY201eklHRWdibVYzYkhrdFkyOXVjM1J5ZFdOMFpXUWdSR0YwWlZScGJXVXVYRzRnSUNBcVhHNGdJQ0FxSUVWeGRXbDJZV3hsYm5RZ2RHOGdZSE5sZEZwdmJtVW9KMnh2WTJGc0p5bGdYRzRnSUNBcUlFQnlaWFIxY200Z2UwUmhkR1ZVYVcxbGZWeHVJQ0FnS2k5Y2JpQWdkRzlNYjJOaGJDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhSYWIyNWxLRk5sZEhScGJtZHpMbVJsWm1GMWJIUmFiMjVsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQmNJbE5sZEZ3aUlIUm9aU0JFWVhSbFZHbHRaU2R6SUhwdmJtVWdkRzhnYzNCbFkybG1hV1ZrSUhwdmJtVXVJRkpsZEhWeWJuTWdZU0J1Wlhkc2VTMWpiMjV6ZEhKMVkzUmxaQ0JFWVhSbFZHbHRaUzVjYmlBZ0lDcGNiaUFnSUNvZ1Fua2daR1ZtWVhWc2RDd2dkR2hsSUhObGRIUmxjaUJyWldWd2N5QjBhR1VnZFc1a1pYSnNlV2x1WnlCMGFXMWxJSFJvWlNCellXMWxJQ2hoY3lCcGJpd2dkR2hsSUhOaGJXVWdkR2x0WlhOMFlXMXdLU3dnWW5WMElIUm9aU0J1WlhjZ2FXNXpkR0Z1WTJVZ2QybHNiQ0J5WlhCdmNuUWdaR2xtWm1WeVpXNTBJR3h2WTJGc0lIUnBiV1Z6SUdGdVpDQmpiMjV6YVdSbGNpQkVVMVJ6SUhkb1pXNGdiV0ZyYVc1bklHTnZiWEIxZEdGMGFXOXVjeXdnWVhNZ2QybDBhQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpjR3gxYzMwdUlGbHZkU0J0WVhrZ2QybHphQ0IwYnlCMWMyVWdlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4OUlHRnVaQ0I3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlWVkVOOUlIZG9hV05vSUhCeWIzWnBaR1VnYzJsdGNHeGxJR052Ym5abGJtbGxibU5sSUhkeVlYQndaWEp6SUdadmNpQmpiMjF0YjI1c2VTQjFjMlZrSUhwdmJtVnpMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjN4YWIyNWxmU0JiZW05dVpUMG5iRzlqWVd3blhTQXRJR0VnZW05dVpTQnBaR1Z1ZEdsbWFXVnlMaUJCY3lCaElITjBjbWx1Wnl3Z2RHaGhkQ0JqWVc0Z1ltVWdZVzU1SUVsQlRrRWdlbTl1WlNCemRYQndiM0owWldRZ1lua2dkR2hsSUdodmMzUWdaVzUyYVhKdmJtMWxiblFzSUc5eUlHRWdabWw0WldRdGIyWm1jMlYwSUc1aGJXVWdiMllnZEdobElHWnZjbTBnSjFWVVF5c3pKeXdnYjNJZ2RHaGxJSE4wY21sdVozTWdKMnh2WTJGc0p5QnZjaUFuZFhSakp5NGdXVzkxSUcxaGVTQmhiSE52SUhOMWNIQnNlU0JoYmlCcGJuTjBZVzVqWlNCdlppQmhJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTmFiMjVsZlNCamJHRnpjeTVjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOXdkSE1nTFNCdmNIUnBiMjV6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWEyVmxjRXh2WTJGc1ZHbHRaVDFtWVd4elpWMGdMU0JKWmlCMGNuVmxMQ0JoWkdwMWMzUWdkR2hsSUhWdVpHVnliSGxwYm1jZ2RHbHRaU0J6YnlCMGFHRjBJSFJvWlNCc2IyTmhiQ0IwYVcxbElITjBZWGx6SUhSb1pTQnpZVzFsTENCaWRYUWdhVzRnZEdobElIUmhjbWRsZENCNmIyNWxMaUJaYjNVZ2MyaHZkV3hrSUhKaGNtVnNlU0J1WldWa0lIUm9hWE11WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJoZEdWVWFXMWxmVnh1SUNBZ0tpOWNiaUFnYzJWMFdtOXVaU2g2YjI1bExDQjdJR3RsWlhCTWIyTmhiRlJwYldVZ1BTQm1ZV3h6WlN3Z2EyVmxjRU5oYkdWdVpHRnlWR2x0WlNBOUlHWmhiSE5sSUgwZ1BTQjdmU2tnZTF4dUlDQWdJSHB2Ym1VZ1BTQnViM0p0WVd4cGVtVmFiMjVsS0hwdmJtVXNJRk5sZEhScGJtZHpMbVJsWm1GMWJIUmFiMjVsS1R0Y2JpQWdJQ0JwWmlBb2VtOXVaUzVsY1hWaGJITW9kR2hwY3k1NmIyNWxLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaGVtOXVaUzVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSR0YwWlZScGJXVXVhVzUyWVd4cFpDaDFibk4xY0hCdmNuUmxaRnB2Ym1Vb2VtOXVaU2twTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnNaWFFnYm1WM1ZGTWdQU0IwYUdsekxuUnpPMXh1SUNBZ0lDQWdhV1lnS0d0bFpYQk1iMk5oYkZScGJXVWdmSHdnYTJWbGNFTmhiR1Z1WkdGeVZHbHRaU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J2Wm1aelpYUkhkV1Z6Y3lBOUlIcHZibVV1YjJabWMyVjBLSFJvYVhNdWRITXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhjMDlpYWlBOUlIUm9hWE11ZEc5UFltcGxZM1FvS1R0Y2JpQWdJQ0FnSUNBZ1cyNWxkMVJUWFNBOUlHOWlhbFJ2VkZNb1lYTlBZbW9zSUc5bVpuTmxkRWQxWlhOekxDQjZiMjVsS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJqYkc5dVpTaDBhR2x6TENCN0lIUnpPaUJ1WlhkVVV5d2dlbTl1WlNCOUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dYQ0pUWlhSY0lpQjBhR1VnYkc5allXeGxMQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNJRzl5SUc5MWRIQjFkRU5oYkdWdVpHRnlMaUJTWlhSMWNtNXpJR0VnYm1WM2JIa3RZMjl1YzNSeWRXTjBaV1FnUkdGMFpWUnBiV1V1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQndjbTl3WlhKMGFXVnpJQzBnZEdobElIQnliM0JsY25ScFpYTWdkRzhnYzJWMFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRjc0lEVXNJREkxS1M1eVpXTnZibVpwWjNWeVpTaDdJR3h2WTJGc1pUb2dKMlZ1TFVkQ0p5QjlLVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVZWFJsVkdsdFpYMWNiaUFnSUNvdlhHNGdJSEpsWTI5dVptbG5kWEpsS0hzZ2JHOWpZV3hsTENCdWRXMWlaWEpwYm1kVGVYTjBaVzBzSUc5MWRIQjFkRU5oYkdWdVpHRnlJSDBnUFNCN2ZTa2dlMXh1SUNBZ0lHTnZibk4wSUd4dll5QTlJSFJvYVhNdWJHOWpMbU5zYjI1bEtIc2diRzlqWVd4bExDQnVkVzFpWlhKcGJtZFRlWE4wWlcwc0lHOTFkSEIxZEVOaGJHVnVaR0Z5SUgwcE8xeHVJQ0FnSUhKbGRIVnliaUJqYkc5dVpTaDBhR2x6TENCN0lHeHZZeUI5S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQmNJbE5sZEZ3aUlIUm9aU0JzYjJOaGJHVXVJRkpsZEhWeWJuTWdZU0J1Wlhkc2VTMWpiMjV6ZEhKMVkzUmxaQ0JFWVhSbFZHbHRaUzVjYmlBZ0lDb2dTblZ6ZENCaElHTnZiblpsYm1sbGJuUWdZV3hwWVhNZ1ptOXlJSEpsWTI5dVptbG5kWEpsS0hzZ2JHOWpZV3hsSUgwcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUVSaGRHVlVhVzFsTG14dlkyRnNLREl3TVRjc0lEVXNJREkxS1M1elpYUk1iMk5oYkdVb0oyVnVMVWRDSnlsY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCelpYUk1iMk5oYkdVb2JHOWpZV3hsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVmpiMjVtYVdkMWNtVW9leUJzYjJOaGJHVWdmU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1hDSlRaWFJjSWlCMGFHVWdkbUZzZFdWeklHOW1JSE53WldOcFptbGxaQ0IxYm1sMGN5NGdVbVYwZFhKdWN5QmhJRzVsZDJ4NUxXTnZibk4wY25WamRHVmtJRVJoZEdWVWFXMWxMbHh1SUNBZ0tpQlpiM1VnWTJGdUlHOXViSGtnYzJWMElIVnVhWFJ6SUhkcGRHZ2dkR2hwY3lCdFpYUm9iMlE3SUdadmNpQmNJbk5sZEhScGJtZGNJaUJ0WlhSaFpHRjBZU3dnYzJWbElIdEFiR2x1YXlCRVlYUmxWR2x0WlNOeVpXTnZibVpwWjNWeVpYMGdZVzVrSUh0QWJHbHVheUJFWVhSbFZHbHRaU056WlhSYWIyNWxmUzVjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlIWmhiSFZsY3lBdElHRWdiV0Z3Y0dsdVp5QnZaaUIxYm1sMGN5QjBieUJ1ZFcxaVpYSnpYRzRnSUNBcUlFQmxlR0Z0Y0d4bElHUjBMbk5sZENoN0lIbGxZWEk2SURJd01UY2dmU2xjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdaSFF1YzJWMEtIc2dhRzkxY2pvZ09Dd2diV2x1ZFhSbE9pQXpNQ0I5S1Z4dUlDQWdLaUJBWlhoaGJYQnNaU0JrZEM1elpYUW9leUIzWldWclpHRjVPaUExSUgwcFhHNGdJQ0FxSUVCbGVHRnRjR3hsSUdSMExuTmxkQ2g3SUhsbFlYSTZJREl3TURVc0lHOXlaR2x1WVd3NklESXpOQ0I5S1Z4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbFZHbHRaWDFjYmlBZ0lDb3ZYRzRnSUhObGRDaDJZV3gxWlhNcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFYTldZV3hwWkNrZ2NtVjBkWEp1SUhSb2FYTTdYRzVjYmlBZ0lDQmpiMjV6ZENCdWIzSnRZV3hwZW1Wa0lEMGdibTl5YldGc2FYcGxUMkpxWldOMEtIWmhiSFZsY3l3Z2JtOXliV0ZzYVhwbFZXNXBkQ2tzWEc0Z0lDQWdJQ0J6WlhSMGFXNW5WMlZsYTFOMGRXWm1JRDFjYmlBZ0lDQWdJQ0FnSVdselZXNWtaV1pwYm1Wa0tHNXZjbTFoYkdsNlpXUXVkMlZsYTFsbFlYSXBJSHg4WEc0Z0lDQWdJQ0FnSUNGcGMxVnVaR1ZtYVc1bFpDaHViM0p0WVd4cGVtVmtMbmRsWld0T2RXMWlaWElwSUh4OFhHNGdJQ0FnSUNBZ0lDRnBjMVZ1WkdWbWFXNWxaQ2h1YjNKdFlXeHBlbVZrTG5kbFpXdGtZWGtwTEZ4dUlDQWdJQ0FnWTI5dWRHRnBibk5QY21ScGJtRnNJRDBnSVdselZXNWtaV1pwYm1Wa0tHNXZjbTFoYkdsNlpXUXViM0prYVc1aGJDa3NYRzRnSUNBZ0lDQmpiMjUwWVdsdWMwZHlaV2R2Y2xsbFlYSWdQU0FoYVhOVmJtUmxabWx1WldRb2JtOXliV0ZzYVhwbFpDNTVaV0Z5S1N4Y2JpQWdJQ0FnSUdOdmJuUmhhVzV6UjNKbFoyOXlUVVFnUFNBaGFYTlZibVJsWm1sdVpXUW9ibTl5YldGc2FYcGxaQzV0YjI1MGFDa2dmSHdnSVdselZXNWtaV1pwYm1Wa0tHNXZjbTFoYkdsNlpXUXVaR0Y1S1N4Y2JpQWdJQ0FnSUdOdmJuUmhhVzV6UjNKbFoyOXlJRDBnWTI5dWRHRnBibk5IY21WbmIzSlpaV0Z5SUh4OElHTnZiblJoYVc1elIzSmxaMjl5VFVRc1hHNGdJQ0FnSUNCa1pXWnBibWwwWlZkbFpXdEVaV1lnUFNCdWIzSnRZV3hwZW1Wa0xuZGxaV3RaWldGeUlIeDhJRzV2Y20xaGJHbDZaV1F1ZDJWbGEwNTFiV0psY2p0Y2JseHVJQ0FnSUdsbUlDZ29ZMjl1ZEdGcGJuTkhjbVZuYjNJZ2ZId2dZMjl1ZEdGcGJuTlBjbVJwYm1Gc0tTQW1KaUJrWldacGJtbDBaVmRsWld0RVpXWXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJEYjI1bWJHbGpkR2x1WjFOd1pXTnBabWxqWVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSkRZVzRuZENCdGFYZ2dkMlZsYTFsbFlYSXZkMlZsYTA1MWJXSmxjaUIxYm1sMGN5QjNhWFJvSUhsbFlYSXZiVzl1ZEdndlpHRjVJRzl5SUc5eVpHbHVZV3h6WENKY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHTnZiblJoYVc1elIzSmxaMjl5VFVRZ0ppWWdZMjl1ZEdGcGJuTlBjbVJwYm1Gc0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRMjl1Wm14cFkzUnBibWRUY0dWamFXWnBZMkYwYVc5dVJYSnliM0lvWENKRFlXNG5kQ0J0YVhnZ2IzSmthVzVoYkNCa1lYUmxjeUIzYVhSb0lHMXZiblJvTDJSaGVWd2lLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnYldsNFpXUTdYRzRnSUNBZ2FXWWdLSE5sZEhScGJtZFhaV1ZyVTNSMVptWXBJSHRjYmlBZ0lDQWdJRzFwZUdWa0lEMGdkMlZsYTFSdlIzSmxaMjl5YVdGdUtIc2dMaTR1WjNKbFoyOXlhV0Z1Vkc5WFpXVnJLSFJvYVhNdVl5a3NJQzR1TG01dmNtMWhiR2w2WldRZ2ZTazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hhWE5WYm1SbFptbHVaV1FvYm05eWJXRnNhWHBsWkM1dmNtUnBibUZzS1NrZ2UxeHVJQ0FnSUNBZ2JXbDRaV1FnUFNCdmNtUnBibUZzVkc5SGNtVm5iM0pwWVc0b2V5QXVMaTVuY21WbmIzSnBZVzVVYjA5eVpHbHVZV3dvZEdocGN5NWpLU3dnTGk0dWJtOXliV0ZzYVhwbFpDQjlLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2JXbDRaV1FnUFNCN0lDNHVMblJvYVhNdWRHOVBZbXBsWTNRb0tTd2dMaTR1Ym05eWJXRnNhWHBsWkNCOU8xeHVYRzRnSUNBZ0lDQXZMeUJwWmlCM1pTQmthV1J1SjNRZ2MyVjBJSFJvWlNCa1lYa2dZblYwSUhkbElHVnVaR1ZrSUhWd0lHOXVJR0Z1SUc5MlpYSm1iRzkzSUdSaGRHVXNYRzRnSUNBZ0lDQXZMeUIxYzJVZ2RHaGxJR3hoYzNRZ1pHRjVJRzltSUhSb1pTQnlhV2RvZENCdGIyNTBhRnh1SUNBZ0lDQWdhV1lnS0dselZXNWtaV1pwYm1Wa0tHNXZjbTFoYkdsNlpXUXVaR0Y1S1NrZ2UxeHVJQ0FnSUNBZ0lDQnRhWGhsWkM1a1lYa2dQU0JOWVhSb0xtMXBiaWhrWVhselNXNU5iMjUwYUNodGFYaGxaQzU1WldGeUxDQnRhWGhsWkM1dGIyNTBhQ2tzSUcxcGVHVmtMbVJoZVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdXM1J6TENCdlhTQTlJRzlpYWxSdlZGTW9iV2w0WldRc0lIUm9hWE11Ynl3Z2RHaHBjeTU2YjI1bEtUdGNiaUFnSUNCeVpYUjFjbTRnWTJ4dmJtVW9kR2hwY3l3Z2V5QjBjeXdnYnlCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCWkdRZ1lTQndaWEpwYjJRZ2IyWWdkR2x0WlNCMGJ5QjBhR2x6SUVSaGRHVlVhVzFsSUdGdVpDQnlaWFIxY200Z2RHaGxJSEpsYzNWc2RHbHVaeUJFWVhSbFZHbHRaVnh1SUNBZ0tseHVJQ0FnS2lCQlpHUnBibWNnYUc5MWNuTXNJRzFwYm5WMFpYTXNJSE5sWTI5dVpITXNJRzl5SUcxcGJHeHBjMlZqYjI1a2N5QnBibU55WldGelpYTWdkR2hsSUhScGJXVnpkR0Z0Y0NCaWVTQjBhR1VnY21sbmFIUWdiblZ0WW1WeUlHOW1JRzFwYkd4cGMyVmpiMjVrY3k0Z1FXUmthVzVuSUdSaGVYTXNJRzF2Ym5Sb2N5d2diM0lnZVdWaGNuTWdjMmhwWm5SeklIUm9aU0JqWVd4bGJtUmhjaXdnWVdOamIzVnVkR2x1WnlCbWIzSWdSRk5VY3lCaGJtUWdiR1ZoY0NCNVpXRnljeUJoYkc5dVp5QjBhR1VnZDJGNUxpQlVhSFZ6TENCZ1pIUXVjR3gxY3loN0lHaHZkWEp6T2lBeU5DQjlLV0FnYldGNUlISmxjM1ZzZENCcGJpQmhJR1JwWm1abGNtVnVkQ0IwYVcxbElIUm9ZVzRnWUdSMExuQnNkWE1vZXlCa1lYbHpPaUF4SUgwcFlDQnBaaUIwYUdWeVpTZHpJR0VnUkZOVUlITm9hV1owSUdsdUlHSmxkSGRsWlc0dVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkhWeVlYUnBiMjU4VDJKcVpXTjBmRzUxYldKbGNuMGdaSFZ5WVhScGIyNGdMU0JVYUdVZ1lXMXZkVzUwSUhSdklHRmtaQzRnUldsMGFHVnlJR0VnVEhWNGIyNGdSSFZ5WVhScGIyNHNJR0VnYm5WdFltVnlJRzltSUcxcGJHeHBjMlZqYjI1a2N5d2dkR2hsSUc5aWFtVmpkQ0JoY21kMWJXVnVkQ0IwYnlCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtDbGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1Y0d4MWN5Z3hNak1wSUM4dmZqNGdhVzRnTVRJeklHMXBiR3hwYzJWamIyNWtjMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1d2JIVnpLSHNnYldsdWRYUmxjem9nTVRVZ2ZTa2dMeTkrUGlCcGJpQXhOU0J0YVc1MWRHVnpYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtNXZkeWdwTG5Cc2RYTW9leUJrWVhsek9pQXhJSDBwSUM4dmZqNGdkR2hwY3lCMGFXMWxJSFJ2Ylc5eWNtOTNYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtNXZkeWdwTG5Cc2RYTW9leUJrWVhsek9pQXRNU0I5S1NBdkwzNCtJSFJvYVhNZ2RHbHRaU0I1WlhOMFpYSmtZWGxjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWNHeDFjeWg3SUdodmRYSnpPaUF6TENCdGFXNTFkR1Z6T2lBeE15QjlLU0F2TDM0K0lHbHVJRE1nYUhJc0lERXpJRzFwYmx4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNXdiSFZ6S0VSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5Qm9iM1Z5Y3pvZ015d2diV2x1ZFhSbGN6b2dNVE1nZlNrcElDOHZmajRnYVc0Z015Qm9jaXdnTVRNZ2JXbHVYRzRnSUNBcUlFQnlaWFIxY200Z2UwUmhkR1ZVYVcxbGZWeHVJQ0FnS2k5Y2JpQWdjR3gxY3loa2RYSmhkR2x2YmlrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCamIyNXpkQ0JrZFhJZ1BTQkVkWEpoZEdsdmJpNW1jbTl0UkhWeVlYUnBiMjVNYVd0bEtHUjFjbUYwYVc5dUtUdGNiaUFnSUNCeVpYUjFjbTRnWTJ4dmJtVW9kR2hwY3l3Z1lXUnFkWE4wVkdsdFpTaDBhR2x6TENCa2RYSXBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVGRXSjBjbUZqZENCaElIQmxjbWx2WkNCdlppQjBhVzFsSUhSdklIUm9hWE1nUkdGMFpWUnBiV1VnWVc1a0lISmxkSFZ5YmlCMGFHVWdjbVZ6ZFd4MGFXNW5JRVJoZEdWVWFXMWxYRzRnSUNBcUlGTmxaU0I3UUd4cGJtc2dSR0YwWlZScGJXVWpjR3gxYzMxY2JpQWdJQ29nUUhCaGNtRnRJSHRFZFhKaGRHbHZibnhQWW1wbFkzUjhiblZ0WW1WeWZTQmtkWEpoZEdsdmJpQXRJRlJvWlNCaGJXOTFiblFnZEc4Z2MzVmlkSEpoWTNRdUlFVnBkR2hsY2lCaElFeDFlRzl1SUVSMWNtRjBhVzl1TENCaElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1zSUhSb1pTQnZZbXBsWTNRZ1lYSm5kVzFsYm5RZ2RHOGdSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2dwWEc0Z0lDQkFjbVYwZFhKdUlIdEVZWFJsVkdsdFpYMWNiaUFnSUNvdlhHNGdJRzFwYm5WektHUjFjbUYwYVc5dUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lHTnZibk4wSUdSMWNpQTlJRVIxY21GMGFXOXVMbVp5YjIxRWRYSmhkR2x2Ymt4cGEyVW9aSFZ5WVhScGIyNHBMbTVsWjJGMFpTZ3BPMXh1SUNBZ0lISmxkSFZ5YmlCamJHOXVaU2gwYUdsekxDQmhaR3AxYzNSVWFXMWxLSFJvYVhNc0lHUjFjaWtwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGd2lVMlYwWENJZ2RHaHBjeUJFWVhSbFZHbHRaU0IwYnlCMGFHVWdZbVZuYVc1dWFXNW5JRzltSUdFZ2RXNXBkQ0J2WmlCMGFXMWxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RXNXBkQ0F0SUZSb1pTQjFibWwwSUhSdklHZHZJSFJ2SUhSb1pTQmlaV2RwYm01cGJtY2diMll1SUVOaGJpQmlaU0FuZVdWaGNpY3NJQ2R4ZFdGeWRHVnlKeXdnSjIxdmJuUm9KeXdnSjNkbFpXc25MQ0FuWkdGNUp5d2dKMmh2ZFhJbkxDQW5iV2x1ZFhSbEp5d2dKM05sWTI5dVpDY3NJRzl5SUNkdGFXeHNhWE5sWTI5dVpDY3VYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UUXNJRE1zSURNcExuTjBZWEowVDJZb0oyMXZiblJvSnlrdWRHOUpVMDlFWVhSbEtDazdJQzh2UFQ0Z0p6SXdNVFF0TURNdE1ERW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UUXNJRE1zSURNcExuTjBZWEowVDJZb0ozbGxZWEluS1M1MGIwbFRUMFJoZEdVb0tUc2dMeTg5UGlBbk1qQXhOQzB3TVMwd01TZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJHOWpZV3dvTWpBeE5Dd2dNeXdnTXlrdWMzUmhjblJQWmlnbmQyVmxheWNwTG5SdlNWTlBSR0YwWlNncE95QXZMejArSUNjeU1ERTBMVEF6TFRBekp5d2dkMlZsYTNNZ1lXeDNZWGx6SUhOMFlYSjBJRzl1SUUxdmJtUmhlWE5jYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOQ3dnTXl3Z015d2dOU3dnTXpBcExuTjBZWEowVDJZb0oyUmhlU2NwTG5SdlNWTlBWR2x0WlNncE95QXZMejArSUNjd01Eb3dNQzR3TURBdE1EVTZNREFuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURNc0lETXNJRFVzSURNd0tTNXpkR0Z5ZEU5bUtDZG9iM1Z5SnlrdWRHOUpVMDlVYVcxbEtDazdJQzh2UFQ0Z0p6QTFPakF3T2pBd0xqQXdNQzB3TlRvd01DZGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHRjBaVlJwYldWOVhHNGdJQ0FxTDF4dUlDQnpkR0Z5ZEU5bUtIVnVhWFFwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnWTI5dWMzUWdieUE5SUh0OUxGeHVJQ0FnSUNBZ2JtOXliV0ZzYVhwbFpGVnVhWFFnUFNCRWRYSmhkR2x2Ymk1dWIzSnRZV3hwZW1WVmJtbDBLSFZ1YVhRcE8xeHVJQ0FnSUhOM2FYUmphQ0FvYm05eWJXRnNhWHBsWkZWdWFYUXBJSHRjYmlBZ0lDQWdJR05oYzJVZ1hDSjVaV0Z5YzF3aU9seHVJQ0FnSUNBZ0lDQnZMbTF2Ym5Sb0lEMGdNVHRjYmlBZ0lDQWdJQzh2SUdaaGJHeHpJSFJvY205MVoyaGNiaUFnSUNBZ0lHTmhjMlVnWENKeGRXRnlkR1Z5YzF3aU9seHVJQ0FnSUNBZ1kyRnpaU0JjSW0xdmJuUm9jMXdpT2x4dUlDQWdJQ0FnSUNCdkxtUmhlU0E5SURFN1hHNGdJQ0FnSUNBdkx5Qm1ZV3hzY3lCMGFISnZkV2RvWEc0Z0lDQWdJQ0JqWVhObElGd2lkMlZsYTNOY0lqcGNiaUFnSUNBZ0lHTmhjMlVnWENKa1lYbHpYQ0k2WEc0Z0lDQWdJQ0FnSUc4dWFHOTFjaUE5SURBN1hHNGdJQ0FnSUNBdkx5Qm1ZV3hzY3lCMGFISnZkV2RvWEc0Z0lDQWdJQ0JqWVhObElGd2lhRzkxY25OY0lqcGNiaUFnSUNBZ0lDQWdieTV0YVc1MWRHVWdQU0F3TzF4dUlDQWdJQ0FnTHk4Z1ptRnNiSE1nZEdoeWIzVm5hRnh1SUNBZ0lDQWdZMkZ6WlNCY0ltMXBiblYwWlhOY0lqcGNiaUFnSUNBZ0lDQWdieTV6WldOdmJtUWdQU0F3TzF4dUlDQWdJQ0FnTHk4Z1ptRnNiSE1nZEdoeWIzVm5hRnh1SUNBZ0lDQWdZMkZ6WlNCY0luTmxZMjl1WkhOY0lqcGNiaUFnSUNBZ0lDQWdieTV0YVd4c2FYTmxZMjl1WkNBOUlEQTdYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ1kyRnpaU0JjSW0xcGJHeHBjMlZqYjI1a2Mxd2lPbHh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDOHZJRzV2SUdSbFptRjFiSFFzSUdsdWRtRnNhV1FnZFc1cGRITWdkR2h5YjNjZ2FXNGdibTl5YldGc2FYcGxWVzVwZENncFhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHNXZjbTFoYkdsNlpXUlZibWwwSUQwOVBTQmNJbmRsWld0elhDSXBJSHRjYmlBZ0lDQWdJRzh1ZDJWbGEyUmhlU0E5SURFN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHNXZjbTFoYkdsNlpXUlZibWwwSUQwOVBTQmNJbkYxWVhKMFpYSnpYQ0lwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEVnUFNCTllYUm9MbU5sYVd3b2RHaHBjeTV0YjI1MGFDQXZJRE1wTzF4dUlDQWdJQ0FnYnk1dGIyNTBhQ0E5SUNoeElDMGdNU2tnS2lBeklDc2dNVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhRb2J5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nWENKVFpYUmNJaUIwYUdseklFUmhkR1ZVYVcxbElIUnZJSFJvWlNCbGJtUWdLRzFsWVc1cGJtY2dkR2hsSUd4aGMzUWdiV2xzYkdselpXTnZibVFwSUc5bUlHRWdkVzVwZENCdlppQjBhVzFsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjFibWwwSUMwZ1ZHaGxJSFZ1YVhRZ2RHOGdaMjhnZEc4Z2RHaGxJR1Z1WkNCdlppNGdRMkZ1SUdKbElDZDVaV0Z5Snl3Z0ozRjFZWEowWlhJbkxDQW5iVzl1ZEdnbkxDQW5kMlZsYXljc0lDZGtZWGtuTENBbmFHOTFjaWNzSUNkdGFXNTFkR1VuTENBbmMyVmpiMjVrSnl3Z2IzSWdKMjFwYkd4cGMyVmpiMjVrSnk1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ykc5allXd29NakF4TkN3Z015d2dNeWt1Wlc1a1QyWW9KMjF2Ym5Sb0p5a3VkRzlKVTA4b0tUc2dMeTg5UGlBbk1qQXhOQzB3TXkwek1WUXlNem8xT1RvMU9TNDVPVGt0TURVNk1EQW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UUXNJRE1zSURNcExtVnVaRTltS0NkNVpXRnlKeWt1ZEc5SlUwOG9LVHNnTHk4OVBpQW5NakF4TkMweE1pMHpNVlF5TXpvMU9UbzFPUzQ1T1RrdE1EVTZNREFuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURNc0lETXBMbVZ1WkU5bUtDZDNaV1ZySnlrdWRHOUpVMDhvS1RzZ0x5OGdQVDRnSnpJd01UUXRNRE10TURsVU1qTTZOVGs2TlRrdU9UazVMVEExT2pBd0p5d2dkMlZsYTNNZ2MzUmhjblFnYjI0Z1RXOXVaR0Y1YzF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUwTENBekxDQXpMQ0ExTENBek1Da3VaVzVrVDJZb0oyUmhlU2NwTG5SdlNWTlBLQ2s3SUM4dlBUNGdKekl3TVRRdE1ETXRNRE5VTWpNNk5UazZOVGt1T1RrNUxUQTFPakF3SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzVzYjJOaGJDZ3lNREUwTENBekxDQXpMQ0ExTENBek1Da3VaVzVrVDJZb0oyaHZkWEluS1M1MGIwbFRUeWdwT3lBdkx6MCtJQ2N5TURFMExUQXpMVEF6VkRBMU9qVTVPalU1TGprNU9TMHdOVG93TUNkY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpWUnBiV1Y5WEc0Z0lDQXFMMXh1SUNCbGJtUlBaaWgxYm1sMEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5XWVd4cFpGeHVJQ0FnSUNBZ1B5QjBhR2x6TG5Cc2RYTW9leUJiZFc1cGRGMDZJREVnZlNsY2JpQWdJQ0FnSUNBZ0lDQXVjM1JoY25SUFppaDFibWwwS1Z4dUlDQWdJQ0FnSUNBZ0lDNXRhVzUxY3lneEtWeHVJQ0FnSUNBZ09pQjBhR2x6TzF4dUlDQjlYRzVjYmlBZ0x5OGdUMVZVVUZWVVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpTQm1iM0p0WVhSMFpXUWdZV05qYjNKa2FXNW5JSFJ2SUhSb1pTQnpjR1ZqYVdacFpXUWdabTl5YldGMElITjBjbWx1Wnk1Y2JpQWdJQ29nS2lwWmIzVWdiV0Y1SUc1dmRDQjNZVzUwSUhSb2FYTXVLaW9nVTJWbElIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eUlHRWdiVzl5WlNCbWJHVjRhV0pzWlNCbWIzSnRZWFIwYVc1bklIUnZiMnd1SUVadmNpQmhJSFJoWW14bElHOW1JSFJ2YTJWdWN5QmhibVFnZEdobGFYSWdhVzUwWlhKd2NtVjBZWFJwYjI1ekxDQnpaV1VnVzJobGNtVmRLR2gwZEhCek9pOHZiVzl0Wlc1MExtZHBkR2gxWWk1cGJ5OXNkWGh2Ymk4akwyWnZjbTFoZEhScGJtYy9hV1E5ZEdGaWJHVXRiMll0ZEc5clpXNXpLUzVjYmlBZ0lDb2dSR1ZtWVhWc2RITWdkRzhnWlc0dFZWTWdhV1lnYm04Z2JHOWpZV3hsSUdoaGN5QmlaV1Z1SUhOd1pXTnBabWxsWkN3Z2NtVm5ZWEprYkdWemN5QnZaaUIwYUdVZ2MzbHpkR1Z0SjNNZ2JHOWpZV3hsTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdabTEwSUMwZ2RHaGxJR1p2Y20xaGRDQnpkSEpwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJ6SUhSdklHOTJaWEp5YVdSbElIUm9aU0JqYjI1bWFXZDFjbUYwYVc5dUlHOXdkR2x2Ym5NZ2IyNGdkR2hwY3lCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMFp2Y20xaGRDZ25lWGw1ZVNCTVRFd2daR1FuS1NBdkx6MCtJQ2N5TURFM0lFRndjaUF5TWlkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VjMlYwVEc5allXeGxLQ2RtY2ljcExuUnZSbTl5YldGMEtDZDVlWGw1SUV4TVRDQmtaQ2NwSUM4dlBUNGdKekl3TVRjZ1lYWnlMaUF5TWlkY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VkRzlHYjNKdFlYUW9KM2w1ZVhrZ1RFeE1JR1JrSnl3Z2V5QnNiMk5oYkdVNklGd2labkpjSWlCOUtTQXZMejArSUNjeU1ERTNJR0YyY2k0Z01qSW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtNXZkeWdwTG5SdlJtOXliV0YwS0Z3aVNFZ2dKMmh2ZFhKeklHRnVaQ2NnYlcwZ0oyMXBiblYwWlhNblhDSXBJQzh2UFQ0Z0p6SXdJR2h2ZFhKeklHRnVaQ0ExTlNCdGFXNTFkR1Z6SjF4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0IwYjBadmNtMWhkQ2htYlhRc0lHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUmNiaUFnSUNBZ0lEOGdSbTl5YldGMGRHVnlMbU55WldGMFpTaDBhR2x6TG14dll5NXlaV1JsWm1GMWJIUlViMFZPS0c5d2RITXBLUzVtYjNKdFlYUkVZWFJsVkdsdFpVWnliMjFUZEhKcGJtY29kR2hwY3l3Z1ptMTBLVnh1SUNBZ0lDQWdPaUJKVGxaQlRFbEVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVNCc2IyTmhiR2w2WldRZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdsdVp5QjBhR2x6SUdSaGRHVXVJRUZqWTJWd2RITWdkR2hsSUhOaGJXVWdiM0IwYVc5dWN5QmhjeUIwYUdVZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDQmpiMjV6ZEhKMVkzUnZjaUJoYm1RZ1lXNTVJSEJ5WlhObGRITWdaR1ZtYVc1bFpDQmllU0JNZFhodmJpd2djM1ZqYUNCaGN5QmdSR0YwWlZScGJXVXVSRUZVUlY5R1ZVeE1ZQ0J2Y2lCZ1JHRjBaVlJwYldVdVZFbE5SVjlUU1UxUVRFVmdMbHh1SUNBZ0tpQlVhR1VnWlhoaFkzUWdZbVZvWVhacGIzSWdiMllnZEdocGN5QnRaWFJvYjJRZ2FYTWdZbkp2ZDNObGNpMXpjR1ZqYVdacFl5d2dZblYwSUdsdUlHZGxibVZ5WVd3Z2FYUWdkMmxzYkNCeVpYUjFjbTRnWVc0Z1lYQndjbTl3Y21saGRHVWdjbVZ3Y21WelpXNTBZWFJwYjI1Y2JpQWdJQ29nYjJZZ2RHaGxJRVJoZEdWVWFXMWxJR2x1SUhSb1pTQmhjM05wWjI1bFpDQnNiMk5oYkdVdVhHNGdJQ0FxSUVSbFptRjFiSFJ6SUhSdklIUm9aU0J6ZVhOMFpXMG5jeUJzYjJOaGJHVWdhV1lnYm04Z2JHOWpZV3hsSUdoaGN5QmlaV1Z1SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012VjJWaUwwcGhkbUZUWTNKcGNIUXZVbVZtWlhKbGJtTmxMMGRzYjJKaGJGOVBZbXBsWTNSekwwUmhkR1ZVYVcxbFJtOXliV0YwWEc0Z0lDQXFJRUJ3WVhKaGJTQm1iM0p0WVhSUGNIUnpJSHRQWW1wbFkzUjlJQzBnU1c1MGJDNUVZWFJsVkdsdFpVWnZjbTFoZENCamIyNXpkSEoxWTNSdmNpQnZjSFJwYjI1eklHRnVaQ0JqYjI1bWFXZDFjbUYwYVc5dUlHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEhNZ0xTQnZjSFJ6SUhSdklHOTJaWEp5YVdSbElIUm9aU0JqYjI1bWFXZDFjbUYwYVc5dUlHOXdkR2x2Ym5NZ2IyNGdkR2hwY3lCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMHh2WTJGc1pWTjBjbWx1WnlncE95QXZMejArSURRdk1qQXZNakF4TjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNXpaWFJNYjJOaGJHVW9KMlZ1TFdkaUp5a3VkRzlNYjJOaGJHVlRkSEpwYm1jb0tUc2dMeTg5UGlBbk1qQXZNRFF2TWpBeE55ZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1ZEc5TWIyTmhiR1ZUZEhKcGJtY29leUJzYjJOaGJHVTZJQ2RsYmkxbllpY2dmU2s3SUM4dlBUNGdKekl3THpBMEx6SXdNVGNuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuUnZURzlqWVd4bFUzUnlhVzVuS0VSaGRHVlVhVzFsTGtSQlZFVmZSbFZNVENrN0lDOHZQVDRnSjBGd2NtbHNJREl3TENBeU1ERTNKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1MGIweHZZMkZzWlZOMGNtbHVaeWhFWVhSbFZHbHRaUzVVU1UxRlgxTkpUVkJNUlNrN0lDOHZQVDRnSnpFeE9qTXlJRUZOSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMHh2WTJGc1pWTjBjbWx1WnloRVlYUmxWR2x0WlM1RVFWUkZWRWxOUlY5VFNFOVNWQ2s3SUM4dlBUNGdKelF2TWpBdk1qQXhOeXdnTVRFNk16SWdRVTBuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuUnZURzlqWVd4bFUzUnlhVzVuS0hzZ2QyVmxhMlJoZVRvZ0oyeHZibWNuTENCdGIyNTBhRG9nSjJ4dmJtY25MQ0JrWVhrNklDY3lMV1JwWjJsMEp5QjlLVHNnTHk4OVBpQW5WR2gxY25Oa1lYa3NJRUZ3Y21sc0lESXdKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1MGIweHZZMkZzWlZOMGNtbHVaeWg3SUhkbFpXdGtZWGs2SUNkemFHOXlkQ2NzSUcxdmJuUm9PaUFuYzJodmNuUW5MQ0JrWVhrNklDY3lMV1JwWjJsMEp5d2dhRzkxY2pvZ0p6SXRaR2xuYVhRbkxDQnRhVzUxZEdVNklDY3lMV1JwWjJsMEp5QjlLVHNnTHk4OVBpQW5WR2gxTENCQmNISWdNakFzSURFeE9qSTNJRUZOSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMHh2WTJGc1pWTjBjbWx1WnloN0lHaHZkWEk2SUNjeUxXUnBaMmwwSnl3Z2JXbHVkWFJsT2lBbk1pMWthV2RwZENjc0lHaHZkWEpEZVdOc1pUb2dKMmd5TXljZ2ZTazdJQzh2UFQ0Z0p6RXhPak15SjF4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlYRzRnSUNBcUwxeHVJQ0IwYjB4dlkyRnNaVk4wY21sdVp5aG1iM0p0WVhSUGNIUnpJRDBnUm05eWJXRjBjeTVFUVZSRlgxTklUMUpVTENCdmNIUnpJRDBnZTMwcElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa1hHNGdJQ0FnSUNBL0lFWnZjbTFoZEhSbGNpNWpjbVZoZEdVb2RHaHBjeTVzYjJNdVkyeHZibVVvYjNCMGN5a3NJR1p2Y20xaGRFOXdkSE1wTG1admNtMWhkRVJoZEdWVWFXMWxLSFJvYVhNcFhHNGdJQ0FnSUNBNklFbE9Wa0ZNU1VRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmhiaUJoY25KaGVTQnZaaUJtYjNKdFlYUWdYQ0p3WVhKMGMxd2lMQ0J0WldGdWFXNW5JR2x1WkdsMmFXUjFZV3dnZEc5clpXNXpJR0ZzYjI1bklIZHBkR2dnYldWMFlXUmhkR0V1SUZSb2FYTWdhWE1nWVd4c2IzZHpJR05oYkd4bGNuTWdkRzhnY0c5emRDMXdjbTlqWlhOeklHbHVaR2wyYVdSMVlXd2djMlZqZEdsdmJuTWdiMllnZEdobElHWnZjbTFoZEhSbFpDQnZkWFJ3ZFhRdVhHNGdJQ0FxSUVSbFptRjFiSFJ6SUhSdklIUm9aU0J6ZVhOMFpXMG5jeUJzYjJOaGJHVWdhV1lnYm04Z2JHOWpZV3hsSUdoaGN5QmlaV1Z1SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBYzJWbElHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012VjJWaUwwcGhkbUZUWTNKcGNIUXZVbVZtWlhKbGJtTmxMMGRzYjJKaGJGOVBZbXBsWTNSekwwUmhkR1ZVYVcxbFJtOXliV0YwTDJadmNtMWhkRlJ2VUdGeWRITmNiaUFnSUNvZ1FIQmhjbUZ0SUc5d2RITWdlMDlpYW1WamRIMGdMU0JKYm5Sc0xrUmhkR1ZVYVcxbFJtOXliV0YwSUdOdmJuTjBjblZqZEc5eUlHOXdkR2x2Ym5Nc0lITmhiV1VnWVhNZ1lIUnZURzlqWVd4bFUzUnlhVzVuWUM1Y2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1Ym05M0tDa3VkRzlNYjJOaGJHVlFZWEowY3lncE95QXZMejArSUZ0Y2JpQWdJQ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2UFQ0Z0lDQjdJSFI1Y0dVNklDZGtZWGtuTENCMllXeDFaVG9nSnpJMUp5QjlMRnh1SUNBZ0tpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5ODlQaUFnSUhzZ2RIbHdaVG9nSjJ4cGRHVnlZV3duTENCMllXeDFaVG9nSnk4bklIMHNYRzRnSUNBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx6MCtJQ0FnZXlCMGVYQmxPaUFuYlc5dWRHZ25MQ0IyWVd4MVpUb2dKekExSnlCOUxGeHVJQ0FnS2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4OVBpQWdJSHNnZEhsd1pUb2dKMnhwZEdWeVlXd25MQ0IyWVd4MVpUb2dKeThuSUgwc1hHNGdJQ0FxSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THowK0lDQWdleUIwZVhCbE9pQW5lV1ZoY2ljc0lIWmhiSFZsT2lBbk1UazRNaWNnZlZ4dUlDQWdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeTg5UGlCZFhHNGdJQ0FxTDF4dUlDQjBiMHh2WTJGc1pWQmhjblJ6S0c5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdSY2JpQWdJQ0FnSUQ4Z1JtOXliV0YwZEdWeUxtTnlaV0YwWlNoMGFHbHpMbXh2WXk1amJHOXVaU2h2Y0hSektTd2diM0IwY3lrdVptOXliV0YwUkdGMFpWUnBiV1ZRWVhKMGN5aDBhR2x6S1Z4dUlDQWdJQ0FnT2lCYlhUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmIzQjBjeTV6ZFhCd2NtVnpjMDFwYkd4cGMyVmpiMjVrY3oxbVlXeHpaVjBnTFNCbGVHTnNkV1JsSUcxcGJHeHBjMlZqYjI1a2N5Qm1jbTl0SUhSb1pTQm1iM0p0WVhRZ2FXWWdkR2hsZVNkeVpTQXdYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YzNWd2NISmxjM05UWldOdmJtUnpQV1poYkhObFhTQXRJR1Y0WTJ4MVpHVWdjMlZqYjI1a2N5Qm1jbTl0SUhSb1pTQm1iM0p0WVhRZ2FXWWdkR2hsZVNkeVpTQXdYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YVc1amJIVmtaVTltWm5ObGREMTBjblZsWFNBdElHbHVZMngxWkdVZ2RHaGxJRzltWm5ObGRDd2djM1ZqYUNCaGN5QW5XaWNnYjNJZ0p5MHdORG93TUNkY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYjNCMGN5NWxlSFJsYm1SbFpGcHZibVU5ZEhKMVpWMGdMU0JoWkdRZ2RHaGxJSFJwYldVZ2VtOXVaU0JtYjNKdFlYUWdaWGgwWlc1emFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVtYjNKdFlYUTlKMlY0ZEdWdVpHVmtKMTBnTFNCamFHOXZjMlVnWW1WMGQyVmxiaUIwYUdVZ1ltRnphV01nWVc1a0lHVjRkR1Z1WkdWa0lHWnZjbTFoZEZ4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb01UazRNeXdnTlN3Z01qVXBMblJ2U1ZOUEtDa2dMeTg5UGlBbk1UazRNaTB3TlMweU5WUXdNRG93TURvd01DNHdNREJhSjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNTBiMGxUVHlncElDOHZQVDRnSnpJd01UY3RNRFF0TWpKVU1qQTZORGM2TURVdU16TTFMVEEwT2pBd0oxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzUwYjBsVFR5aDdJR2x1WTJ4MVpHVlBabVp6WlhRNklHWmhiSE5sSUgwcElDOHZQVDRnSnpJd01UY3RNRFF0TWpKVU1qQTZORGM2TURVdU16TTFKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1MGIwbFRUeWg3SUdadmNtMWhkRG9nSjJKaGMybGpKeUI5S1NBdkx6MCtJQ2N5TURFM01EUXlNbFF5TURRM01EVXVNek0xTFRBME1EQW5YRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZTVk5QS0h0Y2JpQWdJQ0JtYjNKdFlYUWdQU0JjSW1WNGRHVnVaR1ZrWENJc1hHNGdJQ0FnYzNWd2NISmxjM05UWldOdmJtUnpJRDBnWm1Gc2MyVXNYRzRnSUNBZ2MzVndjSEpsYzNOTmFXeHNhWE5sWTI5dVpITWdQU0JtWVd4elpTeGNiaUFnSUNCcGJtTnNkV1JsVDJabWMyVjBJRDBnZEhKMVpTeGNiaUFnSUNCbGVIUmxibVJsWkZwdmJtVWdQU0JtWVd4elpTeGNiaUFnZlNBOUlIdDlLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHVjRkQ0E5SUdadmNtMWhkQ0E5UFQwZ1hDSmxlSFJsYm1SbFpGd2lPMXh1WEc0Z0lDQWdiR1YwSUdNZ1BTQjBiMGxUVDBSaGRHVW9kR2hwY3l3Z1pYaDBLVHRjYmlBZ0lDQmpJQ3M5SUZ3aVZGd2lPMXh1SUNBZ0lHTWdLejBnZEc5SlUwOVVhVzFsS0hSb2FYTXNJR1Y0ZEN3Z2MzVndjSEpsYzNOVFpXTnZibVJ6TENCemRYQndjbVZ6YzAxcGJHeHBjMlZqYjI1a2N5d2dhVzVqYkhWa1pVOW1abk5sZEN3Z1pYaDBaVzVrWldSYWIyNWxLVHRjYmlBZ0lDQnlaWFIxY200Z1l6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4TFdOdmJYQnNhV0Z1ZENCemRISnBibWNnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QkVZWFJsVkdsdFpTZHpJR1JoZEdVZ1kyOXRjRzl1Wlc1MFhHNGdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzI5d2RITXVabTl5YldGMFBTZGxlSFJsYm1SbFpDZGRJQzBnWTJodmIzTmxJR0psZEhkbFpXNGdkR2hsSUdKaGMybGpJR0Z1WkNCbGVIUmxibVJsWkNCbWIzSnRZWFJjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0RFNU9ESXNJRFVzSURJMUtTNTBiMGxUVDBSaGRHVW9LU0F2THowK0lDY3hPVGd5TFRBMUxUSTFKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vTVRrNE1pd2dOU3dnTWpVcExuUnZTVk5QUkdGMFpTaDdJR1p2Y20xaGREb2dKMkpoYzJsakp5QjlLU0F2THowK0lDY3hPVGd5TURVeU5TZGNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ2RHOUpVMDlFWVhSbEtIc2dabTl5YldGMElEMGdYQ0psZUhSbGJtUmxaRndpSUgwZ1BTQjdmU2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVwYzFaaGJHbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkRzlKVTA5RVlYUmxLSFJvYVhNc0lHWnZjbTFoZENBOVBUMGdYQ0psZUhSbGJtUmxaRndpS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRnVJRWxUVHlBNE5qQXhMV052YlhCc2FXRnVkQ0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRVlYUmxWR2x0WlNkeklIZGxaV3NnWkdGMFpWeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9NVGs0TWl3Z05Td2dNalVwTG5SdlNWTlBWMlZsYTBSaGRHVW9LU0F2THowK0lDY3hPVGd5TFZjeU1TMHlKMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQjBiMGxUVDFkbFpXdEVZWFJsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYjFSbFkyaEdiM0p0WVhRb2RHaHBjeXdnWENKcmEydHJMU2RYSjFkWExXTmNJaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaGJpQkpVMDhnT0RZd01TMWpiMjF3YkdsaGJuUWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9hWE1nUkdGMFpWUnBiV1VuY3lCMGFXMWxJR052YlhCdmJtVnVkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk5jYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1emRYQndjbVZ6YzAxcGJHeHBjMlZqYjI1a2N6MW1ZV3h6WlYwZ0xTQmxlR05zZFdSbElHMXBiR3hwYzJWamIyNWtjeUJtY205dElIUm9aU0JtYjNKdFlYUWdhV1lnZEdobGVTZHlaU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWMzVndjSEpsYzNOVFpXTnZibVJ6UFdaaGJITmxYU0F0SUdWNFkyeDFaR1VnYzJWamIyNWtjeUJtY205dElIUm9aU0JtYjNKdFlYUWdhV1lnZEdobGVTZHlaU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWFXNWpiSFZrWlU5bVpuTmxkRDEwY25WbFhTQXRJR2x1WTJ4MVpHVWdkR2hsSUc5bVpuTmxkQ3dnYzNWamFDQmhjeUFuV2ljZ2IzSWdKeTB3TkRvd01DZGNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmIzQjBjeTVsZUhSbGJtUmxaRnB2Ym1VOWRISjFaVjBnTFNCaFpHUWdkR2hsSUhScGJXVWdlbTl1WlNCbWIzSnRZWFFnWlhoMFpXNXphVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMjl3ZEhNdWFXNWpiSFZrWlZCeVpXWnBlRDFtWVd4elpWMGdMU0JwYm1Oc2RXUmxJSFJvWlNCZ1ZHQWdjSEpsWm1sNFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGN5NW1iM0p0WVhROUoyVjRkR1Z1WkdWa0oxMGdMU0JqYUc5dmMyVWdZbVYwZDJWbGJpQjBhR1VnWW1GemFXTWdZVzVrSUdWNGRHVnVaR1ZrSUdadmNtMWhkRnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vS1M1elpYUW9leUJvYjNWeU9pQTNMQ0J0YVc1MWRHVTZJRE0wSUgwcExuUnZTVk5QVkdsdFpTZ3BJQzh2UFQ0Z0p6QTNPak0wT2pFNUxqTTJNVm9uWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMblYwWXlncExuTmxkQ2g3SUdodmRYSTZJRGNzSUcxcGJuVjBaVG9nTXpRc0lITmxZMjl1WkhNNklEQXNJRzFwYkd4cGMyVmpiMjVrY3pvZ01DQjlLUzUwYjBsVFQxUnBiV1VvZXlCemRYQndjbVZ6YzFObFkyOXVaSE02SUhSeWRXVWdmU2tnTHk4OVBpQW5NRGM2TXpSYUoxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1MWRHTW9LUzV6WlhRb2V5Qm9iM1Z5T2lBM0xDQnRhVzUxZEdVNklETTBJSDBwTG5SdlNWTlBWR2x0WlNoN0lHWnZjbTFoZERvZ0oySmhjMmxqSnlCOUtTQXZMejArSUNjd056TTBNVGt1TXpZeFdpZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWRYUmpLQ2t1YzJWMEtIc2dhRzkxY2pvZ055d2diV2x1ZFhSbE9pQXpOQ0I5S1M1MGIwbFRUMVJwYldVb2V5QnBibU5zZFdSbFVISmxabWw0T2lCMGNuVmxJSDBwSUM4dlBUNGdKMVF3Tnpvek5Eb3hPUzR6TmpGYUoxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCMGIwbFRUMVJwYldVb2UxeHVJQ0FnSUhOMWNIQnlaWE56VFdsc2JHbHpaV052Ym1SeklEMGdabUZzYzJVc1hHNGdJQ0FnYzNWd2NISmxjM05UWldOdmJtUnpJRDBnWm1Gc2MyVXNYRzRnSUNBZ2FXNWpiSFZrWlU5bVpuTmxkQ0E5SUhSeWRXVXNYRzRnSUNBZ2FXNWpiSFZrWlZCeVpXWnBlQ0E5SUdaaGJITmxMRnh1SUNBZ0lHVjRkR1Z1WkdWa1dtOXVaU0E5SUdaaGJITmxMRnh1SUNBZ0lHWnZjbTFoZENBOUlGd2laWGgwWlc1a1pXUmNJaXhjYmlBZ2ZTQTlJSHQ5S1NCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUd4bGRDQmpJRDBnYVc1amJIVmtaVkJ5WldacGVDQS9JRndpVkZ3aUlEb2dYQ0pjSWp0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdZeUFyWEc0Z0lDQWdJQ0IwYjBsVFQxUnBiV1VvWEc0Z0lDQWdJQ0FnSUhSb2FYTXNYRzRnSUNBZ0lDQWdJR1p2Y20xaGRDQTlQVDBnWENKbGVIUmxibVJsWkZ3aUxGeHVJQ0FnSUNBZ0lDQnpkWEJ3Y21WemMxTmxZMjl1WkhNc1hHNGdJQ0FnSUNBZ0lITjFjSEJ5WlhOelRXbHNiR2x6WldOdmJtUnpMRnh1SUNBZ0lDQWdJQ0JwYm1Oc2RXUmxUMlptYzJWMExGeHVJQ0FnSUNBZ0lDQmxlSFJsYm1SbFpGcHZibVZjYmlBZ0lDQWdJQ2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWVc0Z1VrWkRJREk0TWpJdFkyOXRjR0YwYVdKc1pTQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaVnh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNTFkR01vTWpBeE5Dd2dOeXdnTVRNcExuUnZVa1pETWpneU1pZ3BJQzh2UFQ0Z0oxTjFiaXdnTVRNZ1NuVnNJREl3TVRRZ01EQTZNREE2TURBZ0t6QXdNREFuWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURjc0lERXpLUzUwYjFKR1F6STRNaklvS1NBdkx6MCtJQ2RUZFc0c0lERXpJRXAxYkNBeU1ERTBJREF3T2pBd09qQXdJQzB3TkRBd0oxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5WEc0Z0lDQXFMMXh1SUNCMGIxSkdRekk0TWpJb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSdlZHVmphRVp2Y20xaGRDaDBhR2x6TENCY0lrVkZSU3dnWkdRZ1RFeE1JSGw1ZVhrZ1NFZzZiVzA2YzNNZ1dscGFYQ0lzSUdaaGJITmxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSR0YwWlZScGJXVWdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCSVZGUlFJR2hsWVdSbGNuTXVJRlJvWlNCdmRYUndkWFFnYVhNZ1lXeDNZWGx6SUdWNGNISmxjM05sWkNCcGJpQkhUVlF1WEc0Z0lDQXFJRk53WldOcFptbGpZV3hzZVN3Z2RHaGxJSE4wY21sdVp5QmpiMjVtYjNKdGN5QjBieUJTUmtNZ01URXlNeTVjYmlBZ0lDb2dRSE5sWlNCb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdlVISnZkRzlqYjJ4ekwzSm1ZekkyTVRZdmNtWmpNall4TmkxelpXTXpMbWgwYld3amMyVmpNeTR6TGpGY2JpQWdJQ29nUUdWNFlXMXdiR1VnUkdGMFpWUnBiV1V1ZFhSaktESXdNVFFzSURjc0lERXpLUzUwYjBoVVZGQW9LU0F2THowK0lDZFRkVzRzSURFeklFcDFiQ0F5TURFMElEQXdPakF3T2pBd0lFZE5WQ2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0RJd01UUXNJRGNzSURFekxDQXhPU2t1ZEc5SVZGUlFLQ2tnTHk4OVBpQW5VM1Z1TENBeE15QktkV3dnTWpBeE5DQXhPVG93TURvd01DQkhUVlFuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2U0ZSVVVDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHOVVaV05vUm05eWJXRjBLSFJvYVhNdWRHOVZWRU1vS1N3Z1hDSkZSVVVzSUdSa0lFeE1UQ0I1ZVhsNUlFaElPbTF0T25OeklDZEhUVlFuWENJcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRVlYUmxWR2x0WlNCaGNIQnliM0J5YVdGMFpTQm1iM0lnZFhObElHbHVJRk5SVENCRVlYUmxYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExuVjBZeWd5TURFMExDQTNMQ0F4TXlrdWRHOVRVVXhFWVhSbEtDa2dMeTg5UGlBbk1qQXhOQzB3TnkweE15ZGNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlZ4dUlDQWdLaTljYmlBZ2RHOVRVVXhFWVhSbEtDa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSdlNWTlBSR0YwWlNoMGFHbHpMQ0IwY25WbEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0VnYzNSeWFXNW5JSEpsY0hKbGMyVnVkR0YwYVc5dUlHOW1JSFJvYVhNZ1JHRjBaVlJwYldVZ1lYQndjbTl3Y21saGRHVWdabTl5SUhWelpTQnBiaUJUVVV3Z1ZHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjeUF0SUc5d2RHbHZibk5jYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1cGJtTnNkV1JsV205dVpUMW1ZV3h6WlYwZ0xTQnBibU5zZFdSbElIUm9aU0I2YjI1bExDQnpkV05vSUdGeklDZEJiV1Z5YVdOaEwwNWxkMTlaYjNKckp5NGdUM1psY25KcFpHVnpJR2x1WTJ4MVpHVlBabVp6WlhRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RITXVhVzVqYkhWa1pVOW1abk5sZEQxMGNuVmxYU0F0SUdsdVkyeDFaR1VnZEdobElHOW1abk5sZEN3Z2MzVmphQ0JoY3lBbldpY2diM0lnSnkwd05Eb3dNQ2RjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1cGJtTnNkV1JsVDJabWMyVjBVM0JoWTJVOWRISjFaVjBnTFNCcGJtTnNkV1JsSUhSb1pTQnpjR0ZqWlNCaVpYUjNaV1Z1SUhSb1pTQjBhVzFsSUdGdVpDQjBhR1VnYjJabWMyVjBMQ0J6ZFdOb0lHRnpJQ2N3TlRveE5Ub3hOaTR6TkRVZ0xUQTBPakF3SjF4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzUxZEdNb0tTNTBiMU5SVENncElDOHZQVDRnSnpBMU9qRTFPakUyTGpNME5TZGNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1ZEc5VFVVd29LU0F2THowK0lDY3dOVG94TlRveE5pNHpORFVnTFRBME9qQXdKMXh1SUNBZ0tpQkFaWGhoYlhCc1pTQkVZWFJsVkdsdFpTNXViM2NvS1M1MGIxTlJUQ2g3SUdsdVkyeDFaR1ZQWm1aelpYUTZJR1poYkhObElIMHBJQzh2UFQ0Z0p6QTFPakUxT2pFMkxqTTBOU2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWRHOVRVVXdvZXlCcGJtTnNkV1JsV205dVpUb2dabUZzYzJVZ2ZTa2dMeTg5UGlBbk1EVTZNVFU2TVRZdU16UTFJRUZ0WlhKcFkyRXZUbVYzWDFsdmNtc25YRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMxY2JpQWdJQ292WEc0Z0lIUnZVMUZNVkdsdFpTaDdJR2x1WTJ4MVpHVlBabVp6WlhRZ1BTQjBjblZsTENCcGJtTnNkV1JsV205dVpTQTlJR1poYkhObExDQnBibU5zZFdSbFQyWm1jMlYwVTNCaFkyVWdQU0IwY25WbElIMGdQU0I3ZlNrZ2UxeHVJQ0FnSUd4bGRDQm1iWFFnUFNCY0lraElPbTF0T25OekxsTlRVMXdpTzF4dVhHNGdJQ0FnYVdZZ0tHbHVZMngxWkdWYWIyNWxJSHg4SUdsdVkyeDFaR1ZQWm1aelpYUXBJSHRjYmlBZ0lDQWdJR2xtSUNocGJtTnNkV1JsVDJabWMyVjBVM0JoWTJVcElIdGNiaUFnSUNBZ0lDQWdabTEwSUNzOUlGd2lJRndpTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHbHVZMngxWkdWYWIyNWxLU0I3WEc0Z0lDQWdJQ0FnSUdadGRDQXJQU0JjSW5wY0lqdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9hVzVqYkhWa1pVOW1abk5sZENrZ2UxeHVJQ0FnSUNBZ0lDQm1iWFFnS3owZ1hDSmFXbHdpTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjBiMVJsWTJoR2IzSnRZWFFvZEdocGN5d2dabTEwTENCMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSR0YwWlZScGJXVWdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCVFVVd2dSR0YwWlZScGJXVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5d2RITWdMU0J2Y0hScGIyNXpYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YVc1amJIVmtaVnB2Ym1VOVptRnNjMlZkSUMwZ2FXNWpiSFZrWlNCMGFHVWdlbTl1WlN3Z2MzVmphQ0JoY3lBblFXMWxjbWxqWVM5T1pYZGZXVzl5YXljdUlFOTJaWEp5YVdSbGN5QnBibU5zZFdSbFQyWm1jMlYwTGx4dUlDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnR2Y0hSekxtbHVZMngxWkdWUFptWnpaWFE5ZEhKMVpWMGdMU0JwYm1Oc2RXUmxJSFJvWlNCdlptWnpaWFFzSUhOMVkyZ2dZWE1nSjFvbklHOXlJQ2N0TURRNk1EQW5YRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkSE11YVc1amJIVmtaVTltWm5ObGRGTndZV05sUFhSeWRXVmRJQzBnYVc1amJIVmtaU0IwYUdVZ2MzQmhZMlVnWW1WMGQyVmxiaUIwYUdVZ2RHbHRaU0JoYm1RZ2RHaGxJRzltWm5ObGRDd2djM1ZqYUNCaGN5QW5NRFU2TVRVNk1UWXVNelExSUMwd05Eb3dNQ2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVkWFJqS0RJd01UUXNJRGNzSURFektTNTBiMU5SVENncElDOHZQVDRnSnpJd01UUXRNRGN0TVRNZ01EQTZNREE2TURBdU1EQXdJRm9uWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbXh2WTJGc0tESXdNVFFzSURjc0lERXpLUzUwYjFOUlRDZ3BJQzh2UFQ0Z0p6SXdNVFF0TURjdE1UTWdNREE2TURBNk1EQXVNREF3SUMwd05Eb3dNQ2RjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXViRzlqWVd3b01qQXhOQ3dnTnl3Z01UTXBMblJ2VTFGTUtIc2dhVzVqYkhWa1pVOW1abk5sZERvZ1ptRnNjMlVnZlNrZ0x5ODlQaUFuTWpBeE5DMHdOeTB4TXlBd01Eb3dNRG93TUM0d01EQW5YRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExteHZZMkZzS0RJd01UUXNJRGNzSURFektTNTBiMU5SVENoN0lHbHVZMngxWkdWYWIyNWxPaUIwY25WbElIMHBJQzh2UFQ0Z0p6SXdNVFF0TURjdE1UTWdNREE2TURBNk1EQXVNREF3SUVGdFpYSnBZMkV2VG1WM1gxbHZjbXNuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2VTFGTUtHOXdkSE1nUFNCN2ZTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXBjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1lDUjdkR2hwY3k1MGIxTlJURVJoZEdVb0tYMGdKSHQwYUdsekxuUnZVMUZNVkdsdFpTaHZjSFJ6S1gxZ08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZU0J6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdkR2hwY3lCRVlYUmxWR2x0WlNCaGNIQnliM0J5YVdGMFpTQm1iM0lnWkdWaWRXZG5hVzVuWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMWNiaUFnSUNvdlhHNGdJSFJ2VTNSeWFXNW5LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMblJ2U1ZOUEtDa2dPaUJKVGxaQlRFbEVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHVndiMk5vSUcxcGJHeHBjMlZqYjI1a2N5QnZaaUIwYUdseklFUmhkR1ZVYVcxbExpQkJiR2xoY3lCdlppQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOU5hV3hzYVhOOVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTI1MWJXSmxjbjFjYmlBZ0lDb3ZYRzRnSUhaaGJIVmxUMllvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRHOU5hV3hzYVhNb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJSFJvWlNCbGNHOWphQ0J0YVd4c2FYTmxZMjl1WkhNZ2IyWWdkR2hwY3lCRVlYUmxWR2x0WlM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmVnh1SUNBZ0tpOWNiaUFnZEc5TmFXeHNhWE1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lIUm9hWE11ZEhNZ09pQk9ZVTQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCMGFHVWdaWEJ2WTJnZ2MyVmpiMjVrY3lCdlppQjBhR2x6SUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0IwYjFObFkyOXVaSE1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNBL0lIUm9hWE11ZEhNZ0x5QXhNREF3SURvZ1RtRk9PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHVndiMk5vSUhObFkyOXVaSE1nS0dGeklHRWdkMmh2YkdVZ2JuVnRZbVZ5S1NCdlppQjBhR2x6SUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlYRzRnSUNBcUwxeHVJQ0IwYjFWdWFYaEpiblJsWjJWeUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6Vm1Gc2FXUWdQeUJOWVhSb0xtWnNiMjl5S0hSb2FYTXVkSE1nTHlBeE1EQXdLU0E2SUU1aFRqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0Z1SUVsVFR5QTROakF4SUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhSb2FYTWdSR0YwWlZScGJXVWdZWEJ3Y205d2NtbGhkR1VnWm05eUlIVnpaU0JwYmlCS1UwOU9MbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOVhHNGdJQ0FxTDF4dUlDQjBiMHBUVDA0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkRzlKVTA4b0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0VnUWxOUFRpQnpaWEpwWVd4cGVtRmliR1VnWlhGMWFYWmhiR1Z1ZENCMGJ5QjBhR2x6SUVSaGRHVlVhVzFsTGx4dUlDQWdLaUJBY21WMGRYSnVJSHRFWVhSbGZWeHVJQ0FnS2k5Y2JpQWdkRzlDVTA5T0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblJ2U2xORVlYUmxLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaElFcGhkbUZUWTNKcGNIUWdiMkpxWldOMElIZHBkR2dnZEdocGN5QkVZWFJsVkdsdFpTZHpJSGxsWVhJc0lHMXZiblJvTENCa1lYa3NJR0Z1WkNCemJ5QnZiaTVjYmlBZ0lDb2dRSEJoY21GdElHOXdkSE1nTFNCdmNIUnBiMjV6SUdadmNpQm5aVzVsY21GMGFXNW5JSFJvWlNCdlltcGxZM1JjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwY3k1cGJtTnNkV1JsUTI5dVptbG5QV1poYkhObFhTQXRJR2x1WTJ4MVpHVWdZMjl1Wm1sbmRYSmhkR2x2YmlCaGRIUnlhV0oxZEdWeklHbHVJSFJvWlNCdmRYUndkWFJjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWRHOVBZbXBsWTNRb0tTQXZMejArSUhzZ2VXVmhjam9nTWpBeE55d2diVzl1ZEdnNklEUXNJR1JoZVRvZ01qSXNJR2h2ZFhJNklESXdMQ0J0YVc1MWRHVTZJRFE1TENCelpXTnZibVE2SURReUxDQnRhV3hzYVhObFkyOXVaRG9nTWpZNElIMWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2RHOVBZbXBsWTNRb2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtbHpWbUZzYVdRcElISmxkSFZ5YmlCN2ZUdGNibHh1SUNBZ0lHTnZibk4wSUdKaGMyVWdQU0I3SUM0dUxuUm9hWE11WXlCOU8xeHVYRzRnSUNBZ2FXWWdLRzl3ZEhNdWFXNWpiSFZrWlVOdmJtWnBaeWtnZTF4dUlDQWdJQ0FnWW1GelpTNXZkWFJ3ZFhSRFlXeGxibVJoY2lBOUlIUm9hWE11YjNWMGNIVjBRMkZzWlc1a1lYSTdYRzRnSUNBZ0lDQmlZWE5sTG01MWJXSmxjbWx1WjFONWMzUmxiU0E5SUhSb2FYTXViRzlqTG01MWJXSmxjbWx1WjFONWMzUmxiVHRjYmlBZ0lDQWdJR0poYzJVdWJHOWpZV3hsSUQwZ2RHaHBjeTVzYjJNdWJHOWpZV3hsTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1ltRnpaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ1NtRjJZVk5qY21sd2RDQkVZWFJsSUdWeGRXbDJZV3hsYm5RZ2RHOGdkR2hwY3lCRVlYUmxWR2x0WlM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UkdGMFpYMWNiaUFnSUNvdlhHNGdJSFJ2U2xORVlYUmxLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnUkdGMFpTaDBhR2x6TG1selZtRnNhV1FnUHlCMGFHbHpMblJ6SURvZ1RtRk9LVHRjYmlBZ2ZWeHVYRzRnSUM4dklFTlBUVkJCVWtWY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSFJvWlNCa2FXWm1aWEpsYm1ObElHSmxkSGRsWlc0Z2RIZHZJRVJoZEdWVWFXMWxjeUJoY3lCaElFUjFjbUYwYVc5dUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBSaGRHVlVhVzFsZlNCdmRHaGxja1JoZEdWVWFXMWxJQzBnZEdobElFUmhkR1ZVYVcxbElIUnZJR052YlhCaGNtVWdkR2hwY3lCdmJtVWdkRzljYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOGMzUnlhVzVuVzExOUlGdDFibWwwUFZzbmJXbHNiR2x6WldOdmJtUnpKMTFkSUMwZ2RHaGxJSFZ1YVhRZ2IzSWdZWEp5WVhrZ2IyWWdkVzVwZEhNZ0tITjFZMmdnWVhNZ0oyaHZkWEp6SnlCdmNpQW5aR0Y1Y3ljcElIUnZJR2x1WTJ4MVpHVWdhVzRnZEdobElHUjFjbUYwYVc5dUxseHVJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJRzl3ZEdsdmJuTWdkR2hoZENCaFptWmxZM1FnZEdobElHTnlaV0YwYVc5dUlHOW1JSFJvWlNCRWRYSmhkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEhNdVkyOXVkbVZ5YzJsdmJrRmpZM1Z5WVdONVBTZGpZWE4xWVd3blhTQXRJSFJvWlNCamIyNTJaWEp6YVc5dUlITjVjM1JsYlNCMGJ5QjFjMlZjYmlBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNvZ2RtRnlJR2t4SUQwZ1JHRjBaVlJwYldVdVpuSnZiVWxUVHlnbk1UazRNaTB3TlMweU5WUXdPVG8wTlNjcExGeHVJQ0FnS2lBZ0lDQWdhVElnUFNCRVlYUmxWR2x0WlM1bWNtOXRTVk5QS0NjeE9UZ3pMVEV3TFRFMFZERXdPak13SnlrN1hHNGdJQ0FxSUdreUxtUnBabVlvYVRFcExuUnZUMkpxWldOMEtDa2dMeTg5UGlCN0lHMXBiR3hwYzJWamIyNWtjem9nTkRNNE1EYzFNREF3TURBZ2ZWeHVJQ0FnS2lCcE1pNWthV1ptS0dreExDQW5hRzkxY25NbktTNTBiMDlpYW1WamRDZ3BJQzh2UFQ0Z2V5Qm9iM1Z5Y3pvZ01USXhOamd1TnpVZ2ZWeHVJQ0FnS2lCcE1pNWthV1ptS0dreExDQmJKMjF2Ym5Sb2N5Y3NJQ2RrWVhsekoxMHBMblJ2VDJKcVpXTjBLQ2tnTHk4OVBpQjdJRzF2Ym5Sb2N6b2dNVFlzSUdSaGVYTTZJREU1TGpBek1USTFJSDFjYmlBZ0lDb2dhVEl1WkdsbVppaHBNU3dnV3lkdGIyNTBhSE1uTENBblpHRjVjeWNzSUNkb2IzVnljeWRkS1M1MGIwOWlhbVZqZENncElDOHZQVDRnZXlCdGIyNTBhSE02SURFMkxDQmtZWGx6T2lBeE9Td2dhRzkxY25NNklEQXVOelVnZlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFZFhKaGRHbHZibjFjYmlBZ0lDb3ZYRzRnSUdScFptWW9iM1JvWlhKRVlYUmxWR2x0WlN3Z2RXNXBkQ0E5SUZ3aWJXbHNiR2x6WldOdmJtUnpYQ0lzSUc5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrSUh4OElDRnZkR2hsY2tSaGRHVlVhVzFsTG1selZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJFZFhKaGRHbHZiaTVwYm5aaGJHbGtLRndpWTNKbFlYUmxaQ0JpZVNCa2FXWm1hVzVuSUdGdUlHbHVkbUZzYVdRZ1JHRjBaVlJwYldWY0lpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWkhWeVQzQjBjeUE5SUhzZ2JHOWpZV3hsT2lCMGFHbHpMbXh2WTJGc1pTd2diblZ0WW1WeWFXNW5VM2x6ZEdWdE9pQjBhR2x6TG01MWJXSmxjbWx1WjFONWMzUmxiU3dnTGk0dWIzQjBjeUI5TzF4dVhHNGdJQ0FnWTI5dWMzUWdkVzVwZEhNZ1BTQnRZWGxpWlVGeWNtRjVLSFZ1YVhRcExtMWhjQ2hFZFhKaGRHbHZiaTV1YjNKdFlXeHBlbVZWYm1sMEtTeGNiaUFnSUNBZ0lHOTBhR1Z5U1hOTVlYUmxjaUE5SUc5MGFHVnlSR0YwWlZScGJXVXVkbUZzZFdWUFppZ3BJRDRnZEdocGN5NTJZV3gxWlU5bUtDa3NYRzRnSUNBZ0lDQmxZWEpzYVdWeUlEMGdiM1JvWlhKSmMweGhkR1Z5SUQ4Z2RHaHBjeUE2SUc5MGFHVnlSR0YwWlZScGJXVXNYRzRnSUNBZ0lDQnNZWFJsY2lBOUlHOTBhR1Z5U1hOTVlYUmxjaUEvSUc5MGFHVnlSR0YwWlZScGJXVWdPaUIwYUdsekxGeHVJQ0FnSUNBZ1pHbG1abVZrSUQwZ1pHbG1aaWhsWVhKc2FXVnlMQ0JzWVhSbGNpd2dkVzVwZEhNc0lHUjFjazl3ZEhNcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUc5MGFHVnlTWE5NWVhSbGNpQS9JR1JwWm1abFpDNXVaV2RoZEdVb0tTQTZJR1JwWm1abFpEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUdScFptWmxjbVZ1WTJVZ1ltVjBkMlZsYmlCMGFHbHpJRVJoZEdWVWFXMWxJR0Z1WkNCeWFXZG9kQ0J1YjNjdVhHNGdJQ0FxSUZObFpTQjdRR3hwYm1zZ1JHRjBaVlJwYldValpHbG1abjFjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOGMzUnlhVzVuVzExOUlGdDFibWwwUFZzbmJXbHNiR2x6WldOdmJtUnpKMTFkSUMwZ2RHaGxJSFZ1YVhRZ2IzSWdkVzVwZEhNZ2RXNXBkSE1nS0hOMVkyZ2dZWE1nSjJodmRYSnpKeUJ2Y2lBblpHRjVjeWNwSUhSdklHbHVZMngxWkdVZ2FXNGdkR2hsSUdSMWNtRjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6SUMwZ2IzQjBhVzl1Y3lCMGFHRjBJR0ZtWm1WamRDQjBhR1VnWTNKbFlYUnBiMjRnYjJZZ2RHaGxJRVIxY21GMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBjeTVqYjI1MlpYSnphVzl1UVdOamRYSmhZM2s5SjJOaGMzVmhiQ2RkSUMwZ2RHaGxJR052Ym5abGNuTnBiMjRnYzNsemRHVnRJSFJ2SUhWelpWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RWRYSmhkR2x2Ym4xY2JpQWdJQ292WEc0Z0lHUnBabVpPYjNjb2RXNXBkQ0E5SUZ3aWJXbHNiR2x6WldOdmJtUnpYQ0lzSUc5d2RITWdQU0I3ZlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtUnBabVlvUkdGMFpWUnBiV1V1Ym05M0tDa3NJSFZ1YVhRc0lHOXdkSE1wTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCaGJpQkpiblJsY25aaGJDQnpjR0Z1Ym1sdVp5QmlaWFIzWldWdUlIUm9hWE1nUkdGMFpWUnBiV1VnWVc1a0lHRnViM1JvWlhJZ1JHRjBaVlJwYldWY2JpQWdJQ29nUUhCaGNtRnRJSHRFWVhSbFZHbHRaWDBnYjNSb1pYSkVZWFJsVkdsdFpTQXRJSFJvWlNCdmRHaGxjaUJsYm1RZ2NHOXBiblFnYjJZZ2RHaGxJRWx1ZEdWeWRtRnNYRzRnSUNBcUlFQnlaWFIxY200Z2UwbHVkR1Z5ZG1Gc2ZWeHVJQ0FnS2k5Y2JpQWdkVzUwYVd3b2IzUm9aWEpFWVhSbFZHbHRaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FnUHlCSmJuUmxjblpoYkM1bWNtOXRSR0YwWlZScGJXVnpLSFJvYVhNc0lHOTBhR1Z5UkdGMFpWUnBiV1VwSURvZ2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZDJobGRHaGxjaUIwYUdseklFUmhkR1ZVYVcxbElHbHpJR2x1SUhSb1pTQnpZVzFsSUhWdWFYUWdiMllnZEdsdFpTQmhjeUJoYm05MGFHVnlJRVJoZEdWVWFXMWxMbHh1SUNBZ0tpQklhV2RvWlhJdGIzSmtaWElnZFc1cGRITWdiWFZ6ZENCaGJITnZJR0psSUdsa1pXNTBhV05oYkNCbWIzSWdkR2hwY3lCbWRXNWpkR2x2YmlCMGJ5QnlaWFIxY200Z1lIUnlkV1ZnTGx4dUlDQWdLaUJPYjNSbElIUm9ZWFFnZEdsdFpTQjZiMjVsY3lCaGNtVWdLaXBwWjI1dmNtVmtLaW9nYVc0Z2RHaHBjeUJqYjIxd1lYSnBjMjl1TENCM2FHbGphQ0JqYjIxd1lYSmxjeUIwYUdVZ0tpcHNiMk5oYkNvcUlHTmhiR1Z1WkdGeUlIUnBiV1V1SUZWelpTQjdRR3hwYm1zZ1JHRjBaVlJwYldVamMyVjBXbTl1WlgwZ2RHOGdZMjl1ZG1WeWRDQnZibVVnYjJZZ2RHaGxJR1JoZEdWeklHbG1JRzVsWldSbFpDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RVlYUmxWR2x0WlgwZ2IzUm9aWEpFWVhSbFZHbHRaU0F0SUhSb1pTQnZkR2hsY2lCRVlYUmxWR2x0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkVzVwZENBdElIUm9aU0IxYm1sMElHOW1JSFJwYldVZ2RHOGdZMmhsWTJzZ2MyRnRaVzVsYzNNZ2IyNWNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1YUdGelUyRnRaU2h2ZEdobGNrUlVMQ0FuWkdGNUp5azdJQzh2Zmo0Z2RISjFaU0JwWmlCdmRHaGxja1JVSUdseklHbHVJSFJvWlNCellXMWxJR04xY25KbGJuUWdZMkZzWlc1a1lYSWdaR0Y1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0JvWVhOVFlXMWxLRzkwYUdWeVJHRjBaVlJwYldVc0lIVnVhWFFwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOV1lXeHBaQ2tnY21WMGRYSnVJR1poYkhObE8xeHVYRzRnSUNBZ1kyOXVjM1FnYVc1d2RYUk5jeUE5SUc5MGFHVnlSR0YwWlZScGJXVXVkbUZzZFdWUFppZ3BPMXh1SUNBZ0lHTnZibk4wSUdGa2FuVnpkR1ZrVkc5YWIyNWxJRDBnZEdocGN5NXpaWFJhYjI1bEtHOTBhR1Z5UkdGMFpWUnBiV1V1ZW05dVpTd2dleUJyWldWd1RHOWpZV3hVYVcxbE9pQjBjblZsSUgwcE8xeHVJQ0FnSUhKbGRIVnliaUJoWkdwMWMzUmxaRlJ2V205dVpTNXpkR0Z5ZEU5bUtIVnVhWFFwSUR3OUlHbHVjSFYwVFhNZ0ppWWdhVzV3ZFhSTmN5QThQU0JoWkdwMWMzUmxaRlJ2V205dVpTNWxibVJQWmloMWJtbDBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRmNYVmhiR2wwZVNCamFHVmphMXh1SUNBZ0tpQlVkMjhnUkdGMFpWUnBiV1Z6SUdGeVpTQmxjWFZoYkNCcFptWWdkR2hsZVNCeVpYQnlaWE5sYm5RZ2RHaGxJSE5oYldVZ2JXbHNiR2x6WldOdmJtUXNJR2hoZG1VZ2RHaGxJSE5oYldVZ2VtOXVaU0JoYm1RZ2JHOWpZWFJwYjI0c0lHRnVaQ0JoY21VZ1ltOTBhQ0IyWVd4cFpDNWNiaUFnSUNvZ1ZHOGdZMjl0Y0dGeVpTQnFkWE4wSUhSb1pTQnRhV3hzYVhObFkyOXVaQ0IyWVd4MVpYTXNJSFZ6WlNCZ0syUjBNU0E5UFQwZ0syUjBNbUF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjlJRzkwYUdWeUlDMGdkR2hsSUc5MGFHVnlJRVJoZEdWVWFXMWxYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQmxjWFZoYkhNb2IzUm9aWElwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdkR2hwY3k1cGMxWmhiR2xrSUNZbVhHNGdJQ0FnSUNCdmRHaGxjaTVwYzFaaGJHbGtJQ1ltWEc0Z0lDQWdJQ0IwYUdsekxuWmhiSFZsVDJZb0tTQTlQVDBnYjNSb1pYSXVkbUZzZFdWUFppZ3BJQ1ltWEc0Z0lDQWdJQ0IwYUdsekxucHZibVV1WlhGMVlXeHpLRzkwYUdWeUxucHZibVVwSUNZbVhHNGdJQ0FnSUNCMGFHbHpMbXh2WXk1bGNYVmhiSE1vYjNSb1pYSXViRzlqS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaElITjBjbWx1WnlCeVpYQnlaWE5sYm5SaGRHbHZiaUJ2WmlCaElIUm9hWE1nZEdsdFpTQnlaV3hoZEdsMlpTQjBieUJ1YjNjc0lITjFZMmdnWVhNZ1hDSnBiaUIwZDI4Z1pHRjVjMXdpTGlCRFlXNGdiMjVzZVNCcGJuUmxjbTVoZEdsdmJtRnNhWHBsSUdsbUlIbHZkWEpjYmlBZ0lDb2djR3hoZEdadmNtMGdjM1Z3Y0c5eWRITWdTVzUwYkM1U1pXeGhkR2wyWlZScGJXVkdiM0p0WVhRdUlGSnZkVzVrY3lCa2IzZHVJR0o1SUdSbFptRjFiSFF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJwYjI1eklDMGdiM0IwYVc5dWN5QjBhR0YwSUdGbVptVmpkQ0IwYUdVZ2IzVjBjSFYwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjlJRnR2Y0hScGIyNXpMbUpoYzJVOVJHRjBaVlJwYldVdWJtOTNLQ2xkSUMwZ2RHaGxJRVJoZEdWVWFXMWxJSFJ2SUhWelpTQmhjeUIwYUdVZ1ltRnphWE1nZEc4Z2QyaHBZMmdnZEdocGN5QjBhVzFsSUdseklHTnZiWEJoY21Wa0xpQkVaV1poZFd4MGN5QjBieUJ1YjNjdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYjNCMGFXOXVjeTV6ZEhsc1pUMWNJbXh2Ym1kY0lsMGdMU0IwYUdVZ2MzUjViR1VnYjJZZ2RXNXBkSE1zSUcxMWMzUWdZbVVnWENKc2IyNW5YQ0lzSUZ3aWMyaHZjblJjSWl3Z2IzSWdYQ0p1WVhKeWIzZGNJbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjN4emRISnBibWRiWFgwZ2IzQjBhVzl1Y3k1MWJtbDBJQzBnZFhObElHRWdjM0JsWTJsbWFXTWdkVzVwZENCdmNpQmhjbkpoZVNCdlppQjFibWwwY3pzZ2FXWWdiMjFwZEhSbFpDd2diM0lnWVc0Z1lYSnlZWGtzSUhSb1pTQnRaWFJvYjJRZ2QybHNiQ0J3YVdOcklIUm9aU0JpWlhOMElIVnVhWFF1SUZWelpTQmhiaUJoY25KaGVTQnZjaUJ2Ym1VZ2IyWWdYQ0o1WldGeWMxd2lMQ0JjSW5GMVlYSjBaWEp6WENJc0lGd2liVzl1ZEdoelhDSXNJRndpZDJWbGEzTmNJaXdnWENKa1lYbHpYQ0lzSUZ3aWFHOTFjbk5jSWl3Z1hDSnRhVzUxZEdWelhDSXNJRzl5SUZ3aWMyVmpiMjVrYzF3aVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RHbHZibk11Y205MWJtUTlkSEoxWlYwZ0xTQjNhR1YwYUdWeUlIUnZJSEp2ZFc1a0lIUm9aU0J1ZFcxaVpYSnpJR2x1SUhSb1pTQnZkWFJ3ZFhRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYjNCMGFXOXVjeTV3WVdSa2FXNW5QVEJkSUMwZ2NHRmtaR2x1WnlCcGJpQnRhV3hzYVhObFkyOXVaSE11SUZSb2FYTWdZV3hzYjNkeklIbHZkU0IwYnlCeWIzVnVaQ0IxY0NCMGFHVWdjbVZ6ZFd4MElHbG1JR2wwSUdacGRITWdhVzV6YVdSbElIUm9aU0IwYUhKbGMyaHZiR1F1SUVSdmJpZDBJSFZ6WlNCcGJpQmpiMjFpYVc1aGRHbHZiaUIzYVhSb0lIdHliM1Z1WkRvZ1ptRnNjMlY5SUdKbFkyRjFjMlVnZEdobElHUmxZMmx0WVd3Z2IzVjBjSFYwSUhkcGJHd2dhVzVqYkhWa1pTQjBhR1VnY0dGa1pHbHVaeTVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkR2x2Ym5NdWJHOWpZV3hsSUMwZ2IzWmxjbkpwWkdVZ2RHaGxJR3h2WTJGc1pTQnZaaUIwYUdseklFUmhkR1ZVYVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y0hScGIyNXpMbTUxYldKbGNtbHVaMU41YzNSbGJTQXRJRzkyWlhKeWFXUmxJSFJvWlNCdWRXMWlaWEpwYm1kVGVYTjBaVzBnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaUzRnVkdobElFbHVkR3dnYzNsemRHVnRJRzFoZVNCamFHOXZjMlVnYm05MElIUnZJR2h2Ym05eUlIUm9hWE5jYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWNHeDFjeWg3SUdSaGVYTTZJREVnZlNrdWRHOVNaV3hoZEdsMlpTZ3BJQzh2UFQ0Z1hDSnBiaUF4SUdSaGVWd2lYRzRnSUNBcUlFQmxlR0Z0Y0d4bElFUmhkR1ZVYVcxbExtNXZkeWdwTG5ObGRFeHZZMkZzWlNoY0ltVnpYQ0lwTG5SdlVtVnNZWFJwZG1Vb2V5QmtZWGx6T2lBeElIMHBJQzh2UFQ0Z1hDSmtaVzUwY204Z1pHVWdNU0JrWEhVd01FVkVZVndpWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExuQnNkWE1vZXlCa1lYbHpPaUF4SUgwcExuUnZVbVZzWVhScGRtVW9leUJzYjJOaGJHVTZJRndpWm5KY0lpQjlLU0F2THowK0lGd2laR0Z1Y3lBeU15Qm9aWFZ5WlhOY0lseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV0YVc1MWN5aDdJR1JoZVhNNklESWdmU2t1ZEc5U1pXeGhkR2wyWlNncElDOHZQVDRnWENJeUlHUmhlWE1nWVdkdlhDSmNiaUFnSUNvZ1FHVjRZVzF3YkdVZ1JHRjBaVlJwYldVdWJtOTNLQ2t1YldsdWRYTW9leUJrWVhsek9pQXlJSDBwTG5SdlVtVnNZWFJwZG1Vb2V5QjFibWwwT2lCY0ltaHZkWEp6WENJZ2ZTa2dMeTg5UGlCY0lqUTRJR2h2ZFhKeklHRm5iMXdpWEc0Z0lDQXFJRUJsZUdGdGNHeGxJRVJoZEdWVWFXMWxMbTV2ZHlncExtMXBiblZ6S0hzZ2FHOTFjbk02SURNMklIMHBMblJ2VW1Wc1lYUnBkbVVvZXlCeWIzVnVaRG9nWm1Gc2MyVWdmU2tnTHk4OVBpQmNJakV1TlNCa1lYbHpJR0ZuYjF3aVhHNGdJQ0FxTDF4dUlDQjBiMUpsYkdGMGFYWmxLRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1cGMxWmhiR2xrS1NCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCamIyNXpkQ0JpWVhObElEMGdiM0IwYVc5dWN5NWlZWE5sSUh4OElFUmhkR1ZVYVcxbExtWnliMjFQWW1wbFkzUW9lMzBzSUhzZ2VtOXVaVG9nZEdocGN5NTZiMjVsSUgwcExGeHVJQ0FnSUNBZ2NHRmtaR2x1WnlBOUlHOXdkR2x2Ym5NdWNHRmtaR2x1WnlBL0lDaDBhR2x6SUR3Z1ltRnpaU0EvSUMxdmNIUnBiMjV6TG5CaFpHUnBibWNnT2lCdmNIUnBiMjV6TG5CaFpHUnBibWNwSURvZ01EdGNiaUFnSUNCc1pYUWdkVzVwZEhNZ1BTQmJYQ0o1WldGeWMxd2lMQ0JjSW0xdmJuUm9jMXdpTENCY0ltUmhlWE5jSWl3Z1hDSm9iM1Z5YzF3aUxDQmNJbTFwYm5WMFpYTmNJaXdnWENKelpXTnZibVJ6WENKZE8xeHVJQ0FnSUd4bGRDQjFibWwwSUQwZ2IzQjBhVzl1Y3k1MWJtbDBPMXh1SUNBZ0lHbG1JQ2hCY25KaGVTNXBjMEZ5Y21GNUtHOXdkR2x2Ym5NdWRXNXBkQ2twSUh0Y2JpQWdJQ0FnSUhWdWFYUnpJRDBnYjNCMGFXOXVjeTUxYm1sME8xeHVJQ0FnSUNBZ2RXNXBkQ0E5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHUnBabVpTWld4aGRHbDJaU2hpWVhObExDQjBhR2x6TG5Cc2RYTW9jR0ZrWkdsdVp5a3NJSHRjYmlBZ0lDQWdJQzR1TG05d2RHbHZibk1zWEc0Z0lDQWdJQ0J1ZFcxbGNtbGpPaUJjSW1Gc2QyRjVjMXdpTEZ4dUlDQWdJQ0FnZFc1cGRITXNYRzRnSUNBZ0lDQjFibWwwTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1lTQnpkSEpwYm1jZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaHBjeUJrWVhSbElISmxiR0YwYVhabElIUnZJSFJ2WkdGNUxDQnpkV05vSUdGeklGd2llV1Z6ZEdWeVpHRjVYQ0lnYjNJZ1hDSnVaWGgwSUcxdmJuUm9YQ0l1WEc0Z0lDQXFJRTl1YkhrZ2FXNTBaWEp1WVhScGIyNWhiR2w2WlhNZ2IyNGdjR3hoZEdadmNtMXpJSFJvWVhRZ2MzVndjRzl5ZEhNZ1NXNTBiQzVTWld4aGRHbDJaVlJwYldWR2IzSnRZWFF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJwYjI1eklDMGdiM0IwYVc5dWN5QjBhR0YwSUdGbVptVmpkQ0IwYUdVZ2IzVjBjSFYwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSR0YwWlZScGJXVjlJRnR2Y0hScGIyNXpMbUpoYzJVOVJHRjBaVlJwYldVdWJtOTNLQ2xkSUMwZ2RHaGxJRVJoZEdWVWFXMWxJSFJ2SUhWelpTQmhjeUIwYUdVZ1ltRnphWE1nZEc4Z2QyaHBZMmdnZEdocGN5QjBhVzFsSUdseklHTnZiWEJoY21Wa0xpQkVaV1poZFd4MGN5QjBieUJ1YjNjdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y0hScGIyNXpMbXh2WTJGc1pTQXRJRzkyWlhKeWFXUmxJSFJvWlNCc2IyTmhiR1VnYjJZZ2RHaHBjeUJFWVhSbFZHbHRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2IzQjBhVzl1Y3k1MWJtbDBJQzBnZFhObElHRWdjM0JsWTJsbWFXTWdkVzVwZERzZ2FXWWdiMjFwZEhSbFpDd2dkR2hsSUcxbGRHaHZaQ0IzYVd4c0lIQnBZMnNnZEdobElIVnVhWFF1SUZWelpTQnZibVVnYjJZZ1hDSjVaV0Z5YzF3aUxDQmNJbkYxWVhKMFpYSnpYQ0lzSUZ3aWJXOXVkR2h6WENJc0lGd2lkMlZsYTNOY0lpd2diM0lnWENKa1lYbHpYQ0pjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHOXdkR2x2Ym5NdWJuVnRZbVZ5YVc1blUzbHpkR1Z0SUMwZ2IzWmxjbkpwWkdVZ2RHaGxJRzUxYldKbGNtbHVaMU41YzNSbGJTQnZaaUIwYUdseklFUmhkR1ZVYVcxbExpQlVhR1VnU1c1MGJDQnplWE4wWlcwZ2JXRjVJR05vYjI5elpTQnViM1FnZEc4Z2FHOXViM0lnZEdocGMxeHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV3YkhWektIc2daR0Y1Y3pvZ01TQjlLUzUwYjFKbGJHRjBhWFpsUTJGc1pXNWtZWElvS1NBdkx6MCtJRndpZEc5dGIzSnliM2RjSWx4dUlDQWdLaUJBWlhoaGJYQnNaU0JFWVhSbFZHbHRaUzV1YjNjb0tTNXpaWFJNYjJOaGJHVW9YQ0psYzF3aUtTNXdiSFZ6S0hzZ1pHRjVjem9nTVNCOUtTNTBiMUpsYkdGMGFYWmxLQ2tnTHk4OVBpQmNJbHdpYldGY2RUQXdSakZoYm1GY0lseHVJQ0FnS2lCQVpYaGhiWEJzWlNCRVlYUmxWR2x0WlM1dWIzY29LUzV3YkhWektIc2daR0Y1Y3pvZ01TQjlLUzUwYjFKbGJHRjBhWFpsUTJGc1pXNWtZWElvZXlCc2IyTmhiR1U2SUZ3aVpuSmNJaUI5S1NBdkx6MCtJRndpWkdWdFlXbHVYQ0pjYmlBZ0lDb2dRR1Y0WVcxd2JHVWdSR0YwWlZScGJXVXVibTkzS0NrdWJXbHVkWE1vZXlCa1lYbHpPaUF5SUgwcExuUnZVbVZzWVhScGRtVkRZV3hsYm1SaGNpZ3BJQzh2UFQ0Z1hDSXlJR1JoZVhNZ1lXZHZYQ0pjYmlBZ0lDb3ZYRzRnSUhSdlVtVnNZWFJwZG1WRFlXeGxibVJoY2lodmNIUnBiMjV6SUQwZ2UzMHBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5XWVd4cFpDa2djbVYwZFhKdUlHNTFiR3c3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaR2xtWmxKbGJHRjBhWFpsS0c5d2RHbHZibk11WW1GelpTQjhmQ0JFWVhSbFZHbHRaUzVtY205dFQySnFaV04wS0h0OUxDQjdJSHB2Ym1VNklIUm9hWE11ZW05dVpTQjlLU3dnZEdocGN5d2dlMXh1SUNBZ0lDQWdMaTR1YjNCMGFXOXVjeXhjYmlBZ0lDQWdJRzUxYldWeWFXTTZJRndpWVhWMGIxd2lMRnh1SUNBZ0lDQWdkVzVwZEhNNklGdGNJbmxsWVhKelhDSXNJRndpYlc5dWRHaHpYQ0lzSUZ3aVpHRjVjMXdpWFN4Y2JpQWdJQ0FnSUdOaGJHVnVaR0Z5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElHMXBiaUJ2WmlCelpYWmxjbUZzSUdSaGRHVWdkR2x0WlhOY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1RVlYUmxWR2x0WlgwZ1pHRjBaVlJwYldWeklDMGdkR2hsSUVSaGRHVlVhVzFsY3lCbWNtOXRJSGRvYVdOb0lIUnZJR05vYjI5elpTQjBhR1VnYldsdWFXMTFiVnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVZWFJsVkdsdFpYMGdkR2hsSUcxcGJpQkVZWFJsVkdsdFpTd2diM0lnZFc1a1pXWnBibVZrSUdsbUlHTmhiR3hsWkNCM2FYUm9JRzV2SUdGeVozVnRaVzUwWEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nYldsdUtDNHVMbVJoZEdWVWFXMWxjeWtnZTF4dUlDQWdJR2xtSUNnaFpHRjBaVlJwYldWekxtVjJaWEo1S0VSaGRHVlVhVzFsTG1selJHRjBaVlJwYldVcEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUyWVd4cFpFRnlaM1Z0Wlc1MFJYSnliM0lvWENKdGFXNGdjbVZ4ZFdseVpYTWdZV3hzSUdGeVozVnRaVzUwY3lCaVpTQkVZWFJsVkdsdFpYTmNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCaVpYTjBRbmtvWkdGMFpWUnBiV1Z6TENBb2FTa2dQVDRnYVM1MllXeDFaVTltS0Nrc0lFMWhkR2d1YldsdUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUcxaGVDQnZaaUJ6WlhabGNtRnNJR1JoZEdVZ2RHbHRaWE5jYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVFWVhSbFZHbHRaWDBnWkdGMFpWUnBiV1Z6SUMwZ2RHaGxJRVJoZEdWVWFXMWxjeUJtY205dElIZG9hV05vSUhSdklHTm9iMjl6WlNCMGFHVWdiV0Y0YVcxMWJWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVlYUmxWR2x0WlgwZ2RHaGxJRzFoZUNCRVlYUmxWR2x0WlN3Z2IzSWdkVzVrWldacGJtVmtJR2xtSUdOaGJHeGxaQ0IzYVhSb0lHNXZJR0Z5WjNWdFpXNTBYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdiV0Y0S0M0dUxtUmhkR1ZVYVcxbGN5a2dlMXh1SUNBZ0lHbG1JQ2doWkdGMFpWUnBiV1Z6TG1WMlpYSjVLRVJoZEdWVWFXMWxMbWx6UkdGMFpWUnBiV1VwS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkVGeVozVnRaVzUwUlhKeWIzSW9YQ0p0WVhnZ2NtVnhkV2x5WlhNZ1lXeHNJR0Z5WjNWdFpXNTBjeUJpWlNCRVlYUmxWR2x0WlhOY0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJpWlhOMFFua29aR0YwWlZScGJXVnpMQ0FvYVNrZ1BUNGdhUzUyWVd4MVpVOW1LQ2tzSUUxaGRHZ3ViV0Y0S1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRTFKVTBOY2JseHVJQ0F2S2lwY2JpQWdJQ29nUlhod2JHRnBiaUJvYjNjZ1lTQnpkSEpwYm1jZ2QyOTFiR1FnWW1VZ2NHRnljMlZrSUdKNUlHWnliMjFHYjNKdFlYUW9LVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHVjRkQ0F0SUhSb1pTQnpkSEpwYm1jZ2RHOGdjR0Z5YzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR1p0ZENBdElIUm9aU0JtYjNKdFlYUWdkR2hsSUhOMGNtbHVaeUJwY3lCbGVIQmxZM1JsWkNCMGJ5QmlaU0JwYmlBb2MyVmxJR1JsYzJOeWFYQjBhVzl1S1Z4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiM0IwYVc5dWN5QXRJRzl3ZEdsdmJuTWdkR0ZyWlc0Z1lua2dabkp2YlVadmNtMWhkQ2dwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm1jbTl0Um05eWJXRjBSWGh3YkdGcGJpaDBaWGgwTENCbWJYUXNJRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5allXeGxJRDBnYm5Wc2JDd2diblZ0WW1WeWFXNW5VM2x6ZEdWdElEMGdiblZzYkNCOUlEMGdiM0IwYVc5dWN5eGNiaUFnSUNBZ0lHeHZZMkZzWlZSdlZYTmxJRDBnVEc5allXeGxMbVp5YjIxUGNIUnpLSHRjYmlBZ0lDQWdJQ0FnYkc5allXeGxMRnh1SUNBZ0lDQWdJQ0J1ZFcxaVpYSnBibWRUZVhOMFpXMHNYRzRnSUNBZ0lDQWdJR1JsWm1GMWJIUlViMFZPT2lCMGNuVmxMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHVjRjR3hoYVc1R2NtOXRWRzlyWlc1ektHeHZZMkZzWlZSdlZYTmxMQ0IwWlhoMExDQm1iWFFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWEJ5WldOaGRHVmtJSFZ6WlNCbWNtOXRSbTl5YldGMFJYaHdiR0ZwYmlCcGJuTjBaV0ZrWEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWm5KdmJWTjBjbWx1WjBWNGNHeGhhVzRvZEdWNGRDd2dabTEwTENCdmNIUnBiMjV6SUQwZ2UzMHBJSHRjYmlBZ0lDQnlaWFIxY200Z1JHRjBaVlJwYldVdVpuSnZiVVp2Y20xaGRFVjRjR3hoYVc0b2RHVjRkQ3dnWm0xMExDQnZjSFJwYjI1ektUdGNiaUFnZlZ4dVhHNGdJQzh2SUVaUFVrMUJWQ0JRVWtWVFJWUlRYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ01UQXZNVFF2TVRrNE0xeHVJQ0FnS2lCQWRIbHdaU0I3VDJKcVpXTjBmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2RsZENCRVFWUkZYMU5JVDFKVUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCR2IzSnRZWFJ6TGtSQlZFVmZVMGhQVWxRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5UMk4wSURFMExDQXhPVGd6SjF4dUlDQWdLaUJBZEhsd1pTQjdUMkpxWldOMGZWeHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHZGxkQ0JFUVZSRlgwMUZSQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbTl5YldGMGN5NUVRVlJGWDAxRlJEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlNYjJOaGJHVlRkSEpwYm1kOUlHWnZjbTFoZENCc2FXdGxJQ2RHY21rc0lFOWpkQ0F4TkN3Z01UazRNeWRjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdSRUZVUlY5TlJVUmZWMGxVU0Y5WFJVVkxSRUZaS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJHYjNKdFlYUnpMa1JCVkVWZlRVVkVYMWRKVkVoZlYwVkZTMFJCV1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQjdRR3hwYm1zZ1JHRjBaVlJwYldVamRHOU1iMk5oYkdWVGRISnBibWQ5SUdadmNtMWhkQ0JzYVd0bElDZFBZM1J2WW1WeUlERTBMQ0F4T1RnekoxeHVJQ0FnS2lCQWRIbHdaU0I3VDJKcVpXTjBmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2RsZENCRVFWUkZYMFpWVEV3b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUVadmNtMWhkSE11UkVGVVJWOUdWVXhNTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ0oxUjFaWE5rWVhrc0lFOWpkRzlpWlhJZ01UUXNJREU1T0RNblhHNGdJQ0FxSUVCMGVYQmxJSHRQWW1wbFkzUjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUVSQlZFVmZTRlZIUlNncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVFUVZSRlgwaFZSMFU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlRHOWpZV3hsVTNSeWFXNW5mU0JtYjNKdFlYUWdiR2xyWlNBbk1EazZNekFnUVUwbkxpQlBibXg1SURFeUxXaHZkWElnYVdZZ2RHaGxJR3h2WTJGc1pTQnBjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdWRWxOUlY5VFNVMVFURVVvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVWRWxOUlY5VFNVMVFURVU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlRHOWpZV3hsVTNSeWFXNW5mU0JtYjNKdFlYUWdiR2xyWlNBbk1EazZNekE2TWpNZ1FVMG5MaUJQYm14NUlERXlMV2h2ZFhJZ2FXWWdkR2hsSUd4dlkyRnNaU0JwY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnVkVsTlJWOVhTVlJJWDFORlEwOU9SRk1vS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVWRWxOUlY5WFNWUklYMU5GUTA5T1JGTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nZTBCc2FXNXJJRVJoZEdWVWFXMWxJM1J2VEc5allXeGxVM1J5YVc1bmZTQm1iM0p0WVhRZ2JHbHJaU0FuTURrNk16QTZNak1nUVUwZ1JVUlVKeTRnVDI1c2VTQXhNaTFvYjNWeUlHbG1JSFJvWlNCc2IyTmhiR1VnYVhNdVhHNGdJQ0FxSUVCMGVYQmxJSHRQWW1wbFkzUjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUZSSlRVVmZWMGxVU0Y5VFNFOVNWRjlQUmtaVFJWUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFWnZjbTFoZEhNdVZFbE5SVjlYU1ZSSVgxTklUMUpVWDA5R1JsTkZWRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5TWIyTmhiR1ZUZEhKcGJtZDlJR1p2Y20xaGRDQnNhV3RsSUNjd09Ub3pNRG95TXlCQlRTQkZZWE4wWlhKdUlFUmhlV3hwWjJoMElGUnBiV1VuTGlCUGJteDVJREV5TFdodmRYSWdhV1lnZEdobElHeHZZMkZzWlNCcGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1ZFbE5SVjlYU1ZSSVgweFBUa2RmVDBaR1UwVlVLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQkdiM0p0WVhSekxsUkpUVVZmVjBsVVNGOU1UMDVIWDA5R1JsTkZWRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5TWIyTmhiR1ZUZEhKcGJtZDlJR1p2Y20xaGRDQnNhV3RsSUNjd09Ub3pNQ2NzSUdGc2QyRjVjeUF5TkMxb2IzVnlMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQlVTVTFGWHpJMFgxTkpUVkJNUlNncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVVU1UxRlh6STBYMU5KVFZCTVJUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUI3UUd4cGJtc2dSR0YwWlZScGJXVWpkRzlNYjJOaGJHVlRkSEpwYm1kOUlHWnZjbTFoZENCc2FXdGxJQ2N3T1Rvek1Eb3lNeWNzSUdGc2QyRjVjeUF5TkMxb2IzVnlMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQlVTVTFGWHpJMFgxZEpWRWhmVTBWRFQwNUVVeWdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbTl5YldGMGN5NVVTVTFGWHpJMFgxZEpWRWhmVTBWRFQwNUVVenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCN1FHeHBibXNnUkdGMFpWUnBiV1VqZEc5TWIyTmhiR1ZUZEhKcGJtZDlJR1p2Y20xaGRDQnNhV3RsSUNjd09Ub3pNRG95TXlCRlJGUW5MQ0JoYkhkaGVYTWdNalF0YUc5MWNpNWNiaUFnSUNvZ1FIUjVjR1VnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1ZFbE5SVjh5TkY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVVU1UxRlh6STBYMWRKVkVoZlUwaFBVbFJmVDBaR1UwVlVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSnpBNU9qTXdPakl6SUVWaGMzUmxjbTRnUkdGNWJHbG5hSFFnVkdsdFpTY3NJR0ZzZDJGNWN5QXlOQzFvYjNWeUxseHVJQ0FnS2lCQWRIbHdaU0I3VDJKcVpXTjBmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR2RsZENCVVNVMUZYekkwWDFkSlZFaGZURTlPUjE5UFJrWlRSVlFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVWRWxOUlY4eU5GOVhTVlJJWDB4UFRrZGZUMFpHVTBWVU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdKekV3THpFMEx6RTVPRE1zSURrNk16QWdRVTBuTGlCUGJteDVJREV5TFdodmRYSWdhV1lnZEdobElHeHZZMkZzWlNCcGN5NWNiaUFnSUNvZ1FIUjVjR1VnZTA5aWFtVmpkSDFjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhRZ1JFRlVSVlJKVFVWZlUwaFBVbFFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZVMGhQVWxRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dlMEJzYVc1cklFUmhkR1ZVYVcxbEkzUnZURzlqWVd4bFUzUnlhVzVuZlNCbWIzSnRZWFFnYkdsclpTQW5NVEF2TVRRdk1UazRNeXdnT1Rvek1Eb3pNeUJCVFNjdUlFOXViSGtnTVRJdGFHOTFjaUJwWmlCMGFHVWdiRzlqWVd4bElHbHpMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGVkVsTlJWOVRTRTlTVkY5WFNWUklYMU5GUTA5T1JGTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlUwaFBVbFJmVjBsVVNGOVRSVU5QVGtSVE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdKMDlqZENBeE5Dd2dNVGs0TXl3Z09Ub3pNQ0JCVFNjdUlFOXViSGtnTVRJdGFHOTFjaUJwWmlCMGFHVWdiRzlqWVd4bElHbHpMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGVkVsTlJWOU5SVVFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVp2Y20xaGRITXVSRUZVUlZSSlRVVmZUVVZFTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlIdEFiR2x1YXlCRVlYUmxWR2x0WlNOMGIweHZZMkZzWlZOMGNtbHVaMzBnWm05eWJXRjBJR3hwYTJVZ0owOWpkQ0F4TkN3Z01UazRNeXdnT1Rvek1Eb3pNeUJCVFNjdUlFOXViSGtnTVRJdGFHOTFjaUJwWmlCMGFHVWdiRzlqWVd4bElHbHpMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGVkVsTlJWOU5SVVJmVjBsVVNGOVRSVU5QVGtSVEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCR2IzSnRZWFJ6TGtSQlZFVlVTVTFGWDAxRlJGOVhTVlJJWDFORlEwOU9SRk03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlRHOWpZV3hsVTNSeWFXNW5mU0JtYjNKdFlYUWdiR2xyWlNBblJuSnBMQ0F4TkNCUFkzUWdNVGs0TXl3Z09Ub3pNQ0JCVFNjdUlFOXViSGtnTVRJdGFHOTFjaUJwWmlCMGFHVWdiRzlqWVd4bElHbHpMbHh1SUNBZ0tpQkFkSGx3WlNCN1QySnFaV04wZlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRDQkVRVlJGVkVsTlJWOU5SVVJmVjBsVVNGOVhSVVZMUkVGWktDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCR2IzSnRZWFJ6TGtSQlZFVlVTVTFGWDAxRlJGOVhTVlJJWDFkRlJVdEVRVms3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ2UwQnNhVzVySUVSaGRHVlVhVzFsSTNSdlRHOWpZV3hsVTNSeWFXNW5mU0JtYjNKdFlYUWdiR2xyWlNBblQyTjBiMkpsY2lBeE5Dd2dNVGs0TXl3Z09Ub3pNQ0JCVFNCRlJGUW5MaUJQYm14NUlERXlMV2h2ZFhJZ2FXWWdkR2hsSUd4dlkyRnNaU0JwY3k1Y2JpQWdJQ29nUUhSNWNHVWdlMDlpYW1WamRIMWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFFnUkVGVVJWUkpUVVZmUmxWTVRDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JtOXliV0YwY3k1RVFWUkZWRWxOUlY5R1ZVeE1PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSjA5amRHOWlaWElnTVRRc0lERTVPRE1zSURrNk16QTZNek1nUVUwZ1JVUlVKeTRnVDI1c2VTQXhNaTFvYjNWeUlHbG1JSFJvWlNCc2IyTmhiR1VnYVhNdVhHNGdJQ0FxSUVCMGVYQmxJSHRQWW1wbFkzUjlYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUVSQlZFVlVTVTFGWDBaVlRFeGZWMGxVU0Y5VFJVTlBUa1JUS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJHYjNKdFlYUnpMa1JCVkVWVVNVMUZYMFpWVEV4ZlYwbFVTRjlUUlVOUFRrUlRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUh0QWJHbHVheUJFWVhSbFZHbHRaU04wYjB4dlkyRnNaVk4wY21sdVozMGdabTl5YldGMElHeHBhMlVnSjBaeWFXUmhlU3dnVDJOMGIySmxjaUF4TkN3Z01UazRNeXdnT1Rvek1DQkJUU0JGWVhOMFpYSnVJRVJoZVd4cFoyaDBJRlJwYldVbkxpQlBibXg1SURFeUxXaHZkWElnYVdZZ2RHaGxJR3h2WTJGc1pTQnBjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdSRUZVUlZSSlRVVmZTRlZIUlNncElIdGNiaUFnSUNCeVpYUjFjbTRnUm05eWJXRjBjeTVFUVZSRlZFbE5SVjlJVlVkRk8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSHRBYkdsdWF5QkVZWFJsVkdsdFpTTjBiMHh2WTJGc1pWTjBjbWx1WjMwZ1ptOXliV0YwSUd4cGEyVWdKMFp5YVdSaGVTd2dUMk4wYjJKbGNpQXhOQ3dnTVRrNE15d2dPVG96TURvek15QkJUU0JGWVhOMFpYSnVJRVJoZVd4cFoyaDBJRlJwYldVbkxpQlBibXg1SURFeUxXaHZkWElnYVdZZ2RHaGxJR3h2WTJGc1pTQnBjeTVjYmlBZ0lDb2dRSFI1Y0dVZ2UwOWlhbVZqZEgxY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUWdSRUZVUlZSSlRVVmZTRlZIUlY5WFNWUklYMU5GUTA5T1JGTW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFWnZjbTFoZEhNdVJFRlVSVlJKVFVWZlNGVkhSVjlYU1ZSSVgxTkZRMDlPUkZNN1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWm5KcFpXNWtiSGxFWVhSbFZHbHRaU2hrWVhSbFZHbHRaV2x6YUNrZ2UxeHVJQ0JwWmlBb1JHRjBaVlJwYldVdWFYTkVZWFJsVkdsdFpTaGtZWFJsVkdsdFpXbHphQ2twSUh0Y2JpQWdJQ0J5WlhSMWNtNGdaR0YwWlZScGJXVnBjMmc3WEc0Z0lIMGdaV3h6WlNCcFppQW9aR0YwWlZScGJXVnBjMmdnSmlZZ1pHRjBaVlJwYldWcGMyZ3VkbUZzZFdWUFppQW1KaUJwYzA1MWJXSmxjaWhrWVhSbFZHbHRaV2x6YUM1MllXeDFaVTltS0NrcEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUVSaGRHVlVhVzFsTG1aeWIyMUtVMFJoZEdVb1pHRjBaVlJwYldWcGMyZ3BPMXh1SUNCOUlHVnNjMlVnYVdZZ0tHUmhkR1ZVYVcxbGFYTm9JQ1ltSUhSNWNHVnZaaUJrWVhSbFZHbHRaV2x6YUNBOVBUMGdYQ0p2WW1wbFkzUmNJaWtnZTF4dUlDQWdJSEpsZEhWeWJpQkVZWFJsVkdsdFpTNW1jbTl0VDJKcVpXTjBLR1JoZEdWVWFXMWxhWE5vS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1NXNTJZV3hwWkVGeVozVnRaVzUwUlhKeWIzSW9YRzRnSUNBZ0lDQmdWVzVyYm05M2JpQmtZWFJsZEdsdFpTQmhjbWQxYldWdWREb2dKSHRrWVhSbFZHbHRaV2x6YUgwc0lHOW1JSFI1Y0dVZ0pIdDBlWEJsYjJZZ1pHRjBaVlJwYldWcGMyaDlZRnh1SUNBZ0lDazdYRzRnSUgxY2JuMWNiaUlzSUNKcGJYQnZjblFnZXlCRVlYUmxWR2x0WlN3Z1JIVnlZWFJwYjI0Z2ZTQm1jbTl0SUZ3aWJIVjRiMjVjSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRkFnWm5KdmJTQmNJbkJoY25OcGJXMXZibHdpTzF4dWFXMXdiM0owSUdWdGIycHBVbVZuWlhnZ1puSnZiU0JjSW1WdGIycHBMWEpsWjJWNFhDSTdYRzVwYlhCdmNuUWdleUJNYVc1cklIMGdabkp2YlNCY0ltVjRjSEpsYzNOcGIyNHZiR2x1YTF3aU8xeHVYRzR2S2lvZ1ZHVnpkQzFsYm5acGNtOXViV1Z1ZEMxbWNtbGxibVJzZVNCbWRXNWpkR2x2YmlCM2FHbGphQ0JtWlhSamFHVnpJSFJvWlNCamRYSnlaVzUwSUhONWMzUmxiU0JzYjJOaGJHVXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTNWeWNtVnVkRXh2WTJGc1pTZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkMmx1Wkc5M0lEMDlQU0JjSW5WdVpHVm1hVzVsWkZ3aUtTQnlaWFIxY200Z1hDSmxiaTFWVTF3aU8xeHVJQ0FnSUhKbGRIVnliaUIzYVc1a2IzY3VibUYyYVdkaGRHOXlMbXhoYm1kMVlXZGxPMXh1ZlZ4dVhHNHZMeUJFWVhSbEwxUnBiV1VnVW1WdVpHVnlhVzVuWEc1Y2JpOHFLaUJPYjNKdFlXeHBlbVVnWVNCa2RYSmhkR2x2YmlCMGJ5QmhiR3dnYjJZZ2RHaGxJSEJ5YjNCbGNpQjFibWwwY3k0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnViM0p0WVd4cGVtVkVkWEpoZEdsdmJpaGtkWEk2SUVSMWNtRjBhVzl1S1NCN1hHNGdJQ0FnYVdZZ0tHUjFjaUE5UFQwZ2RXNWtaV1pwYm1Wa0lIeDhJR1IxY2lBOVBUMGdiblZzYkNrZ2NtVjBkWEp1SUdSMWNqdGNibHh1SUNBZ0lISmxkSFZ5YmlCa2RYSXVjMmhwWm5SVWJ5aGNJbmxsWVhKelhDSXNJRndpYlc5dWRHaHpYQ0lzSUZ3aWQyVmxhM05jSWl3Z1hDSmtZWGx6WENJc0lGd2lhRzkxY25OY0lpd2dYQ0p0YVc1MWRHVnpYQ0lzSUZ3aWMyVmpiMjVrYzF3aUxDQmNJbTFwYkd4cGMyVmpiMjVrYzF3aUtTNXViM0p0WVd4cGVtVW9LVHRjYm4xY2JseHVMeW9xSUZOMGNtbHdJSFJvWlNCMGFXMWxJR052YlhCdmJtVnVkSE1nYjJZZ1lTQmtZWFJsSUhScGJXVWdiMkpxWldOMExpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE4wY21sd1ZHbHRaU2hrZERvZ1JHRjBaVlJwYldVcE9pQkVZWFJsVkdsdFpTQjdYRzRnSUNBZ2FXWWdLR1IwSUQwOVBTQnVkV3hzSUh4OElHUjBJRDA5UFNCMWJtUmxabWx1WldRcElISmxkSFZ5YmlCa2REdGNibHh1SUNBZ0lISmxkSFZ5YmlCRVlYUmxWR2x0WlM1bWNtOXRUMkpxWldOMEtIdGNiaUFnSUNBZ0lDQWdlV1ZoY2pvZ1pIUXVlV1ZoY2l4Y2JpQWdJQ0FnSUNBZ2JXOXVkR2c2SUdSMExtMXZiblJvTEZ4dUlDQWdJQ0FnSUNCa1lYazZJR1IwTG1SaGVTeGNiaUFnSUNCOUtUdGNibjFjYmx4dUx5b3FJRlJ5ZVNCMGJ5QmxlSFJ5WVdOMElHRWdXVmxaV1UxTlJFUWdaR0YwWlNCbWNtOXRJR0VnYzNSeWFXNW5MaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWNGRISmhZM1JFWVhSbEtITjBjam9nYzNSeWFXNW5LVG9nUkdGMFpWUnBiV1VnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUd4bGRDQmtZWFJsVFdGMFkyZ2dQU0F2S0Z4Y1pIczBmU2t0S0Z4Y1pIc3lmU2t0S0Z4Y1pIc3lmU2t2TG1WNFpXTW9jM1J5S1R0Y2JpQWdJQ0JwWmlBb0lXUmhkR1ZOWVhSamFDa2daR0YwWlUxaGRHTm9JRDBnTHloY1hHUjdOSDBwS0Z4Y1pIc3lmU2tvWEZ4a2V6SjlLUzh1WlhobFl5aHpkSElwTzF4dUlDQWdJR2xtSUNoa1lYUmxUV0YwWTJncElIdGNiaUFnSUNBZ0lDQWdiR1YwSUhsbFlYSWdQU0JPZFcxaVpYSXVjR0Z5YzJWSmJuUW9aR0YwWlUxaGRHTm9XekZkS1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJRzF2Ym5Sb0lEMGdUblZ0WW1WeUxuQmhjbk5sU1c1MEtHUmhkR1ZOWVhSamFGc3lYU2s3WEc0Z0lDQWdJQ0FnSUd4bGRDQmtZWGtnUFNCT2RXMWlaWEl1Y0dGeWMyVkpiblFvWkdGMFpVMWhkR05vV3pOZEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFUmhkR1ZVYVcxbExtWnliMjFQWW1wbFkzUW9leUI1WldGeUxDQnRiMjUwYUN3Z1pHRjVJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzU5WEc1Y2JpOHFLaUJTWlc1a1pYSWdZU0JFWVhSbFZHbHRaU0JwYmlCaElHMXBibWx0WVd3Z1ptOXliV0YwSUhSdklITmhkbVVnYzNCaFkyVXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WdVpHVnlUV2x1YVcxaGJFUmhkR1VvZEdsdFpUb2dSR0YwWlZScGJXVXNJR1JoZEdWR2IzSnRZWFE2SUhOMGNtbHVaeXdnWkdGMFpWUnBiV1ZHYjNKdFlYUTZJSE4wY21sdVp5d2diRzlqWVd4bFB6b2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNBdkx5QkpaaUIwYUdWeVpTQnBjeUJ1YnlCeVpXeGxkbUZ1ZENCMGFXMWxJSE53WldOcFptbGxaQ3dnWm1Gc2JDQmlZV05ySUhSdklHcDFjM1FnY21WdVpHVnlhVzVuSUhSb1pTQmtZWFJsTGx4dUlDQWdJR2xtSUNoMGFXMWxMbk5sWTI5dVpDQTlQU0F3SUNZbUlIUnBiV1V1YldsdWRYUmxJRDA5SURBZ0ppWWdkR2x0WlM1b2IzVnlJRDA5SURBcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnBiV1V1ZEc5TWIyTmhiQ2dwTG5SdlJtOXliV0YwS0dSaGRHVkdiM0p0WVhRc0lIc2diRzlqWVd4bElIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCMGFXMWxMblJ2VEc5allXd29LUzUwYjBadmNtMWhkQ2hrWVhSbFZHbHRaVVp2Y20xaGRDd2dleUJzYjJOaGJHVWdmU2s3WEc1OVhHNWNiaThxS2lCU1pXNWtaWElnWVNCa2RYSmhkR2x2YmlCcGJpQmhJRzFwYm1sdFlXd2dabTl5YldGMElIUnZJSE5oZG1VZ2MzQmhZMlV1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtVnVaR1Z5VFdsdWFXMWhiRVIxY21GMGFXOXVLR1IxY2pvZ1JIVnlZWFJwYjI0cE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdSMWNpQTlJRzV2Y20xaGJHbDZaVVIxY21GMGFXOXVLR1IxY2lrN1hHNWNiaUFnSUNBdkx5QlVUMFJQT2lCTWRYaHZiaUJrYjJWeklHNXZkQ0JvWVhabElHMTFiSFJwTFd4cGJtZDFZV3d2Ykc5allXeGxMV0YzWVhKbElHUjFjbUYwYVc5dUlISmxibVJsY21sdVp5NWNiaUFnSUNCc1pYUWdjbVZ6ZFd4MElEMGdYQ0pjSWp0Y2JpQWdJQ0JwWmlBb1pIVnlMbmxsWVhKektTQnlaWE4xYkhRZ0t6MGdZQ1I3WkhWeUxubGxZWEp6ZlNCNVpXRnljeXdnWUR0Y2JpQWdJQ0JwWmlBb1pIVnlMbTF2Ym5Sb2N5a2djbVZ6ZFd4MElDczlJR0FrZTJSMWNpNXRiMjUwYUhOOUlHMXZiblJvY3l3Z1lEdGNiaUFnSUNCcFppQW9aSFZ5TG5kbFpXdHpLU0J5WlhOMWJIUWdLejBnWUNSN1pIVnlMbmRsWld0emZTQjNaV1ZyY3l3Z1lEdGNiaUFnSUNCcFppQW9aSFZ5TG1SaGVYTXBJSEpsYzNWc2RDQXJQU0JnSkh0a2RYSXVaR0Y1YzMwZ1pHRjVjeXdnWUR0Y2JpQWdJQ0JwWmlBb1pIVnlMbWh2ZFhKektTQnlaWE4xYkhRZ0t6MGdZQ1I3WkhWeUxtaHZkWEp6ZlNCb2IzVnljeXdnWUR0Y2JpQWdJQ0JwWmlBb1pIVnlMbTFwYm5WMFpYTXBJSEpsYzNWc2RDQXJQU0JnSkh0a2RYSXViV2x1ZFhSbGMzMGdiV2x1ZFhSbGN5d2dZRHRjYmlBZ0lDQnBaaUFvWkhWeUxuTmxZMjl1WkhNcElISmxjM1ZzZENBclBTQmdKSHROWVhSb0xuSnZkVzVrS0dSMWNpNXpaV052Ym1SektYMGdjMlZqYjI1a2N5d2dZRHRjYmlBZ0lDQnBaaUFvWkhWeUxtMXBiR3hwYzJWamIyNWtjeWtnY21WemRXeDBJQ3M5SUdBa2UwMWhkR2d1Y205MWJtUW9aSFZ5TG0xcGJHeHBjMlZqYjI1a2N5bDlJRzF6TENCZ08xeHVYRzRnSUNBZ2FXWWdLSEpsYzNWc2RDNWxibVJ6VjJsMGFDaGNJaXdnWENJcEtTQnlaWE4xYkhRZ1BTQnlaWE4xYkhRdWMzVmljM1J5YVc1bktEQXNJSEpsYzNWc2RDNXNaVzVuZEdnZ0xTQXlLVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dWZWeHVYRzR2THlCUVlYUm9JSFYwYVd4cGRHbGxjeTVjYmx4dUx5b3FJRWRsZENCMGFHVWdabTlzWkdWeUlHTnZiblJoYVc1cGJtY2dkR2hsSUdkcGRtVnVJSEJoZEdnZ0tHa3VaUzRzSUd4cGEyVWdZMjl0Y0hWMGFXNW5JQ2R3WVhSb0x5NHVKeWt1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVR0Z5Wlc1MFJtOXNaR1Z5S0hCaGRHZzZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUhCaGRHZ3VjM0JzYVhRb1hDSXZYQ0lwTG5Oc2FXTmxLREFzSUMweEtTNXFiMmx1S0Z3aUwxd2lLVHRjYm4xY2JseHVMeW9xSUVkbGRDQjBhR1VnWm1sc1pTQnVZVzFsSUdadmNpQjBhR1VnWm1sc1pTQnlaV1psY21WdVkyVmtJR2x1SUhSb1pTQm5hWFpsYmlCd1lYUm9MQ0JpZVNCemRISnBjSEJwYm1jZ2RHaGxJSEJoY21WdWRDQm1iMnhrWlhKekxpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVacGJHVk9ZVzFsS0hCaGRHZzZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUhCaGRHZ3VhVzVqYkhWa1pYTW9YQ0l2WENJcElEOGdjR0YwYUM1emRXSnpkSEpwYm1jb2NHRjBhQzVzWVhOMFNXNWtaWGhQWmloY0lpOWNJaWtnS3lBeEtTQTZJSEJoZEdnN1hHNTlYRzVjYmk4cUtpQkhaWFFnZEdobElGd2lkR2wwYkdWY0lpQm1iM0lnWVNCbWFXeGxMQ0JpZVNCemRISnBjSEJwYm1jZ2IzUm9aWElnY0dGeWRITWdiMllnZEdobElIQmhkR2dnWVhNZ2QyVnNiQ0JoY3lCMGFHVWdaWGgwWlc1emFXOXVMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFWnBiR1ZVYVhSc1pTaHdZWFJvT2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNod1lYUm9MbWx1WTJ4MVpHVnpLRndpTDF3aUtTa2djR0YwYUNBOUlIQmhkR2d1YzNWaWMzUnlhVzVuS0hCaGRHZ3ViR0Z6ZEVsdVpHVjRUMllvWENJdlhDSXBJQ3NnTVNrN1hHNGdJQ0FnYVdZZ0tIQmhkR2d1Wlc1a2MxZHBkR2dvWENJdWJXUmNJaWtwSUhCaGRHZ2dQU0J3WVhSb0xuTjFZbk4wY21sdVp5Z3dMQ0J3WVhSb0xteGxibWQwYUNBdElETXBPMXh1SUNBZ0lISmxkSFZ5YmlCd1lYUm9PMXh1ZlZ4dVhHNHZLaW9nUjJWMElIUm9aU0JsZUhSbGJuTnBiMjRnYjJZZ1lTQm1hV3hsSUdaeWIyMGdkR2hsSUdacGJHVWdjR0YwYUM0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5aWFJGZUhSbGJuTnBiMjRvY0dGMGFEb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCcFppQW9JWEJoZEdndWFXNWpiSFZrWlhNb1hDSXVYQ0lwS1NCeVpYUjFjbTRnWENKY0lqdGNiaUFnSUNCeVpYUjFjbTRnY0dGMGFDNXpkV0p6ZEhKcGJtY29jR0YwYUM1c1lYTjBTVzVrWlhoUFppaGNJaTVjSWlrZ0t5QXhLVHRjYm4xY2JseHVMeThnVkdGbklHVjRkSEpoWTNScGIyNHVYRzVjYmk4cUtpQlFZWEp6WlNCaGJHd2djM1ZpZEdGbmN5QnZkWFFnYjJZZ2RHaGxJR2RwZG1WdUlIUmhaeTRnU1M1bExpd2dJMmhsYkd4dkwya3ZZVzBnZDI5MWJHUWdlV2xsYkdRZ1d5Tm9aV3hzYnk5cEwyRnRMQ0FqYUdWc2JHOHZhU3dnSTJobGJHeHZYUzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbGVIUnlZV04wVTNWaWRHRm5jeWgwWVdkek9pQnpkSEpwYm1jZ2ZDQkpkR1Z5WVdKc1pUeHpkSEpwYm1jK0tUb2djM1J5YVc1blcxMGdlMXh1SUNBZ0lHeGxkQ0J5WlhOMWJIUWdQU0JiWFR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0IwWVdjZ2IyWWdkSGx3Wlc5bUlIUmhaM01nUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJiZEdGbmMxMGdPaUIwWVdkektTQjdYRzRnSUNBZ0lDQWdJSEpsYzNWc2RDNXdkWE5vS0hSaFp5azdYRzRnSUNBZ0lDQWdJSGRvYVd4bElDaDBZV2N1YVc1amJIVmtaWE1vWENJdlhDSXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBZV2NnUFNCMFlXY3VjM1ZpYzNSeWFXNW5LREFzSUhSaFp5NXNZWE4wU1c1a1pYaFBaaWhjSWk5Y0lpa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpkV3gwTG5CMWMyZ29kR0ZuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JpOHFLaUJUY0d4cGRDQmxZV05vSUdKc2IyTnJJR0Z1WkNCelpXTjBhVzl1SUd4cGJtc2dhVzUwYnlCMGFHVWdiM0pwWjJsdVlXd2diR2x1YXlCaGJtUWdZU0JqYjNKeVpYTndiMjVrYVc1bklHWnBiR1VnYkdsdWF5NGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZUhSeVlXTjBSbWxzWlV4cGJtdHpLR1ZzYVc1cmN6b2dUR2x1YTF0ZEtUb2dUR2x1YTF0ZElIdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUTZJRXhwYm10YlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYkdsdWF5QnZaaUJsYkdsdWEzTXBJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBMbkIxYzJnb2JHbHVheWs3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm1sc1pVeHBibXNnUFNCc2FXNXJMblJ2Um1sc1pTZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVheTUwZVhCbElDRTlJRndpWm1sc1pWd2lJQ1ltSUNGeVpYTjFiSFF1Wm1sdVpDZ29aWGhwYzNScGJtY3BJRDArSUdWNGFYTjBhVzVuTG1WeGRXRnNjeWhtYVd4bFRHbHVheWtwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNobWFXeGxUR2x1YXlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1ZlZ4dVhHNHZMeUJUZEhKcGJtY2daWE5qWVhCcGJtY2dZVzVrSUdOaGJtOXVhV05oYkdsNllYUnBiMjR1WEc1Y2JpOHFLbHh1SUNvZ1JYTmpZWEJsSUhKbFoyVjRJR05vWVhKaFkzUmxjbk1nYVc0Z1lTQnpkSEpwYm1jdVhHNGdLaUJUWldVZ2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlYWldJdlNtRjJZVk5qY21sd2RDOUhkV2xrWlM5U1pXZDFiR0Z5WDBWNGNISmxjM05wYjI1ekxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWlhOallYQmxVbVZuWlhnb2MzUnlPaUJ6ZEhKcGJtY3BJSHRjYmlBZ0lDQnlaWFIxY200Z2MzUnlMbkpsY0d4aFkyVW9MMXN1S2lzL1hpUjdmU2dwZkZ0Y1hGMWNYRnhjWFM5bkxDQmNJbHhjWEZ3a0psd2lLVHRjYm4xY2JseHVZMjl1YzNRZ1NFVkJSRVZTWDBOQlRrOU9TVU5CVEVsYVJWSTZJRkF1VUdGeWMyVnlQSE4wY21sdVp6NGdQU0JRTG1Gc2RDaGNiaUFnSUNCUUxuSmxaMlY0S0c1bGR5QlNaV2RGZUhBb1pXMXZhbWxTWldkbGVDZ3BMQ0JjSWx3aUtTa3NYRzRnSUNBZ1VDNXlaV2RsZUNndld6QXRPVnhjY0h0TVpYUjBaWEo5WHkxZEt5OTFLU3hjYmlBZ0lDQlFMbmRvYVhSbGMzQmhZMlV1YldGd0tDaGZLU0E5UGlCY0lpQmNJaWtzWEc0Z0lDQWdVQzVoYm5rdWJXRndLQ2hmS1NBOVBpQmNJaUJjSWlsY2JpbGNiaUFnSUNBdWJXRnVlU2dwWEc0Z0lDQWdMbTFoY0Nnb2NtVnpkV3gwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRdWFtOXBiaWhjSWx3aUtTNXpjR3hwZENndlhGeHpLeThwTG1wdmFXNG9YQ0lnWENJcExuUnlhVzBvS1R0Y2JpQWdJQ0I5S1R0Y2JseHVMeW9xWEc0Z0tpQk9iM0p0WVd4cGVtVnpJSFJvWlNCMFpYaDBJR2x1SUdFZ2FHVmhaR1Z5SUhSdklHSmxJSE52YldWMGFHbHVaeUIwYUdGMElHbHpJR0ZqZEhWaGJHeDVJR3hwYm10aFlteGxJSFJ2TGlCVWFHbHpJRzFwYldsamMxeHVJQ29nYUc5M0lFOWljMmxrYVdGdUlHUnZaWE1nYVhRbmN5QnViM0p0WVd4cGVtRjBhVzl1TENCamIyeHNZWEJ6YVc1bklISmxjR1ZoZEdWa0lITndZV05sY3lCaGJtUWdjM1J5YVhCd2FXNW5JRzkxZENCamIyNTBjbTlzSUdOb1lYSmhZM1JsY25NdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ1YjNKdFlXeHBlbVZJWldGa1pYSkdiM0pNYVc1cktHaGxZV1JsY2pvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdTRVZCUkVWU1gwTkJUazlPU1VOQlRFbGFSVkl1ZEhKNVVHRnljMlVvYUdWaFpHVnlLVHRjYm4xY2JseHVMeThnUm1GemRDQmxlSFJ5WVdOMGFXOXVJRzltSUd4cGJtVWdjbUZ1WjJWeklHWnliMjBnYkdGeVoyVWdjR2xsWTJWeklHOW1JSFJsZUhRdVhHNWNiaThxS2lCVmNHUmhkR1VnZEdobElHeHBibVVnY21GdVoyVWdabkp2YlNCYmMzUmhjblFzSUdWdVpDa2dkMmwwYUNCMGFHVWdaMmwyWlc0Z1puVnVZM1JwYjI0dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiR2x1WlZKbGNHeGhZMlVvZEdWNGREb2djM1J5YVc1bkxDQnpkR0Z5ZERvZ2JuVnRZbVZ5TENCbGJtUTZJRzUxYldKbGNpd2dablZ1WXpvZ0tHeHBibVU2SUhOMGNtbHVaeWtnUFQ0Z2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQmJaR0YwWVN3Z2IyWm1jMlYwWFNBOUlHeHBibVZUY0dGdUtIUmxlSFFzSUhOMFlYSjBMQ0JsYm1RcE8xeHVJQ0FnSUdsbUlDZ2hiMlptYzJWMEtTQnlaWFIxY200Z2RHVjRkRHRjYmx4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJR1JoZEdFdWMzVmljM1J5YVc1bktEQXNJRzltWm5ObGRDNXpkR0Z5ZENrZ0t5Qm1kVzVqS0dSaGRHRXVjM1ZpYzNSeWFXNW5LRzltWm5ObGRDNXpkR0Z5ZEN3Z2IyWm1jMlYwTG1WdVpDa3BJQ3NnWkdGMFlTNXpkV0p6ZEhKcGJtY29iMlptYzJWMExtVnVaQ2xjYmlBZ0lDQXBPMXh1ZlZ4dVhHNHZLaW9nUlhoMGNtRmpkQ0IwYUdVZ2JHbHVaWE1nYVc0Z2RHaGxJSEpoYm1kbElGdHpkR0Z5ZEN3Z1pXNWtLU3dnWVhNZ2QyVnNiQ0JoY3lCMGFHVWdZV04wZFdGc0lHOW1abk5sZEhNZ2IyWWdkR2hsSUhOMFlYSjBJR0Z1WkNCbGJtUXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYkdsdVpWTndZVzRvWEc0Z0lDQWdkR1Y0ZERvZ2MzUnlhVzVuTEZ4dUlDQWdJSE4wWVhKME9pQnVkVzFpWlhJc1hHNGdJQ0FnWlc1a09pQnVkVzFpWlhKY2JpazZJRnR6ZEhKcGJtY3NJSHNnYzNSaGNuUTZJRzUxYldKbGNqc2daVzVrT2lCdWRXMWlaWElnZlNCOElIVnVaR1ZtYVc1bFpGMGdlMXh1SUNBZ0lITjBZWEowSUQwZ1RXRjBhQzV0WVhnb2MzUmhjblFzSURBcE8xeHVJQ0FnSUdWdVpDQTlJRTFoZEdndWJXRjRLR1Z1WkN3Z01DazdYRzVjYmlBZ0lDQnBaaUFvYzNSaGNuUWdQajBnWlc1a0tTQnlaWFIxY200Z1cxd2lYQ0lzSUhWdVpHVm1hVzVsWkYwN1hHNWNiaUFnSUNBdkx5QlRkR0Z5ZENCaWVTQm1hVzVrYVc1bklIUm9aU0J6ZEdGeWRHbHVaeUJzYVc1bElHOW1abk5sZEM1Y2JpQWdJQ0JqYjI1emRDQnpkR0Z5ZEU5bVpuTmxkQ0E5SUhOcmFYQk9aWGRzYVc1bGN5aDBaWGgwTENBd0xDQnpkR0Z5ZENrN1hHNGdJQ0FnYVdZZ0tITjBZWEowVDJabWMyVjBJRDA5SUMweEtTQnlaWFIxY200Z1cxd2lYQ0lzSUhWdVpHVm1hVzVsWkYwN1hHNWNiaUFnSUNCamIyNXpkQ0JsYm1SUFptWnpaWFFnUFNCemEybHdUbVYzYkdsdVpYTW9kR1Y0ZEN3Z2MzUmhjblJQWm1aelpYUXNJR1Z1WkNBdElITjBZWEowS1R0Y2JpQWdJQ0JwWmlBb1pXNWtUMlptYzJWMElEMDlJQzB4S1NCeVpYUjFjbTRnVzNSbGVIUXVjM1ZpYzNSeWFXNW5LSE4wWVhKMFQyWm1jMlYwS1N3Z2V5QnpkR0Z5ZERvZ2MzUmhjblJQWm1aelpYUXNJR1Z1WkRvZ2RHVjRkQzVzWlc1bmRHZ2dmVjA3WEc0Z0lDQWdaV3h6WlNCeVpYUjFjbTRnVzNSbGVIUXVjM1ZpYzNSeWFXNW5LSE4wWVhKMFQyWm1jMlYwTENCbGJtUlBabVp6WlhRZ0xTQXhLU3dnZXlCemRHRnlkRG9nYzNSaGNuUlBabVp6WlhRc0lHVnVaRG9nWlc1a1QyWm1jMlYwSUMwZ01TQjlYVHRjYm4xY2JseHVMeW9xSUVWNGRISmhZM1FnZEdobElHeHBibVZ6SUdsdUlIUm9aU0J5WVc1blpTQmJjM1JoY25Rc0lHVnVaQ2t1SUZOMFlYSjBJR2x6SUdsdVkyeDFjMmwyWlN3Z1pXNWtJR2x6SUdWNFkyeDFjMmwyWlM0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnNhVzVsVW1GdVoyVW9kR1Y0ZERvZ2MzUnlhVzVuTENCemRHRnlkRG9nYm5WdFltVnlMQ0JsYm1RNklHNTFiV0psY2lrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJR3hwYm1WVGNHRnVLSFJsZUhRc0lITjBZWEowTENCbGJtUXBXekJkTzF4dWZWeHVYRzR2S2lvZ1UydHBjQ0I3WTI5MWJuUjlJSFJ2ZEdGc0lHNWxkMnhwYm1WekxDQnlaWFIxY201cGJtY2dkR2hsSUhOMFlYSjBJRzltSUhSb1pTQnNhVzVsSUh0amIzVnVkSDBnYkdsdVpYTWdZV1owWlhJZ2RHaGxJR04xY25KbGJuUWdiR2x1WlM0Z1NXWWdZMjkxYm5RZ2FYTWdNQ3dnZEdobElHbHVhWFJwWVd3Z2IyWm1jMlYwSUdseklISmxkSFZ5Ym1Wa0xpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5yYVhCT1pYZHNhVzVsY3loMFpYaDBPaUJ6ZEhKcGJtY3NJSE4wWVhKME9pQnVkVzFpWlhJc0lHTnZkVzUwT2lCdWRXMWlaWElwT2lCdWRXMWlaWElnZTF4dUlDQWdJR2xtSUNoamIzVnVkQ0E5UFNBd0tTQnlaWFIxY200Z2MzUmhjblE3WEc1Y2JpQWdJQ0JzWlhRZ2NHOXphWFJwYjI0Z1BTQnpkR0Z5ZER0Y2JpQWdJQ0IzYUdsc1pTQW9ZMjkxYm5RZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUhCdmMybDBhVzl1SUQwZ2RHVjRkQzVwYm1SbGVFOW1LRndpWEZ4dVhDSXNJSEJ2YzJsMGFXOXVLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnZjMmwwYVc5dUlEMDlJQzB4S1NCeVpYUjFjbTRnTFRFN1hHNWNiaUFnSUNBZ0lDQWdZMjkxYm5RdExUdGNiaUFnSUNBZ0lDQWdjRzl6YVhScGIyNGdLejBnTVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjRzl6YVhScGIyNDdYRzU5WEc0aUxDQWlaWGh3YjNKMElHUmxabUYxYkhRZ0tDa2dQVDRnZTF4dVhIUXZMeUJvZEhSd2N6b3ZMMjEwYUhNdVltVXZaVzF2YW1sY2JseDBjbVYwZFhKdUlDOWJJeW93TFRsZFhGeDFSa1V3Umo5Y1hIVXlNRVV6ZkZ0Y1hIaEJPVnhjZUVGRlhGeDFNakF6UTF4Y2RUSXdORGxjWEhVeU1USXlYRngxTWpFek9WeGNkVEl4T1RRdFhGeDFNakU1T1Z4Y2RUSXhRVGxjWEhVeU1VRkJYRngxTWpNeFFWeGNkVEl6TVVKY1hIVXlNekk0WEZ4MU1qTkRSbHhjZFRJelJVUXRYRngxTWpORlJseGNkVEl6UmpGY1hIVXlNMFl5WEZ4MU1qTkdPQzFjWEhVeU0wWkJYRngxTWpSRE1seGNkVEkxUVVGY1hIVXlOVUZDWEZ4MU1qVkNObHhjZFRJMVF6QmNYSFV5TlVaQ1hGeDFNalZHUTF4Y2RUSTFSa1ZjWEhVeU5qQXdMVnhjZFRJMk1EUmNYSFV5TmpCRlhGeDFNall4TVZ4Y2RUSTJNVFJjWEhVeU5qRTFYRngxTWpZeE9GeGNkVEkyTWpCY1hIVXlOakl5WEZ4MU1qWXlNMXhjZFRJMk1qWmNYSFV5TmpKQlhGeDFNall5UlZ4Y2RUSTJNa1pjWEhVeU5qTTRMVnhjZFRJMk0wRmNYSFV5TmpRd1hGeDFNalkwTWx4Y2RUSTJORGd0WEZ4MU1qWTFNMXhjZFRJMk5VWmNYSFV5TmpZd1hGeDFNalkyTTF4Y2RUSTJOalZjWEhVeU5qWTJYRngxTWpZMk9GeGNkVEkyTjBKY1hIVXlOamRGWEZ4MU1qWTNSbHhjZFRJMk9USmNYSFV5TmprMExWeGNkVEkyT1RkY1hIVXlOams1WEZ4MU1qWTVRbHhjZFRJMk9VTmNYSFV5TmtFd1hGeDFNalpCTjF4Y2RUSTJRVUZjWEhVeU5rSXdYRngxTWpaQ01WeGNkVEkyUWtSY1hIVXlOa0pGWEZ4MU1qWkRORnhjZFRJMlF6aGNYSFV5TmtOR1hGeDFNalpFTVZ4Y2RUSTJSVGxjWEhVeU5rWXdMVnhjZFRJMlJqVmNYSFV5TmtZM1hGeDFNalpHT0Z4Y2RUSTJSa0ZjWEhVeU56QXlYRngxTWpjd09GeGNkVEkzTURsY1hIVXlOekJHWEZ4MU1qY3hNbHhjZFRJM01UUmNYSFV5TnpFMlhGeDFNamN4UkZ4Y2RUSTNNakZjWEhVeU56TXpYRngxTWpjek5GeGNkVEkzTkRSY1hIVXlOelEzWEZ4MU1qYzFOMXhjZFRJM05qTmNYSFV5TjBFeFhGeDFNamt6TkZ4Y2RUSTVNelZjWEhVeVFqQTFMVnhjZFRKQ01EZGNYSFV5UWpGQ1hGeDFNa0l4UTF4Y2RUSkNOVFZjWEhVek1ETXdYRngxTXpBelJGeGNkVE15T1RkY1hIVXpNams1WFZ4Y2RVWkZNRVkvZkZ0Y1hIVXlOakZFWEZ4MU1qY3dRMXhjZFRJM01FUmRLRDg2WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRmRnhjZFVaRk1FWXBQM3hiWEZ4MU1qY3dRVnhjZFRJM01FSmRLRDg2WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRLVDk4VzF4Y2RUSXpSVGt0WEZ4MU1qTkZRMXhjZFRJelJqQmNYSFV5TTBZelhGeDFNalZHUkZ4Y2RUSTJPVE5jWEhVeU5rRXhYRngxTWpaQlFseGNkVEkyUXpWY1hIVXlOa05GWEZ4MU1qWkVORnhjZFRJMlJVRmNYSFV5TmtaRVhGeDFNamN3TlZ4Y2RUSTNNamhjWEhVeU56UkRYRngxTWpjMFJWeGNkVEkzTlRNdFhGeDFNamMxTlZ4Y2RUSTNPVFV0WEZ4MU1qYzVOMXhjZFRJM1FqQmNYSFV5TjBKR1hGeDFNa0kxTUYxOFhGeDFNalpFTTF4Y2RVWkZNRVkvS0Q4NlhGeDFNakF3UkZ4Y2RVUTRNMFJjWEhWRVEwRTFLVDk4WEZ4MU1qWkdPU2cvT2x4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYWHhjWEhWR1JUQkdLVDhvUHpwY1hIVXlNREJFVzF4Y2RUSTJOREJjWEhVeU5qUXlYVnhjZFVaRk1FWS9LVDk4WEZ4MU1qYzJORnhjZFVaRk1FWS9LRDg2WEZ4MU1qQXdSQ2cvT2x4Y2RVUTRNMFJjWEhWRVJESTFmRnhjZFVRNE0wVmNYSFZFUlRjNUtTay9mRnhjZFVRNE0wTW9QenBiWEZ4MVJFTXdORnhjZFVSRU56QmNYSFZFUkRjeFhGeDFSRVEzUlZ4Y2RVUkVOMFpjWEhWRVJUQXlYRngxUkVVek4xeGNkVVJHTWpGY1hIVkVSakkwTFZ4Y2RVUkdNa05jWEhWRVJqTTJYRngxUkVZM1JGeGNkVVJHT1RaY1hIVkVSamszWEZ4MVJFWTVPUzFjWEhWRVJqbENYRngxUkVZNVJWeGNkVVJHT1VaY1hIVkVSa05FWEZ4MVJFWkRSVnhjZFVSR1JEUXRYRngxUkVaRVJseGNkVVJHUmpWY1hIVkVSa1kzWFZ4Y2RVWkZNRVkvZkZ0Y1hIVkVSamcxWEZ4MVJFWkRNbHhjZFVSR1F6ZGRLRDg2WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRLVDk4VzF4Y2RVUkdRelJjWEhWRVJrTkJYU2cvT2x4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYU2svS0Q4NlhGeDFNakF3UkZ0Y1hIVXlOalF3WEZ4MU1qWTBNbDFjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVSa05DWEZ4MVJFWkRRMTBvUHpwY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSbDE4WEZ4MVJrVXdSaWsvS0Q4NlhGeDFNakF3UkZ0Y1hIVXlOalF3WEZ4MU1qWTBNbDFjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVRME5HWEZ4MVJFUTRSVnhjZFVSRU9URXRYRngxUkVRNVFWeGNkVVJGTURGY1hIVkVSVEZCWEZ4MVJFVXlSbHhjZFVSRk16SXRYRngxUkVVek5seGNkVVJGTXpndFhGeDFSRVV6UVZ4Y2RVUkZOVEJjWEhWRVJUVXhYRngxUkVZd01DMWNYSFZFUmpJd1hGeDFSRVl5UkMxY1hIVkVSak0xWEZ4MVJFWXpOeTFjWEhWRVJqUXpYRngxUkVZME5TMWNYSFZFUmpSQlhGeDFSRVkwUXkxY1hIVkVSamREWEZ4MVJFWTNSUzFjWEhWRVJqZzBYRngxUkVZNE5pMWNYSFZFUmprelhGeDFSRVpCTUMxY1hIVkVSa014WEZ4MVJFWkROVnhjZFVSR1F6WmNYSFZFUmtNNFhGeDFSRVpET1Z4Y2RVUkdRMFl0WEZ4MVJFWkVNMXhjZFVSR1JUQXRYRngxUkVaR01GeGNkVVJHUmpndFhGeDFSRVpHUmwxOFhGeDFSRVJGTmx4Y2RVUTRNME5iWEZ4MVJFUkZPQzFjWEhWRVJFVkRYRngxUkVSRlJWeGNkVVJFUmpGY1hIVkVSRVl5WEZ4MVJFUkdORnhjZFVSRVJqWXRYRngxUkVSR1FWeGNkVVJFUmtOY1hIVkVSRVpFWEZ4MVJFUkdSbDE4WEZ4MVJFUkZOMXhjZFVRNE0wTmJYRngxUkVSRk5seGNkVVJFUlRkY1hIVkVSRVU1TFZ4Y2RVUkVSVVpjWEhWRVJFWXhMVnhjZFVSRVJqUmNYSFZFUkVZMkxWeGNkVVJFUmpsY1hIVkVSRVpDWEZ4MVJFUkdRMXhjZFVSRVJrVmNYSFZFUkVaR1hYeGNYSFZFUkVVNFhGeDFSRGd6UTF0Y1hIVkVSRVUyWEZ4MVJFUkZPRnhjZFVSRVJUbGNYSFZFUkVWQ0xWeGNkVVJFUlVWY1hIVkVSRVl3TFZ4Y2RVUkVSamRjWEhWRVJFWkJMVnhjZFVSRVJrWmRmRnhjZFVSRVJUbGNYSFZFT0RORFcxeGNkVVJFUlVGY1hIVkVSRVZEWEZ4MVJFUkZSbHhjZFVSRVJqQmNYSFZFUkVZeVhGeDFSRVJHTkZ4Y2RVUkVSa1pkZkZ4Y2RVUkVSVUZjWEhWRU9ETkRXMXhjZFVSRVJUWmNYSFZFUkVVNFhGeDFSRVJGUVZ4Y2RVUkVSVU5jWEhWRVJFVkVYRngxUkVSR055MWNYSFZFUkVaQlhYeGNYSFZFUkVWQ1hGeDFSRGd6UTF0Y1hIVkVSRVZGTFZ4Y2RVUkVSakJjWEhWRVJFWXlYRngxUkVSR05GeGNkVVJFUmpkZGZGeGNkVVJFUlVOY1hIVkVPRE5EVzF4Y2RVUkVSVFpjWEhWRVJFVTNYRngxUkVSRk9TMWNYSFZFUkVWRlhGeDFSRVJHTVMxY1hIVkVSRVl6WEZ4MVJFUkdOUzFjWEhWRVJFWkJYRngxUkVSR1ExeGNkVVJFUmtWZGZGeGNkVVJFUlVSY1hIVkVPRE5EVzF4Y2RVUkVSakJjWEhWRVJFWXlYRngxUkVSR00xeGNkVVJFUmpkY1hIVkVSRVk1WEZ4MVJFUkdRVjE4WEZ4MVJFUkZSVnhjZFVRNE0wTmJYRngxUkVSRk9DMWNYSFZFUkVWQlhGeDFSRVJHTVMxY1hIVkVSRVkwWEZ4MVJFUkdOaTFjWEhWRVJFWTVYWHhjWEhWRVJFVkdYRngxUkRnelExdGNYSFZFUkVWQlhGeDFSRVJHTWx4Y2RVUkVSalJjWEhWRVJFWTFYWHhjWEhWRVJFWXdYRngxUkRnelExdGNYSFZFUkVWQlhGeDFSRVJGUXkxY1hIVkVSRVZGWEZ4MVJFUkdNbHhjZFVSRVJqTmNYSFZFUkVZMVhGeDFSRVJHTjF4Y2RVUkVSa05jWEhWRVJFWkZYRngxUkVSR1JsMThYRngxUkVSR01WeGNkVVE0TTBOYlhGeDFSRVJGTmkxY1hIVkVSRVU0WEZ4MVJFUkZSVnhjZFVSRVJqQmNYSFZFUkVZM0xWeGNkVVJFUmtKY1hIVkVSRVpGWFh4Y1hIVkVSRVl5WEZ4MVJEZ3pRMXRjWEhWRVJFVTJYRngxUkVSRk9DMWNYSFZFUkVWRVhGeDFSRVJHTUMxY1hIVkVSRVpHWFh4Y1hIVkVSRVl6WEZ4MVJEZ3pRMXRjWEhWRVJFVTJYRngxUkVSRk9GeGNkVVJFUlVFdFhGeDFSRVJGUTF4Y2RVUkVSVVZjWEhWRVJFWXhYRngxUkVSR05GeGNkVVJFUmpWY1hIVkVSRVkzWEZ4MVJFUkdRVnhjZFVSRVJrWmRmRnhjZFVSRVJqUmNYSFZFT0RORFhGeDFSRVJHTW54Y1hIVkVSRVkxWEZ4MVJEZ3pRMXRjWEhWRVJFVTJYRngxUkVSRlFTMWNYSFZFUkVWRVhGeDFSRVJHTUMxY1hIVkVSRVl6WEZ4MVJFUkdOeTFjWEhWRVJFWTVYRngxUkVSR1ExeGNkVVJFUmtWZGZGeGNkVVJFUmpaY1hIVkVPRE5EWEZ4MVJFUkZObnhjWEhWRVJFWTNYRngxUkRnelExdGNYSFZFUkVWQlhGeDFSRVJHTkZ4Y2RVUkVSamhjWEhWRVJFWkJYRngxUkVSR1ExMThYRngxUkVSR09GeGNkVVE0TTBOYlhGeDFSRVJGTmkxY1hIVkVSRVZCWEZ4MVJFUkZReTFjWEhWRVJFWTBYRngxUkVSR055MWNYSFZFUkVZNVhGeDFSRVJHUWx4Y2RVUkVSa1F0WEZ4MVJFUkdSbDE4WEZ4MVJFUkdPVnhjZFVRNE0wTmJYRngxUkVSRk5seGNkVVJFUlRoY1hIVkVSRVU1WEZ4MVJFUkZRaTFjWEhWRVJFVkVYRngxUkVSRlJpMWNYSFZFUkVZMFhGeDFSRVJHTjF4Y2RVUkVSamxjWEhWRVJFWkNYRngxUkVSR1ExeGNkVVJFUmtaZGZGeGNkVVJFUmtGY1hIVkVPRE5EVzF4Y2RVUkVSVFpjWEhWRVJFVkRYRngxUkVSR01seGNkVVJFUmpOY1hIVkVSRVk0WEZ4MVJFUkdSVnhjZFVSRVJrWmRmRnhjZFVSRVJrSmNYSFZFT0RORFcxeGNkVVJFUlRaY1hIVkVSRVU0WEZ4MVJFUkZRVnhjZFVSRVJVTmNYSFZFUkVWRlhGeDFSRVJHTTF4Y2RVUkVSa0ZkZkZ4Y2RVUkVSa05jWEhWRU9ETkRXMXhjZFVSRVJVSmNYSFZFUkVZNFhYeGNYSFZFUkVaRVhGeDFSRGd6UTF4Y2RVUkVSakI4WEZ4MVJFUkdSVnhjZFVRNE0wTmJYRngxUkVSRlFWeGNkVVJFUmpsZGZGeGNkVVJFUmtaY1hIVkVPRE5EVzF4Y2RVUkVSVFpjWEhWRVJFWXlYRngxUkVSR1ExMThYRngxUkVZME5DZy9PbHhjZFRJd01FUmNYSFZFT0RORVhGeDFSRVpGUWlrL2ZGeGNkVVJHTkVJb1B6cGNYSFV5TURCRVhGeDFSRGd6UkZ4Y2RVUkdSVGtwUDN4Y1hIVkVSa016S0Q4NlhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkS1Q4b1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk5EQmNYSFV5TmpReVhWeGNkVVpGTUVZL0tEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGeGNkVEkzUVRGY1hIVkdSVEJHUHlrcFAzeGNYSFZFUmtZelhGeDFSa1V3Umo4b1B6cGNYSFV5TURCRUtEODZYRngxTWpaQk4xeGNkVVpGTUVZL2ZGeGNkVVE0TTBOY1hIVkVSakE0S1NrL2ZGeGNkVVJHUmpRb1B6cGNYSFV5TURCRVhGeDFNall5TUZ4Y2RVWkZNRVkvZkZ4Y2RVUkNOREJjWEhWRVF6WTNYRngxUkVJME1GeGNkVVJETmpKY1hIVkVRalF3S0Q4NlhGeDFSRU0yTlZ4Y2RVUkNOREJjWEhWRVF6WkZYRngxUkVJME1GeGNkVVJETmpkOFhGeDFSRU0zTTF4Y2RVUkNOREJjWEhWRVF6WXpYRngxUkVJME1GeGNkVVJETnpSOFhGeDFSRU0zTjF4Y2RVUkNOREJjWEhWRVF6WkRYRngxUkVJME1GeGNkVVJETnpNcFhGeDFSRUkwTUZ4Y2RVUkROMFlwUHlsOFhGeDFSRGd6UkNnL09sdGNYSFZFUXpOR1hGeDFSRU5HUkZ4Y2RVUkVORGxjWEhWRVJEUkJYRngxUkVRMlJseGNkVVJFTnpCY1hIVkVSRGN6WEZ4MVJFUTNOaTFjWEhWRVJEYzVYRngxUkVRNE4xeGNkVVJFT0VFdFhGeDFSRVE0UkZ4Y2RVUkVRVFZjWEhWRVJFRTRYRngxUkVSQ01WeGNkVVJFUWpKY1hIVkVSRUpEWEZ4MVJFUkRNaTFjWEhWRVJFTTBYRngxUkVSRU1TMWNYSFZFUkVRelhGeDFSRVJFUXkxY1hIVkVSRVJGWEZ4MVJFUkZNVnhjZFVSRVJUTmNYSFZFUkVVNFhGeDFSRVJGUmx4Y2RVUkVSak5jWEhWRVJFWkJYRngxUkVWRFFseGNkVVJGUTBRdFhGeDFSRVZEUmx4Y2RVUkZSVEF0WEZ4MVJFVkZOVnhjZFVSRlJUbGNYSFZFUlVZd1hGeDFSRVZHTTExY1hIVkdSVEJHUDN4YlhGeDFSRU0wTWx4Y2RVUkRORE5jWEhWRVF6UTJMVnhjZFVSRE5UQmNYSFZFUXpZMlhGeDFSRU0yTjF4Y2RVUkROa0l0WEZ4MVJFTTJSRnhjZFVSRE56SmNYSFZFUXpjMExWeGNkVVJETnpaY1hIVkVRemM0WEZ4MVJFTTNRMXhjZFVSRE9ETmNYSFZFUXpnMVhGeDFSRU00Umx4Y2RVUkRPVEZjWEhWRVEwRkJYRngxUkVRM1FWeGNkVVJFT1RWY1hIVkVSRGsyWEZ4MVJFVTBRMXhjZFVSRk5FWmNYSFZFUlVNd1hGeDFSRVZEUTEwb1B6cGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwwcFAzeGJYRngxUkVNMlJWeGNkVVJETnpCY1hIVkVRemN4WEZ4MVJFTTNNMXhjZFVSRE56ZGNYSFZFUXpneFhGeDFSRU00TWx4Y2RVUkRPRFpjWEhWRVF6ZzNYRngxUkVVME5TMWNYSFZFUlRRM1hGeDFSRVUwUWx4Y2RVUkZORVJjWEhWRVJUUkZYRngxUkVWQk0xeGNkVVJGUWpSY1hIVkVSVUkxWFNnL09seGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFNrL0tEODZYRngxTWpBd1JGdGNYSFV5TmpRd1hGeDFNalkwTWwxY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkRjMFhGeDFSRVE1TUYwb1B6cGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwxOFhGeDFSa1V3UmlrL2ZGdGNYSFZFUXpBd0xWeGNkVVJETURkY1hIVkVRekE1TFZ4Y2RVUkRNVFJjWEhWRVF6RTJMVnhjZFVSRE1qVmNYSFZFUXpJM0xWeGNkVVJETTBGY1hIVkVRek5ETFZ4Y2RVUkRNMFZjWEhWRVF6UXdYRngxUkVNME5GeGNkVVJETkRWY1hIVkVRelV4TFZ4Y2RVUkROalZjWEhWRVF6WkJYRngxUkVNM09TMWNYSFZFUXpkQ1hGeDFSRU0zUkMxY1hIVkVRemd3WEZ4MVJFTTRORnhjZFVSRE9EZ3RYRngxUkVNNFJWeGNkVVJET1RCY1hIVkVRemt5TFZ4Y2RVUkRRVGxjWEhWRVEwRkNMVnhjZFVSRFJrTmNYSFZFUTBaR0xWeGNkVVJFTTBSY1hIVkVSRFJDTFZ4Y2RVUkVORVZjWEhWRVJEVXdMVnhjZFVSRU5qZGNYSFZFUkVFMFhGeDFSRVJHUWkxY1hIVkVSVEpFWEZ4MVJFVXlSaTFjWEhWRVJUTTBYRngxUkVVek55MWNYSFZFUlRReFhGeDFSRVUwTTF4Y2RVUkZORFJjWEhWRVJUUTRMVnhjZFVSRk5FRmNYSFZFUlRnd0xWeGNkVVJGUVRKY1hIVkVSVUUwTFZ4Y2RVUkZRak5jWEhWRVJVSTNMVnhjZFVSRlFrWmNYSFZFUlVNeExWeGNkVVJGUXpWY1hIVkVSVVF3TFZ4Y2RVUkZSREpjWEhWRVJVUTFMVnhjZFVSRlJEZGNYSFZFUlVSRExWeGNkVVJGUkVaY1hIVkVSVVZDWEZ4MVJFVkZRMXhjZFVSRlJqUXRYRngxUkVWR1ExeGNkVVJHUlRBdFhGeDFSRVpGUWx4Y2RVUkdSakJkZkZ4Y2RVUkRNRGdvUHpwY1hIVXlNREJFWEZ4MU1rSXhRaWsvZkZ4Y2RVUkRNVFVvUHpwY1hIVXlNREJFWEZ4MVJEZ3pSVnhjZFVSRVFrRXBQM3hjWEhWRVF6STJLRDg2WEZ4MU1qQXdSQ2cvT2x4Y2RUSkNNVUo4WEZ4MVJEZ3pSRnhjZFVSRU1qVXBLVDk4WEZ4MVJFTXpRaWcvT2x4Y2RUSXdNRVJjWEhVeU56UTBYRngxUmtVd1JqOHBQM3hjWEhWRVF6UXhYRngxUmtVd1JqOG9QenBjWEhVeU1EQkVYRngxUkRnelJGeGNkVVJFUlRoY1hIVkdSVEJHUHlrL2ZGeGNkVVJETmpnb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVYRngxUkRnelJDZy9PbHhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkNrL1hGeDFSRU0yT0h4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORUtEODZXMXhjZFVSRE5qaGNYSFZFUXpZNVhWeGNkVEl3TUVSY1hIVkVPRE5FS0Q4NlhGeDFSRU0yTmlnL09seGNkVEl3TUVSY1hIVkVPRE5FWEZ4MVJFTTJOaWsvZkZ4Y2RVUkROamNvUHpwY1hIVXlNREJFWEZ4MVJEZ3pSRnRjWEhWRVF6WTJYRngxUkVNMk4xMHBQeWw4VzF4Y2RVUkRRa0pjWEhWRVEwSkRYRngxUkVReU4xeGNkVVJFTWtOY1hIVkVSVGd3WEZ4MVJFVTVNbDE4WEZ4MVJFTTJOaWcvT2x4Y2RUSXdNRVJjWEhWRU9ETkVYRngxUkVNMk5pay9mRnhjZFVSRE5qY29QenBjWEhVeU1EQkVYRngxUkRnelJGdGNYSFZFUXpZMlhGeDFSRU0yTjEwcFB5bDhYRngxUkRnelJTZy9PbHRjWEhWRVJFRkdYRngxUkVSQ1ExeGNkVVJFUWtSZEtEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkVJd0xWeGNkVVJFUWpOZEtTbDhYRngxUkRnelF5Zy9PbHhjZFVSR1JrSW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x4Y2RVUkRPRUpjWEhVeU1EQkVYRngxUkRnelJDay9YRngxUkVNMk9GeGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFh4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORVcxeGNkVVJEUWtKY1hIVkVRMEpEWEZ4MVJFUXlOMXhjZFVSRU1rTmNYSFZFUlRnd1hGeDFSRVU1TWwxOFhGeDFSRGd6UlNnL09sdGNYSFZFUkVGR1hGeDFSRVJDUTF4Y2RVUkVRa1JkS0Q4NlhGeDFNakF3UkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVSRUl3TFZ4Y2RVUkVRak5kZkZ4Y2RVUkVNVVJjWEhVeU1EQkVYRngxUkRnelJGeGNkVVJETmpoY1hIVkVPRE5EVzF4Y2RVUkdSa010WEZ4MVJFWkdSbDBwS1NrL2ZGeGNkVVJHUmtNb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVYRngxUkRnelJDZy9PbHhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkNrL1hGeDFSRU0yT0Z4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYWHhjWEhWRU9ETkRXMXhjZFVSR00wVmNYSFZFUmpjelhGeDFSRVkzUTF4Y2RVUkdPVE5jWEhWRVJrRTBYRngxUkVaQk9GeGNkVVJHUlVKY1hIVkVSa1ZFWFh4Y1hIVkVPRE5FVzF4Y2RVUkRRa0pjWEhWRVEwSkRYRngxUkVReU4xeGNkVVJFTWtOY1hIVkVSVGd3WEZ4MVJFVTVNbDE4WEZ4MVJEZ3pSU2cvT2x0Y1hIVkVSRUZHWEZ4MVJFUkNRMXhjZFVSRVFrUmRLRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnRjWEhWRVJFSXdMVnhjZFVSRVFqTmRmRnhjZFVSRU1VUmNYSFV5TURCRVhGeDFSRGd6UkZ4Y2RVUkROamhjWEhWRU9ETkRXMXhjZFVSR1JrSmNYSFZFUmtaRUxWeGNkVVJHUmtaZEtTa3BQM3hjWEhWRVJrWkVLRDg2WEZ4MU1qQXdSQ2cvT2x0Y1hIVXlOamsxWEZ4MU1qWTVObHhjZFRJM01EaGRYRngxUmtVd1JqOThYRngxTWpjMk5GeGNkVVpGTUVZL1hGeDFNakF3UkZ4Y2RVUTRNMFFvUHpwY1hIVkVRemhDWEZ4MU1qQXdSRnhjZFVRNE0wUXBQMXhjZFVSRE5qaGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwxOFhGeDFSRGd6UTF0Y1hIVkVSak5GWEZ4MVJFWTNNMXhjZFVSR04wTmNYSFZFUmprelhGeDFSRVpCTkZ4Y2RVUkdRVGhjWEhWRVJrVkNYRngxUkVaRlJGMThYRngxUkRnelJGdGNYSFZFUTBKQ1hGeDFSRU5DUTF4Y2RVUkVNamRjWEhWRVJESkRYRngxUkVVNE1GeGNkVVJGT1RKZGZGeGNkVVE0TTBVb1B6cGJYRngxUkVSQlJseGNkVVJFUWtOY1hIVkVSRUpFWFNnL09seGNkVEl3TUVSY1hIVXlOMEV4WEZ4MVJrVXdSajhwUDN4YlhGeDFSRVJDTUMxY1hIVkVSRUl6WFh4Y1hIVkVSREZFWEZ4MU1qQXdSRnhjZFVRNE0wUmNYSFZFUXpZNFhGeDFSRGd6UTF0Y1hIVkVSa1pDWEZ4MVJFWkdRMXhjZFVSR1JrVmNYSFZFUmtaR1hTa3BLVDk4WEZ4MVJFWkdSU2cvT2x4Y2RUSXdNRVFvUHpwYlhGeDFNalk1TlZ4Y2RUSTJPVFpjWEhVeU56QTRYVnhjZFVaRk1FWS9mRnhjZFRJM05qUmNYSFZHUlRCR1AxeGNkVEl3TUVSY1hIVkVPRE5FS0Q4NlhGeDFSRU00UWx4Y2RUSXdNRVJjWEhWRU9ETkVLVDljWEhWRVF6WTRYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZGZGeGNkVVE0TTBOYlhGeDFSRVl6UlZ4Y2RVUkdOek5jWEhWRVJqZERYRngxUkVZNU0xeGNkVVJHUVRSY1hIVkVSa0U0WEZ4MVJFWkZRbHhjZFVSR1JVUmRmRnhjZFVRNE0wUmJYRngxUkVOQ1FseGNkVVJEUWtOY1hIVkVSREkzWEZ4MVJFUXlRMXhjZFVSRk9EQmNYSFZFUlRreVhYeGNYSFZFT0RORktEODZXMXhjZFVSRVFVWmNYSFZFUkVKRFhGeDFSRVJDUkYwb1B6cGNYSFV5TURCRVhGeDFNamRCTVZ4Y2RVWkZNRVkvS1Q5OFcxeGNkVVJFUWpBdFhGeDFSRVJDTTExOFhGeDFSRVF4UkZ4Y2RUSXdNRVJjWEhWRU9ETkVYRngxUkVNMk9GeGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pFWEZ4MVJFWkdSbDBwS1NrL2ZGeGNkVVJHUmtZb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVYRngxUkRnelJDZy9PbHhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkNrL1hGeDFSRU0yT0Z4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYWHhjWEhWRU9ETkRXMXhjZFVSR00wVmNYSFZFUmpjelhGeDFSRVkzUTF4Y2RVUkdPVE5jWEhWRVJrRTBYRngxUkVaQk9GeGNkVVJHUlVKY1hIVkVSa1ZFWFh4Y1hIVkVPRE5FVzF4Y2RVUkRRa0pjWEhWRVEwSkRYRngxUkVReU4xeGNkVVJFTWtOY1hIVkVSVGd3WEZ4MVJFVTVNbDE4WEZ4MVJEZ3pSU2cvT2x0Y1hIVkVSRUZHWEZ4MVJFUkNRMXhjZFVSRVFrUmRLRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnRjWEhWRVJFSXdMVnhjZFVSRVFqTmRmRnhjZFVSRU1VUmNYSFV5TURCRVhGeDFSRGd6UkZ4Y2RVUkROamhjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JWMHBLU2svS1NrL2ZGeGNkVVJETmprb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVYRngxUkRnelJDZy9PbHhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkNrL1cxeGNkVVJETmpoY1hIVkVRelk1WFh4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORUtEODZXMXhjZFVSRFFrSmNYSFZFUTBKRFhGeDFSRVF5TjF4Y2RVUkVNa05jWEhWRVJUZ3dYRngxUkVVNU1sMThYRngxUkVNMk5pZy9PbHhjZFRJd01FUmNYSFZFT0RORVhGeDFSRU0yTmlrL2ZGeGNkVVJETmpjb1B6cGNYSFV5TURCRVhGeDFSRGd6UkZ0Y1hIVkVRelkyWEZ4MVJFTTJOMTBwUDN4Y1hIVkVRelk1WEZ4MU1qQXdSRnhjZFVRNE0wUW9QenBjWEhWRVF6WTJLRDg2WEZ4MU1qQXdSRnhjZFVRNE0wUmNYSFZFUXpZMktUOThYRngxUkVNMk55Zy9PbHhjZFRJd01FUmNYSFZFT0RORVcxeGNkVVJETmpaY1hIVkVRelkzWFNrL0tTbDhYRngxUkRnelJTZy9PbHRjWEhWRVJFRkdYRngxUkVSQ1ExeGNkVVJFUWtSZEtEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkVJd0xWeGNkVVJFUWpOZEtTbDhYRngxUkRnelF5Zy9PbHhjZFVSR1JrSW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFWEZ4MVJEZ3pSQ2cvT2x0Y1hIVkVRelk0WEZ4MVJFTTJPVjE4WEZ4MVJFTTRRbHhjZFRJd01FUmNYSFZFT0RORVcxeGNkVVJETmpoY1hIVkVRelk1WFNsY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSbDE4WEZ4MVJEZ3pRMXRjWEhWRVJqTkZYRngxUkVZM00xeGNkVVJHTjBOY1hIVkVSamt6WEZ4MVJFWkJORnhjZFVSR1FUaGNYSFZFUmtWQ1hGeDFSRVpGUkYxOFhGeDFSRGd6UkZ0Y1hIVkVRMEpDWEZ4MVJFTkNRMXhjZFVSRU1qZGNYSFZFUkRKRFhGeDFSRVU0TUZ4Y2RVUkZPVEpkZkZ4Y2RVUTRNMFVvUHpwYlhGeDFSRVJCUmx4Y2RVUkVRa05jWEhWRVJFSkVYU2cvT2x4Y2RUSXdNRVJjWEhVeU4wRXhYRngxUmtVd1JqOHBQM3hiWEZ4MVJFUkNNQzFjWEhWRVJFSXpYWHhjWEhWRVJERkVYRngxTWpBd1JGeGNkVVE0TTBSYlhGeDFSRU0yT0Z4Y2RVUkROamxkWEZ4MVJEZ3pRMXRjWEhWRVJrWkRMVnhjZFVSR1JrWmRLU2twUDN4Y1hIVkVSa1pES0Q4NlhGeDFNakF3UkNnL09sdGNYSFV5TmprMVhGeDFNalk1Tmx4Y2RUSTNNRGhkWEZ4MVJrVXdSajk4WEZ4MU1qYzJORnhjZFVaRk1FWS9YRngxTWpBd1JGeGNkVVE0TTBRb1B6cGJYRngxUkVNMk9GeGNkVVJETmpsZGZGeGNkVVJET0VKY1hIVXlNREJFWEZ4MVJEZ3pSRnRjWEhWRVF6WTRYRngxUkVNMk9WMHBYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZGZGeGNkVVE0TTBOYlhGeDFSRVl6UlZ4Y2RVUkdOek5jWEhWRVJqZERYRngxUkVZNU0xeGNkVVJHUVRSY1hIVkVSa0U0WEZ4MVJFWkZRbHhjZFVSR1JVUmRmRnhjZFVRNE0wUmJYRngxUkVOQ1FseGNkVVJEUWtOY1hIVkVSREkzWEZ4MVJFUXlRMXhjZFVSRk9EQmNYSFZFUlRreVhYeGNYSFZFT0RORktEODZXMXhjZFVSRVFVWmNYSFZFUkVKRFhGeDFSRVJDUkYwb1B6cGNYSFV5TURCRVhGeDFNamRCTVZ4Y2RVWkZNRVkvS1Q5OFcxeGNkVVJFUWpBdFhGeDFSRVJDTTExOFhGeDFSRVF4UkZ4Y2RUSXdNRVJjWEhWRU9ETkVXMXhjZFVSRE5qaGNYSFZFUXpZNVhWeGNkVVE0TTBOYlhGeDFSRVpHUWx4Y2RVUkdSa1F0WEZ4MVJFWkdSbDBwS1NrL2ZGeGNkVVJHUmtRb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVYRngxUkRnelJDZy9PbHRjWEhWRVF6WTRYRngxUkVNMk9WMThYRngxUkVNNFFseGNkVEl3TUVSY1hIVkVPRE5FVzF4Y2RVUkROamhjWEhWRVF6WTVYU2xjWEhWRU9ETkRXMXhjZFVSR1JrSXRYRngxUkVaR1JsMThYRngxUkRnelExdGNYSFZFUmpORlhGeDFSRVkzTTF4Y2RVUkdOME5jWEhWRVJqa3pYRngxUkVaQk5GeGNkVVJHUVRoY1hIVkVSa1ZDWEZ4MVJFWkZSRjE4WEZ4MVJEZ3pSRnRjWEhWRVEwSkNYRngxUkVOQ1ExeGNkVVJFTWpkY1hIVkVSREpEWEZ4MVJFVTRNRnhjZFVSRk9USmRmRnhjZFVRNE0wVW9QenBiWEZ4MVJFUkJSbHhjZFVSRVFrTmNYSFZFUkVKRVhTZy9PbHhjZFRJd01FUmNYSFV5TjBFeFhGeDFSa1V3Umo4cFAzeGJYRngxUkVSQ01DMWNYSFZFUkVJelhYeGNYSFZFUkRGRVhGeDFNakF3UkZ4Y2RVUTRNMFJiWEZ4MVJFTTJPRnhjZFVSRE5qbGRYRngxUkRnelExdGNYSFZFUmtaQ1hGeDFSRVpHUTF4Y2RVUkdSa1ZjWEhWRVJrWkdYU2twS1Q5OFhGeDFSRVpHUlNnL09seGNkVEl3TUVRb1B6cGJYRngxTWpZNU5WeGNkVEkyT1RaY1hIVXlOekE0WFZ4Y2RVWkZNRVkvZkZ4Y2RUSTNOalJjWEhWR1JUQkdQMXhjZFRJd01FUmNYSFZFT0RORUtEODZXMXhjZFVSRE5qaGNYSFZFUXpZNVhYeGNYSFZFUXpoQ1hGeDFNakF3UkZ4Y2RVUTRNMFJiWEZ4MVJFTTJPRnhjZFVSRE5qbGRLVnhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaR1hYeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09UTmNYSFZFUmtFMFhGeDFSRVpCT0Z4Y2RVUkdSVUpjWEhWRVJrVkVYWHhjWEhWRU9ETkVXMXhjZFVSRFFrSmNYSFZFUTBKRFhGeDFSRVF5TjF4Y2RVUkVNa05jWEhWRVJUZ3dYRngxUkVVNU1sMThYRngxUkRnelJTZy9PbHRjWEhWRVJFRkdYRngxUkVSQ1ExeGNkVVJFUWtSZEtEODZYRngxTWpBd1JGeGNkVEkzUVRGY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkVJd0xWeGNkVVJFUWpOZGZGeGNkVVJFTVVSY1hIVXlNREJFWEZ4MVJEZ3pSRnRjWEhWRVF6WTRYRngxUkVNMk9WMWNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUkZ4Y2RVUkdSa1pkS1NrcFAzeGNYSFZFUmtaR0tEODZYRngxTWpBd1JDZy9PbHRjWEhVeU5qazFYRngxTWpZNU5seGNkVEkzTURoZFhGeDFSa1V3Umo5OFhGeDFNamMyTkZ4Y2RVWkZNRVkvWEZ4MU1qQXdSRnhjZFVRNE0wUW9QenBiWEZ4MVJFTTJPRnhjZFVSRE5qbGRmRnhjZFVSRE9FSmNYSFV5TURCRVhGeDFSRGd6UkZ0Y1hIVkVRelk0WEZ4MVJFTTJPVjBwWEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRmRnhjZFVRNE0wTmJYRngxUkVZelJWeGNkVVJHTnpOY1hIVkVSamREWEZ4MVJFWTVNMXhjZFVSR1FUUmNYSFZFUmtFNFhGeDFSRVpGUWx4Y2RVUkdSVVJkZkZ4Y2RVUTRNMFJiWEZ4MVJFTkNRbHhjZFVSRFFrTmNYSFZFUkRJM1hGeDFSRVF5UTF4Y2RVUkZPREJjWEhWRVJUa3lYWHhjWEhWRU9ETkZLRDg2VzF4Y2RVUkVRVVpjWEhWRVJFSkRYRngxUkVSQ1JGMG9QenBjWEhVeU1EQkVYRngxTWpkQk1WeGNkVVpGTUVZL0tUOThXMXhjZFVSRVFqQXRYRngxUkVSQ00xMThYRngxUkVReFJGeGNkVEl3TUVSY1hIVkVPRE5FVzF4Y2RVUkROamhjWEhWRVF6WTVYVnhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaRlhTa3BLVDhwS1Q5OFhGeDFSRU0yUmlnL09seGNkVEl3TUVSYlhGeDFNalkwTUZ4Y2RUSTJOREpkWEZ4MVJrVXdSajhwUDN4Y1hIVkVSRGMxS0Q4NlhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkZkZ4Y2RVWkZNRVlwUHlnL09seGNkVEl3TUVSYlhGeDFNalkwTUZ4Y2RUSTJOREpkWEZ4MVJrVXdSajhwUDN4Y1hIVkVSVEpGS0Q4NlhGeDFNakF3UkZ4Y2RVUTRNMFJjWEhWRVEwRTRLVDk4WEZ4MVJFVXpOU2cvT2x4Y2RUSXdNRVJjWEhWRU9ETkVYRngxUkVOQlFpay9mRnhjZFVSRk16WW9QenBjWEhVeU1EQkVYRngxUkRnelExeGNkVVJHTWtKY1hIVkdSVEJHUHlrL2ZGeGNkVVJGTkRJb1B6cGNYSFV5TURCRVcxeGNkVEl4T1RSY1hIVXlNVGsxWFZ4Y2RVWkZNRVkvS1Q5OFhGeDFSRVZDTmlnL09seGNkVVE0TTBOYlhGeDFSRVpHUWkxY1hIVkVSa1pHWFNrL0tEODZYRngxTWpBd1JDZy9PbHRjWEhVeU5qUXdYRngxTWpZME1sMWNYSFZHUlRCR1B5Zy9PbHhjZFRJd01FUmNYSFV5TjBFeFhGeDFSa1V3Umo4cFAzeGNYSFV5TjBFeFhGeDFSa1V3Umo4cEtUOHBmRnhjZFVRNE0wVW9QenBiWEZ4MVJFUXdRMXhjZFVSRU1FWmNYSFZFUkRFNExWeGNkVVJFTVVaY1hIVkVSRE13TFZ4Y2RVUkVNelJjWEhWRVJETTJYRngxUkVRM04xeGNkVVJFUWpWY1hIVkVSRUkyWEZ4MVJFUkNRbHhjZFVSRVJESmNYSFZFUkVRelhGeDFSRVJFTlZ4Y2RVUkZRek10WEZ4MVJFVkROVnhjZFVSRlJqQmNYSFZFUlVZeUxWeGNkVVJGUmpoZEtEODZYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZEtUOThXMXhjZFVSRU1qWmNYSFZFUkRNMVhGeDFSRVF6TnkxY1hIVkVSRE01WEZ4MVJFUXpSRnhjZFVSRU0wVmNYSFZFUkVJNFhGeDFSRVJDT1Z4Y2RVUkVRMFJjWEhWRVJFTkdYRngxUkVSRU5GeGNkVVJFUkRZdFhGeDFSRVJFUkYwb1B6cGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwwcFB5Zy9PbHhjZFRJd01FUmJYRngxTWpZME1GeGNkVEkyTkRKZFhGeDFSa1V3Umo4cFAzeGJYRngxUkVSRVJWeGNkVVJFUkVaZEtEODZYRngxTWpBd1JGdGNYSFV5TmpRd1hGeDFNalkwTWwxY1hIVkdSVEJHUHlrL2ZGdGNYSFZFUkRCRVhGeDFSRVF3UlZ4Y2RVUkVNVEF0WEZ4MVJFUXhOMXhjZFVSRU1qQXRYRngxUkVReU5WeGNkVVJFTWpjdFhGeDFSRVF5Umx4Y2RVUkVNMEZjWEhWRVJETkdMVnhjZFVSRU5EVmNYSFZFUkRRM0xWeGNkVVJFTnpaY1hIVkVSRGM0TFZ4Y2RVUkVRalJjWEhWRVJFSTNYRngxUkVSQ1FWeGNkVVJFUWtNdFhGeDFSRVJEUTF4Y2RVUkVSREJjWEhWRVJFVXdMVnhjZFVSRVJrWmNYSFZFUlRjd0xWeGNkVVJGTjBOY1hIVkVSVGd3TFZ4Y2RVUkZPRGxjWEhWRVJUaEdMVnhjZFVSRlF6SmNYSFZFUlVNMlhGeDFSRVZEUlMxY1hIVkVSVVJEWEZ4MVJFVkVSaTFjWEhWRVJVVTVYWHhjWEhWRVJETkRLRDg2WEZ4MU1qQXdSRnRjWEhVeU5qUXdYRngxTWpZME1sMWNYSFZHUlRCR1AzeGNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUmwwcFAzeGNYSFZFUkVORktEODZYRngxUkRnelExdGNYSFZFUmtaQ0xWeGNkVVJHUmtaZEtUOG9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJOREJjWEhVeU5qUXlYVnhjZFVaRk1FWS9LRDg2WEZ4MU1qQXdSRnhjZFRJM1FURmNYSFZHUlRCR1B5ay9mRnhjZFRJM1FURmNYSFZHUlRCR1B5a3BQM3hjWEhWRVJFUXhLRDg2WEZ4MU1qQXdSQ2cvT2x0Y1hIVXlOamsxWEZ4MU1qWTVObHhjZFRJM01EaGRYRngxUmtVd1JqOThYRngxUkRnelExdGNYSFZFUmpORlhGeDFSRVkzTTF4Y2RVUkdOME5jWEhWRVJqZzBYRngxUkVZNU0xeGNkVVJHUVRSY1hIVkVSa0U0WEZ4MVJFWkZRbHhjZFVSR1JVUmRmRnhjZFVRNE0wUmJYRngxUkVOQ1FseGNkVVJEUWtOY1hIVkVSREkzWEZ4MVJFUXlRMXhjZFVSRk9EQmNYSFZFUlRreVhYeGNYSFZFT0RORktEODZXMXhjZFVSRVFVWmNYSFZFUkVKRFhGeDFSRVJDUkYwb1B6cGNYSFV5TURCRVhGeDFNamRCTVZ4Y2RVWkZNRVkvS1Q5OFcxeGNkVVJFUWpBdFhGeDFSRVJDTTExOFhGeDFSRVF4UkZ4Y2RUSXdNRVJjWEhWRU9ETkZYRngxUkVSRU1YeGNYSFZFUkVReFhGeDFNakF3UkZ4Y2RVUTRNMFZjWEhWRVJFUXlLRDg2WEZ4MU1qQXdSRnhjZFVRNE0wVmNYSFZFUkVReUtUOThYRngxUkVSRU1pZy9PbHhjZFRJd01FUmNYSFZFT0RORlhGeDFSRVJFTWlrL0tTbDhYRngxUkRnelF5Zy9PbHhjZFVSR1JrSW9QenBjWEhVeU1EQkVLRDg2VzF4Y2RUSTJPVFZjWEhVeU5qazJYRngxTWpjd09GMWNYSFZHUlRCR1AzeGNYSFV5TnpZMFhGeDFSa1V3Umo5Y1hIVXlNREJFS0Q4NlhGeDFSRGd6UkZ4Y2RVUkRPRUpjWEhVeU1EQkVLVDljWEhWRU9ETkZYRngxUkVSRU1WeGNkVVE0TTBOYlhGeDFSRVpHUXkxY1hIVkVSa1pHWFh4Y1hIVkVPRE5EVzF4Y2RVUkdNMFZjWEhWRVJqY3pYRngxUkVZM1ExeGNkVVJHT0RSY1hIVkVSamt6WEZ4MVJFWkJORnhjZFVSR1FUaGNYSFZFUmtWQ1hGeDFSRVpGUkYxOFhGeDFSRGd6UkZ0Y1hIVkVRMEpDWEZ4MVJFTkNRMXhjZFVSRU1qZGNYSFZFUkRKRFhGeDFSRVU0TUZ4Y2RVUkZPVEpkZkZ4Y2RVUTRNMFVvUHpwYlhGeDFSRVJCUmx4Y2RVUkVRa05jWEhWRVJFSkVYU2cvT2x4Y2RUSXdNRVJjWEhVeU4wRXhYRngxUmtVd1JqOHBQM3hiWEZ4MVJFUkNNQzFjWEhWRVJFSXpYWHhjWEhWRVJERkVYRngxTWpBd1JGeGNkVVE0TTBWY1hIVkVSRVF4WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrWmRLU2twUDN4Y1hIVkVSa1pES0Q4NlhGeDFNakF3UkNnL09sdGNYSFV5TmprMVhGeDFNalk1Tmx4Y2RUSTNNRGhkWEZ4MVJrVXdSajk4WEZ4MU1qYzJORnhjZFVaRk1FWS9YRngxTWpBd1JDZy9PbHhjZFVRNE0wUmNYSFZFUXpoQ1hGeDFNakF3UkNrL1hGeDFSRGd6UlZ4Y2RVUkVSREZjWEhWRU9ETkRXMXhjZFVSR1JrSmNYSFZFUmtaRUxWeGNkVVJHUmtaZGZGeGNkVVE0TTBOYlhGeDFSRVl6UlZ4Y2RVUkdOek5jWEhWRVJqZERYRngxUkVZNE5GeGNkVVJHT1ROY1hIVkVSa0UwWEZ4MVJFWkJPRnhjZFVSR1JVSmNYSFZFUmtWRVhYeGNYSFZFT0RORVcxeGNkVVJEUWtKY1hIVkVRMEpEWEZ4MVJFUXlOMXhjZFVSRU1rTmNYSFZFUlRnd1hGeDFSRVU1TWwxOFhGeDFSRGd6UlNnL09sdGNYSFZFUkVGR1hGeDFSRVJDUTF4Y2RVUkVRa1JkS0Q4NlhGeDFNakF3UkZ4Y2RUSTNRVEZjWEhWR1JUQkdQeWsvZkZ0Y1hIVkVSRUl3TFZ4Y2RVUkVRak5kZkZ4Y2RVUkVNVVJjWEhVeU1EQkVYRngxUkRnelJWeGNkVVJFUkRGY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSbDBwS1NrL2ZGeGNkVVJHUmtRb1B6cGNYSFV5TURCRUtEODZXMXhjZFRJMk9UVmNYSFV5TmprMlhGeDFNamN3T0YxY1hIVkdSVEJHUDN4Y1hIVXlOelkwWEZ4MVJrVXdSajljWEhVeU1EQkVLRDg2WEZ4MVJEZ3pSRnhjZFVSRE9FSmNYSFV5TURCRUtUOWNYSFZFT0RORlhGeDFSRVJFTVZ4Y2RVUTRNME5iWEZ4MVJFWkdRbHhjZFVSR1JrTmNYSFZFUmtaRlhGeDFSRVpHUmwxOFhGeDFSRGd6UTF0Y1hIVkVSak5GWEZ4MVJFWTNNMXhjZFVSR04wTmNYSFZFUmpnMFhGeDFSRVk1TTF4Y2RVUkdRVFJjWEhWRVJrRTRYRngxUkVaRlFseGNkVVJHUlVSZGZGeGNkVVE0TTBSYlhGeDFSRU5DUWx4Y2RVUkRRa05jWEhWRVJESTNYRngxUkVReVExeGNkVVJGT0RCY1hIVkVSVGt5WFh4Y1hIVkVPRE5GS0Q4NlcxeGNkVVJFUVVaY1hIVkVSRUpEWEZ4MVJFUkNSRjBvUHpwY1hIVXlNREJFWEZ4MU1qZEJNVnhjZFVaRk1FWS9LVDk4VzF4Y2RVUkVRakF0WEZ4MVJFUkNNMTE4WEZ4MVJFUXhSRnhjZFRJd01FUmNYSFZFT0RORlhGeDFSRVJFTVZ4Y2RVUTRNME5iWEZ4MVJFWkdRaTFjWEhWRVJrWkdYU2twS1Q5OFhGeDFSRVpHUlNnL09seGNkVEl3TUVRb1B6cGJYRngxTWpZNU5WeGNkVEkyT1RaY1hIVXlOekE0WFZ4Y2RVWkZNRVkvZkZ4Y2RUSTNOalJjWEhWR1JUQkdQMXhjZFRJd01FUW9QenBjWEhWRU9ETkVYRngxUkVNNFFseGNkVEl3TUVRcFAxeGNkVVE0TTBWY1hIVkVSRVF4WEZ4MVJEZ3pRMXRjWEhWRVJrWkNMVnhjZFVSR1JrUmNYSFZFUmtaR1hYeGNYSFZFT0RORFcxeGNkVVJHTTBWY1hIVkVSamN6WEZ4MVJFWTNRMXhjZFVSR09EUmNYSFZFUmprelhGeDFSRVpCTkZ4Y2RVUkdRVGhjWEhWRVJrVkNYRngxUkVaRlJGMThYRngxUkRnelJGdGNYSFZFUTBKQ1hGeDFSRU5DUTF4Y2RVUkVNamRjWEhWRVJESkRYRngxUkVVNE1GeGNkVVJGT1RKZGZGeGNkVVE0TTBVb1B6cGJYRngxUkVSQlJseGNkVVJFUWtOY1hIVkVSRUpFWFNnL09seGNkVEl3TUVSY1hIVXlOMEV4WEZ4MVJrVXdSajhwUDN4YlhGeDFSRVJDTUMxY1hIVkVSRUl6WFh4Y1hIVkVSREZFWEZ4MU1qQXdSRnhjZFVRNE0wVmNYSFZFUkVReFhGeDFSRGd6UTF0Y1hIVkVSa1pDTFZ4Y2RVUkdSa1pkS1NrcFAzeGNYSFZFUmtaR0tEODZYRngxTWpBd1JDZy9PbHRjWEhVeU5qazFYRngxTWpZNU5seGNkVEkzTURoZFhGeDFSa1V3Umo5OFhGeDFNamMyTkZ4Y2RVWkZNRVkvWEZ4MU1qQXdSQ2cvT2x4Y2RVUTRNMFJjWEhWRVF6aENYRngxTWpBd1JDay9YRngxUkRnelJWeGNkVVJFUkRGY1hIVkVPRE5EVzF4Y2RVUkdSa0l0WEZ4MVJFWkdSVjE4WEZ4MVJEZ3pRMXRjWEhWRVJqTkZYRngxUkVZM00xeGNkVVJHTjBOY1hIVkVSamcwWEZ4MVJFWTVNMXhjZFVSR1FUUmNYSFZFUmtFNFhGeDFSRVpGUWx4Y2RVUkdSVVJkZkZ4Y2RVUTRNMFJiWEZ4MVJFTkNRbHhjZFVSRFFrTmNYSFZFUkRJM1hGeDFSRVF5UTF4Y2RVUkZPREJjWEhWRVJUa3lYWHhjWEhWRU9ETkZLRDg2VzF4Y2RVUkVRVVpjWEhWRVJFSkRYRngxUkVSQ1JGMG9QenBjWEhVeU1EQkVYRngxTWpkQk1WeGNkVVpGTUVZL0tUOThXMXhjZFVSRVFqQXRYRngxUkVSQ00xMThYRngxUkVReFJGeGNkVEl3TUVSY1hIVkVPRE5GWEZ4MVJFUkVNVnhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaR1hTa3BLVDhwS1Q5OFhGeDFSRVZHTVNnL09seGNkVVE0TTBNb1B6cGNYSFZFUmtaQ0tEODZYRngxTWpBd1JGeGNkVVE0TTBWY1hIVkVSVVl5WEZ4MVJEZ3pRMXRjWEhWRVJrWkRMVnhjZFVSR1JrWmRLVDk4WEZ4MVJFWkdReWcvT2x4Y2RUSXdNRVJjWEhWRU9ETkZYRngxUkVWR01seGNkVVE0TTBOYlhGeDFSRVpHUWx4Y2RVUkdSa1F0WEZ4MVJFWkdSbDBwUDN4Y1hIVkVSa1pFS0Q4NlhGeDFNakF3UkZ4Y2RVUTRNMFZjWEhWRVJVWXlYRngxUkRnelExdGNYSFZFUmtaQ1hGeDFSRVpHUTF4Y2RVUkdSa1ZjWEhWRVJrWkdYU2svZkZ4Y2RVUkdSa1VvUHpwY1hIVXlNREJFWEZ4MVJEZ3pSVnhjZFVSRlJqSmNYSFZFT0RORFcxeGNkVVJHUmtJdFhGeDFSRVpHUkZ4Y2RVUkdSa1pkS1Q5OFhGeDFSRVpHUmlnL09seGNkVEl3TUVSY1hIVkVPRE5GWEZ4MVJFVkdNbHhjZFVRNE0wTmJYRngxUkVaR1FpMWNYSFZFUmtaRlhTay9LU2svS1M5bk8xeHVmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5Qm5aWFJHYVd4bFZHbDBiR1VzSUc1dmNtMWhiR2w2WlVobFlXUmxja1p2Y2t4cGJtc2dmU0JtY205dElGd2lkWFJwYkhNdmJtOXliV0ZzYVhwbGNuTmNJanRjYmx4dUx5b3FJRlJvWlNCUFluTnBaR2xoYmlBbmJHbHVheWNzSUhWelpXUWdabTl5SUhWdWFYRjFaV3g1SUdSbGMyTnlhV0pwYm1jZ1lTQm1hV3hsTENCb1pXRmtaWElzSUc5eUlHSnNiMk5yTGx4dUlDb2dRR2R5YjNWd0lFTnZiVzF2YmlCVWVYQmxjMXh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVEdsdWF5QjdYRzRnSUNBZ0x5b3FJRlJvWlNCbWFXeGxJSEJoZEdnZ2RHaHBjeUJzYVc1cklIQnZhVzUwY3lCMGJ5NGdLaTljYmlBZ0lDQndkV0pzYVdNZ2NHRjBhRG9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJVYUdVZ1pHbHpjR3hoZVNCdVlXMWxJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQjBhR1VnYkdsdWF5NGdLaTljYmlBZ0lDQndkV0pzYVdNZ1pHbHpjR3hoZVQ4NklITjBjbWx1Wnp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJR0pzYjJOcklFbEVJRzl5SUdobFlXUmxjaUIwYUdseklHeHBibXNnY0c5cGJuUnpJSFJ2SUhkcGRHaHBiaUJoSUdacGJHVXNJR2xtSUhKbGJHVjJZVzUwTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUJ6ZFdKd1lYUm9Qem9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJKY3lCMGFHbHpJR3hwYm1zZ1lXNGdaVzFpWldSa1pXUWdiR2x1YXlBb2IyWWdabTl5YlNBbklWdGJhR1ZzYkc5ZFhTY3BQeUFxTDF4dUlDQWdJSEIxWW14cFl5QmxiV0psWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSFI1Y0dVZ2IyWWdkR2hwY3lCc2FXNXJMQ0IzYUdsamFDQmtaWFJsY20xcGJtVnpJSGRvWVhRZ0ozTjFZbkJoZEdnbklISmxabVZ5Y3lCMGJ5d2dhV1lnWVc1NWRHaHBibWN1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSFI1Y0dVNklGd2labWxzWlZ3aUlId2dYQ0pvWldGa1pYSmNJaUI4SUZ3aVlteHZZMnRjSWp0Y2JseHVJQ0FnSUM4cUtpQkRjbVZoZEdVZ1lTQnNhVzVySUhSdklHRWdjM0JsWTJsbWFXTWdabWxzWlM0Z0tpOWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR1pwYkdVb2NHRjBhRG9nYzNSeWFXNW5MQ0JsYldKbFpEb2dZbTl2YkdWaGJpQTlJR1poYkhObExDQmthWE53YkdGNVB6b2djM1J5YVc1bktUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUR2x1YXloN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnWlcxaVpXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCa2FYTndiR0Y1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1ZpY0dGMGFEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nWENKbWFXeGxYQ0lzWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkpibVpsY2lCMGFHVWdkSGx3WlNCdlppQjBhR1VnYkdsdWF5Qm1jbTl0SUhSb1pTQm1kV3hzSUdsdWRHVnlibUZzSUd4cGJtc2djR0YwYUM0Z0tpOWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR2x1Wm1WeUtHeHBibXR3WVhSb09pQnpkSEpwYm1jc0lHVnRZbVZrT2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlVzSUdScGMzQnNZWGsvT2lCemRISnBibWNwT2lCTWFXNXJJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHBibXR3WVhSb0xtbHVZMngxWkdWektGd2lJMTVjSWlrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQnpjR3hwZENBOUlHeHBibXR3WVhSb0xuTndiR2wwS0Z3aUkxNWNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1RHbHVheTVpYkc5amF5aHpjR3hwZEZzd1hTd2djM0JzYVhSYk1WMHNJR1Z0WW1Wa0xDQmthWE53YkdGNUtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hzYVc1cmNHRjBhQzVwYm1Oc2RXUmxjeWhjSWlOY0lpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J6Y0d4cGRDQTlJR3hwYm10d1lYUm9Mbk53YkdsMEtGd2lJMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQk1hVzVyTG1obFlXUmxjaWh6Y0d4cGRGc3dYU3dnYzNCc2FYUmJNVjBzSUdWdFltVmtMQ0JrYVhOd2JHRjVLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSEpsZEhWeWJpQk1hVzVyTG1acGJHVW9iR2x1YTNCaGRHZ3NJR1Z0WW1Wa0xDQmthWE53YkdGNUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRM0psWVhSbElHRWdiR2x1YXlCMGJ5QmhJSE53WldOcFptbGpJR1pwYkdVZ1lXNWtJR2hsWVdSbGNpQnBiaUIwYUdGMElHWnBiR1V1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSE4wWVhScFl5Qm9aV0ZrWlhJb2NHRjBhRG9nYzNSeWFXNW5MQ0JvWldGa1pYSTZJSE4wY21sdVp5d2daVzFpWldRL09pQmliMjlzWldGdUxDQmthWE53YkdGNVB6b2djM1J5YVc1bktUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lDOHZJRWhsWVdSbGNuTWdibVZsWkNCMGJ5QmlaU0J1YjNKdFlXeHBlbVZrSUhSdklHRnNjR2hoTFc1MWJXVnlhV01nSmlCM2FYUm9JR1Y0ZEhKaElITndZV05wYm1jZ2NtVnRiM1psWkM1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk1hVzVyS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYldKbFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdScGMzQnNZWGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkV0p3WVhSb09pQnViM0p0WVd4cGVtVklaV0ZrWlhKR2IzSk1hVzVyS0dobFlXUmxjaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCY0ltaGxZV1JsY2x3aUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUTNKbFlYUmxJR0VnYkdsdWF5QjBieUJoSUhOd1pXTnBabWxqSUdacGJHVWdZVzVrSUdKc2IyTnJJR2x1SUhSb1lYUWdabWxzWlM0Z0tpOWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR0pzYjJOcktIQmhkR2c2SUhOMGNtbHVaeXdnWW14dlkydEpaRG9nYzNSeWFXNW5MQ0JsYldKbFpEODZJR0p2YjJ4bFlXNHNJR1JwYzNCc1lYay9PaUJ6ZEhKcGJtY3BPaUJNYVc1cklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJNYVc1cktIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJXSmxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnBjM0JzWVhrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZFdKd1lYUm9PaUJpYkc5amEwbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nWENKaWJHOWphMXdpTEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dURzloWkNCaElHeHBibXNnWm5KdmJTQnBkQ2R6SUhKaGR5QktVMDlPSUhKbGNISmxjMlZ1ZEdGMGFXOXVMaUFxTDF4dUlDQWdJSEIxWW14cFl5QnpkR0YwYVdNZ1puSnZiVTlpYW1WamRDaHZZbXBsWTNRNklFcHpiMjVNYVc1cktUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUR2x1YXlodlltcGxZM1FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGNtVmhkR1VnWVNCc2FXNXJJR0o1SUhCaGNuTnBibWNnYVhRbmN5QnBiblJsY21sdmNpQndZWEowSUNocGJuTnBaR1VnYjJZZ2RHaGxJQ2RiVzExZEp5a3VJQ292WEc0Z0lDQWdjSFZpYkdsaklITjBZWFJwWXlCd1lYSnpaVWx1Ym1WeUtISmhkMnhwYm1zNklITjBjbWx1WnlrNklFeHBibXNnZTF4dUlDQWdJQ0FnSUNCc1pYUWdXMnhwYm1zc0lHUnBjM0JzWVhsZElEMGdjM0JzYVhSUGJsVnVaWE5qWVhCbFpGQnBjR1VvY21GM2JHbHVheWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJNYVc1ckxtbHVabVZ5S0d4cGJtc3NJR1poYkhObExDQmthWE53YkdGNUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2NtbDJZWFJsSUdOdmJuTjBjblZqZEc5eUtHWnBaV3hrY3pvZ1VHRnlkR2xoYkR4TWFXNXJQaWtnZTF4dUlDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSFJvYVhNc0lHWnBaV3hrY3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlGVndaR0YwWlNCMGFHbHpJR3hwYm1zZ2QybDBhQ0JoSUc1bGR5QndZWFJvTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUIzYVhSb1VHRjBhQ2h3WVhSb09pQnpkSEpwYm1jcE9pQk1hVzVySUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk1hVzVyS0U5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUhSb2FYTXNJSHNnY0dGMGFDQjlLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUZKbGRIVnliaUJoSUc1bGR5QnNhVzVySUhkb2FXTm9JSEJ2YVc1MGN5QjBieUIwYUdVZ2MyRnRaU0JzYjJOaGRHbHZiaUJpZFhRZ2QybDBhQ0JoSUc1bGR5QmthWE53YkdGNUlIWmhiSFZsTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUIzYVhSb1JHbHpjR3hoZVNoa2FYTndiR0Y1UHpvZ2MzUnlhVzVuS1RvZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RHbHVheWhQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0IwYUdsekxDQjdJR1JwYzNCc1lYa2dmU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCU1pYUjFjbTRnWVNCdVpYY2diR2x1YXlCM2FHbGphQ0JvWVhNZ2RHaGxJR2RwZG1WdUlHVnRZbVZrWkdWa0lITjBZWFIxY3k0Z0tpOWNiaUFnSUNCd2RXSnNhV01nZDJsMGFFVnRZbVZrS0dWdFltVmtPaUJpYjI5c1pXRnVLVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVZ0WW1Wa0lEMDlJR1Z0WW1Wa0tTQnlaWFIxY200Z2RHaHBjenRjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFeHBibXNvVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnZEdocGN5d2dleUJsYldKbFpDQjlLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOdmJuWmxjblFnWVNCbWFXeGxJR3hwYm1zZ2FXNTBieUJoSUd4cGJtc2dkRzhnWVNCemNHVmphV1pwWXlCb1pXRmtaWEl1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSGRwZEdoSVpXRmtaWElvYUdWaFpHVnlPaUJ6ZEhKcGJtY3BPaUJNYVc1cklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFeHBibXN1YUdWaFpHVnlLSFJvYVhNdWNHRjBhQ3dnYUdWaFpHVnlMQ0IwYUdsekxtVnRZbVZrTENCMGFHbHpMbVJwYzNCc1lYa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJEYjI1MlpYSjBJR0VnWm1sc1pTQnNhVzVySUdsdWRHOGdZU0JzYVc1cklIUnZJR0VnYzNCbFkybG1hV05pSUd4dlkyc3VJQ292WEc0Z0lDQWdjSFZpYkdsaklIZHBkR2hDYkc5amF5aGliRzlqYXpvZ2MzUnlhVzVuS1RvZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJNYVc1ckxtSnNiMk5yS0hSb2FYTXVjR0YwYUN3Z1lteHZZMnNzSUhSb2FYTXVaVzFpWldRc0lIUm9hWE11WkdsemNHeGhlU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOb1pXTnJjeUJtYjNJZ2JHbHVheUJsY1hWaGJHbDBlU0FvYVM1bExpd2dkR2hoZENCMGFHVWdiR2x1YTNNZ1lYSmxJSEJ2YVc1MGFXNW5JSFJ2SUhSb1pTQnpZVzFsSUdWNFlXTjBJR3h2WTJGMGFXOXVLUzRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdaWEYxWVd4ektHOTBhR1Z5T2lCTWFXNXJLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZkR2hsY2lBOVBTQjFibVJsWm1sdVpXUWdmSHdnYjNSb1pYSWdQVDBnYm5Wc2JDa2djbVYwZFhKdUlHWmhiSE5sTzF4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJoZEdnZ1BUMGdiM1JvWlhJdWNHRjBhQ0FtSmlCMGFHbHpMblI1Y0dVZ1BUMGdiM1JvWlhJdWRIbHdaU0FtSmlCMGFHbHpMbk4xWW5CaGRHZ2dQVDBnYjNSb1pYSXVjM1ZpY0dGMGFEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRMjl1ZG1WeWRDQjBhR2x6SUd4cGJtc2dkRzhnYVhRbmN5QnRZWEpyWkc5M2JpQnlaWEJ5WlhObGJuUmhkR2x2Ymk0Z0tpOWNiaUFnSUNCd2RXSnNhV01nZEc5VGRISnBibWNvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViV0Z5YTJSdmQyNG9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUTI5dWRtVnlkQ0IwYUdseklHeHBibXNnZEc4Z1lTQnlZWGNnYjJKcVpXTjBJSGRvYVdOb0lHbHpJSE5sY21saGJHbDZZWFJwYjI0dFpuSnBaVzVrYkhrdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUhSdlQySnFaV04wS0NrNklFcHpiMjVNYVc1cklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGRHZzZJSFJvYVhNdWNHRjBhQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUhSb2FYTXVkSGx3WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4xWW5CaGRHZzZJSFJvYVhNdWMzVmljR0YwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JwYzNCc1lYazZJSFJvYVhNdVpHbHpjR3hoZVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Z0WW1Wa09pQjBhR2x6TG1WdFltVmtMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGIyNTJaWEowSUdGdWVTQnNhVzVySUdsdWRHOGdZU0JzYVc1cklIUnZJR2wwY3lCbWFXeGxMaUFxTDF4dUlDQWdJSEIxWW14cFl5QjBiMFpwYkdVb0tUb2dUR2x1YXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCTWFXNXJMbVpwYkdVb2RHaHBjeTV3WVhSb0xDQjBhR2x6TG1WdFltVmtMQ0IwYUdsekxtUnBjM0JzWVhrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkRiMjUyWlhKMElIUm9hWE1nYkdsdWF5QnBiblJ2SUdGdUlHVnRZbVZrWkdWa0lHeHBibXN1SUNvdlhHNGdJQ0FnY0hWaWJHbGpJSFJ2UlcxaVpXUW9LVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5kcGRHaEZiV0psWkNoMGNuVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUTI5dWRtVnlkQ0IwYUdseklHeHBibXNnYVc1MGJ5QmhJRzV2YmkxbGJXSmxaR1JsWkNCc2FXNXJMaUFxTDF4dUlDQWdJSEIxWW14cFl5Qm1jbTl0UlcxaVpXUW9LVG9nVEdsdWF5QjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5kcGRHaEZiV0psWkNobVlXeHpaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOdmJuWmxjblFnZEdocGN5QnNhVzVySUhSdklHMWhjbXRrYjNkdUlITnZJR2wwSUdOaGJpQmlaU0J5Wlc1a1pYSmxaQzRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdiV0Z5YTJSdmQyNG9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQWdJQ0FnYkdWMElISmxjM1ZzZENBOUlDaDBhR2x6TG1WdFltVmtJRDhnWENJaFhDSWdPaUJjSWx3aUtTQXJJRndpVzF0Y0lpQXJJSFJvYVhNdWIySnphV1JwWVc1TWFXNXJLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkQ0FyUFNCY0lueGNJanRjYmlBZ0lDQWdJQ0FnY21WemRXeDBJQ3M5SUhSb2FYTXVaR2x6Y0d4aGVVOXlSR1ZtWVhWc2RDZ3BPMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUWdLejBnWENKZFhWd2lPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlBZblJoYVc0Z2RHaGxJR1JwYzNCc1lYa2dabTl5SUhSb2FYTWdiR2x1YXlCcFppQndjbVZ6Wlc1MExDQnZjaUJ5WlhSMWNtNGdZU0J6YVcxd2JHVWdaR1ZtWVhWc2RDQmthWE53YkdGNUxpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCa2FYTndiR0Y1VDNKRVpXWmhkV3gwS0NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWthWE53YkdGNUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWthWE53YkdGNU8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElISmxjM1ZzZENBOUlHZGxkRVpwYkdWVWFYUnNaU2gwYUdsekxuQmhkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVkSGx3WlNBOVBTQmNJbWhsWVdSbGNsd2lJSHg4SUhSb2FYTXVkSGx3WlNBOVBTQmNJbUpzYjJOclhDSXBJSEpsYzNWc2RDQXJQU0JjSWlBK0lGd2lJQ3NnZEdocGN5NXpkV0p3WVhSb08xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOdmJuWmxjblFnZEdobElHbHVibVZ5SUhCaGNuUWdiMllnZEdobElHeHBibXNnZEc4Z2MyOXRaWFJvYVc1bklIUm9ZWFFnVDJKemFXUnBZVzRnWTJGdUlHOXdaVzRnTHlCMWJtUmxjbk4wWVc1a0xpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCdlluTnBaR2xoYmt4cGJtc29LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaWE5qWVhCbFpDQTlJSFJvYVhNdWNHRjBhQzV5WlhCc1lXTmxLRndpZkZ3aUxDQmNJbHhjWEZ4OFhDSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTUwZVhCbElEMDlJRndpYUdWaFpHVnlYQ0lwSUhKbGRIVnliaUJsYzJOaGNHVmtJQ3NnWENJalhDSWdLeUIwYUdsekxuTjFZbkJoZEdnL0xuSmxjR3hoWTJVb1hDSjhYQ0lzSUZ3aVhGeGNYSHhjSWlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuUjVjR1VnUFQwZ1hDSmliRzlqYTF3aUtTQnlaWFIxY200Z1pYTmpZWEJsWkNBcklGd2lJMTVjSWlBcklIUm9hWE11YzNWaWNHRjBhRDh1Y21Wd2JHRmpaU2hjSW54Y0lpd2dYQ0pjWEZ4Y2ZGd2lLVHRjYmlBZ0lDQWdJQ0FnWld4elpTQnlaWFIxY200Z1pYTmpZWEJsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1ZHaGxJSE4wY21sd2NHVmtJRzVoYldVZ2IyWWdkR2hsSUdacGJHVWdkR2hwY3lCc2FXNXJJSEJ2YVc1MGN5QjBieTRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdabWxzWlU1aGJXVW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2RsZEVacGJHVlVhWFJzWlNoMGFHbHpMbkJoZEdncE8xeHVJQ0FnSUgxY2JuMWNibHh1THlvcUlGTmxjbWxoYkdsNlpXUWdabTl5YlNCdlppQmhJR3hwYm1zdVhHNGdLaUJBYUdsa1pHVnVYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NuTnZia3hwYm1zZ2UxeHVJQ0FnSUM4cUtpQlVhR1VnWm1sc1pTQndZWFJvSUhSb2FYTWdiR2x1YXlCd2IybHVkSE1nZEc4dUlDb3ZYRzRnSUNBZ2NHRjBhRG9nYzNSeWFXNW5PMXh1SUNBZ0lDOHFLaUJVYUdVZ1pHbHpjR3hoZVNCdVlXMWxJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQjBhR1VnYkdsdWF5NGdLaTljYmlBZ0lDQmthWE53YkdGNVB6b2djM1J5YVc1bk8xeHVJQ0FnSUM4cUtpQlVhR1VnWW14dlkyc2dTVVFnYjNJZ2FHVmhaR1Z5SUhSb2FYTWdiR2x1YXlCd2IybHVkSE1nZEc4Z2QybDBhR2x1SUdFZ1ptbHNaU3dnYVdZZ2NtVnNaWFpoYm5RdUlDb3ZYRzRnSUNBZ2MzVmljR0YwYUQ4NklITjBjbWx1Wnp0Y2JpQWdJQ0F2S2lvZ1NYTWdkR2hwY3lCc2FXNXJJR0Z1SUdWdFltVmtaR1ZrSUd4cGJtc2dLRzltSUdadmNtMGdKeUZiVzJobGJHeHZYVjBuS1Q4Z0tpOWNiaUFnSUNCbGJXSmxaRG9nWW05dmJHVmhianRjYmlBZ0lDQXZLaW9nVkdobElIUjVjR1VnYjJZZ2RHaHBjeUJzYVc1ckxDQjNhR2xqYUNCa1pYUmxjbTFwYm1WeklIZG9ZWFFnSjNOMVluQmhkR2duSUhKbFptVnljeUIwYnl3Z2FXWWdZVzU1ZEdocGJtY3VJQ292WEc0Z0lDQWdkSGx3WlRvZ1hDSm1hV3hsWENJZ2ZDQmNJbWhsWVdSbGNsd2lJSHdnWENKaWJHOWphMXdpTzF4dWZWeHVYRzR2S2lvZ1UzQnNhWFFnYjI0Z2RXNWxjMk5oY0dWa0lIQnBjR1Z6SUdsdUlHRnVJR2x1Ym1WeUlHeHBibXN1WEc0Z0tpQkFhR2xrWkdWdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6Y0d4cGRFOXVWVzVsYzJOaGNHVmtVR2x3WlNoc2FXNXJPaUJ6ZEhKcGJtY3BPaUJiYzNSeWFXNW5MQ0J6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1JkSUh0Y2JpQWdJQ0JzWlhRZ2NHbHdaU0E5SUMweE8xeHVJQ0FnSUhkb2FXeGxJQ2dvY0dsd1pTQTlJR3hwYm1zdWFXNWtaWGhQWmloY0lueGNJaXdnY0dsd1pTQXJJREVwS1NBK1BTQXdLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHdhWEJsSUQ0Z01DQW1KaUJzYVc1clczQnBjR1VnTFNBeFhTQTlQU0JjSWx4Y1hGeGNJaWtnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJiYkdsdWF5NXpkV0p6ZEhKcGJtY29NQ3dnY0dsd1pTa3VjbVZ3YkdGalpTZ3ZYRnhjWEZ4Y2ZDOW5MQ0JjSW54Y0lpa3NJR3hwYm1zdWMzVmljM1J5YVc1bktIQnBjR1VnS3lBeEtWMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0c2FXNXJMbkpsY0d4aFkyVW9MMXhjWEZ4Y1hId3ZaeXdnWENKOFhDSXBMQ0IxYm1SbFptbHVaV1JkTzF4dWZWeHVJaXdnSW1OdmJuTjBJRUZNU1VGVElEMGdVM2x0WW05c0xtWnZjaWduZVdGdGJDNWhiR2xoY3ljcE8xeHVZMjl1YzNRZ1JFOURJRDBnVTNsdFltOXNMbVp2Y2lnbmVXRnRiQzVrYjJOMWJXVnVkQ2NwTzF4dVkyOXVjM1FnVFVGUUlEMGdVM2x0WW05c0xtWnZjaWduZVdGdGJDNXRZWEFuS1R0Y2JtTnZibk4wSUZCQlNWSWdQU0JUZVcxaWIyd3VabTl5S0NkNVlXMXNMbkJoYVhJbktUdGNibU52Ym5OMElGTkRRVXhCVWlBOUlGTjViV0p2YkM1bWIzSW9KM2xoYld3dWMyTmhiR0Z5SnlrN1hHNWpiMjV6ZENCVFJWRWdQU0JUZVcxaWIyd3VabTl5S0NkNVlXMXNMbk5sY1NjcE8xeHVZMjl1YzNRZ1RrOUVSVjlVV1ZCRklEMGdVM2x0WW05c0xtWnZjaWduZVdGdGJDNXViMlJsTG5SNWNHVW5LVHRjYm1OdmJuTjBJR2x6UVd4cFlYTWdQU0FvYm05a1pTa2dQVDRnSVNGdWIyUmxJQ1ltSUhSNWNHVnZaaUJ1YjJSbElEMDlQU0FuYjJKcVpXTjBKeUFtSmlCdWIyUmxXMDVQUkVWZlZGbFFSVjBnUFQwOUlFRk1TVUZUTzF4dVkyOXVjM1FnYVhORWIyTjFiV1Z1ZENBOUlDaHViMlJsS1NBOVBpQWhJVzV2WkdVZ0ppWWdkSGx3Wlc5bUlHNXZaR1VnUFQwOUlDZHZZbXBsWTNRbklDWW1JRzV2WkdWYlRrOUVSVjlVV1ZCRlhTQTlQVDBnUkU5RE8xeHVZMjl1YzNRZ2FYTk5ZWEFnUFNBb2JtOWtaU2tnUFQ0Z0lTRnViMlJsSUNZbUlIUjVjR1Z2WmlCdWIyUmxJRDA5UFNBbmIySnFaV04wSnlBbUppQnViMlJsVzA1UFJFVmZWRmxRUlYwZ1BUMDlJRTFCVUR0Y2JtTnZibk4wSUdselVHRnBjaUE5SUNodWIyUmxLU0E5UGlBaElXNXZaR1VnSmlZZ2RIbHdaVzltSUc1dlpHVWdQVDA5SUNkdlltcGxZM1FuSUNZbUlHNXZaR1ZiVGs5RVJWOVVXVkJGWFNBOVBUMGdVRUZKVWp0Y2JtTnZibk4wSUdselUyTmhiR0Z5SUQwZ0tHNXZaR1VwSUQwK0lDRWhibTlrWlNBbUppQjBlWEJsYjJZZ2JtOWtaU0E5UFQwZ0oyOWlhbVZqZENjZ0ppWWdibTlrWlZ0T1QwUkZYMVJaVUVWZElEMDlQU0JUUTBGTVFWSTdYRzVqYjI1emRDQnBjMU5sY1NBOUlDaHViMlJsS1NBOVBpQWhJVzV2WkdVZ0ppWWdkSGx3Wlc5bUlHNXZaR1VnUFQwOUlDZHZZbXBsWTNRbklDWW1JRzV2WkdWYlRrOUVSVjlVV1ZCRlhTQTlQVDBnVTBWUk8xeHVablZ1WTNScGIyNGdhWE5EYjJ4c1pXTjBhVzl1S0c1dlpHVXBJSHRjYmlBZ0lDQnBaaUFvYm05a1pTQW1KaUIwZVhCbGIyWWdibTlrWlNBOVBUMGdKMjlpYW1WamRDY3BYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9ibTlrWlZ0T1QwUkZYMVJaVUVWZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRTFCVURwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1UwVlJPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVmVnh1Wm5WdVkzUnBiMjRnYVhOT2IyUmxLRzV2WkdVcElIdGNiaUFnSUNCcFppQW9ibTlrWlNBbUppQjBlWEJsYjJZZ2JtOWtaU0E5UFQwZ0oyOWlhbVZqZENjcFhHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2JtOWtaVnRPVDBSRlgxUlpVRVZkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElFRk1TVUZUT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCTlFWQTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRk5EUVV4QlVqcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdVMFZST2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1ZlZ4dVkyOXVjM1FnYUdGelFXNWphRzl5SUQwZ0tHNXZaR1VwSUQwK0lDaHBjMU5qWVd4aGNpaHViMlJsS1NCOGZDQnBjME52Ykd4bFkzUnBiMjRvYm05a1pTa3BJQ1ltSUNFaGJtOWtaUzVoYm1Ob2IzSTdYRzVjYm1WNGNHOXlkQ0I3SUVGTVNVRlRMQ0JFVDBNc0lFMUJVQ3dnVGs5RVJWOVVXVkJGTENCUVFVbFNMQ0JUUTBGTVFWSXNJRk5GVVN3Z2FHRnpRVzVqYUc5eUxDQnBjMEZzYVdGekxDQnBjME52Ykd4bFkzUnBiMjRzSUdselJHOWpkVzFsYm5Rc0lHbHpUV0Z3TENCcGMwNXZaR1VzSUdselVHRnBjaXdnYVhOVFkyRnNZWElzSUdselUyVnhJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dhWE5FYjJOMWJXVnVkQ3dnYVhOT2IyUmxMQ0JwYzFCaGFYSXNJR2x6UTI5c2JHVmpkR2x2Yml3Z2FYTk5ZWEFzSUdselUyVnhMQ0JwYzFOallXeGhjaXdnYVhOQmJHbGhjeUI5SUdaeWIyMGdKeTR2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1uTzF4dVhHNWpiMjV6ZENCQ1VrVkJTeUE5SUZONWJXSnZiQ2duWW5KbFlXc2dkbWx6YVhRbktUdGNibU52Ym5OMElGTkxTVkFnUFNCVGVXMWliMndvSjNOcmFYQWdZMmhwYkdSeVpXNG5LVHRjYm1OdmJuTjBJRkpGVFU5V1JTQTlJRk41YldKdmJDZ25jbVZ0YjNabElHNXZaR1VuS1R0Y2JpOHFLbHh1SUNvZ1FYQndiSGtnWVNCMmFYTnBkRzl5SUhSdklHRnVJRUZUVkNCdWIyUmxJRzl5SUdSdlkzVnRaVzUwTGx4dUlDcGNiaUFxSUZkaGJHdHpJSFJvY205MVoyZ2dkR2hsSUhSeVpXVWdLR1JsY0hSb0xXWnBjbk4wS1NCemRHRnlkR2x1WnlCbWNtOXRJR0J1YjJSbFlDd2dZMkZzYkdsdVp5QmhYRzRnS2lCZ2RtbHphWFJ2Y21BZ1puVnVZM1JwYjI0Z2QybDBhQ0IwYUhKbFpTQmhjbWQxYldWdWRITTZYRzRnS2lBZ0lDMGdZR3RsZVdBNklFWnZjaUJ6WlhGMVpXNWpaU0IyWVd4MVpYTWdZVzVrSUcxaGNDQmdVR0ZwY21Bc0lIUm9aU0J1YjJSbEozTWdhVzVrWlhnZ2FXNGdkR2hsWEc0Z0tpQWdJQ0FnWTI5c2JHVmpkR2x2Ymk0Z1YybDBhR2x1SUdFZ1lGQmhhWEpnTENCZ0oydGxlU2RnSUc5eUlHQW5kbUZzZFdVbllDd2dZMjl5Y21WemNHOXVaR2x1WjJ4NUxseHVJQ29nSUNBZ0lHQnVkV3hzWUNCbWIzSWdkR2hsSUhKdmIzUWdibTlrWlM1Y2JpQXFJQ0FnTFNCZ2JtOWtaV0E2SUZSb1pTQmpkWEp5Wlc1MElHNXZaR1V1WEc0Z0tpQWdJQzBnWUhCaGRHaGdPaUJVYUdVZ1lXNWpaWE4wY25rZ2IyWWdkR2hsSUdOMWNuSmxiblFnYm05a1pTNWNiaUFxWEc0Z0tpQlVhR1VnY21WMGRYSnVJSFpoYkhWbElHOW1JSFJvWlNCMmFYTnBkRzl5SUcxaGVTQmlaU0IxYzJWa0lIUnZJR052Ym5SeWIyd2dkR2hsSUhSeVlYWmxjbk5oYkRwY2JpQXFJQ0FnTFNCZ2RXNWtaV1pwYm1Wa1lDQW9aR1ZtWVhWc2RDazZJRVJ2SUc1dmRHaHBibWNnWVc1a0lHTnZiblJwYm5WbFhHNGdLaUFnSUMwZ1lIWnBjMmwwTGxOTFNWQmdPaUJFYnlCdWIzUWdkbWx6YVhRZ2RHaGxJR05vYVd4a2NtVnVJRzltSUhSb2FYTWdibTlrWlN3Z1kyOXVkR2x1ZFdVZ2QybDBhQ0J1WlhoMFhHNGdLaUFnSUNBZ2MybGliR2x1WjF4dUlDb2dJQ0F0SUdCMmFYTnBkQzVDVWtWQlMyQTZJRlJsY20xcGJtRjBaU0IwY21GMlpYSnpZV3dnWTI5dGNHeGxkR1ZzZVZ4dUlDb2dJQ0F0SUdCMmFYTnBkQzVTUlUxUFZrVmdPaUJTWlcxdmRtVWdkR2hsSUdOMWNuSmxiblFnYm05a1pTd2dkR2hsYmlCamIyNTBhVzUxWlNCM2FYUm9JSFJvWlNCdVpYaDBJRzl1WlZ4dUlDb2dJQ0F0SUdCT2IyUmxZRG9nVW1Wd2JHRmpaU0IwYUdVZ1kzVnljbVZ1ZENCdWIyUmxMQ0IwYUdWdUlHTnZiblJwYm5WbElHSjVJSFpwYzJsMGFXNW5JR2wwWEc0Z0tpQWdJQzBnWUc1MWJXSmxjbUE2SUZkb2FXeGxJR2wwWlhKaGRHbHVaeUIwYUdVZ2FYUmxiWE1nYjJZZ1lTQnpaWEYxWlc1alpTQnZjaUJ0WVhBc0lITmxkQ0IwYUdVZ2FXNWtaWGhjYmlBcUlDQWdJQ0J2WmlCMGFHVWdibVY0ZENCemRHVndMaUJVYUdseklHbHpJSFZ6WldaMWJDQmxjM0JsWTJsaGJHeDVJR2xtSUhSb1pTQnBibVJsZUNCdlppQjBhR1VnWTNWeWNtVnVkRnh1SUNvZ0lDQWdJRzV2WkdVZ2FHRnpJR05vWVc1blpXUXVYRzRnS2x4dUlDb2dTV1lnWUhacGMybDBiM0pnSUdseklHRWdjMmx1WjJ4bElHWjFibU4wYVc5dUxDQnBkQ0IzYVd4c0lHSmxJR05oYkd4bFpDQjNhWFJvSUdGc2JDQjJZV3gxWlhOY2JpQXFJR1Z1WTI5MWJuUmxjbVZrSUdsdUlIUm9aU0IwY21WbExDQnBibU5zZFdScGJtY2daUzVuTGlCZ2JuVnNiR0FnZG1Gc2RXVnpMaUJCYkhSbGNtNWhkR2wyWld4NUxGeHVJQ29nYzJWd1lYSmhkR1VnZG1semFYUnZjaUJtZFc1amRHbHZibk1nYldGNUlHSmxJR1JsWm1sdVpXUWdabTl5SUdWaFkyZ2dZRTFoY0dBc0lHQlFZV2x5WUN3Z1lGTmxjV0FzWEc0Z0tpQmdRV3hwWVhOZ0lHRnVaQ0JnVTJOaGJHRnlZQ0J1YjJSbExpQlVieUJrWldacGJtVWdkR2hsSUhOaGJXVWdkbWx6YVhSdmNpQm1kVzVqZEdsdmJpQm1iM0lnYlc5eVpTQjBhR0Z1WEc0Z0tpQnZibVVnYm05a1pTQjBlWEJsTENCMWMyVWdkR2hsSUdCRGIyeHNaV04wYVc5dVlDQW9iV0Z3SUdGdVpDQnpaWEVwTENCZ1ZtRnNkV1ZnSUNodFlYQXNJSE5sY1NBbUlITmpZV3hoY2lsY2JpQXFJR0Z1WkNCZ1RtOWtaV0FnS0dGc2FXRnpMQ0J0WVhBc0lITmxjU0FtSUhOallXeGhjaWtnZEdGeVoyVjBjeTRnVDJZZ1lXeHNJSFJvWlhObExDQnZibXg1SUhSb1pTQnRiM04wWEc0Z0tpQnpjR1ZqYVdacFl5QmtaV1pwYm1Wa0lHOXVaU0IzYVd4c0lHSmxJSFZ6WldRZ1ptOXlJR1ZoWTJnZ2JtOWtaUzVjYmlBcUwxeHVablZ1WTNScGIyNGdkbWx6YVhRb2JtOWtaU3dnZG1semFYUnZjaWtnZTF4dUlDQWdJR052Ym5OMElIWnBjMmwwYjNKZklEMGdhVzVwZEZacGMybDBiM0lvZG1semFYUnZjaWs3WEc0Z0lDQWdhV1lnS0dselJHOWpkVzFsYm5Rb2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJRZ1BTQjJhWE5wZEY4b2JuVnNiQ3dnYm05a1pTNWpiMjUwWlc1MGN5d2dkbWx6YVhSdmNsOHNJRTlpYW1WamRDNW1jbVZsZW1Vb1cyNXZaR1ZkS1NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqWkNBOVBUMGdVa1ZOVDFaRktWeHVJQ0FnSUNBZ0lDQWdJQ0FnYm05a1pTNWpiMjUwWlc1MGN5QTlJRzUxYkd3N1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ2RtbHphWFJmS0c1MWJHd3NJRzV2WkdVc0lIWnBjMmwwYjNKZkxDQlBZbXBsWTNRdVpuSmxaWHBsS0Z0ZEtTazdYRzU5WEc0dkx5QlhhWFJvYjNWMElIUm9aU0JnWVhNZ2MzbHRZbTlzWUNCallYTjBjeXdnVkZNZ1pHVmpiR0Z5WlhNZ2RHaGxjMlVnYVc0Z2RHaGxJR0IyYVhOcGRHQmNiaTh2SUc1aGJXVnpjR0ZqWlNCMWMybHVaeUJnZG1GeVlDd2dZblYwSUhSb1pXNGdZMjl0Y0d4aGFXNXpJR0ZpYjNWMElIUm9ZWFFnWW1WallYVnpaVnh1THk4Z1lIVnVhWEYxWlNCemVXMWliMnhnSUcxMWMzUWdZbVVnWUdOdmJuTjBZQzVjYmk4cUtpQlVaWEp0YVc1aGRHVWdkbWx6YVhRZ2RISmhkbVZ5YzJGc0lHTnZiWEJzWlhSbGJIa2dLaTljYm5acGMybDBMa0pTUlVGTElEMGdRbEpGUVVzN1hHNHZLaW9nUkc4Z2JtOTBJSFpwYzJsMElIUm9aU0JqYUdsc1pISmxiaUJ2WmlCMGFHVWdZM1Z5Y21WdWRDQnViMlJsSUNvdlhHNTJhWE5wZEM1VFMwbFFJRDBnVTB0SlVEdGNiaThxS2lCU1pXMXZkbVVnZEdobElHTjFjbkpsYm5RZ2JtOWtaU0FxTDF4dWRtbHphWFF1VWtWTlQxWkZJRDBnVWtWTlQxWkZPMXh1Wm5WdVkzUnBiMjRnZG1semFYUmZLR3RsZVN3Z2JtOWtaU3dnZG1semFYUnZjaXdnY0dGMGFDa2dlMXh1SUNBZ0lHTnZibk4wSUdOMGNtd2dQU0JqWVd4c1ZtbHphWFJ2Y2loclpYa3NJRzV2WkdVc0lIWnBjMmwwYjNJc0lIQmhkR2dwTzF4dUlDQWdJR2xtSUNocGMwNXZaR1VvWTNSeWJDa2dmSHdnYVhOUVlXbHlLR04wY213cEtTQjdYRzRnSUNBZ0lDQWdJSEpsY0d4aFkyVk9iMlJsS0d0bGVTd2djR0YwYUN3Z1kzUnliQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyYVhOcGRGOG9hMlY1TENCamRISnNMQ0IyYVhOcGRHOXlMQ0J3WVhSb0tUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamRISnNJQ0U5UFNBbmMzbHRZbTlzSnlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORGIyeHNaV04wYVc5dUtHNXZaR1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0lEMGdUMkpxWldOMExtWnlaV1Y2WlNod1lYUm9MbU52Ym1OaGRDaHViMlJsS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1dlpHVXVhWFJsYlhNdWJHVnVaM1JvT3lBcksya3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmphU0E5SUhacGMybDBYeWhwTENCdWIyUmxMbWwwWlcxelcybGRMQ0IyYVhOcGRHOXlMQ0J3WVhSb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JR05wSUQwOVBTQW5iblZ0WW1WeUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBOUlHTnBJQzBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFTQTlQVDBnUWxKRlFVc3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJDVWtWQlN6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphU0E5UFQwZ1VrVk5UMVpGS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzV2WkdVdWFYUmxiWE11YzNCc2FXTmxLR2tzSURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwSUMwOUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6VUdGcGNpaHViMlJsS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFDQTlJRTlpYW1WamRDNW1jbVZsZW1Vb2NHRjBhQzVqYjI1allYUW9ibTlrWlNrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMnNnUFNCMmFYTnBkRjhvSjJ0bGVTY3NJRzV2WkdVdWEyVjVMQ0IyYVhOcGRHOXlMQ0J3WVhSb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpheUE5UFQwZ1FsSkZRVXNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRUpTUlVGTE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTJzZ1BUMDlJRkpGVFU5V1JTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG10bGVTQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpkaUE5SUhacGMybDBYeWduZG1Gc2RXVW5MQ0J1YjJSbExuWmhiSFZsTENCMmFYTnBkRzl5TENCd1lYUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqZGlBOVBUMGdRbEpGUVVzcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKU1JVRkxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kzWWdQVDA5SUZKRlRVOVdSU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExuWmhiSFZsSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1kzUnliRHRjYm4xY2JpOHFLbHh1SUNvZ1FYQndiSGtnWVc0Z1lYTjVibU1nZG1semFYUnZjaUIwYnlCaGJpQkJVMVFnYm05a1pTQnZjaUJrYjJOMWJXVnVkQzVjYmlBcVhHNGdLaUJYWVd4cmN5QjBhSEp2ZFdkb0lIUm9aU0IwY21WbElDaGtaWEIwYUMxbWFYSnpkQ2tnYzNSaGNuUnBibWNnWm5KdmJTQmdibTlrWldBc0lHTmhiR3hwYm1jZ1lWeHVJQ29nWUhacGMybDBiM0pnSUdaMWJtTjBhVzl1SUhkcGRHZ2dkR2h5WldVZ1lYSm5kVzFsYm5Sek9seHVJQ29nSUNBdElHQnJaWGxnT2lCR2IzSWdjMlZ4ZFdWdVkyVWdkbUZzZFdWeklHRnVaQ0J0WVhBZ1lGQmhhWEpnTENCMGFHVWdibTlrWlNkeklHbHVaR1Y0SUdsdUlIUm9aVnh1SUNvZ0lDQWdJR052Ykd4bFkzUnBiMjR1SUZkcGRHaHBiaUJoSUdCUVlXbHlZQ3dnWUNkclpYa25ZQ0J2Y2lCZ0ozWmhiSFZsSjJBc0lHTnZjbkpsYzNCdmJtUnBibWRzZVM1Y2JpQXFJQ0FnSUNCZ2JuVnNiR0FnWm05eUlIUm9aU0J5YjI5MElHNXZaR1V1WEc0Z0tpQWdJQzBnWUc1dlpHVmdPaUJVYUdVZ1kzVnljbVZ1ZENCdWIyUmxMbHh1SUNvZ0lDQXRJR0J3WVhSb1lEb2dWR2hsSUdGdVkyVnpkSEo1SUc5bUlIUm9aU0JqZFhKeVpXNTBJRzV2WkdVdVhHNGdLbHh1SUNvZ1ZHaGxJSEpsZEhWeWJpQjJZV3gxWlNCdlppQjBhR1VnZG1semFYUnZjaUJ0WVhrZ1ltVWdkWE5sWkNCMGJ5QmpiMjUwY205c0lIUm9aU0IwY21GMlpYSnpZV3c2WEc0Z0tpQWdJQzBnWUZCeWIyMXBjMlZnT2lCTmRYTjBJSEpsYzI5c2RtVWdkRzhnYjI1bElHOW1JSFJvWlNCbWIyeHNiM2RwYm1jZ2RtRnNkV1Z6WEc0Z0tpQWdJQzBnWUhWdVpHVm1hVzVsWkdBZ0tHUmxabUYxYkhRcE9pQkVieUJ1YjNSb2FXNW5JR0Z1WkNCamIyNTBhVzUxWlZ4dUlDb2dJQ0F0SUdCMmFYTnBkQzVUUzBsUVlEb2dSRzhnYm05MElIWnBjMmwwSUhSb1pTQmphR2xzWkhKbGJpQnZaaUIwYUdseklHNXZaR1VzSUdOdmJuUnBiblZsSUhkcGRHZ2dibVY0ZEZ4dUlDb2dJQ0FnSUhOcFlteHBibWRjYmlBcUlDQWdMU0JnZG1semFYUXVRbEpGUVV0Z09pQlVaWEp0YVc1aGRHVWdkSEpoZG1WeWMyRnNJR052YlhCc1pYUmxiSGxjYmlBcUlDQWdMU0JnZG1semFYUXVVa1ZOVDFaRllEb2dVbVZ0YjNabElIUm9aU0JqZFhKeVpXNTBJRzV2WkdVc0lIUm9aVzRnWTI5dWRHbHVkV1VnZDJsMGFDQjBhR1VnYm1WNGRDQnZibVZjYmlBcUlDQWdMU0JnVG05a1pXQTZJRkpsY0d4aFkyVWdkR2hsSUdOMWNuSmxiblFnYm05a1pTd2dkR2hsYmlCamIyNTBhVzUxWlNCaWVTQjJhWE5wZEdsdVp5QnBkRnh1SUNvZ0lDQXRJR0J1ZFcxaVpYSmdPaUJYYUdsc1pTQnBkR1Z5WVhScGJtY2dkR2hsSUdsMFpXMXpJRzltSUdFZ2MyVnhkV1Z1WTJVZ2IzSWdiV0Z3TENCelpYUWdkR2hsSUdsdVpHVjRYRzRnS2lBZ0lDQWdiMllnZEdobElHNWxlSFFnYzNSbGNDNGdWR2hwY3lCcGN5QjFjMlZtZFd3Z1pYTndaV05wWVd4c2VTQnBaaUIwYUdVZ2FXNWtaWGdnYjJZZ2RHaGxJR04xY25KbGJuUmNiaUFxSUNBZ0lDQnViMlJsSUdoaGN5QmphR0Z1WjJWa0xseHVJQ3BjYmlBcUlFbG1JR0IyYVhOcGRHOXlZQ0JwY3lCaElITnBibWRzWlNCbWRXNWpkR2x2Yml3Z2FYUWdkMmxzYkNCaVpTQmpZV3hzWldRZ2QybDBhQ0JoYkd3Z2RtRnNkV1Z6WEc0Z0tpQmxibU52ZFc1MFpYSmxaQ0JwYmlCMGFHVWdkSEpsWlN3Z2FXNWpiSFZrYVc1bklHVXVaeTRnWUc1MWJHeGdJSFpoYkhWbGN5NGdRV3gwWlhKdVlYUnBkbVZzZVN4Y2JpQXFJSE5sY0dGeVlYUmxJSFpwYzJsMGIzSWdablZ1WTNScGIyNXpJRzFoZVNCaVpTQmtaV1pwYm1Wa0lHWnZjaUJsWVdOb0lHQk5ZWEJnTENCZ1VHRnBjbUFzSUdCVFpYRmdMRnh1SUNvZ1lFRnNhV0Z6WUNCaGJtUWdZRk5qWVd4aGNtQWdibTlrWlM0Z1ZHOGdaR1ZtYVc1bElIUm9aU0J6WVcxbElIWnBjMmwwYjNJZ1puVnVZM1JwYjI0Z1ptOXlJRzF2Y21VZ2RHaGhibHh1SUNvZ2IyNWxJRzV2WkdVZ2RIbHdaU3dnZFhObElIUm9aU0JnUTI5c2JHVmpkR2x2Ym1BZ0tHMWhjQ0JoYm1RZ2MyVnhLU3dnWUZaaGJIVmxZQ0FvYldGd0xDQnpaWEVnSmlCelkyRnNZWElwWEc0Z0tpQmhibVFnWUU1dlpHVmdJQ2hoYkdsaGN5d2diV0Z3TENCelpYRWdKaUJ6WTJGc1lYSXBJSFJoY21kbGRITXVJRTltSUdGc2JDQjBhR1Z6WlN3Z2IyNXNlU0IwYUdVZ2JXOXpkRnh1SUNvZ2MzQmxZMmxtYVdNZ1pHVm1hVzVsWkNCdmJtVWdkMmxzYkNCaVpTQjFjMlZrSUdadmNpQmxZV05vSUc1dlpHVXVYRzRnS2k5Y2JtRnplVzVqSUdaMWJtTjBhVzl1SUhacGMybDBRWE41Ym1Nb2JtOWtaU3dnZG1semFYUnZjaWtnZTF4dUlDQWdJR052Ym5OMElIWnBjMmwwYjNKZklEMGdhVzVwZEZacGMybDBiM0lvZG1semFYUnZjaWs3WEc0Z0lDQWdhV1lnS0dselJHOWpkVzFsYm5Rb2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJRZ1BTQmhkMkZwZENCMmFYTnBkRUZ6ZVc1alh5aHVkV3hzTENCdWIyUmxMbU52Ym5SbGJuUnpMQ0IyYVhOcGRHOXlYeXdnVDJKcVpXTjBMbVp5WldWNlpTaGJibTlrWlYwcEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0dOa0lEMDlQU0JTUlUxUFZrVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxMbU52Ym5SbGJuUnpJRDBnYm5Wc2JEdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMmFYTnBkRUZ6ZVc1alh5aHVkV3hzTENCdWIyUmxMQ0IyYVhOcGRHOXlYeXdnVDJKcVpXTjBMbVp5WldWNlpTaGJYU2twTzF4dWZWeHVMeThnVjJsMGFHOTFkQ0IwYUdVZ1lHRnpJSE41YldKdmJHQWdZMkZ6ZEhNc0lGUlRJR1JsWTJ4aGNtVnpJSFJvWlhObElHbHVJSFJvWlNCZ2RtbHphWFJnWEc0dkx5QnVZVzFsYzNCaFkyVWdkWE5wYm1jZ1lIWmhjbUFzSUdKMWRDQjBhR1Z1SUdOdmJYQnNZV2x1Y3lCaFltOTFkQ0IwYUdGMElHSmxZMkYxYzJWY2JpOHZJR0IxYm1seGRXVWdjM2x0WW05c1lDQnRkWE4wSUdKbElHQmpiMjV6ZEdBdVhHNHZLaW9nVkdWeWJXbHVZWFJsSUhacGMybDBJSFJ5WVhabGNuTmhiQ0JqYjIxd2JHVjBaV3g1SUNvdlhHNTJhWE5wZEVGemVXNWpMa0pTUlVGTElEMGdRbEpGUVVzN1hHNHZLaW9nUkc4Z2JtOTBJSFpwYzJsMElIUm9aU0JqYUdsc1pISmxiaUJ2WmlCMGFHVWdZM1Z5Y21WdWRDQnViMlJsSUNvdlhHNTJhWE5wZEVGemVXNWpMbE5MU1ZBZ1BTQlRTMGxRTzF4dUx5b3FJRkpsYlc5MlpTQjBhR1VnWTNWeWNtVnVkQ0J1YjJSbElDb3ZYRzUyYVhOcGRFRnplVzVqTGxKRlRVOVdSU0E5SUZKRlRVOVdSVHRjYm1GemVXNWpJR1oxYm1OMGFXOXVJSFpwYzJsMFFYTjVibU5mS0d0bGVTd2dibTlrWlN3Z2RtbHphWFJ2Y2l3Z2NHRjBhQ2tnZTF4dUlDQWdJR052Ym5OMElHTjBjbXdnUFNCaGQyRnBkQ0JqWVd4c1ZtbHphWFJ2Y2loclpYa3NJRzV2WkdVc0lIWnBjMmwwYjNJc0lIQmhkR2dwTzF4dUlDQWdJR2xtSUNocGMwNXZaR1VvWTNSeWJDa2dmSHdnYVhOUVlXbHlLR04wY213cEtTQjdYRzRnSUNBZ0lDQWdJSEpsY0d4aFkyVk9iMlJsS0d0bGVTd2djR0YwYUN3Z1kzUnliQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyYVhOcGRFRnplVzVqWHloclpYa3NJR04wY213c0lIWnBjMmwwYjNJc0lIQmhkR2dwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JR04wY213Z0lUMDlJQ2R6ZVcxaWIyd25LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjME52Ykd4bFkzUnBiMjRvYm05a1pTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2dnUFNCUFltcGxZM1F1Wm5KbFpYcGxLSEJoZEdndVkyOXVZMkYwS0c1dlpHVXBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dibTlrWlM1cGRHVnRjeTVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOcElEMGdZWGRoYVhRZ2RtbHphWFJCYzNsdVkxOG9hU3dnYm05a1pTNXBkR1Z0YzF0cFhTd2dkbWx6YVhSdmNpd2djR0YwYUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmphU0E5UFQwZ0oyNTFiV0psY2ljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2tnUFNCamFTQXRJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTJrZ1BUMDlJRUpTUlVGTEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdRbEpGUVVzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kya2dQVDA5SUZKRlRVOVdSU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG1sMFpXMXpMbk53YkdsalpTaHBMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0F0UFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBjMUJoYVhJb2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoZEdnZ1BTQlBZbXBsWTNRdVpuSmxaWHBsS0hCaGRHZ3VZMjl1WTJGMEtHNXZaR1VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTnJJRDBnWVhkaGFYUWdkbWx6YVhSQmMzbHVZMThvSjJ0bGVTY3NJRzV2WkdVdWEyVjVMQ0IyYVhOcGRHOXlMQ0J3WVhSb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpheUE5UFQwZ1FsSkZRVXNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRUpTUlVGTE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTJzZ1BUMDlJRkpGVFU5V1JTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG10bGVTQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpkaUE5SUdGM1lXbDBJSFpwYzJsMFFYTjVibU5mS0NkMllXeDFaU2NzSUc1dlpHVXVkbUZzZFdVc0lIWnBjMmwwYjNJc0lIQmhkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOMklEMDlQU0JDVWtWQlN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1FsSkZRVXM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGpkaUE5UFQwZ1VrVk5UMVpGS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1dlpHVXVkbUZzZFdVZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmpkSEpzTzF4dWZWeHVablZ1WTNScGIyNGdhVzVwZEZacGMybDBiM0lvZG1semFYUnZjaWtnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZG1semFYUnZjaUE5UFQwZ0oyOWlhbVZqZENjZ0ppWmNiaUFnSUNBZ0lDQWdLSFpwYzJsMGIzSXVRMjlzYkdWamRHbHZiaUI4ZkNCMmFYTnBkRzl5TGs1dlpHVWdmSHdnZG1semFYUnZjaTVXWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNWhjM05wWjI0b2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnUVd4cFlYTTZJSFpwYzJsMGIzSXVUbTlrWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRTFoY0RvZ2RtbHphWFJ2Y2k1T2IyUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1UyTmhiR0Z5T2lCMmFYTnBkRzl5TGs1dlpHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCVFpYRTZJSFpwYzJsMGIzSXVUbTlrWlZ4dUlDQWdJQ0FnSUNCOUxDQjJhWE5wZEc5eUxsWmhiSFZsSUNZbUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUUxaGNEb2dkbWx6YVhSdmNpNVdZV3gxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRk5qWVd4aGNqb2dkbWx6YVhSdmNpNVdZV3gxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRk5sY1RvZ2RtbHphWFJ2Y2k1V1lXeDFaVnh1SUNBZ0lDQWdJQ0I5TENCMmFYTnBkRzl5TGtOdmJHeGxZM1JwYjI0Z0ppWWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1RXRndPaUIyYVhOcGRHOXlMa052Ykd4bFkzUnBiMjRzWEc0Z0lDQWdJQ0FnSUNBZ0lDQlRaWEU2SUhacGMybDBiM0l1UTI5c2JHVmpkR2x2Ymx4dUlDQWdJQ0FnSUNCOUxDQjJhWE5wZEc5eUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFpwYzJsMGIzSTdYRzU5WEc1bWRXNWpkR2x2YmlCallXeHNWbWx6YVhSdmNpaHJaWGtzSUc1dlpHVXNJSFpwYzJsMGIzSXNJSEJoZEdncElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlIWnBjMmwwYjNJZ1BUMDlJQ2RtZFc1amRHbHZiaWNwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyYVhOcGRHOXlLR3RsZVN3Z2JtOWtaU3dnY0dGMGFDazdYRzRnSUNBZ2FXWWdLR2x6VFdGd0tHNXZaR1VwS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZG1semFYUnZjaTVOWVhBL0xpaHJaWGtzSUc1dlpHVXNJSEJoZEdncE8xeHVJQ0FnSUdsbUlDaHBjMU5sY1NodWIyUmxLU2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFpwYzJsMGIzSXVVMlZ4UHk0b2EyVjVMQ0J1YjJSbExDQndZWFJvS1R0Y2JpQWdJQ0JwWmlBb2FYTlFZV2x5S0c1dlpHVXBLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbWx6YVhSdmNpNVFZV2x5UHk0b2EyVjVMQ0J1YjJSbExDQndZWFJvS1R0Y2JpQWdJQ0JwWmlBb2FYTlRZMkZzWVhJb2JtOWtaU2twWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyYVhOcGRHOXlMbE5qWVd4aGNqOHVLR3RsZVN3Z2JtOWtaU3dnY0dGMGFDazdYRzRnSUNBZ2FXWWdLR2x6UVd4cFlYTW9ibTlrWlNrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMmFYTnBkRzl5TGtGc2FXRnpQeTRvYTJWNUxDQnViMlJsTENCd1lYUm9LVHRjYmlBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVmVnh1Wm5WdVkzUnBiMjRnY21Wd2JHRmpaVTV2WkdVb2EyVjVMQ0J3WVhSb0xDQnViMlJsS1NCN1hHNGdJQ0FnWTI5dWMzUWdjR0Z5Wlc1MElEMGdjR0YwYUZ0d1lYUm9MbXhsYm1kMGFDQXRJREZkTzF4dUlDQWdJR2xtSUNocGMwTnZiR3hsWTNScGIyNG9jR0Z5Wlc1MEtTa2dlMXh1SUNBZ0lDQWdJQ0J3WVhKbGJuUXVhWFJsYlhOYmEyVjVYU0E5SUc1dlpHVTdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0dselVHRnBjaWh3WVhKbGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGtnUFQwOUlDZHJaWGtuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MExtdGxlU0E5SUc1dlpHVTdYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJSEJoY21WdWRDNTJZV3gxWlNBOUlHNXZaR1U3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tHbHpSRzlqZFcxbGJuUW9jR0Z5Wlc1MEtTa2dlMXh1SUNBZ0lDQWdJQ0J3WVhKbGJuUXVZMjl1ZEdWdWRITWdQU0J1YjJSbE8xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NIUWdQU0JwYzBGc2FXRnpLSEJoY21WdWRDa2dQeUFuWVd4cFlYTW5JRG9nSjNOallXeGhjaWM3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTJGdWJtOTBJSEpsY0d4aFkyVWdibTlrWlNCM2FYUm9JQ1I3Y0hSOUlIQmhjbVZ1ZEdBcE8xeHVJQ0FnSUgxY2JuMWNibHh1Wlhod2IzSjBJSHNnZG1semFYUXNJSFpwYzJsMFFYTjVibU1nZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJwYzA1dlpHVWdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCMmFYTnBkQ0I5SUdaeWIyMGdKeTR1TDNacGMybDBMbXB6Snp0Y2JseHVZMjl1YzNRZ1pYTmpZWEJsUTJoaGNuTWdQU0I3WEc0Z0lDQWdKeUVuT2lBbkpUSXhKeXhjYmlBZ0lDQW5MQ2M2SUNjbE1rTW5MRnh1SUNBZ0lDZGJKem9nSnlVMVFpY3NYRzRnSUNBZ0oxMG5PaUFuSlRWRUp5eGNiaUFnSUNBbmV5YzZJQ2NsTjBJbkxGeHVJQ0FnSUNkOUp6b2dKeVUzUkNkY2JuMDdYRzVqYjI1emRDQmxjMk5oY0dWVVlXZE9ZVzFsSUQwZ0tIUnVLU0E5UGlCMGJpNXlaWEJzWVdObEtDOWJJU3hiWEZ4ZGUzMWRMMmNzSUdOb0lEMCtJR1Z6WTJGd1pVTm9ZWEp6VzJOb1hTazdYRzVqYkdGemN5QkVhWEpsWTNScGRtVnpJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWg1WVcxc0xDQjBZV2R6S1NCN1hHNGdJQ0FnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ0FnS2lCVWFHVWdaR2x5WldOMGFYWmxjeTFsYm1RdlpHOWpMWE4wWVhKMElHMWhjbXRsY2lCZ0xTMHRZQzRnU1dZZ1lHNTFiR3hnTENCaElHMWhjbXRsY2lCdFlYa2djM1JwYkd3Z1ltVmNiaUFnSUNBZ0lDQWdJQ29nYVc1amJIVmtaV1FnYVc0Z2RHaGxJR1J2WTNWdFpXNTBKM01nYzNSeWFXNW5hV1pwWldRZ2NtVndjbVZ6Wlc1MFlYUnBiMjR1WEc0Z0lDQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1SdlkxTjBZWEowSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnTHlvcUlGUm9aU0JrYjJNdFpXNWtJRzFoY210bGNpQmdMaTR1WUM0Z0lDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdVpHOWpSVzVrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVlV0Z0YkNBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lFUnBjbVZqZEdsMlpYTXVaR1ZtWVhWc2RGbGhiV3dzSUhsaGJXd3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuUmhaM01nUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCRWFYSmxZM1JwZG1WekxtUmxabUYxYkhSVVlXZHpMQ0IwWVdkektUdGNiaUFnSUNCOVhHNGdJQ0FnWTJ4dmJtVW9LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR052Y0hrZ1BTQnVaWGNnUkdseVpXTjBhWFpsY3loMGFHbHpMbmxoYld3c0lIUm9hWE11ZEdGbmN5azdYRzRnSUNBZ0lDQWdJR052Y0hrdVpHOWpVM1JoY25RZ1BTQjBhR2x6TG1SdlkxTjBZWEowTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5d2VUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1JIVnlhVzVuSUhCaGNuTnBibWNzSUdkbGRDQmhJRVJwY21WamRHbDJaWE1nYVc1emRHRnVZMlVnWm05eUlIUm9aU0JqZFhKeVpXNTBJR1J2WTNWdFpXNTBJR0Z1WkZ4dUlDQWdJQ0FxSUhWd1pHRjBaU0IwYUdVZ2MzUnlaV0Z0SUhOMFlYUmxJR0ZqWTI5eVpHbHVaeUIwYnlCMGFHVWdZM1Z5Y21WdWRDQjJaWEp6YVc5dUozTWdjM0JsWXk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JoZEVSdlkzVnRaVzUwS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTWdQU0J1WlhjZ1JHbHlaV04wYVhabGN5aDBhR2x6TG5saGJXd3NJSFJvYVhNdWRHRm5jeWs3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NTVZVzFzTG5abGNuTnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p6RXVNU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWhkRTVsZUhSRWIyTjFiV1Z1ZENBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2N4TGpJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WVhST1pYaDBSRzlqZFcxbGJuUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5saGJXd2dQU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVjRjR3hwWTJsME9pQkVhWEpsWTNScGRtVnpMbVJsWm1GMWJIUlpZVzFzTG1WNGNHeHBZMmwwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJaWEp6YVc5dU9pQW5NUzR5SjF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUwWVdkeklEMGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dSR2x5WldOMGFYWmxjeTVrWldaaGRXeDBWR0ZuY3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGN6dGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUc5dVJYSnliM0lnTFNCTllYa2dZbVVnWTJGc2JHVmtJR1YyWlc0Z2FXWWdkR2hsSUdGamRHbHZiaUIzWVhNZ2MzVmpZMlZ6YzJaMWJGeHVJQ0FnSUNBcUlFQnlaWFIxY201eklHQjBjblZsWUNCdmJpQnpkV05qWlhOelhHNGdJQ0FnSUNvdlhHNGdJQ0FnWVdSa0tHeHBibVVzSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVlYUk9aWGgwUkc5amRXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWVXRnRiQ0E5SUhzZ1pYaHdiR2xqYVhRNklFUnBjbVZqZEdsMlpYTXVaR1ZtWVhWc2RGbGhiV3d1Wlhod2JHbGphWFFzSUhabGNuTnBiMjQ2SUNjeExqRW5JSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5SaFozTWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JFYVhKbFkzUnBkbVZ6TG1SbFptRjFiSFJVWVdkektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVZWFJPWlhoMFJHOWpkVzFsYm5RZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSjBjeUE5SUd4cGJtVXVkSEpwYlNncExuTndiR2wwS0M5YklGeGNkRjByTHlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1aGJXVWdQU0J3WVhKMGN5NXphR2xtZENncE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHNWhiV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p5VlVRVWNuT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEJoY25SekxteGxibWQwYUNBaFBUMGdNaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtEQXNJQ2NsVkVGSElHUnBjbVZqZEdsMlpTQnphRzkxYkdRZ1kyOXVkR0ZwYmlCbGVHRmpkR3g1SUhSM2J5QndZWEowY3ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NHRnlkSE11YkdWdVozUm9JRHdnTWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1cyaGhibVJzWlN3Z2NISmxabWw0WFNBOUlIQmhjblJ6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVkR0ZuYzF0b1lXNWtiR1ZkSUQwZ2NISmxabWw0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbkpWbEJUVXduT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTU1WVcxc0xtVjRjR3hwWTJsMElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jR0Z5ZEhNdWJHVnVaM1JvSUNFOVBTQXhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb01Dd2dKeVZaUVUxTUlHUnBjbVZqZEdsMlpTQnphRzkxYkdRZ1kyOXVkR0ZwYmlCbGVHRmpkR3g1SUc5dVpTQndZWEowSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzNabGNuTnBiMjVkSUQwZ2NHRnlkSE03WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmxjbk5wYjI0Z1BUMDlJQ2N4TGpFbklIeDhJSFpsY25OcGIyNGdQVDA5SUNjeExqSW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZVdGdGJDNTJaWEp6YVc5dUlEMGdkbVZ5YzJsdmJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGMxWmhiR2xrSUQwZ0wxNWNYR1FyWEZ3dVhGeGtLeVF2TG5SbGMzUW9kbVZ5YzJsdmJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvTml3Z1lGVnVjM1Z3Y0c5eWRHVmtJRmxCVFV3Z2RtVnljMmx2YmlBa2UzWmxjbk5wYjI1OVlDd2dhWE5XWVd4cFpDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9NQ3dnWUZWdWEyNXZkMjRnWkdseVpXTjBhWFpsSUNSN2JtRnRaWDFnTENCMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnpiMngyWlhNZ1lTQjBZV2NzSUcxaGRHTm9hVzVuSUdoaGJtUnNaWE1nZEc4Z2RHaHZjMlVnWkdWbWFXNWxaQ0JwYmlBbFZFRkhJR1JwY21WamRHbDJaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUJTWlhOdmJIWmxaQ0IwWVdjc0lIZG9hV05vSUcxaGVTQmhiSE52SUdKbElIUm9aU0J1YjI0dGMzQmxZMmxtYVdNZ2RHRm5JR0FuSVNkZ0lHOXlJR0ZjYmlBZ0lDQWdLaUFnSUdBbklXeHZZMkZzSjJBZ2RHRm5MQ0J2Y2lCZ2JuVnNiR0FnYVdZZ2RXNXlaWE52YkhaaFlteGxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIUmhaMDVoYldVb2MyOTFjbU5sTENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6YjNWeVkyVWdQVDA5SUNjaEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuSVNjN0lDOHZJRzV2YmkxemNHVmphV1pwWXlCMFlXZGNiaUFnSUNBZ0lDQWdhV1lnS0hOdmRYSmpaVnN3WFNBaFBUMGdKeUVuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR0JPYjNRZ1lTQjJZV3hwWkNCMFlXYzZJQ1I3YzI5MWNtTmxmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLSE52ZFhKalpWc3hYU0E5UFQwZ0p6d25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMlpYSmlZWFJwYlNBOUlITnZkWEpqWlM1emJHbGpaU2d5TENBdE1TazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kbVZ5WW1GMGFXMGdQVDA5SUNjaEp5QjhmQ0IyWlhKaVlYUnBiU0E5UFQwZ0p5RWhKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvWUZabGNtSmhkR2x0SUhSaFozTWdZWEpsYmlkMElISmxjMjlzZG1Wa0xDQnpieUFrZTNOdmRYSmpaWDBnYVhNZ2FXNTJZV3hwWkM1Z0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHpiM1Z5WTJWYmMyOTFjbU5sTG14bGJtZDBhQ0F0SURGZElDRTlQU0FuUGljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2lnblZtVnlZbUYwYVcwZ2RHRm5jeUJ0ZFhOMElHVnVaQ0IzYVhSb0lHRWdQaWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIWmxjbUpoZEdsdE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR052Ym5OMElGc3NJR2hoYm1Sc1pTd2djM1ZtWm1sNFhTQTlJSE52ZFhKalpTNXRZWFJqYUNndlhpZ3VLaUVwS0Z0ZUlWMHFLU1F2Y3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYzNWbVptbDRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loZ1ZHaGxJQ1I3YzI5MWNtTmxmU0IwWVdjZ2FHRnpJRzV2SUhOMVptWnBlR0FwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WbWFYZ2dQU0IwYUdsekxuUmhaM05iYUdGdVpHeGxYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnlaV1pwZUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NISmxabWw0SUNzZ1pHVmpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtITjFabVpwZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0ZOMGNtbHVaeWhsY25KdmNpa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaG9ZVzVrYkdVZ1BUMDlJQ2NoSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpiM1Z5WTJVN0lDOHZJR3h2WTJGc0lIUmhaMXh1SUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR0JEYjNWc1pDQnViM1FnY21WemIyeDJaU0IwWVdjNklDUjdjMjkxY21ObGZXQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUjJsMlpXNGdZU0JtZFd4c2VTQnlaWE52YkhabFpDQjBZV2NzSUhKbGRIVnlibk1nYVhSeklIQnlhVzUwWVdKc1pTQnpkSEpwYm1jZ1ptOXliU3hjYmlBZ0lDQWdLaUIwWVd0cGJtY2dhVzUwYnlCaFkyTnZkVzUwSUdOMWNuSmxiblFnZEdGbklIQnlaV1pwZUdWeklHRnVaQ0JrWldaaGRXeDBjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQjBZV2RUZEhKcGJtY29kR0ZuS1NCN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdXMmhoYm1Sc1pTd2djSEpsWm1sNFhTQnZaaUJQWW1wbFkzUXVaVzUwY21sbGN5aDBhR2x6TG5SaFozTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdGbkxuTjBZWEowYzFkcGRHZ29jSEpsWm1sNEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FHRnVaR3hsSUNzZ1pYTmpZWEJsVkdGblRtRnRaU2gwWVdjdWMzVmljM1J5YVc1bktIQnlaV1pwZUM1c1pXNW5kR2dwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHRm5XekJkSUQwOVBTQW5JU2NnUHlCMFlXY2dPaUJnSVR3a2UzUmhaMzArWUR0Y2JpQWdJQ0I5WEc0Z0lDQWdkRzlUZEhKcGJtY29aRzlqS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVnpJRDBnZEdocGN5NTVZVzFzTG1WNGNHeHBZMmwwWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JRnRnSlZsQlRVd2dKSHQwYUdsekxubGhiV3d1ZG1WeWMybHZiaUI4ZkNBbk1TNHlKMzFnWFZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJiWFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZEdGblJXNTBjbWxsY3lBOUlFOWlhbVZqZEM1bGJuUnlhV1Z6S0hSb2FYTXVkR0ZuY3lrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0IwWVdkT1lXMWxjenRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUnZZeUFtSmlCMFlXZEZiblJ5YVdWekxteGxibWQwYUNBK0lEQWdKaVlnYVhOT2IyUmxLR1J2WXk1amIyNTBaVzUwY3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFJoWjNNZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWnBjMmwwS0dSdll5NWpiMjUwWlc1MGN5d2dLRjlyWlhrc0lHNXZaR1VwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOT2IyUmxLRzV2WkdVcElDWW1JRzV2WkdVdWRHRm5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFlXZHpXMjV2WkdVdWRHRm5YU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSaFowNWhiV1Z6SUQwZ1QySnFaV04wTG10bGVYTW9kR0ZuY3lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR0ZuVG1GdFpYTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmJhR0Z1Wkd4bExDQndjbVZtYVhoZElHOW1JSFJoWjBWdWRISnBaWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNob1lXNWtiR1VnUFQwOUlDY2hJU2NnSmlZZ2NISmxabWw0SUQwOVBTQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doWkc5aklIeDhJSFJoWjA1aGJXVnpMbk52YldVb2RHNGdQVDRnZEc0dWMzUmhjblJ6VjJsMGFDaHdjbVZtYVhncEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR0FsVkVGSElDUjdhR0Z1Wkd4bGZTQWtlM0J5WldacGVIMWdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYkdsdVpYTXVhbTlwYmlnblhGeHVKeWs3WEc0Z0lDQWdmVnh1ZlZ4dVJHbHlaV04wYVhabGN5NWtaV1poZFd4MFdXRnRiQ0E5SUhzZ1pYaHdiR2xqYVhRNklHWmhiSE5sTENCMlpYSnphVzl1T2lBbk1TNHlKeUI5TzF4dVJHbHlaV04wYVhabGN5NWtaV1poZFd4MFZHRm5jeUE5SUhzZ0p5RWhKem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T2ljZ2ZUdGNibHh1Wlhod2IzSjBJSHNnUkdseVpXTjBhWFpsY3lCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselUyTmhiR0Z5TENCcGMwTnZiR3hsWTNScGIyNGdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCMmFYTnBkQ0I5SUdaeWIyMGdKeTR1TDNacGMybDBMbXB6Snp0Y2JseHVMeW9xWEc0Z0tpQldaWEpwWm5rZ2RHaGhkQ0IwYUdVZ2FXNXdkWFFnYzNSeWFXNW5JR2x6SUdFZ2RtRnNhV1FnWVc1amFHOXlMbHh1SUNwY2JpQXFJRmRwYkd3Z2RHaHliM2NnYjI0Z1pYSnliM0p6TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJoYm1Ob2IzSkpjMVpoYkdsa0tHRnVZMmh2Y2lrZ2UxeHVJQ0FnSUdsbUlDZ3ZXMXhjZURBd0xWeGNlREU1WEZ4ekxGdGNYRjE3ZlYwdkxuUmxjM1FvWVc1amFHOXlLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6WVNBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0dGdVkyaHZjaWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzF6WnlBOUlHQkJibU5vYjNJZ2JYVnpkQ0J1YjNRZ1kyOXVkR0ZwYmlCM2FHbDBaWE53WVdObElHOXlJR052Ym5SeWIyd2dZMmhoY21GamRHVnljem9nSkh0ellYMWdPMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9iWE5uS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc1OVhHNW1kVzVqZEdsdmJpQmhibU5vYjNKT1lXMWxjeWh5YjI5MEtTQjdYRzRnSUNBZ1kyOXVjM1FnWVc1amFHOXljeUE5SUc1bGR5QlRaWFFvS1R0Y2JpQWdJQ0IyYVhOcGRDaHliMjkwTENCN1hHNGdJQ0FnSUNBZ0lGWmhiSFZsS0Y5clpYa3NJRzV2WkdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHViMlJsTG1GdVkyaHZjaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoYm1Ob2IzSnpMbUZrWkNodWIyUmxMbUZ1WTJodmNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1lXNWphRzl5Y3p0Y2JuMWNiaThxS2lCR2FXNWtJR0VnYm1WM0lHRnVZMmh2Y2lCdVlXMWxJSGRwZEdnZ2RHaGxJR2RwZG1WdUlHQndjbVZtYVhoZ0lHRnVaQ0JoSUc5dVpTMXBibVJsZUdWa0lITjFabVpwZUM0Z0tpOWNibVoxYm1OMGFXOXVJR1pwYm1ST1pYZEJibU5vYjNJb2NISmxabWw0TENCbGVHTnNkV1JsS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlERTdJSFJ5ZFdVN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1WVcxbElEMGdZQ1I3Y0hKbFptbDRmU1I3YVgxZ08xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdWNFkyeDFaR1V1YUdGektHNWhiV1VwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNWhiV1U3WEc0Z0lDQWdmVnh1ZlZ4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsVG05a1pVRnVZMmh2Y25Nb1pHOWpMQ0J3Y21WbWFYZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCaGJHbGhjMDlpYW1WamRITWdQU0JiWFR0Y2JpQWdJQ0JqYjI1emRDQnpiM1Z5WTJWUFltcGxZM1J6SUQwZ2JtVjNJRTFoY0NncE8xeHVJQ0FnSUd4bGRDQndjbVYyUVc1amFHOXljeUE5SUc1MWJHdzdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ2IyNUJibU5vYjNJNklDaHpiM1Z5WTJVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnNhV0Z6VDJKcVpXTjBjeTV3ZFhOb0tITnZkWEpqWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYQnlaWFpCYm1Ob2IzSnpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ5WlhaQmJtTm9iM0p6SUQwZ1lXNWphRzl5VG1GdFpYTW9aRzlqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHRnVZMmh2Y2lBOUlHWnBibVJPWlhkQmJtTm9iM0lvY0hKbFptbDRMQ0J3Y21WMlFXNWphRzl5Y3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y21WMlFXNWphRzl5Y3k1aFpHUW9ZVzVqYUc5eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoYm1Ob2IzSTdYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDQWdLaUJYYVhSb0lHTnBjbU4xYkdGeUlISmxabVZ5Wlc1alpYTXNJSFJvWlNCemIzVnlZMlVnYm05a1pTQnBjeUJ2Ym14NUlISmxjMjlzZG1Wa0lHRm1kR1Z5SUdGc2JGeHVJQ0FnSUNBZ0lDQWdLaUJ2WmlCcGRITWdZMmhwYkdRZ2JtOWtaWE1nWVhKbExpQlVhR2x6SUdseklIZG9lU0JoYm1Ob2IzSnpJR0Z5WlNCelpYUWdiMjVzZVNCaFpuUmxjaUJoYkd3Z2IyWmNiaUFnSUNBZ0lDQWdJQ29nZEdobElHNXZaR1Z6SUdoaGRtVWdZbVZsYmlCamNtVmhkR1ZrTGx4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdjMlYwUVc1amFHOXljem9nS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnpiM1Z5WTJVZ2IyWWdZV3hwWVhOUFltcGxZM1J6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY21WbUlEMGdjMjkxY21ObFQySnFaV04wY3k1blpYUW9jMjkxY21ObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSEpsWmlBOVBUMGdKMjlpYW1WamRDY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVm1MbUZ1WTJodmNpQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2FYTlRZMkZzWVhJb2NtVm1MbTV2WkdVcElIeDhJR2x6UTI5c2JHVmpkR2x2YmloeVpXWXVibTlrWlNrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbFppNXViMlJsTG1GdVkyaHZjaUE5SUhKbFppNWhibU5vYjNJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGNuSnZjaUE5SUc1bGR5QkZjbkp2Y2lnblJtRnBiR1ZrSUhSdklISmxjMjlzZG1VZ2NtVndaV0YwWldRZ2IySnFaV04wSUNoMGFHbHpJSE5vYjNWc1pDQnViM1FnYUdGd2NHVnVLU2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxjbkp2Y2k1emIzVnlZMlVnUFNCemIzVnlZMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUdWeWNtOXlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYzI5MWNtTmxUMkpxWldOMGMxeHVJQ0FnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdGdVkyaHZja2x6Vm1Gc2FXUXNJR0Z1WTJodmNrNWhiV1Z6TENCamNtVmhkR1ZPYjJSbFFXNWphRzl5Y3l3Z1ptbHVaRTVsZDBGdVkyaHZjaUI5TzF4dUlpd2dJaThxS2x4dUlDb2dRWEJ3YkdsbGN5QjBhR1VnU2xOUFRpNXdZWEp6WlNCeVpYWnBkbVZ5SUdGc1oyOXlhWFJvYlNCaGN5QmtaV1pwYm1Wa0lHbHVJSFJvWlNCRlEwMUJMVEkyTWlCemNHVmpMRnh1SUNvZ2FXNGdjMlZqZEdsdmJpQXlOQzQxTGpFdU1TQmNJbEoxYm5ScGJXVWdVMlZ0WVc1MGFXTnpPaUJKYm5SbGNtNWhiR2w2WlVwVFQwNVFjbTl3WlhKMGVWd2lJRzltSUhSb1pWeHVJQ29nTWpBeU1TQmxaR2wwYVc5dU9pQm9kSFJ3Y3pvdkwzUmpNemt1WlhNdlpXTnRZVEkyTWk4amMyVmpMV3B6YjI0dWNHRnljMlZjYmlBcVhHNGdLaUJKYm1Oc2RXUmxjeUJsZUhSbGJuTnBiMjV6SUdadmNpQm9ZVzVrYkdsdVp5Qk5ZWEFnWVc1a0lGTmxkQ0J2WW1wbFkzUnpMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQmhjSEJzZVZKbGRtbDJaWElvY21WMmFYWmxjaXdnYjJKcUxDQnJaWGtzSUhaaGJDa2dlMXh1SUNBZ0lHbG1JQ2gyWVd3Z0ppWWdkSGx3Wlc5bUlIWmhiQ0E5UFQwZ0oyOWlhbVZqZENjcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0VGeWNtRjVMbWx6UVhKeVlYa29kbUZzS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQXNJR3hsYmlBOUlIWmhiQzVzWlc1bmRHZzdJR2tnUENCc1pXNDdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhZd0lEMGdkbUZzVzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhZeElEMGdZWEJ3YkhsU1pYWnBkbVZ5S0hKbGRtbDJaWElzSUhaaGJDd2dVM1J5YVc1bktHa3BMQ0IyTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTFoY25KaGVTMWtaV3hsZEdWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kakVnUFQwOUlIVnVaR1ZtYVc1bFpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJSFpoYkZ0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDJNU0FoUFQwZ2RqQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJGdHBYU0E5SUhZeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIWmhiQ0JwYm5OMFlXNWpaVzltSUUxaGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnJJRzltSUVGeWNtRjVMbVp5YjIwb2RtRnNMbXRsZVhNb0tTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjJNQ0E5SUhaaGJDNW5aWFFvYXlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZGpFZ1BTQmhjSEJzZVZKbGRtbDJaWElvY21WMmFYWmxjaXdnZG1Gc0xDQnJMQ0IyTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFl4SUQwOVBTQjFibVJsWm1sdVpXUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJDNWtaV3hsZEdVb2F5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9kakVnSVQwOUlIWXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXd3VjMlYwS0dzc0lIWXhLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gyWVd3Z2FXNXpkR0Z1WTJWdlppQlRaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnZGpBZ2IyWWdRWEp5WVhrdVpuSnZiU2gyWVd3cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RqRWdQU0JoY0hCc2VWSmxkbWwyWlhJb2NtVjJhWFpsY2l3Z2RtRnNMQ0IyTUN3Z2RqQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMk1TQTlQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3d1WkdWc1pYUmxLSFl3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoMk1TQWhQVDBnZGpBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc0xtUmxiR1YwWlNoMk1DazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJDNWhaR1FvZGpFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnVzJzc0lIWXdYU0J2WmlCUFltcGxZM1F1Wlc1MGNtbGxjeWgyWVd3cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RqRWdQU0JoY0hCc2VWSmxkbWwyWlhJb2NtVjJhWFpsY2l3Z2RtRnNMQ0JyTENCMk1DazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hZeElEMDlQU0IxYm1SbFptbHVaV1FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxiR1YwWlNCMllXeGJhMTA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvZGpFZ0lUMDlJSFl3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3hiYTEwZ1BTQjJNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY21WMmFYWmxjaTVqWVd4c0tHOWlhaXdnYTJWNUxDQjJZV3dwTzF4dWZWeHVYRzVsZUhCdmNuUWdleUJoY0hCc2VWSmxkbWwyWlhJZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCb1lYTkJibU5vYjNJZ2ZTQm1jbTl0SUNjdUwybGtaVzUwYVhSNUxtcHpKenRjYmx4dUx5b3FYRzRnS2lCU1pXTjFjbk5wZG1Wc2VTQmpiMjUyWlhKMElHRnVlU0J1YjJSbElHOXlJR2wwY3lCamIyNTBaVzUwY3lCMGJ5QnVZWFJwZG1VZ1NtRjJZVk5qY21sd2RGeHVJQ3BjYmlBcUlFQndZWEpoYlNCMllXeDFaU0F0SUZSb1pTQnBibkIxZENCMllXeDFaVnh1SUNvZ1FIQmhjbUZ0SUdGeVp5QXRJRWxtSUdCMllXeDFaV0FnWkdWbWFXNWxjeUJoSUdCMGIwcFRUMDRvS1dBZ2JXVjBhRzlrTENCMWMyVWdkR2hwYzF4dUlDb2dJQ0JoY3lCcGRITWdabWx5YzNRZ1lYSm5kVzFsYm5SY2JpQXFJRUJ3WVhKaGJTQmpkSGdnTFNCRGIyNTJaWEp6YVc5dUlHTnZiblJsZUhRc0lHOXlhV2RwYm1Gc2JIa2djMlYwSUdsdUlFUnZZM1Z0Wlc1MEkzUnZTbE1vS1M0Z1NXWmNiaUFxSUNBZ1lIc2dhMlZsY0RvZ2RISjFaU0I5WUNCcGN5QnViM1FnYzJWMExDQnZkWFJ3ZFhRZ2MyaHZkV3hrSUdKbElITjFhWFJoWW14bElHWnZjaUJLVTA5T1hHNGdLaUFnSUhOMGNtbHVaMmxtYVdOaGRHbHZiaTVjYmlBcUwxeHVablZ1WTNScGIyNGdkRzlLVXloMllXeDFaU3dnWVhKbkxDQmpkSGdwSUh0Y2JpQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVjMkZtWlMxeVpYUjFjbTVjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMllXeDFaUzV0WVhBb0tIWXNJR2twSUQwK0lIUnZTbE1vZGl3Z1UzUnlhVzVuS0drcExDQmpkSGdwS1R0Y2JpQWdJQ0JwWmlBb2RtRnNkV1VnSmlZZ2RIbHdaVzltSUhaaGJIVmxMblJ2U2xOUFRpQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWMyRm1aUzFqWVd4c1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWTNSNElIeDhJQ0ZvWVhOQmJtTm9iM0lvZG1Gc2RXVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxMblJ2U2xOUFRpaGhjbWNzSUdOMGVDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCN0lHRnNhV0Z6UTI5MWJuUTZJREFzSUdOdmRXNTBPaUF4TENCeVpYTTZJSFZ1WkdWbWFXNWxaQ0I5TzF4dUlDQWdJQ0FnSUNCamRIZ3VZVzVqYUc5eWN5NXpaWFFvZG1Gc2RXVXNJR1JoZEdFcE8xeHVJQ0FnSUNBZ0lDQmpkSGd1YjI1RGNtVmhkR1VnUFNCeVpYTWdQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR0YwWVM1eVpYTWdQU0J5WlhNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWld4bGRHVWdZM1I0TG05dVEzSmxZWFJsTzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTWdQU0IyWVd4MVpTNTBiMHBUVDA0b1lYSm5MQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtOXVRM0psWVhSbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExtOXVRM0psWVhSbEtISmxjeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkaWFXZHBiblFuSUNZbUlDRmpkSGcvTG10bFpYQXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQk9kVzFpWlhJb2RtRnNkV1VwTzF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JuMWNibHh1Wlhod2IzSjBJSHNnZEc5S1V5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHRndjR3g1VW1WMmFYWmxjaUI5SUdaeWIyMGdKeTR1TDJSdll5OWhjSEJzZVZKbGRtbDJaWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dUazlFUlY5VVdWQkZMQ0JwYzBSdlkzVnRaVzUwSUgwZ1puSnZiU0FuTGk5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUIwYjBwVElIMGdabkp2YlNBbkxpOTBiMHBUTG1wekp6dGNibHh1WTJ4aGMzTWdUbTlrWlVKaGMyVWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSFI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSb2FYTXNJRTVQUkVWZlZGbFFSU3dnZXlCMllXeDFaVG9nZEhsd1pTQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FJRU55WldGMFpTQmhJR052Y0hrZ2IyWWdkR2hwY3lCdWIyUmxMaUFnS2k5Y2JpQWdJQ0JqYkc5dVpTZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMjl3ZVNBOUlFOWlhbVZqZEM1amNtVmhkR1VvVDJKcVpXTjBMbWRsZEZCeWIzUnZkSGx3WlU5bUtIUm9hWE1wTENCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbEVaWE5qY21sd2RHOXljeWgwYUdsektTazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbkpoYm1kbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5d2VTNXlZVzVuWlNBOUlIUm9hWE11Y21GdVoyVXVjMnhwWTJVb0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHTnZjSGs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLaUJCSUhCc1lXbHVJRXBoZG1GVFkzSnBjSFFnY21Wd2NtVnpaVzUwWVhScGIyNGdiMllnZEdocGN5QnViMlJsTGlBcUwxeHVJQ0FnSUhSdlNsTW9aRzlqTENCN0lHMWhjRUZ6VFdGd0xDQnRZWGhCYkdsaGMwTnZkVzUwTENCdmJrRnVZMmh2Y2l3Z2NtVjJhWFpsY2lCOUlEMGdlMzBwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZwYzBSdlkzVnRaVzUwS0dSdll5a3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtDZEJJR1J2WTNWdFpXNTBJR0Z5WjNWdFpXNTBJR2x6SUhKbGNYVnBjbVZrSnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOMGVDQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnVZMmh2Y25NNklHNWxkeUJOWVhBb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdSdll5eGNiaUFnSUNBZ0lDQWdJQ0FnSUd0bFpYQTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhCQmMwMWhjRG9nYldGd1FYTk5ZWEFnUFQwOUlIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEJMWlhsWFlYSnVaV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JXRjRRV3hwWVhORGIzVnVkRG9nZEhsd1pXOW1JRzFoZUVGc2FXRnpRMjkxYm5RZ1BUMDlJQ2R1ZFcxaVpYSW5JRDhnYldGNFFXeHBZWE5EYjNWdWRDQTZJREV3TUZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTWdQU0IwYjBwVEtIUm9hWE1zSUNjbkxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOXVRVzVqYUc5eUlEMDlQU0FuWm5WdVkzUnBiMjRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0I3SUdOdmRXNTBMQ0J5WlhNZ2ZTQnZaaUJqZEhndVlXNWphRzl5Y3k1MllXeDFaWE1vS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrRnVZMmh2Y2loeVpYTXNJR052ZFc1MEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUjVjR1Z2WmlCeVpYWnBkbVZ5SUQwOVBTQW5ablZ1WTNScGIyNG5YRzRnSUNBZ0lDQWdJQ0FnSUNBL0lHRndjR3g1VW1WMmFYWmxjaWh5WlhacGRtVnlMQ0I3SUNjbk9pQnlaWE1nZlN3Z0p5Y3NJSEpsY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nY21Wek8xeHVJQ0FnSUgxY2JuMWNibHh1Wlhod2IzSjBJSHNnVG05a1pVSmhjMlVnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJoYm1Ob2IzSkpjMVpoYkdsa0lIMGdabkp2YlNBbkxpNHZaRzlqTDJGdVkyaHZjbk11YW5Nbk8xeHVhVzF3YjNKMElIc2dkbWx6YVhRZ2ZTQm1jbTl0SUNjdUxpOTJhWE5wZEM1cWN5YzdYRzVwYlhCdmNuUWdleUJCVEVsQlV5d2dhWE5CYkdsaGN5d2dhWE5EYjJ4c1pXTjBhVzl1TENCcGMxQmhhWElnZlNCbWNtOXRJQ2N1TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJRTV2WkdWQ1lYTmxJSDBnWm5KdmJTQW5MaTlPYjJSbExtcHpKenRjYm1sdGNHOXlkQ0I3SUhSdlNsTWdmU0JtY205dElDY3VMM1J2U2xNdWFuTW5PMXh1WEc1amJHRnpjeUJCYkdsaGN5QmxlSFJsYm1SeklFNXZaR1ZDWVhObElIdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaHpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lDQWdjM1Z3WlhJb1FVeEpRVk1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk52ZFhKalpTQTlJSE52ZFhKalpUdGNiaUFnSUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSb2FYTXNJQ2QwWVdjbkxDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCelpYUW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RCYkdsaGN5QnViMlJsY3lCallXNXViM1FnYUdGMlpTQjBZV2R6SnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pYTnZiSFpsSUhSb1pTQjJZV3gxWlNCdlppQjBhR2x6SUdGc2FXRnpJSGRwZEdocGJpQmdaRzlqWUN3Z1ptbHVaR2x1WnlCMGFHVWdiR0Z6ZEZ4dUlDQWdJQ0FxSUdsdWMzUmhibU5sSUc5bUlIUm9aU0JnYzI5MWNtTmxZQ0JoYm1Ob2IzSWdZbVZtYjNKbElIUm9hWE1nYm05a1pTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCeVpYTnZiSFpsS0dSdll5a2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ1ptOTFibVFnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIWnBjMmwwS0dSdll5d2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1RtOWtaVG9nS0Y5clpYa3NJRzV2WkdVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JtOWtaU0E5UFQwZ2RHaHBjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhacGMybDBMa0pTUlVGTE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YjJSbExtRnVZMmh2Y2lBOVBUMGdkR2hwY3k1emIzVnlZMlVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnZkVzVrSUQwZ2JtOWtaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtYjNWdVpEdGNiaUFnSUNCOVhHNGdJQ0FnZEc5S1UwOU9LRjloY21jc0lHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSE52ZFhKalpUb2dkR2hwY3k1emIzVnlZMlVnZlR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCaGJtTm9iM0p6TENCa2IyTXNJRzFoZUVGc2FXRnpRMjkxYm5RZ2ZTQTlJR04wZUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzI5MWNtTmxJRDBnZEdocGN5NXlaWE52YkhabEtHUnZZeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hjMjkxY21ObEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQmdWVzV5WlhOdmJIWmxaQ0JoYkdsaGN5QW9kR2hsSUdGdVkyaHZjaUJ0ZFhOMElHSmxJSE5sZENCaVpXWnZjbVVnZEdobElHRnNhV0Z6S1RvZ0pIdDBhR2x6TG5OdmRYSmpaWDFnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkpsWm1WeVpXNWpaVVZ5Y205eUtHMXpaeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2JHVjBJR1JoZEdFZ1BTQmhibU5vYjNKekxtZGxkQ2h6YjNWeVkyVXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZKbGMyOXNkbVVnWVc1amFHOXljeUJtYjNJZ1RtOWtaUzV3Y205MGIzUjVjR1V1ZEc5S1V5Z3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGIwcFRLSE52ZFhKalpTd2diblZzYkN3Z1kzUjRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmhkR0VnUFNCaGJtTm9iM0p6TG1kbGRDaHpiM1Z5WTJVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0JwWmlBcUwxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdSaGRHRWdmSHdnWkdGMFlTNXlaWE1nUFQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlhObklEMGdKMVJvYVhNZ2MyaHZkV3hrSUc1dmRDQm9ZWEJ3Wlc0NklFRnNhV0Z6SUdGdVkyaHZjaUIzWVhNZ2JtOTBJSEpsYzI5c2RtVmtQeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVbVZtWlhKbGJtTmxSWEp5YjNJb2JYTm5LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9iV0Y0UVd4cFlYTkRiM1Z1ZENBK1BTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtZWFJoTG1OdmRXNTBJQ3M5SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pHRjBZUzVoYkdsaGMwTnZkVzUwSUQwOVBTQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFdVlXeHBZWE5EYjNWdWRDQTlJR2RsZEVGc2FXRnpRMjkxYm5Rb1pHOWpMQ0J6YjNWeVkyVXNJR0Z1WTJodmNuTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1JoZEdFdVkyOTFiblFnS2lCa1lYUmhMbUZzYVdGelEyOTFiblFnUGlCdFlYaEJiR2xoYzBOdmRXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiWE5uSUQwZ0owVjRZMlZ6YzJsMlpTQmhiR2xoY3lCamIzVnVkQ0JwYm1ScFkyRjBaWE1nWVNCeVpYTnZkWEpqWlNCbGVHaGhkWE4wYVc5dUlHRjBkR0ZqYXljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGSmxabVZ5Wlc1alpVVnljbTl5S0cxelp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUmhkR0V1Y21Wek8xeHVJQ0FnSUgxY2JpQWdJQ0IwYjFOMGNtbHVaeWhqZEhnc0lGOXZia052YlcxbGJuUXNJRjl2YmtOb2IyMXdTMlZsY0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemNtTWdQU0JnS2lSN2RHaHBjeTV6YjNWeVkyVjlZRHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTjBlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZVzVqYUc5eVNYTldZV3hwWkNoMGFHbHpMbk52ZFhKalpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZM1I0TG05d2RHbHZibk11ZG1WeWFXWjVRV3hwWVhOUGNtUmxjaUFtSmlBaFkzUjRMbUZ1WTJodmNuTXVhR0Z6S0hSb2FYTXVjMjkxY21ObEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXpaeUE5SUdCVmJuSmxjMjlzZG1Wa0lHRnNhV0Z6SUNoMGFHVWdZVzVqYUc5eUlHMTFjM1FnWW1VZ2MyVjBJR0psWm05eVpTQjBhR1VnWVd4cFlYTXBPaUFrZTNSb2FYTXVjMjkxY21ObGZXQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHMXpaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZM1I0TG1sdGNHeHBZMmwwUzJWNUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCZ0pIdHpjbU45SUdBN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITnlZenRjYmlBZ0lDQjlYRzU5WEc1bWRXNWpkR2x2YmlCblpYUkJiR2xoYzBOdmRXNTBLR1J2WXl3Z2JtOWtaU3dnWVc1amFHOXljeWtnZTF4dUlDQWdJR2xtSUNocGMwRnNhV0Z6S0c1dlpHVXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpTQTlJRzV2WkdVdWNtVnpiMngyWlNoa2IyTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhibU5vYjNJZ1BTQmhibU5vYjNKeklDWW1JSE52ZFhKalpTQW1KaUJoYm1Ob2IzSnpMbWRsZENoemIzVnlZMlVwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVc1amFHOXlJRDhnWVc1amFHOXlMbU52ZFc1MElDb2dZVzVqYUc5eUxtRnNhV0Z6UTI5MWJuUWdPaUF3TzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDaHBjME52Ykd4bFkzUnBiMjRvYm05a1pTa3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElHTnZkVzUwSUQwZ01EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JwZEdWdElHOW1JRzV2WkdVdWFYUmxiWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTWdQU0JuWlhSQmJHbGhjME52ZFc1MEtHUnZZeXdnYVhSbGJTd2dZVzVqYUc5eWN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZeUErSUdOdmRXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052ZFc1MElEMGdZenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5MWJuUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0dselVHRnBjaWh1YjJSbEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnJZeUE5SUdkbGRFRnNhV0Z6UTI5MWJuUW9aRzlqTENCdWIyUmxMbXRsZVN3Z1lXNWphRzl5Y3lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhaaklEMGdaMlYwUVd4cFlYTkRiM1Z1ZENoa2IyTXNJRzV2WkdVdWRtRnNkV1VzSUdGdVkyaHZjbk1wTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVFdGMGFDNXRZWGdvYTJNc0lIWmpLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SURFN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUVGc2FXRnpJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dVME5CVEVGU0lIMGdabkp2YlNBbkxpOXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCT2IyUmxRbUZ6WlNCOUlHWnliMjBnSnk0dlRtOWtaUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QjBiMHBUSUgwZ1puSnZiU0FuTGk5MGIwcFRMbXB6Snp0Y2JseHVZMjl1YzNRZ2FYTlRZMkZzWVhKV1lXeDFaU0E5SUNoMllXeDFaU2tnUFQ0Z0lYWmhiSFZsSUh4OElDaDBlWEJsYjJZZ2RtRnNkV1VnSVQwOUlDZG1kVzVqZEdsdmJpY2dKaVlnZEhsd1pXOW1JSFpoYkhWbElDRTlQU0FuYjJKcVpXTjBKeWs3WEc1amJHRnpjeUJUWTJGc1lYSWdaWGgwWlc1a2N5Qk9iMlJsUW1GelpTQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdjM1Z3WlhJb1UwTkJURUZTS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4MVpTQTlJSFpoYkhWbE8xeHVJQ0FnSUgxY2JpQWdJQ0IwYjBwVFQwNG9ZWEpuTENCamRIZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR04wZUQ4dWEyVmxjQ0EvSUhSb2FYTXVkbUZzZFdVZ09pQjBiMHBUS0hSb2FYTXVkbUZzZFdVc0lHRnlaeXdnWTNSNEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEc5VGRISnBibWNvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCVGRISnBibWNvZEdocGN5NTJZV3gxWlNrN1hHNGdJQ0FnZlZ4dWZWeHVVMk5oYkdGeUxrSk1UME5MWDBaUFRFUkZSQ0E5SUNkQ1RFOURTMTlHVDB4RVJVUW5PMXh1VTJOaGJHRnlMa0pNVDBOTFgweEpWRVZTUVV3Z1BTQW5Ra3hQUTB0ZlRFbFVSVkpCVENjN1hHNVRZMkZzWVhJdVVFeEJTVTRnUFNBblVFeEJTVTRuTzF4dVUyTmhiR0Z5TGxGVlQxUkZYMFJQVlVKTVJTQTlJQ2RSVlU5VVJWOUVUMVZDVEVVbk8xeHVVMk5oYkdGeUxsRlZUMVJGWDFOSlRrZE1SU0E5SUNkUlZVOVVSVjlUU1U1SFRFVW5PMXh1WEc1bGVIQnZjblFnZXlCVFkyRnNZWElzSUdselUyTmhiR0Z5Vm1Gc2RXVWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QkJiR2xoY3lCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDBGc2FXRnpMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHpUbTlrWlN3Z2FYTlFZV2x5TENCTlFWQXNJRk5GVVN3Z2FYTkViMk4xYldWdWRDQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUZOallXeGhjaUI5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMU5qWVd4aGNpNXFjeWM3WEc1Y2JtTnZibk4wSUdSbFptRjFiSFJVWVdkUWNtVm1hWGdnUFNBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNkp6dGNibVoxYm1OMGFXOXVJR1pwYm1SVVlXZFBZbXBsWTNRb2RtRnNkV1VzSUhSaFowNWhiV1VzSUhSaFozTXBJSHRjYmlBZ0lDQnBaaUFvZEdGblRtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFDQTlJSFJoWjNNdVptbHNkR1Z5S0hRZ1BUNGdkQzUwWVdjZ1BUMDlJSFJoWjA1aGJXVXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBZV2RQWW1vZ1BTQnRZWFJqYUM1bWFXNWtLSFFnUFQ0Z0lYUXVabTl5YldGMEtTQS9QeUJ0WVhSamFGc3dYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBZV2RQWW1vcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRlJoWnlBa2UzUmhaMDVoYldWOUlHNXZkQ0JtYjNWdVpHQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR0ZuVDJKcU8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR0ZuY3k1bWFXNWtLSFFnUFQ0Z2RDNXBaR1Z1ZEdsbWVUOHVLSFpoYkhWbEtTQW1KaUFoZEM1bWIzSnRZWFFwTzF4dWZWeHVablZ1WTNScGIyNGdZM0psWVhSbFRtOWtaU2gyWVd4MVpTd2dkR0ZuVG1GdFpTd2dZM1I0S1NCN1hHNGdJQ0FnYVdZZ0tHbHpSRzlqZFcxbGJuUW9kbUZzZFdVcEtWeHVJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlIWmhiSFZsTG1OdmJuUmxiblJ6TzF4dUlDQWdJR2xtSUNocGMwNXZaR1VvZG1Gc2RXVXBLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJQ0FnYVdZZ0tHbHpVR0ZwY2loMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYldGd0lEMGdZM1I0TG5OamFHVnRZVnROUVZCZExtTnlaV0YwWlU1dlpHVS9MaWhqZEhndWMyTm9aVzFoTENCdWRXeHNMQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQnRZWEF1YVhSbGJYTXVjSFZ6YUNoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ0WVhBN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMllXeDFaU0JwYm5OMFlXNWpaVzltSUZOMGNtbHVaeUI4ZkZ4dUlDQWdJQ0FnSUNCMllXeDFaU0JwYm5OMFlXNWpaVzltSUU1MWJXSmxjaUI4ZkZ4dUlDQWdJQ0FnSUNCMllXeDFaU0JwYm5OMFlXNWpaVzltSUVKdmIyeGxZVzRnZkh4Y2JpQWdJQ0FnSUNBZ0tIUjVjR1Z2WmlCQ2FXZEpiblFnSVQwOUlDZDFibVJsWm1sdVpXUW5JQ1ltSUhaaGJIVmxJR2x1YzNSaGJtTmxiMllnUW1sblNXNTBLU0F2THlCdWIzUWdjM1Z3Y0c5eWRHVmtJR1YyWlhKNWQyaGxjbVZjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z2FIUjBjSE02THk5MFl6TTVMbVZ6TDJWamJXRXlOakl2STNObFl5MXpaWEpwWVd4cGVtVnFjMjl1Y0hKdmNHVnlkSGxjYmlBZ0lDQWdJQ0FnZG1Gc2RXVWdQU0IyWVd4MVpTNTJZV3gxWlU5bUtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSHNnWVd4cFlYTkVkWEJzYVdOaGRHVlBZbXBsWTNSekxDQnZia0Z1WTJodmNpd2diMjVVWVdkUFltb3NJSE5qYUdWdFlTd2djMjkxY21ObFQySnFaV04wY3lCOUlEMGdZM1I0TzF4dUlDQWdJQzh2SUVSbGRHVmpkQ0JrZFhCc2FXTmhkR1VnY21WbVpYSmxibU5sY3lCMGJ5QjBhR1VnYzJGdFpTQnZZbXBsWTNRZ0ppQjFjMlVnUVd4cFlYTWdibTlrWlhNZ1ptOXlJR0ZzYkZ4dUlDQWdJQzh2SUdGbWRHVnlJR1pwY25OMExpQlVhR1VnWUhKbFptQWdkM0poY0hCbGNpQmhiR3h2ZDNNZ1ptOXlJR05wY21OMWJHRnlJSEpsWm1WeVpXNWpaWE1nZEc4Z2NtVnpiMngyWlM1Y2JpQWdJQ0JzWlhRZ2NtVm1JRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNoaGJHbGhjMFIxY0d4cFkyRjBaVTlpYW1WamRITWdKaVlnZG1Gc2RXVWdKaVlnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYjJKcVpXTjBKeWtnZTF4dUlDQWdJQ0FnSUNCeVpXWWdQU0J6YjNWeVkyVlBZbXBsWTNSekxtZGxkQ2gyWVd4MVpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoeVpXWXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doY21WbUxtRnVZMmh2Y2lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpXWXVZVzVqYUc5eUlEMGdiMjVCYm1Ob2IzSW9kbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQmJHbGhjeWh5WldZdVlXNWphRzl5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsWmlBOUlIc2dZVzVqYUc5eU9pQnVkV3hzTENCdWIyUmxPaUJ1ZFd4c0lIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCemIzVnlZMlZQWW1wbFkzUnpMbk5sZENoMllXeDFaU3dnY21WbUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kR0ZuVG1GdFpUOHVjM1JoY25SelYybDBhQ2duSVNFbktTbGNiaUFnSUNBZ0lDQWdkR0ZuVG1GdFpTQTlJR1JsWm1GMWJIUlVZV2RRY21WbWFYZ2dLeUIwWVdkT1lXMWxMbk5zYVdObEtESXBPMXh1SUNBZ0lHeGxkQ0IwWVdkUFltb2dQU0JtYVc1a1ZHRm5UMkpxWldOMEtIWmhiSFZsTENCMFlXZE9ZVzFsTENCelkyaGxiV0V1ZEdGbmN5azdYRzRnSUNBZ2FXWWdLQ0YwWVdkUFltb3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsSUNZbUlIUjVjR1Z2WmlCMllXeDFaUzUwYjBwVFQwNGdQVDA5SUNkbWRXNWpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRkVzV6WVdabExXTmhiR3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2RtRnNkV1V1ZEc5S1UwOU9LQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLQ0YyWVd4MVpTQjhmQ0IwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJQ2R2WW1wbFkzUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnYm1WM0lGTmpZV3hoY2loMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21WbUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxaaTV1YjJSbElEMGdibTlrWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnViMlJsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIUmhaMDlpYWlBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQnBibk4wWVc1alpXOW1JRTFoY0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2MyTm9aVzFoVzAxQlVGMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRk41YldKdmJDNXBkR1Z5WVhSdmNpQnBiaUJQWW1wbFkzUW9kbUZzZFdVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnYzJOb1pXMWhXMU5GVVYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUJ6WTJobGJXRmJUVUZRWFR0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0c5dVZHRm5UMkpxS1NCN1hHNGdJQ0FnSUNBZ0lHOXVWR0ZuVDJKcUtIUmhaMDlpYWlrN1hHNGdJQ0FnSUNBZ0lHUmxiR1YwWlNCamRIZ3ViMjVVWVdkUFltbzdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQjBZV2RQWW1vL0xtTnlaV0YwWlU1dlpHVmNiaUFnSUNBZ0lDQWdQeUIwWVdkUFltb3VZM0psWVhSbFRtOWtaU2hqZEhndWMyTm9aVzFoTENCMllXeDFaU3dnWTNSNEtWeHVJQ0FnSUNBZ0lDQTZJSFI1Y0dWdlppQjBZV2RQWW1vL0xtNXZaR1ZEYkdGemN6OHVabkp2YlNBOVBUMGdKMloxYm1OMGFXOXVKMXh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QjBZV2RQWW1vdWJtOWtaVU5zWVhOekxtWnliMjBvWTNSNExuTmphR1Z0WVN3Z2RtRnNkV1VzSUdOMGVDbGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ2JtVjNJRk5qWVd4aGNpaDJZV3gxWlNrN1hHNGdJQ0FnYVdZZ0tIUmhaMDVoYldVcFhHNGdJQ0FnSUNBZ0lHNXZaR1V1ZEdGbklEMGdkR0ZuVG1GdFpUdGNiaUFnSUNCbGJITmxJR2xtSUNnaGRHRm5UMkpxTG1SbFptRjFiSFFwWEc0Z0lDQWdJQ0FnSUc1dlpHVXVkR0ZuSUQwZ2RHRm5UMkpxTG5SaFp6dGNiaUFnSUNCcFppQW9jbVZtS1Z4dUlDQWdJQ0FnSUNCeVpXWXVibTlrWlNBOUlHNXZaR1U3WEc0Z0lDQWdjbVYwZFhKdUlHNXZaR1U3WEc1OVhHNWNibVY0Y0c5eWRDQjdJR055WldGMFpVNXZaR1VnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJqY21WaGRHVk9iMlJsSUgwZ1puSnZiU0FuTGk0dlpHOWpMMk55WldGMFpVNXZaR1V1YW5Nbk8xeHVhVzF3YjNKMElIc2dhWE5PYjJSbExDQnBjMUJoYVhJc0lHbHpRMjlzYkdWamRHbHZiaXdnYVhOVFkyRnNZWElnZlNCbWNtOXRJQ2N1TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJRTV2WkdWQ1lYTmxJSDBnWm5KdmJTQW5MaTlPYjJSbExtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z1kyOXNiR1ZqZEdsdmJrWnliMjFRWVhSb0tITmphR1Z0WVN3Z2NHRjBhQ3dnZG1Gc2RXVXBJSHRjYmlBZ0lDQnNaWFFnZGlBOUlIWmhiSFZsTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCd1lYUm9MbXhsYm1kMGFDQXRJREU3SUdrZ1BqMGdNRHNnTFMxcEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHc2dQU0J3WVhSb1cybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdzZ1BUMDlJQ2R1ZFcxaVpYSW5JQ1ltSUU1MWJXSmxjaTVwYzBsdWRHVm5aWElvYXlrZ0ppWWdheUErUFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCaFcydGRJRDBnZGp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFlnUFNCaE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZGlBOUlHNWxkeUJOWVhBb1cxdHJMQ0IyWFYwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqY21WaGRHVk9iMlJsS0hZc0lIVnVaR1ZtYVc1bFpDd2dlMXh1SUNBZ0lDQWdJQ0JoYkdsaGMwUjFjR3hwWTJGMFpVOWlhbVZqZEhNNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCclpXVndWVzVrWldacGJtVmtPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdiMjVCYm1Ob2IzSTZJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVkdocGN5QnphRzkxYkdRZ2JtOTBJR2hoY0hCbGJpd2djR3hsWVhObElISmxjRzl5ZENCaElHSjFaeTRuS1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjMk5vWlcxaExGeHVJQ0FnSUNBZ0lDQnpiM1Z5WTJWUFltcGxZM1J6T2lCdVpYY2dUV0Z3S0NsY2JpQWdJQ0I5S1R0Y2JuMWNiaTh2SUZSNWNHVWdaM1ZoY21RZ2FYTWdhVzUwWlc1MGFXOXVZV3hzZVNCaElHeHBkSFJzWlNCM2NtOXVaeUJ6YnlCaGN5QjBieUJpWlNCdGIzSmxJSFZ6WldaMWJDeGNiaTh2SUdGeklHbDBJR1J2WlhNZ2JtOTBJR052ZG1WeUlIVnVkSGx3WVdKc1pTQmxiWEIwZVNCdWIyNHRjM1J5YVc1bklHbDBaWEpoWW14bGN5QW9aUzVuTGlCYlhTa3VYRzVqYjI1emRDQnBjMFZ0Y0hSNVVHRjBhQ0E5SUNod1lYUm9LU0E5UGlCd1lYUm9JRDA5SUc1MWJHd2dmSHhjYmlBZ0lDQW9kSGx3Wlc5bUlIQmhkR2dnUFQwOUlDZHZZbXBsWTNRbklDWW1JQ0VoY0dGMGFGdFRlVzFpYjJ3dWFYUmxjbUYwYjNKZEtDa3VibVY0ZENncExtUnZibVVwTzF4dVkyeGhjM01nUTI5c2JHVmpkR2x2YmlCbGVIUmxibVJ6SUU1dlpHVkNZWE5sSUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2loMGVYQmxMQ0J6WTJobGJXRXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9kSGx3WlNrN1hHNGdJQ0FnSUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2gwYUdsekxDQW5jMk5vWlcxaEp5d2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUhOamFHVnRZU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdWRXMWxjbUZpYkdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkM0pwZEdGaWJHVTZJSFJ5ZFdWY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlNCaElHTnZjSGtnYjJZZ2RHaHBjeUJqYjJ4c1pXTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSE5qYUdWdFlTQXRJRWxtSUdSbFptbHVaV1FzSUc5MlpYSjNjbWwwWlhNZ2RHaGxJRzl5YVdkcGJtRnNKM01nYzJOb1pXMWhYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1kyeHZibVVvYzJOb1pXMWhLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR052Y0hrZ1BTQlBZbXBsWTNRdVkzSmxZWFJsS0U5aWFtVmpkQzVuWlhSUWNtOTBiM1I1Y0dWUFppaDBhR2x6S1N3Z1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjbk1vZEdocGN5a3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyTm9aVzFoS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl3ZVM1elkyaGxiV0VnUFNCelkyaGxiV0U3WEc0Z0lDQWdJQ0FnSUdOdmNIa3VhWFJsYlhNZ1BTQmpiM0I1TG1sMFpXMXpMbTFoY0NocGRDQTlQaUJwYzA1dlpHVW9hWFFwSUh4OElHbHpVR0ZwY2locGRDa2dQeUJwZEM1amJHOXVaU2h6WTJobGJXRXBJRG9nYVhRcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXlZVzVuWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJR052Y0hrdWNtRnVaMlVnUFNCMGFHbHpMbkpoYm1kbExuTnNhV05sS0NrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamIzQjVPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJaR1J6SUdFZ2RtRnNkV1VnZEc4Z2RHaGxJR052Ykd4bFkzUnBiMjR1SUVadmNpQmdJU0Z0WVhCZ0lHRnVaQ0JnSVNGdmJXRndZQ0IwYUdVZ2RtRnNkV1VnYlhWemRGeHVJQ0FnSUNBcUlHSmxJR0VnVUdGcGNpQnBibk4wWVc1alpTQnZjaUJoSUdCN0lHdGxlU3dnZG1Gc2RXVWdmV0FnYjJKcVpXTjBMQ0IzYUdsamFDQnRZWGtnYm05MElHaGhkbVVnWVNCclpYbGNiaUFnSUNBZ0tpQjBhR0YwSUdGc2NtVmhaSGtnWlhocGMzUnpJR2x1SUhSb1pTQnRZWEF1WEc0Z0lDQWdJQ292WEc0Z0lDQWdZV1JrU1c0b2NHRjBhQ3dnZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpSVzF3ZEhsUVlYUm9LSEJoZEdncEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWhaR1FvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRnRyWlhrc0lDNHVMbkpsYzNSZElEMGdjR0YwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNXZaR1VnUFNCMGFHbHpMbWRsZENoclpYa3NJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHpRMjlzYkdWamRHbHZiaWh1YjJSbEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG1Ga1pFbHVLSEpsYzNRc0lIWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLRzV2WkdVZ1BUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCMGFHbHpMbk5qYUdWdFlTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRDaHJaWGtzSUdOdmJHeGxZM1JwYjI1R2NtOXRVR0YwYUNoMGFHbHpMbk5qYUdWdFlTd2djbVZ6ZEN3Z2RtRnNkV1VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUVWNGNHVmpkR1ZrSUZsQlRVd2dZMjlzYkdWamRHbHZiaUJoZENBa2UydGxlWDB1SUZKbGJXRnBibWx1WnlCd1lYUm9PaUFrZTNKbGMzUjlZQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJoSUhaaGJIVmxJR1p5YjIwZ2RHaGxJR052Ykd4bFkzUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUhSb1pTQnBkR1Z0SUhkaGN5Qm1iM1Z1WkNCaGJtUWdjbVZ0YjNabFpDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCa1pXeGxkR1ZKYmlod1lYUm9LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRnRyWlhrc0lDNHVMbkpsYzNSZElEMGdjR0YwYUR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsYzNRdWJHVnVaM1JvSUQwOVBTQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaR1ZzWlhSbEtHdGxlU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQjBhR2x6TG1kbGRDaHJaWGtzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkRiMnhzWldOMGFXOXVLRzV2WkdVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzV2WkdVdVpHVnNaWFJsU1c0b2NtVnpkQ2s3WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUlhod1pXTjBaV1FnV1VGTlRDQmpiMnhzWldOMGFXOXVJR0YwSUNSN2EyVjVmUzRnVW1WdFlXbHVhVzVuSUhCaGRHZzZJQ1I3Y21WemRIMWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVYwZFhKdWN5QnBkR1Z0SUdGMElHQnJaWGxnTENCdmNpQmdkVzVrWldacGJtVmtZQ0JwWmlCdWIzUWdabTkxYm1RdUlFSjVJR1JsWm1GMWJIUWdkVzUzY21Gd2MxeHVJQ0FnSUNBcUlITmpZV3hoY2lCMllXeDFaWE1nWm5KdmJTQjBhR1ZwY2lCemRYSnliM1Z1WkdsdVp5QnViMlJsT3lCMGJ5QmthWE5oWW14bElITmxkQ0JnYTJWbGNGTmpZV3hoY21BZ2RHOWNiaUFnSUNBZ0tpQmdkSEoxWldBZ0tHTnZiR3hsWTNScGIyNXpJR0Z5WlNCaGJIZGhlWE1nY21WMGRYSnVaV1FnYVc1MFlXTjBLUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFJKYmlod1lYUm9MQ0JyWldWd1UyTmhiR0Z5S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0clpYa3NJQzR1TG5KbGMzUmRJRDBnY0dGMGFEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtOWtaU0E5SUhSb2FYTXVaMlYwS0d0bGVTd2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMExteGxibWQwYUNBOVBUMGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBaGEyVmxjRk5qWVd4aGNpQW1KaUJwYzFOallXeGhjaWh1YjJSbEtTQS9JRzV2WkdVdWRtRnNkV1VnT2lCdWIyUmxPMXh1SUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5EYjJ4c1pXTjBhVzl1S0c1dlpHVXBJRDhnYm05a1pTNW5aWFJKYmloeVpYTjBMQ0JyWldWd1UyTmhiR0Z5S1NBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNGdJQ0FnYUdGelFXeHNUblZzYkZaaGJIVmxjeWhoYkd4dmQxTmpZV3hoY2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVwZEdWdGN5NWxkbVZ5ZVNodWIyUmxJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGFYTlFZV2x5S0c1dlpHVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNGdQU0J1YjJSbExuWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDaHVJRDA5SUc1MWJHd2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvWVd4c2IzZFRZMkZzWVhJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhOVFkyRnNZWElvYmlrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYmk1MllXeDFaU0E5UFNCdWRXeHNJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDRnVMbU52YlcxbGJuUkNaV1p2Y21VZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVc0dVkyOXRiV1Z1ZENBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FoYmk1MFlXY3BLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCMGFHVWdZMjlzYkdWamRHbHZiaUJwYm1Oc2RXUmxjeUJoSUhaaGJIVmxJSGRwZEdnZ2RHaGxJR3RsZVNCZ2EyVjVZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm9ZWE5KYmlod1lYUm9LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRnRyWlhrc0lDNHVMbkpsYzNSZElEMGdjR0YwYUR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsYzNRdWJHVnVaM1JvSUQwOVBTQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhR0Z6S0d0bGVTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNXZaR1VnUFNCMGFHbHpMbWRsZENoclpYa3NJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkRiMnhzWldOMGFXOXVLRzV2WkdVcElEOGdibTlrWlM1b1lYTkpiaWh5WlhOMEtTQTZJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJR0VnZG1Gc2RXVWdhVzRnZEdocGN5QmpiMnhzWldOMGFXOXVMaUJHYjNJZ1lDRWhjMlYwWUN3Z1lIWmhiSFZsWUNCdVpXVmtjeUIwYnlCaVpTQmhYRzRnSUNBZ0lDb2dZbTl2YkdWaGJpQjBieUJoWkdRdmNtVnRiM1psSUhSb1pTQnBkR1Z0SUdaeWIyMGdkR2hsSUhObGRDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCelpYUkpiaWh3WVhSb0xDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCYmEyVjVMQ0F1TGk1eVpYTjBYU0E5SUhCaGRHZzdYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjBMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFFvYTJWNUxDQjJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2RHaHBjeTVuWlhRb2EyVjVMQ0IwY25WbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjME52Ykd4bFkzUnBiMjRvYm05a1pTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibTlrWlM1elpYUkpiaWh5WlhOMExDQjJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2h1YjJSbElEMDlQU0IxYm1SbFptbHVaV1FnSmlZZ2RHaHBjeTV6WTJobGJXRXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUW9hMlY1TENCamIyeHNaV04wYVc5dVJuSnZiVkJoZEdnb2RHaHBjeTV6WTJobGJXRXNJSEpsYzNRc0lIWmhiSFZsS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCRmVIQmxZM1JsWkNCWlFVMU1JR052Ykd4bFkzUnBiMjRnWVhRZ0pIdHJaWGw5TGlCU1pXMWhhVzVwYm1jZ2NHRjBhRG9nSkh0eVpYTjBmV0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVYRzVsZUhCdmNuUWdleUJEYjJ4c1pXTjBhVzl1TENCamIyeHNaV04wYVc5dVJuSnZiVkJoZEdnc0lHbHpSVzF3ZEhsUVlYUm9JSDA3WEc0aUxDQWlMeW9xWEc0Z0tpQlRkSEpwYm1kcFptbGxjeUJoSUdOdmJXMWxiblF1WEc0Z0tseHVJQ29nUlcxd2RIa2dZMjl0YldWdWRDQnNhVzVsY3lCaGNtVWdiR1ZtZENCbGJYQjBlU3hjYmlBcUlHeHBibVZ6SUdOdmJuTnBjM1JwYm1jZ2IyWWdZU0J6YVc1bmJHVWdjM0JoWTJVZ1lYSmxJSEpsY0d4aFkyVmtJR0o1SUdBallDeGNiaUFxSUdGdVpDQmhiR3dnYjNSb1pYSWdiR2x1WlhNZ1lYSmxJSEJ5WldacGVHVmtJSGRwZEdnZ1lTQmdJMkF1WEc0Z0tpOWNibU52Ym5OMElITjBjbWx1WjJsbWVVTnZiVzFsYm5RZ1BTQW9jM1J5S1NBOVBpQnpkSEl1Y21Wd2JHRmpaU2d2WGlnL0lTUXBLRDg2SUNRcFB5OW5iU3dnSnlNbktUdGNibVoxYm1OMGFXOXVJR2x1WkdWdWRFTnZiVzFsYm5Rb1kyOXRiV1Z1ZEN3Z2FXNWtaVzUwS1NCN1hHNGdJQ0FnYVdZZ0tDOWVYRnh1S3lRdkxuUmxjM1FvWTI5dGJXVnVkQ2twWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYjIxdFpXNTBMbk4xWW5OMGNtbHVaeWd4S1R0Y2JpQWdJQ0J5WlhSMWNtNGdhVzVrWlc1MElEOGdZMjl0YldWdWRDNXlaWEJzWVdObEtDOWVLRDhoSUNva0tTOW5iU3dnYVc1a1pXNTBLU0E2SUdOdmJXMWxiblE3WEc1OVhHNWpiMjV6ZENCc2FXNWxRMjl0YldWdWRDQTlJQ2h6ZEhJc0lHbHVaR1Z1ZEN3Z1kyOXRiV1Z1ZENrZ1BUNGdjM1J5TG1WdVpITlhhWFJvS0NkY1hHNG5LVnh1SUNBZ0lEOGdhVzVrWlc1MFEyOXRiV1Z1ZENoamIyMXRaVzUwTENCcGJtUmxiblFwWEc0Z0lDQWdPaUJqYjIxdFpXNTBMbWx1WTJ4MVpHVnpLQ2RjWEc0bktWeHVJQ0FnSUNBZ0lDQS9JQ2RjWEc0bklDc2dhVzVrWlc1MFEyOXRiV1Z1ZENoamIyMXRaVzUwTENCcGJtUmxiblFwWEc0Z0lDQWdJQ0FnSURvZ0tITjBjaTVsYm1SelYybDBhQ2duSUNjcElEOGdKeWNnT2lBbklDY3BJQ3NnWTI5dGJXVnVkRHRjYmx4dVpYaHdiM0owSUhzZ2FXNWtaVzUwUTI5dGJXVnVkQ3dnYkdsdVpVTnZiVzFsYm5Rc0lITjBjbWx1WjJsbWVVTnZiVzFsYm5RZ2ZUdGNiaUlzSUNKamIyNXpkQ0JHVDB4RVgwWk1UMWNnUFNBblpteHZkeWM3WEc1amIyNXpkQ0JHVDB4RVgwSk1UME5MSUQwZ0oySnNiMk5ySnp0Y2JtTnZibk4wSUVaUFRFUmZVVlZQVkVWRUlEMGdKM0YxYjNSbFpDYzdYRzR2S2lwY2JpQXFJRlJ5YVdWeklIUnZJR3RsWlhBZ2FXNXdkWFFnWVhRZ2RYQWdkRzhnWUd4cGJtVlhhV1IwYUdBZ1kyaGhjbUZqZEdWeWN5d2djM0JzYVhSMGFXNW5JRzl1YkhrZ2IyNGdjM0JoWTJWelhHNGdLaUJ1YjNRZ1ptOXNiRzkzWldRZ1lua2dibVYzYkdsdVpYTWdiM0lnYzNCaFkyVnpJSFZ1YkdWemN5QmdiVzlrWldBZ2FYTWdZQ2R4ZFc5MFpXUW5ZQzRnVEdsdVpYTWdZWEpsWEc0Z0tpQjBaWEp0YVc1aGRHVmtJSGRwZEdnZ1lGeGNibUFnWVc1a0lITjBZWEowWldRZ2QybDBhQ0JnYVc1a1pXNTBZQzVjYmlBcUwxeHVablZ1WTNScGIyNGdabTlzWkVac2IzZE1hVzVsY3loMFpYaDBMQ0JwYm1SbGJuUXNJRzF2WkdVZ1BTQW5abXh2ZHljc0lIc2dhVzVrWlc1MFFYUlRkR0Z5ZEN3Z2JHbHVaVmRwWkhSb0lEMGdPREFzSUcxcGJrTnZiblJsYm5SWGFXUjBhQ0E5SURJd0xDQnZia1p2YkdRc0lHOXVUM1psY21ac2IzY2dmU0E5SUh0OUtTQjdYRzRnSUNBZ2FXWWdLQ0ZzYVc1bFYybGtkR2dnZkh3Z2JHbHVaVmRwWkhSb0lEd2dNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJsZUhRN1hHNGdJQ0FnYVdZZ0tHeHBibVZYYVdSMGFDQThJRzFwYmtOdmJuUmxiblJYYVdSMGFDbGNiaUFnSUNBZ0lDQWdiV2x1UTI5dWRHVnVkRmRwWkhSb0lEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCbGJtUlRkR1Z3SUQwZ1RXRjBhQzV0WVhnb01TQXJJRzFwYmtOdmJuUmxiblJYYVdSMGFDd2dNU0FySUd4cGJtVlhhV1IwYUNBdElHbHVaR1Z1ZEM1c1pXNW5kR2dwTzF4dUlDQWdJR2xtSUNoMFpYaDBMbXhsYm1kMGFDQThQU0JsYm1SVGRHVndLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR1Y0ZER0Y2JpQWdJQ0JqYjI1emRDQm1iMnhrY3lBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUdWelkyRndaV1JHYjJ4a2N5QTlJSHQ5TzF4dUlDQWdJR3hsZENCbGJtUWdQU0JzYVc1bFYybGtkR2dnTFNCcGJtUmxiblF1YkdWdVozUm9PMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdhVzVrWlc1MFFYUlRkR0Z5ZENBOVBUMGdKMjUxYldKbGNpY3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHVaR1Z1ZEVGMFUzUmhjblFnUGlCc2FXNWxWMmxrZEdnZ0xTQk5ZWFJvTG0xaGVDZ3lMQ0J0YVc1RGIyNTBaVzUwVjJsa2RHZ3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXNaSE11Y0hWemFDZ3dLVHRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0lEMGdiR2x1WlZkcFpIUm9JQzBnYVc1a1pXNTBRWFJUZEdGeWREdGNiaUFnSUNCOVhHNGdJQ0FnYkdWMElITndiR2wwSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUd4bGRDQndjbVYySUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUd4bGRDQnZkbVZ5Wm14dmR5QTlJR1poYkhObE8xeHVJQ0FnSUd4bGRDQnBJRDBnTFRFN1hHNGdJQ0FnYkdWMElHVnpZMU4wWVhKMElEMGdMVEU3WEc0Z0lDQWdiR1YwSUdWelkwVnVaQ0E5SUMweE8xeHVJQ0FnSUdsbUlDaHRiMlJsSUQwOVBTQkdUMHhFWDBKTVQwTkxLU0I3WEc0Z0lDQWdJQ0FnSUdrZ1BTQmpiMjV6ZFcxbFRXOXlaVWx1WkdWdWRHVmtUR2x1WlhNb2RHVjRkQ3dnYVN3Z2FXNWtaVzUwTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBJQ0U5UFNBdE1TbGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdVpDQTlJR2tnS3lCbGJtUlRkR1Z3TzF4dUlDQWdJSDFjYmlBZ0lDQm1iM0lnS0d4bGRDQmphRHNnS0dOb0lEMGdkR1Y0ZEZzb2FTQXJQU0F4S1YwcE95a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JXOWtaU0E5UFQwZ1JrOU1SRjlSVlU5VVJVUWdKaVlnWTJnZ1BUMDlJQ2RjWEZ4Y0p5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYTmpVM1JoY25RZ1BTQnBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMFpYaDBXMmtnS3lBeFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozZ25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDczlJRE03WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM1VuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJQ3M5SURVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjFVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwSUNzOUlEazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdrZ0t6MGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWelkwVnVaQ0E5SUdrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuWEZ4dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzF2WkdVZ1BUMDlJRVpQVEVSZlFreFBRMHNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBOUlHTnZibk4xYldWTmIzSmxTVzVrWlc1MFpXUk1hVzVsY3loMFpYaDBMQ0JwTENCcGJtUmxiblF1YkdWdVozUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnVaQ0E5SUdrZ0t5QnBibVJsYm5RdWJHVnVaM1JvSUNzZ1pXNWtVM1JsY0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE53YkdsMElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05vSUQwOVBTQW5JQ2NnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRpQWhQVDBnSnlBbklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjSEpsZGlBaFBUMGdKMXhjYmljZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbVYySUNFOVBTQW5YRngwSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJSE53WVdObElITjFjbkp2ZFc1a1pXUWdZbmtnYm05dUxYTndZV05sSUdOaGJpQmlaU0J5WlhCc1lXTmxaQ0IzYVhSb0lHNWxkMnhwYm1VZ0t5QnBibVJsYm5SY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1WlhoMElEMGdkR1Y0ZEZ0cElDc2dNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHNWxlSFFnSmlZZ2JtVjRkQ0FoUFQwZ0p5QW5JQ1ltSUc1bGVIUWdJVDA5SUNkY1hHNG5JQ1ltSUc1bGVIUWdJVDA5SUNkY1hIUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemNHeHBkQ0E5SUdrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVNBK1BTQmxibVFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM0JzYVhRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05c1pITXVjSFZ6YUNoemNHeHBkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVaQ0E5SUhOd2JHbDBJQ3NnWlc1a1UzUmxjRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzQnNhWFFnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHMXZaR1VnUFQwOUlFWlBURVJmVVZWUFZFVkVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJSGRvYVhSbExYTndZV05sSUdOdmJHeGxZM1JsWkNCaGRDQmxibVFnYldGNUlITjBjbVYwWTJnZ2NHRnpkQ0JzYVc1bFYybGtkR2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0hCeVpYWWdQVDA5SUNjZ0p5QjhmQ0J3Y21WMklEMDlQU0FuWEZ4MEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjSEpsZGlBOUlHTm9PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmdnUFNCMFpYaDBXeWhwSUNzOUlERXBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkyWlhKbWJHOTNJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJCWTJOdmRXNTBJR1p2Y2lCdVpYZHNhVzVsSUdWelkyRndaU3dnWW5WMElHUnZiaWQwSUdKeVpXRnJJSEJ5WldObFpHbHVaeUJsYzJOaGNHVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhaUE5SUdrZ1BpQmxjMk5GYm1RZ0t5QXhJRDhnYVNBdElESWdPaUJsYzJOVGRHRnlkQ0F0SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUVKaGFXd2diM1YwSUdsbUlHeHBibVZYYVdSMGFDQW1JRzFwYmtOdmJuUmxiblJYYVdSMGFDQmhjbVVnYzJodmNuUmxjaUIwYUdGdUlHRnVJR1Z6WTJGd1pTQnpkSEpwYm1kY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWelkyRndaV1JHYjJ4a2MxdHFYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBaWGgwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iMnhrY3k1d2RYTm9LR29wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxjMk5oY0dWa1JtOXNaSE5iYWwwZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxibVFnUFNCcUlDc2daVzVrVTNSbGNEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNCc2FYUWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmRtVnlabXh2ZHlBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhCeVpYWWdQU0JqYUR0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0c5MlpYSm1iRzkzSUNZbUlHOXVUM1psY21ac2IzY3BYRzRnSUNBZ0lDQWdJRzl1VDNabGNtWnNiM2NvS1R0Y2JpQWdJQ0JwWmlBb1ptOXNaSE11YkdWdVozUm9JRDA5UFNBd0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHVjRkRHRjYmlBZ0lDQnBaaUFvYjI1R2IyeGtLVnh1SUNBZ0lDQWdJQ0J2YmtadmJHUW9LVHRjYmlBZ0lDQnNaWFFnY21WeklEMGdkR1Y0ZEM1emJHbGpaU2d3TENCbWIyeGtjMXN3WFNrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCbWIyeGtjeTVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWIyeGtJRDBnWm05c1pITmJhVjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkNBOUlHWnZiR1J6VzJrZ0t5QXhYU0I4ZkNCMFpYaDBMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdhV1lnS0dadmJHUWdQVDA5SURBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhNZ1BTQmdYRnh1Skh0cGJtUmxiblI5Skh0MFpYaDBMbk5zYVdObEtEQXNJR1Z1WkNsOVlEdGNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JXOWtaU0E5UFQwZ1JrOU1SRjlSVlU5VVJVUWdKaVlnWlhOallYQmxaRVp2YkdSelcyWnZiR1JkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGN5QXJQU0JnSkh0MFpYaDBXMlp2YkdSZGZWeGNYRnhnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6SUNzOUlHQmNYRzRrZTJsdVpHVnVkSDBrZTNSbGVIUXVjMnhwWTJVb1ptOXNaQ0FySURFc0lHVnVaQ2w5WUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjbVZ6TzF4dWZWeHVMeW9xWEc0Z0tpQlFjbVZ6ZFcxbGN5QmdhU0FySURGZ0lHbHpJR0YwSUhSb1pTQnpkR0Z5ZENCdlppQmhJR3hwYm1WY2JpQXFJRUJ5WlhSMWNtNXpJR2x1WkdWNElHOW1JR3hoYzNRZ2JtVjNiR2x1WlNCcGJpQnRiM0psTFdsdVpHVnVkR1ZrSUdKc2IyTnJYRzRnS2k5Y2JtWjFibU4wYVc5dUlHTnZibk4xYldWTmIzSmxTVzVrWlc1MFpXUk1hVzVsY3loMFpYaDBMQ0JwTENCcGJtUmxiblFwSUh0Y2JpQWdJQ0JzWlhRZ1pXNWtJRDBnYVR0Y2JpQWdJQ0JzWlhRZ2MzUmhjblFnUFNCcElDc2dNVHRjYmlBZ0lDQnNaWFFnWTJnZ1BTQjBaWGgwVzNOMFlYSjBYVHRjYmlBZ0lDQjNhR2xzWlNBb1kyZ2dQVDA5SUNjZ0p5QjhmQ0JqYUNBOVBUMGdKMXhjZENjcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0drZ1BDQnpkR0Z5ZENBcklHbHVaR1Z1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBaWGgwV3lzcmFWMDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2J5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmdnUFNCMFpYaDBXeXNyYVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUhkb2FXeGxJQ2hqYUNBbUppQmphQ0FoUFQwZ0oxeGNiaWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaVzVrSUQwZ2FUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMFlYSjBJRDBnYVNBcklERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCamFDQTlJSFJsZUhSYmMzUmhjblJkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmxibVE3WEc1OVhHNWNibVY0Y0c5eWRDQjdJRVpQVEVSZlFreFBRMHNzSUVaUFRFUmZSa3hQVnl3Z1JrOU1SRjlSVlU5VVJVUXNJR1p2YkdSR2JHOTNUR2x1WlhNZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCVFkyRnNZWElnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ1ptOXNaRVpzYjNkTWFXNWxjeXdnUms5TVJGOVJWVTlVUlVRc0lFWlBURVJmUmt4UFZ5d2dSazlNUkY5Q1RFOURTeUI5SUdaeWIyMGdKeTR2Wm05c1pFWnNiM2RNYVc1bGN5NXFjeWM3WEc1Y2JtTnZibk4wSUdkbGRFWnZiR1JQY0hScGIyNXpJRDBnS0dOMGVDd2dhWE5DYkc5amF5a2dQVDRnS0h0Y2JpQWdJQ0JwYm1SbGJuUkJkRk4wWVhKME9pQnBjMEpzYjJOcklEOGdZM1I0TG1sdVpHVnVkQzVzWlc1bmRHZ2dPaUJqZEhndWFXNWtaVzUwUVhSVGRHRnlkQ3hjYmlBZ0lDQnNhVzVsVjJsa2RHZzZJR04wZUM1dmNIUnBiMjV6TG14cGJtVlhhV1IwYUN4Y2JpQWdJQ0J0YVc1RGIyNTBaVzUwVjJsa2RHZzZJR04wZUM1dmNIUnBiMjV6TG0xcGJrTnZiblJsYm5SWGFXUjBhRnh1ZlNrN1hHNHZMeUJCYkhOdklHTm9aV05yY3lCbWIzSWdiR2x1WlhNZ2MzUmhjblJwYm1jZ2QybDBhQ0FsTENCaGN5QndZWEp6YVc1bklIUm9aU0J2ZFhSd2RYUWdZWE1nV1VGTlRDQXhMakVnZDJsc2JGeHVMeThnY0hKbGMzVnRaU0IwYUdGMEozTWdjM1JoY25ScGJtY2dZU0J1WlhjZ1pHOWpkVzFsYm5RdVhHNWpiMjV6ZENCamIyNTBZV2x1YzBSdlkzVnRaVzUwVFdGeWEyVnlJRDBnS0hOMGNpa2dQVDRnTDE0b0pYd3RMUzE4WEZ3dVhGd3VYRnd1S1M5dExuUmxjM1FvYzNSeUtUdGNibVoxYm1OMGFXOXVJR3hwYm1WTVpXNW5kR2hQZG1WeVRHbHRhWFFvYzNSeUxDQnNhVzVsVjJsa2RHZ3NJR2x1WkdWdWRFeGxibWQwYUNrZ2UxeHVJQ0FnSUdsbUlDZ2hiR2x1WlZkcFpIUm9JSHg4SUd4cGJtVlhhV1IwYUNBOElEQXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0JqYjI1emRDQnNhVzFwZENBOUlHeHBibVZYYVdSMGFDQXRJR2x1WkdWdWRFeGxibWQwYUR0Y2JpQWdJQ0JqYjI1emRDQnpkSEpNWlc0Z1BTQnpkSEl1YkdWdVozUm9PMXh1SUNBZ0lHbG1JQ2h6ZEhKTVpXNGdQRDBnYkdsdGFYUXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Dd2djM1JoY25RZ1BTQXdPeUJwSUR3Z2MzUnlUR1Z1T3lBcksya3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITjBjbHRwWFNBOVBUMGdKMXhjYmljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBJQzBnYzNSaGNuUWdQaUJzYVcxcGRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowSUQwZ2FTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNSeVRHVnVJQzBnYzNSaGNuUWdQRDBnYkdsdGFYUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjBjblZsTzF4dWZWeHVablZ1WTNScGIyNGdaRzkxWW14bFVYVnZkR1ZrVTNSeWFXNW5LSFpoYkhWbExDQmpkSGdwSUh0Y2JpQWdJQ0JqYjI1emRDQnFjMjl1SUQwZ1NsTlBUaTV6ZEhKcGJtZHBabmtvZG1Gc2RXVXBPMXh1SUNBZ0lHbG1JQ2hqZEhndWIzQjBhVzl1Y3k1a2IzVmliR1ZSZFc5MFpXUkJjMHBUVDA0cFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcWMyOXVPMXh1SUNBZ0lHTnZibk4wSUhzZ2FXMXdiR2xqYVhSTFpYa2dmU0E5SUdOMGVEdGNiaUFnSUNCamIyNXpkQ0J0YVc1TmRXeDBhVXhwYm1WTVpXNW5kR2dnUFNCamRIZ3ViM0IwYVc5dWN5NWtiM1ZpYkdWUmRXOTBaV1JOYVc1TmRXeDBhVXhwYm1WTVpXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2FXNWtaVzUwSUQwZ1kzUjRMbWx1WkdWdWRDQjhmQ0FvWTI5dWRHRnBibk5FYjJOMWJXVnVkRTFoY210bGNpaDJZV3gxWlNrZ1B5QW5JQ0FuSURvZ0p5Y3BPMXh1SUNBZ0lHeGxkQ0J6ZEhJZ1BTQW5KenRjYmlBZ0lDQnNaWFFnYzNSaGNuUWdQU0F3TzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd0xDQmphQ0E5SUdwemIyNWJhVjA3SUdOb095QmphQ0E5SUdwemIyNWJLeXRwWFNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWTJnZ1BUMDlJQ2NnSnlBbUppQnFjMjl1VzJrZ0t5QXhYU0E5UFQwZ0oxeGNYRnduSUNZbUlHcHpiMjViYVNBcklESmRJRDA5UFNBbmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSE53WVdObElHSmxabTl5WlNCdVpYZHNhVzVsSUc1bFpXUnpJSFJ2SUdKbElHVnpZMkZ3WldRZ2RHOGdibTkwSUdKbElHWnZiR1JsWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlHcHpiMjR1YzJ4cFkyVW9jM1JoY25Rc0lHa3BJQ3NnSjF4Y1hGd2dKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHa2dLejBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMElEMGdhVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9JRDBnSjF4Y1hGd25PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0oxeGNYRnduS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaHFjMjl1VzJrZ0t5QXhYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM1VuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ2FuTnZiaTV6YkdsalpTaHpkR0Z5ZEN3Z2FTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamIyUmxJRDBnYW5OdmJpNXpkV0p6ZEhJb2FTQXJJRElzSURRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoamIyUmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuTURBd01DYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNBblhGeGNYREFuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDY3dNREEzSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlDczlJQ2RjWEZ4Y1lTYzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnpBd01HSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ0oxeGNYRngySnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5NREF4WWljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0FuWEZ4Y1hHVW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjd01EZzFKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlDZGNYRnhjVGljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKekF3WVRBbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdLejBnSjF4Y1hGeGZKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbk1qQXlPQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY2lBclBTQW5YRnhjWEV3bk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2N5TURJNUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUNkY1hGeGNVQ2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYjJSbExuTjFZbk4wY2lnd0xDQXlLU0E5UFQwZ0p6QXdKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0FuWEZ4Y1hIZ25JQ3NnWTI5a1pTNXpkV0p6ZEhJb01pazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0JxYzI5dUxuTjFZbk4wY2locExDQTJLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2tnS3owZ05UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowSUQwZ2FTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBiWEJzYVdOcGRFdGxlU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYW5OdmJsdHBJQ3NnTWwwZ1BUMDlJQ2RjSWljZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHcHpiMjR1YkdWdVozUm9JRHdnYldsdVRYVnNkR2xNYVc1bFRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcElDczlJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJtYjJ4a2FXNW5JSGRwYkd3Z1pXRjBJR1pwY25OMElHNWxkMnhwYm1WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0JxYzI5dUxuTnNhV05sS0hOMFlYSjBMQ0JwS1NBcklDZGNYRzVjWEc0bk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0dwemIyNWJhU0FySURKZElEMDlQU0FuWEZ4Y1hDY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcWMyOXVXMmtnS3lBelhTQTlQVDBnSjI0bklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYW5OdmJsdHBJQ3NnTkYwZ0lUMDlJQ2RjSWljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhJZ0t6MGdKMXhjYmljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUdsdVpHVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUhOd1lXTmxJR0ZtZEdWeUlHNWxkMnhwYm1VZ2JtVmxaSE1nZEc4Z1ltVWdaWE5qWVhCbFpDQjBieUJ1YjNRZ1ltVWdabTlzWkdWa1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hbk52Ymx0cElDc2dNbDBnUFQwOUlDY2dKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdLejBnSjF4Y1hGd25PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblFnUFNCcElDc2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwSUNzOUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSE4wY2lBOUlITjBZWEowSUQ4Z2MzUnlJQ3NnYW5OdmJpNXpiR2xqWlNoemRHRnlkQ2tnT2lCcWMyOXVPMXh1SUNBZ0lISmxkSFZ5YmlCcGJYQnNhV05wZEV0bGVWeHVJQ0FnSUNBZ0lDQS9JSE4wY2x4dUlDQWdJQ0FnSUNBNklHWnZiR1JHYkc5M1RHbHVaWE1vYzNSeUxDQnBibVJsYm5Rc0lFWlBURVJmVVZWUFZFVkVMQ0JuWlhSR2IyeGtUM0IwYVc5dWN5aGpkSGdzSUdaaGJITmxLU2s3WEc1OVhHNW1kVzVqZEdsdmJpQnphVzVuYkdWUmRXOTBaV1JUZEhKcGJtY29kbUZzZFdVc0lHTjBlQ2tnZTF4dUlDQWdJR2xtSUNoamRIZ3ViM0IwYVc5dWN5NXphVzVuYkdWUmRXOTBaU0E5UFQwZ1ptRnNjMlVnZkh4Y2JpQWdJQ0FnSUNBZ0tHTjBlQzVwYlhCc2FXTnBkRXRsZVNBbUppQjJZV3gxWlM1cGJtTnNkV1JsY3lnblhGeHVKeWtwSUh4OFhHNGdJQ0FnSUNBZ0lDOWJJRnhjZEYxY1hHNThYRnh1V3lCY1hIUmRMeTUwWlhOMEtIWmhiSFZsS1NBdkx5QnphVzVuYkdVZ2NYVnZkR1ZrSUhOMGNtbHVaeUJqWVc0bmRDQm9ZWFpsSUd4bFlXUnBibWNnYjNJZ2RISmhhV3hwYm1jZ2QyaHBkR1Z6Y0dGalpTQmhjbTkxYm1RZ2JtVjNiR2x1WlZ4dUlDQWdJQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1J2ZFdKc1pWRjFiM1JsWkZOMGNtbHVaeWgyWVd4MVpTd2dZM1I0S1R0Y2JpQWdJQ0JqYjI1emRDQnBibVJsYm5RZ1BTQmpkSGd1YVc1a1pXNTBJSHg4SUNoamIyNTBZV2x1YzBSdlkzVnRaVzUwVFdGeWEyVnlLSFpoYkhWbEtTQS9JQ2NnSUNjZ09pQW5KeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpJRDBnWENJblhDSWdLeUIyWVd4MVpTNXlaWEJzWVdObEtDOG5MMmNzSUZ3aUp5ZGNJaWt1Y21Wd2JHRmpaU2d2WEZ4dUt5OW5MQ0JnSkNaY1hHNGtlMmx1WkdWdWRIMWdLU0FySUZ3aUoxd2lPMXh1SUNBZ0lISmxkSFZ5YmlCamRIZ3VhVzF3YkdsamFYUkxaWGxjYmlBZ0lDQWdJQ0FnUHlCeVpYTmNiaUFnSUNBZ0lDQWdPaUJtYjJ4a1JteHZkMHhwYm1WektISmxjeXdnYVc1a1pXNTBMQ0JHVDB4RVgwWk1UMWNzSUdkbGRFWnZiR1JQY0hScGIyNXpLR04wZUN3Z1ptRnNjMlVwS1R0Y2JuMWNibVoxYm1OMGFXOXVJSEYxYjNSbFpGTjBjbWx1WnloMllXeDFaU3dnWTNSNEtTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCemFXNW5iR1ZSZFc5MFpTQjlJRDBnWTNSNExtOXdkR2x2Ym5NN1hHNGdJQ0FnYkdWMElIRnpPMXh1SUNBZ0lHbG1JQ2h6YVc1bmJHVlJkVzkwWlNBOVBUMGdabUZzYzJVcFhHNGdJQ0FnSUNBZ0lIRnpJRDBnWkc5MVlteGxVWFZ2ZEdWa1UzUnlhVzVuTzF4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCb1lYTkViM1ZpYkdVZ1BTQjJZV3gxWlM1cGJtTnNkV1JsY3lnblhDSW5LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhR0Z6VTJsdVoyeGxJRDBnZG1Gc2RXVXVhVzVqYkhWa1pYTW9YQ0luWENJcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYUdGelJHOTFZbXhsSUNZbUlDRm9ZWE5UYVc1bmJHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeGN5QTlJSE5wYm1kc1pWRjFiM1JsWkZOMGNtbHVaenRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYUdGelUybHVaMnhsSUNZbUlDRm9ZWE5FYjNWaWJHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeGN5QTlJR1J2ZFdKc1pWRjFiM1JsWkZOMGNtbHVaenRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnY1hNZ1BTQnphVzVuYkdWUmRXOTBaU0EvSUhOcGJtZHNaVkYxYjNSbFpGTjBjbWx1WnlBNklHUnZkV0pzWlZGMWIzUmxaRk4wY21sdVp6dGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSEZ6S0haaGJIVmxMQ0JqZEhncE8xeHVmVnh1THk4Z1ZHaGxJRzVsWjJGMGFYWmxJR3h2YjJ0aVpXaHBibVFnWVhadmFXUnpJR0VnY0c5c2VXNXZiV2xoYkNCelpXRnlZMmdzWEc0dkx5QmlkWFFnYVhOdUozUWdjM1Z3Y0c5eWRHVmtJSGxsZENCdmJpQlRZV1poY21rNklHaDBkSEJ6T2k4dlkyRnVhWFZ6WlM1amIyMHZhbk10Y21WblpYaHdMV3h2YjJ0aVpXaHBibVJjYm14bGRDQmliRzlqYTBWdVpFNWxkMnhwYm1Wek8xeHVkSEo1SUh0Y2JpQWdJQ0JpYkc5amEwVnVaRTVsZDJ4cGJtVnpJRDBnYm1WM0lGSmxaMFY0Y0NnbktGNThLRDg4SVZ4Y2Jpa3BYRnh1S3lnL0lWeGNibndrS1Njc0lDZG5KeWs3WEc1OVhHNWpZWFJqYUNCN1hHNGdJQ0FnWW14dlkydEZibVJPWlhkc2FXNWxjeUE5SUM5Y1hHNHJLRDhoWEZ4dWZDUXBMMmM3WEc1OVhHNW1kVzVqZEdsdmJpQmliRzlqYTFOMGNtbHVaeWg3SUdOdmJXMWxiblFzSUhSNWNHVXNJSFpoYkhWbElIMHNJR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2tnZTF4dUlDQWdJR052Ym5OMElIc2dZbXh2WTJ0UmRXOTBaU3dnWTI5dGJXVnVkRk4wY21sdVp5d2diR2x1WlZkcFpIUm9JSDBnUFNCamRIZ3ViM0IwYVc5dWN6dGNiaUFnSUNBdkx5QXhMaUJDYkc5amF5QmpZVzRuZENCbGJtUWdhVzRnZDJocGRHVnpjR0ZqWlNCMWJteGxjM01nZEdobElHeGhjM1FnYkdsdVpTQnBjeUJ1YjI0dFpXMXdkSGt1WEc0Z0lDQWdMeThnTWk0Z1UzUnlhVzVuY3lCamIyNXphWE4wYVc1bklHOW1JRzl1YkhrZ2QyaHBkR1Z6Y0dGalpTQmhjbVVnWW1WemRDQnlaVzVrWlhKbFpDQmxlSEJzYVdOcGRHeDVMbHh1SUNBZ0lHbG1JQ2doWW14dlkydFJkVzkwWlNCOGZDQXZYRnh1VzF4Y2RDQmRLeVF2TG5SbGMzUW9kbUZzZFdVcElIeDhJQzllWEZ4ektpUXZMblJsYzNRb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeGRXOTBaV1JUZEhKcGJtY29kbUZzZFdVc0lHTjBlQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdsdVpHVnVkQ0E5SUdOMGVDNXBibVJsYm5RZ2ZIeGNiaUFnSUNBZ0lDQWdLR04wZUM1bWIzSmpaVUpzYjJOclNXNWtaVzUwSUh4OElHTnZiblJoYVc1elJHOWpkVzFsYm5STllYSnJaWElvZG1Gc2RXVXBJRDhnSnlBZ0p5QTZJQ2NuS1R0Y2JpQWdJQ0JqYjI1emRDQnNhWFJsY21Gc0lEMGdZbXh2WTJ0UmRXOTBaU0E5UFQwZ0oyeHBkR1Z5WVd3blhHNGdJQ0FnSUNBZ0lEOGdkSEoxWlZ4dUlDQWdJQ0FnSUNBNklHSnNiMk5yVVhWdmRHVWdQVDA5SUNkbWIyeGtaV1FuSUh4OElIUjVjR1VnUFQwOUlGTmpZV3hoY2k1Q1RFOURTMTlHVDB4RVJVUmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1ptRnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dkSGx3WlNBOVBUMGdVMk5oYkdGeUxrSk1UME5MWDB4SlZFVlNRVXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUhSeWRXVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJQ0ZzYVc1bFRHVnVaM1JvVDNabGNreHBiV2wwS0haaGJIVmxMQ0JzYVc1bFYybGtkR2dzSUdsdVpHVnVkQzVzWlc1bmRHZ3BPMXh1SUNBZ0lHbG1JQ2doZG1Gc2RXVXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnNhWFJsY21Gc0lEOGdKM3hjWEc0bklEb2dKejVjWEc0bk8xeHVJQ0FnSUM4dklHUmxkR1Z5YldsdVpTQmphRzl0Y0dsdVp5Qm1jbTl0SUhkb2FYUmxjM0JoWTJVZ1lYUWdkbUZzZFdVZ1pXNWtYRzRnSUNBZ2JHVjBJR05vYjIxd08xeHVJQ0FnSUd4bGRDQmxibVJUZEdGeWREdGNiaUFnSUNCbWIzSWdLR1Z1WkZOMFlYSjBJRDBnZG1Gc2RXVXViR1Z1WjNSb095QmxibVJUZEdGeWRDQStJREE3SUMwdFpXNWtVM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyZ2dQU0IyWVd4MVpWdGxibVJUZEdGeWRDQXRJREZkTzF4dUlDQWdJQ0FnSUNCcFppQW9ZMmdnSVQwOUlDZGNYRzRuSUNZbUlHTm9JQ0U5UFNBblhGeDBKeUFtSmlCamFDQWhQVDBnSnlBbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ2ZWeHVJQ0FnSUd4bGRDQmxibVFnUFNCMllXeDFaUzV6ZFdKemRISnBibWNvWlc1a1UzUmhjblFwTzF4dUlDQWdJR052Ym5OMElHVnVaRTVzVUc5eklEMGdaVzVrTG1sdVpHVjRUMllvSjF4Y2JpY3BPMXh1SUNBZ0lHbG1JQ2hsYm1ST2JGQnZjeUE5UFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnWTJodmJYQWdQU0FuTFNjN0lDOHZJSE4wY21sd1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLSFpoYkhWbElEMDlQU0JsYm1RZ2ZId2daVzVrVG14UWIzTWdJVDA5SUdWdVpDNXNaVzVuZEdnZ0xTQXhLU0I3WEc0Z0lDQWdJQ0FnSUdOb2IyMXdJRDBnSnlzbk95QXZMeUJyWldWd1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2YmtOb2IyMXdTMlZsY0NsY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UTJodmJYQkxaV1Z3S0NrN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmphRzl0Y0NBOUlDY25PeUF2THlCamJHbHdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGxibVFwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCMllXeDFaUzV6YkdsalpTZ3dMQ0F0Wlc1a0xteGxibWQwYUNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hsYm1SYlpXNWtMbXhsYm1kMGFDQXRJREZkSUQwOVBTQW5YRnh1SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJR1Z1WkNBOUlHVnVaQzV6YkdsalpTZ3dMQ0F0TVNrN1hHNGdJQ0FnSUNBZ0lHVnVaQ0E5SUdWdVpDNXlaWEJzWVdObEtHSnNiMk5yUlc1a1RtVjNiR2x1WlhNc0lHQWtKaVI3YVc1a1pXNTBmV0FwTzF4dUlDQWdJSDFjYmlBZ0lDQXZMeUJrWlhSbGNtMXBibVVnYVc1a1pXNTBJR2x1WkdsallYUnZjaUJtY205dElIZG9hWFJsYzNCaFkyVWdZWFFnZG1Gc2RXVWdjM1JoY25SY2JpQWdJQ0JzWlhRZ2MzUmhjblJYYVhSb1UzQmhZMlVnUFNCbVlXeHpaVHRjYmlBZ0lDQnNaWFFnYzNSaGNuUkZibVE3WEc0Z0lDQWdiR1YwSUhOMFlYSjBUbXhRYjNNZ1BTQXRNVHRjYmlBZ0lDQm1iM0lnS0hOMFlYSjBSVzVrSUQwZ01Ec2djM1JoY25SRmJtUWdQQ0IyWVd4MVpTNXNaVzVuZEdnN0lDc3JjM1JoY25SRmJtUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmdnUFNCMllXeDFaVnR6ZEdGeWRFVnVaRjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0p5QW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblJYYVhSb1UzQmhZMlVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqYUNBOVBUMGdKMXhjYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRFNXNVRzl6SUQwZ2MzUmhjblJGYm1RN1hHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ0lDQnNaWFFnYzNSaGNuUWdQU0IyWVd4MVpTNXpkV0p6ZEhKcGJtY29NQ3dnYzNSaGNuUk9iRkJ2Y3lBOElITjBZWEowUlc1a0lEOGdjM1JoY25ST2JGQnZjeUFySURFZ09pQnpkR0Z5ZEVWdVpDazdYRzRnSUNBZ2FXWWdLSE4wWVhKMEtTQjdYRzRnSUNBZ0lDQWdJSFpoYkhWbElEMGdkbUZzZFdVdWMzVmljM1J5YVc1bktITjBZWEowTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUhOMFlYSjBJRDBnYzNSaGNuUXVjbVZ3YkdGalpTZ3ZYRnh1S3k5bkxDQmdKQ1lrZTJsdVpHVnVkSDFnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2FXNWtaVzUwVTJsNlpTQTlJR2x1WkdWdWRDQS9JQ2N5SnlBNklDY3hKenNnTHk4Z2NtOXZkQ0JwY3lCaGRDQXRNVnh1SUNBZ0lHeGxkQ0JvWldGa1pYSWdQU0FvYkdsMFpYSmhiQ0EvSUNkOEp5QTZJQ2MrSnlrZ0t5QW9jM1JoY25SWGFYUm9VM0JoWTJVZ1B5QnBibVJsYm5SVGFYcGxJRG9nSnljcElDc2dZMmh2YlhBN1hHNGdJQ0FnYVdZZ0tHTnZiVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdhR1ZoWkdWeUlDczlJQ2NnSnlBcklHTnZiVzFsYm5SVGRISnBibWNvWTI5dGJXVnVkQzV5WlhCc1lXTmxLQzhnUDF0Y1hISmNYRzVkS3k5bkxDQW5JQ2NwS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzl1UTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMjl0YldWdWRDZ3BPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9iR2wwWlhKaGJDa2dlMXh1SUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbExuSmxjR3hoWTJVb0wxeGNiaXN2Wnl3Z1lDUW1KSHRwYm1SbGJuUjlZQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJnSkh0b1pXRmtaWEo5WEZ4dUpIdHBibVJsYm5SOUpIdHpkR0Z5ZEgwa2UzWmhiSFZsZlNSN1pXNWtmV0E3WEc0Z0lDQWdmVnh1SUNBZ0lIWmhiSFZsSUQwZ2RtRnNkV1ZjYmlBZ0lDQWdJQ0FnTG5KbGNHeGhZMlVvTDF4Y2Jpc3ZaeXdnSjF4Y2JpUW1KeWxjYmlBZ0lDQWdJQ0FnTG5KbGNHeGhZMlVvTHlnL09sNThYRnh1S1NoYlhGeDBJRjB1S2lrb1B6b29XMXhjYmx4Y2RDQmRLaWxjWEc0b1B5RmJYRnh1WEZ4MElGMHBLVDh2Wnl3Z0p5UXhKREluS1NBdkx5QnRiM0psTFdsdVpHVnVkR1ZrSUd4cGJtVnpJR0Z5Wlc0bmRDQm1iMnhrWldSY2JpQWdJQ0FnSUNBZ0x5OGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1hpQnRiM0psTFdsdVpDNGdYaUJsYlhCMGVTQWdJQ0FnWGlCallYQjBkWEpsSUc1bGVIUWdaVzF3ZEhrZ2JHbHVaWE1nYjI1c2VTQmhkQ0JsYm1RZ2IyWWdhVzVrWlc1MFhHNGdJQ0FnSUNBZ0lDNXlaWEJzWVdObEtDOWNYRzRyTDJjc0lHQWtKaVI3YVc1a1pXNTBmV0FwTzF4dUlDQWdJR052Ym5OMElHSnZaSGtnUFNCbWIyeGtSbXh2ZDB4cGJtVnpLR0FrZTNOMFlYSjBmU1I3ZG1Gc2RXVjlKSHRsYm1SOVlDd2dhVzVrWlc1MExDQkdUMHhFWDBKTVQwTkxMQ0JuWlhSR2IyeGtUM0IwYVc5dWN5aGpkSGdzSUhSeWRXVXBLVHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdhR1ZoWkdWeWZWeGNiaVI3YVc1a1pXNTBmU1I3WW05a2VYMWdPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2NHeGhhVzVUZEhKcGJtY29hWFJsYlN3Z1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCMGVYQmxMQ0IyWVd4MVpTQjlJRDBnYVhSbGJUdGNiaUFnSUNCamIyNXpkQ0I3SUdGamRIVmhiRk4wY21sdVp5d2dhVzF3YkdsamFYUkxaWGtzSUdsdVpHVnVkQ3dnYVc1a1pXNTBVM1JsY0N3Z2FXNUdiRzkzSUgwZ1BTQmpkSGc3WEc0Z0lDQWdhV1lnS0NocGJYQnNhV05wZEV0bGVTQW1KaUIyWVd4MVpTNXBibU5zZFdSbGN5Z25YRnh1SnlrcElIeDhYRzRnSUNBZ0lDQWdJQ2hwYmtac2IzY2dKaVlnTDF0YlhGeGRlMzBzWFM4dWRHVnpkQ2gyWVd4MVpTa3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ4ZFc5MFpXUlRkSEpwYm1jb2RtRnNkV1VzSUdOMGVDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ2hkbUZzZFdVZ2ZIeGNiaUFnSUNBZ0lDQWdMMTViWEZ4dVhGeDBJQ3hiWEZ4ZGUzMGpKaW9oZkQ0blhDSWxRR0JkZkY1YlB5MWRKSHhlV3o4dFhWc2dYRngwWFh4YlhGeHVPbDFiSUZ4Y2RGMThXeUJjWEhSZFhGeHVmRnRjWEc1Y1hIUWdYU044VzF4Y2JseGNkQ0E2WFNRdkxuUmxjM1FvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUM4dklHNXZkQ0JoYkd4dmQyVmtPbHh1SUNBZ0lDQWdJQ0F2THlBdElHVnRjSFI1SUhOMGNtbHVaeXdnSnkwbklHOXlJQ2MvSjF4dUlDQWdJQ0FnSUNBdkx5QXRJSE4wWVhKMElIZHBkR2dnWVc0Z2FXNWthV05oZEc5eUlHTm9ZWEpoWTNSbGNpQW9aWGhqWlhCMElGcy9PaTFkS1NCdmNpQXZXejh0WFNBdlhHNGdJQ0FnSUNBZ0lDOHZJQzBnSjF4Y2JpQW5MQ0FuT2lBbklHOXlJQ2NnWEZ4dUp5QmhibmwzYUdWeVpWeHVJQ0FnSUNBZ0lDQXZMeUF0SUNjakp5QnViM1FnY0hKbFkyVmtaV1FnWW5rZ1lTQnViMjR0YzNCaFkyVWdZMmhoY2x4dUlDQWdJQ0FnSUNBdkx5QXRJR1Z1WkNCM2FYUm9JQ2NnSnlCdmNpQW5PaWRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2x0Y0d4cFkybDBTMlY1SUh4OElHbHVSbXh2ZHlCOGZDQWhkbUZzZFdVdWFXNWpiSFZrWlhNb0oxeGNiaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JSEYxYjNSbFpGTjBjbWx1WnloMllXeDFaU3dnWTNSNEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCaWJHOWphMU4wY21sdVp5aHBkR1Z0TENCamRIZ3NJRzl1UTI5dGJXVnVkQ3dnYjI1RGFHOXRjRXRsWlhBcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0lXbHRjR3hwWTJsMFMyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUNGcGJrWnNiM2NnSmlaY2JpQWdJQ0FnSUNBZ2RIbHdaU0FoUFQwZ1UyTmhiR0Z5TGxCTVFVbE9JQ1ltWEc0Z0lDQWdJQ0FnSUhaaGJIVmxMbWx1WTJ4MVpHVnpLQ2RjWEc0bktTa2dlMXh1SUNBZ0lDQWdJQ0F2THlCWGFHVnlaU0JoYkd4dmQyVmtJQ1lnZEhsd1pTQnViM1FnYzJWMElHVjRjR3hwWTJsMGJIa3NJSEJ5WldabGNpQmliRzlqYXlCemRIbHNaU0JtYjNJZ2JYVnNkR2xzYVc1bElITjBjbWx1WjNOY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdKc2IyTnJVM1J5YVc1bktHbDBaVzBzSUdOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoamIyNTBZV2x1YzBSdlkzVnRaVzUwVFdGeWEyVnlLSFpoYkhWbEtTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FXNWtaVzUwSUQwOVBTQW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZM1I0TG1admNtTmxRbXh2WTJ0SmJtUmxiblFnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdKc2IyTnJVM1J5YVc1bktHbDBaVzBzSUdOMGVDd2diMjVEYjIxdFpXNTBMQ0J2YmtOb2IyMXdTMlZsY0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hVzF3YkdsamFYUkxaWGtnSmlZZ2FXNWtaVzUwSUQwOVBTQnBibVJsYm5SVGRHVndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NYVnZkR1ZrVTNSeWFXNW5LSFpoYkhWbExDQmpkSGdwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElITjBjaUE5SUhaaGJIVmxMbkpsY0d4aFkyVW9MMXhjYmlzdlp5d2dZQ1FtWEZ4dUpIdHBibVJsYm5SOVlDazdYRzRnSUNBZ0x5OGdWbVZ5YVdaNUlIUm9ZWFFnYjNWMGNIVjBJSGRwYkd3Z1ltVWdjR0Z5YzJWa0lHRnpJR0VnYzNSeWFXNW5MQ0JoY3lCbExtY3VJSEJzWVdsdUlHNTFiV0psY25NZ1lXNWtYRzRnSUNBZ0x5OGdZbTl2YkdWaGJuTWdaMlYwSUhCaGNuTmxaQ0IzYVhSb0lIUm9iM05sSUhSNWNHVnpJR2x1SUhZeExqSWdLR1V1Wnk0Z0p6UXlKeXdnSjNSeWRXVW5JQ1lnSnpBdU9XVXRNeWNwTEZ4dUlDQWdJQzh2SUdGdVpDQnZkR2hsY25NZ2FXNGdkakV1TVM1Y2JpQWdJQ0JwWmlBb1lXTjBkV0ZzVTNSeWFXNW5LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFJsYzNRZ1BTQW9kR0ZuS1NBOVBpQjBZV2N1WkdWbVlYVnNkQ0FtSmlCMFlXY3VkR0ZuSUNFOVBTQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZjM1J5SnlBbUppQjBZV2N1ZEdWemREOHVkR1Z6ZENoemRISXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJR052YlhCaGRDd2dkR0ZuY3lCOUlEMGdZM1I0TG1Sdll5NXpZMmhsYldFN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwWVdkekxuTnZiV1VvZEdWemRDa2dmSHdnWTI5dGNHRjBQeTV6YjIxbEtIUmxjM1FwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIRjFiM1JsWkZOMGNtbHVaeWgyWVd4MVpTd2dZM1I0S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHbHRjR3hwWTJsMFMyVjVYRzRnSUNBZ0lDQWdJRDhnYzNSeVhHNGdJQ0FnSUNBZ0lEb2dabTlzWkVac2IzZE1hVzVsY3loemRISXNJR2x1WkdWdWRDd2dSazlNUkY5R1RFOVhMQ0JuWlhSR2IyeGtUM0IwYVc5dWN5aGpkSGdzSUdaaGJITmxLU2s3WEc1OVhHNW1kVzVqZEdsdmJpQnpkSEpwYm1kcFpubFRkSEpwYm1jb2FYUmxiU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJwYlhCc2FXTnBkRXRsZVN3Z2FXNUdiRzkzSUgwZ1BTQmpkSGc3WEc0Z0lDQWdZMjl1YzNRZ2MzTWdQU0IwZVhCbGIyWWdhWFJsYlM1MllXeDFaU0E5UFQwZ0ozTjBjbWx1WnlkY2JpQWdJQ0FnSUNBZ1B5QnBkR1Z0WEc0Z0lDQWdJQ0FnSURvZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2FYUmxiU3dnZXlCMllXeDFaVG9nVTNSeWFXNW5LR2wwWlcwdWRtRnNkV1VwSUgwcE8xeHVJQ0FnSUd4bGRDQjdJSFI1Y0dVZ2ZTQTlJR2wwWlcwN1hHNGdJQ0FnYVdZZ0tIUjVjR1VnSVQwOUlGTmpZV3hoY2k1UlZVOVVSVjlFVDFWQ1RFVXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1ptOXlZMlVnWkc5MVlteGxJSEYxYjNSbGN5QnZiaUJqYjI1MGNtOXNJR05vWVhKaFkzUmxjbk1nSmlCMWJuQmhhWEpsWkNCemRYSnliMmRoZEdWelhHNGdJQ0FnSUNBZ0lHbG1JQ2d2VzF4Y2VEQXdMVnhjZURBNFhGeDRNR0l0WEZ4NE1XWmNYSGczWmkxY1hIZzVabHhjZFh0RU9EQXdmUzFjWEhWN1JFWkdSbjFkTDNVdWRHVnpkQ2h6Y3k1MllXeDFaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsSUQwZ1UyTmhiR0Z5TGxGVlQxUkZYMFJQVlVKTVJUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdYM04wY21sdVoybG1lU0E5SUNoZmRIbHdaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tGOTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGTmpZV3hoY2k1Q1RFOURTMTlHVDB4RVJVUTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRk5qWVd4aGNpNUNURTlEUzE5TVNWUkZVa0ZNT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYlhCc2FXTnBkRXRsZVNCOGZDQnBia1pzYjNkY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJ4ZFc5MFpXUlRkSEpwYm1jb2MzTXVkbUZzZFdVc0lHTjBlQ2tnTHk4Z1lteHZZMnR6SUdGeVpTQnViM1FnZG1Gc2FXUWdhVzV6YVdSbElHWnNiM2NnWTI5dWRHRnBibVZ5YzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJR0pzYjJOclUzUnlhVzVuS0hOekxDQmpkSGdzSUc5dVEyOXRiV1Z1ZEN3Z2IyNURhRzl0Y0V0bFpYQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JUWTJGc1lYSXVVVlZQVkVWZlJFOVZRa3hGT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJrYjNWaWJHVlJkVzkwWldSVGRISnBibWNvYzNNdWRtRnNkV1VzSUdOMGVDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRk5qWVd4aGNpNVJWVTlVUlY5VFNVNUhURVU2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE5wYm1kc1pWRjFiM1JsWkZOMGNtbHVaeWh6Y3k1MllXeDFaU3dnWTNSNEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdVMk5oYkdGeUxsQk1RVWxPT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ3YkdGcGJsTjBjbWx1WnloemN5d2dZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlPMXh1SUNBZ0lHeGxkQ0J5WlhNZ1BTQmZjM1J5YVc1bmFXWjVLSFI1Y0dVcE8xeHVJQ0FnSUdsbUlDaHlaWE1nUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCa1pXWmhkV3gwUzJWNVZIbHdaU3dnWkdWbVlYVnNkRk4wY21sdVoxUjVjR1VnZlNBOUlHTjBlQzV2Y0hScGIyNXpPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBJRDBnS0dsdGNHeHBZMmwwUzJWNUlDWW1JR1JsWm1GMWJIUkxaWGxVZVhCbEtTQjhmQ0JrWldaaGRXeDBVM1J5YVc1blZIbHdaVHRjYmlBZ0lDQWdJQ0FnY21WeklEMGdYM04wY21sdVoybG1lU2gwS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsY3lBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzV6ZFhCd2IzSjBaV1FnWkdWbVlYVnNkQ0J6ZEhKcGJtY2dkSGx3WlNBa2UzUjlZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCeVpYTTdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lITjBjbWx1WjJsbWVWTjBjbWx1WnlCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdGdVkyaHZja2x6Vm1Gc2FXUWdmU0JtY205dElDY3VMaTlrYjJNdllXNWphRzl5Y3k1cWN5YzdYRzVwYlhCdmNuUWdleUJwYzFCaGFYSXNJR2x6UVd4cFlYTXNJR2x6VG05a1pTd2dhWE5UWTJGc1lYSXNJR2x6UTI5c2JHVmpkR2x2YmlCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVU52YlcxbGJuUWdmU0JtY205dElDY3VMM04wY21sdVoybG1lVU52YlcxbGJuUXVhbk1uTzF4dWFXMXdiM0owSUhzZ2MzUnlhVzVuYVdaNVUzUnlhVzVuSUgwZ1puSnZiU0FuTGk5emRISnBibWRwWm5sVGRISnBibWN1YW5Nbk8xeHVYRzVtZFc1amRHbHZiaUJqY21WaGRHVlRkSEpwYm1kcFpubERiMjUwWlhoMEtHUnZZeXdnYjNCMGFXOXVjeWtnZTF4dUlDQWdJR052Ym5OMElHOXdkQ0E5SUU5aWFtVmpkQzVoYzNOcFoyNG9lMXh1SUNBZ0lDQWdJQ0JpYkc5amExRjFiM1JsT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0JqYjIxdFpXNTBVM1J5YVc1bk9pQnpkSEpwYm1kcFpubERiMjF0Wlc1MExGeHVJQ0FnSUNBZ0lDQmtaV1poZFd4MFMyVjVWSGx3WlRvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRk4wY21sdVoxUjVjR1U2SUNkUVRFRkpUaWNzWEc0Z0lDQWdJQ0FnSUdScGNtVmpkR2wyWlhNNklHNTFiR3dzWEc0Z0lDQWdJQ0FnSUdSdmRXSnNaVkYxYjNSbFpFRnpTbE5QVGpvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUdSdmRXSnNaVkYxYjNSbFpFMXBiazExYkhScFRHbHVaVXhsYm1kMGFEb2dOREFzWEc0Z0lDQWdJQ0FnSUdaaGJITmxVM1J5T2lBblptRnNjMlVuTEZ4dUlDQWdJQ0FnSUNCbWJHOTNRMjlzYkdWamRHbHZibEJoWkdScGJtYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lHbHVaR1Z1ZEZObGNUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2JHbHVaVmRwWkhSb09pQTRNQ3hjYmlBZ0lDQWdJQ0FnYldsdVEyOXVkR1Z1ZEZkcFpIUm9PaUF5TUN4Y2JpQWdJQ0FnSUNBZ2JuVnNiRk4wY2pvZ0oyNTFiR3duTEZ4dUlDQWdJQ0FnSUNCemFXMXdiR1ZMWlhsek9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ2MybHVaMnhsVVhWdmRHVTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lIUnlkV1ZUZEhJNklDZDBjblZsSnl4Y2JpQWdJQ0FnSUNBZ2RtVnlhV1o1UVd4cFlYTlBjbVJsY2pvZ2RISjFaVnh1SUNBZ0lIMHNJR1J2WXk1elkyaGxiV0V1ZEc5VGRISnBibWRQY0hScGIyNXpMQ0J2Y0hScGIyNXpLVHRjYmlBZ0lDQnNaWFFnYVc1R2JHOTNPMXh1SUNBZ0lITjNhWFJqYUNBb2IzQjBMbU52Ykd4bFkzUnBiMjVUZEhsc1pTa2dlMXh1SUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JwYmtac2IzY2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JqWVhObElDZG1iRzkzSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR2x1Um14dmR5QTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVJteHZkeUE5SUc1MWJHdzdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUdGdVkyaHZjbk02SUc1bGR5QlRaWFFvS1N4Y2JpQWdJQ0FnSUNBZ1pHOWpMRnh1SUNBZ0lDQWdJQ0JtYkc5M1EyOXNiR1ZqZEdsdmJsQmhaR1JwYm1jNklHOXdkQzVtYkc5M1EyOXNiR1ZqZEdsdmJsQmhaR1JwYm1jZ1B5QW5JQ2NnT2lBbkp5eGNiaUFnSUNBZ0lDQWdhVzVrWlc1ME9pQW5KeXhjYmlBZ0lDQWdJQ0FnYVc1a1pXNTBVM1JsY0RvZ2RIbHdaVzltSUc5d2RDNXBibVJsYm5RZ1BUMDlJQ2R1ZFcxaVpYSW5JRDhnSnlBbkxuSmxjR1ZoZENodmNIUXVhVzVrWlc1MEtTQTZJQ2NnSUNjc1hHNGdJQ0FnSUNBZ0lHbHVSbXh2ZHl4Y2JpQWdJQ0FnSUNBZ2IzQjBhVzl1Y3pvZ2IzQjBYRzRnSUNBZ2ZUdGNibjFjYm1aMWJtTjBhVzl1SUdkbGRGUmhaMDlpYW1WamRDaDBZV2R6TENCcGRHVnRLU0I3WEc0Z0lDQWdhV1lnS0dsMFpXMHVkR0ZuS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHTm9JRDBnZEdGbmN5NW1hV3gwWlhJb2RDQTlQaUIwTG5SaFp5QTlQVDBnYVhSbGJTNTBZV2NwTzF4dUlDQWdJQ0FnSUNCcFppQW9iV0YwWTJndWJHVnVaM1JvSUQ0Z01DbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ0WVhSamFDNW1hVzVrS0hRZ1BUNGdkQzVtYjNKdFlYUWdQVDA5SUdsMFpXMHVabTl5YldGMEtTQS9QeUJ0WVhSamFGc3dYVHRjYmlBZ0lDQjlYRzRnSUNBZ2JHVjBJSFJoWjA5aWFpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnNaWFFnYjJKcU8xeHVJQ0FnSUdsbUlDaHBjMU5qWVd4aGNpaHBkR1Z0S1NrZ2UxeHVJQ0FnSUNBZ0lDQnZZbW9nUFNCcGRHVnRMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYldGMFkyZ2dQU0IwWVdkekxtWnBiSFJsY2loMElEMCtJSFF1YVdSbGJuUnBabmsvTGlodlltb3BLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhkR05vTG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFJsYzNSTllYUmphQ0E5SUcxaGRHTm9MbVpwYkhSbGNpaDBJRDArSUhRdWRHVnpkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdWemRFMWhkR05vTG14bGJtZDBhQ0ErSURBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRjBZMmdnUFNCMFpYTjBUV0YwWTJnN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdkR0ZuVDJKcUlEMWNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGRHTm9MbVpwYm1Rb2RDQTlQaUIwTG1admNtMWhkQ0E5UFQwZ2FYUmxiUzVtYjNKdFlYUXBJRDgvSUcxaGRHTm9MbVpwYm1Rb2RDQTlQaUFoZEM1bWIzSnRZWFFwTzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2IySnFJRDBnYVhSbGJUdGNiaUFnSUNBZ0lDQWdkR0ZuVDJKcUlEMGdkR0ZuY3k1bWFXNWtLSFFnUFQ0Z2RDNXViMlJsUTJ4aGMzTWdKaVlnYjJKcUlHbHVjM1JoYm1ObGIyWWdkQzV1YjJSbFEyeGhjM01wTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvSVhSaFowOWlhaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1WVcxbElEMGdiMkpxUHk1amIyNXpkSEoxWTNSdmNqOHVibUZ0WlNBL1B5QjBlWEJsYjJZZ2IySnFPMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRlJoWnlCdWIzUWdjbVZ6YjJ4MlpXUWdabTl5SUNSN2JtRnRaWDBnZG1Gc2RXVmdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSaFowOWlhanRjYm4xY2JpOHZJRzVsWldSeklIUnZJR0psSUdOaGJHeGxaQ0JpWldadmNtVWdkbUZzZFdVZ2MzUnlhVzVuYVdacFpYSWdkRzhnWVd4c2IzY2dabTl5SUdOcGNtTjFiR0Z5SUdGdVkyaHZjaUJ5WldaelhHNW1kVzVqZEdsdmJpQnpkSEpwYm1kcFpubFFjbTl3Y3lodWIyUmxMQ0IwWVdkUFltb3NJSHNnWVc1amFHOXljeXdnWkc5aklIMHBJSHRjYmlBZ0lDQnBaaUFvSVdSdll5NWthWEpsWTNScGRtVnpLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lDQWdZMjl1YzNRZ2NISnZjSE1nUFNCYlhUdGNiaUFnSUNCamIyNXpkQ0JoYm1Ob2IzSWdQU0FvYVhOVFkyRnNZWElvYm05a1pTa2dmSHdnYVhORGIyeHNaV04wYVc5dUtHNXZaR1VwS1NBbUppQnViMlJsTG1GdVkyaHZjanRjYmlBZ0lDQnBaaUFvWVc1amFHOXlJQ1ltSUdGdVkyaHZja2x6Vm1Gc2FXUW9ZVzVqYUc5eUtTa2dlMXh1SUNBZ0lDQWdJQ0JoYm1Ob2IzSnpMbUZrWkNoaGJtTm9iM0lwTzF4dUlDQWdJQ0FnSUNCd2NtOXdjeTV3ZFhOb0tHQW1KSHRoYm1Ob2IzSjlZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhSaFp5QTlJRzV2WkdVdWRHRm5JRDhnYm05a1pTNTBZV2NnT2lCMFlXZFBZbW91WkdWbVlYVnNkQ0EvSUc1MWJHd2dPaUIwWVdkUFltb3VkR0ZuTzF4dUlDQWdJR2xtSUNoMFlXY3BYRzRnSUNBZ0lDQWdJSEJ5YjNCekxuQjFjMmdvWkc5akxtUnBjbVZqZEdsMlpYTXVkR0ZuVTNSeWFXNW5LSFJoWnlrcE8xeHVJQ0FnSUhKbGRIVnliaUJ3Y205d2N5NXFiMmx1S0NjZ0p5azdYRzU5WEc1bWRXNWpkR2x2YmlCemRISnBibWRwWm5rb2FYUmxiU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1NCN1hHNGdJQ0FnYVdZZ0tHbHpVR0ZwY2locGRHVnRLU2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2wwWlcwdWRHOVRkSEpwYm1jb1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tUdGNiaUFnSUNCcFppQW9hWE5CYkdsaGN5aHBkR1Z0S1NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtUnZZeTVrYVhKbFkzUnBkbVZ6S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHbDBaVzB1ZEc5VGRISnBibWNvWTNSNEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0dOMGVDNXlaWE52YkhabFpFRnNhV0Z6WlhNL0xtaGhjeWhwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGdRMkZ1Ym05MElITjBjbWx1WjJsbWVTQmphWEpqZFd4aGNpQnpkSEoxWTNSMWNtVWdkMmwwYUc5MWRDQmhiR2xoY3lCdWIyUmxjMkFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOMGVDNXlaWE52YkhabFpFRnNhV0Z6WlhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbkpsYzI5c2RtVmtRV3hwWVhObGN5NWhaR1FvYVhSbGJTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0TG5KbGMyOXNkbVZrUVd4cFlYTmxjeUE5SUc1bGR5QlRaWFFvVzJsMFpXMWRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCcGRHVnRMbkpsYzI5c2RtVW9ZM1I0TG1Sdll5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2JHVjBJSFJoWjA5aWFpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnYVhOT2IyUmxLR2wwWlcwcFhHNGdJQ0FnSUNBZ0lEOGdhWFJsYlZ4dUlDQWdJQ0FnSUNBNklHTjBlQzVrYjJNdVkzSmxZWFJsVG05a1pTaHBkR1Z0TENCN0lHOXVWR0ZuVDJKcU9pQnZJRDArSUNoMFlXZFBZbW9nUFNCdktTQjlLVHRjYmlBZ0lDQnBaaUFvSVhSaFowOWlhaWxjYmlBZ0lDQWdJQ0FnZEdGblQySnFJRDBnWjJWMFZHRm5UMkpxWldOMEtHTjBlQzVrYjJNdWMyTm9aVzFoTG5SaFozTXNJRzV2WkdVcE8xeHVJQ0FnSUdOdmJuTjBJSEJ5YjNCeklEMGdjM1J5YVc1bmFXWjVVSEp2Y0hNb2JtOWtaU3dnZEdGblQySnFMQ0JqZEhncE8xeHVJQ0FnSUdsbUlDaHdjbTl3Y3k1c1pXNW5kR2dnUGlBd0tWeHVJQ0FnSUNBZ0lDQmpkSGd1YVc1a1pXNTBRWFJUZEdGeWRDQTlJQ2hqZEhndWFXNWtaVzUwUVhSVGRHRnlkQ0EvUHlBd0tTQXJJSEJ5YjNCekxteGxibWQwYUNBcklERTdYRzRnSUNBZ1kyOXVjM1FnYzNSeUlEMGdkSGx3Wlc5bUlIUmhaMDlpYWk1emRISnBibWRwWm5rZ1BUMDlJQ2RtZFc1amRHbHZiaWRjYmlBZ0lDQWdJQ0FnUHlCMFlXZFBZbW91YzNSeWFXNW5hV1o1S0c1dlpHVXNJR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2xjYmlBZ0lDQWdJQ0FnT2lCcGMxTmpZV3hoY2lodWIyUmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QnpkSEpwYm1kcFpubFRkSEpwYm1jb2JtOWtaU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJ1YjJSbExuUnZVM1J5YVc1bktHTjBlQ3dnYjI1RGIyMXRaVzUwTENCdmJrTm9iMjF3UzJWbGNDazdYRzRnSUNBZ2FXWWdLQ0Z3Y205d2N5bGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBjanRjYmlBZ0lDQnlaWFIxY200Z2FYTlRZMkZzWVhJb2JtOWtaU2tnZkh3Z2MzUnlXekJkSUQwOVBTQW5leWNnZkh3Z2MzUnlXekJkSUQwOVBTQW5XeWRjYmlBZ0lDQWdJQ0FnUHlCZ0pIdHdjbTl3YzMwZ0pIdHpkSEo5WUZ4dUlDQWdJQ0FnSUNBNklHQWtlM0J5YjNCemZWeGNiaVI3WTNSNExtbHVaR1Z1ZEgwa2UzTjBjbjFnTzF4dWZWeHVYRzVsZUhCdmNuUWdleUJqY21WaGRHVlRkSEpwYm1kcFpubERiMjUwWlhoMExDQnpkSEpwYm1kcFpua2dmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QnBjME52Ykd4bFkzUnBiMjRzSUdselRtOWtaU3dnYVhOVFkyRnNZWElzSUdselUyVnhJSDBnWm5KdmJTQW5MaTR2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1uTzF4dWFXMXdiM0owSUhzZ1UyTmhiR0Z5SUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12VTJOaGJHRnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lITjBjbWx1WjJsbWVTQjlJR1p5YjIwZ0p5NHZjM1J5YVc1bmFXWjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHeHBibVZEYjIxdFpXNTBMQ0JwYm1SbGJuUkRiMjF0Wlc1MElIMGdabkp2YlNBbkxpOXpkSEpwYm1kcFpubERiMjF0Wlc1MExtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2MzUnlhVzVuYVdaNVVHRnBjaWg3SUd0bGVTd2dkbUZzZFdVZ2ZTd2dZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QmhiR3hPZFd4c1ZtRnNkV1Z6TENCa2IyTXNJR2x1WkdWdWRDd2dhVzVrWlc1MFUzUmxjQ3dnYjNCMGFXOXVjem9nZXlCamIyMXRaVzUwVTNSeWFXNW5MQ0JwYm1SbGJuUlRaWEVzSUhOcGJYQnNaVXRsZVhNZ2ZTQjlJRDBnWTNSNE8xeHVJQ0FnSUd4bGRDQnJaWGxEYjIxdFpXNTBJRDBnS0dselRtOWtaU2hyWlhrcElDWW1JR3RsZVM1amIyMXRaVzUwS1NCOGZDQnVkV3hzTzF4dUlDQWdJR2xtSUNoemFXMXdiR1ZMWlhsektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoclpYbERiMjF0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFkcGRHZ2djMmx0Y0d4bElHdGxlWE1zSUd0bGVTQnViMlJsY3lCallXNXViM1FnYUdGMlpTQmpiMjF0Wlc1MGN5Y3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjME52Ykd4bFkzUnBiMjRvYTJWNUtTQjhmQ0FvSVdselRtOWtaU2hyWlhrcElDWW1JSFI1Y0dWdlppQnJaWGtnUFQwOUlDZHZZbXBsWTNRbktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlhObklEMGdKMWRwZEdnZ2MybHRjR3hsSUd0bGVYTXNJR052Ykd4bFkzUnBiMjRnWTJGdWJtOTBJR0psSUhWelpXUWdZWE1nWVNCclpYa2dkbUZzZFdVbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRzF6WnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnYkdWMElHVjRjR3hwWTJsMFMyVjVJRDBnSVhOcGJYQnNaVXRsZVhNZ0ppWmNiaUFnSUNBZ0lDQWdLQ0ZyWlhrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNoclpYbERiMjF0Wlc1MElDWW1JSFpoYkhWbElEMDlJRzUxYkd3Z0ppWWdJV04wZUM1cGJrWnNiM2NwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0JwYzBOdmJHeGxZM1JwYjI0b2EyVjVLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdLR2x6VTJOaGJHRnlLR3RsZVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lHdGxlUzUwZVhCbElEMDlQU0JUWTJGc1lYSXVRa3hQUTB0ZlJrOU1SRVZFSUh4OElHdGxlUzUwZVhCbElEMDlQU0JUWTJGc1lYSXVRa3hQUTB0ZlRFbFVSVkpCVEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RIbHdaVzltSUd0bGVTQTlQVDBnSjI5aWFtVmpkQ2NwS1R0Y2JpQWdJQ0JqZEhnZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQmpkSGdzSUh0Y2JpQWdJQ0FnSUNBZ1lXeHNUblZzYkZaaGJIVmxjem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR2x0Y0d4cFkybDBTMlY1T2lBaFpYaHdiR2xqYVhSTFpYa2dKaVlnS0hOcGJYQnNaVXRsZVhNZ2ZId2dJV0ZzYkU1MWJHeFdZV3gxWlhNcExGeHVJQ0FnSUNBZ0lDQnBibVJsYm5RNklHbHVaR1Z1ZENBcklHbHVaR1Z1ZEZOMFpYQmNiaUFnSUNCOUtUdGNiaUFnSUNCc1pYUWdhMlY1UTI5dGJXVnVkRVJ2Ym1VZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JzWlhRZ1kyaHZiWEJMWldWd0lEMGdabUZzYzJVN1hHNGdJQ0FnYkdWMElITjBjaUE5SUhOMGNtbHVaMmxtZVNoclpYa3NJR04wZUN3Z0tDa2dQVDRnS0d0bGVVTnZiVzFsYm5SRWIyNWxJRDBnZEhKMVpTa3NJQ2dwSUQwK0lDaGphRzl0Y0V0bFpYQWdQU0IwY25WbEtTazdYRzRnSUNBZ2FXWWdLQ0ZsZUhCc2FXTnBkRXRsZVNBbUppQWhZM1I0TG1sdVJteHZkeUFtSmlCemRISXViR1Z1WjNSb0lENGdNVEF5TkNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYzJsdGNHeGxTMlY1Y3lsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WMmwwYUNCemFXMXdiR1VnYTJWNWN5d2djMmx1WjJ4bElHeHBibVVnYzJOaGJHRnlJRzExYzNRZ2JtOTBJSE53WVc0Z2JXOXlaU0IwYUdGdUlERXdNalFnWTJoaGNtRmpkR1Z5Y3ljcE8xeHVJQ0FnSUNBZ0lDQmxlSEJzYVdOcGRFdGxlU0E5SUhSeWRXVTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGpkSGd1YVc1R2JHOTNLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGhiR3hPZFd4c1ZtRnNkV1Z6SUh4OElIWmhiSFZsSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbERiMjF0Wlc1MFJHOXVaU0FtSmlCdmJrTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURiMjF0Wlc1MEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYzNSeUlEMDlQU0FuSnlBL0lDYy9KeUE2SUdWNGNHeHBZMmwwUzJWNUlEOGdZRDhnSkh0emRISjlZQ0E2SUhOMGNqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNnb1lXeHNUblZzYkZaaGJIVmxjeUFtSmlBaGMybHRjR3hsUzJWNWN5a2dmSHdnS0haaGJIVmxJRDA5SUc1MWJHd2dKaVlnWlhod2JHbGphWFJMWlhrcEtTQjdYRzRnSUNBZ0lDQWdJSE4wY2lBOUlHQS9JQ1I3YzNSeWZXQTdYRzRnSUNBZ0lDQWdJR2xtSUNoclpYbERiMjF0Wlc1MElDWW1JQ0ZyWlhsRGIyMXRaVzUwUkc5dVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUd4cGJtVkRiMjF0Wlc1MEtITjBjaXdnWTNSNExtbHVaR1Z1ZEN3Z1kyOXRiV1Z1ZEZOMGNtbHVaeWhyWlhsRGIyMXRaVzUwS1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZMmh2YlhCTFpXVndJQ1ltSUc5dVEyaHZiWEJMWldWd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGFHOXRjRXRsWlhBb0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBjanRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR3RsZVVOdmJXMWxiblJFYjI1bEtWeHVJQ0FnSUNBZ0lDQnJaWGxEYjIxdFpXNTBJRDBnYm5Wc2JEdGNiaUFnSUNCcFppQW9aWGh3YkdsamFYUkxaWGtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR3RsZVVOdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ2JHbHVaVU52YlcxbGJuUW9jM1J5TENCamRIZ3VhVzVrWlc1MExDQmpiMjF0Wlc1MFUzUnlhVzVuS0d0bGVVTnZiVzFsYm5RcEtUdGNiaUFnSUNBZ0lDQWdjM1J5SUQwZ1lEOGdKSHR6ZEhKOVhGeHVKSHRwYm1SbGJuUjlPbUE3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCemRISWdQU0JnSkh0emRISjlPbUE3WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGxEYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUd4cGJtVkRiMjF0Wlc1MEtITjBjaXdnWTNSNExtbHVaR1Z1ZEN3Z1kyOXRiV1Z1ZEZOMGNtbHVaeWhyWlhsRGIyMXRaVzUwS1NrN1hHNGdJQ0FnZlZ4dUlDQWdJR3hsZENCMmMySXNJSFpqWWl3Z2RtRnNkV1ZEYjIxdFpXNTBPMXh1SUNBZ0lHbG1JQ2hwYzA1dlpHVW9kbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJSFp6WWlBOUlDRWhkbUZzZFdVdWMzQmhZMlZDWldadmNtVTdYRzRnSUNBZ0lDQWdJSFpqWWlBOUlIWmhiSFZsTG1OdmJXMWxiblJDWldadmNtVTdYRzRnSUNBZ0lDQWdJSFpoYkhWbFEyOXRiV1Z1ZENBOUlIWmhiSFZsTG1OdmJXMWxiblE3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMmMySWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdkbU5pSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZG1Gc2RXVkRiMjF0Wlc1MElEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElDWW1JSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKMjlpYW1WamRDY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUdSdll5NWpjbVZoZEdWT2IyUmxLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNGdJQ0FnWTNSNExtbHRjR3hwWTJsMFMyVjVJRDBnWm1Gc2MyVTdYRzRnSUNBZ2FXWWdLQ0ZsZUhCc2FXTnBkRXRsZVNBbUppQWhhMlY1UTI5dGJXVnVkQ0FtSmlCcGMxTmpZV3hoY2loMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUdOMGVDNXBibVJsYm5SQmRGTjBZWEowSUQwZ2MzUnlMbXhsYm1kMGFDQXJJREU3WEc0Z0lDQWdZMmh2YlhCTFpXVndJRDBnWm1Gc2MyVTdYRzRnSUNBZ2FXWWdLQ0ZwYm1SbGJuUlRaWEVnSmlaY2JpQWdJQ0FnSUNBZ2FXNWtaVzUwVTNSbGNDNXNaVzVuZEdnZ1BqMGdNaUFtSmx4dUlDQWdJQ0FnSUNBaFkzUjRMbWx1Um14dmR5QW1KbHh1SUNBZ0lDQWdJQ0FoWlhod2JHbGphWFJMWlhrZ0ppWmNiaUFnSUNBZ0lDQWdhWE5UWlhFb2RtRnNkV1VwSUNZbVhHNGdJQ0FnSUNBZ0lDRjJZV3gxWlM1bWJHOTNJQ1ltWEc0Z0lDQWdJQ0FnSUNGMllXeDFaUzUwWVdjZ0ppWmNiaUFnSUNBZ0lDQWdJWFpoYkhWbExtRnVZMmh2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJKWmlCcGJtUmxiblJUWlhFZ1BUMDlJR1poYkhObExDQmpiMjV6YVdSbGNpQW5MU0FuSUdGeklIQmhjblFnYjJZZ2FXNWtaVzUwWVhScGIyNGdkMmhsY21VZ2NHOXpjMmxpYkdWY2JpQWdJQ0FnSUNBZ1kzUjRMbWx1WkdWdWRDQTlJR04wZUM1cGJtUmxiblF1YzNWaWMzUnlhVzVuS0RJcE8xeHVJQ0FnSUgxY2JpQWdJQ0JzWlhRZ2RtRnNkV1ZEYjIxdFpXNTBSRzl1WlNBOUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OMElIWmhiSFZsVTNSeUlEMGdjM1J5YVc1bmFXWjVLSFpoYkhWbExDQmpkSGdzSUNncElEMCtJQ2gyWVd4MVpVTnZiVzFsYm5SRWIyNWxJRDBnZEhKMVpTa3NJQ2dwSUQwK0lDaGphRzl0Y0V0bFpYQWdQU0IwY25WbEtTazdYRzRnSUNBZ2JHVjBJSGR6SUQwZ0p5QW5PMXh1SUNBZ0lHbG1JQ2hyWlhsRGIyMXRaVzUwSUh4OElIWnpZaUI4ZkNCMlkySXBJSHRjYmlBZ0lDQWdJQ0FnZDNNZ1BTQjJjMklnUHlBblhGeHVKeUE2SUNjbk8xeHVJQ0FnSUNBZ0lDQnBaaUFvZG1OaUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqY3lBOUlHTnZiVzFsYm5SVGRISnBibWNvZG1OaUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhkeklDczlJR0JjWEc0a2UybHVaR1Z1ZEVOdmJXMWxiblFvWTNNc0lHTjBlQzVwYm1SbGJuUXBmV0E3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbFUzUnlJRDA5UFNBbkp5QW1KaUFoWTNSNExtbHVSbXh2ZHlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIZHpJRDA5UFNBblhGeHVKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IzY3lBOUlDZGNYRzVjWEc0bk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZDNNZ0t6MGdZRnhjYmlSN1kzUjRMbWx1WkdWdWRIMWdPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tDRmxlSEJzYVdOcGRFdGxlU0FtSmlCcGMwTnZiR3hsWTNScGIyNG9kbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWnpNQ0E5SUhaaGJIVmxVM1J5V3pCZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdWJEQWdQU0IyWVd4MVpWTjBjaTVwYm1SbGVFOW1LQ2RjWEc0bktUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FHRnpUbVYzYkdsdVpTQTlJRzVzTUNBaFBUMGdMVEU3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1pzYjNjZ1BTQmpkSGd1YVc1R2JHOTNJRDgvSUhaaGJIVmxMbVpzYjNjZ1B6OGdkbUZzZFdVdWFYUmxiWE11YkdWdVozUm9JRDA5UFNBd08xeHVJQ0FnSUNBZ0lDQnBaaUFvYUdGelRtVjNiR2x1WlNCOGZDQWhabXh2ZHlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHaGhjMUJ5YjNCelRHbHVaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2hoYzA1bGQyeHBibVVnSmlZZ0tIWnpNQ0E5UFQwZ0p5WW5JSHg4SUhaek1DQTlQVDBnSnlFbktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCemNEQWdQU0IyWVd4MVpWTjBjaTVwYm1SbGVFOW1LQ2NnSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFp6TUNBOVBUMGdKeVluSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE53TUNBaFBUMGdMVEVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM0F3SUR3Z2Jtd3dJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsVTNSeVczTndNQ0FySURGZElEMDlQU0FuSVNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNBd0lEMGdkbUZzZFdWVGRISXVhVzVrWlhoUFppZ25JQ2NzSUhOd01DQXJJREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM0F3SUQwOVBTQXRNU0I4ZkNCdWJEQWdQQ0J6Y0RBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2hoYzFCeWIzQnpUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2hoYzFCeWIzQnpUR2x1WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCM2N5QTlJR0JjWEc0a2UyTjBlQzVwYm1SbGJuUjlZRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDaDJZV3gxWlZOMGNpQTlQVDBnSnljZ2ZId2dkbUZzZFdWVGRISmJNRjBnUFQwOUlDZGNYRzRuS1NCN1hHNGdJQ0FnSUNBZ0lIZHpJRDBnSnljN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wY2lBclBTQjNjeUFySUhaaGJIVmxVM1J5TzF4dUlDQWdJR2xtSUNoamRIZ3VhVzVHYkc5M0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMllXeDFaVU52YlcxbGJuUkViMjVsSUNZbUlHOXVRMjl0YldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVEyOXRiV1Z1ZENncE8xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElHbG1JQ2gyWVd4MVpVTnZiVzFsYm5RZ0ppWWdJWFpoYkhWbFEyOXRiV1Z1ZEVSdmJtVXBJSHRjYmlBZ0lDQWdJQ0FnYzNSeUlDczlJR3hwYm1WRGIyMXRaVzUwS0hOMGNpd2dZM1I0TG1sdVpHVnVkQ3dnWTI5dGJXVnVkRk4wY21sdVp5aDJZV3gxWlVOdmJXMWxiblFwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdaV3h6WlNCcFppQW9ZMmh2YlhCTFpXVndJQ1ltSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ0lDQWdJRzl1UTJodmJYQkxaV1Z3S0NrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnpkSEk3WEc1OVhHNWNibVY0Y0c5eWRDQjdJSE4wY21sdVoybG1lVkJoYVhJZ2ZUdGNiaUlzSUNKbWRXNWpkR2x2YmlCa1pXSjFaeWhzYjJkTVpYWmxiQ3dnTGk0dWJXVnpjMkZuWlhNcElIdGNiaUFnSUNCcFppQW9iRzluVEdWMlpXd2dQVDA5SUNka1pXSjFaeWNwWEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1Ykc5bktDNHVMbTFsYzNOaFoyVnpLVHRjYm4xY2JtWjFibU4wYVc5dUlIZGhjbTRvYkc5blRHVjJaV3dzSUhkaGNtNXBibWNwSUh0Y2JpQWdJQ0JwWmlBb2JHOW5UR1YyWld3Z1BUMDlJQ2RrWldKMVp5Y2dmSHdnYkc5blRHVjJaV3dnUFQwOUlDZDNZWEp1SnlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSEJ5YjJObGMzTWdJVDA5SUNkMWJtUmxabWx1WldRbklDWW1JSEJ5YjJObGMzTXVaVzFwZEZkaGNtNXBibWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQndjbTlqWlhOekxtVnRhWFJYWVhKdWFXNW5LSGRoY201cGJtY3BPMXh1SUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b2QyRnlibWx1WnlrN1hHNGdJQ0FnZlZ4dWZWeHVYRzVsZUhCdmNuUWdleUJrWldKMVp5d2dkMkZ5YmlCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselUyTmhiR0Z5TENCcGMwRnNhV0Z6TENCcGMxTmxjU3dnYVhOTllYQWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlwWkdWdWRHbDBlUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVRZMkZzWVhJdWFuTW5PMXh1WEc0dkx5QkpaaUIwYUdVZ2RtRnNkV1VnWVhOemIyTnBZWFJsWkNCM2FYUm9JR0VnYldWeVoyVWdhMlY1SUdseklHRWdjMmx1WjJ4bElHMWhjSEJwYm1jZ2JtOWtaU3dnWldGamFDQnZabHh1THk4Z2FYUnpJR3RsZVM5MllXeDFaU0J3WVdseWN5QnBjeUJwYm5ObGNuUmxaQ0JwYm5SdklIUm9aU0JqZFhKeVpXNTBJRzFoY0hCcGJtY3NJSFZ1YkdWemN5QjBhR1VnYTJWNVhHNHZMeUJoYkhKbFlXUjVJR1Y0YVhOMGN5QnBiaUJwZEM0Z1NXWWdkR2hsSUhaaGJIVmxJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQjBhR1VnYldWeVoyVWdhMlY1SUdseklHRmNiaTh2SUhObGNYVmxibU5sTENCMGFHVnVJSFJvYVhNZ2MyVnhkV1Z1WTJVZ2FYTWdaWGh3WldOMFpXUWdkRzhnWTI5dWRHRnBiaUJ0WVhCd2FXNW5JRzV2WkdWeklHRnVaQ0JsWVdOb1hHNHZMeUJ2WmlCMGFHVnpaU0J1YjJSbGN5QnBjeUJ0WlhKblpXUWdhVzRnZEhWeWJpQmhZMk52Y21ScGJtY2dkRzhnYVhSeklHOXlaR1Z5SUdsdUlIUm9aU0J6WlhGMVpXNWpaUzVjYmk4dklFdGxlWE1nYVc0Z2JXRndjR2x1WnlCdWIyUmxjeUJsWVhKc2FXVnlJR2x1SUhSb1pTQnpaWEYxWlc1alpTQnZkbVZ5Y21sa1pTQnJaWGx6SUhOd1pXTnBabWxsWkNCcGJseHVMeThnYkdGMFpYSWdiV0Z3Y0dsdVp5QnViMlJsY3k0Z0xTMGdhSFIwY0RvdkwzbGhiV3d1YjNKbkwzUjVjR1V2YldWeVoyVXVhSFJ0YkZ4dVkyOXVjM1FnVFVWU1IwVmZTMFZaSUQwZ0p6dzhKenRjYm1OdmJuTjBJRzFsY21kbElEMGdlMXh1SUNBZ0lHbGtaVzUwYVdaNU9pQjJZV3gxWlNBOVBpQjJZV3gxWlNBOVBUMGdUVVZTUjBWZlMwVlpJSHg4WEc0Z0lDQWdJQ0FnSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkemVXMWliMnduSUNZbUlIWmhiSFZsTG1SbGMyTnlhWEIwYVc5dUlEMDlQU0JOUlZKSFJWOUxSVmtwTEZ4dUlDQWdJR1JsWm1GMWJIUTZJQ2RyWlhrbkxGeHVJQ0FnSUhSaFp6b2dKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbTFsY21kbEp5eGNiaUFnSUNCMFpYTjBPaUF2WGp3OEpDOHNYRzRnSUNBZ2NtVnpiMngyWlRvZ0tDa2dQVDRnVDJKcVpXTjBMbUZ6YzJsbmJpaHVaWGNnVTJOaGJHRnlLRk41YldKdmJDaE5SVkpIUlY5TFJWa3BLU3dnZTF4dUlDQWdJQ0FnSUNCaFpHUlViMHBUVFdGd09pQmhaR1JOWlhKblpWUnZTbE5OWVhCY2JpQWdJQ0I5S1N4Y2JpQWdJQ0J6ZEhKcGJtZHBabms2SUNncElEMCtJRTFGVWtkRlgwdEZXVnh1ZlR0Y2JtTnZibk4wSUdselRXVnlaMlZMWlhrZ1BTQW9ZM1I0TENCclpYa3BJRDArSUNodFpYSm5aUzVwWkdWdWRHbG1lU2hyWlhrcElIeDhYRzRnSUNBZ0tHbHpVMk5oYkdGeUtHdGxlU2tnSmlaY2JpQWdJQ0FnSUNBZ0tDRnJaWGt1ZEhsd1pTQjhmQ0JyWlhrdWRIbHdaU0E5UFQwZ1UyTmhiR0Z5TGxCTVFVbE9LU0FtSmx4dUlDQWdJQ0FnSUNCdFpYSm5aUzVwWkdWdWRHbG1lU2hyWlhrdWRtRnNkV1VwS1NrZ0ppWmNiaUFnSUNCamRIZy9MbVJ2WXk1elkyaGxiV0V1ZEdGbmN5NXpiMjFsS0hSaFp5QTlQaUIwWVdjdWRHRm5JRDA5UFNCdFpYSm5aUzUwWVdjZ0ppWWdkR0ZuTG1SbFptRjFiSFFwTzF4dVpuVnVZM1JwYjI0Z1lXUmtUV1Z5WjJWVWIwcFRUV0Z3S0dOMGVDd2diV0Z3TENCMllXeDFaU2tnZTF4dUlDQWdJSFpoYkhWbElEMGdZM1I0SUNZbUlHbHpRV3hwWVhNb2RtRnNkV1VwSUQ4Z2RtRnNkV1V1Y21WemIyeDJaU2hqZEhndVpHOWpLU0E2SUhaaGJIVmxPMXh1SUNBZ0lHbG1JQ2hwYzFObGNTaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdhWFFnYjJZZ2RtRnNkV1V1YVhSbGJYTXBYRzRnSUNBZ0lDQWdJQ0FnSUNCdFpYSm5aVlpoYkhWbEtHTjBlQ3dnYldGd0xDQnBkQ2s3WEc0Z0lDQWdaV3h6WlNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FYUWdiMllnZG1Gc2RXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCdFpYSm5aVlpoYkhWbEtHTjBlQ3dnYldGd0xDQnBkQ2s3WEc0Z0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNCdFpYSm5aVlpoYkhWbEtHTjBlQ3dnYldGd0xDQjJZV3gxWlNrN1hHNTlYRzVtZFc1amRHbHZiaUJ0WlhKblpWWmhiSFZsS0dOMGVDd2diV0Z3TENCMllXeDFaU2tnZTF4dUlDQWdJR052Ym5OMElITnZkWEpqWlNBOUlHTjBlQ0FtSmlCcGMwRnNhV0Z6S0haaGJIVmxLU0EvSUhaaGJIVmxMbkpsYzI5c2RtVW9ZM1I0TG1Sdll5a2dPaUIyWVd4MVpUdGNiaUFnSUNCcFppQW9JV2x6VFdGd0tITnZkWEpqWlNrcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblRXVnlaMlVnYzI5MWNtTmxjeUJ0ZFhOMElHSmxJRzFoY0hNZ2IzSWdiV0Z3SUdGc2FXRnpaWE1uS1R0Y2JpQWdJQ0JqYjI1emRDQnpjbU5OWVhBZ1BTQnpiM1Z5WTJVdWRHOUtVMDlPS0c1MWJHd3NJR04wZUN3Z1RXRndLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJRnRyWlhrc0lIWmhiSFZsWFNCdlppQnpjbU5OWVhBcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0cxaGNDQnBibk4wWVc1alpXOW1JRTFoY0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnRZWEF1YUdGektHdGxlU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldGd0xuTmxkQ2hyWlhrc0lIWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHRZWEFnYVc1emRHRnVZMlZ2WmlCVFpYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVoWkdRb2EyVjVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNnaFQySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHMWhjQ3dnYTJWNUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzFoY0N3Z2EyVjVMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkM0pwZEdGaWJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXNTFiV1Z5WVdKc1pUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdWY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnRZWEE3WEc1OVhHNWNibVY0Y0c5eWRDQjdJR0ZrWkUxbGNtZGxWRzlLVTAxaGNDd2dhWE5OWlhKblpVdGxlU3dnYldWeVoyVWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QjNZWEp1SUgwZ1puSnZiU0FuTGk0dmJHOW5MbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHpUV1Z5WjJWTFpYa3NJR0ZrWkUxbGNtZGxWRzlLVTAxaGNDQjlJR1p5YjIwZ0p5NHVMM05qYUdWdFlTOTVZVzFzTFRFdU1TOXRaWEpuWlM1cWN5YzdYRzVwYlhCdmNuUWdleUJqY21WaGRHVlRkSEpwYm1kcFpubERiMjUwWlhoMElIMGdabkp2YlNBbkxpNHZjM1J5YVc1bmFXWjVMM04wY21sdVoybG1lUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnBjMDV2WkdVZ2ZTQm1jbTl0SUNjdUwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUhSdlNsTWdmU0JtY205dElDY3VMM1J2U2xNdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCaFpHUlFZV2x5Vkc5S1UwMWhjQ2hqZEhnc0lHMWhjQ3dnZXlCclpYa3NJSFpoYkhWbElIMHBJSHRjYmlBZ0lDQnBaaUFvYVhOT2IyUmxLR3RsZVNrZ0ppWWdhMlY1TG1Ga1pGUnZTbE5OWVhBcFhHNGdJQ0FnSUNBZ0lHdGxlUzVoWkdSVWIwcFRUV0Z3S0dOMGVDd2diV0Z3TENCMllXeDFaU2s3WEc0Z0lDQWdMeThnVkU5RVR6b2dVMmh2ZFd4a0lHUnliM0FnZEdocGN5QnpjR1ZqYVdGc0lHTmhjMlVnWm05eUlHSmhjbVVnUER3Z2FHRnVaR3hwYm1kY2JpQWdJQ0JsYkhObElHbG1JQ2hwYzAxbGNtZGxTMlY1S0dOMGVDd2dhMlY1S1NsY2JpQWdJQ0FnSUNBZ1lXUmtUV1Z5WjJWVWIwcFRUV0Z3S0dOMGVDd2diV0Z3TENCMllXeDFaU2s3WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdwelMyVjVJRDBnZEc5S1V5aHJaWGtzSUNjbkxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNCcFppQW9iV0Z3SUdsdWMzUmhibU5sYjJZZ1RXRndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YzJWMEtHcHpTMlY1TENCMGIwcFRLSFpoYkhWbExDQnFjMHRsZVN3Z1kzUjRLU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2JXRndJR2x1YzNSaGJtTmxiMllnVTJWMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVZV1JrS0dwelMyVjVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMGNtbHVaMHRsZVNBOUlITjBjbWx1WjJsbWVVdGxlU2hyWlhrc0lHcHpTMlY1TENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYW5OV1lXeDFaU0E5SUhSdlNsTW9kbUZzZFdVc0lITjBjbWx1WjB0bGVTd2dZM1I0S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoemRISnBibWRMWlhrZ2FXNGdiV0Z3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaHRZWEFzSUhOMGNtbHVaMHRsZVN3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dhbk5XWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDNKcGRHRmliR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWdWRXMWxjbUZpYkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nZEhKMVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0Z0emRISnBibWRMWlhsZElEMGdhbk5XWVd4MVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYldGd08xeHVmVnh1Wm5WdVkzUnBiMjRnYzNSeWFXNW5hV1o1UzJWNUtHdGxlU3dnYW5OTFpYa3NJR04wZUNrZ2UxeHVJQ0FnSUdsbUlDaHFjMHRsZVNBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNjbk8xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2FuTkxaWGtnSVQwOUlDZHZZbXBsWTNRbktWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1UzUnlhVzVuS0dwelMyVjVLVHRjYmlBZ0lDQnBaaUFvYVhOT2IyUmxLR3RsZVNrZ0ppWWdZM1I0UHk1a2IyTXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1J5UTNSNElEMGdZM0psWVhSbFUzUnlhVzVuYVdaNVEyOXVkR1Y0ZENoamRIZ3VaRzlqTENCN2ZTazdYRzRnSUNBZ0lDQWdJSE4wY2tOMGVDNWhibU5vYjNKeklEMGdibVYzSUZObGRDZ3BPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUc1dlpHVWdiMllnWTNSNExtRnVZMmh2Y25NdWEyVjVjeWdwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5UTNSNExtRnVZMmh2Y25NdVlXUmtLRzV2WkdVdVlXNWphRzl5S1R0Y2JpQWdJQ0FnSUNBZ2MzUnlRM1I0TG1sdVJteHZkeUE5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSE4wY2tOMGVDNXBibE4wY21sdVoybG1lVXRsZVNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE4wY2t0bGVTQTlJR3RsZVM1MGIxTjBjbWx1WnloemRISkRkSGdwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUM1dFlYQkxaWGxYWVhKdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0JxYzI5dVUzUnlJRDBnU2xOUFRpNXpkSEpwYm1kcFpua29jM1J5UzJWNUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHFjMjl1VTNSeUxteGxibWQwYUNBK0lEUXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3B6YjI1VGRISWdQU0JxYzI5dVUzUnlMbk4xWW5OMGNtbHVaeWd3TENBek5pa2dLeUFuTGk0dVhDSW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QyRnliaWhqZEhndVpHOWpMbTl3ZEdsdmJuTXViRzluVEdWMlpXd3NJR0JMWlhseklIZHBkR2dnWTI5c2JHVmpkR2x2YmlCMllXeDFaWE1nZDJsc2JDQmlaU0J6ZEhKcGJtZHBabWxsWkNCa2RXVWdkRzhnU2xNZ1QySnFaV04wSUhKbGMzUnlhV04wYVc5dWN6b2dKSHRxYzI5dVUzUnlmUzRnVTJWMElHMWhjRUZ6VFdGd09pQjBjblZsSUhSdklIVnpaU0J2WW1wbFkzUWdhMlY1Y3k1Z0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOMGVDNXRZWEJMWlhsWFlYSnVaV1FnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEhKTFpYazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaHFjMHRsZVNrN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdGa1pGQmhhWEpVYjBwVFRXRndJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dZM0psWVhSbFRtOWtaU0I5SUdaeWIyMGdKeTR1TDJSdll5OWpjbVZoZEdWT2IyUmxMbXB6Snp0Y2JtbHRjRzl5ZENCN0lITjBjbWx1WjJsbWVWQmhhWElnZlNCbWNtOXRJQ2N1TGk5emRISnBibWRwWm5rdmMzUnlhVzVuYVdaNVVHRnBjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QmhaR1JRWVdseVZHOUtVMDFoY0NCOUlHWnliMjBnSnk0dllXUmtVR0ZwY2xSdlNsTk5ZWEF1YW5Nbk8xeHVhVzF3YjNKMElIc2dUazlFUlY5VVdWQkZMQ0JRUVVsU0xDQnBjMDV2WkdVZ2ZTQm1jbTl0SUNjdUwybGtaVzUwYVhSNUxtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsVUdGcGNpaHJaWGtzSUhaaGJIVmxMQ0JqZEhncElIdGNiaUFnSUNCamIyNXpkQ0JySUQwZ1kzSmxZWFJsVG05a1pTaHJaWGtzSUhWdVpHVm1hVzVsWkN3Z1kzUjRLVHRjYmlBZ0lDQmpiMjV6ZENCMklEMGdZM0psWVhSbFRtOWtaU2gyWVd4MVpTd2dkVzVrWldacGJtVmtMQ0JqZEhncE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VHRnBjaWhyTENCMktUdGNibjFjYm1Oc1lYTnpJRkJoYVhJZ2UxeHVJQ0FnSUdOdmJuTjBjblZqZEc5eUtHdGxlU3dnZG1Gc2RXVWdQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoMGFHbHpMQ0JPVDBSRlgxUlpVRVVzSUhzZ2RtRnNkV1U2SUZCQlNWSWdmU2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhMlY1SUQwZ2EyVjVPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lDQWdmVnh1SUNBZ0lHTnNiMjVsS0hOamFHVnRZU2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdleUJyWlhrc0lIWmhiSFZsSUgwZ1BTQjBhR2x6TzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5PYjJSbEtHdGxlU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQnJaWGtnUFNCclpYa3VZMnh2Ym1Vb2MyTm9aVzFoS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x6VG05a1pTaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbExtTnNiMjVsS0hOamFHVnRZU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VHRnBjaWhyWlhrc0lIWmhiSFZsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkRzlLVTA5T0tGOHNJR04wZUNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lXbHlJRDBnWTNSNFB5NXRZWEJCYzAxaGNDQS9JRzVsZHlCTllYQW9LU0E2SUh0OU8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXUmtVR0ZwY2xSdlNsTk5ZWEFvWTNSNExDQndZV2x5TENCMGFHbHpLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHOVRkSEpwYm1jb1kzUjRMQ0J2YmtOdmJXMWxiblFzSUc5dVEyaHZiWEJMWldWd0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpkSGcvTG1SdlkxeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCemRISnBibWRwWm5sUVlXbHlLSFJvYVhNc0lHTjBlQ3dnYjI1RGIyMXRaVzUwTENCdmJrTm9iMjF3UzJWbGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1NsTlBUaTV6ZEhKcGJtZHBabmtvZEdocGN5azdYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCUVlXbHlMQ0JqY21WaGRHVlFZV2x5SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYVhOT2IyUmxMQ0JwYzFCaGFYSWdmU0JtY205dElDY3VMaTl1YjJSbGN5OXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCemRISnBibWRwWm5rZ2ZTQm1jbTl0SUNjdUwzTjBjbWx1WjJsbWVTNXFjeWM3WEc1cGJYQnZjblFnZXlCc2FXNWxRMjl0YldWdWRDd2dhVzVrWlc1MFEyOXRiV1Z1ZENCOUlHWnliMjBnSnk0dmMzUnlhVzVuYVdaNVEyOXRiV1Z1ZEM1cWN5YzdYRzVjYm1aMWJtTjBhVzl1SUhOMGNtbHVaMmxtZVVOdmJHeGxZM1JwYjI0b1kyOXNiR1ZqZEdsdmJpd2dZM1I0TENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnWTI5dWMzUWdabXh2ZHlBOUlHTjBlQzVwYmtac2IzY2dQejhnWTI5c2JHVmpkR2x2Ymk1bWJHOTNPMXh1SUNBZ0lHTnZibk4wSUhOMGNtbHVaMmxtZVNBOUlHWnNiM2NnUHlCemRISnBibWRwWm5sR2JHOTNRMjlzYkdWamRHbHZiaUE2SUhOMGNtbHVaMmxtZVVKc2IyTnJRMjlzYkdWamRHbHZianRjYmlBZ0lDQnlaWFIxY200Z2MzUnlhVzVuYVdaNUtHTnZiR3hsWTNScGIyNHNJR04wZUN3Z2IzQjBhVzl1Y3lrN1hHNTlYRzVtZFc1amRHbHZiaUJ6ZEhKcGJtZHBabmxDYkc5amEwTnZiR3hsWTNScGIyNG9leUJqYjIxdFpXNTBMQ0JwZEdWdGN5QjlMQ0JqZEhnc0lIc2dZbXh2WTJ0SmRHVnRVSEpsWm1sNExDQm1iRzkzUTJoaGNuTXNJR2wwWlcxSmJtUmxiblFzSUc5dVEyaHZiWEJMWldWd0xDQnZia052YlcxbGJuUWdmU2tnZTF4dUlDQWdJR052Ym5OMElIc2dhVzVrWlc1MExDQnZjSFJwYjI1ek9pQjdJR052YlcxbGJuUlRkSEpwYm1jZ2ZTQjlJRDBnWTNSNE8xeHVJQ0FnSUdOdmJuTjBJR2wwWlcxRGRIZ2dQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JqZEhnc0lIc2dhVzVrWlc1ME9pQnBkR1Z0U1c1a1pXNTBMQ0IwZVhCbE9pQnVkV3hzSUgwcE8xeHVJQ0FnSUd4bGRDQmphRzl0Y0V0bFpYQWdQU0JtWVd4elpUc2dMeThnWm14aFp5Qm1iM0lnZEdobElIQnlaV05sWkdsdVp5QnViMlJsSjNNZ2MzUmhkSFZ6WEc0Z0lDQWdZMjl1YzNRZ2JHbHVaWE1nUFNCYlhUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHbDBaVzF6TG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbDBaVzBnUFNCcGRHVnRjMXRwWFR0Y2JpQWdJQ0FnSUNBZ2JHVjBJR052YlcxbGJuUWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOT2IyUmxLR2wwWlcwcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV05vYjIxd1MyVmxjQ0FtSmlCcGRHVnRMbk53WVdObFFtVm1iM0psS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb0p5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lXUmtRMjl0YldWdWRFSmxabTl5WlNoamRIZ3NJR3hwYm1WekxDQnBkR1Z0TG1OdmJXMWxiblJDWldadmNtVXNJR05vYjIxd1MyVmxjQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTNWpiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiVzFsYm5RZ1BTQnBkR1Z0TG1OdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTlFZV2x5S0dsMFpXMHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGF5QTlJR2x6VG05a1pTaHBkR1Z0TG10bGVTa2dQeUJwZEdWdExtdGxlU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hV3NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV05vYjIxd1MyVmxjQ0FtSmlCcGF5NXpjR0ZqWlVKbFptOXlaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDZ25KeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVdSa1EyOXRiV1Z1ZEVKbFptOXlaU2hqZEhnc0lHeHBibVZ6TENCcGF5NWpiMjF0Wlc1MFFtVm1iM0psTENCamFHOXRjRXRsWlhBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTm9iMjF3UzJWbGNDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYzNSeUlEMGdjM1J5YVc1bmFXWjVLR2wwWlcwc0lHbDBaVzFEZEhnc0lDZ3BJRDArSUNoamIyMXRaVzUwSUQwZ2JuVnNiQ2tzSUNncElEMCtJQ2hqYUc5dGNFdGxaWEFnUFNCMGNuVmxLU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlDczlJR3hwYm1WRGIyMXRaVzUwS0hOMGNpd2dhWFJsYlVsdVpHVnVkQ3dnWTI5dGJXVnVkRk4wY21sdVp5aGpiMjF0Wlc1MEtTazdYRzRnSUNBZ0lDQWdJR2xtSUNoamFHOXRjRXRsWlhBZ0ppWWdZMjl0YldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUdOb2IyMXdTMlZsY0NBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tHSnNiMk5yU1hSbGJWQnlaV1pwZUNBcklITjBjaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHeGxkQ0J6ZEhJN1hHNGdJQ0FnYVdZZ0tHeHBibVZ6TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0J6ZEhJZ1BTQm1iRzkzUTJoaGNuTXVjM1JoY25RZ0t5Qm1iRzkzUTJoaGNuTXVaVzVrTzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2MzUnlJRDBnYkdsdVpYTmJNRjA3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXhPeUJwSUR3Z2JHbHVaWE11YkdWdVozUm9PeUFySzJrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQnNhVzVsYzF0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0JzYVc1bElEOGdZRnhjYmlSN2FXNWtaVzUwZlNSN2JHbHVaWDFnSURvZ0oxeGNiaWM3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dOdmJXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2MzUnlJQ3M5SUNkY1hHNG5JQ3NnYVc1a1pXNTBRMjl0YldWdWRDaGpiMjF0Wlc1MFUzUnlhVzVuS0dOdmJXMWxiblFwTENCcGJtUmxiblFwTzF4dUlDQWdJQ0FnSUNCcFppQW9iMjVEYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNURiMjF0Wlc1MEtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0dOb2IyMXdTMlZsY0NBbUppQnZia05vYjIxd1MyVmxjQ2xjYmlBZ0lDQWdJQ0FnYjI1RGFHOXRjRXRsWlhBb0tUdGNiaUFnSUNCeVpYUjFjbTRnYzNSeU8xeHVmVnh1Wm5WdVkzUnBiMjRnYzNSeWFXNW5hV1o1Um14dmQwTnZiR3hsWTNScGIyNG9leUJwZEdWdGN5QjlMQ0JqZEhnc0lIc2dabXh2ZDBOb1lYSnpMQ0JwZEdWdFNXNWtaVzUwSUgwcElIdGNiaUFnSUNCamIyNXpkQ0I3SUdsdVpHVnVkQ3dnYVc1a1pXNTBVM1JsY0N3Z1pteHZkME52Ykd4bFkzUnBiMjVRWVdSa2FXNW5PaUJtWTFCaFpHUnBibWNzSUc5d2RHbHZibk02SUhzZ1kyOXRiV1Z1ZEZOMGNtbHVaeUI5SUgwZ1BTQmpkSGc3WEc0Z0lDQWdhWFJsYlVsdVpHVnVkQ0FyUFNCcGJtUmxiblJUZEdWd08xeHVJQ0FnSUdOdmJuTjBJR2wwWlcxRGRIZ2dQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JqZEhnc0lIdGNiaUFnSUNBZ0lDQWdhVzVrWlc1ME9pQnBkR1Z0U1c1a1pXNTBMRnh1SUNBZ0lDQWdJQ0JwYmtac2IzYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIUjVjR1U2SUc1MWJHeGNiaUFnSUNCOUtUdGNiaUFnSUNCc1pYUWdjbVZ4VG1WM2JHbHVaU0E5SUdaaGJITmxPMXh1SUNBZ0lHeGxkQ0JzYVc1bGMwRjBWbUZzZFdVZ1BTQXdPMXh1SUNBZ0lHTnZibk4wSUd4cGJtVnpJRDBnVzEwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCcGRHVnRjeTVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCcGRHVnRJRDBnYVhSbGJYTmJhVjA3WEc0Z0lDQWdJQ0FnSUd4bGRDQmpiMjF0Wlc1MElEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x6VG05a1pTaHBkR1Z0S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzB1YzNCaFkyVkNaV1p2Y21VcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDZ25KeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmhaR1JEYjIxdFpXNTBRbVZtYjNKbEtHTjBlQ3dnYkdsdVpYTXNJR2wwWlcwdVkyOXRiV1Z1ZEVKbFptOXlaU3dnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyMXRaVzUwSUQwZ2FYUmxiUzVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselVHRnBjaWhwZEdWdEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYVdzZ1BTQnBjMDV2WkdVb2FYUmxiUzVyWlhrcElEOGdhWFJsYlM1clpYa2dPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHJLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHJMbk53WVdObFFtVm1iM0psS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LQ2NuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaFpHUkRiMjF0Wlc1MFFtVm1iM0psS0dOMGVDd2diR2x1WlhNc0lHbHJMbU52YlcxbGJuUkNaV1p2Y21Vc0lHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hV3N1WTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnhUbVYzYkdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGRpQTlJR2x6VG05a1pTaHBkR1Z0TG5aaGJIVmxLU0EvSUdsMFpXMHVkbUZzZFdVZ09pQnVkV3hzTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMkxtTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdQU0JwZGk1amIyMXRaVzUwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBkaTVqYjIxdFpXNTBRbVZtYjNKbEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhGT1pYZHNhVzVsSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dsMFpXMHVkbUZzZFdVZ1BUMGdiblZzYkNBbUppQnBhejh1WTI5dGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblFnUFNCcGF5NWpiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYjIxdFpXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnhUbVYzYkdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J6ZEhJZ1BTQnpkSEpwYm1kcFpua29hWFJsYlN3Z2FYUmxiVU4wZUN3Z0tDa2dQVDRnS0dOdmJXMWxiblFnUFNCdWRXeHNLU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBJRHdnYVhSbGJYTXViR1Z1WjNSb0lDMGdNU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBjaUFyUFNBbkxDYzdYRzRnSUNBZ0lDQWdJR2xtSUNoamIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5SUNzOUlHeHBibVZEYjIxdFpXNTBLSE4wY2l3Z2FYUmxiVWx1WkdWdWRDd2dZMjl0YldWdWRGTjBjbWx1WnloamIyMXRaVzUwS1NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doY21WeFRtVjNiR2x1WlNBbUppQW9iR2x1WlhNdWJHVnVaM1JvSUQ0Z2JHbHVaWE5CZEZaaGJIVmxJSHg4SUhOMGNpNXBibU5zZFdSbGN5Z25YRnh1SnlrcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WeFRtVjNiR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb2MzUnlLVHRjYmlBZ0lDQWdJQ0FnYkdsdVpYTkJkRlpoYkhWbElEMGdiR2x1WlhNdWJHVnVaM1JvTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCN0lITjBZWEowTENCbGJtUWdmU0E5SUdac2IzZERhR0Z5Y3p0Y2JpQWdJQ0JwWmlBb2JHbHVaWE11YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkR0Z5ZENBcklHVnVaRHRjYmlBZ0lDQjlYRzRnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hjbVZ4VG1WM2JHbHVaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHVnVJRDBnYkdsdVpYTXVjbVZrZFdObEtDaHpkVzBzSUd4cGJtVXBJRDArSUhOMWJTQXJJR3hwYm1VdWJHVnVaM1JvSUNzZ01pd2dNaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWEZPWlhkc2FXNWxJRDBnWTNSNExtOXdkR2x2Ym5NdWJHbHVaVmRwWkhSb0lENGdNQ0FtSmlCc1pXNGdQaUJqZEhndWIzQjBhVzl1Y3k1c2FXNWxWMmxrZEdnN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hKbGNVNWxkMnhwYm1VcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQnpkSElnUFNCemRHRnlkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdiR2x1WlNCdlppQnNhVzVsY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdLejBnYkdsdVpTQS9JR0JjWEc0a2UybHVaR1Z1ZEZOMFpYQjlKSHRwYm1SbGJuUjlKSHRzYVc1bGZXQWdPaUFuWEZ4dUp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJnSkh0emRISjlYRnh1Skh0cGJtUmxiblI5Skh0bGJtUjlZRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCZ0pIdHpkR0Z5ZEgwa2UyWmpVR0ZrWkdsdVozMGtlMnhwYm1WekxtcHZhVzRvSnlBbktYMGtlMlpqVUdGa1pHbHVaMzBrZTJWdVpIMWdPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1ZlZ4dVpuVnVZM1JwYjI0Z1lXUmtRMjl0YldWdWRFSmxabTl5WlNoN0lHbHVaR1Z1ZEN3Z2IzQjBhVzl1Y3pvZ2V5QmpiMjF0Wlc1MFUzUnlhVzVuSUgwZ2ZTd2diR2x1WlhNc0lHTnZiVzFsYm5Rc0lHTm9iMjF3UzJWbGNDa2dlMXh1SUNBZ0lHbG1JQ2hqYjIxdFpXNTBJQ1ltSUdOb2IyMXdTMlZsY0NsY2JpQWdJQ0FnSUNBZ1kyOXRiV1Z1ZENBOUlHTnZiVzFsYm5RdWNtVndiR0ZqWlNndlhseGNiaXN2TENBbkp5azdYRzRnSUNBZ2FXWWdLR052YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhV01nUFNCcGJtUmxiblJEYjIxdFpXNTBLR052YlcxbGJuUlRkSEpwYm1jb1kyOXRiV1Z1ZENrc0lHbHVaR1Z1ZENrN1hHNGdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29hV011ZEhKcGJWTjBZWEowS0NrcE95QXZMeUJCZG05cFpDQmtiM1ZpYkdVZ2FXNWtaVzUwSUc5dUlHWnBjbk4wSUd4cGJtVmNiaUFnSUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0I3SUhOMGNtbHVaMmxtZVVOdmJHeGxZM1JwYjI0Z2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCemRISnBibWRwWm5sRGIyeHNaV04wYVc5dUlIMGdabkp2YlNBbkxpNHZjM1J5YVc1bmFXWjVMM04wY21sdVoybG1lVU52Ykd4bFkzUnBiMjR1YW5Nbk8xeHVhVzF3YjNKMElIc2dZV1JrVUdGcGNsUnZTbE5OWVhBZ2ZTQm1jbTl0SUNjdUwyRmtaRkJoYVhKVWIwcFRUV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJRU52Ykd4bFkzUnBiMjRnZlNCbWNtOXRJQ2N1TDBOdmJHeGxZM1JwYjI0dWFuTW5PMXh1YVcxd2IzSjBJSHNnYVhOUVlXbHlMQ0JwYzFOallXeGhjaXdnVFVGUUlIMGdabkp2YlNBbkxpOXBaR1Z1ZEdsMGVTNXFjeWM3WEc1cGJYQnZjblFnZXlCUVlXbHlMQ0JqY21WaGRHVlFZV2x5SUgwZ1puSnZiU0FuTGk5UVlXbHlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHbHpVMk5oYkdGeVZtRnNkV1VnZlNCbWNtOXRJQ2N1TDFOallXeGhjaTVxY3ljN1hHNWNibVoxYm1OMGFXOXVJR1pwYm1SUVlXbHlLR2wwWlcxekxDQnJaWGtwSUh0Y2JpQWdJQ0JqYjI1emRDQnJJRDBnYVhOVFkyRnNZWElvYTJWNUtTQS9JR3RsZVM1MllXeDFaU0E2SUd0bGVUdGNiaUFnSUNCbWIzSWdLR052Ym5OMElHbDBJRzltSUdsMFpXMXpLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMUJoYVhJb2FYUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhRdWEyVjVJRDA5UFNCclpYa2dmSHdnYVhRdWEyVjVJRDA5UFNCcktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGREdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMU5qWVd4aGNpaHBkQzVyWlhrcElDWW1JR2wwTG10bGVTNTJZV3gxWlNBOVBUMGdheWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWFE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNibjFjYm1Oc1lYTnpJRmxCVFV4TllYQWdaWGgwWlc1a2N5QkRiMnhzWldOMGFXOXVJSHRjYmlBZ0lDQnpkR0YwYVdNZ1oyVjBJSFJoWjA1aGJXVW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YldGd0p6dGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb2MyTm9aVzFoS1NCN1hHNGdJQ0FnSUNBZ0lITjFjR1Z5S0UxQlVDd2djMk5vWlcxaEtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1cGRHVnRjeUE5SUZ0ZE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQklHZGxibVZ5YVdNZ1kyOXNiR1ZqZEdsdmJpQndZWEp6YVc1bklHMWxkR2h2WkNCMGFHRjBJR05oYmlCaVpTQmxlSFJsYm1SbFpGeHVJQ0FnSUNBcUlIUnZJRzkwYUdWeUlHNXZaR1VnWTJ4aGMzTmxjeUIwYUdGMElHbHVhR1Z5YVhRZ1puSnZiU0JaUVUxTVRXRndYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2MzUmhkR2xqSUdaeWIyMG9jMk5vWlcxaExDQnZZbW9zSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJR3RsWlhCVmJtUmxabWx1WldRc0lISmxjR3hoWTJWeUlIMGdQU0JqZEhnN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGNDQTlJRzVsZHlCMGFHbHpLSE5qYUdWdFlTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRmtaQ0E5SUNoclpYa3NJSFpoYkhWbEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSEpsY0d4aFkyVnlJRDA5UFNBblpuVnVZM1JwYjI0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2NtVndiR0ZqWlhJdVkyRnNiQ2h2WW1vc0lHdGxlU3dnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2h5WlhCc1lXTmxjaWtnSmlZZ0lYSmxjR3hoWTJWeUxtbHVZMngxWkdWektHdGxlU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElDRTlQU0IxYm1SbFptbHVaV1FnZkh3Z2EyVmxjRlZ1WkdWbWFXNWxaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWFYUmxiWE11Y0hWemFDaGpjbVZoZEdWUVlXbHlLR3RsZVN3Z2RtRnNkV1VzSUdOMGVDa3BPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCcFppQW9iMkpxSUdsdWMzUmhibU5sYjJZZ1RXRndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJRnRyWlhrc0lIWmhiSFZsWFNCdlppQnZZbW9wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVdSa0tHdGxlU3dnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0c5aWFpQW1KaUIwZVhCbGIyWWdiMkpxSUQwOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnJaWGtnYjJZZ1QySnFaV04wTG10bGVYTW9iMkpxS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaFpHUW9hMlY1TENCdlltcGJhMlY1WFNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJ6WTJobGJXRXVjMjl5ZEUxaGNFVnVkSEpwWlhNZ1BUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV6YjNKMEtITmphR1Z0WVM1emIzSjBUV0Z3Ulc1MGNtbGxjeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGNEdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXUmtjeUJoSUhaaGJIVmxJSFJ2SUhSb1pTQmpiMnhzWldOMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElHOTJaWEozY21sMFpTQXRJRWxtSUc1dmRDQnpaWFFnWUhSeWRXVmdMQ0IxYzJsdVp5QmhJR3RsZVNCMGFHRjBJR2x6SUdGc2NtVmhaSGtnYVc0Z2RHaGxYRzRnSUNBZ0lDb2dJQ0JqYjJ4c1pXTjBhVzl1SUhkcGJHd2dkR2h5YjNjdUlFOTBhR1Z5ZDJselpTd2diM1psY25keWFYUmxjeUIwYUdVZ2NISmxkbWx2ZFhNZ2RtRnNkV1V1WEc0Z0lDQWdJQ292WEc0Z0lDQWdZV1JrS0hCaGFYSXNJRzkyWlhKM2NtbDBaU2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdYM0JoYVhJN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzFCaGFYSW9jR0ZwY2lrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JmY0dGcGNpQTlJSEJoYVhJN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tDRndZV2x5SUh4OElIUjVjR1Z2WmlCd1lXbHlJQ0U5UFNBbmIySnFaV04wSnlCOGZDQWhLQ2RyWlhrbklHbHVJSEJoYVhJcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpiaUJVZVhCbFUyTnlhWEIwTENCMGFHbHpJRzVsZG1WeUlHaGhjSEJsYm5NdVhHNGdJQ0FnSUNBZ0lDQWdJQ0JmY0dGcGNpQTlJRzVsZHlCUVlXbHlLSEJoYVhJc0lIQmhhWEkvTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCZmNHRnBjaUE5SUc1bGR5QlFZV2x5S0hCaGFYSXVhMlY1TENCd1lXbHlMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NISmxkaUE5SUdacGJtUlFZV2x5S0hSb2FYTXVhWFJsYlhNc0lGOXdZV2x5TG10bGVTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnZjblJGYm5SeWFXVnpJRDBnZEdocGN5NXpZMmhsYldFL0xuTnZjblJOWVhCRmJuUnlhV1Z6TzF4dUlDQWdJQ0FnSUNCcFppQW9jSEpsZGlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnZkbVZ5ZDNKcGRHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkxaWGtnSkh0ZmNHRnBjaTVyWlhsOUlHRnNjbVZoWkhrZ2MyVjBZQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJHYjNJZ2MyTmhiR0Z5Y3l3Z2EyVmxjQ0IwYUdVZ2IyeGtJRzV2WkdVZ0ppQnBkSE1nWTI5dGJXVnVkSE1nWVc1a0lHRnVZMmh2Y25OY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxTmpZV3hoY2lod2NtVjJMblpoYkhWbEtTQW1KaUJwYzFOallXeGhjbFpoYkhWbEtGOXdZV2x5TG5aaGJIVmxLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3Y21WMkxuWmhiSFZsTG5aaGJIVmxJRDBnWDNCaGFYSXVkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NISmxkaTUyWVd4MVpTQTlJRjl3WVdseUxuWmhiSFZsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tITnZjblJGYm5SeWFXVnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcElEMGdkR2hwY3k1cGRHVnRjeTVtYVc1a1NXNWtaWGdvYVhSbGJTQTlQaUJ6YjNKMFJXNTBjbWxsY3loZmNHRnBjaXdnYVhSbGJTa2dQQ0F3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocElEMDlQU0F0TVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWwwWlcxekxuQjFjMmdvWDNCaGFYSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFYUmxiWE11YzNCc2FXTmxLR2tzSURBc0lGOXdZV2x5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFYUmxiWE11Y0hWemFDaGZjR0ZwY2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWkdWc1pYUmxLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCcGRDQTlJR1pwYm1SUVlXbHlLSFJvYVhNdWFYUmxiWE1zSUd0bGVTazdYRzRnSUNBZ0lDQWdJR2xtSUNnaGFYUXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmxiQ0E5SUhSb2FYTXVhWFJsYlhNdWMzQnNhV05sS0hSb2FYTXVhWFJsYlhNdWFXNWtaWGhQWmlocGRDa3NJREVwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdWc0xteGxibWQwYUNBK0lEQTdYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRDaHJaWGtzSUd0bFpYQlRZMkZzWVhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FYUWdQU0JtYVc1a1VHRnBjaWgwYUdsekxtbDBaVzF6TENCclpYa3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2FYUS9MblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0tDRnJaV1Z3VTJOaGJHRnlJQ1ltSUdselUyTmhiR0Z5S0c1dlpHVXBJRDhnYm05a1pTNTJZV3gxWlNBNklHNXZaR1VwSUQ4L0lIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNGdJQ0FnYUdGektHdGxlU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSVNGbWFXNWtVR0ZwY2loMGFHbHpMbWwwWlcxekxDQnJaWGtwTzF4dUlDQWdJSDFjYmlBZ0lDQnpaWFFvYTJWNUxDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Ga1pDaHVaWGNnVUdGcGNpaHJaWGtzSUhaaGJIVmxLU3dnZEhKMVpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQndZWEpoYlNCamRIZ2dMU0JEYjI1MlpYSnphVzl1SUdOdmJuUmxlSFFzSUc5eWFXZHBibUZzYkhrZ2MyVjBJR2x1SUVSdlkzVnRaVzUwSTNSdlNsTW9LVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRMnhoYzNOOUlGUjVjR1VnTFNCSlppQnpaWFFzSUdadmNtTmxjeUIwYUdVZ2NtVjBkWEp1WldRZ1kyOXNiR1ZqZEdsdmJpQjBlWEJsWEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nU1c1emRHRnVZMlVnYjJZZ1ZIbHdaU3dnVFdGd0xDQnZjaUJQWW1wbFkzUmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGIwcFRUMDRvWHl3Z1kzUjRMQ0JVZVhCbEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMWhjQ0E5SUZSNWNHVWdQeUJ1WlhjZ1ZIbHdaU2dwSURvZ1kzUjRQeTV0WVhCQmMwMWhjQ0EvSUc1bGR5Qk5ZWEFvS1NBNklIdDlPMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzUjRQeTV2YmtOeVpXRjBaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV2YmtOeVpXRjBaU2h0WVhBcE8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR2wwWlcwZ2IyWWdkR2hwY3k1cGRHVnRjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHRmtaRkJoYVhKVWIwcFRUV0Z3S0dOMGVDd2diV0Z3TENCcGRHVnRLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzFoY0R0Y2JpQWdJQ0I5WEc0Z0lDQWdkRzlUZEhKcGJtY29ZM1I0TENCdmJrTnZiVzFsYm5Rc0lHOXVRMmh2YlhCTFpXVndLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hZM1I0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0hSb2FYTXBPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdsMFpXMGdiMllnZEdocGN5NXBkR1Z0Y3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBjMUJoYVhJb2FYUmxiU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JOWVhBZ2FYUmxiWE1nYlhWemRDQmhiR3dnWW1VZ2NHRnBjbk03SUdadmRXNWtJQ1I3U2xOUFRpNXpkSEpwYm1kcFpua29hWFJsYlNsOUlHbHVjM1JsWVdSZ0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0lXTjBlQzVoYkd4T2RXeHNWbUZzZFdWeklDWW1JSFJvYVhNdWFHRnpRV3hzVG5Wc2JGWmhiSFZsY3lobVlXeHpaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkSGdnUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCamRIZ3NJSHNnWVd4c1RuVnNiRlpoYkhWbGN6b2dkSEoxWlNCOUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBjbWx1WjJsbWVVTnZiR3hsWTNScGIyNG9kR2hwY3l3Z1kzUjRMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmliRzlqYTBsMFpXMVFjbVZtYVhnNklDY25MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pteHZkME5vWVhKek9pQjdJSE4wWVhKME9pQW5leWNzSUdWdVpEb2dKMzBuSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdFNXNWtaVzUwT2lCamRIZ3VhVzVrWlc1MElIeDhJQ2NuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVEYUc5dGNFdGxaWEFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia052YlcxbGJuUmNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QlpRVTFNVFdGd0xDQm1hVzVrVUdGcGNpQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lHbHpUV0Z3SUgwZ1puSnZiU0FuTGk0dkxpNHZibTlrWlhNdmFXUmxiblJwZEhrdWFuTW5PMXh1YVcxd2IzSjBJSHNnV1VGTlRFMWhjQ0I5SUdaeWIyMGdKeTR1THk0dUwyNXZaR1Z6TDFsQlRVeE5ZWEF1YW5Nbk8xeHVYRzVqYjI1emRDQnRZWEFnUFNCN1hHNGdJQ0FnWTI5c2JHVmpkR2x2YmpvZ0oyMWhjQ2NzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0J1YjJSbFEyeGhjM002SUZsQlRVeE5ZWEFzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmJXRndKeXhjYmlBZ0lDQnlaWE52YkhabEtHMWhjQ3dnYjI1RmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV2x6VFdGd0tHMWhjQ2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtDZEZlSEJsWTNSbFpDQmhJRzFoY0hCcGJtY2dabTl5SUhSb2FYTWdkR0ZuSnlrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdFlYQTdYRzRnSUNBZ2ZTeGNiaUFnSUNCamNtVmhkR1ZPYjJSbE9pQW9jMk5vWlcxaExDQnZZbW9zSUdOMGVDa2dQVDRnV1VGTlRFMWhjQzVtY205dEtITmphR1Z0WVN3Z2IySnFMQ0JqZEhncFhHNTlPMXh1WEc1bGVIQnZjblFnZXlCdFlYQWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QmpjbVZoZEdWT2IyUmxJSDBnWm5KdmJTQW5MaTR2Wkc5akwyTnlaV0YwWlU1dlpHVXVhbk1uTzF4dWFXMXdiM0owSUhzZ2MzUnlhVzVuYVdaNVEyOXNiR1ZqZEdsdmJpQjlJR1p5YjIwZ0p5NHVMM04wY21sdVoybG1lUzl6ZEhKcGJtZHBabmxEYjJ4c1pXTjBhVzl1TG1wekp6dGNibWx0Y0c5eWRDQjdJRU52Ykd4bFkzUnBiMjRnZlNCbWNtOXRJQ2N1TDBOdmJHeGxZM1JwYjI0dWFuTW5PMXh1YVcxd2IzSjBJSHNnVTBWUkxDQnBjMU5qWVd4aGNpQjlJR1p5YjIwZ0p5NHZhV1JsYm5ScGRIa3Vhbk1uTzF4dWFXMXdiM0owSUhzZ2FYTlRZMkZzWVhKV1lXeDFaU0I5SUdaeWIyMGdKeTR2VTJOaGJHRnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIUnZTbE1nZlNCbWNtOXRJQ2N1TDNSdlNsTXVhbk1uTzF4dVhHNWpiR0Z6Y3lCWlFVMU1VMlZ4SUdWNGRHVnVaSE1nUTI5c2JHVmpkR2x2YmlCN1hHNGdJQ0FnYzNSaGRHbGpJR2RsZENCMFlXZE9ZVzFsS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9uTmxjU2M3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wY25WamRHOXlLSE5qYUdWdFlTa2dlMXh1SUNBZ0lDQWdJQ0J6ZFhCbGNpaFRSVkVzSUhOamFHVnRZU2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNZ1BTQmJYVHRjYmlBZ0lDQjlYRzRnSUNBZ1lXUmtLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFYUmxiWE11Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGJXOTJaWE1nWVNCMllXeDFaU0JtY205dElIUm9aU0JqYjJ4c1pXTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWUd0bGVXQWdiWFZ6ZENCamIyNTBZV2x1SUdFZ2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ1lXNGdhVzUwWldkbGNpQm1iM0lnZEdocGN5QjBieUJ6ZFdOalpXVmtMbHh1SUNBZ0lDQXFJRWwwSUcxaGVTQmlaU0IzY21Gd2NHVmtJR2x1SUdFZ1lGTmpZV3hoY21BdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ2RHaGxJR2wwWlcwZ2QyRnpJR1p2ZFc1a0lHRnVaQ0J5WlcxdmRtVmtMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHUmxiR1YwWlNoclpYa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhV1I0SUQwZ1lYTkpkR1Z0U1c1a1pYZ29hMlY1S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnBaSGdnSVQwOUlDZHVkVzFpWlhJbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa1pXd2dQU0IwYUdsekxtbDBaVzF6TG5Od2JHbGpaU2hwWkhnc0lERXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR1ZzTG14bGJtZDBhQ0ErSURBN1hHNGdJQ0FnZlZ4dUlDQWdJR2RsZENoclpYa3NJR3RsWlhCVFkyRnNZWElwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVdSNElEMGdZWE5KZEdWdFNXNWtaWGdvYTJWNUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJwWkhnZ0lUMDlJQ2R1ZFcxaVpYSW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVhRZ1BTQjBhR2x6TG1sMFpXMXpXMmxrZUYwN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBaGEyVmxjRk5qWVd4aGNpQW1KaUJwYzFOallXeGhjaWhwZENrZ1B5QnBkQzUyWVd4MVpTQTZJR2wwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnZEdobElHTnZiR3hsWTNScGIyNGdhVzVqYkhWa1pYTWdZU0IyWVd4MVpTQjNhWFJvSUhSb1pTQnJaWGtnWUd0bGVXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmdhMlY1WUNCdGRYTjBJR052Ym5SaGFXNGdZU0J5WlhCeVpYTmxiblJoZEdsdmJpQnZaaUJoYmlCcGJuUmxaMlZ5SUdadmNpQjBhR2x6SUhSdklITjFZMk5sWldRdVhHNGdJQ0FnSUNvZ1NYUWdiV0Y1SUdKbElIZHlZWEJ3WldRZ2FXNGdZU0JnVTJOaGJHRnlZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm9ZWE1vYTJWNUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbGtlQ0E5SUdGelNYUmxiVWx1WkdWNEtHdGxlU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwZVhCbGIyWWdhV1I0SUQwOVBTQW5iblZ0WW1WeUp5QW1KaUJwWkhnZ1BDQjBhR2x6TG1sMFpXMXpMbXhsYm1kMGFEdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UyVjBjeUJoSUhaaGJIVmxJR2x1SUhSb2FYTWdZMjlzYkdWamRHbHZiaTRnUm05eUlHQWhJWE5sZEdBc0lHQjJZV3gxWldBZ2JtVmxaSE1nZEc4Z1ltVWdZVnh1SUNBZ0lDQXFJR0p2YjJ4bFlXNGdkRzhnWVdSa0wzSmxiVzkyWlNCMGFHVWdhWFJsYlNCbWNtOXRJSFJvWlNCelpYUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkpaaUJnYTJWNVlDQmtiMlZ6SUc1dmRDQmpiMjUwWVdsdUlHRWdjbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdZVzRnYVc1MFpXZGxjaXdnZEdocGN5QjNhV3hzSUhSb2NtOTNMbHh1SUNBZ0lDQXFJRWwwSUcxaGVTQmlaU0IzY21Gd2NHVmtJR2x1SUdFZ1lGTmpZV3hoY21BdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnYzJWMEtHdGxlU3dnZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhV1I0SUQwZ1lYTkpkR1Z0U1c1a1pYZ29hMlY1S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnBaSGdnSVQwOUlDZHVkVzFpWlhJbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JGZUhCbFkzUmxaQ0JoSUhaaGJHbGtJR2x1WkdWNExDQnViM1FnSkh0clpYbDlMbUFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WMklEMGdkR2hwY3k1cGRHVnRjMXRwWkhoZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOVFkyRnNZWElvY0hKbGRpa2dKaVlnYVhOVFkyRnNZWEpXWVd4MVpTaDJZV3gxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y21WMkxuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhOYmFXUjRYU0E5SUhaaGJIVmxPMXh1SUNBZ0lIMWNiaUFnSUNCMGIwcFRUMDRvWHl3Z1kzUjRLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1NBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzUjRQeTV2YmtOeVpXRjBaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV2YmtOeVpXRjBaU2h6WlhFcE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYVNBOUlEQTdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYVhSbGJTQnZaaUIwYUdsekxtbDBaVzF6S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZ4TG5CMWMyZ29kRzlLVXlocGRHVnRMQ0JUZEhKcGJtY29hU3NyS1N3Z1kzUjRLU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6WlhFN1hHNGdJQ0FnZlZ4dUlDQWdJSFJ2VTNSeWFXNW5LR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQktVMDlPTG5OMGNtbHVaMmxtZVNoMGFHbHpLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVU52Ykd4bFkzUnBiMjRvZEdocGN5d2dZM1I0TENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpYkc5amEwbDBaVzFRY21WbWFYZzZJQ2N0SUNjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYkc5M1EyaGhjbk02SUhzZ2MzUmhjblE2SUNkYkp5d2daVzVrT2lBblhTY2dmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzFKYm1SbGJuUTZJQ2hqZEhndWFXNWtaVzUwSUh4OElDY25LU0FySUNjZ0lDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrTm9iMjF3UzJWbGNDeGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVEyOXRiV1Z1ZEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR1p5YjIwb2MyTm9aVzFoTENCdlltb3NJR04wZUNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lISmxjR3hoWTJWeUlIMGdQU0JqZEhnN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhObGNTQTlJRzVsZHlCMGFHbHpLSE5qYUdWdFlTazdYRzRnSUNBZ0lDQWdJR2xtSUNodlltb2dKaVlnVTNsdFltOXNMbWwwWlhKaGRHOXlJR2x1SUU5aWFtVmpkQ2h2WW1vcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhU0E5SURBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwZENCdlppQnZZbW9wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlISmxjR3hoWTJWeUlEMDlQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHdGxlU0E5SUc5aWFpQnBibk4wWVc1alpXOW1JRk5sZENBL0lHbDBJRG9nVTNSeWFXNW5LR2tyS3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwSUQwZ2NtVndiR0ZqWlhJdVkyRnNiQ2h2WW1vc0lHdGxlU3dnYVhRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaWEV1YVhSbGJYTXVjSFZ6YUNoamNtVmhkR1ZPYjJSbEtHbDBMQ0IxYm1SbFptbHVaV1FzSUdOMGVDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaWEU3WEc0Z0lDQWdmVnh1ZlZ4dVpuVnVZM1JwYjI0Z1lYTkpkR1Z0U1c1a1pYZ29hMlY1S1NCN1hHNGdJQ0FnYkdWMElHbGtlQ0E5SUdselUyTmhiR0Z5S0d0bGVTa2dQeUJyWlhrdWRtRnNkV1VnT2lCclpYazdYRzRnSUNBZ2FXWWdLR2xrZUNBbUppQjBlWEJsYjJZZ2FXUjRJRDA5UFNBbmMzUnlhVzVuSnlsY2JpQWdJQ0FnSUNBZ2FXUjRJRDBnVG5WdFltVnlLR2xrZUNrN1hHNGdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnBaSGdnUFQwOUlDZHVkVzFpWlhJbklDWW1JRTUxYldKbGNpNXBjMGx1ZEdWblpYSW9hV1I0S1NBbUppQnBaSGdnUGowZ01GeHVJQ0FnSUNBZ0lDQS9JR2xrZUZ4dUlDQWdJQ0FnSUNBNklHNTFiR3c3WEc1OVhHNWNibVY0Y0c5eWRDQjdJRmxCVFV4VFpYRWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QnBjMU5sY1NCOUlHWnliMjBnSnk0dUx5NHVMMjV2WkdWekwybGtaVzUwYVhSNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUZsQlRVeFRaWEVnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5WlFVMU1VMlZ4TG1wekp6dGNibHh1WTI5dWMzUWdjMlZ4SUQwZ2UxeHVJQ0FnSUdOdmJHeGxZM1JwYjI0NklDZHpaWEVuTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnYm05a1pVTnNZWE56T2lCWlFVMU1VMlZ4TEZ4dUlDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9uTmxjU2NzWEc0Z0lDQWdjbVZ6YjJ4MlpTaHpaWEVzSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZwYzFObGNTaHpaWEVwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpZ25SWGh3WldOMFpXUWdZU0J6WlhGMVpXNWpaU0JtYjNJZ2RHaHBjeUIwWVdjbktUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITmxjVHRjYmlBZ0lDQjlMRnh1SUNBZ0lHTnlaV0YwWlU1dlpHVTZJQ2h6WTJobGJXRXNJRzlpYWl3Z1kzUjRLU0E5UGlCWlFVMU1VMlZ4TG1aeWIyMG9jMk5vWlcxaExDQnZZbW9zSUdOMGVDbGNibjA3WEc1Y2JtVjRjRzl5ZENCN0lITmxjU0I5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVk4wY21sdVp5QjlJR1p5YjIwZ0p5NHVMeTR1TDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sVGRISnBibWN1YW5Nbk8xeHVYRzVqYjI1emRDQnpkSEpwYm1jZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ0ozTjBjbWx1Wnljc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB6ZEhJbkxGeHVJQ0FnSUhKbGMyOXNkbVU2SUhOMGNpQTlQaUJ6ZEhJc1hHNGdJQ0FnYzNSeWFXNW5hV1o1S0dsMFpXMHNJR04wZUN3Z2IyNURiMjF0Wlc1MExDQnZia05vYjIxd1MyVmxjQ2tnZTF4dUlDQWdJQ0FnSUNCamRIZ2dQU0JQWW1wbFkzUXVZWE56YVdkdUtIc2dZV04wZFdGc1UzUnlhVzVuT2lCMGNuVmxJSDBzSUdOMGVDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkSEpwYm1kcFpubFRkSEpwYm1jb2FYUmxiU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1R0Y2JpQWdJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdleUJ6ZEhKcGJtY2dmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVRZMkZzWVhJdWFuTW5PMXh1WEc1amIyNXpkQ0J1ZFd4c1ZHRm5JRDBnZTF4dUlDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIyWVd4MVpTQTlQU0J1ZFd4c0xGeHVJQ0FnSUdOeVpXRjBaVTV2WkdVNklDZ3BJRDArSUc1bGR5QlRZMkZzWVhJb2JuVnNiQ2tzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHVkV3hzSnl4Y2JpQWdJQ0IwWlhOME9pQXZYaWcvT241OFcwNXVYWFZzYkh4T1ZVeE1LVDhrTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvS1NBOVBpQnVaWGNnVTJOaGJHRnlLRzUxYkd3cExGeHVJQ0FnSUhOMGNtbHVaMmxtZVRvZ0tIc2djMjkxY21ObElIMHNJR04wZUNrZ1BUNGdkSGx3Wlc5bUlITnZkWEpqWlNBOVBUMGdKM04wY21sdVp5Y2dKaVlnYm5Wc2JGUmhaeTUwWlhOMExuUmxjM1FvYzI5MWNtTmxLVnh1SUNBZ0lDQWdJQ0EvSUhOdmRYSmpaVnh1SUNBZ0lDQWdJQ0E2SUdOMGVDNXZjSFJwYjI1ekxtNTFiR3hUZEhKY2JuMDdYRzVjYm1WNGNHOXlkQ0I3SUc1MWJHeFVZV2NnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dVhHNWpiMjV6ZENCaWIyOXNWR0ZuSUQwZ2UxeHVJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkaWIyOXNaV0Z1Snl4Y2JpQWdJQ0JrWldaaGRXeDBPaUIwY25WbExGeHVJQ0FnSUhSaFp6b2dKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbUp2YjJ3bkxGeHVJQ0FnSUhSbGMzUTZJQzllS0Q4NlcxUjBYWEoxWlh4VVVsVkZmRnRHWmwxaGJITmxmRVpCVEZORktTUXZMRnh1SUNBZ0lISmxjMjlzZG1VNklITjBjaUE5UGlCdVpYY2dVMk5oYkdGeUtITjBjbHN3WFNBOVBUMGdKM1FuSUh4OElITjBjbHN3WFNBOVBUMGdKMVFuS1N4Y2JpQWdJQ0J6ZEhKcGJtZHBabmtvZXlCemIzVnlZMlVzSUhaaGJIVmxJSDBzSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyOTFjbU5sSUNZbUlHSnZiMnhVWVdjdWRHVnpkQzUwWlhOMEtITnZkWEpqWlNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4ySUQwZ2MyOTFjbU5sV3pCZElEMDlQU0FuZENjZ2ZId2djMjkxY21ObFd6QmRJRDA5UFNBblZDYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kbUZzZFdVZ1BUMDlJSE4yS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ6YjNWeVkyVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbElEOGdZM1I0TG05d2RHbHZibk11ZEhKMVpWTjBjaUE2SUdOMGVDNXZjSFJwYjI1ekxtWmhiSE5sVTNSeU8xeHVJQ0FnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0I3SUdKdmIyeFVZV2NnZlR0Y2JpSXNJQ0ptZFc1amRHbHZiaUJ6ZEhKcGJtZHBabmxPZFcxaVpYSW9leUJtYjNKdFlYUXNJRzFwYmtaeVlXTjBhVzl1UkdsbmFYUnpMQ0IwWVdjc0lIWmhiSFZsSUgwcElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5ZbWxuYVc1MEp5bGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGTjBjbWx1WnloMllXeDFaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JuVnRJRDBnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYm5WdFltVnlKeUEvSUhaaGJIVmxJRG9nVG5WdFltVnlLSFpoYkhWbEtUdGNiaUFnSUNCcFppQW9JV2x6Um1sdWFYUmxLRzUxYlNrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGMwNWhUaWh1ZFcwcElEOGdKeTV1WVc0bklEb2diblZ0SUR3Z01DQS9JQ2N0TG1sdVppY2dPaUFuTG1sdVppYzdYRzRnSUNBZ2JHVjBJRzRnUFNCS1UwOU9Mbk4wY21sdVoybG1lU2gyWVd4MVpTazdYRzRnSUNBZ2FXWWdLQ0ZtYjNKdFlYUWdKaVpjYmlBZ0lDQWdJQ0FnYldsdVJuSmhZM1JwYjI1RWFXZHBkSE1nSmlaY2JpQWdJQ0FnSUNBZ0tDRjBZV2NnZkh3Z2RHRm5JRDA5UFNBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlpteHZZWFFuS1NBbUpseHVJQ0FnSUNBZ0lDQXZYbHhjWkM4dWRHVnpkQ2h1S1NrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYVNBOUlHNHVhVzVrWlhoUFppZ25MaWNwTzF4dUlDQWdJQ0FnSUNCcFppQW9hU0E4SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdrZ1BTQnVMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUc0Z0t6MGdKeTRuTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHeGxkQ0JrSUQwZ2JXbHVSbkpoWTNScGIyNUVhV2RwZEhNZ0xTQW9iaTVzWlc1bmRHZ2dMU0JwSUMwZ01TazdYRzRnSUNBZ0lDQWdJSGRvYVd4bElDaGtMUzBnUGlBd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnYmlBclBTQW5NQ2M3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdU8xeHVmVnh1WEc1bGVIQnZjblFnZXlCemRISnBibWRwWm5sT2RXMWlaWElnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJUWTJGc1lYSWdmU0JtY205dElDY3VMaTh1TGk5dWIyUmxjeTlUWTJGc1lYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ2MzUnlhVzVuYVdaNVRuVnRZbVZ5SUgwZ1puSnZiU0FuTGk0dkxpNHZjM1J5YVc1bmFXWjVMM04wY21sdVoybG1lVTUxYldKbGNpNXFjeWM3WEc1Y2JtTnZibk4wSUdac2IyRjBUbUZPSUQwZ2UxeHVJQ0FnSUdsa1pXNTBhV1o1T2lCMllXeDFaU0E5UGlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkdWRXMWlaWEluTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZabXh2WVhRbkxGeHVJQ0FnSUhSbGMzUTZJQzllS0Q4Nld5MHJYVDljWEM0b1B6cHBibVo4U1c1bWZFbE9SaWw4WEZ3dWJtRnVmRnhjTGs1aFRueGNYQzVPUVU0cEpDOHNYRzRnSUNBZ2NtVnpiMngyWlRvZ2MzUnlJRDArSUhOMGNpNXpiR2xqWlNndE15a3VkRzlNYjNkbGNrTmhjMlVvS1NBOVBUMGdKMjVoYmlkY2JpQWdJQ0FnSUNBZ1B5Qk9ZVTVjYmlBZ0lDQWdJQ0FnT2lCemRISmJNRjBnUFQwOUlDY3RKMXh1SUNBZ0lDQWdJQ0FnSUNBZ1B5Qk9kVzFpWlhJdVRrVkhRVlJKVmtWZlNVNUdTVTVKVkZsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nVG5WdFltVnlMbEJQVTBsVVNWWkZYMGxPUmtsT1NWUlpMRnh1SUNBZ0lITjBjbWx1WjJsbWVUb2djM1J5YVc1bmFXWjVUblZ0WW1WeVhHNTlPMXh1WTI5dWMzUWdabXh2WVhSRmVIQWdQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdKMjUxYldKbGNpY3NYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwbWJHOWhkQ2NzWEc0Z0lDQWdabTl5YldGME9pQW5SVmhRSnl4Y2JpQWdJQ0IwWlhOME9pQXZYbHN0SzEwL0tEODZYRnd1V3pBdE9WMHJmRnN3TFRsZEt5Zy9PbHhjTGxzd0xUbGRLaWsvS1Z0bFJWMWJMU3RkUDFzd0xUbGRLeVF2TEZ4dUlDQWdJSEpsYzI5c2RtVTZJSE4wY2lBOVBpQndZWEp6WlVac2IyRjBLSE4wY2lrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1S0c1dlpHVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiblZ0SUQwZ1RuVnRZbVZ5S0c1dlpHVXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkdhVzVwZEdVb2JuVnRLU0EvSUc1MWJTNTBiMFY0Y0c5dVpXNTBhV0ZzS0NrZ09pQnpkSEpwYm1kcFpubE9kVzFpWlhJb2JtOWtaU2s3WEc0Z0lDQWdmVnh1ZlR0Y2JtTnZibk4wSUdac2IyRjBJRDBnZTF4dUlDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJQ2R1ZFcxaVpYSW5MRnh1SUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlpteHZZWFFuTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ4b1B6cGNYQzViTUMwNVhTdDhXekF0T1YwclhGd3VXekF0T1YwcUtTUXZMRnh1SUNBZ0lISmxjMjlzZG1Vb2MzUnlLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQnVaWGNnVTJOaGJHRnlLSEJoY25ObFJteHZZWFFvYzNSeUtTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUnZkQ0E5SUhOMGNpNXBibVJsZUU5bUtDY3VKeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaGtiM1FnSVQwOUlDMHhJQ1ltSUhOMGNsdHpkSEl1YkdWdVozUm9JQzBnTVYwZ1BUMDlJQ2N3SnlsY2JpQWdJQ0FnSUNBZ0lDQWdJRzV2WkdVdWJXbHVSbkpoWTNScGIyNUVhV2RwZEhNZ1BTQnpkSEl1YkdWdVozUm9JQzBnWkc5MElDMGdNVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzV2WkdVN1hHNGdJQ0FnZlN4Y2JpQWdJQ0J6ZEhKcGJtZHBabms2SUhOMGNtbHVaMmxtZVU1MWJXSmxjbHh1ZlR0Y2JseHVaWGh3YjNKMElIc2dabXh2WVhRc0lHWnNiMkYwUlhod0xDQm1iRzloZEU1aFRpQjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lITjBjbWx1WjJsbWVVNTFiV0psY2lCOUlHWnliMjBnSnk0dUx5NHVMM04wY21sdVoybG1lUzl6ZEhKcGJtZHBabmxPZFcxaVpYSXVhbk1uTzF4dVhHNWpiMjV6ZENCcGJuUkpaR1Z1ZEdsbWVTQTlJQ2gyWVd4MVpTa2dQVDRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuWW1sbmFXNTBKeUI4ZkNCT2RXMWlaWEl1YVhOSmJuUmxaMlZ5S0haaGJIVmxLVHRjYm1OdmJuTjBJR2x1ZEZKbGMyOXNkbVVnUFNBb2MzUnlMQ0J2Wm1aelpYUXNJSEpoWkdsNExDQjdJR2x1ZEVGelFtbG5TVzUwSUgwcElEMCtJQ2hwYm5SQmMwSnBaMGx1ZENBL0lFSnBaMGx1ZENoemRISXBJRG9nY0dGeWMyVkpiblFvYzNSeUxuTjFZbk4wY21sdVp5aHZabVp6WlhRcExDQnlZV1JwZUNrcE8xeHVablZ1WTNScGIyNGdhVzUwVTNSeWFXNW5hV1o1S0c1dlpHVXNJSEpoWkdsNExDQndjbVZtYVhncElIdGNiaUFnSUNCamIyNXpkQ0I3SUhaaGJIVmxJSDBnUFNCdWIyUmxPMXh1SUNBZ0lHbG1JQ2hwYm5SSlpHVnVkR2xtZVNoMllXeDFaU2tnSmlZZ2RtRnNkV1VnUGowZ01DbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIQnlaV1pwZUNBcklIWmhiSFZsTG5SdlUzUnlhVzVuS0hKaFpHbDRLVHRjYmlBZ0lDQnlaWFIxY200Z2MzUnlhVzVuYVdaNVRuVnRZbVZ5S0c1dlpHVXBPMXh1ZlZ4dVkyOXVjM1FnYVc1MFQyTjBJRDBnZTF4dUlDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUJwYm5SSlpHVnVkR2xtZVNoMllXeDFaU2tnSmlZZ2RtRnNkV1VnUGowZ01DeGNiaUFnSUNCa1pXWmhkV3gwT2lCMGNuVmxMRnh1SUNBZ0lIUmhaem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T21sdWRDY3NYRzRnSUNBZ1ptOXliV0YwT2lBblQwTlVKeXhjYmlBZ0lDQjBaWE4wT2lBdlhqQnZXekF0TjEwckpDOHNYRzRnSUNBZ2NtVnpiMngyWlRvZ0tITjBjaXdnWDI5dVJYSnliM0lzSUc5d2RDa2dQVDRnYVc1MFVtVnpiMngyWlNoemRISXNJRElzSURnc0lHOXdkQ2tzWEc0Z0lDQWdjM1J5YVc1bmFXWjVPaUJ1YjJSbElEMCtJR2x1ZEZOMGNtbHVaMmxtZVNodWIyUmxMQ0E0TENBbk1HOG5LVnh1ZlR0Y2JtTnZibk4wSUdsdWRDQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dhVzUwU1dSbGJuUnBabmtzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHBiblFuTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ5Yk1DMDVYU3NrTHl4Y2JpQWdJQ0J5WlhOdmJIWmxPaUFvYzNSeUxDQmZiMjVGY25KdmNpd2diM0IwS1NBOVBpQnBiblJTWlhOdmJIWmxLSE4wY2l3Z01Dd2dNVEFzSUc5d2RDa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnpkSEpwYm1kcFpubE9kVzFpWlhKY2JuMDdYRzVqYjI1emRDQnBiblJJWlhnZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lHbHVkRWxrWlc1MGFXWjVLSFpoYkhWbEtTQW1KaUIyWVd4MVpTQStQU0F3TEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZhVzUwSnl4Y2JpQWdJQ0JtYjNKdFlYUTZJQ2RJUlZnbkxGeHVJQ0FnSUhSbGMzUTZJQzllTUhoYk1DMDVZUzFtUVMxR1hTc2tMeXhjYmlBZ0lDQnlaWE52YkhabE9pQW9jM1J5TENCZmIyNUZjbkp2Y2l3Z2IzQjBLU0E5UGlCcGJuUlNaWE52YkhabEtITjBjaXdnTWl3Z01UWXNJRzl3ZENrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1T2lCdWIyUmxJRDArSUdsdWRGTjBjbWx1WjJsbWVTaHViMlJsTENBeE5pd2dKekI0SnlsY2JuMDdYRzVjYm1WNGNHOXlkQ0I3SUdsdWRDd2dhVzUwU0dWNExDQnBiblJQWTNRZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCdFlYQWdmU0JtY205dElDY3VMaTlqYjIxdGIyNHZiV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJRzUxYkd4VVlXY2dmU0JtY205dElDY3VMaTlqYjIxdGIyNHZiblZzYkM1cWN5YzdYRzVwYlhCdmNuUWdleUJ6WlhFZ2ZTQm1jbTl0SUNjdUxpOWpiMjF0YjI0dmMyVnhMbXB6Snp0Y2JtbHRjRzl5ZENCN0lITjBjbWx1WnlCOUlHWnliMjBnSnk0dUwyTnZiVzF2Ymk5emRISnBibWN1YW5Nbk8xeHVhVzF3YjNKMElIc2dZbTl2YkZSaFp5QjlJR1p5YjIwZ0p5NHZZbTl2YkM1cWN5YzdYRzVwYlhCdmNuUWdleUJtYkc5aGRFNWhUaXdnWm14dllYUkZlSEFzSUdac2IyRjBJSDBnWm5KdmJTQW5MaTltYkc5aGRDNXFjeWM3WEc1cGJYQnZjblFnZXlCcGJuUlBZM1FzSUdsdWRDd2dhVzUwU0dWNElIMGdabkp2YlNBbkxpOXBiblF1YW5Nbk8xeHVYRzVqYjI1emRDQnpZMmhsYldFZ1BTQmJYRzRnSUNBZ2JXRndMRnh1SUNBZ0lITmxjU3hjYmlBZ0lDQnpkSEpwYm1jc1hHNGdJQ0FnYm5Wc2JGUmhaeXhjYmlBZ0lDQmliMjlzVkdGbkxGeHVJQ0FnSUdsdWRFOWpkQ3hjYmlBZ0lDQnBiblFzWEc0Z0lDQWdhVzUwU0dWNExGeHVJQ0FnSUdac2IyRjBUbUZPTEZ4dUlDQWdJR1pzYjJGMFJYaHdMRnh1SUNBZ0lHWnNiMkYwWEc1ZE8xeHVYRzVsZUhCdmNuUWdleUJ6WTJobGJXRWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVRZMkZzWVhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnYldGd0lIMGdabkp2YlNBbkxpNHZZMjl0Ylc5dUwyMWhjQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnpaWEVnZlNCbWNtOXRJQ2N1TGk5amIyMXRiMjR2YzJWeExtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2FXNTBTV1JsYm5ScFpua29kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuWW1sbmFXNTBKeUI4ZkNCT2RXMWlaWEl1YVhOSmJuUmxaMlZ5S0haaGJIVmxLVHRjYm4xY2JtTnZibk4wSUhOMGNtbHVaMmxtZVVwVFQwNGdQU0FvZXlCMllXeDFaU0I5S1NBOVBpQktVMDlPTG5OMGNtbHVaMmxtZVNoMllXeDFaU2s3WEc1amIyNXpkQ0JxYzI5dVUyTmhiR0Z5Y3lBOUlGdGNiaUFnSUNCN1hHNGdJQ0FnSUNBZ0lHbGtaVzUwYVdaNU9pQjJZV3gxWlNBOVBpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZHpkSEpwYm1jbkxGeHVJQ0FnSUNBZ0lDQmtaV1poZFd4ME9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB6ZEhJbkxGeHVJQ0FnSUNBZ0lDQnlaWE52YkhabE9pQnpkSElnUFQ0Z2MzUnlMRnh1SUNBZ0lDQWdJQ0J6ZEhKcGJtZHBabms2SUhOMGNtbHVaMmxtZVVwVFQwNWNiaUFnSUNCOUxGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIWmhiSFZsSUQwOUlHNTFiR3dzWEc0Z0lDQWdJQ0FnSUdOeVpXRjBaVTV2WkdVNklDZ3BJRDArSUc1bGR5QlRZMkZzWVhJb2JuVnNiQ2tzWEc0Z0lDQWdJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9tNTFiR3duTEZ4dUlDQWdJQ0FnSUNCMFpYTjBPaUF2WG01MWJHd2tMeXhjYmlBZ0lDQWdJQ0FnY21WemIyeDJaVG9nS0NrZ1BUNGdiblZzYkN4Y2JpQWdJQ0FnSUNBZ2MzUnlhVzVuYVdaNU9pQnpkSEpwYm1kcFpubEtVMDlPWEc0Z0lDQWdmU3hjYmlBZ0lDQjdYRzRnSUNBZ0lDQWdJR2xrWlc1MGFXWjVPaUIyWVd4MVpTQTlQaUIwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJQ2RpYjI5c1pXRnVKeXhjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlltOXZiQ2NzWEc0Z0lDQWdJQ0FnSUhSbGMzUTZJQzllZEhKMVpYeG1ZV3h6WlNRdkxGeHVJQ0FnSUNBZ0lDQnlaWE52YkhabE9pQnpkSElnUFQ0Z2MzUnlJRDA5UFNBbmRISjFaU2NzWEc0Z0lDQWdJQ0FnSUhOMGNtbHVaMmxtZVRvZ2MzUnlhVzVuYVdaNVNsTlBUbHh1SUNBZ0lIMHNYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBaR1Z1ZEdsbWVUb2dhVzUwU1dSbGJuUnBabmtzWEc0Z0lDQWdJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJSFJoWnpvZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9tbHVkQ2NzWEc0Z0lDQWdJQ0FnSUhSbGMzUTZJQzllTFQ4b1B6b3dmRnN4TFRsZFd6QXRPVjBxS1NRdkxGeHVJQ0FnSUNBZ0lDQnlaWE52YkhabE9pQW9jM1J5TENCZmIyNUZjbkp2Y2l3Z2V5QnBiblJCYzBKcFowbHVkQ0I5S1NBOVBpQnBiblJCYzBKcFowbHVkQ0EvSUVKcFowbHVkQ2h6ZEhJcElEb2djR0Z5YzJWSmJuUW9jM1J5TENBeE1Da3NYRzRnSUNBZ0lDQWdJSE4wY21sdVoybG1lVG9nS0hzZ2RtRnNkV1VnZlNrZ1BUNGdhVzUwU1dSbGJuUnBabmtvZG1Gc2RXVXBJRDhnZG1Gc2RXVXVkRzlUZEhKcGJtY29LU0E2SUVwVFQwNHVjM1J5YVc1bmFXWjVLSFpoYkhWbEtWeHVJQ0FnSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnSUNCcFpHVnVkR2xtZVRvZ2RtRnNkV1VnUFQ0Z2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5Snl4Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZabXh2WVhRbkxGeHVJQ0FnSUNBZ0lDQjBaWE4wT2lBdlhpMC9LRDg2TUh4Yk1TMDVYVnN3TFRsZEtpa29QenBjWEM1Yk1DMDVYU29wUHlnL09sdGxSVjFiTFN0ZFAxc3dMVGxkS3lrL0pDOHNYRzRnSUNBZ0lDQWdJSEpsYzI5c2RtVTZJSE4wY2lBOVBpQndZWEp6WlVac2IyRjBLSE4wY2lrc1hHNGdJQ0FnSUNBZ0lITjBjbWx1WjJsbWVUb2djM1J5YVc1bmFXWjVTbE5QVGx4dUlDQWdJSDFjYmwwN1hHNWpiMjV6ZENCcWMyOXVSWEp5YjNJZ1BTQjdYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNjbkxGeHVJQ0FnSUhSbGMzUTZJQzllTHl4Y2JpQWdJQ0J5WlhOdmJIWmxLSE4wY2l3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHQlZibkpsYzI5c2RtVmtJSEJzWVdsdUlITmpZV3hoY2lBa2UwcFRUMDR1YzNSeWFXNW5hV1o1S0hOMGNpbDlZQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEhJN1hHNGdJQ0FnZlZ4dWZUdGNibU52Ym5OMElITmphR1Z0WVNBOUlGdHRZWEFzSUhObGNWMHVZMjl1WTJGMEtHcHpiMjVUWTJGc1lYSnpMQ0JxYzI5dVJYSnliM0lwTzF4dVhHNWxlSEJ2Y25RZ2V5QnpZMmhsYldFZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCVFkyRnNZWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5VFkyRnNZWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2djM1J5YVc1bmFXWjVVM1J5YVc1bklIMGdabkp2YlNBbkxpNHZMaTR2YzNSeWFXNW5hV1o1TDNOMGNtbHVaMmxtZVZOMGNtbHVaeTVxY3ljN1hHNWNibU52Ym5OMElHSnBibUZ5ZVNBOUlIdGNiaUFnSUNCcFpHVnVkR2xtZVRvZ2RtRnNkV1VnUFQ0Z2RtRnNkV1VnYVc1emRHRnVZMlZ2WmlCVmFXNTBPRUZ5Y21GNUxDQXZMeUJDZFdabVpYSWdhVzVvWlhKcGRITWdabkp2YlNCVmFXNTBPRUZ5Y21GNVhHNGdJQ0FnWkdWbVlYVnNkRG9nWm1Gc2MyVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2WW1sdVlYSjVKeXhjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJTWlhSMWNtNXpJR0VnUW5WbVptVnlJR2x1SUc1dlpHVWdZVzVrSUdGdUlGVnBiblE0UVhKeVlYa2dhVzRnWW5KdmQzTmxjbk5jYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRlJ2SUhWelpTQjBhR1VnY21WemRXeDBhVzVuSUdKMVptWmxjaUJoY3lCaGJpQnBiV0ZuWlN3Z2VXOTFKMnhzSUhkaGJuUWdkRzhnWkc4Z2MyOXRaWFJvYVc1bklHeHBhMlU2WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFnSUdOdmJuTjBJR0pzYjJJZ1BTQnVaWGNnUW14dllpaGJZblZtWm1WeVhTd2dleUIwZVhCbE9pQW5hVzFoWjJVdmFuQmxaeWNnZlNsY2JpQWdJQ0FnS2lBZ0lHUnZZM1Z0Wlc1MExuRjFaWEo1VTJWc1pXTjBiM0lvSnlOd2FHOTBieWNwTG5OeVl5QTlJRlZTVEM1amNtVmhkR1ZQWW1wbFkzUlZVa3dvWW14dllpbGNiaUFnSUNBZ0tpOWNiaUFnSUNCeVpYTnZiSFpsS0hOeVl5d2diMjVGY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUVKMVptWmxjaUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVKMVptWmxjaTVtY205dEtITnlZeXdnSjJKaGMyVTJOQ2NwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIUjVjR1Z2WmlCaGRHOWlJRDA5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QlBiaUJKUlNBeE1Td2dZWFJ2WWlncElHTmhiaWQwSUdoaGJtUnNaU0J1Wlhkc2FXNWxjMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSeUlEMGdZWFJ2WWloemNtTXVjbVZ3YkdGalpTZ3ZXMXhjYmx4Y2NsMHZaeXdnSnljcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0oxWm1abGNpQTlJRzVsZHlCVmFXNTBPRUZ5Y21GNUtITjBjaTVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnpkSEl1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luVm1abVZ5VzJsZElEMGdjM1J5TG1Ob1lYSkRiMlJsUVhRb2FTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWW5WbVptVnlPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2lnblZHaHBjeUJsYm5acGNtOXViV1Z1ZENCa2IyVnpJRzV2ZENCemRYQndiM0owSUhKbFlXUnBibWNnWW1sdVlYSjVJSFJoWjNNN0lHVnBkR2hsY2lCQ2RXWm1aWElnYjNJZ1lYUnZZaUJwY3lCeVpYRjFhWEpsWkNjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE55WXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgwc1hHNGdJQ0FnYzNSeWFXNW5hV1o1S0hzZ1kyOXRiV1Z1ZEN3Z2RIbHdaU3dnZG1Gc2RXVWdmU3dnWTNSNExDQnZia052YlcxbGJuUXNJRzl1UTJodmJYQkxaV1Z3S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdKMVppQTlJSFpoYkhWbE95QXZMeUJqYUdWamEyVmtJR1ZoY214cFpYSWdZbmtnWW1sdVlYSjVMbWxrWlc1MGFXWjVLQ2xjYmlBZ0lDQWdJQ0FnYkdWMElITjBjanRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCQ2RXWm1aWElnUFQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBjaUE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5WbUlHbHVjM1JoYm1ObGIyWWdRblZtWm1WeVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnWW5WbUxuUnZVM1J5YVc1bktDZGlZWE5sTmpRbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUVKMVptWmxjaTVtY205dEtHSjFaaTVpZFdabVpYSXBMblJ2VTNSeWFXNW5LQ2RpWVhObE5qUW5LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoMGVYQmxiMllnWW5SdllTQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElITWdQU0FuSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWW5WbUxteGxibWQwYURzZ0t5dHBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE1nS3owZ1UzUnlhVzVuTG1aeWIyMURhR0Z5UTI5a1pTaGlkV1piYVYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeUlEMGdZblJ2WVNoektUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVkdocGN5QmxiblpwY205dWJXVnVkQ0JrYjJWeklHNXZkQ0J6ZFhCd2IzSjBJSGR5YVhScGJtY2dZbWx1WVhKNUlIUmhaM003SUdWcGRHaGxjaUJDZFdabVpYSWdiM0lnWW5SdllTQnBjeUJ5WlhGMWFYSmxaQ2NwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2doZEhsd1pTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVWdQU0JUWTJGc1lYSXVRa3hQUTB0ZlRFbFVSVkpCVER0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dVZ0lUMDlJRk5qWVd4aGNpNVJWVTlVUlY5RVQxVkNURVVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHBibVZYYVdSMGFDQTlJRTFoZEdndWJXRjRLR04wZUM1dmNIUnBiMjV6TG14cGJtVlhhV1IwYUNBdElHTjBlQzVwYm1SbGJuUXViR1Z1WjNSb0xDQmpkSGd1YjNCMGFXOXVjeTV0YVc1RGIyNTBaVzUwVjJsa2RHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYmlBOUlFMWhkR2d1WTJWcGJDaHpkSEl1YkdWdVozUm9JQzhnYkdsdVpWZHBaSFJvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHBibVZ6SUQwZ2JtVjNJRUZ5Y21GNUtHNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUc4Z1BTQXdPeUJwSUR3Z2Jqc2dLeXRwTENCdklDczlJR3hwYm1WWGFXUjBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4cGJtVnpXMmxkSUQwZ2MzUnlMbk4xWW5OMGNpaHZMQ0JzYVc1bFYybGtkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJRDBnYkdsdVpYTXVhbTlwYmloMGVYQmxJRDA5UFNCVFkyRnNZWEl1UWt4UFEwdGZURWxVUlZKQlRDQS9JQ2RjWEc0bklEb2dKeUFuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MzUnlhVzVuYVdaNVUzUnlhVzVuS0hzZ1kyOXRiV1Z1ZEN3Z2RIbHdaU3dnZG1Gc2RXVTZJSE4wY2lCOUxDQmpkSGdzSUc5dVEyOXRiV1Z1ZEN3Z2IyNURhRzl0Y0V0bFpYQXBPMXh1SUNBZ0lIMWNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHSnBibUZ5ZVNCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselUyVnhMQ0JwYzFCaGFYSXNJR2x6VFdGd0lIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1uTzF4dWFXMXdiM0owSUhzZ1VHRnBjaXdnWTNKbFlYUmxVR0ZwY2lCOUlHWnliMjBnSnk0dUx5NHVMMjV2WkdWekwxQmhhWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZVMk5oYkdGeUxtcHpKenRjYm1sdGNHOXlkQ0I3SUZsQlRVeFRaWEVnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5WlFVMU1VMlZ4TG1wekp6dGNibHh1Wm5WdVkzUnBiMjRnY21WemIyeDJaVkJoYVhKektITmxjU3dnYjI1RmNuSnZjaWtnZTF4dUlDQWdJR2xtSUNocGMxTmxjU2h6WlhFcEtTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJWeExtbDBaVzF6TG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhWFJsYlNBOUlITmxjUzVwZEdWdGMxdHBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzFCaGFYSW9hWFJsYlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzAxaGNDaHBkR1Z0S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwZEdWdExtbDBaVzF6TG14bGJtZDBhQ0ErSURFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9KMFZoWTJnZ2NHRnBjaUJ0ZFhOMElHaGhkbVVnYVhSeklHOTNiaUJ6WlhGMVpXNWpaU0JwYm1ScFkyRjBiM0luS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3WVdseUlEMGdhWFJsYlM1cGRHVnRjMXN3WFNCOGZDQnVaWGNnVUdGcGNpaHVaWGNnVTJOaGJHRnlLRzUxYkd3cEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTNWpiMjF0Wlc1MFFtVm1iM0psS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZV2x5TG10bGVTNWpiMjF0Wlc1MFFtVm1iM0psSUQwZ2NHRnBjaTVyWlhrdVkyOXRiV1Z1ZEVKbFptOXlaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJnSkh0cGRHVnRMbU52YlcxbGJuUkNaV1p2Y21WOVhGeHVKSHR3WVdseUxtdGxlUzVqYjIxdFpXNTBRbVZtYjNKbGZXQmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dhWFJsYlM1amIyMXRaVzUwUW1WbWIzSmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGRHVnRMbU52YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTI0Z1BTQndZV2x5TG5aaGJIVmxJRDgvSUhCaGFYSXVhMlY1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiaTVqYjIxdFpXNTBJRDBnWTI0dVkyOXRiV1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCZ0pIdHBkR1Z0TG1OdmJXMWxiblI5WEZ4dUpIdGpiaTVqYjIxdFpXNTBmV0JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nYVhSbGJTNWpiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z0SUQwZ2NHRnBjanRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhObGNTNXBkR1Z0YzF0cFhTQTlJR2x6VUdGcGNpaHBkR1Z0S1NBL0lHbDBaVzBnT2lCdVpYY2dVR0ZwY2locGRHVnRLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUc5dVJYSnliM0lvSjBWNGNHVmpkR1ZrSUdFZ2MyVnhkV1Z1WTJVZ1ptOXlJSFJvYVhNZ2RHRm5KeWs3WEc0Z0lDQWdjbVYwZFhKdUlITmxjVHRjYm4xY2JtWjFibU4wYVc5dUlHTnlaV0YwWlZCaGFYSnpLSE5qYUdWdFlTd2dhWFJsY21GaWJHVXNJR04wZUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnY21Wd2JHRmpaWElnZlNBOUlHTjBlRHRjYmlBZ0lDQmpiMjV6ZENCd1lXbHljeUE5SUc1bGR5QlpRVTFNVTJWeEtITmphR1Z0WVNrN1hHNGdJQ0FnY0dGcGNuTXVkR0ZuSUQwZ0ozUmhaenA1WVcxc0xtOXlaeXd5TURBeU9uQmhhWEp6Snp0Y2JpQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdhV1lnS0dsMFpYSmhZbXhsSUNZbUlGTjViV0p2YkM1cGRHVnlZWFJ2Y2lCcGJpQlBZbXBsWTNRb2FYUmxjbUZpYkdVcEtWeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBkQ0J2WmlCcGRHVnlZV0pzWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYQnNZV05sY2lBOVBUMGdKMloxYm1OMGFXOXVKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZENBOUlISmxjR3hoWTJWeUxtTmhiR3dvYVhSbGNtRmliR1VzSUZOMGNtbHVaeWhwS3lzcExDQnBkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYTJWNUxDQjJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLR2wwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwZEM1c1pXNW5kR2dnUFQwOUlESXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2EyVjVJRDBnYVhSYk1GMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDBnYVhSYk1WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhnUlhod1pXTjBaV1FnVzJ0bGVTd2dkbUZzZFdWZElIUjFjR3hsT2lBa2UybDBmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYUWdKaVlnYVhRZ2FXNXpkR0Z1WTJWdlppQlBZbXBsWTNRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCclpYbHpJRDBnVDJKcVpXTjBMbXRsZVhNb2FYUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbHpMbXhsYm1kMGFDQTlQVDBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhrZ1BTQnJaWGx6V3pCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJR2wwVzJ0bGVWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0dCRmVIQmxZM1JsWkNCMGRYQnNaU0IzYVhSb0lHOXVaU0JyWlhrc0lHNXZkQ0FrZTJ0bGVYTXViR1Z1WjNSb2ZTQnJaWGx6WUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2EyVjVJRDBnYVhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQndZV2x5Y3k1cGRHVnRjeTV3ZFhOb0tHTnlaV0YwWlZCaGFYSW9hMlY1TENCMllXeDFaU3dnWTNSNEtTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NHRnBjbk03WEc1OVhHNWpiMjV6ZENCd1lXbHljeUE5SUh0Y2JpQWdJQ0JqYjJ4c1pXTjBhVzl1T2lBbmMyVnhKeXhjYmlBZ0lDQmtaV1poZFd4ME9pQm1ZV3h6WlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHdZV2x5Y3ljc1hHNGdJQ0FnY21WemIyeDJaVG9nY21WemIyeDJaVkJoYVhKekxGeHVJQ0FnSUdOeVpXRjBaVTV2WkdVNklHTnlaV0YwWlZCaGFYSnpYRzU5TzF4dVhHNWxlSEJ2Y25RZ2V5QmpjbVZoZEdWUVlXbHljeXdnY0dGcGNuTXNJSEpsYzI5c2RtVlFZV2x5Y3lCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselUyTmhiR0Z5TENCcGMxQmhhWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUIwYjBwVElIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZkRzlLVXk1cWN5YzdYRzVwYlhCdmNuUWdleUJaUVUxTVRXRndJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12V1VGTlRFMWhjQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlpRVTFNVTJWeElIMGdabkp2YlNBbkxpNHZMaTR2Ym05a1pYTXZXVUZOVEZObGNTNXFjeWM3WEc1cGJYQnZjblFnZXlCeVpYTnZiSFpsVUdGcGNuTXNJR055WldGMFpWQmhhWEp6SUgwZ1puSnZiU0FuTGk5d1lXbHljeTVxY3ljN1hHNWNibU5zWVhOeklGbEJUVXhQVFdGd0lHVjRkR1Z1WkhNZ1dVRk5URk5sY1NCN1hHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUtDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVlXUmtJRDBnV1VGTlRFMWhjQzV3Y205MGIzUjVjR1V1WVdSa0xtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpHVnNaWFJsSUQwZ1dVRk5URTFoY0M1d2NtOTBiM1I1Y0dVdVpHVnNaWFJsTG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WjJWMElEMGdXVUZOVEUxaGNDNXdjbTkwYjNSNWNHVXVaMlYwTG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YUdGeklEMGdXVUZOVEUxaGNDNXdjbTkwYjNSNWNHVXVhR0Z6TG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMElEMGdXVUZOVEUxaGNDNXdjbTkwYjNSNWNHVXVjMlYwTG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZEdGbklEMGdXVUZOVEU5TllYQXVkR0ZuTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJKWmlCZ1kzUjRZQ0JwY3lCbmFYWmxiaXdnZEdobElISmxkSFZ5YmlCMGVYQmxJR2x6SUdGamRIVmhiR3g1SUdCTllYQThkVzVyYm05M2Jpd2dkVzVyYm05M2JqNWdMRnh1SUNBZ0lDQXFJR0oxZENCVWVYQmxVMk55YVhCMElIZHZiaWQwSUdGc2JHOTNJSGRwWkdWdWFXNW5JSFJvWlNCemFXZHVZWFIxY21VZ2IyWWdZU0JqYUdsc1pDQnRaWFJvYjJRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEc5S1UwOU9LRjhzSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXTjBlQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRYQmxjaTUwYjBwVFQwNG9YeWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFoY0NBOUlHNWxkeUJOWVhBb0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0dOMGVEOHViMjVEY21WaGRHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCamRIZ3ViMjVEY21WaGRHVW9iV0Z3S1R0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQndZV2x5SUc5bUlIUm9hWE11YVhSbGJYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0JyWlhrc0lIWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dselVHRnBjaWh3WVdseUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVNBOUlIUnZTbE1vY0dGcGNpNXJaWGtzSUNjbkxDQmpkSGdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDBnZEc5S1V5aHdZV2x5TG5aaGJIVmxMQ0JyWlhrc0lHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhrZ1BTQjBiMHBUS0hCaGFYSXNJQ2NuTENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHMWhjQzVvWVhNb2EyVjVLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDl5WkdWeVpXUWdiV0Z3Y3lCdGRYTjBJRzV2ZENCcGJtTnNkV1JsSUdSMWNHeHBZMkYwWlNCclpYbHpKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YzJWMEtHdGxlU3dnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ0WVhBN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm1jbTl0S0hOamFHVnRZU3dnYVhSbGNtRmliR1VzSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZV2x5Y3lBOUlHTnlaV0YwWlZCaGFYSnpLSE5qYUdWdFlTd2dhWFJsY21GaWJHVXNJR04wZUNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5dFlYQWdQU0J1WlhjZ2RHaHBjeWdwTzF4dUlDQWdJQ0FnSUNCdmJXRndMbWwwWlcxeklEMGdjR0ZwY25NdWFYUmxiWE03WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ2YldGd08xeHVJQ0FnSUgxY2JuMWNibGxCVFV4UFRXRndMblJoWnlBOUlDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHZiV0Z3Snp0Y2JtTnZibk4wSUc5dFlYQWdQU0I3WEc0Z0lDQWdZMjlzYkdWamRHbHZiam9nSjNObGNTY3NYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1RXRndMRnh1SUNBZ0lHNXZaR1ZEYkdGemN6b2dXVUZOVEU5TllYQXNYRzRnSUNBZ1pHVm1ZWFZzZERvZ1ptRnNjMlVzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmIyMWhjQ2NzWEc0Z0lDQWdjbVZ6YjJ4MlpTaHpaWEVzSUc5dVJYSnliM0lwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGcGNuTWdQU0J5WlhOdmJIWmxVR0ZwY25Nb2MyVnhMQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZsYmt0bGVYTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQjdJR3RsZVNCOUlHOW1JSEJoYVhKekxtbDBaVzF6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYTlRZMkZzWVhJb2EyVjVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHpaV1Z1UzJWNWN5NXBibU5zZFdSbGN5aHJaWGt1ZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb1lFOXlaR1Z5WldRZ2JXRndjeUJ0ZFhOMElHNXZkQ0JwYm1Oc2RXUmxJR1IxY0d4cFkyRjBaU0JyWlhsek9pQWtlMnRsZVM1MllXeDFaWDFnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxaVzVMWlhsekxuQjFjMmdvYTJWNUxuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9ibVYzSUZsQlRVeFBUV0Z3S0Nrc0lIQmhhWEp6S1R0Y2JpQWdJQ0I5TEZ4dUlDQWdJR055WldGMFpVNXZaR1U2SUNoelkyaGxiV0VzSUdsMFpYSmhZbXhsTENCamRIZ3BJRDArSUZsQlRVeFBUV0Z3TG1aeWIyMG9jMk5vWlcxaExDQnBkR1Z5WVdKc1pTd2dZM1I0S1Z4dWZUdGNibHh1Wlhod2IzSjBJSHNnV1VGTlRFOU5ZWEFzSUc5dFlYQWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl1YjJSbGN5OVRZMkZzWVhJdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCaWIyOXNVM1J5YVc1bmFXWjVLSHNnZG1Gc2RXVXNJSE52ZFhKalpTQjlMQ0JqZEhncElIdGNiaUFnSUNCamIyNXpkQ0JpYjI5c1QySnFJRDBnZG1Gc2RXVWdQeUIwY25WbFZHRm5JRG9nWm1Gc2MyVlVZV2M3WEc0Z0lDQWdhV1lnS0hOdmRYSmpaU0FtSmlCaWIyOXNUMkpxTG5SbGMzUXVkR1Z6ZENoemIzVnlZMlVwS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzI5MWNtTmxPMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0EvSUdOMGVDNXZjSFJwYjI1ekxuUnlkV1ZUZEhJZ09pQmpkSGd1YjNCMGFXOXVjeTVtWVd4elpWTjBjanRjYm4xY2JtTnZibk4wSUhSeWRXVlVZV2NnUFNCN1hHNGdJQ0FnYVdSbGJuUnBabms2SUhaaGJIVmxJRDArSUhaaGJIVmxJRDA5UFNCMGNuVmxMRnh1SUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlltOXZiQ2NzWEc0Z0lDQWdkR1Z6ZERvZ0wxNG9QenBaZkhsOFcxbDVYV1Z6ZkZsRlUzeGJWSFJkY25WbGZGUlNWVVY4VzA5dlhXNThUMDRwSkM4c1hHNGdJQ0FnY21WemIyeDJaVG9nS0NrZ1BUNGdibVYzSUZOallXeGhjaWgwY25WbEtTeGNiaUFnSUNCemRISnBibWRwWm5rNklHSnZiMnhUZEhKcGJtZHBabmxjYm4wN1hHNWpiMjV6ZENCbVlXeHpaVlJoWnlBOUlIdGNiaUFnSUNCcFpHVnVkR2xtZVRvZ2RtRnNkV1VnUFQ0Z2RtRnNkV1VnUFQwOUlHWmhiSE5sTEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZZbTl2YkNjc1hHNGdJQ0FnZEdWemREb2dMMTRvUHpwT2ZHNThXMDV1WFc5OFRrOThXMFptWFdGc2MyVjhSa0ZNVTBWOFcwOXZYV1ptZkU5R1Jpa2tMeXhjYmlBZ0lDQnlaWE52YkhabE9pQW9LU0E5UGlCdVpYY2dVMk5oYkdGeUtHWmhiSE5sS1N4Y2JpQWdJQ0J6ZEhKcGJtZHBabms2SUdKdmIyeFRkSEpwYm1kcFpubGNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHWmhiSE5sVkdGbkxDQjBjblZsVkdGbklIMDdYRzRpTENBaWFXMXdiM0owSUhzZ1UyTmhiR0Z5SUgwZ1puSnZiU0FuTGk0dkxpNHZibTlrWlhNdlUyTmhiR0Z5TG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVoybG1lVTUxYldKbGNpQjlJR1p5YjIwZ0p5NHVMeTR1TDNOMGNtbHVaMmxtZVM5emRISnBibWRwWm5sT2RXMWlaWEl1YW5Nbk8xeHVYRzVqYjI1emRDQm1iRzloZEU1aFRpQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iblZ0WW1WeUp5eGNiaUFnSUNCa1pXWmhkV3gwT2lCMGNuVmxMRnh1SUNBZ0lIUmhaem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T21ac2IyRjBKeXhjYmlBZ0lDQjBaWE4wT2lBdlhpZy9PbHN0SzEwL1hGd3VLRDg2YVc1bWZFbHVabnhKVGtZcGZGeGNMbTVoYm54Y1hDNU9ZVTU4WEZ3dVRrRk9LU1F2TEZ4dUlDQWdJSEpsYzI5c2RtVTZJQ2h6ZEhJcElEMCtJSE4wY2k1emJHbGpaU2d0TXlrdWRHOU1iM2RsY2tOaGMyVW9LU0E5UFQwZ0oyNWhiaWRjYmlBZ0lDQWdJQ0FnUHlCT1lVNWNiaUFnSUNBZ0lDQWdPaUJ6ZEhKYk1GMGdQVDA5SUNjdEoxeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCT2RXMWlaWEl1VGtWSFFWUkpWa1ZmU1U1R1NVNUpWRmxjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dUblZ0WW1WeUxsQlBVMGxVU1ZaRlgwbE9Sa2xPU1ZSWkxGeHVJQ0FnSUhOMGNtbHVaMmxtZVRvZ2MzUnlhVzVuYVdaNVRuVnRZbVZ5WEc1OU8xeHVZMjl1YzNRZ1pteHZZWFJGZUhBZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ0oyNTFiV0psY2ljc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanBtYkc5aGRDY3NYRzRnSUNBZ1ptOXliV0YwT2lBblJWaFFKeXhjYmlBZ0lDQjBaWE4wT2lBdlhsc3RLMTAvS0Q4Nld6QXRPVjFiTUMwNVgxMHFLVDhvUHpwY1hDNWJNQzA1WDEwcUtUOWJaVVZkV3kwclhUOWJNQzA1WFNza0x5eGNiaUFnSUNCeVpYTnZiSFpsT2lBb2MzUnlLU0E5UGlCd1lYSnpaVVpzYjJGMEtITjBjaTV5WlhCc1lXTmxLQzlmTDJjc0lDY25LU2tzWEc0Z0lDQWdjM1J5YVc1bmFXWjVLRzV2WkdVcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JuVnRJRDBnVG5WdFltVnlLRzV2WkdVdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhOR2FXNXBkR1VvYm5WdEtTQS9JRzUxYlM1MGIwVjRjRzl1Wlc1MGFXRnNLQ2tnT2lCemRISnBibWRwWm5sT2RXMWlaWElvYm05a1pTazdYRzRnSUNBZ2ZWeHVmVHRjYm1OdmJuTjBJR1pzYjJGMElEMGdlMXh1SUNBZ0lHbGtaVzUwYVdaNU9pQjJZV3gxWlNBOVBpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlDZHVkVzFpWlhJbkxGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2Wm14dllYUW5MRnh1SUNBZ0lIUmxjM1E2SUM5ZVd5MHJYVDhvUHpwYk1DMDVYVnN3TFRsZlhTb3BQMXhjTGxzd0xUbGZYU29rTHl4Y2JpQWdJQ0J5WlhOdmJIWmxLSE4wY2lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnYm1WM0lGTmpZV3hoY2lod1lYSnpaVVpzYjJGMEtITjBjaTV5WlhCc1lXTmxLQzlmTDJjc0lDY25LU2twTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrYjNRZ1BTQnpkSEl1YVc1a1pYaFBaaWduTGljcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWkc5MElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaaUE5SUhOMGNpNXpkV0p6ZEhKcGJtY29aRzkwSUNzZ01Ta3VjbVZ3YkdGalpTZ3ZYeTluTENBbkp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9abHRtTG14bGJtZDBhQ0F0SURGZElEMDlQU0FuTUNjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JtOWtaUzV0YVc1R2NtRmpkR2x2YmtScFoybDBjeUE5SUdZdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWIyUmxPMXh1SUNBZ0lIMHNYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnpkSEpwYm1kcFpubE9kVzFpWlhKY2JuMDdYRzVjYm1WNGNHOXlkQ0I3SUdac2IyRjBMQ0JtYkc5aGRFVjRjQ3dnWm14dllYUk9ZVTRnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJ6ZEhKcGJtZHBabmxPZFcxaVpYSWdmU0JtY205dElDY3VMaTh1TGk5emRISnBibWRwWm5rdmMzUnlhVzVuYVdaNVRuVnRZbVZ5TG1wekp6dGNibHh1WTI5dWMzUWdhVzUwU1dSbGJuUnBabmtnUFNBb2RtRnNkV1VwSUQwK0lIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ0oySnBaMmx1ZENjZ2ZId2dUblZ0WW1WeUxtbHpTVzUwWldkbGNpaDJZV3gxWlNrN1hHNW1kVzVqZEdsdmJpQnBiblJTWlhOdmJIWmxLSE4wY2l3Z2IyWm1jMlYwTENCeVlXUnBlQ3dnZXlCcGJuUkJjMEpwWjBsdWRDQjlLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MybG5iaUE5SUhOMGNsc3dYVHRjYmlBZ0lDQnBaaUFvYzJsbmJpQTlQVDBnSnkwbklIeDhJSE5wWjI0Z1BUMDlJQ2NySnlsY2JpQWdJQ0FnSUNBZ2IyWm1jMlYwSUNzOUlERTdYRzRnSUNBZ2MzUnlJRDBnYzNSeUxuTjFZbk4wY21sdVp5aHZabVp6WlhRcExuSmxjR3hoWTJVb0wxOHZaeXdnSnljcE8xeHVJQ0FnSUdsbUlDaHBiblJCYzBKcFowbHVkQ2tnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hKaFpHbDRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJRDBnWURCaUpIdHpkSEo5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnT0RwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdQU0JnTUc4a2UzTjBjbjFnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0F4TmpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISWdQU0JnTUhna2UzTjBjbjFnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzRnUFNCQ2FXZEpiblFvYzNSeUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITnBaMjRnUFQwOUlDY3RKeUEvSUVKcFowbHVkQ2d0TVNrZ0tpQnVJRG9nYmp0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2JpQTlJSEJoY25ObFNXNTBLSE4wY2l3Z2NtRmthWGdwTzF4dUlDQWdJSEpsZEhWeWJpQnphV2R1SUQwOVBTQW5MU2NnUHlBdE1TQXFJRzRnT2lCdU8xeHVmVnh1Wm5WdVkzUnBiMjRnYVc1MFUzUnlhVzVuYVdaNUtHNXZaR1VzSUhKaFpHbDRMQ0J3Y21WbWFYZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCN0lIWmhiSFZsSUgwZ1BTQnViMlJsTzF4dUlDQWdJR2xtSUNocGJuUkpaR1Z1ZEdsbWVTaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUnlJRDBnZG1Gc2RXVXVkRzlUZEhKcGJtY29jbUZrYVhncE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1VnUENBd0lEOGdKeTBuSUNzZ2NISmxabWw0SUNzZ2MzUnlMbk4xWW5OMGNpZ3hLU0E2SUhCeVpXWnBlQ0FySUhOMGNqdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE4wY21sdVoybG1lVTUxYldKbGNpaHViMlJsS1R0Y2JuMWNibU52Ym5OMElHbHVkRUpwYmlBOUlIdGNiaUFnSUNCcFpHVnVkR2xtZVRvZ2FXNTBTV1JsYm5ScFpua3NYRzRnSUNBZ1pHVm1ZWFZzZERvZ2RISjFaU3hjYmlBZ0lDQjBZV2M2SUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwcGJuUW5MRnh1SUNBZ0lHWnZjbTFoZERvZ0owSkpUaWNzWEc0Z0lDQWdkR1Z6ZERvZ0wxNWJMU3RkUHpCaVd6QXRNVjlkS3lRdkxGeHVJQ0FnSUhKbGMyOXNkbVU2SUNoemRISXNJRjl2YmtWeWNtOXlMQ0J2Y0hRcElEMCtJR2x1ZEZKbGMyOXNkbVVvYzNSeUxDQXlMQ0F5TENCdmNIUXBMRnh1SUNBZ0lITjBjbWx1WjJsbWVUb2dibTlrWlNBOVBpQnBiblJUZEhKcGJtZHBabmtvYm05a1pTd2dNaXdnSnpCaUp5bGNibjA3WEc1amIyNXpkQ0JwYm5SUFkzUWdQU0I3WEc0Z0lDQWdhV1JsYm5ScFpuazZJR2x1ZEVsa1pXNTBhV1o1TEZ4dUlDQWdJR1JsWm1GMWJIUTZJSFJ5ZFdVc1hHNGdJQ0FnZEdGbk9pQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZhVzUwSnl4Y2JpQWdJQ0JtYjNKdFlYUTZJQ2RQUTFRbkxGeHVJQ0FnSUhSbGMzUTZJQzllV3kwclhUOHdXekF0TjE5ZEt5UXZMRnh1SUNBZ0lISmxjMjlzZG1VNklDaHpkSElzSUY5dmJrVnljbTl5TENCdmNIUXBJRDArSUdsdWRGSmxjMjlzZG1Vb2MzUnlMQ0F4TENBNExDQnZjSFFwTEZ4dUlDQWdJSE4wY21sdVoybG1lVG9nYm05a1pTQTlQaUJwYm5SVGRISnBibWRwWm5rb2JtOWtaU3dnT0N3Z0p6QW5LVnh1ZlR0Y2JtTnZibk4wSUdsdWRDQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dhVzUwU1dSbGJuUnBabmtzWEc0Z0lDQWdaR1ZtWVhWc2REb2dkSEoxWlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHBiblFuTEZ4dUlDQWdJSFJsYzNRNklDOWVXeTByWFQ5Yk1DMDVYVnN3TFRsZlhTb2tMeXhjYmlBZ0lDQnlaWE52YkhabE9pQW9jM1J5TENCZmIyNUZjbkp2Y2l3Z2IzQjBLU0E5UGlCcGJuUlNaWE52YkhabEtITjBjaXdnTUN3Z01UQXNJRzl3ZENrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1T2lCemRISnBibWRwWm5sT2RXMWlaWEpjYm4wN1hHNWpiMjV6ZENCcGJuUklaWGdnUFNCN1hHNGdJQ0FnYVdSbGJuUnBabms2SUdsdWRFbGtaVzUwYVdaNUxGeHVJQ0FnSUdSbFptRjFiSFE2SUhSeWRXVXNYRzRnSUNBZ2RHRm5PaUFuZEdGbk9ubGhiV3d1YjNKbkxESXdNREk2YVc1MEp5eGNiaUFnSUNCbWIzSnRZWFE2SUNkSVJWZ25MRnh1SUNBZ0lIUmxjM1E2SUM5ZVd5MHJYVDh3ZUZzd0xUbGhMV1pCTFVaZlhTc2tMeXhjYmlBZ0lDQnlaWE52YkhabE9pQW9jM1J5TENCZmIyNUZjbkp2Y2l3Z2IzQjBLU0E5UGlCcGJuUlNaWE52YkhabEtITjBjaXdnTWl3Z01UWXNJRzl3ZENrc1hHNGdJQ0FnYzNSeWFXNW5hV1o1T2lCdWIyUmxJRDArSUdsdWRGTjBjbWx1WjJsbWVTaHViMlJsTENBeE5pd2dKekI0SnlsY2JuMDdYRzVjYm1WNGNHOXlkQ0I3SUdsdWRDd2dhVzUwUW1sdUxDQnBiblJJWlhnc0lHbHVkRTlqZENCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselRXRndMQ0JwYzFCaGFYSXNJR2x6VTJOaGJHRnlJSDBnWm5KdmJTQW5MaTR2TGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dVR0ZwY2l3Z1kzSmxZWFJsVUdGcGNpQjlJR1p5YjIwZ0p5NHVMeTR1TDI1dlpHVnpMMUJoYVhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnV1VGTlRFMWhjQ3dnWm1sdVpGQmhhWElnZlNCbWNtOXRJQ2N1TGk4dUxpOXViMlJsY3k5WlFVMU1UV0Z3TG1wekp6dGNibHh1WTJ4aGMzTWdXVUZOVEZObGRDQmxlSFJsYm1SeklGbEJUVXhOWVhBZ2UxeHVJQ0FnSUdOdmJuTjBjblZqZEc5eUtITmphR1Z0WVNrZ2UxeHVJQ0FnSUNBZ0lDQnpkWEJsY2loelkyaGxiV0VwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblJoWnlBOUlGbEJUVXhUWlhRdWRHRm5PMXh1SUNBZ0lIMWNiaUFnSUNCaFpHUW9hMlY1S1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J3WVdseU8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOUVlXbHlLR3RsZVNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVdseUlEMGdhMlY1TzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoclpYa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1Z2WmlCclpYa2dQVDA5SUNkdlltcGxZM1FuSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FuYTJWNUp5QnBiaUJyWlhrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNkMllXeDFaU2NnYVc0Z2EyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQnJaWGt1ZG1Gc2RXVWdQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lXbHlJRDBnYm1WM0lGQmhhWElvYTJWNUxtdGxlU3dnYm5Wc2JDazdYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJSEJoYVhJZ1BTQnVaWGNnVUdGcGNpaHJaWGtzSUc1MWJHd3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndjbVYySUQwZ1ptbHVaRkJoYVhJb2RHaHBjeTVwZEdWdGN5d2djR0ZwY2k1clpYa3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYQnlaWFlwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1sMFpXMXpMbkIxYzJnb2NHRnBjaWs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWxtSUdCclpXVndVR0ZwY21BZ2FYTWdZSFJ5ZFdWZ0xDQnlaWFIxY201eklIUm9aU0JRWVdseUlHMWhkR05vYVc1bklHQnJaWGxnTGx4dUlDQWdJQ0FxSUU5MGFHVnlkMmx6WlN3Z2NtVjBkWEp1Y3lCMGFHVWdkbUZzZFdVZ2IyWWdkR2hoZENCUVlXbHlKM01nYTJWNUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdkbGRDaHJaWGtzSUd0bFpYQlFZV2x5S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGFYSWdQU0JtYVc1a1VHRnBjaWgwYUdsekxtbDBaVzF6TENCclpYa3BPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdJV3RsWlhCUVlXbHlJQ1ltSUdselVHRnBjaWh3WVdseUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCcGMxTmpZV3hoY2lod1lXbHlMbXRsZVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lIQmhhWEl1YTJWNUxuWmhiSFZsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCd1lXbHlMbXRsZVZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJ3WVdseU8xeHVJQ0FnSUgxY2JpQWdJQ0J6WlhRb2EyVjVMQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJQ0U5UFNBblltOXZiR1ZoYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRVY0Y0dWamRHVmtJR0p2YjJ4bFlXNGdkbUZzZFdVZ1ptOXlJSE5sZENoclpYa3NJSFpoYkhWbEtTQnBiaUJoSUZsQlRVd2djMlYwTENCdWIzUWdKSHQwZVhCbGIyWWdkbUZzZFdWOVlDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnlaWFlnUFNCbWFXNWtVR0ZwY2loMGFHbHpMbWwwWlcxekxDQnJaWGtwTzF4dUlDQWdJQ0FnSUNCcFppQW9jSEpsZGlBbUppQWhkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNdWMzQnNhV05sS0hSb2FYTXVhWFJsYlhNdWFXNWtaWGhQWmlod2NtVjJLU3dnTVNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9JWEJ5WlhZZ0ppWWdkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWFJsYlhNdWNIVnphQ2h1WlhjZ1VHRnBjaWhyWlhrcEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCMGIwcFRUMDRvWHl3Z1kzUjRLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNTBiMHBUVDA0b1h5d2dZM1I0TENCVFpYUXBPMXh1SUNBZ0lIMWNiaUFnSUNCMGIxTjBjbWx1WnloamRIZ3NJRzl1UTI5dGJXVnVkQ3dnYjI1RGFHOXRjRXRsWlhBcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGamRIZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnU2xOUFRpNXpkSEpwYm1kcFpua29kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtaGhjMEZzYkU1MWJHeFdZV3gxWlhNb2RISjFaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2MzVndaWEl1ZEc5VGRISnBibWNvVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnWTNSNExDQjdJR0ZzYkU1MWJHeFdZV3gxWlhNNklIUnlkV1VnZlNrc0lHOXVRMjl0YldWdWRDd2diMjVEYUc5dGNFdGxaWEFwTzF4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFObGRDQnBkR1Z0Y3lCdGRYTjBJR0ZzYkNCb1lYWmxJRzUxYkd3Z2RtRnNkV1Z6SnlrN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm1jbTl0S0hOamFHVnRZU3dnYVhSbGNtRmliR1VzSUdOMGVDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJSEpsY0d4aFkyVnlJSDBnUFNCamRIZzdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxkQ0E5SUc1bGR5QjBhR2x6S0hOamFHVnRZU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBkR1Z5WVdKc1pTQW1KaUJUZVcxaWIyd3VhWFJsY21GMGIzSWdhVzRnVDJKcVpXTjBLR2wwWlhKaFlteGxLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElIWmhiSFZsSUc5bUlHbDBaWEpoWW14bEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJ5WlhCc1lXTmxjaUE5UFQwZ0oyWjFibU4wYVc5dUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdQU0J5WlhCc1lXTmxjaTVqWVd4c0tHbDBaWEpoWW14bExDQjJZV3gxWlN3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGRDNXBkR1Z0Y3k1d2RYTm9LR055WldGMFpWQmhhWElvZG1Gc2RXVXNJRzUxYkd3c0lHTjBlQ2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjMlYwTzF4dUlDQWdJSDFjYm4xY2JsbEJUVXhUWlhRdWRHRm5JRDBnSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T25ObGRDYzdYRzVqYjI1emRDQnpaWFFnUFNCN1hHNGdJQ0FnWTI5c2JHVmpkR2x2YmpvZ0oyMWhjQ2NzWEc0Z0lDQWdhV1JsYm5ScFpuazZJSFpoYkhWbElEMCtJSFpoYkhWbElHbHVjM1JoYm1ObGIyWWdVMlYwTEZ4dUlDQWdJRzV2WkdWRGJHRnpjem9nV1VGTlRGTmxkQ3hjYmlBZ0lDQmtaV1poZFd4ME9pQm1ZV3h6WlN4Y2JpQWdJQ0IwWVdjNklDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcHpaWFFuTEZ4dUlDQWdJR055WldGMFpVNXZaR1U2SUNoelkyaGxiV0VzSUdsMFpYSmhZbXhsTENCamRIZ3BJRDArSUZsQlRVeFRaWFF1Wm5KdmJTaHpZMmhsYldFc0lHbDBaWEpoWW14bExDQmpkSGdwTEZ4dUlDQWdJSEpsYzI5c2RtVW9iV0Z3TENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzAxaGNDaHRZWEFwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JXRndMbWhoYzBGc2JFNTFiR3hXWVd4MVpYTW9kSEoxWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9ibVYzSUZsQlRVeFRaWFFvS1N3Z2JXRndLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLQ2RUWlhRZ2FYUmxiWE1nYlhWemRDQmhiR3dnYUdGMlpTQnVkV3hzSUhaaGJIVmxjeWNwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb0owVjRjR1ZqZEdWa0lHRWdiV0Z3Y0dsdVp5Qm1iM0lnZEdocGN5QjBZV2NuS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGNEdGNiaUFnSUNCOVhHNTlPMXh1WEc1bGVIQnZjblFnZXlCWlFVMU1VMlYwTENCelpYUWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QnpkSEpwYm1kcFpubE9kVzFpWlhJZ2ZTQm1jbTl0SUNjdUxpOHVMaTl6ZEhKcGJtZHBabmt2YzNSeWFXNW5hV1o1VG5WdFltVnlMbXB6Snp0Y2JseHVMeW9xSUVsdWRHVnlibUZzSUhSNWNHVnpJR2hoYm1Sc1pTQmlhV2RwYm5RZ1lYTWdiblZ0WW1WeUxDQmlaV05oZFhObElGUlRJR05oYmlkMElHWnBaM1Z5WlNCcGRDQnZkWFF1SUNvdlhHNW1kVzVqZEdsdmJpQndZWEp6WlZObGVHRm5aWE5wYldGc0tITjBjaXdnWVhOQ2FXZEpiblFwSUh0Y2JpQWdJQ0JqYjI1emRDQnphV2R1SUQwZ2MzUnlXekJkTzF4dUlDQWdJR052Ym5OMElIQmhjblJ6SUQwZ2MybG5iaUE5UFQwZ0p5MG5JSHg4SUhOcFoyNGdQVDA5SUNjckp5QS9JSE4wY2k1emRXSnpkSEpwYm1jb01Ta2dPaUJ6ZEhJN1hHNGdJQ0FnWTI5dWMzUWdiblZ0SUQwZ0tHNHBJRDArSUdGelFtbG5TVzUwSUQ4Z1FtbG5TVzUwS0c0cElEb2dUblZ0WW1WeUtHNHBPMXh1SUNBZ0lHTnZibk4wSUhKbGN5QTlJSEJoY25SelhHNGdJQ0FnSUNBZ0lDNXlaWEJzWVdObEtDOWZMMmNzSUNjbktWeHVJQ0FnSUNBZ0lDQXVjM0JzYVhRb0p6b25LVnh1SUNBZ0lDQWdJQ0F1Y21Wa2RXTmxLQ2h5WlhNc0lIQXBJRDArSUhKbGN5QXFJRzUxYlNnMk1Da2dLeUJ1ZFcwb2NDa3NJRzUxYlNnd0tTazdYRzRnSUNBZ2NtVjBkWEp1SUNoemFXZHVJRDA5UFNBbkxTY2dQeUJ1ZFcwb0xURXBJQ29nY21WeklEb2djbVZ6S1R0Y2JuMWNiaThxS2x4dUlDb2dhR2hvYURwdGJUcHpjeTV6YzNOY2JpQXFYRzRnS2lCSmJuUmxjbTVoYkNCMGVYQmxjeUJvWVc1a2JHVWdZbWxuYVc1MElHRnpJRzUxYldKbGNpd2dZbVZqWVhWelpTQlVVeUJqWVc0bmRDQm1hV2QxY21VZ2FYUWdiM1YwTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJ6ZEhKcGJtZHBabmxUWlhoaFoyVnphVzFoYkNodWIyUmxLU0I3WEc0Z0lDQWdiR1YwSUhzZ2RtRnNkV1VnZlNBOUlHNXZaR1U3WEc0Z0lDQWdiR1YwSUc1MWJTQTlJQ2h1S1NBOVBpQnVPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJQ2RpYVdkcGJuUW5LVnh1SUNBZ0lDQWdJQ0J1ZFcwZ1BTQnVJRDArSUVKcFowbHVkQ2h1S1R0Y2JpQWdJQ0JsYkhObElHbG1JQ2hwYzA1aFRpaDJZV3gxWlNrZ2ZId2dJV2x6Um1sdWFYUmxLSFpoYkhWbEtTbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBjbWx1WjJsbWVVNTFiV0psY2lodWIyUmxLVHRjYmlBZ0lDQnNaWFFnYzJsbmJpQTlJQ2NuTzF4dUlDQWdJR2xtSUNoMllXeDFaU0E4SURBcElIdGNiaUFnSUNBZ0lDQWdjMmxuYmlBOUlDY3RKenRjYmlBZ0lDQWdJQ0FnZG1Gc2RXVWdLajBnYm5WdEtDMHhLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnWHpZd0lEMGdiblZ0S0RZd0tUdGNiaUFnSUNCamIyNXpkQ0J3WVhKMGN5QTlJRnQyWVd4MVpTQWxJRjgyTUYwN0lDOHZJSE5sWTI5dVpITXNJR2x1WTJ4MVpHbHVaeUJ0YzF4dUlDQWdJR2xtSUNoMllXeDFaU0E4SURZd0tTQjdYRzRnSUNBZ0lDQWdJSEJoY25SekxuVnVjMmhwWm5Rb01DazdJQzh2SUdGMElHeGxZWE4wSUc5dVpTQTZJR2x6SUhKbGNYVnBjbVZrWEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMllXeDFaU0E5SUNoMllXeDFaU0F0SUhCaGNuUnpXekJkS1NBdklGODJNRHRjYmlBZ0lDQWdJQ0FnY0dGeWRITXVkVzV6YUdsbWRDaDJZV3gxWlNBbElGODJNQ2s3SUM4dklHMXBiblYwWlhOY2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElENDlJRFl3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJQ2gyWVd4MVpTQXRJSEJoY25Seld6QmRLU0F2SUY4Mk1EdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGNuUnpMblZ1YzJocFpuUW9kbUZzZFdVcE95QXZMeUJvYjNWeWMxeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUFvYzJsbmJpQXJYRzRnSUNBZ0lDQWdJSEJoY25SelhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tHNGdQVDRnVTNSeWFXNW5LRzRwTG5CaFpGTjBZWEowS0RJc0lDY3dKeWtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVhbTlwYmlnbk9pY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWNtVndiR0ZqWlNndk1EQXdNREF3WEZ4a0tpUXZMQ0FuSnlrZ0x5OGdKU0EyTUNCdFlYa2dhVzUwY205a2RXTmxJR1Z5Y205eVhHNGdJQ0FnS1R0Y2JuMWNibU52Ym5OMElHbHVkRlJwYldVZ1BTQjdYRzRnSUNBZ2FXUmxiblJwWm5rNklIWmhiSFZsSUQwK0lIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ0oySnBaMmx1ZENjZ2ZId2dUblZ0WW1WeUxtbHpTVzUwWldkbGNpaDJZV3gxWlNrc1hHNGdJQ0FnWkdWbVlYVnNkRG9nZEhKMVpTeGNiaUFnSUNCMFlXYzZJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanBwYm5RbkxGeHVJQ0FnSUdadmNtMWhkRG9nSjFSSlRVVW5MRnh1SUNBZ0lIUmxjM1E2SUM5ZVd5MHJYVDliTUMwNVhWc3dMVGxmWFNvb1B6bzZXekF0TlYwL1d6QXRPVjBwS3lRdkxGeHVJQ0FnSUhKbGMyOXNkbVU2SUNoemRISXNJRjl2YmtWeWNtOXlMQ0I3SUdsdWRFRnpRbWxuU1c1MElIMHBJRDArSUhCaGNuTmxVMlY0WVdkbGMybHRZV3dvYzNSeUxDQnBiblJCYzBKcFowbHVkQ2tzWEc0Z0lDQWdjM1J5YVc1bmFXWjVPaUJ6ZEhKcGJtZHBabmxUWlhoaFoyVnphVzFoYkZ4dWZUdGNibU52Ym5OMElHWnNiMkYwVkdsdFpTQTlJSHRjYmlBZ0lDQnBaR1Z1ZEdsbWVUb2dkbUZzZFdVZ1BUNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iblZ0WW1WeUp5eGNiaUFnSUNCa1pXWmhkV3gwT2lCMGNuVmxMRnh1SUNBZ0lIUmhaem9nSjNSaFp6cDVZVzFzTG05eVp5d3lNREF5T21ac2IyRjBKeXhjYmlBZ0lDQm1iM0p0WVhRNklDZFVTVTFGSnl4Y2JpQWdJQ0IwWlhOME9pQXZYbHN0SzEwL1d6QXRPVjFiTUMwNVgxMHFLRDg2T2xzd0xUVmRQMXN3TFRsZEtTdGNYQzViTUMwNVgxMHFKQzhzWEc0Z0lDQWdjbVZ6YjJ4MlpUb2djM1J5SUQwK0lIQmhjbk5sVTJWNFlXZGxjMmx0WVd3b2MzUnlMQ0JtWVd4elpTa3NYRzRnSUNBZ2MzUnlhVzVuYVdaNU9pQnpkSEpwYm1kcFpubFRaWGhoWjJWemFXMWhiRnh1ZlR0Y2JtTnZibk4wSUhScGJXVnpkR0Z0Y0NBOUlIdGNiaUFnSUNCcFpHVnVkR2xtZVRvZ2RtRnNkV1VnUFQ0Z2RtRnNkV1VnYVc1emRHRnVZMlZ2WmlCRVlYUmxMRnh1SUNBZ0lHUmxabUYxYkhRNklIUnlkV1VzWEc0Z0lDQWdkR0ZuT2lBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmRHbHRaWE4wWVcxd0p5eGNiaUFnSUNBdkx5QkpaaUIwYUdVZ2RHbHRaU0I2YjI1bElHbHpJRzl0YVhSMFpXUXNJSFJvWlNCMGFXMWxjM1JoYlhBZ2FYTWdZWE56ZFcxbFpDQjBieUJpWlNCemNHVmphV1pwWldRZ2FXNGdWVlJETGlCVWFHVWdkR2x0WlNCd1lYSjBYRzRnSUNBZ0x5OGdiV0Y1SUdKbElHOXRhWFIwWldRZ1lXeDBiMmRsZEdobGNpd2djbVZ6ZFd4MGFXNW5JR2x1SUdFZ1pHRjBaU0JtYjNKdFlYUXVJRWx1SUhOMVkyZ2dZU0JqWVhObExDQjBhR1VnZEdsdFpTQndZWEowSUdselhHNGdJQ0FnTHk4Z1lYTnpkVzFsWkNCMGJ5QmlaU0F3TURvd01Eb3dNRm9nS0hOMFlYSjBJRzltSUdSaGVTd2dWVlJES1M1Y2JpQWdJQ0IwWlhOME9pQlNaV2RGZUhBb0oxNG9XekF0T1YxN05IMHBMU2hiTUMwNVhYc3hMREo5S1Mwb1d6QXRPVjE3TVN3eWZTa25JQ3NnTHk4Z1dWbFpXUzFOYlMxRVpGeHVJQ0FnSUNBZ0lDQW5LRDg2SnlBcklDOHZJSFJwYldVZ2FYTWdiM0IwYVc5dVlXeGNiaUFnSUNBZ0lDQWdKeWcvT25SOFZIeGJJRnhjWEZ4MFhTc3BKeUFySUM4dklIUWdmQ0JVSUh3Z2QyaHBkR1Z6Y0dGalpWeHVJQ0FnSUNBZ0lDQW5LRnN3TFRsZGV6RXNNbjBwT2loYk1DMDVYWHN4TERKOUtUb29XekF0T1YxN01Td3lmU2hjWEZ4Y0xsc3dMVGxkS3lrL0tTY2dLeUF2THlCSWFEcE5iVHBUY3lndWMzTXBQMXh1SUNBZ0lDQWdJQ0FuS0Q4Nld5QmNYRnhjZEYwcUtGcDhXeTByWFZzd01USmRQMXN3TFRsZEtEODZPbHN3TFRsZGV6SjlLVDhwS1Q4bklDc2dMeThnV2lCOElDczFJSHdnTFRBek9qTXdYRzRnSUNBZ0lDQWdJQ2NwUHlRbktTeGNiaUFnSUNCeVpYTnZiSFpsS0hOMGNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRZWFJqYUNBOUlITjBjaTV0WVhSamFDaDBhVzFsYzNSaGJYQXVkR1Z6ZENrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYldGMFkyZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSnlFaGRHbHRaWE4wWVcxd0lHVjRjR1ZqZEhNZ1lTQmtZWFJsTENCemRHRnlkR2x1WnlCM2FYUm9JSGw1ZVhrdGJXMHRaR1FuS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnV3l3Z2VXVmhjaXdnYlc5dWRHZ3NJR1JoZVN3Z2FHOTFjaXdnYldsdWRYUmxMQ0J6WldOdmJtUmRJRDBnYldGMFkyZ3ViV0Z3S0U1MWJXSmxjaWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFwYkd4cGMyVmpJRDBnYldGMFkyaGJOMTBnUHlCT2RXMWlaWElvS0cxaGRHTm9XemRkSUNzZ0p6QXdKeWt1YzNWaWMzUnlLREVzSURNcEtTQTZJREE3WEc0Z0lDQWdJQ0FnSUd4bGRDQmtZWFJsSUQwZ1JHRjBaUzVWVkVNb2VXVmhjaXdnYlc5dWRHZ2dMU0F4TENCa1lYa3NJR2h2ZFhJZ2ZId2dNQ3dnYldsdWRYUmxJSHg4SURBc0lITmxZMjl1WkNCOGZDQXdMQ0J0YVd4c2FYTmxZeWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFI2SUQwZ2JXRjBZMmhiT0YwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwZWlBbUppQjBlaUFoUFQwZ0oxb25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnWkNBOUlIQmhjbk5sVTJWNFlXZGxjMmx0WVd3b2RIb3NJR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaE5ZWFJvTG1GaWN5aGtLU0E4SURNd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUWdLajBnTmpBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWVhSbElDMDlJRFl3TURBd0lDb2daRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFUmhkR1VvWkdGMFpTazdYRzRnSUNBZ2ZTeGNiaUFnSUNCemRISnBibWRwWm5rNklDaDdJSFpoYkhWbElIMHBJRDArSUhaaGJIVmxMblJ2U1ZOUFUzUnlhVzVuS0NrdWNtVndiR0ZqWlNndktDaFVNREE2TURBcFB6b3dNQ2svWEZ3dU1EQXdXaVF2TENBbkp5bGNibjA3WEc1Y2JtVjRjRzl5ZENCN0lHWnNiMkYwVkdsdFpTd2dhVzUwVkdsdFpTd2dkR2x0WlhOMFlXMXdJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2diV0Z3SUgwZ1puSnZiU0FuTGk0dlkyOXRiVzl1TDIxaGNDNXFjeWM3WEc1cGJYQnZjblFnZXlCdWRXeHNWR0ZuSUgwZ1puSnZiU0FuTGk0dlkyOXRiVzl1TDI1MWJHd3Vhbk1uTzF4dWFXMXdiM0owSUhzZ2MyVnhJSDBnWm5KdmJTQW5MaTR2WTI5dGJXOXVMM05sY1M1cWN5YzdYRzVwYlhCdmNuUWdleUJ6ZEhKcGJtY2dmU0JtY205dElDY3VMaTlqYjIxdGIyNHZjM1J5YVc1bkxtcHpKenRjYm1sdGNHOXlkQ0I3SUdKcGJtRnllU0I5SUdaeWIyMGdKeTR2WW1sdVlYSjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIUnlkV1ZVWVdjc0lHWmhiSE5sVkdGbklIMGdabkp2YlNBbkxpOWliMjlzTG1wekp6dGNibWx0Y0c5eWRDQjdJR1pzYjJGMFRtRk9MQ0JtYkc5aGRFVjRjQ3dnWm14dllYUWdmU0JtY205dElDY3VMMlpzYjJGMExtcHpKenRjYm1sdGNHOXlkQ0I3SUdsdWRFSnBiaXdnYVc1MFQyTjBMQ0JwYm5Rc0lHbHVkRWhsZUNCOUlHWnliMjBnSnk0dmFXNTBMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHMWxjbWRsSUgwZ1puSnZiU0FuTGk5dFpYSm5aUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnZiV0Z3SUgwZ1puSnZiU0FuTGk5dmJXRndMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIQmhhWEp6SUgwZ1puSnZiU0FuTGk5d1lXbHljeTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnpaWFFnZlNCbWNtOXRJQ2N1TDNObGRDNXFjeWM3WEc1cGJYQnZjblFnZXlCcGJuUlVhVzFsTENCbWJHOWhkRlJwYldVc0lIUnBiV1Z6ZEdGdGNDQjlJR1p5YjIwZ0p5NHZkR2x0WlhOMFlXMXdMbXB6Snp0Y2JseHVZMjl1YzNRZ2MyTm9aVzFoSUQwZ1cxeHVJQ0FnSUcxaGNDeGNiaUFnSUNCelpYRXNYRzRnSUNBZ2MzUnlhVzVuTEZ4dUlDQWdJRzUxYkd4VVlXY3NYRzRnSUNBZ2RISjFaVlJoWnl4Y2JpQWdJQ0JtWVd4elpWUmhaeXhjYmlBZ0lDQnBiblJDYVc0c1hHNGdJQ0FnYVc1MFQyTjBMRnh1SUNBZ0lHbHVkQ3hjYmlBZ0lDQnBiblJJWlhnc1hHNGdJQ0FnWm14dllYUk9ZVTRzWEc0Z0lDQWdabXh2WVhSRmVIQXNYRzRnSUNBZ1pteHZZWFFzWEc0Z0lDQWdZbWx1WVhKNUxGeHVJQ0FnSUcxbGNtZGxMRnh1SUNBZ0lHOXRZWEFzWEc0Z0lDQWdjR0ZwY25Nc1hHNGdJQ0FnYzJWMExGeHVJQ0FnSUdsdWRGUnBiV1VzWEc0Z0lDQWdabXh2WVhSVWFXMWxMRnh1SUNBZ0lIUnBiV1Z6ZEdGdGNGeHVYVHRjYmx4dVpYaHdiM0owSUhzZ2MyTm9aVzFoSUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYldGd0lIMGdabkp2YlNBbkxpOWpiMjF0YjI0dmJXRndMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHNTFiR3hVWVdjZ2ZTQm1jbTl0SUNjdUwyTnZiVzF2Ymk5dWRXeHNMbXB6Snp0Y2JtbHRjRzl5ZENCN0lITmxjU0I5SUdaeWIyMGdKeTR2WTI5dGJXOXVMM05sY1M1cWN5YzdYRzVwYlhCdmNuUWdleUJ6ZEhKcGJtY2dmU0JtY205dElDY3VMMk52YlcxdmJpOXpkSEpwYm1jdWFuTW5PMXh1YVcxd2IzSjBJSHNnWW05dmJGUmhaeUI5SUdaeWIyMGdKeTR2WTI5eVpTOWliMjlzTG1wekp6dGNibWx0Y0c5eWRDQjdJR1pzYjJGMExDQm1iRzloZEVWNGNDd2dabXh2WVhST1lVNGdmU0JtY205dElDY3VMMk52Y21VdlpteHZZWFF1YW5Nbk8xeHVhVzF3YjNKMElIc2dhVzUwTENCcGJuUklaWGdzSUdsdWRFOWpkQ0I5SUdaeWIyMGdKeTR2WTI5eVpTOXBiblF1YW5Nbk8xeHVhVzF3YjNKMElIc2djMk5vWlcxaElIMGdabkp2YlNBbkxpOWpiM0psTDNOamFHVnRZUzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnpZMmhsYldFZ1lYTWdjMk5vWlcxaEpERWdmU0JtY205dElDY3VMMnB6YjI0dmMyTm9aVzFoTG1wekp6dGNibWx0Y0c5eWRDQjdJR0pwYm1GeWVTQjlJR1p5YjIwZ0p5NHZlV0Z0YkMweExqRXZZbWx1WVhKNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUcxbGNtZGxJSDBnWm5KdmJTQW5MaTk1WVcxc0xURXVNUzl0WlhKblpTNXFjeWM3WEc1cGJYQnZjblFnZXlCdmJXRndJSDBnWm5KdmJTQW5MaTk1WVcxc0xURXVNUzl2YldGd0xtcHpKenRjYm1sdGNHOXlkQ0I3SUhCaGFYSnpJSDBnWm5KdmJTQW5MaTk1WVcxc0xURXVNUzl3WVdseWN5NXFjeWM3WEc1cGJYQnZjblFnZXlCelkyaGxiV0VnWVhNZ2MyTm9aVzFoSkRJZ2ZTQm1jbTl0SUNjdUwzbGhiV3d0TVM0eEwzTmphR1Z0WVM1cWN5YzdYRzVwYlhCdmNuUWdleUJ6WlhRZ2ZTQm1jbTl0SUNjdUwzbGhiV3d0TVM0eEwzTmxkQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5QjBhVzFsYzNSaGJYQXNJR1pzYjJGMFZHbHRaU3dnYVc1MFZHbHRaU0I5SUdaeWIyMGdKeTR2ZVdGdGJDMHhMakV2ZEdsdFpYTjBZVzF3TG1wekp6dGNibHh1WTI5dWMzUWdjMk5vWlcxaGN5QTlJRzVsZHlCTllYQW9XMXh1SUNBZ0lGc25ZMjl5WlNjc0lITmphR1Z0WVYwc1hHNGdJQ0FnV3lkbVlXbHNjMkZtWlNjc0lGdHRZWEFzSUhObGNTd2djM1J5YVc1blhWMHNYRzRnSUNBZ1d5ZHFjMjl1Snl3Z2MyTm9aVzFoSkRGZExGeHVJQ0FnSUZzbmVXRnRiREV4Snl3Z2MyTm9aVzFoSkRKZExGeHVJQ0FnSUZzbmVXRnRiQzB4TGpFbkxDQnpZMmhsYldFa01sMWNibDBwTzF4dVkyOXVjM1FnZEdGbmMwSjVUbUZ0WlNBOUlIdGNiaUFnSUNCaWFXNWhjbmtzWEc0Z0lDQWdZbTl2YkRvZ1ltOXZiRlJoWnl4Y2JpQWdJQ0JtYkc5aGRDeGNiaUFnSUNCbWJHOWhkRVY0Y0N4Y2JpQWdJQ0JtYkc5aGRFNWhUaXhjYmlBZ0lDQm1iRzloZEZScGJXVXNYRzRnSUNBZ2FXNTBMRnh1SUNBZ0lHbHVkRWhsZUN4Y2JpQWdJQ0JwYm5SUFkzUXNYRzRnSUNBZ2FXNTBWR2x0WlN4Y2JpQWdJQ0J0WVhBc1hHNGdJQ0FnYldWeVoyVXNYRzRnSUNBZ2JuVnNiRG9nYm5Wc2JGUmhaeXhjYmlBZ0lDQnZiV0Z3TEZ4dUlDQWdJSEJoYVhKekxGeHVJQ0FnSUhObGNTeGNiaUFnSUNCelpYUXNYRzRnSUNBZ2RHbHRaWE4wWVcxd1hHNTlPMXh1WTI5dWMzUWdZMjl5WlV0dWIzZHVWR0ZuY3lBOUlIdGNiaUFnSUNBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNlltbHVZWEo1SnpvZ1ltbHVZWEo1TEZ4dUlDQWdJQ2QwWVdjNmVXRnRiQzV2Y21jc01qQXdNanB0WlhKblpTYzZJRzFsY21kbExGeHVJQ0FnSUNkMFlXYzZlV0Z0YkM1dmNtY3NNakF3TWpwdmJXRndKem9nYjIxaGNDeGNiaUFnSUNBbmRHRm5PbmxoYld3dWIzSm5MREl3TURJNmNHRnBjbk1uT2lCd1lXbHljeXhjYmlBZ0lDQW5kR0ZuT25saGJXd3ViM0puTERJd01ESTZjMlYwSnpvZ2MyVjBMRnh1SUNBZ0lDZDBZV2M2ZVdGdGJDNXZjbWNzTWpBd01qcDBhVzFsYzNSaGJYQW5PaUIwYVcxbGMzUmhiWEJjYm4wN1hHNW1kVzVqZEdsdmJpQm5aWFJVWVdkektHTjFjM1J2YlZSaFozTXNJSE5qYUdWdFlVNWhiV1VzSUdGa1pFMWxjbWRsVkdGbktTQjdYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhWR0ZuY3lBOUlITmphR1Z0WVhNdVoyVjBLSE5qYUdWdFlVNWhiV1VwTzF4dUlDQWdJR2xtSUNoelkyaGxiV0ZVWVdkeklDWW1JQ0ZqZFhOMGIyMVVZV2R6S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaFpHUk5aWEpuWlZSaFp5QW1KaUFoYzJOb1pXMWhWR0ZuY3k1cGJtTnNkV1JsY3lodFpYSm5aU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdjMk5vWlcxaFZHRm5jeTVqYjI1allYUW9iV1Z5WjJVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUhOamFHVnRZVlJoWjNNdWMyeHBZMlVvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhSaFozTWdQU0J6WTJobGJXRlVZV2R6TzF4dUlDQWdJR2xtSUNnaGRHRm5jeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoamRYTjBiMjFVWVdkektTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhSaFozTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCclpYbHpJRDBnUVhKeVlYa3Vabkp2YlNoelkyaGxiV0Z6TG10bGVYTW9LU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1Wm1sc2RHVnlLR3RsZVNBOVBpQnJaWGtnSVQwOUlDZDVZVzFzTVRFbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNXRZWEFvYTJWNUlEMCtJRXBUVDA0dWMzUnlhVzVuYVdaNUtHdGxlU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG1wdmFXNG9KeXdnSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRlZ1YTI1dmQyNGdjMk5vWlcxaElGd2lKSHR6WTJobGJXRk9ZVzFsZlZ3aU95QjFjMlVnYjI1bElHOW1JQ1I3YTJWNWMzMGdiM0lnWkdWbWFXNWxJR04xYzNSdmJWUmhaM01nWVhKeVlYbGdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaGpkWE4wYjIxVVlXZHpLU2tnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElIUmhaeUJ2WmlCamRYTjBiMjFVWVdkektWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdGbmN5QTlJSFJoWjNNdVkyOXVZMkYwS0hSaFp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0hSNWNHVnZaaUJqZFhOMGIyMVVZV2R6SUQwOVBTQW5ablZ1WTNScGIyNG5LU0I3WEc0Z0lDQWdJQ0FnSUhSaFozTWdQU0JqZFhOMGIyMVVZV2R6S0hSaFozTXVjMnhwWTJVb0tTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGhaR1JOWlhKblpWUmhaeWxjYmlBZ0lDQWdJQ0FnZEdGbmN5QTlJSFJoWjNNdVkyOXVZMkYwS0cxbGNtZGxLVHRjYmlBZ0lDQnlaWFIxY200Z2RHRm5jeTV5WldSMVkyVW9LSFJoWjNNc0lIUmhaeWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMFlXZFBZbW9nUFNCMGVYQmxiMllnZEdGbklEMDlQU0FuYzNSeWFXNW5KeUEvSUhSaFozTkNlVTVoYldWYmRHRm5YU0E2SUhSaFp6dGNiaUFnSUNBZ0lDQWdhV1lnS0NGMFlXZFBZbW9wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIUmhaMDVoYldVZ1BTQktVMDlPTG5OMGNtbHVaMmxtZVNoMFlXY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYTJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0hSaFozTkNlVTVoYldVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2hyWlhrZ1BUNGdTbE5QVGk1emRISnBibWRwWm5rb2EyVjVLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1YW05cGJpZ25MQ0FuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVyYm05M2JpQmpkWE4wYjIwZ2RHRm5JQ1I3ZEdGblRtRnRaWDA3SUhWelpTQnZibVVnYjJZZ0pIdHJaWGx6ZldBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHRm5jeTVwYm1Oc2RXUmxjeWgwWVdkUFltb3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHRm5jeTV3ZFhOb0tIUmhaMDlpYWlrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMFlXZHpPMXh1SUNBZ0lIMHNJRnRkS1R0Y2JuMWNibHh1Wlhod2IzSjBJSHNnWTI5eVpVdHViM2R1VkdGbmN5d2daMlYwVkdGbmN5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lFMUJVQ3dnVTBOQlRFRlNMQ0JUUlZFZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUJ0WVhBZ2ZTQm1jbTl0SUNjdUwyTnZiVzF2Ymk5dFlYQXVhbk1uTzF4dWFXMXdiM0owSUhzZ2MyVnhJSDBnWm5KdmJTQW5MaTlqYjIxdGIyNHZjMlZ4TG1wekp6dGNibWx0Y0c5eWRDQjdJSE4wY21sdVp5QjlJR1p5YjIwZ0p5NHZZMjl0Ylc5dUwzTjBjbWx1Wnk1cWN5YzdYRzVwYlhCdmNuUWdleUJuWlhSVVlXZHpMQ0JqYjNKbFMyNXZkMjVVWVdkeklIMGdabkp2YlNBbkxpOTBZV2R6TG1wekp6dGNibHh1WTI5dWMzUWdjMjl5ZEUxaGNFVnVkSEpwWlhOQ2VVdGxlU0E5SUNoaExDQmlLU0E5UGlCaExtdGxlU0E4SUdJdWEyVjVJRDhnTFRFZ09pQmhMbXRsZVNBK0lHSXVhMlY1SUQ4Z01TQTZJREE3WEc1amJHRnpjeUJUWTJobGJXRWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSHNnWTI5dGNHRjBMQ0JqZFhOMGIyMVVZV2R6TENCdFpYSm5aU3dnY21WemIyeDJaVXR1YjNkdVZHRm5jeXdnYzJOb1pXMWhMQ0J6YjNKMFRXRndSVzUwY21sbGN5d2dkRzlUZEhKcGJtZEVaV1poZFd4MGN5QjlLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZMjl0Y0dGMElEMGdRWEp5WVhrdWFYTkJjbkpoZVNoamIyMXdZWFFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR2RsZEZSaFozTW9ZMjl0Y0dGMExDQW5ZMjl0Y0dGMEp5bGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1kyOXRjR0YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCblpYUlVZV2R6S0c1MWJHd3NJR052YlhCaGRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIUm9hWE11Ym1GdFpTQTlJQ2gwZVhCbGIyWWdjMk5vWlcxaElEMDlQU0FuYzNSeWFXNW5KeUFtSmlCelkyaGxiV0VwSUh4OElDZGpiM0psSnp0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVyYm05M2JsUmhaM01nUFNCeVpYTnZiSFpsUzI1dmQyNVVZV2R6SUQ4Z1kyOXlaVXR1YjNkdVZHRm5jeUE2SUh0OU8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5SaFozTWdQU0JuWlhSVVlXZHpLR04xYzNSdmJWUmhaM01zSUhSb2FYTXVibUZ0WlN3Z2JXVnlaMlVwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblJ2VTNSeWFXNW5UM0IwYVc5dWN5QTlJSFJ2VTNSeWFXNW5SR1ZtWVhWc2RITWdQejhnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSb2FYTXNJRTFCVUN3Z2V5QjJZV3gxWlRvZ2JXRndJSDBwTzF4dUlDQWdJQ0FnSUNCUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29kR2hwY3l3Z1UwTkJURUZTTENCN0lIWmhiSFZsT2lCemRISnBibWNnZlNrN1hHNGdJQ0FnSUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2gwYUdsekxDQlRSVkVzSUhzZ2RtRnNkV1U2SUhObGNTQjlLVHRjYmlBZ0lDQWdJQ0FnTHk4Z1ZYTmxaQ0JpZVNCamNtVmhkR1ZOWVhBb0tWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OdmNuUk5ZWEJGYm5SeWFXVnpJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1Z2WmlCemIzSjBUV0Z3Ulc1MGNtbGxjeUE5UFQwZ0oyWjFibU4wYVc5dUoxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdjMjl5ZEUxaGNFVnVkSEpwWlhOY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklITnZjblJOWVhCRmJuUnlhV1Z6SUQwOVBTQjBjblZsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdjMjl5ZEUxaGNFVnVkSEpwWlhOQ2VVdGxlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHNTFiR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHTnNiMjVsS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamIzQjVJRDBnVDJKcVpXTjBMbU55WldGMFpTaFRZMmhsYldFdWNISnZkRzkwZVhCbExDQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5Y3loMGFHbHpLU2s3WEc0Z0lDQWdJQ0FnSUdOdmNIa3VkR0ZuY3lBOUlIUm9hWE11ZEdGbmN5NXpiR2xqWlNncE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXdlVHRjYmlBZ0lDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCN0lGTmphR1Z0WVNCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUdselRtOWtaU0I5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMmxrWlc1MGFYUjVMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHTnlaV0YwWlZOMGNtbHVaMmxtZVVOdmJuUmxlSFFzSUhOMGNtbHVaMmxtZVNCOUlHWnliMjBnSnk0dmMzUnlhVzVuYVdaNUxtcHpKenRjYm1sdGNHOXlkQ0I3SUdsdVpHVnVkRU52YlcxbGJuUXNJR3hwYm1WRGIyMXRaVzUwSUgwZ1puSnZiU0FuTGk5emRISnBibWRwWm5sRGIyMXRaVzUwTG1wekp6dGNibHh1Wm5WdVkzUnBiMjRnYzNSeWFXNW5hV1o1Ukc5amRXMWxiblFvWkc5akxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ1kyOXVjM1FnYkdsdVpYTWdQU0JiWFR0Y2JpQWdJQ0JzWlhRZ2FHRnpSR2x5WldOMGFYWmxjeUE5SUc5d2RHbHZibk11WkdseVpXTjBhWFpsY3lBOVBUMGdkSEoxWlR0Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1a2FYSmxZM1JwZG1WeklDRTlQU0JtWVd4elpTQW1KaUJrYjJNdVpHbHlaV04wYVhabGN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmthWElnUFNCa2IyTXVaR2x5WldOMGFYWmxjeTUwYjFOMGNtbHVaeWhrYjJNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWkdseUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tHUnBjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm9ZWE5FYVhKbFkzUnBkbVZ6SUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoa2IyTXVaR2x5WldOMGFYWmxjeTVrYjJOVGRHRnlkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHaGhjMFJwY21WamRHbDJaWE1nUFNCMGNuVmxPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9hR0Z6UkdseVpXTjBhWFpsY3lsY2JpQWdJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDZ25MUzB0SnlrN1hHNGdJQ0FnWTI5dWMzUWdZM1I0SUQwZ1kzSmxZWFJsVTNSeWFXNW5hV1o1UTI5dWRHVjRkQ2hrYjJNc0lHOXdkR2x2Ym5NcE8xeHVJQ0FnSUdOdmJuTjBJSHNnWTI5dGJXVnVkRk4wY21sdVp5QjlJRDBnWTNSNExtOXdkR2x2Ym5NN1hHNGdJQ0FnYVdZZ0tHUnZZeTVqYjIxdFpXNTBRbVZtYjNKbEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoc2FXNWxjeTVzWlc1bmRHZ2dJVDA5SURFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5NTFibk5vYVdaMEtDY25LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZM01nUFNCamIyMXRaVzUwVTNSeWFXNW5LR1J2WXk1amIyMXRaVzUwUW1WbWIzSmxLVHRjYmlBZ0lDQWdJQ0FnYkdsdVpYTXVkVzV6YUdsbWRDaHBibVJsYm5SRGIyMXRaVzUwS0dOekxDQW5KeWtwTzF4dUlDQWdJSDFjYmlBZ0lDQnNaWFFnWTJodmJYQkxaV1Z3SUQwZ1ptRnNjMlU3WEc0Z0lDQWdiR1YwSUdOdmJuUmxiblJEYjIxdFpXNTBJRDBnYm5Wc2JEdGNiaUFnSUNCcFppQW9aRzlqTG1OdmJuUmxiblJ6S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzA1dlpHVW9aRzlqTG1OdmJuUmxiblJ6S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHUnZZeTVqYjI1MFpXNTBjeTV6Y0dGalpVSmxabTl5WlNBbUppQm9ZWE5FYVhKbFkzUnBkbVZ6S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb0p5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1J2WXk1amIyNTBaVzUwY3k1amIyMXRaVzUwUW1WbWIzSmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZM01nUFNCamIyMXRaVzUwVTNSeWFXNW5LR1J2WXk1amIyNTBaVzUwY3k1amIyMXRaVzUwUW1WbWIzSmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0dsdVpHVnVkRU52YlcxbGJuUW9ZM01zSUNjbktTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCMGIzQXRiR1YyWld3Z1lteHZZMnNnYzJOaGJHRnljeUJ1WldWa0lIUnZJR0psSUdsdVpHVnVkR1ZrSUdsbUlHWnZiR3h2ZDJWa0lHSjVJR0VnWTI5dGJXVnVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbVp2Y21ObFFteHZZMnRKYm1SbGJuUWdQU0FoSVdSdll5NWpiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHVnVkRU52YlcxbGJuUWdQU0JrYjJNdVkyOXVkR1Z1ZEhNdVkyOXRiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdmJrTm9iMjF3UzJWbGNDQTlJR052Ym5SbGJuUkRiMjF0Wlc1MElEOGdkVzVrWldacGJtVmtJRG9nS0NrZ1BUNGdLR05vYjIxd1MyVmxjQ0E5SUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1ltOWtlU0E5SUhOMGNtbHVaMmxtZVNoa2IyTXVZMjl1ZEdWdWRITXNJR04wZUN3Z0tDa2dQVDRnS0dOdmJuUmxiblJEYjIxdFpXNTBJRDBnYm5Wc2JDa3NJRzl1UTJodmJYQkxaV1Z3S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR052Ym5SbGJuUkRiMjF0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnWW05a2VTQXJQU0JzYVc1bFEyOXRiV1Z1ZENoaWIyUjVMQ0FuSnl3Z1kyOXRiV1Z1ZEZOMGNtbHVaeWhqYjI1MFpXNTBRMjl0YldWdWRDa3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb0tHSnZaSGxiTUYwZ1BUMDlJQ2Q4SnlCOGZDQmliMlI1V3pCZElEMDlQU0FuUGljcElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjMXRzYVc1bGN5NXNaVzVuZEdnZ0xTQXhYU0E5UFQwZ0p5MHRMU2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZSdmNDMXNaWFpsYkNCaWJHOWpheUJ6WTJGc1lYSnpJSGRwZEdnZ1lTQndjbVZqWldScGJtY2daRzlqSUcxaGNtdGxjaUJ2ZFdkb2RDQjBieUIxYzJVZ2RHaGxYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnpZVzFsSUd4cGJtVWdabTl5SUhSb1pXbHlJR2hsWVdSbGNpNWNiaUFnSUNBZ0lDQWdJQ0FnSUd4cGJtVnpXMnhwYm1WekxteGxibWQwYUNBdElERmRJRDBnWUMwdExTQWtlMkp2WkhsOVlEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0dKdlpIa3BPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnYkdsdVpYTXVjSFZ6YUNoemRISnBibWRwWm5rb1pHOWpMbU52Ym5SbGJuUnpMQ0JqZEhncEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHUnZZeTVrYVhKbFkzUnBkbVZ6UHk1a2IyTkZibVFwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1J2WXk1amIyMXRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpjeUE5SUdOdmJXMWxiblJUZEhKcGJtY29aRzlqTG1OdmJXMWxiblFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOekxtbHVZMngxWkdWektDZGNYRzRuS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29KeTR1TGljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29hVzVrWlc1MFEyOXRiV1Z1ZENoamN5d2dKeWNwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb1lDNHVMaUFrZTJOemZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdsdVpYTXVjSFZ6YUNnbkxpNHVKeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JrWXlBOUlHUnZZeTVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pHTWdKaVlnWTJodmJYQkxaV1Z3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaR01nUFNCa1l5NXlaWEJzWVdObEtDOWVYRnh1S3k4c0lDY25LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUmpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvS0NGamFHOXRjRXRsWlhBZ2ZId2dZMjl1ZEdWdWRFTnZiVzFsYm5RcElDWW1JR3hwYm1WelcyeHBibVZ6TG14bGJtZDBhQ0F0SURGZElDRTlQU0FuSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tDY25LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29hVzVrWlc1MFEyOXRiV1Z1ZENoamIyMXRaVzUwVTNSeWFXNW5LR1JqS1N3Z0p5Y3BLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2JHbHVaWE11YW05cGJpZ25YRnh1SnlrZ0t5QW5YRnh1Snp0Y2JuMWNibHh1Wlhod2IzSjBJSHNnYzNSeWFXNW5hV1o1Ukc5amRXMWxiblFnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJCYkdsaGN5QjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwwRnNhV0Z6TG1wekp6dGNibWx0Y0c5eWRDQjdJR2x6Ulcxd2RIbFFZWFJvTENCamIyeHNaV04wYVc5dVJuSnZiVkJoZEdnZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5RGIyeHNaV04wYVc5dUxtcHpKenRjYm1sdGNHOXlkQ0I3SUU1UFJFVmZWRmxRUlN3Z1JFOURMQ0JwYzA1dlpHVXNJR2x6UTI5c2JHVmpkR2x2Yml3Z2FYTlRZMkZzWVhJZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUJRWVdseUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdlVHRnBjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QjBiMHBUSUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12ZEc5S1V5NXFjeWM3WEc1cGJYQnZjblFnZXlCVFkyaGxiV0VnZlNCbWNtOXRJQ2N1TGk5elkyaGxiV0V2VTJOb1pXMWhMbXB6Snp0Y2JtbHRjRzl5ZENCN0lITjBjbWx1WjJsbWVVUnZZM1Z0Wlc1MElIMGdabkp2YlNBbkxpNHZjM1J5YVc1bmFXWjVMM04wY21sdVoybG1lVVJ2WTNWdFpXNTBMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHRnVZMmh2Y2s1aGJXVnpMQ0JtYVc1a1RtVjNRVzVqYUc5eUxDQmpjbVZoZEdWT2IyUmxRVzVqYUc5eWN5QjlJR1p5YjIwZ0p5NHZZVzVqYUc5eWN5NXFjeWM3WEc1cGJYQnZjblFnZXlCaGNIQnNlVkpsZG1sMlpYSWdmU0JtY205dElDY3VMMkZ3Y0d4NVVtVjJhWFpsY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJqY21WaGRHVk9iMlJsSUgwZ1puSnZiU0FuTGk5amNtVmhkR1ZPYjJSbExtcHpKenRjYm1sdGNHOXlkQ0I3SUVScGNtVmpkR2wyWlhNZ2ZTQm1jbTl0SUNjdUwyUnBjbVZqZEdsMlpYTXVhbk1uTzF4dVhHNWpiR0Z6Y3lCRWIyTjFiV1Z1ZENCN1hHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb2RtRnNkV1VzSUhKbGNHeGhZMlZ5TENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lDOHFLaUJCSUdOdmJXMWxiblFnWW1WbWIzSmxJSFJvYVhNZ1JHOWpkVzFsYm5RZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1amIyMXRaVzUwUW1WbWIzSmxJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdMeW9xSUVFZ1kyOXRiV1Z1ZENCcGJXMWxaR2xoZEdWc2VTQmhablJsY2lCMGFHbHpJRVJ2WTNWdFpXNTBJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZMjl0YldWdWRDQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDOHFLaUJGY25KdmNuTWdaVzVqYjNWdWRHVnlaV1FnWkhWeWFXNW5JSEJoY25OcGJtY3VJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaWEp5YjNKeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUM4cUtpQlhZWEp1YVc1bmN5QmxibU52ZFc1MFpYSmxaQ0JrZFhKcGJtY2djR0Z5YzJsdVp5NGdLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NTNZWEp1YVc1bmN5QTlJRnRkTzF4dUlDQWdJQ0FnSUNCUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29kR2hwY3l3Z1RrOUVSVjlVV1ZCRkxDQjdJSFpoYkhWbE9pQkVUME1nZlNrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JmY21Wd2JHRmpaWElnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGNHeGhZMlZ5SUQwOVBTQW5ablZ1WTNScGIyNG5JSHg4SUVGeWNtRjVMbWx6UVhKeVlYa29jbVZ3YkdGalpYSXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZjbVZ3YkdGalpYSWdQU0J5WlhCc1lXTmxjanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNodmNIUnBiMjV6SUQwOVBTQjFibVJsWm1sdVpXUWdKaVlnY21Wd2JHRmpaWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzl3ZEdsdmJuTWdQU0J5WlhCc1lXTmxjanRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjR3hoWTJWeUlEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzl3ZENBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzUwUVhOQ2FXZEpiblE2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2EyVmxjRk52ZFhKalpWUnZhMlZ1Y3pvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnNiMmRNWlhabGJEb2dKM2RoY200bkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRIUjVSWEp5YjNKek9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5YVdOME9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5YVc1blMyVjVjem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMWJtbHhkV1ZMWlhsek9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkbVZ5YzJsdmJqb2dKekV1TWlkY2JpQWdJQ0FnSUNBZ2ZTd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdWIzQjBhVzl1Y3lBOUlHOXdkRHRjYmlBZ0lDQWdJQ0FnYkdWMElIc2dkbVZ5YzJsdmJpQjlJRDBnYjNCME8xeHVJQ0FnSUNBZ0lDQnBaaUFvYjNCMGFXOXVjejh1WDJScGNtVmpkR2wyWlhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaR2x5WldOMGFYWmxjeUE5SUc5d2RHbHZibk11WDJScGNtVmpkR2wyWlhNdVlYUkViMk4xYldWdWRDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVpHbHlaV04wYVhabGN5NTVZVzFzTG1WNGNHeHBZMmwwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhabGNuTnBiMjRnUFNCMGFHbHpMbVJwY21WamRHbDJaWE11ZVdGdGJDNTJaWEp6YVc5dU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpHbHlaV04wYVhabGN5QTlJRzVsZHlCRWFYSmxZM1JwZG1WektIc2dkbVZ5YzJsdmJpQjlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUWTJobGJXRW9kbVZ5YzJsdmJpd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJQzh2SUVCMGN5MWxlSEJsWTNRdFpYSnliM0lnVjJVZ1kyRnVKM1FnY21WaGJHeDVJR3R1YjNjZ2RHaGhkQ0IwYUdseklHMWhkR05vWlhNZ1EyOXVkR1Z1ZEhNdVhHNGdJQ0FnSUNBZ0lIUm9hWE11WTI5dWRHVnVkSE1nUFZ4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVZ1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSUc1MWJHd2dPaUIwYUdsekxtTnlaV0YwWlU1dlpHVW9kbUZzZFdVc0lGOXlaWEJzWVdObGNpd2diM0IwYVc5dWN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlNCaElHUmxaWEFnWTI5d2VTQnZaaUIwYUdseklFUnZZM1Z0Wlc1MElHRnVaQ0JwZEhNZ1kyOXVkR1Z1ZEhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCRGRYTjBiMjBnVG05a1pTQjJZV3gxWlhNZ2RHaGhkQ0JwYm1obGNtbDBJR1p5YjIwZ1lFOWlhbVZqZEdBZ2MzUnBiR3dnY21WbVpYSWdkRzhnZEdobGFYSWdiM0pwWjJsdVlXd2dhVzV6ZEdGdVkyVnpMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHTnNiMjVsS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamIzQjVJRDBnVDJKcVpXTjBMbU55WldGMFpTaEViMk4xYldWdWRDNXdjbTkwYjNSNWNHVXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lGdE9UMFJGWDFSWlVFVmRPaUI3SUhaaGJIVmxPaUJFVDBNZ2ZWeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnWTI5d2VTNWpiMjF0Wlc1MFFtVm1iM0psSUQwZ2RHaHBjeTVqYjIxdFpXNTBRbVZtYjNKbE8xeHVJQ0FnSUNBZ0lDQmpiM0I1TG1OdmJXMWxiblFnUFNCMGFHbHpMbU52YlcxbGJuUTdYRzRnSUNBZ0lDQWdJR052Y0hrdVpYSnliM0p6SUQwZ2RHaHBjeTVsY25KdmNuTXVjMnhwWTJVb0tUdGNiaUFnSUNBZ0lDQWdZMjl3ZVM1M1lYSnVhVzVuY3lBOUlIUm9hWE11ZDJGeWJtbHVaM011YzJ4cFkyVW9LVHRjYmlBZ0lDQWdJQ0FnWTI5d2VTNXZjSFJwYjI1eklEMGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dkR2hwY3k1dmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVpHbHlaV04wYVhabGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmNIa3VaR2x5WldOMGFYWmxjeUE5SUhSb2FYTXVaR2x5WldOMGFYWmxjeTVqYkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0JqYjNCNUxuTmphR1Z0WVNBOUlIUm9hWE11YzJOb1pXMWhMbU5zYjI1bEtDazdYRzRnSUNBZ0lDQWdJQzh2SUVCMGN5MWxlSEJsWTNRdFpYSnliM0lnVjJVZ1kyRnVKM1FnY21WaGJHeDVJR3R1YjNjZ2RHaGhkQ0IwYUdseklHMWhkR05vWlhNZ1EyOXVkR1Z1ZEhNdVhHNGdJQ0FnSUNBZ0lHTnZjSGt1WTI5dWRHVnVkSE1nUFNCcGMwNXZaR1VvZEdocGN5NWpiMjUwWlc1MGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2RHaHBjeTVqYjI1MFpXNTBjeTVqYkc5dVpTaGpiM0I1TG5OamFHVnRZU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dkR2hwY3k1amIyNTBaVzUwY3p0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWNtRnVaMlVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiM0I1TG5KaGJtZGxJRDBnZEdocGN5NXlZVzVuWlM1emJHbGpaU2dwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5d2VUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcUlFRmtaSE1nWVNCMllXeDFaU0IwYnlCMGFHVWdaRzlqZFcxbGJuUXVJQ292WEc0Z0lDQWdZV1JrS0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGhjM05sY25SRGIyeHNaV04wYVc5dUtIUm9hWE11WTI5dWRHVnVkSE1wS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1amIyNTBaVzUwY3k1aFpHUW9kbUZzZFdVcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lvZ1FXUmtjeUJoSUhaaGJIVmxJSFJ2SUhSb1pTQmtiMk4xYldWdWRDNGdLaTljYmlBZ0lDQmhaR1JKYmlod1lYUm9MQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1lYTnpaWEowUTI5c2JHVmpkR2x2YmloMGFHbHpMbU52Ym5SbGJuUnpLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WTI5dWRHVnVkSE11WVdSa1NXNG9jR0YwYUN3Z2RtRnNkV1VwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVWdZU0J1WlhjZ1lFRnNhV0Z6WUNCdWIyUmxMQ0JsYm5OMWNtbHVaeUIwYUdGMElIUm9aU0IwWVhKblpYUWdZRzV2WkdWZ0lHaGhjeUIwYUdVZ2NtVnhkV2x5WldRZ1lXNWphRzl5TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nU1dZZ1lHNXZaR1ZnSUdGc2NtVmhaSGtnYUdGeklHRnVJR0Z1WTJodmNpd2dZRzVoYldWZ0lHbHpJR2xuYm05eVpXUXVYRzRnSUNBZ0lDb2dUM1JvWlhKM2FYTmxMQ0IwYUdVZ1lHNXZaR1V1WVc1amFHOXlZQ0IyWVd4MVpTQjNhV3hzSUdKbElITmxkQ0IwYnlCZ2JtRnRaV0FzWEc0Z0lDQWdJQ29nYjNJZ2FXWWdZVzRnWVc1amFHOXlJSGRwZEdnZ2RHaGhkQ0J1WVcxbElHbHpJR0ZzY21WaFpIa2djSEpsYzJWdWRDQnBiaUIwYUdVZ1pHOWpkVzFsYm5Rc1hHNGdJQ0FnSUNvZ1lHNWhiV1ZnSUhkcGJHd2dZbVVnZFhObFpDQmhjeUJoSUhCeVpXWnBlQ0JtYjNJZ1lTQnVaWGNnZFc1cGNYVmxJR0Z1WTJodmNpNWNiaUFnSUNBZ0tpQkpaaUJnYm1GdFpXQWdhWE1nZFc1a1pXWnBibVZrTENCMGFHVWdaMlZ1WlhKaGRHVmtJR0Z1WTJodmNpQjNhV3hzSUhWelpTQW5ZU2NnWVhNZ1lTQndjbVZtYVhndVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWTNKbFlYUmxRV3hwWVhNb2JtOWtaU3dnYm1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXNXZaR1V1WVc1amFHOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVjJJRDBnWVc1amFHOXlUbUZ0WlhNb2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnViMlJsTG1GdVkyaHZjaUE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5d2NtVm1aWEl0Ym5Wc2JHbHphQzFqYjJGc1pYTmphVzVuWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVc1aGJXVWdmSHdnY0hKbGRpNW9ZWE1vYm1GdFpTa2dQeUJtYVc1a1RtVjNRVzVqYUc5eUtHNWhiV1VnZkh3Z0oyRW5MQ0J3Y21WMktTQTZJRzVoYldVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJCYkdsaGN5aHViMlJsTG1GdVkyaHZjaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHTnlaV0YwWlU1dlpHVW9kbUZzZFdVc0lISmxjR3hoWTJWeUxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR3hsZENCZmNtVndiR0ZqWlhJZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnY21Wd2JHRmpaWElnUFQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2NtVndiR0ZqWlhJdVkyRnNiQ2g3SUNjbk9pQjJZV3gxWlNCOUxDQW5KeXdnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1gzSmxjR3hoWTJWeUlEMGdjbVZ3YkdGalpYSTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaHlaWEJzWVdObGNpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd0bGVWUnZVM1J5SUQwZ0tIWXBJRDArSUhSNWNHVnZaaUIySUQwOVBTQW5iblZ0WW1WeUp5QjhmQ0IySUdsdWMzUmhibU5sYjJZZ1UzUnlhVzVuSUh4OElIWWdhVzV6ZEdGdVkyVnZaaUJPZFcxaVpYSTdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoYzFOMGNpQTlJSEpsY0d4aFkyVnlMbVpwYkhSbGNpaHJaWGxVYjFOMGNpa3ViV0Z3S0ZOMGNtbHVaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVhOVGRISXViR1Z1WjNSb0lENGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhCc1lXTmxjaUE5SUhKbGNHeGhZMlZ5TG1OdmJtTmhkQ2hoYzFOMGNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCZmNtVndiR0ZqWlhJZ1BTQnlaWEJzWVdObGNqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2h2Y0hScGIyNXpJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdjbVZ3YkdGalpYSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXdkR2x2Ym5NZ1BTQnlaWEJzWVdObGNqdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGNHeGhZMlZ5SUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2dZV3hwWVhORWRYQnNhV05oZEdWUFltcGxZM1J6TENCaGJtTm9iM0pRY21WbWFYZ3NJR1pzYjNjc0lHdGxaWEJWYm1SbFptbHVaV1FzSUc5dVZHRm5UMkpxTENCMFlXY2dmU0E5SUc5d2RHbHZibk1nUHo4Z2UzMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2diMjVCYm1Ob2IzSXNJSE5sZEVGdVkyaHZjbk1zSUhOdmRYSmpaVTlpYW1WamRITWdmU0E5SUdOeVpXRjBaVTV2WkdWQmJtTm9iM0p6S0hSb2FYTXNJRnh1SUNBZ0lDQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDNCeVpXWmxjaTF1ZFd4c2FYTm9MV052WVd4bGMyTnBibWRjYmlBZ0lDQWdJQ0FnWVc1amFHOXlVSEpsWm1sNElIeDhJQ2RoSnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOMGVDQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnNhV0Z6UkhWd2JHbGpZWFJsVDJKcVpXTjBjem9nWVd4cFlYTkVkWEJzYVdOaGRHVlBZbXBsWTNSeklEOC9JSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JyWldWd1ZXNWtaV1pwYm1Wa09pQnJaV1Z3Vlc1a1pXWnBibVZrSUQ4L0lHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVCYm1Ob2IzSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJsUmhaMDlpYWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsY0d4aFkyVnlPaUJmY21Wd2JHRmpaWElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpZMmhsYldFNklIUm9hWE11YzJOb1pXMWhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyOTFjbU5sVDJKcVpXTjBjMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdZM0psWVhSbFRtOWtaU2gyWVd4MVpTd2dkR0ZuTENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pteHZkeUFtSmlCcGMwTnZiR3hsWTNScGIyNG9ibTlrWlNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J1YjJSbExtWnNiM2NnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0J6WlhSQmJtTm9iM0p6S0NrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWIyUmxPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiMjUyWlhKMElHRWdhMlY1SUdGdVpDQmhJSFpoYkhWbElHbHVkRzhnWVNCZ1VHRnBjbUFnZFhOcGJtY2dkR2hsSUdOMWNuSmxiblFnYzJOb1pXMWhMRnh1SUNBZ0lDQXFJSEpsWTNWeWMybDJaV3g1SUhkeVlYQndhVzVuSUdGc2JDQjJZV3gxWlhNZ1lYTWdZRk5qWVd4aGNtQWdiM0lnWUVOdmJHeGxZM1JwYjI1Z0lHNXZaR1Z6TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR055WldGMFpWQmhhWElvYTJWNUxDQjJZV3gxWlN3Z2IzQjBhVzl1Y3lBOUlIdDlLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3NnUFNCMGFHbHpMbU55WldGMFpVNXZaR1VvYTJWNUxDQnVkV3hzTENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZGlBOUlIUm9hWE11WTNKbFlYUmxUbTlrWlNoMllXeDFaU3dnYm5Wc2JDd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVUdGcGNpaHJMQ0IyS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJoSUhaaGJIVmxJR1p5YjIwZ2RHaGxJR1J2WTNWdFpXNTBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJR0IwY25WbFlDQnBaaUIwYUdVZ2FYUmxiU0IzWVhNZ1ptOTFibVFnWVc1a0lISmxiVzkyWldRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWkdWc1pYUmxLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lYTnpaWEowUTI5c2JHVmpkR2x2YmloMGFHbHpMbU52Ym5SbGJuUnpLU0EvSUhSb2FYTXVZMjl1ZEdWdWRITXVaR1ZzWlhSbEtHdGxlU2tnT2lCbVlXeHpaVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVZ0YjNabGN5QmhJSFpoYkhWbElHWnliMjBnZEdobElHUnZZM1Z0Wlc1MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklHQjBjblZsWUNCcFppQjBhR1VnYVhSbGJTQjNZWE1nWm05MWJtUWdZVzVrSUhKbGJXOTJaV1F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdaR1ZzWlhSbFNXNG9jR0YwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORmJYQjBlVkJoZEdnb2NHRjBhQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbU52Ym5SbGJuUnpJRDA5SUc1MWJHd3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUUhSekxXVjRjR1ZqZEMxbGNuSnZjaUJRY21WemRXMWxaQ0JwYlhCdmMzTnBZbXhsSUdsbUlGTjBjbWxqZENCbGVIUmxibVJ6SUdaaGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbU52Ym5SbGJuUnpJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjM05sY25SRGIyeHNaV04wYVc5dUtIUm9hWE11WTI5dWRHVnVkSE1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JSFJvYVhNdVkyOXVkR1Z1ZEhNdVpHVnNaWFJsU1c0b2NHRjBhQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGRIVnlibk1nYVhSbGJTQmhkQ0JnYTJWNVlDd2diM0lnWUhWdVpHVm1hVzVsWkdBZ2FXWWdibTkwSUdadmRXNWtMaUJDZVNCa1pXWmhkV3gwSUhWdWQzSmhjSE5jYmlBZ0lDQWdLaUJ6WTJGc1lYSWdkbUZzZFdWeklHWnliMjBnZEdobGFYSWdjM1Z5Y205MWJtUnBibWNnYm05a1pUc2dkRzhnWkdsellXSnNaU0J6WlhRZ1lHdGxaWEJUWTJGc1lYSmdJSFJ2WEc0Z0lDQWdJQ29nWUhSeWRXVmdJQ2hqYjJ4c1pXTjBhVzl1Y3lCaGNtVWdZV3gzWVhseklISmxkSFZ5Ym1Wa0lHbHVkR0ZqZENrdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWjJWMEtHdGxlU3dnYTJWbGNGTmpZV3hoY2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkRiMnhzWldOMGFXOXVLSFJvYVhNdVkyOXVkR1Z1ZEhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhSb2FYTXVZMjl1ZEdWdWRITXVaMlYwS0d0bGVTd2dhMlZsY0ZOallXeGhjaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dkVzVrWldacGJtVmtPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlNaWFIxY201eklHbDBaVzBnWVhRZ1lIQmhkR2hnTENCdmNpQmdkVzVrWldacGJtVmtZQ0JwWmlCdWIzUWdabTkxYm1RdUlFSjVJR1JsWm1GMWJIUWdkVzUzY21Gd2MxeHVJQ0FnSUNBcUlITmpZV3hoY2lCMllXeDFaWE1nWm5KdmJTQjBhR1ZwY2lCemRYSnliM1Z1WkdsdVp5QnViMlJsT3lCMGJ5QmthWE5oWW14bElITmxkQ0JnYTJWbGNGTmpZV3hoY21BZ2RHOWNiaUFnSUNBZ0tpQmdkSEoxWldBZ0tHTnZiR3hsWTNScGIyNXpJR0Z5WlNCaGJIZGhlWE1nY21WMGRYSnVaV1FnYVc1MFlXTjBLUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFJKYmlod1lYUm9MQ0JyWldWd1UyTmhiR0Z5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzBWdGNIUjVVR0YwYUNod1lYUm9LU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBaGEyVmxjRk5qWVd4aGNpQW1KaUJwYzFOallXeGhjaWgwYUdsekxtTnZiblJsYm5SektWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdkR2hwY3k1amIyNTBaVzUwY3k1MllXeDFaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NWpiMjUwWlc1MGN6dGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHbHpRMjlzYkdWamRHbHZiaWgwYUdsekxtTnZiblJsYm5SektWeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCMGFHbHpMbU52Ym5SbGJuUnpMbWRsZEVsdUtIQmhkR2dzSUd0bFpYQlRZMkZzWVhJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUhSb1pTQmtiMk4xYldWdWRDQnBibU5zZFdSbGN5QmhJSFpoYkhWbElIZHBkR2dnZEdobElHdGxlU0JnYTJWNVlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCb1lYTW9hMlY1S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGMwTnZiR3hsWTNScGIyNG9kR2hwY3k1amIyNTBaVzUwY3lrZ1B5QjBhR2x6TG1OdmJuUmxiblJ6TG1oaGN5aHJaWGtwSURvZ1ptRnNjMlU3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUIwYUdVZ1pHOWpkVzFsYm5RZ2FXNWpiSFZrWlhNZ1lTQjJZV3gxWlNCaGRDQmdjR0YwYUdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnYUdGelNXNG9jR0YwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORmJYQjBlVkJoZEdnb2NHRjBhQ2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MFpXNTBjeUFoUFQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkRiMnhzWldOMGFXOXVLSFJvYVhNdVkyOXVkR1Z1ZEhNcElEOGdkR2hwY3k1amIyNTBaVzUwY3k1b1lYTkpiaWh3WVhSb0tTQTZJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJR0VnZG1Gc2RXVWdhVzRnZEdocGN5QmtiMk4xYldWdWRDNGdSbTl5SUdBaElYTmxkR0FzSUdCMllXeDFaV0FnYm1WbFpITWdkRzhnWW1VZ1lWeHVJQ0FnSUNBcUlHSnZiMnhsWVc0Z2RHOGdZV1JrTDNKbGJXOTJaU0IwYUdVZ2FYUmxiU0JtY205dElIUm9aU0J6WlhRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnYzJWMEtHdGxlU3dnZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WTI5dWRHVnVkSE1nUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUUhSekxXVjRjR1ZqZEMxbGNuSnZjaUJYWlNCallXNG5kQ0J5WldGc2JIa2dhMjV2ZHlCMGFHRjBJSFJvYVhNZ2JXRjBZMmhsY3lCRGIyNTBaVzUwY3k1Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVkyOXVkR1Z1ZEhNZ1BTQmpiMnhzWldOMGFXOXVSbkp2YlZCaGRHZ29kR2hwY3k1elkyaGxiV0VzSUZ0clpYbGRMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVhOelpYSjBRMjlzYkdWamRHbHZiaWgwYUdsekxtTnZiblJsYm5SektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpXNTBjeTV6WlhRb2EyVjVMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlYwY3lCaElIWmhiSFZsSUdsdUlIUm9hWE1nWkc5amRXMWxiblF1SUVadmNpQmdJU0Z6WlhSZ0xDQmdkbUZzZFdWZ0lHNWxaV1J6SUhSdklHSmxJR0ZjYmlBZ0lDQWdLaUJpYjI5c1pXRnVJSFJ2SUdGa1pDOXlaVzF2ZG1VZ2RHaGxJR2wwWlcwZ1puSnZiU0IwYUdVZ2MyVjBMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lITmxkRWx1S0hCaGRHZ3NJSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGMwVnRjSFI1VUdGMGFDaHdZWFJvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FIUnpMV1Y0Y0dWamRDMWxjbkp2Y2lCWFpTQmpZVzRuZENCeVpXRnNiSGtnYTI1dmR5QjBhR0YwSUhSb2FYTWdiV0YwWTJobGN5QkRiMjUwWlc1MGN5NWNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVZMjl1ZEdWdWRITWdQU0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gwYUdsekxtTnZiblJsYm5SeklEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ1YyVWdZMkZ1SjNRZ2NtVmhiR3g1SUd0dWIzY2dkR2hoZENCMGFHbHpJRzFoZEdOb1pYTWdRMjl1ZEdWdWRITXVYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbU52Ym5SbGJuUnpJRDBnWTI5c2JHVmpkR2x2YmtaeWIyMVFZWFJvS0hSb2FYTXVjMk5vWlcxaExDQkJjbkpoZVM1bWNtOXRLSEJoZEdncExDQjJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZWE56WlhKMFEyOXNiR1ZqZEdsdmJpaDBhR2x6TG1OdmJuUmxiblJ6S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWpiMjUwWlc1MGN5NXpaWFJKYmlod1lYUm9MQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhoYm1kbElIUm9aU0JaUVUxTUlIWmxjbk5wYjI0Z1lXNWtJSE5qYUdWdFlTQjFjMlZrSUdKNUlIUm9aU0JrYjJOMWJXVnVkQzVjYmlBZ0lDQWdLaUJCSUdCdWRXeHNZQ0IyWlhKemFXOXVJR1JwYzJGaWJHVnpJSE4xY0hCdmNuUWdabTl5SUdScGNtVmpkR2wyWlhNc0lHVjRjR3hwWTJsMElIUmhaM01zSUdGdVkyaHZjbk1zSUdGdVpDQmhiR2xoYzJWekxseHVJQ0FnSUNBcUlFbDBJR0ZzYzI4Z2NtVnhkV2x5WlhNZ2RHaGxJR0J6WTJobGJXRmdJRzl3ZEdsdmJpQjBieUJpWlNCbmFYWmxiaUJoY3lCaElHQlRZMmhsYldGZ0lHbHVjM1JoYm1ObElIWmhiSFZsTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nVDNabGNuSnBaR1Z6SUdGc2JDQndjbVYyYVc5MWMyeDVJSE5sZENCelkyaGxiV0VnYjNCMGFXOXVjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQnpaWFJUWTJobGJXRW9kbVZ5YzJsdmJpd2diM0IwYVc5dWN5QTlJSHQ5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbVZ5YzJsdmJpQTlQVDBnSjI1MWJXSmxjaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJaWEp6YVc5dUlEMGdVM1J5YVc1bktIWmxjbk5wYjI0cE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYjNCME8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIWmxjbk5wYjI0cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKekV1TVNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVpHbHlaV04wYVhabGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWthWEpsWTNScGRtVnpMbmxoYld3dWRtVnljMmx2YmlBOUlDY3hMakVuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWthWEpsWTNScGRtVnpJRDBnYm1WM0lFUnBjbVZqZEdsMlpYTW9leUIyWlhKemFXOXVPaUFuTVM0eEp5QjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Y0hRZ1BTQjdJSEpsYzI5c2RtVkxibTkzYmxSaFozTTZJR1poYkhObExDQnpZMmhsYldFNklDZDVZVzFzTFRFdU1TY2dmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKekV1TWljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHVaWGgwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2hwY3k1a2FYSmxZM1JwZG1WektWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtUnBjbVZqZEdsMlpYTXVlV0Z0YkM1MlpYSnphVzl1SUQwZ2RtVnljMmx2Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaR2x5WldOMGFYWmxjeUE5SUc1bGR5QkVhWEpsWTNScGRtVnpLSHNnZG1WeWMybHZiaUI5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmNIUWdQU0I3SUhKbGMyOXNkbVZMYm05M2JsUmhaM002SUhSeWRXVXNJSE5qYUdWdFlUb2dKMk52Y21VbklIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElHNTFiR3c2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WkdseVpXTjBhWFpsY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZzWlhSbElIUm9hWE11WkdseVpXTjBhWFpsY3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmNIUWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjJJRDBnU2xOUFRpNXpkSEpwYm1kcFpua29kbVZ5YzJsdmJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkZlSEJsWTNSbFpDQW5NUzR4Snl3Z0p6RXVNaWNnYjNJZ2JuVnNiQ0JoY3lCbWFYSnpkQ0JoY21kMWJXVnVkQ3dnWW5WMElHWnZkVzVrT2lBa2UzTjJmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklFNXZkQ0IxYzJsdVp5QmdhVzV6ZEdGdVkyVnZaaUJUWTJobGJXRmdJSFJ2SUdGc2JHOTNJR1p2Y2lCa2RXTnJJSFI1Y0dsdVoxeHVJQ0FnSUNBZ0lDQnBaaUFvYjNCMGFXOXVjeTV6WTJobGJXRWdhVzV6ZEdGdVkyVnZaaUJQWW1wbFkzUXBYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5qYUdWdFlTQTlJRzl3ZEdsdmJuTXVjMk5vWlcxaE8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHZjSFFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OamFHVnRZU0E5SUc1bGR5QlRZMmhsYldFb1QySnFaV04wTG1GemMybG5iaWh2Y0hRc0lHOXdkR2x2Ym5NcEtUdGNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQlhhWFJvSUdFZ2JuVnNiQ0JaUVUxTUlIWmxjbk5wYjI0c0lIUm9aU0I3SUhOamFHVnRZVG9nVTJOb1pXMWhJSDBnYjNCMGFXOXVJR2x6SUhKbGNYVnBjbVZrWUNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzh2SUdwemIyNGdKaUJxYzI5dVFYSm5JR0Z5WlNCdmJteDVJSFZ6WldRZ1puSnZiU0IwYjBwVFQwNG9LVnh1SUNBZ0lIUnZTbE1vZXlCcWMyOXVMQ0JxYzI5dVFYSm5MQ0J0WVhCQmMwMWhjQ3dnYldGNFFXeHBZWE5EYjNWdWRDd2diMjVCYm1Ob2IzSXNJSEpsZG1sMlpYSWdmU0E5SUh0OUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTjBlQ0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0Z1WTJodmNuTTZJRzVsZHlCTllYQW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnZZem9nZEdocGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUd0bFpYQTZJQ0ZxYzI5dUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldGd1FYTk5ZWEE2SUcxaGNFRnpUV0Z3SUQwOVBTQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiV0Z3UzJWNVYyRnlibVZrT2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhlRUZzYVdGelEyOTFiblE2SUhSNWNHVnZaaUJ0WVhoQmJHbGhjME52ZFc1MElEMDlQU0FuYm5WdFltVnlKeUEvSUcxaGVFRnNhV0Z6UTI5MWJuUWdPaUF4TURCY2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpJRDBnZEc5S1V5aDBhR2x6TG1OdmJuUmxiblJ6TENCcWMyOXVRWEpuSUQ4L0lDY25MQ0JqZEhncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JRzl1UVc1amFHOXlJRDA5UFNBblpuVnVZM1JwYjI0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCN0lHTnZkVzUwTENCeVpYTWdmU0J2WmlCamRIZ3VZVzVqYUc5eWN5NTJZV3gxWlhNb0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia0Z1WTJodmNpaHlaWE1zSUdOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlaWFpwZG1WeUlEMDlQU0FuWm5WdVkzUnBiMjRuWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR0Z3Y0d4NVVtVjJhWFpsY2loeVpYWnBkbVZ5TENCN0lDY25PaUJ5WlhNZ2ZTd2dKeWNzSUhKbGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ2NtVnpPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJJRXBUVDA0Z2NtVndjbVZ6Wlc1MFlYUnBiMjRnYjJZZ2RHaGxJR1J2WTNWdFpXNTBJR0JqYjI1MFpXNTBjMkF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdhbk52YmtGeVp5QlZjMlZrSUdKNUlHQktVMDlPTG5OMGNtbHVaMmxtZVdBZ2RHOGdhVzVrYVdOaGRHVWdkR2hsSUdGeWNtRjVJR2x1WkdWNElHOXlYRzRnSUNBZ0lDb2dJQ0J3Y205d1pYSjBlU0J1WVcxbExseHVJQ0FnSUNBcUwxeHVJQ0FnSUhSdlNsTlBUaWhxYzI5dVFYSm5MQ0J2YmtGdVkyaHZjaWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NTBiMHBUS0hzZ2FuTnZiam9nZEhKMVpTd2dhbk52YmtGeVp5d2diV0Z3UVhOTllYQTZJR1poYkhObExDQnZia0Z1WTJodmNpQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FJRUVnV1VGTlRDQnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQjBhR1VnWkc5amRXMWxiblF1SUNvdlhHNGdJQ0FnZEc5VGRISnBibWNvYjNCMGFXOXVjeUE5SUh0OUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVZ5Y205eWN5NXNaVzVuZEdnZ1BpQXdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkRWIyTjFiV1Z1ZENCM2FYUm9JR1Z5Y205eWN5QmpZVzV1YjNRZ1ltVWdjM1J5YVc1bmFXWnBaV1FuS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ2RwYm1SbGJuUW5JR2x1SUc5d2RHbHZibk1nSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ2doVG5WdFltVnlMbWx6U1c1MFpXZGxjaWh2Y0hScGIyNXpMbWx1WkdWdWRDa2dmSHdnVG5WdFltVnlLRzl3ZEdsdmJuTXVhVzVrWlc1MEtTQThQU0F3S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjeUE5SUVwVFQwNHVjM1J5YVc1bmFXWjVLRzl3ZEdsdmJuTXVhVzVrWlc1MEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnWENKcGJtUmxiblJjSWlCdmNIUnBiMjRnYlhWemRDQmlaU0JoSUhCdmMybDBhWFpsSUdsdWRHVm5aWElzSUc1dmRDQWtlM045WUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBjbWx1WjJsbWVVUnZZM1Z0Wlc1MEtIUm9hWE1zSUc5d2RHbHZibk1wTzF4dUlDQWdJSDFjYm4xY2JtWjFibU4wYVc5dUlHRnpjMlZ5ZEVOdmJHeGxZM1JwYjI0b1kyOXVkR1Z1ZEhNcElIdGNiaUFnSUNCcFppQW9hWE5EYjJ4c1pXTjBhVzl1S0dOdmJuUmxiblJ6S1NsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkRmVIQmxZM1JsWkNCaElGbEJUVXdnWTI5c2JHVmpkR2x2YmlCaGN5QmtiMk4xYldWdWRDQmpiMjUwWlc1MGN5Y3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QkViMk4xYldWdWRDQjlPMXh1SWl3Z0ltTnNZWE56SUZsQlRVeEZjbkp2Y2lCbGVIUmxibVJ6SUVWeWNtOXlJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh1WVcxbExDQndiM01zSUdOdlpHVXNJRzFsYzNOaFoyVXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXVZVzFsSUQwZ2JtRnRaVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiMlJsSUQwZ1kyOWtaVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXRaWE56WVdkbElEMGdiV1Z6YzJGblpUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTWdQU0J3YjNNN1hHNGdJQ0FnZlZ4dWZWeHVZMnhoYzNNZ1dVRk5URkJoY25ObFJYSnliM0lnWlhoMFpXNWtjeUJaUVUxTVJYSnliM0lnZTF4dUlDQWdJR052Ym5OMGNuVmpkRzl5S0hCdmN5d2dZMjlrWlN3Z2JXVnpjMkZuWlNrZ2UxeHVJQ0FnSUNBZ0lDQnpkWEJsY2lnbldVRk5URkJoY25ObFJYSnliM0luTENCd2IzTXNJR052WkdVc0lHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JuMWNibU5zWVhOeklGbEJUVXhYWVhKdWFXNW5JR1Y0ZEdWdVpITWdXVUZOVEVWeWNtOXlJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh3YjNNc0lHTnZaR1VzSUcxbGMzTmhaMlVwSUh0Y2JpQWdJQ0FnSUNBZ2MzVndaWElvSjFsQlRVeFhZWEp1YVc1bkp5d2djRzl6TENCamIyUmxMQ0J0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzU5WEc1amIyNXpkQ0J3Y21WMGRHbG1lVVZ5Y205eUlEMGdLSE55WXl3Z2JHTXBJRDArSUNobGNuSnZjaWtnUFQ0Z2UxeHVJQ0FnSUdsbUlDaGxjbkp2Y2k1d2IzTmJNRjBnUFQwOUlDMHhLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ1pYSnliM0l1YkdsdVpWQnZjeUE5SUdWeWNtOXlMbkJ2Y3k1dFlYQW9jRzl6SUQwK0lHeGpMbXhwYm1WUWIzTW9jRzl6S1NrN1hHNGdJQ0FnWTI5dWMzUWdleUJzYVc1bExDQmpiMndnZlNBOUlHVnljbTl5TG14cGJtVlFiM05iTUYwN1hHNGdJQ0FnWlhKeWIzSXViV1Z6YzJGblpTQXJQU0JnSUdGMElHeHBibVVnSkh0c2FXNWxmU3dnWTI5c2RXMXVJQ1I3WTI5c2ZXQTdYRzRnSUNBZ2JHVjBJR05wSUQwZ1kyOXNJQzBnTVR0Y2JpQWdJQ0JzWlhRZ2JHbHVaVk4wY2lBOUlITnlZMXh1SUNBZ0lDQWdJQ0F1YzNWaWMzUnlhVzVuS0d4akxteHBibVZUZEdGeWRITmJiR2x1WlNBdElERmRMQ0JzWXk1c2FXNWxVM1JoY25SelcyeHBibVZkS1Z4dUlDQWdJQ0FnSUNBdWNtVndiR0ZqWlNndlcxeGNibHhjY2wwckpDOHNJQ2NuS1R0Y2JpQWdJQ0F2THlCVWNtbHRJSFJ2SUcxaGVDQTRNQ0JqYUdGeWN5d2dhMlZsY0dsdVp5QmpiMndnY0c5emFYUnBiMjRnYm1WaGNpQjBhR1VnYldsa1pHeGxYRzRnSUNBZ2FXWWdLR05wSUQ0OUlEWXdJQ1ltSUd4cGJtVlRkSEl1YkdWdVozUm9JRDRnT0RBcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RISnBiVk4wWVhKMElEMGdUV0YwYUM1dGFXNG9ZMmtnTFNBek9Td2diR2x1WlZOMGNpNXNaVzVuZEdnZ0xTQTNPU2s3WEc0Z0lDQWdJQ0FnSUd4cGJtVlRkSElnUFNBblhIVXlNREkySnlBcklHeHBibVZUZEhJdWMzVmljM1J5YVc1bktIUnlhVzFUZEdGeWRDazdYRzRnSUNBZ0lDQWdJR05wSUMwOUlIUnlhVzFUZEdGeWRDQXRJREU3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hzYVc1bFUzUnlMbXhsYm1kMGFDQStJRGd3S1Z4dUlDQWdJQ0FnSUNCc2FXNWxVM1J5SUQwZ2JHbHVaVk4wY2k1emRXSnpkSEpwYm1jb01Dd2dOemtwSUNzZ0oxeDFNakF5TmljN1hHNGdJQ0FnTHk4Z1NXNWpiSFZrWlNCd2NtVjJhVzkxY3lCc2FXNWxJR2x1SUdOdmJuUmxlSFFnYVdZZ2NHOXBiblJwYm1jZ1lYUWdiR2x1WlNCemRHRnlkRnh1SUNBZ0lHbG1JQ2hzYVc1bElENGdNU0FtSmlBdlhpQXFKQzh1ZEdWemRDaHNhVzVsVTNSeUxuTjFZbk4wY21sdVp5Z3dMQ0JqYVNrcEtTQjdYRzRnSUNBZ0lDQWdJQzh2SUZKbFoyVjRjQ0IzYjI0bmRDQnRZWFJqYUNCcFppQnpkR0Z5ZENCcGN5QjBjbWx0YldWa1hHNGdJQ0FnSUNBZ0lHeGxkQ0J3Y21WMklEMGdjM0pqTG5OMVluTjBjbWx1Wnloc1l5NXNhVzVsVTNSaGNuUnpXMnhwYm1VZ0xTQXlYU3dnYkdNdWJHbHVaVk4wWVhKMGMxdHNhVzVsSUMwZ01WMHBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NISmxkaTVzWlc1bmRHZ2dQaUE0TUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEJ5WlhZZ1BTQndjbVYyTG5OMVluTjBjbWx1Wnlnd0xDQTNPU2tnS3lBblhIVXlNREkyWEZ4dUp6dGNiaUFnSUNBZ0lDQWdiR2x1WlZOMGNpQTlJSEJ5WlhZZ0t5QnNhVzVsVTNSeU8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0wxdGVJRjB2TG5SbGMzUW9iR2x1WlZOMGNpa3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElHTnZkVzUwSUQwZ01UdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pXNWtJRDBnWlhKeWIzSXViR2x1WlZCdmMxc3hYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHVnVaQ0FtSmlCbGJtUXViR2x1WlNBOVBUMGdiR2x1WlNBbUppQmxibVF1WTI5c0lENGdZMjlzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjNWdWRDQTlJRTFoZEdndWJXRjRLREVzSUUxaGRHZ3ViV2x1S0dWdVpDNWpiMndnTFNCamIyd3NJRGd3SUMwZ1kya3BLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjJsdWRHVnlJRDBnSnlBbkxuSmxjR1ZoZENoamFTa2dLeUFuWGljdWNtVndaV0YwS0dOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnWlhKeWIzSXViV1Z6YzJGblpTQXJQU0JnT2x4Y2JseGNiaVI3YkdsdVpWTjBjbjFjWEc0a2UzQnZhVzUwWlhKOVhGeHVZRHRjYmlBZ0lDQjlYRzU5TzF4dVhHNWxlSEJ2Y25RZ2V5QlpRVTFNUlhKeWIzSXNJRmxCVFV4UVlYSnpaVVZ5Y205eUxDQlpRVTFNVjJGeWJtbHVaeXdnY0hKbGRIUnBabmxGY25KdmNpQjlPMXh1SWl3Z0ltWjFibU4wYVc5dUlISmxjMjlzZG1WUWNtOXdjeWgwYjJ0bGJuTXNJSHNnWm14dmR5d2dhVzVrYVdOaGRHOXlMQ0J1WlhoMExDQnZabVp6WlhRc0lHOXVSWEp5YjNJc0lIQmhjbVZ1ZEVsdVpHVnVkQ3dnYzNSaGNuUlBiazVsZDJ4cGJtVWdmU2tnZTF4dUlDQWdJR3hsZENCemNHRmpaVUpsWm05eVpTQTlJR1poYkhObE8xeHVJQ0FnSUd4bGRDQmhkRTVsZDJ4cGJtVWdQU0J6ZEdGeWRFOXVUbVYzYkdsdVpUdGNiaUFnSUNCc1pYUWdhR0Z6VTNCaFkyVWdQU0J6ZEdGeWRFOXVUbVYzYkdsdVpUdGNiaUFnSUNCc1pYUWdZMjl0YldWdWRDQTlJQ2NuTzF4dUlDQWdJR3hsZENCamIyMXRaVzUwVTJWd0lEMGdKeWM3WEc0Z0lDQWdiR1YwSUdoaGMwNWxkMnhwYm1VZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JzWlhRZ2NtVnhVM0JoWTJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JzWlhRZ2RHRmlJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdZVzVqYUc5eUlEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ2RHRm5JRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdibVYzYkdsdVpVRm1kR1Z5VUhKdmNDQTlJRzUxYkd3N1hHNGdJQ0FnYkdWMElHTnZiVzFoSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnWm05MWJtUWdQU0J1ZFd4c08xeHVJQ0FnSUd4bGRDQnpkR0Z5ZENBOUlHNTFiR3c3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0IwYjJ0bGJpQnZaaUIwYjJ0bGJuTXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tISmxjVk53WVdObEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kRzlyWlc0dWRIbHdaU0FoUFQwZ0ozTndZV05sSnlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZhMlZ1TG5SNWNHVWdJVDA5SUNkdVpYZHNhVzVsSnlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZhMlZ1TG5SNWNHVWdJVDA5SUNkamIyMXRZU2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpNXZabVp6WlhRc0lDZE5TVk5UU1U1SFgwTklRVkluTENBblZHRm5jeUJoYm1RZ1lXNWphRzl5Y3lCdGRYTjBJR0psSUhObGNHRnlZWFJsWkNCbWNtOXRJSFJvWlNCdVpYaDBJSFJ2YTJWdUlHSjVJSGRvYVhSbElITndZV05sSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhGVGNHRmpaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBZV0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaGRFNWxkMnhwYm1VZ0ppWWdkRzlyWlc0dWRIbHdaU0FoUFQwZ0oyTnZiVzFsYm5RbklDWW1JSFJ2YTJWdUxuUjVjR1VnSVQwOUlDZHVaWGRzYVc1bEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9kR0ZpTENBblZFRkNYMEZUWDBsT1JFVk9WQ2NzSUNkVVlXSnpJR0Z5WlNCdWIzUWdZV3hzYjNkbFpDQmhjeUJwYm1SbGJuUmhkR2x2YmljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR0ZpSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hSdmEyVnVMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM053WVdObEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJCZENCMGFHVWdaRzlqSUd4bGRtVnNMQ0IwWVdKeklHRjBJR3hwYm1VZ2MzUmhjblFnYldGNUlHSmxJSEJoY25ObFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJR0Z6SUd4bFlXUnBibWNnZDJocGRHVWdjM0JoWTJVZ2NtRjBhR1Z5SUhSb1lXNGdhVzVrWlc1MFlYUnBiMjR1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1NXNGdZU0JtYkc5M0lHTnZiR3hsWTNScGIyNHNJRzl1YkhrZ2RHaGxJSEJoY25ObGNpQm9ZVzVrYkdWeklHbHVaR1Z1ZEM1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV1pzYjNjZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0dsdVpHbGpZWFJ2Y2lBaFBUMGdKMlJ2WXkxemRHRnlkQ2NnZkh3Z2JtVjRkRDh1ZEhsd1pTQWhQVDBnSjJac2IzY3RZMjlzYkdWamRHbHZiaWNwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdUxuTnZkWEpqWlM1cGJtTnNkV1JsY3lnblhGeDBKeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR0ZpSUQwZ2RHOXJaVzQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdoaGMxTndZV05sSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMk52YlcxbGJuUW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRm9ZWE5UY0dGalpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpd2dKMDFKVTFOSlRrZGZRMGhCVWljc0lDZERiMjF0Wlc1MGN5QnRkWE4wSUdKbElITmxjR0Z5WVhSbFpDQm1jbTl0SUc5MGFHVnlJSFJ2YTJWdWN5QmllU0IzYUdsMFpTQnpjR0ZqWlNCamFHRnlZV04wWlhKekp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kySWdQU0IwYjJ0bGJpNXpiM1Z5WTJVdWMzVmljM1J5YVc1bktERXBJSHg4SUNjZ0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdOdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiVzFsYm5RZ1BTQmpZanRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdLejBnWTI5dGJXVnVkRk5sY0NBcklHTmlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUlRaWEFnUFNBbkp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhkRTVsZDJ4cGJtVWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjI1bGQyeHBibVVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGhkRTVsZDJ4cGJtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR052YlcxbGJuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF0Wlc1MElDczlJSFJ2YTJWdUxuTnZkWEpqWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNCaFkyVkNaV1p2Y21VZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJXMWxiblJUWlhBZ0t6MGdkRzlyWlc0dWMyOTFjbU5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGMFRtVjNiR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelRtVjNiR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHRnVZMmh2Y2lCOGZDQjBZV2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxkMnhwYm1WQlpuUmxjbEJ5YjNBZ1BTQjBiMnRsYmp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1lYTlRjR0ZqWlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RoYm1Ob2IzSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaGJtTm9iM0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHOXJaVzRzSUNkTlZVeFVTVkJNUlY5QlRrTklUMUpUSnl3Z0owRWdibTlrWlNCallXNGdhR0YyWlNCaGRDQnRiM04wSUc5dVpTQmhibU5vYjNJbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEc5clpXNHVjMjkxY21ObExtVnVaSE5YYVhSb0tDYzZKeWtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHOXJaVzR1YjJabWMyVjBJQ3NnZEc5clpXNHVjMjkxY21ObExteGxibWQwYUNBdElERXNJQ2RDUVVSZlFVeEpRVk1uTENBblFXNWphRzl5SUdWdVpHbHVaeUJwYmlBNklHbHpJR0Z0WW1sbmRXOTFjeWNzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z1WTJodmNpQTlJSFJ2YTJWdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6ZEdGeWRDQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGNuUWdQU0IwYjJ0bGJpNXZabVp6WlhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYUk9aWGRzYVc1bElEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnpVM0JoWTJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYRlRjR0ZqWlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2QwWVdjbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSaFp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpd2dKMDFWVEZSSlVFeEZYMVJCUjFNbkxDQW5RU0J1YjJSbElHTmhiaUJvWVhabElHRjBJRzF2YzNRZ2IyNWxJSFJoWnljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmhaeUE5SUhSdmEyVnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoemRHRnlkQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblFnUFNCMGIydGxiaTV2Wm1aelpYUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZWFJPWlhkc2FXNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhR0Z6VTNCaFkyVWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEZUY0dGalpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJR2x1WkdsallYUnZjanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCRGIzVnNaQ0JvWlhKbElHaGhibVJzWlNCd2NtVmpaV1JwYm1jZ1kyOXRiV1Z1ZEhNZ1pHbG1abVZ5Wlc1MGJIbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVc1amFHOXlJSHg4SUhSaFp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwYjJ0bGJpd2dKMEpCUkY5UVVrOVFYMDlTUkVWU0p5d2dZRUZ1WTJodmNuTWdZVzVrSUhSaFozTWdiWFZ6ZENCaVpTQmhablJsY2lCMGFHVWdKSHQwYjJ0bGJpNXpiM1Z5WTJWOUlHbHVaR2xqWVhSdmNtQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobWIzVnVaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaXdnSjFWT1JWaFFSVU5VUlVSZlZFOUxSVTRuTENCZ1ZXNWxlSEJsWTNSbFpDQWtlM1J2YTJWdUxuTnZkWEpqWlgwZ2FXNGdKSHRtYkc5M0lEOC9JQ2RqYjJ4c1pXTjBhVzl1SjMxZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM1Z1WkNBOUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGMFRtVjNiR2x1WlNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdsallYUnZjaUE5UFQwZ0ozTmxjUzFwZEdWdExXbHVaQ2NnZkh3Z2FXNWthV05oZEc5eUlEMDlQU0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelUzQmhZMlVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMk52YlcxaEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWm14dmR5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMjl0YldFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hSdmEyVnVMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUdCVmJtVjRjR1ZqZEdWa0lDd2dhVzRnSkh0bWJHOTNmV0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF0WVNBOUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhkRTVsZDJ4cGJtVWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelUzQmhZMlVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWld4elpTQm1ZV3hzZEdoeWIzVm5hRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hSdmEyVnVMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUdCVmJtVjRjR1ZqZEdWa0lDUjdkRzlyWlc0dWRIbHdaWDBnZEc5clpXNWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZEU1bGQyeHBibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JvWVhOVGNHRmpaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUd4aGMzUWdQU0IwYjJ0bGJuTmJkRzlyWlc1ekxteGxibWQwYUNBdElERmRPMXh1SUNBZ0lHTnZibk4wSUdWdVpDQTlJR3hoYzNRZ1B5QnNZWE4wTG05bVpuTmxkQ0FySUd4aGMzUXVjMjkxY21ObExteGxibWQwYUNBNklHOW1abk5sZER0Y2JpQWdJQ0JwWmlBb2NtVnhVM0JoWTJVZ0ppWmNiaUFnSUNBZ0lDQWdibVY0ZENBbUpseHVJQ0FnSUNBZ0lDQnVaWGgwTG5SNWNHVWdJVDA5SUNkemNHRmpaU2NnSmlaY2JpQWdJQ0FnSUNBZ2JtVjRkQzUwZVhCbElDRTlQU0FuYm1WM2JHbHVaU2NnSmlaY2JpQWdJQ0FnSUNBZ2JtVjRkQzUwZVhCbElDRTlQU0FuWTI5dGJXRW5JQ1ltWEc0Z0lDQWdJQ0FnSUNodVpYaDBMblI1Y0dVZ0lUMDlJQ2R6WTJGc1lYSW5JSHg4SUc1bGVIUXVjMjkxY21ObElDRTlQU0FuSnlrcElIdGNiaUFnSUNBZ0lDQWdiMjVGY25KdmNpaHVaWGgwTG05bVpuTmxkQ3dnSjAxSlUxTkpUa2RmUTBoQlVpY3NJQ2RVWVdkeklHRnVaQ0JoYm1Ob2IzSnpJRzExYzNRZ1ltVWdjMlZ3WVhKaGRHVmtJR1p5YjIwZ2RHaGxJRzVsZUhRZ2RHOXJaVzRnWW5rZ2QyaHBkR1VnYzNCaFkyVW5LVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSFJoWWlBbUpseHVJQ0FnSUNBZ0lDQW9LR0YwVG1WM2JHbHVaU0FtSmlCMFlXSXVhVzVrWlc1MElEdzlJSEJoY21WdWRFbHVaR1Z1ZENrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUc1bGVIUS9MblI1Y0dVZ1BUMDlJQ2RpYkc5amF5MXRZWEFuSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFB5NTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGMyVnhKeWtwWEc0Z0lDQWdJQ0FnSUc5dVJYSnliM0lvZEdGaUxDQW5WRUZDWDBGVFgwbE9SRVZPVkNjc0lDZFVZV0p6SUdGeVpTQnViM1FnWVd4c2IzZGxaQ0JoY3lCcGJtUmxiblJoZEdsdmJpY3BPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lHTnZiVzFoTEZ4dUlDQWdJQ0FnSUNCbWIzVnVaQ3hjYmlBZ0lDQWdJQ0FnYzNCaFkyVkNaV1p2Y21Vc1hHNGdJQ0FnSUNBZ0lHTnZiVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lHaGhjMDVsZDJ4cGJtVXNYRzRnSUNBZ0lDQWdJR0Z1WTJodmNpeGNiaUFnSUNBZ0lDQWdkR0ZuTEZ4dUlDQWdJQ0FnSUNCdVpYZHNhVzVsUVdaMFpYSlFjbTl3TEZ4dUlDQWdJQ0FnSUNCbGJtUXNYRzRnSUNBZ0lDQWdJSE4wWVhKME9pQnpkR0Z5ZENBL1B5QmxibVJjYmlBZ0lDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QnlaWE52YkhabFVISnZjSE1nZlR0Y2JpSXNJQ0ptZFc1amRHbHZiaUJqYjI1MFlXbHVjMDVsZDJ4cGJtVW9hMlY1S1NCN1hHNGdJQ0FnYVdZZ0tDRnJaWGtwWEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUhOM2FYUmphQ0FvYTJWNUxuUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWVd4cFlYTW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZHpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNka2IzVmliR1V0Y1hWdmRHVmtMWE5qWVd4aGNpYzZYRzRnSUNBZ0lDQWdJR05oYzJVZ0ozTnBibWRzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hyWlhrdWMyOTFjbU5sTG1sdVkyeDFaR1Z6S0NkY1hHNG5LU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYa3VaVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2MzUWdiMllnYTJWNUxtVnVaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE4wTG5SNWNHVWdQVDA5SUNkdVpYZHNhVzVsSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNkbWJHOTNMV052Ykd4bFkzUnBiMjRuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JwZENCdlppQnJaWGt1YVhSbGJYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhOMElHOW1JR2wwTG5OMFlYSjBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM1F1ZEhsd1pTQTlQVDBnSjI1bGQyeHBibVVuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwTG5ObGNDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCemRDQnZaaUJwZEM1elpYQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNRdWRIbHdaU0E5UFQwZ0oyNWxkMnhwYm1VbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpiMjUwWVdsdWMwNWxkMnhwYm1Vb2FYUXVhMlY1S1NCOGZDQmpiMjUwWVdsdWMwNWxkMnhwYm1Vb2FYUXVkbUZzZFdVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lIMWNibjFjYmx4dVpYaHdiM0owSUhzZ1kyOXVkR0ZwYm5OT1pYZHNhVzVsSUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnWTI5dWRHRnBibk5PWlhkc2FXNWxJSDBnWm5KdmJTQW5MaTkxZEdsc0xXTnZiblJoYVc1ekxXNWxkMnhwYm1VdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCbWJHOTNTVzVrWlc1MFEyaGxZMnNvYVc1a1pXNTBMQ0JtWXl3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUdsbUlDaG1Zejh1ZEhsd1pTQTlQVDBnSjJac2IzY3RZMjlzYkdWamRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a0lEMGdabU11Wlc1a1d6QmRPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pXNWtMbWx1WkdWdWRDQTlQVDBnYVc1a1pXNTBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQW9aVzVrTG5OdmRYSmpaU0E5UFQwZ0oxMG5JSHg4SUdWdVpDNXpiM1Z5WTJVZ1BUMDlJQ2Q5SnlrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuUmhhVzV6VG1WM2JHbHVaU2htWXlrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzF6WnlBOUlDZEdiRzkzSUdWdVpDQnBibVJwWTJGMGIzSWdjMmh2ZFd4a0lHSmxJRzF2Y21VZ2FXNWtaVzUwWldRZ2RHaGhiaUJ3WVhKbGJuUW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2lobGJtUXNJQ2RDUVVSZlNVNUVSVTVVSnl3Z2JYTm5MQ0IwY25WbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibjFjYmx4dVpYaHdiM0owSUhzZ1pteHZkMGx1WkdWdWRFTm9aV05ySUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYVhOVFkyRnNZWElnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlwWkdWdWRHbDBlUzVxY3ljN1hHNWNibVoxYm1OMGFXOXVJRzFoY0VsdVkyeDFaR1Z6S0dOMGVDd2dhWFJsYlhNc0lITmxZWEpqYUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnZFc1cGNYVmxTMlY1Y3lCOUlEMGdZM1I0TG05d2RHbHZibk03WEc0Z0lDQWdhV1lnS0hWdWFYRjFaVXRsZVhNZ1BUMDlJR1poYkhObEtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdZMjl1YzNRZ2FYTkZjWFZoYkNBOUlIUjVjR1Z2WmlCMWJtbHhkV1ZMWlhseklEMDlQU0FuWm5WdVkzUnBiMjRuWEc0Z0lDQWdJQ0FnSUQ4Z2RXNXBjWFZsUzJWNWMxeHVJQ0FnSUNBZ0lDQTZJQ2hoTENCaUtTQTlQaUJoSUQwOVBTQmlJSHg4SUNocGMxTmpZV3hoY2loaEtTQW1KaUJwYzFOallXeGhjaWhpS1NBbUppQmhMblpoYkhWbElEMDlQU0JpTG5aaGJIVmxLVHRjYmlBZ0lDQnlaWFIxY200Z2FYUmxiWE11YzI5dFpTaHdZV2x5SUQwK0lHbHpSWEYxWVd3b2NHRnBjaTVyWlhrc0lITmxZWEpqYUNrcE8xeHVmVnh1WEc1bGVIQnZjblFnZXlCdFlYQkpibU5zZFdSbGN5QjlPMXh1SWl3Z0ltbHRjRzl5ZENCN0lGQmhhWElnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlRWVdseUxtcHpKenRjYm1sdGNHOXlkQ0I3SUZsQlRVeE5ZWEFnZlNCbWNtOXRJQ2N1TGk5dWIyUmxjeTlaUVUxTVRXRndMbXB6Snp0Y2JtbHRjRzl5ZENCN0lISmxjMjlzZG1WUWNtOXdjeUI5SUdaeWIyMGdKeTR2Y21WemIyeDJaUzF3Y205d2N5NXFjeWM3WEc1cGJYQnZjblFnZXlCamIyNTBZV2x1YzA1bGQyeHBibVVnZlNCbWNtOXRJQ2N1TDNWMGFXd3RZMjl1ZEdGcGJuTXRibVYzYkdsdVpTNXFjeWM3WEc1cGJYQnZjblFnZXlCbWJHOTNTVzVrWlc1MFEyaGxZMnNnZlNCbWNtOXRJQ2N1TDNWMGFXd3RabXh2ZHkxcGJtUmxiblF0WTJobFkyc3Vhbk1uTzF4dWFXMXdiM0owSUhzZ2JXRndTVzVqYkhWa1pYTWdmU0JtY205dElDY3VMM1YwYVd3dGJXRndMV2x1WTJ4MVpHVnpMbXB6Snp0Y2JseHVZMjl1YzNRZ2MzUmhjblJEYjJ4TmMyY2dQU0FuUVd4c0lHMWhjSEJwYm1jZ2FYUmxiWE1nYlhWemRDQnpkR0Z5ZENCaGRDQjBhR1VnYzJGdFpTQmpiMngxYlc0bk8xeHVablZ1WTNScGIyNGdjbVZ6YjJ4MlpVSnNiMk5yVFdGd0tIc2dZMjl0Y0c5elpVNXZaR1VzSUdOdmJYQnZjMlZGYlhCMGVVNXZaR1VnZlN3Z1kzUjRMQ0JpYlN3Z2IyNUZjbkp2Y2l3Z2RHRm5LU0I3WEc0Z0lDQWdZMjl1YzNRZ1RtOWtaVU5zWVhOeklEMGdkR0ZuUHk1dWIyUmxRMnhoYzNNZ1B6OGdXVUZOVEUxaGNEdGNiaUFnSUNCamIyNXpkQ0J0WVhBZ1BTQnVaWGNnVG05a1pVTnNZWE56S0dOMGVDNXpZMmhsYldFcE8xeHVJQ0FnSUdsbUlDaGpkSGd1WVhSU2IyOTBLVnh1SUNBZ0lDQWdJQ0JqZEhndVlYUlNiMjkwSUQwZ1ptRnNjMlU3WEc0Z0lDQWdiR1YwSUc5bVpuTmxkQ0E5SUdKdExtOW1abk5sZER0Y2JpQWdJQ0JzWlhRZ1kyOXRiV1Z1ZEVWdVpDQTlJRzUxYkd3N1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamIyeHNTWFJsYlNCdlppQmliUzVwZEdWdGN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJSE4wWVhKMExDQnJaWGtzSUhObGNDd2dkbUZzZFdVZ2ZTQTlJR052Ykd4SmRHVnRPMXh1SUNBZ0lDQWdJQ0F2THlCclpYa2djSEp2Y0dWeWRHbGxjMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnJaWGxRY205d2N5QTlJSEpsYzI5c2RtVlFjbTl3Y3loemRHRnlkQ3dnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrYVdOaGRHOXlPaUFuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGgwT2lCclpYa2dQejhnYzJWd1B5NWJNRjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NHRnlaVzUwU1c1a1pXNTBPaUJpYlM1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkR0Z5ZEU5dVRtVjNiR2x1WlRvZ2RISjFaVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVcxd2JHbGphWFJMWlhrZ1BTQWhhMlY1VUhKdmNITXVabTkxYm1RN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYlhCc2FXTnBkRXRsZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHdGxlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGt1ZEhsd1pTQTlQVDBnSjJKc2IyTnJMWE5sY1NjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9iMlptYzJWMExDQW5Ra3hQUTB0ZlFWTmZTVTFRVEVsRFNWUmZTMFZaSnl3Z0owRWdZbXh2WTJzZ2MyVnhkV1Z1WTJVZ2JXRjVJRzV2ZENCaVpTQjFjMlZrSUdGeklHRnVJR2x0Y0d4cFkybDBJRzFoY0NCclpYa25LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2duYVc1a1pXNTBKeUJwYmlCclpYa2dKaVlnYTJWNUxtbHVaR1Z1ZENBaFBUMGdZbTB1YVc1a1pXNTBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0c5bVpuTmxkQ3dnSjBKQlJGOUpUa1JGVGxRbkxDQnpkR0Z5ZEVOdmJFMXpaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV3RsZVZCeWIzQnpMbUZ1WTJodmNpQW1KaUFoYTJWNVVISnZjSE11ZEdGbklDWW1JQ0Z6WlhBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF0Wlc1MFJXNWtJRDBnYTJWNVVISnZjSE11Wlc1a08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hyWlhsUWNtOXdjeTVqYjIxdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h0WVhBdVkyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNDNWpiMjF0Wlc1MElDczlJQ2RjWEc0bklDc2dhMlY1VUhKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRndMbU52YlcxbGJuUWdQU0JyWlhsUWNtOXdjeTVqYjIxdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJaWGxRY205d2N5NXVaWGRzYVc1bFFXWjBaWEpRY205d0lIeDhJR052Ym5SaGFXNXpUbVYzYkdsdVpTaHJaWGtwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loclpYa2dQejhnYzNSaGNuUmJjM1JoY25RdWJHVnVaM1JvSUMwZ01WMHNJQ2ROVlV4VVNVeEpUa1ZmU1UxUVRFbERTVlJmUzBWWkp5d2dKMGx0Y0d4cFkybDBJR3RsZVhNZ2JtVmxaQ0IwYnlCaVpTQnZiaUJoSUhOcGJtZHNaU0JzYVc1bEp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hMlY1VUhKdmNITXVabTkxYm1RL0xtbHVaR1Z1ZENBaFBUMGdZbTB1YVc1a1pXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHOW1abk5sZEN3Z0owSkJSRjlKVGtSRlRsUW5MQ0J6ZEdGeWRFTnZiRTF6WnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdMeThnYTJWNUlIWmhiSFZsWEc0Z0lDQWdJQ0FnSUdOMGVDNWhkRXRsZVNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3RsZVZOMFlYSjBJRDBnYTJWNVVISnZjSE11Wlc1a08xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCclpYbE9iMlJsSUQwZ2EyVjVYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lHTnZiWEJ2YzJWT2IyUmxLR04wZUN3Z2EyVjVMQ0JyWlhsUWNtOXdjeXdnYjI1RmNuSnZjaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dZMjl0Y0c5elpVVnRjSFI1VG05a1pTaGpkSGdzSUd0bGVWTjBZWEowTENCemRHRnlkQ3dnYm5Wc2JDd2dhMlY1VUhKdmNITXNJRzl1UlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbk5qYUdWdFlTNWpiMjF3WVhRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JtYkc5M1NXNWtaVzUwUTJobFkyc29ZbTB1YVc1a1pXNTBMQ0JyWlhrc0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQmpkSGd1WVhSTFpYa2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdhV1lnS0cxaGNFbHVZMngxWkdWektHTjBlQ3dnYldGd0xtbDBaVzF6TENCclpYbE9iMlJsS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9hMlY1VTNSaGNuUXNJQ2RFVlZCTVNVTkJWRVZmUzBWWkp5d2dKMDFoY0NCclpYbHpJRzExYzNRZ1ltVWdkVzVwY1hWbEp5azdYRzRnSUNBZ0lDQWdJQzh2SUhaaGJIVmxJSEJ5YjNCbGNuUnBaWE5jYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzZFdWUWNtOXdjeUE5SUhKbGMyOXNkbVZRY205d2N5aHpaWEFnUHo4Z1cxMHNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dKMjFoY0MxMllXeDFaUzFwYm1RbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WNGREb2dkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJR3RsZVU1dlpHVXVjbUZ1WjJWYk1sMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MFNXNWtaVzUwT2lCaWJTNXBibVJsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRFOXVUbVYzYkdsdVpUb2dJV3RsZVNCOGZDQnJaWGt1ZEhsd1pTQTlQVDBnSjJKc2IyTnJMWE5qWVd4aGNpZGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUc5bVpuTmxkQ0E5SUhaaGJIVmxVSEp2Y0hNdVpXNWtPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RtRnNkV1ZRY205d2N5NW1iM1Z1WkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHRjR3hwWTJsMFMyVjVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsUHk1MGVYQmxJRDA5UFNBbllteHZZMnN0YldGd0p5QW1KaUFoZG1Gc2RXVlFjbTl3Y3k1b1lYTk9aWGRzYVc1bEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLRzltWm5ObGRDd2dKMEpNVDBOTFgwRlRYMGxOVUV4SlEwbFVYMHRGV1Njc0lDZE9aWE4wWldRZ2JXRndjR2x1WjNNZ1lYSmxJRzV2ZENCaGJHeHZkMlZrSUdsdUlHTnZiWEJoWTNRZ2JXRndjR2x1WjNNbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtOXdkR2x2Ym5NdWMzUnlhV04wSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3RsZVZCeWIzQnpMbk4wWVhKMElEd2dkbUZzZFdWUWNtOXdjeTVtYjNWdVpDNXZabVp6WlhRZ0xTQXhNREkwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHdGxlVTV2WkdVdWNtRnVaMlVzSUNkTFJWbGZUMVpGVWw4eE1ESTBYME5JUVZKVEp5d2dKMVJvWlNBNklHbHVaR2xqWVhSdmNpQnRkWE4wSUdKbElHRjBJRzF2YzNRZ01UQXlOQ0JqYUdGeWN5QmhablJsY2lCMGFHVWdjM1JoY25RZ2IyWWdZVzRnYVcxd2JHbGphWFFnWW14dlkyc2diV0Z3Y0dsdVp5QnJaWGtuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSFpoYkhWbElIWmhiSFZsWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMllXeDFaVTV2WkdVZ1BTQjJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1kyOXRjRzl6WlU1dlpHVW9ZM1I0TENCMllXeDFaU3dnZG1Gc2RXVlFjbTl3Y3l3Z2IyNUZjbkp2Y2lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHTnZiWEJ2YzJWRmJYQjBlVTV2WkdVb1kzUjRMQ0J2Wm1aelpYUXNJSE5sY0N3Z2JuVnNiQ3dnZG1Gc2RXVlFjbTl3Y3l3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kzUjRMbk5qYUdWdFlTNWpiMjF3WVhRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pteHZkMGx1WkdWdWRFTm9aV05yS0dKdExtbHVaR1Z1ZEN3Z2RtRnNkV1VzSUc5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWMElEMGdkbUZzZFdWT2IyUmxMbkpoYm1kbFd6SmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGcGNpQTlJRzVsZHlCUVlXbHlLR3RsZVU1dlpHVXNJSFpoYkhWbFRtOWtaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTNSNExtOXdkR2x2Ym5NdWEyVmxjRk52ZFhKalpWUnZhMlZ1Y3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lXbHlMbk55WTFSdmEyVnVJRDBnWTI5c2JFbDBaVzA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEF1YVhSbGJYTXVjSFZ6YUNod1lXbHlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR3RsZVNCM2FYUm9JRzV2SUhaaGJIVmxYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hVzF3YkdsamFYUkxaWGtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWhyWlhsT2IyUmxMbkpoYm1kbExDQW5UVWxUVTBsT1IxOURTRUZTSnl3Z0owbHRjR3hwWTJsMElHMWhjQ0JyWlhseklHNWxaV1FnZEc4Z1ltVWdabTlzYkc5M1pXUWdZbmtnYldGd0lIWmhiSFZsY3ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsVUhKdmNITXVZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbE9iMlJsTG1OdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlVTV2WkdVdVkyOXRiV1Z1ZENBclBTQW5YRnh1SnlBcklIWmhiSFZsVUhKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlVTV2WkdVdVkyOXRiV1Z1ZENBOUlIWmhiSFZsVUhKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQmhhWElnUFNCdVpYY2dVR0ZwY2loclpYbE9iMlJsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamRIZ3ViM0IwYVc5dWN5NXJaV1Z3VTI5MWNtTmxWRzlyWlc1ektWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhhWEl1YzNKalZHOXJaVzRnUFNCamIyeHNTWFJsYlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV3ZFhOb0tIQmhhWElwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoamIyMXRaVzUwUlc1a0lDWW1JR052YlcxbGJuUkZibVFnUENCdlptWnpaWFFwWEc0Z0lDQWdJQ0FnSUc5dVJYSnliM0lvWTI5dGJXVnVkRVZ1WkN3Z0owbE5VRTlUVTBsQ1RFVW5MQ0FuVFdGd0lHTnZiVzFsYm5RZ2QybDBhQ0IwY21GcGJHbHVaeUJqYjI1MFpXNTBKeWs3WEc0Z0lDQWdiV0Z3TG5KaGJtZGxJRDBnVzJKdExtOW1abk5sZEN3Z2IyWm1jMlYwTENCamIyMXRaVzUwUlc1a0lEOC9JRzltWm5ObGRGMDdYRzRnSUNBZ2NtVjBkWEp1SUcxaGNEdGNibjFjYmx4dVpYaHdiM0owSUhzZ2NtVnpiMngyWlVKc2IyTnJUV0Z3SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnV1VGTlRGTmxjU0I5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMWxCVFV4VFpYRXVhbk1uTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMWEJ5YjNCekxtcHpKenRjYm1sdGNHOXlkQ0I3SUdac2IzZEpibVJsYm5SRGFHVmpheUI5SUdaeWIyMGdKeTR2ZFhScGJDMW1iRzkzTFdsdVpHVnVkQzFqYUdWamF5NXFjeWM3WEc1Y2JtWjFibU4wYVc5dUlISmxjMjlzZG1WQ2JHOWphMU5sY1NoN0lHTnZiWEJ2YzJWT2IyUmxMQ0JqYjIxd2IzTmxSVzF3ZEhsT2IyUmxJSDBzSUdOMGVDd2dZbk1zSUc5dVJYSnliM0lzSUhSaFp5a2dlMXh1SUNBZ0lHTnZibk4wSUU1dlpHVkRiR0Z6Y3lBOUlIUmhaejh1Ym05a1pVTnNZWE56SUQ4L0lGbEJUVXhUWlhFN1hHNGdJQ0FnWTI5dWMzUWdjMlZ4SUQwZ2JtVjNJRTV2WkdWRGJHRnpjeWhqZEhndWMyTm9aVzFoS1R0Y2JpQWdJQ0JwWmlBb1kzUjRMbUYwVW05dmRDbGNiaUFnSUNBZ0lDQWdZM1I0TG1GMFVtOXZkQ0E5SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hqZEhndVlYUkxaWGtwWEc0Z0lDQWdJQ0FnSUdOMGVDNWhkRXRsZVNBOUlHWmhiSE5sTzF4dUlDQWdJR3hsZENCdlptWnpaWFFnUFNCaWN5NXZabVp6WlhRN1hHNGdJQ0FnYkdWMElHTnZiVzFsYm5SRmJtUWdQU0J1ZFd4c08xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2V5QnpkR0Z5ZEN3Z2RtRnNkV1VnZlNCdlppQmljeTVwZEdWdGN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndjbTl3Y3lBOUlISmxjMjlzZG1WUWNtOXdjeWh6ZEdGeWRDd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNWthV05oZEc5eU9pQW5jMlZ4TFdsMFpXMHRhVzVrSnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzVsZUhRNklIWmhiSFZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhjbVZ1ZEVsdVpHVnVkRG9nWW5NdWFXNWtaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1JoY25SUGJrNWxkMnhwYm1VNklIUnlkV1ZjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doY0hKdmNITXVabTkxYm1RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHdjbTl3Y3k1aGJtTm9iM0lnZkh3Z2NISnZjSE11ZEdGbklIeDhJSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haaGJIVmxJQ1ltSUhaaGJIVmxMblI1Y0dVZ1BUMDlJQ2RpYkc5amF5MXpaWEVuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIQnliM0J6TG1WdVpDd2dKMEpCUkY5SlRrUkZUbFFuTENBblFXeHNJSE5sY1hWbGJtTmxJR2wwWlcxeklHMTFjM1FnYzNSaGNuUWdZWFFnZEdobElITmhiV1VnWTI5c2RXMXVKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLRzltWm5ObGRDd2dKMDFKVTFOSlRrZGZRMGhCVWljc0lDZFRaWEYxWlc1alpTQnBkR1Z0SUhkcGRHaHZkWFFnTFNCcGJtUnBZMkYwYjNJbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiVzFsYm5SRmJtUWdQU0J3Y205d2N5NWxibVE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQnliM0J6TG1OdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjUzVqYjIxdFpXNTBJRDBnY0hKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnZG1Gc2RXVmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1kyOXRjRzl6WlU1dlpHVW9ZM1I0TENCMllXeDFaU3dnY0hKdmNITXNJRzl1UlhKeWIzSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBNklHTnZiWEJ2YzJWRmJYQjBlVTV2WkdVb1kzUjRMQ0J3Y205d2N5NWxibVFzSUhOMFlYSjBMQ0J1ZFd4c0xDQndjbTl3Y3l3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqZEhndWMyTm9aVzFoTG1OdmJYQmhkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnNiM2RKYm1SbGJuUkRhR1ZqYXloaWN5NXBibVJsYm5Rc0lIWmhiSFZsTENCdmJrVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ2IyWm1jMlYwSUQwZ2JtOWtaUzV5WVc1blpWc3lYVHRjYmlBZ0lDQWdJQ0FnYzJWeExtbDBaVzF6TG5CMWMyZ29ibTlrWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSE5sY1M1eVlXNW5aU0E5SUZ0aWN5NXZabVp6WlhRc0lHOW1abk5sZEN3Z1kyOXRiV1Z1ZEVWdVpDQS9QeUJ2Wm1aelpYUmRPMXh1SUNBZ0lISmxkSFZ5YmlCelpYRTdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lISmxjMjlzZG1WQ2JHOWphMU5sY1NCOU8xeHVJaXdnSW1aMWJtTjBhVzl1SUhKbGMyOXNkbVZGYm1Rb1pXNWtMQ0J2Wm1aelpYUXNJSEpsY1ZOd1lXTmxMQ0J2YmtWeWNtOXlLU0I3WEc0Z0lDQWdiR1YwSUdOdmJXMWxiblFnUFNBbkp6dGNiaUFnSUNCcFppQW9aVzVrS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JvWVhOVGNHRmpaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2MyVndJRDBnSnljN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdkRzlyWlc0Z2IyWWdaVzVrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjdJSE52ZFhKalpTd2dkSGx3WlNCOUlEMGdkRzlyWlc0N1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkemNHRmpaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHaGhjMU53WVdObElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXVnVkQ2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKbGNWTndZV05sSUNZbUlDRm9ZWE5UY0dGalpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHOXJaVzRzSUNkTlNWTlRTVTVIWDBOSVFWSW5MQ0FuUTI5dGJXVnVkSE1nYlhWemRDQmlaU0J6WlhCaGNtRjBaV1FnWm5KdmJTQnZkR2hsY2lCMGIydGxibk1nWW5rZ2QyaHBkR1VnYzNCaFkyVWdZMmhoY21GamRHVnljeWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCallpQTlJSE52ZFhKalpTNXpkV0p6ZEhKcGJtY29NU2tnZkh3Z0p5QW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV052YlcxbGJuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF0Wlc1MElEMGdZMkk3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdLejBnYzJWd0lDc2dZMkk3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNjbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJtVjNiR2x1WlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWd0lDczlJSE52ZFhKalpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdGelUzQmhZMlVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hSdmEyVnVMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUdCVmJtVjRjR1ZqZEdWa0lDUjdkSGx3WlgwZ1lYUWdibTlrWlNCbGJtUmdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkQ0FyUFNCemIzVnlZMlV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN0lHTnZiVzFsYm5Rc0lHOW1abk5sZENCOU8xeHVmVnh1WEc1bGVIQnZjblFnZXlCeVpYTnZiSFpsUlc1a0lIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2FYTlFZV2x5SUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dVR0ZwY2lCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDFCaGFYSXVhbk1uTzF4dWFXMXdiM0owSUhzZ1dVRk5URTFoY0NCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDFsQlRVeE5ZWEF1YW5Nbk8xeHVhVzF3YjNKMElIc2dXVUZOVEZObGNTQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwxbEJUVXhUWlhFdWFuTW5PMXh1YVcxd2IzSjBJSHNnY21WemIyeDJaVVZ1WkNCOUlHWnliMjBnSnk0dmNtVnpiMngyWlMxbGJtUXVhbk1uTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMWEJ5YjNCekxtcHpKenRjYm1sdGNHOXlkQ0I3SUdOdmJuUmhhVzV6VG1WM2JHbHVaU0I5SUdaeWIyMGdKeTR2ZFhScGJDMWpiMjUwWVdsdWN5MXVaWGRzYVc1bExtcHpKenRjYm1sdGNHOXlkQ0I3SUcxaGNFbHVZMngxWkdWeklIMGdabkp2YlNBbkxpOTFkR2xzTFcxaGNDMXBibU5zZFdSbGN5NXFjeWM3WEc1Y2JtTnZibk4wSUdKc2IyTnJUWE5uSUQwZ0owSnNiMk5ySUdOdmJHeGxZM1JwYjI1eklHRnlaU0J1YjNRZ1lXeHNiM2RsWkNCM2FYUm9hVzRnWm14dmR5QmpiMnhzWldOMGFXOXVjeWM3WEc1amIyNXpkQ0JwYzBKc2IyTnJJRDBnS0hSdmEyVnVLU0E5UGlCMGIydGxiaUFtSmlBb2RHOXJaVzR1ZEhsd1pTQTlQVDBnSjJKc2IyTnJMVzFoY0NjZ2ZId2dkRzlyWlc0dWRIbHdaU0E5UFQwZ0oySnNiMk5yTFhObGNTY3BPMXh1Wm5WdVkzUnBiMjRnY21WemIyeDJaVVpzYjNkRGIyeHNaV04wYVc5dUtIc2dZMjl0Y0c5elpVNXZaR1VzSUdOdmJYQnZjMlZGYlhCMGVVNXZaR1VnZlN3Z1kzUjRMQ0JtWXl3Z2IyNUZjbkp2Y2l3Z2RHRm5LU0I3WEc0Z0lDQWdZMjl1YzNRZ2FYTk5ZWEFnUFNCbVl5NXpkR0Z5ZEM1emIzVnlZMlVnUFQwOUlDZDdKenRjYmlBZ0lDQmpiMjV6ZENCbVkwNWhiV1VnUFNCcGMwMWhjQ0EvSUNkbWJHOTNJRzFoY0NjZ09pQW5abXh2ZHlCelpYRjFaVzVqWlNjN1hHNGdJQ0FnWTI5dWMzUWdUbTlrWlVOc1lYTnpJRDBnS0hSaFp6OHVibTlrWlVOc1lYTnpJRDgvSUNocGMwMWhjQ0EvSUZsQlRVeE5ZWEFnT2lCWlFVMU1VMlZ4S1NrN1hHNGdJQ0FnWTI5dWMzUWdZMjlzYkNBOUlHNWxkeUJPYjJSbFEyeGhjM01vWTNSNExuTmphR1Z0WVNrN1hHNGdJQ0FnWTI5c2JDNW1iRzkzSUQwZ2RISjFaVHRjYmlBZ0lDQmpiMjV6ZENCaGRGSnZiM1FnUFNCamRIZ3VZWFJTYjI5ME8xeHVJQ0FnSUdsbUlDaGhkRkp2YjNRcFhHNGdJQ0FnSUNBZ0lHTjBlQzVoZEZKdmIzUWdQU0JtWVd4elpUdGNiaUFnSUNCcFppQW9ZM1I0TG1GMFMyVjVLVnh1SUNBZ0lDQWdJQ0JqZEhndVlYUkxaWGtnUFNCbVlXeHpaVHRjYmlBZ0lDQnNaWFFnYjJabWMyVjBJRDBnWm1NdWIyWm1jMlYwSUNzZ1ptTXVjM1JoY25RdWMyOTFjbU5sTG14bGJtZDBhRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1pqTG1sMFpXMXpMbXhsYm1kMGFEc2dLeXRwS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOdmJHeEpkR1Z0SUQwZ1ptTXVhWFJsYlhOYmFWMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2djM1JoY25Rc0lHdGxlU3dnYzJWd0xDQjJZV3gxWlNCOUlEMGdZMjlzYkVsMFpXMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnliM0J6SUQwZ2NtVnpiMngyWlZCeWIzQnpLSE4wWVhKMExDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWJHOTNPaUJtWTA1aGJXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJtUnBZMkYwYjNJNklDZGxlSEJzYVdOcGRDMXJaWGt0YVc1a0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUc1bGVIUTZJR3RsZVNBL1B5QnpaWEEvTGxzd1hTeGNiaUFnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhKbGJuUkpibVJsYm5RNklHWmpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMFlYSjBUMjVPWlhkc2FXNWxPaUJtWVd4elpWeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRndjbTl3Y3k1bWIzVnVaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGd2NtOXdjeTVoYm1Ob2IzSWdKaVlnSVhCeWIzQnpMblJoWnlBbUppQWhjMlZ3SUNZbUlDRjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwSUQwOVBTQXdJQ1ltSUhCeWIzQnpMbU52YlcxaEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLSEJ5YjNCekxtTnZiVzFoTENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQlZibVY0Y0dWamRHVmtJQ3dnYVc0Z0pIdG1ZMDVoYldWOVlDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9hU0E4SUdaakxtbDBaVzF6TG14bGJtZDBhQ0F0SURFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9jSEp2Y0hNdWMzUmhjblFzSUNkVlRrVllVRVZEVkVWRVgxUlBTMFZPSnl3Z1lGVnVaWGh3WldOMFpXUWdaVzF3ZEhrZ2FYUmxiU0JwYmlBa2UyWmpUbUZ0WlgxZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0hKdmNITXVZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMjlzYkM1amIyMXRaVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5c2JDNWpiMjF0Wlc1MElDczlJQ2RjWEc0bklDc2djSEp2Y0hNdVkyOXRiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5c2JDNWpiMjF0Wlc1MElEMGdjSEp2Y0hNdVkyOXRiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyWm1jMlYwSUQwZ2NISnZjSE11Wlc1a08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGcGMwMWhjQ0FtSmlCamRIZ3ViM0IwYVc5dWN5NXpkSEpwWTNRZ0ppWWdZMjl1ZEdGcGJuTk9aWGRzYVc1bEtHdGxlU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWhyWlhrc0lDOHZJR05vWldOclpXUWdZbmtnWTI5dWRHRnBibk5PWlhkc2FXNWxLQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FuVFZWTVZFbE1TVTVGWDBsTlVFeEpRMGxVWDB0RldTY3NJQ2RKYlhCc2FXTnBkQ0JyWlhseklHOW1JR1pzYjNjZ2MyVnhkV1Z1WTJVZ2NHRnBjbk1nYm1WbFpDQjBieUJpWlNCdmJpQmhJSE5wYm1kc1pTQnNhVzVsSnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0drZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNod2NtOXdjeTVqYjIxdFlTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtIQnliM0J6TG1OdmJXMWhMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUdCVmJtVjRjR1ZqZEdWa0lDd2dhVzRnSkh0bVkwNWhiV1Y5WUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYQnliM0J6TG1OdmJXMWhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9jSEp2Y0hNdWMzUmhjblFzSUNkTlNWTlRTVTVIWDBOSVFWSW5MQ0JnVFdsemMybHVaeUFzSUdKbGRIZGxaVzRnSkh0bVkwNWhiV1Y5SUdsMFpXMXpZQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0hKdmNITXVZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCd2NtVjJTWFJsYlVOdmJXMWxiblFnUFNBbkp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNiMjl3T2lCbWIzSWdLR052Ym5OMElITjBJRzltSUhOMFlYSjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjNhWFJqYUNBb2MzUXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXRW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMzQmhZMlVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZMjl0YldWdWRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRrbDBaVzFEYjIxdFpXNTBJRDBnYzNRdWMyOTFjbU5sTG5OMVluTjBjbWx1WnlneEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF5QnNiMjl3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhheUJzYjI5d08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHdjbVYyU1hSbGJVTnZiVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElIQnlaWFlnUFNCamIyeHNMbWwwWlcxelcyTnZiR3d1YVhSbGJYTXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzFCaGFYSW9jSEpsZGlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJJRDBnY0hKbGRpNTJZV3gxWlNBL1B5QndjbVYyTG10bGVUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQnlaWFl1WTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ5WlhZdVkyOXRiV1Z1ZENBclBTQW5YRnh1SnlBcklIQnlaWFpKZEdWdFEyOXRiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRpNWpiMjF0Wlc1MElEMGdjSEpsZGtsMFpXMURiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3Y205d2N5NWpiMjF0Wlc1MElEMGdjSEp2Y0hNdVkyOXRiV1Z1ZEM1emRXSnpkSEpwYm1jb2NISmxka2wwWlcxRGIyMXRaVzUwTG14bGJtZDBhQ0FySURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvSVdselRXRndJQ1ltSUNGelpYQWdKaVlnSVhCeWIzQnpMbVp2ZFc1a0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnBkR1Z0SUdseklHRWdkbUZzZFdVZ2FXNGdZU0J6WlhGY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZ4MU1qRTVNaUJyWlhrZ0ppQnpaWEFnWVhKbElHVnRjSFI1TENCemRHRnlkQ0JrYjJWeklHNXZkQ0JwYm1Oc2RXUmxJRDhnYjNJZ09seHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzZFdWT2IyUmxJRDBnZG1Gc2RXVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JR052YlhCdmMyVk9iMlJsS0dOMGVDd2dkbUZzZFdVc0lIQnliM0J6TENCdmJrVnljbTl5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ1kyOXRjRzl6WlVWdGNIUjVUbTlrWlNoamRIZ3NJSEJ5YjNCekxtVnVaQ3dnYzJWd0xDQnVkV3hzTENCd2NtOXdjeXdnYjI1RmNuSnZjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMnhzTG1sMFpXMXpMbkIxYzJnb2RtRnNkV1ZPYjJSbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkQ0E5SUhaaGJIVmxUbTlrWlM1eVlXNW5aVnN5WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMwSnNiMk5yS0haaGJIVmxLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLSFpoYkhWbFRtOWtaUzV5WVc1blpTd2dKMEpNVDBOTFgwbE9YMFpNVDFjbkxDQmliRzlqYTAxelp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnBkR1Z0SUdseklHRWdhMlY1SzNaaGJIVmxJSEJoYVhKY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd0bGVTQjJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZM1I0TG1GMFMyVjVJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3RsZVZOMFlYSjBJRDBnY0hKdmNITXVaVzVrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2EyVjVUbTlrWlNBOUlHdGxlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnWTI5dGNHOXpaVTV2WkdVb1kzUjRMQ0JyWlhrc0lIQnliM0J6TENCdmJrVnljbTl5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ1kyOXRjRzl6WlVWdGNIUjVUbTlrWlNoamRIZ3NJR3RsZVZOMFlYSjBMQ0J6ZEdGeWRDd2diblZzYkN3Z2NISnZjSE1zSUc5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dselFteHZZMnNvYTJWNUtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHdGxlVTV2WkdVdWNtRnVaMlVzSUNkQ1RFOURTMTlKVGw5R1RFOVhKeXdnWW14dlkydE5jMmNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZM1I0TG1GMFMyVjVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QjJZV3gxWlNCd2NtOXdaWEowYVdWelhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjJZV3gxWlZCeWIzQnpJRDBnY21WemIyeDJaVkJ5YjNCektITmxjQ0EvUHlCYlhTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pzYjNjNklHWmpUbUZ0WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGJtUnBZMkYwYjNJNklDZHRZWEF0ZG1Gc2RXVXRhVzVrSnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBPaUIyWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklHdGxlVTV2WkdVdWNtRnVaMlZiTWwwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lYSmxiblJKYm1SbGJuUTZJR1pqTG1sdVpHVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRFOXVUbVYzYkdsdVpUb2dabUZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0haaGJIVmxVSEp2Y0hNdVptOTFibVFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2x6VFdGd0lDWW1JQ0Z3Y205d2N5NW1iM1Z1WkNBbUppQmpkSGd1YjNCMGFXOXVjeTV6ZEhKcFkzUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE5sY0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2MzUWdiMllnYzJWd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tITjBJRDA5UFNCMllXeDFaVkJ5YjNCekxtWnZkVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MzUXVkSGx3WlNBOVBUMGdKMjVsZDJ4cGJtVW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9jM1FzSUNkTlZVeFVTVXhKVGtWZlNVMVFURWxEU1ZSZlMwVlpKeXdnSjBsdGNHeHBZMmwwSUd0bGVYTWdiMllnWm14dmR5QnpaWEYxWlc1alpTQndZV2x5Y3lCdVpXVmtJSFJ2SUdKbElHOXVJR0VnYzJsdVoyeGxJR3hwYm1VbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NISnZjSE11YzNSaGNuUWdQQ0IyWVd4MVpWQnliM0J6TG1admRXNWtMbTltWm5ObGRDQXRJREV3TWpRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0haaGJIVmxVSEp2Y0hNdVptOTFibVFzSUNkTFJWbGZUMVpGVWw4eE1ESTBYME5JUVZKVEp5d2dKMVJvWlNBNklHbHVaR2xqWVhSdmNpQnRkWE4wSUdKbElHRjBJRzF2YzNRZ01UQXlOQ0JqYUdGeWN5QmhablJsY2lCMGFHVWdjM1JoY25RZ2IyWWdZVzRnYVcxd2JHbGphWFFnWm14dmR5QnpaWEYxWlc1alpTQnJaWGtuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2duYzI5MWNtTmxKeUJwYmlCMllXeDFaU0FtSmlCMllXeDFaUzV6YjNWeVkyVWdKaVlnZG1Gc2RXVXVjMjkxY21ObFd6QmRJRDA5UFNBbk9pY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVJYSnliM0lvZG1Gc2RXVXNJQ2ROU1ZOVFNVNUhYME5JUVZJbkxDQmdUV2x6YzJsdVp5QnpjR0ZqWlNCaFpuUmxjaUE2SUdsdUlDUjdabU5PWVcxbGZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDJZV3gxWlZCeWIzQnpMbk4wWVhKMExDQW5UVWxUVTBsT1IxOURTRUZTSnl3Z1lFMXBjM05wYm1jZ0xDQnZjaUE2SUdKbGRIZGxaVzRnSkh0bVkwNWhiV1Y5SUdsMFpXMXpZQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QjJZV3gxWlNCMllXeDFaVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVk9iMlJsSUQwZ2RtRnNkV1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUdOdmJYQnZjMlZPYjJSbEtHTjBlQ3dnZG1Gc2RXVXNJSFpoYkhWbFVISnZjSE1zSUc5dVJYSnliM0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCMllXeDFaVkJ5YjNCekxtWnZkVzVrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdZMjl0Y0c5elpVVnRjSFI1VG05a1pTaGpkSGdzSUhaaGJIVmxVSEp2Y0hNdVpXNWtMQ0J6WlhBc0lHNTFiR3dzSUhaaGJIVmxVSEp2Y0hNc0lHOXVSWEp5YjNJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlU1dlpHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYTkNiRzlqYXloMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RtRnNkV1ZPYjJSbExuSmhibWRsTENBblFreFBRMHRmU1U1ZlJreFBWeWNzSUdKc2IyTnJUWE5uS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIWmhiSFZsVUhKdmNITXVZMjl0YldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoclpYbE9iMlJsTG1OdmJXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlVTV2WkdVdVkyOXRiV1Z1ZENBclBTQW5YRnh1SnlBcklIWmhiSFZsVUhKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlVTV2WkdVdVkyOXRiV1Z1ZENBOUlIWmhiSFZsVUhKdmNITXVZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQmhhWElnUFNCdVpYY2dVR0ZwY2loclpYbE9iMlJsTENCMllXeDFaVTV2WkdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjBlQzV2Y0hScGIyNXpMbXRsWlhCVGIzVnlZMlZVYjJ0bGJuTXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0ZwY2k1emNtTlViMnRsYmlBOUlHTnZiR3hKZEdWdE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHpUV0Z3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldGd0lEMGdZMjlzYkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iV0Z3U1c1amJIVmtaWE1vWTNSNExDQnRZWEF1YVhSbGJYTXNJR3RsZVU1dlpHVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0d0bGVWTjBZWEowTENBblJGVlFURWxEUVZSRlgwdEZXU2NzSUNkTllYQWdhMlY1Y3lCdGRYTjBJR0psSUhWdWFYRjFaU2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1d2RYTm9LSEJoYVhJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldGd0lEMGdibVYzSUZsQlRVeE5ZWEFvWTNSNExuTmphR1Z0WVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRndMbVpzYjNjZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1d2RYTm9LSEJoYVhJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpGSmhibWRsSUQwZ0tIWmhiSFZsVG05a1pTQS9QeUJyWlhsT2IyUmxLUzV5WVc1blpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWEF1Y21GdVoyVWdQU0JiYTJWNVRtOWtaUzV5WVc1blpWc3dYU3dnWlc1a1VtRnVaMlZiTVYwc0lHVnVaRkpoYm1kbFd6SmRYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjJ4c0xtbDBaVzF6TG5CMWMyZ29iV0Z3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZENBOUlIWmhiSFZsVG05a1pTQS9JSFpoYkhWbFRtOWtaUzV5WVc1blpWc3lYU0E2SUhaaGJIVmxVSEp2Y0hNdVpXNWtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdWNGNHVmpkR1ZrUlc1a0lEMGdhWE5OWVhBZ1B5QW5mU2NnT2lBblhTYzdYRzRnSUNBZ1kyOXVjM1FnVzJObExDQXVMaTVsWlYwZ1BTQm1ZeTVsYm1RN1hHNGdJQ0FnYkdWMElHTmxVRzl6SUQwZ2IyWm1jMlYwTzF4dUlDQWdJR2xtSUNoalpTQW1KaUJqWlM1emIzVnlZMlVnUFQwOUlHVjRjR1ZqZEdWa1JXNWtLVnh1SUNBZ0lDQWdJQ0JqWlZCdmN5QTlJR05sTG05bVpuTmxkQ0FySUdObExuTnZkWEpqWlM1c1pXNW5kR2c3WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1aGJXVWdQU0JtWTA1aGJXVmJNRjB1ZEc5VmNIQmxja05oYzJVb0tTQXJJR1pqVG1GdFpTNXpkV0p6ZEhKcGJtY29NU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzF6WnlBOUlHRjBVbTl2ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJnSkh0dVlXMWxmU0J0ZFhOMElHVnVaQ0IzYVhSb0lHRWdKSHRsZUhCbFkzUmxaRVZ1WkgxZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUdBa2UyNWhiV1Y5SUdsdUlHSnNiMk5ySUdOdmJHeGxZM1JwYjI0Z2JYVnpkQ0JpWlNCemRXWm1hV05wWlc1MGJIa2dhVzVrWlc1MFpXUWdZVzVrSUdWdVpDQjNhWFJvSUdFZ0pIdGxlSEJsWTNSbFpFVnVaSDFnTzF4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0c5bVpuTmxkQ3dnWVhSU2IyOTBJRDhnSjAxSlUxTkpUa2RmUTBoQlVpY2dPaUFuUWtGRVgwbE9SRVZPVkNjc0lHMXpaeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpaU0FtSmlCalpTNXpiM1Z5WTJVdWJHVnVaM1JvSUNFOVBTQXhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXVXVkVzV6YUdsbWRDaGpaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hsWlM1c1pXNW5kR2dnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHVnVaQ0E5SUhKbGMyOXNkbVZGYm1Rb1pXVXNJR05sVUc5ekxDQmpkSGd1YjNCMGFXOXVjeTV6ZEhKcFkzUXNJRzl1UlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pXNWtMbU52YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYjJ4c0xtTnZiVzFsYm5RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiQzVqYjIxdFpXNTBJQ3M5SUNkY1hHNG5JQ3NnWlc1a0xtTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiQzVqYjIxdFpXNTBJRDBnWlc1a0xtTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjlzYkM1eVlXNW5aU0E5SUZ0bVl5NXZabVp6WlhRc0lHTmxVRzl6TENCbGJtUXViMlptYzJWMFhUdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ykd3dWNtRnVaMlVnUFNCYlptTXViMlptYzJWMExDQmpaVkJ2Y3l3Z1kyVlFiM05kTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1kyOXNiRHRjYm4xY2JseHVaWGh3YjNKMElIc2djbVZ6YjJ4MlpVWnNiM2REYjJ4c1pXTjBhVzl1SUgwN1hHNGlMQ0FpYVcxd2IzSjBJSHNnYVhOT2IyUmxJSDBnWm5KdmJTQW5MaTR2Ym05a1pYTXZhV1JsYm5ScGRIa3Vhbk1uTzF4dWFXMXdiM0owSUhzZ1UyTmhiR0Z5SUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12VTJOaGJHRnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGbEJUVXhOWVhBZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5WlFVMU1UV0Z3TG1wekp6dGNibWx0Y0c5eWRDQjdJRmxCVFV4VFpYRWdmU0JtY205dElDY3VMaTl1YjJSbGN5OVpRVTFNVTJWeExtcHpKenRjYm1sdGNHOXlkQ0I3SUhKbGMyOXNkbVZDYkc5amEwMWhjQ0I5SUdaeWIyMGdKeTR2Y21WemIyeDJaUzFpYkc5amF5MXRZWEF1YW5Nbk8xeHVhVzF3YjNKMElIc2djbVZ6YjJ4MlpVSnNiMk5yVTJWeElIMGdabkp2YlNBbkxpOXlaWE52YkhabExXSnNiMk5yTFhObGNTNXFjeWM3WEc1cGJYQnZjblFnZXlCeVpYTnZiSFpsUm14dmQwTnZiR3hsWTNScGIyNGdmU0JtY205dElDY3VMM0psYzI5c2RtVXRabXh2ZHkxamIyeHNaV04wYVc5dUxtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z2NtVnpiMngyWlVOdmJHeGxZM1JwYjI0b1EwNHNJR04wZUN3Z2RHOXJaVzRzSUc5dVJYSnliM0lzSUhSaFowNWhiV1VzSUhSaFp5a2dlMXh1SUNBZ0lHTnZibk4wSUdOdmJHd2dQU0IwYjJ0bGJpNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGJXRndKMXh1SUNBZ0lDQWdJQ0EvSUhKbGMyOXNkbVZDYkc5amEwMWhjQ2hEVGl3Z1kzUjRMQ0IwYjJ0bGJpd2diMjVGY25KdmNpd2dkR0ZuS1Z4dUlDQWdJQ0FnSUNBNklIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkaWJHOWpheTF6WlhFblhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhKbGMyOXNkbVZDYkc5amExTmxjU2hEVGl3Z1kzUjRMQ0IwYjJ0bGJpd2diMjVGY25KdmNpd2dkR0ZuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJ5WlhOdmJIWmxSbXh2ZDBOdmJHeGxZM1JwYjI0b1EwNHNJR04wZUN3Z2RHOXJaVzRzSUc5dVJYSnliM0lzSUhSaFp5azdYRzRnSUNBZ1kyOXVjM1FnUTI5c2JDQTlJR052Ykd3dVkyOXVjM1J5ZFdOMGIzSTdYRzRnSUNBZ0x5OGdTV1lnZDJVZ1oyOTBJR0VnZEdGblRtRnRaU0J0WVhSamFHbHVaeUIwYUdVZ1kyeGhjM01zSUc5eUlIUm9aU0IwWVdjZ2JtRnRaU0JwY3lBbklTY3NYRzRnSUNBZ0x5OGdkR2hsYmlCMWMyVWdkR2hsSUhSaFowNWhiV1VnWm5KdmJTQjBhR1VnYm05a1pTQmpiR0Z6Y3lCMWMyVmtJSFJ2SUdOeVpXRjBaU0JwZEM1Y2JpQWdJQ0JwWmlBb2RHRm5UbUZ0WlNBOVBUMGdKeUVuSUh4OElIUmhaMDVoYldVZ1BUMDlJRU52Ykd3dWRHRm5UbUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMnhzTG5SaFp5QTlJRU52Ykd3dWRHRm5UbUZ0WlR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOdmJHdzdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBZV2RPWVcxbEtWeHVJQ0FnSUNBZ0lDQmpiMnhzTG5SaFp5QTlJSFJoWjA1aGJXVTdYRzRnSUNBZ2NtVjBkWEp1SUdOdmJHdzdYRzU5WEc1bWRXNWpkR2x2YmlCamIyMXdiM05sUTI5c2JHVmpkR2x2YmloRFRpd2dZM1I0TENCMGIydGxiaXdnY0hKdmNITXNJRzl1UlhKeWIzSXBJSHRjYmlBZ0lDQmpiMjV6ZENCMFlXZFViMnRsYmlBOUlIQnliM0J6TG5SaFp6dGNiaUFnSUNCamIyNXpkQ0IwWVdkT1lXMWxJRDBnSVhSaFoxUnZhMlZ1WEc0Z0lDQWdJQ0FnSUQ4Z2JuVnNiRnh1SUNBZ0lDQWdJQ0E2SUdOMGVDNWthWEpsWTNScGRtVnpMblJoWjA1aGJXVW9kR0ZuVkc5clpXNHVjMjkxY21ObExDQnRjMmNnUFQ0Z2IyNUZjbkp2Y2loMFlXZFViMnRsYml3Z0oxUkJSMTlTUlZOUFRGWkZYMFpCU1V4RlJDY3NJRzF6WnlrcE8xeHVJQ0FnSUdsbUlDaDBiMnRsYmk1MGVYQmxJRDA5UFNBbllteHZZMnN0YzJWeEp5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJR0Z1WTJodmNpd2dibVYzYkdsdVpVRm1kR1Z5VUhKdmNEb2dibXdnZlNBOUlIQnliM0J6TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzWVhOMFVISnZjQ0E5SUdGdVkyaHZjaUFtSmlCMFlXZFViMnRsYmx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJoYm1Ob2IzSXViMlptYzJWMElENGdkR0ZuVkc5clpXNHViMlptYzJWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmhibU5vYjNKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklIUmhaMVJ2YTJWdVhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUNoaGJtTm9iM0lnUHo4Z2RHRm5WRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYkdGemRGQnliM0FnSmlZZ0tDRnViQ0I4ZkNCdWJDNXZabVp6WlhRZ1BDQnNZWE4wVUhKdmNDNXZabVp6WlhRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WlhOellXZGxJRDBnSjAxcGMzTnBibWNnYm1WM2JHbHVaU0JoWm5SbGNpQmliRzlqYXlCelpYRjFaVzVqWlNCd2NtOXdjeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHeGhjM1JRY205d0xDQW5UVWxUVTBsT1IxOURTRUZTSnl3Z2JXVnpjMkZuWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdaWGh3Vkhsd1pTQTlJSFJ2YTJWdUxuUjVjR1VnUFQwOUlDZGliRzlqYXkxdFlYQW5YRzRnSUNBZ0lDQWdJRDhnSjIxaGNDZGNiaUFnSUNBZ0lDQWdPaUIwYjJ0bGJpNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGMyVnhKMXh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QW5jMlZ4SjF4dUlDQWdJQ0FnSUNBZ0lDQWdPaUIwYjJ0bGJpNXpkR0Z5ZEM1emIzVnlZMlVnUFQwOUlDZDdKMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnSjIxaGNDZGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJQ2R6WlhFbk8xeHVJQ0FnSUM4dklITm9iM0owWTNWME9pQmphR1ZqYXlCcFppQnBkQ2R6SUdFZ1oyVnVaWEpwWXlCWlFVMU1UV0Z3SUc5eUlGbEJUVXhUWlhGY2JpQWdJQ0F2THlCaVpXWnZjbVVnYW5WdGNHbHVaeUJwYm5SdklIUm9aU0JqZFhOMGIyMGdkR0ZuSUd4dloybGpMbHh1SUNBZ0lHbG1JQ2doZEdGblZHOXJaVzRnZkh4Y2JpQWdJQ0FnSUNBZ0lYUmhaMDVoYldVZ2ZIeGNiaUFnSUNBZ0lDQWdkR0ZuVG1GdFpTQTlQVDBnSnlFbklIeDhYRzRnSUNBZ0lDQWdJQ2gwWVdkT1lXMWxJRDA5UFNCWlFVMU1UV0Z3TG5SaFowNWhiV1VnSmlZZ1pYaHdWSGx3WlNBOVBUMGdKMjFoY0NjcElIeDhYRzRnSUNBZ0lDQWdJQ2gwWVdkT1lXMWxJRDA5UFNCWlFVMU1VMlZ4TG5SaFowNWhiV1VnSmlZZ1pYaHdWSGx3WlNBOVBUMGdKM05sY1NjcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE52YkhabFEyOXNiR1ZqZEdsdmJpaERUaXdnWTNSNExDQjBiMnRsYml3Z2IyNUZjbkp2Y2l3Z2RHRm5UbUZ0WlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR3hsZENCMFlXY2dQU0JqZEhndWMyTm9aVzFoTG5SaFozTXVabWx1WkNoMElEMCtJSFF1ZEdGbklEMDlQU0IwWVdkT1lXMWxJQ1ltSUhRdVkyOXNiR1ZqZEdsdmJpQTlQVDBnWlhod1ZIbHdaU2s3WEc0Z0lDQWdhV1lnS0NGMFlXY3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhM1FnUFNCamRIZ3VjMk5vWlcxaExtdHViM2R1VkdGbmMxdDBZV2RPWVcxbFhUdGNiaUFnSUNBZ0lDQWdhV1lnS0d0MElDWW1JR3QwTG1OdmJHeGxZM1JwYjI0Z1BUMDlJR1Y0Y0ZSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV6WTJobGJXRXVkR0ZuY3k1d2RYTm9LRTlpYW1WamRDNWhjM05wWjI0b2UzMHNJR3QwTENCN0lHUmxabUYxYkhRNklHWmhiSE5sSUgwcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSaFp5QTlJR3QwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d0MFB5NWpiMnhzWldOMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RmNuSnZjaWgwWVdkVWIydGxiaXdnSjBKQlJGOURUMHhNUlVOVVNVOU9YMVJaVUVVbkxDQmdKSHRyZEM1MFlXZDlJSFZ6WldRZ1ptOXlJQ1I3Wlhod1ZIbHdaWDBnWTI5c2JHVmpkR2x2Yml3Z1luVjBJR1Y0Y0dWamRITWdKSHRyZEM1amIyeHNaV04wYVc5dWZXQXNJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMFlXZFViMnRsYml3Z0oxUkJSMTlTUlZOUFRGWkZYMFpCU1V4RlJDY3NJR0JWYm5KbGMyOXNkbVZrSUhSaFp6b2dKSHQwWVdkT1lXMWxmV0FzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzI5c2RtVkRiMnhzWldOMGFXOXVLRU5PTENCamRIZ3NJSFJ2YTJWdUxDQnZia1Z5Y205eUxDQjBZV2RPWVcxbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JqYjJ4c0lEMGdjbVZ6YjJ4MlpVTnZiR3hsWTNScGIyNG9RMDRzSUdOMGVDd2dkRzlyWlc0c0lHOXVSWEp5YjNJc0lIUmhaMDVoYldVc0lIUmhaeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpJRDBnZEdGbkxuSmxjMjlzZG1VL0xpaGpiMnhzTENCdGMyY2dQVDRnYjI1RmNuSnZjaWgwWVdkVWIydGxiaXdnSjFSQlIxOVNSVk5QVEZaRlgwWkJTVXhGUkNjc0lHMXpaeWtzSUdOMGVDNXZjSFJwYjI1ektTQS9QeUJqYjJ4c08xeHVJQ0FnSUdOdmJuTjBJRzV2WkdVZ1BTQnBjMDV2WkdVb2NtVnpLVnh1SUNBZ0lDQWdJQ0EvSUhKbGMxeHVJQ0FnSUNBZ0lDQTZJRzVsZHlCVFkyRnNZWElvY21WektUdGNiaUFnSUNCdWIyUmxMbkpoYm1kbElEMGdZMjlzYkM1eVlXNW5aVHRjYmlBZ0lDQnViMlJsTG5SaFp5QTlJSFJoWjA1aGJXVTdYRzRnSUNBZ2FXWWdLSFJoWno4dVptOXliV0YwS1Z4dUlDQWdJQ0FnSUNCdWIyUmxMbVp2Y20xaGRDQTlJSFJoWnk1bWIzSnRZWFE3WEc0Z0lDQWdjbVYwZFhKdUlHNXZaR1U3WEc1OVhHNWNibVY0Y0c5eWRDQjdJR052YlhCdmMyVkRiMnhzWldOMGFXOXVJSDA3WEc0aUxDQWlhVzF3YjNKMElIc2dVMk5oYkdGeUlIMGdabkp2YlNBbkxpNHZibTlrWlhNdlUyTmhiR0Z5TG1wekp6dGNibHh1Wm5WdVkzUnBiMjRnY21WemIyeDJaVUpzYjJOclUyTmhiR0Z5S0dOMGVDd2djMk5oYkdGeUxDQnZia1Z5Y205eUtTQjdYRzRnSUNBZ1kyOXVjM1FnYzNSaGNuUWdQU0J6WTJGc1lYSXViMlptYzJWME8xeHVJQ0FnSUdOdmJuTjBJR2hsWVdSbGNpQTlJSEJoY25ObFFteHZZMnRUWTJGc1lYSklaV0ZrWlhJb2MyTmhiR0Z5TENCamRIZ3ViM0IwYVc5dWN5NXpkSEpwWTNRc0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUdsbUlDZ2hhR1ZoWkdWeUtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjJZV3gxWlRvZ0p5Y3NJSFI1Y0dVNklHNTFiR3dzSUdOdmJXMWxiblE2SUNjbkxDQnlZVzVuWlRvZ1czTjBZWEowTENCemRHRnlkQ3dnYzNSaGNuUmRJSDA3WEc0Z0lDQWdZMjl1YzNRZ2RIbHdaU0E5SUdobFlXUmxjaTV0YjJSbElEMDlQU0FuUGljZ1B5QlRZMkZzWVhJdVFreFBRMHRmUms5TVJFVkVJRG9nVTJOaGJHRnlMa0pNVDBOTFgweEpWRVZTUVV3N1hHNGdJQ0FnWTI5dWMzUWdiR2x1WlhNZ1BTQnpZMkZzWVhJdWMyOTFjbU5sSUQ4Z2MzQnNhWFJNYVc1bGN5aHpZMkZzWVhJdWMyOTFjbU5sS1NBNklGdGRPMXh1SUNBZ0lDOHZJR1JsZEdWeWJXbHVaU0IwYUdVZ1pXNWtJRzltSUdOdmJuUmxiblFnSmlCemRHRnlkQ0J2WmlCamFHOXRjR2x1WjF4dUlDQWdJR3hsZENCamFHOXRjRk4wWVhKMElEMGdiR2x1WlhNdWJHVnVaM1JvTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCc2FXNWxjeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJREE3SUMwdGFTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMjUwWlc1MElEMGdiR2x1WlhOYmFWMWJNVjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpiMjUwWlc1MElEMDlQU0FuSnlCOGZDQmpiMjUwWlc1MElEMDlQU0FuWEZ4eUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUdOb2IyMXdVM1JoY25RZ1BTQnBPMXh1SUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNGdJQ0FnTHk4Z2MyaHZjblJqZFhRZ1ptOXlJR1Z0Y0hSNUlHTnZiblJsYm5SelhHNGdJQ0FnYVdZZ0tHTm9iMjF3VTNSaGNuUWdQVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1VnUFNCb1pXRmtaWEl1WTJodmJYQWdQVDA5SUNjckp5QW1KaUJzYVc1bGN5NXNaVzVuZEdnZ1BpQXdYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lDZGNYRzRuTG5KbGNHVmhkQ2hOWVhSb0xtMWhlQ2d4TENCc2FXNWxjeTVzWlc1bmRHZ2dMU0F4S1NsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nSnljN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JsYm1RZ1BTQnpkR0Z5ZENBcklHaGxZV1JsY2k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUdsbUlDaHpZMkZzWVhJdWMyOTFjbU5sS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaVzVrSUNzOUlITmpZV3hoY2k1emIzVnlZMlV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIyWVd4MVpTd2dkSGx3WlN3Z1kyOXRiV1Z1ZERvZ2FHVmhaR1Z5TG1OdmJXMWxiblFzSUhKaGJtZGxPaUJiYzNSaGNuUXNJR1Z1WkN3Z1pXNWtYU0I5TzF4dUlDQWdJSDFjYmlBZ0lDQXZMeUJtYVc1a0lIUm9aU0JwYm1SbGJuUmhkR2x2YmlCc1pYWmxiQ0IwYnlCMGNtbHRJR1p5YjIwZ2MzUmhjblJjYmlBZ0lDQnNaWFFnZEhKcGJVbHVaR1Z1ZENBOUlITmpZV3hoY2k1cGJtUmxiblFnS3lCb1pXRmtaWEl1YVc1a1pXNTBPMXh1SUNBZ0lHeGxkQ0J2Wm1aelpYUWdQU0J6WTJGc1lYSXViMlptYzJWMElDc2dhR1ZoWkdWeUxteGxibWQwYUR0Y2JpQWdJQ0JzWlhRZ1kyOXVkR1Z1ZEZOMFlYSjBJRDBnTUR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdOb2IyMXdVM1JoY25RN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JiYVc1a1pXNTBMQ0JqYjI1MFpXNTBYU0E5SUd4cGJtVnpXMmxkTzF4dUlDQWdJQ0FnSUNCcFppQW9ZMjl1ZEdWdWRDQTlQVDBnSnljZ2ZId2dZMjl1ZEdWdWRDQTlQVDBnSjF4Y2NpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hvWldGa1pYSXVhVzVrWlc1MElEMDlQU0F3SUNZbUlHbHVaR1Z1ZEM1c1pXNW5kR2dnUGlCMGNtbHRTVzVrWlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnlhVzFKYm1SbGJuUWdQU0JwYm1SbGJuUXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHVaR1Z1ZEM1c1pXNW5kR2dnUENCMGNtbHRTVzVrWlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlDZENiRzlqYXlCelkyRnNZWEp6SUhkcGRHZ2diVzl5WlMxcGJtUmxiblJsWkNCc1pXRmthVzVuSUdWdGNIUjVJR3hwYm1WeklHMTFjM1FnZFhObElHRnVJR1Y0Y0d4cFkybDBJR2x1WkdWdWRHRjBhVzl1SUdsdVpHbGpZWFJ2Y2ljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2lodlptWnpaWFFnS3lCcGJtUmxiblF1YkdWdVozUm9MQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2diV1Z6YzJGblpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FHVmhaR1Z5TG1sdVpHVnVkQ0E5UFQwZ01DbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBjbWx0U1c1a1pXNTBJRDBnYVc1a1pXNTBMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuUmxiblJUZEdGeWRDQTlJR2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhKcGJVbHVaR1Z1ZENBOVBUMGdNQ0FtSmlBaFkzUjRMbUYwVW05dmRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQW5RbXh2WTJzZ2MyTmhiR0Z5SUhaaGJIVmxjeUJwYmlCamIyeHNaV04wYVc5dWN5QnRkWE4wSUdKbElHbHVaR1Z1ZEdWa0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Z5Y205eUtHOW1abk5sZEN3Z0owSkJSRjlKVGtSRlRsUW5MQ0J0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUc5bVpuTmxkQ0FyUFNCcGJtUmxiblF1YkdWdVozUm9JQ3NnWTI5dWRHVnVkQzVzWlc1bmRHZ2dLeUF4TzF4dUlDQWdJSDFjYmlBZ0lDQXZMeUJwYm1Oc2RXUmxJSFJ5WVdsc2FXNW5JRzF2Y21VdGFXNWtaVzUwWldRZ1pXMXdkSGtnYkdsdVpYTWdhVzRnWTI5dWRHVnVkRnh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0JzYVc1bGN5NXNaVzVuZEdnZ0xTQXhPeUJwSUQ0OUlHTm9iMjF3VTNSaGNuUTdJQzB0YVNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpYTmJhVjFiTUYwdWJHVnVaM1JvSUQ0Z2RISnBiVWx1WkdWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUdOb2IyMXdVM1JoY25RZ1BTQnBJQ3NnTVR0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhaaGJIVmxJRDBnSnljN1hHNGdJQ0FnYkdWMElITmxjQ0E5SUNjbk8xeHVJQ0FnSUd4bGRDQndjbVYyVFc5eVpVbHVaR1Z1ZEdWa0lEMGdabUZzYzJVN1hHNGdJQ0FnTHk4Z2JHVmhaR2x1WnlCM2FHbDBaWE53WVdObElHbHpJR3RsY0hRZ2FXNTBZV04wWEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JqYjI1MFpXNTBVM1JoY25RN0lDc3JhU2xjYmlBZ0lDQWdJQ0FnZG1Gc2RXVWdLejBnYkdsdVpYTmJhVjFiTUYwdWMyeHBZMlVvZEhKcGJVbHVaR1Z1ZENrZ0t5QW5YRnh1Snp0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ1kyOXVkR1Z1ZEZOMFlYSjBPeUJwSUR3Z1kyaHZiWEJUZEdGeWREc2dLeXRwS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JiYVc1a1pXNTBMQ0JqYjI1MFpXNTBYU0E5SUd4cGJtVnpXMmxkTzF4dUlDQWdJQ0FnSUNCdlptWnpaWFFnS3owZ2FXNWtaVzUwTG14bGJtZDBhQ0FySUdOdmJuUmxiblF1YkdWdVozUm9JQ3NnTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNKc1ppQTlJR052Ym5SbGJuUmJZMjl1ZEdWdWRDNXNaVzVuZEdnZ0xTQXhYU0E5UFQwZ0oxeGNjaWM3WEc0Z0lDQWdJQ0FnSUdsbUlDaGpjbXhtS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWdWRDQTlJR052Ym5SbGJuUXVjMnhwWTJVb01Dd2dMVEVwTzF4dUlDQWdJQ0FnSUNBdktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2FXWWdZV3h5WldGa2VTQmpZWFZuYUhRZ2FXNGdiR1Y0WlhJZ0tpOWNiaUFnSUNBZ0lDQWdhV1lnS0dOdmJuUmxiblFnSmlZZ2FXNWtaVzUwTG14bGJtZDBhQ0E4SUhSeWFXMUpibVJsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE55WXlBOUlHaGxZV1JsY2k1cGJtUmxiblJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUNkbGVIQnNhV05wZENCcGJtUmxiblJoZEdsdmJpQnBibVJwWTJGMGIzSW5YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUFuWm1seWMzUWdiR2x1WlNjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRUpzYjJOcklITmpZV3hoY2lCc2FXNWxjeUJ0ZFhOMElHNXZkQ0JpWlNCc1pYTnpJR2x1WkdWdWRHVmtJSFJvWVc0Z2RHaGxhWElnSkh0emNtTjlZRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2IyWm1jMlYwSUMwZ1kyOXVkR1Z1ZEM1c1pXNW5kR2dnTFNBb1kzSnNaaUEvSURJZ09pQXhLU3dnSjBKQlJGOUpUa1JGVGxRbkxDQnRaWE56WVdkbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVnVkQ0E5SUNjbk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxJRDA5UFNCVFkyRnNZWEl1UWt4UFEwdGZURWxVUlZKQlRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnS3owZ2MyVndJQ3NnYVc1a1pXNTBMbk5zYVdObEtIUnlhVzFKYm1SbGJuUXBJQ3NnWTI5dWRHVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxjQ0E5SUNkY1hHNG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dsdVpHVnVkQzVzWlc1bmRHZ2dQaUIwY21sdFNXNWtaVzUwSUh4OElHTnZiblJsYm5SYk1GMGdQVDA5SUNkY1hIUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJ0YjNKbExXbHVaR1Z1ZEdWa0lHTnZiblJsYm5RZ2QybDBhR2x1SUdFZ1ptOXNaR1ZrSUdKc2IyTnJYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jMlZ3SUQwOVBTQW5JQ2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWd0lEMGdKMXhjYmljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2doY0hKbGRrMXZjbVZKYm1SbGJuUmxaQ0FtSmlCelpYQWdQVDA5SUNkY1hHNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY0NBOUlDZGNYRzVjWEc0bk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdLejBnYzJWd0lDc2dhVzVrWlc1MExuTnNhV05sS0hSeWFXMUpibVJsYm5RcElDc2dZMjl1ZEdWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJQ2RjWEc0bk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKbGRrMXZjbVZKYm1SbGJuUmxaQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWTI5dWRHVnVkQ0E5UFQwZ0p5Y3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR1Z0Y0hSNUlHeHBibVZjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6WlhBZ1BUMDlJQ2RjWEc0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUNzOUlDZGNYRzRuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJQ2RjWEc0bk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdLejBnYzJWd0lDc2dZMjl1ZEdWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJQ2NnSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ5WlhaTmIzSmxTVzVrWlc1MFpXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCemQybDBZMmdnS0dobFlXUmxjaTVqYUc5dGNDa2dlMXh1SUNBZ0lDQWdJQ0JqWVhObElDY3RKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2NySnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCamFHOXRjRk4wWVhKME95QnBJRHdnYkdsdVpYTXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdLejBnSjF4Y2JpY2dLeUJzYVc1bGMxdHBYVnN3WFM1emJHbGpaU2gwY21sdFNXNWtaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMllXeDFaVnQyWVd4MVpTNXNaVzVuZEdnZ0xTQXhYU0FoUFQwZ0oxeGNiaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdLejBnSjF4Y2JpYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUNzOUlDZGNYRzRuTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCbGJtUWdQU0J6ZEdGeWRDQXJJR2hsWVdSbGNpNXNaVzVuZEdnZ0t5QnpZMkZzWVhJdWMyOTFjbU5sTG14bGJtZDBhRHRjYmlBZ0lDQnlaWFIxY200Z2V5QjJZV3gxWlN3Z2RIbHdaU3dnWTI5dGJXVnVkRG9nYUdWaFpHVnlMbU52YlcxbGJuUXNJSEpoYm1kbE9pQmJjM1JoY25Rc0lHVnVaQ3dnWlc1a1hTQjlPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2NHRnljMlZDYkc5amExTmpZV3hoY2tobFlXUmxjaWg3SUc5bVpuTmxkQ3dnY0hKdmNITWdmU3dnYzNSeWFXTjBMQ0J2YmtWeWNtOXlLU0I3WEc0Z0lDQWdMeW9nYVhOMFlXNWlkV3dnYVdkdWIzSmxJR2xtSUhOb2IzVnNaQ0J1YjNRZ2FHRndjR1Z1SUNvdlhHNGdJQ0FnYVdZZ0tIQnliM0J6V3pCZExuUjVjR1VnSVQwOUlDZGliRzlqYXkxelkyRnNZWEl0YUdWaFpHVnlKeWtnZTF4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0hCeWIzQnpXekJkTENBblNVMVFUMU5UU1VKTVJTY3NJQ2RDYkc5amF5QnpZMkZzWVhJZ2FHVmhaR1Z5SUc1dmRDQm1iM1Z1WkNjcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnZXlCemIzVnlZMlVnZlNBOUlIQnliM0J6V3pCZE8xeHVJQ0FnSUdOdmJuTjBJRzF2WkdVZ1BTQnpiM1Z5WTJWYk1GMDdYRzRnSUNBZ2JHVjBJR2x1WkdWdWRDQTlJREE3WEc0Z0lDQWdiR1YwSUdOb2IyMXdJRDBnSnljN1hHNGdJQ0FnYkdWMElHVnljbTl5SUQwZ0xURTdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREU3SUdrZ1BDQnpiM1Z5WTJVdWJHVnVaM1JvT3lBcksya3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmdnUFNCemIzVnlZMlZiYVYwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWTJodmJYQWdKaVlnS0dOb0lEMDlQU0FuTFNjZ2ZId2dZMmdnUFQwOUlDY3JKeWtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQmphRzl0Y0NBOUlHTm9PMXh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzRnUFNCT2RXMWlaWElvWTJncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBibVJsYm5RZ0ppWWdiaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGJuUWdQU0J1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9aWEp5YjNJZ1BUMDlJQzB4S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWeWNtOXlJRDBnYjJabWMyVjBJQ3NnYVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb1pYSnliM0lnSVQwOUlDMHhLVnh1SUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR1Z5Y205eUxDQW5WVTVGV0ZCRlExUkZSRjlVVDB0RlRpY3NJR0JDYkc5amF5QnpZMkZzWVhJZ2FHVmhaR1Z5SUdsdVkyeDFaR1Z6SUdWNGRISmhJR05vWVhKaFkzUmxjbk02SUNSN2MyOTFjbU5sZldBcE8xeHVJQ0FnSUd4bGRDQm9ZWE5UY0dGalpTQTlJR1poYkhObE8xeHVJQ0FnSUd4bGRDQmpiMjF0Wlc1MElEMGdKeWM3WEc0Z0lDQWdiR1YwSUd4bGJtZDBhQ0E5SUhOdmRYSmpaUzVzWlc1bmRHZzdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREU3SUdrZ1BDQndjbTl3Y3k1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBiMnRsYmlBOUlIQnliM0J6VzJsZE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUnZhMlZ1TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOd1lXTmxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JvWVhOVGNHRmpaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5Qm1ZV3hzZEdoeWIzVm5hRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYm1WM2JHbHVaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JQ3M5SUhSdmEyVnVMbk52ZFhKalpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkamIyMXRaVzUwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jM1J5YVdOMElDWW1JQ0ZvWVhOVGNHRmpaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ0owTnZiVzFsYm5SeklHMTFjM1FnWW1VZ2MyVndZWEpoZEdWa0lHWnliMjBnYjNSb1pYSWdkRzlyWlc1eklHSjVJSGRvYVhSbElITndZV05sSUdOb1lYSmhZM1JsY25Nbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLSFJ2YTJWdUxDQW5UVWxUVTBsT1IxOURTRUZTSnl3Z2JXVnpjMkZuWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBclBTQjBiMnRsYmk1emIzVnlZMlV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052YlcxbGJuUWdQU0IwYjJ0bGJpNXpiM1Z5WTJVdWMzVmljM1J5YVc1bktERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aWEp5YjNJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHOXJaVzRzSUNkVlRrVllVRVZEVkVWRVgxUlBTMFZPSnl3Z2RHOXJaVzR1YldWemMyRm5aU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JQ3M5SUhSdmEyVnVMbk52ZFhKalpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZLaUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdibVY0ZENCemFHOTFiR1FnYm05MElHaGhjSEJsYmlBcUwxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFsYzNOaFoyVWdQU0JnVlc1bGVIQmxZM1JsWkNCMGIydGxiaUJwYmlCaWJHOWpheUJ6WTJGc1lYSWdhR1ZoWkdWeU9pQWtlM1J2YTJWdUxuUjVjR1Y5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0hSdmEyVnVMQ0FuVlU1RldGQkZRMVJGUkY5VVQwdEZUaWNzSUcxbGMzTmhaMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFJ6SUQwZ2RHOXJaVzR1YzI5MWNtTmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGN5QW1KaUIwZVhCbGIyWWdkSE1nUFQwOUlDZHpkSEpwYm1jbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dLejBnZEhNdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN0lHMXZaR1VzSUdsdVpHVnVkQ3dnWTJodmJYQXNJR052YlcxbGJuUXNJR3hsYm1kMGFDQjlPMXh1ZlZ4dUx5b3FJRUJ5WlhSMWNtNXpJRUZ5Y21GNUlHOW1JR3hwYm1WeklITndiR2wwSUhWd0lHRnpJR0JiYVc1a1pXNTBMQ0JqYjI1MFpXNTBYV0FnS2k5Y2JtWjFibU4wYVc5dUlITndiR2wwVEdsdVpYTW9jMjkxY21ObEtTQjdYRzRnSUNBZ1kyOXVjM1FnYzNCc2FYUWdQU0J6YjNWeVkyVXVjM0JzYVhRb0wxeGNiaWdnS2lrdktUdGNiaUFnSUNCamIyNXpkQ0JtYVhKemRDQTlJSE53YkdsMFd6QmRPMXh1SUNBZ0lHTnZibk4wSUcwZ1BTQm1hWEp6ZEM1dFlYUmphQ2d2WGlnZ0tpa3ZLVHRjYmlBZ0lDQmpiMjV6ZENCc2FXNWxNQ0E5SUcwL0xsc3hYVnh1SUNBZ0lDQWdJQ0EvSUZ0dFd6RmRMQ0JtYVhKemRDNXpiR2xqWlNodFd6RmRMbXhsYm1kMGFDbGRYRzRnSUNBZ0lDQWdJRG9nV3ljbkxDQm1hWEp6ZEYwN1hHNGdJQ0FnWTI5dWMzUWdiR2x1WlhNZ1BTQmJiR2x1WlRCZE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXhPeUJwSUR3Z2MzQnNhWFF1YkdWdVozUm9PeUJwSUNzOUlESXBYRzRnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvVzNOd2JHbDBXMmxkTENCemNHeHBkRnRwSUNzZ01WMWRLVHRjYmlBZ0lDQnlaWFIxY200Z2JHbHVaWE03WEc1OVhHNWNibVY0Y0c5eWRDQjdJSEpsYzI5c2RtVkNiRzlqYTFOallXeGhjaUI5TzF4dUlpd2dJbWx0Y0c5eWRDQjdJRk5qWVd4aGNpQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwxTmpZV3hoY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxSVzVrSUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFdWdVpDNXFjeWM3WEc1Y2JtWjFibU4wYVc5dUlISmxjMjlzZG1WR2JHOTNVMk5oYkdGeUtITmpZV3hoY2l3Z2MzUnlhV04wTENCdmJrVnljbTl5S1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJ2Wm1aelpYUXNJSFI1Y0dVc0lITnZkWEpqWlN3Z1pXNWtJSDBnUFNCelkyRnNZWEk3WEc0Z0lDQWdiR1YwSUY5MGVYQmxPMXh1SUNBZ0lHeGxkQ0IyWVd4MVpUdGNiaUFnSUNCamIyNXpkQ0JmYjI1RmNuSnZjaUE5SUNoeVpXd3NJR052WkdVc0lHMXpaeWtnUFQ0Z2IyNUZjbkp2Y2lodlptWnpaWFFnS3lCeVpXd3NJR052WkdVc0lHMXpaeWs3WEc0Z0lDQWdjM2RwZEdOb0lDaDBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSjNOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZkSGx3WlNBOUlGTmpZV3hoY2k1UVRFRkpUanRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2NHeGhhVzVXWVd4MVpTaHpiM1Z5WTJVc0lGOXZia1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JqWVhObElDZHphVzVuYkdVdGNYVnZkR1ZrTFhOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZkSGx3WlNBOUlGTmpZV3hoY2k1UlZVOVVSVjlUU1U1SFRFVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUhOcGJtZHNaVkYxYjNSbFpGWmhiSFZsS0hOdmRYSmpaU3dnWDI5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSjJSdmRXSnNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUY5MGVYQmxJRDBnVTJOaGJHRnlMbEZWVDFSRlgwUlBWVUpNUlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdaRzkxWW14bFVYVnZkR1ZrVm1Gc2RXVW9jMjkxY21ObExDQmZiMjVGY25KdmNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUc1bGVIUWdjMmh2ZFd4a0lHNXZkQ0JvWVhCd1pXNGdLaTljYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2MyTmhiR0Z5TENBblZVNUZXRkJGUTFSRlJGOVVUMHRGVGljc0lHQkZlSEJsWTNSbFpDQmhJR1pzYjNjZ2MyTmhiR0Z5SUhaaGJIVmxMQ0JpZFhRZ1ptOTFibVE2SUNSN2RIbHdaWDFnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklDY25MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklHNTFiR3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dGJXVnVkRG9nSnljc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtRnVaMlU2SUZ0dlptWnpaWFFzSUc5bVpuTmxkQ0FySUhOdmRYSmpaUzVzWlc1bmRHZ3NJRzltWm5ObGRDQXJJSE52ZFhKalpTNXNaVzVuZEdoZFhHNGdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCMllXeDFaVVZ1WkNBOUlHOW1abk5sZENBcklITnZkWEpqWlM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2NtVWdQU0J5WlhOdmJIWmxSVzVrS0dWdVpDd2dkbUZzZFdWRmJtUXNJSE4wY21samRDd2diMjVGY25KdmNpazdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1VzWEc0Z0lDQWdJQ0FnSUhSNWNHVTZJRjkwZVhCbExGeHVJQ0FnSUNBZ0lDQmpiMjF0Wlc1ME9pQnlaUzVqYjIxdFpXNTBMRnh1SUNBZ0lDQWdJQ0J5WVc1blpUb2dXMjltWm5ObGRDd2dkbUZzZFdWRmJtUXNJSEpsTG05bVpuTmxkRjFjYmlBZ0lDQjlPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2NHeGhhVzVXWVd4MVpTaHpiM1Z5WTJVc0lHOXVSWEp5YjNJcElIdGNiaUFnSUNCc1pYUWdZbUZrUTJoaGNpQTlJQ2NuTzF4dUlDQWdJSE4zYVhSamFDQW9jMjkxY21ObFd6QmRLU0I3WEc0Z0lDQWdJQ0FnSUM4cUlHbHpkR0Z1WW5Wc0lHbG5ibTl5WlNCdVpYaDBJSE5vYjNWc1pDQnViM1FnYUdGd2NHVnVJQ292WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMXhjZENjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JpWVdSRGFHRnlJRDBnSjJFZ2RHRmlJR05vWVhKaFkzUmxjaWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuTENjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JpWVdSRGFHRnlJRDBnSjJac2IzY2dhVzVrYVdOaGRHOXlJR05vWVhKaFkzUmxjaUFzSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjbEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdKaFpFTm9ZWElnUFNBblpHbHlaV04wYVhabElHbHVaR2xqWVhSdmNpQmphR0Z5WVdOMFpYSWdKU2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuZkNjNlhHNGdJQ0FnSUNBZ0lHTmhjMlVnSno0bk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaVlXUkRhR0Z5SUQwZ1lHSnNiMk5ySUhOallXeGhjaUJwYm1ScFkyRjBiM0lnSkh0emIzVnlZMlZiTUYxOVlEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMEFuT2x4dUlDQWdJQ0FnSUNCallYTmxJQ2RnSnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW1Ga1EyaGhjaUE5SUdCeVpYTmxjblpsWkNCamFHRnlZV04wWlhJZ0pIdHpiM1Z5WTJWYk1GMTlZRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoaVlXUkRhR0Z5S1Z4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0RBc0lDZENRVVJmVTBOQlRFRlNYMU5VUVZKVUp5d2dZRkJzWVdsdUlIWmhiSFZsSUdOaGJtNXZkQ0J6ZEdGeWRDQjNhWFJvSUNSN1ltRmtRMmhoY24xZ0tUdGNiaUFnSUNCeVpYUjFjbTRnWm05c1pFeHBibVZ6S0hOdmRYSmpaU2s3WEc1OVhHNW1kVzVqZEdsdmJpQnphVzVuYkdWUmRXOTBaV1JXWVd4MVpTaHpiM1Z5WTJVc0lHOXVSWEp5YjNJcElIdGNiaUFnSUNCcFppQW9jMjkxY21ObFczTnZkWEpqWlM1c1pXNW5kR2dnTFNBeFhTQWhQVDBnWENJblhDSWdmSHdnYzI5MWNtTmxMbXhsYm1kMGFDQTlQVDBnTVNsY2JpQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loemIzVnlZMlV1YkdWdVozUm9MQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2dYQ0pOYVhOemFXNW5JR05zYjNOcGJtY2dKM0YxYjNSbFhDSXBPMXh1SUNBZ0lISmxkSFZ5YmlCbWIyeGtUR2x1WlhNb2MyOTFjbU5sTG5Oc2FXTmxLREVzSUMweEtTa3VjbVZ3YkdGalpTZ3ZKeWN2Wnl3Z1hDSW5YQ0lwTzF4dWZWeHVablZ1WTNScGIyNGdabTlzWkV4cGJtVnpLSE52ZFhKalpTa2dlMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCdVpXZGhkR2wyWlNCc2IyOXJZbVZvYVc1a0lHaGxjbVVnWVc1a0lHbHVJSFJvWlNCZ2NtVmdJRkpsWjBWNGNDQnBjeUIwYjF4dUlDQWdJQ0FxSUhCeVpYWmxiblFnWTJGMWMybHVaeUJoSUhCdmJIbHViMjFwWVd3Z2MyVmhjbU5vSUhScGJXVWdhVzRnWTJWeWRHRnBiaUJqWVhObGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGUm9aU0IwY25rdFkyRjBZMmdnYVhNZ1ptOXlJRk5oWm1GeWFTd2dkMmhwWTJnZ1pHOWxjMjRuZENCemRYQndiM0owSUhSb2FYTWdlV1YwT2x4dUlDQWdJQ0FxSUdoMGRIQnpPaTh2WTJGdWFYVnpaUzVqYjIwdmFuTXRjbVZuWlhod0xXeHZiMnRpWldocGJtUmNiaUFnSUNBZ0tpOWNiaUFnSUNCc1pYUWdabWx5YzNRc0lHeHBibVU3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ1ptbHljM1FnUFNCdVpYY2dVbVZuUlhod0tDY29MaW8vS1NnL1BDRmJJRnhjZEYwcFd5QmNYSFJkS2x4Y2NqOWNYRzRuTENBbmMza25LVHRjYmlBZ0lDQWdJQ0FnYkdsdVpTQTlJRzVsZHlCU1pXZEZlSEFvSjFzZ1hGeDBYU29vTGlvL0tTZy9PaWcvUENGYklGeGNkRjBwV3lCY1hIUmRLaWsvWEZ4eVAxeGNiaWNzSUNkemVTY3BPMXh1SUNBZ0lIMWNiaUFnSUNCallYUmphQ0I3WEc0Z0lDQWdJQ0FnSUdacGNuTjBJRDBnTHlndUtqOHBXeUJjWEhSZEtseGNjajljWEc0dmMzazdYRzRnSUNBZ0lDQWdJR3hwYm1VZ1BTQXZXeUJjWEhSZEtpZ3VLajhwV3lCY1hIUmRLbHhjY2o5Y1hHNHZjM2s3WEc0Z0lDQWdmVnh1SUNBZ0lHeGxkQ0J0WVhSamFDQTlJR1pwY25OMExtVjRaV01vYzI5MWNtTmxLVHRjYmlBZ0lDQnBaaUFvSVcxaGRHTm9LVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjMjkxY21ObE8xeHVJQ0FnSUd4bGRDQnlaWE1nUFNCdFlYUmphRnN4WFR0Y2JpQWdJQ0JzWlhRZ2MyVndJRDBnSnlBbk8xeHVJQ0FnSUd4bGRDQndiM01nUFNCbWFYSnpkQzVzWVhOMFNXNWtaWGc3WEc0Z0lDQWdiR2x1WlM1c1lYTjBTVzVrWlhnZ1BTQndiM003WEc0Z0lDQWdkMmhwYkdVZ0tDaHRZWFJqYUNBOUlHeHBibVV1WlhobFl5aHpiM1Z5WTJVcEtTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JXRjBZMmhiTVYwZ1BUMDlJQ2NuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MyVndJRDA5UFNBblhGeHVKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhNZ0t6MGdjMlZ3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNDQTlJQ2RjWEc0bk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WeklDczlJSE5sY0NBcklHMWhkR05vV3pGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWd0lEMGdKeUFuTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIQnZjeUE5SUd4cGJtVXViR0Z6ZEVsdVpHVjRPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JzWVhOMElEMGdMMXNnWEZ4MFhTb29MaW9wTDNONU8xeHVJQ0FnSUd4aGMzUXViR0Z6ZEVsdVpHVjRJRDBnY0c5ek8xeHVJQ0FnSUcxaGRHTm9JRDBnYkdGemRDNWxlR1ZqS0hOdmRYSmpaU2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxjeUFySUhObGNDQXJJQ2h0WVhSamFEOHVXekZkSUQ4L0lDY25LVHRjYm4xY2JtWjFibU4wYVc5dUlHUnZkV0pzWlZGMWIzUmxaRlpoYkhWbEtITnZkWEpqWlN3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUd4bGRDQnlaWE1nUFNBbkp6dGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNVHNnYVNBOElITnZkWEpqWlM1c1pXNW5kR2dnTFNBeE95QXJLMmtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJnZ1BTQnpiM1Z5WTJWYmFWMDdYRzRnSUNBZ0lDQWdJR2xtSUNoamFDQTlQVDBnSjF4Y2NpY2dKaVlnYzI5MWNtTmxXMmtnS3lBeFhTQTlQVDBnSjF4Y2JpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR05vSUQwOVBTQW5YRnh1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdleUJtYjJ4a0xDQnZabVp6WlhRZ2ZTQTlJR1p2YkdST1pYZHNhVzVsS0hOdmRYSmpaU3dnYVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhNZ0t6MGdabTlzWkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2tnUFNCdlptWnpaWFE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyZ2dQVDA5SUNkY1hGeGNKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUc1bGVIUWdQU0J6YjNWeVkyVmJLeXRwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTmpJRDBnWlhOallYQmxRMjlrWlhOYmJtVjRkRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpJQ3M5SUdOak8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYm1WNGRDQTlQVDBnSjF4Y2JpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCemEybHdJR1Z6WTJGd1pXUWdibVYzYkdsdVpYTXNJR0oxZENCemRHbHNiQ0IwY21sdElIUm9aU0JtYjJ4c2IzZHBibWNnYkdsdVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFFnUFNCemIzVnlZMlZiYVNBcklERmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaHVaWGgwSUQwOVBTQW5JQ2NnZkh3Z2JtVjRkQ0E5UFQwZ0oxeGNkQ2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFFnUFNCemIzVnlZMlZiS3l0cElDc2dNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNodVpYaDBJRDA5UFNBblhGeHlKeUFtSmlCemIzVnlZMlZiYVNBcklERmRJRDA5UFNBblhGeHVKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklITnJhWEFnWlhOallYQmxaQ0JEVWt4R0lHNWxkMnhwYm1WekxDQmlkWFFnYzNScGJHd2dkSEpwYlNCMGFHVWdabTlzYkc5M2FXNW5JR3hwYm1WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBJRDBnYzI5MWNtTmxXeXNyYVNBcklERmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaHVaWGgwSUQwOVBTQW5JQ2NnZkh3Z2JtVjRkQ0E5UFQwZ0oxeGNkQ2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFFnUFNCemIzVnlZMlZiS3l0cElDc2dNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNodVpYaDBJRDA5UFNBbmVDY2dmSHdnYm1WNGRDQTlQVDBnSjNVbklIeDhJRzVsZUhRZ1BUMDlJQ2RWSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4bGJtZDBhQ0E5SUhzZ2VEb2dNaXdnZFRvZ05Dd2dWVG9nT0NCOVcyNWxlSFJkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGN5QXJQU0J3WVhKelpVTm9ZWEpEYjJSbEtITnZkWEpqWlN3Z2FTQXJJREVzSUd4bGJtZDBhQ3dnYjI1RmNuSnZjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBclBTQnNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J5WVhjZ1BTQnpiM1Z5WTJVdWMzVmljM1J5S0drZ0xTQXhMQ0F5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrVnljbTl5S0drZ0xTQXhMQ0FuUWtGRVgwUlJYMFZUUTBGUVJTY3NJR0JKYm5aaGJHbGtJR1Z6WTJGd1pTQnpaWEYxWlc1alpTQWtlM0poZDMxZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE1nS3owZ2NtRjNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR05vSUQwOVBTQW5JQ2NnZkh3Z1kyZ2dQVDA5SUNkY1hIUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUIwY21sdElIUnlZV2xzYVc1bklIZG9hWFJsYzNCaFkyVmNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSGR6VTNSaGNuUWdQU0JwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUc1bGVIUWdQU0J6YjNWeVkyVmJhU0FySURGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLRzVsZUhRZ1BUMDlJQ2NnSnlCOGZDQnVaWGgwSUQwOVBTQW5YRngwSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBJRDBnYzI5MWNtTmxXeXNyYVNBcklERmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzVsZUhRZ0lUMDlJQ2RjWEc0bklDWW1JQ0VvYm1WNGRDQTlQVDBnSjF4Y2NpY2dKaVlnYzI5MWNtTmxXMmtnS3lBeVhTQTlQVDBnSjF4Y2JpY3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY3lBclBTQnBJRDRnZDNOVGRHRnlkQ0EvSUhOdmRYSmpaUzV6YkdsalpTaDNjMU4wWVhKMExDQnBJQ3NnTVNrZ09pQmphRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjeUFyUFNCamFEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCcFppQW9jMjkxY21ObFczTnZkWEpqWlM1c1pXNW5kR2dnTFNBeFhTQWhQVDBnSjF3aUp5QjhmQ0J6YjNWeVkyVXViR1Z1WjNSb0lEMDlQU0F4S1Z4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0hOdmRYSmpaUzVzWlc1bmRHZ3NJQ2ROU1ZOVFNVNUhYME5JUVZJbkxDQW5UV2x6YzJsdVp5QmpiRzl6YVc1bklGd2ljWFZ2ZEdVbktUdGNiaUFnSUNCeVpYUjFjbTRnY21Wek8xeHVmVnh1THlvcVhHNGdLaUJHYjJ4a0lHRWdjMmx1WjJ4bElHNWxkMnhwYm1VZ2FXNTBieUJoSUhOd1lXTmxMQ0J0ZFd4MGFYQnNaU0J1Wlhkc2FXNWxjeUIwYnlCT0lDMGdNU0J1Wlhkc2FXNWxjeTVjYmlBcUlGQnlaWE4xYldWeklHQnpiM1Z5WTJWYmIyWm1jMlYwWFNBOVBUMGdKMXhjYmlkZ1hHNGdLaTljYm1aMWJtTjBhVzl1SUdadmJHUk9aWGRzYVc1bEtITnZkWEpqWlN3Z2IyWm1jMlYwS1NCN1hHNGdJQ0FnYkdWMElHWnZiR1FnUFNBbkp6dGNiaUFnSUNCc1pYUWdZMmdnUFNCemIzVnlZMlZiYjJabWMyVjBJQ3NnTVYwN1hHNGdJQ0FnZDJocGJHVWdLR05vSUQwOVBTQW5JQ2NnZkh3Z1kyZ2dQVDA5SUNkY1hIUW5JSHg4SUdOb0lEMDlQU0FuWEZ4dUp5QjhmQ0JqYUNBOVBUMGdKMXhjY2ljcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuWEZ4eUp5QW1KaUJ6YjNWeVkyVmJiMlptYzJWMElDc2dNbDBnSVQwOUlDZGNYRzRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqYUNBOVBUMGdKMXhjYmljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjJ4a0lDczlJQ2RjWEc0bk8xeHVJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdNVHRjYmlBZ0lDQWdJQ0FnWTJnZ1BTQnpiM1Z5WTJWYmIyWm1jMlYwSUNzZ01WMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ2habTlzWkNsY2JpQWdJQ0FnSUNBZ1ptOXNaQ0E5SUNjZ0p6dGNiaUFnSUNCeVpYUjFjbTRnZXlCbWIyeGtMQ0J2Wm1aelpYUWdmVHRjYm4xY2JtTnZibk4wSUdWelkyRndaVU52WkdWeklEMGdlMXh1SUNBZ0lDY3dKem9nSjF4Y01DY3NJQzh2SUc1MWJHd2dZMmhoY21GamRHVnlYRzRnSUNBZ1lUb2dKMXhjZURBM0p5d2dMeThnWW1Wc2JDQmphR0Z5WVdOMFpYSmNiaUFnSUNCaU9pQW5YRnhpSnl3Z0x5OGdZbUZqYTNOd1lXTmxYRzRnSUNBZ1pUb2dKMXhjZURGaUp5d2dMeThnWlhOallYQmxJR05vWVhKaFkzUmxjbHh1SUNBZ0lHWTZJQ2RjWEdZbkxDQXZMeUJtYjNKdElHWmxaV1JjYmlBZ0lDQnVPaUFuWEZ4dUp5d2dMeThnYkdsdVpTQm1aV1ZrWEc0Z0lDQWdjam9nSjF4Y2NpY3NJQzh2SUdOaGNuSnBZV2RsSUhKbGRIVnlibHh1SUNBZ0lIUTZJQ2RjWEhRbkxDQXZMeUJvYjNKcGVtOXVkR0ZzSUhSaFlseHVJQ0FnSUhZNklDZGNYSFluTENBdkx5QjJaWEowYVdOaGJDQjBZV0pjYmlBZ0lDQk9PaUFuWEZ4MU1EQTROU2NzSUM4dklGVnVhV052WkdVZ2JtVjRkQ0JzYVc1bFhHNGdJQ0FnWHpvZ0oxeGNkVEF3WVRBbkxDQXZMeUJWYm1samIyUmxJRzV2YmkxaWNtVmhhMmx1WnlCemNHRmpaVnh1SUNBZ0lFdzZJQ2RjWEhVeU1ESTRKeXdnTHk4Z1ZXNXBZMjlrWlNCc2FXNWxJSE5sY0dGeVlYUnZjbHh1SUNBZ0lGQTZJQ2RjWEhVeU1ESTVKeXdnTHk4Z1ZXNXBZMjlrWlNCd1lYSmhaM0poY0dnZ2MyVndZWEpoZEc5eVhHNGdJQ0FnSnlBbk9pQW5JQ2NzWEc0Z0lDQWdKMXdpSnpvZ0oxd2lKeXhjYmlBZ0lDQW5MeWM2SUNjdkp5eGNiaUFnSUNBblhGeGNYQ2M2SUNkY1hGeGNKeXhjYmlBZ0lDQW5YRngwSnpvZ0oxeGNkQ2RjYm4wN1hHNW1kVzVqZEdsdmJpQndZWEp6WlVOb1lYSkRiMlJsS0hOdmRYSmpaU3dnYjJabWMyVjBMQ0JzWlc1bmRHZ3NJRzl1UlhKeWIzSXBJSHRjYmlBZ0lDQmpiMjV6ZENCall5QTlJSE52ZFhKalpTNXpkV0p6ZEhJb2IyWm1jMlYwTENCc1pXNW5kR2dwTzF4dUlDQWdJR052Ym5OMElHOXJJRDBnWTJNdWJHVnVaM1JvSUQwOVBTQnNaVzVuZEdnZ0ppWWdMMTViTUMwNVlTMW1RUzFHWFNza0x5NTBaWE4wS0dOaktUdGNiaUFnSUNCamIyNXpkQ0JqYjJSbElEMGdiMnNnUHlCd1lYSnpaVWx1ZENoall5d2dNVFlwSURvZ1RtRk9PMXh1SUNBZ0lHbG1JQ2hwYzA1aFRpaGpiMlJsS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVlYY2dQU0J6YjNWeVkyVXVjM1ZpYzNSeUtHOW1abk5sZENBdElESXNJR3hsYm1kMGFDQXJJRElwTzF4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0c5bVpuTmxkQ0F0SURJc0lDZENRVVJmUkZGZlJWTkRRVkJGSnl3Z1lFbHVkbUZzYVdRZ1pYTmpZWEJsSUhObGNYVmxibU5sSUNSN2NtRjNmV0FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21GM08xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdVM1J5YVc1bkxtWnliMjFEYjJSbFVHOXBiblFvWTI5a1pTazdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lISmxjMjlzZG1WR2JHOTNVMk5oYkdGeUlIMDdYRzRpTENBaWFXMXdiM0owSUhzZ2FYTlRZMkZzWVhJc0lGTkRRVXhCVWlCOUlHWnliMjBnSnk0dUwyNXZaR1Z6TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJRk5qWVd4aGNpQjlJR1p5YjIwZ0p5NHVMMjV2WkdWekwxTmpZV3hoY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxRbXh2WTJ0VFkyRnNZWElnZlNCbWNtOXRJQ2N1TDNKbGMyOXNkbVV0WW14dlkyc3RjMk5oYkdGeUxtcHpKenRjYm1sdGNHOXlkQ0I3SUhKbGMyOXNkbVZHYkc5M1UyTmhiR0Z5SUgwZ1puSnZiU0FuTGk5eVpYTnZiSFpsTFdac2IzY3RjMk5oYkdGeUxtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z1kyOXRjRzl6WlZOallXeGhjaWhqZEhnc0lIUnZhMlZ1TENCMFlXZFViMnRsYml3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnZG1Gc2RXVXNJSFI1Y0dVc0lHTnZiVzFsYm5Rc0lISmhibWRsSUgwZ1BTQjBiMnRsYmk1MGVYQmxJRDA5UFNBbllteHZZMnN0YzJOaGJHRnlKMXh1SUNBZ0lDQWdJQ0EvSUhKbGMyOXNkbVZDYkc5amExTmpZV3hoY2loamRIZ3NJSFJ2YTJWdUxDQnZia1Z5Y205eUtWeHVJQ0FnSUNBZ0lDQTZJSEpsYzI5c2RtVkdiRzkzVTJOaGJHRnlLSFJ2YTJWdUxDQmpkSGd1YjNCMGFXOXVjeTV6ZEhKcFkzUXNJRzl1UlhKeWIzSXBPMXh1SUNBZ0lHTnZibk4wSUhSaFowNWhiV1VnUFNCMFlXZFViMnRsYmx4dUlDQWdJQ0FnSUNBL0lHTjBlQzVrYVhKbFkzUnBkbVZ6TG5SaFowNWhiV1VvZEdGblZHOXJaVzR1YzI5MWNtTmxMQ0J0YzJjZ1BUNGdiMjVGY25KdmNpaDBZV2RVYjJ0bGJpd2dKMVJCUjE5U1JWTlBURlpGWDBaQlNVeEZSQ2NzSUcxelp5a3BYRzRnSUNBZ0lDQWdJRG9nYm5Wc2JEdGNiaUFnSUNCc1pYUWdkR0ZuTzF4dUlDQWdJR2xtSUNoamRIZ3ViM0IwYVc5dWN5NXpkSEpwYm1kTFpYbHpJQ1ltSUdOMGVDNWhkRXRsZVNrZ2UxeHVJQ0FnSUNBZ0lDQjBZV2NnUFNCamRIZ3VjMk5vWlcxaFcxTkRRVXhCVWwwN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLSFJoWjA1aGJXVXBYRzRnSUNBZ0lDQWdJSFJoWnlBOUlHWnBibVJUWTJGc1lYSlVZV2RDZVU1aGJXVW9ZM1I0TG5OamFHVnRZU3dnZG1Gc2RXVXNJSFJoWjA1aGJXVXNJSFJoWjFSdmEyVnVMQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBiMnRsYmk1MGVYQmxJRDA5UFNBbmMyTmhiR0Z5SnlsY2JpQWdJQ0FnSUNBZ2RHRm5JRDBnWm1sdVpGTmpZV3hoY2xSaFowSjVWR1Z6ZENoamRIZ3NJSFpoYkhWbExDQjBiMnRsYml3Z2IyNUZjbkp2Y2lrN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQjBZV2NnUFNCamRIZ3VjMk5vWlcxaFcxTkRRVXhCVWwwN1hHNGdJQ0FnYkdWMElITmpZV3hoY2p0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTWdQU0IwWVdjdWNtVnpiMngyWlNoMllXeDFaU3dnYlhObklEMCtJRzl1UlhKeWIzSW9kR0ZuVkc5clpXNGdQejhnZEc5clpXNHNJQ2RVUVVkZlVrVlRUMHhXUlY5R1FVbE1SVVFuTENCdGMyY3BMQ0JqZEhndWIzQjBhVzl1Y3lrN1hHNGdJQ0FnSUNBZ0lITmpZV3hoY2lBOUlHbHpVMk5oYkdGeUtISmxjeWtnUHlCeVpYTWdPaUJ1WlhjZ1UyTmhiR0Z5S0hKbGN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRjMmNnUFNCbGNuSnZjaUJwYm5OMFlXNWpaVzltSUVWeWNtOXlJRDhnWlhKeWIzSXViV1Z6YzJGblpTQTZJRk4wY21sdVp5aGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2RHRm5WRzlyWlc0Z1B6OGdkRzlyWlc0c0lDZFVRVWRmVWtWVFQweFdSVjlHUVVsTVJVUW5MQ0J0YzJjcE8xeHVJQ0FnSUNBZ0lDQnpZMkZzWVhJZ1BTQnVaWGNnVTJOaGJHRnlLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYzJOaGJHRnlMbkpoYm1kbElEMGdjbUZ1WjJVN1hHNGdJQ0FnYzJOaGJHRnlMbk52ZFhKalpTQTlJSFpoYkhWbE8xeHVJQ0FnSUdsbUlDaDBlWEJsS1Z4dUlDQWdJQ0FnSUNCelkyRnNZWEl1ZEhsd1pTQTlJSFI1Y0dVN1hHNGdJQ0FnYVdZZ0tIUmhaMDVoYldVcFhHNGdJQ0FnSUNBZ0lITmpZV3hoY2k1MFlXY2dQU0IwWVdkT1lXMWxPMXh1SUNBZ0lHbG1JQ2gwWVdjdVptOXliV0YwS1Z4dUlDQWdJQ0FnSUNCelkyRnNZWEl1Wm05eWJXRjBJRDBnZEdGbkxtWnZjbTFoZER0Y2JpQWdJQ0JwWmlBb1kyOXRiV1Z1ZENsY2JpQWdJQ0FnSUNBZ2MyTmhiR0Z5TG1OdmJXMWxiblFnUFNCamIyMXRaVzUwTzF4dUlDQWdJSEpsZEhWeWJpQnpZMkZzWVhJN1hHNTlYRzVtZFc1amRHbHZiaUJtYVc1a1UyTmhiR0Z5VkdGblFubE9ZVzFsS0hOamFHVnRZU3dnZG1Gc2RXVXNJSFJoWjA1aGJXVXNJSFJoWjFSdmEyVnVMQ0J2YmtWeWNtOXlLU0I3WEc0Z0lDQWdhV1lnS0hSaFowNWhiV1VnUFQwOUlDY2hKeWxjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE5qYUdWdFlWdFRRMEZNUVZKZE95QXZMeUJ1YjI0dGMzQmxZMmxtYVdNZ2RHRm5YRzRnSUNBZ1kyOXVjM1FnYldGMFkyaFhhWFJvVkdWemRDQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZEdGbklHOW1JSE5qYUdWdFlTNTBZV2R6S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZEdGbkxtTnZiR3hsWTNScGIyNGdKaVlnZEdGbkxuUmhaeUE5UFQwZ2RHRm5UbUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUmhaeTVrWldaaGRXeDBJQ1ltSUhSaFp5NTBaWE4wS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGRHTm9WMmwwYUZSbGMzUXVjSFZ6YUNoMFlXY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBZV2M3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0IwWVdjZ2IyWWdiV0YwWTJoWGFYUm9WR1Z6ZENsY2JpQWdJQ0FnSUNBZ2FXWWdLSFJoWnk1MFpYTjBQeTUwWlhOMEtIWmhiSFZsS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBZV2M3WEc0Z0lDQWdZMjl1YzNRZ2EzUWdQU0J6WTJobGJXRXVhMjV2ZDI1VVlXZHpXM1JoWjA1aGJXVmRPMXh1SUNBZ0lHbG1JQ2hyZENBbUppQWhhM1F1WTI5c2JHVmpkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJGYm5OMWNtVWdkR2hoZENCMGFHVWdhMjV2ZDI0Z2RHRm5JR2x6SUdGMllXbHNZV0pzWlNCbWIzSWdjM1J5YVc1bmFXWjVhVzVuTEZ4dUlDQWdJQ0FnSUNBdkx5QmlkWFFnWkc5bGN5QnViM1FnWjJWMElIVnpaV1FnWW5rZ1pHVm1ZWFZzZEM1Y2JpQWdJQ0FnSUNBZ2MyTm9aVzFoTG5SaFozTXVjSFZ6YUNoUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCcmRDd2dleUJrWldaaGRXeDBPaUJtWVd4elpTd2dkR1Z6ZERvZ2RXNWtaV1pwYm1Wa0lIMHBLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3QwTzF4dUlDQWdJSDFjYmlBZ0lDQnZia1Z5Y205eUtIUmhaMVJ2YTJWdUxDQW5WRUZIWDFKRlUwOU1Wa1ZmUmtGSlRFVkVKeXdnWUZWdWNtVnpiMngyWldRZ2RHRm5PaUFrZTNSaFowNWhiV1Y5WUN3Z2RHRm5UbUZ0WlNBaFBUMGdKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbk4wY2ljcE8xeHVJQ0FnSUhKbGRIVnliaUJ6WTJobGJXRmJVME5CVEVGU1hUdGNibjFjYm1aMWJtTjBhVzl1SUdacGJtUlRZMkZzWVhKVVlXZENlVlJsYzNRb2V5QmhkRXRsZVN3Z1pHbHlaV04wYVhabGN5d2djMk5vWlcxaElIMHNJSFpoYkhWbExDQjBiMnRsYml3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFJoWnlBOUlITmphR1Z0WVM1MFlXZHpMbVpwYm1Rb2RHRm5JRDArSUNoMFlXY3VaR1ZtWVhWc2RDQTlQVDBnZEhKMVpTQjhmQ0FvWVhSTFpYa2dKaVlnZEdGbkxtUmxabUYxYkhRZ1BUMDlJQ2RyWlhrbktTa2dKaVpjYmlBZ0lDQWdJQ0FnZEdGbkxuUmxjM1EvTG5SbGMzUW9kbUZzZFdVcEtTQjhmQ0J6WTJobGJXRmJVME5CVEVGU1hUdGNiaUFnSUNCcFppQW9jMk5vWlcxaExtTnZiWEJoZENrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamIyMXdZWFFnUFNCelkyaGxiV0V1WTI5dGNHRjBMbVpwYm1Rb2RHRm5JRDArSUhSaFp5NWtaV1poZFd4MElDWW1JSFJoWnk1MFpYTjBQeTUwWlhOMEtIWmhiSFZsS1NrZ1B6OWNiaUFnSUNBZ0lDQWdJQ0FnSUhOamFHVnRZVnRUUTBGTVFWSmRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHRm5MblJoWnlBaFBUMGdZMjl0Y0dGMExuUmhaeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RITWdQU0JrYVhKbFkzUnBkbVZ6TG5SaFoxTjBjbWx1WnloMFlXY3VkR0ZuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTnpJRDBnWkdseVpXTjBhWFpsY3k1MFlXZFRkSEpwYm1jb1kyOXRjR0YwTG5SaFp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQmdWbUZzZFdVZ2JXRjVJR0psSUhCaGNuTmxaQ0JoY3lCbGFYUm9aWElnSkh0MGMzMGdiM0lnSkh0amMzMWdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNUZjbkp2Y2loMGIydGxiaXdnSjFSQlIxOVNSVk5QVEZaRlgwWkJTVXhGUkNjc0lHMXpaeXdnZEhKMVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSaFp6dGNibjFjYmx4dVpYaHdiM0owSUhzZ1kyOXRjRzl6WlZOallXeGhjaUI5TzF4dUlpd2dJbVoxYm1OMGFXOXVJR1Z0Y0hSNVUyTmhiR0Z5VUc5emFYUnBiMjRvYjJabWMyVjBMQ0JpWldadmNtVXNJSEJ2Y3lrZ2UxeHVJQ0FnSUdsbUlDaGlaV1p2Y21VcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hCdmN5QTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmN5QTlJR0psWm05eVpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0J3YjNNZ0xTQXhPeUJwSUQ0OUlEQTdJQzB0YVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElITjBJRDBnWW1WbWIzSmxXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaHpkQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMzQmhZMlVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMk52YlcxbGJuUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyNWxkMnhwYm1Vbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUWdMVDBnYzNRdWMyOTFjbU5sTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJVWldOb2JtbGpZV3hzZVN3Z1lXNGdaVzF3ZEhrZ2MyTmhiR0Z5SUdseklHbHRiV1ZrYVdGMFpXeDVJR0ZtZEdWeUlIUm9aU0JzWVhOMElHNXZiaTFsYlhCMGVWeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2JtOWtaU3dnWW5WMElHbDBKM01nYlc5eVpTQjFjMlZtZFd3Z2RHOGdjR3hoWTJVZ2FYUWdZV1owWlhJZ1lXNTVJSGRvYVhSbGMzQmhZMlV1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkQ0E5SUdKbFptOXlaVnNySzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLSE4wUHk1MGVYQmxJRDA5UFNBbmMzQmhZMlVuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyWm1jMlYwSUNzOUlITjBMbk52ZFhKalpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUWdQU0JpWldadmNtVmJLeXRwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnZabVp6WlhRN1hHNTlYRzVjYm1WNGNHOXlkQ0I3SUdWdGNIUjVVMk5oYkdGeVVHOXphWFJwYjI0Z2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCQmJHbGhjeUI5SUdaeWIyMGdKeTR1TDI1dlpHVnpMMEZzYVdGekxtcHpKenRjYm1sdGNHOXlkQ0I3SUdselUyTmhiR0Z5SUgwZ1puSnZiU0FuTGk0dmJtOWtaWE12YVdSbGJuUnBkSGt1YW5Nbk8xeHVhVzF3YjNKMElIc2dZMjl0Y0c5elpVTnZiR3hsWTNScGIyNGdmU0JtY205dElDY3VMMk52YlhCdmMyVXRZMjlzYkdWamRHbHZiaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QmpiMjF3YjNObFUyTmhiR0Z5SUgwZ1puSnZiU0FuTGk5amIyMXdiM05sTFhOallXeGhjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnlaWE52YkhabFJXNWtJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMV1Z1WkM1cWN5YzdYRzVwYlhCdmNuUWdleUJsYlhCMGVWTmpZV3hoY2xCdmMybDBhVzl1SUgwZ1puSnZiU0FuTGk5MWRHbHNMV1Z0Y0hSNUxYTmpZV3hoY2kxd2IzTnBkR2x2Ymk1cWN5YzdYRzVjYm1OdmJuTjBJRU5PSUQwZ2V5QmpiMjF3YjNObFRtOWtaU3dnWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU0I5TzF4dVpuVnVZM1JwYjI0Z1kyOXRjRzl6WlU1dlpHVW9ZM1I0TENCMGIydGxiaXdnY0hKdmNITXNJRzl1UlhKeWIzSXBJSHRjYmlBZ0lDQmpiMjV6ZENCaGRFdGxlU0E5SUdOMGVDNWhkRXRsZVR0Y2JpQWdJQ0JqYjI1emRDQjdJSE53WVdObFFtVm1iM0psTENCamIyMXRaVzUwTENCaGJtTm9iM0lzSUhSaFp5QjlJRDBnY0hKdmNITTdYRzRnSUNBZ2JHVjBJRzV2WkdVN1hHNGdJQ0FnYkdWMElHbHpVM0pqVkc5clpXNGdQU0IwY25WbE8xeHVJQ0FnSUhOM2FYUmphQ0FvZEc5clpXNHVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQmpZWE5sSUNkaGJHbGhjeWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnViMlJsSUQwZ1kyOXRjRzl6WlVGc2FXRnpLR04wZUN3Z2RHOXJaVzRzSUc5dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dGdVkyaHZjaUI4ZkNCMFlXY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDBiMnRsYml3Z0owRk1TVUZUWDFCU1QxQlRKeXdnSjBGdUlHRnNhV0Z6SUc1dlpHVWdiWFZ6ZENCdWIzUWdjM0JsWTJsbWVTQmhibmtnY0hKdmNHVnlkR2xsY3ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJR05oYzJVZ0ozTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lHTmhjMlVnSjNOcGJtZHNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblpHOTFZbXhsTFhGMWIzUmxaQzF6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdibTlrWlNBOUlHTnZiWEJ2YzJWVFkyRnNZWElvWTNSNExDQjBiMnRsYml3Z2RHRm5MQ0J2YmtWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hoYm1Ob2IzSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibTlrWlM1aGJtTm9iM0lnUFNCaGJtTm9iM0l1YzI5MWNtTmxMbk4xWW5OMGNtbHVaeWd4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNkaWJHOWpheTF0WVhBbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNkaWJHOWpheTF6WlhFbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNkbWJHOTNMV052Ykd4bFkzUnBiMjRuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdibTlrWlNBOUlHTnZiWEJ2YzJWRGIyeHNaV04wYVc5dUtFTk9MQ0JqZEhnc0lIUnZhMlZ1TENCd2NtOXdjeXdnYjI1RmNuSnZjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVc1amFHOXlLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzV2WkdVdVlXNWphRzl5SUQwZ1lXNWphRzl5TG5OdmRYSmpaUzV6ZFdKemRISnBibWNvTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdaR1ZtWVhWc2REb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUhSdmEyVnVMblI1Y0dVZ1BUMDlJQ2RsY25KdmNpZGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSFJ2YTJWdUxtMWxjM05oWjJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHQlZibk4xY0hCdmNuUmxaQ0IwYjJ0bGJpQW9kSGx3WlRvZ0pIdDBiMnRsYmk1MGVYQmxmU2xnTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaDBiMnRsYml3Z0oxVk9SVmhRUlVOVVJVUmZWRTlMUlU0bkxDQnRaWE56WVdkbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUc1dlpHVWdQU0JqYjIxd2IzTmxSVzF3ZEhsT2IyUmxLR04wZUN3Z2RHOXJaVzR1YjJabWMyVjBMQ0IxYm1SbFptbHVaV1FzSUc1MWJHd3NJSEJ5YjNCekxDQnZia1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdselUzSmpWRzlyWlc0Z1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb1lXNWphRzl5SUNZbUlHNXZaR1V1WVc1amFHOXlJRDA5UFNBbkp5bGNiaUFnSUNBZ0lDQWdiMjVGY25KdmNpaGhibU5vYjNJc0lDZENRVVJmUVV4SlFWTW5MQ0FuUVc1amFHOXlJR05oYm01dmRDQmlaU0JoYmlCbGJYQjBlU0J6ZEhKcGJtY25LVHRjYmlBZ0lDQnBaaUFvWVhSTFpYa2dKaVpjYmlBZ0lDQWdJQ0FnWTNSNExtOXdkR2x2Ym5NdWMzUnlhVzVuUzJWNWN5QW1KbHh1SUNBZ0lDQWdJQ0FvSVdselUyTmhiR0Z5S0c1dlpHVXBJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsYjJZZ2JtOWtaUzUyWVd4MVpTQWhQVDBnSjNOMGNtbHVaeWNnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2h1YjJSbExuUmhaeUFtSmlCdWIyUmxMblJoWnlBaFBUMGdKM1JoWnpwNVlXMXNMbTl5Wnl3eU1EQXlPbk4wY2ljcEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRjMmNnUFNBblYybDBhQ0J6ZEhKcGJtZExaWGx6TENCaGJHd2dhMlY1Y3lCdGRYTjBJR0psSUhOMGNtbHVaM01uTzF4dUlDQWdJQ0FnSUNCdmJrVnljbTl5S0hSaFp5QS9QeUIwYjJ0bGJpd2dKMDVQVGw5VFZGSkpUa2RmUzBWWkp5d2diWE5uS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOd1lXTmxRbVZtYjNKbEtWeHVJQ0FnSUNBZ0lDQnViMlJsTG5Od1lXTmxRbVZtYjNKbElEMGdkSEoxWlR0Y2JpQWdJQ0JwWmlBb1kyOXRiV1Z1ZENrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEc5clpXNHVkSGx3WlNBOVBUMGdKM05qWVd4aGNpY2dKaVlnZEc5clpXNHVjMjkxY21ObElEMDlQU0FuSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJRzV2WkdVdVkyOXRiV1Z1ZENBOUlHTnZiVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1V1WTI5dGJXVnVkRUpsWm05eVpTQTlJR052YlcxbGJuUTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ1ZIbHdaU0JqYUdWamEybHVaeUJ0YVhOelpYTWdiV1ZoYm1sdVp5QnZaaUJwYzFOeVkxUnZhMlZ1WEc0Z0lDQWdhV1lnS0dOMGVDNXZjSFJwYjI1ekxtdGxaWEJUYjNWeVkyVlViMnRsYm5NZ0ppWWdhWE5UY21OVWIydGxiaWxjYmlBZ0lDQWdJQ0FnYm05a1pTNXpjbU5VYjJ0bGJpQTlJSFJ2YTJWdU8xeHVJQ0FnSUhKbGRIVnliaUJ1YjJSbE8xeHVmVnh1Wm5WdVkzUnBiMjRnWTI5dGNHOXpaVVZ0Y0hSNVRtOWtaU2hqZEhnc0lHOW1abk5sZEN3Z1ltVm1iM0psTENCd2IzTXNJSHNnYzNCaFkyVkNaV1p2Y21Vc0lHTnZiVzFsYm5Rc0lHRnVZMmh2Y2l3Z2RHRm5MQ0JsYm1RZ2ZTd2diMjVGY25KdmNpa2dlMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnZTF4dUlDQWdJQ0FnSUNCMGVYQmxPaUFuYzJOaGJHRnlKeXhjYmlBZ0lDQWdJQ0FnYjJabWMyVjBPaUJsYlhCMGVWTmpZV3hoY2xCdmMybDBhVzl1S0c5bVpuTmxkQ3dnWW1WbWIzSmxMQ0J3YjNNcExGeHVJQ0FnSUNBZ0lDQnBibVJsYm5RNklDMHhMRnh1SUNBZ0lDQWdJQ0J6YjNWeVkyVTZJQ2NuWEc0Z0lDQWdmVHRjYmlBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnWTI5dGNHOXpaVk5qWVd4aGNpaGpkSGdzSUhSdmEyVnVMQ0IwWVdjc0lHOXVSWEp5YjNJcE8xeHVJQ0FnSUdsbUlDaGhibU5vYjNJcElIdGNiaUFnSUNBZ0lDQWdibTlrWlM1aGJtTm9iM0lnUFNCaGJtTm9iM0l1YzI5MWNtTmxMbk4xWW5OMGNtbHVaeWd4S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzV2WkdVdVlXNWphRzl5SUQwOVBTQW5KeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVSWEp5YjNJb1lXNWphRzl5TENBblFrRkVYMEZNU1VGVEp5d2dKMEZ1WTJodmNpQmpZVzV1YjNRZ1ltVWdZVzRnWlcxd2RIa2djM1J5YVc1bkp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpjR0ZqWlVKbFptOXlaU2xjYmlBZ0lDQWdJQ0FnYm05a1pTNXpjR0ZqWlVKbFptOXlaU0E5SUhSeWRXVTdYRzRnSUNBZ2FXWWdLR052YlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnYm05a1pTNWpiMjF0Wlc1MElEMGdZMjl0YldWdWREdGNiaUFnSUNBZ0lDQWdibTlrWlM1eVlXNW5aVnN5WFNBOUlHVnVaRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUc1dlpHVTdYRzU5WEc1bWRXNWpkR2x2YmlCamIyMXdiM05sUVd4cFlYTW9leUJ2Y0hScGIyNXpJSDBzSUhzZ2IyWm1jMlYwTENCemIzVnlZMlVzSUdWdVpDQjlMQ0J2YmtWeWNtOXlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1lXeHBZWE1nUFNCdVpYY2dRV3hwWVhNb2MyOTFjbU5sTG5OMVluTjBjbWx1WnlneEtTazdYRzRnSUNBZ2FXWWdLR0ZzYVdGekxuTnZkWEpqWlNBOVBUMGdKeWNwWEc0Z0lDQWdJQ0FnSUc5dVJYSnliM0lvYjJabWMyVjBMQ0FuUWtGRVgwRk1TVUZUSnl3Z0owRnNhV0Z6SUdOaGJtNXZkQ0JpWlNCaGJpQmxiWEIwZVNCemRISnBibWNuS1R0Y2JpQWdJQ0JwWmlBb1lXeHBZWE11YzI5MWNtTmxMbVZ1WkhOWGFYUm9LQ2M2SnlrcFhHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJb2IyWm1jMlYwSUNzZ2MyOTFjbU5sTG14bGJtZDBhQ0F0SURFc0lDZENRVVJmUVV4SlFWTW5MQ0FuUVd4cFlYTWdaVzVrYVc1bklHbHVJRG9nYVhNZ1lXMWlhV2QxYjNWekp5d2dkSEoxWlNrN1hHNGdJQ0FnWTI5dWMzUWdkbUZzZFdWRmJtUWdQU0J2Wm1aelpYUWdLeUJ6YjNWeVkyVXViR1Z1WjNSb08xeHVJQ0FnSUdOdmJuTjBJSEpsSUQwZ2NtVnpiMngyWlVWdVpDaGxibVFzSUhaaGJIVmxSVzVrTENCdmNIUnBiMjV6TG5OMGNtbGpkQ3dnYjI1RmNuSnZjaWs3WEc0Z0lDQWdZV3hwWVhNdWNtRnVaMlVnUFNCYmIyWm1jMlYwTENCMllXeDFaVVZ1WkN3Z2NtVXViMlptYzJWMFhUdGNiaUFnSUNCcFppQW9jbVV1WTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnWVd4cFlYTXVZMjl0YldWdWRDQTlJSEpsTG1OdmJXMWxiblE3WEc0Z0lDQWdjbVYwZFhKdUlHRnNhV0Z6TzF4dWZWeHVYRzVsZUhCdmNuUWdleUJqYjIxd2IzTmxSVzF3ZEhsT2IyUmxMQ0JqYjIxd2IzTmxUbTlrWlNCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUVSdlkzVnRaVzUwSUgwZ1puSnZiU0FuTGk0dlpHOWpMMFJ2WTNWdFpXNTBMbXB6Snp0Y2JtbHRjRzl5ZENCN0lHTnZiWEJ2YzJWT2IyUmxMQ0JqYjIxd2IzTmxSVzF3ZEhsT2IyUmxJSDBnWm5KdmJTQW5MaTlqYjIxd2IzTmxMVzV2WkdVdWFuTW5PMXh1YVcxd2IzSjBJSHNnY21WemIyeDJaVVZ1WkNCOUlHWnliMjBnSnk0dmNtVnpiMngyWlMxbGJtUXVhbk1uTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTl5WlhOdmJIWmxMWEJ5YjNCekxtcHpKenRjYmx4dVpuVnVZM1JwYjI0Z1kyOXRjRzl6WlVSdll5aHZjSFJwYjI1ekxDQmthWEpsWTNScGRtVnpMQ0I3SUc5bVpuTmxkQ3dnYzNSaGNuUXNJSFpoYkhWbExDQmxibVFnZlN3Z2IyNUZjbkp2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJRzl3ZEhNZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0hzZ1gyUnBjbVZqZEdsMlpYTTZJR1JwY21WamRHbDJaWE1nZlN3Z2IzQjBhVzl1Y3lrN1hHNGdJQ0FnWTI5dWMzUWdaRzlqSUQwZ2JtVjNJRVJ2WTNWdFpXNTBLSFZ1WkdWbWFXNWxaQ3dnYjNCMGN5azdYRzRnSUNBZ1kyOXVjM1FnWTNSNElEMGdlMXh1SUNBZ0lDQWdJQ0JoZEV0bGVUb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lHRjBVbTl2ZERvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnWkdseVpXTjBhWFpsY3pvZ1pHOWpMbVJwY21WamRHbDJaWE1zWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk02SUdSdll5NXZjSFJwYjI1ekxGeHVJQ0FnSUNBZ0lDQnpZMmhsYldFNklHUnZZeTV6WTJobGJXRmNiaUFnSUNCOU8xeHVJQ0FnSUdOdmJuTjBJSEJ5YjNCeklEMGdjbVZ6YjJ4MlpWQnliM0J6S0hOMFlYSjBMQ0I3WEc0Z0lDQWdJQ0FnSUdsdVpHbGpZWFJ2Y2pvZ0oyUnZZeTF6ZEdGeWRDY3NYRzRnSUNBZ0lDQWdJRzVsZUhRNklIWmhiSFZsSUQ4L0lHVnVaRDh1V3pCZExGeHVJQ0FnSUNBZ0lDQnZabVp6WlhRc1hHNGdJQ0FnSUNBZ0lHOXVSWEp5YjNJc1hHNGdJQ0FnSUNBZ0lIQmhjbVZ1ZEVsdVpHVnVkRG9nTUN4Y2JpQWdJQ0FnSUNBZ2MzUmhjblJQYms1bGQyeHBibVU2SUhSeWRXVmNiaUFnSUNCOUtUdGNiaUFnSUNCcFppQW9jSEp2Y0hNdVptOTFibVFwSUh0Y2JpQWdJQ0FnSUNBZ1pHOWpMbVJwY21WamRHbDJaWE11Wkc5alUzUmhjblFnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RtRnNkV1VnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ2gyWVd4MVpTNTBlWEJsSUQwOVBTQW5ZbXh2WTJzdGJXRndKeUI4ZkNCMllXeDFaUzUwZVhCbElEMDlQU0FuWW14dlkyc3RjMlZ4SnlrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNGd2NtOXdjeTVvWVhOT1pYZHNhVzVsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGY25KdmNpaHdjbTl3Y3k1bGJtUXNJQ2ROU1ZOVFNVNUhYME5JUVZJbkxDQW5RbXh2WTJzZ1kyOXNiR1ZqZEdsdmJpQmpZVzV1YjNRZ2MzUmhjblFnYjI0Z2MyRnRaU0JzYVc1bElIZHBkR2dnWkdseVpXTjBhWFpsY3kxbGJtUWdiV0Z5YTJWeUp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklFQjBjeTFsZUhCbFkzUXRaWEp5YjNJZ1NXWWdRMjl1ZEdWdWRITWdhWE1nYzJWMExDQnNaWFFuY3lCMGNuVnpkQ0IwYUdVZ2RYTmxjbHh1SUNBZ0lHUnZZeTVqYjI1MFpXNTBjeUE5SUhaaGJIVmxYRzRnSUNBZ0lDQWdJRDhnWTI5dGNHOXpaVTV2WkdVb1kzUjRMQ0IyWVd4MVpTd2djSEp2Y0hNc0lHOXVSWEp5YjNJcFhHNGdJQ0FnSUNBZ0lEb2dZMjl0Y0c5elpVVnRjSFI1VG05a1pTaGpkSGdzSUhCeWIzQnpMbVZ1WkN3Z2MzUmhjblFzSUc1MWJHd3NJSEJ5YjNCekxDQnZia1Z5Y205eUtUdGNiaUFnSUNCamIyNXpkQ0JqYjI1MFpXNTBSVzVrSUQwZ1pHOWpMbU52Ym5SbGJuUnpMbkpoYm1kbFd6SmRPMXh1SUNBZ0lHTnZibk4wSUhKbElEMGdjbVZ6YjJ4MlpVVnVaQ2hsYm1Rc0lHTnZiblJsYm5SRmJtUXNJR1poYkhObExDQnZia1Z5Y205eUtUdGNiaUFnSUNCcFppQW9jbVV1WTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnWkc5akxtTnZiVzFsYm5RZ1BTQnlaUzVqYjIxdFpXNTBPMXh1SUNBZ0lHUnZZeTV5WVc1blpTQTlJRnR2Wm1aelpYUXNJR052Ym5SbGJuUkZibVFzSUhKbExtOW1abk5sZEYwN1hHNGdJQ0FnY21WMGRYSnVJR1J2WXp0Y2JuMWNibHh1Wlhod2IzSjBJSHNnWTI5dGNHOXpaVVJ2WXlCOU8xeHVJaXdnSW1sdGNHOXlkQ0I3SUVScGNtVmpkR2wyWlhNZ2ZTQm1jbTl0SUNjdUxpOWtiMk12WkdseVpXTjBhWFpsY3k1cWN5YzdYRzVwYlhCdmNuUWdleUJFYjJOMWJXVnVkQ0I5SUdaeWIyMGdKeTR1TDJSdll5OUViMk4xYldWdWRDNXFjeWM3WEc1cGJYQnZjblFnZXlCWlFVMU1WMkZ5Ym1sdVp5d2dXVUZOVEZCaGNuTmxSWEp5YjNJZ2ZTQm1jbTl0SUNjdUxpOWxjbkp2Y25NdWFuTW5PMXh1YVcxd2IzSjBJSHNnYVhORGIyeHNaV04wYVc5dUxDQnBjMUJoYVhJZ2ZTQm1jbTl0SUNjdUxpOXViMlJsY3k5cFpHVnVkR2wwZVM1cWN5YzdYRzVwYlhCdmNuUWdleUJqYjIxd2IzTmxSRzlqSUgwZ1puSnZiU0FuTGk5amIyMXdiM05sTFdSdll5NXFjeWM3WEc1cGJYQnZjblFnZXlCeVpYTnZiSFpsUlc1a0lIMGdabkp2YlNBbkxpOXlaWE52YkhabExXVnVaQzVxY3ljN1hHNWNibVoxYm1OMGFXOXVJR2RsZEVWeWNtOXlVRzl6S0hOeVl5a2dlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjM0pqSUQwOVBTQW5iblZ0WW1WeUp5bGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGdHpjbU1zSUhOeVl5QXJJREZkTzF4dUlDQWdJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLSE55WXlrcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemNtTXViR1Z1WjNSb0lEMDlQU0F5SUQ4Z2MzSmpJRG9nVzNOeVkxc3dYU3dnYzNKald6RmRYVHRjYmlBZ0lDQmpiMjV6ZENCN0lHOW1abk5sZEN3Z2MyOTFjbU5sSUgwZ1BTQnpjbU03WEc0Z0lDQWdjbVYwZFhKdUlGdHZabVp6WlhRc0lHOW1abk5sZENBcklDaDBlWEJsYjJZZ2MyOTFjbU5sSUQwOVBTQW5jM1J5YVc1bkp5QS9JSE52ZFhKalpTNXNaVzVuZEdnZ09pQXhLVjA3WEc1OVhHNW1kVzVqZEdsdmJpQndZWEp6WlZCeVpXeDFaR1VvY0hKbGJIVmtaU2tnZTF4dUlDQWdJR3hsZENCamIyMXRaVzUwSUQwZ0p5YzdYRzRnSUNBZ2JHVjBJR0YwUTI5dGJXVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lHeGxkQ0JoWm5SbGNrVnRjSFI1VEdsdVpTQTlJR1poYkhObE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2NISmxiSFZrWlM1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpiM1Z5WTJVZ1BTQndjbVZzZFdSbFcybGRPMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSE52ZFhKalpWc3dYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbkl5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl0YldWdWRDQXJQVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb1kyOXRiV1Z1ZENBOVBUMGdKeWNnUHlBbkp5QTZJR0ZtZEdWeVJXMXdkSGxNYVc1bElEOGdKMXhjYmx4Y2JpY2dPaUFuWEZ4dUp5a2dLMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLSE52ZFhKalpTNXpkV0p6ZEhKcGJtY29NU2tnZkh3Z0p5QW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZEVOdmJXMWxiblFnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0ZtZEdWeVJXMXdkSGxNYVc1bElEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjbEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0hKbGJIVmtaVnRwSUNzZ01WMC9MbHN3WFNBaFBUMGdKeU1uS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBJQ3M5SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYUkRiMjF0Wlc1MElEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRlJvYVhNZ2JXRjVJR0psSUhkeWIyNW5JR0ZtZEdWeUlHUnZZeTFsYm1Rc0lHSjFkQ0JwYmlCMGFHRjBJR05oYzJVZ2FYUWdaRzlsYzI0bmRDQnRZWFIwWlhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV0YwUTI5dGJXVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lXWjBaWEpGYlhCMGVVeHBibVVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0YwUTI5dGJXVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN0lHTnZiVzFsYm5Rc0lHRm1kR1Z5Ulcxd2RIbE1hVzVsSUgwN1hHNTlYRzR2S2lwY2JpQXFJRU52YlhCdmMyVWdZU0J6ZEhKbFlXMGdiMllnUTFOVUlHNXZaR1Z6SUdsdWRHOGdZU0J6ZEhKbFlXMGdiMllnV1VGTlRDQkViMk4xYldWdWRITXVYRzRnS2x4dUlDb2dZR0JnZEhOY2JpQXFJR2x0Y0c5eWRDQjdJRU52YlhCdmMyVnlMQ0JRWVhKelpYSWdmU0JtY205dElDZDVZVzFzSjF4dUlDcGNiaUFxSUdOdmJuTjBJSE55WXpvZ2MzUnlhVzVuSUQwZ0xpNHVYRzRnS2lCamIyNXpkQ0IwYjJ0bGJuTWdQU0J1WlhjZ1VHRnljMlZ5S0NrdWNHRnljMlVvYzNKaktWeHVJQ29nWTI5dWMzUWdaRzlqY3lBOUlHNWxkeUJEYjIxd2IzTmxjaWdwTG1OdmJYQnZjMlVvZEc5clpXNXpLVnh1SUNvZ1lHQmdYRzRnS2k5Y2JtTnNZWE56SUVOdmJYQnZjMlZ5SUh0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lodmNIUnBiMjV6SUQwZ2UzMHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtiMk1nUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtRjBSR2x5WldOMGFYWmxjeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnlaV3gxWkdVZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWxjbkp2Y25NZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNZWEp1YVc1bmN5QTlJRnRkTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1UlhKeWIzSWdQU0FvYzI5MWNtTmxMQ0JqYjJSbExDQnRaWE56WVdkbExDQjNZWEp1YVc1bktTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2IzTWdQU0JuWlhSRmNuSnZjbEJ2Y3loemIzVnlZMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hkaGNtNXBibWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTNZWEp1YVc1bmN5NXdkWE5vS0c1bGR5QlpRVTFNVjJGeWJtbHVaeWh3YjNNc0lHTnZaR1VzSUcxbGMzTmhaMlVwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ5Y205eWN5NXdkWE5vS0c1bGR5QlpRVTFNVUdGeWMyVkZjbkp2Y2lod2IzTXNJR052WkdVc0lHMWxjM05oWjJVcEtUdGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5d2NtVm1aWEl0Ym5Wc2JHbHphQzFqYjJGc1pYTmphVzVuWEc0Z0lDQWdJQ0FnSUhSb2FYTXVaR2x5WldOMGFYWmxjeUE5SUc1bGR5QkVhWEpsWTNScGRtVnpLSHNnZG1WeWMybHZiam9nYjNCMGFXOXVjeTUyWlhKemFXOXVJSHg4SUNjeExqSW5JSDBwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl3ZEdsdmJuTWdQU0J2Y0hScGIyNXpPMXh1SUNBZ0lIMWNiaUFnSUNCa1pXTnZjbUYwWlNoa2IyTXNJR0ZtZEdWeVJHOWpLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnWTI5dGJXVnVkQ3dnWVdaMFpYSkZiWEIwZVV4cGJtVWdmU0E5SUhCaGNuTmxVSEpsYkhWa1pTaDBhR2x6TG5CeVpXeDFaR1VwTzF4dUlDQWdJQ0FnSUNBdkwyTnZibk52YkdVdWJHOW5LSHNnWkdNNklHUnZZeTVqYjIxdFpXNTBMQ0J3Y21Wc2RXUmxMQ0JqYjIxdFpXNTBJSDBwWEc0Z0lDQWdJQ0FnSUdsbUlDaGpiMjF0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWXlBOUlHUnZZeTVqYjI1MFpXNTBjenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hoWm5SbGNrUnZZeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSdll5NWpiMjF0Wlc1MElEMGdaRzlqTG1OdmJXMWxiblFnUHlCZ0pIdGtiMk11WTI5dGJXVnVkSDFjWEc0a2UyTnZiVzFsYm5SOVlDQTZJR052YlcxbGJuUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hoWm5SbGNrVnRjSFI1VEdsdVpTQjhmQ0JrYjJNdVpHbHlaV04wYVhabGN5NWtiMk5UZEdGeWRDQjhmQ0FoWkdNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtiMk11WTI5dGJXVnVkRUpsWm05eVpTQTlJR052YlcxbGJuUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzBOdmJHeGxZM1JwYjI0b1pHTXBJQ1ltSUNGa1l5NW1iRzkzSUNZbUlHUmpMbWwwWlcxekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2FYUWdQU0JrWXk1cGRHVnRjMXN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5RWVdseUtHbDBLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUWdQU0JwZEM1clpYazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kySWdQU0JwZEM1amIyMXRaVzUwUW1WbWIzSmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG1OdmJXMWxiblJDWldadmNtVWdQU0JqWWlBL0lHQWtlMk52YlcxbGJuUjlYRnh1Skh0alluMWdJRG9nWTI5dGJXVnVkRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTmlJRDBnWkdNdVkyOXRiV1Z1ZEVKbFptOXlaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWXk1amIyMXRaVzUwUW1WbWIzSmxJRDBnWTJJZ1B5QmdKSHRqYjIxdFpXNTBmVnhjYmlSN1kySjlZQ0E2SUdOdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHRm1kR1Z5Ukc5aktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCQmNuSmhlUzV3Y205MGIzUjVjR1V1Y0hWemFDNWhjSEJzZVNoa2IyTXVaWEp5YjNKekxDQjBhR2x6TG1WeWNtOXljeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWNIVnphQzVoY0hCc2VTaGtiMk11ZDJGeWJtbHVaM01zSUhSb2FYTXVkMkZ5Ym1sdVozTXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOWpMbVZ5Y205eWN5QTlJSFJvYVhNdVpYSnliM0p6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdaRzlqTG5kaGNtNXBibWR6SUQwZ2RHaHBjeTUzWVhKdWFXNW5jenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ5Wld4MVpHVWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsY25KdmNuTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzWVhKdWFXNW5jeUE5SUZ0ZE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGRYSnlaVzUwSUhOMGNtVmhiU0J6ZEdGMGRYTWdhVzVtYjNKdFlYUnBiMjR1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJOYjNOMGJIa2dkWE5sWm5Wc0lHRjBJSFJvWlNCbGJtUWdiMllnYVc1d2RYUWdabTl5SUdGdUlHVnRjSFI1SUhOMGNtVmhiUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnpkSEpsWVcxSmJtWnZLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl0YldWdWREb2djR0Z5YzJWUWNtVnNkV1JsS0hSb2FYTXVjSEpsYkhWa1pTa3VZMjl0YldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdScGNtVmpkR2wyWlhNNklIUm9hWE11WkdseVpXTjBhWFpsY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Z5Y205eWN6b2dkR2hwY3k1bGNuSnZjbk1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQjNZWEp1YVc1bmN6b2dkR2hwY3k1M1lYSnVhVzVuYzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyMXdiM05sSUhSdmEyVnVjeUJwYm5SdklHUnZZM1Z0Wlc1MGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndZWEpoYlNCbWIzSmpaVVJ2WXlBdElFbG1JSFJvWlNCemRISmxZVzBnWTI5dWRHRnBibk1nYm04Z1pHOWpkVzFsYm5Rc0lITjBhV3hzSUdWdGFYUWdZU0JtYVc1aGJDQmtiMk4xYldWdWRDQnBibU5zZFdScGJtY2dZVzU1SUdOdmJXMWxiblJ6SUdGdVpDQmthWEpsWTNScGRtVnpJSFJvWVhRZ2QyOTFiR1FnWW1VZ1lYQndiR2xsWkNCMGJ5QmhJSE4xWW5ObGNYVmxiblFnWkc5amRXMWxiblF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR1Z1WkU5bVpuTmxkQ0F0SUZOb2IzVnNaQ0JpWlNCelpYUWdhV1lnWUdadmNtTmxSRzlqWUNCcGN5QmhiSE52SUhObGRDd2dkRzhnYzJWMElIUm9aU0JrYjJOMWJXVnVkQ0J5WVc1blpTQmxibVFnWVc1a0lIUnZJR2x1WkdsallYUmxJR1Z5Y205eWN5QmpiM0p5WldOMGJIa3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ0ttTnZiWEJ2YzJVb2RHOXJaVzV6TENCbWIzSmpaVVJ2WXlBOUlHWmhiSE5sTENCbGJtUlBabVp6WlhRZ1BTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElIUnZhMlZ1SUc5bUlIUnZhMlZ1Y3lsY2JpQWdJQ0FnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG01bGVIUW9kRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTVsYm1Rb1ptOXlZMlZFYjJNc0lHVnVaRTltWm5ObGRDazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtpQkJaSFpoYm1ObElIUm9aU0JqYjIxd2IzTmxjaUJpZVNCdmJtVWdRMU5VSUhSdmEyVnVMaUFxTDF4dUlDQWdJQ3B1WlhoMEtIUnZhMlZ1S1NCN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2RHOXJaVzR1ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWkdseVpXTjBhWFpsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVJwY21WamRHbDJaWE11WVdSa0tIUnZhMlZ1TG5OdmRYSmpaU3dnS0c5bVpuTmxkQ3dnYldWemMyRm5aU3dnZDJGeWJtbHVaeWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndiM01nUFNCblpYUkZjbkp2Y2xCdmN5aDBiMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ2YzFzd1hTQXJQU0J2Wm1aelpYUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViMjVGY25KdmNpaHdiM01zSUNkQ1FVUmZSRWxTUlVOVVNWWkZKeXdnYldWemMyRm5aU3dnZDJGeWJtbHVaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3Y21Wc2RXUmxMbkIxYzJnb2RHOXJaVzR1YzI5MWNtTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtRjBSR2x5WldOMGFYWmxjeUE5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGtiMk4xYldWdWRDYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtiMk1nUFNCamIyMXdiM05sUkc5aktIUm9hWE11YjNCMGFXOXVjeXdnZEdocGN5NWthWEpsWTNScGRtVnpMQ0IwYjJ0bGJpd2dkR2hwY3k1dmJrVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2hwY3k1aGRFUnBjbVZqZEdsMlpYTWdKaVlnSVdSdll5NWthWEpsWTNScGRtVnpMbVJ2WTFOMFlYSjBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UlhKeWIzSW9kRzlyWlc0c0lDZE5TVk5UU1U1SFgwTklRVkluTENBblRXbHpjMmx1WnlCa2FYSmxZM1JwZG1WekxXVnVaQzlrYjJNdGMzUmhjblFnYVc1a2FXTmhkRzl5SUd4cGJtVW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtUmxZMjl5WVhSbEtHUnZZeXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVJ2WXlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRZ2RHaHBjeTVrYjJNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVrYjJNZ1BTQmtiMk03WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWhkRVJwY21WamRHbDJaWE1nUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oySjVkR1V0YjNKa1pYSXRiV0Z5YXljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpjR0ZqWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkamIyMXRaVzUwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyNWxkMnhwYm1Vbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11Y0hKbGJIVmtaUzV3ZFhOb0tIUnZhMlZ1TG5OdmRYSmpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RsY25KdmNpYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRjMmNnUFNCMGIydGxiaTV6YjNWeVkyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCZ0pIdDBiMnRsYmk1dFpYTnpZV2RsZlRvZ0pIdEtVMDlPTG5OMGNtbHVaMmxtZVNoMGIydGxiaTV6YjNWeVkyVXBmV0JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ09pQjBiMnRsYmk1dFpYTnpZV2RsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z5Y205eUlEMGdibVYzSUZsQlRVeFFZWEp6WlVWeWNtOXlLR2RsZEVWeWNtOXlVRzl6S0hSdmEyVnVLU3dnSjFWT1JWaFFSVU5VUlVSZlZFOUxSVTRuTENCdGMyY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbUYwUkdseVpXTjBhWFpsY3lCOGZDQWhkR2hwY3k1a2IyTXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaWEp5YjNKekxuQjFjMmdvWlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1a2IyTXVaWEp5YjNKekxuQjFjMmdvWlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOWpMV1Z1WkNjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVaRzlqS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXpaeUE5SUNkVmJtVjRjR1ZqZEdWa0lHUnZZeTFsYm1RZ2QybDBhRzkxZENCd2NtVmpaV1JwYm1jZ1pHOWpkVzFsYm5Rbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtVnljbTl5Y3k1d2RYTm9LRzVsZHlCWlFVMU1VR0Z5YzJWRmNuSnZjaWhuWlhSRmNuSnZjbEJ2Y3loMGIydGxiaWtzSUNkVlRrVllVRVZEVkVWRVgxUlBTMFZPSnl3Z2JYTm5LU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVJ2WXk1a2FYSmxZM1JwZG1WekxtUnZZMFZ1WkNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ2NtVnpiMngyWlVWdVpDaDBiMnRsYmk1bGJtUXNJSFJ2YTJWdUxtOW1abk5sZENBcklIUnZhMlZ1TG5OdmRYSmpaUzVzWlc1bmRHZ3NJSFJvYVhNdVpHOWpMbTl3ZEdsdmJuTXVjM1J5YVdOMExDQjBhR2x6TG05dVJYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaR1ZqYjNKaGRHVW9kR2hwY3k1a2IyTXNJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsYm1RdVkyOXRiV1Z1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtZeUE5SUhSb2FYTXVaRzlqTG1OdmJXMWxiblE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11Wkc5akxtTnZiVzFsYm5RZ1BTQmtZeUEvSUdBa2UyUmpmVnhjYmlSN1pXNWtMbU52YlcxbGJuUjlZQ0E2SUdWdVpDNWpiMjF0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Sdll5NXlZVzVuWlZzeVhTQTlJR1Z1WkM1dlptWnpaWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpYSnliM0p6TG5CMWMyZ29ibVYzSUZsQlRVeFFZWEp6WlVWeWNtOXlLR2RsZEVWeWNtOXlVRzl6S0hSdmEyVnVLU3dnSjFWT1JWaFFSVU5VUlVSZlZFOUxSVTRuTENCZ1ZXNXpkWEJ3YjNKMFpXUWdkRzlyWlc0Z0pIdDBiMnRsYmk1MGVYQmxmV0FwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlXeHNJR0YwSUdWdVpDQnZaaUJwYm5CMWRDQjBieUI1YVdWc1pDQmhibmtnY21WdFlXbHVhVzVuSUdSdlkzVnRaVzUwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJR1p2Y21ObFJHOWpJQzBnU1dZZ2RHaGxJSE4wY21WaGJTQmpiMjUwWVdsdWN5QnVieUJrYjJOMWJXVnVkQ3dnYzNScGJHd2daVzFwZENCaElHWnBibUZzSUdSdlkzVnRaVzUwSUdsdVkyeDFaR2x1WnlCaGJua2dZMjl0YldWdWRITWdZVzVrSUdScGNtVmpkR2wyWlhNZ2RHaGhkQ0IzYjNWc1pDQmlaU0JoY0hCc2FXVmtJSFJ2SUdFZ2MzVmljMlZ4ZFdWdWRDQmtiMk4xYldWdWRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ1pXNWtUMlptYzJWMElDMGdVMmh2ZFd4a0lHSmxJSE5sZENCcFppQmdabTl5WTJWRWIyTmdJR2x6SUdGc2MyOGdjMlYwTENCMGJ5QnpaWFFnZEdobElHUnZZM1Z0Wlc1MElISmhibWRsSUdWdVpDQmhibVFnZEc4Z2FXNWthV05oZEdVZ1pYSnliM0p6SUdOdmNuSmxZM1JzZVM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0FxWlc1a0tHWnZjbU5sUkc5aklEMGdabUZzYzJVc0lHVnVaRTltWm5ObGRDQTlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtUnZZeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1a1pXTnZjbUYwWlNoMGFHbHpMbVJ2WXl3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNCMGFHbHpMbVJ2WXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpHOWpJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2htYjNKalpVUnZZeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2IzQjBjeUE5SUU5aWFtVmpkQzVoYzNOcFoyNG9leUJmWkdseVpXTjBhWFpsY3pvZ2RHaHBjeTVrYVhKbFkzUnBkbVZ6SUgwc0lIUm9hWE11YjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCa2IyTWdQU0J1WlhjZ1JHOWpkVzFsYm5Rb2RXNWtaV1pwYm1Wa0xDQnZjSFJ6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbUYwUkdseVpXTjBhWFpsY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UlhKeWIzSW9aVzVrVDJabWMyVjBMQ0FuVFVsVFUwbE9SMTlEU0VGU0p5d2dKMDFwYzNOcGJtY2daR2x5WldOMGFYWmxjeTFsYm1RZ2FXNWthV05oZEc5eUlHeHBibVVuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1J2WXk1eVlXNW5aU0E5SUZzd0xDQmxibVJQWm1aelpYUXNJR1Z1WkU5bVpuTmxkRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1SbFkyOXlZWFJsS0dSdll5d2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUWdaRzlqTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVYRzVsZUhCdmNuUWdleUJEYjIxd2IzTmxjaUI5TzF4dUlpd2dJbU52Ym5OMElFSlNSVUZMSUQwZ1UzbHRZbTlzS0NkaWNtVmhheUIyYVhOcGRDY3BPMXh1WTI5dWMzUWdVMHRKVUNBOUlGTjViV0p2YkNnbmMydHBjQ0JqYUdsc1pISmxiaWNwTzF4dVkyOXVjM1FnVWtWTlQxWkZJRDBnVTNsdFltOXNLQ2R5WlcxdmRtVWdhWFJsYlNjcE8xeHVMeW9xWEc0Z0tpQkJjSEJzZVNCaElIWnBjMmwwYjNJZ2RHOGdZU0JEVTFRZ1pHOWpkVzFsYm5RZ2IzSWdhWFJsYlM1Y2JpQXFYRzRnS2lCWFlXeHJjeUIwYUhKdmRXZG9JSFJvWlNCMGNtVmxJQ2hrWlhCMGFDMW1hWEp6ZENrZ2MzUmhjblJwYm1jZ1puSnZiU0IwYUdVZ2NtOXZkQ3dnWTJGc2JHbHVaeUJoWEc0Z0tpQmdkbWx6YVhSdmNtQWdablZ1WTNScGIyNGdkMmwwYUNCMGQyOGdZWEpuZFcxbGJuUnpJSGRvWlc0Z1pXNTBaWEpwYm1jZ1pXRmphQ0JwZEdWdE9seHVJQ29nSUNBdElHQnBkR1Z0WURvZ1ZHaGxJR04xY25KbGJuUWdhWFJsYlN3Z2QyaHBZMmdnYVc1amJIVmtaV1FnZEdobElHWnZiR3h2ZDJsdVp5QnRaVzFpWlhKek9seHVJQ29nSUNBZ0lDMGdZSE4wWVhKME9pQlRiM1Z5WTJWVWIydGxibHRkWUNCY2RUSXdNVE1nVTI5MWNtTmxJSFJ2YTJWdWN5QmlaV1p2Y21VZ2RHaGxJR3RsZVNCdmNpQjJZV3gxWlN4Y2JpQXFJQ0FnSUNBZ0lIQnZjM05wWW14NUlHbHVZMngxWkdsdVp5QnBkSE1nWVc1amFHOXlJRzl5SUhSaFp5NWNiaUFxSUNBZ0lDQXRJR0JyWlhrL09pQlViMnRsYmlCOElHNTFiR3hnSUZ4MU1qQXhNeUJUWlhRZ1ptOXlJSEJoYVhJZ2RtRnNkV1Z6TGlCTllYa2dkR2hsYmlCaVpTQmdiblZzYkdBc0lHbG1YRzRnS2lBZ0lDQWdJQ0IwYUdVZ2EyVjVJR0psWm05eVpTQjBhR1VnWURwZ0lITmxjR0Z5WVhSdmNpQnBjeUJsYlhCMGVTNWNiaUFxSUNBZ0lDQXRJR0J6WlhBL09pQlRiM1Z5WTJWVWIydGxibHRkWUNCY2RUSXdNVE1nVTI5MWNtTmxJSFJ2YTJWdWN5QmlaWFIzWldWdUlIUm9aU0JyWlhrZ1lXNWtJSFJvWlNCMllXeDFaU3hjYmlBcUlDQWdJQ0FnSUhkb2FXTm9JSE5vYjNWc1pDQnBibU5zZFdSbElIUm9aU0JnT21BZ2JXRndJSFpoYkhWbElHbHVaR2xqWVhSdmNpQnBaaUJnZG1Gc2RXVmdJR2x6SUhObGRDNWNiaUFxSUNBZ0lDQXRJR0IyWVd4MVpUODZJRlJ2YTJWdVlDQmNkVEl3TVRNZ1ZHaGxJSFpoYkhWbElHOW1JR0VnYzJWeGRXVnVZMlVnYVhSbGJTd2diM0lnYjJZZ1lTQnRZWEFnY0dGcGNpNWNiaUFxSUNBZ0xTQmdjR0YwYUdBNklGUm9aU0J6ZEdWd2N5Qm1jbTl0SUhSb1pTQnliMjkwSUhSdklIUm9aU0JqZFhKeVpXNTBJRzV2WkdVc0lHRnpJR0Z1SUdGeWNtRjVJRzltWEc0Z0tpQWdJQ0FnWUZzbmEyVjVKeUI4SUNkMllXeDFaU2NzSUc1MWJXSmxjbDFnSUhSMWNHeGxjeTVjYmlBcVhHNGdLaUJVYUdVZ2NtVjBkWEp1SUhaaGJIVmxJRzltSUhSb1pTQjJhWE5wZEc5eUlHMWhlU0JpWlNCMWMyVmtJSFJ2SUdOdmJuUnliMndnZEdobElIUnlZWFpsY25OaGJEcGNiaUFxSUNBZ0xTQmdkVzVrWldacGJtVmtZQ0FvWkdWbVlYVnNkQ2s2SUVSdklHNXZkR2hwYm1jZ1lXNWtJR052Ym5ScGJuVmxYRzRnS2lBZ0lDMGdZSFpwYzJsMExsTkxTVkJnT2lCRWJ5QnViM1FnZG1semFYUWdkR2hsSUdOb2FXeGtjbVZ1SUc5bUlIUm9hWE1nZEc5clpXNHNJR052Ym5ScGJuVmxJSGRwZEdoY2JpQXFJQ0FnSUNBZ2JtVjRkQ0J6YVdKc2FXNW5YRzRnS2lBZ0lDMGdZSFpwYzJsMExrSlNSVUZMWURvZ1ZHVnliV2x1WVhSbElIUnlZWFpsY25OaGJDQmpiMjF3YkdWMFpXeDVYRzRnS2lBZ0lDMGdZSFpwYzJsMExsSkZUVTlXUldBNklGSmxiVzkyWlNCMGFHVWdZM1Z5Y21WdWRDQnBkR1Z0TENCMGFHVnVJR052Ym5ScGJuVmxJSGRwZEdnZ2RHaGxJRzVsZUhRZ2IyNWxYRzRnS2lBZ0lDMGdZRzUxYldKbGNtQTZJRk5sZENCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUc1bGVIUWdjM1JsY0M0Z1ZHaHBjeUJwY3lCMWMyVm1kV3dnWlhOd1pXTnBZV3hzZVNCcFpseHVJQ29nSUNBZ0lIUm9aU0JwYm1SbGVDQnZaaUIwYUdVZ1kzVnljbVZ1ZENCMGIydGxiaUJvWVhNZ1kyaGhibWRsWkM1Y2JpQXFJQ0FnTFNCZ1puVnVZM1JwYjI1Z09pQkVaV1pwYm1VZ2RHaGxJRzVsZUhRZ2RtbHphWFJ2Y2lCbWIzSWdkR2hwY3lCcGRHVnRMaUJCWm5SbGNpQjBhR1VnYjNKcFoybHVZV3hjYmlBcUlDQWdJQ0IyYVhOcGRHOXlJR2x6SUdOaGJHeGxaQ0J2YmlCcGRHVnRJR1Z1ZEhKNUxDQnVaWGgwSUhacGMybDBiM0p6SUdGeVpTQmpZV3hzWldRZ1lXWjBaWElnYUdGdVpHeHBibWRjYmlBcUlDQWdJQ0JoSUc1dmJpMWxiWEIwZVNCZ2EyVjVZQ0JoYm1RZ2QyaGxiaUJsZUdsMGFXNW5JSFJvWlNCcGRHVnRMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQjJhWE5wZENoamMzUXNJSFpwYzJsMGIzSXBJSHRjYmlBZ0lDQnBaaUFvSjNSNWNHVW5JR2x1SUdOemRDQW1KaUJqYzNRdWRIbHdaU0E5UFQwZ0oyUnZZM1Z0Wlc1MEp5bGNiaUFnSUNBZ0lDQWdZM04wSUQwZ2V5QnpkR0Z5ZERvZ1kzTjBMbk4wWVhKMExDQjJZV3gxWlRvZ1kzTjBMblpoYkhWbElIMDdYRzRnSUNBZ1gzWnBjMmwwS0U5aWFtVmpkQzVtY21WbGVtVW9XMTBwTENCamMzUXNJSFpwYzJsMGIzSXBPMXh1ZlZ4dUx5OGdWMmwwYUc5MWRDQjBhR1VnWUdGeklITjViV0p2YkdBZ1kyRnpkSE1zSUZSVElHUmxZMnhoY21WeklIUm9aWE5sSUdsdUlIUm9aU0JnZG1semFYUmdYRzR2THlCdVlXMWxjM0JoWTJVZ2RYTnBibWNnWUhaaGNtQXNJR0oxZENCMGFHVnVJR052YlhCc1lXbHVjeUJoWW05MWRDQjBhR0YwSUdKbFkyRjFjMlZjYmk4dklHQjFibWx4ZFdVZ2MzbHRZbTlzWUNCdGRYTjBJR0psSUdCamIyNXpkR0F1WEc0dktpb2dWR1Z5YldsdVlYUmxJSFpwYzJsMElIUnlZWFpsY25OaGJDQmpiMjF3YkdWMFpXeDVJQ292WEc1MmFYTnBkQzVDVWtWQlN5QTlJRUpTUlVGTE8xeHVMeW9xSUVSdklHNXZkQ0IyYVhOcGRDQjBhR1VnWTJocGJHUnlaVzRnYjJZZ2RHaGxJR04xY25KbGJuUWdhWFJsYlNBcUwxeHVkbWx6YVhRdVUwdEpVQ0E5SUZOTFNWQTdYRzR2S2lvZ1VtVnRiM1psSUhSb1pTQmpkWEp5Wlc1MElHbDBaVzBnS2k5Y2JuWnBjMmwwTGxKRlRVOVdSU0E5SUZKRlRVOVdSVHRjYmk4cUtpQkdhVzVrSUhSb1pTQnBkR1Z0SUdGMElHQndZWFJvWUNCbWNtOXRJR0JqYzNSZ0lHRnpJSFJvWlNCeWIyOTBJQ292WEc1MmFYTnBkQzVwZEdWdFFYUlFZWFJvSUQwZ0tHTnpkQ3dnY0dGMGFDa2dQVDRnZTF4dUlDQWdJR3hsZENCcGRHVnRJRDBnWTNOME8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1cyWnBaV3hrTENCcGJtUmxlRjBnYjJZZ2NHRjBhQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYjJzZ1BTQnBkR1Z0UHk1YlptbGxiR1JkTzF4dUlDQWdJQ0FnSUNCcFppQW9kRzlySUNZbUlDZHBkR1Z0Y3ljZ2FXNGdkRzlyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdElEMGdkRzlyTG1sMFpXMXpXMmx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYVhSbGJUdGNibjA3WEc0dktpcGNiaUFxSUVkbGRDQjBhR1VnYVcxdFpXUnBZWFJsSUhCaGNtVnVkQ0JqYjJ4c1pXTjBhVzl1SUc5bUlIUm9aU0JwZEdWdElHRjBJR0J3WVhSb1lDQm1jbTl0SUdCamMzUmdJR0Z6SUhSb1pTQnliMjkwTGx4dUlDcGNiaUFxSUZSb2NtOTNjeUJoYmlCbGNuSnZjaUJwWmlCMGFHVWdZMjlzYkdWamRHbHZiaUJwY3lCdWIzUWdabTkxYm1Rc0lIZG9hV05vSUhOb2IzVnNaQ0J1WlhabGNpQm9ZWEJ3Wlc0Z2FXWWdkR2hsSUdsMFpXMGdhWFJ6Wld4bUlHVjRhWE4wY3k1Y2JpQXFMMXh1ZG1semFYUXVjR0Z5Wlc1MFEyOXNiR1ZqZEdsdmJpQTlJQ2hqYzNRc0lIQmhkR2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J3WVhKbGJuUWdQU0IyYVhOcGRDNXBkR1Z0UVhSUVlYUm9LR056ZEN3Z2NHRjBhQzV6YkdsalpTZ3dMQ0F0TVNrcE8xeHVJQ0FnSUdOdmJuTjBJR1pwWld4a0lEMGdjR0YwYUZ0d1lYUm9MbXhsYm1kMGFDQXRJREZkV3pCZE8xeHVJQ0FnSUdOdmJuTjBJR052Ykd3Z1BTQndZWEpsYm5RL0xsdG1hV1ZzWkYwN1hHNGdJQ0FnYVdZZ0tHTnZiR3dnSmlZZ0oybDBaVzF6SnlCcGJpQmpiMnhzS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5c2JEdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFCaGNtVnVkQ0JqYjJ4c1pXTjBhVzl1SUc1dmRDQm1iM1Z1WkNjcE8xeHVmVHRjYm1aMWJtTjBhVzl1SUY5MmFYTnBkQ2h3WVhSb0xDQnBkR1Z0TENCMmFYTnBkRzl5S1NCN1hHNGdJQ0FnYkdWMElHTjBjbXdnUFNCMmFYTnBkRzl5S0dsMFpXMHNJSEJoZEdncE8xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1kzUnliQ0E5UFQwZ0ozTjViV0p2YkNjcFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamRISnNPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdabWxsYkdRZ2IyWWdXeWRyWlhrbkxDQW5kbUZzZFdVblhTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBiMnRsYmlBOUlHbDBaVzFiWm1sbGJHUmRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHOXJaVzRnSmlZZ0oybDBaVzF6SnlCcGJpQjBiMnRsYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCMGIydGxiaTVwZEdWdGN5NXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05wSUQwZ1gzWnBjMmwwS0U5aWFtVmpkQzVtY21WbGVtVW9jR0YwYUM1amIyNWpZWFFvVzF0bWFXVnNaQ3dnYVYxZEtTa3NJSFJ2YTJWdUxtbDBaVzF6VzJsZExDQjJhWE5wZEc5eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JR05wSUQwOVBTQW5iblZ0WW1WeUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBOUlHTnBJQzBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFTQTlQVDBnUWxKRlFVc3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJDVWtWQlN6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGphU0E5UFQwZ1VrVk5UMVpGS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdUxtbDBaVzF6TG5Od2JHbGpaU2hwTENBeEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVNBdFBTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1kzUnliQ0E5UFQwZ0oyWjFibU4wYVc5dUp5QW1KaUJtYVdWc1pDQTlQVDBnSjJ0bGVTY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1J5YkNBOUlHTjBjbXdvYVhSbGJTd2djR0YwYUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQmpkSEpzSUQwOVBTQW5ablZ1WTNScGIyNG5JRDhnWTNSeWJDaHBkR1Z0TENCd1lYUm9LU0E2SUdOMGNtdzdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lIWnBjMmwwSUgwN1hHNGlMQ0FpWlhod2IzSjBJSHNnWTNKbFlYUmxVMk5oYkdGeVZHOXJaVzRzSUhKbGMyOXNkbVZCYzFOallXeGhjaXdnYzJWMFUyTmhiR0Z5Vm1Gc2RXVWdmU0JtY205dElDY3VMMk56ZEMxelkyRnNZWEl1YW5Nbk8xeHVaWGh3YjNKMElIc2djM1J5YVc1bmFXWjVJSDBnWm5KdmJTQW5MaTlqYzNRdGMzUnlhVzVuYVdaNUxtcHpKenRjYm1WNGNHOXlkQ0I3SUhacGMybDBJSDBnWm5KdmJTQW5MaTlqYzNRdGRtbHphWFF1YW5Nbk8xeHVYRzR2S2lvZ1ZHaGxJR0o1ZEdVZ2IzSmtaWElnYldGeWF5QXFMMXh1WTI5dWMzUWdRazlOSUQwZ0oxeGNkWHRHUlVaR2ZTYzdYRzR2S2lvZ1UzUmhjblFnYjJZZ1pHOWpMVzF2WkdVZ0tpOWNibU52Ym5OMElFUlBRMVZOUlU1VUlEMGdKMXhjZURBeUp6c2dMeThnUXpBNklGTjBZWEowSUc5bUlGUmxlSFJjYmk4cUtpQlZibVY0Y0dWamRHVmtJR1Z1WkNCdlppQm1iRzkzTFcxdlpHVWdLaTljYm1OdmJuTjBJRVpNVDFkZlJVNUVJRDBnSjF4Y2VERTRKenNnTHk4Z1F6QTZJRU5oYm1ObGJGeHVMeW9xSUU1bGVIUWdkRzlyWlc0Z2FYTWdZU0J6WTJGc1lYSWdkbUZzZFdVZ0tpOWNibU52Ym5OMElGTkRRVXhCVWlBOUlDZGNYSGd4WmljN0lDOHZJRU13T2lCVmJtbDBJRk5sY0dGeVlYUnZjbHh1THlvcUlFQnlaWFIxY201eklHQjBjblZsWUNCcFppQmdkRzlyWlc1Z0lHbHpJR0VnWm14dmR5QnZjaUJpYkc5amF5QmpiMnhzWldOMGFXOXVJQ292WEc1amIyNXpkQ0JwYzBOdmJHeGxZM1JwYjI0Z1BTQW9kRzlyWlc0cElEMCtJQ0VoZEc5clpXNGdKaVlnSjJsMFpXMXpKeUJwYmlCMGIydGxianRjYmk4cUtpQkFjbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFJ2YTJWdVlDQnBjeUJoSUdac2IzY2diM0lnWW14dlkyc2djMk5oYkdGeU95QnViM1FnWVc0Z1lXeHBZWE1nS2k5Y2JtTnZibk4wSUdselUyTmhiR0Z5SUQwZ0tIUnZhMlZ1S1NBOVBpQWhJWFJ2YTJWdUlDWW1YRzRnSUNBZ0tIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkelkyRnNZWEluSUh4OFhHNGdJQ0FnSUNBZ0lIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkemFXNW5iR1V0Y1hWdmRHVmtMWE5qWVd4aGNpY2dmSHhjYmlBZ0lDQWdJQ0FnZEc5clpXNHVkSGx3WlNBOVBUMGdKMlJ2ZFdKc1pTMXhkVzkwWldRdGMyTmhiR0Z5SnlCOGZGeHVJQ0FnSUNBZ0lDQjBiMnRsYmk1MGVYQmxJRDA5UFNBbllteHZZMnN0YzJOaGJHRnlKeWs3WEc0dktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2JtVjRkQ0FxTDF4dUx5b3FJRWRsZENCaElIQnlhVzUwWVdKc1pTQnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQmhJR3hsZUdWeUlIUnZhMlZ1SUNvdlhHNW1kVzVqZEdsdmJpQndjbVYwZEhsVWIydGxiaWgwYjJ0bGJpa2dlMXh1SUNBZ0lITjNhWFJqYUNBb2RHOXJaVzRwSUh0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JDVDAwNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKenhDVDAwK0p6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCRVQwTlZUVVZPVkRwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5QRVJQUXo0bk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUVaTVQxZGZSVTVFT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDYzhSa3hQVjE5RlRrUStKenRjYmlBZ0lDQWdJQ0FnWTJGelpTQlRRMEZNUVZJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKenhUUTBGTVFWSStKenRjYmlBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2gwYjJ0bGJpazdYRzRnSUNBZ2ZWeHVmVnh1THlvcUlFbGtaVzUwYVdaNUlIUm9aU0IwZVhCbElHOW1JR0VnYkdWNFpYSWdkRzlyWlc0dUlFMWhlU0J5WlhSMWNtNGdZRzUxYkd4Z0lHWnZjaUIxYm10dWIzZHVJSFJ2YTJWdWN5NGdLaTljYm1aMWJtTjBhVzl1SUhSdmEyVnVWSGx3WlNoemIzVnlZMlVwSUh0Y2JpQWdJQ0J6ZDJsMFkyZ2dLSE52ZFhKalpTa2dlMXh1SUNBZ0lDQWdJQ0JqWVhObElFSlBUVHBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbllubDBaUzF2Y21SbGNpMXRZWEpySnp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JFVDBOVlRVVk9WRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBblpHOWpMVzF2WkdVbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUVaTVQxZGZSVTVFT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZG1iRzkzTFdWeWNtOXlMV1Z1WkNjN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnVTBOQlRFRlNPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkelkyRnNZWEluTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2N0TFMwbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RrYjJNdGMzUmhjblFuTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2N1TGk0bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RrYjJNdFpXNWtKenRjYmlBZ0lDQWdJQ0FnWTJGelpTQW5KenBjYmlBZ0lDQWdJQ0FnWTJGelpTQW5YRnh1SnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWEZ4eVhGeHVKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbmJtVjNiR2x1WlNjN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSnkwbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2R6WlhFdGFYUmxiUzFwYm1Rbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjL0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKem9uT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZHRZWEF0ZG1Gc2RXVXRhVzVrSnp0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuZXljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlpzYjNjdGJXRndMWE4wWVhKMEp6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNBbmZTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSjJac2IzY3RiV0Z3TFdWdVpDYzdYRzRnSUNBZ0lDQWdJR05oYzJVZ0oxc25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkbWJHOTNMWE5sY1MxemRHRnlkQ2M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMTBuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZG1iRzkzTFhObGNTMWxibVFuTzF4dUlDQWdJQ0FnSUNCallYTmxJQ2NzSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW5ZMjl0YldFbk8xeHVJQ0FnSUgxY2JpQWdJQ0J6ZDJsMFkyZ2dLSE52ZFhKalpWc3dYU2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJQ2NnSnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWEZ4MEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuYzNCaFkyVW5PMXh1SUNBZ0lDQWdJQ0JqWVhObElDY2pKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBblkyOXRiV1Z1ZENjN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnSnlVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RrYVhKbFkzUnBkbVV0YkdsdVpTYzdYRzRnSUNBZ0lDQWdJR05oYzJVZ0p5b25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkaGJHbGhjeWM3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKeVluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZGhibU5vYjNJbk8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUNjaEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFuZEdGbkp6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0lpZGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBbmMybHVaMnhsTFhGMWIzUmxaQzF6WTJGc1lYSW5PMXh1SUNBZ0lDQWdJQ0JqWVhObElDZGNJaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0oyUnZkV0pzWlMxeGRXOTBaV1F0YzJOaGJHRnlKenRjYmlBZ0lDQWdJQ0FnWTJGelpTQW5mQ2M2WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKejRuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZGliRzlqYXkxelkyRnNZWEl0YUdWaFpHVnlKenRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzU5WEc1Y2JtVjRjRzl5ZENCN0lFSlBUU3dnUkU5RFZVMUZUbFFzSUVaTVQxZGZSVTVFTENCVFEwRk1RVklzSUdselEyOXNiR1ZqZEdsdmJpd2dhWE5UWTJGc1lYSXNJSEJ5WlhSMGVWUnZhMlZ1TENCMGIydGxibFI1Y0dVZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCQ1QwMHNJRVJQUTFWTlJVNVVMQ0JHVEU5WFgwVk9SQ3dnVTBOQlRFRlNJSDBnWm5KdmJTQW5MaTlqYzNRdWFuTW5PMXh1WEc0dktseHVVMVJCVWxRZ0xUNGdjM1J5WldGdFhHNWNibk4wY21WaGJWeHVJQ0JrYVhKbFkzUnBkbVVnTFQ0Z2JHbHVaUzFsYm1RZ0xUNGdjM1J5WldGdFhHNGdJR2x1WkdWdWRDQXJJR3hwYm1VdFpXNWtJQzArSUhOMGNtVmhiVnh1SUNCYlpXeHpaVjBnTFQ0Z2JHbHVaUzF6ZEdGeWRGeHVYRzVzYVc1bExXVnVaRnh1SUNCamIyMXRaVzUwSUMwK0lHeHBibVV0Wlc1a1hHNGdJRzVsZDJ4cGJtVWdMVDRnTGx4dUlDQnBibkIxZEMxbGJtUWdMVDRnUlU1RVhHNWNibXhwYm1VdGMzUmhjblJjYmlBZ1pHOWpMWE4wWVhKMElDMCtJR1J2WTF4dUlDQmtiMk10Wlc1a0lDMCtJSE4wY21WaGJWeHVJQ0JiWld4elpWMGdMVDRnYVc1a1pXNTBJQzArSUdKc2IyTnJMWE4wWVhKMFhHNWNibUpzYjJOckxYTjBZWEowWEc0Z0lITmxjUzFwZEdWdExYTjBZWEowSUMwK0lHSnNiMk5yTFhOMFlYSjBYRzRnSUdWNGNHeHBZMmwwTFd0bGVTMXpkR0Z5ZENBdFBpQmliRzlqYXkxemRHRnlkRnh1SUNCdFlYQXRkbUZzZFdVdGMzUmhjblFnTFQ0Z1lteHZZMnN0YzNSaGNuUmNiaUFnVzJWc2MyVmRJQzArSUdSdlkxeHVYRzVrYjJOY2JpQWdiR2x1WlMxbGJtUWdMVDRnYkdsdVpTMXpkR0Z5ZEZ4dUlDQnpjR0ZqWlhNZ0xUNGdaRzlqWEc0Z0lHRnVZMmh2Y2lBdFBpQmtiMk5jYmlBZ2RHRm5JQzArSUdSdlkxeHVJQ0JtYkc5M0xYTjBZWEowSUMwK0lHWnNiM2NnTFQ0Z1pHOWpYRzRnSUdac2IzY3RaVzVrSUMwK0lHVnljbTl5SUMwK0lHUnZZMXh1SUNCelpYRXRhWFJsYlMxemRHRnlkQ0F0UGlCbGNuSnZjaUF0UGlCa2IyTmNiaUFnWlhod2JHbGphWFF0YTJWNUxYTjBZWEowSUMwK0lHVnljbTl5SUMwK0lHUnZZMXh1SUNCdFlYQXRkbUZzZFdVdGMzUmhjblFnTFQ0Z1pHOWpYRzRnSUdGc2FXRnpJQzArSUdSdlkxeHVJQ0J4ZFc5MFpTMXpkR0Z5ZENBdFBpQnhkVzkwWldRdGMyTmhiR0Z5SUMwK0lHUnZZMXh1SUNCaWJHOWpheTF6WTJGc1lYSXRhR1ZoWkdWeUlDMCtJR3hwYm1VdFpXNWtJQzArSUdKc2IyTnJMWE5qWVd4aGNpaHRhVzRwSUMwK0lHeHBibVV0YzNSaGNuUmNiaUFnVzJWc2MyVmRJQzArSUhCc1lXbHVMWE5qWVd4aGNpaG1ZV3h6WlN3Z2JXbHVLU0F0UGlCa2IyTmNibHh1Wm14dmQxeHVJQ0JzYVc1bExXVnVaQ0F0UGlCbWJHOTNYRzRnSUhOd1lXTmxjeUF0UGlCbWJHOTNYRzRnSUdGdVkyaHZjaUF0UGlCbWJHOTNYRzRnSUhSaFp5QXRQaUJtYkc5M1hHNGdJR1pzYjNjdGMzUmhjblFnTFQ0Z1pteHZkeUF0UGlCbWJHOTNYRzRnSUdac2IzY3RaVzVrSUMwK0lDNWNiaUFnYzJWeExXbDBaVzB0YzNSaGNuUWdMVDRnWlhKeWIzSWdMVDRnWm14dmQxeHVJQ0JsZUhCc2FXTnBkQzFyWlhrdGMzUmhjblFnTFQ0Z1pteHZkMXh1SUNCdFlYQXRkbUZzZFdVdGMzUmhjblFnTFQ0Z1pteHZkMXh1SUNCaGJHbGhjeUF0UGlCbWJHOTNYRzRnSUhGMWIzUmxMWE4wWVhKMElDMCtJSEYxYjNSbFpDMXpZMkZzWVhJZ0xUNGdabXh2ZDF4dUlDQmpiMjF0WVNBdFBpQm1iRzkzWEc0Z0lGdGxiSE5sWFNBdFBpQndiR0ZwYmkxelkyRnNZWElvZEhKMVpTd2dNQ2tnTFQ0Z1pteHZkMXh1WEc1eGRXOTBaV1F0YzJOaGJHRnlYRzRnSUhGMWIzUmxMV1Z1WkNBdFBpQXVYRzRnSUZ0bGJITmxYU0F0UGlCeGRXOTBaV1F0YzJOaGJHRnlYRzVjYm1Kc2IyTnJMWE5qWVd4aGNpaHRhVzRwWEc0Z0lHNWxkMnhwYm1VZ0t5QndaV1ZyS0dsdVpHVnVkQ0E4SUcxcGJpa2dMVDRnTGx4dUlDQmJaV3h6WlYwZ0xUNGdZbXh2WTJzdGMyTmhiR0Z5S0cxcGJpbGNibHh1Y0d4aGFXNHRjMk5oYkdGeUtHbHpMV1pzYjNjc0lHMXBiaWxjYmlBZ2MyTmhiR0Z5TFdWdVpDaHBjeTFtYkc5M0tTQXRQaUF1WEc0Z0lIQmxaV3NvYm1WM2JHbHVaU0FySUNocGJtUmxiblFnUENCdGFXNHBLU0F0UGlBdVhHNGdJRnRsYkhObFhTQXRQaUJ3YkdGcGJpMXpZMkZzWVhJb2JXbHVLVnh1S2k5Y2JtWjFibU4wYVc5dUlHbHpSVzF3ZEhrb1kyZ3BJSHRjYmlBZ0lDQnpkMmwwWTJnZ0tHTm9LU0I3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdkVzVrWldacGJtVmtPbHh1SUNBZ0lDQWdJQ0JqWVhObElDY2dKenBjYmlBZ0lDQWdJQ0FnWTJGelpTQW5YRnh1SnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0FuWEZ4eUp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblhGeDBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lIMWNibjFjYm1OdmJuTjBJR2hsZUVScFoybDBjeUE5SUc1bGR5QlRaWFFvSnpBeE1qTTBOVFkzT0RsQlFrTkVSVVpoWW1Oa1pXWW5LVHRjYm1OdmJuTjBJSFJoWjBOb1lYSnpJRDBnYm1WM0lGTmxkQ2hjSWpBeE1qTTBOVFkzT0RsQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV21GaVkyUmxabWRvYVdwcmJHMXViM0J4Y25OMGRYWjNlSGw2TFNNN0x6ODZRQ1k5S3lSZkxpRitLaWNvS1Z3aUtUdGNibU52Ym5OMElHWnNiM2RKYm1ScFkyRjBiM0pEYUdGeWN5QTlJRzVsZHlCVFpYUW9KeXhiWFh0OUp5azdYRzVqYjI1emRDQnBiblpoYkdsa1FXNWphRzl5UTJoaGNuTWdQU0J1WlhjZ1UyVjBLQ2NnTEZ0ZGUzMWNYRzVjWEhKY1hIUW5LVHRjYm1OdmJuTjBJR2x6VG05MFFXNWphRzl5UTJoaGNpQTlJQ2hqYUNrZ1BUNGdJV05vSUh4OElHbHVkbUZzYVdSQmJtTm9iM0pEYUdGeWN5NW9ZWE1vWTJncE8xeHVMeW9xWEc0Z0tpQlRjR3hwZEhNZ1lXNGdhVzV3ZFhRZ2MzUnlhVzVuSUdsdWRHOGdiR1Y0YVdOaGJDQjBiMnRsYm5Nc0lHa3VaUzRnYzIxaGJHeGxjaUJ6ZEhKcGJtZHpJSFJvWVhRZ1lYSmxYRzRnS2lCbFlYTnBiSGtnYVdSbGJuUnBabWxoWW14bElHSjVJR0IwYjJ0bGJuTXVkRzlyWlc1VWVYQmxLQ2xnTGx4dUlDcGNiaUFxSUV4bGVHbHVaeUJ6ZEdGeWRITWdZV3gzWVhseklHbHVJR0VnWENKemRISmxZVzFjSWlCamIyNTBaWGgwTGlCSmJtTnZiWEJzWlhSbElHbHVjSFYwSUcxaGVTQmlaU0JpZFdabVpYSmxaRnh1SUNvZ2RXNTBhV3dnWVNCamIyMXdiR1YwWlNCMGIydGxiaUJqWVc0Z1ltVWdaVzFwZEhSbFpDNWNiaUFxWEc0Z0tpQkpiaUJoWkdScGRHbHZiaUIwYnlCemJHbGpaWE1nYjJZZ2RHaGxJRzl5YVdkcGJtRnNJR2x1Y0hWMExDQjBhR1VnWm05c2JHOTNhVzVuSUdOdmJuUnliMndnWTJoaGNtRmpkR1Z5YzF4dUlDb2diV0Y1SUdGc2MyOGdZbVVnWlcxcGRIUmxaRHBjYmlBcVhHNGdLaUF0SUdCY1hIZ3dNbUFnS0ZOMFlYSjBJRzltSUZSbGVIUXBPaUJCSUdSdlkzVnRaVzUwSUhOMFlYSjBjeUIzYVhSb0lIUm9aU0J1WlhoMElIUnZhMlZ1WEc0Z0tpQXRJR0JjWEhneE9HQWdLRU5oYm1ObGJDazZJRlZ1Wlhod1pXTjBaV1FnWlc1a0lHOW1JR1pzYjNjdGJXOWtaU0FvYVc1a2FXTmhkR1Z6SUdGdUlHVnljbTl5S1Z4dUlDb2dMU0JnWEZ4NE1XWmdJQ2hWYm1sMElGTmxjR0Z5WVhSdmNpazZJRTVsZUhRZ2RHOXJaVzRnYVhNZ1lTQnpZMkZzWVhJZ2RtRnNkV1ZjYmlBcUlDMGdZRnhjZFh0R1JVWkdmV0FnS0VKNWRHVWdiM0prWlhJZ2JXRnlheWs2SUVWdGFYUjBaV1FnYzJWd1lYSmhkR1ZzZVNCdmRYUnphV1JsSUdSdlkzVnRaVzUwYzF4dUlDb3ZYRzVqYkdGemN5Qk1aWGhsY2lCN1hHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ0lDQWdJQzhxS2x4dUlDQWdJQ0FnSUNBZ0tpQkdiR0ZuSUdsdVpHbGpZWFJwYm1jZ2QyaGxkR2hsY2lCMGFHVWdaVzVrSUc5bUlIUm9aU0JqZFhKeVpXNTBJR0oxWm1abGNpQnRZWEpyY3lCMGFHVWdaVzVrSUc5bVhHNGdJQ0FnSUNBZ0lDQXFJR0ZzYkNCcGJuQjFkRnh1SUNBZ0lDQWdJQ0FnS2k5Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoZEVWdVpDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FnSUNvZ1JYaHdiR2xqYVhRZ2FXNWtaVzUwSUhObGRDQnBiaUJpYkc5amF5QnpZMkZzWVhJZ2FHVmhaR1Z5TENCaGN5QmhiaUJ2Wm1aelpYUWdabkp2YlNCMGFHVWdZM1Z5Y21WdWRGeHVJQ0FnSUNBZ0lDQWdLaUJ0YVc1cGJYVnRJR2x1WkdWdWRDd2djMjhnWlM1bkxpQnpaWFFnZEc4Z01TQm1jbTl0SUdFZ2FHVmhaR1Z5SUdCOE1pdGdMaUJUWlhRZ2RHOGdMVEVnYVdZZ2JtOTBYRzRnSUNBZ0lDQWdJQ0FxSUdWNGNHeHBZMmwwYkhrZ2MyVjBMbHh1SUNBZ0lDQWdJQ0FnS2k5Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVpYkc5amExTmpZV3hoY2tsdVpHVnVkQ0E5SUMweE8xeHVJQ0FnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FnSUNvZ1FteHZZMnNnYzJOaGJHRnljeUIwYUdGMElHbHVZMngxWkdVZ1lTQXJJQ2hyWldWd0tTQmphRzl0Y0dsdVp5QnBibVJwWTJGMGIzSWdhVzRnZEdobGFYSWdhR1ZoWkdWeVhHNGdJQ0FnSUNBZ0lDQXFJR2x1WTJ4MVpHVWdkSEpoYVd4cGJtY2daVzF3ZEhrZ2JHbHVaWE1zSUhkb2FXTm9JR0Z5WlNCdmRHaGxjbmRwYzJVZ1pYaGpiSFZrWldRZ1puSnZiU0IwYUdWY2JpQWdJQ0FnSUNBZ0lDb2djMk5oYkdGeUozTWdZMjl1ZEdWdWRITXVYRzRnSUNBZ0lDQWdJQ0FxTDF4dUlDQWdJQ0FnSUNCMGFHbHpMbUpzYjJOclUyTmhiR0Z5UzJWbGNDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQXZLaW9nUTNWeWNtVnVkQ0JwYm5CMWRDQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtSjFabVpsY2lBOUlDY25PMXh1SUNBZ0lDQWdJQ0F2S2lwY2JpQWdJQ0FnSUNBZ0lDb2dSbXhoWnlCdWIzUnBibWNnZDJobGRHaGxjaUIwYUdVZ2JXRndJSFpoYkhWbElHbHVaR2xqWVhSdmNpQTZJR05oYmlCcGJXMWxaR2xoZEdWc2VTQm1iMnhzYjNjZ2RHaHBjMXh1SUNBZ0lDQWdJQ0FnS2lCdWIyUmxJSGRwZEdocGJpQmhJR1pzYjNjZ1kyOXVkR1Y0ZEM1Y2JpQWdJQ0FnSUNBZ0lDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdVpteHZkMHRsZVNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBdktpb2dRMjkxYm5RZ2IyWWdjM1Z5Y205MWJtUnBibWNnWm14dmR5QmpiMnhzWldOMGFXOXVJR3hsZG1Wc2N5NGdLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NW1iRzkzVEdWMlpXd2dQU0F3TzF4dUlDQWdJQ0FnSUNBdktpcGNiaUFnSUNBZ0lDQWdJQ29nVFdsdWFXMTFiU0JzWlhabGJDQnZaaUJwYm1SbGJuUmhkR2x2YmlCeVpYRjFhWEpsWkNCbWIzSWdibVY0ZENCc2FXNWxjeUIwYnlCaVpTQndZWEp6WldRZ1lYTWdZVnh1SUNBZ0lDQWdJQ0FnS2lCd1lYSjBJRzltSUhSb1pTQmpkWEp5Wlc1MElITmpZV3hoY2lCMllXeDFaUzVjYmlBZ0lDQWdJQ0FnSUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11YVc1a1pXNTBUbVY0ZENBOUlEQTdYRzRnSUNBZ0lDQWdJQzhxS2lCSmJtUmxiblJoZEdsdmJpQnNaWFpsYkNCdlppQjBhR1VnWTNWeWNtVnVkQ0JzYVc1bExpQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHVaR1Z1ZEZaaGJIVmxJRDBnTUR0Y2JpQWdJQ0FnSUNBZ0x5b3FJRkJ2YzJsMGFXOXVJRzltSUhSb1pTQnVaWGgwSUZ4Y2JpQmphR0Z5WVdOMFpYSXVJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXViR2x1WlVWdVpGQnZjeUE5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQzhxS2lCVGRHOXlaWE1nZEdobElITjBZWFJsSUc5bUlIUm9aU0JzWlhobGNpQnBaaUJ5WldGamFHbHVaeUIwYUdVZ1pXNWtJRzltSUdsdVkzQnZiWEJzWlhSbElHbHVjSFYwSUNvdlhHNGdJQ0FnSUNBZ0lIUm9hWE11Ym1WNGRDQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDOHFLaUJCSUhCdmFXNTBaWElnZEc4Z1lHSjFabVpsY21BN0lIUm9aU0JqZFhKeVpXNTBJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQnNaWGhsY2k0Z0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTWdQU0F3TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlc1bGNtRjBaU0JaUVUxTUlIUnZhMlZ1Y3lCbWNtOXRJSFJvWlNCZ2MyOTFjbU5sWUNCemRISnBibWN1SUVsbUlHQnBibU52YlhCc1pYUmxZQ3hjYmlBZ0lDQWdLaUJoSUhCaGNuUWdiMllnZEdobElHeGhjM1FnYkdsdVpTQnRZWGtnWW1VZ2JHVm1kQ0JoY3lCaElHSjFabVpsY2lCbWIzSWdkR2hsSUc1bGVIUWdZMkZzYkM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUVFZ1oyVnVaWEpoZEc5eUlHOW1JR3hsZUdsallXd2dkRzlyWlc1elhHNGdJQ0FnSUNvdlhHNGdJQ0FnS214bGVDaHpiM1Z5WTJVc0lHbHVZMjl0Y0d4bGRHVWdQU0JtWVd4elpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyOTFjbU5sS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhOdmRYSmpaU0FoUFQwZ0ozTjBjbWx1WnljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnVkhsd1pVVnljbTl5S0NkemIzVnlZMlVnYVhNZ2JtOTBJR0VnYzNSeWFXNW5KeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1KMVptWmxjaUE5SUhSb2FYTXVZblZtWm1WeUlEOGdkR2hwY3k1aWRXWm1aWElnS3lCemIzVnlZMlVnT2lCemIzVnlZMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG14cGJtVkZibVJRYjNNZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIUm9hWE11WVhSRmJtUWdQU0FoYVc1amIyMXdiR1YwWlR0Y2JpQWdJQ0FnSUNBZ2JHVjBJRzVsZUhRZ1BTQjBhR2x6TG01bGVIUWdQejhnSjNOMGNtVmhiU2M3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2h1WlhoMElDWW1JQ2hwYm1OdmJYQnNaWFJsSUh4OElIUm9hWE11YUdGelEyaGhjbk1vTVNrcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WNGRDQTlJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxUbVY0ZENodVpYaDBLVHRjYmlBZ0lDQjlYRzRnSUNBZ1lYUk1hVzVsUlc1a0tDa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJSFJvYVhNdWNHOXpPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1kyZ2dQU0IwYUdsekxtSjFabVpsY2x0cFhUdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHTm9JRDA5UFNBbklDY2dmSHdnWTJnZ1BUMDlJQ2RjWEhRbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBhR2x6TG1KMVptWmxjbHNySzJsZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVdOb0lIeDhJR05vSUQwOVBTQW5JeWNnZkh3Z1kyZ2dQVDA5SUNkY1hHNG5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQWdJR2xtSUNoamFDQTlQVDBnSjF4Y2NpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWlkV1ptWlhKYmFTQXJJREZkSUQwOVBTQW5YRnh1Snp0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lIMWNiaUFnSUNCamFHRnlRWFFvYmlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVpZFdabVpYSmJkR2hwY3k1d2IzTWdLeUJ1WFR0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1ZEdsdWRXVlRZMkZzWVhJb2IyWm1jMlYwS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXMjltWm5ObGRGMDdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx1WkdWdWRFNWxlSFFnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhVzVrWlc1MElEMGdNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNoamFDQTlQVDBnSnlBbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTm9JRDBnZEdocGN5NWlkV1ptWlhKYkt5dHBibVJsYm5RZ0t5QnZabVp6WlhSZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTm9JRDA5UFNBblhGeHlKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzVsZUhRZ1BTQjBhR2x6TG1KMVptWmxjbHRwYm1SbGJuUWdLeUJ2Wm1aelpYUWdLeUF4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ibVY0ZENBOVBUMGdKMXhjYmljZ2ZId2dLQ0Z1WlhoMElDWW1JQ0YwYUdsekxtRjBSVzVrS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHOW1abk5sZENBcklHbHVaR1Z1ZENBcklERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMmdnUFQwOUlDZGNYRzRuSUh4OElHbHVaR1Z1ZENBK1BTQjBhR2x6TG1sdVpHVnVkRTVsZUhRZ2ZId2dLQ0ZqYUNBbUppQWhkR2hwY3k1aGRFVnVaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUc5bVpuTmxkQ0FySUdsdVpHVnVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nTFRFN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuTFNjZ2ZId2dZMmdnUFQwOUlDY3VKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pIUWdQU0IwYUdsekxtSjFabVpsY2k1emRXSnpkSElvYjJabWMyVjBMQ0F6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnb1pIUWdQVDA5SUNjdExTMG5JSHg4SUdSMElEMDlQU0FuTGk0dUp5a2dKaVlnYVhORmJYQjBlU2gwYUdsekxtSjFabVpsY2x0dlptWnpaWFFnS3lBelhTa3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDMHhPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ2Wm1aelpYUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRFeHBibVVvS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JsYm1RZ1BTQjBhR2x6TG14cGJtVkZibVJRYjNNN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdaVzVrSUNFOVBTQW5iblZ0WW1WeUp5QjhmQ0FvWlc1a0lDRTlQU0F0TVNBbUppQmxibVFnUENCMGFHbHpMbkJ2Y3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdVpDQTlJSFJvYVhNdVluVm1abVZ5TG1sdVpHVjRUMllvSjF4Y2JpY3NJSFJvYVhNdWNHOXpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YkdsdVpVVnVaRkJ2Y3lBOUlHVnVaRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9aVzVrSUQwOVBTQXRNU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbUYwUlc1a0lEOGdkR2hwY3k1aWRXWm1aWEl1YzNWaWMzUnlhVzVuS0hSb2FYTXVjRzl6S1NBNklHNTFiR3c3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1KMVptWmxjbHRsYm1RZ0xTQXhYU0E5UFQwZ0oxeGNjaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxibVFnTFQwZ01UdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WW5WbVptVnlMbk4xWW5OMGNtbHVaeWgwYUdsekxuQnZjeXdnWlc1a0tUdGNiaUFnSUNCOVhHNGdJQ0FnYUdGelEyaGhjbk1vYmlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3YjNNZ0t5QnVJRHc5SUhSb2FYTXVZblZtWm1WeUxteGxibWQwYUR0Y2JpQWdJQ0I5WEc0Z0lDQWdjMlYwVG1WNGRDaHpkR0YwWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1KMVptWmxjaUE5SUhSb2FYTXVZblZtWm1WeUxuTjFZbk4wY21sdVp5aDBhR2x6TG5CdmN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNHOXpJRDBnTUR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVzYVc1bFJXNWtVRzl6SUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXVaWGgwSUQwZ2MzUmhkR1U3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JpQWdJQ0J3WldWcktHNHBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVluVm1abVZ5TG5OMVluTjBjaWgwYUdsekxuQnZjeXdnYmlrN1hHNGdJQ0FnZlZ4dUlDQWdJQ3B3WVhKelpVNWxlSFFvYm1WNGRDa2dlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLRzVsZUhRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM04wY21WaGJTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIbHBaV3hrS2lCMGFHbHpMbkJoY25ObFUzUnlaV0Z0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHNhVzVsTFhOMFlYSjBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVk1hVzVsVTNSaGNuUW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJKc2IyTnJMWE4wWVhKMEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWQ2JHOWphMU4wWVhKMEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjJNbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NXdZWEp6WlVSdlkzVnRaVzUwS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZG1iRzkzSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNHRnljMlZHYkc5M1EyOXNiR1ZqZEdsdmJpZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuY1hWdmRHVmtMWE5qWVd4aGNpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIbHBaV3hrS2lCMGFHbHpMbkJoY25ObFVYVnZkR1ZrVTJOaGJHRnlLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaWJHOWpheTF6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpVSnNiMk5yVTJOaGJHRnlLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkd2JHRnBiaTF6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpWQnNZV2x1VTJOaGJHRnlLQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdLbkJoY25ObFUzUnlaV0Z0S0NrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYkdsdVpTQTlJSFJvYVhNdVoyVjBUR2x1WlNncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpTQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxuTmxkRTVsZUhRb0ozTjBjbVZoYlNjcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpWc3dYU0E5UFQwZ1FrOU5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bElEMGdiR2x1WlM1emRXSnpkSEpwYm1jb01TazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHBibVZiTUYwZ1BUMDlJQ2NsSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHUnBja1Z1WkNBOUlHeHBibVV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR056SUQwZ2JHbHVaUzVwYm1SbGVFOW1LQ2NqSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9ZM01nSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMmdnUFNCc2FXNWxXMk56SUMwZ01WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOb0lEMDlQU0FuSUNjZ2ZId2dZMmdnUFQwOUlDZGNYSFFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JwY2tWdVpDQTlJR056SUMwZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqY3lBOUlHeHBibVV1YVc1a1pYaFBaaWduSXljc0lHTnpJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tIUnlkV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYUNBOUlHeHBibVZiWkdseVJXNWtJQzBnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05vSUQwOVBTQW5JQ2NnZkh3Z1kyZ2dQVDA5SUNkY1hIUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2FYSkZibVFnTFQwZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYmlBOUlDaDVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvWkdseVJXNWtLU2tnS3lBb2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUZOd1lXTmxjeWgwY25WbEtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdkWE5vUTI5MWJuUW9iR2x1WlM1c1pXNW5kR2dnTFNCdUtUc2dMeThnY0c5emMybGliR1VnWTI5dGJXVnVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3ZFhOb1RtVjNiR2x1WlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2R6ZEhKbFlXMG5PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1GMFRHbHVaVVZ1WkNncEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6Y0NBOUlIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVGNHRmpaWE1vZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdkWE5vUTI5MWJuUW9iR2x1WlM1c1pXNW5kR2dnTFNCemNDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdkWE5vVG1WM2JHbHVaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZHpkSEpsWVcwbk8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSGxwWld4a0lFUlBRMVZOUlU1VU8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWTWFXNWxVM1JoY25Rb0tUdGNiaUFnSUNCOVhHNGdJQ0FnS25CaGNuTmxUR2x1WlZOMFlYSjBLQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JqYUNBOUlIUm9hWE11WTJoaGNrRjBLREFwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV05vSUNZbUlDRjBhR2x6TG1GMFJXNWtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwVG1WNGRDZ25iR2x1WlMxemRHRnlkQ2NwTzF4dUlDQWdJQ0FnSUNCcFppQW9ZMmdnUFQwOUlDY3RKeUI4ZkNCamFDQTlQVDBnSnk0bktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdVlYUkZibVFnSmlZZ0lYUm9hWE11YUdGelEyaGhjbk1vTkNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwVG1WNGRDZ25iR2x1WlMxemRHRnlkQ2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2N5QTlJSFJvYVhNdWNHVmxheWd6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnb2N5QTlQVDBnSnkwdExTY2dmSHdnY3lBOVBUMGdKeTR1TGljcElDWW1JR2x6Ulcxd2RIa29kR2hwY3k1amFHRnlRWFFvTXlrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0hWemFFTnZkVzUwS0RNcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc1a1pXNTBWbUZzZFdVZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVG1WNGRDQTlJREE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE1nUFQwOUlDY3RMUzBuSUQ4Z0oyUnZZeWNnT2lBbmMzUnlaV0Z0Snp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMGFHbHpMbWx1WkdWdWRGWmhiSFZsSUQwZ2VXbGxiR1FxSUhSb2FYTXVjSFZ6YUZOd1lXTmxjeWhtWVd4elpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx1WkdWdWRFNWxlSFFnUGlCMGFHbHpMbWx1WkdWdWRGWmhiSFZsSUNZbUlDRnBjMFZ0Y0hSNUtIUm9hWE11WTJoaGNrRjBLREVwS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVG1WNGRDQTlJSFJvYVhNdWFXNWtaVzUwVm1Gc2RXVTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpVSnNiMk5yVTNSaGNuUW9LVHRjYmlBZ0lDQjlYRzRnSUNBZ0tuQmhjbk5sUW14dlkydFRkR0Z5ZENncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1cyTm9NQ3dnWTJneFhTQTlJSFJvYVhNdWNHVmxheWd5S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZqYURFZ0ppWWdJWFJvYVhNdVlYUkZibVFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV6WlhST1pYaDBLQ2RpYkc5amF5MXpkR0Z5ZENjcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvS0dOb01DQTlQVDBnSnkwbklIeDhJR05vTUNBOVBUMGdKejhuSUh4OElHTm9NQ0E5UFQwZ0p6b25LU0FtSmlCcGMwVnRjSFI1S0dOb01Ta3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUc0Z1BTQW9lV2xsYkdRcUlIUm9hWE11Y0hWemFFTnZkVzUwS0RFcEtTQXJJQ2g1YVdWc1pDb2dkR2hwY3k1d2RYTm9VM0JoWTJWektIUnlkV1VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVG1WNGRDQTlJSFJvYVhNdWFXNWtaVzUwVm1Gc2RXVWdLeUF4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1cGJtUmxiblJXWVd4MVpTQXJQU0J1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIbHBaV3hrS2lCMGFHbHpMbkJoY25ObFFteHZZMnRUZEdGeWRDZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFuWkc5akp6dGNiaUFnSUNCOVhHNGdJQ0FnS25CaGNuTmxSRzlqZFcxbGJuUW9LU0I3WEc0Z0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhUY0dGalpYTW9kSEoxWlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0IwYUdsekxtZGxkRXhwYm1Vb0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0d4cGJtVWdQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXpaWFJPWlhoMEtDZGtiMk1uS1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJRzRnUFNCNWFXVnNaQ29nZEdocGN5NXdkWE5vU1c1a2FXTmhkRzl5Y3lncE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHeHBibVZiYmwwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKeU1uT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhEYjNWdWRDaHNhVzVsTG14bGJtZDBhQ0F0SUc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1ptRnNiSFJvY205MVoyaGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdkVzVrWldacGJtVmtPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CMWMyaE9aWGRzYVc1bEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIbHBaV3hrS2lCMGFHbHpMbkJoY25ObFRHbHVaVk4wWVhKMEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2Q3SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oxc25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CMWMyaERiM1Z1ZENneEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ac2IzZExaWGtnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtWnNiM2RNWlhabGJDQTlJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RtYkc5M0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMzBuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblhTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnZEdocGN5QnBjeUJoYmlCbGNuSnZjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CMWMyaERiM1Z1ZENneEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0oyUnZZeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjcUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1ZXNTBhV3dvYVhOT2IzUkJibU5vYjNKRGFHRnlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlJ2WXljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGNJaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aUoxd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV3WVhKelpWRjFiM1JsWkZOallXeGhjaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmZDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2MrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdUlDczlJSGxwWld4a0tpQjBhR2x6TG5CaGNuTmxRbXh2WTJ0VFkyRnNZWEpJWldGa1pYSW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1SUNzOUlIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVGNHRmpaWE1vZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0hWemFFTnZkVzUwS0d4cGJtVXViR1Z1WjNSb0lDMGdiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRTVsZDJ4cGJtVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVkNiRzlqYTFOallXeGhjaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWUWJHRnBibE5qWVd4aGNpZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lDcHdZWEp6WlVac2IzZERiMnhzWldOMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdibXdzSUhOd08xeHVJQ0FnSUNBZ0lDQnNaWFFnYVc1a1pXNTBJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lHUnZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHNXNJRDBnZVdsbGJHUXFJSFJvYVhNdWNIVnphRTVsZDJ4cGJtVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YkNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6Y0NBOUlIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVGNHRmpaWE1vWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNWtaVzUwVm1Gc2RXVWdQU0JwYm1SbGJuUWdQU0J6Y0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOd0lEMGdNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhOd0lDczlJSGxwWld4a0tpQjBhR2x6TG5CMWMyaFRjR0ZqWlhNb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUgwZ2QyaHBiR1VnS0c1c0lDc2djM0FnUGlBd0tUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JHbHVaU0E5SUhSb2FYTXVaMlYwVEdsdVpTZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaU0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sZEU1bGVIUW9KMlpzYjNjbktUdGNiaUFnSUNBZ0lDQWdhV1lnS0NocGJtUmxiblFnSVQwOUlDMHhJQ1ltSUdsdVpHVnVkQ0E4SUhSb2FYTXVhVzVrWlc1MFRtVjRkQ0FtSmlCc2FXNWxXekJkSUNFOVBTQW5JeWNwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FvYVc1a1pXNTBJRDA5UFNBd0lDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLR3hwYm1VdWMzUmhjblJ6VjJsMGFDZ25MUzB0SnlrZ2ZId2diR2x1WlM1emRHRnlkSE5YYVhSb0tDY3VMaTRuS1NrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMFZ0Y0hSNUtHeHBibVZiTTEwcEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdRV3hzYjNkcGJtY2dabTl5SUhSb1pTQjBaWEp0YVc1aGJDQmRJRzl5SUgwZ1lYUWdkR2hsSUhOaGJXVWdLSEpoZEdobGNpQjBhR0Z1SUdkeVpXRjBaWElwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJwYm1SbGJuUWdiR1YyWld3Z1lYTWdkR2hsSUdsdWFYUnBZV3dnV3lCdmNpQjdJR2x6SUhSbFkyaHVhV05oYkd4NUlHbHVkbUZzYVdRc0lHSjFkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabUZwYkdsdVp5Qm9aWEpsSUhkdmRXeGtJR0psSUhOMWNuQnlhWE5wYm1jZ2RHOGdkWE5sY25NdVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmhkRVpzYjNkRmJtUk5ZWEpyWlhJZ1BTQnBibVJsYm5RZ1BUMDlJSFJvYVhNdWFXNWtaVzUwVG1WNGRDQXRJREVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVpzYjNkTVpYWmxiQ0E5UFQwZ01TQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2hzYVc1bFd6QmRJRDA5UFNBblhTY2dmSHdnYkdsdVpWc3dYU0E5UFQwZ0ozMG5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doWVhSR2JHOTNSVzVrVFdGeWEyVnlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2RHaHBjeUJwY3lCaGJpQmxjbkp2Y2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVabXh2ZDB4bGRtVnNJRDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ0JHVEU5WFgwVk9SRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0dGeWMyVk1hVzVsVTNSaGNuUW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JzWlhRZ2JpQTlJREE3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hzYVc1bFcyNWRJRDA5UFNBbkxDY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHNGdLejBnZVdsbGJHUXFJSFJvYVhNdWNIVnphRU52ZFc1MEtERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JpQXJQU0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9VM0JoWTJWektIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bWJHOTNTMlY1SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2JpQXJQU0I1YVdWc1pDb2dkR2hwY3k1d2RYTm9TVzVrYVdOaGRHOXljeWdwTzF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0d4cGJtVmJibDBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ2RXNWtaV1pwYm1Wa09seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBblpteHZkeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjakp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvYkdsdVpTNXNaVzVuZEdnZ0xTQnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlpzYjNjbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5leWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkYkp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVtYkc5M1MyVjVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bWJHOTNUR1YyWld3Z0t6MGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMlpzYjNjbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5mU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkZEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVtYkc5M1MyVjVJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ac2IzZE1aWFpsYkNBdFBTQXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1ac2IzZE1aWFpsYkNBL0lDZG1iRzkzSnlBNklDZGtiMk1uTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbktpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0hWemFGVnVkR2xzS0dselRtOTBRVzVqYUc5eVEyaGhjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RtYkc5M0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMXdpSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSW5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW1iRzkzUzJWNUlEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNHRnljMlZSZFc5MFpXUlRZMkZzWVhJb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKem9uT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm1WNGRDQTlJSFJvYVhNdVkyaGhja0YwS0RFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtWnNiM2RMWlhrZ2ZId2dhWE5GYlhCMGVTaHVaWGgwS1NCOGZDQnVaWGgwSUQwOVBTQW5MQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bWJHOTNTMlY1SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkIxYzJoRGIzVnVkQ2d4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0hWemFGTndZV05sY3loMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkbWJHOTNKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5Qm1ZV3hzZEdoeWIzVm5hRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVpzYjNkTFpYa2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVjR0Z5YzJWUWJHRnBibE5qWVd4aGNpZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lDcHdZWEp6WlZGMWIzUmxaRk5qWVd4aGNpZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjWFZ2ZEdVZ1BTQjBhR2x6TG1Ob1lYSkJkQ2d3S1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJR1Z1WkNBOUlIUm9hWE11WW5WbVptVnlMbWx1WkdWNFQyWW9jWFZ2ZEdVc0lIUm9hWE11Y0c5eklDc2dNU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHhkVzkwWlNBOVBUMGdYQ0luWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2hsYm1RZ0lUMDlJQzB4SUNZbUlIUm9hWE11WW5WbVptVnlXMlZ1WkNBcklERmRJRDA5UFNCY0lpZGNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYm1RZ1BTQjBhR2x6TG1KMVptWmxjaTVwYm1SbGVFOW1LRndpSjF3aUxDQmxibVFnS3lBeUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHUnZkV0pzWlMxeGRXOTBaVnh1SUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0dWdVpDQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYmlBOUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tIUm9hWE11WW5WbVptVnlXMlZ1WkNBdElERWdMU0J1WFNBOVBUMGdKMXhjWEZ3bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1SUNzOUlERTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c0Z0pTQXlJRDA5UFNBd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxibVFnUFNCMGFHbHpMbUoxWm1abGNpNXBibVJsZUU5bUtDZGNJaWNzSUdWdVpDQXJJREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklFOXViSGtnYkc5dmEybHVaeUJtYjNJZ2JtVjNiR2x1WlhNZ2QybDBhR2x1SUhSb1pTQnhkVzkwWlhOY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY1dJZ1BTQjBhR2x6TG1KMVptWmxjaTV6ZFdKemRISnBibWNvTUN3Z1pXNWtLVHRjYmlBZ0lDQWdJQ0FnYkdWMElHNXNJRDBnY1dJdWFXNWtaWGhQWmlnblhGeHVKeXdnZEdocGN5NXdiM01wTzF4dUlDQWdJQ0FnSUNCcFppQW9ibXdnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjNhR2xzWlNBb2Jtd2dJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kzTWdQU0IwYUdsekxtTnZiblJwYm5WbFUyTmhiR0Z5S0c1c0lDc2dNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnpJRDA5UFNBdE1TbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibXdnUFNCeFlpNXBibVJsZUU5bUtDZGNYRzRuTENCamN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2Jtd2dJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnZEdocGN5QnBjeUJoYmlCbGNuSnZjaUJqWVhWelpXUWdZbmtnWVc0Z2RXNWxlSEJsWTNSbFpDQjFibWx1WkdWdWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVaQ0E5SUc1c0lDMGdLSEZpVzI1c0lDMGdNVjBnUFQwOUlDZGNYSEluSUQ4Z01pQTZJREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaGxibVFnUFQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZWFJGYm1RcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwVG1WNGRDZ25jWFZ2ZEdWa0xYTmpZV3hoY2ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0lEMGdkR2hwY3k1aWRXWm1aWEl1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhVYjBsdVpHVjRLR1Z1WkNBcklERXNJR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Wm14dmQweGxkbVZzSUQ4Z0oyWnNiM2NuSURvZ0oyUnZZeWM3WEc0Z0lDQWdmVnh1SUNBZ0lDcHdZWEp6WlVKc2IyTnJVMk5oYkdGeVNHVmhaR1Z5S0NrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Kc2IyTnJVMk5oYkdGeVNXNWtaVzUwSUQwZ0xURTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVlteHZZMnRUWTJGc1lYSkxaV1Z3SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUd4bGRDQnBJRDBnZEdocGN5NXdiM003WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2gwY25WbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXeXNyYVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyZ2dQVDA5SUNjckp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Kc2IyTnJVMk5oYkdGeVMyVmxjQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFDQStJQ2N3SnlBbUppQmphQ0E4UFNBbk9TY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1aWJHOWphMU5qWVd4aGNrbHVaR1Z1ZENBOUlFNTFiV0psY2loamFDa2dMU0F4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZMmdnSVQwOUlDY3RKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0hWemFGVnVkR2xzS0dOb0lEMCtJR2x6Ulcxd2RIa29ZMmdwSUh4OElHTm9JRDA5UFNBbkl5Y3BPMXh1SUNBZ0lIMWNiaUFnSUNBcWNHRnljMlZDYkc5amExTmpZV3hoY2lncElIdGNiaUFnSUNBZ0lDQWdiR1YwSUc1c0lEMGdkR2hwY3k1d2IzTWdMU0F4T3lBdkx5QnRZWGtnWW1VZ0xURWdhV1lnZEdocGN5NXdiM01nUFQwOUlEQmNiaUFnSUNBZ0lDQWdiR1YwSUdsdVpHVnVkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JqYUR0Y2JpQWdJQ0FnSUNBZ2JHOXZjRG9nWm05eUlDaHNaWFFnYVNBOUlIUm9hWE11Y0c5ek95QW9ZMmdnUFNCMGFHbHpMbUoxWm1abGNsdHBYU2s3SUNzcmFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoamFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p5QW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxiblFnS3owZ01UdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblhGeHVKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2Jtd2dQU0JwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGNYSEluT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNWxlSFFnUFNCMGFHbHpMbUoxWm1abGNsdHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGJtVjRkQ0FtSmlBaGRHaHBjeTVoZEVWdVpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sZEU1bGVIUW9KMkpzYjJOckxYTmpZV3hoY2ljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JtVjRkQ0E5UFQwZ0oxeGNiaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlJQzh2SUdaaGJHeDBhSEp2ZFdkb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzZ2JHOXZjRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0lXTm9JQ1ltSUNGMGFHbHpMbUYwUlc1a0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyVjBUbVY0ZENnbllteHZZMnN0YzJOaGJHRnlKeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBibVJsYm5RZ1BqMGdkR2hwY3k1cGJtUmxiblJPWlhoMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2hwY3k1aWJHOWphMU5qWVd4aGNrbHVaR1Z1ZENBOVBUMGdMVEVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5ST1pYaDBJRDBnYVc1a1pXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5ST1pYaDBJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVpYkc5amExTmpZV3hoY2tsdVpHVnVkQ0FySUNoMGFHbHpMbWx1WkdWdWRFNWxlSFFnUFQwOUlEQWdQeUF4SURvZ2RHaHBjeTVwYm1SbGJuUk9aWGgwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpjeUE5SUhSb2FYTXVZMjl1ZEdsdWRXVlRZMkZzWVhJb2Jtd2dLeUF4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZM01nUFQwOUlDMHhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YkNBOUlIUm9hWE11WW5WbVptVnlMbWx1WkdWNFQyWW9KMXhjYmljc0lHTnpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdkMmhwYkdVZ0tHNXNJQ0U5UFNBdE1TazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ibXdnUFQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TG1GMFJXNWtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXpaWFJPWlhoMEtDZGliRzlqYXkxelkyRnNZWEluS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWJDQTlJSFJvYVhNdVluVm1abVZ5TG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0F2THlCVWNtRnBiR2x1WnlCcGJuTjFabVpwWTJsbGJuUnNlU0JwYm1SbGJuUmxaQ0IwWVdKeklHRnlaU0JwYm5aaGJHbGtMbHh1SUNBZ0lDQWdJQ0F2THlCVWJ5QmpZWFJqYUNCMGFHRjBJR1IxY21sdVp5QndZWEp6YVc1bkxDQjNaU0JwYm1Oc2RXUmxJSFJvWlcwZ2FXNGdkR2hsSUdKc2IyTnJJSE5qWVd4aGNpQjJZV3gxWlM1Y2JpQWdJQ0FnSUNBZ2JHVjBJR2tnUFNCdWJDQXJJREU3WEc0Z0lDQWdJQ0FnSUdOb0lEMGdkR2hwY3k1aWRXWm1aWEpiYVYwN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoamFDQTlQVDBnSnlBbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBhR2x6TG1KMVptWmxjbHNySzJsZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWTJnZ1BUMDlJQ2RjWEhRbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FHbHNaU0FvWTJnZ1BUMDlJQ2RjWEhRbklIeDhJR05vSUQwOVBTQW5JQ2NnZkh3Z1kyZ2dQVDA5SUNkY1hISW5JSHg4SUdOb0lEMDlQU0FuWEZ4dUp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmphQ0E5SUhSb2FYTXVZblZtWm1WeVd5c3JhVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnViQ0E5SUdrZ0xTQXhPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0NGMGFHbHpMbUpzYjJOclUyTmhiR0Z5UzJWbGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCcElEMGdibXdnTFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGphQ0E5UFQwZ0oxeGNjaWNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTm9JRDBnZEdocGN5NWlkV1ptWlhKYkxTMXBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnNZWE4wUTJoaGNpQTlJR2s3SUM4dklFUnliM0FnZEdobElHeHBibVVnYVdZZ2JHRnpkQ0JqYUdGeUlHNXZkQ0J0YjNKbElHbHVaR1Z1ZEdWa1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0dOb0lEMDlQU0FuSUNjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vSUQwZ2RHaHBjeTVpZFdabVpYSmJMUzFwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMmdnUFQwOUlDZGNYRzRuSUNZbUlHa2dQajBnZEdocGN5NXdiM01nSmlZZ2FTQXJJREVnS3lCcGJtUmxiblFnUGlCc1lYTjBRMmhoY2lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibXdnUFNCcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlJSGRvYVd4bElDaDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjVhV1ZzWkNCVFEwRk1RVkk3WEc0Z0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQjFjMmhVYjBsdVpHVjRLRzVzSUNzZ01Td2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NXdZWEp6WlV4cGJtVlRkR0Z5ZENncE8xeHVJQ0FnSUgxY2JpQWdJQ0FxY0dGeWMyVlFiR0ZwYmxOallXeGhjaWdwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVc1R2JHOTNJRDBnZEdocGN5NW1iRzkzVEdWMlpXd2dQaUF3TzF4dUlDQWdJQ0FnSUNCc1pYUWdaVzVrSUQwZ2RHaHBjeTV3YjNNZ0xTQXhPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJSFJvYVhNdWNHOXpJQzBnTVR0Y2JpQWdJQ0FnSUNBZ2JHVjBJR05vTzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvS0dOb0lEMGdkR2hwY3k1aWRXWm1aWEpiS3l0cFhTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hqYUNBOVBUMGdKem9uS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm1WNGRDQTlJSFJvYVhNdVluVm1abVZ5VzJrZ0t5QXhYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYTkZiWEIwZVNodVpYaDBLU0I4ZkNBb2FXNUdiRzkzSUNZbUlHWnNiM2RKYm1ScFkyRjBiM0pEYUdGeWN5NW9ZWE1vYm1WNGRDa3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYm1RZ1BTQnBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVhORmJYQjBlU2hqYUNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYm1WNGRDQTlJSFJvYVhNdVluVm1abVZ5VzJrZ0t5QXhYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyZ2dQVDA5SUNkY1hISW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1WlhoMElEMDlQU0FuWEZ4dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhU0FyUFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyZ2dQU0FuWEZ4dUp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFFnUFNCMGFHbHpMbUoxWm1abGNsdHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVrSUQwZ2FUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c1bGVIUWdQVDA5SUNjakp5QjhmQ0FvYVc1R2JHOTNJQ1ltSUdac2IzZEpibVJwWTJGMGIzSkRhR0Z5Y3k1b1lYTW9ibVY0ZENrcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJnZ1BUMDlJQ2RjWEc0bktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR056SUQwZ2RHaHBjeTVqYjI1MGFXNTFaVk5qWVd4aGNpaHBJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamN5QTlQVDBnTFRFcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FTQTlJRTFoZEdndWJXRjRLR2tzSUdOeklDMGdNaWs3SUM4dklIUnZJR0ZrZG1GdVkyVXNJR0oxZENCemRHbHNiQ0JoWTJOdmRXNTBJR1p2Y2lBbklDTW5YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsdVJteHZkeUFtSmlCbWJHOTNTVzVrYVdOaGRHOXlRMmhoY25NdWFHRnpLR05vS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWtJRDBnYVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9JV05vSUNZbUlDRjBhR2x6TG1GMFJXNWtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwVG1WNGRDZ25jR3hoYVc0dGMyTmhiR0Z5SnlrN1hHNGdJQ0FnSUNBZ0lIbHBaV3hrSUZORFFVeEJVanRjYmlBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNIVnphRlJ2U1c1a1pYZ29aVzVrSUNzZ01Td2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGJrWnNiM2NnUHlBblpteHZkeWNnT2lBblpHOWpKenRjYmlBZ0lDQjlYRzRnSUNBZ0tuQjFjMmhEYjNWdWRDaHVLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHVJRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUWdkR2hwY3k1aWRXWm1aWEl1YzNWaWMzUnlLSFJvYVhNdWNHOXpMQ0J1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNHOXpJQ3M5SUc0N1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdianRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnTUR0Y2JpQWdJQ0I5WEc0Z0lDQWdLbkIxYzJoVWIwbHVaR1Y0S0drc0lHRnNiRzkzUlcxd2RIa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjeUE5SUhSb2FYTXVZblZtWm1WeUxuTnNhV05sS0hSb2FYTXVjRzl6TENCcEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhscFpXeGtJSE03WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5CdmN5QXJQU0J6TG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCekxteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGhiR3h2ZDBWdGNIUjVLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FnSnljN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUgxY2JpQWdJQ0FxY0hWemFFbHVaR2xqWVhSdmNuTW9LU0I3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NWphR0Z5UVhRb01Da3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSnlFbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0tIbHBaV3hrS2lCMGFHbHpMbkIxYzJoVVlXY29LU2tnSzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9lV2xsYkdRcUlIUm9hWE11Y0hWemFGTndZV05sY3loMGNuVmxLU2tnSzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9lV2xsYkdRcUlIUm9hWE11Y0hWemFFbHVaR2xqWVhSdmNuTW9LU2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbkppYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZ29lV2xsYkdRcUlIUm9hWE11Y0hWemFGVnVkR2xzS0dselRtOTBRVzVqYUc5eVEyaGhjaWtwSUN0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLSGxwWld4a0tpQjBhR2x6TG5CMWMyaFRjR0ZqWlhNb2RISjFaU2twSUN0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLSGxwWld4a0tpQjBhR2x6TG5CMWMyaEpibVJwWTJGMGIzSnpLQ2twS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0p5MG5PaUF2THlCMGFHbHpJR2x6SUdGdUlHVnljbTl5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNjL0p6b2dMeThnZEdocGN5QnBjeUJoYmlCbGNuSnZjaUJ2ZFhSemFXUmxJR1pzYjNjZ1kyOXNiR1ZqZEdsdmJuTmNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKem9uT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYVc1R2JHOTNJRDBnZEdocGN5NW1iRzkzVEdWMlpXd2dQaUF3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05vTVNBOUlIUm9hWE11WTJoaGNrRjBLREVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMFZ0Y0hSNUtHTm9NU2tnZkh3Z0tHbHVSbXh2ZHlBbUppQm1iRzkzU1c1a2FXTmhkRzl5UTJoaGNuTXVhR0Z6S0dOb01Ta3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doYVc1R2JHOTNLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1cGJtUmxiblJPWlhoMElEMGdkR2hwY3k1cGJtUmxiblJXWVd4MVpTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11Wm14dmQwdGxlU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpteHZkMHRsZVNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0tDaDVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1EyOTFiblFvTVNrcElDdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDaDVhV1ZzWkNvZ2RHaHBjeTV3ZFhOb1UzQmhZMlZ6S0hSeWRXVXBLU0FyWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvZVdsbGJHUXFJSFJvYVhNdWNIVnphRWx1WkdsallYUnZjbk1vS1NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01EdGNiaUFnSUNCOVhHNGdJQ0FnS25CMWMyaFVZV2NvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtTm9ZWEpCZENneEtTQTlQVDBnSnp3bktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdhU0E5SUhSb2FYTXVjRzl6SUNzZ01qdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQmphQ0E5SUhSb2FYTXVZblZtWm1WeVcybGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0NGcGMwVnRjSFI1S0dOb0tTQW1KaUJqYUNBaFBUMGdKejRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOb0lEMGdkR2hwY3k1aWRXWm1aWEpiS3l0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d2RYTm9WRzlKYm1SbGVDaGphQ0E5UFQwZ0p6NG5JRDhnYVNBcklERWdPaUJwTENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVNBOUlIUm9hWE11Y0c5eklDc2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0JqYUNBOUlIUm9hWE11WW5WbVptVnlXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tHTm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUmhaME5vWVhKekxtaGhjeWhqYUNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05vSUQwZ2RHaHBjeTVpZFdabVpYSmJLeXRwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoamFDQTlQVDBnSnlVbklDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdobGVFUnBaMmwwY3k1b1lYTW9kR2hwY3k1aWRXWm1aWEpiYVNBcklERmRLU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm9aWGhFYVdkcGRITXVhR0Z6S0hSb2FYTXVZblZtWm1WeVcya2dLeUF5WFNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJnZ1BTQjBhR2x6TG1KMVptWmxjbHNvYVNBclBTQXpLVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Y0hWemFGUnZTVzVrWlhnb2FTd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUNwd2RYTm9UbVYzYkdsdVpTZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmdnUFNCMGFHbHpMbUoxWm1abGNsdDBhR2x6TG5CdmMxMDdYRzRnSUNBZ0lDQWdJR2xtSUNoamFDQTlQVDBnSjF4Y2JpY3BYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZVdsbGJHUXFJSFJvYVhNdWNIVnphRU52ZFc1MEtERXBPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hqYUNBOVBUMGdKMXhjY2ljZ0ppWWdkR2hwY3k1amFHRnlRWFFvTVNrZ1BUMDlJQ2RjWEc0bktWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5CMWMyaERiM1Z1ZENneUtUdGNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEQTdYRzRnSUNBZ2ZWeHVJQ0FnSUNwd2RYTm9VM0JoWTJWektHRnNiRzkzVkdGaWN5a2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJSFJvYVhNdWNHOXpJQzBnTVR0Y2JpQWdJQ0FnSUNBZ2JHVjBJR05vTzF4dUlDQWdJQ0FnSUNCa2J5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamFDQTlJSFJvYVhNdVluVm1abVZ5V3lzcmFWMDdYRzRnSUNBZ0lDQWdJSDBnZDJocGJHVWdLR05vSUQwOVBTQW5JQ2NnZkh3Z0tHRnNiRzkzVkdGaWN5QW1KaUJqYUNBOVBUMGdKMXhjZENjcEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JpQTlJR2tnTFNCMGFHbHpMbkJ2Y3p0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzRnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ0IwYUdsekxtSjFabVpsY2k1emRXSnpkSElvZEdocGN5NXdiM01zSUc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXdiM01nUFNCcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVPMXh1SUNBZ0lIMWNiaUFnSUNBcWNIVnphRlZ1ZEdsc0tIUmxjM1FwSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJR2tnUFNCMGFHbHpMbkJ2Y3p0Y2JpQWdJQ0FnSUNBZ2JHVjBJR05vSUQwZ2RHaHBjeTVpZFdabVpYSmJhVjA3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2doZEdWemRDaGphQ2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQmphQ0E5SUhSb2FYTXVZblZtWm1WeVd5c3JhVjA3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI1YVdWc1pDb2dkR2hwY3k1d2RYTm9WRzlKYm1SbGVDaHBMQ0JtWVd4elpTazdYRzRnSUNBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnZXlCTVpYaGxjaUI5TzF4dUlpd2dJaThxS2x4dUlDb2dWSEpoWTJ0eklHNWxkMnhwYm1WeklHUjFjbWx1WnlCd1lYSnphVzVuSUdsdUlHOXlaR1Z5SUhSdklIQnliM1pwWkdVZ1lXNGdaV1ptYVdOcFpXNTBJRUZRU1NCbWIzSmNiaUFxSUdSbGRHVnliV2x1YVc1bklIUm9aU0J2Ym1VdGFXNWtaWGhsWkNCZ2V5QnNhVzVsTENCamIyd2dmV0FnY0c5emFYUnBiMjRnWm05eUlHRnVlU0J2Wm1aelpYUmNiaUFxSUhkcGRHaHBiaUIwYUdVZ2FXNXdkWFF1WEc0Z0tpOWNibU5zWVhOeklFeHBibVZEYjNWdWRHVnlJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVzYVc1bFUzUmhjblJ6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJQzhxS2x4dUlDQWdJQ0FnSUNBZ0tpQlRhRzkxYkdRZ1ltVWdZMkZzYkdWa0lHbHVJR0Z6WTJWdVpHbHVaeUJ2Y21SbGNpNGdUM1JvWlhKM2FYTmxMQ0JqWVd4c1hHNGdJQ0FnSUNBZ0lDQXFJR0JzYVc1bFEyOTFiblJsY2k1c2FXNWxVM1JoY25SekxuTnZjblFvS1dBZ1ltVm1iM0psSUdOaGJHeHBibWNnWUd4cGJtVlFiM01vS1dBdVhHNGdJQ0FnSUNBZ0lDQXFMMXh1SUNBZ0lDQWdJQ0IwYUdsekxtRmtaRTVsZDB4cGJtVWdQU0FvYjJabWMyVjBLU0E5UGlCMGFHbHpMbXhwYm1WVGRHRnlkSE11Y0hWemFDaHZabVp6WlhRcE8xeHVJQ0FnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FnSUNvZ1VHVnlabTl5YlhNZ1lTQmlhVzVoY25rZ2MyVmhjbU5vSUdGdVpDQnlaWFIxY201eklIUm9aU0F4TFdsdVpHVjRaV1FnZXlCc2FXNWxMQ0JqYjJ3Z2ZWeHVJQ0FnSUNBZ0lDQWdLaUJ3YjNOcGRHbHZiaUJ2WmlCZ2IyWm1jMlYwWUM0Z1NXWWdZR3hwYm1VZ1BUMDlJREJnTENCZ1lXUmtUbVYzVEdsdVpXQWdhR0Z6SUc1bGRtVnlJR0psWlc1Y2JpQWdJQ0FnSUNBZ0lDb2dZMkZzYkdWa0lHOXlJR0J2Wm1aelpYUmdJR2x6SUdKbFptOXlaU0IwYUdVZ1ptbHljM1FnYTI1dmQyNGdibVYzYkdsdVpTNWNiaUFnSUNBZ0lDQWdJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXViR2x1WlZCdmN5QTlJQ2h2Wm1aelpYUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCc2IzY2dQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdocFoyZ2dQU0IwYUdsekxteHBibVZUZEdGeWRITXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJocGJHVWdLR3h2ZHlBOElHaHBaMmdwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0YVdRZ1BTQW9iRzkzSUNzZ2FHbG5hQ2tnUGo0Z01Uc2dMeThnVFdGMGFDNW1iRzl2Y2lnb2JHOTNJQ3NnYUdsbmFDa2dMeUF5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG14cGJtVlRkR0Z5ZEhOYmJXbGtYU0E4SUc5bVpuTmxkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHOTNJRDBnYldsa0lDc2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2hwWjJnZ1BTQnRhV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2hwY3k1c2FXNWxVM1JoY25SelcyeHZkMTBnUFQwOUlHOW1abk5sZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCc2FXNWxPaUJzYjNjZ0t5QXhMQ0JqYjJ3NklERWdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hzYjNjZ1BUMDlJREFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnYkdsdVpUb2dNQ3dnWTI5c09pQnZabVp6WlhRZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMElEMGdkR2hwY3k1c2FXNWxVM1JoY25SelcyeHZkeUF0SURGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnYkdsdVpUb2diRzkzTENCamIydzZJRzltWm5ObGRDQXRJSE4wWVhKMElDc2dNU0I5TzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JuMWNibHh1Wlhod2IzSjBJSHNnVEdsdVpVTnZkVzUwWlhJZ2ZUdGNiaUlzSUNKcGJYQnZjblFnZXlCMGIydGxibFI1Y0dVZ2ZTQm1jbTl0SUNjdUwyTnpkQzVxY3ljN1hHNXBiWEJ2Y25RZ2V5Qk1aWGhsY2lCOUlHWnliMjBnSnk0dmJHVjRaWEl1YW5Nbk8xeHVYRzVtZFc1amRHbHZiaUJwYm1Oc2RXUmxjMVJ2YTJWdUtHeHBjM1FzSUhSNWNHVXBJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hwYzNRdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ0lDQWdJR2xtSUNoc2FYTjBXMmxkTG5SNWNHVWdQVDA5SUhSNWNHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzU5WEc1bWRXNWpkR2x2YmlCbWFXNWtUbTl1Ulcxd2RIbEpibVJsZUNoc2FYTjBLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzYVhOMExteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvYkdsemRGdHBYUzUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6Y0dGalpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RqYjIxdFpXNTBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjI1bGQyeHBibVVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdMVEU3WEc1OVhHNW1kVzVqZEdsdmJpQnBjMFpzYjNkVWIydGxiaWgwYjJ0bGJpa2dlMXh1SUNBZ0lITjNhWFJqYUNBb2RHOXJaVzQvTG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnWTJGelpTQW5ZV3hwWVhNbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUNkelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNCallYTmxJQ2R6YVc1bmJHVXRjWFZ2ZEdWa0xYTmpZV3hoY2ljNlhHNGdJQ0FnSUNBZ0lHTmhjMlVnSjJSdmRXSnNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNBblpteHZkeTFqYjJ4c1pXTjBhVzl1SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYm4xY2JtWjFibU4wYVc5dUlHZGxkRkJ5WlhaUWNtOXdjeWh3WVhKbGJuUXBJSHRjYmlBZ0lDQnpkMmwwWTJnZ0tIQmhjbVZ1ZEM1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdKMlJ2WTNWdFpXNTBKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYSmxiblF1YzNSaGNuUTdYRzRnSUNBZ0lDQWdJR05oYzJVZ0oySnNiMk5yTFcxaGNDYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdsMElEMGdjR0Z5Wlc1MExtbDBaVzF6VzNCaGNtVnVkQzVwZEdWdGN5NXNaVzVuZEdnZ0xTQXhYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGRDNXpaWEFnUHo4Z2FYUXVjM1JoY25RN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMkZ6WlNBbllteHZZMnN0YzJWeEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ3WVhKbGJuUXVhWFJsYlhOYmNHRnlaVzUwTG1sMFpXMXpMbXhsYm1kMGFDQXRJREZkTG5OMFlYSjBPMXh1SUNBZ0lDQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnYm1WNGRDQnphRzkxYkdRZ2JtOTBJR2hoY0hCbGJpQXFMMXh1SUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUgxY2JuMWNiaThxS2lCT2IzUmxPaUJOWVhrZ2JXOWthV1o1SUdsdWNIVjBJR0Z5Y21GNUlDb3ZYRzVtZFc1amRHbHZiaUJuWlhSR2FYSnpkRXRsZVZOMFlYSjBVSEp2Y0hNb2NISmxkaWtnZTF4dUlDQWdJR2xtSUNod2NtVjJMbXhsYm1kMGFDQTlQVDBnTUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUd4bGRDQnBJRDBnY0hKbGRpNXNaVzVuZEdnN1hHNGdJQ0FnYkc5dmNEb2dkMmhwYkdVZ0tDMHRhU0ErUFNBd0tTQjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9jSEpsZGx0cFhTNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGtiMk10YzNSaGNuUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdFlYQXRkbUZzZFdVdGFXNWtKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNObGNTMXBkR1Z0TFdsdVpDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R1Wlhkc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF5QnNiMjl3TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSGRvYVd4bElDaHdjbVYyV3lzcmFWMC9MblI1Y0dVZ1BUMDlJQ2R6Y0dGalpTY3BJSHRjYmlBZ0lDQWdJQ0FnTHlvZ2JHOXZjQ0FxTDF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NISmxkaTV6Y0d4cFkyVW9hU3dnY0hKbGRpNXNaVzVuZEdncE8xeHVmVnh1Wm5WdVkzUnBiMjRnWm1sNFJteHZkMU5sY1VsMFpXMXpLR1pqS1NCN1hHNGdJQ0FnYVdZZ0tHWmpMbk4wWVhKMExuUjVjR1VnUFQwOUlDZG1iRzkzTFhObGNTMXpkR0Z5ZENjcElIdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JwZENCdlppQm1ZeTVwZEdWdGN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2wwTG5ObGNDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0ZwZEM1MllXeDFaU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNGcGJtTnNkV1JsYzFSdmEyVnVLR2wwTG5OMFlYSjBMQ0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2NwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lXbHVZMngxWkdWelZHOXJaVzRvYVhRdWMyVndMQ0FuYldGd0xYWmhiSFZsTFdsdVpDY3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDBMbXRsZVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFF1ZG1Gc2RXVWdQU0JwZEM1clpYazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZzWlhSbElHbDBMbXRsZVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5HYkc5M1ZHOXJaVzRvYVhRdWRtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGRDNTJZV3gxWlM1bGJtUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWNIVnphQzVoY0hCc2VTaHBkQzUyWVd4MVpTNWxibVFzSUdsMExuTmxjQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5aaGJIVmxMbVZ1WkNBOUlHbDBMbk5sY0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCQmNuSmhlUzV3Y205MGIzUjVjR1V1Y0hWemFDNWhjSEJzZVNocGRDNXpkR0Z5ZEN3Z2FYUXVjMlZ3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXeGxkR1VnYVhRdWMyVndPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVmVnh1THlvcVhHNGdLaUJCSUZsQlRVd2dZMjl1WTNKbGRHVWdjM2x1ZEdGNElIUnlaV1VnS0VOVFZDa2djR0Z5YzJWeVhHNGdLbHh1SUNvZ1lHQmdkSE5jYmlBcUlHTnZibk4wSUhOeVl6b2djM1J5YVc1bklEMGdMaTR1WEc0Z0tpQm1iM0lnS0dOdmJuTjBJSFJ2YTJWdUlHOW1JRzVsZHlCUVlYSnpaWElvS1M1d1lYSnpaU2h6Y21NcEtTQjdYRzRnS2lBZ0lDOHZJSFJ2YTJWdU9pQlViMnRsYmx4dUlDb2dmVnh1SUNvZ1lHQmdYRzRnS2x4dUlDb2dWRzhnZFhObElIUm9aU0J3WVhKelpYSWdkMmwwYUNCaElIVnpaWEl0Y0hKdmRtbGtaV1FnYkdWNFpYSTZYRzRnS2x4dUlDb2dZR0JnZEhOY2JpQXFJR1oxYm1OMGFXOXVLaUJ3WVhKelpTaHpiM1Z5WTJVNklITjBjbWx1Wnl3Z2JHVjRaWEk2SUV4bGVHVnlLU0I3WEc0Z0tpQWdJR052Ym5OMElIQmhjbk5sY2lBOUlHNWxkeUJRWVhKelpYSW9LVnh1SUNvZ0lDQm1iM0lnS0dOdmJuTjBJR3hsZUdWdFpTQnZaaUJzWlhobGNpNXNaWGdvYzI5MWNtTmxLU2xjYmlBcUlDQWdJQ0I1YVdWc1pDb2djR0Z5YzJWeUxtNWxlSFFvYkdWNFpXMWxLVnh1SUNvZ0lDQjVhV1ZzWkNvZ2NHRnljMlZ5TG1WdVpDZ3BYRzRnS2lCOVhHNGdLbHh1SUNvZ1kyOXVjM1FnYzNKak9pQnpkSEpwYm1jZ1BTQXVMaTVjYmlBcUlHTnZibk4wSUd4bGVHVnlJRDBnYm1WM0lFeGxlR1Z5S0NsY2JpQXFJR1p2Y2lBb1kyOXVjM1FnZEc5clpXNGdiMllnY0dGeWMyVW9jM0pqTENCc1pYaGxjaWtwSUh0Y2JpQXFJQ0FnTHk4Z2RHOXJaVzQ2SUZSdmEyVnVYRzRnS2lCOVhHNGdLaUJnWUdCY2JpQXFMMXh1WTJ4aGMzTWdVR0Z5YzJWeUlIdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2IyNU9aWGRNYVc1bElDMGdTV1lnWkdWbWFXNWxaQ3dnWTJGc2JHVmtJSE5sY0dGeVlYUmxiSGtnZDJsMGFDQjBhR1VnYzNSaGNuUWdjRzl6YVhScGIyNGdiMlpjYmlBZ0lDQWdLaUFnSUdWaFkyZ2dibVYzSUd4cGJtVWdLR2x1SUdCd1lYSnpaU2dwWUN3Z2FXNWpiSFZrYVc1bklIUm9aU0J6ZEdGeWRDQnZaaUJwYm5CMWRDa3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9iMjVPWlhkTWFXNWxLU0I3WEc0Z0lDQWdJQ0FnSUM4cUtpQkpaaUIwY25WbExDQnpjR0ZqWlNCaGJtUWdjMlZ4ZFdWdVkyVWdhVzVrYVdOaGRHOXljeUJqYjNWdWRDQmhjeUJwYm1SbGJuUmhkR2x2YmlBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1GMFRtVjNUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUM4cUtpQkpaaUIwY25WbExDQnVaWGgwSUhSdmEyVnVJR2x6SUdFZ2MyTmhiR0Z5SUhaaGJIVmxJQ292WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZWFJUWTJGc1lYSWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdMeW9xSUVOMWNuSmxiblFnYVc1a1pXNTBZWFJwYjI0Z2JHVjJaV3dnS2k5Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm1SbGJuUWdQU0F3TzF4dUlDQWdJQ0FnSUNBdktpb2dRM1Z5Y21WdWRDQnZabVp6WlhRZ2MybHVZMlVnZEdobElITjBZWEowSUc5bUlIQmhjbk5wYm1jZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1dlptWnpaWFFnUFNBd08xeHVJQ0FnSUNBZ0lDQXZLaW9nVDI0Z2RHaGxJSE5oYldVZ2JHbHVaU0IzYVhSb0lHRWdZbXh2WTJzZ2JXRndJR3RsZVNBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TG05dVMyVjVUR2x1WlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBdktpb2dWRzl3SUdsdVpHbGpZWFJsY3lCMGFHVWdibTlrWlNCMGFHRjBKM01nWTNWeWNtVnVkR3g1SUdKbGFXNW5JR0oxYVd4MElDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhZMnNnUFNCYlhUdGNiaUFnSUNBZ0lDQWdMeW9xSUZSb1pTQnpiM1Z5WTJVZ2IyWWdkR2hsSUdOMWNuSmxiblFnZEc5clpXNHNJSE5sZENCcGJpQndZWEp6WlNncElDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyOTFjbU5sSUQwZ0p5YzdYRzRnSUNBZ0lDQWdJQzhxS2lCVWFHVWdkSGx3WlNCdlppQjBhR1VnWTNWeWNtVnVkQ0IwYjJ0bGJpd2djMlYwSUdsdUlIQmhjbk5sS0NrZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1MGVYQmxJRDBnSnljN1hHNGdJQ0FnSUNBZ0lDOHZJRTExYzNRZ1ltVWdaR1ZtYVc1bFpDQmhablJsY2lCZ2JtVjRkQ2dwWUZ4dUlDQWdJQ0FnSUNCMGFHbHpMbXhsZUdWeUlEMGdibVYzSUV4bGVHVnlLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViMjVPWlhkTWFXNWxJRDBnYjI1T1pYZE1hVzVsTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJRWVhKelpTQmdjMjkxY21ObFlDQmhjeUJoSUZsQlRVd2djM1J5WldGdExseHVJQ0FnSUNBcUlFbG1JR0JwYm1OdmJYQnNaWFJsWUN3Z1lTQndZWEowSUc5bUlIUm9aU0JzWVhOMElHeHBibVVnYldGNUlHSmxJR3hsWm5RZ1lYTWdZU0JpZFdabVpYSWdabTl5SUhSb1pTQnVaWGgwSUdOaGJHd3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkZjbkp2Y25NZ1lYSmxJRzV2ZENCMGFISnZkMjRzSUdKMWRDQjVhV1ZzWkdWa0lHRnpJR0I3SUhSNWNHVTZJQ2RsY25KdmNpY3NJRzFsYzNOaFoyVWdmV0FnZEc5clpXNXpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdRU0JuWlc1bGNtRjBiM0lnYjJZZ2RHOXJaVzV6SUhKbGNISmxjMlZ1ZEdsdVp5QmxZV05vSUdScGNtVmpkR2wyWlN3Z1pHOWpkVzFsYm5Rc0lHRnVaQ0J2ZEdobGNpQnpkSEoxWTNSMWNtVXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ0tuQmhjbk5sS0hOdmRYSmpaU3dnYVc1amIyMXdiR1YwWlNBOUlHWmhiSE5sS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtOXVUbVYzVEdsdVpTQW1KaUIwYUdsekxtOW1abk5sZENBOVBUMGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1T1pYZE1hVzVsS0RBcE8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR3hsZUdWdFpTQnZaaUIwYUdsekxteGxlR1Z5TG14bGVDaHpiM1Z5WTJVc0lHbHVZMjl0Y0d4bGRHVXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVibVY0ZENoc1pYaGxiV1VwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV2x1WTI5dGNHeGxkR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTVsYm1Rb0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXUjJZVzVqWlNCMGFHVWdjR0Z5YzJWeUlHSjVJSFJvWlNCZ2MyOTFjbU5sWUNCdlppQnZibVVnYkdWNGFXTmhiQ0IwYjJ0bGJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNBcWJtVjRkQ2h6YjNWeVkyVXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpiM1Z5WTJVZ1BTQnpiM1Z5WTJVN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtRjBVMk5oYkdGeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbUYwVTJOaGJHRnlJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXpkR1Z3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOW1abk5sZENBclBTQnpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR052Ym5OMElIUjVjR1VnUFNCMGIydGxibFI1Y0dVb2MyOTFjbU5sS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WlhOellXZGxJRDBnWUU1dmRDQmhJRmxCVFV3Z2RHOXJaVzQ2SUNSN2MyOTFjbU5sZldBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2IzQW9leUIwZVhCbE9pQW5aWEp5YjNJbkxDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMQ0J0WlhOellXZGxMQ0J6YjNWeVkyVWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05bVpuTmxkQ0FyUFNCemIzVnlZMlV1YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0hSNWNHVWdQVDA5SUNkelkyRnNZWEluS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtRjBUbVYzVEdsdVpTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWhkRk5qWVd4aGNpQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuUjVjR1VnUFNBbmMyTmhiR0Z5Snp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXpkR1Z3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSFI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1aGRFNWxkMHhwYm1VZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1sdVpHVnVkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbTl1VG1WM1RHbHVaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNU9aWGRNYVc1bEtIUm9hWE11YjJabWMyVjBJQ3NnYzI5MWNtTmxMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTndZV05sSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVZWFJPWlhkTWFXNWxJQ1ltSUhOdmRYSmpaVnN3WFNBOVBUMGdKeUFuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5RZ0t6MGdjMjkxY21ObExteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5iV0Z3TFhaaGJIVmxMV2x1WkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzJWeExXbDBaVzB0YVc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WVhST1pYZE1hVzVsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBibVJsYm5RZ0t6MGdjMjkxY21ObExteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWkc5akxXMXZaR1VuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlpzYjNjdFpYSnliM0l0Wlc1a0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVZWFJPWlhkTWFXNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOW1abk5sZENBclBTQnpiM1Z5WTJVdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQzhxS2lCRFlXeHNJR0YwSUdWdVpDQnZaaUJwYm5CMWRDQjBieUJ3ZFhOb0lHOTFkQ0JoYm5rZ2NtVnRZV2x1YVc1bklHTnZibk4wY25WamRHbHZibk1nS2k5Y2JpQWdJQ0FxWlc1a0tDa2dlMXh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9kR2hwY3k1emRHRmpheTVzWlc1bmRHZ2dQaUF3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRDQnpiM1Z5WTJWVWIydGxiaWdwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzNRZ1BTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUIwYUdsekxuUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNWtaVzUwT2lCMGFHbHpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVG9nZEdocGN5NXpiM1Z5WTJWY2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBPMXh1SUNBZ0lIMWNiaUFnSUNBcWMzUmxjQ2dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZEc5d0lEMGdkR2hwY3k1d1pXVnJLREVwTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1MGVYQmxJRDA5UFNBblpHOWpMV1Z1WkNjZ0ppWWdLQ0YwYjNBZ2ZId2dkRzl3TG5SNWNHVWdJVDA5SUNka2IyTXRaVzVrSnlrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2gwYUdsekxuTjBZV05yTG14bGJtZDBhQ0ErSURBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZV05yTG5CMWMyZ29lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklDZGtiMk10Wlc1a0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE52ZFhKalpUb2dkR2hwY3k1emIzVnlZMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2doZEc5d0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG5OMGNtVmhiU2dwTzF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hSdmNDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGtiMk4xYldWdWRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIbHBaV3hrS2lCMGFHbHpMbVJ2WTNWdFpXNTBLSFJ2Y0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGhiR2xoY3ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpZMkZzWVhJbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jMmx1WjJ4bExYRjFiM1JsWkMxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOTFZbXhsTFhGMWIzUmxaQzF6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjVhV1ZzWkNvZ2RHaHBjeTV6WTJGc1lYSW9kRzl3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oySnNiMk5yTFhOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGxwWld4a0tpQjBhR2x6TG1Kc2IyTnJVMk5oYkdGeUtIUnZjQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaWJHOWpheTF0WVhBbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NWliRzlqYTAxaGNDaDBiM0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllteHZZMnN0YzJWeEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXVZbXh2WTJ0VFpYRjFaVzVqWlNoMGIzQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWm14dmR5MWpiMnhzWldOMGFXOXVKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlV2xsYkdRcUlIUm9hWE11Wm14dmQwTnZiR3hsWTNScGIyNG9kRzl3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyUnZZeTFsYm1Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCNWFXVnNaQ29nZEdocGN5NWtiMk4xYldWdWRFVnVaQ2gwYjNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoMElITm9iM1ZzWkNCdWIzUWdhR0Z3Y0dWdUlDb3ZYRzRnSUNBZ0lDQWdJSGxwWld4a0tpQjBhR2x6TG5CdmNDZ3BPMXh1SUNBZ0lIMWNiaUFnSUNCd1pXVnJLRzRwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoWTJ0YmRHaHBjeTV6ZEdGamF5NXNaVzVuZEdnZ0xTQnVYVHRjYmlBZ0lDQjlYRzRnSUNBZ0tuQnZjQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBiMnRsYmlBOUlHVnljbTl5SUQ4L0lIUm9hWE11YzNSaFkyc3VjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDOHFJR2x6ZEdGdVluVnNJR2xuYm05eVpTQnBaaUJ6YUc5MWJHUWdibTkwSUdoaGNIQmxiaUFxTDF4dUlDQWdJQ0FnSUNCcFppQW9JWFJ2YTJWdUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WlhOellXZGxJRDBnSjFSeWFXVmtJSFJ2SUhCdmNDQmhiaUJsYlhCMGVTQnpkR0ZqYXljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDQjdJSFI1Y0dVNklDZGxjbkp2Y2ljc0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNJSE52ZFhKalpUb2dKeWNzSUcxbGMzTmhaMlVnZlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5OMFlXTnJMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZVdsbGJHUWdkRzlyWlc0N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjBiM0FnUFNCMGFHbHpMbkJsWldzb01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kRzlyWlc0dWRIbHdaU0E5UFQwZ0oySnNiMk5yTFhOallXeGhjaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkNiRzlqYXlCelkyRnNZWEp6SUhWelpTQjBhR1ZwY2lCd1lYSmxiblFnY21GMGFHVnlJSFJvWVc0Z2FHVmhaR1Z5SUdsdVpHVnVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdUxtbHVaR1Z1ZENBOUlDZHBibVJsYm5RbklHbHVJSFJ2Y0NBL0lIUnZjQzVwYm1SbGJuUWdPaUF3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2RHOXJaVzR1ZEhsd1pTQTlQVDBnSjJac2IzY3RZMjlzYkdWamRHbHZiaWNnSmlZZ2RHOXdMblI1Y0dVZ1BUMDlJQ2RrYjJOMWJXVnVkQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpaMjV2Y21VZ1lXeHNJR2x1WkdWdWRDQm1iM0lnZEc5d0xXeGxkbVZzSUdac2IzY2dZMjlzYkdWamRHbHZibk5jYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJpNXBibVJsYm5RZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkbWJHOTNMV052Ykd4bFkzUnBiMjRuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdacGVFWnNiM2RUWlhGSmRHVnRjeWgwYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCemQybDBZMmdnS0hSdmNDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWkc5amRXMWxiblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiM0F1ZG1Gc2RXVWdQU0IwYjJ0bGJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllteHZZMnN0YzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHOXdMbkJ5YjNCekxuQjFjMmdvZEc5clpXNHBPeUF2THlCbGNuSnZjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGliRzlqYXkxdFlYQW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdsMElEMGdkRzl3TG1sMFpXMXpXM1J2Y0M1cGRHVnRjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMExuWmhiSFZsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIzQXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiWFN3Z2EyVjVPaUIwYjJ0bGJpd2djMlZ3T2lCYlhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNUxaWGxNYVc1bElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwZEM1elpYQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5aaGJIVmxJRDBnZEc5clpXNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLR2wwTENCN0lHdGxlVG9nZEc5clpXNHNJSE5sY0RvZ1cxMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJQ0ZwZEM1bGVIQnNhV05wZEV0bGVUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZbXh2WTJzdGMyVnhKem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGRDQTlJSFJ2Y0M1cGRHVnRjMXQwYjNBdWFYUmxiWE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGRDNTJZV3gxWlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmNDNXBkR1Z0Y3k1d2RYTm9LSHNnYzNSaGNuUTZJRnRkTENCMllXeDFaVG9nZEc5clpXNGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5aaGJIVmxJRDBnZEc5clpXNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZG1iRzkzTFdOdmJHeGxZM1JwYjI0bk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR2wwSUQwZ2RHOXdMbWwwWlcxelczUnZjQzVwZEdWdGN5NXNaVzVuZEdnZ0xTQXhYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZwZENCOGZDQnBkQzUyWVd4MVpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZjQzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblE2SUZ0ZExDQnJaWGs2SUhSdmEyVnVMQ0J6WlhBNklGdGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBkQzV6WlhBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNTJZV3gxWlNBOUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtHbDBMQ0I3SUd0bGVUb2dkRzlyWlc0c0lITmxjRG9nVzEwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUc1bGVIUWdjMmh2ZFd4a0lHNXZkQ0JvWVhCd1pXNGdLaTljYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tIUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dvZEc5d0xuUjVjR1VnUFQwOUlDZGtiMk4xYldWdWRDY2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjNBdWRIbHdaU0E5UFQwZ0oySnNiMk5yTFcxaGNDY2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjNBdWRIbHdaU0E5UFQwZ0oySnNiMk5yTFhObGNTY3BJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0hSdmEyVnVMblI1Y0dVZ1BUMDlJQ2RpYkc5amF5MXRZWEFuSUh4OElIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkaWJHOWpheTF6WlhFbktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeGhjM1FnUFNCMGIydGxiaTVwZEdWdGMxdDBiMnRsYmk1cGRHVnRjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR0Z6ZENBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FoYkdGemRDNXpaWEFnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJV3hoYzNRdWRtRnNkV1VnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR0Z6ZEM1emRHRnlkQzVzWlc1bmRHZ2dQaUF3SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pwYm1ST2IyNUZiWEIwZVVsdVpHVjRLR3hoYzNRdWMzUmhjblFwSUQwOVBTQXRNU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9kRzlyWlc0dWFXNWtaVzUwSUQwOVBTQXdJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVhOMExuTjBZWEowTG1WMlpYSjVLSE4wSUQwK0lITjBMblI1Y0dVZ0lUMDlJQ2RqYjIxdFpXNTBKeUI4ZkNCemRDNXBibVJsYm5RZ1BDQjBiMnRsYmk1cGJtUmxiblFwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHOXdMblI1Y0dVZ1BUMDlJQ2RrYjJOMWJXVnVkQ2NwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjNBdVpXNWtJRDBnYkdGemRDNXpkR0Z5ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEc5d0xtbDBaVzF6TG5CMWMyZ29leUJ6ZEdGeWREb2diR0Z6ZEM1emRHRnlkQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzlyWlc0dWFYUmxiWE11YzNCc2FXTmxLQzB4TENBeEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnS25OMGNtVmhiU2dwSUh0Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMGFHbHpMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlJwY21WamRHbDJaUzFzYVc1bEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNCN0lIUjVjR1U2SUNka2FYSmxZM1JwZG1VbkxDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMQ0J6YjNWeVkyVTZJSFJvYVhNdWMyOTFjbU5sSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllubDBaUzF2Y21SbGNpMXRZWEpySnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozTndZV05sSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyTnZiVzFsYm5Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ibVYzYkdsdVpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRZ2RHaHBjeTV6YjNWeVkyVlViMnRsYmp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNka2IyTXRiVzlrWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGtiMk10YzNSaGNuUW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaRzlqSUQwZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQW5aRzlqZFcxbGJuUW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFE2SUhSb2FYTXViMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWREb2dXMTFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5SNWNHVWdQVDA5SUNka2IyTXRjM1JoY25RbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrYjJNdWMzUmhjblF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlXTnJMbkIxYzJnb1pHOWpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdlV2xsYkdRZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dKMlZ5Y205eUp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRG9nZEdocGN5NXZabVp6WlhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WlhOellXZGxPaUJnVlc1bGVIQmxZM1JsWkNBa2UzUm9hWE11ZEhsd1pYMGdkRzlyWlc0Z2FXNGdXVUZOVENCemRISmxZVzFnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMjkxY21ObE9pQjBhR2x6TG5OdmRYSmpaVnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQXFaRzlqZFcxbGJuUW9aRzlqS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hrYjJNdWRtRnNkV1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2VXbGxiR1FxSUhSb2FYTXViR2x1WlVWdVpDaGtiMk1wTzF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hSb2FYTXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aRzlqTFhOMFlYSjBKem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaG1hVzVrVG05dVJXMXdkSGxKYm1SbGVDaGtiMk11YzNSaGNuUXBJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11YzNSbGNDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1J2WXk1emRHRnlkQzV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJGdVkyaHZjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkMFlXY25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzNCaFkyVW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXVnVkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdVpYZHNhVzVsSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2IyTXVjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZbllnUFNCMGFHbHpMbk4wWVhKMFFteHZZMnRXWVd4MVpTaGtiMk1wTzF4dUlDQWdJQ0FnSUNCcFppQW9ZbllwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlXTnJMbkIxYzJnb1luWXBPMXh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhscFpXeGtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQW5aWEp5YjNJbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiV1Z6YzJGblpUb2dZRlZ1Wlhod1pXTjBaV1FnSkh0MGFHbHpMblI1Y0dWOUlIUnZhMlZ1SUdsdUlGbEJUVXdnWkc5amRXMWxiblJnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVG9nZEdocGN5NXpiM1Z5WTJWY2JpQWdJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdLbk5qWVd4aGNpaHpZMkZzWVhJcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVkSGx3WlNBOVBUMGdKMjFoY0MxMllXeDFaUzFwYm1RbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WMklEMGdaMlYwVUhKbGRsQnliM0J6S0hSb2FYTXVjR1ZsYXlneUtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6ZEdGeWRDQTlJR2RsZEVacGNuTjBTMlY1VTNSaGNuUlFjbTl3Y3lod2NtVjJLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J6WlhBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MyTmhiR0Z5TG1WdVpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY0NBOUlITmpZV3hoY2k1bGJtUTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZ3TG5CMWMyZ29kR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZzWlhSbElITmpZV3hoY2k1bGJtUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVndJRDBnVzNSb2FYTXVjMjkxY21ObFZHOXJaVzVkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRndJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJQ2RpYkc5amF5MXRZWEFuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRG9nYzJOaGJHRnlMbTltWm5ObGRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RNklITmpZV3hoY2k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJYTTZJRnQ3SUhOMFlYSjBMQ0JyWlhrNklITmpZV3hoY2l3Z2MyVndJSDFkWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2Ymt0bGVVeHBibVVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamExdDBhR2x6TG5OMFlXTnJMbXhsYm1kMGFDQXRJREZkSUQwZ2JXRndPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxteHBibVZGYm1Rb2MyTmhiR0Z5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdLbUpzYjJOclUyTmhiR0Z5S0hOallXeGhjaWtnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hSb2FYTXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jM0JoWTJVbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZMjl0YldWdWRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R1Wlhkc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTJGc1lYSXVjSEp2Y0hNdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6WTJGc1lYSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5qWVd4aGNpNXpiM1Z5WTJVZ1BTQjBhR2x6TG5OdmRYSmpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCaWJHOWpheTF6WTJGc1lYSWdjMjkxY21ObElHbHVZMngxWkdWeklIUnlZV2xzYVc1bklHNWxkMnhwYm1WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbUYwVG1WM1RHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1cGJtUmxiblFnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtOXVUbVYzVEdsdVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdibXdnUFNCMGFHbHpMbk52ZFhKalpTNXBibVJsZUU5bUtDZGNYRzRuS1NBcklERTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2h1YkNBaFBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZiazVsZDB4cGJtVW9kR2hwY3k1dlptWnpaWFFnS3lCdWJDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViQ0E5SUhSb2FYTXVjMjkxY21ObExtbHVaR1Y0VDJZb0oxeGNiaWNzSUc1c0tTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnYm1WNGRDQnphRzkxYkdRZ2JtOTBJR2hoY0hCbGJpQXFMMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWFXVnNaQ29nZEdocGN5NXpkR1Z3S0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnS21Kc2IyTnJUV0Z3S0cxaGNDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkQ0E5SUcxaGNDNXBkR1Z0YzF0dFlYQXVhWFJsYlhNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQWdJQzh2SUdsMExuTmxjQ0JwY3lCMGNuVmxMV2x6YUNCcFppQndZV2x5SUdGc2NtVmhaSGtnYUdGeklHdGxlU0J2Y2lBNklITmxjR0Z5WVhSdmNseHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYm1WM2JHbHVaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZia3RsZVV4cGJtVWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhRdWRtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pXNWtJRDBnSjJWdVpDY2dhVzRnYVhRdWRtRnNkV1VnUHlCcGRDNTJZV3gxWlM1bGJtUWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4aGMzUWdQU0JCY25KaGVTNXBjMEZ5Y21GNUtHVnVaQ2tnUHlCbGJtUmJaVzVrTG14bGJtZDBhQ0F0SURGZElEb2dkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR0Z6ZEQ4dWRIbHdaU0E5UFQwZ0oyTnZiVzFsYm5RbktWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWtQeTV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBMbk5sY0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEM1elpYQXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBMbk4wWVhKMExuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOd1lXTmxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWxiblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHBkQzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBMbk5sY0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEM1elpYQXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtRjBTVzVrWlc1MFpXUkRiMjF0Wlc1MEtHbDBMbk4wWVhKMExDQnRZWEF1YVc1a1pXNTBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjSEpsZGlBOUlHMWhjQzVwZEdWdGMxdHRZWEF1YVhSbGJYTXViR1Z1WjNSb0lDMGdNbDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmxibVFnUFNCd2NtVjJQeTUyWVd4MVpUOHVaVzVrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tFRnljbUY1TG1selFYSnlZWGtvWlc1a0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVGeWNtRjVMbkJ5YjNSdmRIbHdaUzV3ZFhOb0xtRndjR3g1S0dWdVpDd2dhWFF1YzNSaGNuUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWdVpDNXdkWE5vS0hSb2FYTXVjMjkxY21ObFZHOXJaVzRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdiM0FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUXVjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sdVpHVnVkQ0ErUFNCdFlYQXVhVzVrWlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoZEUxaGNFbHVaR1Z1ZENBOUlDRjBhR2x6TG05dVMyVjVUR2x1WlNBbUppQjBhR2x6TG1sdVpHVnVkQ0E5UFQwZ2JXRndMbWx1WkdWdWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0YwVG1WNGRFbDBaVzBnUFNCaGRFMWhjRWx1WkdWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2hwZEM1elpYQWdmSHdnYVhRdVpYaHdiR2xqYVhSTFpYa3BJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTBlWEJsSUNFOVBTQW5jMlZ4TFdsMFpXMHRhVzVrSnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUVadmNpQmxiWEIwZVNCdWIyUmxjeXdnWVhOemFXZHVJRzVsZDJ4cGJtVXRjMlZ3WVhKaGRHVmtJRzV2ZENCcGJtUmxiblJsWkNCbGJYQjBlU0IwYjJ0bGJuTWdkRzhnWm05c2JHOTNhVzVuSUc1dlpHVmNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQnpkR0Z5ZENBOUlGdGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR0YwVG1WNGRFbDBaVzBnSmlZZ2FYUXVjMlZ3SUNZbUlDRnBkQzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNXNJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkQzV6WlhBdWJHVnVaM1JvT3lBcksya3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNRZ1BTQnBkQzV6WlhCYmFWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvYzNRdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ibVYzYkdsdVpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm13dWNIVnphQ2hwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM053WVdObEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjJOdmJXMWxiblFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6ZEM1cGJtUmxiblFnUGlCdFlYQXVhVzVrWlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWJDNXNaVzVuZEdnZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1YkM1c1pXNW5kR2dnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHViQzVzWlc1bmRHZ2dQajBnTWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RZ1BTQnBkQzV6WlhBdWMzQnNhV05sS0c1c1d6RmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWVc1amFHOXlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZDBZV2NuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVhST1pYaDBTWFJsYlNCOGZDQnBkQzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0M1cGRHVnRjeTV3ZFhOb0tIc2djM1JoY25RZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVMyVjVUR2x1WlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVhRdWMyVndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEM1elpYQXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5OMFlYSjBMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlY0Y0d4cFkybDBMV3RsZVMxcGJtUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2wwTG5ObGNDQW1KaUFoYVhRdVpYaHdiR2xqYVhSTFpYa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2wwTG5OMFlYSjBMbkIxYzJnb2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNWxlSEJzYVdOcGRFdGxlU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZWFJPWlhoMFNYUmxiU0I4ZkNCcGRDNTJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblFzSUdWNGNHeHBZMmwwUzJWNU9pQjBjblZsSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWW14dlkyc3RiV0Z3Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHVnVkRG9nZEdocGN5NXBibVJsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFJsYlhNNklGdDdJSE4wWVhKME9pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMHNJR1Y0Y0d4cFkybDBTMlY1T2lCMGNuVmxJSDFkWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHRZWEF0ZG1Gc2RXVXRhVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dsMExtVjRjR3hwWTJsMFMyVjVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXbDBMbk5sY0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGJtTnNkV1JsYzFSdmEyVnVLR2wwTG5OMFlYSjBMQ0FuYm1WM2JHbHVaU2NwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9hWFFzSUhzZ2EyVjVPaUJ1ZFd4c0xDQnpaWEE2SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjBZWEowSUQwZ1oyVjBSbWx5YzNSTFpYbFRkR0Z5ZEZCeWIzQnpLR2wwTG5OMFlYSjBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRmpheTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklDZGliRzlqYXkxdFlYQW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBPaUIwYUdsekxtOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZERvZ2RHaHBjeTVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdGN6b2dXM3NnYzNSaGNuUXNJR3RsZVRvZ2JuVnNiQ3dnYzJWd09pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMGdmVjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYUXVkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhBdWFYUmxiWE11Y0hWemFDaDdJSE4wWVhKME9pQmJYU3dnYTJWNU9pQnVkV3hzTENCelpYQTZJRnQwYUdsekxuTnZkWEpqWlZSdmEyVnVYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dsdVkyeDFaR1Z6Vkc5clpXNG9hWFF1YzJWd0xDQW5iV0Z3TFhaaGJIVmxMV2x1WkNjcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ0oySnNiMk5yTFcxaGNDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZERvZ2RHaHBjeTVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzF6T2lCYmV5QnpkR0Z5ZEN3Z2EyVjVPaUJ1ZFd4c0xDQnpaWEE2SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFNCOVhWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVhOR2JHOTNWRzlyWlc0b2FYUXVhMlY1S1NBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0ZwYm1Oc2RXUmxjMVJ2YTJWdUtHbDBMbk5sY0N3Z0oyNWxkMnhwYm1VbktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMElEMGdaMlYwUm1seWMzUkxaWGxUZEdGeWRGQnliM0J6S0dsMExuTjBZWEowS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCclpYa2dQU0JwZEM1clpYazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZ3SUQwZ2FYUXVjMlZ3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxjQzV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUVCMGN5MWxlSEJsWTNRdFpYSnliM0lnZEhsd1pTQm5kV0Z5WkNCcGN5QjNjbTl1WnlCb1pYSmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWc1pYUmxJR2wwTG10bGVUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCQWRITXRaWGh3WldOMExXVnljbTl5SUhSNWNHVWdaM1ZoY21RZ2FYTWdkM0p2Ym1jZ2FHVnlaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbGJHVjBaU0JwZEM1elpYQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ0oySnNiMk5yTFcxaGNDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZERvZ2RHaHBjeTV2Wm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZERvZ2RHaHBjeTVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzF6T2lCYmV5QnpkR0Z5ZEN3Z2EyVjVMQ0J6WlhBZ2ZWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0hOMFlYSjBMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJPYjNRZ1lXTjBkV0ZzYkhrZ1lYUWdibVY0ZENCcGRHVnRYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhRdWMyVndJRDBnYVhRdWMyVndMbU52Ym1OaGRDaHpkR0Z5ZEN3Z2RHaHBjeTV6YjNWeVkyVlViMnRsYmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpaWEF1Y0hWemFDaDBhR2x6TG5OdmRYSmpaVlJ2YTJWdUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hhWFF1YzJWd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVDJKcVpXTjBMbUZ6YzJsbmJpaHBkQ3dnZXlCclpYazZJRzUxYkd3c0lITmxjRG9nVzNSb2FYTXVjMjkxY21ObFZHOXJaVzVkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYUXVkbUZzZFdVZ2ZId2dZWFJPWlhoMFNYUmxiU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjQzVwZEdWdGN5NXdkWE5vS0hzZ2MzUmhjblFzSUd0bGVUb2diblZzYkN3Z2MyVndPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGJtTnNkV1JsYzFSdmEyVnVLR2wwTG5ObGNDd2dKMjFoY0MxMllXeDFaUzFwYm1RbktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoWTJzdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklDZGliRzlqYXkxdFlYQW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklIUm9hWE11YjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RNklIUm9hWE11YVc1a1pXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z0Y3pvZ1czc2djM1JoY25RNklGdGRMQ0JyWlhrNklHNTFiR3dzSUhObGNEb2dXM1JvYVhNdWMyOTFjbU5sVkc5clpXNWRJSDFkWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkQzV6WlhBdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaGJHbGhjeWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkemFXNW5iR1V0Y1hWdmRHVmtMWE5qWVd4aGNpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblpHOTFZbXhsTFhGMWIzUmxaQzF6WTJGc1lYSW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdaeklEMGdkR2hwY3k1bWJHOTNVMk5oYkdGeUtIUm9hWE11ZEhsd1pTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGhkRTVsZUhSSmRHVnRJSHg4SUdsMExuWmhiSFZsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYQXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBMQ0JyWlhrNklHWnpMQ0J6WlhBNklGdGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZia3RsZVV4cGJtVWdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBMbk5sY0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGamF5NXdkWE5vS0daektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9hWFFzSUhzZ2EyVjVPaUJtY3l3Z2MyVndPaUJiWFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1TFpYbE1hVzVsSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWW5ZZ1BTQjBhR2x6TG5OMFlYSjBRbXh2WTJ0V1lXeDFaU2h0WVhBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1luWXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaGRFMWhjRWx1WkdWdWRDQW1KaUJpZGk1MGVYQmxJQ0U5UFNBbllteHZZMnN0YzJWeEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGNDNXBkR1Z0Y3k1d2RYTm9LSHNnYzNSaGNuUWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZV05yTG5CMWMyZ29ZbllwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIbHBaV3hrS2lCMGFHbHpMbkJ2Y0NncE8xeHVJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTV6ZEdWd0tDazdYRzRnSUNBZ2ZWeHVJQ0FnSUNwaWJHOWphMU5sY1hWbGJtTmxLSE5sY1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCcGRDQTlJSE5sY1M1cGRHVnRjMXR6WlhFdWFYUmxiWE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R1Wlhkc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FYUXVkbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ0oyVnVaQ2NnYVc0Z2FYUXVkbUZzZFdVZ1B5QnBkQzUyWVd4MVpTNWxibVFnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeGhjM1FnUFNCQmNuSmhlUzVwYzBGeWNtRjVLR1Z1WkNrZ1B5QmxibVJiWlc1a0xteGxibWQwYUNBdElERmRJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYkdGemREOHVkSGx3WlNBOVBUMGdKMk52YlcxbGJuUW5LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVrUHk1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaWEV1YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFF1YzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkemNHRmpaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkamIyMXRaVzUwSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWFF1ZG1Gc2RXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGNTNXBkR1Z0Y3k1d2RYTm9LSHNnYzNSaGNuUTZJRnQwYUdsekxuTnZkWEpqWlZSdmEyVnVYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVlYUkpibVJsYm5SbFpFTnZiVzFsYm5Rb2FYUXVjM1JoY25Rc0lITmxjUzVwYm1SbGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndjbVYySUQwZ2MyVnhMbWwwWlcxelczTmxjUzVwZEdWdGN5NXNaVzVuZEdnZ0xTQXlYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaQ0E5SUhCeVpYWS9MblpoYkhWbFB5NWxibVE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2hsYm1RcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUVhKeVlYa3VjSEp2ZEc5MGVYQmxMbkIxYzJndVlYQndiSGtvWlc1a0xDQnBkQzV6ZEdGeWRDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1a0xuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnhMbWwwWlcxekxuQnZjQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpkR0Z5ZEM1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RoYm1Ob2IzSW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuZEdGbkp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhRdWRtRnNkV1VnZkh3Z2RHaHBjeTVwYm1SbGJuUWdQRDBnYzJWeExtbHVaR1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYUXVjM1JoY25RdWNIVnphQ2gwYUdsekxuTnZkWEpqWlZSdmEyVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R6WlhFdGFYUmxiUzFwYm1Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHVaR1Z1ZENBaFBUMGdjMlZ4TG1sdVpHVnVkQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHbDBMblpoYkhWbElIeDhJR2x1WTJ4MVpHVnpWRzlyWlc0b2FYUXVjM1JoY25Rc0lDZHpaWEV0YVhSbGJTMXBibVFuS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZ4TG1sMFpXMXpMbkIxYzJnb2V5QnpkR0Z5ZERvZ1czUm9hWE11YzI5MWNtTmxWRzlyWlc1ZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhWFF1YzNSaGNuUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFXNWtaVzUwSUQ0Z2MyVnhMbWx1WkdWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWW5ZZ1BTQjBhR2x6TG5OMFlYSjBRbXh2WTJ0V1lXeDFaU2h6WlhFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHSjJLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LR0oyS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZVdsbGJHUXFJSFJvYVhNdWNHOXdLQ2s3WEc0Z0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuTjBaWEFvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdLbVpzYjNkRGIyeHNaV04wYVc5dUtHWmpLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2wwSUQwZ1ptTXVhWFJsYlhOYlptTXVhWFJsYlhNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMblI1Y0dVZ1BUMDlJQ2RtYkc5M0xXVnljbTl5TFdWdVpDY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0IwYjNBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYnlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHOXdJRDBnZEdocGN5NXdaV1ZyS0RFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNCM2FHbHNaU0FvZEc5d0lDWW1JSFJ2Y0M1MGVYQmxJRDA5UFNBblpteHZkeTFqYjJ4c1pXTjBhVzl1SnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9abU11Wlc1a0xteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaDBhR2x6TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZGpiMjF0WVNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWlhod2JHbGphWFF0YTJWNUxXbHVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doYVhRZ2ZId2dhWFF1YzJWd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptTXVhWFJsYlhNdWNIVnphQ2g3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuTjBZWEowTG5CMWMyZ29kR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHRZWEF0ZG1Gc2RXVXRhVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGcGRDQjhmQ0JwZEM1MllXeDFaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pqTG1sMFpXMXpMbkIxYzJnb2V5QnpkR0Z5ZERvZ1cxMHNJR3RsZVRvZ2JuVnNiQ3dnYzJWd09pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBMbk5sY0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuTmxjQzV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLR2wwTENCN0lHdGxlVG9nYm5Wc2JDd2djMlZ3T2lCYmRHaHBjeTV6YjNWeVkyVlViMnRsYmwwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpjR0ZqWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXVnVkQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ibVYzYkdsdVpTYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbllXNWphRzl5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2QwWVdjbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXbDBJSHg4SUdsMExuWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1NdWFYUmxiWE11Y0hWemFDaDdJSE4wWVhKME9pQmJkR2hwY3k1emIzVnlZMlZVYjJ0bGJsMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHbDBMbk5sY0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMExuTmxjQzV3ZFhOb0tIUm9hWE11YzI5MWNtTmxWRzlyWlc0cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRDNXpkR0Z5ZEM1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ZV3hwWVhNbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOallXeGhjaWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5jMmx1WjJ4bExYRjFiM1JsWkMxelkyRnNZWEluT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlJ2ZFdKc1pTMXhkVzkwWldRdGMyTmhiR0Z5SnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm1jeUE5SUhSb2FYTXVabXh2ZDFOallXeGhjaWgwYUdsekxuUjVjR1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdsMElIeDhJR2wwTG5aaGJIVmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabU11YVhSbGJYTXVjSFZ6YUNoN0lITjBZWEowT2lCYlhTd2dhMlY1T2lCbWN5d2djMlZ3T2lCYlhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYUXVjMlZ3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0ZqYXk1d2RYTm9LR1p6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVDJKcVpXTjBMbUZ6YzJsbmJpaHBkQ3dnZXlCclpYazZJR1p6TENCelpYQTZJRnRkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyWnNiM2N0YldGd0xXVnVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5abXh2ZHkxelpYRXRaVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabU11Wlc1a0xuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKMklEMGdkR2hwY3k1emRHRnlkRUpzYjJOclZtRnNkV1VvWm1NcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUdWc2MyVWdjMmh2ZFd4a0lHNXZkQ0JvWVhCd1pXNGdLaTljYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hpZGlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVdOckxuQjFjMmdvWW5ZcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11Y0c5d0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlV2xsYkdRcUlIUm9hWE11YzNSbGNDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjR0Z5Wlc1MElEMGdkR2hwY3k1d1pXVnJLRElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hCaGNtVnVkQzUwZVhCbElEMDlQU0FuWW14dlkyc3RiV0Z3SnlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDZ29kR2hwY3k1MGVYQmxJRDA5UFNBbmJXRndMWFpoYkhWbExXbHVaQ2NnSmlZZ2NHRnlaVzUwTG1sdVpHVnVkQ0E5UFQwZ1ptTXVhVzVrWlc1MEtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2RHaHBjeTUwZVhCbElEMDlQU0FuYm1WM2JHbHVaU2NnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNGd1lYSmxiblF1YVhSbGJYTmJjR0Z5Wlc1MExtbDBaVzF6TG14bGJtZDBhQ0F0SURGZExuTmxjQ2twS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VXbGxiR1FxSUhSb2FYTXVjM1JsY0NncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9kR2hwY3k1MGVYQmxJRDA5UFNBbmJXRndMWFpoYkhWbExXbHVaQ2NnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lYSmxiblF1ZEhsd1pTQWhQVDBnSjJac2IzY3RZMjlzYkdWamRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WMklEMGdaMlYwVUhKbGRsQnliM0J6S0hCaGNtVnVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25RZ1BTQm5aWFJHYVhKemRFdGxlVk4wWVhKMFVISnZjSE1vY0hKbGRpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabWw0Um14dmQxTmxjVWwwWlcxektHWmpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEFnUFNCbVl5NWxibVF1YzNCc2FXTmxLREVzSUdaakxtVnVaQzVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sY0M1d2RYTm9LSFJvYVhNdWMyOTFjbU5sVkc5clpXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMWhjQ0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ0oySnNiMk5yTFcxaGNDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRG9nWm1NdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RNklHWmpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJYTTZJRnQ3SUhOMFlYSjBMQ0JyWlhrNklHWmpMQ0J6WlhBZ2ZWMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNUxaWGxNYVc1bElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVdOclczUm9hWE11YzNSaFkyc3ViR1Z1WjNSb0lDMGdNVjBnUFNCdFlYQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVhV1ZzWkNvZ2RHaHBjeTVzYVc1bFJXNWtLR1pqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQm1iRzkzVTJOaGJHRnlLSFI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXViMjVPWlhkTWFXNWxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYm13Z1BTQjBhR2x6TG5OdmRYSmpaUzVwYm1SbGVFOW1LQ2RjWEc0bktTQXJJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjNhR2xzWlNBb2Jtd2dJVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVRtVjNUR2x1WlNoMGFHbHpMbTltWm5ObGRDQXJJRzVzS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdWJDQTlJSFJvYVhNdWMyOTFjbU5sTG1sdVpHVjRUMllvSjF4Y2JpY3NJRzVzS1NBcklERTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFE2SUhSb2FYTXViMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1a1pXNTBPaUIwYUdsekxtbHVaR1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE52ZFhKalpUb2dkR2hwY3k1emIzVnlZMlZjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdjM1JoY25SQ2JHOWphMVpoYkhWbEtIQmhjbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWVd4cFlYTW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYzJOaGJHRnlKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNOcGJtZHNaUzF4ZFc5MFpXUXRjMk5oYkdGeUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMlJ2ZFdKc1pTMXhkVzkwWldRdGMyTmhiR0Z5SnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NW1iRzkzVTJOaGJHRnlLSFJvYVhNdWRIbHdaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkaWJHOWpheTF6WTJGc1lYSXRhR1ZoWkdWeUp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQW5ZbXh2WTJzdGMyTmhiR0Z5Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWME9pQjBhR2x6TG05bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXNWtaVzUwT2lCMGFHbHpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKdmNITTZJRnQwYUdsekxuTnZkWEpqWlZSdmEyVnVYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyOTFjbU5sT2lBbkoxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RtYkc5M0xXMWhjQzF6ZEdGeWRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RtYkc5M0xYTmxjUzF6ZEdGeWRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dKMlpzYjNjdFkyOXNiR1ZqZEdsdmJpY3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRG9nZEdocGN5NXZabVp6WlhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWdWREb2dkR2hwY3k1cGJtUmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowT2lCMGFHbHpMbk52ZFhKalpWUnZhMlZ1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z0Y3pvZ1cxMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWdVpEb2dXMTFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmMyVnhMV2wwWlcwdGFXNWtKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWW14dlkyc3RjMlZ4Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWME9pQjBhR2x6TG05bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXNWtaVzUwT2lCMGFHbHpMbWx1WkdWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJYTTZJRnQ3SUhOMFlYSjBPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5aWGh3YkdsamFYUXRhMlY1TFdsdVpDYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0hKbGRpQTlJR2RsZEZCeVpYWlFjbTl3Y3lod1lYSmxiblFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMElEMGdaMlYwUm1seWMzUkxaWGxUZEdGeWRGQnliM0J6S0hCeVpYWXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMExuQjFjMmdvZEdocGN5NXpiM1Z5WTJWVWIydGxiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nSjJKc2IyTnJMVzFoY0Njc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGREb2dkR2hwY3k1dlptWnpaWFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Z1ZERvZ2RHaHBjeTVwYm1SbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMFpXMXpPaUJiZXlCemRHRnlkQ3dnWlhod2JHbGphWFJMWlhrNklIUnlkV1VnZlYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJXRndMWFpoYkhWbExXbHVaQ2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1UzJWNVRHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NISmxkaUE5SUdkbGRGQnlaWFpRY205d2N5aHdZWEpsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnWjJWMFJtbHljM1JMWlhsVGRHRnlkRkJ5YjNCektIQnlaWFlwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUNkaWJHOWpheTF0WVhBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUTZJSFJvYVhNdWIyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsYm5RNklIUm9hWE11YVc1a1pXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRHVnRjem9nVzNzZ2MzUmhjblFzSUd0bGVUb2diblZzYkN3Z2MyVndPaUJiZEdocGN5NXpiM1Z5WTJWVWIydGxibDBnZlYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNiaUFnSUNCaGRFbHVaR1Z1ZEdWa1EyOXRiV1Z1ZENoemRHRnlkQ3dnYVc1a1pXNTBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5SNWNHVWdJVDA5SUNkamIyMXRaVzUwSnlsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFXNWtaVzUwSUR3OUlHbHVaR1Z1ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOMFlYSjBMbVYyWlhKNUtITjBJRDArSUhOMExuUjVjR1VnUFQwOUlDZHVaWGRzYVc1bEp5QjhmQ0J6ZEM1MGVYQmxJRDA5UFNBbmMzQmhZMlVuS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdLbVJ2WTNWdFpXNTBSVzVrS0dSdlkwVnVaQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1MGVYQmxJQ0U5UFNBblpHOWpMVzF2WkdVbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aRzlqUlc1a0xtVnVaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrYjJORmJtUXVaVzVrTG5CMWMyZ29kR2hwY3k1emIzVnlZMlZVYjJ0bGJpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaRzlqUlc1a0xtVnVaQ0E5SUZ0MGFHbHpMbk52ZFhKalpWUnZhMlZ1WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMblI1Y0dVZ1BUMDlJQ2R1Wlhkc2FXNWxKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2IzQW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQXFiR2x1WlVWdVpDaDBiMnRsYmlrZ2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWTI5dGJXRW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWkc5akxYTjBZWEowSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyUnZZeTFsYm1Rbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5abXh2ZHkxelpYRXRaVzVrSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyWnNiM2N0YldGd0xXVnVaQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkdFlYQXRkbUZzZFdVdGFXNWtKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1d2IzQW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YVdWc1pDb2dkR2hwY3k1emRHVndLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2R1Wlhkc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVTMlY1VEdsdVpTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1ptRnNiSFJvY205MVoyaGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKM053WVdObEp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMk52YlcxbGJuUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QmhiR3dnYjNSb1pYSWdkbUZzZFdWeklHRnlaU0JsY25KdmNuTmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEc5clpXNHVaVzVrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiMnRsYmk1bGJtUXVjSFZ6YUNoMGFHbHpMbk52ZFhKalpWUnZhMlZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVMbVZ1WkNBOUlGdDBhR2x6TG5OdmRYSmpaVlJ2YTJWdVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTBlWEJsSUQwOVBTQW5ibVYzYkdsdVpTY3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhscFpXeGtLaUIwYUdsekxuQnZjQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVYRzVsZUhCdmNuUWdleUJRWVhKelpYSWdmVHRjYmlJc0lDSnBiWEJ2Y25RZ2V5QkRiMjF3YjNObGNpQjlJR1p5YjIwZ0p5NHZZMjl0Y0c5elpTOWpiMjF3YjNObGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCRWIyTjFiV1Z1ZENCOUlHWnliMjBnSnk0dlpHOWpMMFJ2WTNWdFpXNTBMbXB6Snp0Y2JtbHRjRzl5ZENCN0lIQnlaWFIwYVdaNVJYSnliM0lzSUZsQlRVeFFZWEp6WlVWeWNtOXlJSDBnWm5KdmJTQW5MaTlsY25KdmNuTXVhbk1uTzF4dWFXMXdiM0owSUhzZ2QyRnliaUI5SUdaeWIyMGdKeTR2Ykc5bkxtcHpKenRjYm1sdGNHOXlkQ0I3SUdselJHOWpkVzFsYm5RZ2ZTQm1jbTl0SUNjdUwyNXZaR1Z6TDJsa1pXNTBhWFI1TG1wekp6dGNibWx0Y0c5eWRDQjdJRXhwYm1WRGIzVnVkR1Z5SUgwZ1puSnZiU0FuTGk5d1lYSnpaUzlzYVc1bExXTnZkVzUwWlhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnVUdGeWMyVnlJSDBnWm5KdmJTQW5MaTl3WVhKelpTOXdZWEp6WlhJdWFuTW5PMXh1WEc1bWRXNWpkR2x2YmlCd1lYSnpaVTl3ZEdsdmJuTW9iM0IwYVc5dWN5a2dlMXh1SUNBZ0lHTnZibk4wSUhCeVpYUjBlVVZ5Y205eWN5QTlJRzl3ZEdsdmJuTXVjSEpsZEhSNVJYSnliM0p6SUNFOVBTQm1ZV3h6WlR0Y2JpQWdJQ0JqYjI1emRDQnNhVzVsUTI5MWJuUmxjaUE5SUc5d2RHbHZibk11YkdsdVpVTnZkVzUwWlhJZ2ZId2dLSEJ5WlhSMGVVVnljbTl5Y3lBbUppQnVaWGNnVEdsdVpVTnZkVzUwWlhJb0tTa2dmSHdnYm5Wc2JEdGNiaUFnSUNCeVpYUjFjbTRnZXlCc2FXNWxRMjkxYm5SbGNpd2djSEpsZEhSNVJYSnliM0p6SUgwN1hHNTlYRzR2S2lwY2JpQXFJRkJoY25ObElIUm9aU0JwYm5CMWRDQmhjeUJoSUhOMGNtVmhiU0J2WmlCWlFVMU1JR1J2WTNWdFpXNTBjeTVjYmlBcVhHNGdLaUJFYjJOMWJXVnVkSE1nYzJodmRXeGtJR0psSUhObGNHRnlZWFJsWkNCbWNtOXRJR1ZoWTJnZ2IzUm9aWElnWW5rZ1lDNHVMbUFnYjNJZ1lDMHRMV0FnYldGeWEyVnlJR3hwYm1WekxseHVJQ3BjYmlBcUlFQnlaWFIxY201eklFbG1JR0Z1SUdWdGNIUjVJR0JrYjJOellDQmhjbkpoZVNCcGN5QnlaWFIxY201bFpDd2dhWFFnZDJsc2JDQmlaU0J2WmlCMGVYQmxYRzRnS2lBZ0lFVnRjSFI1VTNSeVpXRnRJR0Z1WkNCamIyNTBZV2x1SUdGa1pHbDBhVzl1WVd3Z2MzUnlaV0Z0SUdsdVptOXliV0YwYVc5dUxpQkpibHh1SUNvZ0lDQlVlWEJsVTJOeWFYQjBMQ0I1YjNVZ2MyaHZkV3hrSUhWelpTQmdKMlZ0Y0hSNUp5QnBiaUJrYjJOellDQmhjeUJoSUhSNWNHVWdaM1ZoY21RZ1ptOXlJR2wwTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJ3WVhKelpVRnNiRVJ2WTNWdFpXNTBjeWh6YjNWeVkyVXNJRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkdsdVpVTnZkVzUwWlhJc0lIQnlaWFIwZVVWeWNtOXljeUI5SUQwZ2NHRnljMlZQY0hScGIyNXpLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHTnZibk4wSUhCaGNuTmxjaUE5SUc1bGR5QlFZWEp6WlhJb2JHbHVaVU52ZFc1MFpYSS9MbUZrWkU1bGQweHBibVVwTzF4dUlDQWdJR052Ym5OMElHTnZiWEJ2YzJWeUlEMGdibVYzSUVOdmJYQnZjMlZ5S0c5d2RHbHZibk1wTzF4dUlDQWdJR052Ym5OMElHUnZZM01nUFNCQmNuSmhlUzVtY205dEtHTnZiWEJ2YzJWeUxtTnZiWEJ2YzJVb2NHRnljMlZ5TG5CaGNuTmxLSE52ZFhKalpTa3BLVHRjYmlBZ0lDQnBaaUFvY0hKbGRIUjVSWEp5YjNKeklDWW1JR3hwYm1WRGIzVnVkR1Z5S1Z4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHUnZZeUJ2WmlCa2IyTnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtiMk11WlhKeWIzSnpMbVp2Y2tWaFkyZ29jSEpsZEhScFpubEZjbkp2Y2loemIzVnlZMlVzSUd4cGJtVkRiM1Z1ZEdWeUtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyTXVkMkZ5Ym1sdVozTXVabTl5UldGamFDaHdjbVYwZEdsbWVVVnljbTl5S0hOdmRYSmpaU3dnYkdsdVpVTnZkVzUwWlhJcEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lHbG1JQ2hrYjJOekxteGxibWQwYUNBK0lEQXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmtiMk56TzF4dUlDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdVlYTnphV2R1S0Z0ZExDQjdJR1Z0Y0hSNU9pQjBjblZsSUgwc0lHTnZiWEJ2YzJWeUxuTjBjbVZoYlVsdVptOG9LU2s3WEc1OVhHNHZLaW9nVUdGeWMyVWdZVzRnYVc1d2RYUWdjM1J5YVc1bklHbHVkRzhnWVNCemFXNW5iR1VnV1VGTlRDNUViMk4xYldWdWRDQXFMMXh1Wm5WdVkzUnBiMjRnY0dGeWMyVkViMk4xYldWdWRDaHpiM1Z5WTJVc0lHOXdkR2x2Ym5NZ1BTQjdmU2tnZTF4dUlDQWdJR052Ym5OMElIc2diR2x1WlVOdmRXNTBaWElzSUhCeVpYUjBlVVZ5Y205eWN5QjlJRDBnY0dGeWMyVlBjSFJwYjI1ektHOXdkR2x2Ym5NcE8xeHVJQ0FnSUdOdmJuTjBJSEJoY25ObGNpQTlJRzVsZHlCUVlYSnpaWElvYkdsdVpVTnZkVzUwWlhJL0xtRmtaRTVsZDB4cGJtVXBPMXh1SUNBZ0lHTnZibk4wSUdOdmJYQnZjMlZ5SUQwZ2JtVjNJRU52YlhCdmMyVnlLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDOHZJR0JrYjJOZ0lHbHpJR0ZzZDJGNWN5QnpaWFFnWW5rZ1kyOXRjRzl6WlM1bGJtUW9kSEoxWlNrZ1lYUWdkR2hsSUhabGNua2diR0YwWlhOMFhHNGdJQ0FnYkdWMElHUnZZeUE5SUc1MWJHdzdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmZaRzlqSUc5bUlHTnZiWEJ2YzJWeUxtTnZiWEJ2YzJVb2NHRnljMlZ5TG5CaGNuTmxLSE52ZFhKalpTa3NJSFJ5ZFdVc0lITnZkWEpqWlM1c1pXNW5kR2dwS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWkc5aktWeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5aklEMGdYMlJ2WXp0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1pHOWpMbTl3ZEdsdmJuTXViRzluVEdWMlpXd2dJVDA5SUNkemFXeGxiblFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjJNdVpYSnliM0p6TG5CMWMyZ29ibVYzSUZsQlRVeFFZWEp6WlVWeWNtOXlLRjlrYjJNdWNtRnVaMlV1YzJ4cFkyVW9NQ3dnTWlrc0lDZE5WVXhVU1ZCTVJWOUVUME5USnl3Z0oxTnZkWEpqWlNCamIyNTBZV2x1Y3lCdGRXeDBhWEJzWlNCa2IyTjFiV1Z1ZEhNN0lIQnNaV0Z6WlNCMWMyVWdXVUZOVEM1d1lYSnpaVUZzYkVSdlkzVnRaVzUwY3lncEp5a3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hCeVpYUjBlVVZ5Y205eWN5QW1KaUJzYVc1bFEyOTFiblJsY2lrZ2UxeHVJQ0FnSUNBZ0lDQmtiMk11WlhKeWIzSnpMbVp2Y2tWaFkyZ29jSEpsZEhScFpubEZjbkp2Y2loemIzVnlZMlVzSUd4cGJtVkRiM1Z1ZEdWeUtTazdYRzRnSUNBZ0lDQWdJR1J2WXk1M1lYSnVhVzVuY3k1bWIzSkZZV05vS0hCeVpYUjBhV1o1UlhKeWIzSW9jMjkxY21ObExDQnNhVzVsUTI5MWJuUmxjaWtwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1pHOWpPMXh1ZlZ4dVpuVnVZM1JwYjI0Z2NHRnljMlVvYzNKakxDQnlaWFpwZG1WeUxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ2JHVjBJRjl5WlhacGRtVnlJRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnY21WMmFYWmxjaUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0JmY21WMmFYWmxjaUE5SUhKbGRtbDJaWEk3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnYVdZZ0tHOXdkR2x2Ym5NZ1BUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCeVpYWnBkbVZ5SUNZbUlIUjVjR1Z2WmlCeVpYWnBkbVZ5SUQwOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpJRDBnY21WMmFYWmxjanRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnWkc5aklEMGdjR0Z5YzJWRWIyTjFiV1Z1ZENoemNtTXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lHbG1JQ2doWkc5aktWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQmtiMk11ZDJGeWJtbHVaM011Wm05eVJXRmphQ2gzWVhKdWFXNW5JRDArSUhkaGNtNG9aRzlqTG05d2RHbHZibk11Ykc5blRHVjJaV3dzSUhkaGNtNXBibWNwS1R0Y2JpQWdJQ0JwWmlBb1pHOWpMbVZ5Y205eWN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGtiMk11YjNCMGFXOXVjeTVzYjJkTVpYWmxiQ0FoUFQwZ0ozTnBiR1Z1ZENjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QmtiMk11WlhKeWIzSnpXekJkTzF4dUlDQWdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyTXVaWEp5YjNKeklEMGdXMTA3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCa2IyTXVkRzlLVXloUFltcGxZM1F1WVhOemFXZHVLSHNnY21WMmFYWmxjam9nWDNKbGRtbDJaWElnZlN3Z2IzQjBhVzl1Y3lrcE8xeHVmVnh1Wm5WdVkzUnBiMjRnYzNSeWFXNW5hV1o1S0haaGJIVmxMQ0J5WlhCc1lXTmxjaXdnYjNCMGFXOXVjeWtnZTF4dUlDQWdJR3hsZENCZmNtVndiR0ZqWlhJZ1BTQnVkV3hzTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnY21Wd2JHRmpaWElnUFQwOUlDZG1kVzVqZEdsdmJpY2dmSHdnUVhKeVlYa3VhWE5CY25KaGVTaHlaWEJzWVdObGNpa3BJSHRjYmlBZ0lDQWdJQ0FnWDNKbGNHeGhZMlZ5SUQwZ2NtVndiR0ZqWlhJN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLRzl3ZEdsdmJuTWdQVDA5SUhWdVpHVm1hVzVsWkNBbUppQnlaWEJzWVdObGNpa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpJRDBnY21Wd2JHRmpaWEk3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdiM0IwYVc5dWN5QTlQVDBnSjNOMGNtbHVaeWNwWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk1nUFNCdmNIUnBiMjV6TG14bGJtZDBhRHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRzl3ZEdsdmJuTWdQVDA5SUNkdWRXMWlaWEluS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdsdVpHVnVkQ0E5SUUxaGRHZ3VjbTkxYm1Rb2IzQjBhVzl1Y3lrN1hHNGdJQ0FnSUNBZ0lHOXdkR2x2Ym5NZ1BTQnBibVJsYm5RZ1BDQXhJRDhnZFc1a1pXWnBibVZrSURvZ2FXNWtaVzUwSUQ0Z09DQS9JSHNnYVc1a1pXNTBPaUE0SUgwZ09pQjdJR2x1WkdWdWRDQjlPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kbUZzZFdVZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUd0bFpYQlZibVJsWm1sdVpXUWdmU0E5SUc5d2RHbHZibk1nUHo4Z2NtVndiR0ZqWlhJZ1B6OGdlMzA3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hhMlZsY0ZWdVpHVm1hVzVsWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjMFJ2WTNWdFpXNTBLSFpoYkhWbEtTQW1KaUFoWDNKbGNHeGhZMlZ5S1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXVkRzlUZEhKcGJtY29iM0IwYVc5dWN5azdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkViMk4xYldWdWRDaDJZV3gxWlN3Z1gzSmxjR3hoWTJWeUxDQnZjSFJwYjI1ektTNTBiMU4wY21sdVp5aHZjSFJwYjI1ektUdGNibjFjYmx4dVpYaHdiM0owSUhzZ2NHRnljMlVzSUhCaGNuTmxRV3hzUkc5amRXMWxiblJ6TENCd1lYSnpaVVJ2WTNWdFpXNTBMQ0J6ZEhKcGJtZHBabmtnZlR0Y2JpSXNJQ0pwYlhCdmNuUWdleUJLYzI5dVRHbHVheXdnVEdsdWF5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMMnhwYm10Y0lqdGNibWx0Y0c5eWRDQjdJR2RsZEVWNGRHVnVjMmx2Yml3Z1oyVjBSbWxzWlZScGRHeGxJSDBnWm5KdmJTQmNJblYwYVd4ekwyNXZjbTFoYkdsNlpYSnpYQ0k3WEc1cGJYQnZjblFnZXlCRFlXTm9aV1JOWlhSaFpHRjBZU3dnUm1sc1pWTjBZWFJ6TENCR2NtOXVkRTFoZEhSbGNrTmhZMmhsSUgwZ1puSnZiU0JjSW05aWMybGthV0Z1WENJN1hHNXBiWEJ2Y25RZ2V5QndZWEp6WlNCaGN5QndZWEp6WlZsaGJXd2dmU0JtY205dElGd2llV0Z0YkZ3aU8xeHVhVzF3YjNKMElFSlVjbVZsSUdaeWIyMGdYQ0p6YjNKMFpXUXRZblJ5WldWY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUNBZ1NXNXNhVzVsUm1sbGJHUXNYRzRnSUNBZ1NuTnZia2x1YkdsdVpVWnBaV3hrTEZ4dUlDQWdJR0Z6U1c1c2FXNWxSbWxsYkdRc1hHNGdJQ0FnWlhoMGNtRmpkRVoxYkd4TWFXNWxSbWxsYkdRc1hHNGdJQ0FnWlhoMGNtRmpkRWx1YkdsdVpVWnBaV3hrY3l4Y2JpQWdJQ0JxYzI5dVNXNXNhVzVsUm1sbGJHUXNYRzU5SUdaeWIyMGdYQ0l1TDJsdWJHbHVaUzFtYVdWc1pGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ0lDQktjMjl1VFdGeWEyUnZkMjVDYkc5amF5eGNiaUFnSUNCS2MyOXVUV0Z5YTJSdmQyNU1hWE4wUW14dlkyc3NYRzRnSUNBZ1NuTnZiazFoY210a2IzZHVUR2x6ZEVsMFpXMHNYRzRnSUNBZ1NuTnZiazFoY210a2IzZHVVR0ZuWlN4Y2JpQWdJQ0JLYzI5dVRXRnlhMlJ2ZDI1VFpXTjBhVzl1TEZ4dUlDQWdJRXB6YjI1TllYSnJaRzkzYmxSaGMydEpkR1Z0TEZ4dUlDQWdJRXB6YjI1TllYSnJaRzkzYmtSaGRHRmliRzlqYXl4Y2JpQWdJQ0JLYzI5dVRXRnlhMlJ2ZDI1RGIyUmxZbXh2WTJzc1hHNGdJQ0FnU25OdmJrWnliMjUwYldGMGRHVnlSVzUwY25rc1hHNTlJR1p5YjIwZ1hDSnBibVJsZUM5MGVYQmxjeTlxYzI5dUwyMWhjbXRrYjNkdVhDSTdYRzVwYlhCdmNuUWdleUJLYzI5dVEyOXVkbVZ5YzJsdmJpQjlJR1p5YjIwZ1hDSnBibVJsZUM5MGVYQmxjeTlxYzI5dUwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dXV0Z0YkVOdmJuWmxjbk5wYjI0Z2ZTQm1jbTl0SUZ3aWFXNWtaWGd2ZEhsd1pYTXZlV0Z0YkZ3aU8xeHVhVzF3YjNKMElIc2diV0Z3VDJKcVpXTjBWbUZzZFdWeklIMGdabkp2YlNCY0luVjBhV3h6TDJSaGRHRmNJanRjYmx4dUx5b3FJRTFoZEdOb1pYTWdlV0Z0YkNCa1lYUmhZbXh2WTJ0ekxDQjNhR2xqYUNCemFHOTNJSFZ3SUdGeklHbHVaR1Z3Wlc1a1pXNTBJRzlpYW1WamRITWdhVzRnZEdobElHUmhkR0ZqYjNKbElHbHVaR1Y0TGlBcUwxeHVZMjl1YzNRZ1dVRk5URjlFUVZSQlgxSkZSMFZZSUQwZ0wyQmdZSGxoYld3NlpHRjBZUzlwTzF4dUx5b3FJRTFoZEdOb1pYTWdkR2hsSUhOMFlYSjBJRzltSUdGdWVTQmpiMlJsWW14dlkyc2dabVZ1WTJVdUlDb3ZYRzVqYjI1emRDQkRUMFJGUWt4UFEwdGZSa1ZPUTBWZlVrVkhSVmdnUFNBdlhpZy9PbUJnWUh4K2ZuNHBLQzRxS1NRdmFXMDdYRzR2S2lvZ1RXRjBZMmhsY3lCc2FYTjBJR2wwWlcxeklDaHBibU5zZFdScGJtY2dhVzV6YVdSbElIUmxlSFFnWW14dlkydHpLUzRnS2k5Y2JtTnZibk4wSUV4SlUxUmZTVlJGVFY5U1JVZEZXQ0E5SUM5ZVcxeGNjejVkS2loY1hHUXJYRnd1ZkZ4Y1pDdGNYQ2w4WEZ3cWZDMThYRndyS1Z4Y2N5b29YRnhiTG5zd0xERjlYRnhkS1Q5Y1hITXFLQzRxS1M5dGMzVTdYRzVjYmk4cUtseHVJQ29nUjJsMlpXNGdkR2hsSUhKaGR5QnpiM1Z5WTJVZ1lXNWtJRTlpYzJsa2FXRnVJRzFsZEdGa1lYUmhJR1p2Y2lCaElHZHBkbVZ1SUcxaGNtdGtiM2R1SUdacGJHVXNYRzRnS2lCeVpYUjFjbTRnWm5Wc2JDQnRZWEpyWkc5M2JpQm1hV3hsSUcxbGRHRmtZWFJoTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiV0Z5YTJSdmQyNUpiWEJ2Y25Rb1hHNGdJQ0FnY0dGMGFEb2djM1J5YVc1bkxGeHVJQ0FnSUcxaGNtdGtiM2R1T2lCemRISnBibWNzWEc0Z0lDQWdiV1YwWVdSaGRHRTZJRU5oWTJobFpFMWxkR0ZrWVhSaExGeHVJQ0FnSUhOMFlYUnpPaUJHYVd4bFUzUmhkSE5jYmlrNklFcHpiMjVOWVhKclpHOTNibEJoWjJVZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkdsdVpYTXNJRzFsZEdGa1lYUmhPaUJ3WVdkbFRXVjBZV1JoZEdFc0lHWnliMjUwYldGMGRHVnlMQ0J6WldOMGFXOXVjeUI5SUQwZ2JXRnlhMlJ2ZDI1VGIzVnlZMlZKYlhCdmNuUW9jR0YwYUN3Z2JXRnlhMlJ2ZDI0c0lHMWxkR0ZrWVhSaEtUdGNiaUFnSUNCamIyNXpkQ0J3WVdkbElEMGdibVYzSUZCaFoyVkVZWFJoS0hCaGRHZ3NJSE4wWVhSekxDQnNhVzVsY3k1c1pXNW5kR2dzSUhCaFoyVk5aWFJoWkdGMFlTd2djMlZqZEdsdmJuTXNJR1p5YjI1MGJXRjBkR1Z5S1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ3WVdkbExtSjFhV3hrS0NrN1hHNTlYRzVjYmk4cUtpQkpiWEJ2Y25RZ2JXRnlhMlJ2ZDI0Z1ptbHNaU0J0WlhSaFpHRjBZU3dnY0hKdlpIVmphVzVuSUdGc2JDQnlaV3hsZG1GdWRDQnRZWEpyWkc5M2JpQmtZWFJoTGlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWhjbXRrYjNkdVUyOTFjbU5sU1cxd2IzSjBLRnh1SUNBZ0lIQmhkR2c2SUhOMGNtbHVaeXhjYmlBZ0lDQnRZWEpyWkc5M2Jqb2djM1J5YVc1bkxGeHVJQ0FnSUcxbGRHRmtZWFJoT2lCRFlXTm9aV1JOWlhSaFpHRjBZVnh1S1RvZ2UxeHVJQ0FnSUd4cGJtVnpPaUJ6ZEhKcGJtZGJYVHRjYmlBZ0lDQnRaWFJoWkdGMFlUb2dUV1YwWVdSaGRHRTdYRzRnSUNBZ1puSnZiblJ0WVhSMFpYSS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQktjMjl1Um5KdmJuUnRZWFIwWlhKRmJuUnllVDQ3WEc0Z0lDQWdjMlZqZEdsdmJuTTZJRk5sWTNScGIyNUVZWFJoVzEwN1hHNTlJSHRjYmlBZ0lDQmpiMjV6ZENCbWNtOXVkRzFoZEhSbGNqb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1NuTnZia1p5YjI1MGJXRjBkR1Z5Ulc1MGNuaytJSHdnZFc1a1pXWnBibVZrSUQwZ2JXVjBZV1JoZEdFL0xtWnliMjUwYldGMGRHVnlYRzRnSUNBZ0lDQWdJRDhnY0dGeWMyVkdjbTl1ZEcxaGRIUmxja0pzYjJOcktHMWxkR0ZrWVhSaExtWnliMjUwYldGMGRHVnlLVnh1SUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnNhVzVsY3lBOUlHMWhjbXRrYjNkdUxuTndiR2wwS0M5Y1hISmNYRzU4WEZ4eWZGeGNiaThwTzF4dUlDQWdJR052Ym5OMElHMWhjbXRrYjNkdVRXVjBZV1JoZEdFZ1BTQnVaWGNnVFdWMFlXUmhkR0VvS1R0Y2JpQWdJQ0JqYjI1emRDQnpaV04wYVc5dVFYSnlZWGs2SUZObFkzUnBiMjVFWVhSaFcxMGdQU0JiWFR0Y2JpQWdJQ0F2THk4dkx5OHZMeTh2THk4dkwxeHVJQ0FnSUM4dklGTmxZM1JwYjI1eklDOHZYRzRnSUNBZ0x5OHZMeTh2THk4dkx5OHZMeTljYmx4dUlDQWdJR052Ym5OMElHMWxkR0ZvWldGa2FXNW5jeUE5SUcxbGRHRmtZWFJoUHk1b1pXRmthVzVuY3lBL1B5QmJYVHRjYmlBZ0lDQnRaWFJoYUdWaFpHbHVaM011YzI5eWRDZ29ZU3dnWWlrZ1BUNGdZUzV3YjNOcGRHbHZiaTV6ZEdGeWRDNXNhVzVsSUMwZ1lpNXdiM05wZEdsdmJpNXpkR0Z5ZEM1c2FXNWxLVHRjYmx4dUlDQWdJR052Ym5OMElITmxZM1JwYjI1eklEMGdibVYzSUVKVWNtVmxQRzUxYldKbGNpd2dVMlZqZEdsdmJrUmhkR0UrS0hWdVpHVm1hVzVsWkN3Z0tHRXNJR0lwSUQwK0lHRWdMU0JpS1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwYm1SbGVDQTlJREE3SUdsdVpHVjRJRHdnYldWMFlXaGxZV1JwYm1kekxteGxibWQwYURzZ2FXNWtaWGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJuUnllU0E5SUcxbGRHRm9aV0ZrYVc1bmMxdHBibVJsZUYwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOMFlYSjBJRDBnWlc1MGNua3VjRzl6YVhScGIyNHVjM1JoY25RdWJHbHVaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ2FXNWtaWGdnUFQwZ2JXVjBZV2hsWVdScGJtZHpMbXhsYm1kMGFDQXRJREVnUHlCc2FXNWxjeTVzWlc1bmRHZ2dPaUJ0WlhSaGFHVmhaR2x1WjNOYmFXNWtaWGdnS3lBeFhTNXdiM05wZEdsdmJpNXpkR0Z5ZEM1c2FXNWxPMXh1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sWTNScGIyNGdQU0J1WlhjZ1UyVmpkR2x2YmtSaGRHRW9jM1JoY25Rc0lHVnVaQ3dnWlc1MGNua3VhR1ZoWkdsdVp5d2daVzUwY25rdWJHVjJaV3dzSUdsdVpHVjRJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lITmxZM1JwYjI1ekxuTmxkQ2h6ZEdGeWRDd2djMlZqZEdsdmJpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdRV1JrSUdGdUlHbHRjR3hwWTJsMElITmxZM1JwYjI0Z1ptOXlJSFJvWlNCY0ltaGxZV1JwYm1kY0lpQnpaV04wYVc5dUlHOW1JSFJvWlNCd1lXZGxJR2xtSUhSb1pYSmxJR2x6SUc1dmRDQmhiaUJwYlcxbFpHbGhkR1VnYUdWaFpHVnlJR0oxZENCMGFHVnlaU0JwYzF4dUlDQWdJQzh2SUhOdmJXVWdZMjl1ZEdWdWRDQnBiaUIwYUdVZ1ptbHNaUzRnU1dZZ2RHaGxjbVVnWVhKbElHOTBhR1Z5SUhObFkzUnBiMjV6TENCMGFHVnVJR2R2SUhWd0lIUnZJSFJvWVhRc0lHOTBhR1Z5ZDJselpTd2daMjhnWm05eUlIUm9aU0JsYm5ScGNtVWdabWxzWlM1Y2JpQWdJQ0JwWmlBb2MyVmpkR2x2Ym5NdWMybDZaU0E5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFpXMXdkSGxzYVc1bGN5aHNhVzVsY3l3Z01Dd2diR2x1WlhNdWJHVnVaM1JvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZqZEdsdmJpQTlJRzVsZHlCVFpXTjBhVzl1UkdGMFlTZ3dMQ0JzYVc1bGN5NXNaVzVuZEdnc0lHZGxkRVpwYkdWVWFYUnNaU2h3WVhSb0tTd2dNU3dnTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WldOMGFXOXVjeTV6WlhRb01Dd2djMlZqZEdsdmJpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJHYVc1a0lIUm9aU0J6ZEdGeWRDQnZaaUIwYUdVZ1ptbHljM1FnYzJWamRHbHZiaTVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdabWx5YzNRZ1BTQnpaV04wYVc5dWN5NW5aWFJRWVdseVQzSk9aWGgwU0dsbmFHVnlLREFwUHk1Yk1WMGhJVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9abWx5YzNRdWMzUmhjblFnUGlBd0lDWW1JQ0ZsYlhCMGVXeHBibVZ6S0d4cGJtVnpMQ0F3TENCbWFYSnpkQzV6ZEdGeWRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhObFkzUnBiMjRnUFNCdVpYY2dVMlZqZEdsdmJrUmhkR0VvTUN3Z1ptbHljM1F1YzNSaGNuUXNJR2RsZEVacGJHVlVhWFJzWlNod1lYUm9LU3dnTVN3Z01DazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxZM1JwYjI1ekxuTmxkQ2d3TENCelpXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dkx5OHZMeTh2THk4dkwxeHVJQ0FnSUM4dklFSnNiMk5yY3lBdkwxeHVJQ0FnSUM4dkx5OHZMeTh2THk4dkwxeHVYRzRnSUNBZ0x5OGdRV3hzSUdKc2IyTnJjenNnZDJVZ2QybHNiQ0JoYzNOcFoyNGdkR0ZuY3lCaGJtUWdiM1JvWlhJZ2JXVjBZV1JoZEdFZ2RHOGdZbXh2WTJ0eklHRnpJSGRsSUdWdVkyOTFiblJsY2lCMGFHVnRMaUJCZENCMGFHVWdaVzVrTENCdmJteDVJR0pzYjJOcmN5QjBhR0YwWEc0Z0lDQWdMeThnYUdGMlpTQmhZM1IxWVd3Z2JXVjBZV1JoZEdFZ2QybHNiQ0JpWlNCemRHOXlaV1FnZEc4Z2MyRjJaU0J2YmlCdFpXMXZjbmtnY0hKbGMzTjFjbVV1WEc0Z0lDQWdZMjl1YzNRZ1lteHZZMnR6SUQwZ2JtVjNJRUpVY21WbFBHNTFiV0psY2l3Z1FteHZZMnRFWVhSaFBpaDFibVJsWm1sdVpXUXNJQ2hoTENCaUtTQTlQaUJoSUMwZ1lpazdYRzRnSUNBZ2JHVjBJR0pzYjJOclQzSmthVzVoYkNBOUlERTdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmliRzlqYXlCdlppQnRaWFJoWkdGMFlUOHVjMlZqZEdsdmJuTWdmSHdnVzEwcElIdGNiaUFnSUNBZ0lDQWdMeThnVTJ0cGNDQm9aV0ZrYVc1bmN5QmliRzlqYTNNc0lIZGxJR2hoYm1Sc1pTQjBhR1Z0SUhOd1pXTnBZV3hzZVNCaGN5QnpaV04wYVc5dWN5NWNiaUFnSUNBZ0lDQWdhV1lnS0dKc2IyTnJMblI1Y0dVZ1BUMDlJRndpYUdWaFpHbHVaMXdpS1NCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkQ0E5SUdKc2IyTnJMbkJ2YzJsMGFXOXVMbk4wWVhKMExteHBibVU3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkNBOUlHSnNiMk5yTG5CdmMybDBhVzl1TG1WdVpDNXNhVzVsSUNzZ01UdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblJNYVc1bElEMGdiR2x1WlhOYmMzUmhjblJkT3lBdkx5QjBieUIxYzJVZ2RHOGdZMmhsWTJzZ2RHaGxJR052WkdWaWJHOWpheUIwZVhCbFhHNWNiaUFnSUNBZ0lDQWdhV1lnS0dKc2IyTnJMblI1Y0dVZ1BUMDlJRndpYkdsemRGd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmliRzlqYTNNdWMyVjBLSE4wWVhKMExDQnVaWGNnVEdsemRFSnNiMk5yUkdGMFlTaHpkR0Z5ZEN3Z1pXNWtMQ0JpYkc5amEwOXlaR2x1WVd3ckt5d2dZbXh2WTJzdWFXUXBLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoaWJHOWpheTUwZVhCbElEMDlJRndpWTI5a1pWd2lJQ1ltSUZsQlRVeGZSRUZVUVY5U1JVZEZXQzUwWlhOMEtITjBZWEowVEdsdVpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhsaGJXdzZJSE4wY21sdVp5QTlJR3hwYm1WelhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xuTnNhV05sS0hOMFlYSjBJQ3NnTVN3Z1pXNWtJQzBnTVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWFtOXBiaWhjSWx4Y2Jsd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzV5WlhCc1lXTmxLQzljWEhRdloyMHNJRndpSUNCY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6Y0d4cGREb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1NuTnZia1p5YjI1MGJXRjBkR1Z5Ulc1MGNuaytJRDBnY0dGeWMyVkdjbTl1ZEcxaGRIUmxja0pzYjJOcktIQmhjbk5sV1dGdGJDaDVZVzFzS1NrN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUdKc2IyTnJjeTV6WlhRb2MzUmhjblFzSUc1bGR5QkVZWFJoWW14dlkydEVZWFJoS0hOMFlYSjBMQ0JsYm1Rc0lHSnNiMk5yVDNKa2FXNWhiQ3NyTENCemNHeHBkQ3dnWW14dlkyc3VhV1FwS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGliRzlqYXk1MGVYQmxJRDA5UFNCY0ltTnZaR1ZjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1EyaGxZMnNnYVdZZ2RHaGxJR0pzYjJOcklHbHpJR1psYm1ObFpDNWNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFoZEdOb0lEMGdjM1JoY25STWFXNWxMbTFoZEdOb0tFTlBSRVZDVEU5RFMxOUdSVTVEUlY5U1JVZEZXQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVcxaGRHTm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1ZHaHBjeUJwY3lCaGJpQnBibVJsYm5SbFpDMXpkSGxzWlNCamIyUmxZbXh2WTJzdVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lteHZZMnR6TG5ObGRDaHpkR0Z5ZEN3Z2JtVjNJRU52WkdWaWJHOWphMFJoZEdFb2MzUmhjblFzSUdWdVpDd2dZbXh2WTJ0UGNtUnBibUZzS3lzc0lGdGRMQ0JjSW1sdVpHVnVkRndpTENCemRHRnlkQ3dnWlc1a0xDQmliRzlqYXk1cFpDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWVc1bmRXRm5aWE1nUFNCdFlYUmphQzVzWlc1bmRHZ2dQaUF4SUNZbUlHMWhkR05vV3pGZElEOGdiV0YwWTJoYk1WMHVjM0JzYVhRb1hDSXNYQ0lwSURvZ1cxMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbXh2WTJ0ekxuTmxkQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxkeUJEYjJSbFlteHZZMnRFWVhSaEtITjBZWEowTENCbGJtUXNJR0pzYjJOclQzSmthVzVoYkNzckxDQnNZVzVuZFdGblpYTXNJRndpWm1WdVkyVmtYQ0lzSUhOMFlYSjBJQ3NnTVN3Z1pXNWtJQzBnTVN3Z1lteHZZMnN1YVdRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0pzYjJOcmN5NXpaWFFvYzNSaGNuUXNJRzVsZHlCQ1lYTmxRbXh2WTJ0RVlYUmhLSE4wWVhKMExDQmxibVFzSUdKc2IyTnJUM0prYVc1aGJDc3JMQ0JpYkc5amF5NTBlWEJsTENCaWJHOWpheTVwWkNrcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdRV1JrSUdKc2IyTnJjeUIwYnlCelpXTjBhVzl1Y3k1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdKc2IyTnJJRzltSUdKc2IyTnJjeTUyWVd4MVpYTW9LU2tnZTF4dUlDQWdJQ0FnSUNCc2IyOXJkWEFvWW14dlkyc3VjM1JoY25Rc0lITmxZM1JwYjI1ektUOHVZbXh2WTJzb1lteHZZMnNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2THk4dkx5OHZMeTh2WEc0Z0lDQWdMeThnVEdsemRITWdMeTljYmlBZ0lDQXZMeTh2THk4dkx5OHZMMXh1WEc0Z0lDQWdMeThnUVd4c0lHeHBjM1FnYVhSbGJYTWdhVzRnYkdsemRITXVJRk4wWVhKMElIZHBkR2dnWVNCemFXMXdiR1VnZEhKcGRtbGhiQ0J3WVhOekxseHVJQ0FnSUdOdmJuTjBJR052Ym5SbGJuUlNaV2RsZUNBOUlDOWVXMXhjZEZ4Y1pseGNkaUJkS2x0Y1hDMHJYRndxWFZ4Y2N5aGNYRnN1WEZ4ZFhGeHpLVDh2TzF4dUlDQWdJR052Ym5OMElHMWhjbXRsY2xKbFoyVjRJRDBnTDE0b1BqOWNYSE0vS1Nvb1hGeDBmRnhjY3lrcUwyYzdYRzRnSUNBZ1kyOXVjM1FnYkdsemRFbDBaVzF6SUQwZ2JtVjNJRUpVY21WbFBHNTFiV0psY2l3Z1RHbHpkRWwwWlcxRVlYUmhQaWgxYm1SbFptbHVaV1FzSUNoaExDQmlLU0E5UGlCaElDMGdZaWs3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUd4cGMzUWdiMllnYldWMFlXUmhkR0UvTG14cGMzUkpkR1Z0Y3lCOGZDQmJYU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzYVc1bElEMGdiR2x1WlhNdWMyeHBZMlVvYkdsemRDNXdiM05wZEdsdmJpNXpkR0Z5ZEM1c2FXNWxMQ0JzYVhOMExuQnZjMmwwYVc5dUxtVnVaQzVzYVc1bElDc2dNU2t1YW05cGJpaGNJbHhjYmx3aUtUdGNibHh1SUNBZ0lDQWdJQ0F2THlCVVQwUlBPaUJKYlhCc1pXMWxiblFnWm14aFp5QjNhR2xqYUNCemEybHdjeUJwYm1SbGVHbHVaeUJzYVhOMElHbDBaVzF6TGx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFDQTlJR3hwYm1VdWJXRjBZMmdvVEVsVFZGOUpWRVZOWDFKRlIwVllLVHRjYmlBZ0lDQWdJQ0FnYkdWMElITjViV0p2YkNBOUlIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSbGVIUWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRZWFJqYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNsdFltOXNJRDBnYldGMFkyaGJNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwSUQwZ2JXRjBZMmhiTTEwN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2JtVjNJRXhwYzNSSmRHVnRSR0YwWVNoY2JpQWdJQ0FnSUNBZ0lDQWdJR3hwYzNRdWNHOXphWFJwYjI0dWMzUmhjblF1YkdsdVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4cGMzUXVjRzl6YVhScGIyNHVaVzVrTG14cGJtVWdLeUF4TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiR2x6ZEM1d1lYSmxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnplVzFpYjJ3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMExtbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHbHpkQzUwWVhOckxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGRGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0JzYVhOMFNYUmxiWE11YzJWMEtHbDBaVzB1YzNSaGNuUXNJR2wwWlcwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFbHVJSFJvWlNCelpXTnZibVFnYkdsemRDQndZWE56TENCaFkzUjFZV3hzZVNCamIyNXpkSEoxWTNRZ2RHaGxJR3hwYzNRZ2FHVnBjbUZ5WTJoNUxseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FYUmxiU0J2WmlCc2FYTjBTWFJsYlhNdWRtRnNkV1Z6S0NrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dsMFpXMHVjR0Z5Wlc1MFRHbHVaU0E4SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hwYzNSQ2JHOWpheUE5SUdKc2IyTnJjeTVuWlhRb0xXbDBaVzB1Y0dGeVpXNTBUR2x1WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXeHBjM1JDYkc5amF5QjhmQ0FoS0d4cGMzUkNiRzlqYXk1MGVYQmxJRDA5UFNCY0lteHBjM1JjSWlrcElHTnZiblJwYm5WbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBb2JHbHpkRUpzYjJOcklHRnpJRXhwYzNSQ2JHOWphMFJoZEdFcExtbDBaVzF6TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMFNYUmxiWE11WjJWMEtHbDBaVzB1Y0dGeVpXNTBUR2x1WlNrL0xtVnNaVzFsYm5SekxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeTh2THk4dkx5OHZYRzRnSUNBZ0x5OGdWR0ZuY3lBdkwxeHVJQ0FnSUM4dkx5OHZMeTh2THk5Y2JseHVJQ0FnSUM4dklFWnZjaUJsWVdOb0lIUmhaeXdnWVhOemFXZHVJR2wwSUhSdklIUm9aU0JoY0hCeWIzQnlhV0YwWlNCelpXTjBhVzl1SUdGdVpDQmliRzlqYXlCMGFHRjBJR2wwSUdseklHRWdjR0Z5ZENCdlppNWNiaUFnSUNCbWIzSWdLR052Ym5OMElIUmhaMlJsWmlCdlppQnRaWFJoWkdGMFlUOHVkR0ZuY3lBL1B5QmJYU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWVdjZ1BTQjBZV2RrWldZdWRHRm5Mbk4wWVhKMGMxZHBkR2dvWENJalhDSXBJRDhnZEdGblpHVm1MblJoWnlBNklGd2lJMXdpSUNzZ2RHRm5aR1ZtTG5SaFp6dGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JHbHVaU0E5SUhSaFoyUmxaaTV3YjNOcGRHbHZiaTV6ZEdGeWRDNXNhVzVsTzF4dUlDQWdJQ0FnSUNCdFlYSnJaRzkzYmsxbGRHRmtZWFJoTG5SaFp5aDBZV2NwTzF4dVhHNGdJQ0FnSUNBZ0lHeHZiMnQxY0Noc2FXNWxMQ0J6WldOMGFXOXVjeWsvTG0xbGRHRmtZWFJoTG5SaFp5aDBZV2NwTzF4dUlDQWdJQ0FnSUNCc2IyOXJkWEFvYkdsdVpTd2dZbXh2WTJ0ektUOHViV1YwWVdSaGRHRXVkR0ZuS0hSaFp5azdYRzRnSUNBZ0lDQWdJR3h2YjJ0MWNDaHNhVzVsTENCc2FYTjBTWFJsYlhNcFB5NXRaWFJoWkdGMFlTNTBZV2NvZEdGbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QkJaR1FnWm5KdmJuUnRZWFIwWlhJZ2RHRm5jeTVjYmlBZ0lDQnBaaUFvYldWMFlXUmhkR0UvTG1aeWIyNTBiV0YwZEdWeUtTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnY21GM2RHRm5JRzltSUdWNGRISmhZM1JVWVdkektHMWxkR0ZrWVhSaExtWnliMjUwYldGMGRHVnlLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHRm5JRDBnY21GM2RHRm5Mbk4wWVhKMGMxZHBkR2dvWENJalhDSXBJRDhnY21GM2RHRm5JRG9nWENJalhDSWdLeUJ5WVhkMFlXYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYSnJaRzkzYmsxbGRHRmtZWFJoTG5SaFp5aDBZV2NwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4dkx5OHZMeTh2THk5Y2JpQWdJQ0F2THlCTWFXNXJjeUF2TDF4dUlDQWdJQzh2THk4dkx5OHZMeTh2WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JzYVc1clpHVm1JRzltSUcxbGRHRmtZWFJoUHk1c2FXNXJjeUEvUHlCYlhTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnNhVzVySUQwZ1RHbHVheTVwYm1abGNpaHNhVzVyWkdWbUxteHBibXNwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzYVc1bElEMGdiR2x1YTJSbFppNXdiM05wZEdsdmJpNXpkR0Z5ZEM1c2FXNWxPMXh1SUNBZ0lDQWdJQ0J0WVhKclpHOTNiazFsZEdGa1lYUmhMbXhwYm1zb2JHbHVheWs3WEc1Y2JpQWdJQ0FnSUNBZ2JHOXZhM1Z3S0d4cGJtVXNJSE5sWTNScGIyNXpLVDh1YldWMFlXUmhkR0V1YkdsdWF5aHNhVzVyS1R0Y2JpQWdJQ0FnSUNBZ2JHOXZhM1Z3S0d4cGJtVXNJR0pzYjJOcmN5ay9MbTFsZEdGa1lYUmhMbXhwYm1zb2JHbHVheWs3WEc0Z0lDQWdJQ0FnSUd4dmIydDFjQ2hzYVc1bExDQnNhWE4wU1hSbGJYTXBQeTV0WlhSaFpHRjBZUzVzYVc1cktHeHBibXNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhHNGdJQ0FnTHk4Z1JuSnZiblJ0WVhSMFpYSWdUR2x1YTNNZ0x5OWNiaUFnSUNBdkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh1WEc0Z0lDQWdMeThnUm5KdmJuUnRZWFIwWlhJZ2JHbHVhM01nWVhKbElHOXViSGtnWVhOemFXZHVaV1FnZEc4Z2RHaGxJSEJoWjJVdVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCc2FXNXJaR1ZtSUc5bUlHMWxkR0ZrWVhSaFB5NW1jbTl1ZEcxaGRIUmxja3hwYm10eklEOC9JRnRkS1NCN1hHNGdJQ0FnSUNBZ0lHMWhjbXRrYjNkdVRXVjBZV1JoZEdFdWJHbHVheWhNYVc1ckxtbHVabVZ5S0d4cGJtdGtaV1l1YkdsdWF5d2dabUZzYzJVc0lHeHBibXRrWldZdVpHbHpjR3hoZVZSbGVIUXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZYRzRnSUNBZ0x5OGdTVzVzYVc1bElFWnBaV3hrY3lBdkwxeHVJQ0FnSUM4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk5Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1ptbGxiR1FnYjJZZ2FYUmxjbUYwWlVsdWJHbHVaVVpwWld4a2N5aHNhVzVsY3lrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JHbHVaU0E5SUdacFpXeGtMbkJ2YzJsMGFXOXVMbXhwYm1VN1hHNGdJQ0FnSUNBZ0lHMWhjbXRrYjNkdVRXVjBZV1JoZEdFdWFXNXNhVzVsUm1sbGJHUW9abWxsYkdRcE8xeHVYRzRnSUNBZ0lDQWdJR3h2YjJ0MWNDaHNhVzVsTENCelpXTjBhVzl1Y3lrL0xtMWxkR0ZrWVhSaExtbHViR2x1WlVacFpXeGtLR1pwWld4a0tUdGNiaUFnSUNBZ0lDQWdiRzl2YTNWd0tHeHBibVVzSUdKc2IyTnJjeWsvTG0xbGRHRmtZWFJoTG1sdWJHbHVaVVpwWld4a0tHWnBaV3hrS1R0Y2JpQWdJQ0FnSUNBZ2JHOXZhM1Z3S0d4cGJtVXNJR3hwYzNSSmRHVnRjeWsvTG0xbGRHRmtZWFJoTG1sdWJHbHVaVVpwWld4a0tHWnBaV3hrS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjMlZqZEdsdmJrRnljbUY1TG5CMWMyZ29MaTR1YzJWamRHbHZibk11ZG1Gc2RXVnpLQ2twTzF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJR3hwYm1WekxGeHVJQ0FnSUNBZ0lDQm1jbTl1ZEcxaGRIUmxjaXhjYmlBZ0lDQWdJQ0FnYldWMFlXUmhkR0U2SUcxaGNtdGtiM2R1VFdWMFlXUmhkR0VzWEc0Z0lDQWdJQ0FnSUhObFkzUnBiMjV6T2lCelpXTjBhVzl1UVhKeVlYa3NYRzRnSUNBZ2ZUdGNibjFjYmk4dkx5OHZMeTh2THk4dkx5OHZMeTh2TDF4dUx5OGdVR0Z5YzJsdVp5QkJhV1J6SUM4dlhHNHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNibHh1THlvcUlFTm9aV05ySUdsbUlIUm9aU0JuYVhabGJpQnNhVzVsSUhKaGJtZGxJR2x6SUdGc2JDQmxiWEIwZVM0Z1UzUmhjblFnYVhNZ2FXNWpiSFZ6YVhabExDQmxibVFnWlhoamJIVnphWFpsTGlBcUwxeHVablZ1WTNScGIyNGdaVzF3ZEhsc2FXNWxjeWhzYVc1bGN6b2djM1J5YVc1blcxMHNJSE4wWVhKME9pQnVkVzFpWlhJc0lHVnVaRG9nYm5WdFltVnlLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdabTl5SUNoc1pYUWdhVzVrWlhnZ1BTQnpkR0Z5ZERzZ2FXNWtaWGdnUENCbGJtUTdJR2x1WkdWNEt5c3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHBibVZ6VzJsdVpHVjRYUzUwY21sdEtDa2dJVDA5SUZ3aVhDSXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JuMWNibHh1THlvcVhHNGdLaUJaYVdWc1pITWdZV3hzSUdsdWJHbHVaU0JtYVdWc1pITWdabTkxYm1RZ2FXNGdkR2hsSUdSdlkzVnRaVzUwSUdKNUlIUnlZWFpsY25OcGJtY2diR2x1WlNCaWVTQnNhVzVsSUhSb2NtOTFaMmdnZEdobElHUnZZM1Z0Wlc1MExpQlFaWEptYjNKdGN5QnpiMjFsSUc5d2RHbHRhWHBoZEdsdmJuTmNiaUFxSUhSdklITnJhWEFnWlhoMGNtRXRiR0Z5WjJVZ2JHbHVaWE1zSUdGdVpDQmpZVzRnWW1VZ1pHbHpZV0pzWldRdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaW9nYVhSbGNtRjBaVWx1YkdsdVpVWnBaV3hrY3loamIyNTBaVzUwT2lCemRISnBibWRiWFNrNklFZGxibVZ5WVhSdmNqeEpibXhwYm1WR2FXVnNaRDRnZTF4dUlDQWdJR1p2Y2lBb2JHVjBJR3hwYm1WdWJ5QTlJREE3SUd4cGJtVnVieUE4SUdOdmJuUmxiblF1YkdWdVozUm9PeUJzYVc1bGJtOHJLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzYVc1bElEMGdZMjl1ZEdWdWRGdHNhVzVsYm05ZE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUVaaGMzUXRZbUZwYkc5MWRDQm1iM0lnYkdsdVpYTWdkR2hoZENCaGNtVWdkRzl2SUd4dmJtY2diM0lnWkc4Z2JtOTBJR052Ym5SaGFXNGdKem82Snk1Y2JpQWdJQ0FnSUNBZ2FXWWdLR3hwYm1VdWJHVnVaM1JvSUQ0Z016STNOamdnZkh3Z0lXeHBibVV1YVc1amJIVmtaWE1vWENJNk9sd2lLU2tnWTI5dWRHbHVkV1U3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdWRTlFVHpvZ1VtVXRZV1JrSUhOMWNIQnZjblFnWm05eUlIUm9iM05sSUdOMWMzUnZiU0JsYlc5cWFTQm1hV1ZzWkhNZ2IyNGdkR0Z6YTNNZ1lXNWtJSE5wYldsc1lYSXVYRzRnSUNBZ0lDQWdJR3hsZENCcGJteHBibVZHYVdWc1pITWdQU0JsZUhSeVlXTjBTVzVzYVc1bFJtbGxiR1J6S0d4cGJtVXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FXNXNhVzVsUm1sbGJHUnpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2xtYVdWc1pDQnZaaUJwYm14cGJtVkdhV1ZzWkhNcElIbHBaV3hrSUdGelNXNXNhVzVsUm1sbGJHUW9hV1pwWld4a0xDQnNhVzVsYm04cE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHWjFiR3hNYVc1bElEMGdaWGgwY21GamRFWjFiR3hNYVc1bFJtbGxiR1FvYkdsdVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ablZzYkV4cGJtVXBJSGxwWld4a0lHRnpTVzVzYVc1bFJtbGxiR1FvWm5Wc2JFeHBibVVzSUd4cGJtVnVieWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1OVhHNWNiaThxS2lCVWIzQXRiR1YyWld3Z1puVnVZM1JwYjI0Z2QyaHBZMmdnYldGd2N5QmhJRmxCVFV3Z1lteHZZMnNnTFNCcGJtTnNkV1JwYm1jZ1puSnZiblJ0WVhSMFpYSWdMU0JwYm5SdklHWnliMjUwYldGMGRHVnlJR1Z1ZEhKcFpYTXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVkdjbTl1ZEcxaGRIUmxja0pzYjJOcktHSnNiMk5yT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0tUb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1NuTnZia1p5YjI1MGJXRjBkR1Z5Ulc1MGNuaytJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRXB6YjI1R2NtOXVkRzFoZEhSbGNrVnVkSEo1UGlBOUlIdDlPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhMlY1SUc5bUlFOWlhbVZqZEM1clpYbHpLR0pzYjJOcktTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjJZV3gxWlNBOUlHSnNiMk5yVzJ0bGVWMDdYRzVjYmlBZ0lDQWdJQ0FnY21WemRXeDBXMnRsZVM1MGIweHZkMlZ5UTJGelpTZ3BYU0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3RsZVRvZ2EyVjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUVwemIyNURiMjUyWlhKemFXOXVMbXB6YjI0b1dXRnRiRU52Ym5abGNuTnBiMjR1YkdsMFpYSmhiQ2gyWVd4MVpTa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtRjNPaUIyWVd4MVpTeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dWZWeHVYRzR2S2lvZ1JtbHVaSE1nWVc0Z1pXeGxiV1Z1ZENCM2FHbGphQ0JqYjI1MFlXbHVjeUIwYUdVZ1oybDJaVzRnYkdsdVpTNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJzYjI5cmRYQThWQ0JsZUhSbGJtUnpJSHNnYzNSaGNuUTZJRzUxYldKbGNqc2daVzVrT2lCdWRXMWlaWElnZlQ0b2JHbHVaVG9nYm5WdFltVnlMQ0IwY21WbE9pQkNWSEpsWlR4dWRXMWlaWElzSUZRK0tUb2dWQ0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnWTI5dWMzUWdkR0Z5WjJWMElEMGdkSEpsWlM1blpYUlFZV2x5VDNKT1pYaDBURzkzWlhJb2JHbHVaU2svTGxzeFhUdGNiaUFnSUNCcFppQW9kR0Z5WjJWMElDWW1JSFJoY21kbGRDNWxibVFnUGowZ2JHbHVaU2tnY21WMGRYSnVJSFJoY21kbGREdGNibHh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNTlYRzVjYmk4cUtpQkZlSFJ5WVdOMElIUmhaM01nYVc1MFpXeHNhV2RsYm5Sc2VTQm1jbTl0SUdaeWIyNTBiV0YwZEdWeUxpQklZVzVrYkdWeklHRnljbUY1Y3l3Z2JuVnRZbVZ5Y3l3Z1lXNWtJSE4wY21sdVozTXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWlhoMGNtRmpkRlJoWjNNb2JXVjBZV1JoZEdFNklFWnliMjUwVFdGMGRHVnlRMkZqYUdVcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2JHVjBJSFJoWjB0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3lodFpYUmhaR0YwWVNrdVptbHNkR1Z5S0NoMEtTQTlQaUIwTG5SdlRHOTNaWEpEWVhObEtDa2dQVDBnWENKMFlXZHpYQ0lnZkh3Z2RDNTBiMHh2ZDJWeVEyRnpaU2dwSUQwOUlGd2lkR0ZuWENJcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSaFowdGxlWE5jYmlBZ0lDQWdJQ0FnTG0xaGNDZ29heWtnUFQ0Z2MzQnNhWFJHY205dWRHMWhkSFJsY2xSaFowOXlRV3hwWVhNb2JXVjBZV1JoZEdGYmExMHNJQzliTEZ4Y2MxMHJMeWtwWEc0Z0lDQWdJQ0FnSUM1eVpXUjFZMlVvS0hBc0lHTXBJRDArSUhBdVkyOXVZMkYwS0dNcExDQmJYU2xjYmlBZ0lDQWdJQ0FnTG0xaGNDZ29jM1J5S1NBOVBpQW9jM1J5TG5OMFlYSjBjMWRwZEdnb1hDSWpYQ0lwSUQ4Z2MzUnlJRG9nWENJalhDSWdLeUJ6ZEhJcEtUdGNibjFjYmx4dUx5b3FJRk53YkdsMElHRWdabkp2Ym5SdFlYUjBaWElnYkdsemRDQnBiblJ2SUhObGNHRnlZWFJsSUdWc1pXMWxiblJ6T3lCb1lXNWtiR1Z6SUdGamRIVmhiQ0JzYVhOMGN5d2dZMjl0YldFZ2MyVndZWEpoZEdWa0lHeHBjM1J6TENCaGJtUWdjMmx1WjJ4bElHVnNaVzFsYm5SekxpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE53YkdsMFJuSnZiblJ0WVhSMFpYSlVZV2RQY2tGc2FXRnpLR1JoZEdFNklHRnVlU3dnYjI0NklGSmxaMFY0Y0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCcFppQW9aR0YwWVNBOVBTQnVkV3hzSUh4OElHUmhkR0VnUFQwZ2RXNWtaV1pwYm1Wa0tTQnlaWFIxY200Z1cxMDdYRzRnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb1pHRjBZU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdSaGRHRmNiaUFnSUNBZ0lDQWdJQ0FnSUM1bWFXeDBaWElvS0hNcElEMCtJQ0VoY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tITXBJRDArSUhOd2JHbDBSbkp2Ym5SdFlYUjBaWEpVWVdkUGNrRnNhV0Z6S0hNc0lHOXVLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXlaV1IxWTJVb0tIQXNJR01wSUQwK0lIQXVZMjl1WTJGMEtHTXBMQ0JiWFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1JtOXlZMlVnZEc4Z1lTQnpkSEpwYm1jZ2RHOGdhR0Z1Wkd4bElHNTFiV0psY25NZ1lXNWtJSE52SUc5dUxseHVJQ0FnSUhKbGRIVnliaUFvWENKY0lpQXJJR1JoZEdFcFhHNGdJQ0FnSUNBZ0lDNXpjR3hwZENodmJpbGNiaUFnSUNBZ0lDQWdMbVpwYkhSbGNpZ29kQ2tnUFQ0Z0lTRjBLVnh1SUNBZ0lDQWdJQ0F1YldGd0tDaDBLU0E5UGlCMExuUnlhVzBvS1NsY2JpQWdJQ0FnSUNBZ0xtWnBiSFJsY2lnb2RDa2dQVDRnZEM1c1pXNW5kR2dnUGlBd0tUdGNibjFjYmx4dUx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljYmk4dklFSjFhV3hrWlhJZ1ZYUnBiR2wwYVdWeklDOHZYRzR2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkwxeHVYRzR2S2lvZ1EyOXVkbWxsYm1WdWRDQnphR0Z5WldRZ2RYUnBiR2wwZVNCbWIzSWdkSEpoWTJ0cGJtY2diV1YwWVdSaGRHRWdMU0JzYVc1cmN5d2dkR0ZuY3l3Z1lXNWtJSE52SUc5dUxpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklFMWxkR0ZrWVhSaElIdGNiaUFnSUNCd2RXSnNhV01nZEdGbmN6b2dVMlYwUEhOMGNtbHVaejRnUFNCdVpYY2dVMlYwS0NrN1hHNGdJQ0FnY0hWaWJHbGpJR3hwYm10ek9pQk1hVzVyVzEwZ1BTQmJYVHRjYmlBZ0lDQndkV0pzYVdNZ2FXNXNhVzVsUm1sbGJHUnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQkpibXhwYm1WR2FXVnNaRDRnUFNCN2ZUdGNibHh1SUNBZ0lDOHFLaUJCWkdRZ1lTQjBZV2NnZEc4Z2RHaGxJRzFsZEdGa1lYUmhMaUFxTDF4dUlDQWdJSEIxWW14cFl5QjBZV2NvZEdGbk9pQnpkSEpwYm1jcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1MFlXZHpMbUZrWkNoMFlXY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJCWkdRZ1lTQnNhVzVySUhSdklIUm9aU0J0WlhSaFpHRjBZUzRnS2k5Y2JpQWdJQ0J3ZFdKc2FXTWdiR2x1YXloc2FXNXJPaUJNYVc1cktTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbXhwYm10ekxtWnBibVFvS0hZcElEMCtJSFl1WlhGMVlXeHpLR3hwYm1zcEtTa2djbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG14cGJtdHpMbkIxYzJnb2JHbHVheWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVGa1pDQmhiaUJwYm14cGJtVWdabWxsYkdRZ2RHOGdkR2hsSUcxbGRHRmtZWFJoTGlBcUwxeHVJQ0FnSUhCMVlteHBZeUJwYm14cGJtVkdhV1ZzWkNobWFXVnNaRG9nU1c1c2FXNWxSbWxsYkdRcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JHOTNaWElnUFNCbWFXVnNaQzVyWlhrdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWFXNXNhVzVsUm1sbGJHUnpLUzV6YjIxbEtDaHJaWGtwSUQwK0lHdGxlUzUwYjB4dmQyVnlRMkZ6WlNncElEMDlJR3h2ZDJWeUtTa2djbVYwZFhKdU8xeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdWFXNXNhVzVsUm1sbGJHUnpXMnh2ZDJWeVhTQTlJR1pwWld4a08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlNaWFIxY200Z1lTQnNhWE4wSUc5bUlIVnVhWEYxWlNCaFpHUmxaQ0IwWVdkekxpQXFMMXh1SUNBZ0lIQjFZbXhwWXlCbWFXNXBjMmhVWVdkektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRUZ5Y21GNUxtWnliMjBvZEdocGN5NTBZV2R6S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1VtVjBkWEp1SUdFZ2JHbHpkQ0J2WmlCS1UwOU9MWE5sY21saGJHbDZaV1FnYkdsdWEzTXVJQ292WEc0Z0lDQWdjSFZpYkdsaklHWnBibWx6YUV4cGJtdHpLQ2s2SUVwemIyNU1hVzVyVzEwZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVzYVc1cmN5NXRZWEFvS0d4cGJtc3BJRDArSUd4cGJtc3VkRzlQWW1wbFkzUW9LU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUZKbGRIVnliaUJoSUd4cGMzUWdiMllnU2xOUFRpMXpaWEpwWVd4cGVtVmtJR2x1YkdsdVpTQm1hV1ZzWkhNdUlDb3ZYRzRnSUNBZ2NIVmliR2xqSUdacGJtbHphRWx1YkdsdVpVWnBaV3hrY3lncE9pQlNaV052Y21ROGMzUnlhVzVuTENCS2MyOXVTVzVzYVc1bFJtbGxiR1ErSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGNFOWlhbVZqZEZaaGJIVmxjeWgwYUdsekxtbHViR2x1WlVacFpXeGtjeXdnYW5OdmJrbHViR2x1WlVacFpXeGtLVHRjYmlBZ0lDQjlYRzU5WEc1Y2JpOHFLaUJEYjI1MmFXVnVaVzUwSUhWMGFXeHBkSGtnWm05eUlHTnZibk4wY25WamRHbHVaeUJ3WVdkbElHOWlhbVZqZEhNdUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1VHRm5aVVJoZEdFZ2UxeHVJQ0FnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklITjBZWFJ6T2lCR2FXeGxVM1JoZEhNc1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCc1pXNW5kR2c2SUc1MWJXSmxjaXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJRzFsZEdGa1lYUmhPaUJOWlhSaFpHRjBZU3hjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJSE5sWTNScGIyNXpPaUJUWldOMGFXOXVSR0YwWVZ0ZExGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1puSnZiblJ0WVhSMFpYSS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQktjMjl1Um5KdmJuUnRZWFIwWlhKRmJuUnllVDVjYmlBZ0lDQXBJSHQ5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZblZwYkdRb0tUb2dTbk52YmsxaGNtdGtiM2R1VUdGblpTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBa2NHRjBhRG9nZEdocGN5NXdZWFJvTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR04wYVcxbE9pQjBhR2x6TG5OMFlYUnpMbU4wYVcxbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkcxMGFXMWxPaUIwYUdsekxuTjBZWFJ6TG0xMGFXMWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pITnBlbVU2SUhSb2FYTXVjM1JoZEhNdWMybDZaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUmxlSFJsYm5OcGIyNDZJR2RsZEVWNGRHVnVjMmx2YmloMGFHbHpMbkJoZEdncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCdmMybDBhVzl1T2lCN0lITjBZWEowT2lBd0xDQmxibVE2SUhSb2FYTXViR1Z1WjNSb0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBa2RHRm5jem9nZEdocGN5NXRaWFJoWkdGMFlTNW1hVzVwYzJoVVlXZHpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiR2x1YTNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9UR2x1YTNNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNScGJtWnBaV3hrY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaEpibXhwYm1WR2FXVnNaSE1vS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1J6WldOMGFXOXVjem9nZEdocGN5NXpaV04wYVc5dWN5NXRZWEFvS0hncElEMCtJSGd1WW5WcGJHUW9LU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtabkp2Ym5SdFlYUjBaWEk2SUhSb2FYTXVabkp2Ym5SdFlYUjBaWElzWEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lvZ1EyOXVkbWxsYm1WdWRDQjFkR2xzYVhSNUlHWnZjaUJqYjI1emRISjFZM1JwYm1jZ2JXRnlhMlJ2ZDI0Z2MyVmpkR2x2Ym5NdUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1UyVmpkR2x2YmtSaGRHRWdlMXh1SUNBZ0lIQjFZbXhwWXlCaWJHOWphM002SUVKc2IyTnJSR0YwWVZ0ZElEMGdXMTA3WEc0Z0lDQWdjSFZpYkdsaklHMWxkR0ZrWVhSaE9pQk5aWFJoWkdGMFlTQTlJRzVsZHlCTlpYUmhaR0YwWVNncE8xeHVYRzRnSUNBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2MzUmhjblE2SUc1MWJXSmxjaXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR1Z1WkRvZ2JuVnRZbVZ5TEZ4dUlDQWdJQ0FnSUNCd2RXSnNhV01nZEdsMGJHVTZJSE4wY21sdVp5eGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHeGxkbVZzT2lCdWRXMWlaWElzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJ2Y21ScGJtRnNPaUJ1ZFcxaVpYSmNiaUFnSUNBcElIdDlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lteHZZMnNvWW14dlkyczZJRUpzYjJOclJHRjBZU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbUpzYjJOcmN5NXdkWE5vS0dKc2IyTnJLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1luVnBiR1FvS1RvZ1NuTnZiazFoY210a2IzZHVVMlZqZEdsdmJpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBa2RHbDBiR1U2SUhSb2FYTXVkR2wwYkdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYjNKa2FXNWhiRG9nZEdocGN5NXZjbVJwYm1Gc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkd4bGRtVnNPaUIwYUdsekxteGxkbVZzTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKSFJoWjNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9WR0ZuY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdsdVptbGxiR1J6T2lCMGFHbHpMbTFsZEdGa1lYUmhMbVpwYm1semFFbHViR2x1WlVacFpXeGtjeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR3hwYm10ek9pQjBhR2x6TG0xbGRHRmtZWFJoTG1acGJtbHphRXhwYm10ektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2NHOXphWFJwYjI0NklIc2djM1JoY25RNklIUm9hWE11YzNSaGNuUXNJR1Z1WkRvZ2RHaHBjeTVsYm1RZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSaWJHOWphM002SUhSb2FYTXVZbXh2WTJ0ekxtMWhjQ2dvWW14dlkyc3BJRDArSUdKc2IyTnJMbUoxYVd4a0tDa3BMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYm4xY2JseHVMeW9xSUVOdmJuTjBjblZqZEhNZ2JXRnlhMlJ2ZDI0Z2JHbHpkQ0JpYkc5amEzTWdjM0JsWTJsbWFXTmhiR3g1TGlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUV4cGMzUkNiRzlqYTBSaGRHRWdlMXh1SUNBZ0lIQjFZbXhwWXlCMGVYQmxPaUJ6ZEhKcGJtY2dQU0JjSW14cGMzUmNJanRjYmlBZ0lDQndkV0pzYVdNZ2JXVjBZV1JoZEdFNklFMWxkR0ZrWVhSaElEMGdibVYzSUUxbGRHRmtZWFJoS0NrN1hHNGdJQ0FnY0hWaWJHbGpJR2wwWlcxek9pQk1hWE4wU1hSbGJVUmhkR0ZiWFNBOUlGdGRPMXh1WEc0Z0lDQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSEIxWW14cFl5QnpkR0Z5ZERvZ2JuVnRZbVZ5TENCd2RXSnNhV01nWlc1a09pQnVkVzFpWlhJc0lIQjFZbXhwWXlCdmNtUnBibUZzT2lCdWRXMWlaWElzSUhCMVlteHBZeUJpYkc5amEwbGtQem9nYzNSeWFXNW5LU0I3ZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0oxYVd4a0tDazZJRXB6YjI1TllYSnJaRzkzYmt4cGMzUkNiRzlqYXlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYjNKa2FXNWhiRG9nZEdocGN5NXZjbVJwYm1Gc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCdmMybDBhVzl1T2lCN0lITjBZWEowT2lCMGFHbHpMbk4wWVhKMExDQmxibVE2SUhSb2FYTXVaVzVrSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYVc1bWFXVnNaSE02SUhSb2FYTXViV1YwWVdSaGRHRXVabWx1YVhOb1NXNXNhVzVsUm1sbGJHUnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkR0ZuY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaFVZV2R6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYkdsdWEzTTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vVEdsdWEzTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUjBlWEJsT2lCY0lteHBjM1JjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1JpYkc5amEwbGtPaUIwYUdsekxtSnNiMk5yU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrWld4bGJXVnVkSE02SUhSb2FYTXVhWFJsYlhNdWJXRndLQ2hwZEdWdEtTQTlQaUJwZEdWdExtSjFhV3hrS0NrcExGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRU52Ym5OMGNuVmpkSE1nYldGeWEyUnZkMjRnWTI5a1pXSnNiMk5yY3lCemNHVmphV1pwWTJGc2JIa3VJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjlrWldKc2IyTnJSR0YwWVNCN1hHNGdJQ0FnY0hWaWJHbGpJSFI1Y0dVNklITjBjbWx1WnlBOUlGd2lZMjlrWldKc2IyTnJYQ0k3WEc0Z0lDQWdjSFZpYkdsaklHMWxkR0ZrWVhSaE9pQk5aWFJoWkdGMFlTQTlJRzVsZHlCTlpYUmhaR0YwWVNncE8xeHVYRzRnSUNBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2MzUmhjblE2SUc1MWJXSmxjaXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR1Z1WkRvZ2JuVnRZbVZ5TEZ4dUlDQWdJQ0FnSUNCd2RXSnNhV01nYjNKa2FXNWhiRG9nYm5WdFltVnlMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdiR0Z1WjNWaFoyVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJSE4wZVd4bE9pQmNJbWx1WkdWdWRGd2lJSHdnWENKbVpXNWpaV1JjSWl4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUdOdmJuUmxiblJUZEdGeWREb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1kyOXVkR1Z1ZEVWdVpEb2diblZ0WW1WeUxGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1lteHZZMnRKWkQ4NklITjBjbWx1WjF4dUlDQWdJQ2tnZTMxY2JseHVJQ0FnSUhCMVlteHBZeUJpZFdsc1pDZ3BPaUJLYzI5dVRXRnlhMlJ2ZDI1RGIyUmxZbXh2WTJzZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhSNWNHVTZJRndpWTI5a1pXSnNiMk5yWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYjNKa2FXNWhiRG9nZEdocGN5NXZjbVJwYm1Gc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCdmMybDBhVzl1T2lCN0lITjBZWEowT2lCMGFHbHpMbk4wWVhKMExDQmxibVE2SUhSb2FYTXVaVzVrSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYVc1bWFXVnNaSE02SUhSb2FYTXViV1YwWVdSaGRHRXVabWx1YVhOb1NXNXNhVzVsUm1sbGJHUnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkR0ZuY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaFVZV2R6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYkdsdWEzTTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vVEdsdWEzTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUmliRzlqYTBsa09pQjBhR2x6TG1Kc2IyTnJTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiR0Z1WjNWaFoyVnpPaUIwYUdsekxteGhibWQxWVdkbGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNSemRIbHNaVG9nZEdocGN5NXpkSGxzWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1JqYjI1MFpXNTBVRzl6YVhScGIyNDZJSHNnYzNSaGNuUTZJSFJvYVhNdVkyOXVkR1Z1ZEZOMFlYSjBMQ0JsYm1RNklIUm9hWE11WTI5dWRHVnVkRVZ1WkNCOUxGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRU52Ym5OMGNuVmpkSE1nYldGeWEyUnZkMjRnWkdGMFlXSnNiMk5yY3lCemNHVmphV1pwWTJGc2JIa3VJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSR0YwWVdKc2IyTnJSR0YwWVNCN1hHNGdJQ0FnY0hWaWJHbGpJSFI1Y0dVNklITjBjbWx1WnlBOUlGd2laR0YwWVdKc2IyTnJYQ0k3WEc0Z0lDQWdjSFZpYkdsaklHMWxkR0ZrWVhSaE9pQk5aWFJoWkdGMFlTQTlJRzVsZHlCTlpYUmhaR0YwWVNncE8xeHVYRzRnSUNBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ2MzUmhjblE2SUc1MWJXSmxjaXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR1Z1WkRvZ2JuVnRZbVZ5TEZ4dUlDQWdJQ0FnSUNCd2RXSnNhV01nYjNKa2FXNWhiRG9nYm5WdFltVnlMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdaR0YwWVRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnU25OdmJrWnliMjUwYldGMGRHVnlSVzUwY25rK0xGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1lteHZZMnRKWkQ4NklITjBjbWx1WjF4dUlDQWdJQ2tnZTMxY2JseHVJQ0FnSUhCMVlteHBZeUJpZFdsc1pDZ3BPaUJLYzI5dVRXRnlhMlJ2ZDI1RVlYUmhZbXh2WTJzZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhSNWNHVTZJRndpWkdGMFlXSnNiMk5yWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYjNKa2FXNWhiRG9nZEdocGN5NXZjbVJwYm1Gc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCdmMybDBhVzl1T2lCN0lITjBZWEowT2lCMGFHbHpMbk4wWVhKMExDQmxibVE2SUhSb2FYTXVaVzVrSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYVc1bWFXVnNaSE02SUhSb2FYTXViV1YwWVdSaGRHRXVabWx1YVhOb1NXNXNhVzVsUm1sbGJHUnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkR0ZuY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaFVZV2R6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYkdsdWEzTTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vVEdsdWEzTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUmliRzlqYTBsa09pQjBhR2x6TG1Kc2IyTnJTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtaR0YwWVRvZ2RHaHBjeTVrWVhSaExGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRUpoYzJVZ1lteHZZMnNnYldWMFlXUmhkR0VnZFhObFpDQm1iM0lnYm05dUxYTndaV05wWm1saklHSnNiMk5yY3k0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQ1lYTmxRbXh2WTJ0RVlYUmhJSHRjYmlBZ0lDQndkV0pzYVdNZ2JXVjBZV1JoZEdFNklFMWxkR0ZrWVhSaElEMGdibVYzSUUxbGRHRmtZWFJoS0NrN1hHNWNiaUFnSUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCemRHRnlkRG9nYm5WdFltVnlMRnh1SUNBZ0lDQWdJQ0J3ZFdKc2FXTWdaVzVrT2lCdWRXMWlaWElzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJ2Y21ScGJtRnNPaUJ1ZFcxaVpYSXNYRzRnSUNBZ0lDQWdJSEIxWW14cFl5QjBlWEJsT2lCemRISnBibWNzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJpYkc5amEwbGtQem9nYzNSeWFXNW5YRzRnSUNBZ0tTQjdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHSjFhV3hrS0NrNklFcHpiMjVOWVhKclpHOTNia0pzYjJOcklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNSMGVYQmxPaUIwYUdsekxuUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiM0prYVc1aGJEb2dkR2hwY3k1dmNtUnBibUZzTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKSEJ2YzJsMGFXOXVPaUI3SUhOMFlYSjBPaUIwYUdsekxuTjBZWEowTENCbGJtUTZJSFJvYVhNdVpXNWtJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWthVzVtYVdWc1pITTZJSFJvYVhNdWJXVjBZV1JoZEdFdVptbHVhWE5vU1c1c2FXNWxSbWxsYkdSektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBa2RHRm5jem9nZEdocGN5NXRaWFJoWkdGMFlTNW1hVzVwYzJoVVlXZHpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtiR2x1YTNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9UR2x1YTNNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSaWJHOWphMGxrT2lCMGFHbHpMbUpzYjJOclNXUXNYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JDYkc5amEwUmhkR0VnUFNCTWFYTjBRbXh2WTJ0RVlYUmhJSHdnUTI5a1pXSnNiMk5yUkdGMFlTQjhJRVJoZEdGaWJHOWphMFJoZEdFZ2ZDQkNZWE5sUW14dlkydEVZWFJoTzF4dVhHNHZLaW9nVlhScGJHbDBlU0JtYjNJZ1kyOXVjM1J5ZFdOMGFXNW5JRzFoY210a2IzZHVJR3hwYzNRZ2FYUmxiWE11SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVEdsemRFbDBaVzFFWVhSaElIdGNiaUFnSUNCd2RXSnNhV01nYldWMFlXUmhkR0U2SUUxbGRHRmtZWFJoSUQwZ2JtVjNJRTFsZEdGa1lYUmhLQ2s3WEc0Z0lDQWdjSFZpYkdsaklHVnNaVzFsYm5Sek9pQk1hWE4wU1hSbGJVUmhkR0ZiWFNBOUlGdGRPMXh1SUNBZ0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklITjBZWEowT2lCdWRXMWlaWElzWEc0Z0lDQWdJQ0FnSUhCMVlteHBZeUJsYm1RNklHNTFiV0psY2l4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhCaGNtVnVkRXhwYm1VNklHNTFiV0psY2l4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhONWJXSnZiRDg2SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJR0pzYjJOclNXUS9PaUJ6ZEhKcGJtY3NYRzRnSUNBZ0lDQWdJSEIxWW14cFl5QnpkR0YwZFhNL09pQnpkSEpwYm1jc1hHNGdJQ0FnSUNBZ0lIQjFZbXhwWXlCMFpYaDBQem9nYzNSeWFXNW5YRzRnSUNBZ0tTQjdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHSjFhV3hrS0NrNklFcHpiMjVOWVhKclpHOTNia3hwYzNSSmRHVnRJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDUndZWEpsYm5STWFXNWxPaUIwYUdsekxuQmhjbVZ1ZEV4cGJtVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBa2NHOXphWFJwYjI0NklIc2djM1JoY25RNklIUm9hWE11YzNSaGNuUXNJR1Z1WkRvZ2RHaHBjeTVsYm1RZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSaWJHOWphMGxrT2lCMGFHbHpMbUpzYjJOclNXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBa1pXeGxiV1Z1ZEhNNklIUm9hWE11Wld4bGJXVnVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBMbUoxYVd4a0tDa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pIUjVjR1U2SUhSb2FYTXVjM1JoZEhWeklEOGdYQ0owWVhOclhDSWdPaUJjSW14cGMzUmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnBibVpwWld4a2N6b2dkR2hwY3k1dFpYUmhaR0YwWVM1bWFXNXBjMmhKYm14cGJtVkdhV1ZzWkhNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNSMFlXZHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUZSaFozTW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDUnNhVzVyY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaE1hVzVyY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhOMFlYUjFjem9nZEdocGN5NXpkR0YwZFhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrYzNsdFltOXNPaUIwYUdsekxuTjViV0p2YkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ1IwWlhoME9pQjBhR2x6TG5SbGVIUXNYRzRnSUNBZ0lDQWdJSDBnWVhNZ1NuTnZiazFoY210a2IzZHVWR0Z6YTBsMFpXMDdYRzRnSUNBZ2ZWeHVmVnh1SWl3Z0ltbHRjRzl5ZENCN0lFeHBibXNnZlNCbWNtOXRJRndpWlhod2NtVnpjMmx2Ymk5c2FXNXJYQ0k3WEc1cGJYQnZjblFnZXlCRVlYUmxWR2x0WlN3Z1JIVnlZWFJwYjI0Z2ZTQm1jbTl0SUZ3aWJIVjRiMjVjSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRkFnWm5KdmJTQmNJbkJoY25OcGJXMXZibHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdJQ0JDYVc1aGNubFBjQ3hjYmlBZ0lDQkZlSEJ5WlhOemFXOXVMRnh1SUNBZ0lFVjRjSEpsYzNOcGIyNXpMRnh1SUNBZ0lFeGhiV0prWVVWNGNISmxjM05wYjI0c1hHNGdJQ0FnVEdsemRFVjRjSEpsYzNOcGIyNHNYRzRnSUNBZ1RHbDBaWEpoYkVWNGNISmxjM05wYjI0c1hHNGdJQ0FnVDJKcVpXTjBSWGh3Y21WemMybHZiaXhjYmlBZ0lDQldZWEpwWVdKc1pVVjRjSEpsYzNOcGIyNHNYRzU5SUdaeWIyMGdYQ0l1TDJWNGNISmxjM05wYjI1Y0lqdGNibWx0Y0c5eWRDQmxiVzlxYVZKbFoyVjRJR1p5YjIwZ1hDSmxiVzlxYVMxeVpXZGxlRndpTzF4dWFXMXdiM0owSUh0Y2JpQWdJQ0JKYm1SbGVFTm9hV3hrVDJZc1hHNGdJQ0FnU1c1a1pYaFFZWFJvTEZ4dUlDQWdJRWx1WkdWNFNXUXNYRzRnSUNBZ1NXNWtaWGhPYjNRc1hHNGdJQ0FnU1c1a1pYaFFZWEpsYm5SUFppeGNiaUFnSUNCSmJtUmxlRkYxWlhKNUxGeHVJQ0FnSUVsdVpHVjRWR0ZuWjJWa0xGeHVJQ0FnSUVsdVpHVjRWSGx3WldRc1hHNGdJQ0FnU1c1a1pYaE1hVzVyWldRc1hHNGdJQ0FnU1c1a1pYaEdhV1ZzWkN4Y2JpQWdJQ0JKYm1SbGVFVjRjSEpsYzNOcGIyNHNYRzU5SUdaeWIyMGdYQ0pwYm1SbGVDOTBlWEJsY3k5cGJtUmxlQzF4ZFdWeWVWd2lPMXh1YVcxd2IzSjBJSHNnYm05eWJXRnNhWHBsUkhWeVlYUnBiMjRnZlNCbWNtOXRJRndpZFhScGJITXZibTl5YldGc2FYcGxjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFeHBkR1Z5WVd3Z2ZTQm1jbTl0SUZ3aVpYaHdjbVZ6YzJsdmJpOXNhWFJsY21Gc1hDSTdYRzVjYmk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMMXh1THk4Z1VHRnljMmx1WnlCUWNtbHRhWFJwZG1WeklDOHZYRzR2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OWNibHh1THlvcUlGQnlhVzFwZEdsMlpTQndZWEp6YVc1bklHWnZjaUJqYjIxdGIyNXNlU0J6WldWdUlIUjVjR1Z6TGlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlFjbWx0YVhScGRtVnpUR0Z1WjNWaFoyVWdlMXh1SUNBZ0lHNTFiV0psY2pvZ2JuVnRZbVZ5TzF4dUlDQWdJSE4wY21sdVp6b2djM1J5YVc1bk8xeHVJQ0FnSUdWelkyRndaVU5vWVhKaFkzUmxjam9nYzNSeWFXNW5PMXh1SUNBZ0lHSnZiMnc2SUdKdmIyeGxZVzQ3WEc0Z0lDQWdkR0ZuT2lCemRISnBibWM3WEc0Z0lDQWdhV1JsYm5ScFptbGxjam9nYzNSeWFXNW5PMXh1SUNBZ0lHeHBibXM2SUV4cGJtczdYRzRnSUNBZ1pXMWlaV1JNYVc1ck9pQk1hVzVyTzF4dUlDQWdJSEp2YjNSRVlYUmxPaUJFWVhSbFZHbHRaVHRjYmlBZ0lDQmtZWFJsVTJodmNuUm9ZVzVrT2lCclpYbHZaaUIwZVhCbGIyWWdSRUZVUlY5VFNFOVNWRWhCVGtSVE8xeHVJQ0FnSUdSaGRHVTZJRVJoZEdWVWFXMWxPMXh1SUNBZ0lHUmhkR1ZRYkhWek9pQkVZWFJsVkdsdFpUdGNiaUFnSUNCa2RYSmhkR2x2YmxSNWNHVTZJR3RsZVc5bUlIUjVjR1Z2WmlCRVZWSkJWRWxQVGw5VVdWQkZVenRjYmlBZ0lDQmtkWEpoZEdsdmJqb2dSSFZ5WVhScGIyNDdYRzRnSUNBZ2NtRjNUblZzYkRvZ2MzUnlhVzVuTzF4dVhHNGdJQ0FnWW1sdVlYSjVVR3gxYzAxcGJuVnpPaUJDYVc1aGNubFBjRHRjYmlBZ0lDQmlhVzVoY25sTmRXeEVhWFk2SUVKcGJtRnllVTl3TzF4dUlDQWdJR0pwYm1GeWVVTnZiWEJoY21WUGNEb2dRbWx1WVhKNVQzQTdYRzRnSUNBZ1ltbHVZWEo1UVc1a1QzQTZJRUpwYm1GeWVVOXdPMXh1SUNBZ0lHSnBibUZ5ZVU5eVQzQTZJRUpwYm1GeWVVOXdPMXh1WEc0Z0lDQWdMeThnVEdsMFpYSmhiQ0JtYVdWc1pDQndZWEp6YVc1bklHWnZjaUJwYm1kbGMzUnBibWNnYVc1c2FXNWxJR1pwWld4a2N5QmhibVFnWm5KdmJuUnRZWFIwWlhJdVhHNGdJQ0FnWVhSdmJVbHViR2x1WlVacFpXeGtPaUJNYVhSbGNtRnNPMXh1SUNBZ0lHbHViR2x1WlVacFpXeGtUR2x6ZERvZ1RHbDBaWEpoYkZ0ZE8xeHVJQ0FnSUdsdWJHbHVaVVpwWld4a09pQk1hWFJsY21Gc08xeHVmVnh1WEc0dktpb2dTVzF3YkdWdFpXNTBZWFJwYjI1eklHWnZjaUJ0WVc1NUlIQnlhVzFwZEdsMlpYTXVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVRkpKVFVsVVNWWkZVeUE5SUZBdVkzSmxZWFJsVEdGdVozVmhaMlU4VUhKcGJXbDBhWFpsYzB4aGJtZDFZV2RsUGloN1hHNGdJQ0FnYm5WdFltVnlPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV5WldkbGVIQW9MeTAvV3pBdE9WMHJLRnhjTGxzd0xUbGRLeWsvTHlsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tITjBjaWtnUFQ0Z1RuVnRZbVZ5TG5CaGNuTmxSbXh2WVhRb2MzUnlLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWtaWE5qS0Z3aWJuVnRZbVZ5WENJcExGeHVYRzRnSUNBZ0x5OGdRU0J4ZFc5MFpTMXpkWEp5YjNWdVpHVmtJSE4wY21sdVp5QjNhR2xqYUNCemRYQndiM0owY3lCbGMyTmhjR1VnWTJoaGNtRmpkR1Z5Y3lBb0oxeGNKeWt1WEc0Z0lDQWdjM1J5YVc1bk9pQW9jU2tnUFQ1Y2JpQWdJQ0FnSUNBZ1VDNXpkSEpwYm1jb0oxd2lKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNTBhR1Z1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZBdVlXeDBLSEV1WlhOallYQmxRMmhoY21GamRHVnlMQ0JRTG01dmJtVlBaaWduWENKY1hGeGNKeWtwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNWhkRXhsWVhOMEtEQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM1dFlYQW9LR05vWVhKektTQTlQaUJqYUdGeWN5NXFiMmx1S0Z3aVhDSXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5OcmFYQW9VQzV6ZEhKcGJtY29KMXdpSnlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1WkdWell5aGNJbk4wY21sdVoxd2lLU3hjYmx4dUlDQWdJR1Z6WTJGd1pVTm9ZWEpoWTNSbGNqb2dLRjhwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVjM1J5YVc1bktGd2lYRnhjWEZ3aUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5Sb1pXNG9VQzVoYm5rcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaGxjMk5oY0dWa0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1NXWWdkMlVnWVhKbElHVnpZMkZ3YVc1bklHRWdZbUZqYTNOc1lYTm9JRzl5SUdFZ2NYVnZkR1VzSUhCaGMzTWdhVzRnYjI0Z2FXNGdaWE5qWVhCbFpDQm1iM0p0WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnpZMkZ3WldRZ1BUMDlJQ2RjSWljcElISmxkSFZ5YmlBblhDSW5PMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGMyTmhjR1ZrSUQwOVBTQmNJbHhjWEZ4Y0lpa2djbVYwZFhKdUlGd2lYRnhjWEZ3aU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnY21WMGRYSnVJRndpWEZ4Y1hGd2lJQ3NnWlhOallYQmxaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBMRnh1WEc0Z0lDQWdMeThnUVNCaWIyOXNaV0Z1SUhSeWRXVXZabUZzYzJVZ2RtRnNkV1V1WEc0Z0lDQWdZbTl2YkRvZ0tGOHBJRDArWEc0Z0lDQWdJQ0FnSUZBdWNtVm5aWGh3S0M5MGNuVmxmR1poYkhObGZGUnlkV1Y4Um1Gc2MyVXZLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvYzNSeUtTQTlQaUJ6ZEhJdWRHOU1iM2RsY2tOaGMyVW9LU0E5UFNCY0luUnlkV1ZjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQzVrWlhOaktGd2lZbTl2YkdWaGJsd2lLU3hjYmx4dUlDQWdJQzh2SUVFZ2RHRm5JRzltSUhSb1pTQm1iM0p0SUNjamMzUjFabVl2YUdWc2JHOHRkR2hsY21VbkxseHVJQ0FnSUhSaFp6b2dLRjhwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVjMlZ4VFdGd0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnVUM1emRISnBibWNvWENJalhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1VDNWhiSFFvVUM1eVpXZGxlSEFvTDF0ZVhGeDFNakF3TUMxY1hIVXlNRFpHWEZ4MU1rVXdNQzFjWEhVeVJUZEdKeUZjSWlNa0pTWW9LU29yTEM0Nk96dzlQajlBWG1CN2ZIMStYRnhiWEZ4ZFhGeGNYRnhjYzEwdktTNWtaWE5qS0Z3aWRHVjRkRndpS1NrdWJXRnVlU2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLSE4wWVhKMExDQnlaWE4wS1NBOVBpQnpkR0Z5ZENBcklISmxjM1F1YW05cGJpaGNJbHdpS1Z4dUlDQWdJQ0FnSUNBcExtUmxjMk1vWENKMFlXZGNJaWtzWEc1Y2JpQWdJQ0F2THlCQklIWmhjbWxoWW14bElHbGtaVzUwYVdacFpYSXNJSGRvYVdOb0lHbHpJR0ZzY0doaGJuVnRaWEpwWXlCaGJtUWdiWFZ6ZENCemRHRnlkQ0IzYVhSb0lHRWdiR1YwZEdWeUlHOXlMaTR1SUdWdGIycHBMbHh1SUNBZ0lHbGtaVzUwYVdacFpYSTZJQ2hmS1NBOVBseHVJQ0FnSUNBZ0lDQlFMbk5sY1UxaGNDaGNiaUFnSUNBZ0lDQWdJQ0FnSUZBdVlXeDBLRkF1Y21WblpYaHdLQzliWEZ4d2UweGxkSFJsY24wa1hTOTFLU3dnVUM1eVpXZGxlSEFvUlUxUFNrbGZVa1ZIUlZncExtUmxjMk1vWENKMFpYaDBYQ0lwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJRkF1WVd4MEtGQXVjbVZuWlhod0tDOWJNQzA1WEZ4d2UweGxkSFJsY24wa1h5MWRMM1VwTENCUUxuSmxaMlY0Y0NoRlRVOUtTVjlTUlVkRldDa3VaR1Z6WXloY0luUmxlSFJjSWlrcExtMWhibmtvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2htYVhKemRDd2djbVZ6ZENrZ1BUNGdabWx5YzNRZ0t5QnlaWE4wTG1wdmFXNG9YQ0pjSWlsY2JpQWdJQ0FnSUNBZ0tTNWtaWE5qS0Z3aWRtRnlhV0ZpYkdWY0lpa3NYRzVjYmlBZ0lDQXZMeUJCYmlCUFluTnBaR2xoYmlCc2FXNXJJRzltSUhSb1pTQm1iM0p0SUZ0YlBHeHBibXMrWFYwdVhHNGdJQ0FnYkdsdWF6b2dLRjhwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVjbVZuWlhod0tDOWNYRnRjWEZzb1cxNWNYRnRjWEYxZEtqOHBYRnhkWEZ4ZEwzVXNJREVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXViV0Z3S0Noc2FXNXJTVzV1WlhJcElEMCtJRXhwYm1zdWNHRnljMlZKYm01bGNpaHNhVzVyU1c1dVpYSXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtUmxjMk1vWENKbWFXeGxJR3hwYm10Y0lpa3NYRzVjYmlBZ0lDQXZMeUJCYmlCbGJXSmxaR1JoWW14bElHeHBibXNnZDJocFkyZ2dZMkZ1SUhOMFlYSjBJSGRwZEdnZ0p5RW5MaUJVYUdseklHOTJaWEpzWVhCeklIZHBkR2dnZEdobElHNXZjbTFoYkNCdVpXZGhkR2x2YmlCdmNHVnlZWFJ2Y2l3Z2MyOGdhWFFnYVhNZ2IyNXNlVnh1SUNBZ0lDOHZJSEJ5YjNacFpHVmtJR1p2Y2lCdFpYUmhaR0YwWVNCd1lYSnphVzVuTGx4dUlDQWdJR1Z0WW1Wa1RHbHVhem9nS0hFcElEMCtYRzRnSUNBZ0lDQWdJRkF1YzJWeFRXRndLRkF1YzNSeWFXNW5LRndpSVZ3aUtTNWhkRTF2YzNRb01Ta3NJSEV1YkdsdWF5d2dLSEFzSUd3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3TG14bGJtZDBhQ0ErSURBcElHd3VaVzFpWldRZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHdzdYRzRnSUNBZ0lDQWdJSDBwTG1SbGMyTW9YQ0ptYVd4bElHeHBibXRjSWlrc1hHNWNiaUFnSUNBdkx5QkNhVzVoY25rZ2NHeDFjeUJ2Y2lCdGFXNTFjeUJ2Y0dWeVlYUnZjaTVjYmlBZ0lDQmlhVzVoY25sUWJIVnpUV2x1ZFhNNklDaGZLU0E5UGx4dUlDQWdJQ0FnSUNCUUxuSmxaMlY0Y0NndlhGd3JmQzB2S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbTFoY0Nnb2MzUnlLU0E5UGlCemRISWdZWE1nUW1sdVlYSjVUM0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVaR1Z6WXloY0lpY3JKeUJ2Y2lBbkxTZGNJaWtzWEc1Y2JpQWdJQ0F2THlCQ2FXNWhjbmtnZEdsdFpYTWdiM0lnWkdsMmFXUmxJRzl3WlhKaGRHOXlMbHh1SUNBZ0lHSnBibUZ5ZVUxMWJFUnBkam9nS0Y4cElEMCtYRzRnSUNBZ0lDQWdJRkF1Y21WblpYaHdLQzljWENwOFhGd3ZmQ1V2S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbTFoY0Nnb2MzUnlLU0E5UGlCemRISWdZWE1nUW1sdVlYSjVUM0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVaR1Z6WXloY0lpY3FKeUJ2Y2lBbkx5Y2diM0lnSnlVblhDSXBMRnh1WEc0Z0lDQWdMeThnUW1sdVlYSjVJR052YlhCaGNtbHpiMjRnYjNCbGNtRjBiM0l1WEc0Z0lDQWdZbWx1WVhKNVEyOXRjR0Z5WlU5d09pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1VDNXlaV2RsZUhBb0x6NDlmRHc5ZkNFOWZENThQSHc5THlsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tITjBjaWtnUFQ0Z2MzUnlJR0Z6SUVKcGJtRnllVTl3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbVJsYzJNb1hDSW5QajBuSUc5eUlDYzhQU2NnYjNJZ0p5RTlKeUJ2Y2lBblBTY2diM0lnSno0bklHOXlJQ2M4SjF3aUtTeGNibHh1SUNBZ0lDOHZJRUpwYm1GeWVTQmliMjlzWldGdUlHTnZiV0pwYm1GMGFXOXVJRzl3WlhKaGRHOXlMbHh1SUNBZ0lHSnBibUZ5ZVVGdVpFOXdPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzV5WldkbGVIQW9MMkZ1Wkh3bUwya3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWJXRndLQ2hmYzNSeUtTQTlQaUJjSWlaY0lpQmhjeUJDYVc1aGNubFBjQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWtaWE5qS0Z3aUoyRnVaQ2RjSWlrc1hHNGdJQ0FnWW1sdVlYSjVUM0pQY0RvZ0tGOHBJRDArWEc0Z0lDQWdJQ0FnSUZBdWNtVm5aWGh3S0M5dmNueGNYSHd2YVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tGOXpkSElwSUQwK0lGd2lmRndpSUdGeklFSnBibUZ5ZVU5d0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0luYjNJblhDSXBMRnh1WEc0Z0lDQWdMeThnUVNCa1lYUmxJSGRvYVdOb0lHTmhiaUJpWlNCWldWbFpMVTFOV3kxRVJGUklTRHB0YlRwemMxMHVYRzRnSUNBZ2NtOXZkRVJoZEdVNklDaGZLU0E5UGx4dUlDQWdJQ0FnSUNCUUxuTmxjVTFoY0NoUUxuSmxaMlY0Y0NndlhGeGtlelI5THlrc0lGQXVjM1J5YVc1bktGd2lMVndpS1N3Z1VDNXlaV2RsZUhBb0wxeGNaSHN5ZlM4cExDQW9lV1ZoY2l3Z1h5d2diVzl1ZEdncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCRVlYUmxWR2x0WlM1bWNtOXRUMkpxWldOMEtIc2dlV1ZoY2pvZ1RuVnRZbVZ5TG5CaGNuTmxTVzUwS0hsbFlYSXBMQ0J0YjI1MGFEb2dUblZ0WW1WeUxuQmhjbk5sU1c1MEtHMXZiblJvS1NCOUtUdGNiaUFnSUNBZ0lDQWdmU2t1WkdWell5aGNJbVJoZEdVZ2FXNGdabTl5YldGMElGbFpXVmt0VFUxYkxVUkVWRWhJTFUxTkxWTlRMazFUWFZ3aUtTeGNiaUFnSUNCa1lYUmxVMmh2Y25Sb1lXNWtPaUFvWHlrZ1BUNWNiaUFnSUNBZ0lDQWdVQzVoYkhRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk1UFltcGxZM1F1YTJWNWN5aEVRVlJGWDFOSVQxSlVTRUZPUkZNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xuTnZjblFvS0dFc0lHSXBJRDArSUdJdWJHVnVaM1JvSUMwZ1lTNXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2hRTG5OMGNtbHVaeWxjYmlBZ0lDQWdJQ0FnS1NCaGN5QlFMbEJoY25ObGNqeHJaWGx2WmlCMGVYQmxiMllnUkVGVVJWOVRTRTlTVkVoQlRrUlRQaXhjYmlBZ0lDQmtZWFJsT2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnWTJoaGFXNVBjSFE4UkdGMFpWUnBiV1UrS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdjUzV5YjI5MFJHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDViVG9nUkdGMFpWUnBiV1VwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1VDNXpaWEZOWVhBb1VDNXpkSEpwYm1jb1hDSXRYQ0lwTENCUUxuSmxaMlY0Y0NndlhGeGtleko5THlrc0lDaGZMQ0JrWVhrcElEMCtJSGx0TG5ObGRDaDdJR1JoZVRvZ1RuVnRZbVZ5TG5CaGNuTmxTVzUwS0dSaGVTa2dmU2twTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLSGx0WkRvZ1JHRjBaVlJwYldVcElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzV6WlhGTllYQW9VQzV6ZEhKcGJtY29YQ0pVWENJcExDQlFMbkpsWjJWNGNDZ3ZYRnhrZXpKOUx5a3NJQ2hmTENCb2IzVnlLU0E5UGlCNWJXUXVjMlYwS0hzZ2FHOTFjam9nVG5WdFltVnlMbkJoY25ObFNXNTBLR2h2ZFhJcElIMHBLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDViV1JvT2lCRVlYUmxWR2x0WlNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlFMbk5sY1UxaGNDaFFMbk4wY21sdVp5aGNJanBjSWlrc0lGQXVjbVZuWlhod0tDOWNYR1I3TW4wdktTd2dLRjhzSUcxcGJuVjBaU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlVzFrYUM1elpYUW9leUJ0YVc1MWRHVTZJRTUxYldKbGNpNXdZWEp6WlVsdWRDaHRhVzUxZEdVcElIMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDViV1JvYlRvZ1JHRjBaVlJwYldVcElEMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzV6WlhGTllYQW9VQzV6ZEhKcGJtY29YQ0k2WENJcExDQlFMbkpsWjJWNGNDZ3ZYRnhrZXpKOUx5a3NJQ2hmTENCelpXTnZibVFwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGx0WkdodExuTmxkQ2g3SUhObFkyOXVaRG9nVG5WdFltVnlMbkJoY25ObFNXNTBLSE5sWTI5dVpDa2dmU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLSGx0WkdodGN6b2dSR0YwWlZScGJXVXBJRDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVUM1aGJIUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0ZBdWMzUnlhVzVuS0Z3aUxsd2lLU3dnVUM1eVpXZGxlSEFvTDF4Y1pIc3pmUzhwTENBb1h5d2diV2xzYkdselpXTnZibVFwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCNWJXUm9iWE11YzJWMEtIc2diV2xzYkdselpXTnZibVE2SUU1MWJXSmxjaTV3WVhKelpVbHVkQ2h0YVd4c2FYTmxZMjl1WkNrZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdVQzV6ZFdOalpXVmtLSGx0WkdodGN5a2dMeThnY0dGemMxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBb1pIUTZJRVJoZEdWVWFXMWxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZBdVlXeDBLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUUxuTmxjVTFoY0NoUUxuTjBjbWx1WnloY0lpdGNJaWt1YjNJb1VDNXpkSEpwYm1jb1hDSXRYQ0lwS1N3Z1VDNXlaV2RsZUhBb0wxeGNaSHN4TERKOUtEcGNYR1I3TW4wcFB5OHBMQ0FvY0cwc0lHaHlLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkhRdWMyVjBXbTl1WlNoY0lsVlVRMXdpSUNzZ2NHMGdLeUJvY2l3Z2V5QnJaV1Z3VEc5allXeFVhVzFsT2lCMGNuVmxJSDBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0ZBdWMzUnlhVzVuS0Z3aVdsd2lLU3dnS0NrZ1BUNGdaSFF1YzJWMFdtOXVaU2hjSW5WMFkxd2lMQ0I3SUd0bFpYQk1iMk5oYkZScGJXVTZJSFJ5ZFdVZ2ZTa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUUxuTmxjVTFoY0NoUUxuTjBjbWx1WnloY0lsdGNJaWtzSUZBdWNtVm5aWGh3S0M5Yk1DMDVRUzFhWVMxNkt5MWNYQzlkS3k5MUtTd2dVQzV6ZEhKcGJtY29YQ0pkWENJcExDQW9YMkVzSUhwdmJtVXNJRjlpS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pIUXVjMlYwV205dVpTaDZiMjVsTENCN0lHdGxaWEJNYjJOaGJGUnBiV1U2SUhSeWRXVWdmU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtRnpjMlZ5ZENnb1pIUTZJRVJoZEdWVWFXMWxLU0E5UGlCa2RDNXBjMVpoYkdsa0xDQmNJblpoYkdsa0lHUmhkR1ZjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQzVrWlhOaktGd2laR0YwWlNCcGJpQm1iM0p0WVhRZ1dWbFpXUzFOVFZzdFJFUlVTRWd0VFUwdFUxTXVUVk5kWENJcExGeHVYRzRnSUNBZ0x5OGdRU0JrWVhSbExDQndiSFZ6SUhaaGNtbHZkWE1nYzJodmNuUm9ZVzVrSUhScGJXVnpJRzltSUdSaGVTQnBkQ0JqYjNWc1pDQmlaUzVjYmlBZ0lDQmtZWFJsVUd4MWN6b2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVZV3gwUEVSaGRHVlVhVzFsUGloY2JpQWdJQ0FnSUNBZ0lDQWdJSEV1WkdGMFpWTm9iM0owYUdGdVpDNXRZWEFvS0dRcElEMCtJRVJCVkVWZlUwaFBVbFJJUVU1RVUxdGtYU2dwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1WkdGMFpWeHVJQ0FnSUNBZ0lDQXBMbVJsYzJNb1hDSmtZWFJsSUdsdUlHWnZjbTFoZENCWldWbFpMVTFOV3kxRVJGUklTQzFOVFMxVFV5NU5VMTBnYjNJZ2FXNGdjMmh2Y25Sb1lXNWtYQ0lwTEZ4dVhHNGdJQ0FnTHk4Z1FTQmtkWEpoZEdsdmJpQnZaaUIwYVcxbExseHVJQ0FnSUdSMWNtRjBhVzl1Vkhsd1pUb2dLRjhwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVZV3gwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1VDJKcVpXTjBMbXRsZVhNb1JGVlNRVlJKVDA1ZlZGbFFSVk1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG5OdmNuUW9LR0VzSUdJcElEMCtJR0l1YkdWdVozUm9JQzBnWVM1c1pXNW5kR2dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG0xaGNDaFFMbk4wY21sdVp5bGNiaUFnSUNBZ0lDQWdLU0JoY3lCUUxsQmhjbk5sY2p4clpYbHZaaUIwZVhCbGIyWWdSRlZTUVZSSlQwNWZWRmxRUlZNK0xGeHVJQ0FnSUdSMWNtRjBhVzl1T2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnVUM1elpYRk5ZWEFvY1M1dWRXMWlaWElzSUZBdWIzQjBWMmhwZEdWemNHRmpaU3dnY1M1a2RYSmhkR2x2YmxSNWNHVXNJQ2hqYjNWdWRDd2dYeXdnZENrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUVSVlVrRlVTVTlPWDFSWlVFVlRXM1JkTG0xaGNGVnVhWFJ6S0NoNEtTQTlQaUI0SUNvZ1kyOTFiblFwWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV6WlhCQ2VURW9VQzV6ZEhKcGJtY29YQ0lzWENJcExuUnlhVzBvVUM1dmNIUlhhR2wwWlhOd1lXTmxLUzV2Y2loUUxtOXdkRmRvYVhSbGMzQmhZMlVwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbTFoY0Nnb1pIVnlZWFJwYjI1ektTQTlQaUJrZFhKaGRHbHZibk11Y21Wa2RXTmxLQ2h3TENCaktTQTlQaUJ3TG5Cc2RYTW9ZeWtwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbVJsYzJNb1hDSmtkWEpoZEdsdmJpQnNhV3RsSURSb2NqSnRhVzVjSWlrc1hHNWNiaUFnSUNBdkx5QkJJSEpoZHlCdWRXeHNJSFpoYkhWbExseHVJQ0FnSUhKaGQwNTFiR3c2SUNoZktTQTlQaUJRTG5OMGNtbHVaeWhjSW01MWJHeGNJaWtzWEc1Y2JpQWdJQ0F2THlCSmJteHBibVVnWm1sbGJHUWdkbUZzZFdVZ2NHRnljMmx1Wnk1Y2JpQWdJQ0JoZEc5dFNXNXNhVzVsUm1sbGJHUTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQlFMbUZzZENoY2JpQWdJQ0FnSUNBZ0lDQWdJSEV1WkdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdVpIVnlZWFJwYjI0dWJXRndLQ2hrS1NBOVBpQnViM0p0WVd4cGVtVkVkWEpoZEdsdmJpaGtLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhMbk4wY21sdVp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWRHRm5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWxiV0psWkV4cGJtc3NYRzRnSUNBZ0lDQWdJQ0FnSUNCeExtSnZiMndzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhMbTUxYldKbGNpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWNtRjNUblZzYkZ4dUlDQWdJQ0FnSUNBcExGeHVJQ0FnSUdsdWJHbHVaVVpwWld4a1RHbHpkRG9nS0hFcElEMCtJSEV1WVhSdmJVbHViR2x1WlVacFpXeGtMbk5sY0VKNUtGQXVjM1J5YVc1bktGd2lMRndpS1M1MGNtbHRLRkF1YjNCMFYyaHBkR1Z6Y0dGalpTa3ViRzl2YTJGb1pXRmtLSEV1WVhSdmJVbHViR2x1WlVacFpXeGtLU2tzWEc0Z0lDQWdhVzVzYVc1bFJtbGxiR1E2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JRTG1Gc2RDaGNiaUFnSUNBZ0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0hFdVlYUnZiVWx1YkdsdVpVWnBaV3hrTENCUUxuTjBjbWx1WnloY0lpeGNJaWt1ZEhKcGJTaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcExDQnhMbWx1YkdsdVpVWnBaV3hrVEdsemRDd2dLR1lzSUY5ekxDQnNLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZ0bVhTNWpiMjVqWVhRb2JDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1GMGIyMUpibXhwYm1WR2FXVnNaRnh1SUNBZ0lDQWdJQ0FwTEZ4dWZTazdYRzVjYmk4cUtpQkZiVzlxYVNCeVpXZGxlQ3dnYzNSeWNIQnBibWNnWVc1NUlISmxaMlY0SUdac1lXZHpJR2wwSUdoaGN5NGdLaTljYm1OdmJuTjBJRVZOVDBwSlgxSkZSMFZZSUQwZ2JtVjNJRkpsWjBWNGNDaGxiVzlxYVZKbFoyVjRLQ2tzSUZ3aVhDSXBPMXh1WEc0dktpb2dVSEp2ZG1sa1pYTWdZU0JzYjI5cmRYQWdkR0ZpYkdVZ1ptOXlJSFZ1YVhRZ1pIVnlZWFJwYjI1eklHOW1JSFJvWlNCbmFYWmxiaUIwZVhCbExpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFUlZVa0ZVU1U5T1gxUlpVRVZUSUQwZ2UxeHVJQ0FnSUhsbFlYSTZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCNVpXRnljem9nTVNCOUtTeGNiaUFnSUNCNVpXRnljem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lIbGxZWEp6T2lBeElIMHBMRnh1SUNBZ0lIbHlPaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2VXVmhjbk02SURFZ2ZTa3NYRzRnSUNBZ2VYSnpPaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2VXVmhjbk02SURFZ2ZTa3NYRzVjYmlBZ0lDQnRiMjUwYURvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJRzF2Ym5Sb2N6b2dNU0I5S1N4Y2JpQWdJQ0J0YjI1MGFITTZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCdGIyNTBhSE02SURFZ2ZTa3NYRzRnSUNBZ2JXODZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCdGIyNTBhSE02SURFZ2ZTa3NYRzRnSUNBZ2JXOXpPaUJFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ2JXOXVkR2h6T2lBeElIMHBMRnh1WEc0Z0lDQWdkMlZsYXpvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJSGRsWld0ek9pQXhJSDBwTEZ4dUlDQWdJSGRsWld0ek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnZDJWbGEzTTZJREVnZlNrc1hHNGdJQ0FnZDJzNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUIzWldWcmN6b2dNU0I5S1N4Y2JpQWdJQ0IzYTNNNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUIzWldWcmN6b2dNU0I5S1N4Y2JpQWdJQ0IzT2lCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2dkMlZsYTNNNklERWdmU2tzWEc1Y2JpQWdJQ0JrWVhrNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJrWVhsek9pQXhJSDBwTEZ4dUlDQWdJR1JoZVhNNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJrWVhsek9pQXhJSDBwTEZ4dUlDQWdJR1E2SUVSMWNtRjBhVzl1TG1aeWIyMVBZbXBsWTNRb2V5QmtZWGx6T2lBeElIMHBMRnh1WEc0Z0lDQWdhRzkxY2pvZ1JIVnlZWFJwYjI0dVpuSnZiVTlpYW1WamRDaDdJR2h2ZFhKek9pQXhJSDBwTEZ4dUlDQWdJR2h2ZFhKek9pQkVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnYUc5MWNuTTZJREVnZlNrc1hHNGdJQ0FnYUhJNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNU0I5S1N4Y2JpQWdJQ0JvY25NNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJvYjNWeWN6b2dNU0I5S1N4Y2JpQWdJQ0JvT2lCRWRYSmhkR2x2Ymk1bWNtOXRUMkpxWldOMEtIc2dhRzkxY25NNklERWdmU2tzWEc1Y2JpQWdJQ0J0YVc1MWRHVTZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCdGFXNTFkR1Z6T2lBeElIMHBMRnh1SUNBZ0lHMXBiblYwWlhNNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJ0YVc1MWRHVnpPaUF4SUgwcExGeHVJQ0FnSUcxcGJqb2dSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUcxcGJuVjBaWE02SURFZ2ZTa3NYRzRnSUNBZ2JXbHVjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHMXBiblYwWlhNNklERWdmU2tzWEc0Z0lDQWdiVG9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lHMXBiblYwWlhNNklERWdmU2tzWEc1Y2JpQWdJQ0J6WldOdmJtUTZJRVIxY21GMGFXOXVMbVp5YjIxUFltcGxZM1FvZXlCelpXTnZibVJ6T2lBeElIMHBMRnh1SUNBZ0lITmxZMjl1WkhNNklFUjFjbUYwYVc5dUxtWnliMjFQWW1wbFkzUW9leUJ6WldOdmJtUnpPaUF4SUgwcExGeHVJQ0FnSUhObFl6b2dSSFZ5WVhScGIyNHVabkp2YlU5aWFtVmpkQ2g3SUhObFkyOXVaSE02SURFZ2ZTa3NYRzRnSUNBZ2MyVmpjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lITmxZMjl1WkhNNklERWdmU2tzWEc0Z0lDQWdjem9nUkhWeVlYUnBiMjR1Wm5KdmJVOWlhbVZqZENoN0lITmxZMjl1WkhNNklERWdmU2tzWEc1OU8xeHVYRzR2S2lvZ1UyaHZjblJvWVc1a0lHWnZjaUJqYjIxdGIyNGdaR0YwWlhNZ0tISmxiR0YwYVhabElIUnZJSEpwWjJoMElHNXZkeWt1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVGVVJWOVRTRTlTVkVoQlRrUlRJRDBnZTF4dUlDQWdJRzV2ZHpvZ0tDa2dQVDRnUkdGMFpWUnBiV1V1Ykc5allXd29LU3hjYmlBZ0lDQjBiMlJoZVRvZ0tDa2dQVDRnUkdGMFpWUnBiV1V1Ykc5allXd29LUzV6ZEdGeWRFOW1LRndpWkdGNVhDSXBMRnh1SUNBZ0lIbGxjM1JsY21SaGVUb2dLQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ1JHRjBaVlJwYldVdWJHOWpZV3dvS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbk4wWVhKMFQyWW9YQ0prWVhsY0lpbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1dGFXNTFjeWhFZFhKaGRHbHZiaTVtY205dFQySnFaV04wS0hzZ1pHRjVjem9nTVNCOUtTa3NYRzRnSUNBZ2RHOXRiM0p5YjNjNklDZ3BJRDArWEc0Z0lDQWdJQ0FnSUVSaGRHVlVhVzFsTG14dlkyRnNLQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXpkR0Z5ZEU5bUtGd2laR0Y1WENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1Y0d4MWN5aEVkWEpoZEdsdmJpNW1jbTl0VDJKcVpXTjBLSHNnWkdGNWN6b2dNU0I5S1Nrc1hHNGdJQ0FnYzI5M09pQW9LU0E5UGlCRVlYUmxWR2x0WlM1c2IyTmhiQ2dwTG5OMFlYSjBUMllvWENKM1pXVnJYQ0lwTEZ4dUlDQWdJRndpYzNSaGNuUXRiMll0ZDJWbGExd2lPaUFvS1NBOVBpQkVZWFJsVkdsdFpTNXNiMk5oYkNncExuTjBZWEowVDJZb1hDSjNaV1ZyWENJcExGeHVJQ0FnSUdWdmR6b2dLQ2tnUFQ0Z1JHRjBaVlJwYldVdWJHOWpZV3dvS1M1bGJtUlBaaWhjSW5kbFpXdGNJaWtzWEc0Z0lDQWdYQ0psYm1RdGIyWXRkMlZsYTF3aU9pQW9LU0E5UGlCRVlYUmxWR2x0WlM1c2IyTmhiQ2dwTG1WdVpFOW1LRndpZDJWbGExd2lLU3hjYmlBZ0lDQnpiM2s2SUNncElEMCtJRVJoZEdWVWFXMWxMbXh2WTJGc0tDa3VjM1JoY25SUFppaGNJbmxsWVhKY0lpa3NYRzRnSUNBZ1hDSnpkR0Z5ZEMxdlppMTVaV0Z5WENJNklDZ3BJRDArSUVSaGRHVlVhVzFsTG14dlkyRnNLQ2t1YzNSaGNuUlBaaWhjSW5sbFlYSmNJaWtzWEc0Z0lDQWdaVzk1T2lBb0tTQTlQaUJFWVhSbFZHbHRaUzVzYjJOaGJDZ3BMbVZ1WkU5bUtGd2llV1ZoY2x3aUtTeGNiaUFnSUNCY0ltVnVaQzF2WmkxNVpXRnlYQ0k2SUNncElEMCtJRVJoZEdWVWFXMWxMbXh2WTJGc0tDa3VaVzVrVDJZb1hDSjVaV0Z5WENJcExGeHVJQ0FnSUhOdmJUb2dLQ2tnUFQ0Z1JHRjBaVlJwYldVdWJHOWpZV3dvS1M1emRHRnlkRTltS0Z3aWJXOXVkR2hjSWlrc1hHNGdJQ0FnWENKemRHRnlkQzF2WmkxdGIyNTBhRndpT2lBb0tTQTlQaUJFWVhSbFZHbHRaUzVzYjJOaGJDZ3BMbk4wWVhKMFQyWW9YQ0p0YjI1MGFGd2lLU3hjYmlBZ0lDQmxiMjA2SUNncElEMCtJRVJoZEdWVWFXMWxMbXh2WTJGc0tDa3VaVzVrVDJZb1hDSnRiMjUwYUZ3aUtTeGNiaUFnSUNCY0ltVnVaQzF2WmkxdGIyNTBhRndpT2lBb0tTQTlQaUJFWVhSbFZHbHRaUzVzYjJOaGJDZ3BMbVZ1WkU5bUtGd2liVzl1ZEdoY0lpa3NYRzU5TzF4dVhHNHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhHNHZMeUJGZUhCeVpYTnphVzl1SUV4aGJtZDFZV2RsSUM4dlhHNHZMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2THk4dlhHNWNibVY0Y0c5eWRDQjBlWEJsSUZCdmMzUm1hWGhHY21GbmJXVnVkQ0E5WEc0Z0lDQWdmQ0I3SUhSNWNHVTZJRndpWkc5MFhDSTdJR1Y0Y0hJNklITjBjbWx1WnlCOVhHNGdJQ0FnZkNCN0lIUjVjR1U2SUZ3aWFXNWtaWGhjSWpzZ1pYaHdjam9nUlhod2NtVnpjMmx2YmlCOVhHNGdJQ0FnZkNCN0lIUjVjR1U2SUZ3aVpuVnVZM1JwYjI1Y0lqc2daWGh3Y25NNklFVjRjSEpsYzNOcGIyNWJYU0I5TzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFVjRjSEpsYzNOcGIyNU1ZVzVuZFdGblpTQjdYRzRnSUNBZ2RtRnlhV0ZpYkdVNklGWmhjbWxoWW14bFJYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCdWRXMWlaWEk2SUV4cGRHVnlZV3hGZUhCeVpYTnphVzl1TzF4dUlDQWdJR0p2YjJ3NklFeHBkR1Z5WVd4RmVIQnlaWE56YVc5dU8xeHVJQ0FnSUhOMGNtbHVaem9nVEdsMFpYSmhiRVY0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdaR0YwWlRvZ1RHbDBaWEpoYkVWNGNISmxjM05wYjI0N1hHNGdJQ0FnWkhWeVlYUnBiMjQ2SUV4cGRHVnlZV3hGZUhCeVpYTnphVzl1TzF4dUlDQWdJR3hwYm1zNklFeHBkR1Z5WVd4RmVIQnlaWE56YVc5dU8xeHVJQ0FnSUc1MWJHdzZJRXhwZEdWeVlXeEZlSEJ5WlhOemFXOXVPMXh1WEc0Z0lDQWdiR2x6ZERvZ1RHbHpkRVY0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdiMkpxWldOME9pQlBZbXBsWTNSRmVIQnlaWE56YVc5dU8xeHVYRzRnSUNBZ2JtVm5ZWFJsWkRvZ1JYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCaGRHOXRPaUJGZUhCeVpYTnphVzl1TzF4dUlDQWdJR2x1WkdWNE9pQkZlSEJ5WlhOemFXOXVPMXh1SUNBZ0lHeGhiV0prWVRvZ1RHRnRZbVJoUlhod2NtVnpjMmx2Ymp0Y2JseHVJQ0FnSUM4dklGQnZjM1JtYVhnZ2NHRnljMlZ5Y3lCbWIzSWdablZ1WTNScGIyNGdZMkZzYkhNZ0ppQjBhR1VnYkdsclpTNWNiaUFnSUNCa2IzUlFiM04wWm1sNE9pQlFiM04wWm1sNFJuSmhaMjFsYm5RN1hHNGdJQ0FnYVc1a1pYaFFiM04wWm1sNE9pQlFiM04wWm1sNFJuSmhaMjFsYm5RN1hHNGdJQ0FnWm5WdVkzUnBiMjVRYjNOMFptbDRPaUJRYjNOMFptbDRSbkpoWjIxbGJuUTdYRzVjYmlBZ0lDQXZMeUJDYVc1aGNua2diM0FnY0dGeWMyVnljeTVjYmlBZ0lDQmlhVzVoY25sTmRXeEVhWFk2SUVWNGNISmxjM05wYjI0N1hHNGdJQ0FnWW1sdVlYSjVVR3gxYzAxcGJuVnpPaUJGZUhCeVpYTnphVzl1TzF4dUlDQWdJR0pwYm1GeWVVTnZiWEJoY21VNklFVjRjSEpsYzNOcGIyNDdYRzRnSUNBZ1ltbHVZWEo1UW05dmJHVmhiam9nUlhod2NtVnpjMmx2Ymp0Y2JpQWdJQ0JpYVc1aGNubFBjRG9nUlhod2NtVnpjMmx2Ymp0Y2JpQWdJQ0J3WVhKbGJuTTZJRVY0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdaWGh3Y21WemMybHZiam9nUlhod2NtVnpjMmx2Ymp0Y2JuMWNibHh1THlvcVhHNGdLaUJRWVhKelpTQm1iM0lnZEdobElHUmhkR0ZqYjNKbElHVjRjSEpsYzNOcGIyNGdiR0Z1WjNWaFoyVXNJSGRvYVdOb0lIQnliM1pwWkdWeklITnBiWEJzWlNCaGJtUWdkbUZuZFdWc2VTQktVeTFzYjI5cmFXNW5JR052YlhCMWRHRjBhVzl1TGx4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1JWaFFVa1ZUVTBsUFRpQTlJRkF1WTNKbFlYUmxUR0Z1WjNWaFoyVThSWGh3Y21WemMybHZia3hoYm1kMVlXZGxQaWg3WEc0Z0lDQWdMeThnUm1sbGJHUWdjR0Z5YzJsdVp5NWNiaUFnSUNCMllYSnBZV0pzWlRvZ0tGOHBJRDArSUZCU1NVMUpWRWxXUlZNdWFXUmxiblJwWm1sbGNpNXRZWEFvUlhod2NtVnpjMmx2Ym5NdWRtRnlhV0ZpYkdVcExtUmxjMk1vWENKMllYSnBZV0pzWlZ3aUtTeGNiaUFnSUNCdWRXMWlaWEk2SUNoZktTQTlQaUJRVWtsTlNWUkpWa1ZUTG01MWJXSmxjaTV0WVhBb1JYaHdjbVZ6YzJsdmJuTXViR2wwWlhKaGJDa3VaR1Z6WXloY0ltNTFiV0psY2x3aUtTeGNiaUFnSUNCemRISnBibWM2SUNoZktTQTlQaUJRVWtsTlNWUkpWa1ZUTG5OMGNtbHVaeTV0WVhBb1JYaHdjbVZ6YzJsdmJuTXViR2wwWlhKaGJDa3VaR1Z6WXloY0luTjBjbWx1WjF3aUtTeGNiaUFnSUNCaWIyOXNPaUFvWHlrZ1BUNGdVRkpKVFVsVVNWWkZVeTVpYjI5c0xtMWhjQ2hGZUhCeVpYTnphVzl1Y3k1c2FYUmxjbUZzS1M1a1pYTmpLRndpWW05dmJHVmhibHdpS1N4Y2JpQWdJQ0JrWVhSbE9pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1kzSmxZWFJsUm5WdVkzUnBiMjRvWENKa1lYUmxYQ0lzSUZCU1NVMUpWRWxXUlZNdVpHRjBaVkJzZFhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaGJYMloxYm1Nc0lHUmhkR1ZkS1NBOVBpQkZlSEJ5WlhOemFXOXVjeTVzYVhSbGNtRnNLR1JoZEdVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1SbGMyTW9YQ0prWVhSbFhDSXBMRnh1SUNBZ0lHUjFjbUYwYVc5dU9pQW9YeWtnUFQ1Y2JpQWdJQ0FnSUNBZ1kzSmxZWFJsUm5WdVkzUnBiMjRvWENKa2RYSmNJaXdnVUZKSlRVbFVTVlpGVXk1a2RYSmhkR2x2YmlsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tGdGZablZ1WXl3Z1pIVnlYU2tnUFQ0Z1JYaHdjbVZ6YzJsdmJuTXViR2wwWlhKaGJDaGtkWElwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbVJsYzJNb1hDSmtkWEpoZEdsdmJsd2lLU3hjYmlBZ0lDQnVkV3hzT2lBb1h5a2dQVDRnVUZKSlRVbFVTVlpGVXk1eVlYZE9kV3hzTG0xaGNDZ29YeWtnUFQ0Z1JYaHdjbVZ6YzJsdmJuTXVUbFZNVENrc1hHNGdJQ0FnYkdsdWF6b2dLRjhwSUQwK0lGQlNTVTFKVkVsV1JWTXViR2x1YXk1dFlYQW9SWGh3Y21WemMybHZibk11YkdsMFpYSmhiQ2tzWEc0Z0lDQWdiR2x6ZERvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUhFdVpYaHdjbVZ6YzJsdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnTG5ObGNFSjVLRkF1YzNSeWFXNW5LRndpTEZ3aUtTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVkM0poY0NoUUxuTjBjbWx1WnloY0lsdGNJaWt1YzJ0cGNDaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcExDQlFMbTl3ZEZkb2FYUmxjM0JoWTJVdWRHaGxiaWhRTG5OMGNtbHVaeWhjSWwxY0lpa3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvYkNrZ1BUNGdSWGh3Y21WemMybHZibk11YkdsemRDaHNLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWtaWE5qS0Z3aWJHbHpkRndpS1N4Y2JpQWdJQ0J2WW1wbFkzUTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQlFMbk5sY1UxaGNDaGNiaUFnSUNBZ0lDQWdJQ0FnSUZCU1NVMUpWRWxXUlZNdWFXUmxiblJwWm1sbGNpNXZjaWhRVWtsTlNWUkpWa1ZUTG5OMGNtbHVaeWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQlFMbk4wY21sdVp5aGNJanBjSWlrdWRISnBiU2hRTG05d2RGZG9hWFJsYzNCaFkyVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWxlSEJ5WlhOemFXOXVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tHNWhiV1VzSUY5elpYQXNJSFpoYkhWbEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnYm1GdFpTd2dkbUZzZFdVZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5ObGNFSjVLRkF1YzNSeWFXNW5LRndpTEZ3aUtTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVkM0poY0NoUUxuTjBjbWx1WnloY0ludGNJaWt1YzJ0cGNDaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcExDQlFMbTl3ZEZkb2FYUmxjM0JoWTJVdWRHaGxiaWhRTG5OMGNtbHVaeWhjSW4xY0lpa3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvZG1Gc2N5a2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnlaWE02SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRVY0Y0hKbGMzTnBiMjQrSUQwZ2UzMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdaVzUwY25rZ2IyWWdkbUZzY3lrZ2NtVnpXMlZ1ZEhKNUxtNWhiV1ZkSUQwZ1pXNTBjbmt1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFVjRjSEpsYzNOcGIyNXpMbTlpYW1WamRDaHlaWE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWtaWE5qS0Z3aWIySnFaV04wSUNnbmV5QmhPaUF4TENCaU9pQXlJSDBuS1Z3aUtTeGNibHh1SUNBZ0lHRjBiMjA2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JRTG1Gc2RDaGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklGQnNZV05sSUdWdFltVmtJR3hwYm10eklHRmliM1psSUc1bFoyRjBaV1FnWm1sbGJHUnpJR0Z6SUhSb1pYa2dZWEpsSUhSb1pTQnpjR1ZqYVdGc0lIQmhjbk5sY2lCallYTmxJQ2NoVzF0MGFHbHVaMTFkSnlCaGJtUWdZWEpsSUdkbGJtVnlZV3hzZVNCMWJtRnRZbWxuYVc5MWN5NWNiaUFnSUNBZ0lDQWdJQ0FnSUZCU1NVMUpWRWxXUlZNdVpXMWlaV1JNYVc1ckxtMWhjQ2dvYkNrZ1BUNGdSWGh3Y21WemMybHZibk11YkdsMFpYSmhiQ2hzS1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG01bFoyRjBaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhMbXhwYm1zc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG14cGMzUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCeExtOWlhbVZqZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1YkdGdFltUmhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNXdZWEpsYm5Nc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG1KdmIyd3NYRzRnSUNBZ0lDQWdJQ0FnSUNCeExtNTFiV0psY2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1YzNSeWFXNW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWtZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzVrZFhKaGRHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXViblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1ZG1GeWFXRmliR1ZjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0JwYm1SbGVEb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lGQXVjMlZ4VFdGd0tIRXVZWFJ2YlN3Z1VDNWhiSFFvY1M1a2IzUlFiM04wWm1sNExDQnhMbWx1WkdWNFVHOXpkR1pwZUN3Z2NTNW1kVzVqZEdsdmJsQnZjM1JtYVhncExtMWhibmtvS1N3Z0tHOWlhaXdnY0c5emRHWnBlR1Z6S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdjbVZ6ZFd4MElEMGdiMkpxTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdjRzl6ZENCdlppQndiM04wWm1sNFpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSEJ2YzNRdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVpHOTBYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JGZUhCeVpYTnphVzl1Y3k1cGJtUmxlQ2h5WlhOMWJIUXNJRVY0Y0hKbGMzTnBiMjV6TG14cGRHVnlZV3dvY0c5emRDNWxlSEJ5S1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1sdVpHVjRYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JGZUhCeVpYTnphVzl1Y3k1cGJtUmxlQ2h5WlhOMWJIUXNJSEJ2YzNRdVpYaHdjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVoxYm1OMGFXOXVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JGZUhCeVpYTnphVzl1Y3k1bWRXNWpLSEpsYzNWc2RDd2djRzl6ZEM1bGVIQnljeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJRzVsWjJGMFpXUTZJQ2h4S1NBOVBpQlFMbk5sY1UxaGNDaFFMbk4wY21sdVp5aGNJaUZjSWlrc0lIRXVhVzVrWlhnc0lDaGZMQ0JtYVdWc1pDa2dQVDRnUlhod2NtVnpjMmx2Ym5NdWJtVm5ZWFJsS0dacFpXeGtLU2t1WkdWell5aGNJbTVsWjJGMFpXUWdabWxsYkdSY0lpa3NYRzRnSUNBZ2NHRnlaVzV6T2lBb2NTa2dQVDRnY1M1bGVIQnlaWE56YVc5dUxuUnlhVzBvVUM1dmNIUlhhR2wwWlhOd1lXTmxLUzUzY21Gd0tGQXVjM1J5YVc1bktGd2lLRndpS1N3Z1VDNXpkSEpwYm1jb1hDSXBYQ0lwS1N4Y2JpQWdJQ0JzWVcxaVpHRTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQlFMbk5sY1UxaGNDaGNiaUFnSUNBZ0lDQWdJQ0FnSUZCU1NVMUpWRWxXUlZNdWFXUmxiblJwWm1sbGNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNXpaWEJDZVNoUUxuTjBjbWx1WnloY0lpeGNJaWt1ZEhKcGJTaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNTNjbUZ3S0ZBdWMzUnlhVzVuS0Z3aUtGd2lLUzUwY21sdEtGQXViM0IwVjJocGRHVnpjR0ZqWlNrc0lGQXVjM1J5YVc1bktGd2lLVndpS1M1MGNtbHRLRkF1YjNCMFYyaHBkR1Z6Y0dGalpTa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1VDNXpkSEpwYm1jb1hDSTlQbHdpS1M1MGNtbHRLRkF1YjNCMFYyaHBkR1Z6Y0dGalpTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCeExtVjRjSEpsYzNOcGIyNHNYRzRnSUNBZ0lDQWdJQ0FnSUNBb2FXUmxiblFzSUY5cFoyNXZjbVVzSUhaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKc1lXMWlaR0ZjSWl3Z1lYSm5kVzFsYm5Sek9pQnBaR1Z1ZEN3Z2RtRnNkV1VnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnS1N4Y2JseHVJQ0FnSUdSdmRGQnZjM1JtYVhnNklDaHhLU0E5UGlCUUxuTmxjVTFoY0NoUUxuTjBjbWx1WnloY0lpNWNJaWtzSUZCU1NVMUpWRWxXUlZNdWFXUmxiblJwWm1sbGNpd2dLRjhzSUdWNGNISXBJRDArSUNoN0lIUjVjR1U2SUZ3aVpHOTBYQ0lzSUdWNGNISWdmU2twTEZ4dUlDQWdJR2x1WkdWNFVHOXpkR1pwZURvZ0tIRXBJRDArWEc0Z0lDQWdJQ0FnSUZBdWMyVnhUV0Z3S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdVQzV6ZEhKcGJtY29YQ0piWENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnVUM1dmNIUlhhR2wwWlhOd1lXTmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NTNWxlSEJ5WlhOemFXOXVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1VDNXZjSFJYYUdsMFpYTndZV05sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdVQzV6ZEhKcGJtY29YQ0pkWENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0Y4c0lGOHlMQ0JsZUhCeUxDQmZNeXdnWHpRcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQmNJbWx1WkdWNFhDSXNJR1Y0Y0hJZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNCbWRXNWpkR2x2YmxCdmMzUm1hWGc2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JRTG5ObGNVMWhjQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lGQXVjM1J5YVc1bktGd2lLRndpS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJRkF1YjNCMFYyaHBkR1Z6Y0dGalpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdVpYaHdjbVZ6YzJsdmJpNXpaWEJDZVNoUUxuTjBjbWx1WnloY0lpeGNJaWt1ZEhKcGJTaFFMbTl3ZEZkb2FYUmxjM0JoWTJVcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUZBdWIzQjBWMmhwZEdWemNHRmpaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lGQXVjM1J5YVc1bktGd2lLVndpS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2hmTENCZk1Td2daWGh3Y25Nc0lGOHlMQ0JmTXlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSFI1Y0dVNklGd2lablZ1WTNScGIyNWNJaXdnWlhod2NuTWdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdLU3hjYmx4dUlDQWdJQzh2SUZSb1pTQndjbVZqWldSbGJtTmxJR2hwWlhKaGNtTm9lU0J2WmlCdmNHVnlZWFJ2Y25NZ0xTQnRkV3gwYVhCc2VTOWthWFpwWkdVc0lHRmtaQzl6ZFdKMGNtRmpkQ3dnWTI5dGNHRnlaU3dnWVc1a0lIUm9aVzRnWW05dmJHVmhiaUJ2Y0dWeVlYUnBiMjV6TGx4dUlDQWdJR0pwYm1GeWVVMTFiRVJwZGpvZ0tIRXBJRDArSUdOeVpXRjBaVUpwYm1GeWVWQmhjbk5sY2loeExtbHVaR1Y0TENCUVVrbE5TVlJKVmtWVExtSnBibUZ5ZVUxMWJFUnBkaXdnUlhod2NtVnpjMmx2Ym5NdVltbHVZWEo1VDNBcExGeHVJQ0FnSUdKcGJtRnllVkJzZFhOTmFXNTFjem9nS0hFcElEMCtJR055WldGMFpVSnBibUZ5ZVZCaGNuTmxjaWh4TG1KcGJtRnllVTExYkVScGRpd2dVRkpKVFVsVVNWWkZVeTVpYVc1aGNubFFiSFZ6VFdsdWRYTXNJRVY0Y0hKbGMzTnBiMjV6TG1KcGJtRnllVTl3S1N4Y2JpQWdJQ0JpYVc1aGNubERiMjF3WVhKbE9pQW9jU2tnUFQ0Z1kzSmxZWFJsUW1sdVlYSjVVR0Z5YzJWeUtIRXVZbWx1WVhKNVVHeDFjMDFwYm5WekxDQlFVa2xOU1ZSSlZrVlRMbUpwYm1GeWVVTnZiWEJoY21WUGNDd2dSWGh3Y21WemMybHZibk11WW1sdVlYSjVUM0FwTEZ4dUlDQWdJR0pwYm1GeWVVSnZiMnhsWVc0NklDaHhLU0E5UGx4dUlDQWdJQ0FnSUNCamNtVmhkR1ZDYVc1aGNubFFZWEp6WlhJb2NTNWlhVzVoY25sRGIyMXdZWEpsTENCUVVrbE5TVlJKVmtWVExtSnBibUZ5ZVVGdVpFOXdMbTl5S0ZCU1NVMUpWRWxXUlZNdVltbHVZWEo1VDNKUGNDa3NJRVY0Y0hKbGMzTnBiMjV6TG1KcGJtRnllVTl3S1N4Y2JpQWdJQ0JpYVc1aGNubFBjRG9nS0hFcElEMCtJSEV1WW1sdVlYSjVRbTl2YkdWaGJpeGNibHh1SUNBZ0lHVjRjSEpsYzNOcGIyNDZJQ2h4S1NBOVBpQnhMbUpwYm1GeWVVOXdMRnh1ZlNrN1hHNWNiaTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTh2WEc0dkx5QlJkV1Z5ZVNCTVlXNW5kV0ZuWlNBdkwxeHVMeTh2THk4dkx5OHZMeTh2THk4dkx5OHZMeTljYmx4dUx5b3FJRk4xY0hCdmNuUmxaQ0IwZVhCbGN5QnBiaUIwYUdVZ1ozSmhiVzFoY2lCbWIzSWdhVzVrWlhnZ2NYVmxjbWxsY3k0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdVWFZsY25sTVlXNW5kV0ZuWlNCN1hHNGdJQ0FnY1hWbGNubFVZV2M2SUVsdVpHVjRWR0ZuWjJWa08xeHVJQ0FnSUhGMVpYSjVTV1E2SUVsdVpHVjRTV1E3WEc0Z0lDQWdjWFZsY25sVWVYQmxPaUJKYm1SbGVGUjVjR1ZrTzF4dUlDQWdJSEYxWlhKNVVHRjBhRG9nU1c1a1pYaFFZWFJvTzF4dUlDQWdJSEYxWlhKNVVHRnlaVzUwVDJZNklFbHVaR1Y0VUdGeVpXNTBUMlk3WEc0Z0lDQWdjWFZsY25sRGFHbHNaRTltT2lCSmJtUmxlRU5vYVd4a1QyWTdYRzRnSUNBZ2NYVmxjbmxUYVcxd2JHVk1hVzVyWldRNklFbHVaR1Y0VEdsdWEyVmtPMXh1SUNBZ0lIRjFaWEo1VEdsdWEyVmtPaUJKYm1SbGVFeHBibXRsWkR0Y2JpQWdJQ0J4ZFdWeWVVVjRhWE4wY3pvZ1NXNWtaWGhHYVdWc1pEdGNiaUFnSUNCeGRXVnllVkYxYjNSbFpFVjRjSEpsYzNOcGIyNDZJRWx1WkdWNFJYaHdjbVZ6YzJsdmJqdGNiaUFnSUNCeGRXVnllVkpoZDBWNGNISmxjM05wYjI0NklFbHVaR1Y0Ulhod2NtVnpjMmx2Ymp0Y2JpQWdJQ0J4ZFdWeWVVNWxaMkYwWlRvZ1NXNWtaWGhPYjNRN1hHNGdJQ0FnY1hWbGNubFFZWEpsYm5NNklFbHVaR1Y0VVhWbGNuazdYRzRnSUNBZ2NYVmxjbmxCZEc5dE9pQkpibVJsZUZGMVpYSjVPMXh1SUNBZ0lIRjFaWEo1UVc1a2N6b2dTVzVrWlhoUmRXVnllVHRjYmlBZ0lDQnhkV1Z5ZVU5eWN6b2dTVzVrWlhoUmRXVnllVHRjYmlBZ0lDQnhkV1Z5ZVRvZ1NXNWtaWGhSZFdWeWVUdGNibjFjYmx4dUx5b3FYRzRnS2lCUVlYSnpaWElnWm05eUlIUm9aU0J4ZFdWeWVTQnNZVzVuZFdGblpTNGdSR2xrSUVrZ2NtVmhiR3g1SUc1bFpXUWdZU0J4ZFdWeWVTQnNZVzVuZFdGblpTQnBibk4wWldGa0lHOW1JR3AxYzNRZ1lTQmlaWFIwWlhJZ1ZVay9JRkJ5YjJKaFlteDVJRzV2ZEM1Y2JpQXFJRUoxZENCeGRXVnllU0JzWVc1bmRXRm5aWE1nWVhKbElHWjFiaUJtYjNJZ2RHaGxJSGRvYjJ4bElHWmhiV2xzZVNCaGJtUWdZWFFnYzI5dFpTQndiMmx1ZENCNWIzVWdaMlYwSUhOdklIVnpaV1FnZEc4Z2QzSnBkR2x1WnlCMGFHVnRJSFJvWVhSY2JpQXFJSGx2ZFNCa2IyNG5kQ0J6ZEc5d0lIUnZJSFJvYVc1cklHbG1JSGx2ZFNBcWJtVmxaQ29nZEc4Z2QzSnBkR1VnZEdobGJTQmhibmx0YjNKbExpQkpkQ2R6SUdkdmIyUWdkSGx3YVc1bklIQnlZV04wYVdObElHWnZjaUJsZG1WeWVXOXVaUzVjYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUZGVlJWSlpJRDBnVUM1amNtVmhkR1ZNWVc1bmRXRm5aVHhSZFdWeWVVeGhibWQxWVdkbFBpaDdYRzRnSUNBZ2NYVmxjbmxVWVdjNklDaGZLU0E5UGlCUVVrbE5TVlJKVmtWVExuUmhaeTV0WVhBb0tIWmhiSFZsS1NBOVBpQW9leUIwZVhCbE9pQmNJblJoWjJkbFpGd2lMQ0IyWVd4MVpTQjlLU2tzWEc0Z0lDQWdjWFZsY25sSlpEb2dLRjhwSUQwK0lHTnlaV0YwWlVaMWJtTjBhVzl1S0Z3aWFXUmNJaXdnVUZKSlRVbFVTVlpGVXk1emRISnBibWNwTG0xaGNDZ29XMThzSUdsa1hTa2dQVDRnS0hzZ2RIbHdaVG9nWENKcFpGd2lMQ0IyWVd4MVpUb2dhV1FnZlNrcExGeHVJQ0FnSUhGMVpYSjVWSGx3WlRvZ0tGOHBJRDArWEc0Z0lDQWdJQ0FnSUZBdWMzUnlhVzVuS0Z3aVFGd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xuUm9aVzRvVUZKSlRVbFVTVlpGVXk1cFpHVnVkR2xtYVdWeUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG0xaGNDZ29kbUZzZFdVcElEMCtJQ2g3SUhSNWNHVTZJRndpZEhsd1pXUmNJaXdnZG1Gc2RXVTZJSFpoYkhWbElIMHBLU3hjYmx4dUlDQWdJSEYxWlhKNVVHRjBhRG9nS0Y4cElEMCtYRzRnSUNBZ0lDQWdJR055WldGMFpVWjFibU4wYVc5dUtGQXVjbVZuWlhod0tDOWxQM0JoZEdndmFTa3VaR1Z6WXloY0lsdGxYWEJoZEdoY0lpa3NJRkJTU1UxSlZFbFdSVk11YzNSeWFXNW5LUzV0WVhBb0tGdG1kVzVqTENCd1lYUm9YU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJRndpY0dGMGFGd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUhCaGRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGVHRmpkRG9nWm5WdVl5NTBiMHh2ZDJWeVEyRnpaU2dwSUQwOVBTQmNJbVZ3WVhSb1hDSXNYRzRnSUNBZ0lDQWdJSDBwS1N4Y2JseHVJQ0FnSUhGMVpYSjVVR0Z5Wlc1MFQyWTZJQ2h4S1NBOVBseHVJQ0FnSUNBZ0lDQmpjbVZoZEdWR2RXNWpkR2x2YmloUUxuSmxaMlY0Y0NndmNHRnlaVzUwYjJaOGMzVndaWEowY21WbEwya3BMbVJsYzJNb1hDSndZWEpsYm5Sdlpsd2lLU3dnY1M1eGRXVnllU2t1YldGd0tDaGJablZ1WXl3Z1kyaHBiR1J5Wlc1ZEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSndZWEpsYm5RdGIyWmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHTm9hV3hrY21WdUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1amJIVnphWFpsT2lCbWRXNWpMblJ2VEc5M1pYSkRZWE5sS0NrZ1BUMDlJRndpYzNWd1pYSjBjbVZsWENJc1hHNGdJQ0FnSUNBZ0lIMHBLU3hjYmlBZ0lDQnhkV1Z5ZVVOb2FXeGtUMlk2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JqY21WaGRHVkdkVzVqZEdsdmJpaFFMbkpsWjJWNGNDZ3ZZMmhwYkdSdlpueHpkV0owY21WbEwya3BMbVJsYzJNb1hDSmphR2xzWkc5bVhDSXBMQ0J4TG5GMVpYSjVLUzV0WVhBb0tGdG1kVzVqTENCd1lYSmxiblJ6WFNrZ1BUNGdLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aVkyaHBiR1F0YjJaY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGNtVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBibU5zZFhOcGRtVTZJR1oxYm1NdWRHOU1iM2RsY2tOaGMyVW9LU0E5UFQwZ1hDSnpkV0owY21WbFhDSXNYRzRnSUNBZ0lDQWdJSDBwS1N4Y2JpQWdJQ0J4ZFdWeWVWTnBiWEJzWlV4cGJtdGxaRG9nS0Y4cElEMCtYRzRnSUNBZ0lDQWdJRkJTU1UxSlZFbFdSVk11YkdsdWF5NXRZWEFvS0d4cGJtc3BJRDArSUNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQmNJbXhwYm10bFpGd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyOTFjbU5sT2lCN0lIUjVjR1U2SUZ3aWJHbHVhMXdpTENCMllXeDFaVG9nYkdsdWF5QjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHlaV04wYVc5dU9pQmNJbWx1WTI5dGFXNW5YQ0lzWEc0Z0lDQWdJQ0FnSUgwcEtTeGNiaUFnSUNCeGRXVnllVXhwYm10bFpEb2dLSEVwSUQwK1hHNGdJQ0FnSUNBZ0lHTnlaV0YwWlVaMWJtTjBhVzl1S0ZBdWNtVm5aWGh3S0M5c2FXNXJjM1J2Zkd4cGJtdGxaR1p5YjIxOFkyOXVibVZqZEdWa0wya3BMbVJsYzJNb1hDSmpiMjV1WldOMFpXUmNJaWtzSUhFdWNYVmxjbmtwTG0xaGNDZ29XMloxYm1Nc0lITnZkWEpqWlYwcElEMCtJQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCY0lteHBibXRsWkZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzI5MWNtTmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHlaV04wYVc5dU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWjFibU11ZEc5TWIzZGxja05oYzJVb0tTQTlQU0JjSW14cGJtdHpkRzljSWlBL0lGd2lhVzVqYjIxcGJtZGNJaUE2SUdaMWJtTXVkRzlNYjNkbGNrTmhjMlVvS1NBOVBTQmNJbXhwYm10bFpHWnliMjFjSWlBL0lGd2liM1YwWjI5cGJtZGNJaUE2SUZ3aVltOTBhRndpTEZ4dUlDQWdJQ0FnSUNCOUtTa3NYRzRnSUNBZ2NYVmxjbmxGZUdsemRITTZJQ2hmS1NBOVBseHVJQ0FnSUNBZ0lDQmpjbVZoZEdWR2RXNWpkR2x2YmloUUxuSmxaMlY0Y0NndlpYaHBjM1J6TDJrcExtUmxjMk1vWENKbGVHbHpkSE5jSWlrc0lGQlNTVTFKVkVsV1JWTXVhV1JsYm5ScFptbGxjaTV2Y2loUVVrbE5TVlJKVmtWVExuTjBjbWx1WnlrcExtMWhjQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaGJYMloxYm1Nc0lHbGtaVzUwWFNrZ1BUNGdLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQmNJbVpwWld4a1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklHbGtaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU2xjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0J4ZFdWeWVWRjFiM1JsWkVWNGNISmxjM05wYjI0NklDaHhLU0E5UGx4dUlDQWdJQ0FnSUNCamNtVmhkR1ZHZFc1amRHbHZiaWhRTG5KbFoyVjRjQ2d2Wlhod2NpOXBLUzVrWlhOaktGd2laWGh3Y2x3aUtTd2dSVmhRVWtWVFUwbFBUaTVsZUhCeVpYTnphVzl1S1M1dFlYQW9LRnRmTENCbGVIQnlYU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJRndpWlhod2NtVnpjMmx2Ymx3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhod2NtVnpjMmx2YmpvZ1pYaHdjaXhjYmlBZ0lDQWdJQ0FnZlNrcExGeHVJQ0FnSUhGMVpYSjVVbUYzUlhod2NtVnpjMmx2YmpvZ0tIRXBJRDArSUVWWVVGSkZVMU5KVDA0dVltbHVZWEo1UTI5dGNHRnlaUzV0WVhBb0tHVjRjSElwSUQwK0lDaDdJSFI1Y0dVNklGd2laWGh3Y21WemMybHZibHdpTENCbGVIQnlaWE56YVc5dU9pQmxlSEJ5SUgwcEtTeGNibHh1SUNBZ0lIRjFaWEo1VUdGeVpXNXpPaUFvY1NrZ1BUNGdjUzV4ZFdWeWVTNTBjbWx0S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2t1ZDNKaGNDaFFMbk4wY21sdVp5aGNJaWhjSWlrc0lGQXVjM1J5YVc1bktGd2lLVndpS1Nrc1hHNGdJQ0FnY1hWbGNubE9aV2RoZEdVNklDaHhLU0E5UGx4dUlDQWdJQ0FnSUNCUUxuTjBjbWx1WnloY0lpRmNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXphMmx3S0ZBdWIzQjBWMmhwZEdWemNHRmpaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNTBhR1Z1S0hFdWNYVmxjbmxCZEc5dEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG0xaGNDZ29kbUZzZFdVcElEMCtJQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dYQ0p1YjNSY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1ME9pQjJZV3gxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwS1N4Y2JpQWdJQ0J4ZFdWeWVVRjBiMjA2SUNoeEtTQTlQbHh1SUNBZ0lDQWdJQ0JRTG1Gc2REeEpibVJsZUZGMVpYSjVQaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVjWFZsY25sUVlYSmxibk1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhMbkYxWlhKNVRtVm5ZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjUzV4ZFdWeWVWTnBiWEJzWlV4cGJtdGxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVjWFZsY25sVVlXY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCeExuRjFaWEo1Vkhsd1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWNYVmxjbmxKWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1Y1hWbGNubEZlR2x6ZEhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4TG5GMVpYSjVRMmhwYkdSUFppeGNiaUFnSUNBZ0lDQWdJQ0FnSUhFdWNYVmxjbmxRWVhKbGJuUlBaaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVjWFZsY25sTWFXNXJaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhMbkYxWlhKNVVHRjBhQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRXVjWFZsY25sUmRXOTBaV1JGZUhCeVpYTnphVzl1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnUlhod2NtVnpjMmx2Ym5NZ1lYSmxJR1Z6YzJWdWRHbGhiR3g1SUhSb1pTQmNJbU5oZEdOb0xXRnNiRndpSUc5bUlHOTBhR1Z5ZDJselpTQjFibkJoY25ObFlXSnNaU0IwWlhKdGN5d2djMjhnZEdobGVTQnphRzkxYkdRZ1oyOGdZV0p6YjJ4MWRHVWdiR0Z6ZEM1Y2JpQWdJQ0FnSUNBZ0lDQWdJSEV1Y1hWbGNubFNZWGRGZUhCeVpYTnphVzl1WEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnY1hWbGNubEJibVJ6T2lBb2NTa2dQVDVjYmlBZ0lDQWdJQ0FnWTNKbFlYUmxRbWx1WVhKNVVHRnljMlZ5S0hFdWNYVmxjbmxCZEc5dExDQlFVa2xOU1ZSSlZrVlRMbUpwYm1GeWVVRnVaRTl3TENBb2JHVm1kQ3dnWDI5d0xDQnlhV2RvZENrZ1BUNGdLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aVlXNWtYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2dXMnhsWm5Rc0lISnBaMmgwWFN4Y2JpQWdJQ0FnSUNBZ2ZTa3BMRnh1SUNBZ0lIRjFaWEo1VDNKek9pQW9jU2tnUFQ1Y2JpQWdJQ0FnSUNBZ1kzSmxZWFJsUW1sdVlYSjVVR0Z5YzJWeUtIRXVjWFZsY25sQmJtUnpMQ0JRVWtsTlNWUkpWa1ZUTG1KcGJtRnllVTl5VDNBc0lDaHNaV1owTENCZmIzQXNJSEpwWjJoMEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSnZjbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITTZJRnRzWldaMExDQnlhV2RvZEYwc1hHNGdJQ0FnSUNBZ0lIMHBLU3hjYmlBZ0lDQnhkV1Z5ZVRvZ0tIRXBJRDArSUhFdWNYVmxjbmxQY25NdWRISnBiU2hRTG05d2RGZG9hWFJsYzNCaFkyVXBMRnh1ZlNrN1hHNWNiaThxS2lCU1pYUjFjbTRnWVNCdVpYY2djR0Z5YzJWeUlIZG9hV05vSUdWNFpXTjFkR1Z6SUhSb1pTQjFibVJsY214NWFXNW5JSEJoY25ObGNpQmhibVFnY21WMGRYSnVjeUJwZENkeklISmhkeUJ6ZEhKcGJtY2djbVZ3Y21WelpXNTBZWFJwYjI0dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMkZ3ZEhWeVpWSmhkenhVUGloaVlYTmxPaUJRTGxCaGNuTmxjanhVUGlrNklGQXVVR0Z5YzJWeVBGdFVMQ0J6ZEhKcGJtZGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlGQXVZM1Z6ZEc5dEtDaGZjM1ZqWTJWemN5d2dYMlpoYVd4MWNtVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNocGJuQjFkQ3dnYVNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSEpsYzNWc2RDQTlJQ2hpWVhObElHRnpJR0Z1ZVNrdVh5aHBibkIxZEN3Z2FTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWEpsYzNWc2RDNXpkR0YwZFhNcElISmxkSFZ5YmlCeVpYTjFiSFE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQnlaWE4xYkhRc0lIc2dkbUZzZFdVNklGdHlaWE4xYkhRdWRtRnNkV1VzSUdsdWNIVjBMbk4xWW5OMGNtbHVaeWhwTENCeVpYTjFiSFF1YVc1a1pYZ3BYU0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOUtUdGNibjFjYmx4dUx5b3FJRU55WldGMFpTQmhJR3hsWm5RdFlYTnpiMk5wWVhScGRtVWdZbWx1WVhKNUlIQmhjbk5sY2lCM2FHbGphQ0J3WVhKelpYTWdkR2hsSUdkcGRtVnVJSE4xWWkxbGJHVnRaVzUwSUdGdVpDQnpaWEJoY21GMGIzSXVJRWhoYm1Sc1pYTWdkMmhwZEdWemNHRmpaUzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZDYVc1aGNubFFZWEp6WlhJOFZDd2dWVDRvWEc0Z0lDQWdZMmhwYkdRNklGQXVVR0Z5YzJWeVBGUStMRnh1SUNBZ0lITmxjRG9nVUM1UVlYSnpaWEk4VlQ0c1hHNGdJQ0FnWTI5dFltbHVaVG9nS0dFNklGUXNJR0k2SUZVc0lHTTZJRlFwSUQwK0lGUmNiaWs2SUZBdVVHRnljMlZ5UEZRK0lIdGNiaUFnSUNCeVpYUjFjbTRnVUM1elpYRk5ZWEFvWTJocGJHUXNJRkF1YzJWeEtGQXViM0IwVjJocGRHVnpjR0ZqWlN3Z2MyVndMQ0JRTG05d2RGZG9hWFJsYzNCaFkyVXNJR05vYVd4a0tTNXRZVzU1S0Nrc0lDaG1hWEp6ZEN3Z2NtVnpkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvY21WemRDNXNaVzVuZEdnZ1BUMGdNQ2tnY21WMGRYSnVJR1pwY25OME8xeHVYRzRnSUNBZ0lDQWdJR3hsZENCdWIyUmxJRDBnWTI5dFltbHVaU2htYVhKemRDd2djbVZ6ZEZzd1hWc3hYU3dnY21WemRGc3dYVnN6WFNrN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ01Uc2dhVzVrWlhnZ1BDQnlaWE4wTG14bGJtZDBhRHNnYVc1a1pYZ3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdibTlrWlNBOUlHTnZiV0pwYm1Vb2JtOWtaU3dnY21WemRGdHBibVJsZUYxYk1WMHNJSEpsYzNSYmFXNWtaWGhkV3pOZEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibTlrWlR0Y2JpQWdJQ0I5S1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVWdZU0J3WVhKelpYSWdkMmhwWTJnZ2NHRnljMlZ6SUZ4Y1BHWjFibU4wYVc5dVhGdytLRnhjUEdGeVozTmNYRDRwTGx4dUlDb2dLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqY21WaGRHVkdkVzVqZEdsdmJqeFVQaWhtZFc1ak9pQnpkSEpwYm1jZ2ZDQlFMbEJoY25ObGNqeHpkSEpwYm1jK0xDQmhjbWR6T2lCUUxsQmhjbk5sY2p4VVBpazZJRkF1VUdGeWMyVnlQRnR6ZEhKcGJtY3NJRlJkUGlCN1hHNGdJQ0FnWTI5dWMzUWdjbVZoYkVaMWJtTWdQU0IwZVhCbGIyWWdablZ1WXlBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUZBdWMzUnlhVzVuS0daMWJtTXBJRG9nWm5WdVl6dGNiaUFnSUNCeVpYUjFjbTRnVUM1elpYRk5ZWEFvWEc0Z0lDQWdJQ0FnSUhKbFlXeEdkVzVqTG5OcmFYQW9VQzV2Y0hSWGFHbDBaWE53WVdObEtTeGNiaUFnSUNBZ0lDQWdZWEpuY3k1MGNtbHRLRkF1YjNCMFYyaHBkR1Z6Y0dGalpTa3VkM0poY0NoUUxuTjBjbWx1WnloY0lpaGNJaWtzSUZBdWMzUnlhVzVuS0Z3aUtWd2lLU2tzWEc0Z0lDQWdJQ0FnSUNobUxDQmhLU0E5UGlCYlppd2dZVjFjYmlBZ0lDQXBPMXh1ZlZ4dVhHNHZLaW9nUTJoaGFXNXpJR0VnYkdsemRDQnZaaUJ3WVhKelpYSnpPeUIwYUdVZ1ptbHljM1FnYjI1bElHMTFjM1FnYzNWalkyVmxaQ3dnWW5WMElHWnZiR3h2ZDJsdVp5QnZibVZ6SUcxaGVTQm1ZV2xzSUhkcGRHaHZkWFFnWm1GcGJHbHVaeUIwYUdVZ2IzWmxjbUZzYkNCd1lYSnpaUzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamFHRnBiazl3ZER4VVBpaGlZWE5sT2lCUUxsQmhjbk5sY2p4VVBpd2dMaTR1Wm5WdVkzTTZJQ2dvY2pvZ1ZDa2dQVDRnVUM1UVlYSnpaWEk4VkQ0cFcxMHBPaUJRTGxCaGNuTmxjanhVUGlCN1hHNGdJQ0FnY21WMGRYSnVJRkF1WTNWemRHOXRLQ2hmYzNWalkyVnpjeXdnWDJaaGFXeDFjbVVwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaHBibkIxZEN3Z2FTa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhKbGMzVnNkQ0E5SUNoaVlYTmxJR0Z6SUdGdWVTa3VYeWhwYm5CMWRDd2dhU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhKbGMzVnNkQzV6ZEdGMGRYTXBJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdaMWJtTWdiMllnWm5WdVkzTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2JtVjRkQ0E5SUNobWRXNWpLSEpsYzNWc2RDNTJZV3gxWlNCaGN5QlVLU0JoY3lCaGJua3BMbDhvYVc1d2RYUXNJSEpsYzNWc2RDNXBibVJsZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0Z1WlhoMExuTjBZWFIxY3lrZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUc1bGVIUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdmU2s3WEc1OVhHNGlMQ0FpTHlvcVhHNGdLaUJBYlc5a2RXeGxJR1Y0Y0hKbGMzTnBiMjV6WEc0Z0tpOWNibWx0Y0c5eWRDQjdJRVJoZEdWVWFXMWxMQ0JFZFhKaGRHbHZiaUI5SUdaeWIyMGdYQ0pzZFhodmJsd2lPMXh1YVcxd2IzSjBJSHNnVEdsdWF5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMMnhwYm10Y0lqdGNibWx0Y0c5eWRDQjdJSEpsYm1SbGNrMXBibWx0WVd4RVlYUmxMQ0J5Wlc1a1pYSk5hVzVwYldGc1JIVnlZWFJwYjI0Z2ZTQm1jbTl0SUZ3aWRYUnBiSE12Ym05eWJXRnNhWHBsY25OY0lqdGNibHh1THk4Z1VtVXRaWGh3YjNKMGN5QnZaaUIxYzJWbWRXd2daMlZ1WlhKcFl5QjBlWEJsY3k1Y2JtVjRjRzl5ZENCN0lFeHBibXNnZlR0Y2JseHVMeW9xSUZOb2IzSjBhR0Z1WkNCbWIzSWdZU0J0WVhCd2FXNW5JR1p5YjIwZ2EyVjVjeUIwYnlCMllXeDFaWE11SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JFWVhSaFQySnFaV04wSUQwZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqdGNiaThxS2lCVWFHVWdiR2wwWlhKaGJDQjBlWEJsY3lCemRYQndiM0owWldRZ1lua2dkR2hsSUhGMVpYSjVJR1Z1WjJsdVpTNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFeHBkR1Z5WVd4VWVYQmxJRDFjYmlBZ0lDQjhJRndpWW05dmJHVmhibHdpWEc0Z0lDQWdmQ0JjSW01MWJXSmxjbHdpWEc0Z0lDQWdmQ0JjSW5OMGNtbHVaMXdpWEc0Z0lDQWdmQ0JjSW1SaGRHVmNJbHh1SUNBZ0lId2dYQ0prZFhKaGRHbHZibHdpWEc0Z0lDQWdmQ0JjSW14cGJtdGNJbHh1SUNBZ0lId2dYQ0poY25KaGVWd2lYRzRnSUNBZ2ZDQmNJbTlpYW1WamRGd2lYRzRnSUNBZ2ZDQmNJbVoxYm1OMGFXOXVYQ0pjYmlBZ0lDQjhJRndpYm5Wc2JGd2lPMXh1THlvcUlGUm9aU0J5WVhjZ2RtRnNkV1Z6SUhSb1lYUWdZU0JzYVhSbGNtRnNJR05oYmlCMFlXdGxJRzl1TGlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVEdsMFpYSmhiQ0E5WEc0Z0lDQWdmQ0JpYjI5c1pXRnVYRzRnSUNBZ2ZDQnVkVzFpWlhKY2JpQWdJQ0I4SUhOMGNtbHVaMXh1SUNBZ0lId2dSR0YwWlZScGJXVmNiaUFnSUNCOElFUjFjbUYwYVc5dVhHNGdJQ0FnZkNCTWFXNXJYRzRnSUNBZ2ZDQkJjbkpoZVR4TWFYUmxjbUZzUGx4dUlDQWdJSHdnUkdGMFlVOWlhbVZqZEZ4dUlDQWdJSHdnUm5WdVkzUnBiMjVjYmlBZ0lDQjhJRzUxYkd3N1hHNWNiaThxS2lCTllYQnpJSFJvWlNCemRISnBibWNnZEhsd1pTQjBieUJwZENkeklHVjRkR1Z5Ym1Gc0xDQkJVRWt0Wm1GamFXNW5JSEpsY0hKbGMyVnVkR0YwYVc5dUxpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1RHbDBaWEpoYkZKbGNISThWQ0JsZUhSbGJtUnpJRXhwZEdWeVlXeFVlWEJsUGlBOUlGUWdaWGgwWlc1a2N5QmNJbUp2YjJ4bFlXNWNJbHh1SUNBZ0lEOGdZbTl2YkdWaGJseHVJQ0FnSURvZ1ZDQmxlSFJsYm1SeklGd2liblZ0WW1WeVhDSmNiaUFnSUNBL0lHNTFiV0psY2x4dUlDQWdJRG9nVkNCbGVIUmxibVJ6SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0EvSUhOMGNtbHVaMXh1SUNBZ0lEb2dWQ0JsZUhSbGJtUnpJRndpWkhWeVlYUnBiMjVjSWx4dUlDQWdJRDhnUkhWeVlYUnBiMjVjYmlBZ0lDQTZJRlFnWlhoMFpXNWtjeUJjSW1SaGRHVmNJbHh1SUNBZ0lEOGdSR0YwWlZScGJXVmNiaUFnSUNBNklGUWdaWGgwWlc1a2N5QmNJbTUxYkd4Y0lseHVJQ0FnSUQ4Z2JuVnNiRnh1SUNBZ0lEb2dWQ0JsZUhSbGJtUnpJRndpYkdsdWExd2lYRzRnSUNBZ1B5Qk1hVzVyWEc0Z0lDQWdPaUJVSUdWNGRHVnVaSE1nWENKaGNuSmhlVndpWEc0Z0lDQWdQeUJCY25KaGVUeE1hWFJsY21Gc1BseHVJQ0FnSURvZ1ZDQmxlSFJsYm1SeklGd2liMkpxWldOMFhDSmNiaUFnSUNBL0lFUmhkR0ZQWW1wbFkzUmNiaUFnSUNBNklGUWdaWGgwWlc1a2N5QmNJbVoxYm1OMGFXOXVYQ0pjYmlBZ0lDQS9JRVoxYm1OMGFXOXVYRzRnSUNBZ09pQmhibms3WEc1Y2JpOHFLaUJCSUhkeVlYQndaV1FnYkdsMFpYSmhiQ0IyWVd4MVpTQjNhR2xqYUNCallXNGdZbVVnYzNkcGRHTm9aV1FnYjI0dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCWGNtRndjR1ZrVEdsMFpYSmhiQ0E5WEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbk4wY21sdVoxd2lQbHh1SUNBZ0lId2dUR2wwWlhKaGJGZHlZWEJ3WlhJOFhDSnVkVzFpWlhKY0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aVltOXZiR1ZoYmx3aVBseHVJQ0FnSUh3Z1RHbDBaWEpoYkZkeVlYQndaWEk4WENKa1lYUmxYQ0krWEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbVIxY21GMGFXOXVYQ0krWEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbXhwYm10Y0lqNWNiaUFnSUNCOElFeHBkR1Z5WVd4WGNtRndjR1Z5UEZ3aVlYSnlZWGxjSWo1Y2JpQWdJQ0I4SUV4cGRHVnlZV3hYY21Gd2NHVnlQRndpYjJKcVpXTjBYQ0krWEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbVoxYm1OMGFXOXVYQ0krWEc0Z0lDQWdmQ0JNYVhSbGNtRnNWM0poY0hCbGNqeGNJbTUxYkd4Y0lqNDdYRzVjYmk4cUtpQkRiMjFpYVc1bGN5QmhJSFJsZUhSMVlXd2dkSGx3WlNCaGJtUWdkbUZzZFdVN0lIQnlhVzFoY21sc2VTQjFjMlZtZFd3Z1ptOXlJSE4zYVhSamFHbHVaeUJ2Ymk1Y2JpQXFJRUJvYVdSa1pXNWNiaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCTWFYUmxjbUZzVjNKaGNIQmxjanhVSUdWNGRHVnVaSE1nVEdsMFpYSmhiRlI1Y0dVK0lIdGNiaUFnSUNCMGVYQmxPaUJVTzF4dUlDQWdJSFpoYkhWbE9pQk1hWFJsY21Gc1VtVndjanhVUGp0Y2JuMWNibHh1THlvcVhHNGdLaUJBYUdsa1pHVnVYRzRnS2lBZ1ZYUnBiR2wwZVNCc2FXSnlZWEo1SUdadmNpQm9ZVzVrYkdsdVp5QnNhWFJsY21Gc0lIWmhiSFZsY3k0Z0tpOWNibVY0Y0c5eWRDQnVZVzFsYzNCaFkyVWdUR2wwWlhKaGJITWdlMXh1SUNBZ0lDOHFLaUJUWlhSMGFXNW5jeUIxYzJWa0lIZG9aVzRnWm05eWJXRjBkR2x1WnlCc2FYUmxjbUZzSUhaaGJIVmxjeUIwYnlCMFpYaDBMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQnBiblJsY21aaFkyVWdWRzlUZEhKcGJtZFRaWFIwYVc1bmN5QjdYRzRnSUNBZ0lDQWdJQzhxS2lCWGFHRjBJR0VnYm5Wc2JDQjNhV3hzSUhKbGJtUmxjaUJoY3k0Z0tpOWNiaUFnSUNBZ0lDQWdiblZzYkZKbGNISmxjMlZ1ZEdGMGFXOXVPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0lDQWdJQ0FnTHlvcUlFUmhkR1VnWm05eWJXRjBMaUFxTDF4dUlDQWdJQ0FnSUNCa1lYUmxSbTl5YldGME9pQnpkSEpwYm1jN1hHNWNiaUFnSUNBZ0lDQWdMeW9xSUVSaGRHVXRkR2x0WlNCbWIzSnRZWFF1SUNvdlhHNGdJQ0FnSUNBZ0lHUmhkR1ZVYVcxbFJtOXliV0YwT2lCemRISnBibWM3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUZOaGJtVXNJRVZ1WjJ4cGMyZ3RZbUZ6WldRZ1pHVm1ZWFZzZEhNZ1ptOXlJR1JoZEdVZ1ptOXliV0YwY3k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWTI5dWMzUWdSRVZHUVZWTVZGOVVUMTlUVkZKSlRrYzZJRlJ2VTNSeWFXNW5VMlYwZEdsdVozTWdQU0I3WEc0Z0lDQWdJQ0FnSUc1MWJHeFNaWEJ5WlhObGJuUmhkR2x2YmpvZ1hDSXRYQ0lzWEc1Y2JpQWdJQ0FnSUNBZ1pHRjBaVVp2Y20xaGREb2dYQ0pOVFUxTklHUmtMQ0I1ZVhsNVhDSXNYRzRnSUNBZ0lDQWdJR1JoZEdWVWFXMWxSbTl5YldGME9pQmNJbWc2YlcwZ1lTQXRJRTFOVFUwZ1pHUXNJSGw1ZVhsY0lpeGNiaUFnSUNCOU8xeHVYRzRnSUNBZ0x5b3FJRU52Ym5abGNuUWdZVzRnWVhKaWFYUnlZWEo1SUhaaGJIVmxJR2x1ZEc4Z1lTQnlaV0Z6YjI1aFlteGxMQ0JOWVhKclpHOTNiaTFtY21sbGJtUnNlU0J6ZEhKcGJtY2dhV1lnY0c5emMybGliR1V1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJSFJ2VTNSeWFXNW5LRnh1SUNBZ0lDQWdJQ0JtYVdWc1pEb2dZVzU1TEZ4dUlDQWdJQ0FnSUNCelpYUjBhVzVuT2lCVWIxTjBjbWx1WjFObGRIUnBibWR6SUQwZ1JFVkdRVlZNVkY5VVQxOVRWRkpKVGtjc1hHNGdJQ0FnSUNBZ0lISmxZM1Z5YzJsMlpUb2dZbTl2YkdWaGJpQTlJR1poYkhObFhHNGdJQ0FnS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJSGR5WVhCd1pXUWdQU0IzY21Gd1ZtRnNkV1VvWm1sbGJHUXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYZHlZWEJ3WldRcElISmxkSFZ5YmlCelpYUjBhVzVuTG01MWJHeFNaWEJ5WlhObGJuUmhkR2x2Ymp0Y2JseHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIZHlZWEJ3WldRdWRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltNTFiR3hjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYzJWMGRHbHVaeTV1ZFd4c1VtVndjbVZ6Wlc1MFlYUnBiMjQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWMzUnlhVzVuWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhkeVlYQndaV1F1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYm5WdFltVnlYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVltOXZiR1ZoYmx3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCY0lsd2lJQ3NnZDNKaGNIQmxaQzUyWVd4MVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pzYVc1clhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZHlZWEJ3WldRdWRtRnNkV1V1YldGeWEyUnZkMjRvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSm1kVzVqZEdsdmJsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJanhtZFc1amRHbHZiajVjSWp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmhjbkpoZVZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J5WlhOMWJIUWdQU0JjSWx3aU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5WldOMWNuTnBkbVVwSUhKbGMzVnNkQ0FyUFNCY0lsdGNJanRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdLejBnZDNKaGNIQmxaQzUyWVd4MVpTNXRZWEFvS0dZcElEMCtJSFJ2VTNSeWFXNW5LR1lzSUhObGRIUnBibWNzSUhSeWRXVXBLUzVxYjJsdUtGd2lMQ0JjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEpsWTNWeWMybDJaU2tnY21WemRXeDBJQ3M5SUZ3aVhWd2lPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liMkpxWldOMFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWENKN0lGd2lJQ3RjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG1WdWRISnBaWE1vZDNKaGNIQmxaQzUyWVd4MVpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNXRZWEFvS0dVcElEMCtJR1ZiTUYwZ0t5QmNJam9nWENJZ0t5QjBiMU4wY21sdVp5aGxXekZkTENCelpYUjBhVzVuTENCMGNuVmxLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzVxYjJsdUtGd2lMQ0JjSWlrZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JjSWlCOVhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SaGRHVmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ1WkdWeVRXbHVhVzFoYkVSaGRHVW9kM0poY0hCbFpDNTJZV3gxWlN3Z2MyVjBkR2x1Wnk1a1lYUmxSbTl5YldGMExDQnpaWFIwYVc1bkxtUmhkR1ZVYVcxbFJtOXliV0YwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmtkWEpoZEdsdmJsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaVzVrWlhKTmFXNXBiV0ZzUkhWeVlYUnBiMjRvZDNKaGNIQmxaQzUyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nVjNKaGNDQmhJR3hwZEdWeVlXd2dkbUZzZFdVZ2MyOGdlVzkxSUdOaGJpQnpkMmwwWTJnZ2IyNGdhWFFnWldGemFXeDVMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQjNjbUZ3Vm1Gc2RXVW9kbUZzT2lCTWFYUmxjbUZzS1RvZ1YzSmhjSEJsWkV4cGRHVnlZV3dnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOT2RXeHNLSFpoYkNrcElISmxkSFZ5YmlCN0lIUjVjR1U2SUZ3aWJuVnNiRndpTENCMllXeDFaVG9nZG1Gc0lIMDdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6VG5WdFltVnlLSFpoYkNrcElISmxkSFZ5YmlCN0lIUjVjR1U2SUZ3aWJuVnRZbVZ5WENJc0lIWmhiSFZsT2lCMllXd2dmVHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVhOVGRISnBibWNvZG1Gc0tTa2djbVYwZFhKdUlIc2dkSGx3WlRvZ1hDSnpkSEpwYm1kY0lpd2dkbUZzZFdVNklIWmhiQ0I5TzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNocGMwSnZiMnhsWVc0b2RtRnNLU2tnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0ppYjI5c1pXRnVYQ0lzSUhaaGJIVmxPaUIyWVd3Z2ZUdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWE5FZFhKaGRHbHZiaWgyWVd3cEtTQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltUjFjbUYwYVc5dVhDSXNJSFpoYkhWbE9pQjJZV3dnZlR0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTkVZWFJsS0haaGJDa3BJSEpsZEhWeWJpQjdJSFI1Y0dVNklGd2laR0YwWlZ3aUxDQjJZV3gxWlRvZ2RtRnNJSDA3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselFYSnlZWGtvZG1Gc0tTa2djbVYwZFhKdUlIc2dkSGx3WlRvZ1hDSmhjbkpoZVZ3aUxDQjJZV3gxWlRvZ2RtRnNJSDA3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselRHbHVheWgyWVd3cEtTQnlaWFIxY200Z2V5QjBlWEJsT2lCY0lteHBibXRjSWl3Z2RtRnNkV1U2SUhaaGJDQjlPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzBaMWJtTjBhVzl1S0haaGJDa3BJSEpsZEhWeWJpQjdJSFI1Y0dVNklGd2lablZ1WTNScGIyNWNJaXdnZG1Gc2RXVTZJSFpoYkNCOU8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHBjMDlpYW1WamRDaDJZV3dwS1NCeVpYUjFjbTRnZXlCMGVYQmxPaUJjSW05aWFtVmpkRndpTENCMllXeDFaVG9nZG1Gc0lIMDdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1VtVmpkWEp6YVhabGJIa2diV0Z3SUdOdmJYQnNaWGdnYjJKcVpXTjBjeUJoZENCMGFHVWdiR1ZoZG1WekxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFlYQk1aV0YyWlhNb2RtRnNPaUJNYVhSbGNtRnNMQ0JtZFc1ak9pQW9kRG9nVEdsMFpYSmhiQ2tnUFQ0Z1RHbDBaWEpoYkNrNklFeHBkR1Z5WVd3Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOUFltcGxZM1FvZG1Gc0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSEpsYzNWc2REb2dSR0YwWVU5aWFtVmpkQ0E5SUh0OU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnVzJ0bGVTd2dkbUZzZFdWZElHOW1JRTlpYW1WamRDNWxiblJ5YVdWektIWmhiQ2twSUhKbGMzVnNkRnRyWlhsZElEMGdiV0Z3VEdWaGRtVnpLSFpoYkhWbExDQm1kVzVqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9hWE5CY25KaGVTaDJZV3dwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2NtVnpkV3gwT2lCTWFYUmxjbUZzVzEwZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElIWmhiSFZsSUc5bUlIWmhiQ2tnY21WemRXeDBMbkIxYzJnb2JXRndUR1ZoZG1WektIWmhiSFZsTENCbWRXNWpLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWjFibU1vZG1Gc0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJEYUdWamF5QnBaaUIwZDI4Z1lYSmlhWFJ5WVhKNUlHeHBkR1Z5WVd4eklHRnlaU0JsY1hWaGJDNGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pYRjFZV3h6S0dacGNuTjBPaUJNYVhSbGNtRnNJSHdnZFc1a1pXWnBibVZrTENCelpXTnZibVE2SUV4cGRHVnlZV3dnZkNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHTnZiWEJoY21Vb1ptbHljM1FzSUhObFkyOXVaQ2tnUFQwZ01EdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRMjl0Y0dGeVpTQjBkMjhnWVhKaWFYUnlZWEo1SUVwaGRtRlRZM0pwY0hRZ2RtRnNkV1Z6TGlCUWNtOWtkV05sY3lCaElIUnZkR0ZzSUc5eVpHVnlhVzVuSUc5MlpYSWdRVTVaSUhCdmMzTnBZbXhsSUdSaGRHRmpiM0psSUhaaGJIVmxMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQmpiMjF3WVhKbEtGeHVJQ0FnSUNBZ0lDQjJZV3d4T2lCTWFYUmxjbUZzSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQjJZV3d5T2lCTWFYUmxjbUZzSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQnNhVzVyVG05eWJXRnNhWHBsY2o4NklDaHNhVzVyT2lCemRISnBibWNwSUQwK0lITjBjbWx1WjF4dUlDQWdJQ2s2SUc1MWJXSmxjaUI3WEc0Z0lDQWdJQ0FnSUM4dklGSmxabVZ5Wlc1alpTQmxjWFZoYkdsMGVTQXRJSE5vYjNKMElHTnBjbU4xYVhRdVhHNGdJQ0FnSUNBZ0lHbG1JQ2gyWVd3eElEMDlQU0IyWVd3eUtTQnlaWFIxY200Z01EdGNibHh1SUNBZ0lDQWdJQ0F2THlCSVlXNWtiR1VnZFc1a1pXWnBibVZrTDI1MWJHeHpJR1pwY25OMExseHVJQ0FnSUNBZ0lDQnBaaUFvZG1Gc01TQTlQVDBnZFc1a1pXWnBibVZrS1NCMllXd3hJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdhV1lnS0haaGJESWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2RtRnNNaUE5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJR2xtSUNoMllXd3hJRDA5UFNCdWRXeHNJQ1ltSUhaaGJESWdQVDA5SUc1MWJHd3BJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2gyWVd3eElEMDlQU0J1ZFd4c0tTQnlaWFIxY200Z0xURTdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLSFpoYkRJZ1BUMDlJRzUxYkd3cElISmxkSFZ5YmlBeE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUVFZ2JtOXVMVzUxYkd3Z2RtRnNkV1VnYm05M0lIZG9hV05vSUhkbElHTmhiaUIzY21Gd0lDWWdZMjl0Y0dGeVpTQnZiaTVjYmlBZ0lDQWdJQ0FnYkdWMElIZHlZWEF4SUQwZ2QzSmhjRlpoYkhWbEtIWmhiREVwTzF4dUlDQWdJQ0FnSUNCc1pYUWdkM0poY0RJZ1BTQjNjbUZ3Vm1Gc2RXVW9kbUZzTWlrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0hkeVlYQXhJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdkM0poY0RJZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJREE3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0hkeVlYQXhJRDA5UFNCMWJtUmxabWx1WldRcElISmxkSFZ5YmlBdE1UdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9kM0poY0RJZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJREU3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdVMmh2Y25RdFkybHlZM1ZwZENCdmJpQmthV1ptWlhKbGJuUWdkSGx3WlhNZ2IzSWdiMjRnY21WbVpYSmxibU5sSUdWeGRXRnNhWFI1TGx4dUlDQWdJQ0FnSUNCcFppQW9kM0poY0RFdWRIbHdaU0FoUFNCM2NtRndNaTUwZVhCbEtTQnlaWFIxY200Z2QzSmhjREV1ZEhsd1pTNXNiMk5oYkdWRGIyMXdZWEpsS0hkeVlYQXlMblI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZDNKaGNERXVkbUZzZFdVZ1BUMDlJSGR5WVhBeUxuWmhiSFZsS1NCeVpYUjFjbTRnTUR0Y2JseHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIZHlZWEF4TG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKemRISnBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNERXVkbUZzZFdVdWJHOWpZV3hsUTI5dGNHRnlaU2gzY21Gd01pNTJZV3gxWlNCaGN5QnpkSEpwYm1jcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTUxYldKbGNsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoM2NtRndNUzUyWVd4MVpTQThJQ2gzY21Gd01pNTJZV3gxWlNCaGN5QnVkVzFpWlhJcEtTQnlaWFIxY200Z0xURTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCcFppQW9kM0poY0RFdWRtRnNkV1VnUFQwZ0tIZHlZWEF5TG5aaGJIVmxJR0Z6SUc1MWJXSmxjaWtwSUhKbGRIVnliaUF3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUF4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltNTFiR3hjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmliMjlzWldGdVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hkeVlYQXhMblpoYkhWbElEMDlJSGR5WVhBeUxuWmhiSFZsS1NCeVpYUjFjbTRnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSEpsZEhWeWJpQjNjbUZ3TVM1MllXeDFaU0EvSURFZ09pQXRNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc2FXNXJYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHeHBibXN4SUQwZ2QzSmhjREV1ZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUd4cGJtc3lJRDBnZDNKaGNESXVkbUZzZFdVZ1lYTWdUR2x1YXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdibTl5YldGc2FYcGxJRDBnYkdsdWEwNXZjbTFoYkdsNlpYSWdQejhnS0NoNE9pQnpkSEpwYm1jcElEMCtJSGdwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdWMlVnWTJGdUozUWdZMjl0Y0dGeVpTQmllU0JtYVd4bElHNWhiV1VnYjNJZ1pHbHpjR3hoZVN3Z2MybHVZMlVnZEdoaGRDQjNiM1ZzWkNCaWNtVmhheUJzYVc1cklHVnhkV0ZzYVhSNUxpQkRiMjF3WVhKbElHSjVJSEJoZEdndVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSEJoZEdoRGIyMXdZWEpsSUQwZ2JtOXliV0ZzYVhwbEtHeHBibXN4TG5CaGRHZ3BMbXh2WTJGc1pVTnZiWEJoY21Vb2JtOXliV0ZzYVhwbEtHeHBibXN5TG5CaGRHZ3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NHRjBhRU52YlhCaGNtVWdJVDBnTUNrZ2NtVjBkWEp1SUhCaGRHaERiMjF3WVhKbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnVkdobGJpQmpiMjF3WVhKbElHSjVJSFI1Y0dVdVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSFI1Y0dWRGIyMXdZWEpsSUQwZ2JHbHVhekV1ZEhsd1pTNXNiMk5oYkdWRGIyMXdZWEpsS0d4cGJtc3lMblI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbFEyOXRjR0Z5WlNBaFBTQXdLU0J5WlhSMWNtNGdkSGx3WlVOdmJYQmhjbVU3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlVhR1Z1SUdOdmJYQmhjbVVnWW5rZ2MzVmljR0YwYUNCbGVHbHpkR1Z1WTJVdVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3hwYm1zeExuTjFZbkJoZEdnZ0ppWWdJV3hwYm1zeUxuTjFZbkJoZEdncElISmxkSFZ5YmlBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doYkdsdWF6RXVjM1ZpY0dGMGFDQW1KaUJzYVc1ck1pNXpkV0p3WVhSb0tTQnlaWFIxY200Z0xURTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGc2FXNXJNUzV6ZFdKd1lYUm9JQ1ltSUNGc2FXNXJNaTV6ZFdKd1lYUm9LU0J5WlhSMWNtNGdNRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklGTnBibU5sSUdKdmRHZ2dhR0YyWlNCaElITjFZbkJoZEdnc0lHTnZiWEJoY21VZ1lua2djM1ZpY0dGMGFDNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0tHeHBibXN4TG5OMVluQmhkR2dnUHo4Z1hDSmNJaWt1Ykc5allXeGxRMjl0Y0dGeVpTaHNhVzVyTWk1emRXSndZWFJvSUQ4L0lGd2lYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltUmhkR1ZjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNERXVkbUZzZFdVZ1BDQW9kM0poY0RJdWRtRnNkV1VnWVhNZ1JHRjBaVlJwYldVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnTFRGY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIzY21Gd01TNTJZV3gxWlM1bGNYVmhiSE1vZDNKaGNESXVkbUZzZFdVZ1lYTWdSR0YwWlZScGJXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z01GeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2laSFZ5WVhScGIyNWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkM0poY0RFdWRtRnNkV1VnUENBb2QzSmhjREl1ZG1Gc2RXVWdZWE1nUkhWeVlYUnBiMjRwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdMVEZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ09pQjNjbUZ3TVM1MllXeDFaUzVsY1hWaGJITW9kM0poY0RJdWRtRnNkV1VnWVhNZ1JIVnlZWFJwYjI0cFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnTUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJREU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVlYSnlZWGxjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdaakVnUFNCM2NtRndNUzUyWVd4MVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaWFFnWmpJZ1BTQjNjbUZ3TWk1MllXeDFaU0JoY3lCaGJubGJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwYm1SbGVDQTlJREE3SUdsdVpHVjRJRHdnVFdGMGFDNXRhVzRvWmpFdWJHVnVaM1JvTENCbU1pNXNaVzVuZEdncE95QnBibVJsZUNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQmpiMjF3SUQwZ1kyOXRjR0Z5WlNobU1WdHBibVJsZUYwc0lHWXlXMmx1WkdWNFhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpiMjF3SUNFOUlEQXBJSEpsZEhWeWJpQmpiMjF3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWmpFdWJHVnVaM1JvSUMwZ1pqSXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTlpYW1WamRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hsZENCdk1TQTlJSGR5WVhBeExuWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnZNaUE5SUhkeVlYQXlMblpoYkhWbElHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElHc3hJRDBnUVhKeVlYa3Vabkp2YlNoUFltcGxZM1F1YTJWNWN5aHZNU2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnJNaUE5SUVGeWNtRjVMbVp5YjIwb1QySnFaV04wTG10bGVYTW9ieklwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCck1TNXpiM0owS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2F6SXVjMjl5ZENncE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUd0bGVVTnZiWEJoY21VZ1BTQmpiMjF3WVhKbEtHc3hMQ0JyTWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVVOdmJYQmhjbVVnSVQwZ01Da2djbVYwZFhKdUlHdGxlVU52YlhCaGNtVTdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JyWlhrZ2IyWWdhekVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdOdmJYQWdQU0JqYjIxd1lYSmxLRzh4VzJ0bGVWMHNJRzh5VzJ0bGVWMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMjl0Y0NBaFBTQXdLU0J5WlhSMWNtNGdZMjl0Y0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z01EdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ptZFc1amRHbHZibHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUF3TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcUlFWnBibVFnZEdobElHTnZjbkpsYzNCdmJtUnBibWNnWkdGMFlXTnZjbVVnZEhsd1pTQm1iM0lnWVc0Z1lYSmlhWFJ5WVhKNUlIWmhiSFZsTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUIwZVhCbFQyWW9kbUZzT2lCaGJua3BPaUJNYVhSbGNtRnNWSGx3WlNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3Vm1Gc2RXVW9kbUZzS1Q4dWRIbHdaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUkdWMFpYSnRhVzVsSUdsbUlIUm9aU0JuYVhabGJpQjJZV3gxWlNCcGN5QmNJblJ5ZFhSb2VWd2lJQ2hwTG1VdUxDQnBjeUJ1YjI0dGJuVnNiQ0JoYm1RZ2FHRnpJR1JoZEdFZ2FXNGdhWFFwTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzFSeWRYUm9lU2htYVdWc1pEb2dUR2wwWlhKaGJDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2QzSmhjSEJsWkNBOUlIZHlZWEJXWVd4MVpTaG1hV1ZzWkNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZDNKaGNIQmxaQ2tnY21WMGRYSnVJR1poYkhObE8xeHVYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9kM0poY0hCbFpDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liblZ0WW1WeVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZHlZWEJ3WldRdWRtRnNkV1VnSVQwZ01EdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p6ZEhKcGJtZGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkM0poY0hCbFpDNTJZV3gxWlM1c1pXNW5kR2dnUGlBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbUp2YjJ4bFlXNWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkM0poY0hCbFpDNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnNhVzVyWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNFaGQzSmhjSEJsWkM1MllXeDFaUzV3WVhSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVJoZEdWY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2QzSmhjSEJsWkM1MllXeDFaUzUwYjAxcGJHeHBjeWdwSUNFOUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpWkhWeVlYUnBiMjVjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxaQzUyWVd4MVpTNWhjeWhjSW5ObFkyOXVaSE5jSWlrZ0lUMGdNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdlltcGxZM1JjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVDJKcVpXTjBMbXRsZVhNb2QzSmhjSEJsWkM1MllXeDFaU2t1YkdWdVozUm9JRDRnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmhjbkpoZVZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1ZrTG5aaGJIVmxMbXhsYm1kMGFDQStJREE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWJuVnNiRndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ptZFc1amRHbHZibHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRVJsWlhBZ1kyOXdlU0JoSUdacFpXeGtMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQmtaV1Z3UTI5d2VUeFVJR1Y0ZEdWdVpITWdUR2wwWlhKaGJENG9abWxsYkdRNklGUXBPaUJVSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1pwWld4a0lEMDlQU0J1ZFd4c0lIeDhJR1pwWld4a0lEMDlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUJtYVdWc1pEdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1RHbDBaWEpoYkhNdWFYTkJjbkpoZVNobWFXVnNaQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9XMTBnWVhNZ1RHbDBaWEpoYkZ0ZEtTNWpiMjVqWVhRb1ptbGxiR1F1YldGd0tDaDJLU0E5UGlCa1pXVndRMjl3ZVNoMktTa3BJR0Z6SUZRN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9UR2wwWlhKaGJITXVhWE5QWW1wbFkzUW9abWxsYkdRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdjbVZ6ZFd4ME9pQlNaV052Y21ROGMzUnlhVzVuTENCTWFYUmxjbUZzUGlBOUlIdDlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ1cydGxlU3dnZG1Gc2RXVmRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLR1pwWld4a0tTa2djbVZ6ZFd4MFcydGxlVjBnUFNCa1pXVndRMjl3ZVNoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwSUdGeklGUTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1sbGJHUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUkdWMFpYSnRhVzVsSUdsbUlIUm9aU0IyWVd4MVpTQnBjeUJoSUhOMGNtbHVaeTRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5UZEhKcGJtY29kbUZzT2lCaGJua3BPaUIyWVd3Z2FYTWdjM1J5YVc1bklIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUjVjR1Z2WmlCMllXd2dQVDBnWENKemRISnBibWRjSWp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1JHVjBaWEp0YVc1bElHbG1JSFJvWlNCMllXeDFaU0JwY3lCaElHNTFiV0psY2k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOT2RXMWlaWElvZG1Gc09pQmhibmtwT2lCMllXd2dhWE1nYm5WdFltVnlJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQjJZV3dnUFQwZ1hDSnVkVzFpWlhKY0lqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxJR2xtSUhSb1pTQjJZV3gxWlNCcGN5QmhJR1JoZEdVdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdselJHRjBaU2gyWVd3NklHRnVlU2s2SUhaaGJDQnBjeUJFWVhSbFZHbHRaU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd3Z2FXNXpkR0Z1WTJWdlppQkVZWFJsVkdsdFpUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dSR1YwWlhKdGFXNWxJR2xtSUhSb1pTQjJZV3gxWlNCcGN5QmhJR1IxY21GMGFXOXVMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMFIxY21GMGFXOXVLSFpoYkRvZ1lXNTVLVG9nZG1Gc0lHbHpJRVIxY21GMGFXOXVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFpoYkNCcGJuTjBZVzVqWlc5bUlFUjFjbUYwYVc5dU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkVaWFJsY20xcGJtVWdhV1lnZEdobElIWmhiSFZsSUdseklHNTFiR3dnYjNJZ2RXNWtaV1pwYm1Wa0xpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwNTFiR3dvZG1Gc09pQmhibmtwT2lCMllXd2dhWE1nYm5Wc2JDQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd3Z1BUMDlJRzUxYkd3Z2ZId2dkbUZzSUQwOVBTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRVJsZEdWeWJXbHVaU0JwWmlCMGFHVWdkbUZzZFdVZ2FYTWdZVzRnWVhKeVlYa3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpRWEp5WVhrb2RtRnNPaUJoYm5rcE9pQjJZV3dnYVhNZ1lXNTVXMTBnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUVhKeVlYa3VhWE5CY25KaGVTaDJZV3dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRVpYUmxjbTFwYm1VZ2FXWWdkR2hsSUhaaGJIVmxJR2x6SUdFZ1ltOXZiR1ZoYmk0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOQ2IyOXNaV0Z1S0haaGJEb2dZVzU1S1RvZ2RtRnNJR2x6SUdKdmIyeGxZVzRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSFpoYkNBOVBUMGdYQ0ppYjI5c1pXRnVYQ0k3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlNCcFppQjBhR1VnZG1Gc2RXVWdhWE1nWVNCc2FXNXJMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMHhwYm1zb2RtRnNPaUJoYm5rcE9pQjJZV3dnYVhNZ1RHbHVheUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd3Z2FXNXpkR0Z1WTJWdlppQk1hVzVyTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRGFHVmphM01nYVdZZ2RHaGxJR2RwZG1WdUlIWmhiSFZsSUdseklHRnVJRzlpYW1WamRDQW9ZVzVrSUc1dmRDQmhibmtnYjNSb1pYSWdaR0YwWVdOdmNtVXRjbVZqYjJkdWFYcGxaQ0J2WW1wbFkzUXRiR2xyWlNCMGVYQmxLUzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5QWW1wbFkzUW9kbUZzT2lCaGJua3BPaUIyWVd3Z2FYTWdVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZV3dnSVQwOUlIVnVaR1ZtYVc1bFpDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVzltSUhaaGJDQTlQU0JjSW05aWFtVmpkRndpSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FoYVhOQmNuSmhlU2gyWVd3cElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBaGFYTkVkWEpoZEdsdmJpaDJZV3dwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FoYVhORVlYUmxLSFpoYkNrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNGcGMweHBibXNvZG1Gc0tTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lXbHpUblZzYkNoMllXd3BYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlhNZ2FXWWdkR2hsSUdkcGRtVnVJSFpoYkhWbElHbHpJR0VnYW1GMllYTmpjbWx3ZENCbWRXNWpkR2x2Ymk0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOR2RXNWpkR2x2YmloMllXdzZJR0Z1ZVNrNklIWmhiQ0JwY3lCR2RXNWpkR2x2YmlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnZG1Gc0lEMDlJRndpWm5WdVkzUnBiMjVjSWp0Y2JpQWdJQ0I5WEc1OVhHNWNiaThxS2lCQklHZHliM1Z3YVc1bklHOXVJR0VnZEhsd1pTQjNhR2xqYUNCemRYQndiM0owY3lCeVpXTjFjbk5wZG1Wc2VTMXVaWE4wWldRZ1ozSnZkWEJ6TGx4dUlDb2dRR2R5YjNWd0lFTnZiVzF2YmlCVWVYQmxjMXh1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JIY205MWNFVnNaVzFsYm5ROFZENGdQU0I3SUd0bGVUb2dUR2wwWlhKaGJEc2djbTkzY3pvZ1IzSnZkWEJwYm1jOFZENGdmVHRjYmk4cUtseHVJQ29nUVNCbmNtOTFjR2x1Wnl3Z2QyaHBZMmdnWTJGdUlHSmxJR1ZwZEdobGNqcGNiaUFxSUMwZ1lXNGdZWEp5WVhrZ2IyWWdaV3hsYldWdWRITWdiMllnZEhsd1pTQmdWR0FzSUc5eVhHNGdLaUF0SUdGdUlHRnljbUY1SUc5bUlIdEFiR2x1YXlCSGNtOTFjR1ZzWlcxbGJuUjljMXh1SUNwY2JpQXFJRUJuY205MWNDQkRiMjF0YjI0Z1ZIbHdaWE5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnUjNKdmRYQnBibWM4VkQ0Z1BTQlVXMTBnZkNCSGNtOTFjRVZzWlcxbGJuUThWRDViWFR0Y2JpOHFLbHh1SUNvZ1FHaHBaR1JsYmx4dUlDb3ZYRzVsZUhCdmNuUWdibUZ0WlhOd1lXTmxJRWR5YjNWd2FXNW5jeUI3WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlhNZ2FXWWdkR2hsSUdkcGRtVnVJR2R5YjNWd0lHVnVkSEo1SUdseklHRWdjM1JoYm1SaGJHOXVaU0IyWVd4MVpTd2diM0lnWVNCbmNtOTFjR2x1WnlCdlppQnpkV0l0Wlc1MGNtbGxjeTRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5GYkdWdFpXNTBSM0p2ZFhBOFZENG9aVzUwY25rNklHRnVlU2s2SUdWdWRISjVJR2x6SUVkeWIzVndSV3hsYldWdWREeFVQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJNYVhSbGNtRnNjeTVwYzA5aWFtVmpkQ2hsYm5SeWVTa2dKaVlnVDJKcVpXTjBMbXRsZVhNb1pXNTBjbmtwTG14bGJtZDBhQ0E5UFNBeUlDWW1JRndpYTJWNVhDSWdhVzRnWlc1MGNua2dKaVlnWENKeWIzZHpYQ0lnYVc0Z1pXNTBjbms3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlhNZ2FXWWdkR2hsSUdkcGRtVnVJR0Z5Y21GNUlHbHpJR0VnWjNKdmRYQnBibWNnWVhKeVlYa3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpSM0p2ZFhCcGJtYzhWRDRvWlc1MGNuazZJRWR5YjNWd2FXNW5QRlErS1RvZ1pXNTBjbmtnYVhNZ1IzSnZkWEJGYkdWdFpXNTBQRlErVzEwZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQmxiR1Z0Wlc1MElHOW1JR1Z1ZEhKNUtTQnBaaUFvSVdselJXeGxiV1Z1ZEVkeWIzVndLR1ZzWlcxbGJuUXBLU0J5WlhSMWNtNGdabUZzYzJVN1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVSbGRHVnliV2x1WlhNZ2FXWWdkR2hsSUdkcGRtVnVJR0Z5Y21GNUlHbHpJR0VnYkdWaFppQmhibVFnYUdGeklHNXZJSE4xWW1keWIzVndhVzVuY3k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOTVpXRm1QRlErS0dWdWRISjVPaUJIY205MWNHbHVaenhVUGlrNklHVnVkSEo1SUdseklGUmJYU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdWc1pXMWxiblFnYjJZZ1pXNTBjbmtwSUdsbUlDaHBjMFZzWlcxbGJuUkhjbTkxY0NobGJHVnRaVzUwS1NrZ2NtVjBkWEp1SUdaaGJITmxPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQkRiM1Z1ZENCMGFHVWdkRzkwWVd3Z2JuVnRZbVZ5SUc5bUlHVnNaVzFsYm5SeklHbHVJR0VnY21WamRYSnphWFpsSUdkeWIzVndhVzVuTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJqYjNWdWREeFVQaWhsYkdWdFpXNTBjem9nUjNKdmRYQnBibWM4VkQ0Z2ZDQkhjbTkxY0VWc1pXMWxiblE4VkQ0cE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORmJHVnRaVzUwUjNKdmRYQW9aV3hsYldWdWRITXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOTFiblFvWld4bGJXVnVkSE11Y205M2N5azdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvYVhOSGNtOTFjR2x1WnlobGJHVnRaVzUwY3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGRDQnlaWE4xYkhRZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2MzVmlaM0p2ZFhBZ2IyWWdaV3hsYldWdWRITXBJSEpsYzNWc2RDQXJQU0JqYjNWdWRDaHpkV0puY205MWNDNXliM2R6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdaV3hsYldWdWRITXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRkpsWTNWeWMybDJaV3g1SUhOc2FXTmxJR0VnWjNKdmRYQnBibWNzSUhCeVpYTmxjblpwYm1jZ2RHaGxJR2R5YjNWd0lITjBjblZqZEhWeVpTQjBhR0YwSUdOdmJuUmhhVzV6SUdWc1pXMWxiblJ6SUZ0emRHRnlkQzR1TG1WdVpDa3VJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlITnNhV05sUEZRK0tHVnNaVzFsYm5Sek9pQkhjbTkxY0dsdVp6eFVQaXdnYzNSaGNuUTZJRzUxYldKbGNpd2daVzVrT2lCdWRXMWlaWElwT2lCSGNtOTFjR2x1Wnp4VVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNobGJtUWdQRDBnYzNSaGNuUXBJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpUR1ZoWmlobGJHVnRaVzUwY3lrcElISmxkSFZ5YmlCbGJHVnRaVzUwY3k1emJHbGpaU2h6ZEdGeWRDd2daVzVrS1R0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJHYVc1a0lIUm9aU0JtYVhKemRDQm5jbTkxY0NCMGFHRjBJR052Ym5SaGFXNXpJR2x1WkdWNElHQnpkR0Z5ZEdBdVhHNGdJQ0FnSUNBZ0lHeGxkQ0JwYm1SbGVDQTlJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV1Z1SUQwZ01EdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHbHVaR1Y0SUR3Z1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUNZbUlITmxaVzRnS3lCamIzVnVkQ2hsYkdWdFpXNTBjMXRwYm1SbGVGMHBJRHc5SUhOMFlYSjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV1Z1SUNzOUlHTnZkVzUwS0dWc1pXMWxiblJ6VzJsdVpHVjRYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUNzck8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2MzUmhjblFnZDJGeklHZHlaV0YwWlhJZ2RHaGhiaUIwYUdVZ1pXNTBhWEpsSUd4bGJtZDBhQ0J2WmlCMGFHVWdaM0p2ZFhCcGJtZHpMbHh1SUNBZ0lDQWdJQ0JwWmlBb2FXNWtaWGdnUGowZ1pXeGxiV1Z1ZEhNdWJHVnVaM1JvS1NCeVpYUjFjbTRnVzEwN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwT2lCN0lHdGxlVG9nVEdsMFpYSmhiRHNnY205M2N6b2dSM0p2ZFhCcGJtYzhWRDRnZlZ0ZElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hwYm1SbGVDQThJR1ZzWlcxbGJuUnpMbXhsYm1kMGFDQW1KaUJ6WldWdUlEd2daVzVrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm5jbTkxY0NBOUlHVnNaVzFsYm5SelcybHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHZHliM1Z3VTJsNlpTQTlJR052ZFc1MEtHZHliM1Z3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHZHliM1Z3VTNSaGNuUWdQU0JOWVhSb0xtMWhlQ2h6WldWdUxDQnpkR0Z5ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm5jbTkxY0VWdVpDQTlJRTFoZEdndWJXbHVLR2R5YjNWd1UybDZaU0FySUhObFpXNHNJR1Z1WkNrN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQzV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGs2SUdkeWIzVndMbXRsZVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeWIzZHpPaUJ6YkdsalpTaG5jbTkxY0M1eWIzZHpMQ0JuY205MWNGTjBZWEowSUMwZ2MyVmxiaXdnWjNKdmRYQkZibVFnTFNCelpXVnVLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV1Z1SUNzOUlHZHliM1Z3VTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRLeXM3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYm4xY2JpSXNJQ0l2S2lwY2JpQXFJRUJ0YjJSMWJHVWdZWEJwWEc0Z0tpOWNiaThxS2x4dUlDb2dJRVoxYm1OMGFXOXVZV3dnY21WMGRYSnVJSFI1Y0dVZ1ptOXlJR1Z5Y205eUlHaGhibVJzYVc1bkxseHVJQ29nUUdocFpHUmxibHh1SUNvZ0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCVGRXTmpaWE56UEZRc0lFVStJSHRjYmlBZ0lDQndkV0pzYVdNZ2MzVmpZMlZ6YzJaMWJEb2dkSEoxWlR0Y2JseHVJQ0FnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2lod2RXSnNhV01nZG1Gc2RXVTZJRlFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZFdOalpYTnpablZzSUQwZ2RISjFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ2JXRndQRlUrS0dZNklDaGhPaUJVS1NBOVBpQlZLVG9nVW1WemRXeDBQRlVzSUVVK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJUZFdOalpYTnpLR1lvZEdocGN5NTJZV3gxWlNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJtYkdGMFRXRndQRlUrS0dZNklDaGhPaUJVS1NBOVBpQlNaWE4xYkhROFZTd2dSVDRwT2lCU1pYTjFiSFE4VlN3Z1JUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaaWgwYUdsekxuWmhiSFZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdiV0Z3UlhKeVBGVStLR1k2SUNobE9pQkZLU0E5UGlCVktUb2dVbVZ6ZFd4MFBGUXNJRlUrSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTWdZWE1nWVc1NUlHRnpJRkpsYzNWc2REeFVMQ0JWUGp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZbWx0WVhBOFZESXNJRVV5UGloemRXTmpPaUFvWVRvZ1ZDa2dQVDRnVkRJc0lGOW1ZV2xzT2lBb1lqb2dSU2tnUFQ0Z1JUSXBPaUJTWlhOMWJIUThWRElzSUVVeVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG0xaGNDaHpkV05qS1NCaGN5Qmhibms3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHOXlSV3h6WlNoZmRtRnNkV1U2SUZRcE9pQlVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWRtRnNkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHTmhjM1E4VlQ0b0tUb2dVbVZ6ZFd4MFBGVXNJRVUrSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTWdZWE1nWVc1NU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJ2Y2tWc2MyVlVhSEp2ZHloZmJXVnpjMkZuWlQ4NklDaGxPaUJGS1NBOVBpQnpkSEpwYm1jcE9pQlVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWRtRnNkV1U3WEc0Z0lDQWdmVnh1ZlZ4dVhHNHZLaW9nUm5WdVkzUnBiMjVoYkNCeVpYUjFjbTRnZEhsd1pTQm1iM0lnWlhKeWIzSWdhR0Z1Wkd4cGJtY3VYRzRnS2lCQWFHbGtaR1Z1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCR1lXbHNkWEpsUEZRc0lFVStJSHRjYmlBZ0lDQndkV0pzYVdNZ2MzVmpZMlZ6YzJaMWJEb2dabUZzYzJVN1hHNWNiaUFnSUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2NIVmliR2xqSUdWeWNtOXlPaUJGS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzNWalkyVnpjMloxYkNBOUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnRZWEE4VlQ0b1gyWTZJQ2hoT2lCVUtTQTlQaUJWS1RvZ1VtVnpkV3gwUEZVc0lFVStJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNZ1lYTWdZVzU1SUdGeklFWmhhV3gxY21VOFZTd2dSVDQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHWnNZWFJOWVhBOFZUNG9YMlk2SUNoaE9pQlVLU0E5UGlCU1pYTjFiSFE4VlN3Z1JUNHBPaUJTWlhOMWJIUThWU3dnUlQ0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeUJoY3lCaGJua2dZWE1nUm1GcGJIVnlaVHhWTENCRlBqdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYldGd1JYSnlQRlUrS0dZNklDaGxPaUJGS1NBOVBpQlZLVG9nVW1WemRXeDBQRlFzSUZVK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJHWVdsc2RYSmxLR1lvZEdocGN5NWxjbkp2Y2lrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJpYVcxaGNEeFVNaXdnUlRJK0tGOXpkV05qT2lBb1lUb2dWQ2tnUFQ0Z1ZESXNJR1poYVd3NklDaGlPaUJGS1NBOVBpQkZNaWs2SUZKbGMzVnNkRHhVTWl3Z1JUSStJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWJXRndSWEp5S0daaGFXd3BJR0Z6SUdGdWVUdGNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYjNKRmJITmxLSFpoYkhWbE9pQlVLVG9nVkNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1kyRnpkRHhWUGlncE9pQlNaWE4xYkhROFZTd2dSVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5QmhjeUJoYm5rN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJRzl5Uld4elpWUm9jbTkzS0cxbGMzTmhaMlUvT2lBb1pUb2dSU2tnUFQ0Z2MzUnlhVzVuS1RvZ1ZDQjdYRzRnSUNBZ0lDQWdJR2xtSUNodFpYTnpZV2RsS1NCMGFISnZkeUJ1WlhjZ1JYSnliM0lvYldWemMyRm5aU2gwYUdsekxtVnljbTl5S1NrN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpWENJZ0t5QjBhR2x6TG1WeWNtOXlLVHRjYmlBZ0lDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FTQnRiMjVoWkdsaklISmxjM1ZzZENCMGVYQmxJSGRvYVdOb0lITjBiM0psY3lCbGFYUm9aWElnWENKemRXTmpaWE56WENJZ2IzSWdYQ0ptWVdsc2RYSmxYQ0l1SUVGdUlHRnNkR1Z5Ym1GMGFYWmxJR2hoYm1Sc2FXNW5JR1Y0WTJWd2RHbHZibUZzSUdKbGFHRjJhVzl5WEc0Z0tpQmllU0IxYzJsdVp5QjBhR1VnY21WMGRYSnVJSFpoYkhWbElHbHVjM1JsWVdRZ2IyWWdZVzRnWlhoalpYQjBhVzl1TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCU1pYTjFiSFE4VkN3Z1JUNGdQU0JUZFdOalpYTnpQRlFzSUVVK0lId2dSbUZwYkhWeVpUeFVMQ0JGUGp0Y2JseHVMeW9xWEc0Z0tpQkFhR2xrWkdWdVhHNGdLaUJOYjI1aFpHbGpJQ2RTWlhOMWJIUW5JSFI1Y0dVZ2QyaHBZMmdnWlc1allYQnpkV3hoZEdWeklIZG9aWFJvWlhJZ1lTQndjbTlqWldSMWNtVWdjM1ZqWTJWbFpHVmtJRzl5SUdaaGFXeGxaQ3dnWVhNZ2QyVnNiQ0JoY3lCcGRDZHpJSEpsZEhWeWJpQjJZV3gxWlM1Y2JpQXFMMXh1Wlhod2IzSjBJRzVoYldWemNHRmpaU0JTWlhOMWJIUWdlMXh1SUNBZ0lDOHFLaUJEYjI1emRISjFZM1FnWVNCdVpYY2djM1ZqWTJWemN5QnlaWE4xYkhRZ2QzSmhjSEJwYm1jZ2RHaGxJR2RwZG1WdUlIWmhiSFZsTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJ6ZFdOalpYTnpQRlFzSUVVK0tIWmhiSFZsT2lCVUtUb2dVbVZ6ZFd4MFBGUXNJRVUrSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QlRkV05qWlhOektIWmhiSFZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1EyOXVjM1J5ZFdOMElHRWdibVYzSUdaaGFXeDFjbVVnZG1Gc2RXVWdkM0poY0hCcGJtY2dkR2hsSUdkcGRtVnVJR1Z5Y205eUxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCbVlXbHNkWEpsUEZRc0lFVStLR1Z5Y205eU9pQkZLVG9nVW1WemRXeDBQRlFzSUVVK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJHWVdsc2RYSmxLR1Z5Y205eUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dTbTlwYmlCMGQyOGdjbVZ6ZFd4MGN5QjNhWFJvSUdFZ1lta3RablZ1WTNScGIyNGdZVzVrSUhKbGRIVnliaUJoSUc1bGR5QnlaWE4xYkhRdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdac1lYUk5ZWEF5UEZReExDQlVNaXdnVHl3Z1JUNG9YRzRnSUNBZ0lDQWdJR1pwY25OME9pQlNaWE4xYkhROFZERXNJRVUrTEZ4dUlDQWdJQ0FnSUNCelpXTnZibVE2SUZKbGMzVnNkRHhVTWl3Z1JUNHNYRzRnSUNBZ0lDQWdJR1k2SUNoaE9pQlVNU3dnWWpvZ1ZESXBJRDArSUZKbGMzVnNkRHhQTENCRlBseHVJQ0FnSUNrNklGSmxjM1ZzZER4UExDQkZQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaG1hWEp6ZEM1emRXTmpaWE56Wm5Wc0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jMlZqYjI1a0xuTjFZMk5sYzNObWRXd3BJSEpsZEhWeWJpQm1LR1pwY25OMExuWmhiSFZsTENCelpXTnZibVF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0J5WlhSMWNtNGdabUZwYkhWeVpTaHpaV052Ym1RdVpYSnliM0lwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhhV3gxY21Vb1ptbHljM1F1WlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVwdmFXNGdkSGR2SUhKbGMzVnNkSE1nZDJsMGFDQmhJR0pwTFdaMWJtTjBhVzl1SUdGdVpDQnlaWFIxY200Z1lTQnVaWGNnY21WemRXeDBMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZWEF5UEZReExDQlVNaXdnVHl3Z1JUNG9YRzRnSUNBZ0lDQWdJR1pwY25OME9pQlNaWE4xYkhROFZERXNJRVUrTEZ4dUlDQWdJQ0FnSUNCelpXTnZibVE2SUZKbGMzVnNkRHhVTWl3Z1JUNHNYRzRnSUNBZ0lDQWdJR1k2SUNoaE9pQlVNU3dnWWpvZ1ZESXBJRDArSUU5Y2JpQWdJQ0FwT2lCU1pYTjFiSFE4VHl3Z1JUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabXhoZEUxaGNESW9abWx5YzNRc0lITmxZMjl1WkN3Z0tHRXNJR0lwSUQwK0lITjFZMk5sYzNNb1ppaGhMQ0JpS1NrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQk5ZWEFnWVNCbVlXbHNZV0pzWlNCbWRXNWpkR2x2YmlCdmRtVnlJR0ZzYkNCbGJHVnRaVzUwY3lCcGJpQjBhR1VnYkdsemRDd2djbVYwZFhKdWFXNW5JR1ZoY214NUlHOXVJR1poYVd4MWNtVXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHMWhjRUZzYkR4VUxDQlBMQ0JGUGlocGJuQjFkRG9nU1hSbGNtRmliR1U4VkQ0c0lHWjFibU02SUNocGJuQjFkRG9nVkNrZ1BUNGdVbVZ6ZFd4MFBFOHNJRVUrS1RvZ1VtVnpkV3gwUEU5YlhTd2dSVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WlhOMWJIUTZJRTliWFNBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdWc1pXMWxiblFnYjJZZ2FXNXdkWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHOTFkSEIxZENBOUlHWjFibU1vWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVc5MWRIQjFkQzV6ZFdOalpYTnpablZzS1NCeVpYUjFjbTRnYjNWMGNIVjBMbU5oYzNRb0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpkV3gwTG5CMWMyZ29iM1YwY0hWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQlNaWE4xYkhRdWMzVmpZMlZ6Y3loeVpYTjFiSFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRFlYUmphQ0JoYm5rZ1pYSnliM0p6SUdsdUlHRWdZMkZzYkN3Z2NtVjBkWEp1YVc1bklHRWdjbVZ6ZFd4MElHbHVjM1JsWVdRdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUhSeWVXbHVaenhVUGloallXeHNPaUFvS1NBOVBpQlVLVG9nVW1WemRXeDBQRlFzSUVWeWNtOXlQaUI3WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVW1WemRXeDBMbk4xWTJObGMzTW9ZMkZzYkNncEtUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJTWlhOMWJIUXVabUZwYkhWeVpTaGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dRMjl1ZG1WeWRDQmhJSEJ5YjIxcGMyVWdkMmhwWTJnZ2JXRjVJSFJvY205M0lHbHVkRzhnWVNCd2NtOXRhWE5sSUhkb2FXTm9JSEpsZEhWeWJuTWdZU0J5WlhOMWJIUWdiMllnZEdobElITjFZMk5sYzNObWRXd2dkbUZzZFdVZ2IzSWdZVzRnWlhKeWIzSXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUdGemVXNWpQRlErS0hCeWIyMXBjMlU2SUZCeWIyMXBjMlU4VkQ0cE9pQlFjbTl0YVhObFBGSmxjM1ZzZER4VUxDQkZjbkp2Y2o0K0lIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlNaWE4xYkhRdWMzVmpZMlZ6Y3loaGQyRnBkQ0J3Y205dGFYTmxLVHRjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCU1pYTjFiSFF1Wm1GcGJIVnlaU2hsY25KdmNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzU5WEc0aUxDQWlhVzF3YjNKMElIc2dVbVZ6ZFd4MElIMGdabkp2YlNCY0ltRndhUzl5WlhOMWJIUmNJanRjYmx4dUx5b3FJRk4wWVhScFl5QnpaWFFnWld4bGJXVnVkQ0IzYUdsamFDQnRZWFJqYUdWeklHVjJaWEo1ZEdocGJtY3VJQ292WEc1bGVIQnZjblFnZEhsd1pTQkZkbVZ5ZVhSb2FXNW5JRDBnZXlCMGVYQmxPaUJjSW1WMlpYSjVkR2hwYm1kY0lpQjlPMXh1THlvcUlGTjBZWFJwWXlCelpYUWdaV3hsYldWdWRDQjNhR2xqYUNCdFlYUmphR1Z6SUc1dmRHaHBibWN1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JPYjNSb2FXNW5JRDBnZXlCMGVYQmxPaUJjSW01dmRHaHBibWRjSWlCOU8xeHVMeW9xSUZObGRDQjNhR2xqYUNCdFlYUmphR1Z6SUhSb1pTQnVaV2RoZEdsdmJpQnZaaUJoSUhObGRDNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElFNWxaMkYwWldROFZENGdQU0I3SUhSNWNHVTZJRndpYm1WbllYUmxaRndpT3lCMllXeDFaVG9nVTJWMFBGUStJSDA3WEc0dktpb2dVMlYwSUhkb2FXTm9JRzFoZEdOb1pYTWdZVzRnWVdOMGRXRnNJSE5sZENCdlppQjJZV3gxWlhNdUlDQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1FYUnZiVHhVUGlBOUlIc2dkSGx3WlRvZ1hDSmhkRzl0WENJN0lIWmhiSFZsT2lCVFpYUThWRDRnZlR0Y2JseHVMeW9xSUVGaWMzUnlZV04wSUdacGJIUmxjaUIwZVhCbElIZG9hV05vSUhKbGNISmxjMlZ1ZEhNZ2RHaGxJSEpsYzNWc2RITWdiMllnWVhCd2JIbHBibWNnWm1sc2RHVnlJRzl3WlhKaGRHbHZibk1nZEc4Z2RHaGxJR1JoZEdFZ2MzUnZjbVV1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JHYVd4MFpYSThWRDRnUFNCRmRtVnllWFJvYVc1bklId2dUbTkwYUdsdVp5QjhJRUYwYjIwOFZENGdmQ0JPWldkaGRHVmtQRlErTzF4dVhHNHZLaW9nVlhScGJHbDBlU0JtZFc1amRHbHZibk1nWm05eUlHVm1abWxqYVdWdWRHeDVJRzl3WlhKaGRHbHVaeUJ2YmlCbWFXeDBaWEp6TGlBcUwxeHVaWGh3YjNKMElHNWhiV1Z6Y0dGalpTQkdhV3gwWlhKeklIdGNiaUFnSUNBdktpb2dVM1JoZEdsaklHWnBiSFJsY2lCM2FHbGphQ0J0WVhSamFHVnpJR1YyWlhKNWRHaHBibWN1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR052Ym5OMElFVldSVkpaVkVoSlRrYzZJRVYyWlhKNWRHaHBibWNnUFNCN0lIUjVjR1U2SUZ3aVpYWmxjbmwwYUdsdVoxd2lJSDA3WEc0Z0lDQWdMeW9xSUZOMFlYUnBZeUJtYVd4MFpYSWdkMmhwWTJnZ2JXRjBZMmhsY3lCdWIzUm9hVzVuTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JqYjI1emRDQk9UMVJJU1U1SE9pQk9iM1JvYVc1bklEMGdleUIwZVhCbE9pQmNJbTV2ZEdocGJtZGNJaUI5TzF4dUlDQWdJQzhxS2lCRmJYQjBlU0J6WlhRZ1kyOXVjM1JoYm5RdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdOdmJuTjBJRVZOVUZSWlgxTkZWRG9nVTJWMFBHRnVlVDRnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnSUNBdktpb2dRMjl1YzNSeWRXTjBJR0VnYm1WM0lHRjBiMjBnWm1sc2RHVnlMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQmhkRzl0UEZRK0tITmxkRG9nVTJWMFBGUStLVG9nUm1sc2RHVnlQRlErSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE5sZEM1emFYcGxJRDA5SURBcElISmxkSFZ5YmlCT1QxUklTVTVITzF4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lIUjVjR1U2SUZ3aVlYUnZiVndpTENCMllXeDFaVG9nYzJWMElIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRU52Ym5OMGNuVmpkQ0JoSUdacGJIUmxjaUIwYUdGMElHMWhkR05vWlhNZ1pYWmxjbmwwYUdsdVp5QnZjaUJ1YjNSb2FXNW5MaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQmpiMjV6ZEdGdWREeFVQaWgyWVd4MVpUb2dZbTl2YkdWaGJpazZJRVpwYkhSbGNqeFVQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlNrZ2NtVjBkWEp1SUVWV1JWSlpWRWhKVGtjN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnY21WMGRYSnVJRTVQVkVoSlRrYzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FJRU52Ym5OMGNuVmpkQ0JoSUc1bGR5QmhkRzl0SUdacGJIUmxjaUIzYUdsamFDQnBjeUJPVDFSSVNVNUhJR2xtSUhObGRDQnBjeUIxYm1SbFptbHVaV1F1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJRzUxYkd4aFlteGxRWFJ2YlR4VVBpaHpaWFE2SUZObGREeFVQaUI4SUhWdVpHVm1hVzVsWkNrNklFWnBiSFJsY2p4VVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaWFFnSVQwOUlIVnVaR1ZtYVc1bFpDQS9JR0YwYjIwb2MyVjBLU0E2SUU1UFZFaEpUa2M3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVOdmJuTjBjblZqZENCaElHNWxaMkYwWldRZ1lYUnZiU0JtYVd4MFpYSXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHNWxaMkYwWldROFZENG9jMlYwT2lCVFpYUThWRDRwT2lCR2FXeDBaWEk4VkQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYzJWMExuTnBlbVVnUFQwZ01Da2djbVYwZFhKdUlFVldSVkpaVkVoSlRrYzdYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0p1WldkaGRHVmtYQ0lzSUhaaGJIVmxPaUJ6WlhRZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dVSEp2WkhWalpYTWdkR2hsSUc1bFoyRjBhVzl1SUc5bUlHRWdabWxzZEdWeUxpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCdVpXZGhkR1U4VkQ0b1ptbHNkR1Z5T2lCR2FXeDBaWEk4VkQ0cE9pQkdhV3gwWlhJOFZENGdlMXh1SUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLR1pwYkhSbGNpNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2laWFpsY25sMGFHbHVaMXdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJPVDFSSVNVNUhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW01dmRHaHBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUlZaRlVsbFVTRWxPUnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmhkRzl0WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bFoyRjBaV1FvWm1sc2RHVnlMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0p1WldkaGRHVmtYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0YwYjIwb1ptbHNkR1Z5TG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCRVpYUmxjbTFwYm1VZ2FXWWdkR2hsSUdkcGRtVnVJR1pwYkhSbGNpQnBjeUJrWldacGJtbDBhWFpsYkhrZ1kzVnljbVZ1ZEd4NUlHVnRjSFI1TGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJsYlhCMGVUeFVQaWhtYVd4MFpYSTZJRVpwYkhSbGNqeFVQaWs2SUdKdmIyeGxZVzRnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0dacGJIUmxjaTUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpWlhabGNubDBhR2x1WjF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdVpXZGhkR1ZrWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1GMGIyMWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabWxzZEdWeUxuWmhiSFZsTG5OcGVtVWdQVDBnTUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnViM1JvYVc1blhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1VtVnpiMngyWlNCaElIUnZjQzFzWlhabGJDQm1hV3gwWlhJZ2QybDBhQ0IwYUdVZ2MyVjBJRzltSUdGc2JDQmhkbUZwYkdGaWJHVWdiMkpxWldOMGN5NGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtVnpiMngyWlR4VVBpaG1hV3gwWlhJNklFWnBiSFJsY2p4VVBpd2daWFpsY25sMGFHbHVaem9nVTJWMFBGUStLVG9nVTJWMFBGUStJSHRjYmlBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2htYVd4MFpYSXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVYyWlhKNWRHaHBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWlhabGNubDBhR2x1Wnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnViM1JvYVc1blhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFVk5VRlJaWDFORlZEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0poZEc5dFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWnBiSFJsY2k1MllXeDFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdVpXZGhkR1ZrWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhObGRFbHVkR1Z5YzJWamRFNWxaMkYwYVc5dUtHVjJaWEo1ZEdocGJtY3NJR1pwYkhSbGNpNTJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dTVzUwWlhKelpXTjBJR0Z1SUdsMFpYSmhZbXhsSUc5bUlHWnBiSFJsY25NdUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWRHVnljMlZqZER4VVBpaGxiR1Z0Wlc1MGN6b2dTWFJsY21GaWJHVThSbWxzZEdWeVBGUStQaWs2SUVacGJIUmxjanhVUGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCc1lYcDVTVzUwWlhKelpXTjBLR1ZzWlcxbGJuUnpMQ0FvZUNrZ1BUNGdlQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVsdWRHVnljMlZqZENCbWFXeDBaWEp6SUd4aGVtbHNlU3dnYzJodmNuUXRZMmx5WTNWcGRHbHVaeUJwWmlCMGFHVWdhVzUwWlhKelpXTjBhVzl1SUhkdmRXeGtJSEJ5YjJSMVkyVWdUazlVU0VsT1J5NGdLaTljYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JHRjZlVWx1ZEdWeWMyVmpkRHhKTENCVVBpaGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRITTZJRWwwWlhKaFlteGxQRWsrTEZ4dUlDQWdJQ0FnSUNCd2NtOWtkV05sT2lBb2FXNXdkWFE2SUVrcElEMCtJRVpwYkhSbGNqeFVQaUI4SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ2s2SUVacGJIUmxjanhVUGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCc1lYcDVSbUZwYkdGaWJHVkpiblJsY25ObFkzUnBiMjRvWld4bGJXVnVkSE1zSUNoNEtTQTlQaUJTWlhOMWJIUXVjM1ZqWTJWemN5aHdjbTlrZFdObEtIZ3BLU2t1YjNKRmJITmxWR2h5YjNjb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dTVzUwWlhKelpXTjBJR1pwYkhSbGNuTWdiR0Y2YVd4NUxDQnphRzl5ZEMxamFYSmpkV2wwYVc1bklHbG1JSFJvWlNCcGJuUmxjbk5sWTNScGIyNGdkMjkxYkdRZ2NISnZaSFZqWlNCT1QxUklTVTVITGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJzWVhwNVJtRnBiR0ZpYkdWSmJuUmxjbk5sWTNScGIyNDhTU3dnVkN3Z1JUNG9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJKZEdWeVlXSnNaVHhKUGl4Y2JpQWdJQ0FnSUNBZ2NISnZaSFZqWlRvZ0tHbHVjSFYwT2lCSktTQTlQaUJTWlhOMWJIUThSbWxzZEdWeVBGUStJSHdnZFc1a1pXWnBibVZrTENCRlBseHVJQ0FnSUNrNklGSmxjM1ZzZER4R2FXeDBaWEk4VkQ0c0lFVStJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZWFJ2YlhNNklGTmxkRHhVUGx0ZElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzVsWjJGMGFXOXVjem9nVTJWMFBGUStXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdaV3hsYldWdWRDQnZaaUJsYkdWdFpXNTBjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRjVZbVZHYVd4MFpYSWdQU0J3Y205a2RXTmxLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0Z0WVhsaVpVWnBiSFJsY2k1emRXTmpaWE56Wm5Wc0tTQnlaWFIxY200Z2JXRjVZbVZHYVd4MFpYSXVZMkZ6ZENncE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtYVd4MFpYSWdQU0J0WVhsaVpVWnBiSFJsY2k1MllXeDFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htYVd4MFpYSWdQVDA5SUhWdVpHVm1hVzVsWkNrZ1kyOXVkR2x1ZFdVN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFVnRjSFI1SUdacGJIUmxjbk1nZDJsc2JDQndjbTlrZFdObElHRnVJR1Z0Y0hSNUlHbHVkR1Z5YzJWamRHbHZiaTVjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsYlhCMGVTaG1hV3gwWlhJcEtTQnlaWFIxY200Z1VtVnpkV3gwTG5OMVkyTmxjM01vVGs5VVNFbE9SeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJGVmtWU1dWUklTVTVISUdacGJIUmxjbk1nWVhKbElISmxaSFZ1WkdGdWRDQnBiaUJCVGtSekxDQnphMmx3SUhSb1pXMHVYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9abWxzZEdWeUxuUjVjR1VnUFQwOUlGd2laWFpsY25sMGFHbHVaMXdpS1NCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1YybHNiQ0J2Ym14NUlHSmxJR3hsWm5RZ2QybDBhQ0JoZEc5dGN5QnZjaUJ1WldkaGRHbHZibk11WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWm1sc2RHVnlMblI1Y0dVZ1BUMGdYQ0poZEc5dFhDSXBJR0YwYjIxekxuQjFjMmdvWm1sc2RHVnlMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dacGJIUmxjaTUwZVhCbElEMDlJRndpYm1WbllYUmxaRndpS1NCdVpXZGhkR2x2Ym5NdWNIVnphQ2htYVd4MFpYSXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1YyVWdjM1JoY25RZ2QybDBhQ0J6YjIxbGRHaHBibWNnYjJZZ2RHaGxJR1p2Y20wZ1lTQW1KaUJpSUNZbUlDRmpJQ1ltSUNGa0xseHVJQ0FnSUNBZ0lDQXZMeUJKWmlCdWJ5QjBaWEp0Y3l3Z2RHaGxiaUJsZG1WeWVYUm9hVzVuSUhkaGN5QkZWa1ZTV1ZSSVNVNUhJSE52SUhKbGRIVnliaUIwYUdGMExseHVJQ0FnSUNBZ0lDQXZMeUJKWmlCdmJteDVJR0YwYjIxekxDQnFkWE4wSUdsdWRHVnljMlZqZENCMGFHVnRJQ2hoSUNZbUlHSXBMbHh1SUNBZ0lDQWdJQ0F2THlCSlppQnZibXg1SUc1bFoyRjBhVzl1Y3l3Z2RHaGxiaUJ5WlhkeWFYUmxJQ0ZqSUNZbUlDRmtJRDArSUNFb1l5QjhmQ0JrS1NCaGJtUWdjbVYwZFhKdUlHNWxaMkYwWldRb1l5QjhmQ0JrS1M1Y2JpQWdJQ0FnSUNBZ0x5OGdTV1lnWW05MGFDd2dZMjl0Y0hWMFpTQjRJRDBnS0dFZ0ppWWdZaWtnWVc1a0lIa2dQU0FvWXlCOGZDQmtLU3dnWVc1a0lIUm9aVzRnWTI5dGNIVjBaU0I0SUNZbUlDRjVMbHh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGhkRzl0Y3k1c1pXNW5kR2dnUFQwZ01DQW1KaUJ1WldkaGRHbHZibk11YkdWdVozUm9JRDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJTWlhOMWJIUXVjM1ZqWTJWemN5aEZWa1ZTV1ZSSVNVNUhLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoaGRHOXRjeTVzWlc1bmRHZ2dQaUF3SUNZbUlHNWxaMkYwYVc5dWN5NXNaVzVuZEdnZ1BUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGSmxjM1ZzZEM1emRXTmpaWE56S0dGMGIyMG9jMlYwU1c1MFpYSnpaV04wS0dGMGIyMXpLU2twTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHRjBiMjF6TG14bGJtZDBhQ0E5UFNBd0lDWW1JRzVsWjJGMGFXOXVjeTVzWlc1bmRHZ2dQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdVbVZ6ZFd4MExuTjFZMk5sYzNNb2JtVm5ZWFJsWkNoelpYUlZibWx2YmlodVpXZGhkR2x2Ym5NcEtTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVW1WemRXeDBMbk4xWTJObGMzTW9SbWxzZEdWeWN5NWhkRzl0S0hObGRFbHVkR1Z5YzJWamRFNWxaMkYwYVc5dUtITmxkRWx1ZEdWeWMyVmpkQ2hoZEc5dGN5a3NJSE5sZEZWdWFXOXVLRzVsWjJGMGFXOXVjeWtwS1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dWVzVwYjI0Z1ptbHNkR1Z5Y3l3Z2NISnZaSFZqYVc1bklHRWdjMmx1WjJ4bElISmxjM1ZzZENCbWFXeDBaWEl1SUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJSFZ1YVc5dVBGUStLR1pwYkhSbGNuTTZJRWwwWlhKaFlteGxQRVpwYkhSbGNqeFVQajRwT2lCR2FXeDBaWEk4VkQ0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JHRjZlVlZ1YVc5dUtHWnBiSFJsY25Nc0lDaDRLU0E5UGlCNEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpb2dWVzVwYjI0Z1ptbHNkR1Z5Y3lCc1lYcHBiSGtzSUhOb2IzSjBMV05wY21OMWFYUnBibWNnYVdZZ2RHaGxJSFZ1YVc5dUlIZHZkV3hrSUhCeWIyUjFZMlVnUlZaRlVsbFVTRWxPUnk0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYkdGNmVWVnVhVzl1UEVrc0lGUStLR1ZzWlcxbGJuUnpPaUJKZEdWeVlXSnNaVHhKUGl3Z2NISnZaSFZqWlRvZ0tHbHVjSFYwT2lCSktTQTlQaUJHYVd4MFpYSThWRDRnZkNCMWJtUmxabWx1WldRcE9pQkdhV3gwWlhJOFZENGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiR0Y2ZVVaaGFXeGhZbXhsVlc1cGIyNG9aV3hsYldWdWRITXNJQ2g0S1NBOVBpQlNaWE4xYkhRdWMzVmpZMlZ6Y3lod2NtOWtkV05sS0hncEtTa3ViM0pGYkhObFZHaHliM2NvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1ZXNXBiMjRnWm1sc2RHVnljeUJzWVhwcGJIa3NJSE5vYjNKMExXTnBjbU4xYVhScGJtY2dhV1lnZEdobElIVnVhVzl1SUhkdmRXeGtJSEJ5YjJSMVkyVWdSVlpGVWxsVVNFbE9SeTRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdiR0Y2ZVVaaGFXeGhZbXhsVlc1cGIyNDhTU3dnVkN3Z1JUNG9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJKZEdWeVlXSnNaVHhKUGl4Y2JpQWdJQ0FnSUNBZ2NISnZaSFZqWlRvZ0tHbHVjSFYwT2lCSktTQTlQaUJTWlhOMWJIUThSbWxzZEdWeVBGUStJSHdnZFc1a1pXWnBibVZrTENCRlBseHVJQ0FnSUNrNklGSmxjM1ZzZER4R2FXeDBaWEk4VkQ0c0lFVStJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZWFJ2YlhNNklGTmxkRHhVUGx0ZElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzVsWjJGMGFXOXVjem9nVTJWMFBGUStXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdaV3hsYldWdWRDQnZaaUJsYkdWdFpXNTBjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRjVZbVZHYVd4MFpYSWdQU0J3Y205a2RXTmxLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0Z0WVhsaVpVWnBiSFJsY2k1emRXTmpaWE56Wm5Wc0tTQnlaWFIxY200Z2JXRjVZbVZHYVd4MFpYSXVZMkZ6ZENncE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtYVd4MFpYSWdQU0J0WVhsaVpVWnBiSFJsY2k1MllXeDFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htYVd4MFpYSWdQVDA5SUhWdVpHVm1hVzVsWkNrZ1kyOXVkR2x1ZFdVN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFVldSVkpaVkVoSlRrY2dabWxzZEdWeWN5QjNhV3hzSUhCeWIyUjFZMlVnWlhabGNubDBhR2x1WnlCaGJIZGhlWE11WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWm1sc2RHVnlMblI1Y0dVZ1BUMDlJRndpWlhabGNubDBhR2x1WjF3aUtTQnlaWFIxY200Z1VtVnpkV3gwTG5OMVkyTmxjM01vUlZaRlVsbFVTRWxPUnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCRmJYQjBlU0JtYVd4MFpYSnpJR0Z5WlNCeVpXUjFibVJoYm5RdVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pXMXdkSGtvWm1sc2RHVnlLU2tnWTI5dWRHbHVkV1U3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZkcGJHd2diMjVzZVNCaVpTQnNaV1owSUhkcGRHZ2dZWFJ2YlhNZ2IzSWdibVZuWVhScGIyNXpMbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1pwYkhSbGNpNTBlWEJsSUQwOUlGd2lZWFJ2YlZ3aUtTQmhkRzl0Y3k1d2RYTm9LR1pwYkhSbGNpNTJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2htYVd4MFpYSXVkSGx3WlNBOVBTQmNJbTVsWjJGMFpXUmNJaWtnYm1WbllYUnBiMjV6TG5CMWMyZ29abWxzZEdWeUxuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQzh2SUU5eUlHbHpJR0VnWW1sMElHaGhjbVJsY2lCMGFHRnVJRUZPUkNCemFXNWpaU0I1YjNVZ1kyRnVJR1Z1WkNCMWNDQjNhWFJvSUhOalpXNWhjbWx2Y3lCc2FXdGxJR0VnZkh3Z0lXSXNJSGRvYVdOb0lHRnlaVnh1SUNBZ0lDQWdJQ0F2THlCdWIzUWdZMjl0Y0hWMFlXSnNaU0JrYVhKbFkzUnNlUzRnU0c5M1pYWmxjaXdnZDJVZ1kyRnVJR1J2SUdKdmIyeGxZVzRnYkc5bmFXTWdkRzhnWVd4M1lYbHpJSEJ5YjJSMVkyVWdZU0J6YVc1bmJHVmNiaUFnSUNBZ0lDQWdMeThnYzJWMExseHVJQ0FnSUNBZ0lDQXZMeUJKWmlCdWIzUm9hVzVuSUQwK0lHNXZkR2hwYm1jc0lHNXZJRzV2YmkxbGJYQjBlU0JtYVd4MFpYSnpMbHh1SUNBZ0lDQWdJQ0F2THlCSlppQmhkRzl0Y3lCaWRYUWdibThnYm1WbllYUnBiMjV6SUNoaElIeDhJR0lnZkh3Z1l5a2dQVDRnWTI5dGNIVjBaU0IxYm1sdmJpNWNiaUFnSUNBZ0lDQWdMeThnU1dZZ2JtVm5ZWFJwYjI1eklHSjFkQ0J1YnlCaGRHOXRjeUFvSVdFZ2ZId2dJV0lnZkh3Z0lXTXBJRDArSUhKbGQzSnBkR1VnWVhNZ0lTaGhJQ1ltSUdJZ0ppWWdZeWt1WEc0Z0lDQWdJQ0FnSUM4dklFbG1JR0p2ZEdnNklDaGhJSHg4SUdJZ2ZId2dJV01nZkh3Z0lXUXBJRDArSUdOdmJXSnBibVVnWldGamFDQndZWEowSUdsdWRHOGdLR0VnZkh3Z1lpa2dmSHdnS0NGaklIeDhJQ0ZrS1NBOVBpQW9ZU0I4ZkNCaUtTQjhmQ0FoS0dNZ0ppWWdaQ2tnUFQ0Z1pTQjhmQ0FoWmlBOVBpQWhLQ0ZsSUNZbUlHWXBJSGRvYVdOb1hHNGdJQ0FnSUNBZ0lDOHZJR05oYmlCaVpTQmpiMjF3ZFhSbFpDQjFjMmx1WnlCcGJuUmxjbk5sWTNScGIyNGdiRzluYVdNdVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0dGMGIyMXpMbXhsYm1kMGFDQTlQU0F3SUNZbUlHNWxaMkYwYVc5dWN5NXNaVzVuZEdnZ1BUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGSmxjM1ZzZEM1emRXTmpaWE56S0U1UFZFaEpUa2NwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHRjBiMjF6TG14bGJtZDBhQ0ErSURBZ0ppWWdibVZuWVhScGIyNXpMbXhsYm1kMGFDQTlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdVbVZ6ZFd4MExuTjFZMk5sYzNNb1JtbHNkR1Z5Y3k1aGRHOXRLSE5sZEZWdWFXOXVLR0YwYjIxektTa3BPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dGMGIyMXpMbXhsYm1kMGFDQTlQU0F3SUNZbUlHNWxaMkYwYVc5dWN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1VtVnpkV3gwTG5OMVkyTmxjM01vUm1sc2RHVnljeTV1WldkaGRHVmtLSE5sZEVsdWRHVnljMlZqZENodVpXZGhkR2x2Ym5NcEtTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVW1WemRXeDBMbk4xWTJObGMzTW9ibVZuWVhSbFpDaHpaWFJKYm5SbGNuTmxZM1JPWldkaGRHbHZiaWh6WlhSSmJuUmxjbk5sWTNRb2JtVm5ZWFJwYjI1ektTd2djMlYwVlc1cGIyNG9ZWFJ2YlhNcEtTa3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xSUVWbVptbGphV1Z1ZEd4NUlHTnZiWEIxZEdVZ2RHaGxJR2x1ZEdWeWMyVmpkR2x2YmlCdlppQnpaWFJ6TGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJ6WlhSSmJuUmxjbk5sWTNROFZENG9jMlYwY3pvZ1UyVjBQRlErVzEwcE9pQlRaWFE4VkQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYzJWMGN5NXNaVzVuZEdnZ1BUMGdNQ2tnY21WMGRYSnVJRzVsZHlCVFpYUW9LVHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYzJWMGN5NXNaVzVuZEdnZ1BUMGdNU2tnY21WMGRYSnVJSE5sZEhOYk1GMDdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1UyOXlkQ0JpZVNCemFYcGxJR0Z1WkNCamIyMWlhVzVsSUhOdFlXeHNaWE4wSUdGdVpDQnNZWEpuWlhOMElITmxkQ0J5WlhCbFlYUmxaR3g1TGx4dUlDQWdJQ0FnSUNCc1pYUWdjMjl5ZEdWa0lEMGdLRnRkSUdGeklGTmxkRHhVUGx0ZEtTNWpiMjVqWVhRb2MyVjBjeWt1YzI5eWRDZ29ZU3dnWWlrZ1BUNGdZUzV6YVhwbElDMGdZaTV6YVhwbEtUdGNibHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9jMjl5ZEdWa0xteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUc1bGR5QlRaWFE4VkQ0b0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR3hoY21kbGMzUWdQU0J6YjNKMFpXUXVjRzl3S0NraE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR3hsZENCbGJHVnRaVzUwSUc5bUlITnZjblJsWkZzd1hTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1lYSm5aWE4wTG1oaGN5aGxiR1Z0Wlc1MEtTa2djbVZ6ZFd4MExtRmtaQ2hsYkdWdFpXNTBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2MyOXlkR1ZrV3pCZElEMGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE52Y25SbFpGc3dYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaW9nUldabWFXTnBaVzUwYkhrZ1kyOXRjSFYwWlNCMGFHVWdkVzVwYjI0Z2IyWWdjMlYwY3k0Z0tpOWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYzJWMFZXNXBiMjQ4VkQ0b2MyVjBjem9nVTJWMFBGUStXMTBwT2lCVFpYUThWRDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9jMlYwY3k1c1pXNW5kR2dnUFQwZ01Da2djbVYwZFhKdUlHNWxkeUJUWlhRb0tUdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9jMlYwY3k1c1pXNW5kR2dnUFQwZ01Ta2djbVYwZFhKdUlITmxkSE5iTUYwN1hHNWNiaUFnSUNBZ0lDQWdMeThnU1NkdElHNXZkQ0J6ZFhKbElHbG1JSFJvWlhKbElHbHpJR0Z1ZVNCMWMyVm1kV3dnYjNCMGFXMXBlbUYwYVc5dUlHWnZjaUJ6WlhRZ2RXNXBiMjV6TENCemJ5QnFkWE4wSUdGa1pDQjBhR1Z0SUdGc2JDQkpJR2QxWlhOekxseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCdVpYY2dVMlYwUEZRK0tDazdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYzJWMElHOW1JSE5sZEhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1pXeGxiV1Z1ZENCdlppQnpaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFF1WVdSa0tHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lvZ1JXWm1hV05wWlc1MGJIa2dZMjl0Y0hWMFpTQmhkRzl0SUNZbUlDRnVaV2RoZEdWa0xpQXFMMXh1SUNBZ0lHVjRjRzl5ZENCbWRXNWpkR2x2YmlCelpYUkpiblJsY25ObFkzUk9aV2RoZEdsdmJqeFVQaWhoZEc5dE9pQlRaWFE4VkQ0c0lHNWxaMkYwWldRNklGTmxkRHhVUGlrNklGTmxkRHhVUGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoZEc5dExuTnBlbVVnUGlCdVpXZGhkR1ZrTG5OcGVtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRlJQUkU4NklGZHZkV3hrSUdKbElHNXBZMlVnZEc4Z1lYWnZhV1FnZEdobElHTnZjSGtzSUhOcGJtTmxJRWtuYlNCdWIzUWdjM1Z5WlNCcGRDZHpJR0Z1ZVNCbVlYTjBaWElnZDJsMGFDQjBhR1VnWTI5d2VTNWNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RDQTlJRzVsZHlCVFpYUW9ZWFJ2YlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JsYkdWdFpXNTBJRzltSUc1bFoyRjBaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFF1WkdWc1pYUmxLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lDQWdJQ0I5SUM4cUlHRjBiMjB1YzJsNlpTQThJRzVsWjJGMGFXOXVMbk5wZW1VZ0tpOGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQnVaWGNnVTJWMFBGUStLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQmxiR1Z0Wlc1MElHOW1JR0YwYjIwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYm1WbllYUmxaQzVvWVhNb1pXeGxiV1Z1ZENrcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZEM1aFpHUW9aV3hsYldWdWRDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzU5WEc0aUxDQWlhVzF3YjNKMElIc2dUR2wwWlhKaGJDd2dUR2wwWlhKaGJITWdmU0JtY205dElGd2laWGh3Y21WemMybHZiaTlzYVhSbGNtRnNYQ0k3WEc1cGJYQnZjblFnZXlCR2FXeDBaWEp6SUgwZ1puSnZiU0JjSWk0dlptbHNkR1Z5YzF3aU8xeHVYRzR2S2lvZ1EyOXRjR0Z5YVhOdmJpQnZjR1Z5WVhSdmNuTWdkMmhwWTJnZ2VXbGxiR1FnZEhKMVpTOW1ZV3h6WlM0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUVOdmJYQmhjbVZQY0NBOUlGd2lQbHdpSUh3Z1hDSStQVndpSUh3Z1hDSThQVndpSUh3Z1hDSThYQ0lnZkNCY0lqMWNJaUI4SUZ3aUlUMWNJanRjYmk4cUtpQkJjbWwwYUcxbGRHbGpJRzl3WlhKaGRHOXljeUIzYUdsamFDQjVhV1ZzWkNCdWRXMWlaWEp6SUdGdVpDQnZkR2hsY2lCMllXeDFaWE11SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JCY21sMGFHMWxkR2xqVDNBZ1BTQmNJaXRjSWlCOElGd2lMVndpSUh3Z1hDSXFYQ0lnZkNCY0lpOWNJaUI4SUZ3aUpWd2lJSHdnWENJbVhDSWdmQ0JjSW54Y0lqdGNiaThxS2lCSmJtUmxlQ0JoSUhaaGJIVmxJR2x1ZEc4Z1lXNXZkR2hsY2lCMllXeDFaUzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRXh2WjJsallXeFBjQ0E5SUZ3aWFXNWtaWGhjSWp0Y2JpOHFLaUJCYkd3Z2RtRnNhV1FnWW1sdVlYSjVJRzl3WlhKaGRHOXljeTRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRUpwYm1GeWVVOXdJRDBnUTI5dGNHRnlaVTl3SUh3Z1FYSnBkR2h0WlhScFkwOXdJSHdnVEc5bmFXTmhiRTl3TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JGZUhCeVpYTnphVzl1SUQxY2JpQWdJQ0I4SUV4cGRHVnlZV3hGZUhCeVpYTnphVzl1WEc0Z0lDQWdmQ0JXWVhKcFlXSnNaVVY0Y0hKbGMzTnBiMjVjYmlBZ0lDQjhJRXhwYzNSRmVIQnlaWE56YVc5dVhHNGdJQ0FnZkNCUFltcGxZM1JGZUhCeVpYTnphVzl1WEc0Z0lDQWdmQ0JDYVc1aGNubFBjRVY0Y0hKbGMzTnBiMjVjYmlBZ0lDQjhJRVoxYm1OMGFXOXVSWGh3Y21WemMybHZibHh1SUNBZ0lId2dUR0Z0WW1SaFJYaHdjbVZ6YzJsdmJseHVJQ0FnSUh3Z1RtVm5ZWFJsWkVWNGNISmxjM05wYjI0N1hHNWNiaThxS2lCTWFYUmxjbUZzSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUhOdmJXVWdabWxsYkdRZ2RIbHdaUzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1RHbDBaWEpoYkVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUhSNWNHVTZJRndpYkdsMFpYSmhiRndpTzF4dUlDQWdJSFpoYkhWbE9pQk1hWFJsY21Gc08xeHVmVnh1WEc0dktpb2dRU0IyWVhKcFlXSnNaU0JtYVdWc1pDQm1iM0lnWVNCMllYSnBZV0pzWlNCM2FYUm9JR0VnWjJsMlpXNGdibUZ0WlM0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdWbUZ5YVdGaWJHVkZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQjBlWEJsT2lCY0luWmhjbWxoWW14bFhDSTdYRzRnSUNBZ2JtRnRaVG9nYzNSeWFXNW5PMXh1ZlZ4dVhHNHZLaW9nUVNCc2FYTjBJR3hwZEdWeVlXd3NJSGRvYVdOb0lHbHpJR0Z1SUc5eVpHVnlaV1FnWTI5c2JHVmpkR2x2YmlCdlppQm1hV1ZzWkhNdUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXhwYzNSRmVIQnlaWE56YVc5dUlIdGNiaUFnSUNCMGVYQmxPaUJjSW14cGMzUmNJanRjYmlBZ0lDQjJZV3gxWlhNNklFVjRjSEpsYzNOcGIyNWJYVHRjYm4xY2JseHVMeW9xSUVGdUlHOWlhbVZqZENCc2FYUmxjbUZzTENCM2FHbGphQ0JwY3lCaElHMWhjSEJwYm1jZ2IyWWdibUZ0WlNCMGJ5Qm1hV1ZzWkM0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdUMkpxWldOMFJYaHdjbVZ6YzJsdmJpQjdYRzRnSUNBZ2RIbHdaVG9nWENKdlltcGxZM1JjSWp0Y2JpQWdJQ0IyWVd4MVpYTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFVjRjSEpsYzNOcGIyNCtPMXh1ZlZ4dVhHNHZLaW9nUVNCaWFXNWhjbmtnYjNCbGNtRjBiM0lnWlhod2NtVnpjMmx2YmlCM2FHbGphQ0JqYjIxaWFXNWxjeUIwZDI4Z2MzVmlibTlrWlhNZ2MyOXRaV2h2ZHk0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdRbWx1WVhKNVQzQkZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQjBlWEJsT2lCY0ltSnBibUZ5ZVc5d1hDSTdYRzRnSUNBZ2JHVm1kRG9nUlhod2NtVnpjMmx2Ymp0Y2JpQWdJQ0J5YVdkb2REb2dSWGh3Y21WemMybHZianRjYmlBZ0lDQnZjRG9nUW1sdVlYSjVUM0E3WEc1OVhHNWNiaThxS2lCQklHWjFibU4wYVc5dUlHVjRjSEpsYzNOcGIyNGdkMmhwWTJnZ1kyRnNiSE1nWVNCbWRXNWpkR2x2YmlCdmJpQXdJRzl5SUcxdmNtVWdZWEpuZFcxbGJuUnpMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCR2RXNWpkR2x2YmtWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUhSNWNHVTZJRndpWm5WdVkzUnBiMjVjSWp0Y2JpQWdJQ0F2S2lvZ1JXbDBhR1Z5SUhSb1pTQnVZVzFsSUc5bUlIUm9aU0JtZFc1amRHbHZiaUJpWldsdVp5QmpZV3hzWldRZ2IzSWdZU0JHZFc1amRHbHZiaUJ2WW1wbFkzUXVJQ292WEc0Z0lDQWdablZ1WXpvZ1JYaHdjbVZ6YzJsdmJqdGNiaUFnSUNBdktpb2dWR2hsSUd4cGMzUWdiMllnWVhKbmRXMWxiblJ6SUdKbGFXNW5JSEJoYzNObFpDQjBieUIwYUdVZ1puVnVZM1JwYjI0dUlDb3ZYRzRnSUNBZ1lYSm5kVzFsYm5Sek9pQkZlSEJ5WlhOemFXOXVXMTA3WEc1OVhHNWNiaThxS2lCQmJpQnBibXhwYm1VZ1puVnVZM1JwYjI0Z1lXTmpaWEIwYVc1bklHOXVaU0J2Y2lCdGIzSmxJR0Z5WjNWdFpXNTBjeUJoYm1RZ2NISnZaSFZqYVc1bklHRWdkbUZzZFdVdUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRXhoYldKa1lVVjRjSEpsYzNOcGIyNGdlMXh1SUNBZ0lIUjVjR1U2SUZ3aWJHRnRZbVJoWENJN1hHNGdJQ0FnTHlvcUlFRnVJRzl5WkdWeVpXUWdiR2x6ZENCdlppQnVZVzFsWkNCaGNtZDFiV1Z1ZEhNdUlDb3ZYRzRnSUNBZ1lYSm5kVzFsYm5Sek9pQnpkSEpwYm1kYlhUdGNiaUFnSUNBdktpb2dWR2hsSUdacFpXeGtJSGRvYVdOb0lIZHBiR3dnWW1VZ1pYWmhiSFZoZEdWa0lIVnphVzVuSUhSb1pTQmhjbWQxYldWdWRITWdhVzRnWTI5dWRHVjRkQzRnS2k5Y2JpQWdJQ0IyWVd4MVpUb2dSWGh3Y21WemMybHZianRjYm4xY2JseHVMeW9xSUVGdUlHVjRjSEpsYzNOcGIyNGdkMmhwWTJnZ2JtVm5ZWFJsY3lCMGFHVWdkbUZzZFdVZ2IyWWdkR2hsSUc5eWFXZHBibUZzSUdacFpXeGtMaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCT1pXZGhkR1ZrUlhod2NtVnpjMmx2YmlCN1hHNGdJQ0FnZEhsd1pUb2dYQ0p1WldkaGRHVmtYQ0k3WEc1Y2JpQWdJQ0F2S2lvZ1ZHaGxJR05vYVd4a0lHWnBaV3hrSUhSdklHNWxaMkYwWlM0Z0tpOWNiaUFnSUNCamFHbHNaRG9nUlhod2NtVnpjMmx2Ymp0Y2JuMWNibHh1Wlhod2IzSjBJRzVoYldWemNHRmpaU0JGZUhCeVpYTnphVzl1Y3lCN1hHNGdJQ0FnTHlvcUlGUm9aU0JwYlhCc2FXTnBkQ0JtYVdWc1pDQnlaV1psY21WdVkybHVaeUIwYUdVZ1kzVnljbVZ1ZENCbWFXVnNaQzRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdZMjl1YzNRZ1VrOVhPaUJ6ZEhKcGJtY2dQU0JjSWlSeWIzZGNJanRjYmx4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQjJZWEpwWVdKc1pTaHVZVzFsT2lCemRISnBibWNwT2lCV1lYSnBZV0pzWlVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0luWmhjbWxoWW14bFhDSXNJRzVoYldVZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYkdsMFpYSmhiQ2gyWVd4MVpUb2dUR2wwWlhKaGJDazZJRXhwZEdWeVlXeEZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0pzYVhSbGNtRnNYQ0lzSUhaaGJIVmxJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHSnBibUZ5ZVU5d0tHeGxablE2SUVWNGNISmxjM05wYjI0c0lHOXdPaUJDYVc1aGNubFBjQ3dnY21sbmFIUTZJRVY0Y0hKbGMzTnBiMjRwT2lCRmVIQnlaWE56YVc5dUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIc2dkSGx3WlRvZ1hDSmlhVzVoY25sdmNGd2lMQ0JzWldaMExDQnZjQ3dnY21sbmFIUWdmU0JoY3lCQ2FXNWhjbmxQY0VWNGNISmxjM05wYjI0N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1WkdWNEtHOWlham9nUlhod2NtVnpjMmx2Yml3Z2FXNWtaWGc2SUVWNGNISmxjM05wYjI0cE9pQkZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0ppYVc1aGNubHZjRndpTENCc1pXWjBPaUJ2WW1vc0lISnBaMmgwT2lCcGJtUmxlQ3dnYjNBNklGd2lhVzVrWlhoY0lpQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLaUJEYjI1MlpYSjBjeUJoSUhOMGNtbHVaeUJwYmlCa2IzUXRibTkwWVhScGIyNHRabTl5YldGMElHbHVkRzhnWVNCMllYSnBZV0pzWlNCM2FHbGphQ0JwYm1SbGVHVnpMaUFxTDF4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnBibVJsZUZaaGNtbGhZbXhsS0c1aGJXVTZJSE4wY21sdVp5azZJRVY0Y0hKbGMzTnBiMjRnZTF4dUlDQWdJQ0FnSUNCc1pYUWdjR0Z5ZEhNZ1BTQnVZVzFsTG5Od2JHbDBLRndpTGx3aUtUdGNiaUFnSUNBZ0lDQWdiR1YwSUhKbGMzVnNkRG9nUlhod2NtVnpjMmx2YmlBOUlFVjRjSEpsYzNOcGIyNXpMblpoY21saFlteGxLSEJoY25Seld6QmRLVHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVc1a1pYZ2dQU0F4T3lCcGJtUmxlQ0E4SUhCaGNuUnpMbXhsYm1kMGFEc2dhVzVrWlhnckt5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpkV3gwSUQwZ1JYaHdjbVZ6YzJsdmJuTXVhVzVrWlhnb2NtVnpkV3gwTENCRmVIQnlaWE56YVc5dWN5NXNhWFJsY21Gc0tIQmhjblJ6VzJsdVpHVjRYU2twTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdiR0Z0WW1SaEtHRnlaM002SUhOMGNtbHVaMXRkTENCMllXeDFaVG9nUlhod2NtVnpjMmx2YmlrNklFeGhiV0prWVVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0lteGhiV0prWVZ3aUxDQmhjbWQxYldWdWRITTZJR0Z5WjNNc0lIWmhiSFZsSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJR1oxYm1Nb1puVnVZem9nUlhod2NtVnpjMmx2Yml3Z1lYSm5jem9nUlhod2NtVnpjMmx2Ymx0ZEtUb2dSblZ1WTNScGIyNUZlSEJ5WlhOemFXOXVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dYQ0ptZFc1amRHbHZibHdpTENCbWRXNWpMQ0JoY21kMWJXVnVkSE02SUdGeVozTWdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JHbHpkQ2gyWVd4MVpYTTZJRVY0Y0hKbGMzTnBiMjViWFNrNklFeHBjM1JGZUhCeVpYTnphVzl1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKc2FYTjBYQ0lzSUhaaGJIVmxjeUI5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR1Y0Y0c5eWRDQm1kVzVqZEdsdmJpQnZZbXBsWTNRb2RtRnNkV1Z6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JGZUhCeVpYTnphVzl1UGlrNklFOWlhbVZqZEVWNGNISmxjM05wYjI0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCY0ltOWlhbVZqZEZ3aUxDQjJZV3gxWlhNZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCbGVIQnZjblFnWm5WdVkzUnBiMjRnYm1WbllYUmxLR05vYVd4a09pQkZlSEJ5WlhOemFXOXVLVG9nVG1WbllYUmxaRVY0Y0hKbGMzTnBiMjRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCMGVYQmxPaUJjSW01bFoyRjBaV1JjSWl3Z1kyaHBiR1FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5EYjIxd1lYSmxUM0FvYjNBNklFSnBibUZ5ZVU5d0tUb2diM0FnYVhNZ1EyOXRjR0Z5WlU5d0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHOXdJRDA5SUZ3aVBEMWNJaUI4ZkNCdmNDQTlQU0JjSWp4Y0lpQjhmQ0J2Y0NBOVBTQmNJajVjSWlCOGZDQnZjQ0E5UFNCY0lqNDlYQ0lnZkh3Z2IzQWdQVDBnWENJaFBWd2lJSHg4SUc5d0lEMDlJRndpUFZ3aU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlNaWFIxY201eklHRWdjMlYwSUc5bUlHRnNiQ0IxYm1KdmRXNWtJSFpoY21saFlteGxjeUFvYVM1bExpd2dkbUZ5YVdGaWJHVnpJRzV2ZENCd2NtOTJhV1JsWkNCaWVTQmdjbTkzWUN3Z2JHRnRZbVJoY3l3Z2IzSWdjMmx0YVd4aGNpNHBJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlIVnVZbTkxYm1SV1lYSnBZV0pzWlhNb1pYaHdjam9nUlhod2NtVnpjMmx2Yml3Z1ltOTFibVE2SUZObGREeHpkSEpwYm1jK0lEMGdibVYzSUZObGRDaGJVazlYWFNrcE9pQlRaWFE4YzNSeWFXNW5QaUI3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvWlhod2NpNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2lZbWx1WVhKNWIzQmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCVGNHVmphV0ZzSUdOaGMyVWdZSEp2ZDF0Y0lpNHVMaTVjSWwxZ0xseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pYaHdjaTV2Y0NBOVBUMGdYQ0pwYm1SbGVGd2lJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVjRjSEl1YkdWbWRDNTBlWEJsSUQwOUlGd2lkbUZ5YVdGaWJHVmNJaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxlSEJ5TG14bFpuUXVibUZ0WlNBOVBTQlNUMWNnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaWGh3Y2k1eWFXZG9kQzUwZVhCbElEMDlJRndpYkdsMFpYSmhiRndpSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXhwZEdWeVlXeHpMbWx6VTNSeWFXNW5LR1Y0Y0hJdWNtbG5hSFF1ZG1Gc2RXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hpYjNWdVpDNW9ZWE1vWlhod2NpNXlhV2RvZEM1MllXeDFaU2twSUhKbGRIVnliaUJ1WlhjZ1UyVjBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnY21WMGRYSnVJRzVsZHlCVFpYUW9XMlY0Y0hJdWNtbG5hSFF1ZG1Gc2RXVmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlBkR2hsY25kcGMyVWdhblZ6ZENCamFHVmpheUJzWldaMElHRnVaQ0J5YVdkb2RDNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1JtbHNkR1Z5Y3k1elpYUlZibWx2YmloYmRXNWliM1Z1WkZaaGNtbGhZbXhsY3lobGVIQnlMbXhsWm5Rc0lHSnZkVzVrS1N3Z2RXNWliM1Z1WkZaaGNtbGhZbXhsY3lobGVIQnlMbkpwWjJoMExDQmliM1Z1WkNsZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ptZFc1amRHbHZibHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJHYVd4MFpYSnpMbk5sZEZWdWFXOXVLR1Y0Y0hJdVlYSm5kVzFsYm5SekxtMWhjQ2dvWVNrZ1BUNGdkVzVpYjNWdVpGWmhjbWxoWW14bGN5aGhMQ0JpYjNWdVpDa3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc1lXMWlaR0ZjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1WlhkQ2IzVnVaQ0E5SUdKdmRXNWtJRDgvSUc1bGR5QlRaWFFvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHRnlaeUJ2WmlCbGVIQnlMbUZ5WjNWdFpXNTBjeWtnYm1WM1FtOTFibVF1WVdSa0tHRnlaeWs3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFc1aWIzVnVaRlpoY21saFlteGxjeWhsZUhCeUxuWmhiSFZsTENCdVpYZENiM1Z1WkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liR2x6ZEZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCR2FXeDBaWEp6TG5ObGRGVnVhVzl1S0dWNGNISXVkbUZzZFdWekxtMWhjQ2dvZGlrZ1BUNGdkVzVpYjNWdVpGWmhjbWxoWW14bGN5aDJMQ0JpYjNWdVpDa3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdVpXZGhkR1ZrWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWdVltOTFibVJXWVhKcFlXSnNaWE1vWlhod2NpNWphR2xzWkN3Z1ltOTFibVFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltOWlhbVZqZEZ3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCR2FXeDBaWEp6TG5ObGRGVnVhVzl1S0U5aWFtVmpkQzUyWVd4MVpYTW9aWGh3Y2k1MllXeDFaWE1wTG0xaGNDZ29kaWtnUFQ0Z2RXNWliM1Z1WkZaaGNtbGhZbXhsY3loMkxDQmliM1Z1WkNrcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0oyWVhKcFlXSnNaVndpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGliM1Z1WkNBbUppQmliM1Z1WkM1b1lYTW9aWGh3Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCVFpYUW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElISmxkSFZ5YmlCdVpYY2dVMlYwS0Z0bGVIQnlMbTVoYldWZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pzYVhSbGNtRnNYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCVFpYUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2lCU1pXNWtaWElnWVc0Z1pYaHdjbVZ6YzJsdmJpQmhjeUJoSUhOMGNtbHVaeTRnS2k5Y2JpQWdJQ0JsZUhCdmNuUWdablZ1WTNScGIyNGdkRzlUZEhKcGJtY29aWGh3Y2pvZ1JYaHdjbVZ6YzJsdmJpazZJSE4wY21sdVp5QjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9aWGh3Y2k1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVltbHVZWEo1YjNCY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhod2NpNXZjQ0E5UFQwZ1hDSnBibVJsZUZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJnSkh0MGIxTjBjbWx1WnlobGVIQnlMbXhsWm5RcGZWc2tlM1J2VTNSeWFXNW5LR1Y0Y0hJdWNtbG5hSFFwZlYxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHQwYjFOMGNtbHVaeWhsZUhCeUxteGxablFwZlNBa2UyVjRjSEl1YjNCOUlDUjdkRzlUZEhKcGJtY29aWGh3Y2k1eWFXZG9kQ2w5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSm1kVzVqZEdsdmJsd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHQwYjFOMGNtbHVaeWhsZUhCeUxtWjFibU1wZlNna2UyVjRjSEl1WVhKbmRXMWxiblJ6TG0xaGNDaDBiMU4wY21sdVp5a3VhbTlwYmloY0lpd2dYQ0lwZlNsZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXhoYldKa1lWd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmdLQ1I3Wlhod2NpNWhjbWQxYldWdWRITXVhbTlwYmloY0lpd2dYQ0lwZlNrZ1BUNGdKSHQwYjFOMGNtbHVaeWhsZUhCeUxuWmhiSFZsS1gxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbXhwYzNSY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lGc2tlMlY0Y0hJdWRtRnNkV1Z6TG0xaGNDaDBiMU4wY21sdVp5a3VhbTlwYmloY0lpd2dYQ0lwZlYxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbTVsWjJGMFpXUmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZQ0VrZTNSdlUzUnlhVzVuS0dWNGNISXVZMmhwYkdRcGZXQTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYjJKcVpXTjBYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0I3Skh0UFltcGxZM1F1Wlc1MGNtbGxjeWhsZUhCeUxuWmhiSFZsY3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbTFoY0Nnb1cyc3NJSFpkS1NBOVBpQmdKSHRyZlRvZ0pIdDBiMU4wY21sdVp5aDJLWDFnS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVhbTlwYmloY0lpd2dYQ0lwZlgxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJblpoY21saFlteGxYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1Y0Y0hJdWJtRnRaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKc2FYUmxjbUZzWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZDNKaGNIQmxaQ0E5SUV4cGRHVnlZV3h6TG5keVlYQldZV3gxWlNobGVIQnlMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhkeVlYQndaV1FwSUhKbGRIVnliaUJjSW01MWJHeGNJanRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSGR5WVhCd1pXUXVkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2ljM1J5YVc1blhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lGd2lKSHQzY21Gd2NHVmtMblpoYkhWbGZWd2lZRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJNYVhSbGNtRnNjeTUwYjFOMGNtbHVaeWgzY21Gd2NHVmtMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQmxlSEJ2Y25RZ1kyOXVjM1FnVGxWTVRDQTlJRVY0Y0hKbGMzTnBiMjV6TG14cGRHVnlZV3dvYm5Wc2JDazdYRzU5WEc0aUxDQWlMeW9xSUZCaGNuTmxJR2x1YkdsdVpTQm1hV1ZzWkhNZ1lXNWtJRzkwYUdWeUlHVnRZbVZrWkdWa0lHMWxkR0ZrWVhSaElHbHVJR0VnYkdsdVpTNGdLaTljYmx4dWFXMXdiM0owSUhzZ1VGSkpUVWxVU1ZaRlV5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMM0JoY25ObGNsd2lPMXh1YVcxd2IzSjBJSHNnVEdsMFpYSmhiQ0I5SUdaeWIyMGdYQ0psZUhCeVpYTnphVzl1TDJ4cGRHVnlZV3hjSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRkFnWm5KdmJTQmNJbkJoY25OcGJXMXZibHdpTzF4dWFXMXdiM0owSUdWdGIycHBVbVZuWlhnZ1puSnZiU0JjSW1WdGIycHBMWEpsWjJWNFhDSTdYRzVwYlhCdmNuUWdleUJLYzI5dVEyOXVkbVZ5YzJsdmJpd2dTbk52Ymt4cGRHVnlZV3dnZlNCbWNtOXRJRndpYVc1a1pYZ3ZkSGx3WlhNdmFuTnZiaTlqYjIxdGIyNWNJanRjYmx4dUx5b3FJRUVnY0dGeWMyVmtJR2x1YkdsdVpTQm1hV1ZzWkNCbWNtOXRJR0VnYzNCbFkybG1hV01nYkdsdVpTNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVEc5allXeEpibXhwYm1WR2FXVnNaQ0I3WEc0Z0lDQWdMeW9xSUZSb1pTQnlZWGNnY0dGeWMyVmtJR3RsZVM0Z0tpOWNiaUFnSUNCclpYazZJSE4wY21sdVp6dGNiaUFnSUNBdktpb2dWR2hsSUhKaGR5QjJZV3gxWlNCdlppQjBhR1VnWm1sbGJHUXVJQ292WEc0Z0lDQWdkbUZzZFdVNklITjBjbWx1Wnp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSE4wWVhKMElHTnZiSFZ0YmlCdlppQjBhR1VnWm1sbGJHUXVJQ292WEc0Z0lDQWdjM1JoY25RNklHNTFiV0psY2p0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSE4wWVhKMElHTnZiSFZ0YmlCdlppQjBhR1VnS25aaGJIVmxLaUJtYjNJZ2RHaGxJR1pwWld4a0xpQXFMMXh1SUNBZ0lITjBZWEowVm1Gc2RXVTZJRzUxYldKbGNqdGNiaUFnSUNBdktpb2dWR2hsSUdWdVpDQmpiMngxYlc0Z2IyWWdkR2hsSUdacFpXeGtMaUFxTDF4dUlDQWdJR1Z1WkRvZ2JuVnRZbVZ5TzF4dUlDQWdJQzhxS2lCSlppQjBhR2x6SUdsdWJHbHVaU0JtYVdWc1pDQjNZWE1nWkdWbWFXNWxaQ0IyYVdFZ1lTQjNjbUZ3Y0dsdVp5QW9KMXNuSUc5eUlDY29KeUJ2Y2lBbmJHbHVheWNwTENCMGFHVnVJSFJvWlNCM2NtRndjR2x1WnlCMGFHRjBJSGRoY3lCMWMyVmtMaUFxTDF4dUlDQWdJSGR5WVhCd2FXNW5Qem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNHZLaW9nUm5Wc2JDQnBibXhwYm1VZ1ptbGxiR1FnYldWMFlXUmhkR0VnWm05eUlHRnVJRzlpYW1WamRDNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1c1c2FXNWxSbWxsYkdRZ2UxeHVJQ0FnSUM4cUtpQlVhR1VnWVdOMGRXRnNJR3RsZVNCa1pYTmpjbWxpYVc1bklIUm9aU0JwYm14cGJtVWdabWxsYkdRdUlDb3ZYRzRnSUNBZ2EyVjVPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0x5b3FJRlJvWlNCeVlYY2dkbUZzZFdVZ2IyWWdkR2hsSUdsdWJHbHVaU0JtYVdWc1pDNGdLaTljYmlBZ0lDQnlZWGM2SUhOMGNtbHVaenRjYmlBZ0lDQXZLaW9nVkdobElIQmhjbk5sWkNCMllXeDFaUzRnS2k5Y2JpQWdJQ0IyWVd4MVpUb2dUR2wwWlhKaGJEdGNiaUFnSUNBdktpb2dSblZzYkNCd2IzTnBkR2x2YmlCcGJtWnZjbTFoZEdsdmJpQm1iM0lnZDJobGNtVWdkR2hsSUdsdWJHbHVaU0JtYVdWc1pDQnBjeUJzYjJOaGRHVmtJR2x1SUhSb1pTQmtiMk4xYldWdWRDNGdLaTljYmlBZ0lDQndiM05wZEdsdmJqb2dlMXh1SUNBZ0lDQWdJQ0F2S2lvZ1ZHaGxJR3hwYm1VZ2JuVnRZbVZ5SUhSb1pTQnBibXhwYm1VZ1ptbGxiR1FnWVhCd1pXRnljeUJ2Ymk0Z0tpOWNiaUFnSUNBZ0lDQWdiR2x1WlRvZ2JuVnRZbVZ5TzF4dUlDQWdJQ0FnSUNBdktpb2dWR2hsSUhOMFlYSjBJR052YkhWdGJpQnZaaUIwYUdVZ1ptbGxiR1F1SUNvdlhHNGdJQ0FnSUNBZ0lITjBZWEowT2lCdWRXMWlaWEk3WEc0Z0lDQWdJQ0FnSUM4cUtpQlVhR1VnYzNSaGNuUWdZMjlzZFcxdUlHOW1JSFJvWlNBcWRtRnNkV1VxSUdadmNpQjBhR1VnWm1sbGJHUXVJRWx0YldWa2FXRjBaV3g1SUdGbWRHVnlJSFJvWlNBbk9qb25MaUFxTDF4dUlDQWdJQ0FnSUNCemRHRnlkRlpoYkhWbE9pQnVkVzFpWlhJN1hHNGdJQ0FnSUNBZ0lDOHFLaUJVYUdVZ1pXNWtJR052YkhWdGJpQnZaaUIwYUdVZ1ptbGxiR1F1SUNvdlhHNGdJQ0FnSUNBZ0lHVnVaRG9nYm5WdFltVnlPMXh1SUNBZ0lIMDdYRzRnSUNBZ0x5b3FJRWxtSUhSb2FYTWdhVzVzYVc1bElHWnBaV3hrSUhkaGN5QmtaV1pwYm1Wa0lIWnBZU0JoSUhkeVlYQndhVzVuSUNnbld5Y2diM0lnSnlnbklHOXlJQ2RzYVc1ckp5a3NJSFJvWlc0Z2RHaGxJSGR5WVhCd2FXNW5JSFJvWVhRZ2QyRnpJSFZ6WldRdUlDb3ZYRzRnSUNBZ2QzSmhjSEJwYm1jL09pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtpQktVMDlPTENCelpYSnBZV3hwZW1GaWJHVWdjbVZ3Y21WelpXNTBZWFJwYjI0Z2IyWWdZVzRnYVc1c2FXNWxJR1pwWld4a0xpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JLYzI5dVNXNXNhVzVsUm1sbGJHUWdlMXh1SUNBZ0lDOHFLaUJVYUdVZ1lXTjBkV0ZzSUd0bGVTQmtaWE5qY21saWFXNW5JSFJvWlNCcGJteHBibVVnWm1sbGJHUXVJQ292WEc0Z0lDQWdhMlY1T2lCemRISnBibWM3WEc0Z0lDQWdMeW9xSUZSb1pTQnlZWGNnZG1Gc2RXVWdiMllnZEdobElHbHViR2x1WlNCbWFXVnNaQzRnS2k5Y2JpQWdJQ0J5WVhjNklITjBjbWx1Wnp0Y2JpQWdJQ0F2S2lvZ1ZHaGxJSEJoY25ObFpDQjJZV3gxWlM0Z0tpOWNiaUFnSUNCMllXeDFaVG9nU25OdmJreHBkR1Z5WVd3N1hHNGdJQ0FnTHlvcUlFWjFiR3dnY0c5emFYUnBiMjRnYVc1bWIzSnRZWFJwYjI0Z1ptOXlJSGRvWlhKbElIUm9aU0JwYm14cGJtVWdabWxsYkdRZ2FYTWdiRzlqWVhSbFpDQnBiaUIwYUdVZ1pHOWpkVzFsYm5RdUlDb3ZYRzRnSUNBZ2NHOXphWFJwYjI0NklIdGNiaUFnSUNBZ0lDQWdMeW9xSUZSb1pTQnNhVzVsSUc1MWJXSmxjaUIwYUdVZ2FXNXNhVzVsSUdacFpXeGtJR0Z3Y0dWaGNuTWdiMjR1SUNvdlhHNGdJQ0FnSUNBZ0lHeHBibVU2SUc1MWJXSmxjanRjYmlBZ0lDQWdJQ0FnTHlvcUlGUm9aU0J6ZEdGeWRDQmpiMngxYlc0Z2IyWWdkR2hsSUdacFpXeGtMaUFxTDF4dUlDQWdJQ0FnSUNCemRHRnlkRG9nYm5WdFltVnlPMXh1SUNBZ0lDQWdJQ0F2S2lvZ1ZHaGxJSE4wWVhKMElHTnZiSFZ0YmlCdlppQjBhR1VnS25aaGJIVmxLaUJtYjNJZ2RHaGxJR1pwWld4a0xpQkpiVzFsWkdsaGRHVnNlU0JoWm5SbGNpQjBhR1VnSnpvNkp5NGdLaTljYmlBZ0lDQWdJQ0FnYzNSaGNuUldZV3gxWlRvZ2JuVnRZbVZ5TzF4dUlDQWdJQ0FnSUNBdktpb2dWR2hsSUdWdVpDQmpiMngxYlc0Z2IyWWdkR2hsSUdacFpXeGtMaUFxTDF4dUlDQWdJQ0FnSUNCbGJtUTZJRzUxYldKbGNqdGNiaUFnSUNCOU8xeHVJQ0FnSUM4cUtpQkpaaUIwYUdseklHbHViR2x1WlNCbWFXVnNaQ0IzWVhNZ1pHVm1hVzVsWkNCMmFXRWdZU0IzY21Gd2NHbHVaeUFvSjFzbklHOXlJQ2NvSnlCdmNpQW5iR2x1YXljcExDQjBhR1Z1SUhSb1pTQjNjbUZ3Y0dsdVp5QjBhR0YwSUhkaGN5QjFjMlZrTGlBcUwxeHVJQ0FnSUhkeVlYQndhVzVuUHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzR2S2lvZ1EyOXVkbVZ5ZENCaGJpQnBibXhwYm1VZ1ptbGxiR1FnZEc4Z1lTQktVMDlPSUdadmNtMWhkQzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcWMyOXVTVzVzYVc1bFJtbGxiR1FvWm1sbGJHUTZJRWx1YkdsdVpVWnBaV3hrS1RvZ1NuTnZia2x1YkdsdVpVWnBaV3hrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dabWxsYkdRc0lIc2dkbUZzZFdVNklFcHpiMjVEYjI1MlpYSnphVzl1TG1wemIyNG9abWxsYkdRdWRtRnNkV1VwSUgwcE8xeHVmVnh1WEc0dktpb2dRMjl1ZG1WeWRDQmhJRXBUVDA0Z2FXNXNhVzVsSUdacFpXeGtJR0poWTJzZ2RHOGdZU0J5WldkMWJHRnlJR1pwWld4a0xpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFpoYkhWbFNXNXNhVzVsUm1sbGJHUW9abWxsYkdRNklFcHpiMjVKYm14cGJtVkdhV1ZzWkNrNklFbHViR2x1WlVacFpXeGtJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z1ptbGxiR1FzSUhzZ2RtRnNkV1U2SUVwemIyNURiMjUyWlhKemFXOXVMblpoYkhWbEtHWnBaV3hrTG5aaGJIVmxLU0I5S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0Z6U1c1c2FXNWxSbWxsYkdRb2JHOWpZV3c2SUV4dlkyRnNTVzVzYVc1bFJtbGxiR1FzSUd4cGJtVnViem9nYm5WdFltVnlLVG9nU1c1c2FXNWxSbWxsYkdRN1hHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTkpibXhwYm1WR2FXVnNaQ2hzYjJOaGJEb2dURzlqWVd4SmJteHBibVZHYVdWc1pGdGRMQ0JzYVc1bGJtODZJRzUxYldKbGNpazZJRWx1YkdsdVpVWnBaV3hrVzEwN1hHNHZLaW9nUTI5dWRtVnlkQ0JoSUd4dlkyRnNJR2x1YkdsdVpTQm1hV1ZzWkNCcGJuUnZJR0VnWm5Wc2JDQnBibXhwYm1VZ1ptbGxiR1FnWW5rZ2NHVnlabTl5YldsdVp5QndZWEp6YVc1bklHRnVaQ0JoWkdScGJtY2dkR2hsSUdOdmNuSmxZM1FnYkdsdVpTQnVkVzFpWlhJdUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE5KYm14cGJtVkdhV1ZzWkNoY2JpQWdJQ0JzYjJOaGJEb2dURzlqWVd4SmJteHBibVZHYVdWc1pDQjhJRXh2WTJGc1NXNXNhVzVsUm1sbGJHUmJYU3hjYmlBZ0lDQnNhVzVsYm04NklHNTFiV0psY2x4dUtUb2dTVzVzYVc1bFJtbGxiR1FnZkNCSmJteHBibVZHYVdWc1pGdGRJSHRjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaHNiMk5oYkNrcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHeHZZMkZzTG0xaGNDZ29aaWtnUFQ0Z1lYTkpibXhwYm1WR2FXVnNaQ2htTENCc2FXNWxibThwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0JyWlhrNklHeHZZMkZzTG10bGVTeGNiaUFnSUNBZ0lDQWdjbUYzT2lCc2IyTmhiQzUyWVd4MVpTeGNiaUFnSUNBZ0lDQWdkbUZzZFdVNklIQmhjbk5sU1c1c2FXNWxWbUZzZFdVb2JHOWpZV3d1ZG1Gc2RXVXBMRnh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR2x1WlRvZ2JHbHVaVzV2TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1JoY25RNklHeHZZMkZzTG5OMFlYSjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblJXWVd4MVpUb2diRzlqWVd3dWMzUmhjblJXWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWdVpEb2diRzlqWVd3dVpXNWtMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCM2NtRndjR2x1WnpvZ2JHOWpZV3d1ZDNKaGNIQnBibWNzWEc0Z0lDQWdmVHRjYm4xY2JseHVMeW9xSUZSb1pTQjNjbUZ3Y0dWeUlHTm9ZWEpoWTNSbGNuTWdkR2hoZENCallXNGdZbVVnZFhObFpDQjBieUJrWldacGJtVWdZVzRnYVc1c2FXNWxJR1pwWld4a0xpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFbE9URWxPUlY5R1NVVk1SRjlYVWtGUVVFVlNVem9nVW1WaFpHOXViSGs4VW1WamIzSmtQSE4wY21sdVp5d2djM1J5YVc1blBqNGdQU0JQWW1wbFkzUXVabkpsWlhwbEtIdGNiaUFnSUNCY0lsdGNJam9nWENKZFhDSXNYRzRnSUNBZ1hDSW9YQ0k2SUZ3aUtWd2lMRnh1ZlNrN1hHNWNiaThxS2x4dUlDb2dSbWx1WkNCaElHMWhkR05vYVc1bklHTnNiM05wYm1jZ1luSmhZMnRsZENCMGFHRjBJRzlqWTNWeWN5QmhkQ0J2Y2lCaFpuUmxjaUJnYzNSaGNuUmdMQ0J5WlhOd1pXTjBhVzVuSUc1bGMzUnBibWNnWVc1a0lHVnpZMkZ3WlhNdUlFbG1JR1p2ZFc1a0xGeHVJQ29nY21WMGRYSnVjeUIwYUdVZ2RtRnNkV1VnWTI5dWRHRnBibVZrSUhkcGRHaHBiaUJoYm1RZ2RHaGxJSE4wY21sdVp5QnBibVJsZUNCaFpuUmxjaUIwYUdVZ1pXNWtJRzltSUhSb1pTQjJZV3gxWlM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnWm1sdVpFTnNiM05wYm1jb1hHNGdJQ0FnYkdsdVpUb2djM1J5YVc1bkxGeHVJQ0FnSUhOMFlYSjBPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2IzQmxiam9nYzNSeWFXNW5MRnh1SUNBZ0lHTnNiM05sT2lCemRISnBibWRjYmlrNklIc2dkbUZzZFdVNklITjBjbWx1WnpzZ1pXNWtTVzVrWlhnNklHNTFiV0psY2lCOUlId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQnNaWFFnYm1WemRHbHVaeUE5SURBN1hHNGdJQ0FnYkdWMElHVnpZMkZ3WldRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwYm1SbGVDQTlJSE4wWVhKME95QnBibVJsZUNBOElHeHBibVV1YkdWdVozUm9PeUJwYm1SbGVDc3JLU0I3WEc0Z0lDQWdJQ0FnSUd4bGRDQmphR0Z5SUQwZ2JHbHVaUzVqYUdGeVFYUW9hVzVrWlhncE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUVGc2JHOTNjeUJtYjNJZ1pHOTFZbXhsSUdWelkyRndaWE1nYkdsclpTQW5YRnhjWENjZ2RHOGdZbVVnY21WdVpHVnlaV1FnYm05eWJXRnNiSGt1WEc0Z0lDQWdJQ0FnSUdsbUlDaGphR0Z5SUQwOUlGd2lYRnhjWEZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGMyTmhjR1ZrSUQwZ0lXVnpZMkZ3WldRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDOHZJRWxtSUdWelkyRndaV1FzSUdsbmJtOXlaU0IwYUdVZ2JtVjRkQ0JqYUdGeVlXTjBaWElnWm05eUlHTnZiWEIxZEdsdVp5QnVaWE4wYVc1bkxDQnlaV2RoY21Sc1pYTnpJRzltSUhkb1lYUWdhWFFnYVhNdVhHNGdJQ0FnSUNBZ0lHbG1JQ2hsYzJOaGNHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxjMk5oY0dWa0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYUdGeUlEMDlJRzl3Wlc0cElHNWxjM1JwYm1jckt6dGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZMmhoY2lBOVBTQmpiRzl6WlNrZ2JtVnpkR2x1WnkwdE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUU5dWJIa2diMk5qZFhKeklHbG1JSGRsSUdGeVpTQnZiaUJoSUdOc2IzTmxJR05vWVhKaFkzUmxjaUJoYm1RZ2RISm9aWEpsSUdseklHNXZJRzF2Y21VZ2JtVnpkR2x1Wnk1Y2JpQWdJQ0FnSUNBZ2FXWWdLRzVsYzNScGJtY2dQQ0F3S1NCeVpYUjFjbTRnZXlCMllXeDFaVG9nYkdsdVpTNXpkV0p6ZEhKcGJtY29jM1JoY25Rc0lHbHVaR1Y0S1M1MGNtbHRLQ2tzSUdWdVpFbHVaR1Y0T2lCcGJtUmxlQ0FySURFZ2ZUdGNibHh1SUNBZ0lDQWdJQ0JsYzJOaGNHVmtJRDBnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JuMWNibHh1THlvcUlFWnBibVFnZEdobElDYzZPaWNnYzJWd1lYSmhkRzl5SUdsdUlHRnVJR2x1YkdsdVpTQm1hV1ZzWkM0Z0tpOWNibVoxYm1OMGFXOXVJR1pwYm1SVFpYQmhjbUYwYjNJb2JHbHVaVG9nYzNSeWFXNW5MQ0J6ZEdGeWREb2diblZ0WW1WeUtUb2dleUJyWlhrNklITjBjbWx1WnpzZ2RtRnNkV1ZKYm1SbGVEb2diblZ0WW1WeUlIMGdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJR3hsZENCelpYQWdQU0JzYVc1bExtbHVaR1Y0VDJZb1hDSTZPbHdpTENCemRHRnlkQ2s3WEc0Z0lDQWdhV1lnS0hObGNDQThJREFwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdleUJyWlhrNklHeHBibVV1YzNWaWMzUnlhVzVuS0hOMFlYSjBMQ0J6WlhBcExuUnlhVzBvS1N3Z2RtRnNkV1ZKYm1SbGVEb2djMlZ3SUNzZ01pQjlPMXh1ZlZ4dVhHNHZLaW9nVkhKNUlIUnZJR052YlhCc1pYUmxiSGtnY0dGeWMyVWdZVzRnYVc1c2FXNWxJR1pwWld4a0lITjBZWEowYVc1bklHRjBJSFJvWlNCbmFYWmxiaUJ3YjNOcGRHbHZiaTRnUVhOemRXMWxjeUJnYzNSaGNuUmdJR2x6SUc5dUlHRWdkM0poY0hCcGJtY2dZMmhoY21GamRHVnlMaUFxTDF4dVpuVnVZM1JwYjI0Z1ptbHVaRk53WldOcFptbGpTVzVzYVc1bFJtbGxiR1FvYkdsdVpUb2djM1J5YVc1bkxDQnpkR0Z5ZERvZ2JuVnRZbVZ5S1RvZ1RHOWpZV3hKYm14cGJtVkdhV1ZzWkNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ2JHVjBJRzl3Wlc0Z1BTQnNhVzVsTG1Ob1lYSkJkQ2h6ZEdGeWRDazdYRzVjYmlBZ0lDQnNaWFFnYTJWNUlEMGdabWx1WkZObGNHRnlZWFJ2Y2loc2FXNWxMQ0J6ZEdGeWRDQXJJREVwTzF4dUlDQWdJR2xtSUNoclpYa2dQVDA5SUhWdVpHVm1hVzVsWkNrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUM4dklFWmhhV3dnZEdobElHMWhkR05vSUdsbUlIZGxJR1pwYm1RZ1lXNTVJSE5sY0dGeVlYUnZjaUJqYUdGeVlXTjBaWEp6SUNodWIzUWdZV3hzYjNkbFpDQnBiaUJyWlhsektTNWNiaUFnSUNCbWIzSWdLR3hsZENCelpYQWdiMllnVDJKcVpXTjBMbXRsZVhNb1NVNU1TVTVGWDBaSlJVeEVYMWRTUVZCUVJWSlRLUzVqYjI1allYUW9UMkpxWldOMExuWmhiSFZsY3loSlRreEpUa1ZmUmtsRlRFUmZWMUpCVUZCRlVsTXBLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9hMlY1TG10bGVTNXBibU5zZFdSbGN5aHpaWEFwS1NCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCMllXeDFaU0E5SUdacGJtUkRiRzl6YVc1bktHeHBibVVzSUd0bGVTNTJZV3gxWlVsdVpHVjRMQ0J2Y0dWdUxDQkpUa3hKVGtWZlJrbEZURVJmVjFKQlVGQkZVbE5iYjNCbGJsMHBPMXh1SUNBZ0lHbG1JQ2gyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrS1NCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnYTJWNU9pQnJaWGt1YTJWNUxGeHVJQ0FnSUNBZ0lDQjJZV3gxWlRvZ2RtRnNkV1V1ZG1Gc2RXVXNYRzRnSUNBZ0lDQWdJSE4wWVhKME9pQnpkR0Z5ZEN4Y2JpQWdJQ0FnSUNBZ2MzUmhjblJXWVd4MVpUb2dhMlY1TG5aaGJIVmxTVzVrWlhnc1hHNGdJQ0FnSUNBZ0lHVnVaRG9nZG1Gc2RXVXVaVzVrU1c1a1pYZ3NYRzRnSUNBZ0lDQWdJSGR5WVhCd2FXNW5PaUJ2Y0dWdUxGeHVJQ0FnSUgwN1hHNTlYRzVjYmk4cUtpQlFZWEp6WlNCaElIUmxlSFIxWVd3Z2FXNXNhVzVsSUdacFpXeGtJSFpoYkhWbElHbHVkRzhnYzI5dFpYUm9hVzVuSUhkbElHTmhiaUIzYjNKcklIZHBkR2d1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHRnljMlZKYm14cGJtVldZV3gxWlNoMllXeDFaVG9nYzNSeWFXNW5LVG9nVEdsMFpYSmhiQ0I3WEc0Z0lDQWdMeThnUlcxd2RIa2dhVzVzYVc1bElIWmhiSFZsY3lBb2FTNWxMaXdnYm04Z2RHVjRkQ2tnYzJodmRXeGtJRzFoY0NCMGJ5QnVkV3hzSUhSdklHMWhkR05vSUd4dmJtY3RkR1Z5YlNCRVlYUmhkbWxsZHlCelpXMWhiblJwWTNNdVhHNGdJQ0FnTHk4Z1RuVnNiQ0JwY3lCaGJITnZJR0VnYlc5eVpTQjFibWwyWlhKellXd2dkSGx3WlNCMGJ5QmtaV0ZzSUhkcGRHZ2dkR2hoYmlCemRISnBibWR6TENCemFXNWpaU0JoYkd3Z1puVnVZM1JwYjI1eklHRmpZMlZ3ZENCdWRXeHNjeTVjYmlBZ0lDQnBaaUFvZG1Gc2RXVXVkSEpwYlNncElEMDlJRndpWENJcElISmxkSFZ5YmlCdWRXeHNPMXh1WEc0Z0lDQWdMeThnVkdobElITjBjbWx3Y0dWa0lHeHBkR1Z5WVd3Z1ptbGxiR1FnY0dGeWMyVnlJSFZ1WkdWeWMzUmhibVJ6SUdGc2JDQnZaaUIwYUdVZ2JtOXVMV0Z5Y21GNUwyNXZiaTF2WW1wbFkzUWdabWxsYkdSeklHRnVaQ0JqWVc0Z2NHRnljMlVnZEdobGJTQm1iM0lnZFhNdVhHNGdJQ0FnTHk4Z1NXNXNhVzVsSUdacFpXeGtJRzlpYW1WamRITWdZWEpsSUc1dmRDQmpkWEp5Wlc1MGJIa2djM1Z3Y0c5eWRHVmtPeUJwYm14cGJtVWdZWEp5WVhrZ2IySnFaV04wY3lCb1lYWmxJSFJ2SUdKbElHaGhibVJzWldRZ1lua2dkR2hsSUhCaGNuTmxjbHh1SUNBZ0lDOHZJSE5sY0dGeVlYUmxiSGt1WEc0Z0lDQWdiR1YwSUdsdWJHbHVaU0E5SUZCU1NVMUpWRWxXUlZNdWFXNXNhVzVsUm1sbGJHUXVjR0Z5YzJVb2RtRnNkV1VwTzF4dUlDQWdJR2xtSUNocGJteHBibVV1YzNSaGRIVnpLU0J5WlhSMWNtNGdhVzVzYVc1bExuWmhiSFZsTzF4dUlDQWdJR1ZzYzJVZ2NtVjBkWEp1SUhaaGJIVmxPMXh1ZlZ4dVhHNHZLaW9nUlhoMGNtRmpkSE1nYVc1c2FXNWxJR1pwWld4a2N5QnZaaUIwYUdVZ1ptOXliU0FuVzJ0bGVUbzZJSFpoYkhWbFhTY2dabkp2YlNCaElHeHBibVVnYjJZZ2RHVjRkQzRnVkdocGN5QnBjeUJrYjI1bElHbHVJR0VnY21Wc1lYUnBkbVZzZVZ4dUlDb2dYQ0p5YjJKMWMzUmNJaUIzWVhrZ2RHOGdZWFp2YVdRZ1ptRnBiR2x1WnlCa2RXVWdkRzhnWW1Ga0lHNWxjM1JwYm1jZ2IzSWdiM1JvWlhJZ2FXNTBaWEptWlhKcGJtY2dUV0Z5YTJSdmQyNGdjM2x0WW05c2N6cGNiaUFxWEc0Z0tpQXRJRXh2YjJzZ1ptOXlJR0Z1ZVNCM2NtRndjR1Z5Y3lBb0oxc25JR0Z1WkNBbktDY3BJR2x1SUhSb1pTQnNhVzVsTENCMGNubHBibWNnZEc4Z2NHRnljMlVnZDJoaGRHVjJaWElnWTI5dFpYTWdZV1owWlhJZ2FYUWdZWE1nWVc0Z2FXNXNhVzVsSUd0bGVUbzZMbHh1SUNvZ0xTQkpaaUJ6ZFdOalpYTnpablZzTENCelkyRnVJSFZ1ZEdsc0lIbHZkU0JtYVc1a0lHRWdiV0YwWTJocGJtY2daVzVrSUdKeVlXTnJaWFFzSUdGdVpDQndZWEp6WlNCM2FHRjBaWFpsY2lCeVpXMWhhVzV6SUdGeklHRnVJR2x1YkdsdVpTQjJZV3gxWlM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1Y0ZEhKaFkzUkpibXhwYm1WR2FXVnNaSE1vYkdsdVpUb2djM1J5YVc1bkxDQnBibU5zZFdSbFZHRnphMFpwWld4a2N6b2dZbTl2YkdWaGJpQTlJR1poYkhObEtUb2dURzlqWVd4SmJteHBibVZHYVdWc1pGdGRJSHRjYmlBZ0lDQnNaWFFnWm1sbGJHUnpPaUJNYjJOaGJFbHViR2x1WlVacFpXeGtXMTBnUFNCYlhUdGNiaUFnSUNCbWIzSWdLR3hsZENCM2NtRndjR1Z5SUc5bUlFOWlhbVZqZEM1clpYbHpLRWxPVEVsT1JWOUdTVVZNUkY5WFVrRlFVRVZTVXlrcElIdGNiaUFnSUNBZ0lDQWdiR1YwSUdadmRXNWtTVzVrWlhnZ1BTQnNhVzVsTG1sdVpHVjRUMllvZDNKaGNIQmxjaWs3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2htYjNWdVpFbHVaR1Y0SUQ0OUlEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J3WVhKelpXUkdhV1ZzWkNBOUlHWnBibVJUY0dWamFXWnBZMGx1YkdsdVpVWnBaV3hrS0d4cGJtVXNJR1p2ZFc1a1NXNWtaWGdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGd1lYSnpaV1JHYVdWc1pDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p2ZFc1a1NXNWtaWGdnUFNCc2FXNWxMbWx1WkdWNFQyWW9kM0poY0hCbGNpd2dabTkxYm1SSmJtUmxlQ0FySURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JtYVdWc1pITXVjSFZ6YUNod1lYSnpaV1JHYVdWc1pDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzVnVaRWx1WkdWNElEMGdiR2x1WlM1cGJtUmxlRTltS0hkeVlYQndaWElzSUhCaGNuTmxaRVpwWld4a0xtVnVaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2FXNWpiSFZrWlZSaGMydEdhV1ZzWkhNcElHWnBaV3hrY3lBOUlHWnBaV3hrY3k1amIyNWpZWFFvWlhoMGNtRmpkRk53WldOcFlXeFVZWE5yUm1sbGJHUnpLR3hwYm1VcEtUdGNibHh1SUNBZ0lHWnBaV3hrY3k1emIzSjBLQ2hoTENCaUtTQTlQaUJoTG5OMFlYSjBJQzBnWWk1emRHRnlkQ2s3WEc1Y2JpQWdJQ0JzWlhRZ1ptbHNkR1Z5WldSR2FXVnNaSE02SUV4dlkyRnNTVzVzYVc1bFJtbGxiR1JiWFNBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dabWxsYkdSekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBJRDA5SURBZ2ZId2dabWxzZEdWeVpXUkdhV1ZzWkhOYlptbHNkR1Z5WldSR2FXVnNaSE11YkdWdVozUm9JQzBnTVYwdVpXNWtJRHdnWm1sbGJHUnpXMmxkTG5OMFlYSjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1hV3gwWlhKbFpFWnBaV3hrY3k1d2RYTm9LR1pwWld4a2MxdHBYU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHWnBiSFJsY21Wa1JtbGxiR1J6TzF4dWZWeHVYRzR2S2lvZ1ZtRnNhV1JoZEdWeklIUm9ZWFFnWVNCeVlYY2dabWxsYkdRZ2JtRnRaU0JvWVhNZ1lTQjJZV3hwWkNCbWIzSnRMaUFxTDF4dVkyOXVjM1FnUmxWTVRGOU1TVTVGWDB0RldWOVFRVkpVT2lCUUxsQmhjbk5sY2p4emRISnBibWMrSUQwZ1VDNWhiSFFvWEc0Z0lDQWdVQzV5WldkbGVIQW9ibVYzSUZKbFowVjRjQ2hsYlc5cWFWSmxaMlY0S0Nrc0lGd2lkVndpS1Nrc1hHNGdJQ0FnVUM1eVpXZGxlSEFvTDFzd0xUbGNYSEI3VEdWMGRHVnlmVnhjZDF4Y2MxOHZMVjByTDNVcFhHNHBYRzRnSUNBZ0xtMWhibmtvS1Z4dUlDQWdJQzV0WVhBb0tIQmhjblJ6S1NBOVBpQndZWEowY3k1cWIybHVLRndpWENJcEtUdGNibHh1WTI5dWMzUWdSbFZNVEY5TVNVNUZYMHRGV1Y5UVFWSlRSVkk2SUZBdVVHRnljMlZ5UEhOMGNtbHVaejRnUFNCUUxuSmxaMlY0Y0NndlcxNHdMVGxjWEhkY1hIQjdUR1YwZEdWeWZWMHFMM1VwWEc0Z0lDQWdMblJvWlc0b1JsVk1URjlNU1U1RlgwdEZXVjlRUVZKVUtWeHVJQ0FnSUM1emEybHdLRkF1Y21WblpYaHdLQzliWDF4Y0tuNWdYU292ZFNrcE8xeHVYRzR2S2lvZ1FYUjBaVzF3ZENCMGJ5QmxlSFJ5WVdOMElHRWdablZzYkMxc2FXNWxJR1pwWld4a0lDaExaWGs2T2lCV1lXeDFaU0JqYjI1emRXMXBibWNnZEdobElHVnVkR2x5WlNCamIyNTBaVzUwSUd4cGJtVXBMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWNGRISmhZM1JHZFd4c1RHbHVaVVpwWld4a0tIUmxlSFE2SUhOMGNtbHVaeWs2SUV4dlkyRnNTVzVzYVc1bFJtbGxiR1FnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUd4bGRDQnpaWEFnUFNCbWFXNWtVMlZ3WVhKaGRHOXlLSFJsZUhRc0lEQXBPMXh1SUNBZ0lHbG1JQ2doYzJWd0tTQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0x5OGdWMlVnYm1WbFpDQjBieUJ3YjNOMExYQnliMk5sYzNNZ2RHaGxJR3RsZVNCMGJ5QmtjbTl3SUhWdWJtVmpaWE56WVhKNUlHOXdaVzVwYm1jZ1lXNXViM1JoZEdsdmJuTWdZWE1nZDJWc2JDQmhjMXh1SUNBZ0lDOHZJR1J5YjNBZ2MzVnljbTkxYm1ScGJtY2dUV0Z5YTJSdmQyNHVYRzRnSUNBZ2JHVjBJSEpsWVd4TFpYa2dQU0JHVlV4TVgweEpUa1ZmUzBWWlgxQkJVbE5GVWk1d1lYSnpaU2h6WlhBdWEyVjVLVHRjYmlBZ0lDQnBaaUFvSVhKbFlXeExaWGt1YzNSaGRIVnpLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdhMlY1T2lCeVpXRnNTMlY1TG5aaGJIVmxMRnh1SUNBZ0lDQWdJQ0IyWVd4MVpUb2dkR1Y0ZEM1emRXSnpkSEpwYm1jb2MyVndMblpoYkhWbFNXNWtaWGdwTG5SeWFXMG9LU3hjYmlBZ0lDQWdJQ0FnYzNSaGNuUTZJREFzWEc0Z0lDQWdJQ0FnSUhOMFlYSjBWbUZzZFdVNklITmxjQzUyWVd4MVpVbHVaR1Y0TEZ4dUlDQWdJQ0FnSUNCbGJtUTZJSFJsZUhRdWJHVnVaM1JvTEZ4dUlDQWdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRFVrVkJWRVZFWDBSQlZFVmZVa1ZIUlZnZ1BTQXZYRngxZXpJM09UVjlYRnh6S2loY1hHUjdOSDB0WEZ4a2V6SjlMVnhjWkhzeWZTa3ZkVHRjYm1WNGNHOXlkQ0JqYjI1emRDQkVWVVZmUkVGVVJWOVNSVWRGV0NBOUlDOG9QenBjWEhWN01VWTBRelY5ZkZ4Y2RYc3hSalJETm4xOFhGeDFlekZHTlVRemZWeGNkWHRHUlRCR2ZUOHBYRnh6S2loY1hHUjdOSDB0WEZ4a2V6SjlMVnhjWkhzeWZTa3ZkVHRjYm1WNGNHOXlkQ0JqYjI1emRDQkVUMDVGWDBSQlZFVmZVa1ZIUlZnZ1BTQXZYRngxZXpJM01EVjlYRnh6S2loY1hHUjdOSDB0WEZ4a2V6SjlMVnhjWkhzeWZTa3ZkVHRjYm1WNGNHOXlkQ0JqYjI1emRDQlRRMGhGUkZWTVJVUmZSRUZVUlY5U1JVZEZXQ0E5SUM5YlhGeDFlekl6UmpOOVhGeDFlekl6TVVKOVhWeGNjeW9vWEZ4a2V6UjlMVnhjWkhzeWZTMWNYR1I3TW4wcEwzVTdYRzVsZUhCdmNuUWdZMjl1YzNRZ1UxUkJVbFJmUkVGVVJWOVNSVWRGV0NBOUlDOWNYSFY3TVVZMlJVSjlYRnh6S2loY1hHUjdOSDB0WEZ4a2V6SjlMVnhjWkhzeWZTa3ZkVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVZOVDBwSlgxSkZSMFZZUlZNZ1BTQmJYRzRnSUNBZ2V5QnlaV2RsZURvZ1ExSkZRVlJGUkY5RVFWUkZYMUpGUjBWWUxDQnJaWGs2SUZ3aVkzSmxZWFJsWkZ3aUlIMHNYRzRnSUNBZ2V5QnlaV2RsZURvZ1UxUkJVbFJmUkVGVVJWOVNSVWRGV0N3Z2EyVjVPaUJjSW5OMFlYSjBYQ0lnZlN4Y2JpQWdJQ0I3SUhKbFoyVjRPaUJUUTBoRlJGVk1SVVJmUkVGVVJWOVNSVWRGV0N3Z2EyVjVPaUJjSW5OamFHVmtkV3hsWkZ3aUlIMHNYRzRnSUNBZ2V5QnlaV2RsZURvZ1JGVkZYMFJCVkVWZlVrVkhSVmdzSUd0bGVUb2dYQ0prZFdWY0lpQjlMRnh1SUNBZ0lIc2djbVZuWlhnNklFUlBUa1ZmUkVGVVJWOVNSVWRGV0N3Z2EyVjVPaUJjSW1OdmJYQnNaWFJwYjI1Y0lpQjlMRnh1WFR0Y2JseHVMeW9xSUZCaGNuTmxJSE53WldOcFlXd2dZMjl0Y0d4bGRHVmtMMlIxWlM5a2IyNWxJSFJoYzJzZ1ptbGxiR1J6SUhkb2FXTm9JR0Z5WlNCdFlYSnJaV1FnZG1saElHVnRiMnBwTGlBcUwxeHVablZ1WTNScGIyNGdaWGgwY21GamRGTndaV05wWVd4VVlYTnJSbWxsYkdSektHeHBibVU2SUhOMGNtbHVaeWs2SUV4dlkyRnNTVzVzYVc1bFJtbGxiR1JiWFNCN1hHNGdJQ0FnYkdWMElISmxjM1ZzZEhNNklFeHZZMkZzU1c1c2FXNWxSbWxsYkdSYlhTQTlJRnRkTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnZXlCeVpXZGxlQ3dnYTJWNUlIMGdiMllnUlUxUFNrbGZVa1ZIUlZoRlV5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRZWFJqYUNBOUlISmxaMlY0TG1WNFpXTW9iR2x1WlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYldGMFkyZ3BJR052Ym5ScGJuVmxPMXh1WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkSE11Y0hWemFDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNCclpYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nYldGMFkyaGJNVjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkR0Z5ZERvZ2JXRjBZMmd1YVc1a1pYZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkRlpoYkhWbE9pQnRZWFJqYUM1cGJtUmxlQ0FySURFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYm1RNklHMWhkR05vTG1sdVpHVjRJQ3NnYldGMFkyaGJNRjB1YkdWdVozUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2QzSmhjSEJwYm1jNklGd2laVzF2YW1rdGMyaHZjblJvWVc1a1hDSXNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhSek8xeHVmVnh1WEc0dktpb2dVMlYwY3lCdmNpQnlaWEJzWVdObGN5QjBhR1VnZG1Gc2RXVWdiMllnWVc0Z2FXNXNhVzVsSUdacFpXeGtPeUJwWmlCMGFHVWdkbUZzZFdVZ2FYTWdKM1Z1WkdWbWFXNWxaQ2NzSUdSbGJHVjBaWE1nZEdobElHdGxlUzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCelpYUkpibXhwYm1WR2FXVnNaQ2h6YjNWeVkyVTZJSE4wY21sdVp5d2dhMlY1T2lCemRISnBibWNzSUhaaGJIVmxQem9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnNaWFFnWlhocGMzUnBibWNnUFNCbGVIUnlZV04wU1c1c2FXNWxSbWxsYkdSektITnZkWEpqWlNrN1hHNGdJQ0FnYkdWMElHVjRhWE4wYVc1blMyVjVjeUE5SUdWNGFYTjBhVzVuTG1acGJIUmxjaWdvWmlrZ1BUNGdaaTVyWlhrZ1BUMGdhMlY1S1R0Y2JseHVJQ0FnSUM4dklFUnZiaWQwSUdSdklHRnVlWFJvYVc1bklHbG1JSFJvWlhKbElHRnlaU0JrZFhCc2FXTmhkR1VnYTJWNWN5QlBVaUIwYUdVZ2EyVjVJR0ZzY21WaFpIa2daRzlsYzI0bmRDQmxlR2x6ZEM1Y2JpQWdJQ0JwWmlBb1pYaHBjM1JwYm1kTFpYbHpMbXhsYm1kMGFDQStJRElnZkh3Z0tHVjRhWE4wYVc1blMyVjVjeTVzWlc1bmRHZ2dQVDBnTUNBbUppQWhkbUZzZFdVcEtTQnlaWFIxY200Z2MyOTFjbU5sTzF4dUlDQWdJR3hsZENCbGVHbHpkR2x1WjB0bGVTQTlJR1Y0YVhOMGFXNW5TMlY1YzFzd1hUdGNibHh1SUNBZ0lHeGxkQ0JoYm01dmRHRjBhVzl1SUQwZ2RtRnNkV1VnUHlCZ1d5UjdhMlY1ZlRvNklDUjdkbUZzZFdWOVhXQWdPaUJjSWx3aU8xeHVJQ0FnSUdsbUlDaGxlR2x6ZEdsdVowdGxlU2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdjSEpsWm1sNElEMGdjMjkxY21ObExuTjFZbk4wY21sdVp5Z3dMQ0JsZUdsemRHbHVaMHRsZVM1emRHRnlkQ2s3WEc0Z0lDQWdJQ0FnSUd4bGRDQnpkV1ptYVhnZ1BTQnpiM1Z5WTJVdWMzVmljM1J5YVc1bktHVjRhWE4wYVc1blMyVjVMbVZ1WkNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dGdWJtOTBZWFJwYjI0cElISmxkSFZ5YmlCZ0pIdHdjbVZtYVhoOUpIdGhibTV2ZEdGMGFXOXVmU1I3YzNWbVptbDRmV0E3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdjbVYwZFhKdUlHQWtlM0J5WldacGVIMGtlM04xWm1acGVDNTBjbWx0VTNSaGNuUW9LWDFnTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvWVc1dWIzUmhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lDUjdjMjkxY21ObExuUnlhVzFGYm1Rb0tYMGdKSHRoYm01dmRHRjBhVzl1ZldBN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE52ZFhKalpUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhObGRFVnRiMnBwVTJodmNuUm9ZVzVrUTI5dGNHeGxkR2x2YmtacFpXeGtLSE52ZFhKalpUb2djM1J5YVc1bkxDQjJZV3gxWlQ4NklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnWTI5dWMzUWdaWGhwYzNScGJtY2dQU0JsZUhSeVlXTjBTVzVzYVc1bFJtbGxiR1J6S0hOdmRYSmpaU3dnZEhKMVpTazdYRzRnSUNBZ1kyOXVjM1FnWlhocGMzUnBibWRMWlhseklEMGdaWGhwYzNScGJtY3VabWxzZEdWeUtDaG1LU0E5UGlCbUxtdGxlU0E5UFQwZ1hDSmpiMjF3YkdWMGFXOXVYQ0lnSmlZZ1ppNTNjbUZ3Y0dsdVp5QTlQVDBnWENKbGJXOXFhUzF6YUc5eWRHaGhibVJjSWlrN1hHNWNiaUFnSUNBdkx5QkViMjRuZENCa2J5QmhibmwwYUdsdVp5QnBaaUIwYUdWeVpTQmhjbVVnWkhWd2JHbGpZWFJsSUd0bGVYTWdUMUlnZEdobElHdGxlU0JoYkhKbFlXUjVJR1J2WlhOdUozUWdaWGhwYzNRdVhHNGdJQ0FnYVdZZ0tHVjRhWE4wYVc1blMyVjVjeTVzWlc1bmRHZ2dQaUF5SUh4OElDaGxlR2x6ZEdsdVowdGxlWE11YkdWdVozUm9JRDA5SURBZ0ppWWdJWFpoYkhWbEtTa2djbVYwZFhKdUlITnZkWEpqWlR0Y2JseHVJQ0FnSUM4cUlFNXZJSGR5WVhCd1pYSXNJR0ZrWkNCdmQyNGdjM0JoWTJsdVp5QmhkQ0J6ZEdGeWRDQXFMMXh1SUNBZ0lHTnZibk4wSUdGdWJtOTBZWFJwYjI0Z1BTQjJZV3gxWlNBL0lHQWdYSFV5TnpBMUlDUjdkbUZzZFdWOVlDQTZJRndpWENJN1hHNGdJQ0FnYkdWMElHVjRhWE4wYVc1blMyVjVJRDBnWlhocGMzUnBibWRMWlhseld6QmRPMXh1SUNBZ0lHbG1JQ2hsZUdsemRHbHVaMHRsZVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNCemIzVnlZMlV1YzNWaWMzUnlhVzVuS0RBc0lHVjRhWE4wYVc1blMyVjVMbk4wWVhKMEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzVm1abWw0SUQwZ2MyOTFjbU5sTG5OMVluTjBjbWx1WnlobGVHbHpkR2x1WjB0bGVTNWxibVFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWUNSN2NISmxabWw0TG5SeWFXMUZibVFvS1gwa2UyRnVibTkwWVhScGIyNTlKSHR6ZFdabWFYaDlZRHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lDUjdjMjkxY21ObExuUnlhVzFGYm1Rb0tYMGtlMkZ1Ym05MFlYUnBiMjU5WUR0Y2JpQWdJQ0I5WEc1OVhHNGlMQ0FpTHlvcUlFMWhjQ0IwYUdVZ2RtRnNkV1Z6SUc5bUlHRnVJRzlpYW1WamRDd2djbVYwZFhKdWFXNW5JR0VnYm1WM0lHOWlhbVZqZEM0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZWEJQWW1wbFkzUldZV3gxWlhNOFZpd2dWVDRvYjJKcVpXTjBPaUJTWldOdmNtUThjM1J5YVc1bkxDQldQaXdnWm5WdVl6b2dLSGc2SUZZcElEMCtJRlVwT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JWUGlCN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4ME9pQlNaV052Y21ROGMzUnlhVzVuTENCVlBpQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnVzJ0bGVTd2dkbUZzZFdWZElHOW1JRTlpYW1WamRDNWxiblJ5YVdWektHOWlhbVZqZENrcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFcydGxlVjBnUFNCbWRXNWpLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1ZlZ4dUlpd2dJbWx0Y0c5eWRDQjdJRXhwYm1zc0lFcHpiMjVNYVc1cklIMGdabkp2YlNCY0ltVjRjSEpsYzNOcGIyNHZiR2x1YTF3aU8xeHVhVzF3YjNKMElIc2dUR2wwWlhKaGJDd2dUR2wwWlhKaGJITWdmU0JtY205dElGd2laWGh3Y21WemMybHZiaTlzYVhSbGNtRnNYQ0k3WEc1cGJYQnZjblFnZXlCRVlYUmxWR2x0WlN3Z1JIVnlZWFJwYjI0Z2ZTQm1jbTl0SUZ3aWJIVjRiMjVjSWp0Y2JtbHRjRzl5ZENCN0lHMWhjRTlpYW1WamRGWmhiSFZsY3lCOUlHWnliMjBnWENKMWRHbHNjeTlrWVhSaFhDSTdYRzVjYmk4cUtpQktVMDlPTFhObGNtbGhiR2w2WldRZ1pYRjFhWFpoYkdWdWRITWdabTl5SUd4cGRHVnlZV3h6TGlBcUwxeHVaWGh3YjNKMElIUjVjR1VnU25OdmJreHBkR1Z5WVd3Z1BWeHVJQ0FnSUh3Z1ltOXZiR1ZoYmx4dUlDQWdJSHdnYm5WdFltVnlYRzRnSUNBZ2ZDQnpkSEpwYm1kY2JpQWdJQ0I4SUhzZ0pGOTBlWEJsT2lCY0ltUmhkR1ZjSWpzZ2RtRnNkV1U2SUhOMGNtbHVaeUI5WEc0Z0lDQWdmQ0I3SUNSZmRIbHdaVG9nWENKa2RYSmhkR2x2Ymx3aU95QjJZV3gxWlRvZ2MzUnlhVzVuSUgxY2JpQWdJQ0I4SUhzZ0pGOTBlWEJsT2lCY0lteHBibXRjSWpzZ2RtRnNkV1U2SUVwemIyNU1hVzVySUgxY2JpQWdJQ0I4SUVGeWNtRjVQRXB6YjI1TWFYUmxjbUZzUGx4dUlDQWdJSHdnVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx4dUlDQWdJSHdnYm5Wc2JEdGNibHh1Wlhod2IzSjBJRzVoYldWemNHRmpaU0JLYzI5dVEyOXVkbVZ5YzJsdmJpQjdYRzRnSUNBZ1pYaHdiM0owSUdOdmJuTjBJRTVQVDFCZlRrOVNUVUZNU1ZwRlVqb2dLR2x1Y0hWME9pQk1hWFJsY21Gc0tTQTlQaUJNYVhSbGNtRnNJRDBnS0dsdWNIVjBLU0E5UGlCcGJuQjFkRHRjYmx4dUlDQWdJQzhxS2lCRGIyNTJaWEowSUdFZ2JHbDBaWEpoYkNCMllXeDFaU0IwYnlCaElITmhabVVzSUhCbGNuTnBjM1JsYm5RZ1NsTlBUaUJsY1hWcGRtRnNaVzUwTGlBcUwxeHVJQ0FnSUdWNGNHOXlkQ0JtZFc1amRHbHZiaUJxYzI5dUtHeHBkR1Z5WVd3NklFeHBkR1Z5WVd3cE9pQktjMjl1VEdsMFpYSmhiQ0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSGR5WVhCd1pXUWdQU0JNYVhSbGNtRnNjeTUzY21Gd1ZtRnNkV1VvYkdsMFpYSmhiQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hkM0poY0hCbFpDa2djbVYwZFhKdUlHNTFiR3c3WEc1Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoM2NtRndjR1ZrUHk1MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aVlYSnlZWGxjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxaQzUyWVd4MVpTNXRZWEFvU25OdmJrTnZiblpsY25OcGIyNHVhbk52YmlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liMkpxWldOMFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMWhjRTlpYW1WamRGWmhiSFZsY3loM2NtRndjR1ZrTG5aaGJIVmxMQ0JLYzI5dVEyOXVkbVZ5YzJsdmJpNXFjMjl1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmtZWFJsWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ0pGOTBlWEJsT2lCY0ltUmhkR1ZjSWl3Z2RtRnNkV1U2SUhkeVlYQndaV1F1ZG1Gc2RXVXVkRzlKVTA4b2V5QmxlSFJsYm1SbFpGcHZibVU2SUhSeWRXVXNJR2x1WTJ4MVpHVlBabVp6WlhRNklIUnlkV1VnZlNrZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pzYVc1clhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2dKRjkwZVhCbE9pQmNJbXhwYm10Y0lpd2dkbUZzZFdVNklIZHlZWEJ3WldRdWRtRnNkV1V1ZEc5UFltcGxZM1FvS1NCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVIxY21GMGFXOXVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnSkY5MGVYQmxPaUJjSW1SMWNtRjBhVzl1WENJc0lIWmhiSFZsT2lCM2NtRndjR1ZrTG5aaGJIVmxMblJ2U1ZOUEtDa2dmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKaWIyOXNaV0Z1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liblZ0WW1WeVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYzNSeWFXNW5YQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGR5WVhCd1pXUXVkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2lablZ1WTNScGIyNWNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdWRXeHNYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiMjUyWlhKMElHRWdTbE5QVGlCc2FYUmxjbUZzSUhSdklHbDBKM01nWTI5eWNtVnpjRzl1WkdsdVp5Qm9lV1J5WVhSbFpDQjJZV3gxWlN3Z2IzQjBhVzl1WVd4c2VTQmhjSEJzZVdsdVoxeHVJQ0FnSUNBcUlHRWdibTl5YldGc2FYcGhkR2x2YmlCemRHVndJSFJ2SUhSb1pTQnlaWE4xYkhScGJtY2dkbUZzZFdVZ1lXNWtJR0Z1ZVNCc2FYUmxjbUZzY3lCamIyNTBZV2x1WldRZ2QybDBhR2x1SUdsMFhHNGdJQ0FnSUNvZ0tITjFZMmdnWVhNZ2FXWWdkR2hsSUd4cGRHVnlZV3dnYVhNZ1lTQnNhWE4wSUc5eUlHOWlhbVZqZENrdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWlhod2IzSjBJR1oxYm1OMGFXOXVJSFpoYkhWbEtHcHpiMjQ2SUVwemIyNU1hWFJsY21Gc0xDQnViM0p0WVd4cGVtVnlPaUFvYVc1d2RYUTZJRXhwZEdWeVlXd3BJRDArSUV4cGRHVnlZV3dnUFNCT1QwOVFYMDVQVWsxQlRFbGFSVklwT2lCTWFYUmxjbUZzSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR3B6YjI0Z1BUMDlJRzUxYkd3Z2ZId2dhbk52YmlBOVBUMGdkVzVrWldacGJtVmtLU0J5WlhSMWNtNGdiblZzYkR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaHFjMjl1S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzV2Y20xaGJHbDZaWElvYW5OdmJpNXRZWEFvS0dsdWNIVjBLU0E5UGlCS2MyOXVRMjl1ZG1WeWMybHZiaTUyWVd4MVpTaHBibkIxZEN3Z2JtOXliV0ZzYVhwbGNpa3BLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoMGVYQmxiMllnYW5OdmJpQTlQVDBnWENKdlltcGxZM1JjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRW9YQ0lrWDNSNWNHVmNJaUJwYmlCcWMyOXVLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiV0Z3VDJKcVpXTjBWbUZzZFdWektHcHpiMjRzSUNoMktTQTlQaUJLYzI5dVEyOXVkbVZ5YzJsdmJpNTJZV3gxWlNoMklHRnpJRXB6YjI1TWFYUmxjbUZzTENCdWIzSnRZV3hwZW1WeUtTazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSNWNHVWdQU0JxYzI5dVcxd2lKRjkwZVhCbFhDSmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVJoZEdWY0lqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzV2Y20xaGJHbDZaWElvUkdGMFpWUnBiV1V1Wm5KdmJVbFRUeWhxYzI5dUxuWmhiSFZsS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW1SMWNtRjBhVzl1WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnViM0p0WVd4cGVtVnlLRVIxY21GMGFXOXVMbVp5YjIxSlUwOG9hbk52Ymk1MllXeDFaU2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pzYVc1clhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1YjNKdFlXeHBlbVZ5S0V4cGJtc3Vabkp2YlU5aWFtVmpkQ2hxYzI5dUxuWmhiSFZsS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQlZibkpsWTI5bmJtbDZaV1FnYzJWeWFXRnNhWHBsWkNCMGVYQmxJQ2NrZTNSNWNHVjlKeUZnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDOHZJRkJ5YVcxcGRHbDJaU0IwZVhCbExDQnlaWFIxY200Z1lYTWdhWE11WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1YjNKdFlXeHBlbVZ5S0dwemIyNGdZWE1nVEdsMFpYSmhiQ2s3WEc0Z0lDQWdmVnh1ZlZ4dUlpd2dJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBibVJsZUdGaWJHVnpYRzRnS2k5Y2JpOHFLaUJWZEdsc2FYUnBaWE1nWm05eUlHTnZiblpsY25ScGJtY2diR2wwWlhKaGJDQjBlWEJsY3lCMGJ5QmhibVFnWm5KdmJTQjBhR1ZwY2lCWlFVMU1JR1p5YjI1MGJXRjBkR1Z5SUhKbGNISmxjMlZ1ZEdGMGFXOXVMaUFxTDF4dVhHNXBiWEJ2Y25RZ2V5Qk1hWFJsY21Gc0xDQk1hWFJsY21Gc2N5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMMnhwZEdWeVlXeGNJanRjYm1sdGNHOXlkQ0I3SUZCU1NVMUpWRWxXUlZNZ2ZTQm1jbTl0SUZ3aVpYaHdjbVZ6YzJsdmJpOXdZWEp6WlhKY0lqdGNibWx0Y0c5eWRDQjdJRVJoZEdWVWFXMWxJSDBnWm5KdmJTQmNJbXgxZUc5dVhDSTdYRzVwYlhCdmNuUWdleUJ0WVhCUFltcGxZM1JXWVd4MVpYTWdmU0JtY205dElGd2lkWFJwYkhNdlpHRjBZVndpTzF4dVhHNHZLaW9nV1VGTlRDMW1jbWxsYm1Sc2VTQnlaWEJ5WlhObGJuUmhkR2x2YmlCbWIzSWdZU0JzYVhSbGNtRnNMaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdXV0Z0YkV4cGRHVnlZV3dnUFNCemRISnBibWNnZkNCdWRXMWlaWElnZkNCaWIyOXNaV0Z1SUh3Z2JuVnNiQ0I4SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0Z2ZDQkJjbkpoZVR4WllXMXNUR2wwWlhKaGJENDdYRzR2S2lwY2JpQXFJRUJwYm5SbGNtNWhiRnh1SUNvdlhHNWxlSEJ2Y25RZ2JtRnRaWE53WVdObElGbGhiV3hEYjI1MlpYSnphVzl1SUh0Y2JpQWdJQ0F2S2lvZ1EyOXVkbVZ5ZENCaElHeHBkR1Z5WVd3Z2FXNTBieUJoSUhsaGJXd2dabkpwWlc1a2JIa2djbVZ3Y21WelpXNTBZWFJwYjI0dUlDb3ZYRzRnSUNBZ1pYaHdiM0owSUdaMWJtTjBhVzl1SUhsaGJXd29kbUZzZFdVNklFeHBkR1Z5WVd3cE9pQlpZVzFzVEdsMFpYSmhiQ0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSGR5WVhCd1pXUWdQU0JNYVhSbGNtRnNjeTUzY21Gd1ZtRnNkV1VvYkdsMFpYSmhiQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hkM0poY0hCbFpDa2djbVYwZFhKdUlHNTFiR3c3WEc1Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoM2NtRndjR1ZrTG5SNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKemRISnBibWRjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSmliMjlzWldGdVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpYm5Wc2JGd2lPbHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW01MWJXSmxjbHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIzY21Gd2NHVmtMblpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbUZ5Y21GNVhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIZHlZWEJ3WldRdWRtRnNkV1V1YldGd0tIbGhiV3dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNCY0ltUmhkR1ZjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxaQzUyWVd4MVpTNTBiMGxUVHlncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVIxY21GMGFXOXVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGR5WVhCd1pXUXVkbUZzZFdVdWRHOUlkVzFoYmlncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbVoxYm1OMGFXOXVYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElGd2liR2x1YTF3aU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1ZrTG5aaGJIVmxMbTFoY210a2IzZHVLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWIySnFaV04wWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxaGNFOWlhbVZqZEZaaGJIVmxjeWgzY21Gd2NHVmtMblpoYkhWbExDQjVZVzFzS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtpQlNaV04xY25OcGRtVnNlU0JqYjI1MlpYSjBJR0VnV1VGTlRDQnNhWFJsY21Gc0lHbHVkRzhnWVNCeVpXZDFiR0Z5SUd4cGRHVnlZV3dnZG1Gc2RXVXVJQ292WEc0Z0lDQWdaWGh3YjNKMElHWjFibU4wYVc5dUlHeHBkR1Z5WVd3b2RtRnNkV1U2SUZsaGJXeE1hWFJsY21Gc0tUb2dUR2wwWlhKaGJDQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMllXeDFaU0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aWIySnFaV04wWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaEJjbkpoZVM1cGMwRnljbUY1S0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQnlaWE4xYkhRZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JqYUdsc1pDQnZaaUIyWVd4MVpTQmhjeUJCY25KaGVUeGhibmsrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDNXdkWE5vS0d4cGRHVnlZV3dvWTJocGJHUXBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaDJZV3gxWlNCcGJuTjBZVzVqWlc5bUlFUmhkR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdaR0YwWlZCaGNuTmxJRDBnUkdGMFpWUnBiV1V1Wm5KdmJVcFRSR0YwWlNoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1JoZEdWUVlYSnpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJRzlpYW1WamRDQTlJSFpoYkhWbElHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElISmxjM1ZzZERvZ1VtVmpiM0prUEhOMGNtbHVaeXdnVEdsMFpYSmhiRDRnUFNCN2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnJaWGtnYVc0Z2IySnFaV04wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RGdHJaWGxkSUQwZ2JHbDBaWEpoYkNodlltcGxZM1JiYTJWNVhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlGd2liblZ0WW1WeVhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aVltOXZiR1ZoYmx3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZEhsd1pXOW1JSFpoYkhWbElEMDlQU0JjSW5OMGNtbHVaMXdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ1pHRjBaVkJoY25ObElEMGdVRkpKVFVsVVNWWkZVeTVrWVhSbExuQmhjbk5sS0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hrWVhSbFVHRnljMlV1YzNSaGRIVnpLU0J5WlhSMWNtNGdaR0YwWlZCaGNuTmxMblpoYkhWbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdaSFZ5WVhScGIyNVFZWEp6WlNBOUlGQlNTVTFKVkVsV1JWTXVaSFZ5WVhScGIyNHVjR0Z5YzJVb2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dSMWNtRjBhVzl1VUdGeWMyVXVjM1JoZEhWektTQnlaWFIxY200Z1pIVnlZWFJwYjI1UVlYSnpaUzUyWVd4MVpUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJR3hwYm10UVlYSnpaU0E5SUZCU1NVMUpWRWxXUlZNdWJHbHVheTV3WVhKelpTaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHbHVhMUJoY25ObExuTjBZWFIxY3lrZ2NtVjBkWEp1SUd4cGJtdFFZWEp6WlM1MllXeDFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdMeThnUW1GamEzVndJR2xtSUhkbElHUnZiaWQwSUhWdVpHVnljM1JoYm1RZ2RHaGxJSFI1Y0dVdVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibjFjYmlJc0lDSnBiWEJ2Y25RZ2V5QkdhV3hsVTNSaGRITWdmU0JtY205dElGd2liMkp6YVdScFlXNWNJanRjYm1sdGNHOXlkQ0I3SUdsMFpYSmhkR1ZKYm14cGJtVkdhV1ZzWkhNc0lHMWhjbXRrYjNkdVUyOTFjbU5sU1cxd2IzSjBMQ0JOWlhSaFpHRjBZU3dnVTJWamRHbHZia1JoZEdFZ2ZTQm1jbTl0SUZ3aUxpOXRZWEpyWkc5M2Jsd2lPMXh1YVcxd2IzSjBJSHNnU25OdmJrWnliMjUwYldGMGRHVnlSVzUwY25rZ2ZTQm1jbTl0SUZ3aWFXNWtaWGd2ZEhsd1pYTXZhbk52Ymk5dFlYSnJaRzkzYmx3aU8xeHVhVzF3YjNKMElIdGNiaUFnSUNCRFlXNTJZWE5OWlhSaFpHRjBZVWx1WkdWNExGeHVJQ0FnSUVwemIyNUNZWE5sUTJGdWRtRnpRMkZ5WkN4Y2JpQWdJQ0JLYzI5dVEyRnVkbUZ6TEZ4dUlDQWdJRXB6YjI1RFlXNTJZWE5EWVhKa0xGeHVJQ0FnSUVwemIyNURZVzUyWVhOR2FXeGxRMkZ5WkN4Y2JpQWdJQ0JLYzI5dVEyRnVkbUZ6VkdWNGRFTmhjbVFzWEc0Z0lDQWdTbk52YmtOaGJuWmhjMWRsWWtOaGNtUXNYRzU5SUdaeWIyMGdYQ0pwYm1SbGVDOTBlWEJsY3k5cWMyOXVMMk5oYm5aaGMxd2lPMXh1YVcxd2IzSjBJSHNnUTJGdWRtRnpSbWxzWlVSaGRHRXNJRU5oYm5aaGMweHBibXRFWVhSaExDQkRZVzUyWVhOVVpYaDBSR0YwWVN3Z1EyRnVkbUZ6UkdGMFlTQmhjeUJKUTJGdWRtRnpJSDBnWm5KdmJTQmNJbTlpYzJsa2FXRnVMMk5oYm5aaGMxd2lPMXh1YVcxd2IzSjBJSHNnVEdsdWF5QjlJR1p5YjIwZ1hDSmxlSEJ5WlhOemFXOXVMMnhwYm10Y0lqdGNibHh1THlvcUlFbHRjRzl5ZENCaElHTmhiblpoY3lCbWFXeGxJSFZ6YVc1bklIUm9aU0JqWVc1MllYTWdiV1YwWVdSaGRHRXVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJGdWRtRnpTVzF3YjNKMEtGeHVJQ0FnSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNCemIzVnlZMlU2SUhOMGNtbHVaeXhjYmlBZ0lDQnBibVJsZURvZ1EyRnVkbUZ6VFdWMFlXUmhkR0ZKYm1SbGVGdGNJbk4wY21sdVoxd2lYU3hjYmlBZ0lDQnpkR0YwY3pvZ1JtbHNaVk4wWVhSelhHNHBPaUJLYzI5dVEyRnVkbUZ6SUh0Y2JpQWdJQ0JqYjI1emRDQmpZVzUyWVhNZ1BTQnVaWGNnUTJGdWRtRnpSR0YwWVNod1lYUm9MQ0J6ZEdGMGN5azdYRzRnSUNBZ1kyOXVjM1FnY0dGeWMyVmtJRDBnU2xOUFRpNXdZWEp6WlNoemIzVnlZMlVwSUdGeklFbERZVzUyWVhNN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHTWdiMllnY0dGeWMyVmtMbTV2WkdWektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoakxuUjVjR1VnUFQwZ1hDSm5jbTkxY0Z3aUtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0dNdWRIbHdaU0E5UFNCY0luUmxlSFJjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdleUJtY205dWRHMWhkSFJsY2l3Z2JXVjBZV1JoZEdFc0lHeHBibVZ6TENCelpXTjBhVzl1Y3lCOUlEMGdiV0Z5YTJSdmQyNVRiM1Z5WTJWSmJYQnZjblFvY0dGMGFDd2dZeTUwWlhoMExDQnBibVJsZUQ4dVkyRmphR1Z6VzJNdWFXUmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdOaGNtUWdQU0J1WlhjZ1EyRnVkbUZ6UTJGeVpFUmhkR0VvY0dGMGFDd2dZeTVwWkN3Z1l5d2dabkp2Ym5SdFlYUjBaWElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZqZEdsdmJuTXVabTl5UldGamFDZ29hU2tnUFQ0Z1kyRnlaQzV6WldOMGFXOXVLR2twS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYm5aaGN5NWpZWEprS0dOaGNtUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQjBZV2NnYVc0Z2JXVjBZV1JoZEdFdWRHRm5jeWtnWTJGdWRtRnpMbTFsZEdGa1lYUmhMblJoWnloMFlXY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnNhVzVySUc5bUlHMWxkR0ZrWVhSaExteHBibXR6SUQ4L0lGdGRLU0JqWVc1MllYTXViV1YwWVdSaGRHRXViR2x1YXloc2FXNXJLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdabWxsYkdRZ2IyWWdhWFJsY21GMFpVbHViR2x1WlVacFpXeGtjeWhzYVc1bGN5a3BJR05oYm5aaGN5NXRaWFJoWkdGMFlTNXBibXhwYm1WR2FXVnNaQ2htYVdWc1pDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqWVhKa0lEMGdibVYzSUVOaGJuWmhjME5oY21SRVlYUmhLSEJoZEdnc0lHTXVhV1FzSUdNcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGdWRtRnpMbU5oY21Rb1kyRnlaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZMkZ1ZG1GekxtSjFhV3hrS0NrN1hHNTlYRzVjYmk4cUtpQk5aWFJoWkdGMFlTQm1iM0lnWVNCemNHVmphV1pwWXlCallXNTJZWE1nWTJGeVpDNGdLaTljYm1GaWMzUnlZV04wSUdOc1lYTnpJRUZpYzNSeVlXTjBRMkZ1ZG1GelEyRnlaRVJoZEdFZ2UxeHVJQ0FnSUhCMVlteHBZeUJ0WlhSaFpHRjBZVG9nVFdWMFlXUmhkR0VnUFNCdVpYY2dUV1YwWVdSaGRHRW9LVHRjYmx4dUlDQWdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQWdJQ0FnY0hWaWJHbGpJSEJoZEdnNklITjBjbWx1Wnl4Y2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUdsa09pQnpkSEpwYm1jc1hHNGdJQ0FnSUNBZ0lIQnliM1JsWTNSbFpDQnViMlJsU25OdmJqb2dRMkZ1ZG1GelZHVjRkRVJoZEdFZ2ZDQkRZVzUyWVhOTWFXNXJSR0YwWVNCOElFTmhiblpoYzBacGJHVkVZWFJoWEc0Z0lDQWdLU0I3ZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0oxYVd4a0tDazZJRXB6YjI1Q1lYTmxRMkZ1ZG1GelEyRnlaQ0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWtabWxzWlRvZ2RHaHBjeTV3WVhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdsa09pQjBhR2x6TG1sa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkhCdmMybDBhVzl1T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VEb2dkR2hwY3k1dWIyUmxTbk52Ymk1NExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIazZJSFJvYVhNdWJtOWtaVXB6YjI0dWVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrWkdsdFpXNXphVzl1Y3pvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHBaSFJvT2lCMGFHbHpMbTV2WkdWS2MyOXVMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHaGxhV2RvZERvZ2RHaHBjeTV1YjJSbFNuTnZiaTVvWldsbmFIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkdOdmJHOXlPaUIwYUdsekxtNXZaR1ZLYzI5dUxtTnZiRzl5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR3hwYm1zNklFeHBibXN1Wm1sc1pTaDBhR2x6TG5CaGRHZ3BMbmRwZEdoQ2JHOWpheWgwYUdsekxtbGtLUzUwYjA5aWFtVmpkQ2dwTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JuMWNibHh1THlvcUlFMWxkR0ZrWVhSaElHWnZjaUJoSUhOd1pXTnBabWxqSUdOaGNtUWdhVzRnWVNCallXNTJZWE1nZG1sbGR5NGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QkRZVzUyWVhORFlYSmtSR0YwWVNCbGVIUmxibVJ6SUVGaWMzUnlZV04wUTJGdWRtRnpRMkZ5WkVSaGRHRWdlMXh1SUNBZ0lIQjFZbXhwWXlCelpXTjBhVzl1Y3pvZ1UyVmpkR2x2YmtSaGRHRmJYU0E5SUZ0ZE8xeHVJQ0FnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0FnSUNBZ2NIVmliR2xqSUhCaGRHZzZJSE4wY21sdVp5eGNiaUFnSUNBZ0lDQWdjSFZpYkdsaklHbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0lDQWdJSEJ5YjNSbFkzUmxaQ0J1YjJSbFNuTnZiam9nUTJGdWRtRnpWR1Y0ZEVSaGRHRWdmQ0JEWVc1MllYTk1hVzVyUkdGMFlTQjhJRU5oYm5aaGMwWnBiR1ZFWVhSaExGeHVJQ0FnSUNBZ0lDQndkV0pzYVdNZ1puSnZiblJ0WVhSMFpYSS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQktjMjl1Um5KdmJuUnRZWFIwWlhKRmJuUnllVDVjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9jR0YwYUN3Z2FXUXNJRzV2WkdWS2MyOXVLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ2MyVmpkR2x2YmloelpXTjBhVzl1T2lCVFpXTjBhVzl1UkdGMFlTazZJRk5sWTNScGIyNUVZWFJoSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WldOMGFXOXVjeTV3ZFhOb0tITmxZM1JwYjI0cE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MyVmpkR2x2Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZblZwYkdRb0tUb2dTbk52YmtOaGJuWmhjME5oY21RZ2UxeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tIUm9hWE11Ym05a1pVcHpiMjR1ZEhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5SbGVIUmNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9jM1Z3WlhJdVluVnBiR1FvS1NCaGN5QktjMjl1UW1GelpVTmhiblpoYzBOaGNtUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBa2FXNW1hV1ZzWkhNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9TVzVzYVc1bFJtbGxiR1J6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ1JtY205dWRHMWhkSFJsY2pvZ2RHaHBjeTVtY205dWRHMWhkSFJsY2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKSE5sWTNScGIyNXpPaUIwYUdsekxuTmxZM1JwYjI1ekxtMWhjQ2dvZUNrZ1BUNGdlQzVpZFdsc1pDZ3BLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0pIUmhaM002SUhSb2FYTXViV1YwWVdSaGRHRXVabWx1YVhOb1ZHRm5jeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWtiR2x1YTNNNklIUm9hWE11YldWMFlXUmhkR0V1Wm1sdWFYTm9UR2x1YTNNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSkhSNWNHVTZJRndpZEdWNGRDMWpZWEprWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ1JqYjJ4dmNqb2dkR2hwY3k1dWIyUmxTbk52Ymk1amIyeHZjaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUdGeklFcHpiMjVEWVc1MllYTlVaWGgwUTJGeVpEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0ptYVd4bFhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWMzVndaWEl1WW5WcGJHUW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0pHeHBibXRsWkVacGJHVTZJSFJvYVhNdWJtOWtaVXB6YjI0dVptbHNaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUdGeklFcHpiMjVEWVc1MllYTkdhV3hsUTJGeVpEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0pzYVc1clhDSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWMzVndaWEl1WW5WcGJHUW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0pIVnliRG9nZEdocGN5NXViMlJsU25OdmJpNTFjbXdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNCaGN5QktjMjl1UTJGdWRtRnpWMlZpUTJGeVpEdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklISmxkSFZ5YmlCdVpYZGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNibjFjYmx4dUx5b3FJRTFsZEdGa1lYUmhJR1p2Y2lCMGFHVWdkMmh2YkdVZ1kyRnVkbUZ6SUhCaFoyVWdZWE1nWVNCM2FHOXNaUzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJEWVc1MllYTkVZWFJoSUh0Y2JpQWdJQ0J3ZFdKc2FXTWdZMkZ5WkhNNklFTmhiblpoYzBOaGNtUkVZWFJoVzEwZ1BTQmJYVHRjYmlBZ0lDQndkV0pzYVdNZ2JXVjBZV1JoZEdFNklFMWxkR0ZrWVhSaElEMGdibVYzSUUxbGRHRmtZWFJoS0NrN1hHNWNiaUFnSUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2NIVmliR2xqSUhCaGRHZzZJSE4wY21sdVp5d2djSFZpYkdsaklITjBZWFJ6T2lCR2FXeGxVM1JoZEhNcElIdDlYRzVjYmlBZ0lDQndkV0pzYVdNZ1kyRnlaQ2hrT2lCRFlXNTJZWE5EWVhKa1JHRjBZU2s2SUVOaGJuWmhjME5oY21SRVlYUmhJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpZWEprY3k1d2RYTm9LR1FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZblZwYkdRb0tUb2dTbk52YmtOaGJuWmhjeUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWtZMkZ5WkhNNklIUm9hWE11WTJGeVpITXViV0Z3S0NoNEtTQTlQaUI0TG1KMWFXeGtLQ2twTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdKR04wYVcxbE9pQjBhR2x6TG5OMFlYUnpMbU4wYVcxbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkcxMGFXMWxPaUIwYUdsekxuTjBZWFJ6TG0xMGFXMWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pHbHVabWxsYkdSek9pQjBhR2x6TG0xbGRHRmtZWFJoTG1acGJtbHphRWx1YkdsdVpVWnBaV3hrY3lncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSkd4cGJtdHpPaUIwYUdsekxtMWxkR0ZrWVhSaExtWnBibWx6YUV4cGJtdHpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWtkR0ZuY3pvZ2RHaHBjeTV0WlhSaFpHRjBZUzVtYVc1cGMyaFVZV2R6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FrY0dGMGFEb2dkR2hwY3k1d1lYUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0pITnBlbVU2SUhSb2FYTXVjM1JoZEhNdWMybDZaU3hjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1OVhHNGlMQ0FpYVcxd2IzSjBJSHNnWTJGdWRtRnpTVzF3YjNKMElIMGdabkp2YlNCY0ltbHVaR1Y0TDJsdGNHOXlkQzlqWVc1MllYTmNJanRjYm1sdGNHOXlkQ0I3SUcxaGNtdGtiM2R1U1cxd2IzSjBJSDBnWm5KdmJTQmNJbWx1WkdWNEwybHRjRzl5ZEM5dFlYSnJaRzkzYmx3aU8xeHVhVzF3YjNKMElIc2dRMkZ1ZG1GelNXMXdiM0owVW1WemRXeDBMQ0JKYlhCdmNuUkRiMjF0WVc1a0xDQk5ZWEpyWkc5M2JrbHRjRzl5ZEZKbGMzVnNkQ0I5SUdaeWIyMGdYQ0pwYm1SbGVDOTNaV0l0ZDI5eWEyVnlMMjFsYzNOaFoyVmNJanRjYmx4dUx5b3FJRmRsWWlCM2IzSnJaWElnWlc1MGNua2djRzlwYm5RZ1ptOXlJR2x0Y0c5eWRHbHVaeTRnS2k5Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFsYzNOaFoyVWdQU0JsZG1WdWRDNWtZWFJoSUdGeklFbHRjRzl5ZEVOdmJXMWhibVE3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLRzFsYzNOaFoyVXVkSGx3WlNBOVBUMGdYQ0p0WVhKclpHOTNibHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRZWEpyWkc5M2JpQTlJRzFoY210a2IzZHVTVzF3YjNKMEtHMWxjM05oWjJVdWNHRjBhQ3dnYldWemMyRm5aUzVqYjI1MFpXNTBjeXdnYldWemMyRm5aUzV0WlhSaFpHRjBZU3dnYldWemMyRm5aUzV6ZEdGMEtUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXpkRTFsYzNOaFoyVW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklGd2liV0Z5YTJSdmQyNWNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUTZJRzFoY210a2IzZHVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmhjeUJOWVhKclpHOTNia2x0Y0c5eWRGSmxjM1ZzZENrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9iV1Z6YzJGblpTNTBlWEJsSUQwOVBTQmNJbU5oYm5aaGMxd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCallXNTJZWE1nUFNCallXNTJZWE5KYlhCdmNuUW9iV1Z6YzJGblpTNXdZWFJvTENCdFpYTnpZV2RsTG1OdmJuUmxiblJ6TENCdFpYTnpZV2RsTG1sdVpHVjRMQ0J0WlhOellXZGxMbk4wWVhRcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCd2IzTjBUV1Z6YzJGblpTaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1hDSmpZVzUyWVhOY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRNklHTmhiblpoY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWVhNZ1EyRnVkbUZ6U1cxd2IzSjBVbVZ6ZFd4MEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmMzUk5aWE56WVdkbEtIc2dKR1Z5Y205eU9pQmNJbFZ1YzNWd2NHOXlkR1ZrSUdsdGNHOXlkQ0J0WlhSb2IyUXVYQ0lnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG1WeWNtOXlLR0JFWVhSaFkyOXlaU0JKYm1SbGVHVnlJR1poYVd4bFpDQjBieUJwYm1SbGVDQWtlMlYyWlc1MExtUmhkR0V1Y0dGMGFIMDZJQ1I3WlhKeWIzSjlZQ2s3WEc0Z0lDQWdJQ0FnSUhCdmMzUk5aWE56WVdkbEtIc2dKR1Z5Y205eU9pQmxjbkp2Y2k1dFpYTnpZV2RsSUgwcE8xeHVJQ0FnSUgxY2JuMDdYRzRpWFN3S0lDQWliV0Z3Y0dsdVozTWlPaUFpTUdwRVFVRkJMRWxCUVVGQkxFZEJRVUZETEVkQlFVRXNRMEZCUVVNc1IwRkJRVU1zUzBGQlFTeEZRVUZETEZOQlFWTXNSVUZCUlVNc1JVRkJSU3hEUVVGWExFOUJRVTlHTEVsQlFXcENMRlZCUVc5RExFOUJRVTlETEVsQlFXcENMRk5CUVhkQ1FTeEhRVUZQTEZGQlFWRkRMRVZCUVVVc1JVRkJZeXhQUVVGUExGRkJRVzVDTEZsQlFUSkNMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zUlVGQlJVRXNRMEZCUXl4RlFVRlpMRTlCUVU5R0xFbEJRV3BDTEZOQlFYbENRU3hIUVVGUkxGVkJRVlZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRlZCUVZWQkxFVkJRVVVzUTBGQlF5eEhRVUZsTEU5QlFVOHNUVUZCY0VJc1dVRkJlVUlzUzBGQlMwWXNSMEZCU3l4VlFVRlZMRU5CUVVNc1QwRkJUeXhUUVVGVExFVkJRVVVzUTBGQlF5eEpRVUZKUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hUUVVGVFF5eEZRVUZGUXl4RlFVRkZMRU5CUVVNc1IwRkJSMFlzUlVGQlJVVXNRMEZCUXl4RlFVRkZMRTlCUVU5R0xFVkJRVVZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRWxCUVVsRExFVkJRVVZJTEVWQlFVVkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVZCTEVWQlFVVXNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzVDBGQlR5eEZRVUZGUVN4RFFVRkRMRVZCUVVVc1MwRkJTME1zUlVGQlJTeFJRVUZSUVN4RlFVRkZRU3hGUVVGRkxGRkJRVkZHTEVOQlFVTXNSVUZCUlVVc1JVRkJSU3hGUVVGRkxFZEJRVWRCTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTlCUVU5R0xFVkJRVVVzUlVGQlJTeEZRVUZGUVN4RlFVRkZMRVZCUVVWRUxFVkJRVVZETEVWQlFVVXNSVUZCUlN4VFFVRlRSeXhGUVVGRlNpeEZRVUZGUlN4RlFVRkZMRU5CUVVORUxFVkJRVVVzUlVGQlJVY3NSVUZCUlVvc1EwRkJReXhIUVVGSExFOUJRVThzWlVGQlpVa3NSVUZCUlVvc1JVRkJSU3hEUVVGRExHRkJRV0VzUjBGQlJ5eFhRVUZYTEVkQlFVY3NTVUZCU1VVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVUXNSVUZCUlN4RlFVRkZMRk5CUVZOSExFVkJRVVVzUTBGQlF5eFBRVUZQTEdWQlFXVkJMRVZCUVVVc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlVnc1JVRkJSU3hGUVVGRkxGTkJRVk5ITEVWQlFVVXNRMEZCUXl4SlFVRkpTaXhGUVVGRlNTeEhRVUZIUVN4RlFVRkZMRmRCUVZjc1ZVRkJWU3hEUVVGRExFOUJRVTlCTEVWQlFVVXNUMEZCVHl4RlFVRkZMRlZCUVZVc1EwRkJReXhQUVVGUFFTeERRVUZETEVWQlFVVXNUMEZCVDBnc1JVRkJSU3hGUVVGRlJDeEZRVUZGTEVsQlFVbEJMRU5CUVVNc1JVRkJSVUVzUTBGQlF5eEZRVUZGUXl4RlFVRkZMRVZCUVVVc1UwRkJVMGNzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU4c1QwRkJUeXhWUVVGVkxHVkJRV1VzUzBGQlMwa3NSVUZCUlVvc1EwRkJReXhEUVVGRExFVkJRVVZETEVWQlFVVXNSVUZCUlN4SFFVRkhRU3hGUVVGRlFTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhUUVVGVExFVkJRVVZFTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhoUVVGaExGTkJRVk5ETEVWQlFVVkZMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzWjBKQlFXZENSaXhIUVVGSExFOUJRVThzU1VGQlNVRXNSVUZCUlVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJVRXNRMEZCUXl4RFFVRkRMRWxCUVVsRUxFVkJRVVZFTEVWQlFVVXNWVUZCVlN4VFFVRlRSeXhGUVVGRlJDeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1VVRkJVVU1zUlVGQlJTeEZRVUZGUVN4RlFVRkZSeXhGUVVGRlNDeEpRVUZKUkN4RlFVRkZReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUU3l4RlFVRkZSaXhGUVVGRlNpeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhUUVVGVFJ5eEZRVUZGU2l4RlFVRkZMRU5CUVVOTExFVkJRVVZNTEVWQlFVVXNUMEZCVHl4VFFVRlRReXhGUVVGRkxFTkJRVU5ITEVWQlFVVktMRVZCUVVWRExFTkJRVU1zUlVGQlJVRXNSVUZCUlVRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTkRMRVZCUVVWRExFVkJRVVZETEVWQlFVVXNRMEZCUTBnc1JVRkJSVWtzUlVGQlJVb3NSVUZCUlVNc1JVRkJSVU1zUlVGQlJVTXNRMEZCUXl4RFFVRkRMRVZCUVVWR0xFTkJRVU1zUlVGQlJVUXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSVWtzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU5TkxFVkJRVVVzVTBGQlUwNHNSVUZCUlVNc1JVRkJSVU1zUlVGQlJVTXNSVUZCUlN4RFFVRkRMRTlCUVU5SUxFVkJRVVVzVDBGQlR5eERRVUZEU1N4RlFVRkZTQ3hGUVVGRlF5eEZRVUZGUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFR5eEZRVUZGU0N4RlFVRkZTaXhGUVVGRkxFTkJRVU1zU1VGQlNVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSlJDeERRVUZETEVWQlFVVXNUMEZCVDBzc1JVRkJSVVFzUlVGQlJTeFZRVUZWTEVOQlFVTXNTVUZCU1VFc1JVRkJSVWdzUlVGQlJTeERRVUZETEVWQlFVVkJMRVZCUVVVc1IwRkJSeXhIUVVGSFJ5eEZRVUZGU0N4RlFVRkZMRWxCUVVsSExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NTVUZCU1N4VFFVRlRRU3hGUVVGRkxFTkJRVU1zU1VGQlNVb3NSVUZCUlUwc1JVRkJSU3hUUVVGVFJpeEZRVUZGU2l4RlFVRkZReXhIUVVGRlF5eEhRVUZGTEVOQlFVTXNUMEZCVDBVc1JVRkJSU3hQUVVGUFNDeExRVUZKUXl4SFFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFdEJRVXNzUTBGQlEwWXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hoUVVGaExFTkJRVU1zUlVGQlJVVXNSMEZCUlN4aFFVRmhSQ3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlVjc1EwRkJReXhGUVVGRkxFOUJRVThzVDBGQlR5eExRVUZMTEVWQlFVVXNVMEZCVTBFc1JVRkJSU3hEUVVGRExFOUJRVTlCTEVkQlFVY3NSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJSVW9zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVkJMRU5CUVVNc1EwRkJReXhUUVVGVFR5eEhRVUZITEVOQlFVTXNUMEZCYlVJc1QwRkJUeXhSUVVGd1FpeFhRVUV3UWl4RFFVRkRMRk5CUVZORExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTkVMRVZCUVVVc1JVRkJSU3hOUVVGTkxFbEJRVWtzVFVGQlRTd3JSa0ZCSzBZc1EwRkJReXhEUVVGRExGTkJRVk5GTEVWQlFVVk9MRVZCUVVVc1EwRkJRMHNzUlVGQlJTeEZRVUZGTEVsQlFVbFVMRVZCUVVWTkxFVkJRVVVzVTBGQlUwWXNSVUZCUlVvc1JVRkJSU3hEUVVGRExFOUJRVTlKTEVWQlFVVktMRU5CUVVNc1JVRkJSU3hGUVVGRlNTeERRVUZETEVWQlFVVXNSMEZCUjBvc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeEpRVUZKTEUxQlFVMHNZVUZCWVVrc1JVRkJSU3hMUVVGTExFbEJRVWtzUlVGQlJTeGxRVUZsU2l4RlFVRkZMREpGUVVFeVJTeEZRVUZGTEVsQlFVbERMRVZCUVVWRkxFVkJRVVZJTEVWQlFVVXNSVUZCUlVzc1IwRkJSMG9zUlVGQlJTeFRRVUZUUnl4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeEZRVUZGTEVWQlFVVkZMRVZCUVVVc1UwRkJVMFlzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU5SkxFbEJRVWxJTEVWQlFVVkVMRU5CUVVNc1JVRkJSVUVzUlVGQlJVa3NSVUZCUlN4RlFVRkZMRXRCUVV0QkxFTkJRVU1zUjBGQlJ5eEhRVUZIUXl4RlFVRkZMRTFCUVUwc1NVRkJTU3hOUVVGTlFTeEZRVUZGTERCRVFVRXdSQ3hGUVVGRkxFOUJRVThzU1VGQlNVZ3NSVUZCUlN4VFFVRlRSaXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNTVUZCU1VNc1JVRkJSVU1zUlVGQlJVWXNSVUZCUlN4UFFVRlBReXhGUVVGRlJpeEZRVUZGTEU5QlFVOVhMRVZCUVVWV0xFVkJRVVZGTEVWQlFVVXNVMEZCVXl4RlFVRkZMRkZCUVZFc1JVRkJSVk1zUlVGQlJWWXNSVUZCUlVrc1JVRkJSU3hUUVVGVFJpeEhRVUZGU2l4SFFVRkZMRU5CUVVNc1NVRkJTVU1zUjBGQlJVMHNSVUZCUlZBc1IwRkJSVWtzUjBGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVV0QkxFZEJRVVVzUzBGQlN5eFBRVUZQU0N4SFFVRkZMRU5CUVVNc1JVRkJSU3hKUVVGSlFTeEhRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzU1VGQlNVUXNSVUZCUlN4TlFVRk5ReXhGUVVGRlF5eERRVUZETEVOQlFVTXNSVUZCUlVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRVeXhGUVVGRlZDeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1QwRkJUeXhKUVVGSlJTeEZRVUZGTEZOQlFWTkVMRVZCUVVWRExFVkJRVVVzUTBGQlF5eFBRVUZQVHl4RlFVRkZMRVZCUVVWUUxFVkJRVVZHTEVWQlFVVkRMRVZCUVVVc1QwRkJUMVVzUlVGQlJWUXNSVUZCUlVZc1JVRkJSU3hqUVVGalNTeERRVUZETEVWQlFVVlJMRVZCUVVWV0xFVkJRVVZHTEVWQlFVVkRMRVZCUVVVc1RVRkJUVU1zUlVGQlJVRXNSVUZCUlVZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVTJNc1JVRkJSVllzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRWRCUVdFc1QwRkJUME1zUlVGQlJVUXNTVUZCYmtJc1ZVRkJkVUlzUzBGQlN5eE5RVUZOUXl4RFFVRkRMRWxCUVVsQkxFZEJRVWRFTEVWQlFVVXNSMEZCUjBFc1JVRkJSU3hGUVVGRkxFMUJRVTBzU1VGQlNTeE5RVUZOU1N4RlFVRkZMREpEUVVFeVF5eEZRVUZGTEVsQlFVbElMRU5CUVVNc1EwRkJReXhUUVVGVFl5eEZRVUZGV0N4RlFVRkZMRU5CUVVNc1QwRkJUMVVzUlVGQlJTeFRRVUZUVml4RFFVRkRMRVZCUVVWVExFVkJRVVVzVlVGQlZWUXNSVUZCUlN4SlFVRkpRU3hEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUU2l4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeFhRVUZYTEVWQlFVVkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUV1N4RlFVRkZXaXhGUVVGRkxFTkJRVU1zVDBGQlQxVXNSVUZCUlN4VFFVRlRWaXhEUVVGRExFVkJRVVZUTEVWQlFVVXNWVUZCVlZRc1JVRkJSU3hKUVVGSlFTeERRVUZETEVWQlFVVXNTVUZCU1N4VFFVRlRTaXhGUVVGRkxFTkJRVU1zVDBGQlQwRXNSVUZCUlN4WFFVRlhMRVZCUVVWSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRZU3hGUVVGRllpeEZRVUZGTEVOQlFVTXNUMEZCVDFVc1JVRkJSU3hSUVVGUlZpeERRVUZETEVWQlFVVlRMRVZCUVVVc1UwRkJVMVFzUlVGQlJTeEpRVUZKUVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSU3hWUVVGVkxFVkJRVVZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFl5eEZRVUZGWkN4RlFVRkZMRU5CUVVNc1QwRkJUMVVzUlVGQlJTeFJRVUZSVml4RFFVRkRMRVZCUVVWVExFVkJRVVVzVTBGQlUxUXNSVUZCUlN4SlFVRkpRU3hEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUU2l4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeFZRVUZWTEVWQlFVVkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUWlN4RlFVRkZaaXhGUVVGRkxFTkJRVU1zVDBGQlQwRXNZVUZCWVVZc1EwRkJReXhEUVVGRExGTkJRVk5yUWl4RlFVRkZhRUlzUlVGQlJTeERRVUZETEUxQlFYbENMRU5CUVVNc1JVRkJSU3hUUVVGVExFdEJRVXRCTEVOQlFVTXNTVUZCY2tNc1owSkJRWE5ETEVOQlFVTXNVMEZCVTJsQ0xFVkJRVVZxUWl4RlFVRkZMRU5CUVVNc1QwRkJUMGtzUlVGQlJTeEhRVUZITEU5QlFVOHNVMEZCVTBvc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlUxRXNSVUZCUlZJc1JVRkJSVW9zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjc1RVRkJUVWtzUlVGQlJTeE5RVUZOU2l4RlFVRkZMRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVTFjc1JVRkJSVkFzUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU5dlFpeEZRVUZGY0VJc1EwRkJReXhKUVVGSlFTeEZRVUZGTEVOQlFVTkJMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVkQlFVY3NUVUZCVFN4TFFVRkxMRk5CUVZOSkxFVkJRVVVzVTBGQlUwb3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVM05DTEVWQlFVVnNRaXhGUVVGRlNpeEZRVUZGTEVOQlFXZENMRWRCUVZvc1EwRkJRMEVzUjBGQlkwa3NSVUZCUlN4VFFVRlRTaXhGUVVGRkxGTkJRVk1zVDBGQlQwa3NSVUZCUlN4SlFVRkpTQ3hGUVVGRlJ5eEZRVUZGTEZkQlFWZEtMRVZCUVVVc1UwRkJVeXhUUVVGVFNTeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQldVVXNSVUZCUlN4bFFVRllMRTlCUVhkQ0xFOUJRVTlCTEVWQlFVVXNZVUZCWVN4SlFVRkpSU3hIUVVGbExFOUJRVThzUzBGQmNFSXNXVUZCZDBJc1QwRkJUMFlzUlVGQlJTeGhRVUZoUlN4SFFVRkZRU3hGUVVGRExFVkJRVVVzUjBGQlJ5eE5RVUZOTEV0QlFVc3NRMEZCUXl4UlFVRlJTQ3hGUVVGRkxFbEJRVWtzU1VGQlNVY3NRMEZCUXl4RlFVRkZSQ3hGUVVGRkxFVkJRVVZCTEVWQlFVVklMRVZCUVVVc1QwRkJUMGNzU1VGQlNVWXNSVUZCUlN4SlFVRkpSQ3hGUVVGRlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpSU3hGUVVGRkxFMUJRVTBzUzBGQlMwb3NRMEZCUXl4RlFVRkZMRTlCUVU5SkxFVkJRVVVzUzBGQlN5eEZRVUZGUVN4RFFVRkRMRU5CUVVNc1VVRkJVVU1zUjBGQlJTeERRVUZETEVWQlFVVnBRaXhIUVVGRkxFVkJRVVZCTEVkQlFVVnVRaXhGUVVGRkxFOUJRVTl0UWl4TFFVRkpha0lzUjBGQlJVWXNSVUZCUlcxQ0xFVkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NVVUZCVVdoQ0xFZEJRVVVzUlVGQlJVRXNSMEZCUlZBc1JVRkJSU3hQUVVGUFR5eExRVUZKUkN4SFFVRkZUaXhGUVVGRlR5eEZRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRWxCUVVsRExFZEJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRkRMRTFCUVV0SUxFbEJRVWNzUTBGQlF5eEhRVUZITEdWQlFXVXNTMEZCUzBFc1IwRkJSVWNzUlVGQlF5eEhRVUZIUkN4SFFVRkZMRXRCUVV0RExFVkJRVU1zUlVGQlJTeFBRVUZQUkN4SFFVRkZMRXRCUVVzc1JVRkJSVUVzUlVGQlF5eEZRVUZGU2l4RlFVRkZMRk5CUVZOS0xFVkJRVVVzVVVGQlVTeEZRVUZGUVN4RlFVRkZMRk5CUVZNc1RVRkJUU3hEUVVGRExFOUJRVTlKTEVWQlFVVXNUMEZCVHl4TlFVRk5RU3hGUVVGRkxFMUJRVTBzVFVGQlRVRXNSVUZCUlN4TlFVRk5MRk5CUVZOS0xFVkJRVVVzVTBGQlV5eFRRVUZUUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSmRVSXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVME1zUlVGQlJYSkNMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eEhRVUZIY1VJc1JVRkJSV3BDTEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1QwRkJUMG9zUlVGQlJTeExRVUZMTEVkQlFVY3NUMEZCVHl4RlFVRkZMRVZCUVVWSkxFdEJRVXR2UWl4SlFVRkpRU3hGUVVGRmNFSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUlNDeEZRVUZGZFVJc1JVRkJSWEJDTEVOQlFVTXNSVUZCUlVZc1JVRkJSU3hGUVVGRlF5eEZRVUZGTEVWQlFVVkZMRVZCUVVVc1JVRkJSVU1zUlVGQlJVNHNSVUZCUlUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlIwRXNTMEZCUzB3c1JVRkJSU3hEUVVGRFF5eEZRVUZGUkN4RlFVRkZTeXhEUVVGRExFVkJRVVVzUzBGQlUwUXNTVUZCU2l4SlFVRlJRU3hGUVVGRlNpeEZRVUZGU3l4RFFVRkRMRVZCUVVVc1YwRkJWeXhMUVVGTExFVkJRVk5HTEVWQlFVVXNUMEZCVDBVc1EwRkJReXhKUVVGcVFqdEJRVUZCTEVkQlFUSkNSaXhGUVVGRkxFOUJRVTlGTEVOQlFVTXNTVUZCYWtJc1RVRkJNa0pHTEVWQlFVVXNUMEZCVDBVc1JVRkJSU3hEUVVGRExFbEJRVzVDTzBGQlFVRXNTMEZCZDBKSUxFbEJRVkZGTEVsQlFVb3NTVUZCVVVFc1JVRkJSVU1zUlVGQlJTeEpRVUZKUVN4SFFVRkhMRU5CUVVNc1NVRkJTV2xDTEVWQlFVVnlRaXhGUVVGRlF5eEZRVUZGU1N4SFFVRkZVQ3hGUVVGRlN5eEZRVUZGTEU5QlFVOUtMRVZCUVVWRUxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVdDFRaXhGUVVGRkxGVkJRVlZzUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUFRDeEZRVUZGTEV0QlFVdDFRaXhGUVVGRkxFVkJRVVVzVDBGQlQyaENMRWRCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlUyMUNMRVZCUVVWMFFpeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRaU3hGUVVGRlppeERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRTFCUVUwc2FVSkJRV2xDUVN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVGRVSXNSVUZCUlhaQ0xFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRm5RaXhQUVVGUFNTeEhRVUZxUWl4VFFVRnRRa0VzUlVGQlJTeFBRVUZQU2l4RFFVRkRMRVZCUVVWSkxFVkJRVVZLTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNMFFpeEhRVUZGZUVJc1JVRkJSU3hEUVVGRExFZEJRV0VzVDBGQlQwRXNSMEZCYWtJc1UwRkJiVUlzVFVGQlRTeEpRVUZKTEUxQlFVMHNhVUpCUVdsQ1FTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRlVUlzUjBGQlJYcENMRVZCUVVVc1EwRkJReXhIUVVGbExFOUJRVTlCTEVkQlFXNUNMRmRCUVhGQ0xFMUJRVTBzU1VGQlNTeE5RVUZOTEcxQ1FVRnRRa0VzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXpCQ0xFVkJRVVV4UWl4RlFVRkZMRU5CUVVNc1IwRkJZU3hQUVVGUFFTeEhRVUZxUWl4VFFVRnRRaXhOUVVGTkxFbEJRVWtzVFVGQlRTeHBRa0ZCYVVKQkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3lRaXhGUVVGRkxFVkJRVVZETEVWQlFVVXNSVUZCUlVNc1IwRkJSU3hGUVVGRlF5eEhRVUZGTEVWQlFVVkVMRWRCUVVWRkxFZEJRVVVzUlVGQlJVWXNSMEZCUlVjc1IwRkJSU3hMUVVGTExGTkJRVk5ETEVkQlFVVnFReXhGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVHl4SlFVRkpMRTFCUVUxQkxFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVdEpMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk5yUXl4SFFVRkZiRU1zUlVGQlJVb3NSVUZCUlVNc1JVRkJSU3hEUVVGRExFbEJRVWxETEVWQlFVVkdMRVZCUVVWSkxFVkJRVVVzVDBGQlR5eFBRVUZQUml4SFFVRkhMRVZCUVVWRkxFVkJRVVZwUXl4SFFVRkZjRU1zUlVGQlJVTXNRMEZCUXl4RlFVRkZSU3hEUVVGRExFTkJRVU1zVTBGQlUyMURMRWRCUVVWdVF5eEZRVUZGU2l4RlFVRkZReXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVV0RkxFVkJRVVZLTEVWQlFVVXNSVUZCUlVrc1JVRkJSVW9zUlVGQlJTeEZRVUZGTEVkQlFVZEpMRVZCUVVWSUxFVkJRVVZETEVWQlFVVkJMRVZCUVVWRkxFVkJRVVZJTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZOMVF5eEhRVUZGY0VNc1JVRkJSVW9zUlVGQlJTeERRVUZETEVsQlFVbERMRVZCUVVWRExFVkJRVVZETEVWQlFVVkZMRVZCUVVWRkxFVkJRVVZETEVWQlFVVlNMRVZCUVVVc1RVRkJUVk1zUjBGQlJVUXNSVUZCUlN4UFFVRlBSU3hIUVVGRkxFVkJRVVVzUjBGQlIwUXNTMEZCU1V3c1JVRkJSU3hQUVVGUExFMUJRVTBzTWtKQlFUSkNMRWRCUVVkcFFpeEZRVUZGYWtJc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNWTXNSMEZCUlVvc1IwRkJSVUVzUjBGQlJYZENMRWRCUVVWdVFpeEhRVUZGVEN4SFFVRkZTU3hIUVVGRlJTeEhRVUZGZDBJc1IwRkJSVEZDTEVkQlFVVnhRaXhIUVVGRlF5eEhRVUZGUml4SFFVRkZOMElzUlVGQlJTeE5RVUZOTEVWQlFVVlpMRWRCUVVVc1JVRkJSU3hUUVVGVFdpeEhRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRkZMRk5CUVZOQkxFZEJRVVVzUTBGQlF5eFBRVUZQYTBNc1IwRkJSV3hETEVkQlFVVXNVMEZCVXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJVRXNSVUZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVMEVzUjBGQlJVb3NSMEZCUlN4RFFVRkRMRWxCUVVsRExFZEJRVVZITEVkQlFVVXNUMEZCVDBZc1IwRkJSU3hEUVVGRExFVkJRVVZETEVkQlFVVXNSVUZCUlN4SFFVRkhSaXhKUVVGSFJDeEhRVUZGTEUxQlFVMHNRMEZCUTBrc1IwRkJSU3hOUVVGTkxFTkJRVU1zUlVGQlJTeFJRVUZSUXl4SFFVRkZMRVZCUVVWQkxFZEJRVVZLTEVkQlFVVkpMRXRCUVVsSUxFZEJRVVZETEVWQlFVTXNSMEZCUjBRc1IwRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGUVN4SFFVRkZReXhGUVVGRExFVkJRVVVzUzBGQlMwTXNSMEZCUlVNc1JVRkJReXhEUVVGRExFZEJRVWRCTEVkQlFVVXNSMEZCUjB3c1NVRkJSeXhIUVVGSFJ5eExRVUZKTEU5QlFVOUVMRVZCUVVNc1JVRkJSVVVzUlVGQlJTeE5RVUZOVnl4SFFVRkZMRXRCUVV0QkxFZEJRVVVzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxhMElzUlVGQlF5eERRVUZETEVWQlFVVTFRaXhGUVVGRkxGTkJRVk5FTEVkQlFVVXNRMEZCUXl4UFFVRlhRU3hIUVVGRkxFOUJRVTRzUjBGQlowSkJMRWRCUVVVc1MwRkJUaXhGUVVGVExFTkJRVU1zUzBGQlMwRXNSMEZCUlN4TFFVRkxMRWRCUVVkQkxFZEJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCUzBFc1IwRkJSU3hMUVVGTE5rSXNSMEZCUlN4SFFVRkhMRXRCUVVzc1RVRkJUVGRDTEVkQlFVVXNSMEZCUnpaQ0xFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVnNRaXhGUVVGRExFVkJRVVZpTEVWQlFVVlhMRWRCUVVWdlFpeEhRVUZGYUVNc1JVRkJSU3hGUVVGRllTeEhRVUZGUVN4SlFVRkhMRWxCUVVsaUxFZEJRVWNzUjBGQlIxTXNSMEZCUlN4RlFVRkZVQ3hGUVVGRkxFVkJRVVVzVTBGQlUwTXNSMEZCUlN4RFFVRkRMRTlCUVU5QkxFZEJRVVVzVVVGQlVTeEZRVUZGUVN4SFFVRkZMRXRCUVVzc1IwRkJSeXhGUVVGRlFTeEhRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhIUVVGSExFVkJRVVVzUzBGQlMwRXNSMEZCUlN4TlFVRk5MRU5CUVVNc1JVRkJSU3hMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGV1N4RlFVRkRMRWRCUVVkVUxFZEJRVWNzUjBGQlIwWXNSVUZCUlN4SFFVRkhMRVZCUVVWQkxFVkJRVVVzUjBGQlJ5eEZRVUZGUVN4RlFVRkZMRXRCUVVzc1UwRkJVeXhGUVVGRkxFVkJRVVVzVVVGQlVTeEpRVUZKUlN4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExFbEJRVWxWTEVkQlFVVmlMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNSVUZCUlVnc1JVRkJSVThzUlVGQlJTeFBRVUZQTEVWQlFVVk9MRVZCUVVWTkxFVkJRVVVzUzBGQlN5eEZRVUZGU0N4RlFVRkZhME1zUjBGQlJYSkRMRVZCUVVVMlFpeEZRVUZGUXl4RlFVRkZaaXhIUVVGRkxFMUJRVTBzUlVGQlJXUXNSVUZCUldNc1IwRkJSU3hOUVVGTldpeEZRVUZGTEV0QlFVdEJMRVZCUVVVc1JVRkJSU3hGUVVGRlJTeEZRVUZGUml4RlFVRkZMRWRCUVVjc1UwRkJVeXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKWVN4SFFVRkZhRUlzUlVGQlJVY3NSVUZCUlN4TFFVRkxMRTlCUVU5blFpeEZRVUZGYWtJc1EwRkJReXhKUVVGSlJ5eEhRVUZITEVkQlFVZEdMRVZCUVVVc1IwRkJSeXhGUVVGRlFTeEZRVUZGTEVkQlFVY3NSVUZCUlVFc1JVRkJSU3hMUVVGTExGTkJRVk1zUlVGQlJTeEZRVUZGTEZGQlFWRXNTVUZCU1VVc1JVRkJSU3hIUVVGSFJDeEZRVUZGTEZOQlFWTk9MRWRCUVVWRkxFZEJRVVZETEVkQlFVVXNRMEZCUXl4SlFVRkpSeXhIUVVGRmFVSXNSMEZCUlhCQ0xFdEJRVWxsTEVkQlFVVldMRWRCUVVWbExFZEJRVVVzUzBGQlMyRXNSMEZCUlN4UFFVRlBPVUlzUjBGQlJXVXNSVUZCUldwQ0xFTkJRVU1zUlVGQlJXdERMRWxCUVVjc1IwRkJSMnBETEVWQlFVVXNTMEZCUzBZc1MwRkJTU3hUUVVGVExFVkJRVVVzUlVGQlJVa3NSVUZCUlN4SFFVRkhMRVZCUVVVclFpeEpRVUZIYWtNc1JVRkJSU3hMUVVGTFJpeEhRVUZGTEVkQlFVY3NVMEZCVXl4RlFVRkZTU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNUMEZCVDFBc1IwRkJSU3hEUVVGRFVTeEhRVUZGUml4SFFVRkZMRTFCUVUxS0xFVkJRVU1zUlVGQlJYRkNMRWRCUVVVc1EwRkJRMkVzUjBGQlJVTXNSMEZCUlN4SlFVRkpPVUlzUTBGQlF5eEZRVUZGTEUxQlFVMHJRaXhIUVVGRkxFZEJRVWR5UXl4RlFVRkZMRWRCUVVjc1JVRkJSVzlETEVkQlFVVXNTVUZCU1ROQ0xFVkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRlVDeERRVUZETEVWQlFVVXNTMEZCU3p0QlFVRkJMRU5CUVVrc1EwRkJReXhEUVVGRExGTkJRVk56UXl4SFFVRkZja01zUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVGQkxFVkJRVXNzY1VKQlFYRkNjVU1zUjBGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlR0QlFVRkJPMEZCUVVFc1JVRkJUMGNzUjBGQlJYQkRMRVZCUVVWS0xFTkJRVU1zUlVGQlJUdEJRVUZCTzBGQlFVRXNSMEZCVVVNc1JVRkJSVVFzUlVGQlJTeFRRVUZoUXl4RlFVRkZMRk5CUVU0c1JVRkJZVHRCUVVGQk8wRkJRVUVzUlVGQlowSkJMRVZCUVVVc1EwRkJReXhGUVVGRk8wRkJRVUU3UVVGQlFTeEZRVUZ6UTBFc1JVRkJSU3hMUVVGTExFbEJRVWtzUjBGQlJ6dEJRVUZCTEVOQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hKUVVGSlFTeERRVUZETEVOQlFVTXNVMEZCVTNsRExFZEJRVVYwUXl4RlFVRkZMRU5CUVVNc1QwRkJaMEpCTEVWQlFVVXNVVUZCV0N4UFFVRnBRa0VzUlVGQlJTeE5RVUZOTEVOQlFVTkJMRVZCUVVVc1QwRkJUeXhKUVVGSkxFZEJRVWRCTEVWQlFVVXNWMEZCVnl4SlFVRkpMRWRCUVVkQkxFVkJRVVVzVlVGQlZTeEpRVUZKTEVkQlFVZEJMRVZCUVVVc1VVRkJVU3hKUVVGSkxFZEJRVWRCTEVWQlFVVXNUMEZCVHl4SlFVRkpMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTjFReXhKUVVGSExFTkJRVU1zVVVGQlVYWkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUzBGQlN5eFRRVUZUTEVWQlFVVktMRVZCUVVWSkxFVkJRVVVzVDBGQlQwZ3NSVUZCUlN4RlFVRkZRU3hGUVVGRlJDeEZRVUZGUXl4SFFVRkhMRVZCUVVWNVFpeEZRVUZGZEVJc1JVRkJSVWdzUTBGQlF5eERRVUZETEVWQlFVVXNUMEZCVDBNc1JVRkJSU3hUUVVGVFJDeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1VVRkJVVU1zUlVGQlJVVXNSVUZCUlN4SlFVRkpMRTFCUVUxTUxFTkJRVU1zUlVGQlJVMHNSVUZCUlN4RlFVRkZRU3hGUVVGRlRpeEZRVUZGVFN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVZJTEVWQlFVVnRRaXhGUVVGRmJFSXNSVUZCUlVVc1EwRkJReXhGUVVGRkxFVkJRVVZNTEVWQlFVVkRMRU5CUVVNc1JVRkJSVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNUMEZCVDBFc1JVRkJSVVVzUlVGQlJVTXNRMEZCUXl4RlFVRkZTQ3hGUVVGRkxFMUJRVTFFTEVWQlFVVkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFOUJRVTl0UWl4RlFVRkZWaXhGUVVGRlZpeEZRVUZGUnl4RFFVRkRMRVZCUVVWR0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRlVU1zU1VGQlJ5eERRVUZETEVsQlFVbDRReXhGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEV0QlFVc3NVMEZCVXl4RlFVRkZMRWRCUVU5QkxFVkJRVVVzVTBGQlRpeEZRVUZoTEUxQlFVMHNTVUZCU1N4TlFVRk5MRzlEUVVGdlF5eEZRVUZGTEVsQlFVbEtMRVZCUVVWSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOTVRaXhIUVVGRk4wSXNRMEZCUXl4RlFVRkZNa01zUjBGQlJTeE5RVUZOTEV0QlFVdDJReXhEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUUVN4RlFVRkZMRU5CUVVNc1QwRkJUMG9zUlVGQlJTeE5RVUZOTEV0QlFVdEpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUZVVNc1NVRkJSeXhEUVVGRExFbEJRVWw2UXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFdEJRVXNzVTBGQlV5eEZRVUZGU2l4RlFVRkZTU3hGUVVGRkxFOUJRVThzUjBGQlQwb3NTVUZCU2l4RlFVRk5MRTlCUVU4NFF5eEhRVUZGTEdsQ1FVRnBRaXhGUVVGRkxGRkJRVkUzUXl4RlFVRkZMRVZCUVVWQkxFVkJRVVZFTEVWQlFVVkRMRWRCUVVjc1JVRkJSWGxDTEVWQlFVVjBRaXhGUVVGRlNDeERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBReXhGUVVGRkxGTkJRVk5HTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhSUVVGUlF5eEZRVUZGUXl4RlFVRkZMRVZCUVVWQkxFVkJRVVZETEVWQlFVVXNUMEZCVDBRc1IwRkJSeXhGUVVGRkxFbEJRVWxFTEVWQlFVVnZRaXhGUVVGRmJFSXNSVUZCUlVRc1EwRkJReXhGUVVGRkxFVkJRVVZJTEVWQlFVVkRMRU5CUVVNc1JVRkJSVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNUMEZCVDBFc1JVRkJSU3hQUVVGUFFTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNMlF5eEhRVUZGTTBNc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOW5SQ3hIUVVGRk5VTXNSVUZCUlVvc1EwRkJReXhGUVVGRkxFZEJRVWRwUkN4SFFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUUkN4SFFVRkZOVU1zUlVGQlJVb3NSVUZCUlN4RFFVRkRMRTlCUVU4d1FpeEZRVUZGZEVJc1EwRkJReXhGUVVGRmMwSXNSVUZCUlRGQ0xFTkJRVU1zUlVGQlJUUkRMRWRCUVVWNFF5eEZRVUZGU2l4RlFVRkZMRXRCUVV0SkxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNVMEZCVTBFc1JVRkJSVW9zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUTBrc1EwRkJReXhGUVVGRkxFOUJRVTlLTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVGEwUXNSMEZCUlRsRExFVkJRVVVzUTBGQlF6QkNMRVZCUVVVeFFpeERRVUZETEVWQlFVVXNTVUZCU1Vvc1JVRkJSU3hKUVVGSlNTeEZRVUZGTEVsQlFVa3NUMEZCVDBZc1JVRkJSU3hUUVVGVFJDeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1NVRkJTVU1zUlVGQlJVUXNSVUZCUlVVc1JVRkJSU3hQUVVGUFF5eEZRVUZGU2l4RlFVRkZMRTFCUVUxRExFVkJRVVZETEVOQlFVTXNSVUZCUlN4UFFVRlBSU3hKUVVGSlJDeEZRVUZGVVN4RlFVRkZWQ3hGUVVGRlJTeERRVUZETEVWQlFVVk5MRVZCUVVWVUxFVkJRVVZHTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVGJVUXNSMEZCUlM5RExFVkJRVVZLTEVWQlFVVXNSVUZCUlN4VFFVRlRTU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGUVN4aFFVRmhMRkZCUVZFc1RVRkJUU3hKUVVGSkxFMUJRVTBzYVVKQlFXbENRU3hEUVVGRExFVkJRVVVzVVVGQlVVb3NSVUZCUlRCRExFZEJRVVYwUXl4RFFVRkRMRVZCUVVWSUxFVkJRVVVzUlVGQlJVRXNSVUZCUlVRc1JVRkJSU3hQUVVGUFF5eEpRVUZKTEVOQlFVTXNTVUZCU1VNc1JVRkJSVVlzUlVGQlJTeFBRVUZQUXl4RFFVRkRMRVZCUVVVc1IwRkJVME1zU1VGQlRpeExRVUZsUVN4SlFVRk9MRXRCUVdWQkxFbEJRVTRzUzBGQlpVRXNTVUZCVGl4SlFVRlJMRTFCUVUwc1NVRkJTU3hOUVVGTkxEUkNRVUUwUWtFc1JVRkJSU3hOUVVGTlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkZRU3hEUVVGRExFVkJRVVVzVlVGQlZTeFJRVUZSTEVWQlFVVjNRaXhIUVVGRk5VSXNRMEZCUXl4RlFVRkZRU3hGUVVGRkxFVkJRVVVzU1VGQlNVTXNSVUZCUlN4VFFVRlRSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eFBRVUZQTEU5QlFVOUJMRVZCUVVVc1QwRkJUeXhKUVVGSmMwTXNSMEZCUlhSRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVkJMRU5CUVVNc1JVRkJSVVFzUlVGQlJTeEhRVUZIUXl4RlFVRkZMRTlCUVU5R0xFVkJRVVVzVTBGQlUwVXNSVUZCUlVZc1JVRkJSU3hEUVVGRExFbEJRVWxITEVWQlFVVktMRVZCUVVVc1MwRkJTMGNzUlVGQlJTeE5RVUZOUml4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSFJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhUQ3hIUVVGSFFTeEhRVUZIU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhKUVVGSlF5eEZRVUZGUkN4RlFVRkZMRU5CUVVNc1JVRkJSV3RDTEVkQlFVVnNRaXhGUVVGRlRDeERRVUZETEVWQlFVVXNUMEZCVDFrc1JVRkJSVllzUlVGQlJVa3NSVUZCUlN4UFFVRlBhVUlzUlVGQlF5eERRVUZETEVOQlFVTXNUMEZCVDFvc1JVRkJSVlFzUlVGQlJTd3lRa0ZCTWtKSExFVkJRVVVzVDBGQlR5eFJRVUZSUml4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUFVTeEZRVUZGVkN4RlFVRkZReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXpoRExFZEJRVVUzUXl4RlFVRkZMRU5CUVVNc1QwRkJUMFlzUlVGQlJTeFRRVUZUUml4RlFVRkZReXhGUVVGRkxFTkJRVU1zVDBGQlQxY3NSVUZCUlZnc1JVRkJSVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNd1F5eEhRVUZGTVVNc1JVRkJSU3hEUVVGRExFOUJRVTlHTEVWQlFVVXNVMEZCVTBZc1JVRkJSVU1zUlVGQlJTeERRVUZETEU5QlFVOVZMRVZCUVVWV0xFVkJRVVZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVFowUXNSMEZCUldoRUxFVkJRVVVzUTBGQlF5eEhRVUZIWlN4RlFVRkZaaXhEUVVGRExFVkJRVVVzVDBGQlQwWXNSVUZCUlN4VFFVRlRSaXhGUVVGRlF5eEZRVUZGTEVOQlFVTXNTVUZCU1VNc1JVRkJSVVVzUlVGQlJTeEZRVUZGU2l4RlFVRkZReXhEUVVGRExFVkJRVVVzVDBGQlQwTXNSVUZCUlN4TlFVRk5SQ3hGUVVGRlF5eEZRVUZGTEUxQlFVMHNSMEZCUjBFc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQllTeFBRVUZQUlN4SFFVRnFRaXhUUVVGdFFpeFBRVUZQWjBRc1IwRkJSVVlzUjBGQlJUbERMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWRCTEdGQlFXRXNUMEZCVHl4UFFVRlBaMFFzUjBGQlJVUXNSMEZCUlM5RExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4TlFVRk5MRzlEUVVGdlEwRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVMmxFTEVkQlFVVnFSQ3hGUVVGRkxFTkJRVU1zVDBGQlQzTkNMRVZCUVVWMFFpeERRVUZETEVWQlFVVkdMRVZCUVVVc1UwRkJVMFlzUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVZGTEVWQlFVVXNSVUZCUlVvc1JVRkJSVU1zUTBGQlF5eEZRVUZGUlN4RlFVRkZTQ3hGUVVGRkxFMUJRVTFETEVWQlFVVkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFOUJRVTlCTEVWQlFVVXNUMEZCVDFNc1JVRkJSVllzUlVGQlJTeFJRVUZSUlN4RlFVRkZMRWRCUVVjc1JVRkJSVk1zUlVGQlJWZ3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlUzRkVMRWRCUVVkc1JDeEZRVUZGTEVOQlFVTXNUMEZCVDNsQ0xFZEJRVVY2UWl4RFFVRkRMRVZCUVVWR0xFVkJRVVVzVTBGQlUwWXNSVUZCUlVNc1JVRkJSU3hEUVVGRExFbEJRVWxETEVWQlFVVjVRaXhGUVVGRk0wSXNSVUZCUlVNc1EwRkJReXhGUVVGRkxFOUJRVTlCTEVWQlFVVkVMRVZCUVVVc1VVRkJVVWtzUlVGQlJVWXNRMEZCUXl4RlFVRkZWU3hGUVVGRldDeEZRVUZGTEVWQlFVVkRMRU5CUVVNc1JVRkJSVk1zUlVGQlJWWXNSVUZCUlN3MlFrRkJOa0pITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVGJVUXNSMEZCUjI1RUxFVkJRVVZLTEVWQlFVVXNRMEZCUXl4VlFVRlZMRTlCUVU4c1NVRkJTVUVzUlVGQlJVa3NSVUZCUlVFc1JVRkJSU3hSUVVGUkxFbEJRVWxJTEVWQlFVVkRMRVZCUVVVc1UwRkJVMFVzUlVGQlJVWXNSVUZCUlN4RFFVRkRMRTlCUVU5RUxFVkJRVVVzUlVGQlJVUXNSVUZCUlN4RlFVRkZMRVZCUVVWRExFVkJRVVVzUlVGQlJVY3NSVUZCUlVZc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQUlN4RlFVRkZTQ3hGUVVGRkxFdEJRVXRITEVOQlFVTXNSVUZCUlVnc1EwRkJReXhEUVVGRExGTkJRVk4xUkN4SlFVRkpMRU5CUVVNc1QwRkJUMVlzUjBGQlJTeHZRa0ZCYjBJc1EwRkJReXhEUVVGRE0wTXNSVUZCUlN4TlFVRk5MRk5CUVZORExFVkJRVVVzUTBGQlF5eEhRVUZoTEU5QlFVOUJMRWRCUVdwQ0xGVkJRVzlDTEVOQlFVTnBRaXhGUVVGRmFrSXNRMEZCUXl4RlFVRkZMRTFCUVUwc1NVRkJTU3hOUVVGTkxDdEVRVUVyUkN4RlFVRkZMRWxCUVVsS0xFVkJRVVZETEVWQlFVVXNTMEZCU3l4TFFVRkxkMFFzUlVGQlJTeEZRVUZGTEVWQlFVVnlSQ3hGUVVGRkxFTkJRVU1zUlVGQlJTeFBRVUZQU2l4RlFVRkZReXhGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFVFc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFhkQ0xFVkJRVVZ5UWl4RlFVRkZTQ3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUUVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUGRVSXNSVUZCUlhCQ0xFTkJRVU1zUlVGQlJVb3NRMEZCUXl4RlFVRkZSeXhGUVVGRkxGTkJRVk1zVTBGQlUwTXNSVUZCUlN4RFFVRkRMRWxCUVVsS0xFVkJRVVVzUzBGQlN5eE5RVUZOU1N4RFFVRkRMRVZCUVVVc1IwRkJSMG9zUlVGQlJTeFBRVUZQTEU5QlFVOUJMRVZCUVVVc1RVRkJUU3hKUVVGSlF5eEZRVUZGZDBNc1IwRkJSWEpETEVWQlFVVktMRU5CUVVNc1JVRkJSVVVzUlVGQlJTeEpRVUZKTEUxQlFVMUVMRU5CUVVNc1JVRkJSU3hOUVVGTlF5eEZRVUZGTEV0QlFVc3NhVUpCUVdsQ1FTeEZRVUZGTEU5QlFVOUdMRVZCUVVWRkxFTkJRVU1zUlVGQlJVTXNSVUZCUlN4UFFVRlBMRk5CUVZORExFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRlBMRXRCUVVzc1RVRkJUU3hUUVVGVFF5eEZRVUZGTEVOQlFVTXNUMEZCVDBjc1JVRkJSVWdzUTBGQlF5eEZRVUZGWjBRc1IwRkJSV2hFTEVOQlFVTXNSVUZCUlRaRExFZEJRVVU1UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVZITEVWQlFVVXNSMEZCUnl4VFFVRlRReXhGUVVGRkxFTkJRVU1zVDBGQlQzbERMRWRCUVVVc1MwRkJTM3BETEVOQlFVTXNRMEZCUXl4RlFVRkZSQ3hGUVVGRkxFdEJRVXNzVTBGQlUwTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1MwRkJTeXhMUVVGTFFTeEZRVUZGUVN4RFFVRkRMRU5CUVVNc1JVRkJSVVFzUlVGQlJTeExRVUZMTEZOQlFWTkRMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eFBRVUZQTkVNc1IwRkJSWGhETEVWQlFVVXNTMEZCUzBvc1JVRkJSU3hUUVVGVFNTeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVjc1JVRkJSU3hMUVVGTExGTkJRVk5ETEVWQlFVVXNRMEZCUXl4UFFVRlBRU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGUkN4RlFVRkZMRXRCUVVzc1UwRkJVME1zUlVGQlJTeERRVUZETEU5QlFVOXpRaXhGUVVGRmRFSXNRMEZCUXl4RlFVRkZkVU1zUjBGQlJTeExRVUZMZGtNc1EwRkJReXhGUVVGRkxFbEJRVWtzVTBGQlUwRXNSVUZCUlN4RFFVRkRMRTlCUVU5QkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZSQ3hGUVVGRkxFdEJRVXNzVlVGQlZTeERRVUZETEVsQlFVbERMRVZCUVVVc1MwRkJTeXhQUVVGUFJpeEZRVUZGTEZOQlFWTkdMRVZCUVVWRExFVkJRVVVzUTBGQlF5eFJRVUZSUXl4RlFVRkZMRU5CUVVNc1JVRkJSVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZRU3hGUVVGRmJVSXNSVUZCUld4Q0xFVkJRVVVzUlVGQlJVb3NSVUZCUlVNc1EwRkJReXhGUVVGRlJTeERRVUZETEVkQlFVY3NUMEZCVHl4UFFVRlBiVUlzUlVGQlJWWXNSVUZCUlZnc1JVRkJSVU1zUTBGQlF5eEZRVUZGUXl4RFFVRkRMRVZCUVVVc1IwRkJSMFlzU1VGQlNVVXNSVUZCUlN4TlFVRk5MRTFCUVUwc1NVRkJTU3hOUVVGTkxHZEpRVUZuU1N4RlFVRkZSaXhGUVVGRlJTeEZRVUZGTEUxQlFVMUVMRVZCUVVVc1MwRkJTME1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVUVzUlVGQlJTeFJRVUZSTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhQUVVGUE1FSXNSVUZCUlRGQ0xFTkJRVU1zUlVGQlJTeExRVUZMTEVsQlFVa3NVMEZCVTBvc1JVRkJSU3hEUVVGRExFZEJRVWNzVTBGQlUwa3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJRMmRDTEVWQlFVVm9RaXhEUVVGRExFVkJRVVVzVFVGQlRTeEpRVUZKTEUxQlFVMHNhVUpCUVdsQ1FTeERRVUZETEVOQlFVTXNSVUZCUlVvc1EwRkJReXhGUVVGRlFTeEZRVUZGTEU5QlFVOHNRMEZCUXpoQ0xFVkJRVVU1UWl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkZETEVWQlFVVkVMRVZCUVVVc1EwRkJReXhGUVVGRlJTeEZRVUZGTEVWQlFVVkJMRVZCUVVWR0xFVkJRVVVzVDBGQlQwVXNTVUZCU1RSQ0xFVkJRVVU1UWl4RlFVRkZSU3hEUVVGRExFTkJRVU1zUlVGQlJVUXNSMEZCUjBjc1JVRkJSVW9zUlVGQlJVVXNRMEZCUXl4RlFVRkZMRTlCUVU5RUxFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVWRkxFVkJRVVVzU1VGQlNTeFZRVUZWTEVOQlFVTXNUMEZCVHl4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRVVZCTEVWQlFVVXNUVUZCVFN4VFFVRlRReXhGUVVGRlNpeEZRVUZGTEVOQlFVTXNTVUZCU1VNc1JVRkJSU3hMUVVGTExFOUJRVThzVlVGQlZTeFBRVUZQTEVsQlFVbEVMRVZCUVVWSkxFZEJRVWQzUWl4SFFVRkZlRUlzUTBGQlF5eEZRVUZGZDBJc1IwRkJSVFZDTEVOQlFVTXNSVUZCUlVVc1JVRkJSU3hUUVVGVFFTeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1VVRkJVVVVzUlVGQlJTeERRVUZETEVWQlFVVkRMRVZCUVVVc1QwRkJUMmxDTEVWQlFVVXNUMEZCVDJoQ0xFZEJRVVVzUlVGQlJVRXNSMEZCUlVnc1JVRkJSVWNzU1VGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUjJkQ0xFVkJRVVZFTEVWQlFVVm9RaXhGUVVGRlRDeEZRVUZGTEVWQlFVVkRMRVZCUVVWRExFTkJRVU1zUlVGQlJXOUNMRU5CUVVNc1JVRkJSU3hEUVVGRGFrSXNSVUZCUlN4UFFVRlBMRTlCUVU5cFFpeEZRVUZGY0VJc1JVRkJSVWNzUlVGQlJTeE5RVUZOUkN4RlFVRkZMRXRCUVV0RExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNTMEZCUzBNc1IwRkJSVkFzU1VGQlNYVkNMRVZCUVVWRUxFVkJRVVZvUWl4RlFVRkZUQ3hGUVVGRkxFVkJRVVZETEVWQlFVVkRMRU5CUVVNc1JVRkJSVzlDTEVOQlFVTXNSVUZCUldwQ0xFVkJRVVVzVVVGQlVVTXNTVUZCUnl4RlFVRkZTaXhGUVVGRlJ5eEZRVUZGTEUxQlFVMUVMRVZCUVVVc1MwRkJTME1zUlVGQlJTeExRVUZMTEVWQlFVVXNUMEZCVDJkQ0xFVkJRVVZXTEVWQlFVVlVMRVZCUVVWRkxFTkJRVU1zUlVGQlJXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJYQkNMRVZCUVVVc1QwRkJUeXhUUVVGVFF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1ZVRkJWU3hEUVVGRExFOUJRVTlCTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVWRUxFVkJRVVVzVDBGQlR5eFRRVUZUUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhMUVVGTExFMUJRVTBzUlVGQlJVRXNRMEZCUXl4RFFVRkRMRVZCUVVWRUxFVkJRVVVzVVVGQlVTeFRRVUZUUXl4RlFVRkZMRU5CUVVNc1QwRkJUM2RETEVkQlFVVXNTMEZCU3l4TlFVRk5lRU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NTMEZCU3l4RlFVRkZMRk5CUVZOQkxFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRlBTU3hGUVVGRkxFOUJRVTlLTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVWNzUlVGQlJTeEpRVUZKTEZOQlFWTkRMRVZCUVVVc1EwRkJRM2xDTEVkQlFVVjZRaXhEUVVGRExFVkJRVVVzU1VGQlNVb3NSVUZCUlN4TFFVRkxMRTlCUVU5RkxFVkJRVVVzVTBGQlUwUXNSVUZCUlVNc1JVRkJSU3hEUVVGRExFbEJRVWxETEVWQlFVVklMRVZCUVVVc1JVRkJSVU1zUlVGQlJVTXNRMEZCUXl4RlFVRkZMRTlCUVU5RExFVkJRVVVzVDBGQlQyMUNMRVZCUVVWV0xFVkJRVVZVTEVWQlFVVXNUVUZCVFVNc1JVRkJSVVFzUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZCUlVFc1EwRkJReXhGUVVGRlFTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZRU3hGUVVGRkxGVkJRVlVzVTBGQlUwTXNSVUZCUlN4RFFVRkRlVUlzUjBGQlJYcENMRU5CUVVNc1JVRkJSU3hKUVVGSlNpeEZRVUZGTEV0QlFVc3NUMEZCVDBVc1JVRkJSU3hUUVVGVFJDeEZRVUZGUXl4RlFVRkZMRU5CUVVNc1NVRkJTVU1zUlVGQlJVZ3NSVUZCUlN4TlFVRk5TU3hGUVVGRlNDeEZRVUZGTEUxQlFVMURMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVDBGQlQwTXNSVUZCUlN4UFFVRlBVeXhGUVVGRlZpeEZRVUZGUkN4RlFVRkZMRTlCUVU5RkxFVkJRVVVzUzBGQlN5eEZRVUZGUVN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRlFTeEZRVUZGTEU5QlFVOHNVMEZCVTBNc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVODJRaXhIUVVGRmVrSXNRMEZCUXl4RlFVRkZlVUlzUjBGQlJUZENMRU5CUVVNc1JVRkJSU3hMUVVGTExGVkJRVlZKTEVOQlFVTXNSVUZCUlN4SlFVRkpTaXhEUVVGRExFTkJRVU1zUlVGQlJVY3NSVUZCUlN4TFFVRkxMRk5CUVZORExFVkJRVVVzUTBGQlF5eFBRVUZQZFVNc1IwRkJSU3hMUVVGTGRrTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1UwRkJVMEVzUlVGQlJTeERRVUZETEU5QlFVOUJMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGUkN4RlFVRkZMRXRCUVVzc1ZVRkJWU3hEUVVGRExFOUJRVTk1UXl4SFFVRkZZeXhIUVVGSExFdEJRVXRCTEVkQlFVY3NVMEZCVTNSRUxFVkJRVVZLTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRVY3NSVUZCUlN4TlFVRk5TaXhGUVVGRkxFbEJRVWxETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVVVzUlVGQlJTeExRVUZMTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhQUVVGUGQwTXNSMEZCUldNc1IwRkJSeXhMUVVGTFFTeEhRVUZITEZOQlFWTXhSQ3hGUVVGRlF5eEZRVUZGUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXRGTEVWQlFVVXNUVUZCVFVnc1JVRkJSU3hOUVVGTlJDeEZRVUZGTEVsQlFVbEZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVTXNSVUZCUlN4TlFVRk5MRk5CUVZORExFVkJRVVVzUTBGQlF5eFBRVUZQTWtNc1IwRkJSU3hMUVVGTE0wTXNRMEZCUXl4RFFVRkRMRVZCUVVWRUxFVkJRVVVzVDBGQlR5eFRRVUZUUXl4RlFVRkZMRU5CUVVNc1QwRkJUelJETEVkQlFVVXNTMEZCU3pWRExFTkJRVU1zUTBGQlF5eEZRVUZGUkN4RlFVRkZMRlZCUVZVc1UwRkJVME1zUlVGQlJTeERRVUZETEU5QlFVOHNTMEZCU3l4TFFVRkxaMFFzUjBGQlJXaEVMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVZFTEVWQlFVVXNZMEZCWXl4VFFVRlRReXhGUVVGRkxFTkJRVU1zVDBGQlR5eExRVUZMTEV0QlFVdHBSQ3hIUVVGRmFrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVVFzUlVGQlJTeExRVUZMTEZOQlFWTkRMRVZCUVVVc1EwRkJRMmRDTEVWQlFVVm9RaXhEUVVGRExFbEJRVWxCTEVWQlFVVXNRMEZCUTBFc1EwRkJReXhIUVVGSExFbEJRVWxLTEVWQlFVVXNTMEZCU3l4UFFVRlBSU3hGUVVGRkxGTkJRVk5FTEVWQlFVVkRMRVZCUVVVc1EwRkJReXhKUVVGSlF5eEZRVUZGU0N4RlFVRkZMRVZCUVVWRExFVkJRVVZETEVOQlFVTXNSVUZCUlN4UFFVRlBReXhGUVVGRkxGTkJRVk5CTEVWQlFVVXNVMEZCVTBNc1IwRkJSMFFzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVFc1JVRkJSU3hUUVVGVExGTkJRVk5ETEVWQlFVVXNRMEZCUXl4UFFVRlBMRXRCUVVzc1IwRkJSelpETEVkQlFVVTNReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGUkN4RlFVRkZMRWRCUVVjc1UwRkJVME1zUlVGQlJTeERRVUZETEU5QlFVOTNReXhIUVVGRmVFTXNSVUZCUlN4TFFVRkxMRk5CUVZOQkxFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRlBTU3hGUVVGRlNpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVWSExFVkJRVVVzVFVGQlRTeFRRVUZUUXl4RlFVRkZMRU5CUVVNc1NVRkJTVW9zUlVGQlJTeExRVUZMTEU5QlFVOUZMRVZCUVVVc1UwRkJVMFFzUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVZJTEVWQlFVVXNSVUZCUlVNc1JVRkJSVU1zUTBGQlF5eEZRVUZGTEU5QlFVOURMRVZCUVVVc1QwRkJUMjFDTEVWQlFVVnNRaXhGUVVGRlJDeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZSaXhGUVVGRlJTeEZRVUZGTEV0QlFVc3NSVUZCUlVFc1EwRkJReXhGUVVGRlFTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZRU3hGUVVGRkxFOUJRVTlCTEVWQlFVVXNSMEZCUjBFc1JVRkJSU3hOUVVGTmNVUXNSMEZCUjNKRUxFVkJRVVVzUjBGQlJ6aERMRWRCUVVVNVF5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRlFTeEZRVUZGTEVkQlFVZEJMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVkJMRVZCUVVVc1RVRkJUVUVzUlVGQlJTeHhRa0ZCY1VJc1JVRkJSVUVzUlVGQlJTeFBRVUZQUVN4RlFVRkZMRzlDUVVGdlFpeEZRVUZGUVN4RlFVRkZMRTFCUVUxQkxFVkJRVVVzYVVKQlFXbENMRVZCUVVWQkxFVkJRVVVzUjBGQlIwRXNSVUZCUlN4clFrRkJhMElzUlVGQlJVRXNSVUZCUlN4SlFVRkpMRWxCUVVsMVJDeEhRVUZIZUVRc1JVRkJSU3hUUVVGVFJTeEZRVUZGU2l4RlFVRkZMRU5CUVVNc1QwRkJUMWtzUlVGQlJWb3NSVUZCUlhsQ0xFVkJRVVZ5UWl4RlFVRkZTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXlSQ3hIUVVGSGVrUXNSVUZCUlN4VFFVRlRSU3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1IwRkJSMGtzUlVGQlJTeFBRVUZQVHl4RlFVRkZXQ3hGUVVGRkxHOUNRVUZ2UWl4RlFVRkZXU3hGUVVGRldpeEZRVUZGTEVWQlFVVXlRaXhGUVVGRmRrSXNSVUZCUlVvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTkVRc1IwRkJSekZFTEVWQlFVVXNVMEZCVTBVc1JVRkJSVW9zUlVGQlJTeERRVUZETEU5QlFVOVpMRVZCUVVWU0xFVkJRVVVzVDBGQlQwRXNSVUZCUlN4TlFVRk5TaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVjVSQ3hIUVVGSGRrUXNSVUZCUlN4VFFVRlRSU3hGUVVGRlNpeEZRVUZGTEVOQlFVTXNUMEZCVDBFc1JVRkJSVWtzUlVGQlJTeFBRVUZQVHl4RlFVRkZXQ3hGUVVGRkxFdEJRVXNzUlVGQlJWa3NSVUZCUlZvc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTmtRc1IwRkJSMVlzUjBGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4VFFVRlRMRVZCUVVWWExFZEJRVWRZTEVkQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc2FVSkJRV2xDTEVWQlFVVlpMRWRCUVVkYUxFZEJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NWVUZCVlN4RlFVRkZZU3hIUVVGSFlpeEhRVUZGTEZOQlFWTXNSVUZCUlN4TFFVRkxMR3RDUVVGclFpeEZRVUZGWXl4SFFVRkhaQ3hIUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEhGQ1FVRnhRaXhGUVVGRlpTeEhRVUZIWml4SFFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExGbEJRVmtzUlVGQlJXZENMRWRCUVVkcVFpeEhRVUZGTEVsQlFVa3NSVUZCUld0Q0xFZEJRVWRzUWl4SFFVRkZPMEZCUVVFc1EwRkJTU3hGUVVGRmJVSXNSMEZCUjI1Q0xFZEJRVVU3UVVGQlFTeERRVUZOTEVWQlFVVnZRaXhIUVVGSGVrSXNSMEZCUlhkQ0xFZEJRVWRFTEVkQlFVZEVMRVZCUVVVc1JVRkJSU3hMUVVGTExGTkJRVk1zUlVGQlJVa3NSMEZCUnpGQ0xFZEJRVVY1UWl4SFFVRkhZaXhGUVVGRkxFVkJRVVYyUkN4RlFVRkZMRWxCUVVrd1JDeEhRVUZITVVRc1JVRkJSU3hKUVVGSk1rTXNSMEZCUlRORExFVkJRVVVzU1VGQlNYbEVMRWRCUVVkNlJDeEZRVUZGTEVkQlFVZHBSU3hIUVVGSGFrVXNSVUZCUlN4bFFVRmxMRk5CUVZORkxFVkJRVVVzUTBGQlF5eEpRVUZKU2l4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUlF5eExRVUZMUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhsUVVGbExFdEJRVXRCTEVWQlFVVklMRU5CUVVNc1IwRkJSeXhUUVVGVFFTeEZRVUZGTEVOQlFVTkVMRVZCUVVWRExFTkJRVU1zUlVGQlJYTkVMRWRCUVVjc1ZVRkJWU3hEUVVGRExFOUJRVTl1UkN4RlFVRkZTQ3hEUVVGRExFVkJRVVZFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVU1zUTBGQlF5eEZRVUZGTEU5QlFVOUVMRU5CUVVNc1JVRkJSVVVzUlVGQlJTeExRVUZMYlVVc1IwRkJSMjVGTEVWQlFVVXNUMEZCVHl4VFFVRlRSU3hGUVVGRkxFTkJRVU1zVDBGQlQwWXNSVUZCUlVVc1JVRkJSVkVzUlVGQlJVUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVlFzUlVGQlJTeE5RVUZOTWtRc1IwRkJSek5FTEVWQlFVVXNUMEZCVHpSRUxFZEJRVWMxUkN4RlFVRkZMRTFCUVUxelJDeEhRVUZIZEVRc1JVRkJSU3hKUVVGSmNVVXNSMEZCUjNKRkxFVkJRVVVzU1VGQlNYVkVMRWRCUVVkMlJDeEZRVUZGTEV0QlFVczBReXhIUVVGRk5VTXNSVUZCUlN4WlFVRlpkVU1zUjBGQlJYWkRMRVZCUVVVc1RVRkJUWGRFTEVkQlFVZDRSQ3hGUVVGRkxGTkJRVk5wUWl4RlFVRkZha0lzUlVGQlJTeExRVUZMY1VRc1IwRkJSM0pFTEVWQlFVVXNUMEZCVHpaRUxFZEJRVWMzUkN4RlFVRkZMRkZCUVZFNFJDeEhRVUZIT1VRc1JVRkJSU3hIUVVGSGEwVXNSMEZCUjJ4RkxFVkJRVVVzVlVGQlZXdEVMRWRCUVVWc1JDeEZRVUZGTEZsQlFWbFRMRVZCUVVWVUxFVkJRVVVzV1VGQldWVXNSVUZCUlZZc1JVRkJSU3hSUVVGUmIwVXNSMEZCUjNCRkxFVkJRVVVzVDBGQlR5eFRRVUZUUlN4RlFVRkZMRU5CUVVNc1QwRkJUMnRFTEVkQlFVY3NVMEZCVTNSRUxFVkJRVVVzUTBGQlF5eFBRVUZQU1N4RlFVRkZMRkZCUVZGS0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRmxCUVZsSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVkdMRVZCUVVVc1kwRkJZMjFFTEVkQlFVVnVSQ3hGUVVGRkxFZEJRVWNyUXl4SFFVRkZMME1zUlVGQlJTeE5RVUZOTEZOQlFWTkZMRVZCUVVVc1EwRkJReXhSUVVGUlNpeEZRVUZGU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRlNDeEZRVUZGTEVWQlFVVkJMRVZCUVVWRUxFVkJRVVVzVDBGQlQwTXNTVUZCU1VRc1JVRkJSVU1zUTBGQlF5eEZRVUZGTEVsQlFVbEVMRVZCUVVWRExFTkJRVU1zUlVGQlJTeEpRVUZKTEU5QlFVOXhSQ3hIUVVGSExGTkJRVk4wUkN4RlFVRkZMRU5CUVVNc1QwRkJUMGtzUlVGQlJTeFJRVUZSU2l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlMwRXNRMEZCUXl4RFFVRkRMRVZCUVVWRkxFVkJRVVVzWTBGQll5dEVMRWRCUVVjdlJDeEZRVUZGTEU5QlFVOUJMRVZCUVVWQkxFVkJRVVVzVFVGQlRTeFRRVUZUUlN4RlFVRkZTaXhGUVVGRkxFTkJRVU1zVDBGQlQzTkVMRWRCUVVjc1UwRkJVM0pFTEVWQlFVVXNRMEZCUXl4UFFVRlBSeXhIUVVGSFNDeEhRVUZIUVN4SFFVRkhSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMU1N4RlFVRkZMRWxCUVVsS0xFTkJRVU1zUTBGQlF5eEZRVUZGUlN4RlFVRkZMRTFCUVUxcFJDeEhRVUZGYWtRc1JVRkJSU3hQUVVGUGFVUXNSMEZCUldwRUxFVkJRVVVzVFVGQlRUWkRMRWRCUVVVM1F5eEZRVUZGTEU5QlFVODRReXhIUVVGRk9VTXNSVUZCUlN4SlFVRkplVU1zUjBGQlJYcERMRVZCUVVVc1QwRkJUekJETEVkQlFVVXhReXhGUVVGRkxFOUJRVThzVlVGQlZTeERRVUZETEZGQlFWRkZMRVZCUVVWS0xFVkJRVVVzUTBGQlF5eEZRVUZGUXl4RlFVRkZMRVZCUVVWRkxFZEJRVWRETEVWQlFVVXNWVUZCVlN4TlFVRk5MRlZCUVZVc1RVRkJUU3hMUVVGTFFTeERRVUZETEVkQlFVZERMRVZCUVVWR0xFVkJRVVVzVDBGQlQwY3NSVUZCUlN4RlFVRkZRU3hGUVVGRlJDeEZRVUZGUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSmFVSXNSVUZCUlhCQ0xFVkJRVVZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVOaExFVkJRVVZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVkSUxFVkJRVVZITEVOQlFVTXNSMEZCVDBFc1JVRkJSU3hUUVVGT0xFZEJRWGRDTEU5QlFVOUJMRVZCUVVVc1EwRkJReXhIUVVGd1FpeFZRVUYxUWtvc1JVRkJSVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVsb1FpeEZRVUZGWjBJc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eFBRVUZQTEZWQlFWVXNaVUZCWlN4TFFVRkxka0lzUlVGQlJVOHNRMEZCUXl4RlFVRkZMRTFCUVUwc1NVRkJTU3hOUVVGTkxIbENRVUY1UWtFc1EwRkJReXhGUVVGRlVDeEZRVUZGVHl4RFFVRkRMRVZCUVVVc1IwRkJSMDRzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4SlFVRkpMRTFCUVUwc2JVVkJRVzFGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVU5QkxFbEJRVW9zUlVGQlRTeE5RVUZOTEVsQlFVa3NUVUZCVFN4elJFRkJjMFFzUlVGQlJTeFBRVUZQUXl4RlFVRkZMRk5CUVZORkxFZEJRVVZLTEVkQlFVVXNRMEZCUXl4UlFVRlJReXhIUVVGRlF5eEhRVUZGTEVOQlFVTXNSVUZCUlVrc1IwRkJSU3hGUVVGRlFTeEhRVUZGUkN4RlFVRkZReXhKUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKYVVJc1IwRkJSV2hDTEVkQlFVVXNSMEZCUjJFc1JVRkJSV3BDTEVWQlFVVkhMRVZCUVVNc1EwRkJReXhIUVVGSGFVSXNSMEZCUlhCQ0xFVkJRVVZITEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVWRExFZEJRVVZLTEVWQlFVVkhMRVZCUVVNc1JVRkJSU3hEUVVGRExFbEJRVWxwUWl4SFFVRkZMRXRCUVV0b1FpeEhRVUZGU2l4RlFVRkZSeXhGUVVGRExFZEJRVWNzUlVGQlJVd3NSMEZCUlhGQ0xFVkJRVVZtTEVkQlFVVXNSVUZCUlVnc1IwRkJSVW9zUlVGQlF5eEZRVUZGUXl4RlFVRkRMRWRCUVVjc1QwRkJUeXhQUVVGUFFTeEhRVUZGYzBJc1MwRkJTWEpDTEVkQlFVVnhRaXhGUVVGRExFVkJRVVYwUWl4SFFVRkZMRTlCUVU5RUxFZEJRVVZETEVkQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU5eFFpeEZRVUZGVml4RlFVRkZXaXhIUVVGRlJTeEZRVUZETEVWQlFVVkVMRVZCUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJVTXNSVUZCUlN4UFFVRlBaMFFzUjBGQlJXaEVMRVZCUVVVc1VVRkJVU3RETEVkQlFVVXZReXhGUVVGRkxGVkJRVlVzVTBGQlUwVXNSVUZCUlN4RFFVRkRMRTlCUVU5NVFpeEhRVUZGZWtJc1EwRkJReXhGUVVGRlJpeEZRVUZGTEZOQlFWTkdMRVZCUVVWRExFVkJRVVVzUTBGQlF5eFJRVUZSUXl4RlFVRkZSQ3hGUVVGRlF5eEZRVUZGUml4RlFVRkZMRkZCUVZGSkxFVkJRVVYxUWl4RlFVRkZNMElzUlVGQlJVVXNRMEZCUXl4RFFVRkRMRWRCUVVkQkxFbEJRVWtzVDBGQlQxVXNSVUZCUlZZc1JVRkJSVVlzUlVGQlJTeE5RVUZOUXl4RlFVRkZReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlVFc1JVRkJSU3hMUVVGTGIwUXNSMEZCUjNCRUxFVkJRVVVzVjBGQlYyZEZMRWRCUVVkb1JTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRmMwUXNSMEZCUjNSRUxFVkJRVVVzYVVKQlFXbENMRVZCUVVVclF5eEhRVUZGTDBNc1JVRkJSU3hQUVVGUExFTkJRVU1zVDBGQlQxRXNSVUZCUlN4VlFVRlZMRk5CUVZOT0xFVkJRVVVzUTBGQlEwc3NSVUZCUlN4RlFVRkZMRWxCUVVsVUxFVkJRVVVzUTBGQlF5eEZRVUZGUXl4RlFVRkZMRVZCUVVWRExFVkJRVVVzUlVGQlJTeFRRVUZUUlN4RlFVRkZMRU5CUVVNc1IwRkJSMmRDTEVWQlFVVm9RaXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKUml4RlFVRkZSU3hGUVVGRkxFZEJRVTlHTEVWQlFVVXNVMEZCVGl4RlFVRmhMRTFCUVUwc1NVRkJTU3hOUVVGTkxFbEJRVWxCTEVWQlFVVXNTMEZCU3l4SlFVRkpMRVZCUVVVc2IwTkJRVzlEUVN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSE5FSXNSVUZCUlRWQ0xFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXdRaXhIUVVGRk1VSXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUExGVkJRVlVzWlVGQlpTeExRVUZMUml4RlFVRkZSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4TlFVRk5MQ3RDUVVFclFrRXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUFJpeEZRVUZGUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWRFTEVsQlFVbERMRU5CUVVNc1EwRkJReXhQUVVGUE1FSXNSMEZCUlhoQ0xFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVdEJMRU5CUVVNc1EwRkJReXhGUVVGRlFTeERRVUZETEVWQlFVVXNSMEZCUjBnc1JVRkJSU3hGUVVGRkxFMUJRVTBzU1VGQlNTeE5RVUZOTEcxRVFVRnRSRWNzUlVGQlJTeExRVUZMTEVsQlFVa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTVVFzUlVGQlJTeEZRVUZGTEZOQlFWTkRMRVZCUVVVc1EwRkJReXhQUVVGUFFTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZSaXhEUVVGRExFVkJRVVVzVDBGQlQxRXNSVUZCUlN4RlFVRkZMRk5CUVZOT0xFVkJRVVVzUTBGQlF5eFBRVUZQUVN4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRlJpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRk5CUVZORkxFVkJRVVVzUTBGQlF5eFBRVUZQUlN4RlFVRkZMRk5CUVZOR0xFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRmpRU3hGUVVGRkxFTkJRVU1zU1VGQlZpeFBRVUZqU1N4RlFVRkZTaXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGUVN4RlFVRkZMRU5CUVVNc1IwRkJSMGtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRk5CUVZOS0xFVkJRVVZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVORUxFVkJRVVZKTEVWQlFVVklMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzVTBGQlUwTXNSVUZCUlN4RFFVRkRMRWRCUVVkTExFVkJRVVVzUlVGQlJXMUNMRWRCUVVWNFFpeERRVUZETEVWQlFVVkJMRVZCUVVVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVFVGQlRTeDNRMEZCZDBOQkxFVkJRVVVzVFVGQlRVRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1JVRkJSU3d3UTBGQk1FTXNSVUZCUlN4SlFVRkpTaXhIUVVGSFNTeEZRVUZGTEVkQlFVY3NTMEZCU3l4UFFVRlBRU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEZRVUZGTEU5QlFVOUdMRVZCUVVVc1UwRkJVMFFzUlVGQlJVTXNSVUZCUlN4RFFVRkRMRWxCUVVsRExFVkJRVVYzUWl4RlFVRkZNVUlzUlVGQlJVTXNRMEZCUXl4RlFVRkZMRTlCUVU5RExFbEJRVWxETEVWQlFVVlJMRVZCUVVWV0xFVkJRVVVzUlVGQlJVTXNRMEZCUXl4RlFVRkZVU3hGUVVGRlZDeEZRVUZGUml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVDBGQlR5eFRRVUZUU1N4RlFVRkZMRU5CUVVNc1QwRkJUMU1zUlVGQlJTeFRRVUZUVkN4RFFVRkRMRVZCUVVVc1NVRkJTU3hUUVVGVFFTeEZRVUZGTEVOQlFVTXNUMEZCVHl4UFFVRlBMRXRCUVV0QkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4alFVRmpMRk5CUVZOQkxFVkJRVVZLTEVWQlFVVXNRMEZCUXl4UFFVRlBZU3hGUVVGRkxGTkJRVk5pTEVOQlFVTXNSVUZCUlN4SlFVRkpMRk5CUVZOQkxFVkJRVVVzUTBGQlF5eFBRVUZQUVN4RlFVRkZMRk5CUVZOSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBWeXhGUVVGRkxGRkJRVkZCTEVWQlFVVXNRMEZCUXl4RlFVRkZMRk5CUVZOQkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZOQlFWTkJMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVTlETEVWQlFVVXNVVUZCVVVFc1JVRkJSU3hEUVVGRExFVkJRVVVzVTBGQlUwRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVMEVzUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFVNc1JVRkJSU3hQUVVGUFFTeEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJRU3hGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSUVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTlF5eEZRVUZGTEU5QlFVOUJMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkZCTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZGQkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRk1MRVZCUVVVc1ZVRkJWU3hEUVVGRExFVkJRVVVzU1VGQlNTeFRRVUZUVkN4RlFVRkZMRU5CUVVNc1QwRkJUMEVzUlVGQlJTeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVVk1zUlVGQlJTeFZRVUZWTEVOQlFVTXNSVUZCUlN4SlFVRkpMRk5CUVZOVUxFVkJRVVVzUTBGQlF5eFBRVUZQUVN4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFRRVUZUVXl4RlFVRkZMRmRCUVZjc1EwRkJReXhGUVVGRkxFbEJRVWtzVTBGQlUxUXNSVUZCUlN4RFFVRkRMRTlCUVU5QkxFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRk5CUVZOVExFVkJRVVVzVjBGQlZ5eERRVUZETEVWQlFVVXNTVUZCU1N4VFFVRlRWQ3hGUVVGRkxFTkJRVU1zVDBGQlQwRXNSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEZGQlFWRkdMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRMEV6TW1Rc1NVRkJRWE5GTEVkQlFVRkRMRWRCUVVGRExFbEJRVUVzWTBGRFFTeEpRVUZKUXl4SFFVRmhSQ3hKUVVGUlFTeEhRVUZMTEZkQlFXVXNWVUZCV1N4RFFVTnlSQ3hKUVVGSlJTeEZRVUZuUWl4VFFVRlZReXhGUVVGSFF5eEZRVUZITEVOQlEyaERMRTlCUVVGR0xFVkJRV2RDTEU5QlFVOHNaMEpCUTJ4Q0xFTkJRVVVzVlVGQlZ5eERRVUZETEVOQlFVVXNXVUZCWVN4UFFVRlRMRk5CUVZWRExFVkJRVWRETEVWQlFVY3NRMEZCUlVRc1JVRkJSU3hWUVVGWlF5eERRVUZITEVkQlF6RkZMRk5CUVZWRUxFVkJRVWRETEVWQlFVY3NRMEZCUlN4UlFVRlRReXhMUVVGTFJDeEZRVUZQTEU5QlFVOHNWVUZCVlN4bFFVRmxMRXRCUVV0QkxFVkJRVWRETEVOQlFVTXNTVUZCUjBZc1JVRkJSVVVzUTBGQlF5eEZRVUZKUkN4RlFVRkZReXhEUVVGRExFVkJRVWNzUlVGRE4wWklMRVZCUVdORExFVkJRVWRETEVOQlFVTXNRMEZETjBJc1JVRkRRU3hQUVVGUExGTkJRVlZFTEVWQlFVZERMRVZCUVVjc1EwRkRia0lzUjBGQlNTeFBRVUZQUVN4SFFVRk5MRmxCUVdOQkxFbEJRVTBzUzBGRGFrTXNUVUZCVFN4SlFVRkpMRlZCUVZVc2RVSkJRWGxDTEU5QlFVOUJMRU5CUVVNc1JVRkJTU3dyUWtGQkswSXNSVUZETlVaR0xFVkJRV05ETEVWQlFVZERMRU5CUVVNc1JVRkRiRUlzVTBGQlUwVXNSMEZCU3l4RFFVRkZMRXRCUVVzc1dVRkJZMGdzUTBGQlJ5eERRVU4wUTBFc1JVRkJSU3hWUVVGWlF5eEpRVUZOTEV0QlFVOHNUMEZCVHl4UFFVRlBRU3hEUVVGRExFZEJRVXRGTEVWQlFVY3NWVUZCV1VZc1JVRkJSU3hWUVVGWExFbEJRVWxGTEVWQlEyNUdMRU5CUTBvc1JVRkJSeXhGUVVOSUxFOUJRVThzWlVGQlpVNHNSMEZCVXl4aFFVRmpMRU5CUVVVc1RVRkJUeXhGUVVGTExFTkJRVU1zUlVGRE5VUkJMRWRCUVZFc1YwRkJZVUVzUjBGQlVTeE5RVUZSUVN4SFFVRlJMR2xDUVVGdFFrRXNSMEZCVVN4clFrRkJiMElzVDBGWk5VWXNVMEZCVTA4c1IwRkJhMEpETEVWQlFVZEtMRVZCUVVjc1EwRkxOMElzUjBGQlNTeFBRVUZQTEZOQlFWTkpMRU5CUVVNc1IwRkJTeXhQUVVGUExGTkJRVk5LTEVOQlFVTXNSVUZEZGtNc1QwRkJUMGtzUlVGQlNVb3NSVUZKWml4SlFVRkpTeXhGUVVGTExFOUJRVTlFTEVWQlExcEZMRVZCUVVzc1QwRkJUMDRzUlVGRGFFSXNSMEZCU1Vzc1NVRkJUME1zUlVGRFVDeFBRVUZQUkN4RlFVRkxReXhGUVVGTExFZEJRVXNzUlVGRk1VSXNSMEZCU1VRc1NVRkJUeXhUUVVGVkxFTkJSV3BDTEVkQlFVbEVMRWxCUVUwc1MwRkRUaXhQUVVGUFNpeEpRVUZOTEV0QlFVOHNSVUZCU1N4SFFVTjJRaXhIUVVGSlFTeEpRVUZOTEV0QlExZ3NUVUZCVHl4SFFVMVlMRWRCVEVGSkxFVkJRVWxCTEVWQlFVVXNVVUZCVVN4RlFVTmtTaXhGUVVGSlFTeEZRVUZGTEZGQlFWRXNSVUZEWkVzc1JVRkJTeXhQUVVGUFJDeEZRVU5hUlN4RlFVRkxMRTlCUVU5T0xFVkJSVkpMTEVsQlFVOURMRVZCUTFBc1QwRkJUMFFzUlVGQlMwTXNSVUZCU3l4SFFVRkxMRU5CUlRsQ0xFTkJSMEVzVDBGQlNVWXNSVUZCU1Vvc1JVRkRSeXhIUVVOUVNTeEZRVUZKU2l4RlFVTkhMRVZCUTFCSkxFbEJRVTFLTEVWQlEwTXNSVUZGVUN4UFFVRlBMRTFCUVUxSkxFTkJRVU1zUlVGRFVDeFBRVUZQTEUxQlFVMUtMRU5CUVVNc1JVRkJTU3hGUVVGSkxFZEJRM2hDTEU5QlFVOHNUVUZCVFVFc1EwRkJReXhGUVVOYUxFVkJSVW9zVFVGQlRTeFJRVUZSU1N4RFFVRkRMRVZCUVVrc1JVRkJTU3hQUVVGUExFZEJRM3BETEVOQlEwRlNMRWRCUVZFc2EwSkJRVzlDVHl4SFFVVTFRaXhUUVVGVFNTeEhRVUZwUWtnc1JVRkJSMG9zUlVGQlJ5eERRVU0xUWl4UFFVRlBTU3hGUVVGSlNpeEZRVUZKTEVWQlFVbEpMRVZCUVVsS0xFVkJRVWtzUjBGQlN5eERRVU53UXl4RFFVTkJTaXhIUVVGUkxHbENRVUZ0UWxjc1IwRnJSVE5DTEVsQlFVbERMRWRCUVhWQ0xGVkJRVmtzUTBGVGJrTXNVMEZCVTBFc1JVRkJUVU1zUlVGQlUwTXNSVUZCVTBNc1JVRkJZU3hEUVVNeFF5eExRVUZMTEUxQlFWRkRMRWRCUTJJc1MwRkJTeXhOUVVGUkxFVkJRMklzUzBGQlN5eGhRVUZsUkN4SFFVRmxMRVZCUVVrc1MwRkJTeXhKUVVGSlFTeEZRVUZoTEVkQlFVY3NSVUZCU1N4SFFVTndSU3hMUVVGTExGTkJRVmRFTEVkQlFWZFFMRWRCUTNaQ1RTeEhRVU5CTEV0QlFVc3NVMEZCVTBFc1EwRkJUeXhEUVVNM1FpeERRVU5CTEdOQlFVOHNaVUZCWlVRc1JVRkJUU3hWUVVGWExFOUJRVkVzUTBGSk0wTXNTVUZCU3l4VlFVRlpMRU5CUVVVc1QwRkJUeXhMUVVGTExFdEJRVThzUlVGRGRFTXNWMEZCV1N4SFFVTmFMR0ZCUVdNc1JVRkRiRUlzUTBGQlF5eEZRVU5FTEU5QlFVOHNaVUZCWlVFc1JVRkJUU3hWUVVGWExGTkJRVlVzUTBGRk4wTXNTVUZCU3l4VlFVRlpMRU5CUVVVc1QwRkJUeXhMUVVGTExFdEJRVThzUlVGRGRFTXNWMEZCV1N4SFFVTmFMR0ZCUVdNc1JVRkRiRUlzUTBGQlF5eEZRVU5FTEU5QlFVOHNaVUZCWlVFc1JVRkJUU3hWUVVGWExGVkJRVmNzUTBGRk9VTXNTVUZCU3l4VlFVRlpMRU5CUVVVc1QwRkJUeXhMUVVGTExGRkJRVlVzUTBGQlJ5eEZRVU0xUXl4WFFVRlpMRWRCUTFvc1lVRkJZeXhGUVVOc1FpeERRVUZETEVWQlJVUkJMRVZCUVUwc1ZVRkJWU3hOUVVGUkxGVkJRVmtzUTBGRGFFTXNTMEZCU3l4TlFVRlJTU3hIUVVOaUxFdEJRVXNzVFVGQlVTeERRVU5xUWl4RlFWTkJTaXhGUVVGTkxGVkJRVlVzVVVGQlZTeFRRVUZWU3l4RlFVRlZReXhGUVVGVExFTkJRMjVFTEVsQlFVbERMRVZCUVZFc1MwRkRXaXhQUVVGSlJDeEpRVUZaTEZOQlExcEVMRVZCUVZkQkxFVkJRVk1zUzBGQlMwTXNRMEZCVHl4SFFVTTNRaXhMUVVGTExGbEJRVmtzVTBGQlZVVXNSVUZCUjBNc1JVRkJSeXhEUVVGRkxFOUJRVTlLTEVWQlFWTkpMRVZCUVVkRUxFVkJRVWRFTEVOQlFVc3NRMEZCUnl4RFFVRkRMRU5CUXpkRkxFVkJaVUZRTEVWQlFVMHNWVUZCVlN4WlFVRmpMRk5CUVZWTExFVkJRVlZMTEVWQlFXZENMRU5CUXpsRUxFbEJRVWxETEVWQlFVMHNTMEZCU3l4UFFVRlBMRVZCUVVkRExFVkJRVThzUzBGQlN5eFBRVUZQTEVWQlF6VkRMRTlCUVU4c1MwRkJTeXhUUVVGVFJDeEZRVUZMUXl4RlFVRk5MRWRCUVUxUUxFVkJRVlZMTEVOQlFXTXNRMEZEYkVVc1JVRlBRVllzUlVGQlRTeFZRVUZWTEVsQlFVMHNVMEZCVldFc1JVRkJTME1zUlVGQll5eERRVU12UXl4UFFVRlBMRXRCUVVzc1RVRkJUU3hKUVVGSlJDeEZRVUZMUXl4RlFVRmpMRWxCUVVrc1EwRkRha1FzUlVGbFFXUXNSVUZCVFN4VlFVRlZMRWxCUVUwc1UwRkJWV0VzUlVGQlMwVXNSVUZCVDBNc1JVRkJWeXhEUVVNdlF5eExRVUZMTEUxQlFVMHNWMEZEV0N4TFFVRkxMRTFCUVZFc1MwRkJTeXhOUVVGTkxFMUJRVTBzUjBGRGJFTXNTVUZCU1VNc1JVRkJVeXhMUVVGTExFMUJRVTBzU1VGQlNVb3NSVUZCUzBVc1JVRkJUME1zUlVGQlZ5eEpRVUZKTEVWQlEzWkVMRTlCUVVsRExFbEJRVmNzU1VGQlVVRXNTVUZCVnl4SFFVTjJRa0VzUjBGRldDeExRVUZMTEUxQlFWRXNTVUZCU1VNc1IwRkJZeXhEUVVGRExFdEJRVXNzVFVGQlQwUXNRMEZCVFN4RFFVRkRMRVZCUXpWRExFZEJRMWdzUlVGUlFXcENMRVZCUVUwc1ZVRkJWU3hKUVVGTkxGTkJRVlZoTEVWQlFVc3NRMEZEYWtNc1QwRkJUeXhMUVVGTExGTkJRVk5CTEVWQlFVdEJMRVZCUVVzc1IwRkJUU3hOUVVGVExFbEJRVTBzUTBGRGVFUXNSVUZQUVdJc1JVRkJUU3hWUVVGVkxFOUJRVk1zVTBGQlZXRXNSVUZCU3l4RFFVTndReXhQUVVGUExFdEJRVXNzVlVGQlZVRXNSVUZCUzBFc1JVRkJTeXhIUVVGTlRTeEZRVUZYTEVsQlFVMHNRMEZETTBRc1JVRkRRVzVDTEVWQlFVMHNWVUZCVlN4TFFVRlBMRk5CUVZWaExFVkJRVXRGTEVWQlFVOURMRVZCUVZjc1EwRkRjRVFzU1VGQlNVa3NSVUZCU3l4TFFVRkxMRTFCUVUwc1JVRkRjRUlzVDBGQlQwRXNSVUZCUnl4SlFVRkpVQ3hGUVVGTFJTeEZRVUZQUXl4RFFVRlRMRWRCUVV0QkxFVkJRVmxKTEVWQlFVc3NTVUZETjBRc1JVRkZRWEJDTEVWQlFVMHNWVUZCVlN4VlFVRlpMRk5CUVZWeFFpeEZRVUZQVEN4RlFVRlhMRU5CUTNCRUxFbEJRVWxKTEVWQlFVc3NTMEZCU3l4TlFVRk5MRVZCUTNCQ0xFOUJRVTlCTEVWQlFVY3NVMEZCVTBNc1JVRkJUMHdzUTBGQlV5eEpRVUZOTEVkQlFVdEJMRVZCUVZsSkxFVkJRVXNzU1VGRGJrVXNSVUZUUVhCQ0xFVkJRVTBzVlVGQlZTeFRRVUZYTEZOQlFWVnpRaXhGUVVGTlF5eEZRVUYxUWl4RFFVVTVSQ3hSUVVSSlNDeEZRVUZMTEV0QlFVc3NUVUZCVFN4RlFVRkhTU3hGUVVGVkxFZEJRM2hDTEVWQlFVa3NSVUZCUnl4RlFVRkpSaXhGUVVGTExFOUJRVkVzU1VGRE4wSkZMRVZCUVZWS0xFVkJRVWNzU1VGQlNVVXNSVUZCU3l4RFFVRkRMRVZCUVVjc1QwRkJWeXhGUVVGTExFZEJRVXRGTEVWQlEyNUVMRTlCUVU5RUxFZEJRWGxDTEVOQlFVTkRMRVZCUVZVc1MwRkJUMG9zUTBGRGRFUXNSVUZQUVhCQ0xFVkJRVTBzVlVGQlZTeFJRVUZWTEZOQlFWVmhMRVZCUVV0VkxFVkJRWFZDTEVOQlF6VkVMRTlCUVU4c1MwRkJTeXhoUVVGaFZpeEZRVUZMUVN4RlFVRkxMRWRCUVUxVkxFTkJRWEZDTEVOQlEyeEZMRVZCVDBGMlFpeEZRVUZOTEZWQlFWVXNXVUZCWXl4VFFVRlZjMElzUlVGQlRVTXNSVUZCZFVJc1EwRkRha1VzU1VGQlNVZ3NSVUZCU3l4TFFVRkxMRTFCUVUwc1JVRkRjRUlzVDBGQlQwRXNSVUZCUnl4WFFVRlhSU3hEUVVGSkxFZEJRVXNzUTBGQlEwTXNSVUZCZDBKSUxFVkJRVXNzU1VGRGFFVXNSVUZGUVhCQ0xFVkJRVTBzVlVGQlZTeGhRVUZsTEZOQlFWVlhMRVZCUVV0RExFVkJRVTFoTEVWQlFXRkdMRVZCUVhWQ0xFTkJRM0JHTEVsQlFVbElMRVZCUVVzc1MwRkJTeXhOUVVGTkxFVkJRM0JDTEU5QlFVbEJMRVZCUVVjc1dVRkJXVlFzUlVGQlMwTXNSVUZCVFdFc1EwRkJWeXhKUVVGTkxFZEJRVXRHTEVWQlEzcERMRXRCUTBwSUxFTkJRMWdzUlVGSFFYQkNMRVZCUVUwc1ZVRkJWU3hQUVVGVExGTkJRVlZMTEVWQlFWVnJRaXhGUVVGMVFpeERRVU5vUlN4SlFVRkpTQ3hGUVVGTExFdEJRVXNzV1VGQldTeEZRVU4wUWswc1JVRkxTaXhQUVVwQlRpeEZRVUZITEZGQlFWRXNVMEZCVlZvc1JVRkJSME1zUlVGQlIydENMRVZCUVVjc1EwRkRNVUlzUjBGQlNTeERRVUZEZEVJc1JVRkJVMGNzUlVGQlIwTXNSVUZCUjJ0Q0xFTkJRVU1zUlVGRGFrSXNUMEZCVDBRc1JVRkJUVVVzUlVGRGNrSXNRMEZCUXl4RlFVTkhMRU5CUVVOR0xFZEJRVTlJTEVWQlEwUXNTMEZEU2tnc1EwRkRXQ3hGUVVWQmNFSXNSVUZCVFN4VlFVRlZMRlZCUVZrc1UwRkJWVXNzUlVGQlZTeERRVU0xUXl4SlFVRkpkMElzUlVGQlRTeERRVUZETEVWQlExQlVMRVZCUVVzc1MwRkJTeXhaUVVGWkxFVkJRekZDTEU5QlFVRkJMRVZCUVVjc1VVRkJVU3hUUVVGVldpeEZRVUZIUXl4RlFVRkhhMElzUlVGQlJ5eERRVU14UWl4UFFVRlBSU3hGUVVGSkxFMUJRVkY0UWl4RlFVRlRTU3hGUVVGSFJDeEZRVUZIYlVJc1EwRkJReXhGUVVGSFJTeERRVU14UXl4RFFVRkRMRVZCUTAxVUxFTkJRMWdzUlVGRFFYQkNMRVZCUVUwc1ZVRkJWU3hQUVVGVExGTkJRVlZMTEVWQlFWVjVRaXhGUVVGakxFTkJSM1pFTEZGQlJrbElMRVZCUVVrc1JVRkJSMnhETEVWQlFVbHhReXhGUVVOWVF5eEZRVUZMTEV0QlFVc3NVVUZCVVN4TFFVRkxMRTlCUVU4c1JVRkJSME1zUlVGQlZ5eEZRVUZIUXl4RlFVTTFReXhGUVVGRlFTeEZRVUZQUml4RlFVRkhMRXRCUVVzc1IwRkJSeXhOUVVOMlFuUkRMRVZCUVVsWkxFVkJRVk5hTEVWQlFVZDNReXhGUVVGTExFMUJRVTlPTEVsQlFVc3NTVUZCU1N4RlFVTjZReXhQUVVGUGJFTXNRMEZEV0N4RlFWZEJUeXhGUVVGTkxGVkJRVlVzVVVGQlZTeFRRVUZWYTBNc1JVRkJWME1zUlVGQllTeERRVU40UkN4SlFVRkpReXhGUVVGUExFdEJRVXNzVTBGQlUwWXNRMEZCVXl4RlFVTnNReXhIUVVGSlJTeEpRVUZUTEU5QlExUXNUMEZCVDBNc1IwRkJVeXhGUVVOd1FpeEpRVUZKUXl4RlFVRlpSaXhGUVVGTExGVkJRVmRITEVWQlFWbElMRVZCUVVzc1ZVRkJWMGtzUlVGQlQwb3NSVUZCU3l4TFFVTndSVXNzUlVGQlVVNHNTVUZCWjBJc1QwRkJXU3hGUVVGSkxFVkJRM2hEVWl4RlFVRkxUeXhKUVVGakxFOUJRVmtzUjBGQlMwMHNSVUZCU3l4UlFVRlJUaXhGUVVGWExFVkJRVWNzUzBGQlN5eFJRVUZSTEVWQlFVa3NSVUZEY0VZc1QwRkJUMGNzUjBGQlV5eFZRVUZaTEVOQlEzaENTeXhGUVVGTkxFOUJRMFlzVDBGQlVVUXNSVUZCVHl4RFFVTllMRWxCUVVzc1IwRkRSQ3hIUVVGSkxFVkJRVVZrTEVWQlFVbGhMRVZCUVVzc1MwRkJTeXhQUVVOb1FpeE5RVUZQTEVOQlFVVXNTMEZCVFN4SFFVRlBMRTFCUVU4c1EwRkJRMEVzUlVGQlN5eExRVUZMWWl4RFFVRkRMRVZCUVVkaExFVkJRVXNzVDBGQlQySXNRMEZCUXl4RFFVRkRMRU5CUVVVc1JVRkRhRVZqTEVWQlFWRXNSVUZEVWl4VFFVTktMRWxCUVVzc1IwRkRSQ3hIUVVGSkxFVkJRVVZrTEVWQlFVbGhMRVZCUVVzc1MwRkJTeXhQUVVOb1FpeFBRVUZCVEN4RlFVRlpMRU5CUVVNc1JVRkJTVXNzUlVGQlN5eExRVUZMWWl4RFFVRkRMRVZCUVVkUkxFVkJRVmtzUTBGQlF5eEZRVUZKU3l4RlFVRkxMRTlCUVU5aUxFTkJRVU1zUlVGRGRFUXNRMEZCUlN4TFFVRk5MRWRCUVU4c1RVRkJUMUVzUTBGQldTeEZRVVUzUTAwc1JVRkJVU3hGUVVOYUxFbEJRVXNzUjBGRlJDeFJRVUZUUlN4RlFVRlJMRXRCUVUwc1EwRkRia0lzUjBGQlNTeEZRVUZGUVN4SFFVRlRUQ3hGUVVGVkxFOUJRVkVzUTBGRE4wSkhMRVZCUVZFc1JVRkRVaXhUUVVGVFF5eERRVU5pTEVOQlEwRXNSMEZCU1N4RlFVRkZTQ3hGUVVGVlNTeERRVUZMTEVWQlFVbE1MRVZCUVZWTExFTkJRVXNzUlVGQlJTeFBRVU4wUXl4TFFVTlNMRU5CUTBFc1MwRkJUMEVzUlVGQlVTeEZRVUZIUVN4SlFVTmtUQ3hGUVVGVlN5eEZRVUZSTEVOQlFVTXNSVUZCU1V3c1JVRkJWVXNzUTBGQlN5eEZRVUZGU2l4RlFVRlZTU3hEUVVGTExFTkJRVU1zUlVGQlJTeFRRVU14UkVvc1JVRkJWVWtzUlVGQlVTeERRVUZETEVWQlFVa3NSVUZGTTBKSUxFVkJRVTlHTEVWQlFWVXNRMEZCUXl4RlFVRkZReXhGUVVGVkxFTkJRVU1zUTBGQlF5eEZRVU5vUTFvc1JVRkJTU3hIUVVOS1l5eEZRVUZSVGl4SlFVRm5RaXhQUVVGWkxFVkJRVWtzUlVGRGVFTXNVMEZEU2l4SlFVRkxMRWRCUTBRc1RVRkJUeXhEUVVGRkxFdEJRVTBzUjBGQlRTeE5RVUZQTEUxQlFWVXNRMEZET1VNc1EwRkZVaXhEUVVGRExFTkJRMHdzUlVGVlFXNURMRVZCUVUwc1ZVRkJWU3huUWtGQmEwSXNVMEZCVlRSRExFVkJRVmxVTEVWQlFXRlZMRVZCUVdFc1EwRkRPVVVzUjBGQlNVUXNTVUZCWlN4VFFVTm1RU3hGUVVGaExFdEJRVXNzVDBGQlR5eEZRVU42UWtNc1JVRkJZeXhQUVVOV1JDeEpRVUZsTEZGQlEyWXNUMEZCVDFBc1IwRkJVeXhGUVVWNFFpeEpRVUZKVXl4RlFVRkxMRXRCUVVzc1UwRkJVMFlzUTBGQlZTeEhRVUZMTEV0QlFVc3NVMEZCVXl4TFFVRkxMRTlCUVU4c1EwRkJReXhGUVVGSFRpeEZRVUZaVVN4RlFVRkhMRlZCUVZkUUxFVkJRVmxQTEVWQlFVY3NWVUZCVjA0c1JVRkJUMDBzUlVGQlJ5eExRVU5zU1VNc1IwRkJUU3hEUVVGRFZDeEZRVUZWTEVOQlFVTXNSMEZCUzBVc1NVRkJVMFlzUlVGQlZTeERRVUZETEVWQlFVVkRMRVZCUVZVc1EwRkJReXhEUVVGRExFVkJRVWNzVFVGQlRTeEZRVU5zUlN4SlFVRkpXaXhGUVVGSllTeEZRVUZMTEZGQlFWRkpMRVZCUVZrc1JVRkJSeXhMUVVGTExGRkJRVkVzUlVGRE4wTXNRMEZCUTBNc1IwRkJaV3hDTEVWQlFVbGhMRVZCUVVzc1MwRkJTeXhSUVVGVkxFdEJRVXNzVTBGQlUwRXNSVUZCU3l4TFFVRkxZaXhEUVVGRExFVkJRVWRwUWl4RFFVRlZMRWRCUVVzc1IwRkRia1pxUWl4SlFVTktMRWxCUVVsakxFVkJRVkZPTEVsQlFXZENMRTlCUVZrc1JVRkJTU3hGUVVNMVF5eFBRVUZQUlN4SFFVRlRMRlZCUVZrc1EwRkRlRUpMTEVWQlFVMHNUMEZEUml4UFFVRlJSQ3hGUVVGUExFTkJRMWdzU1VGQlN5eEhRVU5FTEVkQlFVa3NSVUZCUldRc1IwRkJTeXhGUVVOUUxFMUJRVThzUTBGQlJTeExRVUZOTEVkQlFVOHNUVUZCVHl4RFFVRkRZU3hGUVVGTExFdEJRVXRpTEVOQlFVTXNSVUZCUjJFc1JVRkJTeXhQUVVGUFlpeERRVUZETEVOQlFVTXNRMEZCUlN4RlFVTm9SV01zUlVGQlVTeEZRVU5TTEZOQlEwb3NTVUZCU3l4SFFVTkVMRWRCUVVrc1JVRkJSV1FzUjBGQlN5eEZRVU5RTEU5QlFVRlJMRVZCUVZrc1EwRkJReXhGUVVGSlN5eEZRVUZMTEV0QlFVdGlMRU5CUVVNc1JVRkJSMUVzUlVGQldTeERRVUZETEVWQlFVbExMRVZCUVVzc1QwRkJUMklzUTBGQlF5eEZRVU4wUkN4RFFVRkZMRXRCUVUwc1IwRkJUeXhOUVVGUFVTeERRVUZaTEVWQlJUZERUU3hGUVVGUkxFVkJRMW9zU1VGQlN5eEhRVVZFTEZGQlFWTkZMRVZCUVZFc1MwRkJUU3hEUVVOdVFpeEhRVUZKTEVWQlFVVkJMRWRCUVZOTUxFVkJRVlVzVDBGQlVTeERRVU0zUWtjc1JVRkJVU3hGUVVOU0xGTkJRVk5ETEVOQlEySXNRMEZEUVN4SFFVRkpMRVZCUVVWSUxFVkJRVlZKTEVOQlFVc3NSMEZCU3l4RlFVTjBRaXhMUVVOU0xFTkJRMEVzUzBGQlQwRXNSVUZCVVN4RlFVRkhRU3hKUVVOa1RDeEZRVUZWU3l4RlFVRlJMRU5CUVVNc1JVRkJTVXdzUlVGQlZVc3NRMEZCU3l4RlFVRkZTaXhGUVVGVlNTeERRVUZMTEVOQlFVTXNSVUZCUlN4VFFVTXhSRW9zUlVGQlZVa3NSVUZCVVN4RFFVRkRMRVZCUVVsTUxFVkJRVlZMTEVWQlFWRXNRMEZCUXl4RlFVRkZMRTlCUVZNc1JVRkZla1JJTEVWQlFVOUdMRVZCUVZVc1EwRkJReXhGUVVGRlF5eEZRVUZWTEVOQlFVTXNRMEZCUXl4RlFVTm9RMW9zUlVGQlNXRXNSVUZCU3l4TFFVRkxMRTlCUTJSRExFVkJRVkZPTEVsQlFXZENMRTlCUVZrc1JVRkJTU3hGUVVONFF5eFRRVU5LTEVsQlFVc3NSMEZEUkN4TlFVRlBMRU5CUVVVc1MwRkJUU3hIUVVGTkxFMUJRVThzVFVGQlZTeERRVU01UXl4RFFVVlNMRU5CUVVNc1EwRkRUQ3hGUVZWQmJrTXNSVUZCVFN4VlFVRlZMRk5CUVZjc1UwRkJWV0VzUlVGQlN5eERRVU4wUXl4SlFVRkpiVU1zUlVGQlZ5eExRVUZMTEUxQlEyaENWaXhGUVVGWFF5eEZRVU5tTEVkQlFVbFRMRVZCUVZNc1QwRkRWRllzUlVGQldWY3NSMEZCV1ZZc1JVRkJXVlVzVDBGRmJrTXNRMEZEUkZnc1JVRkJXU3hEUVVGRExFVkJRVWRETEVWQlFWa3NRMEZCUXl4RlFVTTNRaXhSUVVGVGFFUXNSVUZCU1N4RlFVRkhMRU5CUVVONVJDeEZRVUZUTEU5QlFWRjZSQ3hKUVVGTExFTkJSMjVETEVkQlJrRXJReXhGUVVGVkwwTXNRMEZCUXl4RlFVRkplVVFzUlVGQlV5eFRRVU40UWxRc1JVRkJWV2hFTEVOQlFVTXNSVUZCU1hOQ0xFbEJRVkVzVDBGQldTeEZRVUZKYlVNc1JVRkJVeXhSUVVGUmJrTXNSVUZCU3l4RlFVRkhMRXRCUVVzc1VVRkJVU3hGUVVONlJUQkNMRVZCUVZWb1JDeERRVUZETEVkQlFVc3JReXhGUVVGVkwwTXNRMEZCUXl4RlFVRkZMRTlCUXpkQ0xFOUJRMHA1UkN4RlFVRlhWaXhGUVVGVkwwTXNRMEZCUXl4RlFVRkZaMFFzUlVGQlZXaEVMRU5CUVVNc1EwRkJReXhEUVVONFF5eERRVU5CSzBNc1JVRkJWU3hSUVVGUkxFVkJRMnhDUXl4RlFVRlZMRkZCUVZFc1EwRkRkRUlzUTBGRFFTeE5RVUZQTEVOQlFVVXNWVUZCVjBRc1JVRkJWeXhWUVVGWFF5eEZRVUZYTEV0QlFVMVRMRU5CUVZNc1EwRkRlRVVzUlVGalFXaEVMRVZCUVUwc1ZVRkJWU3haUVVGakxGTkJRVlZyUkN4RlFVRlBReXhGUVVGVlF5eEZRVUZYUXl4RlFVRlhMRU5CUXpORkxFZEJRVWxJTEVWQlFVMHNWMEZCWVN4TFFVRkxMRk5CUTNoQ0xFMUJRVTBzU1VGQlNTeE5RVUZOTEc5RFFVRnZReXhGUVVWNFJDeEhRVUZKTEV0QlFVc3NVMEZCVjBFc1JVRkJUU3hSUVVOMFFpeFBRVUZKTEV0QlFVc3NVMEZCVjBFc1JVRkJUU3hSUVVOMFFpeFBRVVZCTEV0QlFVc3NVVUZEUlVVc1NVRkJZeXhQUVVGWkxFOUJRVmx3UkN4RlFVRk5MRlZCUVZWQkxFVkJRVTBzWlVGQlpXdEVMRU5CUVVzc1JVRkJSMFVzUTBGQlV5eEZRVU5vUjBRc1NVRkJZU3hQUVVGWkxFOUJRVmx1UkN4RlFVRk5MRlZCUVZWQkxFVkJRVTBzWlVGQlpTeEpRVUZKTEVWQlFVZHRSQ3hEUVVGUkxFVkJNRUp3Unl4UlFVNUpSeXhGUVVGWExFdEJRVXNzVTBGRGFFSkRMRVZCUVdGMlJDeEZRVUZOTEdWQlFXVXNTVUZCU1N4RlFVTjBRM2RFTEVWQlFXTjRSQ3hGUVVGTkxHVkJRV1ZyUkN4RFFVRkxMRVZCUjNoRFR5eEZRVUZqTEVkQlFVMURMRVZCUVdVc1IwRkJUVU1zUlVGQmEwSXpSQ3hGUVVGTkxGRkJRVkYxUkN4RlFVRlpReXhGUVVGaFJpeERRVUZSTEVWQlEzWkhSeXhIUVVGbFF5eEhRVUZqTEVOQlEyaERMRWxCUVVsRkxFVkJRV00xUkN4RlFVRk5MRkZCUVZGMVJDeEZRVUZaUXl4RlFVRmhSaXhEUVVGUkxFVkJRemRFVHl4RlFVRlhUaXhGUVVGWExFdEJRVTFQTEVWQlFXOUNVQ3hGUVVGWExHTkJRV1ZSTEVWQlFXMUNVaXhGUVVGWExHRkJRM2hIVXl4RlFVRlpVaXhGUVVGWkxFdEJRVTFUTEVWQlFYRkNWQ3hGUVVGWkxHTkJRV1ZWTEVWQlFXOUNWaXhGUVVGWkxHRkJRMnhJTEVkQlFVbExMRWRCUVZsSExFZEJSVm9zUjBGQlNVd3NTVUZCYjBJc1IwRkRjRUlzUjBGQlNVTXNTVUZCWjBJc1IwRkRhRUlzUjBGQlNVTXNSMEZCV1Vjc1IwRkJZVmdzUlVGQlZ5eERRVVZ3UXl4SlFVRkpZeXhGUVVGVlRpeEZRVUZUTEU5QlFVOUZMRVZCUVdsQ1FTeEZRVUZwUWl4UFFVRlRMRU5CUVVNc1EwRkJReXhGUVVOMlJVc3NSVUZCVjBvc1JVRkJWU3hQUVVGUFJTeEZRVUZyUWtFc1JVRkJhMElzVDBGQlV5eERRVUZETEVOQlFVTXNSVUZETDBVc1IwRkJTU3hEUVVGRExFOUJRVThzUjBGQlIwTXNSVUZCVTBNc1EwRkJVU3hGUVVGSExFTkJReTlDTEVsQlFVbHVSQ3hGUVVGVGIwTXNSVUZCVlVVc1JVRkJWeXhYUVVGWldTeEZRVUZUUXl4RFFVRlJMRVZCUXk5RUxFZEJRVWx1UkN4SFFVRlZRU3hGUVVGUExFMUJRMnBDTEU5QlFVOUJMRVZCUVU4c1MwRkRkRUlzUTBGRFNpeFZRVVZMTWtNc1JVRkJZeXhIUVV0dVFpeEhRVUZKU1N4SFFVRmhXaXhGUVVGWExFTkJRM2hDTEVsQlFVbHBRaXhGUVVGWFRDeEZRVUZWTEU5QlFVOUZMRVZCUVd0Q1FTeEZRVUZyUWl4UFFVRlRMRU5CUVVNc1EwRkJReXhGUVVNelJXcEVMRVZCUVZOdFF5eEZRVUZWU1N4RlFVRlpMRmRCUVZsaExFTkJRVkVzUlVGRGRrUXNSMEZCU1hCRUxFZEJRVlZCTEVWQlFVOHNUVUZEYWtJc1QwRkJUMEVzUlVGQlR5eExRVU4wUWl4VlFVVkxhME1zUjBGRFJGVXNSMEZCV1VZc1NVRkJiMElzUlVGQlJ5eERRVU51UXl4SlFVRkpVU3hGUVVGVlRpeEZRVUZUTEU5QlFVOUZMRVZCUVdsQ1FTeEZRVUZwUWl4UFFVRlRMRU5CUVVNc1EwRkJReXhGUVVOMlJUbERMRVZCUVZOclF5eEZRVUZUU1N4RlFVRlhMRmRCUVZsWkxFTkJRVThzUlVGRGNFUXNSMEZCU1d4RUxFZEJRVlZCTEVWQlFVOHNUVUZEYWtJc1QwRkJUMEVzUlVGQlR5eExRVU4wUWl4WFFVbElMRU5CUVVNMFF5eEhRVUZaTEVOQlFVTkhMRWRCUVdGS0xFbEJRV2RDTEVWQlFVY3NRMEZEYmtRc1NVRkJTVlVzUlVGQlYxSXNSVUZCYTBJc1QwRkJVeXhGUVVOMFExTXNSVUZCV1U0c1JVRkJiVUlzVDBGQlV5eEZRVU40UTA4c1JVRkJWMVlzUlVGQmEwSlJMRU5CUVZFc1JVRkJSVkFzUlVGQmFVSlBMRU5CUVZFc1EwRkJReXhGUVVOcVJVY3NSVUZCV1ZJc1JVRkJiVUpOTEVOQlFWTXNSVUZCUlV3c1JVRkJhMEpMTEVOQlFWTXNRMEZCUXl4RlFVTXhSU3hIUVVGSlJTeEpRVUZqUkN4RlFVRlZMRU5CUTNoQ1lpeEZRVUZyUWl4RlFVTnNRa1lzUlVGQlkzcEVMRVZCUVUwc1MwRkJTM1ZFTEVWQlFWa3NSVUZCU1N4RlFVTjZRMGNzUlVGQlpURkVMRVZCUVUwc1MwRkJTM2RFTEVWQlFXRXNSVUZCU1N4RlFVTXpReXhSUVVOS0xFTkJRMG9zUTBGRFFVY3NSVUZCYTBKRExFVkJRMlJCTEVWQlFXTXNSVUZEWkVnc1JVRkJZM3BFTEVWQlFVMHNTMEZCUzNWRUxFTkJRVlVzUlVGSGJrTkhMRVZCUVdVeFJDeEZRVUZOTEV0QlFVdDNSQ3hEUVVGWExFTkJSVGRETEVOQlEwRXNSMEZCU1VNc1IwRkJaVTRzUlVGRFppeFBRVUZQYmtRc1JVRkJUU3hwUWtGQmFVSjFSQ3hGUVVGWlF5eEZRVUZoUml4RlFVRlZTQ3hEUVVGUkxFVkJRemRGTEVkQlFVbFBMRWRCUVdkQ1RpeEZRVU5vUWl4UFFVRlBjRVFzUlVGQlRTeHBRa0ZCYVVKM1JDeEZRVUZoUkN4RlFVRlpSQ3hGUVVGVlJpeERRVUZUTEVOQlEyeEdMRVZCUjBGd1JDeEZRVUZOTEdsQ1FVRnRRaXhUUVVGVk1FVXNSVUZCVVVNc1JVRkJaMEpETEVWQlFXRjJSU3hGUVVGVkxFTkJRemxGTEVsQlFVbDNSU3hGUVVGWE4wVXNSVUZCVFN4UlFVRlJNRVVzUlVGQlVVTXNSVUZCWjBKRExFTkJRVmNzUlVGRGFFVXNSMEZCU1VNc1NVRkJZU3hIUVVOaUxFZEJRVWtzUTBGQlF6ZEZMRVZCUVUwc1MwRkJTekJGTEVOQlFVMHNSVUZEYkVJc1dVRkZRMGNzUlVGQlZ5eEhRVU5vUWpsQ0xFZEJRVTBzUjBGQlR5dzRRa0ZCT0VJc1JVRkZMME1zVDBGQlR5OURMRVZCUVUwc1ZVRkJWVEJGTEVWQlFWRnlSU3hEUVVGUkxFTkJRek5ETEVWQlEwRk1MRVZCUVUwc1ZVRkJXU3hUUVVGVk1FVXNSVUZCVVhKRkxFVkJRVlVzUTBGRk1VTXNVVUZFU1hsRkxFVkJRVlVzUjBGRFVFRXNSMEZCVXl4RFFVTmFMRWxCUVVsMFF5eEZRVUZQYTBNc1JVRkJUeXhMUVVGTlN5eEZRVUZsVEN4RlFVRlBMR0ZCUVdOTkxFVkJRV0ZPTEVWQlFVOHNWMEZEYUVZc1IwRkJTV3hETEVWQlFVMHNRMEZEVGl4SlFVRkpla0lzUlVGQlVYbENMRVZCUVVzc1QwRkJUM1ZETEVWQlFXRkJMRVZCUVdFc1QwRkJVeXhEUVVGRExFTkJRVU1zUlVGRGVrUTVSQ3hGUVVGVFdpeEZRVUZUTWtVc1JVRkJXV3BGTEVOQlFVc3NSVUZEZGtNc1IwRkJTVVVzUjBGQlZVRXNSVUZCVHl4TlFVTnFRaXhQUVVGUFFTeEZRVUZQTEV0QlEzUkNMRU5CUTBFMlJDeEZRVUZWT1VVc1JVRkJUU3hMUVVGTE1FVXNRMEZCVFN4RFFVTXZRaXhEUVVWS0xFVkJRMEV4UlN4RlFVRk5MR1ZCUVdsQ0xGTkJRVlZwUml4RlFVRk5MRU5CUTI1RExFbEJRVWxETEVWQlFWRkVMRVZCUVVzc1RVRkJUMFVzUlVGQlUwWXNSVUZCU3l4UFFVTjBReXhOUVVGUExFTkJRVVVzVDBGQlVVVXNSVUZCVVN4alFVRmxMRU5CUVVNc1EwRkJRMFFzUTBGQlN5eERRVUZETEVWQlFVY3NZVUZCWXl4RFFVRkRMRU5CUVVNc1JVRkJSeXhMUVVGTkxFOUJRVmNzVjBGQldVRXNSVUZCVFN4UFFVRlBMRU5CUVVVc1EwRkRkRWdzUlVGUlFXeEdMRVZCUVUwc1MwRkJUeXhUUVVGVk1FVXNSVUZCVVZVc1JVRkJXU3hEUVVOMlF5eEpRVUZKUXl4RlFVRm5RbGdzUlVGQlR5eGpRVUZsU3l4RlFVRmxUQ3hGUVVGUExHRkJRV05zUXl4RlFVRlBhME1zUlVGQlR5eExRVU0xUml4SFFVRkpWU3hKUVVGbExFbEJRVkUxUXl4RlFVRk5MRU5CUXpkQ0xFbEJRVWs0UXl4RlFVRmxVQ3hGUVVGaExFOUJTV2hETEVkQlFVbExMRWxCUVdVc1NVRkJVVXdzUlVGQllVOHNSVUZCWlN4RFFVRkRMRWxCUVUwc1JVRkJSeXhEUVVNM1JDeEpRVUZKUXl4RlFVRmpSaXhGUVVGakxFOUJSV2hETEVkQlFVbEZMRWxCUVdkQ0xFVkJRMmhDTEUxQlFVOHNSMEZKV0N4UlFVWkpReXhGUVVGcFFrUXNSVUZCWXl4RlFVTXZRa1VzUlVGQmNVSkVMRVZCUTJ4Q1F5eEhRVUZ6UWl4SFFVRkhMRU5CUXpWQ0xFZEJRVWxXTEVWQlFXRlZMRU5CUVd0Q0xFVkJRVWtzUlVGRGJrTXNUMEZCU1VFc1JVRkJjVUpJTEVWQlFXVXNTVUZGY0VOYUxFVkJRVThzUzBGQlR5eFBRVU5rU3l4RlFVRmhMRWxCUVVrc1IwRkhha0pWTEVWQlFYRkNSQ3hKUVVOeVFtUXNSVUZCVHl4alFVRm5RbGNzUlVGQll5eE5RVUZOTEVWQlFVZEpMRVZCUVhGQ0xFTkJRVU1zUjBGRmVFVm1MRVZCUVU4c1YwRkJZVmNzUlVGQlkwa3NRMEZCYTBJc1JVRkJSU3hGUVVGRlZpeEZRVUZoVlN4RFFVRnJRaXhEUVVGRExFVkJRVVVzVDBGQlR5eEZRVU14Uml4SFFVVllRU3hIUVVOS0xFTkJSVUVzVFVGQlR5eEZRVU5ZTEV0QlEwc3NRMEZGUkN4SlFVRkpReXhGUVVGaExFVkJRVVZZTEVWQlFXRlBMRVZCUVdVc1EwRkJReXhGUVVOb1JDeFBRVUZCV2l4RlFVRlBMRmRCUVdGc1F5eEZRVUZMTEV0QlFVdHJSQ3hEUVVGVkxFVkJRMnBETEVWQlExZ3NRMEZEU2l4TFFVTkxMRU5CUTBRc1NVRkJTVU1zUlVGQldVNHNSVUZCWXl4UFFVTXhRazhzUlVGQlpVUXNSVUZCV1N4RlFVTXpRa1VzUlVGQlQxSXNSVUZCWTA4c1EwRkJXU3hGUVVGRllpeEZRVUZoWVN4RFFVRlpMRU5CUVVNc1JVRkRha1VzUjBGQlNVTXNSVUZCU3l4UFFVRlJMRU5CUldKdVFpeEZRVUZQTEV0QlFVOXRRaXhGUVVOa0xFbEJRVWxJTEVWQlFXRllMRVZCUVdGWkxFTkJRVk1zUlVGQlNVVXNSVUZCU3l4UFFVRlBMRTlCUVZNc1JVRkRhRVZ1UWl4RlFVRlBMRmRCUVdGdFFpeEZRVUZMTEV0QlFVdElMRU5CUVZVc1EwRkROVU1zUzBGRFN5eERRVU5FTEVsQlFVbEpMRVZCUVZkRUxFVkJRVXNzVTBGRGNFSlNMRVZCUVdOTkxFTkJRVk1zUlVGQlNVY3NSVUZETTBJc1NVRkJTVU1zUlVGQllVUXNSVUZCVXl4UFFVRlRMRVZCUTI1RFppeEZRVUZoV1N4RFFVRlRMRVZCUVVsSkxFVkJRekZDY2tJc1JVRkJUeXhYUVVGaGIwSXNSVUZCVTBNc1EwRkJWU3hGUVVGRkxFOUJRVThzUTBGRGNFUXNRMEZEUVN4TlFVRlBMRVZCUTFnc1EwRkRTaXhGUVV0QkwwWXNSVUZCVFN4UlFVRlZMRk5CUVZWblJ5eEZRVUZUUXl4RlFVRlRja0lzUlVGQllTeERRVU55UkN4SlFVRkpjMElzUlVGQlZVWXNSVUZCVVN4UFFVRlJSeXhGUVVGalNDeEZRVUZSTEZkQlFWbEpMRVZCUVdkQ1NpeEZRVUZSTEdGQlEzQkdTeXhGUVVGVlNpeEZRVUZSTEU5QlFWRkxMRVZCUVdOTUxFVkJRVkVzVjBGQldVMHNSVUZCWjBKT0xFVkJRVkVzWVVGRmNFWlBMRVZCUVdkQ05VSXNSVUZCV1RCQ0xFVkJRV0ZJTEVOQlFWY3NSVUZEZUVRc1IwRkJTVXNzU1VGQmEwSXNSVUZEYkVJc1QwRkJUMEVzUlVGUFdDeEpRVUZKUXl4RlFVRlpVQ3hGUVVGVlJ5eEZRVUZWU0N4RlFVRlZSeXhGUVVNeFEwc3NSVUZCYlVKT0xFVkJRV01zVVVGQlZVWXNSVUZCVlU4c1IwRkRja1JGTEVWQlFXMUNTaXhGUVVGakxGRkJRVlZHTEVWQlFWVkpMRWRCUTNwRUxFOUJRVTlETEVWQlFXMUNReXhEUVVNNVFpeEZRVXRCTTBjc1JVRkJUU3hWUVVGVkxFdEJRVThzVTBGQlZUUkhMRVZCUVZVc1EwRkRka01zU1VGQlNUZEZMRVZCUVVzc1MwRkJTeXhSUVVGUk5rVXNSVUZCVlRWRkxFVkJRVmNzUlVGRE0wTXNUMEZCVDBzc1IwRkJVeXhWUVVGWkxFTkJRM2hDTEVsQlFVbDNSU3hGUVVGSk9VVXNSVUZCUnl4TFFVRkxMRVZCUTJoQ0xFOUJRVWs0UlN4RlFVRkZMRkZCUTBaQkxFVkJRVVVzVFVGQlVVRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkRhRUpCTEVOQlExZ3NRMEZCUXl4RFFVTk1MRVZCUjBFM1J5eEZRVUZOTEZWQlFWVXNUMEZCVXl4VFFVRlZORWNzUlVGQlZTeERRVU42UXl4SlFVRkpOMFVzUlVGQlN5eExRVUZMTEZGQlFWRTJSU3hGUVVGVk5VVXNSVUZCVnl4RlFVTXpReXhQUVVGUFN5eEhRVUZUTEZWQlFWa3NRMEZEZUVJc1NVRkJTWGRGTEVWQlFVazVSU3hGUVVGSExFdEJRVXNzUlVGRGFFSXNUMEZCU1RoRkxFVkJRVVVzVVVGRFJrRXNSVUZCUlN4TlFVRlJRU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVU5vUWtFc1EwRkRXQ3hEUVVGRExFTkJRMHdzUlVGRFFTeFBRVUZQTEdWQlFXVTNSeXhGUVVGTkxGVkJRVmNzWTBGQlpTeERRVWxzUkN4SlFVRkxMRlZCUVZrc1EwRkRZaXhQUVVGUExFdEJRVXNzV1VGRGFFSXNSVUZEUVN4WFFVRlpMRWRCUTFvc1lVRkJZeXhGUVVOc1FpeERRVUZETEVWQlJVUkJMRVZCUVUwc1ZVRkJWU3hQUVVGVExGVkJRVmtzUTBGQlJTeFBRVUZQTEV0QlFVc3NUVUZCVFN4UFFVRlBMRU5CUVVjc1JVRkZia1ZCTEVWQlFVMHNWVUZCVlN4UFFVRlRMRlZCUVZrc1EwRkJSU3hQUVVGUExFdEJRVXNzVFVGQlRTeFBRVUZQTEVOQlFVY3NSVUZOYmtWQkxFVkJRVTBzVlVGQlZTeE5RVUZSTEZWQlFWa3NRMEZEYUVNc1MwRkJTeXhOUVVGTkxGTkJRVmNzUjBGRGRFSXNTVUZCU1dsQ0xFVkJRVk1zU1VGQlNXcENMRVZCUVUwc1QwRkJWeXhMUVVGTExGTkJRVlVzUzBGQlN5eFpRVUZaTEVWQlEyeEZMRTlCUVVGcFFpeEZRVUZQTEUxQlFWRXNTMEZCU3l4TlFVTndRa0VzUlVGQlR5eE5RVUZSTEV0QlFVc3NUVUZEWWtFc1EwRkRXQ3hGUVUxQmFrSXNSVUZCVFN4VlFVRlZMRmxCUVdNc1UwRkJWVGhITEVWQlFVOHNRMEZETTBNc1NVRkJTVGRHTEVWQlFWTXNTVUZCU1dwQ0xFVkJRVTBzVDBGQlZ5eExRVUZMTEZOQlFWVXNTMEZCU3l4WlFVRlpMRVZCUTJ4RkxFOUJRVUZwUWl4RlFVRlBMRTFCUVZFc1MwRkJTeXhOUVVGTkxGbEJRVmsyUml4RFFVRkxMRVZCUXpORE4wWXNSVUZCVHl4TlFVRlJMRXRCUVVzc1RVRkRZa0VzUTBGRFdDeEZRVVZCYWtJc1JVRkJUU3hWUVVGVkxGRkJRVlVzVTBGQlZTdEhMRVZCUVZjc1EwRkRka05CTEVsQlFXTXNVMEZCVlVFc1JVRkJXU3haUVVONFF5eEpRVUZKUXl4RlFVRk5MRXRCUVVzc1QwRkJUeXhGUVVGSFF5eEZRVUZOTEV0QlFVc3NUMEZCVHl4RlFVTXpReXhQUVVGSlJDeEpRVUZSTEU5QlEwUXNTMEZCU3l4VFFVRlRRU3hGUVVGTFF5eEZRVUZMTEVkQlFVMUdMRU5CUVZNc1JVRkRNME1zUTBGQlF5eERRVU5hTEVWQlJVRXZSeXhGUVVGTkxGVkJRVlVzVlVGQldTeFZRVUZaTEVOQlEzQkRMRWxCUVVsclNDeEZRVUZWTEVOQlFVTXNSVUZEWml4WlFVRkxMRTFCUVUwc1UwRkJVeXhMUVVGTExFOUJRVThzUlVGQlJ5eExRVUZMTEU5QlFVOHNSVUZCUnl4SFFVRk5MRWRCUVU4c1MwRkJUU3hGUVVGSExGTkJRVlV4Unl4RlFVRkhReXhGUVVGSExFTkJRVVY1Unl4RlFVRlJMRXRCUVVzeFJ5eERRVUZETEVOQlFVY3NRMEZCUXl4RlFVTnlSekJITEVOQlExZ3NSVUZGUVd4SUxFVkJRVTBzVlVGQlZTeFpRVUZqTEZWQlFWa3NRMEZEZEVNc1NVRkJTV3RJTEVWQlFWVXNRMEZCUXl4RlFVTm1MRmxCUVVzc1RVRkJUU3hUUVVGVExFdEJRVXNzVDBGQlR5eEZRVUZITEV0QlFVc3NUMEZCVHl4RlFVRkhMRWRCUVUwc1IwRkJUeXhMUVVGTkxFVkJRVWNzVTBGQlZURkhMRVZCUVVkRExFVkJRVWNzUTBGQlJYbEhMRVZCUVZFc1MwRkJTM3BITEVOQlFVTXNRMEZCUnl4RFFVRkRMRVZCUTNKSGVVY3NRMEZEV0N4RlFVVkJiRWdzUlVGQlRTeFZRVUZWTEZOQlFWY3NWVUZCV1N4RFFVTnVReXhQUVVGUExFdEJRVXNzVVVGQlVTeEZRVUZGTEZOQlFWTXNRMEZEYmtNc1JVRkpRVUVzUlVGQlRTeFZRVUZWTEdkQ1FVRnJRaXhUUVVGVllTeEZRVUZMUlN4RlFVRlBMRU5CUTNCRUxFOUJRVThzUzBGQlN5eEpRVUZKUml4RlFVRkxSU3hGUVVGUExFVkJRVXNzUTBGRGNrTXNSVUZQUVdZc1JVRkJUU3hWUVVGVkxHVkJRV2xDTEZOQlFWVmhMRVZCUVV0elFpeEZRVUZoTEVOQlJYcEVMRTlCUkVGQkxFVkJRV05CTEVkQlFXVXNRMEZCUXl4RlFVTXhRblJDTEVsQlFWRXNUMEZEUkN4TFFVRkxMRTFCUVUwc1VVRkJVWE5DTEVOQlFWY3NSVUZGYkVNc1MwRkJTeXhOUVVGTkxHOUNRVUZ2UW5SQ0xFVkJRVXNzUzBGQlN5eFRRVUZWTEVkQlFVOXpRaXhEUVVGWExFTkJRMmhHTEVWQlNVRnVReXhGUVVGTkxGVkJRVlVzWTBGQlowSXNVMEZCVldFc1JVRkJTeXhEUVVNelF5eEpRVUZKY0VJc1JVRkJTU3hMUVVGTExHVkJRV1Z2UWl4RlFVRkxiVUlzUlVGQlZ5eEZRVU0xUXl4UFFVRlBka01zUjBGQlMwRXNSVUZCUlN4RFFVRkRMRU5CUTI1Q0xFVkJUMEZQTEVWQlFVMHNWVUZCVlN4alFVRm5RaXhUUVVGVllTeEZRVUZMYzBJc1JVRkJZU3hEUVVWNFJDeFBRVVJCUVN4RlFVRmpRU3hIUVVGbExFTkJRVU1zUlVGRE1VSjBRaXhKUVVGUkxFOUJRMFFzUzBGQlN5eE5RVUZOTEZGQlFWRnpRaXhEUVVGWExFVkJSV3hETEV0QlFVc3NUVUZCVFN4dFFrRkJiVUowUWl4RlFVRkxMRXRCUVVzc1UwRkJWU3hIUVVGUGMwSXNRMEZCVnl4RFFVTXZSU3hGUVVsQmJrTXNSVUZCVFN4VlFVRlZMR0ZCUVdVc1UwRkJWV0VzUlVGQlN5eERRVU14UXl4SlFVRkpjRUlzUlVGQlNTeExRVUZMTEdOQlFXTnZRaXhGUVVGTGJVSXNSVUZCVnl4RlFVTXpReXhQUVVGUGRrTXNSMEZCUzBFc1JVRkJSU3hEUVVGRExFTkJRMjVDTEVWQlVVRlBMRVZCUVUwc1ZVRkJWU3h0UWtGQmNVSXNVMEZCVldFc1JVRkJTM05DTEVWQlFXRXNRMEZETjBRc1QwRkJUeXhMUVVGTExFMUJRVTBzYlVKQlFXMUNkRUlzUlVGQlN5eExRVUZMTEZOQlFWVXNSMEZCVFhOQ0xFZEJRV1VzUTBGQlF5eERRVUZETEVOQlEzQkdMRVZCVVVGdVF5eEZRVUZOTEZWQlFWVXNiMEpCUVhOQ0xGTkJRVlZoTEVWQlFVdHpRaXhGUVVGaExFTkJRemxFTEU5QlFVOHNTMEZCU3l4TlFVRk5MRzlDUVVGdlFuUkNMRVZCUVVzc1MwRkJTeXhUUVVGVkxFZEJRVTF6UWl4SFFVRmxMRU5CUVVNc1EwRkJReXhEUVVOeVJpeEZRVWxCYmtNc1JVRkJUU3hWUVVGVkxHZENRVUZyUWl4VFFVRlZZU3hGUVVGTFJTeEZRVUZQTEVOQlEzQkVMRTlCUVU4c1MwRkJTeXhWUVVGVlJpeEZRVUZMUVN4RlFVRkxMRWRCUVUwc1UwRkJWVXdzUlVGQlIwTXNSVUZCUnl4RFFVRkZMRTFCUVZFc1EwRkJSU3hOUVVGUFRTeERRVUZOTEVOQlFVa3NRMEZCUXl4SlFVRk5MRU5CUXpsR0xFVkJZVUZtTEVWQlFVMHNWVUZCVlN4VFFVRlhMRk5CUVZWWExFVkJRVXRETEVWQlFVMWhMRVZCUVdGelJpeEZRVUZYTEVOQlEyaEZRU3hKUVVGakxGTkJRVlZCTEVWQlFWa3NWVUZEZUVNc1NVRkJTVWNzUlVGQlZTeERRVUZETEVWQlEyWXNXVUZCU3l4TlFVRk5MRk5CUVZOMlJ5eEZRVUZMUXl4RlFVRk5ZU3hGUVVGaExFZEJRVThzUzBGQlRTeEZRVUZITEZOQlFWVnFRaXhGUVVGSFF5eEZRVUZITEVOQlEzaEZMRTlCUVVGNVJ5eEZRVUZSTEV0QlFVc3NRMEZCUXpGSExFVkJRVWRETEVOQlFVTXNRMEZCUXl4RlFVTmFlVWNzUlVGQlVTeFBRVUZUU0N4RlFVRlpTU3hIUVVGUkxFMUJRMmhFTEVOQlFVTXNSVUZEVFVRc1EwRkRXQ3hGUVZWQmJFZ3NSVUZCVFN4VlFVRlZMRk5CUVZjc1UwRkJWWEZDTEVWQlFVOU1MRVZCUVZjc1EwRkZia1FzVVVGRVNXOUhMRVZCUVZFc1JVRkRTSHBHTEVWQlFVa3NSVUZCUjBFc1JVRkJTVTRzUlVGQlRTeFBRVUZSVFN4SlFVTXhRaXhMUVVGTExFbEJRVWxPTEVWQlFVMU5MRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVWRPTEVWQlFVMU5MRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVWRZTEVOQlFWTXNSMEZETlVOdlJ5eEpRVU5TTEU5QlFVOUJMRU5CUTFnc1JVRnJRa0Z3U0N4RlFVRk5MRlZCUVZVc1UwRkJWeXhUUVVGVlZ5eEZRVUZMUXl4RlFVRk5ZU3hGUVVGaE5FWXNSVUZCVXpOSExFVkJRV2RDTEVOQlEyeEdMRWxCUVVrMFJ5eEZRVUZKTEV0QlFVc3NUVUZCVFN4VFFVRlRNMGNzUlVGQlMwTXNSVUZCVFdFc1JVRkJZU3hIUVVGUExFdEJRVTFtTEVkQlFXdENMRVZCUVVjeVJ5eERRVUZQTEVWQlF6ZEdMRTlCUVU4c1QwRkJUME1zUjBGQlRTeFRRVUZYUVN4RlFVRkpRU3hGUVVGRkxFdEJRM3BETEVWQk9FSkJkRWdzUlVGQlRTeFZRVUZWTEZWQlFWa3NVMEZCVlZjc1JVRkJTME1zUlVGQlRXRXNSVUZCWVRSR0xFVkJRVk16Unl4RlFVRm5RaXhEUVVOdVJpeEpRVUZKTmtjc1JVRkJUeXhMUVVGTExFMUJRMXBCTEVWQlFVc3NWMEZEVEN4TFFVRkxMRTFCUVZGQkxFVkJRVTlCTEVWQlFVc3NUVUZCVFN4SFFVTnVReXhIUVVGSkxFTkJRMEVzU1VGQlNVUXNSVUZCU1VNc1JVRkJTeXhUUVVGVE5VY3NSVUZCUzBNc1JVRkJUV0VzUlVGQllTeEhRVUZOTEV0QlFVMW1MRWRCUVd0Q0xFVkJRVWN5Unl4RFFVRlBMRVZCUTNSR0xFOUJRVThzVDBGQlQwTXNSMEZCVFN4VFFVRlhRU3hGUVVGSlFTeEZRVUZGTEV0QlEzcERMRkZCUTBFc1EwRkZTU3hSUVVSSlJTeEZRVUZYTEU5QlExSkVMRVZCUVVzc1MwRkJTeXhSUVVGVkxFZEJRVXNzUTBGQlEwRXNSVUZCU3l4UlFVTnNRME1zU1VGQllVRXNSVUZCVjBRc1JVRkJTeXhWUVVNM1FpeExRVUZMTEUxQlFWRkJMRVZCUVU5QkxFVkJRVXNzUzBGQlN5eFRRVUZYTEVWQlFVbHVTQ3hIUVVONlEyMUlMRVZCUVVzc1UwRkJVeXhEUVVGRExFVkJSMjVDUXl4SlFVTkJSQ3hGUVVGTExGTkJRVmNzUjBGRmVFSXNRMEZEU2l4RlFVVkJka2dzUlVGQlRTeFZRVUZWTEZGQlFWVXNVMEZCVlhGSUxFVkJRVk16Unl4RlFVRm5RaXhEUVVONlJDeFBRVUZQTEV0QlFVc3NWVUZCVlN4TFFVRkxMRTlCUVU4c1JVRkJSeXhMUVVGTExFOUJRVThzUlVGQlJ5eEhRVUZOTWtjc1JVRkJVek5ITEVOQlFXTXNRMEZEY2tZc1JVRlRRVllzUlVGQlRTeFZRVUZWTEZsQlFXTXNVMEZCVlZjc1JVRkJTME1zUlVGQlRXRXNSVUZCWVN4RFFVTTFSQ3hQUVVGUExFdEJRVXNzVlVGQlZXUXNSVUZCUzBNc1JVRkJUV0VzUlVGQllVNHNSVUZCVnl4RFFVTTNSQ3hGUVVWQmJrSXNSVUZCVFN4VlFVRlZMRmRCUVdFc1UwRkJWWE5DTEVWQlFVMHNRMEZEZWtNc1VVRkJVMHNzUlVGQlNTeEZRVUZITEVWQlFVa3NSVUZCUjBFc1JVRkJTVXdzUlVGQlN5eFBRVUZSU3l4SlFVTm9ReXhMUVVGTExFOUJRVTlNTEVWQlFVdExMRU5CUVVNc1EwRkJReXhIUVVOdVFpeEpRVU5TTEU5QlFVOHNRMEZEV0N4RlFVTkJMRTlCUVU4c1pVRkJaVE5DTEVWQlFVMHNWVUZCVnl4VFFVRlZMRU5CUnpkRExFbEJRVXNzVlVGQldTeERRVWRpTEZGQlJrazJSaXhGUVVGUExFdEJRVXNzVFVGRFdsWXNSVUZCVXl4SFFVTk9WU3hIUVVOSVZpeEpRVU5CVlN4RlFVRlBRU3hGUVVGTExFOUJRVk1zVDBGQldVRXNSVUZCU3l4VFFVRlRMRU5CUVVNc1JVRkZjRVFzVDBGQlQxWXNRMEZEV0N4RlFVTkJMRmRCUVZrc1IwRkRXaXhoUVVGakxFVkJRMnhDTEVOQlFVTXNSVUZQUkc1R0xFVkJRVTBzVlVGQlZTeFBRVUZUTEZWQlFWa3NRMEZEYWtNc1NVRkJTWGxJTEVWQlFVa3NTMEZIVWtFc1JVRkJSU3hOUVVGUlFTeEZRVUZGTEVsQlFVMUJMRVZCUVVVc1ZVRkJXU3hWUVVGWkxFTkJRM2hETEUxQlFVMHNTVUZCU1N4TlFVRk5MRzlEUVVGdlF5eERRVU40UkN4RFFVTktMRVZCUlVGNlNDeEZRVUZOTEZWQlFWVXNVMEZCVnl4VlFVRlpMRU5CUjI1RExFOUJRVThzUzBGQlN5eE5RVVZhTEU5QlFVOHNTMEZCU3l4SlFVVmFMRTlCUVU4c1MwRkJTeXhUUVVOb1FpeEZRVU5CTEU5QlFVOHNaVUZCWlVFc1JVRkJUU3hWUVVGWExGZEJRVmtzUTBGRkwwTXNTVUZCU3l4VlFVRlpMRU5CUTJJc1QwRkJUeXhMUVVGTExHVkJRV1VzVjBGQlZ5eERRVU14UXl4RlFVTkJMRmRCUVZrc1IwRkRXaXhoUVVGakxFVkJRMnhDTEVOQlFVTXNSVUZOUkVFc1JVRkJUU3hWUVVGVkxGZEJRV0VzVlVGQldTeERRVU55UXl4SlFVRkpNRWdzUlVGQlR5eExRVUZMTEUxQlFVMHNWMEZCVnl4RlFVRkhMRXRCUVUwc1EwRkJReXhGUVVNelF6TkZMRWRCUVUweVJTeEpRVUZUTEV0QlFVc3NTMEZCVFN3d1FrRkJNa0pCTEVWQlFVMHNZVUZCWXl4TFFVRkxMRWxCUVVrc1EwRkRkRVlzUlVGRFR6RklMRU5CUTFnc1JVRkJSU3hGUVVOR1dpeEhRVUZSTEZGQlFWVlpMRWRCVFd4Q0xGTkJRVk15U0N4SFFVRk5ReXhGUVVGUExFTkJRMnhDTEU5QlFVOUJMRU5CUTFnc1EwRkRRWGhKTEVkQlFWRXNUVUZCVVhWSkxFZEJRMW9zVVVGQlZTeFBRVUZQTEZkQlEycENNMGdzUjBGQlRTeFZRVUZWTEU5QlFVOHNVVUZCVVN4RlFVRkpRU3hIUVVGTkxGVkJRVlVzVTBGRGRrUkJMRWRCUVUwc1ZVRkJWU3hOUVVGUlFTeEhRVUZOTEZWQlFWVXNUMEZEZUVOQkxFZEJRVTBzVlVGQlZTeFRRVUZYUVN4SFFVRk5MRlZCUVZVc1UwRkRNME5CTEVkQlFVMHNWVUZCVlN4SlFVRk5RU3hIUVVGTkxGVkJRVlVzU1VGRGRFTXNVMEZCVTNGRExFZEJRVk5LTEVWQlFVMHNRMEZEYUVKQkxFbEJRVk1zVTBGQlZVRXNSVUZCVVN4VlFVRlpMRU5CUVVVc1RVRkJVU3hEUVVGRkxFdEJRVTBzUjBGQlRTeE5RVUZQTEUxQlFWVXNRMEZCU1N4SFFVTjRSaXhKUVVGSmFFSXNSVUZCVXl4RFFVRkZMRXRCUVUxblFpeERRVUZMTEVWQlF6RkNMRTlCUVVrc1VVRkJWU3hQUVVGUExGZEJRMnBDYUVJc1JVRkJUeXhQUVVGUExGRkJRVkVzUlVGQlNTeFZRVUZaTEVOQlFVVXNUMEZCVHl4SlFVRk5MRWRCUTJ4RVFTeERRVU5ZTEVOQlJVRXNTVUZCU1RSSExFZEJRWFZDTEZWQlFWa3NRMEZEYmtNc1UwRkJVMEVzUlVGQlRYWkhMRVZCUVUxM1J5eEZRVUZSTEVOQlEzSkNlRWNzU1VGQlV5eFRRVUZWUVN4RlFVRlBMRU5CUVVNc1IwRkRMMElzUzBGQlN5eExRVUZQUVN4RlFVTmFMRXRCUVVzc1QwRkJVM2RITEVkQlFWVkRMRWRCUTNoQ0xFdEJRVXNzVTBGQlZ5eE5RVU53UWl4RFFVTkJMR05CUVU4c1pVRkJaVVlzUlVGQlRTeFZRVUZYTEZOQlFWVXNRMEZETjBNc1NVRkJTeXhWUVVGWkxFTkJRVVVzVDBGQlR5eExRVUZMTEZkQlFXRXNUVUZCVnl4RlFVTjJSQ3hYUVVGWkxFZEJRMW9zWVVGQll5eEZRVU5zUWl4RFFVRkRMRVZCUjBSQkxFVkJRVTBzVlVGQlZTeFBRVUZUTEZWQlFWa3NRMEZEYWtNc1QwRkJUeXhMUVVGTExFdEJRVXNzUzBGQlN5eExRVUZMTEU5QlFWTXNRMEZCUXl4RFFVTjZReXhGUVVkQlFTeEZRVUZOTEZWQlFWVXNVVUZCVlN4VFFVRlZhRWdzUlVGQlMyMUlMRVZCUVZORExFVkJRVXNzUTBGSGJrUXNVVUZHU1ROSExFVkJRVThzUzBGQlN5eExRVU5hTkVjc1JVRkJTeXhGUVVGSFF5eEZRVUZMTjBjc1JVRkJTeXhQUVVGUk9FY3NSVUZCVFVRc1IwRkJUU3hGUVVOdVEwUXNSVUZCUzBNc1IwRkJTU3hEUVVOYUxFbEJRVWxGTEVWQlFVbEtMRVZCUVVrelJ5eEZRVUZMT0Vjc1EwRkJSeXhGUVVGSGRrZ3NRMEZCUnl4RlFVTXhRaXhIUVVGSmQwZ3NSVUZCU1N4RlFVTktTQ3hGUVVGTFJTeEZRVUZOTEZWQlEwNURMRVZCUVVrc1JVRkRWRVlzUlVGQlMwTXNUVUZEU2l4SlFVRkpReXhKUVVGTkxFVkJRMWdzVDBGQlQwUXNSVUZIVUN4SFFVRkpka2dzU1VGQlVVRXNSVUZEVWl4UFFVRlBVeXhGUVVGTExFOUJSVm9zVFVGQlRTeEpRVUZKTEUxQlFVMHNPRUpCUVRoQ0xFVkJSWFJFT0Vjc1JVRkJUMFlzUlVGQlMwTXNSMEZCVHl4RFFVTjJRaXhEUVVOQkxFOUJRVTlETEVWQlFVMUtMRU5CTmtOcVFpeEZRVWRCU0N4RlFVRk5MRlZCUVZVc1QwRkJVeXhWUVVGWkxFTkJRMnBETEU5QlFVOHNTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkRkRUlzUlVGRFFVRXNSVUZCVFN4VlFVRlZMRkZCUVZVc1UwRkJWVEZHTEVWQlFXRXNRMEZETjBNc1IwRkJTU3hMUVVGTExFdEJRVXNzVTBGQlZ5eEZRVVY2UWl4UFFVRkJRU3hGUVVGWkxFTkJRVU1zUlVGQlNTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVTTFRa0VzUlVGQldTeERRVUZETEVWQlFVa3NTMEZCU3l4UFFVRlBMRU5CUVVNc1JVRkRka0pCTEVOQlExZ3NSVUZEUVRCR0xFVkJRVTBzVlVGQlZTeFJRVUZWTEZOQlFWVXhSaXhGUVVGaExFTkJRemRETEVkQlFVa3NTMEZCU3l4TFFVRkxMRk5CUVZjc1JVRkZla0lzUzBGQlNXMUhMRVZCUVZrc1MwRkJTeXhMUVVGTExFOUJRVk1zUlVGRGJrTXNUMEZCUVc1SExFVkJRVmtzUTBGQlF5eEZRVUZKTEV0QlFVc3NTMEZCUzIxSExFTkJRVk1zUlVGRGNFTnVSeXhGUVVGWkxFTkJRVU1zUlVGQlNTeExRVUZMTEU5QlFVOXRSeXhEUVVGVExFVkJReTlDYmtjc1JVRkRXQ3hGUVVOQk1FWXNSVUZCVFN4VlFVRlZMRTFCUVZFc1ZVRkJXU3hEUVVOb1F5eEpRVUZKY0Vnc1JVRkJTU3hMUVVGTExFOUJRMklzVDBGQlR5eEpRVUZKYjBnc1JVRkJUU3hMUVVGTExFdEJRVXNzVFVGQlRTeERRVUZETEVWQlFVZHdTQ3hKUVVGTmMwZ3NSMEZCV1hSSUxFVkJRVWxCTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkRla1VzUlVGRFFXOUlMRVZCUVUwc1ZVRkJWU3haUVVGakxGTkJRVlZtTEVWQlFVOHNRMEZETTBNc1QwRkJUeXhMUVVGTExGVkJRVmtzUTBGQlEwRXNSVUZCVVN4TFFVRlBMRXRCUVVzc1RVRkJUU3hEUVVOMlJDeEZRVU5CWlN4RlFVRk5MRlZCUVZVc1NVRkJUU3hUUVVGVmFFZ3NSVUZCUzBNc1JVRkJZMjFGTEVWQlFVMHNRMEZEY2tRc1NVRkJTWFJFTEVWQlFVa3NTMEZCU3l4UlFVRlJaQ3hGUVVGTExFZEJRVWx2UlN4RlFVRkxMRkZCUVZFc1JVRkRNME1zVDBGQlQzUkVMRVZCUVVrc1JVRkJTV0lzUlVGQlpTeExRVUZMTEU5QlFVOWhMRU5CUVVNc1EwRkRMME1zUlVGRFFXdEhMRVZCUVUwc1ZVRkJWU3h0UWtGQmNVSXNVMEZCVldoSUxFVkJRVXRZTEVWQlFWTnhTU3hGUVVGWGNFY3NSVUZCWVN4RFFVTnFSaXhKUVVGSkxFVkJRVWtzUzBGQlN5eFJRVUZSZEVJc1JVRkJTeXhIUVVGSldDeERRVUZQTEVWQlEycERjMGtzUlVGQlpTeEZRVUZKTEVWQlFVa3NRMEZCUXl4RlFVRkpMRVZCUVV0RUxFVkJRVmtzUlVGQlNTeEZRVUZKTEVWQlEzcEVMRWRCUVVsRExFZEJRV2RDTEVWQlEyaENMRTlCUVVGeVJ5eEZRVUZaTEVOQlFVTXNSVUZCU1N4TFFVRkxMRXRCUVV0eFJ5eERRVUZaTEVWQlEzWkRja2NzUlVGQldTeERRVUZETEVWQlFVa3NTMEZCU3l4UFFVRlBjVWNzUTBGQldTeEZRVU5zUTNKSExFTkJSMllzUlVGRFFUQkdMRVZCUVUwc1ZVRkJWU3h2UWtGQmMwSXNVMEZCVldoSUxFVkJRVXRZTEVWQlFWTnhTU3hGUVVGWGNFY3NSVUZCWVN4RFFVTnNSaXhKUVVGSkxFVkJRVWtzUzBGQlN5eFJRVUZSZEVJc1JVRkJTeXhIUVVGSldDeERRVUZQTEVWQlEycERjMGtzUlVGQlpTeEZRVUZKTEVWQlFVa3NRMEZCUXl4RlFVRkxSQ3hGUVVGWkxFVkJRVWtzUlVGQlNTeEZRVU5xUkdwSUxFVkJRVThzUzBGQlN5eExRVU5vUWl4SFFVRkphMGdzUlVGQlpXeElMRVZCUVVzc1QwRkRjRUlzVDBGQlFXRXNSVUZCV1N4RFFVRkRMRVZCUVVsaUxFVkJRVXRyU0N4RFFVRlpMRVZCUTJ4RGNrY3NSVUZCV1N4RFFVRkRMRVZCUVVrc1MwRkJTeXhQUVVGUGNVY3NRMEZCV1N4RlFVTnNRM0pITEVOQlIyWXNSVUZEUVRCR0xFVkJRVTBzVlVGQlZTeFhRVUZoTEZOQlFWVlpMRVZCUVU5NFJDeEZRVUZOZVVRc1JVRkJWeXhEUVVNelJDeEpRVUZKUXl4RlFVRkxMRXRCUVVzc1MwRkJTeXhQUVVGUlF5eEZRVUZMTEV0QlFVc3NUMEZCVHl4UFFVTTFReXhQUVVGQk4wWXNSMEZCVFN4TFFVRkxMRk5CUVZkblJpeEhRVUZaV1N4SFFVRk5ReXhGUVVGTFJDeEpRVUZQUXl4RlFVRkpMSEZEUVVGelEwZ3NSVUZCVHl4bFFVRm5Ra1VzUlVGQlNVTXNSVUZCU1N4blFrRkJhVUpHTEVOQlFWTXNSVUZOZGtvelJpeEhRVUZOTUVZc1IwRkJVeXhIUVVGTFJTeEZRVUZMTEVWQlFVY3NjMEpCUVhWQ1JpeEZRVUZQTEdkQ1FVRnBRa01zUTBGQlV5eEZRVU0zUlVNc1EwRkRXQ3hGUVVkQlpDeEZRVUZOTEZWQlFWVXNTVUZCVFN4VFFVRlZhRWdzUlVGQlMwVXNSVUZCVDBNc1JVRkJWMmxGTEVWQlFVMHNRMEZEZWtRc1NVRkJTU3hGUVVGSkxFdEJRVXNzVVVGQlVYQkZMRVZCUVVzc1IwRkJTVzlGTEVWQlFVc3NVVUZCVVN4RlFVTXpReXhIUVVGSkxFVkJRVWtzUlVGQlJ5eERRVWxRTEVkQlJrRXNSVUZCU1N4RFFVRkRMRVZCUTB4QkxFVkJRVXNzVVVGRFJDeExRVUZMTEV0QlFVc3NUMEZCVTBFc1JVRkJTeXhoUVVONFFpeFBRVUZQTEV0QlFVc3NZVUZCWVN4RlFVRkhjRVVzUlVGQlMwVXNSVUZCVDJ0RkxFTkJRVWtzUlVGSk5VTXNTVUZCU1RSRUxFVkJRV3RDTEV0QlFVc3NhMEpCUVd0Q0xFVkJRVWRETEVWQlFWTXNTMEZEZWtRc1QwRkJTU3hGUVVGSkxFdEJRVXNzUzBGQlN5eFRRVU5rTEVkQlFVc3NTMEZCU3l4TFFVRkxMRTlCUTJaQkxFVkJRVk5FTEVkQlJXSkRMRVZCUVU4c1lVRkJZU3hGUVVGSGFra3NSVUZCUzBVc1JVRkJUMnRGTEVOQlFVa3NSVUZEYUVNMFJDeERRVVZtTEV0QlIwa3NVVUZCU1RkSUxFbEJRV01zUzBGRFZrUXNTVUZCVlN4UlFVTldMRXRCUVVzc1dVRkJXU3hGUVVWeVFpeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkpSaXhGUVVObUxFdEJRVXNzVDBGQlR5eERRVUZETEVWQlFVbEZMRWRCUldRc1JVRkZaaXhGUVVOQk9FY3NSVUZCVFN4VlFVRlZMRmxCUVdNc1ZVRkJXU3hEUVVOMFF5eFBRVUZKTEV0QlFVc3NVMEZCVjBVc1IwRkRWQ3hMUVVGTExFOUJRVk1zUzBGQlN5eFBRVUZQTEUxQlFVMHNSVUZCUnl4TFFVRkxMRXRCUVVzc1RVRkJUU3hGUVVOMlJDeExRVUZMTEUxQlEyaENMRVZCUTBGR0xFVkJRVTBzVlVGQlZTeGhRVUZsTEZOQlFWVnNSeXhGUVVGSFpDeEZRVUZMUlN4RlFVRlBhMFVzUlVGQlRTeERRVVV4UkN4SFFVUkJMRXRCUVVzc1MwRkJTeXhQUVVGUGRFUXNSVUZCUnl4RlFVRkhaQ3hEUVVGSExFVkJRM1JDTEV0QlFVc3NVMEZCVjJ0SUxFZEJRVmNzUTBGRE0wSXNTMEZCVDBFc1IwRkJWU3hQUVVGVE9VTXNSVUZCU3l4alFVTXpRamhETEVkQlFWVXNTMEZCU3l4TlFVRlRMRVZCUXpWQ0xFZEJRVWxvU0N4SlFVRlZMRTlCUTFZc1RVRkJUeXhIUVVkUUxFdEJRVXNzVDBGQlUyZElMRWRCUVZVc1RVRkJUU3hGUVVGSExFdEJRVXNzUzBGQlN5eFBRVUZUTEVOQlFVTXNRMEZGTjBRc1EwRkRRU3haUVVGTExFOUJRVThzVDBGQlQzQkhMRVZCUVVjc1JVRkJSMW9zUTBGQlN5eEZRVU4yUWl4RlFVTllMRVZCUTBFNFJ5eEZRVUZOTEZWQlFWVXNZMEZCWjBJc1UwRkJWV3RDTEVWQlFVc3NRMEZKTTBNc1NVRkJTWFJKTEVWQlFVa3NTMEZCU3l4UFFVTlVjMGtzUlVGQlNTeFRRVUZYYUVJc1IwRkRXSFJJTEVsQlFVMXpTQ3hKUVVOT2RFZ3NSVUZCUlN4TFFVRkxMRTFCUVZNc1IwRkhjRUpCTEVWQlFVa3NTMEZCU3l4WlFVRlpMRVZCUTNKQ1FTeEZRVUZGTEV0QlFVdHpTU3hGUVVGSkxFOUJRVThzVFVGQlRTeERRVUZETEVkQlJUZENMRXRCUVVzc1MwRkJTeXhMUVVGTFFTeEZRVUZKTEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUTI1RExFVkJRMEZzUWl4RlFVRk5MRlZCUVZVc1lVRkJaU3hUUVVGVmJVSXNSVUZCU3l4RFFVa3hReXhKUVVGSmRra3NSVUZCU1N4TFFVRkxMRTlCUTFSMVNTeEZRVUZKTEZOQlFWZHFRaXhIUVVOWWRFZ3NTVUZCVFhOSUxFbEJRMDUwU0N4RlFVRkZMRkZCUVZFc1RVRkJVeXhIUVVkMlFrRXNSVUZCU1N4TFFVRkxMRmxCUVZrc1JVRkRja0pCTEVWQlFVVXNVVUZCVVhWSkxFVkJRVWtzVDBGQlR5eEpRVUZKTEVOQlFVTXNSMEZGT1VJc1MwRkJTeXhMUVVGTExGRkJRVkZCTEVWQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkRjRU1zUlVGRFFXNUNMRVZCUVUwc1ZVRkJWU3hyUWtGQmIwSXNWVUZCV1N4RFFVVTFReXhKUVVGSmIwSXNSVUZCVHl4TFFVRkxMRXRCUVVzc1VVRkJWU3hGUVVGSE0wZ3NSVUZCVHl4TFFVRkxMRXRCUVVzc1QwRkJUekpJTEVOQlFVa3NSVUZETVVSdVFpeEZRVUZUTEV0QlFVc3NVMEZCVjBNc1IwRkJXVUVzUjBGQldTeExRVUZMTEU5QlFVOHNUMEZCVDJ0Q0xFTkJRVWtzUlVGRE5VVXNUMEZCVHl4SlFVRkpjRUlzUlVGQlRYWkhMRVZCUVUxM1J5eERRVUZOTEVOQlEycERMRVZCUjBGRUxFVkJRVTBzVlVGQlZTeFRRVUZYTEZOQlFWVnNTQ3hGUVVGTFF5eEZRVUZOWVN4RlFVRmhlVWdzUlVGQlZXcEZMRVZCUVUxclJTeEZRVUZQT1VJc1JVRkJVeXhEUVVONlJpeEpRVUZKV1N4RlFVRk5hRVFzUlVGQlN5eFRRVU5ZYlVVc1JVRkJUVU1zUlVGRFZpeEhRVUZKZWtrc1NVRkJVMFFzUjBGSlZDeEhRVWhKTEVOQlFVTmpMRWxCUlV3MFNDeEhRVUZUUkN4RlFVRlBMRXRCUVVzc1VVRkJVWHBKTEVWQlFVc3NSMEZCU1hOSUxFTkJRVWNzUjBGQlN5eEZRVU14UTIxQ0xFVkJRVThzUjBGRFVDeFBRVUZQUkN4UFFVZFlReXhGUVVGUExFdEJRVXNzVVVGQlVYcEpMRVZCUVVzc1JVRkJSM05JTEVOQlFVY3NSVUZETDBKdlFpeEZRVUZSTEV0QlFVc3NVVUZCVVhwSkxFVkJRVTBzUjBGQlNYRklMRU5CUVVjc1JVRkRPVUp2UWl4RlFVRlJMRVZCUTFKQkxFVkJRVkVzUTBGQlEwRXNSVUZEU2pWSUxFbEJRV2RDTEVsQlEzSkNORWdzU1VGRlVpeEpRVUZKTDBnc1JVRkJUeXhMUVVGTExFdEJRVTEzUnl4RlFVRlRMRXRCUVVzc1QwRkRjRU1zUjBGQlNWUXNTVUZCV1N4UFFVTmFMRkZCUVZNeFJpeEZRVUZKZVVnc1JVRkJUWHBJTEVWQlFVa3dTQ3hGUVVGUE1VZ3NTVUZCU3l4RFFVTXZRaXhKUVVGSlpDeEZRVUZOVXl4RlFVRkxTeXhEUVVGRExFVkJRMXBXTEVWQlFWTnZSeXhGUVVGUmVFY3NSVUZCUzJsSUxFVkJRVTl1Unl4RFFVRkRMRVZCUVVkM1NDeEhRVUZQTEVWQlF6VkRMRWRCUVVsc1NTeEpRVUZYTEU5QlFWY3NRMEZEZEVJc1IwRkJTV2xKTEVsQlFXRXNSMEZCVFN4RFFVTnVRaXhIUVVGSmNra3NTVUZCVVZNc1JVRkJTMHNzUTBGQlF5eEhRVUZMTEV0QlFVc3NWMEZCWVN4SFFVTnlReXhOUVVGTkxFbEJRVWtzVFVGQlRTeG5SRUZCWjBRc1JVRkRhRVZXTEVWQlFVOHNVVUZEVUN4TFFVRkxMRXRCUVVzc1QwRkJUMVVzUlVGQlJ5eERRVUZETEVWQlEycENMRXRCUVVzc1UwRkJWMjlITEVsQlEyaENMRXRCUVVzc1QwRkJUeXhQUVVGUGNFY3NSVUZCUnl4RFFVRkRMRVZCUXpOQ2MwUXNSVUZCU3l4UlFVTk1kRVFzU1VGRFFUQklMRXRCUlV0d1NTeEZRVUZQTEdWQlFXVXNUMEZCVHl4SlFVTnNRelpITEVWQlFVOXVSeXhEUVVGRExFVkJRVWxXTEVWQlFVOHNUVUZGTTBJc1EwRkRRU3hIUVVGSlFTeEZRVUZQTEZGQlFWVXNUMEZEYWtJc1QwRkJUMEVzUTBGRFppeERRVU5LTEUxQlIwRnJTU3hIUVVGVFJTeEZRVUZSUkN4RlFVTnlRaXhQUVVGUFJDeERRVU5ZTEVWQlJVRjBRaXhGUVVGTkxGVkJRVlVzWVVGQlpTeFRRVUZWYTBJc1JVRkJTMDhzUlVGQlJ5eERRVVUzUXl4SFFVUkJMRXRCUVVzc1MwRkJTeXhMUVVGTExFMUJRVTBzUzBGQlN5eExRVUZOVUN4RlFVRkpMRWxCUVVrc1JVRkRjRU1zUzBGQlN5eFRRVUZYYUVJc1IwRkJWeXhEUVVNelFpeEhRVUZKWjBJc1JVRkJTU3hUUVVGWGFFSXNSMEZEWml4UFFVTktMRXRCUVVzc1QwRkJVeXhMUVVGTExFOUJRVThzVFVGQlRTeEZRVUZITEV0QlFVc3NTMEZCU3l4TlFVRk5MRU5CUTNaRUxFTkJRMEVzUzBGQlN5eFBRVUZQTEV0QlFVc3NUVUZCVFN4TFFVRkxMRTlCUVZGblFpeEZRVUZKTEZsQlFWa3NRMEZCUXl4RFFVTjZSQ3hGUVVOUGJFSXNRMEZEV0N4RlFVRkZMRVZCUlVVelJ5eEhRVUVyUWl4VFFVRlZjVWtzUlVGQlVTeERRVU5xUkd4TExFZEJRVlUyUWl4RlFVRmxjVWtzUTBGQlRTeEZRVXN2UWl4VFFVRlRja2tzUlVGQll6UkZMRVZCUVZWNFJTeEZRVUZOTEVOQlEyNURMRWxCUVVsbUxFVkJRVkVzUzBGRFdpeEhRVUZKTEVOQlFVTmxMRVZCUVUwc1EwRkRVRUVzUlVGQlR5eERRVUZETEVWQlExSXNVVUZCVXl4RlFVRkpMRVZCUVVjc1JVRkJTWGRGTEVWQlFWTXNUMEZCVVN4SlFVTnFRM2hGTEVWQlFVc3NRMEZCUXl4RlFVRkpkMFVzUlVGQlV5eERRVUZETEVWQlFVVXNUMEZCVHl4RFFVTnlReXhEUVVOQkxFOUJRVUYyUml4RlFVRlJaMG9zUlVGQlR5eExRVUZMTEV0QlFVMXFTU3hEUVVGSkxFZEJRVXNzUzBGRGJrTm1MRVZCUVUwc1UwRkJWM1ZHTEVWQlExWjJSaXhEUVVOWUxFTkJRMEVzVDBGQlFWY3NSVUZCWXl4VlFVRlZMRTFCUVZFc1ZVRkJXU3hEUVVWNFF5eFJRVVJKTkVVc1JVRkJWeXhMUVVGTExGTkJRVk1zVFVGQlRTeERRVUZETEVWQlF6TkNia1VzUlVGQlNTeEZRVUZIUVN4RlFVRkpiVVVzUlVGQlV5eFBRVUZSYmtVc1NVRkRha050UlN4RlFVRlRia1VzUTBGQlF5eEZRVUZGTEZOQlFWY3NSMEZETTBJc1QwRkJUeXhKUVVGSlZDeEZRVUZqTkVVc1JVRkJWU3hMUVVGTExFdEJRVXNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZEZWtRc1JVRkRRVFZGTEVWQlFXTXNWVUZCVlN4WlFVRmpMRk5CUVZVMFJpeEZRVUZQTEVOQlEyNUVMRWRCUVVrc1MwRkJTeXhWUVVGWkxFTkJRVU5CTEVWQlEyeENMRTlCUVU4c1MwRkZXQ3hSUVVSSk1VWXNSVUZCU3l4SlFVRkpSaXhGUVVGakxFdEJRVXNzVTBGQlV5eE5RVUZOTEVOQlFVTXNSVUZCUnl4TFFVRkxMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGRE5VUlRMRVZCUVVrc1JVRkJSMEVzUlVGQlNWQXNSVUZCUnl4VFFVRlRMRTlCUVZGUExFbEJRM0JEVUN4RlFVRkhMRk5CUVZOUExFTkJRVU1zUlVGQlNWQXNSVUZCUnl4VFFVRlRUeXhEUVVGRExFVkJRVVVzV1VGQldXMUdMRU5CUVVzc1JVRkRja1FzVDBGQlR6RkdMRU5CUTFnc1JVRkRRVVlzUlVGQll5eFZRVUZWTEU5QlFWTXNWVUZCV1N4RFFVTjZReXhQUVVGUExFdEJRVXNzVTBGQlV5eERRVUZETEVWQlFVVXNUMEZCVHl4RFFVTnVReXhGUVVOQlFTeEZRVUZqTEZWQlFWVXNVVUZCVlN4VFFVRlZhVUlzUlVGQllTeERRVU55UkN4UFFVRlBMRXRCUVVzc1UwRkJVeXhEUVVGRExFVkJRVVVzVVVGQlVVRXNRMEZCVnl4RFFVTXZReXhGUVVOQmFrSXNSVUZCWXl4VlFVRlZMRkZCUVZVc1UwRkJWV2xDTEVWQlFXRXNRMEZEY2tRc1QwRkJUeXhMUVVGTExGTkJRVk1zUzBGQlN5eFRRVUZUTEU5QlFWTXNRMEZCUXl4RlFVRkZMRkZCUVZGQkxFTkJRVmNzUTBGRGRFVXNSVUZEUVdwQ0xFVkJRV01zVlVGQlZTeEpRVUZOTEZOQlFWVk1MRVZCUVV0RExFVkJRV050UlN4RlFVRk5MRU5CUXpkRUxFbEJRVWtzUlVGQlNTeExRVUZMTEZGQlFWRndSU3hGUVVGTExFVkJRVWR2UlN4RlFVRkxMRkZCUVZFc1JVRkJSMkVzUlVGQlZ5eExRVUZMTEZOQlF6ZEVMRTlCUVU4c1JVRkJTVUVzUlVGQlV5eFBRVUZUUVN4RlFVRlRMRU5CUVVNc1JVRkJSU3hKUVVGSmFrWXNSVUZCUzBNc1JVRkJZMjFGTEVOQlFVa3NSVUZCU1N4TlFVTTFSU3hGUVVOQkwwUXNSVUZCWXl4VlFVRlZMRzFDUVVGeFFpeFRRVUZWVEN4RlFVRkxXQ3hGUVVGVGNVa3NSVUZCVjNCSExFVkJRV0VzUTBGRGVrWXNTVUZCU1ZJc1JVRkJTU3hMUVVGTExGRkJRVkZrTEVWQlFVc3NSVUZCUjFnc1EwRkJUeXhGUVVGSE5FWXNSVUZCVnl4TFFVRkxMRk5CUTNaRUxFZEJRVWx1UlN4SFFVRkxiVVVzUlVGQlV5eFBRVU5rTEU5QlFVOHNTMEZCU3l4UlFVRlJNMFFzUTBGQlZ5eEZRVU51UXl4SlFVRkpiRUlzUlVGQlV6WkZMRVZCUVZOdVJTeERRVUZETEVWQlFVVXNiVUpCUVcxQ1pDeEZRVUZMV0N4RlFVRlRjVWtzUlVGQlYzQkhMRU5CUVZjc1JVRkRhRVlzVDBGQlNXeENMRWxCUVZjc1VVRkJZVlVzUlVGQlNTeEZRVU55UW0xRkxFVkJRVk51UlN4RlFVRkpMRU5CUVVNc1JVRkJSU3hSUVVGUlVTeERRVUZYTEVWQlJYWkRiRUlzUTBGRFdDeEZRVU5CUXl4RlFVRmpMRlZCUVZVc2IwSkJRWE5DTEZOQlFWVk1MRVZCUVV0WUxFVkJRVk54U1N4RlFVRlhjRWNzUlVGQllTeERRVU14Uml4SlFVRkpVaXhGUVVGSkxFdEJRVXNzVVVGQlVXUXNSVUZCU3l4RlFVRkhXQ3hEUVVGUExFVkJRVWMwUml4RlFVRlhMRXRCUVVzc1UwRkJWVEJFTEVWQlFWTXhSQ3hGUVVGVExFOUJRMjVHTEVkQlFVa3NSVUZCUVc1RkxFZEJRVXMyU0N4SFFVVlVMRXRCUVVsMlNTeEZRVUZUTmtVc1JVRkJVMjVGTEVOQlFVTXNSVUZCUlN4dlFrRkJiMEprTEVWQlFVdFlMRVZCUVZOeFNTeEZRVUZYY0Vjc1EwRkJWeXhGUVVOcVJpeFBRVUZKYkVJc1NVRkJWeXhSUVVGaFZTeEZRVUZKTmtnc1JVRkJVeXhGUVVNNVFqRkVMRVZCUVZOdVJTeEZRVUZKTEVOQlFVTXNSVUZCUlN4UlFVRlJVU3hEUVVGWExFVkJSWFpEYkVJc1JVRkRXQ3hGUVVOQlF5eEZRVUZqTEZWQlFWVXNWMEZCWVN4VFFVRlZkVWdzUlVGQlQzaEVMRVZCUVUxNVJDeEZRVUZYTEVOQlEyNUZMRWxCUVVsRExFVkJRVXNzUzBGQlN5eExRVUZMTEU5QlFWRmpMRVZCUVVzc1MwRkJTeXhUUVVGVExFOUJRemxETVVjc1IwRkJUVFJHTEVsQlFVOWpMRVZCUVVrc2RVTkJRWGREYUVJc1JVRkJUeXhWUVVGWFJTeEZRVUZKWXl4RlFVRkpMRmxCUVdGbUxFTkJRVk1zUlVGRGVrY3pSaXhIUVVGTk5FWXNSVUZCU3l4SFFVRkxSaXhGUVVGUkxFVkJRVWNzTWtKQlFUUkNSU3hGUVVGSkxGZEJRVmxHTEVWQlFVOHNXVUZCWVVNc1EwRkJVeXhGUVVWd1J5eFJRVVJKYUVJc1JVRkJUeXhGUVVGSFZ5eEZRVUZKTEV0QlFVc3NVMEZCVlRkSUxFVkJRVWtzUzBGQlN5eExRVUZOYTBvc1JVRkJXU3hGUVVOdVJDOUlMRVZCUVVrc1JVRkJSMEVzUlVGQlNUaElMRVZCUVVrNVNDeEpRVU53UWl0R0xFZEJRVkZYTEVWQlFVVXhSeXhEUVVGRExFVkJRVVVzVjBGQlZ6aEhMRVZCUVZFc1JVRkJSM2hFTEVWQlFVMTVSQ3hGUVVGWmFFSXNRMEZCU1N4RlFVTjZSR2RETEVkQlFXRnlRaXhGUVVGRk1VY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1QwRkRka0p2UWl4SFFVRk5Na1VzUjBGQlVXZERMRVZCUVZjc1RVRkJUMmhDTEVOQlFWTXNSVUZEZWtNelJpeEhRVUZOY0VJc1NVRkJUU3hIUVVGTE1FY3NSVUZCUlRGSExFVkJRVWtzUTBGQlF5eEZRVUZGTEdOQlFXZENNRWNzUlVGQlJURkhMRU5CUVVNc1JVRkJSU3haUVVGaExEUkNRVUUyUWl0SExFTkJRVk1zUlVGRE9VWk1MRVZCUVVVeFJ5eERRVUZETEVWQlFVVXNUMEZCVHl4SFFVRkxia0lzUlVGQlJXMUNMRU5CUVVNc1IwRkRjRUp2UWl4SFFVRk5MRWRCUVU4c1VVRkJVM0JDTEVWQlFVY3NUVUZCVDI1Q0xFVkJRVVZ0UWl4RFFVRkRMRVZCUVVjc2RVSkJRWGRDTUVjc1JVRkJSVEZITEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVjc1YwRkJXVGhITEVWQlFVOHNXVUZCWVVNc1EwRkJVeXhGUVVOd1NDOUhMRWxCUVUwc1IwRkJTM05FTEVWQlFVc3NVMEZCVTNwRkxFVkJRVVZ0UWl4RlFVRkpMRU5CUVVNc1JVRkJSMjVDTEVWQlFVVnRRaXhEUVVGRExFTkJRVU1zUlVGQlNTeEhRVU0zUTI5Q0xFZEJRVTBzUjBGQlR5d3dRa0ZCTWtJd1JpeEZRVUZQTEZGQlFWTTVSeXhGUVVGSExFOUJRVkZ1UWl4RlFVRkZiVUlzUlVGQlNTeERRVUZETEVWQlFVZHVRaXhGUVVGRmJVSXNRMEZCUXl4RFFVRkRMRVZCU1hwR0xFbEJRVWxuU1N4RlFVRlRSQ3hKUVVGakxFVkJRek5DTEU5QlFVbERMRWRCUVZWRUxFVkJRVmw2UlN4RlFVRkxMRmxCUVdOM1JTeEpRVU42UXpGSExFZEJRVTBzUjBGQlR6UkhMRVZCUVZNc1ZVRkJXU3hYUVVGWkxHRkJRV05FTEVWQlFWZG9ReXhGUVVGTkxHRkJRV05sTEVWQlFVOHNaVUZCWjBKNFJDeEZRVUZMTEZsQlFXRXNiVUpCUVc5Q2QwVXNSVUZCU1N4aFFVRmpaaXhEUVVGVExFVkJRMmhNYUVJc1EwRkRXQ3hGUVVkQmVFY3NSVUZCWXl4VlFVRlZMRWxCUVUwc1UwRkJWVXdzUlVGQlMwVXNSVUZCVDBNc1JVRkJWMmxGTEVWQlFVMHNRMEZEYWtVc1NVRkJTVzlFTEVWQlFVa3NTMEZCU3l4VFFVRlZjRUlzUlVGQlRXaERMRVZCUVVzc1lVRkJZMmRFTEVWQlFVMW9SQ3hGUVVGTExGTkJRM1pFZEVRc1JVRkJTU3hMUVVGTExFbEJRVWtzUzBGQlN5eFJRVUZSWkN4RlFVRkxMRVZCUVVkdlNDeERRVUZITEVWQlFVZEpMRVZCUVVVc1QwRkJVeXhEUVVGRExFVkJRVWQxUWl4RlFVRlJka0lzUlVGQlJURkhMRU5CUVVNc1JVRkhkRVVzUjBGR1NXbEpMRVZCUVUwc1YwRkRUblpDTEVWQlFVVXhSeXhEUVVGRExFVkJRVWxwU1N4RlFVRlJRU3hGUVVGTkxFMUJRVTBzUjBGRE0wSkJMRVZCUVUwc1MwRkJTeXhSUVVGVk0wTXNSVUZCU3l4RFFVc3hRaXhKUVVGSkwwUXNSVUZEUVhaQ0xFVkJRVWtzU1VGQlRYVkNMRVZCUVZGdFJpeEZRVUZGTVVjc1JVRkJTU3hEUVVGRExFZEJRVWNzUzBGQlN5eFBRVUZUYzBZc1IwRkJUMmRDTEVWQlFVa3lRaXhGUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZITDBrc1EwRkJSeXhGUVVGSkxFZEJRM1pGY1VNc1JVRkJUU3hYUVVOT2JVWXNSVUZCUlRGSExFVkJRVWtzUTBGQlF5eEZRVUZKZFVJc1JVRkJVVUVzUlVGQlRTeE5RVUZOTEVkQlEyNURRU3hGUVVGTkxHTkJRV013Unl4RFFVRkxMRVZCUTNwQ0xFdEJRVXNzUzBGQlMycEpMRVZCUVVrc1EwRkJReXhGUVVGSmRVSXNSVUZCVFN4UFFVRlBMRWxCUlRGQ1FTeEZRVUZSYlVZc1JVRkJSVEZITEVWQlFVa3NRMEZCUXl4TFFVRlBMRkZCUVdGMVFpeEZRVUZOTEV0QlFVc3NUMEZCVXl0RUxFZEJRVTluUWl4RlFVRkpNa0lzUlVGQlRTeFBRVUZQTEVWQlFVY3ZTU3hEUVVGSExFVkJRVWtzU1VGRE0wWnhReXhGUVVGTkxGZEJRMDV0Uml4RlFVRkZNVWNzUlVGQlNTeERRVUZETEVWQlFVbDFRaXhGUVVGUlFTeEZRVUZOTEUxQlFVMHNSMEZEYmtOQkxFVkJRVTBzWVVGQllUQkhMRU5CUVVzc1JVRkRlRUlzUzBGQlN5eExRVUZMYWtrc1EwRkJReXhGUVVGSk1FY3NSVUZCUlRGSExFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlJXNURMRU5CUTBFc1NVRkJTVllzUlVGQlV6SkpMRVZCUVUwc1NVRkJTUzlKTEVWQlFVdEZMRVZCUVU5RExFVkJRVmRwUlN4RFFVRkpMRVZCUTJ4RUxFZEJRVWxvUlN4SlFVRlhMRWRCUTFnc1RVRkJUeXhIUVVWWUxFZEJSRUVzUzBGQlN5eExRVUZMVlN4RFFVRkRMRVZCUVVscFNTeEZRVUZOTEU5QlFVOHNSVUZEZUVJelNTeEpRVUZYTEVkQlExZ3NUVUZCVHl4SFFVVllMRWRCUVVrc1MwRkJTeXhMUVVGTExFOUJRVk5uUnl4RlFVTnVRaXhaUVVGTExFOUJRVTkwUml4RlFVRkpMRVZCUVVkV0xFTkJRVTBzUlVGRGJFSXNSMEZIVUN4SlFVRkpORWdzUlVGQmEwSXNTMEZCU3l4clFrRkJhMElzUlVGQlIwTXNSVUZCVXl4TFFVTjZSQ3hQUVVGSllpeEZRVUZKYUVnc1JVRkJUeXhQUVVGUExFVkJRVWNzUzBGQlN5eFBRVUZQTEVOQlFVTXNSVUZCU1N4SlFVTjBRelpJTEVWQlFWTkVMRVZCUTFSc1NDeEhRVUZMTEV0QlFVc3NTMEZCU3l4UlFVVnVRbTFJTEVWQlFVOHNUMEZCVDI1SUxFVkJRVWtzUlVGQlIxWXNRMEZCVFN4RlFVTndRalJJTEVOQlJXWXNSVUZOUVROSUxFVkJRV01zVlVGQlZTeFBRVUZUTEZOQlFWVlRMRVZCUVVkcFNTeEZRVUZQTEVOQlEycEVMRXRCUVVzc1UwRkJVeXhQUVVGUGFra3NSVUZCUnl4RlFVRkhhVWtzUTBGQlN5eEZRVU5vUXl4TFFVRkxMRXRCUVVzc1QwRkJUMnBKTEVWQlFVY3NSVUZCUjJsSkxFVkJRVTBzVDBGQlR5eERRVUZETEVOQlEzcERMRVZCUzBFeFNTeEZRVUZqTEZWQlFWVXNhMEpCUVc5Q0xGVkJRVmtzUTBGRmNFUXNTVUZCU1N0SUxFVkJRVThzUzBGQlN5eFRRVUZUTEZGQlFWVXNSVUZEYmtNc1QwRkJUeXhKUVVGSkwwZ3NSVUZCWXl4TFFVRkxMRk5CUVZNc1QwRkJUeXRJTEVOQlFVa3NSVUZCUnl4TFFVRkxMRXRCUVVzc1QwRkJUMEVzUTBGQlNTeERRVUZETEVOQlF5OUZMRVZCUTBFdlNDeEZRVUZqTEZWQlFWVXNZMEZCWjBJc1UwRkJWVFpJTEVWQlFVc3NRMEZKYmtRc1MwRkJTeXhMUVVGTExFdEJRVXRCTEVWQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNc1JVRkRMMElzUzBGQlN5eFRRVUZUTEV0QlFVdEJMRVZCUVVrc1UwRkJVeXhOUVVGTkxFTkJRVU1zUTBGRE0wTXNSVUZEUVRkSUxFVkJRV01zVlVGQlZTeGhRVUZsTEZOQlFWVTRTQ3hGUVVGTExFTkJTV3hFTEV0QlFVc3NTMEZCU3l4UlFVRlJRU3hGUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETEVWQlEyaERMRXRCUVVzc1UwRkJVeXhSUVVGUlFTeEZRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFVkJUVUU1U0N4RlFVRmpMRlZCUVZVc1UwRkJWeXhUUVVGVlVDeEZRVUZMUXl4RlFVRk5ZU3hGUVVGaGVVZ3NSVUZCVldwRkxFVkJRVTFyUlN4RlFVRlBPVUlzUlVGQlV5eERRVU5xUnl4SlFVRkpXU3hGUVVGTmFFUXNSVUZCU3l4VFFVTllNMFFzUlVGQlR5eExRVUZMTEV0QlFVMTNSU3hGUVVGWExFdEJRVXNzVTBGRGJFTnpSQ3hGUVVGUExFdEJRVXNzVVVGQlVYcEpMRVZCUVVzc1JVRkJSM05JTEVOQlFVY3NSVUZCUjNSSExFVkJRVWw1U0N4RlFVTjBRME1zUlVGQlVTeExRVUZMTEVsQlFVbDZTU3hKUVVGVFJDeEZRVUZOZVVrc1JVRkJUeXhMUVVGTExGRkJRVkY0U1N4RlFVRk5MRVZCUVVkeFNDeERRVUZITEVWQlFVY3pSeXhGUVVGTExFOUJRVk1zUTBGQlF5eEZRVU4wUml4SFFVRkxORWdzUjBGVFFTeEhRVUZKZGtnc1IwRkJTekJJTEVWQlExWXNSMEZCU1N4RFFVTkJMRXRCUVU4eFNDeEhRVUZMTUVnc1JVRkJUekZJTEVsQlFVc3NRMEZEYUVKdFJTeEZRVUZUYmtVc1EwRkJReXhGUVVGRkxGZEJRMXB0UlN4RlFVRlRia1VzUTBGQlF5eEZRVUZKYlVVc1JVRkJVMjVGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRWRCUTNCRExFbEJRVWxXTEVWQlFWTTJSU3hGUVVGVGJrVXNRMEZCUXl4RlFVRkZMRk5CUVZOb1FpeEZRVUZMUXl4RlFVRk5ZU3hGUVVGaGVVZ3NSVUZCVldwRkxFVkJRVTFyUlN4RlFVRlBPVUlzUTBGQlR5eEZRVWw0Uml4SFFVUkJMMFlzUlVGQlMwc3NRMEZCUXl4RlFVRkpiVVVzUlVGQlUyNUZMRU5CUVVNc1JVRkJSU3hQUVVGUExFVkJRM3BDTEU5QlFVOVdMRWRCUVZjc1UwRkRiRUlzVDBGQlQwRXNSVUZEV0d0SkxFVkJRVkZzU1N4RFFVTmFMRU5CUTBvc1VVRkRRU3hEUVVWSkxFbEJRVWxuU1N4RlFVRlBhRVVzUlVGQlN5eGpRVUZuUWl4RlFVZG9ReXhKUVVaSmJVVXNSVUZCVHl4SFFVTlFRU3hKUVVORGVrZ3NSVUZCU1RCSUxFVkJRVTh4U0N4SFFVRkxlVWdzUlVGQlRYcElMRWxCUTI1Q2JVVXNSVUZCVTI1RkxFTkJRVU1zUlVGQlJTeExRVUZMTEZGQlFWVnpTQ3hKUVVOMlFtNUVMRVZCUVZOdVJTeERRVUZETEVWQlFVVXNTMEZCU3l4VFFVRlhMRVZCUXpWQ0xFdEJRVXNzVTBGQlUwRXNSVUZCUjNORUxFVkJRVXNzV1VGQldTeEhRVWRzUXpORUxFVkJRVXNzVDBGQlQwc3NSVUZCUnl4RFFVRkRMRVZCUTJoQ2JVVXNSVUZCVXl4UFFVRlBia1VzUlVGQlJ5eERRVUZETEVsQlNUVkNiVVVzUlVGQlV5eFRRVUZYTEVkQlFVdEJMRVZCUVZNc1EwRkJReXhGUVVGRkxFdEJRVXNzVTBGQlZ5eEhRVU55UkM5RExFZEJRVTBzUjBGQlR5eGxRVUZsTEVOQlEzQkRMRTFCZGtOQkxFMUJRVTl3UWl4SFFVRkxNRWdzUlVGQlR6RklMRWxCUVVzc1EwRkRjRUlzU1VGQlNWWXNSVUZCVXpaRkxFVkJRVk51UlN4RFFVRkRMRVZCUVVVc1UwRkJVMmhDTEVWQlFVdERMRVZCUVUxaExFVkJRV0Y1U0N4RlFVRlZha1VzUlVGQlRXdEZMRVZCUVU4NVFpeERRVUZQTEVWQlEzaEdMRWRCUVVrc1QwRkJUM0JITEVkQlFWY3NVMEZEYkVJc1QwRkJUMEVzUlVGRFdHdEpMRVZCUVZGc1NTeERRVU5hTEVOQmIwTktMRTlCUVU5clNTeERRVU5ZTEVWQlJVRnFTU3hGUVVGakxGVkJRVlVzVTBGQlZ5eFRRVUZWVXl4RlFVRkhhMGtzUlVGQlV5eERRVU55UkN4SlFVRkpMMFFzUlVGQlZ5eExRVUZMTEZOQlEzQkNMRTlCUVVsdVJTeEhRVUZMTEVkQlFVdEJMRVZCUVVrc1JVRkJTVzFGTEVWQlFWTXNVVUZEZGtKQkxFVkJRVk51UlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhQUVVGVGJVVXNSVUZCVTI1RkxFVkJRVWtzUTBGQlF5eEZRVUZGTEV0QlFVc3NVVUZCVld0SkxFZEJRM0pFTDBRc1JVRkJVMjVGTEVOQlFVTXNSVUZCUlN4WFFVTmFiVVVzUlVGQlUyNUZMRU5CUVVNc1JVRkJTVzFGTEVWQlFWTnVSU3hEUVVGRExFVkJRVVVzVFVGQlRTeEhRVU53UTIxRkxFVkJRVk51UlN4RFFVRkRMRVZCUVVVc1lVRkJZVzFGTEVWQlFWTnVSU3hGUVVGSkxFTkJRVU1zUlVGQlIydEpMRU5CUVU4c1JVRkRha1F2UkN4RlFVRlRMRTlCUVU5dVJTeEZRVUZKTEVWQlFVY3NRMEZCUXl4RlFVTjRRaXhMUVVGTExFdEJRVXNzVDBGQlQwRXNSVUZCU1N4RlFVRkhMRU5CUVVNc1JVRkRla0lzUzBGQlN5eExRVUZMUVN4RFFVRkRMRVZCUVVsdFJTeEZRVUZUYmtVc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGRE0wSXNTVUZIVWl4RlFVTllMRVZCVFVGVUxFVkJRV01zVlVGQlZTeGhRVUZsTEZOQlFWVTJTQ3hGUVVGTE5Va3NSVUZCWVN4RFFVVXZSQ3hKUVVGSk1rb3NSVUZCV1N4TFFVRkxMRXRCUVVzc1QwRkRNVUlzUzBGQlN5eExRVUZMTEV0QlFVc3NUVUZCVFN4TFFVRkxMRXRCUVUxbUxFVkJRVWtzU1VGQlNTeEZRVU40UXl4SlFVRkpaMElzUlVGQlkyaENMRVZCUVVrc1UwRkZkRUlzUjBGRVFTeExRVUZMTEZOQlFWTXNTMEZCU3l4TlFVRk5MRXRCUVVzc1UwRkJWV2RDTEVOQlFWY3NSVUZETDBOb1FpeEZRVUZKTEZWQlFWa3NRMEZCUXl4TFFVRkxMRk5CUjNSQ0xGRkJRVk53U0N4RlFVRkpMRVZCUVVkQkxFVkJRVWx2U1N4RlFVRlpMRTlCUVZGd1NTeEpRVU53UTI5SkxFVkJRVmx3U1N4RFFVRkRMRVZCUVVVc1UwRkJWeXhIUVV0c1F5eExRVUZMTEZOQlFWTnRTU3hGUVVGWkxFVkJRVWN6U2l4RFFVRlhMRU5CUXpWRExFVkJRMDlsTEVOQlExZ3NSVUZCUlRKSExFVkJRVXNzUlVGWlNFVXNSMEZCV1N4RFFVRkRMRVZCUTJKdVJ5eEhRVUZUTEVOQlFVVXNUMEZCVVN4RlFVRkxMRVZCUVVkVUxFZEJRV01zVlVGQldTeERRVUZGTEU5QlFVOVRMRVZCUVZFc1JVRkRkRVYxUml4SFFVRlJMRU5CUVVVc1RVRkJUeXhGUVVGTExFVkJRM1JDTDBjc1IwRkJZU3hWUVVGWkxFTkJRM3BDTEVsQlFVa3NSVUZCU1N4SlFVRkplVWdzUjBGRFdpeFRRVUZGTEZOQlFWY3NSMEZEVGl4RFFVTllMRVZCUVVjc1JVRkRRelZGTEVkQlFXRXNRMEZCUXl4RlFVTmtha0lzUjBGQll5eERRVUZETEVWQlEyNUNMRk5CUVZObExFZEJRVTFwU0N4RlFVRk5MRU5CUldwQ0xGRkJSRWxETEVWQlFVOHNRMEZCUXl4RlFVTklReXhGUVVGTExFVkJRVWRCTEVWQlFVc3NWVUZCVlN4UFFVRlJRU3hKUVVOd1EwUXNSVUZCUzBNc1JVRkJTeXhEUVVGRExFVkJRVWtzVlVGQlZVRXNRMEZCUlN4RlFVVXZRaXhIUVVGSkxFTkJRVU5HTEVWQlEwUXNUVUZCUVVNc1JVRkJTeXhSUVVGUkxGTkJRVk1zUlVGRGFFSXNTVUZCU1N4TlFVRk5RU3hGUVVGTExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlJYUkRMRU5CUlVFM1N5eEhRVUZSTEZkQlFXTXNWVUZCV1N4RFFVRkZMRWxCUVVseFNTeEZRVUZKTEVsQlFVbDZTQ3hIUVVGVExFOUJRVUY1U0N4RlFVRkZMRTlCUVU4c1JVRkJWVUVzUTBGQlJ5eEZRVUZITEVsRGRIQkViRVlzU1VGQlRUQkRMRWRCUVU0c1kwRkJlVUlzUzBGQlRTeERRVUZETEVWQlMyNUNReXhIUVVGT0xHTkJRVzFEUkN4RlFVRlhMRU5CUTI1RUxGbEJRVmxGTEVWQlFWRXNRMEZEYkVJc1RVRkJUU3h4UWtGQmNVSkJMRVZCUVU4c1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGRGFrUXNRMEZEUml4RlFVdGhReXhIUVVGT0xHTkJRVzFEU0N4RlFVRlhMRU5CUTI1RUxGbEJRVmxGTEVWQlFWRXNRMEZEYkVJc1RVRkJUU3h4UWtGQmNVSkJMRVZCUVU4c1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGRGFrUXNRMEZEUml4RlFVdGhSU3hIUVVGT0xHTkJRVzFEU2l4RlFVRlhMRU5CUTI1RUxGbEJRVmxGTEVWQlFWRXNRMEZEYkVJc1RVRkJUU3h4UWtGQmNVSkJMRVZCUVU4c1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGRGFrUXNRMEZEUml4RlFVdGhSeXhIUVVGT0xHTkJRVFJEVEN4RlFVRlhMRU5CUVVNc1JVRkxiRVJOTEVkQlFVNHNZMEZCSzBKT0xFVkJRVmNzUTBGREwwTXNXVUZCV1U4c1JVRkJUU3hEUVVOb1FpeE5RVUZOTEdkQ1FVRm5Ra0VzUTBGQlNTeEZRVUZGTEVOQlF6bENMRU5CUTBZc1JVRkxZVU1zUjBGQlRpeGpRVUZ0UTFJc1JVRkJWeXhEUVVGRExFVkJTM3BEVXl4SFFVRk9MR05CUVd0RFZDeEZRVUZYTEVOQlEyeEVMR0ZCUVdNc1EwRkRXaXhOUVVGTkxESkNRVUV5UWl4RFFVTnVReXhEUVVOR0xFVkRlRVJCTEVsQlFVMVZMRVZCUVVrc1ZVRkRVa01zUjBGQlNTeFJRVU5LUXl4SFFVRkpMRTlCUlU5RExFZEJRV0VzUTBGRGVFSXNTMEZCVFVnc1JVRkRUaXhOUVVGUFFTeEZRVU5RTEVsQlFVdEJMRU5CUTFBc1JVRkZZVWtzUjBGQlZ5eERRVU4wUWl4TFFVRk5TaXhGUVVOT0xFMUJRVTlETEVkQlExQXNTVUZCUzBRc1EwRkRVQ3hGUVVWaFN5eEhRVUYzUWl4RFFVTnVReXhMUVVGTlRDeEZRVU5PTEUxQlFVOURMRWRCUTFBc1NVRkJTMFFzUlVGRFRDeFJRVUZUUXl4RlFVTllMRVZCUldGTExFZEJRVmtzUTBGRGRrSXNTMEZCVFU0c1JVRkRUaXhOUVVGUFJTeEhRVU5RTEVsQlFVdEdMRU5CUTFBc1JVRkZZVThzUjBGQldTeERRVU4yUWl4TFFVRk5VQ3hGUVVOT0xFMUJRVTlGTEVkQlExQXNTVUZCUzBZc1JVRkRUQ3hSUVVGVFJTeEZRVU5ZTEVWQlJXRk5MRWRCUVdNc1EwRkRla0lzUzBGQlRWSXNSVUZEVGl4UFFVRlJRU3hEUVVOV0xFVkJSV0ZUTEVkQlFXOUNMRU5CUXk5Q0xFdEJRVTFVTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhQUVVGUlFTeERRVU5XTEVWQlJXRlZMRWRCUVhsQ0xFTkJRM0JETEV0QlFVMVdMRVZCUTA0c1QwRkJVVUVzUlVGRFVpeFBRVUZSUVN4RlFVTlNMR0ZCUVdORExFVkJRMmhDTEVWQlJXRlZMRWRCUVhkQ0xFTkJRMjVETEV0QlFVMVlMRVZCUTA0c1QwRkJVVUVzUlVGRFVpeFBRVUZSUVN4RlFVTlNMR0ZCUVdORkxFVkJRMmhDTEVWQlJXRlZMRWRCUVdsQ0xFTkJRelZDTEV0QlFVMWFMRVZCUTA0c1QwRkJVVUVzUlVGRFVpeFZRVUZYTEV0QlEySXNSVUZGWVdFc1IwRkJkVUlzUTBGRGJFTXNTMEZCVFdJc1JVRkRUaXhQUVVGUlFTeEZRVU5TTEU5QlFWRkJMRVZCUTFJc1ZVRkJWeXhMUVVOaUxFVkJSV0ZqTEVkQlFUUkNMRU5CUTNaRExFdEJRVTFrTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhQUVVGUlFTeEZRVU5TTEZWQlFWY3NUVUZEV0N4aFFVRmpReXhGUVVOb1FpeEZRVVZoWXl4SFFVRXlRaXhEUVVOMFF5eExRVUZOWml4RlFVTk9MRTlCUVZGQkxFVkJRMUlzVDBGQlVVRXNSVUZEVWl4VlFVRlhMRTFCUTFnc1lVRkJZMFVzUlVGRGFFSXNSVUZGWVdNc1IwRkJhVUlzUTBGRE5VSXNTMEZCVFdoQ0xFVkJRMDRzVFVGQlQwRXNSVUZEVUN4SlFVRkxRU3hGUVVOTUxFdEJRVTFCTEVWQlEwNHNUMEZCVVVFc1EwRkRWaXhGUVVWaGFVSXNSMEZCT0VJc1EwRkRla01zUzBGQlRXcENMRVZCUTA0c1RVRkJUMEVzUlVGRFVDeEpRVUZMUVN4RlFVTk1MRXRCUVUxQkxFVkJRMDRzVDBGQlVVRXNSVUZEVWl4UFFVRlJRU3hEUVVOV0xFVkJSV0ZyUWl4SFFVRmxMRU5CUXpGQ0xFdEJRVTFzUWl4RlFVTk9MRTFCUVU5RExFZEJRMUFzU1VGQlMwUXNSVUZEVEN4TFFVRk5RU3hGUVVOT0xFOUJRVkZCTEVOQlExWXNSVUZGWVcxQ0xFZEJRVFJDTEVOQlEzWkRMRXRCUVUxdVFpeEZRVU5PTEUxQlFVOURMRWRCUTFBc1NVRkJTMFFzUlVGRFRDeExRVUZOUVN4RlFVTk9MRTlCUVZGQkxFVkJRMUlzVDBGQlVVRXNRMEZEVml4RlFVVmhiMElzUjBGQk5FSXNRMEZEZGtNc1MwRkJUWEJDTEVWQlEwNHNUVUZCVDBNc1IwRkRVQ3hKUVVGTFJDeEZRVU5NTEZGQlFWTkRMRWRCUTFRc1MwRkJUVVFzUlVGRFRpeFBRVUZSUVN4RFFVTldMRVZCUldGeFFpeEhRVUZuUWl4RFFVTXpRaXhMUVVGTmNrSXNSVUZEVGl4TlFVRlBSU3hIUVVOUUxFbEJRVXRHTEVWQlEwd3NTMEZCVFVFc1JVRkRUaXhQUVVGUlFTeEZRVU5TTEdGQlFXTkRMRVZCUTJoQ0xFVkJSV0Z4UWl4SFFVRTJRaXhEUVVONFF5eExRVUZOZEVJc1JVRkRUaXhOUVVGUFJTeEhRVU5RTEVsQlFVdEdMRVZCUTB3c1MwRkJUVUVzUlVGRFRpeFBRVUZSUVN4RlFVTlNMRTlCUVZGQkxFVkJRMUlzWVVGQlkwTXNSVUZEYUVJc1JVRkZZWE5DTEVkQlFXZENMRU5CUXpOQ0xFdEJRVTEyUWl4RlFVTk9MRTFCUVU5RkxFZEJRMUFzU1VGQlMwWXNSVUZEVEN4UlFVRlRSU3hIUVVOVUxFdEJRVTFHTEVWQlEwNHNUMEZCVVVFc1JVRkRVaXhoUVVGalJTeEZRVU5vUWl4RlFVVmhjMElzUjBGQk5rSXNRMEZEZUVNc1MwRkJUWGhDTEVWQlEwNHNUVUZCVDBVc1IwRkRVQ3hKUVVGTFJpeEZRVU5NTEZGQlFWTkZMRWRCUTFRc1MwRkJUVVlzUlVGRFRpeFBRVUZSUVN4RlFVTlNMRTlCUVZGQkxFVkJRMUlzWVVGQlkwVXNSVUZEYUVJc1JVTnFTMDhzVTBGQlUzVkNMRVZCUVZsRExFVkJRVWNzUTBGRE4wSXNUMEZCVHl4UFFVRlBRU3hIUVVGTkxGZEJRM1JDTEVOQlJVOHNVMEZCVTBNc1IwRkJVMFFzUlVGQlJ5eERRVU14UWl4UFFVRlBMRTlCUVU5QkxFZEJRVTBzVVVGRGRFSXNRMEZGVHl4VFFVRlRSU3hIUVVGVlJpeEZRVUZITEVOQlF6TkNMRTlCUVU4c1QwRkJUMEVzUjBGQlRTeFZRVUZaUVN4RlFVRkpMRWxCUVUwc1EwRkROVU1zUTBGRlR5eFRRVUZUUnl4SFFVRlRTQ3hGUVVGSExFTkJRekZDTEU5QlFVOHNUMEZCVDBFc1IwRkJUU3hSUVVOMFFpeERRVVZQTEZOQlFWTkpMRWRCUVU5S0xFVkJRVWNzUTBGRGVFSXNUMEZCVHl4UFFVRlBMRlZCUVZVc1UwRkJVeXhMUVVGTFFTeERRVUZETEVsQlFVMHNaVUZETDBNc1EwRkpUeXhUUVVGVFN5eEpRVUZqTEVOQlF6VkNMRWRCUVVrc1EwRkRSaXhQUVVGUExFOUJRVThzVFVGQlV5eGhRVUZsTEVOQlFVTXNRMEZCUXl4TFFVRkxMR3RDUVVNdlF5eFBRVUZUUXl4RlFVRkhMRU5CUTFZc1RVRkJUeXhGUVVOVUxFTkJRMFlzUTBGSlR5eFRRVUZUUXl4SFFVRlhReXhGUVVGUExFTkJRMmhETEU5QlFVOHNUVUZCVFN4UlFVRlJRU3hEUVVGTExFVkJRVWxCTEVWQlFWRXNRMEZCUTBFc1EwRkJTeXhEUVVNNVF5eERRVVZQTEZOQlFWTkRMRWRCUVU5RExFVkJRVXRETEVWQlFVbERMRVZCUVZNc1EwRkRka01zUjBGQlNVWXNSVUZCU1N4VFFVRlhMRVZCUjI1Q0xFOUJRVTlCTEVWQlFVa3NUMEZCVHl4RFFVRkRSeXhGUVVGTlF5eEpRVUZUTEVOQlEyaERMRWxCUVUxRExFVkJRVThzUTBGQlEwb3NSVUZCUjBjc1EwRkJTU3hGUVVGSFFTeERRVUZKTEVWQlF6VkNMRTlCUVV0RUxFZEJSVTFFTEVWQlFWRkRMRVZCUVVzc1EwRkJReXhGUVVGSFJTeEZRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRk5SaXhGUVVGTExFTkJRVU1zUlVGRGRFTkJMRVZCUmtGRkxFTkJUVmdzUlVGQlJ5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVTmFMRU5CUlU4c1UwRkJVME1zUjBGQlMwTXNSVUZCUzBNc1JVRkJUU3hEUVVNNVFpeFBRVUZQUVN4RlFVRkxMRTlCUVU4c1EwRkJRME1zUlVGQlIwTXNTMEZEY2tKRUxFVkJRVVZETEVOQlFVTXNSVUZCU1Vnc1JVRkJTVWNzUTBGQlF5eEZRVU5NUkN4SFFVTk9MRU5CUVVNc1EwRkJReXhEUVVOUUxFTkJSVThzVTBGQlUwVXNSMEZCWlVvc1JVRkJTMHNzUlVGQlRTeERRVU40UXl4UFFVRlBMRTlCUVU4c1ZVRkJWU3hsUVVGbExFdEJRVXRNTEVWQlFVdExMRU5CUVVrc1EwRkRka1FzUTBGSlR5eFRRVUZUUXl4SFFVRmxaaXhGUVVGUFowSXNSVUZCVVVNc1JVRkJTeXhEUVVOcVJDeFBRVUZQZGtJc1IwRkJWVTBzUTBGQlN5eEhRVUZMUVN4SFFVRlRaMElzUjBGQlZXaENMRWRCUVZOcFFpeERRVU42UkN4RFFVZFBMRk5CUVZORExFZEJRVk5ETEVWQlFVZERMRVZCUVVjc1EwRkROMElzVDBGQlQwUXNSVUZCU1VNc1JVRkJTU3hMUVVGTExFMUJRVTFFTEVWQlFVbERMRU5CUVVNc1EwRkRha01zUTBGRlR5eFRRVUZUUXl4SFFVRlRReXhGUVVGUFJpeEZRVUZKTEVWQlFVY3NRMEZEY2tNc1NVRkJUVWNzUlVGQlVVUXNSVUZCVVN4RlFVTnNRa1VzUlVGRFNpeFBRVUZKUkN4RlFVTkdReXhGUVVGVExFdEJRVThzUjBGQlN5eERRVUZEUml4SFFVRlBMRk5CUVZOR0xFVkJRVWNzUjBGQlJ5eEZRVVUxUTBrc1IwRkJWU3hIUVVGTFJpeEhRVUZQTEZOQlFWTkdMRVZCUVVjc1IwRkJSeXhGUVVWb1Ewa3NRMEZEVkN4RFFVVlBMRk5CUVZORExFZEJRV0ZETEVWQlFWRXNRMEZEYmtNc1IwRkJTU3hGUVVGQmJrTXNSVUZCV1cxRExFTkJRVTBzUjBGQlMwRXNTVUZCVnl4TlFVRlJRU3hKUVVGWExFbEJSM1pFTEU5QlFVOHNVMEZCVTBFc1JVRkJVU3hGUVVGRkxFTkJSVGxDTEVOQlJVOHNVMEZCVTBNc1IwRkJZMFFzUlVGQlVTeERRVU53UXl4SFFVRkpMRVZCUVVGdVF5eEZRVUZaYlVNc1EwRkJUU3hIUVVGTFFTeEpRVUZYTEUxQlFWRkJMRWxCUVZjc1NVRkhka1FzVDBGQlR5eFhRVUZYUVN4RFFVRk5MRU5CUlRWQ0xFTkJSVThzVTBGQlUwVXNSMEZCV1VNc1JVRkJWU3hEUVVWd1F5eEhRVUZKTEVWQlFVRjBReXhGUVVGWmMwTXNRMEZCVVN4SFFVRkxRU3hKUVVGaExFMUJRVkZCTEVsQlFXRXNTVUZGZUVRc1EwRkRUQ3hKUVVGTlF5eEZRVUZKTEZkQlFWY3NTMEZCVDBRc1EwRkJVU3hGUVVGSkxFbEJRM2hETEU5QlFVOHNTMEZCU3l4TlFVRk5ReXhEUVVGRExFTkJRM0pDTEVOQlEwWXNRMEZGVHl4VFFVRlRReXhIUVVGUlF5eEZRVUZSUXl4RlFVRlJReXhGUVVGaExFZEJRVThzUTBGRE1VUXNTVUZCVFVNc1JVRkJVeXhKUVVGTlJpeEZRVVZ5UWl4UFFVUlpReXhGUVVGaExFdEJRVXNzVFVGQlVTeExRVUZMTEU5QlF6VkNSaXhGUVVGVFJ5eERRVUZOTEVWQlFVbEJMRU5CUTNCRExFTkJTVThzVTBGQlUwTXNSMEZCVjBNc1JVRkJUU3hEUVVNdlFpeFBRVUZQUVN4RlFVRlBMRWxCUVUwc1NVRkJUVUVzUlVGQlR5eE5RVUZSTEVkQlFVdEJMRVZCUVU4c1RVRkJVU3hGUVVNdlJDeERRVVZQTEZOQlFWTkRMRWRCUVZkRUxFVkJRVTBzUTBGREwwSXNUMEZCVDBRc1IwRkJWME1zUTBGQlNTeEZRVUZKTEVsQlFVMHNSMEZEYkVNc1EwRkZUeXhUUVVGVFJTeEhRVUZaUml4RlFVRk5SeXhGUVVGUExFTkJRM1pETEVsQlFVMURMRVZCUVZkMlFpeEhRVUZUYzBJc1JVRkJVU3hGUVVGSExFVkJRVVVzUlVGQlNTeEZRVU42UTBVc1JVRkJWVXdzUjBGQlVVY3NSVUZCVVVNc1IwRkJXU3hIUVVWNFF5eFBRVUZKUVN4SlFVRmhMRVZCUTFKTUxFZEJRVmROTEVOQlFVOHNSVUZCU1N4SFFVRkxMRWRCUlROQ0xFTkJRVU1zUjBGQlNTeExRVUZOTEVkQlFVa3NSMEZCU1N4SFFVRkpMRWRCUVVrc1IwRkJTU3hIUVVGSkxFZEJRVWtzUjBGQlNTeEhRVUZKTEVWQlFVVXNSVUZCUlVRc1JVRkJWeXhEUVVGRExFTkJSVEZGTEVOQlIwOHNVMEZCVTBVc1IwRkJZV3hETEVWQlFVc3NRMEZEYUVNc1NVRkJTVzFETEVWQlFVa3NTMEZCU3l4SlFVTllia01zUlVGQlNTeExRVU5LUVN4RlFVRkpMRTFCUVZFc1JVRkRXa0VzUlVGQlNTeEpRVU5LUVN4RlFVRkpMRXRCUTBwQkxFVkJRVWtzVDBGRFNrRXNSVUZCU1N4UFFVTktRU3hGUVVGSkxGZEJRMDRzUlVGSFFTeFBRVUZKUVN4RlFVRkpMRXRCUVU4c1MwRkJUMEVzUlVGQlNTeE5RVUZSTEVsQlEyaERiVU1zUlVGQlNTeEpRVUZKTEV0QlFVdEJMRU5CUVVNc1JVRkRaRUVzUlVGQlJTeGxRVUZsUVN4RlFVRkZMR1ZCUVdVc1JVRkJTU3hKUVVGSkxFZEJSWEpETEVOQlFVTkJMRU5CUTFZc1EwRkZUeXhUUVVGVFF5eEhRVUZuUWtNc1JVRkJWU3hEUVVONFF5eEpRVUZOUXl4SFFVTkVSQ3hGUVVORExFdEJRVXNzVFVGQlRVRXNSVUZCVnl4RFFVRkRMRVZCUTNaQ0xFdEJRVXNzVFVGQlRVRXNSVUZCVnl4SFFVRkhMRVZCUTNwQ0xFdEJRVXNzVFVGQlRVRXNSVUZCVnl4SFFVRkhMRWRCUXpOQ0xFVkJRMFpGTEVWQlFVOUdMRVZCUVZjc1JVRkRiRUpITEVkQlFVMUVMRVZCUVU4c1MwRkJTeXhOUVVGTlFTeEZRVUZQTEVOQlFVTXNSVUZCU1N4TFFVRkxMRTFCUVUxQkxFVkJRVThzUjBGQlJ5eEZRVUZKTEV0QlFVc3NUVUZCVFVFc1JVRkJUeXhIUVVGSExFZEJRVXNzUlVGRGVrWXNUMEZCVDBRc1NVRkJUeXhIUVVGTFJTeEpRVUZQTEVWQlFVa3NSMEZCU3l4RlFVTnlReXhEUVVWUExGTkJRVk5ETEVkQlFXVmlMRVZCUVUwc1EwRkRia01zVDBGQlNVRXNSVUZCVHl4SFFVTkdRU3hGUVVOTFFTeEZRVUZQTEVkQlFVc3NTMEZCVDBFc1JVRkJUeXhKUVVGUFFTeERRVU5xUkN4RFFVbFBMRk5CUVZOakxFZEJRV05ETEVWQlFVbERMRVZCUVdORExFVkJRVkZETEVWQlFWY3NTMEZCVFN4RFFVTjJSU3hKUVVGTlF5eEZRVUZQTEVsQlFVa3NTMEZCUzBvc1EwRkJSU3hGUVVOMFFrc3NSVUZCVnl4RFFVTlVMRlZCUVZjc1RVRkRXQ3hMUVVGTkxGVkJRMDRzVFVGQlR5eFZRVU5RTEVsQlFVc3NWVUZEVEN4TFFVRk5MRlZCUTA0c1QwRkJVU3hUUVVOV0xFVkJSVVZHTEVsQlEwWkZMRVZCUVZNc1UwRkJWMFlzUjBGSGRFSXNTVUZCVFVjc1JVRkJWME1zUlVGQlFTeERRVUZGTEdGQlFXTk9MRWRCUVdsQ1NTeEhRVVUxUTBjc1JVRkJVeXhKUVVGSkxFdEJRVXNzWlVGQlpVNHNSVUZCVVVrc1EwRkJVU3hGUVVOd1JDeGpRVUZqUml4RFFVRkpMRVZCUTJ4Q0xFdEJRVTFMTEVkQlFVMUJMRVZCUVVVc1MwRkJTeXhaUVVGWkxFbEJRVTBzWTBGQll5eEZRVU4wUkN4UFFVRlBSQ3hGUVVGVFFTeEZRVUZQTEUxQlFWRXNTVUZEYWtNc1EwRkhUeXhUUVVGVFJTeEhRVUZoUXl4RlFVRlpReXhGUVVGakxFTkJRM0pFTEVsQlFVbERMRVZCUVZVc1UwRkJVMFlzUlVGQldTeEZRVUZGTEVWQlIycERMRTlCUVU4c1RVRkJUVVVzUTBGQlR5eEpRVU4wUWtFc1JVRkJWU3hIUVVkYUxFbEJRVTFETEVWQlFWTXNVMEZCVTBZc1JVRkJZeXhGUVVGRkxFZEJRVXNzUlVGRE0wTkhMRVZCUVdWR0xFVkJRVlVzUjBGQlN5eFBRVUZQTEVkQlFVZEJMRVZCUVZNc1JVRkJSU3hGUVVGSkxFTkJRVU5ETEVWQlFWTkJMRVZCUTI1RkxFOUJRVTlFTEVWQlFWVXNSMEZCUzBVc1EwRkRlRUlzUTBGSlR5eFRRVUZUUXl4SFFVRlRReXhGUVVGUExFTkJRemxDTEVsQlFVMURMRVZCUVdVc1QwRkJUMFFzUTBGQlN5eEZRVU5xUXl4SFFVRkpMRTlCUVU5QkxFZEJRVlVzVjBGQllVRXNTVUZCVlN4SlFVRk5MRTlCUVU4c1RVRkJUVU1zUTBGQldTeEZRVU42UlN4TlFVRk5MRWxCUVVsRExFZEJRWEZDTEhOQ1FVRnpRa1lzUTBGQlN5eEZRVUZGTEVWQlF6bEVMRTlCUVU5RExFTkJRMVFzUTBGRlR5eFRRVUZUUlN4SFFVRm5RaTlFTEVWQlFVdG5SU3hGUVVGWkxFTkJReTlETEVsQlFVMURMRVZCUVdFc1EwRkJReXhGUVVOd1FpeFJRVUZYUXl4TFFVRkxiRVVzUlVGRFpDeEhRVUZKU1N4SFFVRmxTaXhGUVVGTGEwVXNRMEZCUXl4RlFVRkhMRU5CUXpGQ0xFbEJRVTFETEVWQlFVbHVSU3hGUVVGSmEwVXNRMEZCUXl4RlFVTm1MRWRCUVhWQ1F5eEhRVUZOTEV0QlFVMHNVMEZEYmtOR0xFVkJRVmRFTEVWQlFWZEZMRU5CUVVNc1EwRkJReXhGUVVGSlVDeEhRVUZUVVN4RFFVRkRMRU5CUTNoRExFTkJSVVlzVDBGQlQwWXNRMEZEVkN4RFFVVlBMRk5CUVZOSExFZEJRV0ZETEVWQlFWRkRMRVZCUVZFc1EwRkRNME1zU1VGQlRVTXNSVUZCVVN4TFFVRkxMRTFCUVUwc1MwRkJTeXhKUVVGSlJpeEZRVUZUTEVWQlFVVXNRMEZCUXl4RlFVTTFRMGNzUlVGQlZTeExRVUZMTEUxQlFVMHNTMEZCU3l4SlFVRkpTQ3hGUVVGVExFVkJRVVVzUTBGQlF5eEZRVU14UTBrc1JVRkJUMG9zUjBGQlZTeEZRVUZKTEVsQlFVMHNTVUZGTjBJc1QwRkJVVU1zUlVGQlVTeERRVU5rTEVsQlFVc3NVVUZEU0N4TlFVRlBMRWRCUVVkSExFTkJRVWtzUjBGQlJ6ZEVMRWRCUVZNeVJDeEZRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpNMFFzUjBGQlV6UkVMRVZCUVZNc1EwRkJReXhEUVVGRExFZEJRemRFTEVsQlFVc3NVMEZEU0N4TlFVRlBMRWRCUVVkRExFTkJRVWtzUjBGQlIwWXNRMEZCU3l4SFFVRkhReXhGUVVGVkxFVkJRVWtzU1VGQlNVRXNRMEZCVHl4SFFVRkxMRVZCUVVVc1IwRkRNMFFzU1VGQlN5eFRRVU5JTEUxQlFVOHNSMEZCUjBNc1EwRkJTU3hIUVVGSE4wUXNSMEZCVXpKRUxFVkJRVThzUTBGQlF5eERRVUZETEVkQlFVY3pSQ3hIUVVGVE5FUXNSVUZCVXl4RFFVRkRMRU5CUVVNc1IwRkROVVFzVVVGRFJTeE5RVUZOTEVsQlFVa3NWMEZCVnl4blFrRkJaMEpHTEVOQlFVMHNjME5CUVhORExFTkJRM0pHTEVOQlEwWXNRMEZGVHl4VFFVRlRTU3hIUVVGWE1VVXNSVUZCU3l4RFFVTTVRaXhQUVVGUFJDeEhRVUZMUXl4RlFVRkxMRU5CUVVNc1QwRkJVU3hUUVVGVkxGTkJRVlVzWVVGQllTeERRVUZETEVOQlF6bEVMRU5CUlU4c1NVRkJUVEpGTEVkQlExZ3NLMFZEY2xGTExFbEJRVTFETEVkQlFXRXNRMEZEZUVJc1ZVRkRRU3hYUVVOQkxGRkJRMEVzVVVGRFFTeE5RVU5CTEU5QlEwRXNUMEZEUVN4VFFVTkJMRmxCUTBFc1ZVRkRRU3hYUVVOQkxGVkJRMFlzUlVGRllVTXNSMEZCWXl4RFFVTjZRaXhOUVVOQkxFMUJRMEVzVFVGRFFTeE5RVU5CTEUxQlEwRXNUVUZEUVN4TlFVTkJMRTFCUTBFc1RVRkRRU3hOUVVOQkxFMUJRMEVzUzBGRFJpeEZRVVZoUXl4SFFVRmxMRU5CUVVNc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFZEJRVWNzUlVGRmFFWXNVMEZCVTBNc1IwRkJUME1zUlVGQlVTeERRVU0zUWl4UFFVRlJRU3hGUVVGUkxFTkJRMlFzU1VGQlN5eFRRVU5JTEUxQlFVOHNRMEZCUXl4SFFVRkhSaXhGUVVGWkxFVkJRM3BDTEVsQlFVc3NVVUZEU0N4TlFVRlBMRU5CUVVNc1IwRkJSMFFzUlVGQlZ5eEZRVU40UWl4SlFVRkxMRTlCUTBnc1RVRkJUeXhEUVVGRExFZEJRVWRFTEVWQlFWVXNSVUZEZGtJc1NVRkJTeXhWUVVOSUxFMUJRVThzUTBGQlF5eEpRVUZMTEVsQlFVc3NTVUZCU3l4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eExRVUZOTEV0QlFVMHNTVUZCU1N4RlFVTjJSU3hKUVVGTExGVkJRMGdzVFVGQlR5eERRVUZETEV0QlFVMHNTMEZCVFN4TFFVRk5MRXRCUVUwc1MwRkJUU3hMUVVGTkxFdEJRVTBzUzBGQlRTeExRVUZOTEV0QlFVMHNTMEZCVFN4SlFVRkpMRVZCUTJoR0xGRkJRMFVzVDBGQlR5eEpRVU5ZTEVOQlEwWXNRMEZGVHl4SlFVRk5TeXhIUVVGbExFTkJRekZDTEZOQlEwRXNWVUZEUVN4WlFVTkJMRmRCUTBFc1UwRkRRU3hYUVVOQkxGRkJRMFlzUlVGRllVTXNSMEZCWjBJc1EwRkJReXhOUVVGUExFMUJRVThzVFVGQlR5eE5RVUZQTEUxQlFVOHNUVUZCVHl4TFFVRkxMRVZCUldoRlF5eEhRVUZwUWl4RFFVRkRMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVkQlFVY3NSVUZGZWtRc1UwRkJVME1zUjBGQlUwb3NSVUZCVVN4RFFVTXZRaXhQUVVGUlFTeEZRVUZSTEVOQlEyUXNTVUZCU3l4VFFVTklMRTFCUVU4c1EwRkJReXhIUVVGSFJ5eEZRVUZqTEVWQlF6TkNMRWxCUVVzc1VVRkRTQ3hOUVVGUExFTkJRVU1zUjBGQlIwUXNSVUZCWVN4RlFVTXhRaXhKUVVGTExFOUJRMGdzVFVGQlR5eERRVUZETEVkQlFVZEVMRVZCUVZrc1JVRkRla0lzU1VGQlN5eFZRVU5JTEUxQlFVOHNRMEZCUXl4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEhRVUZITEVWQlF6TkRMRkZCUTBVc1QwRkJUeXhKUVVOWUxFTkJRMFlzUTBGRlR5eEpRVUZOU1N4SFFVRlpMRU5CUVVNc1MwRkJUU3hKUVVGSkxFVkJSWFpDUXl4SFFVRlhMRU5CUVVNc1owSkJRV2xDTEdGQlFXRXNSVUZGTVVORExFZEJRVmtzUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZGZGtKRExFZEJRV0VzUTBGQlF5eEpRVUZMTEVkQlFVY3NSVUZGTlVJc1UwRkJVME1zUjBGQlMxUXNSVUZCVVN4RFFVTXpRaXhQUVVGUlFTeEZRVUZSTEVOQlEyUXNTVUZCU3l4VFFVTklMRTFCUVU4c1EwRkJReXhIUVVGSFVTeEZRVUZWTEVWQlEzWkNMRWxCUVVzc1VVRkRTQ3hOUVVGUExFTkJRVU1zUjBGQlIwUXNSVUZCVXl4RlFVTjBRaXhKUVVGTExFOUJRMGdzVFVGQlR5eERRVUZETEVkQlFVZEVMRVZCUVZFc1JVRkRja0lzVVVGRFJTeFBRVUZQTEVsQlExZ3NRMEZEUml4RFFVVlBMRk5CUVZOSkxFZEJRVzlDUXl4RlFVRkpMRU5CUTNSRExFOUJRVTlPTEVkQlFWVk5MRVZCUVVjc1MwRkJUeXhIUVVGTExFVkJRVWtzUTBGQlF5eERRVU4yUXl4RFFVVlBMRk5CUVZORExFZEJRVzFDUkN4RlFVRkpXQ3hGUVVGUkxFTkJRemRETEU5QlFVOUpMRWRCUVZOS0xFTkJRVTBzUlVGQlJWY3NSVUZCUnl4UlFVRlZMRU5CUVVNc1EwRkRlRU1zUTBGRlR5eFRRVUZUUlN4SFFVRnBRa1lzUlVGQlNWZ3NSVUZCVVN4RFFVTXpReXhQUVVGUFJDeEhRVUZQUXl4RFFVRk5MRVZCUVVWWExFVkJRVWNzVFVGQlVTeERRVUZETEVOQlEzQkRMRU5CUlU4c1UwRkJVMGNzUjBGQlpVZ3NSVUZCU1Znc1JVRkJVU3hEUVVONlF5eFBRVUZQVXl4SFFVRkxWQ3hEUVVGTkxFVkJRVVZYTEVWQlFVY3NTMEZCVHl4RlFVRkpMRVZCUVVrc1EwRkJReXhEUVVONlF5eERRVVZQTEZOQlFWTkpMRWRCUVcxQ1F5eEZRVUZOUXl4RlFVRlBReXhGUVVGVkxGTkJRVlZETEVWQlFWTXNSMEZCVHl4RFFVTnNSaXhKUVVGTlF5eEZRVUZSTEVOQlExb3NUVUZCVHl4RFFVRkRMRTlCUVZFc1MwRkJTeXhGUVVOeVFpeFRRVUZWTEVOQlFVTXNWVUZCVnl4TlFVRk5MRVZCUXpWQ0xFOUJRVkVzUTBGQlF5eFJRVUZUTEV0QlFVc3NSVUZEZGtJc1RVRkJUeXhEUVVGRExFOUJRVkVzUzBGQlN5eEZRVU55UWl4TFFVRk5MRU5CUVVNc1RVRkJUeXhOUVVGUExFMUJRVTBzUlVGRE0wSXNUVUZCVHl4RFFVRkRMRTlCUVZFc1MwRkJTeXhGUVVOeVFpeFJRVUZUTEVOQlFVTXNVMEZCVlN4TlFVRk5MRVZCUXpGQ0xGRkJRVk1zUTBGQlF5eFRRVUZWTEUxQlFVMHNRMEZETlVJc1JVRkZUVU1zUlVGQlZ5eERRVUZETEZGQlFWTXNWVUZCVnl4VFFVRlRMRVZCUVVVc1VVRkJVVXdzUTBGQlNTeEpRVUZOTEVkQlJXNUZMRWRCUVVsRkxFbEJRVmtzVVVGQlZVY3NSVUZCVlN4RFFVTnNReXhKUVVGTlF5eEZRVUZSVGl4SlFVRlRMRTlCUTNaQ0xFOUJRVkZETEVWQlFVOHNRMEZEWWl4SlFVRkxMRWRCUTBnc1QwRkJUMHNzUlVGQlVTeFhRVUZoTEZGQlFWRkdMRVZCUVUxS0xFTkJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZEY0VRc1NVRkJTeXhIUVVOSUxFOUJRVTlOTEVWQlFWRXNXVUZCWXl4UlFVRlJSaXhGUVVGTlNpeERRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUTNKRUxFbEJRVXNzUjBGRFNDeFBRVUZQVFN4RlFVRlJMRkZCUVZVc1VVRkJVVVlzUlVGQlRVb3NRMEZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVOcVJDeFJRVU5HTEVOQlEwWXNRMEZGUVN4SlFVRk5UeXhGUVVGWExFOUJRVThzUjBGQlIwNHNSVUZCVHl4RlFVRkZMRWRCUVV0QkxFVkJRVkVzUlVGREwwTlBMRVZCUVZjc1MwRkJTeXhKUVVGSlVDeERRVUZMTEVWQlEzcENVU3hGUVVGWFJDeEpRVUZoTEVWQlEzaENSU3hGUVVGWFRpeEZRVUZOU2l4RFFVRkpMRVZCUTNKQ1Z5eEZRVUZWVWl4RlFVTk9UU3hGUVVORlF5eEZRVUZUTEVOQlFVTXNSVUZEVmtFc1JVRkJVeXhEUVVGRExFZEJRVXRCTEVWQlFWTXNRMEZCUXl4RlFVTXpRa1FzUlVGRFFVd3NSVUZCVFVvc1EwRkJTU3hGUVVGRkxFTkJRVU1zUlVGRFlrRXNSVUZEVGl4UFFVRlBUeXhGUVVGWExFZEJRVWRETEVOQlFWRXNTVUZCU1Vjc1EwRkJUeXhQUVVGVExFMUJRVTFJTEVOQlFWRXNTVUZCU1Vjc1EwRkJUeXhGUVVNMVJTeERRMnBMUVN4VFFVRlRReXhIUVVGblFrTXNSVUZCVVVNc1JVRkJaU3hEUVVNNVF5eEpRVUZKUXl4RlFVRkpMRWRCUTFJc1VVRkJWME1zUzBGQlUwZ3NSVUZEWkVjc1JVRkJUU3hSUVVOU1JDeEhRVUZMUXl4RlFVRk5MRWxCUlZoRUxFZEJRVXRFTEVWQlFXTkZMRVZCUVUwc1IwRkJSeXhGUVVkb1F5eFBRVUZQUkN4RFFVTlVMRU5CUlVFc1NVRkJUVVVzUjBGQmVVSXNRMEZETjBJc1JVRkJWME1zUjBGRFdDeEhRVUZaUXl4SFFVTmFMRWxCUVdGRExFZEJRMklzUzBGQlkwTXNSMEZEWkN4RlFVRlhReXhIUVVOWUxFZEJRVmxETEVkQlExb3NTVUZCWVVNc1IwRkRZaXhMUVVGalF5eEhRVU5rTEVWQlFWZERMRWRCUTFnc1IwRkJXVU1zUjBGRFdpeEpRVUZoUXl4SFFVTmlMRXRCUVdORExFZEJRMlFzUlVGQlYwTXNSMEZEV0N4SFFVRlpReXhIUVVOYUxFbEJRV0ZETEVkQlEySXNTMEZCWTBNc1IwRkRaQ3hGUVVGWFF5eEhRVU5ZTEVkQlFWbERMRWRCUTFvc1NVRkJZVU1zUjBGRFlpeExRVUZqUXl4RlFVTm9RaXhGUVUxeFFrTXNSMEZCY2tJc1RVRkJjVUpETEVOQlFWVXNRMEZETjBJc1QwRkJUeXhQUVVGUFF5eEZRVUZSUXl4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVNdlFpeFBRVUZQTEVsQlFVbEdMRVZCUVZWRExFVkJRVkZETEVOQlFVa3NRMEZEYmtNc1EwRkZRU3hQUVVGUExGbEJRVmxETEVWQlFVc3NRMEZEZEVJc1NVRkJTVU1zUlVGQlZTeExRVU5hUXl4RlFVRmpMRWRCUTJSRExFVkJRVmtzUjBGRFVtaERMRVZCUVZNc1EwRkJReXhGUVVOb1FpeFJRVUZUYVVNc1JVRkJTU3hGUVVGSFFTeEZRVUZKU2l4RlFVRkpMRTlCUVZGSkxFbEJRVXNzUTBGRGJrTXNTVUZCVFVNc1JVRkJTVXdzUlVGQlNTeFBRVUZQU1N4RFFVRkRMRVZCUTJ4Q1F5eEpRVUZOTEV0QlEwcElMRVZCUVZrc1QwRkJVeXhIUVVOMlFpOUNMRVZCUVU4c1MwRkJTeXhEUVVGRkxGRkJRVk5uUXl4RlFVRlhMRWxCUVV0RUxFTkJRVmtzUTBGQlF5eEZRVVYwUkVRc1JVRkJWU3hMUVVOV1F5eEZRVUZqTEVkQlEyUkRMRVZCUVZrc1EwRkJRMEVzUjBGRFNrRXNSMEZGUVVVc1NVRkJUVW9zUlVGRVprTXNSMEZCWlVjc1IwRkpXRWdzUlVGQldTeFBRVUZUTEVkQlEzWkNMMElzUlVGQlR5eExRVUZMTEVOQlFVVXNVVUZCVXl4SFFVRlBMRWxCUVVzclFpeERRVUZaTEVOQlFVTXNSVUZGYkVSQkxFVkJRV05ITEVWQlEyUktMRVZCUVZWSkxFVkJSV1FzUTBGRlFTeFBRVUZKU0N4RlFVRlpMRTlCUVZNc1IwRkRka0l2UWl4RlFVRlBMRXRCUVVzc1EwRkJSU3hSUVVGVFowTXNSVUZCVnl4SlFVRkxSQ3hEUVVGWkxFTkJRVU1zUlVGSEwwTXZRaXhEUVVOVUxFTkJSVUVzVDBGQlR5eDFRa0ZCZFVKSExFVkJRVThzUTBGRGJrTXNUMEZCVDBNc1IwRkJkVUpFTEVOQlFVc3NRMEZEY2tNc1EwRkZRU3haUVVGWmQwSXNSVUZCVVZFc1JVRkJXU3hEUVVNNVFpeExRVUZMTEV0QlFVOUJMRVZCUTFvc1MwRkJTeXhKUVVGTlVpeEZRVU5ZTEV0QlFVc3NWVUZCV1N4SlFVTnVRaXhEUVVWQkxIZENRVUYzUWxNc1JVRkJTVklzUlVGQlRTeERRVU5vUXl4UFFVRkpMRXRCUVVzc1dVRkJZeXhQUVVOeVFpeExRVUZMTEZWQlFWa3NTMEZCU3l4SlFVRkpMR3RDUVVGclFpeEhRVVZ1UXl4TFFVRkxMRlZCUVZVc1dVRkJXVkVzUlVGQlNVTXNTVUZCUVN4SFFVRkxMRXRCUVVzc1RVRkJVMVFzUlVGQlRTeEZRVU42UkN4UFFVRlBMRU5CUTI1Q0xFTkJSVUVzWlVGQlpWRXNSVUZCU1ZJc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRk5VSXNUMEZFVnl4TFFVRkxMRWxCUVVrc1dVRkJXVkVzUlVGQlNVTXNTVUZCUVN4SFFVRkxMRXRCUVVzc1RVRkJVMVFzUlVGQlRTeEZRVU51UkN4UFFVRlBMRU5CUTI1Q0xFTkJSVUVzYjBKQlFXOUNVU3hGUVVGSlVpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVVnFReXhQUVVSWExFdEJRVXNzU1VGQlNTeFpRVUZaVVN4RlFVRkpReXhKUVVGQkxFZEJRVXNzUzBGQlN5eE5RVUZUVkN4RlFVRk5MRVZCUTI1RUxHTkJRV01zUTBGRE1VSXNRMEZGUVN4blFrRkJaMEpSTEVWQlFVbFNMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJSVGRDTEU5QlJGY3NTMEZCU3l4SlFVRkpMRmxCUVZsUkxFVkJRVWxETEVsQlFVRXNSMEZCU3l4TFFVRkxMRTFCUVZOVUxFVkJRVTBzUlVGRGJrUXNaMEpCUVdkQ0xFTkJRelZDTEVOQlJVRXNTVUZCU1ZVc1JVRkJSME1zUlVGQlNTeEZRVUZITEVOQlJWb3NSMEZCU1N4TFFVRkxMRXRCUVVzc1dVRkRXaXhQUVVGUFF5eEhRVUZUUml4RlFVRkhReXhEUVVGRExFVkJSM1JDTEVsQlFVMVlMRVZCUVU5VExFVkJRVUVzUjBGQlN5eExRVUZMTEUxQlJYWkNMRTlCUVVsRkxFVkJRVWtzU1VGRFRsZ3NSVUZCU3l4TlFVRlJWeXhIUVVkU0xFdEJRVXNzU1VGQlNTeG5Ra0ZCWjBKWUxFTkJRVWtzUlVGQlJTeFBRVUZQVlN4RFFVRkRMRU5CUTJoRUxFTkJSVUVzZVVKQlFYbENSaXhGUVVGSlVDeEZRVUZMTEVOQlEyaERMRWxCUVUxWkxFVkJRV1VzUzBGQlN5eEpRVUZKTEZsQlFWa3NTVUZCVFN4TFFVTTVRME1zUlVGQmRVSXNTMEZCU3l4SlFVRkpMR2RDUVVGclFpeExRVUZMTEVsQlFVa3NhVUpCUVcxQ0xGVkJRemxGUXl4RlFVRlRMRU5CUVVObUxFVkJRVTFuUWl4SlFVRlpMRXRCUVVzc1NVRkJTU3hSUVVGUlVpeEZRVUZKVWl4RlFVRk5aMElzUTBGQlR5eEZRVU01UkVNc1JVRkJaMEpxUWl4SFFVTldVU3hGUVVGSExHVkJRV2xDUVN4RlFVRkhMRk5CUVZjc1IwRkJTMUlzUlVGQlN5eFBRVU4yUXl4SlFVZEdVU3hGUVVGSExGRkJRVlZCTEVWQlFVY3NTMEZCU3l4aFFVRmhRU3hGUVVGSExFZEJRVWxTTEVWQlFVc3NUVUZCVFN4RlFVRkpMRWRCUldwRmEwSXNSVUZCVnl4SlFVTlVUQ3hGUVVOWlRTeEhRVUZ2UWxnc1EwRkJSU3hGUVVNNVFrOHNSVUZCVHl4RFFVRkZMRXRCUVUwc1ZVRkJWeXhWUVVGWExFdEJRVTBzUlVGQlJ5eFhRVUZYTEVWQlF5OUVTeXhGUVVGUkxFTkJRVU5ETEVWQlFWRkRMRWxCUTJaVUxFVkJRMWxWTEVkQlFXbENaaXhGUVVGSllTeERRVUZOTEVWQlEyNURUaXhGUVVGUFR5eEZRVUZoTEVOQlFVVXNUVUZCVDBRc1EwRkJUeXhGUVVGSkxFTkJRVVVzVFVGQlQwRXNSVUZCVVN4SlFVRkxMRk5CUVZVc1JVRkJSeXhQUVVGUExFVkJRM2hHUnl4RlFVRlZMRU5CUVVOSUxFVkJRVkZETEVsQlEycENWQ3hGUVVOWldTeEhRVUZ0UW1wQ0xFVkJRVWxoTEVOQlFVMHNSVUZEY2tOT0xFVkJRMFZQTEVWQlFXRXNRMEZCUlN4UlFVRlRSQ3hEUVVGUExFVkJRVWtzUTBGQlJTeFJRVUZUUVN4RlFVRlJMRTFCUVU4c1QwRkJVU3hKUVVGTExGTkJRVlVzUlVGRGNFWXNVMEZEUml4RlFVTk9TeXhGUVVGamJrUXNSMEZCVlN4RFFVTjBRaXhKUVVGTlowTXNSVUZCWVZRc1JVRkJWU3gxUWtGQmRVSjJRaXhEUVVGTExFVkJRM3BFTEU5QlFVbG5ReXhGUVVOTExFdEJRVXNzZDBKQlFYZENReXhGUVVGSlJDeERRVUZWTEVWQlJUTkRhRU1zUTBGRldDeEZRVU5CYjBRc1JVRkJUMDRzUjBGRFRGSXNSVUZCZFVKbExFZEJRV1Z3UWl4RlFVRkpZU3hEUVVGTkxFVkJRVWxPTEVWQlFVOHNRMEZCUlN4SlFVRkxUU3hEUVVGUExFVkJRVWNzUzBGQlN5eEZRVU51Um1oRUxFVkJRV2xDUlN4SFFVRlZMRU5CUlhwQ0xFOUJRVkZCTEVWQlFVOHNRMEZGWWl4SlFVRkxMRWxCUTBnc1QwRkJUeXhMUVVGTExFbEJRVWxwUXl4RlFVRkhMRmRCUVZjc1JVRkRhRU1zU1VGQlN5eEpRVVZNTEVsQlFVc3NUVUZEU0N4UFFVRlBMRXRCUVVzc1NVRkJTVUVzUlVGQlJ5eFpRVUZoTEVOQlFVTXNSVUZGYmtNc1NVRkJTeXhKUVVOSUxFOUJRVThzUzBGQlN5eEpRVUZKUVN4RlFVRkhMRTFCUVUwc1JVRkRNMElzU1VGQlN5eExRVU5JTEU5QlFVOHNTMEZCU3l4SlFVRkpRU3hGUVVGSExFOUJRVkVzUTBGQlF5eEZRVVU1UWl4SlFVRkxMRXRCUTBnc1QwRkJUeXhMUVVGTExFbEJRVWtzUzBGQlN5eE5RVUZOUVN4RlFVRkhMRmxCUVdNc1JVRkJSU3hGUVVGSExFTkJRVU1zUlVGRGNFUXNTVUZCU3l4TlFVTklMRTlCUVU4c1MwRkJTeXhKUVVGSkxFdEJRVXNzVFVGQlRVRXNSVUZCUnl4WlFVRmpMRWRCUVVjc1EwRkJReXhGUVVWc1JDeEpRVUZMTEVsQlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzVFVGQlRTeEZRVU16UWl4SlFVRkxMRXRCUTBnc1QwRkJUeXhMUVVGTExFbEJRVWxCTEVWQlFVY3NUMEZCVVN4RFFVRkRMRVZCUlRsQ0xFbEJRVXNzU1VGRFNDeFBRVUZQTEV0QlFVc3NTVUZCU1VFc1JVRkJSeXhMUVVGUExFdEJRVThzUlVGQlNTeEhRVUZMUVN4RlFVRkhMRXRCUVU4c1JVRkJSU3hGUVVONFJDeEpRVUZMTEV0QlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzUzBGQlR5eExRVUZQTEVWQlFVa3NSMEZCUzBFc1JVRkJSeXhMUVVGUExFZEJRVWtzUTBGQlF5eEZRVU16UkN4SlFVRkxMRWxCUTBnc1QwRkJUeXhMUVVGTExFbEJRVWxCTEVWQlFVY3NTVUZCU1N4RlFVTjZRaXhKUVVGTExFdEJRMGdzVDBGQlR5eExRVUZMTEVsQlFVbEJMRVZCUVVjc1MwRkJUU3hEUVVGRExFVkJSVFZDTEVsQlFVc3NTVUZGU0N4UFFVRlBVeXhGUVVGaExFTkJRVVVzVDBGQlVTeFRRVUZWTEU5QlFWRXNTMEZCU3l4TFFVRkxMRTFCUVU4c1EwRkJReXhGUVVOd1JTeEpRVUZMTEV0QlJVZ3NUMEZCVDBFc1JVRkJZU3hEUVVGRkxFOUJRVkVzVVVGQlV5eFBRVUZSTEV0QlFVc3NTMEZCU3l4TlFVRlBMRU5CUVVNc1JVRkRia1VzU1VGQlN5eE5RVVZJTEU5QlFVOUJMRVZCUVdFc1EwRkJSU3hQUVVGUkxGTkJRVlVzVDBGQlVTeExRVUZMTEV0QlFVc3NUVUZCVHl4RFFVRkRMRVZCUTNCRkxFbEJRVXNzVDBGRlNDeFBRVUZQVkN4RlFVRkhMRXRCUVVzc1YwRkJWMEVzUlVGQlJ5eEhRVUZKTEVOQlFVVXNUMEZCVVN4UlFVRlRMRTlCUVZFc1MwRkJTeXhKUVVGSkxFMUJRVThzUTBGQlF5eEZRVU12UlN4SlFVRkxMRkZCUlVnc1QwRkJUMEVzUlVGQlJ5eExRVUZMTEZkQlFWZEJMRVZCUVVjc1IwRkJTU3hEUVVGRkxFOUJRVkVzVDBGQlVTeFBRVUZSTEV0QlFVc3NTVUZCU1N4TlFVRlBMRU5CUVVNc1JVRkZPVVVzU1VGQlN5eEpRVVZJTEU5QlFVOUJMRVZCUVVjc1UwRkZXaXhKUVVGTExFbEJRMGdzVDBGQlQxVXNSVUZCVXl4RlFVVnNRaXhKUVVGTExFbEJRMGdzVDBGQlQwb3NSVUZCZFVKRExFVkJRVThzUTBGQlJTeEpRVUZMTEZOQlFWVXNSVUZCUnl4TFFVRkxMRVZCUVVrc1MwRkJTeXhKUVVGSlVDeEZRVUZITEVkQlFVY3NSVUZEYmtZc1NVRkJTeXhMUVVOSUxFOUJRVTlOTEVWQlFYVkNReXhGUVVGUExFTkJRVVVzU1VGQlN5eFRRVUZWTEVWQlFVY3NTMEZCU3l4RlFVRkpMRXRCUVVzc1NVRkJTVkFzUlVGQlJ5eEpRVUZMTEVOQlFVTXNSVUZGZEVZc1NVRkJTeXhKUVVWSUxFOUJRVThzUzBGQlN5eEpRVUZKUVN4RlFVRkhMRTlCUVU4c1JVRkROVUlzU1VGQlN5eE5RVVZJTEU5QlFVOW5RaXhGUVVGUkxGRkJRVk1zUlVGQlNTeEZRVU01UWl4SlFVRkxMRTlCUlVnc1QwRkJUMEVzUlVGQlVTeFBRVUZSTEVWQlFVa3NSVUZETjBJc1NVRkJTeXhSUVVWSUxFOUJRVTlCTEVWQlFWRXNVMEZCVlN4RlFVRkpMRVZCUlM5Q0xFbEJRVXNzU1VGRlNDeFBRVUZQTEV0QlFVc3NTVUZCU1doQ0xFVkJRVWNzVDBGQlR5eEZRVU0xUWl4SlFVRkxMRTFCUlVnc1QwRkJUMmRDTEVWQlFWRXNVVUZCVXl4RlFVRkxMRVZCUXk5Q0xFbEJRVXNzVDBGRlNDeFBRVUZQUVN4RlFVRlJMRTlCUVZFc1JVRkJTeXhGUVVNNVFpeEpRVUZMTEZGQlJVZ3NUMEZCVDBFc1JVRkJVU3hUUVVGVkxFVkJRVXNzUlVGRmFFTXNTVUZCU3l4SlFVVklMRTlCUVU5V0xFVkJRMGhETEVWQlFVOHNRMEZCUlN4TlFVRlBMRlZCUVZjc1NVRkJTeXhUUVVGVkxFVkJRVWNzVDBGQlR5eEZRVU53UkN4TFFVRkxMRWxCUVVsUUxFVkJRVWNzUzBGQlN5eEZRVU4yUWl4SlFVRkxMRXRCUlVnc1QwRkJUMDBzUlVGRFNFTXNSVUZCVHl4RFFVRkZMRTFCUVU4c1ZVRkJWeXhKUVVGTExGTkJRVlVzUlVGQlJ5eFBRVUZQTEVWQlEzQkVMRXRCUVVzc1NVRkJTVkFzUlVGQlJ5eE5RVUZQTEVOQlFVTXNSVUZETVVJc1NVRkJTeXhOUVVWSUxFOUJRVTlaTEVWQlFVMHNVVUZCVXl4RlFVRkpMRVZCUXpWQ0xFbEJRVXNzVDBGRlNDeFBRVUZQUVN4RlFVRk5MRTlCUVZFc1JVRkJTU3hGUVVNelFpeEpRVUZMTEZGQlJVZ3NUMEZCVDBFc1JVRkJUU3hUUVVGVkxFVkJRVWtzUlVGRk4wSXNTVUZCU3l4SlFVVklMRTlCUVU5T0xFVkJRMGhETEVWQlFVOHNRMEZCUlN4TlFVRlBMRk5CUVZVc1JVRkJSeXhQUVVGUExFVkJRM0JETEV0QlFVc3NTVUZCU1ZBc1JVRkJSeXhMUVVGTExFVkJRM1pDTEVsQlFVc3NTMEZGU0N4UFFVRlBUU3hGUVVOSVF5eEZRVUZQTEVOQlFVVXNUVUZCVHl4VFFVRlZMRVZCUVVjc1QwRkJUeXhGUVVOd1F5eExRVUZMTEVsQlFVbFFMRVZCUVVjc1RVRkJUeXhEUVVGRExFVkJRekZDTEVsQlFVc3NUVUZGU0N4UFFVRlBXU3hGUVVGTkxGRkJRVk1zUlVGQlN5eEZRVU0zUWl4SlFVRkxMRTlCUlVnc1QwRkJUMEVzUlVGQlRTeFBRVUZSTEVWQlFVc3NSVUZETlVJc1NVRkJTeXhSUVVWSUxFOUJRVTlCTEVWQlFVMHNVMEZCVlN4RlFVRkxMRVZCUlRsQ0xFbEJRVXNzU1VGRlNDeFBRVUZQVGl4RlFVRjFRa01zUlVGQlR5eERRVUZGTEV0QlFVMHNVMEZCVlN4RlFVRkhMRTFCUVUwc1JVRkJTU3hMUVVGTExFbEJRVWxRTEVWQlFVY3NTVUZCU1N4RlFVTjBSaXhKUVVGTExFdEJSVWdzVDBGQlQwMHNSVUZEU0VNc1JVRkJUeXhEUVVGRkxFdEJRVTBzVTBGQlZTeEZRVUZITEUxQlFVMHNSVUZEYkVNc1MwRkJTeXhKUVVGSlVDeEZRVUZITEV0QlFVc3NVMEZCVXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGSExFTkJRVU1zUlVGRE9VTXNTVUZCU3l4UFFVVklMRTlCUVU5TkxFVkJRMGhETEVWQlFVOHNRMEZCUlN4TFFVRk5MRk5CUVZVc1JVRkJSeXhOUVVGTkxFVkJRMnhETEV0QlFVc3NTVUZCU1ZBc1JVRkJSeXhMUVVGTkxFTkJRVU1zUlVGRGVrSXNTVUZCU3l4VFFVVklMRTlCUVU5TkxFVkJRMGhETEVWQlFVOHNRMEZCUlN4TFFVRk5MRk5CUVZVc1JVRkJSeXhOUVVGTkxFVkJRMnhETEV0QlFVc3NTVUZCU1ZBc1JVRkJSeXhMUVVGTkxFTkJRVU1zUlVGRmVrSXNTVUZCU3l4SlFVVklMRTlCUVU5dFFpeEZRVUZKTEU5QlFVOHNSVUZEY0VJc1NVRkJTeXhMUVVWSUxFOUJRVTlCTEVWQlFVa3NUVUZCVFN4RlFVTnVRaXhKUVVGTExGRkJRMGdzVDBGQlQwRXNSVUZCU1N4UlFVRlJMRVZCUTNKQ0xFbEJRVXNzUzBGRFNDeFBRVUZQTEV0QlFVc3NTVUZCU1c1Q0xFVkJRVWNzVTBGQlV5eFRRVUZUTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVjc1EwRkJReXhGUVVOeVJDeEpRVUZMTEU5QlEwZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzVTBGQlZTeERRVUZETEVWQlEyaERMRWxCUVVzc1NVRkRTQ3hQUVVGUExFdEJRVXNzU1VGQlNVRXNSVUZCUnl4VlFVRlZMRVZCUXk5Q0xFbEJRVXNzUzBGRFNDeFBRVUZQTEV0QlFVc3NTVUZCU1VFc1JVRkJSeXhYUVVGWkxFTkJRVU1zUlVGRGJFTXNTVUZCU3l4SlFVTklMRTlCUVU4c1MwRkJTeXhKUVVGSlFTeEZRVUZITEU5QlFVOHNSVUZETlVJc1NVRkJTeXhOUVVOSUxFOUJRVThzUzBGQlN5eEpRVUZKUVN4RlFVRkhMRkZCUVZNc1EwRkJReXhGUVVNdlFpeEpRVUZMTEVsQlJVZ3NUMEZCVHl4TFFVRkxMRWxCUVVsQkxFVkJRVWNzVDBGQlR5eEZRVU0xUWl4SlFVRkxMRXRCUlVnc1QwRkJUeXhMUVVGTExFbEJRVWxCTEVWQlFVY3NVVUZCVXl4RFFVRkRMRVZCUXk5Q0xFbEJRVXNzU1VGRFNDeFBRVUZQTEV0QlFVc3NTVUZCU1N4TFFVRkxMRTFCUVUxQkxFVkJRVWNzUjBGQlN5eEhRVUZKTEVOQlFVTXNSVUZETVVNc1NVRkJTeXhKUVVOSUxFOUJRVThzUzBGQlN5eEpRVUZKUVN4RlFVRkhMRVZCUVVVc1JVRkRka0lzVVVGRFJTeFBRVUZQYTBJc1JVRkJWMjVFTEVOQlFVc3NRMEZETTBJc1EwRkRSaXhGUVVWR0xFOUJRVTlLTEVkQlFXZENNa0lzUlVGQlZTeFpRVUZaUnl4RFFVRkhMRVZCUVVjMVFpeERRVUZoTEVOQlEyeEZMRU5CUlVFc2VVSkJRWGxDZDBRc1JVRkJTelZDTEVWQlFVc3NRMEZEYWtNc1NVRkJUVFpDTEVWQlFXZENka1FzUjBGQlZTeERRVU0xUWl4UFFVRlJRU3hGUVVGTkxFTkJRVU1zUlVGQlJ5eERRVU5vUWl4SlFVRkxMRWxCUTBnc1RVRkJUeXhqUVVOVUxFbEJRVXNzU1VGRFNDeE5RVUZQTEZOQlExUXNTVUZCU3l4SlFVTklMRTFCUVU4c1UwRkRWQ3hKUVVGTExFbEJRMGdzVFVGQlR5eFBRVU5VTEVsQlFVc3NTVUZEU0N4TlFVRlBMRTFCUTFRc1NVRkJTeXhKUVVOSUxFMUJRVThzVDBGRFZDeEpRVUZMTEVsQlEwZ3NUVUZCVHl4UlFVTlVMRWxCUVVzc1NVRkRTQ3hOUVVGUExFOUJRMVFzVVVGRFJTeFBRVUZQTEVsQlExZ3NRMEZEUml4RlFVTkJSaXhGUVVGcFFqQkVMRWRCUVZsNFJDeEhRVUZWTEVOQlEzSkRMRWxCUVUxNVJDeEZRVUZUUml4RlFVRmhka1FzUTBGQlN5eEZRVU5xUXl4UFFVRkplVVFzUlVGRFN5eExRVUZMTEVsQlFVbEVMRVZCUVU4c1NVRkJTVU1zUTBGQlRTeEZRVUZIZWtRc1JVRkJUU3hOUVVGTkxFVkJSWHBEUVN4RFFVVllMRVZCUTBFd1JDeEZRVUZUYmtNc1JVRkJWU3haUVVGWlJ5eERRVUZITEVWQlEyeERhVU1zUlVGQllVUXNSVUZCVHl4UFFVTnNRaXhEUVVGRFJTeEZRVUZQTEVOQlFVVXNVVUZCUVVNc1JVRkJVeXhKUVVGQlF5eERRVUZKTEVsQlFVOUVMRVZCUVZWRUxFVkJRVkZCTEVWQlFVMHNUMEZCVDBVc1EwRkJSeXhGUVVOb1JTeERRVUZETEVOQlEwZ3NSVUZEUVVNc1JVRkJXVlFzUlVGQlNTeFJRVUZSTEVkQlFVZExMRVZCUVZjc1NVRkJTVW9zUTBGQldTeEZRVUZGTEU5QlFWRlRMRWRCUVUxQkxFTkJRVU1zUTBGQlF5eEZRVU14UlN4UFFVRlBjRVVzUjBGQlowSTRSQ3hGUVVGUk5VUXNSVUZCWTJsRkxFTkJRVk1zUTBGQlF5eERRVU42UkN4RFFVTkdMRVZEZGxsQkxFbEJRWEZDUlN4SFFVRnlRaXhMUVVFMlFpeERRVU16UWl4WlFVRlpReXhGUVVGUlF5eEZRVUZoTEVOQlF5OUNMRXRCUVVzc1QwRkJVMFFzUlVGRFpDeExRVUZMTEZsQlFXTkRMRU5CUTNKQ0xFTkJSVUVzVjBGQldTeERRVU5XTEU5QlFVa3NTMEZCU3l4WlFVTkJMRWRCUVVjc1MwRkJTeXhOUVVGTkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVkQlJXNURMRXRCUVVzc1RVRkZhRUlzUTBGRFJpeEZRMUpCTEVsQlFYRkNReXhIUVVGeVFpeExRVUV3UWl4RFFVMTRRaXhKUVVGSkxFMUJRVThzUTBGRFZDeE5RVUZOTEVsQlFVbERMRVZCUTFvc1EwRlBRU3hKUVVGSkxFMUJRVThzUTBGRFZDeE5RVUZOTEVsQlFVbEJMRVZCUTFvc1EwRkZRU3hKUVVGSkxGVkJRVmNzUTBGRFlpeFBRVUZQTEV0QlFVc3NTVUZEWkN4RFFVOUJMRWxCUVVrc1lVRkJZeXhEUVVOb1FpeE5RVUZOTEVsQlFVbEJMRVZCUTFvc1EwRlhRU3hYUVVGWFF5eEZRVUZKUXl4RlFVRk5MRU5CUTI1Q0xFMUJRVTBzU1VGQlNVWXNSVUZEV2l4RFFWVkJMR0ZCUVdGRExFVkJRVWxGTEVWQlFWRXNRMEZEZGtJc1RVRkJUU3hKUVVGSlNDeEZRVU5hTEVOQlVVRXNUMEZCVDBNc1JVRkJTU3hEUVVOVUxFMUJRVTBzU1VGQlNVUXNSVUZEV2l4RFFWRkJMRTlCUVU5SkxFVkJRVmNzUTBGRGFFSXNUVUZCVFN4SlFVRkpTaXhGUVVOYUxFTkJUMEVzU1VGQlNTeFRRVUZWTEVOQlExb3NUVUZCVFN4SlFVRkpRU3hGUVVOYUxFTkJRMFlzUlVOMlJrRXNTVUZCU1Vzc1IwRkJXU3hMUVUxTFF5eEhRVUZ5UWl4TlFVRnhRa01zVlVGQmJVSkRMRVZCUVVzc1EwRkxNME1zVjBGQlZ5eFZRVUZYTEVOQlEzQkNMRTlCUVVsSUxFdEJRV01zVDBGRGFFSkJMRWRCUVZrc1NVRkJTVVVzUjBGRldFWXNSVUZEVkN4RFFVZEJMRWxCUVVrc1RVRkJUeXhEUVVOVUxFMUJRVThzVVVGRFZDeERRVWRCTEVsQlFVa3NUVUZCVHl4RFFVTlVMRTlCUVU4c1NVRkJTU3hMUVVGTExHVkJRV1VzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hSUVVOeVJDeERRVWRCTEVsQlFVa3NZVUZCWXl4RFFVTm9RaXhOUVVGUExFVkJRMVFzUTBGSFFTeFhRVUZYU1N4RlFVRkpMRU5CUVVVc1QwRkJRVU1zUlVGQlVTeFBRVUZCUXl4RFFVRlBMRVZCUVVjc1EwRkRha01zVDBGQlQwTXNSMEZCWTBnc1JVRkJTVU1zUlVGQlVVTXNRMEZCVFN4RFFVTjZReXhEUVVkQkxHRkJRV0ZHTEVWQlFVbERMRVZCUVZFc1EwRkRka0lzVDBGQlQwY3NSMEZCWVN4TFFVRkxMRTlCUVU5S0xFTkJRVVVzUlVGQlIwTXNRMEZCVFN4RFFVTTNReXhEUVVkQkxFOUJRVTlFTEVWQlFVa3NRMEZEVkN4TlFVRlBMRU5CUVVNc1NVRkJTU3hMUVVGTFFTeERRVUZGTEVWQlFVVXNhMEpCUVd0Q0xFTkJRM3BETEVOQlIwRXNUMEZCVDBzc1JVRkJWeXhEUVVOb1FpeFBRVUZQUVN4RlFVRlZMRTlCUVZNc1VVRkROVUlzUTBGSFFTeEpRVUZKTEZOQlFWVXNRMEZEV2l4TlFVRlBMRVZCUTFRc1EwRkRSaXhGUTNwRVFTeEpRVUZKUXl4SFFVRlhMRU5CUVVNc1JVRkRhRUlzVTBGQlUwTXNSMEZCVVVNc1JVRkJUU3hEUVVOeVFpeFBRVUZMUml4SFFVRlRSU3hEUVVGSkxFbEJRMmhDUml4SFFVRlRSU3hEUVVGSkxFVkJRVWtzU1VGQlNTeExRVUZMTEdWQlFXVXNVVUZCVXl4RFFVTm9SQ3hQUVVGUkxFZEJRMUlzVTBGQlZVRXNSVUZEVml4TFFVRk5MRlZCUTA0c1RVRkJUeXhWUVVOUUxFbEJRVXNzVlVGRFRDeExRVUZOTEZWQlEwNHNUMEZCVVN4VlFVTlNMRTlCUVZFc1ZVRkRVaXhKUVVGTExFOUJRMUFzUTBGQlF5eEhRVVZKUml4SFFVRlRSU3hEUVVGSkxFTkJRM1JDTEVOQlJVRXNTVUZCVFVNc1IwRkJXU3hEUVVOb1FpeExRVUZOTEVWQlEwNHNUVUZCVHl4RlFVTlFMRWxCUVVzc1JVRkRUQ3hKUVVGTExFVkJRMHdzUzBGQlRTeEZRVU5PTEU5QlFWRXNSVUZEVWl4UFFVRlJMRU5CUTFZc1JVRkZRU3hUUVVGVFF5eEhRVUZaUXl4RlFVRkxReXhGUVVGTkxFTkJRemxDTEVsQlFVMURMRVZCUVZsR0xFVkJRVWtzVDBGQlQwTXNRMEZCU1N4RlFVRkZMRkZCUVZFc1ZVRkJWeXhGUVVGRkxFVkJRM1JFUlN4RlFVRlRMR3RFUVVGclJDeExRVUZMUkN4RFFVRlRMRVZCUTNwRkxFTkJRVU1zUTBGQlJVVXNSVUZCVVVNc1JVRkJUVU1zUlVGQlQwTXNSVUZCVTBNc1JVRkJUME1zUlVGQlUwTXNRMEZCVHl4RlFVRkpVQ3hGUVVNNVJDeE5RVUZQTEVOQlFVTkhMRVZCUVU5R0xFVkJRVkZETEVWQlFVMUZMRVZCUVZORExFVkJRVTlETEVWQlFWTkRMRU5CUVU4c1EwRkRMMFFzUTBGRlFTeFRRVUZUUXl4SFFVRlpXQ3hGUVVGTFF5eEZRVUZOTEVOQlF6bENMRWxCUVUxRExFVkJRVmxHTEVWQlFVa3NZMEZCWTBNc1EwRkJTU3hGUVVOc1ExY3NSVUZCVXl4RFFVRkRMRVZCUTJoQ0xGRkJRVk5ETEVWQlFVa3NSVUZCUjBFc1JVRkJTVmdzUlVGQlZTeFBRVUZSVnl4SlFVRkxMRU5CUTNwRExFZEJRVTBzUTBGQlJTeExRVUZCUXl4RlFVRk5MRTFCUVVGRExFTkJRVTBzUlVGQlNXSXNSVUZCVlZjc1EwRkJReXhGUVVNM1FrY3NSVUZCVFd4Q0xFZEJRVlZuUWl4RFFVRkpMRVZCUlhSQ1FTeEpRVUZUTEUxQlExaEdMRVZCUVU5SkxFTkJRVWNzUlVGQlNVUXNSVUZEU2tVc1JVRkJXVVFzUTBGQlJ5eEpRVU42UWtvc1JVRkJUMGtzUTBGQlJ5eEZRVUZKTEZOQlFWTkVMRVZCUVU4c1JVRkJSU3hGUVVWd1F5eERRVU5CTEU5QlFVOUlMRU5CUTFRc1EwRkZRU3hKUVVGSlRTeEhRVUZuUWl4RFFVRkRMRVZCUzBGRExFZEJRWEpDTEUxQlFYRkNReXhWUVVGcFFrTXNSVUZCU3l4RFFVdDZReXhQUVVGUExFOUJRVTlETEVWQlFVMHNRMEZEYkVJc1QwRkJTMG9zUjBGQlkwa3NRMEZCU1N4SlFVTnlRa29zUjBGQlkwa3NRMEZCU1N4RlFVRkpMRWxCUVVsR0xFVkJRVk5GTEVOQlFVa3NSMEZGYkVOS0xFZEJRV05KTEVOQlFVa3NRMEZETTBJc1EwRk5RU3hQUVVGUExGbEJRV0VzUTBGRGJFSktMRWRCUVdkQ0xFTkJRVU1zUlVGRGFrSjJRaXhIUVVGWExFTkJRVU1zUTBGRFpDeERRVlZCTEU5QlFVOHNhVUpCUVdsQ05FSXNSVUZCUnl4RFFVTjZRaXhQUVVGUExFdEJRVXNzV1VGQldVRXNRMEZCUXl4RFFVTXpRaXhEUVZWQkxFOUJRVThzV1VGQldURkNMRVZCUVUwc1EwRkRka0lzUjBGQlNTeERRVUZEUVN4RlFVTklMRTFCUVU4c1IwRkZWQ3hIUVVGSkxFTkJRMFlzVjBGQlNTeExRVUZMTEdWQlFXVXNVVUZCVXl4RFFVRkZMRk5CUVZWQkxFTkJRVXNzUTBGQlF5eEZRVUZGTEU5QlFVOHNSVUZEY2tRc1JVRkRWQ3hQUVVGVE1rSXNSVUZCUnl4RFFVTldMRTFCUVU4c1JVRkRWQ3hEUVVOR0xFTkJSVUVzV1VGQldVWXNSVUZCVFN4RFFVTm9RaXhOUVVGTkxFVkJSVTRzUzBGQlN5eFRRVUZYUVN4RlFVVm9RaXhMUVVGTExFMUJRVkZHTEVWQlFWTXNXVUZCV1VVc1EwRkJTU3hEUVVONFF5eERRVWRCTEVsQlFVa3NUVUZCVHl4RFFVTlVMRTFCUVU4c1RVRkRWQ3hEUVVkQkxFbEJRVWtzVFVGQlR5eERRVU5VTEU5QlFVOHNTMEZCU3l4UlFVTmtMRU5CUjBFc1NVRkJTU3hoUVVGakxFTkJRMmhDTEUxQlFVOHNSVUZEVkN4RFFVZEJMRmRCUVZkSExFVkJRVWtzUTBGQlJTeFBRVUZCUXl4RlFVRlJMRTlCUVVGRExFTkJRVThzUlVGQlJ5eERRVU5xUXl4UFFVRlBReXhIUVVGalNDeEZRVUZKUXl4RlFVRlJReXhGUVVGUkxFdEJRVXNzU1VGQlNTeERRVU53UkN4RFFVZEJMR0ZCUVdGR0xFVkJRVWxETEVWQlFWRXNRMEZEZGtJc1QwRkJUMGNzUjBGQllTeExRVUZMTEU5QlFVOUtMRU5CUVVVc1JVRkJSME1zUTBGQlRTeERRVU0zUXl4RFFVZEJMRTlCUVU5RUxFVkJRVWtzUTBGRFZDeEpRVUZOZUVJc1JVRkJUeXhKUVVGSkxFdEJRVXQzUWl4RFFVRkZMRVZCUlhoQ0xFZEJRVWtzVFVGQlRYaENMRU5CUVVrc1JVRkJSeXhOUVVGUExFdEJSWGhDTEVsQlFVMUVMRVZCUVUxS0xFZEJRVkVzUzBGQlN5eEpRVUZKTEVWQlEzcENMRU5CUVVOclF5eEZRVUZOUXl4RlFVRlBReXhGUVVGTFF5eEZRVUZSUXl4RlFVRk5ReXhGUVVGUlF5eERRVUZOTEVWQlFVbHdReXhGUVVGSkxHTkJRM1pFVnl4SFFVRlpXQ3hGUVVGTFF5eERRVUZKTEVWQlEzSkNSaXhIUVVGWlF5eEZRVUZMUXl4RFFVRkpMRVZCUlhKQ1owTXNTVUZCVnl4UFFVTmlTQ3hGUVVGUExFTkJRVU1zUzBGQlN5eEpRVUZKUVN4RFFVRkpMRVZCUVVrc1IwRk5NMElzU1VGQlRVOHNSVUZCVVVNc1IwRkJZU3hEUVVONlFpeExRVUZCVWl4RlFVTkJMRTFCUVVGRExFVkJRMEVzU1VGQlFVTXNSVUZEUVN4TFFVNXRRa1VzU1VGQlV5eEhRVUZMTEVWQlFVbEJMRVZCVDNKRExFOUJRVUZETEVWQlEwRXNUMEZCUVVNc1JVRkRRU3haUVVGaExFTkJRMllzUTBGQlF5eEZRVVZIUnl4RlFVRlBMRU5CUVVOMFF5eEZRVU5PZFVNc1JVRkJUMFFzUlVGQlR5eEpRVU53UWl4UFFVRkJRU3hIUVVGUlF5eEhRVUZSTEVWQlFVbEJMRVZCUVU4c1NVRkJUMEVzUjBGRE1VSklMRVZCUVZGRkxFbEJRVk1zUjBGQlN5eEpRVU5vUXl4RFFVZEJMRTlCUVU5RkxFVkJRVmNzUTBGRGFFSXNUMEZCVDBFc1JVRkJWU3hQUVVGVExGRkJRVlZCTEVWQlFWVXNUMEZCVXl4TFFVRkxMRWxCUXpsRUxFTkJSMEVzU1VGQlNTeFRRVUZWTEVOQlExb3NUMEZCVHl4TFFVRkxMRXRCUTJRc1EwRkRSaXhGUTNwTVFTeEpRVUZKUXl4SFFVRlpMRXRCVFV0RExFZEJRWEpDTEUxQlFYRkNReXhWUVVGM1FrTXNSVUZCU3l4RFFVdG9SQ3hYUVVGWExHRkJRV01zUTBGRGRrSXNUMEZCU1Vnc1MwRkJZeXhQUVVOb1FrRXNSMEZCV1N4SlFVRkpSU3hGUVVGblFpeERRVUZETEVkQlJUVkNSaXhGUVVOVUxFTkJUMEVzVDBGQlR5eFRRVUZUU1N4RlFVRlJMRU5CUTNSQ0xFOUJRVTlCTEVsQlFWY3NSVUZCU1VZc1JVRkJaMElzV1VGQll5eEpRVUZKUVN4RlFVRm5Ra1VzUTBGQlRTeERRVU5vUml4RFFWVkJMRTlCUVU4c1pVRkJaVU1zUlVGQlJ5eERRVU4yUWl4SFFVRkpRU3hGUVVGSExFTkJRMHdzU1VGQlRVTXNSVUZCU1VRc1JVRkJSU3hOUVVGTkxIVkRRVUYxUXl4RlFVTjZSQ3hIUVVGSlF5eEZRVU5HTEU5QlFVOHNTVUZCU1Vvc1JVRkJaMEpMTEVkQlFXRkVMRVZCUVVVc1EwRkJReXhGUVVGSFFTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUlhaRUxFTkJRMEVzVDBGQlR5eEpRVU5VTEVOQlJVRXNXVUZCV1VZc1JVRkJVU3hEUVVOc1FpeE5RVUZOTEVWQlJVNHNTMEZCU3l4TlFVRlJRU3hEUVVObUxFTkJSMEVzU1VGQlNTeE5RVUZQTEVOQlExUXNUVUZCVHl4UFFVTlVMRU5CUjBFc1NVRkJTU3hOUVVGUExFTkJRMVFzVDBGQlR5eExRVUZMTEZGQlFWVXNSVUZCU1N4TlFVRlJMRTFCUVUxSkxFZEJRV0VzUzBGQlN5eE5RVUZQTEZGQlFWRXNRMEZCUXl4RlFVTTFSU3hEUVVWQkxFbEJRVWtzVlVGQlZ5eERRVU5pTEU5QlFVa3NTMEZCU3l4UlFVRlZMRVZCUTFZc1ZVRkZRU3hWUVVGVlFTeEhRVUZoTEVOQlFVTXNTMEZCU3l4TlFVRlBMRkZCUVZFc1EwRkJReXhGUVVWNFJDeERRVWRCTEZsQlFXRXNRMEZEV0N4UFFVRlBMRXRCUVVzc1NVRkRaQ3hEUVVkQkxHRkJRV0ZETEVWQlFVbERMRVZCUVZFc1EwRkRka0lzVDBGQlQwWXNSMEZCWVN4TFFVRkxMRTFCUVU5RkxFTkJRVTBzUTBGRGVFTXNRMEZIUVN4SlFVRkpMR0ZCUVdNc1EwRkRhRUlzVFVGQlR5eEZRVU5VTEVOQlIwRXNVVUZCVXl4RFFVTlFMRTlCUVU4c1MwRkJTeXhMUVVOa0xFTkJSMEVzVDBGQlQwTXNSVUZCVnl4RFFVTm9RaXhQUVVGUFFTeEZRVUZWTEU5QlFWTXNVMEZCVjBFc1JVRkJWU3hSUVVGVkxFdEJRVXNzUzBGRGFFVXNRMEZIUVN4SlFVRkpMRk5CUVZVc1EwRkRXaXhOUVVGUExFVkJRMVFzUTBGRFJpeEZReTlHUVN4SlFVRnhRa01zUjBGQmNrSXNZMEZCZVVORExFVkJRVXNzUTBGRE5VTXNXVUZCV1VNc1JVRkJWU3hEUVVOd1FpeE5RVUZOTEVWQlJVNHNTMEZCU3l4VFFVRlhRU3hEUVVOc1FpeERRVWRCTEVsQlFVa3NUVUZCVHl4RFFVTlVMRTFCUVU4c1UwRkRWQ3hEUVVkQkxFbEJRVWtzVFVGQlR5eERRVU5VTEU5QlFVOHNTMEZCU3l4UlFVTmtMRU5CUjBFc1NVRkJTU3hoUVVGakxFTkJRMmhDTEUxQlFVOHNSVUZEVkN4RFFVZEJMRmxCUVdFc1EwRkRXQ3hQUVVGUExFbEJRMVFzUTBGSFFTeGpRVUZsTEVOQlEySXNUVUZCVHl4RlFVTlVMRU5CUjBFc1VVRkJVeXhEUVVOUUxFMUJRVThzU1VGRFZDeERRVWRCTEZGQlFWTXNRMEZEVUN4TlFVRlBMRVZCUTFRc1EwRkhRU3hKUVVGSkxGTkJRVlVzUTBGRFdpeE5RVUZQTEVWQlExUXNRMEZEUml4RlEzcERUeXhUUVVGVFF5eEhRVUZqUXl4RlFVRlBReXhGUVVGaExFTkJRMmhFTEVsQlFVbERMRVZCUTBvc1IwRkJTVU1zUlVGQldVZ3NRMEZCU3l4SFFVRkxRU3hKUVVGVkxFdEJRMnhETEU5QlFVOURMRVZCUTBZc1IwRkJTVVFzWVVGQmFVSkpMRWRCUXpGQ0xFOUJRVTlLTEVWQlEwWXNSMEZCU1Vzc1IwRkJVMHdzUTBGQlN5eEZRVUZITEVOQlF6RkNMRWxCUVUxTkxFVkJRVlZPTEVWQlFVMHNXVUZCV1N4RlFVTnNReXhQUVVGSlRTeEpRVUZaTEZOQlFWZEJMRWxCUVZrc1UwRkJhVUpNTEVWQlF5OURTeXhKUVVGWkxFOUJRVk5CTEVsQlFWa3NUVUZCWTBNc1IwRkJaMElzV1VGRE5VUkJMRWRCUVdkQ0xHVkJRV1ZFTEVOQlFVOHNSMEZCUzBVc1IwRkJVeXhQUVVGUFVpeERRVUZMTEVOQlF6bEZMRXRCUVU4c1VVRkJTVk1zUjBGQlUxUXNRMEZCU3l4RlFVTm9RazhzUjBGQlowSXNVMEZCVTFBc1EwRkJTeXhGUVVNMVFpeFBRVUZQUVN4SFFVRlZMRlZCUVZsQkxFVkJRVTBzVVVGQlZTeFBRVUZQUVN4RlFVRk5MRkZCUVZjc1UwRkhka1ZCTEVWQlJVRXNTVUZCU1ZVc1IwRkJXVllzUTBGQlN5eERRVVZvUXl4RFEzcENRU3hKUVVGSlZ5eEhRVUZOTEVsQlFVMHNTMEZCU3l4SlFVRkpMRVZCUTNaQ1F5eEhRVUZqTEZOQlEyUkRMRWRCUVdkQ0xFdEJRMmhDUXl4SFFVRjVRaXhMUVVONlFrTXNSMEZCZDBJc1MwRkRlRUpETEVkQlMyMUNReXhGUVVGeVFpeExRVUU0UWl4RFFVczFRaXhYUVVGWExFdEJRVTBzUTBGRFppeFBRVUZQVGl4RlFVTlVMRU5CVTBFc1YwRkJWeXhKUVVGSlR5eEZRVUZITEVOQlEyaENVQ3hIUVVGTlR5eERRVU5TTEVOQlQwRXNWMEZCVnl4WlFVRlpReXhGUVVGTkxFTkJRek5DVUN4SFFVRmpUeXhEUVVOb1FpeERRVTlCTEZkQlFWY3NZVUZCWXl4RFFVTjJRaXhQUVVGUFF5eEhRVUZqVWl4SFFVRmhVeXhIUVVGWExGRkJRVkVzUTBGRGRrUXNRMEZOUVN4WFFVRlhMR1ZCUVdkQ0xFTkJRM3BDTEU5QlFVOVNMRVZCUTFRc1EwRk5RU3hYUVVGWExHTkJRV05UTEVWQlFWRXNRMEZETDBKVUxFZEJRV2RDVXl4RFFVTnNRaXhEUVUxQkxGZEJRVmNzZDBKQlFYbENMRU5CUTJ4RExFOUJRVTlTTEVWQlExUXNRMEZOUVN4WFFVRlhMSFZDUVVGMVFsTXNSVUZCYVVJc1EwRkRha1JVTEVkQlFYbENVeXhEUVVNelFpeERRVTFCTEZkQlFWY3NkVUpCUVhkQ0xFTkJRMnBETEU5QlFVOVNMRVZCUTFRc1EwRk5RU3hYUVVGWExITkNRVUZ6UWxNc1JVRkJaMElzUTBGREwwTlVMRWRCUVhkQ1V5eERRVU14UWl4RFFVMUJMRmRCUVZjc1owSkJRV2xDTEVOQlF6RkNMRTlCUVU5U0xFVkJRMVFzUTBGTlFTeFhRVUZYTEdWQlFXVlRMRVZCUVVjc1EwRkRNMEpVTEVkQlFXbENVeXhEUVVOdVFpeERRVTFCTEU5QlFVOHNZVUZCWXl4RFFVTnVRa01zUjBGQlR5eFhRVUZYTEVWQlEyeENReXhIUVVGVExGZEJRVmNzUTBGRGRFSXNRMEZEUml4RlEzUklRU3hKUVVGSlF5eEhRVUZqTEVOQlFVTXNSVUZEYmtJc1UwRkJVME1zUjBGQldVTXNSVUZCVjBNc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGVrTXNTVUZCVFVNc1JVRkJUU3hMUVVGTExGVkJRVlVzUTBGQlEwWXNSVUZCVjBNc1EwRkJTU3hEUVVGRExFVkJRM2hEUlN4RlFVRk5UQ3hIUVVGWlNTeERRVUZITEVWQlEzcENMRTlCUVV0RExFbEJRMGhCTEVWQlFVMHNTVUZCU1N4TFFVRkxMRmRCUVZkSUxFVkJRVmRETEVOQlFVa3NSVUZEZWtOSUxFZEJRVmxKTEVOQlFVY3NSVUZCU1VNc1IwRkZaRUVzUTBGRFZDeERRVVZCTEVsQlFVbERMRWRCUVdNc1EwRkJReXhGUVVOdVFpeFRRVUZUUXl4SFFVRmhUQ3hGUVVGWFF5eEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTXhReXhKUVVGTlF5eEZRVUZOTEV0QlFVc3NWVUZCVlN4RFFVRkRSaXhGUVVGWFF5eERRVUZKTEVOQlFVTXNSVUZEZUVORkxFVkJRVTFETEVkQlFWbEdMRU5CUVVjc1JVRkRla0lzVDBGQlMwTXNTVUZEU0VFc1JVRkJUU3hKUVVGSkxFdEJRVXNzWlVGQlpVZ3NSVUZCVjBNc1EwRkJTU3hGUVVNM1EwY3NSMEZCV1VZc1EwRkJSeXhGUVVGSlF5eEhRVVZrUVN4RFFVTlVMRU5CUlVFc1NVRkJTVWNzUjBGQlpTeERRVUZETEVWQlEzQkNMRk5CUVZORExFZEJRV0ZRTEVWQlFWZERMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRekZETEVsQlFVMURMRVZCUVUwc1MwRkJTeXhWUVVGVkxFTkJRVU5HTEVWQlFWZERMRU5CUVVrc1EwRkJReXhGUVVONFEwOHNSVUZCVFVZc1IwRkJZVW9zUTBGQlJ5eEZRVU14UWl4UFFVRkxUU3hKUVVOSVFTeEZRVUZOTEVsQlFVa3NTMEZCU3l4aFFVRmhVaXhGUVVGWFF5eERRVUZKTEVWQlF6TkRTeXhIUVVGaFNpeERRVUZITEVWQlFVbE5MRWRCUldaQkxFTkJRMVFzUTBGRlFTeEpRVUZKUXl4SFFVRmxMRU5CUVVNc1JVRkRjRUlzVTBGQlUwTXNSMEZCWVZZc1JVRkJWME1zUlVGQlR5eERRVUZETEVWQlFVY3NRMEZETVVNc1NVRkJhME5WTEVWQlFVRldMRVZCUVRGQ0xFMUJRVUZYTEVOQk0wTldMRVZCTWtOdlEwUXNSVUZCYWtKRkxFVkJRVUZETEVkQlFXbENTQ3hGUVVGcVFpeERRVUZVTEZOQlEwWlVMRVZCUVUwc1MwRkJTeXhWUVVGVkxFTkJRVU5HTEVWQlFWZGhMRU5CUVZrc1EwRkJReXhGUVVOb1JFd3NSVUZCVFVNc1IwRkJZVkFzUTBGQlJ5eEZRVU14UWl4UFFVRkxUU3hKUVVOSVFTeEZRVUZOTEVsQlFVa3NTMEZCU3l4dFFrRkJiVUpTTEVWQlFWZERMRU5CUVVrc1JVRkRha1JSTEVkQlFXRlFMRU5CUVVjc1JVRkJTVTBzUjBGRlprRXNRMEZEVkN4RFFVVkJMRWxCUVVsUExFZEJRV2xDTEV0QlEzSkNMRk5CUVZORExFbEJRV1VzUTBGRGRFSXNUMEZCU1VRc1MwRkhSa0VzUjBGQmFVSXNTVUZCU1N4TFFVRkxMR1ZCUVdVc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4UFFVTjBSRUVzUjBGRldDeERRVVZCTEZOQlFWTkZMRWRCUVd0Q1F5eEZRVUZYTEVOQlUzQkRMRWxCUVUxRExFVkJRVk5FTEVWQlFWVXNVVUZCVVN4TFFVRkxMRVZCUTNSRExFZEJRVWxETEVsQlFWY3NSMEZEWWl4TlFVRlBMRU5CUVVORUxFTkJRVk1zUlVGRFdpeERRVU5NTEVsQlFVbEZMRVZCUTBWRExFVkJRVlZJTEVWQlFWVXNWVUZCVlN4RlFVRkhReXhEUVVGTkxFVkJRemRETEVkQlFVa3NRMEZEUmtNc1JVRkJWV1lzUjBGQllXRXNRMEZCVXl4RlFVRkZMR2RDUVVGblFpeERRVU53UkN4UFFVRlRTU3hGUVVGSExFTkJRMVpHTEVWQlFWVm1MRWRCUVdGblFpeERRVUZQTEVWQlFVVXNaMEpCUVdkQ0xFTkJRMnhFTEVOQlJVRXNSMEZCVFN4RFFVRkZMR2RDUVVGQlJTeEZRVUZwUWl4VFFVRkJReXhEUVVGVExFVkJRVWxLTEVWQlJYUkRMRTFCUVU4c1EwRkJRME1zUlVGQlUwVXNSVUZCYVVKRExFTkJRVkVzUTBGRE5VTXNRMEZEUml4RFFVVkJMRk5CUVZORExFZEJRV2xDVUN4RlFVRlhTeXhGUVVGcFFrY3NSVUZCWjBJc1EwRkRjRVVzVDBGQlNVRXNSMEZCYTBKSUxFdEJRM0JDVEN4SFFVRmhMRXRCUlZSUkxFbEJRMFpTTEVkQlFXRXNUMEZCVDFFc1EwRkJZeXhKUVVkb1EwZ3NTVUZEUmt3c1IwRkJZU3hQUVVGUFN5eERRVUZsTEV0QlJUbENUQ3hEUVVsWUxFTkJSVUVzVTBGQlUxTXNSMEZCVlVNc1JVRkJSeXhEUVVOd1FpeEpRVUZOUXl4RlFVRkxMRU5CUVVNc1JVRkRXaXhSUVVGVFF5eEZRVUZKTEVWQlFVZEJMRWRCUVVzc1IwRkJTVUVzU1VGQlN5eERRVU0xUWl4SlFVRk5ReXhGUVVGTFF5eEZRVUZUTEVsQlFVa3NTMEZCVFVZc1JVRkJSeXhEUVVGRExFVkJRMnhEUkN4RlFVRkhMRXRCUVV0RUxFVkJRVVZITEVOQlFVVXNRMEZCUXl4RFFVTm1MRU5CUTBFc1QwRkJUMFlzUTBGRFZDeERRVVZCTEZOQlFWTkpMRWRCUVZsTUxFVkJRVWNzUTBGRGRFSXNTVUZCVFVNc1JVRkJTeXhEUVVGRExFVkJRMW9zVVVGQlUwTXNSVUZCU1N4RlFVRkhRU3hIUVVGTExFVkJRVWRCTEVsQlFVc3NRMEZETTBJc1NVRkJUVU1zUlVGQlMwTXNSVUZCVXl4SlFVRkpMRXRCUVUwc1IwRkJTU3hIUVVGTFJpeERRVUZETEVWQlEzaERSQ3hGUVVGSExFdEJRVXRFTEVWQlFVVkhMRU5CUVVVc1EwRkJReXhEUVVObUxFTkJRMEVzVDBGQlQwWXNRMEZEVkN4RFFVVkJMRk5CUVZOTExFZEJRVlZETEVWQlFVdERMRVZCUVZGRExFVkJRVmRETEVWQlFWZERMRVZCUVZFc1EwRkROVVFzU1VGQlRVTXNSVUZCVDB3c1JVRkJTU3haUVVGWlJTeERRVUZUTEVWQlJYUkRMRTlCUVVsSExFbEJRVk1zVVVGRFNpeExRVU5GUVN4SlFVRlRMRXRCUTFoR0xFVkJRVlZHTEVOQlFVMHNSVUZGYUVKSExFVkJRVTlJTEVOQlFVMHNRMEZGZUVJc1EwRkZRU3hUUVVGVFN5eEhRVUZ2UWs0c1JVRkJTeXhEUVVOb1F5eFBRVUZKUVN4RlFVRkpMR2xDUVVGdFFrRXNSVUZCU1N4clFrRkJiMElzVDBGRE1VTXNSMEZIVEVFc1JVRkJTU3hyUWtGQmIwSXNVVUZEZUVJc1EwRkJRMEVzUlVGQlNTeFJRVU5NUVN4RlFVRkpMRTlCUVU4c1YwRkJWeXhKUVVGSkxFZEJRekZDTEVsQlFVa3NTMEZCU3l4bFFVRmxRU3hGUVVGSkxFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmIwSXNUVUZIT1VVc1EwRk5RU3hKUVVGTlR5eEhRVUZPTEV0QlFUQkNMRU5CUTNoQ0xGbEJRVmxETEVWQlFVMURMRVZCUVdFelF5eEZRVUZOTEVOQlEyNURMRXRCUVVzc1RVRkJVVUVzUlVGQlN5eFBRVUZUTEVWQlF6TkNMRXRCUVVzc1RVRkJVVUVzUlVGQlN5eFBRVUZUTEVkQlJUTkNMRWxCUVhWRFZTeEZRVUZCVml4RlFVRXZRaXhQUVVGQk5FTXNSVUZCVHl4TlFVRkJReXhEUVM5S2JrSXNSVUVyU2pKRGJrTXNSVUZCWkc5RExFVkJRVUZxUXl4SFFVRmpTQ3hGUVVGa0xFTkJRV3BDTEZGQlFVOHNWVUZGWml4SFFVRkpMRU5CUVVOcFF5eEhRVUZsTEU5QlFVOHNTMEZCUzBjc1EwRkJVeXhGUVVGRkxFOUJRVk1zUlVGQlJ5eERRVU55UkN4SlFVRk5ReXhGUVVGWFF5eEZRVUZCTEVOQlFVVXNXVUZCWVN4SlFVRlZhRVFzUjBGRGRFTkJMRVZCUVVzc1RVRkJVU3hKUVVGSEswTXNSVUZCVXl4eFFrRkJkVUl2UXl4RlFVRkxMRTlCUTNwRUxFdEJRVXNzU1VGQlRVMHNSMEZCWVc5RExFVkJRVTFMTEVOQlFWRXNRMEZEZUVNc1EwRkRSaXhEUVVWQkxFOUJRVTlzUWl4RlFVRkhMRU5CUTFJc1IwRkJTU3hMUVVGTExFbEJRVXNzUTBGRFdpeEpRVUZOYjBJc1JVRkJVU3hMUVVGTExFMUJRVkVzUzBGQlN5eE5RVUZOY0VJc1EwRkJReXhGUVVGSlFTeEZRVU16UXl4UFFVRlBMRXRCUVVzc1NVRkJTU3hQUVVGUGIwSXNRMEZCU3l4RFFVTTVRaXhMUVVGUExFTkJSVXdzU1VGQlRVRXNSVUZCVVN4TFFVRkxMRTFCUVZFc1MwRkJTeXhOUVVGTmNFSXNRMEZCUXl4RlFVRkpjVUlzUjBGQlVYSkNMRVZCUVVjc1EwRkJReXhGUVVOMlJDeFBRVUZQYzBJc1IwRkJVMFlzUlVGQlR5eExRVUZMTEV0QlFVc3NRMEZEYmtNc1EwRkRSaXhEUVVOR0xFVkJUVTFITEVkQlFVNHNTMEZCZDBJc1EwRkRkRUlzV1VGQldYUkNMRVZCUVVsWkxFVkJRVTB4UXl4RlFVRk5MRU5CUXpGQ0xFdEJRVXNzUzBGQlQwRXNSVUZGV2l4SlFVRkpjVVFzUlVGRFNpeEhRVUZKZGtJc1JVRkJSeXhMUVVGTExGbEJRV0VzUTBGUGRrSXNTVUZCVFhkQ0xFVkJRVmtzU1VGQlRYaENMRVZCUVVjc1QwRkJVeXhKUVVNNVFubENMRVZCUVZWRUxFZEJRV0VzUlVGQlNTeFhRVUZYUVN4RFFVRlRMRWRCUVVzc1ZVRkJWVUVzUTBGQlV5eEhRVU42UlhoQ0xFVkJRVWNzVTBGQlZ5eEhRVUZMTUVJc1IwRkJVeXhQUVVGUFJDeERRVUZQTEVWQlFVVXNUMEZET1VOR0xFVkJRVWxGTEVWQlEwb3NTMEZCU3l4SFFVRkxla0lzU1VGVFZuVkNMRVZCUVVrc1RVRkRRWEpFTEVWQlFVc3NZVUZEVUN4TFFVRkxMRWRCUVVzNFFpeEZRVVZXTEV0QlFVc3NSMEZCUzBFc1JVRkJSeXhUUVVGWExFVkJRVWxCTEVWQlFVdERMRVZCUVZNc1YwRkJWMFFzUlVGQlJ5eEhRVUZMUVN4RlFVRkhMRTlCUVZNc1IwRkJTeXhIUVVGSkxFVkJSM2hHTEUxQlFWZEJMRVZCUVVjc1MwRkJTeXhQUVVGVExGTkJRekZDTEV0QlFVc3NSMEZCUzBFc1IwRkZWaXhMUVVGTExFZEJRVXRCTEVWQlExWjFRaXhGUVVGSmRrSXNSVUZCUnl4TFFVRkxMRTFCUjJRc1NVRkJUV2xDTEVWQlFWZERMRVZCUVVFc1IwRkJTeXhMUVVGTExFMUJRM1pDU3l4SlFVTkdUaXhGUVVGVExGTkJRVmROTEVkQlJYUkNMRXRCUVVzc1NVRkJUV3BFTEVkQlFXRnpReXhGUVVGTlN5eERRVUZSTEVOQlEzaERMRU5CUlVFc1VVRkJVeXhEUVVOUUxFOUJRVThzUzBGQlN5eEpRVUZKTEU5QlFVOHNTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVNelF5eERRVVZCTEdWQlFXZENMRU5CUTJRc1QwRkJUeXhMUVVGTExFbEJRVWtzWTBGQll5eExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUTJ4RUxFTkJSVUVzYVVKQlFXdENMRU5CUTJoQ0xFOUJRVThzUzBGQlN5eEpRVUZKTEdkQ1FVRm5RaXhEUVVOc1F5eERRVU5HTEVWQlMwMVZMRWRCUVU0c1MwRkJkVUlzUTBGRGNrSXNXVUZCV1dZc1JVRkJUV2RDTEVWQlFWY3hSQ3hGUVVGTkxFTkJRMnBETEV0QlFVc3NTMEZCVDJkRUxFVkJRVUVzUTBGQlJTeE5RVUZQTEZGQlFWZG9SQ3hIUVVNMVFpeERRVUZETUVRc1IwRkJZVU1zUjBGQldTeEpRVU0xUWl4TFFVRkxMRWxCUVUxc1JDeEhRVUZoYVVNc1JVRkJUVEZETEVOQlFVa3NSVUZGZEVNc1EwRkZRU3hQUVVGUE5FUXNSVUZCVDBNc1JVRkJUU3hEUVVOc1FpeFBRVUZKTEV0QlFVc3NTVUZEUVN4TFFVRkxMRWxCUVVrc1QwRkJUMFFzUlVGQlQwTXNRMEZCU1N4RlFVVnVRa01zUjBGQmJVSkVMRVZCUVUxRUxFVkJRVThzUzBGQlN5eExRVUZMTEZGQlFWTXNTMEZCU3l4TFFVRkxMRkZCUVZVc1RVRkJUU3hEUVVWb1J5eERRVVZCTEdOQlFXTkJMRVZCUVU5RExFVkJRVTBzUTBGRGVrSXNUMEZCU1N4TFFVRkxMRWxCUTBFc1MwRkJTeXhKUVVGSkxHTkJRV05FTEVWQlFVOURMRU5CUVVrc1JVRkZiRU1zUTBGQlF5eERRVVZhTEVOQlEwWXNSVUZOY1VKRkxFZEJRWEpDTEUxQlFYRkNReXhEUVVGUExFTkJRekZDTEU5QlFVOHNVMEZCVTJoRkxFVkJRVTBzUTBGRGNFSXNUMEZCVDJkRkxFVkJRVThzVDBGQlQyaEZMRVZCUVVzc1QwRkJVVUVzUlVGQlN5eG5Ra0ZCYVVKQkxFVkJRVXNzWlVGQlowSkJMRVZCUVVzc1YwRkJWeXhEUVVNdlJpeERRVVZCTEU5QlFVOHNUMEZCVDJsRkxFVkJRVkV6UXl4RlFVRnBRa2NzUlVGQlowSjVReXhGUVVGakxFZEJRVThzUTBGRE1VVXNTVUZCVFVNc1JVRkJhMEpHTEVkQlFWVkhMRVZCUVZNc1kwRkZja05ETEVWQlFWVkdMRWxCUVc5Q1JDeEZRVUZqTEZGQlFWVnVSQ3hIUVVGaExFZEJRMjVGZFVRc1JVRkJiVUpvUkN4SFFVRnRRamhETEVWQlFWTXNkVUpCUXk5RFJ5eEZRVUZyUWpsRExFZEJRV3RDTWtNc1JVRkJVeXh6UWtGRGJrUXNUMEZCVHl4SlFVRkpTaXhGUVVGUFN5eEZRVUZUUXl4RlFVRnJRa01zUlVGQmFVSktMRU5CUVdVc1EwRkRMMFVzUTBGRlFTeFBRVUZQTEZsQlFXRXNRMEZEYkVKeVJDeEhRVUZwUWl4TFFVTnFRbGdzUjBGQll5eERRVUZETEVWQlEyWkZMRWRCUVdVc1EwRkJReXhGUVVOb1FrY3NSMEZCWlN4RFFVRkRMRU5CUTJ4Q0xFTkJSVUVzVDBGQlR5eFhRVUZYTEVOQlFVVXNUMEZCUVhsRUxFVkJRVkVzWjBKQlFVRXpReXhGUVVGcFFpeGxRVUZCUnl4RFFVRmxMRVZCUVVrc1EwRkJReXhGUVVGSExFTkJRMnhGTEU5QlFVOTFReXhGUVVGUExFOUJRVTlETEVWQlFWRXpReXhGUVVGcFFrY3NRMEZCWXl4RFFVTTVSQ3hEUVVWQkxGbEJRVmwzUXl4RlFVRlJUeXhGUVVGWEwwTXNSVUZCWjBJd1F5eEZRVUZwUWl4RFFVTTVSQ3hIUVVGTkxFTkJRVU5OTEVWQlFXTkRMRVZCUVhWQ1F5eERRVUZ2UWl4RlFVRkpNMFFzUjBGQmEwSnBSQ3hEUVVGTkxFVkJSVFZHTEV0QlFVc3NUMEZCVTFFc1JVRkRaQ3hMUVVGTExHZENRVUZyUWtRc1IwRkJZVVVzUjBGQmVVSXNTMEZETjBRc1MwRkJTeXhsUVVGcFFtcEVMRWRCUVd0Q2EwUXNSMEZCZDBJc1MwRkRhRVVzUzBGQlN5eExRVUZQYmtRc1IwRkJhVUlzUzBGQlN5eFBRVUZSTEV0QlFVc3NaMEpCUVdsQ0xFdEJRVXNzWTBGQll5eEZRVVZ1Uml4TFFVRkxMR05CUVdkQ0xFTkJRVVVzVDBGQlVTeERRVUZETEVWQlFVY3NWMEZCV1N4RFFVRkRMRU5CUVVVc1JVRkRiRVFzUzBGQlN5eFpRVUZqTEVOQlFVVXNUMEZCVVN4RFFVRkRMRVZCUVVjc1YwRkJXU3hEUVVGRExFTkJRVVVzUlVGRGFFUXNTMEZCU3l4alFVRm5RaXhMUVVOeVFpeExRVUZMTEZOQlFWY3NRMEZCUXl4RlFVVnFRaXhMUVVGTExHZENRVUZyUWpKRExFVkJRM1pDTEV0QlFVc3NhMEpCUVc5Q0xFbEJRek5DTEVOQlJVRXNTVUZCU1N4aFFVRmpMRU5CUTJoQ0xFOUJRVWtzUzBGQlN5eHRRa0ZCY1VJc1QwRkROVUlzUzBGQlN5eHJRa0ZCYjBJelFpeEhRVUZ2UWl4SlFVRkpMRWRCUnpWRExFdEJRVXNzYVVKQlEyUXNRMEZGUVN4aFFVRmpMRU5CUTFvc1NVRkJUVzlETEVWQlFXVXNTMEZCU3l4VlFVRlZMRVZCUXpsQ1F5eEhRVU5JTEV0QlFVc3NhMEpCUVc5Q0xFMUJRVkVzUzBGQlN5eHJRa0ZCYjBJc1ZVRkRNVVFzUzBGQlN5eHBRa0ZCYlVJc1RVRkJVU3hMUVVGTExHbENRVUZ0UWl4WFFVTXpSQ3hQUVVGUFJDeEhRVUZuUWtNc1JVRkJhVUlzUzBGQlR5eE5RVU5xUkN4RFFVVkJMRTFCUVUxRExFVkJRVTBzUTBGRFZpeE5RVUZKTEVOQlFVTkJMRWRCUVZFc1QwRkJUeXh2UWtGQmIwSkJMRU5CUVVrc1JVRkJSU3hUUVVGWExFVkJRMmhFTEV0QlJVRmtMRVZCUVU4c1QwRkRXbU1zUlVGQlN5eFJRVUZWTEV0QlFVc3NaMEpCUTNCQ1FTeEZRVUZMTEdsQ1FVRnRRaXhMUVVGTExHZENRVU0zUWtFc1JVRkJTeXhuUWtGQmEwSXNTMEZCU3l4bFFVTTFRa0VzUlVGQlN5eGhRVUZsTEVWQlEzUkNMRU5CUlVvc1EwRkZRU3hqUVVGalFTeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTjJRaXhQUVVGUExFdEJRVXNzVFVGQlRVTXNSMEZCUVM5Q0xFVkJRVUVzUjBGQlN6aENMRWRCUVV3c1EwRkJWeXhaUVVGaExFVkJRVXNzUlVGQlF5eERRVU5zUkN4RFFVVkJMR3RDUVVGclFrRXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRNMElzVDBGQlR5eExRVUZMTEUxQlFVMURMRWRCUVVFdlFpeEZRVUZCTEVkQlFVczRRaXhIUVVGTUxFTkJRVmNzV1VGQllTeEZRVUZOTEVWQlFVTXNRMEZEYmtRc1EwRkZRU3hQUVVGUE0wTXNSVUZCVVRaRExFVkJRVk1zUjBGQlR6VkRMRVZCUVZrc1IwRkJUU3hEUVVNdlF5eFBRVUZQU0N4SFFVRlZMRXRCUVUxRkxFVkJRVkZETEVWQlFXMUNOa01zUjBGQlVTeEpRVUZOTEVOQlF6bEVMRWxCUVUxMlF5eEZRVUZQYzBNc1JVRkJVeXhEUVVGRkxFMUJRVTgzUXl4RlFVRlJMRWxCUVVzc1UwRkJWU3hGUVVGSkxFTkJRVVVzVFVGQlQwRXNRMEZCVHl4RlFVTjRSU3RETEVWQlFWbEdMRVZCUVZNc1UwRkJWeXhoUVVOc1F5eFBRVUZMTEV0QlFVc3NXVUZCV1VVc1EwRkJVeXhGUVVGRkwwTXNRMEZCVFN4SlFVTnlReXhMUVVGTExGbEJRVmtyUXl4RFFVRlRMRVZCUVVVdlF5eERRVUZOTEVWQlFVbFVMRWRCUVZkSkxFZEJRVThzUzBGQlN5eFJRVUZSUVN4RlFVRkpXU3hGUVVGTkxFOUJRVThzUTBGQlF5eEhRVVZzUml4TFFVRkxMRmxCUVZsM1F5eERRVUZUTEVWQlFVVXZReXhEUVVGTkxFTkJRek5ETEVOQlFVTXNRMEZEU0N4RFFVVkJMRk5CUVZOQkxFVkJRVkUyUXl4RlFVRlRMRWRCUVU4MVF5eEZRVUZaTEVkQlFVMHNRMEZEYWtRc1QwRkJUMGdzUjBGQlZTeExRVUZOUlN4RlFVRlJReXhGUVVGdFFpdERMRWRCUVZVc1NVRkJUU3hEUVVOb1JTeEpRVUZOZWtNc1JVRkJUM05ETEVWQlExQXNRMEZCUlN4UlFVRlROME1zUlVGQlVTeExRVUZOTEZWQlFWY3NUVUZCVHl4UFFVRlJMRWxCUVVzc1UwRkJWU3hGUVVOc1JTeERRVUZGTEZGQlFWTkJMRU5CUVU4c1JVRkRkRUlyUXl4RlFVRlpSaXhGUVVGVExGTkJRVmNzWVVGRGJFTXNUMEZCU3l4TFFVRkxMR05CUVdORkxFTkJRVk1zUlVGQlJTOURMRU5CUVUwc1NVRkRka01zUzBGQlN5eGpRVUZqSzBNc1EwRkJVeXhGUVVGRkwwTXNRMEZCVFN4RlFVRkpTQ3hIUVVGaFJpeEhRVU51UkN4TFFVRkxMRkZCUVZGQkxFVkJRVWxaTEVWQlFVMHNVMEZCVXl4RFFVTnNReXhIUVVWTExFdEJRVXNzWTBGQlkzZERMRU5CUVZNc1JVRkJSUzlETEVOQlFVMHNRMEZETjBNc1EwRkJReXhEUVVOSUxFTkJSVUVzVlVGQlZVTXNSVUZCV1N4SFFVRk5MRU5CUXpGQ0xFOUJRVTlJTEVkQlEwd3NTMEZEUVN4UFFVTkJSeXhGUVVOQkxFbEJRV05uUkN4SFFVTmtMRWxCUVUwc1EwRkhTaXhIUVVGSkxFTkJRVU1zUzBGQlN5eGpRVUZsTEVOQlEzWkNMRWxCUVUweFF5eEZRVUZQTEVOQlFVVXNTMEZCVFN4VlFVRlhMRlZCUVZjc1MwRkJUU3hGUVVOcVJDeExRVUZMTEdOQlFXZENMRU5CUVVOWUxFVkJRVk1zU1VGQlNTeExRVUZOTEVkQlFVa3NSMEZCU1N4RFFVRkRMRVZCUVVkQkxFVkJRVk1zU1VGQlNTeExRVUZOTEVkQlFVa3NSMEZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hKUVVOc1JrUXNSMEZCVHl4TFFVRkxMRkZCUVZGQkxFVkJRVWxaTEVWQlFVMHNWMEZCVnl4RFFVTTFReXhEUVVOR0xFTkJSVUVzVDBGQlR5eExRVUZMTEdGQlEyUXNRMEZEUml4RFFVTkdMRU5CUlVFc1MwRkJTMUFzUlVGQlVVTXNSVUZCV1N4SFFVRk5MRU5CUXpkQ0xFOUJRVTlJTEVkQlFWVXNTMEZCVFVVc1JVRkJVVU1zUlVGQmJVSnBSQ3hIUVVGTkxFbEJRVTBzUTBGRE5VUXNTVUZCVFRORExFVkJRVThzUTBGQlJTeEpRVUZMVUN4RFFVRlBMRVZCU1ROQ0xFOUJRVXNzUzBGQlN5eFRRVUZUUVN4RFFVRk5MRWxCUTNaQ0xFdEJRVXNzVTBGQlUwRXNRMEZCVFN4RlFVRkpMRU5CUVVOS0xFVkJRVk1zU1VGQlNTeEpRVUZMTEVWQlFVY3NRMEZCUXl4RlFVRkhRU3hGUVVGVExFbEJRVWtzUzBGQlRTeEZRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVV0RUxFZEJReTlGTEV0QlFVc3NVVUZCVVVFc1JVRkJTVmtzUlVGQlRTeExRVUZMTEVOQlF6bENMRWRCUjBzc1MwRkJTeXhUUVVGVFVDeERRVUZOTEVOQlF6ZENMRU5CUVVNc1EwRkRTQ3hEUVVWQkxGRkJRVkZNTEVWQlFVbHBRaXhGUVVGVmRVTXNSVUZCVHl4RFFVTXpRaXhKUVVGTlF5eEZRVUZMTEV0QlFVc3NXVUZCV1hwRUxFVkJRVWxwUWl4RFFVRlJMRVZCUTNSRGVVTXNSVUZCVlVRc1JVRkJSeXhqUVVGakxFVkJRek5DUlN4RlFVRlhSQ3hGUVVGUkxFdEJRVTFGTEVkQlFVMUJMRVZCUVVVc1MwRkJTeXhaUVVGWkxFbEJRVTFLTEVOQlFVc3NSVUZETDBRc1QwRkJUMGNzUlVGQlYwRXNSVUZCVXl4TlFVRlJMRWxCUTNKRExFTkJSVUVzWjBKQlFXZENla1lzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZIZWtJc1QwRkJUeXhKUVVGSmVVTXNSMEZCYjBJc1MwRkJTeXhMUVVGTmVrTXNSVUZCU3l4aFFVRmxMRXRCUVVzc1dVRkJZVUVzUTBGQlNTeERRVU4wUml4RFFVVkJMRmxCUVZrNFFpeEZRVUZKYVVJc1JVRkJWeXhEUVVGRExFVkJRVWNzUTBGRE4wSXNUMEZCVHl4SlFVRkpTeXhIUVVGclFuUkNMRVZCUVVrc1MwRkJTeXhMUVVGTmFVSXNRMEZCVVN4RFFVTjBSQ3hEUVVWQkxHRkJRV0V2UXl4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVOMFFpeFBRVUZQTEVsQlFVbDVSQ3hIUVVGcFFpeExRVUZMTEV0QlFVMHNTMEZCU3l4VlFVRlZMRVZCUVVkNlJDeERRVUZKTEVOQlF5OUVMRU5CUlVFc1kwRkJZMEVzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEZGtJc1QwRkJUMFlzUjBGQldTeExRVUZMTEV0QlFVMUZMRU5CUVVrc1EwRkRjRU1zUTBGRlFTeFhRVUZaTEVOQlExWXNUMEZEUlN4TFFVRkxMRk5CUVZjc1RVRkRhRUlzUzBGQlN5eFBRVUZQTEZsQlFWa3NTVUZCVFN4VFFVTTVRaXhKUVVGSkxFdEJRVXNzWlVGQlpTeExRVUZMTEVsQlFVa3NSVUZCUlN4blFrRkJaMElzUlVGQlJTeFBRVUZQTEZkQlFWY3NUMEZCVHl4RFFVVnNSaXhEUVVWQkxFOUJRVTh5Uml4RlFVRlBMRU5CUTFvc1QwRkRSU3hMUVVGTExGTkJRVmRCTEVWQlFVMHNVVUZEZEVJc1MwRkJTeXhyUWtGQmIwSkJMRVZCUVUwc2FVSkJReTlDTEV0QlFVc3NhVUpCUVcxQ1FTeEZRVUZOTEdOQlJXeERMRU5CUTBZc1JVTnNZa0VzVTBGQlUwTXNUVUZCYTBKRExFVkJRVk1zUTBGRGJFTXNTVUZCVFVNc1JVRkJUMFFzUlVGQlVTeFBRVUZQTEVOQlFVTkZMRVZCUVVjc1NVRkJUVUVzUlVGQlNTeEZRVUZGTEU5QlFWRXNSVUZCUlN4RlFVTjBSQ3hQUVVGUExFOUJRVThzU1VGQlNVUXNRMEZCU1N4SFFVRkhMRU5CUXpOQ0xFTkJSVUVzVTBGQlUwVXNUVUZCY1VKRExFVkJRVmtzUTBGRGVFTXNUMEZCVDBNc1IwRkRURVFzUlVGRFJ5eFBRVU5ETEVOQlFVTXNRMEZCUTBVc1JVRkJXVU1zUlVGQldVTXNRMEZCVFN4RlFVRkhReXhKUVVGUExFTkJRM2hETEVkQlFVMHNRMEZCUTBNc1JVRkJTME1zUlVGQlRVTXNRMEZCU1N4RlFVRkpTQ3hGUVVGSFNpeEZRVUZIUnl4RFFVRk5MRVZCUTNSRExFMUJRVThzUTBGQlEwc3NTVUZCUVN4SFFVRkxVQ3hIUVVGbFNTeEhRVUZQUXl4SFFVRlJTaXhGUVVGWlN5eERRVUZKTEVOQlF6ZEVMRVZCUTBFc1EwRkJReXhEUVVGRExFVkJRVWNzUzBGQlRTeERRVUZETEVOQlEyUXNSVUZEUXl4TlFVRk5MRVZCUVVjc1EwRkJReXhEUVVOcVFpeERRVVZCTEZOQlFWTkZMRWRCUVUxRExFdEJRVTFETEVWQlFWVXNRMEZETjBJc1IwRkJTVVFzUjBGQlN5eExRVU5RTEUxQlFVOHNRMEZCUXl4TFFVRk5MRWxCUVVrc1JVRkhjRUlzVDBGQlZ5eERRVUZEUlN4RlFVRlBReXhEUVVGVExFbEJRVXRHTEVWQlFWVXNRMEZEZWtNc1NVRkJUVmdzUlVGQlNWa3NSVUZCVFN4TFFVRkxSaXhEUVVGRExFVkJRM1JDTEVkQlFVbFdMRVZCUTBZc1QwRkJUMkVzUlVGQlZXSXNRMEZCUXl4RFFVVjBRaXhEUVVOQkxFMUJRVThzUTBGQlF5eExRVUZOTEVsQlFVa3NRMEZEY0VJc1EwRkZRU3hUUVVGVFl5eE5RVUZsUXl4RlFVRk5MRU5CUXpWQ0xFMUJRVThzUTBGQlEwTXNSVUZCVDJJc1NVRkJWeXhEUVVONFFpeEpRVUZOWXl4RlFVRk5MRU5CUVVNc1JVRkRWRU1zUlVGRlNpeEpRVUZMUVN4RlFVRkpMRVZCUVVkQkxFVkJRVWxJTEVWQlFVc3NUMEZCVVVjc1NVRkRNMEpFTEVWQlFVbEdMRVZCUVV0SExFTkJRVU1zUTBGQlF5eEZRVUZKUXl4SFFVRmhTQ3hGUVVGTllpeEZRVUZUWlN4RFFVRkRMRU5CUVVNc1JVRkZMME1zVFVGQlR5eERRVUZEUkN4RlFVRkxMRXRCUVUxa0xFVkJRVk5sTEVOQlFVTXNRMEZETDBJc1EwRkRSaXhEUVVkQkxFbEJRVTFGTEVkQlFXTXNhME5CUTJSRExFZEJRV3RDTEUxQlFVMUVMRWRCUVZrc1RVRkJUU3hYUVVGWFJTeEhRVUZWTEUxQlFVMHNWMEZEY2tWRExFZEJRVzFDTEhORVFVTnVRa01zUjBGQlpTeFBRVUZQTEVkQlFVZEVMRWRCUVdsQ0xFMUJRVTBzUjBGQlIwWXNSVUZCWlN4RlFVRkZMRVZCUTNCRlNTeEhRVUYzUWl4UFFVRlBMRTlCUVU5RUxFZEJRV0VzVFVGQlRTeEpRVUZKTEVWQlF6ZEVSU3hIUVVGakxEaERRVU5rUXl4SFFVRmxMRGhDUVVObVF5eEhRVUZyUWl4dFFrRkRiRUpETEVkQlFYRkNaaXhIUVVGWkxGZEJRVmtzWVVGQll5eFRRVUZUTEVWQlEzQkZaMElzUjBGQmQwSm9RaXhIUVVGWkxFOUJRVkVzVTBGQlV5eEZRVU55UkdsQ0xFZEJRV01zZDBKQlEyUkRMRWRCUVdVc1QwRkRia0lzUjBGQlIxUXNSMEZCYVVJc1RVRkJUU3hSUVVGUlNDeEhRVUZaTEUxQlFVMHNTMEZCUzBVc1IwRkJWU3hOUVVGTkxFdEJRek5GTEVWQlEwMVhMRWRCUVhkQ0xFOUJRVThzVDBGQlQwUXNSMEZCWVN4TlFVRk5MRWxCUVVrc1JVRkZia1VzVTBGQlUwVXNSMEZCU1d4Q0xFVkJRVTl0UWl4RlFVRkxReXhGUVVGVkxFTkJRMnBETEVsQlFVMXdReXhGUVVGSlowSXNSVUZCVFcxQ0xFTkJRVWNzUlVGRGJrSXNUMEZCVDBVc1JVRkJXWEpETEVOQlFVTXNSVUZCU1c5RExFVkJRVmRxUWl4SFFVRmhia0lzUTBGQlF5eERRVU51UkN4RFFVVkJMRk5CUVZOelF5eEhRVUZqZEVJc1JVRkJUMklzUlVGQlVTeERRVTl3UXl4TlFVRlBMRU5CVGswc1EwRkRXQ3hMUVVGTkswSXNSMEZCU1d4Q0xFVkJRVTlpTEVOQlFVMHNSVUZEZGtJc1RVRkJUeXRDTEVkQlFVbHNRaXhGUVVGUFlpeEZRVUZUTEVWQlFVY3NRMEZCUXl4RlFVTXZRaXhKUVVGTEswSXNSMEZCU1d4Q0xFVkJRVTlpTEVWQlFWTXNSVUZCUnl4RFFVRkRMRU5CUXk5Q0xFVkJSV01zUzBGQlRVRXNSVUZCVXl4RFFVRkRMRU5CUTJoRExFTkJSVUVzVTBGQlUyOURMRWRCUVdWMlFpeEZRVUZQWWl4RlFVRlJMRU5CVVhKRExFMUJRVThzUTBGUVRTeERRVU5ZTEUxQlFVOHJRaXhIUVVGSmJFSXNSVUZCVDJJc1JVRkJVU3hEUVVGRExFVkJRek5DTEZGQlFWTXJRaXhIUVVGSmJFSXNSVUZCVDJJc1JVRkJVeXhGUVVGSExFTkJRVU1zUlVGRGFrTXNVVUZCVXl0Q0xFZEJRVWxzUWl4RlFVRlBZaXhGUVVGVExFVkJRVWNzUTBGQlF5eEZRVU5xUXl4aFFVRmpjVU1zUjBGQldYaENMRVZCUVUxaUxFVkJRVk1zUTBGQlF5eERRVUZETEVOQlF6ZERMRVZCUldNc1MwRkJUVUVzUlVGQlV5eERRVUZETEVOQlEyaERMRU5CUlVFc1UwRkJVM05ETEVkQlFXbENla0lzUlVGQlQySXNSVUZCVVN4RFFVTjJReXhKUVVGTmRVTXNSVUZCVVN4RFFVRkRNVUlzUlVGQlRXSXNRMEZCVFN4SFFVRkxMRU5CUVVOaExFVkJRVTFpTEVWQlFWTXNRMEZCUXl4RlFVTXZRM2RETEVWQlFXRkRMRWRCUVdFMVFpeEZRVUZOWWl4RlFVRlRMRU5CUVVNc1JVRkJSMkVzUlVGQlRXSXNSVUZCVXl4RFFVRkRMRU5CUVVNc1JVRkRPVVJITEVWQlFVOXZReXhGUVVGUkxFdEJRVTlITEVkQlFXZENMRk5CUVZOR0xFTkJRVlVzUlVGRE0wUXNUVUZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSM0pETEVWQlFVMUlMRVZCUVZNc1EwRkJReXhEUVVNNVFpeERRVVZCTEZOQlFWTXlReXhIUVVGblFqbENMRVZCUVU5aUxFVkJRVkVzUTBGRGRFTXNTVUZCVFVjc1JVRkJUMVVzUlVGQlRXSXNRMEZCVFN4RlFVRkpORU1zUjBGQlV5eFBRVUZQTDBJc1JVRkJUV0lzUTBGQlRTeERRVUZETEVWQlFVa3NTMEZET1VRc1RVRkJUeXhEUVVGRExFTkJRVU1zUlVGQlIwY3NSVUZCVFVnc1JVRkJVeXhEUVVGRExFTkJRemxDTEVOQlNVRXNTVUZCVFRaRExFZEJRV01zVDBGQlR5eE5RVUZOZWtJc1IwRkJhVUlzVFVGQlRTeEhRVUZITEVWQlNYSkVNRUlzUjBGQll5d3JVRUZGY0VJc1UwRkJVME1zUjBGQmJVSnNReXhGUVVGUExFTkJRMnBETEVkQlFVMHNRMEZEU2s0c1JVRkRRWGxETEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRU5CUTBZc1JVRkJTVEZETEVWQlJVVXlReXhGUVVGdlFtcEVMRVZCUVVVc1EwRkJReXhKUVVGTkxFbEJRemRDYTBRc1JVRkJhMEpJTEVkQlFXRkJMRVZCUVZVc1EwRkJReXhKUVVGTkxFbEJSV2hFU1N4RlFVRmpMRU5CUVVORExFVkJRVXRETEVWQlFWRXNTMEZEYUVORUxFbEJRVkVzVTBGQlkwTXNSMEZCVlVRc1IwRkJUMGdzUjBGQmMwSXNRMEZCUTBjc1JVRkJUVUVzUlVGRmRFVXNUVUZCVHl4RFFVTk1MRU5CUTBVc1RVRkJUMFFzUlVGQldVY3NSMEZCWTJJc1EwRkJUeXhEUVVGRExFVkJRM3BETEU5QlFWRlZMRVZCUVZsSExFZEJRV05hTEVOQlFWRXNRMEZCUXl4RlFVTXpReXhOUVVGUFV5eEZRVUZaUnl4SFFVRmpXQ3hEUVVGUExFTkJRVU1zUlVGRGVrTXNTMEZCVFZFc1JVRkJXVWNzUjBGQlkxWXNRMEZCVFN4RFFVRkRMRVZCUTNaRExFMUJRVTlQTEVWQlFWbEhMRWRCUVdOVUxFTkJRVThzUTBGQlF5eEZRVU42UXl4UlFVRlRUU3hGUVVGWlJ5eEhRVUZqVWl4RFFVRlRMRU5CUVVNc1JVRkROME1zVVVGQlUwc3NSVUZCV1Vjc1IwRkJZMUFzUTBGQlV5eEZRVUZIUVN4SlFVRmpMRWxCUVVrc1JVRkRha1VzWVVGQlkwa3NSVUZCV1hKQ0xFZEJRVmxyUWl4RFFVRmxMRVZCUVVkRkxFTkJRV1VzUTBGRGVrVXNRMEZEUml4RFFVTkdMRU5CUzBFc1NVRkJUVXNzUjBGQllTeERRVU5xUWl4SlFVRkxMRVZCUTB3c1NVRkJTeXhIUVVGTExFZEJRMVlzU1VGQlN5eEhRVUZMTEVkQlExWXNTVUZCU3l4SFFVRkxMRWRCUTFZc1NVRkJTeXhIUVVGTExFZEJRMVlzU1VGQlN5eEhRVUZMTEVkQlExWXNTVUZCU3l4SFFVRkxMRWRCUTFZc1NVRkJTeXhIUVVGTExFZEJRMVlzU1VGQlN5eEhRVUZMTEVWQlExb3NSVUZGUVN4VFFVRlRReXhIUVVGWlF5eEZRVUZaYUVJc1JVRkJVME1zUlVGQlZVVXNSVUZCVVVNc1JVRkJVME1zUlVGQlYwTXNSVUZCVnl4RFFVTjZSaXhKUVVGTlZ5eEZRVUZUTEVOQlEySXNTMEZCVFdwQ0xFVkJRVkVzVTBGQlZ5eEZRVUZKYTBJc1IwRkJaV3hFTEVkQlFXRm5ReXhEUVVGUExFTkJRVU1zUlVGQlNXaERMRWRCUVdGblF5eERRVUZQTEVWQlEzcEdMRTFCUVdWdFFpeEhRVUZaTEZGQlFWRnNRaXhEUVVGUkxFVkJRVWtzUlVGREwwTXNTVUZCUzJwRExFZEJRV0Z0UXl4RFFVRk5MRVZCUTNoQ0xFdEJRVTF1UXl4SFFVRmhiME1zUTBGQlR5eEZRVU14UWl4UFFVRlJjRU1zUjBGQllYRkRMRU5CUVZNc1EwRkRhRU1zUlVGRlFTeFBRVUZKUXl4SlFVRlhWeXhGUVVGUExFOUJRVk5xUkN4SFFVRmhjME1zUTBGQlV5eEhRVU5xUkZVc1NVRkRSa01zUlVGQlR5eFJRVU5NUkN4RlFVRlhMRTlCUVZNc1JVRkRVa2tzUjBGQllTeFJRVUZSU2l4RFFVRlZMRVZCUVVrc1JVRkRia05MTEVkQlFXTXNVVUZCVVV3c1EwRkJWU3hGUVVGSkxFZEJSemREUXl4RFFVTlVMRU5CUjBFc1NVRkJUVXNzUjBGQlZTeHJUVUZGYUVJc1UwRkJVME1zUjBGQlpURkVMRVZCUVU4c1EwRkROMElzUjBGQlRTeERRVU5HTEVOQlEwRnRSQ3hGUVVOQllpeEZRVU5CUml4RlFVTkJSQ3hGUVVOQlNTeEZRVU5CUXl4RlFVTkJReXhGUVVOQmEwSXNSVUZEUVVNc1JVRkRRVU1zUlVGRFFVTXNRMEZEUml4RlFVRkpPVVFzUlVGRFNtOUVMRVZCUVZOR0xFZEJRVmxETEVWQlFWbG9RaXhGUVVGVFF5eEZRVUZWUlN4RlFVRlJReXhGUVVGVFF5eEZRVUZYUXl4RFFVRlRMRVZCUlhaR2MwSXNSVUZEU2l4UFFVRkpTaXhGUVVOR1NTeEZRVUZUWkN4SFFVRlhWU3hEUVVGVExFVkJRM0JDUXl4RlFVTlVSeXhGUVVGVExFVkJSVlJCTEVWQlFWTnVReXhIUVVGaGFVTXNSVUZCV1VNc1EwRkJXU3hGUVVkNlF5eERRVUZEVml4RlFVRlJMRWxCUVVsMlFpeEhRVUZuUW10RExFTkJRVTBzUTBGQlF5eERRVU0zUXl4RFFVVkJMRk5CUVZORExFZEJRV3RDZEVVc1JVRkJSeXhEUVVVMVFpeFBRVUZQUVN4RlFVTktMRkZCUVZFc2NVSkJRWE5DTEVkQlFVY3NSVUZEYWtNc1VVRkJVU3hYUVVGWkxFZEJRVWNzUlVGRGRrSXNTMEZCU3l4RFFVTldMRU5CU1VFc1NVRkJUWFZGTEVkQlFWVXNOa2hCUTJSRExFZEJRVk1zZVVwQlExUkRMRWRCUVZFc05FaEJSVllzVTBGQlUwTXNSMEZCYjBKd1JTeEZRVUZQTEVOQlEyeERMRWRCUVUwc1EwRkJReXhEUVVGRmJVUXNSVUZCV1dJc1JVRkJVVVlzUlVGQlZVUXNSVUZCVTBrc1JVRkJVME1zUlVGQlYwTXNRMEZCVXl4RlFVRkpla01zUlVGRmFrWXNUVUZCVHl4RFFVUkphMFFzUjBGQldVTXNSVUZCV1doQ0xFVkJRVk5ETEVWQlFWVkZMRVZCUVZGRExFVkJRVk5ETEVWQlFWZERMRU5CUVZNc1JVRkRNMFZhTEVkQlFXZENMRmRCUVZjc1EwRkROME1zUTBGRlFTeFRRVUZUZDBNc1IwRkJZWEpGTEVWQlFVOHNRMEZETTBJc1IwRkJUU3hEUVVGRExFTkJRVVZ0UkN4RlFVRlpaaXhGUVVGVlJTeEZRVUZSUXl4RlFVRlRReXhGUVVGWFF5eEZRVUZYVGl4RFFVRlBMRVZCUVVsdVF5eEZRVVZxUml4TlFVRlBMRU5CUkVsclJDeEhRVUZaUXl4RlFVRlphRUlzUlVGQlUwTXNSVUZCVlVVc1JVRkJVVU1zUlVGQlUwTXNSVUZCVjBNc1EwRkJVeXhGUVVNelJWb3NSMEZCWjBJc1YwRkJWeXhEUVVNM1F5eERRVVZCTEVsQlFVMTVReXhIUVVFclFqVkdMRWRCUVdWblF5eEhRVUZoUkN4RlFVRnhRaXhGUVVOb1JqaEVMRWRCUVdkRE4wWXNSMEZCWldsRExFZEJRV05HTEVWQlFYRkNMRVZCUTJ4R0swUXNSMEZCYlVNNVJpeEhRVUZsYTBNc1IwRkJhVUpJTEVWQlFYRkNMRVZCUTNoR1owVXNSMEZCZFVJdlJpeEhRVUZsT0VJc1JVRkJXU3hGUVVWc1JHdEZMRWRCUVRaQ05VWXNSMEZEYWtOM1F5eEhRVU5CUXl4SFFVTkJSU3hIUVVOQlN5eEZRVU5HTEVWQlEwMDJReXhIUVVFNFFqZEdMRWRCUTJ4REswSXNSMEZEUVZVc1IwRkRRVVVzUjBGRFFVc3NSVUZEUml4RlFVTk5PRU1zUjBGQkswSTVSaXhIUVVOdVEyZERMRWRCUTBGVExFZEJRMEZGTEVkQlEwRkxMRVZCUTBZc1JVRkRUU3RETEVkQlFUQkNMMFlzUjBGRE9VSjVReXhIUVVOQlJTeEhRVU5CU3l4RlFVTkdMRVZCVFU4c1UwRkJVMmRFTEVkQlFXRndSaXhGUVVGSExFTkJRemxDTEU5QlFVOUVMRWRCUTB4RExFVkJRMEVzUTBGQlF6UkZMRWRCUVRoQ1NTeEZRVUV3UWl4RlFVTjZSQ3hEUVVGRFNDeEhRVUVyUWtrc1JVRkJNa0lzUlVGRE0wUXNRMEZCUTBnc1IwRkJhME5KTEVWQlFUUkNMRVZCUXk5RUxFTkJRVU5JTEVkQlFYTkNTU3hGUVVGMVFpeERRVU5vUkN4RFFVTkdMRU5CUlU4c1UwRkJVMFVzUjBGQmFVSnlSaXhGUVVGSExFTkJRMnhETEU5QlFVOUVMRWRCUVUxMVJTeEhRVUZyUW5SRkxFTkJRVU1zUlVGQlJ5eERRVUZESzBRc1IwRkJVME1zUlVGQll5eERRVUZETEVOQlF6bEVMRU5CUlU4c1UwRkJVM05DTEVkQlFXTjBSaXhGUVVGSExFTkJReTlDTEU5QlFVOUVMRWRCUTB4RExFVkJRMEVzUTBGQlEzVkZMRWRCUVZOSExFVkJRVzFDTEVWQlF6ZENMRU5CUVVOR0xFZEJRVkZGTEVWQlFXMUNMRVZCUXpWQ0xFTkJRVU5FTEVkQlFVOUZMRVZCUVZrc1EwRkRkRUlzUTBGRFJpeERRVVZQTEZOQlFWTlpMRWRCUVdsQ2RrWXNSVUZCUnl4RFFVTnNReXhQUVVGUFJDeEhRVUZOUXl4RlFVRkhMRU5CUVVOMVF5eEhRVUZoUXl4RlFVRnJRaXhEUVVGRExFTkJRMjVFTEVOQlJVRXNTVUZCVFdkRUxFZEJRWEZDY0Vjc1IwRkJhMEo1UXl4RlFVRmpMRVZCUlhCRUxGTkJRVk0wUkN4SFFVRnBRbnBHTEVWQlFVY3NRMEZEYkVNc1QwRkJUMFFzUjBGQlRVTXNSVUZCUnl4RFFVRkRjME1zUjBGQllXdEVMRVZCUVd0Q0xFTkJRVU1zUTBGRGJrUXNRMEZGUVN4SlFVRk5SU3hIUVVFclFqRkhMRWRCUVdWeFF5eEhRVUZoUlN4RlFVRnhRaXhGUVVOb1JtOUZMRWRCUVhWQ00wY3NSMEZCWlhORExFVkJRVmtzUlVGRmJFUnpSU3hIUVVGclEzaEhMRWRCUTNSRGVVTXNSMEZEUVVVc1IwRkRRVXNzUlVGRFJpeEZRVVZQTEZOQlFWTjVSQ3hIUVVGVE4wWXNSVUZCUnl4RFFVTXhRaXhQUVVGUFJDeEhRVU5NUXl4RlFVTkJMRU5CUVVNd1JpeEhRVUU0UWxZc1JVRkJNRUlzUlVGRGVrUXNRMEZCUTFjc1IwRkJjMEpETEVWQlFTdENMRU5CUTNoRUxFTkJRMFlzUTBOc1ZVRXNTVUZCVFVVc1IwRkJWU3h0UWtGSFNFTXNSMEZCYVVJc1EwRkRNVUlzVFVGQlR5eERRVU5NTEV0QlFVMHNSVUZEVGl4TlFVRlBMRVZCUVVrc1IwRkRXQ3hSUVVGVExFVkJRVWtzUjBGQlN5eEhRVU5zUWl4UlFVRlRMRVZCUVVrc1IwRkJTeXhIUVVGTExFZEJRM1pDTEdGQlFXTXNSVUZCU1N4SFFVRkxMRWRCUVVzc1IwRkJTeXhIUVVOdVF5eEZRVU5CTEV0QlFVMHNRMEZEU2l4TlFVRlBMRWRCUTFBc1VVRkJVeXhIUVVGTExFZEJRMlFzVVVGQlV5eEhRVUZMTEVkQlFVc3NSMEZEYmtJc1lVRkJZeXhIUVVGTExFZEJRVXNzUjBGQlN5eEhRVU12UWl4RlFVTkJMRTFCUVU4c1EwRkJSU3hSUVVGVExFZEJRVWtzVVVGQlV5eEhRVUZMTEVkQlFVa3NZVUZCWXl4SFFVRkxMRWRCUVVzc1IwRkJTeXhGUVVOeVJTeFJRVUZUTEVOQlFVVXNVVUZCVXl4SFFVRkpMR0ZCUVdNc1IwRkJTeXhIUVVGTExFVkJRMmhFTEZGQlFWTXNRMEZCUlN4aFFVRmpMRWRCUVVzc1EwRkRhRU1zUlVGRFFVTXNSMEZCWlVNc1JVRkJRU3hEUVVOaUxFMUJRVThzUTBGRFRDeFRRVUZWTEVWQlExWXNUMEZCVVN4SFFVTlNMRTFCUVU4c1IwRkRVQ3hMUVVGTkxFbEJRMDRzVFVGQlR5eEpRVUZOTEVkQlEySXNVVUZCVXl4SlFVRk5MRWRCUVVzc1IwRkRjRUlzVVVGQlV5eEpRVUZOTEVkQlFVc3NSMEZCU3l4SFFVTjZRaXhoUVVGakxFbEJRVTBzUjBGQlN5eEhRVUZMTEVkQlFVc3NSMEZEY2tNc1JVRkRRU3hUUVVGVkxFTkJRMUlzVDBGQlVTeEZRVU5TTEUxQlFVOHNSMEZEVUN4TFFVRk5MRWRCUTA0c1RVRkJUeXhIUVVGTExFZEJRMW9zVVVGQlV5eEhRVUZMTEVkQlFVc3NSMEZEYmtJc1VVRkJVeXhIUVVGTExFZEJRVXNzUjBGQlN5eEhRVU40UWl4aFFVRmpMRWRCUVVzc1IwRkJTeXhIUVVGTExFZEJRVXNzUjBGRGNFTXNSVUZEUVN4UFFVRlJMRU5CUTA0c1RVRkJUeXhGUVVOUUxFdEJRVTBzUjBGRFRpeE5RVUZQTEVkQlFVc3NSMEZEV2l4UlFVRlRMRWRCUVVzc1IwRkJTeXhIUVVOdVFpeFJRVUZUTEVkQlFVc3NSMEZCU3l4SFFVRkxMRWRCUTNoQ0xHRkJRV01zUjBGQlN5eEhRVUZMTEVkQlFVc3NSMEZCU3l4SFFVTndReXhIUVVWSFJpeEpRVVZNUnl4SFFVRnhRaXhQUVVGWExFbEJRMmhEUXl4SFFVRnpRaXhQUVVGWExFdEJRMnBEUXl4SFFVRnBRa2dzUlVGQlFTeERRVU5tTEUxQlFVOHNRMEZEVEN4VFFVRlZMRVZCUTFZc1QwRkJVU3hIUVVOU0xFMUJRVTlETEVkQlFYRkNMRVZCUXpWQ0xFdEJRVTFCTEVkQlEwNHNUVUZCVDBFc1IwRkJjVUlzUjBGRE5VSXNVVUZCVTBFc1IwRkJjVUlzUjBGQlN5eEhRVU51UXl4UlFVRlRRU3hIUVVGeFFpeEhRVUZMTEVkQlFVc3NSMEZEZUVNc1lVRkJZMEVzUjBGQmNVSXNSMEZCU3l4SFFVRkxMRWRCUVVzc1IwRkRjRVFzUlVGRFFTeFRRVUZWTEVOQlExSXNUMEZCVVN4RlFVTlNMRTFCUVU5QkxFZEJRWEZDTEVkQlF6VkNMRXRCUVUxQkxFZEJRWEZDTEVWQlF6TkNMRTFCUVZGQkxFZEJRWEZDTEVkQlFVMHNSVUZEYmtNc1VVRkJWVUVzUjBGQmNVSXNSMEZCU3l4SFFVRk5MRVZCUXpGRExGRkJRVlZCTEVkQlFYRkNMRWRCUVVzc1IwRkJTeXhIUVVGTkxFVkJReTlETEdGQlFXVkJMRWRCUVhGQ0xFZEJRVXNzUjBGQlN5eEhRVUZMTEVsQlFWRXNRMEZETjBRc1JVRkRRU3hQUVVGUkxFTkJRMDRzVFVGQlQwTXNSMEZCYzBJc1JVRkROMElzUzBGQlRVRXNSMEZEVGl4TlFVRlBRU3hIUVVGelFpeEhRVU0zUWl4UlFVRlRRU3hIUVVGelFpeEhRVUZMTEVkQlEzQkRMRkZCUVZOQkxFZEJRWE5DTEVkQlFVc3NSMEZCU3l4SFFVTjZReXhoUVVGalFTeEhRVUZ6UWl4SFFVRkxMRWRCUVVzc1IwRkJTeXhIUVVOeVJDeEhRVU5IU2l4SlFVbEVUU3hIUVVGbExFTkJRMjVDTEZGQlEwRXNWMEZEUVN4VFFVTkJMRkZCUTBFc1QwRkRRU3hSUVVOQkxGVkJRMEVzVlVGRFFTeGpRVU5HTEVWQlJVMURMRWRCUVdWRUxFZEJRV0VzVFVGQlRTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVZHVSQ3hUUVVGVFJTeEhRVUZOUXl4RlFVRkxReXhGUVVGTlF5eEZRVUZSTEVkQlFVOHNRMEZGZGtNc1NVRkJUVU1zUlVGQlR5eERRVU5ZTEU5QlFWRkVMRVZCUVZGRUxFVkJRVXNzVDBGQlUxSXNTVUZCUVN4SFFVRkxUeXhGUVVGSkxGRkJRVmxETEVWQlFVc3NVVUZCVlN4RFFVRkRMRWRCUTI1RkxFbEJRVXRFTEVWQlFVa3NTVUZCU1N4TlFVRk5ReXhGUVVGTExFZEJRVWNzUlVGRE0wSXNiVUpCUVc5Q1FTeEZRVUZMTEc5Q1FVRnpRa1FzUlVGQlNTeHJRa0ZEY2tRc1JVRkRRU3hQUVVGUExFbEJRVWxKTEVWQlFWTkVMRU5CUVVrc1EwRkRNVUlzUTBGRlFTeFRRVUZUUlN4SFFVRlZMRVZCUVVjc1EwRkRjRUlzVDBGQlR5eEZRVUZKTEVWQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNc1JVRkJTU3hMUVVGTExFdEJRVXNzUTBGQlF5eERRVU0xUXl4RFFVZEJMRk5CUVZORExFZEJRVkZETEVWQlFWRkRMRVZCUVZORExFVkJRVlZETEVWQlFVOURMRVZCUVZFc1EwRkRla1FzU1VGQlRVTXNSVUZCVDB3c1JVRkJUMGtzUTBGQlRTeEZRVUZGUml4RFFVRlJMRVZCUTJ4RFNTeEZRVUZOVEN4RlFVRlJReXhEUVVGUkxFVkJRVWxITEVWQlF6RkNSU3hGUVVGWExFdEJRVXNzUzBGQlMwUXNRMEZCUnl4SlFVRk5MRXRCUVVzc1MwRkJTMGdzUlVGQlRVTXNRMEZCVFN4RFFVRkRMRVZCUlhKRVNTeEZRVU5GTEVOQlFVTkVMRWRCUVZsS0xFVkJRVTFETEVOQlFVMHNTVUZCVFN4SFFVRkxMRXRCUVVzc1NVRkJTVVVzUTBGQlJ5eEhRVUZMTEVWQlFVbFNMRWRCUVZWUkxFTkJRVWNzUlVGQlNTeExRVUZMTEUxQlFVMUJMRU5CUVVjc1JVRkROVVpJTEVWQlFVMURMRU5CUVUwc1IwRkJTMGtzUlVGRGFrSlFMRVZCUVZGRExFTkJRVkVzUjBGQlMwMHNSVUZCVVVnc1EwRkRMMElzUTBGSFFTeFRRVUZUU1N4SFFVRm5RbFFzUlVGQlVWVXNSVUZCVFN4RFFVTnlRMjVDTEVkQlFXRXNUMEZCVHl4RFFVRkRiMElzUlVGQlZVTXNTVUZEZUVKRExFVkJRVmxJTEVWQlFVdEZMRU5CUVU4c1EwRkJReXhGUVUxeVFrUXNSMEZNU0VFc1IwRkRSbG9zUjBGQlVVTXNSVUZCVVZVc1JVRkJUVU1zUlVGQlZVUXNSVUZCVFVVc1EwRkJUeXhGUVVWNFEwRXNSMEZKVWl4SlFVRkpMRU5CUTFRc1EwRmxRU3hKUVVGeFFtWXNSVUZCY2tJc1RVRkJjVUpwUWl4RFFVRlRMRU5CU1RWQ0xGbEJRVmxETEVWQlFWRXNRMEZEYkVJc1NVRkJUVU1zUlVGQlYwUXNSVUZCVHl4eFFrRkJkVUlzV1VGQll5eEhRVWszUkN4TFFVRkxMRTlCUVZOQkxFVkJRVThzVDBGSmNrSXNTMEZCU3l4SlFVRk5RU3hGUVVGUExFdEJRVTlGTEVkQlFVOHNUMEZCVHl4RlFVbDJReXhMUVVGTExHMUNRVUZ4UWtRc1JVRkJWeXhYUVVGaExGTkJTV3hFTEV0QlFVc3NVVUZCVlVRc1JVRkJUeXhUUVVGWExFdEJTV3BETEV0QlFVc3NUMEZCVTBNc1JVRkJWek5DTEVkQlFXbENTaXhIUVVreFF5eExRVUZMTEdkQ1FVRnJRaXhGUVVONlFpeERRVmRCTEU5QlFVOHNWMEZCVjJsRExFVkJRVTlETEVWQlFVMHNRMEZETjBJc1QwRkJUMHdzUlVGQlV5eFhRVUZYTEVOQlFVVXNZVUZCWTBrc1EwRkJUU3hGUVVGSFF5eERRVUZKTEVOQlF6RkVMRU5CY1VKQkxFOUJRVThzVjBGQlYwTXNSVUZCUzBRc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGFFTXNSMEZCU1VNc1IwRkJUeXhOUVVGUkxFOUJRVTlCTEVkQlFWRXNVMEZEYUVNc1RVRkJUU3hKUVVGSlF5eEhRVU5TTEN0RVFVTkZSQ3hKUVVGUkxFdEJRVThzVDBGQlV5eFBRVUZQUVN4RFFVTnFReXhGUVVOR0xFVkJSMFlzVDBGQlR5eEpRVUZKVGl4RlFVRlRMRU5CUTJ4Q0xFOUJRVkZSTEVkQlFXZENSaXhGUVVGTFRpeEZRVUZUTEdGQlFXRXNSVUZEYmtRc1NVRkJTMGNzUjBGQlR5eFhRVUZYUlN4RFFVRkpMRVZCUXpOQ0xHMUNRVUZ2UWtFc1JVRkJTeXhyUWtGRE0wSXNRMEZCUXl4RFFVTklMRU5CV1VFc1QwRkJUeXhwUWtGQmFVSkpMRVZCUVdNc1EwRkRjRU1zUjBGQlNVTXNSMEZCVTBRc1EwRkJXU3hGUVVOMlFpeFBRVUZQVkN4RlFVRlRMRmRCUVZkVExFTkJRVmtzUlVGRGJFTXNSMEZCU1ZRc1JVRkJVeXhYUVVGWFV5eERRVUZaTEVWQlEzcERMRTlCUVU5QkxFVkJRMFlzUjBGQlNTeFBRVUZQUVN4SFFVRnBRaXhUUVVOcVF5eFBRVUZQVkN4RlFVRlRMRmRCUVZkVExFTkJRVmtzUlVGRmRrTXNUVUZCVFN4SlFVRkpSaXhIUVVOU0xEWkNRVUUyUWtVc1EwRkJXU3haUVVGWkxFOUJRVTlCTEVOQlFWa3NSVUZETVVVc1EwRkZTaXhEUVdWQkxFOUJRVThzVVVGQlVVVXNSVUZCVFU0c1JVRkJUU3hEUVVONlFpeEhRVUZOTEVOQlFVTlBMRU5CUVUwc1JVRkJTVU1zUjBGQmFVSkdMRU5CUVVrc1JVRkRkRU1zVDBGQlNVTXNSVUZEUzFvc1JVRkJVeXhYUVVGWFdTeEZRVUZSVUN4RFFVRkpMRVZCUldoRFRDeEZRVUZUTEZGQlFWRXNZVUZCWXl4alFVRmpWeXhEUVVGSkxDdENRVUVyUWl4RFFVVXpSaXhEUVdsQ1FTeFBRVUZQTEZsQlFWbEJMRVZCUVUxT0xFVkJRVTBzUTBGRE4wSXNSMEZCVFN4RFFVRkRUeXhEUVVGTkxFVkJRVWxGTEVkQlFXbENTQ3hEUVVGSkxFVkJRM1JETEU5QlFVbERMRVZCUTB0YUxFVkJRVk1zVjBGQlYxa3NSVUZCVVZBc1EwRkJTU3hGUVVWb1Ewd3NSVUZCVXl4UlFVRlJMR0ZCUVdNc1kwRkJZMWNzUTBGQlNTd3JRa0ZCSzBJc1EwRkZNMFlzUTBGUlFTeFBRVUZQTEZGQlFWRkpMRVZCUVZGRExFVkJRV01zUzBGQlRTeERRVU42UXl4SFFVRkpMRU5CUVVORUxFVkJRMGdzVFVGQlRTeEpRVUZKVWl4SFFVRnhRaXhyUkVGQmEwUXNSVUZIYmtZc1NVRkJUVlVzUlVGQlZVWXNZVUZCYTBKSExFZEJRVlZJTEVWQlFWTXNTVUZCU1Vjc1IwRkJVVWdzUlVGQlVVTXNRMEZCVnl4RlFVVndSaXhIUVVGSlJ5eEZRVUZUTEdWQlExZ3NUVUZCVFN4SlFVRkpReXhIUVVGeFFrZ3NRMEZCVHl4RlFVVjBReXhQUVVGUExFbEJRVWxxUWl4RlFVRlRMRU5CUVVVc1VVRkJRV2xDTEVOQlFWRXNRMEZCUXl4RFFVVnVReXhEUVV0QkxFOUJRVThzWTBGQlkwa3NSVUZCVFN4RFFVTjZRaXhKUVVGTlF5eEZRVUZoTEVOQlEycENMRXRCUVUwc1VVRkRUaXhOUVVGUExGRkJRMUFzVVVGQlV5eFhRVU5VTEZOQlFWVXNWMEZEVml4TlFVRlBMRk5CUTFBc1QwRkJVU3hUUVVOU0xFdEJRVTBzVVVGRFRpeE5RVUZQTEZGQlExQXNTVUZCU3l4UFFVTk1MRXRCUVUwc1QwRkRUaXhMUVVGTkxGRkJRMDRzVFVGQlR5eFJRVU5RTEU5QlFWRXNWVUZEVWl4UlFVRlRMRlZCUTFRc1QwRkJVU3hWUVVOU0xGRkJRVk1zVlVGRFZDeFpRVUZoTEdWQlEySXNZVUZCWXl4alFVTm9RaXhGUVVGRlJDeEhRVUZQUVN4RlFVRkxMRmxCUVZrc1EwRkJVU3hGUVVWc1F5eEhRVUZKTEVOQlFVTkRMRVZCUVZrc1RVRkJUU3hKUVVGSlF5eEhRVUZwUWtZc1EwRkJTU3hGUVVWb1JDeFBRVUZQUXl4RFFVTlVMRU5CVDBFc1QwRkJUeXhYUVVGWFJTeEZRVUZITEVOQlEyNUNMRTlCUVZGQkxFZEJRVXRCTEVWQlFVVXNhVUpCUVc5Q0xFVkJRM0pETEVOQlRVRXNTVUZCU1N4UlFVRlRMRU5CUTFnc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eEpRVUZKTEU5QlFWTXNTVUZETVVNc1EwRlBRU3hKUVVGSkxHbENRVUZyUWl4RFFVTndRaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEVsQlFVa3NaMEpCUVd0Q0xFbEJRMjVFTEVOQmQwSkJMRk5CUVZORExFVkJRVXR3UWl4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVWMlFpeEpRVUZOY1VJc1JVRkJWVU1zUjBGQlFYWkVMRVZCUVVFc1IwRkRXR2xETEVkQlJGY3NRMEZGWkN4TlFVRlBRU3hGUVVGTExGRkJRVlVzU1VGQlUwRXNSVUZCU3l4UlFVRlZMRVZCUTJoRUxFZEJRMEVzVDBGQlR5eExRVUZMTEZGQlExSjFRaXhIUVVGVkxFOUJRVThzUzBGQlN5eEpRVUZMUml4RFFVRlBMRVZCUVVVc2VVSkJRWGxDTEV0QlFVMUVMRU5CUVVjc1JVRkRkRVY0UkN4RlFVTk9MRU5CWlVFc1VVRkJVVzlETEVWQlFVOHNRMEZCUXl4RlFVRkhMRU5CUTJwQ0xFbEJRVTEzUWl4RlFVRkpja1FzUjBGRFVDeEpRVUZMTmtNc1IwRkJVeXhEUVVOaUxFbEJRVTFUTEVWQlFVMHNTMEZCU3l4UFFVRlBWQ3hEUVVGSkxFVkJRelZDTEU5QlFVbDBRaXhGUVVGWkswSXNRMEZCUnl4RlFVTldMRXRCUlVZc1MwRkJTeXhKUVVOVUxHZENRVUZuUWtnc1IwRkJRWFpFTEVWQlFVRXNRMEZCUlN4TlFVRlBMRTlCUVZFc1dVRkJZU3hSUVVGWGFVTXNSMEZCZWtNc1EwRkJLME1zUzBGQlRXZENMRVZCUVVzc1RVRkJUU3hGUVVGSExFVkJRVVVzUTBGQlJTeEZRVUZETEVWQlEzaEdMRTlCUVU5VExFTkJRVWNzUTBGRFppeERRVUZETEVWQlEwRXNUMEZCVVVNc1IwRkJUVUVzUTBGQlF5eEZRVVZzUWl4UFFVRlBMRXRCUVVzc1NVRkRWQ3hqUVVGak0wUXNSVUZCUVN4RFFVRkZMRXRCUVUwc1kwRkJaU3hOUVVGUGFVTXNSVUZCU3l4WFFVRmhMRlZCUVdGQkxFVkJRVTBzUlVGRGFrWXNUMEZCVDNkQ0xFTkJRVU1zUTBGRFlpeERRVTlCTEZWQlFWY3NRMEZEVkN4UFFVRkxMRXRCUVVzc1VVRkRTSHBFTEVWQlFVRXNSMEZCU3l4TFFVRkxMRkZCUkZNc1EwRkJReXhEUVVVM1FpeERRVmxCTEU5QlFWRXNRMEZGVGl4SFFVRkpMRU5CUVVNc1MwRkJTeXhSUVVGVExFOUJRVThzUzBGRk1VSXNTVUZCU1RSRUxFVkJRVWtzU1VGRFVpeFBRVUZKTEV0QlFVc3NVVUZCVlN4SlFVRkhRU3hIUVVGTExFdEJRVXNzVFVGQlVTeE5RVU53UXl4TFFVRkxMRk5CUVZjc1IwRkJTeXhMUVVGTExGZEJRV0VzUzBGQlIwRXNSMEZCU3l4TFFVRkxMRTlCUVZNc1MwRkJTeXhUUVVGWExFVkJRVWtzUzBGRGFrWXNTMEZCU3l4UlFVRlZMRWxCUVVkQkxFZEJRVXNzUzBGQlN5eE5RVUZSTEV0QlEzQkRMRXRCUVVzc1QwRkJVeXhKUVVGSFFTeEhRVUZMTEV0QlFVc3NTMEZCVHl4TlFVTnNReXhMUVVGTExGRkJRVlVzUjBGQlN5eExRVUZMTEZWQlFWa3NSMEZCU3l4TFFVRkxMRlZCUVZrc1IwRkJTeXhMUVVGTExHVkJRV2xDTEV0QlEzaEdRU3hIUVVGTExFdEJRMGdzUzBGQlN5eFJRVUZWTEVsQlFVZEJMRWRCUVVzc1MwRkJTeXhOUVVGUkxFdEJRM0JETEV0QlFVc3NWVUZCV1N4SlFVRkhRU3hIUVVGTExFdEJRVXNzVVVGQlZTeE5RVU40UXl4TFFVRkxMRlZCUVZrc1IwRkJTeXhMUVVGTExHVkJRV2xDTEV0QlJ6bERRU3hIUVVGTFF5eEhRVUZSTEV0QlFVc3NVVUZCVlN4TFFVRkxMR0ZCUVdVc1NVRkJUU3hEUVVGRExFVkJRVWtzUzBGRGVrUkVMRWxCUVUwc1RVRkJTMEVzUjBGQlN5eFBRVU5pUVN4RFFVTlVMRU5CYTBKQkxGVkJRVlV6UWl4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVOdVFpeEhRVUZKTEVOQlFVTXNTMEZCU3l4UlFVRlRMRTlCUVU4c1MwRkZNVUlzU1VGQlRUWkNMRVZCUVZNc1MwRkJTeXhUUVVGVExFVkJRemRDTEVkQlFVbEJMRVZCUVZNc1IwRkJTMEVzUjBGQlZTeE5RVUZWTEU5QlFVOHNTMEZGTjBNM1FpeEZRVUZQYWtNc1JVRkJRU3hEUVVOTUxIRkNRVUZ6UWl4SFFVTjBRaXhuUWtGQmFVSXNSMEZEYWtJc1kwRkJaU3hIUVVObUxFOUJRVkVzV1VGRFRHbERMRWRCUjB3c1NVRkJUVGhDTEVWQlFWRXNTMEZCU3l4UlFVRlJMRkZCUVZNc1ZVRkJWeXhWUVVGWExHTkJRV01zUlVGRmNFVldMRVZCUVUxd1FpeEZRVUZMTEZOQlFWY3NVVUZCVlN4UFFVRlRMRk5CUlhwRExFTkJRVU5CTEVWQlFVc3NhVUpCUVcxQ09FSXNSVUZCVFN4VlFVRlpMRWRCUVV0QkxFVkJRVTBzWlVGQmFVSXNTMEZEZWtWV0xFZEJRVTl3UWl4RlFVRkxMRk5CUVZjc1VVRkJWU3hMUVVGUExFOUJRM0JETEVOQlFVTkJMRVZCUVVzc2MwSkJRWGRDT0VJc1JVRkJUU3hsUVVGcFFpeExRVU4yUkZZc1IwRkJUeXhUUVVsWUxFbEJRVWxYTEVWQlFVMUVMRVZCUVUwc1UwRkJVMVlzUTBGQlJ5eEZRVVUxUWl4UFFVRkpjRUlzUlVGQlN5eG5Ra0ZEVUN0Q0xFVkJRVTBzU1VGQlRVRXNSMEZIVUVFc1EwRkRWQ3hEUVUxQkxGRkJRVk1zUTBGRFVDeFBRVUZQTEV0QlFVc3NUVUZCVFN4RFFVTndRaXhEUVUxQkxGVkJRVmNzUTBGRFZDeFBRVUZQTEV0QlFVc3NUVUZCVFN4RFFVTndRaXhEUVUxQkxGVkJRVmNzUTBGRFZDeFBRVUZQTEV0QlFVc3NSMEZCUnl4alFVRmpMRU5CUXk5Q0xFTkJUVUVzVTBGQlZTeERRVU5TTEU5QlFVOHNTMEZCU3l4VFFVRlRMRU5CUTNaQ0xFTkJUMEVzUzBGQlMwTXNSVUZCVlN4RFFVTmlMRWRCUVVrc1EwRkJReXhMUVVGTExGRkJRVk1zVDBGQlR5eExRVVV4UWl4SlFVRk5NVVFzUlVGQlRYRkNMRVZCUVZNc2FVSkJRV2xDY1VNc1EwRkJVU3hGUVVNMVEwTXNSVUZCVXl4RFFVRkRMRVZCUlZvc1VVRkJWME1zUzBGQlN5OUVMRWxCUTFablJTeEhRVUZsTjBRc1JVRkJTU3hQUVVGUk5FUXNRMEZCUXl4SFFVRkxReXhIUVVGbExFdEJRVXNzVDBGQlVVUXNRMEZCUXl4TFFVTm9SVVFzUlVGQlQwTXNRMEZCUXl4RlFVRkpOVVFzUlVGQlNTeEpRVUZKTkVRc1EwRkJReXhGUVVGSkxFdEJRVXNzU1VGQlNVRXNRMEZCUXl4SFFVbDJReXhQUVVGUE4wUXNSMEZCVFN4TFFVRk5MRU5CUVVVc1QwRkJVVFJFTEVOQlFVOHNSVUZCUnl4RlFVRkpMRU5CUXpkRExFTkJUMEVzVFVGQlRVUXNSVUZCVlN4RFFVTmtMRWRCUVVrc1EwRkJReXhMUVVGTExGRkJRVk1zVDBGQlR5eExRVVV4UWl4SlFVRk5NVVFzUlVGQlRYRkNMRVZCUVZNc2FVSkJRV2xDY1VNc1EwRkJVU3hGUVVNNVF5eFBRVUZQTEV0QlFVc3NTMEZCU3pGRUxFVkJRVWtzVDBGQlR5eERRVUZETEVOQlF5OUNMRU5CVTBFc1UwRkJVemhFTEVWQlFVa3NRMEZEV0N4SFFVRkpMRU5CUVVNc1MwRkJTeXhSUVVGVExFOUJRVThzUzBGRE1VSXNTVUZCVFVnc1JVRkJVeXhEUVVGRExFVkJRMmhDTEZGQlFWZERMRXRCUVVzc1QwRkJUeXhMUVVGTExFdEJRVXNzVFVGQlRTeEZRVU55UTBRc1JVRkJUME1zUTBGQlF5eEZRVUZKUnl4SFFVRlRSQ3hGUVVGSExFdEJRVXNzVDBGQlQwWXNRMEZCUXl4RlFVRkhRU3hEUVVGRExFTkJRVU1zUlVGRk5VTXNUMEZCVHpkRUxFZEJRVTBzUzBGQlRTeERRVUZGTEU5QlFWRTBSQ3hEUVVGUExFVkJRVWNzUlVGQlNTeERRVU0zUXl4RFFWVkJMRWxCUVVscVFpeEZRVUZOTEVOQlExSXNUMEZCVHl4TFFVRkxja0lzUlVGQlV5eGpRVUZqY1VJc1EwRkJTU3hEUVVGRExFTkJRekZETEVOQlUwRXNTVUZCU1hOQ0xFVkJRVkVzUTBGRFZpeEhRVUZKTEVOQlFVTXNTMEZCU3l4UlFVRlRMRTlCUVU4c1MwRkZNVUlzU1VGQlRVTXNSVUZCVVhoRkxFbEJRVUVzUjBGQlN5eExRVUZMTEZGQlFWZHZReXhIUVVGblFtMURMRVZCUVZFelF5eEZRVUZUTEdGQlFXRXNSMEZEYWtZc1QwRkJUM1JDTEVkQlFVMHNTMEZCVFN4RFFVRkZMRTlCUVZGclJTeERRVUZOTEVOQlFVTXNRMEZEZEVNc1EwRlBRU3haUVVGWkxFTkJRVVVzVDBGQlFVTXNSVUZCVVN4blFrRkJRVU1zUlVGQmFVSXNiVUpCUVVGRExFTkJRVzFDTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTJoRkxFbEJRVTFETEVWQlFVMHNTMEZCU3l4SlFVRkpMRTFCUVUwc1EwRkJSU3hQUVVGQlNDeEZRVUZSTEdkQ1FVRkJReXhEUVVGblFpeERRVUZETEVWQlEzQkVla01zUlVGQlR5eERRVUZGTEVsQlFVRXlReXhEUVVGSkxFVkJSV1lzVDBGQlNVUXNTVUZEUmpGRExFVkJRVXNzYlVKQlFYRkNNRU1zUjBGSGNrSnlSU3hIUVVGTkxFdEJRVTB5UWl4RFFVRkpMRU5CUTNwQ0xFTkJWVUVzUjBGQlIyZENMRVZCUVUwc1EwRkRVQ3hQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEZGQlFWRkJMRU5CUVVrc1JVRkJSU3hKUVVGSlFTeERRVUZKTEVWQlFVa3NSMEZEZGtRc1EwRlJRU3hYUVVGWkxFTkJRMVlzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4UFFVRlBMRXRCUXpGQ0xFbEJRVTE2UWl4RlFVRlBMRXRCUVVzc1UwRkJVeXhGUVVNelFpeFBRVUZCUkN4SFFVRm5RaXhMUVVGTExFOUJRVkZETEVOQlFVa3NSVUZETVVKc1FpeEhRVUZOTEV0QlFVMHNRMEZCUlN4UFFVRlJhMElzUTBGQlN5eEZRVUZITEVWQlFVa3NRMEZETTBNc1EwRlBRU3hYUVVGWGNVUXNSVUZCVHl4RFFVTm9RaXhIUVVGSkxFTkJRVU1zUzBGQlN5eFJRVUZUTEU5QlFVOHNTMEZGTVVJc1IwRkJTVUVzUlVGQlRTeFRRVUZYTEVWQlEyNUNMRTlCUVU4c1MwRkhWRUVzUlVGQlVVRXNSVUZCVFN4SlFVRkxReXhIUVVGTmJFUXNSVUZCVXl4alFVRmphMFFzUTBGQlF5eERRVUZETEVWQlJXeEVMRWxCUVUxRExFVkJRVkVzUTBGQlF5eEZRVU5pUXl4RlFVRmpMRU5CUVVNc1JVRkRabmhFTEVWQlFVOHNTMEZCU3l4VFFVRlRMRVZCUTI1Q2VVUXNSVUZGU2l4UlFVRlhaQ3hMUVVGTEwwUXNSMEZEWkN4SFFVRkplVVVzUlVGQlRTeFJRVUZSVml4RFFVRkRMRWRCUVVzc1JVRkJSeXhEUVVONlFtTXNSVUZCVjJRc1JVRkZXQ3hKUVVGSlpTeEZRVUZOTEVWQlIxWXNVVUZCVjBNc1MwRkJUVWdzUlVGRFprVXNSMEZCVHl4TFFVRkxMRTlCUVU5RExFTkJRVVVzUlVGQlJXaENMRU5CUVVNc1JVRkJTV0VzUlVGQldVY3NRMEZCUlN4RlFVTXhRMGdzUlVGQldVY3NRMEZCUlN4RlFVRkpMRVZCU1doQ04wTXNSMEZCVTJRc1JVRkJTekpETEVOQlFVTXNRMEZCUXl4SlFVTnNRbVVzUjBGQlR6RkVMRVZCUVVzeVF5eERRVUZETEVkQlIyWXNTVUZCVFdsQ0xFVkJRVWtzUzBGQlN5eE5RVUZOUml4RFFVRkhMRVZCUTNoQ1NDeEZRVUZOV2l4RFFVRkRMRVZCUVVscFFpeEZRVU5ZU2l4RlFVRlpZaXhEUVVGRExFZEJRVXRsTEVWQlFVMHNTVUZCVDBVc1JVRkJTU3hMUVVGUkxFbEJSek5ETEZGQlFWZERMRXRCUVZFM1JDeEZRVU5pY0VJc1IwRkJZU3hSUVVGUmFVWXNRMEZCU1N4RlFVRkpha1lzUjBGQllTeFJRVUZSSzBRc1EwRkJReXhIUVVOeVJIUkVMRWRCUVZFc1MwRkJTeXhQUVVGUlZ5eEZRVUZOTmtRc1JVRkJUVTRzUlVGQlQxb3NRMEZCUXl4RFFVa3ZReXhOUVVGWE4wSXNSMEZCVTJRc1JVRkJTekpETEVOQlFVTXNRMEZCUXl4SlFVTjZRbUVzUlVGQldXSXNRMEZCUXl4RlFVRkpNME1zUlVGQlN6SkRMRU5CUVVNc1IwRk5NMElzVVVGQlYyMUNMRXRCUVU5T0xFVkJRMXBCTEVWQlFWbE5MRU5CUVVjc1NVRkJUU3hKUVVOMlFsQXNSVUZCVFVVc1EwRkJVU3hIUVVOYVN5eEpRVUZSVEN4RlFVRlhSQ3hGUVVGWlRTeERRVUZITEVWQlFVbE9MRVZCUVZsTkxFTkJRVWNzUlVGQlNTeExRVUZMTEU5QlFVOU1MRU5CUVZFc1JVRkJSVXNzUTBGQlJ5eEhRVWw0Uml4UFFVRlBhRVlzUjBGQlRTeExRVUZOTEVOQlFVVXNUMEZCVVhsRkxFTkJRVTBzUlVGQlJ5eEZRVUZKTEVWQlFVVXNWVUZCVlN4RFFVTjRSQ3hEUVU5QkxGRkJRVk1zUTBGRFVDeEhRVUZKTEVOQlFVTXNTMEZCU3l4UlFVRlRMRTlCUVU4c1MwRkRNVUlzU1VGQlRWRXNSVUZCVlN4RFFVRkRMRVZCUTJwQ0xGRkJRVmR3UWl4TFFVRkxMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzUlVGRGNrTnZRaXhGUVVGUmNFSXNRMEZCUXl4RlFVRkpMRXRCUVVzc1QwRkJUMEVzUTBGQlF5eEpRVUZOTEVWQlFVa3NSVUZCU1N4RFFVRkRMRXRCUVVzc1QwRkJUMEVzUTBGQlF5eEZRVVY0UkN4UFFVRlBOMFFzUjBGQlRTeExRVUZOTEVOQlFVVXNUMEZCVVdsR0xFTkJRVkVzUlVGQlJ5eEZRVUZKTEVOQlF6bERMRU5CVFVFc1NVRkJTU3hQUVVGUkxFTkJRMVlzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4UFFVRlBMRTlCUVZNc1JVRkJTU3hIUVVOcVJDeERRVTFCTEVsQlFVa3NWVUZCVnl4RFFVTmlMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzVDBGQlR5eFZRVUZaTEVWQlFVa3NSMEZEY0VRc1EwRk5RU3hKUVVGSkxGRkJRVk1zUTBGRFdDeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRTlCUVU4c1VVRkJWU3hGUVVGSkxFZEJRMnhFTEVOQlRVRXNTVUZCU1N4UFFVRlJMRU5CUTFZc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eFBRVUZQTEU5QlFWTXNSVUZCU1N4SFFVTnFSQ3hEUVUxQkxFbEJRVWtzVFVGQlR5eERRVU5VTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1QwRkJUeXhOUVVGUkxFVkJRVWtzUjBGRGFFUXNRMEZOUVN4SlFVRkpMRTlCUVZFc1EwRkRWaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEU5QlFVOHNUMEZCVXl4RlFVRkpMRWRCUTJwRUxFTkJUVUVzU1VGQlNTeFRRVUZWTEVOQlExb3NUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhQUVVGUExGTkJRVmNzUlVGQlNTeEhRVU51UkN4RFFVMUJMRWxCUVVrc1UwRkJWU3hEUVVOYUxFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NUMEZCVHl4VFFVRlhMRVZCUVVrc1IwRkRia1FzUTBGTlFTeEpRVUZKTEdOQlFXVXNRMEZEYWtJc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eFBRVUZQTEdOQlFXZENMRVZCUVVrc1IwRkRlRVFzUTBGUFFTeEpRVUZKTEZOQlFWVXNRMEZEV2l4UFFVRlBMRXRCUVVzc1ZVRkJXU3hKUVVNeFFpeERRVTFCTEVsQlFVa3NaVUZCWjBJc1EwRkRiRUlzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4UlFVRlJMRTlCUVZNc1NVRkRPVU1zUTBGTlFTeEpRVUZKTEc5Q1FVRnhRaXhEUVVOMlFpeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRkZCUVZFc1dVRkJZeXhKUVVOdVJDeERRVkZCTEU5QlFVOURMRVZCUVU4c1EwRkxXaXhIUVVwSkxFTkJRVU1zUzBGQlN5eFRRVUZYTEVOQlFVTkJMRVZCUVUwc1UwRkplRUlzUTBGQlF5eExRVUZMTEVsQlFVa3NUMEZCVDBFc1JVRkJUU3hIUVVGSExFVkJRelZDTEUxQlFVOHNSMEZIVkN4VFFVRlRReXhGUVVGSFF5eEZRVUZKUXl4RlFVRkpMRU5CUld4Q0xFOUJRVWxFTEVsQlFVOHNVVUZCWVVFc1NVRkJUeXhGUVVGVlF5eEpRVUZQTEZGQlFXRkJMRWxCUVU4c1JVRkROMFJFTEVsQlFVOURMRU5CUTJoQ0xFTkJSVUVzVVVGQlYySXNTMEZCU3pGRkxFZEJRMlFzUjBGQlNTeERRVUZEY1VZc1JVRkJSeXhMUVVGTExFOUJRVTlZTEVOQlFVTXNSVUZCUjFVc1JVRkJUU3hQUVVGUFZpeERRVUZETEVOQlFVTXNSVUZEY2tNc1RVRkJUeXhIUVVkWUxFMUJRVThzUlVGRFZDeERRVU5HTEVWRE9UTkNRU3hKUVVGTll5eEhRVUZWTEcxQ1FVZG9RaXhUUVVGVFF5eEhRVUZwUWtNc1JVRkJUME1zUlVGQlN5eERRVU53UXl4TlFVRkpMRU5CUVVORUxFZEJRVk1zUTBGQlEwRXNSVUZCVFN4UlFVTmFSU3hIUVVGVExGRkJRVkVzTUVKQlFUQkNMRVZCUTNwRExFTkJRVU5FTEVkQlFVOHNRMEZCUTBFc1JVRkJTU3hSUVVObVF5eEhRVUZUTEZGQlFWRXNkMEpCUVhkQ0xFVkJRM1pEUkN4RlFVRk5SQ3hGUVVOU1JTeEhRVUZUTEZGQlEyUXNiVUpCUTBFc2NVVkJRWEZGUml4RlFVRk5MRTFCUVUwc1EwRkJReXhaUVVGWlF5eEZRVUZKTEUxQlFVMHNRMEZCUXl4RlFVTXpSeXhGUVVWUExFbEJSVmdzUTBGalFTeEpRVUZ4UWtNc1IwRkJja0lzVFVGQmNVSkRMRU5CUVZNc1EwRkpOVUlzV1VGQldVTXNSVUZCVVN4RFFVbHNRaXhMUVVGTExFVkJRVWxCTEVWQlFVOHNUVUZKYUVJc1MwRkJTeXhGUVVGSlFTeEZRVUZQTEVsQlNXaENMRXRCUVVzc1VVRkJWVUVzUlVGQlR5eFRRVUZYTEV0QlNXcERMRXRCUVVzc1owSkJRV3RDTEVWQlEzcENMRU5CVVVFc1QwRkJUeXhSUVVGUlF5eEZRVUZSUXl4RlFVRmpMRXRCUVUwc1EwRkRla01zUjBGQlNTeERRVUZEUkN4RlFVTklMRTFCUVUwc1NVRkJTVVVzUjBGQmNVSXNhMFJCUVd0RUxFVkJSMjVHTEVsQlFVMURMRVZCUVZWSUxHRkJRV3RDU1N4SFFVRlZTaXhGUVVGVExFbEJRVWxKTEVkQlFWRktMRVZCUVZGRExFTkJRVmNzUlVGRmNFWXNSMEZCU1Vrc1JVRkJVeXhsUVVOWUxFMUJRVTBzU1VGQlNVTXNSMEZCY1VKSUxFTkJRVThzUlVGRmRFTXNUMEZCVHl4SlFVRkpUQ3hGUVVGVExFTkJRVVVzVVVGQlFVc3NRMEZCVVN4RFFVRkRMRU5CUlc1RExFTkJVVUVzVDBGQlR5eGpRVUZqVWl4RlFVRlBReXhGUVVGTExFTkJReTlDTEVsQlFVMVhMRVZCUVdGRExFZEJRV2xDWWl4RFFVRkxMRVZCUTNaRFl5eEZRVUZYUkN4SFFVRnBRbG9zUTBGQlJ5eEZRVVV6UW1Nc1JVRkJaMEpvUWl4SFFVRnBRbUVzUlVGQldVVXNRMEZCVVN4RlFVVXpSQ3hQUVVGSlF5eEhRVUZwUWl4TFFVTmFMRWxCUVVsYUxFVkJRVk1zUTBGRGJFSXNUVUZCVDFNc1JVRkRVQ3hKUVVGTFJTeERRVU5RTEVOQlFVTXNSVUZGVFVNc1EwRkZXQ3hEUVZGQkxFOUJRVThzVFVGQlRXWXNSVUZCVDJkQ0xFVkJRVlVzUTBGRE5VSXNTVUZCVFVNc1JVRkJUVU1zUlVGQlV5eHBRa0ZCYVVKR0xFTkJRVkVzUlVGRE5VTkhMRVZCUVV0T0xFZEJRV2xDWWl4RFFVRkxMRVZCUXpkQ0xFOUJRVTlITEVWQlFWTXNZMEZCWTJkQ0xFVkJRVWxCTEVWQlFVY3NTMEZCUzBZc1EwRkJSeXhEUVVGRExFTkJRMmhFTEVOQlVVRXNUMEZCVHl4UFFVRlBhRUlzUlVGQlMyVXNSVUZCVlN4RFFVTXpRaXhKUVVGTlF5eEZRVUZOUXl4RlFVRlRMR2xDUVVGcFFrWXNRMEZCVVN4RlFVTTFRMGNzUlVGQlMwNHNSMEZCYVVKYUxFTkJRVWNzUlVGRE0wSXNUMEZCVDBVc1JVRkJVeXhqUVVGalowSXNSVUZCUnl4TlFVRk5SaXhEUVVGSExFVkJRVWRGTEVOQlFVVXNRMEZEYWtRc1EwRlZRU3hQUVVGUExGRkJRVkZETEVWQlFVMURMRVZCUVUwc1EwRkRla0lzUjBGQlRTeERRVUZEUXl4RlFVRkhReXhEUVVGRExFZEJRVXRJTEVkQlFWRXNTVUZCU1N4TlFVRk5MRWxCUVVzc1EwRkJReXhGUVVONFF5eEhRVUZKUlN4SFFVRkxReXhGUVVGSExFTkJRMVlzU1VGQlNYWkNMRVZCUVU5M1FpeEZRVU5ZTEVkQlFVa3NRMEZEUm5oQ0xFVkJRVkY1UWl4RlFVRlRMRkZCUVZGSUxFVkJRVWRFTEVOQlFVa3NSVUZEYUVOSExFVkJRV1Y0UWl4RlFVRk5MRTlCUTNaQ0xFOUJRVk4xUWl4RlFVRkhMRU5CUTFaRExFVkJRV1VzUlVGRGFrSXNRMEZGUVN4SlFVRkpka0lzUlVGQlMzbENMRVZCUTFRc1IwRkJTU3hEUVVOR2VrSXNSVUZCVFhkQ0xFVkJRVk1zVVVGQlVVWXNSVUZCUjBZc1EwRkJTU3hGUVVNNVFrc3NSVUZCWVhwQ0xFVkJRVWtzVDBGRGJrSXNUMEZCVTNOQ0xFVkJRVWNzUTBGRFZrY3NSVUZCWVN4RlFVTm1MRU5CUlVFc1IwRkJTVVlzUjBGQlowSkZMRVZCUTJ4Q0xFOUJRVTkyUWl4RlFVRlRMR05CUVdOSUxFVkJRVTlETEVOQlFVY3NSVUZITVVNc1IwRkJTWFZDTEVWQlFXTXNRMEZEYUVJc1NVRkJUVkFzUlVGQlRVTXNSVUZCVXl4UlFVRlJTeXhGUVVGSFJpeERRVUZKTEVWQlEzQkRMRWRCUVVsS0xFVkJRVWtzVVVGRFRpeFBRVUZQWkN4RlFVRlRMRTFCUVUxSUxFVkJRVTlwUWl4RFFVRkhMRU5CUlhCRExGTkJRVmRUTEVWQlFWa3NRMEZEY2tJc1NVRkJUVlFzUlVGQlRVTXNSVUZCVXl4UlFVRlJTU3hGUVVGSFJDeERRVUZKTEVWQlEzQkRMRWRCUVVsS0xFVkJRVWtzVVVGRFRpeFBRVUZQWkN4RlFVRlRMRTlCUVU5R0xFVkJRVXRuUWl4RFFVRkhMRU5CUlc1RExFTkJRMFlzUTBGRFFTeFBRVUZQWkN4RlFVRlRMRkZCUVZFc1lVRkJZeXhqUVVGamFVSXNRMEZCU1N3clFrRkJLMElzUTBGRGVrWXNRMEZQUVN4UFFVRlBMRmRCUVZkUExFVkJRVWNzUTBGRGJrSXNUMEZCVVVFc1IwRkJTMEVzUlVGQlJTeHBRa0ZCYjBJc1JVRkRja01zUTBGTlFTeEpRVUZKTEU5QlFWRXNRMEZEVml4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFVkJRVWtzU1VGRGFrTXNRMEZOUVN4SlFVRkpMRXRCUVUwc1EwRkRVaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEVWQlFVa3NTVUZEYWtNc1EwRk5RU3hKUVVGSkxGTkJRVlVzUTBGRFdpeFBRVUZQTEV0QlFVc3NaMEpCUVd0Q0xFbEJRMmhETEVOQlRVRXNTVUZCU1N4bFFVRm5RaXhEUVVOc1FpeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRkZCUVZFc1QwRkJVeXhKUVVNNVF5eERRVTFCTEVsQlFVa3NiMEpCUVhGQ0xFTkJRM1pDTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1VVRkJVU3haUVVGakxFbEJRMjVFTEVOQlQwRXNUMEZCVDBNc1JVRkJUeXhsUVVGblFpeERRVU0xUWl4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExGZEJRV1ZCTEVOQlFVc3NSVUZCUlN4SlFVRkpRU3hEUVVGSkxFVkJRVWtzUjBGREwwUXNRMEZUUVN4TlFVRk5RU3hGUVVGUExHVkJRV2RDTEVOQlF6TkNMRWRCUVVrc1EwRkJReXhMUVVGTExGRkJRVk1zVFVGQlR5eExRVU14UWl4SlFVRk5OVUlzUlVGQlVTeExRVUZMTEUxQlFVMHNVVUZCVVRSQ0xFTkJRVWtzUlVGRGJrTXpRaXhGUVVGTkxFdEJRVXNzU1VGQlNTeFJRVUZSTWtJc1EwRkJTU3hGUVVNM1FpeFBRVUZQTEV0QlFVc3NUVUZCVFROQ0xFVkJRVWtzUzBGQlMwUXNSVUZCVHpSQ0xFTkJRVWtzUlVGQlJTeEpRVUZKUVN4RFFVRkpMRU5CUVVNc1JVRkJTU3hEUVVOMlJDeERRVTlCTEZGQlFWRkJMRVZCUVUwc1EwRkRXaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEZGQlFWRXNSMEZCU3l4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFVkJRVVVzVVVGQlVTeExRVUZMTEVWQlFVZEJMRU5CUVVrc1JVRkJTU3hGUVVOc1JpeERRVTFCTEZOQlFWVXNRMEZEVWl4UFFVRlBMRXRCUVVzc1JVRkJSU3hSUVVGUkxFbEJRVTBzUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZETjBNc1EwRlBRU3hSUVVGUlF5eEZRVUZWTEVOQlEyaENMRTlCUVVzc1MwRkJTeXhSUVVOSUxFdEJRVXNzUlVGQlNVRXNSVUZFVlN4RlFVVTFRaXhEUVU5QkxGTkJRVk5CTEVWQlFWVXNRMEZEYWtJc1QwRkJTeXhMUVVGTExGRkJRMGdzUzBGQlN5eEhRVUZMUVN4RlFVUlRMRVZCUlRWQ0xFTkJUMEVzVTBGQlUwRXNSVUZCVlN4RFFVTnFRaXhQUVVGTExFdEJRVXNzVVVGRFNDeExRVUZMTEVkQlFVdEJMRWRCUVZrc1MwRkJTeXhGUVVGSlFTeEZRVVJhTEVWQlJUVkNMRU5CVTBFc1NVRkJTU3hEUVVGRkxFMUJRVUUzUWl4RlFVRlBMRWxCUVVGRExFTkJRVWtzUlVGQlNTeERRVUZETEVWQlFVY3NRMEZEZGtJc1QwRkJTeXhMUVVGTExGRkJRMGhGTEVWQlFWTXNZMEZCWTBnc1IwRkJVeXhMUVVGTExFVkJRVWRETEVkQlFVOHNTMEZCU3l4RFFVRkRMRVZCUkd4RExFbEJSVFZDTEVOQlQwRXNWMEZCVnpaQ0xFVkJRVmNzUTBGRGNFSXNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhOUVVGUExFTkJRVU1zUlVGRE0wSXNTVUZCVFVNc1JVRkJVMFFzUlVGRFZpeEpRVUZKYWtJc1JVRkJaMElzUlVGRGNFSXNUMEZCVVcxQ0xFZEJRVTBzUzBGQlN5eFRRVUZUUVN4RFFVRkRMRU5CUVVNc1JVRkRPVUlzUzBGQlN5eEZRVU5TUXl4RlFVRlZMRU5CUVVNc1JVRkRWQ3hEUVVGRkxFTkJRVVVzUlVGQlNTeExRVU5XTEVWQlFVa3NSVUZGVGl4TFFVRlBMRVZCUVVrc1MwRkJTeXhIUVVGSExFTkJRMnBDTEVsQlFVMURMRVZCUVZGSUxFVkJRVThzUTBGQlF5eEhRVUZMTEV0QlFVc3NSVUZET1VKSkxFVkJRVThzUTBGQlEwUXNSVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJTU3hMUVVGTExFVkJRVWxCTEVWQlEzSkRSQ3hGUVVGUkxFdEJRVXM1UWl4RlFVRlRMR05CUVdNc1JVRkJSMmRETEVOQlFVa3NRMEZCUXl4RlFVTTFReXhGUVVGSlFTeEZRVU5LTEVkQlFVc3NRMEZEVUN4RFFVVkJMRTlCUVU5R0xFTkJRMVFzUTBGUlFTeFJRVUZSYWtJc1JVRkJWU3hEUVVOb1FpeEpRVUZOUXl4RlFVRk5ReXhGUVVGVExHbENRVUZwUWtZc1EwRkJVU3hGUVVVNVF5eEhRVUZKTEVOQlFVTXNTMEZCU3l4VFFVRlhMRU5CUVVORExFVkJRVWtzVTBGQlYwRXNSVUZCU1N4SFFVRkhMR05CUVdNc1NVRkJUU3hGUVVNNVJDeE5RVUZQTEVOQlFVTXNSVUZIVml4SFFVRkpMRU5CUVVVc1JVRkJRVXNzUTBGQlJTeEZRVUZKTEV0QlExWmpMRVZCUVUwc1JVRkRUa1FzUlVGRlNVWXNSVUZCVlN4RFFVRkRMRVZCUTJwQ0xFdEJRVTlZTEVWQlFVa3NTMEZCU3l4SFFVRkhMRU5CUTJwQ0xFbEJRVTFaTEVWQlFWRXNTMEZCU3l4TlFVRk5MRXRCUVV0cVFpeEZRVUZKTEZOQlFWVnZRaXhIUVVGTlFTeEZRVUZKUkN4RFFVRkhMRU5CUVVNc1JVRkRNVVJFTEVWQlFVOHNRMEZCUTBRc1JVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlNTeExRVUZMTEVWQlFVbEJMRVZCUTI1RFJDeEZRVUZSTEV0QlFVczVRaXhGUVVGVExHTkJRV050UWl4RlFVRkhZU3hEUVVGSkxFTkJRVU1zUlVGRE5VTmlMRVZCUVVsaExFVkJRMHBETEVkQlFVOHNRMEZEVkN4RFFVVkJMRTlCUVU5SUxFTkJRMVFzUTBGUFFTeGpRVUZqU3l4RlFVRmxMRU5CUXpOQ0xFOUJRVXNzUzBGQlN5eFJRVU5JTEV0QlFVc3NVVUZCVVN4TFFVRkxMRTlCUVU4c1JVRkJTVUVzUTBGQllTeEZRVUZGTEUxQlFVMHNSVUZCUjBFc1EwRkJZU3hGUVVRdlF5eERRVUZETEVOQlJUZENMRU5CVDBFc1UwRkJVME1zUlVGQlR5eERRVU5rTEU5QlFVOHNTMEZCU3l4RlFVRkpRU3hGUVVGTkxFZEJRVXNzUzBGQlN5eEZRVUZKUVN4RlFVRk5MRU5CUXpWRExFTkJUMEVzVjBGQlYwRXNSVUZCVHl4RFFVTm9RaXhQUVVGTExFdEJRVXNzVVVGRFNDeERRVUZETEV0QlFVc3NSMEZCVFN4RFFVRkRRU3hGUVVGTkxFVkJSRUVzUlVGRk5VSXNRMEZQUVN4VFFVRlRRU3hGUVVGUExFTkJRMlFzVDBGQlN5eExRVUZMTEZGQlEwZ3NRMEZCUTBFc1JVRkJUU3hIUVVGTkxFTkJRVU1zUzBGQlN5eEZRVVJCTEVWQlJUVkNMRU5CVDBFc1VVRkJVVUVzUlVGQlR5eERRVU5pTEU5QlFVc3NTMEZCU3l4UlFVTklMRXRCUVVzc1IwRkJTMEVzUlVGQlRTeEhRVUZMTEV0QlFVc3NSMEZCUzBFc1JVRkJUU3hGUVVSc1FpeEZRVVUxUWl4RFFVOUJMRTlCUVU5QkxFVkJRVThzUTBGRFdpeE5RVUZKTEVOQlFVTXNTMEZCU3l4VFFVRlhMRU5CUVVOQkxFVkJRVTBzVVVGRGJrSXNSMEZIUml4TFFVRkxMRVZCUVVVc1QwRkJUMEVzUlVGQlRTeERRVUZETEVkQlFVc3NTMEZCU3l4RlFVRkZMRTlCUVU5QkxFVkJRVTBzUTBGQlF5eERRVU40UkN4RFFWTkJMR0ZCUVdGQkxFVkJRVThzUTBGRGJFSXNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhQUVVGUExFdEJRekZDTEVsQlFVMXFRaXhGUVVGSkxFdEJRVXNzUlVGQlNXbENMRVZCUVUwc1JVRkJTU3hMUVVGTExFVkJRVWxCTEVWQlFVMHNSVUZETVVOb1FpeEZRVUZKTEV0QlFVc3NSVUZCU1dkQ0xFVkJRVTBzUlVGQlNTeExRVUZMTEVWQlFVbEJMRVZCUVUwc1JVRkZlRU1zVDBGQlNXcENMRWRCUVV0RExFVkJRMEVzUzBGRlFYQkNMRVZCUVZNc1kwRkJZMjFDTEVWQlFVZERMRU5CUVVNc1EwRkZkRU1zUTBGUlFTeE5RVUZOWjBJc1JVRkJUeXhEUVVOWUxFZEJRVWtzUTBGQlF5eExRVUZMTEZGQlFWTXNUMEZCVHl4TFFVTXhRaXhKUVVGTmFrSXNSVUZCU1N4TFFVRkxMRVZCUVVscFFpeEZRVUZOTEVWQlFVa3NTMEZCU3l4RlFVRkpRU3hGUVVGTkxFVkJRekZEYUVJc1JVRkJTU3hMUVVGTExFVkJRVWxuUWl4RlFVRk5MRVZCUVVrc1MwRkJTeXhGUVVGSlFTeEZRVUZOTEVWQlEzaERMRTlCUVU5d1F5eEZRVUZUTEdOQlFXTnRRaXhGUVVGSFF5eERRVUZETEVOQlEzQkRMRU5CVVVFc1QwRkJUeXhOUVVGTmFVSXNSVUZCVnl4RFFVTjBRaXhIUVVGTkxFTkJRVU5ETEVWQlFVOURMRU5CUVVzc1JVRkJTVVlzUlVGRGNFSXNTMEZCU3l4RFFVRkRSeXhGUVVGSFF5eEpRVUZOUkN4RlFVRkZMRVZCUVVsRExFVkJRVVVzUTBGQlF5eEZRVU40UWl4UFFVTkRMRU5CUVVNc1EwRkJRME1zUlVGQlQwTXNRMEZCVHl4RlFVRkhReXhKUVVOYVJDeEZRVVZOUVN4RlFVRlJMRk5CUVZORExFTkJRVWtzUjBGQlMwUXNSVUZCVVN4WFFVRlhReXhEUVVGSkxFVkJRMjVFTEVOQlFVTkdMRVZCUVU5RExFVkJRVkVzVFVGQlRVTXNRMEZCU1N4RFFVRkRMRVZCUlROQ0xFTkJRVU5HTEVWQlFVMHNUMEZCVHl4RFFVRkRReXhEUVVGUExFTkJRVU1zUlVGQlIwTXNRMEZCU1N4RlFVbzVRaXhEUVVGRFJpeEZRVUZQUlN4RFFVRkpMRVZCVDNaQ0xFTkJRVU1zUTBGQlF5eEZRVUZITEVsQlFVa3NRMEZEV0N4RlFVTkdMRTlCUVVsTUxFZEJRMFpFTEVWQlFVMHNTMEZCUzBNc1EwRkJTeXhGUVVWWVJDeERRVU5VTEVOQlQwRXNUMEZCVHl4SlFVRkpSQ3hGUVVGWExFTkJRM0JDTEVsQlFVbDRReXhGUVVGUkxFdEJRMVpuUkN4RlFVRmxMRVZCUTFobUxFVkJRVlVzUTBGQlF5eEZRVU5tWjBJc1JVRkJUMVFzUlVGQlZTeEpRVUZMVlN4SFFVRk5MRU5CUXpGQ0xFTkJRVVVzUzBGQlRVRXNSVUZCUlN4RlFVRkhMRXRCUVUwc1IwRkJTU3hGUVVOMlFpeERRVUZGTEV0QlFVMUJMRVZCUVVVc1JVRkJSeXhMUVVGTkxFZEJRVWtzUTBGRGVrSXNRMEZCUXl4RlFVTkVReXhGUVVGWkxFMUJRVTBzVlVGQlZTeFBRVUZQTEVkQlFVZEdMRU5CUVVrc1JVRkRNVU5ITEVWQlFVMUVMRVZCUVZVc1MwRkJTeXhEUVVGRFVpeEZRVUZIUXl4SlFVRk5SQ3hGUVVGRkxFdEJRVTlETEVWQlFVVXNTVUZCU1N4RlFVVm9SQ3hSUVVGWFRTeExRVUZMUlN4RlFVTmtTaXhIUVVGblFrVXNSVUZCUlN4UFFVRlRMRWxCUVUwc1JVRkJTU3hIUVVWcVEwWXNTVUZCYVVJc1JVRkRia0pvUkN4RlFVRlJhMFFzUlVGQlJTeE5RVVZPYkVRc1IwRkJVeXhEUVVGRFFTeEhRVUZWTEVOQlFVTnJSQ3hGUVVGRkxFMUJRM3BDYWtJc1JVRkJVU3hMUVVGTE9VSXNSVUZCVXl4alFVRmpTQ3hGUVVGUGEwUXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkhjRVJzUkN4RlFVRlJMRTFCU1Zvc1QwRkJUMGNzUlVGQlV5eE5RVUZOT0VJc1EwRkJUeXhEUVVNdlFpeERRVTlCTEdOQlFXTlBMRVZCUVZjc1EwRkRka0lzVDBGQlQzSkRMRVZCUVZNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQY1VNc1EwRkJVeXhEUVVGRExFVkJRM3BETEVsQlFVdFZMRWRCUVUwc1MwRkJTeXhoUVVGaFFTeERRVUZETEVOQlFVTXNSVUZETDBJc1QwRkJVVUVzUjBGQlRVRXNSMEZCU3l4RFFVRkRRU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVU53UXl4RFFVMUJMRlZCUVZjc1EwRkRWQ3hQUVVGTExFdEJRVXNzVVVGRFNDeEpRVUZKTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1YwRkJUU3hMUVVGTExFVkJRVVVzVFVGQlRTeERRVUZETEVsQlJHNUNjRVFzUlVGRk5VSXNRMEZSUVN4TlFVRk5kVUlzUlVGQlRTeERRVU5XTEU5QlFVc3NTMEZCU3l4UlFVTklMRWRCUVVjc1MwRkJTeXhGUVVGRkxFMUJRVTFCTEVOQlFVa3NRMEZCUXl4SlFVRkpMRXRCUVVzc1JVRkJSU3hOUVVGTlFTeERRVUZKTEVOQlFVTXNSMEZFZUVKMlFpeEZRVVUxUWl4RFFWRkJMRmRCUVZrc1EwRkRWaXhQUVVGTExFdEJRVXNzVVVGRFNDeEhRVUZITEV0QlFVc3NSVUZCUlN4VlFVRlZMRU5CUVVNc1NVRkJTU3hMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVkQlJIaENRU3hGUVVVMVFpeERRVk5CTEZWQlFWVjFRaXhGUVVGTkxFTkJRMlFzVDBGQlN5eExRVUZMTEZGQlEwZ3NSMEZCUnl4TFFVRkxMRVZCUVVVc1ZVRkJWVUVzUTBGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4RlFVRkZMRlZCUVZWQkxFTkJRVWtzUTBGQlF5eEhRVVJvUTNaQ0xFVkJSVFZDTEVOQlUwRXNVMEZCVTNWRUxFVkJRVmtzUTBGQlJTeFZRVUZCUXl4RlFVRlpMRlZCUVUwc1JVRkJTU3hEUVVGRExFVkJRVWNzUTBGREwwTXNUMEZCU3l4TFFVRkxMRkZCUTBnc1IwRkJSeXhMUVVGTExFVkJRVVVzVTBGQlUwUXNRMEZCVlN4RFFVRkRMRWRCUVVkRExFTkJRVk1zUjBGQlJ5eExRVUZMTEVWQlFVVXNVMEZCVTBRc1EwRkJWU3hEUVVGRExFZEJSSEpFZGtRc1JVRkZOVUlzUTBGalFTeFhRVUZYT0VJc1JVRkJUVkFzUlVGQlRTeERRVU55UWl4UFFVRkxMRXRCUVVzc1VVRkhTQ3hMUVVGTExFVkJRVVVzUzBGQlN5eExRVUZMTEVWQlFVZFBMRVZCUVUxUUxFTkJRVWtzUlVGR05VSklMRVZCUVZNc1VVRkJVU3hMUVVGTExHRkJRV0VzUTBGSE9VTXNRMEZUUVN4aFFVRmhjVU1zUlVGQlR5eERRVU5zUWl4UFFVRlBjRVFzUlVGQlV5eGpRVUZqYjBRc1JVRkJUU3hMUVVGTExFTkJRVU1zUlVGQlIwRXNSVUZCVFN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVNMVJDeERRVU5HTEVWRGJteENRU3hKUVVGeFFrTXNSMEZCY2tJc1MwRkJNRUlzUTBGTmVFSXNUMEZCVHl4UFFVRlBReXhGUVVGUFF5eEZRVUZUTEZsQlFXRXNRMEZEZWtNc1NVRkJUVU1zUlVGQlVVTXNSVUZCVXl4SlFVRkpMRVZCUVVVc1VVRkJVVWdzUTBGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUlN4TlFVRlBMRVZCUVVjc1EwRkJReXhGUVVVMVJDeE5RVUZQTEVOQlFVTkJMRVZCUVVzc1lVRkJaVVVzUlVGQlRTeFRRVUZYUVN4RlFVRk5MRWxCUVVrc1EwRkJSU3hOUVVGUExFTkJRVVVzUTBGQlF5eEZRVUZGTEUxQlEzWkZMRU5CVDBFc1QwRkJUeXhuUWtGQlowSkdMRVZCUVUwc1EwRkRNMElzVDBGQlQwa3NSMEZCVXl4WlFVRlpTaXhEUVVGSkxFTkJRMnhETEVOQlowSkJMRTlCUVU4c1kwRkJZMHNzUlVGQlR5eERRVU14UWl4UFFVRlBReXhIUVVGalJDeEZRVUZQU2l4RlFVRlRMRmRCUVZjc1EwRkRiRVFzUTBGdFFrRXNUMEZCVHl4UFFVTk1UU3hGUVVGVExFOUJRMVFzUTBGQlJTeFBRVUZCUXl4RlFVRlRMRXRCUVUwc1owSkJRVUZETEVWQlFXdENMRXRCUVUwc1QwRkJRVU1zUlVGQlV5eExRVUZOTEdWQlFVRkRMRVZCUVdsQ0xGTkJRVlVzUlVGQlNTeERRVUZETEVWQlEzaEdMRU5CUTBFc1QwRkJVVVFzUjBGQlZVVXNSMEZCVHl4UFFVRlBTaXhGUVVGUlF5eEZRVUZwUWtVc1EwRkJZeXhIUVVGSExFOUJRVTlLTEVOQlFVMHNRMEZEZWtZc1EwRmxRU3hQUVVGUExHRkJRMHhCTEVWQlFWTXNUMEZEVkN4RFFVRkZMRTlCUVVGRExFVkJRVk1zUzBGQlRTeG5Ra0ZCUVVNc1JVRkJhMElzUzBGQlRTeFBRVUZCUXl4RlFVRlRMRXRCUVUwc1pVRkJRVU1zUlVGQmFVSXNVMEZCVlN4RlFVRkpMRU5CUVVNc1JVRkRlRVlzUTBGRFFTeFBRVUZSUkN4SFFVRlZSU3hIUVVGUExFOUJRVTlLTEVWQlFWRkRMRVZCUVdsQ1JTeERRVUZqTEVkQlFVY3NUMEZCVDBvc1JVRkJVU3hGUVVGSkxFTkJReTlHTEVOQlowSkJMRTlCUVU4c1UwRkJVMEVzUlVGQlV5eFBRVUZSTEVOQlFVVXNUMEZCUVVNc1JVRkJVeXhMUVVGTkxHZENRVUZCUXl4RlFVRnJRaXhMUVVGTkxFOUJRVUZETEVWQlFWTXNTVUZCU3l4RlFVRkpMRU5CUVVNc1JVRkJSeXhEUVVNNVJpeFBRVUZSUVN4SFFVRlZSU3hIUVVGUExFOUJRVTlLTEVWQlFWRkRMRVZCUVdsQ0xFbEJRVWtzUjBGQlJ5eFRRVUZUUml4RFFVRk5MRU5CUTJwR0xFTkJZMEVzVDBGQlR5eGxRVU5NUVN4RlFVRlRMRTlCUTFRc1EwRkJSU3hQUVVGQlF5eEZRVUZUTEV0QlFVMHNaMEpCUVVGRExFVkJRV3RDTEV0QlFVMHNUMEZCUVVNc1JVRkJVeXhKUVVGTExFVkJRVWtzUTBGQlF5eEZRVU0xUkN4RFFVTkJMRTlCUVZGQkxFZEJRVlZGTEVkQlFVOHNUMEZCVDBvc1JVRkJVVU1zUlVGQmFVSXNTVUZCU1N4SFFVRkhMRk5CUVZOR0xFVkJRVkVzUlVGQlNTeERRVU4yUml4RFFWVkJMRTlCUVU4c1ZVRkJWU3hEUVVGRkxFOUJRVUZETEVWQlFWTXNTVUZCU3l4RlFVRkpMRU5CUVVNc1JVRkJSeXhEUVVOMlF5eFBRVUZQU1N4SFFVRlBMRTlCUVU5S0xFTkJRVTBzUlVGQlJTeFZRVUZWTEVOQlEzcERMRU5CV1VFc1QwRkJUeXhMUVVGTFJDeEZRVUZUTEZGQlFWTXNRMEZCUlN4UFFVRkJReXhGUVVGVExFbEJRVXNzUlVGQlNTeERRVUZETEVWQlFVY3NRMEZEY0VRc1QwRkJUMGtzUjBGQlR5eFBRVUZQU2l4RlFVRlJMRXRCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXRFTEVOQlFVMHNRMEZETTBRc1EwRlZRU3hQUVVGUExGVkJRVmNzUTBGRGFFSXNUVUZCVHl4RFFVRkZMRk5CUVZWTkxFZEJRVmtzUTBGQlJTeERRVU51UXl4RFFVTkdMRVZEZEV0QkxGTkJRVk5ETEVkQlFWRkRMRVZCUVZORExFVkJRVThzUTBGREwwSXNTVUZCVFVNc1JVRkJaVU1zUjBGQlQwRXNSVUZCUnl4TlFVRk5MRVZCUVVjc1EwRkJSU3hqUVVGbExFVkJRVXNzUTBGQlF5eEZRVUZGTEZGQlFWRXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkRkRVpETEVWQlFVdEdMRVZCUVZsRUxFTkJRVXNzUlVGQlNVTXNSVUZCV1VZc1EwRkJUeXhGUVVNdlF5eFBRVUZQTEV0QlFVc3NUVUZCVFVzc1JVRkJVeXhYUVVGWFJDeERRVUZGTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkRkRVFzUTBGRlFTeFRRVUZUUlN4SFFVRmxReXhGUVVGUlRpeEZRVUZQVHl4RlFVRlBMRU5CUXpWRExFbEJRVTFETEVWQlFWVXNRMEZEWkN4RFFVRkRMRkZCUVZNc1EwRkJReXhGUVVGSFF5eEpRVUZOUVN4RlFVRkZMRXRCUVU4c1JVRkJSU3hKUVVGSkxFVkJRMjVETEVOQlFVTXNWMEZCV1N4RFFVRkRMRVZCUVVkQkxFbEJRVTFCTEVWQlFVVXNVVUZCVlN4RlFVRkZMRTlCUVU4c1JVRkROVU1zUTBGQlF5eFRRVUZWTEVOQlFVTXNSVUZCUjBFc1NVRkJUVUVzUlVGQlJTeE5RVUZSTEVWQlFVVXNUMEZCVTBFc1JVRkJSU3hMUVVGUExFVkJRVVVzVFVGQlVTeEZRVUZGTEVWQlF5OUVMRU5CUTBVc1VVRkRRU3hEUVVGRExFVkJRVWRCTEVsQlFVMHNRMEZEVWl4SlFVRk5ReXhGUVVGUFdpeEhRVUZSTEVWQlFVZFhMRU5CUVVNc1JVRkRla0lzVDBGQlVVTXNSVUZCVVVFc1JVRkJUeXhIUVVGTkxFTkJReTlDTEVOQlEwWXNSVUZEUVN4RFFVRkRMRTlCUVZGYUxFVkJRVThzUTBGRGJFSXNSVUZGVFdFc1JVRkJWU3hEUVVGRExFVkJRMkpETEVWQlFXRkRMRVZCUldwQ0xFOUJRVmNzUTBGQlEwTXNSVUZCVFVNc1EwRkJUU3hKUVVGTFVDeEZRVU16UWl4SFFVRkpSQ3hGUVVGTkxGRkJRVkZQTEVOQlFVa3NSMEZCU3l4RlFVRkhMRU5CUXpWQ1JpeEZRVUZqUlN4RlFVVmtMRWxCUVVsRkxFVkJRVkZFTEVWQlFVOVVMRVZCUVZGT0xFTkJRVXNzUlVGRGFFTmhMRVZCUVZsUUxFVkJRVThzUzBGQlN5eERRVUZGTEVOQlFVTlJMRU5CUVVrc1JVRkJSMFVzUTBGQlRTeERRVUZETEVWQlJYSkRTQ3hGUVVGWllpeEhRVU5rVFN4RlFVRlRRU3hGUVVGUExFdEJRVXNzUTBGQlJTeERRVUZEVVN4RFFVRkpMRVZCUVVkRkxFVkJRVkVzUTBGQlJTeERRVUZETEVWQlF6RkRRU3hIUVVGVExFZEJSVlJXTEVWQlFWTlBMRVZCUjFoR0xFVkJRVkZITEVOQlFVa3NSVUZCU1VVc1EwRkRiRUlzUTBGSFJpeE5RVUZQTEVOQlFVTldMRVZCUVZGTExFVkJRVk5GTEVWQlFWZEVMRU5CUVZjc1EwRkRha1FzUTBGRlpTeFRRVUZTU3l4SFFVRnJRbXhDTEVWQlFWTkRMRVZCUVU5UExFVkJRVTlYTEVWQlFVMHNRMEZEY0VRc1IwRkJTU3hEUVVGRFdpeEZRVUZSU3l4RlFVRlRSU3hGUVVGWFJDeERRVUZYTEVWQlFVbFFMRWRCUVdWT0xFVkJRVk5ETEVWQlFVOVBMRU5CUVVzc1JVRkZPVVZaTEVWQlFXdENia0lzUlVGQlVVMHNSVUZGTVVKakxFVkJRV3RDWWl4RlFVRk5MRTlCUXpOQ1l5eEhRVUZOTEVOQlFVTXNVVUZCVXl4VlFVRlhMRlZCUVZjc1kwRkJZeXhGUVVGRkxGRkJRVkZCTEVOQlFVTXNSMEZCU3l4RFFVTjJSU3hGUVVWSlJDeEZRVUZuUWl4VFFVRlhMRWxCUTNwQ1VDeEZRVUZaWWl4SlFVTmtZU3hGUVVGWlVDeEZRVUZQTEV0QlFVc3NRMEZCUlN4RFFVRkRUU3hEUVVGWExFVkJRVWNzUTBGQlJTeERRVUZETEVkQlJ6RkRReXhKUVVGalVDeEpRVU5vUWtzc1JVRkJVVU1zUTBGQlZ5eEhRVUZMUkN4RlFVRlJReXhEUVVGWExFZEJRVXNzUjBGQlMwOHNSMEZCYlVKT0xFVkJRVmxRTEV0QlNYaEdMRWxCUVUxblFpeEZRVUZYYkVJc1JVRkJVeXhYUVVGWFR5eEZRVUZUVHl4RFFVRkpMRVZCUld4RUxFOUJRVWxGTEVWQlFXZENMRTlCUVZNc1JVRkRjRUpvUWl4RlFVRlRMRmRCUVZkbExFVkJRV2xDUkN4RFFVRkpMRVZCUXpkRExGRkJRVkVzUjBGQlIwVXNRMEZCWlN4RlFVTXhRaXhMUVVGTFJTeERRVUZSTEVWQlJWUkJMRU5CUlZnc1EwTXpSVUVzU1VGQlRVTXNSMEZCYlVJc1EwRkRka0lzUzBGQlRTeHJRa0ZEVGl4UlFVRlRMR3RDUVVOVUxFdEJRVTBzYTBKQlEwNHNTMEZCVFN4clFrRkRUaXhMUVVGTkxHdENRVU5PTEZOQlFWVXNhMEpCUTFZc1MwRkJUU3hyUWtGRFRpeFJRVUZUTERCRlFVTlVMRXRCUVUwc2EwSkJRMDRzUzBGQlRTeHJRa0ZEVGl4TFFVRk5MR3RDUVVOT0xFdEJRVTBzYTBKQlEwNHNTMEZCVFN4clFrRkRUaXhMUVVGTkxHdENRVU5PTEV0QlFVMHNhMEpCUTA0c1MwRkJUU3hyUWtGRFRpeFJRVUZUTEd0Q1FVTlVMRXRCUVUwc2EwSkJRMDRzUzBGQlRTeHJRa0ZEVGl4TFFVRk5MR3RDUVVOT0xFdEJRVTBzUzBGRFVpeEZRVVZOUXl4SFFVRjNRaXhEUVVNMVFpeExRVUZOTEVOQlFVTXNTMEZCVFN4SlFVRkpMRVZCUTJwQ0xGRkJRVk1zUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZEY0VJc1MwRkJUU3hEUVVGRExFdEJRVTBzU1VGQlNTeEZRVU5xUWl4TFFVRk5MRU5CUVVNc1MwRkJUU3hKUVVGSkxFVkJRMnBDTEV0QlFVMHNRMEZCUXl4TFFVRk5MRWxCUVVrc1JVRkRha0lzVTBGQlZTeERRVUZETEUxQlFVOHNTMEZCU3l4RlFVTjJRaXhMUVVGTkxFTkJRVU1zUzBGQlRTeEpRVUZKTEVWQlEycENMRXRCUVUwc1EwRkJReXhMUVVGTkxFbEJRVWtzUlVGRGFrSXNTMEZCVFN4RFFVRkRMRXRCUVUwc1NVRkJTU3hGUVVOcVFpeExRVUZOTEVOQlFVTXNTMEZCVFN4SlFVRkpMRVZCUTJwQ0xFdEJRVTBzUTBGQlF5eExRVUZOTEVsQlFVa3NSVUZEYWtJc1MwRkJUU3hEUVVGRExFdEJRVTBzU1VGQlNTeEZRVU5xUWl4TFFVRk5MRU5CUVVNc1MwRkJUU3hKUVVGSkxFVkJRMnBDTEV0QlFVMHNRMEZCUXl4TFFVRk5MRWxCUVVrc1JVRkRha0lzUzBGQlRTeERRVUZETEV0QlFVMHNTVUZCU1N4RlFVTnFRaXhSUVVGVExFTkJRVU1zUzBGQlRTeEpRVUZKTEVWQlEzQkNMRXRCUVUwc1EwRkJReXhMUVVGTkxFbEJRVWtzUlVGRGFrSXNTMEZCVFN4RFFVRkRMRXRCUVUwc1NVRkJTU3hGUVVOcVFpeExRVUZOTEVOQlFVTXNTMEZCVFN4SlFVRkpMRU5CUTI1Q0xFVkJSVTFETEVkQlFXVkdMRWRCUVdsQ0xGRkJRVkVzVVVGQlVTeFhRVUZaTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkZka1VzVTBGQlUwY3NSMEZCV1VNc1JVRkJTeXhEUVVNdlFpeEpRVUZKUXl4RlFVRlJMRk5CUVZORUxFVkJRVXNzUlVGQlJTeEZRVU0xUWl4SFFVRkpMRTFCUVUxRExFTkJRVXNzUlVGQlJ5eERRVU5vUWtFc1JVRkJVU3hIUVVOU0xGRkJRVk5ETEVWQlFVa3NSVUZCUjBFc1JVRkJTVVlzUlVGQlNTeFBRVUZSUlN4SlFVRkxMRU5CUTI1RExFbEJRVTFETEVWQlFVOUlMRVZCUVVrc1YwRkJWMFVzUTBGQlF5eEZRVVUzUWl4SFFVRkpSaXhGUVVGSlJTeERRVUZETEVWQlFVVXNUMEZCVDA0c1IwRkJhVUlzVDBGQlR5eEpRVUZOTEVkQlF6bERTeXhIUVVGVFNDeEhRVUZoTEZGQlFWRkZMRVZCUVVsRkxFTkJRVU1zUTBGQlF5eE5RVVZ3UXl4VFFVRlhSU3hMUVVGUFVDeEhRVUYxUWl4RFFVTjJReXhIUVVGTkxFTkJRVU5STEVWQlFVdERMRU5CUVVjc1JVRkJTVlFzUjBGQmMwSlBMRU5CUVVjc1JVRkRlRU5FTEVkQlFWRkZMRWRCUVU5R0xFZEJRVkZITEVsQlEzcENUQ3hIUVVGVFJTeEZRVUZQUlN4RlFVVndRaXhEUVVWS0xFTkJRMEVzVDBGQlR5eFRRVUZUU2l4RlFVRlBMRVZCUVVVc1EwRkRNMElzUzBGRFJTeFJRVUZQUVN4RFFVVllMRU5CUlU4c1UwRkJVMDBzUjBGQlZ5eERRVUZGTEdkQ1FVRkJReXhEUVVGblFpeEZRVUZIUXl4RlFVRlRMRWRCUVVrc1EwRkRNMFFzVDBGQlR5eEpRVUZKTEU5QlFVOHNSMEZCUjJJc1IwRkJhVUpaTEVkQlFXMUNMRTFCUVUwc1EwRkJReXhIUVVGSFF5eERRVUZOTEVWQlFVVXNRMEZETjBVc1EwTnNSVUVzU1VGQlRVTXNSMEZCWXl4dlJFRkZjRUlzVTBGQlUwTXNSVUZCVVVNc1JVRkJUME1zUlVGQlVVTXNSMEZCVFVFc1JVRkJSeXhEUVVOMlF5eE5RVUZQTEVOQlFVVXNUVUZCUVVZc1JVRkJUeXhOUVVGUExFTkJRVU1zUTBGQlEwY3NRMEZCUXl4SlFVRk5SaXhGUVVGTFJ5eEhRVUZaUkN4RFFVRkRMRU5CUVVNc1EwRkJSU3hEUVVOMlJDeERRVVZCTEVsQlFVMUZMRWRCUVU4c1QwRkRVRU1zUjBGQll5eExRVUZMUkN4RlFVRkpMRWxCUTNaQ1JTeEhRVUZ2UWl4SlFVRkpMRTlCUVU5RUxFZEJRV0VzUjBGQlJ5eEZRVVZ5UkN4VFFVRlRSU3hIUVVGaFRDeEZRVUZITEVOQlIzWkNMRTlCUVU5QkxFVkJRVVVzVVVGQlVTeE5RVUZQTEUxQlFVMHNSVUZCUlN4UlFVRlJTU3hIUVVGdFFrUXNSVUZCVnl4RFFVTjRSU3hEUVVWQkxGTkJRVk5ITEVkQlFYRkNUaXhGUVVGSExFTkJReTlDTEU5QlFVOUJMRVZCUTBvc1VVRkJVU3hOUVVGUExFVkJRVVVzUlVGRGFrSXNVVUZCVVVrc1IwRkJiVUlzUjBGQlJ5eEZRVU01UWl4WlFVRlpMRU5CUTJwQ0xFTkJSVUVzVTBGQlUwY3NSMEZCVFVNc1JVRkJVME1zUlVGQldTeERRVU5zUXl4UFFVRkpSQ3hKUVVGWkxFdEJRMUFzUzBGRlFTeERRVU5NTEUxQlFVOHNUMEZCVDBFc1JVRkJVU3hKUVVGSlNDeEZRVUZaTEVWQlFVVXNTMEZCU3l4SFFVRkhMRU5CUVVNc1JVRkRha1FzVFVGQlR5eERRVUZETEVOQlFVTk1MRU5CUVVNc1NVRkRVbEVzUlVGQlVTeFZRVUZYVkN4SFFVRk5UeXhIUVVGeFFrNHNRMEZCUXl4SlFVRk5UU3hIUVVGeFFsQXNRMEZCUXl4RFFVRkRMRVZCUVVsVkxFTkJRM0JHTEVOQlJVb3NRMEZGUVN4VFFVRlRReXhIUVVGUFlpeEZRVUZQWXl4RlFVRlJMRU5CUXpkQ0xFMUJRVThzUTBGQlJTeE5RVUZCWkN4RlFVRlBMRTFCUVU4c1EwRkJReXhEUVVGRExFTkJRVVZsTEVWQlFVZERMRU5CUVVNc1NVRkJUVU1zUjBGQllVWXNSVUZCUjBNc1EwRkJReXhGUVVGSExFOUJRVUZHTEVOQlFVOHNRMEZEYkVVc1EwRkZRU3hUUVVGVFNTeEhRVUZQYkVJc1JVRkJUeXhEUVVOeVFpeE5RVUZQTEVOQlFVVXNUVUZCUVVFc1JVRkJUeXhOUVVGUExFTkJRVU1zUTBGQlEwY3NRMEZCUXl4SlFVRk5RU3hEUVVGRkxFTkJRM0JETEVOQlJVRXNVMEZCVTJkQ0xFZEJRVmxETEVWQlFVOHNRMEZETVVJc1QwRkJUMEVzUlVGQlRTeFJRVUZSTERoQ1FVRXJRaXhOUVVGTkxFTkJRelZFTEVOQlJVRXNVMEZCVTBNc1IwRkJZVU1zUlVGQlQwTXNSVUZCU3l4RFFVTm9ReXhKUVVGTlF5eEZRVUZOUXl4SFFVRlhSaXhEUVVGSExFVkJRM2hDUnl4RlFVRk5SQ3hIUVVGWFJpeEZRVUZMTEV0QlFVc3NSVUZETTBKSkxFVkJRVkZHTEVkQlFWZEdMRVZCUVVzc1MwRkJTeXhGUVVNM1Frc3NSVUZCVDBnc1IwRkJWMFlzUlVGQlN5eExRVUZMTEVWQlF6VkNUU3hGUVVGTlNpeEhRVUZYUml4RlFVRkxMRXRCUVVzc1JVRkRNMEpQTEVWQlFWZE1MRWRCUVZkR0xFVkJRVXNzVDBGQlR5eEZRVU5zUTFFc1JVRkJZVTRzUjBGQlYwWXNSVUZCU3l4UFFVRlBMRVZCUTNCRFV5eEZRVUZYVUN4SFFVRlhSaXhGUVVGTExFOUJRVThzUlVGRGJFTlZMRVZCUVZsU0xFZEJRVmRHTEVWQlFVc3NUMEZCVHl4RlFVTnVRMWNzUlVGQldWUXNSMEZCVjBZc1JVRkJTeXhQUVVGUExFVkJRMjVEV1N4RlFVRlpWaXhIUVVGWFJpeEZRVUZMTEU5QlFVOHNSVUZEYmtOaExFVkJRVmRETEVsQlFVOHNRMEZCUlN4TlFVRlBMRTlCUVU5c1FpeEhRVUZaYTBJc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJ5eE5RVUZQTEVOQlFVTXNRMEZCUTJ4RExFTkJRVU1zU1VGQlRVRXNSVUZCUnl4UlFVRlRMRVZCUVVzc1IwRjNTSEJHYlVNc1IwRjJTRTlFTEVkQlFVMHNRMEZEWml4SFFVRkpaaXhGUVVGTkxGRkJRMUlzVDBGQlQyTXNSVUZCVVVNc1EwRkJReXhGUVVWc1FpeFBRVUZSUVN4RlFVRkZMRWxCUVVzc1EwRkZZaXhKUVVGTExFbEJRMGdzVDBGQlR6TkNMRWRCUVUxaExFVkJRVWtzUzBGQlN5eFJRVUZUTEVWQlFVc3NSVUZCUnl4RFFVRkRMRVZCUXpGRExFbEJRVXNzUzBGRFNDeFBRVUZQWWl4SFFVRk5ZU3hGUVVGSkxFdEJRVXNzVDBGQlVTeEZRVUZMTEVWQlFVY3NRMEZCUXl4RlFVVjZReXhKUVVGTExFbEJRMGdzVDBGQlQzaENMRVZCUVZGcFF5eERRVUZSTEVWQlEzcENMRWxCUVVzc1MwRkRTQ3hQUVVGUGFrTXNSVUZCVVcxRExFVkJRVmRMTEVWQlFXTXNSVUZETVVNc1NVRkJTeXhQUVVOSUxFOUJRVTk0UXl4RlFVRlJOa0lzUTBGQlNTeEZRVU55UWl4SlFVRkxMRkZCUTBnc1QwRkJUemRDTEVWQlFWRnZReXhEUVVGVExFVkJRekZDTEVsQlFVc3NVMEZEU0N4UFFVRlBjRU1zUlVGQlVUaENMRU5CUVVjc1JVRkZjRUlzU1VGQlN5eEpRVU5JTEU5QlFVODVRaXhGUVVGUkswSXNRMEZCVVN4RlFVTjZRaXhKUVVGTExFdEJRMGdzVDBGQlR5OUNMRVZCUVZFeVFpeERRVUZITEVWQlEzQkNMRWxCUVVzc1RVRkRTQ3hQUVVGUGFFSXNSMEZCVFdFc1JVRkJTU3hQUVVGUExGRkJRVk1zUjBGQlRTeEZRVUZMTEVWQlFVY3NRMEZCUXl4RlFVTnNSQ3hKUVVGTExFOUJRMGdzVDBGQlQySXNSMEZCVFdFc1JVRkJTU3hQUVVGUExFOUJRVkVzUjBGQlRTeEZRVUZMTEVWQlFVY3NRMEZCUXl4RlFVTnFSQ3hKUVVGTExFbEJRMGdzVDBGQlQzaENMRVZCUVZFclFpeERRVUZSTEVWQlEzcENMRWxCUVVzc1MwRkRTQ3hQUVVGUEwwSXNSVUZCVVRKQ0xFTkJRVWNzUlVGRGNFSXNTVUZCU3l4TlFVTklMRTlCUVU5b1FpeEhRVUZOWVN4RlFVRkpMRTlCUVU4c1VVRkJVeXhIUVVGUExFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlEyNUVMRWxCUVVzc1QwRkRTQ3hQUVVGUFlpeEhRVUZOWVN4RlFVRkpMRTlCUVU4c1QwRkJVU3hIUVVGUExFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlJXeEVMRWxCUVVzc1NVRkRTQ3hQUVVGUGVFSXNSVUZCVVN0Q0xFTkJRVkVzUlVGRGVrSXNTVUZCU3l4TFFVTklMRTlCUVU4dlFpeEZRVUZSTWtJc1EwRkJSeXhGUVVWd1FpeEpRVUZMTEVsQlEwZ3NUMEZCVHpOQ0xFVkJRVkZuUXl4RFFVRlZMRVZCUXpOQ0xFbEJRVXNzVFVGRFNDeFBRVUZQYUVNc1JVRkJVVFJDTEVOQlFVc3NSVUZGZEVJc1NVRkJTeXhMUVVOSUxFOUJRVTgxUWl4RlFVRlJNa0lzUTBGQlJ5eEZRVU53UWl4SlFVRkxMRWxCUTBnc1QwRkJUek5DTEVWQlFWRXJRaXhEUVVGUkxFVkJRM3BDTEVsQlFVc3NTMEZEU0N4UFFVRlBMMElzUlVGQlVUSkNMRU5CUVVjc1JVRkRjRUlzU1VGQlN5eEpRVU5JTEU5QlFVOHpRaXhGUVVGUkswSXNRMEZCVVN4RlFVTjZRaXhKUVVGTExFdEJRMGdzVDBGQlR5OUNMRVZCUVZFeVFpeERRVUZITEVWQlEzQkNMRWxCUVVzc1NVRkRTQ3hQUVVGUE0wSXNSVUZCVVN0Q0xFTkJRVkVzUlVGRGVrSXNTVUZCU3l4SlFVTklMRTlCUVU4dlFpeEZRVUZSSzBJc1EwRkJVU3hGUVVONlFpeEpRVUZMTEV0QlEwZ3NUMEZCVHk5Q0xFVkJRVkV5UWl4RFFVRkhMRVZCUTNCQ0xFbEJRVXNzU1VGRFNDeFBRVUZQTTBJc1JVRkJVU3RDTEVOQlFWRXNSVUZEZWtJc1NVRkJTeXhMUVVOSUxFOUJRVTh2UWl4RlFVRlJNa0lzUTBGQlJ5eEZRVU53UWl4SlFVRkxMRWxCUTBnc1QwRkJUek5DTEVWQlFWRm5ReXhEUVVGVkxFVkJRek5DTEVsQlFVc3NUVUZEU0N4UFFVRlBhRU1zUlVGQlVUUkNMRU5CUVVzc1JVRkRkRUlzU1VGQlN5eEpRVU5JTEU5QlFVOVVMRWRCUVU5bExFTkJRVk1zUlVGRGVrSXNTVUZCU3l4TFFVTklMRTlCUVU5bUxFZEJRVTlaTEVOQlFWRXNSVUZEZUVJc1NVRkJTeXhOUVVOSUxFOUJRVTh2UWl4RlFVRlJlVUlzUTBGQlJ5eEZRVVZ3UWl4SlFVRkxMRWxCUTBnc1QwRkJUMlFzUjBGQlRXRXNSVUZCU1N4VlFVRlZMRVZCUVVjc1EwRkJReXhGUVVWcVF5eEpRVUZMTEU5QlEwZ3NUMEZCVDNoQ0xFVkJRVkUyUWl4RFFVRkpMRVZCUTNKQ0xFbEJRVXNzUzBGRFNDeFBRVUZQTjBJc1JVRkJVVzFETEVWQlFWZExMRVZCUVdNc1JVRkZNVU1zU1VGQlN5eEpRVU5JTEU5QlFVOTRReXhGUVVGUkswSXNRMEZCVVN4RlFVTjZRaXhKUVVGTExFdEJRMGdzVDBGQlR5OUNMRVZCUVZFeVFpeERRVUZITEVWQlJYQkNMRWxCUVVzc1NVRkRUQ3hKUVVGTExFbEJRMGdzVDBGQlR6TkNMRVZCUVZGNVFpeERRVUZITEVWQlEzQkNMRWxCUVVzc1RVRkRTQ3hQUVVGUFpDeEhRVUZOWVN4RlFVRkpMRk5CUVZNc1VVRkJVeXhIUVVGUExFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlEzSkVMRWxCUVVzc1QwRkRTQ3hQUVVGUFlpeEhRVUZOWVN4RlFVRkpMRk5CUVZNc1QwRkJVU3hIUVVGUExFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlEzQkVMRWxCUVVzc1RVRkRTQ3hQUVVGUFlpeEhRVUZOWVN4RlFVRkpMRk5CUVZNc1VVRkJVeXhIUVVGTkxFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlEzQkVMRWxCUVVzc1QwRkRTQ3hQUVVGUFlpeEhRVUZOWVN4RlFVRkpMRk5CUVZNc1QwRkJVU3hIUVVGTkxFVkJRVXNzUlVGQlJ5eERRVUZETEVWQlJXNUVMRWxCUVVzc1NVRkRUQ3hKUVVGTExFdEJRMGdzVDBGQlQxWXNSMEZCVHl4SlFVRkpMRTlCUVU4c1VVRkJVV2xDTEVWQlFWTXNUVUZCVFN4VFFVRlRTaXhGUVVGSkxFMUJRVTBzUzBGQlN5eEZRVUZITEVOQlFVTXNSVUZET1VVc1NVRkJTeXhOUVVOSUxFOUJRVTlpTEVkQlFVOHNTVUZCU1N4UFFVRlBMRkZCUVZGcFFpeEZRVUZUTEUxQlFVMHNTMEZCUzBvc1JVRkJTU3hOUVVGTkxFbEJRVWtzUlVGQlJ5eERRVUZETEVWQlIzcEZMRWxCUVVzc1NVRkRTQ3hQUVVGUFVpeEhRVUZQTEc5Q1FVRnZRaXhGUVVOd1F5eFJRVU5GTEU5QlFVOXJRaXhGUVVGUlF5eERRVUZETEVOQlEzQkNMRU5CUTBZc1IwRkZiVUptTEVOQlFVc3NSMEZCU3l4RFFVTTNRaXhqUVVGbGVFSXNSVUZEYWtJc1JVRkZRU3hQUVVGQmQwTXNSVUZCU3l4TlFVRlJhRUlzUlVGRlRtZENMRU5CUTFRc1EwRkZRU3hKUVVGTlJTeEhRVUV3UWl4RFFVTTVRaXhMUVVGTkxFTkJRMG9zVlVGQlZ5eExRVU5ZTEZGQlFWTXNUMEZEV0N4RlFVTkJMRTFCUVU4c1EwRkRUQ3hSUVVGVExFbEJRMVFzVlVGQlZ5eExRVU5ZTEUxQlFVOHNUVUZEVUN4TFFVRk5MRTFCUTFJc1JVRkRRU3hKUVVGTExFTkJRMGdzVVVGQlV5eEpRVU5VTEZWQlFWY3NTVUZEWWl4RlFVTkJMRkZCUVZNc1EwRkRVQ3hOUVVGUExFMUJRMUFzUzBGQlRTeE5RVU5TTEVWQlEwRXNWVUZCVnl4SlFVTllMRlZCUVZjc1NVRkRXQ3hMUVVGTkxFTkJRMG9zVVVGQlV5eEpRVU5VTEZWQlFWY3NTVUZEWWl4RlFVTkJMRTlCUVZFc1EwRkRUaXhSUVVGVExFbEJRMVFzVlVGQlZ5eEpRVU5pTEVWQlEwRXNUMEZCVVN4RFFVTk9MRkZCUVZNc1NVRkRWQ3hWUVVGWExFbEJRMklzUTBGRFJpeEZRVVZCTEZOQlFWTkRMRWRCUVdGRExFVkJRVTFETEVWQlFWRkRMRVZCUVZrc1EwRkRPVU1zUjBGQlRTeERRVUZGTEV0QlFVRkRMRVZCUVUwc1RVRkJRWHBDTEVOQlFVMHNSVUZCU1hOQ0xFVkJSWGhDTEVkQlFVbEhMRWxCUVZNc1ZVRkRXQ3hOUVVGUExFTkJRMHdzVVVGQlV5eEhRVU5VTEVsQlFVdDZRaXhEUVVOUUxFVkJSMFlzU1VGQlRUQkNMRVZCUVZGR0xFVkJRVmRETEVOQlFVa3NSVUZGZWtKRkxFVkJRVTFRTEVkQlFYZENTeXhEUVVGSkxFVkJTM1JETEVkQlNra3NUMEZCVDBVc1IwRkJVU3hYUVVOcVFrRXNSVUZCVFVFc1JVRkJTVVFzUTBGQlN5eEhRVWRpUXl4RlFVTkdMRTFCUVU4c1EwRkRUQ3hSUVVGVExFZEJRMVFzU1VGQlFVRXNRMEZEUml4RFFVbEtMRU5CUlVFc1UwRkJVME1zUjBGQlYwTXNSVUZCVHl4RFFVVjZRaXhOUVVGUExFTkJRVU1zU1VGRVIwRXNSVUZCVFN4SlFVRkxReXhIUVVGTlFTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVORExFVkJRVWNzU1VGQlRTeEhRVUZIUVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFbEJRVXNzUlVGQlJTeERRVU12UkN4SlFVRkxSaXhEUVVGTExFTkJRekZDTEVOQlJVRXNVMEZCVTBjc1IwRkJUVU1zUlVGQlQzSkVMRVZCUVU5elJDeEZRVUZWTEVOQlEzSkRMRWxCUVUxRExFVkJRVlZHTEVWQlFVMHNUVUZCVFhKRUxFTkJRVXNzUlVGRmFrTXNSMEZCU1hWRUxFVkJRVk1zUTBGRFdDeEpRVUZOUXl4RlFVRk5MRU5CUVVNc1JVRkRWRU1zUlVGQllTeEZRVU5xUWl4UlFVRlhka1FzUzBGQlMyOUVMRVZCUTJRc1IwRkJTVWtzUjBGQlpVb3NSVUZCVlhCRUxFTkJRVU1zUlVGQlJ5eERRVU12UWl4SlFVRk5ZU3hGUVVGSmRVTXNSVUZCVTNCRUxFTkJRVU1zUlVGRGJFSlpMRVZCUVZORExFVkJRVVVzVDBGQlUwRXNSVUZCUlN4UFFVRlRMRVZCUVVrc1JVRkRha01zUTBGQlEwRXNSVUZCUlN4VFFVRlhRU3hGUVVGRkxGRkJRMnhDZVVNc1JVRkJTWHBETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVGSlFTeEZRVUZGTEUxQlFVMTNReXhGUVVGUkxFMUJRVTFGTEVWQlFWbEJMRVZCUVdFelF5eERRVUZOTEVOQlFVTXNSMEZGT1VVeVF5eEhRVUZqTTBNc1EwRkRhRUlzUTBGRlJpeE5RVUZQTEVOQlFVTjVReXhGUVVGVFF5eERRVUZITEVOQlEzUkNMRXRCUTBVc1QwRkJUeXhEUVVGRFJDeEZRVUZUTEVOQlFVTXNRMEZCUXl4RFFVVjJRaXhEUVVWQkxGTkJRVk5KTEVkQlFXOUNTaXhGUVVGVExFTkJRM0JETEVsQlFVMUxMRVZCUVZkMFF5eEhRVUZWTEVOQlEzcENMRTlCUVZGQkxFVkJRVThzUTBGRFlpeEpRVUZMTEVsQlEwZ3NUVUZCVHl4alFVTlVMRWxCUVVzc1NVRkRTQ3hOUVVGUExGTkJRMVFzU1VGQlN5eEpRVU5JTEUxQlFVOHNVMEZEVkN4SlFVRkxMRWxCUTB3c1NVRkJTeXhKUVVOSUxFMUJRVThzVDBGRFZDeEpRVUZMTEVsQlEwZ3NUVUZCVHl4TlFVTlVMRWxCUVVzc1NVRkRTQ3hOUVVGUExGVkJRMVFzU1VGQlN5eEpRVU5NTEVsQlFVc3NTVUZEU0N4TlFVRlBMRkZCUTFRc1NVRkJTeXhKUVVOSUxFMUJRVThzVDBGRFZDeEpRVUZMTEVsQlEwd3NTVUZCU3l4SlFVTklMRTFCUVU4c1ZVRkRWQ3hKUVVGTExFbEJRMGdzVFVGQlR5eGhRVU5VTEVsQlFVc3NTVUZEU0N4TlFVRlBMRmRCUTFRc1NVRkJTeXhKUVVOSUxFMUJRVThzVlVGRFZDeFJRVU5GTEU5QlFVOHNTVUZEV0N4RFFVTkdMRVZCUlVsMVF5eEZRVUZQTEV0QlExQkRMRVZCUTBvc1QwRkJTME1zUlVGQldWSXNSVUZCVVN4RFFVRkRMRWxCUTNoQ1RTeEZRVUZQUnl4SFFVRlRMRTlCUVU5VUxFVkJRVkVzUTBGQlF5eEhRVWMzUWxFc1JVRkJXVklzUlVGQlVTeERRVUZETEVsQlEyNUNUU3hKUVVOSVFTeEZRVUZQTEVsQlFVbEpMRWRCUVdkQ1ZpeEZRVUZSTEVOQlFVTXNSMEZGZEVOUExFVkJRV2xDVUN4RlFVRlJMRWRCUjNSQ1VTeEZRVUZaVWl4RlFVRlJMRU5CUVVNc1NVRkRlRUpCTEVWQlFWRXNSMEZCUzBFc1JVRkJVU3hGUVVGSkxFZEJRVXNzUlVGQlNTeEhRVWN2UWxFc1JVRkJXVklzUlVGQlVTeERRVUZETEVsQlEzQkNRU3hGUVVGUkxFVkJRVWtzU1VGQlRVRXNSVUZCVVN4SlFVRk5MRVZCUTJ4RFFTeEZRVUZSTEVkQlFVc3NSMEZEU2tFc1JVRkJVU3hKUVVGTkxFbEJRVTFCTEVWQlFWRXNTVUZCVFN4SlFVTXpRMEVzUlVGQlVTeEZRVUZKTEVsQlNWcEJMRVZCUVZFc1NVRkJUU3hIUVVGTFFTeEZRVUZSTEVsQlF6ZENRU3hGUVVGUkxFVkJRVWtzUTBGQlEwRXNSVUZCVVN4SFFVZHNRbEVzUlVGQldWSXNSVUZCVVN4RFFVRkRMRWxCUTNoQ1FTeEZRVUZSTEVWQlFVbFhMRWRCUVZsWUxFVkJRVkVzUTBGQlF5eEhRVmsxUWl4RFFWUk5MRTlCUVU4c1MwRkJTMEVzUTBGQlR5eEZRVUZGTEU5QlFVOHNRMEZCUTFrc1JVRkJSME1zU1VGQlRTeERRVU5xUkN4SlFVRk5ha0lzUlVGQlNWTXNSVUZCVVZFc1EwRkJReXhGUVVOdVFpeFBRVUZKYWtJc1NVRkRSbWRDTEVWQlFVVm9RaXhEUVVGRExFVkJRVWxKTEVWQlFWRmhMRU5CUVVNc1IwRkhXRVFzUTBGRFZDeEZRVUZITEVOQlFVTXNRMEZCUXl4RlFVVlRUaXhGUVVGTlF5eERRVUZqTEVOQlEzQkRMRU5CUlVFc1NVRkJTVThzUjBGQmNVSXNTMEZGZWtJc1UwRkJVME1zU1VGQmJVSXNRMEZETVVJc1QwRkJTMFFzUzBGRFNFRXNSMEZCY1VKRkxFVkJRVk1zVjBGQlZ5eGhRVUZoTEVkQlIycEVSaXhGUVVOVUxFTkJSVUVzVTBGQlUwY3NSMEZCYzBKc1JDeEZRVUZQY1VJc1JVRkJVU3hEUVVNMVF5eEhRVUZKY2tJc1JVRkJUU3hSUVVOU0xFOUJRVTlCTEVWQlIxUXNTVUZCVFhOQ0xFVkJRV0UyUWl4SFFVRlZMSFZDUVVGMVFtNUVMRVZCUVUwc1IwRkJSeXhGUVVVM1JDeEhRVUZKTEVOQlFVTnpRaXhGUVVOSUxFOUJRVTkwUWl4RlFVMVVMRWxCUVUxdlJDeEZRVWhaUkN4SFFVRlZMRTlCUVU4NVFpeEZRVUZSUXl4RFFVRlZMRVZCUXpkQ0xHOUNRVUZ2UWpCQ0xFZEJRV2xDTEVOQlFVTXNSVUZGZWtNc1NVRkJTMHNzUjBGQlRXeERMRWRCUVdGclF5eEZRVUZIYUVNc1JVRkJVVU1zUTBGQlZTeERRVUZETEVWQlJXNUZMRTlCUVVrNFFpeEZRVUZQTEZOQlFWTXNUVUZCVXl4RlFVTndRbkJFTEVWQlIwWnZSQ3hEUVVOVUxFTkJSVUVzVTBGQlUwVXNSMEZCYTBKR0xFVkJRVkV2UWl4RlFVRlJMRU5CUTNwRExFOUJRVThzVFVGQlRTeFZRVUZWTEU5QlFVOHNSMEZCUnl0Q0xFVkJRVThzU1VGQlN5eEhRVUZOUml4SFFVRnpRaXhGUVVGSE4wSXNRMEZCVFN4RFFVRkRMRU5CUVVNc1EwRkRkRVlzUTBGTlR5eFRRVUZUYTBNc1IwRkJhMEpzUXl4RlFVRlJWU3hGUVVGUGVVSXNSVUZCVVN4RFFVTjJSQ3hKUVVGTlNpeEZRVUZUUlN4SFFVRnJRa2dzUjBGQlZTeFpRVUZaU3l4RFFVRk5MRVZCUVVkdVF5eERRVUZOTEVWQlEzQkZUU3hGUVVGUmVVSXNSVUZCVHl4SlFVRkxja01zUjBGQlRXaENMRWRCUVdGblFpeEZRVUZIVFN4RFFVRk5MRU5CUVVNc1JVRkRha1J2UXl4RlFVRnZRamxDTEVWQlFVMHNTMEZCVFZvc1IwRkJUVUVzUlVGQlJTeGhRVUZoTEVWQlJYWkVMRWRCUVVrd1F5eEZRVU5HTEUxQlFVOHNRMEZCUlN4TlFVRkJNVUlzUlVGQlR5eFBRVUZCY1VJc1JVRkJVU3hqUVVGbFN5eEZRVUZyUWl4aFFVRmpMRVZCUTJ4RkxFTkJRMHdzUjBGQlRTeERRVUZEUXl4RlFVRmhNVUlzUTBGQlVTeEZRVUZKVGl4SFFVRlhReXhEUVVGTExFVkJRemxEYWtRc1JVRkJVU3hQUVVGUFowWXNSVUZCWVN4SFFVRkhMRVZCUXk5Q0xFTkJRVU5ETEVWQlFWa3hRaXhEUVVGUExFVkJRVWxJTEVkQlFVMURMRVZCUVU5eVJDeEZRVUZQYzBRc1EwRkJVU3hGUVVOd1JDeERRVUZETkVJc1JVRkJVWEpDTEVWQlFVMURMRU5CUVdNc1JVRkJTVkFzUlVGRE4wSkpMRWRCUVc5Q1NpeERRVUZQTEVWQlF6TkNMRU5CUVVNc1MwRkJUU3hMUVVGTkxFMUJRVk1zUlVGRE5VSXNSMEZCU1Vjc1IwRkJaVWdzUlVGQlV5eEhRVUZITEVkQlFVdEhMRWRCUVdWSUxFVkJRVk1zUjBGQlJ5eEZRVU0zUkN4TlFVRk5MRWxCUVVrMFFpeEhRVU5TTEhWRVFVTkdMRVZCUlVZc1RVRkJUeXhEUVVGRkxFMUJRVUU1UWl4RlFVRlBMRTlCUVVGeFFpeEZRVUZSTEUxQlFVRXhSU3hGUVVGUExGZEJRVUZwUml4RlFVRlpMRkZCUVVFeFFpeEZRVUZUTEU5QlFVRXlRaXhGUVVGUkxFdEJRVUZ5UWl4RlFVRk5MR1ZCUVVGRExFTkJRV1VzUTBGRGJrWXNRMEZEUml4RFFVVlBMRk5CUVZOelFpeEhRVUZuUW5wRExFVkJRVkZWTEVWQlFVOTVRaXhGUVVGUkxFTkJRM0pFTEVkQlFVMHNRMEZCUlN4UFFVRkJTU3hGUVVGUkxFdEJRVUZ5UWl4RlFVRk5MR1ZCUVVGRExFVkJRV2RDTEdOQlFVRjFRaXhEUVVGakxFVkJRVWxTTEVkQlFXdENiRU1zUlVGQlVWVXNSVUZCVDNsQ0xFTkJRVTBzUlVGREwwWXNUVUZCVHl4RFFVRkRTU3hGUVVGUmNrSXNSVUZCVFVNc1JVRkJaMEoxUWl4RFFVRmhMRU5CUTNKRUxFTkRjbUZCTEVsQlFVMURMRWRCUVdkQ0xFTkJRVU1zUlVGQlJ5eEhRVUZKTEVkQlFVa3NSMEZCU1N4SlFVRkxMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVkQlFVY3NSVUZETVVWRExFZEJRV0VzUTBGQlF5eEZRVUZITEVkQlFVa3NSMEZCU1N4SFFVRkpMRWxCUVVzc1NVRkJTeXhKUVVGTExFbEJRVXNzU1VGQlN5eEpRVUZMTEVsQlFVc3NSMEZCUnl4RlFVVnlSU3hUUVVGVFF5eEhRVUZsUXl4RlFVRk5ReXhGUVVGUExFTkJRMjVETEU5QlFVOHNTVUZCU1VNc1IwRkRWQ3h2UWtGRFFTeHBRa0ZCYVVKRUxFTkJRVXNzWVVGQllTeFBRVUZQUVN4RFFVRkxMRlZCUVZWRUxFTkJRVWtzYjBKQlF5OUVMRU5CUTBZc1EwRkZRU3hUUVVGVFJ5eEhRVUZWUXl4RlFVRk5ReXhGUVVGUFF5eEZRVUZMTEVOQlEyNURMRWxCUVUxRExFVkJRVWtzU1VGQlNTeExRVUZMTEV0QlFVc3NTVUZCU1Vnc1JVRkJUVU1zUlVGQlVTeEZRVUZIUXl4RFFVRkhMRU5CUVVNc1JVRkZOME5HTEVWQlFVOHNTMEZCVDBFc1IwRkJVU3hIUVVONFFrY3NSVUZCUlN4bFFVRmxRU3hGUVVGRkxHVkJRV1VzUlVGQlNTeEpRVUZKTEVWQlJ6VkRMRWxCUVUxRExFVkJRVXRFTEVWQlFVVXNWVUZCVlN4RlFVVjJRaXhQUVVGUFF5eEpRVUZQTEVWQlFVa3NSVUZCU1VFc1EwRkRlRUlzUTBGRlFTeFRRVUZUUXl4SFFVRmxUQ3hGUVVGTlF5eEZRVUZQUXl4RlFVRkxMRU5CUTNoRExFOUJRVTlCTEVkQlFVOUpMRWRCUVZkT0xFTkJRVWtzUlVGQlNVNHNSMEZCWVVRc1NVRkJaVkVzUlVGQlVTeERRVUZETEVOQlEzaEZMRU5CUlVFc1UwRkJVMDBzUjBGQmFVSlFMRVZCUVUxUkxFVkJRVk1zUTBGRGRrTXNTVUZCVFVNc1JVRkJVVWdzUjBGQlYwNHNRMEZCU1N4RlFVRkpUaXhIUVVGaFJDeEhRVU0xUTJsQ0xFVkJRVk5FTEVWQlFVMHNWVUZCVnl4SFFVRk5MRVZCUVVsRUxFTkJRVThzUlVGRE0wTk9MRVZCUVUxTkxFVkJRVlZETEVWQlFVMURMRU5CUVUwc1JVRkRPVUlzVFVGQlR5eERRVUZGTEUxQlFVOUJMRVZCUVZNc1JVRkJSeXhKUVVGQlVpeERRVUZKTEVOQlEyeERMRU5CVFU4c1UwRkJVMU1zUjBGQlowSkRMRVZCUVZNc1EwRkRka01zUjBGQlRTeERRVUZGTEV0QlFVRmFMRVZCUVUwc1RVRkJRVU1zUlVGQlR5eEpRVUZCUXl4RFFVRkpMRVZCUVVsVkxFVkJRek5DU2l4RlFVRlZTQ3hIUVVGbFRDeEZRVUZOUXl4RlFVRlBReXhEUVVGSExFVkJRM3BEVnl4RlFVRlZaQ3hIUVVGVlF5eEZRVUZOUXl4RlFVRlBReXhEUVVGSExFVkJSV3hEV1N4RlFVRmhMRXRCUVVzc1QwRkJUMDRzUlVGQlZVc3NSVUZCVlN4SlFVRk5MRU5CUVVNc1JVRkRkRVJGTEVWQlJVWXNUMEZCU1VRc1JVRkJZU3hIUVVObVF5eEZRVUZYWml4RlFVRlBMRVZCUTJ4Q1l5eEZRVUZoUlN4SFFVRm5Ra1FzUTBGQlVTeEhRVU0xUWtRc1JVRkJZVVVzUjBGQlowSm9RaXhEUVVGSkxFZEJRekZEWlN4RlFVRlhaaXhGUVVGUExFVkJRMnhDWXl4RlFVRmhMRWRCUldKRExFVkJRVmRtTEVWQlIwNXBRaXhGUVVGQkxFTkJRVVVzVTBGQlFVWXNSVUZCVlN4WFFVRkJSQ3hGUVVGWkxGRkJRVUZFTEVkQlFWbExMRWRCUVZkT0xFTkJRVThzUlVGREwwUXNRMEZGVHl4VFFVRlRUeXhIUVVGblFrTXNSVUZCVlN4RFFVTjRReXhIUVVGTkxFTkJRVVVzVTBGQlFVd3NSVUZCVlN4WFFVRkJSQ3hGUVVGWkxGRkJRVUZFTEVOQlFWRXNSVUZCU1U4c1JVRkRlRU5ETEVWQlFXZENkRUlzUjBGQlZXZENMRVZCUVZVc1JVRkJSeXhEUVVGRExFVkJRM2hEVHl4RlFVRmhReXhIUVVGWFVpeERRVUZSTEVWQlJUbENVQ3hGUVVGVlRTeEZRVUZoTEVWQlFVbEVMRVZCUVZWUkxFVkJRV2RDTEVWQlEzWkVja0lzUlVGRlJWRXNSVUZCVlN4SFFVTmFVaXhGUVVGUFpTeEZRVUZYTEVWQlEyeENVQ3hIUVVGWFpTeEhRVUZYZGtJc1EwRkJTU3hIUVVOcVFsRXNSVUZCVldNc1IwRkRia0owUWl4RlFVRlBaU3hGUVVGWExFVkJRMnhDVUN4SFFVRlhaU3hIUVVGWFVpeERRVUZSTEVkQlJUbENaaXhGUVVGUFpTeEZRVWRVTEVkQlFVMHNRMEZCUlN4TlFVRkJaQ3hGUVVGUExFbEJRVUZETEVOQlFVa3NSVUZCU1Vzc1IwRkJhVUpRTEVWQlFVMVJMRU5CUVU4c1JVRkRja1FzVDBGQlQxTXNSVUZCUVN4RFFVRkZMRXRCUVVGcVFpeEZRVUZOTEUxQlFVRkRMRVZCUVU4c1NVRkJRVU1zUjBGQlVXZENMRWRCUVZkRkxFTkJRVkVzUlVGRGJrUXNRMEZGVHl4VFFVRlRTU3hIUVVGdFFrTXNSVUZCVlN4RFFVTXpReXhIUVVGTkxFTkJRVVVzUzBGQlFYcENMRVZCUVUwc1RVRkJRVU1zUlVGQlR5eEpRVUZCUXl4RFFVRkpMRVZCUVVsMVFpeEZRVU4yUW1wQ0xFVkJRVlZJTEVkQlFXVk1MRVZCUVUxRExFVkJRVTlETEVOQlFVY3NSVUZETDBNc1QwRkJUMlVzUlVGQlFTeERRVUZGTEV0QlFVRnFRaXhGUVVGTkxGRkJRVUZSTEVkQlFWbFZMRWRCUVZkUExFTkJRVkVzUlVGRGFFUXNRMEZGVHl4VFFVRlRReXhIUVVGdFFrTXNSVUZCWVN4RFFVTTVReXhIUVVGTkxFTkJRVVVzUzBGQlFUTkNMRVZCUVUwc1VVRkJRVkVzUTBGQlVTeEZRVUZKYlVJc1JVRkRjRUlzUTBGQlJTeE5RVUZCTVVJc1JVRkJUeXhKUVVGQlF5eERRVUZKTEVWQlFVbExMRWRCUVdsQ1VDeEZRVUZOVVN4RFFVRlBMRVZCUTNKRUxFOUJRVTlUTEVWQlFVRXNRMEZCUlN4TFFVRkJha0lzUlVGQlRTeE5RVUZCUXl4RlFVRlBMRWxCUVVGRExFZEJRVkZuUWl4SFFVRlhVeXhEUVVGWExFVkJRM1JFTEVOQlJVOHNVMEZCVTBNc1IwRkJiVUpETEVWQlFVc3NRMEZEZEVNc1NVRkJUVU1zUlVGQldVTXNSMEZCVlVZc1JVRkJTU3hSUVVGUkxFVkJRM1JEUnl4RlFVRlpReXhIUVVGbFNpeEZRVUZKTEZkQlFWa3NSVUZCUjJJc1IwRkJaMEpoTEVWQlFVa3NVVUZCVVN4RFFVRkRMRVZCUXpORlN5eEZRVUZsUkN4SFFVRmxTaXhGUVVGSkxGRkJRVk1zUlVGQlJ5eERRVUZETEVWQlJXcEVMRTlCUVV0RExFVkJSVTlGTEVWQlJVRkZMRVZCUlVVc1IwRkVUSFpETEVkQlFXVXNWVUZCVjJ0RExFVkJRVWtzVDBGQlR5eEZRVVp5UTJ4RExFZEJRV1VzVDBGQlVXdERMRVZCUVVrc1NVRkJTU3hGUVVZdlFteERMRWRCUVdVc1YwRkJXV3RETEVWQlFVa3NVVUZCVVN4RFFVMXNSQ3hEUVVWUExGTkJRVk5OTEVkQlFYTkNUaXhGUVVGTExFTkJRM3BETEVsQlFVMURMRVZCUVZsRExFZEJRVlZHTEVWQlFVa3NTVUZCU1N4RlFVTnNRMDhzUlVGQlpVZ3NSMEZCWlVvc1JVRkJTU3hSUVVGVExFVkJRVWRPTEVkQlFWZE5MRVZCUVVrc1NVRkJTU3hEUVVGRExFVkJSWEJGTEU5QlFVdERMRVZCUlU5TkxFVkJSVVVzUjBGRVRIcERMRWRCUVdVc1ZVRkJWMnRETEVWQlFVa3NUMEZCVHl4RlFVWnlRMnhETEVkQlFXVXNUMEZCVVd0RExFVkJRVWtzU1VGQlNTeERRVWt4UXl4RFFVVlBMRk5CUVZOUkxFZEJRWGRDVWl4RlFVRkxMRU5CUXpORExFbEJRVTFETEVWQlFWbERMRWRCUVZWR0xFVkJRVWtzU1VGQlNTeEZRVU5zUTFNc1JVRkJZVXdzUjBGQlpVb3NSVUZCU1N4TlFVRlBMRVZCUVVjc1JVRkJSU3hGUVVNMVExVXNSVUZCVjA0c1IwRkJaVW9zUlVGQlNTeEpRVUZMTEVWQlFVZFhMRWRCUVZsWUxFVkJRVWtzUzBGQlRVRXNSVUZCU1N4TFFVRkxMRU5CUVVNc1JVRkZlRVVzVDBGQlMwTXNSVUZGVDFFc1JVRkZRVU1zUlVGRlJTeEhRVVJNTlVNc1IwRkJaU3hOUVVGUGEwTXNSVUZCU1N4SFFVRkhMRVZCUmpkQ2JFTXNSMEZCWlN4UlFVRlRhME1zUlVGQlNTeExRVUZMTEVWQlJtcERiRU1zUjBGQlpTeFBRVUZSYTBNc1JVRkJTU3hKUVVGSkxFTkJUVEZETEVOQlJVOHNVMEZCVTFrc1IwRkJiVUphTEVWQlFVc3NRMEZEZEVNc1IwRkJUU3hEUVVGRkxFdEJRVUZoTEVWQlFVMHNUMEZCUVVNc1JVRkJVU3hQUVVGQlF5eEZRVUZSTEZsQlFVRkRMRU5CUVZrc1JVRkJTV2hDTEVWQlEzaERhVUlzUlVGRFJtSXNSMEZCWlZNc1JVRkJUU3hGUVVGSExFVkJRVVVzUjBGRGVrSkJMRWxCUVZNc1NVRkJUVU1zU1VGQlZ5eEhRVUZMUXl4SlFVRlhMRWRCUVV0RExFbEJRV2RDTEVWQlEyeEZSU3hGUVVGalpDeEhRVUZsVlN4RlFVRlJMRVZCUVVjc1JVRkJSU3hGUVVNeFEwc3NSVUZCWTJZc1IwRkJaVmNzUlVGQlVTeEZRVUZITEVWQlFVVXNSVUZETVVOTExFVkJRVzFDYUVJc1IwRkJaVmtzUlVGQllTeEZRVUZITEVkQlFVY3NSVUZGZGtRc1QwRkJTME1zUlVGRlQwTXNSVUZGUVVNc1JVRkZRVU1zUlVGRlJTeEhRVVJNZEVRc1IwRkJaU3hqUVVGbGEwUXNRMEZCVnl4RlFVWjZRMnhFTEVkQlFXVXNVMEZCVldsRUxFTkJRVTBzUlVGR0wwSnFSQ3hIUVVGbExGTkJRVlZuUkN4RFFVRk5MRVZCUmk5Q2FFUXNSMEZCWlN4UFFVRlJLME1zUTBGQlNTeERRVkYwUXl4RFEyNUlRU3hKUVVGTlVTeEhRVUZWTEcxQ1FVTldReXhIUVVGWExFOUJSV3BDTEZOQlFWTkRMRWRCUVdkQ1F5eEZRVUZOTEVOQlF6ZENMRTlCUVU4c1NVRkJTVU1zUjBGQlVTeHRRa0ZCYjBJc1lVRkJZVVFzUlVGQlN5eEpRVUZKTEc5Q1FVRnZRaXhEUVVOdVJpeERRVWRCTEZOQlFWTkZMRWRCUVhWQ1F5eEZRVUZKTEVOQlEyeERMRTlCUVVsQkxFVkJRVWNzVjBGQllTeFBRVU5zUWtFc1JVRkJSeXhUUVVGWFF5eEhRVUZuUWtRc1JVRkJSeXhEUVVGRExFZEJSVGRDUVN4RlFVRkhMRkZCUTFvc1EwRkpRU3hUUVVGVFJTeEhRVUZOUXl4RlFVRk5ReXhGUVVGTkxFTkJRM3BDTEVsQlFVMURMRVZCUVZVc1EwRkRaQ3hIUVVGSlJpeEZRVUZMTEVkQlExUXNTMEZCVFVFc1JVRkJTeXhMUVVOWUxFVkJRVWRCTEVWQlFVc3NSVUZEVWl4RlFVRkhRU3hGUVVGTExFVkJRMUlzU1VGQlMwRXNSVUZCU3l4SlFVTldMRkZCUVZOQkxFVkJRVXNzVDBGRGFFSXNSVUZEUVN4UFFVRlBMRWxCUVVsSExFVkJRVk5ETEVkQlFVRkRMRWxCUVVFc1IwRkJTMGdzUjBGQldVUXNSMEZCYWtJc1EwRkJkVUlzU1VGQlMwTXNRMEZCVVN4RlFVRkRMRU5CUXpORUxFTkJTVUVzVTBGQlUwa3NSMEZCVlVNc1JVRkJVME1zUlVGQlIwTXNSVUZCU1N4RFFVVnFReXhKUVVGSlF5eEZRVUZYU0N4RlFVRlZReXhGUVVGSkxFZEJRVXNzU1VGSE5VSkhMRVZCUVV0R0xFVkJRVWNzVDBGQlQwTXNRMEZCVVN4RlFVYzNRaXhIUVVGSlJpeEpRVUZOUnl4RlFVTlNMRTFCUVU4c1EwRkJRMFFzUlVGQlZVWXNRMEZCUXl4RlFVbHlRa1VzU1VGQllVTXNSVUZCUzBnc1IwRkJTeXhIUVVGTExFbEJSelZDTEVsQlFVMUpMRVZCUVV0SUxFVkJRVWNzVDBGQlQwTXNRMEZCVVN4RlFVTTNRaXhQUVVGSlF5eEpRVUZQUXl4RlFVTkdMRU5CUVVOR0xFVkJRVlZETEVOQlFVVXNSVUZKWml4RFFVRkRTaXhGUVVGVkxFdEJRVXNzU1VGQlNVa3NSVUZCU1VNc1EwRkJSU3hGUVVGSkxFZEJRVXNzU1VGQlRTeExRVUZMTEVsQlFVbEVMRVZCUVVsRExFTkJRVVVzUTBGQlF5eERRVU5zUlN4RFFVZEJMRk5CUVZORExFZEJRVkZETEVWQlFVbERMRVZCUVZFc1EwRkRNMEpFTEVkQlFVMURMRVZCUVZNc1IwRkJTeXhKUVVWd1FpeEpRVUZOUXl4RlFVRkpMRWxCUVVrc1MwRkJTMFlzUTBGQlJTeEZRVVZ5UWl4TlFVRlBMRU5CUTB3c1MwRkJUVVVzUlVGQlJTeGxRVUZsTEVWQlEzWkNMRTFCUVU5QkxFVkJRVVVzV1VGQldTeEZRVUZKTEVWQlEzcENMRWxCUVV0QkxFVkJRVVVzVjBGQlZ5eEZRVU5zUWl4TFFVRk5RU3hGUVVGRkxGbEJRVmtzUlVGRGNFSXNUMEZCVVVFc1JVRkJSU3hqUVVGakxFVkJRM2hDTEU5QlFWRkJMRVZCUVVVc1kwRkJZeXhGUVVONFFpeFpRVUZoUVN4RlFVRkZMRzFDUVVGdFFpeERRVU53UXl4RFFVTkdMRU5CUjBFc1UwRkJVME1zUjBGQlVVTXNSVUZCUzBnc1JVRkJVWEpDTEVWQlFVMHNRMEZEYkVNc1QwRkJUMWtzUjBGQlZXRXNSMEZCWVVRc1EwRkJSeXhGUVVGSFNDeEZRVUZSY2tJc1EwRkJTU3hEUVVOc1JDeERRVWRCTEZOQlFWTXdRaXhIUVVGWGNFSXNSVUZCVFhGQ0xFVkJRVXNzUTBGRE4wSXNTVUZCVFVNc1JVRkJUM1JDTEVWQlFVc3NSVUZEYUVKMVFpeEZRVUZQZGtJc1JVRkJTeXhGUVVGRkxFdEJRVThzUzBGQlN5eE5RVUZOY1VJc1JVRkJTU3hMUVVGTExFVkJRM3BEUnl4RlFVRlJlRUlzUlVGQlN5eEZRVUZGTEUxQlFWRXNTMEZCU3l4TlFVRk5jVUlzUlVGQlNTeE5RVUZOTEVWQlFVa3NTMEZCU3l4TlFVRk5RU3hGUVVGSkxGRkJRVkVzUlVGQlNTeEZRVU16UlVrc1JVRkJTWEpDTEVkQlFVRkRMRVZCUVVFc1IwRkRRMHdzUlVGQlN5eEhRVVJPTEVOQlJVWXNTMEZCUVhWQ0xFVkJRMEVzVFVGQlFVTXNSVUZEUVN4SlFVTkZMRXRCUVVzc1NVRkJTWGhDTEVWQlFVc3NSVUZCUlN4SlFVRkxNRUlzUjBGQldVZ3NSVUZCVFVNc1EwRkJTeXhEUVVGRExFVkJRemRETEV0QlFVc3NUVUZCVFVnc1JVRkJTU3hKUVVGSkxFVkJRMjVDTEV0QlFVc3NUVUZCVFVFc1JVRkJTU3hMUVVGTExFVkJRVWtzUTBGRE5VSXNSMEZEUVUwc1JVRkJZME1zUlVGQlV5eFhRVUZYTEVOQlEyaERMRTFCUVU5UUxFVkJRVWtzVFVGQlVTeExRVUZMTEUxQlFVMUJMRVZCUVVrc1MwRkJTeXhGUVVOMlF5eFRRVUZWUVN4RlFVRkpMRk5CUVZjc1MwRkJTeXhOUVVGTlFTeEZRVUZKTEZGQlFWRXNSVUZEYUVRc1QwRkJVVUVzUlVGQlNTeFBRVUZUTEV0QlFVc3NUVUZCVFVFc1JVRkJTU3hOUVVGTkxFVkJRekZETEUxQlFVOUJMRVZCUVVrc1RVRkJVU3hMUVVGTExFMUJRVTFCTEVWQlFVa3NTMEZCU3l4RlFVTjJReXhMUVVGTlFTeEZRVUZKTEV0QlFVOHNTMEZCU3l4TlFVRk5RU3hGUVVGSkxFbEJRVWtzUlVGRGNFTXNUVUZCVDBFc1JVRkJTU3hOUVVOWUxGRkJRVk5CTEVWQlFVa3NVVUZEWWl4UlFVRlRRU3hGUVVGSkxGRkJRMklzWVVGQlkwRXNSVUZCU1N4WlFVTndRaXhEUVVGRExFVkJRVVVzUjBGQlJ5eGpRVUZqTEVWQlEzQkNaQ3hGUVVGVldTeEhRVUZoVFN4RFFVRkRMRVZCUlhSQ0xFTkJRVU5ZTEVWQlFVbE9MRU5CUVVNc1JVRkJTVVlzUjBGQlZVTXNSVUZCVTJVc1JVRkJUWFJDTEVWQlFVc3NTVUZCU1N4RlFVVm9SQ3hQUVVGSk1rSXNTVUZCWjBJc1NVRkRiRUppTEVkQlFVMWhMRVZCUlU1dVFpeEZRVUZKVWl4RlFVRkxMRXRCUVVzc1QwRkJUMk1zUTBGQlJTeEhRVWRzUWl4RFFVRkZMRWRCUVVGQkxFVkJRVWtzUlVGQlFVNHNRMEZCUlN4RFFVTnFRaXhEUVVsQkxGTkJRVk54UWl4SFFVRnZRa01zUlVGQlVVTXNSVUZCV1VNc1JVRkJUVU1zUlVGQlVVTXNSVUZCVFVNc1JVRkJaMElzUTBGRGJrWXNSMEZCVFN4RFFVRkZMRkZCUVVGRExFVkJRVk1zUzBGQlFURkRMRU5CUVVzc1JVRkJTWE5ETEVWQlF6RkNMRWRCUVVsR0xFZEJRVlVzVDBGQlR5eExRVUZMUVN4RFFVRk5MRVZCUVVVc1UwRkJWeXhGUVVGSExFTkJRemxETEVsQlFVMVBMRVZCUVhGQ1RpeEhRVUZqY2tNc1JVRkRka05OTEVWQlFVOUhMRVZCUVZNc1YwRkJWekpDTEVWQlFWRXhRaXhIUVVGQlF5eEZRVUZCTEVkQlF6bENNa0lzUjBGRU9FSXNRMEZGYWtNc1MwRkJUVXNzUlVGRFRpeGxRVUZCUml4RFFVTkdMRVZCUVVNc1JVRkRTQ3hQUVVGUFF5eEZRVUZWY0VNc1JVRkJUMEVzUlVGQlN5eFJRVUZSVGl4RFFVRkpMRU5CUXpORExFdEJRMFVzVVVGQlQxTXNSVUZCVXl4UlFVTmtMRWxCUVVsU0xFZEJRVkVzWVVGQll5eGpRVUZqZFVNc1EwRkJTU3gzUWtGQmQwSkVMRU5CUVUwc1JVRkJSU3hEUVVNNVJTeERRVVZLTEVOQlNVRXNVMEZCVTBzc1IwRkJZWHBETEVWQlFVbHZReXhGUVVGUlRTeEZRVUZUTEVkQlFVMHNRMEZETDBNc1QwRkJUekZETEVWQlFVY3NVVUZEVGpKRExFZEJRVlVzVDBGQlQwTXNSMEZCVHl4UFFVRlBMRTlCUVU4c1JVRkJSeXhEUVVOMlF5eFBRVUZCUml4RlFVTkJMRmxCUVdFc1JVRkRaaXhEUVVGRExFVkJRVVVzZVVKQlFYbENNVU1zUlVGQlNXOURMRU5CUVUwc1JVRkRkRU1zU1VGRFRpeERRVVZCTEZOQlFWTlRMRWRCUVZWc1F5eEZRVUZIYlVNc1JVRkJWU3hEUVVNNVFpeEpRVUZOUXl4RlFVRmhjRU1zUlVGQlJTeEZRVUZGTEV0QlFVOHNUVUZCVVVFc1JVRkJSU3hGUVVGRkxFdEJRVThzUlVGRE4wTnBRaXhGUVVGSkxFZEJRMUlzVDBGQlNXMUNMRWRCUVdOd1F5eEZRVUZGTEVWQlFVVXNUVUZCVVN4SlFVRkhhVUlzUjBGQlN5eExRVU4wUTBFc1IwRkJTMjlDTEVkQlFWTnlReXhGUVVGRkxFVkJRVVVzUzBGQlRXOURMRVZCUVdFc1JVRkJTU3hEUVVGRExFVkJSWFJEUkN4SFFVTkdiRUlzUjBGQlN5eEpRVU5NUVN4SFFVRkxiMElzUjBGQlUzSkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRM1pDYVVJc1IwRkJTeXhKUVVOTVFTeEhRVUZMYjBJc1IwRkJVM0pETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUlhKQ2FVSXNSMEZCUzI5Q0xFZEJRVk55UXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVOMlFtbENMRWRCUVV0dlFpeEhRVUZUY2tNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUjBGRmFFSnBRaXhEUVVOVUxFTkJSVUVzVTBGQlUzRkNMRWRCUTFCMFF5eEZRVU5CYlVNc1JVRkRRVWtzUlVGRFFVTXNSVUZEUVVNc1JVRkRRVU1zUlVGRFFTeERRVU5CTEVsQlFVbDZRaXhGUVVGSmIwSXNSMEZCVTNKRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlEzcENMRTlCUVVsdFF5eEhRVU5HYkVJc1IwRkJTeXhKUVVOTVFTeEhRVUZMYjBJc1IwRkJVM0pETEVWQlFVVXNSVUZCUlN4TlFVRk5MRWRCUTNCQ1FTeEZRVUZGTEVWQlFVVXNVMEZCVnl4SFFVRkxMRU5CUVVOMVF5eExRVU4yUW5SQ0xFZEJRVXNzVFVGSFVFRXNSMEZCUzI5Q0xFZEJRVk55UXl4RlFVRkZMRVZCUVVVc1RVRkJUU3hIUVVkMFFrRXNSVUZCUlN4RlFVRkZMRk5CUVZjc1IwRkJTeXhEUVVGRGRVTXNTMEZEZGtKMFFpeEhRVUZMYjBJc1IwRkJVM0pETEVWQlFVVXNSVUZCUlN4TlFVRk5MRWRCUlhCQ1FTeEZRVUZGTEVWQlFVVXNZMEZCWjBJc1IwRkJTeXhEUVVGRGQwTXNTMEZETlVKMlFpeEhRVUZMTEVsQlEweEJMRWRCUVV0dlFpeEhRVUZUY2tNc1JVRkJSU3hGUVVGRkxGbEJRV0VzUTBGQlF5eEpRVWxvUTNsRExFbEJRMFY2UXl4RlFVRkZMR1ZCUVdsQ1FTeEZRVUZGTEZOQlFWY3NSMEZCU3l4RFFVRkRNRU1zUlVGRGVFTjZRaXhIUVVGTExFbEJRMGxxUWl4RlFVRkZMRVZCUVVrc1IwRkRabWxDTEVkQlFVc3NTVUZEVEVFc1IwRkJTMjlDTEVkQlFWTXNTMEZCU3l4TlFVRk5MRU5CUVVOeVF5eEZRVUZGTEVWQlFVa3NSVUZCUlN4RFFVRkRMRVZCUTI1RGFVSXNSMEZCU3l4SlFVTk1RU3hIUVVGTGIwSXNSMEZCVXl4TFFVRkxMRTFCUVUwc1EwRkJRM0pETEVWQlFVVXNSVUZCU1N4RlFVRkZMRU5CUVVNc1NVRkZia05wUWl4SFFVRkxMRWxCUTB4QkxFZEJRVXR2UWl4SFFVRlRMRXRCUVVzc1RVRkJUWEpETEVWQlFVVXNSVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkRiRU5wUWl4SFFVRkxMRWxCUTB4QkxFZEJRVXR2UWl4SFFVRlRMRXRCUVVzc1RVRkJUWEpETEVWQlFVVXNSVUZCU1N4RlFVRkZMRU5CUVVNc1NVRkpiRU13UXl4SlFVTkdla0lzUjBGQlN5eEpRVUZOYWtJc1JVRkJSU3hMUVVGTExGTkJRVmNzUzBGRmVFSnBRaXhEUVVOVUxFTkJSMEVzU1VGQlRUQkNMRWRCUVc5Q0xFTkJRM1JDTEUxQlFVOHNSVUZEVUN4SlFVRkxMRVZCUTB3c1MwRkJUU3hGUVVOT0xFOUJRVkVzUlVGRFVpeFBRVUZSTEVWQlExSXNXVUZCWVN4RFFVTm1MRVZCUTBGRExFZEJRWGRDTEVOQlEzUkNMRmRCUVZrc1JVRkRXaXhSUVVGVExFVkJRMVFzUzBGQlRTeEZRVU5PTEU5QlFWRXNSVUZEVWl4UFFVRlJMRVZCUTFJc1dVRkJZU3hEUVVObUxFVkJRMEZETEVkQlFUSkNMRU5CUTNwQ0xGRkJRVk1zUlVGRFZDeExRVUZOTEVWQlEwNHNUMEZCVVN4RlFVTlNMRTlCUVZFc1JVRkRVaXhaUVVGaExFTkJRMllzUlVGSFNVTXNSMEZCWlN4RFFVRkRMRTlCUVZFc1VVRkJVeXhOUVVGUExFOUJRVkVzVTBGQlZTeFRRVUZWTEdGQlFXRXNSVUZEY2taRExFZEJRVzFDTEVOQlEycENMRmRCUTBFc1lVRkRRU3hWUVVOQkxFOUJRMEVzVTBGRFFTeFRRVU5CTEdGQlEwWXNSVUZEUVVNc1IwRkJjMElzUTBGQlF5eFBRVUZSTEZWQlFWY3NUMEZCVVN4VFFVRlZMRk5CUVZVc1lVRkJZU3hGUVVkeVJpeFRRVUZUUXl4SFFVRmpReXhGUVVGTkxFTkJRek5DTEVsQlFVMURMRVZCUVdFc1EwRkRha0lzUzBGQlRTeFBRVU5PTEUxQlFVOHNUMEZEVUN4TlFVRlBMRkZCUTFBc1QwRkJVU3hSUVVOU0xFbEJRVXNzVFVGRFRDeExRVUZOTEUxQlEwNHNTMEZCVFN4UFFVTk9MRTFCUVU4c1QwRkRVQ3hQUVVGUkxGTkJRMUlzVVVGQlV5eFRRVU5VTEZGQlFWTXNWVUZEVkN4VFFVRlZMRlZCUTFZc1QwRkJVU3hUUVVOU0xGRkJRVk1zVTBGRFZDeFpRVUZoTEdOQlEySXNZVUZCWXl4alFVTmtMRkZCUVZNc1ZVRkRWQ3hUUVVGVkxGVkJRMVlzVjBGQldTeGhRVU5hTEZsQlFXRXNZVUZEWWl4WlFVRmhMR0ZCUTJJc1UwRkJWU3hYUVVOV0xGVkJRVmNzVjBGRFdDeFJRVUZUTEZOQlExZ3NSVUZCUlVRc1JVRkJTeXhaUVVGWkxFTkJRVU1zUlVGRmNFSXNSMEZCU1N4RFFVRkRReXhGUVVGWkxFMUJRVTBzU1VGQlNVTXNSMEZCYVVKR0xFTkJRVWtzUlVGRmFFUXNUMEZCVDBNc1EwRkRWQ3hEUVV0QkxGTkJRVk5GTEVkQlFWRXpReXhGUVVGTFl5eEZRVUZOTEVOQlF6RkNMRWxCUVUxMFF5eEZRVUZQYjBVc1IwRkJZemxDTEVWQlFVc3NTMEZCVFN0Q0xFVkJRVk1zVjBGQlZ5eEZRVU40UkVNc1JVRkJUWFpDTEVkQlFVOHNWMEZCVjFRc1EwRkJTU3hGUVVNMVFtbERMRVZCUVZGR0xFVkJRVk1zU1VGQlNTeEZRVVZ1UW1wRUxFVkJRVWtzUlVGSFVpeEhRVUZMYjBRc1JVRkJXV2hFTEVWQlFVa3NTVUZCU1N4RlFXVjJRa29zUlVGQlMyMUVMRTFCWm5GQ0xFTkJRekZDTEZGQlFWZEZMRXRCUVV0aUxFZEJRMVpaTEVWQlFWbG9SQ3hGUVVGSmFVUXNRMEZCUXl4RFFVRkRMRWxCUTNCQ2FrUXNSVUZCU1dsRUxFTkJRVU1zUlVGQlNXaENMRWRCUVd0Q1owSXNRMEZCUXl4SFFVbG9ReXhKUVVGTlF5eEZRVUZWUXl4SFFVRjNRbTVFTEVOQlFVY3NSMEZCUzI5RUxFZEJRVzFDY0VRc1EwRkJSeXhGUVVOMFJTeEhRVUZKYTBRc1JVRkRSaXhQUVVGUGFrVXNSVUZCVXl4UlFVRlJhVVVzUTBGQlR5eEZRVWRxUXl4SlFVRk5SeXhGUVVGbE4wVXNSVUZCU3l4UFFVRlBkVVVzUTBGQlN5eEZRVU4wUXl4RFFVRkRia1FzUlVGQlNTeERRVUZETEVWQlFVbEhMRWRCUVZGRExFVkJRVXR4UkN4RlFVRmpOMFVzUTBGQlNTeERRVU16UXl4RFFVbEJMRTlCUVU4c1NVRkJTVk1zUlVGQlV5eERRVUZGTEVkQlFVRlhMRVZCUVVrc1MwRkJRWEJDTEVWQlFVMHNTVUZCUVhORkxFVkJRVXNzUTBGQlJTeERRVUZETEVOQlF6RkRMRU5CUlVFc1UwRkJVMUVzUjBGQllVTXNSVUZCVDBNc1JVRkJTekZETEVWQlFVMHNRMEZEZEVNc1NVRkJUVEpETEVWQlFWRlVMRVZCUVZsc1F5eEZRVUZMTEV0QlFVc3NSVUZCU1N4SFFVRlBRU3hGUVVGTExFMUJRMnhFUXl4RlFVRlRMRU5CUVVOU0xFVkJRVWRwUXl4TFFVTllha01zUlVGQlNXMUVMRWRCUVZGdVJDeEZRVUZIYTBRc1IwRkJVek5ETEVWQlFVc3NWVUZCV1N4RlFVRkpMRVZCUVVjc1JVRkJTU3hGUVVOc1F6QkRMRVZCUVVrc1NVRkJTU3hOUVVGTk1VTXNRMEZCU1N4RlFVRkZMR0ZCUVdGQkxFTkJRVWtzUlVGRGRFTXNUMEZCVDFBc1JVRkJSMmxETEVOQlFVa3NSMEZGYWtOdFFpeEZRVUZWYmtJc1IwRkRTakZDTEVWQlFVc3NWVUZEUmpCRExFVkJRVWtzVVVGQlVVUXNSVUZCVDJZc1EwRkJTU3hGUVVWa0xFVkJSRXhuUWl4RlFVRkpMRkZCUVZGb1FpeERRVUZKTEVWQlFVVXNTMEZCUzJVc1JVRkJUU3hSUVVGUlppeERRVUZKTEVWQlFVZEJMRU5CUVVrc1JVRkJSU3hKUVVGSlFTeERRVUZKTEVWQlJ6VkVaMElzUlVGQlNTeExRVUZMUkN4RlFVRlBaaXhEUVVGSkxFVkJRVVVzU1VGQlNVRXNRMEZCU1N4RlFVa3pReXhIUVVGSk1VSXNSVUZCU3l4TFFVTlFMRTlCUVU5RExFVkJRVTgwUXl4RlFVRlBOME1zUlVGQlN5eEpRVUZKTEVWQlFVZEJMRVZCUVVzc1NVRkJTU3hGUVVjMVF5eFJRVUZYTUVJc1MwRkJVVEZDTEVWQlFVc3NUVUZCVHl4RFFVTTNRaXhKUVVGTk9FTXNSVUZCVVVRc1JVRkJUMjVDTEVOQlFVa3NSVUZEZWtJc1IwRkJTU3hMUVVGTExFbEJRVWx2UWl4RFFVRkxMRWRCUVVzc1JVRkRja0lzVDBGQlR6ZERMRVZCUVU4MlF5eEZRVUZQY0VJc1EwRkJTU3hEUVVVM1FpeERRVU5CTEU5QlFVOTZRaXhGUVVGUGQwTXNSVUZCVVVNc1JVRkJUU3hIUVVGTExFVkJRVWN4UXl4RlFVRkxMRTFCUVUxQkxFVkJRVXNzVFVGQlRTeFBRVUZUTEVOQlFVTXNRMEZCUXl4RFFVTjJSU3hEUVVWQkxGTkJRVk1yUXl4SFFVRlRReXhGUVVGVExFTkJRM3BDTEVsQlFVbG9SQ3hGUVVGUExFTkJRVU1zUlVGRFZtbEVMRVZCUTBZc1QwRkJTVVFzUlVGQlVTeFBRVUZUTEVkQlFVc3NUMEZCVDBFc1JVRkJVVUVzUlVGQlVTeFBRVUZUTEVOQlFVTXNSMEZCVFN4VlFVTXZSR2hFTEVWQlFVOW5SQ3hGUVVGUlFTeEZRVUZSTEU5QlFWTXNRMEZCUXl4RlFVTnFRME1zUlVGQlR5eE5RVUZOTEV0QlFVdEVMRU5CUVU4c1JVRkJSU3hOUVVGTkxFVkJRVWRCTEVWQlFWRXNUMEZCVXl4RFFVRkRMRWRCUlhSRVF5eEZRVUZQTEUxQlFVMHNTMEZCUzBRc1EwRkJUeXhGUVVWd1FpeERRVUZEYUVRc1JVRkJUV2xFTEVOQlFVa3NRMEZEY0VJc1EwRnpRa0VzU1VGQmNVSTVSU3hGUVVGeVFpeE5RVUZ4UWl0RkxFTkJRVk1zUTBGSk5VSXNXVUZCV1VNc1JVRkJVU3hEUVVOc1FpeEpRVUZOZWtZc1JVRkJUM2xHTEVWQlFVOHNUVUZCVVhCQ0xFVkJRVk1zV1VGRmFrTkxMRVZCUTBabExFVkJRVThzVlVGRFRpeFBRVUZQTEUxQlFVMUJMRVZCUVU4c1JVRkJSU3hGUVVGSkxFbEJRVWw0Uml4SFFVRlJMR1ZCUVdVc1JVRkJTU3hSUVVONFJFUXNSVUZCU3l4UlFVRnJReXhMUVVGNFFrUXNSMEZCWjBKRExFTkJRVWtzUjBGSmRrTXNTMEZCU3l4SFFVRkxkMFVzUlVGQldXbENMRVZCUVU4c1JVRkJSU3hGUVVGSmNFSXNSVUZCVXl4SlFVRkpMRVZCUVVsdlFpeEZRVUZQTEVkQlJUTkVMRWxCUVVreFJDeEZRVUZKTEV0QlEwNXFRaXhGUVVGSkxFdEJRMDRzUjBGQlNTeERRVUZETkVRc1JVRkhTQ3hIUVVaclFtVXNSVUZCVHl4TFFVRlBRU3hGUVVGUExFbEJRVWtzUzBGQlR5eExRVUZMTEVsQlFVMUJMRVZCUVU4c1NVRkJTU3hMUVVGTExFOUJRVTk2Uml4RFFVRkpMRVZCUjNSR0xFTkJRVU1yUWl4RlFVRkhha0lzUTBGQlF5eEZRVUZKTEVOQlFVTXlSU3hGUVVGUExFbEJRVWtzUlVGQlIwRXNSVUZCVHl4SlFVRkpMRU5CUVVNc1RVRkRMMElzUTBGRFRDeEpRVUZOUXl4RlFVRkxNVVlzUlVGQlN5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RlFVTTVRaXRDTEVWQlFVbGFMRWRCUVZFc1MwRkJTeXhIUVVGSmRVVXNRMEZCUlN4RlFVTjJRbWhDTEVWQlFWVXNUMEZCVHl4TlFVRk5NME1zUlVGQlJTeEpRVUZKTEVWQlFVa3NTVUZCU1RsQ0xFZEJRVkVzWlVGQlpTeEZRVUZKTEV0QlEyaEZPRUlzUlVGQlNUSkRMRVZCUVZVc1MwRkJUek5ETEVWQlEzSkNha0lzUlVGQlNUUkVMRVZCUVZVc1MwRkJUMmRDTEVOQlEzWkNMRU5CVFVZc1MwRkJTeXhOUVVGUk1VWXNSVUZKWWl4TFFVRkxMRWxCUVUxNVJpeEZRVUZQTEV0QlFVOHhReXhIUVVGUExFOUJRVThzUlVGSmRrTXNTMEZCU3l4UlFVRlZNa0lzUlVGSlppeExRVUZMTEZOQlFWY3NTMEZKYUVJc1MwRkJTeXhGUVVGSk0wTXNSVUZKVkN4TFFVRkxMRVZCUVVscVFpeEZRVWxVTEV0QlFVc3NaMEpCUVd0Q0xFVkJRM3BDTEVOQlYwRXNUMEZCVHl4TFFVRk5MRU5CUTFnc1QwRkJUeXhKUVVGSk1FVXNSVUZCVXl4RFFVRkRMRU5CUVVNc1EwRkRlRUlzUTBGMVFrRXNUMEZCVHl4UFFVRlJMRU5CUTJJc1IwRkJUU3hEUVVGRGJFUXNSVUZCVFdsRUxFTkJRVWtzUlVGQlNVWXNSMEZCVXl4VFFVRlRMRVZCUTNKRExFTkJRVU40UkN4RlFVRk5ReXhGUVVGUE5rUXNSVUZCUzBNc1JVRkJUVU1zUlVGQlVVTXNSVUZCVVVNc1EwRkJWeXhGUVVGSlVpeEZRVU14UkN4UFFVRlBjRUlzUjBGQlVTeERRVUZGTEV0QlFVRjBReXhGUVVGTkxFMUJRVUZETEVWQlFVOHNTVUZCUVRaRUxFVkJRVXNzUzBGQlFVTXNSVUZCVFN4UFFVRkJReXhGUVVGUkxFOUJRVUZETEVWQlFWRXNXVUZCUVVNc1EwRkJXU3hGUVVGSGVrUXNRMEZCU1N4RFFVTTVSU3hEUVRCQ1FTeFBRVUZQTEV0QlFVMHNRMEZEV0N4SFFVRk5MRU5CUVVOQkxFVkJRVTFwUkN4RFFVRkpMRVZCUVVsR0xFZEJRVk1zVTBGQlV5eEZRVU55UXl4RFFVRkRlRVFzUlVGQlRVTXNSVUZCVHpaRUxFVkJRVXRETEVWQlFVMURMRVZCUVZGRExFVkJRVkZETEVOQlFWY3NSVUZCU1ZJc1JVRkZNVVFzVDBGQlFXcEVMRVZCUVVzc1MwRkJUekJFTEVkQlFXZENMRmxCUTNKQ04wSXNSMEZCVVN4RFFVRkZMRXRCUVVGMFF5eEZRVUZOTEUxQlFVRkRMRVZCUVU4c1NVRkJRVFpFTEVWQlFVc3NTMEZCUVVNc1JVRkJUU3hQUVVGQlF5eEZRVUZSTEU5QlFVRkRMRVZCUVZFc1dVRkJRVU1zUTBGQldTeEZRVUZIZWtRc1EwRkJTU3hEUVVNNVJTeERRVk5CTEU5QlFVOHNWMEZCVnpKRUxFVkJRVTFETEVWQlFWVXNRMEZCUXl4RlFVRkhMRU5CUTNCRExFbEJRVTA1UlN4RlFVRkxLMFVzUjBGQlQwWXNRMEZCU1N4RlFVRkpRU3hGUVVGTExGRkJRVkVzUlVGQlNTeEpRVU16UXl4SFFVRkpMRTlCUVU4c1RVRkJUVGRGTEVOQlFVVXNSVUZEYWtJc1QwRkJUMjlGTEVWQlFWTXNVVUZCVVN4bFFVRmxMRVZCUjNwRExFbEJRVTFaTEVWQlFWbG9ReXhIUVVGak9FSXNSVUZCVVN4TFFVRk5OMElzUlVGQlV5eFhRVUZYTEVWQlEyeEZMRTlCUVVzclFpeEZRVUZWTEZGQlNWSXNTVUZCU1Zvc1JVRkJVeXhEUVVOc1FpeEhRVUZKY0VVc1JVRkRTaXhMUVVGTlowWXNSVUZEVGl4SlFVRkxja1FzUjBGQlR5eFhRVUZYYlVRc1EwRkJUeXhEUVVOb1F5eERRVUZETEVWQlVGRldMRVZCUVZNc1VVRkJVWHBHTEVkQlFXZENjVWNzUTBGQlV5eERRVUZETEVOQlVYUkVMRU5CV1VFc1QwRkJUeXhYUVVGWFF5eEZRVUZqU0N4RlFVRlZMRU5CUVVNc1JVRkJSeXhEUVVNMVF5eEhRVUZMU1N4SFFVRlRSQ3hEUVVGWkxFVkJTVzVDTEU5QlFVbEJMRVZCUVdVc1EwRkJRM1pITEVsQlFWbDFSeXhGUVVGbGRrY3NSMEZGTjBNd1JpeEZRVUZUTEZGQlFWRXNkMEpCUVhkQ0xFVkJSWHBETEVsQlFVbEJMRVZCUVZNc1EwRkRiRUlzUjBGQlNXRXNSVUZEU2l4TFFVRk5ha01zUjBGQll6aENMRVZCUVZFc1MwRkJUVGRDTEVWQlFWTXNWMEZCVnl4RlFVTjBSQ3hKUVVGTGRFSXNSMEZCVHl4WFFVRlhiVVFzUTBGQlR5eERRVU5vUXl4RFFVRkRMRVZCV0VRc1RVRkJUU3hKUVVGSlN5eEhRVU5TTEhsRVFVRjVSQ3hQUVVGUFJpeERRVUZaTEdWQlFXVkJMRU5CUVZrc1JVRkRla2NzUTBGWFNpeERRVmxCTEU5QlFVOHNXVUZCV1Vjc1JVRkJVMDRzUlVGQlZTeERRVUZETEVWQlFVY3NRMEZEZUVNc1IwRkJTMGtzUjBGQlUwVXNRMEZCVHl4RlFVZHVRaXhQUVVGUExFbEJRVWxvUWl4RlFVRlRMRU5CUTJ4Q0xFZEJRVWxuUWl4RlFVRlZMRWxCUTJRc1MwRkJUWEJETEVkQlFXTTRRaXhGUVVGUkxFdEJRVTAzUWl4RlFVRlRMRmRCUVZjc1JVRkRkRVFzU1VGQlMzUkNMRWRCUVU4c1YwRkJWMjFFTEVOQlFVOHNRMEZEYUVNc1EwRkJReXhGUVU1RUxFMUJRVTBzU1VGQlNVc3NSMEZCY1VJc2QwTkJRWGRETEVOQlVUTkZMRU5CT0VKQkxFOUJRVThzVjBGQlZ5OUZMRVZCUVV0akxFVkJRVThzUTBGQlF5eEZRVUZITEVOQlEyaERaQ3hGUVVGTlFTeEhRVUZQTEVOQlFVTXNSVUZEWkN4SlFVRk5ORVVzUlVGQldXaERMRWRCUVdNNVFpeEZRVUZMTEV0QlFVMHJRaXhGUVVGVExGZEJRVmNzUlVGREwwUXNSMEZCU1N4RFFVRkRLMElzUlVGQlZTeFJRVU5pTEU5QlFVOWFMRVZCUVZNc1VVRkJVWHBHTEVkQlFXZENjVWNzUTBGQlV5eERRVUZETEVWQlIzQkVMRWxCUVUwM1FpeEZRVUZSUml4RlFVRlRMRWxCUVVrc1JVRkRla0pSTEVWQlFXZENUQ3hGUVVGWmJFTXNSVUZCU3l4alFVRmpMRVZCUlRORE9FUXNSVUZCVlN4UFFVRlBOMElzUTBGQlN5eEZRVVIwUW1wRExFVkJRVXNzWlVGRlZESkNMRVZCUVdGM1F5eEhRVUZuUW1wR0xFVkJRVXQxUXl4RlFVRmhMRVZCUXk5RE1rTXNSVUZCYTBJc1EwRkJRMnhETEVWQlFWbFFMRVZCUVZjc1QwRkJUeXhGUVVOcVJEQkRMRVZCUVhGQ0xFTkJRVU51UXl4RlFVRlpVQ3hGUVVGWExFbEJRVWtzUlVGRGFrUXlReXhGUVVGdFFpeERRVUZEY0VNc1JVRkJXVkFzUlVGQlZ5eExRVUZMTEVkQlFVc3NRMEZCUTA4c1JVRkJXVkFzUlVGQlZ5eEhRVUZITEVWQlEyaEdORU1zUlVGQmFVSkdMRWRCUVhOQ1F5eEZRVU4yUTBVc1JVRkJhMEkzUXl4RlFVRlhMRlZCUVZsQkxFVkJRVmNzVjBGRGNFUkxMRVZCUVUxMlFpeEhRVUZQTEZkQlFWZFVMRU5CUVVrc1JVRlJPVUlzU1VGQlMzVkZMRWRCUVd0Q1NDeEpRVUZ2UWtrc1JVRkRla01zVFVGQlRTeEpRVUZKUXl4SFFVTlNMSEZGUVVOR0xFVkJSMFlzUjBGQlNVZ3NSMEZCYjBKR0xFVkJRM1JDTEUxQlFVMHNTVUZCU1Vzc1IwRkJPRUlzZDBOQlFYZERMRVZCUjJ4R0xFbEJRVTFETEVWQlFXTkdMRWRCUVc5Q04wTXNSVUZCVnl4VFFVRlhMRU5CUVVNMFF5eEZRVWN6UkVrc1JVRkRSa01zUlVGRFFVTXNSVUZCVTJoSExFZEJRVkZ2UkN4RlFVRlBUU3hEUVVGWkxFVkJRMnhEYlVNc1IwRkRSa01zUlVGQlVYQkVMRWRCUTFKeFJDeEZRVUZuUW5oRUxFZEJRMmhDZVVRc1JVRkJVeTlITEVkQlFXZENLMGNzUTBGQlRTeEhRVU4wUWxRc1IwRkRWRThzUlVGQlVXNUVMRWRCUTFKdlJDeEZRVUZuUW5aRUxFZEJRMmhDZDBRc1JVRkJVME1zUjBGQmJVSkVMRU5CUVUwc1NVRkZiRU5HTEVWQlFWRnlSQ3hIUVVOU2MwUXNSVUZCWjBKNlJDeEpRVWxzUWl4SlFVRkpORVFzUlVGQllTeEhRVU5xUWl4UlFVRlhOVU1zUzBGQlMzZERMRVZCUVU4c1EwRkRja0lzU1VGQlRVc3NSVUZCU1hKRUxFVkJRVmRSTEVOQlFVTXNSVUZEYWtKRUxFVkJRVms0UXl4RFFVRkRMRVZCUlZCRUxFVkJRMVJ3UkN4RlFVRlhVU3hEUVVGRExFVkJRVWw1UXl4RlFVRmpla01zUTBGQlF5eEZRVVV2UWxJc1JVRkJWMUVzUTBGQlF5eEZRVUZKTUVNc1JVRkJUekZETEVOQlFVTXNSVUZLZUVJMFF5eEZRVUZoTEVWQlRXcENMRU5CUjBFc1NVRkJUVVVzUlVGQmNVSlFMRVZCUTNKQ1VTeEhRVUZ0UW5aRUxFTkJRVlVzUlVGRE4wSjVReXhGUVVOQlpTeEhRVUZ6UW5oRUxFTkJRVlVzUlVGRGFFTlZMRWRCUVhkQ1ZpeERRVUZWTEVWQlEzUkRVeXhGUVVGVk5rTXNSMEZCYzBJelF5eEhRVUZ0UWxnc1EwRkJWU3hGUVVVdlJDeEhRVUZKVXl4RlFVTkdMRTlCUVU5akxFVkJRVk1zVVVGQlVXUXNRMEZCVHl4RlFVbHFReXhKUVVGTlowUXNSVUZCV1ZZc1JVRkRXbGNzUjBGQlowSXhSQ3hEUVVGVkxFVkJRekZDZVVNc1JVRkRRV3RDTEVkQlFXMUNNMFFzUTBGQlZTeEZRVU0zUWtFc1JVRkRTaXhEUVVGRE5FUXNSVUZCVTBNc1EwRkJWeXhGUVVGSmRrY3NSMEZCVVcxSExFVkJRVmMzUXl4RlFVRmpkVUlzUTBGQlV5eEZRVU51UlRsR0xFVkJRVThzU1VGQlNXdEdMRVZCUVZNc1EwRkRiRUlzUjBGQlNYRkRMRVZCUTBvc1MwRkJUWHBDTEVWQlEwNHNSVUZCUnpCQ0xFVkJRMGdzU1VGQlFYaEVMRU5CUTBZc1EwRkJReXhGUVVkSUxFOUJRVWxNTEVWQlFWY3NVMEZCVnpSRExFZEJRV3RDY2tZc1JVRkJTU3hWUVVGWmJFSXNSVUZCU3l4UlFVTjRSR3RHTEVWQlFWTXNVVUZEWkN4eFFrRkRRU3gxUTBGQmRVTjJRaXhGUVVGWExFOUJRVThzYTBKQlFXdENNMFFzUlVGQlN5eE5RVUZOTEVOQlFVTXNSVUZEZWtZc1JVRkhTMEVzUTBGRFZDeERRV3RDUVN4UFFVRlBMRkZCUVZGclF5eEZRVUZOUml4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVNNVFpeEhRVUZOTEVOQlFVTjVSaXhGUVVGTk1VWXNRMEZCVlN4RlFVRkpNa1lzUjBGQllYaEdMRU5CUVVrc1JVRkROVU1zVDBGQlQwd3NSMEZCYjBJMFJpeEZRVUZOTVVZc1JVRkJXVU1zUlVGQlRTeFhRVUZaUlN4RFFVRkpMRU5CUTNKRkxFTkJaMEpCTEU5QlFVOHNXVUZCV1VFc1JVRkJUVVlzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEYkVNc1IwRkJUU3hEUVVGRGVVWXNSVUZCVFRGR0xFTkJRVlVzUlVGQlNUUkdMRWRCUVdsQ2VrWXNRMEZCU1N4RlFVTm9SQ3hQUVVGUFRDeEhRVUZ2UWpSR0xFVkJRVTB4Uml4RlFVRlpReXhGUVVGTkxGZEJRVmxGTEVOQlFVa3NRMEZEY2tVc1EwRnBRa0VzVDBGQlR5eFRRVUZUUVN4RlFVRk5SaXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU12UWl4SFFVRk5MRU5CUVVONVJpeEZRVUZOTVVZc1EwRkJWU3hGUVVGSk5rWXNSMEZCWXpGR0xFTkJRVWtzUlVGRE4wTXNUMEZCVDB3c1IwRkJiMEkwUml4RlFVRk5NVVlzUlVGQldVTXNSVUZCVFN4UFFVRlJRU3hEUVVGSkxFTkJRMnBGTEVOQlpVRXNUMEZCVHl4WFFVRlhSU3hGUVVGTk1rWXNSVUZCU3pkR0xFVkJRVThzUTBGQlF5eEZRVUZITEVOQlEzUkRMRWRCUVVsclF5eEZRVUZaYUVNc1EwRkJTU3hIUVVGTFowTXNSVUZCV1RKRUxFTkJRVWNzUlVGRGRFTXNUVUZCVFN4SlFVRkpOVUlzUjBGQmNVSXNhMFJCUVd0RUxFVkJSMjVHTEVkQlFVMHNRMEZCUlN4UFFVRkJOa0lzUlVGQlV5eExRVUZOTEdkQ1FVRkJReXhGUVVGclFpeEpRVUZMTEVWQlFVa3ZSaXhGUVVOb1JHZEhMRVZCUVdOMlJpeEhRVUZQTEZOQlFWTXNRMEZETlVJc1QwRkJRWEZHTEVWQlEwRXNaMEpCUVVGRExFVkJRMEVzV1VGQllTeEZRVU5tTEVOQlFVTXNSVUZEUkN4RFFVRkRUaXhGUVVGTk1VWXNSVUZCV1Vrc1JVRkJaMEpwUXl4RFFVRlBMRVZCUVVrMlJDeEhRVUZuUWtRc1JVRkJZVGxHTEVWQlFVMHlSaXhEUVVGSExFVkJRM1JHTEU5QlFVbDZSQ3hGUVVOTFl5eEZRVUZUTEZGQlFWRmtMRU5CUVU4c1JVRkZlRUoyUXl4SFFVRnZRalJHTEVWQlFVMHhSaXhGUVVGWlF5eEZRVUZOTEZWQlFWVTJSaXhEUVVGSExFZEJRVWt6Uml4RlFVRk5ReXhEUVVGakxFTkJSVFZHTEVOQlMwRXNUMEZCVHl4WFFVRlhSQ3hGUVVGTk1rWXNSVUZCU3pkR0xFVkJRVThzUTBGQlF5eEZRVUZITEVOQlEzUkRMRTlCUVU5clJDeEZRVUZUTEZkQlFWZG9SQ3hGUVVGTk1rWXNSVUZCU3pkR0xFTkJRVWtzUTBGRE5VTXNRMEZ6UWtFc1QwRkJUeXhSUVVGUlJTeEZRVUZOUml4RlFVRlBMRU5CUVVNc1JVRkJSeXhEUVVNNVFpeEhRVUZOTEVOQlFVTjVSaXhGUVVGTk1VWXNRMEZCVlN4RlFVRkpiVWNzUjBGQlUyaEhMRU5CUVVrc1JVRkRlRU1zVDBGQlQwd3NSMEZCYjBJMFJpeEZRVUZOTVVZc1JVRkJXVU1zUlVGQlRTeE5RVUZQUlN4RFFVRkpMRU5CUTJoRkxFTkJVVUVzVDBGQlR5eFJRVUZSYVVjc1JVRkJVVU1zUlVGQll5eExRVUZOTEVOQlEzcERMRWRCUVVrc1EwRkJRMFFzUlVGRFNDeE5RVUZOTEVsQlFVbHNReXhIUVVGeFFpeHJSRUZCYTBRc1JVRkhia1lzU1VGQlRUZENMRVZCUVZVclJDeGhRVUZyUW5oSkxFZEJRVlYzU1N4RlFVRlRMRWxCUVVsNFNTeEhRVUZSZDBrc1JVRkJVVU1zUTBGQlZ5eEZRVVZ3Uml4SFFVRkpja1VzUlVGQlV5eGxRVU5ZTEUxQlFVMHNTVUZCU1hORkxFZEJRWEZDYWtVc1EwRkJUeXhGUVVWMFF5eFBRVUZQTEVsQlFVbGpMRVZCUVZNc1EwRkJSU3hSUVVGQlpDeERRVUZSTEVOQlFVTXNRMEZGYmtNc1EwRlBRU3hQUVVGUExGZEJRVmMxUkN4RlFVRkhMRU5CUTI1Q0xFOUJRVkZCTEVkQlFVdEJMRVZCUVVVc2FVSkJRVzlDTEVWQlEzSkRMRU5CVjBFc1NVRkJTV3RFTEVWQlFVMHNRMEZEVWl4UFFVRlBMRXRCUVV0QkxFTkJRVWtzUTBGRGJFSXNRMEZSUVN4SlFVRkpMRk5CUVZVc1EwRkRXaXhQUVVGUExFdEJRVXNzVlVGQldTeEpRVU14UWl4RFFVMUJMRWxCUVVrc1pVRkJaMElzUTBGRGJFSXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhSUVVGUkxFOUJRVk1zU1VGRE9VTXNRMEZOUVN4SlFVRkpMRzlDUVVGeFFpeERRVU4yUWl4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExGRkJRVkVzV1VGQll5eEpRVU51UkN4RFFVOUJMRWxCUVVrc1VVRkJVeXhEUVVOWUxFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NTVUZCU1N4UFFVRlRMRWxCUXpGRExFTkJUMEVzU1VGQlNTeHBRa0ZCYTBJc1EwRkRjRUlzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4SlFVRkpMR2RDUVVGclFpeEpRVU51UkN4RFFVOUJMRWxCUVVrc1owSkJRV2xDTEVOQlEyNUNMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzU1VGQlNTeGxRVUZwUWl4SlFVTnNSQ3hEUVUxQkxFbEJRVWtzVFVGQlR5eERRVU5VTEU5QlFVOHNTMEZCU3l4TFFVTmtMRU5CVFVFc1NVRkJTU3hWUVVGWExFTkJRMklzVDBGQlR5eExRVUZMTEZGQlFWVXNTMEZCU3l4TFFVRkxMRXRCUVU4c1NVRkRla01zUTBGUFFTeEpRVUZKTEUxQlFVOHNRMEZEVkN4UFFVRlBMRXRCUVVzc1VVRkJWU3hMUVVGTExFVkJRVVVzUzBGQlR5eEhRVU4wUXl4RFFVOUJMRWxCUVVrc1UwRkJWU3hEUVVOYUxFOUJRVThzUzBGQlN5eFJRVUZWTEV0QlFVc3NTMEZCU3l4TFFVRkxMRVZCUVVVc1RVRkJVU3hEUVVGRExFVkJRVWtzUjBGRGRFUXNRMEZQUVN4SlFVRkpMRTlCUVZFc1EwRkRWaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEVWQlFVVXNUVUZCVVN4SFFVTjJReXhEUVU5QkxFbEJRVWtzUzBGQlRTeERRVU5TTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1JVRkJSU3hKUVVGTkxFZEJRM0pETEVOQlQwRXNTVUZCU1N4TlFVRlBMRU5CUTFRc1QwRkJUeXhMUVVGTExGRkJRVlVzUzBGQlN5eEZRVUZGTEV0QlFVOHNSMEZEZEVNc1EwRlBRU3hKUVVGSkxGRkJRVk1zUTBGRFdDeFBRVUZQTEV0QlFVc3NVVUZCVlN4TFFVRkxMRVZCUVVVc1QwRkJVeXhIUVVONFF5eERRVTlCTEVsQlFVa3NVVUZCVXl4RFFVTllMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzUlVGQlJTeFBRVUZUTEVkQlEzaERMRU5CVDBFc1NVRkJTU3hoUVVGakxFTkJRMmhDTEU5QlFVOHNTMEZCU3l4UlFVRlZMRXRCUVVzc1JVRkJSU3haUVVGakxFZEJRemRETEVOQlVVRXNTVUZCU1N4VlFVRlhMRU5CUTJJc1QwRkJUeXhMUVVGTExGRkJRVlU1UkN4SFFVRjFRaXhKUVVGSkxFVkJRVVVzVTBGQlZ5eEhRVU5vUlN4RFFWRkJMRWxCUVVrc1dVRkJZU3hEUVVObUxFOUJRVThzUzBGQlN5eFJRVUZWUVN4SFFVRjFRaXhKUVVGSkxFVkJRVVVzVjBGQllTeEhRVU5zUlN4RFFWTkJMRWxCUVVrc1UwRkJWU3hEUVVOYUxFOUJRVThzUzBGQlN5eFJRVUZWUVN4SFFVRjFRaXhKUVVGSkxFVkJRVVVzVVVGQlZTeEhRVU12UkN4RFFVOUJMRWxCUVVrc1UwRkJWU3hEUVVOYUxFOUJRVThzUzBGQlN5eFJRVUZWYTBnc1IwRkJiVUlzUzBGQlN5eERRVUZETEVWQlFVVXNVVUZCVlN4SFFVTTNSQ3hEUVZGQkxFbEJRVWtzV1VGQllTeERRVU5tTEU5QlFVOHNTMEZCU3l4UlFVRlZkMElzUjBGQlN5eFBRVUZQTEZGQlFWTXNRMEZCUlN4UFFVRlJMRXRCUVVzc1IwRkJTU3hEUVVGRExFVkJRVVVzUzBGQlN5eE5RVUZSTEVOQlFVTXNSVUZCU1N4SlFVTnlSaXhEUVZGQkxFbEJRVWtzVjBGQldTeERRVU5rTEU5QlFVOHNTMEZCU3l4UlFVRlZRU3hIUVVGTExFOUJRVThzVDBGQlVTeERRVUZGTEU5QlFWRXNTMEZCU3l4SFFVRkpMRU5CUVVNc1JVRkJSU3hMUVVGTExFMUJRVkVzUTBGQlF5eEZRVUZKTEVsQlEzQkdMRU5CVVVFc1NVRkJTU3hqUVVGbExFTkJRMnBDTEU5QlFVOHNTMEZCU3l4UlFVRlZRU3hIUVVGTExGTkJRVk1zVVVGQlV5eERRVUZGTEU5QlFWRXNTMEZCU3l4SFFVRkpMRU5CUVVNc1JVRkJSU3hMUVVGTExGRkJRVlVzUTBGQlF5eEZRVUZKTEVsQlEzcEdMRU5CVVVFc1NVRkJTU3hoUVVGakxFTkJRMmhDTEU5QlFVOHNTMEZCU3l4UlFVRlZRU3hIUVVGTExGTkJRVk1zVDBGQlVTeERRVUZGTEU5QlFWRXNTMEZCU3l4SFFVRkpMRU5CUVVNc1JVRkJSU3hMUVVGTExGRkJRVlVzUTBGQlF5eEZRVUZKTEVsQlEzaEdMRU5CVVVFc1NVRkJTU3hSUVVGVExFTkJRMWdzVDBGQlR5eExRVUZMTEZGQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVrc1IwRkRiRU1zUTBGUFFTeEpRVUZKTEdsQ1FVRnJRaXhEUVVOd1FpeFBRVUZKTEV0QlFVc3NVVUZEUVN4TFFVRkxMRXRCUVVzc1YwRkJWeXhMUVVGTExFZEJRVWtzUTBGRGJrTXNUMEZCVVN4UlFVTlNMRTlCUVZFc1MwRkJTeXhOUVVObUxFTkJRVU1zUlVGRlRTeEpRVVZZTEVOQlQwRXNTVUZCU1N4blFrRkJhVUlzUTBGRGJrSXNUMEZCU1N4TFFVRkxMRkZCUTBFc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eEhRVUZKTEVOQlEyNURMRTlCUVZFc1QwRkRVaXhQUVVGUkxFdEJRVXNzVFVGRFppeERRVUZETEVWQlJVMHNTVUZGV0N4RFFVMUJMRWxCUVVrc1pVRkJaMElzUTBGRGJFSXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhMUVVGTExGbEJRV01zU1VGRGFFUXNRMEZOUVN4SlFVRkpMRk5CUVZVc1EwRkRXaXhQUVVGSkxFdEJRVXNzWTBGRFFTeEhRVWRNTEV0QlFVc3NUMEZCVXl4TFFVRkxMRWxCUVVrc1EwRkJSU3hOUVVGUExFVkJRVWNzU1VGQlN5eERRVUZGTEVOQlFVTXNSVUZCUlN4UlFVTTNReXhMUVVGTExFOUJRVk1zUzBGQlN5eEpRVUZKTEVOQlFVVXNUVUZCVHl4RFFVRkZMRU5CUVVNc1JVRkJSU3hOUVVjelF5eERRVkZCTEVsQlFVa3NZMEZCWlN4RFFVTnFRaXhQUVVGUFF5eEhRVUZYTEV0QlFVc3NTVUZCU1N4RFFVTTNRaXhEUVZGQkxFbEJRVWtzWVVGQll5eERRVU5vUWl4UFFVRlBOMGNzUjBGQldTeExRVUZMTEV0QlFVMHNTMEZCU3l4TFFVRkxMRU5CUXpGRExFTkJVVUVzU1VGQlNTeFpRVUZoTEVOQlEyWXNUMEZCVHl4TFFVRkxMRkZCUVZVNFJ5eEhRVUZYTEV0QlFVc3NTVUZCU1N4RlFVRkpMRWRCUTJoRUxFTkJVMEVzU1VGQlNTeHBRa0ZCYTBJc1EwRkRjRUlzVDBGQlR5eExRVUZMTEZGQlFWVkRMRWRCUVdkQ0xFdEJRVXNzVVVGQlVTeEZRVUZKTEVkQlEzcEVMRU5CVVVFc2MwSkJRWE5DZWtjc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGREwwSXNSMEZCVFN4RFFVRkZMRTlCUVVFNFJpeEZRVUZSTEdkQ1FVRkJReXhGUVVGcFFpeFRRVUZCVnl4RFFVRlRMRVZCUVVsc1J5eEhRVUZWTEU5QlEzUkVMRXRCUVVzc1NVRkJTU3hOUVVGTlVpeERRVUZKTEVWQlEyNUNRU3hEUVVOR0xFVkJRVVVzWjBKQlFXZENMRWxCUVVrc1JVRkRkRUlzVFVGQlR5eERRVUZGTEU5QlFVRTRSaXhGUVVGUkxHZENRVUZCUXl4RlFVRnBRaXhsUVVGblFsY3NRMEZCVXl4RFFVTTNSQ3hEUVZsQkxFMUJRVTB6U0N4RlFVRlRMRVZCUVVkcFFpeEZRVUZQTEVOQlFVTXNSVUZCUnl4RFFVTXpRaXhQUVVGUExFdEJRVXNzVVVGQlVUQkVMRWRCUVdkQ0xGTkJRVk16UlN4RFFVRk5MRVZCUVVkcFFpeERRVUZKTEVOQlF6VkVMRU5CVVVFc1UwRkJWU3hEUVVOU0xFOUJRVThzUzBGQlN5eFJRVUZSSzBJc1JVRkJVeXhYUVVGWExFTkJRekZETEVOQlYwRXNVVUZCVVhKRkxFVkJRVTBzUTBGQlJTeGpRVUZCYVVvc1JVRkJaMElzUjBGQlR5eHBRa0ZCUVVNc1JVRkJiVUlzUlVGQlRTeEZRVUZKTEVOQlFVTXNSVUZCUnl4RFFVVjBSU3hIUVVSQmJFb3NSVUZCVDI5RkxFZEJRV053UlN4RlFVRk5jVVVzUlVGQlV5eFhRVUZYTEVWQlF6TkRja1VzUlVGQlN5eFBRVUZQTEV0QlFVc3NTVUZCU1N4RlFVTjJRaXhQUVVGUExFdEJRMFlzUjBGQlMwRXNSVUZCU3l4UlFVVldMRU5CUTB3c1NVRkJTVzFLTEVWQlFWRXNTMEZCU3l4SFFVTnFRaXhIUVVGSlJpeEhRVUZwUWtNc1JVRkJhMElzUTBGRGNrTXNTVUZCVFVVc1JVRkJZM0JLTEVWQlFVc3NUMEZCVHl4TFFVRkxMRVZCUVVVc1JVRkRha054U2l4RlFVRlJMRXRCUVVzc1UwRkJVeXhGUVVNMVFpeERRVUZEUml4RFFVRkxMRVZCUVVrMVNDeEhRVUZST0Vnc1JVRkJUMFFzUlVGQllYQktMRU5CUVVrc1EwRkROVU1zUTBGRFFTeFBRVUZQU3l4SFFVRk5MRXRCUVUwc1EwRkJSU3hIUVVGSk9Fa3NSVUZCVHl4TFFVRkJia29zUTBGQlN5eERRVUZETEVOQlEzaERMRXRCVkVVc1VVRkJUM2RHTEVWQlFWTXNVVUZCVVhwR0xFZEJRV2RDUXl4RFFVRkpMRU5CUVVNc1EwRlZha1FzUTBGUlFTeFpRVUZaTEVOQlFVVXNUMEZCUVc5SkxFVkJRVkVzWjBKQlFVRkRMRVZCUVdsQ0xHVkJRVUZwUWl4RFFVRmxMRVZCUVVrc1EwRkJReXhGUVVGSExFTkJRelZFTEVsQlFVMW9SaXhGUVVGTkxFdEJRVXNzU1VGQlNTeE5RVUZOTEVOQlFVVXNUMEZCUVRoRUxFVkJRVkVzWjBKQlFVRkRMRVZCUVdsQ0xHVkJRVUZwUWl4RFFVRmxMRU5CUVVNc1JVRkRkRVVzVDBGQlQycEtMRWRCUVUwc1MwRkJUU3hEUVVGRkxFbEJRVUZwUlN4RFFVRkpMRU5CUVVNc1EwRkROVUlzUTBGUlFTeFZRVUZWT0VRc1JVRkJVU3hEUVVOb1FpeFBRVUZQTEV0QlFVc3NXVUZCV1N4RFFVRkZMRTlCUVVGQkxFTkJRVThzUTBGQlF5eERRVU53UXl4RFFWbEJMRWxCUVVsdFFpeEZRVUZSTEVOQlExWXNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhQUVVGUExFdEJSVEZDTEVsQlFVMTBSaXhGUVVGaGQwTXNSMEZCWjBJNFF5eEZRVUZSZUVZc1JVRkJZU3hGUVVOMFJIbEdMRVZCUTBVc1EwRkJRMmhHTEVWQlFWbFFMRVZCUVZjc1VVRkJVU3hIUVVOb1F5eERRVUZEVHl4RlFVRlpVQ3hGUVVGWExGVkJRVlVzUjBGRGJFTXNRMEZCUTA4c1JVRkJXVkFzUlVGQlZ5eFBRVUZQTEVWQlEycERlVU1zUlVGQmEwSXNRMEZCUTJ4RExFVkJRVmxRTEVWQlFWY3NUMEZCVHl4RlFVTnFSREJETEVWQlFYRkNMRU5CUVVOdVF5eEZRVUZaVUN4RlFVRlhMRWxCUVVrc1JVRkRha1F5UXl4RlFVRnRRaXhEUVVGRGNFTXNSVUZCV1ZBc1JVRkJWeXhMUVVGTExFZEJRVXNzUTBGQlEwOHNSVUZCV1ZBc1JVRkJWeXhIUVVGSExFVkJRMmhHTkVNc1JVRkJhVUpHTEVkQlFYTkNReXhGUVVOMlEwVXNSVUZCYTBJM1F5eEZRVUZYTEZWQlFWbEJMRVZCUVZjc1YwRkZkRVFzU1VGQlN6UkRMRWRCUVd0Q1NDeEpRVUZ2UWtrc1JVRkRla01zVFVGQlRTeEpRVUZKUXl4SFFVTlNMSEZGUVVOR0xFVkJSMFlzUjBGQlNVZ3NSMEZCYjBKR0xFVkJRM1JDTEUxQlFVMHNTVUZCU1Vzc1IwRkJPRUlzZDBOQlFYZERMRVZCUjJ4R0xFbEJRVWt3UXl4RlFVTkJSQ3hGUVVOR1F5eEZRVUZST1VJc1IwRkJaMEpvU0N4SlFVRkJMRWRCUVV0UUxFZEJRV2RDTEV0QlFVc3NRMEZCUXl4SFFVRk5Oa1FzUlVGQldTeEZRVU16UkU4c1JVRkJXVkFzUlVGQlZ5eFBRVUZQTEVkQlIzaERkMFlzUlVGQlVUbEpMRWxCUVVFc1IwRkJTeXhMUVVGTExGTkJRVk1zUjBGQlRYTkVMRWRCU1RkQ1R5eEZRVUZaVUN4RlFVRlhMRWRCUVVjc1NVRkROVUozUml4RlFVRk5MRWxCUVUwc1MwRkJTeXhKUVVGSmVrZ3NSMEZCV1hsSUxFVkJRVTBzUzBGQlRVRXNSVUZCVFN4TFFVRkxMRVZCUVVkQkxFVkJRVTBzUjBGQlJ5eEpRVkIwUlVFc1JVRkJVVGRDTEVkQlFXMUNha2dzU1VGQlFTeEhRVUZMZVVjc1IwRkJiVUlzUzBGQlN5eERRVUZETEVkQlFVMXVSQ3hGUVVGWkxFVkJWemRGTEVkQlFVMHNRMEZCUXpkRExFVkJRVWxPTEVOQlFVTXNSVUZCU1ZNc1IwRkJVV3RKTEVWQlFVOHNTMEZCU3l4RlFVRkhMRXRCUVVzc1NVRkJTU3hGUVVOb1JDeFBRVUZQY0Vvc1IwRkJUU3hMUVVGTkxFTkJRVVVzUjBGQlFXVXNSVUZCU1N4RlFVRkJUaXhEUVVGRkxFTkJRVU1zUTBGRE9VSXNRMEZsUVN4TFFVRkxORWtzUlVGQlZTeERRVU5pTEVkQlFVa3NRMEZCUXl4TFFVRkxMRkZCUVZNc1QwRkJUeXhMUVVNeFFpeEpRVUZOTDBnc1JVRkJUVThzUlVGQlV5eHBRa0ZCYVVKM1NDeERRVUZSTEVWQlF6bERMRTlCUVU5eVNpeEhRVUZOTEV0QlFVMXhRaXhIUVVGWExFdEJRVTFETEVOQlFVY3NRMEZCUXl4RFFVTXhReXhEUVZGQkxFMUJRVTByU0N4RlFVRlZMRU5CUTJRc1IwRkJTU3hEUVVGRExFdEJRVXNzVVVGQlV5eFBRVUZQTEV0QlF6RkNMRWxCUVUwdlNDeEZRVUZOVHl4RlFVRlRMR2xDUVVGcFFuZElMRU5CUVZFc1JVRkJSU3hQUVVGUExFVkJRM1pFTEU5QlFVOXlTaXhIUVVGTkxFdEJRVTF4UWl4SFFVRlhMRXRCUVUxRExFTkJRVWNzUTBGQlF5eERRVU14UXl4RFFWbEJMRkZCUVZGeFF5eEZRVUZOTEVOQlExb3NSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhQUVVGUExFdEJRekZDTEVsQlFVMXNSQ3hGUVVGSkxFTkJRVU1zUlVGRFZEWkpMRVZCUVdsQ2VrZ3NSVUZCVXl4alFVRmpPRUlzUTBGQlNTeEZRVU01UXl4UFFVRlJNa1lzUlVGQlowSXNRMEZEZEVJc1NVRkJTeXhSUVVOSU4wa3NSVUZCUlN4TlFVRlJMRVZCUlZvc1NVRkJTeXhYUVVOTUxFbEJRVXNzVTBGRFNFRXNSVUZCUlN4SlFVRk5MRVZCUlZZc1NVRkJTeXhSUVVOTUxFbEJRVXNzVDBGRFNFRXNSVUZCUlN4TFFVRlBMRVZCUlZnc1NVRkJTeXhSUVVOSVFTeEZRVUZGTEU5QlFWTXNSVUZGWWl4SlFVRkxMRlZCUTBoQkxFVkJRVVVzVDBGQlV5eEZRVVZpTEVsQlFVc3NWVUZEU0VFc1JVRkJSU3haUVVGakxFVkJRMmhDTEUxQlEwWXNTVUZCU3l4bFFVTklMRXRCUlVvc1EwRk5RU3hIUVVwSk5ra3NTVUZCYlVJc1ZVRkRja0kzU1N4RlFVRkZMRkZCUVZVc1IwRkhWalpKTEVsQlFXMUNMRmRCUVZrc1EwRkRha01zU1VGQlRVTXNSVUZCU1N4TFFVRkxMRXRCUVVzc1MwRkJTeXhOUVVGUkxFTkJRVU1zUlVGRGJFTTVTU3hGUVVGRkxFOUJRVk00U1N4RlFVRkpMRWRCUVVzc1JVRkJTU3hEUVVNeFFpeERRVVZCTEU5QlFVOHNTMEZCU3l4SlFVRkpPVWtzUTBGQlF5eERRVU51UWl4RFFWbEJMRTFCUVUxclJDeEZRVUZOTEVOQlExWXNUMEZCVHl4TFFVRkxMRkZCUTFJc1MwRkJTeXhMUVVGTExFTkJRVVVzUTBGQlEwRXNRMEZCU1N4RlFVRkhMRU5CUVVVc1EwRkJReXhGUVVOd1FpeFJRVUZSUVN4RFFVRkpMRVZCUTFvc1RVRkJUU3hEUVVGRExFVkJRMVlzU1VGRFRpeERRV2RDUVN4VFFVRlRiVVVzUlVGQlN6ZEdMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRM1pDTEU5QlFVOHNTMEZCU3l4UlFVTlNVU3hIUVVGVkxFOUJRVThzUzBGQlN5eEpRVUZKTEdOQlFXTlNMRU5CUVVrc1EwRkJReXhGUVVGRkxIbENRVUY1UWl4TFFVRk5Oa1lzUTBGQlJ5eEZRVU5xUm5SSkxFVkJRMDRzUTBGeFFrRXNaVUZCWldkTExFVkJRWEZDUXl4SFFVRlplRWdzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEZWtRc1QwRkJUeXhMUVVGTExGRkJRMUpSTEVkQlFWVXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUVklzUTBGQlNTeEZRVUZIZFVnc1EwRkJWU3hGUVVGRkxHVkJRV1VzU1VGQlNTeEZRVU4wUldoTExFVkJRMDRzUTBGbFFTeGpRVUZqZVVNc1JVRkJUeXhEUVVGRExFVkJRVWNzUTBGRGRrSXNUMEZCVHl4TFFVRkxMRkZCUTFKUkxFZEJRVlVzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFZJc1EwRkJTU3hGUVVGSFFTeERRVUZKTEVWQlFVVXNiMEpCUVc5Q0xFbEJRVWtzUlVGRGNrVXNRMEZCUXl4RFFVTlFMRU5CWjBKQkxFMUJRVTBzUTBGRFNpeFBRVUZCUXl4RlFVRlRMRmRCUTFRc1owSkJRVUZqTEVWQlFXdENMRWRCUTJ4Q0xIRkNRVUZCUXl4RlFVRjFRaXhIUVVOMlFpeGpRVUZCUXl4RlFVRm5RaXhIUVVOb1FpeGhRVUZCUXl4RlFVRmxMRVZCUTJwQ0xFVkJRVWtzUTBGQlF5eEZRVUZITEVOQlEwNHNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkRVaXhQUVVGUExFdEJSMVFzU1VGQlRYVkhMRVZCUVUxNFNDeEpRVUZYTEZkQlJXNUNVaXhGUVVGSmFVSXNSMEZCVlN4TFFVRk5LMGNzUTBGQlJ5eEZRVU16UWl4UFFVRkJhRWtzUjBGQlN5eEpRVU5NUVN4SFFVRkxjVUlzUjBGQlZTeExRVUZOTWtjc1JVRkJTekZITEVWQlFXbENReXhGUVVGelFrTXNSVUZCWlVNc1EwRkJXU3hGUVVOeVJucENMRU5CUTFRc1EwRlZRU3hWUVVGVkxFTkJRVVVzVDBGQlFWRXNSVUZCVXl4VlFVRlhMRVZCUVVrc1EwRkJReXhGUVVGSExFTkJRM1JETEU5QlFVc3NTMEZCU3l4UlFVbElVeXhIUVVGVkxFdEJRVTFVTEVsQlFWY3NWVUZCVlN4RlFVaHVReXhKUVVsWUxFTkJUMEVzWlVGQlowSXNRMEZEWkN4UFFVRlBTeXhIUVVGaExFdEJRVTBzWTBGQll5eERRVU14UXl4RFFXbENRU3hWUVVGVkxFTkJRMUlzY1VKQlFVRlZMRVZCUVhWQ0xFZEJRM1pDTEdkQ1FVRkJSQ3hGUVVGclFpeEhRVU5zUWl4alFVRkJSU3hGUVVGblFpeEhRVU5vUWl4alFVRkJlVWNzUlVGQlowSXNSMEZEYUVJc1lVRkJRWGhITEVWQlFXVXNSMEZEWml4UFFVRkJha0lzUlVGQlV5eFZRVU5ZTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTA0c1QwRkJTeXhMUVVGTExGTkJTVVo1U0N4RlFVRm5RaXhKUVVGTkxFbEJSelZDTlVjc1IwRkRSU3hMUVVOQllpeEpRVUZYTEZkQlExaGpMRVZCUTBGRExFVkJRMEZETEVWQlEwRkRMRU5CUTBZc1JVRmlUeXhKUVdWWUxFTkJVVUVzVjBGQldTeERRVU5XTEU5QlFVOWFMRWRCUVdFc1MwRkJUU3huUTBGQmFVTXNSVUZCU3l4RFFVTnNSU3hEUVZWQkxGRkJRVk1zUTBGRFVDeFBRVUZQUVN4SFFVRmhMRXRCUVVzc1RVRkJUU3hGUVVGSExHbERRVUZwUXl4RFFVTnlSU3hEUVU5QkxGZEJRVmtzUTBGRFZpeFBRVUZMTEV0QlFVc3NVVUZIU0Vrc1IwRkJWU3hMUVVGTkxFVkJRVWtzUlVGR2JFSXNTVUZIV0N4RFFXTkJMRlZCUVZVc1EwRkJSU3hqUVVGQlR5eEZRVUZuUWl4SFFVRk5MRmxCUVVFd1J5eEZRVUZqTEVkQlFVOHNiVUpCUVVGRExFVkJRWEZDTEVWQlFVc3NSVUZCU1N4RFFVRkRMRVZCUVVjc1EwRkRka1lzU1VGQlNTOUNMRVZCUVUwc1pVRkZWaXhQUVVGSk9FSXNSMEZCWlRGSExFdEJRMkl5Unl4SlFVTkdMMElzUjBGQlR5eExRVVZNT0VJc1JVRkRSamxDTEVkQlFVOHNTVUZEUlRWRkxFbEJRMVEwUlN4SFFVRlBMRTlCU1VwMlJpeEhRVUZoTEV0QlFVMTFSaXhGUVVGTExFVkJRVWtzUTBGRGNrTXNRMEZqUVN4TlFVRk5OMFlzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEWml4UFFVRkxMRXRCUVVzc1VVRkpTQ3hIUVVGSExFdEJRVXNzVlVGQlZTeERRVUZETEVsQlFVa3NTMEZCU3l4VlFVRlZRU3hEUVVGSkxFTkJRVU1zUjBGSWVrTXNTVUZKV0N4RFFVMUJMRlZCUVZjc1EwRkRWQ3hQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEUxQlFVMHNSVUZCU1hwRExFVkJRM1pETEVOQlRVRXNVMEZCVlN4RFFVTlNMRTlCUVU4c1MwRkJTeXhUUVVGVExFTkJRM1pDTEVOQlRVRXNWVUZCVnl4RFFVTlVMRTlCUVU4c1MwRkJTeXhSUVVGVkxFdEJRVXNzUjBGQlN5eEhRVU5zUXl4RFFVMUJMRmRCUVZrc1EwRkRWaXhQUVVGUExFdEJRVXNzVVVGQlZTeExRVUZMTEVkQlFVc3NTVUZCVHl4SFFVTjZReXhEUVUxQkxHVkJRV2RDTEVOQlEyUXNUMEZCVHl4TFFVRkxMRkZCUVZVc1MwRkJTeXhOUVVGTkxFdEJRVXNzUjBGQlN5eEhRVUZKTEVWQlFVa3NSMEZEY2tRc1EwRk5RU3hSUVVGVExFTkJRMUFzVDBGQlR5eExRVUZMTEUxQlFVMHNRMEZEY0VJc1EwRk5RU3hSUVVGVExFTkJRMUFzVDBGQlR5eExRVUZMTEZOQlFWTXNRMEZEZGtJc1EwRlRRU3hUUVVGVGVVTXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkRiRUlzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4TlFVRlBMRU5CUVVNc1JVRkZNMElzU1VGQlRUWklMRVZCUVU5NFNpeEZRVUZCTEVkQlFVc3NTMEZCU3l4SFFVVjJRaXhQUVVGSk1rSXNSVUZCU3l4blFrRkRVRFpJTEVWQlFVc3NaVUZCYVVJc1MwRkJTeXhsUVVNelFrRXNSVUZCU3l4blFrRkJhMElzUzBGQlN5eEpRVUZKTEdkQ1FVTm9RMEVzUlVGQlN5eFBRVUZUTEV0QlFVc3NTVUZCU1N4UlFVVnNRa0VzUTBGRFZDeERRVTFCTEZWQlFWY3NRMEZEVkN4UFFVRlBMRWxCUVVrc1MwRkJTeXhMUVVGTExGRkJRVlVzUzBGQlN5eEhRVUZMTEVkQlFVY3NRMEZET1VNc1EwRnRRa0VzUzBGQlMwTXNSVUZCWlhCSExFVkJRVThzWlVGQlowSXhRaXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU53UkN4SFFVRkpMRU5CUVVNc1MwRkJTeXhUUVVGWExFTkJRVU00U0N4RlFVRmpMRkZCUTJ4RExFOUJRVTlzU1N4RlFVRlRMRkZCUVZFc2QwTkJRWGRETEVWQlIyeEZMRWxCUVUxdFNTeEZRVUZWTVVvc1JVRkJRU3hEUVVGRkxFOUJRVkVzUzBGQlN5eFBRVUZSTEdkQ1FVRnBRaXhMUVVGTExHbENRVUZ2UWpKQ0xFZEJSVE5GTWtVc1JVRkJVWEZFTEVkQlFWZDBSeXhEUVVGSkxFVkJRVVVzU1VGQlNUbENMRVZCUVZNc1lVRkJZU3hGUVVOMlJIRkpMRVZCUVdWSUxFVkJRV01zVVVGQlVTeEZRVUZKTEV0QlFVc3NVVUZCVVN4RlFVTjBSRWtzUlVGQlZVUXNSVUZCWlN4TFFVRlBTQ3hGUVVOb1Ewc3NSVUZCVVVZc1JVRkJaVWdzUlVGQlowSXNTMEZEZGtOTkxFVkJRVk5ETEVkQlFVdElMRVZCUVZORExFVkJRVTk0UkN4RlFVRlBiMFFzUTBGQlR5eEZRVVU1UXl4UFFVRlBSU3hGUVVGbFJ5eEZRVUZQTEU5QlFVOHNSVUZCU1VFc1EwRkRNVU1zUTBGVlFTeFJRVUZSTVVjc1JVRkJUeXhsUVVGblFqRkNMRVZCUVU4c1EwRkJReXhGUVVGSExFTkJRM2hETEU5QlFVOHNTMEZCU3l4TFFVRkxhMFFzUlVGQlV5eEpRVUZKTEVWQlFVZDRRaXhGUVVGTk1VSXNRMEZCU1N4RFFVTTNReXhEUVU5QkxFMUJRVTA0U0N4RlFVRmxMRU5CUTI1Q0xFOUJRVThzUzBGQlN5eFJRVUZWVVN4SFFVRlRMR05CUVdNc1MwRkJUVklzUTBGQllTeEZRVUZKTEVsQlEzUkZMRU5CVjBFc1VVRkJVVUVzUlVGQlpYQkhMRVZCUVUwc1EwRkRNMElzUjBGQlNTeERRVUZETEV0QlFVc3NVVUZCVXl4TlFVRlBMRWRCUlRGQ0xFbEJRVTAyUnl4RlFVRlZWQ3hGUVVGakxGRkJRVkVzUlVGRGFFTlZMRVZCUVdsQ0xFdEJRVXNzVVVGQlVWWXNSVUZCWXl4TFFVRk5MRU5CUVVVc1kwRkJaU3hGUVVGTExFTkJRVU1zUlVGREwwVXNUMEZCVDFVc1JVRkJaU3hSUVVGUk9VY3NRMEZCU1N4SFFVRkxOa2NzUjBGQlYwRXNSMEZCVjBNc1JVRkJaU3hOUVVGTk9VY3NRMEZCU1N4RFFVTjRSaXhEUVZOQkxFOUJRVThyUnl4RlFVRlBMRU5CUTFvc1QwRkRSU3hMUVVGTExGTkJRMHhCTEVWQlFVMHNVMEZEVGl4TFFVRkxMRkZCUVZFc1NVRkJUVUVzUlVGQlRTeFJRVUZSTEVkQlEycERMRXRCUVVzc1MwRkJTeXhQUVVGUFFTeEZRVUZOTEVsQlFVa3NSMEZETTBJc1MwRkJTeXhKUVVGSkxFOUJRVTlCTEVWQlFVMHNSMEZCUnl4RFFVVTNRaXhEUVc5Q1FTeFhRVUZYTjBVc1JVRkJWU3hEUVVGRExFVkJRVWNzUTBGRGRrSXNSMEZCU1N4RFFVRkRMRXRCUVVzc1VVRkJVeXhQUVVGUExFdEJRekZDTEVsQlFVMXBSU3hGUVVGUGFrVXNSVUZCVVN4TlFVRlJWaXhGUVVGVExGZEJRVmNzUTBGQlF5eEZRVUZITEVOQlFVVXNTMEZCVFN4TFFVRkxMRWxCUVVzc1EwRkJReXhGUVVOMFJYZEdMRVZCUVZVNVJTeEZRVUZSTEZGQlFWY3NTMEZCVDJsRkxFVkJRVThzUTBGQlEycEZMRVZCUVZFc1VVRkJWVUVzUlVGQlVTeFJRVUZYTEVWQlF5OUZaU3hGUVVGUkxFTkJRVU1zVVVGQlV5eFRRVUZWTEU5QlFWRXNVVUZCVXl4VlFVRlhMRk5CUVZNc1JVRkRha1ZxUkN4RlFVRlBhME1zUlVGQlVTeExRVU51UWl4UFFVRkpMRTFCUVUwc1VVRkJVVUVzUlVGQlVTeEpRVUZKTEVsQlF6VkNaU3hGUVVGUlppeEZRVUZSTEV0QlEyaENiRU1zUlVGQlR5eFJRVVZHWXl4SFFVRmhjVVlzUlVGQlRTeExRVUZMTEV0QlFVdGhMRU5CUVU4c1JVRkJSM1JMTEVkQlFVRkRMRVZCUVVFc1IwRkRla04xUml4SFFVUjVReXhEUVVVMVF5eFJRVUZUTEZOQlExUXNUVUZCUVdVc1JVRkRRU3hMUVVGQmFrUXNRMEZEUml4RlFVRkRMRU5CUTBnc1EwRmxRU3h0UWtGQmJVSnJReXhGUVVGVkxFTkJRVU1zUlVGQlJ5eERRVU12UWl4UFFVRkxMRXRCUVVzc1VVRkZTSEJDTEVkQlFXRnZRaXhGUVVGUkxFMUJRVkZXTEVWQlFWTXNWMEZCVnl4RFFVRkRMRVZCUVVjc1EwRkJSU3hMUVVGTkxFdEJRVXNzU1VGQlN5eERRVUZETEVWQlFVY3NTMEZCVFRsRkxFZEJRVUZETEVWQlFVRXNSMEZEYmtaMVJpeEhRVVJ0Uml4RFFVVjBSaXhSUVVGVExFOUJRMVFzVFVGQlR5eERRVUZETEZGQlFWTXNVMEZCVlN4TlFVRk5MRVZCUTJwRExGVkJRVmNzUlVGRFlpeEZRVUZETEVWQlVIbENMRWxCVVRWQ0xFTkJUMEVzVDBGQlR5eFBRVUZQSzBVc1JVRkJWeXhEUVVOMlFpeEhRVUZKTEVOQlFVTkJMRVZCUVZVc1RVRkJUWHBHTEVWQlFWTXNWVUZCVlN4RlFVTjBReXhOUVVGTkxFbEJRVWxsTEVkQlFYRkNMSGxEUVVGNVF5eEZRVVV4UlN4UFFVRlBNa1VzUjBGQlQwUXNSVUZCV1VVc1IwRkJUVUVzUlVGQlJTeFJRVUZSTEVWQlFVY3NTMEZCU3l4SFFVRkhMRU5CUTNaRUxFTkJUMEVzVDBGQlR5eFBRVUZQUml4RlFVRlhMRU5CUTNaQ0xFZEJRVWtzUTBGQlEwRXNSVUZCVlN4TlFVRk5la1lzUlVGQlV5eFZRVUZWTEVWQlEzUkRMRTFCUVUwc1NVRkJTV1VzUjBGQmNVSXNlVU5CUVhsRExFVkJSVEZGTEU5QlFVOHlSU3hIUVVGUFJDeEZRVUZaUlN4SFFVRk5RU3hGUVVGRkxGRkJRVkVzUlVGQlJ5eExRVUZMTEVkQlFVY3NRMEZEZGtRc1EwRlhRU3hQUVVGUExHdENRVUZyUWpOSkxFVkJRVTB5Uml4RlFVRkxha01zUlVGQlZTeERRVUZETEVWQlFVY3NRMEZEYUVRc1IwRkJUU3hEUVVGRkxFOUJRVUZyUXl4RlFVRlRMRXRCUVUwc1owSkJRVUZETEVWQlFXdENMRWxCUVVzc1JVRkJTVzVETEVWQlEyaEViME1zUlVGQlkzWkdMRWRCUVU4c1UwRkJVeXhEUVVNMVFpeFBRVUZCY1VZc1JVRkRRU3huUWtGQlFVTXNSVUZEUVN4WlFVRmhMRVZCUTJZc1EwRkJReXhGUVVOSUxFOUJRVThyUXl4SFFVRnJRamxETEVWQlFXRTVSaXhGUVVGTk1rWXNRMEZCUnl4RFFVTnFSQ3hEUVV0QkxFOUJRVThzYTBKQlFXdENNMFlzUlVGQlRUSkdMRVZCUVV0cVF5eEZRVUZWTEVOQlFVTXNSVUZCUnl4RFFVTm9SQ3hQUVVGUFZpeEZRVUZUTEd0Q1FVRnJRbWhFTEVWQlFVMHlSaXhGUVVGTGFrTXNRMEZCVHl4RFFVTjBSQ3hEUVZGQkxGZEJRVmNzV1VGQllTeERRVU4wUWl4UFFVRmxORVFzUlVGRGFrSXNRMEZOUVN4WFFVRlhMRlZCUVZjc1EwRkRjRUlzVDBGQlpYVkNMRVZCUTJwQ0xFTkJUVUVzVjBGQlZ5eDFRa0ZCZDBJc1EwRkRha01zVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExGZEJRVmtzUTBGRGNrSXNUMEZCWlVNc1JVRkRha0lzUTBGTlFTeFhRVUZYTEZkQlFWa3NRMEZEY2tJc1QwRkJaVU1zUlVGRGFrSXNRMEZOUVN4WFFVRlhMR0ZCUVdNc1EwRkRka0lzVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExHMUNRVUZ2UWl4RFFVTTNRaXhQUVVGbFF5eEZRVU5xUWl4RFFVMUJMRmRCUVZjc2QwSkJRWGxDTEVOQlEyeERMRTlCUVdWRExFVkJRMnBDTEVOQlRVRXNWMEZCVnl4MVFrRkJkMElzUTBGRGFrTXNUMEZCWlVNc1JVRkRha0lzUTBGTlFTeFhRVUZYTEdkQ1FVRnBRaXhEUVVNeFFpeFBRVUZsUXl4RlFVTnFRaXhEUVUxQkxGZEJRVmNzYzBKQlFYVkNMRU5CUTJoRExFOUJRV1ZETEVWQlEycENMRU5CVFVFc1YwRkJWeXd5UWtGQk5FSXNRMEZEY2tNc1QwRkJaVU1zUlVGRGFrSXNRMEZOUVN4WFFVRlhMREJDUVVFeVFpeERRVU53UXl4UFFVRmxReXhGUVVOcVFpeERRVTFCTEZkQlFWY3NaMEpCUVdsQ0xFTkJRekZDTEU5QlFXVkRMRVZCUTJwQ0xFTkJUVUVzVjBGQlZ5dzJRa0ZCT0VJc1EwRkRka01zVDBGQlpVTXNSVUZEYWtJc1EwRk5RU3hYUVVGWExHTkJRV1VzUTBGRGVFSXNUMEZCWlVNc1JVRkRha0lzUTBGTlFTeFhRVUZYTERKQ1FVRTBRaXhEUVVOeVF5eFBRVUZsUXl4RlFVTnFRaXhEUVUxQkxGZEJRVmNzTWtKQlFUUkNMRU5CUTNKRExFOUJRV1ZETEVWQlEycENMRU5CVFVFc1YwRkJWeXhsUVVGblFpeERRVU42UWl4UFFVRmxReXhGUVVOcVFpeERRVTFCTEZkQlFWY3NORUpCUVRaQ0xFTkJRM1JETEU5QlFXVkRMRVZCUTJwQ0xFTkJUVUVzVjBGQlZ5eGxRVUZuUWl4RFFVTjZRaXhQUVVGbFF5eEZRVU5xUWl4RFFVMUJMRmRCUVZjc05FSkJRVFpDTEVOQlEzUkRMRTlCUVdWRExFVkJRMnBDTEVOQlEwWXNSVUZMVHl4VFFVRlRReXhIUVVGcFFrTXNSVUZCWVN4RFFVTTFReXhIUVVGSmJFMHNSVUZCVXl4WFFVRlhhMDBzUTBGQlZ5eEZRVU5xUXl4UFFVRlBRU3hGUVVOR0xFZEJRVWxCTEVkQlFXVkJMRVZCUVZrc1UwRkJWM0pITEVkQlFWTnhSeXhGUVVGWkxGRkJRVkVzUTBGQlF5eEZRVU0zUlN4UFFVRlBiRTBzUlVGQlV5eFhRVUZYYTAwc1EwRkJWeXhGUVVOcVF5eEhRVUZKUVN4SFFVRmxMRTlCUVU5QkxFZEJRV2RDTEZOQlF5OURMRTlCUVU5c1RTeEZRVUZUTEZkQlFWZHJUU3hEUVVGWExFVkJSWFJETEUxQlFVMHNTVUZCU1hCSExFZEJRMUlzT0VKQlFUaENiMGNzUTBGQlZ5eGhRVUZoTEU5QlFVOUJMRU5CUVZjc1JVRkRNVVVzUTBGRlNpeERRekZ4UlVFc1NVRkJRVU1zUjBGQmJVSXNVME5FYmtJc1NVRkJUME1zUjBGQlVTeEpRVVZRTERKbldrUlpSQ3hUUVVGVFF5eEhRVUZyUWtNc1JVRkJaU3hEUVVNM1F5eFBRVUY1UWtFc1IwRkJVU3hMUVVGaFFTeEZRVVYyUTBFc1JVRkJTU3hSUVVGUkxGRkJRVk1zVTBGQlZTeFJRVUZUTEU5QlFWRXNVVUZCVXl4VlFVRlhMRlZCUVZjc1kwRkJZeXhGUVVGRkxGVkJRVlVzUTBGRGNFZ3NRMEUwUWs4c1UwRkJVME1zUjBGQmEwSkRMRVZCUVdkQ1F5eEZRVUZ2UWtNc1JVRkJkMEpETEVWQlFYbENMRU5CUlc1SUxFOUJRVWxJTEVWQlFVc3NVVUZCVlN4SFFVRkxRU3hGUVVGTExGRkJRVlVzUjBGQlMwRXNSVUZCU3l4TlFVRlJMRVZCUXpsRFFTeEZRVUZMTEZGQlFWRXNSVUZCUlN4VFFVRlRReXhGUVVGWkxFTkJRVVVzVDBGQlFVVXNRMEZCVHl4RFFVRkRMRVZCUjJ4RVNDeEZRVUZMTEZGQlFWRXNSVUZCUlN4VFFVRlRSU3hGUVVGblFpeERRVUZGTEU5QlFVRkRMRU5CUVU4c1EwRkJReXhEUVVNM1JDeERRVWRQTEZOQlFWTkRMRWRCUVhOQ1F5eEZRVUYxUWl4RFFVTjZSRUVzUlVGQlRVTXNSMEZCYTBKRUxFTkJRVWNzUlVGSE0wSXNTVUZCU1VVc1JVRkJVeXhIUVVOaUxFOUJRVWxHTEVWQlFVa3NVVUZCVDBVc1IwRkJWU3hIUVVGSFJpeEZRVUZKTEV0QlFVc3NXVUZEYWtOQkxFVkJRVWtzVTBGQlVVVXNSMEZCVlN4SFFVRkhSaXhGUVVGSkxFMUJRVTBzWVVGRGJrTkJMRVZCUVVrc1VVRkJUMFVzUjBGQlZTeEhRVUZIUml4RlFVRkpMRXRCUVVzc1dVRkRha05CTEVWQlFVa3NUMEZCVFVVc1IwRkJWU3hIUVVGSFJpeEZRVUZKTEVsQlFVa3NWMEZETDBKQkxFVkJRVWtzVVVGQlQwVXNSMEZCVlN4SFFVRkhSaXhGUVVGSkxFdEJRVXNzV1VGRGFrTkJMRVZCUVVrc1ZVRkJVMFVzUjBGQlZTeEhRVUZIUml4RlFVRkpMRTlCUVU4c1kwRkRja05CTEVWQlFVa3NWVUZCVTBVc1IwRkJWU3hIUVVGSExFdEJRVXNzVFVGQlRVWXNSVUZCU1N4UFFVRlBMRU5CUVVNc1kwRkRha1JCTEVWQlFVa3NaVUZCWTBVc1IwRkJWU3hIUVVGSExFdEJRVXNzVFVGQlRVWXNSVUZCU1N4WlFVRlpMRU5CUVVNc1UwRkZNMFJGTEVWQlFVOHNVMEZCVXl4SlFVRkpMRWxCUVVkQkxFVkJRVk5CTEVWQlFVOHNWVUZCVlN4RlFVRkhRU3hGUVVGUExFOUJRVk1zUTBGQlF5eEhRVU5zUlVFc1EwRkRXQ3hEUVdWUExGTkJRVk5ETEVkQlFXRkRMRVZCUVhOQ0xFTkJReTlETEU5QlFVbEJMRVZCUVVzc1UwRkJVeXhIUVVGSExFbEJRVWRCTEVWQlFVOUJMRVZCUVVzc1ZVRkJWVUVzUlVGQlN5eFpRVUZaTEVkQlFVY3NSVUZCU1N4RFFVRkRMRWRCUTI1RlFTeEZRVUZMTEZOQlFWTXNTMEZCU3l4SlFVRkhRU3hGUVVGUFFTeEZRVUZMTEZWQlFWVXNSVUZCUjBFc1JVRkJTeXhQUVVGVExFTkJRVU1zUjBGRE0wUkJMRU5CUTFnc1EwRkhUeXhUUVVGVFF5eEhRVUZoUkN4RlFVRnpRaXhEUVVNdlF5eFBRVUZMUVN4RlFVRkxMRk5CUVZNc1IwRkJSeXhGUVVObVFTeEZRVUZMTEZWQlFWVkJMRVZCUVVzc1dVRkJXU3hIUVVGSExFVkJRVWtzUTBGQlF5eEZRVVJtTEVWQlJYQkRMRU5CTWtOQkxFbEJRVTFGTEVkQlFUSkRMRTlCUXpORExGTkJRVTBzU1VGQlNTeFBRVUZQUXl4SFFVRlhMRVZCUVVjc1JVRkJSU3hEUVVGRExFVkJRMnhETEZOQlFVMHNjVUpCUVhGQ0xFVkJRek5DTEdOQlFWY3NTVUZCUzBNc1IwRkJUU3hIUVVGSExFVkJRM3BDTEU5QlFVa3NTVUZCUzBFc1IwRkJUU3hIUVVGSExFTkJRM2hDTEVWQlEwc3NTMEZCU3l4RlFVTk1MRWxCUVV0RExFZEJRMHRCTEVWQlFVOHNTMEZCU3l4RlFVRkZMRVZCUVVVc1RVRkJUU3hMUVVGTExFVkJRVVVzUzBGQlN5eEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVTjBSQ3hGUVUxRkxGTkJRVk5ETEVkQlFYVkNReXhGUVVGM1FpeERRVU16UkN4UFFVRlBUQ3hIUVVGeFFpeFRRVUZUU3l4RFFVRk5MRU5CUXk5RExFTkZlRXBQTEVsQlFVMURMRWRCUVU0c1RVRkJUVU1zUTBGQlN5eERRV0ZrTEU5QlFXTXNTMEZCUzBNc1JVRkJZME1zUlVGQmFVSXNSMEZCVDBNc1JVRkJkMElzUTBGRE4wVXNUMEZCVHl4SlFVRkpTQ3hGUVVGTExFTkJRMW9zUzBGQlFVTXNSVUZEUVN4TlFVRkJReXhGUVVOQkxGRkJRVUZETEVWQlEwRXNVVUZCVXl4UFFVTlVMRXRCUVUwc1RVRkRWaXhEUVVGRExFTkJRMHdzUTBGSFFTeFBRVUZqTEUxQlFVMURMRVZCUVd0Q1JpeEZRVUZwUWl4SFFVRlBReXhGUVVGM1FpeERRVU5zUml4SFFVRkpReXhGUVVGVExGTkJRVk1zU1VGQlNTeEZRVUZITEVOQlEzcENMRWxCUVVsRExFVkJRVkZFTEVWQlFWTXNUVUZCVFN4SlFVRkpMRVZCUXk5Q0xFOUJRVTlLTEVWQlFVc3NUVUZCVFVzc1JVRkJUU3hEUVVGRExFVkJRVWRCTEVWQlFVMHNRMEZCUXl4RlFVRkhTQ3hGUVVGUFF5eERRVUZQTEVOQlEzaEVMRk5CUVZkRExFVkJRVk1zVTBGQlV5eEhRVUZITEVWQlFVY3NRMEZETDBJc1NVRkJTVU1zUlVGQlVVUXNSVUZCVXl4TlFVRk5MRWRCUVVjc1JVRkRPVUlzVDBGQlQwb3NSVUZCU3l4UFFVRlBTeXhGUVVGTkxFTkJRVU1zUlVGQlIwRXNSVUZCVFN4RFFVRkRMRVZCUVVkSUxFVkJRVTlETEVOQlFVOHNRMEZEZWtRc1MwRkJUeXhSUVVGUFNDeEZRVUZMTEV0QlFVdEpMRVZCUVZWR0xFVkJRVTlETEVOQlFVOHNRMEZEY0VRc1EwRkhRU3hQUVVGakxFOUJRVTlHTEVWQlFXTkxMRVZCUVdkQ1NpeEZRVUZwUWtNc1JVRkJkMElzUTBGRmVFWXNUMEZCVHl4SlFVRkpTQ3hGUVVGTExFTkJRMW9zUzBGQlFVTXNSVUZEUVN4TlFVRkJReXhGUVVOQkxGRkJRVUZETEVWQlEwRXNVVUZCVTBrc1IwRkJkVUpFTEVOQlFVMHNSVUZEZEVNc1MwRkJUU3hSUVVOV0xFTkJRVU1zUTBGRFRDeERRVWRCTEU5QlFXTXNUVUZCVFV3c1JVRkJZMDhzUlVGQmFVSk9MRVZCUVdsQ1F5eEZRVUYzUWl4RFFVTjRSaXhQUVVGUExFbEJRVWxJTEVWQlFVc3NRMEZEV2l4TFFVRkJReXhGUVVOQkxFMUJRVUZETEVWQlEwRXNVVUZCUVVNc1JVRkRRU3hSUVVGVFN5eEZRVU5VTEV0QlFVMHNUMEZEVml4RFFVRkRMRU5CUTB3c1EwRkhRU3hQUVVGakxGZEJRVmRETEVWQlFYZENMRU5CUXpkRExFOUJRVThzU1VGQlNWUXNSVUZCUzFNc1EwRkJUU3hEUVVNeFFpeERRVWRCTEU5QlFXTXNWMEZCVjBNc1JVRkJkVUlzUTBGRE5VTXNSMEZCU1N4RFFVRkRReXhGUVVGTlVpeERRVUZQTEVWQlFVbFRMRWRCUVhGQ1JpeERRVUZQTEVWQlEyeEVMRTlCUVU5V0xFVkJRVXNzVFVGQlRWY3NSVUZCVFN4SFFVRlBVaXhEUVVGUExFTkJRekZETEVOQlJWRXNXVUZCV1ZVc1JVRkJkVUlzUTBGRGRrTXNUMEZCVHl4UFFVRlBMRXRCUVUxQkxFTkJRVTBzUTBGRE9VSXNRMEZIVHl4VFFVRlRXaXhGUVVGdlFpeERRVU5vUXl4UFFVRlBMRWxCUVVsRUxFVkJRVXNzVDBGQlR5eFBRVUZQTEVOQlFVTXNSVUZCUnl4TFFVRk5MRU5CUVVVc1MwRkJRVU1zUTBGQlN5eERRVUZETEVOQlFVTXNRMEZEY2tRc1EwRkhUeXhaUVVGWlJTeEZRVUYzUWl4RFFVTjJReXhQUVVGUExFbEJRVWxJTEVWQlFVc3NUMEZCVHl4UFFVRlBMRU5CUVVNc1JVRkJSeXhMUVVGTkxFTkJRVVVzVVVGQlFVY3NRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkRlRVFzUTBGSFR5eFZRVUZWUkN4RlFVRnpRaXhEUVVOdVF5eFBRVUZKTEV0QlFVc3NUMEZCVTBFc1JVRkJZeXhMUVVWNlFpeEpRVUZKUml4RlFVRkxMRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWNzUzBGQlRTeERRVUZGTEUxQlFVRkZMRU5CUVUwc1EwRkJReXhEUVVGRExFTkJRM1JFTEVOQlIwOHNWMEZCVjBrc1JVRkJjMElzUTBGRGNFTXNUMEZCVDA0c1JVRkJTeXhQUVVGUExFdEJRVXNzUzBGQlRVMHNSVUZCVVN4TFFVRkxMRTFCUVU4c1MwRkJTeXhQUVVGUExFTkJRMnhGTEVOQlIwOHNWVUZCVlZFc1JVRkJjVUlzUTBGRGJFTXNUMEZCVDJRc1JVRkJTeXhOUVVGTkxFdEJRVXNzUzBGQlRXTXNSVUZCVHl4TFFVRkxMRTFCUVU4c1MwRkJTeXhQUVVGUExFTkJRMmhGTEVOQlIwOHNUMEZCVDBNc1JVRkJjMElzUTBGRGFFTXNUMEZCU1VFc1IwRkJVeXhOUVVGaFFTeEhRVUZUTEV0QlFXRXNSMEZGZWtNc1MwRkJTeXhOUVVGUlFTeEZRVUZOTEUxQlFWRXNTMEZCU3l4TlFVRlJRU3hGUVVGTkxFMUJRVkVzUzBGQlN5eFRRVUZYUVN4RlFVRk5MRTlCUTNaR0xFTkJSMDhzVlVGQmJVSXNRMEZEZEVJc1QwRkJUeXhMUVVGTExGTkJRVk1zUTBGRGVrSXNRMEZIVHl4VlFVRnhRaXhEUVVONFFpeE5RVUZQTEVOQlEwZ3NTMEZCVFN4TFFVRkxMRXRCUTFnc1MwRkJUU3hMUVVGTExFdEJRMWdzVVVGQlV5eExRVUZMTEZGQlEyUXNVVUZCVXl4TFFVRkxMRkZCUTJRc1RVRkJUeXhMUVVGTExFdEJRMmhDTEVOQlEwb3NRMEZIVHl4UlFVRmxMRU5CUTJ4Q0xFOUJRVTltTEVWQlFVc3NTMEZCU3l4TFFVRkxMRXRCUVUwc1MwRkJTeXhOUVVGUExFdEJRVXNzVDBGQlR5eERRVU40UkN4RFFVZFBMRk5CUVdkQ0xFTkJRMjVDTEU5QlFVOHNTMEZCU3l4VlFVRlZMRVZCUVVrc1EwRkRPVUlzUTBGSFR5eFhRVUZyUWl4RFFVTnlRaXhQUVVGUExFdEJRVXNzVlVGQlZTeEZRVUZMTEVOQlF5OUNMRU5CUjA4c1ZVRkJiVUlzUTBGRGRFSXNTVUZCU1dkQ0xFZEJRVlVzUzBGQlN5eE5RVUZSTEVsQlFVMHNTVUZCVFN4TFFVRlBMRXRCUVVzc1lVRkJZU3hGUVVOb1JTeFBRVUZCUVN4SFFVRlZMRWxCUTFaQkxFZEJRVlVzUzBGQlN5eHBRa0ZCYVVJc1JVRkRhRU5CTEVkQlFWVXNTMEZEU0VFc1EwRkRXQ3hEUVVkUExHdENRVUZ0UWl4RFFVTjBRaXhIUVVGSkxFdEJRVXNzVVVGRFRDeFBRVUZQTEV0QlFVc3NVVUZEVkN4RFFVTklMRWxCUVVsQkxFVkJRVk5ETEVkQlFXRXNTMEZCU3l4SlFVRkpMRVZCUTI1RExFOUJRVWtzUzBGQlN5eE5RVUZSTEZWQlFWa3NTMEZCU3l4TlFVRlJMRmRCUVZORUxFZEJRVlVzVFVGQlVTeExRVUZMTEZOQlJXNUZRU3hEUVVOWUxFTkJRMG9zUTBGSFR5eGpRVUYxUWl4RFFYQkxiRU1zU1VGQlFVVXNSVUZCUVVNc1JVRnhTMUVzU1VGQlRVTXNSVUZCVlN4TFFVRkxMRXRCUVVzc1VVRkJVU3hKUVVGTExFdEJRVXNzUlVGRE5VTXNUMEZCU1N4TFFVRkxMRTFCUVZFc1UwRkJhVUpCTEVWQlFWVXNUVUZCVFVZc1JVRkJRU3hMUVVGTExGVkJRVXdzV1VGQlFVRXNSVUZCWXl4UlFVRlJMRWxCUVVzc1VVRkRla1VzUzBGQlN5eE5RVUZSTEZGQlFXZENSU3hGUVVGVkxFOUJRVTlFTEVWQlFVRXNTMEZCU3l4VlFVRk1MRmxCUVVGQkxFVkJRV01zVVVGQlVTeEpRVUZMTEZGQlEycEZReXhEUVVOb1FpeERRVWRQTEZWQlFXMUNMRU5CUTNSQ0xFOUJRVTlJTEVkQlFXRXNTMEZCU3l4SlFVRkpMRU5CUTJwRExFTkJRMG9zUlVGeFFrOHNVMEZCVTB3c1IwRkJjVUpFTEVWQlFUUkRMRU5CUXpkRkxFbEJRVWxWTEVWQlFVOHNSMEZEV0N4TlFVRlJRU3hGUVVGUFZpeEZRVUZMTEZGQlFWRXNTVUZCUzFVc1JVRkJUeXhEUVVGRExFbEJRVTBzUjBGRE0wTXNSMEZCU1N4RlFVRkJRU3hGUVVGUExFZEJRVXRXTEVWQlFVdFZMRVZCUVU4c1EwRkJReXhIUVVGTExFMUJRMnhETEUxQlFVOHNRMEZCUTFZc1JVRkJTeXhWUVVGVkxFVkJRVWRWTEVOQlFVa3NSVUZCUlN4UlFVRlJMRkZCUVZNc1IwRkJSeXhGUVVGSFZpeEZRVUZMTEZWQlFWVlZMRVZCUVU4c1EwRkJReXhEUVVGRExFVkJSMjVHTEUxQlFVOHNRMEZCUTFZc1JVRkJTeXhSUVVGUkxGRkJRVk1zUjBGQlJ5eEZRVUZITEUxQlFWTXNRMEZEYWtRc1EwTTFUVUVzU1VGQlRWY3NSMEZCVVN4UFFVRlBMRWxCUVVrc1dVRkJXU3hGUVVNdlFrTXNSMEZCVFN4UFFVRlBMRWxCUVVrc1pVRkJaU3hGUVVOb1EwTXNSMEZCVFN4UFFVRlBMRWxCUVVrc1ZVRkJWU3hGUVVNelFrTXNSMEZCVHl4UFFVRlBMRWxCUVVrc1YwRkJWeXhGUVVNM1FrTXNSMEZCVXl4UFFVRlBMRWxCUVVrc1lVRkJZU3hGUVVOcVEwTXNSMEZCVFN4UFFVRlBMRWxCUVVrc1ZVRkJWU3hGUVVNelFrTXNSMEZCV1N4UFFVRlBMRWxCUVVrc1owSkJRV2RDTEVWQlEzWkRReXhIUVVGWFF5eEhRVUZUTEVOQlFVTXNRMEZCUTBFc1IwRkJVU3hQUVVGUFFTeEhRVUZUTEZWQlFWbEJMRVZCUVV0R0xFVkJRVk1zU1VGQlRVNHNSMEZET1VWVExFZEJRV05FTEVkQlFWTXNRMEZCUXl4RFFVRkRRU3hIUVVGUkxFOUJRVTlCTEVkQlFWTXNWVUZCV1VFc1JVRkJTMFlzUlVGQlV5eEpRVUZOVEN4SFFVTnFSbE1zUjBGQlUwWXNSMEZCVXl4RFFVRkRMRU5CUVVOQkxFZEJRVkVzVDBGQlQwRXNSMEZCVXl4VlFVRlpRU3hGUVVGTFJpeEZRVUZUTEVsQlFVMUtMRWRCUXpWRlV5eEZRVUZWU0N4SFFVRlRMRU5CUVVNc1EwRkJRMEVzUjBGQlVTeFBRVUZQUVN4SFFVRlRMRlZCUVZsQkxFVkJRVXRHTEVWQlFWTXNTVUZCVFVnc1IwRkROMFZUTEVWQlFWbEtMRWRCUVZNc1EwRkJReXhEUVVGRFFTeEhRVUZSTEU5QlFVOUJMRWRCUVZNc1ZVRkJXVUVzUlVGQlMwWXNSVUZCVXl4SlFVRk5SaXhIUVVNdlJWTXNSMEZCVTB3c1IwRkJVeXhEUVVGRExFTkJRVU5CTEVkQlFWRXNUMEZCVDBFc1IwRkJVeXhWUVVGWlFTeEZRVUZMUml4RlFVRlRMRWxCUVUxRUxFZEJRMnhHTEZOQlFWTlRMRVZCUVdGT0xFVkJRVTBzUTBGRGVFSXNSMEZCU1VFc1IwRkJVU3hQUVVGUFFTeEhRVUZUTEZOQlEzaENMRTlCUVZGQkxFVkJRVXRHTEVWQlFWTXNSVUZCUnl4RFFVTnlRaXhMUVVGTFNpeEhRVU5NTEV0QlFVdEhMRWRCUTBRc1RVRkJUeXhGUVVObUxFTkJRMG9zVFVGQlR5eEZRVU5ZTEVOQlEwRXNVMEZCVTFVc1JVRkJUMUFzUlVGQlRTeERRVU5zUWl4SFFVRkpRU3hIUVVGUkxFOUJRVTlCTEVkQlFWTXNVMEZEZUVJc1QwRkJVVUVzUlVGQlMwWXNSVUZCVXl4RlFVRkhMRU5CUTNKQ0xFdEJRVXRPTEVkQlEwd3NTMEZCUzBVc1IwRkRUQ3hMUVVGTFJTeEhRVU5NTEV0QlFVdERMRWRCUTBRc1RVRkJUeXhGUVVObUxFTkJRMG9zVFVGQlR5eEZRVU5ZTEVOQlEwRXNTVUZCVFZjc1IwRkJZVklzU1VGQlZVa3NSVUZCVTBvc1EwRkJTU3hIUVVGTFRTeEZRVUZoVGl4RFFVRkpMRWxCUVUwc1EwRkJReXhEUVVGRFFTeEZRVUZMTEU5REwwSTNSU3hKUVVGTlV5eEhRVUZSTEU5QlFVOHNZVUZCWVN4RlFVTTFRa01zUjBGQlR5eFBRVUZQTEdWQlFXVXNSVUZETjBKRExFZEJRVk1zVDBGQlR5eGhRVUZoTEVWQkswSnVReXhUUVVGVFF5eEhRVUZOUXl4RlFVRk5ReXhGUVVGVExFTkJRekZDTEVsQlFVMURMRVZCUVZkRExFZEJRVmxHTEVOQlFVOHNSVUZEYUVOSExFZEJRVmRLTEVOQlFVa3NSVUZEU2tzc1IwRkJUeXhMUVVGTlRDeEZRVUZMTEZOQlFWVkZMRVZCUVZVc1QwRkJUeXhQUVVGUExFTkJRVU5HTEVOQlFVa3NRMEZCUXl4RFFVRkRMRWxCUXpORVJpeExRVU5RUlN4RlFVRkxMRk5CUVZjc1RVRkhjRUpMTEVkQlFVOHNTMEZCVFV3c1JVRkJUVVVzUlVGQlZTeFBRVUZQTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRkRVFzUTBGTFFVZ3NSMEZCVFN4TlFVRlJTQ3hIUVVWa1J5eEhRVUZOTEV0QlFVOUdMRWRCUldKRkxFZEJRVTBzVDBGQlUwUXNSMEZEWml4VFFVRlRUeXhIUVVGUFF5eEZRVUZMVGl4RlFVRk5ReXhGUVVGVFRTeEZRVUZOTEVOQlEzUkRMRWxCUVUxRExFVkJRVTlETEVkQlFWbElMRVZCUVV0T0xFVkJRVTFETEVWQlFWTk5MRU5CUVVrc1JVRkRha1FzUjBGQlNVY3NSVUZCVDBZc1EwRkJTU3hIUVVGTFJ5eEZRVUZQU0N4RFFVRkpMRVZCUXpOQ0xFOUJRVUZKTEVkQlFWbE9MRVZCUVV0RExFVkJRVTFETEVOQlFVa3NSVUZEY0VKSUxFZEJRVTlETEVWQlFVdEZMRVZCUVUxUUxFVkJRVk5OTEVOQlFVa3NSVUZGTVVNc1IwRkJTU3hQUVVGUFF5eEhRVUZUTEZWQlEyaENMRWRCUVVsTExFVkJRV0ZpTEVOQlFVa3NSVUZCUnl4RFFVTndRazhzUlVGQlR5eFBRVUZQTEU5QlFVOUJMRVZCUVVzc1QwRkJUMUFzUTBGQlNTeERRVUZETEVWQlEzUkRMRkZCUVZNc1JVRkJTU3hGUVVGSExFVkJRVWxCTEVWQlFVc3NUVUZCVFN4UFFVRlJMRVZCUVVVc1JVRkJSeXhEUVVONFF5eEpRVUZOWXl4RlFVRkxWQ3hIUVVGUExFVkJRVWRNTEVWQlFVc3NUVUZCVFN4RFFVRkRMRVZCUVVkRExFVkJRVk5OTEVOQlFVa3NSVUZEYWtRc1IwRkJTU3hQUVVGUFR5eEhRVUZQTEZOQlEyUXNSVUZCU1VFc1JVRkJTeXhOUVVOU0xFbEJRVWxCTEVsQlFVOXNRaXhIUVVOYUxFOUJRVTlCTEVkQlEwWnJRaXhKUVVGUGFFSXNTMEZEV2tVc1JVRkJTeXhOUVVGTkxFOUJRVThzUlVGQlJ5eERRVUZETEVWQlEzUkNMRWRCUVVzc1IwRkZZaXhEUVVOS0xGTkJRMU5YTEVWQlFVOVlMRU5CUVVrc1JVRkJSeXhEUVVOdVFrOHNSVUZCVHl4UFFVRlBMRTlCUVU5QkxFVkJRVXNzVDBGQlQxQXNRMEZCU1N4RFFVRkRMRVZCUTNSRExFbEJRVTFsTEVWQlFVdFdMRWRCUVU4c1RVRkJUMHdzUlVGQlN5eEpRVUZMUXl4RlFVRlRUU3hEUVVGSkxFVkJRMmhFTEVkQlFVbFJMRWxCUVU5dVFpeEhRVU5RTEU5QlFVOUJMRWRCUTBadFFpeEpRVUZQYWtJc1MwRkRXa1VzUlVGQlN5eEpRVUZOTEUxQlEyWXNTVUZCVFdkQ0xFVkJRVXRZTEVkQlFVOHNVVUZCVTB3c1JVRkJTeXhOUVVGUFF5eEZRVUZUVFN4RFFVRkpMRVZCUTNCRUxFZEJRVWxUTEVsQlFVOXdRaXhIUVVOUUxFOUJRVTlCTEVkQlEwWnZRaXhKUVVGUGJFSXNTMEZEV2tVc1JVRkJTeXhOUVVGUkxFdEJRM0pDTEVWQlJVb3NUMEZCVDFFc1EwRkRXQ3hEUVdkRFFTeGxRVUZsVXl4SFFVRlhha0lzUlVGQlRVTXNSVUZCVXl4RFFVTnlReXhKUVVGTlF5eEZRVUZYUXl4SFFVRlpSaXhEUVVGUExFVkJRMmhEUnl4SFFVRlhTaXhEUVVGSkxFVkJRMG9zVFVGQlRXdENMRWRCUVZrc1MwRkJUV3hDTEVWQlFVc3NVMEZCVlVVc1JVRkJWU3hQUVVGUExFOUJRVThzUTBGQlEwWXNRMEZCU1N4RFFVRkRMRU5CUVVNc1NVRkRkRVZHTEV0QlExQkZMRVZCUVVzc1UwRkJWeXhOUVVkd1FpeE5RVUZOYTBJc1IwRkJXU3hMUVVGTmJFSXNSVUZCVFVVc1JVRkJWU3hQUVVGUExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEYWtVc1EwRkxRV1VzUjBGQlZ5eE5RVUZSY2tJc1IwRkZia0p4UWl4SFFVRlhMRXRCUVU5d1FpeEhRVVZzUW05Q0xFZEJRVmNzVDBGQlUyNUNMRWRCUTNCQ0xHVkJRV1Z2UWl4SFFVRlpXaXhGUVVGTFRpeEZRVUZOUXl4RlFVRlRUU3hGUVVGTkxFTkJRMnBFTEVsQlFVMURMRVZCUVU4c1RVRkJUVU1zUjBGQldVZ3NSVUZCUzA0c1JVRkJUVU1zUlVGQlUwMHNRMEZCU1N4RlFVTjJSQ3hIUVVGSlJ5eEZRVUZQUml4RFFVRkpMRWRCUVV0SExFVkJRVTlJTEVOQlFVa3NSVUZETTBJc1QwRkJRVWtzUjBGQldVNHNSVUZCUzBNc1JVRkJUVU1zUTBGQlNTeEZRVU53UWxVc1IwRkJXVm9zUlVGQlMwVXNSVUZCVFZBc1JVRkJVMDBzUTBGQlNTeEZRVVV2UXl4SFFVRkpMRTlCUVU5RExFZEJRVk1zVlVGRGFFSXNSMEZCU1Vzc1JVRkJZV0lzUTBGQlNTeEZRVUZITEVOQlEzQkNUeXhGUVVGUExFOUJRVThzVDBGQlQwRXNSVUZCU3l4UFFVRlBVQ3hEUVVGSkxFTkJRVU1zUlVGRGRFTXNVVUZCVXl4RlFVRkpMRVZCUVVjc1JVRkJTVUVzUlVGQlN5eE5RVUZOTEU5QlFWRXNSVUZCUlN4RlFVRkhMRU5CUTNoRExFbEJRVTFqTEVWQlFVc3NUVUZCVFVrc1IwRkJXU3hGUVVGSGJFSXNSVUZCU3l4TlFVRk5MRU5CUVVNc1JVRkJSME1zUlVGQlUwMHNRMEZCU1N4RlFVTTFSQ3hIUVVGSkxFOUJRVTlQTEVkQlFVOHNVMEZEWkN4RlFVRkpRU3hGUVVGTExFMUJRMUlzU1VGQlNVRXNTVUZCVDJ4Q0xFZEJRMW9zVDBGQlQwRXNSMEZEUm10Q0xFbEJRVTlvUWl4TFFVTmFSU3hGUVVGTExFMUJRVTBzVDBGQlR5eEZRVUZITEVOQlFVTXNSVUZEZEVJc1IwRkJTeXhIUVVWaUxFTkJRMG9zVTBGRFUxY3NSVUZCVDFnc1EwRkJTU3hGUVVGSExFTkJRMjVDVHl4RlFVRlBMRTlCUVU4c1QwRkJUMEVzUlVGQlN5eFBRVUZQVUN4RFFVRkpMRU5CUVVNc1JVRkRkRU1zU1VGQlRXVXNSVUZCU3l4TlFVRk5SeXhIUVVGWkxFMUJRVTlzUWl4RlFVRkxMRWxCUVV0RExFVkJRVk5OTEVOQlFVa3NSVUZETTBRc1IwRkJTVkVzU1VGQlQyNUNMRWRCUTFBc1QwRkJUMEVzUjBGRFJtMUNMRWxCUVU5cVFpeExRVU5hUlN4RlFVRkxMRWxCUVUwc1RVRkRaaXhKUVVGTlowSXNSVUZCU3l4TlFVRk5SU3hIUVVGWkxGRkJRVk5zUWl4RlFVRkxMRTFCUVU5RExFVkJRVk5OTEVOQlFVa3NSVUZETDBRc1IwRkJTVk1zU1VGQlQzQkNMRWRCUTFBc1QwRkJUMEVzUjBGRFJtOUNMRWxCUVU5c1FpeExRVU5hUlN4RlFVRkxMRTFCUVZFc1MwRkRja0lzUlVGRlNpeFBRVUZQVVN4RFFVTllMRU5CUTBFc1UwRkJVMHdzUjBGQldVWXNSVUZCVXl4RFFVTXhRaXhQUVVGSkxFOUJRVTlCTEVkQlFWa3NWMEZEYkVKQkxFVkJRVkVzV1VGQlkwRXNSVUZCVVN4TlFVRlJRU3hGUVVGUkxFOUJRM2hETEU5QlFVOHNUMEZCVHl4RFFVTnFRaXhOUVVGUFFTeEZRVUZSTEV0QlEyWXNTVUZCUzBFc1JVRkJVU3hMUVVOaUxFOUJRVkZCTEVWQlFWRXNTMEZEYUVJc1NVRkJTMEVzUlVGQlVTeEpRVU5xUWl4RlFVRkhRU3hGUVVGUkxFOUJRVk1zUTBGRGFFSXNTVUZCUzBFc1JVRkJVU3hOUVVOaUxFOUJRVkZCTEVWQlFWRXNUVUZEYUVJc1NVRkJTMEVzUlVGQlVTeExRVU5xUWl4RlFVRkhRU3hGUVVGUkxGbEJRV01zUTBGRGNrSXNTVUZCUzBFc1JVRkJVU3hYUVVOaUxFbEJRVXRCTEVWQlFWRXNWVUZEYWtJc1JVRkJSMEVzUTBGQlR5eEZRVVZRUVN4RFFVTllMRU5CUTBFc1UwRkJVMUVzUjBGQldVZ3NSVUZCUzA0c1JVRkJUVU1zUlVGQlUwMHNSVUZCVFN4RFFYSk5MME1zU1VGQlFWa3NSVUZCUVVNc1JVRkJRVU1zUlVGQlFVTXNSVUZCUVVNc1JVRnpUVWtzUjBGQlNTeFBRVUZQZEVJc1IwRkJXU3hYUVVOdVFpeFBRVUZQUVN4RlFVRlJTeXhGUVVGTFRpeEZRVUZOVHl4RFFVRkpMRVZCUTJ4RExFZEJRVWxwUWl4SFFVRk5lRUlzUTBGQlNTeEZRVU5XTEU5QlFVOXRRaXhGUVVGQmJFSXNSVUZCVVN4TlFVRlNMRmxCUVVGclFpeEZRVUZCTEV0QlFVRnNRaXhGUVVGalN5eEZRVUZMVGl4RlFVRk5UeXhIUVVOd1F5eEhRVUZKYTBJc1IwRkJUWHBDTEVOQlFVa3NSVUZEVml4UFFVRlBiMElzUlVGQlFXNUNMRVZCUVZFc1RVRkJVaXhaUVVGQmJVSXNSVUZCUVN4TFFVRkJia0lzUlVGQlkwc3NSVUZCUzA0c1JVRkJUVThzUjBGRGNFTXNSMEZCU1Vrc1JVRkJUMWdzUTBGQlNTeEZRVU5ZTEU5QlFVOXhRaXhGUVVGQmNFSXNSVUZCVVN4UFFVRlNMRmxCUVVGdlFpeEZRVUZCTEV0QlFVRndRaXhGUVVGbFN5eEZRVUZMVGl4RlFVRk5UeXhIUVVOeVF5eEhRVUZKYlVJc1JVRkJVekZDTEVOQlFVa3NSVUZEWWl4UFFVRlBjMElzUlVGQlFYSkNMRVZCUVZFc1UwRkJVaXhaUVVGQmNVSXNSVUZCUVN4TFFVRkJja0lzUlVGQmFVSkxMRVZCUVV0T0xFVkJRVTFQTEVkQlEzWkRMRWRCUVVsdlFpeEhRVUZSTTBJc1EwRkJTU3hGUVVOYUxFOUJRVTkxUWl4RlFVRkJkRUlzUlVGQlVTeFJRVUZTTEZsQlFVRnpRaXhGUVVGQkxFdEJRVUYwUWl4RlFVRm5Ra3NzUlVGQlMwNHNSVUZCVFU4c1JVRkZNVU1zUTBGRFFTeFRRVUZUU3l4SFFVRlpUaXhGUVVGTFF5eEZRVUZOVUN4RlFVRk5MRU5CUTJ4RExFbEJRVTAwUWl4RlFVRlRja0lzUlVGQlMwRXNSVUZCU3l4UFFVRlRMRU5CUVVNc1JVRkRia01zUjBGQlNVMHNSVUZCWVdVc1EwRkJUU3hGUVVOdVFrRXNSVUZCVHl4TlFVRk5kRUlzUTBGQlJ5eEZRVUZKVGl4VlFVVm1WeXhGUVVGUGFVSXNRMEZCVFN4RlFVTmtkRUlzU1VGQlVTeE5RVU5TYzBJc1JVRkJUeXhKUVVGTk5VSXNSVUZGWWpSQ0xFVkJRVThzVFVGQlVUVkNMRlZCUldSSkxFZEJRVmQzUWl4RFFVRk5MRVZCUTNSQ1FTeEZRVUZQTEZOQlFWYzFRaXhOUVVWcVFpeERRVU5FTEVsQlFVMDJRaXhGUVVGTFJpeEhRVUZSUXl4RFFVRk5MRVZCUVVrc1VVRkJWU3hUUVVOMlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN3MFFrRkJORUpETEVOQlFVVXNVMEZCVXl4RFFVTXpSQ3hEUVVOS0xFTkRiazlCTEVsQlFVMURMRWRCUVdNc1EwRkRhRUlzU1VGQlN5eE5RVU5NTEVsQlFVc3NUVUZEVEN4SlFVRkxMRTFCUTB3c1NVRkJTeXhOUVVOTUxFbEJRVXNzVFVGRFRDeEpRVUZMTEV0QlExUXNSVUZEVFVNc1IwRkJhVUpETEVkQlFVOUJMRVZCUVVjc1VVRkJVU3hoUVVGalF5eEhRVUZOU0N4SFFVRlpSeXhEUVVGRkxFTkJRVU1zUlVGRGRFVkRMRWRCUVU0c1RVRkJUVU1zUTBGQlZ5eERRVU5pTEZsQlFWbERMRVZCUVUxRExFVkJRVTBzUTBGTGNFSXNTMEZCU3l4VFFVRlhMRXRCUldoQ0xFdEJRVXNzVDBGQlV5eEhRVU5rTEV0QlFVc3NTMEZCVHl4UFFVRlBMRTlCUVU4c1EwRkJReXhGUVVGSFJpeEZRVUZYTEZsQlFXRkRMRU5CUVVrc1JVRkRNVVFzUzBGQlN5eExRVUZQTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVkRUxFVkJRVmNzV1VGQllVVXNRMEZCU1N4RFFVTTVSQ3hEUVVOQkxFOUJRVkVzUTBGRFNpeEpRVUZOUXl4RlFVRlBMRWxCUVVsSUxFVkJRVmNzUzBGQlN5eExRVUZOTEV0QlFVc3NTVUZCU1N4RlFVTm9SQ3hQUVVGQlJ5eEZRVUZMTEZOQlFWY3NTMEZCU3l4VFFVTmtRU3hEUVVOWUxFTkJTMEVzV1VGQllTeERRVU5VTEVsQlFVMURMRVZCUVUwc1NVRkJTVW9zUlVGQlZ5eExRVUZMTEV0QlFVMHNTMEZCU3l4SlFVRkpMRVZCUXk5RExFOUJRVkVzUzBGQlN5eExRVUZMTEZGQlFWTXNRMEZEZGtJc1NVRkJTeXhOUVVORUxFdEJRVXNzWlVGQmFVSXNSMEZEZEVJc1RVRkRTaXhKUVVGTExFMUJRMFFzUzBGQlN5eGxRVUZwUWl4SFFVTjBRaXhMUVVGTExFdEJRVThzUTBGRFVpeFRRVUZWUVN4RlFVRlhMRmxCUVZrc1UwRkRha01zVVVGQlV5eExRVU5pTEVWQlEwRXNTMEZCU3l4TFFVRlBMRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWRCTEVWQlFWY3NWMEZCVnl4RlFVTndSQ3hMUVVOU0xFTkJRMEVzVDBGQlQwa3NRMEZEV0N4RFFVdEJMRWxCUVVsRExFVkJRVTFETEVWQlFWTXNRMEZEV0N4TFFVRkxMR2xDUVVOTUxFdEJRVXNzUzBGQlR5eERRVUZGTEZOQlFWVk9MRVZCUVZjc1dVRkJXU3hUUVVGVkxGRkJRVk1zUzBGQlRTeEZRVU40UlN4TFFVRkxMRXRCUVU4c1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlIwRXNSVUZCVnl4WFFVRlhMRVZCUTNCRUxFdEJRVXNzWlVGQmFVSXNTVUZGTVVJc1NVRkJUVThzUlVGQlVVWXNSVUZCU3l4TFFVRkxMRVZCUVVVc1RVRkJUU3hSUVVGUkxFVkJRMnhEUnl4RlFVRlBSQ3hGUVVGTkxFMUJRVTBzUlVGRGVrSXNUMEZCVVVNc1JVRkJUU3hEUVVOV0xFbEJRVXNzVDBGQlVTeERRVU5VTEVkQlFVbEVMRVZCUVUwc1UwRkJWeXhKUVVOcVFrUXNSVUZCVVN4RlFVRkhMR2xFUVVGcFJDeEZRVU40UkVNc1JVRkJUU3hQUVVGVExFZEJRMllzVFVGQlR5eEhRVVZtTEVkQlFVMHNRMEZCUTBVc1JVRkJVVU1zUTBGQlRTeEZRVUZKU0N4RlFVTjZRaXhaUVVGTExFdEJRVXRGTEVOQlFVMHNSVUZCU1VNc1JVRkRZaXhGUVVOWUxFTkJRMEVzU1VGQlN5eFJRVUZUTEVOQlJWWXNSMEZFUVN4TFFVRkxMRXRCUVVzc1UwRkJWeXhIUVVOcVFrZ3NSVUZCVFN4VFFVRlhMRVZCUTJwQ0xFOUJRVUZFTEVWQlFWRXNSVUZCUnl4cFJFRkJhVVFzUlVGRGNrUXNSMEZGV0N4SFFVRk5MRU5CUVVOTExFTkJRVThzUlVGQlNVb3NSVUZEYkVJc1IwRkJTVWtzU1VGQldTeFBRVUZUUVN4SlFVRlpMRTFCUTJwRExGbEJRVXNzUzBGQlN5eFJRVUZWUVN4RlFVTmlMRWRCUlU0c1EwRkRSQ3hKUVVGTlF5eEZRVUZWTEdGQlFXRXNTMEZCUzBRc1EwRkJUeXhGUVVONlF5eFBRVUZCVEN4RlFVRlJMRVZCUVVjc05FSkJRVFJDU3l4RFFVRlBMRWRCUVVsRExFTkJRVThzUlVGRGJFUXNSVUZEV0N4RFFVTktMRU5CUTBFc1VVRkRTU3hQUVVGQlRpeEZRVUZSTEVWQlFVY3NjVUpCUVhGQ1JTeERRVUZKTEVkQlFVa3NSVUZCU1N4RlFVTnlReXhGUVVObUxFTkJRMG9zUTBGUFFTeFJRVUZSU3l4RlFVRlJVQ3hGUVVGVExFTkJRM0pDTEVkQlFVbFBMRWxCUVZjc1NVRkRXQ3hOUVVGUExFbEJRMWdzUjBGQlNVRXNSVUZCVHl4RFFVRkRMRWxCUVUwc1NVRkRaQ3hQUVVGQlVDeEZRVUZSTEc5Q1FVRnZRazhzUTBGQlRTeEZRVUZGTEVWQlF6ZENMRXRCUlZnc1IwRkJTVUVzUlVGQlR5eERRVUZETEVsQlFVMHNTVUZCU3l4RFFVTnVRaXhKUVVGTlF5eEZRVUZYUkN4RlFVRlBMRTFCUVUwc1JVRkJSeXhGUVVGRkxFVkJRMjVETEU5QlFVbERMRWxCUVdFc1MwRkJUMEVzU1VGQllTeE5RVU5xUTFJc1JVRkJVU3h4UTBGQmNVTlBMRU5CUVUwc1kwRkJZeXhGUVVNeFJDeFBRVVZRUVN4RlFVRlBRU3hGUVVGUExFOUJRVk1zUTBGQlF5eEpRVUZOTEV0QlF6bENVQ3hGUVVGUkxHbERRVUZwUXl4RlFVTjBRMUVzUlVGRFdDeERRVU5CTEVkQlFVMHNRMEZCUXl4RFFVRkZUQ3hGUVVGUlRTeERRVUZOTEVWQlFVbEdMRVZCUVU4c1RVRkJUU3hYUVVGRExHbENRVUZsTEVkQlFVTXNSMEZEY0VSRkxFZEJRMFJVTEVWQlFWRXNUMEZCVDA4c1EwRkJUU3h2UWtGQmIwSXNSVUZETjBNc1NVRkJUVWdzUlVGQlV5eExRVUZMTEV0QlFVdEVMRU5CUVUwc1JVRkRMMElzUjBGQlNVTXNSVUZEUVN4SFFVRkpMRU5CUTBFc1QwRkJUMEVzUlVGQlV5eHRRa0ZCYlVKTExFTkJRVTBzUTBGRE4wTXNUMEZEVDBNc1JVRkJUeXhEUVVOV0xFOUJRVUZXTEVWQlFWRXNUMEZCVDFVc1EwRkJTeXhEUVVGRExFVkJRMlFzU1VGRFdDeERRVVZLTEU5QlFVbFFMRWxCUVZjc1NVRkRTa2tzUjBGRFdGQXNSVUZCVVN3d1FrRkJNRUpQTEVOQlFVMHNSVUZCUlN4RlFVTnVReXhMUVVOWUxFTkJTMEVzVlVGQlZVa3NSVUZCU3l4RFFVTllMRTlCUVZjc1EwRkJRMUlzUlVGQlVVTXNRMEZCVFN4SlFVRkxMRTlCUVU4c1VVRkJVU3hMUVVGTExFbEJRVWtzUlVGRGJrUXNSMEZCU1U4c1JVRkJTU3hYUVVGWFVDeERRVUZOTEVWQlEzSkNMRTlCUVU5RUxFVkJRVk5pTEVkQlFXTnhRaXhGUVVGSkxGVkJRVlZRTEVWQlFVOHNUVUZCVFN4RFFVRkRMRVZCUld4RkxFOUJRVTlQTEVWQlFVa3NRMEZCUXl4SlFVRk5MRWxCUVUxQkxFVkJRVTBzUzBGQlMwRXNRMEZCUnl4SFFVTXhReXhEUVVOQkxGTkJRVk5ETEVWQlFVc3NRMEZEVml4SlFVRk5ReXhGUVVGUkxFdEJRVXNzUzBGQlN5eFRRVU5zUWl4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExGTkJRVmNzUzBGQlN5eEZRVUZGTEVWQlEzUkRMRU5CUVVNc1JVRkRSRU1zUlVGQllTeFBRVUZQTEZGQlFWRXNTMEZCU3l4SlFVRkpMRVZCUTNaRFF5eEZRVU5LTEVkQlFVbElMRWRCUVU5RkxFVkJRVmNzVDBGQlV5eEhRVUZMUlN4RlFVRlBTaXhGUVVGSkxGRkJRVkVzUlVGQlJ5eERRVU4wUkN4SlFVRk5hRUlzUlVGQlR5eERRVUZETEVWQlEyUnhRaXhIUVVGTlRDeEZRVUZKTEZOQlFWVXNRMEZCUTAwc1JVRkJUVU1zU1VGQlV5eERRVU0xUWtnc1JVRkJUMGNzUTBGQlNTeEhRVUZMUVN4RlFVRkxMRTFCUTNKQ2RrSXNSVUZCUzNWQ0xFVkJRVXNzUjBGQlJ5eEZRVUZKTEVkQlEzcENMRU5CUVVNc1JVRkRSRW9zUlVGQlZ5eFBRVUZQTEV0QlFVdHVRaXhEUVVGSkxFTkJReTlDTEUxQlJVbHRRaXhGUVVGWExFTkJRVU1zUlVGRGFFSXNUMEZCVnl4RFFVRkRXaXhGUVVGUlF5eERRVUZOTEVsQlFVdFZMRVZCUTNaQ1dDeEpRVUZYTEUxQlFWRkRMRWxCUVZjc2RVSkJSVGxDTEVOQlFVTlJMRWRCUVU5SExFVkJRVk1zUzBGQlMzaENMRWRCUVUxQkxFVkJRVWNzVjBGQlYyRXNRMEZCVFN4RFFVRkRMRWxCUTJwRVV5eEZRVUZOTEV0QlFVc3NVVUZCVVZZc1EwRkJUU3hKUVVGSlF5eERRVUZOTEVWQlFVVXNSVUZGTjBNc1QwRkJUMU1zUlVGQlRTeExRVUZMTzBGQlFVRXNRMEZCU1N4RFFVTXhRaXhEUVVOS0xFVkJRMEZ3UWl4SFFVRlhMRmxCUVdNc1EwRkJSU3hUUVVGVkxFZEJRVThzVVVGQlV5eExRVUZOTEVWQlF6TkVRU3hIUVVGWExGbEJRV01zUTBGQlJTeExRVUZOTEc5Q1FVRnhRaXhGUTNKTGRFUXNVMEZCVXpKQ0xFZEJRV05ETEVWQlFWRXNRMEZETTBJc1IwRkJTU3h6UWtGQmMwSXNTMEZCUzBFc1EwRkJUU3hGUVVGSExFTkJSWEJETEVsQlFVMURMRVZCUVUwc05rUkJSRVFzUzBGQlN5eFZRVUZWUkN4RFFVRk5MRU5CUXpKRExFZEJRek5GTEUxQlFVMHNTVUZCU1N4TlFVRk5ReXhEUVVGSExFTkJRM1pDTEVOQlEwRXNUVUZCVHl4RlFVTllMRU5CUTBFc1UwRkJVME1zUjBGQldVTXNSVUZCVFN4RFFVTjJRaXhKUVVGTlF5eEZRVUZWTEVsQlFVa3NTVUZEY0VJc1QwRkJRVU1zUjBGQlRVWXNSVUZCVFN4RFFVTlNMRTFCUVUxSExFVkJRVTFETEVWQlFVMHNRMEZEVmtFc1JVRkJTeXhSUVVOTVNDeEZRVUZSTEVsQlFVbEhMRVZCUVVzc1RVRkJUU3hEUVVNdlFpeERRVU5LTEVOQlFVTXNSVUZEVFVnc1EwRkRXQ3hEUVVWQkxGTkJRVk5KTEVkQlFXTkRMRVZCUVZGRExFVkJRVk1zUTBGRGNFTXNVVUZCVTBNc1JVRkJTU3hIUVVGVExFVkJRVVZCTEVWQlFVY3NRMEZEZGtJc1NVRkJUVU1zUlVGQlR5eEhRVUZIU0N4RFFVRk5MRWRCUVVkRkxFTkJRVU1zUjBGRE1VSXNSMEZCU1N4RFFVRkRSQ3hGUVVGUkxFbEJRVWxGTEVOQlFVa3NSVUZEYWtJc1QwRkJUMEVzUTBGRFppeERRVU5LTEVOQlEwRXNVMEZCVTBNc1IwRkJhMEpETEVWQlFVdE1MRVZCUVZFc1EwRkRjRU1zU1VGQlRVMHNSVUZCWlN4RFFVRkRMRVZCUTJoQ1F5eEZRVUZuUWl4SlFVRkpMRWxCUTNSQ1F5eEZRVUZqTEV0QlEyeENMRTFCUVU4c1EwRkRTQ3hUUVVGWFF5eEhRVUZYTEVOQlEyeENTQ3hGUVVGaExFdEJRVXRITEVOQlFVMHNSVUZEYmtKRUxFbEJRMFJCTEVWQlFXTm1MRWRCUVZsWkxFTkJRVWNzUjBGRGFrTXNTVUZCVFdRc1JVRkJVMUVzUjBGQlkwTXNSVUZCVVZFc1EwRkJWeXhGUVVOb1JDeFBRVUZCUVN4RlFVRlpMRWxCUVVscVFpeERRVUZOTEVWQlEyWkJMRU5CUTFnc1JVRk5RU3hYUVVGWkxFbEJRVTBzUTBGRFpDeFJRVUZYYTBJc1MwRkJWVWdzUlVGQll5eERRVU12UWl4SlFVRk5TU3hGUVVGTlNDeEZRVUZqTEVsQlFVbEZMRU5CUVUwc1JVRkRjRU1zUjBGQlNTeFBRVUZQUXl4SFFVRlJMRlZCUTJaQkxFVkJRVWtzVTBGRFNFTXNSVUZCVTBRc1JVRkJTU3hKUVVGSkxFZEJRVXRGTEVWQlFXRkdMRVZCUVVrc1NVRkJTU3hIUVVNMVEwRXNSVUZCU1N4TFFVRkxMRTlCUVZOQkxFVkJRVWtzVjBGRmNrSXNRMEZEUkN4SlFVRk5SeXhGUVVGUkxFbEJRVWtzVFVGQlRTdzBSRUZCTkVRc1JVRkRjRVlzVFVGQlFVRXNSVUZCVFN4UFFVRlRTaXhGUVVOVVNTeERRVU5XTEVOQlEwb3NRMEZEU2l4RlFVTkJMR05CUVVGT0xFTkJRMG9zUTBGRFNpeERRemxFUVN4VFFVRlRUeXhIUVVGaFF5eEZRVUZUUXl4RlFVRkxReXhGUVVGTFF5eEZRVUZMTEVOQlF6RkRMRWRCUVVsQkxFZEJRVThzVDBGQlQwRXNSMEZCVVN4VFFVTjBRaXhIUVVGSkxFMUJRVTBzVVVGQlVVRXNRMEZCUnl4RlFVTnFRaXhSUVVGVFF5eEZRVUZKTEVWQlFVZERMRVZCUVUxR0xFVkJRVWtzVDBGQlVVTXNSVUZCU1VNc1JVRkJTeXhGUVVGRlJDeEZRVUZITEVOQlF6VkRMRWxCUVUxRkxFVkJRVXRJTEVWQlFVbERMRU5CUVVNc1JVRkRWa2NzUlVGQlMxSXNSMEZCWVVNc1JVRkJVMGNzUlVGQlN5eFBRVUZQUXl4RFFVRkRMRVZCUVVkRkxFTkJRVVVzUlVGRkwwTkRMRWxCUVU4c1QwRkRVQ3hQUVVGUFNpeEZRVUZKUXl4RFFVRkRMRVZCUTFCSExFbEJRVTlFTEVsQlExcElMRVZCUVVsRExFTkJRVU1zUlVGQlNVY3NSVUZEYWtJc1UwRkZTMG9zWVVGQlpTeEpRVU53UWl4UlFVRlhTeXhMUVVGTExFMUJRVTBzUzBGQlMwd3NSVUZCU1N4TFFVRkxMRU5CUVVNc1JVRkJSeXhEUVVOd1F5eEpRVUZOUnl4RlFVRkxTQ3hGUVVGSkxFbEJRVWxMTEVOQlFVTXNSVUZEWkVRc1JVRkJTMUlzUjBGQllVTXNSVUZCVTBjc1JVRkJTMHNzUlVGQlIwWXNRMEZCUlN4RlFVTjJRME1zU1VGQlR5eFBRVU5RU2l4RlFVRkpMRTlCUVU5TExFTkJRVU1zUlVGRFVFUXNTVUZCVDBRc1IwRkRXa2dzUlVGQlNTeEpRVUZKU3l4RlFVRkhSQ3hEUVVGRkxFTkJRM0pDTEZOQlJVdEtMR0ZCUVdVc1NVRkRjRUlzVVVGQlYwY3NTMEZCVFN4TlFVRk5MRXRCUVV0SUxFTkJRVWNzUlVGQlJ5eERRVU01UWl4SlFVRk5TU3hGUVVGTFVpeEhRVUZoUXl4RlFVRlRSeXhGUVVGTFJ5eEZRVUZKUVN4RFFVRkZMRVZCUTNoRFF5eEpRVUZQTEU5QlExQktMRVZCUVVrc1QwRkJUMGNzUTBGQlJTeEZRVU5TUXl4SlFVRlBSQ3hKUVVOYVNDeEZRVUZKTEU5QlFVOUhMRU5CUVVVc1JVRkRZa2dzUlVGQlNTeEpRVUZKU1N4RFFVRkZMRVZCUld4Q0xFdEJSMEVzVVVGQlZ5eERRVUZEUXl4RlFVRkhSaXhEUVVGRkxFbEJRVXNzVDBGQlR5eFJRVUZSU0N4RFFVRkhMRVZCUVVjc1EwRkRka01zU1VGQlRVa3NSVUZCUzFJc1IwRkJZVU1zUlVGQlUwY3NSVUZCUzBzc1JVRkJSMFlzUTBGQlJTeEZRVU4yUTBNc1NVRkJUeXhQUVVOUUxFOUJRVTlLTEVWQlFVbExMRU5CUVVNc1JVRkRVRVFzU1VGQlQwUXNTVUZEV2tnc1JVRkJTVXNzUTBGQlF5eEZRVUZKUkN4RlFVTnFRaXhEUVVkU0xFOUJRVTlRTEVWQlFWRXNTMEZCUzBNc1JVRkJTME1zUlVGQlMwTXNRMEZCUnl4RFFVTnlReXhEUTNoRFFTeFRRVUZUVFN4SFFVRkxReXhGUVVGUFF5eEZRVUZMUXl4RlFVRkxMRU5CUlROQ0xFZEJRVWtzVFVGQlRTeFJRVUZSUml4RFFVRkxMRVZCUTI1Q0xFOUJRVTlCTEVWQlFVMHNTVUZCU1N4RFFVRkRSeXhGUVVGSFF5eEpRVUZOVEN4SFFVRkxTU3hGUVVGSExFOUJRVTlETEVOQlFVTXNSVUZCUjBZc1EwRkJSeXhEUVVGRExFVkJRM1JFTEVkQlFVbEdMRWRCUVZNc1QwRkJUMEVzUlVGQlRTeFJRVUZYTEZkQlFWa3NRMEZGTjBNc1IwRkJTU3hEUVVGRFJTeEhRVUZQTEVOQlFVTkhMRWRCUVZWTUxFTkJRVXNzUlVGRGVFSXNUMEZCVDBFc1JVRkJUU3hQUVVGUFF5eEZRVUZMUXl4RFFVRkhMRVZCUTJoRExFbEJRVTFKTEVWQlFVOHNRMEZCUlN4WFFVRlpMRVZCUVVjc1RVRkJUeXhGUVVGSExFbEJRVXNzVFVGQlZTeEZRVU4yUkVvc1JVRkJTU3hSUVVGUkxFbEJRVWxHTEVWQlFVOU5MRU5CUVVrc1JVRkRNMEpLTEVWQlFVa3NVMEZCVjBzc1IwRkJUeXhEUVVOc1FrUXNSVUZCU3l4SlFVRk5ReXhGUVVOWUxFOUJRVTlNTEVWQlFVa3NVVUZEWml4RlFVTkJMRWxCUVUxTExFVkJRVTFRTEVWQlFVMHNUMEZCVDBNc1JVRkJTME1zUTBGQlJ5eEZRVU5xUXl4UFFVRkpRU3hGUVVGSkxGVkJRMHBCTEVWQlFVa3NVMEZCVTBzc1EwRkJSeXhGUVVOaVFTeERRVU5ZTEVOQlEwRXNUMEZCU1N4UFFVRlBVQ3hIUVVGVkxGVkJRVmtzUlVGQlEwVXNSMEZCUVN4TlFVRkJRU3hGUVVGTExFMUJRelZDTEU5QlFVOUdMRU5CUVVzc1JVRkRhRUpCTEVOQlExZ3NRME01UWtFc1NVRkJUVkVzUjBGQlRpeExRVUZsTEVOQlExZ3NXVUZCV1VNc1JVRkJUU3hEUVVOa0xFOUJRVThzWlVGQlpTeExRVUZOUXl4SFFVRlhMRU5CUVVVc1RVRkJUMFFzUTBGQlN5eERRVUZETEVOQlF6RkVMRU5CUlVFc1QwRkJVU3hEUVVOS0xFbEJRVTFGTEVWQlFVOHNUMEZCVHl4UFFVRlBMRTlCUVU4c1pVRkJaU3hKUVVGSkxFVkJRVWNzVDBGQlR5d3dRa0ZCTUVJc1NVRkJTU3hEUVVGRExFVkJRemxHTEU5QlFVa3NTMEZCU3l4UlFVTk1RU3hGUVVGTExFMUJRVkVzUzBGQlN5eE5RVUZOTEUxQlFVMHNSMEZETTBKQkxFTkJRMWdzUTBGRlFTeExRVUZMUXl4RlFVRkxMRU5CUVVVc1UwRkJRVU1zUlVGQlZTeGpRVUZCUXl4RlFVRmxMRk5CUVVGRExFVkJRVlVzVVVGQlFVTXNRMEZCVVN4RlFVRkpMRU5CUVVNc1JVRkJSeXhEUVVNelJDeEhRVUZKTEVOQlFVTkRMRWRCUVZkTUxFTkJRVWNzUlVGRFppeE5RVUZOTEVsQlFVa3NWVUZCVlN4cFEwRkJhVU1zUlVGRGVrUXNTVUZCVFUwc1JVRkJUU3hEUVVOU0xGRkJRVk1zU1VGQlNTeEpRVU5pTEVsQlFVRk9MRVZCUTBFc1MwRkJUU3hIUVVOT0xGTkJRVlZETEVsQlFXRXNSMEZEZGtJc1lVRkJZeXhIUVVOa0xHTkJRV1VzVDBGQlQwTXNSMEZCYTBJc1UwRkJWMEVzUlVGQlowSXNSMEZEZGtVc1JVRkRUVXNzUlVGQlRVTXNSMEZCU3l4TFFVRk5MRWRCUVVsR0xFTkJRVWNzUlVGRE9VSXNSMEZCU1N4UFFVRlBTQ3hIUVVGaExGZEJRM0JDTEU5QlFWY3NRMEZCUlN4TlFVRkJUU3hGUVVGUExFbEJRVUZHTEVOQlFVa3NTVUZCUzBRc1JVRkJTU3hSUVVGUkxFOUJRVThzUlVGRE5VTklMRVZCUVZOSkxFVkJRVXRGTEVOQlFVc3NSVUZETTBJc1QwRkJUeXhQUVVGUFRDeEhRVUZaTEZkQlEzQkNUU3hIUVVGaFRpeEZRVUZUTEVOQlFVVXNSMEZCU1Vjc1EwRkJTU3hGUVVGSExFZEJRVWxCTEVOQlFVY3NSVUZETVVOQkxFTkJRMVlzUTBGRFNpeEZRemRDUVN4SlFVRk5TU3hIUVVGT0xHTkJRVzlDUXl4RlFVRlRMRU5CUTNwQ0xGbEJRVmxETEVWQlFWRXNRMEZEYUVJc1RVRkJUVU1zUlVGQlN5eEZRVU5ZTEV0QlFVc3NUMEZCVTBRc1JVRkRaQ3hQUVVGUExHVkJRV1VzUzBGQlRTeE5RVUZQTEVOQlF5OUNMRXRCUVUwc1EwRkRSaXhOUVVGTkxFbEJRVWtzVFVGQlRTdzRRa0ZCT0VJc1EwRkRiRVFzUTBGRFNpeERRVUZETEVOQlEwd3NRMEZMUVN4UlFVRlJSU3hGUVVGTExFTkJRMVFzU1VGQlNVTXNSVUZEU2l4UFFVRkJReXhIUVVGTlJpeEZRVUZMTEVOQlExQXNTMEZCVFN4RFFVRkRSeXhGUVVGTlF5eEpRVUZUTEVOQlEyeENMRWRCUVVsQkxFbEJRVk1zUzBGRFZDeFBRVUZQUml4SFFVRk5MRTFCUTJKRkxFVkJRVXNzVTBGQlZ5eExRVUZMTEZOQlEzSkNTQ3hGUVVGUlJ5eEZRVU5vUWl4RFFVTktMRU5CUVVNc1JVRkRUVWdzUTBGRFdDeERRVU5CTEU5QlFVOUpMRVZCUVUxRExFVkJRVXNzUTBGRFpDeEhRVUZKTEVOQlFVTkJMRVZCUTBRc1RVRkJUeXhEUVVGRkxFOUJRVkVzUzBGQlN5eE5RVUZQTEVWQlEycERMRWRCUVUwc1EwRkJSU3hSUVVGQlF5eEZRVUZUTEVsQlFVRlFMRVZCUVVzc1kwRkJRVkVzUTBGQll5eEZRVUZKUml4RlFVTnNRMUlzUlVGQlV5eExRVUZMTEZGQlFWRkZMRU5CUVVjc1JVRkRMMElzUjBGQlNTeERRVUZEUml4RlFVRlJMRU5CUTFRc1NVRkJUVmNzUlVGQlRTd3JSRUZCSzBRc1MwRkJTeXhOUVVGTkxFZEJRM1JHTEUxQlFVMHNTVUZCU1N4bFFVRmxRU3hEUVVGSExFTkJRMmhETEVOQlEwRXNTVUZCU1VNc1JVRkJUMGdzUlVGQlVTeEpRVUZKVkN4RFFVRk5MRVZCVHpkQ0xFZEJUa3RaTEVsQlJVUkRMRWRCUVV0aUxFVkJRVkVzUzBGQlRWRXNRMEZCUnl4RlFVTjBRa2tzUlVGQlQwZ3NSVUZCVVN4SlFVRkpWQ3hEUVVGTkxFZEJSM3BDTEVOQlFVTlpMRWRCUVZGQkxFVkJRVXNzVFVGQlVTeFBRVUZYTEVOQlEycERMRWxCUVUxRUxFVkJRVTBzZVVSQlExb3NUVUZCVFN4SlFVRkpMR1ZCUVdWQkxFTkJRVWNzUTBGRGFFTXNRMEZEUVN4SFFVRkpSQ3hIUVVGcFFpeEpRVU5xUWtVc1JVRkJTeXhQUVVGVExFVkJRMVpCTEVWQlFVc3NZVUZCWlN4SlFVTndRa0VzUlVGQlN5eFhRVUZoUlN4SFFVRmpXaXhGUVVGTFJpeEZRVUZSVXl4RFFVRlBMRWRCUTNCRVJ5eEZRVUZMTEUxQlFWRkJMRVZCUVVzc1YwRkJZVVlzUjBGQlpTeERRVU01UXl4SlFVRk5ReXhGUVVGTkxDdEVRVU5hTEUxQlFVMHNTVUZCU1N4bFFVRmxRU3hEUVVGSExFTkJRMmhETEVOQlJVb3NUMEZCVDBNc1JVRkJTeXhIUVVOb1FpeERRVU5CTEZOQlFWTktMRVZCUVV0UExFVkJRVmxETEVWQlFXTXNRMEZEY0VNc1NVRkJUVU1zUlVGQlRTeEpRVUZKTEV0QlFVc3NUVUZCVFN4SFFVTXpRaXhIUVVGSlZDeEZRVUZMTEVOQlJVd3NSMEZFUVZVc1IwRkJZeXhMUVVGTExFMUJRVTBzUlVGRGNrSldMRVZCUVVrc1VVRkJVU3hyUWtGQmIwSXNRMEZCUTBFc1JVRkJTU3hSUVVGUkxFbEJRVWtzUzBGQlN5eE5RVUZOTEVWQlFVY3NRMEZETDBRc1NVRkJUVWNzUlVGQlRTd3JSRUZCSzBRc1MwRkJTeXhOUVVGTkxFZEJRM1JHTEUxQlFVMHNTVUZCU1N4TlFVRk5RU3hEUVVGSExFTkJRM1pDTEVOQlEwRXNSMEZCU1Vnc1JVRkJTU3haUVVOS0xFMUJRVThzUjBGQlIxTXNRMEZCUnl4SFFVTnlRaXhEUVVOQkxFOUJRVTlCTEVOQlExZ3NRMEZEU2l4RlFVTkJMRk5CUVZOSUxFZEJRV05hTEVWQlFVdEpMRVZCUVUxSExFVkJRVk1zUTBGRGRrTXNSMEZCU1ZVc1IwRkJVV0lzUTBGQlNTeEZRVUZITEVOQlEyWXNTVUZCVFU0c1JVRkJVMDBzUlVGQlN5eFJRVUZSU2l4RFFVRkhMRVZCUTNwQ2EwSXNSVUZCVTFnc1IwRkJWMVFzUjBGQlZWTXNSVUZCVVN4SlFVRkpWQ3hEUVVGTkxFVkJRM1JFTEU5QlFVOXZRaXhGUVVGVFFTeEZRVUZQTEUxQlFWRkJMRVZCUVU4c1YwRkJZU3hEUVVOMlJDeFRRVU5UUXl4RlFVRmhaaXhEUVVGSkxFVkJRVWNzUTBGRGVrSXNTVUZCU1dkQ0xFVkJRVkVzUlVGRFdpeFJRVUZYUXl4TFFVRlJha0lzUlVGQlN5eE5RVUZQTEVOQlF6TkNMRWxCUVUxclFpeEZRVUZKVml4SFFVRmpXaXhGUVVGTGNVSXNSVUZCVFdRc1EwRkJUeXhGUVVOMFEyVXNSVUZCU1VZc1NVRkRTa0VzUlVGQlVVVXNSVUZEYUVJc1EwRkRRU3hQUVVGUFJpeERRVU5ZTEZOQlExTkhMRVZCUVU5dVFpeERRVUZKTEVWQlFVY3NRMEZEYmtJc1NVRkJUVzlDTEVWQlFVdGFMRWRCUVdOYUxFVkJRVXRKTEVWQlFVc3NTVUZCUzBjc1EwRkJUeXhGUVVONlEydENMRVZCUVV0aUxFZEJRV05hTEVWQlFVdEpMRVZCUVVzc1RVRkJUMGNzUTBGQlR5eEZRVU5xUkN4UFFVRlBMRXRCUVVzc1NVRkJTV2xDTEVWQlFVbERMRU5CUVVVc1EwRkRNVUlzUTBGRFFTeE5RVUZQTEVWQlExZ3NRME01UmtFc1NVRkJUVU1zUjBGQmFVSkRMRWRCUVZVc1EwRkJRMEVzUjBGQlZTeFBRVUZQUVN4SFFVRlZMRmxCUVdNc1QwRkJUMEVzUjBGQlZTeFRRVU4wUmtNc1JVRkJUaXhqUVVGeFFrTXNSVUZCVXl4RFFVTXhRaXhaUVVGWlJpeEZRVUZQTEVOQlEyWXNUVUZCVFVjc1JVRkJUU3hGUVVOYUxFdEJRVXNzVFVGQlVVZ3NRMEZEYWtJc1EwRkRRU3hQUVVGUFNTeEZRVUZMUXl4RlFVRkxMRU5CUTJJc1QwRkJUMEVzUjBGQlFTeE5RVUZCUVN4RlFVRkxMRXRCUVU4c1MwRkJTeXhOUVVGUlF5eEhRVUZMTEV0QlFVc3NUVUZCVDBZc1JVRkJTME1zUTBGQlJ5eERRVU0zUkN4RFFVTkJMRlZCUVZjc1EwRkRVQ3hQUVVGUExFOUJRVThzUzBGQlN5eExRVUZMTEVOQlF6VkNMRU5CUTBvc1JVRkRRVW9zUlVGQlR5eGhRVUZsTEdWQlEzUkNRU3hGUVVGUExHTkJRV2RDTEdkQ1FVTjJRa0VzUlVGQlR5eE5RVUZSTEZGQlEyWkJMRVZCUVU4c1lVRkJaU3hsUVVOMFFrRXNSVUZCVHl4aFFVRmxMR1ZEYWtKMFFpeEpRVUZOVFN4SFFVRnRRaXh4UWtGRGVrSXNVMEZCVTBNc1IwRkJZME1zUlVGQlQwTXNSVUZCVTBNc1JVRkJUU3hEUVV3M1F5eEpRVUZCUXl4RlFVMUpMRWRCUVVsR0xFVkJRVk1zUTBGRFZDeEpRVUZOUnl4RlFVRlJSaXhGUVVGTExFOUJRVTlITEVkQlFVdEJMRVZCUVVVc1RVRkJVVW9zUTBGQlR5eEZRVU14UTBzc1IwRkJVMGdzUlVGQlFVTXNSVUZCVFN4TFFVRkxReXhIUVVGTExFTkJRVU5CTEVWQlFVVXNUVUZCVFN4SlFVRjZRaXhMUVVGQlJpeEZRVUU0UWtNc1JVRkJUU3hEUVVGRExFVkJRM0JFTEVkQlFVa3NRMEZCUTBVc1JVRkRSQ3hOUVVGTkxFbEJRVWtzVFVGQlRTeFBRVUZQVEN4RFFVRlBMRmxCUVZrc1JVRkRPVU1zVDBGQlQwc3NRMEZEV0N4RFFVTkJMRTlCUVU5S0xFVkJRVXNzUzBGQlMwY3NSMEZCUlN4RFFXSjJRaXhKUVVGQlJpeEZRV0V3UWl4UlFVRkJRU3hGUVVGQlJTeEZRVUZGTEZkQlFVWXNXVUZCUVVZc1JVRkJRU3hMUVVGQlJTeEZRVUZoVEN4TFFVRlZMRU5CUVVOTExFVkJRVVVzVDBGQlRTeERRVU14UkN4RFFVTkJMRk5CUVZORkxFZEJRVmRRTEVWQlFVOURMRVZCUVZOUExFVkJRVXNzUTBGbWVrTXNTVUZCUVV3c1JVRkJRVTBzUlVGQlFVTXNSVUZyUWtrc1IwRkdTVU1zUjBGQlYxZ3NRMEZCU3l4SlFVTm9Ra0VzUlVGQlVVRXNSVUZCVFN4VlFVTmtXU3hGUVVGUFdpeERRVUZMTEVWQlExb3NUMEZCVDBFc1JVRkRXQ3hIUVVGSllTeEZRVUZQWWl4RFFVRkxMRVZCUVVjc1EwRkRaaXhKUVVGTll5eEhRVUZOVEN4SFFVRkJUaXhGUVVGQlN5eEZRVUZKTEU5QlFVOVBMRVZCUVVjc1IwRkJSU3hoUVVGb1FpeFpRVUZCVGl4RlFVRkJMRXRCUVVGT0xFVkJRVFpDU3l4RlFVRkpMRTlCUVZFc1MwRkJUVUVzUjBGRE0wUXNUMEZCUVUwc1JVRkJTU3hOUVVGTkxFdEJRVXRrTEVOQlFVc3NSVUZEWW1Nc1EwRkRXQ3hGUVVOSlpDeGhRVUZwUWl4UlFVTnFRa0VzWVVGQmFVSXNVVUZEYWtKQkxHRkJRV2xDTEZOQlEyaENMRTlCUVU4c1VVRkJWeXhoUVVGbFFTeGhRVUZwUWl4VlFVZHVSRUVzUlVGQlVVRXNSVUZCVFN4UlFVRlJMRWRCUlRGQ0xFZEJRVTBzUTBGQlJTeHpRa0ZCUVdkQ0xFVkJRWFZDTEZOQlFVRkRMRVZCUVZVc1UwRkJRVU1zUlVGQlZTeFBRVUZCUXl4RlFVRlJMR05CUVVGRExFTkJRV01zUlVGQlNWb3NSVUZIZWtWaExFVkJRMG9zUjBGQlNVd3NSMEZCZVVKb1FpeEhRVUZUTEU5QlFVOUJMRWRCUVZVc1UwRkJWU3hEUVVVM1JDeEhRVVJCY1VJc1JVRkJUVVFzUlVGQll5eEpRVUZKY0VJc1EwRkJTeXhGUVVONlFuRkNMRVZCUTBFc1QwRkJTMEVzUlVGQlNTeFRRVU5NUVN4RlFVRkpMRTlCUVZOS0xFVkJRVk5xUWl4RFFVRkxMRWRCUTNoQ0xFbEJRVWx6UWl4SFFVRk5SQ3hGUVVGSkxFMUJRVTBzUlVGSE0wSkJMRVZCUVUwc1EwRkJSU3hQUVVGUkxFdEJRVTBzUzBGQlRTeEpRVUZMTEVWQlEycERSQ3hGUVVGakxFbEJRVWx3UWl4RlFVRlBjVUlzUTBGQlJ5eERRVVZ3UXl4RFFVTkpjRUlzUjBGQlFTeE5RVUZCUVN4RlFVRlRMRmRCUVZjc1VVRkRjRUpCTEVWQlFWVklMRWRCUVcxQ1J5eEZRVUZSTEUxQlFVMHNRMEZCUXl4SFFVTm9SQ3hKUVVGSlN5eEZRVUZUVUN4SFFVRmpReXhGUVVGUFF5eEZRVUZUYTBJc1JVRkJUeXhKUVVGSkxFVkJRM1JFTEVkQlFVa3NRMEZCUTJJc1JVRkJVU3hEUVV0VUxFZEJTa2xPTEVkQlFWTXNUMEZCVDBFc1JVRkJUU3hSUVVGWExHRkJSV3BEUVN4RlFVRlJRU3hGUVVGTkxFOUJRVThzUjBGRmNrSXNRMEZCUTBFc1IwRkJVeXhQUVVGUFFTeEhRVUZWTEZOQlFWVXNRMEZEY2tNc1NVRkJUWFZDTEVWQlFVOHNTVUZCU1VNc1JVRkJUM2hDTEVOQlFVc3NSVUZETjBJc1QwRkJTWEZDTEVsQlEwRkJMRVZCUVVrc1MwRkJUMFVzUjBGRFVrRXNRMEZEV0N4RFFVTkJha0lzUlVGRFNVNHNZVUZCYVVJc1NVRkRXRzFDTEVWQlFVOUtMRVZCUVVjc1JVRkRWaXhQUVVGUExGbEJRVmtzVDBGQlQyWXNRMEZCU3l4RlFVTXpRbTFDTEVWQlFVOU5MRVZCUVVjc1JVRkRWazRzUlVGQlQwb3NSVUZCUnl4RFFVTTFRaXhEUVVOSlJ5eEpRVU5CUVN4RlFVRlRXaXhEUVVGTkxFVkJRMllzVDBGQlQwVXNSVUZCU1N4VlFVVm1MRWxCUVUxbExFVkJRVTlxUWl4SFFVRkJMRTFCUVVGQkxFVkJRVkVzVjBGRFprRXNSVUZCVHl4WFFVRlhSU3hGUVVGSkxFOUJRVkZTTEVWQlFVOVJMRU5CUVVjc1JVRkRlRU1zVVVGQlQwVXNSVUZCUVVvc1IwRkJRU3haUVVGQlFTeEZRVUZSTEZsQlFWSXNXVUZCUVVrc1JVRkJiVUlzVDBGQlV5eFhRVU12UWtvc1JVRkJUeXhWUVVGVkxFdEJRVXRGTEVWQlFVa3NUMEZCVVZJc1JVRkJUMUVzUTBGQlJ5eEZRVU0xUXl4SlFVRkpaMElzUlVGQlQzaENMRU5CUVVzc1JVRkRNVUlzVDBGQlNVTXNSVUZEUVhOQ0xFVkJRVXNzU1VGQlRYUkNMRVZCUTB4TExFVkJRVThzVlVGRFltbENMRVZCUVVzc1NVRkJUV3BDTEVWQlFVOHNTMEZEYkVKbExFbEJRMEZCTEVWQlFVa3NTMEZCVDBVc1IwRkRVa0VzUTBGRFdDeERRMnhHUVN4VFFVRlRSeXhIUVVGdFFrTXNSVUZCVVVNc1JVRkJUVU1zUlVGQlR5eERRVU0zUXl4SlFVRkpReXhGUVVGSlJDeEZRVU5TTEZGQlFWTkZMRVZCUVVsSUxFVkJRVXNzVDBGQlV5eEZRVUZIUnl4SFFVRkxMRVZCUVVjc1JVRkJSVUVzUlVGQlJ5eERRVU4yUXl4SlFVRk5ReXhGUVVGSlNpeEZRVUZMUnl4RFFVRkRMRVZCUTJoQ0xFZEJRVWtzVDBGQlQwTXNSMEZCVFN4VlFVRlpMRTlCUVU4c1ZVRkJWVUVzUTBGQlF5eEhRVUZMUVN4SFFVRkxMRVZCUVVjc1EwRkRlRVFzU1VGQlRVTXNSVUZCU1N4RFFVRkRMRVZCUTFoQkxFVkJRVVZFTEVOQlFVTXNSVUZCU1VZc1JVRkRVRUVzUlVGQlNVY3NRMEZEVWl4TlFVVkpTQ3hGUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTkZMRVZCUVVkR0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlJUVkNMRU5CUTBFc1QwRkJUMGtzUjBGQlYwb3NSVUZCUnl4UFFVRlhMRU5CUXpWQ0xITkNRVUYxUWl4SFFVTjJRaXhqUVVGbExFZEJRMllzVTBGQlZTeEpRVUZOTEVOQlExb3NUVUZCVFN4SlFVRkpMRTFCUVUwc09FTkJRVGhETEVOQlEyeEZMRVZCUTBFc1QwRkJRVWdzUlVGRFFTeGpRVUZsTEVsQlFVa3NSMEZEZGtJc1EwRkJReXhEUVVOTUxFTkJSMEVzU1VGQlRWRXNSMEZCWlZBc1IwRkJVMEVzUjBGQlVTeE5RVU5xUXl4UFFVRlBRU3hIUVVGVExGVkJRVmtzUTBGQlF5eERRVUZEUVN4RlFVRkxMRTlCUVU4c1VVRkJVU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlF6VkVVU3hIUVVGT0xHTkJRWGxDUXl4RlFVRlRMRU5CUXpsQ0xGbEJRVmxETEVWQlFVMVlMRVZCUVZFc1EwRkRkRUlzVFVGQlRWY3NRMEZCU1N4RlFVTldMRTlCUVU4c1pVRkJaU3hMUVVGTkxGTkJRVlVzUTBGRGJFTXNUVUZCVDFnc1JVRkRVQ3hoUVVGakxFZEJRMlFzVjBGQldTeEhRVU5hTEZOQlFWVXNSVUZEWkN4RFFVRkRMRU5CUTB3c1EwRk5RU3hOUVVGTlFTeEZRVUZSTEVOQlExWXNTVUZCVFZrc1JVRkJUeXhQUVVGUExFOUJRVThzVDBGQlR5eGxRVUZsTEVsQlFVa3NSVUZCUnl4UFFVRlBMREJDUVVFd1FpeEpRVUZKTEVOQlFVTXNSVUZET1VZc1QwRkJTVm9zU1VGRFFWa3NSVUZCU3l4UFFVRlRXaXhIUVVOc1Fsa3NSVUZCU3l4TlFVRlJRU3hGUVVGTExFMUJRVTBzU1VGQlNVTXNSMEZCVFVNc1JVRkJUMFFzUTBGQlJTeEhRVUZMUlN4RlFVRlBSaXhEUVVGRkxFVkJRVWxCTEVWQlFVY3NUVUZCVFdJc1EwRkJUU3hGUVVGSllTeERRVUZGTEVWQlF6bEZMRXRCUVVzc1VVRkRURVFzUlVGQlN5eE5RVUZSTEV0QlFVc3NUVUZCVFN4TlFVRk5MRWRCUXpOQ1FTeERRVU5ZTEVOQlRVRXNUVUZCVFZnc1JVRkJUVU1zUlVGQlR5eERRVU5tTEVkQlFVbE5MRWRCUVZsUUxFTkJRVWtzUlVGRGFFSXNTMEZCU3l4SlFVRkpReXhEUVVGTExFMUJRMklzUTBGRFJDeEhRVUZOTEVOQlFVTmpMRVZCUVVzc1IwRkJSME1zUTBGQlNTeEZRVUZKYUVJc1JVRkRha0pwUWl4RlFVRlBMRXRCUVVzc1NVRkJTVVlzUlVGQlN5eEZRVUZKTEVWQlF5OUNMRWRCUVVsSExFVkJRV0ZFTEVOQlFVa3NSVUZEYWtKQkxFVkJRVXNzVFVGQlRVUXNSVUZCVFdZc1EwRkJTeXhWUVVOcVFtZENMRWxCUVZNc1VVRkJZU3hMUVVGTExFOUJRMmhETEV0QlFVc3NTVUZCU1VZc1JVRkJTMnBDTEVkQlFXMUNMRXRCUVVzc1QwRkJVV3RDTEVWQlFVMW1MRU5CUVVzc1EwRkJReXhOUVVVeFJDeFBRVUZOTEVsQlFVa3NUVUZCVFN3clFrRkJLMEpqTEVOQlFVY3NjVUpCUVhGQ1F5eERRVUZKTEVWQlFVVXNRMEZEY2tZc1EwRkRTaXhEUVV0QkxGTkJRVk5vUWl4RlFVRk5MRU5CUTFnc1IwRkJUU3hEUVVGRFpTeEZRVUZMTEVkQlFVZERMRU5CUVVrc1JVRkJTV2hDTEVWQlEzWkNMRWRCUVVsblFpeEZRVUZMTEZOQlFWY3NSVUZEYUVJc1QwRkJUeXhMUVVGTExFOUJRVTlFTEVOQlFVY3NSVUZETVVJc1NVRkJUVVVzUlVGQlR5eExRVUZMTEVsQlFVbEdMRVZCUVVzc1JVRkJTU3hGUVVNdlFpeEhRVUZKUnl4RlFVRmhSQ3hEUVVGSkxFVkJRMnBDTEU5QlFVOUJMRVZCUVVzc1UwRkJVMFFzUTBGQlNTeEZRVVY2UWl4TlFVRk5MRWxCUVVrc1RVRkJUU3dyUWtGQkswSkVMRU5CUVVjc2NVSkJRWEZDUXl4RFFVRkpMRVZCUVVVc1EwRkRja1lzUTBGTlFTeE5RVUZOYUVJc1JVRkJUVzFDTEVWQlFWa3NRMEZEY0VJc1IwRkJUU3hEUVVGRFNpeEZRVUZMTEVkQlFVZERMRU5CUVVrc1JVRkJTV2hDTEVWQlEycENhVUlzUlVGQlR5eExRVUZMTEVsQlFVbEdMRVZCUVVzc1JVRkJTU3hGUVVNdlFpeFBRVUZKUXl4RlFVRkxMRk5CUVZjc1JVRkRWQ3hEUVVGRFJ5eEhRVUZqUXl4RlFVRlRTQ3hEUVVGSkxFVkJRVWxCTEVWQlFVc3NUVUZCVVVFc1JVRkZOME5ETEVWQlFXRkVMRU5CUVVrc1JVRkJTVUVzUlVGQlN5eE5RVUZOUkN4RlFVRk5SeXhEUVVGVkxFVkJRVWtzVFVGRGJrVXNRMEZEUVN4cFFrRkJhVUpGTEVWQlFXRXNRMEZETVVJc1QwRkJUeXhMUVVGTExFMUJRVTBzVFVGQlRVb3NSMEZCVVN4RFFVTTFRaXhIUVVGSkxFTkJRVU5JTEVWQlFVOUhMRU5CUVVrc1JVRkRXaXhOUVVGUExFZEJRMWdzU1VGQlRVc3NSVUZCU1V3c1JVRkJTeXhOUVVObUxFOUJRVkZMTEVkQlFVc3NUVUZEVWtRc1IwRkRSMFFzUlVGQlUwVXNRMEZCUXl4SFFVTldRU3hGUVVGRkxFOUJRVk1zVFVGRFdDeERRVUZEUVN4RlFVRkZMR1ZCUTBnc1EwRkJRMEVzUlVGQlJTeFRRVU5JTEVOQlFVTkJMRVZCUVVVc1IwRkRaaXhEUVVGRExFTkJRMHdzUTBGSlFTeE5RVUZOZEVJc1JVRkJUU3hEUVVOU0xFZEJRVTBzUTBGQlEyVXNSVUZCU3l4SFFVRkhReXhEUVVGSkxFVkJRVWxvUWl4RlFVTjJRaXhIUVVGSlowSXNSVUZCU3l4VFFVRlhMRVZCUTJoQ0xFOUJRVThzUzBGQlN5eEpRVUZKUkN4RFFVRkhMRVZCUTNaQ0xFbEJRVTFGTEVWQlFVOHNTMEZCU3l4SlFVRkpSaXhGUVVGTExFVkJRVWtzUlVGREwwSXNUMEZCVDBjc1JVRkJZVVFzUTBGQlNTeEZRVUZKUVN4RlFVRkxMRTFCUVUxRUxFTkJRVWtzUlVGQlNTeEZRVU51UkN4RFFVdEJMRTFCUVUxb1FpeEZRVUZOUXl4RlFVRlBMRU5CUTJZc1IwRkJUU3hEUVVGRFl5eEZRVUZMTEVkQlFVZERMRU5CUVVrc1JVRkJTV2hDTEVWQlEzWkNMRWRCUVVsblFpeEZRVUZMTEZOQlFWY3NSVUZEYUVJc1MwRkJTeXhKUVVGSlJDeEZRVUZMWkN4RFFVRkxMRTFCUld4Q0xFTkJRMFFzU1VGQlRXZENMRVZCUVU4c1MwRkJTeXhKUVVGSlJpeEZRVUZMTEVWQlFVa3NSVUZETDBJc1IwRkJTVWNzUlVGQllVUXNRMEZCU1N4RlFVTnFRa0VzUlVGQlN5eE5RVUZOUkN4RlFVRk5aaXhEUVVGTExGVkJRMnBDWjBJc1NVRkJVeXhSUVVGaExFdEJRVXNzVDBGRGFFTXNTMEZCU3l4SlFVRkpSaXhGUVVGTGFrSXNSMEZCYlVJc1MwRkJTeXhQUVVGUmEwSXNSVUZCVFdZc1EwRkJTeXhEUVVGRExFMUJSVEZFTEU5QlFVMHNTVUZCU1N4TlFVRk5MQ3RDUVVFclFtTXNRMEZCUnl4eFFrRkJjVUpETEVOQlFVa3NSVUZCUlN4RFFVTnlSaXhEUVVOS0xFTkJRMG9zUlVONlNVRXNTVUZCVFU4c1IwRkJiMEpETEVkQlFWRkJMRVZCUVVrc1VVRkJVU3hyUWtGQmJVSXNSMEZCUnl4RlFVTndSU3hUUVVGVFF5eEhRVUZqUXl4RlFVRlRReXhGUVVGUkxFTkJRM0JETEUxQlFVa3NVVUZCVVN4TFFVRkxSQ3hEUVVGUExFVkJRMkpCTEVWQlFWRXNWVUZCVlN4RFFVRkRMRVZCUTNaQ1F5eEZRVUZUUkN4RlFVRlJMRkZCUVZFc1lVRkJZME1zUTBGQlRTeEZRVUZKUkN4RFFVTTFSQ3hEUVVOQkxFbEJRVTFGTEVkQlFXTXNRMEZCUTBvc1JVRkJTMGNzUlVGQlVVUXNTVUZCV1VZc1JVRkJTU3hUUVVGVE8wRkJRVUVzUTBGQlNTeEZRVU42UkVNc1IwRkJZME1zUlVGQlUwTXNRMEZCVFN4RlFVTTNRa1FzUlVGQlVTeFRRVUZUTzBGQlFVRXNRMEZCU1N4RlFVTnFRanRCUVVGQkxFVkJRVTlFTEVkQlFXTkRMRVZCUVZORExFTkJRVTBzUjBGRGJrTklMRVZCUVVrc1UwRkJVeXhIUVVGSExFVkJRVWtzUjBGQlN5eExRVUZQUlN4RlEycENNME1zU1VGQlRVY3NSMEZCV1N4UFFVTmFReXhIUVVGaExGRkJRMkpETEVkQlFXTXNVMEZOY0VJc1UwRkJVME1zUjBGQlkwTXNSVUZCVFVNc1JVRkJVVU1zUlVGQlR5eFBRVUZSTEVOQlFVVXNZMEZCUVVNc1JVRkJaU3hWUVVGQlF5eEZRVUZaTEVkQlFVa3NaMEpCUVVGRExFVkJRV3RDTEVkQlFVa3NUMEZCUVVNc1JVRkJVU3hYUVVGQlF5eERRVUZYTEVWQlFVa3NRMEZCUXl4RlFVRkhMRU5CUTJ4SkxFZEJRVWtzUTBGQlEwZ3NSMEZCWVVFc1JVRkJXU3hGUVVNeFFpeFBRVUZQU2l4RlFVTlFTU3hGUVVGWlF5eEpRVU5hUVN4RlFVRnJRaXhIUVVOMFFpeEpRVUZOUnl4RlFVRlZMRXRCUVVzc1NVRkJTU3hGUVVGSlNDeEZRVUZwUWl4RlFVRkpSQ3hGUVVGWlNDeEZRVUZQTEUxQlFVMHNSVUZETTBVc1IwRkJTVVFzUlVGQlN5eFJRVUZWVVN4RlFVTm1MRTlCUVU5U0xFVkJRMWdzU1VGQlRWTXNSVUZCVVN4RFFVRkRMRVZCUTFSRExFVkJRV1VzUTBGQlF5eEZRVU5zUWtNc1JVRkJUVkFzUlVGQldVZ3NSVUZCVHl4UFFVTjZRaXhQUVVGUFJTeEhRVUZyUWl4WFFVTnlRa0VzUlVGQlowSkRMRVZCUVZrc1MwRkJTeXhKUVVGSkxFVkJRVWRETEVOQlFXVXNSVUZEZGtSSkxFVkJRVTBzUzBGQlN5eERRVUZETEVWQlJWcEZMRVZCUVUxUUxFVkJRVmxFTEVkQlJURkNMRWxCUVVsVExFVkJRMEZETEVWQlEwRkRMRVZCUVZjc1IwRkRXRU1zUlVGQlNTeEhRVU5LUXl4RlFVRlhMRWRCUTFoRExFVkJRVk1zUjBGRFZHWXNTVUZCVTB3c1MwRkRWR3RDTEVWQlFVbEhMRWRCUVhsQ2JFSXNSVUZCVFdVc1JVRkJSMlFzUlVGQlR5eE5RVUZOTEVWQlF5OURZeXhKUVVGTkxFdEJRMDVLTEVWQlFVMUpMRVZCUVVsUUxFbEJSV3hDTEZGQlFWTlhMRVZCUVV0QkxFVkJRVXR1UWl4RlFVRk5aU3hIUVVGTExFTkJRVVVzUjBGQlN5eERRVU5xUXl4SFFVRkpZaXhKUVVGVFNpeEpRVUZsY1VJc1NVRkJUeXhMUVVGTkxFTkJSWEpETEU5QlJFRklMRVZCUVZkRUxFVkJRMGhtTEVWQlFVdGxMRVZCUVVrc1EwRkJReXhGUVVGSExFTkJRMnBDTEVsQlFVc3NTVUZEUkVFc1IwRkJTeXhGUVVOTUxFMUJRMG9zU1VGQlN5eEpRVU5FUVN4SFFVRkxMRVZCUTB3c1RVRkRTaXhKUVVGTExFbEJRMFJCTEVkQlFVc3NSVUZEVEN4TlFVTktMRkZCUTBsQkxFZEJRVXNzUTBGRFlpeERRVU5CUlN4RlFVRlRSaXhEUVVOaUxFTkJRMEVzUjBGQlNVa3NTVUZCVHp0QlFVRkJMRVZCUTBocVFpeEpRVUZUVEN4TFFVTlVhMElzUlVGQlNVY3NSMEZCZVVKc1FpeEZRVUZOWlN4RlFVRkhaQ3hGUVVGUExFMUJRVTBzUjBGRGRrUlZMRVZCUVUxSkxFVkJRVWxrTEVWQlFVOHNUMEZCVTA4c1JVRkRNVUpKTEVWQlFWRXNWMEZGVUN4RFFVTkVMRWRCUVVsUExFbEJRVThzUzBGRFVFNHNSMEZEUVVFc1NVRkJVeXhMUVVOVVFTeEpRVUZUTzBGQlFVRXNSMEZEVkVFc1NVRkJVeXhKUVVGTkxFTkJSV1lzU1VGQlRVOHNSVUZCVDNCQ0xFVkJRVXRsTEVWQlFVa3NRMEZCUXl4RlFVTnVRa3NzUjBGQlVVRXNTVUZCVXl4TFFVRlBRU3hKUVVGVE8wRkJRVUVzUjBGQlVVRXNTVUZCVXl4TlFVTnNSRklzUlVGQlVVY3NSVUZEYUVJc1EwRkRRU3hIUVVGSlFTeEhRVUZMU2l4RlFVTk1MRWRCUVVsRExFVkJRMEZJTEVWQlFVMHNTMEZCUzBjc1EwRkJTeXhGUVVOb1FrUXNSVUZCVFVNc1JVRkJVVW9zUlVGRFpFa3NSVUZCVVN4bFFVVklWaXhKUVVGVFNpeEhRVUZoTEVOQlJUTkNMRXRCUVU5bExFbEJRVk1zUzBGQlQwRXNTVUZCVXl4TFFVTTFRa0VzUlVGQlQwMHNSVUZEVUVFc1JVRkJTMjVDTEVWQlFVMWxMRWRCUVVzc1EwRkJSU3hGUVVOc1FrUXNSVUZCVnl4SFFVZG1MRWxCUVUxUExFVkJRVWxPTEVWQlFVbEZMRVZCUVZNc1JVRkJTVVlzUlVGQlNTeEZRVUZKUXl4RlFVRlhMRVZCUlRsRExFZEJRVWxPTEVWQlFXRlhMRU5CUVVNc1JVRkRaQ3hQUVVGUGNrSXNSVUZEV0ZNc1JVRkJUU3hMUVVGTFdTeERRVUZETEVWQlExcFlMRVZCUVdGWExFTkJRVU1zUlVGQlNTeEhRVU5zUWxZc1JVRkJUVlVzUlVGQlNXSXNSVUZEVmtrc1JVRkJVU3hOUVVOYUxFMUJSVWxGTEVWQlFWY3NSVUZIZGtJc1EwRkRRVVFzUlVGQlQwMHNRMEZEV0N4RFFVZEJMRWRCUmtsTUxFZEJRVmxRTEVkQlExcEJMRVZCUVZjc1JVRkRXRVVzUlVGQlRTeFRRVUZYTEVWQlEycENMRTlCUVU5VUxFVkJRMUJOTEVkQlEwRkJMRVZCUVU4c1JVRkRXQ3hKUVVGSlowSXNSVUZCVFhSQ0xFVkJRVXNzVFVGQlRTeEZRVUZIVXl4RlFVRk5MRU5CUVVNc1EwRkJReXhGUVVOb1F5eFJRVUZUVFN4RlFVRkpMRVZCUVVkQkxFVkJRVWxPTEVWQlFVMHNUMEZCVVN4RlFVRkZUU3hGUVVGSExFTkJRMjVETEVsQlFVMVJMRVZCUVU5a0xFVkJRVTFOTEVOQlFVTXNSVUZEWkVvc1JVRkJUVVlzUlVGQlRVMHNSVUZCU1N4RFFVRkRMRWRCUVV0bUxFVkJRVXNzVDBGRE4wSjFRaXhKUVVGVExFVkJRMVJFTEVWQlFVMDdRVUZCUVN4RlFVRkxja0lzUTBGQlRTeEhRVUZIUkN4RlFVRkxMRTFCUVUwc1JVRkJSMWNzUTBGQlJ5eERRVUZETEVsQlJXeERWQ3hKUVVGVFNpeEpRVUZsV1N4RlFVRmhZU3hEUVVGSkxFbEJRM3BEUkN4SFFVRlBMRWRCUVVkMFFpeEZRVUZMZFVJc1EwRkJTU3hEUVVGRExFMUJRM2hDUkN4SFFVRlBPMEZCUVVFc1JVRkJTM0pDTEVOQlFVMHNSMEZCUjBRc1JVRkJTeXhOUVVGTmRVSXNSVUZCVHl4RlFVRkhXaXhEUVVGSExFTkJRVU1zUjBGRmRFUXNRMEZEUVN4UFFVRlBWeXhEUVVOWUxFTkJTMEVzVTBGQlUwb3NSMEZCZVVKc1FpeEZRVUZOWlN4RlFVRkhaQ3hGUVVGUkxFTkJReTlETEVsQlFVbFZMRVZCUVUxSkxFVkJRMDVUTEVWQlFWRlVMRVZCUVVrc1JVRkRXa2tzUlVGQlMyNUNMRVZCUVV0M1FpeERRVUZMTEVWQlEyNUNMRXRCUVU5TUxFbEJRVThzUzBGQlQwRXNTVUZCVHl4TFFVTjRRaXhIUVVGSlNpeEZRVUZKVXl4RlFVRlJka0lzUlVGRFdtdENMRVZCUVV0dVFpeEZRVUZMTEVWQlFVVmxMRU5CUVVNc1RVRkZXaXhEUVVORUxFZEJRMGxKTEVWQlFVdHVRaXhGUVVGTExFVkJRVVZsTEVOQlFVTXNVVUZEVWtrc1IwRkJUVUVzU1VGQlR6dEJRVUZCTEVkQlEzUkNVaXhGUVVGTlNTeEZRVU5PVXl4RlFVRlJWQ3hGUVVGSkxFVkJRMXBKTEVWQlFVdHVRaXhGUVVGTGQwSXNRMEZCU3l4RFFVTnVRaXhEUVVWS0xFOUJRVTlpTEVOQlExZ3NRME0xU1VFc1NVRkJUV01zUjBGQmFVSXNRMEZCUTBNc1JVRkJTME1zUzBGQllTeERRVU4wUXl4alFVRmxRU3hGUVVGVlJDeEZRVUZKTEU5QlFVOHNUMEZCVTBFc1JVRkJTU3hqUVVOcVJDeFZRVUZYUVN4RlFVRkpMRkZCUVZFc1ZVRkRka0lzWjBKQlFXbENRU3hGUVVGSkxGRkJRVkVzWlVGRGFrTXNSMEZIVFVVc1IwRkJNRUpETEVkQlFWRXNiVUpCUVcxQ0xFdEJRVXRCTEVOQlFVY3NSVUZEYmtVc1UwRkJVME1zUjBGQmIwSkVMRVZCUVV0RkxFVkJRVmRETEVWQlFXTXNRMEZEZGtRc1IwRkJTU3hEUVVGRFJDeEhRVUZoUVN4RlFVRlpMRVZCUXpGQ0xFMUJRVThzUjBGRFdDeEpRVUZOUlN4RlFVRlJSaXhGUVVGWlF5eEZRVU53UWtVc1JVRkJVMHdzUlVGQlNTeFBRVU51UWl4SFFVRkpTeXhIUVVGVlJDeEZRVU5XTEUxQlFVOHNSMEZEV0N4UlFVRlRMRVZCUVVrc1JVRkJSMFVzUlVGQlVTeEZRVUZITEVWQlFVbEVMRVZCUVZFc1JVRkJSU3hGUVVOeVF5eEhRVUZKVEN4RlFVRkpMRU5CUVVNc1NVRkJUVHRCUVVGQkxFVkJRVTBzUTBGRGFrSXNSMEZCU1N4RlFVRkpUU3hGUVVGUlJpeEZRVU5hTEUxQlFVOHNSMEZGV0N4SFFVUkJSU3hGUVVGUkxFVkJRVWtzUlVGRFVrUXNSVUZCVTBNc1IwRkJVMFlzUlVGRGJFSXNUVUZCVHl4RlFVTm1MRU5CUlVvc1RVRkJUeXhGUVVOWUxFTkJRMEVzVTBGQlUwY3NSMEZCYlVKRExFVkJRVTlZTEVWQlFVc3NRMEZEY0VNc1NVRkJUVmtzUlVGQlR5eExRVUZMTEZWQlFWVkVMRU5CUVVzc1JVRkRha01zUjBGQlNWZ3NSVUZCU1N4UlFVRlJMRzFDUVVOYUxFOUJRVTlaTEVWQlExZ3NSMEZCVFN4RFFVRkZMRmxCUVVGRExFTkJRVmtzUlVGQlNXSXNSVUZEYkVKakxFVkJRWEZDWkN4RlFVRkpMRkZCUVZFc0swSkJRMnBEWlN4RlFVRlRaaXhGUVVGSkxGTkJRVmRGTEVkQlFYVkNVeXhEUVVGTExFVkJRVWtzUzBGQlR5eEpRVU5xUlZJc1JVRkJUU3hIUVVOT1RTeEZRVUZSTEVWQlExb3NVVUZCVTA4c1JVRkJTU3hGUVVGSFF5eEZRVUZMVEN4RlFVRkxTU3hEUVVGRExFVkJRVWRETEVWQlFVbEJMRVZCUVV0TUxFVkJRVXNzUlVGQlJVa3NRMEZCUXl4RlFWRXpReXhIUVZCSlF5eEpRVUZQTEV0QlFVOU1MRVZCUVV0SkxFVkJRVWtzUTBGQlF5eEpRVUZOTEUxQlFWRktMRVZCUVV0SkxFVkJRVWtzUTBGQlF5eEpRVUZOTEUxQlJYUkVZaXhIUVVGUFV5eEZRVUZMTEUxQlFVMUlMRVZCUVU5UExFTkJRVU1zUlVGQlNTeE5RVU01UWtFc1IwRkJTeXhGUVVOTVVDeEZRVUZSVHl4RlFVTlNReXhGUVVGTExFMUJSVXhCTEVsQlFVOHNTMEZEVUN4UFFVRlJUQ3hGUVVGTFNTeEZRVUZKTEVOQlFVTXNSVUZCUnl4RFFVTnFRaXhKUVVGTExFbEJRMFFzUTBGRFNXSXNSMEZCVDFNc1JVRkJTeXhOUVVGTlNDeEZRVUZQVHl4RFFVRkRMRVZCUXpGQ0xFbEJRVTFGTEVWQlFVOU9MRVZCUVVzc1QwRkJUMGtzUlVGQlNTeEZRVUZITEVOQlFVTXNSVUZEYWtNc1QwRkJVVVVzUlVGQlRTeERRVU5XTEVsQlFVc3NUMEZEUkdZc1IwRkJUeXhOUVVOUUxFMUJRMG9zU1VGQlN5eFBRVU5FUVN4SFFVRlBMRTFCUTFBc1RVRkRTaXhKUVVGTExFOUJRMFJCTEVkQlFVOHNUVUZEVUN4TlFVTktMRWxCUVVzc1QwRkRSRUVzUjBGQlR5eE5RVU5RTEUxQlEwb3NTVUZCU3l4UFFVTkVRU3hIUVVGUExFMUJRMUFzVFVGRFNpeEpRVUZMTEU5QlEwUkJMRWRCUVU4c1RVRkRVQ3hOUVVOS0xFbEJRVXNzVDBGRFJFRXNSMEZCVHl4TlFVTlFMRTFCUTBvc1NVRkJTeXhQUVVORVFTeEhRVUZQTEUxQlExQXNUVUZEU2l4UlFVTlJaU3hGUVVGTExFOUJRVThzUlVGQlJ5eERRVUZETEVsQlFVMHNTMEZEZEVKbUxFZEJRVThzVFVGQlVXVXNSVUZCU3l4UFFVRlBMRU5CUVVNc1JVRkZOVUptTEVkQlFVOVRMRVZCUVVzc1QwRkJUMGtzUlVGQlJ5eERRVUZETEVOQlEyNURMRU5CUTBGQkxFZEJRVXNzUlVGRFRGQXNSVUZCVVU4c1JVRkJTU3hEUVVOb1FpeERRVU5CTEUxQlEwb3NTVUZCU3l4SlFVTkVMRWRCUVVsSUxFZEJRMEZFTEVWQlFVdEpMRVZCUVVrc1EwRkJReXhKUVVGTkxFdEJRMmhDU2l4RlFVRkxMRTlCUVZORkxFVkJRMlJGTEVkQlFVc3NUVUZGU2l4RFFVZEVMRWxCUkVGaUxFZEJRVTlUTEVWQlFVc3NUVUZCVFVnc1JVRkJUMDhzUTBGQlF5eEZRVUZKTzBGQlFVRTdRVUZCUVN4RlFVTjJRa29zUlVGQlMwa3NSVUZCU1N4RFFVRkRMRWxCUVUwc1RVRkRia0pLTEVWQlFVdEpMRVZCUVVrc1EwRkJReXhKUVVGTkxFdEJRMmhDU2l4RlFVRkxTU3hGUVVGSkxFTkJRVU1zU1VGQlRTeExRVU5vUW1Jc1IwRkJUenRCUVVGQkxFVkJRMUJoTEVkQlFVc3NSVUZGVkdJc1IwRkJUMWtzUlVGRlNFZ3NSVUZCUzBrc1JVRkJTU3hEUVVGRExFbEJRVTBzVFVGRGFFSmlMRWRCUVU4c1RVRkRXR0VzUjBGQlN5eEZRVU5NVUN4RlFVRlJUeXhGUVVGSkxFTkJRMmhDTEVOQlEwRXNUVUZEU2l4UlFVTkpRU3hIUVVGTExFTkJRMklzUTBGRlVpeFBRVUZCWWl4RlFVRk5UU3hGUVVGUlRpeEZRVUZOVXl4RlFVRkxMRTFCUVUxSUxFTkJRVXNzUlVGQlNVY3NSVUZEYWtORExFVkJRMFJXTEVWQlEwRm5RaXhIUVVGamFFSXNSVUZCUzFrc1JVRkJVVXNzUjBGQllYSkNMRWRCUVdWRExFVkJRVXNzUlVGQlN5eERRVUZETEVOQlF6VkZMRU5CUTBFc1UwRkJVM0ZDTEVkQlFXMUNWaXhGUVVGUFdDeEZRVUZMTEVOQlEzQkRMRWRCUVVsQkxFVkJRVWtzVVVGQlVTeGpRVUZuUWl4SlFVTXpRa0VzUlVGQlNTeGhRVUZsVnl4RlFVRk5MRk5CUVZNN1FVRkJRU3hEUVVGSkxFZEJRM1pETEd0Q1FVRnJRaXhMUVVGTFFTeERRVUZMTEVWQlJUVkNMRTlCUVU5RUxFZEJRVzFDUXl4RlFVRlBXQ3hEUVVGSExFVkJRM2hETEVsQlFVMWxMRVZCUVZObUxFVkJRVWtzVTBGQlYwVXNSMEZCZFVKVExFTkJRVXNzUlVGQlNTeExRVUZQTEVsQlF5OUVWeXhGUVVGTkxFbEJRVTFZTEVWQlFVMHNVVUZCVVN4TFFVRk5MRWxCUVVrc1JVRkJSU3hSUVVGUkxFOUJRVkU3UVVGQlFTeEZRVUZQU1N4RFFVRk5MRVZCUVVVc1JVRkJTU3hKUVVNdlJTeFBRVUZQWml4RlFVRkpMRmxCUTB4elFpeEZRVU5CU0N4SFFVRmpSeXhGUVVGTFVDeEZRVUZSVVN4SFFVRlhlRUlzUjBGQlpVTXNSVUZCU3l4RlFVRkxMRU5CUVVNc1EwRkRNVVVzUTBGRFFTeFRRVUZUZDBJc1IwRkJZV0lzUlVGQlQxZ3NSVUZCU3l4RFFVTTVRaXhIUVVGTkxFTkJRVVVzV1VGQlFYbENMRU5CUVZrc1JVRkJTWHBDTEVWQlFVa3NVVUZEZUVJd1FpeEZRVU5LTEVkQlFVbEVMRWxCUVdkQ0xFZEJRMmhDUXl4RlFVRkxhRUlzVDBGRFNpeERRVU5FTEVsQlFVMXBRaXhGUVVGWmFFSXNSVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkRPVUpwUWl4RlFVRlpha0lzUlVGQlRTeFRRVUZUTEVkQlFVY3NSVUZEYUVOblFpeEhRVUZoTEVOQlFVTkRMRVZCUTJSR0xFVkJRVXRNTEVkQlEwRlBMRWRCUVdFc1EwRkJRMFFzUlVGRGJrSkVMRVZCUVV0b1FpeEhRVVZNWjBJc1JVRkJTMFFzUlVGQlkwb3NSMEZCY1VKWUxFVkJRMmhFTEVOQlEwRXNUMEZCVDJkQ0xFVkJRVWRtTEVWQlFVOVlMRU5CUVVjc1EwRkRlRUlzUTBGSFFTeEpRVUZKTmtJc1IwRkRTaXhIUVVGSkxFTkJRMEZCTEVkQlFXMUNMRWxCUVVrc1QwRkJUenRCUVVGQk8wRkJRVUU3UVVGQlFTeExRVUV3UWl4SFFVRkhMRU5CUXk5RUxFOUJRMDFETEVWQlFVRXNRMEZEUmtRc1IwRkJiVUlzWTBGRGRrSXNRMEZEUVN4VFFVRlRSU3hIUVVGWkxFTkJRVVVzVVVGQlFVTXNSVUZCVXl4TFFVRkJReXhGUVVGTkxFMUJRVUYwUWl4RFFVRk5MRVZCUVVkWUxFVkJRVXRyUXl4RlFVRlhReXhGUVVGaExFTkJRM2hGTEVkQlFVMHNRMEZCUlN4WFFVRkJReXhGUVVGWkxHTkJRVUZETEVWQlFXVXNWVUZCUVdoRExFTkJRVlVzUlVGQlNVd3NSVUZCU1N4UlFVZHlSQ3hIUVVGSkxFTkJRVU52UXl4SFFVRmpMRmxCUVZrc1MwRkJTM3BDTEVOQlFVc3NSMEZCU3l4UlFVRlJMRXRCUVV0QkxFTkJRVXNzUlVGRE5VUXNUMEZCVDJFc1IwRkJZV0lzUlVGQlQxZ3NRMEZCUnl4RlFVVnNReXhKUVVGTlpTeEZRVUZUWml4RlFVRkpMRk5CUTJSQkxFVkJRVWtzYTBKQlFXOUNSU3hIUVVGMVFsTXNRMEZCU3l4RlFVRkpMRXRCUVU4c1NVRkRPVVF5UWl4RlFVRlZSaXhKUVVGbExGVkJRM3BDTEVkQlEwRkJMRWxCUVdVc1ZVRkJXVWdzU1VGQlUwMHNSVUZCVHl4aFFVTjJReXhIUVVOQlRpeEpRVUZUVFN4RlFVRlBMR05CUTFvc1IwRkRRU3hEUVVGRGJrTXNSMEZCYjBKUExFVkJRVTlPTEVWQlFWZFZMRVZCUVU4c1RVRkJUU3hGUVVOc1JTeEhRVUZKTEVOQlFVTktMRVZCUTBRc1QwRkJUekpDTEVWQlFWVTdRVUZCUVN4RlFVRlJPMEZCUVVFc1JVRkZOMElzU1VGQlNVVXNSVUZEUVVNc1JVRkRTaXhKUVVGTFFTeEZRVUZYT1VJc1JVRkJUU3hQUVVGUk9FSXNSVUZCVnl4RlFVRkhMRVZCUVVWQkxFVkJRVlVzUTBGRGNFUXNTVUZCVFhoQ0xFVkJRVXRPTEVWQlFVMDRRaXhGUVVGWExFTkJRVU1zUlVGRE4wSXNSMEZCU1hoQ0xFbEJRVTg3UVVGQlFTeEhRVUZSUVN4SlFVRlBMRXRCUVZGQkxFbEJRVThzU1VGRGNrTXNTMEZEVWl4RFFVTkJMRWxCUVVsNVFpeEZRVUZOTDBJc1JVRkJUU3hWUVVGVk9FSXNRMEZCVVN4RlFVTTFRa1VzUlVGQlYwUXNSVUZCU1N4UlFVRlJPMEZCUVVFc1EwRkJTU3hGUVVNM1FrTXNTVUZCWVN4SFFVTmlTQ3hGUVVGUkxFbEJSVWczUWl4SlFVRlZLMElzUjBGQlQwTXNTVUZCWVVRc1JVRkJTU3hQUVVGVExFZEJRMmhFUml4RlFVRlJMRWxCUTBwTUxFZEJRMEZCTEVWQlFWa3NSMEZIYUVKTExFVkJRVkVzUjBGRlVrVXNTVUZEUVM5Q0xFVkJRVkZCTEVWQlFVMHNUVUZCVFN4RlFVRkhMRU5CUVVNclFpeEZRVUZKTEUxQlFVMHNSVUZET1VKQkxFVkJRVWxCTEVWQlFVa3NUMEZCVXl4RFFVRkRMRWxCUVUwN1FVRkJRU3hKUVVONFFrRXNSVUZCVFVFc1JVRkJTU3hOUVVGTkxFVkJRVWNzUlVGQlJTeEhRVU42UWtFc1JVRkJUVUVzUlVGQlNTeFJRVUZSWWl4SFFVRnJRaXhMUVVGTFpDeERRVUZOTEVWQlFVVXNSMEZIY2tRc1NVRkJTVFpDTEVWQlFXbENMRWRCUTJwQ1F5eEZRVU5CUXl4RlFVRmhMRWRCUTJwQ0xFbEJRVXRFTEVWQlFWY3NSVUZCUjBFc1JVRkJWMnhETEVWQlFVMHNUMEZCVVN4RlFVRkZhME1zUlVGQlZTeERRVU53UkN4SlFVRk5OVUlzUlVGQlMwNHNSVUZCVFd0RExFTkJRVkVzUlVGRGVrSXNSMEZCU1RWQ0xFbEJRVThzU1VGRFVESkNMRVZCUVdsQ0xGZEJRMW96UWl4SlFVRlBPMEZCUVVFc1JVRkRXalpDTEVWQlFXRkVMRTFCUldJc1RVRkRVaXhEUVVOQkxFbEJRVWx3UXl4RlFVRlJSU3hGUVVGTkxGVkJRVlVzUlVGQlIyMURMRVZCUVdGRUxFVkJRVmRETEVWQlFXRXNSVUZCU1VRc1EwRkJVU3hGUVVNMVJYQkRMRWxCUTBGRkxFVkJRVkZCTEVWQlFVMHNWVUZCVlVZc1JVRkJUU3hOUVVGTkxFVkJRM0JEUVN4RlFVRlJRU3hGUVVGTkxGRkJRVkVzVDBGQlVTeExRVUZMVFN4RFFVRk5MRVZCUVVVc1IwRkhMME1zU1VGQlNXZERMRWRCUVZWVUxFVkJRVlVzU1VGQlRTeE5RVUZSVFN4RlFVUnVRamRDTEVWQlFWTXNTVUZCVFN4SlFVTnJReXhKUVVGTmVVSXNSVUZOTVVVc1IwRk1TVklzU1VGRFFXVXNSMEZCVlN4SlFVRk5WaXhGUVVGalRDeEZRVUZSTEZGQlFWRXNZVUZCWXl4SFFVRkhMRU5CUVVNc1JVRkROVVJGTEVkQlEwRkJMRVZCUVZVc1IwRkZaRWtzUlVGRFFTeFBRVUZCTTBJc1JVRkJVVUVzUlVGQlRTeFJRVUZSTEU5QlFWRXNTMEZCUzBrc1EwRkJUU3hGUVVGRkxFVkJRM0JETEVkQlFVZG5ReXhEUVVGTk8wRkJRVUVzUlVGQlMyaERMRU5CUVUwc1IwRkJSMDRzUTBGQlN5eEhRVUZIUlN4RFFVRkxMRWRCUVVjclFpeERRVUZITEVkQlJYSkVMMElzUlVGQlVVRXNSVUZEU0N4UlFVRlJMRTlCUVZFN1FVRkJRU3hIUVVGTkxFVkJRM1JDTEZGQlFWRXNhVVJCUVd0RUxFMUJRVTBzUlVGRmFFVXNVVUZCVVN4UFFVRlJMRXRCUVV0SkxFTkJRVTBzUlVGQlJTeEZRVU5zUXl4SlFVRk5hVU1zUlVGQlR6ZENMRWRCUVdNc1IwRkJSMVlzUTBGQlN5eEhRVUZIUlN4RFFVRkxMRWRCUVVjclFpeERRVUZITEVkQlFVa3pRaXhGUVVGUmEwTXNSMEZCV1d4RUxFZEJRV1ZETEVWQlFVc3NSVUZCU1N4RFFVRkRMRVZCUTJ4SExFMUJRVThzUjBGQlJ5dERMRU5CUVUwN1FVRkJRU3hGUVVGTGFFTXNRMEZCVFN4SFFVRkhhVU1zUTBGQlNTeEZRVU4wUXl4RFFVTkJMRk5CUVZORkxFZEJRVmxETEVWQlFVMXVSQ3hGUVVGTGEwTXNSVUZCVjBNc1JVRkJZU3hEUVVOd1JDeEhRVUZOTEVOQlFVVXNTMEZCUVVZc1JVRkJUU3hOUVVGQmRFSXNRMEZCVFN4RlFVRkpkME1zUlVGRGJFSXNRMEZCUlN4aFFVRkJReXhGUVVGakxGbEJRVUYyUXl4RlFVRmhMRTlCUVVGRkxFVkJRVkVzVjBGQlFYTkRMRVZCUVZrc1QwRkJRVU1zUTBGQlR5eEZRVUZKZEVRc1JVRkRiRVVzUjBGQlMyRXNSMEZCWlVZc1JVRkJUU3hUUVVGVE8wRkJRVUVzUTBGQlNTeEhRVU5zUXpKRExFZEJRVlVzVjBGQlZ5eExRVUZMTTBNc1EwRkJTeXhGUVVOb1F5eFBRVUZQWVN4SFFVRmhZaXhGUVVGUFdDeERRVUZITEVWQlJXeERMRWRCUVVrc1EwRkJRMWNzUjBGRFJDeHZSa0ZCYjBZc1MwRkJTMEVzUTBGQlN5eEZRVTg1Uml4UFFVRlBSU3hIUVVGbGVVTXNSMEZCVlN4RFFVRkRNME1zUlVGQlRTeFRRVUZUTzBGQlFVRXNRMEZCU1N4RlFVTTVRMkVzUjBGQllXSXNSVUZCVDFnc1EwRkJSeXhGUVVOMlFpdENMRWRCUVZsdlFpeEZRVUZOYmtRc1JVRkJTMnRETEVWQlFWZERMRU5CUVZjc1JVRkZka1FzUjBGQlNTeERRVUZEZEVJc1IwRkRSQ3hEUVVGRGVVTXNSMEZEUkhKQ0xFbEJRVk5OTEVWQlFVOHNUMEZEYUVJMVFpeEZRVUZOTEZOQlFWTTdRVUZCUVN4RFFVRkpMRVZCUlc1Q0xFOUJRVTl2UWl4SFFVRlpiMElzUlVGQlRXNUVMRVZCUVV0clF5eEZRVUZYUXl4RFFVRlhMRVZCUlhoRUxFZEJRVWxxUXl4SFFVRjFRbE1zUTBGQlN5eEZRVUZITEVOQlF5OUNMRWRCUVVsSkxFbEJRVmNzUjBGRFdDeFBRVUZCWml4RlFVRkpMR2xDUVVGdFFpeEhRVU5vUWl0Q0xFZEJRVmx2UWl4RlFVRk5ia1FzUlVGQlMydERMRVZCUVZkRExFTkJRVmNzUlVGRmJrUXNSMEZCU1hSQ0xFZEJRV1ZGTEVsQlFWZHpReXhGUVVNdlFpeFBRVUZQTjBJc1IwRkJZV0lzUlVGQlQxZ3NRMEZCUnl4RFFVVjBReXhEUVVOQkxFbEJRVTFITEVWQlFVMVJMRVZCUVUwc1VVRkJVU3hQUVVGUk8wRkJRVUVzUlVGQlQwa3NRMEZCVFN4RlFVRkZMRVZCU1dwRUxFZEJRVWx4UXl4RlFVRmpMRU5CUTJRc1NVRkJUVWNzUlVGQlVVTXNSMEZCU3l4RFFYWlNNMElzU1VGQlFVTXNSVUYxVWpoQ0xFOUJRVUZFTEVWQlFVa3NVMEZCVjBFc1JVRkJTU3hOUVVGUkxESkNRVUV5UWtNc1JVRkJRVVFzUlVGQlNTeFBRVUZLTEZsQlFVRkRMRVZCUVZVc1MwRkJTM1JFTEV0QlEzSkdMRU5CUVVVc1QwRkJRWFZFTEVWQlFWRXNTMEZCUVVNc1EwRkJTeXhGUVVGSk0wUXNSVUZCU1N4SlFVRkpMRTlCUTJwRExFZEJRVWt5UkN4RlFVRkxMRXRCUVV0S0xFTkJRVWtzUjBGQlMwY3NSMEZCUVN4TlFVRkJRU3hGUVVGUkxFdEJRVXRJTEVkQlEyaERMRTlCUVU4dlFpeEhRVUZoWWl4RlFVRlBXQ3hEUVVGSExFTkJRM1JETEVOQlEwRXNUMEZCVDJFc1JVRkRSRllzUlVGRFFXZENMRWRCUVdOb1FpeEZRVUZMV1N4RlFVRlJVU3hIUVVGWGVFSXNSMEZCWlVNc1JVRkJTeXhGUVVGTExFTkJRVU1zUTBGRE1VVXNRMEZEUVN4VFFVRlRORVFzUjBGQlowSlVMRVZCUVUxdVJDeEZRVUZMYTBNc1JVRkJWME1zUlVGQllTeERRVU40UkN4SFFVRk5MRU5CUVVVc1dVRkJRWFJDTEVWQlFXRXNUMEZCUVhsRExFTkJRVThzUlVGQlNYUkVMRVZCUXpGQ05rUXNSVUZCU3l4UFFVRlBWaXhGUVVGTExFOUJRVlVzVTBGRE0wSkJMRVZCUTBFc1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlIwRXNSVUZCVFN4RFFVRkZMRTFCUVU4c1QwRkJUMEVzUlVGQlN5eExRVUZMTEVOQlFVVXNRMEZCUXl4RlFVTjJSQ3hEUVVGRkxFdEJRVUZzUWl4RFFVRkxMRVZCUVVsclFpeEZRVU5ZYkVJc1NVRkJVMDBzUlVGQlR5eGpRVVZhTEd0RVFVRnJSQ3hMUVVGTGMwSXNSVUZCUnl4TFFVRkxMRWxCUXk5RU5VSXNSVUZCVDAwc1JVRkJUeXhqUVVWMFFpeEpRVUZOZFVJc1JVRkJZME1zUjBGQlZTeERRVU14UWl4UFFVRlJRU3hGUVVGUExFTkJRMWdzUzBGQlMzaENMRVZCUVU4c1lVRkRXaXhMUVVGTFFTeEZRVUZQTEdOQlExSXNUMEZCVHpGQ0xFZEJRV1Y1UXl4RlFVTm9RamxDTEVkQlFXRnhReXhGUVVGSExFMUJRVTgzUkN4RFFVRkhMRVZCUXpGQ0swSXNSMEZCV1RoQ0xFVkJRVWszUkN4RlFVRkxhME1zUlVGQlYwTXNRMEZCVnl4RlFVTnlSQ3hMUVVGTFNTeEZRVUZQTEdGQlExSXNUMEZCVHpkQ0xFZEJRVzFDYlVRc1JVRkJSeXhOUVVGUE4wUXNRMEZCUnl4RlFVTXpReXhMUVVGTGRVTXNSVUZCVHl4aFFVTlNMRTlCUVU5c1FpeEhRVUZ0UW5kRExFVkJRVWNzVFVGQlR6ZEVMRU5CUVVjc1JVRkRNME1zUzBGQlMzVkRMRVZCUVU4c1RVRkRVaXhQUVVGUFZ5eEhRVUZaVnl4RlFVRkpOMFFzUlVGQlMydERMRVZCUVZkRExFTkJRVmNzUlVGRGRFUXNVVUZEU1N4UFFVRlBMRWxCUTJZc1EwRkRTaXhGUVVOSllpeEZRVUZOZDBNc1JVRkJWemRDTEVOQlFVa3NSVUZEZWtJc1IwRkJTVmdzU1VGQlVTeExRVUZOTEVOQlEyUXNSMEZCVFN4RFFVRkZMR1ZCUVVFd1F5eEZRVUZuUWl4clFrRkJRVU1zUTBGQmEwSXNSVUZCU1dwRkxFVkJRVWtzVVVGRE5VTnJSU3hGUVVGTGNrUXNSMEZCWlcxRUxFZEJRVzFDUXl4RlFVVTNReXhIUVVSQk0wTXNSVUZCVFhkRExFVkJRVmRKTEVOQlFVTXNSVUZEWkRWRExFbEJRVkVzUzBGRFVpeE5RVUZOTEVsQlFVa3NUVUZCVFN4dFEwRkJiVU0wUXl4RFFVRkRMRVZCUVVVc1EwRkRPVVFzUTBGRFFTeFBRVUZQTlVNc1EwRkRXQ3hEUTJoVlFTeFRRVUZUTmtNc1IwRkJkVUpETEVWQlFVdERMRVZCUVZNc1EwRkRNVU1zU1VGQlRVTXNSVUZCVFN4UFFVRlBMRTlCUVU4c1EwRkRkRUlzVjBGQldTeEhRVU5hTEdOQlFXVkRMRWRCUTJZc1pVRkJaMElzUzBGRGFFSXNhMEpCUVcxQ0xGRkJRMjVDTEZkQlFWa3NTMEZEV2l4dFFrRkJiMElzUjBGRGNFSXNLMEpCUVdkRExFZEJRMmhETEZOQlFWVXNVVUZEVml4elFrRkJkVUlzUjBGRGRrSXNWVUZCVnl4SFFVTllMRlZCUVZjc1IwRkRXQ3huUWtGQmFVSXNSMEZEYWtJc1VVRkJVeXhQUVVOVUxGZEJRVmtzUjBGRFdpeFpRVUZoTEV0QlEySXNVVUZCVXl4UFFVTlVMR2xDUVVGclFpeEZRVU4wUWl4RlFVRkhTQ3hGUVVGSkxFOUJRVThzWjBKQlFXbENReXhEUVVGUExFVkJRMnhEUnl4RlFVTktMRTlCUVZGR0xFVkJRVWtzWjBKQlFXbENMRU5CUTNwQ0xFbEJRVXNzVVVGRFJFVXNSVUZCVXl4SFFVTlVMRTFCUTBvc1NVRkJTeXhQUVVORVFTeEZRVUZUTEVkQlExUXNUVUZEU2l4UlFVTkpRU3hGUVVGVExFbEJRMnBDTEVOQlEwRXNUVUZCVHl4RFFVTklMRkZCUVZNc1NVRkJTU3hKUVVOaUxFbEJRVUZLTEVWQlEwRXNjMEpCUVhWQ1JTeEZRVUZKTEhOQ1FVRjNRaXhKUVVGTkxFZEJRM3BFTEU5QlFWRXNSMEZEVWl4WFFVRlpMRTlCUVU5QkxFVkJRVWtzVVVGQlZ5eFRRVUZYTEVsQlFVa3NUMEZCVDBFc1JVRkJTU3hOUVVGTkxFVkJRVWtzUzBGRGRFVXNUMEZCUVVVc1JVRkRRU3hSUVVGVFJpeERRVU5pTEVOQlEwb3NRMEZEUVN4VFFVRlRSeXhIUVVGaFF5eEZRVUZOUXl4RlFVRk5MRU5CT1VOc1F5eEpRVUZCUXl4RlFVRkJReXhGUVVGQlF5eEZRVUZCUXl4RlFTdERTU3hIUVVGSlNpeEZRVUZMTEVsQlFVc3NRMEZEVml4SlFVRk5TeXhGUVVGUlRpeEZRVUZMTEU5QlFVOVBMRWRCUVV0QkxFVkJRVVVzVFVGQlVVNHNSVUZCU3l4SFFVRkhMRVZCUTJwRUxFZEJRVWxMTEVWQlFVMHNUMEZCVXl4RlFVTm1MRTlCUVU5S0xFVkJRVUZKTEVWQlFVMHNTMEZCUzBNc1IwRkJTMEVzUlVGQlJTeFRRVUZYVGl4RlFVRkxMRTFCUVUwc1NVRkJlRU1zUzBGQlFVTXNSVUZCTmtOSkxFVkJRVTBzUTBGQlF5eERRVU51UlN4RFFVTkJMRWxCUVVsRkxFVkJRMEZETEVWQlEwb3NSMEZCU1VNc1JVRkJVMVFzUTBGQlNTeEZRVUZITEVOQlEyaENVU3hGUVVGTlVpeEZRVUZMTEUxQlExZ3NTVUZCU1Vzc1JVRkJVVTRzUlVGQlN5eFBRVUZQVHl4SFFVRkZMRU5CZUVSc1F5eEpRVUZCVEN4RlFYZEVjVU1zVDBGQlFVRXNSVUZCUVVzc1JVRkJSU3hYUVVGR0xGbEJRVUZNTEVWQlFVRXNTMEZCUVVzc1JVRkJZVVVzUjBGQlNTeEZRVU01UXl4SFFVRkpTQ3hGUVVGTkxFOUJRVk1zUlVGQlJ5eERRVU5zUWl4SlFVRk5TeXhGUVVGWlRDeEZRVUZOTEU5QlFVOURMRWRCUVV0QkxFVkJRVVVzU1VGQlNTeEZRVU4wUTBrc1JVRkJWU3hQUVVGVExFbEJRMjVDVEN4RlFVRlJTeXhGUVVOb1FpeERRVU5CU0N4SFFVTkpUQ3hGUVVGQlJ5eEZRVUZOTEV0QlFVdERMRWRCUVV0QkxFVkJRVVVzVTBGQlYwNHNSVUZCU3l4TlFVRk5MRWxCUVhoRExFdEJRVUZGTEVWQlFUWkRSeXhGUVVGTkxFdEJRVXRETEVkQlFVc3NRMEZCUTBFc1JVRkJSU3hOUVVGTkxFTkJRemxGTEUxQlJVbEZMRVZCUVUxU0xFVkJRMDVQTEVWQlFWTlNMRVZCUVVzc1MwRkJTMDhzUjBGQlMwRXNSVUZCUlN4WFFVRmhSU3hoUVVGbFJpeEZRVUZGTEZOQlFWTXNSVUZGY2tVc1IwRkJTU3hEUVVGRFF5eEZRVUZSTEVOQlExUXNTVUZCVFVrc1IwRkJUMUFzUjBGQlFVUXNSVUZCUVVzc1IwRkJRU3haUVVGQlFTeEZRVUZMTEdOQlFVd3NXVUZCUVV3c1JVRkJhMElzVDBGQmJFSXNTMEZCUVVNc1JVRkJNRUlzVDBGQlQwa3NSVUZET1VNc1RVRkJUU3hKUVVGSkxFMUJRVTBzZDBKQlFYZENSeXhEUVVGSkxGRkJRVkVzUTBGRGVFUXNRMEZEUVN4UFFVRlBTaXhEUVVOWUxFTkJSVUVzVTBGQlUwc3NSMEZCWlVNc1JVRkJUVTRzUlVGQlVTeERRVUZGTEZGQlFVRlBMRVZCUVZNc1NVRkJRWEpDTEVOQlFVa3NSVUZCUnl4RFFVTndSQ3hIUVVGSkxFTkJRVU5CTEVWQlFVa3NWMEZEVEN4TlFVRlBMRWRCUTFnc1NVRkJUWE5DTEVWQlFWRXNRMEZCUXl4RlFVTlVReXhIUVVGVlVDeEZRVUZUU1N4RFFVRkpMRWRCUVV0SkxFVkJRV0ZLTEVOQlFVa3NTVUZCVFVFc1JVRkJTeXhQUVVNeFJFY3NSMEZCVlVVc1IwRkJZMFlzUTBGQlRTeEpRVU01UWtZc1JVRkJVU3hKUVVGSlJTeERRVUZOTEVWQlEyeENSQ3hGUVVGTkxFdEJRVXNzU1VGQlNVTXNRMEZCVFN4RlFVRkZMRWRCUlROQ0xFbEJRVTFITEVWQlFVMU9MRVZCUVVzc1NVRkJUVUVzUlVGQlN5eEpRVUZOVGl4RlFVRlBMRkZCUVZVc1MwRkJUMEVzUlVGQlR5eEpRVU5xUlN4UFFVRkpXU3hIUVVOQlNpeEZRVUZOTEV0QlFVdDBRaXhGUVVGSkxGZEJRVmNzVlVGQlZUQkNMRU5CUVVjc1EwRkJReXhGUVVOeVEwb3NSVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkRla0lzUTBGRFFTeFRRVUZUU3l4SFFVRlZjRUlzUlVGQlRYRkNMRVZCUVV0RExFVkJRVmRETEVWQlFXRXNRMEV4Um5SRUxFbEJRVUYwUWl4RlFVRkJReXhGUVRKR1NTeEhRVUZKYzBJc1JVRkJUM2hDTEVOQlFVa3NSVUZEV0N4UFFVRlBRU3hGUVVGTExGTkJRVk54UWl4RlFVRkxReXhGUVVGWFF5eERRVUZYTEVWQlEzQkVMRWRCUVVsRkxFZEJRVkY2UWl4RFFVRkpMRVZCUVVjc1EwRkRaaXhIUVVGSmNVSXNSVUZCU1N4SlFVRkpMRmRCUTFJc1QwRkJUM0pDTEVWQlFVc3NVMEZCVTNGQ0xFTkJRVWNzUlVGRE5VSXNTVUZCU1hCQ0xFVkJRVUZ2UWl4RlFVRkpMR3RDUVVGS0xFMUJRVUZ3UWl4RlFVRnhRaXhKUVVGSlJDeEhRVU42UWl4TlFVRk5MRWxCUVVrc1ZVRkJWU3g1UkVGQmVVUXNSVUZIZWtWeFFpeEZRVUZKTEdkQ1FVTktRU3hGUVVGSkxHZENRVUZuUWl4SlFVRkpja0lzUTBGQlNTeEZRVVUxUW5GQ0xFVkJRVWtzWjBKQlFXdENMRWxCUVVrc1NVRkJTU3hEUVVGRGNrSXNRMEZCU1N4RFFVRkRMRVZCUTNoRFFTeEZRVUZQUVN4RlFVRkxMRkZCUVZGeFFpeEZRVUZKTEVkQlFVY3NRMEZGYmtNc1EwRkRRU3hKUVVGSlpDeEZRVU5GVFN4RlFVRlBZU3hGUVVGUE1VSXNRMEZCU1N4RlFVTnNRa0VzUlVGRFFYRkNMRVZCUVVrc1NVRkJTU3hYUVVGWGNrSXNSVUZCVFN4RFFVRkZMRk5CUVZVeVFpeEhRVUZOY0VJc1JVRkJVMjlDTEVOQlFVY3NRMEZCUXl4RlFVTjZSSEJDTEVsQlEwUkJMRVZCUVZOVUxFZEJRV0YxUWl4RlFVRkpMRWxCUVVrc1QwRkJUeXhMUVVGTlVpeERRVUZKTEVkQlEyNUVMRWxCUVUxRkxFVkJRVkZJTEVkQlFXVkRMRVZCUVUxT0xFVkJRVkZqTEVOQlFVY3NSVUZETVVOT0xFVkJRVTBzVDBGQlV5eEpRVU5tVFN4RlFVRkpMR2RDUVVGcFFtNUNMRVZCUVVGdFFpeEZRVUZKTEdkQ1FVRktMRXRCUVVGdVFpeEZRVUZ4UWl4SFFVRkxZU3hGUVVGTkxFOUJRVk1zUjBGRGJFVXNTVUZCVFdFc1JVRkJUU3hQUVVGUGNrSXNSVUZCVHl4WFFVRmpMRmRCUTJ4RFFTeEZRVUZQTEZWQlFWVk5MRVZCUVUxUkxFVkJRVXRETEVWQlFWZERMRU5CUVZjc1JVRkRiRVJrTEVWQlFWTkpMRU5CUVVrc1JVRkRWR2RDTEVkQlFXZENhRUlzUlVGQlRWRXNSVUZCUzBNc1JVRkJWME1zUTBGQlZ5eEZRVU5xUkZZc1JVRkJTeXhUUVVGVFVTeEZRVUZMUXl4RlFVRlhReXhEUVVGWExFVkJRMjVFTEU5QlFVdFNMRVZCUlVWT0xFVkJRVk5KTEVOQlFVa3NSMEZCUzJVc1JVRkJTU3hEUVVGRExFbEJRVTBzUzBGQlQwRXNSVUZCU1N4RFFVRkRMRWxCUVUwc1NVRkRhRVFzUjBGQlIySXNRMEZCU3l4SlFVRkpZU3hEUVVGSExFZEJRMllzUjBGQlIySXNRMEZCU3p0QlFVRkJMRVZCUVV0TkxFVkJRVWtzVFVGQlRTeEhRVUZIVHl4RFFVRkhMRWRCU0hoQ1FTeERRVWxtTEVORGVraEJMRk5CUVZORkxFZEJRV01zUTBGQlJTeEpRVUZCUXl4RlFVRkxMRTFCUVVGRExFTkJRVTBzUlVGQlIwTXNSVUZCUzBNc1JVRkJWME1zUlVGQllTeERRVXh3UlN4SlFVRkJReXhGUVVGQlF5eEZRVTFKTEVkQlFVMHNRMEZCUlN4alFVRkJReXhGUVVGbExFbEJRVUZETEVWQlFVc3NUMEZCUVVNc1JVRkJVU3hYUVVGQlF5eEZRVUZaTEZGQlFWTXNRMEZCUlN4alFVRkJReXhGUVVGbExGVkJRVUZETEVWQlFWY3NWMEZCUVVNc1EwRkJWeXhEUVVGRkxFVkJRVWxZTEVWQlEyeEhXU3hGUVVGalF5eEZRVUZQWml4RFFVRkhMRWRCUVV0QkxFVkJRVWtzVTBGQldTeExRVU5xUkN4SFFVRkpZU3hGUVVGWkxFTkJRMW9zUjBGQlNVTXNSVUZEUVN4TlFVRk5MRWxCUVVrc1RVRkJUU3hyUkVGQmEwUXNSVUZGZEVVc1IwRkJTVVVzUlVGQllXaENMRU5CUVVjc1IwRkJUU3hEUVVGRFpTeEZRVUZQWml4RFFVRkhMRWRCUVVzc1QwRkJUMEVzUjBGQlVTeFRRVUZYTEVOQlEyaEZMRWxCUVUxcFFpeEZRVUZOTERaRVFVTmFMRTFCUVUwc1NVRkJTU3hOUVVGTlFTeERRVUZITEVOQlEzWkNMRU5CUTBvc1EwRkRRU3hKUVVGSlF5eEZRVUZqTEVOQlFVTk1MRWxCUTJRc1EwRkJRMklzUjBGRFIyTXNSMEZCWTJJc1IwRkJVeXhOUVVGUkxFTkJRVU5ETEVWQlFVa3NVVUZEY2tOakxFVkJRV0ZvUWl4RFFVRkhMRWxCUTJadFFpeEZRVUZUYmtJc1EwRkJSeXhGUVVOUVFTeEZRVUZKTEU5QlFWTnZRaXhGUVVGUExHTkJRV2RDY0VJc1JVRkJTU3hQUVVGVGIwSXNSVUZCVHl4alFVTjRSQ3hQUVVGUGNFSXNSMEZCVVN4WFFVTTNRa1VzUlVGQlRTeFBRVUZQTEU5QlFVOHNRMEZCUXl4RlFVRkhRU3hGUVVGTExFTkJRM3BDTEdOQlFXVXNSMEZEWml4WlFVRmhMRU5CUVVOblFpeEpRVUZuUWt3c1IwRkJZeXhEUVVGRFRpeEhRVU0zUXl4UFFVRlJSU3hGUVVGVFF5eERRVU55UWl4RFFVRkRMRVZCUTBRc1NVRkJTVmNzUlVGQmFVSXNSMEZEYWtKRExFVkJRVmtzUjBGRFdrTXNSVUZCVFVNc1IwRkJWWGhDTEVWQlFVdEZMRVZCUVVzc1NVRkJUMjFDTEVWQlFXbENMRWRCUVU4c1NVRkJUME1zUlVGQldTeEZRVUZMTEVWQlEzSkdMRWRCUVVrc1EwRkJRMG9zUjBGQlpTeERRVUZEYUVJc1JVRkJTU3hSUVVGVmNVSXNSVUZCU1N4UFFVRlRMRXRCUVUwc1EwRkRiRVFzUjBGQlNWWXNSVUZEUVN4TlFVRk5MRWxCUVVrc1RVRkJUU3c0UlVGQk9FVXNSVUZEYkVkTExFVkJRV01zUlVGRGJFSXNRMEZEUVN4SFFVRkphRUlzUlVGQlNTeFJRVU5LTEVkQlFVbExMRWRCUVdsQ1RpeEhRVUZUTEV0QlF6RkNMRTlCUVVsdlFpeEhRVUZyUW14Q0xFZEJRMnhDUVN4RlFVRlZMRVZCUTFCdlFpeEpRVUZSTEVkQlFVc3NTVUZCVFV3c1JVRkJZeXhMUVVGTFN5eERRVUZITEVkQlFVdEJMRlZCUjI1RWFFSXNSMEZCYVVJc1EwRkJRMDBzUjBGQlowSmFMRWRCUVZNc1RVRkJVV2xDTEVWQlEzcEVMRTlCUVVGTExFVkJRVTBzUzBGQlMwRXNRMEZCUnl4SFFVTldWQ3hIUVVGakxFTkJRVU5QTEVWQlEyWkZMRWRCUVU5RkxFZEJRVmxHTEVWQlFVdHlRaXhGUVVGSkxFOUJRVkZUTEVWQlFXTkhMRU5CUVZVc1EwRkJReXhGUVVWNFJGRXNSMEZCWVd4Q0xFZEJRMnhDUVN4RlFVRlpMRVZCUTFSdFFpeEZRVVZRUml4SlFVTkJVQ3hGUVVGaExFMUJRMkpKTEVkQlEwbEtMRWxCUTBGVExFZEJRVTlGTEVkQlFWbEdMRVZCUVV0eVFpeEZRVUZKTEU5QlFWRlRMRVZCUVdOSExFTkJRVlVzUTBGQlF5eEhRVU5xUlZNc1JVRkJUU3hMUVVGTFFTeERRVUZITzBGQlFVRXNSVUZCUzJRc1EwRkJUU3hOUVVkNlFtTXNSVUZCVFN4SFFVRkhRU3hEUVVGSExFbEJRMUpVTEVsQlEwRlRMRWRCUVU5RkxFZEJRVmxHTEVWQlFVdHlRaXhGUVVGSkxFOUJRVkZUTEVWQlFXTkhMRU5CUVZVc1EwRkJReXhKUVVWeVJTeEpRVUZKV1N4RlFVRkxReXhGUVVGTFF5eEZRVU5XWWl4RlFVRlBaQ3hEUVVGTExFZEJRMXA1UWl4RlFVRk5MRU5CUVVNc1EwRkJRM3BDTEVWQlFVMHNXVUZEWkRCQ0xFVkJRVTB4UWl4RlFVRk5MR05CUTFveVFpeEZRVUZsTTBJc1JVRkJUU3hWUVVkeVFubENMRVZCUVUwc1IwRkRUa01zUlVGQlRTeExRVU5PUXl4RlFVRmxMRXRCUTFnelFpeEhRVUZUTEU5QlFVOUJMRWRCUVZVc1YwRkRNVUpCTEVWQlFWRlBMRVZCUVVrc1YwRkJWMUFzUTBGQlN5eEpRVVZ3UTBNc1JVRkJTU3haUVVGakxFZEJRMlFzUTBGQlEyZENMRWRCUVdVc1EwRkJRMG9zUjBGQlkwc3NSVUZCVTJ4Q0xFTkJRVXNzU1VGRE4wTkRMRVZCUVVrc1kwRkJaMEp4UWl4RlFVRkpMRTlCUVZNc1IwRkRja05FTEVWQlFWa3NSMEZEVWl4RFFVRkRWaXhIUVVORVJpeEZRVUZYTEZGQlFWVXNSMEZEY2tJc1EwRkJRMUlzUlVGQlNTeFJRVU5NTEVOQlFVTm5RaXhIUVVORVZ5eEhRVUZOTlVJc1EwRkJTeXhIUVVOWUxFTkJRVU5CTEVWQlFVMHNUVUZEVUN4RFFVRkRRU3hGUVVGTkxFdEJRMUFzUTBGQlEwRXNSVUZCVFN4VFFVVlFReXhGUVVGSkxFOUJRVk5CTEVWQlFVa3NUMEZCVHl4VlFVRlZMRU5CUVVNc1IwRkZka01zU1VGQlNUUkNMRVZCUVcxQ0xFZEJRMnBDUXl4RlFVRlhVQ3hIUVVGVmRrSXNSVUZCVDBNc1JVRkJTeXhKUVVGUE5FSXNSVUZCYlVJc1IwRkJUeXhKUVVGUFVpeEZRVUZaTEVWQlFVc3NSVUZETlVaVkxFVkJRVXNzU1VGRFZDeEhRVUZKYkVJc1IwRkJZMWtzUjBGQlQwTXNSVUZCU3l4RFFVVXhRaXhIUVVSQlN5eEZRVUZMVGl4RlFVRk5PMEZCUVVFc1JVRkJUeXhIUVVOa1F5eEZRVUZMTEVOQlEwd3NTVUZCVFUwc1JVRkJTM1JDTEVWQlFXTm5RaXhEUVVGSExFVkJRelZDU3l4SFFVRk5PMEZCUVVFc1JVRkJTMFVzUjBGQlkwUXNSVUZCU1M5Q0xFVkJRVWtzVFVGQlRTeERRVUZETEVWQlF6VkRMRU5CUTBrMlFpeEpRVUZoTEVsQlFVMHNRMEZCUXpkQ0xFVkJRVWtzVDBGRGNFSTRRaXhKUVVGUE8wRkJRVUVzU1VGRFVFRXNSVUZCU3p0QlFVRkJPMEZCUVVFc1IwRkhWRUVzUjBGQlRUdEJRVUZCTEVWQlFVczVRaXhGUVVGSkxFMUJRVTBzUlVGRk4wSXNVMEZEVXl4RFFVRkRaMElzUjBGQlpVWXNSVUZCWVdZc1EwRkJTeXhGUVVGSExFTkJRekZETEVsQlFVMXJReXhGUVVGTlNpeEZRVUZUTEVOQlFVTXNSVUZEYUVKTExFVkJRVTFNTEVWQlFWTXNVVUZCVVR0QlFVRkJMRU5CUVVrc1JVRkRNMEpOTEVWQlFXRkVMRWxCUVZFc1IwRkRja0pGTEVsQlFVOW9ReXhIUVVGQlJDeEZRVUZCU0N4RlFVRkpMRk5CUVVvc1MwRkJRVWNzUlVGQlkwb3NSVUZCVFN4UFFVRndRaXhMUVVGQlN5eEZRVUUwUWt3c1JVRkJUU3hOUVVGTkxGTkJRVmNzUlVGRGFFVXNSMEZCU1c5RExFZEJRV01zUTBGQlEwTXNSMEZCVFN4RFFVTnlRaXhKUVVGSlF5eEhRVUZsTEVkQlEyNUNMRWRCUVVsR0xFbEJRV1ZHTEVsQlFWRXNTMEZCVDBFc1NVRkJVU3hMUVVGTkxFTkJRelZETEVsQlFVbExMRVZCUVUxVUxFVkJRVk1zVVVGQlVTeEhRVUZITEVWQlF6RkNTU3hKUVVGUkxFdEJRMUpMTEVsQlFWRXNTVUZEVWtFc1JVRkJUVW9zUjBGRFRrd3NSVUZCVTFNc1JVRkJUU3hEUVVGRExFbEJRVTBzVFVGRGRFSkJMRVZCUVUxVUxFVkJRVk1zVVVGQlVTeEpRVUZMVXl4RlFVRk5MRU5CUVVNc1NVRkZia05CTEVsQlFWRXNTVUZCVFVvc1JVRkJUVWtzUzBGRGNFSkVMRWRCUVdVc1IwRkRka0lzUTBGRFMwRXNTMEZEUkZBc1JVRkJTenRCUVVGQkxFVkJRVXM1UWl4RlFVRkpMRTFCUVUwc1IwRkROVUlzUTBGRFNpeE5RVU5UTmtJc1NVRkJZU3hKUVVGTlFTeEZRVUZUTEVOQlFVTXNTVUZCVFR0QlFVRkJMRXRCUTNoRFF5eEZRVUZMTEVsQlJWUXNUMEZCUVZRc1IwRkJUMU1zUlVGQlMwUXNSVUZEVWpkQ0xFVkJRVWtzVDBGRFFUUkNMRWRCUVc5Q00wSXNSMEZEY0VKQkxFVkJRVlVzUlVGRlZIbENMRWRCUVdkQ0xFTkJRVU5GTEVWQlEzUkNVQ3hIUVVGUFJTeEhRVUZaUml4RlFVRkxja0lzUlVGQlNTeFBRVUZSVXl4RlFVRmphVUlzUTBGQldTeERRVUZETEVWQlJURkVUaXhIUVVGaGJFSXNSMEZEYkVKQkxFVkJRVmtzUlVGRlZHMUNMRU5CUTFnc1EwTXZTVUVzVTBGQlUydENMRWRCUVV0RExFVkJRVlZETEVWQlFWTXNSVUZEZWtKRUxFbEJRV0VzVTBGQlYwRXNTVUZCWVN4VlFVTnFReXhQUVVGUExGTkJRVmtzWVVGQlpTeFJRVUZSTEZsQlF6RkRMRkZCUVZFc1dVRkJXVU1zUTBGQlR5eEZRVVV6UWl4UlFVRlJMRXRCUVV0QkxFTkJRVThzUlVGRmFFTXNRME5FUVN4SlFVRk5ReXhIUVVGWkxFdEJRMXBETEVkQlFWRXNRMEZEVml4VFFVRlZReXhIUVVGVFFTeEpRVUZWUml4SlFVTjRRaXhQUVVGUFJTeEhRVUZWTEZWQlFWbEJMRVZCUVUwc1kwRkJaMEpHTEVkQlEzaEVMRkZCUVZNc1RVRkRWQ3hKUVVGTExEQkNRVU5NTEV0QlFVMHNUMEZEVGl4UlFVRlRMRWxCUVUwc1QwRkJUeXhQUVVGUExFbEJRVWxITEVWQlFVOHNUMEZCVDBnc1JVRkJVeXhEUVVGRExFVkJRVWNzUTBGRGVFUXNWMEZCV1Vrc1JVRkRhRUlzUTBGQlF5eEZRVU5FTEZWQlFWY3NTVUZCVFVvc1JVRkRja0lzUlVGRFRVc3NSMEZCWVN4RFFVRkRReXhGUVVGTFF5eExRVUZUVGl4SFFVRk5MRk5CUVZOTkxFTkJRVWNzUjBGREwwTkRMRVZCUVZORUxFTkJRVWNzU1VGRFVpeERRVUZEUVN4RlFVRkpMRTFCUVZGQkxFVkJRVWtzVDBGQlUwb3NSVUZCVHl4UlFVTnNRMFlzUjBGQlRTeFRRVUZUVFN4RlFVRkpMRXRCUVVzc1MwRkROVUpFTEVkQlFVRXNXVUZCUVVFc1JVRkJTeXhKUVVGSkxFOUJRVThzUzBGQlN5eExRVUZMUnl4SFFVRlBRU3hGUVVGSkxFMUJRVkZTTEVkQlFVMHNTMEZCVDFFc1JVRkJTU3hWUVVOc1JTeFRRVUZUVEN4SFFVRm5Ra1VzUlVGQlMwa3NSVUZCUzFJc1JVRkJUeXhEUVVWMFF5eEhRVVJCUVN4RlFVRlJTU3hIUVVGUFN5eEhRVUZSVkN4RFFVRkxMRVZCUVVsQkxFVkJRVTBzVVVGQlVVa3NSVUZCU1N4SFFVRkhMRVZCUVVsS0xFVkJRM0pFVlN4SFFVRk5WaXhEUVVGTExFVkJRMWdzVVVGQlYxY3NTMEZCVFZnc1JVRkJUU3hOUVVOdVFsa3NSMEZCVjFJc1JVRkJTMGtzUlVGQlMwY3NRMEZCUlN4VlFVTjBRaXhOUVVGTkxGRkJRVkZZTEVOQlFVc3NSVUZEZUVJc1VVRkJWMWNzUzBGQlRWZ3NSVUZEWWxrc1IwRkJWMUlzUlVGQlMwa3NSVUZCUzBjc1EwRkJSU3hQUVVVelFrTXNSMEZCVjFJc1JVRkJTMGtzUlVGQlMxSXNRMEZCU3l4RFFVTnNReXhEUVVOQkxGTkJRVk5aTEVkQlFWZFNMRVZCUVV0SkxFVkJRVXRTTEVWQlFVOHNRMEZEYWtNc1NVRkJUV0VzUlVGQlUxUXNSMEZCVDBzc1IwRkJVVlFzUTBGQlN5eEZRVUZKUVN4RlFVRk5MRkZCUVZGSkxFVkJRVWtzUjBGQlJ5eEZRVUZKU2l4RlFVTm9SU3hIUVVGSkxFTkJRVU5qTEVkQlFVMUVMRU5CUVUwc1JVRkRZaXhOUVVGTkxFbEJRVWtzVFVGQlRTd3lRMEZCTWtNc1JVRkRMMFFzU1VGQlRVVXNSVUZCVTBZc1JVRkJUeXhQUVVGUExFdEJRVTFVTEVWQlFVc3NSMEZCUnl4RlFVTXpReXhQUVVGWExFTkJRVU5ETEVWQlFVdE1MRU5CUVVzc1NVRkJTMlVzUlVGRGJrSlFMR0ZCUVdVc1NVRkRWa0VzUlVGQlNTeEpRVUZKU0N4RFFVRkhMRWRCUTFwSExFVkJRVWtzU1VGQlNVZ3NSVUZCUzB3c1EwRkJTeXhGUVVWcVFsRXNZVUZCWlN4SlFVTndRa0VzUlVGQlNTeEpRVUZKU0N4RFFVRkhMRVZCUlV3c1QwRkJUeXhWUVVGVkxHVkJRV1VzUzBGQlMwY3NSVUZCUzBnc1EwRkJSeXhIUVVOdVJDeFBRVUZQTEdWQlFXVkhMRVZCUVV0SUxFVkJRVXNzUTBGRE5VSXNUVUZCUVV3c1JVRkRRU3hUUVVGVkxFZEJRMVlzVjBGQldTeEhRVU5hTEdGQlFXTXNSVUZEYkVJc1EwRkJReXhGUVVkVUxFOUJRVTlSTEVOQlExZ3NRME4yUkVFc1UwRkJVMUVzUjBGQlpVTXNSVUZCUzBNc1JVRkJTeXhEUVVGRkxFbEJRVUZETEVWQlFVc3NUVUZCUVVNc1EwRkJUU3hGUVVGSExFTkJRemxETEVkQlFVbERMRVZCUVU5R0xFTkJRVWNzUjBGQlMwRXNSVUZCU1N4WFFVTnVRa0VzUlVGQlNTeFhRVUZYUml4RlFVRkxReXhGUVVGTFJTeERRVUZMTEZWQlJYcENSU3hIUVVGWFRDeEZRVUZMUlN4RFFVRkhMRVZCUTNoQ1NTeEhRVUZuUWs0c1JVRkJTME1zUlVGQlMwVXNRMEZCU3l4TlFVTTVRaXhEUVVORUxFbEJRVTFKTEVWQlFWRkRMRWRCUVV0T0xFVkJRVXNzUjBGQlNVWXNRMEZCUnl4RlFVTXZRaXhIUVVGSlF5eGhRVUZsTEVsQlEyWkJMRVZCUVVrc1NVRkJTVTBzUlVGQlQwTXNSMEZCUzB3c1JVRkJUMGtzUlVGQlQxQXNRMEZCUnl4RFFVRkRMRlZCUldwRFF5eGhRVUZsTEVsQlEzQkNRU3hGUVVGSkxFbEJRVWxOTEVOQlFVc3NUVUZGV2l4RFFVTkVMRWxCUVUxRkxFVkJRVmxETEVkQlFXRlNMRVZCUVV0TExFVkJRVTlRTEVOQlFVY3NSVUZEZUVOWExFVkJRVlZJTEVkQlFVdE1MRVZCUVU5TkxFVkJRVmRVTEVOQlFVY3NSVUZEZEVOVExFdEJRV0ZTTEVWQlEySXNUMEZCVHl4bFFVRmxRU3hGUVVGTFVTeEZRVUZYTEVOQlEyeERMRTFCUVU5RkxFVkJRMUFzVTBGQlZTeEhRVU5XTEZkQlFWa3NSMEZEV2l4aFFVRmpMRVZCUTJ4Q0xFTkJRVU1zUlVGRlJGWXNSVUZCU1ZFc1EwRkJVeXhGUVVGSlJTeERRVU42UWl4RFFVTktMRU5CUTBFc1QwRkJUMVlzUTBGRFdDeERRVU5CTEZOQlFWTlRMRWRCUVdGU0xFVkJRVXRMTEVWQlFVOVFMRVZCUVVzc1EwRkRia01zUjBGQlNVOHNTVUZCVlN4TFFVTldMRTFCUVU4c1IwRkRXQ3hIUVVGSkxFOUJRVTlCTEVkQlFWVXNVMEZEYWtJc1QwRkJUeXhQUVVGUFFTeERRVUZMTEVWQlEzWkNMRWRCUVVsSUxFVkJRVTlHTEVOQlFVY3NTVUZCUzBZc1IwRkJRU3hOUVVGQlFTeEZRVUZMTEV0QlFVc3NRMEZEZWtJc1NVRkJUVmtzUlVGQlUwTXNSMEZCZFVKaUxFVkJRVWtzU1VGQlN5eERRVUZETEVOQlFVTXNSVUZEYWtSWkxFVkJRVThzVVVGQlZTeEpRVUZKTEVsQlEzSkNMRkZCUVZkRkxFdEJRVkZrTEVWQlFVa3NVVUZCVVN4TFFVRkxMRVZCUTJoRFdTeEZRVUZQTEZGQlFWRXNTVUZCU1VVc1JVRkJTeXhOUVVGTkxFVkJRMnhEUml4RlFVRlBMRTlCUVZNc1IwRkRhRUpCTEVWQlFVOHNaVUZCYVVJc1IwRkRlRUlzU1VGQlRVY3NSVUZCVTJJc1JVRkJTU3hUUVVGVFZTeERRVUZOTEVWQlEyeERMRWRCUVVrc1EwRkJRMW9zUlVGQlNTeGhRVUZqTEVOQlEyNUNMRWxCUVVsblFpeEZRVUZWTEV0QlFVc3NWVUZCVlVRc1EwRkJUU3hGUVVNdlFrTXNSVUZCVVN4UFFVRlRMRXRCUTJwQ1FTeEZRVUZWUVN4RlFVRlJMRlZCUVZVc1JVRkJSeXhGUVVGRkxFVkJRVWtzVVVGRGVrTkRMRWRCUVV0cVFpeEZRVUZKTEVsQlFVa3NVVUZCVVN4VFFVRlZMR3RHUVVGclJtZENMRU5CUVU4c01FTkJRVEJETEVWQlEyeExhRUlzUlVGQlNTeGhRVUZsTEVWQlEzWkNMRU5CUTBFc1QwRkJUMlVzUTBGRFdDeERRVU5CTEU5QlFVOHNTMEZCU3l4VlFVRlZVaXhEUVVGTExFTkJReTlDTEVORGRFUkJMRk5CUVZOWExFZEJRVmRETEVWQlFVdERMRVZCUVU5RExFVkJRVXNzUTBGRGFrTXNTVUZCVFVNc1JVRkJTVU1zUjBGQlYwb3NSVUZCU3l4UFFVRlhSU3hEUVVGSExFVkJRMnhEUnl4RlFVRkpSQ3hIUVVGWFNDeEZRVUZQTEU5QlFWZERMRU5CUVVjc1JVRkRNVU1zVDBGQlR5eEpRVUZKU1N4SFFVRkxTQ3hGUVVGSFJTeERRVUZETEVOQlEzaENMRU5CUTBFc1NVRkJUVU1zUjBGQlRpeE5RVUZOUXl4RFFVRkxMRU5CUTFBc1dVRkJXVkFzUlVGQlMwTXNSVUZCVVN4TFFVRk5MRU5CUXpOQ0xFOUJRVThzWlVGQlpTeExRVUZOVHl4SFFVRlhMRU5CUVVVc1RVRkJUME1zUlVGQlN5eERRVUZETEVWQlEzUkVMRXRCUVVzc1NVRkJUVlFzUlVGRFdDeExRVUZMTEUxQlFWRkRMRU5CUTJwQ0xFTkJRMEVzVFVGQlRWTXNSVUZCVVN4RFFVTldMRWRCUVVrc1EwRkJSU3hKUVVGQlZpeEZRVUZMTEUxQlFVRkRMRU5CUVUwc1JVRkJTU3hMUVVOeVFpeFBRVUZKVlN4RlFVRlBXQ3hEUVVGSExFbEJRMVpCTEVWQlFVMUJMRVZCUVVrc1RVRkJUVlVzUTBGQlRTeEhRVU4wUWtNc1JVRkJUMVlzUTBGQlN5eEpRVU5hUVN4RlFVRlJRU3hGUVVGTkxFMUJRVTFUTEVOQlFVMHNSMEZEZGtJc1NVRkJTVWdzUlVGQlMxQXNSVUZCUzBNc1EwRkJTeXhEUVVNNVFpeERRVU5CTEU5QlFVOVhMRVZCUVVkV0xFVkJRVXNzUTBGRFdDeEpRVUZOVnl4RlFVRlBXQ3hIUVVGQkxFMUJRVUZCTEVWQlFVc3NVMEZCVnl4SlFVRkpMRWxCUVZFc1EwRkJReXhGUVVNeFF5eFBRVUZQV1N4SFFVRmxXaXhGUVVGTFZ5eEZRVUZOTEVsQlFVa3NRMEZEZWtNc1EwRkRRU3hUUVVGVFdDeEZRVUZMWVN4RlFVRlhReXhGUVVGaExFTkJRMnhETEU5QlFVOWtMRWRCUVVFc1RVRkJRVUVzUlVGQlN5eEpRVU5PWlN4SFFVRmpMRXRCUVUxbUxFVkJRVXRoTEVWQlFWZERMRU5CUVZjc1JVRkRMME1zUzBGQlN5eFZRVUZWTEVsQlFVa3NRMEZETjBJc1EwRkRTaXhGUXpkQ1FTeFRRVUZUUlN4SFFVRnZRa01zUlVGQldVTXNSVUZCUzBNc1JVRkJVeXhEUVVwMlJDeEpRVUZCUXl4RlFVOUpMRk5CUm1GQkxFVkJRVUZHTEVWQlFVa3NVMEZCU2l4TFFVRkJSU3hGUVVGalNDeEZRVUZYTEUxQlEySkpMRWRCUVRCQ1F5eEpRVU5zUTB3c1JVRkJXVU1zUlVGQlMwTXNRMEZCVHl4RFFVTTNReXhEUVVOQkxGTkJRVk5ITEVkQlFYbENMRU5CUVVVc1VVRkJRVU1zUlVGQlV5eE5RVUZCUXl4RFFVRk5MRVZCUVVkT0xFVkJRVXNzUTBGQlJTeG5Ra0ZCUVU4c1JVRkJhVUlzVlVGQlFVTXNSVUZCVnl4WFFVRkJReXhGUVVGWkxGbEJRVUZETEVWQlFXRXNWVUZCUVVNc1EwRkJWU3hGUVVGSExFTkJRek5JTEVkQlFVMHNRMEZCUlN4UFFVRkJReXhGUVVGUkxGRkJRVk1zUTBGQlJTeGpRVUZCUXl4RFFVRmpMRU5CUVVVc1JVRkJTV0lzUlVGRGVrTmpMRVZCUVZVc1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlIyUXNSVUZCU3l4RFFVRkZMRTlCUVZGVExFVkJRVmtzUzBGQlRTeEpRVUZMTEVOQlFVTXNSVUZEY2tWTkxFVkJRVmtzUjBGRFZrTXNSVUZCVVN4RFFVRkRMRVZCUTJZc1VVRkJVME1zUlVGQlNTeEZRVUZIUVN4RlFVRkpXQ3hGUVVGTkxFOUJRVkVzUlVGQlJWY3NSVUZCUnl4RFFVTnVReXhKUVVGTlF5eEZRVUZQV2l4RlFVRk5WeXhEUVVGRExFVkJRMmhDV2l4RlFVRlZMRXRCUTJRc1IwRkJTV01zUlVGQlQwUXNRMEZCU1N4RlFVTlFMRU5CUVVOSUxFZEJRV0ZITEVWQlFVc3NZVUZEYmtKR0xFVkJRVTBzUzBGQlN5eEZRVUZGTEVWQlEycENTU3hIUVVGcFFuQkNMRVZCUVV0blFpeEZRVUZQUlN4RlFVRkxMR05CUVdWSUxFTkJRVk1zUlVGRGRFUkhMRVZCUVVzc1ZVRkRUR0lzUlVGQlZXRXNSVUZCU3l4cFFrRkZaRWNzUlVGQlQwZ3NRMEZCU1N4RlFVRkhMRU5CUTI1Q0xFbEJRVTFKTEVWQlFVdElMRVZCUVU5RUxFVkJRVXNzUjBGQlJ5eEZRVUZKUVN4RlFVRkxMRWxCUVUwc1MwRkRja05KTEVsQlEwa3NRMEZCUTFBc1IwRkJZVThzUlVGQlJ5eGhRVU5xUWs0c1JVRkJUU3hMUVVGTExFVkJRVVVzUlVGRGFrSkpMRWRCUVdsQ2NFSXNSVUZCUzJkQ0xFVkJRVTlOTEVWQlFVY3NZMEZCWlZBc1EwRkJVeXhGUVVWb1JTeERRVU5CUVN4RlFVRlpMRWRCUTFvc1NVRkJTVkVzUlVGQlRVTXNSMEZCVlU0c1JVRkJUVW9zUlVGQlV5eEpRVUZQVkN4RlFVRlZMRXRCUVU4c1NVRkJUMVVzUlVGQldTeEZRVUZMTEVWQlF5OUZWaXhKUVVOQmEwSXNSMEZCVDBVc1IwRkJXVVlzUlVGQlMyUXNSVUZCV1Vrc1JVRkJZMUlzUTBGQlR5eERRVUZETEVkQlF6RkVWU3hIUVVGaFZpeEpRVU5pVlN4RlFVRlpMRWxCUTJoQ1F5eEZRVUZOTEV0QlFVdFVMRVZCUVd0Q1owSXNRMEZCUnl4RFFVTndReXhEUVVOQkxFbEJRVWxCTEVWQlEwb3NSMEZCU1ZBc1JVRkJUU3hUUVVGWExFVkJRMnBDVHl4RlFVRk5aaXhGUVVGVkxFMUJRVkZCTEVWQlFWVXNVVUZGYWtNc1EwRkRSR1VzUlVGQlRWQXNSVUZCVFN4RFFVRkRMRVZCUTJJc1VVRkJVME1zUlVGQlNTeEZRVUZIUVN4RlFVRkpSQ3hGUVVGTkxFOUJRVkVzUlVGQlJVTXNSVUZCUnl4RFFVTnVReXhKUVVGTlV5eEZRVUZQVml4RlFVRk5ReXhEUVVGRExFVkJRM0JDVFN4SFFVRlBSeXhGUVVGUE8wRkJRVUVzUlVGQlMyUXNRMEZCVFN4SFFVRkhZeXhEUVVGSkxFZEJRVXM3UVVGQlFTeERRVU42UXl4RFFVTktMRU5CUTBFc1QwRkJTWEpDTEVkQlEwRnJRaXhIUVVGUE8wRkJRVUVzUlVGQlQwa3NSMEZCWTJRc1JVRkJZMUlzUTBGQlR5eEZRVUZIVHl4RFFVRk5MRVZCUTNSRVJDeEhRVU5CUVN4RlFVRlZMRWRCUlZSSkxFZEJRV0ZNTEVkQlEyeENRU3hGUVVGWkxFVkJRMVJoTEVOQlExZ3NRMEZEUVN4VFFVRlRjRUlzUjBGQmQwSXNRMEZCUlN4TlFVRkJSeXhEUVVGTkxFVkJRVWRPTEVWQlFVc3NRMEZCUlN4VlFVRkJVU3hGUVVGWExGZEJRVUZETEVOQlFWY3NSVUZCUnl4RFFVTjRSU3hIUVVGTkxFTkJRVVVzVDBGQlFVY3NSVUZCVVN4WFFVRkJaMElzUlVGQldTeHpRa0ZCZFVKRExFVkJRVmNzVVVGQlV5eERRVUZGTEdOQlFVRm9RaXhEUVVGakxFTkJRVVVzUlVGQlNXSXNSVUZETjBaVExFZEJRV050UWl4RlFVTmtMRWxCUVUxa0xFVkJRVlVzVDBGQlR5eFBRVUZQTEVOQlFVTXNSVUZCUjJRc1JVRkJTeXhEUVVOdVF5eFBRVUZSVXl4RlFVTlNMRTlCUVZFc1IwRkRVaXhMUVVGTkxFbEJRMVlzUTBGQlF5eEZRVU5IY1VJc1JVRkJZU3hIUVVOaVF5eEZRVUZsTEVWQlEySm1MRVZCUVZFc1EwRkJReXhGUVVObUxGRkJRVk5ETEVWQlFVa3NSVUZCUjBFc1JVRkJTVmdzUlVGQlRTeFBRVUZSTEVWQlFVVlhMRVZCUVVjc1EwRkRia01zU1VGQlRVTXNSVUZCVDFvc1JVRkJUVmNzUTBGQlF5eEZRVU5vUWxvc1JVRkJWU3hMUVVOa0xFZEJRVWxqTEVWQlFVOUVMRU5CUVVrc1JVRkRVRUVzUlVGQlN5eGhRVU5NUml4RlFVRk5MRXRCUVVzc1JVRkJSU3hGUVVOcVFra3NSMEZCYVVKd1FpeEZRVUZMWjBJc1JVRkJUMFVzUlVGQlN5eGpRVUZsTEVWQlFVc3NSVUZEYkVSQkxFVkJRVXNzVlVGRFRHSXNSVUZCVldFc1JVRkJTeXhwUWtGRlpFY3NSVUZCVDBnc1EwRkJTU3hGUVVGSExFTkJRMjVDTEVsQlFVMUpMRVZCUVV0SUxFVkJRVTlFTEVWQlFVc3NSMEZCUnl4RlFVRkpRU3hGUVVGTExFbEJRVTBzUzBGRGNrTkpMRWxCUTBsQkxFVkJRVWNzWVVGRFNFNHNSVUZCVFN4TFFVRkxMRVZCUVVVc1JVRkRha0pKTEVkQlFXbENjRUlzUlVGQlMyZENMRVZCUVU5TkxFVkJRVWNzWTBGQlpTeEZRVUZMTEVWQlEyaEVRU3hGUVVGSExGVkJRMGhSTEVWQlFXRXNTMEZGY2tJc1NVRkJUVVVzUlVGQlMySXNSVUZCVDBRc1JVRkJTeXhMUVVGTExFVkJRVWxCTEVWQlFVc3NUVUZCVVN4TFFVTjZRMk1zUjBGRFNVRXNSVUZCUnl4VlFVTklNMElzUlVGQlZUSkNMRVZCUVVjc1UwRkRZa0VzUlVGQlJ5eG5Ra0ZEU0VZc1JVRkJZU3hMUVVWYVdpeEZRVUZMTEU5QlFWTXNUMEZCVVVrc1IwRkJRU3hOUVVGQlFTeEZRVUZKTEZkQlF5OUNha0lzUlVGQlZXbENMRVZCUVVjc1VVRkZja0lzUTBGRFNXcENMRWxCUTBGNVFpeEZRVUZoTEVsQlEycENMRWxCUVVsUUxFVkJRVTFETEVkQlFWVk9MRVZCUVUxS0xFVkJRVk1zU1VGQlQxUXNSVUZCVlN4SlFVRkxMRVZCUTNKRVdTeEZRVUZKV0N4RlFVRk5MRTlCUVZNc1NVRkRia0pwUWl4SFFVRlBMRXRCUTFCc1FpeEpRVU5CYTBJc1IwRkJUMFVzUjBGQldVWXNSVUZCUzJRc1JVRkJXVWtzUlVGQlkxSXNRMEZCVHl4RFFVRkRMRWRCUXpGRUxFTkJRVU41UWl4SlFVRmxaQ3hGUVVGTkxFOUJRVk5sTEVkQlFXZENVaXhGUVVGSkxGTkJRVk03UVVGQlFTeERRVUZKTEV0QlEyaEZUeXhGUVVGaExFbEJRMnBDWkN4RlFVRk5MRXRCUVV0UExFTkJRVWNzUlVGRFpGRXNSVUZCWldZc1JVRkJUU3hOUVVONlFpeERRVU5CTEVkQlFVMHNRMEZCUlN4TlFVRkJhVUlzUlVGQlR5eEpRVUZCUXl4RFFVRkpMRVZCUVVreFFpeEZRVU4yUWl4SFFVRkpVU3hGUVVGTkxGTkJRVmNzUlVGRGFrSXNUMEZCVDJsQ0xFVkJRVkZETEVWQlIyWXNSMEZCU1N4RFFVRkRTaXhGUVVGWkxFTkJRMklzU1VGQlRVc3NSVUZCVFc1Q0xFVkJRVTBzVDBGQlR5eERRVUZEYjBJc1JVRkJTMVlzU1VGQlUxVXNSVUZCVFZZc1JVRkJTeXhQUVVGVExFVkJRVWNzUTBGQlF5eEZRVU5vUlVrc1JVRkJZVGxDTEVWQlFVa3NVVUZCVVN4VlFVRlpMRWRCUVV0dFF5eEZRVUZOYmtNc1JVRkJTU3hSUVVGUkxGTkJRMmhGTEVOQlEwRXNSMEZCU1RoQ0xFVkJRVmtzUTBGRFdpeEpRVUZKVUN4RlFVRk5WU3hGUVVOV0xGRkJRVmRRTEV0QlFWRldMRVZCUTJaUExFZEJRVTlITEVWQlFVODdRVUZCUVN4RlFVRkxSU3hEUVVGVkxFZEJRVWRvUWl4RFFVRk5MRWRCUVVkakxFTkJRVWtzUjBGQlN6dEJRVUZCTEVWQlEzUkVMRTFCUVU4c1IwRkJSMGdzUTBGQlJ6dEJRVUZCTEVWQlFVdFlMRU5CUVUwc1IwRkJSM05DTEVOQlFVY3NSVUZEYkVNc1MwRkZTU3hQUVVGUExFZEJRVWRFTEVOQlFVc3NSMEZCUjBvc1EwRkJVeXhIUVVGSFlpeEZRVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVkaExFTkJRVk1zUjBGQlIwc3NRMEZCUnl4RlFVY3pSU3hEUVVOQkxGTkJRVk5rTEVkQlFXbENMRU5CUVVVc1QwRkJRVklzUlVGQlVTeFJRVUZUTEVOQlFVVXNZMEZCUVVNc1EwRkJZeXhEUVVGRkxFVkJRVWRITEVWQlFVOVlMRVZCUVZOVkxFVkJRVmNzUTBGSGVrWXNSMEZHU1ZZc1IwRkJWMVVzU1VGRFdGWXNSVUZCVlVFc1JVRkJVU3hSUVVGUkxFOUJRVkVzUlVGQlJTeEhRVU53UTBFc1JVRkJVeXhEUVVOVUxFbEJRVTFuUXl4RlFVRkxWaXhIUVVGalpDeEZRVUZqVWl4RFFVRlBMRVZCUVVkUExFTkJRVTBzUlVGRGRrUkpMRVZCUVUwc1MwRkJTM0ZDTEVWQlFVY3NWVUZCVlN4RFFVRkRMRU5CUXpkQ0xFTkJRMG9zUTBOeVNVRXNVMEZCVTBNc1IwRkJVME1zUlVGQlQwTXNSVUZCU3l4RFFVTXhRaXhKUVVGTlF5eEZRVUZKUXl4RlFVRlRSaXhEUVVGSExFVkJRVWxCTEVWQlFVa3NUVUZCVVVFc1JVRkRkRU1zVVVGQlYwY3NTMEZCVFVvc1JVRkRZaXhIUVVGSlN5eEZRVUZQUkN4RFFVRkZMRWxCUTB4QkxFVkJRVWNzVFVGQlVVZ3NSMEZCVDBjc1JVRkJSeXhOUVVGUlJpeEhRVVUzUWtNc1JVRkJVME1zUlVGQlJ5eEhRVUZITEVkQlFVdEJMRVZCUVVjc1NVRkJTU3hSUVVGVlJpeEhRVU55UXl4UFFVRlBSU3hEUVVsMlFpeERRVU5CTEVsQlFVMUZMRWRCUVU0c1kwRkJjMEpETEVWQlFWY3NRMEZETjBJc1YwRkJWeXhUUVVGVkxFTkJRMnBDTEUxQlFVOHNkVUpCUTFnc1EwRkRRU3haUVVGWlF5eEZRVUZSTEVOQlEyaENMRTFCUVUxRExFZEJRVXRFTEVOQlFVMHNSVUZEYWtJc1MwRkJTeXhOUVVGUkxFTkJRVU1zUTBGRGJFSXNRMEZMUVN4UFFVRlBMRXRCUVV0QkxFVkJRVkZGTEVWQlFVdERMRVZCUVVzc1EwRkRNVUlzUjBGQlRTeERRVUZGTEdOQlFVRkRMRVZCUVdVc1UwRkJRVU1zUTBGQlV5eEZRVUZKUml4RlFVTTVRa2NzUlVGQlRTeEpRVUZKTEV0QlFVdE9MRU5CUVUwc1JVRkRja0pQTEVWQlFVMHNRMEZCUTJRc1JVRkJTMlVzU1VGQlZTeERRVU40UWl4SFFVRkpMRTlCUVU5SUxFZEJRV0VzVjBGRGNFSkhMRVZCUVZGSUxFVkJRVk1zUzBGQlMwZ3NSVUZCUzFRc1JVRkJTMlVzUTBGQlN5eFZRVU5vUXl4TlFVRk5MRkZCUVZGSUxFTkJRVkVzUjBGQlN5eERRVUZEUVN4RlFVRlRMRk5CUVZOYUxFTkJRVWNzUlVGRGRFUXNVVUZEUVdVc1NVRkJWU3hSUVVGaFNpeEpRVU4yUWtVc1JVRkJTU3hOUVVGTkxFdEJRVXRITEVkQlFWZG9RaXhGUVVGTFpTeEZRVUZQVEN4RFFVRkhMRU5CUVVNc1EwRkRiRVFzUlVGRFFTeEhRVUZKUkN4aFFVRmxMRWxCUTJZc1QwRkJWeXhEUVVGRFZDeEZRVUZMWlN4RFFVRkxMRWxCUVV0T0xFVkJRM1pDU3l4RlFVRkpaQ3hGUVVGTFpTeERRVUZMTEZWQlJXSk9MRWRCUVU4c1QwRkJUMEVzUjBGQlVTeFRRVU16UWl4UlFVRlhWQ3hMUVVGUExFOUJRVThzUzBGQlMxTXNRMEZCUnl4RlFVTTNRa3NzUlVGQlNXUXNSVUZCUzFNc1JVRkJTVlFzUTBGQlJ5eERRVUZETEVWQlJYcENMRTlCUVVrc1QwRkJUMDhzUlVGQlR5eG5Ra0ZCYlVJc1dVRkRha05OTEVWQlFVa3NUVUZCVFN4TFFVRkxUaXhGUVVGUExHTkJRV01zUlVGRmFrTk5MRU5CUTFnc1EwRlBRU3hKUVVGSlNTeEZRVUZOUXl4RlFVRlhMRU5CTjBSNlFpeEpRVUZCUXl4RlFUaEVVU3hKUVVGSlF5eEZRVU5CYUVJc1JVRkJUMkVzUTBGQlNTeEZRVU5ZUnl4RlFVRlJTQ3hGUVVOSUxFTkJRVU5CTEVkQlFWRXNUMEZCVDBFc1IwRkJVeXhWUVVGWkxFVkJRVVVzVVVGQlUwRXNSMEZGY2tSSExFVkJRVkVzU1VGQlNVTXNSMEZCUzBvc1JVRkJUVUVzUjBGQlFTeFpRVUZCUVN4RlFVRk5MRXRCUVVzc1JVRkhiRU5ITEVWQlFWRXNTVUZCU1VNc1IwRkJTMG9zUlVGQlN5eEpRVUZMUVN4RlFVRkxMRXRCUVVzc1JVRkRla01zU1VGQlRVc3NSVUZCVDNoQ0xFZEJRVk1zUzBGQlN5eE5RVUZQYzBJc1JVRkJUU3hIUVVGSExFVkJRM0pEUnl4SFFVRmpTaXhGUVVGQkxFdEJRVXNzVTBGQlRDeFpRVUZCUVN4RlFVRmhMR1ZCUTJwRExFZEJRVWxITEVWQlFVMHNRMEZEVGl4SFFVRkpMRU5CUVVOS0xFVkJRMFFzVFVGQlRTeEpRVUZKTEUxQlFVMHNUMEZCVDBVc1JVRkJUU3hIUVVGSExHTkJRV01zUlVGRk9VTnNRaXhGUVVGVGIwSXNSVUZCU3l4TFFVRkxMRWRCUVV0RkxFZEJRV05LTEVWQlFVMHNTMEZCU3l4RlFVTnFSRVVzUlVGQlN5eE5RVUZOTEUxQlFWRkdMRVZCUVUwc1RVRkZla0pGTEVWQlFVc3NUVUZCVVVZc1JVRkJUU3hMUVVNelFpeFRRVU5UUnl4RlFVRmhMRU5CUTJ4Q0xFbEJRVTFGTEVWQlFVa3NTMEZCU3l4TlFVRk5MRlZCUVZWRExFZEJRVkZJTEVWQlFWbElMRVZCUVU5TkxFTkJRVWtzUlVGQlNTeERRVUZETEVWQlF5OUVSQ3hKUVVGTkxFZEJRMDRzUzBGQlN5eE5RVUZOTEV0QlFVdE1MRU5CUVVzc1JVRkZja0lzUzBGQlN5eE5RVUZOTEU5QlFVOUxMRVZCUVVjc1JVRkJSMHdzUTBGQlN5eERRVU55UXl4TlFVVkpMRXRCUVVzc1RVRkJUU3hMUVVGTFFTeERRVUZMTEVOQlJUZENMRU5CUTBFc1QwRkJUM0JDTEVWQlFVc3NRMEZEVWl4SlFVRk5SeXhGUVVGTFRDeEhRVUZUTEV0QlFVc3NUVUZCVDBVc1EwRkJSeXhGUVVOdVF5eFBRVUZMUnl4RlFVVlBMRXRCUVVzc1RVRkJUU3hQUVVGUExFdEJRVXNzVFVGQlRTeFJRVUZSUVN4RFFVRkZMRVZCUVVjc1EwRkJReXhGUVVNMVF5eFBRVUZUTEVWQlJsUXNSVUZIWml4RFFVTkJMRWxCUVVsSUxFVkJRVXN5UWl4RlFVRlpMRU5CY0VkNlFpeEpRVUZCVWl4RlFYRkhVU3hKUVVGTmFFSXNSVUZCUzB3c1IwRkJVeXhMUVVGTExFMUJRVTlGTEVOQlFVY3NSVUZETjBJMFFpeEZRVUZQZWtJc1IwRkJRU3haUVVGQlFTeEZRVUZKTEUxQlEycENMRTlCUVZGblFpeEZRVUZCTEVOQlFVTlJMRWRCUVdONlFpeEZRVUZUTUVJc1EwRkJTU3hGUVVGSlFTeEZRVUZMTEUxQlFWRkJMRWxCUVRkRExFdEJRVUZVTEVWQlFYTkVMRTFCUTJ4RkxFTkJRMEVzU1VGQlNXNUNMRVZCUVVzc1EwRkRUQ3hOUVVGUExFTkJRVU1zUTBGQlEwWXNSMEZCVXl4TFFVRkxMRTFCUVU5RkxFTkJRVWNzUTBGRGNrTXNRMEZEUVN4SlFVRkpRU3hGUVVGTFpTeEZRVUZQTEVOQlExb3NTMEZCU3l4SlFVRkpMRWxCUVVsTkxFZEJRVXR5UWl4RlFVRkxaU3hEUVVGTExFVkJRVWNzUlVGQlNTeERRVU4yUXl4RFFVMUJMRTlCUVU5akxFVkJRVWR1UWl4RlFVRkxiMElzUlVGQlRTeERRVU5xUWl4SlFVRk5ha0lzUlVGQlRXbENMRVZCUVU4c1NVRkJTVUVzUlVGQlUzQkNMRWRCUVVFc1RVRkJRVUVzUlVGQlN5eFRRVUZYTEVsQlFVa3NTVUZCVVN4RFFVRkRMRVZCUTNwRVFTeEhRVUZCTEUxQlFVRkJMRVZCUVVzc1ZVRkRURUVzUlVGQlNTeFRRVUZUUnl4RFFVRkhMRVZCUTNCQ0xGRkJRVmRoTEV0QlFWRXNTMEZCU3l4TlFVTndRa3NzUjBGQlpYSkNMRVZCUVV0SExFVkJRVXRoTEVOQlFVa3NSVUZEYWtNc1QwRkJUMklzUTBGRFdDeERRVU5CTEZOQlFWTklMRVZCUVV0elFpeEZRVUZYUXl4RlFVRmhMRU5CUTJ4RExFZEJRVWtzUTBGQlEzWkNMRVZCUTBRc1QwRkJUeXhMUVVGTExGVkJRVlVzU1VGQlNTeEZRVU01UWl4UlFVRlhaMElzUzBGQlVTeExRVUZMTEUxQlEzQkNMRWRCUVVrc1EwRkJRM1JDTEVWQlFVOXpRaXhEUVVGSkxFVkJRMW9zVFVGQlRTeEpRVUZKTEUxQlFVMHNjME5CUVhORExFdEJRVXNzVlVGQlZVRXNRMEZCU1N4RFFVRkRMRlZCUVZVc1JVRkZOVVlzVFVGQlNTeERRVUZEYUVJc1JVRkJTU3hsUVVGcFFpeExRVUZMTEdsQ1FVRnBRaXhGUVVGTExFbEJRMnBFUVN4RlFVRk5MRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWRCTEVWQlFVc3NRMEZCUlN4alFVRmxMRVZCUVVzc1EwRkJReXhIUVVOcVJIZENMRWRCUVc5Q0xFdEJRVTE0UWl4RlFVRkxMRU5CUTJ4RExHZENRVUZwUWl4SFFVTnFRaXhWUVVGWExFTkJRVVVzVFVGQlR5eEpRVUZMTEVsQlFVc3NSMEZCU1N4RlFVTnNReXhYUVVGWlFTeEZRVUZKTEZGQlFWVXNSMEZETVVJc1dVRkJRWFZDTEVWQlEwRXNWVUZCUVVRc1EwRkRTaXhEUVVGRExFTkJRMHdzUTBGRFNpeEZRekZKUVN4SlFVRk5SeXhIUVVGTkxFTkJRMUlzVjBGQldTeE5RVU5hTEZGQlFWTXNSMEZEVkN4VlFVRlhReXhIUVVOWUxFbEJRVXNzZDBKQlEwd3NVVUZCVVVRc1JVRkJTMFVzUlVGQlV5eERRVU5zUWl4UFFVRkxReXhIUVVGTlNDeERRVUZITEVkQlExWkZMRVZCUVZFc2FVTkJRV2xETEVWQlEzUkRSaXhEUVVOWUxFVkJRMEVzVjBGQldTeERRVUZEU1N4RlFVRlJReXhGUVVGTFF5eEpRVUZSVEN4SFFVRlJMRXRCUVV0SExFVkJRVkZETEVWQlFVdERMRU5CUVVjc1EwRkRia1VzUlVOUVFTeEpRVUZOUXl4SFFVRk9MR05CUVhOQ1F5eEZRVUZYTEVOQlF6ZENMRmRCUVZjc1UwRkJWU3hEUVVOcVFpeE5RVUZQTEhWQ1FVTllMRU5CUTBFc1dVRkJXVU1zUlVGQlVTeERRVU5vUWl4TlFVRk5ReXhIUVVGTFJDeERRVUZOTEVWQlEycENMRXRCUVVzc1RVRkJVU3hEUVVGRExFTkJRMnhDTEVOQlEwRXNTVUZCU1VVc1JVRkJUeXhEUVVOUUxFdEJRVXNzVFVGQlRTeExRVUZMUVN4RFFVRkxMRU5CUTNwQ0xFTkJVMEVzVDBGQlQwTXNSVUZCU3l4RFFVTlNMRWxCUVUxRExFVkJRVTFETEVkQlFWbEdMRU5CUVVjc1JVRkRNMElzVDBGQlNTeFBRVUZQUXl4SFFVRlJMRk5CUTFJc1IwRkRReXhMUVVGTExFMUJRVTBzVDBGQlQwRXNSVUZCU3l4RFFVRkRMRVZCUTNwQ0xFOUJRVk1zUTBGRGVFSXNRMEZEUVN4SlFVRkpSQ3hGUVVGTFJ5eEZRVUZaTEVOQlEycENMRWxCUVUxR0xFVkJRVTFETEVkQlFWbEdMRU5CUVVjc1JVRkRNMElzUjBGQlNTeFBRVUZQUXl4SFFVRlJMRk5CUTJZc1QwRkRTaXhKUVVGTlJ5eEZRVUZMTEV0QlFVc3NUVUZCVFVnc1EwRkJSeXhGUVVONlFpeE5RVUZQTEVOQlFVTkZMRWRCUVdORkxFVkJRVk5FTEVOQlFVVXNSVUZCU1VFc1JVRkJSeXhOUVVGUlFTeERRVU53UkN4RFFVOUJMRWxCUVVsS0xFVkJRVXNzUTBGRFRDeEpRVUZOUXl4RlFVRk5ReXhIUVVGWlJpeERRVUZITEVWQlF6TkNMRTlCUVU4c1QwRkJUME1zUjBGQlVTeFZRVUZaUVN4RlFVRk5MRXRCUVVzc1RVRkJUU3hOUVVOMlJDeERRVkZCTEVsQlFVbEVMRVZCUVV0RUxFVkJRVThzUTBGRFdpeEpRVUZOUlN4RlFVRk5ReXhIUVVGWlJpeERRVUZITEVWQlF6TkNMRWRCUVVrc1QwRkJUME1zUjBGQlVTeFRRVU5tTEUxQlFVMHNTVUZCU1N4TlFVRk5MQ3RDUVVFclFrUXNRMEZCUnl4SFFVRkhMRVZCUTNwRUxFbEJRVTFOTEVWQlFVOHNTMEZCU3l4TlFVRk5UQ3hEUVVGSExFVkJRM1pDU1N4RlFVRlRReXhEUVVGSkxFZEJRVXRETEVkQlFXTlNMRU5CUVVzc1JVRkRja05QTEVWQlFVc3NUVUZCVVZBc1JVRkZZaXhMUVVGTExFMUJRVTFGTEVOQlFVY3NSVUZCU1VZc1EwRkRNVUlzUTBGRFFTeFBRVUZQVXl4RlFVRkhReXhGUVVGTExFTkJRMWdzU1VGQlRVTXNSVUZCVFN4RFFVRkRMRVZCUTFSRUxFZEJRVUVzVFVGQlFVRXNSVUZCU3l4VlFVTk1RU3hGUVVGSkxGTkJRVk5ETEVOQlFVY3NSVUZEY0VJc1NVRkJTVU1zUlVGQlNTeEZRVU5TTEZGQlFWZERMRXRCUVZFc1MwRkJTeXhOUVVOd1FrWXNSVUZCU1N4TFFVRkxSeXhIUVVGTFJDeEZRVUZOTEU5QlFVOUVMRWRCUVVjc1JVRkJSMFlzUTBGQlJ5eERRVUZETEVWQlEzcERMRTlCUVU5RExFTkJRMWdzUTBGRFFTeFRRVUZUUkN4RlFVRkxTeXhGUVVGWFF5eEZRVUZoTEVOQlEyeERMRTlCUVV0T0xFVkJSVVZQTEVkQlFXOUNMRXRCUVUxUUxFVkJRVXNzUTBGRGJFTXNaMEpCUVdsQ0xFdEJRMnBDTEZWQlFWY3NRMEZCUlN4TlFVRlBMRWxCUVVzc1NVRkJTeXhIUVVGSkxFVkJRMnhETEZsQlFXRkJMRVZCUVVrc1VVRkJWU3hKUVVGTkxFdEJRMnBETEZsQlFVRk5MRVZCUTBFc1ZVRkJRVVFzUTBGRFNpeERRVUZETEVWQlVGVXNTMEZCU3l4VlFVRlZMRWxCUVVrc1EwRlJiRU1zUTBGRFFTeFBRVUZQTEV0QlFVdHFRaXhGUVVGUmIwSXNSVUZCUzFJc1JVRkJTeXhEUVVNeFFpeEhRVUZOTEVOQlFVVXNVMEZCUVZNc1EwRkJVeXhGUVVGSlZDeEZRVU5tUXl4RlFVRk5MRWxCUVVrc1MwRkJTMklzUTBGQlRTeEZRVU16UWl4SFFVRkpiMElzUjBGQlR5eFBRVUZQTEZsQlFWa3NUMEZCVDBFc1EwRkJSeXhGUVVGSExFTkJRM1pETEVsQlFVbE9MRVZCUVVrc1JVRkRVaXhSUVVGVFVDeExRVUZOWVN4RlFVRkxMRU5CUTJoQ0xFZEJRVWtzVDBGQlQwTXNSMEZCWVN4WFFVRlpMRU5CUTJoRExFbEJRVTFzUWl4RlFVRk5hVUlzWVVGQlpTeEpRVUZOWWl4RlFVRkxMRTlCUVU5UExFZEJRVWNzUlVGRGFFUlFMRVZCUVV0akxFVkJRVk1zUzBGQlMwUXNSVUZCUzJwQ0xFVkJRVXRKTEVOQlFVVXNRMEZEYmtNc1EwRkRRVTBzUlVGQlNTeE5RVUZOTEV0QlFVdFRMRWRCUVZkbUxFVkJRVWtzVDBGQlYwc3NRMEZCUnl4RFFVRkRMRU5CUTJwRUxFTkJRMG9zUTBGRFFTeFBRVUZQUXl4RFFVTllMRU5CUTBvc1JVRkRRU3hUUVVGVFVpeEhRVUZaUml4RlFVRkxMRU5CUTNSQ0xFbEJRVWxETEVWQlFVMUpMRVZCUVZOTUxFTkJRVWNzUlVGQlNVRXNSVUZCU1N4TlFVRlJRU3hGUVVOMFF5eFBRVUZKUXl4SFFVRlBMRTlCUVU5QkxFZEJRVkVzVjBGRGRFSkJMRVZCUVUwc1QwRkJUMEVzUTBGQlJ5eEhRVU5pTEU5QlFVOUJMRWRCUVZFc1ZVRkJXU3hQUVVGUExGVkJRVlZCTEVOQlFVY3NSMEZCUzBFc1IwRkJUeXhGUVVNMVJFRXNSVUZEUVN4SlFVTldMRU5ETTBkQkxFbEJRVTF0UWl4SFFVRk5MRU5CUTFJc1YwRkJXU3hOUVVOYUxGRkJRVk1zUjBGRFZDeFZRVUZYUXl4SFFVTllMRWxCUVVzc2QwSkJRMHdzVVVGQlVVUXNSVUZCUzBVc1JVRkJVeXhEUVVOc1FpeFBRVUZMUXl4SFFVRk5TQ3hEUVVGSExFZEJRMVpGTEVWQlFWRXNhME5CUVd0RExFVkJRM1pEUml4RFFVTllMRVZCUTBFc1YwRkJXU3hEUVVGRFNTeEZRVUZSUXl4RlFVRkxReXhKUVVGUlRDeEhRVUZSTEV0QlFVdEhMRVZCUVZGRExFVkJRVXRETEVOQlFVY3NRMEZEYmtVc1JVTmFRU3hKUVVGTlF5eEhRVUZUTEVOQlExZ3NVMEZCVlVNc1IwRkJVeXhQUVVGUFFTeEhRVUZWTEZOQlEzQkRMRkZCUVZNc1IwRkRWQ3hKUVVGTExIZENRVU5NTEZGQlFWTkRMRWRCUVU5QkxFVkJRMmhDTEZWQlFWVkRMRVZCUVUxRExFVkJRVXRETEVWQlFWZERMRVZCUVdFc1EwRkRla01zVDBGQlFVWXNSVUZCVFN4UFFVRlBMRTlCUVU4c1EwRkJSU3hoUVVGakxFVkJRVXNzUlVGQlIwRXNRMEZCUnl4RlFVTjRRMGNzUjBGQlowSktMRVZCUVUxRExFVkJRVXRETEVWQlFWZERMRU5CUVZjc1EwRkROVVFzUTBGRFNpeEZRMVJCTEVsQlFVMUZMRWRCUVZVc1EwRkRXaXhUUVVGVlF5eEhRVUZUUVN4SFFVRlRMRXRCUXpWQ0xGZEJRVmtzU1VGQlRTeEpRVUZKUXl4RlFVRlBMRWxCUVVrc1JVRkRha01zVVVGQlV5eEhRVU5VTEVsQlFVc3NlVUpCUTB3c1MwRkJUU3gzUWtGRFRpeFJRVUZUTEVsQlFVMHNTVUZCU1VFc1JVRkJUeXhKUVVGSkxFVkJRemxDTEZWQlFWY3NRMEZCUXl4RFFVRkZMRTlCUVVGRExFTkJRVThzUlVGQlIwTXNTVUZCVVN4UFFVRlBSQ3hIUVVGWExGVkJRVmxJTEVkQlFWRXNTMEZCU3l4TFFVRkxSeXhEUVVGTkxFVkJRMmhHUVN4RlFVTkJReXhGUVVGSkxGRkJRVkVzVDBGRGRFSXNSVU5XUVN4SlFVRk5ReXhIUVVGVkxFTkJRMW9zVTBGQlZVTXNSMEZCVXl4UFFVRlBRU3hIUVVGVkxGVkJRM0JETEZGQlFWTXNSMEZEVkN4SlFVRkxMSGxDUVVOTUxFdEJRVTBzYjBOQlEwNHNVVUZCVTBNc1IwRkJUeXhKUVVGSlF5eEZRVUZQUkN4RlFVRkpMRU5CUVVNc1NVRkJUU3hMUVVGUFFTeEZRVUZKTEVOQlFVTXNTVUZCVFN4SFFVRkhMRVZCUXpORUxGVkJRVlVzUTBGQlJTeFBRVUZCUlN4RlFVRlJMRTFCUVVGSUxFTkJRVTBzUlVGQlIwa3NSVUZCU3l4RFFVTTVRaXhIUVVGSlJDeEhRVUZWU2l4SFFVRlJMRXRCUVVzc1MwRkJTMGtzUTBGQlRTeEZRVUZITEVOQlEzSkRMRWxCUVUxRkxFVkJRVXRHTEVWQlFVOHNRMEZCUXl4SlFVRk5MRXRCUVU5QkxFVkJRVThzUTBGQlF5eEpRVUZOTEVsQlF6bERMRWRCUVVsSUxFbEJRVlZMTEVWQlExWXNUMEZCVDBZc1EwRkRaaXhEUVVOQkxFOUJRVTlJTEVWQlFWRkpMRVZCUVVrc1VVRkJVU3hSUVVGVlFTeEZRVUZKTEZGQlFWRXNVVUZEY2tRc1EwRkRTaXhGUTJoQ1FTeFRRVUZUUlN4SFFVRm5RaXhEUVVGRkxFOUJRVUZETEVWQlFWRXNhMEpCUVVGRExFVkJRVzFDTEVsQlFVRkRMRVZCUVVzc1RVRkJRVU1zUTBGQlRTeEZRVUZITEVOQlEyaEZMRWRCUVVrc1QwRkJUMEVzUjBGQlZTeFRRVU5xUWl4UFFVRlBMRTlCUVU5QkxFTkJRVXNzUlVGRGRrSXNTVUZCVFVNc1JVRkJUU3hQUVVGUFJDeEhRVUZWTEZOQlFWZEJMRVZCUVZFc1QwRkJUMEVzUTBGQlN5eEZRVU0xUkN4SFFVRkpMRU5CUVVNc1UwRkJVME1zUTBGQlJ5eEZRVU5pTEU5QlFVOHNUVUZCVFVFc1EwRkJSeXhGUVVGSkxFOUJRVk5CTEVWQlFVMHNSVUZCU1N4UlFVRlZMRTlCUTNKRUxFbEJRVWxETEVWQlFVa3NTMEZCU3l4VlFVRlZSaXhEUVVGTExFVkJRelZDTEVkQlFVa3NRMEZCUTBnc1IwRkRSRU1zU1VGRFF5eERRVUZEUXl4SFFVRlBRU3hKUVVGUkxEUkNRVU5xUWl4TlFVRk5MRXRCUVV0SExFTkJRVU1zUlVGQlJ5eERRVU5tTEVsQlFVbERMRVZCUVVsRUxFVkJRVVVzVVVGQlVTeEhRVUZITEVWQlEycENReXhGUVVGSkxFbEJRMHBCTEVWQlFVbEVMRVZCUVVVc1QwRkRUa0VzUjBGQlN5eExRVVZVTEVsQlFVbEZMRVZCUVVsT0xFZEJRWEZDU1N4RlFVRkZMRTlCUVZORExFVkJRVWtzUjBGRE5VTXNTMEZCVDBNc1MwRkJUU3hIUVVOVVJpeEhRVUZMTEVkQlEySXNRMEZEUVN4UFFVRlBRU3hEUVVOWUxFTkRiRUpCTEVsQlFVMUhMRWRCUVZjc1EwRkRZaXhUUVVGVlF5eEhRVUZUTEU5QlFVOUJMRWRCUVZVc1UwRkRjRU1zVVVGQlV5eEhRVU5VTEVsQlFVc3NNRUpCUTB3c1MwRkJUU3hwUkVGRFRpeFJRVUZUUXl4SFFVRlBRU3hGUVVGSkxFMUJRVTBzUlVGQlJTeEZRVUZGTEZsQlFWa3NTVUZCVFN4TlFVTXhReXhKUVVOQlFTeEZRVUZKTEVOQlFVTXNTVUZCVFN4SlFVTlFMRTlCUVU4c2EwSkJRMUFzVDBGQlR5eHJRa0ZEYWtJc1ZVRkJWME1zUlVGRFppeEZRVU5OUXl4SFFVRlhMRU5CUTJJc1UwRkJWVWdzUjBGQlV5eFBRVUZQUVN4SFFVRlZMRk5CUTNCRExGRkJRVk1zUjBGRFZDeEpRVUZMTERCQ1FVTk1MRTlCUVZFc1RVRkRVaXhMUVVGTkxIbEVRVU5PTEZGQlFWTkRMRWRCUVU4c1YwRkJWMEVzUTBGQlJ5eEZRVU01UWl4VlFVRlZSeXhGUVVGTkxFTkJRMW9zU1VGQlRVTXNSVUZCVFN4UFFVRlBSQ3hGUVVGTExFdEJRVXNzUlVGRE4wSXNUMEZCVHl4VFFVRlRReXhEUVVGSExFVkJRVWxCTEVWQlFVa3NZMEZCWXl4RlFVRkpTQ3hIUVVGblFrVXNRMEZCU1N4RFFVTnlSU3hEUVVOS0xFVkJRMDFGTEVkQlFWRXNRMEZEVml4VFFVRlZUaXhIUVVGVExFOUJRVTlCTEVkQlFWVXNVMEZEY0VNc1VVRkJVeXhIUVVOVUxFbEJRVXNzTUVKQlEwd3NTMEZCVFN4eFEwRkRUaXhSUVVGUlF5eEZRVUZMTEVOQlExUXNTVUZCVFVjc1JVRkJUeXhKUVVGSlJ5eEZRVUZQTEZkQlFWZE9MRU5CUVVjc1EwRkJReXhGUVVOcVEwOHNSVUZCVFZBc1JVRkJTU3hSUVVGUkxFZEJRVWNzUlVGRE0wSXNUMEZCU1U4c1NVRkJVU3hKUVVGTlVDeEZRVUZKUVN4RlFVRkpMRTlCUVZNc1EwRkJReXhKUVVGTkxFMUJRM1JEUnl4RlFVRkxMR3RDUVVGdlFrZ3NSVUZCU1N4UFFVRlRUeXhGUVVGTkxFZEJRM3BEU2l4RFFVTllMRVZCUTBFc1ZVRkJWMFlzUlVGRFppeEZRM1JEUVN4SlFVRk5UeXhIUVVGbFF5eEhRVUZWTEU5QlFVOUJMRWRCUVZVc1ZVRkJXU3hQUVVGUExGVkJRVlZCTEVOQlFVc3NSVUZETlVWRExFZEJRV0VzUTBGQlEwTXNSVUZCUzBNc1JVRkJVVU1zUlVGQlR5eERRVUZGTEZsQlFVRkRMRU5CUVZrc1NVRkJUMEVzUlVGQll5eFBRVUZQU0N4RFFVRkhMRVZCUVVrc1UwRkJVMEVzUlVGQlNTeFZRVUZWUXl4RFFVRk5MRVZCUVVkRExFTkJRVXNzUlVGRE9VZ3NVMEZCVTBVc1IwRkJZVU1zUlVGQlRVZ3NSVUZCVDBrc1JVRkJVU3hEUVVOMlF5eEhRVUZOTEVOQlFVVXNUVUZCUVZJc1EwRkJUU3hGUVVGSlR5eEZRVU5zUWl4UFFVRkpVaXhIUVVGWlF5eERRVUZMTEVkQlFVdEJMRWRCUVZNc1JVRkRlRUpSTEVWQlFWTlNMRVZCUVUwc1UwRkJVMGtzUTBGQlN5eEZRVU5xUTBzc1IwRkJaMEpHTEVOQlFVa3NRMEZETDBJc1EwRkRRU3hKUVVGTlJ5eEhRVUZUTEVOQlExZ3NVMEZCVlZZc1IwRkJVMFFzUjBGQldVTXNRMEZCU3l4SFFVRkxRU3hIUVVGVExFVkJRMnhFTEZGQlFWTXNSMEZEVkN4SlFVRkxMSGRDUVVOTUxFOUJRVkVzVFVGRFVpeExRVUZOTEdGQlEwNHNVVUZCVXl4RFFVRkRSU3hGUVVGTFV5eEZRVUZWUXl4SlFVRlJXQ3hIUVVGWFF5eEZRVUZMTEVWQlFVY3NSVUZCUjFVc1EwRkJSeXhGUVVNeFJDeFZRVUZYVEN4SFFVRlJSQ3hIUVVGaFF5eEZRVUZOTEVWQlFVY3NTVUZCU1N4RFFVTnFSQ3hGUVVOTlRTeEhRVUZOTEVOQlExSXNVMEZCVldRc1IwRkRWaXhSUVVGVExFZEJRMVFzU1VGQlN5eDNRa0ZEVEN4TFFVRk5MR2RDUVVOT0xGRkJRVk1zUTBGQlEwY3NSVUZCUzFNc1JVRkJWVU1zU1VGQlVWZ3NSMEZCVjBNc1JVRkJTeXhGUVVGSExFZEJRVWxWTEVOQlFVY3NSVUZETTBRc1ZVRkJWMGdzUlVGRFppeEZRVU5OU3l4SFFVRlRMRU5CUTFnc1UwRkJWV1FzUjBGQlUwUXNSMEZCV1VNc1EwRkJTeXhIUVVGTFFTeEhRVUZUTEVWQlEyeEVMRkZCUVZNc1IwRkRWQ3hKUVVGTExIZENRVU5NTEU5QlFWRXNUVUZEVWl4TFFVRk5MRzFDUVVOT0xGRkJRVk1zUTBGQlEwVXNSVUZCUzFNc1JVRkJWVU1zU1VGQlVWZ3NSMEZCVjBNc1JVRkJTeXhGUVVGSExFZEJRVWxWTEVOQlFVY3NSVUZETTBRc1ZVRkJWMHdzUjBGQlVVUXNSMEZCWVVNc1JVRkJUU3hIUVVGSkxFbEJRVWtzUTBGRGJFUXNSVU16UWtFc1NVRkJUVkVzUjBGQlV5eERRVU5ZUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4SFFVTkJReXhIUVVOQlF5eEhRVU5CUXl4SFFVTkJReXhGUVVOS0xFVkRhRUpCTEZOQlFWTkRMRWRCUVZsRExFVkJRVThzUTBGRGVFSXNUMEZCVHl4UFFVRlBRU3hIUVVGVkxGVkJRVmtzVDBGQlR5eFZRVUZWUVN4RFFVRkxMRU5CUXpsRUxFTkJRMEVzU1VGQlRVTXNSMEZCWjBJc1EwRkJReXhEUVVGRkxFMUJRVUZFTEVOQlFVMHNTVUZCVFN4TFFVRkxMRlZCUVZWQkxFTkJRVXNzUlVGRGJrUkZMRWRCUVdNc1EwRkRhRUlzUTBGRFNTeFRRVUZWUml4SFFVRlRMRTlCUVU5QkxFZEJRVlVzVTBGRGNFTXNVVUZCVXl4SFFVTlVMRWxCUVVzc2QwSkJRMHdzVVVGQlUwY3NSMEZCVDBFc1JVRkRhRUlzVlVGQlYwWXNSVUZEWml4RlFVTkJMRU5CUTBrc1UwRkJWVVFzUjBGQlUwRXNSMEZCVXl4TFFVTTFRaXhYUVVGWkxFbEJRVTBzU1VGQlNVa3NSVUZCVHl4SlFVRkpMRVZCUTJwRExGRkJRVk1zUjBGRFZDeEpRVUZMTEhsQ1FVTk1MRXRCUVUwc1UwRkRUaXhSUVVGVExFbEJRVTBzUzBGRFppeFZRVUZYU0N4RlFVTm1MRVZCUTBFc1EwRkRTU3hUUVVGVlJDeEhRVUZUTEU5QlFVOUJMRWRCUVZVc1ZVRkRjRU1zVVVGQlV5eEhRVU5VTEVsQlFVc3NlVUpCUTB3c1MwRkJUU3hsUVVOT0xGRkJRVk5ITEVkQlFVOUJMRWxCUVZFc1QwRkRlRUlzVlVGQlYwWXNSVUZEWml4RlFVTkJMRU5CUTBrc1UwRkJWVVlzUjBGRFZpeFJRVUZUTEVkQlExUXNTVUZCU3l4M1FrRkRUQ3hMUVVGTkxIZENRVU5PTEZGQlFWTXNRMEZCUTBrc1JVRkJTMFVzUlVGQlZTeERRVUZGTEZsQlFVRkRMRU5CUVZrc1NVRkJUVUVzUlVGQll5eFBRVUZQU0N4RFFVRkhMRVZCUVVrc1UwRkJVMEVzUlVGQlN5eEZRVUZGTEVWQlEzcEdMRlZCUVZjc1EwRkJReXhEUVVGRkxFMUJRVUZJTEVOQlFVMHNTVUZCVFVRc1IwRkJXVU1zUTBGQlN5eEZRVUZKUVN4RlFVRk5MRk5CUVZNc1JVRkJTU3hMUVVGTExGVkJRVlZCTEVOQlFVc3NRMEZETVVZc1JVRkRRU3hEUVVOSkxGTkJRVlZCTEVkQlFWTXNUMEZCVDBFc1IwRkJWU3hUUVVOd1F5eFJRVUZUTEVkQlExUXNTVUZCU3l3d1FrRkRUQ3hMUVVGTkxIbEVRVU5PTEZGQlFWTkhMRWRCUVU4c1YwRkJWMEVzUTBGQlJ5eEZRVU01UWl4VlFVRlhSaXhGUVVObUxFTkJRMG9zUlVGRFRVMHNSMEZCV1N4RFFVTmtMRkZCUVZNc1IwRkRWQ3hKUVVGTExFZEJRMHdzUzBGQlRTeEpRVU5PTEZGQlFWRktMRVZCUVV0TExFVkJRVk1zUTBGRGJFSXNUMEZCUVVFc1JVRkJVU3d5UWtGQk1rSXNTMEZCU3l4VlFVRlZUQ3hEUVVGSExFTkJRVU1zUlVGQlJTeEZRVU5xUkVFc1EwRkRXQ3hEUVVOS0xFVkJRMDFOTEVkQlFWTXNRMEZCUTBNc1IwRkJTME1zUlVGQlJ5eEZRVUZGTEU5QlFVOVVMRWRCUVdGTExFVkJRVk1zUlVONFJIWkVMRWxCUVUxTExFZEJRVk1zUTBGRFdDeFRRVUZWUXl4SFFVRlRRU3hoUVVGcFFpeFhRVU53UXl4UlFVRlRMRWRCUTFRc1NVRkJTeXd5UWtGVFRDeFJRVUZSUXl4RlFVRkxReXhGUVVGVExFTkJRMnhDTEVkQlFVa3NUMEZCVHl4UlFVRlhMRmRCUTJ4Q0xFOUJRVThzVDBGQlR5eExRVUZMUkN4RlFVRkxMRkZCUVZFc1JVRkZMMElzUjBGQlNTeFBRVUZQTEUxQlFWTXNWMEZCV1N4RFFVVnFReXhKUVVGTlJTeEZRVUZOTEV0QlFVdEdMRVZCUVVrc1VVRkJVU3hWUVVGWExFVkJRVVVzUTBGQlF5eEZRVU55UTBjc1JVRkJVeXhKUVVGSkxGZEJRVmRFTEVWQlFVa3NUVUZCVFN4RlFVTjRReXhSUVVGVFJTeEZRVUZKTEVWQlFVZEJMRVZCUVVsR0xFVkJRVWtzVDBGQlVTeEZRVUZGUlN4RlFVTTVRa1FzUlVGQlQwTXNRMEZCUXl4RlFVRkpSaXhGUVVGSkxGZEJRVmRGTEVOQlFVTXNSVUZEYUVNc1QwRkJUMFFzUTBGRFdDeExRVVZKTEZGQlFVRkdMRVZCUVZFc01FWkJRVEJHTEVWQlF6TkdSQ3hEUVVWbUxFVkJRMEVzVlVGQlZTeERRVUZGTEZGQlFVRkxMRVZCUVZNc1MwRkJRVU1zUlVGQlRTeE5RVUZCVUN4RFFVRk5MRVZCUVVkUkxFVkJRVXRETEVWQlFWZERMRVZCUVdFc1EwRkROMFFzU1VGQlRVTXNSVUZCVFZnc1JVRkRVa2NzUlVGRFNpeEhRVUZKTEU5QlFVOHNVVUZCVnl4WFFVTnNRa0VzUlVGRFNWRXNZVUZCWlN4UFFVTlVRU3hGUVVGSkxGTkJRVk1zVVVGQlVTeEZRVU55UWl4UFFVRlBMRXRCUVV0QkxFVkJRVWtzVFVGQlRTeEZRVUZGTEZOQlFWTXNVVUZCVVN4VlFVVTVReXhQUVVGUExFMUJRVk1zVjBGQldTeERRVU5xUXl4SlFVRkpReXhGUVVGSkxFZEJRMUlzVVVGQlUxQXNSVUZCU1N4RlFVRkhRU3hGUVVGSlRTeEZRVUZKTEU5QlFWRXNSVUZCUlU0c1JVRkRPVUpQTEVkQlFVc3NUMEZCVHl4aFFVRmhSQ3hGUVVGSlRpeERRVUZETEVOQlFVTXNSVUZEYmtOR0xFVkJRVTBzUzBGQlMxTXNRMEZCUXl4RFFVTm9RaXhMUVVWSkxFOUJRVTBzU1VGQlNTeE5RVUZOTERCR1FVRXdSaXhGUVVrNVJ5eEhRVVpMVEN4SlFVTkVRU3hGUVVGUFRTeEZRVUZQTEdWQlEyUk9MRWxCUVZOTkxFVkJRVThzWVVGQll5eERRVU01UWl4SlFVRk5ReXhGUVVGWkxFdEJRVXNzU1VGQlNVNHNSVUZCU1N4UlFVRlJMRlZCUVZsQkxFVkJRVWtzVDBGQlR5eFBRVUZSUVN4RlFVRkpMRkZCUVZFc1pVRkJaU3hGUVVNelJrOHNSVUZCU1N4TFFVRkxMRXRCUVV0YUxFVkJRVWtzVDBGQlUxY3NRMEZCVXl4RlFVTndRMFVzUlVGQlVTeEpRVUZKTEUxQlFVMUVMRU5CUVVNc1JVRkRla0lzVVVGQlUxWXNSVUZCU1N4RlFVRkhXU3hGUVVGSkxFVkJRVWRhTEVWQlFVbFZMRVZCUVVjc1JVRkJSVllzUlVGQlIxa3NSMEZCUzBnc1JVRkRjRU5GTEVWQlFVMVlMRU5CUVVNc1JVRkJTVVlzUlVGQlNTeFBRVUZQWXl4RlFVRkhTQ3hEUVVGVExFVkJSWFJEV0N4RlFVRk5ZU3hGUVVGTkxFdEJRVXRVTEVsQlFWTk5MRVZCUVU4c1kwRkJaMEk3UVVGQlFTeEZRVUZQTEVkQlFVY3NRMEZETDBRc1EwRkRRU3hQUVVGUFN5eEhRVUZuUWl4RFFVRkZMRkZCUVVGYUxFVkJRVk1zUzBGQlFVTXNSVUZCVFN4TlFVRlBTaXhEUVVGSkxFVkJRVWRMTEVWQlFVdERMRVZCUVZkRExFTkJRVmNzUTBGRGNrWXNRMEZEU2l4RlF6RkVRU3hUUVVGVFV5eEhRVUZoUXl4RlFVRkxReXhGUVVGVExFTkJUSEJETEVsQlFVRkRMRVZCVFVrc1IwRkJTVU1zUjBGQlRVZ3NRMEZCUnl4RlFVTlVMRkZCUVZOSkxFVkJRVWtzUlVGQlIwRXNSVUZCU1Vvc1JVRkJTU3hOUVVGTkxFOUJRVkVzUlVGQlJVa3NSVUZCUnl4RFFVTjJReXhKUVVGSlF5eEZRVUZQVEN4RlFVRkpMRTFCUVUxSkxFTkJRVU1zUlVGRGRFSXNSMEZCU1N4RFFVRkJSU3hGUVVGUFJDeERRVUZKTEVWQlJWWXNTVUZCU1VVc1IwRkJUVVlzUTBGQlNTeEZRVUZITEVOQlEyUkJMRVZCUVVzc1RVRkJUU3hQUVVGVExFZEJRM0JDU2l4RlFVRlJMR2RFUVVGblJDeEZRVU0xUkN4SlFVRk5UeXhGUVVGUFNDeEZRVUZMTEUxQlFVMHNRMEZCUXl4SFFVRkxMRWxCUVVsSkxFZEJRVXNzU1VGQlNVTXNSVUZCVHl4SlFVRkpMRU5CUVVNc1JVRkxka1FzUjBGS1NVd3NSVUZCU3l4blFrRkRURWNzUlVGQlN5eEpRVUZKTEdOQlFXZENRU3hGUVVGTExFbEJRVWtzWTBGRE5VSXNSMEZCUjBnc1JVRkJTeXhoUVVGaE8wRkJRVUVzUlVGQlMwY3NSVUZCU3l4SlFVRkpMR0ZCUVdFc1IwRkRhRVJJTEVWQlFVc3NaVUZEV0VFc1JVRkJTeXhSUVVGVExFTkJRMlFzU1VGQlRVMHNSMEZCUzFRc1JVRkJRVTBzUlVGQlN5eFJRVUZNTEV0QlFVRk9MRVZCUVdOTkxFVkJRVXNzU1VGRE9VSkhMRVZCUVVjc1VVRkJWVUVzUlVGQlJ5eFJRVU5XTEVkQlFVZE9MRVZCUVVzc1QwRkJUenRCUVVGQkxFVkJRVXROTEVWQlFVY3NUMEZCVHl4SFFVTTVRazRzUlVGQlN5eFBRVU5tTEVOQlEwRkJMRVZCUVU5SExFTkJRMWdzUTBGRFFWSXNSVUZCU1N4TlFVRk5TU3hEUVVGRExFVkJRVWxGTEVWQlFVOUVMRU5CUVVrc1JVRkJTVUVzUlVGQlR5eEpRVUZKU1N4SFFVRkxTaXhEUVVGSkxFVkJRM1JFTEUxQlIwRktMRVZCUVZFc2EwTkJRV3RETEVWQlF6bERMRTlCUVU5RUxFTkJRMWdzUTBGRFFTeFRRVUZUV1N4SFFVRlpReXhGUVVGUlF5eEZRVUZWUXl4RlFVRkxMRU5CUTNoRExFZEJRVTBzUTBGQlJTeFRRVUZCUXl4RFFVRlRMRVZCUVVsRUxFVkJRMlpGTEVWQlFWRXNTVUZCU1VNc1IwRkJVVXdzUTBGQlRTeEZRVU5vUTBrc1JVRkJUU3hKUVVGTkxEQkNRVU5hTEVsQlFVa3NSVUZCU1N4RlFVTlNMRWRCUVVsSUxFZEJRVmtzVDBGQlR5eFpRVUZaTEU5QlFVOUJMRU5CUVZFc1JVRkRPVU1zVVVGQlUwc3NTMEZCVFV3c1JVRkJWU3hEUVVOcVFpeFBRVUZQUlN4SFFVRmhMR0ZCUTNCQ1J5eEZRVUZMU0N4RlFVRlRMRXRCUVV0R0xFVkJRVlVzVDBGQlR5eEhRVUZITEVWQlFVZExMRU5CUVVVc1IwRkRhRVFzU1VGQlNVTXNSVUZCUzBNc1JVRkRWQ3hIUVVGSkxFMUJRVTBzVVVGQlVVWXNRMEZCUlN4RlFVTm9RaXhIUVVGSlFTeEZRVUZITEZOQlFWY3NSVUZEWkVNc1JVRkJUVVFzUlVGQlJ5eERRVUZETEVWQlExWkZMRVZCUVZGR0xFVkJRVWNzUTBGQlF5eE5RVWRhTEU5QlFVMHNTVUZCU1N4VlFVRlZMR2REUVVGblEwRXNRMEZCUlN4RlFVRkZMRlZCUlhaRVFTeEhRVUZOUVN4aFFVRmpMRTlCUVZFc1EwRkRha01zU1VGQlRVY3NSVUZCVHl4UFFVRlBMRXRCUVV0SUxFTkJRVVVzUlVGRE0wSXNSMEZCU1Vjc1JVRkJTeXhUUVVGWExFVkJRMmhDUml4RlFVRk5SU3hGUVVGTExFTkJRVU1zUlVGRFdrUXNSVUZCVVVZc1JVRkJSME1zUTBGQlJ5eE5RVWRrTEU5QlFVMHNTVUZCU1N4VlFVRlZMRzlEUVVGdlEwVXNSVUZCU3l4TlFVRk5MRTlCUVU4c1EwRkZiRVlzVFVGRlNVWXNSVUZCVFVRc1JVRkZWa1lzUlVGQlRTeE5RVUZOTEV0QlFVdE5MRWRCUVZkSUxFVkJRVXRETEVWQlFVOU9MRU5CUVVjc1EwRkJReXhEUVVOb1JDeERRVU5LTEU5QlFVOUZMRU5CUTFnc1EwRkRRU3hKUVVGTlFTeEhRVUZSTEVOQlExWXNWMEZCV1N4TlFVTmFMRkZCUVZNc1IwRkRWQ3hKUVVGTExEQkNRVU5NTEZGQlFWTnNRaXhIUVVOVUxGZEJRVmxoTEVWQlEyaENMRVZEY2tWQkxFbEJRVTFaTEVkQlFVNHNUVUZCVFVNc1ZVRkJhVUpETEVWQlFWRXNRMEZETTBJc1lVRkJZeXhEUVVOV0xFMUJRVTBzUlVGRFRpeExRVUZMTEVsQlFVMURMRWRCUVZFc1ZVRkJWU3hKUVVGSkxFdEJRVXNzU1VGQlNTeEZRVU14UXl4TFFVRkxMRTlCUVZOQkxFZEJRVkVzVlVGQlZTeFBRVUZQTEV0QlFVc3NTVUZCU1N4RlFVTm9SQ3hMUVVGTExFbEJRVTFCTEVkQlFWRXNWVUZCVlN4SlFVRkpMRXRCUVVzc1NVRkJTU3hGUVVNeFF5eExRVUZMTEVsQlFVMUJMRWRCUVZFc1ZVRkJWU3hKUVVGSkxFdEJRVXNzU1VGQlNTeEZRVU14UXl4TFFVRkxMRWxCUVUxQkxFZEJRVkVzVlVGQlZTeEpRVUZKTEV0QlFVc3NTVUZCU1N4RlFVTXhReXhMUVVGTExFbEJRVTFHTEVWQlFWTXNSMEZEZUVJc1EwRkxRU3hQUVVGUFJ5eEZRVUZIUXl4RlFVRkxMRU5CUTFnc1IwRkJTU3hEUVVGRFFTeEZRVU5FTEU5QlFVOHNUVUZCVFN4UFFVRlBSQ3hEUVVGRExFVkJRM3BDTEVsQlFVMUZMRVZCUVUwc1NVRkJTU3hKUVVOYVJDeEhRVUZCTEUxQlFVRkJMRVZCUVVzc1ZVRkRURUVzUlVGQlNTeFRRVUZUUXl4RFFVRkhMRVZCUTNCQ0xGRkJRVmRETEV0QlFWRXNTMEZCU3l4TlFVRlBMRU5CUXpOQ0xFbEJRVWxETEVWQlFVdERMRVZCVVZRc1IwRlFTVU1zUlVGQlQwZ3NRMEZCU1N4SFFVTllReXhGUVVGTlJ5eEhRVUZMU2l4RlFVRkxMRWxCUVVzc1IwRkJTVVlzUTBGQlJ5eEZRVU0xUWtrc1JVRkJVVVVzUjBGQlMwb3NSVUZCU3l4TlFVRlBReXhGUVVGTFNDeERRVUZITEVkQlIycERSeXhGUVVGTlJ5eEhRVUZMU2l4RlFVRk5MRWRCUVVsR0xFTkJRVWNzUlVGRmVFSkRMRVZCUVVrc1NVRkJTVVVzUTBGQlJ5eEZRVU5ZTEUxQlFVMHNTVUZCU1N4TlFVRk5MRGhEUVVFNFF5eEZRVU5zUlVZc1JVRkJTU3hKUVVGSlJTeEZRVUZMUXl4RFFVRkxMRU5CUTNSQ0xFTkJRMEVzVDBGQlQwZ3NRMEZEV0N4RFFVTkJMRTlCUVU4c1MwRkJTMDBzUlVGQlVVTXNSVUZCVlZJc1JVRkJTeXhEUVVNdlFpeEpRVUZOVXl4RlFVRlJReXhIUVVGWlNDeEZRVUZSUXl4RlFVRlZVaXhEUVVGSExFVkJRM3BEVnl4RlFVRlBMRWxCUVVrc1MwRkRha0lzVDBGQlFVRXNSVUZCU3l4TlFVRlJSaXhGUVVGTkxFMUJRMXBGTEVOQlExZ3NRMEZEU2l4RlFVTkJhRUlzUjBGQlV5eEpRVUZOTEhsQ1FVTm1MRWxCUVUxblFpeEhRVUZQTEVOQlExUXNWMEZCV1N4TlFVTmFMRk5CUVZWUUxFZEJRVk5CTEdGQlFXbENMRWxCUTNCRExGVkJRVmRVTEVkQlExZ3NVVUZCVXl4SFFVTlVMRWxCUVVzc2VVSkJRMHdzVVVGQlVXbENMRVZCUVV0RExFVkJRVk1zUTBGRGJFSXNTVUZCVFVvc1JVRkJVVXNzUjBGQllVWXNSVUZCUzBNc1EwRkJUeXhGUVVOcVEwVXNSVUZCVnl4RFFVRkRMRVZCUTJ4Q0xFOUJRVmNzUTBGQlJTeEpRVUZCV2l4RFFVRkpMRWxCUVV0TkxFVkJRVTBzVFVGRGNFSlBMRVZCUVZOaUxFTkJRVWNzU1VGRFVsa3NSVUZCVXl4VFFVRlRXaXhGUVVGSkxFdEJRVXNzUlVGRE0wSlZMRVZCUVZFc2FVUkJRV2xFVml4RlFVRkpMRXRCUVVzc1JVRkJSU3hGUVVkd1JWa3NSVUZCVXl4TFFVRkxXaXhGUVVGSkxFdEJRVXNzUjBGSmJrTXNUMEZCVHl4UFFVRlBMRTlCUVU4c1NVRkJTVklzUjBGQldXTXNRMEZCU3l4RFFVTTVReXhGUVVOQkxGZEJRVmtzUTBGQlEwWXNSVUZCVVVNc1JVRkJWVklzU1VGQlVVd3NSMEZCVXl4TFFVRkxXU3hGUVVGUlF5eEZRVUZWVWl4RFFVRkhMRU5CUXpsRkxFVkRja1ZCTEZOQlFWTnBRaXhIUVVGakxFTkJRVVVzVFVGQlFVTXNSVUZCVHl4UFFVRkJReXhEUVVGUExFVkJRVWRETEVWQlFVc3NRMEZGTTBNc1QwRkJTVVFzU1VGRVdVUXNSVUZCVVVjc1IwRkJWVU1zU1VGRFdpeExRVUZMTEV0QlFVdElMRU5CUVUwc1JVRkRNMEpCTEVWQlEwcEVMRVZCUVZGRkxFVkJRVWtzVVVGQlVTeFJRVUZWUVN4RlFVRkpMRkZCUVZFc1VVRkRja1FzUTBGRFFTeEpRVUZOUXl4SFFVRlZMRU5CUTFvc1UwRkJWVWdzUjBGQlUwRXNTVUZCVlN4SFFVTTNRaXhSUVVGVExFZEJRMVFzU1VGQlN5eDVRa0ZEVEN4TFFVRk5MRFpEUVVOT0xGRkJRVk1zU1VGQlRTeEpRVUZKU3l4RlFVRlBMRVZCUVVrc1JVRkRPVUlzVlVGQlYwNHNSVUZEWml4RlFVTk5TeXhIUVVGWExFTkJRMklzVTBGQlZVb3NSMEZCVTBFc1NVRkJWU3hIUVVNM1FpeFJRVUZUTEVkQlExUXNTVUZCU3l4NVFrRkRUQ3hMUVVGTkxDdERRVU5PTEZGQlFWTXNTVUZCVFN4SlFVRkpTeXhGUVVGUExFVkJRVXNzUlVGREwwSXNWVUZCVjA0c1JVRkRaaXhGUTNCQ1FTeEpRVUZOVHl4SFFVRlhMRU5CUTJJc1UwRkJWVU1zUjBGQlV5eFBRVUZQUVN4SFFVRlZMRk5CUTNCRExGRkJRVk1zUjBGRFZDeEpRVUZMTERCQ1FVTk1MRXRCUVUwc2FVUkJRMDRzVVVGQlZVTXNSMEZCVVVFc1JVRkJTU3hOUVVGTkxFVkJRVVVzUlVGQlJTeFpRVUZaTEVsQlFVMHNUVUZETlVNc1NVRkRRVUVzUlVGQlNTeERRVUZETEVsQlFVMHNTVUZEVUN4UFFVRlBMR3RDUVVOUUxFOUJRVThzYTBKQlEycENMRlZCUVZkRExFVkJRMllzUlVGRFRVTXNSMEZCVnl4RFFVTmlMRk5CUVZWSUxFZEJRVk1zVDBGQlQwRXNSMEZCVlN4VFFVTndReXhSUVVGVExFZEJRMVFzU1VGQlN5d3dRa0ZEVEN4UFFVRlJMRTFCUTFJc1MwRkJUU3gzUkVGRFRpeFJRVUZWUXl4SFFVRlJMRmRCUVZkQkxFVkJRVWtzVVVGQlVTeExRVUZOTEVWQlFVVXNRMEZCUXl4RlFVTnNSQ3hWUVVGVlJ5eEZRVUZOTEVOQlExb3NTVUZCVFVNc1JVRkJUU3hQUVVGUFJDeEZRVUZMTEV0QlFVc3NSVUZETjBJc1QwRkJUeXhUUVVGVFF5eERRVUZITEVWQlFVbEJMRVZCUVVrc1kwRkJZeXhGUVVGSlNDeEhRVUZuUWtVc1EwRkJTU3hEUVVOeVJTeERRVU5LTEVWQlEwMUZMRWRCUVZFc1EwRkRWaXhUUVVGVlRpeEhRVUZUTEU5QlFVOUJMRWRCUVZVc1UwRkRjRU1zVVVGQlV5eEhRVU5VTEVsQlFVc3NNRUpCUTB3c1MwRkJUU3h2UTBGRFRpeFJRVUZSUXl4RlFVRkxMRU5CUTFRc1NVRkJUVWNzUlVGQlR5eEpRVUZKUnl4RlFVRlBMRmRCUVZkT0xFVkJRVWtzVVVGQlVTeExRVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUTI1RVR5eEZRVUZOVUN4RlFVRkpMRkZCUVZFc1IwRkJSeXhGUVVNelFpeEhRVUZKVHl4SlFVRlJMRWRCUVVrc1EwRkRXaXhKUVVGTlF5eEZRVUZKVWl4RlFVRkpMRlZCUVZWUExFVkJRVTBzUTBGQlF5eEZRVUZGTEZGQlFWRXNTMEZCVFN4RlFVRkZMRVZCUXpkRFF5eEZRVUZGUVN4RlFVRkZMRTlCUVZNc1EwRkJReXhKUVVGTkxFMUJRM0JDVEN4RlFVRkxMR3RDUVVGdlFrc3NSVUZCUlN4UFFVTnVReXhEUVVOQkxFOUJRVTlNTEVOQlExZ3NSVUZEUVN4VlFVRlhSaXhGUVVObUxFVkRla05CTEVsQlFVMVJMRWRCUVdWRExFZEJRVlVzVDBGQlQwRXNSMEZCVlN4VlFVRlpMRTlCUVU4c1ZVRkJWVUVzUTBGQlN5eEZRVU5zUml4VFFVRlRReXhIUVVGWFF5eEZRVUZMUXl4RlFVRlJReXhGUVVGUExFTkJRVVVzV1VGQlFVTXNRMEZCV1N4RlFVRkhMRU5CUTNKRUxFbEJRVTFETEVWQlFVOUtMRVZCUVVrc1EwRkJReXhGUVVsc1FpeEpRVWhKU1N4SlFVRlRMRXRCUVU5QkxFbEJRVk1zVDBGRGVrSklMRWRCUVZVc1IwRkRaRVFzUlVGQlRVRXNSVUZCU1N4VlFVRlZReXhEUVVGTkxFVkJRVVVzVVVGQlVTeExRVUZOTEVWQlFVVXNSVUZEZUVORkxFVkJRV0VzUTBGRFlpeFBRVUZSUkN4RlFVRlBMRU5CUTFnc1NVRkJTeXhIUVVORVJpeEZRVUZOTEV0QlFVdEJMRU5CUVVjc1IwRkRaQ3hOUVVOS0xFbEJRVXNzUjBGRFJFRXNSVUZCVFN4TFFVRkxRU3hEUVVGSExFZEJRMlFzVFVGRFNpeEpRVUZMTEVsQlEwUkJMRVZCUVUwc1MwRkJTMEVzUTBGQlJ5eEhRVU5rTEV0QlExSXNRMEZEUVN4SlFVRk5TeXhGUVVGSkxFOUJRVTlNTEVOQlFVY3NSVUZEY0VJc1QwRkJUMGtzU1VGQlV5eEpRVUZOTEU5QlFVOHNSVUZCUlN4RlFVRkpReXhGUVVGSlFTeERRVU16UXl4RFFVTkJMRWxCUVUxQkxFVkJRVWtzVTBGQlUwd3NSVUZCUzBVc1EwRkJTeXhGUVVNM1FpeFBRVUZQUlN4SlFVRlRMRWxCUVUwc1IwRkJTME1zUlVGQlNVRXNRMEZEYmtNc1EwRkRRU3hUUVVGVFF5eEhRVUZoUXl4RlFVRk5UQ3hGUVVGUFRTeEZRVUZSTEVOQlEzWkRMRWRCUVUwc1EwRkJSU3hOUVVGQlZpeERRVUZOTEVWQlFVbFRMRVZCUTJ4Q0xFZEJRVWxXTEVkQlFWbERMRU5CUVVzc1JVRkJSeXhEUVVOd1FpeEpRVUZOUlN4RlFVRk5SaXhGUVVGTkxGTkJRVk5KTEVOQlFVc3NSVUZEYUVNc1QwRkJUMG9zUlVGQlVTeEZRVUZKTEVsQlFVMVZMRVZCUVZOU0xFVkJRVWtzVDBGQlR5eERRVUZETEVWQlFVbFJMRVZCUVZOU0xFTkJReTlFTEVOQlEwRXNUMEZCVDFNc1IwRkJaMEpHTEVOQlFVa3NRMEZETDBJc1EwRkRRU3hKUVVGTlJ5eEhRVUZUTEVOQlExZ3NVMEZCVldJc1IwRkRWaXhSUVVGVExFZEJRMVFzU1VGQlN5eDNRa0ZEVEN4UFFVRlJMRTFCUTFJc1MwRkJUU3h0UWtGRFRpeFJRVUZUTEVOQlFVTkhMRVZCUVV0WExFVkJRVlZETEVsQlFWRmlMRWRCUVZkRExFVkJRVXNzUlVGQlJ5eEZRVUZIV1N4RFFVRkhMRVZCUXpGRUxGVkJRVmRNTEVkQlFWRkVMRWRCUVdGRExFVkJRVTBzUlVGQlJ5eEpRVUZKTEVOQlEycEVMRVZCUTAxTkxFZEJRVk1zUTBGRFdDeFRRVUZWYUVJc1IwRkRWaXhSUVVGVExFZEJRMVFzU1VGQlN5eDNRa0ZEVEN4UFFVRlJMRTFCUTFJc1MwRkJUU3hyUWtGRFRpeFJRVUZUTEVOQlFVTkhMRVZCUVV0WExFVkJRVlZETEVsQlFWRmlMRWRCUVZkRExFVkJRVXNzUlVGQlJ5eEZRVUZIV1N4RFFVRkhMRVZCUXpGRUxGVkJRVmRNTEVkQlFWRkVMRWRCUVdGRExFVkJRVTBzUlVGQlJ5eEhRVUZITEVOQlEyaEVMRVZCUTAxUExFZEJRVTBzUTBGRFVpeFRRVUZWYWtJc1IwRkRWaXhSUVVGVExFZEJRMVFzU1VGQlN5eDNRa0ZEVEN4TFFVRk5MSE5DUVVOT0xGRkJRVk1zUTBGQlEwY3NSVUZCUzFjc1JVRkJWVU1zU1VGQlVXSXNSMEZCVjBNc1JVRkJTeXhGUVVGSExFZEJRVWxaTEVOQlFVY3NSVUZETTBRc1ZVRkJWMGdzUlVGRFppeEZRVU5OVFN4SFFVRlRMRU5CUTFnc1UwRkJWV3hDTEVkQlExWXNVVUZCVXl4SFFVTlVMRWxCUVVzc2QwSkJRMHdzVDBGQlVTeE5RVU5TTEV0QlFVMHNlVUpCUTA0c1VVRkJVeXhEUVVGRFJ5eEZRVUZMVnl4RlFVRlZReXhKUVVGUllpeEhRVUZYUXl4RlFVRkxMRVZCUVVjc1IwRkJTVmtzUTBGQlJ5eEZRVU16UkN4VlFVRlhUQ3hIUVVGUlJDeEhRVUZoUXl4RlFVRk5MRWRCUVVrc1NVRkJTU3hEUVVOc1JDeEZRMmhGUVN4SlFVRk5VeXhIUVVGT0xFMUJRVTFETEZWQlFXZENReXhGUVVGUkxFTkJRekZDTEZsQlFWbERMRVZCUVZFc1EwRkRhRUlzVFVGQlRVRXNRMEZCVFN4RlFVTmFMRXRCUVVzc1NVRkJUVVlzUlVGQlVTeEhRVU4yUWl4RFFVTkJMRWxCUVVsSExFVkJRVXNzUTBGRFRDeEpRVUZKUXl4RlFVTkJReXhGUVVGUFJpeERRVUZITEVWQlExWkRMRVZCUVU5RUxFVkJRMFpCTEVkQlEwd3NUMEZCVDBFc1IwRkJVU3hWUVVObUxGRkJRVk5CTEVkQlExUXNWVUZCVjBFc1IwRkRXRUVzUlVGQlNTeFJRVUZWTEV0QlEyUkRMRVZCUVU4c1NVRkJTVVVzUjBGQlMwZ3NSVUZCU1N4SlFVRkxMRWxCUVVrc1JVRkZOMEpETEVWQlFVOHNTVUZCU1VVc1IwRkJTMGdzUlVGQlN5eEpRVUZKTEVWQlEyaENTU3hIUVVGVExFdEJRVXNzVFVGQlQwZ3NSVUZCU3l4SFFVRkhMRWRCUlhSRExFdEJRVXNzVFVGQlRTeExRVUZMUVN4RFFVRkpMRU5CUXpWQ0xFTkJTMEVzU1VGQlNVUXNSVUZCUzBzc1JVRkJWU3hEUVVObUxFbEJRVTFLTEVWQlFVOUhMRWRCUVZNc1MwRkJTeXhOUVVGUFNpeERRVUZITEVWQlEzSkRMRTFCUVU4c1EwRkJRMHNzUjBGQldVZ3NSVUZCVDBRc1EwRkJTU3hGUVVONlFrc3NSVUZCVTB3c1JVRkJTeXhIUVVGSExFVkJRMkpCTEVWQlFVc3NTVUZCU1N4TlFVTlVRU3hGUVVGTExFbEJRMVJCTEVOQlExWXNRMEZEUVN4SlFVRkpSQ3hGUVVGTFR5eEZRVUZQTEVOQlExb3NSMEZCU1N4UFFVRlBRU3hIUVVGVkxGVkJRMnBDTEUxQlFVMHNTVUZCU1N4TlFVRk5MR2xGUVVGcFJTeFBRVUZQUVN4RFFVRkxMRVZCUVVVc1JVRkRia2NzU1VGQlRVTXNSVUZCVDBvc1IwRkJVeXhMUVVGTExFMUJRVTlLTEVOQlFVY3NSVUZEYWtOUkxFZEJRVkVzUTBGQlEwUXNSVUZEVkN4TFFVRkxMRTFCUVUwc1QwRkJUeXhMUVVGTExFMUJRVTBzVVVGQlVVTXNRMEZCU1N4RlFVRkhMRU5CUVVNc1JVRkZlRU1zUTBGQlEwRXNSMEZCVVVRc1IwRkRaQ3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKU2l4SFFVRkxTQ3hEUVVGSExFTkJRVU1zUTBGRmNrTXNRMEZEUVN4UFFVRlBVeXhGUVVGSFF5eEZRVUZMTEVOQlExZ3NUMEZCVHl4TlFVRk5MRTlCUVU5RUxFVkJRVWRETEVWQlFVc3NSMEZCUnl4RFFVTnVReXhEUVVOQkxGTkJRVk5CTEVWQlFVdERMRVZCUVZkRExFVkJRV0VzUTBGRGJFTXNSMEZCU1N4RFFVRkRSaXhGUVVORUxFOUJRVThzUzBGQlN5eFZRVUZWTEVsQlFVa3NSVUZET1VJc1IwRkJTU3hMUVVGTExHbENRVUZwUWl4RlFVRkpMRVZCUXpGQ0xFOUJRVThzVFVGQlRTeFRRVUZUTEU5QlFVOHNUMEZCVHl4RFFVRkRMRVZCUVVkQkxFVkJRVXNzUTBGQlJTeGpRVUZsTEVWQlFVc3NRMEZCUXl4RlFVRkhReXhGUVVGWFF5eERRVUZYTEVWQlJUZEdMRTFCUVUwc1NVRkJTU3hOUVVGTkxIRkRRVUZ4UXl4RFFVTTNSQ3hEUVVOQkxFOUJRVThzUzBGQlMySXNSVUZCVVdNc1JVRkJWVWdzUlVGQlN5eERRVU12UWl4SFFVRk5MRU5CUVVVc1UwRkJRVWtzUTBGQlV5eEZRVUZKU2l4RlFVTm1TeXhGUVVGTkxFbEJRVWtzUzBGQlMyaENMRU5CUVUwc1JVRkRNMElzUjBGQlNXTXNSMEZCV1N4UFFVRlBMRmxCUVZrc1QwRkJUMEVzUTBGQlVTeEZRVU01UXl4UlFVRlRUaXhMUVVGVFRTeEZRVU5XTEU5QlFVOURMRWRCUVdFc1lVRkRjRUpRTEVWQlFWRlBMRVZCUVZNc1MwRkJTMFFzUlVGQlZVNHNSVUZCVDBFc1EwRkJTeXhIUVVOb1JGRXNSVUZCU1N4TlFVRk5MRXRCUVV0RExFZEJRVmRVTEVWQlFVOHNTMEZCVFVjc1EwRkJSeXhEUVVGRExFVkJSVzVFTEU5QlFVOUxMRU5CUTFnc1EwRkRTaXhGUVVOQmJrSXNSMEZCVVN4SlFVRk5MSGRDUVVOa0xFbEJRVTF0UWl4SFFVRk5MRU5CUTFJc1YwRkJXU3hOUVVOYUxGTkJRVlZTTEVkQlFWTkJMR0ZCUVdsQ0xFbEJRM0JETEZWQlFWZFlMRWRCUTFnc1VVRkJVeXhIUVVOVUxFbEJRVXNzZDBKQlEwd3NWMEZCV1N4RFFVRkRSeXhGUVVGUll5eEZRVUZWU0N4SlFVRlJaQ3hIUVVGUkxFdEJRVXRITEVWQlFWRmpMRVZCUVZWSUxFTkJRVWNzUlVGRGVrVXNVVUZCVVU4c1JVRkJTME1zUlVGQlV5eERRVU5zUWl4SFFVRkpReXhIUVVGTlJpeERRVUZITEVWQlFVY3NRMEZEV2l4SFFVRkpRU3hGUVVGSkxHbENRVUZwUWl4RlFVRkpMRVZCUTNwQ0xFOUJRVThzVDBGQlR5eFBRVUZQTEVsQlFVbHlRaXhIUVVGWGNVSXNRMEZCUnl4RlFVVjJRME1zUlVGQlVTeHhRMEZCY1VNc1EwRkRja1FzVFVGRlNVRXNSVUZCVVN4cFEwRkJhVU1zUlVGRE4wTXNUMEZCVDBRc1EwRkRXQ3hEUVVOS0xFVkRka1pCTEZOQlFWTkhMRWRCUVdsQ1F5eEZRVUZMUXl4RlFVRlZMRU5CUTNKRExFbEJRVTFETEVWQlFVOUdMRVZCUVVrc1EwRkJReXhGUVVOYVJ5eEZRVUZSUkN4SlFVRlRMRXRCUVU5QkxFbEJRVk1zU1VGQlRVWXNSVUZCU1N4VlFVRlZMRU5CUVVNc1JVRkJTVUVzUlVGRE1VUkpMRVZCUVU5RExFZEJRVTFLTEVWQlFWY3NUMEZCVDBrc1EwRkJReXhGUVVGSkxFOUJRVTlCTEVOQlFVTXNSVUZETlVORExFVkJRVTFJTEVWQlExQXNVVUZCVVN4TFFVRk5MRVZCUVVVc1JVRkRhRUlzVFVGQlRTeEhRVUZITEVWQlExUXNUMEZCVHl4RFFVRkRSeXhGUVVGTFF5eEpRVUZOUkN4RlFVRk5SaXhGUVVGSkxFVkJRVVVzUlVGQlNVRXNSVUZCU1Vjc1EwRkJReXhGUVVGSFNDeEZRVUZKTEVOQlFVTXNRMEZCUXl4RlFVTjBSQ3hQUVVGUlJpeEpRVUZUTEVsQlFVMUZMRVZCUVVrc1JVRkJSU3hGUVVGSlJTeEZRVUZOUVN4RFFVTXpReXhEUVUxQkxGTkJRVk5GTEVkQlFYRkNReXhGUVVGTkxFTkJRMmhETEVkQlFVa3NRMEZCUlN4TlFVRkJReXhEUVVGTkxFVkJRVWxFTEVWQlExcE1MRVZCUVU5RExFZEJRVTFCTEVWQlEycENMRWRCUVVrc1QwRkJUMHNzUjBGQlZTeFRRVU5xUWs0c1JVRkJUVU1zUjBGQlN5eFBRVUZQUVN4RFFVRkRMRlZCUTJRc1RVRkJUVXNzUTBGQlN5eEhRVUZMTEVOQlFVTXNVMEZCVTBFc1EwRkJTeXhGUVVOd1F5eFBRVUZQUXl4SFFVRm5Ra1lzUTBGQlNTeEZRVU12UWl4SlFVRkpVQ3hGUVVGUExFZEJRMUJSTEVWQlFWRXNTVUZEVWxJc1JVRkJUeXhKUVVOUVVTeEhRVUZUVGl4RlFVRkpMRVZCUVVVc1IwRkZia0lzU1VGQlRWRXNSVUZCVFZJc1JVRkJTU3hGUVVGRkxFVkJRMXBFTEVWQlFWRXNRMEZCUTA4c1JVRkJVVVVzUTBGQlJ5eEZRVU14UWl4UFFVRkpSaXhGUVVGUkxFZEJRMUpRTEVWQlFVMHNVVUZCVVN4RFFVRkRMRWRCUjJaUExFZEJRVk5CTEVWQlFWRlFMRVZCUVUwc1EwRkJReXhIUVVGTFV5eEZRVU0zUWxRc1JVRkJUU3hSUVVGUlR5eEZRVUZSUlN4RFFVRkhMRVZCUTNKQ1JpeEhRVUZUTEV0QlExUkJMRWRCUVZOQkxFVkJRVkZRTEVWQlFVMHNRMEZCUXl4SFFVRkxVeXhGUVVNM1FsUXNSVUZCVFN4UlFVRlJUeXhEUVVGTExFbEJSMjVDVWl4RlFVTktReXhGUVVOTExFbEJRVWxGTEVkQlFVc3NUMEZCVDBFc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJ5eEhRVUZITEVOQlFVTXNSVUZEYmtNc1MwRkJTeXhIUVVGSExFVkJRMUlzVVVGQlVTeGhRVUZqTEVWQlFVVXNRMEZGY2tNc1EwRkRRU3hKUVVGTlVTeEhRVUZWTEVOQlExb3NVMEZCVlVnc1IwRkJVeXhQUVVGUFFTeEhRVUZWTEZWQlFWa3NUMEZCVHl4VlFVRlZRU3hEUVVGTExFVkJRM1JGTEZGQlFWTXNSMEZEVkN4SlFVRkxMSGRDUVVOTUxFOUJRVkVzVDBGRFVpeExRVUZOTEhWRFFVTk9MRkZCUVZNc1EwRkJRMVlzUlVGQlMyTXNSVUZCVlN4RFFVRkZMRmxCUVVGRExFTkJRVmtzU1VGQlRXaENMRWRCUVdsQ1F5eEZRVUZMWlN4RFFVRlhMRVZCUXpsRkxGVkJRVmRRTEVWQlEyWXNSVUZEVFZFc1IwRkJXU3hEUVVOa0xGTkJRVlZPTEVkQlFWTXNUMEZCVDBFc1IwRkJWU3hUUVVOd1F5eFJRVUZUTEVkQlExUXNTVUZCU3l3d1FrRkRUQ3hQUVVGUkxFOUJRMUlzUzBGQlRTeG5SRUZEVGl4UlFVRlRWaXhIUVVGUFJDeEhRVUZwUWtNc1JVRkJTeXhGUVVGTExFVkJRek5ETEZWQlFWZFJMRVZCUTJZc1JVRkRUVk1zUjBGQldTeERRVU5rTEZOQlFWVlFMRWRCUVZOQkxHRkJRV2xDTEV0QlEzQkRMRkZCUVZNc1IwRkRWQ3hKUVVGTExEaENRVWxNTEV0QlFVMHNUMEZCVHl3eVNrRkxTaXhGUVVOVUxGRkJRVkZXTEVWQlFVc3NRMEZEVkN4SlFVRk5hMElzUlVGQlVXeENMRVZCUVVrc1RVRkJUV2xDTEVkQlFWVXNTVUZCU1N4RlFVTjBReXhIUVVGSkxFTkJRVU5ETEVWQlEwUXNUVUZCVFN4SlFVRkpMRTFCUVUwc2MwUkJRWE5FTEVWQlF6RkZMRWRCUVUwc1EwRkJReXhEUVVGRlF5eEZRVUZOUXl4RlFVRlBReXhGUVVGTFF5eEZRVUZOUXl4RlFVRlJReXhEUVVGTkxFVkJRVWxPTEVWQlFVMHNTVUZCU1N4TlFVRk5MRVZCUXpkRVR5eEZRVUZYVUN4RlFVRk5MRU5CUVVNc1JVRkJTU3hSUVVGUlFTeEZRVUZOTEVOQlFVTXNSVUZCU1N4TlFVRk5MRTlCUVU4c1JVRkJSeXhEUVVGRExFTkJRVU1zUlVGQlNTeEZRVU5xUlZFc1JVRkJUeXhMUVVGTExFbEJRVWxRTEVWQlFVMURMRVZCUVZFc1JVRkJSME1zUlVGQlMwTXNSMEZCVVN4RlFVRkhReXhIUVVGVkxFVkJRVWRETEVkQlFWVXNSVUZCUjBNc1EwRkJVU3hGUVVOcVJrVXNSVUZCUzFRc1JVRkJUU3hEUVVGRExFVkJRMnhDTEVkQlFVbFRMRWRCUVUxQkxFbEJRVThzU1VGQlN5eERRVU5zUWl4SlFVRkpMRVZCUVVrMVFpeEhRVUZwUWpSQ0xFVkJRVWtzUlVGQlN5eEZRVU01UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhGUVVGSkxFdEJRMlFzUjBGQlN5eEpRVU5VUkN4SFFVRlJMRWxCUVZFc1EwRkRjRUlzUTBGRFFTeFBRVUZQTEVsQlFVa3NTMEZCUzBFc1EwRkJTU3hEUVVONFFpeEZRVU5CTEZWQlFWY3NRMEZCUXl4RFFVRkZMRTFCUVVGb1FpeERRVUZOTEVsQlFVMUJMRVZCUVUwc1dVRkJXU3hGUVVGRkxGRkJRVkVzZVVKQlFUQkNMRVZCUVVVc1EwRkRkRVlzUlVOd1JrRXNTVUZCVFd0Q0xFZEJRVk1zUTBGRFdFTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUjBGRFFVTXNSMEZEUVVNc1IwRkRRVU1zUlVGRFNpeEZRMjVDUVN4SlFVRk5ReXhIUVVGVkxFbEJRVWtzU1VGQlNTeERRVU53UWl4RFFVRkRMRTlCUVZGRExFVkJRVTBzUlVGRFppeERRVUZETEZkQlFWa3NRMEZCUTBNc1IwRkJTME1zUjBGQlMwTXNSVUZCVFN4RFFVRkRMRVZCUXk5Q0xFTkJRVU1zVDBGQlVVZ3NSVUZCVVN4RlFVTnFRaXhEUVVGRExGTkJRVlZCTEVWQlFWRXNSVUZEYmtJc1EwRkJReXhYUVVGWlFTeEZRVUZSTEVOQlEzcENMRU5CUVVNc1JVRkRTMGtzUjBGQllTeERRVU5tTEU5QlFVRkRMRWRCUTBFc1MwRkJUVU1zUjBGRFRpeE5RVUZCUXl4SFFVTkJMRk5CUVVGRExFZEJRMEVzVTBGQlFVTXNSMEZEUVN4VlFVRkJReXhIUVVOQkxFbEJRVUZETEVkQlEwRXNUMEZCUVVNc1IwRkRRU3hQUVVGQlF5eEhRVU5CTEZGQlFVRkRMRWRCUTBFc1NVRkJRV0lzUjBGRFFTeE5RVUZCWXl4SFFVTkJMRXRCUVUxRExFZEJRMDRzUzBGQlFVTXNSMEZEUVN4TlFVRkJReXhIUVVOQkxFbEJRVUZvUWl4SFFVTkJMRWxCUVVGcFFpeEhRVU5CTEZWQlFVRkRMRVZCUTBvc1JVRkRUVU1zUjBGQlowSXNRMEZEYkVJc01rSkJRVFJDYUVJc1IwRkROVUlzTUVKQlFUSkNWU3hIUVVNelFpeDVRa0ZCTUVKRkxFZEJRekZDTERCQ1FVRXlRa01zUjBGRE0wSXNkMEpCUVhsQ1F5eEhRVU42UWl3NFFrRkJLMEpETEVWQlEyNURMRVZCUTBFc1UwRkJVMFVzUjBGQlVVTXNSVUZCV1VNc1JVRkJXVU1zUlVGQllTeERRVU5zUkN4SlFVRk5ReXhGUVVGaE0wSXNSMEZCVVN4SlFVRkplVUlzUTBGQlZTeEZRVU42UXl4SFFVRkpSU3hIUVVGakxFTkJRVU5JTEVWQlEyWXNUMEZCVDBVc1IwRkJaU3hEUVVGRFF5eEZRVUZYTEZOQlFWTllMRVZCUVVzc1JVRkRNVU5YTEVWQlFWY3NUMEZCVDFnc1JVRkJTeXhGUVVOMlFsY3NSVUZCVnl4TlFVRk5MRVZCUlROQ0xFbEJRVWxETEVWQlFVOUVMRVZCUTFnc1IwRkJTU3hEUVVGRFF5eEZRVU5FTEVkQlFVa3NUVUZCVFN4UlFVRlJTaXhEUVVGVkxFVkJRM2hDU1N4RlFVRlBMRU5CUVVNc1RVRkRVQ3hEUVVORUxFbEJRVTFETEVWQlFVOHNUVUZCVFN4TFFVRkxOMElzUjBGQlVTeExRVUZMTEVOQlFVTXNSVUZEYWtNc1QwRkJUemhDTEVkQlFVOUJMRWxCUVZFc1VVRkJVU3hGUVVNNVFpeEpRVUZKUVN4SFFVRlBMRXRCUVVzc1ZVRkJWVUVzUTBGQlJ5eERRVUZETEVWQlF6bENMRXRCUVVzc1NVRkJTU3hGUVVOa0xFMUJRVTBzU1VGQlNTeE5RVUZOTEcxQ1FVRnRRa3dzUTBGQlZTeHBRa0ZCYVVKSkxFTkJRVWtzTmtKQlFUWkNMRU5CUTI1SExFTkJSVW9zUjBGQlNTeE5RVUZOTEZGQlFWRk1MRU5CUVZVc1JVRkRlRUlzVVVGQlYwOHNTMEZCVDFBc1JVRkRaRWtzUlVGQlQwRXNSVUZCU3l4UFFVRlBSeXhEUVVGSExFOUJSWEpDTEU5QlFVOVFMRWRCUVdVc1lVRkRNMEpKTEVWQlFVOUtMRVZCUVZkSkxFVkJRVXNzVFVGQlRTeERRVUZETEVkQlJXeERMRTlCUVVsR0xFbEJRMEZGTEVWQlFVOUJMRVZCUVVzc1QwRkJUMW9zUlVGQlN5eEhRVU55UWxrc1JVRkJTeXhQUVVGUExFTkJRVU5CTEVWQlFVMUhMRWxCUVZFc1EwRkRPVUlzU1VGQlRVTXNSVUZCVXl4UFFVRlBSQ3hIUVVGUkxGTkJRVmN4UWl4SFFVRlhNRUlzUTBGQlJ5eEZRVUZKUVN4RlFVTXpSQ3hIUVVGSkxFTkJRVU5ETEVWQlFWRXNRMEZEVkN4SlFVRk5ReXhGUVVGVkxFdEJRVXNzVlVGQlZVWXNRMEZCUnl4RlFVTTFRa1lzUlVGQlR5eFBRVUZQTEV0QlFVdDRRaXhGUVVGVkxFVkJRemxDTEVsQlFVbDVRaXhIUVVGUExFdEJRVXNzVlVGQlZVRXNRMEZCUnl4RFFVRkRMRVZCUXpsQ0xFdEJRVXNzU1VGQlNTeEZRVU5rTEUxQlFVMHNTVUZCU1N4TlFVRk5MSE5DUVVGelFrY3NRMEZCVHl4blFrRkJaMEpLTEVOQlFVa3NSVUZCUlN4RFFVTjJSU3hEUVVOQkxFOUJRVXRFTEVWQlFVc3NVMEZCVTBrc1EwRkJUU3hIUVVOeVFrb3NSVUZCU3l4TFFVRkxTU3hEUVVGTkxFVkJRMkpLTEVOQlExZ3NSVUZCUnl4RFFVRkRMRU5CUVVNc1EwRkRWQ3hEUTNaR1FTeEpRVUZOVFN4SFFVRnpRaXhEUVVGRFF5eEZRVUZIUXl4SlFVRk5SQ3hGUVVGRkxFbEJRVTFETEVWQlFVVXNTVUZCVFN4SFFVRkxSQ3hGUVVGRkxFbEJRVTFETEVWQlFVVXNTVUZCVFN4RlFVRkpMRVZCUTNwRlF5eEhRVUZPTEUxQlFVMURMRU5CUVU4c1EwRkRWQ3haUVVGWkxFTkJRVVVzVDBGQlFVTXNSVUZCVVN4WFFVRkJReXhGUVVGWkxFMUJRVUZETEVWQlFVOHNhVUpCUVVGRExFVkJRV3RDTEU5QlFVRkRMRVZCUVZFc1pVRkJRVU1zUlVGQlowSXNhVUpCUVVGRExFTkJRV2xDTEVWQlFVY3NRMEZEYmtjc1MwRkJTeXhQUVVGVExFMUJRVTBzVVVGQlVVNHNRMEZCVFN4RlFVTTFRazhzUjBGQlVWQXNSVUZCVVN4UlFVRlJMRVZCUTNoQ1FTeEZRVU5KVHl4SFFVRlJMRXRCUVUxUUxFTkJRVTBzUlVGRGNFSXNTMEZEVml4TFFVRkxMRXRCUVZFc1QwRkJUMGtzUjBGQlZ5eFZRVUZaUVN4SFFVRlhMRTlCUTNSRUxFdEJRVXNzVlVGQldVUXNSVUZCYlVKTExFZEJRV2RDTEVOQlFVTXNSVUZEY2tRc1MwRkJTeXhMUVVGUFJDeEhRVUZSVGl4RlFVRlpMRXRCUVVzc1MwRkJUVU1zUTBGQlN5eEZRVU5vUkN4TFFVRkxMR2RDUVVGclFra3NSMEZCUVN4TFFVRkJRU3hGUVVGdlFpeExRVU16UXl4UFFVRlBMR1ZCUVdVc1MwRkJUVWNzUjBGQlN5eERRVUZGTEUxQlFVOURMRVZCUVVrc1EwRkJReXhGUVVNdlF5eFBRVUZQTEdWQlFXVXNTMEZCVFVNc1IwRkJVU3hEUVVGRkxFMUJRVTlETEVWQlFVOHNRMEZCUXl4RlFVTnlSQ3hQUVVGUExHVkJRV1VzUzBGQlRVTXNSMEZCU3l4RFFVRkZMRTFCUVU5RExFVkJRVWtzUTBGQlF5eEZRVVV2UXl4TFFVRkxMR1ZCUTBRc1QwRkJUMVFzUjBGQmJVSXNWMEZEY0VKQkxFVkJRMEZCTEVsQlFXMUNMRWRCUTJaV0xFZEJRMEVzU1VGRGJFSXNRMEZEUVN4UFFVRlJMRU5CUTBvc1NVRkJUVzlDTEVWQlFVOHNUMEZCVHl4UFFVRlBhRUlzUlVGQlR5eFZRVUZYTEU5QlFVOHNNRUpCUVRCQ0xFbEJRVWtzUTBGQlF5eEZRVU51Uml4UFFVRkJaMElzUlVGQlN5eExRVUZQTEV0QlFVc3NTMEZCU3l4TlFVRk5MRVZCUTNKQ1FTeERRVU5ZTEVOQlEwb3NSVU01UWtFc1UwRkJVME1zUjBGQmEwSkRMRVZCUVV0RExFVkJRVk1zUTBGS2VrTXNTVUZCUVVNc1JVRkxTU3hKUVVGTlF5eEZRVUZSTEVOQlFVTXNSVUZEV0VNc1JVRkJaMEpJTEVWQlFWRXNZVUZCWlN4SFFVTXpReXhIUVVGSlFTeEZRVUZSTEdGQlFXVXNTVUZCVTBRc1JVRkJTU3hYUVVGWkxFTkJRMmhFTEVsQlFVMUxMRVZCUVUxTUxFVkJRVWtzVjBGQlZ5eFRRVUZUUVN4RFFVRkhMRVZCUTI1RFN5eEhRVU5CUml4RlFVRk5MRXRCUVV0RkxFTkJRVWNzUlVGRFpFUXNSVUZCWjBJc1NVRkZXRW9zUlVGQlNTeFhRVUZYTEZkQlEzQkNTU3hGUVVGblFpeEhRVU40UWl4RFFVTkpRU3hIUVVOQlJDeEZRVUZOTEV0QlFVc3NTMEZCU3l4RlFVTndRaXhKUVVGTlJ5eEZRVUZOUXl4SFFVRjFRbEFzUlVGQlMwTXNRMEZCVHl4RlFVTjZReXhEUVVGRkxHTkJRVUZQTEVOQlFXTXNSVUZCU1VZc1JVRkJTU3hSUVVNNVFpeEhRVUZKVGl4RlFVRkpMR05CUVdVc1EwRkRaa2NzUlVGQlRTeFRRVUZYTEVkQlEycENRU3hGUVVGTkxGRkJRVkVzUlVGQlJTeEZRVU53UWl4SlFVRk5UU3hGUVVGTFJDeEZRVUZqVWl4RlFVRkpMR0ZCUVdFc1JVRkRNVU5ITEVWQlFVMHNVVUZCVVU4c1IwRkJZMFFzUlVGQlNTeEZRVUZGTEVOQlFVTXNRMEZEZGtNc1EwRkRRU3hKUVVGSlJTeEZRVUZaTEVkQlExcERMRVZCUVdsQ0xFdEJRM0pDTEVkQlFVbGFMRVZCUVVrc1UwRkJWU3hEUVVOa0xFZEJRVWxoTEVWQlFVOWlMRVZCUVVrc1VVRkJVU3hGUVVGSExFTkJSM1JDTEVkQlJrbEJMRVZCUVVrc1UwRkJVeXhoUVVGbFNTeEhRVU0xUWtRc1JVRkJUU3hMUVVGTExFVkJRVVVzUlVGRFlrZ3NSVUZCU1N4VFFVRlRMR05CUVdVc1EwRkROVUlzU1VGQlRWTXNSVUZCUzBRc1JVRkJZMUlzUlVGQlNTeFRRVUZUTEdGQlFXRXNSVUZEYmtSSExFVkJRVTBzUzBGQlMwOHNSMEZCWTBRc1JVRkJTU3hGUVVGRkxFTkJRVU1zUTBGRGNFTXNRMEZGUVVnc1JVRkJTU3hwUWtGQmJVSXNRMEZCUXl4RFFVRkRUaXhGUVVGSkxGRkJRemRDV1N4RlFVRnBRbG9zUlVGQlNTeFRRVUZUTEU5QlEyeERMRU5CUTBFc1NVRkJUV01zUlVGQlkwWXNSVUZCYVVJc1QwRkJXU3hKUVVGUFJDeEZRVUZaTEVkQlEyaEZTU3hGUVVGUFF5eEhRVUZWYUVJc1JVRkJTU3hUUVVGVlRTeEZRVUZMTEVsQlFVOU5MRVZCUVdsQ0xFdEJRVTlGTEVOQlFWY3NSVUZET1VWR0xFbEJRMEZITEVkQlFWRkZMRWRCUVZsR0xFVkJRVTBzUjBGQlNWQXNSVUZCWTBrc1EwRkJZeXhEUVVGRExFbEJRekZFUnl4RlFVRkxMRU5CUVVNc1NVRkJUU3hMUVVGUFFTeEZRVUZMTEVOQlFVTXNTVUZCVFN4TlFVTm9RMW9zUlVGQlRVRXNSVUZCVFN4UFFVRlRMRU5CUVVNc1NVRkJUU3hOUVVjMVFrRXNSVUZCVFVFc1JVRkJUU3hQUVVGVExFTkJRVU1zUlVGQlNTeFBRVUZQV1N4RFFVRkpMRWRCUjNKRFdpeEZRVUZOTEV0QlFVdFpMRU5CUVVrc1EwRkRka0lzVFVGRlNWb3NSVUZCVFN4TFFVRkxZU3hIUVVGVmFFSXNSVUZCU1N4VFFVRlZUU3hEUVVGSExFTkJRVU1zUlVGRk0wTXNTVUZCU1Vvc1JVRkJRVVlzUlVGQlNTeGhRVUZLTEUxQlFVRkZMRVZCUVdkQ0xFOUJRMmhDTEVkQlFVbEdMRVZCUVVrc1VVRkJVeXhEUVVOaUxFbEJRVTFUTEVWQlFVdEVMRVZCUVdOU0xFVkJRVWtzVDBGQlR5eEZRVU5vUTFNc1JVRkJSeXhUUVVGVE8wRkJRVUVzUTBGQlNTeEhRVU5vUWs0c1JVRkJUU3hMUVVGTExFdEJRVXNzUlVGRGFFSkJMRVZCUVUwc1MwRkJTMDhzUjBGQlkwUXNSVUZCU1N4RlFVRkZMRU5CUVVNc1IwRkhhRU5PTEVWQlFVMHNTMEZCU3l4UFFVRlBUU3hEUVVGRkxFVkJRVVVzUTBGRk9VSXNUVUZGU1U0c1JVRkJUU3hMUVVGTExFdEJRVXNzVFVGSGJrSXNRMEZEUkN4SlFVRkpaU3hGUVVGTGJFSXNSVUZCU1N4UlFVTlVhMElzUjBGQlRWQXNTVUZEVGs4c1JVRkJTMEVzUlVGQlJ5eFJRVUZSTEU5QlFWRXNSVUZCUlN4SFFVTXhRa0VzUzBGRFN5eERRVUZEVUN4SFFVRmhReXhKUVVGdFFsUXNSVUZCVFVFc1JVRkJUU3hQUVVGVExFTkJRVU1zU1VGQlRTeEpRVU01UkVFc1JVRkJUU3hMUVVGTExFVkJRVVVzUlVGRGFrSkJMRVZCUVUwc1MwRkJTMDhzUjBGQlkwWXNSVUZCWTFVc1EwRkJSU3hGUVVGSExFVkJRVVVzUTBGQlF5eEZRVVYyUkN4RFFVTkJMRTlCUVU5bUxFVkJRVTBzUzBGQlN6dEJRVUZCTEVOQlFVa3NSVUZCU1R0QlFVRkJMRU5CUXpsQ0xFTkRkRVZCTEVsQlFVMW5RaXhIUVVGT0xFMUJRVTFETEVOQlFWTXNRMEZEV0N4WlFVRlpReXhGUVVGUFF5eEZRVUZWUXl4RlFVRlRMRU5CUld4RExFdEJRVXNzWTBGQlowSXNTMEZGY2tJc1MwRkJTeXhSUVVGVkxFdEJSV1lzUzBGQlN5eFBRVUZUTEVOQlFVTXNSVUZGWml4TFFVRkxMRk5CUVZjc1EwRkJReXhGUVVOcVFpeFBRVUZQTEdWQlFXVXNTMEZCVFVNc1IwRkJWeXhEUVVGRkxFMUJRVTlETEVWQlFVa3NRMEZCUXl4RlFVTnlSQ3hKUVVGSlF5eEZRVUZaTEV0QlExb3NUMEZCVDBvc1IwRkJZU3haUVVGakxFMUJRVTBzVVVGQlVVRXNRMEZCVVN4RlFVTjRSRWtzUlVGQldVb3NSVUZGVUVNc1NVRkJXU3hSUVVGaFJDeEpRVU01UWtNc1JVRkJWVVFzUlVGRFZrRXNSVUZCVnl4UlFVVm1MRWxCUVUxTExFVkJRVTBzVDBGQlR5eFBRVUZQTEVOQlEzUkNMRmxCUVdFc1IwRkRZaXhwUWtGQmEwSXNSMEZEYkVJc1UwRkJWU3hQUVVOV0xHRkJRV01zUjBGRFpDeFBRVUZSTEVkQlExSXNWMEZCV1N4SFFVTmFMRmRCUVZrc1IwRkRXaXhSUVVGVExFdEJRMklzUlVGQlIwb3NRMEZCVHl4RlFVTldMRXRCUVVzc1VVRkJWVWtzUlVGRFppeEhRVUZKTEVOQlFVVXNVVUZCUVVNc1EwRkJVU3hGUVVGSlJDeEZRVU5rU2l4SFFVRkJMRTFCUVVGQkxFVkJRVk1zWVVGRFZDeExRVUZMTEZkQlFXRkJMRVZCUVZFc1dVRkJXU3hYUVVGWExFVkJRemRETEV0QlFVc3NWMEZCVnl4TFFVRkxMRmRCUTNKQ1N5eEZRVUZWTEV0QlFVc3NWMEZCVnl4TFFVRkxMRlZCUjI1RExFdEJRVXNzVjBGQllTeEpRVUZKUXl4SFFVRlhMRU5CUVVVc1VVRkJRVVFzUTBGQlVTeERRVUZETEVWQlEyaEVMRXRCUVVzc1ZVRkJWVUVzUlVGQlUwd3NRMEZCVHl4RlFVVXZRaXhMUVVGTExGTkJRMFJHTEVsQlFWVXNUMEZCV1N4TFFVRlBMRXRCUVVzc1YwRkJWMEVzUlVGQlQwc3NSVUZCVjBnc1EwRkJUeXhEUVVNNVJTeERRVTFCTEU5QlFWRXNRMEZEU2l4SlFVRk5UeXhGUVVGUExFOUJRVThzVDBGQlQxWXNSVUZCVXl4VlFVRlhMRU5CUXpORExFTkJRVU5KTEVWQlFWTXNSVUZCUnl4RFFVRkZMRTFCUVU5RExFVkJRVWtzUTBGRE9VSXNRMEZCUXl4RlFVTkVMRTlCUVVGTExFVkJRVXNzWTBGQlowSXNTMEZCU3l4alFVTXhRa0VzUlVGQlN5eFJRVUZWTEV0QlFVc3NVVUZEY0VKQkxFVkJRVXNzVDBGQlV5eExRVUZMTEU5QlFVOHNUVUZCVFN4RlFVTm9RMEVzUlVGQlN5eFRRVUZYTEV0QlFVc3NVMEZCVXl4TlFVRk5MRVZCUTNCRFFTeEZRVUZMTEZGQlFWVXNUMEZCVHl4UFFVRlBMRU5CUVVNc1JVRkJSeXhMUVVGTExFOUJRVThzUlVGRGVrTXNTMEZCU3l4aFFVTk1RU3hGUVVGTExGZEJRV0VzUzBGQlN5eFhRVUZYTEUxQlFVMHNSMEZETlVOQkxFVkJRVXNzVDBGQlV5eExRVUZMTEU5QlFVOHNUVUZCVFN4RlFVVm9RMEVzUlVGQlN5eFRRVUZYUXl4RlFVRlBMRXRCUVVzc1VVRkJVU3hGUVVNNVFpeExRVUZMTEZOQlFWTXNUVUZCVFVRc1JVRkJTeXhOUVVGTkxFVkJReTlDTEV0QlFVc3NVMEZEVUN4TFFVRkxMRkZCUTB4QkxFVkJRVXNzVFVGQlVTeExRVUZMTEUxQlFVMHNUVUZCVFN4SFFVTXpRa0VzUTBGRFdDeERRVVZCTEVsQlFVbFVMRVZCUVU4c1EwRkRTRmNzUjBGQmFVSXNTMEZCU3l4UlFVRlJMRWRCUXpsQ0xFdEJRVXNzVTBGQlV5eEpRVUZKV0N4RFFVRkxMRU5CUXk5Q0xFTkJSVUVzVFVGQlRWa3NSVUZCVFZvc1JVRkJUeXhEUVVOWVZ5eEhRVUZwUWl4TFFVRkxMRkZCUVZFc1IwRkRPVUlzUzBGQlN5eFRRVUZUTEUxQlFVMURMRVZCUVUxYUxFTkJRVXNzUTBGRGRrTXNRMEZWUVN4WlFVRlpZU3hGUVVGTlF5eEZRVUZOTEVOQlEzQkNMRWRCUVVrc1EwRkJRMFFzUlVGQlN5eFBRVUZSTEVOQlEyUXNTVUZCVFVVc1JVRkJUME1zUjBGQldTeEpRVUZKTEVWQlF6ZENTQ3hGUVVGTExFOUJSVVFzUTBGQlEwTXNSMEZCVVVNc1JVRkJTeXhKUVVGSlJDeERRVUZKTEVWQlFVbEhMRWRCUVdOSUxFZEJRVkVzU1VGQlMwTXNRMEZCU1N4RlFVRkpSQ3hEUVVOeVJTeERRVU5CTEU5QlFVOHNTVUZCU1Vrc1IwRkJUVXdzUlVGQlN5eE5RVUZOTEVOQlEyaERMRU5CUTBFc1YwRkJWMklzUlVGQlQwTXNSVUZCVlVNc1JVRkJVeXhEUVVOcVF5eEpRVUZKUnl4RlFVTktMRWRCUVVrc1QwRkJUMG9zUjBGQllTeFhRVU53UWtRc1JVRkJVVU1zUlVGQlV5eExRVUZMTEVOQlFVVXNSMEZCU1VRc1EwRkJUU3hGUVVGSExFZEJRVWxCTEVOQlFVc3NSVUZET1VOTExFVkJRVmxLTEZWQlJWQXNUVUZCVFN4UlFVRlJRU3hEUVVGUkxFVkJRVWNzUTBGRE9VSXNTVUZCVFd0Q0xFVkJRVmxETEVkQlFVMHNUMEZCVDBFc1IwRkJUU3hWUVVGWlFTeGhRVUZoTEZGQlFWVkJMR0ZCUVdFc1QwRkRMMFZETEVWQlFWRndRaXhGUVVGVExFOUJRVTlyUWl4RFFVRlJMRVZCUVVVc1NVRkJTU3hOUVVGTkxFVkJRemxEUlN4RlFVRk5MRTlCUVZNc1NVRkRabkJDTEVWQlFWZEJMRVZCUVZNc1QwRkJUMjlDTEVOQlFVc3NSMEZEY0VOb1FpeEZRVUZaU2l4RFFVTm9RaXhOUVVOVFF5eEpRVUZaTEZGQlFXRkVMRWxCUXpsQ1F5eEZRVUZWUkN4RlFVTldRU3hGUVVGWExGRkJSV1lzUjBGQlRTeERRVUZGTEhOQ1FVRkJjVUlzUlVGQmRVSXNZVUZCUVVNc1JVRkJZeXhMUVVGQlF5eEZRVUZOTEdOQlFVRkRMRVZCUVdVc1UwRkJRVU1zUlVGQlZTeEpRVUZCUXl4RFFVRkpMRVZCUVVsNlFpeEhRVUZCTEV0QlFVRkJMRVZCUVZjc1EwRkJReXhGUVVNeFJpeERRVUZGTEZOQlFVRXdRaXhGUVVGVkxGZEJRVUZETEVWQlFWa3NZMEZCUVVNc1EwRkJZeXhGUVVGSlF5eEhRVUZyUWl4TFFVVnNSVklzUjBGQlowSXNSMEZCUnl4RlFVTmlVeXhGUVVGTkxFTkJRMUlzYzBKQlFYVkNWaXhIUVVGQkxFdEJRVUZCTEVWQlFYbENMRWRCUTJoRUxHTkJRV1ZITEVkQlFVRXNTMEZCUVVFc1JVRkJhVUlzUjBGRGFFTXNVMEZCUVVjc1JVRkRRU3hUUVVGQlJpeEZRVU5CTEZOQlFWVnlRaXhGUVVOV0xFOUJRVkVzUzBGQlN5eFBRVU5pTEdOQlFVRjVRaXhEUVVOS0xFVkJRMDFxUWl4RlFVRlBiMElzUjBGQlYycERMRVZCUVU4eVFpeEZRVUZMU3l4RFFVRkhMRVZCUTNaRExFOUJRVWxTTEVkQlFWRlZMRVZCUVdGeVFpeERRVUZKTEVsQlEzcENRU3hGUVVGTExFdEJRVThzU1VGRGFFSm5RaXhGUVVGWExFVkJRMHBvUWl4RFFVTllMRU5CUzBFc1YwRkJWM05DTEVWQlFVdHVReXhGUVVGUFJTeEZRVUZWTEVOQlFVTXNSVUZCUnl4RFFVTnFReXhKUVVGTmEwTXNSVUZCU1N4TFFVRkxMRmRCUVZkRUxFVkJRVXNzUzBGQlRXcERMRU5CUVU4c1JVRkRkRU5yUWl4RlFVRkpMRXRCUVVzc1YwRkJWM0JDTEVWQlFVOHNTMEZCVFVVc1EwRkJUeXhGUVVNNVF5eFBRVUZQTEVsQlFVbHRReXhIUVVGTFJDeEZRVUZIYUVJc1EwRkJReXhEUVVONFFpeERRVXRCTEU5QlFVOWxMRVZCUVVzc1EwRkRVaXhQUVVGUGVFSXNSMEZCYVVJc1MwRkJTeXhSUVVGUkxFVkJRVWtzUzBGQlN5eFRRVUZUTEU5QlFVOTNRaXhEUVVGSExFVkJRVWtzUlVGRGVrVXNRMEZMUVN4VFFVRlRka0lzUlVGQlRTeERRVU5ZTEU5QlFVa3dRaXhIUVVGWk1VSXNRMEZCU1N4RlFVTmFMRXRCUVVzc1ZVRkJXU3hMUVVOV0xFbEJSVmdzUzBGQlN5eFRRVUZYTEV0QlExUXNTVUZGU2tRc1IwRkJhVUlzUzBGQlN5eFJRVUZSTEVWQlF5OUNMRXRCUVVzc1UwRkJVeXhUUVVGVFF5eERRVUZKTEVWQlF6TkNMRVZCUTFZc1EwRk5RU3hKUVVGSmRVSXNSVUZCUzBrc1JVRkJXU3hEUVVOcVFpeFBRVUZQVEN4RlFVRmhMRXRCUVVzc1VVRkJVU3hGUVVNelFpeExRVUZMTEZOQlFWTXNTVUZCU1VNc1JVRkJTMGtzUTBGQlZTeEZRVU5xUXl4TlFVTldMRU5CVFVFc1RVRkJUVE5DTEVWQlFVMHlRaXhGUVVGWkxFTkJRM0JDTEU5QlFVbEVMRWRCUVZreFFpeERRVUZKTEVWQlExUXNRMEZCUXpKQ0xFZEJRV05ETEVWQlFWTXNTMEZCU3l4UlFVRlJMRVZCUTNSRExFdEJRVXNzVTBGQlV5eE5RVU5rTEV0QlFVc3NVMEZEVWs0c1JVRkJZU3hMUVVGTExGRkJRVkVzUlVGRE0wSXNTMEZCU3l4VFFVRlRMRTFCUVUxMFFpeEZRVUZOTWtJc1EwRkJWU3hGUVVOd1F5eE5RVU5XTEVOQlNVRXNTVUZCU1Vvc1JVRkJTeXhEUVVOTUxFOUJRVTlFTEVWQlFXRXNTMEZCU3l4UlFVRlJMRVZCUVVrc1MwRkJTeXhUUVVGVExFbEJRVWxETEVOQlFVY3NSVUZCU1N4RlFVTnNSU3hEUVVsQkxFMUJRVTEyUWl4RlFVRk5MRU5CUTFJc1QwRkJTVEJDTEVkQlFWa3hRaXhEUVVGSkxFVkJRMVFzUzBGQlN5eFhRVUZoTEU5QlEzUkNjMElzUlVGQllTeExRVUZMTEZGQlFWRXNSVUZCU1N4TFFVRkxMRk5CUVZNc1RVRkJUWFJDTEVOQlFVa3NSVUZCU1N4RlFVTnlSU3hEUVV0QkxFbEJRVWwxUWl4RlFVRkxia01zUlVGQlR5eERRVU5TTEV0QlFVc3NWVUZCV1N4TFFVVnFRaXhMUVVGTExGTkJRVmQ1UXl4SFFVRnRRaXhMUVVGTExFOUJRVkVzUTBGQlEwNHNRMEZCUnl4RlFVRkhia01zUTBGQlN5eEZRVVYyUkZjc1IwRkJhVUlzUzBGQlN5eFJRVUZSTEVkQlEyNURMRXRCUVVzc1UwRkJVeXhKUVVGSmQwSXNSVUZCUzI1RExFTkJRVXNzUTBGRmNFTXNRMEZMUVN4TlFVRk5XU3hGUVVGTldpeEZRVUZQTEVOQlExaHpReXhIUVVGWk1VSXNRMEZCU1N4RlFVVm9RaXhMUVVGTExGTkJRVmRhTEVWQlJWZ3NTMEZCU3l4VlFVRlpMRXRCUlhSQ0xFdEJRVXNzVTBGQlYzbERMRWRCUVcxQ0xFdEJRVXNzVDBGQlVTeE5RVUZOTEV0QlFVczNRaXhEUVVGSkxFVkJRVWRhTEVOQlFVc3NSVUZGYkVWWExFZEJRV2xDTEV0QlFVc3NVVUZCVVN4SFFVTnVReXhMUVVGTExGTkJRVk1zVFVGQlRVTXNSVUZCVFZvc1EwRkJTeXhEUVVWMlF5eERRVkZCTEZWQlFWVlBMRVZCUVZOTUxFVkJRVlVzUTBGQlF5eEZRVUZITEVOQlEzcENMRTlCUVU5TExFZEJRVmtzVjBGRGJrSkJMRVZCUVZVc1QwRkJUMEVzUTBGQlR5eEhRVU0xUWl4SlFVRkpSQ3hGUVVOS0xFOUJRVkZETEVWQlFWTXNRMEZEWWl4SlFVRkxMRTFCUTBjc1MwRkJTeXhYUVVOTUxFdEJRVXNzVjBGQlZ5eExRVUZMTEZGQlFWVXNUVUZGTDBJc1MwRkJTeXhYUVVGaExFbEJRVWxETEVkQlFWY3NRMEZCUlN4UlFVRlRMRXRCUVUwc1EwRkJReXhGUVVOMlJFWXNSVUZCVFN4RFFVRkZMR2xDUVVGclFpeEhRVUZQTEU5QlFWRXNWVUZCVnl4RlFVTndSQ3hOUVVOS0xFbEJRVXNzVFVGRFRDeEpRVUZMTEU5QlEwY3NTMEZCU3l4WFFVTk1MRXRCUVVzc1YwRkJWeXhMUVVGTExGRkJRVlZETEVWQlJTOUNMRXRCUVVzc1YwRkJZU3hKUVVGSlF5eEhRVUZYTEVOQlFVVXNVVUZCUVVRc1EwRkJVU3hEUVVGRExFVkJRMmhFUkN4RlFVRk5MRU5CUVVVc2FVSkJRV3RDTEVkQlFVMHNUMEZCVVN4TlFVRlBMRVZCUXk5RExFMUJRMG9zUzBGQlN5eExRVU5ITEV0QlFVc3NXVUZEVEN4UFFVRlBMRXRCUVVzc1YwRkRhRUpCTEVWQlFVMHNTMEZEVGl4TlFVTktMRkZCUVZNc1EwRkRUQ3hKUVVGTmIwTXNSVUZCU3l4TFFVRkxMRlZCUVZWdVF5eERRVUZQTEVWQlEycERMRTFCUVUwc1NVRkJTU3hOUVVGTkxDdEVRVUVyUkcxRExFTkJRVVVzUlVGQlJTeERRVU4yUml4RFFVTktMRU5CUlVFc1IwRkJTWGhETEVWQlFWRXNhMEpCUVd0Q0xFOUJRekZDTEV0QlFVc3NUMEZCVTBFc1JVRkJVU3hsUVVOcVFra3NSVUZEVEN4TFFVRkxMRTlCUVZNc1NVRkJTWEZETEVkQlFVOHNUMEZCVHl4UFFVRlBja01zUlVGQlMwb3NRMEZCVHl4RFFVRkRMRTFCUlhCRUxFOUJRVTBzU1VGQlNTeE5RVUZOTEhGRlFVRnhSU3hEUVVNM1JpeERRVVZCTEV0QlFVc3NRMEZCUlN4TFFVRkJNRU1zUlVGQlRTeFJRVUZCUXl4RlFVRlRMRk5CUVVGRExFVkJRVlVzWTBGQlFVTXNSVUZCWlN4VFFVRkJia0lzUlVGQlZTeFJRVUZCYjBJc1EwRkJVU3hGUVVGSkxFTkJRVU1zUlVGQlJ5eERRVU55UlN4SlFVRk5hRUlzUlVGQlRTeERRVU5TTEZGQlFWTXNTVUZCU1N4SlFVTmlMRWxCUVVzc1MwRkRUQ3hMUVVGTkxFTkJRVU5aTEVWQlExQXNVMEZCVlVVc1NVRkJZU3hIUVVOMlFpeGhRVUZqTEVkQlEyUXNZMEZCWlN4UFFVRlBReXhIUVVGclFpeFRRVUZYUVN4RlFVRm5RaXhIUVVOMlJTeEZRVU5OUlN4RlFVRk5ReXhIUVVGTExFdEJRVXNzVTBGQlZVd3NSMEZCUVN4TFFVRkJRU3hGUVVGWExFZEJRVWxpTEVOQlFVY3NSVUZEYkVRc1IwRkJTU3hQUVVGUFNpeEhRVUZoTEZkQlEzQkNMRTlCUVZjc1EwRkJSU3hOUVVGQmRVSXNSVUZCVHl4SlFVRkJSaXhEUVVGSkxFbEJRVXRxUWl4RlFVRkpMRkZCUVZFc1QwRkJUeXhGUVVNMVEwb3NSVUZCVTNGQ0xFVkJRVXRGTEVOQlFVc3NSVUZETTBJc1QwRkJUeXhQUVVGUFNDeEhRVUZaTEZkQlEzQkNTU3hIUVVGaFNpeEZRVUZUTEVOQlFVVXNSMEZCU1VNc1EwRkJTU3hGUVVGSExFZEJRVWxCTEVOQlFVY3NSVUZETVVOQkxFTkJRMVlzUTBGUFFTeFBRVUZQU2l4RlFVRlRha0lzUlVGQlZTeERRVU4wUWl4UFFVRlBMRXRCUVVzc1MwRkJTeXhEUVVGRkxFdEJRVTBzUjBGQlRTeFJRVUZCYVVJc1JVRkJVeXhUUVVGVkxFZEJRVThzVTBGQlFXcENMRU5CUVZNc1EwRkJReXhEUVVOMlJTeERRVVZCTEZOQlFWTXhRaXhGUVVGVkxFTkJRVU1zUlVGQlJ5eERRVU51UWl4SFFVRkpMRXRCUVVzc1QwRkJUeXhQUVVGVExFVkJRM0pDTEUxQlFVMHNTVUZCU1N4TlFVRk5MRFJEUVVFMFF5eEZRVU5vUlN4SFFVRkpMRmRCUVZsQkxFbEJRMWdzUTBGQlF5eFBRVUZQTEZWQlFWVkJMRVZCUVZFc1RVRkJUU3hIUVVGTExFOUJRVTlCTEVWQlFWRXNUVUZCVFN4SFFVRkxMRWRCUVVrc1EwRkRjRVVzU1VGQlRXMUVMRVZCUVVrc1MwRkJTeXhWUVVGVmJrUXNSVUZCVVN4TlFVRk5MRVZCUTNaRExFMUJRVTBzU1VGQlNTeE5RVUZOTEcxRVFVRnRSRzFFTEVOQlFVTXNSVUZCUlN4RFFVTXhSU3hEUVVOQkxFOUJRVTlETEVkQlFXdENMRXRCUVUxd1JDeERRVUZQTEVOQlF6RkRMRU5CUTBvc1JVRkRRU3hUUVVGVFV5eEhRVUZwUWpSRExFVkJRVlVzUTBGRGFFTXNSMEZCU1hKQ0xFVkJRV0Z4UWl4RFFVRlJMRVZCUTNKQ0xFMUJRVThzUjBGRFdDeE5RVUZOTEVsQlFVa3NUVUZCVFN4cFJFRkJhVVFzUTBGRGNrVXNRME0xVlVFc1NVRkJUVU1zUjBGQlRpeGpRVUYzUWl4TFFVRk5MRU5CUXpGQ0xGbEJRVmxETEVWQlFVMURMRVZCUVV0RExFVkJRVTFETEVWQlFWTXNRMEZEYkVNc1RVRkJUU3hGUVVOT0xFdEJRVXNzUzBGQlQwZ3NSVUZEV2l4TFFVRkxMRXRCUVU5RkxFVkJRMW9zUzBGQlN5eFJRVUZWUXl4RlFVTm1MRXRCUVVzc1NVRkJUVVlzUTBGRFppeERRVU5LTEVWQlEwMUhMRWRCUVU0c1kwRkJOa0pNTEVWQlFWVXNRMEZEYmtNc1dVRkJXVVVzUlVGQlMwTXNSVUZCVFVNc1JVRkJVeXhEUVVNMVFpeE5RVUZOTEdsQ1FVRnJRa1lzUlVGQlMwTXNSVUZCVFVNc1EwRkJUeXhEUVVNNVF5eERRVU5LTEVWQlEwMUZMRWRCUVU0c1kwRkJNRUpPTEVWQlFWVXNRMEZEYUVNc1dVRkJXVVVzUlVGQlMwTXNSVUZCVFVNc1JVRkJVeXhEUVVNMVFpeE5RVUZOTEdOQlFXVkdMRVZCUVV0RExFVkJRVTFETEVOQlFVOHNRMEZETTBNc1EwRkRTaXhGUVVOTlJ5eEhRVUZuUWl4RFFVRkRReXhGUVVGTFF5eEpRVUZSUXl4SFFVRlZMRU5CUXpGRExFZEJRVWxCTEVWQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVUwc1IwRkRha0lzVDBGRFNrRXNSVUZCVFN4UlFVRlZRU3hGUVVGTkxFbEJRVWtzU1VGQlNWSXNSMEZCVDA4c1JVRkJSeXhSUVVGUlVDeERRVUZITEVOQlFVTXNSVUZEY0VRc1IwRkJUU3hEUVVGRkxFdEJRVUZUTEVWQlFVMHNTVUZCUVVNc1EwRkJTU3hGUVVGSlJpeEZRVUZOTEZGQlFWRXNRMEZCUXl4RlFVTnlRMEVzUlVGQlRTeFRRVUZYTEZsQlFWbERMRU5CUVVrc1dVRkJXVU1zUTBGQlJ5eEhRVU5vUkN4SlFVRkpReXhGUVVGTFJDeEZRVUZOTEVWQlExaEZMRVZCUVZWT0xFVkJRMVFzVlVGQlZVTXNSVUZCUnl4WFFVRlhSU3hGUVVGUExFTkJRVU1zUlVGQlIwWXNSVUZCUnl4WFFVRlhSU3hEUVVGSkxFTkJRVU1zUlVGRGRFUXNVVUZCVVN4WFFVRlpMRVZCUVVVc1JVRkZNMElzUjBGQlNVVXNSMEZCVFN4SlFVRk5ReXhGUVVGUkxFOUJRVk1zUjBGQlNTeERRVU5xUXl4SlFVRk5ReXhGUVVGWkxFdEJRVXNzU1VGQlNVWXNSVUZCU3l4SFFVRkpReXhGUVVGUkxFOUJRVk1zUlVGQlJTeEZRVU4yUkVFc1JVRkJWU3hUUVVGTlFTeEZRVUZSTEZWQlFWVkRMRU5CUVZNc1JVRkRNME5HTEVkQlFVMUZMRVZCUVZrc1EwRkRkRUlzUTBGSlFTeEhRVWhKUkN4RlFVRlJMRTlCUVZNc1MwRkRha0pCTEVWQlFWVkJMRVZCUVZFc1ZVRkJWU3hGUVVGSExFVkJRVVVzUlVGQlNTeFZRVVZ5UTBnc1JVRkJUeXhIUVVGTExFOUJRVThzUzBGQlMwY3NSVUZCVVN4VlFVRlZMRVZCUVVkRUxFTkJRVVVzUTBGQlF5eEZRVUZITEVOQlJXNUVMRWxCUVVsSExFVkJRVTlTTEVWQlFVa3NWVUZCVlVNc1JVRkJSeXhYUVVGWFJTeEZRVUZQTEVOQlFVTXNSVUZCUjBZc1JVRkJSeXhYUVVGWFJTeEZRVUZQTEVOQlFVTXNRMEZCUXl4RlFVTnlSVXNzUlVGQlN5eFBRVUZUTEV0QlEyUkJMRVZCUVU5QkxFVkJRVXNzVlVGQlZTeEZRVUZITEVWQlFVVXNSVUZCU1R0QlFVRkJMRWRCUTI1RFJpeEZRVUZWUlN4RlFVRlBSaXhEUVVOeVFpeERRVU5CTEVkQlFVa3NUMEZCVHl4TFFVRkxRU3hEUVVGUExFVkJRVWNzUTBGRGRFSXNTVUZCU1Vjc1JVRkJVU3hGUVVOT1F5eEZRVUZOVWl4RlFVRk5MRkZCUVZFc1EwRkJReXhGUVVOMlFsRXNSMEZCVDBFc1JVRkJTU3hQUVVGVFVDeEhRVUZSVHl4RlFVRkpMRWxCUVUxT0xFbEJRM1JEU3l4RlFVRlJMRXRCUVVzc1NVRkJTU3hGUVVGSExFdEJRVXNzU1VGQlNVTXNSVUZCU1N4SlFVRk5UaXhGUVVGTExFZEJRVXRETEVOQlFVVXNRMEZCUXl4SFFVVjRSQ3hKUVVGTlRTeEZRVUZWTEVsQlFVa3NUMEZCVDA0c1EwRkJSU3hGUVVGSkxFbEJRVWtzVDBGQlQwa3NRMEZCU3l4RlFVTnFSRkFzUlVGQlRTeFRRVUZYTzBGQlFVRTdRVUZCUVN4RlFVRlJTU3hEUVVGUE8wRkJRVUVzUlVGQlMwc3NRMEZCVHp0QlFVRkJMRU5CUTJoRUxFTkJRMG9zUlVOMFJFRXNVMEZCVTBNc1IwRkJZVU1zUlVGQlVTeERRVUZGTEV0QlFVRkRMRVZCUVUwc1ZVRkJRVU1zUlVGQlZ5eExRVUZCUXl4RlFVRk5MRTlCUVVGRExFVkJRVkVzVVVGQlFVTXNSVUZCVXl4aFFVRkJReXhGUVVGakxHVkJRVUZETEVOQlFXVXNSVUZCUnl4RFFVTndSeXhKUVVGSlF5eEZRVUZqTEVkQlEyUkRMRVZCUVZsR0xFVkJRMXBITEVWQlFWZElMRVZCUTFoSkxFVkJRVlVzUjBGRFZrTXNSVUZCWVN4SFFVTmlReXhGUVVGaExFZEJRMkpETEVWQlFWY3NSMEZEV0VNc1JVRkJUU3hMUVVOT1F5eEZRVUZUTEV0QlExUkRMRVZCUVUwc1MwRkRUa01zUlVGQmJVSXNTMEZEYmtKRExFVkJRVkVzUzBGRFVrTXNSVUZCVVN4TFFVTlNReXhGUVVGUkxFdEJRMW9zVVVGQlYwTXNTMEZCVTNSQ0xFVkJZMmhDTEU5QllrbGpMRWxCUTBsUkxFVkJRVTBzVDBGQlV5eFRRVU5tUVN4RlFVRk5MRTlCUVZNc1YwRkRaa0VzUlVGQlRTeFBRVUZUTEZOQlEyWnFRaXhGUVVGUmFVSXNSVUZCVFN4UFFVRlJMR1ZCUVdkQ0xIVkZRVUYxUlN4RlFVTnFTRklzUlVGQlZ5eEpRVVZZUXl4SlFVTkpUaXhIUVVGaFlTeEZRVUZOTEU5QlFWTXNWMEZCWVVFc1JVRkJUU3hQUVVGVExGZEJRM2hFYWtJc1JVRkJVVlVzUlVGQlN5eG5Ra0ZCYVVJc2NVTkJRWEZETEVWQlJYWkZRU3hGUVVGTkxFMUJSVVpQTEVWQlFVMHNTMEZCVFN4RFFVTm9RaXhKUVVGTExGRkJTVWNzUTBGQlEzSkNMRWxCUTBGRExFbEJRV01zWTBGQlpVTXNSMEZCUVN4WlFVRkJRU3hGUVVGTkxGRkJRVk1zYjBKQlF6ZERiVUlzUlVGQlRTeFBRVUZQTEZOQlFWTXNSMEZCU1N4SlFVTXhRbEFzUlVGQlRVOHNSMEZGVmxvc1JVRkJWeXhIUVVOWUxFMUJRMG9zU1VGQlN5eFZRVUZYTEVOQlExQkJMRWRCUTBSTUxFVkJRVkZwUWl4RlFVRlBMR1ZCUVdkQ0xIZEZRVUYzUlN4RlFVTXpSeXhKUVVGTlF5eEZRVUZMUkN4RlFVRk5MRTlCUVU4c1ZVRkJWU3hEUVVGRExFZEJRVXNzU1VGRGJrTllMRVZCUjBSQkxFZEJRVmRETEVWQlFXRlhMRVZCUm5oQ1dpeEZRVUZWV1N4RlFVZGtXQ3hGUVVGaExFZEJRMkpJTEVWQlFWa3NSMEZEV2l4TFFVTktMRU5CUTBFc1NVRkJTeXhWUVVOSFFTeEZRVU5KUlN4RlFVTkJRU3hIUVVGWFZ5eEZRVUZOTEU5QlJXcENaQ3hGUVVGakxFZEJSMnhDU1N4SFFVRmpWU3hGUVVGTkxFOUJRM2hDWWl4RlFVRlpMRWRCUTFwSkxFVkJRV0VzU1VGRFZFY3NSMEZCVlVNc1MwRkRWa01zUlVGQmJVSkpMRWRCUTNaQ1dpeEZRVUZYTEVkQlExZ3NUVUZEU2l4SlFVRkxMRk5CUTBkTkxFZEJRMEZZTEVWQlFWRnBRaXhGUVVGUExHMUNRVUZ2UWl4dlEwRkJiME1zUlVGRGRrVkJMRVZCUVUwc1QwRkJUeXhUUVVGVExFZEJRVWNzUjBGRGVrSnFRaXhGUVVGUmFVSXNSVUZCVFN4UFFVRlRRU3hGUVVGTkxFOUJRVThzVDBGQlV5eEZRVUZITEZsQlFXRXNhME5CUVcxRExFVkJRVWtzUlVGRGVFZE9MRVZCUVZOTkxFVkJRMHhFTEVsQlFWVXNUMEZEVmtFc1JVRkJVVU1zUlVGQlRTeFJRVU5zUW1Jc1JVRkJXU3hIUVVOYVF5eEZRVUZYTEVkQlExaEpMRVZCUVZjc1IwRkRXQ3hOUVVOS0xFbEJRVXNzVFVGQlR5eERRVU5LUnl4SFFVTkJXaXhGUVVGUmFVSXNSVUZCVHl4blFrRkJhVUlzYVVOQlFXbERMRVZCUTNKRlRDeEZRVUZOU3l4RlFVTkdSQ3hKUVVGVkxFOUJRMVpCTEVWQlFWRkRMRVZCUVUwc1VVRkRiRUppTEVWQlFWa3NSMEZEV2tNc1JVRkJWeXhIUVVOWVNTeEZRVUZYTEVkQlExZ3NTMEZEU2l4RFFVTkJMRXRCUVV0YUxFZEJSVWRqTEVkQlFWVkRMRWxCUTFaYUxFVkJRVkZwUWl4RlFVRlBMR2xDUVVGclFpeHpRMEZCYzBOQkxFVkJRVTBzVFVGQlRTeFpRVUZaTEVWQlF5OUdSaXhIUVVOQlppeEZRVUZSYVVJc1JVRkJUeXh0UWtGQmIwSXNZMEZCWTBFc1JVRkJUU3hOUVVGTkxFOUJRVTl5UWl4SFFVRkJMRXRCUVVGQkxFVkJRVkVzV1VGQldTeEZRVUZGTEVWQlF6bEdiVUlzUlVGQlVVVXNSVUZEVW1Jc1JVRkRTVkFzU1VGQll5eG5Ra0ZCYTBKQkxFbEJRV01zYlVKQlEyeEVVU3hGUVVGWExFZEJRMWdzVFVGRFNpeEpRVUZMTEZGQlEwUXNSMEZCU1ZRc1JVRkJUU3hEUVVOR2EwSXNSMEZEUVdRc1JVRkJVV2xDTEVWQlFVOHNiVUpCUVc5Q0xHMUNRVUZ0UW5KQ0xFTkJRVWtzUlVGQlJTeEZRVU5vUld0Q0xFVkJRVkZITEVWQlExSmlMRVZCUVZrc1IwRkRXa01zUlVGQlZ5eEhRVU5ZTEV0QlEwb3NRMEZGU2l4UlFVTkpUQ3hGUVVGUmFVSXNSVUZCVHl4dFFrRkJiMElzWTBGQlkwRXNSVUZCVFN4SlFVRkpMRkZCUVZFc1JVRkRia1ZpTEVWQlFWa3NSMEZEV2tNc1JVRkJWeXhGUVVOdVFpeERRVVZLTEVsQlFVMWpMRVZCUVU5NFFpeEZRVUZQUVN4RlFVRlBMRTlCUVZNc1EwRkJReXhGUVVNdlFubENMRVZCUVUxRUxFVkJRVTlCTEVWQlFVc3NUMEZCVTBFc1JVRkJTeXhQUVVGUExFOUJRVk53UWl4RlFVTjBSQ3hQUVVGSlZTeEhRVU5CV0N4SFFVTkJRU3hGUVVGTExFOUJRVk1zVTBGRFpFRXNSVUZCU3l4UFFVRlRMRmRCUTJSQkxFVkJRVXNzVDBGQlV5eFZRVU5pUVN4RlFVRkxMRTlCUVZNc1ZVRkJXVUVzUlVGQlN5eFRRVUZYTEV0QlF6TkRSU3hGUVVGUlJpeEZRVUZMTEU5QlFWRXNaVUZCWjBJc2RVVkJRWFZGTEVWQlJUVkhXU3hKUVVORlRpeEhRVUZoVFN4RlFVRkpMRkZCUVZWVUxFbEJRM3BDU0N4SFFVRkJMRmxCUVVGQkxFVkJRVTBzVVVGQlV5eGpRVU5tUVN4SFFVRkJMRmxCUVVGQkxFVkJRVTBzVVVGQlV5eGpRVU51UWtVc1JVRkJVVlVzUlVGQlN5eG5Ra0ZCYVVJc2NVTkJRWEZETEVWQlEyaEZMRU5CUTBnc1RVRkJRVWtzUlVGRFFTeE5RVUZCUXl4RlFVTkJMRmxCUVVGYUxFVkJRMEVzVVVGQlFVY3NSVUZEUVN4WFFVRkJSU3hGUVVOQkxFOUJRVUZITEVWQlEwRXNTVUZCUVVNc1JVRkRRU3hwUWtGQlFVTXNSVUZEUVN4SlFVRkJUeXhGUVVOQkxFMUJRVTlLTEVkQlFVRXNTMEZCUVVFc1JVRkJVMGtzUTBGRGNFSXNRMEZEU2l4RFEycEtRU3hUUVVGVFF5eEhRVUZuUWtNc1JVRkJTeXhEUVVNeFFpeEhRVUZKTEVOQlFVTkJMRVZCUTBRc1QwRkJUeXhMUVVOWUxFOUJRVkZCTEVWQlFVa3NTMEZCVFN4RFFVTmtMRWxCUVVzc1VVRkRUQ3hKUVVGTExGTkJRMHdzU1VGQlN5eDFRa0ZEVEN4SlFVRkxMSFZDUVVORUxFZEJRVWxCTEVWQlFVa3NUMEZCVHl4VFFVRlRPMEZCUVVFc1EwRkJTU3hGUVVONFFpeE5RVUZQTEVkQlExZ3NSMEZCU1VFc1JVRkJTU3hMUVVOS0xGRkJRVmRETEV0QlFVMUVMRVZCUVVrc1NVRkRha0lzUjBGQlNVTXNSVUZCUnl4UFFVRlRMRlZCUTFvc1RVRkJUeXhIUVVOdVFpeE5RVUZQTEVkQlExZ3NTVUZCU3l4clFrRkRSQ3hSUVVGWFF5eExRVUZOUml4RlFVRkpMRTFCUVU4c1EwRkRlRUlzVVVGQlYwTXNTMEZCVFVNc1JVRkJSeXhOUVVOb1FpeEhRVUZKUkN4RlFVRkhMRTlCUVZNc1ZVRkRXaXhOUVVGUExFZEJRMllzUjBGQlNVTXNSVUZCUnl4TFFVTklMRkZCUVZkRUxFdEJRVTFETEVWQlFVY3NTVUZEYUVJc1IwRkJTVVFzUlVGQlJ5eFBRVUZUTEZWQlExb3NUVUZCVHl4SFFVTnVRaXhIUVVGSlJpeEhRVUZuUWtjc1JVRkJSeXhIUVVGSExFZEJRVXRJTEVkQlFXZENSeXhGUVVGSExFdEJRVXNzUlVGRGJrUXNUVUZCVHl4RlFVTm1MRU5CUTBFc1RVRkJUeXhIUVVOWUxGRkJRMGtzVFVGQlR5eEZRVU5tTEVOQlEwb3NRME0zUWtFc1UwRkJVME1zUjBGQlowSkRMRVZCUVZGRExFVkJRVWxETEVWQlFWTXNRMEZETVVNc1NVRkJTVVFzUjBGQlFTeFpRVUZCUVN4RlFVRkpMRkZCUVZNc2EwSkJRVzFDTEVOQlEyaERMRWxCUVUxRkxFVkJRVTFHTEVWQlFVY3NTVUZCU1N4RFFVRkRMRVZCUTJoQ1JTeEZRVUZKTEZOQlFWZElMRWxCUTJSSExFVkJRVWtzVTBGQlZ5eExRVUZQUVN4RlFVRkpMRk5CUVZjc1RVRkRkRU5ETEVkQlFXZENTQ3hEUVVGRkxFZEJSV3hDUXl4RlFVRlJReXhGUVVGTExHRkJSRVFzZVVSQlEyOUNMRVZCUVVrc1EwRkZOVU1zUTBGRFNpeERRMVpCTEZOQlFWTkZMRWRCUVZsRExFVkJRVXRETEVWQlFVOURMRVZCUVZFc1EwRkRja01zUjBGQlRTeERRVUZGTEZkQlFVRkRMRU5CUVZjc1JVRkJTVWdzUlVGQlNTeFJRVU16UWl4SFFVRkpSeXhKUVVGbExFZEJRMllzVFVGQlR5eEhRVU5ZTEVsQlFVMURMRVZCUVZVc1QwRkJUMFFzUjBGQlpTeFhRVU5vUTBFc1JVRkRRU3hEUVVGRFJTeEZRVUZIUXl4SlFVRk5SQ3hKUVVGTlF5eEhRVUZOUXl4RlFVRlRSaXhEUVVGRExFZEJRVXRGTEVWQlFWTkVMRU5CUVVNc1IwRkJTMFFzUlVGQlJTeFJRVUZWUXl4RlFVRkZMRTFCUTNoRkxFOUJRVTlNTEVWQlFVMHNTMEZCUzA4c1IwRkJVVW9zUlVGQlVVa3NSVUZCU3l4SlFVRkxUaXhEUVVGTkxFTkJRVU1zUTBGRGRrUXNRME5JUVN4SlFVRk5UeXhIUVVGakxHdEVRVU53UWl4VFFVRlRReXhIUVVGblFpeERRVUZGTEZsQlFVRkRMRVZCUVdFc2FVSkJRVUZETEVOQlFXbENMRVZCUVVkRExFVkJRVXRETEVWQlFVbERMRVZCUVZORExFVkJRVXNzUTBGU2JrWXNTVUZCUVVNc1JVRkJRVU1zUlVGVFNTeEpRVUZOUXl4SFFVRlpSaXhGUVVGQlJDeEhRVUZCTEZsQlFVRkJMRVZCUVVzc1dVRkJUQ3hMUVVGQlF5eEZRVUZyUWtjc1IwRkRPVUpETEVWQlFVMHNTVUZCU1VZc1JVRkJWVTRzUlVGQlNTeE5RVUZOTEVWQlEyaERRU3hGUVVGSkxGTkJRMHBCTEVWQlFVa3NUMEZCVXl4SlFVTnFRaXhKUVVGSlV5eEZRVUZUVWl4RlFVRkhMRTlCUTFwVExFVkJRV0VzUzBGRGFrSXNVVUZCVjBNc1MwRkJXVllzUlVGQlJ5eE5RVUZQTEVOQlF6ZENMRWRCUVUwc1EwRkJSU3hOUVVGQlZ5eEZRVUZQTEVsQlFVRkRMRVZCUVVzc1NVRkJRVU1zUlVGQlN5eE5RVUZCUXl4RFFVRk5MRVZCUVVsS0xFVkJSVGRDU3l4RlFVRlhReXhIUVVGaFRDeEZRVUZQTEVOQlEycERMRlZCUVZjc2JVSkJRMWdzUzBGQlRVTXNSMEZCUVN4TFFVRkJRU3hGUVVGUFF5eEhRVUZCTEZsQlFVRkJMRVZCUVUwc1IwRkRia0lzVDBGQlFVd3NSVUZEUVN4UlFVRkJVQ3hGUVVOQkxHRkJRV05FTEVWQlFVY3NUMEZEYWtJc1pVRkJaMElzUlVGRGNFSXNRMEZCUXl4RlFVTkxhVUlzUlVGQll5eERRVUZEUml4RlFVRlRMRTFCUXpsQ0xFZEJRVWxGTEVWQlFXRXNRMEZQWWl4SFFVNUpUQ3hKUVVOSlFTeEZRVUZKTEU5QlFWTXNXVUZEWWxnc1JVRkJVVThzUlVGQlVTeDNRa0ZCZVVJc2VVUkJRWGxFTEVWQlF6ZEdMRmRCUVZsSkxFZEJRVTlCTEVWQlFVa3NVMEZCVjFvc1JVRkJSeXhSUVVNeFEwTXNSVUZCVVU4c1JVRkJVU3hoUVVGallpeEZRVUZYTEVkQlJUZERMRU5CUVVOdlFpeEZRVUZUTEZGQlFWVXNRMEZCUTBFc1JVRkJVeXhMUVVGUExFTkJRVU5HTEVWQlFVc3NRMEZETTBOS0xFVkJRV0ZOTEVWQlFWTXNTVUZEYkVKQkxFVkJRVk1zVlVGRFRGSXNSVUZCU1N4UlFVTktRU3hGUVVGSkxGTkJRVmM3UVVGQlFTeEZRVUZQVVN4RlFVRlRMRkZCUlM5Q1VpeEZRVUZKTEZGQlFWVlJMRVZCUVZNc1UwRkZMMElzVVVGRFNpeEZRVU5KUVN4RlFVRlRMR3RDUVVGdlFrY3NSMEZCWjBKT0xFTkJRVWNzU1VGRGFFUllMRVZCUVZGWExFZEJRVUVzUzBGQlFVRXNSVUZCVDBRc1JVRkJUVUVzUlVGQlRTeFBRVUZUTEVOQlFVTXNSVUZCUnl4NVFrRkJNRUlzTWtOQlFUSkRMRU5CUlhKSUxFOUJRMU5RTEVWQlFVRlhMRVZCUVZNc1VVRkJWQ3haUVVGQldDeEZRVUZuUWl4VlFVRlhTaXhGUVVGSExGRkJRMjVEUXl4RlFVRlJUeXhGUVVGUkxHRkJRV05pTEVWQlFWY3NSVUZITjBOSkxFVkJRVWtzVFVGQlVTeEhRVU5hTEVsQlFVMXZRaXhGUVVGWFNpeEZRVUZUTEVsQlEzQkNTeXhGUVVGVlVpeEZRVU5XWml4RlFVRlpSU3hGUVVGTFlTeEZRVUZMUnl4RlFVRlZaQ3hEUVVGUExFVkJRM1pEU0N4RlFVRnBRa01zUlVGQlMyOUNMRVZCUVZWU0xFVkJRVThzUzBGQlRVa3NSVUZCVldRc1EwRkJUeXhGUVVOb1JVWXNSVUZCU1N4UFFVRlBMRkZCUTFoelFpeEhRVUZuUW5KQ0xFVkJRVWNzVDBGQlVWa3NSVUZCUzFnc1EwRkJUeXhGUVVNelEwWXNSVUZCU1N4TlFVRlJMRWRCUTFKMVFpeEhRVUZaZGtJc1JVRkJTMUVzUlVGQlNTeE5RVUZQWVN4RFFVRlBMRWRCUTI1RGJrSXNSVUZCVVd0Q0xFVkJRVlVzWjBKQlFXbENMSGxDUVVGNVFpeEZRVVZvUlN4SlFVRk5TU3hGUVVGaFVDeEhRVUZoU0N4SFFVRkJMRXRCUVVGQkxFVkJRVThzUTBGQlF5eEZRVUZITEVOQlEzWkRMRlZCUVZjc1owSkJRMWdzUzBGQlRVTXNSVUZEVGl4UFFVRlJUU3hGUVVGUkxFMUJRVTBzUTBGQlF5eEZRVU4yUWl4UlFVRkJia0lzUlVGRFFTeGhRVUZqUkN4RlFVRkhMRTlCUTJwQ0xHVkJRV2RDTEVOQlFVTlpMRWRCUVU5QkxFVkJRVWtzVDBGQlV5eGpRVU42UXl4RFFVRkRMRVZCUlVRc1IwRkVRVW9zUlVGQlUyVXNSVUZCVnl4SlFVTm9Ra0VzUlVGQlZ5eE5RVUZQTEVOQlEyUk9MRXRCUTBsSUxFZEJRVUVzV1VGQlFVRXNSVUZCVHl4UlFVRlRMR0ZCUVdVc1EwRkJRMU1zUlVGQlZ5eFpRVU16UTNSQ0xFVkJRVkZQTEVWQlFWRXNkMEpCUVhsQ0xIRkVRVUZ4UkN4RlFVTTVSbFFzUlVGQlNTeFJRVUZSTEZGQlExcG5RaXhGUVVGVExFMUJRVkZSTEVWQlFWY3NUVUZCVFN4UFFVRlRMRTFCUXpORGRFSXNSVUZCVVcxQ0xFVkJRVkVzVFVGQlR5eHpRa0ZCZFVJc05rWkJRVFpHTEVkQlIyNUtMRWxCUVUxSkxFVkJRVmxXTEVWQlExcHFRaXhGUVVGWlJTeEZRVUZMWlN4RlFVRlBVeXhGUVVGWmRFSXNRMEZCVHl4RlFVTXpRMGdzUlVGQmFVSkRMRVZCUVV0VExFVkJRVkZMTEVWQlFVc3NTMEZCVFZVc1JVRkJXWFJDTEVOQlFVOHNSVUZET1VSR0xFVkJRVWtzVDBGQlR5eFJRVU5ZYzBJc1IwRkJaMEp5UWl4RlFVRkhMRTlCUVZGakxFVkJRVTlpTEVOQlFVOHNSVUZETjBOUExFVkJRVk5uUWl4RlFVRlZMRTFCUVUwc1EwRkJReXhGUVVNeFFpeEpRVUZOUXl4RlFVRlBMRWxCUVVsRExFZEJRVXRPTEVWQlFWTkpMRU5CUVZNc1JVRkRjRU42UWl4RlFVRkpMRkZCUVZFc2JVSkJRMW93UWl4RlFVRkxMRk5CUVZkbUxFZEJRM0JDU0N4RlFVRkpMRTFCUVUwc1MwRkJTMnRDTEVOQlFVa3NRMEZEZGtJc1MwRkRTeXhEUVVWSFVpeEhRVU5CYUVJc1JVRkJVVzFDTEVWQlFWRXNUVUZCVHl4bFFVRm5RaXh4UkVGQmNVUXNSVUZETlVaSExFVkJRVmNzVlVGRFVFZ3NSVUZCVVN4UlFVTlNRU3hGUVVGUkxGTkJRVmM3UVVGQlFTeEZRVUZQUnl4RlFVRlhMRkZCUlhKRFNDeEZRVUZSTEZGQlFWVkhMRVZCUVZjc1UwRkZja01zU1VGQlRVVXNSVUZCVHl4SlFVRkpReXhIUVVGTFRpeERRVUZQTEVWQlEzcENja0lzUlVGQlNTeFJRVUZSTEcxQ1FVTmFNRUlzUlVGQlN5eFRRVUZYWml4SFFVTndRa2dzUlVGQlNTeE5RVUZOTEV0QlFVdHJRaXhEUVVGSkxFTkJRM1pDTEVOQlEwb3NRMEZEUVN4UFFVRkphRUlzUjBGQlkwRXNSVUZCWVVRc1IwRkRNMEpRTEVWQlFWRlJMRVZCUVZrc1lVRkJZeXh0UTBGQmJVTXNSVUZEZWtWR0xFVkJRVWtzVFVGQlVTeERRVUZEVUN4RlFVRkhMRTlCUVZGUkxFVkJRVkZETEVkQlFVRXNTMEZCUVVFc1JVRkJZMFFzUTBGQlRTeEZRVU0zUTBRc1EwRkRXQ3hEUXpWSFFTeFRRVUZUYjBJc1IwRkJaMElzUTBGQlJTeFpRVUZCUXl4RlFVRmhMR2xDUVVGQlF5eERRVUZwUWl4RlFVRkhReXhGUVVGTFF5eEZRVUZKUXl4RlFVRlRReXhGUVVGTExFTkJTbTVHTEVsQlFVRkRMRVZCUzBrc1NVRkJUVU1zUjBGQldVUXNSVUZCUVVRc1IwRkJRU3haUVVGQlFTeEZRVUZMTEZsQlFVd3NTMEZCUVVNc1JVRkJhMEpGTEVkQlF6bENReXhGUVVGTkxFbEJRVWxHTEVWQlFWVk1MRVZCUVVrc1RVRkJUU3hGUVVOb1EwRXNSVUZCU1N4VFFVTktRU3hGUVVGSkxFOUJRVk1zU1VGRFlrRXNSVUZCU1N4UlFVTktRU3hGUVVGSkxFMUJRVkVzU1VGRGFFSXNTVUZCU1ZFc1JVRkJVMUFzUlVGQlJ5eFBRVU5hVVN4RlFVRmhMRXRCUTJwQ0xFOUJRVmNzUTBGQlJTeE5RVUZCUXl4RlFVRlBMRTFCUVVGRExFTkJRVTBzU1VGQlMxWXNSVUZCUnl4TlFVRlBMRU5CUTNKRExFbEJRVTFYTEVWQlFWRkRMRWRCUVdGSUxFVkJRVThzUTBGRE9VSXNWVUZCVnl4bFFVTllMRXRCUVUxRExFVkJRMDRzVDBGQlFVZ3NSVUZEUVN4UlFVRkJUaXhGUVVOQkxHRkJRV05FTEVWQlFVY3NUMEZEYWtJc1pVRkJaMElzUlVGRGNFSXNRMEZCUXl4RlFVTkVMRWRCUVVrc1EwRkJRMWNzUlVGQlRTeE5RVU5RTEVkQlFVbEJMRVZCUVUwc1VVRkJWVUVzUlVGQlRTeExRVUZQUkN4RlFVTjZRa0VzUjBGQlUwRXNSVUZCVFN4UFFVRlRMRmxCUTNoQ1ZDeEZRVUZSVlN4RlFVRk5MRWxCUVVzc1lVRkJZeXhyUkVGQmEwUXNSVUZGYmtaV0xFVkJRVkZOTEVWQlFWRXNaVUZCWjBJc2JVTkJRVzFETEUxQlJYUkZMRU5CUTBSRExFVkJRV0ZITEVWQlFVMHNTVUZEWmtFc1JVRkJUU3hWUVVOT1RDeEZRVUZKTEZGQlFWVkxMRVZCUVUwc1UwRkRlRUlzVVVGRFNpeERRVVZLTEVsQlFVMUZMRVZCUVU5SUxFVkJRMUJpTEVWQlFWbEZMRVZCUVV0WExFVkJRVTlETEVWQlFVOVdMRU5CUVU4c1JVRkRkRU5JTEVWQlFXbENReXhGUVVGTFdTeEZRVUZOTEVsQlFVdEdMRVZCUVU4c1MwRkJUVVVzUlVGQlQxWXNRMEZCVHl4RlFVTTVSRVlzUlVGQlNTeFBRVUZQTEZGQlExaGxMRWRCUVdkQ1pDeEZRVUZITEU5QlFWRlZMRVZCUVU5VUxFTkJRVThzUlVGRE4wTk5MRVZCUVZOTkxFVkJRVXNzVFVGQlRTeERRVUZETEVWQlEzSkNVQ3hGUVVGSkxFMUJRVTBzUzBGQlMwOHNRMEZCU1N4RFFVTjJRaXhEUVVOQkxFOUJRVUZRTEVWQlFVa3NUVUZCVVN4RFFVRkRUaXhGUVVGSExFOUJRVkZQTEVWQlFWRkRMRWRCUVVFc1MwRkJRVUVzUlVGQlkwUXNRMEZCVFN4RlFVTTNRMFFzUTBGRFdDeERRemxEUVN4VFFVRlRVeXhIUVVGWFF5eEZRVUZMUXl4RlFVRlJReXhGUVVGVlF5eEZRVUZUTEVOQlEyaEVMRWxCUVVsRExFVkJRVlVzUjBGRFpDeEhRVUZKU2l4RlFVRkxMRU5CUTB3c1NVRkJTVXNzUlVGQlZ5eEhRVU5ZUXl4RlFVRk5MRWRCUTFZc1VVRkJWME1zUzBGQlUxQXNSVUZCU3l4RFFVTnlRaXhIUVVGTkxFTkJRVVVzVDBGQlFWRXNSVUZCVVN4TFFVRkJReXhEUVVGTExFVkJRVWxHTEVWQlEzcENMRTlCUVZGRkxFVkJRVTBzUTBGRFZpeEpRVUZMTEZGQlEwUktMRVZCUVZjc1IwRkRXQ3hOUVVOS0xFbEJRVXNzVlVGQlZ5eERRVU5TU0N4SFFVRlpMRU5CUVVOSExFZEJRMkpHTEVWQlFWRkpMRVZCUVU4c1pVRkJaMElzZDBWQlFYZEZMRVZCUXpOSExFbEJRVTFITEVWQlFVdEdMRVZCUVU4c1ZVRkJWU3hEUVVGRExFZEJRVXNzU1VGRE4wSktMRVZCUjBSQkxFZEJRVmRGTEVWQlFVMUpMRVZCUm1wQ1RpeEZRVUZWVFN4RlFVZGtTaXhGUVVGTkxFZEJRMDRzUzBGRFNpeERRVU5CTEVsQlFVc3NWVUZEUjBZc1NVRkRRVVVzUjBGQlQwVXNSMEZEV0Vnc1JVRkJWeXhIUVVOWUxFMUJRMG9zVVVGRFNVWXNSVUZCVVVrc1JVRkJUeXh0UWtGQmIwSXNZMEZCWTBVc1EwRkJTU3hqUVVGakxFTkJRek5GTEVOQlEwRlNMRWRCUVZWUExFVkJRVThzVFVGRGNrSXNRMEZEU2l4RFFVTkJMRTFCUVU4c1EwRkJSU3hSUVVGQlNpeEZRVUZUTEU5QlFVRklMRU5CUVU4c1EwRkROMElzUTBONlFrRXNTVUZCVFZVc1IwRkJWeXcwUkVGRFdFTXNSMEZCVjBNc1IwRkJWVUVzU1VGQlZVRXNSVUZCVFN4UFFVRlRMR0ZCUVdWQkxFVkJRVTBzVDBGQlV5eGhRVU5zUml4VFFVRlRReXhIUVVGelFpeERRVUZGTEZsQlFVRkRMRVZCUVdFc2FVSkJRVUZETEVOQlFXbENMRVZCUVVkRExFVkJRVXRETEVWQlFVbERMRVZCUVZORExFVkJRVXNzUTBGWWVrWXNTVUZCUVVNc1JVRkJRVU1zUlVGWlNTeEpRVUZOUXl4RlFVRlJUQ3hGUVVGSExFMUJRVTBzVTBGQlZ5eEpRVU0xUWswc1JVRkJVMFFzUlVGQlVTeFhRVUZoTEdkQ1FVTTVRa1VzUjBGQllVb3NSVUZCUVVRc1IwRkJRU3haUVVGQlFTeEZRVUZMTEZsQlFVd3NTMEZCUVVNc1JVRkJiVUpGTEVWQlFWRkhMRWRCUVZWRExFZEJRMnhFUXl4RlFVRlBMRWxCUVVsSUxFVkJRVlZTTEVWQlFVa3NUVUZCVFN4RlFVTnlRMWNzUlVGQlN5eExRVUZQTEVkQlExb3NTVUZCVFVNc1JVRkJVMW9zUlVGQlNTeFBRVU5tV1N4SlFVTkJXaXhGUVVGSkxFOUJRVk1zU1VGRFlrRXNSVUZCU1N4UlFVTktRU3hGUVVGSkxFMUJRVkVzU1VGRGFFSXNTVUZCU1dFc1JVRkJVMW9zUlVGQlJ5eFBRVUZUUVN4RlFVRkhMRTFCUVUwc1QwRkJUeXhQUVVONlF5eFJRVUZUWVN4RlFVRkpMRVZCUVVkQkxFVkJRVWxpTEVWQlFVY3NUVUZCVFN4UFFVRlJMRVZCUVVWaExFVkJRVWNzUTBGRGRFTXNTVUZCVFVNc1JVRkJWMlFzUlVGQlJ5eE5RVUZOWVN4RFFVRkRMRVZCUTNKQ0xFTkJRVVVzVFVGQlFVVXNSVUZCVHl4SlFVRkJReXhGUVVGTExFbEJRVUZETEVWQlFVc3NUVUZCUVVNc1EwRkJUU3hGUVVGSlNpeEZRVU0zUWtzc1JVRkJVVU1zUjBGQllVd3NSVUZCVHl4RFFVTTVRaXhMUVVGTlZDeEZRVU5PTEZWQlFWY3NiVUpCUTFnc1MwRkJUVlVzUjBGQlFTeExRVUZCUVN4RlFVRlBReXhIUVVGQkxGbEJRVUZCTEVWQlFVMHNSMEZEYmtJc1QwRkJRVXdzUlVGRFFTeFJRVUZCV0N4RlFVTkJMR0ZCUVdORUxFVkJRVWNzVDBGRGFrSXNaVUZCWjBJc1JVRkRjRUlzUTBGQlF5eEZRVU5FTEVkQlFVa3NRMEZCUTIxQ0xFVkJRVTBzVFVGQlR5eERRVU5rTEVkQlFVa3NRMEZCUTBFc1JVRkJUU3hSUVVGVkxFTkJRVU5CTEVWQlFVMHNTMEZCVHl4RFFVRkRSaXhIUVVGUExFTkJRVU5ETEVWQlFVOHNRMEZETTBOTUxFbEJRVTBzUjBGQlMwMHNSVUZCVFN4TlFVTnFRbXhDTEVWQlFWRnJRaXhGUVVGTkxFMUJRVThzYlVKQlFXOUNMRzFDUVVGdFFtSXNRMEZCVFN4RlFVRkZMRVZCUXk5RVR5eEZRVUZKWWl4RlFVRkhMRTFCUVUwc1QwRkJVeXhIUVVNelFrTXNSVUZCVVd0Q0xFVkJRVTBzVFVGQlR5eHRRa0ZCYjBJc05FSkJRVFJDWWl4RFFVRk5MRVZCUVVVc1JVRkROMFZoTEVWQlFVMHNWVUZEUmxRc1JVRkJTeXhSUVVOTVFTeEZRVUZMTEZOQlFWYzdRVUZCUVN4RlFVRlBVeXhGUVVGTkxGRkJSVGRDVkN4RlFVRkxMRkZCUVZWVExFVkJRVTBzVTBGRk4wSlFMRVZCUVZOUExFVkJRVTBzU1VGRFppeFJRVU5LTEVOQlEwa3NRMEZCUTJRc1IwRkJVMDRzUlVGQlNTeFJRVUZSTEZGQlFWVnpRaXhIUVVGblFrd3NRMEZCUnl4SFFVTnVSR1lzUlVGQlVXVXNSVUZEVWl4NVFrRkJNRUlzYTBWQlFXdEZMRU5CUTNCSExFTkJRMEVzUjBGQlNVZ3NTVUZCVFN4RlFVTkdUU3hGUVVGTkxFOUJRMDVzUWl4RlFVRlJhMElzUlVGQlRTeE5RVUZQTEcxQ1FVRnZRaXh0UWtGQmJVSmlMRU5CUVUwc1JVRkJSU3hWUVVkdVJXRXNSVUZCVFN4UFFVTlFiRUlzUlVGQlVXdENMRVZCUVUwc1RVRkJUeXhsUVVGblFpeHhRa0ZCY1VKaUxFTkJRVTBzVVVGQlVTeEZRVU40UldFc1JVRkJUU3hSUVVGVExFTkJRMllzU1VGQlNVY3NSVUZCYTBJc1IwRkRkRUpETEVWQlFVMHNVVUZCVjBNc1MwRkJUVlFzUlVGRGJrSXNUMEZCVVZNc1JVRkJSeXhMUVVGTkxFTkJRMklzU1VGQlN5eFJRVU5NTEVsQlFVc3NVVUZEUkN4TlFVTktMRWxCUVVzc1ZVRkRSRVlzUlVGQmEwSkZMRVZCUVVjc1QwRkJUeXhWUVVGVkxFTkJRVU1zUlVGRGRrTXNUVUZCVFVRc1JVRkRWaXhSUVVOSkxFMUJRVTFCTEVOQlEyUXNRMEZGU2l4SFFVRkpSQ3hGUVVGcFFpeERRVU5xUWl4SlFVRkpSeXhGUVVGUFppeEZRVUZMTEUxQlFVMUJMRVZCUVVzc1RVRkJUU3hQUVVGVExFTkJRVU1zUlVGRGRrTm5RaXhGUVVGUFJDeERRVUZKTEVsQlExaEJMRWRCUVU5eVFpeEZRVUZCY1VJc1JVRkJTeXhSUVVGTUxFdEJRVUZ5UWl4RlFVRmpjVUlzUlVGQlN5eExRVU14UWtFc1JVRkJTeXhSUVVOTVFTeEZRVUZMTEZOQlFWYzdRVUZCUVN4RlFVRlBTQ3hGUVVWMlFrY3NSVUZCU3l4UlFVRlZTQ3hGUVVOdVFrZ3NSVUZCVFN4UlFVRlZRU3hGUVVGTkxGRkJRVkVzVlVGQlZVY3NSVUZCWjBJc1QwRkJVeXhEUVVGRExFTkJRM1JGTEVOQlEwb3NRMEZGU2l4SFFVRkpMRU5CUVVOcVFpeEhRVUZUTEVOQlFVTlpMRWRCUVU4c1EwRkJRMFVzUlVGQlRTeE5RVUZQTEVOQlIyaERMRWxCUVUxUkxFVkJRVmxVTEVWQlExcHlRaXhGUVVGWlJTeEZRVUZMYlVJc1JVRkJUME1zUlVGQlQyeENMRU5CUVU4c1JVRkRkRU5JTEVWQlFXbENReXhGUVVGTGIwSXNSVUZCVFN4SlFVRkxSaXhGUVVGTExFdEJRVTFGTEVWQlFVOXNRaXhEUVVGUExFVkJRMmhGVXl4RlFVRkxMRTFCUVUwc1MwRkJTMmxDTEVOQlFWTXNSVUZEZWtKbUxFVkJRVk5sTEVWQlFWVXNUVUZCVFN4RFFVRkRMRVZCUTNSQ2FrTXNSMEZCVVhkQ0xFTkJRVXNzUjBGRFltcENMRVZCUVZFd1FpeEZRVUZWTEUxQlFVOHNaMEpCUVdsQ2JFTXNSVUZCVVN4RFFVTXhSQ3hMUVVOTExFTkJSMFJOTEVWQlFVa3NUVUZCVVN4SFFVTmFMRWxCUVUwMlFpeEZRVUZYVkN4RlFVRk5MRWxCUTJwQ1ZTeEZRVUZWWWl4RlFVTldia0lzUlVGQldVVXNSVUZCUzJsQ0xFVkJRVXRITEVWQlFVOXNRaXhEUVVGUExFVkJRM0JEU0N4RlFVRnBRa01zUlVGQlN6WkNMRVZCUVZWaUxFVkJRVThzUzBGQlRVa3NSVUZCVDJ4Q0xFTkJRVThzUlVGRE4wUlFMRWRCUVZGelFpeERRVUZITEVkQlExaG1MRVZCUVZFMFFpeEZRVUZSTEUxQlFVOHNaMEpCUVdsQ2NFTXNSVUZCVVN4RlFVTndSRTBzUlVGQlNTeE5RVUZSTEVkQlJWb3NTVUZCVFN0Q0xFVkJRV0ZXTEVkQlFXRklMRWRCUVVFc1MwRkJRVUVzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEZGtNc1MwRkJUVmdzUlVGRFRpeFZRVUZYTEdkQ1FVTllMRXRCUVUxWkxFVkJRMDRzVDBGQlVWY3NSVUZCVVN4TlFVRk5MRU5CUVVNc1JVRkRka0lzVVVGQlFUVkNMRVZCUTBFc1lVRkJZMFFzUlVGQlJ5eFBRVU5xUWl4bFFVRm5RaXhGUVVOd1FpeERRVUZETEVWQlEwUXNSMEZCU1RoQ0xFVkJRVmNzVDBGRFdDeEhRVUZKTEVOQlFVTjZRaXhIUVVGVExFTkJRVU5qTEVWQlFVMHNUMEZCVTNCQ0xFVkJRVWtzVVVGQlVTeFBRVUZSTEVOQlF6bERMRWRCUVVsclFpeEZRVU5CTEZGQlFWZFBMRXRCUVUxUUxFVkJRVXNzUTBGRGJFSXNSMEZCU1U4c1NVRkJUMDBzUlVGQlZ5eE5RVU5zUWl4TlFVTktMRWRCUVVsT0xFVkJRVWNzVDBGQlV5eFZRVUZYTEVOQlEzWkNka0lzUlVGQlVYVkNMRVZCUVVrc2VVSkJRVEJDTEd0RlFVRnJSU3hGUVVONFJ5eExRVU5LTEVOQlEwb3NRMEZEUVV3c1JVRkJUU3hOUVVGUlZ5eEZRVUZYTEUxQlFVMHNUMEZCVXl4TlFVTjRRemRDTEVWQlFWRTJRaXhGUVVGWExFMUJRVThzYzBKQlFYVkNMRFpHUVVFMlJpeERRVU4wU2l4UFFVVkxXaXhKUVVORUxGZEJRVmxCTEVkQlFWTkJMRVZCUVUwc1VVRkJWVUVzUlVGQlRTeFBRVUZQTEVOQlFVTXNTVUZCVFN4SlFVTjZSR3BDTEVWQlFWRnBRaXhGUVVGUExHVkJRV2RDTERSQ1FVRTBRbG9zUTBGQlRTeEZRVUZGTEVWQlJXNUZUQ3hGUVVGUk5rSXNSVUZCVnl4TlFVRlBMR1ZCUVdkQ0xEQkNRVUV3UW5oQ0xFTkJRVTBzVVVGQlVTeEhRVWN4Uml4SlFVRk5jVUlzUjBGQldWUXNSVUZEV25KQ0xFVkJRVmxGTEVWQlFVdHRRaXhGUVVGUFdTeEZRVUZaTjBJc1EwRkJUeXhGUVVNelF6WkNMRVZCUVZjc1RVRkRVR2hETEVWQlFXbENReXhGUVVGTEswSXNSVUZCVnl4SlFVRkxZaXhGUVVGTExFdEJRVTFoTEVWQlFWazNRaXhEUVVGUExFVkJRM0JGTEV0QlEwNHdRaXhIUVVOSmFrTXNSMEZCVVhkQ0xFTkJRVXNzUjBGRFltcENMRVZCUVZFd1FpeEhRVUZWTEUxQlFVOHNaMEpCUVdsQ2JFTXNSVUZCVVN4RlFVVnFSSEZETEVWQlFWY3NWVUZEV2tRc1JVRkJVU3hSUVVOU1FTeEZRVUZSTEZOQlFWYzdRVUZCUVN4RlFVRlBReXhGUVVGWExGRkJSWEpEUkN4RlFVRlJMRkZCUVZWRExFVkJRVmNzVTBGRmNrTXNTVUZCVFVNc1IwRkJUeXhKUVVGSlF5eEhRVUZMU0N4RlFVRlRSaXhGUVVGVExFVkJSM2hETEVkQlJrazFRaXhGUVVGSkxGRkJRVkVzYlVKQlExcG5ReXhIUVVGTExGTkJRVmRxUWl4SFFVTm9RbFFzUlVGQlR5eERRVU5RTEVsQlFVMDBRaXhGUVVGTmRrSXNSVUZEVW5kQ0xFZEJRVmx1UXl4RlFVRkxhME1zUlVGQlNTeE5RVUZQU2l4RFFVRlBMRWRCUTI1RE5VSXNSVUZCVVRKQ0xFVkJRVlVzWjBKQlFXbENMSGxDUVVGNVFpeEZRVU5vUlVzc1JVRkJTU3hOUVVGTkxFdEJRVXRHTEVWQlFVa3NRMEZEZGtJc1MwRkRTeXhEUVVORUxFbEJRVTFGTEVWQlFVMHNTVUZCU1hwQ0xFZEJRVkZVTEVWQlFVa3NUVUZCVFN4RlFVTnNRMnRETEVWQlFVa3NTMEZCVHl4SFFVTllRU3hGUVVGSkxFMUJRVTBzUzBGQlMwWXNSVUZCU1N4RlFVTnVRaXhKUVVGTlNTeEhRVUZaVWl4SlFVRkJMRXRCUVVGQkxFZEJRV0ZGTEVkQlFWTXNUVUZEZUVOSkxFVkJRVWtzVFVGQlVTeERRVUZEU2l4RlFVRlJMRTFCUVUwc1EwRkJReXhGUVVGSFRTeEZRVUZUTEVOQlFVTXNSVUZCUjBFc1JVRkJVeXhEUVVGRExFTkJRVU1zUlVGRGRrUjZRaXhGUVVGTExFMUJRVTBzUzBGQlMzVkNMRU5CUVVjc1EwRkRka0lzUTBGRFFYSkNMRVZCUVZObExFZEJRVmxCTEVkQlFWVXNUVUZCVFN4RFFVRkRMRVZCUVVsSExFVkJRVmNzUjBGRGVrUXNRMEZEU2l4RFFVTkJMRWxCUVUxTkxFVkJRV012UWl4RlFVRlJMRWxCUVUwc1NVRkROVUlzUTBGQlEyZERMRVZCUVVrc1IwRkJSME1zUTBGQlJTeEZRVUZKZEVNc1JVRkJSeXhKUVVOdVFuVkRMRVZCUVZFelFpeEZRVU5hTEVkQlFVbDVRaXhIUVVGTlFTeEZRVUZITEZOQlFWZEVMRVZCUTNCQ1J5eEZRVUZSUml4RlFVRkhMRTlCUVZOQkxFVkJRVWNzVDBGQlR5eFhRVU0zUWl4RFFVTkVMRWxCUVUxSExFVkJRVTlzUXl4RlFVRlBMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVWxCTEVWQlFVOHNWVUZCVlN4RFFVRkRMRVZCUTI1RWJVTXNSVUZCVFRsQ0xFVkJRMDRzUjBGQlJ6WkNMRU5CUVVrc2IwSkJRVzlDU2l4RFFVRlhMRWRCUTNSRExFZEJRVWRKTEVOQlFVa3NjVVZCUVhGRlNpeERRVUZYTEVkQlF6ZEdia01zUlVGQlVWY3NSVUZCVVVRc1JVRkJVeXhsUVVGcFFpeGhRVUZqT0VJc1EwRkJSeXhGUVVOMlJFb3NSMEZCVFVFc1JVRkJSeXhQUVVGUExGTkJRVmNzUjBGRE0wSkRMRVZCUVVjc1VVRkJVVVFzUTBGQlJTeERRVU55UWl4RFFVTkJMRWRCUVVsRExFVkJRVWNzVDBGQlV5eEZRVUZITEVOQlEyWXNTVUZCVFVrc1JVRkJUVU1zUjBGQlYwd3NSVUZCU1VNc1JVRkJUM2hETEVWQlFVa3NVVUZCVVN4UFFVRlJSU3hEUVVGUExFVkJRM3BFZVVNc1JVRkJTU3hWUVVOQmFFTXNSVUZCU3l4UlFVTk1RU3hGUVVGTExGTkJRVmM3UVVGQlFTeEZRVUZQWjBNc1JVRkJTU3hSUVVVelFtaERMRVZCUVVzc1VVRkJWV2RETEVWQlFVa3NVMEZGTTBKb1F5eEZRVUZMTEUxQlFWRXNRMEZCUTFZc1JVRkJSeXhQUVVGUmRVTXNSVUZCVDBjc1JVRkJTU3hOUVVGTkxFTkJRemxETEUxQlJVbG9ReXhGUVVGTExFMUJRVkVzUTBGQlExWXNSVUZCUnl4UFFVRlJkVU1zUlVGQlQwRXNRMEZCU3l4RlFVVjZReXhQUVVGUE4wSXNRMEZEV0N4RFEzQk5RU3hUUVVGVGEwTXNSMEZCYTBKRExFVkJRVWxETEVWQlFVdERMRVZCUVU5RExFVkJRVk5ETEVWQlFWTkRMRVZCUVVzc1EwRkRPVVFzU1VGQlRVTXNSVUZCVDBvc1JVRkJUU3hQUVVGVExGbEJRM1JDU3l4SFFVRm5RbEFzUlVGQlNVTXNSVUZCUzBNc1JVRkJUME1zUlVGQlUwVXNRMEZCUnl4RlFVTTFRMGdzUlVGQlRTeFBRVUZUTEZsQlExaE5MRWRCUVdkQ1VpeEZRVUZKUXl4RlFVRkxReXhGUVVGUFF5eEZRVUZUUlN4RFFVRkhMRVZCUXpWRFNTeEhRVUZ6UWxRc1JVRkJTVU1zUlVGQlMwTXNSVUZCVDBNc1JVRkJVMFVzUTBGQlJ5eEZRVU4wUkVzc1JVRkJUMG9zUlVGQlN5eFpRVWRzUWl4UFFVRkpSaXhKUVVGWkxFdEJRVTlCTEVsQlFWbE5MRVZCUVVzc1UwRkRjRU5LTEVWQlFVc3NTVUZCVFVrc1JVRkJTeXhSUVVOVVNpeEpRVVZRUml4SlFVTkJSU3hGUVVGTExFbEJRVTFHTEVkQlExSkZMRVZCUTFnc1EwRkRRU3hUUVVGVFN5eEhRVUZyUWxnc1JVRkJTVU1zUlVGQlMwTXNSVUZCVDFVc1JVRkJUMVFzUlVGQlV5eERRWHBDTTBRc1NVRkJRVlVzUlVGQlFVTXNSVUV3UWtrc1NVRkJUVU1zUlVGQlYwZ3NSVUZCVFN4SlFVTnFRbElzUlVGQlYxY3NSVUZGV0dRc1JVRkJTU3hYUVVGWExGRkJRVkZqTEVWQlFWTXNUMEZCVVVNc1IwRkJUMklzUlVGQlVWa3NSVUZCVlN4eFFrRkJjMEpETEVOQlFVY3NRMEZCUXl4RlFVUXpSaXhMUVVWT0xFZEJRVWxrTEVWQlFVMHNUMEZCVXl4WlFVRmhMRU5CUXpWQ0xFZEJRVTBzUTBGQlJTeFBRVUZCWlN4RlFVRlJMR2xDUVVGclFrTXNRMEZCUnl4RlFVRkpUaXhGUVVOdVEwOHNSVUZCVjBZc1IwRkJWVVlzUlVGRGNrSkZMRVZCUVU4c1QwRkJVMFlzUlVGQlV5eFBRVU55UWtVc1JVRkRRVVlzUlVGRFNFVXNSMEZCUVN4TFFVRkJRU3hGUVVGVlJpeEZRVU5pU1N4SlFVRmhMRU5CUVVORUxFZEJRVTFCTEVWQlFVY3NUMEZCVTBNc1JVRkJVeXhUUVVWNlEyaENMRVZCUVZGblFpeEZRVUZWTEdWQlJFWXNORU5CUTNsQ0xFTkJSV3BFTEVOQlEwRXNTVUZCVFVNc1JVRkJWV3hDTEVWQlFVMHNUMEZCVXl4WlFVTjZRaXhOUVVOQlFTeEZRVUZOTEU5QlFWTXNXVUZEV0N4TlFVTkJRU3hGUVVGTkxFMUJRVTBzVTBGQlZ5eEpRVU51UWl4TlFVTkJMRTFCUjJRc1IwRkJTU3hEUVVGRFlTeEhRVU5FTEVOQlFVTllMRWRCUTBSQkxFbEJRVmtzUzBGRFdFRXNTVUZCV1dsQ0xFZEJRVkVzVTBGQlYwUXNTVUZCV1N4UFFVTXpRMmhDTEVsQlFWbHJRaXhIUVVGUkxGTkJRVmRHTEVsQlFWa3NUVUZETlVNc1QwRkJUM0pDTEVkQlFXdENReXhGUVVGSlF5eEZRVUZMUXl4RlFVRlBReXhGUVVGVFF5eERRVUZQTEVWQlJUZEVMRWxCUVVsRExFVkJRVTFLTEVWQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVV0elFpeEhRVUZMUVN4RlFVRkZMRTFCUVZGdVFpeEhRVUZYYlVJc1JVRkJSU3hoUVVGbFNDeERRVUZQTEVWQlEycEdMRWRCUVVrc1EwRkJRMllzUlVGQlN5eERRVU5PTEVsQlFVMXRRaXhGUVVGTGRrSXNSVUZCU1N4UFFVRlBMRlZCUVZWSExFTkJRVThzUlVGRGRrTXNSMEZCU1c5Q0xFZEJRVTFCTEVWQlFVY3NZVUZCWlVvc1JVRkRlRUp1UWl4RlFVRkpMRTlCUVU4c1MwRkJTeXhMUVVGTExFOUJRVThzVDBGQlR5eERRVUZETEVWQlFVZDFRaXhGUVVGSkxFTkJRVVVzVVVGQlV5eEZRVUZOTEVOQlFVTXNRMEZCUXl4RlFVTTVSRzVDTEVWQlFVMXRRaXhOUVVkT0xGRkJRVWxCTEVkQlFVRXNUVUZCUVVFc1JVRkJTU3hYUVVOS2NrSXNSVUZCVVZrc1JVRkJWU3h6UWtGQmRVSXNSMEZCUjFNc1JVRkJSeXhIUVVGSExHRkJRV0ZLTEVOQlFVOHNORUpCUVRSQ1NTeEZRVUZITEZWQlFWVXNSMEZCU1N4RlFVRkpMRVZCUjNaSWNrSXNSVUZCVVZrc1JVRkJWU3h4UWtGQmMwSXNiVUpCUVcxQ1dDeERRVUZQTEVkQlFVa3NSVUZCU1N4RlFVVjJSVXdzUjBGQmEwSkRMRVZCUVVsRExFVkJRVXRETEVWQlFVOURMRVZCUVZORExFTkJRVThzUTBGRmFrVXNRMEZEUVN4SlFVRk5SU3hGUVVGUFVDeEhRVUZyUWtNc1JVRkJTVU1zUlVGQlMwTXNSVUZCVDBNc1JVRkJVME1zUlVGQlUwTXNRMEZCUnl4RlFVTTVSRzlDTEVkQlFVMVlMRWRCUVVGRUxFVkJRVUZTTEVWQlFVa3NWVUZCU2l4WlFVRkJVU3hGUVVGQkxFdEJRVUZTTEVWQlFXTkRMRVZCUVUxVkxFZEJRVTlpTEVWQlFWRlpMRVZCUVZVc2NVSkJRWE5DUXl4RFFVRkhMRVZCUVVkbUxFVkJRVWtzVjBGQk4wVXNTMEZCUVdFc1JVRkJlVVpTTEVWQlF5OUdiMElzUlVGQlQwTXNSVUZCVDBZc1EwRkJSeXhGUVVOcVFrRXNSVUZEUVN4SlFVRkpSeXhGUVVGUFNDeERRVUZITEVWQlEzQkNMRTlCUVVGRExFVkJRVXNzVFVGQlVYQkNMRVZCUVVzc1RVRkRiRUp2UWl4RlFVRkxMRWxCUVUxMFFpeEZRVU5RUXl4SFFVRkJMRTFCUVVGQkxFVkJRVXNzVTBGRFRIRkNMRVZCUVVzc1QwRkJVM0pDTEVWQlFVa3NVVUZEWm5GQ0xFTkJRMWdzUTBOdVJrRXNVMEZCVTBjc1IwRkJiVUpETEVWQlFVdERMRVZCUVZGRExFVkJRVk1zUTBGRE9VTXNTVUZCVFVNc1JVRkJVVVlzUlVGQlR5eFBRVU5tUnl4RlFVRlRReXhIUVVGMVFrb3NSVUZCVVVRc1JVRkJTU3hSUVVGUkxFOUJRVkZGTEVOQlFVOHNSVUZEZWtVc1IwRkJTU3hEUVVGRFJTeEZRVU5FTEUxQlFVOHNRMEZCUlN4TlFVRlBMRWRCUVVrc1MwRkJUU3hMUVVGTkxGRkJRVk1zUjBGQlNTeE5RVUZQTEVOQlFVTkVMRVZCUVU5QkxFVkJRVTlCTEVOQlFVc3NRMEZCUlN4RlFVTTVSU3hKUVVGTlJ5eEZRVUZQUml4RlFVRlBMRTlCUVZNc1NVRkJUVWNzUlVGQlR5eGhRVUZsUVN4RlFVRlBMR05CUXpGRVF5eEZRVUZSVUN4RlFVRlBMRTlCUVZOUkxFZEJRVmRTTEVWQlFVOHNUVUZCVFN4RlFVRkpMRU5CUVVNc1JVRkZka1JUTEVWQlFXRkdMRVZCUVUwc1QwRkRka0lzVVVGQlUwY3NSVUZCU1Vnc1JVRkJUU3hQUVVGVExFVkJRVWRITEVkQlFVc3NSVUZCUnl4RlFVRkZRU3hGUVVGSExFTkJRM2hETEVsQlFVMURMRVZCUVZWS0xFVkJRVTFITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUXpGQ0xFZEJRVWxETEVsQlFWa3NTVUZCVFVFc1NVRkJXU3hMUVVNNVFrWXNSVUZCWVVNc1RVRkZZaXhOUVVOU0xFTkJSVUVzUjBGQlNVUXNTVUZCWlN4RlFVRkhMRU5CUTJ4Q0xFbEJRVTFITEVWQlFWRlVMRVZCUVU4c1VVRkJWU3hMUVVGUFNTeEZRVUZOTEU5QlFWTXNSVUZETDBNN1FVRkJRU3hGUVVGTExFOUJRVThzUzBGQlN5eEpRVUZKTEVWQlFVZEJMRVZCUVUwc1QwRkJVeXhEUVVGRExFTkJRVU1zUlVGRGVrTXNSMEZEUmswc1JVRkJUVmdzUlVGQlVVTXNSVUZCVHl4UFFVTjZRaXhQUVVGSlNDeEZRVUZQTEZOQlExQmhMRWRCUVU5aUxFVkJRVThzVDBGQlR5eFJRVU5zUWl4RFFVRkZMRTFCUVVGWkxFVkJRVThzUzBGQlFWQXNSVUZCVFN4UlFVRlRSaXhGUVVGUExGRkJRVk1zVFVGQlR5eERRVUZEUkN4RlFVRlBWeXhGUVVGTFFTeERRVUZITEVOQlFVVXNRMEZETlVVc1EwRkZRU3hKUVVGSlF5eEZRVUZoWkN4RlFVRlBMRTlCUVZOSExFVkJRVThzVDBGRGNFTlpMRVZCUVZObUxFVkJRVThzVDBGQlUwY3NSVUZCVHl4UFFVTm9RMkVzUlVGQlpTeEZRVU51UWl4UlFVRlRUaXhGUVVGSkxFVkJRVWRCTEVWQlFVbEVMRVZCUVZrc1JVRkJSVU1zUlVGQlJ5eERRVU5xUXl4SFFVRk5MRU5CUVVOUExFVkJRVkZPTEVOQlFVOHNSVUZCU1Vvc1JVRkJUVWNzUTBGQlF5eEZRVU5xUXl4SFFVRkpReXhKUVVGWkxFbEJRVTFCTEVsQlFWa3NTMEZETVVKU0xFVkJRVThzVTBGQlZ5eEhRVUZMWXl4RlFVRlBMRTlCUVZOSUxFbEJRM1pEUVN4RlFVRmhSeXhGUVVGUExGbEJSWFpDTEVOQlEwZEJMRVZCUVU4c1QwRkJVMGdzUjBGRmFFSmlMRVZCUVZGakxFVkJRVk5GTEVWQlFVOHNUMEZCVVN4bFFVUm9RaXhwUjBGRGRVTXNSVUZGZGtSa0xFVkJRVThzVTBGQlZ5eEpRVU5zUWxjc1JVRkJZVWNzUlVGQlR5eFJRVU40UWtRc1JVRkJaVTRzUlVGRFdFa3NTVUZCWlN4SFFVRkxMRU5CUVVObUxFVkJRVWtzVVVGRmVrSkZMRVZCUVZGakxFVkJRVkVzWVVGRVFTeHhSRUZEY1VJc1JVRkZla01zUzBGRFNpeERRVU5CUVN4SFFVRlZSU3hGUVVGUExFOUJRVk5PTEVWQlFWRXNUMEZCVXl4RFFVTXZReXhEUVVWQkxGRkJRVk5FTEVWQlFVbElMRVZCUVUwc1QwRkJVeXhGUVVGSFJ5eEhRVUZMUkN4RlFVRlpMRVZCUVVWRExFVkJRekZEU0N4RlFVRk5SeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEU5QlFWTkpMRWxCUTNKQ1RDeEZRVUZoUXl4RlFVRkpMRWRCUlhwQ0xFbEJRVWxGTEVWQlFWRXNSMEZEVWswc1JVRkJUU3hIUVVOT1F5eEZRVUZ0UWl4SFFVVjJRaXhSUVVGVFZDeEZRVUZKTEVWQlFVZEJMRVZCUVVsTkxFVkJRV01zUlVGQlJVNHNSVUZEYUVORkxFZEJRVk5NTEVWQlFVMUhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRVa3NRMEZCVlN4RlFVRkpPMEZCUVVFc1JVRkROME1zVVVGQlUwb3NSVUZCU1Uwc1JVRkJZMDRzUlVGQlNVUXNSVUZCV1N4RlFVRkZReXhGUVVGSExFTkJRelZETEVkQlFVa3NRMEZCUTA4c1JVRkJVVTRzUTBGQlR5eEZRVUZKU2l4RlFVRk5SeXhEUVVGRExFVkJReTlDU3l4SFFVRlZSU3hGUVVGUExFOUJRVk5PTEVWQlFWRXNUMEZCVXl4RlFVTXpReXhKUVVGTlV5eEZRVUZQVkN4RlFVRlJRU3hGUVVGUkxFOUJRVk1zUTBGQlF5eEpRVUZOTEV0QlNUZERMRWRCU0VsVExFbEJRMEZVTEVWQlFWVkJMRVZCUVZFc1RVRkJUU3hGUVVGSExFVkJRVVVzUjBGRk4wSkJMRWRCUVZkTkxFVkJRVThzVDBGQlUwZ3NSVUZCV1N4RFFVbDJReXhKUVVGTlR5eEZRVUZWTERKRVFVaEtiRUlzUlVGQlR5eFBRVU5pTEdsRFFVTkJMRmxCUTNkRkxFZEJRemxGUml4RlFVRlJZeXhGUVVGVFNpeEZRVUZSTEZGQlFWVlRMRVZCUVU4c1JVRkJTU3hIUVVGSkxHRkJRV05ETEVOQlFVOHNSVUZEZGtWS0xFVkJRVk1zUlVGRFlpeERRVU5KV2l4SlFVRlRReXhGUVVGUExHVkJRMmhDVFN4SFFVRlRUU3hGUVVGTlJDeEZRVUZQTEUxQlFVMUlMRU5CUVZVc1JVRkJTVWdzUlVGRE1VTlBMRVZCUVUwN1FVRkJRU3hIUVVWRVJDeEZRVUZQTEU5QlFWTklMRWRCUVdOSUxFVkJRVkVzUTBGQlF5eEpRVUZOTEV0QlJUbERUeXhKUVVGUkxFbEJRMUpCTEVWQlFVMDdRVUZCUVN4RlFVTkVMRU5CUVVORExFZEJRVzlDUkN4SlFVRlJPMEZCUVVFc1NVRkRiRU5CTEVWQlFVMDdRVUZCUVR0QlFVRkJMRWRCUTFaT0xFZEJRVk5OTEVWQlFVMUVMRVZCUVU4c1RVRkJUVWdzUTBGQlZTeEZRVUZKU0N4RlFVTXhRMDhzUlVGQlRUdEJRVUZCTEVWQlEwNURMRVZCUVcxQ0xFbEJSV1JTTEVsQlFWa3NSMEZGWWs4c1NVRkJVVHRCUVVGQkxFVkJRMUpPTEVkQlFWTTdRVUZCUVN4RlFVVlVUU3hGUVVGTk8wRkJRVUVzUjBGSFZrNHNSMEZCVTAwc1JVRkJUVkFzUlVGRFprOHNSVUZCVFN4SlFVTk9ReXhGUVVGdFFpeEhRVVV6UWl4RFFVTkJMRTlCUVZGb1FpeEZRVUZQTEUxQlFVOHNRMEZEYkVJc1NVRkJTeXhKUVVORUxFMUJRMG9zU1VGQlN5eEpRVU5FTEZGQlFWTlBMRVZCUVVsRUxFVkJRVmxETEVWQlFVbElMRVZCUVUwc1QwRkJVU3hGUVVGRlJ5eEZRVU42UTBVc1IwRkJVenRCUVVGQkxFVkJRVTlNTEVWQlFVMUhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRVa3NRMEZCVlN4RlFVTTFRMFlzUlVGQlRVRXNSVUZCVFN4UFFVRlRMRU5CUVVNc1NVRkJUVHRCUVVGQkxFbEJRelZDUVN4SFFVRlRPMEZCUVVFc1IwRkRZaXhOUVVOS0xGRkJRMGxCTEVkQlFWTTdRVUZCUVN4RFFVTnFRaXhEUVVOQkxFbEJRVTFETEVWQlFVMVlMRVZCUVZGRExFVkJRVThzVDBGQlUwZ3NSVUZCVHl4UFFVRlBMRTlCUTJ4RUxFMUJRVThzUTBGQlJTeE5RVUZCV1N4RlFVRlBMRXRCUVVGUUxFVkJRVTBzVVVGQlUwWXNSVUZCVHl4UlFVRlRMRTFCUVU4c1EwRkJRMFFzUlVGQlQxY3NSVUZCUzBFc1EwRkJSeXhEUVVGRkxFTkJRelZGTEVOQlEwRXNVMEZCVTFRc1IwRkJkVUlzUTBGQlJTeFBRVUZCVnl4RlFVRlJMRTFCUVVGUExFTkJRVTBzUlVGQlIwTXNSVUZCVVhSQ0xFVkJRVk1zUTBGRmFFVXNSMEZCU1hGQ0xFVkJRVTBzUTBGQlF5eEZRVUZGTEU5QlFWTXNjMEpCUTJ4Q0xFOUJRVUZ5UWl4RlFVRlJjVUlzUlVGQlRTeERRVUZETEVWQlFVY3NZVUZCWXl3clFrRkJLMElzUlVGRGVFUXNTMEZGV0N4SFFVRk5MRU5CUVVVc1QwRkJRVVVzUTBGQlR5eEZRVUZKUml4RlFVRk5MRU5CUVVNc1JVRkRjRUpITEVWQlFVOUVMRVZCUVU4c1EwRkJReXhGUVVOcVFsQXNSVUZCVXl4RlFVTlVVeXhGUVVGUkxFZEJRMUpETEVWQlFWRXNSMEZEV2l4UlFVRlRha0lzUlVGQlNTeEZRVUZIUVN4RlFVRkpZeXhGUVVGUExFOUJRVkVzUlVGQlJXUXNSVUZCUnl4RFFVTndReXhKUVVGTmEwSXNSVUZCUzBvc1JVRkJUMlFzUTBGQlF5eEZRVU51UWl4SFFVRkpMRU5CUVVOblFpeEpRVUZWUlN4SlFVRlBMRXRCUVU5QkxFbEJRVThzUzBGRGFFTkdMRVZCUVZGRkxFMUJRMUFzUTBGRFJDeEpRVUZOUXl4RlFVRkpMRTlCUVU5RUxFTkJRVVVzUlVGRFppeERRVUZEV0N4SFFVRlZXU3hGUVVOWVdpeEZRVUZUV1N4RlFVTktSaXhKUVVGVkxFdEJRMlpCTEVWQlFWRmFMRVZCUVZOTUxFVkJRM3BDTEVOQlEwb3NRMEZEU1dsQ0xFbEJRVlVzU1VGRFZqRkNMRVZCUVZFd1FpeEZRVUZQTEcxQ1FVRnZRaXhyUkVGQmEwUklMRU5CUVUwc1JVRkJSU3hGUVVOcVJ5eEpRVUZKVFN4RlFVRlhMRWRCUTFoRExFVkJRVlVzUjBGRFZrTXNSVUZCVTFJc1JVRkJUeXhQUVVOd1FpeFJRVUZUWkN4RlFVRkpMRVZCUVVkQkxFVkJRVWxaTEVWQlFVMHNUMEZCVVN4RlFVRkZXaXhGUVVGSExFTkJRMjVETEVsQlFVMTFRaXhGUVVGUldDeEZRVUZOV2l4RFFVRkRMRVZCUTNKQ0xFOUJRVkYxUWl4RlFVRk5MRXRCUVUwc1EwRkRhRUlzU1VGQlN5eFJRVU5FU0N4RlFVRlhMRWRCUldZc1NVRkJTeXhWUVVORVJTeEhRVUZWUXl4RlFVRk5MRTlCUVU4c1QwRkRka0lzVFVGRFNpeEpRVUZMTEZWQlEwZFdMRWRCUVZVc1EwRkJRMDhzUjBGRldEZENMRVZCUVZGblF5eEZRVUZQTEdWQlJFTXNkMFZCUTNOQ0xFVkJSVEZEUkN4SFFVRlZReXhGUVVGTkxFOUJRVThzVDBGRGRrSkdMRVZCUVZWRkxFVkJRVTBzVDBGQlR5eFZRVUZWTEVOQlFVTXNSVUZEYkVNc1RVRkRTaXhKUVVGTExGRkJRMFJvUXl4RlFVRlJaME1zUlVGQlR5eHRRa0ZCYjBKQkxFVkJRVTBzVDBGQlR5eEZRVU5vUkVRc1IwRkJWVU1zUlVGQlRTeFBRVUZQTEU5QlEzWkNMRTFCUlVvc1VVRkJVeXhEUVVOTUxFbEJRVTFhTEVWQlFWVXNORU5CUVRSRFdTeEZRVUZOTEVsQlFVa3NSMEZEZEVWb1F5eEZRVUZSWjBNc1JVRkJUeXh0UWtGQmIwSmFMRU5CUVU4c1JVRkRNVU1zU1VGQlRXRXNSVUZCUzBRc1JVRkJUU3hQUVVOaVF5eEhRVUZOTEU5QlFVOUJMRWRCUVU4c1YwRkRjRUpHTEVkQlFWVkZMRVZCUVVjc1QwRkRja0lzUTBGRFNpeERRVU5LTEVOQlEwRXNUVUZCVHl4RFFVRkZMRXRCUVVGVUxFVkJRVTBzVDBGQlFWSXNSVUZCVVN4TlFVRkJVeXhGUVVGUExGRkJRVUZMTEVWQlFWTXNUMEZCUVVNc1EwRkJUeXhEUVVOc1JDeERRVVZCTEZOQlFWTjRRaXhIUVVGWFowSXNSVUZCVVN4RFFVTjRRaXhKUVVGTlZ5eEZRVUZSV0N4RlFVRlBMRTFCUVUwc1VVRkJVU3hGUVVNM1Fsa3NSVUZCVVVRc1JVRkJUU3hEUVVGRExFVkJRMlpGTEVWQlFVbEVMRVZCUVUwc1RVRkJUU3hQUVVGUExFVkJTWFpDTjBJc1JVRkJVU3hEUVVoQk9FSXNSMEZCUVN4TlFVRkJRU3hGUVVGSkxFZEJRMW9zUTBGQlEwRXNSVUZCUlN4RFFVRkRMRVZCUVVkRUxFVkJRVTBzVFVGQlRVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFVkJReTlDTEVOQlFVTXNSMEZCU1VRc1EwRkJTeXhEUVVOSkxFVkJRM0JDTEZGQlFWTXhRaXhGUVVGSkxFVkJRVWRCTEVWQlFVbDVRaXhGUVVGTkxFOUJRVkY2UWl4SFFVRkxMRVZCUTI1RFNDeEZRVUZOTEV0QlFVc3NRMEZCUXpSQ0xFVkJRVTE2UWl4RFFVRkRMRVZCUVVkNVFpeEZRVUZOZWtJc1JVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU4yUXl4UFFVRlBTQ3hEUVVOWUxFTkRhRTFCTEZOQlFWTXJRaXhIUVVGclFrTXNSVUZCVVVNc1JVRkJVVU1zUlVGQlV5eERRVU5vUkN4SFFVRk5MRU5CUVVVc1QwRkJRVU1zUlVGQlVTeExRVUZCUXl4RlFVRk5MRTlCUVVGRExFVkJRVkVzU1VGQlFVTXNRMEZCU1N4RlFVRkpUaXhGUVVOc1EwOHNSVUZEUVVNc1JVRkRSVU1zUlVGQlZ5eERRVUZEUXl4RlFVRkxReXhGUVVGTlF5eEpRVUZSVml4RlFVRlJReXhGUVVGVFR5eEZRVUZMUXl4RlFVRk5ReXhEUVVGSExFVkJRM0JGTEU5QlFWRlNMRVZCUVUwc1EwRkRWaXhKUVVGTExGTkJRMFJITEVWQlFWRk5MRVZCUVU4c1RVRkRaa3dzUlVGQlVVMHNSMEZCVjFRc1JVRkJVVWtzUTBGQlVTeEZRVU51UXl4TlFVTktMRWxCUVVzc2RVSkJRMFJHTEVWQlFWRk5MRVZCUVU4c1lVRkRaa3dzUlVGQlVVOHNSMEZCYTBKV0xFVkJRVkZKTEVOQlFWRXNSVUZETVVNc1RVRkRTaXhKUVVGTExIVkNRVU5FUml4RlFVRlJUU3hGUVVGUExHRkJRMlpNTEVWQlFWRlJMRWRCUVd0Q1dDeEZRVUZSU1N4RFFVRlJMRVZCUXpGRExFMUJSVW9zVVVGRFNTeFBRVUZCVUN4RlFVRlJSaXhGUVVGUkxHMUNRVUZ2UWl3MFEwRkJORU5KTEVOQlFVa3NSVUZCUlN4RlFVTXZSU3hEUVVOSUxFMUJRVThzUjBGRFVDeExRVUZOTEV0QlEwNHNVVUZCVXl4SFFVTlVMRTFCUVU4c1EwRkJRMFFzUlVGQlVVRXNSVUZCVTBVc1JVRkJUeXhQUVVGUlJpeEZRVUZUUlN4RlFVRlBMRTFCUVUwc1EwRkRiRVVzUTBGRFVpeERRVU5CTEVsQlFVMVpMRVZCUVZka0xFVkJRVk5GTEVWQlFVOHNUMEZETTBKaExFVkJRVXRETEVkQlFWZGlMRVZCUVV0WExFVkJRVlZvUWl4RlFVRlJReXhEUVVGUExFVkJRM0JFTEUxQlFVOHNRMEZEU0N4TlFVRkJUU3hGUVVOQkxFdEJRVTFFTEVWQlEwNHNVVUZCVTFjc1JVRkJSeXhSUVVOYUxFMUJRVThzUTBGQlEyWXNSVUZCVVdNc1JVRkJWVU1zUlVGQlJ5eE5RVUZOTEVOQlEzWkRMRU5CUTBvc1EwRkRRU3hUUVVGVFNpeEhRVUZYVkN4RlFVRlJTQ3hGUVVGVExFTkJRMnBETEVsQlFVbHJRaXhGUVVGVkxFZEJRMlFzVDBGQlVXWXNSVUZCVHl4RFFVRkRMRVZCUVVjc1EwRkZaaXhKUVVGTExFbEJRMFJsTEVWQlFWVXNhMEpCUTFZc1RVRkRTaXhKUVVGTExFbEJRMFJCTEVWQlFWVXNOa0pCUTFZc1RVRkRTaXhKUVVGTExFbEJRMFJCTEVWQlFWVXNhME5CUTFZc1RVRkRTaXhKUVVGTExFbEJRMHdzU1VGQlN5eEpRVUZMTEVOQlEwNUJMRVZCUVZVc01FSkJRVEJDWml4RlFVRlBMRU5CUVVNc1EwRkJReXhIUVVNM1F5eExRVU5LTEVOQlEwRXNTVUZCU3l4SlFVTk1MRWxCUVVzc1NVRkJTeXhEUVVOT1pTeEZRVUZWTEhOQ1FVRnpRbVlzUlVGQlR5eERRVUZETEVOQlFVTXNSMEZEZWtNc1MwRkRTaXhEUVVOS0xFTkJRMEVzVDBGQlNXVXNSMEZEUVd4Q0xFVkJRVkVzUlVGQlJ5eHRRa0ZCYjBJc2FVTkJRV2xEYTBJc1EwRkJUeXhGUVVGRkxFVkJRM1JGUXl4SFFVRlZhRUlzUTBGQlRTeERRVU16UWl4RFFVTkJMRk5CUVZOVkxFZEJRV3RDVml4RlFVRlJTQ3hGUVVGVExFTkJRM2hETEU5QlFVbEhMRVZCUVU5QkxFVkJRVThzVDBGQlV5eERRVUZETEVsQlFVMHNTMEZCVDBFc1JVRkJUeXhUUVVGWExFbEJRM1pFU0N4RlFVRlJSeXhGUVVGUExFOUJRVkVzWlVGQlowSXNkMEpCUVhkQ0xFVkJRelZFWjBJc1IwRkJWV2hDTEVWQlFVOHNUVUZCVFN4RlFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzVFVGQlR5eEhRVUZITEVOQlF6VkVMRU5CUTBFc1UwRkJVMmRDTEVkQlFWVm9RaXhGUVVGUkxFTkJla1V6UWl4SlFVRkJhVUlzUlVGcFJra3NTVUZCU1VNc1JVRkJUME1zUlVGRFdDeEhRVUZKTEVOQlEwRkVMRVZCUVZFc1NVRkJTU3hQUVVGUE8wRkJRVUVzUlVGQk9FSXNTVUZCU1N4RlFVTnlSRU1zUlVGQlR5eEpRVUZKTEU5QlFVODdRVUZCUVN4RlFVRjVReXhKUVVGSkxFTkJRMjVGTEU5QlEwMURMRVZCUVVFc1EwRkRSa1lzUlVGQlVTeFhRVUZETEhOQ1FVRnBRaXhKUVVGRkxFVkJRelZDUXl4RlFVRlBMRmRCUVVNc05rSkJRWFZDTEVsQlFVVXNRMEZEY2tNc1EwRkRRU3hKUVVGSlJTeEZRVUZSU0N4RlFVRk5MRXRCUVV0c1FpeERRVUZOTEVWQlF6ZENMRWRCUVVrc1EwRkJRM0ZDTEVWQlEwUXNUMEZCVDNKQ0xFVkJRMWdzU1VGQlNYTkNMRVZCUVUxRUxFVkJRVTBzUTBGQlF5eEZRVU5pUlN4RlFVRk5MRWxCUTA1RExFVkJRVTFPTEVWQlFVMHNWVUZGYUVJc1NVRkVRVU1zUlVGQlN5eFZRVUZaU3l4RlFVTlVTQ3hGUVVGUlJpeEZRVUZMTEV0QlFVdHVRaXhEUVVGTkxFZEJRM2hDY1VJc1JVRkJUU3hEUVVGRExFbEJRVTBzUjBGRFZFVXNTVUZCVVR0QlFVRkJMRVZCUTFKRUxFZEJRVTlETEVWQlJWQkJMRVZCUVUwN1FVRkJRU3hIUVVkV1JDeEhRVUZQUXl4RlFVRk5SaXhGUVVGTkxFTkJRVU1zUlVGRGNFSkZMRVZCUVUwc1MwRkZWa01zUlVGQlRVd3NSVUZCU3l4VlFVVm1MRWxCUVUxTkxFVkJRVThzVjBGQlF5eGpRVUZYTEVsQlFVVXNSVUZETTBJc1QwRkJRVUVzUlVGQlN5eFZRVUZaUkN4RlFVTnFRa2dzUlVGQlVVa3NSVUZCU3l4TFFVRkxla0lzUTBGQlRTeEZRVU5xUW5OQ0xFVkJRVTFETEVsQlFVOU9MRVZCUVVGSkxFZEJRVUVzV1VGQlFVRXNSVUZCVVN4TFFVRlNMRXRCUVVGS0xFVkJRV01zUjBGRGRFTXNRMEZEUVN4VFFVRlRUaXhIUVVGclFsZ3NSVUZCVVVnc1JVRkJVeXhEUVVONFF5eEpRVUZKZVVJc1JVRkJUU3hIUVVOV0xGRkJRVk5KTEVWQlFVa3NSVUZCUjBFc1JVRkJTVEZDTEVWQlFVOHNUMEZCVXl4RlFVRkhMRVZCUVVVd1FpeEZRVUZITEVOQlEzaERMRWxCUVUxRExFVkJRVXN6UWl4RlFVRlBNRUlzUTBGQlF5eEZRVU51UWl4SFFVRkpMRVZCUVVGRExFbEJRVThzVFVGQlVUTkNMRVZCUVU4d1FpeEZRVUZKTEVOQlFVTXNTVUZCVFR0QlFVRkJMRWRCUlhKRExFZEJRVWxETEVsQlFVODdRVUZCUVN4RlFVRk5MRU5CUTJJc1IwRkJUU3hEUVVGRkxFdEJRVUZETEVWQlFVMHNUMEZCUVRsQ0xFTkJRVThzUlVGQlNTdENMRWRCUVZrM1FpeEZRVUZSTUVJc1EwRkJReXhGUVVNNVEwb3NSMEZCVDAwc1JVRkRVRVlzUlVGQlNUVkNMRU5CUTFJc1UwRkRVelpDTEVsQlFVOHNTMEZCVFN4RFFVTnNRaXhKUVVGSlJ5eEZRVUZQT1VJc1JVRkJUeXhGUVVGRk1FSXNRMEZCUXl4RlFVTm1TeXhGUVVGTFF5eEhRVUZaUml4RFFVRkpMRVZCUXpOQ0xFZEJRVWxETEVWQlEwRlVMRWRCUVU5VExGVkJRMFpFTEVsQlFWTTdRVUZCUVN4RlFVZGtMRWxCUkVGQkxFVkJRVTg1UWl4RlFVRlBNRUlzUlVGQlNTeERRVUZETEVWQlExcEpMRWxCUVZNc1MwRkJUMEVzU1VGQlV5eExRVU0xUWtFc1JVRkJUemxDTEVWQlFVOHNSVUZCUlRCQ0xFVkJRVWtzUTBGQlF5eFZRVVZ3UWtrc1NVRkJVeXhOUVVGUk9VSXNSVUZCVHpCQ0xFVkJRVWtzUTBGQlF5eEpRVUZOTzBGQlFVRXNSVUZIZUVNc1NVRkVRVWtzUlVGQlR6bENMRVZCUVU4c1JVRkJSVEJDTEVWQlFVa3NRMEZCUXl4RlFVTmtTU3hKUVVGVExFdEJRVTlCTEVsQlFWTXNTMEZETlVKQkxFVkJRVTg1UWl4RlFVRlBMRVZCUVVVd1FpeEZRVUZKTEVOQlFVTXNWVUZGY0VKSkxFbEJRVk1zUzBGQlQwRXNTVUZCVXl4TFFVRlBRU3hKUVVGVExFbEJRVXNzUTBGRGJrUXNTVUZCVFVjc1JVRkJVeXhEUVVGRkxFVkJRVWNzUlVGQlJ5eEZRVUZITEVWQlFVY3NSVUZCUnl4RFFVRkZMRVZCUVVWSUxFTkJRVWtzUlVGRGVFTlNMRWRCUVU5WkxFZEJRV05zUXl4RlFVRlJNRUlzUlVGQlNTeEZRVUZIVHl4RlFVRlJjRU1zUTBGQlR5eEZRVU51UkRaQ0xFZEJRVXRQTEVOQlExUXNTMEZEU3l4RFFVTkVMRWxCUVUxRkxFVkJRVTF1UXl4RlFVRlBMRTlCUVU4d1FpeEZRVUZKTEVWQlFVY3NRMEZCUXl4RlFVTnNRemRDTEVWQlFWRTJRaXhGUVVGSkxFVkJRVWNzWjBKQlFXbENMREpDUVVFeVFsTXNRMEZCUnl4RlFVRkZMRVZCUTJoRllpeEhRVUZQWVN4RFFVTllMRU5CUTBvc1UwRkRVMUlzU1VGQlR5eExRVUZQUVN4SlFVRlBMRWxCUVUwc1EwRkZhRU1zU1VGQlRWTXNSVUZCVlZZc1JVRkRXa2tzUlVGQlR6bENMRVZCUVU4d1FpeEZRVUZKTEVOQlFVTXNSVUZEZGtJc1MwRkJUMGtzU1VGQlV5eExRVUZQUVN4SlFVRlRMRXRCUXpWQ1FTeEZRVUZQT1VJc1JVRkJUeXhGUVVGRk1FSXNSVUZCU1N4RFFVRkRMRVZCUTNKQ1NTeEpRVUZUTzBGQlFVRXNSMEZCVVN4RlFVRkZRU3hKUVVGVExFMUJRVkU1UWl4RlFVRlBNRUlzUlVGQlNTeERRVUZETEVsQlFVMDdRVUZCUVN4TFFVTjBSRW9zUjBGQlQwa3NSVUZCU1ZVc1JVRkJWWEJETEVWQlFVOHNUVUZCVFc5RExFVkJRVk5XTEVWQlFVa3NRMEZCUXl4RlFVRkpReXhGUVVNMVJDeE5RVVZKVEN4SFFVRlBTeXhEUVVWbUxFTkJRMEVzVDBGQlNUTkNMRVZCUVU5QkxFVkJRVThzVDBGQlV5eERRVUZETEVsQlFVMHNTMEZCVDBFc1JVRkJUeXhUUVVGWExFbEJRM1pFU0N4RlFVRlJSeXhGUVVGUExFOUJRVkVzWlVGQlowSXNkMEpCUVhkQ0xFVkJRelZFYzBJc1EwRkRXQ3hEUVV0QkxGTkJRVk5QTEVkQlFWazNRaXhGUVVGUlJpeEZRVUZSTEVOQlEycERMRWxCUVVrNFFpeEZRVUZQTEVkQlExQkVMRVZCUVVzelFpeEZRVUZQUml4RlFVRlRMRU5CUVVNc1JVRkRNVUlzVFVGQlR6WkNMRWxCUVU4c1MwRkJUMEVzU1VGQlR5eExRVUZSUVN4SlFVRlBPMEZCUVVFc1IwRkJVVUVzU1VGQlR5eFBRVU5zUkN4RlFVRkJRU3hKUVVGUExFMUJRVkV6UWl4RlFVRlBSaXhGUVVGVExFTkJRVU1zU1VGQlRUdEJRVUZCTEVsQlJYUkROa0lzU1VGQlR6dEJRVUZCTEVsQlExQkRMRWRCUVZFN1FVRkJRU3hIUVVOYU9VSXNSMEZCVlN4RlFVTldOa0lzUlVGQlN6TkNMRVZCUVU5R0xFVkJRVk1zUTBGQlF5eEZRVVV4UWl4UFFVRkxPRUlzU1VGRFJFRXNSVUZCVHl4TFFVTktMRU5CUVVVc1MwRkJRVUVzUlVGQlRTeFBRVUZCT1VJc1EwRkJUeXhEUVVNeFFpeERRVU5CTEVsQlFVMXJReXhIUVVGakxFTkJRMmhDTEVWQlFVc3NTMEZEVEN4RlFVRkhMRTlCUTBnc1JVRkJSeXhMUVVOSUxFVkJRVWNzVDBGRFNDeEZRVUZITEV0QlEwZ3NSVUZCUnp0QlFVRkJMRVZCUTBnc1JVRkJSeXhMUVVOSUxFVkJRVWNzU1VGRFNDeEZRVUZITEV0QlEwZ3NSVUZCUnl4UFFVTklMRVZCUVVjc1QwRkRTQ3hGUVVGSExGTkJRMGdzUlVGQlJ5eFRRVU5JTEVsQlFVc3NTVUZEVEN4SlFVRkxMRWxCUTB3c1NVRkJTeXhKUVVOTUxFdEJRVTBzUzBGRFRpeEpRVUZOTEVkQlExWXNSVUZEUVN4VFFVRlRSU3hIUVVGamJFTXNSVUZCVVVZc1JVRkJVVzFETEVWQlFWRndReXhGUVVGVExFTkJRM0JFTEVsQlFVMXJReXhGUVVGTEwwSXNSVUZCVHl4UFFVRlBSaXhGUVVGUmJVTXNRMEZCVFN4RlFVVnFRek5DTEVWQlJFdDVRaXhGUVVGSExGTkJRVmRGTEVkQlFWVXNhVUpCUVdsQ0xFdEJRVXRHTEVOQlFVVXNSVUZEZWtNc1UwRkJVMEVzUlVGQlNTeEZRVUZGTEVWQlFVa3NTVUZEY2tNc1IwRkJTU3hOUVVGTmVrSXNRMEZCU1N4RlFVRkhMRU5CUTJJc1NVRkJUVFpDTEVWQlFVMXVReXhGUVVGUExFOUJRVTlHTEVWQlFWTXNSVUZCUjIxRExFVkJRVk1zUTBGQlF5eEZRVU5vUkN4UFFVRkJjRU1zUlVGQlVVTXNSVUZCVXl4RlFVRkhMR2RDUVVGcFFpd3lRa0ZCTWtKeFF5eERRVUZITEVWQlFVVXNSVUZET1VSQkxFTkJRMWdzUTBGRFFTeFBRVUZQTEU5QlFVOHNZMEZCWXpkQ0xFTkJRVWtzUTBGRGNFTXNRME4yVGtFc1UwRkJVeXRDTEVkQlFXTkRMRVZCUVV0RExFVkJRVTlETEVWQlFWVkRMRVZCUVZNc1EwRkRiRVFzUjBGQlRTeERRVUZGTEUxQlFVRkRMRVZCUVU4c1MwRkJRVU1zUlVGQlRTeFJRVUZCUXl4RlFVRlRMRTFCUVVGRExFTkJRVTBzUlVGQlNVNHNSVUZCVFN4UFFVRlRMR1ZCUTJwRVR5eEhRVUZ0UWxJc1JVRkJTME1zUlVGQlQwVXNRMEZCVHl4RlFVTjBRMDBzUjBGQmEwSlNMRVZCUVU5RUxFVkJRVWtzVVVGQlVTeFBRVUZSUnl4RFFVRlBMRVZCUTNCRVR5eEZRVUZWVWl4RlFVTldSaXhGUVVGSkxGZEJRVmNzVVVGQlVVVXNSVUZCVXl4UFFVRlJVeXhIUVVGUFVpeEZRVUZSUkN4RlFVRlZMSEZDUVVGelFsTXNRMEZCUnl4RFFVRkRMRVZCUXpOR0xFdEJRMFpETEVWQlEwRmFMRVZCUVVrc1VVRkJVU3haUVVGalFTeEZRVUZKTEUxQlF6bENXU3hGUVVGTldpeEZRVUZKTEU5QlFVOWhMRVZCUVUwc1JVRkZiRUpJTEVWQlEweEZMRVZCUVUxRkxFZEJRVzlDWkN4RlFVRkpMRTlCUVZGSkxFVkJRVTlOTEVWQlFWTlNMRVZCUVZWRExFTkJRVThzUlVGRGJFVkdMRVZCUVUwc1QwRkJVeXhUUVVOd1FsY3NSVUZCVFVjc1IwRkJiMEptTEVWQlFVdEpMRVZCUVU5SUxFVkJRVTlGTEVOQlFVOHNSVUZGY0VSVExFVkJRVTFhTEVWQlFVa3NUMEZCVDJFc1JVRkJUU3hGUVVNelFpeEpRVUZKUnl4RlFVTktMRWRCUVVrc1EwRkRRU3hKUVVGTlF5eEZRVUZOVEN4RlFVRkpMRkZCUVZGU0xFVkJRVTlQTEVkQlFVOVNMRVZCUVZGRUxFZEJRVUVzUzBGQlFVRXNSVUZCV1VRc1JVRkJUeXh4UWtGQmMwSlZMRU5CUVVjc1JVRkJSMWdzUlVGQlNTeFBRVUZQTEVWQlEzaEhaMElzUlVGQlUwVXNSVUZCVTBRc1EwRkJSeXhGUVVGSlFTeEZRVUZOTEVsQlFVbEZMRVZCUVU5R0xFTkJRVWNzUTBGRGFrUXNUMEZEVDBjc1JVRkJUeXhEUVVOV0xFbEJRVTFVTEVWQlFVMVRMR0ZCUVdsQ0xFMUJRVkZCTEVWQlFVMHNVVUZCVlN4UFFVRlBRU3hEUVVGTExFVkJRMnBGYWtJc1JVRkJVVVFzUjBGQlFTeExRVUZCUVN4RlFVRlpSQ3hGUVVGUExIRkNRVUZ6UWxVc1EwRkJSeXhGUVVOd1JFc3NSVUZCVXl4SlFVRkpSeXhGUVVGUFppeERRVUZMTEVOQlF6ZENMRU5CUTBFc1QwRkJRVmtzUlVGQlR5eE5RVUZSVkN4RlFVTm1VeXhGUVVGUExFOUJRVk5hTEVWQlExcERMRWxCUTBGWExFVkJRVThzUzBGQlQxZ3NSMEZEWkVzc1NVRkRRVTBzUlVGQlR5eEpRVUZOVGl4SFFVTmlSU3hGUVVGSkxGTkJRMHBKTEVWQlFVOHNUMEZCVTBvc1JVRkJTU3hSUVVOd1FrNHNTVUZEUVZVc1JVRkJUeXhSUVVGVlZpeEhRVU5rVlN4RFFVTllMRU5CUTBFc1UwRkJVMFlzUjBGQmIwSlBMRVZCUVZGcVFpeEZRVUZQVFN4RlFVRlRVaXhGUVVGVlF5eEZRVUZUTEVOQk5VTjRSU3hKUVVGQmJVSXNSVUUyUTBrc1IwRkJTVm9zU1VGQldTeEpRVU5hTEU5QlFVOVhMRVZCUVU5U0xFVkJRVTBzUlVGRGVFSXNTVUZCVFZVc1JVRkJaMElzUTBGQlF5eEZRVU4yUWl4UlFVRlhXQ3hMUVVGUFV5eEZRVUZQTEV0QlEzSkNMRWRCUVVrc1EwRkJRMVFzUlVGQlNTeFpRVUZqUVN4RlFVRkpMRTFCUVZGR0xFVkJReTlDTEVkQlFVbEZMRVZCUVVrc1UwRkJWMEVzUlVGQlNTeExRVU51UWxjc1JVRkJZeXhMUVVGTFdDeERRVUZITEUxQlJYUkNMRkZCUVU5QkxFVkJSMjVDTEZGQlFWZEJMRXRCUVU5WExFVkJRMlFzU1VGQlNVUXNSVUZCUVZZc1JVRkJTU3hQUVVGS0xFMUJRVUZWTEVWQlFWVXNTMEZCUzJ4Q0xFZEJRMllzVDBGQlQxRXNSVUZEWml4SlFVRk5XU3hGUVVGTFNDeEZRVUZQTEZWQlFWVllMRU5CUVU4c1JVRkRia01zVDBGQlNXTXNSMEZCVFN4RFFVRkRRU3hGUVVGSExGbEJSMVpJTEVWQlFVOHNTMEZCU3l4TFFVRkxMRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWRITEVWQlFVa3NRMEZCUlN4UlFVRlRMRWRCUVU4c1MwRkJUU3hOUVVGVkxFTkJRVU1zUTBGQlF5eEZRVU53UlVFc1NVRkZXSEpDTEVWQlFWRkVMRVZCUVZVc2NVSkJRWE5DTEcxQ1FVRnRRbEVzUTBGQlR5eEhRVUZKUVN4SlFVRlpMSFZDUVVGMVFpeEZRVU5zUjFjc1JVRkJUMUlzUlVGQlRTeEZRVU40UWl4RFFVTkJMRk5CUVZORkxFZEJRVzlDTEVOQlFVVXNUVUZCUVZVc1JVRkJUeXhYUVVGQlF5eEZRVUZaTEU5QlFVRk1MRU5CUVU4c1JVRkJSMnBDTEVWQlFVOUlMRVZCUVU5RkxFVkJRVk1zUTBGeVJXNUdMRWxCUVVGdFFpeEZRWE5GU1N4SlFVRk5WaXhGUVVGTlV5eEZRVUZQTEV0QlFVc3NTMEZCUzFRc1IwRkJTU3hEUVhSRmNrTXNTVUZCUVZVc1JVRnpSWGxETEU5QlFVRldMRVZCUVVrc1ZVRkJXU3hKUVVGVFlTeEhRVUZUWWl4RlFVRkpMRlZCUVZrc1ZVRkRia1pWTEVWQlFVRldMRVZCUVVrc1QwRkJTaXhaUVVGQlZTeEZRVUZWTEV0QlFVdHNRaXhKUVVGTkxFZEJRVXRwUWl4RlFVRlBVaXhGUVVGTkxFVkJRek5ETEVkQlFVbFJMRVZCUVU4c1QwRkJVU3hEUVVObUxFbEJRVTFOTEVkQlFWTk1MRVZCUVVGRUxFVkJRVThzVDBGQlR5eExRVUZMVkN4SFFVRkpMRU5CZWtVNVF5eEpRVUZCVlN4RlFYbEZhVVFzVDBGQlFWWXNSVUZCU1N4WFFVRlhWU3hGUVVGQlZpeEZRVUZKTEU5QlFVb3NXVUZCUVZVc1JVRkJWU3hMUVVGTGJFSXNTVUZCVFN4SlFVRTVSQ3hMUVVGQmEwSXNSVUZEV0VRc1JVRkJUMUlzUlVGQlRTeEZRVU5xUWl4SFFVRkpSQ3hGUVVGSkxFMUJRVkZsTEVWQlFVOHNTVUZCU3l4RFFVTjRRaXhKUVVGTlF5eEZRVUZMUml4RlFVRlhMRlZCUVZWa0xFVkJRVWtzUjBGQlJ5eEZRVU5xUTJsQ0xFVkJRVXRJTEVWQlFWY3NWVUZCVlVNc1JVRkJUeXhIUVVGSExFVkJRM0JEYUVJc1JVRkJUU3hwUTBGQmFVTnBRaXhEUVVGRkxFOUJRVTlETEVOQlFVVXNSMEZEZUVReFFpeEZRVUZSUml4RlFVRlBMSEZDUVVGelFsVXNSVUZCU3l4RlFVRkpMRU5CUTJ4RUxFTkJRMG9zUTBGRFFTeFBRVUZQUXl4RFFVTllMRU5EYmtaQkxGTkJRVk5yUWl4SFFVRnZRa01zUlVGQlVVTXNSVUZCVVVNc1JVRkJTeXhEUVVNNVF5eEhRVUZKUkN4RlFVRlJMRU5CUTBwRExFbEJRVkVzVDBGRFVrRXNSVUZCVFVRc1JVRkJUeXhSUVVOcVFpeFJRVUZUUlN4RlFVRkpSQ3hGUVVGTkxFVkJRVWRETEVkQlFVc3NSVUZCUnl4RlFVRkZRU3hGUVVGSExFTkJReTlDTEVsQlFVbERMRVZCUVV0SUxFVkJRVTlGTEVOQlFVTXNSVUZEYWtJc1QwRkJVVU1zUlVGQlJ5eExRVUZOTEVOQlEySXNTVUZCU3l4UlFVTk1MRWxCUVVzc1ZVRkRUQ3hKUVVGTExGVkJRMFJLTEVkQlFWVkpMRVZCUVVjc1QwRkJUeXhQUVVOd1FpeFJRVU5TTEVOQlNVRXNTVUZFUVVFc1JVRkJTMGdzUlVGQlR5eEZRVUZGUlN4RFFVRkRMRWRCUTFKRExFZEJRVUVzV1VGQlFVRXNSVUZCU1N4UlFVRlRMRk5CUTJoQ1NpeEhRVUZWU1N4RlFVRkhMRTlCUVU4c1QwRkRjRUpCTEVWQlFVdElMRVZCUVU4c1JVRkJSVVVzUTBGQlF5eEZRVVZ1UWl4TFFVTktMRU5CUTBvc1EwRkRRU3hQUVVGUFNDeERRVU5ZTEVORGFrSkJMRWxCUVUxTExFZEJRVXNzUTBGQlJTeFpRVUZCUXl4SFFVRmhMR2xDUVVGQlF5eEZRVUZwUWl4RlFVTXpReXhUUVVGVFJDeEhRVUZaUlN4RlFVRkxReXhGUVVGUFF5eEZRVUZQUXl4RlFVRlRMRU5CUXpkRExFbEJRVTFETEVWQlFWRktMRVZCUVVrc1RVRkRXaXhEUVVGRkxGbEJRVUZMTEVWQlFXRXNVVUZCUVVNc1JVRkJVeXhQUVVGQlF5eEZRVUZSTEVsQlFVRkRMRU5CUVVrc1JVRkJTVTRzUlVGRE1VTlBMRVZCUTBGRExFVkJRV0VzUjBGRGFrSXNUMEZCVVZRc1JVRkJUU3hMUVVGTkxFTkJRMmhDTEVsQlFVc3NVVUZEUkZFc1JVRkJUMFVzUjBGQllWZ3NSVUZCUzBNc1JVRkJUMFVzUTBGQlR5eEhRVU51UTBrc1IwRkJWVU1zU1VGRFZrd3NSVUZCVVVZc1JVRkJUeXhqUVVGbExDdERRVUVyUXl4RlFVTnFSaXhOUVVOS0xFbEJRVXNzVTBGRFRDeEpRVUZMTEhWQ1FVTk1MRWxCUVVzc2RVSkJRMHdzU1VGQlN5eGxRVU5FVVN4RlFVRlBSeXhIUVVGaldpeEZRVUZMUXl4RlFVRlBUeXhGUVVGTFRDeERRVUZQTEVWQlEzcERTU3hKUVVOQlJTeEZRVUZMTEU5QlFWTkdMRVZCUVU4c1QwRkJUeXhWUVVGVkxFTkJRVU1zUjBGRE0wTXNUVUZEU2l4SlFVRkxMRmxCUTB3c1NVRkJTeXhaUVVOTUxFbEJRVXNzYTBKQlEwUkZMRVZCUVU5SkxFZEJRV3RDYUVJc1IwRkJTVWNzUlVGQlMwTXNSVUZCVDBNc1JVRkJUME1zUTBGQlR5eEZRVU51UkVrc1NVRkRRVVVzUlVGQlN5eFBRVUZUUml4RlFVRlBMRTlCUVU4c1ZVRkJWU3hEUVVGRExFZEJRek5ETEUxQlEwb3NVVUZCVXl4RFFVTk1MRWxCUVUxUExFVkJRVlZpTEVWQlFVMHNUMEZCVXl4UlFVTjZRa0VzUlVGQlRTeFJRVU5PTERSQ1FVRTBRa0VzUlVGQlRTeEpRVUZKTEVsQlF6VkRSU3hGUVVGUlJpeEZRVUZQTEcxQ1FVRnZRbUVzUTBGQlR5eEZRVU14UTB3c1JVRkJUMVlzUjBGQmFVSkRMRVZCUVV0RExFVkJRVTBzVDBGQlVTeFBRVUZYTEV0QlFVMURMRVZCUVU5RExFTkJRVThzUlVGRE1VVlBMRVZCUVdFc1JVRkRha0lzUTBGRFNpeERRVU5CTEU5QlFVbElMRWRCUVZWRkxFVkJRVXNzVTBGQlZ5eEpRVU14UWs0c1JVRkJVVWtzUlVGQlVTeFpRVUZoTEd0RFFVRnJReXhGUVVNdlJFZ3NSMEZEUVVvc1JVRkJTU3hSUVVGUkxHRkJRMWdzUTBGQlEyVXNSVUZCVTA0c1EwRkJTU3hIUVVOWUxFOUJRVTlCTEVWQlFVc3NUMEZCVlN4VlFVTnlRa0VzUlVGQlN5eExRVUZQUVN4RlFVRkxMRTFCUVZFc01FSkJSVGxDVGl4RlFVRlJTeXhIUVVGQkxFdEJRVUZCTEVWQlFVOVFMRVZCUVU4c2FVSkJSRllzTWtOQlF5dENMRVZCUlRORFNTeEpRVU5CU1N4RlFVRkxMRmxCUVdNc1NVRkRia0pJTEVsQlEwbE1MRVZCUVUwc1QwRkJVeXhWUVVGWlFTeEZRVUZOTEZOQlFWY3NSMEZETlVOUkxFVkJRVXNzVVVGQlZVZ3NSVUZGWmtjc1JVRkJTeXhqUVVGblFrZ3NSMEZIZWtKT0xFVkJRVWtzVVVGQlVTeHJRa0ZCYjBKVkxFbEJRMmhEUkN4RlFVRkxMRk5CUVZkU0xFZEJRMkpSTEVOQlExZ3NRMEZEUVN4VFFVRlRWaXhIUVVGcFFrTXNSVUZCUzJkQ0xFVkJRVkZETEVWQlFWRkRMRVZCUVVzc1EwRkJSU3haUVVGQllpeEZRVUZoTEZGQlFVRkRMRVZCUVZNc1QwRkJRVU1zUlVGQlVTeEpRVUZCUXl4RlFVRkxMRWxCUVVGWExFTkJRVWtzUlVGQlIyaENMRVZCUVZNc1EwRkRja2NzU1VGQlRVWXNSVUZCVVN4RFFVTldMRXRCUVUwc1UwRkRUaXhQUVVGUmJVSXNSMEZCYjBKS0xFVkJRVkZETEVWQlFWRkRMRU5CUVVjc1JVRkRMME1zVDBGQlVTeEhRVU5TTEU5QlFWRXNSVUZEV2l4RlFVTk5WQ3hGUVVGUFJ5eEhRVUZqV2l4RlFVRkxReXhGUVVGUFR5eEZRVUZMVEN4RFFVRlBMRVZCUTI1RUxFOUJRVWxKTEVsQlEwRkZMRVZCUVVzc1QwRkJVMFlzUlVGQlR5eFBRVUZQTEZWQlFWVXNRMEZCUXl4RlFVTnVRMFVzUlVGQlN5eFRRVUZYTEVsQlEyaENUaXhGUVVGUlNTeEZRVUZSTEZsQlFXRXNhME5CUVd0RExFZEJSVzVGUml4SlFVTkJTU3hGUVVGTExGbEJRV01zU1VGRGJrSklMRWxCUTBGSExFVkJRVXNzVVVGQlZVZ3NSVUZEWmtjc1JVRkJTeXhOUVVGTkxFTkJRVU1zUlVGQlNWVXNSMEZGWWxZc1EwRkRXQ3hEUVVOQkxGTkJRVk5GTEVkQlFXRXNRMEZCUlN4UlFVRkJWU3hEUVVGUkxFVkJRVWNzUTBGQlJTeFBRVUZCVEN4RlFVRlJMRTlCUVVGTkxFVkJRVkVzU1VGQlFVZ3NRMEZCU1N4RlFVRkhhRUlzUlVGQlV5eERRVU5xUlN4SlFVRk5iMElzUlVGQlVTeEpRVUZKUXl4SFFVRk5SaXhGUVVGUExGVkJRVlVzUTBGQlF5eERRVUZETEVWQlEzWkRReXhGUVVGTkxGTkJRVmNzU1VGRGFrSndRaXhGUVVGUllTeEZRVUZSTEZsQlFXRXNhVU5CUVdsRExFVkJRemxFVHl4RlFVRk5MRTlCUVU4c1UwRkJVeXhIUVVGSExFZEJRM3BDY0VJc1JVRkJVV0VzUlVGQlUwMHNSVUZCVHl4UFFVRlRMRVZCUVVjc1dVRkJZU3hwUTBGQmEwTXNSVUZCU1N4RlFVTXpSaXhKUVVGTlJ5eEZRVUZYVkN4RlFVRlRUU3hGUVVGUExFOUJRek5DU1N4RlFVRkxReXhIUVVGWFVpeEZRVUZMVFN4RlFVRlZTaXhGUVVGUkxFOUJRVkZzUWl4RFFVRlBMRVZCUXpWRUxFOUJRVUZ2UWl4RlFVRk5MRTFCUVZFc1EwRkJRMUFzUlVGQlVWTXNSVUZCVlVNc1JVRkJSeXhOUVVGTkxFVkJRM1JEUVN4RlFVRkhMRlZCUTBoSUxFVkJRVTBzVVVGQlZVY3NSVUZCUnl4VFFVTm9Ra2dzUTBGRFdDeERRemxHUVN4VFFVRlRTeXhIUVVGWFF5eEZRVUZUUXl4RlFVRlpMRU5CUVVVc1QwRkJRVU1zUlVGQlVTeE5RVUZCUXl4RlFVRlBMRTFCUVVGRExFVkJRVThzU1VGQlFVTXNRMEZCU1N4RlFVRkhReXhGUVVGVExFTkJRemRGTEVsQlFVMURMRVZCUVU4c1QwRkJUeXhQUVVGUExFTkJRVVVzV1VGQllVNHNRMEZCVnl4RlFVRkhSQ3hEUVVGUExFVkJRM3BFVVN4RlFVRk5MRWxCUVVsRExFZEJRVk1zVDBGQlYwWXNRMEZCU1N4RlFVTnNRMGNzUlVGQlRTeERRVU5TTEUxQlFVOHNSMEZEVUN4UFFVRlJMRWRCUTFJc1YwRkJXVVlzUlVGQlNTeFhRVU5vUWl4UlFVRlRRU3hGUVVGSkxGRkJRMklzVDBGQlVVRXNSVUZCU1N4TlFVTm9RaXhGUVVOTlJ5eEZRVUZSUXl4SFFVRmhWQ3hGUVVGUExFTkJRemxDTEZWQlFWY3NXVUZEV0N4TFFVRk5ReXhIUVVGQkxFdEJRVUZCTEVWQlFWTkRMRWRCUVVFc1dVRkJRVUVzUlVGQlRTeEhRVU55UWl4UFFVRkJTQ3hGUVVOQkxGRkJRVUZKTEVWQlEwRXNZVUZCWXl4RlFVTmtMR1ZCUVdkQ0xFVkJRM0JDTEVOQlFVTXNSVUZEUjBzc1JVRkJUU3hSUVVOT1NDeEZRVUZKTEZkQlFWY3NVMEZCVnl4SFFVTjBRa29zU1VGRFEwRXNSVUZCVFN4UFFVRlRMR0ZCUVdWQkxFVkJRVTBzVDBGQlV5eGpRVU01UXl4RFFVRkRUeXhGUVVGTkxGbEJRMUJNTEVWQlFWRkxMRVZCUVUwc1NVRkJTeXhsUVVGblFpeDFSVUZCZFVVc1IwRkhiRWhJTEVWQlFVa3NVMEZCVjBvc1JVRkRWRk1zUjBGQldVZ3NSVUZCUzA0c1JVRkJUMDhzUlVGQlQwd3NRMEZCVHl4RlFVTjBRMUVzUjBGQmFVSktMRVZCUVV0RExFVkJRVTBzU1VGQlMxSXNSVUZCVHl4TFFVRk5VU3hGUVVGUFRDeERRVUZQTEVWQlEyeEZMRWxCUVUxVExFVkJRV0ZRTEVWQlFVa3NVMEZCVXl4TlFVRk5MRU5CUVVNc1JVRkRha05STEVWQlFVdERMRWRCUVZkYUxFVkJRVXRWTEVWQlFWa3NSMEZCVDFRc1EwRkJUeXhGUVVOeVJDeFBRVUZKVlN4RlFVRkhMRlZCUTBoU0xFVkJRVWtzVVVGQlZWRXNSVUZCUnl4VFFVTnlRbElzUlVGQlNTeE5RVUZSTEVOQlFVTk9MRVZCUVZGaExFVkJRVmxETEVWQlFVY3NUVUZCVFN4RlFVTnVRMUlzUTBGRFdDeERRMnBEUVN4VFFVRlRWU3hIUVVGWlF5eEZRVUZMTEVOQlEzUkNMRWRCUVVrc1QwRkJUMEVzUjBGQlVTeFRRVU5tTEUxQlFVOHNRMEZCUTBFc1JVRkJTMEVzUlVGQlRTeERRVUZETEVWQlEzaENMRWRCUVVrc1RVRkJUU3hSUVVGUlFTeERRVUZITEVWQlEycENMRTlCUVU5QkxFVkJRVWtzVTBGQlZ5eEZRVUZKUVN4RlFVRk5MRU5CUVVOQkxFVkJRVWtzUTBGQlF5eEZRVUZIUVN4RlFVRkpMRU5CUVVNc1EwRkJReXhGUVVOdVJDeEhRVUZOTEVOQlFVVXNUMEZCUVVNc1JVRkJVU3hQUVVGQlF5eERRVUZQTEVWQlFVbEdMRVZCUXpOQ0xFMUJRVThzUTBGQlEwTXNSVUZCVVVFc1IwRkJWU3hQUVVGUFF5eEhRVUZYTEZOQlFWZEJMRVZCUVU4c1QwRkJVeXhGUVVGRkxFTkJRemRGTEVOQlEwRXNVMEZCVTBNc1IwRkJZVU1zUlVGQlV5eERRV1l2UWl4SlFVRkJReXhGUVdkQ1NTeEpRVUZKUXl4RlFVRlZMRWRCUTFaRExFVkJRVmtzUjBGRFdrTXNSVUZCYVVJc1IwRkRja0lzVVVGQlV5eEZRVUZKTEVWQlFVY3NSVUZCU1Vvc1JVRkJVU3hQUVVGUkxFVkJRVVVzUlVGQlJ5eERRVU55UXl4SlFVRk5SaXhGUVVGVFJTeEZRVUZSTEVOQlFVTXNSVUZEZUVJc1QwRkJVVVlzUlVGQlR5eERRVUZETEVWQlFVY3NRMEZEWml4SlFVRkxMRWxCUTBSSkxFbEJRMHRCTEVsQlFWa3NSMEZCU3l4SFFVRkxSU3hGUVVGcFFqdEJRVUZCTzBGQlFVRXNSVUZCVXp0QlFVRkJMRWxCUXpWRFRpeEZRVUZQTEZWQlFWVXNRMEZCUXl4SFFVRkxMRXRCUTJoRFN5eEZRVUZaTEVkQlExcERMRVZCUVdsQ0xFZEJRMnBDTEUxQlEwb3NTVUZCU3l4TlFVTkhTQ3hGUVVGQlJDeEZRVUZSTEVWQlFVa3NRMEZCUXl4SlFVRmlMRmxCUVVGRExFVkJRV2xDTEUxQlFVOHNUVUZEZUVJc1IwRkJTeXhIUVVOVVJTeEZRVUZaTEVkQlExb3NUVUZEU2l4UlFVVlRRU3hKUVVORVF5eEZRVUZwUWl4SlFVTnlRa1FzUlVGQldTeEZRVU53UWl4RFFVTktMRU5CUTBFc1RVRkJUeXhEUVVGRkxGRkJRVUZFTEVWQlFWTXNaVUZCUVVVc1EwRkJaU3hEUVVOeVF5eERRVmxCTEVsQlFVMURMRWRCUVU0c1MwRkJaU3hEUVVOWUxGbEJRVmxETEVWQlFWVXNRMEZCUXl4RlFVRkhMRU5CUTNSQ0xFdEJRVXNzU1VGQlRTeExRVU5ZTEV0QlFVc3NZVUZCWlN4SFFVTndRaXhMUVVGTExGRkJRVlVzUTBGQlF5eEZRVU5vUWl4TFFVRkxMRTlCUVZNc1EwRkJReXhGUVVObUxFdEJRVXNzVTBGQlZ5eERRVUZETEVWQlEycENMRXRCUVVzc1VVRkJWU3hEUVVGRFVpeEZRVUZSVXl4RlFVRk5ReXhGUVVGVFF5eEpRVUZaTEVOQlF5OURMRWxCUVUxRExFVkJRVTFtTEVkQlFWbEhMRU5CUVUwc1JVRkRNVUpYTEVWQlEwRXNTMEZCU3l4VFFVRlRMRXRCUVVzc1NVRkJTVVVzUjBGQldVUXNSVUZCUzBnc1JVRkJUVU1zUTBGQlR5eERRVUZETEVWQlJYUkVMRXRCUVVzc1QwRkJUeXhMUVVGTExFbEJRVWxKTEVkQlFXVkdMRVZCUVV0SUxFVkJRVTFETEVOQlFVOHNRMEZCUXl4RFFVTXZSQ3hGUVVWQkxFdEJRVXNzVjBGQllTeEpRVUZKU3l4SFFVRlhMRU5CUVVVc1VVRkJVMUFzUlVGQlVTeFRRVUZYTEV0QlFVMHNRMEZCUXl4RlFVTjBSU3hMUVVGTExGRkJRVlZCTEVOQlEyNUNMRU5CUTBFc1UwRkJVMUVzUlVGQlMwTXNSVUZCVlN4RFFVTndRaXhIUVVGTkxFTkJRVVVzVVVGQlFXSXNSVUZCVXl4bFFVRkJSU3hEUVVGbExFVkJRVWxNTEVkQlFXRXNTMEZCU3l4UFFVRlBMRVZCUlRkRUxFZEJRVWxITEVWQlFWTXNRMEZEVkN4SlFVRk5ZeXhGUVVGTFJpeEZRVUZKTEZOQlEyWXNSMEZCU1VNc1JVRkRRVVFzUlVGQlNTeFJRVUZWUVN4RlFVRkpMRkZCUVZVc1IwRkJSMEVzUlVGQlNTeFBRVUZQTzBGQlFVRXNSVUZCUzFvc1EwRkJUeXhIUVVGTFFTeFZRVVYwUkVVc1IwRkJhMEpWTEVWQlFVa3NWMEZCVnl4VlFVRlpMRU5CUVVORkxFVkJRMjVFUml4RlFVRkpMR05CUVdkQ1dpeFZRVVZtWlN4RlFVRmhSQ3hEUVVGRkxFZEJRVXNzUTBGQlEwRXNSVUZCUnl4TlFVRlJRU3hGUVVGSExFMUJRVTBzVDBGQlV5eEZRVUZITEVOQlF6RkVMRWxCUVVsRkxFVkJRVXRHTEVWQlFVY3NUVUZCVFN4RFFVRkRMRVZCUTJaSExFVkJRVTlFTEVOQlFVVXNTVUZEVkVFc1JVRkJTMEVzUlVGQlJ5eExRVU5hTEVsQlFVMUZMRVZCUVV0R0xFVkJRVWNzWTBGRFpFRXNSVUZCUnl4alFVRm5Ra1VzUlVGQlN5eEhRVUZIYkVJc1EwRkJUenRCUVVGQkxFVkJRVXRyUWl4RFFVRkZMRWRCUVV0c1FpeERRVU5zUkN4TFFVTkxMRU5CUTBRc1NVRkJUV3RDTEVWQlFVdEtMRVZCUVVjc1kwRkRaRUVzUlVGQlJ5eGpRVUZuUWtrc1JVRkJTeXhIUVVGSGJFSXNRMEZCVHp0QlFVRkJMRVZCUVV0clFpeERRVUZGTEVkQlFVdHNRaXhEUVVOc1JDeERRVU5LTEVOQlEwbGhMRWRCUTBFc1RVRkJUU3hWUVVGVkxFdEJRVXNzVFVGQlRVUXNSVUZCU1N4UFFVRlJMRXRCUVVzc1RVRkJUU3hGUVVOc1JDeE5RVUZOTEZWQlFWVXNTMEZCU3l4TlFVRk5RU3hGUVVGSkxGTkJRVlVzUzBGQlN5eFJRVUZSTEVsQlIzUkVRU3hGUVVGSkxFOUJRVk1zUzBGQlN5eFBRVU5zUWtFc1JVRkJTU3hUUVVGWExFdEJRVXNzVlVGRmVFSXNTMEZCU3l4UlFVRlZMRU5CUVVNc1JVRkRhRUlzUzBGQlN5eFBRVUZUTEVOQlFVTXNSVUZEWml4TFFVRkxMRk5CUVZjc1EwRkJReXhEUVVOeVFpeERRVTFCTEZsQlFXRXNRMEZEVkN4TlFVRlBMRU5CUTBnc1VVRkJVMllzUjBGQllTeExRVUZMTEU5QlFVOHNSVUZCUlN4UlFVTndReXhYUVVGWkxFdEJRVXNzVjBGRGFrSXNUMEZCVVN4TFFVRkxMRTlCUTJJc1UwRkJWU3hMUVVGTExGRkJRMjVDTEVOQlEwb3NRMEZQUVN4RFFVRkRMRkZCUVZGelFpeEZRVUZSUXl4RlFVRlhMRWRCUVU5RExFVkJRVmtzUjBGQlNTeERRVU12UXl4UlFVRlhReXhMUVVGVFNDeEZRVU5vUWl4TlFVRkJTU3hGUVVGUExFdEJRVXNzUzBGQlMwUXNRMEZCU3l4SFFVTXhRaXhOUVVGQlF5eEZRVUZQTEV0QlFVc3NTVUZCU1Vnc1JVRkJWVU1zUTBGQlV5eEZRVU4yUXl4RFFVVkJMRU5CUVVNc1MwRkJTME1zUlVGQlR5eERRVU5VTEU5QlFWRkJMRVZCUVUwc1MwRkJUU3hEUVVOb1FpeEpRVUZMTEZsQlEwUXNTMEZCU3l4WFFVRlhMRWxCUVVsQkxFVkJRVTBzVDBGQlVTeERRVUZETTBJc1JVRkJVVmNzUlVGQlUwTXNTVUZCV1N4RFFVTTFSQ3hKUVVGTlF5eEZRVUZOWml4SFFVRlpOa0lzUTBGQlN5eEZRVU0zUW1Rc1JVRkJTU3hEUVVGRExFZEJRVXRpTEVWQlExWXNTMEZCU3l4UlFVRlJZU3hGUVVGTExHZENRVUZwUWtZc1JVRkJVME1zUTBGQlR5eERRVU4yUkN4RFFVRkRMRVZCUTBRc1MwRkJTeXhSUVVGUkxFdEJRVXRsTEVWQlFVMHNUVUZCVFN4RlFVTTVRaXhMUVVGTExHRkJRV1VzUjBGRGNFSXNUVUZEU2l4SlFVRkxMRmRCUVZrc1EwRkRZaXhKUVVGTlZpeEZRVUZOV1N4SFFVRlhMRXRCUVVzc1VVRkJVeXhMUVVGTExGZEJRVmxHTEVWQlFVOHNTMEZCU3l4UFFVRlBMRVZCUTNKRkxFdEJRVXNzWTBGQlowSXNRMEZCUTFZc1JVRkJTU3hYUVVGWExGVkJRM0pETEV0QlFVc3NVVUZCVVZVc1JVRkJUeXhsUVVGblFpeHBSRUZCYVVRc1JVRkRla1lzUzBGQlN5eFRRVUZUVml4RlFVRkxMRVZCUVVzc1JVRkRjRUlzUzBGQlN5eE5RVU5NTEUxQlFVMHNTMEZCU3l4TFFVTm1MRXRCUVVzc1NVRkJUVUVzUlVGRFdDeExRVUZMTEdGQlFXVXNSMEZEY0VJc1MwRkRTaXhEUVVOQkxFbEJRVXNzYTBKQlEwd3NTVUZCU3l4UlFVTkVMRTFCUTBvc1NVRkJTeXhWUVVOTUxFbEJRVXNzVlVGRFJDeExRVUZMTEZGQlFWRXNTMEZCUzFVc1JVRkJUU3hOUVVGTkxFVkJRemxDTEUxQlEwb3NTVUZCU3l4UlFVRlRMRU5CUTFZc1NVRkJUVWNzUlVGQlRVZ3NSVUZCVFN4UFFVTmFMRWRCUVVkQkxFVkJRVTBzVDBGQlR5eExRVUZMTEV0QlFVc3NWVUZCVlVFc1JVRkJUU3hOUVVGTkxFTkJRVU1zUjBGRGFrUkJMRVZCUVUwc1VVRkRUa2tzUlVGQlVTeEpRVUZKYUVJc1IwRkJaV3BDTEVkQlFWazJRaXhEUVVGTExFVkJRVWNzYlVKQlFXOUNSeXhEUVVGSExFVkJRM2hGTEV0QlFVc3NZMEZCWjBJc1EwRkJReXhMUVVGTExFbEJRek5DTEV0QlFVc3NUMEZCVHl4TFFVRkxReXhEUVVGTExFVkJSWFJDTEV0QlFVc3NTVUZCU1N4UFFVRlBMRXRCUVV0QkxFTkJRVXNzUlVGRE9VSXNTMEZEU2l4RFFVTkJMRWxCUVVzc1ZVRkJWeXhEUVVOYUxFZEJRVWtzUTBGQlF5eExRVUZMTEVsQlFVc3NRMEZEV0N4SlFVRk5SQ3hGUVVGTkxHZEVRVU5hTEV0QlFVc3NUMEZCVHl4TFFVRkxMRWxCUVVsbUxFZEJRV1ZxUWl4SFFVRlpOa0lzUTBGQlN5eEZRVUZITEcxQ1FVRnZRa2NzUTBGQlJ5eERRVUZETEVWQlEyaEdMRXRCUTBvc1EwRkRRU3hMUVVGTExFbEJRVWtzVjBGQlZ5eFBRVUZUTEVkQlF6ZENMRWxCUVUxRkxFVkJRVTFETEVkQlFWZE9MRVZCUVUwc1NVRkJTMEVzUlVGQlRTeFBRVUZUUVN4RlFVRk5MRTlCUVU4c1QwRkJVU3hMUVVGTExFbEJRVWtzVVVGQlVTeFBRVUZSTEV0QlFVc3NUMEZCVHl4RlFVVXpSeXhIUVVSQkxFdEJRVXNzVTBGQlV5eExRVUZMTEVsQlFVc3NSVUZCU1N4RlFVTjRRa3NzUlVGQlNTeFJRVUZUTEVOQlEySXNTVUZCVFdJc1JVRkJTeXhMUVVGTExFbEJRVWtzVVVGRGNFSXNTMEZCU3l4SlFVRkpMRkZCUVZWQkxFVkJRVXNzUjBGQlIwRXNRMEZCUlR0QlFVRkJMRVZCUVV0aExFVkJRVWtzVDBGQlR5eEhRVUZMUVN4RlFVRkpMRTlCUXpGRUxFTkJRMEVzUzBGQlN5eEpRVUZKTEUxQlFVMHNRMEZCUXl4RlFVRkpRU3hGUVVGSkxFOUJRM2hDTEV0QlEwb3NRMEZEUVN4UlFVTkpMRXRCUVVzc1QwRkJUeXhMUVVGTExFbEJRVWxxUWl4SFFVRmxha0lzUjBGQldUWkNMRU5CUVVzc1JVRkJSeXh0UWtGQmIwSXNjVUpCUVhGQ1FTeEZRVUZOTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUTNSSUxFTkJRMG9zUTBGUFFTeERRVUZETEVsQlFVbEdMRVZCUVZjc1IwRkJUME1zUlVGQldTeEhRVUZKTEVOQlEyNURMRWRCUVVrc1MwRkJTeXhKUVVOTUxFdEJRVXNzVTBGQlV5eExRVUZMTEVsQlFVc3NSVUZCU1N4RlFVTTFRaXhOUVVGTkxFdEJRVXNzU1VGRFdDeExRVUZMTEVsQlFVMHNZVUZGVGtRc1JVRkJWU3hEUVVObUxFbEJRVTFUTEVWQlFVOHNUMEZCVHl4UFFVRlBMRU5CUVVVc1dVRkJZU3hMUVVGTExGVkJRVmNzUlVGQlJ5eExRVUZMTEU5QlFVOHNSVUZEYmtWcVFpeEZRVUZOTEVsQlFVbHJRaXhIUVVGVExFOUJRVmRFTEVOQlFVa3NSVUZEY0VNc1MwRkJTeXhqUVVOTUxFdEJRVXNzVVVGQlVWSXNSVUZCVnl4bFFVRm5RaXgxUTBGQmRVTXNSVUZEYmtaVUxFVkJRVWtzVFVGQlVTeERRVUZETEVWQlFVZFRMRVZCUVZkQkxFTkJRVk1zUlVGRGNFTXNTMEZCU3l4VFFVRlRWQ3hGUVVGTExFVkJRVXNzUlVGRGVFSXNUVUZCVFVFc1EwRkRWaXhEUVVOS0xFTkJRMG9zUlVOMFRrRXNTVUZCVFcxQ0xFZEJRVkVzVDBGQlR5eGhRVUZoTEVWQlF6VkNReXhIUVVGUExFOUJRVThzWlVGQlpTeEZRVU0zUWtNc1IwRkJVeXhQUVVGUExHRkJRV0VzUlVFMlFtNURMRk5CUVZORExFZEJRVTFETEVWQlFVdERMRVZCUVZNc1EwRkRja0lzVTBGQlZVUXNSMEZCVDBFc1JVRkJTU3hQUVVGVExHRkJRemxDUVN4RlFVRk5MRU5CUVVVc1RVRkJUMEVzUlVGQlNTeE5RVUZQTEUxQlFVOUJMRVZCUVVrc1MwRkJUU3hIUVVNdlEwVXNSMEZCVHl4UFFVRlBMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVWRHTEVWQlFVdERMRU5CUVU4c1EwRkRNVU1zUTBGTFFVWXNSMEZCVFN4TlFVRlJTQ3hIUVVWa1J5eEhRVUZOTEV0QlFVOUdMRWRCUldKRkxFZEJRVTBzVDBGQlUwUXNSMEZGWmtNc1IwRkJUU3hYUVVGaExFTkJRVU5ETEVWQlFVdEhMRWxCUVZNc1EwRkRPVUlzU1VGQlNVTXNSVUZCVDBvc1JVRkRXQ3hQUVVGWExFTkJRVU5MTEVWQlFVOURMRU5CUVVzc1NVRkJTMGdzUlVGQlRTeERRVU12UWl4SlFVRk5TU3hGUVVGTlNDeEhRVUZCTEZsQlFVRkJMRVZCUVU5RExFZEJRMjVDTEVkQlFVbEZMRWRCUVU4c1ZVRkJWMEVzUlVGRGJFSklMRVZCUVU5SExFVkJRVWtzVFVGQlRVUXNRMEZCU3l4TlFVZDBRaXhQUVVOU0xFTkJRMEVzVDBGQlQwWXNRMEZEV0N4RlFVMUJUQ3hIUVVGTkxHbENRVUZ0UWl4RFFVRkRReXhGUVVGTFJ5eEpRVUZUTEVOQlEzQkRMRWxCUVUxTExFVkJRVk5VTEVkQlFVMHNWMEZCVjBNc1JVRkJTMGNzUlVGQlN5eE5RVUZOTEVWQlFVY3NSVUZCUlN4RFFVRkRMRVZCUTJoRVJTeEZRVUZSUml4RlFVRkxRU3hGUVVGTExFOUJRVk1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZETDBKTkxFVkJRVTlFTEVkQlFVRXNXVUZCUVVFc1JVRkJVMGdzUjBGRGRFSXNSMEZCU1Vrc1IwRkJVU3hWUVVGWFFTeEZRVU51UWl4UFFVRlBRU3hGUVVOWUxFMUJRVTBzU1VGQlNTeE5RVUZOTERaQ1FVRTJRaXhEUVVOcVJDeEZRVU5CTEZOQlFWTlFMRWRCUVU5RExFVkJRVTFETEVWQlFVMUlMRVZCUVZNc1EwRkRha01zU1VGQlNWTXNSVUZCVDFRc1JVRkJVVWNzUlVGQlRVUXNRMEZCU1N4RlFVTTNRaXhIUVVGSkxFOUJRVTlQTEVkQlFWTXNVMEZEYUVJc1QwRkJUMEVzUlVGRFdDeFJRVUZYVEN4SlFVRlRMRU5CUVVNc1RVRkJUeXhQUVVGUExFVkJRVWNzUTBGRGJFTXNTVUZCVFUwc1JVRkJVVkFzUlVGQlMwTXNRMEZCU3l4RlFVTjRRaXhIUVVGSlRTeEhRVUZUTEZWQlFWZEJMRVZCUVU4c1EwRkRNMElzVVVGQlUwTXNSVUZCU1N4RlFVRkhRU3hGUVVGSlJDeEZRVUZOTEUxQlFVMHNUMEZCVVN4RlFVRkZReXhGUVVGSExFTkJRM3BETEVsQlFVMURMRVZCUVV0WUxFZEJRVThzVDBGQlR5eFBRVUZQUXl4RlFVRkxMRTlCUVU4c1EwRkJReXhEUVVGRFJTeEZRVUZQVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVWRFTEVWQlFVMHNUVUZCVFVNc1EwRkJReXhGUVVGSFdDeERRVUZQTEVWQlEyNUdMRWRCUVVrc1QwRkJUMWtzUjBGQlR5eFRRVU5rUkN4RlFVRkpReXhGUVVGTExFMUJRMUlzU1VGQlNVRXNTVUZCVDJwQ0xFZEJRMW9zVDBGQlQwRXNSMEZEUm1sQ0xFbEJRVTltTEV0QlExcGhMRVZCUVUwc1RVRkJUU3hQUVVGUFF5eEZRVUZITEVOQlFVTXNSVUZEZGtKQkxFZEJRVXNzUjBGRllpeERRVU5KTEU5QlFVOUdMRWRCUVZNc1dVRkJZMHdzU1VGQlZTeFJRVU40UTBzc1JVRkJUMEVzUlVGQlMwNHNSVUZCVFVRc1EwRkJTU3hGUVVNNVFpeERRVU5LTEVOQlEwRXNUMEZCVHl4UFFVRlBUeXhIUVVGVExGZEJRV0ZCTEVWQlFVdE9MRVZCUVUxRUxFTkJRVWtzUlVGQlNVOHNRMEZETTBRc1EwTjZSa0VzU1VGQlRVa3NSMEZCVFN4VFFVVk9ReXhIUVVGWExFbEJSVmhETEVkQlFWY3NTVUZGV0VNc1IwRkJVeXhKUVRCQ1ppeFRRVUZUUXl4SFFVRlZReXhGUVVGUkxFTkJRM1pDTEU5QlFWRkJMRVZCUVZFc1EwRkRXaXhMUVVGTFF5eEhRVU5FTEUxQlFVOHNhMEpCUTFnc1MwRkJTME1zUjBGRFJDeE5RVUZQTEZkQlExZ3NTMEZCUzBNc1IwRkRSQ3hOUVVGUExHbENRVU5ZTEV0QlFVdERMRWRCUTBRc1RVRkJUeXhUUVVOWUxFbEJRVXNzVFVGRFJDeE5RVUZQTEZsQlExZ3NTVUZCU3l4TlFVTkVMRTFCUVU4c1ZVRkRXQ3hKUVVGTExFZEJRMHdzU1VGQlN6dEJRVUZCTEVWQlEwd3NTVUZCU3p0QlFVRkJMRVZCUTBRc1RVRkJUeXhWUVVOWUxFbEJRVXNzU1VGRFJDeE5RVUZQTEdWQlExZ3NTVUZCU3l4SlFVTkVMRTFCUVU4c2JVSkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNaMEpCUTFnc1NVRkJTeXhKUVVORUxFMUJRVThzYVVKQlExZ3NTVUZCU3l4SlFVTkVMRTFCUVU4c1pVRkRXQ3hKUVVGTExFbEJRMFFzVFVGQlR5eHBRa0ZEV0N4SlFVRkxMRWxCUTBRc1RVRkJUeXhsUVVOWUxFbEJRVXNzU1VGRFJDeE5RVUZQTEU5QlEyWXNRMEZEUVN4UFFVRlJTaXhGUVVGUExFTkJRVU1zUlVGQlJ5eERRVU5tTEVsQlFVc3NTVUZEVEN4SlFVRkxMRWxCUTBRc1RVRkJUeXhSUVVOWUxFbEJRVXNzU1VGRFJDeE5RVUZQTEZWQlExZ3NTVUZCU3l4SlFVTkVMRTFCUVU4c2FVSkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNVVUZEV0N4SlFVRkxMRWxCUTBRc1RVRkJUeXhUUVVOWUxFbEJRVXNzU1VGRFJDeE5RVUZQTEUxQlExZ3NTVUZCU3l4SlFVTkVMRTFCUVU4c2RVSkJRMWdzU1VGQlN5eEpRVU5FTEUxQlFVOHNkVUpCUTFnc1NVRkJTeXhKUVVOTUxFbEJRVXNzU1VGRFJDeE5RVUZQTEhGQ1FVTm1MRU5CUTBFc1QwRkJUeXhKUVVOWUxFTkRNVUpCTEZOQlFWTkxMRWRCUVZGRExFVkJRVWtzUTBGRGFrSXNUMEZCVVVFc1JVRkJTU3hEUVVOU0xFdEJRVXNzVDBGRFRDeEpRVUZMTEVsQlEwd3NTVUZCU3p0QlFVRkJMRVZCUTB3c1NVRkJTeXhMUVVOTUxFbEJRVXNzU1VGRFJDeE5RVUZQTEVkQlExZ3NVVUZEU1N4TlFVRlBMRVZCUTJZc1EwRkRTaXhEUVVOQkxFbEJRVTFETEVkQlFWa3NTVUZCU1N4SlFVRkpMSGRDUVVGM1FpeEZRVU0xUTBNc1IwRkJWeXhKUVVGSkxFbEJRVWtzYlVaQlFXMUdMRVZCUTNSSFF5eEhRVUZ4UWl4SlFVRkpMRWxCUVVrc1QwRkJUeXhGUVVOd1EwTXNSMEZCY1VJc1NVRkJTU3hKUVVGSk8wRkJRVUVzU1VGQll5eEZRVU16UTBNc1IwRkJiVUpNTEVkQlFVOHNRMEZCUTBFc1IwRkJUVWtzUjBGQmJVSXNTVUZCU1Vvc1EwRkJSU3hGUVdkQ01VUk5MRWRCUVU0c1MwRkJXU3hEUVVOU0xHRkJRV01zUTBGTFZpeExRVUZMTEUxQlFWRXNSMEZOWWl4TFFVRkxMR3RDUVVGdlFpeEhRVTE2UWl4TFFVRkxMR2RDUVVGclFpeEhRVVYyUWl4TFFVRkxMRTlCUVZNc1IwRkxaQ3hMUVVGTExGRkJRVlVzUjBGRlppeExRVUZMTEZWQlFWa3NSVUZMYWtJc1MwRkJTeXhYUVVGaExFVkJSV3hDTEV0QlFVc3NXVUZCWXl4RlFVVnVRaXhMUVVGTExGZEJRV0VzUzBGRmJFSXNTMEZCU3l4TFFVRlBMRXRCUlZvc1MwRkJTeXhKUVVGTkxFTkJRMllzUTBGUFFTeERRVUZETEVsQlFVbERMRVZCUVZGRExFVkJRV0VzUjBGQlR5eERRWEpLY2tNc1NVRkJRVU1zUlVGelNsRXNSMEZCU1VZc1JVRkJVU3hEUVVOU0xFZEJRVWtzVDBGQlQwRXNSMEZCVnl4VFFVTnNRaXhOUVVGTkxGVkJRVlVzZDBKQlFYZENMRVZCUXpWRExFdEJRVXNzVDBGQlV5eExRVUZMTEU5QlFWTXNTMEZCU3l4UFFVRlRRU3hGUVVGVFFTeEZRVU51UkN4TFFVRkxMRmRCUVdFc1NVRkRkRUlzUTBGRFFTeExRVUZMTEUxQlFWRXNRMEZCUTBNc1JVRkRaQ3hKUVVGSlJTeEhRVUZQUkN4RlFVRkJMRXRCUVVzc1QwRkJUQ3hMUVVGQlFTeEZRVUZoTEZOQlEzaENMRXRCUVU5RExFbEJRVk5HTEVkQlFXTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1NVRkRla05GTEVWQlFVOHNUVUZCUVVNc1JVRkJUeXhMUVVGTExGVkJRVlZFTEVOQlFVa3NSVUZEZWtNc1EwRkRRU3hYUVVGWkxFTkJRMUlzU1VGQlNVVXNSVUZCU1N4TFFVRkxMRWxCUTFSYUxFVkJRVXNzUzBGQlN5eFBRVUZQV1N4RFFVRkRMRVZCUTNSQ0xFdEJRVTlhTEVsQlFVOHNTMEZCVDBFc1NVRkJUeXhMUVVONFFrRXNSVUZCU3l4TFFVRkxMRTlCUVU4c1JVRkJSVmtzUTBGQlF5eEZRVU40UWl4TlFVRkpMRU5CUVVOYUxFZEJRVTFCTEVsQlFVOHNTMEZCVDBFc1NVRkJUenRCUVVGQkxFVkJRM0pDTEVkQlExQkJMRWxCUVU4c1MwRkRRU3hMUVVGTExFOUJRVTlaTEVWQlFVa3NRMEZCUXl4SlFVRk5PMEZCUVVFc1JVRkRNMElzUlVGRFdDeERRVU5CTEU5QlFVOURMRVZCUVVjc1EwRkRUaXhQUVVGUExFdEJRVXNzVDBGQlR5eExRVUZMTEVsQlFVMUJMRU5CUVVNc1EwRkRia01zUTBGRFFTeGxRVUZsUXl4RlFVRlJMRU5CUTI1Q0xFbEJRVWxrTEVWQlFVc3NTMEZCU3l4UFFVRlBZeXhEUVVGTkxFVkJRek5DTEVkQlFVa3NTMEZCU3l4WFFVRmhMRVZCUVVjc1EwRkRja0lzU1VGQlNVTXNSVUZCVXl4RlFVTmlMRXRCUVU5bUxFbEJRVThzUzBGRFZrRXNSVUZCU3l4TFFVRkxMRTlCUVU4c1JVRkJSV1VzUlVGQlUwUXNRMEZCVFN4RlFVTjBReXhIUVVGSlpDeEpRVUZQTEV0QlFVMHNRMEZEWWl4SlFVRk5WU3hGUVVGUExFdEJRVXNzVDBGQlQwc3NSVUZCVTBRc1JVRkJVeXhEUVVGRExFVkJRelZETEVkQlFVbEtMRWxCUVZNN1FVRkJRU3hIUVVGVExFTkJRVU5CTEVkQlFWRXNRMEZCUXl4TFFVRkxMRTFCUTJwRExFOUJRVTlKTEVWQlFWTkRMRVZCUVZNc1EwRkRha01zUTBGRFFTeFBRVUZQWml4SlFVRlBPMEZCUVVFc1IwRkJVV1VzUjBGQlZTeExRVUZMTEZsQlFXVXNRMEZCUTJZc1IwRkJUU3hEUVVGRExFdEJRVXNzVFVGRE0wUmpMRVZCUVZORExFVkJRMVFzUlVGRFZpeERRVU5CTEVkQlFVbG1MRWxCUVU4c1MwRkJUMEVzU1VGQlR5eEpRVUZMTEVOQlF6RkNMRWxCUVUxblFpeEZRVUZMTEV0QlFVc3NUMEZCVHl4UFFVRlBSaXhGUVVGUkxFTkJRVU1zUlVGRGRrTXNTVUZCUzBVc1NVRkJUeXhQUVVGVFFTeEpRVUZQTEZGQlFWVnFRaXhIUVVGUkxFdEJRVXNzVDBGQlQyVXNSVUZCVXl4RFFVRkRMRU5CUVVNc1JVRkRha1VzVFVGQlR5eEZRVU5tTEVOQlEwRXNUMEZCVDBFc1EwRkRXQ3hEUVVOQkxGTkJRVlVzUTBGRFRpeEpRVUZKUnl4RlFVRk5MRXRCUVVzc1YwRkxaaXhQUVVwSkxFOUJRVTlCTEVkQlFWRXNWVUZCWVVFc1NVRkJVU3hKUVVGTlFTeEZRVUZOTEV0QlFVc3NUMEZEY2tSQkxFVkJRVTBzUzBGQlN5eFBRVUZQTEZGQlFWRTdRVUZCUVN4RlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVONFF5eExRVUZMTEZkQlFXRkJMRWRCUld4Q1FTeEpRVUZSTEVkQlEwUXNTMEZCU3l4TlFVRlJMRXRCUVVzc1QwRkJUeXhWUVVGVkxFdEJRVXNzUjBGQlJ5eEZRVUZKTEUxQlEzUkVMRXRCUVVzc1QwRkJUMEVzUlVGQlRTeERRVUZETEVsQlFVMHNUMEZEZWtKQkxFZEJRVThzUjBGRFNpeExRVUZMTEU5QlFVOHNWVUZCVlN4TFFVRkxMRWxCUVV0QkxFTkJRVWNzUlVGRE9VTXNRMEZEUVN4VFFVRlRTaXhGUVVGSExFTkJRMUlzVDBGQlR5eExRVUZMTEVsQlFVMUJMRWRCUVVzc1MwRkJTeXhQUVVGUExFMUJRM1pETEVOQlEwRXNVVUZCVVVzc1JVRkJUeXhEUVVOWUxGbEJRVXNzVDBGQlV5eExRVUZMTEU5QlFVOHNWVUZCVlN4TFFVRkxMRWRCUVVjc1JVRkROVU1zUzBGQlN5eEpRVUZOTEVWQlExZ3NTMEZCU3l4WFFVRmhMRXRCUTJ4Q0xFdEJRVXNzUzBGQlQwRXNSVUZEVEN4SlFVTllMRU5CUTBFc1MwRkJTMHdzUlVGQlJ5eERRVU5LTEU5QlFVOHNTMEZCU3l4UFFVRlBMRTlCUVU4c1MwRkJTeXhKUVVGTFFTeERRVUZETEVOQlEzcERMRU5CUTBFc1EwRkJReXhWUVVGVlNDeEZRVUZOTEVOQlEySXNUMEZCVVVFc1JVRkJUU3hEUVVOV0xFbEJRVXNzVTBGRFJDeFBRVUZQTEUxQlFVRkRMRVZCUVU4c1MwRkJTeXhaUVVGWkxFZEJRMjVETEVsQlFVc3NZVUZEUkN4UFFVRlBMRTFCUVVGQkxFVkJRVThzUzBGQlN5eGxRVUZsTEVkQlEzUkRMRWxCUVVzc1kwRkRSQ3hQUVVGUExFMUJRVUZCTEVWQlFVOHNTMEZCU3l4blFrRkJaMElzUjBGRGRrTXNTVUZCU3l4TlFVTkVMRTlCUVU4c1RVRkJRVUVzUlVGQlR5eExRVUZMTEdOQlFXTXNSMEZEY2tNc1NVRkJTeXhQUVVORUxFOUJRVThzVFVGQlFVRXNSVUZCVHl4TFFVRkxMRzlDUVVGdlFpeEhRVU16UXl4SlFVRkxMR2RDUVVORUxFOUJRVThzVFVGQlFVRXNSVUZCVHl4TFFVRkxMR3RDUVVGclFpeEhRVU42UXl4SlFVRkxMR1ZCUTBRc1QwRkJUeXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NhVUpCUVdsQ0xFZEJRM2hETEVsQlFVc3NaVUZEUkN4UFFVRlBMRTFCUVVGQkxFVkJRVThzUzBGQlN5eHBRa0ZCYVVJc1JVRkROVU1zUTBGRFNpeERRVU5CTEVOQlFVTXNZVUZCWXl4RFFVTllMRWxCUVVsUkxFVkJRVThzUzBGQlN5eFJRVUZSTEVWQlEzaENMRWRCUVVsQkxFbEJRVk1zUzBGRFZDeFBRVUZQTEV0QlFVc3NVVUZCVVN4UlFVRlJMRVZCUzJoRExFZEJTa2xCTEVWQlFVc3NRMEZCUXl4SlFVRk5ReXhMUVVOYUxFMUJRVUZVTEVWQlFVOHNTMEZCU3l4VlFVRlZMRU5CUVVNc1IwRkRka0pSTEVWQlFVOUJMRVZCUVVzc1ZVRkJWU3hEUVVGRExFZEJSWFpDUVN4RlFVRkxMRU5CUVVNc1NVRkJUU3hKUVVGTExFTkJRMnBDTEVsQlFVbEZMRVZCUVZOR0xFVkJRVXNzVDBGRFpFY3NSVUZCUzBnc1JVRkJTeXhSUVVGUkxFZEJRVWNzUlVGRGVrSXNTMEZCVDBjc1NVRkJUeXhKUVVGSkxFTkJRMlFzU1VGQlRYUkNMRVZCUVV0dFFpeEZRVUZMUnl4RlFVRkxMRU5CUVVNc1JVRkRkRUlzUjBGQlNYUkNMRWxCUVU4c1MwRkJUMEVzU1VGQlR5eEpRVUZOTEVOQlF6TkNjVUlzUlVGQlUwTXNSVUZCU3l4RlFVTmtMRXRCUTBvc1RVRkZTVUVzUlVGQlMwZ3NSVUZCU3l4UlFVRlJMRWxCUVV0SExFVkJRVXNzUTBGQlF5eERRVVZ5UXl4RFFVTkJMRTlCUVdFc1EwRkRWQ3hKUVVGTmRFSXNSVUZCUzIxQ0xFVkJRVXRGTEVWQlFWTXNRMEZCUXl4RlFVTXhRaXhIUVVGSmNrSXNTVUZCVHl4TFFVRlBRU3hKUVVGUExFbEJRM0pDY1VJc1IwRkJWU3hOUVVWV0xFMUJRMUlzUTBGRFFTeEpRVUZOVWl4SFFVRkxMRTFCUVVGR0xFVkJRVThzUzBGQlN5eFZRVUZWVlN4RFFVRk5MRXRCUVUwc1RVRkJRVllzUlVGQlR5eExRVUZMTEZkQlFWY3NSVUZCU1N4SlFVTjRSU3hoUVVGQlFTeEZRVUZQTEV0QlFVc3NWVUZCVlZFc1JVRkJTeXhQUVVGVFRpeERRVUZETEVkQlEzSkRMRXRCUVVzc1dVRkJXU3hGUVVOV0xGRkJRMWdzUTBGRFFTeEhRVUZKTEV0QlFVc3NWVUZCVlN4RlFVRkhMRU5CUTJ4Q0xFbEJRVTFWTEVWQlFVc3NUVUZCUVZvc1JVRkJUeXhMUVVGTExGZEJRVmNzUlVGQlNTeEhRVU4wUXl4aFFVRkJRU3hGUVVGUExFdEJRVXNzVlVGQlZWRXNSVUZCU3l4UFFVRlRTU3hEUVVGRkxFZEJRM1JETEUxQlFVRmFMRVZCUVU4c1MwRkJTeXhaUVVGWkxFZEJRMnBDTEZGQlExZ3NRMEZEUVN4aFFVRk5ZU3hIUVVORExFMUJRVUZpTEVWQlFVOHNTMEZCU3l4bFFVRmxMRVZCUTNSRExFTkJRMEVzUTBGQlF5eG5Ra0ZCYVVJc1EwRkRaQ3hKUVVGTldDeEZRVUZMTEV0QlFVc3NUMEZCVHl4RFFVRkRMRVZCUTNoQ0xFZEJRVWtzUTBGQlEwRXNSMEZCVFN4RFFVRkRMRXRCUVVzc1RVRkRZaXhQUVVGUExFdEJRVXNzVVVGQlVTeFpRVUZaTEVWQlEzQkRMRWRCUVVsQkxFbEJRVThzUzBGQlQwRXNTVUZCVHl4SlFVRkxMRU5CUXpGQ0xFZEJRVWtzUTBGQlF5eExRVUZMTEU5QlFWTXNRMEZCUXl4TFFVRkxMRk5CUVZNc1EwRkJReXhGUVVNdlFpeFBRVUZQTEV0QlFVc3NVVUZCVVN4WlFVRlpMRVZCUTNCRExFbEJRVTE1UWl4RlFVRkpMRXRCUVVzc1MwRkJTeXhEUVVGRExFVkJRM0pDTEVsQlFVdEJMRWxCUVUwc1QwRkJVMEVzU1VGQlRTeFJRVUZWTVVJc1IwRkJVU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVUZETEVWQlEzUkVMR0ZCUVVGWkxFVkJRVThzUzBGQlN5eFZRVUZWTEVOQlFVTXNSMEZEZGtJc1MwRkJTeXhaUVVGakxFVkJRMjVDTEV0QlFVc3NWMEZCWVN4RlFVTllZeXhKUVVGTkxFMUJRVkVzVFVGQlVTeFJRVVZ5UXl4RFFVTkJMRmxCUVVzc1dVRkJZeXhOUVVGQlpDeEZRVUZQTEV0QlFVc3NWMEZCVnl4RlFVRkxMRWRCUXpORExFdEJRVXNzVjBGQllTeExRVUZMTEdGQlFXVXNRMEZCUTFvc1IwRkJVU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVUZETEVsQlF6ZEVMRXRCUVVzc1YwRkJZU3hMUVVGTExHRkJRM0JDTEUxQlFVRlpMRVZCUVU4c1MwRkJTeXhuUWtGQlowSXNSVUZEZGtNc1EwRkRRU3hEUVVGRExHbENRVUZyUWl4RFFVTm1MRWRCUVUwc1EwRkJRMlVzUlVGQlMwTXNRMEZCUnl4RlFVRkpMRXRCUVVzc1MwRkJTeXhEUVVGRExFVkJRemxDTEVkQlFVa3NRMEZCUTBFc1IwRkJUeXhEUVVGRExFdEJRVXNzVFVGRFpDeFBRVUZQTEV0QlFVc3NVVUZCVVN4aFFVRmhMRVZCUTNKRExFbEJRVXRFTEVsQlFWRXNTMEZCVDBFc1NVRkJVU3hMUVVGUFFTeEpRVUZSTEUxQlFWRXpRaXhIUVVGUk5FSXNRMEZCUnl4RlFVRkhMRU5CUXpkRUxFbEJRVTFrTEVkQlFVc3NUVUZCUVVZc1JVRkJUeXhMUVVGTExGVkJRVlVzUTBGQlF5eExRVUZOTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhYUVVGWExFVkJRVWtzU1VGRGJrVXNXVUZCU3l4WFFVRmhMRXRCUVVzc1dVRkJZeXhGUVVOeVF5eExRVUZMTEdGQlFXVkZMRVZCUTJJc1RVRkJRVVlzUlVGQlR5eExRVUZMTEdkQ1FVRm5RaXhGUVVOMlF5eERRVU5CTEUxQlFVOHNTMEZEV0N4RFFVTkJMRU5CUVVNc1pVRkJaMElzUTBGRFlpeE5RVUZCUVN4RlFVRlBMRXRCUVVzc1YwRkJWeXhGUVVGSkxFZEJRek5DTEVsQlFVMVJMRVZCUVU4c1MwRkJTeXhSUVVGUkxFVkJRekZDTEVkQlFVbEJMRWxCUVZNc1MwRkRWQ3hQUVVGUExFdEJRVXNzVVVGQlVTeExRVUZMTEVWQlF6ZENMRWxCUVVsT0xFVkJRVWtzVFVGQlFVWXNSVUZCVHl4TFFVRkxMR1ZCUVdVc1IwRkRia01zVDBGQlVWRXNSVUZCUzA0c1EwRkJReXhGUVVGSExFTkJRMklzU1VGQlN5eEpRVU5FTEUxQlFVRkdMRVZCUVU4c1MwRkJTeXhWUVVGVlVTeEZRVUZMTEU5QlFWTk9MRU5CUVVNc1IwRkZla01zUzBGQlN5eFBRVU5FTEdGQlFVRkdMRVZCUVU4c1MwRkJTeXhaUVVGWkxFZEJRMnBDTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhsUVVGbExFZEJRM1JETEVsQlFVc3NTVUZEVEN4SlFVRkxMRWxCUTBRc1lVRkJRVUVzUlVGQlR5eExRVUZMTEZWQlFWVXNRMEZCUXl4SFFVTjJRaXhMUVVGTExGRkJRVlVzUjBGRFppeExRVUZMTEZWQlFWa3NSVUZEVml4UFFVTllMRWxCUVVzc1NVRkRUQ3hKUVVGTExFbEJSVVFzWVVGQlFVRXNSVUZCVHl4TFFVRkxMRlZCUVZVc1EwRkJReXhIUVVOb1FpeE5RVU5ZTEVsQlFVc3NTVUZEUkN4aFFVRkJRU3hGUVVGUExFdEJRVXNzVlVGQlZVNHNSVUZCWlN4SFFVTTVRaXhOUVVOWUxFbEJRVXNzU1VGRFRDeEpRVUZMTEVsQlEwUXNUMEZCVHl4TlFVRkJUU3hGUVVGUExFdEJRVXNzYTBKQlFXdENMRWRCUTNwRExFbEJRVXNzU1VGRFRDeEpRVUZMTEVsQlEwUXNUMEZCUVVVc1IwRkJTeXhOUVVGQlJpeEZRVUZQTEV0QlFVc3NkVUpCUVhWQ0xFZEJRM2hEUlN4SFFVRkxMRTFCUVVGR0xFVkJRVThzUzBGQlN5eFhRVUZYTEVWQlFVa3NSMEZEYUVNc1RVRkJRVUVzUlVGQlR5eExRVUZMTEZWQlFWVlJMRVZCUVVzc1QwRkJVMDRzUTBGQlF5eEhRVU55UXl4TlFVRkJSaXhGUVVGUExFdEJRVXNzV1VGQldTeEhRVU5xUWl4TlFVRkJRU3hGUVVGUExFdEJRVXNzYVVKQlFXbENMRWRCUTNoRExGRkJRMGtzVDBGQlR5eE5RVUZCUVN4RlFVRlBMRXRCUVVzc2FVSkJRV2xDTEVWQlF6VkRMRU5CUTBvc1EwRkRRU3hEUVVGRExIRkNRVUZ6UWl4RFFVTnVRaXhKUVVGSmFVSXNSVUZCU1V3c1JVRkRTbElzUlVGQlV5eEhRVU5pTEVkQlEwbGhMRVZCUVVzc1RVRkJRV3BDTEVWQlFVOHNTMEZCU3l4WlFVRlpMRWRCUTNwQ2FVSXNSVUZCU3l4SFFVTk1UQ3hGUVVGTExFMUJRVUZhTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVzc1IwRkRha01zUzBGQlN5eFpRVUZqU1N4RlFVRlRVU3hIUVVjMVFrRXNSVUZCU3l4RlFVVlVRU3hIUVVGTkxFMUJRVUZhTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVrc1UwRkROVUpwUWl4RlFVRkxUQ3hGUVVGTExFZEJRMjVDTEVsQlFVMUtMRVZCUVU4c1MwRkJTeXhSUVVGUkxFVkJRekZDTEVkQlFVbEJMRWxCUVZNc1MwRkRWQ3hQUVVGUExFdEJRVXNzVVVGQlVTeE5RVUZOTEVWQlF6bENMRWxCUVV0S0xFbEJRVmNzU1VGQlRVRXNSVUZCVXl4TFFVRkxMRmxCUVdOSkxFVkJRVXNzUTBGQlF5eEpRVUZOTEV0QlEzcEVTaXhKUVVGWExFbEJRMUJKTEVWQlFVc3NWMEZCVnl4TFFVRkxMRWRCUVV0QkxFVkJRVXNzVjBGQlZ5eExRVUZMTEVsQlEyaEVjRUlzUjBGQlVXOUNMRVZCUVVzc1EwRkJReXhEUVVGRExFbEJUMllzUlVGSWIwSktMRWxCUVZjc1MwRkJTeXhYUVVGaExFZEJRMnBFTEV0QlFVc3NXVUZCWXl4SlFVTnNRa2tzUlVGQlN5eERRVUZETEVsQlFVMHNTMEZCVDBFc1JVRkJTeXhEUVVGRExFbEJRVTBzVFVGSGFFTXNXVUZCU3l4VlFVRlpMRVZCUTJwQ0xFMUJRVTFWTEVkQlEwTXNUVUZCUVd4Q0xFVkJRVThzUzBGQlN5eGxRVUZsTEVkQlJ6RkRMRWxCUVVsRkxFVkJRVWtzUlVGRFVpeExRVUZQVFN4RlFVRkxUaXhEUVVGRExFbEJRVTBzUzBGRFprRXNSMEZCU3l4TlFVRkJSaXhGUVVGUExFdEJRVXNzVlVGQlZTeERRVUZETEVkQlF6VkNSU3hIUVVGTExFMUJRVUZHTEVWQlFVOHNTMEZCU3l4WFFVRlhMRVZCUVVrc1IwRkRhRU1zUzBGQlN5eFJRVUZWTEVkQlIyNUNMRTlCUkVGRkxFZEJRVXNzVFVGQlFVWXNSVUZCVHl4TFFVRkxMR1ZCUVdVc1IwRkRlRUpSTEVWQlFVdE9MRU5CUVVNc1JVRkJSeXhEUVVOaUxFdEJRVXNzVDBGRFJDeE5RVUZQTEU5QlExZ3NTVUZCU3l4SlFVTkVMR0ZCUVVGR0xFVkJRVThzUzBGQlN5eFZRVUZWVVN4RlFVRkxMRTlCUVZOT0xFTkJRVU1zUjBGRE9VSXNUMEZEV0N4SlFVRkxMRWxCUTB3c1NVRkJTeXhKUVVORUxHRkJRVUZHTEVWQlFVOHNTMEZCU3l4VlFVRlZMRU5CUVVNc1IwRkRka0lzUzBGQlN5eFJRVUZWTEVkQlEyWXNTMEZCU3l4WFFVRmhMRVZCUTFnc1QwRkRXQ3hKUVVGTExFbEJRMHdzU1VGQlN5eEpRVU5FTEdGQlFVRkJMRVZCUVU4c1MwRkJTeXhWUVVGVkxFTkJRVU1zUjBGRGRrSXNTMEZCU3l4UlFVRlZMRWRCUTJZc1MwRkJTeXhYUVVGaExFVkJRMWdzUzBGQlN5eFZRVUZaTEU5QlFWTXNUVUZEY2tNc1NVRkJTeXhKUVVORUxHRkJRVUZCTEVWQlFVOHNTMEZCU3l4VlFVRlZUaXhGUVVGbExFZEJRemxDTEU5QlExZ3NTVUZCU3l4SlFVTk1MRWxCUVVzc1NVRkRSQ3haUVVGTExGRkJRVlVzUjBGRFVpeE5RVUZCVFN4RlFVRlBMRXRCUVVzc2EwSkJRV3RDTEVkQlEzcERMRWxCUVVzc1NVRkJTeXhEUVVOT0xFbEJRVTFFTEVWQlFVOHNTMEZCU3l4UFFVRlBMRU5CUVVNc1JVRkRNVUlzUjBGQlNTeExRVUZMTEZOQlFWZFlMRWRCUVZGWExFTkJRVWtzUjBGQlMwRXNTVUZCVXl4SlFVTXhReXhaUVVGTExGRkJRVlVzUjBGRFppeE5RVUZCUXl4RlFVRlBMRXRCUVVzc1ZVRkJWU3hEUVVGRExFZEJRM1pDTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhYUVVGWExFVkJRVWtzUjBGRGNFSXNUVUZGWml4RFFVVkJMRkZCUTBrc1dVRkJTeXhSUVVGVkxFZEJRMUlzVFVGQlFVRXNSVUZCVHl4TFFVRkxMR2xDUVVGcFFpeEZRVU0xUXl4RFFVTktMRU5CUTBFc1EwRkJReXh0UWtGQmIwSXNRMEZEYWtJc1NVRkJUVzFDTEVWQlFWRXNTMEZCU3l4UFFVRlBMRU5CUVVNc1JVRkRka0ppTEVWQlFVMHNTMEZCU3l4UFFVRlBMRkZCUVZGaExFVkJRVThzUzBGQlN5eEpRVUZOTEVOQlFVTXNSVUZEYWtRc1IwRkJTVUVzU1VGQlZTeEpRVU5XTEV0QlFVOWlMRWxCUVZFc1NVRkJUU3hMUVVGTExFOUJRVTlCTEVWQlFVMHNRMEZCUXl4SlFVRk5MRXRCUXpGRFFTeEZRVUZOTEV0QlFVc3NUMEZCVHl4UlFVRlJMRWxCUVV0QkxFVkJRVTBzUTBGQlF5eE5RVWt4UXl4TlFVRlBRU3hKUVVGUkxFbEJRVWtzUTBGRFppeEpRVUZKU2l4RlFVRkpMRVZCUTFJc1MwRkJUeXhMUVVGTExFOUJRVTlKTEVWQlFVMHNSVUZCU1Vvc1EwRkJReXhKUVVGTkxFMUJRMmhEUVN4SFFVRkxMRVZCUTFRc1IwRkJTVUVzUlVGQlNTeEpRVUZOTEVWQlExWXNUVUZEU2trc1JVRkJUU3hMUVVGTExFOUJRVThzVVVGQlVTeEpRVUZMUVN4RlFVRk5MRU5CUVVNc1EwRkRNVU1zUTBGSFNpeEpRVUZOWXl4RlFVRkxMRXRCUVVzc1QwRkJUeXhWUVVGVkxFVkJRVWRrTEVOQlFVY3NSVUZEYmtOWExFVkJRVXRITEVWQlFVY3NVVUZCVVR0QlFVRkJMRVZCUVUwc1MwRkJTeXhIUVVGSExFVkJRMnhETEVkQlFVbElMRWxCUVU4c1IwRkJTU3hEUVVOWUxFdEJRVTlCTEVsQlFVOHNTVUZCU1N4RFFVTmtMRWxCUVUxT0xFVkJRVXNzUzBGQlN5eGxRVUZsVFN4RlFVRkxMRU5CUVVNc1JVRkRja01zUjBGQlNVNHNTVUZCVHl4SFFVTlFMRTFCUTBwTkxFVkJRVXRITEVWQlFVY3NVVUZCVVR0QlFVRkJMRVZCUVUxVUxFTkJRVVVzUTBGRE5VSXNRMEZEU1Uwc1NVRkJUeXhMUVVWUVdDeEZRVUZOVnl4SFFVRk5SeXhGUVVGSFNDeEZRVUZMTEVOQlFVTXNTVUZCVFN4TFFVRlBMRVZCUVVrc1IwRkZPVU1zUTBGRFFTeEhRVUZKV0N4SlFVRlJMRWRCUVVrc1EwRkRXaXhIUVVGSkxFTkJRVU1zUzBGQlN5eE5RVU5PTEU5QlFVOHNTMEZCU3l4UlFVRlJMR1ZCUVdVc1JVRkRka05CTEVWQlFVMHNTMEZCU3l4UFFVRlBMRTFCUTNSQ0xFTkJRMEVzWVVGQlFVNHNSVUZCVHl4TFFVRkxMRmxCUVZsTkxFVkJRVTBzUlVGQlJ5eEZRVUZMTEVkQlF5OUNMRXRCUVVzc1ZVRkJXU3hQUVVGVExFdEJRM0pETEVOQlEwRXNRMEZCUXl4M1FrRkJlVUlzUTBGRGRFSXNTMEZCU3l4clFrRkJiMElzUjBGRGVrSXNTMEZCU3l4blFrRkJhMElzUjBGRGRrSXNTVUZCU1V3c1JVRkJTU3hMUVVGTExFbEJRMklzVDBGQllTeERRVU5VTEVsQlFVMWFMRVZCUVVzc1MwRkJTeXhQUVVGUExFVkJRVVZaTEVOQlFVTXNSVUZETVVJc1IwRkJTVm9zU1VGQlR5eEpRVU5RTEV0QlFVc3NaMEpCUVd0Q0xGZEJRMnhDUVN4RlFVRkxMRXRCUVU5QkxFZEJRVTBzU1VGRGRrSXNTMEZCU3l4clFrRkJiMElzVDBGQlQwRXNRMEZCUlN4RlFVRkpMRlZCUTJwRFFTeEpRVUZQTEVsQlExb3NTMEZEVWl4RFFVTkJMRTlCUVU4c1RVRkJRVmNzUlVGQlR5eExRVUZMTEZWQlFWVllMRWRCUVUxRUxFZEJRVkZETEVOQlFVVXNSMEZCUzBFc1NVRkJUeXhIUVVGSExFVkJRMmhGTEVOQlEwRXNRMEZCUXl4clFrRkJiVUlzUTBGRGFFSXNTVUZCU1RSQ0xFVkJRVXNzUzBGQlN5eEpRVUZOTEVWQlEyaENZaXhGUVVGVExFVkJRMVJtTEVWQlEwcG5ReXhGUVVGTkxGRkJRVk1zUlVGQlNTeExRVUZMTEVsQlFVMW9ReXhGUVVGTExFdEJRVXNzVDBGQlR5eERRVUZETEVWQlFVa3NSVUZCUlN4RlFVTnNSQ3hQUVVGUlFTeEZRVUZKTEVOQlExSXNTVUZCU3l4SlFVTkVaU3hIUVVGVkxFVkJRMVlzVFVGRFNpeEpRVUZMTzBGQlFVRXNSVUZEUkdFc1JVRkJTeXhGUVVOTVlpeEZRVUZUTEVWQlExUXNUVUZEU2l4SlFVRkxMRXRCUVUwc1EwRkRVQ3hKUVVGTlRDeEZRVUZQTEV0QlFVc3NUMEZCVHl4RlFVRkpMRU5CUVVNc1JVRkRPVUlzUjBGQlNTeERRVUZEUVN4SFFVRlJMRU5CUVVNc1MwRkJTeXhOUVVObUxFOUJRVThzUzBGQlN5eFJRVUZSTEdOQlFXTXNSVUZEZEVNc1IwRkJTVUVzU1VGQlV6dEJRVUZCTEVWQlExUXNTMEZEVWl4RFFVTkJMRkZCUTBrc1RVRkJUWE5DTEVOQlEyUXNRMEZGU2l4SFFVRkpMRU5CUVVOb1F5eEhRVUZOTEVOQlFVTXNTMEZCU3l4TlFVTmlMRTlCUVU4c1MwRkJTeXhSUVVGUkxHTkJRV01zUlVGRGRFTXNSMEZCU1dVc1IwRkJWU3hMUVVGTExGZEJRVmtzUTBGRGRrSXNTMEZCU3l4dlFrRkJjMElzUjBGRE0wSXNTMEZCU3l4WFFVRmhRU3hGUVVWc1FpeExRVUZMTEZkQlEwUXNTMEZCU3l4dFFrRkJjVUlzUzBGQlN5eGhRVUZsTEVWQlFVa3NSVUZCU1N4TFFVRkxMRmxCUlc1RkxFVkJRVWNzUTBGRFF5eEpRVUZOVHl4RlFVRkxMRXRCUVVzc1pVRkJaVTBzUlVGQlN5eERRVUZETEVWQlEzSkRMRWRCUVVsT0xFbEJRVThzUjBGRFVDeE5RVU5LVFN4RlFVRkxMRXRCUVVzc1QwRkJUeXhSUVVGUk8wRkJRVUVzUlVGQlRVNHNRMEZCUlN4RFFVTnlReXhQUVVGVFRTeEpRVUZQTEVsQlEyaENMRWRCUVVsQkxFbEJRVThzUjBGQlNTeERRVU5ZTEVkQlFVa3NRMEZCUXl4TFFVRkxMRTFCUTA0c1QwRkJUeXhMUVVGTExGRkJRVkVzWTBGQll5eEZRVU4wUTBFc1JVRkJTeXhMUVVGTExFOUJRVThzVFVGRGNrSXNRMEZEU2l4RFFVZEJMRWxCUVVsb1FpeEZRVUZKWjBJc1JVRkJTeXhGUVVWaUxFbEJSRUUxUWl4RlFVRkxMRXRCUVVzc1QwRkJUMWtzUTBGQlF5eEZRVU5ZV2l4SlFVRlBMRXRCUTFaQkxFVkJRVXNzUzBGQlN5eFBRVUZQTEVWQlFVVlpMRU5CUVVNc1JVRkRlRUlzUjBGQlNWb3NTVUZCVHl4SlFVRk5MRU5CUTJJc1MwRkJUMEVzU1VGQlR5eExRVUZSUVN4SlFVRlBMRXRCUVU5QkxFbEJRVThzVFVGQlVVRXNTVUZCVHp0QlFVRkJMRWRCUTNSRVFTeEZRVUZMTEV0QlFVc3NUMEZCVHl4RlFVRkZXU3hEUVVGRExFVkJRM2hDWjBJc1JVRkJTMmhDTEVWQlFVa3NRMEZEWWl4VFFVTlRMRU5CUVVNc1MwRkJTeXhuUWtGRFdDeEZRVUZITEVOQlEwTXNTVUZCU1N4RlFVRkpaMElzUlVGQlN5eEZRVU5VTlVJc1JVRkJTeXhMUVVGTExFOUJRVThzUTBGQlF5eEZRVU5zUWtFc1NVRkJUeXhQUVVOUVFTeEZRVUZMTEV0QlFVc3NUMEZCVHl4RlFVRkZMRU5CUVVNc1IwRkRlRUlzU1VGQlRXbERMRVZCUVZjc1JVRkRha0lzUzBGQlQycERMRWxCUVU4c1MwRkRWa0VzUlVGQlN5eExRVUZMTEU5QlFVOHNSVUZCUlN4RFFVRkRMRVZCUTNoQ0xFZEJRVWxCTEVsQlFVODdRVUZCUVN4SFFVRlJMRWRCUVVzc1MwRkJTeXhMUVVGUExFVkJRVWtzUlVGQlNXVXNSVUZCVTJ0Q0xFVkJRMnBFVEN4RlFVRkxMRTFCUlV3c1RVRkRVaXhQUVVGVExFbEJSV0lzWVVGQlRVMHNSMEZEVGl4TlFVRkJka0lzUlVGQlR5eExRVUZMTEZsQlFWbHBRaXhGUVVGTExFVkJRVWNzUlVGQlNTeEhRVU0zUWl4TlFVRkJha0lzUlVGQlR5eExRVUZMTEdWQlFXVXNSVUZEZEVNc1EwRkRRU3hEUVVGRExHdENRVUZ0UWl4RFFVTm9RaXhKUVVGTmQwSXNSVUZCVXl4TFFVRkxMRlZCUVZrc1JVRkROVUpzUWl4RlFVRk5MRXRCUVVzc1NVRkJUU3hGUVVOcVFrd3NSVUZCU1N4TFFVRkxMRWxCUVUwc1JVRkRabG9zUlVGRFNpeExRVUZSUVN4RlFVRkxMRXRCUVVzc1QwRkJUeXhGUVVGRldTeERRVUZETEVkQlEzaENMRWRCUVVsYUxFbEJRVThzU1VGQlN5eERRVU5hTEVsQlFVMVZMRVZCUVU4c1MwRkJTeXhQUVVGUFJTeEZRVUZKTEVOQlFVTXNSVUZET1VJc1IwRkJTV0lzUjBGQlVWY3NRMEZCU1N4SFFVRk5lVUlzUjBGQlZXaERMRWRCUVcxQ0xFbEJRVWxQTEVOQlFVa3NSVUZEZGtRc1RVRkRTazhzUlVGQlRVd3NRMEZEVml4VFFVTlRZaXhIUVVGUlF5eERRVUZGTEVWQlFVY3NRMEZEYkVJc1NVRkJTVlVzUlVGQlR5eExRVUZMTEU5QlFVOUZMRVZCUVVrc1EwRkJReXhGUVZVMVFpeEhRVlJKV2l4SlFVRlBMRTlCUTBoVkxFbEJRVk03UVVGQlFTeEhRVU5VUlN4SFFVRkxMRVZCUTB4YUxFVkJRVXM3UVVGQlFTeEZRVU5NVlN4RlFVRlBMRXRCUVVzc1QwRkJUMFVzUlVGQlNTeERRVUZETEVkQlIzaENTeXhGUVVGTlRDeEhRVVZXUml4SlFVRlRMRXRCUVZGNVFpeEhRVUZWYUVNc1IwRkJiVUlzU1VGQlNVOHNRMEZCU1N4RlFVTjBSQ3hOUVVOS0xFZEJRVWxXTEVsQlFVODdRVUZCUVN4RlFVRk5MRU5CUTJJc1NVRkJUWE5DTEVWQlFVc3NTMEZCU3l4bFFVRmxWaXhGUVVGSkxFTkJRVU1zUlVGRGNFTXNSMEZCU1ZVc1NVRkJUeXhIUVVOUUxFMUJRMHBXTEVWQlFVa3NTMEZCU3l4SlFVRkpRU3hGUVVGSFZTeEZRVUZMTEVOQlFVTXNRMEZETVVJc1EwRkRTaXhMUVVOTExFTkJRMFFzUjBGQlNXRXNSMEZCVldoRExFZEJRVzFDTEVsQlFVbElMRU5CUVVVc1JVRkRia01zVFVGRFNtbENMRVZCUVUxTUxFTkJRMVlzUTBGRlNpeE5RVUZKTEVOQlFVTmFMRWRCUVUwc1EwRkJReXhMUVVGTExFMUJRMDRzUzBGQlN5eFJRVUZSTEdOQlFXTXNSMEZEZEVNc1RVRkJUV3RETEVkQlEwNHNUVUZCUVhaQ0xFVkJRVThzUzBGQlN5eFpRVUZaVFN4RlFVRk5MRVZCUVVjc1JVRkJTU3hIUVVNNVFtdENMRVZCUVZNc1QwRkJVeXhOUVVNM1FpeERRVU5CTEVOQlFVTXNWVUZCVlhSQ0xFVkJRVWNzUTBGRFZpeFBRVUZKUVN4RlFVRkpMRWRCUTBvc1RVRkJUU3hMUVVGTExFOUJRVThzVDBGQlR5eExRVUZMTEVsQlFVdEJMRU5CUVVNc1JVRkRjRU1zUzBGQlN5eExRVUZQUVN4RlFVTk1RU3hIUVVWS0xFTkJRMWdzUTBGRFFTeERRVUZETEZsQlFWbEVMRVZCUVVkM1FpeEZRVUZaTEVOQlEzaENMRWxCUVUxWUxFVkJRVWtzUzBGQlN5eFBRVUZQTEUxQlFVMHNTMEZCU3l4SlFVRkxZaXhEUVVGRExFVkJRM1pETEU5QlFVbGhMRWRCUTBFc1RVRkJUVUVzUlVGRFRpeExRVUZMTEV0QlFVOUJMRVZCUVVVc1QwRkRVRUVzUlVGQlJTeFRRVVZLVnl4SlFVTk1MRXRCUVUwc1NVRkRTQ3hGUVVOWUxFTkJRMEVzUTBGQlF5eG5Ra0ZCYVVJc1EwRkRaQ3hQUVVGUkxFdEJRVXNzVDBGQlR5eERRVUZETEVWQlFVY3NRMEZEY0VJc1NVRkJTeXhKUVVORUxFOUJRVk1zVFVGQlFYcENMRVZCUVU4c1MwRkJTeXhSUVVGUkxFdEJRM2hDTEUxQlFVRkJMRVZCUVU4c1MwRkJTeXhYUVVGWExFVkJRVWtzUzBGRE0wSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExHVkJRV1VzU1VGRGNFTXNTVUZCU3l4SlFVTkVMRTlCUVZNc1RVRkJRVUVzUlVGQlR5eExRVUZMTEZWQlFWVk9MRVZCUVdVc1MwRkRla01zVFVGQlFVMHNSVUZCVHl4TFFVRkxMRmRCUVZjc1JVRkJTU3hMUVVNelFpeE5RVUZCUVN4RlFVRlBMRXRCUVVzc1pVRkJaU3hKUVVOd1F5eEpRVUZMTEVsQlEwd3NTVUZCU3l4SlFVTk1MRWxCUVVzc1NVRkJTeXhEUVVOT0xFbEJRVTEzUWl4RlFVRlRMRXRCUVVzc1ZVRkJXU3hGUVVNeFFsSXNSVUZCVFN4TFFVRkxMRTlCUVU4c1EwRkJReXhGUVVONlFpeEhRVUZKTlVJc1IwRkJVVFJDTEVOQlFVY3NSMEZCVFZFc1IwRkJWV2hETEVkQlFXMUNMRWxCUVVsM1FpeERRVUZITEVWQlEzSkVMRTlCUVV0UkxFVkJSVWtzUzBGQlN5eFZRVU5XTEV0QlFVc3NVVUZCVlN4SlFVWm1MRXRCUVVzc1YwRkJZU3hMUVVGTExGbEJRV01zUjBGSGFFTXNUVUZCUVhoQ0xFVkJRVThzUzBGQlN5eFZRVUZWTEVOQlFVTXNTMEZETTBJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEZkQlFWY3NSVUZCU1N4TFFVTXpRaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NaVUZCWlN4SFFVVjRReXhEUVVOS0xFTkJRMEVzVFVGQlR5eEZRVU5ZTEVOQlEwRXNRMEZCUXl4VFFVRlZMRU5CUTFBc1IwRkJTU3hMUVVGTExFOUJRVThzUTBGQlF5eEpRVUZOTEVsQlFVc3NRMEZEZUVJc1NVRkJTVU1zUlVGQlNTeExRVUZMTEVsQlFVMHNSVUZEWmxvc1JVRkJTeXhMUVVGTExFOUJRVTlaTEVOQlFVTXNSVUZEZEVJc1MwRkJUeXhEUVVGRFlpeEhRVUZSUXl4RFFVRkZMRWRCUVV0QkxFbEJRVThzUzBGRE1VSkJMRVZCUVVzc1MwRkJTeXhQUVVGUExFVkJRVVZaTEVOQlFVTXNSVUZEZUVJc1QwRkJUeXhOUVVGQlJDeEZRVUZQTEV0QlFVc3NXVUZCV1Znc1NVRkJUeXhKUVVGTldTeEZRVUZKTEVWQlFVbEJMRVZCUVVjc1JVRkJTeXhGUVVOb1JTeExRVU5MTEVOQlEwUXNTVUZCU1VFc1JVRkJTU3hMUVVGTExFbEJRVTBzUlVGRFpsb3NSVUZCU3l4TFFVRkxMRTlCUVU5WkxFTkJRVU1zUlVGRGRFSXNTMEZCVDFvc1IwRkRTQ3hIUVVGSlJTeEhRVUZUTEVsQlFVbEdMRU5CUVVVc1JVRkRaa0VzUlVGQlN5eExRVUZMTEU5QlFVOHNSVUZCUlZrc1EwRkJReXhWUVVObVdpeEpRVUZQTEV0QlExcERMRWRCUVZVc1NVRkJTU3hMUVVGTExFOUJRVTlYTEVWQlFVa3NRMEZCUXl4RFFVRkRMRWRCUTJoRFdDeEhRVUZWTEVsQlFVa3NTMEZCU3l4UFFVRlBWeXhGUVVGSkxFTkJRVU1zUTBGQlF5eEZRVU5vUTFvc1JVRkJTeXhMUVVGTExFOUJRVkZaTEVkQlFVc3NRMEZCUlN4TlFVZDZRaXhQUVVWU0xFOUJRVThzVFVGQlFVUXNSVUZCVHl4TFFVRkxMRmxCUVZsRExFVkJRVWNzUlVGQlN5eEZRVU16UXl4RFFVTktMRU5CUTBFc1EwRkJReXhoUVVGakxFTkJRMWdzU1VGQlRWb3NSVUZCU3l4TFFVRkxMRTlCUVU4c1MwRkJTeXhIUVVGSExFVkJReTlDTEU5QlFVbEJMRWxCUVU4N1FVRkJRU3hGUVVOQkxFMUJRVUZYTEVWQlFVOHNTMEZCU3l4VlFVRlZMRU5CUVVNc1IwRkRla0pZTEVsQlFVOHNUVUZCVVN4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGTk8wRkJRVUVzUlVGRGFFTXNUVUZCUVZjc1JVRkJUeXhMUVVGTExGVkJRVlVzUTBGQlF5eEhRVVYyUWl4RFFVTm1MRU5CUTBFc1EwRkJReXhYUVVGWE1FSXNSVUZCVnl4RFFVTnVRaXhKUVVGSmVrSXNSVUZCU1N4TFFVRkxMRWxCUVUwc1JVRkRabG9zUlVGRFNpeEhRVU5KUVN4RlFVRkxMRXRCUVVzc1QwRkJUeXhGUVVGRldTeERRVUZETEZGQlEyWmFMRWxCUVU4c1MwRkJVWEZETEVkQlFXRnlReXhKUVVGUExFdEJRelZETEVsQlFVMWhMRVZCUVVsRUxFVkJRVWtzUzBGQlN5eEpRVU51UWl4UFFVRkpReXhGUVVGSkxFbEJRMG9zVFVGQlRTeExRVUZMTEU5QlFVOHNUMEZCVHl4TFFVRkxMRWxCUVV0QkxFTkJRVU1zUlVGRGNFTXNTMEZCU3l4SlFVRk5SQ3hIUVVWU1F5eERRVU5ZTEVOQlEwRXNRMEZCUXl4VlFVRlZlVUlzUlVGQlRTeERRVU5pTEVsQlFVa3hRaXhGUVVGSkxFdEJRVXNzU1VGRFZGb3NSVUZCU3l4TFFVRkxMRTlCUVU5WkxFTkJRVU1zUlVGRGRFSXNTMEZCVHl4RFFVRkRNRUlzUlVGQlMzUkRMRU5CUVVVc1IwRkRXRUVzUlVGQlN5eExRVUZMTEU5QlFVOHNSVUZCUlZrc1EwRkJReXhGUVVONFFpeFBRVUZQTEUxQlFVRkVMRVZCUVU4c1MwRkJTeXhaUVVGWlF5eEZRVUZITEVWQlFVc3NSVUZETTBNc1EwRkRTaXhGUTNKelFrRXNTVUZCVFRKQ0xFZEJRVTRzUzBGQmEwSXNRMEZEWkN4aFFVRmpMRU5CUTFZc1MwRkJTeXhYUVVGaExFTkJRVU1zUlVGTGJrSXNTMEZCU3l4WFFVRmpReXhIUVVGWExFdEJRVXNzVjBGQlZ5eExRVUZMUVN4RFFVRk5MRVZCVFhwRUxFdEJRVXNzVVVGQlYwRXNSMEZCVnl4RFFVTjJRaXhKUVVGSlF5eEZRVUZOTEVWQlEwNURMRVZCUVU4c1MwRkJTeXhYUVVGWExFOUJRek5DTEV0QlFVOUVMRVZCUVUxRExFZEJRVTBzUTBGRFppeEpRVUZOUXl4RlFVRlBSaXhGUVVGTlF5eEhRVUZUTEVWQlEzaENMRXRCUVVzc1YwRkJWME1zUTBGQlJ5eEZRVUZKU0N4RlFVTjJRa01zUlVGQlRVVXNSVUZCVFN4RlFVVmFSQ3hGUVVGUFF5eERRVU5tTEVOQlEwRXNSMEZCU1N4TFFVRkxMRmRCUVZkR0xFTkJRVWNzU1VGQlRVUXNSVUZEZWtJc1RVRkJUeXhEUVVGRkxFdEJRVTFETEVWQlFVMHNSVUZCUnl4SlFVRkxMRU5CUVVVc1JVRkRia01zUjBGQlNVRXNTVUZCVVN4RlFVTlNMRTFCUVU4c1EwRkJSU3hMUVVGTkxFVkJRVWNzU1VGQlMwUXNRMEZCVHl4RlFVTnNReXhKUVVGTlNTeEZRVUZSTEV0QlFVc3NWMEZCVjBnc1JVRkJUU3hEUVVGRExFVkJRM0pETEUxQlFVOHNRMEZCUlN4TFFVRk5RU3hGUVVGTExFbEJRVXRFTEVWQlFWTkpMRVZCUVZFc1EwRkJSU3hEUVVOb1JDeERRVU5LTEVOQlEwb3NSVU5xUTBFc1UwRkJVME1zUjBGQlkwTXNSVUZCVFVNc1JVRkJUU3hEUVVNdlFpeFJRVUZUUXl4RlFVRkpMRVZCUVVkQkxFVkJRVWxHTEVWQlFVc3NUMEZCVVN4RlFVRkZSU3hGUVVNdlFpeEhRVUZKUml4RlFVRkxSU3hEUVVGRExFVkJRVVVzVDBGQlUwUXNSVUZEYWtJc1RVRkJUeXhIUVVObUxFMUJRVThzUlVGRFdDeERRVU5CTEZOQlFWTkZMRWRCUVd0Q1NDeEZRVUZOTEVOQlF6ZENMRkZCUVZORkxFVkJRVWtzUlVGQlIwRXNSVUZCU1VZc1JVRkJTeXhQUVVGUkxFVkJRVVZGTEVWQlF5OUNMRTlCUVZGR0xFVkJRVXRGTEVOQlFVTXNSVUZCUlN4TFFVRk5MRU5CUTJ4Q0xFbEJRVXNzVVVGRFRDeEpRVUZMTEZWQlEwd3NTVUZCU3l4VlFVTkVMRTFCUTBvc1VVRkRTU3hQUVVGUFFTeERRVU5tTEVOQlJVb3NUVUZCVHl4RlFVTllMRU5CUTBFc1UwRkJVMFVzUjBGQldVTXNSVUZCVHl4RFFVTjRRaXhQUVVGUlFTeEhRVUZCTEZsQlFVRkJMRVZCUVU4c1MwRkJUU3hEUVVOcVFpeEpRVUZMTEZGQlEwd3NTVUZCU3l4VFFVTk1MRWxCUVVzc2RVSkJRMHdzU1VGQlN5eDFRa0ZEVEN4SlFVRkxMR3RDUVVORUxFMUJRVThzUjBGRFdDeFJRVU5KTEUxQlFVOHNSVUZEWml4RFFVTktMRU5CUTBFc1UwRkJVME1zUjBGQllVTXNSVUZCVVN4RFFXeERPVUlzU1VGQlFVTXNSVUZ0UTBrc1QwRkJVVVFzUlVGQlR5eExRVUZOTEVOQlEycENMRWxCUVVzc1YwRkRSQ3hQUVVGUFFTeEZRVUZQTEUxQlEyeENMRWxCUVVzc1dVRkJZU3hEUVVOa0xFbEJRVTFGTEVWQlFVdEdMRVZCUVU4c1RVRkJUVUVzUlVGQlR5eE5RVUZOTEU5QlFWTXNRMEZCUXl4RlFVTXZReXhQUVVGUFF5eEZRVUZCUXl4RlFVRkhMRTFCUVVnc1MwRkJRVVFzUlVGQlZVTXNSVUZCUnl4TFFVTjRRaXhEUVVOQkxFbEJRVXNzV1VGRFJDeFBRVUZQUml4RlFVRlBMRTFCUVUxQkxFVkJRVThzVFVGQlRTeFBRVUZUTEVOQlFVTXNSVUZCUlN4TlFVVnFSQ3hSUVVOSkxFMUJRVThzUTBGQlF5eERRVU5vUWl4RFFVTktMRU5CUlVFc1UwRkJVMGNzUjBGQmMwSkRMRVZCUVUwc1EwRnNSSEpETEVsQlFVRklMRVZCYlVSSkxFZEJRVWxITEVWQlFVc3NVMEZCVnl4RlFVTm9RaXhOUVVGUExFTkJRVU1zUlVGRFdpeEpRVUZKVkN4RlFVRkpVeXhGUVVGTExFOUJRMkpETEVWQlFVMHNTMEZCVHl4RlFVRkZWaXhIUVVGTExFZEJRMmhDTEU5QlFWRlRMRVZCUVV0VUxFTkJRVU1zUlVGQlJTeExRVUZOTEVOQlEyeENMRWxCUVVzc1dVRkRUQ3hKUVVGTExHMUNRVU5NTEVsQlFVc3NaMEpCUTB3c1NVRkJTeXhsUVVOTUxFbEJRVXNzVlVGRFJDeE5RVUZOVlN4RFFVTmtMRU5CUlVvc1QwRkJUMG9zUlVGQlFVY3NSVUZCU3l4RlFVRkZWQ3hEUVVGRExFbEJRVklzV1VGQlFVMHNSVUZCVnl4UlFVRlRMRk5CUVZNc1EwRkhjRU1zVDBGQlQwY3NSVUZCU3l4UFFVRlBWQ3hGUVVGSFV5eEZRVUZMTEUxQlFVMHNRMEZEY2tNc1EwRkRRU3hUUVVGVFJTeEhRVUZuUWtNc1JVRkJTU3hEUVVONlFpeEhRVUZKUVN4RlFVRkhMRTFCUVUwc1QwRkJVeXhwUWtGRGJFSXNVVUZCVjB3c1MwRkJUVXNzUlVGQlJ5eE5RVU5hVEN4RlFVRkhMRXRCUTBnc1EwRkJRMEVzUlVGQlJ5eFBRVU5LTEVOQlFVTldMRWRCUVdOVkxFVkJRVWNzVFVGQlR5eHJRa0ZCYTBJc1IwRkRNME1zUTBGQlExWXNSMEZCWTFVc1JVRkJSeXhKUVVGTExHVkJRV1VzU1VGRGJFTkJMRVZCUVVjc1RVRkRTRUVzUlVGQlJ5eE5RVUZSUVN4RlFVRkhMRXRCUTJ4Q0xFOUJRVTlCTEVWQlFVY3NTVUZEVGt3c1IwRkJXVXNzUlVGQlJ5eExRVUZMTEVWQlEyaENRU3hGUVVGSExFMUJRVTBzU1VGRFZDeE5RVUZOTEZWQlFWVXNTMEZCU3l4TlFVRk5RU3hGUVVGSExFMUJRVTBzU1VGQlMwRXNSVUZCUnl4SFFVRkhMRVZCUlM5RFFTeEZRVUZITEUxQlFVMHNTVUZCVFVFc1JVRkJSeXhKUVVkMFFpeE5RVUZOTEZWQlFWVXNTMEZCU3l4TlFVRk5RU3hGUVVGSExFMUJRVTlCTEVWQlFVY3NSMEZCUnl4RlFVTXZReXhQUVVGUFFTeEZRVUZITEVsQlNURkNMRU5CTkVKQkxFbEJRVTFOTEVkQlFVNHNTMEZCWVN4RFFVdFVMRmxCUVZsRExFVkJRVmNzUTBGRmJrSXNTMEZCU3l4VlFVRlpMRWRCUldwQ0xFdEJRVXNzVTBGQlZ5eEhRVVZvUWl4TFFVRkxMRTlCUVZNc1JVRkZaQ3hMUVVGTExFOUJRVk1zUlVGRlpDeExRVUZMTEZWQlFWa3NSMEZGYWtJc1MwRkJTeXhOUVVGUkxFTkJRVU1zUlVGRlpDeExRVUZMTEU5QlFWTXNSMEZGWkN4TFFVRkxMRXRCUVU4c1IwRkZXaXhMUVVGTExFMUJRVkVzU1VGQlNVTXNSMEZEYWtJc1MwRkJTeXhWUVVGWlJDeERRVU55UWl4RFFWTkJMRU5CUVVNc1RVRkJUVVVzUlVGQlVVTXNSVUZCWVN4SFFVRlBMRU5CUXpOQ0xFdEJRVXNzVjBGQllTeExRVUZMTEZOQlFWY3NSMEZEYkVNc1MwRkJTeXhWUVVGVkxFTkJRVU1zUlVGRGNFSXNVVUZCVjBNc1MwRkJWU3hMUVVGTExFMUJRVTBzU1VGQlNVWXNSVUZCVVVNc1EwRkJWU3hGUVVOc1JDeE5RVUZCUlN4RlFVRlBMRXRCUVVzc1MwRkJTMFFzUTBGQlRTeEhRVU4wUWtRc1NVRkRSQ3hOUVVGQlJTeEZRVUZQTEV0QlFVc3NTVUZCU1N4SFFVTjRRaXhEUVVsQkxFTkJRVU1zUzBGQlMwZ3NSVUZCVVN4RFFVVldMRWRCUkVFc1MwRkJTeXhQUVVGVFFTeEZRVU5XTEV0QlFVc3NVMEZCVlN4RFFVTm1MRXRCUVVzc1UwRkJWeXhIUVVOb1FpeE5RVUZCUnl4RlFVRlBMRXRCUVVzc1MwRkJTeXhIUVVOcVFpeExRVUZMTEZGQlFWVklMRVZCUVU4c1QwRkRkRUlzVFVGRFNpeERRVU5CTEVsQlFVMXFRaXhGUVVGUGNVSXNSMEZCVlVvc1EwRkJUU3hGUVVNM1FpeEhRVUZMYWtJc1JVRkxRU3hIUVVGSlFTeEpRVUZUTEZOQlEyUXNTMEZCU3l4VlFVRlpMRWRCUTJwQ0xFdEJRVXNzVTBGQlZ5eEhRVU5vUWl4TFFVRkxMRXRCUVU4c1lVRkZXQ3hEUVVkRUxFOUJSa0VzUzBGQlN5eExRVUZQUVN4RlFVTmFMRTFCUVVGdlFpeEZRVUZQTEV0QlFVc3NTMEZCU3l4SFFVTlVjRUlzUlVGQlRTeERRVU5XTEVsQlFVc3NWVUZEUkN4TFFVRkxMRlZCUVZrc1IwRkRha0lzUzBGQlN5eFBRVUZUTEVWQlExWXNTMEZCU3l4WFFVTk1MRXRCUVVzc1ZVRkJWU3hMUVVGTExFOUJRVk5wUWl4RlFVRlBMRTFCUVUwc1JVRkRPVU1zVFVGRFNpeEpRVUZMTEZGQlEwY3NTMEZCU3l4WFFVRmhRU3hGUVVGUExFTkJRVU1zU1VGQlRTeE5RVU5vUXl4TFFVRkxMRkZCUVZWQkxFVkJRVThzVVVGRE1VSXNUVUZEU2l4SlFVRkxMRzFDUVVOTUxFbEJRVXNzWjBKQlEwd3NTVUZCU3l4bFFVTkhMRXRCUVVzc1dVRkRUQ3hMUVVGTExGRkJRVlZCTEVWQlFVOHNVVUZETVVJc1RVRkRTaXhKUVVGTExGZEJRMHdzU1VGQlN5eHBRa0ZEUkN4UFFVTktMRkZCUTBrc1MwRkJTeXhWUVVGWkxFVkJRM3BDTEVOQlEwRXNTMEZCU3l4UlFVRlZRU3hGUVVGUExFMUJRekZDTEV0QmNrTlhMRU5CUTFBc1NVRkJUVXNzUlVGQlZTeHhRa0ZCY1VKTUxFTkJRVTBzUjBGRE0wTXNUVUZCUVVjc1JVRkJUeXhMUVVGTExFbEJRVWtzUTBGQlJTeExRVUZOTEZGQlFWTXNUMEZCVVN4TFFVRkxMRTlCUVZFc1VVRkJRVVVzUlVGQlV5eFBRVUZCVEN4RFFVRlBMRU5CUVVNc1IwRkRka1VzUzBGQlN5eFJRVUZWUVN4RlFVRlBMRTFCUXpGQ0xFTkJhME5LTEVOQlJVRXNRMEZCUXl4TFFVRk5MRU5CUTBnc1MwRkJUeXhMUVVGTExFMUJRVTBzVDBGQlV5eEhRVU4yUWl4TlFVRkJSeXhGUVVGUExFdEJRVXNzU1VGQlNTeEZRVU40UWl4RFFVTkJMRWxCUVVrc1lVRkJZeXhEUVU5a0xFMUJUbGNzUTBGRFVDeExRVUZOTEV0QlFVc3NTMEZEV0N4UFFVRlJMRXRCUVVzc1QwRkRZaXhQUVVGUkxFdEJRVXNzVDBGRFlpeFBRVUZSTEV0QlFVc3NUVUZEYWtJc1EwRkZTaXhEUVVOQkxFTkJRVU1zVFVGQlR5eERRVU5LTEVsQlFVMUhMRVZCUVUwc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGRGRrSXNSMEZCU1N4TFFVRkxMRTlCUVZNc1dVRkJZeXhEUVVGRFFTeEhRVUZQUVN4RlFVRkpMRTlCUVZNc1YwRkJXU3hEUVVNM1JDeExRVUZQTEV0QlFVc3NUVUZCVFN4UFFVRlRMRWRCUTNaQ0xFMUJRVUZJTEVWQlFVOHNTMEZCU3l4SlFVRkpMRWRCUTNCQ0xFdEJRVXNzVFVGQlRTeExRVUZMTEVOQlExb3NTMEZCVFN4VlFVTk9MRTlCUVZFc1MwRkJTeXhQUVVOaUxFOUJRVkVzUzBGQlN5eE5RVU5xUWl4RFFVRkRMRVZCUTBRc1RVRkRTaXhEUVVOQkxFZEJRVWtzUTBGQlEwY3NSVUZEUkN4UFFVRlBMRTFCUVVGSUxFVkJRVThzUzBGQlN5eFBRVUZQTEVkQlF6bENMRTlCUVZGSExFVkJRVWtzUzBGQlRTeERRVU5rTEVsQlFVc3NWMEZEUkN4UFFVRlBMRTFCUVVGSUxFVkJRVThzUzBGQlN5eFRRVUZUUnl4RFFVRkhMRWRCUTI1RExFbEJRVXNzVVVGRFRDeEpRVUZMTEZOQlEwd3NTVUZCU3l4MVFrRkRUQ3hKUVVGTExIVkNRVU5FTEU5QlFVOHNUVUZCUVVnc1JVRkJUeXhMUVVGTExFOUJRVTlITEVOQlFVY3NSMEZEYWtNc1NVRkJTeXhsUVVORUxFOUJRVThzVFVGQlFVZ3NSVUZCVHl4TFFVRkxMRmxCUVZsSExFTkJRVWNzUjBGRGRFTXNTVUZCU3l4WlFVTkVMRTlCUVU4c1RVRkJRVWdzUlVGQlR5eExRVUZMTEZOQlFWTkhMRU5CUVVjc1IwRkRia01zU1VGQlN5eFpRVU5FTEU5QlFVOHNUVUZCUVVnc1JVRkJUeXhMUVVGTExHTkJRV05ITEVOQlFVY3NSMEZEZUVNc1NVRkJTeXhyUWtGRFJDeFBRVUZQTEUxQlFVRklMRVZCUVU4c1MwRkJTeXhsUVVGbFJ5eERRVUZITEVkQlEzcERMRWxCUVVzc1ZVRkRSQ3hQUVVGUExFMUJRVUZJTEVWQlFVOHNTMEZCU3l4WlFVRlpSeXhEUVVGSExFVkJRekZETEVOQlJVRXNUVUZCUVVnc1JVRkJUeXhMUVVGTExFbEJRVWtzUlVGRGNFSXNRMEZEUVN4TFFVRkxTU3hGUVVGSExFTkJRMG9zVDBGQlR5eExRVUZMTEUxQlFVMHNTMEZCU3l4TlFVRk5MRTlCUVZOQkxFTkJRVU1zUTBGRE0wTXNRMEZEUVN4RFFVRkRMRWxCUVVsRExFVkJRVThzUTBGRFVpeEpRVUZOY2tJc1JVRkJVWEZDTEVkQlFVRXNTMEZCUVVFc1JVRkJVeXhMUVVGTExFMUJRVTBzU1VGQlNTeEZRVVYwUXl4SFFVRkpMRU5CUVVOeVFpeEZRVVZFTEV0QlFVMHNRMEZCUlN4TFFVRk5MRkZCUVZNc1QwRkJVU3hMUVVGTExFOUJRVkVzVDBGQlVTeEhRVUZKTEZGQlJIaERMRFpDUVVOblJDeFZRVVV6UkN4TFFVRkxMRTFCUVUwc1UwRkJWeXhGUVVNelFpeE5RVUZOUVN4TlFVVk1MRU5CUTBRc1NVRkJUVzFDTEVWQlFVMHNTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRlhka0lzVDBGV1NXNUNMRVZCUVUwc1QwRkJVeXhsUVVWbVFTeEZRVUZOTEU5QlFWTXNWMEZCV1cxQ0xFVkJRVTFCTEVWQlFVa3NUMEZCVXl4RlFVVjZRMjVDTEVWQlFVMHNUMEZCVXl4dFFrRkJjVUp0UWl4RlFVRkpMRTlCUVZNc1lVRkZkRVJ1UWl4RlFVRk5MRTlCUVZNc1IwRkZaa0VzUlVGQlRTeFBRVUZUTEcxQ1FVTm1VU3hIUVVGblFsSXNRMEZCU3l4RlFVTnFRbTFDTEVWQlFVa3NTMEZCVFN4RFFVTmtMRWxCUVVzc1YwRkRSRUVzUlVGQlNTeE5RVUZSYmtJc1JVRkRXaXhOUVVOS0xFbEJRVXNzWlVGRFJHMUNMRVZCUVVrc1RVRkJUU3hMUVVGTGJrSXNRMEZCU3l4RlFVTndRaXhOUVVOS0xFbEJRVXNzV1VGQllTeERRVU5rTEVsQlFVMUpMRVZCUVV0bExFVkJRVWtzVFVGQlRVRXNSVUZCU1N4TlFVRk5MRTlCUVZNc1EwRkJReXhGUVVONlF5eEhRVUZKWml4RlFVRkhMRTFCUVU4c1EwRkRWbVVzUlVGQlNTeE5RVUZOTEV0QlFVc3NRMEZCUlN4TlFVRlBMRU5CUVVNc1JVRkJSeXhKUVVGTGJrSXNSVUZCVHl4SlFVRkxMRU5CUVVNc1EwRkJSU3hEUVVGRExFVkJRMnBFTEV0QlFVc3NWVUZCV1N4SFFVTnFRaXhOUVVOS0xGTkJRMU5KTEVWQlFVY3NTVUZEVWtFc1JVRkJSeXhOUVVGUlNpeE5RVVZXTEVOQlEwUXNUMEZCVHl4UFFVRlBTU3hGUVVGSkxFTkJRVVVzU1VGQlMwb3NSVUZCVHl4SlFVRkxMRU5CUVVNc1EwRkJSU3hEUVVGRExFVkJRM3BETEV0QlFVc3NWVUZCV1N4RFFVRkRTU3hGUVVGSExGbEJRM0pDTEUxQlEwb3NRMEZEUVN4TFFVTktMRU5CUTBFc1NVRkJTeXhaUVVGaExFTkJRMlFzU1VGQlRVRXNSVUZCUzJVc1JVRkJTU3hOUVVGTlFTeEZRVUZKTEUxQlFVMHNUMEZCVXl4RFFVRkRMRVZCUTNKRFppeEZRVUZITEUxQlEwaGxMRVZCUVVrc1RVRkJUU3hMUVVGTExFTkJRVVVzVFVGQlR5eERRVUZETEVWQlFVY3NUVUZCVDI1Q0xFTkJRVTBzUTBGQlF5eEZRVVV4UTBrc1JVRkJSeXhOUVVGUlNpeEZRVU5tTEV0QlEwb3NRMEZEUVN4SlFVRkxMR3RDUVVGdFFpeERRVU53UWl4SlFVRk5TU3hGUVVGTFpTeEZRVUZKTEUxQlFVMUJMRVZCUVVrc1RVRkJUU3hQUVVGVExFTkJRVU1zUlVGRGNrTXNRMEZCUTJZc1IwRkJUVUVzUlVGQlJ5eE5RVU5XWlN4RlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRkxFMUJRVThzUTBGQlF5eEZRVUZITEVsQlFVdHVRaXhGUVVGUExFbEJRVXNzUTBGQlF5eERRVUZGTEVOQlFVTXNSVUZETlVOSkxFVkJRVWNzU1VGRFVrRXNSVUZCUnl4TlFVRlJTaXhGUVVWWUxFOUJRVThzVDBGQlQwa3NSVUZCU1N4RFFVRkZMRWxCUVV0S0xFVkJRVThzU1VGQlN5eERRVUZETEVOQlFVVXNRMEZCUXl4RlFVTTNReXhOUVVOS0xFTkJSVUVzVVVGRFNTeE5RVUZCWjBJc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRGFFSXNUVUZCUVVFc1JVRkJUeXhMUVVGTExFbEJRVWxvUWl4RFFVRkxMRVZCUXpkQ0xFTkJRMEVzU1VGQlMyMUNMRVZCUVVrc1QwRkJVeXhaUVVOa1FTeEZRVUZKTEU5QlFWTXNZVUZEWWtFc1JVRkJTU3hQUVVGVExHVkJRMXB1UWl4RlFVRk5MRTlCUVZNc1lVRkJaVUVzUlVGQlRTeFBRVUZUTEdGQlFXTXNRMEZETlVRc1NVRkJUWE5DTEVWQlFVOTBRaXhGUVVGTkxFMUJRVTFCTEVWQlFVMHNUVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkRNME56UWl4SFFVTkJMRU5CUVVOQkxFVkJRVXNzUzBGRFRpeERRVUZEUVN4RlFVRkxMRTlCUTA1QkxFVkJRVXNzVFVGQlRTeFBRVUZUTEVkQlEzQkNlRUlzUjBGQmEwSjNRaXhGUVVGTExFdEJRVXNzU1VGQlRTeExRVU5xUTNSQ0xFVkJRVTBzVTBGQlZ5eEhRVU5rYzBJc1JVRkJTeXhOUVVGTkxFMUJRVTFETEVkQlFVMUJMRVZCUVVjc1QwRkJVeXhYUVVGaFFTeEZRVUZITEU5QlFWTjJRaXhGUVVGTkxFMUJRVTBzUzBGRGVFVnRRaXhGUVVGSkxFOUJRVk1zVjBGRFlrRXNSVUZCU1N4SlFVRk5SeXhGUVVGTExFMUJSV1pJTEVWQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVVc1RVRkJUMGNzUlVGQlN5eExRVUZOTEVOQlFVTXNSVUZEZUVOMFFpeEZRVUZOTEUxQlFVMHNUMEZCVHl4SFFVRkpMRU5CUVVNc1JVRkZhRU1zUTBGRFNpeERRVU5LTEVOQlEwRXNRMEZCUXl4UlFVRlRMRU5CUTA0c1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEdsQ1FVTkVMRXRCUVUwc1EwRkJSU3hMUVVGTkxGbEJRV0VzVDBGQlVTeExRVUZMTEU5QlFWRXNUMEZCVVN4TFFVRkxMRTFCUVU4c1JVRkRjRVVzVDBGRFNpeEpRVUZMTEd0Q1FVTk1MRWxCUVVzc1VVRkRUQ3hKUVVGTExGVkJRMHdzU1VGQlN5eFZRVU5FTEUxQlFVMHNTMEZCU3l4WlFVTllMRTlCUTBvc1NVRkJTeXhYUVVOTUxFbEJRVXNzV1VGQllTeERRVU5rTEVsQlFVMTNRaXhGUVVGTkxFTkJRMUlzUzBGQlRTeFhRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTFCUVU4c1EwRkJReXhEUVVOYUxFVkJRMGtzUzBGQlN5eFBRVUZUTEdGQlEyUkJMRVZCUVVrc1RVRkJUU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVU51UXl4TFFVRkxMRTFCUVUwc1MwRkJTMEVzUTBGQlJ5eEZRVU51UWl4TlFVTktMRU5CUTBvc1EwRkRRU3hMUVVGTkxFTkJRMFlzUzBGQlRTeFJRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRkZCUVZNc1kwRkJZeXhMUVVGTExFbEJRVWtzZDBKQlEyaERMRTlCUVZFc1MwRkJTeXhOUVVOcVFpeERRVU5LTEVOQlEwRXNRMEZCUXl4VFFVRlRRU3hGUVVGTExFTkJRMWdzUjBGQlNVRXNSVUZCU1N4TlFVTktMRTlCUVU4c1RVRkJRVklzUlVGQlR5eExRVUZMTEZGQlFWRlJMRU5CUVVjc1IwRkRiRU1zVDBGQlVTeExRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRmxCUVdFc1EwRkRWakZDTEVkQlFXdENNRUlzUlVGQlNTeExRVUZMTEVsQlFVMHNTVUZEYWtNc1RVRkJRVklzUlVGQlR5eExRVUZMTEVsQlFVa3NSMEZEYUVJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEV0QlFVc3NTVUZIYWtKUkxFVkJRVWtzVFVGQlRTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVTnVReXhOUVVOS0xFTkJRMEVzU1VGQlN5eFRRVU5NTEVsQlFVc3NUVUZEVEN4SlFVRkxMRkZCUTB3c1NVRkJTeXhWUVVOTUxFbEJRVXNzVlVGRFJFRXNSVUZCU1N4TlFVRk5MRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJReTlDTEUxQlExSXNRMEZEUVN4SlFVRk5ReXhGUVVGTExFdEJRVXNzWjBKQlFXZENSQ3hEUVVGSExFVkJReTlDUXl4RlFVTkJMRXRCUVVzc1RVRkJUU3hMUVVGTFFTeERRVUZGTEVWQlJXeENMRXRCUVUwc1EwRkRSaXhMUVVGTkxGRkJRMDRzVDBGQlVTeExRVUZMTEU5QlEySXNVVUZCVXl4alFVRmpMRXRCUVVzc1NVRkJTU3d3UWtGRGFFTXNUMEZCVVN4TFFVRkxMRTFCUTJwQ0xFTkJSVklzUTBGRFFTeERRVUZETEU5QlFVOURMRVZCUVZFc1EwRkRXaXhIUVVGSkxFdEJRVXNzVDBGQlV5eG5Ra0ZCYVVJc1EwRkRMMElzU1VGQlRYQkNMRVZCUVU5TUxFZEJRV0VzUzBGQlN5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVTm9RekJDTEVWQlFWRjBRaXhIUVVGelFrTXNRMEZCU1N4RlFVTndRM05DTEVWQlEwRkdMRVZCUVU4c1MwRkRVRVVzUlVGQlRVWXNSVUZCVHl4SlFVTmlSU3hGUVVGSkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlEzcENMRTlCUVU5R0xFVkJRVThzUzBGSFpFVXNSVUZCVFN4RFFVRkRMRXRCUVVzc1YwRkJWeXhGUVVNelFpeEpRVUZOUXl4RlFVRk5MRU5CUTFJc1MwRkJUU3haUVVOT0xFOUJRVkZJTEVWQlFVOHNUMEZEWml4UFFVRlJRU3hGUVVGUExFOUJRMllzVFVGQlR5eERRVUZETEVOQlFVVXNUVUZCUVVNc1JVRkJUeXhKUVVGTFJDeEZRVUZSTEVsQlFVRkZMRU5CUVVrc1EwRkJReXhEUVVOMlF5eEZRVU5CTEV0QlFVc3NWVUZCV1N4SFFVTnFRaXhMUVVGTExFMUJRVTBzUzBGQlN5eE5RVUZOTEU5QlFWTXNRMEZCUXl4RlFVRkpReXhEUVVONFF5eE5RVVZKTEUxQlFVRmlMRVZCUVU4c1MwRkJTeXhSUVVGUlZTeERRVUZOTEVWQlEyeERMRU5CUTBFc1EwRkJReXhaUVVGWlFTeEZRVUZSTEVOQlEycENMRTlCUVZFc1MwRkJTeXhMUVVGTkxFTkJRMllzU1VGQlN5eFJRVU5NTEVsQlFVc3NWVUZEVEN4SlFVRkxMRlZCUTBSQkxFVkJRVThzVFVGQlRTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVTnNReXhQUVVOS0xFbEJRVXNzVTBGTFJDeEhRVXBCUVN4RlFVRlBMRTlCUVZNc1MwRkJTeXhQUVVWeVFpeExRVUZMTEZWQlFWa3NSMEZEYWtJc1MwRkJTeXhQUVVGVExFVkJRMVlzUzBGQlN5eFZRVUZYTEVOQlEyaENMRWxCUVVsSkxFVkJRVXNzUzBGQlN5eFBRVUZQTEZGQlFWRTdRVUZCUVN4RFFVRkpMRVZCUVVrc1JVRkRja01zUzBGQlQwRXNTVUZCVHl4SFFVTldMRXRCUVVzc1ZVRkJWU3hMUVVGTExFOUJRVk5CTEVOQlFVVXNSVUZETDBKQkxFVkJRVXNzUzBGQlN5eFBRVUZQTEZGQlFWRTdRVUZCUVN4RlFVRk5RU3hEUVVGRkxFVkJRVWtzUTBGRk4wTXNRMEZEUVN4TlFVRkJaQ3hGUVVGUExFdEJRVXNzU1VGQlNTeEhRVU5vUWl4TlFVVktMRkZCUTBrc1RVRkJRVUVzUlVGQlR5eExRVUZMTEVsQlFVa3NSMEZEYUVJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEV0QlFVc3NSVUZEZWtJc1EwRkRTaXhEUVVOQkxFTkJRVU1zVTBGQlUyRXNSVUZCU3l4RFFYUmtia0lzU1VGQlFURkNMRVZCZFdSUkxFbEJRVTFETEVWQlFVdDVRaXhGUVVGSkxFMUJRVTFCTEVWQlFVa3NUVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkZla01zVDBGQlVTeExRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRlZCUlVRc1IwRkVRU3hMUVVGTExGVkJRVmtzUjBGRFlucENMRVZCUVVjc1RVRkJUeXhEUVVOV0xFbEJRVTB5UWl4RlFVRk5MRkZCUVZNelFpeEZRVUZITEUxQlFWRkJMRVZCUVVjc1RVRkJUU3hKUVVGTkxFOUJRM3BEYTBJc1JVRkJUeXhOUVVGTkxGRkJRVkZUTEVOQlFVY3NSVUZCU1VFc1JVRkJTVUVzUlVGQlNTeFBRVUZUTEVOQlFVTXNSVUZCU1N4UlFVTndSRlFzUjBGQlFTeFpRVUZCUVN4RlFVRk5MRkZCUVZNc1ZVRkRabE1zUjBGQlFTeE5RVUZCUVN4RlFVRkxMRXRCUVVzc1MwRkJTeXhoUVVWbVJpeEZRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkZMRTFCUVU4c1EwRkJReXhMUVVGTExGZEJRVmNzUTBGQlJTeERRVUZETEVOQlEzQkVMRTFCUTFONlFpeEZRVUZITEVsQlExSkJMRVZCUVVjc1NVRkJTU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVWMxUWtFc1JVRkJSeXhOUVVGTkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlJXeERMRTlCUTBvc1NVRkJTeXhSUVVOTUxFbEJRVXNzVlVGRFJDeEhRVUZKUVN4RlFVRkhMRTFCUTBoNVFpeEZRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkZMRTFCUVU4c1EwRkJReXhMUVVGTExGZEJRVmNzUTBGQlJTeERRVUZETEZWQlJYWkRla0lzUlVGQlJ5eEpRVU5TUVN4RlFVRkhMRWxCUVVrc1MwRkJTeXhMUVVGTExGZEJRVmNzVFVGRk0wSXNRMEZEUkN4SFFVRkpMRXRCUVVzc2EwSkJRV3RDUVN4RlFVRkhMRTFCUVU5NVFpeEZRVUZKTEUxQlFVMHNSVUZCUnl4RFFVTTVReXhKUVVGTmRrSXNSVUZCVDNWQ0xFVkJRVWtzVFVGQlRVRXNSVUZCU1N4TlFVRk5MRTlCUVZNc1EwRkJReXhGUVVOeVEwVXNSMEZCVFRWQ0xFVkJRVUZITEVkQlFVRXNXVUZCUVVFc1JVRkJUU3hSUVVGT0xGbEJRVUZJTEVWQlFXRXNTVUZEZWtJc1IwRkJTU3hOUVVGTkxGRkJRVkUwUWl4RFFVRkhMRVZCUVVjc1EwRkRjRUlzVFVGQlRTeFZRVUZWTEV0QlFVc3NUVUZCVFVFc1JVRkJTek5DTEVWQlFVY3NTMEZCU3l4RlFVTjRRekpDTEVWQlFVa3NTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkRla0pHTEVWQlFVa3NUVUZCVFN4SlFVRkpMRVZCUTJRc1RVRkRTaXhEUVVOS0xFTkJRMEY2UWl4RlFVRkhMRTFCUVUwc1MwRkJTeXhMUVVGTExGZEJRVmNzUTBGRGJFTXNRMEZEUVN4TlFVTlNMRU5CUTBFc1IwRkJTU3hMUVVGTExGRkJRVlY1UWl4RlFVRkpMRTlCUVZFc1EwRkRNMElzU1VGQlRVY3NSVUZCWXl4RFFVRkRMRXRCUVVzc1YwRkJZU3hMUVVGTExGTkJRVmRJTEVWQlFVa3NUMEZEY2tSSkxFVkJRV0ZFTEVsQlEyUTFRaXhGUVVGSExFdEJRVTlCTEVWQlFVY3NZMEZEWkN4TFFVRkxMRTlCUVZNc1pVRkZaSFZDTEVWQlFWRXNRMEZCUXl4RlFVTmlMRWRCUVVsTkxFZEJRV00zUWl4RlFVRkhMRXRCUVU4c1EwRkJRMEVzUlVGQlJ5eE5RVUZQTEVOQlEyNURMRWxCUVUwd1FpeEZRVUZMTEVOQlFVTXNSVUZEV2l4UlFVRlRha01zUlVGQlNTeEZRVUZIUVN4RlFVRkpUeXhGUVVGSExFbEJRVWtzVDBGQlVTeEZRVUZGVUN4RlFVRkhMRU5CUTNCRExFbEJRVTB3UWl4RlFVRkxia0lzUlVGQlJ5eEpRVUZKVUN4RFFVRkRMRVZCUTI1Q0xFOUJRVkV3UWl4RlFVRkhMRXRCUVUwc1EwRkRZaXhKUVVGTExGVkJRMFJQTEVWQlFVY3NTMEZCUzJwRExFTkJRVU1zUlVGRFZDeE5RVU5LTEVsQlFVc3NVVUZEUkN4TlFVTktMRWxCUVVzc1ZVRkRSekJDTEVWQlFVY3NUMEZCVTAwc1JVRkJTU3hUUVVOb1FrTXNSVUZCUnl4UFFVRlRMRWRCUTJoQ0xFMUJRMG9zVVVGRFNVRXNSVUZCUnl4UFFVRlRMRU5CUTNCQ0xFTkJRMG9zUTBGRFNVRXNSVUZCUnl4UlFVRlZMRWxCUTJKSUxFVkJRVkYyUWl4RlFVRkhMRWxCUVVrc1QwRkJUekJDTEVWQlFVY3NRMEZCUXl4RFFVRkRMRVZCUTI1RExFTkJRMEVzVDBGQlVTeExRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRk5CUTB3c1NVRkJTeXhOUVVOSFJ5eEhRVUZqTjBJc1JVRkJSeXhQUVVOcVFuVkNMRVZCUVUwc1MwRkJTeXhMUVVGTExGZEJRVmNzUlVGRE0wSkZMRVZCUVVrc1RVRkJUU3hMUVVGTExFTkJRVVVzVFVGQlFVWXNRMEZCVFN4RFFVRkRMRVZCUTNoQ0xFdEJRVXNzVlVGQldTeEpRVVZhZGtJc1JVRkJSeXhKUVVOU1FTeEZRVUZITEVsQlFVa3NTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkhOVUpCTEVWQlFVY3NUVUZCVFN4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVWc1F5eFBRVU5LTEVsQlFVc3NiVUpCUTBjc1EwRkJRMEVzUlVGQlJ5eExRVUZQTEVOQlFVTkJMRVZCUVVjc1lVRkRaa0VzUlVGQlJ5eE5RVUZOTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUXpsQ1FTeEZRVUZITEZsQlFXTXNTVUZGV2paQ0xFZEJRV00zUWl4RlFVRkhMRTlCUTNSQ2RVSXNSVUZCVFN4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVNelFrVXNSVUZCU1N4TlFVRk5MRXRCUVVzc1EwRkJSU3hOUVVGQlJpeEZRVUZQTEZsQlFXRXNSVUZCU3l4RFFVRkRMRWRCUnpORExFdEJRVXNzVFVGQlRTeExRVUZMTEVOQlExb3NTMEZCVFN4WlFVTk9MRTlCUVZFc1MwRkJTeXhQUVVOaUxFOUJRVkVzUzBGQlN5eFBRVU5pTEUxQlFVOHNRMEZCUXl4RFFVRkZMRTFCUVU4c1EwRkJReXhMUVVGTExGZEJRVmNzUlVGQlJ5eFpRVUZoTEVWQlFVc3NRMEZCUXl4RFFVTTFSQ3hEUVVGRExFVkJSVXdzUzBGQlN5eFZRVUZaTEVkQlEycENMRTlCUTBvc1NVRkJTeXhuUWtGRFJDeEhRVUZKZGtJc1JVRkJSeXhaUVVOSUxFZEJRVXRCTEVWQlFVY3NTVUZqU0N4SFFVRkpRU3hGUVVGSExFMUJRMUo1UWl4RlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRkxFMUJRVThzUTBGQlF5eEZRVUZITEVsQlFVc3NTMEZCVFN4SlFVRkxMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVVVzUTBGQlF5eFZRVVV6Ukc1RExFZEJRV05WTEVWQlFVY3NTVUZCU3l4bFFVRmxMRVZCUXpGRExFdEJRVXNzVFVGQlRTeExRVUZMTEVOQlExb3NTMEZCVFN4WlFVTk9MRTlCUVZFc1MwRkJTeXhQUVVOaUxFOUJRVkVzUzBGQlN5eFBRVU5pTEUxQlFVOHNRMEZCUXl4RFFVRkZMRTFCUVVGMVFpeEZRVUZQTEVsQlFVc3NTMEZCVFN4SlFVRkxMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVVVzUTBGQlF5eERRVU42UkN4RFFVRkRMRlZCUlVrMVFpeEhRVUZaU3l4RlFVRkhMRWRCUVVjc1IwRkRka0lzUTBGQlExWXNSMEZCWTFVc1JVRkJSeXhKUVVGTExGTkJRVk1zUlVGQlJ5eERRVU51UXl4SlFVRk5kVUlzUlVGQlVYUkNMRWRCUVhOQ1JDeEZRVUZITEV0QlFVc3NSVUZEZEVNNFFpeEZRVUZOT1VJc1JVRkJSeXhKUVVOVWQwSXNSVUZCVFhoQ0xFVkJRVWNzU1VGRFpuZENMRVZCUVVrc1MwRkJTeXhMUVVGTExGZEJRVmNzUlVGRmVrSXNUMEZCVDNoQ0xFVkJRVWNzU1VGRlZpeFBRVUZQUVN4RlFVRkhMRWxCUTFZc1MwRkJTeXhOUVVGTkxFdEJRVXNzUTBGRFdpeExRVUZOTEZsQlEwNHNUMEZCVVN4TFFVRkxMRTlCUTJJc1QwRkJVU3hMUVVGTExFOUJRMklzVFVGQlR5eERRVUZETEVOQlFVVXNUVUZCUVhWQ0xFVkJRVThzU1VGQlFVOHNSVUZCU3l4SlFVRkJUaXhEUVVGSkxFTkJRVU1zUTBGREwwSXNRMEZCUXl4RFFVTk1MRTFCUTFORUxFVkJRVTBzVDBGQlV5eEZRVVZ3UW5aQ0xFVkJRVWNzU1VGQlRVRXNSVUZCUnl4SlFVRkpMRTlCUVU5MVFpeEZRVUZQTEV0QlFVc3NWMEZCVnl4RlFVYzVRM1pDTEVWQlFVY3NTVUZCU1N4TFFVRkxMRXRCUVVzc1YwRkJWeXhWUVRsRGVFSldMRWRCUVdOVkxFVkJRVWNzVFVGQlR5eFRRVUZUTEVWQlEycERMRTlCUVU4c1QwRkJUMEVzUlVGQlNTeERRVUZGTEVsQlFVc3NTMEZCVFN4SlFVRkxMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVVVzUTBGQlF5eE5RVVYyUkN4RFFVTkVMRWxCUVUxMVFpeEZRVUZSZEVJc1IwRkJjMEpFTEVWQlFVY3NTMEZCU3l4RlFVTTFReXhMUVVGTExFMUJRVTBzUzBGQlN5eERRVU5hTEV0QlFVMHNXVUZEVGl4UFFVRlJMRXRCUVVzc1QwRkRZaXhQUVVGUkxFdEJRVXNzVDBGRFlpeE5RVUZQTEVOQlFVTXNRMEZCUlN4TlFVRkJkVUlzUlVGQlR5eEpRVUZMTEV0QlFVMHNTVUZCU3l4RFFVRkRMRXRCUVVzc1YwRkJWeXhEUVVGRkxFTkJRVU1zUTBGRGVrUXNRMEZCUXl4RFFVTk1MRTFCZFVORGRrSXNSVUZCUnl4SlFVZERRU3hGUVVGSExFOUJRVk0yUWl4RlFVTnFRa29zUlVGQlNTeE5RVUZOTEV0QlFVc3NRMEZCUlN4TlFVRkJSaXhGUVVGUExFbEJRVXNzUzBGQlRTeEpRVUZMTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhGUVVWMlJHcERMRWRCUVdOVkxFVkJRVWNzU1VGQlN5eGxRVUZsTEVWQlF6RkRMRXRCUVVzc1RVRkJUU3hMUVVGTExFTkJRMW9zUzBGQlRTeFpRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhQUVVOaUxFMUJRVThzUTBGQlF5eERRVUZGTEUxQlFVOHNRMEZCUXl4RlFVRkhMRWxCUVVzc1MwRkJUU3hKUVVGTExFTkJRVU1zUzBGQlN5eFhRVUZYTEVOQlFVVXNRMEZCUXl4RFFVTTNSQ3hEUVVGRExFVkJSMFJCTEVWQlFVY3NTVUZCU1N4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVdRMVFpeFBRVUZQTEU5QlFVOUJMRVZCUVVrc1EwRkJSU3hKUVVGTExFdEJRVTBzU1VGQlN5eERRVUZETEV0QlFVc3NWMEZCVnl4RFFVRkZMRU5CUVVNc1JVRnBRbWhGTEV0QlFVc3NWVUZCV1N4SFFVTnFRaXhQUVVOS0xFbEJRVXNzVVVGRFRDeEpRVUZMTEZOQlEwd3NTVUZCU3l4MVFrRkRUQ3hKUVVGTExIVkNRVUYzUWl4RFFVTjZRaXhKUVVGTkswSXNSVUZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhKUVVGSkxFVkJRMmhEUml4SFFVRmpOMElzUlVGQlJ5eFBRVU5xUW5sQ0xFVkJRVWtzVFVGQlRTeExRVUZMTEVOQlFVVXNUVUZCUVVZc1JVRkJUeXhKUVVGTFVTeEZRVUZKTEVsQlFVc3NRMEZCUXl4RFFVRkZMRU5CUVVNc1JVRkRNVU1zUzBGQlN5eFZRVUZaTEVsQlJWb3ZRaXhGUVVGSExFbEJRMUlzUzBGQlN5eE5RVUZOTEV0QlFVc3JRaXhEUVVGRkxFZEJSMnhDTEU5QlFVOHNUMEZCVHk5Q0xFVkJRVWtzUTBGQlJTeEpRVUZMSzBJc1JVRkJTU3hKUVVGTExFTkJRVU1zUTBGQlJTeERRVUZETEVWQlEzUkRMRXRCUVVzc1ZVRkJXU3hKUVVWeVFpeE5RVU5LTEVOQlEwRXNVVUZCVXl4RFFVTk1MRWxCUVUxV0xFVkJRVXNzUzBGQlN5eG5Ra0ZCWjBKSkxFTkJRVWNzUlVGRGJrTXNSMEZCU1Vvc1JVRkJTU3hEUVVOQlR5eEhRVUZsVUN4RlFVRkhMRTlCUVZNc1lVRkRNMEpKTEVWQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVVc1RVRkJRVVlzUTBGQlRTeERRVUZETEVWQlJUVkNMRXRCUVVzc1RVRkJUU3hMUVVGTFJpeERRVUZGTEVWQlEyeENMRTFCUTBvc1EwRkRTaXhEUVVOS0xFTkJRMG9zUTBGRFFTeE5RVUZCVkN4RlFVRlBMRXRCUVVzc1NVRkJTU3hIUVVOb1FpeE5RVUZCUVN4RlFVRlBMRXRCUVVzc1MwRkJTeXhGUVVOeVFpeERRVU5CTEVOQlFVTXNZMEZCWTI5Q0xFVkJRVXNzUTBFeGNVSjRRaXhKUVVGQmFrTXNSVUV5Y1VKUkxFbEJRVTFETEVWQlFVdG5ReXhGUVVGSkxFMUJRVTFCTEVWQlFVa3NUVUZCVFN4UFFVRlRMRU5CUVVNc1JVRkRla01zVDBGQlVTeExRVUZMTEV0QlFVMHNRMEZEWml4SlFVRkxMRlZCUTBRc1IwRkJTV2hETEVWQlFVY3NUVUZCVHl4RFFVTldMRWxCUVUweVFpeEZRVUZOTEZGQlFWTXpRaXhGUVVGSExFMUJRVkZCTEVWQlFVY3NUVUZCVFN4SlFVRk5MRTlCUTNwRGEwSXNSVUZCVHl4TlFVRk5MRkZCUVZGVExFTkJRVWNzUlVGQlNVRXNSVUZCU1VFc1JVRkJTU3hQUVVGVExFTkJRVU1zUlVGQlNTeFJRVU53UkZRc1IwRkJRU3haUVVGQlFTeEZRVUZOTEZGQlFWTXNWVUZEWmxNc1IwRkJRU3hOUVVGQlFTeEZRVUZMTEV0QlFVc3NTMEZCU3l4aFFVVm1TeXhGUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1EwRkJSU3hEUVVGRExFTkJRM0JFTEUxQlJVbG9ReXhGUVVGSExFMUJRVTBzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZEYkVNc1QwRkRTaXhKUVVGTExGRkJRMHdzU1VGQlN5eFZRVU5FTEVkQlFVbEJMRVZCUVVjc1RVRkRTR2RETEVWQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVVc1RVRkJUeXhEUVVGRExFdEJRVXNzVjBGQlZ5eERRVUZGTEVOQlFVTXNUVUZETTBNc1EwRkRSQ3hIUVVGSkxFdEJRVXNzYTBKQlFXdENhRU1zUlVGQlJ5eE5RVUZQWjBNc1JVRkJTU3hOUVVGTkxFVkJRVWNzUTBGRE9VTXNTVUZCVFRsQ0xFVkJRVTg0UWl4RlFVRkpMRTFCUVUxQkxFVkJRVWtzVFVGQlRTeFBRVUZUTEVOQlFVTXNSVUZEY2tOTUxFZEJRVTAxUWl4RlFVRkJSeXhIUVVGQkxGbEJRVUZCTEVWQlFVMHNVVUZCVGl4WlFVRkJTQ3hGUVVGaExFbEJRM3BDTEVkQlFVa3NUVUZCVFN4UlFVRlJORUlzUTBGQlJ5eEZRVUZITEVOQlEzQkNMRTFCUVUwc1ZVRkJWU3hMUVVGTExFMUJRVTFCTEVWQlFVc3pRaXhGUVVGSExFdEJRVXNzUlVGRGVFTXlRaXhGUVVGSkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlEzcENTeXhGUVVGSkxFMUJRVTBzU1VGQlNTeEZRVU5rTEUxQlEwb3NRMEZEU2l4RFFVTkJhRU1zUlVGQlJ5eE5RVUZOTEV0QlFVc3NTMEZCU3l4WFFVRlhMRU5CUTJ4RExFTkJRMEVzVDBGRFNpeEpRVUZMTEZOQlEwd3NTVUZCU3l4TlFVTkVMRWRCUVVsQkxFVkJRVWNzVDBGQlV5eExRVUZMTEZGQlFWVm5ReXhGUVVGSkxFOUJReTlDTEUxQlEwcG9ReXhGUVVGSExFMUJRVTBzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZET1VJc1QwRkRTaXhKUVVGTExHVkJRMFFzUjBGQlNTeExRVUZMTEZOQlFWZG5ReXhGUVVGSkxFOUJRM0JDTEUxQlEwRm9ReXhGUVVGSExFOUJRVk5XTEVkQlFXTlZMRVZCUVVjc1RVRkJUeXhqUVVGakxFVkJRMnhFWjBNc1JVRkJTU3hOUVVGTkxFdEJRVXNzUTBGQlJTeE5RVUZQTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVVc1EwRkJReXhGUVVVMVEyaERMRVZCUVVjc1RVRkJUU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVU5zUXl4TlFVTlNMRU5CUTBFc1IwRkJTU3hMUVVGTExFOUJRVk5uUXl4RlFVRkpMRTlCUVZFc1EwRkRNVUlzU1VGQlRWZ3NSVUZCU3l4TFFVRkxMR2RDUVVGblFsY3NRMEZCUnl4RlFVTnVReXhIUVVGSldDeEZRVUZKTEVOQlEwb3NTMEZCU3l4TlFVRk5MRXRCUVV0QkxFTkJRVVVzUlVGRGJFSXNUVUZEU2l4RFFVTktMRU5CUTBFc1RVRkJRVlFzUlVGQlR5eExRVUZMTEVsQlFVa3NSMEZEYUVJc1RVRkJRVUVzUlVGQlR5eExRVUZMTEV0QlFVc3NSVUZEY2tJc1EwRkRRU3hEUVVGRExHVkJRV1ZRTEVWQlFVa3NRMEZEYUVJc1NVRkJUVXdzUlVGQlMwc3NSVUZCUnl4TlFVRk5RU3hGUVVGSExFMUJRVTBzVDBGQlV5eERRVUZETEVWQlEzWkRMRWRCUVVrc1MwRkJTeXhQUVVGVExHbENRVUZyUWl4RFFVTm9ReXhKUVVGSlZTeEZRVU5LTEVkQlEwa3NUVUZCUVVnc1JVRkJUeXhMUVVGTExFbEJRVWtzUjBGRGFFSkhMRVZCUVUwc1MwRkJTeXhMUVVGTExFTkJRVU1zVVVGRFdrRXNSMEZCVDBFc1JVRkJTU3hQUVVGVExHdENRVU5xUXl4VFFVTlRWaXhGUVVGSExFbEJRVWtzVTBGQlZ5eEZRVUZITEVOQlF6RkNMRTlCUVZFc1MwRkJTeXhMUVVGTkxFTkJRMllzU1VGQlN5eFJRVU5NTEVsQlFVc3NiVUpCUTBjc1EwRkJRMHdzUjBGQlRVRXNSVUZCUnl4SlFVTldTeXhGUVVGSExFMUJRVTBzUzBGQlN5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1EwRkJSU3hEUVVGRExFVkJSVE5EVEN4RlFVRkhMRTFCUVUwc1MwRkJTeXhMUVVGTExGZEJRVmNzUlVGRGJFTXNUMEZEU2l4SlFVRkxMR2RDUVVOSExFTkJRVU5CTEVkQlFVMUJMRVZCUVVjc1RVRkRWa3NzUlVGQlJ5eE5RVUZOTEV0QlFVc3NRMEZCUlN4TlFVRlBMRU5CUVVNc1JVRkJSeXhKUVVGTExFdEJRVTBzU1VGQlN5eERRVUZETEV0QlFVc3NWMEZCVnl4RFFVRkZMRU5CUVVNc1JVRkRNVVJNTEVWQlFVY3NTVUZEVWtFc1JVRkJSeXhKUVVGSkxFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlJUVkNMRTlCUVU4c1QwRkJUMEVzUlVGQlNTeERRVUZGTEVsQlFVc3NTMEZCVFN4SlFVRkxMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVVVzUTBGQlF5eEZRVU0xUkN4UFFVTktMRWxCUVVzc1VVRkRUQ3hKUVVGTExGVkJRMHdzU1VGQlN5eFZRVU5NTEVsQlFVc3NVMEZEVEN4SlFVRkxMRTFCUTBjc1EwRkJRMEVzUjBGQlRVRXNSVUZCUnl4TlFVTldTeXhGUVVGSExFMUJRVTBzUzBGQlN5eERRVUZGTEUxQlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1EwRkJSU3hEUVVGRExFVkJRM1JEVEN4RlFVRkhMRWxCUTFKQkxFVkJRVWNzU1VGQlNTeExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVVTFRa0VzUlVGQlJ5eE5RVUZOTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUTJ4RExFOUJRMG9zU1VGQlN5eFJRVU5NTEVsQlFVc3NVMEZEVEN4SlFVRkxMSFZDUVVOTUxFbEJRVXNzZFVKQlFYZENMRU5CUTNwQ0xFbEJRVTByUWl4RlFVRkxMRXRCUVVzc1YwRkJWeXhMUVVGTExFbEJRVWtzUlVGRGFFTXNRMEZCUXk5Q0xFZEJRVTFCTEVWQlFVY3NUVUZEVmtzc1JVRkJSeXhOUVVGTkxFdEJRVXNzUTBGQlJTeE5RVUZQTEVOQlFVTXNSVUZCUnl4SlFVRkxNRUlzUlVGQlNTeEpRVUZMTEVOQlFVTXNRMEZCUlN4RFFVRkRMRVZCUTNoREwwSXNSVUZCUnl4SlFVTlNMRXRCUVVzc1RVRkJUU3hMUVVGTEswSXNRMEZCUlN4RlFVVnNRaXhQUVVGUExFOUJRVTh2UWl4RlFVRkpMRU5CUVVVc1NVRkJTeXRDTEVWQlFVa3NTVUZCU3l4RFFVRkRMRU5CUVVVc1EwRkJReXhGUVVNeFF5eE5RVU5LTEVOQlEwRXNTVUZCU3l4bFFVTk1MRWxCUVVzc1pVRkRSREZDTEVWQlFVY3NTVUZCU1N4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVNMVFpeE5RVU5TTEVOQlEwRXNTVUZCVFdkQ0xFVkJRVXNzUzBGQlN5eG5Ra0ZCWjBKb1FpeERRVUZGTEVWQlJUbENaMElzUlVGRFFTeExRVUZMTEUxQlFVMHNTMEZCUzBFc1EwRkJSU3hIUVVWc1FpeE5RVUZCVkN4RlFVRlBMRXRCUVVzc1NVRkJTU3hIUVVOb1FpeE5RVUZCUVN4RlFVRlBMRXRCUVVzc1MwRkJTeXhIUVVWNlFpeExRVU5MTEVOQlEwUXNTVUZCVFdRc1JVRkJVeXhMUVVGTExFdEJRVXNzUTBGQlF5eEZRVU14UWl4SFFVRkpRU3hGUVVGUExFOUJRVk1zWTBGRFpDeExRVUZMTEU5QlFWTXNhVUpCUVcxQ1FTeEZRVUZQTEZOQlFWZFBMRVZCUVVjc1VVRkRia1FzUzBGQlN5eFBRVUZUTEZkQlExZ3NRMEZCUTFBc1JVRkJUeXhOUVVGTlFTeEZRVUZQTEUxQlFVMHNUMEZCVXl4RFFVRkRMRVZCUVVVc1MwRkRMME1zVFVGQlFXTXNSVUZCVHl4TFFVRkxMRWxCUVVrc1IwRkRhRUlzVFVGQlFVRXNSVUZCVHl4TFFVRkxMRXRCUVVzc1YwRkZXaXhMUVVGTExFOUJRVk1zYVVKQlEyNUNaQ3hGUVVGUExFOUJRVk1zYTBKQlFXMUNMRU5CUTI1RExFbEJRVTFKTEVWQlFVOU1MRWRCUVdGRExFTkJRVTBzUlVGRE1VSjVRaXhGUVVGUmRFSXNSMEZCYzBKRExFTkJRVWtzUlVGRGVFTkZMRWRCUVdkQ1F5eERRVUZGTEVWQlEyeENMRWxCUVUxdFFpeEZRVUZOYmtJc1JVRkJSeXhKUVVGSkxFOUJRVThzUlVGQlIwRXNSVUZCUnl4SlFVRkpMRTFCUVUwc1JVRkRNVU50UWl4RlFVRkpMRXRCUVVzc1MwRkJTeXhYUVVGWExFVkJRM3BDTEVsQlFVMURMRVZCUVUwc1EwRkRVaXhMUVVGTkxGbEJRMDRzVDBGQlVYQkNMRVZCUVVjc1QwRkRXQ3hQUVVGUlFTeEZRVUZITEU5QlExZ3NUVUZCVHl4RFFVRkRMRU5CUVVVc1RVRkJRV3RDTEVWQlFVOHNTVUZCUzJ4Q0xFVkJRVWtzU1VGQlFXMUNMRU5CUVVrc1EwRkJReXhEUVVOdVF5eEZRVU5CTEV0QlFVc3NWVUZCV1N4SFFVTnFRaXhMUVVGTExFMUJRVTBzUzBGQlN5eE5RVUZOTEU5QlFWTXNRMEZCUXl4RlFVRkpReXhEUVVONFF5eE5RVVZKTEUxQlFVRmlMRVZCUVU4c1MwRkJTeXhSUVVGUlVDeERRVUZGTEVWQlJUbENMRU5CUTBvc1EwRkRRU3hYUVVGWFlpeEZRVUZOTEVOQlEySXNSMEZCU1N4TFFVRkxMRlZCUVZjc1EwRkRhRUlzU1VGQlNXdERMRVZCUVVzc1MwRkJTeXhQUVVGUExGRkJRVkU3UVVGQlFTeERRVUZKTEVWQlFVa3NSVUZEY2tNc1MwRkJUMEVzU1VGQlR5eEhRVU5XTEV0QlFVc3NWVUZCVlN4TFFVRkxMRTlCUVZOQkxFTkJRVVVzUlVGREwwSkJMRVZCUVVzc1MwRkJTeXhQUVVGUExGRkJRVkU3UVVGQlFTeEZRVUZOUVN4RFFVRkZMRVZCUVVrc1EwRkZOME1zUTBGRFFTeE5RVUZQTEVOQlEwZ3NTMEZCUVd4RExFVkJRMEVzVDBGQlVTeExRVUZMTEU5QlEySXNUMEZCVVN4TFFVRkxMRTlCUTJJc1QwRkJVU3hMUVVGTExFMUJRMnBDTEVOQlEwb3NRMEZEUVN4blFrRkJaMEpOTEVWQlFWRXNRMEZEY0VJc1QwRkJVU3hMUVVGTExFdEJRVTBzUTBGRFppeEpRVUZMTEZGQlEwd3NTVUZCU3l4VFFVTk1MRWxCUVVzc2RVSkJRMHdzU1VGQlN5eDFRa0ZEUkN4UFFVRlBMRXRCUVVzc1YwRkJWeXhMUVVGTExFbEJRVWtzUlVGRGNFTXNTVUZCU3l4elFrRkRSQ3hOUVVGUExFTkJRMGdzUzBGQlRTeGxRVU5PTEU5QlFWRXNTMEZCU3l4UFFVTmlMRTlCUVZFc1MwRkJTeXhQUVVOaUxFMUJRVThzUTBGQlF5eExRVUZMTEZkQlFWY3NSVUZEZUVJc1QwRkJVU3hGUVVOYUxFVkJRMG9zU1VGQlN5eHBRa0ZEVEN4SlFVRkxMR2xDUVVORUxFMUJRVThzUTBGRFNDeExRVUZOTEd0Q1FVTk9MRTlCUVZFc1MwRkJTeXhQUVVOaUxFOUJRVkVzUzBGQlN5eFBRVU5pTEUxQlFVOHNTMEZCU3l4WlFVTmFMRTFCUVU4c1EwRkJReXhGUVVOU0xFbEJRVXNzUTBGQlF5eERRVU5XTEVWQlEwb3NTVUZCU3l4bFFVTkVMRTFCUVU4c1EwRkRTQ3hMUVVGTkxGbEJRMDRzVDBGQlVTeExRVUZMTEU5QlEySXNUMEZCVVN4TFFVRkxMRTlCUTJJc1RVRkJUeXhEUVVGRExFTkJRVVVzVFVGQlR5eERRVUZETEV0QlFVc3NWMEZCVnl4RFFVRkZMRU5CUVVNc1EwRkRla01zUlVGRFNpeEpRVUZMTEcxQ1FVRnZRaXhEUVVOeVFpeExRVUZMTEZWQlFWa3NSMEZEYWtJc1NVRkJUVWtzUlVGQlQwd3NSMEZCWVVNc1EwRkJUU3hGUVVNeFFubENMRVZCUVZGMFFpeEhRVUZ6UWtNc1EwRkJTU3hGUVVONFF5eFBRVUZCY1VJc1JVRkJUU3hMUVVGTExFdEJRVXNzVjBGQlZ5eEZRVU53UWl4RFFVTklMRXRCUVUwc1dVRkRUaXhQUVVGUkxFdEJRVXNzVDBGRFlpeFBRVUZSTEV0QlFVc3NUMEZEWWl4TlFVRlBMRU5CUVVNc1EwRkJSU3hOUVVGQlFTeEZRVUZQTEZsQlFXRXNSVUZCU3l4RFFVRkRMRU5CUTNoRExFTkJRMG9zUTBGRFFTeEpRVUZMTEdkQ1FVRnBRaXhEUVVOc1FpeExRVUZMTEZWQlFWa3NSMEZEYWtJc1NVRkJUWEpDTEVWQlFVOU1MRWRCUVdGRExFTkJRVTBzUlVGRE1VSjVRaXhGUVVGUmRFSXNSMEZCYzBKRExFTkJRVWtzUlVGRGVFTXNUVUZCVHl4RFFVTklMRXRCUVUwc1dVRkRUaXhQUVVGUkxFdEJRVXNzVDBGRFlpeFBRVUZSTEV0QlFVc3NUMEZEWWl4TlFVRlBMRU5CUVVNc1EwRkJSU3hOUVVGQmNVSXNSVUZCVHl4SlFVRkxMRXRCUVUwc1NVRkJTeXhEUVVGRExFdEJRVXNzVjBGQlZ5eERRVUZGTEVOQlFVTXNRMEZEZWtRc1EwRkRTaXhEUVVOS0xFTkJRMEVzVDBGQlR5eEpRVU5ZTEVOQlEwRXNhMEpCUVd0Q1FTeEZRVUZQVlN4RlFVRlJMRU5CUnpkQ0xFOUJSa2tzUzBGQlN5eFBRVUZUTEZkQlJXUXNTMEZCU3l4UlFVRlZRU3hGUVVOU0xFZEJRMHBXTEVWQlFVMHNUVUZCVFVvc1IwRkJUVUVzUlVGQlJ5eFBRVUZUTEZkQlFXRkJMRVZCUVVjc1QwRkJVeXhQUVVGUExFTkJRM3BGTEVOQlEwRXNRMEZCUXl4WlFVRlpaU3hGUVVGUkxFTkJRMklzUzBGQlN5eFBRVUZUTEdGQlExWkJMRVZCUVU4c1NVRkRVRUVzUlVGQlR5eEpRVUZKTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUldoRFFTeEZRVUZQTEVsQlFVMHNRMEZCUXl4TFFVRkxMRmRCUVZjc1JVRkRPVUlzUzBGQlN5eFBRVUZUTEZsQlEyUXNUVUZCUVhSQ0xFVkJRVThzUzBGQlN5eEpRVUZKTEVsQlJUVkNMRU5CUTBFc1EwRkJReXhSUVVGUmFFSXNSVUZCVHl4RFFVTmFMRTlCUVZFc1MwRkJTeXhMUVVGTkxFTkJRMllzU1VGQlN5eFJRVU5NTEVsQlFVc3NXVUZEVEN4SlFVRkxMRlZCUTB3c1NVRkJTeXhsUVVOTUxFbEJRVXNzWlVGRFRDeEpRVUZMTEdkQ1FVTkVMRTFCUVVGblFpeEZRVUZQTEV0QlFVc3NTVUZCU1N4SFFVTm9RaXhOUVVGQlFTeEZRVUZQTEV0QlFVc3NTMEZCU3l4SFFVTnFRaXhOUVVOS0xFbEJRVXNzVlVGRFJDeExRVUZMTEZWQlFWa3NSMEZGY2tJc1NVRkJTeXhSUVVOTUxFbEJRVXNzVlVGRFRDeFJRVVZSYUVJc1JVRkJUU3hKUVVOT1FTeEZRVUZOTEVsQlFVa3NTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkZMMEpCTEVWQlFVMHNTVUZCVFN4RFFVRkRMRXRCUVVzc1YwRkJWeXhGUVVNM1FpeExRVUZMTEU5QlFWTXNXVUZEWkN4TlFVRkJaMElzUlVGQlR5eExRVUZMTEVsQlFVa3NSMEZETlVJc1EwRkRTaXhEUVVOS0xFVkRMelpDUVN4VFFVRlRkVUlzUjBGQllVTXNSVUZCVXl4RFFVTXpRaXhKUVVGTlF5eEZRVUZsUkN4RlFVRlJMR1ZCUVdsQ0xFZEJSVGxETEUxQlFVOHNRMEZCUlN4WlFVUlhRU3hGUVVGUkxHRkJRV2RDUXl4SFFVRm5RaXhKUVVGSlF5eEpRVUZyUWl4TFFVTTFSQ3hoUVVGQlJDeERRVUZoTEVOQlEzWkRMRU5CZVVKQkxGTkJRVk5GTEVkQlFXTkRMRVZCUVZGRExFVkJRVlVzUTBGQlF5eEZRVUZITEVOQlEzcERMRWRCUVUwc1EwRkJSU3haUVVGQlF5eEZRVUZoTEdGQlFVRkRMRU5CUVdFc1JVRkJTVU1zUjBGQllVZ3NRMEZCVHl4RlFVTndSRWtzUlVGQlV5eEpRVUZKUXl4SFFVRlBTaXhIUVVGQkxGbEJRVUZCTEVWQlFXRXNWVUZCVlN4RlFVTXpRMHNzUlVGQlZ5eEpRVUZKUXl4SFFVRlRVQ3hEUVVGUExFVkJSV3BEVVN4RlFVRk5MRXRCUTFZc1VVRkJWME1zUzBGQlVVZ3NSVUZCVXl4UlFVRlJSaXhGUVVGUExFMUJRVTFNTEVOQlFVMHNSVUZCUnl4SFFVRk5RU3hGUVVGUExFMUJRVTBzUlVGRGVrVXNSMEZCU1N4RFFVRkRVeXhGUVVORVFTeEZRVUZOUXl4VlFVTkVSQ3hGUVVGSkxGRkJRVkVzVjBGQllTeFRRVUZWTEVOQlEzaERRU3hGUVVGSkxFOUJRVThzUzBGQlN5eEpRVUZKUlN4SFFVRmxSQ3hGUVVGTExFMUJRVTBzVFVGQlRTeEZRVUZITEVOQlFVTXNSVUZCUnl4blFrRkJhVUlzZVVWQlFYbEZMRU5CUVVNc1JVRkRkRW9zUzBGRFNpeERRVVZLTEU5QlFVbFFMRWRCUVdkQ1JDeEpRVU5vUWs4c1JVRkJTU3hQUVVGUExGRkJRVkZITEVkQlFXTmFMRVZCUVZGRkxFTkJRVmNzUTBGQlF5eEZRVU55UkU4c1JVRkJTU3hUUVVGVExGRkJRVkZITEVkQlFXTmFMRVZCUVZGRkxFTkJRVmNzUTBGQlF5eEhRVVZ3UkU4c1EwRkRXQ3hEUVVOQkxGTkJRVk5KTEVkQlFVMURMRVZCUVV0RExFVkJRVk5rTEVWQlFWTXNRMEZEYkVNc1NVRkJTV1VzUlVGRFFTeFBRVUZQUkN4SFFVRlpMRmRCUTI1Q1F5eEZRVUZYUkN4RlFVVk9aQ3hKUVVGWkxGRkJRV0ZqTEVkQlFWY3NUMEZCVDBFc1IwRkJXU3hYUVVNMVJHUXNSVUZCVldNc1IwRkZaQ3hKUVVGTlRpeEZRVUZOVml4SFFVRmpaU3hGUVVGTFlpeERRVUZQTEVWQlEzUkRMRWRCUVVrc1EwRkJRMUVzUlVGRFJDeFBRVUZQTEV0QlJWZ3NSMEZFUVVFc1JVRkJTU3hUUVVGVExGRkJRVkZSTEVkQlFWZERMRWRCUVV0VUxFVkJRVWtzVVVGQlVTeFRRVUZWVVN4RFFVRlBMRU5CUVVNc1JVRkRMMFJTTEVWQlFVa3NUMEZCVHl4UFFVRlRMRVZCUVVjc1EwRkRka0lzUjBGQlNVRXNSVUZCU1N4UlFVRlJMRmRCUVdFc1UwRkRla0lzVFVGQlRVRXNSVUZCU1N4UFFVRlBMRU5CUVVNc1JVRkZiRUpCTEVWQlFVa3NUMEZCVXl4RFFVRkRMRU5CUTNSQ0xFTkJRMEVzVDBGQlQwRXNSVUZCU1N4TFFVRkxMRTlCUVU4c1QwRkJUeXhEUVVGRkxGRkJRVk5QTEVOQlFWTXNSVUZCUjJZc1EwRkJUeXhEUVVGRExFTkJRMnBGTEVORGVFVkJMRWxCUVVGclFpeEhRVUZyUWl4VFEwWnNRaXhKUVVGQlF5eEZRVUZ0UWl4VFEydEdXaXhKUVVGVlF5eFBRVUZXTEVOQlkxVkJMRVZCUVVFc2EwSkJRWE5ETEVOQlF5OURMRzFDUVVGdlFpeEpRVVZ3UWl4WFFVRlpMR2RDUVVOYUxHVkJRV2RDTEhkQ1FVTndRaXhGUVVkUExGTkJRVk5ETEVWQlExcERMRVZCUTBGRExFVkJRVFJDU0N4RlFVRkJMR3RDUVVNMVFra3NSVUZCY1VJc1IwRkRaaXhEUVVOT0xFbEJRVWxETEVWQlFWVkRMRVZCUVZWS0xFTkJRVXNzUlVGRE4wSXNSMEZCU1N4RFFVRkRSeXhGUVVGVExFOUJRVTlHTEVWQlFWRXNiVUpCUlRkQ0xFOUJRVkZGTEVWQlFWRXNTMEZCVFN4RFFVTnNRaXhKUVVGTExFOUJRMFFzVDBGQlQwWXNSVUZCVVN4dFFrRkRia0lzU1VGQlN5eFRRVU5FTEU5QlFVOUZMRVZCUVZFc1RVRkRia0lzU1VGQlN5eFRRVU5NTEVsQlFVc3NWVUZEUkN4TlFVRlBMRWRCUVV0QkxFVkJRVkVzVFVGRGVFSXNTVUZCU3l4UFFVTkVMRTlCUVU5QkxFVkJRVkVzVFVGQlRTeFRRVUZUTEVWQlEyeERMRWxCUVVzc1YwRkRSQ3hOUVVGUExHRkJRMWdzU1VGQlN5eFJRVU5FTEVsQlFVbEZMRVZCUVZNc1IwRkRZaXhQUVVGSlNDeEpRVUZYUnl4SFFVRlZMRXRCUTNwQ1FTeEhRVUZWUml4RlFVRlJMRTFCUVUwc1NVRkJTMGNzUjBGQlRWQXNSVUZCVTA4c1JVRkJSMHdzUlVGQlV5eEZRVUZKTEVOQlFVTXNSVUZCUlN4TFFVRkxMRWxCUVVrc1JVRkRjRVZETEVsQlFWZEhMRWRCUVZVc1MwRkRiRUpCTEVWQlExZ3NTVUZCU3l4VFFVTkVMRTFCUTBrc1MwRkRRU3hQUVVGUExGRkJRVkZHTEVWQlFWRXNTMEZCU3l4RlFVTjJRaXhKUVVGTFNTeEhRVUZOUVN4RlFVRkZMRU5CUVVNc1JVRkJTU3hMUVVGUFVpeEZRVUZUVVN4RlFVRkZMRU5CUVVNc1JVRkJSMDRzUlVGQlV5eEZRVUZKTEVOQlFVTXNSVUZEZEVRc1MwRkJTeXhKUVVGSkxFVkJRMlFzUzBGRlVpeEpRVUZMTEU5QlEwUXNUMEZCVDA4c1IwRkJhMEpNTEVWQlFWRXNUVUZCVDBZc1JVRkJVU3hYUVVGWlFTeEZRVUZSTEdOQlFXTXNSVUZEZEVZc1NVRkJTeXhYUVVORUxFOUJRVTlSTEVkQlFYTkNUaXhGUVVGUkxFdEJRVXNzUTBGRGJFUXNRMEZEU2l4RFFYWkRUMHdzUlVGQlV5eFRRVUZCUXl4RlFUQkRWQ3hUUVVGVFN5eEZRVUZWVFN4RlFVRXdReXhEUVVOb1JTeFBRVUZKUXl4RlFVRlBSQ3hEUVVGSExFVkJRVlVzUTBGQlJTeExRVUZOTEU5QlFWRXNUVUZCVDBFc1EwRkJTU3hGUVVNeFEwVXNSVUZCVTBZc1EwRkJSeXhGUVVGVkxFTkJRVVVzUzBGQlRTeFRRVUZWTEUxQlFVOUJMRU5CUVVrc1JVRkRia1JITEVWQlFWTklMRU5CUVVjc1JVRkJWU3hEUVVGRkxFdEJRVTBzVTBGQlZTeE5RVUZQUVN4RFFVRkpMRVZCUTI1RVNTeEZRVUZWU2l4RFFVRkhMRVZCUVZVc1EwRkJSU3hMUVVGTkxGVkJRVmNzVFVGQlQwRXNRMEZCU1N4RlFVTnlSRXNzUlVGQlYwd3NRMEZCUnl4RlFVRlZMRU5CUVVVc1MwRkJUU3hYUVVGWkxFMUJRVTlCTEVOQlFVa3NSVUZEZGtSTkxFVkJRVTlPTEVOQlFVY3NSVUZCVlN4RFFVRkZMRXRCUVUwc1QwRkJVU3hOUVVGUFFTeERRVUZKTEVWQlF5OURUeXhGUVVGUlVDeERRVUZITEVWQlFWVXNRMEZCUlN4TFFVRk5MRkZCUVZNc1RVRkJUMEVzUTBGQlNTeEZRVU5xUkZFc1JVRkJUMUlzUTBGQlJ5eEZRVUZWTEVOQlFVVXNTMEZCVFN4UFFVRlJMRTFCUVU5QkxFTkJRVWtzUlVGREwwTlRMRVZCUVZkVUxFTkJRVWNzUlVGQlZTeERRVUZGTEV0QlFVMHNWMEZCV1N4TlFVRlBRU3hEUVVGSkxFVkJRM1pFVlN4RlFVRlRWaXhEUVVGSExFVkJRVlVzUTBGQlJTeExRVUZOTEZOQlFWVXNUVUZCVDBFc1EwRkJTU3hGUVVOMlJDeE5RVU5VTEVOQldrOWFMRVZCUVZNc1ZVRkJRVTBzUlVGbFZDeFRRVUZUYVVJc1JVRkJWVmdzUlVGQlkxa3NSVUZCZDBNc1EwRkROVVVzUjBGQlNVWXNSVUZCVTFZc1EwRkJSeXhGUVVGSExFTkJRMllzU1VGQlNVd3NSVUZCY1VJc1EwRkJReXhGUVVNeFFpeFBRVUZUTEVOQlFVTnJRaXhGUVVGTFF5eERRVUZMTEVsQlFVc3NUMEZCVHl4UlFVRlJaQ3hEUVVGSExFVkJRVWRNTEVWQlFVOXJRaXhEUVVGSExFVkJRVWxHTEVWQlFWVkhMRVZCUVU5R0xFTkJRVWtzUlVGRGFrWXNUMEZCVDJwQ0xFTkJRMWdzVTBGQlYxa3NSVUZCVVZBc1EwRkJSeXhGUVVGSExFTkJRM0pDTEVsQlFVbE1MRVZCUVc5Q0xFTkJRVU1zUlVGRGVrSXNVVUZCVTIxQ0xFdEJRVk5rTEVWQlFVdE1MRVZCUVU4c1MwRkJTMmRDTEVWQlFWVkhMRVZCUVU5R0xFTkJRVWtzUTBGQlF5eEZRVU42UkN4UFFVRlBha0lzUTBGRFdDeExRVU5KTEZGQlFVOXBRaXhGUVVGTFdpeERRVUZITEVOQlJYWkNMRU5CV2s5YUxFVkJRVk1zVlVGQlFYVkNMRVZCWlZRc1UwRkJVMGtzUlVGQlQwTXNSVUZCTkVKRExFVkJRVFpDTEVOQlF6VkZMRTlCUVU5RExFVkJRVkZHTEVWQlFVOURMRU5CUVUwc1IwRkJTeXhEUVVOeVF5eERRVVpQTjBJc1JVRkJVeXhQUVVGQk1rSXNSVUZMVkN4VFFVRlRSeXhGUVVOYVF5eEZRVU5CUXl4RlFVTkJReXhGUVVOTkxFTkJNMHhrTEVsQlFVRkRMRVZCUVVGRExFVkJhMDFSTEVkQlRFbEtMRWxCUVZORExFbEJSMVJFTEVsQlFWTXNVMEZCVjBFc1JVRkJUeXhOUVVNelFrTXNTVUZCVXl4VFFVRlhRU3hGUVVGUExFMUJRek5DUkN4SlFVRlRMRTFCUVZGRExFbEJRVk1zVFVGQlRTeE5RVUZQTEVkQlEzUkRMRWRCUVVsRUxFbEJRVk1zUzBGQlRTeE5RVUZQTEVkQlF6RkNMRWRCUVVsRExFbEJRVk1zUzBGQlRTeE5RVUZQTEVkQlJ5OUNMRWxCUVVsSkxFVkJRVkU1UWl4RlFVRlZlVUlzUTBGQlNTeEZRVU4wUWswc1JVRkJVUzlDTEVWQlFWVXdRaXhEUVVGSkxFVkJSVEZDTEVkQlFVbEpMRWxCUVZVc1VVRkJZVU1zU1VGQlZTeFBRVUZYTEUxQlFVOHNSMEZEYkVRc1IwRkJTVVFzU1VGQlZTeFBRVUZYTEUxQlFVOHNSMEZEYUVNc1IwRkJTVU1zU1VGQlZTeFBRVUZYTEUxQlFVOHNSMEZIY2tNc1IwRkJTVVFzUlVGQlRTeE5RVUZSUXl4RlFVRk5MRXRCUVUwc1QwRkJUMFFzUlVGQlRTeExRVUZMTEdOQlFXTkRMRVZCUVUwc1NVRkJTU3hGUVVONFJTeEhRVUZKUkN4RlFVRk5MRkZCUVZWRExFVkJRVTBzVFVGQlR5eE5RVUZQTEVkQlJYaERMRTlCUVZGRUxFVkJRVTBzUzBGQlRTeERRVU5vUWl4SlFVRkxMRk5CUTBRc1QwRkJUMEVzUlVGQlRTeE5RVUZOTEdOQlFXTkRMRVZCUVUwc1MwRkJaU3hGUVVNeFJDeEpRVUZMTEZOQlEwUXNUMEZCU1VRc1JVRkJUU3hOUVVGVFF5eEZRVUZOTEUxQlFYbENMRWRCUTNwRFJDeEZRVUZOTEU5QlFWVkRMRVZCUVUwc1RVRkJlVUlzUlVGRGFrUXNSVUZEV0N4SlFVRkxMRTlCUTBRc1RVRkJUeXhIUVVOWUxFbEJRVXNzVlVGRFJDeFBRVUZKUkN4RlFVRk5MRTlCUVZORExFVkJRVTBzVFVGQll5eEZRVU16UWtRc1JVRkJUU3hOUVVGUkxFVkJRVWtzUjBGRGJFTXNTVUZCU3l4UFFVTkVMRWxCUVVsRkxFVkJRVkZHTEVWQlFVMHNUVUZEWkVjc1IwRkJVVVlzUlVGQlRTeE5RVU5rUnl4SFFVRlpVQ3hIUVVGQkxFdEJRVUZCTEVWQlFXOUNVU3hKUVVGalFTeEhRVWM1UTBNc1JVRkJZMFlzUjBGQlZVWXNSVUZCVFN4SlFVRkpMRVZCUVVVc1kwRkJZMFVzUjBGQlZVUXNSMEZCVFN4SlFVRkpMRU5CUVVNc1JVRkRNMFVzUjBGQlNVY3NSMEZCWlN4RlFVRkhMRTlCUVU5QkxFVkJSemRDTEVsQlFVbERMRVZCUVdOTUxFVkJRVTBzUzBGQlN5eGpRVUZqUXl4SFFVRk5MRWxCUVVrc1JVRkRja1FzVDBGQlNVa3NSMEZCWlN4RlFVRlZRU3hGUVVkNlFrd3NSVUZCVFN4VFFVRlhMRU5CUVVORExFZEJRVTBzVVVGQlowSXNSVUZEZUVNc1EwRkJRMFFzUlVGQlRTeFRRVUZYUXl4SFFVRk5MRkZCUVdkQ0xFZEJRM2hETEVOQlFVTkVMRVZCUVUwc1UwRkJWeXhEUVVGRFF5eEhRVUZOTEZGQlFXZENMRWxCUjNKRFRDeEZRVUZCU1N4RlFVRk5MRlZCUVU0c1MwRkJRVW9zUlVGQmFVSXNTVUZCU1N4bFFVRmpReXhGUVVGQlNTeEhRVUZOTEZWQlFVNHNTMEZCUVVvc1JVRkJhVUlzUlVGQlJTeEZRVU5zUlN4SlFVRkxMRTlCUTBRc1QwRkJUME1zUlVGQlRTeE5RVUZUUXl4RlFVRk5MRTFCUTNSQ0xFZEJRMEZFTEVWQlFVMHNUVUZCVFN4UFFVRlBReXhGUVVGTkxFdEJRV2xDTEVWQlF6RkRMRVZCUTBFc1JVRkRWaXhKUVVGTExGZEJRMFFzVDBGQlQwUXNSVUZCVFN4TlFVRlRReXhGUVVGTkxFMUJRM1JDTEVkQlEwRkVMRVZCUVUwc1RVRkJUU3hQUVVGUFF5eEZRVUZOTEV0QlFXbENMRVZCUXpGRExFVkJRMEVzUlVGRFZpeEpRVUZMTEZGQlEwUXNTVUZCU1U4c1JVRkJTMUlzUlVGQlRTeE5RVU5ZVXl4SFFVRkxVaXhGUVVGTkxFMUJRMllzVVVGQlUxTXNSMEZCVVN4RlFVRkhRU3hIUVVGUkxFdEJRVXNzU1VGQlNVWXNSVUZCUnl4UFFVRlJReXhIUVVGSExFMUJRVTBzUlVGQlIwTXNTMEZCVXl4RFFVTnFSU3hKUVVGSlF5eEhRVUZQYWtJc1JVRkJVV01zUlVGQlIwVXNSVUZCU3l4RlFVRkhSQ3hIUVVGSFF5eEZRVUZMTEVOQlFVTXNSVUZEZGtNc1IwRkJTVU1zU1VGQlVTeEZRVUZITEU5QlFVOUJMRVZCUXpGQ0xFTkJRMEVzVDBGQlQwZ3NSVUZCUnl4UFFVRlRReXhIUVVGSExFOUJRekZDTEVsQlFVc3NVMEZEUkN4SlFVRkpSeXhIUVVGTFdpeEZRVUZOTEUxQlExaGhMRWRCUVV0YUxFVkJRVTBzVFVGRFdHRXNSMEZCU3l4TlFVRk5MRXRCUVVzc1QwRkJUeXhMUVVGTFJpeEZRVUZGTEVOQlFVTXNSVUZETDBKSExFZEJRVXNzVFVGQlRTeExRVUZMTEU5QlFVOHNTMEZCUzBZc1JVRkJSU3hEUVVGRExFVkJRMjVEUXl4SFFVRkhMRXRCUVVzc1JVRkRVa01zUjBGQlJ5eExRVUZMTEVWQlJWSXNTVUZCU1VNc1IwRkJZWFJDTEVWQlFWRnZRaXhIUVVGSlF5eEZRVUZGTEVWQlF5OUNMRWRCUVVsRExFbEJRV01zUlVGQlJ5eFBRVUZQUVN4SFFVVTFRaXhSUVVGVE0wSXNUVUZCVDNsQ0xFZEJRVWtzUTBGRGFFSXNTVUZCU1Vnc1IwRkJUMnBDTEVWQlFWRnJRaXhIUVVGSGRrSXNSVUZCUnl4RlFVRkhkMElzUjBGQlIzaENMRVZCUVVjc1EwRkJReXhGUVVOdVF5eEhRVUZKYzBJc1NVRkJVU3hGUVVGSExFOUJRVTlCTEVWQlF6RkNMRU5CUlVFc1RVRkJUeXhIUVVOWUxFbEJRVXNzVjBGRFJDeE5RVUZQTEVWQlEyWXNRMEZEU2l4RFFXNUhUeTlETEVWQlFWTXNVVUZCUVRoQ0xFVkJjMGRVTEZOQlFWTjFRaXhGUVVGUGVrTXNSVUZCYlVNc1EwRTNVamxFTEVsQlFVRnpRaXhGUVRoU1VTeFBRVUZQUVN4RlFVRkJOVUlzUlVGQlZVMHNRMEZCUnl4SlFVRmlMRmxCUVVGelFpeEZRVUZuUWl4SlFVTXpRaXhEUVVaUGJFTXNSVUZCVXl4UFFVRkJjVVFzUlVGTFZDeFRRVUZUUXl4RlFVRlRjRVFzUlVGQmVVSXNRMEZET1VNc1NVRkJTVWNzUlVGQlZVTXNSVUZCVlVvc1EwRkJTeXhGUVVNM1FpeEhRVUZKTEVOQlFVTkhMRVZCUVZNc1RVRkJUeXhIUVVWeVFpeFBRVUZSUVN4RlFVRlJMRXRCUVUwc1EwRkRiRUlzU1VGQlN5eFRRVU5FTEU5QlFVOUJMRVZCUVZFc1QwRkJVeXhGUVVNMVFpeEpRVUZMTEZOQlEwUXNUMEZCVDBFc1JVRkJVU3hOUVVGTkxFOUJRVk1zUlVGRGJFTXNTVUZCU3l4VlFVTkVMRTlCUVU5QkxFVkJRVkVzVFVGRGJrSXNTVUZCU3l4UFFVTkVMRTFCUVU4c1EwRkJReXhEUVVGRFFTeEZRVUZSTEUxQlFVMHNTMEZETTBJc1NVRkJTeXhQUVVORUxFOUJRVTlCTEVWQlFWRXNUVUZCVFN4VFFVRlRMRWRCUVVzc1JVRkRka01zU1VGQlN5eFhRVU5FTEU5QlFVOUJMRVZCUVZFc1RVRkJUU3hIUVVGSExGTkJRVk1zUjBGQlN5eEZRVU14UXl4SlFVRkxMRk5CUTBRc1QwRkJUeXhQUVVGUExFdEJRVXRCTEVWQlFWRXNTMEZCU3l4RlFVRkZMRTlCUVZNc1JVRkRMME1zU1VGQlN5eFJRVU5FTEU5QlFVOUJMRVZCUVZFc1RVRkJUU3hQUVVGVExFVkJRMnhETEVsQlFVc3NUMEZEUkN4TlFVRlBMRWRCUTFnc1NVRkJTeXhYUVVORUxFMUJRVThzUlVGRFppeERRVU5LTEVOQk1VSlBUQ3hGUVVGVExGTkJRVUZ6UkN4RlFUWkNWQ3hUUVVGVFF5eEZRVUUwUW5KRUxFVkJRV0VzUTBGRGNrUXNSMEZCU1VFc1IwRkJWU3hMUVVFMlFpeFBRVUZQUVN4RlFVVnNSQ3hIUVVGSlJpeEZRVUZUTEZGQlFWRkZMRU5CUVVzc1JVRkRkRUlzVFVGQlVTeERRVUZETEVWQlFXZENMRTlCUVU5QkxFVkJRVTBzU1VGQlMzTkVMRWRCUVUxRUxFVkJRVk5ETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUXpGRUxFZEJRVWw0UkN4RlFVRlRMRk5CUVZORkxFTkJRVXNzUlVGQlJ5eERRVU5xUXl4SlFVRkpTeXhGUVVGclF5eERRVUZETEVWQlEzWkRMRTlCUVZNc1EwRkJRMnRDTEVWQlFVdERMRU5CUVVzc1NVRkJTeXhQUVVGUExGRkJRVkY0UWl4RFFVRkxMRVZCUVVkTExFVkJRVTlyUWl4RFFVRkhMRVZCUVVrNFFpeEZRVUZUTjBJc1EwRkJTeXhGUVVNMVJTeFBRVUZQYmtJc1EwRkRXQ3hMUVVOSkxGRkJRVTlNTEVOQlJXWXNRMEZhVDBZc1JVRkJVeXhUUVVGQmRVUXNSVUZsVkN4VFFVRlRlRU1zUlVGQlUwZ3NSVUZCZVVJc1EwRkRPVU1zVDBGQlR5eFBRVUZQUVN4SFFVRlBMRkZCUTNwQ0xFTkJSazlhTEVWQlFWTXNVMEZCUVdVc1JVRkxWQ3hUUVVGVFJDeEZRVUZUUml4RlFVRjVRaXhEUVVNNVF5eFBRVUZQTEU5QlFVOUJMRWRCUVU4c1VVRkRla0lzUTBGR1Qxb3NSVUZCVXl4VFFVRkJZeXhGUVV0VUxGTkJRVk5KTEVWQlFVOU9MRVZCUVRKQ0xFTkJRemxETEU5QlFVOUJMR0ZCUVdVMlF5eERRVU14UWl4RFFVWlBla1FzUlVGQlV5eFBRVUZCYTBJc1JVRkxWQ3hUUVVGVFJDeEZRVUZYVEN4RlFVRXlRaXhEUVVOc1JDeFBRVUZQUVN4aFFVRmxPRU1zUTBGRE1VSXNRMEZHVHpGRUxFVkJRVk1zVjBGQlFXbENMRVZCUzFRc1UwRkJVMG9zUlVGQlQwUXNSVUZCYlVNc1EwRkRkRVFzVDBGQlQwRXNSMEZCVVN4SlFVTnVRaXhEUVVaUFdpeEZRVUZUTEU5QlFVRmhMRVZCUzFRc1UwRkJVMDBzUlVGQlVWQXNSVUZCZDBJc1EwRkROVU1zVDBGQlR5eE5RVUZOTEZGQlFWRkJMRU5CUVVjc1EwRkROVUlzUTBGR1Qxb3NSVUZCVXl4UlFVRkJiVUlzUlVGTFZDeFRRVUZUU0N4RlFVRlZTaXhGUVVFd1FpeERRVU5vUkN4UFFVRlBMRTlCUVU5QkxFZEJRVkVzVTBGRE1VSXNRMEZHVDFvc1JVRkJVeXhWUVVGQlowSXNSVUZMVkN4VFFVRlRTU3hGUVVGUFVpeEZRVUYxUWl4RFFVTXhReXhQUVVGUFFTeGhRVUZsSzBNc1JVRkRNVUlzUTBGR1R6TkVMRVZCUVZNc1QwRkJRVzlDTEVWQlMxUXNVMEZCVTBVc1JVRkJVMVlzUlVGQmMwTXNRMEZETTBRc1QwRkRTVUVzU1VGQlVTeFJRVU5TTEU5QlFVOUJMRWRCUVU4c1ZVRkRaQ3hEUVVGRFR5eEZRVUZSVUN4RFFVRkhMRWRCUTFvc1EwRkJRMHNzUlVGQlYwd3NRMEZCUnl4SFFVTm1MRU5CUVVOTkxFVkJRVTlPTEVOQlFVY3NSMEZEV0N4RFFVRkRVU3hGUVVGUFVpeERRVUZITEVkQlExZ3NRMEZCUTBNc1JVRkJUMFFzUTBGQlJ5eERRVVZ1UWl4RFFWWlBXaXhGUVVGVExGTkJRVUZ6UWl4RlFXRlVMRk5CUVZORUxFVkJRVmRVTEVWQlFUSkNMRU5CUTJ4RUxFOUJRVThzVDBGQlQwRXNSMEZCVHl4VlFVTjZRaXhEUVVaUFdpeEZRVUZUTEZkQlFVRnhRaXhKUVM5VFNISkNMRkZCUVVFc1MwRnRWVllzU1VGQlZUUkVMRTlCUVZZc1EwRkZTU3hUUVVGVFF5eEZRVUZyUWtNc1JVRkJjME1zUTBGRGNFVXNUMEZCVHpsRUxFZEJRVk1zVTBGQlV6aEVMRU5CUVVzc1IwRkJTeXhQUVVGUExFdEJRVXRCTEVOQlFVc3NSVUZCUlN4UlFVRlZMRWRCUVVzc1VVRkJVMEVzUjBGQlV5eFRRVUZWUVN4RFFVTnlSeXhEUVVaUFJpeEZRVUZUTEdWQlFVRkRMRVZCUzFRc1UwRkJVMFVzUlVGQlkwUXNSVUZCWjBRc1EwRkRNVVVzVVVGQlUwVXNTMEZCVjBZc1JVRkJUeXhIUVVGSkxFTkJRVU5FTEVWQlFXVkhMRU5CUVU4c1JVRkJSeXhOUVVGUExFZEJSV2hGTEUxQlFVOHNSVUZEV0N4RFFVcFBTaXhGUVVGVExGZEJRVUZITEVWQlQxUXNVMEZCVTBVc1JVRkJWVWdzUlVGQmEwTXNRMEZEZUVRc1VVRkJVMFVzUzBGQlYwWXNSVUZCVHl4SFFVRkpSQ3hGUVVGbFJ5eERRVUZQTEVWQlFVY3NUVUZCVHl4SFFVVXZSQ3hOUVVGUExFVkJRMWdzUTBGS1Qwb3NSVUZCVXl4UFFVRkJTeXhGUVU5VUxGTkJRVk5ETEVWQlFWTkRMRVZCUVdsRUxFTkJRM1JGTEVkQlFVbE9MRVZCUVdWTkxFTkJRVkVzUlVGRGRrSXNUMEZCVDBRc1JVRkJUVU1zUlVGQlV5eEpRVUZKTEVWQlEzWkNMRWRCUVVsS0xFVkJRVmRKTEVOQlFWRXNSVUZCUnl4RFFVTTNRaXhKUVVGSk5VUXNSVUZCVXl4RlFVTmlMRkZCUVZNMlJDeExRVUZaUkN4RlFVRlZOVVFzUjBGQlZUSkVMRVZCUVUxRkxFVkJRVk1zU1VGQlNTeEZRVU0xUkN4UFFVRlBOMFFzUTBGRFdDeExRVU5KTEZGQlFVODBSQ3hGUVVGVExFMUJSWGhDTEVOQlZrOVFMRVZCUVZNc1RVRkJRVTBzUlVGaFZDeFRRVUZUUnl4RlFVRlRSaXhGUVVGMVFrY3NSVUZCWlVNc1JVRkJNRUlzUTBGRGNrWXNSMEZCU1VFc1IwRkJUMFFzUlVGQlR5eE5RVUZQTEVOQlFVTXNSVUZETVVJc1IwRkJTVXdzUlVGQlQwVXNRMEZCVVN4RlFVRkhMRTlCUVU5QkxFVkJRVk1zVFVGQlRVY3NSVUZCVDBNc1EwRkJSeXhGUVVkMFJDeEpRVUZKZWtJc1JVRkJVU3hGUVVOU01FSXNSVUZCVHl4RlFVTllMRXRCUVU4eFFpeEZRVUZSY1VJc1JVRkJVeXhSUVVGVlN5eEZRVUZQVGl4RlFVRk5ReXhGUVVGVGNrSXNRMEZCU3l4RFFVRkRMRWRCUVV0M1FpeEhRVU12UkVVc1IwRkJVVTRzUlVGQlRVTXNSVUZCVTNKQ0xFTkJRVXNzUTBGQlF5eEZRVU0zUWtFc1NVRkpTaXhIUVVGSlFTeEhRVUZUY1VJc1JVRkJVeXhQUVVGUkxFMUJRVThzUTBGQlF5eEZRVVYwUXl4SlFVRk5OVVFzUlVGQlowUXNRMEZCUXl4RlFVTjJSQ3hMUVVGUGRVTXNSVUZCVVhGQ0xFVkJRVk1zVVVGQlZVc3NSVUZCVDBRc1IwRkJTeXhEUVVNeFF5eEpRVUZOUlN4RlFVRlJUaXhGUVVGVGNrSXNRMEZCU3l4RlFVTjBRalJDTEVWQlFWbFNMRVZCUVUxUExFTkJRVXNzUlVGRGRrSkZMRVZCUVdFc1MwRkJTeXhKUVVGSlNDeEZRVUZOUml4RFFVRkxMRVZCUTJwRFRTeEZRVUZYTEV0QlFVc3NTVUZCU1VZc1JVRkJXVVlzUlVGQlRVUXNRMEZCUnl4RlFVVXZRMmhGTEVWQlFVOHNTMEZCU3l4RFFVTlNMRWxCUVV0clJTeEZRVUZOTEVsQlExZ3NTMEZCVFVvc1JVRkJUVWtzUlVGQlRTeExRVUZOUlN4RlFVRmhTQ3hGUVVGTlNTeEZRVUZYU2l4RFFVRkpMRU5CUXpsRUxFTkJRVU1zUlVGRlJFRXNSMEZCVVVVc1JVRkRValZDTEVkQlEwb3NRMEZGUVN4UFFVRlBka01zUTBGRFdDeERRV2hEVDNGRUxFVkJRVk1zVFVGQlFWTXNTVUZzUTBoVUxGRkJRVUVzUzBOb1dsWXNTVUZCVFdsQ0xFZEJRVTRzVFVGQlRVTXNRMEZCWXl4RFFVZG9RaXhaUVVGdFFrTXNSVUZCVlN4RFFVRldMRmRCUVVGQkxFVkJRM1JDTEV0QlFVc3NWMEZCWVN4RlFVTjBRaXhEUVVWUExFbEJRVTlETEVWQlFUaENMRU5CUTNoRExFOUJRVThzU1VGQlNVWXNSVUZCVVVVc1JVRkJSU3hMUVVGTExFdEJRVXNzUTBGQlF5eERRVU53UXl4RFFVVlBMRkZCUVZkQkxFVkJRWGxETEVOQlEzWkVMRTlCUVU5QkxFVkJRVVVzUzBGQlN5eExRVUZMTEVOQlEzWkNMRU5CUlU4c1QwRkJWVUVzUlVGQk9FSXNRMEZETTBNc1QwRkJUeXhKUVVOWUxFTkJSVThzVFVGQlkwTXNSVUZCYjBKRExFVkJRWEZETEVOQlF6RkZMRTlCUVU4c1MwRkJTeXhKUVVGSlJDeERRVUZKTEVOQlEzaENMRU5CUlU4c1QwRkJUMFVzUlVGQll5eERRVU40UWl4UFFVRlBMRXRCUVVzc1MwRkRhRUlzUTBGRlR5eE5RVUYzUWl4RFFVTXpRaXhQUVVGUExFbEJRMWdzUTBGRlR5eFpRVUZaUXl4RlFVRm5ReXhEUVVNdlF5eFBRVUZQTEV0QlFVc3NTMEZEYUVJc1EwRkRTaXhGUVV0aFF5eEhRVUZPTEUxQlFVMURMRU5CUVdNc1EwRkhhRUlzV1VGQmJVSkRMRVZCUVZVc1EwRkJWaXhYUVVGQlFTeEZRVU4wUWl4TFFVRkxMRmRCUVdFc1JVRkRkRUlzUTBGRlR5eEpRVUZQUXl4RlFVRXJRaXhEUVVONlF5eFBRVUZQTEVsQlExZ3NRMEZGVHl4UlFVRlhRU3hGUVVFd1F5eERRVU40UkN4UFFVRlBMRWxCUTFnc1EwRkZUeXhQUVVGVlVpeEZRVUU0UWl4RFFVTXpReXhQUVVGUExFbEJRVWxOTEVWQlFWRk9MRVZCUVVVc1MwRkJTeXhMUVVGTExFTkJRVU1zUTBGRGNFTXNRMEZGVHl4TlFVRmpVeXhGUVVGeFFrTXNSVUZCYjBNc1EwRkRNVVVzVDBGQlR5eExRVUZMTEU5QlFVOUJMRU5CUVVrc1EwRkRNMElzUTBGRlR5eFBRVUZQV0N4RlFVRmhMRU5CUTNaQ0xFOUJRVTlCTEVOQlExZ3NRMEZGVHl4TlFVRjNRaXhEUVVNelFpeFBRVUZQTEVsQlExZ3NRMEZGVHl4WlFVRlpXU3hGUVVFclFpeERRVU01UXl4TlFVRkpRU3hGUVVGbExFbEJRVWtzVFVGQlRVRXNSVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVOeVF5eEpRVUZKTEUxQlFVMHNSMEZCU3l4TFFVRkxMRXRCUVVzc1EwRkRlRU1zUTBGRFNpeEZRVmxwUWtNc1QwRkJWaXhEUVVWSkxGTkJRVk5ETEVWQlFXTmtMRVZCUVhkQ0xFTkJRMnhFTEU5QlFVOHNTVUZCU1VZc1IwRkJVVVVzUTBGQlN5eERRVU0xUWl4RFFVWlBZU3hGUVVGVExGRkJRVUZETEVWQlMxUXNVMEZCVTBNc1JVRkJZMUFzUlVGQmQwSXNRMEZEYkVRc1QwRkJUeXhKUVVGSlJpeEhRVUZSUlN4RFFVRkxMRU5CUXpWQ0xFTkJSazlMTEVWQlFWTXNVVUZCUVVVc1JVRkxWQ3hUUVVGVFF5eEZRVU5hUXl4RlFVTkJReXhGUVVOQkxFVkJRMWtzUTBGRFdpeFBRVUZKUkN4RlFVRk5MRmRCUTBaRExFVkJRVThzVjBGQmJVSXNSVUZCUlVRc1JVRkJUU3hOUVVGUFF5eEZRVUZQTEV0QlFVc3NSVUZETjBOSUxFVkJRVkZITEVWQlFVOHNTMEZCU3l4RlFVVjZRa2dzUlVGQlVVVXNSVUZCVFN4TFFVRkxMRU5CUld4RExFTkJXRTlLTEVWQlFWTXNVMEZCUVVjc1JVRmpWQ3hUUVVGVFJ5eEZRVU5hUml4RlFVTkJReXhGUVVOQkxFVkJRMWtzUTBGRFdpeFBRVUZQUml4RlFVRlRReXhGUVVGUFF5eEZRVUZSTEVOQlFVTkZMRVZCUVVkRExFbEJRVTFRTEVWQlFWRXNSVUZCUlUwc1JVRkJSME1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZETjBRc1EwRk9UMUlzUlVGQlV5eExRVUZCVFN4RlFWTlVMRk5CUVZOSExFVkJRV2RDUXl4RlFVRnZRa01zUlVGQmEwUXNRMEZEYkVjc1NVRkJUVU1zUlVGQll5eERRVUZETEVWQlEzSkNMRkZCUVZkRExFdEJRVmRJTEVWQlFVOHNRMEZEZWtJc1NVRkJUVWtzUlVGQlUwZ3NSVUZCUzBVc1EwRkJUeXhGUVVNelFpeEhRVUZKTEVOQlFVTkRMRVZCUVU4c1YwRkJXU3hQUVVGUFFTeEZRVUZQTEV0QlFVc3NSVUZGTTBOR0xFVkJRVThzUzBGQlMwVXNSVUZCVHl4TFFVRkxMRU5CUXpWQ0xFTkJSVUVzVDBGQlQyUXNSVUZCVHl4UlFVRlJXU3hEUVVGTkxFTkJRMmhETEVOQlZrOWFMRVZCUVZNc1QwRkJRVk1zUlVGaFZDeFRRVUZUVFN4RlFVRlZReXhGUVVGcFF5eERRVU4yUkN4SFFVRkpMRU5CUTBFc1QwRkJUMmhDTEVWQlFVOHNVVUZCVVdkQ0xFVkJRVXNzUTBGQlF5eERRVU5vUXl4UFFVRlRja0lzUlVGQlR5eERRVU5hTEU5QlFVOUxMRVZCUVU4c1VVRkJVVXdzUTBGQlN5eERRVU12UWl4RFFVTktMRU5CVGs5TExFVkJRVk1zVDBGQlFXVXNSVUZUYUVJc1pVRkJjMEpGTEVWQlFWTkRMRVZCUVdkRUxFTkJRek5GTEVkQlFVa3NRMEZEUVN4UFFVRlBiRUlzUlVGQlR5eFJRVUZSTEUxQlFVMXJRaXhEUVVGUExFTkJRM1pETEU5QlFWTjJRaXhGUVVGUExFTkJRMW9zVDBGQlQwc3NSVUZCVHl4UlFVRlJUQ3hEUVVGTExFTkJReTlDTEVOQlEwb3NRMEZPUVVzc1JVRkJjMElzVFVGQlFXbENMRWxCZWtSVWFrSXNVVUZCUVN4TFF6bEZWaXhKUVVGVmJVSXNUMEZCVml4RFFVVlZRU3hGUVVGQkxGZEJRWGxDTEVOQlFVVXNTMEZCVFN4WlFVRmhMRVZCUlRsRFFTeEZRVUZCTEZGQlFXMUNMRU5CUVVVc1MwRkJUU3hUUVVGVkxFVkJSWEpEUVN4RlFVRkJMRlZCUVhOQ0xFbEJRVWtzU1VGSGFFTXNVMEZCVTBNc1JVRkJVVU1zUlVGQmQwSXNRMEZETlVNc1QwRkJTVUVzUlVGQlNTeE5RVUZSTEVWQlFWVkdMRVZCUVVFc1VVRkZia0lzUTBGQlJTeExRVUZOTEU5QlFWRXNUVUZCVDBVc1EwRkJTU3hEUVVOMFF5eERRVXBQUml4RlFVRlRMRXRCUVVGRExFVkJUMVFzVTBGQlUwVXNSVUZCV1VNc1JVRkJNa0lzUTBGRGJrUXNUMEZCU1VFc1JVRkJZMG9zUlVGQlFTeFhRVU5PUVN4RlFVRkJMRTlCUTJoQ0xFTkJTRTlCTEVWQlFWTXNVMEZCUVVjc1JVRk5WQ3hUUVVGVFJTeEZRVUZuUWtnc1JVRkJiME1zUTBGRGFFVXNUMEZCVDBFc1NVRkJVU3hQUVVGWlJDeEZRVUZMUXl4RFFVRkhMRVZCUVVsR0xFVkJRVUVzVDBGRE0wTXNRMEZHVDBFc1JVRkJVeXhoUVVGQlN5eEZRVXRVTEZOQlFWTkRMRVZCUVZkS0xFVkJRWGRDTEVOQlF5OURMRTlCUVVsQkxFVkJRVWtzVFVGQlVTeEZRVUZWUml4RlFVRkJMRmRCUlc1Q0xFTkJRVVVzUzBGQlRTeFZRVUZYTEUxQlFVOUZMRU5CUVVrc1EwRkRla01zUTBGS1QwWXNSVUZCVXl4UlFVRkJUU3hGUVU5VUxGTkJRVk5ETEVWQlFWVkRMRVZCUVRoQ0xFTkJRM0JFTEU5QlFWRkJMRVZCUVU4c1MwRkJUU3hEUVVOcVFpeEpRVUZMTEdGQlEwUXNUMEZCVDFJc1JVRkJRU3hSUVVOWUxFbEJRVXNzVlVGRFJDeFBRVUZQUVN4RlFVRkJMRmRCUTFnc1NVRkJTeXhQUVVORUxFOUJRVTlOTEVWQlFWRkZMRVZCUVU4c1MwRkJTeXhGUVVNdlFpeEpRVUZMTEZWQlEwUXNUMEZCVDFBc1JVRkJTMDhzUlVGQlR5eExRVUZMTEVOQlEyaERMRU5CUTBvc1EwRllUMUlzUlVGQlV5eFBRVUZCVHl4RlFXTlVMRk5CUVZORkxFVkJRVk5FTEVWQlFUUkNMRU5CUTJwRUxFOUJRVkZCTEVWQlFVOHNTMEZCVFN4RFFVTnFRaXhKUVVGTExHRkJRMFFzVFVGQlR5eEhRVU5ZTEVsQlFVc3NWVUZEUkN4TlFVRlBMRWRCUTFnc1NVRkJTeXhQUVVORUxFOUJRVTlCTEVWQlFVOHNUVUZCVFN4TlFVRlJMRVZCUTJoRExFbEJRVXNzVlVGRFJDeE5RVUZQTEVWQlEyWXNRMEZEU2l4RFFWaFBVaXhGUVVGVExFMUJRVUZUTEVWQlkxUXNVMEZCVTBNc1JVRkJWMFlzUlVGQmJVSkhMRVZCUVRSQ0xFTkJRM1JGTEU5QlFWRklMRVZCUVU4c1MwRkJUU3hEUVVOcVFpeEpRVUZMTEdGQlEwUXNUMEZCVDBjc1JVRkRXQ3hKUVVGTExGVkJRMFFzVDBGQlQxZ3NSVUZCUVN4VlFVTllMRWxCUVVzc1QwRkRSQ3hQUVVGUFVTeEZRVUZQTEUxQlEyeENMRWxCUVVzc1ZVRkRSQ3hQUVVGUFNTeEZRVUZ4UWtRc1JVRkJXVWdzUlVGQlR5eExRVUZMTEVOQlF6VkVMRU5CUTBvc1EwRllUMUlzUlVGQlV5eFJRVUZCVlN4RlFXTlVMRk5CUVZOSExFVkJRV0ZETEVWQlFUQkRMRU5CUTI1RkxFOUJRVTlETEVWQlFXTkVMRVZCUVZkRkxFZEJRVTFCTEVOQlFVTXNRMEZETTBNc1EwRkdUMmhDTEVWQlFWTXNWVUZCUVdFc1JVRkxWQ3hUUVVGVFJTeEZRVU5hUkN4RlFVTkJSeXhGUVVOVExFTkJRMVFzVDBGQlQwTXNSVUZCZVVKS0xFVkJRVmRGTEVkQlFVMUhMRWRCUVU4c1VVRkJVVVlzUlVGQlVVUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3haUVVGWkxFTkJRemRHTEVOQlRFOW9RaXhGUVVGVExHTkJRVUZsTEVWQlVWUXNVMEZCVTBjc1JVRkRXa29zUlVGRFFVY3NSVUZEYjBJc1EwRkRjRUlzU1VGQlRVY3NSVUZCYTBJc1EwRkJReXhGUVVOdVFrTXNSVUZCYzBJc1EwRkJReXhGUVVNM1FpeFJRVUZUUXl4TFFVRlhVaXhGUVVGVkxFTkJRekZDTEVsQlFVMVRMRVZCUVdOT0xFVkJRVkZMTEVOQlFVOHNSVUZEYmtNc1IwRkJTU3hEUVVGRFF5eEZRVUZaTEZkQlFWa3NUMEZCVDBFc1JVRkJXU3hMUVVGTExFVkJSWEpFTEVsQlFVMW1MRVZCUVZObExFVkJRVmtzVFVGRE0wSXNSMEZCU1dZc1NVRkJWeXhQUVVkbUxFbEJRVWxETEVWQlFVMUVMRU5CUVUwc1JVRkJSeXhQUVVGUFZ5eEhRVUZQTEZGQlFWRnVRaXhGUVVGQkxFOUJRVThzUlVGRk5VTlJMRVZCUVU4c1QwRkJVeXhsUVVkb1FrRXNSVUZCVHl4TlFVRlJMRTlCUVZGWkxFVkJRVTBzUzBGQlMxb3NSVUZCVHl4TFFVRkxMRVZCUTNwRFFTeEZRVUZQTEUxQlFWRXNWMEZCVjJFc1JVRkJWU3hMUVVGTFlpeEZRVUZQTEV0QlFVc3NSMEZEYkVVc1EwRlJRU3hQUVVGSldTeEZRVUZOTEZGQlFWVXNSMEZCUzBNc1JVRkJWU3hSUVVGVkxFVkJRMnhEUml4SFFVRlBMRkZCUVZGdVFpeEZRVUZCTEZWQlFWVXNSVUZEZWtKdlFpeEZRVUZOTEU5QlFWTXNSMEZCUzBNc1JVRkJWU3hSUVVGVkxFVkJRM2hEUml4SFFVRlBMRkZCUVZGc1FpeEZRVUZMZFVJc1JVRkJZVW9zUTBGQlN5eERRVUZETEVOQlFVTXNSVUZEZUVOQkxFVkJRVTBzVVVGQlZTeEhRVUZMUXl4RlFVRlZMRTlCUVZNc1JVRkRlRU5HTEVkQlFVOHNVVUZCVVdJc1JVRkJVVzFDTEVWQlFWTktMRU5CUVZNc1EwRkJReXhEUVVGRExFVkJSVE5EUml4SFFVRlBMRkZCUVZGdVFpeEZRVUZSTEV0QlFVdFpMRVZCUVhGQ1dTeEZRVUZoU2l4RFFVRkxMRVZCUVVkTExFVkJRVk5LTEVOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkZNVWNzUTBGMFEwOXlRaXhGUVVGVExIbENRVUZCYTBJc1JVRjVRMVFzVTBGQlUxRXNSVUZCVTBNc1JVRkJlVU1zUTBGRE9VUXNUMEZCVDBNc1JVRkJWVVFzUlVGQlZWZ3NSMEZCVFVFc1EwRkJReXhEUVVOMFF5eERRVVpQYUVJc1JVRkJVeXhOUVVGQk1FSXNSVUZMVkN4VFFVRlRSU3hGUVVGblFtUXNSVUZCZFVKSExFVkJRWGxFTEVOQlF6VkhMRTlCUVU5WkxFVkJRV3RDWml4RlFVRlhSU3hIUVVGTlJ5eEhRVUZQTEZGQlFWRkdMRVZCUVZGRUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVTjBSaXhEUVVaUGFFSXNSVUZCVXl4VlFVRkJORUlzUlVGTFZDeFRRVUZUUXl4RlFVTmFaaXhGUVVOQlJ5eEZRVU52UWl4RFFVTndRaXhKUVVGTlJ5eEZRVUZyUWl4RFFVRkRMRVZCUTI1Q1F5eEZRVUZ6UWl4RFFVRkRMRVZCUXpkQ0xGRkJRVk5ETEV0QlFWZFNMRVZCUVZVc1EwRkRNVUlzU1VGQlRWTXNSVUZCWTA0c1JVRkJVVXNzUTBGQlR5eEZRVU51UXl4SFFVRkpMRU5CUVVORExFVkJRVmtzVjBGQldTeFBRVUZQUVN4RlFVRlpMRXRCUVVzc1JVRkZja1FzU1VGQlRXWXNSVUZCVTJVc1JVRkJXU3hOUVVNelFpeEhRVUZKWml4SlFVRlhMRTlCUjJZc1NVRkJTVUVzUlVGQlR5eFBRVUZUTEdGQlFXTXNUMEZCVDFjc1IwRkJUeXhSUVVGUmJrSXNSVUZCUVN4VlFVRlZMRVZCUlRsRVV5eEZRVUZOUkN4RFFVRk5MRWxCUjFwQkxFVkJRVThzVFVGQlVTeFBRVUZSV1N4RlFVRk5MRXRCUVV0YUxFVkJRVThzUzBGQlN5eEZRVU42UTBFc1JVRkJUeXhOUVVGUkxGZEJRVmRoTEVWQlFWVXNTMEZCUzJJc1JVRkJUeXhMUVVGTExFZEJRMnhGTEVOQlYwRXNUMEZCU1Zrc1JVRkJUU3hSUVVGVkxFZEJRVXRETEVWQlFWVXNVVUZCVlN4RlFVTnNRMFlzUjBGQlR5eFJRVUZSYmtJc1JVRkJRU3hQUVVGUExFVkJRM1JDYjBJc1JVRkJUU3hQUVVGVExFZEJRVXRETEVWQlFWVXNVVUZCVlN4RlFVTjRRMFlzUjBGQlR5eFJRVUZSYmtJc1JVRkJVU3hMUVVGTGVVSXNSVUZCVTB3c1EwRkJTeXhEUVVGRExFTkJRVU1zUlVGRE5VTkJMRVZCUVUwc1VVRkJWU3hIUVVGTFF5eEZRVUZWTEU5QlFWTXNSVUZEZUVOR0xFZEJRVThzVVVGQlVXNUNMRVZCUVZFc1VVRkJVWGRDTEVWQlFXRklMRU5CUVZNc1EwRkJReXhEUVVGRExFVkJSWFpFUml4SFFVRlBMRkZCUVZGaUxFVkJRVkZOTEVWQlFYRkNXU3hGUVVGaFNDeERRVUZUTEVWQlFVZEpMRVZCUVZOTUxFTkJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZGY2tjc1EwRjZRMDl3UWl4RlFVRlRMR3RDUVVGQk5rSXNSVUUwUTFRc1UwRkJVMHdzUlVGQlowSk5MRVZCUVhkQ0xFTkJRM0JFTEVkQlFVbEJMRVZCUVVzc1VVRkJWU3hGUVVGSExFOUJRVThzU1VGQlNTeEpRVU0xUWl4SFFVRkpRU3hGUVVGTExGRkJRVlVzUlVGQlJ5eFBRVUZQUVN4RlFVRkxMRU5CUVVNc1JVRkhlRU1zU1VGQlNVTXNSVUZCVlN4RFFVRkRMRVZCUVdVc1QwRkJUMFFzUTBGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUTBVc1JVRkJSME1zU1VGQlRVUXNSVUZCUlN4TFFVRlBReXhGUVVGRkxFbEJRVWtzUlVGRmVrVXNTMEZCVDBZc1JVRkJUeXhQUVVGVExFZEJRVWNzUTBGRGRFSXNTVUZCVFVjc1JVRkJVeXhKUVVGSkxFbEJRMkpETEVWQlFWVktMRVZCUVU4c1NVRkJTU3hGUVVVelFpeFJRVUZUVkN4TFFVRlhVeXhGUVVGUExFTkJRVU1zUlVGRGNFSkpMRVZCUVZFc1NVRkJTV0lzUTBGQlR5eEhRVUZIV1N4RlFVRlBMRWxCUVVsYUxFTkJRVThzUlVGSGFFUlRMRVZCUVU4c1EwRkJReXhGUVVGSlJ5eERRVU5vUWl4RFFVVkJMRTlCUVU5SUxFVkJRVThzUTBGQlF5eERRVU51UWl4RFFXNUNUeTlDTEVWQlFWTXNZVUZCUVhkQ0xFVkJjMEpVTEZOQlFWTkRMRVZCUVZsTExFVkJRWGRDTEVOQlEyaEVMRWRCUVVsQkxFVkJRVXNzVVVGQlZTeEZRVUZITEU5QlFVOHNTVUZCU1N4SlFVTTFRaXhIUVVGSlFTeEZRVUZMTEZGQlFWVXNSVUZCUnl4UFFVRlBRU3hGUVVGTExFTkJRVU1zUlVGSGVFTXNTVUZCVFVrc1JVRkJVeXhKUVVGSkxFbEJRMjVDTEZGQlFWZG9ReXhMUVVGUE5FSXNSVUZEWkN4UlFVRlhVaXhMUVVGWGNFSXNSVUZEYkVKblF5eEZRVUZQTEVsQlFVbGFMRU5CUVU4c1JVRkpNVUlzVDBGQlQxa3NRMEZEV0N4RFFXSlBiRU1zUlVGQlV5eFRRVUZCZVVJc1JVRm5RbFFzVTBGQlUySXNSVUZCZDBKWUxFVkJRV05MTEVWQlFYbENMRU5CUXpORkxFZEJRVWxNTEVWQlFVc3NTMEZCVDBzc1JVRkJVU3hMUVVGTkxFTkJSVEZDTEVsQlFVMDBRaXhGUVVGVExFbEJRVWtzU1VGQlNXcERMRU5CUVVrc1JVRkRNMElzVVVGQlUzRkNMRXRCUVZkb1FpeEZRVU5vUWpSQ0xFVkJRVThzVDBGQlQxb3NRMEZCVHl4RlFVZDZRaXhQUVVGUFdTeERRVU5ZTEV0QlFYVkRMRU5CUTI1RExFbEJRVTFCTEVWQlFWTXNTVUZCU1N4SlFVTnVRaXhSUVVGVFdpeExRVUZYY2tJc1JVRkRXa3NzUlVGQlVTeEpRVUZKWjBJc1EwRkJUeXhIUVVOMlFsa3NSVUZCVHl4SlFVRkpXaXhEUVVGUExFVkJSM1JDTEU5QlFVOVpMRU5CUTFnc1EwRkRTaXhEUVd4Q1QyeERMRVZCUVZNc2NVSkJRVUZaTEVsQk9VNUlXaXhSUVVGQkxFdERhVVZXTEVsQlFWVnZReXhQUVVGV0xFTkJSVlZCTEVWQlFVRXNTVUZCWXl4UFFVVndRaXhUUVVGVFF5eEZRVUZUUXl4RlFVRnJReXhEUVVOMlJDeE5RVUZQTEVOQlFVVXNTMEZCVFN4WFFVRlpMRXRCUVVGQkxFTkJRVXNzUTBGRGNFTXNRMEZHVDBZc1JVRkJVeXhUUVVGQlF5eEZRVWxVTEZOQlFWTkZMRVZCUVZGRExFVkJRVzFETEVOQlEzWkVMRTFCUVU4c1EwRkJSU3hMUVVGTkxGVkJRVmNzVFVGQlFVRXNRMEZCVFN4RFFVTndReXhEUVVaUFNpeEZRVUZUTEZGQlFVRkhMRVZCU1ZRc1UwRkJVMFVzUlVGQlUwTXNSVUZCYTBKRExFVkJRV05ETEVWQlFTdENMRU5CUTNCR0xFMUJRVThzUTBGQlJTeExRVUZOTEZkQlFWa3NTMEZCUVVZc1JVRkJUU3hIUVVGQlF5eEZRVUZKTEUxQlFVRkRMRU5CUVUwc1EwRkRMME1zUTBGR1QxSXNSVUZCVXl4VFFVRkJTeXhGUVVsVUxGTkJRVk5KTEVWQlFVMURMRVZCUVdsQ1JDeEZRVUVyUWl4RFFVTnNSU3hOUVVGUExFTkJRVVVzUzBGQlRTeFhRVUZaTEV0QlFVMURMRVZCUVVzc1RVRkJUMFFzUlVGQlR5eEhRVUZKTEU5QlFWRXNRMEZEY0VVc1EwRkdUMVFzUlVGQlV5eE5RVUZCVXl4RlFVdFVMRk5CUVZORkxFVkJRV05VTEVWQlFUQkNMRU5CUTNCRUxFbEJRVWxWTEVWQlFWRldMRVZCUVVzc1RVRkJUU3hIUVVGSExFVkJRM1JDVnl4RlFVRnhRbUlzUlVGQldTeFRRVUZUV1N4RlFVRk5MRU5CUVVNc1EwRkJReXhGUVVOMFJDeFJRVUZUU0N4RlFVRlJMRVZCUVVkQkxFVkJRVkZITEVWQlFVMHNUMEZCVVVnc1NVRkRkRU5KTEVWQlFWTmlMRVZCUVZrc1RVRkJUV0VzUlVGQlVXSXNSVUZCV1N4UlFVRlJXU3hGUVVGTlNDeERRVUZMTEVOQlFVTXNRMEZCUXl4RlFVZDRSU3hQUVVGUFNTeERRVU5ZTEVOQlVrOWlMRVZCUVZNc1kwRkJRVmNzUlVGVlZDeFRRVUZUUnl4RlFVRlBReXhGUVVGblFsZ3NSVUZCY1VNc1EwRkRlRVVzVFVGQlR5eERRVUZGTEV0QlFVMHNVMEZCVlN4VlFVRlhWeXhGUVVGTkxFMUJRVUZZTEVOQlFVMHNRMEZEY0VRc1EwRkdUMG9zUlVGQlV5eFBRVUZCWXl4RlFVbFVMRk5CUVZORkxFVkJRVXRCTEVWQlFXdENSQ3hGUVVGM1F5eERRVU16UlN4TlFVRlBMRU5CUVVVc1MwRkJUU3hYUVVGWkxFdEJRVUZETEVWQlFVMHNWVUZCVjBRc1EwRkJTeXhEUVVOeVJDeERRVVpQWml4RlFVRlRMRXRCUVVGblFpeEZRVWxVTEZOQlFWTkRMRVZCUVV0RExFVkJRWE5ETEVOQlEzWkVMRTFCUVU4c1EwRkJSU3hMUVVGTkxFOUJRVkVzVDBGQlFVRXNRMEZCVHl4RFFVTnNReXhEUVVaUGJFSXNSVUZCVXl4TFFVRkJhVUlzUlVGSlZDeFRRVUZUUlN4RlFVRlBSQ3hGUVVGelJDeERRVU42UlN4TlFVRlBMRU5CUVVVc1MwRkJUU3hUUVVGVkxFOUJRVUZCTEVOQlFVOHNRMEZEY0VNc1EwRkdUMnhDTEVWQlFWTXNUMEZCUVcxQ0xFVkJTVlFzVTBGQlUwTXNSVUZCVDBNc1JVRkJjME1zUTBGRGVrUXNUVUZCVHl4RFFVRkZMRXRCUVUwc1ZVRkJWeXhOUVVGQlFTeERRVUZOTEVOQlEzQkRMRU5CUms5eVFpeEZRVUZUTEU5QlFVRnZRaXhGUVVsVUxGTkJRVk5GTEVWQlFWbG1MRVZCUVN0Q0xFTkJRM1pFTEU5QlFVOUJMRWRCUVUwc1RVRkJVVUVzUjBGQlRTeExRVUZQUVN4SFFVRk5MRXRCUVU5QkxFZEJRVTBzVFVGQlVVRXNSMEZCVFN4TlFVRlJRU3hIUVVGTkxFZEJRM0pHTEVOQlJrOVFMRVZCUVZNc1dVRkJRWE5DTEVWQlMxUXNVMEZCVTBNc1JVRkJhVUpETEVWQlFXdENReXhGUVVGeFFpeEpRVUZKTEVsQlFVa3NRMEZCUTNwQ0xFVkJRVUVzUjBGQlJ5eERRVUZETEVWQlFXZENMRU5CUTJwSExFOUJRVkYzUWl4RlFVRkxMRXRCUVUwc1EwRkRaaXhKUVVGTExGZEJSVVFzVDBGRFNVRXNSVUZCU3l4TFFVRlBMRk5CUTFwQkxFVkJRVXNzUzBGQlN5eE5RVUZSTEZsQlEyeENRU3hGUVVGTExFdEJRVXNzVFVGQlVYaENMRVZCUVVFc1MwRkRiRUozUWl4RlFVRkxMRTFCUVUwc1RVRkJVU3hYUVVOdVFrVXNSMEZCVXl4VFFVRlRSaXhGUVVGTExFMUJRVTBzUzBGQlN5eEZRVVU1UWtNc1JVRkJUU3hKUVVGSlJDeEZRVUZMTEUxQlFVMHNTMEZCU3l4RlFVRlZMRWxCUVVrc1NVRkRhRU1zU1VGQlNTeEpRVUZKTEVOQlFVTkJMRVZCUVVzc1RVRkJUU3hMUVVGTExFTkJRVU1zUlVGSmJrTkhMRWRCUVZFc1UwRkJVeXhEUVVGRFNpeEZRVUZwUWtNc1JVRkJTeXhMUVVGTlF5eERRVUZMTEVWQlFVZEdMRVZCUVdsQ1F5eEZRVUZMTEUxQlFVOURMRU5CUVVzc1EwRkJReXhEUVVGRExFVkJRM0pITEVsQlFVc3NWMEZEUkN4UFFVRlBSU3hIUVVGUkxGTkJRVk5JTEVWQlFVc3NWVUZCVlN4SlFVRkxTU3hIUVVGTlRDeEZRVUZwUWtzc1JVRkJSMGdzUTBGQlN5eERRVUZETEVOQlFVTXNSVUZEYWtZc1NVRkJTeXhUUVVORUxFbEJRVTFKTEVWQlFWZEtMRWRCUVVFc1MwRkJRVUVzUlVGQlV5eEpRVUZKTEVsQlF6bENMRkZCUVZkTExFdEJRVTlPTEVWQlFVc3NWVUZCVjBzc1JVRkJVeXhKUVVGSlF5eERRVUZITEVWQlJXeEVMRTlCUVU5UUxFVkJRV2xDUXl4RlFVRkxMRTFCUVU5TExFTkJRVkVzUlVGRGFFUXNTVUZCU3l4UFFVTkVMRTlCUVU5R0xFZEJRVkVzVTBGQlUwZ3NSVUZCU3l4UFFVRlBMRWxCUVV0UExFZEJRVTFTTEVWQlFXbENVU3hGUVVGSFRpeERRVUZMTEVOQlFVTXNRMEZCUXl4RlFVTTVSU3hKUVVGTExGVkJRMFFzVDBGQlQwWXNSVUZCYVVKRExFVkJRVXNzVFVGQlQwTXNRMEZCU3l4RlFVTTNReXhKUVVGTExGTkJRMFFzVDBGQlQwVXNSMEZCVVN4VFFVRlRMRTlCUVU4c1QwRkJUMGdzUlVGQlN5eE5RVUZOTEVWQlFVVXNTVUZCUzA4c1IwRkJUVklzUlVGQmFVSlJMRVZCUVVkT0xFTkJRVXNzUTBGQlF5eERRVUZETEVWQlF6ZEdMRWxCUVVzc1YwRkRSQ3hQUVVGSlFTeEhRVUZUUVN4RlFVRk5MRWxCUVVsRUxFVkJRVXNzU1VGQlNTeEZRVUZWTEVsQlFVa3NTVUZEYkVNc1NVRkJTU3hKUVVGSkxFTkJRVU5CTEVWQlFVc3NTVUZCU1N4RFFVRkRMRVZCUTI1RExFbEJRVXNzVlVGRFJDeFBRVUZQTEVsQlFVa3NSMEZEYmtJc1EwRkRTaXhEUVhCRFQzaENMRVZCUVZNc2FVSkJRVUYxUWl4RlFYVkRWQ3hUUVVGVFV5eEZRVUZUVWl4RlFVRXdRaXhEUVVNdlF5eFBRVUZSUVN4RlFVRkxMRXRCUVUwc1EwRkRaaXhKUVVGTExGZEJRMFFzVDBGQlNVRXNSVUZCU3l4TFFVRlBMRkZCUTB3c1IwRkJSMUVzUlVGQlUxSXNSVUZCU3l4SlFVRkpMRU5CUVVNc1NVRkJTVkVzUlVGQlUxSXNSVUZCU3l4TFFVRkxMRU5CUVVNc1NVRkhiRVFzUjBGQlIxRXNSVUZCVTFJc1JVRkJTeXhKUVVGSkxFTkJRVU1zU1VGQlNVRXNSVUZCU3l4RlFVRkZMRWxCUVVsUkxFVkJRVk5TTEVWQlFVc3NTMEZCU3l4RFFVRkRMRWRCUTNCRkxFbEJRVXNzVjBGRFJDeE5RVUZQTEVkQlFVZFJMRVZCUVZOU0xFVkJRVXNzU1VGQlNTeERRVUZETEVsQlFVbEJMRVZCUVVzc1ZVRkJWU3hKUVVGSlVTeERRVUZSTEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1NVRkROVVVzU1VGQlN5eFRRVU5FTEUxQlFVOHNTVUZCU1ZJc1JVRkJTeXhWUVVGVkxFdEJRVXNzU1VGQlNTeERRVUZETEZGQlFWRlJMRVZCUVZOU0xFVkJRVXNzUzBGQlN5eERRVUZETEVkQlEzQkZMRWxCUVVzc1QwRkRSQ3hOUVVGUExFbEJRVWxCTEVWQlFVc3NUMEZCVHl4SlFVRkpVU3hEUVVGUkxFVkJRVVVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTVUZEYmtRc1NVRkJTeXhWUVVORUxFMUJRVThzU1VGQlNVRXNSVUZCVTFJc1JVRkJTeXhMUVVGTExFTkJRVU1zUjBGRGJrTXNTVUZCU3l4VFFVTkVMRTFCUVU4c1NVRkJTU3hQUVVGUExGRkJRVkZCTEVWQlFVc3NUVUZCVFN4RlFVTm9ReXhKUVVGSkxFTkJRVU1zUTBGQlExTXNSVUZCUjBZc1EwRkJReXhKUVVGTkxFZEJRVWRGTEVOQlFVTXNTMEZCUzBRc1JVRkJVMFFzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZEZEVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zU1VGRGJrSXNTVUZCU3l4WFFVTkVMRTlCUVU5UUxFVkJRVXNzUzBGRGFFSXNTVUZCU3l4VlFVTkVMRWxCUVUxVkxFVkJRVlZTTEVkQlFWTXNWVUZCVlVZc1JVRkJTeXhMUVVGTExFVkJRemRETEVkQlFVa3NRMEZCUTFVc1JVRkJVeXhOUVVGUExFOUJRM0pDTEU5QlFWRkJMRVZCUVZFc1MwRkJUU3hEUVVOc1FpeEpRVUZMTEZOQlEwUXNUVUZCVHl4SlFVRkpRU3hGUVVGUkxFdEJRVXNzU1VGRE5VSXNVVUZEU1N4UFFVRlBVaXhIUVVGVExGTkJRVk5STEVWQlFWRXNTMEZCU3l4RFFVTTVReXhEUVVOU0xFTkJRMG9zUTBGb1EwOXNReXhGUVVGVExGTkJRVUZuUXl4RlFXdERTR2hETEVWQlFVRXNTMEZCVDBFc1JVRkJXU3hSUVVGUkxFbEJRVWtzU1VGcVNTOUNRU3hSUVVGQkxFdEtabFlzU1VGQlRXMURMRVZCUVdVc2FVSkJRVzFETEVOQlF6TkVMRTlCUVZORExFZEJRMGdzVTBGQlR5eHhRa0ZCY1VJc1JVRkRla0lzU1VGQlMwTXNSMEZCVVN4UFFVRlBMRmRCUVZkQkxFTkJRVWNzUTBGQlF5eEZRVU51UXl4TFFVRkxMRkZCUVZFc1JVRkhkRUlzVDBGQlUwTXNSMEZEU0N4VFFVRlBMRWRCUVVjc1JVRkRVQ3hMUVVOTExFMUJRVWxCTEVWQlFVVXNaMEpCUVcxQ0xGTkJRVThzUzBGQlN5eERRVUZETEVWQlEyNURMRkZCUVZFc1EwRkJReXhGUVVOVUxFbEJRVXRETEVkQlFWVkJMRVZCUVUwc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGRGRFTXNSVUZEUXl4TFFVRlBMRk5CUVU4c1IwRkJSeXhEUVVGRExFVkJRMnhDTEV0QlFVc3NVVUZCVVN4RlFVVjBRaXhuUWtGQmEwSklMRWRCUTFvc1UwRkJUeXhKUVVGSkxFVkJRMUlzUzBGQlR5eExRVUZITEVWQlExWXNTVUZCUzBrc1IwRkZSVUVzU1VGQldTeEpRVUZaTEVsQlEzaENRU3hKUVVGWkxFdEJRV0VzUzBGRGFrSXNTMEZCVDBFc1EwRkRkRUlzUlVGSFZDeExRVUZQU2l4SFFVTkVMRk5CUVU4c2RVSkJRWFZDTEVWQlF6TkNMRWxCUVV0RExFZEJRVkZCTEVWQlFVa3NXVUZCV1N4SFFVRkxMRTFCUVUwc1JVRkRlRU1zUzBGQlN5eFRRVUZUTEVWQlIzWkNMRWxCUVUxRUxFZEJRMEVzVTBGRFNTeFRRVUZQTEVkQlFVY3NSVUZEVml4TlFVRk5MRk5CUVU4c2FVVkJRV2xGTEVWQlFVVXNTMEZCU3l4TlFVRk5MRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRM0pITEVOQlFVTkxMRVZCUVU5RExFbEJRVk5FTEVWQlFWRkRMRVZCUVVzc1MwRkJTeXhGUVVGRkxFTkJRM3BETEVWQlFVVXNTMEZCU3l4TFFVRkxMRVZCUjJoQ0xGZEJRV0ZPTEVkQlExQXNVMEZEU1N4TlFVRk5MRk5CUVU4c1owSkJRV2RDTEVWQlFVc3NVMEZCVDA4c1JVRkJWeXhGUVVGRkxFdEJRVXNzVFVGQlRTeERRVUZETEVWQlEyeEZMRTFCUVUwc1UwRkJUeXh4UWtGQmNVSXNSVUZCU3l4VFFVRlBRU3hGUVVGWExFVkJRVVVzUzBGQlN5eE5RVUZOTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUTJoR0xFTkJRVU5ETEVWQlFVOUdMRWxCUVZORkxFVkJRVkZHTEVWQlFVc3NTMEZCU3l4RlFVRkZMRU5CUTNwRExFVkJRVVVzUzBGQlN5eFZRVUZWTEVWQlIzSkNMRXRCUVU5T0xFZEJRMFFzVTBGQlR5eDFRa0ZCZDBJc1EwRkJReXhGUVVNM1FpeEpRVUZMVXl4SFFVRmpReXhIUVVGTExGZEJRVmRFTEVOQlFWTXNRMEZCUXl4RlFVTTNReXhMUVVGTExGZEJRVmNzUlVGSmVrSXNWVUZCV1ZBc1IwRkRUaXhUUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RlFVRkhRU3hGUVVGRkxFdEJRVTBzUTBGQlExTXNSVUZCUjBNc1MwRkRkRU5FTEVWQlFVVXNUMEZCVXl4SlFVRkhReXhGUVVGRkxFMUJRVkVzU1VGRGNrSkJMRVZCUTFZc1JVRkJSU3hMUVVGTExGZEJRVmNzUlVGSGRrSXNaMEpCUVd0Q1dpeEhRVU5hTEZOQlFVOHNUVUZCVFN4RlFVTldMRWxCUVV0RExFZEJRVkZCTEVOQlFXVXNSVUZETlVJc1MwRkJTeXhaUVVGWkxFVkJSekZDTEdGQlFXVkVMRWRCUTFRc1UwRkJUeXhUUVVGVExFVkJRMklzU1VGQlMwTXNSMEZCVVVFc1EwRkJaU3hGUVVNMVFpeExRVUZMTEcxQ1FVRnRRaXhGUVVkcVF5eG5Ra0ZCYTBKRUxFZEJRMW9zVTBGQlR5eG5Ra0ZCWjBJc1JVRkRjRUlzU1VGQlMwTXNSMEZCVVVFc1EwRkJaU3hGUVVNMVFpeExRVUZMTERKRFFVRXlReXhGUVVkNlJDeFpRVUZqUkN4SFFVTlNMRk5CUVU4c1VVRkJVU3hGUVVOYUxFbEJRVXRoTEVkQlFWTXNSMEZCWlN4RlFVTTNRaXhMUVVGTExFOUJRVThzUlVGRGNrSXNWMEZCWVdJc1IwRkRVQ3hUUVVGUExGRkJRVkVzUlVGRFdpeEpRVUZMWVN4SFFVRlRMRWRCUVdVc1JVRkROMElzUzBGQlN5eE5RVUZOTEVWQlIzQkNMRk5CUVZkaUxFZEJRMHdzVTBGQlV5eFRRVUZQTEU5QlFVOHNSVUZCU3l4VFFVRlBMRWRCUVVjc1JVRkJTeXhUUVVGUExFOUJRVThzUlVGQlJ5eERRVUZEWXl4RlFVRk5aQ3hGUVVGSFpTeEpRVU0zUkVNc1JVRkJVeXhYUVVGWExFTkJRVVVzUzBGQlRTeFBRVUZQTEZOQlFWTkdMRU5CUVVrc1JVRkJSeXhOUVVGUExFOUJRVThzVTBGQlUwTXNRMEZCU3l4RFFVRkZMRU5CUVVNc1EwRkROVVlzUlVGQlJTeExRVUZMTEhsRFFVRjVReXhGUVVOeVJDeGpRVUZuUW1Zc1IwRkRWaXhOUVVORkxFZEJRVWNzVDBGQlR5eExRVUZMYVVJc1JVRkJaU3hGUVVONlFpeExRVUZMTEVOQlFVTkRMRVZCUVVkRExFbEJRVTFCTEVWQlFVVXNUMEZCVTBRc1JVRkJSU3hOUVVGTkxFVkJRMnhETEVsQlFVMHNVVUZCVFN4RFFVTnlRaXhGUVVOS0xFdEJRVTlvUWl4SFFVTklhMElzUjBGRFNXeENMRVZCUVVVc1UwRkRSRzFDTEVkQlEwc3NVMEZCVXl4VFFVRlBMRWRCUVVjc1JVRkJTeXhUUVVGUExFOUJRVThzUlVGQlJ5eERRVUZEY2tJc1JVRkJSM05DTEVsQlFWRkVMRVZCUVVjc1NVRkJTU3hEUVVGRkxFbEJRVXNzVDBGQlR5eFRRVUZUUXl4RFFVRkhMRU5CUVVVc1EwRkJReXhEUVVGRExFVkJReTlHUXl4SFFVTkxMRk5CUVZNc1UwRkJUeXhIUVVGSExFVkJRVXNzVTBGQlR5eFBRVUZQTEVWQlFVY3NRMEZCUTNaQ0xFVkJRVWQzUWl4SlFVRlRSQ3hGUVVGSkxFbEJRVWtzUTBGQlJTeExRVUZOTEU5QlFVOHNVMEZCVTBNc1EwRkJTU3hEUVVGRkxFTkJRVU1zUTBGQlF5eEZRVU51UjBNc1IwRkRTeXhUUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZMTEZOQlFVOHNUMEZCVHl4RlFVRkhMRU5CUVVONlFpeEZRVUZITUVJc1NVRkRNME5FTEVWQlFVc3NTVUZCU1N4RFFVRkZMRTlCUVZFc1QwRkJUeXhUUVVGVFF5eERRVUZOTEVOQlFVVXNRMEZCUXl4RFFVTm9SQ3hGUVVOSVF5eEhRVU5MTEZOQlFWTXNVMEZCVHl4SFFVRkhMRVZCUVVzc1UwRkJUeXhQUVVGUExFVkJRVWNzUTBGQlF6TkNMRVZCUVVjMFFpeEpRVU16UTBRc1JVRkJUU3hKUVVGSkxFTkJRVVVzVDBGQlVTeFBRVUZQTEZOQlFWTkRMRU5CUVUwc1EwRkJSU3hEUVVGRExFTkJRMnBFTEVWQlEwaERMRWRCUTBzc1RVRkRTU3hUUVVGVExGTkJRVThzUjBGQlJ5eEZRVUZMTEZOQlFVOHNUMEZCVHl4RlFVRkhMRU5CUVVNM1FpeEZRVUZIT0VJc1NVRkRNME5FTEVWQlFVOHNTVUZCU1N4RFFVRkZMRmxCUVdFc1QwRkJUeXhUUVVGVFF5eERRVUZYTEVOQlFVVXNRMEZCUXl4RFFVTTFSQ3hGUVVORkxGVkJRVkZFTEVOQlFVMHNRMEZEY0VJc1JVRkRTRVVzUjBGRFN5eE5RVU5KTEZOQlFWTXNVMEZCVHl4SFFVRkhMRVZCUVVVc1IwRkJTeXhUUVVGUExFZEJRVWNzUTBGQlF5eEZRVUZMTEZOQlFVOHNhMEpCUVd0Q0xFVkJRVWNzUTBGQlEwTXNSVUZCU1VNc1NVRkRla1ZHTEVWQlFVY3NVVUZCVVN4TlFVRlJReXhGUVVGTFF5eEZRVUZKTEVOQlFVVXNZMEZCWlN4RlFVRkxMRU5CUVVNc1EwRkRka1FzUlVGRFJTeFRRVUZUTEZOQlFVOHNSMEZCUnl4RlFVRkhMRWxCUVUxR0xFVkJRVWNzVVVGQlVTeE5RVUZQTEVOQlFVVXNZMEZCWlN4RlFVRkxMRU5CUVVNc1EwRkJReXhGUVVOMFJTeFRRVUZUTEZOQlFVOHNSMEZCUnl4RlFVRkxMRk5CUVU4c2JVSkJRVzFDTEVWQlFVc3NVMEZCVHl4SFFVRkhMRVZCUVVjc1EwRkJRMGNzUlVGQlNVTXNSVUZCVFVNc1NVRkROMFZNTEVWQlFVY3NVVUZCVVVrc1JVRkJUU3hEUVVGRkxHTkJRV1VzUlVGQlN5eERRVUZETEVOQlF6VkRMRU5CUTBvc1EwRkRVaXhGUVVOTExFOUJRVkZLTEVkQlFXbENRU3hGUVVGSExGRkJRVk1zV1VGQldTeEZRVU5xUkN4TFFVRkxMSGxEUVVGNVF5eEZRVWQyUkN4VFFVRlhOMElzUjBGRFRDeE5RVU5GUVN4RlFVRkZMR05CUVdNc1NVRkJTMjFETEVkQlFVMXdRaXhIUVVGblFtOUNMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJReTlEYmtNc1JVRkJSU3hKUVVOT0xFVkJRVVVzUzBGQlN5eDVSRUZCZVVRc1JVRkhjRVVzWVVGQlpVWXNSMEZEVkN4TlFVTkZMRWRCUVVjc1QwRkJUeXhMUVVGTGMwTXNSVUZCWXl4RlFVTjRRaXhMUVVGTExFTkJRVU53UWl4RlFVRkhReXhKUVVGTlFTeEZRVUZGTEU5QlFWTkVMRVZCUVVVc1RVRkJUU3hGUVVOc1F5eEpRVUZOTEZGQlFVMHNRMEZEY2tJc1JVRkRTaXhUUVVGWGFFSXNSMEZEVEN4VFFVRlBRU3hGUVVGRkxFOUJRVlVzWjBKQlFXVkJMRVZCUVVVc1lVRkJZeXhEUVVGRGNVTXNSVUZCVDNaRExFVkJRVWQzUXl4SlFVTXpSRVlzUjBGQlpVVXNRMEZCUXl4RlFVRkZMRk5CUVZWRExFZEJRVTFCTEVWQlFVbEdMRU5CUVVzc1EwRkRMME1zUlVGRFN5eFBRVUZUTEZOQlFVOHNSMEZCUnl4RlFVRkZMRXRCUVU4c1pVRkJZU3hGUVVGRkxFZEJRVXNzWlVGQllTeERRVUZETEVWQlF6bEVMRWxCUVV0SExFZEJRV05CTEVWQlFWVXNUMEZCVHl4RFFVRkRMMElzUlVGQlIyZERMRWxCUVUxb1F5eEZRVUZGTEV0QlFVdG5ReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU40UkN4TFFVRkxMSFZDUVVGMVFpeEZRVWR5UXl4UlFVRlZNME1zUjBGQlVTeFRRVUZQTEUxQlFVMHNSVUZITDBJc1owSkJRV3RDUlN4SFFVTmFMRTFCUTBWQkxFVkJRVVVzUzBGRFJrRXNSVUZCUlN4VFFVRlRMRWxCUVV0dFF5eEhRVUZOVHl4SFFVRnJRbEFzUTBGQlF5eERRVUZETEVWQlF6RkRia01zUlVGQlJTeFBRVU5HUVN4RlFVRkZMRWxCUTBaQkxFVkJRVVVzVlVGRFJrRXNSVUZCUlN4TFFVTkdRU3hGUVVGRkxFOUJRMFpCTEVWQlFVVXNUMEZEVGl4RlFVTktMR2RDUVVGclFrRXNSMEZCVFVFc1JVRkJSU3huUWtGQlowSXNUVUZCVVN4VFFVRlBMRWRCUVVjc1JVRkJSU3hMUVVGUExHVkJRV0VzUlVGQlJTeFZRVUZWUVN4RlFVRkZMR1ZCUVdVc1EwRkJReXhGUVVOb1NDeFpRVUZqUVN4SFFVTlNMRTFCUTBrc1UwRkJUMEVzUlVGQlJTeG5Ra0ZCYlVJc1UwRkJUeXhIUVVGSExFVkJRVVVzUzBGQlR5eGxRVUZoTEVWQlFVZEJMRVZCUVVVc1owSkJRV2xDTEVOQlFVTXlReXhGUVVGSFF5eEZRVUZKYkVNc1NVRkRlRVlzUTBGQlEybERMRU5CUVVNc1JVRkJSU3hQUVVGUGFrTXNRMEZCUXl4RFFVTm9RaXhGUVVOQlZpeEZRVUZGTEdWQlEwNHNRMEZEVWl4RFFVRkRMRVZCUjB0TExFZEJRV01zU1VGQlNTeFBRVUZQZDBNc1IwRkJWeXhGUVVGSExFVkJRVVVzUlVGSGJFTlVMRWRCUVdsQ0xFTkJRekZDTEV0QlFVMVZMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzUkRMRTFCUVU5QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNaRExFZEJRVWxCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM0JETEVsQlFVdEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlJYSkRMRTFCUVU5QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEU5QlFWRXNRMEZCUlN4RFFVRkRMRVZCUTNoRExFOUJRVkZCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTlCUVZFc1EwRkJSU3hEUVVGRExFVkJRM3BETEVkQlFVbEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFOUJRVkVzUTBGQlJTeERRVUZETEVWQlEzSkRMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEU5QlFWRXNRMEZCUlN4RFFVRkRMRVZCUlhSRExFdEJRVTFCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM1JETEUxQlFVOUJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzWkRMRWRCUVVsQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNCRExFbEJRVXRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM0pETEVWQlFVZEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlJXNURMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEV0QlFVMHNRMEZCUlN4RFFVRkRMRVZCUTNCRExFdEJRVTFCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRXRCUVUwc1EwRkJSU3hEUVVGRExFVkJRM0pETEVWQlFVZEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFdEJRVTBzUTBGQlJTeERRVUZETEVWQlJXeERMRXRCUVUxQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNSRExFMUJRVTlCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJRM1pETEVkQlFVbEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxFMUJRVThzUTBGQlJTeERRVUZETEVWQlEzQkRMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEUxQlFVOHNRMEZCUlN4RFFVRkRMRVZCUTNKRExFVkJRVWRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRTFCUVU4c1EwRkJSU3hEUVVGRExFVkJSVzVETEU5QlFWRkJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlF6RkRMRkZCUVZOQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUXpORExFbEJRVXRCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRM1pETEV0QlFVMUJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlEzaERMRVZCUVVkQkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUlhKRExFOUJRVkZCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRekZETEZGQlFWTkJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVWQlF6TkRMRWxCUVV0QkxFVkJRVk1zVjBGQlZ5eERRVUZGTEZGQlFWTXNRMEZCUlN4RFFVRkRMRVZCUTNaRExFdEJRVTFCTEVWQlFWTXNWMEZCVnl4RFFVRkZMRkZCUVZNc1EwRkJSU3hEUVVGRExFVkJRM2hETEVWQlFVZEJMRVZCUVZNc1YwRkJWeXhEUVVGRkxGRkJRVk1zUTBGQlJTeERRVUZETEVOQlEzcERMRVZCUjJFdlFpeEhRVUZyUWl4RFFVTXpRaXhKUVVGTExFbEJRVTFFTEVWQlFWTXNUVUZCVFN4RlFVTXhRaXhOUVVGUExFbEJRVTFCTEVWQlFWTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1MwRkJTeXhGUVVNelF5eFZRVUZYTEVsQlExQkJMRVZCUVZNc1RVRkJUU3hGUVVOV0xGRkJRVkVzUzBGQlN5eEZRVU5pTEUxQlFVMW5ReXhGUVVGVExGZEJRVmNzUTBGQlJTeExRVUZOTEVOQlFVVXNRMEZCUXl4RFFVRkRMRVZCUXk5RExGTkJRVlVzU1VGRFRtaERMRVZCUVZNc1RVRkJUU3hGUVVOV0xGRkJRVkVzUzBGQlN5eEZRVU5pTEV0QlFVdG5ReXhGUVVGVExGZEJRVmNzUTBGQlJTeExRVUZOTEVOQlFVVXNRMEZCUXl4RFFVRkRMRVZCUXpsRExFbEJRVXNzU1VGQlRXaERMRVZCUVZNc1RVRkJUU3hGUVVGRkxGRkJRVkVzVFVGQlRTeEZRVU14UXl4blFrRkJhVUlzU1VGQlRVRXNSVUZCVXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hOUVVGTkxFVkJRM1JFTEVsQlFVc3NTVUZCVFVFc1JVRkJVeXhOUVVGTkxFVkJRVVVzVFVGQlRTeE5RVUZOTEVWQlEzaERMR05CUVdVc1NVRkJUVUVzUlVGQlV5eE5RVUZOTEVWQlFVVXNUVUZCVFN4TlFVRk5MRVZCUTJ4RUxFbEJRVXNzU1VGQlRVRXNSVUZCVXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hOUVVGTkxFVkJRekZETEdkQ1FVRnBRaXhKUVVGTlFTeEZRVUZUTEUxQlFVMHNSVUZCUlN4UlFVRlJMRTFCUVUwc1JVRkRkRVFzU1VGQlN5eEpRVUZOUVN4RlFVRlRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFMUJRVTBzUlVGRGVFTXNZMEZCWlN4SlFVRk5RU3hGUVVGVExFMUJRVTBzUlVGQlJTeE5RVUZOTEUxQlFVMHNSVUZEYkVRc1NVRkJTeXhKUVVGTlFTeEZRVUZUTEUxQlFVMHNSVUZCUlN4UlFVRlJMRTlCUVU4c1JVRkRNME1zYVVKQlFXdENMRWxCUVUxQkxFVkJRVk1zVFVGQlRTeEZRVUZGTEZGQlFWRXNUMEZCVHl4RlFVTjRSQ3hKUVVGTExFbEJRVTFCTEVWQlFWTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1QwRkJUeXhGUVVONlF5eGxRVUZuUWl4SlFVRk5RU3hGUVVGVExFMUJRVTBzUlVGQlJTeE5RVUZOTEU5QlFVOHNRMEZEZUVRc1JVRXJRMkZwUXl4SFFVRmxMR2xDUVVGdFF5eERRVVV6UkN4VFFVRlhha1FzUjBGQlRVUXNSVUZCVnl4WFFVRlhMRWxCUVVsdFJDeEhRVUZaTEZGQlFWRXNSVUZCUlN4TFFVRkxMRlZCUVZVc1JVRkRhRVlzVDBGQlUyeEVMRWRCUVUxRUxFVkJRVmNzVDBGQlR5eEpRVUZKYlVRc1IwRkJXU3hQUVVGUExFVkJRVVVzUzBGQlN5eFJRVUZSTEVWQlEzWkZMRTlCUVZOc1JDeEhRVUZOUkN4RlFVRlhMRTlCUVU4c1NVRkJTVzFFTEVkQlFWa3NUMEZCVHl4RlFVRkZMRXRCUVVzc1VVRkJVU3hGUVVOMlJTeExRVUZQYkVRc1IwRkJUVVFzUlVGQlZ5eExRVUZMTEVsQlFVbHRSQ3hIUVVGWkxFOUJRVThzUlVGQlJTeExRVUZMTEZOQlFWTXNSVUZEY0VVc1MwRkJUMnhFTEVkQlEwaHRSQ3hIUVVGbExFOUJRVkZ3UkN4RlFVRlhMRkZCUVZFc1JVRkRja01zU1VGQlNTeERRVUZETEVOQlFVTnhSQ3hGUVVGUFF5eERRVUZKTEVsQlFVMUlMRWRCUVZrc1VVRkJVVWNzUTBGQlNTeERRVUZETEVWQlEyaEVMRXRCUVVzc1RVRkJUU3hGUVVOd1FpeFRRVUZYY2tRc1IwRkRVRzFFTEVkQlFXVXNUVUZCVDNCRUxFVkJRVmNzVVVGQlVTeEZRVU53UXl4SlFVRkpMRU5CUVVNc1EwRkJRM0ZFTEVWQlFVOUZMRU5CUVVjc1NVRkJUVW9zUjBGQldTeFJRVUZSU1N4RFFVRkhMRU5CUVVNc1JVRkRPVU1zUzBGQlN5eFZRVUZWTEVWQlEzaENMRXRCUVU5MFJDeEhRVUZOUkN4RlFVRlhMRkZCUVZFc1NVRkJTME1zUjBGQlRXdEVMRWRCUVZrc1NVRkJTU3hGUVVNelJDeExRVUZQYkVRc1IwRkJUVVFzUlVGQlZ5eExRVUZMTEVsQlFVbHRSQ3hIUVVGWkxFOUJRVThzUlVGRGNFUXNTMEZCVDJoRUxFZEJRMGhCTEVWQlFVVXNWMEZEUnl4TlFVRlJMRk5CUVU4c1IwRkJSeXhGUVVGRkxFdEJRVThzWlVGQllTeERRVUZETEVWQlEzcERMRXRCUVU4c1UwRkJUeXhIUVVGSExFVkJRVVVzUzBGQlR5eGxRVUZoTEVWQlFVc3NaMEpCUVdNc1MwRkJUeXhUUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlF6ZEZMRWxCUVV0VkxFZEJRVTF6UXl4SFFVRlpMRXRCUVV0MFF5eERRVUZETEVOQlFVTXNSVUZET1VJc1MwRkJTeXhOUVVGTkxFVkJRM0JDTEU5QlFWTldMRWRCUTBnc1UwRkRSVWdzUlVGQlZ5eFhRVUZYTEVkQlFVZEJMRVZCUVZjc1RVRkJUU3hGUVVONFF5eFRRVUZQTEVkQlFVY3NSVUZCUlN4TFFVRlBMR1ZCUVdFc1JVRkRiRU5ITEVWQlFVVXNWMEZEUml4RFFVRkRjVVFzUlVGQlRVTXNSVUZCVFVNc1MwRkRSaXhEUVVGRkxFdEJRVUZHTEVWQlFVMHNUVUZCUVVVc1EwRkJUU3hGUVVVM1FpeEZRVU5MTEUxQlFWRXNVMEZCVHl4SFFVRkhMRVZCUVVVc1MwRkJUeXhsUVVGaExFTkJRVU1zUlVGRGVrTXNTMEZCVHl4VFFVRlBMRWRCUVVjc1JVRkJSU3hMUVVGUExHVkJRV0VzUlVGQlN5eG5Ra0ZCWXl4TFFVRlBMRk5CUVU4c1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRE4wVXNTVUZCUzBNc1IwRkJVeXhEUVVOWUxFbEJRVWxETEVWQlFXdERMRU5CUVVNc1JVRkRka01zVVVGQlUwTXNTMEZCVTBZc1JVRkJUVU1zUlVGQlNVTXNSVUZCVFN4SlFVRkpMRVZCUVVsQkxFVkJRVTBzVFVGRGFFUXNUMEZCVDFZc1IwRkJXU3hQUVVGUFV5eERRVUZITEVOQlEycERMRU5CUVVNc1JVRkRRU3hMUVVGTExESkNRVUV5UWl4RlFVVjZReXhMUVVGUGVrUXNSMEZEUkN4TlFVVkZTQ3hGUVVGWExGVkJRVlVzU1VGQlMyRXNSMEZCVFhORExFZEJRVmtzVVVGQlVYUkRMRU5CUVVNc1EwRkJReXhGUVVOMFJGWXNSVUZCUlN4UlFVTkdRU3hGUVVGRkxFdEJRMFpCTEVWQlFVVXNTMEZEUmtFc1JVRkJSU3hQUVVOR1FTeEZRVUZGTEU5QlEwWkJMRVZCUVVVc1QwRkRSa0VzUlVGQlJTeExRVU5HUVN4RlFVRkZMRTlCUTBaQkxFVkJRVVVzVDBGRFJrRXNSVUZCUlN4TFFVTkdRU3hGUVVGRkxGTkJRMFpCTEVWQlFVVXNTMEZEUmtFc1JVRkJSU3hSUVVOT0xFVkJRMG9zVFVGQlVVRXNSMEZEUml4VFFVRlBRU3hGUVVGRkxFdEJRVkVzVFVGQlNVRXNSVUZCUlN4WFFVRlpRU3hGUVVGRkxHRkJRV05CTEVWQlFVVXNaVUZCWlN4RlFVRkZMRXRCUVVzc1JVRkJSeXhEUVVGRE1rUXNSVUZCUzBNc1NVRkJZeXhEUVVOb1J5eEpRVUZKUXl4RlFVRlRSaXhGUVVOaUxGRkJRVk5ITEV0QlFWRkdMRVZCUTJJc1QwRkJVVVVzUlVGQlN5eExRVUZOTEVOQlEyWXNTVUZCU3l4TlFVTkVSQ3hGUVVGVFlpeEhRVUZaTEUxQlFVMWhMRVZCUVZGaUxFZEJRVmtzVVVGQlVXTXNSVUZCU3l4SlFVRkpMRU5CUVVNc1JVRkRha1VzVFVGRFNpeEpRVUZMTEZGQlEwUkVMRVZCUVZOaUxFZEJRVmtzVFVGQlRXRXNSVUZCVVVNc1JVRkJTeXhKUVVGSkxFVkJRelZETEUxQlEwb3NTVUZCU3l4WFFVTkVSQ3hGUVVGVFlpeEhRVUZaTEV0QlFVdGhMRVZCUVZGRExFVkJRVXNzUzBGQlN5eEZRVU0xUXl4TFFVTlNMRU5CUjBvc1QwRkJUMFFzUTBGRFdDeERRVUZETEVWQlEwd3NVVUZCVlRkRUxFZEJRVkVzVTBGQlV5eFRRVUZQTEVkQlFVY3NSVUZCUjBFc1JVRkJSU3hOUVVGUExFTkJRVU5HTEVWQlFVZHBSU3hKUVVGVlppeEhRVUZaTEU5QlFVOWxMRU5CUVVzc1EwRkJReXhGUVVGRkxFdEJRVXNzWlVGQlpTeEZRVU01Unl4UFFVRlRMMFFzUjBGQlRVRXNSVUZCUlN4WFFVRlhMRXRCUVU4c1pVRkJZU3hGUVVGRkxFdEJRVThzVTBGQlR5eEhRVUZITEVWQlFVc3NVMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkRia1lzVDBGQlUwRXNSMEZEU0N4VFFVTkZTQ3hGUVVGWExGZEJRMDRzVFVGQlVTeFRRVUZQTEVkQlFVY3NSVUZCUlN4TFFVRlBMR1ZCUVdFc1EwRkJReXhGUVVONlF5eExRVUZQTEZOQlFVOHNSMEZCUnl4RlFVRkZMRXRCUVU4c1pVRkJZU3hGUVVGTExGTkJRVThzUjBGQlJ5eEZRVUZGTEV0QlFVOHNaVUZCWVN4RFFVRkRMRVZCUTJoR0xGTkJRVThzU1VGQlNTeEZRVUZGTEV0QlFVOHNaVUZCWVN4RlFVTnVRMGNzUlVGQlJTeFhRVU5HTEVOQlFVTm5SU3hGUVVGUFF5eEZRVUZUVml4TFFVTk9MRU5CUVVVc1MwRkJUU3hUUVVGVkxGVkJRVmRUTEVWQlFVOHNUVUZCUVZRc1EwRkJUU3hGUVVWNlJDeEZRVVZLTEZkQlFXRjJSQ3hIUVVGUkxGTkJRVk1zVTBGQlR5eEhRVUZITEVWQlFVZElMRVZCUVZjc1YwRkJXU3hEUVVGRFF5eEZRVUZIYjBVc1MwRkJWU3hEUVVGRkxFdEJRVTBzVFVGQlR5eExRVUZCUVN4RFFVRkxMRVZCUVVVc1JVRkRkRWNzWVVGQlpXeEZMRWRCUTFRc1UwRkRTU3hUUVVGUExFZEJRVWNzUlVGRFZpeG5Ra0ZEUmtFc1JVRkJSU3hYUVVOQkxHZENRVU5CTEZOQlFVOHNSMEZCUnl4RlFVTmFMRU5CUVVOR0xFVkJRVWR4UlN4RlFVRkpSQ3hGUVVGTlJTeEZRVUZKUXl4TFFVTlFMRU5CUVVVc1MwRkJUU3hSUVVGVExFdEJRVUZJTEVOQlFVc3NSVUZGY2tNc1JVRkRTaXhuUWtGQmEwSnNSU3hIUVVOYUxGTkJRMGtzVTBGQlR5eEhRVUZITEVWQlExWXNaMEpCUTBaQkxFVkJRVVVzVjBGQlZ5eE5RVUZSTEZOQlFVOHNSMEZCUnl4RlFVRkZMRXRCUVU4c1pVRkJZU3hEUVVGRExFVkJRM0JFTEdkQ1FVTkJMRk5CUVU4c1IwRkJSeXhGUVVOYUxFTkJRVU5HTEVWQlFVZDNSU3hGUVVGSlF5eEZRVUZQU2l4RlFVRkpReXhMUVVOU0xFTkJRVVVzUzBGQlRTeFhRVUZaTEUxQlFVRkhMRU5CUVUwc1JVRkZla01zUlVGSFNpeGhRVUZsZGtVc1IwRkJUWGRGTEVkQlFXMUNlRVVzUlVGQlJTeE5RVUZQU0N4RlFVRlhMR0ZCUVdOdFJDeEhRVUZaTEZGQlFWRXNSVUZET1VZc1owSkJRV3RDYUVRc1IwRkJUWGRGTEVkQlFXMUNlRVVzUlVGQlJTeGhRVUZqU0N4RlFVRlhMR2RDUVVGcFFtMUVMRWRCUVZrc1VVRkJVU3hGUVVNelJ5eGpRVUZuUW1oRUxFZEJRVTEzUlN4SFFVRnRRbmhGTEVWQlFVVXNaMEpCUVdsQ1NDeEZRVUZYTEdkQ1FVRnBRbTFFTEVkQlFWa3NVVUZCVVN4RlFVTTFSeXhqUVVGblFtaEVMRWRCUTFwM1JTeEhRVUZ0UW5oRkxFVkJRVVVzWTBGQlpVZ3NSVUZCVnl4WlFVRlpMRWRCUVVkQkxFVkJRVmNzVlVGQlZTeEZRVUZIYlVRc1IwRkJXU3hSUVVGUkxFVkJRemxITEZOQlFWZG9SQ3hIUVVGTlFTeEZRVUZGTEdOQlJXNUNMRmRCUVdGQkxFZEJRVTFCTEVWQlFVVXNVVUZEZWtJc1EwRkJReXhGUVdkRFdYbEZMRWRCUVZVc2FVSkJRVGhDTEVOQlEycEVMRk5CUVZjelJTeEhRVUZOUkN4RlFVRlhMRWxCUVVrc1NVRkJTekJFTEVsQlFWY3NRMEZCUlN4TFFVRk5MRk5CUVZVc1RVRkJRVUVzUTBGQlRTeEZRVUZGTEVWQlF6RkZMRkZCUVZWNlJDeEhRVUZOYlVRc1IwRkJaU3hMUVVGTmNFUXNSVUZCVnl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU5ETEVWQlFVYzBSU3hEUVVGRkxFdEJRVThzUTBGQlJTeExRVUZOTEV0QlFVMHNUVUZCVDBFc1EwRkJSeXhGUVVGRkxFVkJRM0JITEZWQlFWazFSU3hIUVVOT0xGTkJRVThzUjBGQlJ5eEZRVU5RTEV0QlFVdEVMRVZCUVZjc1ZVRkJWU3hGUVVNeFFpeEpRVUZMTUVRc1NVRkJWeXhEUVVGRkxFdEJRVTBzVVVGQlV5eE5RVUZQUVN4RFFVRk5MRVZCUVVVc1JVRkZla1FzVlVGQldYcEVMRWRCUTFKdFJDeEhRVUZwUWl4VFFVRlBMRk5CUVZNc1JVRkJSU3hMUVVGTExGTkJRVk1zUlVGQlIzQkVMRVZCUVZjc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZET0VVc1JVRkJUVU1zUTBGQlNTeExRVUZQTEVOQlF6RkdMRXRCUVUwc1QwRkRUaXhOUVVGUFFTeEZRVU5RTEUxQlFVOUVMRVZCUVVzc1dVRkJXU3hKUVVGTkxFOUJRMnhETEVWQlFVVXNSVUZGVGl4alFVRm5Rak5GTEVkQlExcHBSQ3hIUVVGcFFpeFRRVUZQTEhGQ1FVRnhRaXhGUVVGRkxFdEJRVXNzVlVGQlZTeEZRVUZIYWtRc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXlSU3hGUVVGTlJTeERRVUZSTEV0QlFVOHNRMEZEYWtjc1MwRkJUU3haUVVOT0xGTkJRVUZCTEVWQlEwRXNWVUZCVjBZc1JVRkJTeXhaUVVGWkxFbEJRVTBzVjBGRGRFTXNSVUZCUlN4RlFVTk9MR0ZCUVdVelJTeEhRVU5ZYVVRc1IwRkJhVUlzVTBGQlR5eHJRa0ZCYTBJc1JVRkJSU3hMUVVGTExGTkJRVk1zUlVGQlIycEVMRVZCUVVVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETWtVc1JVRkJUVWNzUTBGQlR5eExRVUZQTEVOQlF6VkdMRXRCUVUwc1YwRkRUaXhSUVVGQlFTeEZRVU5CTEZWQlFWZElMRVZCUVVzc1dVRkJXU3hKUVVGTkxGTkJRM1JETEVWQlFVVXNSVUZEVGl4clFrRkJiMEkzUlN4SFFVTm9Ra1FzUlVGQlZ5eExRVUZMTEVsQlFVdHJSaXhKUVVGVkxFTkJRek5DTEV0QlFVMHNVMEZEVGl4UFFVRlJMRU5CUVVVc1MwRkJUU3hQUVVGUkxFMUJRVTlCTEVOQlFVc3NSVUZEY0VNc1ZVRkJWeXhWUVVObUxFVkJRVVVzUlVGRFRpeFpRVUZqTDBVc1IwRkRWbWxFTEVkQlFXbENMRk5CUVU4c0swSkJRU3RDTEVWQlFVVXNTMEZCU3l4WFFVRlhMRVZCUVVkcVJDeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRekpGTEVWQlFVMUxMRU5CUVUwc1MwRkJUeXhEUVVNeFJ5eExRVUZOTEZOQlEwNHNUMEZCUVVFc1JVRkRRU3hWUVVOSlRDeEZRVUZMTEZsQlFWa3NSMEZCU3l4VlFVRlpMRmRCUVdGQkxFVkJRVXNzV1VGQldTeEhRVUZMTEdGQlFXVXNWMEZCWVN4TlFVTjZSeXhGUVVGRkxFVkJRMDRzV1VGQll6ZEZMRWRCUTFadFJDeEhRVUZwUWl4VFFVRlBMRk5CUVZNc1JVRkJSU3hMUVVGTExGRkJRVkVzUlVGQlIzQkVMRVZCUVZjc1YwRkJWeXhIUVVGSFFTeEZRVUZYTEUxQlFVMHNRMEZCUXl4RlFVRkZMRWxCUXpWR0xFTkJRVU1zUTBGQlEzRkVMRVZCUVU5akxFTkJRVXNzUzBGQlR5eERRVU5xUWl4TFFVRk5MRkZCUTA0c1RVRkJUMEVzUTBGRFdDeEZRVU5LTEVWQlEwb3NjMEpCUVhkQ2FFVXNSMEZEY0VKcFJDeEhRVUZwUWl4VFFVRlBMRTlCUVU4c1JVRkJSU3hMUVVGTExFMUJRVTBzUlVGQlIwWXNSMEZCVnl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU5xUkN4RlFVRkhiMFVzUTBGQlNTeExRVUZQTEVOQlEzUkdMRXRCUVUwc1lVRkRUaXhYUVVGWlFTeERRVU5vUWl4RlFVRkZMRVZCUTA0c2JVSkJRWEZDYkVVc1IwRkJUU3RETEVkQlFWY3NZMEZCWXl4SlFVRkxiVUlzU1VGQlZTeERRVUZGTEV0QlFVMHNZVUZCWXl4WFFVRlpRU3hEUVVGTExFVkJRVVVzUlVGRk5VY3NXVUZCWTJ4RkxFZEJRVTFCTEVWQlFVVXNUVUZCVFN4TFFVRlBMR1ZCUVdFc1JVRkJSU3hMUVVGUExGTkJRVThzUjBGQlJ5eEZRVUZMTEZOQlFVOHNSMEZCUnl4RFFVRkRMRVZCUTI1R0xGbEJRV05CTEVkQlExSXNVMEZCVHl4SFFVRkhMRVZCUTFBc1MwRkJUeXhsUVVGaExFVkJRM0JDTEV0QlFVdEJMRVZCUVVVc1UwRkJVeXhGUVVOb1FpeEpRVUZMZFVRc1NVRkJWeXhEUVVOaUxFdEJRVTBzVFVGRFRpeFJRVUZUUVN4RFFVTmlMRVZCUVVVc1JVRkRWaXhWUVVGWmRrUXNSMEZEVGl4TlFVTkZRU3hGUVVGRkxGbEJRMFpCTEVWQlFVVXNXVUZEUmtFc1JVRkJSU3hyUWtGRFJrRXNSVUZCUlN4VFFVTkdRU3hGUVVGRkxGVkJRMFpCTEVWQlFVVXNVVUZEUmtFc1JVRkJSU3haUVVOR1FTeEZRVUZGTEdGQlEwWkJMRVZCUVVVc1kwRkRSa0VzUlVGQlJTeFpRVU5HUVN4RlFVRkZMRlZCUTBaQkxFVkJRVVVzYzBKQlJVWkJMRVZCUVVVc2EwSkJRMDRzUlVGRFNpeFZRVUZaUVN4SFFVTlNkMFVzUjBGQmJVSjRSU3hGUVVGRkxGVkJRVmRJTEVWQlFWY3NXVUZCWVN4RFFVRkRiMFlzUlVGQlRVTXNSVUZCUzBNc1MwRkJWeXhEUVVNelJTeExRVUZOTEUxQlEwNHNVMEZCVlN4RFFVRkRSaXhGUVVGTlJTeERRVUZMTEVOQlF6RkNMRVZCUVVVc1JVRkRUaXhUUVVGWGJrWXNSMEZEVUhkRkxFZEJRVzFDZUVVc1JVRkJSU3hWUVVGWFNDeEZRVUZYTEZkQlFWa3NRMEZCUTI5R0xFVkJRVTFETEVWQlFVdERMRXRCUVZjc1EwRkRNVVVzUzBGQlRTeExRVU5PTEZOQlFWVXNRMEZCUTBZc1JVRkJUVVVzUTBGQlN5eERRVU14UWl4RlFVRkZMRVZCUTA0c1RVRkJVVzVHTEVkQlFVMUJMRVZCUVVVc1UwRkJVeXhMUVVGUExHVkJRV0VzUTBGRGFrUXNRMEZCUXl4RlFXVk5MRk5CUVZOdlJpeEhRVU5hUXl4RlFVTkJReXhGUVVOQlF5eEZRVU5YTEVOQlExZ3NUMEZCVXl4VFFVRlBSaXhGUVVGVExFMUJRVTBzWjBKQlFXVkRMRVZCUVU4c1owSkJRV1ZFTEVOQlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVjc1EwRkJRMGNzUlVGQlQwTXNTVUZCVXl4RFFVTm9SeXhIUVVGSlFTeEZRVUZMTEZGQlFWVXNSVUZCUnl4UFFVRlBSQ3hGUVVVM1FpeEpRVUZKUlN4RlFVRlBTQ3hGUVVGUlF5eEZRVUZQUXl4RlFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVWRCTEVWQlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVOb1JDeFJRVUZUUlN4RlFVRlJMRVZCUVVkQkxFVkJRVkZHTEVWQlFVc3NUMEZCVVVVc1NVRkRja05FTEVWQlFVOUlMRVZCUVZGSExFVkJRVTFFTEVWQlFVdEZMRU5CUVVzc1JVRkJSU3hEUVVGRExFVkJRVWRHTEVWQlFVdEZMRU5CUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGRmRrUXNUMEZCVDBRc1EwRkRXQ3hEUVVGRExFTkJRMHdzUTBGTFR5eFRRVUZUUlN4SFFVRnJRa01zUlVGQmFVTkRMRVZCUVRCRExFTkJRM3BITEVsQlFVMURMRVZCUVZjc1QwRkJUMFlzUjBGQlV5eFRRVUZoTEZOQlFVOUJMRU5CUVVrc1JVRkJTVUVzUlVGRE4wUXNUMEZCVXl4VFFVTk1SU3hGUVVGVExFdEJRVThzWlVGQllTeEZRVU0zUWtRc1JVRkJTeXhMUVVGUExHVkJRV0VzUlVGQlJTeExRVUZQTEZOQlFVOHNSMEZCUnl4RlFVRkxMRk5CUVU4c1IwRkJSeXhEUVVGRExFVkJRelZFTEVOQlFVTkZMRVZCUVVkRExFbEJRVTBzUTBGQlEwUXNSVUZCUjBNc1EwRkJReXhEUVVOdVFpeERRVU5LTEVOQlIwOHNVMEZCVTBNc1IwRkJXVU1zUzBGQmMwSkRMRVZCUVN0RExFTkJRemRHTEU5QlFWTXNVMEZCVHl4RFFVRkRReXhGUVVGVlF5eEpRVU5vUWl4RFFVRkRReXhGUVVGUExFbEJRVTBzUTBGRGFrSXNTVUZCU1VNc1JVRkJWVXdzUlVGQllTeEZRVUZGU1N4RlFVRlBMRU5CUVVNc1JVRkRja01zUjBGQlNTeERRVUZEUXl4RlFVRlBMRTlCUVZFc1QwRkJUMEVzUlVGRk0wSXNVVUZCVTFnc1MwRkJVVThzUlVGQlR5eERRVU53UWl4SlFVRkpTeXhGUVVGUldpeEZRVUZMVnl4RlFVRlBMRXRCUVZVc1JVRkJWU3hGUVVGRlJDeEZRVUZQUXl4RlFVRlBMRXRCUVVzc1JVRkRha1VzUjBGQlNTeERRVUZEUXl4RlFVRkxMRTlCUVZFc1QwRkJUMFFzUlVGRmVrSkJMRVZCUVZORExFTkJRMklzUTBGRlFTeFBRVUZQUkN4RFFVTllMRU5CUTBnc1EwRkRUQ3hEU3pWd1FrRXNTVUZCUVVVc1IwRkJiVUlzVTBOSVdpeFRRVUZUUXl4SFFVRnpRa01zUlVGQk1rSkRMRVZCUVhORExFTkJRMjVITEVsQlFVMURMRVZCUVRSQ0xFTkJRVU1zUlVGRGJrTXNUMEZCVnl4RFFVRkRReXhGUVVGTFF5eERRVUZMTEVsQlFVc3NUMEZCVHl4UlFVRlJTaXhEUVVGTkxFVkJRelZEUlN4RlFVRlBReXhEUVVGSExFVkJRVWxHTEVWQlFVdEhMRU5CUVVzc1JVRkhOVUlzVDBGQlQwWXNRMEZEV0N4RFExTlBMRWxCUVZWSExFOUJRVllzUTBGRFZVRXNSVUZCUVN4blFrRkJaMFJETEVkQlFWVkJMRVZCUjJoRkxGTkJRVk5ETEVWQlFVdERMRVZCUVN0Q0xFTkJRMmhFTEVsQlFVMURMRVZCUVZWRExFZEJRVk1zVlVGQlZVWXNRMEZCVHl4RlFVTXhReXhIUVVGSkxFTkJRVU5ETEVWQlFWTXNUMEZCVHl4TFFVVnlRaXhQUVVGUlFTeEhRVUZCTEZsQlFVRkJMRVZCUVZNc1MwRkJUU3hEUVVOdVFpeEpRVUZMTEZGQlEwUXNUMEZCVDBFc1JVRkJVU3hOUVVGTkxFbEJRVWxLTEVWQlFXVXNTVUZCU1N4RlFVTm9SQ3hKUVVGTExGTkJRMFFzVDBGQlQwMHNSMEZCWjBKR0xFVkJRVkVzVFVGQlQwb3NSVUZCWlN4SlFVRkpMRVZCUXpkRUxFbEJRVXNzVDBGRFJDeE5RVUZQTEVOQlFVVXNUMEZCVVN4UFFVRlJMRTFCUVU5SkxFVkJRVkVzVFVGQlRTeE5RVUZOTEVOQlFVVXNZVUZCWXl4SFFVRk5MR05CUVdVc1JVRkJTeXhEUVVGRExFTkJRVVVzUlVGRGNrY3NTVUZCU3l4UFFVTkVMRTFCUVU4c1EwRkJSU3hQUVVGUkxFOUJRVkVzVFVGQlQwRXNSVUZCVVN4TlFVRk5MRk5CUVZNc1EwRkJSU3hGUVVNM1JDeEpRVUZMTEZkQlEwUXNUVUZCVHl4RFFVRkZMRTlCUVZFc1YwRkJXU3hOUVVGUFFTeEZRVUZSTEUxQlFVMHNUVUZCVFN4RFFVRkZMRVZCUXpsRUxFbEJRVXNzVlVGRFRDeEpRVUZMTEZOQlEwd3NTVUZCU3l4VFFVTkVMRTlCUVU5QkxFVkJRVkVzVFVGRGJrSXNTVUZCU3l4WFFVTk1MRWxCUVVzc1QwRkRSQ3hQUVVGUExFbEJRMllzUTBGRFNpeERRWFpDVDBvc1JVRkJVeXhMUVVGQlJTeEZRVGhDVkN4VFFVRlRTeXhGUVVGTlRDeEZRVUZ0UWswc1JVRkJNRU5TTEVWQlFVRXNaMEpCUVRCQ0xFTkJRM3BITEVkQlFVbEZMRWRCUVZNc1MwRkJORUlzVDBGQlR5eExRVVZvUkN4SFFVRkpMRTFCUVUwc1VVRkJVVUVzUTBGQlNTeEZRVU5zUWl4UFFVRlBUU3hGUVVGWFRpeEZRVUZMTEVsQlFVdEVMRWRCUVZWRUxFVkJRV1VzVFVGQlRVTXNSVUZCVDA4c1EwRkJWU3hEUVVGRExFTkJRVU1zUlVGRE0wVXNSMEZCU1N4UFFVRlBUaXhIUVVGVExGTkJRVlVzUTBGRGFrTXNSMEZCU1N4RlFVRkZMRmRCUVZsQkxFZEJRMlFzVDBGQlQwa3NSMEZCWjBKS0xFVkJRVTlQTEVkQlFVMVVMRVZCUVdVc1RVRkJUVk1zUlVGQmEwSkVMRU5CUVZVc1EwRkJReXhGUVVVeFJpeEpRVUZOUlN4RlFVRlBVaXhGUVVGTExFOUJRMnhDTEU5QlFWRlJMRVZCUVUwc1EwRkRWaXhKUVVGTExFOUJRMFFzVDBGQlQwWXNSVUZCVjBjc1JVRkJVeXhSUVVGUlZDeEZRVUZMTEV0QlFVc3NRMEZCUXl4RlFVTnNSQ3hKUVVGTExGZEJRMFFzVDBGQlQwMHNSVUZCVjBrc1JVRkJVeXhSUVVGUlZpeEZRVUZMTEV0QlFVc3NRMEZCUXl4RlFVTnNSQ3hKUVVGTExFOUJRMFFzVDBGQlQwMHNSVUZCVjBzc1IwRkJTeXhYUVVGWFdDeEZRVUZMTEV0QlFVc3NRMEZCUXl4RlFVTnFSQ3hSUVVOSkxFMUJRVTBzU1VGQlNTeE5RVUZOTEdsRFFVRnBRMUVzUTBGQlNTeEpRVUZKTEVOQlEycEZMRU5CUTBvc1EwRkhRU3hQUVVGUFJpeEZRVUZYVGl4RFFVRmxMRU5CUTNKRExFTkJlRUpQUml4RlFVRlRMRTFCUVVGUExFbEJiRU5JVUN4UlFVRkJMRXRHYzBSV0xGTkJRVk5qTEVkQlFXZENReXhGUVVGeFF5eERRVU5xUlN4UFFVRlBMRTlCUVU4c1QwRkJUeXhEUVVGRExFVkJRVWRCTEVWQlFVOHNRMEZCUlN4TlFVRlBReXhIUVVGbExFdEJRVXRFTEVWQlFVMHNTMEZCU3l4RFFVRkZMRU5CUVVNc1EwRkRMMFVzUTBGVlR5eFRRVUZUUlN4SFFVTmFReXhGUVVOQlF5eEZRVU15UWl4RFFVTXpRaXhQUVVGSkxFMUJRVTBzVVVGQlVVUXNRMEZCU3l4RlFVTmFRU3hGUVVGTkxFbEJRVXRGTEVkQlFVMUlMRWRCUVdOSExFVkJRVWRFTEVOQlFVMHNRMEZCUXl4RlFVYzNReXhEUVVOSUxFbEJRVXRFTEVWQlFVMHNTVUZEV0N4SlFVRkxRU3hGUVVGTkxFMUJRMWdzVFVGQlQwY3NSMEZCYVVKSUxFVkJRVTBzUzBGQlN5eEZRVU51UXl4VFFVRlZMRU5CUTA0c1MwRkJUVU1zUlVGRFRpeE5RVUZQUkN4RlFVRk5MRTFCUTJJc1YwRkJXVUVzUlVGQlRTeFhRVU5zUWl4SlFVRkxRU3hGUVVGTkxFZEJRMllzUlVGRFFTeFRRVUZWUVN4RlFVRk5MRkZCUTNCQ0xFTkJRMG9zUTBGSFR5eEpRVUZOU1N4SFFVRXdSQ3hQUVVGUExFOUJRVThzUTBGRGFrWXNTVUZCU3l4SlFVTk1MRWxCUVVzc1IwRkRWQ3hEUVVGRExFVkJUVVFzVTBGQlUwTXNSMEZEVEVNc1JVRkRRVU1zUlVGRFFVTXNSVUZEUVVNc1JVRkRLME1zUTBGREwwTXNTVUZCU1VNc1JVRkJWU3hGUVVOV1F5eEZRVUZWTEVkQlEyUXNVVUZCVTBNc1JVRkJVVXdzUlVGQlQwc3NSVUZCVVU0c1JVRkJTeXhQUVVGUlRTeEpRVUZUTEVOQlEyeEVMRWxCUVVsRExFVkJRVTlRTEVWQlFVc3NUMEZCVDAwc1EwRkJTeXhGUVVjMVFpeEhRVUZKUXl4SFFVRlJMRXRCUVUwc1EwRkRaRVlzUlVGQlZTeERRVUZEUVN4RlFVTllMRkZCUTBvc1EwRkhRU3hIUVVGSlFTeEZRVUZUTEVOQlExUkJMRVZCUVZVc1IwRkRWaXhSUVVOS0xFTkJUVUVzUjBGS1NVVXNSMEZCVVV3c1JVRkJUVVVzU1VGRFZFY3NSMEZCVVVvc1IwRkJUME1zU1VGSGNFSkJMRVZCUVZVc1JVRkJSeXhOUVVGUExFTkJRVVVzVFVGQlQwb3NSVUZCU3l4VlFVRlZReXhGUVVGUFN5eERRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkhMRk5CUVZWQkxFVkJRVkVzUTBGQlJTeEZRVVV4UmtRc1JVRkJWU3hGUVVOa0xFTkJSMG9zUTBGSFFTeFRRVUZUUnl4SFFVRmpVaXhGUVVGalF5eEZRVUZuUlN4RFFVTnFSeXhKUVVGSlVTeEZRVUZOVkN4RlFVRkxMRkZCUVZFc1MwRkJUVU1zUTBGQlN5eEZRVU5zUXl4SFFVRkpMRVZCUVVGUkxFVkJRVTBzUjBGRlZpeE5RVUZQTEVOQlFVVXNTVUZCUzFRc1JVRkJTeXhWUVVGVlF5eEZRVUZQVVN4RFFVRkhMRVZCUVVVc1MwRkJTeXhGUVVGSExGZEJRVmxCTEVWQlFVMHNRMEZCUlN4RFFVTjZSU3hEUVVkQkxGTkJRVk5ETEVkQlFYZENWaXhGUVVGalF5eEZRVUUyUXl4RFFVTjRSaXhKUVVGSlF5eEZRVUZQUml4RlFVRkxMRTlCUVU5RExFTkJRVXNzUlVGRmVFSlZMRVZCUVUxSUxFZEJRV05TTEVWQlFVMURMRVZCUVZFc1EwRkJReXhGUVVOMlF5eEhRVUZKVlN4SlFVRlJMRTlCUVZjc1QwRkhka0lzVVVGQlUwWXNTMEZCVHl4UFFVRlBMRXRCUVV0WUxFVkJRWEZDTEVWQlFVVXNUMEZCVHl4UFFVRlBMRTlCUVU5QkxFVkJRWEZDTEVOQlFVTXNSVUZETVVZc1IwRkJTV0VzUlVGQlNTeEpRVUZKTEZOQlFWTkdMRU5CUVVjc1JVRkJSeXhQUVVjdlFpeEpRVUZKUnl4RlFVRlJZaXhIUVVGWlF5eEZRVUZOVnl4RlFVRkpMRmRCUVZsVUxFVkJRVTFLTEVkQlFYTkNTU3hEUVVGSkxFTkJRVU1zUlVGREwwVXNSMEZCU1ZVc1NVRkJWU3hQUVVWa0xFMUJRVThzUTBGRFNDeEpRVUZMUkN4RlFVRkpMRWxCUTFRc1RVRkJUME1zUlVGQlRTeE5RVU5pTEUxQlFVOVlMRVZCUTFBc1YwRkJXVlVzUlVGQlNTeFhRVU5vUWl4SlFVRkxReXhGUVVGTkxGTkJRMWdzVTBGQlZWWXNRMEZEWkN4RFFVTktMRU5CUjA4c1UwRkJVMHdzUjBGQmFVSmxMRVZCUVhkQ0xFTkJSM0pFTEVkQlFVbEJMRVZCUVUwc1MwRkJTeXhIUVVGTExFZEJRVWtzVDBGQlR5eExRVXN2UWl4SlFVRkpReXhGUVVGVFF5eEZRVUZYTEZsQlFWa3NUVUZCVFVZc1EwRkJTeXhGUVVNdlF5eFBRVUZKUXl4RlFVRlBMRTlCUVdWQkxFVkJRVThzVFVGRGNrSkVMRU5CUTJoQ0xFTkJVVThzVTBGQlUwY3NSMEZCYjBKbUxFVkJRV05uUWl4RlFVRTJRaXhIUVVFeVFpeERRVU4wUnl4SlFVRkpReXhGUVVFMlFpeERRVUZETEVWQlEyeERMRkZCUVZORExFdEJRVmNzVDBGQlR5eExRVUZMY0VJc1JVRkJjVUlzUlVGQlJ5eERRVU53UkN4SlFVRkpjVUlzUlVGQllXNUNMRVZCUVVzc1VVRkJVV3RDTEVOQlFVOHNSVUZEY2tNc1MwRkJUME1zUjBGQll5eEhRVUZITEVOQlEzQkNMRWxCUVVsRExFVkJRV05XTEVkQlFYZENWaXhGUVVGTmJVSXNRMEZCVlN4RlFVTXhSQ3hIUVVGSkxFTkJRVU5ETEVWQlFXRXNRMEZEWkVRc1JVRkJZVzVDTEVWQlFVc3NVVUZCVVd0Q0xFVkJRVk5ETEVWQlFXRXNRMEZCUXl4RlFVTnFSQ3hSUVVOS0xFTkJSVUZHTEVWQlFVOHNTMEZCUzBjc1EwRkJWeXhGUVVOMlFrUXNSVUZCWVc1Q0xFVkJRVXNzVVVGQlVXdENMRVZCUVZORkxFVkJRVmtzUjBGQlJ5eERRVU4wUkN4RFFVTktMRU5CUlVsS0xFbEJRVzFDUXl4RlFVRlRRU3hGUVVGUExFOUJRVTlKTEVkQlFYbENja0lzUTBGQlNTeERRVUZETEVkQlJUVkZhVUlzUlVGQlR5eExRVUZMTEVOQlFVTkxMRVZCUVVkRExFbEJRVTFFTEVWQlFVVXNUVUZCVVVNc1JVRkJSU3hMUVVGTExFVkJSWFpETEVsQlFVbERMRVZCUVhGRExFTkJRVU1zUlVGRE1VTXNVVUZCVTBNc1JVRkJTU3hGUVVGSFFTeEZRVUZKVWl4RlFVRlBMRTlCUVZGUkxFdEJRek5DUVN4SFFVRkxMRWRCUVV0RUxFVkJRV1ZCTEVWQlFXVXNUMEZCVXl4RFFVRkRMRVZCUVVVc1NVRkJUVkFzUlVGQlQxRXNRMEZCUXl4RlFVRkZMRkZCUTNCRlJDeEZRVUZsTEV0QlFVdFFMRVZCUVU5UkxFTkJRVU1zUTBGQlF5eEZRVWR5UXl4UFFVRlBSQ3hEUVVOWUxFTkJSMEVzU1VGQlRVVXNSMEZCZVVNc1QwRkRla01zVlVGQlR5eEpRVUZKTEU5QlFVOURMRWRCUVZjc1JVRkJSeXhIUVVGSExFTkJRVU1zUlVGRGNFTXNWVUZCVHl3d1FrRkJNRUlzUTBGRGRrTXNSVUZEU3l4TFFVRkxMRVZCUTB3c1NVRkJTME1zUjBGQlZVRXNSVUZCVFN4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVVMVFrTXNSMEZCTWtNc1ZVRkJUeXh6UWtGQmMwSXNSVUZEZWtVc1MwRkJTMGdzUlVGQmEwSXNSVUZEZGtJc1MwRkJUeXhWUVVGUExGZEJRVmNzUTBGQlF5eEZRVWQ0UWl4VFFVRlRTU3hIUVVGeFFrTXNSVUZCTkVNc1EwRkROMFVzU1VGQlNYUkNMRVZCUVUxRUxFZEJRV04xUWl4RlFVRk5MRU5CUVVNc1JVRkRMMElzUjBGQlNTeERRVUZEZEVJc1JVRkJTeXhQUVVsV0xFbEJRVWwxUWl4RlFVRlZTQ3hIUVVGeFFpeE5RVUZOY0VJc1JVRkJTU3hIUVVGSExFVkJRMmhFTEVkQlFVdDFRaXhGUVVGUkxFOUJSV0lzVFVGQlR5eERRVU5JTEVsQlFVdEJMRVZCUVZFc1RVRkRZaXhOUVVGUFJDeEZRVUZMTEZWQlFWVjBRaXhGUVVGSkxGVkJRVlVzUlVGQlJTeExRVUZMTEVWQlF6TkRMRTFCUVU4c1JVRkRVQ3hYUVVGWlFTeEZRVUZKTEZkQlEyaENMRWxCUVV0elFpeEZRVUZMTEUxQlEyUXNRMEZEU2l4RFFVVlBMRWxCUVUxRkxFZEJRWEZDTEd0RFFVTnlRa01zUjBGQmFVSXNiMFZCUTJwQ1F5eEhRVUZyUWl4clEwRkRiRUpETEVkQlFYVkNMRFJEUVVOMlFrTXNSMEZCYlVJc2JVTkJSVzVDUXl4SFFVRm5RaXhEUVVONlFpeERRVUZGTEUxQlFVOU1MRWRCUVc5Q0xFbEJRVXNzVTBGQlZTeEZRVU0xUXl4RFFVRkZMRTFCUVU5SkxFZEJRV3RDTEVsQlFVc3NUMEZCVVN4RlFVTjRReXhEUVVGRkxFMUJRVTlFTEVkQlFYTkNMRWxCUVVzc1YwRkJXU3hGUVVOb1JDeERRVUZGTEUxQlFVOUdMRWRCUVdkQ0xFbEJRVXNzUzBGQlRTeEZRVU53UXl4RFFVRkZMRTFCUVU5RExFZEJRV2xDTEVsQlFVc3NXVUZCWVN4RFFVTm9SQ3hGUVVkQkxGTkJRVk5rTEVkQlFYbENja0lzUlVGQmEwTXNRMEZEYUVVc1NVRkJTWFZETEVWQlFUaENMRU5CUVVNc1JVRkZia01zVDBGQlV5eERRVUZGTEUxQlFVRkRMRVZCUVU4c1NVRkJRVGRDTEVOQlFVa3NTVUZCU3pKQ0xFZEJRV1VzUTBGRGRFTXNTVUZCVFVjc1JVRkJVVVFzUlVGQlRTeExRVUZMZUVNc1EwRkJTU3hGUVVONFFubERMRWRCUlV4R0xFVkJRVkVzUzBGQlN5eERRVU5VTEVsQlFVRTFRaXhGUVVOQkxFMUJRVTg0UWl4RlFVRk5MRU5CUVVNc1JVRkRaQ3hOUVVGUFFTeEZRVUZOTEUxQlEySXNWMEZCV1VFc1JVRkJUU3hOUVVGUkxFVkJRekZDTEVsQlFVdEJMRVZCUVUwc1RVRkJVVUVzUlVGQlRTeERRVUZETEVWQlFVVXNUMEZETlVJc1UwRkJWU3hwUWtGRFpDeERRVUZETEVOQlEwd3NRMEZGUVN4UFFVRlBSaXhEUVVOWUxFTkhlbEpQTEVsQlFWVkhMRTlCUVZZc1EwRkZTU3hUUVVGVFF5eEZRVUZMUXl4RlFVRTJRaXhEUVVNNVF5eEpRVUZOUXl4RlFVRlZReXhIUVVGVExGVkJRVlZETEVOQlFVOHNSVUZETVVNc1IwRkJTU3hEUVVGRFJpeEZRVUZUTEU5QlFVOHNTMEZGY2tJc1QwRkJVVUVzUlVGQlVTeExRVUZOTEVOQlEyeENMRWxCUVVzc1UwRkRUQ3hKUVVGTExGVkJRMHdzU1VGQlN5eFBRVU5NTEVsQlFVc3NVMEZEUkN4UFFVRlBRU3hGUVVGUkxFMUJRMjVDTEVsQlFVc3NVVUZEUkN4UFFVRlBRU3hGUVVGUkxFMUJRVTBzU1VGQlNVWXNRMEZCU1N4RlFVTnFReXhKUVVGTExFOUJRMFFzVDBGQlQwVXNSVUZCVVN4TlFVRk5MRTFCUVUwc1JVRkRMMElzU1VGQlN5eFhRVU5FTEU5QlFVOUJMRVZCUVZFc1RVRkJUU3hSUVVGUkxFVkJRMnBETEVsQlFVc3NWMEZEUkN4UFFVRlBMRXRCUTFnc1NVRkJTeXhQUVVORUxFOUJRVTlCTEVWQlFWRXNUVUZCVFN4VFFVRlRMRVZCUTJ4RExFbEJRVXNzVTBGRFJDeFBRVUZQUnl4SFFVRm5Ra2dzUlVGQlVTeE5RVUZQUml4RFFVRkpMRU5CUTJ4RUxFTkJRMG9zUTBGMlFrOUVMRVZCUVZNc1MwRkJRVU1zUlVFd1FsUXNVMEZCVTBrc1JVRkJVVWdzUlVGQk5rSXNRMEZEYWtRc1IwRkJTVUVzUjBGQlV5eExRVU5VTEU5QlFVOHNTMEZEU2l4SFFVRkpMRTlCUVU5QkxFZEJRVlVzVTBGRGVFSXNSMEZCU1N4TlFVRk5MRkZCUVZGQkxFTkJRVXNzUlVGQlJ5eERRVU4wUWl4SlFVRkpTeXhGUVVGVExFTkJRVU1zUlVGRFpDeFJRVUZUUXl4TFFVRlRUaXhGUVVOa1N5eEZRVUZQTEV0QlFVdEdMRVZCUVZGSExFTkJRVXNzUTBGQlF5eEZRVWM1UWl4UFFVRlBSQ3hEUVVOWUxFdEJRVThzU1VGQlNVd3NZVUZCYVVJc1MwRkZlRUlzVDBGRVowSlBMRVZCUVZNc1YwRkJWMUFzUTBGQlN5eEZRVVYwUXl4RFFVTklMRWxCUVVsUkxFVkJRVk5TTEVWQlExUkxMRVZCUVd0RExFTkJRVU1zUlVGRGRrTXNVVUZCVTBrc1MwRkJUMFFzUlVGRFdrZ3NSVUZCVDBrc1EwRkJSeXhGUVVGSlRpeEZRVUZSU3l4RlFVRlBReXhEUVVGSExFTkJRVU1zUlVGSGNrTXNUMEZCVDBvc1EwRkRXQ3hOUVVOSExFbEJRVWtzVDBGQlQwd3NSMEZCVlN4VFFVTjRRaXhQUVVGUFFTeEZRVU5LTEVkQlFVa3NUMEZCVDBFc1IwRkJWU3hWUVVONFFpeFBRVUZQUVN4RlFVTktMRWRCUVVrc1QwRkJUMEVzUjBGQlZTeFRRVUZWTEVOQlEyeERMRWxCUVVsVkxFVkJRVmxETEVWQlFWY3NTMEZCU3l4TlFVRk5XQ3hEUVVGTExFVkJRek5ETEVkQlFVbFZMRVZCUVZVc1QwRkJVU3hQUVVGUFFTeEZRVUZWTEUxQlJYWkRMRWxCUVVsRkxFVkJRV2RDUkN4RlFVRlhMRk5CUVZNc1RVRkJUVmdzUTBGQlN5eEZRVU51UkN4SFFVRkpXU3hGUVVGakxFOUJRVkVzVDBGQlQwRXNSVUZCWXl4TlFVVXZReXhKUVVGSlF5eEZRVUZaUml4RlFVRlhMRXRCUVVzc1RVRkJUVmdzUTBGQlN5eEZRVU16UXl4UFFVRkpZU3hGUVVGVkxFOUJRV1ZCTEVWQlFWVXNUVUZGYUVOaUxFTkJRMWdzUlVGSFFTeFBRVUZQTEVsQlExZ3NRMEV4UTA5R0xFVkJRVk1zVVVGQlFVc3NTVUUxUWtoTUxGRkJRVUVzUzFSamFrSXNTVUZCVFdkQ0xFZEJRV3RDTEdkQ1FVVnNRa01zUjBGQmQwSXNjMEpCUlhoQ1F5eEhRVUZyUWl4WFFVRkRMR2xGUVVGdlJDeExRVUZITEVWQlRYcEZMRk5CUVZORExFZEJRMXBETEVWQlEwRkRMRVZCUTBGRExFVkJRMEZETEVWQlEyZENMRU5CUTJoQ0xFZEJRVTBzUTBGQlJTeE5RVUZCUXl4RlFVRlBMRk5CUVZWRExFVkJRV01zV1VGQlFVTXNSVUZCWVN4VFFVRkJReXhEUVVGVExFVkJRVWxETEVkQlFYRkNVaXhGUVVGTlF5eEZRVUZWUXl4RFFVRlJMRVZCUnpsSExFOUJSbUVzU1VGQlNVOHNSMEZCVTFRc1JVRkJUVWNzUlVGQlQwTXNSVUZCVFN4UFFVRlJReXhGUVVGalJTeEZRVUZWUkN4RFFVRlhMRVZCUlRWRkxFMUJRVTBzUTBGRGRFSXNRMEZIVHl4VFFVRlRSU3hIUVVOYVVpeEZRVU5CUXl4RlFVTkJReXhGUVUxR0xFTkJOMFJHTEVsQlFVRlJMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVWQlFVRkRMRVZCUVVGRExFVkJRVUZETEVkQlFVRkRMRWRCT0VSSkxFbEJRVTF1UWl4RlFVRm5SVW9zUjBGQlFTeE5RVUZCUVN4RlFVRlZMRmxCUXpGRmQwSXNSMEZCYzBKNFFpeEZRVUZUTEZkQlFWY3NSVUZETVVNc1QwRkRRVVVzUlVGQlVVZ3NSVUZCVXl4TlFVRk5MRmxCUVZrc1JVRkRia013UWl4RlFVRnRRaXhKUVVGSlF5eEhRVU4yUWtNc1JVRkJPRUlzUTBGQlF5eEZRVXN2UWtNc1IwRkJaWEJDTEVWQlFVRlNMRWRCUVVFc1dVRkJRVUVzUlVGQlZTeFhRVUZXTEV0QlFVRlJMRVZCUVhOQ0xFTkJRVU1zUlVGRE5VTnZRaXhGUVVGaExFdEJRVXNzUTBGQlEwTXNSVUZCUjBNc1NVRkJUVVFzUlVGQlJTeFRRVUZUTEUxQlFVMHNTMEZCVDBNc1JVRkJSU3hUUVVGVExFMUJRVTBzU1VGQlNTeEZRVVY2UlN4SlFVRk5la0lzUlVGQlZ5eEpRVUZKTEVkQlFVRXdRaXhSUVVFeVFpeFBRVUZYTEVOQlFVTkdMRVZCUVVkRExFbEJRVTFFTEVWQlFVbERMRU5CUVVNc1JVRkRNVVVzVVVGQlUwVXNSVUZCVVN4RlFVRkhRU3hGUVVGUlNpeEZRVUZoTEU5QlFWRkpMRWxCUVZNc1EwRkRkRVFzU1VGQlRVTXNSVUZCVVV3c1JVRkJZVWtzUTBGQlN5eEZRVU14UWtVc1JVRkJVVVFzUlVGQlRTeFRRVUZUTEUxQlFVMHNTMEZETjBKRkxFZEJRVTFJTEVkQlFWTktMRVZCUVdFc1QwRkJVeXhGUVVGSk1VSXNSVUZCVFN4UFFVRlRNRUlzUlVGQllVa3NSVUZCVVN4RFFVRkRMRVZCUVVVc1UwRkJVeXhOUVVGTkxFdEJSUzlHU1N4SFFVRlZMRWxCUVVsRExFZEJRVmxJTEVWQlFVOURMRWRCUVV0R0xFVkJRVTBzVVVGQlUwRXNSVUZCVFN4TlFVRlBSQ3hGUVVGUkxFTkJRVU1zUlVGRGFrWXpRaXhGUVVGVExFbEJRVWsyUWl4RlFVRlBSU3hGUVVGUExFTkJReTlDTEVOQlNVRXNSMEZCU1M5Q0xFVkJRVk1zVFVGQlVTeEhRVU5xUWl4SFFVRkpMRU5CUVVOcFF5eEhRVUZYY0VNc1JVRkJUeXhGUVVGSFFTeEZRVUZOTEUxQlFVMHNSVUZCUnl4RFFVTnlReXhKUVVGTmEwTXNSVUZCVlN4SlFVRkpReXhIUVVGWkxFVkJRVWR1UXl4RlFVRk5MRTlCUVZGeFF5eEhRVUZoZWtNc1EwRkJTU3hGUVVGSExFVkJRVWNzUTBGQlF5eEZRVU42UlU4c1JVRkJVeXhKUVVGSkxFVkJRVWNyUWl4RFFVRlBMRU5CUXpOQ0xFMUJRMGNzUTBGRlNDeEpRVUZOU1N4SFFVRlJMMElzUlVGQlFVb3NSVUZCVXl4dlFrRkJiMElzUTBGQlF5eEpRVUU1UWl4WlFVRkJTU3hGUVVGclF5eEhRVVZvUkN4SFFVRkpLMElzUlVGQlRTeE5RVUZSTEVkQlFVc3NRMEZCUTBZc1IwRkJWM0JETEVWQlFVOHNSVUZCUjNORExFVkJRVTBzUzBGQlN5eEZRVUZITEVOQlEzWkVMRWxCUVUxS0xFVkJRVlVzU1VGQlNVTXNSMEZCV1N4RlFVRkhSeXhGUVVGTkxFMUJRVTlFTEVkQlFXRjZReXhEUVVGSkxFVkJRVWNzUlVGQlJ5eERRVUZETEVWQlJYaEZUeXhGUVVGVExFbEJRVWtzUlVGQlJ5dENMRU5CUVU4c1EwRkRNMElzUTBGRFNpeERRVkZCTEVsQlFVMUxMRVZCUVZNc1NVRkJTU3hIUVVGQlZpeFJRVUY1UWl4UFFVRlhMRU5CUVVOR0xFVkJRVWRETEVsQlFVMUVMRVZCUVVsRExFTkJRVU1zUlVGRGJFVlpMRVZCUVdVc1JVRkRia0lzVVVGQlYwTXNTMEZCVXpORExFZEJRVUVzV1VGQlFVRXNSVUZCVlN4WFFVRlpMRU5CUVVNc1JVRkJSeXhEUVVVeFF5eEhRVUZKTWtNc1JVRkJUU3hQUVVGVExGVkJRVmNzVTBGRk9VSXNTVUZCVFZRc1JVRkJVVk1zUlVGQlRTeFRRVUZUTEUxQlFVMHNTMEZETjBKU0xFVkJRVTFSTEVWQlFVMHNVMEZCVXl4SlFVRkpMRXRCUVU4c1JVRkRhRU5ETEVkQlFWa3hReXhGUVVGTlowTXNRMEZCU3l4RlFVVTNRaXhIUVVGSlV5eEZRVUZOTEU5QlFWTXNUMEZEWmtZc1JVRkJUeXhKUVVGSlVDeEZRVUZQTEVsQlFVbFhMRWRCUVdOWUxFVkJRVTlETEVWQlFVdFBMRWxCUVdkQ1F5eEZRVUZOTEVWQlFVVXNRMEZCUXl4VlFVTnNSVUVzUlVGQlRTeE5RVUZSTEZGQlFWVnFSQ3hIUVVGblFpeExRVUZMYTBRc1JVRkJVeXhGUVVGSExFTkJRMmhGTEVsQlFVMUZMRWRCUVdVMVF5eEZRVU5vUWl4TlFVRk5aME1zUlVGQlVTeEZRVUZIUXl4RlFVRk5MRU5CUVVNc1JVRkRlRUlzUzBGQlN6dEJRVUZCTEVOQlFVa3NSVUZEVkN4UlFVRlJMRTlCUVZFc1NVRkJTU3hGUVVOdVFsa3NSMEZCT0VOMlFpeEhRVUZ6UW5kQ0xFZEJRVlZHTEVWQlFVa3NRMEZCUXl4RlFVVjZSa3dzUlVGQlR5eEpRVUZKVUN4RlFVRlBMRWxCUVVsbExFZEJRV05tTEVWQlFVOURMRVZCUVV0UExFbEJRV2RDU3l4SFFVRlBTaXhGUVVGTkxFVkJRVVVzUTBGQlF5eERRVU53Uml4VFFVRlhRU3hGUVVGTkxFOUJRVk1zVDBGQlVTeERRVVU1UWl4SlFVRk5UeXhIUVVGUlRpeEhRVUZWTEUxQlFVMXFSQ3hGUVVGeFFpeEZRVU51UkN4SFFVRkpMRU5CUVVOMVJDeEhRVVZFVkN4RlFVRlBMRWxCUVVsUUxFVkJRVThzU1VGQlNXbENMRWRCUVdOcVFpeEZRVUZQUXl4RlFVRkxUeXhKUVVGblFpeERRVUZETEVWQlFVY3NVMEZCVlZJc1JVRkJUME1zUlVGQlMxRXNSVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkRhRWNzUTBGRFNDeEpRVUZOVXl4SFFVRlpSaXhIUVVGTkxFOUJRVk1zUjBGQlMwRXNSMEZCVFN4RFFVRkRMRVZCUVVsQkxFZEJRVTBzUTBGQlF5eEZRVUZGTEUxQlFVMHNSMEZCUnl4RlFVRkpMRU5CUVVNc1JVRkRlRVZVTEVWQlFVOHNTVUZEU0ZBc1JVRkRRU3hKUVVGSmFVSXNSMEZCWTJwQ0xFVkJRVTlETEVWQlFVdFBMRWxCUVdkQ1ZTeEhRVUZYTEZOQlFWVnNRaXhGUVVGUkxFVkJRVWRETEVWQlFVMHNSVUZCUjFFc1JVRkJUU3hGUVVGRkxFTkJRMjVITEVOQlEwb3NRMEZEU2l4TlFVTkpSaXhGUVVGUExFbEJRVWxRTEVWQlFVOHNTVUZCU1cxQ0xFZEJRV051UWl4RlFVRlBReXhGUVVGTFR5eEpRVUZuUWtNc1JVRkJUU3hMUVVGTlFTeEZRVUZOTEVWQlFVVXNRMEZCUXl4RFFVVTNSaXhEUVVkQkxGRkJRVmRCTEV0QlFWTkdMRVZCUVU4c1QwRkJUeXhIUVVNNVFpOUNMRVZCUVVFMFF5eEhRVUZQV0N4RlFVRk5MRTFCUVU5MFF5eERRVUZSTEVsQlFUVkNMRTFCUVVGTExFVkJRU3RDTEUxQlFVMXBReXhIUVZGNlF5eEpRVUZOV1N4RlFVRmxMR2xEUVVObVF5eEZRVUZqTEhGQ1FVTmtReXhGUVVGWkxFbEJRVWtzUjBGQlFURkNMRkZCUVRSQ0xFOUJRVmNzUTBGQlEwWXNSVUZCUjBNc1NVRkJUVVFzUlVGQlNVTXNRMEZCUXl4RlFVVTFSU3hSUVVGWE5FSXNTMEZCVVRGRUxFZEJRVUVzV1VGQlFVRXNSVUZCVlN4WlFVRmhMRU5CUVVNc1JVRkJSeXhEUVVreFF5eEpRVUZOYTBRc1JVRklUMmhFTEVWQlFVMHNUVUZCVFhkRUxFVkJRVXNzVTBGQlV5eE5RVUZOTEV0QlFVMUJMRVZCUVVzc1UwRkJVeXhKUVVGSkxFdEJRVThzUTBGQlF5eEZRVUZGTEV0QlFVczdRVUZCUVN4RFFVRkpMRVZCUjNKRkxFMUJRVTA1UkN4RlFVRmxMRVZCUTNCREswUXNSMEZEUVVNc1IwRkRRVllzU1VGRFFWTXNSMEZCVTFRc1JVRkJUU3hEUVVGRExFVkJRMmhDVlN4SFFVRlBWaXhGUVVGTkxFTkJRVU1zUjBGSGJFSXNTVUZCVFZjc1IwRkJUeXhKUVVGSlF5eEhRVU5pU2l4RlFVRkxMRk5CUVZNc1RVRkJUU3hMUVVOd1FrRXNSVUZCU3l4VFFVRlRMRWxCUVVrc1MwRkJUeXhGUVVONlFrRXNSVUZCU3l4UFFVTk1ReXhIUVVOQlJDeEZRVUZMTEVkQlEweEJMRVZCUVVzc1MwRkRURVVzUlVGRFNpeEZRVU5CU0N4RlFVRlZMRWxCUVVsSkxFZEJRVXNzVFVGQlQwRXNSVUZCU1N4RFFVTnNReXhEUVVkQkxGRkJRVmRCTEV0QlFWRktMRVZCUVZVc1QwRkJUeXhGUVVOb1F5eEhRVUZKU1N4RlFVRkxMRmRCUVdFc1JVRkJSeXhEUVVOeVFpeEpRVUZOUlN4RlFVRlpkRUlzUlVGQlR5eEpRVUZKTEVOQlFVTnZRaXhGUVVGTExGVkJRVlVzUlVGRE4wTXNSMEZCU1N4RFFVRkRSU3hIUVVGbFFTeEZRVUZWTEU5QlFWTXNUMEZCVXl4VFFVVXZRMEVzUlVGQk5FSXNUVUZCVFN4TFFVRkxSaXhEUVVGSkxFTkJRMmhFTEUxQlEwbHNSQ3hGUVVGQk9FTXNSVUZCVlN4SlFVRkpTU3hGUVVGTExGVkJRVlVzU1VGQk4wSXNUVUZCUVd4RUxFVkJRV2RETEZOQlFWTXNTMEZCUzJ0RUxFZEJVM1JFTEZGQlFWZEhMRXRCUVZWd1JDeEZRVUZCV2l4SFFVRkJMRmxCUVVGQkxFVkJRVlVzVDBGQlZpeExRVUZCV1N4RlFVRnJRaXhEUVVGRExFVkJRVWNzUTBGRGRrTXNTVUZCVFhGRUxFVkJRVTFFTEVWQlFVOHNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJTVUVzUlVGQlR5eEpRVUZOTEVsQlFVMUJMRVZCUVU4c1NVRkROMFJGTEVWQlFVOUdMRVZCUVU4c1UwRkJVeXhOUVVGTkxFdEJRMjVEZGtNc1JVRkJhVUlzU1VGQlNYZERMRU5CUVVjc1IwRkZlRUp3UkN4RlFVRkJlVU1zUjBGQlQxa3NSVUZCVFRkRUxFTkJRVkVzU1VGQmNrSXNUVUZCUVZFc1JVRkJkMElzVTBGQlV5eEpRVUZKYjBRc1NVRkRja051UkN4RlFVRkJkME1zUjBGQlQxa3NSVUZCVFhwQ0xFTkJRVTBzU1VGQmJrSXNUVUZCUVROQ0xFVkJRWE5DTEZOQlFWTXNTVUZCU1cxRUxFbEJRMjVEYkVRc1JVRkJRWFZETEVkQlFVOVpMRVZCUVUxVUxFTkJRVk1zU1VGQmRFSXNUVUZCUVRGRExFVkJRWGxDTEZOQlFWTXNTVUZCU1d0RUxFVkJRekZETEVOQlIwRXNSMEZCU1dwRkxFZEJRVUVzVFVGQlFVRXNSVUZCVlN4WlFVTldMRkZCUVZkdFJTeExRVUZWUXl4SFFVRlpjRVVzUlVGQlV5eFhRVUZYTEVWQlFVY3NRMEZEY0VRc1NVRkJUV2xGTEVWQlFVMUZMRVZCUVU4c1YwRkJWeXhIUVVGSExFVkJRVWxCTEVWQlFWTXNTVUZCVFVFc1JVRkRjRVF4UXl4RlFVRnBRaXhKUVVGSmQwTXNRMEZCUnl4RFFVTTFRaXhEUVU5S0xGRkJRVk5KTEV0QlFWZHlSQ3hGUVVGQmFFSXNSMEZCUVN4WlFVRkJRU3hGUVVGVkxGRkJRVllzUzBGQlFXZENMRVZCUVcxQ0xFTkJRVU1zUlVGQlJ5eERRVU4yUXl4SlFVRk5jMFFzUlVGQlQwTXNSMEZCU3l4TlFVRk5SaXhGUVVGUkxFbEJRVWtzUlVGRE9VSklMRVZCUVU5SExFVkJRVkVzVTBGQlV5eE5RVUZOTEV0QlEzQkROVU1zUlVGQmFVSXNTMEZCU3paRExFTkJRVWtzUjBGRk1VSnlSQ3hGUVVGQmNVTXNSMEZCVDFrc1JVRkJUVGRFTEVOQlFWRXNTVUZCY2tJc1RVRkJRVmtzUlVGQmQwSXNVMEZCVXl4TFFVRkxjVVFzU1VGRGRFTndSQ3hGUVVGQmIwTXNSMEZCVDFrc1JVRkJUWHBDTEVOQlFVMHNTVUZCYmtJc1RVRkJRWFpDTEVWQlFYTkNMRk5CUVZNc1MwRkJTMjlFTEVsQlEzQkRia1FzUlVGQlFXMURMRWRCUVU5WkxFVkJRVTFVTEVOQlFWTXNTVUZCZEVJc1RVRkJRWFJETEVWQlFYbENMRk5CUVZNc1MwRkJTMjFFTEVWQlF6TkRMRU5CVDBFc1VVRkJWMFFzUzBGQlYycEVMRVZCUVVGd1FpeEhRVUZCTEZsQlFVRkJMRVZCUVZVc2JVSkJRVllzUzBGQlFXOUNMRVZCUVRoQ0xFTkJRVU1zUlVGRGFrUkxMRVZCUVdsQ0xFdEJRVXM0UXl4SFFVRkxMRTFCUVUxR0xFVkJRVkVzUzBGQlRTeEhRVUZQUVN4RlFVRlJMRmRCUVZjc1EwRkJReXhGUVU4NVJTeFJRVUZYUnl4TFFVRlRReXhIUVVGdlFuWkZMRU5CUVVzc1JVRkJSeXhEUVVNMVF5eEpRVUZOWjBVc1JVRkJUMDBzUlVGQlRTeFRRVUZUTEV0QlF6VkNMME1zUlVGQmFVSXNXVUZCV1N0RExFTkJRVXNzUjBGRmJFTnVSQ3hGUVVGQmFVTXNSMEZCVDFrc1JVRkJUVGRFTEVOQlFWRXNTVUZCY2tJc1RVRkJRV2RDTEVWQlFYZENMRk5CUVZNc1dVRkJXVzFFTEVsQlF6ZERiRVFzUjBGQlFXZERMRWRCUVU5WkxFVkJRVTE2UWl4RFFVRk5MRWxCUVc1Q0xFMUJRVUZ1UWl4SFFVRnpRaXhUUVVGVExGbEJRVmxyUkN4SlFVTXpRMnBFTEVkQlFVRXJRaXhIUVVGUFdTeEZRVUZOVkN4RFFVRlRMRWxCUVhSQ0xFMUJRVUZzUXl4SFFVRjVRaXhUUVVGVExGbEJRVmxwUkN4RlFVTnNSQ3hEUVVOQkxFOUJRVUUzUXl4RlFVRmhMRXRCUVVzc1IwRkJSM1JDTEVWQlFWTXNUMEZCVHl4RFFVRkRMRVZCUXk5Q0xFTkJRMGdzVFVGQlFVZ3NSVUZEUVN4WlFVRkJSU3hGUVVOQkxGTkJRVlZ4UWl4RlFVTldMRk5CUVZWRkxFTkJRMlFzUTBGRFNpeERRVTFCTEZOQlFWTlhMRWRCUVZkd1F5eEZRVUZwUW1kRExFVkJRV1ZETEVWQlFYTkNMRU5CUTNSRkxGRkJRVk5JTEVWQlFWRkZMRVZCUVU5R0xFVkJRVkZITEVWQlFVdElMRWxCUTJwRExFZEJRVWs1UWl4RlFVRk5PRUlzUTBGQlN5eEZRVUZGTEV0QlFVc3NTVUZCVFN4SFFVRkpMRTFCUVU4c1IwRkhNME1zVFVGQlR5eEZRVU5ZTEVOQlRVOHNVMEZCVlhsRExFZEJRVzlDUXl4RlFVRXlReXhEUVVNMVJTeFJRVUZUUXl4RlFVRlRMRVZCUVVkQkxFVkJRVk5FTEVWQlFWRXNUMEZCVVVNc1NVRkJWU3hEUVVOd1JDeEpRVUZOVkN4RlFVRlBVU3hGUVVGUlF5eERRVUZOTEVWQlJ6TkNMRWRCUVVsVUxFVkJRVXNzVDBGQlV5eFBRVUZUTEVOQlFVTkJMRVZCUVVzc1UwRkJVeXhKUVVGSkxFVkJRVWNzVTBGSGFrUXNTVUZCU1ZVc1JVRkJaVU1zUjBGQmIwSllMRU5CUVVrc1JVRkRNME1zUjBGQlNWVXNSVUZCWVN4UFFVRlRMRVZCUTNSQ0xGRkJRVk5GTEV0QlFWVkdMRVZCUVdNc1RVRkJUVWNzUjBGQlkwUXNSVUZCVVVnc1EwRkJUU3hOUVVOb1JTeERRVU5JTEVsQlFVbExMRVZCUVZkRExFZEJRWEZDWml4RFFVRkpMRVZCUTNCRFl5eEpRVUZWTEUxQlFVMUVMRWRCUVdORExFVkJRVlZNTEVOQlFVMHNSVUZEZEVRc1EwRkRTaXhEUVVOS0xFTkJSMDhzVTBGQlUyNUVMRWRCUVhOQ2JVSXNSVUZCYTBVc1EwRkRjRWNzU1VGQlRYVkRMRVZCUVN0RExFTkJRVU1zUlVGRGRFUXNVVUZCVjBNc1MwRkJUeXhQUVVGUExFdEJRVXQ0UXl4RFFVRkxMRVZCUVVjc1EwRkRiRU1zU1VGQlRYbERMRVZCUVZGNlF5eEZRVUZOZDBNc1EwRkJSeXhGUVVWMlFrUXNSVUZCVDBNc1JVRkJTU3haUVVGWkxFTkJRVU1zUlVGQlNTeERRVU40UWl4SlFVRkxRU3hGUVVOTUxFMUJRVTlGTEVkQlFXVXNTMEZCUzBNc1IwRkJaU3hSUVVGUlJpeERRVUZMTEVOQlFVTXNSVUZEZUVRc1NVRkJTMEVzUTBGRFZDeERRVU5LTEVOQlJVRXNUMEZCVDBZc1EwRkRXQ3hEUVVkUExGTkJRVk0xUWl4SFFVRnBSRmtzUlVGQlkzRkNMRVZCUVhWRExFTkJNMVIwU0N4SlFVRkJMMFVzUlVFMFZFa3NTVUZCVFdkR0xFZEJRVk5vUml4RlFVRkJLMFVzUlVGQlN5eHRRa0ZCYlVKeVFpeERRVUZKTEVsQlFUVkNMRmxCUVVFeFJDeEZRVUZuUXl4SFFVTXZReXhIUVVGSlowWXNSMEZCVlVFc1JVRkJUeXhMUVVGUGRFSXNSVUZCVFN4UFFVRlBjMElzUTBGSE4wTXNRMEZIVHl4VFFVRlRjRUlzUjBGQldYQkZMRVZCUVhORExFTkJSemxFTEU5QlJtTXNUMEZCVHl4TFFVRkxRU3hEUVVGUkxFVkJRVVVzVDBGQlVTeEhRVUZOTEVWQlFVVXNXVUZCV1N4SFFVRkxMRkZCUVZVc1JVRkJSU3haUVVGWkxFZEJRVXNzUzBGQlN5eEZRVWRzUnl4SlFVRkxlVVlzUjBGQlRVTXNSMEZCTWtJeFJpeEZRVUZUZVVZc1EwRkJReXhGUVVGSExGRkJRVkVzUTBGQlF5eEZRVU0xUkN4UFFVRlBMRU5CUVVORkxFVkJRVWRETEVsQlFVMUVMRVZCUVVVc1QwRkJUME1zUTBGQlF5eEZRVUZITEVOQlFVTXNRMEZCUXl4RlFVTm9ReXhKUVVGTFF5eEhRVUZUUVN4RlFVRkpMRmRCUVZjc1IwRkJSeXhGUVVGSlFTeEZRVUZOTEVsQlFVMUJMRU5CUVVrc1EwRkROMFFzUTBGSFR5eFRRVUZUU0N4SFFVRXlRa2tzUlVGQlYwTXNSVUZCYzBJc1EwRkRlRVVzVDBGQlNVUXNSMEZCVVN4TlFVRlJRU3hIUVVGUkxFdEJRV3RDTEVOQlFVTXNSVUZETTBNc1RVRkJUU3hSUVVGUlFTeERRVUZKTEVWQlExaEJMRVZCUTBZc1QwRkJVVVVzUjBGQlRTeERRVUZETEVOQlFVTkJMRU5CUVVNc1JVRkRha0lzU1VGQlMwRXNSMEZCVFU0c1IwRkJNa0pOTEVWQlFVZEVMRU5CUVVVc1EwRkJReXhGUVVNMVF5eFBRVUZQTEVOQlFVTktMRVZCUVVkRExFbEJRVTFFTEVWQlFVVXNUMEZCVDBNc1EwRkJReXhGUVVGSExFTkJRVU1zUTBGQlF5eEhRVWxxUXl4SFFVRkxSU3hIUVVOU0xFMUJRVTFETEVOQlFVVXNSVUZEVWl4UFFVRlJMRWRCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGRGFrSXNTVUZCU3l4SFFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRMjVDTEU5QlFWRXNSMEZCVFN4RlFVRkZMRTlCUVZNc1EwRkJReXhEUVVOdVF5eERRVTlQTEVsQlFVMXlSU3hIUVVGT0xFdEJRV1VzUTBGQlppeGpRVU5JTEV0QlFVOHNTMEZCYjBJc1NVRkJTU3hKUVVNdlFpeExRVUZQTEUxQlFXZENMRU5CUVVNc1JVRkRlRUlzUzBGQlR5eGhRVUUwUXl4RFFVRkRMRVZCUnpkRExFbEJRVWwxUXl4RlFVRmhMRU5CUTNCQ0xFdEJRVXNzUzBGQlN5eEpRVUZKUVN4RFFVRkhMRU5CUTNKQ0xFTkJSMDhzUzBGQlMwc3NSVUZCV1N4RFFVTm9RaXhMUVVGTExFMUJRVTBzUzBGQlRUSkNMRWRCUVUxQkxFVkJRVVVzVDBGQlR6TkNMRU5CUVVrc1EwRkJReXhIUVVONlF5eExRVUZMTEUxQlFVMHNTMEZCUzBFc1EwRkJTU3hEUVVONFFpeERRVWRQTEZsQlFWbEZMRVZCUVc5Q0xFTkJRMjVETEVsQlFVMHdRaXhGUVVGUk1VSXNSVUZCVFN4SlFVRkpMRmxCUVZrc1JVRkRhRU1zVDBGQlR5eExRVUZMTEV0QlFVc3NXVUZCV1N4RlFVRkZMRXRCUVUxWExFZEJRVkZCTEVWQlFVa3NXVUZCV1N4SFFVRkxaU3hEUVVGTExFbEJSVE5GTEV0QlFVc3NZVUZCWVVFc1EwRkJTeXhGUVVGSk1VSXNSVUZETDBJc1EwRkhUeXhaUVVGMVFpeERRVU14UWl4UFFVRlBMRTFCUVUwc1MwRkJTeXhMUVVGTExFbEJRVWtzUTBGREwwSXNRMEZIVHl4aFFVRXdRaXhEUVVNM1FpeFBRVUZQTEV0QlFVc3NUVUZCVFN4SlFVRkxSaXhIUVVGVFFTeEZRVUZMTEZOQlFWTXNRMEZCUXl4RFFVTnVSQ3hEUVVkUExHOUNRVUZ6UkN4RFFVTjZSQ3hQUVVGUE5rSXNSMEZCWjBJc1MwRkJTeXhoUVVGalF5eEZRVUZsTEVOQlF6ZEVMRU5CUTBvc1JVRkhZVGRHTEVkQlFVNHNTMEZCWlN4RFFVTllMRmxCUTBsVUxFVkJRMEZITEVWQlEwRnZSeXhGUVVOQmNrY3NSVUZEUVVzc1JVRkRRVVFzUlVGRFZDeERRVTVUTEZWQlFVRk9MRVZCUTBFc1YwRkJRVWNzUlVGRFFTeFpRVUZCYjBjc1JVRkRRU3hqUVVGQmNrY3NSVUZEUVN4alFVRkJTeXhGUVVOQkxHbENRVUZCUkN4RFFVTlNMRU5CUlVrc1QwRkJNRUlzUTBGRE4wSXNUVUZCVHl4RFFVTklMRTFCUVU4c1MwRkJTeXhMUVVOYUxFOUJRVkVzUzBGQlN5eE5RVUZOTEUxQlEyNUNMRTlCUVZFc1MwRkJTeXhOUVVGTkxFMUJRMjVDTEUxQlFVOHNTMEZCU3l4TlFVRk5MRXRCUTJ4Q0xGZEJRVmxyUnl4SFFVRmhMRXRCUVVzc1NVRkJTU3hGUVVOc1F5eFZRVUZYTEVOQlFVVXNUVUZCVHl4RlFVRkhMRWxCUVVzc1MwRkJTeXhOUVVGUExFVkJRM2hETEUxQlFVOHNTMEZCU3l4VFFVRlRMRmRCUVZjc1JVRkRhRU1zVDBGQlVTeExRVUZMTEZOQlFWTXNXVUZCV1N4RlFVTnNReXhWUVVGWExFdEJRVXNzVTBGQlV5eHRRa0ZCYlVJc1JVRkROVU1zVlVGQlZ5eExRVUZMTEZOQlFWTXNTVUZCUzBNc1IwRkJUVUVzUlVGQlJTeE5RVUZOTEVOQlFVTXNSVUZETjBNc1lVRkJZeXhMUVVGTExGZEJRM1pDTEVOQlEwb3NRMEZEU2l4RlFVZGhiRVVzUjBGQlRpeExRVUZyUWl4RFFVbGtMRmxCUTBsSUxFVkJRMEZETEVWQlEwRnhSU3hGUVVOQlF5eEZRVU5CUXl4RlFVTlVMRU5CVEZNc1YwRkJRWGhGTEVWQlEwRXNVMEZCUVVNc1JVRkRRU3hYUVVGQmNVVXNSVUZEUVN4WFFVRkJReXhGUVVOQkxHRkJRVUZETEVWQlVsZ3NTMEZCVHl4UFFVRnpRaXhEUVVGRExFVkJRemxDTEV0QlFVOHNVMEZCY1VJc1NVRkJTV2hHTEVWQlVUZENMRU5CUlVrc1RVRkJUV2xDTEVWQlFXdENMRU5CUXpOQ0xFdEJRVXNzVDBGQlR5eExRVUZMUVN4RFFVRkxMRU5CUXpGQ0xFTkJSVThzVDBGQk5rSXNRMEZEYUVNc1RVRkJUeXhEUVVOSUxFOUJRVkVzUzBGQlN5eE5RVU5pTEZOQlFWVXNTMEZCU3l4UlFVTm1MRTlCUVZFc1MwRkJTeXhOUVVOaUxFMUJRVThzUzBGQlN5eFRRVUZUTEZkQlFWY3NSVUZEYUVNc1ZVRkJWeXhMUVVGTExGTkJRVk1zYlVKQlFXMUNMRVZCUXpWRExFOUJRVkVzUzBGQlN5eFRRVUZUTEZsQlFWa3NSVUZEYkVNc1ZVRkJWeXhEUVVGRkxFMUJRVThzUzBGQlN5eE5RVUZQTEVsQlFVc3NTMEZCU3l4SFFVRkpMRVZCUXpsRExGRkJRVk1zUzBGQlN5eFBRVUZQTEVsQlFVdEJMRWRCUVZWQkxFVkJRVTBzVFVGQlRTeERRVUZETEVOQlEzSkVMRU5CUTBvc1EwRkRTaXhGUVVkaFJTeEhRVUZPTEV0QlFXOUNMRU5CUzJoQ0xGbEJRVzFDV0N4RlFVRnpRa01zUlVGQmIwSjFSU3hGUVVGM1FrTXNSVUZCYTBJc1EwRkJjRVlzVjBGQlFYcEZMRVZCUVhOQ0xGTkJRVUZETEVWQlFXOUNMR0ZCUVVGMVJTeEZRVUYzUWl4aFFVRkJReXhGUVVvMVJpeExRVUZQTEV0QlFXVXNUMEZEZEVJc1MwRkJUeXhUUVVGeFFpeEpRVUZKYWtZc1IwRkRhRU1zUzBGQlR5eE5RVUYzUWl4RFFVRkRMRU5CUlN0RkxFTkJSWGhITEU5QlFTdENMRU5CUTJ4RExFMUJRVThzUTBGRFNDeFRRVUZWTEV0QlFVc3NVVUZEWml4VlFVRlhMRU5CUVVVc1RVRkJUeXhMUVVGTExFMUJRVThzU1VGQlN5eExRVUZMTEVkQlFVa3NSVUZET1VNc1ZVRkJWeXhMUVVGTExGTkJRVk1zYlVKQlFXMUNMRVZCUXpWRExFMUJRVThzUzBGQlN5eFRRVUZUTEZkQlFWY3NSVUZEYUVNc1QwRkJVU3hMUVVGTExGTkJRVk1zV1VGQldTeEZRVU5zUXl4TlFVRlBMRTlCUTFBc1UwRkJWU3hMUVVGTExGRkJRMllzVlVGQlZ5eExRVUZMTEUxQlFVMHNTVUZCUzIxRExFZEJRVk5CTEVWQlFVc3NUVUZCVFN4RFFVRkRMRU5CUTNCRUxFTkJRMG9zUTBGRFNpeEZRVWRoVml4SFFVRk9MRXRCUVc5Q0xFTkJTV2hDTEZsQlEwbHFRaXhGUVVOQlF5eEZRVU5CZFVVc1JVRkRRWFJFTEVWQlEwRjNSQ3hGUVVOQlF5eEZRVU5CUXl4RlFVTkJTQ3hGUVVOVUxFTkJVbE1zVjBGQlFYcEZMRVZCUTBFc1UwRkJRVU1zUlVGRFFTeGhRVUZCZFVVc1JVRkRRU3hsUVVGQmRFUXNSVUZEUVN4WFFVRkJkMFFzUlVGRFFTeHJRa0ZCUVVNc1JVRkRRU3huUWtGQlFVTXNSVUZEUVN4aFFVRkJTQ3hGUVZoWUxFdEJRVThzUzBGQlpTeFpRVU4wUWl4TFFVRlBMRk5CUVhGQ0xFbEJRVWxxUml4RlFWYzNRaXhEUVVWSkxFOUJRU3RDTEVOQlEyeERMRTFCUVU4c1EwRkRTQ3hOUVVGUExGbEJRMUFzVTBGQlZTeExRVUZMTEZGQlEyWXNWVUZCVnl4RFFVRkZMRTFCUVU4c1MwRkJTeXhOUVVGUExFbEJRVXNzUzBGQlN5eEhRVUZKTEVWQlF6bERMRlZCUVZjc1MwRkJTeXhUUVVGVExHMUNRVUZ0UWl4RlFVTTFReXhOUVVGUExFdEJRVXNzVTBGQlV5eFhRVUZYTEVWQlEyaERMRTlCUVZFc1MwRkJTeXhUUVVGVExGbEJRVmtzUlVGRGJFTXNVMEZCVlN4TFFVRkxMRkZCUTJZc1YwRkJXU3hMUVVGTExGVkJRMnBDTEU5QlFWRXNTMEZCU3l4TlFVTmlMR2xDUVVGclFpeERRVUZGTEUxQlFVOHNTMEZCU3l4aFFVRmpMRWxCUVVzc1MwRkJTeXhWUVVGWExFTkJRM1pGTEVOQlEwb3NRMEZEU2l4RlFVZGhkVUlzUjBGQlRpeExRVUZ2UWl4RFFVbG9RaXhaUVVOSlppeEZRVU5CUXl4RlFVTkJkVVVzUlVGRFFWb3NSVUZEUVdFc1JVRkRWQ3hEUVV4VExGZEJRVUY2UlN4RlFVTkJMRk5CUVVGRExFVkJRMEVzWVVGQlFYVkZMRVZCUTBFc1ZVRkJRVm9zUlVGRFFTeGhRVUZCWVN4RlFWSllMRXRCUVU4c1MwRkJaU3haUVVOMFFpeExRVUZQTEZOQlFYRkNMRWxCUVVscVJpeEZRVkUzUWl4RFFVVkpMRTlCUVN0Q0xFTkJRMnhETEUxQlFVOHNRMEZEU0N4TlFVRlBMRmxCUTFBc1UwRkJWU3hMUVVGTExGRkJRMllzVlVGQlZ5eERRVUZGTEUxQlFVOHNTMEZCU3l4TlFVRlBMRWxCUVVzc1MwRkJTeXhIUVVGSkxFVkJRemxETEZWQlFWY3NTMEZCU3l4VFFVRlRMRzFDUVVGdFFpeEZRVU0xUXl4TlFVRlBMRXRCUVVzc1UwRkJVeXhYUVVGWExFVkJRMmhETEU5QlFWRXNTMEZCU3l4VFFVRlRMRmxCUVZrc1JVRkRiRU1zVTBGQlZTeExRVUZMTEZGQlEyWXNUVUZCVHl4TFFVRkxMRWxCUTJoQ0xFTkJRMG9zUTBGRFNpeEZRVWRoTWtJc1IwRkJUaXhMUVVGdlFpeERRVWRvUWl4WlFVTkpia0lzUlVGRFFVTXNSVUZEUVhWRkxFVkJRMEZMTEVWQlEwRktMRVZCUTFRc1EwRk1VeXhYUVVGQmVrVXNSVUZEUVN4VFFVRkJReXhGUVVOQkxHRkJRVUYxUlN4RlFVTkJMRlZCUVVGTExFVkJRMEVzWVVGQlFVb3NSVUZRV0N4TFFVRlBMRk5CUVhGQ0xFbEJRVWxxUml4RlFWRTNRaXhEUVVWSkxFOUJRVEpDTEVOQlF6bENMRTFCUVU4c1EwRkRTQ3hOUVVGUExFdEJRVXNzUzBGRFdpeFRRVUZWTEV0QlFVc3NVVUZEWml4VlFVRlhMRU5CUVVVc1RVRkJUeXhMUVVGTExFMUJRVThzU1VGQlN5eExRVUZMTEVkQlFVa3NSVUZET1VNc1ZVRkJWeXhMUVVGTExGTkJRVk1zYlVKQlFXMUNMRVZCUXpWRExFMUJRVThzUzBGQlN5eFRRVUZUTEZkQlFWY3NSVUZEYUVNc1QwRkJVU3hMUVVGTExGTkJRVk1zV1VGQldTeEZRVU5zUXl4VFFVRlZMRXRCUVVzc1QwRkRia0lzUTBGRFNpeERRVU5LTEVWQlMyRnZReXhIUVVGT0xFdEJRVzFDTEVOQlIyWXNXVUZEU1RWQ0xFVkJRMEZETEVWQlEwRTJSU3hGUVVOQmNrUXNSVUZEUVdkRUxFVkJRMEZOTEVWQlEwRnlSQ3hGUVVOVUxFTkJVRk1zVjBGQlFURkNMRVZCUTBFc1UwRkJRVU1zUlVGRFFTeG5Ra0ZCUVRaRkxFVkJRMEVzV1VGQlFYSkVMRVZCUTBFc1lVRkJRV2RFTEVWQlEwRXNXVUZCUVUwc1JVRkRRU3hWUVVGQmNrUXNSVUZVV0N4TFFVRlBMRk5CUVhGQ0xFbEJRVWxzUXl4SFFVTm9ReXhMUVVGUExGTkJRVEpDTEVOQlFVTXNRMEZUYUVNc1EwRkZTU3hQUVVFNFFpeERRVU5xUXl4TlFVRlBMRU5CUTBnc1dVRkJZU3hMUVVGTExGZEJRMnhDTEZWQlFWY3NRMEZCUlN4TlFVRlBMRXRCUVVzc1RVRkJUeXhKUVVGTExFdEJRVXNzUjBGQlNTeEZRVU01UXl4VFFVRlZMRXRCUVVzc1VVRkRaaXhWUVVGWExFdEJRVXNzVTBGQlV5eEpRVUZMZDBZc1IwRkJXVUVzUlVGQlVTeE5RVUZOTEVOQlFVTXNSVUZEZWtRc1RVRkJUeXhMUVVGTExFOUJRVk1zVDBGQlV5eFBRVU01UWl4VlFVRlhMRXRCUVVzc1UwRkJVeXh0UWtGQmJVSXNSVUZETlVNc1RVRkJUeXhMUVVGTExGTkJRVk1zVjBGQlZ5eEZRVU5vUXl4UFFVRlJMRXRCUVVzc1UwRkJVeXhaUVVGWkxFVkJRMnhETEZGQlFWTXNTMEZCU3l4UFFVTmtMRkZCUVZNc1MwRkJTeXhQUVVOa0xFMUJRVThzUzBGQlN5eEpRVU5vUWl4RFFVTktMRU5CUTBvc1JWVXZha0pQTEZOQlFWTkRMRWRCUTFwRExFVkJRMEZETEVWQlEwRkRMRVZCUTBGRExFVkJRMVVzUTBGeVFtUXNTVUZCUVVNc1JVRnpRa2tzU1VGQlRVTXNSVUZCVXl4SlFVRkpReXhIUVVGWFRpeEZRVUZOUnl4RFFVRkxMRVZCUTI1RFNTeEZRVUZUTEV0QlFVc3NUVUZCVFU0c1EwRkJUU3hGUVVWb1F5eFJRVUZYVHl4TFFVRkxSQ3hGUVVGUExFMUJRMjVDTEVkQlFVbERMRVZCUVVVc1RVRkJVU3hSUVVOa0xFZEJRVWxCTEVWQlFVVXNUVUZCVVN4UFFVRlJMRU5CUTJ4Q0xFZEJRVTBzUTBGQlJTeFpRVUZCUXl4RlFVRmhMRk5CUVVGRExFVkJRVlVzVFVGQlFVTXNSVUZCVHl4VFFVRkJReXhEUVVGVExFVkJRVWxETEVkQlFYRkNZaXhGUVVGTlVTeEZRVUZGTEV0QlFVMU9MRWRCUVVFc1dVRkJRVUVzUlVGQlR5eFBRVUZQVFN4RlFVRkZMRWRCUVVjc1JVRkRia2ROTEVWQlFVOHNTVUZCU1VNc1IwRkJaV1lzUlVGQlRWRXNSVUZCUlN4SFFVRkpRU3hGUVVGSFF5eERRVUZYTEVWQlF6RkVSeXhGUVVGVExGRkJRVk5KTEVkQlFVMUdMRVZCUVVzc1VVRkJVVVVzUTBGQlF5eERRVUZETEVWQlEzWkRXQ3hGUVVGUExFdEJRVXRUTEVOQlFVa3NSVUZEYUVJc1VVRkJWMGNzUzBGQlQxQXNSVUZCVXl4TFFVRk5UQ3hGUVVGUExGTkJRVk1zU1VGQlNWa3NRMEZCUnl4RlFVTjRSQ3hSUVVGWFF5eExRVUZSWkN4RlFVRkJUU3hGUVVGVExGRkJRVlFzUzBGQlFVNHNSVUZCYTBJc1EwRkJReXhGUVVGSFF5eEZRVUZQTEZOQlFWTXNTMEZCUzJFc1EwRkJTU3hGUVVOc1JTeFJRVUZYUXl4TFFVRlRReXhIUVVGdlFsUXNRMEZCU3l4RlFVRkhUaXhGUVVGUExGTkJRVk1zV1VGQldXTXNRMEZCU3l4RFFVTnlSaXhMUVVGUExFTkJRMGdzU1VGQlRVd3NSVUZCVHl4SlFVRkpReXhIUVVGbFppeEZRVUZOVVN4RlFVRkZMRWRCUVVsQkxFTkJRVU1zUlVGRE4wTklMRVZCUVU4c1MwRkJTMU1zUTBGQlNTeERRVU53UWl4RFFVZEtMRTlCUVU5VUxFVkJRVThzVFVGQlRTeERRVU40UWl4RFFVZEJMRWxCUVdWblFpeEhRVUZtTEV0QlFYTkRMRU5CUnpOQ0xGbEJRMGx5UWl4RlFVTkJjMElzUlVGRFIwTXNSVUZEV2l4RFFVaFRMRlZCUVVGMlFpeEZRVU5CTEZGQlFVRnpRaXhGUVVOSExHTkJRVUZETEVWQlRHUXNTMEZCVHl4VFFVRnhRaXhKUVVGSlF5eEZRVTAzUWl4RFFVVkpMRTlCUVRSQ0xFTkJReTlDTEUxQlFVOHNRMEZEU0N4TlFVRlBMRXRCUVVzc1MwRkRXaXhKUVVGTExFdEJRVXNzUjBGRFZpeFZRVUZYTEVOQlExQXNSVUZCUnl4TFFVRkxMRk5CUVZNc1JVRkRha0lzUlVGQlJ5eExRVUZMTEZOQlFWTXNRMEZEY2tJc1JVRkRRU3haUVVGaExFTkJRMVFzVFVGQlR5eExRVUZMTEZOQlFWTXNUVUZEY2tJc1QwRkJVU3hMUVVGTExGTkJRVk1zVFVGRE1VSXNSVUZEUVN4UFFVRlJMRXRCUVVzc1UwRkJVeXhOUVVOMFFpeE5RVUZQUXl4SFFVRkxMRXRCUVVzc1MwRkJTeXhKUVVGSkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSVUZCUlN4VFFVRlRMRU5CUXpWRUxFTkJRMG9zUTBGRFNpeEZRVWRoVml4SFFVRk9MR05CUVRaQ1RTeEZRVUYxUWl4RFFVVm9SQ3haUVVOSmNrSXNSVUZEUVhOQ0xFVkJRMGRETEVWQlEwaGtMRVZCUTFRc1EwRkRSU3hOUVVGTlZDeEZRVUZOYzBJc1JVRkJTVU1zUTBGQlVTeEZRVXhxUWl4VlFVRkJka0lzUlVGRFFTeFJRVUZCYzBJc1JVRkRSeXhqUVVGQlF5eEZRVU5JTEdsQ1FVRkJaQ3hGUVV4WUxFdEJRVThzVTBGQk1FSXNRMEZCUXl4RFFWRnNReXhEUVVWUExGRkJRVkZwUWl4RlFVRnRReXhEUVVNNVF5eFpRVUZMTEZOQlFWTXNTMEZCUzBFc1EwRkJUeXhGUVVOdVFrRXNRMEZEV0N4RFFVVlBMRTlCUVhkQ0xFTkJRek5DTEU5QlFWRXNTMEZCU3l4VFFVRlRMRXRCUVUwc1EwRkRlRUlzU1VGQlN5eFBRVU5FTEU5QlFVOURMRWRCUVVGRExFVkJRVUVzUjBGRFF5eE5RVUZOTEUxQlFVMHNSMEZFWWl4RFFVVklMRlZCUVZjc1MwRkJTeXhUUVVGVExHMUNRVUZ0UWl4RlFVTTFReXhoUVVGakxFdEJRVXNzV1VGRGJrSXNWVUZCVnl4TFFVRkxMRk5CUVZNc1NVRkJTME1zUjBGQlRVRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1JVRkROME1zVFVGQlR5eExRVUZMTEZOQlFWTXNWMEZCVnl4RlFVTm9ReXhQUVVGUkxFdEJRVXNzVTBGQlV5eFpRVUZaTEVWQlEyeERMRTFCUVU4c1dVRkRVQ3hQUVVGUkxFdEJRVXNzVTBGQlV5eExRVU14UWl4SFFVTktMRWxCUVVzc1QwRkRSQ3hQUVVGUFJpeEhRVUZCUXl4RlFVRkJMRWRCUTBFc1RVRkJUU3hOUVVGTkxFZEJSRm9zUTBGRlNDeFpRVUZoTEV0QlFVc3NVMEZCVXl4SlFVTXZRaXhIUVVOS0xFbEJRVXNzVDBGRFJDeFBRVUZQUkN4SFFVRkJReXhGUVVGQkxFZEJRMEVzVFVGQlRTeE5RVUZOTEVkQlJGb3NRMEZGU0N4TFFVRk5MRXRCUVVzc1UwRkJVeXhIUVVONFFpeEZRVVZTTEVOQlEwb3NRMEZEU2l4RlFVZGhkRUlzUjBGQlRpeExRVUZwUWl4RFFVbGlMRmxCUVcxQ1RpeEZRVUZ4UWtjc1JVRkJhMElzUTBGQmRrTXNWVUZCUVVnc1JVRkJjVUlzVjBGQlFVY3NSVUZJTDBNc1MwRkJUeXhOUVVFd1FpeERRVUZETEVWQlEyeERMRXRCUVU4c1UwRkJjVUlzU1VGQlNYRkNMRVZCUld0RExFTkJSVE5FTEV0QlFVdE5MRVZCUVcxRExFTkJRek5ETEZsQlFVc3NUVUZCVFN4TFFVRkxRU3hEUVVGRExFVkJRMVpCTEVOQlExZ3NRMEZGVHl4UFFVRnZRaXhEUVVOMlFpeE5RVUZQTEVOQlEwZ3NUMEZCVVN4TFFVRkxMRTFCUVUwc1NVRkJTMFFzUjBGQlRVRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1JVRkRka01zVDBGQlVTeExRVUZMTEUxQlFVMHNUVUZEYmtJc1QwRkJVU3hMUVVGTExFMUJRVTBzVFVGRGJrSXNWVUZCVnl4TFFVRkxMRk5CUVZNc2JVSkJRVzFDTEVWQlF6VkRMRTlCUVZFc1MwRkJTeXhUUVVGVExGbEJRVmtzUlVGRGJFTXNUVUZCVHl4TFFVRkxMRk5CUVZNc1YwRkJWeXhGUVVOb1F5eE5RVUZQTEV0QlFVc3NTMEZEV2l4TlFVRlBMRXRCUVVzc1RVRkJUU3hKUVVOMFFpeERRVU5LTEVOQlEwb3NSVU40U1VFc1ZVRkJXU3hOUVVGUFJTeEhRVUZWTEVOQlEzcENMRWRCUVVrc1EwRkRRU3hKUVVGTlF5eEZRVUZWUkN4RlFVRk5MRXRCUlhSQ0xFZEJRVWxETEVWQlFWRXNUMEZCVXl4WFFVRlpMRU5CUXpkQ0xFbEJRVTFETEVWQlFWZERMRWRCUVdWR0xFVkJRVkVzUzBGQlRVRXNSVUZCVVN4VFFVRlZRU3hGUVVGUkxGTkJRVlZCTEVWQlFWRXNTVUZCU1N4RlFVVTVSaXhaUVVGWkxFTkJRMUlzUzBGQlRTeFhRVU5PTEU5QlFWRkRMRU5CUTFvc1EwRkJlVUlzUTBGRE4wSXNVMEZCVjBRc1JVRkJVU3hQUVVGVExGTkJRVlVzUTBGRGJFTXNTVUZCVFVjc1JVRkJVME1zUjBGQllVb3NSVUZCVVN4TFFVRk5RU3hGUVVGUkxGTkJRVlZCTEVWQlFWRXNUVUZCVDBFc1JVRkJVU3hKUVVGSkxFVkJSWFpHTEZsQlFWa3NRMEZEVWl4TFFVRk5MRk5CUTA0c1QwRkJVVWNzUTBGRFdpeERRVUYxUWl4RFFVTXpRaXhOUVVOSkxGbEJRVmtzUTBGQlJTeFBRVUZSTERSQ1FVRTJRaXhEUVVGRExFTkJSVFZFTEU5QlFWTkZMRVZCUVU4c1EwRkRXaXhSUVVGUkxFMUJRVTBzYjBOQlFXOURUaXhGUVVGTkxFdEJRVXNzU1VGQlNTeExRVUZMVFN4RFFVRkxMRVZCUVVVc1JVRkROMFVzV1VGQldTeERRVUZGTEU5QlFWRkJMRVZCUVUwc1QwRkJVU3hEUVVGRExFTkJRM3BETEVOQlEwb2lMQW9nSUNKdVlXMWxjeUk2SUZzaWNtVnhkV2x5WlY5d1lYSnphVzF0YjI1ZmRXMWtYMjFwYmlJc0lDSmZYMk52YlcxdmJrcFRUV2x1SWl3Z0ltVjRjRzl5ZEhNaUxDQWliVzlrZFd4bElpd2dJblFpTENBaWNpSXNJQ0psSWl3Z0luVWlMQ0FpYmlJc0lDSnZJaXdnSW1raUxDQWlaaUlzSUNKaklpd2dJbk1pTENBaWJDSXNJQ0o0SWl3Z0ltSWlMQ0FpYUNJc0lDSndJaXdnSW1RaUxDQWlkaUlzSUNKbklpd2dJbTBpTENBaWVTSXNJQ0pGSWl3Z0luY2lMQ0FpUWlJc0lDSmhJaXdnSW1vaUxDQWlVeUlzSUNKZklpd2dJa3dpTENBaVR5SXNJQ0pySWl3Z0lsQWlMQ0FpY1NJc0lDSkJJaXdnSWtraUxDQWlSaUlzSUNKTklpd2dJbm9pTENBaVVpSXNJQ0pWSWl3Z0lsY2lMQ0FpUkNJc0lDSk9JaXdnSWtjaUxDQWlReUlzSUNKS0lpd2dJbFFpTENBaVdTSXNJQ0pXSWl3Z0lrZ2lMQ0FpV0NJc0lDSkxJaXdnSWxFaUxDQWlXaUlzSUNJa0lpd2dJbTV1SWl3Z0luUnVJaXdnSW5KdUlpd2dJbUZ1SWl3Z0ltVnVJaXdnSW5WdUlpd2dJbTl1SWl3Z0ltWnVJaXdnSW1OdUlpd2dJbk51SWl3Z0lteHVJaXdnSW1odUlpd2dJbkJ1SWl3Z0ltUnVJaXdnSW5adUlpd2dJbWR1SWl3Z0ltMXVJaXdnSW5sdUlpd2dJbkpsY1hWcGNtVmZZbDkwY21WbElpd2dJbDlmWTI5dGJXOXVTbE5OYVc0aUxDQWlaWGh3YjNKMGN5SXNJQ0pmWDJWNGRHVnVaSE1pTENBaVpYaDBaVzVrVTNSaGRHbGpjeUlzSUNKa0lpd2dJbUlpTENBaWNDSXNJQ0pmWHlJc0lDSmtaV1poZFd4MFEyOXRjR0Z5WVhSdmNpSXNJQ0poSWl3Z0luUmhJaXdnSW5SaUlpd2dJbk5wYlhCc1pVTnZiWEJoY21GMGIzSWlMQ0FpUWxSeVpXVWlMQ0FpWlc1MGNtbGxjeUlzSUNKamIyMXdZWEpsSWl3Z0ltMWhlRTV2WkdWVGFYcGxJaXdnSWtWdGNIUjVUR1ZoWmlJc0lDSmpZV3hzWW1GamF5SXNJQ0owYUdselFYSm5JaXdnSWw5MGFHbHpJaXdnSW1zaUxDQWlkaUlzSUNKcGJtbDBhV0ZzUTI5MWJuUmxjaUlzSUNKc2IzY2lMQ0FpYUdsbmFDSXNJQ0pyWlhraUxDQWlaR1ZtWVhWc2RGWmhiSFZsSWl3Z0luWmhiSFZsSWl3Z0ltOTJaWEozY21sMFpTSXNJQ0p5WlhOMWJIUWlMQ0FpUWs1dlpHVkpiblJsY201aGJDSXNJQ0pFWld4bGRHVlNZVzVuWlNJc0lDSnVkU0lzSUNKd1lXbHljeUlzSUNKclpYbHpJaXdnSW5KbGRIVnlibFJvYVhOSlpsVnVZMmhoYm1kbFpDSXNJQ0pqYUdGdVoyVmtJaXdnSW1sdVkyeDFaR1ZJYVdkb0lpd2dJbVJsYkNJc0lDSnBJaXdnSWtSbGJHVjBaU0lzSUNKMGJYQWlMQ0FpYVc1cGRHbGhiRlpoYkhWbElpd2dJbWwwSWl3Z0lsSmxkWE5sWkVGeWNtRjVJaXdnSW01bGVIUWlMQ0FpYkc5M1pYTjBTMlY1SWl3Z0luSmxkWE5sWkVGeWNtRjVJaXdnSW1sdVptOGlMQ0FpYVhSbGNtRjBiM0lpTENBaWJtOWtaWEYxWlhWbElpd2dJbTV2WkdWcGJtUmxlQ0lzSUNKc1pXRm1JaXdnSW5OMFlYUmxJaXdnSW1wMWJYQWlMQ0FpYkdWMlpXd2lMQ0FpYUdsbmFHVnpkRXRsZVNJc0lDSnphMmx3U0dsbmFHVnpkQ0lzSUNKZllTSXNJQ0pqYUdWamF5SXNJQ0p1WlhoMGJtOWtaU0lzSUNKRmJYQjBlVUZ5Y21GNUlpd2dJbTkwYUdWeUlpd2dJbTl1YkhsVWFHbHpJaXdnSW05dWJIbFBkR2hsY2lJc0lDSmthV1ptWlhKbGJuUWlMQ0FpWDJOdmJYQmhjbVVpTENBaWRHaHBjME4xY25OdmNpSXNJQ0p2ZEdobGNrTjFjbk52Y2lJc0lDSjBhR2x6VTNWalkyVnpjeUlzSUNKdmRHaGxjbE4xWTJObGMzTWlMQ0FpY0hKbGRrTjFjbk52Y2s5eVpHVnlJaXdnSW1OMWNuTnZjazl5WkdWeUlpd2dJblJvYVhOTVpXRm1JaXdnSW5Sb2FYTkpiblJsY201aGJGTndhVzVsSWl3Z0luUm9hWE5NWlhabGJFbHVaR2xqWlhNaUxDQWliM1JvWlhKTVpXRm1JaXdnSW05MGFHVnlTVzUwWlhKdVlXeFRjR2x1WlNJc0lDSnZkR2hsY2t4bGRtVnNTVzVrYVdObGN5SXNJQ0oyWVd4VWFHbHpJaXdnSW5aaGJFOTBhR1Z5SWl3Z0ltOTBhR1Z5Vm1Gc0lpd2dJbXhoYzNSVWFHbHpJaXdnSW14aGMzUlBkR2hsY2lJc0lDSnViMlJsVkdocGN5SXNJQ0p1YjJSbFQzUm9aWElpTENBaVkzVnljMjl5SWl3Z0ltTjFjbk52Y2tacGJtbHphR1ZrSWl3Z0ltTnZiWEJoY21WTFpYbHpJaXdnSW1OdmJYQmhjbVZrSWl3Z0ltTmhibE4wWlhBaUxDQWliR1YyWld4SmJtUnBZMlZ6SWl3Z0ltTjFjbkpsYm5STFpYa2lMQ0FpZEhKbFpTSXNJQ0pmY205dmRDSXNJQ0pvWldsbmFIUWlMQ0FpYzNSbGNGUnZUbTlrWlNJc0lDSnBiblJsY201aGJGTndhVzVsSWl3Z0lteGxkbVZzYzB4bGJtZDBhQ0lzSUNKemNHbHVaVXhsYm1kMGFDSXNJQ0p1YjJSbFRHVjJaV3hKYm1SbGVDSXNJQ0pzWlhabGJFbHVaR1Y0VjJGc2EwSmhZMnNpTENBaWRtRnNkV1ZKYm1SbGVDSXNJQ0p1WlhoMFRHVjJaV3dpTENBaVkzVnljbVZ1ZEV4bGRtVnNJaXdnSW01dlpHVWlMQ0FpWTJocGJHUnlaVzRpTENBaVkyaHBiR1JKYm1SbGVDSXNJQ0pqZFhKemIzSkJJaXdnSW1OMWNuTnZja0lpTENBaWFHVnBaMmgwUVNJc0lDSmpkWEp5Wlc1MFMyVjVRU0lzSUNKc1pYWmxiRWx1WkdsalpYTkJJaXdnSW1obGFXZG9kRUlpTENBaVkzVnljbVZ1ZEV0bGVVSWlMQ0FpYkdWMlpXeEpibVJwWTJWelFpSXNJQ0pyWlhsRGIyMXdZWEpwYzI5dUlpd2dJbWhsYVdkb2RFMXBiaUlzSUNKa1pYQjBhRUZPYjNKdFlXeHBlbVZrSWl3Z0ltUmxjSFJvUWs1dmNtMWhiR2w2WldRaUxDQWlabWx5YzNSTFpYa2lMQ0FpYmlJc0lDSm1iM0pqWlNJc0lDSnRZWGhNWlc1bmRHZ2lMQ0FpYldsdUlpd2dJbTFoZUNJc0lDSnlaWE4xYkhSeklpd2dJa0p5WldGcklpd2dJbUZrWkdWa0lpd2dJbTl1Um05MWJtUWlMQ0FpY2lJc0lDSnliMjkwSWl3Z0ltbHpVMmhoY21Wa0lpd2dJblFpTENBaWMybDZaU0lzSUNKaGMxTmxkQ0lzSUNKaWRISmxaU0lzSUNKQ1RtOWtaU0lzSUNKMllXeDFaWE1pTENBaWRXNWtaV1pXWVd4eklpd2dJbVpoYVd4WWIzSWlMQ0FpWTIxd0lpd2dJbXh2SWl3Z0ltaHBJaXdnSW0xcFpDSXNJQ0pqSWl3Z0lteGhjM1JKYm1SbGVDSXNJQ0pwYm1Oc2RYTnBkbVVpTENBaWFXNWtaWGhQY2t4dmQyVnlJaXdnSW1SbGNIUm9JaXdnSW1KaGMyVkpibVJsZUNJc0lDSnJUQ0lzSUNKMlRDSXNJQ0p1WlhkU2FXZG9kRk5wWW14cGJtY2lMQ0FpZEdGeVoyVjBJaXdnSW5Kb2N5SXNJQ0pzYUhNaUxDQWlhR0ZzWmlJc0lDSmxaR2wwVFc5a1pTSXNJQ0pqYjNWdWRDSXNJQ0pwVEc5M0lpd2dJbWxJYVdkb0lpd2dJbDhpTENBaVgzTjFjR1Z5SWl3Z0lteGxibWQwYUNJc0lDSmpUQ0lzSUNKamFHbHNaRk5wZW1VaUxDQWlkRzl2Wm1WM0lpd2dJbU5vYVd4a0lpd2dJbTFoZUZOcGVtVWlMQ0FpYjJ4a1RHVnVaM1JvSWl3Z0luSm9jME5vYVd4a2NtVnVJaXdnSW1aaFkzUWlMQ0FpWVhKbmN5SXNJQ0pmYVNJc0lDSk1kWGh2YmtWeWNtOXlJaXdnSWtsdWRtRnNhV1JFWVhSbFZHbHRaVVZ5Y205eUlpd2dJbkpsWVhOdmJpSXNJQ0pKYm5aaGJHbGtTVzUwWlhKMllXeEZjbkp2Y2lJc0lDSkpiblpoYkdsa1JIVnlZWFJwYjI1RmNuSnZjaUlzSUNKRGIyNW1iR2xqZEdsdVoxTndaV05wWm1sallYUnBiMjVGY25KdmNpSXNJQ0pKYm5aaGJHbGtWVzVwZEVWeWNtOXlJaXdnSW5WdWFYUWlMQ0FpU1c1MllXeHBaRUZ5WjNWdFpXNTBSWEp5YjNJaUxDQWlXbTl1WlVselFXSnpkSEpoWTNSRmNuSnZjaUlzSUNKdUlpd2dJbk1pTENBaWJDSXNJQ0pFUVZSRlgxTklUMUpVSWl3Z0lrUkJWRVZmVFVWRUlpd2dJa1JCVkVWZlRVVkVYMWRKVkVoZlYwVkZTMFJCV1NJc0lDSkVRVlJGWDBaVlRFd2lMQ0FpUkVGVVJWOUlWVWRGSWl3Z0lsUkpUVVZmVTBsTlVFeEZJaXdnSWxSSlRVVmZWMGxVU0Y5VFJVTlBUa1JUSWl3Z0lsUkpUVVZmVjBsVVNGOVRTRTlTVkY5UFJrWlRSVlFpTENBaVZFbE5SVjlYU1ZSSVgweFBUa2RmVDBaR1UwVlVJaXdnSWxSSlRVVmZNalJmVTBsTlVFeEZJaXdnSWxSSlRVVmZNalJmVjBsVVNGOVRSVU5QVGtSVElpd2dJbFJKVFVWZk1qUmZWMGxVU0Y5VFNFOVNWRjlQUmtaVFJWUWlMQ0FpVkVsTlJWOHlORjlYU1ZSSVgweFBUa2RmVDBaR1UwVlVJaXdnSWtSQlZFVlVTVTFGWDFOSVQxSlVJaXdnSWtSQlZFVlVTVTFGWDFOSVQxSlVYMWRKVkVoZlUwVkRUMDVFVXlJc0lDSkVRVlJGVkVsTlJWOU5SVVFpTENBaVJFRlVSVlJKVFVWZlRVVkVYMWRKVkVoZlUwVkRUMDVFVXlJc0lDSkVRVlJGVkVsTlJWOU5SVVJmVjBsVVNGOVhSVVZMUkVGWklpd2dJa1JCVkVWVVNVMUZYMFpWVEV3aUxDQWlSRUZVUlZSSlRVVmZSbFZNVEY5WFNWUklYMU5GUTA5T1JGTWlMQ0FpUkVGVVJWUkpUVVZmU0ZWSFJTSXNJQ0pFUVZSRlZFbE5SVjlJVlVkRlgxZEpWRWhmVTBWRFQwNUVVeUlzSUNKcGMxVnVaR1ZtYVc1bFpDSXNJQ0p2SWl3Z0ltbHpUblZ0WW1WeUlpd2dJbWx6U1c1MFpXZGxjaUlzSUNKcGMxTjBjbWx1WnlJc0lDSnBjMFJoZEdVaUxDQWlhR0Z6VW1Wc1lYUnBkbVVpTENBaVpTSXNJQ0p0WVhsaVpVRnljbUY1SWl3Z0luUm9hVzVuSWl3Z0ltSmxjM1JDZVNJc0lDSmhjbklpTENBaVlua2lMQ0FpWTI5dGNHRnlaU0lzSUNKaVpYTjBJaXdnSW01bGVIUWlMQ0FpY0dGcGNpSXNJQ0p3YVdOcklpd2dJbTlpYWlJc0lDSnJaWGx6SWl3Z0ltRWlMQ0FpYXlJc0lDSm9ZWE5QZDI1UWNtOXdaWEowZVNJc0lDSndjbTl3SWl3Z0ltbHVkR1ZuWlhKQ1pYUjNaV1Z1SWl3Z0ltSnZkSFJ2YlNJc0lDSjBiM0FpTENBaVpteHZiM0pOYjJRaUxDQWllQ0lzSUNKdUlpd2dJbkJoWkZOMFlYSjBJaXdnSW1sdWNIVjBJaXdnSW1selRtVm5JaXdnSW5CaFpHUmxaQ0lzSUNKd1lYSnpaVWx1ZEdWblpYSWlMQ0FpYzNSeWFXNW5JaXdnSW5CaGNuTmxSbXh2WVhScGJtY2lMQ0FpY0dGeWMyVk5hV3hzYVhNaUxDQWlabkpoWTNScGIyNGlMQ0FpWmlJc0lDSnliM1Z1WkZSdklpd2dJbTUxYldKbGNpSXNJQ0prYVdkcGRITWlMQ0FpZEc5M1lYSmtXbVZ5YnlJc0lDSm1ZV04wYjNJaUxDQWlhWE5NWldGd1dXVmhjaUlzSUNKNVpXRnlJaXdnSW1SaGVYTkpibGxsWVhJaUxDQWlaR0Y1YzBsdVRXOXVkR2dpTENBaWJXOXVkR2dpTENBaWJXOWtUVzl1ZEdnaUxDQWliVzlrV1dWaGNpSXNJQ0p2WW1wVWIweHZZMkZzVkZNaUxDQWlaQ0lzSUNKM1pXVnJjMGx1VjJWbGExbGxZWElpTENBaWQyVmxhMWxsWVhJaUxDQWljREVpTENBaWJHRnpkQ0lzSUNKd01pSXNJQ0oxYm5SeWRXNWpZWFJsV1dWaGNpSXNJQ0p3WVhKelpWcHZibVZKYm1adklpd2dJblJ6SWl3Z0ltOW1abk5sZEVadmNtMWhkQ0lzSUNKc2IyTmhiR1VpTENBaWRHbHRaVnB2Ym1VaUxDQWlaR0YwWlNJc0lDSnBiblJzVDNCMGN5SXNJQ0p0YjJScFptbGxaQ0lzSUNKZlgzTndjbVZoWkZaaGJIVmxjeUlzSUNKd1lYSnpaV1FpTENBaWJTSXNJQ0p6YVdkdVpXUlBabVp6WlhRaUxDQWliMlptU0c5MWNsTjBjaUlzSUNKdlptWk5hVzUxZEdWVGRISWlMQ0FpYjJabVNHOTFjaUlzSUNKdlptWk5hVzRpTENBaWIyWm1UV2x1VTJsbmJtVmtJaXdnSW1GelRuVnRZbVZ5SWl3Z0luWmhiSFZsSWl3Z0ltNTFiV1Z5YVdOV1lXeDFaU0lzSUNKSmJuWmhiR2xrUVhKbmRXMWxiblJGY25KdmNpSXNJQ0p1YjNKdFlXeHBlbVZQWW1wbFkzUWlMQ0FpYm05eWJXRnNhWHBsY2lJc0lDSnViM0p0WVd4cGVtVmtJaXdnSW5VaUxDQWlkaUlzSUNKbWIzSnRZWFJQWm1aelpYUWlMQ0FpYjJabWMyVjBJaXdnSW1admNtMWhkQ0lzSUNKb2IzVnljeUlzSUNKdGFXNTFkR1Z6SWl3Z0luTnBaMjRpTENBaWRHbHRaVTlpYW1WamRDSXNJQ0pwWVc1aFVtVm5aWGdpTENBaWJXOXVkR2h6VEc5dVp5SXNJQ0p0YjI1MGFITlRhRzl5ZENJc0lDSnRiMjUwYUhOT1lYSnliM2NpTENBaWJXOXVkR2h6SWl3Z0lteGxibWQwYUNJc0lDSjNaV1ZyWkdGNWMweHZibWNpTENBaWQyVmxhMlJoZVhOVGFHOXlkQ0lzSUNKM1pXVnJaR0Y1YzA1aGNuSnZkeUlzSUNKM1pXVnJaR0Y1Y3lJc0lDSnRaWEpwWkdsbGJYTWlMQ0FpWlhKaGMweHZibWNpTENBaVpYSmhjMU5vYjNKMElpd2dJbVZ5WVhOT1lYSnliM2NpTENBaVpYSmhjeUlzSUNKdFpYSnBaR2xsYlVadmNrUmhkR1ZVYVcxbElpd2dJbVIwSWl3Z0luZGxaV3RrWVhsR2IzSkVZWFJsVkdsdFpTSXNJQ0p0YjI1MGFFWnZja1JoZEdWVWFXMWxJaXdnSW1WeVlVWnZja1JoZEdWVWFXMWxJaXdnSW1admNtMWhkRkpsYkdGMGFYWmxWR2x0WlNJc0lDSjFibWwwSWl3Z0ltTnZkVzUwSWl3Z0ltNTFiV1Z5YVdNaUxDQWlibUZ5Y205M0lpd2dJblZ1YVhSeklpd2dJbXhoYzNSaFlteGxJaXdnSW1selJHRjVJaXdnSW1selNXNVFZWE4wSWl3Z0ltWnRkRlpoYkhWbElpd2dJbk5wYm1kMWJHRnlJaXdnSW14cGJGVnVhWFJ6SWl3Z0ltWnRkRlZ1YVhRaUxDQWljM1J5YVc1bmFXWjVWRzlyWlc1eklpd2dJbk53YkdsMGN5SXNJQ0owYjJ0bGJsUnZVM1J5YVc1bklpd2dJbk1pTENBaWRHOXJaVzRpTENBaWJXRmpjbTlVYjJ0bGJsUnZSbTl5YldGMFQzQjBjeUlzSUNKRVFWUkZYMU5JVDFKVUlpd2dJa1JCVkVWZlRVVkVJaXdnSWtSQlZFVmZSbFZNVENJc0lDSkVRVlJGWDBoVlIwVWlMQ0FpVkVsTlJWOVRTVTFRVEVVaUxDQWlWRWxOUlY5WFNWUklYMU5GUTA5T1JGTWlMQ0FpVkVsTlJWOVhTVlJJWDFOSVQxSlVYMDlHUmxORlZDSXNJQ0pVU1UxRlgxZEpWRWhmVEU5T1IxOVBSa1pUUlZRaUxDQWlWRWxOUlY4eU5GOVRTVTFRVEVVaUxDQWlWRWxOUlY4eU5GOVhTVlJJWDFORlEwOU9SRk1pTENBaVZFbE5SVjh5TkY5WFNWUklYMU5JVDFKVVgwOUdSbE5GVkNJc0lDSlVTVTFGWHpJMFgxZEpWRWhmVEU5T1IxOVBSa1pUUlZRaUxDQWlSRUZVUlZSSlRVVmZVMGhQVWxRaUxDQWlSRUZVUlZSSlRVVmZUVVZFSWl3Z0lrUkJWRVZVU1UxRlgwWlZURXdpTENBaVJFRlVSVlJKVFVWZlNGVkhSU0lzSUNKRVFWUkZWRWxOUlY5VFNFOVNWRjlYU1ZSSVgxTkZRMDlPUkZNaUxDQWlSRUZVUlZSSlRVVmZUVVZFWDFkSlZFaGZVMFZEVDA1RVV5SXNJQ0pFUVZSRlZFbE5SVjlHVlV4TVgxZEpWRWhmVTBWRFQwNUVVeUlzSUNKRVFWUkZWRWxOUlY5SVZVZEZYMWRKVkVoZlUwVkRUMDVFVXlJc0lDSkdiM0p0WVhSMFpYSWlMQ0FpWDBadmNtMWhkSFJsY2lJc0lDSnNiMk5oYkdVaUxDQWliM0IwY3lJc0lDSm1iWFFpTENBaVkzVnljbVZ1ZENJc0lDSmpkWEp5Wlc1MFJuVnNiQ0lzSUNKaWNtRmphMlYwWldRaUxDQWlhU0lzSUNKaklpd2dJbVp2Y20xaGRFOXdkSE1pTENBaVpIUWlMQ0FpWDE5emNISmxZV1JXWVd4MVpYTWlMQ0FpYmlJc0lDSndJaXdnSW5CaFpGTjBZWEowSWl3Z0ltdHViM2R1Ulc1bmJHbHphQ0lzSUNKMWMyVkVZWFJsVkdsdFpVWnZjbTFoZEhSbGNpSXNJQ0p6ZEhKcGJtY2lMQ0FpWlhoMGNtRmpkQ0lzSUNKbWIzSnRZWFJQWm1aelpYUWlMQ0FpYldWeWFXUnBaVzBpTENBaWJXVnlhV1JwWlcxR2IzSkVZWFJsVkdsdFpTSXNJQ0p0YjI1MGFDSXNJQ0pzWlc1bmRHZ2lMQ0FpYzNSaGJtUmhiRzl1WlNJc0lDSnRiMjUwYUVadmNrUmhkR1ZVYVcxbElpd2dJbmRsWld0a1lYa2lMQ0FpZDJWbGEyUmhlVVp2Y2tSaGRHVlVhVzFsSWl3Z0ltMWhlV0psVFdGamNtOGlMQ0FpWlhKaElpd2dJbVZ5WVVadmNrUmhkR1ZVYVcxbElpd2dJbVIxY2lJc0lDSjBiMnRsYmxSdlJtbGxiR1FpTENBaWJHbHNaSFZ5SWl3Z0ltMWhjSEJsWkNJc0lDSjBiMnRsYm5NaUxDQWljbVZoYkZSdmEyVnVjeUlzSUNKbWIzVnVaQ0lzSUNKc2FYUmxjbUZzSWl3Z0luWmhiQ0lzSUNKamIyeHNZWEJ6WldRaUxDQWlkQ0lzSUNKSmJuWmhiR2xrSWl3Z0luSmxZWE52YmlJc0lDSmxlSEJzWVc1aGRHbHZiaUlzSUNKYWIyNWxJaXdnSWxwdmJtVkpjMEZpYzNSeVlXTjBSWEp5YjNJaUxDQWlkSE1pTENBaWIzQjBjeUlzSUNKbWIzSnRZWFFpTENBaWIzUm9aWEphYjI1bElpd2dJbk5wYm1kc1pYUnZiaUlzSUNKVGVYTjBaVzFhYjI1bElpd2dJbDlUZVhOMFpXMWFiMjVsSWl3Z0lscHZibVVpTENBaWRITWlMQ0FpWm05eWJXRjBJaXdnSW14dlkyRnNaU0lzSUNKd1lYSnpaVnB2Ym1WSmJtWnZJaXdnSW1admNtMWhkRTltWm5ObGRDSXNJQ0p2ZEdobGNscHZibVVpTENBaVpIUm1RMkZqYUdVaUxDQWliV0ZyWlVSVVJpSXNJQ0o2YjI1bElpd2dJblI1Y0dWVWIxQnZjeUlzSUNKb1lXTnJlVTltWm5ObGRDSXNJQ0prZEdZaUxDQWlaR0YwWlNJc0lDSm1iM0p0WVhSMFpXUWlMQ0FpY0dGeWMyVmtJaXdnSW1aTmIyNTBhQ0lzSUNKbVJHRjVJaXdnSW1aWlpXRnlJaXdnSW1aaFpFOXlRbU1pTENBaVpraHZkWElpTENBaVprMXBiblYwWlNJc0lDSm1VMlZqYjI1a0lpd2dJbkJoY25SelQyWm1jMlYwSWl3Z0ltWnBiR3hsWkNJc0lDSnBJaXdnSW5SNWNHVWlMQ0FpZG1Gc2RXVWlMQ0FpY0c5eklpd2dJbWx6Vlc1a1pXWnBibVZrSWl3Z0ltbGhibUZhYjI1bFEyRmphR1VpTENBaVNVRk9RVnB2Ym1VaUxDQWlYMGxCVGtGYWIyNWxJaXdnSWxwdmJtVWlMQ0FpYm1GdFpTSXNJQ0p6SWl3Z0ltVWlMQ0FpZEhNaUxDQWlabTl5YldGMElpd2dJbXh2WTJGc1pTSXNJQ0p3WVhKelpWcHZibVZKYm1adklpd2dJbVp2Y20xaGRFOW1abk5sZENJc0lDSjVaV0Z5SWl3Z0ltMXZiblJvSWl3Z0ltUmhlU0lzSUNKaFpFOXlRbU1pTENBaWFHOTFjaUlzSUNKdGFXNTFkR1VpTENBaWMyVmpiMjVrSWl3Z0ltRnpWVlJESWl3Z0ltOWlhbFJ2VEc5allXeFVVeUlzSUNKaGMxUlRJaXdnSW05MlpYSWlMQ0FpYjNSb1pYSmFiMjVsSWl3Z0luTnBibWRzWlhSdmJpSXNJQ0pHYVhobFpFOW1abk5sZEZwdmJtVWlMQ0FpWDBacGVHVmtUMlptYzJWMFdtOXVaU0lzSUNKYWIyNWxJaXdnSW05bVpuTmxkQ0lzSUNKeklpd2dJbklpTENBaWMybG5ibVZrVDJabWMyVjBJaXdnSW1admNtMWhkRTltWm5ObGRDSXNJQ0owY3lJc0lDSm1iM0p0WVhRaUxDQWliM1JvWlhKYWIyNWxJaXdnSWtsdWRtRnNhV1JhYjI1bElpd2dJbHB2Ym1VaUxDQWllbTl1WlU1aGJXVWlMQ0FpYm05eWJXRnNhWHBsV205dVpTSXNJQ0pwYm5CMWRDSXNJQ0prWldaaGRXeDBXbTl1WlNJc0lDSnZabVp6WlhRaUxDQWlhWE5WYm1SbFptbHVaV1FpTENBaVdtOXVaU0lzSUNKcGMxTjBjbWx1WnlJc0lDSnNiM2RsY21Wa0lpd2dJa1pwZUdWa1QyWm1jMlYwV205dVpTSXNJQ0pKUVU1QldtOXVaU0lzSUNKcGMwNTFiV0psY2lJc0lDSkpiblpoYkdsa1dtOXVaU0lzSUNKdWIzY2lMQ0FpWkdWbVlYVnNkRnB2Ym1VaUxDQWlaR1ZtWVhWc2RFeHZZMkZzWlNJc0lDSmtaV1poZFd4MFRuVnRZbVZ5YVc1blUzbHpkR1Z0SWl3Z0ltUmxabUYxYkhSUGRYUndkWFJEWVd4bGJtUmhjaUlzSUNKMGFISnZkMDl1U1c1MllXeHBaQ0lzSUNKVFpYUjBhVzVuY3lJc0lDSnVJaXdnSW5wdmJtVWlMQ0FpYm05eWJXRnNhWHBsV205dVpTSXNJQ0pUZVhOMFpXMWFiMjVsSWl3Z0lteHZZMkZzWlNJc0lDSnVkVzFpWlhKcGJtZFRlWE4wWlcwaUxDQWliM1YwY0hWMFEyRnNaVzVrWVhJaUxDQWlkQ0lzSUNKTWIyTmhiR1VpTENBaVNVRk9RVnB2Ym1VaUxDQWlhVzUwYkV4R1EyRmphR1VpTENBaVoyVjBRMkZqYUdWa1RFWWlMQ0FpYkc5alUzUnlhVzVuSWl3Z0ltOXdkSE1pTENBaWEyVjVJaXdnSW1SMFppSXNJQ0pwYm5Sc1JGUkRZV05vWlNJc0lDSm5aWFJEWVdOb1pXUkVWRVlpTENBaWFXNTBiRTUxYlVOaFkyaGxJaXdnSW1kbGRFTmhZMmhsWkVsT1JpSXNJQ0pwYm1ZaUxDQWlhVzUwYkZKbGJFTmhZMmhsSWl3Z0ltZGxkRU5oWTJobFpGSlVSaUlzSUNKZllTSXNJQ0ppWVhObElpd2dJbU5oWTJobFMyVjVUM0IwY3lJc0lDSmZYMjlpYWxKbGMzUWlMQ0FpYzNselRHOWpZV3hsUTJGamFHVWlMQ0FpYzNsemRHVnRURzlqWVd4bElpd2dJbkJoY25ObFRHOWpZV3hsVTNSeWFXNW5JaXdnSW14dlkyRnNaVk4wY2lJc0lDSjFTVzVrWlhnaUxDQWliM0IwYVc5dWN5SXNJQ0p6YldGc2JHVnlJaXdnSW1VaUxDQWliblZ0WW1WeWFXNW5VM2x6ZEdWdElpd2dJbU5oYkdWdVpHRnlJaXdnSW1sdWRHeERiMjVtYVdkVGRISnBibWNpTENBaWIzVjBjSFYwUTJGc1pXNWtZWElpTENBaWJXRndUVzl1ZEdoeklpd2dJbVlpTENBaWJYTWlMQ0FpYVNJc0lDSmtkQ0lzSUNKRVlYUmxWR2x0WlNJc0lDSnRZWEJYWldWclpHRjVjeUlzSUNKc2FYTjBVM1IxWm1ZaUxDQWliRzlqSWl3Z0lteGxibWQwYUNJc0lDSmtaV1poZFd4MFQwc2lMQ0FpWlc1bmJHbHphRVp1SWl3Z0ltbHVkR3hHYmlJc0lDSnRiMlJsSWl3Z0luTjFjSEJ2Y25SelJtRnpkRTUxYldKbGNuTWlMQ0FpVUc5c2VVNTFiV0psY2tadmNtMWhkSFJsY2lJc0lDSnBiblJzSWl3Z0ltWnZjbU5sVTJsdGNHeGxJaXdnSW5CaFpGUnZJaXdnSW1ac2IyOXlJaXdnSW05MGFHVnlUM0IwY3lJc0lDSnBiblJzVDNCMGN5SXNJQ0pmWDNOd2NtVmhaRlpoYkhWbGN5SXNJQ0ptYVhobFpDSXNJQ0p5YjNWdVpGUnZJaXdnSW5CaFpGTjBZWEowSWl3Z0lsQnZiSGxFWVhSbFJtOXliV0YwZEdWeUlpd2dJbm9pTENBaVoyMTBUMlptYzJWMElpd2dJbTltWm5ObGRGb2lMQ0FpU1VGT1FWcHZibVVpTENBaVVHOXNlVkpsYkVadmNtMWhkSFJsY2lJc0lDSnBjMFZ1WjJ4cGMyZ2lMQ0FpYUdGelVtVnNZWFJwZG1VaUxDQWlZMjkxYm5RaUxDQWlkVzVwZENJc0lDSm1iM0p0WVhSU1pXeGhkR2wyWlZScGJXVWlMQ0FpVEc5allXeGxJaXdnSWw5TWIyTmhiR1VpTENBaWJHOWpZV3hsSWl3Z0ltUmxabUYxYkhSVWIwVk9JaXdnSW5Od1pXTnBabWxsWkV4dlkyRnNaU0lzSUNKVFpYUjBhVzVuY3lJc0lDSnNiMk5oYkdWU0lpd2dJbTUxYldKbGNtbHVaMU41YzNSbGJWSWlMQ0FpYjNWMGNIVjBRMkZzWlc1a1lYSlNJaXdnSW01MWJXSmxjbWx1WnlJc0lDSndZWEp6WldSTWIyTmhiR1VpTENBaWNHRnljMlZrVG5WdFltVnlhVzVuVTNsemRHVnRJaXdnSW5CaGNuTmxaRTkxZEhCMWRFTmhiR1Z1WkdGeUlpd2dJbWx6UVdOMGRXRnNiSGxGYmlJc0lDSm9ZWE5PYjFkbGFYSmtibVZ6Y3lJc0lDSmhiSFJ6SWl3Z0lsOWZjM0J5WldGa1VISnZjSE1pTENBaVptOXliV0YwSWl3Z0ltMXZiblJvY3lJc0lDSm1iM0p0WVhSVGRISWlMQ0FpZDJWbGEyUmhlWE1pTENBaWJXVnlhV1JwWlcxeklpd2dJbVZ5WVhNaUxDQWlabWxsYkdRaUxDQWlaR1lpTENBaWNtVnpkV3gwY3lJc0lDSnRZWFJqYUdsdVp5SXNJQ0p0SWl3Z0ltOTBhR1Z5SWl3Z0ltTnZiV0pwYm1WU1pXZGxlR1Z6SWl3Z0luSmxaMlY0WlhNaUxDQWlablZzYkNJc0lDSm1JaXdnSW1OdmJXSnBibVZGZUhSeVlXTjBiM0p6SWl3Z0ltVjRkSEpoWTNSdmNuTWlMQ0FpYlNJc0lDSnRaWEpuWldSV1lXeHpJaXdnSW0xbGNtZGxaRnB2Ym1VaUxDQWlZM1Z5YzI5eUlpd2dJbVY0SWl3Z0luWmhiQ0lzSUNKNmIyNWxJaXdnSW01bGVIUWlMQ0FpWDE5emNISmxZV1JXWVd4MVpYTWlMQ0FpY0dGeWMyVWlMQ0FpY3lJc0lDSndZWFIwWlhKdWN5SXNJQ0p5WldkbGVDSXNJQ0psZUhSeVlXTjBiM0lpTENBaWMybHRjR3hsVUdGeWMyVWlMQ0FpYTJWNWN5SXNJQ0p0WVhSamFDSXNJQ0p5WlhRaUxDQWlhU0lzSUNKd1lYSnpaVWx1ZEdWblpYSWlMQ0FpYjJabWMyVjBVbVZuWlhnaUxDQWlhWE52UlhoMFpXNWtaV1JhYjI1bElpd2dJbWxoYm1GU1pXZGxlQ0lzSUNKcGMyOVVhVzFsUW1GelpWSmxaMlY0SWl3Z0ltbHpiMVJwYldWU1pXZGxlQ0lzSUNKcGMyOVVhVzFsUlhoMFpXNXphVzl1VW1WblpYZ2lMQ0FpYVhOdldXMWtVbVZuWlhnaUxDQWlhWE52VjJWbGExSmxaMlY0SWl3Z0ltbHpiMDl5WkdsdVlXeFNaV2RsZUNJc0lDSmxlSFJ5WVdOMFNWTlBWMlZsYTBSaGRHRWlMQ0FpWlhoMGNtRmpkRWxUVDA5eVpHbHVZV3hFWVhSaElpd2dJbk54YkZsdFpGSmxaMlY0SWl3Z0luTnhiRlJwYldWU1pXZGxlQ0lzSUNKemNXeFVhVzFsUlhoMFpXNXphVzl1VW1WblpYZ2lMQ0FpYVc1MElpd2dJbkJ2Y3lJc0lDSm1ZV3hzWW1GamF5SXNJQ0pwYzFWdVpHVm1hVzVsWkNJc0lDSmxlSFJ5WVdOMFNWTlBXVzFrSWl3Z0ltVjRkSEpoWTNSSlUwOVVhVzFsSWl3Z0luQmhjbk5sVFdsc2JHbHpJaXdnSW1WNGRISmhZM1JKVTA5UFptWnpaWFFpTENBaWJHOWpZV3dpTENBaVpuVnNiRTltWm5ObGRDSXNJQ0p6YVdkdVpXUlBabVp6WlhRaUxDQWlSbWw0WldSUFptWnpaWFJhYjI1bElpd2dJbVY0ZEhKaFkzUkpRVTVCV205dVpTSXNJQ0pKUVU1QldtOXVaU0lzSUNKcGMyOVVhVzFsVDI1c2VTSXNJQ0pwYzI5RWRYSmhkR2x2YmlJc0lDSmxlSFJ5WVdOMFNWTlBSSFZ5WVhScGIyNGlMQ0FpZVdWaGNsTjBjaUlzSUNKdGIyNTBhRk4wY2lJc0lDSjNaV1ZyVTNSeUlpd2dJbVJoZVZOMGNpSXNJQ0pvYjNWeVUzUnlJaXdnSW0xcGJuVjBaVk4wY2lJc0lDSnpaV052Ym1SVGRISWlMQ0FpYldsc2JHbHpaV052Ym1SelUzUnlJaXdnSW1oaGMwNWxaMkYwYVhabFVISmxabWw0SWl3Z0ltNWxaMkYwYVhabFUyVmpiMjVrY3lJc0lDSnRZWGxpWlU1bFoyRjBaU0lzSUNKdWRXMGlMQ0FpWm05eVkyVWlMQ0FpY0dGeWMyVkdiRzloZEdsdVp5SXNJQ0p2WW5OUFptWnpaWFJ6SWl3Z0ltWnliMjFUZEhKcGJtZHpJaXdnSW5kbFpXdGtZWGxUZEhJaUxDQWljbVZ6ZFd4MElpd2dJblZ1ZEhKMWJtTmhkR1ZaWldGeUlpd2dJbTF2Ym5Sb2MxTm9iM0owSWl3Z0luZGxaV3RrWVhselRHOXVaeUlzSUNKM1pXVnJaR0Y1YzFOb2IzSjBJaXdnSW5KbVl6STRNaklpTENBaVpYaDBjbUZqZEZKR1F6STRNaklpTENBaWIySnpUMlptYzJWMElpd2dJbTFwYkU5bVpuTmxkQ0lzSUNKdlptWkliM1Z5VTNSeUlpd2dJbTltWmsxcGJuVjBaVk4wY2lJc0lDSnZabVp6WlhRaUxDQWljSEpsY0hKdlkyVnpjMUpHUXpJNE1qSWlMQ0FpY21aak1URXlNeUlzSUNKeVptTTROVEFpTENBaVlYTmphV2tpTENBaVpYaDBjbUZqZEZKR1F6RXhNak5QY2pnMU1DSXNJQ0psZUhSeVlXTjBRVk5EU1VraUxDQWlhWE52V1cxa1YybDBhRlJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ0lzSUNKcGMyOVhaV1ZyVjJsMGFGUnBiV1ZGZUhSbGJuTnBiMjVTWldkbGVDSXNJQ0pwYzI5UGNtUnBibUZzVjJsMGFGUnBiV1ZGZUhSbGJuTnBiMjVTWldkbGVDSXNJQ0pwYzI5VWFXMWxRMjl0WW1sdVpXUlNaV2RsZUNJc0lDSmxlSFJ5WVdOMFNWTlBXVzFrVkdsdFpVRnVaRTltWm5ObGRDSXNJQ0psZUhSeVlXTjBTVk5QVjJWbGExUnBiV1ZCYm1SUFptWnpaWFFpTENBaVpYaDBjbUZqZEVsVFQwOXlaR2x1WVd4RVlYUmxRVzVrVkdsdFpTSXNJQ0psZUhSeVlXTjBTVk5QVkdsdFpVRnVaRTltWm5ObGRDSXNJQ0p3WVhKelpVbFRUMFJoZEdVaUxDQWljR0Z5YzJWU1JrTXlPREl5UkdGMFpTSXNJQ0p3WVhKelpVaFVWRkJFWVhSbElpd2dJbkJoY25ObFNWTlBSSFZ5WVhScGIyNGlMQ0FpWlhoMGNtRmpkRWxUVDFScGJXVlBibXg1SWl3Z0luQmhjbk5sU1ZOUFZHbHRaVTl1YkhraUxDQWljM0ZzV1cxa1YybDBhRlJwYldWRmVIUmxibk5wYjI1U1pXZGxlQ0lzSUNKemNXeFVhVzFsUTI5dFltbHVaV1JTWldkbGVDSXNJQ0psZUhSeVlXTjBTVk5QVkdsdFpVOW1abk5sZEVGdVpFbEJUa0ZhYjI1bElpd2dJbkJoY25ObFUxRk1JaXdnSWtsT1ZrRk1TVVFpTENBaWJHOTNUM0prWlhKTllYUnlhWGdpTENBaVkyRnpkV0ZzVFdGMGNtbDRJaXdnSWw5ZmMzQnlaV0ZrVm1Gc2RXVnpJaXdnSW1SaGVYTkpibGxsWVhKQlkyTjFjbUYwWlNJc0lDSmtZWGx6U1c1TmIyNTBhRUZqWTNWeVlYUmxJaXdnSW1GalkzVnlZWFJsVFdGMGNtbDRJaXdnSW05eVpHVnlaV1JWYm1sMGN5SXNJQ0p5WlhabGNuTmxWVzVwZEhNaUxDQWlZMnh2Ym1VaUxDQWlaSFZ5SWl3Z0ltRnNkSE1pTENBaVkyeGxZWElpTENBaVkyOXVaaUlzSUNKRWRYSmhkR2x2YmlJc0lDSmhiblJwVkhKMWJtTWlMQ0FpWTI5dWRtVnlkQ0lzSUNKdFlYUnlhWGdpTENBaVpuSnZiVTFoY0NJc0lDSm1jbTl0Vlc1cGRDSXNJQ0owYjAxaGNDSXNJQ0owYjFWdWFYUWlMQ0FpWTI5dWRpSXNJQ0p5WVhjaUxDQWljMkZ0WlZOcFoyNGlMQ0FpWVdSa1pXUWlMQ0FpYm05eWJXRnNhWHBsVm1Gc2RXVnpJaXdnSW5aaGJITWlMQ0FpY0hKbGRtbHZkWE1pTENBaVkzVnljbVZ1ZENJc0lDSnBjMVZ1WkdWbWFXNWxaQ0lzSUNKZlJIVnlZWFJwYjI0aUxDQWlZMjl1Wm1sbklpd2dJbUZqWTNWeVlYUmxJaXdnSWt4dlkyRnNaU0lzSUNKamIzVnVkQ0lzSUNKdmNIUnpJaXdnSW05aWFpSXNJQ0pKYm5aaGJHbGtRWEpuZFcxbGJuUkZjbkp2Y2lJc0lDSnViM0p0WVd4cGVtVlBZbXBsWTNRaUxDQWlaSFZ5WVhScGIyNU1hV3RsSWl3Z0ltbHpUblZ0WW1WeUlpd2dJblJsZUhRaUxDQWljR0Z5YzJWa0lpd2dJbkJoY25ObFNWTlBSSFZ5WVhScGIyNGlMQ0FpY0dGeWMyVkpVMDlVYVcxbFQyNXNlU0lzSUNKeVpXRnpiMjRpTENBaVpYaHdiR0Z1WVhScGIyNGlMQ0FpYVc1MllXeHBaQ0lzSUNKSmJuWmhiR2xrSWl3Z0lsTmxkSFJwYm1keklpd2dJa2x1ZG1Gc2FXUkVkWEpoZEdsdmJrVnljbTl5SWl3Z0luVnVhWFFpTENBaWJtOXliV0ZzYVhwbFpDSXNJQ0pKYm5aaGJHbGtWVzVwZEVWeWNtOXlJaXdnSW04aUxDQWlabTEwSWl3Z0ltWnRkRTl3ZEhNaUxDQWlYMTl6Y0hKbFlXUlFjbTl3Y3lJc0lDSkdiM0p0WVhSMFpYSWlMQ0FpYkNJc0lDSjJZV3dpTENBaWJpSXNJQ0p6SWl3Z0luSnZkVzVrVkc4aUxDQWliV2xzYkdseklpd2dJblpoYkhWbElpd2dJbk4wY2lJc0lDSmtkWEpoZEdsdmJpSXNJQ0p5WlhOMWJIUWlMQ0FpYXlJc0lDSm9ZWE5QZDI1UWNtOXdaWEowZVNJc0lDSm1iaUlzSUNKaGMwNTFiV0psY2lJc0lDSjJZV3gxWlhNaUxDQWliV2w0WldRaUxDQWliRzlqWVd4bElpd2dJbTUxYldKbGNtbHVaMU41YzNSbGJTSXNJQ0pqYjI1MlpYSnphVzl1UVdOamRYSmhZM2tpTENBaWJHOWpJaXdnSW5WdWFYUnpJaXdnSW5VaUxDQWlZblZwYkhRaUxDQWlZV05qZFcxMWJHRjBaV1FpTENBaWJHRnpkRlZ1YVhRaUxDQWliM2R1SWl3Z0ltRnJJaXdnSW1raUxDQWlaRzkzYmlJc0lDSnJaWGtpTENBaWJtVm5ZWFJsWkNJc0lDSnZkR2hsY2lJc0lDSmxjU0lzSUNKMk1TSXNJQ0oyTWlJc0lDSkpUbFpCVEVsRUlpd2dJblpoYkdsa1lYUmxVM1JoY25SRmJtUWlMQ0FpYzNSaGNuUWlMQ0FpWlc1a0lpd2dJa2x1ZEdWeWRtRnNJaXdnSWw5SmJuUmxjblpoYkNJc0lDSmpiMjVtYVdjaUxDQWljbVZoYzI5dUlpd2dJbVY0Y0d4aGJtRjBhVzl1SWl3Z0lrbHVkbUZzYVdSQmNtZDFiV1Z1ZEVWeWNtOXlJaXdnSW1sdWRtRnNhV1FpTENBaVNXNTJZV3hwWkNJc0lDSlRaWFIwYVc1bmN5SXNJQ0pKYm5aaGJHbGtTVzUwWlhKMllXeEZjbkp2Y2lJc0lDSmlkV2xzZEZOMFlYSjBJaXdnSW1aeWFXVnVaR3g1UkdGMFpWUnBiV1VpTENBaVluVnBiSFJGYm1RaUxDQWlkbUZzYVdSaGRHVkZjbkp2Y2lJc0lDSmtkWEpoZEdsdmJpSXNJQ0prZFhJaUxDQWlSSFZ5WVhScGIyNGlMQ0FpWkhRaUxDQWlkR1Y0ZENJc0lDSnZjSFJ6SWl3Z0luTWlMQ0FpWlNJc0lDSnpkR0Z5ZEVselZtRnNhV1FpTENBaVJHRjBaVlJwYldVaUxDQWlaVzVrU1hOV1lXeHBaQ0lzSUNKdklpd2dJblZ1YVhRaUxDQWlaR0YwWlZScGJXVWlMQ0FpWkdGMFpWUnBiV1Z6SWl3Z0luTnZjblJsWkNJc0lDSmtJaXdnSW5KbGMzVnNkSE1pTENBaVlXUmtaV1FpTENBaWJtVjRkQ0lzSUNKcFpIZ2lMQ0FpZUNJc0lDSnVkVzFpWlhKUFpsQmhjblJ6SWl3Z0ltOTBhR1Z5SWl3Z0ltbHVkR1Z5ZG1Gc2N5SXNJQ0ptYjNWdVpDSXNJQ0ptYVc1aGJDSXNJQ0poSWl3Z0ltSWlMQ0FpYzI5bVlYSWlMQ0FpWTNWeWNtVnVkQ0lzSUNKcGRHVnRJaXdnSW1OMWNuSmxiblJEYjNWdWRDSXNJQ0psYm1Seklpd2dJbWtpTENBaVpteGhkSFJsYm1Wa0lpd2dJbUZ5Y2lJc0lDSmtZWFJsUm05eWJXRjBJaXdnSW5ObGNHRnlZWFJ2Y2lJc0lDSnRZWEJHYmlJc0lDSkpibVp2SWl3Z0lucHZibVVpTENBaVUyVjBkR2x1WjNNaUxDQWljSEp2ZEc4aUxDQWlSR0YwWlZScGJXVWlMQ0FpU1VGT1FWcHZibVVpTENBaWFXNXdkWFFpTENBaWJtOXliV0ZzYVhwbFdtOXVaU0lzSUNKc1pXNW5kR2dpTENBaWJHOWpZV3hsSWl3Z0ltNTFiV0psY21sdVoxTjVjM1JsYlNJc0lDSnNiMk5QWW1vaUxDQWliM1YwY0hWMFEyRnNaVzVrWVhJaUxDQWlURzlqWVd4bElpd2dJbWhoYzFKbGJHRjBhWFpsSWl3Z0ltUmhlVVJwWm1ZaUxDQWlaV0Z5YkdsbGNpSXNJQ0pzWVhSbGNpSXNJQ0oxZEdORVlYbFRkR0Z5ZENJc0lDSmtkQ0lzSUNKdGN5SXNJQ0pFZFhKaGRHbHZiaUlzSUNKb2FXZG9UM0prWlhKRWFXWm1jeUlzSUNKamRYSnpiM0lpTENBaWRXNXBkSE1pTENBaVpHbG1abVZ5Y3lJc0lDSmlJaXdnSW1SaGVYTWlMQ0FpY21WemRXeDBjeUlzSUNKc2IzZGxjM1JQY21SbGNpSXNJQ0pvYVdkb1YyRjBaWElpTENBaWRXNXBkQ0lzSUNKa2FXWm1aWElpTENBaVpHVnNkR0VpTENBaVpHbG1abDlrWldaaGRXeDBJaXdnSW05d2RITWlMQ0FpY21WdFlXbHVhVzVuVFdsc2JHbHpJaXdnSW14dmQyVnlUM0prWlhKVmJtbDBjeUlzSUNKMUlpd2dJbVIxY21GMGFXOXVJaXdnSW01MWJXSmxjbWx1WjFONWMzUmxiWE1pTENBaWJuVnRZbVZ5YVc1blUzbHpkR1Z0YzFWVVJqRTJJaXdnSW1oaGJtbGtaV05EYUdGeWN5SXNJQ0p3WVhKelpVUnBaMmwwY3lJc0lDSnpkSElpTENBaWRtRnNkV1VpTENBaWFTSXNJQ0pqYjJSbElpd2dJbXRsZVNJc0lDSnRhVzRpTENBaWJXRjRJaXdnSW1ScFoybDBVbVZuWlhnaUxDQWliblZ0WW1WeWFXNW5VM2x6ZEdWdElpd2dJbUZ3Y0dWdVpDSXNJQ0pOU1ZOVFNVNUhYMFpVVUNJc0lDSnBiblJWYm1sMElpd2dJbkpsWjJWNElpd2dJbkJ2YzNRaUxDQWlhU0lzSUNKeklpd2dJbkJoY25ObFJHbG5hWFJ6SWl3Z0lrNUNVMUFpTENBaWMzQmhZMlZQY2s1Q1UxQWlMQ0FpYzNCaFkyVlBjazVDVTFCU1pXZEZlSEFpTENBaVptbDRUR2x6ZEZKbFoyVjRJaXdnSW5OMGNtbHdTVzV6Wlc1emFYUnBkbWwwYVdWeklpd2dJbTl1WlU5bUlpd2dJbk4wY21sdVozTWlMQ0FpYzNSaGNuUkpibVJsZUNJc0lDSnZabVp6WlhRaUxDQWlaM0p2ZFhCeklpd2dJbWdpTENBaWJTSXNJQ0p6YVdkdVpXUlBabVp6WlhRaUxDQWljMmx0Y0d4bElpd2dJbVZ6WTJGd1pWUnZhMlZ1SWl3Z0luWmhiSFZsSWl3Z0luVnVhWFJHYjNKVWIydGxiaUlzSUNKMGIydGxiaUlzSUNKc2IyTWlMQ0FpYjI1bElpd2dJbVJwWjJsMFVtVm5aWGdpTENBaWRIZHZJaXdnSW5Sb2NtVmxJaXdnSW1admRYSWlMQ0FpYzJsNElpd2dJbTl1WlU5eVZIZHZJaXdnSW05dVpWUnZWR2h5WldVaUxDQWliMjVsVkc5VGFYZ2lMQ0FpYjI1bFZHOU9hVzVsSWl3Z0luUjNiMVJ2Um05MWNpSXNJQ0ptYjNWeVZHOVRhWGdpTENBaWJHbDBaWEpoYkNJc0lDSjBJaXdnSW5WdWFYUWlMQ0FpZFc1MGNuVnVZMkYwWlZsbFlYSWlMQ0FpY0dGeWRGUjVjR1ZUZEhsc1pWUnZWRzlyWlc1V1lXd2lMQ0FpZEc5clpXNUdiM0pRWVhKMElpd2dJbkJoY25RaUxDQWliRzlqWVd4bElpd2dJbVp2Y20xaGRFOXdkSE1pTENBaWRIbHdaU0lzSUNKemRIbHNaU0lzSUNKMllXd2lMQ0FpWW5WcGJHUlNaV2RsZUNJc0lDSjFibWwwY3lJc0lDSjFJaXdnSW1ZaUxDQWliV0YwWTJnaUxDQWlhVzV3ZFhRaUxDQWlhR0Z1Wkd4bGNuTWlMQ0FpYldGMFkyaGxjeUlzSUNKaGJHd2lMQ0FpYldGMFkyaEpibVJsZUNJc0lDSm9ZWE5QZDI1UWNtOXdaWEowZVNJc0lDSmtZWFJsVkdsdFpVWnliMjFOWVhSamFHVnpJaXdnSW5SdlJtbGxiR1FpTENBaWVtOXVaU0lzSUNKemNHVmphV1pwWTA5bVpuTmxkQ0lzSUNKcGMxVnVaR1ZtYVc1bFpDSXNJQ0pKUVU1QldtOXVaU0lzSUNKR2FYaGxaRTltWm5ObGRGcHZibVVpTENBaWNHRnljMlZOYVd4c2FYTWlMQ0FpY2lJc0lDSnJJaXdnSW1SMWJXMTVSR0YwWlZScGJXVkRZV05vWlNJc0lDSm5aWFJFZFcxdGVVUmhkR1ZVYVcxbElpd2dJa1JoZEdWVWFXMWxJaXdnSW0xaGVXSmxSWGh3WVc1a1RXRmpjbTlVYjJ0bGJpSXNJQ0pHYjNKdFlYUjBaWElpTENBaWRHOXJaVzV6SWl3Z0luQWlMQ0FpWlhod1lXNWtUV0ZqY205VWIydGxibk1pTENBaVpYaHdiR0ZwYmtaeWIyMVViMnRsYm5NaUxDQWlabTl5YldGMElpd2dJbVJwYzNGMVlXeHBabmxwYm1kVmJtbDBJaXdnSW5KbFoyVjRVM1J5YVc1bklpd2dJbkpoZDAxaGRHTm9aWE1pTENBaWNtVnpkV3gwSWl3Z0lrTnZibVpzYVdOMGFXNW5VM0JsWTJsbWFXTmhkR2x2YmtWeWNtOXlJaXdnSW5CaGNuTmxSbkp2YlZSdmEyVnVjeUlzSUNKcGJuWmhiR2xrVW1WaGMyOXVJaXdnSW01dmJreGxZWEJNWVdSa1pYSWlMQ0FpYkdWaGNFeGhaR1JsY2lJc0lDSjFibWwwVDNWMFQyWlNZVzVuWlNJc0lDSjFibWwwSWl3Z0luWmhiSFZsSWl3Z0lrbHVkbUZzYVdRaUxDQWlaR0Y1VDJaWFpXVnJJaXdnSW5sbFlYSWlMQ0FpYlc5dWRHZ2lMQ0FpWkdGNUlpd2dJbVFpTENBaWFuTWlMQ0FpWTI5dGNIVjBaVTl5WkdsdVlXd2lMQ0FpYVhOTVpXRndXV1ZoY2lJc0lDSjFibU52YlhCMWRHVlBjbVJwYm1Gc0lpd2dJbTl5WkdsdVlXd2lMQ0FpZEdGaWJHVWlMQ0FpYlc5dWRHZ3dJaXdnSW1keVpXZHZjbWxoYmxSdlYyVmxheUlzSUNKbmNtVm5UMkpxSWl3Z0luZGxaV3RrWVhraUxDQWlkMlZsYTA1MWJXSmxjaUlzSUNKM1pXVnJXV1ZoY2lJc0lDSjNaV1ZyYzBsdVYyVmxhMWxsWVhJaUxDQWlYMTl6Y0hKbFlXUldZV3gxWlhNaUxDQWlkR2x0WlU5aWFtVmpkQ0lzSUNKM1pXVnJWRzlIY21WbmIzSnBZVzRpTENBaWQyVmxhMFJoZEdFaUxDQWlkMlZsYTJSaGVVOW1TbUZ1TkNJc0lDSjVaV0Z5U1c1RVlYbHpJaXdnSW1SaGVYTkpibGxsWVhJaUxDQWlaM0psWjI5eWFXRnVWRzlQY21ScGJtRnNJaXdnSW1keVpXZEVZWFJoSWl3Z0ltOXlaR2x1WVd4VWIwZHlaV2R2Y21saGJpSXNJQ0p2Y21ScGJtRnNSR0YwWVNJc0lDSm9ZWE5KYm5aaGJHbGtWMlZsYTBSaGRHRWlMQ0FpYjJKcUlpd2dJblpoYkdsa1dXVmhjaUlzSUNKcGMwbHVkR1ZuWlhJaUxDQWlkbUZzYVdSWFpXVnJJaXdnSW1sdWRHVm5aWEpDWlhSM1pXVnVJaXdnSW5aaGJHbGtWMlZsYTJSaGVTSXNJQ0pvWVhOSmJuWmhiR2xrVDNKa2FXNWhiRVJoZEdFaUxDQWlkbUZzYVdSUGNtUnBibUZzSWl3Z0ltaGhjMGx1ZG1Gc2FXUkhjbVZuYjNKcFlXNUVZWFJoSWl3Z0luWmhiR2xrVFc5dWRHZ2lMQ0FpZG1Gc2FXUkVZWGtpTENBaVpHRjVjMGx1VFc5dWRHZ2lMQ0FpYUdGelNXNTJZV3hwWkZScGJXVkVZWFJoSWl3Z0ltaHZkWElpTENBaWJXbHVkWFJsSWl3Z0luTmxZMjl1WkNJc0lDSnRhV3hzYVhObFkyOXVaQ0lzSUNKMllXeHBaRWh2ZFhJaUxDQWlkbUZzYVdSTmFXNTFkR1VpTENBaWRtRnNhV1JUWldOdmJtUWlMQ0FpZG1Gc2FXUk5hV3hzYVhObFkyOXVaQ0lzSUNKSlRsWkJURWxFSWl3Z0lrMUJXRjlFUVZSRklpd2dJblZ1YzNWd2NHOXlkR1ZrV205dVpTSXNJQ0o2YjI1bElpd2dJa2x1ZG1Gc2FXUWlMQ0FpY0c5emMybGliSGxEWVdOb1pXUlhaV1ZyUkdGMFlTSXNJQ0prZENJc0lDSm5jbVZuYjNKcFlXNVViMWRsWldzaUxDQWlZMnh2Ym1VaUxDQWlhVzV6ZENJc0lDSmhiSFJ6SWl3Z0ltTjFjbkpsYm5RaUxDQWlSR0YwWlZScGJXVWlMQ0FpWDE5emNISmxZV1JRY205d2N5SXNJQ0pmWDNOd2NtVmhaRlpoYkhWbGN5SXNJQ0ptYVhoUFptWnpaWFFpTENBaWJHOWpZV3hVVXlJc0lDSnZJaXdnSW5SNklpd2dJblYwWTBkMVpYTnpJaXdnSW04eUlpd2dJbTh6SWl3Z0luUnpWRzlQWW1vaUxDQWlkSE1pTENBaWIyWm1jMlYwSWl3Z0ltUWlMQ0FpYjJKcVZHOVVVeUlzSUNKdlltb2lMQ0FpYjJKcVZHOU1iMk5oYkZSVElpd2dJbUZrYW5WemRGUnBiV1VpTENBaVpIVnlJaXdnSW05UWNtVWlMQ0FpZVdWaGNpSXNJQ0p0YjI1MGFDSXNJQ0pqSWl3Z0ltUmhlWE5KYmsxdmJuUm9JaXdnSW0xcGJHeHBjMVJ2UVdSa0lpd2dJa1IxY21GMGFXOXVJaXdnSW5CaGNuTmxSR0YwWVZSdlJHRjBaVlJwYldVaUxDQWljR0Z5YzJWa0lpd2dJbkJoY25ObFpGcHZibVVpTENBaWIzQjBjeUlzSUNKbWIzSnRZWFFpTENBaWRHVjRkQ0lzSUNKemNHVmphV1pwWTA5bVpuTmxkQ0lzSUNKelpYUmFiMjVsSWl3Z0ltbHVkR1Z5Y0hKbGRHRjBhVzl1V205dVpTSXNJQ0owYjFSbFkyaEdiM0p0WVhRaUxDQWlZV3hzYjNkYUlpd2dJa1p2Y20xaGRIUmxjaUlzSUNKTWIyTmhiR1VpTENBaWRHOUpVMDlFWVhSbElpd2dJbVY0ZEdWdVpHVmtJaXdnSW14dmJtZEdiM0p0WVhRaUxDQWljR0ZrVTNSaGNuUWlMQ0FpZEc5SlUwOVVhVzFsSWl3Z0luTjFjSEJ5WlhOelUyVmpiMjVrY3lJc0lDSnpkWEJ3Y21WemMwMXBiR3hwYzJWamIyNWtjeUlzSUNKcGJtTnNkV1JsVDJabWMyVjBJaXdnSW1WNGRHVnVaR1ZrV205dVpTSXNJQ0prWldaaGRXeDBWVzVwZEZaaGJIVmxjeUlzSUNKa1pXWmhkV3gwVjJWbGExVnVhWFJXWVd4MVpYTWlMQ0FpWkdWbVlYVnNkRTl5WkdsdVlXeFZibWwwVm1Gc2RXVnpJaXdnSW05eVpHVnlaV1JWYm1sMGN5SXNJQ0p2Y21SbGNtVmtWMlZsYTFWdWFYUnpJaXdnSW05eVpHVnlaV1JQY21ScGJtRnNWVzVwZEhNaUxDQWlibTl5YldGc2FYcGxWVzVwZENJc0lDSjFibWwwSWl3Z0ltNXZjbTFoYkdsNlpXUWlMQ0FpU1c1MllXeHBaRlZ1YVhSRmNuSnZjaUlzSUNKeGRXbGphMFJVSWl3Z0ltNXZjbTFoYkdsNlpWcHZibVVpTENBaVUyVjBkR2x1WjNNaUxDQWliRzlqSWl3Z0luUnpUbTkzSWl3Z0ltbHpWVzVrWldacGJtVmtJaXdnSW5VaUxDQWlhVzUyWVd4cFpDSXNJQ0pvWVhOSmJuWmhiR2xrUjNKbFoyOXlhV0Z1UkdGMFlTSXNJQ0pvWVhOSmJuWmhiR2xrVkdsdFpVUmhkR0VpTENBaWIyWm1jMlYwVUhKdmRtbHpJaXdnSW1ScFptWlNaV3hoZEdsMlpTSXNJQ0p6ZEdGeWRDSXNJQ0psYm1RaUxDQWljbTkxYm1RaUxDQWljbTkxYm1SVWJ5SXNJQ0prYVdabVpYSWlMQ0FpWTI5MWJuUWlMQ0FpYkdGemRFOXdkSE1pTENBaVlYSm5UR2x6ZENJc0lDSmhjbWR6SWl3Z0lsOUVZWFJsVkdsdFpTSXNJQ0pqYjI1bWFXY2lMQ0FpYjNRaUxDQWlaR0Y1SWl3Z0ltaHZkWElpTENBaWJXbHVkWFJsSWl3Z0luTmxZMjl1WkNJc0lDSnRhV3hzYVhObFkyOXVaQ0lzSUNKR2FYaGxaRTltWm5ObGRGcHZibVVpTENBaVpHRjBaU0lzSUNKdmNIUnBiMjV6SWl3Z0ltbHpSR0YwWlNJc0lDSjZiMjVsVkc5VmMyVWlMQ0FpYldsc2JHbHpaV052Ym1Seklpd2dJbWx6VG5WdFltVnlJaXdnSWtsdWRtRnNhV1JCY21kMWJXVnVkRVZ5Y205eUlpd2dJbk5sWTI5dVpITWlMQ0FpYm05eWJXRnNhWHBsVDJKcVpXTjBJaXdnSW1OdmJuUmhhVzV6VDNKa2FXNWhiQ0lzSUNKamIyNTBZV2x1YzBkeVpXZHZjbGxsWVhJaUxDQWlZMjl1ZEdGcGJuTkhjbVZuYjNKTlJDSXNJQ0pqYjI1MFlXbHVjMGR5WldkdmNpSXNJQ0prWldacGJtbDBaVmRsWld0RVpXWWlMQ0FpUTI5dVpteHBZM1JwYm1kVGNHVmphV1pwWTJGMGFXOXVSWEp5YjNJaUxDQWlkWE5sVjJWbGEwUmhkR0VpTENBaWRXNXBkSE1pTENBaVpHVm1ZWFZzZEZaaGJIVmxjeUlzSUNKdlltcE9iM2NpTENBaVozSmxaMjl5YVdGdVZHOVBjbVJwYm1Gc0lpd2dJbVp2ZFc1a1JtbHljM1FpTENBaWRpSXNJQ0pvYVdkb1pYSlBjbVJsY2tsdWRtRnNhV1FpTENBaWFHRnpTVzUyWVd4cFpGZGxaV3RFWVhSaElpd2dJbWhoYzBsdWRtRnNhV1JQY21ScGJtRnNSR0YwWVNJc0lDSm5jbVZuYjNKcFlXNGlMQ0FpZDJWbGExUnZSM0psWjI5eWFXRnVJaXdnSW05eVpHbHVZV3hVYjBkeVpXZHZjbWxoYmlJc0lDSjBjMFpwYm1Gc0lpd2dJbTltWm5ObGRFWnBibUZzSWl3Z0luWmhiSE1pTENBaWNHRnljMlZKVTA5RVlYUmxJaXdnSW5CaGNuTmxVa1pETWpneU1rUmhkR1VpTENBaWNHRnljMlZJVkZSUVJHRjBaU0lzSUNKbWJYUWlMQ0FpYkc5allXeGxJaXdnSW01MWJXSmxjbWx1WjFONWMzUmxiU0lzSUNKc2IyTmhiR1ZVYjFWelpTSXNJQ0p3WVhKelpVWnliMjFVYjJ0bGJuTWlMQ0FpY0dGeWMyVlRVVXdpTENBaWNtVmhjMjl1SWl3Z0ltVjRjR3hoYm1GMGFXOXVJaXdnSWtsdWRtRnNhV1JFWVhSbFZHbHRaVVZ5Y205eUlpd2dJa2x1Wm04aUxDQWlhWE5NWldGd1dXVmhjaUlzSUNKa1lYbHpTVzVaWldGeUlpd2dJbmRsWld0elNXNVhaV1ZyV1dWaGNpSXNJQ0pqWVd4bGJtUmhjaUlzSUNKclpXVndURzlqWVd4VWFXMWxJaXdnSW10bFpYQkRZV3hsYm1SaGNsUnBiV1VpTENBaWJtVjNWRk1pTENBaWIyWm1jMlYwUjNWbGMzTWlMQ0FpWVhOUFltb2lMQ0FpYjNWMGNIVjBRMkZzWlc1a1lYSWlMQ0FpZG1Gc2RXVnpJaXdnSW5ObGRIUnBibWRYWldWclUzUjFabVlpTENBaWJXbDRaV1FpTENBaVpIVnlZWFJwYjI0aUxDQWlibTl5YldGc2FYcGxaRlZ1YVhRaUxDQWljU0lzSUNKbWIzSnRZWFJQY0hSeklpd2dJa1JCVkVWZlUwaFBVbFFpTENBaVpYaDBJaXdnSW1sdVkyeDFaR1ZRY21WbWFYZ2lMQ0FpYVc1amJIVmtaVnB2Ym1VaUxDQWlhVzVqYkhWa1pVOW1abk5sZEZOd1lXTmxJaXdnSW1KaGMyVWlMQ0FpYjNSb1pYSkVZWFJsVkdsdFpTSXNJQ0prZFhKUGNIUnpJaXdnSW0xaGVXSmxRWEp5WVhraUxDQWliM1JvWlhKSmMweGhkR1Z5SWl3Z0ltVmhjbXhwWlhJaUxDQWliR0YwWlhJaUxDQWlaR2xtWm1Wa0lpd2dJbVJwWm1aZlpHVm1ZWFZzZENJc0lDSkpiblJsY25aaGJDSXNJQ0pwYm5CMWRFMXpJaXdnSW1Ga2FuVnpkR1ZrVkc5YWIyNWxJaXdnSW05MGFHVnlJaXdnSW5CaFpHUnBibWNpTENBaVpHRjBaVlJwYldWeklpd2dJbUpsYzNSQ2VTSXNJQ0pwSWl3Z0ltVjRjR3hoYVc1R2NtOXRWRzlyWlc1eklpd2dJa1JCVkVWZlRVVkVJaXdnSWtSQlZFVmZUVVZFWDFkSlZFaGZWMFZGUzBSQldTSXNJQ0pFUVZSRlgwWlZURXdpTENBaVJFRlVSVjlJVlVkRklpd2dJbFJKVFVWZlUwbE5VRXhGSWl3Z0lsUkpUVVZmVjBsVVNGOVRSVU5QVGtSVElpd2dJbFJKVFVWZlYwbFVTRjlUU0U5U1ZGOVBSa1pUUlZRaUxDQWlWRWxOUlY5WFNWUklYMHhQVGtkZlQwWkdVMFZVSWl3Z0lsUkpUVVZmTWpSZlUwbE5VRXhGSWl3Z0lsUkpUVVZmTWpSZlYwbFVTRjlUUlVOUFRrUlRJaXdnSWxSSlRVVmZNalJmVjBsVVNGOVRTRTlTVkY5UFJrWlRSVlFpTENBaVZFbE5SVjh5TkY5WFNWUklYMHhQVGtkZlQwWkdVMFZVSWl3Z0lrUkJWRVZVU1UxRlgxTklUMUpVSWl3Z0lrUkJWRVZVU1UxRlgxTklUMUpVWDFkSlZFaGZVMFZEVDA1RVV5SXNJQ0pFUVZSRlZFbE5SVjlOUlVRaUxDQWlSRUZVUlZSSlRVVmZUVVZFWDFkSlZFaGZVMFZEVDA1RVV5SXNJQ0pFUVZSRlZFbE5SVjlOUlVSZlYwbFVTRjlYUlVWTFJFRlpJaXdnSWtSQlZFVlVTVTFGWDBaVlRFd2lMQ0FpUkVGVVJWUkpUVVZmUmxWTVRGOVhTVlJJWDFORlEwOU9SRk1pTENBaVJFRlVSVlJKVFVWZlNGVkhSU0lzSUNKRVFWUkZWRWxOUlY5SVZVZEZYMWRKVkVoZlUwVkRUMDVFVXlJc0lDSm1jbWxsYm1Sc2VVUmhkR1ZVYVcxbElpd2dJbVJoZEdWVWFXMWxhWE5vSWl3Z0lsQWlMQ0FpWlcxdmFtbGZjbVZuWlhoZlpHVm1ZWFZzZENJc0lDSnViM0p0WVd4cGVtVkVkWEpoZEdsdmJpSXNJQ0prZFhJaUxDQWljbVZ1WkdWeVRXbHVhVzFoYkVSaGRHVWlMQ0FpZEdsdFpTSXNJQ0prWVhSbFJtOXliV0YwSWl3Z0ltUmhkR1ZVYVcxbFJtOXliV0YwSWl3Z0lteHZZMkZzWlNJc0lDSnlaVzVrWlhKTmFXNXBiV0ZzUkhWeVlYUnBiMjRpTENBaVpIVnlJaXdnSW01dmNtMWhiR2w2WlVSMWNtRjBhVzl1SWl3Z0luSmxjM1ZzZENJc0lDSm5aWFJHYVd4bFZHbDBiR1VpTENBaWNHRjBhQ0lzSUNKblpYUkZlSFJsYm5OcGIyNGlMQ0FpU0VWQlJFVlNYME5CVGs5T1NVTkJURWxhUlZJaUxDQWlaVzF2YW1sZmNtVm5aWGhmWkdWbVlYVnNkQ0lzSUNKZklpd2dJbkpsYzNWc2RDSXNJQ0p1YjNKdFlXeHBlbVZJWldGa1pYSkdiM0pNYVc1cklpd2dJbWhsWVdSbGNpSXNJQ0pNYVc1cklpd2dJbDlNYVc1cklpd2dJbkJoZEdnaUxDQWlaVzFpWldRaUxDQWlaR2x6Y0d4aGVTSXNJQ0pzYVc1cmNHRjBhQ0lzSUNKemNHeHBkQ0lzSUNKb1pXRmtaWElpTENBaWJtOXliV0ZzYVhwbFNHVmhaR1Z5Um05eVRHbHVheUlzSUNKaWJHOWphMGxrSWl3Z0ltOWlhbVZqZENJc0lDSnlZWGRzYVc1cklpd2dJbXhwYm1zaUxDQWljM0JzYVhSUGJsVnVaWE5qWVhCbFpGQnBjR1VpTENBaVptbGxiR1J6SWl3Z0ltSnNiMk5ySWl3Z0ltOTBhR1Z5SWl3Z0luSmxjM1ZzZENJc0lDSm5aWFJHYVd4bFZHbDBiR1VpTENBaVgyRWlMQ0FpWDJJaUxDQWlaWE5qWVhCbFpDSXNJQ0p3YVhCbElpd2dJa0ZNU1VGVElpd2dJa1JQUXlJc0lDSk5RVkFpTENBaVVFRkpVaUlzSUNKVFEwRk1RVklpTENBaVUwVlJJaXdnSWs1UFJFVmZWRmxRUlNJc0lDSnBjMEZzYVdGeklpd2dJbTV2WkdVaUxDQWlhWE5FYjJOMWJXVnVkQ0lzSUNKcGMwMWhjQ0lzSUNKcGMxQmhhWElpTENBaWFYTlRZMkZzWVhJaUxDQWlhWE5UWlhFaUxDQWlhWE5EYjJ4c1pXTjBhVzl1SWl3Z0ltbHpUbTlrWlNJc0lDSm9ZWE5CYm1Ob2IzSWlMQ0FpUWxKRlFVc2lMQ0FpVTB0SlVDSXNJQ0pTUlUxUFZrVWlMQ0FpZG1semFYUWlMQ0FpYm05a1pTSXNJQ0oyYVhOcGRHOXlJaXdnSW5acGMybDBiM0pmSWl3Z0ltbHVhWFJXYVhOcGRHOXlJaXdnSW1selJHOWpkVzFsYm5RaUxDQWlkbWx6YVhSZklpd2dJbXRsZVNJc0lDSndZWFJvSWl3Z0ltTjBjbXdpTENBaVkyRnNiRlpwYzJsMGIzSWlMQ0FpYVhOT2IyUmxJaXdnSW1selVHRnBjaUlzSUNKeVpYQnNZV05sVG05a1pTSXNJQ0pwYzBOdmJHeGxZM1JwYjI0aUxDQWlZMmtpTENBaVkyc2lMQ0FpWTNZaUxDQWlkbWx6YVhSQmMzbHVZeUlzSUNKMmFYTnBkRUZ6ZVc1alh5SXNJQ0pmWVNJc0lDSmZZaUlzSUNKZll5SXNJQ0pmWkNJc0lDSmZaU0lzSUNKcGMwMWhjQ0lzSUNKcGMxTmxjU0lzSUNKcGMxTmpZV3hoY2lJc0lDSnBjMEZzYVdGeklpd2dJbkJoY21WdWRDSXNJQ0p3ZENJc0lDSmxjMk5oY0dWRGFHRnljeUlzSUNKbGMyTmhjR1ZVWVdkT1lXMWxJaXdnSW5SdUlpd2dJbU5vSWl3Z0lrUnBjbVZqZEdsMlpYTWlMQ0FpWDBScGNtVmpkR2wyWlhNaUxDQWllV0Z0YkNJc0lDSjBZV2R6SWl3Z0ltTnZjSGtpTENBaWNtVnpJaXdnSW14cGJtVWlMQ0FpYjI1RmNuSnZjaUlzSUNKd1lYSjBjeUlzSUNKdVlXMWxJaXdnSW1oaGJtUnNaU0lzSUNKd2NtVm1hWGdpTENBaWRtVnljMmx2YmlJc0lDSnBjMVpoYkdsa0lpd2dJbk52ZFhKalpTSXNJQ0oyWlhKaVlYUnBiU0lzSUNKemRXWm1hWGdpTENBaVpYSnliM0lpTENBaWRHRm5JaXdnSW1Sdll5SXNJQ0pzYVc1bGN5SXNJQ0owWVdkRmJuUnlhV1Z6SWl3Z0luUmhaMDVoYldWeklpd2dJbWx6VG05a1pTSXNJQ0oyYVhOcGRDSXNJQ0pmYTJWNUlpd2dJbTV2WkdVaUxDQWlZVzVqYUc5eVNYTldZV3hwWkNJc0lDSmhibU5vYjNJaUxDQWliWE5uSWl3Z0ltRnVZMmh2Y2s1aGJXVnpJaXdnSW5KdmIzUWlMQ0FpWVc1amFHOXljeUlzSUNKMmFYTnBkQ0lzSUNKZmEyVjVJaXdnSW01dlpHVWlMQ0FpWm1sdVpFNWxkMEZ1WTJodmNpSXNJQ0p3Y21WbWFYZ2lMQ0FpWlhoamJIVmtaU0lzSUNKcElpd2dJbTVoYldVaUxDQWlZM0psWVhSbFRtOWtaVUZ1WTJodmNuTWlMQ0FpWkc5aklpd2dJbUZzYVdGelQySnFaV04wY3lJc0lDSnpiM1Z5WTJWUFltcGxZM1J6SWl3Z0luQnlaWFpCYm1Ob2IzSnpJaXdnSW5OdmRYSmpaU0lzSUNKeVpXWWlMQ0FpYVhOVFkyRnNZWElpTENBaWFYTkRiMnhzWldOMGFXOXVJaXdnSW1WeWNtOXlJaXdnSW1Gd2NHeDVVbVYyYVhabGNpSXNJQ0p5WlhacGRtVnlJaXdnSW05aWFpSXNJQ0pyWlhraUxDQWlkbUZzSWl3Z0lta2lMQ0FpYkdWdUlpd2dJbll3SWl3Z0luWXhJaXdnSW1zaUxDQWlkRzlLVXlJc0lDSjJZV3gxWlNJc0lDSmhjbWNpTENBaVkzUjRJaXdnSW5ZaUxDQWlhU0lzSUNKb1lYTkJibU5vYjNJaUxDQWlaR0YwWVNJc0lDSnlaWE1pTENBaVRtOWtaVUpoYzJVaUxDQWlkSGx3WlNJc0lDSk9UMFJGWDFSWlVFVWlMQ0FpWTI5d2VTSXNJQ0prYjJNaUxDQWliV0Z3UVhOTllYQWlMQ0FpYldGNFFXeHBZWE5EYjNWdWRDSXNJQ0p2YmtGdVkyaHZjaUlzSUNKeVpYWnBkbVZ5SWl3Z0ltbHpSRzlqZFcxbGJuUWlMQ0FpWTNSNElpd2dJbkpsY3lJc0lDSjBiMHBUSWl3Z0ltTnZkVzUwSWl3Z0ltRndjR3g1VW1WMmFYWmxjaUlzSUNKQmJHbGhjeUlzSUNKT2IyUmxRbUZ6WlNJc0lDSnpiM1Z5WTJVaUxDQWlRVXhKUVZNaUxDQWlaRzlqSWl3Z0ltWnZkVzVrSWl3Z0luWnBjMmwwSWl3Z0lsOXJaWGtpTENBaWJtOWtaU0lzSUNKZllYSm5JaXdnSW1OMGVDSXNJQ0poYm1Ob2IzSnpJaXdnSW0xaGVFRnNhV0Z6UTI5MWJuUWlMQ0FpYlhObklpd2dJbVJoZEdFaUxDQWlkRzlLVXlJc0lDSm5aWFJCYkdsaGMwTnZkVzUwSWl3Z0lsOXZia052YlcxbGJuUWlMQ0FpWDI5dVEyaHZiWEJMWldWd0lpd2dJbk55WXlJc0lDSmhibU5vYjNKSmMxWmhiR2xrSWl3Z0ltbHpRV3hwWVhNaUxDQWlZVzVqYUc5eUlpd2dJbWx6UTI5c2JHVmpkR2x2YmlJc0lDSmpiM1Z1ZENJc0lDSnBkR1Z0SWl3Z0ltTWlMQ0FpYVhOUVlXbHlJaXdnSW10aklpd2dJblpqSWl3Z0ltbHpVMk5oYkdGeVZtRnNkV1VpTENBaWRtRnNkV1VpTENBaVUyTmhiR0Z5SWl3Z0lrNXZaR1ZDWVhObElpd2dJbE5EUVV4QlVpSXNJQ0poY21jaUxDQWlZM1I0SWl3Z0luUnZTbE1pTENBaVpHVm1ZWFZzZEZSaFoxQnlaV1pwZUNJc0lDSm1hVzVrVkdGblQySnFaV04wSWl3Z0luWmhiSFZsSWl3Z0luUmhaMDVoYldVaUxDQWlkR0ZuY3lJc0lDSmZZU0lzSUNKdFlYUmphQ0lzSUNKMElpd2dJblJoWjA5aWFpSXNJQ0pqY21WaGRHVk9iMlJsSWl3Z0ltTjBlQ0lzSUNKZllpSXNJQ0pmWXlJc0lDSnBjMFJ2WTNWdFpXNTBJaXdnSW1selRtOWtaU0lzSUNKcGMxQmhhWElpTENBaWJXRndJaXdnSWsxQlVDSXNJQ0poYkdsaGMwUjFjR3hwWTJGMFpVOWlhbVZqZEhNaUxDQWliMjVCYm1Ob2IzSWlMQ0FpYjI1VVlXZFBZbW9pTENBaWMyTm9aVzFoSWl3Z0luTnZkWEpqWlU5aWFtVmpkSE1pTENBaWNtVm1JaXdnSWtGc2FXRnpJaXdnSW01dlpHVWlMQ0FpVTJOaGJHRnlJaXdnSWxORlVTSXNJQ0pqYjJ4c1pXTjBhVzl1Um5KdmJWQmhkR2dpTENBaWMyTm9aVzFoSWl3Z0luQmhkR2dpTENBaWRtRnNkV1VpTENBaWRpSXNJQ0pwSWl3Z0ltc2lMQ0FpWVNJc0lDSmpjbVZoZEdWT2IyUmxJaXdnSW1selJXMXdkSGxRWVhSb0lpd2dJa052Ykd4bFkzUnBiMjRpTENBaVRtOWtaVUpoYzJVaUxDQWlkSGx3WlNJc0lDSmpiM0I1SWl3Z0ltbDBJaXdnSW1selRtOWtaU0lzSUNKcGMxQmhhWElpTENBaWEyVjVJaXdnSW5KbGMzUWlMQ0FpYm05a1pTSXNJQ0pwYzBOdmJHeGxZM1JwYjI0aUxDQWlhMlZsY0ZOallXeGhjaUlzSUNKcGMxTmpZV3hoY2lJc0lDSmhiR3h2ZDFOallXeGhjaUlzSUNKdUlpd2dJbk4wY21sdVoybG1lVU52YlcxbGJuUWlMQ0FpYzNSeUlpd2dJbWx1WkdWdWRFTnZiVzFsYm5RaUxDQWlZMjl0YldWdWRDSXNJQ0pwYm1SbGJuUWlMQ0FpYkdsdVpVTnZiVzFsYm5RaUxDQWlSazlNUkY5R1RFOVhJaXdnSWtaUFRFUmZRa3hQUTBzaUxDQWlSazlNUkY5UlZVOVVSVVFpTENBaVptOXNaRVpzYjNkTWFXNWxjeUlzSUNKMFpYaDBJaXdnSW1sdVpHVnVkQ0lzSUNKdGIyUmxJaXdnSW1sdVpHVnVkRUYwVTNSaGNuUWlMQ0FpYkdsdVpWZHBaSFJvSWl3Z0ltMXBia052Ym5SbGJuUlhhV1IwYUNJc0lDSnZia1p2YkdRaUxDQWliMjVQZG1WeVpteHZkeUlzSUNKbGJtUlRkR1Z3SWl3Z0ltWnZiR1J6SWl3Z0ltVnpZMkZ3WldSR2IyeGtjeUlzSUNKbGJtUWlMQ0FpYzNCc2FYUWlMQ0FpY0hKbGRpSXNJQ0p2ZG1WeVpteHZkeUlzSUNKcElpd2dJbVZ6WTFOMFlYSjBJaXdnSW1WelkwVnVaQ0lzSUNKamIyNXpkVzFsVFc5eVpVbHVaR1Z1ZEdWa1RHbHVaWE1pTENBaVkyZ2lMQ0FpYm1WNGRDSXNJQ0pxSWl3Z0luSmxjeUlzSUNKbWIyeGtJaXdnSW5OMFlYSjBJaXdnSW1kbGRFWnZiR1JQY0hScGIyNXpJaXdnSW1OMGVDSXNJQ0pwYzBKc2IyTnJJaXdnSW1OdmJuUmhhVzV6Ukc5amRXMWxiblJOWVhKclpYSWlMQ0FpYzNSeUlpd2dJbXhwYm1WTVpXNW5kR2hQZG1WeVRHbHRhWFFpTENBaWJHbHVaVmRwWkhSb0lpd2dJbWx1WkdWdWRFeGxibWQwYUNJc0lDSnNhVzFwZENJc0lDSnpkSEpNWlc0aUxDQWljM1JoY25RaUxDQWlaRzkxWW14bFVYVnZkR1ZrVTNSeWFXNW5JaXdnSW5aaGJIVmxJaXdnSW1wemIyNGlMQ0FpYVcxd2JHbGphWFJMWlhraUxDQWliV2x1VFhWc2RHbE1hVzVsVEdWdVozUm9JaXdnSW1sdVpHVnVkQ0lzSUNKcElpd2dJbU5vSWl3Z0ltTnZaR1VpTENBaVptOXNaRVpzYjNkTWFXNWxjeUlzSUNKR1QweEVYMUZWVDFSRlJDSXNJQ0p6YVc1bmJHVlJkVzkwWldSVGRISnBibWNpTENBaWNtVnpJaXdnSWtaUFRFUmZSa3hQVnlJc0lDSnhkVzkwWldSVGRISnBibWNpTENBaWMybHVaMnhsVVhWdmRHVWlMQ0FpY1hNaUxDQWlhR0Z6Ukc5MVlteGxJaXdnSW1oaGMxTnBibWRzWlNJc0lDSmliRzlqYTBWdVpFNWxkMnhwYm1Weklpd2dJbVVpTENBaVlteHZZMnRUZEhKcGJtY2lMQ0FpWTI5dGJXVnVkQ0lzSUNKMGVYQmxJaXdnSW05dVEyOXRiV1Z1ZENJc0lDSnZia05vYjIxd1MyVmxjQ0lzSUNKaWJHOWphMUYxYjNSbElpd2dJbU52YlcxbGJuUlRkSEpwYm1jaUxDQWliR2wwWlhKaGJDSXNJQ0pUWTJGc1lYSWlMQ0FpWTJodmJYQWlMQ0FpWlc1a1UzUmhjblFpTENBaVpXNWtJaXdnSW1WdVpFNXNVRzl6SWl3Z0luTjBZWEowVjJsMGFGTndZV05sSWl3Z0luTjBZWEowUlc1a0lpd2dJbk4wWVhKMFRteFFiM01pTENBaWFHVmhaR1Z5SWl3Z0ltSnZaSGtpTENBaVJrOU1SRjlDVEU5RFN5SXNJQ0p3YkdGcGJsTjBjbWx1WnlJc0lDSnBkR1Z0SWl3Z0ltRmpkSFZoYkZOMGNtbHVaeUlzSUNKcGJtUmxiblJUZEdWd0lpd2dJbWx1Um14dmR5SXNJQ0owWlhOMElpd2dJblJoWnlJc0lDSmZZU0lzSUNKamIyMXdZWFFpTENBaWRHRm5jeUlzSUNKemRISnBibWRwWm5sVGRISnBibWNpTENBaWMzTWlMQ0FpWDNOMGNtbHVaMmxtZVNJc0lDSmZkSGx3WlNJc0lDSmtaV1poZFd4MFMyVjVWSGx3WlNJc0lDSmtaV1poZFd4MFUzUnlhVzVuVkhsd1pTSXNJQ0owSWl3Z0ltTnlaV0YwWlZOMGNtbHVaMmxtZVVOdmJuUmxlSFFpTENBaVpHOWpJaXdnSW05d2RHbHZibk1pTENBaWIzQjBJaXdnSW5OMGNtbHVaMmxtZVVOdmJXMWxiblFpTENBaWFXNUdiRzkzSWl3Z0ltZGxkRlJoWjA5aWFtVmpkQ0lzSUNKMFlXZHpJaXdnSW1sMFpXMGlMQ0FpWDJFaUxDQWlYMklpTENBaVgyTWlMQ0FpWDJRaUxDQWliV0YwWTJnaUxDQWlkQ0lzSUNKMFlXZFBZbW9pTENBaWIySnFJaXdnSW1selUyTmhiR0Z5SWl3Z0luUmxjM1JOWVhSamFDSXNJQ0p1WVcxbElpd2dJbk4wY21sdVoybG1lVkJ5YjNCeklpd2dJbTV2WkdVaUxDQWlZVzVqYUc5eWN5SXNJQ0p3Y205d2N5SXNJQ0poYm1Ob2IzSWlMQ0FpYVhORGIyeHNaV04wYVc5dUlpd2dJbUZ1WTJodmNrbHpWbUZzYVdRaUxDQWlkR0ZuSWl3Z0luTjBjbWx1WjJsbWVTSXNJQ0pqZEhnaUxDQWliMjVEYjIxdFpXNTBJaXdnSW05dVEyaHZiWEJMWldWd0lpd2dJbWx6VUdGcGNpSXNJQ0pwYzBGc2FXRnpJaXdnSW1selRtOWtaU0lzSUNKdklpd2dJbk4wY2lJc0lDSnpkSEpwYm1kcFpubFRkSEpwYm1jaUxDQWljM1J5YVc1bmFXWjVVR0ZwY2lJc0lDSnJaWGtpTENBaWRtRnNkV1VpTENBaVkzUjRJaXdnSW05dVEyOXRiV1Z1ZENJc0lDSnZia05vYjIxd1MyVmxjQ0lzSUNKZllTSXNJQ0pmWWlJc0lDSmhiR3hPZFd4c1ZtRnNkV1Z6SWl3Z0ltUnZZeUlzSUNKcGJtUmxiblFpTENBaWFXNWtaVzUwVTNSbGNDSXNJQ0pqYjIxdFpXNTBVM1J5YVc1bklpd2dJbWx1WkdWdWRGTmxjU0lzSUNKemFXMXdiR1ZMWlhseklpd2dJbXRsZVVOdmJXMWxiblFpTENBaWFYTk9iMlJsSWl3Z0ltbHpRMjlzYkdWamRHbHZiaUlzSUNKdGMyY2lMQ0FpWlhod2JHbGphWFJMWlhraUxDQWlhWE5UWTJGc1lYSWlMQ0FpVTJOaGJHRnlJaXdnSW10bGVVTnZiVzFsYm5SRWIyNWxJaXdnSW1Ob2IyMXdTMlZsY0NJc0lDSnpkSElpTENBaWMzUnlhVzVuYVdaNUlpd2dJbXhwYm1WRGIyMXRaVzUwSWl3Z0luWnpZaUlzSUNKMlkySWlMQ0FpZG1Gc2RXVkRiMjF0Wlc1MElpd2dJbWx6VTJWeElpd2dJblpoYkhWbFEyOXRiV1Z1ZEVSdmJtVWlMQ0FpZG1Gc2RXVlRkSElpTENBaWQzTWlMQ0FpWTNNaUxDQWlhVzVrWlc1MFEyOXRiV1Z1ZENJc0lDSjJjekFpTENBaWJtd3dJaXdnSW1oaGMwNWxkMnhwYm1VaUxDQWlabXh2ZHlJc0lDSm9ZWE5RY205d2MweHBibVVpTENBaWMzQXdJaXdnSW5kaGNtNGlMQ0FpYkc5blRHVjJaV3dpTENBaWQyRnlibWx1WnlJc0lDSk5SVkpIUlY5TFJWa2lMQ0FpYldWeVoyVWlMQ0FpZG1Gc2RXVWlMQ0FpVTJOaGJHRnlJaXdnSW1Ga1pFMWxjbWRsVkc5S1UwMWhjQ0lzSUNKcGMwMWxjbWRsUzJWNUlpd2dJbU4wZUNJc0lDSnJaWGtpTENBaWFYTlRZMkZzWVhJaUxDQWlkR0ZuSWl3Z0ltMWhjQ0lzSUNKcGMwRnNhV0Z6SWl3Z0ltbHpVMlZ4SWl3Z0ltbDBJaXdnSW0xbGNtZGxWbUZzZFdVaUxDQWljMjkxY21ObElpd2dJbWx6VFdGd0lpd2dJbk55WTAxaGNDSXNJQ0poWkdSUVlXbHlWRzlLVTAxaGNDSXNJQ0pqZEhnaUxDQWliV0Z3SWl3Z0ltdGxlU0lzSUNKMllXeDFaU0lzSUNKcGMwNXZaR1VpTENBaWFYTk5aWEpuWlV0bGVTSXNJQ0poWkdSTlpYSm5aVlJ2U2xOTllYQWlMQ0FpYW5OTFpYa2lMQ0FpZEc5S1V5SXNJQ0p6ZEhKcGJtZExaWGtpTENBaWMzUnlhVzVuYVdaNVMyVjVJaXdnSW1welZtRnNkV1VpTENBaWMzUnlRM1I0SWl3Z0ltTnlaV0YwWlZOMGNtbHVaMmxtZVVOdmJuUmxlSFFpTENBaWJtOWtaU0lzSUNKemRISkxaWGtpTENBaWFuTnZibE4wY2lJc0lDSjNZWEp1SWl3Z0ltTnlaV0YwWlZCaGFYSWlMQ0FpYTJWNUlpd2dJblpoYkhWbElpd2dJbU4wZUNJc0lDSnJJaXdnSW1OeVpXRjBaVTV2WkdVaUxDQWlkaUlzSUNKUVlXbHlJaXdnSWw5UVlXbHlJaXdnSWs1UFJFVmZWRmxRUlNJc0lDSlFRVWxTSWl3Z0luTmphR1Z0WVNJc0lDSnBjMDV2WkdVaUxDQWlYeUlzSUNKd1lXbHlJaXdnSW1Ga1pGQmhhWEpVYjBwVFRXRndJaXdnSW05dVEyOXRiV1Z1ZENJc0lDSnZia05vYjIxd1MyVmxjQ0lzSUNKemRISnBibWRwWm5sUVlXbHlJaXdnSW5OMGNtbHVaMmxtZVVOdmJHeGxZM1JwYjI0aUxDQWlZMjlzYkdWamRHbHZiaUlzSUNKamRIZ2lMQ0FpYjNCMGFXOXVjeUlzSUNKZllTSXNJQ0p6ZEhKcGJtZHBabmxHYkc5M1EyOXNiR1ZqZEdsdmJpSXNJQ0p6ZEhKcGJtZHBabmxDYkc5amEwTnZiR3hsWTNScGIyNGlMQ0FpWTI5dGJXVnVkQ0lzSUNKcGRHVnRjeUlzSUNKaWJHOWphMGwwWlcxUWNtVm1hWGdpTENBaVpteHZkME5vWVhKeklpd2dJbWwwWlcxSmJtUmxiblFpTENBaWIyNURhRzl0Y0V0bFpYQWlMQ0FpYjI1RGIyMXRaVzUwSWl3Z0ltbHVaR1Z1ZENJc0lDSmpiMjF0Wlc1MFUzUnlhVzVuSWl3Z0ltbDBaVzFEZEhnaUxDQWlZMmh2YlhCTFpXVndJaXdnSW14cGJtVnpJaXdnSW1raUxDQWlhWFJsYlNJc0lDSnBjMDV2WkdVaUxDQWlZV1JrUTI5dGJXVnVkRUpsWm05eVpTSXNJQ0pwYzFCaGFYSWlMQ0FpYVdzaUxDQWljM1J5SWl3Z0luTjBjbWx1WjJsbWVTSXNJQ0pzYVc1bFEyOXRiV1Z1ZENJc0lDSnNhVzVsSWl3Z0ltbHVaR1Z1ZEVOdmJXMWxiblFpTENBaWFXNWtaVzUwVTNSbGNDSXNJQ0ptWTFCaFpHUnBibWNpTENBaWNtVnhUbVYzYkdsdVpTSXNJQ0pzYVc1bGMwRjBWbUZzZFdVaUxDQWlhWFlpTENBaWMzUmhjblFpTENBaVpXNWtJaXdnSW14bGJpSXNJQ0p6ZFcwaUxDQWlhV01pTENBaVptbHVaRkJoYVhJaUxDQWlhWFJsYlhNaUxDQWlhMlY1SWl3Z0ltc2lMQ0FpYVhOVFkyRnNZWElpTENBaWFYUWlMQ0FpYVhOUVlXbHlJaXdnSWxsQlRVeE5ZWEFpTENBaVEyOXNiR1ZqZEdsdmJpSXNJQ0p6WTJobGJXRWlMQ0FpVFVGUUlpd2dJbTlpYWlJc0lDSmpkSGdpTENBaWEyVmxjRlZ1WkdWbWFXNWxaQ0lzSUNKeVpYQnNZV05sY2lJc0lDSnRZWEFpTENBaVlXUmtJaXdnSW5aaGJIVmxJaXdnSW1OeVpXRjBaVkJoYVhJaUxDQWljR0ZwY2lJc0lDSnZkbVZ5ZDNKcGRHVWlMQ0FpWDJFaUxDQWlYM0JoYVhJaUxDQWlVR0ZwY2lJc0lDSndjbVYySWl3Z0luTnZjblJGYm5SeWFXVnpJaXdnSW1selUyTmhiR0Z5Vm1Gc2RXVWlMQ0FpYVNJc0lDSnBkR1Z0SWl3Z0ltdGxaWEJUWTJGc1lYSWlMQ0FpYm05a1pTSXNJQ0pmSWl3Z0lsUjVjR1VpTENBaVlXUmtVR0ZwY2xSdlNsTk5ZWEFpTENBaWIyNURiMjF0Wlc1MElpd2dJbTl1UTJodmJYQkxaV1Z3SWl3Z0luTjBjbWx1WjJsbWVVTnZiR3hsWTNScGIyNGlMQ0FpYldGd0lpd2dJbGxCVFV4TllYQWlMQ0FpYjI1RmNuSnZjaUlzSUNKcGMwMWhjQ0lzSUNKelkyaGxiV0VpTENBaWIySnFJaXdnSW1OMGVDSXNJQ0paUVUxTVUyVnhJaXdnSWtOdmJHeGxZM1JwYjI0aUxDQWljMk5vWlcxaElpd2dJbE5GVVNJc0lDSjJZV3gxWlNJc0lDSnJaWGtpTENBaWFXUjRJaXdnSW1GelNYUmxiVWx1WkdWNElpd2dJbXRsWlhCVFkyRnNZWElpTENBaWFYUWlMQ0FpYVhOVFkyRnNZWElpTENBaWNISmxkaUlzSUNKcGMxTmpZV3hoY2xaaGJIVmxJaXdnSWw4aUxDQWlZM1I0SWl3Z0luTmxjU0lzSUNKcElpd2dJbWwwWlcwaUxDQWlkRzlLVXlJc0lDSnZia052YlcxbGJuUWlMQ0FpYjI1RGFHOXRjRXRsWlhBaUxDQWljM1J5YVc1bmFXWjVRMjlzYkdWamRHbHZiaUlzSUNKdlltb2lMQ0FpY21Wd2JHRmpaWElpTENBaVkzSmxZWFJsVG05a1pTSXNJQ0p6WlhFaUxDQWlXVUZOVEZObGNTSXNJQ0p2YmtWeWNtOXlJaXdnSW1selUyVnhJaXdnSW5OamFHVnRZU0lzSUNKdlltb2lMQ0FpWTNSNElpd2dJbk4wY21sdVp5SXNJQ0oyWVd4MVpTSXNJQ0p6ZEhJaUxDQWlhWFJsYlNJc0lDSmpkSGdpTENBaWIyNURiMjF0Wlc1MElpd2dJbTl1UTJodmJYQkxaV1Z3SWl3Z0luTjBjbWx1WjJsbWVWTjBjbWx1WnlJc0lDSnVkV3hzVkdGbklpd2dJblpoYkhWbElpd2dJbE5qWVd4aGNpSXNJQ0p6YjNWeVkyVWlMQ0FpWTNSNElpd2dJbUp2YjJ4VVlXY2lMQ0FpZG1Gc2RXVWlMQ0FpYzNSeUlpd2dJbE5qWVd4aGNpSXNJQ0p6YjNWeVkyVWlMQ0FpWTNSNElpd2dJbk4ySWl3Z0luTjBjbWx1WjJsbWVVNTFiV0psY2lJc0lDSm1iM0p0WVhRaUxDQWliV2x1Um5KaFkzUnBiMjVFYVdkcGRITWlMQ0FpZEdGbklpd2dJblpoYkhWbElpd2dJbTUxYlNJc0lDSnVJaXdnSW1raUxDQWlaQ0lzSUNKbWJHOWhkRTVoVGlJc0lDSjJZV3gxWlNJc0lDSnpkSElpTENBaWMzUnlhVzVuYVdaNVRuVnRZbVZ5SWl3Z0ltWnNiMkYwUlhod0lpd2dJbTV2WkdVaUxDQWliblZ0SWl3Z0ltWnNiMkYwSWl3Z0lsTmpZV3hoY2lJc0lDSmtiM1FpTENBaWFXNTBTV1JsYm5ScFpua2lMQ0FpZG1Gc2RXVWlMQ0FpYVc1MFVtVnpiMngyWlNJc0lDSnpkSElpTENBaWIyWm1jMlYwSWl3Z0luSmhaR2w0SWl3Z0ltbHVkRUZ6UW1sblNXNTBJaXdnSW1sdWRGTjBjbWx1WjJsbWVTSXNJQ0p1YjJSbElpd2dJbkJ5WldacGVDSXNJQ0p6ZEhKcGJtZHBabmxPZFcxaVpYSWlMQ0FpYVc1MFQyTjBJaXdnSWw5dmJrVnljbTl5SWl3Z0ltOXdkQ0lzSUNKcGJuUWlMQ0FpYVc1MFNHVjRJaXdnSW5OamFHVnRZU0lzSUNKdFlYQWlMQ0FpYzJWeElpd2dJbk4wY21sdVp5SXNJQ0p1ZFd4c1ZHRm5JaXdnSW1KdmIyeFVZV2NpTENBaWFXNTBUMk4wSWl3Z0ltbHVkQ0lzSUNKcGJuUklaWGdpTENBaVpteHZZWFJPWVU0aUxDQWlabXh2WVhSRmVIQWlMQ0FpWm14dllYUWlMQ0FpYVc1MFNXUmxiblJwWm5raUxDQWlkbUZzZFdVaUxDQWljM1J5YVc1bmFXWjVTbE5QVGlJc0lDSnFjMjl1VTJOaGJHRnljeUlzSUNKemRISWlMQ0FpVTJOaGJHRnlJaXdnSWw5dmJrVnljbTl5SWl3Z0ltbHVkRUZ6UW1sblNXNTBJaXdnSW1wemIyNUZjbkp2Y2lJc0lDSnZia1Z5Y205eUlpd2dJbk5qYUdWdFlTSXNJQ0p0WVhBaUxDQWljMlZ4SWl3Z0ltSnBibUZ5ZVNJc0lDSjJZV3gxWlNJc0lDSnpjbU1pTENBaWIyNUZjbkp2Y2lJc0lDSnpkSElpTENBaVluVm1abVZ5SWl3Z0lta2lMQ0FpWTI5dGJXVnVkQ0lzSUNKMGVYQmxJaXdnSW1OMGVDSXNJQ0p2YmtOdmJXMWxiblFpTENBaWIyNURhRzl0Y0V0bFpYQWlMQ0FpWW5WbUlpd2dJbk1pTENBaVUyTmhiR0Z5SWl3Z0lteHBibVZYYVdSMGFDSXNJQ0p1SWl3Z0lteHBibVZ6SWl3Z0ltOGlMQ0FpYzNSeWFXNW5hV1o1VTNSeWFXNW5JaXdnSW5KbGMyOXNkbVZRWVdseWN5SXNJQ0p6WlhFaUxDQWliMjVGY25KdmNpSXNJQ0pmWVNJc0lDSnBjMU5sY1NJc0lDSnBJaXdnSW1sMFpXMGlMQ0FpYVhOUVlXbHlJaXdnSW1selRXRndJaXdnSW5CaGFYSWlMQ0FpVUdGcGNpSXNJQ0pUWTJGc1lYSWlMQ0FpWTI0aUxDQWlZM0psWVhSbFVHRnBjbk1pTENBaWMyTm9aVzFoSWl3Z0ltbDBaWEpoWW14bElpd2dJbU4wZUNJc0lDSnlaWEJzWVdObGNpSXNJQ0p3WVdseWN5SXNJQ0paUVUxTVUyVnhJaXdnSW1sMElpd2dJbXRsZVNJc0lDSjJZV3gxWlNJc0lDSnJaWGx6SWl3Z0ltTnlaV0YwWlZCaGFYSWlMQ0FpV1VGTlRFOU5ZWEFpTENBaVgxbEJUVXhQVFdGd0lpd2dJbGxCVFV4VFpYRWlMQ0FpV1VGTlRFMWhjQ0lzSUNKZklpd2dJbU4wZUNJc0lDSnRZWEFpTENBaWNHRnBjaUlzSUNKclpYa2lMQ0FpZG1Gc2RXVWlMQ0FpYVhOUVlXbHlJaXdnSW5SdlNsTWlMQ0FpYzJOb1pXMWhJaXdnSW1sMFpYSmhZbXhsSWl3Z0luQmhhWEp6SWl3Z0ltTnlaV0YwWlZCaGFYSnpJaXdnSW05dFlYQWlMQ0FpYzJWeElpd2dJbTl1UlhKeWIzSWlMQ0FpY21WemIyeDJaVkJoYVhKeklpd2dJbk5sWlc1TFpYbHpJaXdnSW1selUyTmhiR0Z5SWl3Z0ltSnZiMnhUZEhKcGJtZHBabmtpTENBaWRtRnNkV1VpTENBaWMyOTFjbU5sSWl3Z0ltTjBlQ0lzSUNKMGNuVmxWR0ZuSWl3Z0ltWmhiSE5sVkdGbklpd2dJbE5qWVd4aGNpSXNJQ0ptYkc5aGRFNWhUaUlzSUNKMllXeDFaU0lzSUNKemRISWlMQ0FpYzNSeWFXNW5hV1o1VG5WdFltVnlJaXdnSW1ac2IyRjBSWGh3SWl3Z0ltNXZaR1VpTENBaWJuVnRJaXdnSW1ac2IyRjBJaXdnSWxOallXeGhjaUlzSUNKa2IzUWlMQ0FpWmlJc0lDSnBiblJKWkdWdWRHbG1lU0lzSUNKMllXeDFaU0lzSUNKcGJuUlNaWE52YkhabElpd2dJbk4wY2lJc0lDSnZabVp6WlhRaUxDQWljbUZrYVhnaUxDQWlhVzUwUVhOQ2FXZEpiblFpTENBaWMybG5iaUlzSUNKdUlpd2dJbWx1ZEZOMGNtbHVaMmxtZVNJc0lDSnViMlJsSWl3Z0luQnlaV1pwZUNJc0lDSnpkSEpwYm1kcFpubE9kVzFpWlhJaUxDQWlhVzUwUW1sdUlpd2dJbDl2YmtWeWNtOXlJaXdnSW05d2RDSXNJQ0pwYm5SUFkzUWlMQ0FpYVc1MElpd2dJbWx1ZEVobGVDSXNJQ0paUVUxTVUyVjBJaXdnSWw5WlFVMU1VMlYwSWl3Z0lsbEJUVXhOWVhBaUxDQWljMk5vWlcxaElpd2dJbXRsZVNJc0lDSndZV2x5SWl3Z0ltbHpVR0ZwY2lJc0lDSlFZV2x5SWl3Z0ltWnBibVJRWVdseUlpd2dJbXRsWlhCUVlXbHlJaXdnSW1selUyTmhiR0Z5SWl3Z0luWmhiSFZsSWl3Z0luQnlaWFlpTENBaVh5SXNJQ0pqZEhnaUxDQWliMjVEYjIxdFpXNTBJaXdnSW05dVEyaHZiWEJMWldWd0lpd2dJbWwwWlhKaFlteGxJaXdnSW5KbGNHeGhZMlZ5SWl3Z0luTmxkQ0lzSUNKamNtVmhkR1ZRWVdseUlpd2dJbTFoY0NJc0lDSnZia1Z5Y205eUlpd2dJbWx6VFdGd0lpd2dJbkJoY25ObFUyVjRZV2RsYzJsdFlXd2lMQ0FpYzNSeUlpd2dJbUZ6UW1sblNXNTBJaXdnSW5OcFoyNGlMQ0FpY0dGeWRITWlMQ0FpYm5WdElpd2dJbTRpTENBaWNtVnpJaXdnSW5BaUxDQWljM1J5YVc1bmFXWjVVMlY0WVdkbGMybHRZV3dpTENBaWJtOWtaU0lzSUNKMllXeDFaU0lzSUNKemRISnBibWRwWm5sT2RXMWlaWElpTENBaVh6WXdJaXdnSW1sdWRGUnBiV1VpTENBaVgyOXVSWEp5YjNJaUxDQWlhVzUwUVhOQ2FXZEpiblFpTENBaVpteHZZWFJVYVcxbElpd2dJblJwYldWemRHRnRjQ0lzSUNKdFlYUmphQ0lzSUNKNVpXRnlJaXdnSW0xdmJuUm9JaXdnSW1SaGVTSXNJQ0pvYjNWeUlpd2dJbTFwYm5WMFpTSXNJQ0p6WldOdmJtUWlMQ0FpYldsc2JHbHpaV01pTENBaVpHRjBaU0lzSUNKMGVpSXNJQ0p6WTJobGJXRWlMQ0FpYldGd0lpd2dJbk5sY1NJc0lDSnpkSEpwYm1jaUxDQWliblZzYkZSaFp5SXNJQ0owY25WbFZHRm5JaXdnSW1aaGJITmxWR0ZuSWl3Z0ltbHVkRUpwYmlJc0lDSnBiblJQWTNRaUxDQWlhVzUwSWl3Z0ltbHVkRWhsZUNJc0lDSm1iRzloZEU1aFRpSXNJQ0ptYkc5aGRFVjRjQ0lzSUNKbWJHOWhkQ0lzSUNKaWFXNWhjbmtpTENBaWJXVnlaMlVpTENBaWIyMWhjQ0lzSUNKd1lXbHljeUlzSUNKelpYUWlMQ0FpYVc1MFZHbHRaU0lzSUNKbWJHOWhkRlJwYldVaUxDQWlkR2x0WlhOMFlXMXdJaXdnSW5OamFHVnRZWE1pTENBaWMyTm9aVzFoSWl3Z0ltMWhjQ0lzSUNKelpYRWlMQ0FpYzNSeWFXNW5JaXdnSW5SaFozTkNlVTVoYldVaUxDQWlZbWx1WVhKNUlpd2dJbUp2YjJ4VVlXY2lMQ0FpWm14dllYUWlMQ0FpWm14dllYUkZlSEFpTENBaVpteHZZWFJPWVU0aUxDQWlabXh2WVhSVWFXMWxJaXdnSW1sdWRDSXNJQ0pwYm5SSVpYZ2lMQ0FpYVc1MFQyTjBJaXdnSW1sdWRGUnBiV1VpTENBaWJXVnlaMlVpTENBaWJuVnNiRlJoWnlJc0lDSnZiV0Z3SWl3Z0luQmhhWEp6SWl3Z0luTmxkQ0lzSUNKMGFXMWxjM1JoYlhBaUxDQWlZMjl5WlV0dWIzZHVWR0ZuY3lJc0lDSm5aWFJVWVdkeklpd2dJbU4xYzNSdmJWUmhaM01pTENBaWMyTm9aVzFoVG1GdFpTSXNJQ0poWkdSTlpYSm5aVlJoWnlJc0lDSnpZMmhsYldGVVlXZHpJaXdnSW5SaFozTWlMQ0FpYTJWNWN5SXNJQ0pyWlhraUxDQWlkR0ZuSWl3Z0luUmhaMDlpYWlJc0lDSjBZV2RPWVcxbElpd2dJbk52Y25STllYQkZiblJ5YVdWelFubExaWGtpTENBaVlTSXNJQ0ppSWl3Z0lsTmphR1Z0WVNJc0lDSmZVMk5vWlcxaElpd2dJbU52YlhCaGRDSXNJQ0pqZFhOMGIyMVVZV2R6SWl3Z0ltMWxjbWRsSWl3Z0luSmxjMjlzZG1WTGJtOTNibFJoWjNNaUxDQWljMk5vWlcxaElpd2dJbk52Y25STllYQkZiblJ5YVdWeklpd2dJblJ2VTNSeWFXNW5SR1ZtWVhWc2RITWlMQ0FpWjJWMFZHRm5jeUlzSUNKamIzSmxTMjV2ZDI1VVlXZHpJaXdnSWsxQlVDSXNJQ0p0WVhBaUxDQWlVME5CVEVGU0lpd2dJbk4wY21sdVp5SXNJQ0pUUlZFaUxDQWljMlZ4SWl3Z0ltTnZjSGtpTENBaWMzUnlhVzVuYVdaNVJHOWpkVzFsYm5RaUxDQWlaRzlqSWl3Z0ltOXdkR2x2Ym5NaUxDQWlYMkVpTENBaWJHbHVaWE1pTENBaWFHRnpSR2x5WldOMGFYWmxjeUlzSUNKa2FYSWlMQ0FpWTNSNElpd2dJbU55WldGMFpWTjBjbWx1WjJsbWVVTnZiblJsZUhRaUxDQWlZMjl0YldWdWRGTjBjbWx1WnlJc0lDSmpjeUlzSUNKcGJtUmxiblJEYjIxdFpXNTBJaXdnSW1Ob2IyMXdTMlZsY0NJc0lDSmpiMjUwWlc1MFEyOXRiV1Z1ZENJc0lDSnBjMDV2WkdVaUxDQWliMjVEYUc5dGNFdGxaWEFpTENBaVltOWtlU0lzSUNKemRISnBibWRwWm5raUxDQWliR2x1WlVOdmJXMWxiblFpTENBaVpHTWlMQ0FpUkc5amRXMWxiblFpTENBaVgwUnZZM1Z0Wlc1MElpd2dJblpoYkhWbElpd2dJbkpsY0d4aFkyVnlJaXdnSW05d2RHbHZibk1pTENBaVRrOUVSVjlVV1ZCRklpd2dJa1JQUXlJc0lDSmZjbVZ3YkdGalpYSWlMQ0FpYjNCMElpd2dJblpsY25OcGIyNGlMQ0FpUkdseVpXTjBhWFpsY3lJc0lDSmpiM0I1SWl3Z0ltbHpUbTlrWlNJc0lDSmhjM05sY25SRGIyeHNaV04wYVc5dUlpd2dJbkJoZEdnaUxDQWlibTlrWlNJc0lDSnVZVzFsSWl3Z0luQnlaWFlpTENBaVlXNWphRzl5VG1GdFpYTWlMQ0FpWm1sdVpFNWxkMEZ1WTJodmNpSXNJQ0pCYkdsaGN5SXNJQ0pyWlhsVWIxTjBjaUlzSUNKMklpd2dJbUZ6VTNSeUlpd2dJbUZzYVdGelJIVndiR2xqWVhSbFQySnFaV04wY3lJc0lDSmhibU5vYjNKUWNtVm1hWGdpTENBaVpteHZkeUlzSUNKclpXVndWVzVrWldacGJtVmtJaXdnSW05dVZHRm5UMkpxSWl3Z0luUmhaeUlzSUNKdmJrRnVZMmh2Y2lJc0lDSnpaWFJCYm1Ob2IzSnpJaXdnSW5OdmRYSmpaVTlpYW1WamRITWlMQ0FpWTNKbFlYUmxUbTlrWlVGdVkyaHZjbk1pTENBaVkzUjRJaXdnSW1OeVpXRjBaVTV2WkdVaUxDQWlhWE5EYjJ4c1pXTjBhVzl1SWl3Z0ltdGxlU0lzSUNKcklpd2dJbEJoYVhJaUxDQWlhWE5GYlhCMGVWQmhkR2dpTENBaWEyVmxjRk5qWVd4aGNpSXNJQ0pwYzFOallXeGhjaUlzSUNKamIyeHNaV04wYVc5dVJuSnZiVkJoZEdnaUxDQWljM1lpTENBaVUyTm9aVzFoSWl3Z0ltcHpiMjRpTENBaWFuTnZia0Z5WnlJc0lDSnRZWEJCYzAxaGNDSXNJQ0p0WVhoQmJHbGhjME52ZFc1MElpd2dJbkpsZG1sMlpYSWlMQ0FpY21Weklpd2dJblJ2U2xNaUxDQWlZMjkxYm5RaUxDQWlZWEJ3YkhsU1pYWnBkbVZ5SWl3Z0luTWlMQ0FpYzNSeWFXNW5hV1o1Ukc5amRXMWxiblFpTENBaVkyOXVkR1Z1ZEhNaUxDQWlXVUZOVEVWeWNtOXlJaXdnSW01aGJXVWlMQ0FpY0c5eklpd2dJbU52WkdVaUxDQWliV1Z6YzJGblpTSXNJQ0paUVUxTVVHRnljMlZGY25KdmNpSXNJQ0paUVUxTVYyRnlibWx1WnlJc0lDSndjbVYwZEdsbWVVVnljbTl5SWl3Z0luTnlZeUlzSUNKc1l5SXNJQ0psY25KdmNpSXNJQ0pzYVc1bElpd2dJbU52YkNJc0lDSmphU0lzSUNKc2FXNWxVM1J5SWl3Z0luUnlhVzFUZEdGeWRDSXNJQ0p3Y21WMklpd2dJbU52ZFc1MElpd2dJbVZ1WkNJc0lDSndiMmx1ZEdWeUlpd2dJbkpsYzI5c2RtVlFjbTl3Y3lJc0lDSjBiMnRsYm5NaUxDQWlabXh2ZHlJc0lDSnBibVJwWTJGMGIzSWlMQ0FpYm1WNGRDSXNJQ0p2Wm1aelpYUWlMQ0FpYjI1RmNuSnZjaUlzSUNKd1lYSmxiblJKYm1SbGJuUWlMQ0FpYzNSaGNuUlBiazVsZDJ4cGJtVWlMQ0FpYzNCaFkyVkNaV1p2Y21VaUxDQWlZWFJPWlhkc2FXNWxJaXdnSW1oaGMxTndZV05sSWl3Z0ltTnZiVzFsYm5RaUxDQWlZMjl0YldWdWRGTmxjQ0lzSUNKb1lYTk9aWGRzYVc1bElpd2dJbkpsY1ZOd1lXTmxJaXdnSW5SaFlpSXNJQ0poYm1Ob2IzSWlMQ0FpZEdGbklpd2dJbTVsZDJ4cGJtVkJablJsY2xCeWIzQWlMQ0FpWTI5dGJXRWlMQ0FpWm05MWJtUWlMQ0FpYzNSaGNuUWlMQ0FpZEc5clpXNGlMQ0FpWTJJaUxDQWliR0Z6ZENJc0lDSmxibVFpTENBaVkyOXVkR0ZwYm5OT1pYZHNhVzVsSWl3Z0ltdGxlU0lzSUNKemRDSXNJQ0pwZENJc0lDSm1iRzkzU1c1a1pXNTBRMmhsWTJzaUxDQWlhVzVrWlc1MElpd2dJbVpqSWl3Z0ltOXVSWEp5YjNJaUxDQWlaVzVrSWl3Z0ltTnZiblJoYVc1elRtVjNiR2x1WlNJc0lDSnRZWEJKYm1Oc2RXUmxjeUlzSUNKamRIZ2lMQ0FpYVhSbGJYTWlMQ0FpYzJWaGNtTm9JaXdnSW5WdWFYRjFaVXRsZVhNaUxDQWlhWE5GY1hWaGJDSXNJQ0poSWl3Z0ltSWlMQ0FpYVhOVFkyRnNZWElpTENBaWNHRnBjaUlzSUNKemRHRnlkRU52YkUxelp5SXNJQ0p5WlhOdmJIWmxRbXh2WTJ0TllYQWlMQ0FpWTI5dGNHOXpaVTV2WkdVaUxDQWlZMjl0Y0c5elpVVnRjSFI1VG05a1pTSXNJQ0pqZEhnaUxDQWlZbTBpTENBaWIyNUZjbkp2Y2lJc0lDSjBZV2NpTENBaVgyRWlMQ0FpWDJJaUxDQWlUbTlrWlVOc1lYTnpJaXdnSWxsQlRVeE5ZWEFpTENBaWJXRndJaXdnSW05bVpuTmxkQ0lzSUNKamIyMXRaVzUwUlc1a0lpd2dJbU52Ykd4SmRHVnRJaXdnSW5OMFlYSjBJaXdnSW10bGVTSXNJQ0p6WlhBaUxDQWlkbUZzZFdVaUxDQWlhMlY1VUhKdmNITWlMQ0FpY21WemIyeDJaVkJ5YjNCeklpd2dJbWx0Y0d4cFkybDBTMlY1SWl3Z0ltTnZiblJoYVc1elRtVjNiR2x1WlNJc0lDSnJaWGxUZEdGeWRDSXNJQ0pyWlhsT2IyUmxJaXdnSW1ac2IzZEpibVJsYm5SRGFHVmpheUlzSUNKdFlYQkpibU5zZFdSbGN5SXNJQ0oyWVd4MVpWQnliM0J6SWl3Z0luWmhiSFZsVG05a1pTSXNJQ0p3WVdseUlpd2dJbEJoYVhJaUxDQWljbVZ6YjJ4MlpVSnNiMk5yVTJWeElpd2dJbU52YlhCdmMyVk9iMlJsSWl3Z0ltTnZiWEJ2YzJWRmJYQjBlVTV2WkdVaUxDQWlZM1I0SWl3Z0ltSnpJaXdnSW05dVJYSnliM0lpTENBaWRHRm5JaXdnSWw5aElpd2dJazV2WkdWRGJHRnpjeUlzSUNKWlFVMU1VMlZ4SWl3Z0luTmxjU0lzSUNKdlptWnpaWFFpTENBaVkyOXRiV1Z1ZEVWdVpDSXNJQ0p6ZEdGeWRDSXNJQ0oyWVd4MVpTSXNJQ0p3Y205d2N5SXNJQ0p5WlhOdmJIWmxVSEp2Y0hNaUxDQWlibTlrWlNJc0lDSm1iRzkzU1c1a1pXNTBRMmhsWTJzaUxDQWljbVZ6YjJ4MlpVVnVaQ0lzSUNKbGJtUWlMQ0FpYjJabWMyVjBJaXdnSW5KbGNWTndZV05sSWl3Z0ltOXVSWEp5YjNJaUxDQWlZMjl0YldWdWRDSXNJQ0pvWVhOVGNHRmpaU0lzSUNKelpYQWlMQ0FpZEc5clpXNGlMQ0FpYzI5MWNtTmxJaXdnSW5SNWNHVWlMQ0FpWTJJaUxDQWlZbXh2WTJ0TmMyY2lMQ0FpYVhOQ2JHOWpheUlzSUNKMGIydGxiaUlzSUNKeVpYTnZiSFpsUm14dmQwTnZiR3hsWTNScGIyNGlMQ0FpWTI5dGNHOXpaVTV2WkdVaUxDQWlZMjl0Y0c5elpVVnRjSFI1VG05a1pTSXNJQ0pqZEhnaUxDQWlabU1pTENBaWIyNUZjbkp2Y2lJc0lDSjBZV2NpTENBaVgyRWlMQ0FpWDJJaUxDQWlhWE5OWVhBaUxDQWlabU5PWVcxbElpd2dJazV2WkdWRGJHRnpjeUlzSUNKWlFVMU1UV0Z3SWl3Z0lsbEJUVXhUWlhFaUxDQWlZMjlzYkNJc0lDSmhkRkp2YjNRaUxDQWliMlptYzJWMElpd2dJbWtpTENBaVkyOXNiRWwwWlcwaUxDQWljM1JoY25RaUxDQWlhMlY1SWl3Z0luTmxjQ0lzSUNKMllXeDFaU0lzSUNKd2NtOXdjeUlzSUNKeVpYTnZiSFpsVUhKdmNITWlMQ0FpWTI5dWRHRnBibk5PWlhkc2FXNWxJaXdnSW5CeVpYWkpkR1Z0UTI5dGJXVnVkQ0lzSUNKc2IyOXdJaXdnSW5OMElpd2dJbkJ5WlhZaUxDQWlhWE5RWVdseUlpd2dJblpoYkhWbFRtOWtaU0lzSUNKclpYbFRkR0Z5ZENJc0lDSnJaWGxPYjJSbElpd2dJblpoYkhWbFVISnZjSE1pTENBaWNHRnBjaUlzSUNKUVlXbHlJaXdnSW0xaGNDSXNJQ0p0WVhCSmJtTnNkV1JsY3lJc0lDSmxibVJTWVc1blpTSXNJQ0psZUhCbFkzUmxaRVZ1WkNJc0lDSmpaU0lzSUNKbFpTSXNJQ0pqWlZCdmN5SXNJQ0p1WVcxbElpd2dJbTF6WnlJc0lDSmxibVFpTENBaWNtVnpiMngyWlVWdVpDSXNJQ0p5WlhOdmJIWmxRMjlzYkdWamRHbHZiaUlzSUNKRFRpSXNJQ0pqZEhnaUxDQWlkRzlyWlc0aUxDQWliMjVGY25KdmNpSXNJQ0owWVdkT1lXMWxJaXdnSW5SaFp5SXNJQ0pqYjJ4c0lpd2dJbkpsYzI5c2RtVkNiRzlqYTAxaGNDSXNJQ0p5WlhOdmJIWmxRbXh2WTJ0VFpYRWlMQ0FpY21WemIyeDJaVVpzYjNkRGIyeHNaV04wYVc5dUlpd2dJa052Ykd3aUxDQWlZMjl0Y0c5elpVTnZiR3hsWTNScGIyNGlMQ0FpY0hKdmNITWlMQ0FpWDJFaUxDQWlYMklpTENBaWRHRm5WRzlyWlc0aUxDQWliWE5uSWl3Z0ltRnVZMmh2Y2lJc0lDSnViQ0lzSUNKc1lYTjBVSEp2Y0NJc0lDSmxlSEJVZVhCbElpd2dJbGxCVFV4TllYQWlMQ0FpV1VGTlRGTmxjU0lzSUNKMElpd2dJbXQwSWl3Z0luSmxjeUlzSUNKdWIyUmxJaXdnSW1selRtOWtaU0lzSUNKVFkyRnNZWElpTENBaWNtVnpiMngyWlVKc2IyTnJVMk5oYkdGeUlpd2dJbU4wZUNJc0lDSnpZMkZzWVhJaUxDQWliMjVGY25KdmNpSXNJQ0p6ZEdGeWRDSXNJQ0pvWldGa1pYSWlMQ0FpY0dGeWMyVkNiRzlqYTFOallXeGhja2hsWVdSbGNpSXNJQ0owZVhCbElpd2dJbE5qWVd4aGNpSXNJQ0pzYVc1bGN5SXNJQ0p6Y0d4cGRFeHBibVZ6SWl3Z0ltTm9iMjF3VTNSaGNuUWlMQ0FpYVNJc0lDSmpiMjUwWlc1MElpd2dJblpoYkhWbElpd2dJbVZ1WkNJc0lDSjBjbWx0U1c1a1pXNTBJaXdnSW05bVpuTmxkQ0lzSUNKamIyNTBaVzUwVTNSaGNuUWlMQ0FpYVc1a1pXNTBJaXdnSW5ObGNDSXNJQ0p3Y21WMlRXOXlaVWx1WkdWdWRHVmtJaXdnSW1OeWJHWWlMQ0FpYldWemMyRm5aU0lzSUNKd2NtOXdjeUlzSUNKemRISnBZM1FpTENBaWMyOTFjbU5sSWl3Z0ltMXZaR1VpTENBaVkyaHZiWEFpTENBaVpYSnliM0lpTENBaVkyZ2lMQ0FpYmlJc0lDSm9ZWE5UY0dGalpTSXNJQ0pqYjIxdFpXNTBJaXdnSW14bGJtZDBhQ0lzSUNKMGIydGxiaUlzSUNKMGN5SXNJQ0p6Y0d4cGRDSXNJQ0ptYVhKemRDSXNJQ0p0SWl3Z0luSmxjMjlzZG1WR2JHOTNVMk5oYkdGeUlpd2dJbk5qWVd4aGNpSXNJQ0p6ZEhKcFkzUWlMQ0FpYjI1RmNuSnZjaUlzSUNKdlptWnpaWFFpTENBaWRIbHdaU0lzSUNKemIzVnlZMlVpTENBaVpXNWtJaXdnSWw5MGVYQmxJaXdnSW5aaGJIVmxJaXdnSWw5dmJrVnljbTl5SWl3Z0luSmxiQ0lzSUNKamIyUmxJaXdnSW0xelp5SXNJQ0pUWTJGc1lYSWlMQ0FpY0d4aGFXNVdZV3gxWlNJc0lDSnphVzVuYkdWUmRXOTBaV1JXWVd4MVpTSXNJQ0prYjNWaWJHVlJkVzkwWldSV1lXeDFaU0lzSUNKMllXeDFaVVZ1WkNJc0lDSnlaU0lzSUNKeVpYTnZiSFpsUlc1a0lpd2dJbUpoWkVOb1lYSWlMQ0FpWm05c1pFeHBibVZ6SWl3Z0lsOWhJaXdnSW1acGNuTjBJaXdnSW14cGJtVWlMQ0FpWlNJc0lDSnRZWFJqYUNJc0lDSnlaWE1pTENBaWMyVndJaXdnSW5CdmN5SXNJQ0pzWVhOMElpd2dJbWtpTENBaVkyZ2lMQ0FpWm05c1pDSXNJQ0ptYjJ4a1RtVjNiR2x1WlNJc0lDSnVaWGgwSWl3Z0ltTmpJaXdnSW1WelkyRndaVU52WkdWeklpd2dJbXhsYm1kMGFDSXNJQ0p3WVhKelpVTm9ZWEpEYjJSbElpd2dJbkpoZHlJc0lDSjNjMU4wWVhKMElpd2dJbU52YlhCdmMyVlRZMkZzWVhJaUxDQWlZM1I0SWl3Z0luUnZhMlZ1SWl3Z0luUmhaMVJ2YTJWdUlpd2dJbTl1UlhKeWIzSWlMQ0FpZG1Gc2RXVWlMQ0FpZEhsd1pTSXNJQ0pqYjIxdFpXNTBJaXdnSW5KaGJtZGxJaXdnSW5KbGMyOXNkbVZDYkc5amExTmpZV3hoY2lJc0lDSnlaWE52YkhabFJteHZkMU5qWVd4aGNpSXNJQ0owWVdkT1lXMWxJaXdnSW0xelp5SXNJQ0owWVdjaUxDQWlVME5CVEVGU0lpd2dJbVpwYm1SVFkyRnNZWEpVWVdkQ2VVNWhiV1VpTENBaVptbHVaRk5qWVd4aGNsUmhaMEo1VkdWemRDSXNJQ0p6WTJGc1lYSWlMQ0FpY21Weklpd2dJbWx6VTJOaGJHRnlJaXdnSWxOallXeGhjaUlzSUNKbGNuSnZjaUlzSUNKelkyaGxiV0VpTENBaVgyRWlMQ0FpYldGMFkyaFhhWFJvVkdWemRDSXNJQ0pyZENJc0lDSmhkRXRsZVNJc0lDSmthWEpsWTNScGRtVnpJaXdnSW1OdmJYQmhkQ0lzSUNKMGN5SXNJQ0pqY3lJc0lDSmxiWEIwZVZOallXeGhjbEJ2YzJsMGFXOXVJaXdnSW05bVpuTmxkQ0lzSUNKaVpXWnZjbVVpTENBaWNHOXpJaXdnSW1raUxDQWljM1FpTENBaVEwNGlMQ0FpWTI5dGNHOXpaVTV2WkdVaUxDQWlZMjl0Y0c5elpVVnRjSFI1VG05a1pTSXNJQ0pqZEhnaUxDQWlkRzlyWlc0aUxDQWljSEp2Y0hNaUxDQWliMjVGY25KdmNpSXNJQ0poZEV0bGVTSXNJQ0p6Y0dGalpVSmxabTl5WlNJc0lDSmpiMjF0Wlc1MElpd2dJbUZ1WTJodmNpSXNJQ0owWVdjaUxDQWlibTlrWlNJc0lDSnBjMU55WTFSdmEyVnVJaXdnSW1OdmJYQnZjMlZCYkdsaGN5SXNJQ0pqYjIxd2IzTmxVMk5oYkdGeUlpd2dJbU52YlhCdmMyVkRiMnhzWldOMGFXOXVJaXdnSW0xbGMzTmhaMlVpTENBaWFYTlRZMkZzWVhJaUxDQWliMlptYzJWMElpd2dJbUpsWm05eVpTSXNJQ0p3YjNNaUxDQWlaVzVrSWl3Z0ltVnRjSFI1VTJOaGJHRnlVRzl6YVhScGIyNGlMQ0FpYjNCMGFXOXVjeUlzSUNKemIzVnlZMlVpTENBaVlXeHBZWE1pTENBaVFXeHBZWE1pTENBaWRtRnNkV1ZGYm1RaUxDQWljbVVpTENBaWNtVnpiMngyWlVWdVpDSXNJQ0pqYjIxd2IzTmxSRzlqSWl3Z0ltOXdkR2x2Ym5NaUxDQWlaR2x5WldOMGFYWmxjeUlzSUNKdlptWnpaWFFpTENBaWMzUmhjblFpTENBaWRtRnNkV1VpTENBaVpXNWtJaXdnSW05dVJYSnliM0lpTENBaWIzQjBjeUlzSUNKa2IyTWlMQ0FpUkc5amRXMWxiblFpTENBaVkzUjRJaXdnSW5CeWIzQnpJaXdnSW5KbGMyOXNkbVZRY205d2N5SXNJQ0pqYjIxd2IzTmxUbTlrWlNJc0lDSmpiMjF3YjNObFJXMXdkSGxPYjJSbElpd2dJbU52Ym5SbGJuUkZibVFpTENBaWNtVWlMQ0FpY21WemIyeDJaVVZ1WkNJc0lDSm5aWFJGY25KdmNsQnZjeUlzSUNKemNtTWlMQ0FpYjJabWMyVjBJaXdnSW5OdmRYSmpaU0lzSUNKd1lYSnpaVkJ5Wld4MVpHVWlMQ0FpY0hKbGJIVmtaU0lzSUNKZllTSXNJQ0pqYjIxdFpXNTBJaXdnSW1GMFEyOXRiV1Z1ZENJc0lDSmhablJsY2tWdGNIUjVUR2x1WlNJc0lDSkRiMjF3YjNObGNpSXNJQ0p2Y0hScGIyNXpJaXdnSW1OdlpHVWlMQ0FpYldWemMyRm5aU0lzSUNKM1lYSnVhVzVuSWl3Z0luQnZjeUlzSUNKWlFVMU1WMkZ5Ym1sdVp5SXNJQ0paUVUxTVVHRnljMlZGY25KdmNpSXNJQ0pFYVhKbFkzUnBkbVZ6SWl3Z0ltUnZZeUlzSUNKaFpuUmxja1J2WXlJc0lDSmtZeUlzSUNKcGMwTnZiR3hsWTNScGIyNGlMQ0FpYVhRaUxDQWlhWE5RWVdseUlpd2dJbU5pSWl3Z0luUnZhMlZ1Y3lJc0lDSm1iM0pqWlVSdll5SXNJQ0psYm1SUFptWnpaWFFpTENBaWRHOXJaVzRpTENBaVgxOTVhV1ZzWkZOMFlYSWlMQ0FpWTI5dGNHOXpaVVJ2WXlJc0lDSnRjMmNpTENBaVpYSnliM0lpTENBaVpXNWtJaXdnSW5KbGMyOXNkbVZGYm1RaUxDQWliM0IwY3lJc0lDSkViMk4xYldWdWRDSXNJQ0pDVWtWQlN5SXNJQ0pUUzBsUUlpd2dJbEpGVFU5V1JTSXNJQ0oyYVhOcGRDSXNJQ0pqYzNRaUxDQWlkbWx6YVhSdmNpSXNJQ0pmZG1semFYUWlMQ0FpY0dGMGFDSXNJQ0pwZEdWdElpd2dJbVpwWld4a0lpd2dJbWx1WkdWNElpd2dJblJ2YXlJc0lDSndZWEpsYm5RaUxDQWlZMjlzYkNJc0lDSmpkSEpzSWl3Z0luUnZhMlZ1SWl3Z0lta2lMQ0FpWTJraUxDQWlRazlOSWl3Z0lrUlBRMVZOUlU1VUlpd2dJa1pNVDFkZlJVNUVJaXdnSWxORFFVeEJVaUlzSUNKMGIydGxibFI1Y0dVaUxDQWljMjkxY21ObElpd2dJa0pQVFNJc0lDSkVUME5WVFVWT1ZDSXNJQ0pHVEU5WFgwVk9SQ0lzSUNKVFEwRk1RVklpTENBaWFYTkZiWEIwZVNJc0lDSmphQ0lzSUNKb1pYaEVhV2RwZEhNaUxDQWlkR0ZuUTJoaGNuTWlMQ0FpWm14dmQwbHVaR2xqWVhSdmNrTm9ZWEp6SWl3Z0ltbHVkbUZzYVdSQmJtTm9iM0pEYUdGeWN5SXNJQ0pwYzA1dmRFRnVZMmh2Y2tOb1lYSWlMQ0FpVEdWNFpYSWlMQ0FpYzI5MWNtTmxJaXdnSW1sdVkyOXRjR3hsZEdVaUxDQWlYMkVpTENBaWJtVjRkQ0lzSUNKZlgzbHBaV3hrVTNSaGNpSXNJQ0pwSWl3Z0ltNGlMQ0FpYjJabWMyVjBJaXdnSW1sdVpHVnVkQ0lzSUNKa2RDSXNJQ0psYm1RaUxDQWljM1JoZEdVaUxDQWliR2x1WlNJc0lDSkNUMDBpTENBaVpHbHlSVzVrSWl3Z0ltTnpJaXdnSW5Od0lpd2dJa1JQUTFWTlJVNVVJaXdnSW5NaUxDQWlZMmd3SWl3Z0ltTm9NU0lzSUNKdWJDSXNJQ0pHVEU5WFgwVk9SQ0lzSUNKeGRXOTBaU0lzSUNKeFlpSXNJQ0pzYjI5d0lpd2dJbXhoYzNSRGFHRnlJaXdnSWxORFFVeEJVaUlzSUNKcGJrWnNiM2NpTENBaVlXeHNiM2RGYlhCMGVTSXNJQ0poYkd4dmQxUmhZbk1pTENBaWRHVnpkQ0lzSUNKTWFXNWxRMjkxYm5SbGNpSXNJQ0p2Wm1aelpYUWlMQ0FpYkc5M0lpd2dJbWhwWjJnaUxDQWliV2xrSWl3Z0luTjBZWEowSWl3Z0ltbHVZMngxWkdWelZHOXJaVzRpTENBaWJHbHpkQ0lzSUNKMGVYQmxJaXdnSW1raUxDQWlabWx1WkU1dmJrVnRjSFI1U1c1a1pYZ2lMQ0FpYVhOR2JHOTNWRzlyWlc0aUxDQWlkRzlyWlc0aUxDQWlaMlYwVUhKbGRsQnliM0J6SWl3Z0luQmhjbVZ1ZENJc0lDSmZZU0lzSUNKcGRDSXNJQ0puWlhSR2FYSnpkRXRsZVZOMFlYSjBVSEp2Y0hNaUxDQWljSEpsZGlJc0lDSnNiMjl3SWl3Z0ltWnBlRVpzYjNkVFpYRkpkR1Z0Y3lJc0lDSm1ZeUlzSUNKUVlYSnpaWElpTENBaWIyNU9aWGRNYVc1bElpd2dJa3hsZUdWeUlpd2dJbk52ZFhKalpTSXNJQ0pwYm1OdmJYQnNaWFJsSWl3Z0lteGxlR1Z0WlNJc0lDSmZYM2xwWld4a1UzUmhjaUlzSUNKMGIydGxibFI1Y0dVaUxDQWliV1Z6YzJGblpTSXNJQ0owYjNBaUxDQWliaUlzSUNKbGNuSnZjaUlzSUNKc1lYTjBJaXdnSW5OMElpd2dJbVJ2WXlJc0lDSmlkaUlzSUNKelkyRnNZWElpTENBaWMzUmhjblFpTENBaWMyVndJaXdnSW0xaGNDSXNJQ0p1YkNJc0lDSmxibVFpTENBaVlYUk5ZWEJKYm1SbGJuUWlMQ0FpWVhST1pYaDBTWFJsYlNJc0lDSnJaWGtpTENBaVpuTWlMQ0FpYzJWeElpd2dJbWx1WkdWdWRDSXNJQ0prYjJORmJtUWlMQ0FpY0dGeWMyVlBjSFJwYjI1eklpd2dJbTl3ZEdsdmJuTWlMQ0FpY0hKbGRIUjVSWEp5YjNKeklpd2dJa3hwYm1WRGIzVnVkR1Z5SWl3Z0luQmhjbk5sUkc5amRXMWxiblFpTENBaWMyOTFjbU5sSWl3Z0ltOXdkR2x2Ym5NaUxDQWliR2x1WlVOdmRXNTBaWElpTENBaWNISmxkSFI1UlhKeWIzSnpJaXdnSW5CaGNuTmxUM0IwYVc5dWN5SXNJQ0p3WVhKelpYSWlMQ0FpVUdGeWMyVnlJaXdnSW1OdmJYQnZjMlZ5SWl3Z0lrTnZiWEJ2YzJWeUlpd2dJbVJ2WXlJc0lDSmZaRzlqSWl3Z0lsbEJUVXhRWVhKelpVVnljbTl5SWl3Z0luQnlaWFIwYVdaNVJYSnliM0lpTENBaWNHRnljMlVpTENBaWMzSmpJaXdnSW5KbGRtbDJaWElpTENBaVgzSmxkbWwyWlhJaUxDQWlkMkZ5Ym1sdVp5SXNJQ0ozWVhKdUlpd2dJbWx0Y0c5eWRGOXpiM0owWldSZlluUnlaV1VpTENBaVVDSXNJQ0pNYVhSbGNtRnNjeUlzSUNKMGIxTjBjbWx1WnlJc0lDSm1hV1ZzWkNJc0lDSnpaWFIwYVc1bklpd2dJbkpsWTNWeWMybDJaU0lzSUNKM2NtRndjR1ZrSWl3Z0luZHlZWEJXWVd4MVpTSXNJQ0p5WlhOMWJIUWlMQ0FpWmlJc0lDSmxJaXdnSW5KbGJtUmxjazFwYm1sdFlXeEVZWFJsSWl3Z0luSmxibVJsY2sxcGJtbHRZV3hFZFhKaGRHbHZiaUlzSUNKMllXd2lMQ0FpYVhOT2RXeHNJaXdnSW1selRuVnRZbVZ5SWl3Z0ltbHpVM1J5YVc1bklpd2dJbWx6UW05dmJHVmhiaUlzSUNKcGMwUjFjbUYwYVc5dUlpd2dJbWx6UkdGMFpTSXNJQ0pwYzBGeWNtRjVJaXdnSW1selRHbHVheUlzSUNKcGMwWjFibU4wYVc5dUlpd2dJbWx6VDJKcVpXTjBJaXdnSW0xaGNFeGxZWFpsY3lJc0lDSm1kVzVqSWl3Z0ltdGxlU0lzSUNKMllXeDFaU0lzSUNKbGNYVmhiSE1pTENBaVptbHljM1FpTENBaWMyVmpiMjVrSWl3Z0ltTnZiWEJoY21VaUxDQWlkbUZzTVNJc0lDSjJZV3d5SWl3Z0lteHBibXRPYjNKdFlXeHBlbVZ5SWl3Z0lsOWhJaXdnSWw5aUlpd2dJbmR5WVhBeElpd2dJbmR5WVhBeUlpd2dJbXhwYm1zeElpd2dJbXhwYm1zeUlpd2dJbTV2Y20xaGJHbDZaU0lzSUNKNElpd2dJbkJoZEdoRGIyMXdZWEpsSWl3Z0luUjVjR1ZEYjIxd1lYSmxJaXdnSW1ZeElpd2dJbVl5SWl3Z0ltbHVaR1Y0SWl3Z0ltTnZiWEFpTENBaWJ6RWlMQ0FpYnpJaUxDQWlhekVpTENBaWF6SWlMQ0FpYTJWNVEyOXRjR0Z5WlNJc0lDSjBlWEJsVDJZaUxDQWlhWE5VY25WMGFIa2lMQ0FpWkdWbGNFTnZjSGtpTENBaWRpSXNJQ0pFWVhSbFZHbHRaU0lzSUNKRWRYSmhkR2x2YmlJc0lDSk1hVzVySWl3Z0lrZHliM1Z3YVc1bmN5SXNJQ0pwYzBWc1pXMWxiblJIY205MWNDSXNJQ0psYm5SeWVTSXNJQ0pwYzBkeWIzVndhVzVuSWl3Z0ltVnNaVzFsYm5RaUxDQWlhWE5NWldGbUlpd2dJbU52ZFc1MElpd2dJbVZzWlcxbGJuUnpJaXdnSW5OMVltZHliM1Z3SWl3Z0luTnNhV05sSWl3Z0luTjBZWEowSWl3Z0ltVnVaQ0lzSUNKelpXVnVJaXdnSW1keWIzVndJaXdnSW1keWIzVndVMmw2WlNJc0lDSm5jbTkxY0ZOMFlYSjBJaXdnSW1keWIzVndSVzVrSWl3Z0lsTjFZMk5sYzNNaUxDQWlYMU4xWTJObGMzTWlMQ0FpZG1Gc2RXVWlMQ0FpWmlJc0lDSnpkV05qSWl3Z0lsOW1ZV2xzSWl3Z0lsOTJZV3gxWlNJc0lDSmZiV1Z6YzJGblpTSXNJQ0pHWVdsc2RYSmxJaXdnSWw5R1lXbHNkWEpsSWl3Z0ltVnljbTl5SWl3Z0lsOW1JaXdnSWw5emRXTmpJaXdnSW1aaGFXd2lMQ0FpYldWemMyRm5aU0lzSUNKU1pYTjFiSFFpTENBaWMzVmpZMlZ6Y3lJc0lDSm1ZV2xzZFhKbElpd2dJbVpzWVhSTllYQXlJaXdnSW1acGNuTjBJaXdnSW5ObFkyOXVaQ0lzSUNKdFlYQXlJaXdnSW1FaUxDQWlZaUlzSUNKdFlYQkJiR3dpTENBaWFXNXdkWFFpTENBaVpuVnVZeUlzSUNKeVpYTjFiSFFpTENBaVpXeGxiV1Z1ZENJc0lDSnZkWFJ3ZFhRaUxDQWlkSEo1YVc1bklpd2dJbU5oYkd3aUxDQWlZWE41Ym1NaUxDQWljSEp2YldselpTSXNJQ0pHYVd4MFpYSnpJaXdnSW1GMGIyMGlMQ0FpYzJWMElpd2dJbU52Ym5OMFlXNTBJaXdnSW5aaGJIVmxJaXdnSW01MWJHeGhZbXhsUVhSdmJTSXNJQ0p1WldkaGRHVmtJaXdnSW01bFoyRjBaU0lzSUNKbWFXeDBaWElpTENBaVpXMXdkSGtpTENBaWNtVnpiMngyWlNJc0lDSmxkbVZ5ZVhSb2FXNW5JaXdnSW5ObGRFbHVkR1Z5YzJWamRFNWxaMkYwYVc5dUlpd2dJbWx1ZEdWeWMyVmpkQ0lzSUNKbGJHVnRaVzUwY3lJc0lDSnNZWHA1U1c1MFpYSnpaV04wSWl3Z0luZ2lMQ0FpY0hKdlpIVmpaU0lzSUNKc1lYcDVSbUZwYkdGaWJHVkpiblJsY25ObFkzUnBiMjRpTENBaVVtVnpkV3gwSWl3Z0ltRjBiMjF6SWl3Z0ltNWxaMkYwYVc5dWN5SXNJQ0psYkdWdFpXNTBJaXdnSW0xaGVXSmxSbWxzZEdWeUlpd2dJbk5sZEVsdWRHVnljMlZqZENJc0lDSnpaWFJWYm1sdmJpSXNJQ0oxYm1sdmJpSXNJQ0ptYVd4MFpYSnpJaXdnSW14aGVubFZibWx2YmlJc0lDSnNZWHA1Um1GcGJHRmliR1ZWYm1sdmJpSXNJQ0p6WlhSeklpd2dJbk52Y25SbFpDSXNJQ0poSWl3Z0ltSWlMQ0FpY21WemRXeDBJaXdnSW14aGNtZGxjM1FpTENBaVJYaHdjbVZ6YzJsdmJuTWlMQ0FpZG1GeWFXRmliR1VpTENBaWJtRnRaU0lzSUNKc2FYUmxjbUZzSWl3Z0luWmhiSFZsSWl3Z0ltSnBibUZ5ZVU5d0lpd2dJbXhsWm5RaUxDQWliM0FpTENBaWNtbG5hSFFpTENBaWFXNWtaWGdpTENBaWIySnFJaXdnSW1sdVpHVjRWbUZ5YVdGaWJHVWlMQ0FpY0dGeWRITWlMQ0FpY21WemRXeDBJaXdnSW14aGJXSmtZU0lzSUNKaGNtZHpJaXdnSW1aMWJtTWlMQ0FpYkdsemRDSXNJQ0oyWVd4MVpYTWlMQ0FpYjJKcVpXTjBJaXdnSW01bFoyRjBaU0lzSUNKamFHbHNaQ0lzSUNKcGMwTnZiWEJoY21WUGNDSXNJQ0oxYm1KdmRXNWtWbUZ5YVdGaWJHVnpJaXdnSW1WNGNISWlMQ0FpWW05MWJtUWlMQ0FpVEdsMFpYSmhiSE1pTENBaVJtbHNkR1Z5Y3lJc0lDSmhJaXdnSW01bGQwSnZkVzVrSWl3Z0ltRnlaeUlzSUNKMklpd2dJblJ2VTNSeWFXNW5JaXdnSW1zaUxDQWlkM0poY0hCbFpDSXNJQ0pRVWtsTlNWUkpWa1ZUSWl3Z0lsOGlMQ0FpYzNSeUlpd2dJbkVpTENBaVkyaGhjbk1pTENBaVpYTmpZWEJsWkNJc0lDSnpkR0Z5ZENJc0lDSnlaWE4wSWl3Z0lrVk5UMHBKWDFKRlIwVllJaXdnSW1acGNuTjBJaXdnSW14cGJtdEpibTVsY2lJc0lDSk1hVzVySWl3Z0luQWlMQ0FpYkNJc0lDSmZjM1J5SWl3Z0lubGxZWElpTENBaWJXOXVkR2dpTENBaVJHRjBaVlJwYldVaUxDQWlSRUZVUlY5VFNFOVNWRWhCVGtSVElpd2dJbUVpTENBaVlpSXNJQ0pqYUdGcGJrOXdkQ0lzSUNKNWJTSXNJQ0prWVhraUxDQWllVzFrSWl3Z0ltaHZkWElpTENBaWVXMWthQ0lzSUNKdGFXNTFkR1VpTENBaWVXMWthRzBpTENBaWMyVmpiMjVrSWl3Z0lubHRaR2h0Y3lJc0lDSnRhV3hzYVhObFkyOXVaQ0lzSUNKa2RDSXNJQ0p3YlNJc0lDSm9jaUlzSUNKZllTSXNJQ0o2YjI1bElpd2dJbDlpSWl3Z0ltUWlMQ0FpUkZWU1FWUkpUMDVmVkZsUVJWTWlMQ0FpWTI5MWJuUWlMQ0FpZENJc0lDSjRJaXdnSW1SMWNtRjBhVzl1Y3lJc0lDSmpJaXdnSW01dmNtMWhiR2w2WlVSMWNtRjBhVzl1SWl3Z0ltWWlMQ0FpWDNNaUxDQWlaVzF2YW1sZmNtVm5aWGhmWkdWbVlYVnNkQ0lzSUNKRWRYSmhkR2x2YmlJc0lDSkZXRkJTUlZOVFNVOU9JaXdnSWtWNGNISmxjM05wYjI1eklpd2dJbU55WldGMFpVWjFibU4wYVc5dUlpd2dJbDltZFc1aklpd2dJbVJoZEdVaUxDQWlaSFZ5SWl3Z0ltNWhiV1VpTENBaVgzTmxjQ0lzSUNKMllXeDFaU0lzSUNKMllXeHpJaXdnSW5KbGN5SXNJQ0psYm5SeWVTSXNJQ0p2WW1vaUxDQWljRzl6ZEdacGVHVnpJaXdnSW5KbGMzVnNkQ0lzSUNKd2IzTjBJaXdnSW1acFpXeGtJaXdnSW1sa1pXNTBJaXdnSWw5cFoyNXZjbVVpTENBaVpYaHdjaUlzSUNKZk1pSXNJQ0pmTXlJc0lDSmZOQ0lzSUNKZk1TSXNJQ0psZUhCeWN5SXNJQ0pqY21WaGRHVkNhVzVoY25sUVlYSnpaWElpTENBaVVWVkZVbGtpTENBaWFXUWlMQ0FpWm5WdVl5SXNJQ0p3WVhSb0lpd2dJbU5vYVd4a2NtVnVJaXdnSW5CaGNtVnVkSE1pTENBaWJHbHVheUlzSUNKemIzVnlZMlVpTENBaWJHVm1kQ0lzSUNKZmIzQWlMQ0FpY21sbmFIUWlMQ0FpWTNKbFlYUmxRbWx1WVhKNVVHRnljMlZ5SWl3Z0ltTm9hV3hrSWl3Z0luTmxjQ0lzSUNKamIyMWlhVzVsSWl3Z0ltWnBjbk4wSWl3Z0luSmxjM1FpTENBaWJtOWtaU0lzSUNKcGJtUmxlQ0lzSUNKamNtVmhkR1ZHZFc1amRHbHZiaUlzSUNKbWRXNWpJaXdnSW1GeVozTWlMQ0FpY21WaGJFWjFibU1pTENBaVppSXNJQ0poSWl3Z0ltTm9ZV2x1VDNCMElpd2dJbUpoYzJVaUxDQWlablZ1WTNNaUxDQWlYM04xWTJObGMzTWlMQ0FpWDJaaGFXeDFjbVVpTENBaWFXNXdkWFFpTENBaWNtVnpkV3gwSWl3Z0ltNWxlSFFpTENBaVVDSXNJQ0p0WVhCUFltcGxZM1JXWVd4MVpYTWlMQ0FpYjJKcVpXTjBJaXdnSW1aMWJtTWlMQ0FpY21WemRXeDBJaXdnSW10bGVTSXNJQ0oyWVd4MVpTSXNJQ0pLYzI5dVEyOXVkbVZ5YzJsdmJpSXNJQ0pwYm5CMWRDSXNJQ0pxYzI5dUlpd2dJbXhwZEdWeVlXd2lMQ0FpZDNKaGNIQmxaQ0lzSUNKTWFYUmxjbUZzY3lJc0lDSnRZWEJQWW1wbFkzUldZV3gxWlhNaUxDQWlkbUZzZFdVaUxDQWlibTl5YldGc2FYcGxjaUlzSUNKMklpd2dJblI1Y0dVaUxDQWlSR0YwWlZScGJXVWlMQ0FpUkhWeVlYUnBiMjRpTENBaVRHbHVheUlzSUNKcWMyOXVTVzVzYVc1bFJtbGxiR1FpTENBaVptbGxiR1FpTENBaVNuTnZia052Ym5abGNuTnBiMjRpTENBaVlYTkpibXhwYm1WR2FXVnNaQ0lzSUNKc2IyTmhiQ0lzSUNKc2FXNWxibThpTENBaVppSXNJQ0p3WVhKelpVbHViR2x1WlZaaGJIVmxJaXdnSWtsT1RFbE9SVjlHU1VWTVJGOVhVa0ZRVUVWU1V5SXNJQ0ptYVc1a1EyeHZjMmx1WnlJc0lDSnNhVzVsSWl3Z0luTjBZWEowSWl3Z0ltOXdaVzRpTENBaVkyeHZjMlVpTENBaWJtVnpkR2x1WnlJc0lDSmxjMk5oY0dWa0lpd2dJbWx1WkdWNElpd2dJbU5vWVhJaUxDQWlabWx1WkZObGNHRnlZWFJ2Y2lJc0lDSnpaWEFpTENBaVptbHVaRk53WldOcFptbGpTVzVzYVc1bFJtbGxiR1FpTENBaWEyVjVJaXdnSW5aaGJIVmxJaXdnSW1sdWJHbHVaU0lzSUNKUVVrbE5TVlJKVmtWVElpd2dJbVY0ZEhKaFkzUkpibXhwYm1WR2FXVnNaSE1pTENBaWFXNWpiSFZrWlZSaGMydEdhV1ZzWkhNaUxDQWlabWxsYkdSeklpd2dJbmR5WVhCd1pYSWlMQ0FpWm05MWJtUkpibVJsZUNJc0lDSndZWEp6WldSR2FXVnNaQ0lzSUNKbGVIUnlZV04wVTNCbFkybGhiRlJoYzJ0R2FXVnNaSE1pTENBaVlTSXNJQ0ppSWl3Z0ltWnBiSFJsY21Wa1JtbGxiR1J6SWl3Z0lta2lMQ0FpUmxWTVRGOU1TVTVGWDB0RldWOVFRVkpVSWl3Z0ltVnRiMnBwWDNKbFoyVjRYMlJsWm1GMWJIUWlMQ0FpY0dGeWRITWlMQ0FpUmxWTVRGOU1TVTVGWDB0RldWOVFRVkpUUlZJaUxDQWlaWGgwY21GamRFWjFiR3hNYVc1bFJtbGxiR1FpTENBaWRHVjRkQ0lzSUNKeVpXRnNTMlY1SWl3Z0lrTlNSVUZVUlVSZlJFRlVSVjlTUlVkRldDSXNJQ0pFVlVWZlJFRlVSVjlTUlVkRldDSXNJQ0pFVDA1RlgwUkJWRVZmVWtWSFJWZ2lMQ0FpVTBOSVJVUlZURVZFWDBSQlZFVmZVa1ZIUlZnaUxDQWlVMVJCVWxSZlJFRlVSVjlTUlVkRldDSXNJQ0pGVFU5S1NWOVNSVWRGV0VWVElpd2dJbkpsYzNWc2RITWlMQ0FpY21WblpYZ2lMQ0FpYldGMFkyZ2lMQ0FpV1dGdGJFTnZiblpsY25OcGIyNGlMQ0FpZVdGdGJDSXNJQ0oyWVd4MVpTSXNJQ0ozY21Gd2NHVmtJaXdnSWt4cGRHVnlZV3h6SWl3Z0lteHBkR1Z5WVd3aUxDQWliV0Z3VDJKcVpXTjBWbUZzZFdWeklpd2dJbkpsYzNWc2RDSXNJQ0pqYUdsc1pDSXNJQ0pFWVhSbFZHbHRaU0lzSUNKdlltcGxZM1FpTENBaWEyVjVJaXdnSW1SaGRHVlFZWEp6WlNJc0lDSlFVa2xOU1ZSSlZrVlRJaXdnSW1SMWNtRjBhVzl1VUdGeWMyVWlMQ0FpYkdsdWExQmhjbk5sSWl3Z0lsbEJUVXhmUkVGVVFWOVNSVWRGV0NJc0lDSkRUMFJGUWt4UFEwdGZSa1ZPUTBWZlVrVkhSVmdpTENBaVRFbFRWRjlKVkVWTlgxSkZSMFZZSWl3Z0ltMWhjbXRrYjNkdVNXMXdiM0owSWl3Z0luQmhkR2dpTENBaWJXRnlhMlJ2ZDI0aUxDQWliV1YwWVdSaGRHRWlMQ0FpYzNSaGRITWlMQ0FpYkdsdVpYTWlMQ0FpY0dGblpVMWxkR0ZrWVhSaElpd2dJbVp5YjI1MGJXRjBkR1Z5SWl3Z0luTmxZM1JwYjI1eklpd2dJbTFoY210a2IzZHVVMjkxY21ObFNXMXdiM0owSWl3Z0lsQmhaMlZFWVhSaElpd2dJbDloSWl3Z0lsOWlJaXdnSWw5aklpd2dJbDlrSWl3Z0lsOWxJaXdnSWw5bUlpd2dJbDluSWl3Z0lsOW9JaXdnSWw5cElpd2dJbDlxSWl3Z0lsOXJJaXdnSWw5c0lpd2dJbDl0SWl3Z0lsOXVJaXdnSWw5dklpd2dJbDl3SWl3Z0luQmhjbk5sUm5KdmJuUnRZWFIwWlhKQ2JHOWpheUlzSUNKdFlYSnJaRzkzYmsxbGRHRmtZWFJoSWl3Z0lrMWxkR0ZrWVhSaElpd2dJbk5sWTNScGIyNUJjbkpoZVNJc0lDSnRaWFJoYUdWaFpHbHVaM01pTENBaVlTSXNJQ0ppSWl3Z0lrSlVjbVZsSWl3Z0ltbHVaR1Y0SWl3Z0ltVnVkSEo1SWl3Z0luTjBZWEowSWl3Z0ltVnVaQ0lzSUNKelpXTjBhVzl1SWl3Z0lsTmxZM1JwYjI1RVlYUmhJaXdnSW1WdGNIUjViR2x1WlhNaUxDQWlaMlYwUm1sc1pWUnBkR3hsSWl3Z0ltWnBjbk4wSWl3Z0ltSnNiMk5yY3lJc0lDSmliRzlqYTA5eVpHbHVZV3dpTENBaVlteHZZMnNpTENBaWMzUmhjblJNYVc1bElpd2dJa3hwYzNSQ2JHOWphMFJoZEdFaUxDQWllV0Z0YkNJc0lDSnpjR3hwZENJc0lDSndZWEp6WlNJc0lDSkVZWFJoWW14dlkydEVZWFJoSWl3Z0ltMWhkR05vSWl3Z0lrTnZaR1ZpYkc5amEwUmhkR0VpTENBaWJHRnVaM1ZoWjJWeklpd2dJa0poYzJWQ2JHOWphMFJoZEdFaUxDQWliRzl2YTNWd0lpd2dJbU52Ym5SbGJuUlNaV2RsZUNJc0lDSnRZWEpyWlhKU1pXZGxlQ0lzSUNKc2FYTjBTWFJsYlhNaUxDQWliR2x6ZENJc0lDSnplVzFpYjJ3aUxDQWlkR1Y0ZENJc0lDSnBkR1Z0SWl3Z0lreHBjM1JKZEdWdFJHRjBZU0lzSUNKc2FYTjBRbXh2WTJzaUxDQWlkR0ZuWkdWbUlpd2dJblJoWnlJc0lDSnNhVzVsSWl3Z0luSmhkM1JoWnlJc0lDSmxlSFJ5WVdOMFZHRm5jeUlzSUNKc2FXNXJaR1ZtSWl3Z0lteHBibXNpTENBaVRHbHVheUlzSUNKbWFXVnNaQ0lzSUNKcGRHVnlZWFJsU1c1c2FXNWxSbWxsYkdSeklpd2dJbU52Ym5SbGJuUWlMQ0FpYkdsdVpXNXZJaXdnSW1sdWJHbHVaVVpwWld4a2N5SXNJQ0psZUhSeVlXTjBTVzVzYVc1bFJtbGxiR1J6SWl3Z0ltbG1hV1ZzWkNJc0lDSmhjMGx1YkdsdVpVWnBaV3hrSWl3Z0ltWjFiR3hNYVc1bElpd2dJbVY0ZEhKaFkzUkdkV3hzVEdsdVpVWnBaV3hrSWl3Z0luSmxjM1ZzZENJc0lDSnJaWGtpTENBaWRtRnNkV1VpTENBaVNuTnZia052Ym5abGNuTnBiMjRpTENBaVdXRnRiRU52Ym5abGNuTnBiMjRpTENBaWRISmxaU0lzSUNKMFlYSm5aWFFpTENBaWF5SXNJQ0p6Y0d4cGRFWnliMjUwYldGMGRHVnlWR0ZuVDNKQmJHbGhjeUlzSUNKd0lpd2dJbU1pTENBaWMzUnlJaXdnSW1SaGRHRWlMQ0FpYjI0aUxDQWljeUlzSUNKMklpd2dJbXh2ZDJWeUlpd2dJbTFoY0U5aWFtVmpkRlpoYkhWbGN5SXNJQ0pxYzI5dVNXNXNhVzVsUm1sbGJHUWlMQ0FpYkdWdVozUm9JaXdnSW1kbGRFVjRkR1Z1YzJsdmJpSXNJQ0o0SWl3Z0luUnBkR3hsSWl3Z0lteGxkbVZzSWl3Z0ltOXlaR2x1WVd3aUxDQWlZbXh2WTJ0SlpDSXNJQ0p6ZEhsc1pTSXNJQ0pqYjI1MFpXNTBVM1JoY25RaUxDQWlZMjl1ZEdWdWRFVnVaQ0lzSUNKMGVYQmxJaXdnSW5CaGNtVnVkRXhwYm1VaUxDQWljM1JoZEhWeklpd2dJbVZzWlcxbGJuUWlMQ0FpWTJGdWRtRnpTVzF3YjNKMElpd2dJbkJoZEdnaUxDQWljMjkxY21ObElpd2dJbWx1WkdWNElpd2dJbk4wWVhSeklpd2dJbDloSWl3Z0ltTmhiblpoY3lJc0lDSkRZVzUyWVhORVlYUmhJaXdnSW5CaGNuTmxaQ0lzSUNKaklpd2dJbVp5YjI1MGJXRjBkR1Z5SWl3Z0ltMWxkR0ZrWVhSaElpd2dJbXhwYm1Weklpd2dJbk5sWTNScGIyNXpJaXdnSW0xaGNtdGtiM2R1VTI5MWNtTmxTVzF3YjNKMElpd2dJbU5oY21RaUxDQWlRMkZ1ZG1GelEyRnlaRVJoZEdFaUxDQWlhU0lzSUNKMFlXY2lMQ0FpYkdsdWF5SXNJQ0ptYVdWc1pDSXNJQ0pwZEdWeVlYUmxTVzVzYVc1bFJtbGxiR1J6SWl3Z0lrRmljM1J5WVdOMFEyRnVkbUZ6UTJGeVpFUmhkR0VpTENBaWFXUWlMQ0FpYm05a1pVcHpiMjRpTENBaVRXVjBZV1JoZEdFaUxDQWlUR2x1YXlJc0lDSnpaV04wYVc5dUlpd2dJbDlmYzNCeVpXRmtVSEp2Y0hNaUxDQWlYMTl6Y0hKbFlXUldZV3gxWlhNaUxDQWllQ0lzSUNKa0lpd2dJbVYyWlc1MElpd2dJbTFsYzNOaFoyVWlMQ0FpYldGeWEyUnZkMjRpTENBaWJXRnlhMlJ2ZDI1SmJYQnZjblFpTENBaVkyRnVkbUZ6SWl3Z0ltTmhiblpoYzBsdGNHOXlkQ0lzSUNKbGNuSnZjaUpkQ24wS1xcblwiKTtcbn1cbiIsICIvKiogQ29udHJvbHMgYW5kIGNyZWF0ZXMgRGF0YXZpZXcgZmlsZSBpbXBvcnRlcnMsIGFsbG93aW5nIGZvciBhc3luY2hyb25vdXMgbG9hZGluZyBhbmQgcGFyc2luZyBvZiBmaWxlcy4gKi9cblxuaW1wb3J0IEltcG9ydFdvcmtlciBmcm9tIFwiaW5kZXgvd2ViLXdvcmtlci9pbXBvcnRlci53b3JrZXJcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgRmlsZU1hbmFnZXIsIE1ldGFkYXRhQ2FjaGUsIFRGaWxlLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgQ2FudmFzSW1wb3J0LCBNYXJrZG93bkltcG9ydCB9IGZyb20gXCJpbmRleC93ZWItd29ya2VyL21lc3NhZ2VcIjtcbmltcG9ydCB7IERlZmVycmVkLCBkZWZlcnJlZCB9IGZyb20gXCJ1dGlscy9kZWZlcnJlZFwiO1xuXG5pbXBvcnQgeyBRdWV1ZSB9IGZyb20gXCJAZGF0YXN0cnVjdHVyZXMtanMvcXVldWVcIjtcblxuLyoqIFNldHRpbmdzIGZvciB0aHJvdHRsaW5nIGltcG9ydC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0VGhyb3R0bGUge1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHdvcmtlcnMgdG8gdXNlIGZvciBpbXBvcnRzLiAqL1xuICAgIHdvcmtlcnM6IG51bWJlcjtcbiAgICAvKiogQSBudW1iZXIgYmV0d2VlbiAwLjEgYW5kIDEgd2hpY2ggaW5kaWNhdGVzIHRvdGFsIGNwdSB1dGlsaXphdGlvbiB0YXJnZXQ7IDAuMSBtZWFucyBzcGVuZCAxMCUgb2YgdGltZSAgKi9cbiAgICB1dGlsaXphdGlvbjogbnVtYmVyO1xufVxuXG4vKiogRGVmYXVsdCB0aHJvdHRsZSBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEhST1RUTEU6IEltcG9ydFRocm90dGxlID0ge1xuICAgIHdvcmtlcnM6IDIsXG4gICAgdXRpbGl6YXRpb246IDAuNzUsXG59O1xuXG4vKiogTXVsdGktdGhyZWFkZWQgZmlsZSBwYXJzZXIgd2hpY2ggZGVib3VuY2VzIHJhcGlkIGZpbGUgcmVxdWVzdHMgYXV0b21hdGljYWxseS4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlSW1wb3J0ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIC8qIEJhY2tncm91bmQgd29ya2VycyB3aGljaCBkbyB0aGUgYWN0dWFsIGZpbGUgcGFyc2luZy4gKi9cbiAgICB3b3JrZXJzOiBNYXA8bnVtYmVyLCBQb29sV29ya2VyPjtcbiAgICAvKiogVGhlIG5leHQgd29ya2VyIElEIHRvIGhhbmQgb3V0LiAqL1xuICAgIG5leHRXb3JrZXJJZDogbnVtYmVyO1xuICAgIC8qKiBJZiB0cnVlLCB0aGUgaW1wb3J0ZXIgaXMgbm93IGluYWN0aXZlIGFuZCB3aWxsIG5vdCBwcm9jZXNzIGZ1cnRoZXIgZmlsZXMuICovXG4gICAgc2h1dGRvd246IGJvb2xlYW47XG5cbiAgICAvKiogTGlzdCBvZiBmaWxlcyB3aGljaCBoYXZlIGJlZW4gcXVldWVkIGZvciBhIHJlbG9hZC4gKi9cbiAgICBxdWV1ZTogUXVldWU8W1RGaWxlLCBEZWZlcnJlZDxhbnk+XT47XG4gICAgLyoqIE91dHN0YW5kaW5nIGxvYWRzIGluZGV4ZWQgYnkgcGF0aC4gKi9cbiAgICBvdXRzdGFuZGluZzogTWFwPHN0cmluZywgUHJvbWlzZTxhbnk+PjtcbiAgICAvKiogVGhyb3R0bGUgc2V0dGluZ3MuICovXG4gICAgdGhyb3R0bGU6ICgpID0+IEltcG9ydFRocm90dGxlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmF1bHQ6IFZhdWx0LFxuICAgICAgICBwdWJsaWMgZmlsZU1hbmFnZXI6IEZpbGVNYW5hZ2VyLFxuICAgICAgICBwdWJsaWMgbWV0YWRhdGFDYWNoZTogTWV0YWRhdGFDYWNoZSxcbiAgICAgICAgdGhyb3R0bGU/OiAoKSA9PiBJbXBvcnRUaHJvdHRsZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLndvcmtlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuc2h1dGRvd24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5uZXh0V29ya2VySWQgPSAwO1xuICAgICAgICB0aGlzLnRocm90dGxlID0gdGhyb3R0bGUgPz8gKCgpID0+IERFRkFVTFRfVEhST1RUTEUpO1xuXG4gICAgICAgIHRoaXMucXVldWUgPSBuZXcgUXVldWUoKTtcbiAgICAgICAgdGhpcy5vdXRzdGFuZGluZyA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBRdWV1ZSB0aGUgZ2l2ZW4gZmlsZSBmb3IgaW1wb3J0aW5nLiBNdWx0aXBsZSBpbXBvcnQgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIGZpbGUgaW4gYSBzaG9ydCB0aW1lIHBlcmlvZCB3aWxsIGJlIGRlLWJvdW5jZWRcbiAgICAgKiBhbmQgYWxsIGJlIHJlc29sdmVkIGJ5IGEgc2luZ2xlIGFjdHVhbCBmaWxlIHJlbG9hZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW1wb3J0PFQ+KGZpbGU6IFRGaWxlKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIC8vIERlLWJvdW5jZSByZXBlYXRlZCByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgZmlsZS5cbiAgICAgICAgbGV0IGV4aXN0aW5nID0gdGhpcy5vdXRzdGFuZGluZy5nZXQoZmlsZS5wYXRoKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XG5cbiAgICAgICAgbGV0IHByb21pc2UgPSBkZWZlcnJlZDxUPigpO1xuXG4gICAgICAgIHRoaXMub3V0c3RhbmRpbmcuc2V0KGZpbGUucGF0aCwgcHJvbWlzZSk7XG4gICAgICAgIHRoaXMucXVldWUuZW5xdWV1ZShbZmlsZSwgcHJvbWlzZV0pO1xuICAgICAgICB0aGlzLnNjaGVkdWxlKCk7XG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIC8qKiBSZXNldCBhbnkgYWN0aXZlIHRocm90dGxlcyBvbiB0aGUgaW1wb3J0ZXIgKHN1Y2ggYXMgaWYgdGhlIHV0aWxpemF0aW9uIGNoYW5nZXMpLiAqL1xuICAgIHB1YmxpYyB1bnRocm90dGxlKCkge1xuICAgICAgICBmb3IgKGxldCB3b3JrZXIgb2YgdGhpcy53b3JrZXJzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICB3b3JrZXIuYXZhaWxhYmxlQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFBvbGwgZnJvbSB0aGUgcXVldWUgYW5kIGV4ZWN1dGUgaWYgdGhlcmUgaXMgYW4gYXZhaWxhYmxlIHdvcmtlci4gKi9cbiAgICBwcml2YXRlIGFzeW5jIHNjaGVkdWxlKCkge1xuICAgICAgICBpZiAodGhpcy5xdWV1ZS5zaXplKCkgPT0gMCB8fCB0aGlzLnNodXRkb3duKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgd29ya2VyID0gdGhpcy5hdmFpbGFibGVXb3JrZXIoKTtcbiAgICAgICAgaWYgKCF3b3JrZXIpIHJldHVybjtcblxuICAgICAgICBjb25zdCBbZmlsZSwgcHJvbWlzZV0gPSB0aGlzLnF1ZXVlLmRlcXVldWUoKSE7XG4gICAgICAgIHdvcmtlci5hY3RpdmUgPSBbZmlsZSwgcHJvbWlzZSwgRGF0ZS5ub3coKV07XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsZS5leHRlbnNpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwibWFya2Rvd25cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwibWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50cyA9IGF3YWl0IHRoaXMudmF1bHQuY2FjaGVkUmVhZChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgd29ya2VyIS53b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJtYXJrZG93blwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IGNvbnRlbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdDogZmlsZS5zdGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSksXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgTWFya2Rvd25JbXBvcnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcImNhbnZhc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgdGhpcy52YXVsdC5jYWNoZWRSZWFkKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICB3b3JrZXIhLndvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImNhbnZhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IGNvbnRlbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdDogZmlsZS5zdGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuZmlsZU1hbmFnZXIubGlua1VwZGF0ZXJzLmNhbnZhcy5jYW52YXMuaW5kZXguaW5kZXhbZmlsZS5wYXRoXSxcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBDYW52YXNJbXBvcnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFjb3JlOiBCYWNrZ3JvdW5kIGZpbGUgcmVsb2FkaW5nIGZhaWxlZC4gXCIgKyBleCk7XG5cbiAgICAgICAgICAgIC8vIE1lc3NhZ2UgZmFpbGVkLCByZWxlYXNlIHRoaXMgd29ya2VyLlxuICAgICAgICAgICAgd29ya2VyLmFjdGl2ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGaW5pc2ggdGhlIHBhcnNpbmcgb2YgYSBmaWxlLCBwb3RlbnRpYWxseSBxdWV1ZWluZyBhIG5ldyBmaWxlLiAqL1xuICAgIHByaXZhdGUgZmluaXNoKHdvcmtlcjogUG9vbFdvcmtlciwgZGF0YTogYW55KSB7XG4gICAgICAgIGlmICghd29ya2VyLmFjdGl2ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJEYXRhY29yZTogUmVjZWl2ZWQgYSBzdGFsZSB3b3JrZXIgbWVzc2FnZS4gSWdub3JpbmcuXCIsIGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2ZpbGUsIHByb21pc2UsIHN0YXJ0XSA9IHdvcmtlci5hY3RpdmUhO1xuXG4gICAgICAgIC8vIFJlc29sdmUgcHJvbWlzZXMgdG8gbGV0IHVzZXJzIGtub3cgdGhpcyBmaWxlIGhhcyBmaW5pc2hlZC5cbiAgICAgICAgaWYgKFwiJGVycm9yXCIgaW4gZGF0YSkgcHJvbWlzZS5yZWplY3QoZGF0YVtcIiRlcnJvclwiXSk7XG4gICAgICAgIGVsc2UgcHJvbWlzZS5yZXNvbHZlKGRhdGEpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmaWxlIGZyb20gb3V0c3RhbmRpbmcuXG4gICAgICAgIHRoaXMub3V0c3RhbmRpbmcuZGVsZXRlKGZpbGUucGF0aCk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoaXMgd29ya2VyIGlmIHdlIGFyZSBvdmVyIGNhcGFjaXR5LlxuICAgICAgICAvLyBPdGhlcndpc2UsIG5vdGlmeSB0aGUgcXVldWUgdGhpcyBmaWxlIGlzIGF2YWlsYWJsZSBmb3IgbmV3IHdvcmsuXG4gICAgICAgIGlmICh0aGlzLndvcmtlcnMuc2l6ZSA+IHRoaXMudGhyb3R0bGUoKS53b3JrZXJzKSB7XG4gICAgICAgICAgICB0aGlzLndvcmtlcnMuZGVsZXRlKHdvcmtlci5pZCk7XG4gICAgICAgICAgICB0ZXJtaW5hdGUod29ya2VyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgICBjb25zdCB0aHJvdHRsZSA9IE1hdGgubWF4KDAuMSwgdGhpcy50aHJvdHRsZSgpLnV0aWxpemF0aW9uKSAtIDEuMDtcbiAgICAgICAgICAgIGNvbnN0IGRlbGF5ID0gKG5vdyAtIHN0YXJ0KSAqIHRocm90dGxlO1xuXG4gICAgICAgICAgICB3b3JrZXIuYWN0aXZlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBpZiAoZGVsYXkgPD0gMWUtMTApIHtcbiAgICAgICAgICAgICAgICB3b3JrZXIuYXZhaWxhYmxlQXQgPSBub3c7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3b3JrZXIuYXZhaWxhYmxlQXQgPSBub3cgKyBkZWxheTtcblxuICAgICAgICAgICAgICAgIC8vIE5vdGU6IEknbSBwcmV0dHkgc3VyZSB0aGlzIHdpbGwgZ2FyYXVudGVlIHRoYXQgdGhpcyBleGVjdXRlcyBBRlRFUiBkZWxheSBtaWxsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgLy8gc28gdGhpcyBzaG91bGQgYmUgZmluZTsgaWYgaXQncyBub3QsIHdlJ2xsIGhhdmUgdG8gc3dhcCB0byBhbiBleHRlcm5hbCB0aW1lb3V0IGxvb3BcbiAgICAgICAgICAgICAgICAvLyB3aGljaCBpbmZpbml0ZWx5IHJlc2NoZWR1bGVzIGl0c2VsZiB0byB0aGUgbmV4dCBhdmFpbGFibGUgZXhlY3V0aW9uIHRpbWUuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnNjaGVkdWxlLmJpbmQodGhpcyksIGRlbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBPYnRhaW4gYW4gYXZhaWxhYmxlIHdvcmtlciwgcmV0dXJuaW5nIHVuZGVmaW5lZCBpZiBvbmUgZG9lcyBub3QgZXhpc3QuICovXG4gICAgcHJpdmF0ZSBhdmFpbGFibGVXb3JrZXIoKTogUG9vbFdvcmtlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIGZvciAobGV0IHdvcmtlciBvZiB0aGlzLndvcmtlcnMudmFsdWVzKCkpIHtcbiAgICAgICAgICAgIGlmICghd29ya2VyLmFjdGl2ZSAmJiB3b3JrZXIuYXZhaWxhYmxlQXQgPD0gbm93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgYSBuZXcgd29ya2VyIGlmIHdlIGNhbi5cbiAgICAgICAgaWYgKHRoaXMud29ya2Vycy5zaXplIDwgdGhpcy50aHJvdHRsZSgpLndvcmtlcnMpIHtcbiAgICAgICAgICAgIGxldCB3b3JrZXIgPSB0aGlzLm5ld1dvcmtlcigpO1xuICAgICAgICAgICAgdGhpcy53b3JrZXJzLnNldCh3b3JrZXIuaWQsIHdvcmtlcik7XG4gICAgICAgICAgICByZXR1cm4gd29ya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbmV3IHdvcmtlciBib3VuZCB0byB0aGlzIGltcG9ydGVyLiAqL1xuICAgIHByaXZhdGUgbmV3V29ya2VyKCk6IFBvb2xXb3JrZXIge1xuICAgICAgICBsZXQgd29ya2VyOiBQb29sV29ya2VyID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMubmV4dFdvcmtlcklkKyssXG4gICAgICAgICAgICBhdmFpbGFibGVBdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIHdvcmtlcjogbmV3IEltcG9ydFdvcmtlcigpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHdvcmtlci53b3JrZXIub25tZXNzYWdlID0gKGV2dCkgPT4gdGhpcy5maW5pc2god29ya2VyLCBldnQuZGF0YSk7XG4gICAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgfVxuXG4gICAgLyoqIFJlamVjdCBhbGwgb3V0c3RhbmRpbmcgcHJvbWlzZXMgYW5kIGNsb3NlIGFsbCB3b3JrZXJzIG9uIGNsb3NlLiAqL1xuICAgIHB1YmxpYyBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgd29ya2VyIG9mIHRoaXMud29ya2Vycy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgdGVybWluYXRlKHdvcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoIXRoaXMucXVldWUuaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICBjb25zdCBbX2ZpbGUsIHByb21pc2VdID0gdGhpcy5xdWV1ZS5wb3AoKSE7XG4gICAgICAgICAgICBwcm9taXNlLnJlamVjdChcIlRlcm1pbmF0ZWRcIik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNodXRkb3duID0gdHJ1ZTtcbiAgICB9XG59XG5cbi8qKiBBIHdvcmtlciBpbiB0aGUgcG9vbCBvZiBleGVjdXRpbmcgd29ya2Vycy4gKi9cbmludGVyZmFjZSBQb29sV29ya2VyIHtcbiAgICAvKiogVGhlIGlkIG9mIHRoaXMgd29ya2VyLiAqL1xuICAgIGlkOiBudW1iZXI7XG4gICAgLyoqIFRoZSByYXcgdW5kZXJseWluZyB3b3JrZXIuICovXG4gICAgd29ya2VyOiBXb3JrZXI7XG4gICAgLyoqIFVOSVggdGltZSBpbmRpY2F0aW5nIHRoZSBuZXh0IHRpbWUgdGhpcyB3b3JrZXIgaXMgYXZhaWxhYmxlIGZvciBleGVjdXRpb24gYWNjb3JkaW5nIHRvIHRhcmdldCB1dGlsaXphdGlvbi4gKi9cbiAgICBhdmFpbGFibGVBdDogbnVtYmVyO1xuICAgIC8qKiBUaGUgYWN0aXZlIHByb21pc2UgdGhpcyB3b3JrZXIgaXMgd29ya2luZyBvbiwgaWYgYW55LiAqL1xuICAgIGFjdGl2ZT86IFtURmlsZSwgRGVmZXJyZWQ8YW55PiwgbnVtYmVyXTtcbn1cblxuLyoqIFRlcm1pbmF0ZSBhIHBvb2wgd29ya2VyLiAqL1xuZnVuY3Rpb24gdGVybWluYXRlKHdvcmtlcjogUG9vbFdvcmtlcikge1xuICAgIHdvcmtlci53b3JrZXIudGVybWluYXRlKCk7XG5cbiAgICBpZiAod29ya2VyLmFjdGl2ZSkgd29ya2VyLmFjdGl2ZVsxXS5yZWplY3QoXCJUZXJtaW5hdGVkXCIpO1xuICAgIHdvcmtlci5hY3RpdmUgPSB1bmRlZmluZWQ7XG59XG4iLCAiaW1wb3J0IHsgZGVmZXJyZWQsIERlZmVycmVkIH0gZnJvbSBcInV0aWxzL2RlZmVycmVkXCI7XG5pbXBvcnQgeyBEYXRhc3RvcmUsIFN1YnN0b3JlciB9IGZyb20gXCJpbmRleC9kYXRhc3RvcmVcIjtcbmltcG9ydCB7IExvY2FsU3RvcmFnZUNhY2hlIH0gZnJvbSBcImluZGV4L3BlcnNpc3RlclwiO1xuaW1wb3J0IHsgSW5kZXhhYmxlLCBJTkRFWEFCTEVfRVhURU5TSU9OUyB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IEZpbGVJbXBvcnRlciwgSW1wb3J0VGhyb3R0bGUgfSBmcm9tIFwiaW5kZXgvd2ViLXdvcmtlci9pbXBvcnRlclwiO1xuaW1wb3J0IHsgSW1wb3J0UmVzdWx0IH0gZnJvbSBcImluZGV4L3dlYi13b3JrZXIvbWVzc2FnZVwiO1xuaW1wb3J0IHsgQXBwLCBDb21wb25lbnQsIEV2ZW50UmVmLCBFdmVudHMsIE1ldGFkYXRhQ2FjaGUsIFRBYnN0cmFjdEZpbGUsIFRGaWxlLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tIFwic2V0dGluZ3NcIjtcbmltcG9ydCB7IE1hcmtkb3duTGlzdEJsb2NrLCBNYXJrZG93bkxpc3RJdGVtLCBNYXJrZG93blBhZ2UgfSBmcm9tIFwiLi90eXBlcy9tYXJrZG93blwiO1xuaW1wb3J0IHsgR2VuZXJpY0ZpbGUgfSBmcm9tIFwiLi90eXBlcy9maWxlc1wiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IEVtYmVkUXVldWUgfSBmcm9tIFwiLi9lbWJlZC1xdWV1ZVwiO1xuaW1wb3J0IHsgSnNvbk1hcmtkb3duUGFnZSB9IGZyb20gXCIuL3R5cGVzL2pzb24vbWFya2Rvd25cIjtcbmltcG9ydCB7IENhbnZhcywgQ2FudmFzVGV4dENhcmQgfSBmcm9tIFwiLi90eXBlcy9jYW52YXNcIjtcblxuLyoqIENlbnRyYWwgQVBJIG9iamVjdDsgaGFuZGxlcyBpbml0aWFsaXphdGlvbiwgZXZlbnRzLCBkZWJvdW5jaW5nLCBhbmQgYWNjZXNzIHRvIGRhdGFjb3JlIGZ1bmN0aW9uYWxpdHkuICovXG5leHBvcnQgY2xhc3MgRGF0YWNvcmUgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIC8qKiBBY2Nlc3MgdG8gdGhlIG9ic2lkaWFuIHZhdWx0LiAqL1xuICAgIHZhdWx0OiBWYXVsdDtcbiAgICAvKiogUHJvdmlkZXMgYWNjZXNzIHRvIHBlci0obWFya2Rvd24pLWZpbGUgbWV0YWRhdGEuICovXG4gICAgbWV0YWRhdGFDYWNoZTogTWV0YWRhdGFDYWNoZTtcbiAgICAvKiogRGF0YWNvcmUgZXZlbnRzLCBtYWlubHkgdXNlZCB0byB1cGRhdGUgZG93bnN0cmVhbSB2aWV3cy4gVGhpcyBvYmplY3QgaXMgc2hhZG93ZWQgYnkgdGhlIERhdGFjb3JlIG9iamVjdCBpdHNlbGYuICovXG4gICAgZXZlbnRzOiBFdmVudHM7XG5cbiAgICAvKiogSW4tbWVtb3J5IGluZGV4IG92ZXIgYWxsIHN0b3JlZCBtZXRhZGF0YS4gKi9cbiAgICBkYXRhc3RvcmU6IERhdGFzdG9yZTtcbiAgICAvKiogQXN5bmNocm9ub3VzIG11bHRpLXRocmVhZGVkIGZpbGUgaW1wb3J0ZXIgd2l0aCB0aHJvdHRsaW5nLiAqL1xuICAgIGltcG9ydGVyOiBGaWxlSW1wb3J0ZXI7XG4gICAgLyoqIFF1ZXVlIG9mIGFzeW5jaHJvbm91cyByZWFkIHJlcXVlc3RzOyBlbnN1cmVzIHdlIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IGZpbGUgbG9hZHMuICovXG4gICAgcmVhZHM6IEVtYmVkUXVldWU7XG4gICAgLyoqIExvY2FsLXN0b3JhZ2UgYmFja2VkIGNhY2hlIG9mIG1ldGFkYXRhIG9iamVjdHMuICovXG4gICAgcGVyc2lzdGVyOiBMb2NhbFN0b3JhZ2VDYWNoZTtcbiAgICAvKiogT25seSBzZXQgd2hlbiBkYXRhY29yZSBpcyBpbiB0aGUgbWlkc3Qgb2YgaW5pdGlhbGl6YXRpb247IHRyYWNrcyBjdXJyZW50IHByb2dyZXNzLiAqL1xuICAgIGluaXRpYWxpemVyPzogRGF0YWNvcmVJbml0aWFsaXplcjtcbiAgICAvKiogSWYgdHJ1ZSwgZGF0YWNvcmUgaXMgZnVsbHkgaHlkcmF0ZWQgYW5kIGFsbCBmaWxlcyBoYXZlIGJlZW4gaW5kZXhlZC4gKi9cbiAgICBpbml0aWFsaXplZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHA6IEFwcCwgcHVibGljIHZlcnNpb246IHN0cmluZywgcHVibGljIHNldHRpbmdzOiBTZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMudmF1bHQgPSBhcHAudmF1bHQ7XG4gICAgICAgIHRoaXMubWV0YWRhdGFDYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xuICAgICAgICB0aGlzLnBlcnNpc3RlciA9IG5ldyBMb2NhbFN0b3JhZ2VDYWNoZShcInByaW1hcnlcIiwgdmVyc2lvbik7XG4gICAgICAgIHRoaXMuZXZlbnRzID0gbmV3IEV2ZW50cygpO1xuXG4gICAgICAgIHRoaXMuZGF0YXN0b3JlID0gbmV3IERhdGFzdG9yZShhcHAudmF1bHQsIGFwcC5tZXRhZGF0YUNhY2hlLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmFkZENoaWxkKFxuICAgICAgICAgICAgKHRoaXMuaW1wb3J0ZXIgPSBuZXcgRmlsZUltcG9ydGVyKGFwcC52YXVsdCwgYXBwLmZpbGVNYW5hZ2VyLCBhcHAubWV0YWRhdGFDYWNoZSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtlcnM6IHNldHRpbmdzLmltcG9ydGVyTnVtVGhyZWFkcyxcbiAgICAgICAgICAgICAgICAgICAgdXRpbGl6YXRpb246IE1hdGgubWF4KDAuMSwgTWF0aC5taW4oMS4wLCBzZXR0aW5ncy5pbXBvcnRlclV0aWxpemF0aW9uKSksXG4gICAgICAgICAgICAgICAgfSBhcyBJbXBvcnRUaHJvdHRsZTtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRPRE8gKGJsYWNrc21pdGhndSk6IEFkZCBhIG5ldyBzZXR0aW5nIGZvciBlbWJlZCBxdWV1ZSBjb25jdXJyZW5jeS5cbiAgICAgICAgdGhpcy5hZGRDaGlsZCgodGhpcy5yZWFkcyA9IG5ldyBFbWJlZFF1ZXVlKGFwcC52YXVsdCwgKCkgPT4gOCkpKTtcbiAgICB9XG5cbiAgICAvKiogT2J0YWluIHRoZSBjdXJyZW50IGluZGV4IHJldmlzaW9uLCBmb3IgZGV0ZXJtaW5pbmcgaWYgYW55dGhpbmcgaGFzIGNoYW5nZWQuICovXG4gICAgZ2V0IHJldmlzaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhc3RvcmUucmV2aXNpb247XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWxpemUgZGF0YWNvcmUgYnkgc2Nhbm5pbmcgcGVyc2lzdGVkIGNhY2hlcyBhbmQgYWxsIGF2YWlsYWJsZSBmaWxlcywgYW5kIHF1ZXVlaW5nIHBhcnNlcyBhcyBuZWVkZWQuICovXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgLy8gTWV0YWRhdGEgY2FjaGUgaGFuZGxlcyBtYXJrZG93biBmaWxlIHVwZGF0ZXMuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLm1ldGFkYXRhQ2FjaGUub24oXCJyZXNvbHZlXCIsIChmaWxlKSA9PiB0aGlzLnJlbG9hZChmaWxlKSkpO1xuXG4gICAgICAgIC8vIFJlbmFtZXMgZG8gbm90IHNldCBvZmYgdGhlIG1ldGFkYXRhIGNhY2hlOyBjYXRjaCB0aGVzZSBleHBsaWNpdGx5LlxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy52YXVsdC5vbihcInJlbmFtZVwiLCB0aGlzLnJlbmFtZSwgdGhpcykpO1xuXG4gICAgICAgIC8vIEhhbmRsZSBnZW5lcmljIGZpbGUgY3JlYXRlcyBhbmQgdXBkYXRlczsgcmVzb2x2ZSBnZW5lcmFsbHkgb25seSBhcHBsaWVzIHRvIG1hcmtkb3duIGZpbGVzXG4gICAgICAgIC8vIGJ1dCB3ZSBkbyBrZWVwIGJhc2ljIG1ldGFkYXRhIGFib3V0IGFsbCBmaWxlcy5cbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50KFxuICAgICAgICAgICAgdGhpcy52YXVsdC5vbihcImNyZWF0ZVwiLCAoZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghKGZpbGUgaW5zdGFuY2VvZiBURmlsZSkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIC8vIEhhbmRsZWQgYnkgdGhlIG1ldGFkYXRhIGNhY2hlLlxuICAgICAgICAgICAgICAgIGlmIChJTkRFWEFCTEVfRVhURU5TSU9OUy5oYXMoZmlsZS5leHRlbnNpb24udG9Mb3dlckNhc2UoKSkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKGZpbGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoXG4gICAgICAgICAgICB0aGlzLnZhdWx0Lm9uKFwibW9kaWZ5XCIsIChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBieSB0aGUgbWV0YWRhdGEgY2FjaGUuXG4gICAgICAgICAgICAgICAgaWYgKElOREVYQUJMRV9FWFRFTlNJT05TLmhhcyhmaWxlLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoZmlsZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEZpbGUgY3JlYXRpb24gZG9lcyBjYXVzZSBhIG1ldGFkYXRhIGNoYW5nZSwgYnV0IGRlbGV0ZXMgZG8gbm90LiBDbGVhciB0aGUgY2FjaGVzIGZvciB0aGlzLlxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoXG4gICAgICAgICAgICB0aGlzLnZhdWx0Lm9uKFwiZGVsZXRlXCIsIChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFzdG9yZS5kZWxldGUoZmlsZS5wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaW5kZXgoKTtcbiAgICB9XG5cbiAgICAvKiogU3RhcnRzIHRoZSBiYWNrZ3JvdW5kIGluaXRpYWxpemVyLiAqL1xuICAgIGluZGV4KCkge1xuICAgICAgICAvLyBBc3luY2hyb25vdXNseSBpbml0aWFsaXplIGFjdHVhbCBjb250ZW50IGluIHRoZSBiYWNrZ3JvdW5kIHVzaW5nIGEgbGlmZWN5Y2xlLXJlc3BlY3Rpbmcgb2JqZWN0LlxuICAgICAgICBjb25zdCBpbml0ID0gKHRoaXMuaW5pdGlhbGl6ZXIgPSBuZXcgRGF0YWNvcmVJbml0aWFsaXplcih0aGlzKSk7XG4gICAgICAgIGluaXQuZmluaXNoZWQoKS50aGVuKChzdGF0cykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZChpbml0KTtcblxuICAgICAgICAgICAgY29uc3QgZHVyYXRpb25TZWNzID0gKHN0YXRzLmR1cmF0aW9uTXMgLyAxMDAwLjApLnRvRml4ZWQoMyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgRGF0YWNvcmU6IEltcG9ydGVkIGFsbCBmaWxlcyBpbiB0aGUgdmF1bHQgaW4gJHtkdXJhdGlvblNlY3N9cyBgICtcbiAgICAgICAgICAgICAgICAgICAgYCgke3N0YXRzLmltcG9ydGVkfSBpbXBvcnRlZCwgJHtzdGF0cy5jYWNoZWR9IGNhY2hlZCwgJHtzdGF0cy5za2lwcGVkfSBza2lwcGVkKS5gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmRhdGFzdG9yZS50b3VjaCgpO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyKFwidXBkYXRlXCIsIHRoaXMucmV2aXNpb24pO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyKFwiaW5pdGlhbGl6ZWRcIik7XG5cbiAgICAgICAgICAgIC8vIENsZWFuIHVwIGFueSBkb2N1bWVudHMgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0IGluIHRoZSB2YXVsdC5cbiAgICAgICAgICAgIC8vIFRPRE86IEkgdGhpbmsgdGhpcyBtYXkgcmFjZSB3aXRoIG90aGVyIGNvbmN1cnJlbnQgb3BlcmF0aW9ucywgc29cbiAgICAgICAgICAgIC8vIHRoaXMgbWF5IG5lZWQgdG8gaGFwcGVuIGF0IHRoZSBzdGFydCBvZiBpbml0IGFuZCBub3QgYXQgdGhlIGVuZC5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlcyA9IHRoaXMudmF1bHQuZ2V0RmlsZXMoKS5tYXAoKGZpbGUpID0+IGZpbGUucGF0aCk7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3RlclxuICAgICAgICAgICAgICAgIC5zeW5jaHJvbml6ZShjdXJyZW50RmlsZXMpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGNsZWFyZWQpID0+IGNvbnNvbGUubG9nKGBEYXRhY29yZTogZHJvcHBlZCAke2NsZWFyZWQuc2l6ZX0gb3V0LW9mLWRhdGUgZmlsZSBtZXRhZGF0YSBibG9ja3MuYCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFkZENoaWxkKGluaXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuYW1lKGZpbGU6IFRBYnN0cmFjdEZpbGUsIG9sZFBhdGg6IHN0cmluZykge1xuICAgICAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgVEZpbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWxldGUgdGhlIGZpbGUgYXQgdGhlIG9sZCBwYXRoLCB0aGVuIHJlcXVlc3QgYSByZWxvYWQgYXQgdGhlIG5ldyBwYXRoLlxuICAgICAgICAvLyBUaGlzIGlzIGxlc3Mgb3B0aW1hbCB0aGFuIHdoYXQgY2FuIHByb2JhYmx5IGJlIGRvbmUsIGJ1dCBwYXRocyBhcmUgdXNlZCBpbiBhIGJ1bmNoIG9mIHBsYWNlc1xuICAgICAgICAvLyAoZm9yIHNlY3Rpb25zLCB0YXNrcywgZXRjIHRvIHJlZmVyIHRvIHRoZWlyIHBhcmVudCBmaWxlKSBhbmQgaXQgcmVxdWlyZXMgc29tZSBmaW5lc3NlIHRvIGZpeC5cbiAgICAgICAgdGhpcy5kYXRhc3RvcmUuZGVsZXRlKG9sZFBhdGgpO1xuICAgICAgICB0aGlzLnJlbG9hZChmaWxlKTtcblxuICAgICAgICAvLyBUT0RPOiBGb3IgY29ycmVjdG5lc3MsIHByb2JhYmx5IGhhdmUgdG8gZWl0aGVyIGZpeCBsaW5rcyBpbiBhbGwgbGlua2VkIGZpbGVzIE9SXG4gICAgICAgIC8vIGp1c3Qgc3RvcCBub3JtYWxpemluZyBsaW5rcyBpbiB0aGUgc3RvcmUuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVhZCBhIGZpbGUgZnJvbSB0aGUgT2JzaWRpYW4gY2FjaGUgZWZmaWNpZW50bHksIGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgY29uY3VycmVudCByZXF1ZXN0IGFuZCBkZWJvdW5jaW5nXG4gICAgICogbXVsdGlwbGUgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIGZpbGUuXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHJlYWQoZmlsZTogVEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkcy5yZWFkKGZpbGUpO1xuICAgIH1cblxuICAgIC8qKiBRdWV1ZSBhIGZpbGUgZm9yIHJlbG9hZGluZzsgdGhpcyBpcyBkb25lIGFzeW5jaHJvbm91c2x5IGluIHRoZSBiYWNrZ3JvdW5kIGFuZCBtYXkgdGFrZSBhIGZldyBzZWNvbmRzLiAqL1xuICAgIHB1YmxpYyBhc3luYyByZWxvYWQoZmlsZTogVEZpbGUpOiBQcm9taXNlPEluZGV4YWJsZT4ge1xuICAgICAgICAvLyBGaWx0ZXIgZmlsZXMgYnkgZmlsZSBleHRlbnNpb25zLlxuICAgICAgICBpZiAoIUlOREVYQUJMRV9FWFRFTlNJT05TLmhhcyhmaWxlLmV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBHZW5lcmljRmlsZShcbiAgICAgICAgICAgICAgICBmaWxlLnBhdGgsXG4gICAgICAgICAgICAgICAgRGF0ZVRpbWUuZnJvbU1pbGxpcyhmaWxlLnN0YXQuY3RpbWUpLFxuICAgICAgICAgICAgICAgIERhdGVUaW1lLmZyb21NaWxsaXMoZmlsZS5zdGF0Lm10aW1lKSxcbiAgICAgICAgICAgICAgICBmaWxlLnN0YXQuc2l6ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5kYXRhc3RvcmUuc3RvcmUocmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmltcG9ydGVyLmltcG9ydDxJbXBvcnRSZXN1bHQ+KGZpbGUpO1xuXG4gICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbXBvcnQgZmlsZSAnJHtmaWxlLm5hbWV9OiAke3Jlc3VsdC4kZXJyb3J9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnR5cGUgPT09IFwibWFya2Rvd25cIikge1xuICAgICAgICAgICAgLy8gUGFyc2UgdGhlIGZpbGUgYW5kIG5vcm1hbGl6ZSBtZXRhZGF0YSBmcm9tIGl0LlxuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gTWFya2Rvd25QYWdlLmZyb20ocmVzdWx0LnJlc3VsdCwgKGxpbmspID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBycGF0aCA9IHRoaXMubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChsaW5rLnBhdGgsIHJlc3VsdC5yZXN1bHQuJHBhdGghKTtcbiAgICAgICAgICAgICAgICBpZiAocnBhdGgpIHJldHVybiBsaW5rLndpdGhQYXRoKHJwYXRoLnBhdGgpO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIGxpbms7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gU3RvcmUgaXQgcmVjdXJzaXZlbHkgaW50byB0aGUgZGF0YXN0b3JlIGZvciBxdWVyeWluZy5cbiAgICAgICAgICAgIHRoaXMuc3RvcmVNYXJrZG93bihwYXJzZWQpO1xuXG4gICAgICAgICAgICAvLyBXcml0ZSBpdCB0byB0aGUgZmlsZSBjYWNoZSBmb3IgZmFzdGVyIGxvYWRzIGluIHRoZSBmdXR1cmUuXG4gICAgICAgICAgICB0aGlzLnBlcnNpc3Rlci5zdG9yZUZpbGUocGFyc2VkLiRwYXRoLCBwYXJzZWQuanNvbigpKTtcblxuICAgICAgICAgICAgLy8gQW5kIGZpbmFsbHkgdHJpZ2dlciBhbiB1cGRhdGUuXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJ1cGRhdGVcIiwgdGhpcy5yZXZpc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC50eXBlID09PSBcImNhbnZhc1wiKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBDYW52YXMuZnJvbShyZXN1bHQucmVzdWx0LCAobGluaykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJwYXRoID0gdGhpcy5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmsucGF0aCwgcmVzdWx0LnJlc3VsdC4kcGF0aCEpO1xuICAgICAgICAgICAgICAgIGlmIChycGF0aCkgcmV0dXJuIGxpbmsud2l0aFBhdGgocnBhdGgucGF0aCk7XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gbGluaztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdG9yZUNhbnZhcyhwYXJzZWQpO1xuICAgICAgICAgICAgdGhpcy5wZXJzaXN0ZXIuc3RvcmVGaWxlKHBhcnNlZC4kcGF0aCwgcGFyc2VkLmpzb24oKSk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIoXCJ1cGRhdGVcIiwgdGhpcy5yZXZpc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb3VudGVyZWQgdW5yZWNvZ25pemVkIGltcG9ydCByZXN1bHQgdHlwZTogXCIgKyAocmVzdWx0IGFzIGFueSkudHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3JlQ2FudmFzKGRhdGE6IENhbnZhcykge1xuICAgICAgICB0aGlzLmRhdGFzdG9yZS5zdG9yZShkYXRhLCAob2JqZWN0LCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgc3RvcmUob2JqZWN0LiRjYXJkcywgKGNhcmQsIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhcmQgaW5zdGFuY2VvZiBDYW52YXNUZXh0Q2FyZCkge1xuICAgICAgICAgICAgICAgICAgICBzdG9yZShjYXJkLiRzZWN0aW9ucywgKHNlY3Rpb24sIHN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZShzZWN0aW9uLiRibG9ja3MsIChibG9jaywgc3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2sgaW5zdGFuY2VvZiBNYXJrZG93bkxpc3RCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWN1cnNpdmUgc3RvcmUgZnVuY3Rpb24gZm9yIHN0b3JpbmcgbGlzdCBoZWlyYXJjaGllcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmVSZWM6IFN1YnN0b3JlcjxNYXJrZG93bkxpc3RJdGVtPiA9IChpdGVtLCBzdG9yZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlKGl0ZW0uJGVsZW1lbnRzLCBzdG9yZVJlYyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUoYmxvY2suJGVsZW1lbnRzLCBzdG9yZVJlYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogU3RvcmUgYSBtYXJrZG93biBkb2N1bWVudC4gKi9cbiAgICBwdWJsaWMgc3RvcmVNYXJrZG93bihkYXRhOiBNYXJrZG93blBhZ2UpIHtcbiAgICAgICAgdGhpcy5kYXRhc3RvcmUuc3RvcmUoZGF0YSwgKG9iamVjdCwgc3RvcmUpID0+IHtcbiAgICAgICAgICAgIHN0b3JlKG9iamVjdC4kc2VjdGlvbnMsIChzZWN0aW9uLCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN0b3JlKHNlY3Rpb24uJGJsb2NrcywgKGJsb2NrLCBzdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2sgaW5zdGFuY2VvZiBNYXJrZG93bkxpc3RCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjdXJzaXZlIHN0b3JlIGZ1bmN0aW9uIGZvciBzdG9yaW5nIGxpc3QgaGVpcmFyY2hpZXMuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZVJlYzogU3Vic3RvcmVyPE1hcmtkb3duTGlzdEl0ZW0+ID0gKGl0ZW0sIHN0b3JlKSA9PiBzdG9yZShpdGVtLiRlbGVtZW50cywgc3RvcmVSZWMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZShibG9jay4kZWxlbWVudHMsIHN0b3JlUmVjKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEV2ZW50IHByb3BvZ2F0aW9uLlxuXG4gICAgLyoqIENhbGxlZCB3aGVuZXZlciB0aGUgaW5kZXggdXBkYXRlcyB0byBhIG5ldyByZXZpc2lvbi4gVGhpcyBpcyB0aGUgYnJvYWRlc3QgcG9zc2libGUgZGF0YWNvcmUgZXZlbnQuICovXG4gICAgcHVibGljIG9uKGV2dDogXCJ1cGRhdGVcIiwgY2FsbGJhY2s6IChyZXZpc2lvbjogbnVtYmVyKSA9PiBhbnksIGNvbnRleHQ/OiBhbnkpOiBFdmVudFJlZjtcbiAgICBwdWJsaWMgb24oZXZ0OiBcImluaXRpYWxpemVkXCIsIGNhbGxiYWNrOiAoKSA9PiBhbnksIGNvbnRleHQ/OiBhbnkpOiBFdmVudFJlZjtcblxuICAgIG9uKGV2dDogc3RyaW5nLCBjYWxsYmFjazogKC4uLmRhdGE6IGFueSkgPT4gYW55LCBjb250ZXh0PzogYW55KTogRXZlbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHMub24oZXZ0LCBjYWxsYmFjaywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIFVuc3Vic2NyaWJlIGZyb20gYW4gZXZlbnQgdXNpbmcgdGhlIGV2ZW50IGFuZCBvcmlnaW5hbCBjYWxsYmFjay4gKi9cbiAgICBvZmYoZXZ0OiBzdHJpbmcsIGNhbGxiYWNrOiAoLi4uZGF0YTogYW55KSA9PiBhbnkpIHtcbiAgICAgICAgdGhpcy5ldmVudHMub2ZmKGV2dCwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKiBVbnN1YnNjcmliZSBmcm9tIGFuIGV2ZW50IHVzaW5nIHRoZSBldmVudCByZWZlcmVuY2UuICAqL1xuICAgIG9mZnJlZihyZWY6IEV2ZW50UmVmKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzLm9mZnJlZihyZWYpO1xuICAgIH1cblxuICAgIC8qKiBUcmlnZ2VyIGFuIHVwZGF0ZSBldmVudC4gKi9cbiAgICBwcml2YXRlIHRyaWdnZXIoZXZ0OiBcInVwZGF0ZVwiLCByZXZpc2lvbjogbnVtYmVyKTogdm9pZDtcbiAgICAvKiogVHJpZ2dlciBhbiBpbml0aWFsaXphdGlvbiBldmVudC4gKi9cbiAgICBwcml2YXRlIHRyaWdnZXIoZXZ0OiBcImluaXRpYWxpemVkXCIpOiB2b2lkO1xuXG4gICAgLyoqIFRyaWdnZXIgYW4gZXZlbnQuICovXG4gICAgcHJpdmF0ZSB0cmlnZ2VyKGV2dDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKGV2dCwgLi4uYXJncyk7XG4gICAgfVxufVxuXG4vKiogTGlmZWN5Y2xlLXJlc3BlY3RpbmcgZmlsZSBxdWV1ZSB3aGljaCB3aWxsIGltcG9ydCBmaWxlcywgcmVhZGluZyB0aGVtIGZyb20gdGhlIGZpbGUgY2FjaGUgaWYgbmVlZGVkLiAqL1xuZXhwb3J0IGNsYXNzIERhdGFjb3JlSW5pdGlhbGl6ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIC8qKiBOdW1iZXIgb2YgY29uY3VycmVudCBvcGVyYXRpb25zIHRoZSBpbml0aWFsaXplciB3aWxsIHBlcmZvcm0uICovXG4gICAgc3RhdGljIEJBVENIX1NJWkU6IG51bWJlciA9IDg7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGNvbnRpbnVlIHRvIHJ1bi4gKi9cbiAgICBhY3RpdmU6IGJvb2xlYW47XG5cbiAgICAvKiogUXVldWUgb2YgZmlsZXMgdG8gc3RpbGwgaW1wb3J0LiAqL1xuICAgIHF1ZXVlOiBURmlsZVtdO1xuICAgIC8qKiBUaGUgZmlsZXMgYWN0aXZlbHkgYmVpbmcgaW1wb3J0ZWQuICovXG4gICAgY3VycmVudDogVEZpbGVbXTtcbiAgICAvKiogRGVmZXJyZWQgcHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuIGltcG9ydGluZyBpcyBkb25lLiAqL1xuICAgIGRvbmU6IERlZmVycmVkPEluaXRpYWxpemF0aW9uU3RhdHM+O1xuXG4gICAgLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgdGFyZ2V0IGZpbGVzIHRvIGltcG9ydC4gKi9cbiAgICB0YXJnZXRUb3RhbDogbnVtYmVyO1xuICAgIC8qKiBUaGUgdGltZSB0aGF0IGluaXQgc3RhcnRlZCBpbiBtaWxsaXNlY29uZHMuICovXG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGZpbGVzIHRvIGltcG9ydC4gKi9cbiAgICBmaWxlczogbnVtYmVyO1xuICAgIC8qKiBUb3RhbCBudW1iZXIgb2YgaW1wb3J0ZWQgZmlsZXMgc28gZmFyLiAqL1xuICAgIGluaXRpYWxpemVkOiBudW1iZXI7XG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBpbXBvcnRlZCBmaWxlcy4gKi9cbiAgICBpbXBvcnRlZDogbnVtYmVyO1xuICAgIC8qKiBUb3RhbCBudW1iZXIgb2Ygc2tpcHBlZCBmaWxlcy4gKi9cbiAgICBza2lwcGVkOiBudW1iZXI7XG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBjYWNoZWQgZmlsZXMuICovXG4gICAgY2FjaGVkOiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29yZTogRGF0YWNvcmUpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnF1ZXVlID0gdGhpcy5jb3JlLnZhdWx0LmdldEZpbGVzKCk7XG4gICAgICAgIHRoaXMudGFyZ2V0VG90YWwgPSB0aGlzLnF1ZXVlLmxlbmd0aDtcbiAgICAgICAgdGhpcy5maWxlcyA9IHRoaXMucXVldWUubGVuZ3RoO1xuICAgICAgICB0aGlzLnN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gW107XG4gICAgICAgIHRoaXMuZG9uZSA9IGRlZmVycmVkKCk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRoaXMuaW1wb3J0ZWQgPSB0aGlzLnNraXBwZWQgPSB0aGlzLmNhY2hlZCA9IDA7XG4gICAgfVxuXG4gICAgYXN5bmMgb25sb2FkKCkge1xuICAgICAgICAvLyBRdWV1ZSBCQVRDSF9TSVpFIGVsZW1lbnRzIGZyb20gdGhlIHF1ZXVlIHRvIGltcG9ydC5cbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMucnVuTmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBQcm9taXNlIHdoaWNoIHJlc29sdmVzIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlcy4gKi9cbiAgICBmaW5pc2hlZCgpOiBQcm9taXNlPEluaXRpYWxpemF0aW9uU3RhdHM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9uZTtcbiAgICB9XG5cbiAgICAvKiogQ2FuY2VsIGluaXRpYWxpemF0aW9uLiAqL1xuICAgIG9udW5sb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRvbmUucmVqZWN0KFwiSW5pdGlhbGl6YXRpb24gd2FzIGNhbmNlbGxlZCBiZWZvcmUgY29tcGxldGluZy5cIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUG9sbCBmb3IgYW5vdGhlciB0YXNrIHRvIGV4ZWN1dGUgZnJvbSB0aGUgcXVldWUuICovXG4gICAgcHJpdmF0ZSBydW5OZXh0KCkge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG1heCBudW1iZXIgb2YgY29uY3VycmVudCBvcGVyYXRpb25zIGFscmVhZHkgcnVubmluZy5cbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZSB8fCB0aGlzLmN1cnJlbnQubGVuZ3RoID49IERhdGFjb3JlSW5pdGlhbGl6ZXIuQkFUQ0hfU0laRSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlcmUgaXMgc3BhY2UgYXZhaWxhYmxlIHRvIGV4ZWN1dGUgYW5vdGhlci5cbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMucXVldWUucG9wKCk7XG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQucHVzaChuZXh0KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdChuZXh0KVxuICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHRoaXMuaGFuZGxlUmVzdWx0KG5leHQsIHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKChyZXN1bHQpID0+IHRoaXMuaGFuZGxlUmVzdWx0KG5leHQsIHJlc3VsdCkpO1xuXG4gICAgICAgICAgICB0aGlzLnJ1bk5leHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICghbmV4dCAmJiB0aGlzLmN1cnJlbnQubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIEFsbCB3b3JrIGlzIGRvbmUsIHJlc29sdmUuXG4gICAgICAgICAgICB0aGlzLmRvbmUucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgZHVyYXRpb25NczogRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnQsXG4gICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXMsXG4gICAgICAgICAgICAgICAgaW1wb3J0ZWQ6IHRoaXMuaW1wb3J0ZWQsXG4gICAgICAgICAgICAgICAgc2tpcHBlZDogdGhpcy5za2lwcGVkLFxuICAgICAgICAgICAgICAgIGNhY2hlZDogdGhpcy5jYWNoZWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQcm9jZXNzIHRoZSByZXN1bHQgb2YgYW4gaW5pdGlhbGl6YXRpb24gYW5kIHF1ZXVlIG1vcmUgcnVucy4gKi9cbiAgICBwcml2YXRlIGhhbmRsZVJlc3VsdChmaWxlOiBURmlsZSwgcmVzdWx0OiBJbml0aWFsaXphdGlvblJlc3VsdCkge1xuICAgICAgICB0aGlzLmN1cnJlbnQucmVtb3ZlKGZpbGUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkKys7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwic2tpcHBlZFwiKSB0aGlzLnNraXBwZWQrKztcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJpbXBvcnRlZFwiKSB0aGlzLmltcG9ydGVkKys7XG4gICAgICAgIGVsc2UgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiY2FjaGVkXCIpIHRoaXMuY2FjaGVkKys7XG5cbiAgICAgICAgLy8gUXVldWUgbW9yZSBqb2JzIGZvciBwcm9jZXNzaW5nLlxuICAgICAgICB0aGlzLnJ1bk5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogSW5pdGlhbGl6ZSBhIHNwZWNpZmljIGZpbGUuICovXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0KGZpbGU6IFRGaWxlKTogUHJvbWlzZTxJbml0aWFsaXphdGlvblJlc3VsdD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGxvYWRpbmcgbWFya2Rvd24gZmlsZXMgZnJvbSBjYWNoZS5cbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuY29yZS5wZXJzaXN0ZXIubG9hZEZpbGUoZmlsZS5wYXRoKTtcbiAgICAgICAgICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLnRpbWUgPj0gZmlsZS5zdGF0Lm10aW1lICYmIGNhY2hlZC52ZXJzaW9uID09IHRoaXMuY29yZS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuZXh0ZW5zaW9uID09PSBcIm1kXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IE1hcmtkb3duUGFnZS5mcm9tKGNhY2hlZC5kYXRhIGFzIEpzb25NYXJrZG93blBhZ2UsIChsaW5rKSA9PiBsaW5rKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3JlLnN0b3JlTWFya2Rvd24oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJjYWNoZWRcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRG9lcyBub3QgbWF0Y2ggYW4gZXhpc3RpbmcgaW1wb3J0IHR5cGUsIGp1c3QgcmVsb2FkIG5vcm1hbGx5LlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb3JlLnJlbG9hZChmaWxlKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJpbXBvcnRlZFwiIH07XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFjb3JlOiBGYWlsZWQgdG8gaW1wb3J0IGZpbGU6IFwiLCBleCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwic2tpcHBlZFwiIH07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBTdGF0aXN0aWNzIGFib3V0IGEgc3VjY2Vzc2Z1bCB2YXVsdCBpbml0aWFsaXphdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdGlhbGl6YXRpb25TdGF0cyB7XG4gICAgLyoqIEhvdyBsb25nIGluaXRpYWxpemF0b24gdG9vayBpbiBtaWxpc2Vjb25kcy4gKi9cbiAgICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBmaWxlcyB0aGF0IHdlcmUgaW1wb3J0ZWQgKi9cbiAgICBmaWxlczogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGZpbGVzIHRoYXQgd2VyZSBsb2FkZWQgYW5kIGltcG9ydGVkIHZpYSBiYWNrZ3JvdW5kIHdvcmtlcnMuICovXG4gICAgaW1wb3J0ZWQ6IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiBmaWxlcyB0aGF0IHdlcmUgc2tpcHBlZCBkdWUgdG8gbm8gbG9uZ2VyIGV4aXN0aW5nIG9yIG5vdCBiZWluZyByZWFkeS4gKi9cbiAgICBza2lwcGVkOiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2YgZmlsZXMgbG9hZGVkIGZyb20gdGhlIEluZGV4ZWREQiBjYWNoZS4gKi9cbiAgICBjYWNoZWQ6IG51bWJlcjtcbn1cblxuLyoqIFRoZSByZXN1bHQgb2YgaW5pdGlhbGl6aW5nIGEgZmlsZS4gKi9cbmludGVyZmFjZSBJbml0aWFsaXphdGlvblJlc3VsdCB7XG4gICAgc3RhdHVzOiBcInNraXBwZWRcIiB8IFwiaW1wb3J0ZWRcIiB8IFwiY2FjaGVkXCI7XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCJleHByZXNzaW9uL2xpbmtcIjtcbmltcG9ydCB7IEZJTEVfVFlQRSwgRmlsZSwgSW5kZXhhYmxlLCBMSU5LQUJMRV9UWVBFLCBMaW5rYWJsZSB9IGZyb20gXCIuL2luZGV4YWJsZVwiO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcbmltcG9ydCB7IEV4dHJhY3RvcnMsIEZJRUxEQkVBUklOR19UWVBFLCBGaWVsZEV4dHJhY3RvciwgRmllbGRiZWFyaW5nIH0gZnJvbSBcImV4cHJlc3Npb24vZmllbGRcIjtcbmltcG9ydCB7IExpdGVyYWwgfSBmcm9tIFwiZXhwcmVzc2lvbi9saXRlcmFsXCI7XG5cbi8qKiBEYXRhY29yZSByZXByZXNlbnRhdGlvbiBvZiBhIGdlbmVyaWMgZmlsZSB3aXRoIG5vIGFkZGl0aW9uYWwgcGFyc2luZy4gKi9cbmV4cG9ydCBjbGFzcyBHZW5lcmljRmlsZSBpbXBsZW1lbnRzIEZpbGUsIEluZGV4YWJsZSwgRmllbGRiZWFyaW5nLCBMaW5rYWJsZSB7XG4gICAgc3RhdGljIFRZUEVTOiBzdHJpbmdbXSA9IFtGSUxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFLCBMSU5LQUJMRV9UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBHZW5lcmljRmlsZS5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiRmlsZVwiO1xuXG4gICAgJHBhdGg6IHN0cmluZztcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIGNyZWF0ZWQuICovXG4gICAgJGN0aW1lOiBEYXRlVGltZTtcbiAgICAvKiogT2JzaWRpYW4tcHJvdmlkZWQgZGF0ZSB0aGlzIHBhZ2Ugd2FzIG1vZGlmaWVkLiAqL1xuICAgICRtdGltZTogRGF0ZVRpbWU7XG4gICAgLyoqIE9ic2lkaWFuLXByb3ZpZGVkIHNpemUgb2YgdGhpcyBwYWdlIGluIGJ5dGVzLiAqL1xuICAgICRzaXplOiBudW1iZXI7XG4gICAgLyoqIFRoZSBleHRlbnNpb24gb2YgdGhlIGZpbGUuICovXG4gICAgJGV4dGVuc2lvbjogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZywgY3RpbWU6IERhdGVUaW1lLCBtdGltZTogRGF0ZVRpbWUsIHNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLiRwYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy4kY3RpbWUgPSBjdGltZTtcbiAgICAgICAgdGhpcy4kbXRpbWUgPSBtdGltZTtcbiAgICAgICAgdGhpcy4kc2l6ZSA9IHNpemU7XG5cbiAgICAgICAgY29uc3QgbGFzdERvdCA9IHBhdGgubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgICAgICB0aGlzLiRleHRlbnNpb24gPSBsYXN0RG90IDwgMCA/IFwiXCIgOiBwYXRoLnN1YnN0cmluZyhsYXN0RG90ICsgMSk7XG4gICAgfVxuXG4gICAgZ2V0IGZpZWxkcygpIHtcbiAgICAgICAgcmV0dXJuIEdlbmVyaWNGaWxlLkZJRUxEX0RFRih0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmllbGQoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEdlbmVyaWNGaWxlLkZJRUxEX0RFRih0aGlzLCBrZXkpPy5bMF07XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZC4gKi9cbiAgICBwdWJsaWMgdmFsdWUoa2V5OiBzdHJpbmcpOiBMaXRlcmFsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoa2V5KT8udmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIFVuaXF1ZSBJRCBmb3IgdGhpcyBvYmplY3QuICovXG4gICAgZ2V0ICRpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy4kcGF0aDtcbiAgICB9XG5cbiAgICAvKiogVGhlIGZpbGUgZm9yIHRoZSBmaWxlIGlzIHRoZSBmaWxlLiAqL1xuICAgIGdldCAkZmlsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy4kcGF0aDtcbiAgICB9XG5cbiAgICAvKiogQSBsaW5rIHRvIHRoZSBmaWxlLiAqL1xuICAgIGdldCAkbGluaygpOiBMaW5rIHtcbiAgICAgICAgcmV0dXJuIExpbmsuZmlsZSh0aGlzLiRwYXRoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBGSUVMRF9ERUY6IEZpZWxkRXh0cmFjdG9yPEdlbmVyaWNGaWxlPiA9IEV4dHJhY3RvcnMuaW50cmluc2ljcygpO1xufVxuIiwgImltcG9ydCB7IFF1ZXVlIH0gZnJvbSBcIkBkYXRhc3RydWN0dXJlcy1qcy9xdWV1ZVwiO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSBcImFwaS9yZXN1bHRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgVEZpbGUsIFZhdWx0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBEZWZlcnJlZCwgZGVmZXJyZWQgfSBmcm9tIFwidXRpbHMvZGVmZXJyZWRcIjtcblxuLyoqIFF1ZXVlcyB1cCBsb2FkcyBvZiBmaWxlcyB0byByZWR1Y2UgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgbG9hZHMuICovXG5leHBvcnQgY2xhc3MgRW1iZWRRdWV1ZSBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgLyoqIFNldCBvZiBwZW5kaW5nIGxvYWRzLiAqL1xuICAgIHByaXZhdGUgcXVldWU6IFF1ZXVlPFRGaWxlPiA9IG5ldyBRdWV1ZSgpO1xuICAgIC8qKiBTZXQgb2YgcHJvbWlzZXMgd2FpdGluZyBvbiBlYWNoIHBhdGguICovXG4gICAgcHJpdmF0ZSBwcm9taXNlczogTWFwPHN0cmluZywgRGVmZXJyZWQ8c3RyaW5nPltdPiA9IG5ldyBNYXAoKTtcbiAgICAvKiogQWN0aXZlIHNldCBvZiBsb2Fkcy4gKi9cbiAgICBwcml2YXRlIGFjdGl2ZTogTWFwPHN0cmluZywgUHJvbWlzZTxzdHJpbmc+PiA9IG5ldyBNYXAoKTtcbiAgICAvKiogSWYgdHJ1ZSwgcHJldmVudCBhbnkgZnVydGhlciBsb2Fkcy4gKi9cbiAgICBwcml2YXRlIHNodXRkb3duOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHZhdWx0OiBWYXVsdCwgcHVibGljIGNvbmN1cnJlbmN5OiAoKSA9PiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKiogUmVhZCBhIGZpbGUgYXN5bmNocm9ub3VzbHksIGNvbnRyb2xsaW5nIGNvbmN1cnJlbmN5IHRvIHByZXZlbnQgdG9vIG1hbnkgZmlsZXMgYmVpbmcgbG9hZGVkIHNpbXVsdGFuZW91c2x5LiAqL1xuICAgIHB1YmxpYyBhc3luYyByZWFkKGZpbGU6IFRGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKHRoaXMuc2h1dGRvd24pIHJldHVybiBQcm9taXNlLnJlamVjdChcIkVtYmVkIHF1ZXVlIGlzIHNodXRkb3duLlwiKTtcblxuICAgICAgICBjb25zdCBwcm9taXNlID0gZGVmZXJyZWQ8c3RyaW5nPigpO1xuXG4gICAgICAgIC8vIElmIHdlIGFyZW4ndCBhbHJlYWR5IGluIHRoZSBxdWV1ZSwgYWRkIG91cnNlbHZlcyB0byBxdWV1ZS4gT3RoZXJ3aXNlIGp1c3QgYXBwZW5kIG91dHNlbGZzIHRvIHRoZSBpbnRlcmVzdGVkIHdhdGNoZXIgZm9yIHRoZSBxdWV1ZS5cbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VzLmhhcyhmaWxlLnBhdGgpKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXVlLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB0aGlzLnByb21pc2VzLnNldChmaWxlLnBhdGgsIFtwcm9taXNlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb21pc2VzLmdldChmaWxlLnBhdGgpIS5wdXNoKHByb21pc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zY2hlZHVsZSgpO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICAvKiogU2NoZWR1bGUgbW9yZSBsb2FkcyBmcm9tIHRoZSBxdWV1ZSBpbnRvIHRoZSBhY3RpdmUgc2V0IGlmIHRoZXJlIGlzIGF2YWlsYWJsZSBzcGFjZS4gKi9cbiAgICBwcml2YXRlIHNjaGVkdWxlKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5hY3RpdmUuc2l6ZSA8IHRoaXMuY29uY3VycmVuY3koKSAmJiB0aGlzLnF1ZXVlLnNpemUoKSA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSB0aGlzLnF1ZXVlLnBvcCgpITtcblxuICAgICAgICAgICAgY29uc3QgcmVhZCA9IHRoaXMudmF1bHQuY2FjaGVkUmVhZChmaWxlKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlLnNldChmaWxlLnBhdGgsIHJlYWQpO1xuXG4gICAgICAgICAgICByZWFkLnRoZW4oKGNvbnRlbnQpID0+IHRoaXMuZmluaXNoKGZpbGUsIFJlc3VsdC5zdWNjZXNzKGNvbnRlbnQpKSkuY2F0Y2goKGVycm9yKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoKGZpbGUsIFJlc3VsdC5mYWlsdXJlKGVycm9yKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ29tbXVuaWNhdGUgdGhlIHJlc3VsdCBvZiBhIGxvYWRlZCBmaWxlIGFuZCB0aGVuIHNjaGVkdWxlIG1vcmUgZmlsZXMgdG8gYmUgbG9hZGVkLiAqL1xuICAgIHByaXZhdGUgZmluaXNoKGZpbGU6IFRGaWxlLCByZXN1bHQ6IFJlc3VsdDxzdHJpbmcsIGFueT4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUuZGVsZXRlKGZpbGUucGF0aCk7XG5cbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnByb21pc2VzLmdldChmaWxlLnBhdGgpID8/IFtdO1xuICAgICAgICB0aGlzLnByb21pc2VzLmRlbGV0ZShmaWxlLnBhdGgpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgcHJvbWlzZXMuZm9yRWFjaCgocHJvbWlzZSkgPT4gcHJvbWlzZS5yZXNvbHZlKHJlc3VsdC52YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvbWlzZXMuZm9yRWFjaCgocHJvbWlzZSkgPT4gcHJvbWlzZS5yZWplY3QocmVzdWx0LmVycm9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjaGVkdWxlKCk7XG4gICAgfVxuXG4gICAgLyoqIENhbmNlbGwgYWxsIG91dHN0YW5kaW5nIGxvYWRzIG9uIHVubG9hZC4gKi9cbiAgICBwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIC8vIFJlamVjdCBhbGwgb3V0c3RhbmRpbmcgbG9hZHMuXG4gICAgICAgIGZvciAoY29uc3QgcHJvbWlzZXMgb2YgdGhpcy5wcm9taXNlcy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgcHJvbWlzZXMuZm9yRWFjaCgocHJvbWlzZSkgPT4gcHJvbWlzZS5yZWplY3QoXCJFbWJlZCBxdWV1ZSBpcyBzaHV0dGluZyBkb3duLlwiKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNodXRkb3duID0gdHJ1ZTtcbiAgICB9XG59XG4iLCAiLyoqXG4gKiBAbW9kdWxlIGluZGV4YWJsZXNcbiAqL1xuaW1wb3J0IHsgRXh0cmFjdG9ycywgRmllbGQsIEZpZWxkYmVhcmluZywgRklFTERCRUFSSU5HX1RZUEUsIEZpZWxkRXh0cmFjdG9yIH0gZnJvbSBcImV4cHJlc3Npb24vZmllbGRcIjtcbmltcG9ydCB7IEZJTEVfVFlQRSwgSW5kZXhhYmxlLCBMaW5rYWJsZSwgTElOS0FCTEVfVFlQRSwgTGlua2JlYXJpbmcsIFRhZ2dhYmxlLCBUQUdHQUJMRV9UWVBFIH0gZnJvbSBcIi4vaW5kZXhhYmxlXCI7XG5pbXBvcnQge1xuICAgIENhcmREaW1lbnNpb25zLFxuICAgIENhcmRQb3MsXG4gICAgSnNvbkJhc2VDYW52YXNDYXJkLFxuICAgIEpzb25DYW52YXMsXG4gICAgSnNvbkNhbnZhc0NhcmQsXG4gICAgSnNvbkNhbnZhc0ZpbGVDYXJkLFxuICAgIEpzb25DYW52YXNUZXh0Q2FyZCxcbiAgICBKc29uQ2FudmFzV2ViQ2FyZCxcbn0gZnJvbSBcIi4vanNvbi9jYW52YXNcIjtcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSBcImx1eG9uXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcImV4cHJlc3Npb24vbGlua1wiO1xuaW1wb3J0IHtcbiAgICBGcm9udG1hdHRlckVudHJ5LFxuICAgIExpbmtOb3JtYWxpemVyLFxuICAgIE1hcmtkb3duU2VjdGlvbixcbiAgICBOT09QX05PUk1BTElaRVIsXG4gICAgbm9ybWFsaXplTGlua3MsXG4gICAgdmFsdWVGcm9udG1hdHRlckVudHJ5LFxufSBmcm9tIFwiLi9tYXJrZG93blwiO1xuaW1wb3J0IHsgSW5saW5lRmllbGQgfSBmcm9tIFwiaW5kZXgvaW1wb3J0L2lubGluZS1maWVsZFwiO1xuaW1wb3J0IHsgRmlsZSB9IGZyb20gXCJpbmRleC90eXBlcy9pbmRleGFibGVcIjtcbmltcG9ydCB7IG1hcE9iamVjdFZhbHVlcyB9IGZyb20gXCJ1dGlscy9kYXRhXCI7XG5cbi8qKiBBIGNhbnZhcyBmaWxlLCBjb25zaXN0aW5nIG9mIGEgc2V0IG9mIGNhbnZhcyBjYXJkcy4gKi9cbmV4cG9ydCBjbGFzcyBDYW52YXMgaW1wbGVtZW50cyBMaW5rYWJsZSwgRmlsZSwgTGlua2JlYXJpbmcsIFRhZ2dhYmxlLCBJbmRleGFibGUsIEZpZWxkYmVhcmluZyB7XG4gICAgc3RhdGljIFRZUEVTID0gW0ZJTEVfVFlQRSwgXCJjYW52YXNcIiwgVEFHR0FCTEVfVFlQRSwgTElOS0FCTEVfVFlQRSwgRklFTERCRUFSSU5HX1RZUEVdO1xuXG4gICAgJHR5cGVzOiBzdHJpbmdbXSA9IENhbnZhcy5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiQ2FudmFzXCI7XG5cbiAgICAkY3RpbWU6IERhdGVUaW1lO1xuICAgICRtdGltZTogRGF0ZVRpbWU7XG5cbiAgICAkZXh0ZW5zaW9uOiBzdHJpbmcgPSBcImNhbnZhc1wiO1xuXG4gICAgZ2V0ICRmaWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4kcGF0aDtcbiAgICB9XG5cbiAgICBnZXQgJGlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4kcGF0aDtcbiAgICB9XG5cbiAgICBnZXQgJGxpbmsoKSB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy4kcGF0aCk7XG4gICAgfVxuXG4gICAgJHBhdGg6IHN0cmluZztcbiAgICAkY2FyZHM6IEJhc2VDYW52YXNDYXJkW10gPSBbXTtcbiAgICAkc2l6ZTogbnVtYmVyID0gMDtcbiAgICAkdGFnczogc3RyaW5nW107XG4gICAgJGxpbmtzOiBMaW5rW107XG4gICAgJGluZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBJbmxpbmVGaWVsZD47XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8Q2FudmFzPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgIH1cblxuICAgIGdldCBmaWVsZHMoKTogRmllbGRbXSB7XG4gICAgICAgIHJldHVybiBDYW52YXMuRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZyk6IEZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIENhbnZhcy5GSUVMRF9ERUYodGhpcywga2V5KT8uWzBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25DYW52YXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGNhcmRzOiB0aGlzLiRjYXJkcy5tYXAoKHgpID0+IHguanNvbigpKSBhcyBKc29uQ2FudmFzQ2FyZFtdLFxuICAgICAgICAgICAgJGN0aW1lOiB0aGlzLiRjdGltZS50b01pbGxpcygpLFxuICAgICAgICAgICAgJG10aW1lOiB0aGlzLiRtdGltZS50b01pbGxpcygpLFxuICAgICAgICAgICAgJHNpemU6IHRoaXMuJHNpemUsXG4gICAgICAgICAgICAkbGlua3M6IHRoaXMuJGxpbmtzLFxuICAgICAgICAgICAgJHBhdGg6IHRoaXMuJHBhdGgsXG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMuJGluZmllbGRzLFxuICAgICAgICAgICAgJHRhZ3M6IHRoaXMuJHRhZ3MsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb20ocmF3OiBKc29uQ2FudmFzLCBub3JtYWxpemVyOiBMaW5rTm9ybWFsaXplciA9IE5PT1BfTk9STUFMSVpFUik6IENhbnZhcyB7XG4gICAgICAgIGNvbnN0IGNhcmRzID0gcmF3LiRjYXJkc1xuICAgICAgICAgICAgLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAocy4kdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwidGV4dC1jYXJkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2FudmFzVGV4dENhcmQuZnJvbShzLCByYXcuJHBhdGgsIG5vcm1hbGl6ZXIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZmlsZS1jYXJkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2FudmFzRmlsZUNhcmQuZnJvbShzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndlYi1jYXJkXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2FudmFzV2ViQ2FyZC5mcm9tKHMsIHJhdy4kcGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpOiB4IGlzIENhbnZhc1RleHRDYXJkID0+ICEheCk7XG4gICAgICAgIHJldHVybiBuZXcgQ2FudmFzKHtcbiAgICAgICAgICAgICRjYXJkczogY2FyZHMsXG4gICAgICAgICAgICAkY3RpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRjdGltZSksXG4gICAgICAgICAgICAkbXRpbWU6IERhdGVUaW1lLmZyb21NaWxsaXMocmF3LiRtdGltZSksXG4gICAgICAgICAgICAkc2l6ZTogcmF3LiRzaXplLFxuICAgICAgICAgICAgJGV4dGVuc2lvbjogXCJjYW52YXNcIixcbiAgICAgICAgICAgICRwYXRoOiByYXcuJHBhdGgsXG4gICAgICAgICAgICAkbGlua3M6IHJhdy4kbGlua3MubWFwKChsKSA9PiBub3JtYWxpemVyKExpbmsuZnJvbU9iamVjdChsKSkpLFxuICAgICAgICAgICAgJGluZmllbGRzOiByYXcuJGluZmllbGRzLFxuICAgICAgICAgICAgJHRhZ3M6IHJhdy4kdGFncyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgc3RhdGljIEZJRUxEX0RFRjogRmllbGRFeHRyYWN0b3I8Q2FudmFzPiA9IEV4dHJhY3RvcnMubWVyZ2UoXG4gICAgICAgIEV4dHJhY3RvcnMuaW5saW5lRmllbGRzKChmKSA9PiBmLiRpbmZpZWxkcyksXG4gICAgICAgIEV4dHJhY3RvcnMuaW50cmluc2ljcygpXG4gICAgKTtcbn1cblxuLyoqIEFsbCBzdXBwb3J0ZWQgY2FudmFzIGNhcmQgdHlwZXMuICovXG5leHBvcnQgdHlwZSBDYW52YXNDYXJkID0gQ2FudmFzVGV4dENhcmQgfCBDYW52YXNGaWxlQ2FyZCB8IENhbnZhc1dlYkNhcmQ7XG5cbi8qKiBTaGFyZWQgbWV0YWRhdGEgZm9yIGFsbCBjYW52YXMgY2FyZHMuICovXG5hYnN0cmFjdCBjbGFzcyBCYXNlQ2FudmFzQ2FyZCBpbXBsZW1lbnRzIEluZGV4YWJsZSwgTGlua2FibGUge1xuICAgIGFic3RyYWN0ICR0eXBlczogc3RyaW5nW107XG4gICAgYWJzdHJhY3QgJHR5cGVuYW1lOiBzdHJpbmc7XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgJHR5cGU6IHN0cmluZztcblxuICAgICRyZXZpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAkaWQ6IHN0cmluZztcbiAgICAkcG9zaXRpb246IENhcmRQb3M7XG4gICAgJGRpbWVuc2lvbnM6IENhcmREaW1lbnNpb25zO1xuICAgICRwYXJlbnQ/OiBJbmRleGFibGU7XG4gICAgJGZpbGU6IHN0cmluZztcbiAgICAkY29sb3I/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdDogUGFydGlhbDxCYXNlQ2FudmFzQ2FyZD4pIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBpbml0KTtcbiAgICB9XG5cbiAgICBnZXQgJGxpbmsoKTogTGluayB7XG4gICAgICAgIHJldHVybiBMaW5rLmZpbGUodGhpcy4kZmlsZSkud2l0aEJsb2NrKHRoaXMuJGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMganNvbigpOiBKc29uQmFzZUNhbnZhc0NhcmQge1xuICAgICAgICBjb25zdCB7ICRpZCwgJHBvc2l0aW9uLCAkY29sb3IsICRkaW1lbnNpb25zLCAkZmlsZSwgJGxpbmsgfSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkaWQsXG4gICAgICAgICAgICAkcG9zaXRpb24sXG4gICAgICAgICAgICAkY29sb3IsXG4gICAgICAgICAgICAkZGltZW5zaW9ucyxcbiAgICAgICAgICAgICRmaWxlLFxuICAgICAgICAgICAgJGxpbms6ICRsaW5rLnRvT2JqZWN0KCksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKiogQ2FudmFzIGNhcmQgd2l0aCBtYXJrZG93biB0ZXh0IGluIGl0LiAqL1xuZXhwb3J0IGNsYXNzIENhbnZhc1RleHRDYXJkIGV4dGVuZHMgQmFzZUNhbnZhc0NhcmQgaW1wbGVtZW50cyBMaW5rYmVhcmluZywgVGFnZ2FibGUsIEluZGV4YWJsZSwgRmllbGRiZWFyaW5nIHtcbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJjYW52YXMtY2FyZFwiLCBcIm1hcmtkb3duXCIsIFwiY2FudmFzLXRleHQtY2FyZFwiLCBUQUdHQUJMRV9UWVBFLCBMSU5LQUJMRV9UWVBFLCBGSUVMREJFQVJJTkdfVFlQRV07XG5cbiAgICAkdHlwZXM6IHN0cmluZ1tdID0gQ2FudmFzVGV4dENhcmQuVFlQRVM7XG4gICAgJHR5cGVuYW1lOiBzdHJpbmcgPSBcIlRleHQgQ2FyZFwiO1xuICAgICR0eXBlOiBzdHJpbmcgPSBcImNhbnZhcy1jYXJkXCI7XG4gICAgJGlkOiBzdHJpbmc7XG5cbiAgICAkZmlsZTogc3RyaW5nO1xuICAgICRsaW5rczogTGlua1tdO1xuICAgICR0YWdzOiBzdHJpbmdbXTtcbiAgICAkdGl0bGU6IHN0cmluZztcbiAgICAkcGFyZW50PzogSW5kZXhhYmxlO1xuICAgICRyZXZpc2lvbj86IG51bWJlcjtcbiAgICAkaW5maWVsZHM6IFJlY29yZDxzdHJpbmcsIElubGluZUZpZWxkPjtcbiAgICAkZnJvbnRtYXR0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBGcm9udG1hdHRlckVudHJ5PjtcblxuICAgICRkaW1lbnNpb25zOiBDYXJkRGltZW5zaW9ucztcbiAgICAkc2VjdGlvbnM6IE1hcmtkb3duU2VjdGlvbltdO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPENhbnZhc1RleHRDYXJkPikge1xuICAgICAgICBzdXBlcihpbml0KTtcbiAgICB9XG5cbiAgICBnZXQgZmllbGRzKCk6IEZpZWxkW10ge1xuICAgICAgICByZXR1cm4gQ2FudmFzVGV4dENhcmQuRklFTERfREVGKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWVsZChrZXk6IHN0cmluZyk6IEZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIENhbnZhc1RleHRDYXJkLkZJRUxEX0RFRih0aGlzLCBrZXkpPy5bMF07XG4gICAgfVxuXG4gICAgcHVibGljIGpzb24oKTogSnNvbkNhbnZhc1RleHRDYXJkIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkaW5maWVsZHM6IHRoaXMuJGluZmllbGRzLFxuICAgICAgICAgICAgJGxpbmtzOiB0aGlzLiRsaW5rcyxcbiAgICAgICAgICAgICR0YWdzOiB0aGlzLiR0YWdzLFxuICAgICAgICAgICAgJHR5cGU6IFwidGV4dC1jYXJkXCIsXG4gICAgICAgICAgICAkc2VjdGlvbnM6IHRoaXMuJHNlY3Rpb25zLm1hcCgoYSkgPT4gYS5qc29uKCkpLFxuICAgICAgICB9KSBhcyBKc29uQ2FudmFzVGV4dENhcmQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb20ocmF3OiBKc29uQ2FudmFzVGV4dENhcmQsIGZpbGU6IHN0cmluZywgbm9ybWFsaXplcjogTGlua05vcm1hbGl6ZXIgPSBOT09QX05PUk1BTElaRVIpIHtcbiAgICAgICAgbGV0ICRzZWN0aW9ucyA9IHJhdy4kc2VjdGlvbnMubWFwKChzKSA9PiBNYXJrZG93blNlY3Rpb24uZnJvbShzLCBmaWxlLCBub3JtYWxpemVyKSk7XG4gICAgICAgIHJldHVybiBuZXcgQ2FudmFzVGV4dENhcmQoe1xuICAgICAgICAgICAgJGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAkaWQ6IHJhdy4kaWQsXG4gICAgICAgICAgICAkc2VjdGlvbnMsXG4gICAgICAgICAgICAkbGlua3M6IHJhdy4kbGlua3MubWFwKChsKSA9PiBub3JtYWxpemVyKExpbmsuZnJvbU9iamVjdChsKSkpLFxuICAgICAgICAgICAgJGRpbWVuc2lvbnM6IHJhdy4kZGltZW5zaW9ucyxcbiAgICAgICAgICAgICRwb3NpdGlvbjogcmF3LiRwb3NpdGlvbixcbiAgICAgICAgICAgICRmcm9udG1hdHRlcjogcmF3LiRmcm9udG1hdHRlclxuICAgICAgICAgICAgICAgID8gbWFwT2JqZWN0VmFsdWVzKHJhdy4kZnJvbnRtYXR0ZXIsIChmbSkgPT4gbm9ybWFsaXplTGlua3ModmFsdWVGcm9udG1hdHRlckVudHJ5KGZtKSwgbm9ybWFsaXplcikpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAkaW5maWVsZHM6IHJhdy4kaW5maWVsZHMsXG4gICAgICAgICAgICAkdGFnczogcmF3LiR0YWdzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgRklFTERfREVGOiBGaWVsZEV4dHJhY3RvcjxDYW52YXNUZXh0Q2FyZD4gPSBFeHRyYWN0b3JzLm1lcmdlKFxuICAgICAgICBFeHRyYWN0b3JzLmludHJpbnNpY3MoKSxcbiAgICAgICAgRXh0cmFjdG9ycy5pbmxpbmVGaWVsZHMoKGYpID0+IGYuJGluZmllbGRzKSxcbiAgICAgICAgRXh0cmFjdG9ycy5mcm9udG1hdHRlcigoZikgPT4gZi4kZnJvbnRtYXR0ZXIpXG4gICAgKTtcbn1cblxuLyoqIENhbnZhcyBjYXJkIHRoYXQgaXMganVzdCBhIGZpbGUgZW1iZWRkaW5nLiAqL1xuZXhwb3J0IGNsYXNzIENhbnZhc0ZpbGVDYXJkIGV4dGVuZHMgQmFzZUNhbnZhc0NhcmQgaW1wbGVtZW50cyBJbmRleGFibGUge1xuICAgIHN0YXRpYyBUWVBFUyA9IFtcImNhbnZhcy1jYXJkXCIsIFwibWFya2Rvd25cIiwgXCJjYW52YXMtZmlsZS1jYXJkXCIsIFRBR0dBQkxFX1RZUEUsIExJTktBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBDYW52YXNUZXh0Q2FyZC5UWVBFUztcbiAgICAkdHlwZW5hbWU6IHN0cmluZyA9IFwiRmlsZSBDYXJkXCI7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGluaXQ6IFBhcnRpYWw8Q2FudmFzRmlsZUNhcmQ+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cblxuICAgIHJlYWRvbmx5ICR0eXBlOiBzdHJpbmcgPSBcImZpbGUtY2FyZFwiO1xuICAgICRsaW5rZWRGaWxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMganNvbigpOiBKc29uQ2FudmFzRmlsZUNhcmQge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdXBlci5qc29uKCksIHtcbiAgICAgICAgICAgICRsaW5rZWRGaWxlOiB0aGlzLiRsaW5rZWRGaWxlLFxuICAgICAgICAgICAgJHR5cGU6IFwiZmlsZS1jYXJkXCIsXG4gICAgICAgIH0pIGFzIEpzb25DYW52YXNGaWxlQ2FyZDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25DYW52YXNGaWxlQ2FyZCkge1xuICAgICAgICByZXR1cm4gbmV3IENhbnZhc0ZpbGVDYXJkKHtcbiAgICAgICAgICAgICRmaWxlOiByYXcuJGZpbGUsXG4gICAgICAgICAgICAkaWQ6IHJhdy4kaWQsXG4gICAgICAgICAgICAkcG9zaXRpb246IHJhdy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZGltZW5zaW9uczogcmF3LiRkaW1lbnNpb25zLFxuICAgICAgICAgICAgJGxpbmtlZEZpbGU6IHJhdy4kbGlua2VkRmlsZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FudmFzV2ViQ2FyZCBleHRlbmRzIEJhc2VDYW52YXNDYXJkIGltcGxlbWVudHMgSW5kZXhhYmxlIHtcbiAgICBzdGF0aWMgVFlQRVMgPSBbXCJjYW52YXMtY2FyZFwiLCBcIm1hcmtkb3duXCIsIFwiY2FudmFzLXdlYi1jYXJkXCIsIFRBR0dBQkxFX1RZUEUsIExJTktBQkxFX1RZUEUsIEZJRUxEQkVBUklOR19UWVBFXTtcblxuICAgICR0eXBlczogc3RyaW5nW10gPSBDYW52YXNUZXh0Q2FyZC5UWVBFUztcbiAgICByZWFkb25seSAkdHlwZTogc3RyaW5nID0gXCJ3ZWItY2FyZFwiO1xuICAgICR0eXBlbmFtZTogc3RyaW5nID0gXCJXZWIgQ2FyZFwiO1xuXG4gICAgJHVybDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihpbml0OiBQYXJ0aWFsPENhbnZhc1dlYkNhcmQ+KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqc29uKCk6IEpzb25DYW52YXNXZWJDYXJkIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3VwZXIuanNvbigpLCB7XG4gICAgICAgICAgICAkdXJsOiB0aGlzLiR1cmwsXG4gICAgICAgICAgICAkdHlwZTogXCJ3ZWItY2FyZFwiLFxuICAgICAgICB9KSBhcyBKc29uQ2FudmFzV2ViQ2FyZDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbShyYXc6IEpzb25DYW52YXNXZWJDYXJkLCBmaWxlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYW52YXNXZWJDYXJkKHtcbiAgICAgICAgICAgICRkaW1lbnNpb25zOiByYXcuJGRpbWVuc2lvbnMsXG4gICAgICAgICAgICAkcG9zaXRpb246IHJhdy4kcG9zaXRpb24sXG4gICAgICAgICAgICAkZmlsZTogZmlsZSxcbiAgICAgICAgICAgICRpZDogcmF3LiRpZCxcbiAgICAgICAgICAgICR1cmw6IHJhdy4kdXJsLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCAiLyoqIEFsbCBkYXRhY29yZSBzZXR0aW5ncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3Mge1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRocmVhZHMgdGhlIGltcG9ydGVyIHdpbGwgdXNlIGZvciBpbXBvcnRpbmcuICovXG4gICAgaW1wb3J0ZXJOdW1UaHJlYWRzOiBudW1iZXI7XG4gICAgLyoqIFRoZSBDUFUgdXRpbGl6YXRpb24gKGJldHdlZW4gMC4xIGFuZCAxLjApIHRoYXQgaW1wb3J0ZXIgdGhyZWFkcyBzaG91bGQgdXNlLiAqL1xuICAgIGltcG9ydGVyVXRpbGl6YXRpb246IG51bWJlcjtcblxuICAgIC8qKiBBcmUgSlMgdmlld3MgZW5hYmxlZD8gKi9cbiAgICBlbmFibGVKczogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdmlld3MgYXJlIHBhZ2VkIGJ5IGRlZmF1bHQuIFRoaXMgaXMgYW4gaW1wb3J0YW50IHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbixcbiAgICAgKiBzaW5jZSBzaG93aW5nIGh1bmRyZWRzIG9yIHRob3VzYW5kcyBvZiByZXN1bHRzIGNhbiBiZSBmYWlybHkgc2xvdyFcbiAgICAgKi9cbiAgICBkZWZhdWx0UGFnaW5nRW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogRGVmYXVsdCBwYWdpbmcgc2l6ZSBmb3IgYWxsIHZpZXdzIChudW1iZXIgb2YgZW50cmllcyBwZXIgcGFnZS4pICovXG4gICAgZGVmYXVsdFBhZ2VTaXplOiBudW1iZXI7XG4gICAgLyoqIElmIHNldCwgdmlld3Mgd2lsbCBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgdmlldyBvbiBwYWdlIGNoYW5nZXMuICovXG4gICAgc2Nyb2xsT25QYWdlQ2hhbmdlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBkZXB0aCB0aGF0IG9iamVjdHMgd2lsbCBiZSByZW5kZXJlZCB0byAoaS5lLiwgaG93IG1hbnkgbGV2ZWxzIG9mIHN1YnByb3BlcnRpZXNcbiAgICAgKiB3aWxsIGJlIHJlbmRlcmVkIGJ5IGRlZmF1bHQpLiBUaGlzIGF2b2lkcyBpbmZpbml0ZSByZWN1cnNpb24gZHVlIHRvIHNlbGYgcmVmZXJlbnRpYWwgb2JqZWN0c1xuICAgICAqIGFuZCBhbHNvIGVuc3VyZXMgdGhhdCByZW5kZXJpbmcgb2JqZWN0cyBpcyBhY2NlcHRhYmx5IHBlcmZvcm1hbnQuXG4gICAgICovXG4gICAgbWF4UmVjdXJzaXZlUmVuZGVyRGVwdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgZGVmYXVsdCBmb3JtYXQgdGhhdCBkYXRlcyBhcmUgcmVuZGVyZWQgaW4gKHVzaW5nIGx1eG9uJ3MgbW9tZW50LWxpa2UgZm9ybWF0dGluZykuICovXG4gICAgZGVmYXVsdERhdGVGb3JtYXQ6IHN0cmluZztcbiAgICAvKiogVGhlIGRlZmF1bHQgZm9ybWF0IHRoYXQgZGF0ZS10aW1lcyBhcmUgcmVuZGVyZWQgaW4gKHVzaW5nIGx1eG9ucyBtb21lbnQtbGlrZSBmb3JtYXR0aW5nKS4gKi9cbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICAvKiogTWFya2Rvd24gdGV4dCBmb3IgaG93IHRvIHJlbmRlciBudWxsIHZhbHVlcyBpbiB0YWJsZXMgb3Igc2ltaWxhci4gKi9cbiAgICByZW5kZXJOdWxsQXM6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGluZGV4IGlubGluZSBmaWVsZHMgYnkgZGVmYXVsdC4gSW5saW5lIGZpZWxkIHBhcnNpbmcgcmVxdWlyZXMgYSBmdWxsIHNjYW4gb2YgdGhlIGRvY3VtZW50LCB3aGljaCBjYW4gbWFrZSBpbmRleGluZyB0YWtlIDItM3ggbG9uZ2VyLiAqL1xuICAgIGluZGV4SW5saW5lRmllbGRzOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gaW5kZXggbGlzdCBhbmQgdGFzayBpdGVtIHRleHQgYW5kIHN0YXRlcy4gSW5kZXhpbmcgbGlzdHMgJiB0YXNrcyByZXF1aXJlcyBzb21lIGFkZGl0aW9uYWwgcmVnZXggcGFyc2luZyB3aGljaCBtYWtlcyBpbmRleGluZyBtb2Rlc3RseSBzbG93ZXIuICovXG4gICAgaW5kZXhMaXN0SXRlbXM6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0byBjaGVjayB0YXNrIGl0ZW1zIG9mZiByZWN1cnNpdmVseSBpbiBkYXRhY29yZSB2aWV3cyAqL1xuICAgIHJlY3Vyc2l2ZVRhc2tDb21wbGV0aW9uOiBib29sZWFuO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIGlubGluZSBmaWVsZCBpbiB3aGljaCB0byBzdG9yZSBjb21wbGV0aW9uIGRhdGUvdGltZSAqL1xuICAgIHRhc2tDb21wbGV0aW9uVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIElmIGVuYWJsZWQsIGF1dG9tYXRpYyBjb21wbGV0aW9ucyB3aWxsIHVzZSBlbW9qaSBzaG9ydGhhbmQgXHUyNzA1IFlZWVktTU0tREQgaW5zdGVhZCBvZiBbY29tcGxldGlvbjo6IGRhdGVdLiAqL1xuICAgIHRhc2tDb21wbGV0aW9uVXNlRW1vamlTaG9ydGhhbmQ6IGJvb2xlYW47XG59XG5cbi8qKiBEZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgcGx1Z2luLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VUVElOR1M6IFJlYWRvbmx5PFNldHRpbmdzPiA9IE9iamVjdC5mcmVlemU8U2V0dGluZ3M+KHtcbiAgICBpbXBvcnRlck51bVRocmVhZHM6IDIsXG4gICAgaW1wb3J0ZXJVdGlsaXphdGlvbjogMC43NSxcblxuICAgIGVuYWJsZUpzOiBmYWxzZSxcblxuICAgIGRlZmF1bHRQYWdpbmdFbmFibGVkOiB0cnVlLFxuICAgIGRlZmF1bHRQYWdlU2l6ZTogNTAsXG4gICAgc2Nyb2xsT25QYWdlQ2hhbmdlOiBmYWxzZSxcblxuICAgIG1heFJlY3Vyc2l2ZVJlbmRlckRlcHRoOiA1LFxuXG4gICAgZGVmYXVsdERhdGVGb3JtYXQ6IFwiTU1NTSBkZCwgeXl5eVwiLFxuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogXCJoOm1tIGEgLSBNTU1NIGRkLCB5eXl5XCIsXG5cbiAgICByZW5kZXJOdWxsQXM6IFwiLVwiLFxuXG4gICAgaW5kZXhJbmxpbmVGaWVsZHM6IHRydWUsXG4gICAgaW5kZXhMaXN0SXRlbXM6IHRydWUsXG4gICAgcmVjdXJzaXZlVGFza0NvbXBsZXRpb246IGZhbHNlLFxuICAgIHRhc2tDb21wbGV0aW9uVGV4dDogXCJjb21wbGV0ZWRBdFwiLFxuICAgIHRhc2tDb21wbGV0aW9uVXNlRW1vamlTaG9ydGhhbmQ6IGZhbHNlLFxufSk7XG4iLCAiaW1wb3J0IHsgZGVib3VuY2UsIEl0ZW1WaWV3LCBNYXJrZG93blJlbmRlckNoaWxkLCBNZW51LCBWaWV3U3RhdGVSZXN1bHQsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IFNjcmlwdExhbmd1YWdlIH0gZnJvbSBcInV0aWxzL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFjb3JlSlNSZW5kZXJlciwgUmVhY3RSZW5kZXJlciB9IGZyb20gXCIuL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFjb3JlTG9jYWxBcGkgfSBmcm9tIFwiYXBpL2xvY2FsLWFwaVwiO1xuaW1wb3J0IHsgRGF0YWNvcmVBcGkgfSBmcm9tIFwiYXBpL2FwaVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7IEdyb3VwLCBTdGFjayB9IGZyb20gXCJhcGkvdWkvbGF5b3V0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicHJlYWN0L2hvb2tzXCI7XG5pbXBvcnQgeyBUZXh0Ym94LCBWYW5pbGxhU2VsZWN0IH0gZnJvbSBcImFwaS91aS9iYXNpY3NcIjtcbmltcG9ydCB7IHVzZUluZGV4VXBkYXRlcyB9IGZyb20gXCIuL2hvb2tzXCI7XG5pbXBvcnQgeyBEQVRBQ09SRV9DT05URVhULCBFcnJvck1lc3NhZ2UgfSBmcm9tIFwiLi9tYXJrZG93blwiO1xuaW1wb3J0IFNlbGVjdCBmcm9tIFwicmVhY3Qtc2VsZWN0XCI7XG5cbi8qKiBLZXkgZm9yIGRhdGFjb3JlIEpTIHF1ZXJ5IHZpZXdzLiAqL1xuZXhwb3J0IGNvbnN0IFZJRVdfVFlQRV9EQVRBQ09SRUpTID0gXCJkYXRhY29yZWpzLXZpZXdcIjtcblxuLyoqIFN0b3JlcyB0aGUgY3VycmVudCBPYnNpZGlhbiB2aWV3IG9iamVjdCwgc28gaXQgY2FuIGJlIG1hbmlwdWxhdGVkIGZyb20gcmVhY3QuICovXG5jb25zdCBDVVNUT01fVklFV19DT05URVhUID0gY3JlYXRlQ29udGV4dDxEYXRhY29yZVF1ZXJ5Vmlldz4odW5kZWZpbmVkISk7XG5cbi8qKiBQcm92aWRlcyBvcHRpb25zIGZvciBjb25maWd1cmluZyBhIGRhdGFjb3JlIHZpZXcgcGFuZS4gKi9cbmZ1bmN0aW9uIERhdGFjb3JlVmlld1NldHRpbmdzKCkge1xuICAgIGNvbnN0IHZpZXcgPSB1c2VDb250ZXh0KENVU1RPTV9WSUVXX0NPTlRFWFQpIGFzIERhdGFjb3JlUXVlcnlWaWV3O1xuICAgIGNvbnN0IHNldFZpZXdTdGF0ZSA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IGRlYm91bmNlKChzdGF0ZTogUGFydGlhbDxEYXRhY29yZVZpZXdTdGF0ZT4pID0+IHZpZXcuc2V0U3RhdGUoc3RhdGUsIHsgaGlzdG9yeTogZmFsc2UgfSksIDUwMCksXG4gICAgICAgIFt2aWV3XVxuICAgICk7XG5cbiAgICBjb25zdCBbbG9jYWxTdGF0ZSwgc2V0TG9jYWxTdGF0ZV0gPSB1c2VTdGF0ZSh2aWV3LmdldFN0YXRlKCkpO1xuICAgIGNvbnN0IHNldFN0YXRlID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChzdGF0ZTogUGFydGlhbDxEYXRhY29yZVZpZXdTdGF0ZT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsU3RhdGUgPSB7IC4uLmxvY2FsU3RhdGUsIC4uLnN0YXRlIH07XG4gICAgICAgICAgICAvLyBOb3QgZGVib3VuY2VkLlxuICAgICAgICAgICAgc2V0TG9jYWxTdGF0ZShmaW5hbFN0YXRlKTtcblxuICAgICAgICAgICAgLy8gRGVib3VuY2VkLlxuICAgICAgICAgICAgc2V0Vmlld1N0YXRlKGZpbmFsU3RhdGUpO1xuICAgICAgICB9LFxuICAgICAgICBbbG9jYWxTdGF0ZSwgc2V0TG9jYWxTdGF0ZSwgdmlld11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFN0YWNrIGFsaWduPVwic3RyZXRjaFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJjbGlja2FibGUtaWNvblwiIHN0eWxlPVwiYWxpZ24tc2VsZjogc3RhcnRcIiBvbkNsaWNrPXsoKSA9PiB2aWV3LnZpZXcoXCJzY3JpcHRcIil9PlxuICAgICAgICAgICAgICAgIHtCQUNLX0JVVFRPTn1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPEdyb3VwIGp1c3RpZnk9XCJzcGFjZS1iZXR3ZWVuXCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDY+VmlldyBUaXRsZTwvaDY+XG4gICAgICAgICAgICAgICAgPFRleHRib3hcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt2aWV3LmdldFN0YXRlKCkudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U3RhdGUoeyB0aXRsZTogZS5jdXJyZW50VGFyZ2V0LnZhbHVlIGFzIHN0cmluZyB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgICAgIDxHcm91cCBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGg2PlZpZXcgVHlwZTwvaDY+XG4gICAgICAgICAgICAgICAgPFZhbmlsbGFTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt2aWV3LmdldFN0YXRlKCkuc291cmNlVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17TEFOR1VBR0VfT1BUSU9OU31cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2xvY2FsU3RhdGUuc291cmNlVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgb25WYWx1ZUNoYW5nZT17KHMpID0+IHNldFN0YXRlKHsgc291cmNlVHlwZTogcyBhcyBTY3JpcHRMYW5ndWFnZSB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgICAgIDxHcm91cCBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGg2PlNjcmlwdC9WaWV3IHNvdXJjZTwvaDY+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHJlc2l6ZTogXCJ2ZXJ0aWNhbFwiLCBtaW5XaWR0aDogXCI3NSVcIiwgZm9udEZhbWlseTogXCJtb25vc3BhY2VcIiB9fVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2xvY2FsU3RhdGUuc2NyaXB0fVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bG9jYWxTdGF0ZS5zY3JpcHR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U3RhdGUoeyBzY3JpcHQ6IGUuY3VycmVudFRhcmdldC52YWx1ZSBhcyBzdHJpbmcgfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgICAgICA8R3JvdXAganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgPGg2PkN1cnJlbnQgRmlsZTwvaDY+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD5UaGUgcGF0aCByZXR1cm5lZCBieSBmdW5jdGlvbnMgbGlrZSBgdXNlQ3VycmVudFBhdGhgIGluIHRoaXMgdmlldzwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IG1pbldpZHRoOiBcIjUwJVwiIH19PlxuICAgICAgICAgICAgICAgICAgICA8Q3VycmVudEZpbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtsb2NhbFN0YXRlLmN1cnJlbnRGaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2KSA9PiBzZXRTdGF0ZSh7IGN1cnJlbnRGaWxlOiB2IH0pfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9Hcm91cD5cbiAgICAgICAgPC9TdGFjaz5cbiAgICApO1xufVxuXG4vKiogUmVhY3QgY29tcG9uZW50IGZvciBhc3luY2hyb25vdXNseSBzaG93aW5nIHRoZSBhY3RpdmUgc2V0IG9mIGN1cnJlbnQgZmlsZXMgdG8gc2VsZWN0IG9uZSBmcm9tLiAqL1xuZnVuY3Rpb24gQ3VycmVudEZpbGVTZWxlY3Rvcih7XG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIG9uQ2hhbmdlLFxufToge1xuICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KSB7XG4gICAgY29uc3QgY29yZSA9IHVzZUNvbnRleHQoREFUQUNPUkVfQ09OVEVYVCk7XG4gICAgY29uc3QgcmV2aXNpb24gPSB1c2VJbmRleFVwZGF0ZXMoY29yZSwgeyBkZWJvdW5jZTogMjAwMCB9KTtcblxuICAgIC8vIENhY2hlZCBsaXN0IG9mIHJlbGV2YW50IGZpbGVzLCB3aGljaCBpcyBvbmx5IHJlY29tcHV0ZWQgb24gdmF1bHQgY2hhbmdlcy5cbiAgICBjb25zdCBvcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBjb3JlLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKS5tYXAoKGYpID0+ICh7IGxhYmVsOiBmLnBhdGgsIHZhbHVlOiBmLnBhdGggfSkpO1xuICAgIH0sIFtyZXZpc2lvbl0pO1xuXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbiA9IGRlZmF1bHRWYWx1ZVxuICAgICAgICA/IHsgbGFiZWw6IFwiTm8gZmlsZVwiLCB2YWx1ZTogdW5kZWZpbmVkIH1cbiAgICAgICAgOiB7IGxhYmVsOiBkZWZhdWx0VmFsdWUsIHZhbHVlOiBkZWZhdWx0VmFsdWUgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9XCJkYXRhY29yZS1zZWxlY3RhYmxlXCJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdE9wdGlvbn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsobnYsIF9hbSkgPT4gb25DaGFuZ2UobnY/LnZhbHVlKX1cbiAgICAgICAgICAgIHVuc3R5bGVkXG4gICAgICAgIC8+XG4gICAgKTtcbn1cblxuLyoqIFNlbGVjdGFibGUgb3B0aW9ucyBmb3IgcGlja2luZyB3aGljaCBsYW5ndWFnZSB0byBleGVjdXRlIHRoZSBzY3JpcHQgaW4uICovXG5jb25zdCBMQU5HVUFHRV9PUFRJT05TOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBTY3JpcHRMYW5ndWFnZSB9W10gPSBbXG4gICAgeyBsYWJlbDogXCJKYXZhc2NyaXB0XCIsIHZhbHVlOiBcImpzXCIgfSxcbiAgICB7IGxhYmVsOiBcIlR5cGVzY3JpcHRcIiwgdmFsdWU6IFwidHNcIiB9LFxuICAgIHsgbGFiZWw6IFwiSmF2YXNjcmlwdCAoSlNYKVwiLCB2YWx1ZTogXCJqc3hcIiB9LFxuICAgIHsgbGFiZWw6IFwiVHlwZXNjcmlwdCBKU1hcIiwgdmFsdWU6IFwidHN4XCIgfSxcbl07XG5cbi8qKiBTVkcgYmFjayBidXR0b24gc2hvd24gdG8gZXhpdCB0aGUgc2V0dGluZ3Mgdmlldy4gKi9cbmNvbnN0IEJBQ0tfQlVUVE9OID0gKFxuICAgIDxzdmdcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBjbGFzcz1cInN2Zy1pY29uIGx1Y2lkZS1hcnJvdy1sZWZ0XCJcbiAgICA+XG4gICAgICAgIDxwYXRoIGQ9XCJtMTIgMTktNy03IDctN1wiPjwvcGF0aD5cbiAgICAgICAgPHBhdGggZD1cIk0xOSAxMkg1XCI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuKTtcblxuLyoqIFN0YXRlIGZvciB0aGUgZGF0YWNvcmUgdmlldyBwYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhY29yZVZpZXdTdGF0ZSB7XG4gICAgLyoqIEN1c3RvbSB0aXRsZSBmb3IgdGhlIHZpZXcgcGFuZS4gKi9cbiAgICB0aXRsZT86IHN0cmluZztcbiAgICAvKiogTGFuZ3VhZ2UgdGhhdCB0aGUgc2NyaXB0IHdpbGwgYmUgZXhlY3V0ZWQgaW4uICovXG4gICAgc291cmNlVHlwZT86IFNjcmlwdExhbmd1YWdlO1xuICAgIC8qKiBJZiBkZWZpbmVkLCB0aGUgZmlsZSB0aGUgdmlldyB3aWxsIGJlIHJlbGF0aXZlIHRvLiAqL1xuICAgIGN1cnJlbnRGaWxlPzogc3RyaW5nO1xuICAgIC8qKiBDb250ZW50cyBvZiB0aGUgc2NyaXB0LiAqL1xuICAgIHNjcmlwdD86IHN0cmluZztcbiAgICAvKiogVGhlIGN1cnJlbnQgdmlldzsgZGVmYXVsdHMgdG8gJ3NldHRpbmdzJyBmb3IgaW5pdGlhbGl6YXRpb24uICovXG4gICAgdmlldz86IFwic2V0dGluZ3NcIiB8IFwic2NyaXB0XCI7XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhY29yZVF1ZXJ5VmlldyBleHRlbmRzIEl0ZW1WaWV3IHtcbiAgICAvKiogSW50ZXJuYWwgY3VycmVudCBzdGF0ZSBvZiB0aGUgdmlldzsgY2FuIGJlIG1vZGlmaWVkIGJ5IHNldFN0YXRlLiAqL1xuICAgIHB1YmxpYyBpbnRlcm5hbFN0YXRlOiBEYXRhY29yZVZpZXdTdGF0ZSA9IHtcbiAgICAgICAgdGl0bGU6IFwiTmV3IHZpZXdcIixcbiAgICAgICAgc2NyaXB0OiBcIlwiLFxuICAgICAgICBzb3VyY2VUeXBlOiBcImpzXCIsXG4gICAgICAgIHZpZXc6IFwic2V0dGluZ3NcIixcbiAgICB9O1xuXG4gICAgLyoqIFRoZSBjdXJyZW50IGFjdGl2ZSB2aWV3IC0gZWl0aGVyIHRoZSBzZXR0aW5ncyB2aWV3ICovXG4gICAgcHJpdmF0ZSBhY3RpdmVWaWV3OiBNYXJrZG93blJlbmRlckNoaWxkO1xuICAgIHByaXZhdGUgYWN0aXZlVmlld1R5cGU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGxlYWY6IFdvcmtzcGFjZUxlYWYsIHB1YmxpYyBhcGk6IERhdGFjb3JlQXBpKSB7XG4gICAgICAgIHN1cGVyKGxlYWYpO1xuICAgICAgICB0aGlzLnJlcmVuZGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIFNob3VsZCBhbHdheXMgYmUgVklFV19UWVBFX0RBVEFDT1JFSlMuICovXG4gICAgZ2V0Vmlld1R5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFZJRVdfVFlQRV9EQVRBQ09SRUpTO1xuICAgIH1cblxuICAgIC8qKiBUZXh0IHNob3duIGluIHRoZSB0aXRsZSB3aW5kb3cuICovXG4gICAgZ2V0RGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaW50ZXJuYWxTdGF0ZS50aXRsZX0gKERhdGFjb3JlSlMpYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25sb2FkKCkge1xuICAgICAgICB0aGlzLmNvbnRlbnRFbC5hZGRDbGFzcyhcIm1hcmtkb3duLXJlbmRlcmVkXCIpO1xuICAgICAgICB0aGlzLnJlcmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9udW5sb2FkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVWaWV3KSB0aGlzLnJlbW92ZUNoaWxkKHRoaXMuYWN0aXZlVmlldyk7XG4gICAgfVxuXG4gICAgLyoqIFN5bmNocm9uaXplcyB0aGUgc2NyZWVuIHN0YXRlIHRvIHByb3Blcmx5IHJlZmxlY3QgdGhlIGN1cnJlbnQgaW50ZXJuYWwgc3RhdGUuICovXG4gICAgcmVyZW5kZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGVhZi50YWJIZWFkZXJJbm5lclRpdGxlRWwudGV4dENvbnRlbnQgPSB0aGlzLnRpdGxlRWwudGV4dENvbnRlbnQgPSB0aGlzLmdldERpc3BsYXlUZXh0KCk7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXdUeXBlID09IHRoaXMuaW50ZXJuYWxTdGF0ZS52aWV3KSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmlldykgdGhpcy5yZW1vdmVDaGlsZCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFN0YXRlLnZpZXcgPT09IFwic2V0dGluZ3NcIikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVWaWV3VHlwZSA9IFwic2V0dGluZ3NcIjtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlldyA9IG5ldyBSZWFjdFJlbmRlcmVyKFxuICAgICAgICAgICAgICAgIHRoaXMuYXBwLFxuICAgICAgICAgICAgICAgIHRoaXMuYXBpLmNvcmUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50RWwsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLmN1cnJlbnRGaWxlIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICA8Q1VTVE9NX1ZJRVdfQ09OVEVYVC5Qcm92aWRlciB2YWx1ZT17dGhpc30+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RGF0YWNvcmVWaWV3U2V0dGluZ3MgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9DVVNUT01fVklFV19DT05URVhULlByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBhIHNjcmlwdCwgdHJ5IHRvIGV4ZWN1dGUgaXQ7IG90aGVyd2lzZSwgc2hvdyBhIHJlYXNvbmFibGUgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlld1R5cGUgPSBcInNjcmlwdFwiO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxTdGF0ZS5zY3JpcHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBuZXcgRGF0YWNvcmVKU1JlbmRlcmVyKFxuICAgICAgICAgICAgICAgICAgICBuZXcgRGF0YWNvcmVMb2NhbEFwaSh0aGlzLmFwaSwgdGhpcy5pbnRlcm5hbFN0YXRlLmN1cnJlbnRGaWxlIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLmN1cnJlbnRGaWxlIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTdGF0ZS5zY3JpcHQgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLnNvdXJjZVR5cGUgfHwgXCJqc1wiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gbmV3IFJlYWN0UmVuZGVyZXIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaS5jb3JlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFN0YXRlLmN1cnJlbnRGaWxlIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDVVNUT01fVklFV19DT05URVhULlByb3ZpZGVyIHZhbHVlPXt0aGlzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RXJyb3JNZXNzYWdlIG1lc3NhZ2U9XCJObyBzY3JpcHQgZGVmaW5lZCBmb3IgdGhpcyB2aWV3LlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NVU1RPTV9WSUVXX0NPTlRFWFQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZGRDaGlsZCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGlzIHZpZXcgd2l0aCBuZXcgbWV0YWRhdGEuIEdlbmVyYWxseSBjb250cm9sbGVkIGJ5IHRoZSBzZXR0aW5ncyBwYW5lLiAqL1xuICAgIHB1YmxpYyBhc3luYyBzZXRTdGF0ZShzdGF0ZTogRGF0YWNvcmVWaWV3U3RhdGUsIF9yZXN1bHQ6IFZpZXdTdGF0ZVJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmludGVybmFsU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5yZXJlbmRlcigpO1xuICAgIH1cblxuICAgIC8qKiBTd2FwIHRoZSBhY3RpdmUgdmlldy4gKi9cbiAgICBwdWJsaWMgdmlldyhtb2RlOiBcInNldHRpbmdzXCIgfCBcInNjcmlwdFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTdGF0ZS52aWV3ID0gbW9kZTtcbiAgICAgICAgdGhpcy5yZXJlbmRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7fVxuXG4gICAgLyoqIEhhbmRsZSBmb3IgcmlnaHQgY2xpY2sgbWVudXMuICovXG4gICAgcHVibGljIG9uUGFuZU1lbnUobWVudTogTWVudSwgc291cmNlOiBcIm1vcmUtb3B0aW9uc1wiIHwgXCJ0YWItaGVhZGVyXCIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNvdXJjZSA9PT0gXCJtb3JlLW9wdGlvbnNcIikge1xuICAgICAgICAgICAgbWVudS5hZGRJdGVtKChpdCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0LnNldEljb24oXCJzZXR0aW5nc1wiKTtcbiAgICAgICAgICAgICAgICBpdC5zZXRUaXRsZShcIkNvbmZpZ3VyZSBWaWV3XCIpO1xuICAgICAgICAgICAgICAgIGl0Lm9uQ2xpY2soKGUpID0+IHRoaXMudmlldyhcInNldHRpbmdzXCIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IERhdGFjb3JlIH0gZnJvbSBcImluZGV4L2RhdGFjb3JlXCI7XG5pbXBvcnQgeyB1c2VJbmRleFVwZGF0ZXMgfSBmcm9tIFwidWkvaG9va3NcIjtcblxuLyoqIFJlbmRlciBhIGhlbHBmdWwgc3RhdHVzIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGJhciBvZiBob3cgdGhlIGltcG9ydCBpcyBnb2luZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBJbmRleFN0YXR1c0Jhcih7IGRhdGFjb3JlIH06IHsgZGF0YWNvcmU6IERhdGFjb3JlIH0pIHtcbiAgICB1c2VJbmRleFVwZGF0ZXMoZGF0YWNvcmUsIHsgZGVib3VuY2U6IDI1MCB9KTtcblxuICAgIC8vIFdoZW5ldmVyIHRoZSB2aWV3IHVwZGF0ZXMsIGZpZ3VyZSBvdXQgd2hhdCBzdGF0ZSB3ZSBhcmUgaW4gYmFzZWQgb24gaWYgYW4gaW5pdGlhbGl6ZXIgaXMgcHJlc2VudC5cbiAgICBpZiAoZGF0YWNvcmUuaW5pdGlhbGl6ZXIpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIFNjYW5uaW5nIHtkYXRhY29yZS5pbml0aWFsaXplci5pbml0aWFsaXplZH0gb2Yge2RhdGFjb3JlLmluaXRpYWxpemVyLmZpbGVzfSBmaWxlc1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAoZGF0YWNvcmUuaW1wb3J0ZXIucXVldWUuc2l6ZSgpID4gMCkge1xuICAgICAgICByZXR1cm4gPHNwYW4+VXBkYXRpbmcge2RhdGFjb3JlLmltcG9ydGVyLnF1ZXVlLnNpemUoKX0gZmlsZXM8L3NwYW4+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiA8c3Bhbj57ZGF0YWNvcmUuZGF0YXN0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Q2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1QsS0FBSyxVQUFVO0FBQ2IsYUFBTztBQUFBLElBQ1Q7QUFDRSxhQUFPO0FBQUEsRUFDWDtBQUNGOzs7QUNwV08sSUFBTSxRQUFOLE1BQVk7QUFBQSxFQUtqQixZQUFZLGlCQUFpQixl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QVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLG9CQUFvQjtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsbUJBQW1CLElBQUksaUJBQWlCLElBQUk7QUFDOUYsUUFBTSxZQUFZO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxXQUFXLElBQUksU0FBUyxJQUFJO0FBQ3RFLFFBQU0scUJBQXFCO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxvQkFBb0IsSUFBSSxrQkFBa0IsSUFBSTtBQUNqRyxRQUFNRSxTQUFRO0FBQUksRUFBQUYsV0FBVUEsV0FBVSxPQUFPLElBQUlFLE1BQUssSUFBSTtBQUMxRCxRQUFNLGFBQWE7QUFBSSxFQUFBRixXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxjQUFjO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxhQUFhLElBQUksV0FBVyxJQUFJO0FBQzVFLFFBQU0sYUFBYTtBQUFJLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUN6RSxRQUFNLGFBQWE7QUFBSSxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDekUsUUFBTSxhQUFhO0FBQUksRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQ3pFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxhQUFhO0FBQUssRUFBQUEsV0FBVUEsV0FBVSxZQUFZLElBQUksVUFBVSxJQUFJO0FBQzFFLFFBQU0sYUFBYTtBQUFLLEVBQUFBLFdBQVVBLFdBQVUsWUFBWSxJQUFJLFVBQVUsSUFBSTtBQUMxRSxRQUFNLGFBQWE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLFlBQVksSUFBSSxVQUFVLElBQUk7QUFDMUUsUUFBTSxpQkFBaUI7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLGdCQUFnQixJQUFJLGNBQWMsSUFBSTtBQUN0RixRQUFNLGNBQWM7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLGFBQWEsSUFBSSxXQUFXLElBQUk7QUFDN0UsUUFBTSxrQkFBa0I7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLGlCQUFpQixJQUFJLGVBQWUsSUFBSTtBQUN6RixRQUFNLFFBQVE7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLE9BQU8sSUFBSSxLQUFLLElBQUk7QUFDM0QsUUFBTSxtQkFBbUI7QUFBSyxFQUFBQSxXQUFVQSxXQUFVLGtCQUFrQixJQUFJLGdCQUFnQixJQUFJO0FBRTVGLFFBQU0saUJBQWlCO0FBQU0sRUFBQUEsV0FBVUEsV0FBVSxnQkFBZ0IsSUFBSSxjQUFjLElBQUk7QUFDdkYsUUFBTSxnQkFBZ0I7QUFBTSxFQUFBQSxXQUFVQSxXQUFVLGVBQWUsSUFBSSxhQUFhLElBQUk7QUFDcEYsUUFBTSxxQkFBcUI7QUFBTSxFQUFBQSxXQUFVQSxXQUFVLG9CQUFvQixJQUFJLGtCQUFrQixJQUFJO0FBQ3JHLEdBQUcsY0FBYyxZQUFZLENBQUMsRUFBRTs7O0FDdkd6QixJQUFJO0FBQ0osSUFBSTtBQUNKLElBQUk7QUFDSixJQUFJO0FBQ0osSUFBSTtBQUNKLElBQUk7QUFFSixTQUFTLG1CQUFtQjtBQUNqQyxTQUFPO0FBQ1Q7QUFHTyxTQUFTLGFBQWEsT0FBTztBQUNsQyxNQUFJLFNBQVMsT0FBTztBQUNsQixVQUFNLE1BQU0saUJBQWlCLE1BQU0sR0FBRztBQUN0QyxVQUFNLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU07QUFDNUMsVUFBTSxNQUFNO0FBQUEsRUFDZDtBQUNBLFNBQU87QUFDVDtBQUVPLElBQU0sTUFBTixNQUFVO0FBQUEsRUFHZixZQUFZRyxPQUFNQyxTQUFRO0FBQ3hCLFNBQUssT0FBT0Q7QUFDWixTQUFLLFNBQVNDO0FBQUEsRUFDaEI7QUFDRjtBQUVPLFNBQVMsaUJBQWlCLEtBQUs7QUFDcEMsTUFBSUQsUUFBTztBQUNYLE1BQUlDLFVBQVM7QUFDYixXQUFTQyxLQUFJLEdBQUdBLEtBQUksS0FBS0EsTUFBSztBQUM1QixRQUFJLE1BQU0sV0FBV0EsRUFBQyxNQUFNLFVBQVUsVUFBVTtBQUM5QyxNQUFBRjtBQUNBLE1BQUFDLFVBQVM7QUFBQSxJQUNYLE9BQU87QUFDTCxNQUFBQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTyxJQUFJLElBQUlELE9BQU1DLE9BQU07QUFDN0I7QUFFTyxTQUFTLFdBQ2QsV0FDQSxpQkFDQSx3QkFDQSxrQkFDQTtBQUNBLFVBQVE7QUFDUixVQUFRLElBQUksTUFBTTtBQUNsQixrQkFBZ0I7QUFDaEIsaUJBQWU7QUFDZix3QkFBc0I7QUFDdEIsa0JBQWdCO0FBQ2xCOzs7QUNsRE8sU0FBUyxhQUFhLG1CQUFtQjtBQUM5QyxTQUFPLE1BQU0sc0JBQXNCO0FBQ3JDO0FBRU8sU0FBUyxzQkFBc0IsbUJBQW1CO0FBQ3ZELFFBQU1FLEtBQUksd0JBQXdCO0FBQ2xDLFNBQU9BLEdBQUUsU0FBUyxVQUFHLFFBQVFBLEdBQUUsc0JBQXNCO0FBQ3ZEO0FBR08sU0FBUyxjQUFjLG1CQUFtQjtBQUMvQyxTQUFPLE1BQU0sc0JBQXNCLHFCQUFxQixJQUFJLFVBQUcsSUFBSTtBQUNyRTtBQUdPLFNBQVMsaUJBQWlCLG1CQUFtQjtBQUNsRCxNQUFJLENBQUMsY0FBYyxpQkFBaUIsR0FBRztBQUNyQyxlQUFXO0FBQUEsRUFDYjtBQUNGO0FBR08sU0FBUyxxQkFBcUI7QUFDbkMsU0FBT0MsT0FBTSxVQUFHLEdBQUcsS0FBS0EsT0FBTSxVQUFHLE1BQU0sS0FBSyxzQkFBc0I7QUFDcEU7QUFFTyxTQUFTLHdCQUF3QjtBQUN0QyxRQUFNLFlBQVksTUFBTSxPQUFPLE1BQU0sT0FBTyxTQUFTLENBQUM7QUFDdEQsUUFBTSxhQUFhLFlBQVksVUFBVSxNQUFNO0FBQy9DLFdBQVNDLEtBQUksWUFBWUEsS0FBSSxNQUFNLE9BQU9BLE1BQUs7QUFDN0MsVUFBTSxPQUFPLE1BQU0sV0FBV0EsRUFBQztBQUMvQixRQUNFLFNBQVMsVUFBVSxZQUNuQixTQUFTLFVBQVUsa0JBQ25CLFNBQVMsUUFDVCxTQUFTLE1BQ1Q7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFFTyxTQUFTLHdCQUF3QjtBQUN0QyxRQUFNLFlBQVksZUFBZTtBQUNqQyxXQUFTQSxLQUFJLE1BQU0sS0FBS0EsS0FBSSxXQUFXQSxNQUFLO0FBQzFDLFVBQU0sT0FBTyxNQUFNLFdBQVdBLEVBQUM7QUFDL0IsUUFDRSxTQUFTLFVBQVUsWUFDbkIsU0FBUyxVQUFVLGtCQUNuQixTQUFTLFFBQ1QsU0FBUyxNQUNUO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBRU8sU0FBUyxtQkFBbUI7QUFDakMsU0FBTyxJQUFJLFVBQUcsSUFBSSxLQUFLLG1CQUFtQjtBQUM1QztBQUlPLFNBQVMsWUFBWTtBQUMxQixNQUFJLENBQUMsaUJBQWlCLEdBQUc7QUFDdkIsZUFBVyxnQ0FBZ0M7QUFBQSxFQUM3QztBQUNGO0FBSU8sU0FBUyxPQUFPLE1BQU07QUFDM0IsUUFBTSxVQUFVLElBQUksSUFBSTtBQUN4QixNQUFJLENBQUMsU0FBUztBQUNaLGVBQVcsK0JBQStCLGdCQUFnQixJQUFJLENBQUMsR0FBRztBQUFBLEVBQ3BFO0FBQ0Y7QUFNTyxTQUFTLFdBQVcsVUFBVSxvQkFBb0IsTUFBTSxNQUFNLE9BQU87QUFDMUUsTUFBSSxNQUFNLE9BQU87QUFDZjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLE1BQU0sSUFBSSxZQUFZLE9BQU87QUFDbkMsTUFBSSxNQUFNO0FBQ1YsUUFBTSxRQUFRO0FBQ2QsUUFBTSxNQUFNLE1BQU07QUFDbEIsY0FBWSxVQUFHLEdBQUc7QUFDcEI7OztBQ3BHTyxJQUFNLG1CQUFtQjtBQUFBLEVBQzlCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFDRjtBQUVPLElBQU0saUJBQWlCO0FBRXZCLElBQU0sZ0JBQWdCLElBQUksV0FBVyxLQUFLO0FBQ2pELFdBQVdDLFNBQVEsa0JBQWtCO0FBQ25DLGdCQUFjQSxLQUFJLElBQUk7QUFDeEI7OztBQzdCQSxTQUFTLHdCQUF3QixNQUFNO0FBQ3JDLE1BQUksT0FBTyxHQUFJLFFBQU8sU0FBUztBQUMvQixNQUFJLE9BQU8sR0FBSSxRQUFPO0FBQ3RCLE1BQUksT0FBTyxHQUFJLFFBQU87QUFDdEIsTUFBSSxPQUFPLEdBQUksUUFBTztBQUN0QixNQUFJLE9BQU8sR0FBSSxRQUFPLFNBQVM7QUFDL0IsTUFBSSxPQUFPLElBQUssUUFBTztBQUN2QixNQUFJLE9BQU8sSUFBSyxRQUFPO0FBQ3ZCLFFBQU0sSUFBSSxNQUFNLGdEQUFnRDtBQUNsRTtBQUVPLElBQU0scUJBQXFCLElBQUksV0FBVyxLQUFLO0FBQ3RELFNBQVNDLEtBQUksR0FBR0EsS0FBSSxLQUFLQSxNQUFLO0FBQzVCLHFCQUFtQkEsRUFBQyxJQUFJLHdCQUF3QkEsRUFBQyxJQUFJLElBQUk7QUFDM0Q7QUFDQSxTQUFTQSxLQUFJLEtBQUtBLEtBQUksT0FBT0EsTUFBSztBQUNoQyxxQkFBbUJBLEVBQUMsSUFBSTtBQUMxQjtBQUlBLFdBQVcsa0JBQWtCLGtCQUFrQjtBQUM3QyxxQkFBbUIsY0FBYyxJQUFJO0FBQ3ZDO0FBQ0EsbUJBQW1CLElBQU0sSUFBSTtBQUM3QixtQkFBbUIsSUFBTSxJQUFJO0FBRXRCLElBQU0sc0JBQXNCLG1CQUFtQixNQUFNO0FBQzVELFNBQVMsVUFBVSxVQUFVLFFBQVEsV0FBVyxVQUFVLFFBQVEsV0FBVztBQUMzRSxzQkFBb0IsT0FBTyxJQUFJO0FBQ2pDOzs7QUM1Qk8sSUFBTSxpQkFBaUIsSUFBSSxXQUFXO0FBQUE7QUFBQSxFQUUzQztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUs7QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUE7QUFBQSxFQUU5STtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUzRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV4RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RyxrQkFBa0IsYUFBYTtBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV0STtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RyxrQkFBa0IsYUFBYTtBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV0SSxrQkFBa0IsT0FBTztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUE7QUFBQSxFQUVsSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RyxrQkFBa0IsV0FBVztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUVySSxrQkFBa0IsWUFBWTtBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUVySTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RyxrQkFBa0IsVUFBVTtBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUVuSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RyxrQkFBa0IsVUFBVTtBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUVuSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUs7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxHQUV4RyxVQUFHLFVBQVUsS0FBSztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxSDtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUvRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFLO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUzRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxHQUV4RyxVQUFHLFNBQVMsS0FBSztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUV6SDtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxHQUV6RyxVQUFHLFVBQVUsS0FBSztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxSDtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRyxrQkFBa0IsV0FBVztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUVwSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxHQUV6RyxVQUFHLFVBQVUsS0FBSztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxSDtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUU1RztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxHQUV6RyxVQUFHLFVBQVUsS0FBSztBQUFBLEVBQUc7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUU1SDtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUE7QUFBQSxFQUUxRyxrQkFBa0IsZ0JBQWdCO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsYUFBYSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTdIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsYUFBYSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTdIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixZQUFZO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXJJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsWUFBWSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRTFILFVBQUcsT0FBTyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTlHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixTQUFTO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWxJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTdILGtCQUFrQixZQUFZO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXJJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsWUFBWSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVIO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWxIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsVUFBVSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEdBRXpHLFVBQUcsWUFBWSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsUUFBUSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixTQUFTO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWxJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsYUFBYSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTdIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixRQUFRO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWpJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRS9HLFVBQUcsT0FBTyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixlQUFlO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRTFILFVBQUcsT0FBTyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTdIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixVQUFVO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRW5JO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsZUFBZSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRS9IO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixjQUFjO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZJLGtCQUFrQixPQUFPO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWhJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixVQUFVO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRW5JO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsUUFBUSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTlHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixjQUFjO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsUUFBUSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWhILGtCQUFrQixPQUFPO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWhJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixRQUFRO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWpJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixhQUFhO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXRJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixZQUFZO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXJJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixjQUFjO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZJLGtCQUFrQixVQUFVO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRW5JO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTlHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixhQUFhO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXRJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixZQUFZO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXJJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTNIO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEVBRXBIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixjQUFjO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXZJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixRQUFRO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRWpJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsVUFBVSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTNIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEVBRTlHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsVUFBVSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXhILFVBQUcsUUFBUSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixTQUFTO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsV0FBVyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTNIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixXQUFXO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXBJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHLGtCQUFrQixVQUFVO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRW5JO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsUUFBUSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXhIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQU07QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTVHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsVUFBVSxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEdBRXpHLFVBQUcsU0FBUyxLQUFLO0FBQUEsRUFBRztBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRXpIO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFNO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQTtBQUFBLEVBRTFHO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBTTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEsRUFBSTtBQUFBLEVBQUk7QUFBQSxFQUFJO0FBQUEs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QSxFQUNqQixDQUFDLFFBQVEsTUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsUUFBUSxNQUFRO0FBQUEsRUFDakIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFNBQVMsTUFBUTtBQUFBLEVBQ2xCLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxFQUNqQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLEVBQ2pCLENBQUMsT0FBTyxNQUFRO0FBQUEsRUFDaEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsUUFBUSxNQUFRO0FBQUEsRUFDakIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLEVBQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsRUFDakIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLEVBQ2xCLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFFBQVEsTUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFNBQVMsTUFBUTtBQUFBLEVBQ2xCLENBQUMsUUFBUSxNQUFRO0FBQUEsRUFDakIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxRQUFRLE1BQVE7QUFBQSxFQUNqQixDQUFDLE9BQU8sTUFBUTtBQUFBLEVBQ2hCLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsU0FBUyxNQUFRO0FBQUEsRUFDbEIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFFBQVEsTUFBUTtBQUFBLEVBQ2pCLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLE1BQVE7QUFBQSxFQUNuQixDQUFDLFVBQVUsTUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNsQixDQUFDLFFBQVEsTUFBUTtBQUFBLEVBQ2pCLENBQUMsVUFBVSxNQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLE1BQVE7QUFBQSxFQUNs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QVE7QUFBQSxFQUNsQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxFQUNsQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxFQUNsQixDQUFDLFVBQVUsUUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFVBQVUsUUFBUTtBQUFBLEVBQ25CLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxFQUNsQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxVQUFVLFFBQVE7QUFBQSxFQUNuQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsV0FBVyxRQUFRO0FBQUEsRUFDcEIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsRUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsUUFBUSxRQUFRO0FBQUEsRUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxFQUNsQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxNQUFNLFFBQVE7QUFBQSxFQUNmLENBQUMsUUFBUSxRQUFRO0FBQUEsRUFDakIsQ0FBQyxPQUFPLFFBQVE7QUFBQSxFQUNoQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsVUFBVSxRQUFRO0FBQUEsRUFDbkIsQ0FBQyxTQUFTLFFBQVE7QUFBQSxFQUNsQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFDbEIsQ0FBQyxPQUFPLFFBQVE7QUFBQSxFQUNoQixDQUFDLE9BQU8sUUFBUTtBQUFBLEVBQ2hCLENBQUMsTUFBTSxRQUFRO0FBQUEsRUFDZixDQUFDLE9BQU8sUUFBUTtBQUFBLEVBQ2hCLENBQUMsT0FBTyxRQUFRO0FBQUEsRUFDaEIsQ0FBQyxPQUFPLFFBQVE7QUFBQSxFQUNoQixDQUFDLFVBQVUsUUFBUTtBQUFBLEVBQ25CLENBQUMsT0FBTyxRQUFRO0FBQUEsRUFDaEIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsTUFBTSxRQUFRO0FBQUEsRUFDZixDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ2xCLENBQUMsTUFBTSxRQUFRO0FBQUEsRUFDZixDQUFDLE1BQU0sUUFBUTtBQUFBLEVBQ2YsQ0FBQyxPQUFPLFFBQVE7QUFBQSxFQUNoQixDQUFDLE9BQU8sUUFBUTtBQUFBLEVBQ2hCLENBQUMsUUFBUSxRQUFRO0FBQUEsRUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxFQUNqQixDQUFDLFFBQVEsUUFBUTtBQUFBLEVBQ2pCLENBQUMsU0FBUyxRQUFRO0FBQUEsRUFD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LENBQUM7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUNYLEdBQUc7QUFBQSxFQUNELE1BQU07QUFBQSxFQUNOLFNBQVM7QUFDWCxHQUFHO0FBQUEsRUFDRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQ1gsR0FBRztBQUFBLEVBQ0QsTUFB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QUFLLFdBQVcsRUFDdkIsUUFBUSw4QkFBOEIsRUFDdEMsUUFBUSw0RkFBNEYsRUFDcEcsVUFBVSxDQUFDLE9BQU87QUFDZixTQUFHLFNBQVMsS0FBSyxPQUFPLFNBQVMsdUJBQXVCLEVBQUUsU0FBUyxPQUFPLFFBQVE7QUFDOUUsY0FBTSxLQUFLLE9BQU8sZUFBZSxFQUFFLHlCQUF5QixJQUFJLENBQUM7QUFBQSxNQUNyRSxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBRUwsU0FBSyxZQUFZLFNBQVMsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWpELFFBQUksMEJBQVEsS0FBSyxXQUFXLEVBQ3ZCLFFBQVEsc0JBQXNCLEVBQzlCLFFBQVEsa0VBQWtFLEVBQzFFLFFBQVEsQ0FBQ0EsVUFBUztBQUNmLE1BQUFBLE1BQUssU0FBUyxLQUFLLE9BQU8sU0FBUyxrQkFBa0IsRUFBRSxTQUFTLE9BQU8sVUFBVTtBQUM3RSxjQUFNLEtBQUssT0FBTyxlQUFlLEVBQUUsb0JBQW9CLE1BQU0sQ0FBQztBQUFBLE1BQ2xFLENBQUM7QUFBQSxJQUNMLENBQUM7QUFFTCxRQUFJLDBCQUFRLEtBQUssV0FBVyxFQUN2QixRQUFRLHlDQUF5QyxFQUNqRDtBQUFBLE1BQ0c7QUFBQSxJQUVKLEVBQ0MsVUFBVSxDQUFDLE9BQU87QUFDZixTQUFHLFNBQVMsS0FBSyxPQUFPLFNBQVMsK0JBQStCLEVBQUUsU0FBUyxPQUFPLFFBQVE7QUFDdEYsY0FBTSxLQUFLLE9BQU8sZUFBZSxFQUFFLGlDQUFpQyxJQUFJLENBQUM7QUFBQSxNQUM3RSxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDVDtBQUNKOyIsCiAgIm5hbWVzIjogWyJtb2R1bGUiLCAibiIsICJ0IiwgInIiLCAiZSIsICJ1IiwgIm8iLCAiaSIsICJhIiwgImYiLCAiYyIsICJzIiwgImwiLCAieCIsICJiIiwgImgiLCAicCIsICJkIiwgInYiLCAiZyIsICJtIiwgInkiLCAiRSIsICJ3IiwgIkIiLCAiaiIsICJTIiwgIl8iLCAiTCIsICJPIiwgImsiLCAiUCIsICJxIiwgIkEiLCAiSSIsICJGIiwgIk0iLCAieiIsICJSIiwgIlUiLCAiVyIsICJEIiwgIk4iLCAiRyIsICJDIiwgIkoiLCAiVCIsICJZIiwgIlYiLCAiSCIsICJYIiwgIksiLCAiUSIsICJaIiwgIiQiLCAibm4iLCAidG4iLCAicm4iLCAiYW4iLCAiZW4iLCAidW4iLCAiZm4iLCAiY24iLCAic24iLCAibG4iLCAiaG4iLCAicG4iLCAiZG4iLCAidm4iLCAiZ24iLCAibW4iLCAieW4iLCAiaW5kZXgiLCAiYXJyYXkiLCAibGVuZ3RoIiwgImkiLCAiayIsICJzZW1pY29sb24iLCAiaSIsICJjIiwgInNoaWZ0IiwgIm1heCIsICJ2IiwgImNoYXIiLCAiaW5wdXQiLCAibGVuZ3RoIiwgImxpbmUiLCAiY29sdW1uIiwgImluZGV4IiwgInN0YXRlIiwgIm5leHQiLCAibCIsICJhIiwgImIiLCAiaiIsICJpbnB1dCIsICJtYXRjaCIsICJoYXNoIiwgInVybCIsICJpbmRleCIsICJpIiwgImlucHV0IiwgImluZGV4IiwgImkiLCAibGluZSIsICJqIiwgImEiLCAiYiIsICJzdGF0ZSIsICJzb3VyY2VJbmRleCIsICJhcnJheSIsICJwYXJzZSIsICJvZmZzZXQiLCAiYXBwZW5kIiwgImNvbHVtbiIsICJpc1N0cmluZyIsICJmcm9tIiwgInMiLCAiZW5jb2RlIiwgImRlY29kZSIsICJjbG9uZSIsICJic0ZvdW5kIiwgIm1pbiIsICJtYXgiLCAiR2VuTWFwcGluZyIsICJTZXRBcnJheSIsICJtYXliZUFkZFNlZ21lbnQiLCAiaW5kZXgiLCAicHV0IiwgInJlbW92ZSIsICJ0b0VuY29kZWRNYXAiLCAiZW5jb2RlIiwgImlucHV0IiwgIlRyYWNlTWFwIiwgImRlY29kZWRNYXBwaW5ncyIsICJpIiwgImxpbmUiLCAiaiIsICJhcnJheSIsICJsZW5ndGgiLCAicHJldiIsICJkIiwgImIiLCAicCIsICJWRXJyb3IiLCAiTm9vcENvbnRleHQiLCAiRGV0YWlsQ29udGV4dCIsICJ1IiwgImkiLCAibSIsICJEZXRhaWxVbmlvblJlc29sdmVyIiwgImQiLCAiYiIsICJwIiwgIlRUeXBlIiwgIm5hbWUiLCAiVE5hbWUiLCAibGl0IiwgIlRMaXRlcmFsIiwgImFycmF5IiwgIlRBcnJheSIsICJpIiwgIl9pIiwgInQiLCAiVFR1cGxlIiwgInVuaW9uIiwgIlRVbmlvbiIsICJuIiwgIlRJbnRlcnNlY3Rpb24iLCAiVEVudW1UeXBlIiwgIlRFbnVtTGl0ZXJhbCIsICJpZmFjZSIsICJUSWZhY2UiLCAidiIsICJvcHQiLCAiVE9wdGlvbmFsIiwgIlRQcm9wIiwgIlRGdW5jIiwgIlRQYXJhbSIsICJUUGFyYW1MaXN0IiwgInBhcmFtIiwgIkJhc2ljVHlwZSIsICJhcnJheV8xIiwgInMiLCAiaSIsICJyIiwgImsiLCAiYSIsICJqIiwgImNyZWF0ZUNoZWNrZXJzIiwgIkNoZWNrZXIiLCAicCIsICJMaW5lc0FuZENvbHVtbnMiLCAic3RyaW5nIiwgIm9mZnNldCIsICJpbmRleCIsICJsaW5lIiwgImNvbHVtbiIsICJFbGVtZW50IiwgImlzRWxlbWVudCIsICJtb2R1bGUiLCAibW9kdWxlIiwgImkiLCAiZSIsICJtb2R1bGUiLCAiaGFzT3duUHJvcGVydHkiLCAiaSIsICJuIiwgImZyb20iLCAicyIsICJtb2R1bGUiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJ0ZXh0IiwgIngiLCAibW9kdWxlIiwgImFzc2lnbiIsICJ0ZXh0IiwgIngiLCAieSIsICJpIiwgImNoZWNrZXIiLCAiaXNOb2RlIiwgIm1vZHVsZSIsICJkIiwgImIiLCAicCIsICJhIiwgIkJUcmVlIiwgImsiLCAidiIsICJpIiwgIm5leHQiLCAic3RhdGUiLCAiY3Vyc29yIiwgIm5vZGUiLCAibiIsICJtaW4iLCAibWF4IiwgInIiLCAidCIsICJzaXplIiwgIkJOb2RlIiwgImxvIiwgImMiLCAiXyIsICJCTm9kZUludGVybmFsIiwgImxlbmd0aCIsICJtb2R1bGUiLCAiZiIsICJnIiwgImRlZmluZSIsICJleHBvcnRzIiwgImUiLCAidCIsICJuIiwgInIiLCAicyIsICJvIiwgInUiLCAiYSIsICJpIiwgImwiLCAiZ2xvYmFsIiwgIlByb21pc2UiLCAic2VsZiIsICJfdHlwZW9mIiwgIl9jbGFzc0NhbGxDaGVjayIsICJrZXkiLCAibGVuZ3RoIiwgImlkYiIsICJvcHRpb25zIiwgImoiLCAiayIsICJmb3JhZ2UiLCAiY3Vyc29yIiwgInZhbHVlIiwgImVyciIsICJrZXlzIiwgImRiIiwgInAiLCAic2VyaWFsaXplIiwgImVycm9yIiwgInJlc29sdmUiLCAicmVqZWN0IiwgInNhbWVWYWx1ZSIsICJ4IiwgInkiLCAiaW5jbHVkZXMiLCAiYXJyYXkiLCAiaXNBcnJheSIsICJMb2NhbEZvcmFnZSIsICJjb25maWciLCAiY29uZmlndXJlTWlzc2luZ01ldGhvZHMiLCAibWV0aG9kTm90SW1wbGVtZW50ZWRGYWN0b3J5IiwgInByb21pc2UiLCAic2V0RHJpdmVyU3VwcG9ydCIsICJzdXBwb3J0ZWREcml2ZXJzIiwgIlF1ZXVlIiwgInJlcXVpcmVfcXVldWUiLCAiUXVldWUiLCAibyIsICJlIiwgIm5leHQiLCAiYSIsICJrIiwgIngiLCAibiIsICJpbnB1dCIsICJzdHJpbmciLCAiZiIsICJkIiwgInAyIiwgIm0iLCAidSIsICJ2IiwgIm9mZnNldCIsICJsZW5ndGgiLCAicyIsICJ0b2tlbiIsICJpIiwgImMiLCAibiIsICJwIiwgInN0cmluZyIsICJmb3JtYXRPZmZzZXQiLCAibGVuZ3RoIiwgInQiLCAiaSIsICJzIiwgImUiLCAic2luZ2xldG9uIiwgIm9mZnNldCIsICJzIiwgInIiLCAiaW5wdXQiLCAiZGVmYXVsdFpvbmUiLCAib2Zmc2V0IiwgIm4iLCAidCIsICJvcHRpb25zIiwgImUiLCAiZiIsICJpIiwgImxlbmd0aCIsICJmbG9vciIsICJ6IiwgIm0iLCAiZiIsICJyIiwgIm0iLCAiY3Vyc29yIiwgIm5leHQiLCAicyIsICJyZWdleCIsICJtYXRjaCIsICJpIiwgIm9mZnNldCIsICJuIiwgImNvbmZpZyIsICJ0ZXh0IiwgIm8iLCAibCIsICJzIiwgImsiLCAiZm4iLCAidSIsICJpIiwgInYyIiwgIklOVkFMSUQiLCAiZW5kIiwgImNvbmZpZyIsICJ0ZXh0IiwgInMiLCAiZSIsICJvIiwgImQiLCAiaSIsICJuZXh0IiwgIngiLCAiYSIsICJiIiwgImlucHV0IiwgImxlbmd0aCIsICJjdXJzb3IiLCAiYSIsICJiIiwgInUiLCAiaSIsICJtaW4iLCAibWF4IiwgImFwcGVuZCIsICJyZWdleCIsICJpIiwgInMiLCAiaCIsICJtIiwgInRva2VuIiwgInQiLCAidSIsICJmIiwgInIiLCAiaW5wdXQiLCAiayIsICJwIiwgImQiLCAiaSIsICJJTlZBTElEIiwgImNsb25lIiwgIm8iLCAibzIiLCAibzMiLCAib2Zmc2V0IiwgImQiLCAiYyIsICJ0ZXh0IiwgIm9yZGVyZWRVbml0cyIsICJ1IiwgImVuZCIsICJyb3VuZCIsICJjb25maWciLCAib3B0aW9ucyIsICJ2IiwgInEiLCAiaSIsICJfIiwgInRleHQiLCAiZW5kIiwgIm9mZnNldCIsICJwb3NpdGlvbiIsICJQIiwgIkxpdGVyYWxzIiwgImYiLCAiZSIsICJpc051bWJlciIsICJpc1N0cmluZyIsICJpc0RhdGUiLCAiaXNBcnJheSIsICJ4IiwgImYyIiwgImluZGV4IiwgIm8yIiwgImsyIiwgInYiLCAiR3JvdXBpbmdzIiwgInNsaWNlIiwgImVuZCIsICJmIiwgIlJlc3VsdCIsICJhIiwgImIiLCAiaW5wdXQiLCAiRmlsdGVycyIsICJ4IiwgInVuaW9uIiwgImEiLCAiYiIsICJhdG9tIiwgIm5lZ2F0ZWQiLCAiRXhwcmVzc2lvbnMiLCAiaW5kZXgiLCAiZnVuYyIsICJhIiwgInYiLCAiayIsICJfIiwgInEiLCAicCIsICJsIiwgImEiLCAiYiIsICJkIiwgInQiLCAieCIsICJjIiwgImYiLCAiXzIiLCAiXzMiLCAiY29tYmluZSIsICJub2RlIiwgImluZGV4IiwgImYiLCAiYSIsICJpbnB1dCIsICJpIiwgIm5leHQiLCAibWF0Y2giLCAibWF0Y2gyIiwgImwiLCAic2xpY2UiLCAib3B0aW9ucyIsICJ2bm9kZUlkIiwgImlzVmFsaWRFbGVtZW50IiwgInJlcmVuZGVyUXVldWUiLCAicHJldkRlYm91bmNlIiwgImRlZmVyIiwgImRlcHRoU29ydCIsICJldmVudENsb2NrIiwgImV2ZW50UHJveHkiLCAiZXZlbnRQcm94eUNhcHR1cmUiLCAiaSIsICJFTVBUWV9PQkoiLCAiRU1QVFlfQVJSIiwgIklTX05PTl9ESU1FTlNJT05BTCIsICJpc0FycmF5IiwgIkFycmF5IiwgImFzc2lnbiIsICJvYmoiLCAicHJvcHMiLCAicmVtb3ZlTm9kZSIsICJub2RlIiwgInBhcmVudE5vZGUiLCAicmVtb3ZlQ2hpbGQiLCAiY3JlYXRlRWxlbWVudCIsICJ0eXBlIiwgImNoaWxkcmVuIiwgImtleSIsICJyZWYiLCAibm9ybWFsaXplZFByb3BzIiwgImFyZ3VtZW50cyIsICJsZW5ndGgiLCAiY2FsbCIsICJkZWZhdWx0UHJvcHMiLCAiY3JlYXRlVk5vZGUiLCAib3JpZ2luYWwiLCAidm5vZGUiLCAiX19rIiwgIl9fIiwgIl9fYiIsICJfX2UiLCAiX19kIiwgIl9fYyIsICJjb25zdHJ1Y3RvciIsICJfX3YiLCAiX19pIiwgIl9fdSIsICJjcmVhdGVSZWYiLCAiY3VycmVudCIsICJGcmFnbWVudCIsICJCYXNlQ29tcG9uZW50IiwgImNvbnRleHQiLCAidGhpcyIsICJnZXREb21TaWJsaW5nIiwgImNoaWxkSW5kZXgiLCAic2libGluZyIsICJ1cGRhdGVQYXJlbnREb21Qb2ludGVycyIsICJjaGlsZCIsICJiYXNlIiwgImVucXVldWVSZW5kZXIiLCAiYyIsICJwdXNoIiwgInByb2Nlc3MiLCAiX19yIiwgImRlYm91bmNlUmVuZGVyaW5nIiwgInJlbmRlclF1ZXVlTGVuZ3RoIiwgImNvbXBvbmVudCIsICJuZXdWTm9kZSIsICJvbGRWTm9kZSIsICJvbGREb20iLCAiY29tbWl0UXVldWUiLCAicmVmUXVldWUiLCAic29ydCIsICJzaGlmdCIsICJfX1AiLCAiZGlmZiIsICJfX24iLCAibmFtZXNwYWNlVVJJIiwgImNvbW1pdFJvb3QiLCAiZGlmZkNoaWxkcmVuIiwgInBhcmVudERvbSIsICJyZW5kZXJSZXN1bHQiLCAibmV3UGFyZW50Vk5vZGUiLCAib2xkUGFyZW50Vk5vZGUiLCAiZ2xvYmFsQ29udGV4dCIsICJuYW1lc3BhY2UiLCAiZXhjZXNzRG9tQ2hpbGRyZW4iLCAiaXNIeWRyYXRpbmciLCAiY2hpbGRWTm9kZSIsICJuZXdEb20iLCAiZmlyc3RDaGlsZERvbSIsICJvbGRDaGlsZHJlbiIsICJuZXdDaGlsZHJlbkxlbmd0aCIsICJjb25zdHJ1Y3ROZXdDaGlsZHJlbkFycmF5IiwgImFwcGx5UmVmIiwgImluc2VydCIsICJuZXh0U2libGluZyIsICJza2V3ZWRJbmRleCIsICJtYXRjaGluZ0luZGV4IiwgIm9sZENoaWxkcmVuTGVuZ3RoIiwgInJlbWFpbmluZ09sZENoaWxkcmVuIiwgInNrZXciLCAiU3RyaW5nIiwgImZpbmRNYXRjaGluZ0luZGV4IiwgInVubW91bnQiLCAicGFyZW50Vk5vZGUiLCAiY29udGFpbnMiLCAiaW5zZXJ0QmVmb3JlIiwgIm5vZGVUeXBlIiwgInRvQ2hpbGRBcnJheSIsICJvdXQiLCAic29tZSIsICJ4IiwgInkiLCAic2V0U3R5bGUiLCAic3R5bGUiLCAidmFsdWUiLCAic2V0UHJvcGVydHkiLCAidGVzdCIsICJkb20iLCAibmFtZSIsICJvbGRWYWx1ZSIsICJ1c2VDYXB0dXJlIiwgIm8iLCAiY3NzVGV4dCIsICJyZXBsYWNlIiwgInRvTG93ZXJDYXNlIiwgIl9hdHRhY2hlZCIsICJhZGRFdmVudExpc3RlbmVyIiwgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCAiZSIsICJyZW1vdmVBdHRyaWJ1dGUiLCAic2V0QXR0cmlidXRlIiwgImNyZWF0ZUV2ZW50UHJveHkiLCAiZXZlbnRIYW5kbGVyIiwgIl9kaXNwYXRjaGVkIiwgImV2ZW50IiwgInRtcCIsICJpc05ldyIsICJvbGRQcm9wcyIsICJvbGRTdGF0ZSIsICJzbmFwc2hvdCIsICJjbGVhclByb2Nlc3NpbmdFeGNlcHRpb24iLCAibmV3UHJvcHMiLCAiaXNDbGFzc0NvbXBvbmVudCIsICJwcm92aWRlciIsICJjb21wb25lbnRDb250ZXh0IiwgInJlbmRlckhvb2siLCAiY291bnQiLCAibmV3VHlwZSIsICJvdXRlciIsICJwcm90b3R5cGUiLCAicmVuZGVyIiwgImNvbnRleHRUeXBlIiwgIl9fRSIsICJkb1JlbmRlciIsICJzdWIiLCAic3RhdGUiLCAiX19oIiwgIl9zYiIsICJfX3MiLCAiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwgImNvbXBvbmVudFdpbGxNb3VudCIsICJjb21wb25lbnREaWRNb3VudCIsICJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwgInNob3VsZENvbXBvbmVudFVwZGF0ZSIsICJjb21wb25lbnRXaWxsVXBkYXRlIiwgImNvbXBvbmVudERpZFVwZGF0ZSIsICJnZXRDaGlsZENvbnRleHQiLCAiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCAiTU9ERV9IWURSQVRFIiwgImluZGV4T2YiLCAiZGlmZkVsZW1lbnROb2RlcyIsICJkaWZmZWQiLCAicm9vdCIsICJjYiIsICJuZXdIdG1sIiwgIm9sZEh0bWwiLCAibmV3Q2hpbGRyZW4iLCAiaW5wdXRWYWx1ZSIsICJjaGVja2VkIiwgImxvY2FsTmFtZSIsICJkb2N1bWVudCIsICJjcmVhdGVUZXh0Tm9kZSIsICJjcmVhdGVFbGVtZW50TlMiLCAiaXMiLCAiX19tIiwgImRhdGEiLCAiY2hpbGROb2RlcyIsICJhdHRyaWJ1dGVzIiwgIl9faHRtbCIsICJpbm5lckhUTUwiLCAiaGFzUmVmVW5tb3VudCIsICJza2lwUmVtb3ZlIiwgInIiLCAiY29tcG9uZW50V2lsbFVubW91bnQiLCAicmVwbGFjZU5vZGUiLCAiZmlyc3RDaGlsZCIsICJoeWRyYXRlIiwgImNsb25lRWxlbWVudCIsICJjcmVhdGVDb250ZXh0IiwgImRlZmF1bHRWYWx1ZSIsICJjb250ZXh0SWQiLCAiQ29uc3VtZXIiLCAiY29udGV4dFZhbHVlIiwgIlByb3ZpZGVyIiwgInN1YnMiLCAiY3R4IiwgIlNldCIsICJfcHJvcHMiLCAiZm9yRWFjaCIsICJhZGQiLCAib2xkIiwgImRlbGV0ZSIsICJlcnJvciIsICJlcnJvckluZm8iLCAiY3RvciIsICJoYW5kbGVkIiwgImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsICJzZXRTdGF0ZSIsICJjb21wb25lbnREaWRDYXRjaCIsICJ1bmRlZmluZWQiLCAidXBkYXRlIiwgImNhbGxiYWNrIiwgInMiLCAiZm9yY2VVcGRhdGUiLCAiUHJvbWlzZSIsICJ0aGVuIiwgImJpbmQiLCAicmVzb2x2ZSIsICJzZXRUaW1lb3V0IiwgImEiLCAiYiIsICJjdXJyZW50SW5kZXgiLCAiY3VycmVudENvbXBvbmVudCIsICJwcmV2aW91c0NvbXBvbmVudCIsICJwcmV2UmFmIiwgImN1cnJlbnRIb29rIiwgImFmdGVyUGFpbnRFZmZlY3RzIiwgIm9wdGlvbnMiLCAiX29wdGlvbnMiLCAib2xkQmVmb3JlRGlmZiIsICJfX2IiLCAib2xkQmVmb3JlUmVuZGVyIiwgIl9fciIsICJvbGRBZnRlckRpZmYiLCAiZGlmZmVkIiwgIm9sZENvbW1pdCIsICJfX2MiLCAib2xkQmVmb3JlVW5tb3VudCIsICJ1bm1vdW50IiwgIm9sZFJvb3QiLCAiX18iLCAiZ2V0SG9va1N0YXRlIiwgImluZGV4IiwgInR5cGUiLCAiX19oIiwgImhvb2tzIiwgIl9fSCIsICJsZW5ndGgiLCAicHVzaCIsICJ1c2VTdGF0ZSIsICJpbml0aWFsU3RhdGUiLCAidXNlUmVkdWNlciIsICJpbnZva2VPclJldHVybiIsICJyZWR1Y2VyIiwgImluaXQiLCAiaG9va1N0YXRlIiwgIl9yZWR1Y2VyIiwgImFjdGlvbiIsICJjdXJyZW50VmFsdWUiLCAiX19OIiwgIm5leHRWYWx1ZSIsICJzZXRTdGF0ZSIsICJfaGFzU2N1RnJvbUhvb2tzIiwgInVwZGF0ZUhvb2tTdGF0ZSIsICJwIiwgInMiLCAiYyIsICJzdGF0ZUhvb2tzIiwgImZpbHRlciIsICJ4IiwgImV2ZXJ5IiwgInByZXZTY3UiLCAiY2FsbCIsICJ0aGlzIiwgInNob3VsZFVwZGF0ZSIsICJmb3JFYWNoIiwgImhvb2tJdGVtIiwgInByb3BzIiwgInNob3VsZENvbXBvbmVudFVwZGF0ZSIsICJwcmV2Q1dVIiwgImNvbXBvbmVudFdpbGxVcGRhdGUiLCAiX19lIiwgInRtcCIsICJ1c2VFZmZlY3QiLCAiY2FsbGJhY2siLCAiYXJncyIsICJzdGF0ZSIsICJfX3MiLCAiYXJnc0NoYW5nZWQiLCAiX3BlbmRpbmdBcmdzIiwgInVzZUxheW91dEVmZmVjdCIsICJ1c2VSZWYiLCAiaW5pdGlhbFZhbHVlIiwgInVzZU1lbW8iLCAiY3VycmVudCIsICJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwgInJlZiIsICJjcmVhdGVIYW5kbGUiLCAiY29uY2F0IiwgImZhY3RvcnkiLCAidXNlQ2FsbGJhY2siLCAidXNlQ29udGV4dCIsICJjb250ZXh0IiwgInByb3ZpZGVyIiwgInN1YiIsICJ2YWx1ZSIsICJ1c2VEZWJ1Z1ZhbHVlIiwgImZvcm1hdHRlciIsICJuIiwgInVzZUVycm9yQm91bmRhcnkiLCAiY2IiLCAiZXJyU3RhdGUiLCAiY29tcG9uZW50RGlkQ2F0Y2giLCAiZXJyIiwgImVycm9ySW5mbyIsICJ1bmRlZmluZWQiLCAidXNlSWQiLCAicm9vdCIsICJfX3YiLCAiX19tIiwgIm1hc2siLCAiZmx1c2hBZnRlclBhaW50RWZmZWN0cyIsICJjb21wb25lbnQiLCAic2hpZnQiLCAiX19QIiwgImludm9rZUNsZWFudXAiLCAiaW52b2tlRWZmZWN0IiwgImUiLCAidm5vZGUiLCAicGFyZW50RG9tIiwgIl9fayIsICJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCAiYWZ0ZXJOZXh0RnJhbWUiLCAiY29tbWl0UXVldWUiLCAic29tZSIsICJoYXNFcnJvcmVkIiwgIkhBU19SQUYiLCAicmFmIiwgImRvbmUiLCAiY2xlYXJUaW1lb3V0IiwgInRpbWVvdXQiLCAiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCAic2V0VGltZW91dCIsICJob29rIiwgImNvbXAiLCAiY2xlYW51cCIsICJvbGRBcmdzIiwgIm5ld0FyZ3MiLCAiYXJnIiwgImYiLCAic2hhbGxvd0RpZmZlcnMiLCAiYSIsICJiIiwgImkiLCAiUHVyZUNvbXBvbmVudCIsICJwIiwgImMiLCAidGhpcyIsICJwcm9wcyIsICJjb250ZXh0IiwgIm1lbW8iLCAiY29tcGFyZXIiLCAic2hvdWxkVXBkYXRlIiwgIm5leHRQcm9wcyIsICJyZWYiLCAidXBkYXRlUmVmIiwgImNhbGwiLCAiY3VycmVudCIsICJNZW1vZWQiLCAic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwgImNyZWF0ZUVsZW1lbnQiLCAiZGlzcGxheU5hbWUiLCAibmFtZSIsICJwcm90b3R5cGUiLCAiaXNSZWFjdENvbXBvbmVudCIsICJfX2YiLCAiQ29tcG9uZW50IiwgImlzUHVyZVJlYWN0Q29tcG9uZW50IiwgInN0YXRlIiwgIm9sZERpZmZIb29rIiwgIm9wdGlvbnMiLCAiX19iIiwgInZub2RlIiwgInR5cGUiLCAiUkVBQ1RfRk9SV0FSRF9TWU1CT0wiLCAiU3ltYm9sIiwgImZvciIsICJmb3J3YXJkUmVmIiwgImZuIiwgIkZvcndhcmRlZCIsICJyZXN1bHQiLCAiJCR0eXBlb2YiLCAicmVuZGVyIiwgIm1hcEZuIiwgImNoaWxkcmVuIiwgInRvQ2hpbGRBcnJheSIsICJtYXAiLCAiQ2hpbGRyZW4iLCAiZm9yRWFjaCIsICJjb3VudCIsICJsZW5ndGgiLCAib25seSIsICJub3JtYWxpemVkIiwgInRvQXJyYXkiLCAib2xkQ2F0Y2hFcnJvciIsICJfX2UiLCAiZXJyb3IiLCAibmV3Vk5vZGUiLCAib2xkVk5vZGUiLCAiZXJyb3JJbmZvIiwgInRoZW4iLCAiY29tcG9uZW50IiwgIl9fIiwgIl9fYyIsICJfX2siLCAib2xkVW5tb3VudCIsICJ1bm1vdW50IiwgImRldGFjaGVkQ2xvbmUiLCAiZGV0YWNoZWRQYXJlbnQiLCAicGFyZW50RG9tIiwgIl9fSCIsICJlZmZlY3QiLCAib2JqIiwgIl9fUCIsICJjaGlsZCIsICJyZW1vdmVPcmlnaW5hbCIsICJvcmlnaW5hbFBhcmVudCIsICJfX3YiLCAiYXBwZW5kQ2hpbGQiLCAiU3VzcGVuc2UiLCAiX191IiwgIl9zdXNwZW5kZXJzIiwgInN1c3BlbmRlZCIsICJfX2EiLCAibGF6eSIsICJsb2FkZXIiLCAicHJvbSIsICJMYXp5IiwgImV4cG9ydHMiLCAiZGVmYXVsdCIsICJlIiwgIlN1c3BlbnNlTGlzdCIsICJfbmV4dCIsICJfbWFwIiwgIl9fUiIsICJwcm9taXNlIiwgInN1c3BlbmRpbmdWTm9kZSIsICJzdXNwZW5kaW5nQ29tcG9uZW50IiwgInB1c2giLCAicmVzb2x2ZSIsICJyZXNvbHZlZCIsICJvblJlc29sdmVkIiwgIm9uU3VzcGVuc2lvbkNvbXBsZXRlIiwgInN1c3BlbmRlZFZOb2RlIiwgIl9fTyIsICJzZXRTdGF0ZSIsICJwb3AiLCAiZm9yY2VVcGRhdGUiLCAiY29tcG9uZW50V2lsbFVubW91bnQiLCAiZG9jdW1lbnQiLCAiZGV0YWNoZWRDb21wb25lbnQiLCAiZmFsbGJhY2siLCAiRnJhZ21lbnQiLCAibGlzdCIsICJub2RlIiwgImRlbGV0ZSIsICJyZXZlYWxPcmRlciIsICJzaXplIiwgIkNvbnRleHRQcm92aWRlciIsICJnZXRDaGlsZENvbnRleHQiLCAiUG9ydGFsIiwgIl90aGlzIiwgImNvbnRhaW5lciIsICJfY29udGFpbmVyIiwgIl90ZW1wIiwgIm5vZGVUeXBlIiwgInBhcmVudE5vZGUiLCAiY2hpbGROb2RlcyIsICJjb250YWlucyIsICJpbnNlcnRCZWZvcmUiLCAiYmVmb3JlIiwgInJlbW92ZUNoaWxkIiwgInNwbGljZSIsICJpbmRleE9mIiwgImNyZWF0ZVBvcnRhbCIsICJlbCIsICJjb250YWluZXJJbmZvIiwgImRlbGVnYXRlZCIsICJnZXQiLCAidW5zdXNwZW5kIiwgIndyYXBwZWRVbnN1c3BlbmQiLCAiTWFwIiwgInJldmVyc2UiLCAic2V0IiwgImNvbXBvbmVudERpZFVwZGF0ZSIsICJjb21wb25lbnREaWRNb3VudCIsICJSRUFDVF9FTEVNRU5UX1RZUEUiLCAiQ0FNRUxfUFJPUFMiLCAiT05fQU5JIiwgIkNBTUVMX1JFUExBQ0UiLCAiSVNfRE9NIiwgIm9uQ2hhbmdlSW5wdXRUeXBlIiwgInRlc3QiLCAicGFyZW50IiwgImNhbGxiYWNrIiwgInRleHRDb250ZW50IiwgInByZWFjdFJlbmRlciIsICJoeWRyYXRlIiwgInByZWFjdEh5ZHJhdGUiLCAia2V5IiwgIk9iamVjdCIsICJkZWZpbmVQcm9wZXJ0eSIsICJjb25maWd1cmFibGUiLCAidiIsICJ3cml0YWJsZSIsICJ2YWx1ZSIsICJvbGRFdmVudEhvb2siLCAiZXZlbnQiLCAiZW1wdHkiLCAiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCAiY2FuY2VsQnViYmxlIiwgImlzRGVmYXVsdFByZXZlbnRlZCIsICJkZWZhdWx0UHJldmVudGVkIiwgInBlcnNpc3QiLCAibmF0aXZlRXZlbnQiLCAiY3VycmVudENvbXBvbmVudCIsICJjbGFzc05hbWVEZXNjcmlwdG9yTm9uRW51bWJlcmFibGUiLCAiZW51bWVyYWJsZSIsICJjbGFzcyIsICJvbGRWTm9kZUhvb2siLCAibm9ybWFsaXplZFByb3BzIiwgImlzTm9uRGFzaGVkVHlwZSIsICJsb3dlckNhc2VkIiwgInRvTG93ZXJDYXNlIiwgInJlcGxhY2UiLCAibXVsdGlwbGUiLCAiQXJyYXkiLCAiaXNBcnJheSIsICJzZWxlY3RlZCIsICJkZWZhdWx0VmFsdWUiLCAiY2xhc3NOYW1lIiwgIm9sZEJlZm9yZVJlbmRlciIsICJfX3IiLCAib2xkRGlmZmVkIiwgImRpZmZlZCIsICJkb20iLCAiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCAiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsICJyZWFkQ29udGV4dCIsICJfX24iLCAidXNlQ2FsbGJhY2siLCAidXNlQ29udGV4dCIsICJ1c2VEZWJ1Z1ZhbHVlIiwgInVzZURlZmVycmVkVmFsdWUiLCAidXNlRWZmZWN0IiwgInVzZUlkIiwgInVzZUltcGVyYXRpdmVIYW5kbGUiLCAidXNlSW5zZXJ0aW9uRWZmZWN0IiwgInVzZUxheW91dEVmZmVjdCIsICJ1c2VNZW1vIiwgInVzZVJlZHVjZXIiLCAidXNlUmVmIiwgInVzZVN0YXRlIiwgInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwgInVzZVRyYW5zaXRpb24iLCAiY3JlYXRlRmFjdG9yeSIsICJ0eXBlIiwgImNyZWF0ZUVsZW1lbnQiLCAiYmluZCIsICJpc1ZhbGlkRWxlbWVudCIsICJlbGVtZW50IiwgIiQkdHlwZW9mIiwgIlJFQUNUX0VMRU1FTlRfVFlQRSIsICJpc0ZyYWdtZW50IiwgIkZyYWdtZW50IiwgImlzTWVtbyIsICJkaXNwbGF5TmFtZSIsICJTdHJpbmciLCAic3RhcnRzV2l0aCIsICJjbG9uZUVsZW1lbnQiLCAicHJlYWN0Q2xvbmVFbGVtZW50IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwgImNvbnRhaW5lciIsICJfX2siLCAicHJlYWN0UmVuZGVyIiwgImZpbmRET01Ob2RlIiwgImNvbXBvbmVudCIsICJiYXNlIiwgIm5vZGVUeXBlIiwgInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwgImNhbGxiYWNrIiwgImFyZyIsICJmbHVzaFN5bmMiLCAiU3RyaWN0TW9kZSIsICJzdGFydFRyYW5zaXRpb24iLCAiY2IiLCAidXNlRGVmZXJyZWRWYWx1ZSIsICJ2YWwiLCAidXNlVHJhbnNpdGlvbiIsICJ1c2VJbnNlcnRpb25FZmZlY3QiLCAidXNlTGF5b3V0RWZmZWN0IiwgImlzRWxlbWVudCIsICJ1c2VTeW5jRXh0ZXJuYWxTdG9yZSIsICJzdWJzY3JpYmUiLCAiZ2V0U25hcHNob3QiLCAidmFsdWUiLCAiX3VzZVN0YXRlIiwgInVzZVN0YXRlIiwgIl9pbnN0YW5jZSIsICJfXyIsICJfZ2V0U25hcHNob3QiLCAiZm9yY2VVcGRhdGUiLCAiZGlkU25hcHNob3RDaGFuZ2UiLCAidXNlRWZmZWN0IiwgImluc3QiLCAieCIsICJ5IiwgImxhdGVzdEdldFNuYXBzaG90IiwgInByZXZWYWx1ZSIsICJuZXh0VmFsdWUiLCAiZXJyb3IiLCAiaW5kZXgiLCAidXNlSWQiLCAidXNlUmVkdWNlciIsICJ1c2VSZWYiLCAidXNlSW1wZXJhdGl2ZUhhbmRsZSIsICJ1c2VNZW1vIiwgInVzZUNhbGxiYWNrIiwgInVzZUNvbnRleHQiLCAidXNlRGVidWdWYWx1ZSIsICJ2ZXJzaW9uIiwgIkNoaWxkcmVuIiwgInJlbmRlciIsICJoeWRyYXRlIiwgImNyZWF0ZVBvcnRhbCIsICJjcmVhdGVDb250ZXh0IiwgImNyZWF0ZVJlZiIsICJDb21wb25lbnQiLCAiUHVyZUNvbXBvbmVudCIsICJtZW1vIiwgImZvcndhcmRSZWYiLCAiU3VzcGVuc2UiLCAiU3VzcGVuc2VMaXN0IiwgImxhenkiLCAiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCAidm5vZGVJZCIsICJpc0FycmF5IiwgIkFycmF5IiwgImNyZWF0ZVZOb2RlIiwgInR5cGUiLCAicHJvcHMiLCAia2V5IiwgImlzU3RhdGljQ2hpbGRyZW4iLCAiX19zb3VyY2UiLCAiX19zZWxmIiwgInJlZiIsICJpIiwgIm5vcm1hbGl6ZWRQcm9wcyIsICJ2bm9kZSIsICJfX2siLCAiX18iLCAiX19iIiwgIl9fZSIsICJfX2QiLCAiX19jIiwgImNvbnN0cnVjdG9yIiwgIl9fdiIsICJfX2kiLCAiX191IiwgImRlZmF1bHRQcm9wcyIsICJvcHRpb25zIiwgImlubGluZSIsICJ4IiwgIkEiLCAiVCIsICJ5IiwgInUiLCAiZW5kIiwgInEiLCAic3RhdGUiLCAicCIsICJ1IiwgIngiLCAiVCIsICJxIiwgIkMiLCAiaW5saW5lIiwgIkEiLCAieSIsICJpbmRleCIsICJ2YWx1ZSIsICJiIiwgImltcG9ydF9vYnNpZGlhbiIsICJDb250ZXh0dWFsS2V5d29yZCIsICJUb2tlblR5cGUiLCAicmVnZXhwIiwgInN0cmluZyIsICJhcnJvdyIsICJoYXNoIiwgImFzc2lnbiIsICJfZGVmYXVsdCIsICJfZXh0ZW5kcyIsICJfdHlwZW9mIiwgImVuZCIsICJjaGFyQ29kZXMiLCAic2VtaWNvbG9uIiwgImNhcmV0IiwgImxpbmUiLCAiY29sdW1uIiwgImkiLCAibCIsICJtYXRjaCIsICJpIiwgImNoYXIiLCAiaSIsICJuZXh0IiwgIklkZW50aWZpZXJSb2xlIiwgIkpTWFJvbGUiLCAidG9rZW4iLCAiaSIsICJtYXRjaCIsICJzaXplIiwgImluZGV4IiwgInRva2VuIiwgIm9wdGlvbnMiLCAib3B0aW9ucyIsICJwcmVmaXgiLCAiaW5kZXgiLCAidG9rZW4iLCAicyIsICJ0ZXh0IiwgIndoaXRlc3BhY2UiLCAiaSIsICJjIiwgIm9wdGlvbnMiLCAiaSIsICJ0b2tlbiIsICJvcHRpb25zIiwgImkiLCAiY29tcG9uZW50cyIsICJpbmRleCIsICJ0b2tlbiIsICJvcHRpb25zIiwgImxpbmUiLCAiaSIsICJ0b2tlbiIsICJpIiwgInRva2VuIiwgInQiLCAib3B0aW9ucyIsICJtYXRjaCIsICJtYXRjaCIsICJGdW5jdGlvblR5cGUiLCAiaSIsICJtYXRjaCIsICJtYXRjaCIsICJtYXRjaCIsICJtYXRjaCIsICJ0b2tlbiIsICJkZWNsYXJhdGlvbiIsICJtYXRjaCIsICJ0b2tlbiIsICJlbmQiLCAicGFyc2UiLCAiaW5wdXQiLCAiaXNKU1hFbmFibGVkIiwgImlzVHlwZVNjcmlwdEVuYWJsZWQiLCAiaXNGbG93RW5hYmxlZCIsICJpbmRleCIsICJ0b2tlbiIsICJpc0Zsb3dFbmFibGVkIiwgImluZGV4IiwgInRva2VuIiwgInQyIiwgInQzIiwgInQ0IiwgInByZWZpeCIsICJpIiwgInRva2VuIiwgImkiLCAidG9rZW4iLCAicHJlZml4IiwgInRva2VuIiwgImlkZW50aWZpZXIiLCAiaW5kZXgiLCAib3B0aW9ucyIsICJpIiwgImkiLCAiZm4iLCAiXyIsICJfMiIsICJ0b2tlbiIsICJuZXh0VG9rZW4iLCAiaSIsICJpbmRleCIsICJvcHRpb25zIiwgImluZGV4IiwgInRva2VuIiwgInRva2VuIiwgImkiLCAib3B0aW9ucyIsICJwcmVmaXgiLCAidiIsICJzIiwgIm5leHRUb2tlbiIsICJpIiwgImkiLCAiaW5kZXgiLCAib3B0aW9ucyIsICJlIiwgIm9wdGlvbnMiLCAiaXNKU1hFbmFibGVkIiwgImlzVHlwZVNjcmlwdEVuYWJsZWQiLCAiaXNGbG93RW5hYmxlZCIsICJwYXJzZSIsICJfIiwgImltcG9ydF9vYnNpZGlhbiIsICJoIiwgIlQiLCAieSIsICJBIiwgImUiLCAiQSIsICJ5IiwgInEiLCAieCIsICJzdGF0ZSIsICJoIiwgInUiLCAiaCIsICJ5IiwgImVycm9yIiwgIngiLCAiYXBpIiwgInUiLCAiVCIsICJzdHlsZSIsICJ1IiwgImltcG9ydF9vYnNpZGlhbiIsICJ1IiwgImlubGluZSIsICJkaXNhYmxlZCIsICJvbkNoYW5nZSIsICJxIiwgIm1pbiIsICJtYXgiLCAib3B0aW9ucyIsICJlIiwgImljb24iLCAiYyIsICJGaWVsZGJlYXJpbmdzIiwgIkV4dHJhY3RvcnMiLCAia2V5IiwgImZyb250bWF0dGVyIiwgIlAiLCAiSnNvbkNvbnZlcnNpb24iLCAiaW5wdXQiLCAianNvbiIsICJ2IiwgImxpbmUiLCAiaW5kZXgiLCAiY2hhciIsICJsaW5lIiwgImEiLCAiYiIsICJpIiwgImxpbmUiLCAicmVnZXgiLCAibWF0Y2giLCAiZiIsICJwcmVmaXgiLCAiZiIsICJsIiwgImkiLCAibGluZSIsICJpbnB1dCIsICJ4IiwgIm8iLCAidCIsICJyIiwgImUiLCAiaSIsICJ0IiwgImkiLCAiZSIsICJyIiwgInQiLCAiZSIsICJyIiwgInQiLCAibyIsICJyIiwgInIiLCAibCIsICJ0IiwgImUiLCAibiIsICJpIiwgInUiLCAiYSIsICJmIiwgIm8iLCAiciIsICJhIiwgImUiLCAibiIsICJyIiwgImEiLCAidCIsICJyIiwgImUiLCAiciIsICJlIiwgInQiLCAibiIsICJlIiwgInQiLCAibyIsICJyIiwgImkiLCAicyIsICJfcmVmIiwgImgiLCAib25DaGFuZ2UiLCAicSIsICJ2YWx1ZSIsICJuIiwgImUiLCAidCIsICJyIiwgImEiLCAibiIsICJlIiwgInIiLCAidCIsICJvIiwgInQiLCAiZSIsICJ0IiwgImUiLCAidCIsICJ0IiwgIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCAiZSIsICJ0IiwgImUiLCAidCIsICJyIiwgImUiLCAibyIsICJzIiwgInIiLCAiciIsICJyIiwgImkiLCAib3B0aW9ucyIsICJTdHlsZVNoZWV0IiwgImUiLCAibGVuZ3RoIiwgIm1hdGNoIiwgImluZGV4IiwgImJlZ2luIiwgImVuZCIsICJhcnJheSIsICJsZW5ndGgiLCAibmV4dCIsICJiZWdpbiIsICJlbmQiLCAid2hpdGVzcGFjZSIsICJuZXh0IiwgImluZGV4IiwgIm5leHQiLCAicGFyc2UiLCAiaW5kZXgiLCAib2Zmc2V0IiwgImxlbmd0aCIsICJjaGFyYWN0ZXIiLCAiY2hhcmFjdGVycyIsICJuZXh0IiwgIndoaXRlc3BhY2UiLCAic2l6ZSIsICJpIiwgImoiLCAiayIsICJ4IiwgInkiLCAieiIsICJsZW5ndGgiLCAiaSIsICJpbmRleCIsICJsZW5ndGgiLCAiaW5kZXgiLCAiaSIsICJmbiIsICJpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmciLCAiYmVnaW4iLCAiaW5kZXgiLCAiY2hhcmFjdGVyIiwgIm5leHQiLCAidG9SdWxlcyIsICJnZXRSdWxlcyIsICJjb21wYXQiLCAiaSIsICJrIiwgImoiLCAicmVtb3ZlTGFiZWwiLCAibGVuZ3RoIiwgInByZWZpeGVyIiwgIm1hdGNoIiwgImNyZWF0ZUNhY2hlIiwgIm9wdGlvbnMiLCAibm9kZSIsICJzdHlsaXMiLCAic3R5bGVzIiwgImNsYXNzTmFtZXMiLCAicmVnaXN0ZXJTdHlsZXMiLCAiaW5zZXJ0U3R5bGVzIiwgImgiLCAiayIsICJpIiwgImlzRGV2ZWxvcG1lbnQiLCAiaXNDdXN0b21Qcm9wZXJ0eSIsICJpc1Byb2Nlc3NhYmxlVmFsdWUiLCAicHJvY2Vzc1N0eWxlVmFsdWUiLCAibWF0Y2giLCAicDIiLCAia2V5ZnJhbWVzIiwgIm5leHQiLCAic3R5bGVzIiwgInN0cmluZyIsICJpIiwgInN5bmNGYWxsYmFjayIsICJpc0RldmVsb3BtZW50IiwgIndpdGhFbW90aW9uQ2FjaGUiLCAidyIsICJ4IiwgImNyZWF0ZUVtb3Rpb25Qcm9wcyIsICJJbnNlcnRpb24iLCAiX3JlZiIsICJ4IiwgImlzRGV2ZWxvcG1lbnQiLCAianN4IiwgImkiLCAia2V5ZnJhbWVzIiwgImUiLCAidCIsICJ2IiwgIngiLCAieSIsICJub2RlIiwgIl9yZWYiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJub2RlIiwgImdldENvbXB1dGVkU3R5bGUiLCAibm9kZSIsICJjc3MiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICIkIiwgIngiLCAieSIsICJvcHRpb25zIiwgImUiLCAiX3JlZiIsICJfIiwgIm5vb3AiLCAicHJlZml4IiwgInN0YXRlIiwgImkiLCAiY2xlYW5WYWx1ZSIsICJjbGVhbkNvbW1vblByb3BzIiwgImdldFN0eWxlUHJvcHMiLCAidCIsICJiIiwgImMiLCAiZCIsICJlIiwgInciLCAicmVtb3ZlUHJvcHMiLCAiX3JlZiIsICJfcmVmMiIsICJjb250cm9sSGVpZ2h0IiwgImNvZXJjZVBsYWNlbWVudCIsICJwIiwgIm1lbnVDU1MiLCAiX29iamVjdFNwcmVhZDIiLCAiYm9yZGVyUmFkaXVzIiwgInNwYWNpbmciLCAiY29sb3JzIiwgIk1lbnVQbGFjZXIiLCAieCIsICJBIiwgImgiLCAic3RhdGUiLCAiTWVudSIsICJtZW51TGlzdENTUyIsICJiYXNlVW5pdCIsICJNZW51TGlzdCIsICJub3RpY2VDU1MiLCAiTm9PcHRpb25zTWVzc2FnZSIsICJMb2FkaW5nTWVzc2FnZSIsICJtZW51UG9ydGFsQ1NTIiwgIm9mZnNldCIsICJwb3NpdGlvbiIsICJNZW51UG9ydGFsIiwgIlQiLCAicSIsICJQIiwgImNvbnRhaW5lckNTUyIsICJTZWxlY3RDb250YWluZXIiLCAidmFsdWVDb250YWluZXJDU1MiLCAiVmFsdWVDb250YWluZXIiLCAiaW5kaWNhdG9yc0NvbnRhaW5lckNTUyIsICJJbmRpY2F0b3JzQ29udGFpbmVyIiwgIlN2ZyIsICJzaXplIiwgIkNyb3NzSWNvbiIsICJEb3duQ2hldnJvbiIsICJiYXNlQ1NTIiwgIkRyb3Bkb3duSW5kaWNhdG9yIiwgIkNsZWFySW5kaWNhdG9yIiwgImluZGljYXRvclNlcGFyYXRvckNTUyIsICJJbmRpY2F0b3JTZXBhcmF0b3IiLCAibG9hZGluZ0luZGljYXRvckNTUyIsICJMb2FkaW5nRG90IiwgIkxvYWRpbmdJbmRpY2F0b3IiLCAiY3NzIiwgIkNvbnRyb2wiLCAiZ3JvdXBDU1MiLCAiR3JvdXAiLCAiZ3JvdXBIZWFkaW5nQ1NTIiwgIkdyb3VwSGVhZGluZyIsICJfZXhjbHVkZWQiLCAiaW5wdXRDU1MiLCAiaW5wdXRTdHlsZSIsICJJbnB1dCIsICJtdWx0aVZhbHVlQ1NTIiwgIm11bHRpVmFsdWVMYWJlbENTUyIsICJtdWx0aVZhbHVlUmVtb3ZlQ1NTIiwgIk11bHRpVmFsdWVHZW5lcmljIiwgIk11bHRpVmFsdWUiLCAiY29tcG9uZW50cyIsICJvcHRpb25DU1MiLCAiT3B0aW9uIiwgInBsYWNlaG9sZGVyQ1NTIiwgIlBsYWNlaG9sZGVyIiwgIlNpbmdsZVZhbHVlIiwgImRlZmF1bHRDb21wb25lbnRzIiwgImkiLCAiaXNFcXVhbCIsICJBMTF5VGV4dCIsICJvcHRpb25zIiwgImlzQXBwbGVEZXZpY2UiLCAiZ2V0QXJyYXlJbmRleCIsICJkaXNhYmxlZCIsICJMaXZlUmVnaW9uIiwgImdldE9wdGlvbkxhYmVsIiwgImlzT3B0aW9uRGlzYWJsZWQiLCAic2NyZWVuUmVhZGVyU3RhdHVzIiwgIlQiLCAiYXNPcHRpb24iLCAiZCIsICJpIiwgImoiLCAic3RyaXBEaWFjcml0aWNzIiwgIm1hdGNoIiwgInRyaW1TdHJpbmciLCAiZGVmYXVsdFN0cmluZ2lmeSIsICJjcmVhdGVGaWx0ZXIiLCAiY29uZmlnIiwgInN0cmluZ2lmeSIsICJ0cmltIiwgImlucHV0IiwgIl9leGNsdWRlZCIsICJfcmVmIiwgImNhbmNlbFNjcm9sbCIsICJBIiwgInEiLCAieSIsICJlIiwgImJsdXJTZWxlY3RJbnB1dCIsICJ0YXJnZXRSZWYiLCAiX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX18iLCAiX3JlZjIiLCAiUmVxdWlyZWRJbnB1dCIsICJvbkZvY3VzIiwgIm9uQ2hhbmdlIiwgImZvcm1hdEdyb3VwTGFiZWwiLCAiY3NzIiwgIl9yZWYiLCAiaW5kZXgiLCAiZ2V0T3B0aW9uTGFiZWwiLCAiZ2V0T3B0aW9uVmFsdWUiLCAiY2F0ZWdvcml6ZWRPcHRpb24iLCAic3RhdGUiLCAib3B0aW9ucyIsICJnZXRGb2N1c2VkT3B0aW9uSWQiLCAiaSIsICJzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zIiwgIlNlbGVjdCIsICJvbkNoYW5nZSIsICJjdXN0b20iLCAiX3JlZjIiLCAiZSIsICJpc0NsZWFyYWJsZSIsICJpc09wdGlvbkRpc2FibGVkIiwgImZvcm1hdEdyb3VwTGFiZWwiLCAiSW5wdXQiLCAiTXVsdGlWYWx1ZSIsICJNdWx0aVZhbHVlQ29udGFpbmVyIiwgIk11bHRpVmFsdWVMYWJlbCIsICJNdWx0aVZhbHVlUmVtb3ZlIiwgIlNpbmdsZVZhbHVlIiwgIlBsYWNlaG9sZGVyIiwgIm9wdCIsICJDbGVhckluZGljYXRvciIsICJMb2FkaW5nSW5kaWNhdG9yIiwgIkRyb3Bkb3duSW5kaWNhdG9yIiwgIkluZGljYXRvclNlcGFyYXRvciIsICJHcm91cCIsICJHcm91cEhlYWRpbmciLCAiTWVudSIsICJNZW51TGlzdCIsICJNZW51UG9ydGFsIiwgIkxvYWRpbmdNZXNzYWdlIiwgIk5vT3B0aW9uc01lc3NhZ2UiLCAiT3B0aW9uIiwgImxvYWRpbmdNZXNzYWdlIiwgIm5vT3B0aW9uc01lc3NhZ2UiLCAicmVuZGVyIiwgImRlbGltaXRlciIsICJpbnB1dCIsICJDb250cm9sIiwgIkluZGljYXRvcnNDb250YWluZXIiLCAiU2VsZWN0Q29udGFpbmVyIiwgIlZhbHVlQ29udGFpbmVyIiwgInciLCAic3RhdGUiLCAib25DaGFuZ2UiLCAidSIsICJBIiwgInkiLCAiZSIsICJ1IiwgImNvbmZpZyIsICJzdGF0ZSIsICJUIiwgInIiLCAiaSIsICJfYSIsICJ1IiwgInRleHQiLCAidHJpbSIsICJtYXRjaCIsICJsIiwgIngiLCAidCIsICJZYW1sQ29udmVyc2lvbiIsICJsaW5lIiwgIm9uQ2hhbmdlIiwgIngiLCAicSIsICJ0ZXh0IiwgImluaXRpYWwiLCAiVCIsICJwIiwgInMiLCAic3RhdGUiLCAiQSIsICJ1IiwgInkiLCAiY29uZmlnIiwgIm9uQ2hhbmdlIiwgIngiLCAibyIsICJ2IiwgImUiLCAidGV4dCIsICJpbmxpbmUiLCAiaCIsICJ4IiwgInUiLCAiaW5kZXgiLCAidSIsICJUIiwgIngiLCAiYSIsICJoIiwgImNvbXBsZXRlZFJlZiIsICJBIiwgImMiLCAiZSIsICJmIiwgIl9hIiwgInYiLCAiVCIsICJ1IiwgImkiLCAicCIsICJoIiwgInEiLCAicGFnZSIsICJ4IiwgImlucHV0IiwgIm1pbiIsICJtYXgiLCAiXyIsICJub29wIiwgImUiLCAiYSIsICJ0IiwgInIiLCAibyIsICJjIiwgInkiLCAiX3JlZiIsICJvbkNoYW5nZSIsICJjc3MiLCAiaSIsICJzaXplIiwgImFycmF5IiwgIm5vZGUiLCAic3R5bGVzIiwgInRyYW5zZm9ybSIsICJfcmVmMiIsICJzIiwgImZuIiwgInByZWZpeCIsICJiaW5kSW50ZXJuYWw0IiwgImIiLCAiZCIsICJsZW5ndGgiLCAic3RyaW5nIiwgImNvdW50ZXIiLCAiaW5kZXgiLCAiaWNvbiIsICJrIiwgInBhcnNlIiwgIm9mZnNldCIsICJjb21tZW50IiwgIm9wdGlvbnMiLCAic3R5bGUiLCAicHJlZml4ZXMiLCAibmV4dCIsICJtYXNrIiwgInBvc2l0aW9uIiwgImNvbnRlbnQiLCAicmVwbGFjZSIsICJlbmQiLCAicHJvdmlkZXJzIiwgIm4iLCAib3duS2V5cyIsICJfb2JqZWN0U3ByZWFkMiIsICJpIiwgIl9kZWZpbmVQcm9wZXJ0eSIsICJfdHlwZW9mIiwgIm9iaiIsICJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsICJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCAiX3RvQ29uc3VtYWJsZUFycmF5IiwgIl9hcnJheVdpdGhvdXRIb2xlcyIsICJfaXRlcmFibGVUb0FycmF5IiwgIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsICJfbm9uSXRlcmFibGVTcHJlYWQiLCAiX2FycmF5TGlrZVRvQXJyYXkiLCAibyIsICJuIiwgImZsaXAiLCAic2l6ZSIsICJzdHJpbmciLCAibWF0Y2giLCAiX2V4Y2x1ZGVkIiwgInMiLCAiY29udmVydCIsICJjcmVhdGVFbGVtZW50IiwgIlBST0RVQ1RJT04iLCAiZSIsICJpY29uIiwgImRlZmF1bHRQcm9wcyIsICJ0cmFuc2Zvcm0iLCAiUHJvcFR5cGVzIiwgImEiLCAiYiIsICJpbmRleCIsICJBIiwgIlQiLCAidSIsICJjb2x1bW4iLCAiY29uZmlnIiwgIngiLCAidiIsICJyIiwgImljb24iLCAiaWNvbiIsICJ1IiwgIlQiLCAidSIsICJmIiwgImluZGV4IiwgInIiLCAiZW5kIiwgImUiLCAicyIsICJsIiwgImNvcHkiLCAiYSIsICJiIiwgInYiLCAieCIsICJpIiwgIm5leHQiLCAiRGF0YUFycmF5IiwgImZyb20iLCAiQ29lcmNlIiwgInN0cmluZyIsICJhcnJheSIsICJkZWZlcnJlZCIsICJiIiwgImxhbmd1YWdlIiwgImxpbmUiLCAidSIsICJiIiwgImlubGluZSIsICJoIiwgImUiLCAibWluIiwgIm1heCIsICJvcHRpb25zIiwgIm9uQ2hhbmdlIiwgInEiLCAieCIsICJUIiwgImEiLCAibiIsICJUcmVlVXRpbHMiLCAibm9kZSIsICJuIiwgImwiLCAiZW5kIiwgImluZGV4IiwgInNsaWNlIiwgImluaXRpYWwiLCAiYSIsICJiIiwgInQiLCAiciIsICJxIiwgInN0YXRlIiwgImsiLCAiVCIsICJwIiwgImNvbHVtbiIsICJ4IiwgInUiLCAiY29uZmlnIiwgImkiLCAidiIsICJ5IiwgIkEiLCAiQ29udGV4dCIsICJzIiwgIl9hIiwgImFwaSIsICJoIiwgInEiLCAicCIsICJUIiwgInkiLCAieCIsICJBIiwgImlubGluZSIsICJ1IiwgImVuZCIsICJlIiwgImlucHV0IiwgInByb2Nlc3MiLCAiUGFyc2ltbW9uIiwgImUiLCAiaW5wdXQiLCAiaW1wb3J0X29ic2lkaWFuIiwgInByZWZpeCIsICJCVHJlZSIsICJhIiwgImIiLCAiYSIsICJiIiwgImMiLCAieCIsICJjIiwgInNlbGYiLCAiayIsICJwIiwgImluZGV4IiwgIkZ1bmN0aW9ucyIsICJEZWZhdWx0RnVuY3Rpb25zIiwgIl8iLCAiYSIsICJ0IiwgImQiLCAiZSIsICJfbiIsICJsIiwgImxpbmsiLCAicGFyc2VkRGF0ZSIsICJmIiwgIm1hdGNoIiwgImRhdGUiLCAibiIsICJiIiwgInYiLCAib2JqZWN0IiwgImxpc3QiLCAicyIsICJzdHIiLCAic3RyaW5nIiwgImVuZCIsICJsZW5ndGgiLCAiYXJyYXkiLCAiZnVuY3Rpb25zIiwgInMiLCAiYSIsICJiIiwgImFyZ3MiLCAicmVzb2x2ZWQiLCAiZSIsICJWYXJpYWJsZXMiLCAiZm9sZGVkIiwgImYiLCAiRmlsdGVyVHJlZXMiLCAiZmlsdGVyIiwgImEiLCAiaW5kZXgiLCAiaWQiLCAibG9jYWxmb3JhZ2UiLCAiayIsICJXb3JrZXIiLCAiaW1wb3J0X29ic2lkaWFuIiwgIm5vdyIsICJXb3JrZXIiLCAiaW1wb3J0X29ic2lkaWFuIiwgInNpemUiLCAiaW1wb3J0X3F1ZXVlIiwgImltcG9ydF9vYnNpZGlhbiIsICJ4IiwgInMiLCAibCIsICJmIiwgImEiLCAicmVzdWx0IiwgInN0b3JlIiwgIm5leHQiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJ4IiwgIlQiLCAic3RhdGUiLCAiaCIsICJxIiwgInUiLCAiZSIsICJzIiwgInYiLCAib25DaGFuZ2UiLCAib3B0aW9ucyIsICJmIiwgImFwaSIsICJ1IiwgImNvbmZpZyIsICJ0ZXh0IiwgImUiXQp9Cg== /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index bc23ee9..8286a06 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -1,14 +1,14 @@ { "main": { - "id": "717cfab1decb563f", + "id": "76de6be868a0418f", "type": "split", "children": [ { - "id": "50e82f48a822186e", + "id": "ab93f18646a229b9", "type": "tabs", "children": [ { - "id": "b1ed4a4ebb4d4030", + "id": "b0c84859373ac40c", "type": "leaf", "state": { "type": "markdown", @@ -27,15 +27,15 @@ "direction": "vertical" }, "left": { - "id": "afbb714e27354943", + "id": "77abafdaf1f529db", "type": "split", "children": [ { - "id": "d2fdeda9e4a39489", + "id": "ab3f1d163c6e49c9", "type": "tabs", "children": [ { - "id": "d518a41dbf87cdbc", + "id": "e99aa82361d9a31c", "type": "leaf", "state": { "type": "file-explorer", @@ -47,12 +47,12 @@ } }, { - "id": "6a42083d5be0f747", + "id": "8365a4fd7ca7f54d", "type": "leaf", "state": { "type": "search", "state": { - "query": "", + "query": "some new te", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -64,7 +64,7 @@ } }, { - "id": "62f78256fe3ea76e", + "id": "9208e1cde5d45dc5", "type": "leaf", "state": { "type": "bookmarks", @@ -80,20 +80,20 @@ "width": 300 }, "right": { - "id": "f4fee29e2c9f5e28", + "id": "0182eefda3972fce", "type": "split", "children": [ { - "id": "6f64f6dabf96323f", + "id": "7dd99025e616bd53", "type": "tabs", "children": [ { - "id": "a48682c9a87d8f5d", + "id": "d1349b6b4c1be96d", "type": "leaf", "state": { "type": "backlink", "state": { - "file": "ui/task.md", + "file": "ui/table.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -103,11 +103,11 @@ "unlinkedCollapsed": true }, "icon": "links-coming-in", - "title": "Backlinks for task" + "title": "Backlinks for table" } }, { - "id": "786b29901f62a61a", + "id": "cd4aa09458163a3e", "type": "leaf", "state": { "type": "outgoing-link", @@ -121,7 +121,7 @@ } }, { - "id": "2b8a432e896c1ede", + "id": "f763f1c206c7f94a", "type": "leaf", "state": { "type": "tag", @@ -134,7 +134,7 @@ } }, { - "id": "ef7b8d5bc3474468", + "id": "9ca046e9999ed3b2", "type": "leaf", "state": { "type": "outline", @@ -162,10 +162,14 @@ "command-palette:Open command palette": false } }, - "active": "b1ed4a4ebb4d4030", + "active": "b0c84859373ac40c", "lastOpenFiles": [ "ui/task.md", + "ui/table.md", + "data/02 - pS2HaRq01BgMYF/01 - jPuAv5MSZAaSHi/01 - UfGI4w8JeWc/J48DS5ZQMe13gho.md", + "ui/embed.md", "ui/buttons.md", - "ui/embed.md" + "data/02 - IVsMoihuGUYL/01 - C5pMsRu6RsMD/01 - 3Qg4LriH48CW/0n8Mov8dWDCSAx.md", + "data/02 - og139BiqzfUPNSmb3Gi/02 - VqLb0OEbyqts/01 - eYAHKUywaHgV01IVzw/2UduZgqecwWR.md" ] } \ No newline at end of file diff --git a/data/00 - Y9InizeOALct8zSP1VMm/00 - TuNksDPDp3ZmucsFwBH.md b/data/00 - Y9InizeOALct8zSP1VMm/00 - TuNksDPDp3ZmucsFwBH.md deleted file mode 100644 index e84f4be..0000000 --- a/data/00 - Y9InizeOALct8zSP1VMm/00 - TuNksDPDp3ZmucsFwBH.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -banner: "![[dash-banner.png]]" -banner: "" -banner_y: -1.1 -banner_x: 0.97531 -banner_lock: true -nested: - other: hi ---- - -[inline:: hi] - -

🌸 welcome~ 🌸

- -```dataviewjs -const today = DateTime.now() -const endOfYear = { - year: today.year, - month: 12, - day: 31 -} -const birthday = DateTime.fromObject({ - year: today.year, - month: 8, - day: 11 -}); -const lastbirthday = birthday.minus({year: 1}) -const nextbirthday = birthday.plus({year: 1}) -console.log(birthday, lastbirthday) -console.log(today.diff(lastbirthday)) -function progress(type) { - let value; - switch(type) { - case "lifespan": - let bol = (today.startOf("day") >= birthday.startOf("day")) - let fac = bol ? 1 : -1 - console.log(today.diff(nextbirthday).as("days")) - console.log(today, birthday, nextbirthday) - value = ( - ( - ( - (today.diff(bol ? birthday : nextbirthday).as("days") * fac) - ) - ) - / today.daysInYear - ) * 100 - console.log("value", value) - break; - case "year": - value = today.month / 12 * 100 - break; - case "month": - value = today.day / today.daysInMonth * 100 - break; - case "day": - value = today.hour / 24 * 100 - break; - } - return ` | ${parseInt(value)} %` -} -dv.span(` -| 🌺 | Progress | Percentage | -| --- | --- |:---:| -| **year** | ${progress("year")} -| **month**| ${progress("month")} -| **day**| ${progress("day")} -| **🎂** | ${progress("lifespan")} -`) -``` - -> z1gEDVtVLaHc1ykzajbe7fvC2rADHwUdI4ZEr8Ma7li -> -> > froOQvV4 -> > `button-daily` -> -> > cPktB8nc -> > `button-thisweek` -> -> > lWRPJe9B -> > `button-thismonth` -> -> > dqDtU1I0 -> > `button-reload` - -> vfG2WXFZw8ehV97G8ZBRKbsGSXCUn

ihGkPz4CFdXjh1qOkrNgHNZIEdexQ✨

-> -> ```dataview -> TABLE file.cday as Created, file.mtime as Modified, file.path as Folder -> ``` - -Uv35cmbiYAUGzZ6HbY4w40l7ZlfaS0RqFdeQhGkJ7RimiJhTBvQlw4InuJFO8llZvP25HAOgGjWgVilZWTq2AM3zaGioU5J9rQzA - - -> ``` -> ``` - ---- - -> pEW8WeIg0ZOSzIhuMsQz2HdrXriRrjX4UHiifcpnJV -> -> > IfabeLqlECj0gGbaff8PcaW98a[[01 - 7zwZ0AudnHh02e94WYf|XMTzzCBxp]] -> > -> > - 5oOgu0H3nY[[01 - C4NPMbOSXDS|fRNl2EE8rNXe]] -> > - nkRydLYfLUBG8KG7[[10 - 9biZcax4ndMchNoWd|QUp9Fe8xIidNzAwgLzhsj]] -> > - WpCHm1caNh4dA[[20 - amth5W9Tu5K8HEJMg|6UrTuyfVRSsNX]] -> -> > NBFUxAQszdmD0MbkGauufzvnRJfOniMXESR89bs[[02 - V9zjvtllxT|ITPIMxCG]] -> > -> > - [gNg55jJF](file:///C:/Users/Corinthe/Desktop/ART) -> > - paHwYEfgzCu -> -> > Zu8puTncaY49CAkvMlwLhePLd7wr7pcfjO8s[[03 - 4dB0ZdgOXvF5ptl6Oy|1W8kvXN]] -> > -> > - [[01 - YfW8curuTbmE|YlcVvhjbb3fU]] -> > - [[02 - ZAeAENuqSMmeZXAV|S05bPtdXS5hmHYonZ]] -> -> > 9YOanQzMNzFV8lsRpas8YZv7b2W7rkK[[04 - uDp5s7qRUuzFtEKKg|X1vWoVI2CcgMa5kcOen]] -> > -> > -> > - [[10 - 7BZfmbP895KT2injqA|Ibo6DqJPfZ9Ujn5RmzQq8Nn]] -> > -> > 2OVG3ED0VEOj2G7vfnzyWfHgWnYISW -> > -> > - [[10 - eFMsByyAHQofAn|6Z7jDjua4Q1EPi3q]] - ---- - -

:far_clipboardlistcheck: Projects

- -> WtmdMJKhCosHRNC -> -> ```dataviewjs -> ``` - -kLkCIuG3hJnvjjOuIQvRU5S8ba88VVMadMNnpuLXdWZRrXNf5UR9XuTGBcLWGJpDpw19toXDwbCXttnPRuei - -> ``` -> ``` - ---- diff --git a/data/00 - Y9InizeOALct8zSP1VMm/PS42HymdRqodzvzjjMug.md b/data/00 - Y9InizeOALct8zSP1VMm/PS42HymdRqodzvzjjMug.md deleted file mode 100644 index 31514a0..0000000 --- a/data/00 - Y9InizeOALct8zSP1VMm/PS42HymdRqodzvzjjMug.md +++ /dev/null @@ -1,45 +0,0 @@ -```dataviewjs -const today = DateTime.now() -const endOfYear = { - year: today.year, - month: 12, - day: 31 -} -const lifespan = { year: 80 } -const birthday = DateTime.fromObject({ - year: today.year, - month: 8, - day: 11 -}); -const lastbirthday = birthday.minus({year: 1}) -console.log(birthday, lastbirthday) -console.log(today.diff(lastbirthday)) -function progress(type) { - let value; - switch(type) { - case "lifespan": - // console.log(lastbi) - value = ((today.diff(lastbirthday)).as("days") / today.daysInYear) * 100 - console.log("value", value) - break; - case "year": - value = today.month / 12 * 100 - break; - case "month": - value = today.day / today.daysInMonth * 100 - break; - case "day": - value = today.hour / 24 * 100 - break; - } - return ` | ${parseInt(value)} %` -} -dv.span(` -| 🌺 | Progress | Percentage | -| --- | --- |:---:| -| **year** | ${progress("year")} -| **month**| ${progress("month")} -| **day**| ${progress("day")} -| **🎂** | ${progress("lifespan")} -`) -``` diff --git a/data/00 - Y9InizeOALct8zSP1VMm/l7qgzLLgIrHkSR.md b/data/00 - Y9InizeOALct8zSP1VMm/l7qgzLLgIrHkSR.md deleted file mode 100644 index 4a6647c..0000000 --- a/data/00 - Y9InizeOALct8zSP1VMm/l7qgzLLgIrHkSR.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -cssclass: ---- - -```dataviewjs -await dv.view("99 - config/85 - dataview views/new-new-pv", {path: "02 - projects"}) -``` diff --git a/data/00 - Y9InizeOALct8zSP1VMm/mkrcjiiXax3ql01ge.md b/data/00 - Y9InizeOALct8zSP1VMm/mkrcjiiXax3ql01ge.md deleted file mode 100644 index 2582e0a..0000000 --- a/data/00 - Y9InizeOALct8zSP1VMm/mkrcjiiXax3ql01ge.md +++ /dev/null @@ -1,31 +0,0 @@ -```button -name   reload obsidian -type command -action Reload app without saving -``` - -S1KrlZMbxKPOs6 - -```button -name   go to today -type command -action Periodic Notes: Open today's daily note -``` - -sf3nFjooaVP0B - -```button -name   go to this week -type command -action Periodic Notes: Open this week's note -``` - -h45rYEoPqZYBhvwq - -```button -name   go to this month -type command -action Periodic Notes: Open this month's note -``` - -BEG5NQQWTJ9Pm4hq2 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - 7zwZ0AudnHh02e94WYf.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - 7zwZ0AudnHh02e94WYf.md deleted file mode 100644 index f87c3df..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - 7zwZ0AudnHh02e94WYf.md +++ /dev/null @@ -1,15 +0,0 @@ -> 9NzyIuyJWI7guTaY8RaRPwzJOQNqdRioAHVuuAg8Wy7HZ9JqiHiOJKbaksyiDmmVOOll -> -> > gsvhUjuHCUtzt6oEg4rV5u[[01 - C4NPMbOSXDS|Y5fsiaHh3oDw]] -> > -> > - uNzlnS1JwuWC[[10 - 9biZcax4ndMchNoWd|UJofGxeoznVejo0nrcwnU]] -> -> > gq4oHkZn6PaNhHKRuu[[20 - amth5W9Tu5K8HEJMg|]]0 -> > [[20 - amth5W9Tu5K8HEJMg|]] - -```folderv -``` - -```folderv -sort: modify-new -``` diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/01 - C4NPMbOSXDS.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/01 - C4NPMbOSXDS.md deleted file mode 100644 index e5bf1dc..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/01 - C4NPMbOSXDS.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -banner: "https://i.imgur.com/2nzVmm0.png" ---- - ---- - -WD7vNYoV5[Yqy9Jwawex8cXQ3yfYagr6NIfIcbRYB](https://i.imgur.com/2nzVmm0.png)8 - - - -CJ7D2hXdqj4F - -# wSg8maHDJDLVR2MM0wdXedBwJXFkZ9RTBR2KohS9olK0HBp1zG8Lc3z855bN29X300M8mW3616TM98ycE56katPBwVn90f7AEXoptcGjQjTW - ---- - -```folderv -sort: modify-new -``` - -[[10 - 9biZcax4ndMchNoWd|]] - ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/10 - 9biZcax4ndMchNoWd.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/10 - 9biZcax4ndMchNoWd.md deleted file mode 100644 index ee68136..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/10 - 9biZcax4ndMchNoWd.md +++ /dev/null @@ -1,36 +0,0 @@ -3WwKnv2PJD5e - -> gtI2Zqi2JOtoSZGUz857ZVMnNMKyegY4oQd0KvePG9eqV9MXjT - -> XzNLmzZWJSgs6lub5W0✨✨ -> -> > PMuEfcGAwiKFPcr7ipSJQFWb8lGeru🦴 -> > -> > 1. [[U2oxF5O9ZXt07|]] -> > 2. [[5le1COnToazqz|]] -> > -> > EwUCOEPWNtJUaH8fPgJmPOpX9ZLhk5QkvYJf59RdpzDrsowIn9akNAAstvfSy4wMT5DJp4a6qd8gyve -> > 3. [[N2ZHWgZBJCD|]] -> > 4. [[Q4HpMnuIEzMGheSJJSk|xjG07e0kAID4u]] -> > 5. [[fwcJZKG7mC2khMlj|d9Ba4FwC]] -> -> > XldcZw8cCMD3GV3P1LT3Qm7ZLLkGkkF7yLLSMKgN0X -> > -> > -> > 1. [[UZ1uDRCCTuy|]] -> > 2. [[FNZzRuoDbHvsHZ|]] -> > 3. [[4kTUg7OgmiSbKo|]] -> -> > 6vRHfgQQG19foBcXX18HMmr6vIJanoOjhlw -> > -> > 1. [[T0nB4i3ExsXbAmD|JWyfaoHVwPX1HAJyR]] -> > 2. -> -> > U92nVgLQyUSRXWT5wZnpqByJMBdxc00KTD -> > -> > - [[6rIszima83yoPa0qq|]] -> > - [[NbQKNPqf63|]] - -```custom-frames -frame: amv-playlist -``` diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3HsgcTDJuL1yAHyzVD8h.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3HsgcTDJuL1yAHyzVD8h.md deleted file mode 100644 index 30500cb..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3HsgcTDJuL1yAHyzVD8h.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Bed of Razors -type: outline -outline type: animatic -tags: Diamond-Head concept ---- - -> uuZ8c4JbgFWwr5koH -> -> 3bKTHyyyA58t3OXgPz0II1ZKFLVHNe9KPpnLdax2csRm5Q - ---- - -# L4pMF3sU5O5yS - -[shot::pov - Sean] - -mPw19AzjzSOUwsgv9GozznF4VVIyc - - -hegNoZb1gWV8BtSuqfaYN66XeZ8BIRD0I9fC5XGDCVV3TX8K - -IlyRxFdPjgBBpnLiAxD7GObCJjyCyxXgRBUvQaPFf - -8tjRF5o3udsEFcqvqynapNv30zOC7MZlkzhetkMsle8kS4paU - -AwClWekRSHT3GeZYDWyC8dg5TEdJCcjRCdraXFJh7wwUbXZrALRBOItVz4G0dPPzDT - -79pPLpyZRmwcob8lv30PiljeKHP7pUd6KGYQSE9JUXcksGSUGcw8dW7qWiBE6hY1e0TI7Sd2HZveZAtPk1Ttfjdom23g61QZY - -7PookoLjN7QCqPQKvaSOZ8f2z3cFI7Q6M594SndSZOhy3FOfExy0 - ---- - -# hae2z - -yxzluQofE8whi6joC7ZXXJszasNRTau3h3rlIDvLDGoFH60NBMNKYKm7Ygu57KYkpGiFa4H1bpfB9lLSXbppFksTKeCmqYfx - -# Su2A5HbhU2 - -> *D44EpnREKZPGgLT4l2nLU*a -> *Mhy1xsLYYqBI8A1JISPP2nK2Nv* - -- 9P7XI98ulidZMALuMXGk7G8JMS2aEeSP -- m4VbIy7vpGsQQCR5wQqjHLZeJJQychpbukSItCVpAQocXE -- M9zdMfTd9ZXkUdDQ33n57m6khzMD - -[angle::top of room] - -- nSemfpeEGEUcJ6LLh5mwO -- 5CiwAhJoGc13uBHPs1Uls5 -- BKvvnM6MGSe0QfzveqAgjzjO diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/6rIszima83yoPa0qq.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/6rIszima83yoPa0qq.md deleted file mode 100644 index bb21c9e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/6rIszima83yoPa0qq.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Bad Seed -type: outline -outline type: animatic -tags: Diamond-Head possibility full-animation ---- - - - -**J0SGNuXN**A8CBBFBhPzim8QZwlCU45vfQXmZEuV - -- Zv65JlOEkLqpf56GP98KdhrR - -- KBc7ZU1nJ8qU2CwJV8Zg466I2deZd4R - -- uTjf5kQFgs9ILf5NKiFZrlaqfsCk50l9swp17ZpsO4FGCv49va7tElOSal3RLbg9QNDRqLNF7cQlANI98ASIRASaJaj - -- *zD1qFPV7VoJ*KOfOxzXCG5mBmcPEzhDij114DIUy4OALDuWLgdis4AjBsvtwCmmpJf0vbdkhT949Py93wBX - ---- - -> *p37* - -- 5ll3t0lxFva2yx93HVTArYguSpQU7Dz2IMbjycOuhdfpyhqU - ---- - -#### o0hI1gwI67YTzailva - -## gAGlrw5 - -> *VICzVnHhZr2mZ5MKcbwj* - -- nN282WdSRzUCRS79kBxZucTW360dCybLeYbAllWW8 - -> *B1Onua0hO7vk8etF1rU* - -- nLDxH4dF6PtmT8dTDZbHyDpV5u7eqGns940tbUZwj1rcbz - -> *F3CQoPYhcR50X1QdzH7mq2ZY2LPY* - -> *Tn0f7zwnNG5HKT* - -> *inB5Scdpb64* - -> *Y3ezlRNZnRLz51* - -- WiM7oNQ38sOKYhu1ZZFpmrSnPzqy5 -- 3XvM7BW3UurxwIYLEWwNpk3s3KkU7kZzzmGfi6cx4J2XLjHkiysn35mk - -> *tI0gbuMZtplyeyGBbAtbVTA82y9LJBkMlRTMhdOH9ApGKhR6uwxqRmxFcpGVQ6CSEmbQUAqa* - -- JfG4nMsPO2qtW7dk7hHRG6vuJz5XTzRNYcdLmKAMMkZE8JBTGAi15QcuNAkGWtd0u - -> *8NcOZ1yqFgAIbbveNl4OI* - -- sJhotFB03pIYdWftJ2Ka8sJ7y0 - - PQE5A4KtoNEDK9bg414qdvc2O - -> *w1Ghi8k9Oy3qXFY3VHGxe* - -- H8UgFC5blYfGcSbAjfIY - -> *d3MFl64JhxA2V4uktrtFToiQEw* - -- OsA5JixUxX5azL3oPs67ge7GItB9nRFvewN5xh2NBDo2JfY8ZYxn6qYvE - - x7bBqH3tnU1J3Do8Tu2c4Pl5I1 - -> *opuYjTFX6OcmSgrFWG* - -> *VgAUPRFhlJ6vm* - -> *jTvyCQwgulpjc* - -> *gET2Dw8V7u6fMeB* - -- Yw5l5M1JiOmmyJGkD7aEq4EkpI5XRPRs2usr4e3eo -- TjFIorRAzP9BUIVgTRJjRjtA97L1GOWZPqj -- OBWOFNAxvT3uzARffFOvlrjkPDpOlFRvaH - ---- - -## ftXdQBrFp1r3 - -> *KcU0e6volMnmyqIW* - -> *lCJjxc8rl49OrMlTD* - -> *BUvNL2qFOi4HMDImHyfjmIrGu809* - -> *ITj1kZvuXbzq7u6OX* - -- dWzPc0I2zs3XKEcqGH8XpCZJm8RFVbZK55 - -> *GECXS93Qu3S* - -- jAE0ApCTzXzB8dtPnh7fp9engblumDCRLFDXfBZ6edbFTz2UJlDMwMFn - -> *pxZC6edltZR* - -- FDKqY20lYWppFHcZAjJFdYBT32iWy0 - -> *NEXes5a3FkNIjxH4xrHha4L6CWaLyFnhUcuOsHlVwlCT -> * - -- H4cjLjbSREvb - - opHxF8vFG2Jp5f59AILNpw1WCfo - - mrbUfj1WX55xYwp7tDEzb2WNy81mI7aqLNba547UaNWqTrVCXuTeHC6 - - ZlSFou5DQhr2viaXnlVL4tqcBcVokjo9amR59AIhFaHT0b8l2huoc5SXEbQzF9iuElz4IGfKoRoO - -- SsF1xOPmt3JWOxfBDx6WO7Q6On4FZEymcBEuu2cG0JG86udH2 - - Qlrm1XLNswXEIK0a9NdePSm2Jls3P3ZKAG - -> *m24DhsX1dkKfuINPBhZJR* - -- hQxlOibxc3K5y5HvNz2 -- rOrwozl97pcfdqckiGd5AOOzRoMsJc4PBrkZe4VyGXezKEpQD - -> *cKuXTtdusO8RKOcbzfKXR* - -- 6FELuix0d2Lzjnix6BK7nmsbcmGTpVLB8Rc -- L4YxJfaMDUlqqXTewgXb7nNr5XLFMexadYHHwQlBGtijX5bXaWMlr6TkLNWHfhI - -> *OHeR1IHX1XvhID1toQ1vLtAJmE3Wlxtt* - -- 23Zz7Xo1oYlSyAcCvI0o8D0zDBEvjPMZRcdSQf8s2L1Vievrj3FK7zfu8rNXSOBgGUoMb3 - -> *zhB6azN1kbK2vzxAj6*\ -> *LOP0Q8Y7ht1szmq* - -- 2luT3KlKhmiqFTfKntK4hEM49cK5ICnUc - -> *Oab3b7M0RdjDLOoff4sUiJlbxCho9* - -####
jRpMWi
- -> *J4XcgDfmgsMm* - -> *pN5whKajSIsZJL* - -> *RmMvYYEGT5v* - -> *hhBwu0cumXIMgZ* - -> *QXRgzP6hz6fg*N -> *2bju226M7x*E -> *JBUWr3pMhX*Z -> *6N20lQxrlg1*g -> *3l57aAPnsl* - -> *6WYX1rtRP6f*\ -> *ASj5hgTMix7VMdc* - ---- - -# dcDhND - -nX57zaqhA - -> *Gt6oJaeU5EDCP* - -- TqiGP9V7J09EDDhzLAu6rUsabioRt -- 5b11 - -> *XYoVkMAHx0HAapjQPalL7bL* - -> *oRDpqIGVcyJfsEP2Gj0gLPT* - -fL46YWhu2QuSK8dFnXlbsdYhK8Nir - - -OZGdMZX2oDX7Xo3CySFdFN -oMWAvGrvez5fSQ9GMwoYaL -leY4b9lbZIdtI29Jdipf61bWXuO5EQp9 -Q17YF1cyY2HSl1uABxu1cqWmc -p48ASsXHC1HGB81XOs8HkKcovRw0jKaOuIDeone3 - - -> *fkiawNgStsRi* - -> *lrfgenZfLGc36v* - -> *txcvfSBP887* - -> *GGjR5oucoZEsgz* - -> *g37WBWR9wiYD*x -> *UeGXJp2Ozo*B -> *R4nyn6JuJd*8 -> *YpbakIVjfGG*h -> *K2dyfTrw9F* - -> *BPsh062CyJ1*\ -> *qON32nNO1T9L9Hm* - -- pQ839WiqfeWeM6MGqgYCRb5nftkdN4p8zWnd3HVbHOyIe -- w6epY7vTSGNKLFZHR0yRwwrdjrUZCCIX61 - -#####
*hPrsKk6KXE0TN*
- -- 9w55uRxEspqD9Bh1C9nOjHKItH9VPDmeKjM -- 4a94Qf4yZGXlF1KRsyX2zmW7zGilYMssPh -- cnRkqYEaB0fKzXA2kgRnE diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/NbQKNPqf63.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/NbQKNPqf63.md deleted file mode 100644 index ec8f48c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/3XChmwxK4n/NbQKNPqf63.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Iron Baby -type: outline -outline type: animatic -tags: Diamond-Head ---- - -sUbEmYQv5roKlEaYcpJFhV - -# qsTTd - -- sSNfGUANqGaYFaY9NmiOMuQp9k7D26uj8K5E5vLL41uMfO1qYudE - - aqq29W0xgYFGDXqdm9TCZ - -## 7b655Oh - -- WUvtspNaI7Z8gCrNeaf6R63JKF2VCTRll1uapOtLeeMUqg -- 73xc3lpRyVmjlkFcmUmrCbtmynJLqfQBSTEbzOh1lJamR - -## T0QVqPBiAV - -# BTNAmfr - -> *yEMBOMiF1pi2hpm63sdFYdKWKDfHyQ* - -- LwzvPIfN6pKgVlSZpLol1WYCdEY5rZOJJrcQtS6ZUjjn8n8CI4WnXBfY6MfkjrPhFjSR6h9mHM1iyFfFEWPSn5r3n - -# t8SyAtZL - -> *VnDKKD725ZBn77jsx8e8VIm6p59w* - -- V32WzdtVaBKbr03OLcXIkWWotpq9cWVsKDRYbBre6Tt1jcE8zLM5cu4DVmANV93r8wXH - -> *IZeeAOgfnuRSLRF3kZORrUzZDsqD5Sr6arf4pMBLE6i* - -- WWHBcKByRdH0eVNNBuiX9yFtL1Z1qQ3iJ3RYb2CzguQtPuqLjbf1Hv -- UvtqBsD6fVq -- 7QzDY0NtUJdaIlwOLmN8WLPw2EBHnfJ7EZs5zmL9Tbu08IQClpMX6Le3KPp -- FZiBKEseRbMPIcLN0htvP0kXL7lUxNmN9eE1pKp6JCm - -k1TESUwBotdq - -## 6c14Xq4ZJPDQWdHC - -# dbDo2wO - -> *LGD0m0BVqT0xvG9fExpzAthnKO7XYqvoh6emPVi2xPsnKPFj4N5TM*z -> *G8iIl07pRUxBdsOqaHdLoRKA9hNokE10W* - -- ZXtmGZdS3wMyKVJjhpOXE1qmZ1n06TlelU79vH4SYRCdXHogqqdq6QgZHdb8R9RJKH0Ia1kOsphmH74Xdzz -- PR59hAIZdF9u70V3SzQr78OUpP7j8jEZ5gSqkO7mo5yHb8 - -> *9Ur7Gtk29ikoX9qPJheWTy3HMUNHTcRCj3YXy2SBgnVc9J1zNL*d -> *L9ZTMdMm22feMpBFuRl9pRjKXnhwgUty* - -# wJ1WZiVI - -> *vUZv8iJztBJXLih5YS48DR8VasHqPG* - -- oeRl8JqL3Y36iPWLtdJLDe0Uxbt21E2uog9 - -> *gng* - -[transition::curtain close] - ---- - -## AxG5MAaj - -- TpZpTbmmBrShsgc2vNZKPwOJzzD5SCt20aTuUNBpIdxDEAomFOjwVJ4E0rtjqbpQGJ3DCG -- CzCne1AW8NiYP4R7xyYoABWnTcRJ0Ofu5xJautgIcT2 -- QVDWlbGIZ92RZJzeidJ4xpbsAgDc0hw1llSCrEsKE59nHLTU9fQMOn34mdTTO1jmhU7mL4FLXqhTTm -- 1q6T0Rs5o28IsUspK1Qoib2ACbVglA - -[transition::motion blur - upwards] - ---- - -# YGRg - -rpASfmif7mcZt59JE - -- 5BVjzzHSiP5AAmLYsLpKqbdpPE -- MKBwWi7OxUpC1FRVbU9zeobkBWQY8vk9jegF0p3tbftv3B8c51tSNs8WDA3I -- psBf6riNb8nWo1EhYxl2QV1QY8xHLpdwFYVvdAWUXZxb2pDnWGQfmSAoUg5vpU6 - -- 98CPz7pbDWf4Y849lYE9YaJv5fVakDg2O -- rhLHkx2nEqhXPyyoxqGpiPFt2OVR2AXWhOV47D50OZSllVyxS4fNLnYONWb1 -- 6FfkEGnSpDsUSO8nFJ7nSPhsFJ2eSLFGwJEmQN28rc6MjXfY4BqnOWqNyJFGE65r9zjcnv9oJ7 - - nlb2w4C7DekZOLn -- ti9NkhxOamM5wG2QDxfDRZRAgf8lq - - MUmkHDb6xEtlXTVh21jf2rG3Y4FaP6GKHSlvQx1MlEvlOSouL2Bsy6858M -- Vselo26ovmT1iRPuSLJJyxqri7nzdULgEdqFFySmquzy70FQfROM84m86tDeVO - - i9iKE5dqtQPoKfHgz1iBiCkHkw2cKmy -- IFhSxk9MgsKyA4aWqAvDbWMnDcSGNGAy1NfxlUSQ5awMDUm3zQcJMDdwvFcK -- tXOLPT783jVmAghv371iZE0kUzJMKGPf1vYzRWGc3w7qWt - - ypf5OGGaYW0N9Y88ev43aTpvy -- tcrZo57DDymqNlD4RsgN4aBpePmle6R0FvX1ioJc1uU -- GUbIdI0w24gumKDdJkIVGx53MkQ0ZUV1wdKKSplCgi0AVRj47CQmgJWi4O2 -- sXEc7Siv5DxyJwaZHqjNtROfCOSoHU7D7ssBBehoJZma3NzUTNrJaam2yRfBN5bDSIqB0 -- 2jTARQ06fvkwbyp3JEOvib2NOVyjfaNWQT5VnOGTfoqsmirrrIN -- NmWMPBsLljIH1dbEH21P3923p01VRu1PblkdassdkPgFg5UIvA3Tw1Ze -- nVVqrqrhulmzPzWNB2bXZ58Jia0WqLOqIqCNtRaPWbj2tnOVRzI1qmGSvaeZldvTGHhes -- 75hjsu6Bo49kcKWk9yYiq5QFkGgiOc13N1OkuxDF9AVHBgz2FAZcSZ9kM6Ftxftfa0yX - [x-ray::] -- QKN2X8XJzOTtD4vcfJxF4hmi4MHnVoRhq7qlwMtxQYOF9sD - [/x-ray::] -- A4lKhDJYuXf2YJozdN09a - [angle::3/4] -- vvdCi2IY2KzF9CoIsOJqTjcAhj4osZncrq2ZWhoYO6vvmijDVMhLsHkfffRs -- tKWEVhSosOuXod3 -- 69w22ltbGVXD -- Xw0yNeWvHkgf9gnpD86stFz1IInXeECnijMy3gofaDYPCo - -- icPjHiUEq2nGzuS28NV8vzjgmytmCOfowOm -- xfquLIweNKJTvpom8LnuWAQUyXneHjxR2Kv0cyBnPE7*Yy1VVl*bu -- ZYDLxpyhNRwpSJeNhM9GXnP02IYiY57nFG8l8VNyFGnofdnXCrtUj3Iwkw4MEcoWEeEc0N0OZZ8Nb603 -- ksqvXNoJo8VlnhKxGhOloUlfSypiais0DrU0QNGF6rmS2DiaBFMXkCIf5zOMWOjXvJA8f1 -- tK4gLmHtUhIzi4rfx -- KapatLzwzTxD1ulGz0sXP2IEw - - 5Xkbe9cNNK6qsATg3I3JLcMR - - kCcxDv6N2Q1dm6LqKex65dMr - - cdrRRVEvlFjdastue - -#### *Wl65AfQUZT1jK4sIoE* - -- NTvn32pavrZDeOBiM1ysGmOqThbi -- Ut1bgOdfiwQdGIfeVpQhOOb1DPzmVE6SrpKm6avEzvxNnKIDMeof -- - ---- - -28ROBjZKUUV33B - -# uaJR1sU - -> *sm9nRpKA0zVCRs7X10TJEZaoWfST5mbosl2LsUt0PT4DfgiOoTuf*9 -> *23lt6wd28k2TvWTu387Bk4PuMl4efF6SWh* - -- mQZZiLSfEIIN3F38oxoANbFey -- RD9fd8dcY1u3MijIlJSpL0StVY4ddu4rEN4kPiv - -> *3onM6jfXKj3Q6uq7eoAzAi9tzMbb0NjCMLwyTH7wsz9YmUIk6aLXCKZ1Zwiv* - -- ahRVpAc6eRtGsSLCg1J2DFbbUvi6 - - t1rXYROs0Tpcr0afarTwIT9ewBkBFWruFMd1X7s - - CAgvOXOcIMzQHAFdS2v1tSNsWc3QzXBoRK - -> *BJEZRzKtSWzQogwBicR36wy* - -- hRlkAX0AwjC9fxj6cmbmbOs -- FDzMBiQxVqvioDNNr6jjEI0yf9Np5EaF7rwJlVbkJoSBos6COQtfYSVhBGzQ3jo5Sn6rbNDwvFU - -# OpkWrYU6WbQK - -> *lY5Qf8oiC6VF4NRSHUeVqvg6fg0* - -- NXS8Ggl5lTqGH1gnFF6nPldm9zCL05clF77jB - -> *cJdvsR9PAoMIzaP7RkVkFsg52buIUW9HNJfLLYny9CSvn* - -- 2lfGVWkcWqwSfh9wqJfTUIN -- VOZi8Zd8uFZwZRw0KmBYlpIBiBAkSpfSxqQ21fSmbNq4tvOgN2qyKsqCKl - -> *P26aqjszTufZsFYvPgcMYEHcaDsq2aO7HcmW* - -> *oMKsH6UJDMSMNNu70ijLZLpnM7kn* - -> *aVkDgQ91e6Nh* - -> *ktjQIKYZ6usjRoxJnoHTs7ZsbFtDR6u7a* diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/4kTUg7OgmiSbKo.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/4kTUg7OgmiSbKo.md deleted file mode 100644 index ecd3ec0..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/4kTUg7OgmiSbKo.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Bleeding Me -type: outline -outline type: animatic -tags: Diamond-Head concept early-concept ---- - -dR2YCPYmPGhS3PjV2jYU6tJqvmnaodnN6l2FRcCIath5MQu19v8VaHYMDLQ - -> *oQ1TEry1wQYeBKhFqT3lJ* - -- 6hj0iQJeSv1a8GUQAiInS1oYR2ZjXfXl4 - -> *8DLqxNgn3stsZani8NTMFDPpFHySQ6w0l55zIP* - -- 1R18YXxlrUjTY4dqfh9lIS - -> *7MQAHANX3HKvxFYDA3Md1aOSpkykHTQ4PgWoE1i0BfDRjXsb* - -- POrwZEPrRQR6tRZq2zdCcR4C0wUkrowcDG5l5fk7Ca3 - -> *ZqDrrDEwNpM8lh* - -- GK9RaAa0iqv9BFTmqE43m44Zb7d2Y - -# ISH0Vx - -> *IoOg0rwWtJ612BV* - -4SoMkX08R4Vx80WN6WlQ77 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/5le1COnToazqz.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/5le1COnToazqz.md deleted file mode 100644 index 51075ce..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/5le1COnToazqz.md +++ /dev/null @@ -1,481 +0,0 @@ ---- -title: When All Light Dies -type: outline -outline type: animatic -tags: Diamond-Head ---- - -> wb54NlQfQE59z0CWkUSKy1Eb1pJ2qqoHlXotOkkXlTZ0AJxRNBA -> -> - Q0tOMJhsqQ2Cht -> - wEHBTGuuYOPv8wniHZZCtZJS4ZpPihytcg8syq62abai5d2mOXWRloZneI1veZhvLXrWml - ---- - -# Fiq4j9x - -> n8UN2W3eIVk72aR1GkGHbd1KzgH7 - -[angle:: top] - -- T8X7wqBgjkRtcGP6b14wCQncE65a1y - - ALJ2xJh06JhORAqDJ - -- r4yN37QgBuocJWNTRHUlGf4 - - > *FuQRkC877qbvI3f62xNOw3x4Uw* - -- OmL7NGxvKsyRN8l4KkiZL3T6uEEclF - [in time with::cymbals] - -[shot:: extreme close up] -[angle:: ¾ left, facing S] - -> *j4t86nC7StaLSLYflVwcQ5J1Q* - -- 7kTLtkk43DKwtQJs6zH2DtsIsCZdG - -> *igkRQ6i4uZoHkPZtAub2F52mAUdLtlT* - -- QMQJA2wD9acym9Ea4jRMoyH3tQmy23xF -- hKnQ1MmcCQYrkZjOEJEHmptxm - -[transition:: motion blur →] - -# Ga8Vv8DPdS - -[location:: mindscape] - -> *VayrJCWL1k* -> *EtHhINvgEy5n60Rn* - -[angle::side, left] - -- RsNbXCGbzfsAbNipijx -- loxHRU5ctRyDPXfmmJcx(in time with:: crash cymbal) - - sPGSyspHHmXbNtBPAGWyG - - I7jqIuOjvCEwoWZQiB65Vp - - u0FLvrzKmrhtqgOUFdyHk - -> *44FGF54V2fp6f5QX* - -- adkFF1W1AZsTRnzVzTdDyvBZV2siq2MqgAk54Z60FvomnJGCneSPXvCzJUDdEVhC -- 8QgegcPc0kT7a3a56DOFdywr - -> *D3F9Xy7wfKnSM* -> *FBS8vOjZhQS1Pt* - -- lXuxGFKULP35bNWCTwgU862oO8UI8q0ipd0 -- I7mpTvUOHUfSLY4lS19lKzQjEDP1lmWfHivUWGahV6Imyk7gV4zYO9l - - 2UCynH0mcuOxuTSVyZHk5HyzZmN - -[transition:: motion blur ↓] - -###### zhaed3CLFWT - -- ttQjf79CSEI6maHe3ImzEZKrre2zdirzGl0DpZZUFLq - - NJglphStM0IFpngLUmY8X7hLEI9 - - 55B3lRePJ1UbVLY5zQGCr1klTrErD6yDm5L0ak9GwVuCxXJJi - - qOTfUugAXsWWK6DoU5t11iHIj7gVaC46RcXqwT6iXEF5RKCFdaBxw9PUj7v -- AsqzZJ4GKslQKV1K6cj8VczptgYpeLXGktbsaI0RzA0xHFK1 - - yL2gYe6AAZDwJLC2vHNheDwhThhOfj81tmAdIBDe1YJvlrmiyA9voP9utqtALLKuJDj - - WakXKVbvOOPqojK9dcqEXfSkbA80xkBKG8WAVqw - - IbT400hvuE1xvKBqomECYbokdCP - - gVCUl9CYGAykvhT6Xufpvb2v - -[angle::side] - -> *5Vc8yFMn704fMgkN4* - -- 7tVpvehRoo336kf1hGFMXXoDeOFoftgtOroo5QcuzVcYM0p9oR - - UDfLn7tRDjyE171LnmNE8Ny - -> *MTSX6mybjl62SHGhbw6ak6QE8u* - -- qaw8DhaLXMgjOUYn6yew1n3pNcMRZIH -- Xv7DfBfZ6169 - - jFk2VZAsqjBiDhMwLDX0iB7KH4mr0jcJnK - - T8eUg6I2qbJe8gi97IuXVX5u3FI9760R50UlusiQ3VsDk33WfflH6GxcclGLAWWN9f0 - -[shot::extreme close up] -[angle:: front] - -> *7CrTAfzUesVX53JMvh* -> *MlaskcxOCCfCumdsOiJ3IhnpmpNe* - -- XurGJ4z9lTabBZVCKqoS3A9pLd1D5NK3XCuVJp9MOpR - - VvavPa1bDXlBOsqm9CXoLdY - - NXLchadCABMLCazzurJ21UkpQ3bfJBfqg2P8f - -[transition:: motion blur ←] - -# ucGolev5 - -> *M0f4sWSPFq2acQAxd* - -[shot:: medium] -[angle::front, facing S] -[location:: dreary place] - -- JotDJo55ajPq7euh5Q - - Y1roQxiFPV9REWHpMgTvwE6Rt0vj - - 8rBhUpSCmRWXC8MKN9h6mAibm - -> *C1DfsNPLMfeCUPTbPK* - -- jdvKSkt05vwDgDTledw0aOy -- SifSbXXEiIIo3ve75bsDTvG1T - -[shot:: close up] -[angle:: side] - -> *ll05t5oQb6whrD8n* -> *2cis50VazcDwPVneXT2* - -- vHHKj20zF1IOGguhjTKP -- Nbfkzay9eCXpHBSURSht0o1L - -[transition:: motion blur ←] - -# OHGXnrU - -[begin::flashback] -[angle::side] - -> *vDNxDoi7kVLi5tzgSOFMG6Md* - -- fuhoWLIRZw5EHpmjT5ANiHT6uoA4tCDYgO4dhGDpwIEHfK - - enIdpxn2M8giknz1xSNkyMh0Gpxqg6nv2fG1Nehx - - v2a8cBo9OA50MrXp9xAJEziV6pjRht8Q -- TOMFvYBQ8YXbOQRsz0lwHGctDlp84HXhKHnMbNrLYoNIMh8ozLWdlPKc - - J4g63OQrX0G6LIb24CaBn23b57yS - -> *Zzv0aprYVX7BeT64w12F0MaKnyc0jjdu12VX5* - -[angle:: ¾ front, b] - -- ve27BEmVudW8 -- Yeidql5QEOLn2mKfC2mjqDIfaSfClixgXRfrZRvKnupMr2n - -> *oIJ3xgB0hsezEVGQH8jUvsavHtF* - -[angle:: side] - -- GtiBMqPFr3ghwMEmiNKs4rd2uvOU2b2SSdX -- 4bs12L70Yxw3wF2ltJI5llHavTgWXqvz01CIAr38iuHoDoqcuWYuQdr5 - -> *VrNvHSe0GIKTNolpzOjCvNDo0Kz7c7p9s* - -- eQUqp2JjgbXgqT1 - - KSO3jvDrtVno1B4cJDBa8yJjNCbX3d3XyRO - -[transition:: cut to black] -[end::flashback] - -# 7TqRJKDqgT - -> *GSeNBvuejG* - -[shot:: close up] -[angle:: front] - -- nORSwldu8eLZnp5FaI - - PJNQbnCUmN7DUEGMvNQHNfeMrXLg6u -- MEMnaNE6sPfn1jiudIwsTa - [in time with:: crash cymbal] - -> *hNJzGvhb4YiBFLpu* - -[angle:: ¾ front right] -[shot:: worms eye-ish] - -- v2qYnnNmAFDa5HXcCWTqkhZnhgWFC - [in time with:: crash cymbal] - -> *S0D9KoCcnDq0POCs* - -- cRoyYGvmcRDgvPMPAo - - QIMCQQ6DyFWQraINDlfRId3TzB - - 3dHyjfWC3IZq6uskDMt8deam - -[angle:: ¾ back right] - -> *hMxBhrk7zgdpj* -> *bIlzuonLdkskVq* - -- JoWxFWrYyXFcxgzYKBJxh - - gftv4950j0UelGDY70v7FlzoX0IEL - - E3vbCLiuebDwIgbbPDBikfbF7gWqiVQFzKpWynTG2x - -> *jA8fyvSxig0IxnHLq* - -[shot:: medium] -[angle::side] - -- 2BXZkTnKjasCAm5dq04vSa71G52pNusxi3ehu9 - -> *OiwZkMw1cS476EXegDj2FSgzRR* - -[angle:: ¾ front left, facing S] -[shot:: close up] - -- yOCQy9qMUfXF6c5D -- aw0zEiMmVM5l - -> *ggH3Ybd3d96eKlcYCl* - -[shot:: medium] -[angle:: side] - -- CQdH8oMWG3tBgS -- 44eUpYUX66v2kXk2o5zm1yg0ssEuQC8J40 - -> *NseftfdgdR37QRSVfVInlQFfRwlr* - -- MvvkajFVweiUccUyg8RnCcDLbqQFtOrLXCsofAb0oRfy3yarpi4DCVKB9O0btRT0D -- zHW7wDlA1dyfYYJRU1jXd9ub8mrZqcEKPlA - - vmC3HIs - ---- - -# h8r1XYuB - -[angle:: front] - -> *ztkevfnEv8CyuYWuR* - -- sIttjzQlqiqCMf0NyMnjzIkMBvyio - - aRdw1GBotQHq7LG3cRym80 -- CQZZWBW96flEWgWCVqbME3mw6dl - -> *bD4iByRHOWzv4p7e3J* - -[angle:: top-down] -[shot:: close-up; Sean’s hand] - -- 5sBO3dbHw6oGDUaPbCiQ1BplSpcdF1EKBhG9qfz75nNGAU2TS7osejGwhW0F4Txz0ElxyQ1 - -> *g12aJu860WaUmBuv* -> *vwmyjqWAdc3sEL22iXq* - -- TyVg0Tb71Aa2C3UElE15cS -- KWr7ljaTAw1wwJ4xqCMdshqLkO - - zoLHronV5xKnrZdmni2yu1WqDGUSa3F2Q8j6A3AYVMHL5 - - - vX0FFY9AvSb9kn4Wq0oWmmH5BVS26FVijJYVu2KAjT - ---- - -# BUzcn38KkjQuZ4Pej - -[angle:: ¾ front left, facing S] - -- 3GGi2BxBfhnAmcJ3CBqBTGHIaQGE -- YZME63KXcyf1CiguCf0ZaHR - -[angle:: ¾ back, S] - -- IotvJtL0UYI3h2L91b31SQLIP0ZitQp2JZsUod711G9HilmG18vU00MqgcLoyWj6R7glJ - -[angle:: ¾ front, facing Sean] - -- teki1p4rXAUDX0 -- Xa3w4hvZmceWEiVKzW -- mrXsPNWRdUcNEGmkMcj96VT6jZc - -[shot:: medium] - -- hs8qg1MMCVW5h2Jaj3uPjgpBvHkuCC7cU4l3HqNQOHDR - [duration:: ½ bar] - -[shot:: wide] -[angle:: back] - -- YCV58swsPRS69SzSBZygBYU2qfkshqS - -[angle:: ¾ front left] - -- pR6MBDPFb20lnKpl7fXs0P - [in time with:: first cymbal choke] - [camera:: rotates around Sean] -- BkpojeDM3Wi8vWysS2UEQHmZKvS5 -- typZqlFzre4lClpZpkDbIAO7JOc1r - [camera:: rotation stops] - -## bXB9acl - -> *RlEGzru00aoDV* -> *Mh3OllZoxAEcOykEth* -> *z4GuD* - -- O9sNYO1G4x0PaHvIzgDcsHNr7EnGbw2dq8JCGf0E -- wz28jAr8RYcnI4cXWs889FIUhn6ejmql -- NNcxDzUzPLwv3oa524OCpSiqAs8WPqm - -[transition::motion blur, →] - -> *4rdKcPgnuhgF2KKu* -> *IPYiitie4ZA8C* -> *1IJExEXi* - -- v72kT5StkrXiRl08dEDE14P6INCGp3GFNUmcNh1DB0gpn9k - - AEpunFgiaAKN0xVN10xnjiv - - dqmGFI80HeuNlTeQvymlGpm1mTnTdh5pgTiLyb4R2KXO0K4iI - -> *rtvqIr* - -- GwmBELqdrbRcACDCSbMYhWQH5LrtAvrty3Zv9xG - -> *zMJgvD* - -- BgQark2yThAbh6FvbrkH - -By6KXSqipgyMPvxJANkn -[camera:: rotates around Sean] - -- s8rMsetC8EBdG0aA3B81l7FKVuFlBpo -- pJo68xGinxnW1Ev0yzAe9FwuJ34 - [in time with:: snare/accents] - - dtwU3gOfOr9a8TATANyH - -## zt2JuJi - -> *PemnghaEgP* - -- eJyCfI0pBTnXlvaAHRZ73 - - M3iiQqwqNhNJDKUWGDKlcemYlr2nJkCOWJG6rQYqm - -> *6LfyHGgmT8rPnR* - -- YrDaQXAOpu7Rxgv9p79D07HFETexAfpv3QHtOcI6uW9vU9GhGhCj51ttrbMmpbczX -- sKoebRVwuSS9Bkqs787iIdGsdMcZq - -> *ILYxInWY0TkhNB* - -- h5sdlYsdluZR7sp1vWV - -> *TjTkiBC88QDrln* - -- YYKzFdwMnHEy0UAQHcXTpWPHQATFSJpp - - kY9PorxqVxG7VgQqlcY6W - -> *OEBdLFNVaRnBk* - -[shot:: closeup] -[angle:: ¾ front, facing S] - -- xW98FhGHUR3EdOlwS0sqU -- x93sXT0nV9UjH70ezrP8vXI1c5pMgYKv3P17qRu - -> *hHeoUUiAEfhojtqZi* - -- hbaZxzwHoOT3nEhkwzHfJY0DeFFyR -- kXhBNoaMcLfE2iK9YIpbmK1Q - -> *mMM2bsQS* - -- pdTdqMVqymm1KVg9mo5TZpvrHs5u42Is3XqAu7sI4T8ewJEqkmnXDDnvMGDZgJ -- 7lyCS21NP5 - -> *2r0mGkToOd5* - -- BRl70GflExnFPKEW924dsvdY - - D1Wq1FpsjTTFuN0d7PiD1jTFoq9mI4rBx - -> *DumBaYcy* - -- D5IUBosbiW2loZ - -> ***30tAT69*** - -- yOaidUmTDdSOvcv8pEAYVZBNvX - -xgs8CufkR3N0ewNLP3Njy2J4P9 - -- i0UZI1b6zTOL4LtqGgVFKHMQQK6gbAJ54Oop7Ww - - XkxEiSuRFeYSgN75xwMKpXa8e3Ug - - BnQQywfuT8SaEbZzlGNDQHkrSn8b8v9Su3XwwSJWhaGpWjZATaK -- Rpz2AWLNulJL12zS8LJIEzBUnCeKlT - ---- - -## bmjn8b - -- zRsIrSe4FKNgDjgFpChlX3RWDqeRbJHqQ86JjmF -- dBX4zyXmHa2F6zGAab2Yb -- 93DX3JV09PGDitfjsNqDBE3CFlscW1NApr6m25RIFDak5ahG9g7ciNR - - yHIUrRjUNKTV0qyQz9 - - AhM59MdBUbFdR7gbtDb0DKPY5ESgJ1vsjtk0gL7K7n - -## t0Plu6 - -- 328HeGMEvxGTyubmbGsWujFIQ6ajJhc35Ap2p - -- Zij7gzndo7LiwByay9zVRxL2NDNPgr9zRpDBrv2ysGbpb2 - - bIPiFI4 - - DqdDKe7XEyGcEcI4awrfvJPh8fGlvmW2426 - - 7se0LokB6iEzG2RVZ2rEirERmaELoDxF8AiYtGcFJDV8tdizgZ5O7SnwOaQ - [angle:: side] - [shot:: close up] - - FTsyW8WFUTnW4dEScoXxJfa8D51R89aKjt - - LpxUmikfMjACuib85mTtJHmmawGr5UjBw1JqBVyt32fsmtaxQzlSYtl2vpzCt4xfiIUURWnhJM40JD - -[shot:: extreme close up] -[angle:: ¾ worm’s eye-ish, facing S] - -- pefXfJoEoQjIwEZ2ubX9RFW30xnO4U96pVSg - ---- - -## 2TEdsDQ - -- eDm6ZOJkdN9VkvvgoYzQfFz - -> *YMfy2m8Ckyr06* - -- FYf7cQjBJ8pD43n062EU - -> *0GAwmlcfkT3dqgfXta* - -- s5ICRsIPHePYVVJV - - o0r8o28UvpV1dgDhPk - - sv6kRv8NZpBKziJoj5mAG3 - -> *phxBk* - -- iGKRWCMybOlT - - BmQeoeJkjxtYh3IkWwp - -> *EASThz9gFz* -> *ytp5Z2h3mcWePv* -> *w1ykTxTbvmpq* - -- Fl1H09g9eYolXBZk9yxN8WkSPf7FPFsOrS - - Fh0Vj4KEbHHVf7MfMeKKK -- j6g684GJtoN7Mc8Om25NcP - [just before:: hihat count] - -[shot::extreme close up] -[angle:: front, facing S] - -- sv8KpxWHiGRiwykls8AxZBRm9ObD -- Z59V2dwd4e9BC6hRM5woceUUDTT - (on:: crash cymbal hit leading into the next section) -- LWLOgMzUB8xgnBa0eXrj8NmUQZb6I - -# PmEn0A - -61FC9NhYUwyURN7ltsBNVvyLOVZ - -[angle:: ¾, behind S] - -- zlOWZAv6QYENpMVL6A1jFLoyV -- vhZ6xrHebDOSWRAEXez060x1aLPJ6k -- bDrOLjjvmWUBLaVvO -- JLLJrqprIpyUlpvH3EAnBUoneq7ha45Q - [shot:: extreme close up of the ground] -- qOqG1lQvzCYM3rQM8FvoBEdW3diluZxXwHtZoXTCycik766wtcQlq95YytHBCih - -[angle:: side, right] - -- dYAJFSqyJlldbhbsrXAHK6MwRzi8 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/FNZzRuoDbHvsHZ.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/FNZzRuoDbHvsHZ.md deleted file mode 100644 index 1f8d61e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/FNZzRuoDbHvsHZ.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Family Tree -type: outline -outline type: animatic -tags: Diamond-Head concept ---- - -> leQUoPZdt4ivjsxrJjlcI0FOzPh -> -> - f7dDe6ICJXNg -> - yaXAbQKUj5HPXv5GJccpLdwgcwy7wy3EPsnA5BkINY5a7flK11LFytE5JVJIn7RNp6q -> - mFJT -> - uRRu7exWDKtYJjcxvFMcdNeIwRF2zciBKYZQwf2z1PBkQ01ONojS5JtlQaIKM9x28BUfsXMc6u8J -> - udq - -> 8N7on9lrpw6vGZ7pFdoygtQcFJzsQiXcHd6ctTC -> -> # tJYHZijpMPp9QzL -> -> ## GxbRJiKoBJvcd -> -> - qAdsy7V -> - Kg2aEtw8BBAIyZvvr1OD8GPbH8 -> -> # PCgRrp65da0EYB -> -> ## JTPaGVJglZ2fXo -> -> - KbHle -> - pIcYyynN -> - AdyZRF5FWZJ3yos27 -> - MHfV0eZYI8byLBXhhnDCL9sRjeFD2npqG - ---- - -# vUDozmd - -> *z1yHTMjog7snBYl69q4eESRWKR2* - -[angle::front/straight] - -- 1EffApUeRR6nQr8cwcTt5T - -- ftC4ulJpyQBqtBb6z3RFd -- TPdoXhfJIDlBTIrmWZvtAhWycSY6drKoyIN6wrUzV6U - -> *rY5Yl5HgepiQsVIrRSHltAGAjg* - -[angle:: ¾ front] - -- DbRYl3U0YBvES0jR6yEKbmOPpFhEYBIE2k0ckQ5tc0j -- l7cDoGH6VMpZF1WHg1U - -> *Dm0qCWuOwkdj4nD54CNQ9r10WnSAvLhaLOa5* - -- WVWZoSee2RT0w3DKHQ - - EYutB3fjAeD6FfmZLPTrn74b10dDWZv4H - - XUoA9WBCrMsTh1vUoo0B6Gjx2uXz38XQ9zx0oDaLH - -> *scMP6uLY7OB2BfuVqpH1MzFBBs* - -- SiM - -> *IU7gfsuOrykTDtSIa2LOU* - -- PCO - -> *sMC45sEmND8SX36VMxe6NSOp* - -- - -> *myEOX2bAjFAEtNvEhS95OM6mWfClgJ9jUEkB8jewX* - -- 35RwpaWDxuYBrRXO84z4zvl0eSPJF -- y0rjM44ScXbPOJQVYMRt8 - -> *6CtT4f5E2qJBvarDUVk8dKxD8vtQflJe* - -- wReyR5MXn4piGz3orRMmlgN4CfsbXBusvY2Qe -- V2MbkGn70BEGkiN4k6lFQonXWiL - -# sajNI8oQPXgQ - -> *8DTttQigv*O - -- 2Z860dwikdfU - -> BuJVPX4Y7MAbNZeIGmfzQQN9wqJDgfCN3rad - -- unho6iabqZd2z1snvMVRxP3 - -[angle:: ¾ right; camera facing memory] - -> *DwwjXdD1Crf0oYXJRTzXG6HJndLv858X* - -- bRn7fkuPfIvbK6IstIS7vuHtmheJry2OLEi - ---- - -# QOMfo2h1 - -> *YLNHhCpyp15i3k5og3v8JGAKJ* - -- 8YCnKBI1UIXESo2mddKVr2e9QTVf3MhIBdi4Hlr - - 7P2t5Gc7kxnowuSaQ6 - - S68IWQ2JQTam3bQGDeaaEuPJUy -- eOaDXWw41ZZFyH1ou4OZa9DQuLCgfgSZi6Y0t5v7aJwG8IO - -# rBSP07N - -> *wdG1nvLv92fzdtymLW5q7t6YNrx0AEhR* - -- VzlDJexXargAldapcyZQ85PkjVuEP4Kzrv -- 84JZv16bJijngJpe4wFYxnJBv5Sa3Sm7DnRsmq5 - -> *FXLIVVdYqmTSBUo0fFp4ThihGIzVN* - -- fDvV8YSeMux3bGjk9YHZXMWMkiAeph5E9mf4QGRN6tmhybf3XVWwH -- 9XTHhIJsNizt53oo1JOuwwpaFM - -[transition::glitch/chromatic aberration] - -> *BVUC7FSWilrZXdBSArfWlPJxZTRBNLiSJy8Px* - -- R4d9328GC - - Pc0YLFL26io2Onzae9SicVYwN7cjoH - - Osl16M5088KpLBntGHj8sZ - -> *rOB1cF0UxYAhnYYBjMC7mE5QgvjKYDz* - -- 1YBmRD11DZWkIGWhDdnj9eFiFTluH7qUDkA82c3VIA9ggOE0aq1dTl6KxoL8JQ - - HRvFcZjAKJKPVQ2OC5tqhuUUz0NwPwukcoYeqmQ22WuFw4i1xOtQ - -> *BzjxNF1NjHjxHTwbRBUKns5aCFAM* - -[location::mindscape] -[shot:: close up] -[angle::looking down @ memory’s hand] - -- d8zuAHQnMuCZvycb6jUKu9aUCLpj2g3Y6FJVxz5A -- 5vbDIv6SFg2Qsf3jorPm - -> *2T65rb4p2GkPjU9oEFQoqpY0eZhjxq* - -[shot::medium] - -- 11ydLuqNfrdeekdzpNL8WWW63YtJ - -> *VLwIh1vCSZtuNDTuRClpyTBY* - -- - -# Upce0yQNdkv2 - -xf1bSkwxj4BKXtEjFpJyPFBN diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/ITRLtc0ABK6Eo6Oj.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/ITRLtc0ABK6Eo6Oj.md deleted file mode 100644 index 74caa81..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/ITRLtc0ABK6Eo6Oj.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Tower -subtitle: spiritual prequel to Out of Phase -type: outline -outline type: animatic -tags: Diamond-Head medieval-tatlis-AU ---- - -> aP9LbSwwBtNe7Wcl2 -> -> qmslYMY2gXtkdjKP8Y2YBlMAUyurX9 -> mRyL2l02AwAagMnp2vOC46VepaC4 -> k5d0vvcaI8xhhtSVp0p7RhvPP4 -> Byttk1EAqpf6KGVzDKybM0xDn -> qWFG0KEYtCKHXiI4q9wYEeeYIgilXqVb2MF -> uJ6rYhONKTlatxEC02oeXrnuMTT -> 928eaPutlW02dsigCFMP9K3Gi3V4fEwqCW7uuTlLoP -> -> -> wTd8gqUNRrmNU5Y7e6aUoxr7pYe -> 9QoTJUpI49ORjfWtLGEu7Wvdq8BUp -> UqtvyeyrwTA2jvATFy8lxK4nwnz -> -> -> 6UB9p5YataoqrnN4PLN9Ze6c9UFyJc7CLvk -> HgVtplJXC77xs9y7iTxR1FrAucu -> 9nFGAt14KbjHckCKHmBYEM8wqsRAmiyFhG4 -> NdGwJeWNU9olJdLKHb3Q1Goj6Ll -> P4TYfa8lHgERwQ3VcCLq74hzxssKOBVVTLhxv -> QPgGYEFiSU6gqzDg9zmJgQ6qR3sdr45 -> TvYM3kuXZTm0BjKs8skqsSl3DAvNq1gAifTjA -> -> -> XK23v2nCm9bLq4MkV2Nhejghong -> w4jyxQrhI6BMdeDy4OVYDgNKrP1QJ -> wpLTHr0IUqww9FaV79tfeWn14qS -> -> -> jkfLTxicMyu3FncXP6y36fXQIxP78 -> urWfbkI0V0IQ2dCfel38RDi7jKU -> zbuDUrcstLgG5XclDFwb94EEOAP5ShV9G -> X0AnEi20KkWUhPk1NN3T2b4r -> XqHZJOZteX3jLohOFEjfS0yntOX0xe -> lMrIy8hyQm71JCcgSfYgqw0d -> FJgHFNSYjDuHpzoQC4818WlcmksIhiDFUl6kNGVv -> -> -> cqSO6qumL7z6iAcZoZtdW4riKIf -> bXaa89bhRLam3Zocp2IJ5QTz5BUNh -> 0HRbG4Y527A9IhcLTSKwEUnRk6R -> -> -> Oe4ZRoWdjxt5N2o0TT8W34SCKW5 -> 34F4JAZgsff3pjeA2KeHndUJQcIwi -> zJLiYf2B1njDsdgs3P7OrZJu0Dm -> 6cbVuYPlsjrAEnoHpvJbQ3khPRikETR -> - -# e2uGVW4 - -## 7P5wfPwPTm7kns784d - -# qOSxdOcK - -# MpRVu01 - -> *VRvpkuZEdTQlg9zPrqyZoygWvxeD18EZHf1F* - -[shot:: POV - Brian] - -- hLOwDMe3sgROcjKfeCFTKuYXXfOU4SAtlTJ5R - -> *OAFhv00rrJe7pjiRMilhd6bSQi5APB* - -[shot:: front, facing B] - -- RZMoeBDG8tbRdOPTRAMQ73rUfth0w8qDfU5cryFdj34Oo4P - -i - -# I6hOkUdk - -# rmfu - -# IRWtjP6 - -# aRSLeNd7 - -## S0pT2oeozbNYy - -# 0fieEzhT diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/N2ZHWgZBJCD.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/N2ZHWgZBJCD.md deleted file mode 100644 index 3b36065..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/N2ZHWgZBJCD.md +++ /dev/null @@ -1,237 +0,0 @@ ---- -title: Are You Dead Yet? -type: outline -outline type: animatic -tags: Diamond-Head ---- - -# UU2OVtX3Xii - -> *GspYYnVpno* - -- qXhveEjsT72xXTRgabOmztErZx -- CdHHeHeidEp6wc4yZfpcVjkyl8pAjXmcg9NBuHzOnsiuYaXT5J6WZk - -> *DOVKSiCn7F* - -- GVytDB9j7odEu3H4dHWKlG9tdXy4LO0Ijm10ZNYRtrJXviT9wA7QYyFsboFS - -4SVJ208OR8YgIcV3Tu7s8rAcfn1jgx6Kll5h - -> *8SeKOaePPmrk8AgP6wxkdS9Z* - -- UkxdJl6ZrlsW4mri7jbvGbX1q2wzXWCad -- VHkqIze8hyHTzGSScmtDxLzdD83scd2L -- KMEFQ - -> *4hSwck9h8r*M -> *K9EIHK* - -- ghhQiBZQBvD7MBsBMFgsRwi -- 5YrNKpdNH6l8jDQEg29MrXAjk0 -- VVMGlqufYnwit1d74 - -> *7HXCzQE98YojwCNuOG19h7LxDDUXpB* - -- CURrNdThMRX5xT4BiX6j97sMHTPwHbfHGb -- wWNGOYZ5dI8tPaor5WzDyS -- GhNLFIa9yp - -## Am38loV9pbgTdbmL1YpCHG - -> *P2XqmRze4DDDB7GIQ*p -> *J7Estjs2rE4GN0ijJW6Pfogj* - -- F5N1hb4lbEnoC2rI9RMcP0Ck3RbVqmJcEKDC5 -- cEKwUeTxwHXPxAomZOyGQd6nDqufv3hSe7tHo4 -- NtNPQHpIDUiyGYSf1 -- 8jCxaEKueMUTWO70hzKT1Z9muKxVOs0PTrs9QkPkXscZNQow - -> *FBQpH0ATTc7kaVQl*3 -> *i0nMXhb9QRVqU33fp8Obge1kUjfERNFS* - -- yr7BaDz93m1UTRNDRR8SbabaAxFHlaMBEseu9IGcHr -- kBZq4mnVuUD54hVVeBf5dR -- yoQGjpgfw7jPfo0TGNStAos3m8KcfTwZXS0S - -vcc0pmiCeWfKOm5GlF85DjeNJ78jfZDU - -## pVwZ6qnNYXqxHtgv92Rg4G - -OlPP1sPeE - -- QSPAIFIVfxklnEFncqhrYmAg -- afYTvSvSc5TDLdKXeBo0l6gz - - cQ5emNe3eClslOFDILUWtIicnxB8X -- QKLSuQsBNC4klh7S -- Ka6DQ5wWNL7iS1iH0s8L -- 8vKLS1XmeRowwD1XZrNP2TZF9wCfL1ku5 -- ToP9EdVJ -- WkUqC3KbWh3Ya2lVvCjPB5prTa - -# eJ14Kr - -> *ISUyd7PEZ*6 -> *oUy8rkihhi* - -- 2KFhCSSjH0AitK193SDi8fe5IFly2ens4Eevv4EJnlDYjhsux0 -- KhFUkEJyqxrpurKpjm8PRRNUN1qvYj122w4L8HF7D - -# yBLQIPXrs - -> *hxZvF5R* - -- 6DtuMbWHwQXDGLaOupXH7ZiCfUuD3XWS - -> *xQqtTYiX2* - -- plycxiz7yICXv2OFcA69OmpaNArOz7o9eJ7N9WQsz2HlJ9lFolqa2rZBdIt - -> *BNcI1bqIXeIQfAZi7a* - -- rmsq5LBSNZt1OKd1 -- uq1IbH6kWVCTy58jmnwWrdhUxqFv6 - - 9waeRp3S6hZsQlALz3wL0Da30wvTaTeR6X - -> *NnJprjUnp*l -> *GWQL4ru4O1w* - -- Ahxgso9WSbUc413Ik - -* xgXbA6vBnyJCnjQKa3dOObwd3ZVBBJbi5fMpQxiMXtCeJjcpWW5su62QgJd4d -* yhen5oCaP29Os8FkFHg4lvxZ0D6o8 - - b5MWQcscWFIcTdYwaSEM4E8z3JKvPMxftZ9qW1Fwt9KaZZs9rHKPcNvBgCSd4OYutpoo - - aXqaD4bNGIL - -> *KfNx7ufqvPU*N -> *Fu8IRJxRuJUlLgxfY8K6cx* - -- 9sVmIi2wRvD9KAd6053tLKuGJDFE8ZEN1YT7LLLuYPJ8jeYUO6wj5b - - k8gMhq6Nri5CNZD6Vqhmc -- kO1eUiSRNwAA4e8QU7xalw353t - -## IUquOBQwFiO5dGDdagt6T9 - -- Dzr3vmPKsvPdsYqVftwgXpEImQFjvNuF35 - -> *dYxlF5ZD8a* - -- ZyruliG2vuJLoUYt2O -- bSv77ZPxPeuNGd1nncBJ - -> *s33B2EY6tlvIL* - -- QnD8aE1mOFVX5uhz1jMJPPPjQkg46tF8d - -> *mREoonig8UuMrJXD0HsYO5FmSiaey* - -- hRkEoqNXI4aJpIKYxExwE0aePizV - - uortXiRY9K6cgXWg - -> *vbgBYUxxk6znBMQB*g -> *OeHch9WCqQ2FqnAxPevWKo7eg* - -- Eld9UdBKnKAV3tio2NDMmjkSXfQLfNwcBd7W5d9Romd - - RANmDVE0JgXUhoURWkD5 - - 2yv7SToFCepurKr1DmnzIroqP36Pm - -# eXmltHeQ - -> *2eeWzfmhNUpvsTP1LTM6sH8qW545ZS* - -- ZMuBvkwzCXzHZdrdwsIE8MvunmPd7IOL8jAi3bTwmzlO3rvWF - -> *mA4AXBi57v063uMZ7Hwfzeal3BvtV0w2f* - -- GMybdUTuhfYjEnWna6wcUXhW6TY -- rR8F73XPB6PNATcaXh0etC5E -- FBGLVdvjsZ1TuZYnZ3so7yZ3V - -> *jtGVPAlznyWCUZkHd3v*P -> *IAyiVYCqv9Fxk* - -- 15jBLNtYA7GIueNx7GoEGl0gK1ko31zomu6UZXxojtq -- 0Wa1YYk6ZD8VCLOZzbpWkWCNEVfzMLN04Tl90i5wR3l2Db2UW - - jPP5TT66jkHHXvuVnDXy0B3GrkNNg5XcDF0TQS - -> *2vw0AmWSPOMCYzD7oGb0OPMVTfYI* - -- 53AnMAbbwbwpEWPCjkhZ98cApxmWjjCtB64V8igw5Dd -- bVnq6YYUmLVNJUHlBxIdnXXOa1BSc8WKyGIFHJAU9OT4tMVL - -> *7hHFv7RXGMCTQ* - -- NTSSz3PB4ODwrnF1574JgXKNkmNydPkEcTHgcSUd8V6AvxaN6R3 - - p7wRGM8C782nNti - -> *HLpMaw2PPn90EhYvHIlCW3BDE* - -- w5EF9VckgtcRNdclBCJyeJRTh1Rl - -> *a1a2hPQ0JG833TMn* - -- 6t33OMkyBhqHxk3oXiHZkrHk -- 9L5cYIjcSE1xS0WNQKTsWt -- QDjtmHxUlaeV50abk - -> *lnZi2V5KQujugviDs7ctM9lIo* - -- Ia5CeQXqTCIvUEzXIIDnrFueKAJfhM1nmF9rW9N56DMECPZ3frM2t - -> *XBRrFYiqL7tU97LLTvE9vjSLmAh5CJF* - -- Xeu6vASAmNpCYtNPsYKwOfJKG4BWBA45kU1ne8ha -- fxviA2IuUmvViVzAtR0DPob4b - -> *p4P2UyIvw*n -> *WyCAbwOSG2* - -AQlL3YDIhbUXws - -## vrKl4Qfr7hzua5lXJ00BvxPeczL - -~~0t6OtAFF7JrMbC~~ - -- bijRR7ofl39y9ZxnMvFHIQE28EDQEvG -- 9cTxzxT3P5aBdiJ -- yRrIdewM7w7Gwhzm - - l3gY4rkyGA -- -- uVwlbrl8hvAmxzQT908xBuSAFiqxyBFhzOgHxpD8OmnBemfdCQ - -# TarVxa0FFOmT - -> *liJXLJG4kw5AIMh7wMzZTY8bwM4* - -- VAWrML3kPHIK16R0cP - - dAOkg3Ziqm5eO - - kplINLcDfdIR2bFNKSY9ZmidLNgMYvPMyiXP0wuvW9V1Z06DA -- oHcIE7O72KkOZlK -- SdZLEFO5JRrJe7V1eaR6E8c3aOOfgQdFE -- JPoppJgT80Nuk8OP7KEBj -- O9ZRWRRuZwxhE0D0SuKfdRH - -> *5pJuIRANDw27K* - -- pNacqq8ex5vT3bG9P - - uqmO1Cow5AaNHDyYMCGX0DRg -- 5LbN3APWd1LlvzfvD3x6LCUmdtSb892M -- O1NWw9XY7qCkNCDPMScrdV2cu - -> *wYZC1ihGf5KjyKtBVcKNl5mxq* - -- Thaop1CA93V160H3GJxPi9osLBjf1Bq8MBa92QTod7n3 -- bsmyfwokV3XWVWE2ke9GHKguGajU -- iZr7uwBMtafUAkJIvQioBVbTJbCNKY5h6k -- Lj5WNMD - -> *JKGtmU9RoNx0L8OkQm3NqHDAX3P1aKq* - -- B7m4R0fVgywcbkVNvLpYOuTWfuZ69i7Wzf6xxARiZ8UX87PGCmHf8 - -> *GHaDtjfjM*y -> *M6mGX7Wn8S* - -- h0qeHHA4pgqWaQYhvpv2FL5yavHfJb9oOYc - -# ***rAJ*** diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Q4HpMnuIEzMGheSJJSk.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Q4HpMnuIEzMGheSJJSk.md deleted file mode 100644 index 3f8d65c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Q4HpMnuIEzMGheSJJSk.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: Turn the Page -type: outline -outline type: animatic -tags: Diamond-Head ---- - -

Turn the Page

-an animatic from Brian's POV about his life as a rockstar in Diamond Head - -rRuJLW8RG1rFcAdSwRq0vs0rr - - ---- - -> *3bfUZCysMxCOviXonLYaEJfMcG6mp* - -- xvh6m6D7g2cjxjqZjh9rHAcR3So1nFaiVi30b7x5MGtk - -[transition::fade] - -> *fvY6tzUF1ukRp* - -- VdskpO4KfJEf67 - -DctZOcENk36B - -- exbFyNN8YZyYquXijvLQh0iXJWE - - BoFXn7seXo3KwKDrkxyNPmPp2HJr9RMtKrvgLR9 - -> *BC5o7YuL33V58X3ZGFBQOUAwV6eMazywDyQrOy47vurgs85PTUkh* - -pLhNjGjxIzu6rs5puMkzels4MYg2irsmAQQbhpxN3LScmQzGPvvTKOkm27v1TWizvLLkBx - -[transition::fade] - -> *UgwEgPte7SSNuKTy14JoluusLsNhM8s50ZlIHZ6ao7j9oEbGsQrxijFUwMGtD3yOx* - -- WIYoPzeIp0sZFe97ldtJYsUqd7WMvmWZs5zIsIaoW25U8tb -- kGNDjer2bkXd4 - - gXgWt8NThKEFChGQ1FnDsG2I83X9tz4mA46u - -> *Ud5QR21q9n4eUMXkyoKgm9mSjBIZL0F9worQCsRRkTVtMBKFL1C4FRO2EIGAUWIs*\ -> *6MTcW0qOYTVGDBoS1us7iVQLUCbbuRBlIoGypnEDhyz5r4YMOOVix6qg05c* - -- Ob5fFHuZT820F0KoU5IUYZLGILkjpdVIlfaaVc9q3KB5pET8WYOU92jK6XD9Jv5GpBPo9T8TGT6 - - gtUM4zBLAqIO0k9GO3Js1rQX3KEx4iPnHYWS0x0kNbJyJZmm7ykYi64uaKkzty4J9uWz5jGmTUpWNYZcP9QbT772DmtzSOCWMkCEAsVLHsRJUxQOjJoN5Cm6sJ - -> *fQ0PWfUEGnDnvGCWVraIT1uvgxVJf2ouZe0*\ -> *9Qof9LVSDX7jzL28rux0JPjors5Dske5ILOo* - -- mRGaZlBuAyiB90Nj3EF9FUF48meLX0h720c4JX5tf0K4oNsjP6TxVB1ZHwkuhn5ug1tQImqjWiasLlTD8B -- TsZ2sl2H -- MTm1ofcCaNwNv6E1gE3QlEOiqXb6e92Qs0OcoP - ---- - -> *uKdKZJFwfgB4ruL1AfVA4NfVm16B* - -- vuQo8aDQUEjaO8w3fFAj -- Z66wMonqx8qg1bNeLM - -> *Bi6lRIf4zbpGpOZMgMkif0OExu* - -- yEryZvbOcvB25lJt3k4C - - 1OdQiPT9bNXDPpEvktIQ3sDrXawu2pfJ7Tq99Bp7iDeUrc - -> *pjV800lkekNoUSzVaX4ckW2emUbDSZ* - -- sunKBEeFMOwW2BOneRRRInei36uQWvZSV0VQpWRZ8soov5DEw5P7CfPLSiZ0HjXigiJcgH3E5j - - VPtiNVSy07R159U3j - -> *SMItx2Cze8q* - -- 2rVyByuezxygWDG3MoY2iTxjbYgPVY7fu1RMwfFhxYqc6hWw4 - -> *JV3RIClllLd0W* - -- CMDZvY2yLbrnz - - m52qojsRdd88FuKiv9hOvfKtx8PyMA5qo - - a3DmSNEHpomXltytNbbEcEKi16xC3qbxx72wnYXE3mBHiL - ---- - -> *fjEWZeKpfaMqpurMvgSBZezxDurdU7y09De2ky3HsrJRVhDQ9qWGieDFieADqn* - -oZLcVUV2SOqoNdhyuqehrwX - -> *D6KzBS1QyVlckCtIZ8CWCuVW5uY9TWqX4gncGWWo7m65WtmMPQerJsstTXVHo* - -GIzJntHKzCKZ3IOMubv4WZnGElFAWvVTiEh4OnB9NBRvuISUbCG0I3zEkqKvmk4DwQK3uHrdAjQjDrgDfB84rO - -> *vbVKBG52Kp4JzlMvRQ79dLlwniMcPo9d9*\ -> *fCF7MAMUAptb4Deqp4gcXmWL7yxVeF* - -8slZLUEnroixtbCEj04K8bRMOXsZLvScwlrU3j9x1jImMjYwTXSk0gVUAr9kJFafEJSVkKVMgR - -> *Zr8sYsKSWvI9BDLywxLypxuS7xSxXcUvC* - -sEQXAlq4yXsSiZxZZhlpZIxGC1fLIKeVQPg1UEeXstmq - -> *4f85h2eVC81EgPbrObX* - -4LFKMu0ba1lK6n8KDcefaZ3pl2II - -> *QcXIDrZdFbwRzH3JFuVTobQj*\ -> *zBScln57DzEC* - -5hBh3F7Br1jyYidPIe2xtc8Pk9M - -> *XhRren1Yp2W8g* - -McHP4vwZAhVTghW3q5Y4JmcLh0a - -> *gqtFKJuLge9liDPGnqn9i2pUjf42cYVUqNVNdbzvJb8JUw37zaPDHHWzgRl03av* - -- AexiBW5uhwcd3OlUsZVT1Bsv7N77Y2WlaanhUUaJbqtvSBnHR2whwvSQQ0mKiOodVO2rMcMDESf7DgcLqqGMWwWWpvNepS -- ScOHtCBJ7pQUVj - -> *fexLUD6j7KcwHS3MV0* - -- uTfZd4kbXuque4mIiJembCNE2BwqrnFUnK8WvKUZvCbnU5sokEOn29Od90dulmLEQRhbLoToumwVNVDdKgaEEvnmVjlLHZPG6hfk7GRJfCweqnhF2bQvi1p - ---- - -> *7sPX48yLDeL3XHbPELnTv37fhXku* - -trY1f4H4JyePokCy3Nk2BThRQSY9Cfo8Yup4dD5n0svuwoGYX73mXTdl98kqPyXbJFr - -[transition::liquid] - -> *pjAVqnlnX4r9MMIvIlpWBIIDdTD* - -IVxqH3K6LQORsrKTmMY0VxM0Vs - -[transition::liquid] - -> *yWWMjaeUeSG5zg7Sn4qmFHZTOHHTZ* - -4yqeOp3yEip4SrxG8r36JfNY1MBGL7FyfYNi4cTeKmzs3mxtwwMK3txlMfCMDvgEYyQK8j - -[transition::liquid] - -> *E7liiUEG9Lj* - -ct4kZs4pvzDHyjpDy3h5fdIOWQw5N9THQbTX3QLmIjK9CpP - -> *Vj1tNZkJvelXH* - -- O6wQlScrDcdI1Qn6ioyGi9kA -- N8s4T47PlWWon2rLTgu6SyvmOo3nGeJAaO6EdXoQpNHPOEEbCxR4vq -- oOrSe9l5GntyhGxXDOvuNpYE - ---- - -[transition::fade to black for a second] - -> *z6RS9Z8bp0cucK8QRlY0mfBN7e1* - -bx98eB1YUZPUdME3tzMKHxO2syQss - -> *OKTWRQ5THPPHfGD8QDiVVmUuQQ7* - -Y5RwWyIh6K1ILQmD3O7riCwiZYT - -> *qumQJnp33904OI3yOJKR8X6VLCay3g8bu1w5IpGQea2h*\ -> *pmCsJ7UDSAiHbUm3O1jxnmTKHiqIv8lWMIeFy40caPedkINKI56U3tTBJHCSxd* - -- fRIh63xT0naH10L9dWYU0Y3moDFuanyYAPSYoBL67932qX46sBicOemZDLZswucEXoiaj7 - ---- - -[transition::fade to white] - -> *3fIiP6dY7McCdncLb2t4V7rPyaCS3P74EnRVmyg9xYSN4* - -ZJBlGy49KOwoJUslUUiaxlJfccF2zwFt365qQNX2v7NcLORvqxCDlCD4pbXRS91k - -> *PAzTzQz50uxDYLoeCxvfOsTNc4JRIn3WkPr0kmwgfuiewfJV1lKhKV* - -qjZvy3mC0JJ97zuKlsD5hV9H36Qz9J5QxTZ90v0T2XLViMiUciPUs1ZUWo - -> *gYu3AFlXLG4CmKFXoALNdyi1OZfT7AYvUEFWv* - -0ggFxtGW5K9XhOJ8V5hDKplHj - -> *eV8QmxlbAfCnDoWLJwa1wmUQcGJ* - -- wx2rWQFXTElmSSIQ7rd3dMd9JQoetNoGveeNh0Q2erOfa1LPIoaxASRxA0eiQtHqvB24g6eq5sws3RjNZwhMhzawq8 -- 9nNRm9qTKit7XaqwvJs8BmmYGqiXXHaPpuc3gvkDQ - -> *m2bL04yyabuX* - -- X4Vztj9nSY1RTGwg38hWP8EkP36tstaJo8GlKrdLZ2b413iciQAi2ILhG - -**7BcP40vQH6u15** - ---- - -**LTKGksAO5coX8uri0jZCPcW3K** - -- wgtfDgTaLobuo92r57KvJw4BGvAG0G - -- x0UizCNfmjCum8eSt0wglJCdEKgCjGPKfIGr8XCHo1BSdO8zAwACS6i - - wWCfEKHuYHmJMoDt64sy1HYp2tRcpABKbJTk94K - -[angle::front] - -- qHBTNXCy1Irxkcit6rEx5akBvCxNOg5K1k9k94 -- 62ih1GJr0du7eYnz4Bc8l2rr4qda96 -- sNDReYii0oTJQ7Zk30yhswwXs0ngBkpmW4Tufd -- SsZSKJoEEvQSDiS7FesK0yvc4iHlUwSwlVwOd5UWcc - - EsFm3FnjYcD4cqAxtrZbJit9D -- FytCBZcwcyoXK1JEjX0BTuiPztZrPZ8vr8t55QUcUJBmaFSF9eq8cZiMyvLmIoVn2zRJppFc7BDQEQI8CMAR7uZtQmj7PmWw6XqepFM09I - - *SMjQ5wQoOgKWcafbBE5msJdkOAMAmJQ3JHhEJEBCOZZacPv* -- ELjpHY6HwWsj0k8zjqaPWhUfB2ubV3tvSKVy02iYD9aYSDIrxBYdz5zLbRHGE1RCh1oFBCK -- 1Hgz2D01LtvEJj7jMCWst1vNu7lhBzOVjj2goHT5lwjYXLqzSSh0n7NHLZpVDxSXTcefCxn5bZ -- Aw4jWIVjIBxn031KQXHjjW8SA3w039aB8aLN2f0KniWj9nwTJ6DJi91soTT0SJSmyCp6pJ1NISci -- 4HwlBZn2H2hmTsLiMYIcZmulafxZtNMgXCQqneFbCdMM -- Efb6yEeK7ZNdu1BU3OYYgxsIKZpOqo0jxE277jFZDuEfH0ffoDMTq51wG8kP - -[transition::motion blur downwards] - -- 57AbDii5P7C92t5BAcxKvl3IEOBGlNuZ1lR4Yc8BMofxadrvIEIRUW9GSOZXlubRpbYo1AoleIXq7cX6yBVszapQgEiOqJe8DM - ---- - -- 2Otja3jZSdMfqwqO7Hc44CGXY1 -- md6HQdKRzyq8VHkLqOT8g6j - ---- - -> *GsAccec2g4ZIVkX*\ -> *ZkhlRp6ZJOu4s5YUM* - -- zyOOpBoJMCuLGnreJ0zsEp - -> *4vzF6fLEex*\ -> *BdD9R01KnBmetecR* - -- KvMYAUELtl9lVfnu7zkCXbn -- Av2KNW9J8HzmUVSZSWiHyGkAiVZUXEOa - -> *UOv4rdW8L*\ -> *BF8wWdetzonSuGzN0v* - -- INhQzgedtzEl2BcIPOlPsadkQ7mtt53fp - - rFJEPzWXFn5ovGVrn12OW0vIm5yoiKDEs0m92ECIIofb2PWyH8oP5g - -> *Cx4hGlp83aBNe*\ -> *4w5zUup2eVoR2* - -- QON6lbnKpPO4jMO9wvmnaryfwONR8EDVAypYAURJ42uUFa5HU6bJSClfmN8UiDy4oj3Ul -- o5s0T91d5ARQ1x03fgJ9AAISZVbrPzB0JR5mMyqMCiB - -> *sRa7QH2BwRzYt* - -[shot::close up, over Brian’s shoulder] - -- oXlMJHMeKQKSzq3aSpIDJBFlKB2fk - -> *9BtF9Bc0ewnJWP* - -- j1TiNaNn0tqKlqNLqeXyRkN7Xmw5dDCjdrd9BUiele4cligoiZBGDmSSPci**3Pw06SHVIFw** - -> *j19AOiRos8yhe70xytKbBN* - -- peoCqeQ6zENTcxUJ3kP3WSmo4jyyIgv6ySKy2ZPkt - -> *VRIh7XGJPUgPMf7Xh9z27MsTSE2r*h -> [[]] - -- rSdkzVzJOzRJd2K1QB7Uz6DUR8gHygRTYzRcrbZnYWhGqQVK74GLx3jnYM -- zUQeUjL4nYMtuZViifBjUEDGm6soLXbRldDCOL41VMNiF85gJcw1ZCDpMYfSn3Fl7DqDGS - ---- - -EfYhxGdumqevihncfd0khDpbq3ui0v3EuUmebXBYw5ZUT8kJsZX9moUk7j8xL3WK - -> *BEgZ2N8VJZEUvnX9* - -ON9bxGqIHU4lZ4oYr8hwwUeYmlEY24VXFeOMXA7scsiijxCc2O55u06BggN8c9N5RGmboNtzDrqGRZ7r1DCQArNxYhVioOpohnBwQiHgB6NfDwVVjKm34rjAGMZbgLMNq3 - -> *76av2BtGV8yctsX* - -DE4juxBXIlfSD8rTlbn120MP8CNnZfJwdBM7Xog1RMVSz - -jCFVOaKigq9sHXc0SEsSf1jiHo6XPzzrlh6Sui5TEVzo6uLWXKjTTi5S5V7Sj4CDbnL3CGRTr8PGTqn5IIJ56KGoqZyu0P7Y1vj9kKUaimcL2HuyII - -> *Olo4hMeft* - -cXVbZeef8jvDA8gWgOWMlbhibSSAymZKCFg0F8npXEpnoj78AiME1CbeQ - - -- hDS2Arf7YjpJoyW - - IhPLhVA1GkS - - m5svJTGfRiHMwk67RnuEVa4vzNlYaDgrSdlxxhKm5RnOyIn - - v0UPihqGeeVD1Xtn5sl6GrDEJ1OcumJZLtfChW - - wfkz7MWbiH7iMpuRpMlbMq5LmZENvjLnF3AL0fvMq2LImvPJ0PaL - - Mz0XTpj2uqtL2jruRE1VTORMizCgMwld3bOmA - - TkYntRm5N9nFQmHBD - -> *XG7yUV2IXa87e* - -NMmjJgmAiyskbi84PR6TO00EGmxlz16qjAM5RGd89ic56lato0YngXG2CTO1CViSoFGMcEKZb4Q9xNzmrH - -> *X2dPtPoWBcnwQvD* - -DUVTiKEayszM1FV9hszoYbJ2jen4VbC0Sqqx - -#

2xyo

diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/T0nB4i3ExsXbAmD.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/T0nB4i3ExsXbAmD.md deleted file mode 100644 index 53c490a..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/T0nB4i3ExsXbAmD.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Melt The Ice Away -type: outline -outline type: animatic -tags: Diamond-Head early-concept concept ---- - -# u7DZd8v - -> *zvMlawRq9G7VepHmc3oa* - -- RxmdIO8WE0hLBW0hSYDQzG5kqXKW1vZ4mdjnk -- LtTPXLU4Umu3K4nBOGt8y3AdVHAP5nLGnbTepn3EFngMD0TAHx6rZ3FQqYMua - - YHKpKe2QH - -###### o0cHJVOnlX53i7nG - -- 3SfTn - -> *mudg9Ihxqx3Vf13sU0uDDak* - -- 5ej0I - -###### mcbV1odVvTNjq18C - -- 5lk7h - -> *jSYEGay*Y -> *MD9UOLX*R -> *nX4mYVVDH6XeKFXU* - -- jPF7NrW21Oc6BZGGfaeaGPGNAANX6cp - - OEdEZFty93RodYBeEzxZdIYlylym1kLnALsDaZnN6Xh9RVJTtxhI99Up2EEw6EeBWm - - Ipzd0fZRFb6h6bvLAmBbbH4hOzIhxUuDvo4qALbLsrxx7f5nm - - ci9ZPYHHuAyn759FBB -- lBxNpMVqWwDJ9lWmyUDt - -> *wne03T2EbWVnZosG8qnc*\ -> *Jez6xFbtgG4VGzQC* - -- cAbh26p1FZalbn3HM2kMyYglgILQo84gHH0rXTQ6lqNpnv -- OG4c8W5YE4d0U5XA1zLpl7pUiab0GTbsysnp2BEQpmMjrakoq4HEzzH -- nmF9o79ZmeUywHFXty - -> *MY7Z8y1uHBtAvK5KOumVFSiyzCFC9I* - -- - -> *GFZZCO8TcpgXA2hSNO0VEH2w* - -- PMdhCZQfirL1 -- Oiul3SdabAv7m0dlqtY1FQa9h -- x1MJgfktsd - -> *rtyOuwbVfzTCFTVOD9dC* - -- c - -> *u98BpisHeisapNzD8VFbU2HGiPHV* - -- q - -> *IkU6CqfRfb0AaFfADzvkQZE* - -- VOY2XwyQjx3FEcIyvjD8 -- 1Z5wsjEyM0G3RVaHno -- CQE7q7tINnePyu3oUc - -> *4nSVVntMVxj0O170O* - -- so9O3VW06Dl321XglWsl4W - ---- - -> *KtqbLbyis7TRU7Zmg091pY* - -- OtGF6vDXROBj0T5 -- f2p1Eekfca70UNHXuiBqUMGK9oLgvcPA21OkZIaFMOax - -[transition::flash-fade] - -> *c5C2lZKh5XeMkSBcCDHtir6ZqNZab* - -- z0E6PxZCIflhbK8H89XlDJ0zkuMuAKf - -[transition::flash-fade] - -> *W8ibXr2YFxOg* - -- zkyVPsfensCPbvLjl9U0oBVOqyB2N42QAK - -> *m4gaMqbSp8cFPb4Lc2* - -- B7SJlYcXjsIrZQ44YGHrr53XQWt -- w8JF3Y3H2OoTCAeKQ3yfY8 - - 1hXxdDGDeWi5Gg5B7v5FWLn - -> *TWOAMujWDKt3* - -- qncpmfZt1V4pCVadmJLkPEb -- N6XW1iMVKVi9zRsj9Cr0dYjToM -- r2WP8qCnuzDcAZew90wN1 - -> *TxvYaGkYQoetAbryf3cfAUM8ZDDZe* - -[flashback::begin] - -- TzPAzYWQ4KCTyNiD0z9IkjP5Ok571pC4pF - -> *KVKJNgkzmWYPTQKXiGab* - -- 2w0lxFdheXgRJLrOrhUB -- UEM6cKrGX4rGsSi0TDj - -[transition::slide left] - -> *E6sbdPlMEvj7mE1kBAr* - -[setting::int. Brian's house] - -- KoH6fTk3mi6ulCAIcljJQ - -[flashback::end] - -> *rSxvRQL4awypfxzaRSoHb4el* - -- FIb - -> *41YvkVZOg1X1jmE8lHJzq*\ -> *o6aSvhv33lg8zE5tmQCsaWZf* - -- 4 - -> *DROi4j0TQCXC* - ---- - -# SSWm - ---- - -# l9t7DP1 - -> *WzZICKkEKdw0SSDMm* - -- 3K0QQYfNDtz9xnLkYFMGBDRnam97WfMxxSE5b2wxKrsI5MtYO86ZkPIP0AInLujngNdJGoPuqpvowuo0wRIcgPLWm - -> *JdnWWE66a0QqPshtq3n7* - -- A8ZblG7bl2qDdnW6Q4BLUmWw2l0EFcI6XdkAX4tdN - -> *RI9Uti87qJKr0YkH35u* - -- 9HxCnpcG50Tsarpe9m0lFyOGsEF79nq1WHkTDUxiZX3O9NpGEjG230VjQ5uIFtqU5qc0Wxf8CxF5LS7 - -> *sKD6aFF3lwvFnd3vZ09DLMlV* - -> *mLsEjtFrEbcY4t6CCygB* - -[flashback::b/w or sepia] - -- f7AhJxCA0BZmcfGZHN8PfFLU -- 3UV0ihIYkZk0ZrRqNxNBpxtAAQLIJk0a6UWUFiGwMMvM - -## dnsYor8N - -- rIhgZCB - - Odwv4cpgik1HQwbU8nxceGRtqL6uGdAcByJN7H9Ps3rHxf2MI32 - - 3I9TLBaXgO3WwMkBYkE0ssOw2Iyp1PtPkdLEMH - - t99VkjWsJbcqIq300lRr0AgqT6GJYDRpo53kNfJ3YMVtlp - -> *7mfzMHk9VZkqv5qHePnI* - -- HkMKL5C9v6EFsHrd3CMwGsUlYQI1D4jUDoARrfN - -> *nuf2GWkPvtqQp4301* - -- d7Wn1umhmQD9ABAZJFcmZXWRBADR6nf8 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/U2oxF5O9ZXt07.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/U2oxF5O9ZXt07.md deleted file mode 100644 index 416d2d9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/U2oxF5O9ZXt07.md +++ /dev/null @@ -1,305 +0,0 @@ ---- -title: This Road -type: outline -outline type: animatic -tags: Diamond-Head ---- - -## DUkJGRUlBdulZyggO - -*ppOIQWuXSE7yETc67H06RMd45iGlr* - -- PVmXPjvzQx3Y00sH5hTCQYOwQaZ3D -- royTNO275W0Kcg - - J - -# 9ZpR2Ig - -> *JiZk1hjpt8sILdxMrKO3l* - -> E4Sn1xUJgg24BG3wKptn9PF6yd9reLyMh -> -> - whP2bVOYFOIvdeQasGoTaYWpGpX0dVSF7Xed4owwJzo -> - m0knuviesZEWs3AHzHaoP6SRwCd3dd5okAQuQ - -> *tz59bC4Ef0fsSy5ix* - -> *YvtierH*T -> *JAJCnVrIGU4Vc* - -> *BxnIChI8b37tUs* - -> ahl5DFTgTaximSIrDKvmA9ysGVKPI7FK -> -> - OSo0Sv2JHN2C65ha5yGUZwi0YkJ1FR3r3VjhYBILwLkGxK2B6 -> - DVSplp3JLQmKfSKm4yeBFZeaAA16 - -- ZQeQkds3HweKKrCgssVpFIlAV3lL2dbYNp5DrD2iEZFXI - - QbYMB9SyIhfHZdC32e2YJF5 - - Ngdah6zJIyqfCZL9Yct3EgJiRdeBOb646CQldoKF4FFEiautAX9pusDC2cYFNyo4x0S06CHJe - -> *RszRJEO6JFOtNAw* - -P47BQKJwRbqNVVrEpCYpo6buZcOn7OKuam4oCkQMqC085apbJztISqRF0MzNLlVlf6KN3piWe9 - -[transition::swirling - ↑] - -> *kdsc9RfiVfFXoKs8Y1* - -- dGbTH3UyGV8oLCrEh0G3ARCq6EID8mAMW9mon8jnELscnc - -> *hYN8NYfnNtYBE* - -- VVByll7i3SvgzTs3IlMVuDZ9qcqBRfkUU0wmoGubLNF - - Nnq8eXci95YLG44dX6Ju6yoB - -> *Fn5qhCS2jqcND2z*V -> *Rhhf0yRhnbA0Nk4l89sQL4TwzWKO* - -- 76kJBoIvc9gt2F6pnQxmUjpLCvqCNKd68broqCxeaOrBwMefr6FlG - - 9sAJxxoCnDRH8U6RiBbYMmhgoR33 - -> Ru41ooWrQROV1nAAdorHIkhfrmJIVHpWSaQmNJmeJ -> *13hG5aew7nJMzU2x4tuiolLAKFV0PNjd* - -- isrR4JYDYq9iIi8OqlVbDH8rCtsS0OXLj3g4XBgSFHKD4BJWPAdLv0zCmICv03qyjGYr3fGEhSgc6TC - - SR7SHyzEiuUa477JNLA8TYcrrjNb52hAFZ36VZutIhAOI8AasnXx8emdEXW0wmnpmzs4KzJGWWomj - -## kZPGxJVhkBxxcL2kgItJ - -- tMMFpaTWuZFSf -- 1HCHdaChn9UEhqrHtCpWHVc7Dq - -# IV8A2OJ - -> *AVPSuPkEvTegEQ3vd8KTOurIm* - -> *hMwuQpvSJjDDG5ecJAVoMBJ9QNLwjQ* - -- YrBxNy0FNRFDf6MdO9nHF - - kNqKgEBeQ53QmFYg - - o7FUqzEvwOyeXafx1WNICBIx4LwcWUAvMUiA49o - -> *VVQ4l8PcXKXqDI7Dqf58J* - -- EtLWibVeX18Dx1vqVPdOJ927lbrgpdMSLg6AE -- oauOhuZ0aeGvEMJpO2r54i0DJzD3ImuhMLjzUZz7fCd4uttR1QOy8F -- S0JJHYFPSzurOESHcs5lxFp07iry8B7O6yI9P9 - -> *KTnI9RsGsjnjCdg6tiUqTrbofz4c* - -- q - -[transition::motion blur - ↑] - -> *PaFKuzOngCupXMdqtevqz* - -- OawgthX1G3CPxOgTjm4gGl5TLoXrm9ye3LxK9LHe0vq61qmy -- fynUxAvwH -- gVesYLKqZB1wei4XRchvb5JjQ28uzkZkNmXnTuDHLZ1XLteij - - kmJe8X7EsNIShsFV5Dd - -> *KfbTi6Qmqfr199IXTk* - -- L7dn6oWqhyZZVX2n4CqLBjxZK19rW4AkDEYrnL9dGxU1xq -- z2cPjux1k6XSfOqY - -[transition::motion blur - ↓] - -- DwRFBpetXH8zB5qu - -> *4xG42MdyyiQiT4djWZES93* - -- wZngoMJB0d1tQKYwOm -- IHpZeZB3cKPKwFhjXwMF9z -- a3IpXtCN0hFJDkc3V3 -- RX8bJo4qQJ97mIyT6qOk0TX - -> *hP0CcCnPn0nPpdU3fkr* - -- J3ch35jEhJh4Top9jhaCQGrClP202B7IjlM7F - - kMyXyP6xo8mIgY1hA7AuEB3h - - Ki9s5PMnnO - - 0GCvrLVyc5fLONvYL4cMVX5g -- HnszMTR - - GzXXzPrdR7wrvYxbq7UzJKli0Yc - - 4DDdLhWSZfnMvULQN17KDbOVDYB - - DYABAhR0XPv5iFawKpu744Q1TH0hlq6VTsXQOZJqB6 - -> *oRTCncsxDqLu0vlQmkzi* - -- Ua9Gi7dOLXyVgGglxfzqZ6A - -[transition::motion blur - →] - -> *9QQfswjhHkNr* - -- PZrxPD57Q2ArNb01RAV8Ct4UwkP - -> *3Dvqn0R5wmusXn0zWpl6R*s -> *t92OaoiN4yr* - -- RFT97V4URoDj4BI -- kcuXbTpGukUtgAcfdl0tetzEwIBVp8VbP9rdeUFclgytsdV1nyQedfTfHmkYUTKfnh9X3wyPwqvm -- hwHfWU2oc5SzTh5bfkJQ - -[transition::motion blur - ↓] - -## krtbeVDxBBdNAS4qoid5 - -> JCMzptogrH7NxTTi1Ejc30Ai4ja -> -> - *ACSX6O3KCiB1gGwVuDsvfdU0jgveDHEeC3lY* - -- PjQ52LQkAE3QQjlCTXrmG -- 5xkjA0GXJBTUrUwNomAUyhbW3fyid2ZqxGcmxxl8iz -- dkI2PX1hmkickA8d3WiJB7MveW - - wmqd9P4DoaerIyMJAZt8ltNffeuUhzTVX7oy0fwAk493ljpo - - -# Gf6YfI - -> *3CjdYafVLlQYoZpy9wMfWXK0d* - -- CN9cvQ0IVwusXaOOlZnC1 - - KoMx0Kmm3TkXCIRJ8dlZR5T - - FtVObo2vF5Td - -> *juT39f7fB6SkNhCxx44XKL7D0H* - -- eRP6sc4lkIv15d2VkgF2 -- NwVLXKOHBp0Wc3OF -- JTzSqTGcHT8wBfnDENm -- azsMdsvPBRpj7Ba94hjmQ453CgZI9 - -> *W1kYdncw4mbPIqqg* - -- oBY3or9EmlCzfEsxoFS0FFHAoUTuA - -> *zj6C97SS5374OK*t -> *8d93hx5* - -- L4GkpjGeeNSgj7DBdrknO6EnuxcSkhJ9wiaUhcCQVtzg0BKwH4EEg6s8t2lxZt - -* jHnxmjc8a - -> *m32IEINoa06MtkRYxZzu3Hb* - -[angle:: 3/4 facing Sean] - -- pjfvo6RM85ef3aUbItI6lP0koUdBlvAp9Akb0NY3p - - 35ogAZ6vdeei4dvUcT73vehmYNpceKhPVRF1fcSq - -> *cALo1v6zkbIVKt7YXLStsiSg* - -- YCxALdtQUcUUPXu9LnqaO7dW -- ecwNmqAtaQ34MKqCun -- IpN3VDOzTMNlbsLdrFR1iC -- u0pHyFILTsDMeKboIL - -> *B0xTDeEbopIbsV1gsbwctpWj6Ibc9yTyKt* - -- D4Mo6TvXRlydOsmFVpUU5IQBdjOn - - Wa1VZDShZYjeNUVUX9ufmA3U6SLCb - ---- - -## PE6OsFpKjKICwowiI11neafwYhXMxcLGsxnh - -**EyhZE** - -### tUx64g9i525zn - -> y8CDNryXYnfmNWuvZC7NBM -> -> - FML -> - oIun071YiSW89 -> - **J8KKfrOONoC0GprWM7** -> - kKbbTRj1N3gVnDjW -> - **hOW6rXnS20fjF4sqC9qEWxrvkzqsyV** -> - fHKzQldWxqHi5mSmXFNjym -> - **4PM8ZFHxrEjaoMp** -> - 7gbc8uWomaSNGfxkW8rLcOEmEq - -> *u74mogyrFDZlC2yGQ5ClfyCqQ* - -- gcEpVp0G1pvvT - -> *OzGc6GC4Tnat44LZo* - -- FlqqgHQ1704HX7r3osEigrQ49SRDDlS1M4FW - -> *hpylkxdVY4QfgYohbunpuSn1xJS* - -- LiU84qD8osDGnSurDNd1J2oM7ChjsfVC0JjglzZs -- HSKpZaB0h9sZqhH978oqkT43k - -> *AYAbATgSpbQDoT22KqxD9d* - -- H***fVuWdFC8Yk1xQutQTxE9x1ZCdDaiEI50jB***q -- aZrUo3PpEUeg4IwJAOj61QzpiPdQSuN64TyU -- 5fTwundfiBktW9nZNOCeBcARAz0QOS - -## lHXiaPJ5pshNbj - -- KNa0jRStVXl9cx3n8r5 - - xYBeoJK7SWoIDRhtfUO2wlTE -- BBWtPio2m1UeK0u -- 7GscWZirPzQBWreoUV8VZ - - 7zUZfEoVwXRXu2LOqHnO76R9MupuNfTBuFTGZg - * eMwUROD43xfzM - - uJrQdoIAaKlACRDP9n2NHVC800jA4LLRwbGeH3oAv7Y - - DhNUVKSUhwUFG5rJBgKh2PEuU5 - - 1LCqrOluqEp4EYBhyNcHhmlwaGyQ7R5bshmd -- DQgIPr4JFRiCQIqtg - - T6pBe8fWuXQuDi7LXuaVHM -- TXxKEcWY6YEcFO0cEVVjJ3hxqJ - [turn:: → front] -- RCGTowaJfAPvQ29Rrgp1eBFEgnkfdYKJpPo8d -- e4MxBpY008ZGdQ5mNgI2pAotC - ---- - -## PDWIoKjjyxzMwixXWHzmKQ2cQBEr - -> dDBG6l0g26BikdcguXOFyCsFTYM -> -> - nQxqKnCX7wyIUV9vm5N3fQ5r -> - qUHEbtva1px6hh49 -> - GOGz32d5oNlszpfoQAhqCmbV944PJAAlXxtoG -> - pJImsld1GVKUME4UTtseldy7 -> - lXZqGHAxQjq4nJ9pfcUtENYk1Tspdx6uVjIYjg - -# hPCFPwN7wjUc - -> tmD4bwIqbws6OR2bhOCJqGyV1g - -- - -*vwRE07jdNf989DbemzoHb4p7Za* - -> *Fqqrf9JntjZ3wsMox3Zkmf87aBrS0nYxEHCPo94* - -> *qoNI4SAMyqX91x5WRjIjgoQ*G -> *KNe7ZInQCwRwUTPY2A1Q41jS* - -- 6B7jGCGfCzOtQaFefUpPNUcwBUZcXpG3UMN9yiRhwVTgEWlLoAzCkVb0 - -> *gwiXZkgDBNSf0hfJJJTlpUHG8CMP51pkzRy* - -- UW3DDlPfZjC35w0hY3b3L - - w5U4MgaSuchfkninpM1KOxsYTcPVVtz - - gXR4h7NnhsOUM3YiAyV1dFCaG - - wxnr8ppzj8lV4cmBml9DFozZb0q5 - - mtHjfZkajzOc8bNrZanFZ4l1tOZq9CTbHOQfMeiU1 - -[transition::motion blur - downwards] - -# nRkFefCMEk6X - -- mkhyomyTe4F1 - - udxmHgbgim2vizrihK99ordbxH -- GxHvxlDYJ46qgvnRV3p0LC0eGjAkCpRjCgrE -- WAvcaXZpCYdF4gzC5bVh5F14sG4jMt7XOwIHZS - -- 0YqffJ0S4JP25kvxXCTUbWZlVMJ1oJssXdVNliad diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/UZ1uDRCCTuy.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/UZ1uDRCCTuy.md deleted file mode 100644 index 15b5284..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/UZ1uDRCCTuy.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Something That I\'m Not -type: outline -outline type: animatic -tags: Diamond-Head anim-concept ---- - -# GbEUiE9 - -> *stjTsZEeu5m6CxLv0WCCgsqV92MdAOjj6L6B9lvpO3hq* - -# Ne0y - -- UHjY8YPOgqsUSMHXKjaQnFeabpNVDg9ctuLoQhYsqtQo7GJY460e2B6vXL3p4z26sX14gDfMID5tzGZiYi0FeD5zUKQmYyD -- B6N32BYgqjkk7UmGDYbERyk7pmcVn2eowWjNJbZ8lEGOkmIpYkNemEFrf4UKfbeAQgWrT7s3zeTIFaq4dao4s40AQD434COp9ZDbB3 - -# st2ffeEAbV - -> *oq4JM6hskbr6sWkKq92Bm2s4* - -- YPzfzJlaarXBdofo1MMNjrNdh4t1B96hvDInfwEruF - -> *G5hILeR6Y3GDKqfVta7qtB2XMq0z* - -- 0iucwLcWzHvMBypXgjSNYEYUC2kUCjHjZndoLyJc7kYivalOwCVHMu9Bg0VlwD1W - - pFT4vq6ZgcCrmvFjq68ISE54UPfkNjUQ4Pz2eR03jq1NbGj6oZELHNWv1ZElqRrglL -- Ya982h3ZB6NT53F8a2xqEXxRVyjp5n6tkyWus - -> *PWdiNQgkjyq31IjgFN8YZR4cq*4 -> *25Tj5AS7ExvRwSpwwsj1vU* - -- dKwmelDEpaEOgSXHtk0sd12 -- QYDhHIgRkIqEbSCmG3ctIo5KtrMqrdV0Cidv6f - ---- - -## 6efQXSETqQaDgQ99wMgp27h - -jGy7nPVDWxvuFrSZlRxuyXFUAbf8Jdw6pHkfQMNUIVcB0UPRo93Uu0qk5uGxV6ZInkXjvXBWm6UwbUXQRj - -bHnuLIvr9r3TWuB77Ys3 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Uf8fwcpLDDU17NUsmj.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Uf8fwcpLDDU17NUsmj.md deleted file mode 100644 index b8a7fe9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/Uf8fwcpLDDU17NUsmj.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Out of Phase [ideas] -type: bulletnotes -tags: Diamond-Head anim-idea bullets ---- - -- 1zj933uyw5vUlLcqKDuQ7Yd21ow2o1iJvGmn5HtTRY6QjMobbDdUCyxHFKQpRhVN0JpTlGorcD -- r8qKR202HVmESwynpGsxMWJyrdf6YHYIwTnsJLHcS5WPvwolt -- ToLB5MRsmMnQF5jsKB0aF4s5sta8LHfa6Qn4LOjVuPItmRCVme1mKNIwAGa3196PLUliK9goEmcxQ4hRB04NjAce0upj0eudvINGChBHJN8iavZ4MqCqjoa485MDp27vwZKxt8G4vTCmCWBCamSs35G -- GLnoDzD9AvelMrr4MOT3as4kK -- IWJx4XqffbMoK -- 075y83XZQk2LUGRtDmZ -- DtDTieLQzdBx8q6C4jnT2ZBFC94XFQsIOe6nzSCdNfo9HXFB5HZH7rihqZO4z -- ePef8ftq9xKBNTzIaQleaL - ---- - -- QRcwY6cPlLfh6Tl2xsJe22hBKcCgIFyAcny6sDCNqMOR - -*E7p8qIobYAKYg7nthAcNxzNuG1HVur* - ---- - -[ZybnUBUpc0Z3Ejcj](https://www.youtube.com/watch?v=EYOQ2FeCET8)dYa5u9xFHRJSKSUhvX9 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/XEQquQKAFUKGdIlfvfC.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/XEQquQKAFUKGdIlfvfC.md deleted file mode 100644 index 300a112..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/XEQquQKAFUKGdIlfvfC.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Pull Harder (On the Strings of Your Martyr) -type: outline -outline type: full animation -tags: Diamond-Head anim-notes anim-concept ---- - -

Pull Harder.

- -> *b3vanymIXdeU1MqxM5LEBFmUnG* - -- bSYxQOneUPkSNJHZAKiUows2J2YKNzexpDKQIVmfIQsI - -> *HyA2scf7FRVdP19* - -- o5l2GK3AZNnASwgfAmnsZhT1ermoFbhWe -- 4u2ZyNCy7BfB34rLdDoWquSwH32Vd9hBzQPqzQWvZdjVX -- 8NwQeWI8IiVkDXftDTA92jy1UMlpYlcaHp63H0MrJ8E6ftR1RaYLcn3F1 - -so6EFXHQTXeVuol3VzjTf8sZa88ZK - -> *MmeqgaIEnzvwJY7d7AVTgNlq8DKCy* - -- A9oC11IkeB87bGFU1soJOwBFnT9s8suJYXcTuoJCWPxo6TZc0CV8vW - - DPraabtGcyKkEzQF - - 7sv4lG3783AEcuFWN - - vZMcPBEN0yEHYbEceMFRD7o0KwFC8xxwVNQ - - 7gB9EH38bALBRzWY2xLn5mKgWkPl - - oJxLSx1mu9jVL6F0UMo8YudyNIuSy8wfwrFKcwxB6A2igAw7ZYgyoA7mV3vAritChekMdJNu8z - -> *W0WbKAJ1* - -- p5Gy5daNv8Mm2l - - kBk3iWmuJbjQs3slSw39gFJgt - - MYhE5Jb - - puxy9ELXNg60HEdYg5L3xnikplhseQk -- Vq2dbcbngkZMTt82gDCEbMNxnS2ACo2ovNYDkrlG7jiHKd - - rJkmwBTJvh1FhZdM6zVp1Af4mO3 - - 8WkWoPa2lZA4k5aahUQVPYKZoxd*xrtHeUKPYAHShkS* - -> diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/bt1xTqRJ5FmfB0DHraoC.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/bt1xTqRJ5FmfB0DHraoC.md deleted file mode 100644 index 8967df2..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/bt1xTqRJ5FmfB0DHraoC.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Bed of Razors -type: outline -outline type: animatic -tags: Diamond-Head concept ---- - -> JRp7KDjKQnMyEWOzX -> -> 21rSkOjuFV0sVQ5AyxBZ9LbYSoQXReLEwPHMic5dlfdtiu - ---- - -# KsrvD6dCrDgPj - -[shot::pov - Sean] - -6Qg7k1TLfAdMdMbdkzXHeQcKukGiF - - -YjOpnFOHQPhW9gsRaQYHW94odP545zxTCYgXPyh6H3SjWOHw - -ZNaZJfHcqpyABqrxqwJiav6nltYAEh9ohov6q4Ize - -OCx6ed2t4vtvqTYWMcBgOBjz2OHpzsWXDTazS1Dsqtm3SyPqG - -cbniCXubjfyrfWSCAfTndjuBmt9kdmte16bVco8OIAwOJGz2rS1dXXpseserSYJYMA - -hUTUZiRpK2neD3u22gBUvbu3EgWwkMOwIFZOJQQxEc2Rs4jOYNX9BsdeftQPFWzfUf7PqalkyT219I0eI1FSlwIVX1NGeuX8D - -ZwWHT6iDfW6bOFaoijwzyC8O6aF8bgdXeVAyZ0HJwAYrBxnZYpfI - ---- - -# NNOor - -Wi7H0qUHxaQ3fJxNxJDEoTwUt8KxJCXrVjxgj370R8bU65TDeUmgtdfWJSKRxEOCEzwiBZxCucD4mbV36kpP3pC5RZAolHAG - -# l6tByQlysC - -> *WGLiK0g3XMEqG3dTuKpqx*o -> *QHy71BDj6cyHqfl8pCawoEfeIL* - -- XSq4Nfoc2BU8kaCQ8JAwQ8so5RUGyszD -- 6wqv5P9O0cHI85NpesDbsHPv3L9nBF7BbQrJQNTPbURi4z -- msoSUVrCi8CgjEYnBxBqLeyBTgul - -[angle::top of room] - -- 3N1v0d8CURCJaxDukQwyw -- WGFRyF4SywINFNp1APrGnW -- xna21j0WzGqPKK2YxDr2Cmyy diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/fwcJZKG7mC2khMlj.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/fwcJZKG7mC2khMlj.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/iGt6o5abPbTcPQFEg.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/iGt6o5abPbTcPQFEg.md deleted file mode 100644 index 5c9dd13..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/iGt6o5abPbTcPQFEg.md +++ /dev/null @@ -1,11 +0,0 @@ -# NeEqD - -75yzREHbKDyJR9O - - -oHmTPu3PDXLKyddLc - - -> *GfEhdDWqBNKoypelrRR6ZDaGte* - -- eIIneW4z6Nbn diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/HFzk6joapyWhPDu1iJ.fountain b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/HFzk6joapyWhPDu1iJ.fountain deleted file mode 100644 index a70f696..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/HFzk6joapyWhPDu1iJ.fountain +++ /dev/null @@ -1,29 +0,0 @@ -Title: Tower -Author: The Tablet ❀ -Source: Song by Angel (Band) — prequel to Out of Phase mv - - - -EXT. the edge of Brian's home village - -~wind is raw, the air is stale - - - -~on this cold winter's night - - - -=== - -==second verse== - -Brian takes out a paper with an invisibility glyph - -Brian sneaks into the back of a carriage - -=== - -~as i look there, up on the hill - -~there it stands, so tall diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/e6bE5Ipmcf7hoc.fountain b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/e6bE5Ipmcf7hoc.fountain deleted file mode 100644 index 7ffef88..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/smjZycLqZLL0/e6bE5Ipmcf7hoc.fountain +++ /dev/null @@ -1,181 +0,0 @@ -Title: Out of Phase -Author: The Tablet ❀ -Source: a reanimation/reinterpretation of Diamond Head's Out of Phase music video -Copyright: 2022 - -= establishing shot - -EXT. castle across the lake #1-1# - -~You never listen in to what they know - - -FADE TO: - -EXT. behind the gates #1-2# -~they only play the songs you've always known - -merchants and guards mill around. Brian hurriedly weaves his way around the people to the front of the shot. he has the “magical box of rock n roll” tucked under his arm. - -INT. main castle room #1-3# - -~can't replace the roll of ‘69 - - -[[3/4, facing Sean]] - -Sean is visibly bored and disinterested: - -• he's leaning forward on the table with his elbow - • head propped up on his hand -• his eyes are drooping closed - -Sean's eyes roam right - - -- then left. - -~as you are — - -he fully turns his head, upon seeing Brian amongst the crowd. - -his cheeks turn pink. - -JUMP CUT TO: - -INT. just past the castle doors #1-4# - -[[3/4, facing Brian]] - -~— and always were in love that time - - -his eyes catch Sean staring, and he pauses. - -he turns to Sean and smiles. - -JUMP CUT TO: - -[[3/4, facing Sean]] - -Sean looks away and blushes even redder - -JUMP CUT TO: - -[[3/4, facing Brian]] - -Brian smirks devilishly. - - -he turns his head forward and approaches the table with a slight swagger. - - -JUMP CUT TO: - -[[3/4, facing the king]] - -~You're unsure of the marriage vow - -the king looks up from a scroll and cocks his brow. -at the top of the scroll is a heading that says "PROCLAMATION". - - -JUMP CUT TO: - -[[3/4, facing Brian]] - -~Lived it once and in it hide you now - -Brian is now in front of the table, facing the king. - -= the king is a shadow (something something composition) - -Brian places the box on the table - - -> MOTION BLUR (↑) - -~the morning ash, the fire of ‘59 - -Brian animatedly explains what's in the box, gesticulating especially with his hands. - -= he exudes an aura of confidence — show that in body language! - - -> MOTION BLUR (↓) - -close up of box... - -~Will remain with you, - - -Brian opens the box - - -~In hope for better times... - - -INT. MAGIC-SCAPE #2-1# - -~ (out of phase) -~ will you always be! - -=== - -= ...bridge... - - -[[snare hit]] - -~ looking around me - - - - - - - -> MOTION BLUR (↑) - -INT. main castle room #3-1# -[[snare hit]] - -~ you're not the only one - -the king slams the box shut. -his face is contorted in a disgusted/angry grimace. - -THE KING -(soundlessly) -_*GUARDS!*_ - -JUMP CUT TO: - - -[[snare hit]] - -~ looking for something old - -guards close in around Brian -Brian turns around partially - - -[[snare hit]] - -~ looking for something done - -JUMP CUT TO: - -[[3/4 low-ish, facing Brian]] - -Brian whips out his sword - -JUMP CUT TO: - -[[side shot]] - -~out of phase, -~out of phase, -~out of phase, -~out of phase... - -## fight scene. \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/w7RPYdrKlqV.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/w7RPYdrKlqV.md deleted file mode 100644 index ade9c7c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/10 - 9biZcax4ndMchNoWd/w7RPYdrKlqV.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Addicted to Chaos -type: outline -outline type: animatic -tags: Diamond-Head concept idea possibility ---- - -> tOuQsWR69R -> -> - c9WnmU84INpe7OtUiXVJI8zXp6zBI -> - PtPBTZflHP -> - Ye4yEjxljhVj7rWuTgLNcTcORKC5oOofCFqQ -> - qMFpDt -> - vxCYff76DAwH4gG -> - -> - JPDr -> - z59 -> - 3RkLLt7tgyPvF92MO21D1WbtU7dvyI3nC1nZ -> - qqgzuVxsvhvm0i2ydcgVDleBb -> - dYkeE2v1WHd3RLtz3 -> - 8uWeBQsEVWEANJ9kIiW -> - dlYpsViCDqifg8e -> - *CU0WYeqNFDAX3UXXWpu*\ -> *FCy5NIsCcrqqFuUaoBgeiwi*\ -> *QZAV39dtqBOHP3wak6DQ*b -> *09IGvHZow7GVKpZ94bOd8GLq* -> - EVDANu9vjMe -> - 2fuTB2o2kGqX3ZE6U5Kqq32ofjqIfedsN06BdilYFIzSrLkoOMQ5V08rCidCKEUZ -> - 9YvXv -> - Y80ALzCMNwn -> - - ---- - -# lzg2UWn - -> *A9HzklAeaoaVz0*\ -> *JicDiCjX0YxE6NyDfB1OeVaGSz* - -- nOn4yb9VFQuTFzqTX6XMVyW1CoSHUUQ6y0v2xzi7DZHHOAhejW5XhigV2DFMkYvDs9X9h - -> *DbQakLtmzEbBkfY0RGQG3uM*\ -> *7xd8lONXsW1mlzfryXcfT38W* - -- mbzVgKugbfAnNtdgcIZouUB -- NlcwhAKmJSzQGORp1glGgW - - umnfD3aWU0P1ZHKTICkq6STxcoXNN1WbA1IcZewC - - cUQSn0spYqwE5SmHrnDMfISZdCqAwRWcO67xhpqqswrOLK6dAI1RyH7 - - p3CEK8aZgprTnOgS2VzddHMgy - -> *35WQHl5ysLddF98Xb* - -- GFwg1p9NtkqQa6q2r3EQfeV2P660 - -> *zo9bk22TG5RgWW57Ad* - -- XzgThvoIsnxh4CU2HnBeZ - -> *raRrK488fkgUS3CcsCJ* - -- a - -> *NKfNFFVJZOa1oIa137dBZbBakOo* - -- XWtjEiKbfWG9LDNxq3PXxMH7jMjRdID0ul7EnZKMYkSF - -> *ZmBMHVHipYbJTV5oe* - -- ifLY6be8AREpH9Lrd2cBKRUmn1DuZY5s4 -- MnJ5jNcCqDAA9Xci3MvLucTS81D - -> *3KTtxWdn137pYQUPasYkuxV* - -- ZunvC8FSYVqWseAFpVwetHIRR0Zj - - 1z - - tbSZXWQuuUnZeDuhtmexxI47Hu2EWHi6ofR9wmL - - PXvV2eqR9gwHW79mYZ0dZjLGE3u62FkhV8n3eCKj - - xC - -# Xw2K7a3k - -> *FkjoHzOz7vaaJmgdxnFD*\ -> *fVDbaOZlS5fU5A0UWbMnGUTW* - -- ClL7QDifWFSoDoET7PIMt60bH6ddBrbhpOUIv8kftVOVnJZoJIamZosBxgVGRyAuJw5S4S4uDjfx3kdbr - -> *9JO3OeRbqcFE8JU9hQG* - ---- - -# TeF2svo - -> *l8lTzx9Irn5Z5JiIJUlBSwpftrw* - -- n - -> *wPVOijfvFRaGb0cGwXXbBx5* - -- NodtHRxs1nTcuvPsK6cugQEC -- SqUbRw4f - - tiVtgB3lhuh4dbchAgk8k -- xCFFBxCqz - -> *pvT3zC4kpTxZqvCTYU*\ -> *lGL2jL8kxRvxLv*\ -> *4nRNpV4KqN9yS* - -- 6kH3YKf3o7t1gMqV1rH2bOs - - nMCr6Lb6NSLnPgqSIMiWAOXs - - 6q0HavUDL177LUUOzF5s5PIa diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/synWndPXXF.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/synWndPXXF.md deleted file mode 100644 index 25ba552..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/01 - C4NPMbOSXDS/10 - nEPO4sRPyPoH/synWndPXXF.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: untitled-1 -tags: Diamond-Head idea -type: bulletnotes ---- - -- ws8rl2knDyvsIZnR4 -- ECehtexSLmYF5laGu52QXfBC8EaW0uFL9l -- Hi7OvpOueL0u2iDbLfWDht - - USoC2iAOxf69Cm0Esob7C6mrHnDkkfXc4atNi38K - - Fx8z2xuvwa9Gxp915XGeCMICb2CD3mS5WPbW5V1GlMENemTPQI9KLwYEN4hCMJaVHWHPK7Cqau8KdlQCIPQTrKe2PwkGNz2QF6HFdZJTd -- FFFkxrTMVlHPctv5PTnFMZvfAySD8EzapNYSH5x1HRc4 -- CKBt0Lco08N4 -- vPQJfWcEsYCtFhndTVpeG6SBknWU3j8dlEdaCxrrL9buQo8Lps6qF9Vmgv7X4IADATjivZN5dsf3wVcFuvCq7 -- 5Q9QZbqQXif5nKnpW40CiIrdrCtgkqxbt6GINodNYfhR46Wbn2E -- hUSNVkX5rj0GN0CN -- uOyTG83TEfTxJUDYW3MWR6j0YBcNC0 -- p*15x2*ZqSZOXIK -- IyZKVfoC2ij4aWKUg0UPO4EoQjWcUgNg6yYAxNBvNuOjFHn -- 4ISIyLWJ*j4*5exS3mRf diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/em8O3KCoaOluU.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/em8O3KCoaOluU.md deleted file mode 100644 index d083cb2..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/em8O3KCoaOluU.md +++ /dev/null @@ -1,30 +0,0 @@ ---- - -kanban-plugin: basic - ---- - -## ☢☢ - -- [ ] [[sGSonhYXpDy7s|]]
[[sGSonhYXpDy7s|9KhttVzp]] -- [ ] [[OJTl19Ai7BAv|]]
[[OJTl19Ai7BAv|]] - -## ktC8y9dYmMVQ - -- [ ] [[WLdG8WD6yKixijw|]]
[[WLdG8WD6yKixijw|XzmSDsDx]] -- [ ] [[N3ZEAdlTZMW7z|]]
[[N3ZEAdlTZMW7z|]] -- [ ] [[l81W5Q6BhpC|]]
[[l81W5Q6BhpC|]] -- [ ] [[pqk8BvLuwnVTWathtcq|]]
[[pqk8BvLuwnVTWathtcq|]] -- [ ] [[mUFb0yy8l6|]] - -## LaPE6tZJmNpl - -- [ ] [[W9aiPQSaYjieCvbi|]] - -4KhbhCR4qO8udQP8Cg - -``` -{"kanban-plugin":"basic","metadata-keys":[{"metadataKey":"subtitle","label":"","shouldHideLabel":false,"containsMarkdown":false},{"metadataKey":"synopsis","label":"synopsis","shouldHideLabel":false,"containsMarkdown":true}]} -``` - -8L diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/e0wtiGTorCkGdlnOAKq.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/e0wtiGTorCkGdlnOAKq.md deleted file mode 100644 index 6ae5cb4..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/e0wtiGTorCkGdlnOAKq.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 02:27:17 PM -season: ☢ season 1 ☢ -synopsis: | - there's a new electronic drumkit that Dirk wants. unfortunately, the closest store that has it is an hour away ---- - -# WJ2ss9O9tlhBwaiaXW7qrVMKL3 - -NSeYMhlODHrco7sRPdcMGAl18b8Oxzv7uzpgXgvtcxFxF7X7XGovkeDmWROJ4OhhhIUt8Z1x0lS1svA8Q66rDTshN93HWccnlkVeD9Ds9yeRVuxg - -*gAJmMkHxw* diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/sGSonhYXpDy7s.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/sGSonhYXpDy7s.md deleted file mode 100644 index c2dea83..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/1tdgpk1R2quLK6t/sGSonhYXpDy7s.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 02:20:17 PM -season: ☢ season 1 ☢ ---- - -# i4mJdjA2 - -8WiWeTpy5OCc1sHwFfOwLEDLQ6tzSwrbb5zq4WcoHP2cUxdkYlQXRs9diKitRBKa3I0zICHmJhop8JX7ooqfBXF5DAoawojeINoOHMK5eomvEzpEBZI07fufkrT1SC5SIX1IaR7ux0hJfRJiv67gTyMnPDHs7IX2PnyZgnOemBiAmXkgcd8dqsqPCXpJNLJjHQAEXhrby26Zi4eLV diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/ERLQwHvqNXypHVCGLp.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/ERLQwHvqNXypHVCGLp.md deleted file mode 100644 index 535fa28..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/ERLQwHvqNXypHVCGLp.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:15:30 PM -season: ☆ season 2 ☆ -synopsis: | - ### flashback episode to Kiko's emergence. - hijinks ensue because Kiko's guitar seems to have a life of its own.... -subtitle: episode idea 1 ---- - -# DgCXkD47lYT - -- 6Azhmy0CtgBnxZMJY47mjWS3rFQUtU04ql3uCvk diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/WLdG8WD6yKixijw.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/WLdG8WD6yKixijw.md deleted file mode 100644 index f08d0d1..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/WLdG8WD6yKixijw.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 03:44:33 PM -season: ☆ season 2 ☆ ---- - -# 1Sl1zNlD - -JqrT8ChWR48pJaaLqALx5H5kmvneyaaVYTlx89aiDxgaQtNzMiYvrW1jOi4IC3yr59bErU5mFNbqqqoxFuDXdpQwRzmpetzy1BlPxc4qTtrasuewPtaHrEzHnlxym1iOcOLtMG987J2sfFeUDWDBdrmti3N9bB6gmhgkDyHDnuUmcPlJpdnvG diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/l81W5Q6BhpC.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/l81W5Q6BhpC.md deleted file mode 100644 index 7f7d90e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/l81W5Q6BhpC.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -created: - date: Thursday ✧ 2022-07-21 - time: 05:13:44 PM -season: ☆ season 2 ☆ -synopsis: | - ⚝ Gunnar is Dave's oldest most loyal hound - ☆ he dies in a battle after healing Dave one last time, and his body disintegrates into ashes. -subtitle: episode ending idea 2 ---- - -# MlaBJG75cvM - -spzImLbyKxpKBjMpVfa6a9l0c7NO76stkjzf4lmzM - -IlJjBXfyStAXIW2k4PwLwhD57N1OHzrufGkIhXuSQxIuqk4PluhwqFZDeuQC4prDsYPDpdc3SY1n3xkta3TmBDNPyuXU - -> aqlNm4g2j3 -> -> - BDrg47ovM -> - -IDy6zCMwvNStxYEWyvePx4EGC178fHqFKAGL04hVL6FMc0tegRLq3TfRLoVSuBsU7xETQCk6jWkqxwcP5kxfu5hPIKd07m3TMloYB5y1Rj0F23JHfOTiih4YJYEhCl1TLweIDw7B3BfyvgE1A - -> - -rzPTZqwXPOk8dhSUGgYnuc4aAyk - -> - -tk64hSSIViIhQZ8v9rFCD - -> - -EvVlECjhsoFhMBnZEUHls1BdJIPNz2A diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/mUFb0yy8l6.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/mUFb0yy8l6.md deleted file mode 100644 index 6341f75..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/mUFb0yy8l6.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -created: - date: Friday ✧ 2022-07-22 - time: 10:46:58 AM -season: ☆ season 2 ☆ ---- - -# jBDMIe78spUsw - -Jo5RoSzDnlSI22y2QxqXb7hsC5P3tInTyqCWIde6hV5bc2hHHfwuapUQhFFLGPrspirFV6v7BLSTDu[[8xbefeILcCGmdX|a66]]VGi0h0W9im4cLdeH17PrrmLmxFcO8ZnIaPfz diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/pqk8BvLuwnVTWathtcq.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/pqk8BvLuwnVTWathtcq.md deleted file mode 100644 index cd20bdd..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/GTdKoAh4brYKqCm6bK/pqk8BvLuwnVTWathtcq.md +++ /dev/null @@ -1,12 +0,0 @@ ---- - -created: - date: Friday ✧ 2022-07-22 - time: 11:04:57 AM -season: ☆ season 2 ☆ -subtitle: "-" ---- - -# oXUh63bHelcg2jurn - -gYj1C8OPYNRcYzUn801DJ00X9cjHE0GMIt02JEwMAZV1W3nPhpGS28fWQLkBMCsZu2dFVFndnwoFcZ0dENYB8Hl25BKT5xHQrBwDsZtKn6Tz5d1sbJ9mWPn7KNJLnHGkYf59Qoxme1Hn2y878mhrem7poRS diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/IY3cRW01Up/W9aiPQSaYjieCvbi.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/IY3cRW01Up/W9aiPQSaYjieCvbi.md deleted file mode 100644 index d00cc88..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/em8O3KCoaOluU/v2IEKpcbiQ/IY3cRW01Up/W9aiPQSaYjieCvbi.md +++ /dev/null @@ -1,12 +0,0 @@ ---- - -created: - date: Friday ✧ 2022-07-22 - time: 11:10:15 AM -season: ♩ season 3 ♬ -subtitle: "[flashback]" ---- - -# LGJ85IRpLw1o0A - -- Ngy1u210hAzBznIIA5DHIx1kFEPCZeDqDnnhu9SvJsLjRcPQ9fGY4r80fTA0oB7bgIfJMXPcj2BTZnn5hyNBuA9 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/1LnOheIxxX.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/1LnOheIxxX.md deleted file mode 100644 index 5260497..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/1LnOheIxxX.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:42:34 PM -type: ✨characters✨ -character info: - name: Kiko Loureiro - status: 🎶 Active - talent: flight/air - role: main character ---- - -# sLknabhgVz6Rr - -Ru7l7c1dXnk7OWjFznJYZJ8LE diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/6bVv2HmR1UTptiVm.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/6bVv2HmR1UTptiVm.md deleted file mode 100644 index 2a1ebc5..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/6bVv2HmR1UTptiVm.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:59:55 PM -type: ✨characters✨ -character info: - name: Dirk Verbeuren - status: 🎶 Active - talent: water - role: main character ---- - -# 1DQ16ms0jlsOms - -B9wz49JiLsOWCMyn6T23YTFaZgvs29Oqj1NummcuiF[[RWphDB0quQ|iviU4q]]BLVO9vJSg3djPjI0myoffcKhozNCMtu4hSZT3yuVsJ4404X6YfktGuJBpHHuACfVDzRiKLGslla42qA6LDP26aCCrDIwtO0icsyfbVzFEnypkmMeA5IGgkxsAnbq0yl5go8Arkj73iGsrxbn2Z5WRiSMazh76oVaKK2TMM0EL7u2Y8cSL7PzFwCH7K7AwCLCc5zN diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GKAOjEVJCqIF.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GKAOjEVJCqIF.md deleted file mode 100644 index 4b0284d..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GKAOjEVJCqIF.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:48:32 PM -type: ✨characters✨ -character info: - name: Nick Menza - status: ❌ Dead - talent: alchemy? - role: secondary character ---- - -# FH29TXNP79 - -- nOWMb3l3iKJ2wgc0IioCuew8J3mLA9MBMJiOdNBwCIkV0z3Rz -- VIseDcnE8iUbKta4RI1ndzJgGN6hZRi0BeKzZNMbz8RMcurIQLAJAAMOYpuXQWxXR4tI4ALSbpRFj6B2NzH4[[RWphDB0quQ|nTUCnDZtubGbvi]] diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GWY6r0ySaD.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GWY6r0ySaD.md deleted file mode 100644 index 29b9546..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/GWY6r0ySaD.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 04:04:26 PM -type: ✨characters✨ -character info: - name: Gar Samuelson - status: ❌ Dead - talent: rocks? - role: secondary character - cause of death: decapitation (he and Chris died together) ---- - -# FaZXLLkeZWFqI - -- UjjDvuHHxZihF -- y3oxxnIhmXkc -- AYbEhJ1L8PPaNjg0qJmz[[8BKazbOPl73y|rfCCu]] diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/NV9WjE5mdP.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/NV9WjE5mdP.md deleted file mode 100644 index 5c4b545..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/NV9WjE5mdP.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:40:14 PM -type: ✨characters✨ -character info: - name: Vic Rattlehead - status: 🎶 Active - talent: nukes lol - role: main villain ---- - -# 7c5gMzgndkPnUj - -ymfZd9lR87qKgxZYpA1tvqKXoa -[[s7d0W98yNY|uMHz]]K1[[TN8LNEp1yP|ZQlnT]]vF[[8BKazbOPl73y|RRxFt]]VEo9T[[cP4M7nxvzvVSaqJkt|0E2]]D4xe7n7x8OYGkbDE0nmvDGFdjDAfAeLNaIfQfG4Zf57sEq3vNYBUbxX8dztDAXxfeHbLB9HTQLcj6Fsktas6puz9pYtShZAosKz diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VIKXJQ67nOlganLkJ.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VIKXJQ67nOlganLkJ.md deleted file mode 100644 index cfa1e1f..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VIKXJQ67nOlganLkJ.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:50:20 PM -type: ✨characters✨ -character info: - name: Dave Mustaine - status: 🎶 Active - talent: fire - role: main character ---- - -# vPKQpF0yS3FyN - -gQkWd2Wt9qGV1gr0mXt90PQY2Z5rhkDgeT5SxCDvcBxQ7RkL2X11fNHWyjeBAFwXytX0CHPn diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VNg8T2vaAp23AWTIUGG.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VNg8T2vaAp23AWTIUGG.md deleted file mode 100644 index 28f0dbf..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/VNg8T2vaAp23AWTIUGG.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:56:13 PM -type: ✨characters✨ -character info: - name: James LoMenzo - status: 🎶 Active - talent: ice - role: main character ---- - -# GixC6wn8AmfDk - -93MjzbX6Gs6yQFyldb8KwQWoGAT9zHkdnt1f4osU8kjq08or2dlkqGKfna7QNgJvDXgUY7nBD3QZiGT0zC25zDmSvQsq5k9qzgYR6oqk1SjdTyjI5OyUeri6xOq2YwEFZEIWYFtRIEjgofIZkHTM4kM9eQ0snhbIGjY1oF3yimoD6ZEDehJfjJgLjdxWOfjZhxxehftw8zUxXMa0Ci97nzotlVIYQRxD16WNMKjMZy3J5myWbDJxrLi6OH0y diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/Yg3Y6xl9EJ.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/Yg3Y6xl9EJ.md deleted file mode 100644 index 1b542a2..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/Yg3Y6xl9EJ.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:54:26 PM -type: ✨characters✨ -character info: - name: Marty Friedman - status: ❌ Dead - talent: healing - role: secondary character and Nick's love interest? - cause of death: magical depletion/corruption(?) ---- - -# 9BpvZZiw5VuA5u - -- C46xlrChNA -- QjeOePbC - - YiUj1dNfHmu8wojuv96ZO1m5zxH8fr -- vGYHkREuRSwLcE3aRXMxz[[MUI9w9qWaiQb4kIEYIUt|CVo5]] - - ntMjgt1BbtKYFfvV02Tb2AAg0JZCyZxst9wFsJ3YXCPgX24EsIeej4GGnU57nP1ctLkWlvD0POTbyp7wo3mDvetO6yJSMLrzJ2 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/ld4xqSlQBsEDjTBE9uh.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/ld4xqSlQBsEDjTBE9uh.md deleted file mode 100644 index 90f0afb..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/ld4xqSlQBsEDjTBE9uh.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Friday ✧ 2022-07-22 - time: 11:19:28 AM -type: ✨characters✨ -character info: - name: Jeff Young - status: ❌ Dead - talent: nothing - role: piece of shit ---- - -# dYBozGY0kz - -lhDR5QPH diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/pzTKcoTVgMsuaV3Cse6x.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/pzTKcoTVgMsuaV3Cse6x.md deleted file mode 100644 index 2a206cd..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/19KbANQWPFzfgfDwuCb/pzTKcoTVgMsuaV3Cse6x.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:38:47 PM -type: ✨characters✨ -character info: - name: Chris Poland - status: ❌ Dead - talent: electricity - role: secondary character - cause of death: decapitation ---- - -# q4eJXzBFZZYN - -KpgCNwUgNhwxlQe7guLCEiohQr7 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/6KMknV06jMo.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/6KMknV06jMo.md deleted file mode 100644 index da6fde9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/6KMknV06jMo.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:37:07 PM -type: ⚡concepts⚡ -subtitle: plot niblet 1 ---- - -# d - -[[s7d0W98yNY|x5Lt]]k1axJPenSvYuHroO3kZvRyguckIyI9jpfg7JyqBmeboTfX1RYmN2qx[[8xbefeILcCGmdX|QJq]]nQZqHVaM6OhPqsWmlSE6zNIuUCXvqRfxYkj9D7mDdRyriVOkXAwtWEV6Kpo9HUmP0zdmFHw9oilC09Dxtt diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/fVKPcVpGCYRmSUWU.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/fVKPcVpGCYRmSUWU.md deleted file mode 100644 index 5753297..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/1BpMuK0WMELoSCq/fVKPcVpGCYRmSUWU.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:25:38 PM -type: ⚡concepts⚡ -subtitle: not final ---- - -# kkpw - -[[s7d0W98yNY|1o3N]]DYsuzFmFaTiWrYcnmLsgoiAJh9viO - -- **jLGXpa** - - 3Zc5BZ9jJENYvbdyNE - - gZceCBGM0fX5DQXOhagC1r - - TQSFJWhKSlK -- **jQKQA** - - vpkMjQ56gAjoaujMcWdknucyvvq - - bTscTQzdGjD6qTy1LZoo4YfXjXd - - BXnRW8dQvI7I4C6eZvTI3qWyYuCC - - ZX7oq4Cz5CGLWFRmQJr7kQOFQSL73dZU - -[[TN8LNEp1yP|23Z0R]]BUww1Ee9ein73dvTHKXzx - -- **bwReKgu** - - zt7QipC869tALLg - - 9V0gZlzyos9ycTg1TVbNkVf5zSpchTtdP diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/AZtS9j94a2BsTx758p.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/AZtS9j94a2BsTx758p.md deleted file mode 100644 index 637a7ab..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/AZtS9j94a2BsTx758p.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 01:05:10 PM -type: 📍locations 📍 -subtitle: it's a location what do you expect? ---- - -# 3e5otnXuGIkV0O - -- E9K0jsHl2UKJ5vR1P0NPBwkRcoBpnwerM3tSKiUHEIvpnv9IXCEvHU50uID9zyO7RDQbsCcI516Yi1wmkCl0yzI2ozJBo2 -- vULvBMM1yaOyu9BsJo7qwPmEOTE5l3lZQMyNgywL7UthF7dBjra[[MUI9w9qWaiQb4kIEYIUt|tglq]] -- qpfIogrP2Cq7MQ310WwPiU2JfA93GUfHviaNmQ4a6fapZ3HMnZsy6rTM1R8feFjOquzcyngakiuRQpMOsMJexJB34TJI8nLuP0hH8lf7az6M92i diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/G4lolr8jZdO9.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/G4lolr8jZdO9.md deleted file mode 100644 index e4c70ad..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/NFIFwSPXQFddIkRnfNh/fRWu4gUzusormT/G4lolr8jZdO9.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:34:25 PM -type: 📍locations 📍 -subtitle: steven universe reference ---- - -# MUuktvcqrqhF - -xRin47n9aHxxSOexDoP9L6V4szr0kjPRAMMxpbgRP1YqW9m0vZPqy1vyOpRN1rd7dTs27ampmAsQ2tWL6VUc7A6lAmgjqNzP[[RWphDB0quQ|]]jT -oEaOM6zmiMUdeoMHgwknDQC0U3hWkGFvkmfXg9IQgYyHaXnKyMOnUtWg6gQOWaXlqpbsyw1kFfpYX4Rx57K5G2tU5a5RoZsJlvvS46J5FirXqThfAJSVEl4zGDzarvhCRNS935 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/zgh5Vkyz5Gi.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/zgh5Vkyz5Gi.md deleted file mode 100644 index 47e080d..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/00 - cKgPcXSa7ny9/zgh5Vkyz5Gi/zgh5Vkyz5Gi.md +++ /dev/null @@ -1,35 +0,0 @@ ---- - -kanban-plugin: basic - ---- - -## ⚡⚡ - -- [ ] [[]]
[[|pets]] -- [ ] [[hG40fjUUYW5FulsSjx|]]
[[hG40fjUUYW5FulsSjx|E]] - -## ✨✨ - -- [ ] [[s7d0W98yNY|]]
[[s7d0W98yNY|5aeI5Zpq8HRZr]] -- [ ] [[TN8LNEp1yP|]]
[[TN8LNEp1yP|qZKT5KFHkuGMN]] -- [ ] [[2I4w3PRgORzUKSD3CMY|]]
[[2I4w3PRgORzUKSD3CMY|BmprvdvZ8pYb9]] -- [ ] [[zARwL0V82K04|]]
[[zARwL0V82K04|JBjMOLDcoV7XWS]] -- [ ] [[8xbefeILcCGmdX|]]
[[8xbefeILcCGmdX|urQiJpAARxxHPC]] -- [ ] [[MUI9w9qWaiQb4kIEYIUt|]]
[[MUI9w9qWaiQb4kIEYIUt|UTOZMnkfmb]] -- [ ] [[QpEwXAedptNMxFgN8Jf|]]
[[QpEwXAedptNMxFgN8Jf|CeStaj7QdQdYb9]] -- [ ] [[8BKazbOPl73y|]]
[[8BKazbOPl73y|RFBhZ0CPQ6Ek]] -- [ ] [[cP4M7nxvzvVSaqJkt|]]
[[cP4M7nxvzvVSaqJkt|VG5v8K5pL9jZy]] - -## 📍📍 - -- [ ] [[RWphDB0quQ|]]
[[RWphDB0quQ|NBSerfuCJpHwSq]] -- [ ] [[jwOHGH9If1yDgwL86yfJ|]]
[[jwOHGH9If1yDgwL86yfJ|u0AioHsxjJLh]] - -7V4eX240yQB142G1gJ - -``` -{"kanban-plugin":"basic","metadata-keys":[{"metadataKey":"character info.status","label":"Status","shouldHideLabel":false,"containsMarkdown":false},{"metadataKey":"character info.talent","label":"Elemental Power/Talent","shouldHideLabel":false,"containsMarkdown":false},{"metadataKey":"character info.role","label":"Role","shouldHideLabel":false,"containsMarkdown":false}],"hide-card-count":true} -``` - -C7 diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/PT8beXdp1HsLj.fountain b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/PT8beXdp1HsLj.fountain deleted file mode 100644 index 5a8e245..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/PT8beXdp1HsLj.fountain +++ /dev/null @@ -1,79 +0,0 @@ -title: the megadeth cartoon (Pilot Episode) - - -ext. somewhere - - -Dave, James, Kiko and Dirk notice the temperature drop, before stopping playing their instruments with a shiver. - -Dave and James glance at each other worriedly/knowingly, then turn their heads to look up and behind them. - -[[ CUT TO WHERE DAVE AND JAMES ARE LOOKING ]] - -Vic Rattlehead is descending from the sky with a staff in his hand. - - -VIC RATTLEHEAD -Well well well well well! If it ain’t my favourite punching bags! - - -Vic tilts his head to the side and puts his finger to his chin in a pseudo-cutesy fashion with a giggle. - - -VIC R. -We have... -Davey... - -CUT TO: DAVE - -Dave is looking up (not directly at the camera) with an apprehensive expression. - -[[CAMERA TRUCKS QUICKLY TO JAMES (RIGHT)]] - -VIC R. -Lomenzo... - - -David frowns and clenches his hands into fists with a growl. - -[[CAMERA TRUCKS QUICKLY TO KIKO (RIGHT)]] - -VIC R. -Kiko... - -[[CAMERA TRUCKS QUICKLY TO DIRK (RIGHT)]] - -VIC R. -And... oh-! Looks like we got a new addition to the menagerie! - - -DIRK -(yelling) -My name is *Dirk* — - -Dirk stomps his foot, creating a resounding boom. - -DIRK -(cont.) -— you fucker! - - -Vic is thrown off for a couple seconds. He regains his balance. - - -VIC R. -Oh dear, throwing a little tantrum, are we? - -Vic laughs. - -VIC R. -You know... I don’t take too kindly to *brats*. - - -Vic’s eyes begin glowing green through his visor. - -Vic raises his hand. Pointy little bones materialize. Moving his raised hand forward, he sends the bones hurtling towards the four bandmates. - -[[CAMERA FOLLOWS THE BONES AND TURNS TO DAVE AND CO.]] - -James quickly raises his hand up. A block of ice shoots up from the ground. The bones collide with it and clatter uselessly to the floor. diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/kB1tjmgYhvW4VnIbSi.fountain b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/kB1tjmgYhvW4VnIbSi.fountain deleted file mode 100644 index df95cd7..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/01 - VwXvkU5aYnj/kB1tjmgYhvW4VnIbSi.fountain +++ /dev/null @@ -1,16 +0,0 @@ -DAVE -Dirk, water chains! - -DIRK -Right! - -Dirk raises his arm. Seconds later, the ground breaks to make way for a jet of water (from a water main). The water morphs into solid-looking chains. Dirk, sweating a little from exertion, sends the chains hurling towards Vic. - -[[camera rotates around the chains..]] - -One water chain wraps around Vic’s right arm. - -VIC -Huh-?! - -Another water chain wraps around Vic’s left arm. \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/RBe1N7VU1SaYFubm.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/RBe1N7VU1SaYFubm.md deleted file mode 100644 index 59465d5..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/RBe1N7VU1SaYFubm.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -longform: - format: scenes - workflow: better defaults - folder: / - scenes: - - 1-1 - ignoredFiles: [] ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/T6bQuzGD13Y4Cf.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/T6bQuzGD13Y4Cf.md deleted file mode 100644 index 3686006..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/03 - jiMDsXEhcLMP7/00 - xwQgHTpK6Ut2qLheuR/02 - PkOengz5IdA4/T6bQuzGD13Y4Cf.md +++ /dev/null @@ -1,23 +0,0 @@ -1HvqLWhrnD189nylKMuIvtAg1x3mD5ioq6HlMrM23ViEn2jj4B5AafAD4OXlm6DySy5CwADIVsnw16I54iXdnsZau5wW - -5AfnLsq3RbxQrTYwtbN1wb9lQHGtPmy0BqbPexZ6lryezmwSDNaXB9vN81yRACHEaY9D9QmiOimxg5WE5dOFmWm - -N7Q2R7hgDTy5OAlYMONaNGiWyOCjCEl6DzK2rLXCQdmSCH363N5ZBYA8wcriQhRicidS4rOgasOXXubLDaDeryjJHL5uVBDNPT5KcU1I42YeNWIuS3UdeDDSOhl1VkCzvYPOqbfEqEWnvgu0XkQW6dKjlWsb63WRxruILIXkEGNUgjuEpMxaB4iwZotJwoB2jBHPiRBRmx6hfm5SqKlFDpKAtmfWI0bKK5xSYoooWQeJorJGFle1LVWkJ1CcjRM - -q4YgGRzNh6IbIClTqvf3ibH62ecRBv4pWqiPtphMjeRY2vxqGCo6GHDuJVFxP4j1jpUBmOR4qUBuEKA03FVJ8jGVEaynIDb3jncgNKmDuBwI9mYsrHSP6AAvbAUMo5PDZK9kO4KYZwZUtwnn6jvHpxGtmt9kHDVEfhpjGMJAzqjRUGowkLUgkYBIAmgYXuXRsGZZ2qQrT86oRaAevDPz6fTh5LRuWm2d3X0JSfOjSCh1W9dXBBfUHdbZIFSV3fL0xGShVz - -OfVF3p0jvMriP7fmvKfXwWQFa9Men1xYxcgOTfyUr8Kxr07gFX9SadTEA8V9KyEESfez5GUgezv1FuZfMpc7HYoQ8FbSDK9S1dFlHnR7Jw2RwODbjJCH - -0bTn0jK3M8VOZkLuuR1bNlSUPNUOrcfJWWWgSbD0APt8Tvpkpu - -eXUMpnwIUI1yOrLtMMTqJ - -2F7aNHqbNNryN3kyLkJ7m1wyv5L3hTukKRBwFYWGEG4CIBpMdFkgC1crCrHe7LmwY2FdfcBSRUH9zkMqtzfsjA2OXuQ5DJnK5C9sv - -fR9kB9kCIZBJTfWTv0xykchBlxpQP7ri95vk1p4VO - -UNq027oVHwpiqCvyzvJdfhzl4lqCxcZbodYiOkHP0gCFXF - -bfJfFHwthV2Hlk - -3vHH2c0pT0gmwSBKvPyimP7OiijclKUZeARq diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/20 - amth5W9Tu5K8HEJMg/20 - amth5W9Tu5K8HEJMg.md b/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/20 - amth5W9Tu5K8HEJMg/20 - amth5W9Tu5K8HEJMg.md deleted file mode 100644 index efb5ab5..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/01 - 7zwZ0AudnHh02e94WYf/20 - amth5W9Tu5K8HEJMg/20 - amth5W9Tu5K8HEJMg.md +++ /dev/null @@ -1,8 +0,0 @@ -FVr1U3ybgTnl - -# iNVLuk2wcJwLsF2ySl - -- [x] ZLejh4R35kprt5KxJFqZYVdrTOKwCqkof[completed:: March 04, 2024] [percentdone:: 1.7229929706636726] -- [x] b8dRb6mykfxUWTRFg - gX3TYuygYxDE8ubqNy69ZBWfvfb3eo[percentdone:: 76.4761837646867] [completed:: March 06, 2024] [percentDone:: 25.822792605537614] -- [x] nLR000X60peUSOMSDPQlm1P6WeEFqSzIZjSQe1SgM24NoAxdqw6FCyaSk7CPjSlTEs6jFknibMawWZfNCbywBWomdn4SSoh4vxZQJOAf7NQb9bLcTUi2CQRwWCctpc0pDeYHT06sr8ngt4QfqwshUifywWuhy94L4gtlJifR2ectQaveYN5687PoiD7FAhmBRPnU1HGtcImXc9mVp4Ygm7I8Dj1fzJH[percentdone:: 12] [percentDone:: 51.33851846127544] [completedAt:: June 28, 2024] [completed:: June 28, 2024] diff --git a/data/01 - LedMwkkf19VFKTIEG/01 - LedMwkkf19VFKTIEG.md b/data/01 - LedMwkkf19VFKTIEG/01 - LedMwkkf19VFKTIEG.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/02 - V9zjvtllxT.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/02 - V9zjvtllxT.md deleted file mode 100644 index 27838a3..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/02 - V9zjvtllxT.md +++ /dev/null @@ -1,6 +0,0 @@ -# QGnJMWDx0cXgZ - -```folderv -target: "01 - creative/02 - drawings/excalidraw" -sort: create-new -``` diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/3LETX9KiCCKhq4.png b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/3LETX9KiCCKhq4.png deleted file mode 100644 index 6c549e5..0000000 Binary files a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/3LETX9KiCCKhq4.png and /dev/null differ diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/4l5LQIA9kj1q89TA.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/4l5LQIA9kj1q89TA.md deleted file mode 100644 index 874116e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/4l5LQIA9kj1q89TA.md +++ /dev/null @@ -1,24 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- - -tn⚠⚠ - -JG - -# rQIio3J - -```compressed-json -N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQ - -AswYKDXgB6MSgw4CxAHSp6AWzJJMMJTEZgaCANoBdcuihQAymHRg+oMPw18QudPg - -DWqgOb48Z7AC8+Rk5MTHIKbBgiACF0VFcvLkZcAGF6THp8BBAAYgAzfIKQAF8ioA - - -``` - -0y diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/6Z0f8NEIG0SgZtTxX.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/6Z0f8NEIG0SgZtTxX.md deleted file mode 100644 index b31c209..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/6Z0f8NEIG0SgZtTxX.md +++ /dev/null @@ -1,1294 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- - -3a⚠⚠ - -# c2xhez1LmwtW1 - -nr - -# q9yWXdx - -```compressed-json -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 -``` - -oR diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/CbIkruKA6YXCivqDby0G.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/CbIkruKA6YXCivqDby0G.md deleted file mode 100644 index fa3a49c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/CbIkruKA6YXCivqDby0G.md +++ /dev/null @@ -1,181881 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- - -vn⚠⚠ - -# ylAlXoP3uJXAw - -1j - -# i61rd5m - -```json -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "text": "000000", - "fontSize": 9.534052165508134, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "baseline": 8.917565206885163, - "id": "CAUXwDEC", - "type": "text", - "x": 460.91679515659325, - "y": 326.3457063418553, - "width": 39.56631648685874, - "height": 11.917565206885163, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "strokeSharpness": "sharp", - "seed": 67872, - "version": 1172, - "versionNonce": 32989421, - "updated": 1659982558532, - "isDeleted": false, - "groupIds": [], - "boundElements": [], - "link": null, - "locked": false, - "containerId": null, - "originalText": "000000", - "rawText": "000000" - }, - { - "text": "ffff", - "fontSize": 9.534052165508129, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "baseline": 8.917565206885163, - "id": "AUsT0OdV", - "type": "text", - "x": 479.5081968793352, - "y": 287.25609246327184, - "width": 19.068104331016258, - "height": 11.917565206885163, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "strokeSharpness": "sharp", - "seed": 17641, - "version": 1205, - "versionNonce": 1146957923, - "updated": 1659982558532, - "isDeleted": false, - "groupIds": [], - "boundElements": [], - "link": null, - "locked": false, - "containerId": null, - "originalText": "ffff", - "rawText": "ffff" - }, - { - "id": "HsHCmhTYORbybq7OBjBVC", - "type": "freedraw", - "x": -167.82455806617077, - "y": -100.03305697241643, - "width": 122.68988037109376, - "height": 123.56620788574219, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1380121293, - "version": 979, - "versionNonce": 439942403, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - -4.479161467359573, - 0 - ], - [ - -9.250505009411283, - -9.63995361328125 - ], - [ - -10.613705331308395, - -14.898101806640625 - ], - [ - -11.976953125009446, - -32.425201416015625 - ], - [ - -11.976953125009446, - -43.81781005859375 - ], - [ - -9.250505009411283, - -57.83953857421875 - ], - [ - -2.4344084563178416, - -71.86123657226562 - ], - [ - 13.242632604518649, - -90.26470947265625 - ], - [ - 27.556473343458027, - -97.27555847167969 - ], - [ - 44.596714726191635, - -99.02827453613281 - ], - [ - 62.31860374167772, - -98.15191650390625 - ], - [ - 79.35884512441133, - -89.38836669921875 - ], - [ - 97.76233430084598, - -63.974029541015625 - ], - [ - 102.53363037109376, - -42.06512451171875 - ], - [ - 102.53363037109376, - -21.0325927734375 - ], - [ - 97.08073413989743, - -2.629119873046875 - ], - [ - 76.6324444806171, - 19.27978515625 - ], - [ - 56.86575498228534, - 24.537933349609375 - ], - [ - 34.37256989655147, - 22.78521728515625 - ], - [ - 13.924280237271141, - 13.14532470703125 - ], - [ - -2.4344084563178416, - -3.505462646484375 - ], - [ - -17.429801884401837, - -30.6724853515625 - ], - [ - -20.15625, - -44.6942138671875 - ], - [ - -20.15625, - -55.210479736328125 - ], - [ - -18.111402045350392, - -63.974029541015625 - ], - [ - -12.658553285958003, - -71.86123657226562 - ], - [ - -7.887257215710232, - -76.24301147460938 - ], - [ - -2.4344084563178416, - -77.9957275390625 - ], - [ - 3.018487774878487, - -78.87210083007812 - ], - [ - 7.789783845126258, - -78.87210083007812 - ], - [ - 9.834584327971928, - -78.87210083007812 - ], - [ - 11.879432282621535, - -77.9957275390625 - ], - [ - 11.879432282621535, - -77.9957275390625 - ] - ], - "pressures": [ - 0.009765625, - 0.203125, - 0.26171875, - 0.5478515625, - 0.7724609375, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9384765625, - 0.7265625, - 0.5693359375, - 0.3974609375, - 0.265625, - 0.1767578125, - 0.138671875, - 0.0966796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.032470703125, - -77.9957275390625 - ] - }, - { - "id": "znf-io4prkU9Z2WGU8mqr", - "type": "freedraw", - "x": -182.97323098748734, - "y": -112.9281201002064, - "width": 160.37322998046875, - "height": 30.67242431640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 84139821, - "version": 803, - "versionNonce": 2141423789, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.2581787109375, - -2.6290283203125 - ], - [ - -6.134521484375, - -3.50543212890625 - ], - [ - -1.75274658203125, - -5.25811767578125 - ], - [ - 9.639892578125, - -6.13446044921875 - ], - [ - 28.91973876953125, - -6.13446044921875 - ], - [ - 63.09759521484375, - -5.25811767578125 - ], - [ - 84.13018798828125, - -2.6290283203125 - ], - [ - 103.40997314453125, - 1.75274658203125 - ], - [ - 120.060791015625, - 7.88720703125 - ], - [ - 132.32977294921875, - 14.021728515625 - ], - [ - 147.227783203125, - 21.03253173828125 - ], - [ - 154.23870849609375, - 24.5379638671875 - ], - [ - 154.23870849609375, - 24.5379638671875 - ] - ], - "pressures": [ - 0.1025390625, - 0.1884765625, - 0.2587890625, - 0.388671875, - 0.744140625, - 1, - 1, - 1, - 1, - 1, - 0.8154296875, - 0.3427734375, - 0.1669921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 154.23870849609375, - 24.5379638671875 - ] - }, - { - "id": "E2NCp1opqAlGYQuRytuYW", - "type": "freedraw", - "x": -170.7042490538936, - "y": -116.43355222911265, - "width": 40.3123779296875, - "height": 44.6942138671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 508944877, - "version": 806, - "versionNonce": 1689805987, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -1.752685546875 - ], - [ - -5.2581787109375, - -2.6290283203125 - ], - [ - -8.7635498046875, - -3.50543212890625 - ], - [ - -12.26898193359375, - -3.50543212890625 - ], - [ - -17.52716064453125, - -3.50543212890625 - ], - [ - -20.15618896484375, - -1.752685546875 - ], - [ - -21.908935546875, - 0 - ], - [ - -22.7852783203125, - 3.50543212890625 - ], - [ - -21.908935546875, - 7.88720703125 - ], - [ - -16.6507568359375, - 15.7744140625 - ], - [ - -11.39263916015625, - 21.0325927734375 - ], - [ - -6.13446044921875, - 26.290771484375 - ], - [ - 0, - 31.548828125 - ], - [ - 7.88720703125, - 37.683349609375 - ], - [ - 12.26898193359375, - 40.3123779296875 - ], - [ - 17.527099609375, - 41.18878173828125 - ], - [ - 17.527099609375, - 41.18878173828125 - ] - ], - "pressures": [ - 0.0849609375, - 0.5029296875, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.527099609375, - 41.18878173828125 - ] - }, - { - "id": "_-iAjkWscrAXTq0phDoaQ", - "type": "freedraw", - "x": -81.31594338983109, - "y": -112.0517773267689, - "width": 84.13018798828125, - "height": 36.80694580078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 465467203, - "version": 814, - "versionNonce": 753396493, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - -0.8763427734375 - ], - [ - 3.50543212890625, - -0.8763427734375 - ], - [ - 4.38177490234375, - 0 - ], - [ - 6.13446044921875, - 3.50543212890625 - ], - [ - 7.88720703125, - 7.0108642578125 - ], - [ - 7.88720703125, - 10.51629638671875 - ], - [ - 5.25811767578125, - 14.8980712890625 - ], - [ - 0.8763427734375, - 17.5272216796875 - ], - [ - -6.134521484375, - 20.15618896484375 - ], - [ - -14.021728515625, - 23.66162109375 - ], - [ - -25.414306640625, - 28.04339599609375 - ], - [ - -32.4251708984375, - 29.796142578125 - ], - [ - -38.5596923828125, - 31.548828125 - ], - [ - -42.94146728515625, - 33.30157470703125 - ], - [ - -46.4468994140625, - 34.17791748046875 - ], - [ - -52.58135986328125, - 35.0543212890625 - ], - [ - -61.34490966796875, - 35.93060302734375 - ], - [ - -65.7266845703125, - 35.93060302734375 - ], - [ - -68.35577392578125, - 35.93060302734375 - ], - [ - -70.10845947265625, - 35.93060302734375 - ], - [ - -70.98486328125, - 35.93060302734375 - ], - [ - -72.737548828125, - 35.93060302734375 - ], - [ - -74.49029541015625, - 35.0543212890625 - ], - [ - -75.36663818359375, - 34.17791748046875 - ], - [ - -76.24298095703125, - 34.17791748046875 - ], - [ - -75.36663818359375, - 34.17791748046875 - ], - [ - -75.36663818359375, - 33.30157470703125 - ], - [ - -74.49029541015625, - 33.30157470703125 - ], - [ - -73.6138916015625, - 33.30157470703125 - ], - [ - -73.6138916015625, - 33.30157470703125 - ] - ], - "pressures": [ - 0.01171875, - 0.265625, - 0.3427734375, - 0.677734375, - 0.880859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2421875, - 0.1572265625, - 0.119140625, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -73.6138916015625, - 33.30157470703125 - ] - }, - { - "id": "1u3pvAr3vCiO6l65VqLU3", - "type": "freedraw", - "x": -141.85671764853134, - "y": -123.50165567260524, - "width": 46.20783025568181, - "height": 78.87204256924713, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1027500355, - "version": 675, - "versionNonce": 1714018371, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -3.983431729403435 - ], - [ - -3.983431729403378, - -15.137051669034065 - ], - [ - -3.983431729403378, - -25.493968616832376 - ], - [ - -1.593350497159065, - -39.037669788707376 - ], - [ - 2.390081232244313, - -50.19128972833806 - ], - [ - 7.170188210227309, - -56.56477494673294 - ], - [ - 10.356944691051126, - -59.75153142755681 - ], - [ - 18.323808149857996, - -60.54823441938919 - ], - [ - 27.087346857244313, - -57.361477938565315 - ], - [ - 35.05426580255687, - -50.19128972833806 - ], - [ - 41.427723277698874, - -32.664156827059685 - ], - [ - 39.83437278053975, - -16.730402166193187 - ], - [ - 32.6641845703125, - -2.390025745738626 - ], - [ - 23.900645862926126, - 9.560269442471565 - ], - [ - 14.340376420454561, - 16.730457652698874 - ], - [ - 7.170188210227309, - 18.32380814985794 - ], - [ - -0.7966752485795041, - 5.576837713068187 - ], - [ - -3.983431729403378, - -7.170188210227252 - ], - [ - -4.780106977982939, - -20.713833895596565 - ], - [ - -3.983431729403378, - -38.240966796875 - ], - [ - -0.7966752485795041, - -45.41115500710225 - ], - [ - 2.390081232244313, - -50.19128972833806 - ], - [ - 4.780106977982996, - -51.78466796875 - ], - [ - 7.170188210227309, - -51.78466796875 - ], - [ - 8.763538707386374, - -51.78466796875 - ], - [ - 9.560269442471622, - -49.39458673650569 - ], - [ - 9.560269442471622, - -49.39458673650569 - ] - ], - "pressures": [ - 0.06640625, - 0.3564453125, - 0.8642578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.609375, - 0.26953125, - 0.1787109375, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.560269442471622, - -49.39458673650569 - ] - }, - { - "id": "KRFtE2-TwjGDTESWvg1l1", - "type": "freedraw", - "x": -180.09768444540634, - "y": -125.89168141834386, - "width": 16.730457652698817, - "height": 75.68528608842325, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 252410851, - "version": 671, - "versionNonce": 1278280045, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350851911, - -10.356944691051126 - ], - [ - 0, - -19.917214133522748 - ], - [ - 1.593350497159122, - -29.477455832741498 - ], - [ - 3.983431729403435, - -38.24102228338069 - ], - [ - 6.373457475142061, - -45.41121049360794 - ], - [ - 9.560213955965935, - -50.98802046342331 - ], - [ - 11.950295188210248, - -54.17474920099431 - ], - [ - 11.950295188210248, - -54.97145219282669 - ], - [ - 13.543645685369313, - -53.37807395241475 - ], - [ - 15.137051669034122, - -43.021129261363626 - ], - [ - 15.933726917613626, - -29.477455832741498 - ], - [ - 15.137051669034122, - -11.153619939630687 - ], - [ - 11.950295188210248, - 4.780106977982939 - ], - [ - 8.763594193892061, - 15.137051669034065 - ], - [ - 6.373457475142061, - 20.713833895596565 - ], - [ - 5.5767822265625, - 20.713833895596565 - ], - [ - 3.983431729403435, - 15.137051669034065 - ], - [ - 3.186756480823874, - 6.373457475142061 - ], - [ - 2.390025745738626, - -10.356944691051126 - ], - [ - 2.390025745738626, - -20.71388938210231 - ], - [ - 3.186756480823874, - -27.88407759232956 - ], - [ - 3.186756480823874, - -32.66421231356537 - ], - [ - 3.983431729403435, - -35.05426580255681 - ], - [ - 3.983431729403435, - -37.44431929154831 - ], - [ - 4.780162464488626, - -37.44431929154831 - ], - [ - 5.5767822265625, - -38.24102228338069 - ], - [ - 5.5767822265625, - -38.24102228338069 - ] - ], - "pressures": [ - 0.033203125, - 0.5234375, - 0.7626953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9169921875, - 0.708984375, - 0.3359375, - 0.2607421875, - 0.1767578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.5767822265625, - -38.24102228338069 - ] - }, - { - "id": "uqHySWBiR90FMG4h0H0qL", - "type": "freedraw", - "x": -129.9064224603211, - "y": -171.3028919119518, - "width": 31.070834073153378, - "height": 55.76812744140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 858846563, - "version": 663, - "versionNonce": 208394211, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.763538707386374, - 3.98345947265625 - ], - [ - -11.950295188210248, - 11.153647682883502 - ], - [ - -15.137051669034122, - 19.120511141690315 - ], - [ - -15.137051669034122, - 27.884077592329504 - ], - [ - -15.137051669034122, - 35.05426580255681 - ], - [ - -9.560213955965935, - 40.63104802911931 - ], - [ - -5.5767822265625, - 43.021129261363626 - ], - [ - -0.796675248579561, - 43.021129261363626 - ], - [ - 3.186756480823874, - 41.427778764204504 - ], - [ - 7.9669189453125, - 33.460859818892004 - ], - [ - 10.356944691051126, - 25.49399636008519 - ], - [ - 11.950350674715878, - 17.527132901278378 - ], - [ - 12.747025923295439, - 11.153647682883502 - ], - [ - 12.747025923295439, - 4.780134721235754 - ], - [ - 9.560269442471565, - -2.390053488991498 - ], - [ - 5.576837713068187, - -7.170160466974437 - ], - [ - 1.593405983664752, - -11.153619939630687 - ], - [ - -2.390025745738626, - -12.746998180042624 - ], - [ - -7.966863458806813, - -9.56024169921875 - ], - [ - -11.950295188210248, - -2.390053488991498 - ], - [ - -14.340376420454561, - 5.576809969815315 - ], - [ - -16.730402166193187, - 12.746998180042567 - ], - [ - -17.527077414772748, - 19.120511141690315 - ], - [ - -18.32380814985794, - 27.08740234375 - ], - [ - -18.32380814985794, - 31.070834073153378 - ], - [ - -16.730402166193187, - 34.25759055397725 - ], - [ - -13.543645685369313, - 36.64761629971588 - ], - [ - -10.356889204545439, - 37.44429154829544 - ], - [ - -10.356889204545439, - 37.44429154829544 - ] - ], - "pressures": [ - 0.0400390625, - 0.7109375, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.826171875, - 0.3447265625, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -10.356889204545439, - 37.44429154829544 - ] - }, - { - "id": "WjY3koPCkiIgVmDCmtWh2", - "type": "freedraw", - "x": -171.33409025151428, - "y": -168.9128106797075, - "width": 10.356889204545496, - "height": 35.850941051136374, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 157510029, - "version": 664, - "versionNonce": 583551949, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 0.7966752485795041 - ], - [ - -1.593405983664752, - 3.983431729403378 - ], - [ - -1.593405983664752, - 7.966863458806813 - ], - [ - -3.186811967329561, - 15.933726917613626 - ], - [ - -3.186811967329561, - 22.307239879261317 - ], - [ - -3.186811967329561, - 27.884022105823817 - ], - [ - -3.186811967329561, - 31.86750932173294 - ], - [ - -3.186811967329561, - 32.6641845703125 - ], - [ - -0.7967307350852479, - 31.86750932173294 - ], - [ - 1.593295010653435, - 30.274103338068187 - ], - [ - 4.780051491477252, - 25.49399636008519 - ], - [ - 5.5767822265625, - 22.307239879261317 - ], - [ - 6.373457475142061, - 19.917186390269876 - ], - [ - 6.373457475142061, - 17.527105158025563 - ], - [ - 6.373457475142061, - 13.543673428622128 - ], - [ - 6.373457475142061, - 11.153619939630687 - ], - [ - 6.373457475142061, - 7.966863458806813 - ], - [ - 5.5767822265625, - 6.373485218394876 - ], - [ - 4.780051491477252, - 3.983431729403378 - ], - [ - 3.186700994318187, - 0.7966752485795041 - ], - [ - 1.593295010653435, - -1.593378240411937 - ], - [ - 0.796619762073874, - -3.186756480823874 - ], - [ - 0, - -3.186756480823874 - ], - [ - -0.7967307350852479, - -3.186756480823874 - ], - [ - -1.593405983664752, - -3.186756480823874 - ], - [ - -2.39013671875, - -3.186756480823874 - ], - [ - -3.186811967329561, - -2.390081232244313 - ], - [ - -3.983431729403435, - 0 - ], - [ - -3.983431729403435, - 3.983431729403378 - ], - [ - -3.983431729403435, - 6.373485218394876 - ], - [ - -3.983431729403435, - 7.170188210227252 - ], - [ - -3.186811967329561, - 8.763566450639189 - ], - [ - -3.186811967329561, - 8.763566450639189 - ] - ], - "pressures": [ - 0.0322265625, - 0.552734375, - 0.6337890625, - 0.666015625, - 0.7666015625, - 0.8876953125, - 0.951171875, - 0.97265625, - 0.9833984375, - 0.98828125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.876953125, - 0.6806640625, - 0.56640625, - 0.248046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186811967329561, - 8.763566450639189 - ] - }, - { - "id": "tIHQaa-ufKxfP5yK0olKe", - "type": "freedraw", - "x": -140.26331166486654, - "y": -98.00765931251999, - "width": 9.560269442471565, - "height": 3.186700994318187, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1767615331, - "version": 646, - "versionNonce": 93119363, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - -0.7967307350852479, - 0.7966752485795041 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 0.7966752485795041, - 0 - ], - [ - 1.593350497159065, - -0.796675248579561 - ], - [ - 1.593350497159065, - -1.593295010653435 - ], - [ - 2.390025745738626, - -2.390025745738683 - ], - [ - 3.186700994318187, - -2.390025745738683 - ], - [ - 3.983431729403378, - -2.390025745738683 - ], - [ - 6.373457475142004, - -1.593295010653435 - ], - [ - 7.966863458806813, - -0.796675248579561 - ], - [ - 7.966863458806813, - 0 - ], - [ - 8.763538707386317, - 0 - ], - [ - 7.966863458806813, - 0 - ], - [ - 7.966863458806813, - 0 - ] - ], - "pressures": [ - 0.025390625, - 0.22265625, - 0.34765625, - 0.392578125, - 0.392578125, - 0.3994140625, - 0.3994140625, - 0.4033203125, - 0.4072265625, - 0.4091796875, - 0.4150390625, - 0.4189453125, - 0.419921875, - 0.421875, - 0.2392578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.966863458806813, - 0 - ] - }, - { - "id": "0NmJ-6cIvB8t4mp1yEtQX", - "type": "freedraw", - "x": -117.95607178560522, - "y": -110.7546297493098, - "width": 31.867509321732996, - "height": 71.70182661576706, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 768161475, - "version": 727, - "versionNonce": 281496109, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796675248579561, - 2.390025745738626 - ], - [ - -0.7967307350851911, - 2.390025745738626 - ], - [ - -3.983431729403378, - 2.390025745738626 - ], - [ - -7.170188210227252, - 2.390025745738626 - ], - [ - -11.950350674715878, - -1.593405983664752 - ], - [ - -13.543701171875, - -3.186756480823874 - ], - [ - -14.340376420454504, - -4.780162464488626 - ], - [ - -15.137107155539752, - -6.373512961647691 - ], - [ - -15.137107155539752, - -7.170188210227252 - ], - [ - -15.137107155539752, - -8.763594193892004 - ], - [ - -15.137107155539752, - -9.560269442471565 - ], - [ - -13.543701171875, - -10.356944691051126 - ], - [ - -11.15361993963063, - -11.153619939630687 - ], - [ - -9.560269442471565, - -11.153619939630687 - ], - [ - -7.9669189453125, - -11.153619939630687 - ], - [ - -6.373512961647691, - -10.356944691051126 - ], - [ - -4.780162464488626, - -9.560269442471565 - ], - [ - -3.983431729403378, - -8.763594193892004 - ], - [ - -2.390081232244313, - -8.763594193892004 - ], - [ - -1.593405983664752, - -8.763594193892004 - ], - [ - -0.7967307350851911, - -7.966863458806813 - ], - [ - 0.796675248579561, - -7.966863458806813 - ], - [ - 3.186700994318187, - -7.966863458806813 - ], - [ - 4.780106977982996, - -7.966863458806813 - ], - [ - 5.5767822265625, - -8.763594193892004 - ], - [ - 6.373457475142118, - -8.763594193892004 - ], - [ - 6.373457475142118, - -9.560269442471565 - ], - [ - 7.96686345880687, - -11.153619939630687 - ], - [ - 8.763538707386374, - -13.543701171875 - ], - [ - 8.763538707386374, - -15.137051669034065 - ], - [ - 9.560213955965878, - -15.137051669034065 - ], - [ - 10.356889204545496, - -15.137051669034065 - ], - [ - 11.153619939630744, - -15.137051669034065 - ], - [ - 11.950295188210248, - -15.137051669034065 - ], - [ - 12.746970436789752, - -15.137051669034065 - ], - [ - 13.54364568536937, - -14.340376420454504 - ], - [ - 14.340376420454618, - -13.543701171875 - ], - [ - 15.137051669034122, - -11.153619939630687 - ], - [ - 15.137051669034122, - -7.966863458806813 - ], - [ - 15.933726917613626, - -4.780162464488626 - ], - [ - 15.933726917613626, - -3.186756480823874 - ], - [ - 15.933726917613626, - -1.593405983664752 - ], - [ - 15.137051669034122, - -0.7966752485795041 - ], - [ - 13.54364568536937, - 0.796675248579561 - ], - [ - 11.950295188210248, - 0.796675248579561 - ], - [ - 10.356889204545496, - 1.593350497159122 - ], - [ - 8.763538707386374, - 2.390025745738626 - ], - [ - 7.96686345880687, - 2.390025745738626 - ], - [ - 6.373457475142118, - 3.983431729403435 - ], - [ - 6.373457475142118, - 4.780106977982996 - ], - [ - 6.373457475142118, - 6.373512961647748 - ], - [ - 6.373457475142118, - 7.966863458806813 - ], - [ - 6.373457475142118, - 11.950295188210248 - ], - [ - 6.373457475142118, - 13.543645685369313 - ], - [ - 7.170188210227252, - 15.137107155539809 - ], - [ - 8.763538707386374, - 17.527132901278435 - ], - [ - 11.153619939630744, - 21.510564630681813 - ], - [ - 13.54364568536937, - 26.29067160866481 - ], - [ - 15.137051669034122, - 30.274103338068187 - ], - [ - 15.137051669034122, - 33.46085981889206 - ], - [ - 15.933726917613626, - 38.240966796875 - ], - [ - 16.730402166193244, - 41.427723277698874 - ], - [ - 16.730402166193244, - 44.61447975852275 - ], - [ - 16.730402166193244, - 47.00456099076706 - ], - [ - 15.933726917613626, - 49.39458673650569 - ], - [ - 14.340376420454618, - 52.58134321732956 - ], - [ - 11.950295188210248, - 54.97147993607956 - ], - [ - 9.560213955965878, - 56.564774946732996 - ], - [ - 6.373457475142118, - 56.564774946732996 - ], - [ - 0.796675248579561, - 56.564774946732996 - ], - [ - -2.390081232244313, - 56.564774946732996 - ], - [ - -4.780162464488626, - 55.768099698153435 - ], - [ - -6.373512961647691, - 54.97147993607956 - ], - [ - -9.560269442471565, - 53.37801846590912 - ], - [ - -11.15361993963063, - 51.78466796875 - ], - [ - -11.950350674715878, - 50.19126198508525 - ], - [ - -12.747025923295439, - 48.597911487926126 - ], - [ - -12.747025923295439, - 46.20783025568181 - ], - [ - -11.950350674715878, - 42.224398526278435 - ], - [ - -9.560269442471565, - 39.03769753196025 - ], - [ - -7.9669189453125, - 35.850941051136374 - ], - [ - -7.170188210227252, - 35.05426580255681 - ], - [ - -3.186756480823817, - 18.323808149857996 - ], - [ - -3.186756480823817, - 16.730402166193187 - ], - [ - -3.983431729403378, - 11.950295188210248 - ], - [ - -3.983431729403378, - 11.153675426136374 - ], - [ - -3.983431729403378, - 9.560213955965935 - ], - [ - -4.780162464488626, - 7.170188210227309 - ], - [ - -4.780162464488626, - 4.780106977982996 - ], - [ - -4.780162464488626, - 3.186756480823874 - ], - [ - -4.780162464488626, - 1.593350497159122 - ], - [ - -4.780162464488626, - 0.796675248579561 - ], - [ - -4.780162464488626, - 0 - ], - [ - -4.780162464488626, - -1.593405983664752 - ], - [ - -4.780162464488626, - -2.390081232244313 - ], - [ - -3.186756480823817, - -0.7966752485795041 - ], - [ - -3.186756480823817, - 0.796675248579561 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.029296875, - 0.390625, - 0.5234375, - 0.71875, - 0.849609375, - 0.9580078125, - 0.97265625, - 0.98828125, - 0.98828125, - 0.990234375, - 0.990234375, - 0.994140625, - 1, - 0.994140625, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2890625, - 0.14453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186756480823817, - 0.796675248579561 - ] - }, - { - "id": "2k6F91j5tbtpaTNLxGQ-C", - "type": "freedraw", - "x": -175.31752198091772, - "y": -168.116135431128, - "width": 18.32380814985794, - "height": 22.307239879261374, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1333898733, - "version": 659, - "versionNonce": 969636643, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796619762073874, - 0 - ], - [ - -0.7967307350851911, - 1.593378240411937 - ], - [ - -2.39013671875, - 3.186756480823874 - ], - [ - -3.186811967329504, - 3.983431729403435 - ], - [ - -3.983431729403378, - 3.983431729403435 - ], - [ - -4.780162464488626, - 3.983431729403435 - ], - [ - -5.576893199573817, - 3.983431729403435 - ], - [ - -5.576893199573817, - 3.186756480823874 - ], - [ - -5.576893199573817, - 1.593378240411937 - ], - [ - -3.983431729403378, - -1.5933782404118801 - ], - [ - -3.983431729403378, - -2.390053488991441 - ], - [ - -3.186811967329504, - -2.390053488991441 - ], - [ - -3.983431729403378, - -2.390053488991441 - ], - [ - -6.373568448153378, - -2.390053488991441 - ], - [ - -8.763594193892004, - -1.5933782404118801 - ], - [ - -11.153675426136317, - 0.7967029918324329 - ], - [ - -13.54375665838063, - 4.780134721235811 - ], - [ - -15.933782404119313, - 10.356944691051183 - ], - [ - -16.730513139204504, - 13.543701171875 - ], - [ - -17.527188387784065, - 16.73042990944606 - ], - [ - -17.527188387784065, - 19.120511141690372 - ], - [ - -16.730513139204504, - 19.917186390269933 - ], - [ - -15.137107155539752, - 19.917186390269933 - ], - [ - -12.747081409801126, - 19.917186390269933 - ], - [ - -10.357000177556813, - 18.323808149857996 - ], - [ - -6.373568448153378, - 14.340376420454561 - ], - [ - -4.780162464488626, - 11.153619939630687 - ], - [ - -3.983431729403378, - 7.966891202059685 - ], - [ - -3.983431729403378, - 6.373512961647748 - ], - [ - -3.186811967329504, - 5.576809969815372 - ], - [ - -2.39013671875, - 5.576809969815372 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.033203125, - 0.4287109375, - 0.6220703125, - 0.7587890625, - 0.853515625, - 0.8935546875, - 0.9619140625, - 0.9794921875, - 0.9775390625, - 0.9755859375, - 0.970703125, - 0.9619140625, - 0.9580078125, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9423828125, - 0.8720703125, - 0.8447265625, - 0.8369140625, - 0.83203125, - 0.830078125, - 0.83203125, - 0.7783203125, - 0.4599609375, - 0.2734375, - 0.142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.39013671875, - 5.576809969815372 - ] - }, - { - "id": "AVPyxxpl7rCmzn-c3KkGM", - "type": "freedraw", - "x": -106.00577659739497, - "y": -168.9128106797075, - "width": 22.307239879261374, - "height": 31.86750932173294, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 918258925, - "version": 935, - "versionNonce": 924286093, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0.7966752485795041 - ], - [ - 0.7966752485795041, - 0.7966752485795041 - ], - [ - 2.39008123224437, - 0.7966752485795041 - ], - [ - 4.780106977982996, - 0 - ], - [ - 5.5767822265625, - -1.593378240411937 - ], - [ - 6.373512961647748, - -4.780134721235811 - ], - [ - 6.373512961647748, - -7.170188210227309 - ], - [ - 6.373512961647748, - -9.56024169921875 - ], - [ - 6.373512961647748, - -12.746998180042624 - ], - [ - 6.373512961647748, - -15.137079412286937 - ], - [ - 6.373512961647748, - -16.73042990944606 - ], - [ - 6.373512961647748, - -17.527132901278435 - ], - [ - 7.96686345880687, - -17.527132901278435 - ], - [ - 9.560269442471622, - -17.527132901278435 - ], - [ - 11.15361993963063, - -15.137079412286937 - ], - [ - 14.340376420454504, - -11.153619939630687 - ], - [ - 17.527132901278378, - -3.983431729403435 - ], - [ - 19.917158647017004, - 0 - ], - [ - 20.713889382102252, - 3.983431729403378 - ], - [ - 21.51056463068187, - 7.170188210227252 - ], - [ - 21.51056463068187, - 11.153619939630687 - ], - [ - 19.917158647017004, - 13.543673428622128 - ], - [ - 17.527132901278378, - 14.340376420454504 - ], - [ - 14.340376420454504, - 14.340376420454504 - ], - [ - 11.15361993963063, - 14.340376420454504 - ], - [ - 6.373512961647748, - 12.746998180042567 - ], - [ - 4.780106977982996, - 11.153619939630687 - ], - [ - 3.186756480823874, - 10.356916947798254 - ], - [ - 3.186756480823874, - 9.56024169921875 - ], - [ - 1.593350497159122, - 8.763566450639189 - ], - [ - 1.593350497159122, - 7.170188210227252 - ], - [ - 0.7966752485795041, - 6.373485218394876 - ], - [ - 0.7966752485795041, - 5.576809969815315 - ], - [ - 0.7966752485795041, - 4.780106977982939 - ], - [ - 0.7966752485795041, - 3.186728737571002 - ], - [ - 0.7966752485795041, - 1.593378240411937 - ], - [ - 0.7966752485795041, - 0 - ], - [ - 0, - -0.796702991832376 - ], - [ - 0.7966752485795041, - -0.796702991832376 - ], - [ - 2.39008123224437, - 0 - ], - [ - 4.780106977982996, - 2.390053488991441 - ], - [ - 5.5767822265625, - 3.983431729403378 - ], - [ - 6.373512961647748, - 3.983431729403378 - ], - [ - 6.373512961647748, - 3.186728737571002 - ], - [ - 5.5767822265625, - 0.7966752485795041 - ], - [ - 4.780106977982996, - -1.593378240411937 - ], - [ - 4.780106977982996, - -3.186756480823874 - ], - [ - 5.5767822265625, - -1.593378240411937 - ], - [ - 7.170188210227252, - 1.593378240411937 - ], - [ - 7.96686345880687, - 3.186728737571002 - ], - [ - 7.170188210227252, - 1.593378240411937 - ], - [ - 6.373512961647748, - 1.593378240411937 - ], - [ - 7.96686345880687, - 3.186728737571002 - ], - [ - 7.96686345880687, - 3.983431729403378 - ], - [ - 8.763538707386374, - 3.983431729403378 - ], - [ - 8.763538707386374, - 4.780106977982939 - ], - [ - 6.373512961647748, - 3.186728737571002 - ], - [ - 4.780106977982996, - 1.593378240411937 - ], - [ - 3.983431729403378, - 0.7966752485795041 - ], - [ - 3.983431729403378, - 1.593378240411937 - ], - [ - 4.780106977982996, - 3.186728737571002 - ], - [ - 5.5767822265625, - 3.983431729403378 - ], - [ - 4.780106977982996, - 3.983431729403378 - ], - [ - 3.186756480823874, - 3.186728737571002 - ], - [ - 4.780106977982996, - 4.780106977982939 - ], - [ - 5.5767822265625, - 5.576809969815315 - ], - [ - 5.5767822265625, - 6.373485218394876 - ], - [ - 5.5767822265625, - 7.170188210227252 - ], - [ - 5.5767822265625, - 6.373485218394876 - ], - [ - 3.186756480823874, - 4.780106977982939 - ], - [ - 0.7966752485795041, - 2.390053488991441 - ], - [ - 0, - 1.593378240411937 - ], - [ - 1.593350497159122, - 2.390053488991441 - ], - [ - 3.983431729403378, - 6.373485218394876 - ], - [ - 6.373512961647748, - 8.763566450639189 - ], - [ - 7.96686345880687, - 11.153619939630687 - ], - [ - 8.763538707386374, - 11.950295188210191 - ], - [ - 8.763538707386374, - 11.153619939630687 - ], - [ - 8.763538707386374, - 8.763566450639189 - ], - [ - 7.96686345880687, - 7.170188210227252 - ], - [ - 7.170188210227252, - 6.373485218394876 - ], - [ - 7.170188210227252, - 5.576809969815315 - ], - [ - 7.96686345880687, - 6.373485218394876 - ], - [ - 11.950295188210248, - 8.763566450639189 - ], - [ - 12.746970436789752, - 8.763566450639189 - ], - [ - 11.15361993963063, - 7.170188210227252 - ], - [ - 9.560269442471622, - 5.576809969815315 - ], - [ - 7.96686345880687, - 3.186728737571002 - ], - [ - 7.170188210227252, - 1.593378240411937 - ], - [ - 7.170188210227252, - 0.7966752485795041 - ], - [ - 7.96686345880687, - 2.390053488991441 - ], - [ - 11.15361993963063, - 6.373485218394876 - ], - [ - 13.543701171875, - 9.56024169921875 - ], - [ - 14.340376420454504, - 10.356916947798254 - ], - [ - 13.543701171875, - 8.763566450639189 - ], - [ - 10.356944691051126, - 4.780106977982939 - ], - [ - 9.560269442471622, - 2.390053488991441 - ], - [ - 8.763538707386374, - 1.593378240411937 - ], - [ - 8.763538707386374, - 2.390053488991441 - ], - [ - 10.356944691051126, - 3.983431729403378 - ], - [ - 12.746970436789752, - 6.373485218394876 - ], - [ - 13.543701171875, - 7.966863458806813 - ], - [ - 13.543701171875, - 7.170188210227252 - ], - [ - 11.15361993963063, - 3.186728737571002 - ], - [ - 9.560269442471622, - -0.796702991832376 - ], - [ - 7.96686345880687, - -3.983431729403435 - ], - [ - 7.96686345880687, - -4.780134721235811 - ], - [ - 7.96686345880687, - -3.983431729403435 - ], - [ - 9.560269442471622, - -1.593378240411937 - ], - [ - 9.560269442471622, - 0 - ], - [ - 10.356944691051126, - 0 - ], - [ - 10.356944691051126, - -2.390081232244313 - ], - [ - 10.356944691051126, - -5.576809969815372 - ], - [ - 10.356944691051126, - -7.170188210227309 - ], - [ - 11.15361993963063, - -3.983431729403435 - ], - [ - 11.950295188210248, - 0 - ], - [ - 13.543701171875, - 2.390053488991441 - ], - [ - 13.543701171875, - 3.186728737571002 - ], - [ - 8.763538707386374, - -13.543701171875 - ], - [ - 9.560269442471622, - -12.746998180042624 - ], - [ - 10.356944691051126, - -9.56024169921875 - ], - [ - 11.15361993963063, - -6.373512961647748 - ], - [ - 11.950295188210248, - -3.186756480823874 - ], - [ - 12.746970436789752, - -0.796702991832376 - ], - [ - 12.746970436789752, - -1.593378240411937 - ], - [ - 11.950295188210248, - -4.780134721235811 - ], - [ - 11.15361993963063, - -8.763566450639246 - ], - [ - 10.356944691051126, - -14.340376420454561 - ], - [ - 10.356944691051126, - -15.137079412286937 - ], - [ - 10.356944691051126, - -11.950322931463063 - ], - [ - 11.950295188210248, - -6.373512961647748 - ], - [ - 12.746970436789752, - -5.576809969815372 - ], - [ - 12.746970436789752, - -4.780134721235811 - ], - [ - 12.746970436789752, - -7.170188210227309 - ], - [ - 12.746970436789752, - -10.356944691051126 - ], - [ - 11.950295188210248, - -12.746998180042624 - ], - [ - 11.950295188210248, - -11.950322931463063 - ], - [ - 12.746970436789752, - -8.763566450639246 - ], - [ - 13.543701171875, - -4.780134721235811 - ], - [ - 13.543701171875, - -6.373512961647748 - ], - [ - 11.950295188210248, - -10.356944691051126 - ], - [ - 11.950295188210248, - -11.950322931463063 - ], - [ - 11.15361993963063, - -12.746998180042624 - ], - [ - 11.15361993963063, - -13.543701171875 - ], - [ - 11.15361993963063, - -7.966891202059685 - ], - [ - 12.746970436789752, - -3.186756480823874 - ], - [ - 13.543701171875, - 1.593378240411937 - ], - [ - 13.543701171875, - 3.983431729403378 - ], - [ - 14.340376420454504, - 4.780106977982939 - ], - [ - 12.746970436789752, - 1.593378240411937 - ], - [ - 11.950295188210248, - -3.186756480823874 - ], - [ - 11.15361993963063, - -9.56024169921875 - ], - [ - 11.15361993963063, - -11.153619939630687 - ], - [ - 11.15361993963063, - -9.56024169921875 - ], - [ - 11.15361993963063, - -5.576809969815372 - ], - [ - 11.950295188210248, - -1.593378240411937 - ], - [ - 11.950295188210248, - -3.186756480823874 - ], - [ - 11.950295188210248, - -7.170188210227309 - ], - [ - 11.15361993963063, - -11.153619939630687 - ], - [ - 10.356944691051126, - -14.340376420454561 - ], - [ - 10.356944691051126, - -15.137079412286937 - ], - [ - 11.15361993963063, - -12.746998180042624 - ], - [ - 11.950295188210248, - -9.56024169921875 - ], - [ - 12.746970436789752, - -6.373512961647748 - ], - [ - 12.746970436789752, - -2.390081232244313 - ], - [ - 12.746970436789752, - -1.593378240411937 - ], - [ - 12.746970436789752, - -0.796702991832376 - ], - [ - 12.746970436789752, - -1.593378240411937 - ], - [ - 11.950295188210248, - -3.983431729403435 - ], - [ - 10.356944691051126, - -9.56024169921875 - ], - [ - 9.560269442471622, - -13.543701171875 - ], - [ - 9.560269442471622, - -15.137079412286937 - ], - [ - 9.560269442471622, - -15.933754660866498 - ], - [ - 9.560269442471622, - -14.340376420454561 - ], - [ - 10.356944691051126, - -12.746998180042624 - ], - [ - 11.15361993963063, - -11.153619939630687 - ], - [ - 11.15361993963063, - -8.763566450639246 - ], - [ - 11.15361993963063, - -7.170188210227309 - ], - [ - 11.15361993963063, - -6.373512961647748 - ], - [ - 11.15361993963063, - -8.763566450639246 - ], - [ - 11.15361993963063, - -12.746998180042624 - ], - [ - 10.356944691051126, - -15.933754660866498 - ], - [ - 10.356944691051126, - -16.73042990944606 - ], - [ - 11.15361993963063, - -14.340376420454561 - ], - [ - 11.950295188210248, - -11.153619939630687 - ], - [ - 12.746970436789752, - -8.763566450639246 - ], - [ - 12.746970436789752, - -7.966891202059685 - ], - [ - 12.746970436789752, - -9.56024169921875 - ], - [ - 11.950295188210248, - -12.746998180042624 - ], - [ - 11.15361993963063, - -14.340376420454561 - ], - [ - 11.15361993963063, - -13.543701171875 - ], - [ - 11.15361993963063, - -10.356944691051126 - ], - [ - 11.950295188210248, - -4.780134721235811 - ], - [ - 11.950295188210248, - -0.796702991832376 - ], - [ - 11.950295188210248, - 3.186728737571002 - ], - [ - 11.950295188210248, - 7.170188210227252 - ], - [ - 11.950295188210248, - 9.56024169921875 - ], - [ - 11.15361993963063, - 8.763566450639189 - ], - [ - 10.356944691051126, - 5.576809969815315 - ], - [ - 8.763538707386374, - 0.7966752485795041 - ], - [ - 8.763538707386374, - -0.796702991832376 - ], - [ - 8.763538707386374, - -1.593378240411937 - ], - [ - 11.15361993963063, - 1.593378240411937 - ], - [ - 13.543701171875, - 7.966863458806813 - ], - [ - 14.340376420454504, - 11.153619939630687 - ], - [ - 15.137051669034122, - 11.950295188210191 - ], - [ - 15.137051669034122, - 10.356916947798254 - ], - [ - 14.340376420454504, - 6.373485218394876 - ], - [ - 13.543701171875, - 3.983431729403378 - ], - [ - 13.543701171875, - 3.186728737571002 - ], - [ - 13.543701171875, - 2.390053488991441 - ], - [ - 13.543701171875, - 4.780106977982939 - ], - [ - 15.137051669034122, - 9.56024169921875 - ], - [ - 15.933726917613626, - 11.153619939630687 - ], - [ - 15.933726917613626, - 10.356916947798254 - ], - [ - 15.933726917613626, - 7.170188210227252 - ], - [ - 15.137051669034122, - 0.7966752485795041 - ], - [ - 14.340376420454504, - -3.186756480823874 - ], - [ - 14.340376420454504, - -4.780134721235811 - ], - [ - 14.340376420454504, - -5.576809969815372 - ], - [ - 14.340376420454504, - -4.780134721235811 - ], - [ - 15.933726917613626, - -1.593378240411937 - ], - [ - 16.73040216619313, - 1.593378240411937 - ], - [ - 17.527132901278378, - 5.576809969815315 - ], - [ - 17.527132901278378, - 7.170188210227252 - ], - [ - 17.527132901278378, - 7.966863458806813 - ], - [ - 17.527132901278378, - 7.170188210227252 - ], - [ - 17.527132901278378, - 4.780106977982939 - ], - [ - 16.73040216619313, - 1.593378240411937 - ], - [ - 16.73040216619313, - -2.390081232244313 - ], - [ - 16.73040216619313, - -3.186756480823874 - ], - [ - 16.73040216619313, - -1.593378240411937 - ], - [ - 16.73040216619313, - 1.593378240411937 - ], - [ - 16.73040216619313, - 3.983431729403378 - ], - [ - 16.73040216619313, - 4.780106977982939 - ], - [ - 16.73040216619313, - 5.576809969815315 - ], - [ - 16.73040216619313, - 6.373485218394876 - ], - [ - 15.933726917613626, - 7.170188210227252 - ], - [ - 14.340376420454504, - 8.763566450639189 - ], - [ - 12.746970436789752, - 9.56024169921875 - ], - [ - 11.950295188210248, - 10.356916947798254 - ], - [ - 11.15361993963063, - 10.356916947798254 - ], - [ - 10.356944691051126, - 10.356916947798254 - ], - [ - 9.560269442471622, - 10.356916947798254 - ], - [ - 8.763538707386374, - 10.356916947798254 - ], - [ - 7.96686345880687, - 10.356916947798254 - ], - [ - 7.170188210227252, - 9.56024169921875 - ], - [ - 7.170188210227252, - 8.763566450639189 - ], - [ - 6.373512961647748, - 7.170188210227252 - ], - [ - 6.373512961647748, - 6.373485218394876 - ], - [ - 6.373512961647748, - 5.576809969815315 - ], - [ - 6.373512961647748, - 4.780106977982939 - ], - [ - 7.96686345880687, - 5.576809969815315 - ], - [ - 11.15361993963063, - 7.170188210227252 - ], - [ - 11.950295188210248, - 7.966863458806813 - ], - [ - 13.543701171875, - 9.56024169921875 - ], - [ - 14.340376420454504, - 9.56024169921875 - ], - [ - 17.527132901278378, - 10.356916947798254 - ], - [ - 18.323808149857996, - 10.356916947798254 - ], - [ - 18.323808149857996, - 9.56024169921875 - ], - [ - 15.933726917613626, - 5.576809969815315 - ], - [ - 15.137051669034122, - 4.780106977982939 - ], - [ - 14.340376420454504, - 3.983431729403378 - ], - [ - 14.340376420454504, - 5.576809969815315 - ], - [ - 13.543701171875, - 7.966863458806813 - ], - [ - 13.543701171875, - 9.56024169921875 - ], - [ - 13.543701171875, - 11.153619939630687 - ], - [ - 12.746970436789752, - 11.153619939630687 - ], - [ - 11.950295188210248, - 10.356916947798254 - ], - [ - 11.950295188210248, - 8.763566450639189 - ], - [ - 11.950295188210248, - 7.966863458806813 - ], - [ - 11.950295188210248, - 6.373485218394876 - ], - [ - 11.950295188210248, - 5.576809969815315 - ], - [ - 11.950295188210248, - 3.983431729403378 - ], - [ - 11.950295188210248, - 3.186728737571002 - ], - [ - 11.950295188210248, - 1.593378240411937 - ], - [ - 11.950295188210248, - 0 - ], - [ - 11.15361993963063, - -1.593378240411937 - ], - [ - 10.356944691051126, - -3.186756480823874 - ], - [ - 10.356944691051126, - -4.780134721235811 - ], - [ - 9.560269442471622, - -6.373512961647748 - ], - [ - 9.560269442471622, - -7.170188210227309 - ], - [ - 9.560269442471622, - -8.763566450639246 - ], - [ - 9.560269442471622, - -5.576809969815372 - ], - [ - 9.560269442471622, - -2.390081232244313 - ], - [ - 9.560269442471622, - 0 - ], - [ - 9.560269442471622, - -1.593378240411937 - ], - [ - 9.560269442471622, - -4.780134721235811 - ], - [ - 9.560269442471622, - -7.170188210227309 - ], - [ - 9.560269442471622, - -8.763566450639246 - ], - [ - 9.560269442471622, - -9.56024169921875 - ], - [ - 9.560269442471622, - -10.356944691051126 - ], - [ - 9.560269442471622, - -8.763566450639246 - ], - [ - 8.763538707386374, - -3.983431729403435 - ], - [ - 7.96686345880687, - 2.390053488991441 - ], - [ - 7.96686345880687, - 3.186728737571002 - ], - [ - 7.170188210227252, - 3.186728737571002 - ], - [ - 7.170188210227252, - 0 - ], - [ - 7.170188210227252, - -7.170188210227309 - ], - [ - 8.763538707386374, - -11.950322931463063 - ], - [ - 8.763538707386374, - -13.543701171875 - ], - [ - 8.763538707386374, - -10.356944691051126 - ], - [ - 8.763538707386374, - -3.983431729403435 - ], - [ - 8.763538707386374, - 0 - ], - [ - 8.763538707386374, - 1.593378240411937 - ], - [ - 7.96686345880687, - 2.390053488991441 - ], - [ - 7.96686345880687, - 3.186728737571002 - ], - [ - 7.96686345880687, - 3.983431729403378 - ], - [ - 7.96686345880687, - 4.780106977982939 - ], - [ - 7.96686345880687, - 4.780106977982939 - ] - ], - "pressures": [ - 0.0234375, - 0.5869140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2509765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.96686345880687, - 4.780106977982939 - ] - }, - { - "id": "VCcQumOXLVfz5d-VZ6pUj", - "type": "freedraw", - "x": 188.88797862229745, - "y": 194.4752186395759, - "width": 82.05877130681813, - "height": 18.323808149857996, - "angle": 0.134023247636871, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1583374221, - "version": 620, - "versionNonce": 55273027, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983431729403378, - 5.576837713068244 - ], - [ - 12.746970436789752, - 10.356944691051126 - ], - [ - 15.933726917613626, - 11.950295188210248 - ], - [ - 22.307239879261374, - 14.340376420454618 - ], - [ - 30.27410333806813, - 16.730402166193244 - ], - [ - 35.054210316051126, - 17.527188387784122 - ], - [ - 39.83437278053975, - 18.323808149857996 - ], - [ - 45.41115500710225, - 18.323808149857996 - ], - [ - 51.78466796875, - 18.323808149857996 - ], - [ - 62.141612659801126, - 18.323808149857996 - ], - [ - 67.71839488636363, - 18.323808149857996 - ], - [ - 70.9051513671875, - 17.527188387784122 - ], - [ - 74.09190784801137, - 15.137051669034122 - ], - [ - 77.27866432883525, - 12.746970436789866 - ], - [ - 80.46542080965912, - 7.96686345880687 - ], - [ - 81.26209605823863, - 7.170188210227366 - ], - [ - 82.05877130681813, - 5.576837713068244 - ], - [ - 82.05877130681813, - 4.780106977982996 - ], - [ - 81.26209605823863, - 3.186756480823874 - ], - [ - 81.26209605823863, - 3.186756480823874 - ] - ], - "pressures": [ - 0.017578125, - 0.5439453125, - 0.826171875, - 0.884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9130859375, - 0.7646484375, - 0.46484375, - 0.306640625, - 0.171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 81.26209605823863, - 3.186756480823874 - ] - }, - { - "id": "iDx3O5-shwBSjwpHD4Uai", - "type": "freedraw", - "x": 287.1194434227882, - "y": 179.51993848131838, - "width": 53.37801846590901, - "height": 39.03764204545462, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1602577709, - "version": 591, - "versionNonce": 1944641549, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - -0.7966752485795041, - -0.7967307350852479 - ], - [ - 0.7966752485796178, - -2.390025745738626 - ], - [ - 2.39008123224437, - -3.186756480823874 - ], - [ - 3.9834317294034918, - -3.186756480823874 - ], - [ - 7.170188210227366, - -3.186756480823874 - ], - [ - 9.560213955965992, - -3.186756480823874 - ], - [ - 12.747025923295496, - -1.593405983664752 - ], - [ - 14.340376420454618, - 0 - ], - [ - 15.137051669034122, - 1.593405983664752 - ], - [ - 15.933726917613626, - 3.186700994318244 - ], - [ - 13.543701171875, - 7.96686345880687 - ], - [ - 8.763538707386374, - 12.746970436789752 - ], - [ - 2.39008123224437, - 16.730402166193244 - ], - [ - -4.780106977982882, - 20.713833895596622 - ], - [ - -11.15361993963063, - 24.697265625 - ], - [ - -22.307239879261374, - 31.070778586647748 - ], - [ - -27.884077592329504, - 34.25753506747162 - ], - [ - -32.6641845703125, - 35.850885564630744 - ], - [ - -35.054265802556756, - 35.850885564630744 - ], - [ - -37.44429154829538, - 35.850885564630744 - ], - [ - -36.64761629971588, - 35.850885564630744 - ], - [ - -35.054265802556756, - 34.25753506747162 - ], - [ - -33.460859818892004, - 33.46091530539775 - ], - [ - -33.460859818892004, - 33.46091530539775 - ] - ], - "pressures": [ - 0.05078125, - 0.3056640625, - 0.4521484375, - 0.826171875, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3544921875, - 0.1845703125, - 0.1005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -33.460859818892004, - 33.46091530539775 - ] - }, - { - "id": "zPCf7PSfKHUAHBqVdUU0Q", - "type": "freedraw", - "x": 218.60431780133933, - "y": 172.34975027109112, - "width": 19.917158647017004, - "height": 29.477483575994256, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1087063373, - "version": 589, - "versionNonce": 426160717, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0.7967307350852479 - ], - [ - -2.390025745738626, - 3.186700994318244 - ], - [ - -3.983431729403378, - 4.780162464488626 - ], - [ - -7.170188210227195, - 6.373457475142004 - ], - [ - -8.763538707386317, - 7.170188210227252 - ], - [ - -9.560213955965878, - 6.373457475142004 - ], - [ - -9.560213955965878, - 3.983431729403378 - ], - [ - -10.35694469105107, - 1.593350497159122 - ], - [ - -10.35694469105107, - -2.390081232244256 - ], - [ - -10.35694469105107, - -4.780162464488626 - ], - [ - -11.15361993963063, - -7.170188210227252 - ], - [ - -11.15361993963063, - -8.763594193892004 - ], - [ - -12.746970436789695, - -8.763594193892004 - ], - [ - -14.340376420454504, - -7.9669189453125 - ], - [ - -16.73040216619313, - -5.57683771306813 - ], - [ - -19.120483398437443, - 0 - ], - [ - -19.120483398437443, - 5.5767822265625 - ], - [ - -19.917158647017004, - 11.153619939630744 - ], - [ - -19.917158647017004, - 16.730457652698874 - ], - [ - -19.120483398437443, - 19.1204833984375 - ], - [ - -17.527132901278378, - 20.713889382102252 - ], - [ - -15.137051669034008, - 20.713889382102252 - ], - [ - -11.950295188210191, - 20.713889382102252 - ], - [ - -9.560213955965878, - 19.917158647017004 - ], - [ - -5.576782226562443, - 15.933726917613626 - ], - [ - -3.983431729403378, - 13.54364568536937 - ], - [ - -3.1867564808237603, - 11.153619939630744 - ], - [ - -3.1867564808237603, - 7.96686345880687 - ], - [ - -3.1867564808237603, - 5.5767822265625 - ], - [ - -4.780106977982882, - 3.186700994318244 - ], - [ - -4.780106977982882, - 3.983431729403378 - ], - [ - -4.780106977982882, - 4.780162464488626 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0341796875, - 0.4931640625, - 0.6513671875, - 0.8388671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.1513671875, - 0.0234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.780106977982882, - 4.780162464488626 - ] - }, - { - "id": "BZMbiXdtf7cIfrMuku4-2", - "type": "freedraw", - "x": 267.2022847757712, - "y": 173.94310076825025, - "width": 14.340320933948874, - "height": 25.493996360085248, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1096145933, - "version": 574, - "versionNonce": 458106115, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 7.170243696732882 - ], - [ - 1.593350497159122, - 10.356944691051126 - ], - [ - 3.18670099431813, - 12.746970436789752 - ], - [ - 3.983431729403378, - 13.543701171875 - ], - [ - 7.96686345880687, - 14.340376420454504 - ], - [ - 8.763538707386374, - 14.340376420454504 - ], - [ - 11.950295188210248, - 14.340376420454504 - ], - [ - 13.54364568536937, - 12.746970436789752 - ], - [ - 14.340320933948874, - 9.560269442471622 - ], - [ - 14.340320933948874, - 6.373512961647748 - ], - [ - 14.340320933948874, - 0 - ], - [ - 13.54364568536937, - -4.780051491477252 - ], - [ - 11.950295188210248, - -7.96686345880687 - ], - [ - 11.15361993963063, - -9.560269442471622 - ], - [ - 11.15361993963063, - -10.356944691051126 - ], - [ - 10.356889204545496, - -11.153619939630744 - ], - [ - 11.15361993963063, - -9.560269442471622 - ], - [ - 11.950295188210248, - -8.763538707386374 - ], - [ - 11.950295188210248, - -8.763538707386374 - ] - ], - "pressures": [ - 0.0927734375, - 0.3935546875, - 0.5087890625, - 0.6064453125, - 0.716796875, - 0.8154296875, - 0.849609375, - 0.900390625, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.203125, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950295188210248, - -8.763538707386374 - ] - }, - { - "id": "PA-Yw0i1K-U5-9BmA2TF6", - "type": "freedraw", - "x": 280.7459304611406, - "y": 169.163049276773, - "width": 20.713889382102252, - "height": 16.73040216619313, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1314508675, - "version": 582, - "versionNonce": 601153709, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 0 - ], - [ - 0.7966752485795041, - 2.389970259232882 - ], - [ - 2.390081232244256, - 3.18670099431813 - ], - [ - 3.983431729403378, - 3.18670099431813 - ], - [ - 4.780162464488626, - 3.18670099431813 - ], - [ - 6.373512961647634, - 2.389970259232882 - ], - [ - 7.170188210227252, - 0.796619762073874 - ], - [ - 7.170188210227252, - -1.5934614701704959 - ], - [ - 6.373512961647634, - -4.78021795099437 - ], - [ - 5.57683771306813, - -7.170243696732996 - ], - [ - 7.966863458806756, - -6.373568448153492 - ], - [ - 10.356944691051126, - -3.983487215909122 - ], - [ - 12.747025923295382, - 0 - ], - [ - 17.52718838778401, - 4.780051491477252 - ], - [ - 18.323863636363626, - 7.966863458806756 - ], - [ - 19.12053888494313, - 8.76348322088063 - ], - [ - 16.73040216619313, - 9.560158469460134 - ], - [ - 11.950295188210134, - 9.560158469460134 - ], - [ - 4.780162464488626, - 7.170132723721508 - ], - [ - 1.593405983664752, - 6.373401988636374 - ], - [ - -0.7966752485796178, - 5.576726740056756 - ], - [ - -1.593350497159122, - 4.780051491477252 - ], - [ - -1.593350497159122, - 3.983431729403378 - ], - [ - -0.7966752485796178, - 3.983431729403378 - ], - [ - 0.7966752485795041, - 4.780051491477252 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.07421875, - 0.57421875, - 0.783203125, - 0.9345703125, - 0.9755859375, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2548828125, - 0.2099609375, - 0.119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485795041, - 4.780051491477252 - ] - }, - { - "id": "e0-1diJQm3hGGVYYF0g_G", - "type": "freedraw", - "x": 238.52153193486208, - "y": 89.49430371569343, - "width": 7.966863458806756, - "height": 14.340431906960248, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 966346541, - "version": 552, - "versionNonce": 1500632205, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.780162464488683 - ], - [ - -3.186756480823874, - -8.763594193892061 - ], - [ - -4.780162464488626, - -11.153675426136374 - ], - [ - -7.170188210227252, - -13.543756658380687 - ], - [ - -7.966863458806756, - -14.340431906960248 - ], - [ - -7.966863458806756, - -14.340431906960248 - ] - ], - "pressures": [ - 0.0166015625, - 0.21484375, - 0.40625, - 0.5625, - 0.69921875, - 0.7705078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.966863458806756, - -14.340431906960248 - ] - }, - { - "id": "ROq6xYBDTtQIgdz7E38mF", - "type": "freedraw", - "x": 197.09375317065758, - "y": 75.95054705731275, - "width": 61.344881924715935, - "height": 54.97147993607956, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 407839917, - "version": 542, - "versionNonce": 2041710307, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 3.186756480823874 - ], - [ - 3.983431729403378, - 3.983431729403378 - ], - [ - 7.9669189453125, - 3.983431729403378 - ], - [ - 12.747025923295439, - 1.593405983664752 - ], - [ - 15.933782404119313, - -3.186756480823874 - ], - [ - 16.730457652698874, - -7.170188210227309 - ], - [ - 16.730457652698874, - -10.356944691051126 - ], - [ - 14.340376420454561, - -12.746970436789809 - ], - [ - 9.560269442471565, - -14.340376420454561 - ], - [ - 3.983431729403378, - -13.543701171875 - ], - [ - -0.796675248579561, - -11.950295188210248 - ], - [ - -5.5767822265625, - -10.356944691051126 - ], - [ - -9.560213955965935, - -8.763538707386374 - ], - [ - -11.153619939630687, - -7.966863458806813 - ], - [ - -12.746970436789752, - -7.966863458806813 - ], - [ - -13.543645685369313, - -8.763538707386374 - ], - [ - -13.543645685369313, - -11.950295188210248 - ], - [ - -11.153619939630687, - -18.323808149857996 - ], - [ - -7.170188210227252, - -23.900590376420496 - ], - [ - -1.593350497159122, - -31.070778586647748 - ], - [ - 3.983431729403378, - -38.24099454012787 - ], - [ - 12.747025923295439, - -43.81780450994319 - ], - [ - 18.323808149857996, - -45.41115500710231 - ], - [ - 23.900645862926126, - -45.41115500710231 - ], - [ - 30.274158824573874, - -43.02110151811081 - ], - [ - 37.444347034801126, - -39.037669788707376 - ], - [ - 43.81780450994313, - -31.867509321732996 - ], - [ - 47.80123623934662, - -18.323808149857996 - ], - [ - 47.80123623934662, - -8.763538707386374 - ], - [ - 46.2078857421875, - -0.796675248579561 - ], - [ - 40.631048029119256, - 7.170188210227252 - ], - [ - 35.850941051136374, - 9.560324928977252 - ], - [ - 31.867509321732996, - 9.560324928977252 - ], - [ - 27.884077592329504, - 8.763594193892004 - ], - [ - 24.69732111150563, - 7.170188210227252 - ], - [ - 22.307239879261374, - 4.780162464488626 - ], - [ - 22.307239879261374, - 3.983431729403378 - ], - [ - 22.307239879261374, - 3.983431729403378 - ] - ], - "pressures": [ - 0.041015625, - 0.3759765625, - 0.6806640625, - 0.884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.82421875, - 0.2333984375, - 0.171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307239879261374, - 3.983431729403378 - ] - }, - { - "id": "XPspS-HpmTKjhl4ZyRmt0", - "type": "freedraw", - "x": 206.65402261312914, - "y": 80.73070952180137, - "width": 1.593350497159122, - "height": 7.9669189453125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1369205805, - "version": 507, - "versionNonce": 931171533, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - -5.576837713068187 - ], - [ - 0, - -7.9669189453125 - ], - [ - 0, - -7.9669189453125 - ] - ], - "pressures": [ - 0.083984375, - 0.4677734375, - 0.7666015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -7.9669189453125 - ] - }, - { - "id": "Qi967G061n_BO_FsNTyoB", - "type": "freedraw", - "x": 207.4506978617087, - "y": 162.7894808286195, - "width": 57.36145019531244, - "height": 33.46085981889206, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 452183139, - "version": 518, - "versionNonce": 598600877, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - 3.9834317294034918 - ], - [ - -1.593350497159065, - 5.5767822265625 - ], - [ - 1.593405983664752, - 7.170188210227366 - ], - [ - 9.560269442471622, - 9.560269442471622 - ], - [ - 15.93378240411937, - 10.35700017755687 - ], - [ - 22.307239879261374, - 11.153619939630744 - ], - [ - 27.884077592329504, - 11.153619939630744 - ], - [ - 33.460859818892004, - 9.560269442471622 - ], - [ - 39.03769753196025, - 6.373568448153492 - ], - [ - 47.80123623934662, - 0 - ], - [ - 52.58139870383525, - -5.5767822265625 - ], - [ - 54.971424449573874, - -10.356944691051126 - ], - [ - 55.76809969815338, - -12.747025923295382 - ], - [ - 54.17474920099437, - -15.93372691761357 - ], - [ - 52.58139870383525, - -18.323808149857882 - ], - [ - 50.19131747159088, - -20.713889382102252 - ], - [ - 49.394642223011374, - -21.51050914417607 - ], - [ - 49.394642223011374, - -22.307239879261317 - ], - [ - 49.394642223011374, - -22.307239879261317 - ] - ], - "pressures": [ - 0.0107421875, - 0.2880859375, - 0.3427734375, - 0.4150390625, - 0.61328125, - 0.740234375, - 0.8828125, - 0.9580078125, - 0.9833984375, - 0.9833984375, - 0.9775390625, - 0.96875, - 0.9599609375, - 0.9365234375, - 0.830078125, - 0.6064453125, - 0.37890625, - 0.23046875, - 0.1904296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.394642223011374, - -22.307239879261317 - ] - }, - { - "id": "DZ8Bop5i8kxuRCHVWzKdC", - "type": "freedraw", - "x": 206.65402261312914, - "y": 170.75634428742637, - "width": 37.444291548295496, - "height": 42.22445401278412, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 355408653, - "version": 530, - "versionNonce": 670449827, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 3.983431729403435, - -0.7966752485795041 - ], - [ - 7.170188210227309, - -3.186756480823874 - ], - [ - 10.356944691051183, - -7.170188210227252 - ], - [ - 11.950295188210191, - -11.950295188210248 - ], - [ - 12.746970436789809, - -16.730402166193244 - ], - [ - 11.153619939630687, - -23.90059037642044 - ], - [ - 9.560269442471565, - -27.087346857244313 - ], - [ - 7.170188210227309, - -29.47737260298294 - ], - [ - 5.5767822265625, - -31.86750932173294 - ], - [ - 4.780106977982996, - -32.6641845703125 - ], - [ - 4.780106977982996, - -30.274103338068187 - ], - [ - 5.5767822265625, - -27.88407759232956 - ], - [ - 5.5767822265625, - -25.49394087357956 - ], - [ - 6.373512961647748, - -24.697321111505687 - ], - [ - 6.373512961647748, - -23.90059037642044 - ], - [ - 6.373512961647748, - -22.307239879261374 - ], - [ - 5.5767822265625, - -19.917158647017004 - ], - [ - 4.780106977982996, - -17.527077414772748 - ], - [ - 3.983431729403435, - -15.933726917613626 - ], - [ - 1.593350497159122, - -13.54364568536937 - ], - [ - -1.593350497159065, - -9.560213955965878 - ], - [ - -5.576837713068187, - -4.780106977982996 - ], - [ - -11.153619939630687, - 0 - ], - [ - -14.340376420454504, - 3.186756480823874 - ], - [ - -18.32380814985794, - 5.57683771306813 - ], - [ - -21.510564630681813, - 7.966863458806756 - ], - [ - -23.900645862926126, - 8.763594193892004 - ], - [ - -24.697321111505687, - 9.560269442471622 - ], - [ - -24.697321111505687, - 7.966863458806756 - ], - [ - -23.900645862926126, - 4.780106977982996 - ], - [ - -23.900645862926126, - 4.780106977982996 - ] - ], - "pressures": [ - 0.046875, - 0.2333984375, - 0.3994140625, - 0.5087890625, - 0.5888671875, - 0.64453125, - 0.6923828125, - 0.830078125, - 0.8447265625, - 0.853515625, - 0.853515625, - 0.8515625, - 0.8515625, - 0.8466796875, - 0.8388671875, - 0.8427734375, - 0.8388671875, - 0.8408203125, - 0.8408203125, - 0.8447265625, - 0.8447265625, - 0.8408203125, - 0.8466796875, - 0.849609375, - 0.853515625, - 0.849609375, - 0.85546875, - 0.85546875, - 0.751953125, - 0.671875, - 0.1904296875, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.900645862926126, - 4.780106977982996 - ] - }, - { - "id": "fBnAS7kY_WCSmh2pNpCcm", - "type": "freedraw", - "x": 289.5095246550326, - "y": 125.34524476682975, - "width": 49.394642223011374, - "height": 64.53169389204544, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 832659171, - "version": 526, - "versionNonce": 1153974147, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 3.186700994318187 - ], - [ - 2.390025745738626, - 4.780051491477309 - ], - [ - 5.5767822265625, - 4.780051491477309 - ], - [ - 8.763594193892004, - 4.780051491477309 - ], - [ - 11.950295188210248, - 1.593295010653435 - ], - [ - 14.340320933948874, - -2.39013671875 - ], - [ - 15.136996182528378, - -13.54375665838063 - ], - [ - 14.340320933948874, - -20.71394486860794 - ], - [ - 12.746970436789752, - -26.29072709517044 - ], - [ - 11.950295188210248, - -29.477483575994313 - ], - [ - 11.15361993963063, - -31.070889559659065 - ], - [ - 13.543645685369256, - -30.274214311079504 - ], - [ - 17.527132901278378, - -27.08745783025563 - ], - [ - 23.103859641335248, - -23.104026100852252 - ], - [ - 30.2740478515625, - -16.730513139204504 - ], - [ - 36.64756081321025, - -9.560324928977252 - ], - [ - 45.411210493607996, - 3.186700994318187 - ], - [ - 48.597911487926126, - 11.153564453125 - ], - [ - 48.597911487926126, - 17.52702192826706 - ], - [ - 46.2078857421875, - 22.307184392755687 - ], - [ - 39.03769753196025, - 29.477372602982996 - ], - [ - 33.460859818892004, - 31.867453835227252 - ], - [ - 25.493996360085248, - 33.460804332386374 - ], - [ - 15.933671431107996, - 32.66412908380687 - ], - [ - 7.966807972301126, - 30.2740478515625 - ], - [ - 2.390025745738626, - 27.884022105823874 - ], - [ - 2.390025745738626, - 27.087291370738626 - ], - [ - 1.593350497159122, - 27.087291370738626 - ], - [ - 2.390025745738626, - 27.087291370738626 - ], - [ - 3.18670099431813, - 27.087291370738626 - ], - [ - 3.18670099431813, - 27.087291370738626 - ] - ], - "pressures": [ - 0.0712890625, - 0.3994140625, - 0.580078125, - 0.71875, - 0.796875, - 0.8408203125, - 0.884765625, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.8154296875, - 0.6162109375, - 0.5615234375, - 0.4912109375, - 0.1064453125, - 0.0517578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.18670099431813, - 27.087291370738626 - ] - }, - { - "id": "CtP-9De3fWdf4dF7TE76J", - "type": "freedraw", - "x": 304.64652083756096, - "y": 150.83918564040937, - "width": 44.614424272017004, - "height": 30.274158824573817, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1217355917, - "version": 521, - "versionNonce": 337862797, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - -1.593350497159122, - 1.5933504971590082 - ], - [ - -4.780051491477252, - 2.390081232244256 - ], - [ - -8.763538707386374, - 2.390081232244256 - ], - [ - -12.746970436789752, - 2.390081232244256 - ], - [ - -16.73040216619313, - 1.5933504971590082 - ], - [ - -21.510509144176126, - -0.7967307350852479 - ], - [ - -26.290616122159122, - -3.983431729403435 - ], - [ - -31.867453835227252, - -7.966918945312557 - ], - [ - -34.25753506747162, - -9.560213955965935 - ], - [ - -35.85088556463063, - -11.950350674715935 - ], - [ - -37.44423606178975, - -16.73045765269893 - ], - [ - -39.037642045454504, - -20.71388938210231 - ], - [ - -39.83431729403412, - -24.697321111505744 - ], - [ - -39.83431729403412, - -26.290727095170496 - ], - [ - -39.83431729403412, - -27.087402343750057 - ], - [ - -40.630992542613626, - -23.900645862926183 - ], - [ - -40.630992542613626, - -19.917214133522748 - ], - [ - -41.427723277698874, - -15.137051669034122 - ], - [ - -42.22439852627838, - -11.153619939630744 - ], - [ - -43.8177490234375, - -7.170188210227309 - ], - [ - -43.8177490234375, - -3.186756480823931 - ], - [ - -44.614424272017004, - 0.7966752485795041 - ], - [ - -44.614424272017004, - 2.390081232244256 - ], - [ - -44.614424272017004, - 3.1867564808237603 - ], - [ - -44.614424272017004, - 2.390081232244256 - ], - [ - -43.8177490234375, - 2.390081232244256 - ], - [ - -43.8177490234375, - 2.390081232244256 - ] - ], - "pressures": [ - 0.0751953125, - 0.3701171875, - 0.48046875, - 0.677734375, - 0.7587890625, - 0.80078125, - 0.8154296875, - 0.8154296875, - 0.8154296875, - 0.8408203125, - 0.853515625, - 0.8662109375, - 0.8896484375, - 0.8896484375, - 0.8955078125, - 0.900390625, - 0.8935546875, - 0.931640625, - 0.931640625, - 0.9345703125, - 0.9384765625, - 0.9384765625, - 0.9384765625, - 0.9384765625, - 0.921875, - 0.822265625, - 0.1689453125, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.8177490234375, - 2.390081232244256 - ] - }, - { - "id": "7kNtkSonaWNCyUD675zkM", - "type": "freedraw", - "x": 156.46270514153827, - "y": 297.429650839273, - "width": 103.56939142400569, - "height": 60.548206676136374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 188296685, - "version": 509, - "versionNonce": 841632237, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.763483220880687, - -2.39008123224437 - ], - [ - -16.7303466796875, - -7.170188210227366 - ], - [ - -24.697265625, - -11.950350674715992 - ], - [ - -31.86745383522731, - -15.93378240411937 - ], - [ - -38.240966796875, - -21.51056463068187 - ], - [ - -40.630992542613626, - -25.493996360085248 - ], - [ - -43.021129261363626, - -31.867509321732996 - ], - [ - -43.021129261363626, - -38.241022283380744 - ], - [ - -43.021129261363626, - -43.817804509943244 - ], - [ - -37.44429154829544, - -45.411210493607996 - ], - [ - -29.477428089488626, - -42.22445401278412 - ], - [ - -20.713833895596622, - -37.444291548295496 - ], - [ - -10.356944691051126, - -31.07083407315349 - ], - [ - 4.780162464488626, - -22.307239879261374 - ], - [ - 12.747025923295439, - -19.1204833984375 - ], - [ - 18.32380814985794, - -17.52713290127849 - ], - [ - 24.697321111505687, - -17.52713290127849 - ], - [ - 33.46085981889206, - -19.1204833984375 - ], - [ - 49.394642223011374, - -25.493996360085248 - ], - [ - 57.36150568181819, - -31.867509321732996 - ], - [ - 60.54826216264206, - -37.444291548295496 - ], - [ - 59.75158691406244, - -43.021129261363626 - ], - [ - 55.76809969815338, - -49.394642223011374 - ], - [ - 49.394642223011374, - -55.76815518465912 - ], - [ - 40.63104802911931, - -59.7515869140625 - ], - [ - 37.44429154829544, - -60.548206676136374 - ], - [ - 35.05426580255681, - -60.548206676136374 - ], - [ - 31.86750932173294, - -58.954856178977366 - ], - [ - 29.477428089488626, - -58.954856178977366 - ], - [ - 27.08740234375, - -58.954856178977366 - ], - [ - 26.290671608664752, - -58.954856178977366 - ], - [ - 26.290671608664752, - -58.954856178977366 - ] - ], - "pressures": [ - 0.109375, - 0.3037109375, - 0.3994140625, - 0.5126953125, - 0.6015625, - 0.703125, - 0.736328125, - 0.734375, - 0.732421875, - 0.73046875, - 0.72265625, - 0.734375, - 0.74609375, - 0.7421875, - 0.744140625, - 0.748046875, - 0.7587890625, - 0.7646484375, - 0.7607421875, - 0.73828125, - 0.73828125, - 0.734375, - 0.72265625, - 0.716796875, - 0.6943359375, - 0.5693359375, - 0.5068359375, - 0.3837890625, - 0.2314453125, - 0.181640625, - 0.140625, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 26.290671608664752, - -58.954856178977366 - ] - }, - { - "id": "HBalfoFuWg_1jz1XFA7aC", - "type": "freedraw", - "x": 165.22629933543033, - "y": 172.34975027109112, - "width": 53.378018465909065, - "height": 72.49844637784088, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1641066189, - "version": 513, - "versionNonce": 2072282189, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -3.18670099431813 - ], - [ - 1.593350497159065, - -0.7967307350852479 - ], - [ - 4.780106977982939, - 7.170188210227252 - ], - [ - 5.5767822265625, - 11.950295188210248 - ], - [ - 5.5767822265625, - 15.137051669034122 - ], - [ - 3.186756480823817, - 16.730457652698874 - ], - [ - -1.593350497159122, - 17.527077414772748 - ], - [ - -5.5767822265625, - 17.527077414772748 - ], - [ - -9.560213955965935, - 15.137051669034122 - ], - [ - -14.340376420454561, - 11.153619939630744 - ], - [ - -18.323808149857996, - 6.373457475142004 - ], - [ - -23.900645862926183, - 1.593350497159122 - ], - [ - -25.49394087357956, - 0.7967307350852479 - ], - [ - -27.08740234375, - 0.7967307350852479 - ], - [ - -28.680752840909122, - 0.7967307350852479 - ], - [ - -31.867509321732996, - 6.373457475142004 - ], - [ - -32.6641845703125, - 14.340320933948874 - ], - [ - -32.6641845703125, - 24.697321111505744 - ], - [ - -31.867509321732996, - 36.64761629971588 - ], - [ - -28.680752840909122, - 47.004505504261374 - ], - [ - -23.900645862926183, - 54.174693714488626 - ], - [ - -14.340376420454561, - 62.938287908380744 - ], - [ - -7.9669189453125, - 66.92171963778412 - ], - [ - -2.39008123224437, - 69.31174538352275 - ], - [ - 5.5767822265625, - 69.31174538352275 - ], - [ - 11.950295188210191, - 66.92171963778412 - ], - [ - 17.52707741477269, - 62.938287908380744 - ], - [ - 20.713833895596565, - 57.3614501953125 - ], - [ - 20.713833895596565, - 50.19126198508525 - ], - [ - 19.917158647017004, - 42.22439852627838 - ], - [ - 16.73040216619313, - 29.477428089488626 - ], - [ - 15.137051669034065, - 25.493996360085248 - ], - [ - 12.746970436789752, - 23.103915127840878 - ], - [ - 9.560213955965878, - 19.917158647017004 - ], - [ - 7.170188210227252, - 19.1204833984375 - ], - [ - 7.170188210227252, - 18.323808149857996 - ], - [ - 7.170188210227252, - 18.323808149857996 - ] - ], - "pressures": [ - 0.0947265625, - 0.41015625, - 0.716796875, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.6640625, - 0.310546875, - 0.228515625, - 0.193359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.170188210227252, - 18.323808149857996 - ] - }, - { - "id": "3PyFswQl2Q371_tCTIGe-", - "type": "freedraw", - "x": 147.69922192065758, - "y": 232.89801243373313, - "width": 65.32842462713069, - "height": 89.22895951704538, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2093177027, - "version": 494, - "versionNonce": 1183649251, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -3.983431729403378 - ], - [ - -3.186811967329561, - -6.373568448153378 - ], - [ - -9.560324928977252, - -11.15367542613626 - ], - [ - -15.137107155539752, - -15.933726917613626 - ], - [ - -22.30729536576706, - -20.713944868607882 - ], - [ - -30.274158824573874, - -24.69737659801126 - ], - [ - -43.02118474786931, - -26.290727095170382 - ], - [ - -50.988048206676126, - -26.290727095170382 - ], - [ - -56.56488591974431, - -23.900645862926126 - ], - [ - -61.34499289772725, - -20.713944868607882 - ], - [ - -65.32842462713069, - -11.950295188210134 - ], - [ - -65.32842462713069, - -3.186811967329504 - ], - [ - -63.735018643465935, - 8.763483220880744 - ], - [ - -59.7515869140625, - 19.917158647017118 - ], - [ - -54.1748046875, - 31.867509321732996 - ], - [ - -40.631103515625, - 44.61442427201712 - ], - [ - -30.274158824573874, - 51.78466796875 - ], - [ - -20.71394486860794, - 57.3614501953125 - ], - [ - -12.747081409801126, - 61.34488192471599 - ], - [ - -6.373568448153435, - 62.938232421875 - ], - [ - -3.983431729403435, - 62.938232421875 - ], - [ - -3.186811967329561, - 60.548206676136374 - ], - [ - -3.186811967329561, - 58.95480069247162 - ], - [ - -3.186811967329561, - 58.95480069247162 - ] - ], - "pressures": [ - 0.099609375, - 0.1787109375, - 0.234375, - 0.349609375, - 0.44140625, - 0.5439453125, - 0.66015625, - 0.8056640625, - 0.8740234375, - 0.927734375, - 0.9599609375, - 0.9775390625, - 0.970703125, - 0.9580078125, - 0.94921875, - 0.9404296875, - 0.85546875, - 0.7421875, - 0.6025390625, - 0.4521484375, - 0.29296875, - 0.2275390625, - 0.162109375, - 0.0322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186811967329561, - 58.95480069247162 - ] - }, - { - "id": "aSoz64a4wyPBGp7f5KPBi", - "type": "freedraw", - "x": 201.07718490006096, - "y": 179.51993848131838, - "width": 1.593350497159065, - "height": 3.9834872159090082, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2026668707, - "version": 455, - "versionNonce": 425621293, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - -3.9834872159090082 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0654296875, - 0.14453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159065, - -3.9834872159090082 - ] - }, - { - "id": "mjfioQc42bU6rK9GhfKsM", - "type": "freedraw", - "x": 256.8453400847201, - "y": 215.37082404594912, - "width": 50.98793723366475, - "height": 55.76809969815338, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 379041123, - "version": 478, - "versionNonce": 180908397, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - 0 - ], - [ - 5.5767822265625, - 3.983431729403378 - ], - [ - 7.966863458806756, - 7.170188210227252 - ], - [ - 9.560213955965878, - 10.356944691051126 - ], - [ - 10.356944691051126, - 14.340376420454504 - ], - [ - 10.356944691051126, - 17.52718838778401 - ], - [ - 8.763538707386374, - 21.5106201171875 - ], - [ - 6.373457475142004, - 23.10397061434651 - ], - [ - 3.186756480823874, - 23.900645862926126 - ], - [ - 0, - 24.69732111150563 - ], - [ - -5.576837713068244, - 23.10397061434651 - ], - [ - -8.763594193892004, - 22.307239879261374 - ], - [ - -10.356944691051126, - 21.5106201171875 - ], - [ - -10.356944691051126, - 22.307239879261374 - ], - [ - -9.560269442471622, - 25.494051846590878 - ], - [ - -4.780162464488626, - 33.46091530539775 - ], - [ - -0.7967307350852479, - 39.03769753196025 - ], - [ - 4.780106977982996, - 44.61453524502838 - ], - [ - 10.356944691051126, - 48.597966974431756 - ], - [ - 15.137051669034122, - 50.98799272017038 - ], - [ - 22.307239879261374, - 50.98799272017038 - ], - [ - 26.290671608664752, - 47.80123623934651 - ], - [ - 29.477428089488626, - 44.61453524502838 - ], - [ - 32.6641845703125, - 40.631048029119256 - ], - [ - 37.444291548295496, - 31.867509321732882 - ], - [ - 39.83431729403412, - 25.494051846590878 - ], - [ - 40.630992542613626, - 19.12053888494313 - ], - [ - 40.630992542613626, - 12.747025923295382 - ], - [ - 39.037642045454504, - 7.966863458806756 - ], - [ - 34.25753506747162, - 0.7967307350852479 - ], - [ - 31.867453835227252, - -3.186756480823874 - ], - [ - 29.477428089488626, - -4.780106977982996 - ], - [ - 27.884022105823874, - -4.780106977982996 - ], - [ - 27.884022105823874, - -3.186756480823874 - ], - [ - 27.884022105823874, - -1.593350497159122 - ], - [ - 27.884022105823874, - -1.593350497159122 - ] - ], - "pressures": [ - 0.0810546875, - 0.431640625, - 0.5771484375, - 0.78515625, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.6806640625, - 0.427734375, - 0.3330078125, - 0.1865234375, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884022105823874, - -1.593350497159122 - ] - }, - { - "id": "XR7pNwuuNB85zI03Vj_9h", - "type": "freedraw", - "x": 296.6796573787542, - "y": 174.73977601682975, - "width": 15.137051669034008, - "height": 26.290727095170496, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1900689581, - "version": 462, - "versionNonce": 1358066563, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593295010653378 - ], - [ - 1.5934614701703822, - -3.186756480823874 - ], - [ - 3.9834872159090082, - -4.780106977982882 - ], - [ - 6.373512961647634, - -5.576726740056756 - ], - [ - 7.966863458806756, - -6.373512961647748 - ], - [ - 9.560324928977252, - -6.373512961647748 - ], - [ - 10.357000177556756, - -6.373512961647748 - ], - [ - 12.747025923295382, - -3.186756480823874 - ], - [ - 14.340376420454504, - 1.593405983664752 - ], - [ - 15.137051669034008, - 6.373568448153378 - ], - [ - 15.137051669034008, - 11.950295188210248 - ], - [ - 15.137051669034008, - 14.340431906960248 - ], - [ - 13.543701171875, - 15.93378240411937 - ], - [ - 11.950350674715878, - 16.730457652698874 - ], - [ - 9.560324928977252, - 18.323863636363626 - ], - [ - 7.966863458806756, - 19.1204833984375 - ], - [ - 7.170188210227252, - 19.917214133522748 - ], - [ - 8.763538707386374, - 19.917214133522748 - ], - [ - 10.357000177556756, - 19.917214133522748 - ], - [ - 11.153675426136374, - 19.917214133522748 - ], - [ - 11.153675426136374, - 19.917214133522748 - ] - ], - "pressures": [ - 0.041015625, - 0.5224609375, - 0.71484375, - 0.8720703125, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1728515625, - 0.10546875, - 0.05078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153675426136374, - 19.917214133522748 - ] - }, - { - "id": "KNGDcve5KO8Ey9U6qxaTn", - "type": "freedraw", - "x": 313.4101705179587, - "y": 183.50337021072187, - "width": 65.328369140625, - "height": 62.141612659801126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 472119341, - "version": 476, - "versionNonce": 570362659, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186811967329504, - 0 - ], - [ - -3.983487215909122, - 2.390025745738626 - ], - [ - -4.780162464488626, - 4.780106977982882 - ], - [ - -5.57683771306813, - 10.356889204545382 - ], - [ - -5.57683771306813, - 16.73040216619313 - ], - [ - -5.57683771306813, - 20.71383389559651 - ], - [ - -3.983487215909122, - 24.697265625 - ], - [ - -1.5934614701704959, - 27.88402210582376 - ], - [ - 3.18670099431813, - 31.867453835227252 - ], - [ - 6.373401988636374, - 32.6641845703125 - ], - [ - 8.763538707386374, - 33.460915305397634 - ], - [ - 11.950239701704504, - 31.867453835227252 - ], - [ - 15.137051669034122, - 28.680697354403378 - ], - [ - 19.917103160511374, - 22.30723987926126 - ], - [ - 22.307239879261374, - 18.323808149857882 - ], - [ - 24.697265625, - 14.340376420454504 - ], - [ - 27.087291370738626, - 11.950295188210134 - ], - [ - 29.477428089488626, - 11.950295188210134 - ], - [ - 32.66412908380687, - 11.950295188210134 - ], - [ - 36.64761629971588, - 14.340376420454504 - ], - [ - 42.22434303977275, - 17.527132901278378 - ], - [ - 47.80118075284088, - 20.71383389559651 - ], - [ - 54.174693714488626, - 25.493996360085134 - ], - [ - 57.36139470880687, - 29.477483575994256 - ], - [ - 58.95485617897725, - 34.25753506747151 - ], - [ - 59.75153142755687, - 39.037642045454504 - ], - [ - 59.75153142755687, - 47.00450550426126 - ], - [ - 55.76804421164775, - 51.78466796875 - ], - [ - 49.39453125, - 55.76809969815338 - ], - [ - 43.81780450994313, - 58.158125443892004 - ], - [ - 38.240966796875, - 59.751531427556756 - ], - [ - 33.460804332386374, - 61.34493741122151 - ], - [ - 31.867453835227252, - 61.34493741122151 - ], - [ - 31.070778586647748, - 61.34493741122151 - ], - [ - 31.070778586647748, - 62.141612659801126 - ], - [ - 31.070778586647748, - 62.141612659801126 - ] - ], - "pressures": [ - 0.05078125, - 0.5341796875, - 0.666015625, - 0.697265625, - 0.75, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8095703125, - 0.638671875, - 0.3271484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.070778586647748, - 62.141612659801126 - ] - }, - { - "id": "nmrek3-RE3tSBXbqr2Sfz", - "type": "freedraw", - "x": 298.2731188489246, - "y": 214.5741487973695, - "width": 53.37801846590912, - "height": 47.80123623934662, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1489462691, - "version": 473, - "versionNonce": 1087876803, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39013671875, - 3.9834317294034918 - ], - [ - -2.39013671875, - 9.560269442471622 - ], - [ - -0.7967862215908781, - 15.933726917613626 - ], - [ - 2.390025745738626, - 26.290727095170496 - ], - [ - 4.780051491477252, - 32.6641845703125 - ], - [ - 7.170077237215992, - 37.444291548295496 - ], - [ - 10.356889204545496, - 41.427723277698874 - ], - [ - 13.543590198863626, - 44.61447975852275 - ], - [ - 19.12042791193187, - 47.80123623934662 - ], - [ - 22.307239879261374, - 47.80123623934662 - ], - [ - 25.493940873579618, - 47.00456099076712 - ], - [ - 28.680641867897748, - 43.817804509943244 - ], - [ - 32.66412908380687, - 37.444291548295496 - ], - [ - 34.25747958096599, - 31.07083407315349 - ], - [ - 35.054154829545496, - 25.493996360085248 - ], - [ - 35.054154829545496, - 22.307295365767118 - ], - [ - 35.850830078125, - 20.713889382102366 - ], - [ - 37.444291548295496, - 19.1204833984375 - ], - [ - 39.03764204545462, - 17.52713290127849 - ], - [ - 41.427667791193244, - 15.933726917613626 - ], - [ - 43.02101828835225, - 15.137051669034122 - ], - [ - 44.61447975852275, - 14.340431906960248 - ], - [ - 47.004505504261374, - 15.933726917613626 - ], - [ - 49.39453125, - 18.323863636363626 - ], - [ - 50.98788174715912, - 20.713889382102366 - ], - [ - 50.98788174715912, - 23.10391512784099 - ], - [ - 50.98788174715912, - 27.884077592329618 - ], - [ - 50.19120649857962, - 30.274158824573874 - ], - [ - 48.597856001420496, - 31.867509321732996 - ], - [ - 47.004505504261374, - 32.6641845703125 - ], - [ - 43.81769353693187, - 31.867509321732996 - ], - [ - 42.22434303977275, - 31.07083407315349 - ], - [ - 41.427667791193244, - 31.07083407315349 - ], - [ - 41.427667791193244, - 31.07083407315349 - ] - ], - "pressures": [ - 0.0498046875, - 0.37109375, - 0.470703125, - 0.6240234375, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7607421875, - 0.4033203125, - 0.193359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.427667791193244, - 31.07083407315349 - ] - }, - { - "id": "paUppyNXTnnmyKUdAe24y", - "type": "freedraw", - "x": 187.53353921469164, - "y": 77.5439530409775, - "width": 43.021129261363626, - "height": 63.73496315696025, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 76641069, - "version": 452, - "versionNonce": 713539085, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -1.593405983664752 - ], - [ - -3.983431729403378, - -3.983431729403378 - ], - [ - -11.153619939630687, - -5.576837713068187 - ], - [ - -16.730457652698817, - -6.373512961647748 - ], - [ - -22.307239879261317, - -5.576837713068187 - ], - [ - -27.08740234375, - -3.983431729403378 - ], - [ - -31.070834073153378, - -1.593405983664752 - ], - [ - -32.6641845703125, - 2.390025745738626 - ], - [ - -33.460859818892004, - 7.170188210227252 - ], - [ - -33.460859818892004, - 14.340376420454561 - ], - [ - -31.867453835227252, - 23.103915127840935 - ], - [ - -27.884022105823817, - 37.44429154829544 - ], - [ - -24.697321111505687, - 47.004505504261374 - ], - [ - -23.103970614346565, - 54.174693714488626 - ], - [ - -22.307239879261317, - 57.3614501953125 - ], - [ - -26.290671608664752, - 57.3614501953125 - ], - [ - -32.6641845703125, - 57.3614501953125 - ], - [ - -38.24102228338069, - 54.971424449573874 - ], - [ - -42.224454012784065, - 53.37801846590912 - ], - [ - -43.021129261363626, - 51.78472345525569 - ], - [ - -43.021129261363626, - 51.78472345525569 - ] - ], - "pressures": [ - 0.0693359375, - 0.482421875, - 0.677734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.021129261363626, - 51.78472345525569 - ] - }, - { - "id": "d4rfrIuf4T61lTaAW_esO", - "type": "freedraw", - "x": 151.68265365006096, - "y": 132.51537749055137, - "width": 30.274158824573817, - "height": 57.36150568181819, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 640949165, - "version": 456, - "versionNonce": 1685323053, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967307350852479 - ], - [ - -1.593405983664752, - 0 - ], - [ - -3.186811967329504, - 0 - ], - [ - -5.576893199573817, - -1.593405983664752 - ], - [ - -7.966863458806813, - -3.983431729403435 - ], - [ - -9.560324928977252, - -5.576837713068187 - ], - [ - -9.560324928977252, - -8.763594193892061 - ], - [ - -9.560324928977252, - -11.153619939630687 - ], - [ - -9.560324928977252, - -12.747025923295439 - ], - [ - -8.763594193892004, - -14.340376420454561 - ], - [ - -8.763594193892004, - -15.933782404119313 - ], - [ - -9.560324928977252, - -15.933782404119313 - ], - [ - -13.54375665838063, - -15.933782404119313 - ], - [ - -17.527188387784065, - -15.933782404119313 - ], - [ - -21.5106201171875, - -14.340376420454561 - ], - [ - -24.697376598011317, - -12.747025923295439 - ], - [ - -29.477483575994313, - -6.373512961647748 - ], - [ - -30.274158824573817, - -0.7967307350852479 - ], - [ - -30.274158824573817, - 6.373457475142061 - ], - [ - -30.274158824573817, - 11.950295188210248 - ], - [ - -29.477483575994313, - 18.323808149857996 - ], - [ - -24.697376598011317, - 30.27410333806813 - ], - [ - -19.91721413352269, - 36.64767178622162 - ], - [ - -16.730513139204504, - 40.631103515625 - ], - [ - -13.54375665838063, - 41.427723277698874 - ], - [ - -7.966863458806813, - 40.631103515625 - ], - [ - -4.780162464488626, - 39.037642045454504 - ], - [ - -2.39013671875, - 37.444291548295496 - ], - [ - -1.593405983664752, - 35.85088556463063 - ], - [ - -1.593405983664752, - 35.85088556463063 - ] - ], - "pressures": [ - 0.04296875, - 0.4990234375, - 0.66796875, - 0.7607421875, - 0.83203125, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.671875, - 0.267578125, - 0.1796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593405983664752, - 35.85088556463063 - ] - }, - { - "id": "40EZoZ1nj-RxOJDkjzhUP", - "type": "freedraw", - "x": 181.16002625304395, - "y": 72.76379057648887, - "width": 24.697321111505687, - "height": 5.576837713068187, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1436289571, - "version": 436, - "versionNonce": 500061677, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - 0 - ], - [ - -0.796675248579561, - -0.796675248579561 - ], - [ - 3.186756480823874, - -0.796675248579561 - ], - [ - 7.170188210227252, - -0.796675248579561 - ], - [ - 10.356944691051126, - -0.796675248579561 - ], - [ - 13.543701171875, - -0.796675248579561 - ], - [ - 15.137051669034065, - 0 - ], - [ - 17.527132901278378, - 0.7967307350852479 - ], - [ - 21.510564630681813, - 3.186756480823874 - ], - [ - 22.307239879261374, - 3.983431729403378 - ], - [ - 23.900645862926126, - 4.780162464488626 - ], - [ - 23.103915127840878, - 4.780162464488626 - ], - [ - 23.103915127840878, - 4.780162464488626 - ] - ], - "pressures": [ - 0.0810546875, - 0.2822265625, - 0.333984375, - 0.455078125, - 0.5087890625, - 0.5625, - 0.6220703125, - 0.646484375, - 0.6591796875, - 0.666015625, - 0.646484375, - 0.53125, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103915127840878, - 4.780162464488626 - ] - }, - { - "id": "rbIx2X0hAqURbKc-fNlBJ", - "type": "freedraw", - "x": 226.5711812601462, - "y": 99.85119292023887, - "width": 43.021129261363626, - "height": 37.444347034801126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 581405197, - "version": 440, - "versionNonce": 1858539597, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 0.796675248579561 - ], - [ - 0, - 0.796675248579561 - ], - [ - -3.18670099431813, - 1.593405983664752 - ], - [ - -7.96686345880687, - 2.390025745738626 - ], - [ - -13.543645685369313, - 3.186756480823874 - ], - [ - -23.103915127840878, - 6.373457475142061 - ], - [ - -28.680697354403378, - 10.356944691051126 - ], - [ - -32.6641845703125, - 15.137051669034065 - ], - [ - -36.64761629971588, - 19.91715864701706 - ], - [ - -40.63104802911931, - 27.087346857244313 - ], - [ - -42.22439852627838, - 30.274103338068187 - ], - [ - -42.22439852627838, - 33.46091530539775 - ], - [ - -42.22439852627838, - 35.850941051136374 - ], - [ - -41.427723277698874, - 37.444347034801126 - ], - [ - -39.834317294034065, - 37.444347034801126 - ], - [ - -38.240966796875, - 36.64761629971588 - ], - [ - -36.64761629971588, - 35.850941051136374 - ], - [ - -36.64761629971588, - 35.850941051136374 - ] - ], - "pressures": [ - 0.0546875, - 0.224609375, - 0.615234375, - 0.7724609375, - 0.8740234375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2568359375, - 0.1533203125, - 0.0615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -36.64761629971588, - 35.850941051136374 - ] - }, - { - "id": "sT1gFWjX8dSddDNpzSd3U", - "type": "freedraw", - "x": 244.8949894100042, - "y": 76.74722230589225, - "width": 55.76815518465912, - "height": 63.73501864346588, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 952935299, - "version": 450, - "versionNonce": 1769569965, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - 0 - ], - [ - 0, - -1.593350497159065 - ], - [ - 2.390081232244256, - -3.983431729403378 - ], - [ - 5.57683771306813, - -7.966863458806813 - ], - [ - 9.560269442471508, - -11.15361993963063 - ], - [ - 14.340376420454504, - -12.746970436789752 - ], - [ - 20.713889382102252, - -14.340376420454504 - ], - [ - 25.493996360085134, - -14.340376420454504 - ], - [ - 30.274158824573874, - -13.543645685369313 - ], - [ - 35.850941051136374, - -10.356889204545439 - ], - [ - 43.021129261363626, - -5.5767822265625 - ], - [ - 46.2078857421875, - -2.390025745738626 - ], - [ - 48.597966974431756, - 0.7967307350852479 - ], - [ - 50.19131747159088, - 4.780162464488683 - ], - [ - 52.581343217329504, - 9.560269442471622 - ], - [ - 54.971479936079504, - 19.120538884943187 - ], - [ - 54.971479936079504, - 24.697376598011374 - ], - [ - 54.1748046875, - 29.477428089488683 - ], - [ - 52.581343217329504, - 31.867509321732996 - ], - [ - 50.98799272017038, - 38.24102228338069 - ], - [ - 49.394642223011374, - 43.02112926136368 - ], - [ - 48.597966974431756, - 47.00456099076706 - ], - [ - 48.597966974431756, - 49.394642223011374 - ], - [ - 47.80123623934651, - 49.394642223011374 - ], - [ - 45.41121049360788, - 49.394642223011374 - ], - [ - 43.81780450994313, - 49.394642223011374 - ], - [ - 43.021129261363626, - 49.394642223011374 - ], - [ - 42.22445401278401, - 49.394642223011374 - ], - [ - 42.22445401278401, - 49.394642223011374 - ] - ], - "pressures": [ - 0.0400390625, - 0.2763671875, - 0.3994140625, - 0.4990234375, - 0.5712890625, - 0.626953125, - 0.66015625, - 0.7265625, - 0.796875, - 0.8408203125, - 0.85546875, - 0.876953125, - 0.884765625, - 0.8984375, - 0.904296875, - 0.90234375, - 0.8828125, - 0.8662109375, - 0.8662109375, - 0.8466796875, - 0.8134765625, - 0.6923828125, - 0.58984375, - 0.53125, - 0.5029296875, - 0.306640625, - 0.2451171875, - 0.2080078125, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.22445401278401, - 49.394642223011374 - ] - }, - { - "id": "zFIVZ0_SQsQ3q29flSzwF", - "type": "freedraw", - "x": -5.26497818587643, - "y": -295.30551484343187, - "width": 110.73952414772731, - "height": 12.746998180042624, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1516927139, - "version": 359, - "versionNonce": 1795080035, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -28.680697354403435, - -9.56025557084513 - ], - [ - -37.444291548295496, - -11.950309059836627 - ], - [ - -40.63104802911931, - -12.746998180042624 - ], - [ - -41.427723277698874, - -12.746998180042624 - ], - [ - -40.63104802911931, - -12.746998180042624 - ], - [ - -32.6641845703125, - -10.356944691051126 - ], - [ - -22.307184392755687, - -8.763566450639189 - ], - [ - -8.763538707386374, - -6.373499090021255 - ], - [ - 7.170188210227252, - -5.576809969815372 - ], - [ - 23.900645862926126, - -5.576809969815372 - ], - [ - 53.37807395241475, - -5.576809969815372 - ], - [ - 65.328369140625, - -5.576809969815372 - ], - [ - 69.31180087002843, - -4.780134721235754 - ], - [ - 66.92177512428975, - -4.780134721235754 - ], - [ - 61.344937411221565, - -5.576809969815372 - ], - [ - 54.17474920099431, - -6.373499090021255 - ], - [ - 46.2078857421875, - -6.373499090021255 - ], - [ - 40.631103515625, - -6.373499090021255 - ], - [ - 37.444347034801126, - -6.373499090021255 - ], - [ - 37.444347034801126, - -6.373499090021255 - ] - ], - "pressures": [ - 0.044921875, - 0.66796875, - 0.849609375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.5615234375, - 0.328125, - 0.2001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 37.444347034801126, - -6.373499090021255 - ] - }, - { - "id": "9N2ewT7qW7HYjvpI_FhBi", - "type": "freedraw", - "x": -39.522457766842365, - "y": -306.459148654689, - "width": 102.77266068892044, - "height": 18.323808149857996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2118485123, - "version": 380, - "versionNonce": 1490656333, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.576837713068187, - 0 - ], - [ - -4.780162464488626, - 0 - ], - [ - 0, - 0 - ], - [ - 9.560213955965935, - 2.390067360617934 - ], - [ - 23.103859641335248, - 5.576823841441751 - ], - [ - 39.03764204545456, - 7.966877330433249 - ], - [ - 65.32831365411931, - 9.560255570845243 - ], - [ - 81.26204057173294, - 9.560255570845243 - ], - [ - 90.82231001420456, - 8.763566450639246 - ], - [ - 94.80574174360794, - 7.966877330433249 - ], - [ - 91.61898526278412, - 7.170188210227309 - ], - [ - 79.66869007457387, - 4.780134721235868 - ], - [ - 61.344881924715935, - 2.390067360617934 - ], - [ - 42.224398526278435, - 0.7966891202059969 - ], - [ - 24.697265625, - -0.7966752485795041 - ], - [ - 3.983431729403435, - -0.7966752485795041 - ], - [ - -0.7967307350852479, - -0.7966752485795041 - ], - [ - -2.39013671875, - -0.7966752485795041 - ], - [ - 0.796619762073874, - -0.7966752485795041 - ], - [ - 17.527077414772748, - -1.593364368785501 - ], - [ - 35.054210316051126, - -3.186742609197381 - ], - [ - 54.97136896306819, - -4.780120849609375 - ], - [ - 76.48193359375, - -6.373499090021255 - ], - [ - 91.61898526278412, - -7.966863458806756 - ], - [ - 97.19582297585225, - -8.763552579012753 - ], - [ - 90.82231001420456, - -8.763552579012753 - ], - [ - 74.09185236150569, - -5.576809969815315 - ], - [ - 53.37801846590912, - -2.390053488991441 - ], - [ - 24.697265625, - 0.7966891202059969 - ], - [ - 11.950295188210248, - 1.5933782404119938 - ], - [ - 6.373457475142061, - 1.5933782404119938 - ], - [ - 10.356889204545439, - 1.5933782404119938 - ], - [ - 26.290616122159122, - 1.5933782404119938 - ], - [ - 39.83437278053975, - 1.5933782404119938 - ], - [ - 53.37801846590912, - 1.5933782404119938 - ], - [ - 62.938232421875, - 2.390067360617934 - ], - [ - 69.31174538352275, - 2.390067360617934 - ], - [ - 66.12498890269887, - 2.390067360617934 - ], - [ - 62.14155717329544, - 1.5933782404119938 - ], - [ - 61.344881924715935, - 0.7966891202059969 - ], - [ - 61.344881924715935, - 0.7966891202059969 - ] - ], - "pressures": [ - 0.083984375, - 0.1826171875, - 0.369140625, - 0.728515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.423828125, - 0.150390625, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.344881924715935, - 0.7966891202059969 - ] - }, - { - "id": "AePeXv-G7n7Z7Yzb4IEFB", - "type": "freedraw", - "x": 13.058829963981509, - "y": -323.189578564135, - "width": 12.746914950284122, - "height": 129.86003528941757, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 647537421, - "version": 388, - "versionNonce": 1884740355, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - -0.796619762073874, - -6.373499090021255 - ], - [ - -0.796619762073874, - 2.390067360617877 - ], - [ - -0.796619762073874, - 20.713875510475873 - ], - [ - 0, - 47.004547119140625 - ], - [ - 0, - 87.63559514825994 - ], - [ - 0, - 104.36605280095881 - ], - [ - 0, - 112.33291625976562 - ], - [ - 0, - 113.12959150834519 - ], - [ - 0, - 110.73956576260653 - ], - [ - -3.186700994318187, - 92.41572986949575 - ], - [ - -5.5767822265625, - 71.70186823064631 - ], - [ - -7.170188210227252, - 47.004547119140625 - ], - [ - -7.170188210227252, - 25.493996360085248 - ], - [ - -6.373457475142061, - 11.153619939630687 - ], - [ - -6.373457475142061, - 12.746998180042624 - ], - [ - -7.170188210227252, - 23.90061811967331 - ], - [ - -7.170188210227252, - 45.411168878728716 - ], - [ - -7.170188210227252, - 87.63559514825994 - ], - [ - -7.170188210227252, - 106.75613403320312 - ], - [ - -7.170188210227252, - 113.92629450017756 - ], - [ - -7.170188210227252, - 112.33291625976562 - ], - [ - -7.966863458806813, - 91.61905462091619 - ], - [ - -8.763483220880687, - 66.12505826083097 - ], - [ - -10.356889204545439, - 38.240980668501436 - ], - [ - -10.356889204545439, - 15.933754660866498 - ], - [ - -10.356889204545439, - 5.576809969815372 - ], - [ - -10.356889204545439, - 15.933754660866498 - ], - [ - -11.153619939630687, - 35.054238059304 - ], - [ - -11.950295188210248, - 60.548248291015625 - ], - [ - -12.746914950284122, - 97.19586459073153 - ], - [ - -12.746914950284122, - 109.14615977894178 - ], - [ - -12.746914950284122, - 110.73956576260653 - ], - [ - -12.746914950284122, - 108.34948453036222 - ], - [ - -12.746914950284122, - 97.19586459073153 - ], - [ - -12.746914950284122, - 67.7184365012429 - ], - [ - -11.153619939630687, - 41.42773714932525 - ], - [ - -8.763483220880687, - 22.307253750887753 - ], - [ - -7.170188210227252, - 15.933754660866498 - ], - [ - -7.170188210227252, - 19.120497270063936 - ], - [ - -7.170188210227252, - 37.444305419921875 - ], - [ - -7.966863458806813, - 56.56481656161222 - ], - [ - -7.966863458806813, - 80.46543468128553 - ], - [ - -8.763483220880687, - 103.56934980912644 - ], - [ - -6.373457475142061, - 121.09648271040481 - ], - [ - -4.780051491477252, - 122.68988869406962 - ], - [ - -3.186700994318187, - 123.48653619939631 - ], - [ - -3.186700994318187, - 121.89315795898438 - ], - [ - -3.186700994318187, - 121.89315795898438 - ] - ], - "pressures": [ - 0.1044921875, - 0.15234375, - 0.2666015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.2919921875, - 0.1103515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186700994318187, - 121.89315795898438 - ] - }, - { - "id": "a6zj4t61DeWD0DwAXVxL0", - "type": "freedraw", - "x": 52.89320274452126, - "y": -291.3220831140285, - "width": 0.0001, - "height": 0.0001, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1934206691, - "version": 340, - "versionNonce": 156928685, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.0001, - 0.0001 - ] - ], - "pressures": [ - 0.10546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.0001, - 0.0001 - ] - }, - { - "id": "CiJj79ZAUVpA7RGBAdN72", - "type": "freedraw", - "x": 61.65679693841332, - "y": -303.2723921738651, - "width": 86.83893377130676, - "height": 11.15361993963063, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1795903277, - "version": 388, - "versionNonce": 745450765, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - -0.7967307350852479, - 0 - ], - [ - 10.356944691051183, - -0.7966891202059401 - ], - [ - 22.307239879261317, - -1.5933782404118801 - ], - [ - 38.24096679687494, - -3.186756480823874 - ], - [ - 52.58134321732956, - -4.780120849609375 - ], - [ - 64.53163840553981, - -6.373499090021255 - ], - [ - 65.32836914062494, - -6.373499090021255 - ], - [ - 64.53163840553981, - -6.373499090021255 - ], - [ - 57.36145019531244, - -6.373499090021255 - ], - [ - 35.85094105113632, - -6.373499090021255 - ], - [ - 19.120483398437443, - -4.780120849609375 - ], - [ - 4.780106977982939, - -3.186756480823874 - ], - [ - -3.983431729403435, - -2.390067360617877 - ], - [ - -9.560269442471565, - -1.5933782404118801 - ], - [ - -3.983431729403435, - -2.390067360617877 - ], - [ - 6.373457475142061, - -3.983431729403378 - ], - [ - 23.90059037642044, - -6.373499090021255 - ], - [ - 54.17474920099431, - -9.56025557084513 - ], - [ - 69.31180087002843, - -11.15361993963063 - ], - [ - 74.88858309659093, - -11.15361993963063 - ], - [ - 74.09190784801132, - -11.15361993963063 - ], - [ - 65.32836914062494, - -11.15361993963063 - ], - [ - 48.59791148792618, - -10.35693081942469 - ], - [ - 28.680752840909065, - -7.966877330433249 - ], - [ - 10.356944691051183, - -5.576809969815315 - ], - [ - -4.780162464488626, - -4.780120849609375 - ], - [ - -7.966863458806813, - -4.780120849609375 - ], - [ - -7.170188210227252, - -4.780120849609375 - ], - [ - -2.390081232244313, - -4.780120849609375 - ], - [ - 7.966863458806813, - -4.780120849609375 - ], - [ - 33.46085981889206, - -4.780120849609375 - ], - [ - 51.78466796874994, - -5.576809969815315 - ], - [ - 65.32836914062494, - -5.576809969815315 - ], - [ - 73.29523259943181, - -4.780120849609375 - ], - [ - 77.27866432883519, - -3.983431729403378 - ], - [ - 73.29523259943181, - -3.983431729403378 - ], - [ - 60.54820667613632, - -3.186756480823874 - ], - [ - 41.42772327769882, - -4.780120849609375 - ], - [ - 15.137051669034065, - -7.966877330433249 - ], - [ - 3.186756480823817, - -9.56025557084513 - ], - [ - -3.186756480823874, - -10.35693081942469 - ], - [ - -5.576837713068187, - -11.15361993963063 - ], - [ - 1.593350497159065, - -11.15361993963063 - ], - [ - 9.560213955965935, - -11.15361993963063 - ], - [ - 18.32380814985794, - -11.15361993963063 - ], - [ - 27.884022105823817, - -8.763566450639189 - ], - [ - 36.647616299715935, - -5.576809969815315 - ], - [ - 36.647616299715935, - -4.780120849609375 - ], - [ - 36.647616299715935, - -4.780120849609375 - ] - ], - "pressures": [ - 0.048828125, - 0.212890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7646484375, - 0.197265625, - 0.130859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 36.647616299715935, - -4.780120849609375 - ] - }, - { - "id": "7VrFcNvIkHNnj1n0NmZqC", - "type": "freedraw", - "x": 89.54081904423714, - "y": -316.01939035390774, - "width": 7.9669189453125, - "height": 122.68988869406962, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1529262317, - "version": 383, - "versionNonce": 417871427, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5933504971590082, - -6.373485218394876 - ], - [ - -1.5933504971590082, - -7.170188210227252 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 14.340376420454618 - ], - [ - 1.5934059836648657, - 32.66417069868612 - ], - [ - 2.39008123224437, - 57.36149181019178 - ], - [ - 3.186756480823874, - 78.87205644087362 - ], - [ - 3.186756480823874, - 92.41572986949578 - ], - [ - 4.780162464488626, - 97.99253983931112 - ], - [ - 4.780162464488626, - 94.00910810990769 - ], - [ - 3.9834317294034918, - 74.09192171963781 - ], - [ - 2.39008123224437, - 53.37806008078837 - ], - [ - 2.39008123224437, - 31.070792458274184 - ], - [ - 3.186756480823874, - 13.54368730024862 - ], - [ - 3.9834317294034918, - 1.5933782404119938 - ], - [ - 4.780162464488626, - -3.186742609197381 - ], - [ - 4.780162464488626, - -0.7966891202059401 - ], - [ - 4.780162464488626, - 11.950309059836684 - ], - [ - 3.9834317294034918, - 35.054251930930434 - ], - [ - 1.5934059836648657, - 74.88859696821737 - ], - [ - 0, - 92.41572986949578 - ], - [ - 0, - 97.19586459073156 - ], - [ - 0, - 97.99253983931112 - ], - [ - -0.7966752485795041, - 93.21240511807531 - ], - [ - -2.390025745738626, - 70.1084899902344 - ], - [ - -3.186756480823874, - 46.20787187056112 - ], - [ - -3.186756480823874, - 23.10392899946737 - ], - [ - -3.186756480823874, - 7.170188210227309 - ], - [ - -3.186756480823874, - 2.390067360617934 - ], - [ - -3.186756480823874, - 7.170188210227309 - ], - [ - -3.186756480823874, - 19.120497270063993 - ], - [ - -3.186756480823874, - 39.03768366033384 - ], - [ - -2.390025745738626, - 65.32835526899862 - ], - [ - -2.390025745738626, - 103.56937755237928 - ], - [ - -2.390025745738626, - 114.72296974875712 - ], - [ - -2.390025745738626, - 115.51970048384237 - ], - [ - -2.390025745738626, - 114.72296974875712 - ], - [ - -2.390025745738626, - 99.58594582297587 - ], - [ - -1.5933504971590082, - 87.63562289151281 - ], - [ - 0, - 79.668759432706 - ], - [ - 0.7967307350852479, - 76.48197520862928 - ], - [ - 0.7967307350852479, - 75.68532770330259 - ], - [ - 2.39008123224437, - 78.87205644087362 - ], - [ - 3.186756480823874, - 80.46540693803269 - ], - [ - 3.186756480823874, - 80.46540693803269 - ] - ], - "pressures": [ - 0.130859375, - 0.3173828125, - 0.4423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3505859375, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823874, - 80.46540693803269 - ] - }, - { - "id": "6_aq9215c4Bpbs3zarH1D", - "type": "freedraw", - "x": 60.860066203328074, - "y": -212.45001280152846, - "width": 101.97592995383519, - "height": 21.510592373934657, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 608917443, - "version": 388, - "versionNonce": 1905230701, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982939, - -2.390081232244313 - ], - [ - -1.593350497159065, - -3.186784224076689 - ], - [ - 6.373512961647691, - -3.9834317294034065 - ], - [ - 19.91721413352269, - -4.7801347212357825 - ], - [ - 50.191317471590935, - -5.576837713068159 - ], - [ - 70.90520685369319, - -6.3735129616477195 - ], - [ - 86.04231400923294, - -6.3735129616477195 - ], - [ - 91.61904074928981, - -6.3735129616477195 - ], - [ - 92.41571599786931, - -6.3735129616477195 - ], - [ - 82.85550204190343, - -9.560269442471593 - ], - [ - 67.71845037286931, - -14.340404163707376 - ], - [ - 50.191317471590935, - -16.730457652698846 - ], - [ - 31.86750932173294, - -17.527132901278407 - ], - [ - 15.933782404119313, - -18.323835893110783 - ], - [ - 0.7967307350852479, - -19.120511141690343 - ], - [ - -3.186700994318187, - -19.917186390269876 - ], - [ - -3.983431729403378, - -19.917186390269876 - ], - [ - -1.593350497159065, - -19.917186390269876 - ], - [ - 9.560269442471565, - -17.527132901278407 - ], - [ - 20.71388938210231, - -15.137079412286909 - ], - [ - 37.44434703480118, - -13.543701171875 - ], - [ - 54.17474920099431, - -11.950322931463063 - ], - [ - 64.53169389204544, - -10.35697243430397 - ], - [ - 68.51512562144893, - -10.35697243430397 - ], - [ - 66.92177512428981, - -9.560269442471593 - ], - [ - 57.36150568181819, - -9.560269442471593 - ], - [ - 41.42777876420456, - -9.560269442471593 - ], - [ - 15.137107155539809, - -9.560269442471593 - ], - [ - 1.593405983664809, - -9.560269442471593 - ], - [ - -6.373457475142004, - -9.560269442471593 - ], - [ - -9.560213955965878, - -9.560269442471593 - ], - [ - 3.186756480823931, - -10.35697243430397 - ], - [ - 18.323863636363683, - -11.950322931463063 - ], - [ - 39.03769753196019, - -13.543701171875 - ], - [ - 56.56483043323868, - -14.340404163707376 - ], - [ - 67.71845037286931, - -14.340404163707376 - ], - [ - 68.51512562144893, - -14.340404163707376 - ], - [ - 65.32836914062506, - -14.340404163707376 - ], - [ - 55.768155184659065, - -14.340404163707376 - ], - [ - 39.83437278053981, - -13.543701171875 - ], - [ - 23.103970614346565, - -11.950322931463063 - ], - [ - 9.560269442471565, - -9.560269442471593 - ], - [ - 7.170188210227309, - -9.560269442471593 - ], - [ - 11.15367542613643, - -8.763594193892033 - ], - [ - 19.120538884943187, - -8.763594193892033 - ], - [ - 29.477483575994313, - -11.950322931463063 - ], - [ - 42.224454012784065, - -15.93375466086647 - ], - [ - 55.768155184659065, - -19.917186390269876 - ], - [ - 58.95491166548294, - -21.510592373934657 - ], - [ - 58.95491166548294, - -21.510592373934657 - ] - ], - "pressures": [ - 0.1005859375, - 0.2578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.361328125, - 0.0322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.95491166548294, - -21.510592373934657 - ] - }, - { - "id": "zNATukWhRwmFizngRqP3c", - "type": "freedraw", - "x": 134.95202953784525, - "y": -304.2858602739465, - "width": 5.858009628773931, - "height": 106.17618227799346, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 314886275, - "version": 425, - "versionNonce": 255163587, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - -0.5155022109070649 - ], - [ - 0, - -5.641247886424598 - ], - [ - 0.7322384539371394, - -5.641247886424598 - ], - [ - 0.7322384539371394, - -6.373499090021312 - ], - [ - 2.1967153618112096, - 3.145741057416934 - ], - [ - 3.661294266962721, - 17.790739630032398 - ], - [ - 5.125771174836894, - 34.632479063778376 - ], - [ - 5.858009628773931, - 52.93870815505818 - ], - [ - 5.858009628773931, - 70.51271154206057 - ], - [ - 4.393532720899756, - 83.6931822081632 - ], - [ - 2.1967153618112096, - 96.14143991964809 - ], - [ - 2.1967153618112096, - 99.80268318797215 - ], - [ - 2.1967153618112096, - 97.6059678261609 - ], - [ - 2.1967153618112096, - 95.40917596639167 - ], - [ - 2.1967153618112096, - 94.6769375124546 - ], - [ - 2.1967153618112096, - 94.6769375124546 - ] - ], - "pressures": [ - 0.0966796875, - 0.2578125, - 0.3193359375, - 0.4150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6337890625, - 0.1630859375, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.390025745738626, - 103.56934980912641 - ] - }, - { - "id": "xxs46D0vjNrxt1Y-fsEpm", - "type": "freedraw", - "x": 148.13252570326773, - "y": -311.2861710991749, - "width": 86.40546352917977, - "height": 117.15992483262526, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1072357315, - "version": 445, - "versionNonce": 1247373315, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - -0.8376906719864442 - ], - [ - 0, - -3.7666827367137294 - ], - [ - 1.4644769078740696, - -1.5699418755832117 - ], - [ - 5.125771174836791, - 5.7525574107245205 - ], - [ - 11.716019257547757, - 26.987791316391323 - ], - [ - 16.841688435107315, - 43.09727954654059 - ], - [ - 22.699698063881243, - 58.474516573093055 - ], - [ - 27.093230784781, - 72.3872766917714 - ], - [ - 30.754525051743613, - 89.22901612551745 - ], - [ - 33.68347886749197, - 98.74824352329604 - ], - [ - 36.61243268324021, - 105.33849160600703 - ], - [ - 38.07701158839172, - 106.80299401320052 - ], - [ - 38.80925004232876, - 106.80299401320052 - ], - [ - 39.541488496265906, - 105.33849160600703 - ], - [ - 40.27372695020294, - 98.74824352329604 - ], - [ - 41.73820385807709, - 88.49675217226103 - ], - [ - 43.93502121716565, - 71.65503823783438 - ], - [ - 48.328451940788064, - 53.34877089757556 - ], - [ - 54.186461569562, - 29.91679613077829 - ], - [ - 57.11541538531024, - 16.73629996535626 - ], - [ - 60.044471198335934, - 5.7525574107245205 - ], - [ - 62.24118656014715, - -2.302193079179926 - ], - [ - 64.43800391923567, - -9.62467961582798 - ], - [ - 65.1702423731727, - -10.356930819424747 - ], - [ - 65.90248082710974, - -5.96343634750398 - ], - [ - 67.36695773498394, - 2.0913141424005213 - ], - [ - 71.76049045588368, - 19.66529203008359 - ], - [ - 75.42168272556906, - 33.578039399102295 - ], - [ - 79.81521544646884, - 49.687527629251534 - ], - [ - 82.74416926221717, - 65.79702860906046 - ], - [ - 84.94098662130573, - 78.24526082122604 - ], - [ - 85.67322507524275, - 91.42575698664803 - ], - [ - 85.67322507524275, - 94.35476180103494 - ], - [ - 86.40546352917977, - 94.35476180103494 - ], - [ - 84.20874816736858, - 92.89025939384148 - ], - [ - 82.01193080828001, - 89.96128007877383 - ], - [ - 79.08297699253181, - 87.03224976506753 - ], - [ - 78.35073853859468, - 86.30003681044982 - ], - [ - 78.35073853859468, - 86.30003681044982 - ] - ], - "pressures": [ - 0.0927734375, - 0.3701171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.880859375, - 0.228515625, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 85.24558327414763, - 94.80582497336647 - ] - }, - { - "id": "l5m-vK8FUOg9x2wq3WnXW", - "type": "freedraw", - "x": 142.27451607449308, - "y": -211.2725962247632, - "width": 83.47650971343151, - "height": 131.07267220164397, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 530645059, - "version": 458, - "versionNonce": 810765741, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - -10.052294795637824 - ], - [ - 0.7322384539370344, - -10.052294795637824 - ], - [ - 3.6612942669627198, - -19.571573192055084 - ], - [ - 5.125771174836788, - -31.287566950283587 - ], - [ - 6.590248082710962, - -45.20030156964263 - ], - [ - 8.054724990585134, - -59.84528739259843 - ], - [ - 8.054724990585134, - -74.49028596521387 - ], - [ - 8.054724990585134, - -94.99326866728391 - ], - [ - 8.054724990585134, - -106.70926242551239 - ], - [ - 8.054724990585134, - -115.49625136935393 - ], - [ - 8.054724990585134, - -121.35424824846817 - ], - [ - 8.054724990585134, - -123.55100185925835 - ], - [ - 8.054724990585134, - -124.28325306285512 - ], - [ - 8.78696344452217, - -121.35424824846817 - ], - [ - 13.180496165421925, - -103.04801915718832 - ], - [ - 17.574028886321678, - -83.27727490905542 - ], - [ - 24.164276969032638, - -62.77429220698539 - ], - [ - 30.754525051743705, - -45.93254002357969 - ], - [ - 35.88019422930316, - -31.287566950283587 - ], - [ - 41.00596540414004, - -12.981325109344123 - ], - [ - 43.935021217165634, - -1.9975698050526824 - ], - [ - 46.86397503291385, - 4.592703776977615 - ], - [ - 49.0606903947252, - 6.789419138788855 - ], - [ - 49.793030845939555, - 6.789419138788855 - ], - [ - 50.525269299876605, - 3.128175870464803 - ], - [ - 50.525269299876605, - -4.926574619439648 - ], - [ - 51.257507753813734, - -15.910304424411729 - ], - [ - 51.257507753813734, - -30.55530299702719 - ], - [ - 53.454223115624934, - -57.64854653146785 - ], - [ - 55.65093847743615, - -72.29353235442363 - ], - [ - 57.84775583652469, - -84.00952611265213 - ], - [ - 59.31223274439876, - -94.26101746368717 - ], - [ - 60.776709652272935, - -108.17376483270586 - ], - [ - 61.50894810621007, - -114.76400016575718 - ], - [ - 62.24118656014711, - -118.42524343408118 - ], - [ - 62.24118656014711, - -119.1575073873376 - ], - [ - 62.973425014084135, - -116.22850257295065 - ], - [ - 66.63471928104687, - -101.5835167499949 - ], - [ - 68.8315366401354, - -91.33202539895983 - ], - [ - 72.49283090709812, - -78.88378043713465 - ], - [ - 75.42168272556903, - -63.506530660922415 - ], - [ - 79.08297699253174, - -37.14555107973814 - ], - [ - 81.27969235434296, - -20.303811645992177 - ], - [ - 82.01193080827998, - -8.587817887763673 - ], - [ - 82.01193080827998, - -1.9975698050526824 - ], - [ - 82.01193080827998, - 0.9314350093342564 - ], - [ - 82.74416926221713, - 0.9314350093342564 - ], - [ - 83.47650971343151, - 0.9314350093342564 - ], - [ - 82.74416926221713, - -1.2653313511156217 - ], - [ - 82.01193080827998, - -3.4620722122461647 - ], - [ - 82.01193080827998, - -3.4620722122461647 - ] - ], - "pressures": [ - 0.021484375, - 0.669921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.248046875, - 0.0322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 89.22895951704538, - 7.170160466974437 - ] - }, - { - "id": "QXbrcA7h6QPMjWXh036es", - "type": "freedraw", - "x": 143.86786657165277, - "y": -212.6492393441119, - "width": 90.06675779614251, - "height": 120.82118085060894, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2126590595, - "version": 479, - "versionNonce": 731082659, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - -0.1288735892849471, - -9.407915629545576 - ], - [ - -1.593350497159122, - -10.140179582801997 - ], - [ - -1.593350497159122, - -19.65940698058059 - ], - [ - -1.593350497159122, - -31.375400738809084 - ], - [ - 0.6033648646520879, - -47.48490171861802 - ], - [ - 3.5324206776776688, - -64.32664115236395 - ], - [ - 4.996897585551845, - -79.70387817891651 - ], - [ - 5.729136039488881, - -93.61662554793526 - ], - [ - 6.46137449342602, - -108.26161137089098 - ], - [ - 7.193612947363055, - -114.11960825000519 - ], - [ - 7.925953398577426, - -116.3163618607955 - ], - [ - 10.122668760388633, - -114.11960825000519 - ], - [ - 13.78386103007402, - -104.60036810256699 - ], - [ - 19.64187065884795, - -86.2941262616275 - ], - [ - 27.69659564943309, - -60.66539788403996 - ], - [ - 40.144853360917985, - -23.320650248904617 - ], - [ - 46.00286298969192, - -7.211174768415033 - ], - [ - 49.66415725665464, - 1.5758141754265003 - ], - [ - 51.860872618465855, - 4.504818989813438 - ], - [ - 52.593111072402884, - 4.504818989813438 - ], - [ - 53.32534952633991, - 2.3080781286828933 - ], - [ - 54.05758798027704, - -4.282169954028094 - ], - [ - 54.05758798027704, - -16.730427665512988 - ], - [ - 55.522166885428454, - -45.28816085748747 - ], - [ - 57.71888224723966, - -64.32664115236395 - ], - [ - 59.91559760905099, - -81.16838058611 - ], - [ - 61.38007451692505, - -94.34887675153189 - ], - [ - 62.11241496813952, - -108.99386257448776 - ], - [ - 62.84465342207655, - -114.85185945360192 - ], - [ - 62.84465342207655, - -116.3163618607955 - ], - [ - 63.57699387329095, - -116.3163618607955 - ], - [ - 65.04136878388776, - -112.65511859247142 - ], - [ - 67.97032259963602, - -102.40361449177674 - ], - [ - 73.82833222840993, - -76.77488611418923 - ], - [ - 79.68634185718388, - -55.53965220852241 - ], - [ - 84.07987457808362, - -35.768907960389505 - ], - [ - 87.741066847769, - -18.19493007270644 - ], - [ - 88.47340729898339, - -11.60468198999548 - ], - [ - 88.47340729898339, - -8.675651676289181 - ], - [ - 88.47340729898339, - -7.211174768415033 - ], - [ - 88.47340729898339, - -6.478936314477973 - ], - [ - 88.47340729898339, - -5.746672361221551 - ], - [ - 87.741066847769, - -5.014408407965156 - ], - [ - 86.27658993989483, - -5.746672361221551 - ], - [ - 86.27658993989483, - -5.746672361221551 - ] - ], - "pressures": [ - 0.0537109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.947265625, - 0.181640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 94.00912198153401, - 3.9834317294034065 - ] - }, - { - "id": "RHR0x3fMukKatdQGdghUh", - "type": "freedraw", - "x": 322.97027350091327, - "y": -323.189578564135, - "width": 91.61898526278401, - "height": 18.32380814985794, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 915294445, - "version": 347, - "versionNonce": 1514152675, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186700994318244, - 0 - ], - [ - 3.983376242897748, - 0 - ], - [ - 3.186700994318244, - 0 - ], - [ - -2.390025745738626, - -2.390053488991498 - ], - [ - -10.356889204545382, - -4.780120849609375 - ], - [ - -23.104026100852252, - -6.373499090021255 - ], - [ - -37.444402521306756, - -7.966877330433249 - ], - [ - -52.58145419034088, - -10.35693081942469 - ], - [ - -72.49855735085225, - -12.746998180042624 - ], - [ - -81.26220703125, - -14.340376420454504 - ], - [ - -86.04214754971588, - -15.137051669034065 - ], - [ - -87.63560901988626, - -15.933740789240062 - ], - [ - -83.65223277698863, - -17.527119029652 - ], - [ - -78.07528409090901, - -18.32380814985794 - ], - [ - -69.31185635653401, - -18.32380814985794 - ], - [ - -62.14155717329538, - -18.32380814985794 - ], - [ - -57.36150568181813, - -18.32380814985794 - ], - [ - -55.76815518465901, - -18.32380814985794 - ], - [ - -56.564830433238626, - -18.32380814985794 - ], - [ - -59.75164240056813, - -18.32380814985794 - ], - [ - -62.14155717329538, - -18.32380814985794 - ], - [ - -62.14155717329538, - -18.32380814985794 - ] - ], - "pressures": [ - 0.0517578125, - 0.193359375, - 0.24609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4892578125, - 0.23046875, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -62.14155717329538, - -18.32380814985794 - ] - }, - { - "id": "dqkXO_xPuA3cDAPSkEvOK", - "type": "freedraw", - "x": 248.878365652902, - "y": -347.09019668380824, - "width": 7.170188210227252, - "height": 132.25008877840907, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1492970861, - "version": 342, - "versionNonce": 57815245, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967862215909918, - -4.780120849609375 - ], - [ - 0, - -0.7966891202059969 - ], - [ - 2.390025745738626, - 7.966877330433192 - ], - [ - 3.9834872159090082, - 34.257548939098 - ], - [ - 3.9834872159090082, - 56.564802689985754 - ], - [ - 3.18670099431813, - 78.87205644087354 - ], - [ - 3.18670099431813, - 99.58591807972297 - ], - [ - 3.18670099431813, - 113.92629450017753 - ], - [ - 3.9834872159090082, - 125.87658968838775 - ], - [ - 3.9834872159090082, - 127.46996792879969 - ], - [ - 4.780051491477252, - 127.46996792879969 - ], - [ - 4.780051491477252, - 126.67332042347297 - ], - [ - 4.780051491477252, - 121.09648271040479 - ], - [ - 5.576726740056756, - 117.90972622958094 - ], - [ - 6.37340198863626, - 113.92629450017753 - ], - [ - 6.37340198863626, - 113.12959150834513 - ], - [ - 6.37340198863626, - 113.12959150834513 - ] - ], - "pressures": [ - 0.1142578125, - 0.291015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4951171875, - 0.171875, - 0.11328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.37340198863626, - 113.12959150834513 - ] - }, - { - "id": "QJP_EYQZZMqMco2AT1tSb", - "type": "freedraw", - "x": 255.25176764153827, - "y": -230.77384869463924, - "width": 98.78917347301126, - "height": 15.933726917613626, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 760906765, - "version": 345, - "versionNonce": 1827442477, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5933504971590082, - 0.796702991832376 - ], - [ - -3.9833762428976343, - 0 - ], - [ - -5.576726740056756, - 0 - ], - [ - -6.37340198863626, - -1.5933504971590935 - ], - [ - -6.37340198863626, - -2.3900534889914695 - ], - [ - -4.780051491477252, - -3.186756480823874 - ], - [ - 0, - -4.780134721235811 - ], - [ - 7.96686345880687, - -6.373485218394876 - ], - [ - 23.90070134943187, - -9.560213955965907 - ], - [ - 37.44440252130687, - -9.560213955965907 - ], - [ - 52.58145419034099, - -9.560213955965907 - ], - [ - 66.92171963778412, - -7.1701882102272805 - ], - [ - 84.44890802556824, - -1.5933504971590935 - ], - [ - 89.22907049005687, - 3.186756480823874 - ], - [ - 91.6190962357955, - 5.5768099698153435 - ], - [ - 92.415771484375, - 6.3735129616477195 - ], - [ - 91.6190962357955, - 5.5768099698153435 - ], - [ - 87.63560901988637, - 2.390081232244313 - ], - [ - 83.65223277698863, - 0.796702991832376 - ], - [ - 82.85555752840912, - 0 - ], - [ - 82.85555752840912, - 0 - ] - ], - "pressures": [ - 0.00390625, - 0.09375, - 0.2177734375, - 0.2978515625, - 0.61328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6083984375, - 0.197265625, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 82.85555752840912, - 0 - ] - }, - { - "id": "9_2wlQZ3QYLOFR4JoQUA1", - "type": "freedraw", - "x": 253.65841714437926, - "y": -281.76184141480974, - "width": 66.92171963778412, - "height": 1.593378240411937, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 787201827, - "version": 335, - "versionNonce": 289998371, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -0.7966752485795041 - ], - [ - 3.9834872159090082, - -0.7966752485795041 - ], - [ - 19.917214133522748, - -0.7966752485795041 - ], - [ - 31.867453835227252, - -0.7966752485795041 - ], - [ - 43.021240234375, - -0.7966752485795041 - ], - [ - 52.581343217329504, - -0.7966752485795041 - ], - [ - 60.548206676136374, - -0.7966752485795041 - ], - [ - 64.53169389204538, - 0 - ], - [ - 65.328369140625, - 0 - ], - [ - 64.53169389204538, - 0.7967029918324329 - ], - [ - 64.53169389204538, - 0.7967029918324329 - ] - ], - "pressures": [ - 0.08984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.23046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 64.53169389204538, - 0.7967029918324329 - ] - }, - { - "id": "JpY_jAIS-ha49ZuOM4xR0", - "type": "freedraw", - "x": 255.25176764153827, - "y": -329.56307765415625, - "width": 92.415771484375, - "height": 11.153633811257066, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 39774925, - "version": 358, - "versionNonce": 1212948877, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780051491477252, - -0.7966752485796178 - ], - [ - -5.576726740056756, - -0.7966752485796178 - ], - [ - -5.576726740056756, - -1.5933782404119938 - ], - [ - 2.39013671875, - -2.390053488991498 - ], - [ - 14.340376420454618, - -2.390053488991498 - ], - [ - 30.274103338068244, - -2.390053488991498 - ], - [ - 48.59796697443187, - -2.390053488991498 - ], - [ - 66.12504438920462, - 0 - ], - [ - 79.66874556107962, - 3.186770352450253 - ], - [ - 81.26220703125, - 3.983445601029757 - ], - [ - 74.09190784801137, - 3.983445601029757 - ], - [ - 60.54831764914775, - 3.983445601029757 - ], - [ - 47.00461647727275, - 3.983445601029757 - ], - [ - 33.46102627840912, - 3.983445601029757 - ], - [ - 20.713889382102366, - 3.983445601029757 - ], - [ - 4.78016246448874, - 1.5933782404118801 - ], - [ - -3.18670099431813, - -0.7966752485796178 - ], - [ - -8.76353870738626, - -2.390053488991498 - ], - [ - -10.356778231534008, - -3.983431729403435 - ], - [ - -11.153564453125, - -3.983431729403435 - ], - [ - -6.37340198863626, - -2.390053488991498 - ], - [ - 3.983487215909122, - 0 - ], - [ - 16.730513139204618, - 2.390067360617877 - ], - [ - 35.05426580255687, - 3.983445601029757 - ], - [ - 45.41126598011374, - 5.576809969815258 - ], - [ - 52.58145419034099, - 6.373499090021255 - ], - [ - 56.56483043323874, - 7.170202081853631 - ], - [ - 57.36161665482962, - 7.170202081853631 - ], - [ - 54.1748046875, - 7.170202081853631 - ], - [ - 47.00461647727275, - 6.373499090021255 - ], - [ - 38.241077769886374, - 4.780120849609375 - ], - [ - 29.4775390625, - 3.983445601029757 - ], - [ - 23.90070134943187, - 6.373499090021255 - ], - [ - 23.90070134943187, - 6.373499090021255 - ] - ], - "pressures": [ - 0.1162109375, - 0.208984375, - 0.2734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.3994140625, - 0.080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.90070134943187, - 6.373499090021255 - ] - }, - { - "id": "zyOWBQK5lKRJUd5rk_CeC", - "type": "freedraw", - "x": 264.81209257051563, - "y": -330.35975290273586, - "width": 17.527188387784122, - "height": 125.87660356001422, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 258154893, - "version": 368, - "versionNonce": 1261062595, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -6.373512961647691 - ], - [ - 0, - -9.56025557084513 - ], - [ - -0.7966752485796178, - -10.356944691051126 - ], - [ - -1.5934614701704959, - -5.576823841441751 - ], - [ - -3.186811967329618, - 10.356930819424747 - ], - [ - -3.186811967329618, - 48.597911487926126 - ], - [ - -3.983376242897748, - 75.68528608842331 - ], - [ - -5.576837713068244, - 97.19585071910515 - ], - [ - -7.170188210227366, - 109.94287664240059 - ], - [ - -7.170188210227366, - 114.72295587713072 - ], - [ - -7.170188210227366, - 115.51965886896309 - ], - [ - -8.763649680397748, - 105.95941716974434 - ], - [ - -9.560324928977366, - 91.61904074928981 - ], - [ - -9.560324928977366, - 74.88861083984378 - ], - [ - -8.763649680397748, - 50.987992720170496 - ], - [ - -6.373512961647748, - 35.850927179509995 - ], - [ - -5.576837713068244, - 20.713861638849494 - ], - [ - -4.780162464488626, - 5.576796098188993 - ], - [ - -4.780162464488626, - -3.983431729403378 - ], - [ - -4.780162464488626, - -6.373512961647691 - ], - [ - -4.780162464488626, - -0.796702991832376 - ], - [ - -4.780162464488626, - 17.52710515802562 - ], - [ - -5.576837713068244, - 39.83435890891337 - ], - [ - -7.96686345880687, - 70.90515136718753 - ], - [ - -10.35700017755687, - 84.44885253906253 - ], - [ - -11.950239701704618, - 89.2289595170455 - ], - [ - -11.950239701704618, - 88.43228426846593 - ], - [ - -13.543701171875, - 82.05879905007106 - ], - [ - -15.933726917613626, - 66.1250721324574 - ], - [ - -17.527188387784122, - 35.054238059304 - ], - [ - -17.527188387784122, - 15.137051669034122 - ], - [ - -17.527188387784122, - 3.983445601029871 - ], - [ - -17.527188387784122, - 1.593364368785501 - ], - [ - -15.933726917613626, - 11.153619939630744 - ], - [ - -13.543701171875, - 33.46085981889212 - ], - [ - -12.747025923295496, - 61.34490966796878 - ], - [ - -12.747025923295496, - 85.24552778764206 - ], - [ - -11.950239701704618, - 98.78922895951706 - ], - [ - -11.153675426136374, - 99.58590420809662 - ], - [ - -11.153675426136374, - 97.19585071910515 - ], - [ - -10.35700017755687, - 88.43228426846593 - ], - [ - -9.560324928977366, - 80.46542080965912 - ], - [ - -8.763649680397748, - 76.48196133700287 - ], - [ - -8.763649680397748, - 76.48196133700287 - ] - ], - "pressures": [ - 0.05859375, - 0.1474609375, - 0.28515625, - 0.4873046875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8134765625, - 0.2578125, - 0.1142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.763649680397748, - 76.48196133700287 - ] - }, - { - "id": "FrgLTbPFfwrKNGCNRdxGA", - "type": "freedraw", - "x": 257.64190436028827, - "y": -282.55851666338924, - "width": 79.66863458806813, - "height": 25.493982488458812, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1554995245, - "version": 361, - "versionNonce": 181037037, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.9834872159090082, - -1.593378240411937 - ], - [ - -2.39013671875, - -1.593378240411937 - ], - [ - 3.186811967329618, - -1.593378240411937 - ], - [ - 19.120538884943244, - -1.593378240411937 - ], - [ - 64.53158291903412, - 4.7801069779829675 - ], - [ - 64.53158291903412, - 5.5768099698153435 - ], - [ - 42.22434303977275, - 3.186756480823874 - ], - [ - 34.25747958096599, - 1.593378240411937 - ], - [ - 7.96686345880687, - -1.593378240411937 - ], - [ - -5.57683771306813, - -3.983431729403378 - ], - [ - -12.746914950284008, - -5.576823841441751 - ], - [ - -15.137051669034008, - -6.373499090021312 - ], - [ - -7.966863458806756, - -6.373499090021312 - ], - [ - 2.3900257457387397, - -3.186756480823874 - ], - [ - 16.730402166193244, - 3.186756480823874 - ], - [ - 33.460804332386374, - 11.153619939630687 - ], - [ - 49.39453125, - 18.323835893110783 - ], - [ - 51.78466796875, - 19.1204833984375 - ], - [ - 50.987992720170496, - 19.1204833984375 - ], - [ - 43.817804509943244, - 15.93375466086647 - ], - [ - 33.460804332386374, - 8.763566450639217 - ], - [ - 15.137162642045496, - -1.593378240411937 - ], - [ - 5.57672674005687, - -5.576823841441751 - ], - [ - -0.7966752485795041, - -6.373499090021312 - ], - [ - -2.39013671875, - -6.373499090021312 - ], - [ - 1.593350497159122, - -5.576823841441751 - ], - [ - 11.153675426136374, - -3.983431729403378 - ], - [ - 22.307239879261374, - -2.390081232244313 - ], - [ - 32.66412908380687, - 0.7966752485795041 - ], - [ - 43.02112926136374, - 3.9834317294034065 - ], - [ - 54.97147993607962, - 8.763566450639217 - ], - [ - 57.36139470880687, - 9.56024169921875 - ], - [ - 52.58134321732962, - 9.56024169921875 - ], - [ - 45.411155007102366, - 7.966863458806813 - ], - [ - 40.63099254261374, - 5.5768099698153435 - ], - [ - 39.03775301846599, - 4.7801069779829675 - ], - [ - 39.03775301846599, - 4.7801069779829675 - ] - ], - "pressures": [ - 0.0439453125, - 0.267578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4365234375, - 0.150390625, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.03775301846599, - 4.7801069779829675 - ] - }, - { - "id": "Q46hhhzrBfZ50n-Ld5V53", - "type": "freedraw", - "x": 251.26839139864063, - "y": -240.33406265060512, - "width": 94.80579723011363, - "height": 22.307239879261346, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1822471683, - "version": 362, - "versionNonce": 727849315, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - 0 - ], - [ - -6.373401988636374, - -3.9834317294034065 - ], - [ - -7.170188210227366, - -5.576837713068187 - ], - [ - -7.170188210227366, - -7.9668912020596565 - ], - [ - -2.390025745738626, - -7.9668912020596565 - ], - [ - 13.543701171875, - -6.373540704900563 - ], - [ - 21.51067560369313, - -4.7801624644886545 - ], - [ - 35.850941051136374, - -2.390081232244313 - ], - [ - 50.19131747159088, - 0 - ], - [ - 70.90509588068176, - 4.7800792347300955 - ], - [ - 82.05877130681813, - 7.966863458806813 - ], - [ - 86.83893377130676, - 8.763538707386346 - ], - [ - 87.63560901988626, - 8.763538707386346 - ], - [ - 86.04225852272725, - 7.170160466974437 - ], - [ - 77.27871981534088, - 1.5933504971590935 - ], - [ - 64.53169389204538, - -3.9834317294034065 - ], - [ - 48.59785600142038, - -6.373540704900563 - ], - [ - 30.27410333806813, - -5.576837713068187 - ], - [ - 7.966863458806756, - -0.7967307350852195 - ], - [ - 0, - 0.796647505326689 - ], - [ - -1.593350497159122, - 1.5933504971590935 - ], - [ - 0.7966752485795041, - 1.5933504971590935 - ], - [ - 15.137051669034008, - 2.390025745738626 - ], - [ - 29.4775390625, - 3.9834317294034065 - ], - [ - 43.021129261363626, - 4.7800792347300955 - ], - [ - 57.36150568181813, - 4.7800792347300955 - ], - [ - 69.31185635653401, - 3.1867287375710305 - ], - [ - 75.68525834517038, - 2.390025745738626 - ], - [ - 73.29534357244313, - 2.390025745738626 - ], - [ - 64.53169389204538, - 2.390025745738626 - ], - [ - 51.78466796875, - 3.9834317294034065 - ], - [ - 33.460915305397634, - 8.763538707386346 - ], - [ - 26.29061612215901, - 11.95029518821022 - ], - [ - 23.103915127840878, - 13.543645685369313 - ], - [ - 23.103915127840878, - 14.340348677201689 - ], - [ - 26.29061612215901, - 14.340348677201689 - ], - [ - 31.867453835227252, - 14.340348677201689 - ], - [ - 31.867453835227252, - 14.340348677201689 - ] - ], - "pressures": [ - 0.0888671875, - 0.1572265625, - 0.3056640625, - 0.4111328125, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.728515625, - 0.1435546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.867453835227252, - 14.340348677201689 - ] - }, - { - "id": "5geOolWFdc-068WNR5zbP", - "type": "freedraw", - "x": 20.229073660714448, - "y": -147.91837439598868, - "width": 32.66412908380681, - "height": 39.83437278053981, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1363490435, - "version": 357, - "versionNonce": 1181803085, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350851911, - -4.780079234730124 - ], - [ - -0.7967307350851911, - -8.763538707386374 - ], - [ - -1.593405983664752, - -12.746970436789752 - ], - [ - -2.390081232244313, - -13.543673428622185 - ], - [ - -3.186756480823874, - -12.746970436789752 - ], - [ - -3.186756480823874, - -4.780079234730124 - ], - [ - -2.390081232244313, - 7.966891202059685 - ], - [ - -0.7967307350851911, - 16.730457652698874 - ], - [ - 2.390025745738626, - 23.103970614346565 - ], - [ - 3.186700994318187, - 23.90061811967331 - ], - [ - 3.983431729403435, - 23.90061811967331 - ], - [ - 5.5767822265625, - 21.510564630681813 - ], - [ - 9.560213955965935, - 7.170215953480124 - ], - [ - 11.950295188210248, - -1.593350497159065 - ], - [ - 12.746970436789809, - -3.983431729403435 - ], - [ - 12.746970436789809, - -1.593350497159065 - ], - [ - 13.543645685369313, - 6.373512961647748 - ], - [ - 15.933726917613626, - 19.917186390269876 - ], - [ - 17.527077414772748, - 24.697321111505687 - ], - [ - 19.1204833984375, - 26.290699351917624 - ], - [ - 19.91715864701706, - 26.290699351917624 - ], - [ - 22.307184392755687, - 24.697321111505687 - ], - [ - 24.697265625, - 22.30726762251419 - ], - [ - 27.087346857244313, - 18.32380814985794 - ], - [ - 28.680697354403435, - 11.950322931463063 - ], - [ - 29.47737260298294, - 4.780134721235811 - ], - [ - 28.680697354403435, - -1.593350497159065 - ], - [ - 27.087346857244313, - -3.186728737571002 - ], - [ - 25.49394087357956, - -5.576809969815315 - ], - [ - 24.697265625, - -7.170188210227252 - ], - [ - 23.90059037642044, - -6.373485218394876 - ], - [ - 23.90059037642044, - -4.780079234730124 - ], - [ - 23.90059037642044, - -4.780079234730124 - ] - ], - "pressures": [ - 0.017578125, - 0.0927734375, - 0.1474609375, - 0.23046875, - 0.28515625, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5078125, - 0.146484375, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.90059037642044, - -4.780079234730124 - ] - }, - { - "id": "jGjP3u7B4U4RidM-cmLlP", - "type": "freedraw", - "x": 57.67336520900989, - "y": -125.61110677347449, - "width": 3.983431729403435, - "height": 25.49399636008519, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1858273165, - "version": 333, - "versionNonce": 1061090563, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - -2.390081232244313 - ], - [ - 0, - -7.170160466974437 - ], - [ - -0.7967307350851911, - -12.746998180042624 - ], - [ - -1.593405983664752, - -22.30726762251419 - ], - [ - -1.593405983664752, - -23.103915127840878 - ], - [ - -1.593405983664752, - -23.900618119673254 - ], - [ - -2.390081232244313, - -24.697321111505687 - ], - [ - -2.390081232244313, - -25.49399636008519 - ], - [ - -2.390081232244313, - -25.49399636008519 - ] - ], - "pressures": [ - 0.134765625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390081232244313, - -25.49399636008519 - ] - }, - { - "id": "e7G3AP9ZeVXz6bmcofHFl", - "type": "freedraw", - "x": 59.26671570616901, - "y": -175.005721253233, - "width": 3.983431729403435, - "height": 29.47740034623581, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 989958627, - "version": 331, - "versionNonce": 270078125, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -1.593350497159122 - ], - [ - -0.796675248579561, - 0.796675248579561 - ], - [ - 0.796675248579561, - 11.950295188210248 - ], - [ - 1.593350497159065, - 19.91715864701706 - ], - [ - 2.390081232244313, - 26.290699351917624 - ], - [ - 3.186756480823874, - 27.88404984907669 - ], - [ - 3.186756480823874, - 27.88404984907669 - ] - ], - "pressures": [ - 0.1826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823874, - 27.88404984907669 - ] - }, - { - "id": "5_yc_wftK_f_rzwTPic_U", - "type": "freedraw", - "x": 71.21701089437926, - "y": -172.61564002098868, - "width": 1.593405983664752, - "height": 48.597911487926126, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 586769229, - "version": 337, - "versionNonce": 1715428515, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.390081232244313 - ], - [ - 0, - -1.593405983664752 - ], - [ - 0, - 2.390025745738626 - ], - [ - 0, - 15.933726917613626 - ], - [ - 0, - 25.493968616832376 - ], - [ - 0, - 34.257535067471565 - ], - [ - 0, - 41.427723277698874 - ], - [ - 0, - 45.41115500710225 - ], - [ - 0, - 46.20783025568181 - ], - [ - 0.7967307350852479, - 46.20783025568181 - ], - [ - 1.593405983664752, - 43.02107377485794 - ], - [ - 1.593405983664752, - 40.6310202858665 - ], - [ - 1.593405983664752, - 40.6310202858665 - ] - ], - "pressures": [ - 0.068359375, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2802734375, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593405983664752, - 40.6310202858665 - ] - }, - { - "id": "KBxQ8gUg9FZMUdRFT9EY4", - "type": "freedraw", - "x": 87.15079329849851, - "y": -171.818992515662, - "width": 4.780106977982996, - "height": 54.97145219282669, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 644560227, - "version": 336, - "versionNonce": 627864333, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - 0, - 0 - ], - [ - 0, - 11.153647682883559 - ], - [ - 0, - 31.070834073153435 - ], - [ - 0, - 41.427751020951746 - ], - [ - 0, - 47.80123623934662 - ], - [ - 0, - 50.191317471590935 - ], - [ - 0.7966752485796178, - 50.98802046342331 - ], - [ - 2.390025745738626, - 50.98802046342331 - ], - [ - 3.9834317294034918, - 48.597939231179 - ], - [ - 4.780106977982996, - 47.80123623934662 - ], - [ - 4.780106977982996, - 47.80123623934662 - ] - ], - "pressures": [ - 0.1416015625, - 0.3056640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90234375, - 0.1796875, - 0.009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.780106977982996, - 47.80123623934662 - ] - }, - { - "id": "juIr74zzceHD2GPOOwbs_", - "type": "freedraw", - "x": 145.30891874239063, - "y": -122.42437803590343, - "width": 32.6641845703125, - "height": 49.39458673650563, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1835184835, - "version": 354, - "versionNonce": 202494019, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593378240411937 - ], - [ - -2.390025745738626, - -13.543673428622185 - ], - [ - -2.390025745738626, - -26.290643865411937 - ], - [ - -2.390025745738626, - -37.444291548295496 - ], - [ - -2.390025745738626, - -43.02110151811081 - ], - [ - -2.390025745738626, - -43.81780450994319 - ], - [ - -2.390025745738626, - -43.02110151811081 - ], - [ - -2.390025745738626, - -39.03766978870743 - ], - [ - -2.390025745738626, - -30.274075594815372 - ], - [ - -3.9834317294034918, - -22.30721213600856 - ], - [ - -4.780106977982996, - -14.340348677201746 - ], - [ - -5.5767822265625, - -13.543673428622185 - ], - [ - -5.5767822265625, - -15.933726917613683 - ], - [ - -0.7966752485796178, - -30.274075594815372 - ], - [ - 3.9834872159090082, - -40.63104802911931 - ], - [ - 7.966863458806756, - -45.41115500710231 - ], - [ - 9.560324928977252, - -46.20783025568181 - ], - [ - 11.950350674715878, - -46.20783025568181 - ], - [ - 15.137051669034008, - -46.20783025568181 - ], - [ - 19.12053888494313, - -44.61447975852275 - ], - [ - 23.103915127840878, - -41.427723277698874 - ], - [ - 25.494051846590878, - -37.444291548295496 - ], - [ - 27.08740234375, - -31.070806329900563 - ], - [ - 27.08740234375, - -25.493996360085248 - ], - [ - 24.697376598011374, - -15.137051669034122 - ], - [ - 21.510564630681756, - -4.780106977982996 - ], - [ - 20.713889382102252, - 3.186756480823817 - ], - [ - 20.713889382102252, - 2.390081232244313 - ], - [ - 22.307239879261374, - -1.593378240411937 - ], - [ - 22.307239879261374, - -1.593378240411937 - ] - ], - "pressures": [ - 0.1171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2255859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307239879261374, - -1.593378240411937 - ] - }, - { - "id": "BvOB6NhhB9kbSOmnQBamV", - "type": "freedraw", - "x": 180.3631845449474, - "y": -137.56142970493755, - "width": 31.867453835227366, - "height": 43.81780450994319, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 499338435, - "version": 345, - "versionNonce": 1390709101, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 5.576809969815372 - ], - [ - -0.7966752485795041, - 12.747025923295439 - ], - [ - -0.7966752485795041, - 17.527132901278435 - ], - [ - 0.7966752485796178, - 20.71388938210231 - ], - [ - 4.780162464488626, - 22.307239879261374 - ], - [ - 6.373512961647748, - 22.307239879261374 - ], - [ - 15.137051669034122, - 16.730457652698874 - ], - [ - 21.51056463068187, - 7.966863458806813 - ], - [ - 26.290727095170496, - -1.593378240411937 - ], - [ - 27.884077592329618, - -8.763566450639189 - ], - [ - 23.900590376420496, - -16.730429909446002 - ], - [ - 18.323863636363626, - -20.713861638849437 - ], - [ - 13.543701171875, - -21.510564630681813 - ], - [ - 7.170188210227252, - -18.32380814985794 - ], - [ - 1.593350497159122, - -9.56024169921875 - ], - [ - -3.18670099431813, - 2.390053488991498 - ], - [ - -3.983376242897748, - 6.373512961647748 - ], - [ - -3.18670099431813, - 9.56024169921875 - ], - [ - -0.7966752485795041, - 10.356944691051126 - ], - [ - 0.7966752485796178, - 10.356944691051126 - ], - [ - 0.7966752485796178, - 10.356944691051126 - ] - ], - "pressures": [ - 0.1552734375, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5380859375, - 0.2333984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485796178, - 10.356944691051126 - ] - }, - { - "id": "-mJTx3WeW-Gez0XB4hYjq", - "type": "freedraw", - "x": 212.23063838017464, - "y": -116.05086507425574, - "width": 7.170188210227252, - "height": 71.70185435901988, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 440509197, - "version": 337, - "versionNonce": 580177891, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780162464488626, - -6.373512961647691 - ], - [ - 4.780162464488626, - -11.153619939630687 - ], - [ - 4.780162464488626, - -18.32380814985794 - ], - [ - 4.780162464488626, - -27.88404984907669 - ], - [ - 4.780162464488626, - -38.240994540127815 - ], - [ - 4.780162464488626, - -54.17474920099431 - ], - [ - 3.983487215909122, - -62.9383156516335 - ], - [ - 2.39013671875, - -68.515097878196 - ], - [ - 0.7967862215909918, - -71.70185435901988 - ], - [ - 0, - -71.70185435901988 - ], - [ - -1.5933504971590082, - -70.90517911044032 - ], - [ - -2.390025745738626, - -70.10850386186075 - ], - [ - -2.390025745738626, - -70.10850386186075 - ] - ], - "pressures": [ - 0.17578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.30078125, - 0.1728515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - -70.10850386186075 - ] - }, - { - "id": "pq_yLaJTIE_c2BIeVebLu", - "type": "freedraw", - "x": 197.09358671114063, - "y": -166.24218254584662, - "width": 62.938343394886374, - "height": 4.780106977982939, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 678304163, - "version": 336, - "versionNonce": 432722893, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 1.593405983664752 - ], - [ - 1.5934614701703822, - 0.796702991832376 - ], - [ - 7.966863458806756, - -0.796675248579561 - ], - [ - 16.730513139204504, - -2.390025745738626 - ], - [ - 27.884077592329504, - -2.390025745738626 - ], - [ - 39.834539240056756, - -1.593350497159122 - ], - [ - 55.76826615767038, - -0.796675248579561 - ], - [ - 60.548317649147634, - 0 - ], - [ - 61.34499289772725, - 0 - ], - [ - 60.548317649147634, - 1.593405983664752 - ], - [ - 58.158180930397634, - 2.390081232244313 - ], - [ - 58.158180930397634, - 2.390081232244313 - ] - ], - "pressures": [ - 0.11328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8076171875, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.158180930397634, - 2.390081232244313 - ] - }, - { - "id": "19Ge52ZE55RuBecQszfF4", - "type": "freedraw", - "x": 7.482047737419009, - "y": -104.89724513462505, - "width": 70.10853160511368, - "height": 118.70641534978694, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 923770061, - "version": 415, - "versionNonce": 622331021, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -3.186756480823874 - ], - [ - -2.390081232244313, - -2.390053488991441 - ], - [ - -2.390081232244313, - 7.966863458806813 - ], - [ - -2.390081232244313, - 24.697293368252872 - ], - [ - -2.390081232244313, - 44.61447975852275 - ], - [ - -2.390081232244313, - 74.88861083984375 - ], - [ - -2.390081232244313, - 90.02566250887787 - ], - [ - -2.390081232244313, - 99.58593195134944 - ], - [ - -1.593405983664752, - 103.56936368075287 - ], - [ - -1.593405983664752, - 98.78920121626419 - ], - [ - -2.390081232244313, - 86.838906028054 - ], - [ - -2.390081232244313, - 70.10850386186081 - ], - [ - -2.390081232244313, - 49.3946144797585 - ], - [ - -2.390081232244313, - 20.713861638849437 - ], - [ - -2.390081232244313, - 7.170188210227309 - ], - [ - -2.390081232244313, - -1.593378240411937 - ], - [ - -2.390081232244313, - -7.170188210227252 - ], - [ - -2.390081232244313, - -8.763566450639189 - ], - [ - -2.390081232244313, - -0.796702991832376 - ], - [ - -3.186700994318187, - 15.137051669034122 - ], - [ - -3.983431729403435, - 35.054238059304 - ], - [ - -4.780106977982939, - 65.32834139737218 - ], - [ - -4.780106977982939, - 81.2621238014915 - ], - [ - -3.983431729403435, - 90.82233775745738 - ], - [ - -3.186700994318187, - 94.00909423828125 - ], - [ - -2.390081232244313, - 88.43231201171875 - ], - [ - -2.390081232244313, - 79.66871781782669 - ], - [ - -2.390081232244313, - 68.515097878196 - ], - [ - -1.593405983664752, - 54.971396706321 - ], - [ - 0, - 39.037669788707376 - ], - [ - 0, - 35.054238059304 - ], - [ - 0, - 32.6641845703125 - ], - [ - 0, - 30.274103338068187 - ], - [ - 0, - 29.477428089488626 - ], - [ - 0, - 31.070806329900563 - ], - [ - -1.593405983664752, - 34.25756281072444 - ], - [ - -2.390081232244313, - 35.850941051136374 - ], - [ - -3.186700994318187, - 36.647616299715935 - ], - [ - -4.780106977982939, - 39.037669788707376 - ], - [ - -5.576837713068187, - 39.037669788707376 - ], - [ - -4.780106977982939, - 39.037669788707376 - ], - [ - -1.593405983664752, - 39.83437278053975 - ], - [ - 4.780162464488626, - 39.83437278053975 - ], - [ - 14.340376420454561, - 37.44429154829544 - ], - [ - 37.44429154829544, - 35.054238059304 - ], - [ - 50.19131747159088, - 35.054238059304 - ], - [ - 58.95485617897725, - 35.850941051136374 - ], - [ - 62.93828790838063, - 35.850941051136374 - ], - [ - 64.5316938920455, - 36.647616299715935 - ], - [ - 62.141612659801126, - 36.647616299715935 - ], - [ - 59.751531427556756, - 36.647616299715935 - ], - [ - 57.36150568181813, - 36.647616299715935 - ], - [ - 55.76809969815338, - 36.647616299715935 - ], - [ - 54.971424449573874, - 35.850941051136374 - ], - [ - 53.378018465909065, - 33.46085981889206 - ], - [ - 52.58134321732956, - 31.070806329900563 - ], - [ - 51.78466796875, - 27.88404984907669 - ], - [ - 51.78466796875, - 21.510564630681813 - ], - [ - 52.58134321732956, - 15.137051669034122 - ], - [ - 54.17474920099431, - 8.763566450639189 - ], - [ - 54.971424449573874, - 0.796675248579561 - ], - [ - 56.564774946732996, - -9.56024169921875 - ], - [ - 56.564774946732996, - -13.543673428622128 - ], - [ - 56.564774946732996, - -14.340376420454561 - ], - [ - 56.564774946732996, - -15.137051669034065 - ], - [ - 56.564774946732996, - -1.593378240411937 - ], - [ - 54.17474920099431, - 18.32380814985794 - ], - [ - 51.78466796875, - 40.63104802911931 - ], - [ - 48.597911487926126, - 60.54823441938919 - ], - [ - 47.00456099076706, - 79.66871781782669 - ], - [ - 47.00456099076706, - 86.838906028054 - ], - [ - 47.00456099076706, - 89.22898726029831 - ], - [ - 47.801236239346565, - 89.22898726029831 - ], - [ - 47.801236239346565, - 85.24555553089488 - ], - [ - 47.801236239346565, - 65.32834139737218 - ], - [ - 48.597911487926126, - 48.597911487926126 - ], - [ - 51.78466796875, - 31.867481578480124 - ], - [ - 54.971424449573874, - 19.917186390269876 - ], - [ - 56.564774946732996, - 7.966863458806813 - ], - [ - 56.564774946732996, - 1.593378240411937 - ], - [ - 56.564774946732996, - -1.593378240411937 - ], - [ - 55.76809969815338, - 9.56024169921875 - ], - [ - 54.17474920099431, - 22.307239879261374 - ], - [ - 53.378018465909065, - 39.037669788707376 - ], - [ - 52.58134321732956, - 57.36147793856537 - ], - [ - 52.58134321732956, - 79.66871781782669 - ], - [ - 52.58134321732956, - 88.43231201171875 - ], - [ - 52.58134321732956, - 92.41574374112218 - ], - [ - 52.58134321732956, - 93.21241898970169 - ], - [ - 53.378018465909065, - 91.61906849254262 - ], - [ - 52.58134321732956, - 86.04223077947444 - ], - [ - 52.58134321732956, - 78.07536732066762 - ], - [ - 52.58134321732956, - 75.68528608842331 - ], - [ - 52.58134321732956, - 75.68528608842331 - ] - ], - "pressures": [ - 0.1064453125, - 0.3544921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3740234375, - 0.138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 52.58134321732956, - 75.68528608842331 - ] - }, - { - "id": "-vOv13uNuO_VxWgi_NgwF", - "type": "freedraw", - "x": 98.30441323812926, - "y": -99.32043516480968, - "width": 9.560213955965992, - "height": 116.31633411754262, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 475868835, - "version": 367, - "versionNonce": 1243736813, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - -3.983431729403435 - ], - [ - -0.7966752485796178, - -5.576809969815372 - ], - [ - -1.593405983664752, - -6.373512961647748 - ], - [ - -1.593405983664752, - -5.576809969815372 - ], - [ - -1.593405983664752, - 0.7966752485795041 - ], - [ - -1.593405983664752, - 11.153619939630687 - ], - [ - -0.7966752485796178, - 25.49399636008519 - ], - [ - 0, - 55.76809969815338 - ], - [ - 0, - 74.88858309659088 - ], - [ - -0.7966752485796178, - 89.22895951704544 - ], - [ - -1.593405983664752, - 95.60247247869313 - ], - [ - -1.593405983664752, - 96.39914772727269 - ], - [ - -1.593405983664752, - 93.21239124644882 - ], - [ - -2.39008123224437, - 85.245527787642 - ], - [ - -2.39008123224437, - 72.49855735085225 - ], - [ - -2.39008123224437, - 55.76809969815338 - ], - [ - 0, - 23.900618119673254 - ], - [ - 2.390025745738626, - 8.763566450639189 - ], - [ - 3.983431729403378, - 0.7966752485795041 - ], - [ - 3.983431729403378, - -2.390053488991498 - ], - [ - 3.983431729403378, - -3.186756480823874 - ], - [ - 3.186756480823874, - -3.186756480823874 - ], - [ - 2.390025745738626, - 2.390053488991441 - ], - [ - 0.7966752485795041, - 20.713861638849437 - ], - [ - -2.39008123224437, - 57.36150568181813 - ], - [ - -3.186756480823874, - 74.09190784801132 - ], - [ - -3.186756480823874, - 82.05877130681813 - ], - [ - -2.39008123224437, - 83.65217729048294 - ], - [ - -2.39008123224437, - 82.85550204190338 - ], - [ - -2.39008123224437, - 70.10847611860794 - ], - [ - -1.593405983664752, - 53.37807395241475 - ], - [ - -0.7966752485796178, - 31.867481578480067 - ], - [ - 0.7966752485795041, - 9.56024169921875 - ], - [ - 3.983431729403378, - -8.763566450639246 - ], - [ - 5.5767822265625, - -19.1204833984375 - ], - [ - 5.5767822265625, - -19.917186390269933 - ], - [ - 5.5767822265625, - -16.73042990944606 - ], - [ - 3.983431729403378, - -7.170188210227309 - ], - [ - 0, - 23.10394287109375 - ], - [ - -3.186756480823874, - 47.801236239346565 - ], - [ - -3.9834317294034918, - 64.53169389204544 - ], - [ - -3.9834317294034918, - 71.70188210227269 - ], - [ - -3.9834317294034918, - 73.29523259943181 - ], - [ - -3.186756480823874, - 73.29523259943181 - ], - [ - -0.7966752485796178, - 70.9051513671875 - ], - [ - -0.7966752485796178, - 68.51512562144882 - ], - [ - -0.7966752485796178, - 68.51512562144882 - ] - ], - "pressures": [ - 0, - 0.1025390625, - 0.1865234375, - 0.3359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8984375, - 0.1982421875, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7966752485796178, - 68.51512562144882 - ] - }, - { - "id": "1B5Uje19RUiTpFiHrye_r", - "type": "freedraw", - "x": 108.66135792918038, - "y": -103.30386689421312, - "width": 129.8600630326705, - "height": 24.697293368252815, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1775766573, - "version": 356, - "versionNonce": 2080866819, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -0.796702991832376 - ], - [ - -3.983487215909122, - -2.390081232244313 - ], - [ - -4.780162464488626, - -3.186756480823874 - ], - [ - -5.576837713068244, - -3.983431729403378 - ], - [ - 0, - -4.780134721235811 - ], - [ - 7.170188210227252, - -6.373512961647748 - ], - [ - 19.1204833984375, - -7.170188210227252 - ], - [ - 35.054210316051126, - -7.170188210227252 - ], - [ - 61.34493741122162, - -2.390081232244313 - ], - [ - 76.48198908025563, - 2.390053488991498 - ], - [ - 89.22890403053975, - 7.966863458806813 - ], - [ - 95.6024169921875, - 11.153619939630687 - ], - [ - 96.399092240767, - 13.543673428622185 - ], - [ - 92.41571599786926, - 16.730429909446002 - ], - [ - 83.65217729048288, - 17.527105158025563 - ], - [ - 70.9051513671875, - 15.933754660866498 - ], - [ - 54.174749200994256, - 12.746998180042624 - ], - [ - 25.493996360085248, - 5.576809969815372 - ], - [ - 7.170188210227252, - 1.593378240411937 - ], - [ - -7.9669189453125, - -0.796702991832376 - ], - [ - -19.120538884943244, - -1.593378240411937 - ], - [ - -23.900645862926126, - -1.593378240411937 - ], - [ - -24.697321111505744, - -1.593378240411937 - ], - [ - -22.307295365767118, - -1.593378240411937 - ], - [ - -15.137107155539752, - 0 - ], - [ - -4.780162464488626, - 1.593378240411937 - ], - [ - 7.170188210227252, - 3.186756480823874 - ], - [ - 29.477428089488626, - 3.983431729403435 - ], - [ - 48.597911487926126, - 3.983431729403435 - ], - [ - 67.71845037286926, - 3.983431729403435 - ], - [ - 86.04220303622162, - 3.983431729403435 - ], - [ - 103.56928045099426, - 6.373485218394876 - ], - [ - 105.16274192116475, - 6.373485218394876 - ], - [ - 104.36606667258525, - 7.966863458806813 - ], - [ - 99.58590420809662, - 9.56024169921875 - ], - [ - 92.41571599786926, - 11.153619939630687 - ], - [ - 90.82236550071025, - 11.950295188210248 - ], - [ - 90.82236550071025, - 11.950295188210248 - ] - ], - "pressures": [ - 0.05078125, - 0.15234375, - 0.3076171875, - 0.642578125, - 0.8173828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8662109375, - 0.2451171875, - 0.138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 90.82236550071025, - 11.950295188210248 - ] - }, - { - "id": "NjNoBo5ZGokDxnPckyoAf", - "type": "freedraw", - "x": 103.08452021611214, - "y": -26.025202565377867, - "width": 106.75609241832387, - "height": 19.12053888494313, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 246846381, - "version": 351, - "versionNonce": 1269552045, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 2.390081232244313 - ], - [ - -5.5767822265625, - 4.780106977982939 - ], - [ - -7.170188210227252, - 7.966863458806813 - ], - [ - -7.966863458806756, - 9.560269442471565 - ], - [ - -4.780106977982882, - 8.763538707386317 - ], - [ - 3.186756480823874, - 7.170188210227252 - ], - [ - 20.713889382102366, - 3.983431729403378 - ], - [ - 35.05426580255687, - 2.390081232244313 - ], - [ - 50.987937233664866, - 1.593350497159065 - ], - [ - 64.53163840553987, - 1.593350497159065 - ], - [ - 75.68531383167613, - 2.390081232244313 - ], - [ - 77.27866432883525, - 2.390081232244313 - ], - [ - 74.88863858309662, - 2.390081232244313 - ], - [ - 66.12509987571025, - 2.390081232244313 - ], - [ - 44.61453524502849, - 2.390081232244313 - ], - [ - 27.884077592329618, - 0.7966752485795041 - ], - [ - 11.950295188210248, - -0.796675248579561 - ], - [ - -4.780106977982882, - -2.390081232244313 - ], - [ - -23.103915127840878, - -2.390081232244313 - ], - [ - -27.884077592329504, - -1.593350497159122 - ], - [ - -29.477428089488626, - -1.593350497159122 - ], - [ - -26.290671608664752, - -1.593350497159122 - ], - [ - -9.560269442471508, - 0 - ], - [ - 7.96686345880687, - 2.390081232244313 - ], - [ - 26.290671608664866, - 5.576837713068187 - ], - [ - 44.61453524502849, - 10.356944691051126 - ], - [ - 66.12509987571025, - 15.933726917613626 - ], - [ - 70.9051513671875, - 16.730457652698817 - ], - [ - 71.70182661576712, - 16.730457652698817 - ], - [ - 69.31180087002849, - 11.153619939630687 - ], - [ - 65.32831365411937, - 6.373512961647691 - ], - [ - 60.54826216264212, - 3.983431729403378 - ], - [ - 60.54826216264212, - 3.983431729403378 - ] - ], - "pressures": [ - 0.05859375, - 0.1552734375, - 0.1962890625, - 0.2255859375, - 0.3486328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8466796875, - 0.265625, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.54826216264212, - 3.983431729403378 - ] - }, - { - "id": "HtS_Cx3b0JNxlE9xxGlUH", - "type": "freedraw", - "x": 99.89776373528827, - "y": -61.87614361651424, - "width": 62.938287908380744, - "height": 11.153619939630687, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 942667587, - "version": 348, - "versionNonce": 1953384867, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 1.593378240411937 - ], - [ - -0.7966752485795041, - 1.593378240411937 - ], - [ - 5.576837713068244, - 1.593378240411937 - ], - [ - 15.137051669034122, - 1.593378240411937 - ], - [ - 26.290671608664866, - 0.796702991832376 - ], - [ - 42.22445401278412, - -1.593350497159122 - ], - [ - 48.59796697443187, - -1.593350497159122 - ], - [ - 50.19131747159099, - -1.593350497159122 - ], - [ - 45.411155007102366, - -1.593350497159122 - ], - [ - 35.850941051136374, - -0.796675248579561 - ], - [ - 24.697321111505744, - 0.796702991832376 - ], - [ - 12.747025923295496, - 1.593378240411937 - ], - [ - -0.7966752485795041, - 1.593378240411937 - ], - [ - -3.1867564808237603, - 1.593378240411937 - ], - [ - -3.983431729403378, - 1.593378240411937 - ], - [ - -2.390025745738626, - 1.593378240411937 - ], - [ - 4.780106977982996, - 0.796702991832376 - ], - [ - 23.10391512784099, - 0 - ], - [ - 38.241022283380744, - 0 - ], - [ - 50.987992720170496, - 3.186756480823874 - ], - [ - 57.361505681818244, - 5.576809969815315 - ], - [ - 58.954856178977366, - 7.170188210227252 - ], - [ - 54.97147993607962, - 8.763594193892061 - ], - [ - 47.00461647727275, - 9.560269442471565 - ], - [ - 37.444291548295496, - 7.966863458806813 - ], - [ - 30.274103338068244, - 6.373512961647691 - ], - [ - 27.08740234375, - 4.780134721235811 - ], - [ - 27.08740234375, - 3.98345947265625 - ], - [ - 27.884077592329618, - 2.390081232244313 - ], - [ - 27.884077592329618, - 2.390081232244313 - ] - ], - "pressures": [ - 0.060546875, - 0.2880859375, - 0.849609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.73046875, - 0.24609375, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884077592329618, - 2.390081232244313 - ] - }, - { - "id": "VA0xhBAjdopQAW85NHyFb", - "type": "freedraw", - "x": 185.143347009436, - "y": -22.04177083597449, - "width": 66.12504438920462, - "height": 112.33290238813919, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1127715139, - "version": 341, - "versionNonce": 128898573, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983376242897748, - -8.763538707386374 - ], - [ - 7.96686345880687, - -17.527132901278378 - ], - [ - 13.543701171875, - -31.07077858664769 - ], - [ - 19.917103160511374, - -47.00453324751419 - ], - [ - 30.274103338068244, - -66.92171963778407 - ], - [ - 36.64761629971599, - -78.07533957741475 - ], - [ - 41.427667791193244, - -87.63560901988637 - ], - [ - 43.021129261363626, - -94.80576948686075 - ], - [ - 43.817804509943244, - -97.99252596768463 - ], - [ - 44.61447975852275, - -97.99252596768463 - ], - [ - 45.41115500710225, - -92.41571599786931 - ], - [ - 47.004505504261374, - -81.26209605823863 - ], - [ - 49.39453125, - -64.53166614879262 - ], - [ - 53.37801846590912, - -40.63104802911931 - ], - [ - 59.751642400568244, - -7.966863458806813 - ], - [ - 62.938232421875, - 4.780106977982939 - ], - [ - 63.73501864346599, - 11.153619939630687 - ], - [ - 65.328369140625, - 14.340376420454561 - ], - [ - 66.12504438920462, - 14.340376420454561 - ], - [ - 65.328369140625, - 12.747025923295439 - ], - [ - 62.938232421875, - 6.373512961647748 - ], - [ - 60.548206676136374, - 1.593405983664809 - ], - [ - 60.548206676136374, - 1.593405983664809 - ] - ], - "pressures": [ - 0.1708984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8955078125, - 0.330078125, - 0.125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.548206676136374, - 1.593405983664809 - ] - }, - { - "id": "mTJlSgK3XsD8-kQ_Lx3-7", - "type": "freedraw", - "x": 192.31353521966327, - "y": -53.90928015770743, - "width": 59.751642400568244, - "height": 8.763538707386374, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 544914669, - "version": 331, - "versionNonce": 802889027, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186811967329504, - 0 - ], - [ - 4.780051491477366, - -4.780106977982939 - ], - [ - 15.93372691761374, - -7.966863458806813 - ], - [ - 28.680752840909122, - -8.763538707386374 - ], - [ - 40.63099254261374, - -8.763538707386374 - ], - [ - 52.58145419034099, - -8.763538707386374 - ], - [ - 56.56483043323874, - -7.966863458806813 - ], - [ - 54.971368963068244, - -7.170160466974437 - ], - [ - 50.987992720170496, - -5.5767822265625 - ], - [ - 47.004505504261374, - -5.5767822265625 - ], - [ - 41.427667791193244, - -5.5767822265625 - ], - [ - 37.444291548295496, - -5.5767822265625 - ], - [ - 37.444291548295496, - -5.5767822265625 - ] - ], - "pressures": [ - 0.0576171875, - 0.5615234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.701171875, - 0.2734375, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 37.444291548295496, - -5.5767822265625 - ] - }, - { - "id": "LiuLCiuj-eydP6hge66hO", - "type": "freedraw", - "x": 183.549996512277, - "y": -19.651689603730176, - "width": 63.734907670454504, - "height": 117.11306485262782, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 360051139, - "version": 364, - "versionNonce": 618826861, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.18670099431813, - -7.966863458806813 - ], - [ - 11.153564453125, - -28.680752840909065 - ], - [ - 23.900590376420382, - -56.564802689985754 - ], - [ - 27.88396661931813, - -64.53169389204544 - ], - [ - 39.83431729403401, - -89.22898726029825 - ], - [ - 44.614479758522634, - -101.97598544034088 - ], - [ - 47.80118075284088, - -109.14614590731532 - ], - [ - 48.59785600142038, - -110.73955189098007 - ], - [ - 48.59785600142038, - -108.34949840198863 - ], - [ - 49.39453125, - -88.43231201171875 - ], - [ - 49.39453125, - -69.31180087002838 - ], - [ - 49.39453125, - -49.3946144797585 - ], - [ - 50.191206498579504, - -31.070834073153378 - ], - [ - 52.581343217329504, - -7.966863458806813 - ], - [ - 53.37812943892038, - 1.593350497159122 - ], - [ - 54.174693714488626, - 5.5767822265625 - ], - [ - 54.97136896306813, - 6.373512961647748 - ], - [ - 54.97136896306813, - 5.5767822265625 - ], - [ - 54.97136896306813, - 3.983431729403435 - ], - [ - 54.97136896306813, - 3.186756480823874 - ], - [ - 54.97136896306813, - 1.593350497159122 - ], - [ - 54.174693714488626, - -3.983431729403378 - ], - [ - 52.581343217329504, - -7.966863458806813 - ], - [ - 50.98788174715901, - -13.543701171875 - ], - [ - 47.80118075284088, - -21.510564630681813 - ], - [ - 44.614479758522634, - -32.6641845703125 - ], - [ - 38.240966796875, - -47.004560990767004 - ], - [ - 35.05415482954538, - -52.581370960582376 - ], - [ - 31.070778586647634, - -54.17474920099431 - ], - [ - 27.087291370738626, - -54.97145219282669 - ], - [ - 21.510453657670382, - -54.97145219282669 - ], - [ - 18.323752663352252, - -54.97145219282669 - ], - [ - 16.73040216619313, - -54.97145219282669 - ], - [ - 15.933726917613626, - -54.97145219282669 - ], - [ - 15.933726917613626, - -53.37807395241475 - ], - [ - 14.34026544744313, - -50.19131747159088 - ], - [ - 12.746914950284008, - -46.2078857421875 - ], - [ - 11.950239701704504, - -45.411182750355124 - ], - [ - 11.153564453125, - -44.61450750177556 - ], - [ - 13.543590198863626, - -43.021129261363626 - ], - [ - 19.91710316051126, - -39.83437278053975 - ], - [ - 27.88396661931813, - -39.03769753196019 - ], - [ - 37.44429154829538, - -38.240994540127815 - ], - [ - 46.207830255681756, - -37.444319291548254 - ], - [ - 63.734907670454504, - -35.850941051136374 - ], - [ - 63.734907670454504, - -35.850941051136374 - ] - ], - "pressures": [ - 0.095703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 63.734907670454504, - -35.850941051136374 - ] - }, - { - "id": "ogkskhfGbYof3ReQDdH-l", - "type": "freedraw", - "x": 248.081579431311, - "y": -55.50263065486655, - "width": 11.950239701704504, - "height": 4.780106977982996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 615405763, - "version": 325, - "versionNonce": 2041347299, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -11.950239701704504, - 0 - ], - [ - -0.7966752485795041, - 3.186756480823874 - ], - [ - -2.390025745738626, - 3.983431729403435 - ], - [ - -4.780051491477252, - 3.983431729403435 - ], - [ - -5.576726740056756, - 3.983431729403435 - ], - [ - -5.576726740056756, - 4.780106977982996 - ], - [ - -5.576726740056756, - 4.780106977982996 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 0.8427734375, - 0.1962890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.576726740056756, - 4.780106977982996 - ] - }, - { - "id": "SV3or7kb7ISfNtlgZN5pB", - "type": "freedraw", - "x": 267.99879356483376, - "y": -129.59456624613074, - "width": 90.02552379261363, - "height": 134.64022549715912, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 183790189, - "version": 350, - "versionNonce": 588281549, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967862215908781, - -7.170160466974437 - ], - [ - 0.7967862215908781, - -8.763538707386374 - ], - [ - 0.7967862215908781, - -9.56024169921875 - ], - [ - 0.7967862215908781, - -1.593350497159065 - ], - [ - 0.7967862215908781, - 7.170188210227309 - ], - [ - 0.7967862215908781, - 16.730457652698874 - ], - [ - -0.7966752485795041, - 31.070806329900563 - ], - [ - -6.373512961647748, - 49.39461447975856 - ], - [ - -15.136940696022748, - 86.04223077947444 - ], - [ - -20.713889382102252, - 107.55279541015625 - ], - [ - -23.103804154829504, - 120.29982133345169 - ], - [ - -23.103804154829504, - 125.07998379794037 - ], - [ - -22.307239879261374, - 125.07998379794037 - ], - [ - -18.323752663352252, - 123.48652232776988 - ], - [ - -9.560213955965878, - 120.29982133345169 - ], - [ - 11.153675426136374, - 114.72298362038356 - ], - [ - 27.08740234375, - 112.33290238813919 - ], - [ - 39.834428267045496, - 110.73955189098012 - ], - [ - 50.987992720170496, - 109.94287664240056 - ], - [ - 62.14166814630687, - 109.94287664240056 - ], - [ - 65.328369140625, - 109.94287664240056 - ], - [ - 66.1250443892045, - 109.94287664240056 - ], - [ - 66.92171963778412, - 109.94287664240056 - ], - [ - 66.1250443892045, - 109.94287664240056 - ], - [ - 62.938343394886374, - 110.73955189098012 - ], - [ - 60.54831764914775, - 110.73955189098012 - ], - [ - 58.15818093039775, - 110.73955189098012 - ], - [ - 57.361505681818244, - 111.53622713955968 - ], - [ - 57.361505681818244, - 110.73955189098012 - ], - [ - 55.76815518465912, - 107.55279541015625 - ], - [ - 54.971479936079504, - 105.16271417791194 - ], - [ - 54.971479936079504, - 105.16271417791194 - ] - ], - "pressures": [ - 0.0859375, - 0.17578125, - 0.23046875, - 0.298828125, - 0.8203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9296875, - 0.2001953125, - 0.09375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.971479936079504, - 105.16271417791194 - ] - }, - { - "id": "OKR8N-RnmR4wcgncvByBB", - "type": "freedraw", - "x": 286.3226572011974, - "y": -150.30842788498018, - "width": 83.65223277698863, - "height": 143.40370871803975, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1066195661, - "version": 345, - "versionNonce": 762374275, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -5.576809969815315 - ], - [ - -0.7967862215908781, - -7.170188210227252 - ], - [ - -1.593350497159122, - -4.780134721235754 - ], - [ - -2.39013671875, - -1.593378240411937 - ], - [ - -5.576726740056756, - 15.933754660866498 - ], - [ - -9.560213955965878, - 35.054238059304 - ], - [ - -19.917214133522748, - 70.90517911044037 - ], - [ - -23.104026100852252, - 82.85547429865056 - ], - [ - -31.867564808238626, - 113.92628062855113 - ], - [ - -35.850941051136374, - 126.67330655184662 - ], - [ - -37.44429154829538, - 133.84349476207387 - ], - [ - -38.241077769886374, - 135.436845259233 - ], - [ - -37.44429154829538, - 136.2335205078125 - ], - [ - -34.25759055397725, - 136.2335205078125 - ], - [ - -29.477428089488626, - 135.436845259233 - ], - [ - -21.510564630681756, - 133.04676402698863 - ], - [ - -8.763649680397748, - 129.8600630326705 - ], - [ - 14.340376420454618, - 126.67330655184662 - ], - [ - 29.477428089488626, - 125.07990056818181 - ], - [ - 40.630992542613626, - 125.07990056818181 - ], - [ - 44.61447975852275, - 125.07990056818181 - ], - [ - 45.41115500710225, - 125.07990056818181 - ], - [ - 45.41115500710225, - 126.67330655184662 - ], - [ - 43.817804509943244, - 128.2666570490057 - ], - [ - 40.630992542613626, - 129.8600630326705 - ], - [ - 39.83431729403412, - 129.8600630326705 - ], - [ - 39.83431729403412, - 129.8600630326705 - ] - ], - "pressures": [ - 0.0771484375, - 0.1552734375, - 0.2001953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.783203125, - 0.1669921875, - 0.1025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.83431729403412, - 129.8600630326705 - ] - }, - { - "id": "RU_HefrvcPXfVFZW5lK2y", - "type": "freedraw", - "x": 283.1358452338679, - "y": -127.20448501388643, - "width": 95.60247247869324, - "height": 120.29976584694606, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1922143043, - "version": 340, - "versionNonce": 1288836397, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983376242897748, - 7.170188210227309 - ], - [ - -8.763538707386374, - 26.29067160866481 - ], - [ - -15.933726917613626, - 48.59791148792618 - ], - [ - -23.103915127840878, - 70.9051513671875 - ], - [ - -30.27399236505687, - 90.82233775745738 - ], - [ - -36.64761629971588, - 112.33290238813925 - ], - [ - -37.444291548295496, - 117.90974010120738 - ], - [ - -37.444291548295496, - 119.5030905983665 - ], - [ - -34.25747958096588, - 120.29976584694606 - ], - [ - -24.697265625, - 119.5030905983665 - ], - [ - -14.340265447443244, - 116.31633411754262 - ], - [ - -1.593350497159122, - 110.73955189098012 - ], - [ - 12.747025923295382, - 105.9593894264915 - ], - [ - 27.884077592329504, - 101.97595769708806 - ], - [ - 48.597966974431756, - 101.17928244850856 - ], - [ - 55.76815518465901, - 101.17928244850856 - ], - [ - 57.361616654829504, - 102.77263294566762 - ], - [ - 58.15818093039775, - 104.36603892933238 - ], - [ - 58.15818093039775, - 107.55279541015625 - ], - [ - 58.15818093039775, - 110.73955189098012 - ], - [ - 57.361616654829504, - 110.73955189098012 - ], - [ - 57.361616654829504, - 110.73955189098012 - ] - ], - "pressures": [ - 0.111328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3779296875, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.361616654829504, - 110.73955189098012 - ] - }, - { - "id": "fRC0b6eLNG2HZv85U0g0E", - "type": "freedraw", - "x": -233.9142146915582, - "y": 91.88450979257675, - "width": 44.61447975852275, - "height": 78.07533957741481, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 80373795, - "version": 310, - "versionNonce": 734489155, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - 0 - ], - [ - -0.796675248579561, - 0.796619762073874 - ], - [ - -0.796675248579561, - -1.593461470170439 - ], - [ - 2.39013671875, - -7.9669189453125 - ], - [ - 6.373568448153378, - -15.933782404119313 - ], - [ - 10.357000177556813, - -26.29072709517044 - ], - [ - 14.340431906960191, - -37.444347034801126 - ], - [ - 19.917158647017004, - -54.97147993607956 - ], - [ - 23.900645862926126, - -63.735074129971565 - ], - [ - 27.087346857244313, - -71.70193758877843 - ], - [ - 28.680752840909065, - -75.68536931818181 - ], - [ - 29.477428089488626, - -77.27871981534093 - ], - [ - 31.07077858664769, - -74.88869406960225 - ], - [ - 32.6641845703125, - -65.32842462713069 - ], - [ - 34.25759055397725, - -50.191372958096565 - ], - [ - 35.85094105113632, - -21.5106201171875 - ], - [ - 37.44429154829544, - -9.560324928977252 - ], - [ - 38.24102228338069, - -3.186811967329561 - ], - [ - 39.03769753196019, - -1.593461470170439 - ], - [ - 39.03769753196019, - -0.7967307350852479 - ], - [ - 39.83437278053975, - -0.7967307350852479 - ], - [ - 39.83437278053975, - -1.593461470170439 - ], - [ - 38.24102228338069, - -6.373568448153435 - ], - [ - 37.44429154829544, - -7.9669189453125 - ], - [ - 37.44429154829544, - -8.763649680397748 - ], - [ - 36.64761629971588, - -10.357000177556813 - ], - [ - 34.25759055397725, - -13.543756658380687 - ], - [ - 28.680752840909065, - -20.71394486860794 - ], - [ - 22.307295365767004, - -24.697376598011374 - ], - [ - 14.340431906960191, - -28.680808327414752 - ], - [ - 7.170188210227252, - -32.66424005681819 - ], - [ - 0.7966752485795041, - -34.25764604048294 - ], - [ - -3.983431729403435, - -35.850941051136374 - ], - [ - -4.780106977982996, - -35.850941051136374 - ], - [ - -3.186756480823874, - -35.850941051136374 - ], - [ - 2.39013671875, - -35.850941051136374 - ], - [ - 11.950295188210191, - -35.850941051136374 - ], - [ - 21.510564630681813, - -35.850941051136374 - ], - [ - 32.6641845703125, - -35.0543212890625 - ], - [ - 35.85094105113632, - -34.25764604048294 - ], - [ - 36.64761629971588, - -33.46091530539775 - ], - [ - 32.6641845703125, - -31.86750932173294 - ], - [ - 31.07077858664769, - -31.86750932173294 - ], - [ - 29.477428089488626, - -31.86750932173294 - ], - [ - 28.680752840909065, - -31.86750932173294 - ], - [ - 28.680752840909065, - -31.86750932173294 - ] - ], - "pressures": [ - 0.0322265625, - 0.1005859375, - 0.16015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.78515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.680752840909065, - -31.86750932173294 - ] - }, - { - "id": "EaF09ljkBwgZz8nr8MXF4", - "type": "freedraw", - "x": -98.47736943232525, - "y": 51.25340627695175, - "width": 31.070834073153435, - "height": 55.76809969815338, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 815963949, - "version": 290, - "versionNonce": 574822861, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - -7.170188210227252 - ], - [ - 1.593350497159065, - -9.560269442471565 - ], - [ - 0, - -3.186700994318187 - ], - [ - -2.390081232244313, - 8.763594193892061 - ], - [ - -5.5767822265625, - 21.510564630681813 - ], - [ - -5.5767822265625, - 26.290671608664752 - ], - [ - -3.186756480823874, - 30.274103338068187 - ], - [ - 1.593350497159065, - 33.46085981889206 - ], - [ - 12.747025923295439, - 35.054210316051126 - ], - [ - 19.1204833984375, - 30.274103338068187 - ], - [ - 23.103915127840878, - 21.510564630681813 - ], - [ - 24.697321111505687, - 11.153619939630687 - ], - [ - 24.697321111505687, - 0 - ], - [ - 20.713889382102252, - -15.137051669034065 - ], - [ - 17.527132901278378, - -19.917214133522748 - ], - [ - 12.747025923295439, - -20.713889382102252 - ], - [ - 7.170188210227252, - -17.527132901278435 - ], - [ - -1.593350497159122, - -10.356944691051126 - ], - [ - -5.5767822265625, - -7.170188210227252 - ], - [ - -6.373512961647748, - -1.593405983664752 - ], - [ - -6.373512961647748, - 5.5767822265625 - ], - [ - -3.983431729403435, - 11.950295188210248 - ], - [ - 1.593350497159065, - 16.730457652698874 - ], - [ - 4.780106977982939, - 17.527077414772748 - ], - [ - 5.576837713068187, - 17.527077414772748 - ], - [ - 5.576837713068187, - 17.527077414772748 - ] - ], - "pressures": [ - 0.005859375, - 0.1005859375, - 0.1904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.2109375, - 0.123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576837713068187, - 17.527077414772748 - ] - }, - { - "id": "S8e9vCkJPAahGQE62pi3G", - "type": "freedraw", - "x": -58.642996651785495, - "y": 92.68112955465062, - "width": 53.37807395241481, - "height": 78.8720703125, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 136800547, - "version": 279, - "versionNonce": 889539405, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - -4.780051491477309 - ], - [ - 2.390081232244313, - -8.763538707386374 - ], - [ - 3.186756480823874, - -13.543701171875 - ], - [ - 3.983431729403435, - -23.900645862926126 - ], - [ - 3.983431729403435, - -33.46085981889206 - ], - [ - 3.983431729403435, - -43.81780450994319 - ], - [ - 3.983431729403435, - -58.95485617897731 - ], - [ - 3.983431729403435, - -66.92171963778412 - ], - [ - 3.186756480823874, - -72.49855735085231 - ], - [ - 1.593350497159122, - -75.68531383167613 - ], - [ - 1.593350497159122, - -76.48198908025569 - ], - [ - 2.390081232244313, - -76.48198908025569 - ], - [ - 7.966863458806813, - -76.48198908025569 - ], - [ - 23.103915127840935, - -76.48198908025569 - ], - [ - 35.054210316051126, - -75.68531383167613 - ], - [ - 44.61447975852269, - -74.88858309659093 - ], - [ - 50.98799272017044, - -74.09190784801137 - ], - [ - 53.37807395241481, - -73.29523259943181 - ], - [ - 53.37807395241481, - -74.09190784801137 - ], - [ - 50.98799272017044, - -76.48198908025569 - ], - [ - 48.59791148792618, - -78.8720703125 - ], - [ - 48.59791148792618, - -78.8720703125 - ] - ], - "pressures": [ - 0.1103515625, - 0.740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.59791148792618, - -78.8720703125 - ] - }, - { - "id": "ooKVgxLHTGVWxpHjUjE0p", - "type": "freedraw", - "x": -57.846321403205934, - "y": 52.846756774110816, - "width": 27.08740234375, - "height": 4.780051491477252, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1401476397, - "version": 278, - "versionNonce": 1647860141, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -0.7966197620738171 - ], - [ - 0, - -1.593350497159065 - ], - [ - 5.576837713068187, - -3.186756480823817 - ], - [ - 9.560269442471565, - -3.983431729403378 - ], - [ - 14.340376420454561, - -3.983431729403378 - ], - [ - 18.32380814985794, - -4.780051491477252 - ], - [ - 19.917214133522748, - -4.780051491477252 - ], - [ - 20.713889382102252, - -4.780051491477252 - ], - [ - 15.933726917613626, - -4.780051491477252 - ], - [ - 9.560269442471565, - -3.983431729403378 - ], - [ - 3.983431729403378, - -3.186756480823817 - ], - [ - 0, - -2.390081232244313 - ], - [ - -2.390025745738626, - -1.593350497159065 - ], - [ - -3.186756480823874, - -1.593350497159065 - ], - [ - -0.796675248579561, - -1.593350497159065 - ], - [ - 7.966863458806813, - -1.593350497159065 - ], - [ - 14.340376420454561, - -2.390081232244313 - ], - [ - 19.1204833984375, - -2.390081232244313 - ], - [ - 22.307239879261374, - -1.593350497159065 - ], - [ - 23.900645862926126, - -1.593350497159065 - ], - [ - 23.103915127840878, - 0 - ], - [ - 23.103915127840878, - 0 - ] - ], - "pressures": [ - 0.0849609375, - 0.4140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.255859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103915127840878, - 0 - ] - }, - { - "id": "zMUOq--70ANRzZfg5-wNe", - "type": "freedraw", - "x": -202.04676085633093, - "y": 113.39507442325856, - "width": 23.900645862926183, - "height": 47.00456099076712, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 617552301, - "version": 310, - "versionNonce": 1062544291, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823817, - 0 - ], - [ - -3.186756480823817, - 2.39008123224437 - ], - [ - -3.186756480823817, - 4.780162464488626 - ], - [ - -3.186756480823817, - 8.763594193892004 - ], - [ - -3.186756480823817, - 11.15361993963063 - ], - [ - -2.390081232244313, - 12.747025923295496 - ], - [ - -0.7967307350851911, - 14.340376420454504 - ], - [ - 1.593350497159122, - 14.340376420454504 - ], - [ - 4.780106977982996, - 12.747025923295496 - ], - [ - 7.170188210227309, - 8.763594193892004 - ], - [ - 7.170188210227309, - 3.983431729403378 - ], - [ - 7.170188210227309, - -0.7966752485795041 - ], - [ - 7.170188210227309, - -5.5767822265625 - ], - [ - 6.373512961647748, - -7.96686345880687 - ], - [ - 6.373512961647748, - -6.373457475142004 - ], - [ - 9.560213955965935, - 2.39008123224437 - ], - [ - 13.543645685369313, - 9.560324928977252 - ], - [ - 15.933726917613683, - 18.323808149857996 - ], - [ - 17.527077414772748, - 25.494051846590878 - ], - [ - 18.323863636363683, - 31.070834073153378 - ], - [ - 15.933726917613683, - 35.850941051136374 - ], - [ - 12.746970436789809, - 37.444347034801126 - ], - [ - 7.170188210227309, - 39.03769753196025 - ], - [ - 1.593350497159122, - 39.03769753196025 - ], - [ - -3.186756480823817, - 37.444347034801126 - ], - [ - -4.780162464488626, - 35.05426580255687 - ], - [ - -5.5767822265625, - 31.867509321732996 - ], - [ - -4.780162464488626, - 28.680752840909122 - ], - [ - -3.186756480823817, - 26.290671608664752 - ], - [ - 0.796675248579561, - 21.5106201171875 - ], - [ - 2.390081232244313, - 21.5106201171875 - ], - [ - 2.390081232244313, - 21.5106201171875 - ] - ], - "pressures": [ - 0.0283203125, - 0.58203125, - 0.6025390625, - 0.626953125, - 0.736328125, - 0.83203125, - 0.876953125, - 0.8828125, - 0.8876953125, - 0.8984375, - 0.908203125, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7705078125, - 0.412109375, - 0.169921875, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.390081232244313, - 21.5106201171875 - ] - }, - { - "id": "z6_wz274txvblk2-FLSZ3", - "type": "freedraw", - "x": -173.3660080154218, - "y": 120.56526263348582, - "width": 24.697321111505687, - "height": 31.070834073153378, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1589191181, - "version": 299, - "versionNonce": 1723505677, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 5.576837713068244 - ], - [ - 0, - 8.763594193892118 - ], - [ - 0.7967307350851911, - 11.153619939630744 - ], - [ - 1.593350497159065, - 11.950295188210248 - ], - [ - 6.373457475142004, - 12.747025923295496 - ], - [ - 11.15361993963063, - 10.35700017755687 - ], - [ - 14.340376420454504, - 5.576837713068244 - ], - [ - 16.730457652698817, - 0 - ], - [ - 16.730457652698817, - -8.763538707386374 - ], - [ - 15.933726917613626, - -10.356944691051126 - ], - [ - 12.747025923295439, - -14.340376420454504 - ], - [ - 7.170188210227252, - -16.73040216619313 - ], - [ - -0.7967307350852479, - -18.323808149857882 - ], - [ - -3.983431729403435, - -16.73040216619313 - ], - [ - -6.373512961647748, - -11.950295188210248 - ], - [ - -7.96686345880687, - -7.170188210227252 - ], - [ - -7.96686345880687, - -3.186756480823874 - ], - [ - -5.576837713068187, - -1.593295010653378 - ], - [ - -3.186700994318187, - 0 - ], - [ - -2.39008123224437, - 0 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.1435546875, - 0.4541015625, - 0.5849609375, - 0.83203125, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4658203125, - 0.1640625, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.39008123224437, - 0 - ] - }, - { - "id": "UQwR6dxKfU5rKmD99cYTo", - "type": "freedraw", - "x": -146.2786611581775, - "y": 106.22488621303131, - "width": 15.137107155539752, - "height": 28.68069735440349, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1009718925, - "version": 298, - "versionNonce": 1826010947, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 9.560269442471622 - ], - [ - -0.796675248579561, - 14.340376420454504 - ], - [ - 1.593405983664752, - 18.323808149857882 - ], - [ - 3.983431729403378, - 19.917214133522748 - ], - [ - 5.57683771306813, - 19.917214133522748 - ], - [ - 7.170188210227252, - 17.527132901278378 - ], - [ - 7.966863458806813, - 11.15361993963063 - ], - [ - 8.763538707386317, - 6.373512961647748 - ], - [ - 8.763538707386317, - 1.593405983664752 - ], - [ - 8.763538707386317, - -2.390025745738626 - ], - [ - 8.763538707386317, - -3.186700994318244 - ], - [ - 8.763538707386317, - -2.390025745738626 - ], - [ - 9.560324928977252, - 5.57683771306813 - ], - [ - 9.560324928977252, - 12.747081409801126 - ], - [ - 10.356944691051126, - 19.917214133522748 - ], - [ - 11.15361993963063, - 23.900645862926126 - ], - [ - 11.15361993963063, - 24.697376598011374 - ], - [ - 11.950295188210191, - 24.697376598011374 - ], - [ - 12.747025923295439, - 25.493996360085248 - ], - [ - 13.54375665838063, - 25.493996360085248 - ], - [ - 13.54375665838063, - 25.493996360085248 - ] - ], - "pressures": [ - 0.158203125, - 0.828125, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.900390625, - 0.296875, - 0.1650390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.54375665838063, - 25.493996360085248 - ] - }, - { - "id": "D5TfuE_UJfSn7s5ROSCP3", - "type": "freedraw", - "x": -125.56477177607525, - "y": 132.51555782169606, - "width": 23.103970614346565, - "height": 29.477372602982996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1191183523, - "version": 298, - "versionNonce": 2055574125, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - 0, - -8.763538707386374 - ], - [ - -0.796675248579561, - -18.323808149857996 - ], - [ - -1.593405983664752, - -24.697265625 - ], - [ - -1.593405983664752, - -27.884022105823874 - ], - [ - -1.593405983664752, - -28.680697354403378 - ], - [ - -1.593405983664752, - -23.103915127840878 - ], - [ - -0.796675248579561, - -19.1204833984375 - ], - [ - -0.796675248579561, - -17.527021928267004 - ], - [ - 0, - -17.527021928267004 - ], - [ - 0, - -19.1204833984375 - ], - [ - 3.186756480823874, - -23.900590376420496 - ], - [ - 5.5767822265625, - -26.290671608664752 - ], - [ - 10.356944691051126, - -29.477372602982996 - ], - [ - 13.543645685369313, - -29.477372602982996 - ], - [ - 17.527132901278378, - -27.08734685724437 - ], - [ - 19.91715864701706, - -23.103915127840878 - ], - [ - 21.510564630681813, - -19.1204833984375 - ], - [ - 21.510564630681813, - -15.933726917613626 - ], - [ - 21.510564630681813, - -15.137051669034122 - ], - [ - 21.510564630681813, - -15.137051669034122 - ] - ], - "pressures": [ - 0.1787109375, - 0.6806640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.82421875, - 0.306640625, - 0.068359375, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.510564630681813, - -15.137051669034122 - ] - }, - { - "id": "ixPdgnxkz5T5sCE64T4Ay", - "type": "freedraw", - "x": -395.641703816203, - "y": 142.87239153973582, - "width": 15.933782404119313, - "height": 244.5829634232955, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 958852397, - "version": 445, - "versionNonce": 136632035, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796619762073874, - 5.5767822265625 - ], - [ - 1.593350497159065, - 29.477428089488626 - ], - [ - 1.593350497159065, - 52.581343217329504 - ], - [ - 2.390081232244256, - 82.85550204190338 - ], - [ - 3.983431729403378, - 118.70638760653412 - ], - [ - 4.780106977982882, - 149.77727716619313 - ], - [ - 5.57683771306813, - 168.10102982954538 - ], - [ - 6.373512961647691, - 172.88113680752838 - ], - [ - 6.373512961647691, - 171.28778631036926 - ], - [ - 6.373512961647691, - 161.72757235440338 - ], - [ - 3.983431729403378, - 132.25008877840912 - ], - [ - 1.593350497159065, - 107.55276766690338 - ], - [ - -0.796619762073874, - 81.26209605823863 - ], - [ - -1.593350497159122, - 57.36150568181813 - ], - [ - -2.39008123224437, - 33.460859818892004 - ], - [ - -2.39008123224437, - 7.170188210227252 - ], - [ - 0.7966752485795041, - -27.884077592329618 - ], - [ - 3.186811967329504, - -39.83437278053975 - ], - [ - 3.186811967329504, - -41.427723277698874 - ], - [ - 3.186811967329504, - -23.103915127840878 - ], - [ - 1.593350497159065, - 4.780106977982882 - ], - [ - 0, - 44.61447975852275 - ], - [ - -0.796619762073874, - 92.41571599786926 - ], - [ - -1.593350497159122, - 134.64017001065338 - ], - [ - -1.593350497159122, - 157.744140625 - ], - [ - -1.593350497159122, - 164.117598100142 - ], - [ - -1.593350497159122, - 160.13416637073863 - ], - [ - -3.186756480823874, - 144.9971147017045 - ], - [ - -8.763538707386374, - 105.16274192116475 - ], - [ - -9.560269442471622, - 89.22895951704538 - ], - [ - -8.763538707386374, - 35.054210316051126 - ], - [ - -3.983431729403435, - 9.560269442471622 - ], - [ - -1.593350497159122, - 1.593350497159122 - ], - [ - -0.796619762073874, - 2.390081232244256 - ], - [ - -0.796619762073874, - 23.900590376420382 - ], - [ - -0.796619762073874, - 56.56477494673288 - ], - [ - -1.593350497159122, - 103.5693359375 - ], - [ - -0.796619762073874, - 171.28778631036926 - ], - [ - 0, - 195.18837668678975 - ], - [ - 0, - 203.15524014559662 - ], - [ - 0.7966752485795041, - 203.15524014559662 - ], - [ - 0.7966752485795041, - 198.37513316761363 - ], - [ - 0.7966752485795041, - 183.2380814985795 - ], - [ - -0.796619762073874, - 158.54076038707387 - ], - [ - -0.796619762073874, - 158.54076038707387 - ] - ], - "pressures": [ - 0.1240234375, - 0.830078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.15625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.796619762073874, - 158.54076038707387 - ] - }, - { - "id": "wKUPOnrmr2c0E4woRXqvH", - "type": "freedraw", - "x": -391.6582166002939, - "y": 139.68563505891194, - "width": 176.06789328835225, - "height": 137.030195756392, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1119411181, - "version": 450, - "versionNonce": 1215722477, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.576893199573874, - -7.170188210227252 - ], - [ - -5.576893199573874, - -8.763538707386374 - ], - [ - -5.576893199573874, - -11.153619939630744 - ], - [ - -3.186811967329504, - -15.137051669034122 - ], - [ - 2.390025745738626, - -19.1204833984375 - ], - [ - 20.713833895596622, - -25.493996360085248 - ], - [ - 36.64756081321025, - -29.477428089488626 - ], - [ - 54.97136896306819, - -31.867509321732996 - ], - [ - 74.09185236150569, - -30.2740478515625 - ], - [ - 95.60247247869319, - -22.307184392755744 - ], - [ - 122.68976384943181, - -3.186756480823874 - ], - [ - 133.04670854048294, - 13.54375665838063 - ], - [ - 134.64011452414775, - 33.46091530539775 - ], - [ - 129.06327681107956, - 52.581343217329504 - ], - [ - 111.53619939630681, - 74.09190784801137 - ], - [ - 91.61904074928975, - 84.4488525390625 - ], - [ - 66.92166415127838, - 90.82236550071025 - ], - [ - 40.630992542613626, - 92.41571599786926 - ], - [ - 17.527077414772748, - 90.02569025213063 - ], - [ - -5.576893199573874, - 81.26215154474426 - ], - [ - -12.747081409801126, - 77.27871981534088 - ], - [ - -15.137107155539752, - 75.68531383167613 - ], - [ - -13.543756658380687, - 74.88863858309662 - ], - [ - -7.170243696732939, - 75.68531383167613 - ], - [ - 4.780051491477252, - 79.6687455610795 - ], - [ - 20.713833895596622, - 85.24558327414775 - ], - [ - 40.630992542613626, - 88.43228426846588 - ], - [ - 68.51507013494319, - 87.63560901988637 - ], - [ - 85.24547230113637, - 83.652177290483 - ], - [ - 100.38252397017044, - 78.07533957741475 - ], - [ - 112.33287464488637, - 70.9051513671875 - ], - [ - 122.68976384943181, - 60.548262162642004 - ], - [ - 130.6566827947443, - 38.240966796875 - ], - [ - 129.85995205965907, - 20.713889382102252 - ], - [ - 120.29973810369319, - 3.983431729403378 - ], - [ - 105.95936168323863, - -14.340320933948874 - ], - [ - 75.6852583451705, - -37.444291548295496 - ], - [ - 54.97136896306819, - -43.817804509943244 - ], - [ - 32.66412908380681, - -44.61447975852275 - ], - [ - 11.153564453125, - -42.22439852627838 - ], - [ - -7.170243696732939, - -36.64761629971588 - ], - [ - -27.087457830255687, - -23.103915127840878 - ], - [ - -36.64767178622162, - -12.746970436789752 - ], - [ - -41.427778764204504, - -2.390025745738626 - ], - [ - -41.427778764204504, - 7.170188210227252 - ], - [ - -32.66424005681819, - 19.1204833984375 - ], - [ - -23.103970614346622, - 25.494051846590878 - ], - [ - -15.137107155539752, - 29.477483575994256 - ], - [ - -10.357000177556813, - 30.27410333806813 - ], - [ - -7.170243696732939, - 31.867509321732996 - ], - [ - -3.186811967329504, - 34.25753506747162 - ], - [ - 0.796619762073874, - 36.64761629971588 - ], - [ - 3.983431729403378, - 39.03769753196025 - ], - [ - 4.780051491477252, - 39.83437278053975 - ], - [ - 4.780051491477252, - 39.83437278053975 - ] - ], - "pressures": [ - 0.021484375, - 0.380859375, - 0.478515625, - 0.7705078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4375, - 0.197265625, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.780051491477252, - 39.83437278053975 - ] - }, - { - "id": "rDu3zvy7DD0CV49ciwEJE", - "type": "freedraw", - "x": -329.5166871702514, - "y": 338.06087919953706, - "width": 164.117598100142, - "height": 245.37969415838063, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1600792045, - "version": 324, - "versionNonce": 598944003, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 4.0739786705575725, - 0 - ], - [ - 5.006386056859116, - 1.593350497159122 - ], - [ - 6.871395662794947, - 3.9834317294034918 - ], - [ - 7.80386799354076, - 3.9834317294034918 - ], - [ - 7.80386799354076, - 3.186700994318244 - ], - [ - 8.736405268730845, - -3.186811967329504 - ], - [ - 13.398831866904048, - -27.08740234375 - ], - [ - 18.993665851378797, - -52.581398703835134 - ], - [ - 27.386111661423797, - -86.04225852272725 - ], - [ - 39.508381850007645, - -125.876631303267 - ], - [ - 53.495661644527395, - -164.91432883522725 - ], - [ - 71.2129606509188, - -210.3254838423295 - ], - [ - 76.80785957983781, - -227.0558860085227 - ], - [ - 78.67286918577372, - -233.42945445667607 - ], - [ - 79.60534151651947, - -234.22612970525563 - ], - [ - 79.60534151651947, - -233.42945445667607 - ], - [ - 80.53781384726528, - -222.27583451704538 - ], - [ - 83.33529578394692, - -199.17180841619313 - ], - [ - 88.93019471286595, - -169.69443581321013 - ], - [ - 97.32264052291094, - -134.640225497159 - ], - [ - 109.44484576705051, - -96.39920321377838 - ], - [ - 127.16214477344192, - -39.037697531960134 - ], - [ - 134.62205330829684, - -9.560269442471508 - ], - [ - 138.35194263128005, - 6.373457475142118 - ], - [ - 140.21695223721588, - 11.153564453125 - ], - [ - 140.21695223721588, - 9.560213955965992 - ], - [ - 134.62205330829684, - 3.186700994318244 - ], - [ - 126.22960749825191, - -8.763594193892004 - ], - [ - 109.44484576705051, - -30.274158824573874 - ], - [ - 94.52509364178502, - -47.004616477272634 - ], - [ - 77.74033191058365, - -63.734963156960134 - ], - [ - 46.03588299856102, - -86.8389892578125 - ], - [ - 26.45357438623371, - -94.00912198153401 - ], - [ - 9.668812655032387, - -95.60247247869313 - ], - [ - -6.1834767454231905, - -95.60247247869313 - ], - [ - -19.238219264752857, - -93.2124467329545 - ], - [ - -23.900645862926126, - -92.415771484375 - ], - [ - -21.103228870688753, - -87.63560901988637 - ], - [ - -21.103228870688753, - -87.63560901988637 - ] - ], - "pressures": [ - 0.064453125, - 0.1240234375, - 0.16796875, - 0.1787109375, - 0.8388671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -21.5106201171875, - -87.63560901988637 - ] - }, - { - "id": "Pid0Yz3Qw7P4Thlb_5o7X", - "type": "freedraw", - "x": -328.7200119216718, - "y": 248.83186419598582, - "width": 94.80579723011363, - "height": 20.713833895596622, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1308773741, - "version": 250, - "versionNonce": 53615789, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 94.80579723011363, - 20.713833895596622 - ], - [ - 94.80579723011363, - 20.713833895596622 - ] - ], - "pressures": [ - 1, - 0.0126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 94.80579723011363, - 20.713833895596622 - ] - }, - { - "id": "nc07nVTldyOscp_W9BOTJ", - "type": "freedraw", - "x": -319.9564732142855, - "y": 247.23845821232095, - "width": 144.20043945312506, - "height": 14.340376420454618, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1874171437, - "version": 264, - "versionNonce": 369954979, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - -1.593350497159065, - 0 - ], - [ - 6.373512961647748, - 0.7967307350852479 - ], - [ - 22.307239879261374, - 3.983487215909122 - ], - [ - 44.614535245028435, - 6.373512961647748 - ], - [ - 66.92177512428975, - 7.9669189453125 - ], - [ - 95.60247247869319, - 9.560269442471622 - ], - [ - 113.12966086647725, - 11.153675426136374 - ], - [ - 125.87663130326706, - 12.747025923295496 - ], - [ - 133.046875, - 13.543701171875 - ], - [ - 139.42027698863637, - 14.340376420454618 - ], - [ - 140.21700772372162, - 13.543701171875 - ], - [ - 139.42027698863637, - 13.543701171875 - ], - [ - 139.42027698863637, - 13.543701171875 - ] - ], - "pressures": [ - 0.0166015625, - 0.1337890625, - 0.748046875, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3115234375, - 0.0458984375, - 0.04296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 139.42027698863637, - 13.543701171875 - ] - }, - { - "id": "peaZEJVcgzasVohxYwpV8", - "type": "freedraw", - "x": -199.65662413758093, - "y": 177.92665734229269, - "width": 160.9308416193182, - "height": 18.323808149857996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1353608163, - "version": 278, - "versionNonce": 1258918029, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -1.593350497159122 - ], - [ - -3.983431729403435, - -2.389970259232996 - ], - [ - 1.593350497159065, - -3.186756480823874 - ], - [ - 9.560213955965935, - -3.186756480823874 - ], - [ - 20.713833895596565, - -3.9834317294034918 - ], - [ - 36.64756081321025, - -3.9834317294034918 - ], - [ - 54.97136896306819, - -4.780106977982996 - ], - [ - 81.26209605823863, - -7.170188210227252 - ], - [ - 100.38257945667613, - -7.96686345880687 - ], - [ - 117.90971235795456, - -7.170188210227252 - ], - [ - 129.86000754616475, - -3.186756480823874 - ], - [ - 136.2335205078125, - 0.7967307350852479 - ], - [ - 138.62354625355113, - 4.780162464488626 - ], - [ - 137.03019575639206, - 5.576893199573874 - ], - [ - 128.2666015625, - 5.576893199573874 - ], - [ - 112.33287464488637, - 6.373512961647748 - ], - [ - 81.26209605823863, - 4.780162464488626 - ], - [ - 61.34488192471588, - 0.7967307350852479 - ], - [ - 43.02107377485794, - -4.780106977982996 - ], - [ - 25.49394087357956, - -8.763538707386374 - ], - [ - 3.983431729403435, - -10.356889204545496 - ], - [ - -7.966863458806813, - -11.153619939630744 - ], - [ - -17.527132901278435, - -11.153619939630744 - ], - [ - -21.5106201171875, - -11.950295188210248 - ], - [ - -22.30729536576706, - -11.950295188210248 - ], - [ - -15.933726917613626, - -11.950295188210248 - ], - [ - -4.780162464488626, - -11.153619939630744 - ], - [ - 7.966863458806813, - -10.356889204545496 - ], - [ - 21.510509144176126, - -10.356889204545496 - ], - [ - 36.64756081321025, - -9.560213955965992 - ], - [ - 58.954800692471565, - -7.170188210227252 - ], - [ - 72.49850186434657, - -4.780106977982996 - ], - [ - 83.65217729048294, - -2.389970259232996 - ], - [ - 90.82231001420456, - -0.7966752485796178 - ], - [ - 95.60247247869319, - -0.7966752485796178 - ], - [ - 95.60247247869319, - -1.593350497159122 - ], - [ - 94.80574174360794, - -2.389970259232996 - ], - [ - 94.80574174360794, - -2.389970259232996 - ] - ], - "pressures": [ - 0.11328125, - 0.26953125, - 0.353515625, - 0.859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2822265625, - 0.15234375, - 0.08984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 94.80574174360794, - -2.389970259232996 - ] - }, - { - "id": "U26UgRsNRDaQKaNXG5z48", - "type": "freedraw", - "x": -136.71833622920025, - "y": 151.63604122013356, - "width": 15.137107155539752, - "height": 225.46242453835225, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1210137699, - "version": 267, - "versionNonce": 1887390403, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -7.96686345880687 - ], - [ - 0, - -11.950295188210248 - ], - [ - -0.7967307350852479, - -11.153675426136374 - ], - [ - -0.7967307350852479, - -3.983431729403378 - ], - [ - -0.7967307350852479, - 7.96686345880687 - ], - [ - -2.390081232244313, - 23.900645862926126 - ], - [ - -4.780162464488626, - 68.51507013494313 - ], - [ - -6.373512961647748, - 108.349442915483 - ], - [ - -7.170188210227309, - 148.18381569602275 - ], - [ - -7.170188210227309, - 180.84800026633525 - ], - [ - -7.170188210227309, - 202.35850941051137 - ], - [ - -6.373512961647748, - 212.7154541015625 - ], - [ - -5.576837713068187, - 213.512129350142 - ], - [ - -5.576837713068187, - 208.73202237215912 - ], - [ - -8.763594193892061, - 188.0181884765625 - ], - [ - -10.356944691051126, - 164.91421786221588 - ], - [ - -10.356944691051126, - 137.030195756392 - ], - [ - -6.373512961647748, - 107.55276766690338 - ], - [ - -2.390081232244313, - 80.46536532315338 - ], - [ - 2.390025745738626, - 45.41115500710225 - ], - [ - 4.780162464488626, - 29.477372602982996 - ], - [ - 4.780162464488626, - 21.510509144176126 - ], - [ - 4.780162464488626, - 19.12042791193187 - ], - [ - 3.186700994318187, - 19.12042791193187 - ], - [ - 2.390025745738626, - 22.30718439275563 - ], - [ - 1.593350497159065, - 24.697265625 - ], - [ - 1.593350497159065, - 24.697265625 - ] - ], - "pressures": [ - 0.0087890625, - 0.15234375, - 0.34375, - 0.830078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.666015625, - 0.232421875, - 0.0185546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159065, - 24.697265625 - ] - }, - { - "id": "TvaXXWRlx268kosTTEFFU", - "type": "freedraw", - "x": -186.90965370079118, - "y": 307.78672037496307, - "width": 169.6943803267045, - "height": 23.900645862926126, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1511961741, - "version": 280, - "versionNonce": 1375860461, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982939, - -0.7966752485795041 - ], - [ - -10.356944691051126, - 1.593350497159122 - ], - [ - -12.746970436789752, - 2.390025745738626 - ], - [ - -15.933782404119313, - 3.9834317294034918 - ], - [ - -15.933782404119313, - 4.780106977982996 - ], - [ - -16.730402166193187, - 4.780106977982996 - ], - [ - -15.933782404119313, - 4.780106977982996 - ], - [ - -10.356944691051126, - 4.780106977982996 - ], - [ - 3.186811967329561, - 5.5767822265625 - ], - [ - 16.730402166193187, - 5.5767822265625 - ], - [ - 34.25753506747162, - 5.5767822265625 - ], - [ - 50.988048206676126, - 5.5767822265625 - ], - [ - 74.88863858309662, - 5.5767822265625 - ], - [ - 92.41571599786931, - 4.780106977982996 - ], - [ - 111.53619939630681, - 3.9834317294034918 - ], - [ - 126.67330655184662, - 3.9834317294034918 - ], - [ - 133.8434392755682, - 6.373512961647748 - ], - [ - 131.45341352982956, - 10.356944691051126 - ], - [ - 121.893144087358, - 11.153675426136374 - ], - [ - 104.36601118607956, - 11.153675426136374 - ], - [ - 80.46542080965912, - 7.170243696732996 - ], - [ - 39.83437278053981, - 0 - ], - [ - 14.340376420454561, - -1.593405983664752 - ], - [ - -7.170188210227252, - -1.593405983664752 - ], - [ - -23.103915127840878, - 0.7966752485796178 - ], - [ - -32.66412908380681, - 2.390025745738626 - ], - [ - -35.85094105113632, - 2.390025745738626 - ], - [ - -32.66412908380681, - 2.390025745738626 - ], - [ - -23.103915127840878, - 3.186811967329618 - ], - [ - -7.170188210227252, - 3.9834317294034918 - ], - [ - 27.08740234375, - 7.96686345880687 - ], - [ - 50.988048206676126, - 10.356944691051126 - ], - [ - 70.108476118608, - 12.746970436789866 - ], - [ - 86.04220303622162, - 16.730402166193244 - ], - [ - 97.19582297585231, - 19.917158647017118 - ], - [ - 105.16274192116481, - 22.307239879261374 - ], - [ - 106.75614790482956, - 22.307239879261374 - ], - [ - 106.75614790482956, - 20.713833895596622 - ], - [ - 105.16274192116481, - 19.917158647017118 - ], - [ - 105.16274192116481, - 19.917158647017118 - ] - ], - "pressures": [ - 0.05859375, - 0.1142578125, - 0.1904296875, - 0.2421875, - 0.4560546875, - 0.64453125, - 0.716796875, - 0.798828125, - 0.8203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3876953125, - 0.16796875, - 0.0966796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 105.16274192116481, - 19.917158647017118 - ] - }, - { - "id": "_ZPgrROztcVmd4uVXn1id", - "type": "freedraw", - "x": -56.25291541954118, - "y": 299.0231816675767, - "width": 0.0001, - "height": 0.0001, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 392172749, - "version": 235, - "versionNonce": 1950875043, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.0001, - 0.0001 - ] - ], - "pressures": [ - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.0001, - 0.0001 - ] - }, - { - "id": "jp0rl6V8AxZLIhTYgQ_PV", - "type": "freedraw", - "x": -52.26948369013775, - "y": 300.6165321647358, - "width": 3.186756480823874, - "height": 150.573896928267, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1128124995, - "version": 230, - "versionNonce": 1748574509, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - -150.573896928267 - ], - [ - 3.186756480823874, - -150.573896928267 - ] - ], - "pressures": [ - 0.1142578125, - 0.044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823874, - -150.573896928267 - ] - }, - { - "id": "v80gEzfZyUyPFuxaOHmtf", - "type": "freedraw", - "x": -42.70926973417187, - "y": 304.5999638941392, - "width": 42.224454012784065, - "height": 196.78172718394887, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 359292291, - "version": 257, - "versionNonce": 742822947, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.593350497159122 - ], - [ - 0, - 0.7966752485796178 - ], - [ - 0, - 0 - ], - [ - 0, - -4.780106977982882 - ], - [ - -0.7966752485795041, - -14.340376420454504 - ], - [ - -0.7966752485795041, - -31.070834073153378 - ], - [ - -0.7966752485795041, - -64.53169389204538 - ], - [ - 0, - -88.43228426846588 - ], - [ - 0, - -110.73952414772725 - ], - [ - 0.796675248579561, - -130.65673828125 - ], - [ - 1.593405983664809, - -154.55732865767038 - ], - [ - 2.390081232244313, - -164.117598100142 - ], - [ - 2.390081232244313, - -168.89764959161926 - ], - [ - 2.390081232244313, - -169.6943803267045 - ], - [ - 3.983431729403435, - -165.71094859730113 - ], - [ - 4.780162464488683, - -159.337491122159 - ], - [ - 5.576837713068187, - -148.18387118252838 - ], - [ - 6.373512961647748, - -130.65673828125 - ], - [ - 9.560269442471622, - -105.16268643465901 - ], - [ - 18.323808149857996, - -56.564830433238626 - ], - [ - 24.697321111505687, - -23.900645862926126 - ], - [ - 28.680752840909065, - 0.7966752485796178 - ], - [ - 32.66418457031256, - 15.137051669034122 - ], - [ - 38.24102228338069, - 23.900590376420496 - ], - [ - 40.63104802911931, - 26.290727095170496 - ], - [ - 41.42777876420456, - 27.08734685724437 - ], - [ - 41.42777876420456, - 24.697321111505744 - ], - [ - 41.42777876420456, - 20.713889382102366 - ], - [ - 41.42777876420456, - 20.713889382102366 - ] - ], - "pressures": [ - 0.07421875, - 0.1103515625, - 0.181640625, - 0.2333984375, - 0.4169921875, - 0.796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8447265625, - 0.4853515625, - 0.3466796875, - 0.1845703125, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.42777876420456, - 20.713889382102366 - ] - }, - { - "id": "DggoJ220ls4tZQSNF0d3T", - "type": "freedraw", - "x": -10.84176041243893, - "y": 321.33042154683807, - "width": 18.323808149857882, - "height": 192.79835094105113, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 343963597, - "version": 241, - "versionNonce": 272003981, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.390025745738626 - ], - [ - -0.7966752485795041, - -15.137107155539752 - ], - [ - -1.5933504971590082, - -32.6641845703125 - ], - [ - 0.7966752485796178, - -54.174693714488626 - ], - [ - 6.373512961647748, - -92.415771484375 - ], - [ - 9.560269442471622, - -121.09652432528401 - ], - [ - 12.746970436789752, - -149.7772216796875 - ], - [ - 15.933726917613626, - -172.881192294034 - ], - [ - 16.730457652698874, - -190.4083251953125 - ], - [ - 16.730457652698874, - -192.79835094105113 - ], - [ - 16.730457652698874, - -189.6115389737215 - ], - [ - 15.933726917613626, - -184.83148748224426 - ], - [ - 15.933726917613626, - -184.83148748224426 - ] - ], - "pressures": [ - 0.0966796875, - 0.4970703125, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1845703125, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.933726917613626, - -184.83148748224426 - ] - }, - { - "id": "6y-9ArVXiW8tw8MHBNRAd", - "type": "freedraw", - "x": -48.28605196073437, - "y": 295.83642518675293, - "width": 66.92177512428981, - "height": 199.96848366477275, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 677026019, - "version": 265, - "versionNonce": 189142979, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -3.983487215909122 - ], - [ - -3.983431729403378, - -9.560269442471622 - ], - [ - -4.780162464488626, - -25.493996360085248 - ], - [ - -4.780162464488626, - -44.61447975852275 - ], - [ - -3.186756480823817, - -68.51507013494324 - ], - [ - -0.7966752485795041, - -95.60252796519887 - ], - [ - 3.186756480823874, - -120.29973810369324 - ], - [ - 7.966863458806813, - -141.01368297230124 - ], - [ - 12.746970436789809, - -164.11754261363637 - ], - [ - 14.340376420454561, - -172.08446155894887 - ], - [ - 15.137051669034122, - -175.27121803977275 - ], - [ - 15.137051669034122, - -171.28778631036937 - ], - [ - 16.730402166193187, - -160.93084161931824 - ], - [ - 17.527132901278435, - -144.99711470170462 - ], - [ - 19.1204833984375, - -113.12960537997162 - ], - [ - 20.713833895596622, - -86.83893377130687 - ], - [ - 22.307239879261374, - -57.361505681818244 - ], - [ - 24.697265625, - -30.274158824573874 - ], - [ - 25.493996360085248, - -7.9669189453125 - ], - [ - 27.88402210582393, - 14.34032093394876 - ], - [ - 30.274103338068187, - 21.510509144176126 - ], - [ - 31.86745383522731, - 23.900590376420382 - ], - [ - 32.66418457031256, - 24.697265625 - ], - [ - 32.66418457031256, - 17.527077414772634 - ], - [ - 31.86745383522731, - 3.983431729403378 - ], - [ - 31.86745383522731, - -17.52713290127849 - ], - [ - 33.46085981889206, - -44.61447975852275 - ], - [ - 39.83437278053981, - -85.24558327414775 - ], - [ - 44.61447975852269, - -105.16274192116487 - ], - [ - 48.59791148792618, - -120.29973810369324 - ], - [ - 52.58134321732956, - -133.84349476207387 - ], - [ - 56.56477494673294, - -155.35405939275574 - ], - [ - 59.75153142755681, - -165.71100408380687 - ], - [ - 61.344937411221565, - -168.1010298295455 - ], - [ - 62.14161265980118, - -161.7275723544035 - ], - [ - 62.14161265980118, - -155.35405939275574 - ], - [ - 62.14161265980118, - -155.35405939275574 - ] - ], - "pressures": [ - 0.072265625, - 0.2333984375, - 0.3544921875, - 0.6904296875, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.96484375, - 0.90234375, - 0.923828125, - 0.94921875, - 0.9599609375, - 0.9599609375, - 0.966796875, - 0.9755859375, - 0.96484375, - 0.9599609375, - 0.9384765625, - 0.9189453125, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7744140625, - 0.4853515625, - 0.23828125, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.14161265980118, - -155.35405939275574 - ] - }, - { - "id": "XLp0pnB5e-U7PLhJOkcGi", - "type": "freedraw", - "x": -315.9729859983764, - "y": 337.2641484644517, - "width": 73.29523259943181, - "height": 265.2969082919034, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1922291683, - "version": 276, - "versionNonce": 1167751661, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - -3.1867564808237603 - ], - [ - 3.983431729403435, - -15.137051669034008 - ], - [ - 7.966863458806813, - -35.054265802556756 - ], - [ - 12.747025923295439, - -58.158125443892004 - ], - [ - 19.91715864701706, - -94.80579723011363 - ], - [ - 25.49399636008519, - -120.29979359019876 - ], - [ - 31.867453835227252, - -148.18387118252838 - ], - [ - 41.427723277698874, - -176.86456853693176 - ], - [ - 52.58139870383519, - -204.74864612926126 - ], - [ - 64.53169389204544, - -231.83604847301132 - ], - [ - 66.92171963778407, - -238.20950594815338 - ], - [ - 66.92171963778407, - -239.80291193181813 - ], - [ - 66.92171963778407, - -237.41277521306813 - ], - [ - 62.93828790838069, - -224.665860262784 - ], - [ - 53.378018465909065, - -197.57840243252838 - ], - [ - 39.834317294034065, - -157.74402965198863 - ], - [ - 25.49399636008519, - -115.51968661221588 - ], - [ - 10.356889204545439, - -54.174693714488626 - ], - [ - 2.390025745738626, - -16.73045765269876 - ], - [ - -3.983487215909065, - 10.35694469105124 - ], - [ - -6.373512961647748, - 23.10391512784099 - ], - [ - -4.780162464488683, - 25.493996360085248 - ], - [ - -2.390081232244313, - 20.713889382102366 - ], - [ - -1.593405983664809, - 10.35694469105124 - ], - [ - -0.7967307350852479, - -6.373457475142004 - ], - [ - 0.7967307350851911, - -30.27410333806813 - ], - [ - 8.763594193892061, - -72.49855735085225 - ], - [ - 15.137051669034065, - -97.99249822443176 - ], - [ - 22.307239879261317, - -121.89314408735788 - ], - [ - 30.274103338068187, - -147.38714044744313 - ], - [ - 45.41115500710225, - -182.44140625 - ], - [ - 49.39458673650569, - -192.0016756924715 - ], - [ - 58.158125443892004, - -208.73207785866475 - ], - [ - 58.158125443892004, - -210.3254838423295 - ], - [ - 57.3614501953125, - -203.95197088068176 - ], - [ - 51.78466796875, - -184.034756747159 - ], - [ - 42.22439852627838, - -150.573896928267 - ], - [ - 28.680752840909065, - -108.34949840198863 - ], - [ - 11.950295188210191, - -50.191261985085134 - ], - [ - 4.780162464488626, - -23.900645862926126 - ], - [ - -1.593405983664809, - -7.170188210227252 - ], - [ - -3.983487215909065, - -1.593405983664752 - ], - [ - -4.780162464488683, - -0.7966752485795041 - ], - [ - -3.983487215909065, - -10.356889204545382 - ], - [ - -0.7967307350852479, - -24.69732111150563 - ], - [ - 2.390025745738626, - -38.240966796875 - ], - [ - 3.186700994318187, - -42.22439852627838 - ], - [ - 3.186700994318187, - -42.22439852627838 - ] - ], - "pressures": [ - 0.1064453125, - 0.66796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.947265625, - 0.3544921875, - 0.16796875, - 0.09375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186700994318187, - -42.22439852627838 - ] - }, - { - "id": "WQoNNX7AyMjysKwTfj3Mr", - "type": "freedraw", - "x": -248.25459111201275, - "y": 114.98836943391194, - "width": 58.95485617897731, - "height": 237.41283069957382, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 353634947, - "version": 305, - "versionNonce": 1389635427, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -4.780106977982939 - ], - [ - -0.796675248579561, - -7.966863458806756 - ], - [ - -0.796675248579561, - -8.763538707386317 - ], - [ - -0.796675248579561, - -3.18670099431813 - ], - [ - 0.7967307350852479, - 14.340376420454618 - ], - [ - 6.373512961647748, - 63.73501864346599 - ], - [ - 11.153619939630687, - 101.17931019176137 - ], - [ - 15.933726917613626, - 137.03025124289775 - ], - [ - 21.510564630681813, - 166.50767933238637 - ], - [ - 31.070834073153378, - 199.96859463778412 - ], - [ - 38.24102228338069, - 215.90232155539775 - ], - [ - 43.021129261363626, - 223.86918501420462 - ], - [ - 43.81780450994319, - 225.46253551136363 - ], - [ - 43.81780450994319, - 223.86918501420462 - ], - [ - 38.24102228338069, - 209.52875310724437 - ], - [ - 31.86750932173294, - 192.00167569247162 - ], - [ - 25.493996360085248, - 171.28778631036937 - ], - [ - 19.1204833984375, - 148.1838711825285 - ], - [ - 13.543701171875, - 122.68987482244324 - ], - [ - 10.356944691051126, - 95.60247247869324 - ], - [ - 9.560269442471565, - 58.15818093039775 - ], - [ - 8.763594193892061, - 43.817804509943244 - ], - [ - 8.763594193892061, - 37.444291548295496 - ], - [ - 7.966863458806813, - 36.64767178622162 - ], - [ - 7.966863458806813, - 43.817804509943244 - ], - [ - 9.560269442471565, - 64.53174937855113 - ], - [ - 15.137051669034065, - 96.39920321377849 - ], - [ - 21.510564630681813, - 133.04676402698863 - ], - [ - 31.070834073153378, - 179.25464976917613 - ], - [ - 36.647671786221565, - 201.5618896484375 - ], - [ - 42.224454012784065, - 218.29234730113637 - ], - [ - 46.2078857421875, - 226.25921075994324 - ], - [ - 47.801236239346565, - 228.6492919921875 - ], - [ - 47.801236239346565, - 223.86918501420462 - ], - [ - 43.81780450994319, - 211.12215909090912 - ], - [ - 35.850941051136374, - 188.81491921164775 - ], - [ - 27.087346857244313, - 158.54076038707387 - ], - [ - 19.1204833984375, - 109.14617365056824 - ], - [ - 16.73051313920456, - 80.46547629616475 - ], - [ - 15.137051669034065, - 57.361505681818244 - ], - [ - 12.747025923295439, - 40.631103515625 - ], - [ - 11.153619939630687, - 27.884077592329618 - ], - [ - 10.356944691051126, - 27.08740234375 - ], - [ - 10.356944691051126, - 29.477428089488626 - ], - [ - 11.950295188210248, - 43.817804509943244 - ], - [ - 15.933726917613626, - 71.70188210227275 - ], - [ - 28.680808327414752, - 124.283280806108 - ], - [ - 39.83437278053975, - 157.74408513849437 - ], - [ - 49.394642223011374, - 184.83148748224437 - ], - [ - 54.971424449573874, - 203.15529563210225 - ], - [ - 58.15818093039775, - 215.1055908203125 - ], - [ - 58.15818093039775, - 215.90232155539775 - ], - [ - 57.36150568181819, - 214.308915571733 - ], - [ - 50.98799272017044, - 198.37513316761363 - ], - [ - 43.81780450994319, - 180.848055752841 - ], - [ - 35.850941051136374, - 159.33749112215912 - ], - [ - 30.274103338068187, - 138.62360174005687 - ], - [ - 26.290671608664752, - 107.55282315340912 - ], - [ - 25.493996360085248, - 81.26209605823863 - ], - [ - 25.493996360085248, - 53.37807395241475 - ], - [ - 27.88407759232956, - 31.07083407315349 - ], - [ - 27.88407759232956, - 22.307239879261374 - ], - [ - 27.88407759232956, - 21.51056463068187 - ], - [ - 27.88407759232956, - 30.274103338068244 - ], - [ - 27.88407759232956, - 48.59796697443187 - ], - [ - 28.680808327414752, - 77.27866432883525 - ], - [ - 31.86750932173294, - 134.6401700106535 - ], - [ - 36.647671786221565, - 167.304354580966 - ], - [ - 43.021129261363626, - 190.40826970880687 - ], - [ - 50.19131747159088, - 208.73207785866475 - ], - [ - 54.971424449573874, - 220.682373046875 - ], - [ - 57.36150568181819, - 226.25921075994324 - ], - [ - 57.36150568181819, - 225.46253551136363 - ], - [ - 55.76809969815338, - 219.089022549716 - ], - [ - 53.37807395241475, - 211.91888982599437 - ], - [ - 51.78466796875, - 208.73207785866475 - ], - [ - 51.78466796875, - 208.73207785866475 - ] - ], - "pressures": [ - 0.0517578125, - 0.1318359375, - 0.2197265625, - 0.2626953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.2666015625, - 0.1708984375, - 0.0947265625, - 0.001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 51.78466796875, - 208.73207785866475 - ] - }, - { - "id": "EOdtyJsFkfCAU5C13NcBP", - "type": "freedraw", - "x": -322.3464989600241, - "y": 248.03513346090057, - "width": 151.37062766335225, - "height": 30.2740478515625, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1400464333, - "version": 270, - "versionNonce": 292467789, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 104.36601118607956, - 10.356944691051126 - ], - [ - 130.65673828125, - 23.900645862926126 - ], - [ - 134.64022549715912, - 25.493996360085248 - ], - [ - 135.43684525923294, - 25.493996360085248 - ], - [ - 133.8434392755682, - 25.493996360085248 - ], - [ - 110.73957963423294, - 15.137107155539866 - ], - [ - 101.97598544034093, - 11.153675426136374 - ], - [ - 74.09190784801137, - 1.5934059836648657 - ], - [ - 54.97147993607956, - -3.18670099431813 - ], - [ - 45.41115500710225, - -4.780051491477252 - ], - [ - 22.307239879261374, - -4.780051491477252 - ], - [ - 10.356944691051183, - -3.18670099431813 - ], - [ - 0, - -0.796619762073874 - ], - [ - -7.966863458806813, - 0.7967307350852479 - ], - [ - -13.543701171875, - 1.5934059836648657 - ], - [ - -14.340376420454561, - 1.5934059836648657 - ], - [ - -13.543701171875, - 1.5934059836648657 - ], - [ - -8.763538707386317, - 2.39008123224437 - ], - [ - -1.593405983664752, - 2.39008123224437 - ], - [ - 8.763538707386374, - 1.5934059836648657 - ], - [ - 34.257535067471565, - -1.5933504971590082 - ], - [ - 59.75153142755681, - -2.390025745738626 - ], - [ - 82.05877130681819, - -1.5933504971590082 - ], - [ - 105.16274192116475, - 2.39008123224437 - ], - [ - 112.33293013139206, - 4.780162464488626 - ], - [ - 113.92628062855113, - 4.780162464488626 - ], - [ - 113.92628062855113, - 5.576837713068244 - ], - [ - 109.94284889914775, - 7.170243696732996 - ], - [ - 97.9925537109375, - 10.356944691051126 - ], - [ - 70.90520685369319, - 13.543701171875 - ], - [ - 50.988048206676126, - 13.543701171875 - ], - [ - 31.86750932173294, - 12.747025923295496 - ], - [ - 8.763538707386374, - 10.356944691051126 - ], - [ - -3.983431729403435, - 9.560269442471622 - ], - [ - -12.746970436789752, - 8.763594193892118 - ], - [ - -15.933782404119313, - 8.763594193892118 - ], - [ - -12.746970436789752, - 8.763594193892118 - ], - [ - 0, - 11.153675426136374 - ], - [ - 9.560213955965935, - 15.137107155539866 - ], - [ - 19.120538884943187, - 19.120594371448874 - ], - [ - 26.29067160866481, - 21.51056463068187 - ], - [ - 26.29067160866481, - 21.51056463068187 - ] - ], - "pressures": [ - 0.025390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.9130859375, - 0.908203125, - 0.9296875, - 0.9404296875, - 0.8427734375, - 0.783203125, - 0.53515625, - 0.255859375, - 0.083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 26.29067160866481, - 21.51056463068187 - ] - }, - { - "id": "r28tLw2Q8ViEZ2-5A2iuH", - "type": "freedraw", - "x": -144.2469653402929, - "y": -192.01668419266815, - "width": 15.136996182528435, - "height": 137.82694036310372, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 437229613, - "version": 246, - "versionNonce": 93724355, - "isDeleted": false, - "boundElements": null, - "updated": 1659982569798, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7966891202059685 - ], - [ - -3.983431729403435, - 3.9834456010298425 - ], - [ - -6.373512961647748, - 10.356944691051126 - ], - [ - -9.560213955965935, - 19.120511141690343 - ], - [ - -11.950295188210248, - 31.867509321732967 - ], - [ - -13.543645685369313, - 46.20785799893466 - ], - [ - -15.136996182528435, - 67.71842262961647 - ], - [ - -15.136996182528435, - 81.26212380149147 - ], - [ - -14.340376420454561, - 95.60247247869319 - ], - [ - -11.950295188210248, - 109.146201393821 - ], - [ - -8.763538707386374, - 126.67327880859375 - ], - [ - -6.373512961647748, - 133.843467018821 - ], - [ - -5.5767822265625, - 137.03025124289775 - ], - [ - -4.780106977982939, - 137.03025124289775 - ], - [ - -3.983431729403435, - 137.03025124289775 - ], - [ - -3.983431729403435, - 136.23354825106532 - ], - [ - -3.983431729403435, - 136.23354825106532 - ] - ], - "pressures": [ - 0.0810546875, - 0.361328125, - 0.748046875, - 0.853515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9296875, - 0.8427734375, - 0.7265625, - 0.234375, - 0.134765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983431729403435, - 136.23354825106532 - ] - }, - { - "id": "s-VyKsadWQyIqFntqL02N", - "type": "freedraw", - "x": -181.33287147422874, - "y": 85.5109413444232, - "width": 19.917214133522748, - "height": 89.22895951704544, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1045242787, - "version": 193, - "versionNonce": 1839988621, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - 0, - -2.390081232244313 - ], - [ - 0, - -11.15361993963063 - ], - [ - 0, - -19.91721413352269 - ], - [ - 0, - -31.070834073153378 - ], - [ - 0, - -42.22442626953125 - ], - [ - 0, - -52.581370960582376 - ], - [ - 0.796675248579561, - -64.53166614879257 - ], - [ - 1.593405983664752, - -72.49855735085225 - ], - [ - 2.39013671875, - -79.6687455610795 - ], - [ - 3.983431729403435, - -85.24555553089488 - ], - [ - 3.983431729403435, - -87.63560901988632 - ], - [ - 3.983431729403435, - -85.24555553089488 - ], - [ - 5.576837713068187, - -78.87204256924713 - ], - [ - 6.373568448153435, - -71.70185435901988 - ], - [ - 6.373568448153435, - -61.344937411221565 - ], - [ - 7.966863458806813, - -39.03769753196019 - ], - [ - 10.357000177556813, - -22.307239879261317 - ], - [ - 13.543701171875, - -8.763594193892004 - ], - [ - 15.933726917613626, - -1.593405983664752 - ], - [ - 17.527132901278435, - 1.593350497159122 - ], - [ - 18.323863636363626, - 1.593350497159122 - ], - [ - 18.323863636363626, - -1.593405983664752 - ], - [ - 18.323863636363626, - -10.356944691051126 - ], - [ - 19.1204833984375, - -29.477428089488626 - ], - [ - 19.1204833984375, - -43.021129261363626 - ], - [ - 19.1204833984375, - -53.37804620916188 - ], - [ - 19.1204833984375, - -61.344937411221565 - ], - [ - 19.1204833984375, - -72.49855735085225 - ], - [ - 19.917214133522748, - -79.6687455610795 - ], - [ - 19.917214133522748, - -82.85550204190338 - ], - [ - 19.917214133522748, - -77.27866432883519 - ], - [ - 19.1204833984375, - -72.49855735085225 - ], - [ - 18.323863636363626, - -70.10850386186075 - ], - [ - 18.323863636363626, - -70.10850386186075 - ] - ], - "pressures": [ - 0.0087890625, - 0.8388671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6025390625, - 0.2099609375, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 18.323863636363626, - -70.10850386186075 - ] - }, - { - "id": "T98T8HTWy-mx700HxpEpi", - "type": "freedraw", - "x": -146.27860567167193, - "y": 16.199140474394824, - "width": 19.1204833984375, - "height": 86.04225852272731, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 546106221, - "version": 192, - "versionNonce": 2097601379, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - -3.186756480823874, - 24.697293368252815 - ], - [ - -3.186756480823874, - 35.8509133078835 - ], - [ - -0.796675248579561, - 42.22439852627838 - ], - [ - 0.796675248579561, - 45.41115500710225 - ], - [ - 0.796675248579561, - 46.2078857421875 - ], - [ - 3.186756480823874, - 46.2078857421875 - ], - [ - 5.5767822265625, - 43.021129261363626 - ], - [ - 9.560213955965935, - 36.64761629971588 - ], - [ - 11.950295188210248, - 28.680752840909065 - ], - [ - 13.543645685369313, - 16.730429909446002 - ], - [ - 14.340376420454561, - 8.763566450639189 - ], - [ - 14.340376420454561, - 0.796675248579561 - ], - [ - 14.340376420454561, - -4.780134721235811 - ], - [ - 13.543645685369313, - -8.763566450639189 - ], - [ - 12.746970436789752, - -13.543701171875 - ], - [ - 11.950295188210248, - -14.340376420454561 - ], - [ - 11.950295188210248, - -8.763566450639189 - ], - [ - 11.950295188210248, - -2.390053488991498 - ], - [ - 13.543645685369313, - 7.170188210227252 - ], - [ - 14.340376420454561, - 18.32380814985794 - ], - [ - 15.933726917613626, - 31.867481578480124 - ], - [ - 15.933726917613626, - 46.2078857421875 - ], - [ - 15.933726917613626, - 51.78466796875 - ], - [ - 15.137107155539752, - 55.76809969815338 - ], - [ - 13.543645685369313, - 58.95485617897725 - ], - [ - 9.560213955965935, - 65.328369140625 - ], - [ - 7.966863458806813, - 68.51512562144887 - ], - [ - 7.170188210227252, - 70.10847611860794 - ], - [ - 7.170188210227252, - 70.9051513671875 - ], - [ - 6.373457475142061, - 70.9051513671875 - ], - [ - 4.780106977982939, - 71.70188210227275 - ], - [ - 3.983431729403435, - 71.70188210227275 - ], - [ - 3.186756480823874, - 71.70188210227275 - ], - [ - 2.390025745738626, - 70.9051513671875 - ], - [ - 2.390025745738626, - 70.9051513671875 - ] - ], - "pressures": [ - 0.001953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9169921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.390025745738626, - 70.9051513671875 - ] - }, - { - "id": "nicvz9RiRR4Hkr0s3J2ge", - "type": "freedraw", - "x": 205.06067211597008, - "y": 186.69012669154574, - "width": 46.20788574218756, - "height": 82.05882679332387, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2093611331, - "version": 498, - "versionNonce": 422326733, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - 0.7966752485795041 - ], - [ - -5.576837713068187, - 6.373512961647634 - ], - [ - -7.9669189453125, - 17.527132901278378 - ], - [ - -8.763594193892061, - 24.69732111150563 - ], - [ - -8.763594193892061, - 31.07088955965901 - ], - [ - -7.170188210227252, - 37.44429154829538 - ], - [ - -3.983487215909122, - 43.021184747869256 - ], - [ - -1.593405983664752, - 44.614479758522634 - ], - [ - 0, - 44.614479758522634 - ], - [ - 2.390025745738626, - 44.614479758522634 - ], - [ - 5.5767822265625, - 41.427778764204504 - ], - [ - 9.560213955965878, - 35.0543212890625 - ], - [ - 11.15361993963063, - 31.07088955965901 - ], - [ - 12.746970436789752, - 27.08745783025563 - ], - [ - 14.340320933948874, - 23.900645862926126 - ], - [ - 14.340320933948874, - 23.10397061434651 - ], - [ - 15.137051669034122, - 23.10397061434651 - ], - [ - 16.73040216619313, - 24.69732111150563 - ], - [ - 19.917158647017004, - 29.477428089488626 - ], - [ - 21.510509144176126, - 31.867509321732882 - ], - [ - 22.307239879261374, - 33.460859818892004 - ], - [ - 23.900590376420496, - 35.0543212890625 - ], - [ - 27.087346857244256, - 39.03775301846588 - ], - [ - 32.664129083806756, - 48.597966974431756 - ], - [ - 35.85088556463063, - 54.174749200994256 - ], - [ - 36.64761629971588, - 57.36150568181813 - ], - [ - 37.444291548295496, - 62.141612659801126 - ], - [ - 37.444291548295496, - 71.70188210227263 - ], - [ - 35.054210316051126, - 77.27866432883513 - ], - [ - 31.070778586647748, - 80.46542080965901 - ], - [ - 25.493996360085248, - 82.05882679332387 - ], - [ - 19.1204833984375, - 82.05882679332387 - ], - [ - 11.950295188210248, - 82.05882679332387 - ], - [ - 9.560213955965878, - 82.05882679332387 - ], - [ - 8.763538707386374, - 82.05882679332387 - ], - [ - 7.966863458806813, - 82.05882679332387 - ], - [ - 7.170132723721565, - 80.46542080965901 - ], - [ - 7.170132723721565, - 78.87212579900563 - ], - [ - 6.373457475142061, - 78.07539506392038 - ], - [ - 6.373457475142061, - 77.27866432883513 - ], - [ - 6.373457475142061, - 77.27866432883513 - ] - ], - "pressures": [ - 0.0537109375, - 0.5771484375, - 0.740234375, - 0.884765625, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.96875, - 0.953125, - 0.947265625, - 0.953125, - 0.9580078125, - 0.9619140625, - 0.9619140625, - 0.96875, - 0.966796875, - 0.953125, - 0.9423828125, - 0.9423828125, - 0.9453125, - 0.947265625, - 0.951171875, - 0.9384765625, - 0.8701171875, - 0.78125, - 0.5439453125, - 0.4658203125, - 0.4619140625, - 0.373046875, - 0.1865234375, - 0.150390625, - 0.1357421875, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373457475142061, - 77.27866432883513 - ] - }, - { - "id": "oeXkaQa9Iz6F5BuRdxexG", - "type": "freedraw", - "x": 243.30163891284508, - "y": 169.65863832994285, - "width": 35.850941051136374, - "height": 25.493996360085134, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1481073037, - "version": 577, - "versionNonce": 2009183523, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.170188210227252, - 17.527132901278378 - ], - [ - 3.186756480823874, - 23.10397061434651 - ], - [ - -0.7966752485795041, - 24.69732111150563 - ], - [ - -6.373512961647748, - 25.493996360085134 - ], - [ - -14.340376420454504, - 24.69732111150563 - ], - [ - -19.1204833984375, - 22.30723987926126 - ], - [ - -23.103915127840878, - 19.917158647017004 - ], - [ - -25.493996360085248, - 17.527132901278378 - ], - [ - -27.884077592329504, - 12.746970436789752 - ], - [ - -27.884077592329504, - 9.560269442471508 - ], - [ - -28.680752840909122, - 6.373512961647634 - ], - [ - -28.680752840909122, - 4.780106977982882 - ], - [ - -28.680752840909122, - 3.983431729403378 - ], - [ - -27.884077592329504, - 3.983431729403378 - ], - [ - -27.884077592329504, - 3.186811967329504 - ], - [ - -27.08734685724437, - 1.5933504971590082 - ], - [ - -25.493996360085248, - 1.5933504971590082 - ], - [ - -25.493996360085248, - 1.5933504971590082 - ] - ], - "pressures": [ - 0.044921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90625, - 0.615234375, - 0.4765625, - 0.228515625, - 0.1376953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -25.493996360085248, - 1.5933504971590082 - ] - }, - { - "id": "kFKj6lrbk-09EcmWJvEiF", - "type": "freedraw", - "x": 288.9581883656069, - "y": 151.89913925109727, - "width": 7.826924227872951, - "height": 28.598347150140683, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1875982669, - "version": 151, - "versionNonce": 12257379, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010411919347291 - ], - [ - 0.3010307089040225, - 0 - ], - [ - 1.2041647677388028, - 0.9031026097427741 - ], - [ - 1.8062261855469046, - 2.709318312258972 - ], - [ - 2.709318312258972, - 5.418636624517973 - ], - [ - 3.6124523710938092, - 11.43933466684399 - ], - [ - 3.6124523710938092, - 16.25590987355389 - ], - [ - 3.0103490211629946, - 20.470402696394387 - ], - [ - 1.8062261855469046, - 23.781782426461433 - ], - [ - 0.3010307089040225, - 25.88903932091236 - ], - [ - -0.9030501945894116, - 26.792131447624456 - ], - [ - -1.5051535445201694, - 27.09316215652848 - ], - [ - -2.408245671232237, - 27.09316215652848 - ], - [ - -3.9133992157524062, - 27.99627524930193 - ], - [ - -4.2144718567791415, - 28.297305958205953 - ], - [ - -4.2144718567791415, - 28.297305958205953 - ] - ], - "pressures": [ - 0.0380859375, - 0.087890625, - 0.306640625, - 0.404296875, - 0.5087890625, - 0.6201171875, - 0.828125, - 0.8701171875, - 0.8935546875, - 0.9169921875, - 0.9345703125, - 0.931640625, - 0.830078125, - 0.55078125, - 0.20703125, - 0.1669921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.2144718567791415, - 28.297305958205953 - ] - }, - { - "id": "RDWiqNf_E1Bfz8KXyc7fP", - "type": "freedraw", - "x": 198.04555148260152, - "y": 218.42793228983305, - "width": 18.363166768004874, - "height": 16.85799225742332, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1317503629, - "version": 156, - "versionNonce": 526945187, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - 0 - ], - [ - -0.6020823838694014, - 0.9031130927734523 - ], - [ - -0.6020823838694014, - 2.107256894450927 - ], - [ - -0.6020823838694014, - 3.6124314050324244 - ], - [ - -0.3010307089040225, - 4.214513788901854 - ], - [ - 0.30103070890407935, - 5.11760591561395 - ], - [ - 1.2041438016775032, - 5.719688299483352 - ], - [ - 3.0103490211630515, - 6.321749717291425 - ], - [ - 4.515523531744577, - 6.321749717291425 - ], - [ - 6.321728751230069, - 6.321749717291425 - ], - [ - 8.428985645680996, - 5.719688299483352 - ], - [ - 12.041417050713449, - 3.010349021163023 - ], - [ - 14.449683688007042, - 0.3010307089040225 - ], - [ - 16.255909873553946, - -1.8061842534241919 - ], - [ - 17.159002000266014, - -3.6124314050324244 - ], - [ - 17.761084384135472, - -5.11760591561395 - ], - [ - 17.761084384135472, - -7.224841844003521 - ], - [ - 17.761084384135472, - -8.730016354585018 - ], - [ - 17.761084384135472, - -9.934160156262493 - ], - [ - 17.761084384135472, - -10.235190865166516 - ], - [ - 17.761084384135472, - -10.536242540131894 - ], - [ - 17.460032709170036, - -10.536242540131894 - ], - [ - 17.460032709170036, - -10.235190865166516 - ], - [ - 17.460032709170036, - -10.235190865166516 - ] - ], - "pressures": [ - 0.0390625, - 0.0859375, - 0.21484375, - 0.26953125, - 0.337890625, - 0.384765625, - 0.4482421875, - 0.4990234375, - 0.5966796875, - 0.748046875, - 0.853515625, - 0.9345703125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.8515625, - 0.7890625, - 0.73046875, - 0.197265625, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.460032709170036, - -10.235190865166516 - ] - }, - { - "id": "HzPpZ5mueLraOolsJh3eR", - "type": "freedraw", - "x": 214.90352277396352, - "y": 206.38651523911963, - "width": 18.36314580194346, - "height": 13.546591561294917, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 156257645, - "version": 148, - "versionNonce": 1374794765, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - 0.6020823838694298 - ], - [ - -0.602061417808045, - 1.8062261855469046 - ], - [ - -0.9031130927734239, - 3.6124314050324244 - ], - [ - -1.8062052194855482, - 6.92381113509947 - ], - [ - -2.709318312258972, - 8.730037320646375 - ], - [ - -4.214492822840498, - 10.235232797289228 - ], - [ - -6.6227804261954475, - 12.04141705071342 - ], - [ - -8.127954936776973, - 12.944530143486872 - ], - [ - -9.934160156262465, - 13.245581818452251 - ], - [ - -11.43933466684399, - 13.546591561294917 - ], - [ - -13.245539886329539, - 13.546591561294917 - ], - [ - -14.750714396911064, - 13.245581818452251 - ], - [ - -16.85797129136199, - 12.944530143486872 - ], - [ - -17.76106341807406, - 12.944530143486872 - ], - [ - -18.36314580194346, - 12.944530143486872 - ], - [ - -18.36314580194346, - 12.944530143486872 - ] - ], - "pressures": [ - 0.068359375, - 0.2939453125, - 0.318359375, - 0.40625, - 0.626953125, - 0.7265625, - 0.8173828125, - 0.8681640625, - 0.8955078125, - 0.90625, - 0.90625, - 0.90234375, - 0.884765625, - 0.796875, - 0.74609375, - 0.6552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -18.36314580194346, - 12.944530143486872 - ] - }, - { - "id": "mHhiBBnvgmnhi5Z7jLdL3", - "type": "freedraw", - "x": 200.15280837705245, - "y": 220.836219893188, - "width": 13.546591561294917, - "height": 17.159022966327342, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1692383949, - "version": 210, - "versionNonce": 1178410819, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.9031130927734239, - 2.7093183122590005 - ], - [ - -0.3010516749653789, - 3.9134621139364754 - ], - [ - 1.2041228356161469, - 4.816575206709928 - ], - [ - 3.0103490211630515, - 5.418636624517973 - ], - [ - 4.2144718567791415, - 5.418636624517973 - ], - [ - 5.418615658456645, - 5.418636624517973 - ], - [ - 6.321728751230069, - 5.418636624517973 - ], - [ - 7.224841844003549, - 4.816575206709928 - ], - [ - 9.33207777239312, - 2.7093183122590005 - ], - [ - 10.837252282974589, - 0.6020614178080734 - ], - [ - 11.74036537574807, - -0.6020823838694014 - ], - [ - 12.041396084652092, - -1.5051745105814973 - ], - [ - 12.342426793556115, - -2.7092973461976158 - ], - [ - 12.342426793556115, - -3.913462113936447 - ], - [ - 12.643478468521494, - -5.117605915613922 - ], - [ - 12.643478468521494, - -6.020719008387374 - ], - [ - 12.643478468521494, - -6.321749717291397 - ], - [ - 12.041396084652092, - -5.418636624517973 - ], - [ - 10.837252282974589, - -3.913462113936447 - ], - [ - 7.525872552907572, - 0 - ], - [ - 5.117584949552622, - 3.010349021163023 - ], - [ - 3.0103490211630515, - 5.117584949552594 - ], - [ - 1.5051745105815257, - 6.020698042326046 - ], - [ - 1.2041228356161469, - 6.321749717291425 - ], - [ - 1.2041228356161469, - 5.719667333421995 - ], - [ - 1.8062052194855482, - 3.6124104389710965 - ], - [ - 3.0103490211630515, - 0.9030921267120959 - ], - [ - 3.913441147875119, - -1.2041228356161184 - ], - [ - 4.8165542406486, - -2.4082876033549496 - ], - [ - 5.117584949552622, - -2.4082876033549496 - ], - [ - 4.8165542406486, - -1.2041228356161184 - ], - [ - 3.913441147875119, - 0.9030921267120959 - ], - [ - 2.1072359283895707, - 4.214492822840498 - ], - [ - 1.5051745105815257, - 4.816575206709928 - ], - [ - 1.5051745105815257, - 5.117584949552594 - ], - [ - 1.2041228356161469, - 5.117584949552594 - ], - [ - 1.2041228356161469, - 3.311400696128402 - ], - [ - 1.5051745105815257, - 0.9030921267120959 - ], - [ - 2.40826663729365, - -1.5051745105814973 - ], - [ - 3.0103490211630515, - -3.010349021163023 - ], - [ - 3.311379730067074, - -3.010349021163023 - ], - [ - 3.311379730067074, - 0 - ], - [ - 3.0103490211630515, - 2.4082666372936217 - ], - [ - 2.7092973461976726, - 3.9134621139364754 - ], - [ - 2.40826663729365, - 4.816575206709928 - ], - [ - 2.40826663729365, - 6.020698042326046 - ], - [ - 3.0103490211630515, - 6.321749717291425 - ], - [ - 3.311379730067074, - 6.321749717291425 - ], - [ - 3.6124104389710965, - 6.321749717291425 - ], - [ - 3.913441147875119, - 6.321749717291425 - ], - [ - 4.8165542406486, - 6.321749717291425 - ], - [ - 5.418615658456645, - 5.719667333421995 - ], - [ - 6.020698042326046, - 4.816575206709928 - ], - [ - 7.224841844003549, - 3.311400696128402 - ], - [ - 8.730016354585018, - 0.9030921267120959 - ], - [ - 9.633108481297143, - 0 - ], - [ - 9.934160156262521, - -0.6020823838694014 - ], - [ - 10.235190865166544, - -0.9031130927734523 - ], - [ - 9.934160156262521, - -0.3010307089040225 - ], - [ - 8.127933970715617, - 2.4082666372936217 - ], - [ - 5.117584949552622, - 6.020698042326046 - ], - [ - 1.8062052194855482, - 10.235190865166544 - ], - [ - 1.2041228356161469, - 10.837273249035945 - ], - [ - 0.9030921267121244, - 10.837273249035945 - ], - [ - 2.1072359283895707, - 9.03104706348904 - ], - [ - 5.719667333422024, - 3.6124104389710965 - ], - [ - 8.42896467961964, - -0.6020823838694014 - ], - [ - 10.235190865166544, - -3.010349021163023 - ], - [ - 10.837252282974589, - -3.6124314050324244 - ], - [ - 10.837252282974589, - -3.311400696128402 - ], - [ - 10.536221574070566, - -3.010349021163023 - ], - [ - 9.934160156262521, - -2.107256894450927 - ], - [ - 9.633108481297143, - -1.5051745105814973 - ], - [ - 9.33207777239312, - -1.2041228356161184 - ], - [ - 9.33207777239312, - -0.9031130927734523 - ], - [ - 9.633108481297143, - 0 - ], - [ - 9.633108481297143, - 0.3010516749653789 - ], - [ - 9.633108481297143, - 0.3010516749653789 - ] - ], - "pressures": [ - 0.0263671875, - 0.3134765625, - 0.4052734375, - 0.4736328125, - 0.55859375, - 0.6787109375, - 0.75, - 0.78515625, - 0.8203125, - 0.8955078125, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7763671875, - 0.4052734375, - 0.1630859375, - 0.1162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.633108481297143, - 0.3010516749653789 - ] - }, - { - "id": "xuQ5SqRF9dbG_hBaPKCd1", - "type": "freedraw", - "x": 214.30146135615547, - "y": 208.79480284247458, - "width": 3.0103490211629946, - "height": 5.719667333422024, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 260762061, - "version": 146, - "versionNonce": 521775725, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - 0 - ], - [ - 0.602061417808045, - 0 - ], - [ - 1.20412283561609, - 0 - ], - [ - 1.8062052194855482, - 0.6020614178080734 - ], - [ - 2.4082666372935932, - 1.5051745105815257 - ], - [ - 2.709318312258972, - 2.4082876033549496 - ], - [ - 2.709318312258972, - 3.311400696128402 - ], - [ - 3.0103490211629946, - 4.214492822840498 - ], - [ - 3.0103490211629946, - 4.51552353174452 - ], - [ - 3.0103490211629946, - 4.816575206709928 - ], - [ - 2.709318312258972, - 5.418636624517973 - ], - [ - 2.709318312258972, - 5.719667333422024 - ], - [ - 2.4082666372935932, - 5.418636624517973 - ], - [ - 2.4082666372935932, - 5.418636624517973 - ] - ], - "pressures": [ - 0.087890625, - 0.27734375, - 0.3720703125, - 0.6025390625, - 0.796875, - 0.908203125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1748046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.4082666372935932, - 5.418636624517973 - ] - }, - { - "id": "czHH8BIuacBd_f9iRxSc7", - "type": "freedraw", - "x": 214.90352277396352, - "y": 206.98859762298906, - "width": 3.9134621139364754, - "height": 8.127954936776945, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1725598925, - "version": 145, - "versionNonce": 947797731, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - 0.6020823838694014 - ], - [ - 0.9031130927734807, - 0.9030921267120959 - ], - [ - 1.2041438016775032, - 1.2041438016774748 - ], - [ - 1.8062052194855482, - 2.107256894450927 - ], - [ - 2.709318312258972, - 4.214492822840469 - ], - [ - 3.311379730067074, - 5.719667333421995 - ], - [ - 3.612431405032453, - 6.92381113509947 - ], - [ - 3.9134621139364754, - 7.2248418440034925 - ], - [ - 3.9134621139364754, - 7.525872552907543 - ], - [ - 3.9134621139364754, - 7.826903261811566 - ], - [ - 3.612431405032453, - 7.826903261811566 - ], - [ - 3.311379730067074, - 8.127954936776945 - ], - [ - 3.311379730067074, - 8.127954936776945 - ] - ], - "pressures": [ - 0.009765625, - 0.50390625, - 0.6806640625, - 0.7705078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.66796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.311379730067074, - 8.127954936776945 - ] - }, - { - "id": "cq83d5Fv-mYEGdAiFs14R", - "type": "freedraw", - "x": 222.128364617967, - "y": 215.116552559766, - "width": 12.643478468521494, - "height": 16.85799225742332, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2028234051, - "version": 145, - "versionNonce": 1582936877, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010516749653789 - ], - [ - 0.3010516749654357, - -0.3010516749653789 - ], - [ - 1.8062261855469046, - 0.6020614178080734 - ], - [ - 3.9134621139364754, - 2.1072359283895707 - ], - [ - 7.224862810064906, - 5.719667333421995 - ], - [ - 9.031068029550397, - 8.730016354585018 - ], - [ - 10.536242540131923, - 11.740365375748041 - ], - [ - 11.740386341809426, - 14.148652979102991 - ], - [ - 12.342447759617471, - 15.95485819858854 - ], - [ - 12.643478468521494, - 16.55694058245794 - ], - [ - 12.342447759617471, - 16.55694058245794 - ], - [ - 12.041417050713449, - 16.55694058245794 - ], - [ - 11.740386341809426, - 16.55694058245794 - ], - [ - 11.439355632905404, - 16.55694058245794 - ], - [ - 11.439355632905404, - 16.55694058245794 - ] - ], - "pressures": [ - 0.0966796875, - 0.5693359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8701171875, - 0.197265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.439355632905404, - 16.55694058245794 - ] - }, - { - "id": "0OiQAkf5R2lOg6aDxET8O", - "type": "freedraw", - "x": 218.8169848879, - "y": 212.10620353860298, - "width": 14.148652979102962, - "height": 17.76106341807406, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 381994861, - "version": 143, - "versionNonce": 330310179, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.9031130927734239, - 1.2041228356161184 - ], - [ - 2.709318312258972, - 3.3113797300670456 - ], - [ - 5.117605915613922, - 5.117584949552594 - ], - [ - 7.2248418440034925, - 7.5258935189689 - ], - [ - 9.33209873845442, - 10.235190865166544 - ], - [ - 11.138303957939968, - 12.643478468521494 - ], - [ - 13.245539886329539, - 15.653827489684517 - ], - [ - 13.84762227019894, - 16.85797129136199 - ], - [ - 14.148652979102962, - 17.159002000266014 - ], - [ - 14.148652979102962, - 17.76106341807406 - ], - [ - 13.84762227019894, - 17.76106341807406 - ], - [ - 13.546591561294917, - 17.76106341807406 - ], - [ - 13.546591561294917, - 17.76106341807406 - ] - ], - "pressures": [ - 0.0498046875, - 0.419921875, - 0.78515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.802734375, - 0.216796875, - 0.0205078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.546591561294917, - 17.76106341807406 - ] - }, - { - "id": "H1s7ACPaDApgQjl6UZa_t", - "type": "freedraw", - "x": 147.47163760851564, - "y": 168.4560798335552, - "width": 41.8438975195009, - "height": 23.48075171755744, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1298363565, - "version": 157, - "versionNonce": 534000813, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020823838694298, - -1.2041438016774748 - ], - [ - -0.3010516749653789, - -1.8062157025162264 - ], - [ - 0.6020614178080734, - -2.7093183122590005 - ], - [ - 2.1072359283895707, - -3.6124314050324244 - ], - [ - 6.020719008387374, - -6.020708525356724 - ], - [ - 10.83725228297456, - -8.127954936776973 - ], - [ - 16.857950325300607, - -10.235201348197222 - ], - [ - 22.577638624783987, - -11.74037585877872 - ], - [ - 26.792131447624485, - -12.643488951552172 - ], - [ - 30.404541886595524, - -13.245550369360217 - ], - [ - 31.006624270464982, - -13.546591561294946 - ], - [ - 31.307654979369005, - -13.546591561294946 - ], - [ - 30.705572595499603, - -12.342447759617443 - ], - [ - 28.598357633171332, - -9.63312944735847 - ], - [ - 26.190049063755026, - -6.6227804261954475 - ], - [ - 24.082834101426812, - -3.6124314050324244 - ], - [ - 22.577638624783987, - -0.6020823838694298 - ], - [ - 21.975556240914585, - 3.0103490211629946 - ], - [ - 21.975556240914585, - 5.117605915613922 - ], - [ - 22.87866933368801, - 6.92381113509947 - ], - [ - 24.98590526207758, - 8.127954936776945 - ], - [ - 28.598357633171332, - 9.33209873845442 - ], - [ - 31.307654979369005, - 9.934160156262493 - ], - [ - 33.715942582723955, - 9.934160156262493 - ], - [ - 35.823178511113525, - 9.934160156262493 - ], - [ - 37.93043540556445, - 9.33209873845442 - ], - [ - 40.338702042858046, - 8.730016354585018 - ], - [ - 40.94078442672745, - 8.730016354585018 - ], - [ - 41.24181513563147, - 8.730016354585018 - ], - [ - 41.24181513563147, - 8.127954936776945 - ], - [ - 40.94078442672745, - 6.321728751230069 - ], - [ - 40.63977468388478, - 5.719667333421995 - ], - [ - 40.63977468388478, - 5.719667333421995 - ] - ], - "pressures": [ - 0.056640625, - 0.5283203125, - 0.802734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.927734375, - 0.2685546875, - 0.123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 40.63977468388478, - 5.719667333421995 - ] - }, - { - "id": "mTJ9LSQ966rPDPPGJep7z", - "type": "freedraw", - "x": 170.9523683600117, - "y": 176.58403477033215, - "width": 11.439355632905347, - "height": 14.148652979102991, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 124896835, - "version": 142, - "versionNonce": 507017379, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.6021033499307578, - 0.3010307089040225 - ], - [ - 1.5051745105815257, - 3.010349021163023 - ], - [ - 1.8062261855469046, - 5.418636624517973 - ], - [ - 1.8062261855469046, - 8.127954936776945 - ], - [ - 1.5051745105815257, - 10.235190865166516 - ], - [ - 0.6021033499307578, - 11.439355632905347 - ], - [ - -0.9030921267120675, - 12.944530143486872 - ], - [ - -2.1072359283895707, - 13.546591561294917 - ], - [ - -3.6124104389710396, - 14.148652979102991 - ], - [ - -6.321728751230069, - 14.148652979102991 - ], - [ - -7.8269032618115375, - 13.847622270198968 - ], - [ - -8.730016354585018, - 13.546591561294917 - ], - [ - -9.332077772393063, - 13.245539886329539 - ], - [ - -9.633129447358442, - 13.245539886329539 - ], - [ - -9.633129447358442, - 12.944530143486872 - ], - [ - -9.03104706348904, - 12.944530143486872 - ], - [ - -8.730016354585018, - 12.944530143486872 - ], - [ - -8.730016354585018, - 12.944530143486872 - ] - ], - "pressures": [ - 0.078125, - 0.5947265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.822265625, - 0.115234375, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.730016354585018, - 12.944530143486872 - ] - }, - { - "id": "iJD6aU-ka2lGXb5RI0Qrx", - "type": "freedraw", - "x": 170.9523683600117, - "y": 162.43537130819848, - "width": 4.51552353174452, - "height": 18.96522818581289, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1785827651, - "version": 142, - "versionNonce": 19311981, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.6020719008387232 - ], - [ - -0.3010307089040225, - -0.6020719008387232 - ], - [ - -0.9030921267120675, - 0.3010307089040509 - ], - [ - -2.4082666372935932, - 2.107246411420249 - ], - [ - -3.0103490211629946, - 3.3113902130977237 - ], - [ - -3.6124104389710396, - 4.51552353174452 - ], - [ - -4.214492822840498, - 5.4186261414872945 - ], - [ - -4.51552353174452, - 6.321739234260747 - ], - [ - -4.51552353174452, - 7.826913744842244 - ], - [ - -4.214492822840498, - 9.33208825542377 - ], - [ - -3.6124104389710396, - 11.138314440970646 - ], - [ - -3.311379730067017, - 12.041406567682742 - ], - [ - -3.0103490211629946, - 12.643488951552172 - ], - [ - -2.4082666372935932, - 13.546581078264268 - ], - [ - -2.1072359283895707, - 14.750724879941743 - ], - [ - -1.505174510581469, - 16.556930099427262 - ], - [ - -0.9030921267120675, - 18.062125576070144 - ], - [ - -0.9030921267120675, - 18.363156284974167 - ], - [ - -0.602061417808045, - 18.363156284974167 - ], - [ - -0.602061417808045, - 18.363156284974167 - ] - ], - "pressures": [ - 0.013671875, - 0.2041015625, - 0.6337890625, - 0.712890625, - 0.736328125, - 0.751953125, - 0.787109375, - 0.8134765625, - 0.83203125, - 0.849609375, - 0.8388671875, - 0.82421875, - 0.8115234375, - 0.798828125, - 0.75390625, - 0.7109375, - 0.5439453125, - 0.2958984375, - 0.2265625, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.602061417808045, - 18.363156284974167 - ] - }, - { - "id": "Pfkpv4XYQ4AbRnb9aGdM-", - "type": "freedraw", - "x": 252.54261578879635, - "y": 211.9559523476138, - "width": 24.697265625, - "height": 17.527077414772748, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "Vls9z_ByvkuUCaOENbirj" - ], - "strokeSharpness": "round", - "seed": 596564845, - "version": 693, - "versionNonce": 200731619, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - 1.5933504971590082 - ], - [ - -6.373457475142118, - 3.1867564808237603 - ], - [ - -7.96686345880687, - 3.1867564808237603 - ], - [ - -8.763538707386374, - 3.1867564808237603 - ], - [ - -8.763538707386374, - 2.390081232244256 - ], - [ - -7.96686345880687, - -2.39008123224437 - ], - [ - -6.373457475142118, - -7.170188210227366 - ], - [ - -6.373457475142118, - -11.153619939630744 - ], - [ - -5.5767822265625, - -13.54364568536937 - ], - [ - -7.170188210227252, - -13.54364568536937 - ], - [ - -8.763538707386374, - -13.54364568536937 - ], - [ - -13.54364568536937, - -11.153619939630744 - ], - [ - -17.52713290127849, - -9.560213955965992 - ], - [ - -19.917158647017118, - -7.170188210227366 - ], - [ - -22.307239879261374, - -3.9834317294034918 - ], - [ - -24.697265625, - 0.7966752485795041 - ], - [ - -24.697265625, - 3.1867564808237603 - ], - [ - -24.697265625, - 3.983431729403378 - ], - [ - -22.307239879261374, - 3.983431729403378 - ], - [ - -19.1204833984375, - 3.1867564808237603 - ], - [ - -15.933726917613626, - 1.5933504971590082 - ], - [ - -12.746970436789752, - 0 - ], - [ - -9.560213955965992, - -1.593350497159122 - ], - [ - -7.96686345880687, - -1.593350497159122 - ], - [ - -7.170188210227252, - -1.593350497159122 - ], - [ - -6.373457475142118, - -0.7966752485796178 - ], - [ - -6.373457475142118, - 0 - ], - [ - -6.373457475142118, - 0.7966752485795041 - ], - [ - -7.170188210227252, - 0.7966752485795041 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.00390625, - 0.3251953125, - 0.3984375, - 0.4287109375, - 0.466796875, - 0.4775390625, - 0.48828125, - 0.5048828125, - 0.576171875, - 0.6376953125, - 0.8701171875, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7705078125, - 0.3798828125, - 0.1953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.170188210227252, - 0.7966752485795041 - ] - }, - { - "id": "AgIl173CcXqcKgNOmIPTA", - "type": "freedraw", - "x": 234.51983834784238, - "y": 208.76919586678991, - "width": 12.746970436789752, - "height": 6.373457475142004, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "Vls9z_ByvkuUCaOENbirj" - ], - "strokeSharpness": "round", - "seed": 931592163, - "version": 674, - "versionNonce": 69760973, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -1.593350497159122 - ], - [ - -0.7966752485795041, - -2.390025745738626 - ], - [ - 1.593405983664752, - -2.390025745738626 - ], - [ - 3.983431729403378, - -2.390025745738626 - ], - [ - 7.170188210227252, - -2.390025745738626 - ], - [ - 8.763594193892004, - -1.593350497159122 - ], - [ - 8.763594193892004, - -0.7966752485796178 - ], - [ - 9.560269442471622, - 0.7966752485795041 - ], - [ - 9.560269442471622, - 2.390081232244256 - ], - [ - 10.356944691051126, - 3.186756480823874 - ], - [ - 10.356944691051126, - 3.983431729403378 - ], - [ - 10.356944691051126, - 3.983431729403378 - ] - ], - "pressures": [ - 0.05859375, - 0.3544921875, - 0.5498046875, - 0.69921875, - 0.7587890625, - 0.859375, - 0.90234375, - 0.90234375, - 0.90234375, - 0.859375, - 0.53515625, - 0.16015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - 3.983431729403378 - ] - }, - { - "id": "xDpY2yBS-CTdcE9yomSBH", - "type": "freedraw", - "x": 220.92422081628956, - "y": 188.9264825299496, - "width": 13.546591561294917, - "height": 13.84762227019894, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2124978051, - "version": 114, - "versionNonce": 1367672387, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010516749653789, - -0.6020823838694014 - ], - [ - 0.3010516749653789, - -2.107256894450927 - ], - [ - 0.3010516749653789, - -3.6124314050324244 - ], - [ - 0.3010516749653789, - -5.117605915613922 - ], - [ - 0, - -6.92381113509947 - ], - [ - -0.9030921267121244, - -8.730037320646375 - ], - [ - -1.8062052194855482, - -9.93418112232385 - ], - [ - -2.709318312258972, - -11.138303957939968 - ], - [ - -3.913441147875119, - -12.04141705071342 - ], - [ - -5.719667333422024, - -12.643499434582822 - ], - [ - -7.826903261811594, - -13.245560852390895 - ], - [ - -9.03104706348904, - -13.546591561294917 - ], - [ - -10.235190865166544, - -13.84762227019894 - ], - [ - -11.138303957939968, - -13.84762227019894 - ], - [ - -12.041396084652092, - -13.84762227019894 - ], - [ - -12.342447759617471, - -13.84762227019894 - ], - [ - -12.643478468521494, - -13.546591561294917 - ], - [ - -12.944509177425516, - -13.245560852390895 - ], - [ - -13.245539886329539, - -12.643499434582822 - ], - [ - -13.245539886329539, - -12.342447759617443 - ], - [ - -12.342447759617471, - -11.74038634180937 - ], - [ - -11.740365375748013, - -11.74038634180937 - ], - [ - -11.740365375748013, - -11.74038634180937 - ] - ], - "pressures": [ - 0.083984375, - 0.5439453125, - 0.9345703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.484375, - 0.2451171875, - 0.0712890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.740365375748013, - -11.74038634180937 - ] - }, - { - "id": "V7a1SGcHLPhbWJ3buhp81", - "type": "freedraw", - "x": 208.88282473163747, - "y": 175.98195238646275, - "width": 9.33209873845442, - "height": 15.653848455745845, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2105180707, - "version": 114, - "versionNonce": 3229155, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010307089040509 - ], - [ - 0, - -0.6020614178080734 - ], - [ - -0.3010516749653789, - -0.6020614178080734 - ], - [ - -1.2041438016774464, - -0.6020614178080734 - ], - [ - -1.8062261855468478, - -0.3010307089040509 - ], - [ - -2.4082876033549496, - 0 - ], - [ - -2.709318312258972, - 0.3010307089040225 - ], - [ - -3.3114006961283735, - 1.2041438016774748 - ], - [ - -3.9134621139364185, - 3.0103490211629946 - ], - [ - -3.9134621139364185, - 4.515544497805877 - ], - [ - -3.9134621139364185, - 6.020719008387374 - ], - [ - -3.9134621139364185, - 7.224862810064849 - ], - [ - -2.709318312258972, - 9.633129447358442 - ], - [ - -1.8062261855468478, - 11.138303957939968 - ], - [ - -0.9031130927734239, - 12.342447759617443 - ], - [ - 0, - 13.245560852390895 - ], - [ - 0.9030921267121244, - 13.84762227019894 - ], - [ - 2.40826663729365, - 14.44970465406837 - ], - [ - 3.311379730067074, - 14.44970465406837 - ], - [ - 4.51552353174452, - 14.750735362972392 - ], - [ - 5.117584949552622, - 14.750735362972392 - ], - [ - 5.418636624518001, - 14.750735362972392 - ], - [ - 5.418636624518001, - 15.051787037937771 - ], - [ - 5.418636624518001, - 15.051787037937771 - ] - ], - "pressures": [ - 0.01171875, - 0.037109375, - 0.169921875, - 0.2431640625, - 0.314453125, - 0.3720703125, - 0.4150390625, - 0.4365234375, - 0.4443359375, - 0.4736328125, - 0.5283203125, - 0.57421875, - 0.6064453125, - 0.6357421875, - 0.64453125, - 0.64453125, - 0.638671875, - 0.62890625, - 0.5712890625, - 0.4931640625, - 0.37109375, - 0.2666015625, - 0.2001953125, - 0.142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.418636624518001, - 15.051787037937771 - ] - }, - { - "id": "lwwFF0mWrDaIdp6YPZbjc", - "type": "freedraw", - "x": 208.88282473163747, - "y": 189.52856491381903, - "width": 10.235190865166487, - "height": 24.684895519234885, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1385269805, - "version": 119, - "versionNonce": 1793739971, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010516749653789 - ], - [ - 0, - 0 - ], - [ - 0, - 0.9030921267120959 - ], - [ - 0, - 1.2041228356161184 - ], - [ - -0.3010516749653789, - 1.8061842534241919 - ], - [ - -0.9031130927734239, - 2.1072359283895707 - ], - [ - -2.107256894450927, - 2.4082666372935932 - ], - [ - -3.3114006961283735, - 2.7092973461976158 - ], - [ - -4.515544497805877, - 2.7092973461976158 - ], - [ - -6.020719008387346, - 2.7092973461976158 - ], - [ - -7.2248418440034925, - 3.010349021163023 - ], - [ - -8.428985645680939, - 3.311358764005689 - ], - [ - -9.031068029550397, - 3.9134411478750906 - ], - [ - -9.633129447358442, - 5.418615658456616 - ], - [ - -9.934160156262465, - 7.224820877942136 - ], - [ - -10.235190865166487, - 10.23516989910516 - ], - [ - -10.235190865166487, - 11.138282991878611 - ], - [ - -10.235190865166487, - 13.546591561294917 - ], - [ - -9.633129447358442, - 14.750714396911036 - ], - [ - -9.031068029550397, - 15.653806523623132 - ], - [ - -8.428985645680939, - 17.460032709170036 - ], - [ - -7.525893518968871, - 18.965207219751534 - ], - [ - -6.92381113509947, - 20.16935102142901 - ], - [ - -6.020719008387346, - 21.373494823106483 - ], - [ - -5.418636624517944, - 22.27658694981858 - ], - [ - -5.117605915613922, - 22.577638624783958 - ], - [ - -4.816575206709899, - 22.577638624783958 - ], - [ - -4.214492822840498, - 23.17970004259203 - ], - [ - -3.3114006961283735, - 23.781761460400077 - ], - [ - -2.4082876033549496, - 24.383843844269506 - ], - [ - -1.8062261855468478, - 24.383843844269506 - ], - [ - -1.8062261855468478, - 24.082813135365484 - ], - [ - -1.8062261855468478, - 24.082813135365484 - ] - ], - "pressures": [ - 0.0205078125, - 0.1494140625, - 0.294921875, - 0.3330078125, - 0.3564453125, - 0.5, - 0.62890625, - 0.783203125, - 0.8349609375, - 0.8701171875, - 0.9189453125, - 0.96484375, - 0.986328125, - 0.990234375, - 0.986328125, - 0.9833984375, - 0.986328125, - 0.9833984375, - 0.96484375, - 0.951171875, - 0.9580078125, - 0.9599609375, - 0.9599609375, - 0.9345703125, - 0.8955078125, - 0.8466796875, - 0.8408203125, - 0.83203125, - 0.8115234375, - 0.705078125, - 0.3017578125, - 0.208984375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.8062261855468478, - 24.082813135365484 - ] - }, - { - "id": "QaCaWmDkTzSafKqT5AN6L", - "type": "freedraw", - "x": 210.68902995112302, - "y": 200.06480745395092, - "width": 10.2352118312279, - "height": 14.750693430849708, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 317589293, - "version": 112, - "versionNonce": 2049555555, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.6020614178081019, - 0.30100974284269455 - ], - [ - 1.5051745105815257, - 1.5051745105815257 - ], - [ - 2.107256894450927, - 3.010349021163023 - ], - [ - 2.709318312258972, - 4.816533274587215 - ], - [ - 3.311379730067074, - 6.923790169038142 - ], - [ - 3.612431405032453, - 8.729995388523662 - ], - [ - 3.9134621139364754, - 10.536221574070566 - ], - [ - 3.9134621139364754, - 11.439313700782662 - ], - [ - 3.612431405032453, - 12.643457502460137 - ], - [ - 3.0103490211630515, - 13.54657059523359 - ], - [ - 1.5051745105815257, - 14.449662721945685 - ], - [ - 0.6020614178081019, - 14.750693430849708 - ], - [ - -0.3010307089040225, - 14.750693430849708 - ], - [ - -1.2041438016774464, - 14.750693430849708 - ], - [ - -2.107256894450927, - 14.750693430849708 - ], - [ - -3.311379730067017, - 14.750693430849708 - ], - [ - -3.9134621139364754, - 14.750693430849708 - ], - [ - -4.51552353174452, - 14.449662721945685 - ], - [ - -5.117605915613922, - 14.148632013041635 - ], - [ - -5.719667333421967, - 13.54657059523359 - ], - [ - -6.020698042326046, - 13.245518920268182 - ], - [ - -6.321749717291425, - 13.245518920268182 - ], - [ - -6.321749717291425, - 12.342426793556115 - ], - [ - -6.321749717291425, - 12.041396084652064 - ], - [ - -6.321749717291425, - 11.740344409686685 - ], - [ - -6.020698042326046, - 11.740344409686685 - ], - [ - -6.020698042326046, - 11.740344409686685 - ] - ], - "pressures": [ - 0.0751953125, - 0.599609375, - 0.822265625, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.96875, - 0.47265625, - 0.322265625, - 0.2099609375, - 0.1630859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.020698042326046, - 11.740344409686685 - ] - }, - { - "id": "wB5MYL5fHA_lZRoOYsQfi", - "type": "freedraw", - "x": 219.41904630570804, - "y": 186.21716421769062, - "width": 10.536242540131866, - "height": 18.062115093039438, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 204479075, - "version": 104, - "versionNonce": 1153924525, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.3010516749653789 - ], - [ - 0, - 1.2041438016774748 - ], - [ - 0.3010516749653789, - 2.4082666372935932 - ], - [ - 0.6020823838694014, - 4.214492822840498 - ], - [ - 0.6020823838694014, - 5.719667333421995 - ], - [ - 0.6020823838694014, - 7.525872552907543 - ], - [ - 0, - 9.33209873845442 - ], - [ - -1.2041438016774464, - 11.43933466684399 - ], - [ - -2.1072359283895707, - 12.342447759617443 - ], - [ - -3.0103490211629946, - 12.643478468521465 - ], - [ - -3.9134621139364754, - 13.245539886329539 - ], - [ - -5.117584949552565, - 13.847643236260296 - ], - [ - -7.2248418440034925, - 14.750714396911036 - ], - [ - -8.127954936776916, - 15.352817746841822 - ], - [ - -8.730016354585018, - 15.653827489684488 - ], - [ - -9.03104706348904, - 15.95485819858851 - ], - [ - -9.633129447358442, - 16.85799225742332 - ], - [ - -9.934160156262465, - 17.460032709170036 - ], - [ - -9.934160156262465, - 18.062115093039438 - ], - [ - -9.633129447358442, - 18.062115093039438 - ], - [ - -9.633129447358442, - 18.062115093039438 - ] - ], - "pressures": [ - 0.0107421875, - 0.1943359375, - 0.2314453125, - 0.25390625, - 0.2958984375, - 0.3359375, - 0.3837890625, - 0.4111328125, - 0.44921875, - 0.4794921875, - 0.5, - 0.5107421875, - 0.5146484375, - 0.5146484375, - 0.5146484375, - 0.5146484375, - 0.5087890625, - 0.443359375, - 0.3798828125, - 0.3232421875, - 0.13671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.633129447358442, - 18.062115093039438 - ] - }, - { - "id": "AjuBD7nixWCDbRTjO1fJZ", - "type": "freedraw", - "x": 213.69937897228607, - "y": 184.1099073232397, - "width": 2.107256894450927, - "height": 2.709318312258972, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 436576013, - "version": 104, - "versionNonce": 1942306829, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.6020823838694014, - -1.2041438016774748 - ], - [ - 0.9031130927734239, - -1.2041438016774748 - ], - [ - 1.505174510581469, - -0.9030921267120959 - ], - [ - 2.107256894450927, - 0 - ], - [ - 2.107256894450927, - 0.6020823838694014 - ], - [ - 2.107256894450927, - 0.9031340588348087 - ], - [ - 2.107256894450927, - 1.2041438016774748 - ], - [ - 1.505174510581469, - 1.5051745105814973 - ], - [ - 1.2041438016774464, - 1.5051745105814973 - ], - [ - 0.9031130927734239, - 1.5051745105814973 - ], - [ - 0.6020823838694014, - 1.5051745105814973 - ], - [ - 0.6020823838694014, - 0.9031340588348087 - ], - [ - 0.6020823838694014, - 0.6020823838694014 - ], - [ - 0.6020823838694014, - 0.3010307089040225 - ], - [ - 0.6020823838694014, - 0 - ], - [ - 0.6020823838694014, - -0.3010307089040225 - ], - [ - 0.9031130927734239, - -0.3010307089040225 - ], - [ - 1.2041438016774464, - 0 - ], - [ - 1.505174510581469, - 0.3010307089040225 - ], - [ - 1.505174510581469, - 0.6020823838694014 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0205078125, - 0.1806640625, - 0.1845703125, - 0.189453125, - 0.1962890625, - 0.2041015625, - 0.2158203125, - 0.2216796875, - 0.236328125, - 0.25390625, - 0.2666015625, - 0.2705078125, - 0.2734375, - 0.2734375, - 0.271484375, - 0.271484375, - 0.271484375, - 0.26953125, - 0.2265625, - 0.1259765625, - 0.072265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.505174510581469, - 0.6020823838694014 - ] - }, - { - "id": "cr5cZ-MMsRLl9U2Dd4U-B", - "type": "freedraw", - "x": 257.9515640951419, - "y": 188.0233904032375, - "width": 5.418636624518001, - "height": 8.127933970715617, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2028975597, - "version": 96, - "versionNonce": 1305001773, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - 0 - ], - [ - 0.602061417808045, - 0.602040451746717 - ], - [ - 1.8062261855468478, - 1.2041228356161469 - ], - [ - 2.709318312258972, - 2.1072359283895707 - ], - [ - 3.6124104389710396, - 3.010349021163023 - ], - [ - 3.913483079997775, - 3.6124104389710965 - ], - [ - 4.214513788901854, - 4.2144718567791415 - ], - [ - 4.214513788901854, - 4.515523531744549 - ], - [ - 4.214513788901854, - 4.816533274587215 - ], - [ - 3.311379730067017, - 5.418615658456616 - ], - [ - 2.107256894450927, - 6.020698042326046 - ], - [ - 0.3010307089040225, - 6.923790169038142 - ], - [ - -0.6020614178081019, - 7.826903261811594 - ], - [ - -0.9030921267121244, - 8.127933970715617 - ], - [ - -1.2041228356161469, - 8.127933970715617 - ], - [ - -0.6020614178081019, - 8.127933970715617 - ], - [ - -0.3010307089040225, - 8.127933970715617 - ], - [ - 0, - 8.127933970715617 - ], - [ - 0, - 8.127933970715617 - ] - ], - "pressures": [ - 0.09375, - 0.126953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3095703125, - 0.2275390625, - 0.134765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 8.127933970715617 - ] - }, - { - "id": "s4QloLjcSngQhX8W39DYy", - "type": "freedraw", - "x": 203.46418810711953, - "y": 227.15796961047943, - "width": 10.235190865166544, - "height": 18.96522818581289, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1465497379, - "version": 103, - "versionNonce": 643471341, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - -0.6020823838694298 - ], - [ - -0.9031130927734239, - -0.6020823838694298 - ], - [ - -1.8062052194855482, - 0 - ], - [ - -2.4082876033549496, - 1.8062052194855482 - ], - [ - -2.709318312258972, - 4.816554240648543 - ], - [ - -2.709318312258972, - 8.42896467961964 - ], - [ - -2.4082876033549496, - 12.643457502460137 - ], - [ - -1.8062052194855482, - 13.245539886329539 - ], - [ - -0.6020823838694014, - 14.750714396911036 - ], - [ - 0.602061417808045, - 14.750714396911036 - ], - [ - 1.8062052194855482, - 14.449683688007013 - ], - [ - 4.214492822840498, - 12.04141705071342 - ], - [ - 5.719667333422024, - 9.332077772393063 - ], - [ - 6.6227804261954475, - 6.622759460134091 - ], - [ - 6.92381113509947, - 4.2144718567791415 - ], - [ - 6.020698042326046, - 1.5051745105814973 - ], - [ - 4.51552353174452, - -0.6020823838694298 - ], - [ - 3.0103490211629946, - -2.4082876033549496 - ], - [ - 1.8062052194855482, - -3.311400696128402 - ], - [ - 0.3010307089040225, - -3.311400696128402 - ], - [ - -1.5051745105815257, - -1.5051745105814973 - ], - [ - -2.4082876033549496, - 0.3010307089040225 - ], - [ - -3.311379730067074, - 3.010349021163023 - ], - [ - -3.311379730067074, - 6.321728751230069 - ], - [ - -3.0103490211629946, - 10.235190865166516 - ], - [ - -1.2041438016775032, - 14.750714396911036 - ], - [ - 0.3010307089040225, - 15.653827489684488 - ], - [ - 0.602061417808045, - 15.653827489684488 - ], - [ - 0.602061417808045, - 15.653827489684488 - ] - ], - "pressures": [ - 0.0810546875, - 0.1298828125, - 0.193359375, - 0.263671875, - 0.3271484375, - 0.408203125, - 0.5048828125, - 0.5888671875, - 0.6015625, - 0.599609375, - 0.5869140625, - 0.5712890625, - 0.5595703125, - 0.5400390625, - 0.5029296875, - 0.46875, - 0.4453125, - 0.439453125, - 0.4248046875, - 0.4287109375, - 0.4453125, - 0.4541015625, - 0.447265625, - 0.439453125, - 0.427734375, - 0.4267578125, - 0.330078125, - 0.216796875, - 0.169921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.602061417808045, - 15.653827489684488 - ] - }, - { - "id": "gJcJiORkuUpeeXL0MLrx8", - "type": "freedraw", - "x": 282.6364596143768, - "y": 176.58403477033215, - "width": 10.837273249035945, - "height": 8.428985645680967, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 4646851, - "version": 103, - "versionNonce": 1618678349, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020194856853323, - -1.2041438016774748 - ], - [ - -0.3010307089040225, - -2.107256894450927 - ], - [ - 0, - -3.311400696128402 - ], - [ - 0.9031340588347803, - -4.515544497805877 - ], - [ - 1.5051954766428821, - -5.11760591561395 - ], - [ - 2.107256894450927, - -5.11760591561395 - ], - [ - 3.311379730067074, - -5.418636624517973 - ], - [ - 5.719667333422024, - -6.020719008387374 - ], - [ - 7.224862810064849, - -6.020719008387374 - ], - [ - 8.429027577803708, - -5.418636624517973 - ], - [ - 9.03104706348904, - -4.214492822840498 - ], - [ - 9.332077772393063, - -2.4082876033549496 - ], - [ - 9.332077772393063, - -1.5051745105814973 - ], - [ - 9.03104706348904, - -0.6020823838694014 - ], - [ - 7.525893518968871, - 0.3010307089040225 - ], - [ - 5.117605915613922, - 1.5051745105814973 - ], - [ - 1.8062261855469046, - 2.4082666372935932 - ], - [ - 0.3010307089040225, - 1.8062052194855482 - ], - [ - -0.6020194856853323, - 0.6020614178080734 - ], - [ - -1.5051954766428821, - -0.3010516749653789 - ], - [ - -1.5051954766428821, - -1.5051745105814973 - ], - [ - -1.20412283561609, - -2.4082876033549496 - ], - [ - 0, - -3.913462113936447 - ], - [ - 1.8062261855469046, - -5.11760591561395 - ], - [ - 3.0103490211629946, - -5.719667333421995 - ], - [ - 3.9134830799978317, - -5.719667333421995 - ], - [ - 4.515544497805877, - -4.816575206709899 - ], - [ - 4.816575206709899, - -3.913462113936447 - ], - [ - 4.816575206709899, - -3.311400696128402 - ], - [ - 4.816575206709899, - -3.311400696128402 - ] - ], - "pressures": [ - 0.060546875, - 0.26953125, - 0.3486328125, - 0.44140625, - 0.6044921875, - 0.705078125, - 0.7685546875, - 0.826171875, - 0.9384765625, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.97265625, - 0.953125, - 0.8916015625, - 0.7421875, - 0.5146484375, - 0.287109375, - 0.1845703125, - 0.0927734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.816575206709899, - -3.311400696128402 - ] - }, - { - "id": "RQR80mU9vyFKIAbliTVXL", - "type": "freedraw", - "x": 483.6675567050967, - "y": 375.61061848419473, - "width": 30.68439953559955, - "height": 4.05267327982911, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 356816771, - "version": 326, - "versionNonce": 560355405, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -3.177693507477737, - -4.448797468339633 - ], - [ - -5.493460728068617, - -5.027759434436129 - ], - [ - -6.072442855113877, - -5.027759434436129 - ], - [ - -3.756635312625469, - -5.027759434436129 - ], - [ - 0.8750200942489306, - -5.027759434436129 - ], - [ - 6.085536662475888, - -6.185663205680334 - ], - [ - 11.29609355260044, - -7.3435468159757695 - ], - [ - 18.243516180065715, - -7.922508782072271 - ], - [ - 21.13826552770184, - -7.922508782072271 - ], - [ - 22.296149137997258, - -7.922508782072271 - ], - [ - 22.875090943144976, - -7.922508782072271 - ], - [ - 23.45403274829274, - -7.922508782072271 - ], - [ - 24.033014875337997, - -8.501470748168742 - ], - [ - 24.611956680485672, - -8.501470748168742 - ], - [ - 24.033014875337997, - -8.501470748168742 - ], - [ - 24.033014875337997, - -8.501470748168742 - ] - ], - "pressures": [ - 0.0625, - 0.1845703125, - 0.271484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.081098174095246, - -8.501470748168742 - ] - }, - { - "id": "LX1zjevBkv9WGeqARLewJ", - "type": "freedraw", - "x": 497.4492258725776, - "y": 364.90651628098607, - "width": 2.31584786438594, - "height": 33.00016675619043, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 401217837, - "version": 322, - "versionNonce": 1359208195, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -1.9066338097338222, - -1.2710596977438828 - ], - [ - -2.4855756148815566, - -2.4289433080393223 - ], - [ - -2.4855756148815566, - 0.46580603959681927 - ], - [ - -2.4855756148815566, - 6.255304734869077 - ], - [ - -3.0645174200292353, - 13.202707201385554 - ], - [ - -3.643499547074498, - 20.15010966790203 - ], - [ - -3.643499547074498, - 25.9396083631743 - ], - [ - -3.643499547074498, - 30.57122344815111 - ], - [ - -3.0645174200292353, - 30.57122344815111 - ], - [ - -1.327651682688558, - 28.2554159056627 - ], - [ - -1.327651682688558, - 27.097512134418523 - ], - [ - -1.327651682688558, - 27.097512134418523 - ] - ], - "pressures": [ - 0.0244140625, - 0.58984375, - 0.884765625, - 0.931640625, - 1, - 1, - 1, - 1, - 1, - 0.2470703125, - 0.087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.2145562390352325, - 59.50999918962674 - ] - }, - { - "id": "gT44jWEu18V-_xVkEIzOo", - "type": "freedraw", - "x": 509.83356150628526, - "y": 388.51728574776644, - "width": 10.4211137802491, - "height": 17.36851624676557, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1377927821, - "version": 334, - "versionNonce": 800476333, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -4.448797468339661, - -6.355409146514473 - ], - [ - -5.0277392734873985, - -7.513312917758705 - ], - [ - -5.606721400532655, - -6.9343711126109735 - ], - [ - -6.764605010828125, - -6.355409146514473 - ], - [ - -7.343546815975803, - -4.618563570122566 - ], - [ - -7.343546815975803, - -4.039621764974858 - ], - [ - -7.922488621123535, - -2.8816978327818616 - ], - [ - -7.922488621123535, - -0.5659104512422153 - ], - [ - -7.922488621123535, - 1.1709351251496962 - ], - [ - -7.343546815975803, - 2.907821023439192 - ], - [ - -7.343546815975803, - 3.4867426676381337 - ], - [ - -6.764605010828125, - 4.065704633734635 - ], - [ - -6.764605010828125, - 4.644646438882336 - ], - [ - -6.18566320568039, - 5.223588244030043 - ], - [ - -5.0277392734873985, - 5.223588244030043 - ], - [ - -4.448797468339661, - 5.223588244030043 - ], - [ - -3.869855663191983, - 5.223588244030043 - ], - [ - -2.711972052896518, - 5.223588244030043 - ], - [ - -0.9751063155558426, - 4.644646438882336 - ], - [ - -0.3961645104081102, - 3.4867426676381337 - ], - [ - 0.7617997436824159, - 2.3288388963939313 - ], - [ - 1.3407012269325616, - 0.5919933200019906 - ], - [ - 1.919643032080299, - -1.1448522563899228 - ], - [ - 1.919643032080299, - -1.7238142224864188 - ], - [ - 1.919643032080299, - -4.039621764974858 - ], - [ - 1.919643032080299, - -5.1975053752702705 - ], - [ - 1.919643032080299, - -6.355409146514473 - ], - [ - 1.3407012269325616, - -7.513312917758705 - ], - [ - 0.7617997436824159, - -8.092274883855206 - ], - [ - 0.18277729473957036, - -9.25015849415062 - ], - [ - -0.3961645104081102, - -9.829120460247118 - ], - [ - -1.5540481207035755, - -10.98702423149132 - ], - [ - -2.711972052896518, - -11.565945875690257 - ], - [ - -3.290913858044252, - -11.565945875690257 - ], - [ - -3.869855663191983, - -12.144928002735526 - ], - [ - -5.0277392734873985, - -12.144928002735526 - ], - [ - -6.18566320568039, - -11.565945875690257 - ], - [ - -6.764605010828125, - -10.98702423149132 - ], - [ - -7.343546815975803, - -10.408062265394818 - ], - [ - -7.922488621123535, - -9.829120460247118 - ], - [ - -8.5014707481688, - -8.092274883855206 - ], - [ - -8.5014707481688, - -7.513312917758705 - ], - [ - -8.5014707481688, - -6.355409146514473 - ], - [ - -8.5014707481688, - -5.7764471804180015 - ], - [ - -8.5014707481688, - -3.46065979887836 - ], - [ - -8.5014707481688, - -2.302756027634154 - ], - [ - -8.5014707481688, - -1.1448522563899228 - ], - [ - -8.5014707481688, - -0.5659104512422153 - ], - [ - -7.922488621123535, - 0.013051514854282978 - ], - [ - -6.764605010828125, - 0.5919933200019906 - ], - [ - -6.18566320568039, - 1.1709351251496962 - ], - [ - -3.869855663191983, - 0.5919933200019906 - ], - [ - -3.869855663191983, - 0.013051514854282978 - ], - [ - -3.869855663191983, - 0.013051514854282978 - ] - ], - "pressures": [ - 0.05078125, - 0.271484375, - 0.6572265625, - 0.6845703125, - 0.736328125, - 0.7724609375, - 0.8056640625, - 0.8388671875, - 0.8662109375, - 0.9130859375, - 0.9365234375, - 0.9453125, - 0.953125, - 0.97265625, - 0.9755859375, - 0.986328125, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8701171875, - 0.4306640625, - 0.23046875, - 0.11328125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.214471654019576, - 13.359399656755159 - ] - }, - { - "id": "GBVovVVLjqbhjjNMmuFRG", - "type": "freedraw", - "x": 511.80974831897004, - "y": 383.3197803724961, - "width": 5.7894986952722824, - "height": 11.000075746345598, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 482325155, - "version": 303, - "versionNonce": 119791779, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -0.6354855857538847, - 0 - ], - [ - -0.6354855857538847, - 0.578941805147706 - ], - [ - -0.6354855857538847, - 2.315807542488409 - ], - [ - -1.214387069004033, - 4.631594924028052 - ], - [ - -1.214387069004033, - 6.9474024665164595 - ], - [ - -1.214387069004033, - 8.105326398709462 - ], - [ - -1.214387069004033, - 8.684248042908395 - ], - [ - -1.214387069004033, - 9.8421518141526 - ], - [ - -0.6354855857538847, - 10.42109361930031 - ], - [ - -0.6354855857538847, - 11.000075746345598 - ], - [ - 0.5223980245415817, - 11.000075746345598 - ], - [ - 2.25926376188226, - 10.42109361930031 - ], - [ - 3.4171473721776735, - 9.263210009004897 - ], - [ - 3.9961294992229863, - 8.684248042908395 - ], - [ - 4.575111626268249, - 6.9474024665164595 - ], - [ - 4.575111626268249, - 5.21055689012455 - ], - [ - 4.575111626268249, - 4.052653118880348 - ], - [ - 4.575111626268249, - 2.894749347636116 - ], - [ - 4.575111626268249, - 2.315807542488409 - ], - [ - 4.575111626268249, - 1.73684557639191 - ], - [ - 3.9961294992229863, - 1.157883610295412 - ], - [ - 3.4171473721776735, - 1.73684557639191 - ], - [ - -0.6354855857538847, - 0 - ] - ], - "pressures": [ - 0.0302734375, - 0.8955078125, - 0.9599609375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1865234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.501386163153143, - 3.6434572545667265 - ] - }, - { - "id": "NScMQ7Z1Y5gJ7bphUlMCc", - "type": "freedraw", - "x": 521.5953765134672, - "y": 436.90101994003214, - "width": 19.10536182315752, - "height": 40.52653118880343, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1422337389, - "version": 334, - "versionNonce": 633721923, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - -42.58116382119039 - ], - [ - 0, - -42.00224217699147 - ], - [ - 0.5789821270453174, - -42.58116382119039 - ], - [ - 0.5789821270453174, - -46.633837101019544 - ], - [ - 1.7368254154431428, - -52.42335595724059 - ], - [ - 1.7368254154431428, - -57.63389268641635 - ], - [ - 1.7368254154431428, - -61.68656596624548 - ], - [ - 1.7368254154431428, - -65.16025711902932 - ], - [ - 1.7368254154431428, - -66.89710269542127 - ], - [ - 1.7368254154431428, - -69.21291023790968 - ], - [ - 1.7368254154431428, - -71.5286976194493 - ], - [ - 1.7368254154431428, - -73.84452532288651 - ], - [ - 1.1578836102954655, - -77.31819631472156 - ], - [ - 0.5789821270453174, - -79.05508221301106 - ], - [ - 0.5789821270453174, - -80.21296582330655 - ], - [ - 0, - -81.3708695945507 - ], - [ - 0, - -80.21296582330655 - ], - [ - 0.5789821270453174, - -75.00242909413073 - ], - [ - 0.5789821270453174, - -68.63394827181317 - ], - [ - 1.1578836102954655, - -60.528662195001225 - ], - [ - 1.7368254154431428, - -53.58123956753602 - ], - [ - 2.31580754248846, - -48.37068267741144 - ], - [ - 2.894749347636139, - -48.37068267741144 - ], - [ - 2.894749347636139, - -48.949644643507945 - ], - [ - 3.473731474681401, - -51.26543202504757 - ], - [ - 4.0526329579316, - -53.00229776238831 - ], - [ - 4.631615084976868, - -55.318105304876696 - ], - [ - 5.789498695272278, - -57.05493072031987 - ], - [ - 6.36848082231754, - -59.37075842375705 - ], - [ - 6.947382305567686, - -60.528662195001225 - ], - [ - 7.526364432613003, - -61.107604000149 - ], - [ - 9.26323016995368, - -61.107604000149 - ], - [ - 10.421113780249085, - -61.107604000149 - ], - [ - 11.578997390544556, - -61.107604000149 - ], - [ - 12.736921322737553, - -61.107604000149 - ], - [ - 13.894804933032969, - -59.949680067955995 - ], - [ - 15.631670670373634, - -58.21285465251286 - ], - [ - 16.789554280669094, - -55.897047110024445 - ], - [ - 17.94747821286209, - -53.58123956753602 - ], - [ - 18.526420018009766, - -50.68649021989989 - ], - [ - 19.10536182315752, - -48.37068267741144 - ], - [ - 18.526420018009766, - -44.8969915246276 - ], - [ - 17.368496085816776, - -43.7390877533834 - ], - [ - 16.21061247552136, - -42.00224217699147 - ], - [ - 13.894804933032969, - -41.423280210895 - ], - [ - 11.00005558539682, - -40.844338405747266 - ], - [ - 8.684248042908417, - -40.844338405747266 - ], - [ - 4.631615084976868, - -41.423280210895 - ], - [ - 3.473731474681401, - -42.00224217699147 - ], - [ - 2.31580754248846, - -42.58116382119039 - ], - [ - 1.1578836102954655, - -43.16014594823569 - ], - [ - 1.1578836102954655, - -43.7390877533834 - ], - [ - 1.1578836102954655, - -44.8969915246276 - ], - [ - 1.1578836102954655, - -45.47591316882655 - ], - [ - 1.7368254154431428, - -45.47591316882655 - ], - [ - 0, - -42.58116382119039 - ] - ], - "pressures": [ - 0.0830078125, - 0.2685546875, - 0.3740234375, - 0.8115234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3427734375, - 0.2275390625, - 0.1669921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.643414962058955, - -6.072442855113877 - ] - }, - { - "id": "vFw1eo4MIsguUXJSY4Uhl", - "type": "freedraw", - "x": 516.3848599452407, - "y": 408.2712510662092, - "width": 59.05291088491562, - "height": 2.3158075424884084, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1183649283, - "version": 286, - "versionNonce": 891391949, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - -0.6355519804309927 - ], - [ - 2.315767220590823, - -0.05661017528331372 - ], - [ - 15.631630348476065, - 1.1012935959608903 - ], - [ - 24.894820196532233, - 1.1012935959608903 - ], - [ - 38.789625129565124, - 0.5223517908132116 - ], - [ - 45.73704775703042, - -0.05661017528331372 - ], - [ - 53.26341218964336, - -1.2145139465275179 - ], - [ - 56.15816153727955, - -1.2145139465275179 - ], - [ - 59.05291088491562, - -0.05661017528331372 - ], - [ - 59.05291088491562, - 0.5223517908132116 - ], - [ - 59.05291088491562, - 0.5223517908132116 - ] - ], - "pressures": [ - 0.01171875, - 0.904296875, - 1, - 1, - 1, - 1, - 1, - 0.6064453125, - 0.1826171875, - 0.1259765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 123.87788499533212, - 2.428985600547094 - ] - }, - { - "id": "xK4VxHWGSgPsYhrENOtVR", - "type": "freedraw", - "x": 541.7889361546127, - "y": 417.4778508999307, - "width": 8.10526591586311, - "height": 9.842171975101417, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 837382083, - "version": 294, - "versionNonce": 1398398851, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -5.719812902965501, - 0 - ], - [ - -6.2987547081132345, - 0 - ], - [ - -8.035580123556382, - 1.7368657373407284 - ], - [ - -9.772445860897108, - 2.89474934763614 - ], - [ - -10.351387666044788, - 4.052653118880345 - ], - [ - -10.930329471192522, - 4.631615084976869 - ], - [ - -10.351387666044788, - 6.368460661368751 - ], - [ - -8.614562250601647, - 8.10530623776069 - ], - [ - -7.456638318408646, - 9.263210009004888 - ], - [ - -5.719812902965501, - 9.842171975101417 - ], - [ - -5.140830775920237, - 9.842171975101417 - ], - [ - -4.561888970772557, - 9.842171975101417 - ], - [ - -3.9829471656248248, - 9.263210009004888 - ], - [ - -3.9829471656248248, - 8.10530623776069 - ], - [ - -2.8250635553294114, - 6.368460661368751 - ], - [ - -2.8250635553294114, - 5.789518856221075 - ], - [ - -2.8250635553294114, - 5.789518856221075 - ] - ], - "pressures": [ - 0, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.8701171875, - 0.48046875, - 0.3564453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.0724428551137635, - 12.144928002735583 - ] - }, - { - "id": "AYDJzaG2835vZI58zQlc0", - "type": "freedraw", - "x": 537.3401829493922, - "y": 426.797671084219, - "width": 2.3158075424884084, - "height": 2.3158075424884084, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1066257037, - "version": 282, - "versionNonce": 1016657699, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -1.2710596977439141, - -0.6355519804309334 - ], - [ - -1.8500015028916468, - 1.1012935959610042 - ], - [ - -2.428943308039379, - 1.1012935959610042 - ], - [ - -0.1131357655509706, - -1.2145139465274042 - ], - [ - -1.2710596977439141, - -0.6355519804309334 - ] - ], - "pressures": [ - 0.458984375, - 1, - 1, - 0.232421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.4290278930548084, - -1.2145139465274042 - ] - }, - { - "id": "BOMd7JeNYHU8PEoi0QHnz", - "type": "freedraw", - "x": 536.7612411442444, - "y": 433.6754320215467, - "width": 4.631574763079233, - "height": 6.368460661368755, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1544430499, - "version": 305, - "versionNonce": 787464333, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -1.2710596977438537, - -6.355409146514504 - ], - [ - -1.8500015028915857, - -6.934371112611031 - ], - [ - -1.8500015028915857, - -8.092274883855232 - ], - [ - -2.4289433080392655, - -9.250158494150645 - ], - [ - -2.4289433080392655, - -9.82912046024717 - ], - [ - -2.4289433080392655, - -10.40806226539485 - ], - [ - -2.4289433080392655, - -11.56596603663905 - ], - [ - -2.4289433080392655, - -12.144928002735583 - ], - [ - -1.2710596977438537, - -12.144928002735583 - ], - [ - -0.69211789259612, - -12.144928002735583 - ], - [ - 0.4658060395968215, - -12.144928002735583 - ], - [ - 1.6236896498922866, - -10.987024231491379 - ], - [ - 1.6236896498922866, - -9.82912046024717 - ], - [ - 2.2026314550399677, - -8.671216689002968 - ], - [ - 2.2026314550399677, - -8.092274883855232 - ], - [ - 1.6236896498922866, - -7.513312917758763 - ], - [ - -0.11313576555085685, - -6.355409146514504 - ], - [ - -0.69211789259612, - -5.776467341366828 - ], - [ - -1.2710596977438537, - -5.776467341366828 - ], - [ - -1.8500015028915857, - -5.776467341366828 - ], - [ - -1.8500015028915857, - -6.355409146514504 - ], - [ - -2.4289433080392655, - -7.513312917758763 - ], - [ - -1.8500015028915857, - -8.092274883855232 - ], - [ - -0.69211789259612, - -8.092274883855232 - ], - [ - -0.11313576555085685, - -8.092274883855232 - ], - [ - 0.4658060395968215, - -8.092274883855232 - ], - [ - 1.0447478447445535, - -8.092274883855232 - ], - [ - -1.2710596977438537, - -6.355409146514504 - ] - ], - "pressures": [ - 0.0625, - 0.361328125, - 0.4345703125, - 0.58984375, - 0.734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4580078125, - 0.1259765625, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.857971201094188, - -3.6434995470746117 - ] - }, - { - "id": "bOWojYcn9JvZ4ovUcyPf8", - "type": "freedraw", - "x": 548.5666792359206, - "y": 446.5820992851184, - "width": 19.105361823157473, - "height": 26.631746416719267, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 236588259, - "version": 313, - "versionNonce": 1643692365, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -3.8132676194677058, - -8.262020824689293 - ], - [ - -4.392249746513022, - -7.683079019541564 - ], - [ - -4.392249746513022, - -8.262020824689293 - ], - [ - -4.392249746513022, - -9.998866401081175 - ], - [ - -2.6553840091722933, - -12.314673943569643 - ], - [ - -2.0764422040245605, - -13.472577714813847 - ], - [ - -0.3395361447863027, - -14.630481486058045 - ], - [ - 0.81830714361158, - -15.209423291205724 - ], - [ - 1.9762310758045232, - -15.209423291205724 - ], - [ - 3.713056491247666, - -15.788385257302252 - ], - [ - 4.870980423440661, - -15.788385257302252 - ], - [ - 5.4499625504859255, - -15.788385257302252 - ], - [ - 6.607805838883803, - -15.788385257302252 - ], - [ - 7.765729771076819, - -14.051519519961522 - ], - [ - 8.344711898122068, - -11.156770172325437 - ], - [ - 9.502595508417532, - -8.262020824689293 - ], - [ - 9.502595508417532, - -5.946213282200888 - ], - [ - 9.502595508417532, - -3.630425900661218 - ], - [ - 8.92361338137221, - -0.15671458692860524 - ], - [ - 7.765729771076819, - 1.0011891843155947 - ], - [ - 5.4499625504859255, - 4.474880337099469 - ], - [ - 3.1341146860999913, - 6.211746074440145 - ], - [ - 1.3972892706568436, - 7.369629684735606 - ], - [ - -0.3395361447863027, - 7.948611811780865 - ], - [ - -2.6553840091722933, - 8.527553616928616 - ], - [ - -5.550133356808433, - 9.685437227224009 - ], - [ - -6.708057289001429, - 10.264379032371744 - ], - [ - -7.28699909414911, - 10.843361159417013 - ], - [ - -6.708057289001429, - 10.843361159417013 - ], - [ - -3.8132676194677058, - 10.843361159417013 - ], - [ - 0.23936533846384636, - 10.843361159417013 - ], - [ - 3.713056491247666, - 10.843361159417013 - ], - [ - 7.765729771076819, - 10.264379032371744 - ], - [ - 8.92361338137221, - 10.264379032371744 - ], - [ - 10.660479118712942, - 9.685437227224009 - ], - [ - 11.818362729008363, - 9.685437227224009 - ], - [ - 11.818362729008363, - 9.106495422076287 - ], - [ - 11.818362729008363, - 7.948611811780865 - ], - [ - 11.239461245758207, - 7.369629684735606 - ], - [ - 11.239461245758207, - 7.369629684735606 - ] - ], - "pressures": [ - 0.0458984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4599609375, - 0.259765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.576770514604505, - 32.79119987611648 - ] - }, - { - "id": "3wNqCddfUaj-GxCEjxi2h", - "type": "freedraw", - "x": 565.7087749425027, - "y": 433.8582294772351, - "width": 26.631726255770424, - "height": 27.78963002701467, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1066851917, - "version": 331, - "versionNonce": 1743291907, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -1.2710596977438535, - -1.906611678174847 - ], - [ - -2.4289433080392655, - -3.0645154494190505 - ], - [ - -1.2710596977438535, - -3.0645154494190505 - ], - [ - -0.6921178925961202, - -3.6434572545667834 - ], - [ - 1.044747844744555, - -3.6434572545667834 - ], - [ - 3.9394971923806943, - -3.0645154494190505 - ], - [ - 5.097380802676106, - -2.4855534833225255 - ], - [ - 7.992130150312255, - -0.7487079069306433 - ], - [ - 10.307937692800651, - 1.5670996355577655 - ], - [ - 12.044803430141386, - 4.461848983193906 - ], - [ - 13.781669167482061, - 8.514502102074246 - ], - [ - 13.781669167482061, - 10.251347678466185 - ], - [ - 13.781669167482061, - 10.83030964456265 - ], - [ - 13.781669167482061, - 12.567155220954586 - ], - [ - 12.044803430141386, - 14.882942602494271 - ], - [ - 7.992130150312255, - 18.356674077175658 - ], - [ - 5.676362929721421, - 20.672481619664044 - ], - [ - 3.3605553872329605, - 21.251423424811787 - ], - [ - 2.2026314550399673, - 21.830365229959476 - ], - [ - -0.1131357655508573, - 22.409307035107208 - ], - [ - -1.2710596977438535, - 23.5672309673002 - ], - [ - -1.8500015028915862, - 24.146172772447887 - ], - [ - -2.4289433080392655, - 24.146172772447887 - ], - [ - -0.1131357655508573, - 24.146172772447887 - ], - [ - 3.9394971923806943, - 23.5672309673002 - ], - [ - 11.465861624993648, - 22.988248840254947 - ], - [ - 15.518494582925207, - 22.988248840254947 - ], - [ - 18.992226057606608, - 22.988248840254947 - ], - [ - 21.307993278197465, - 22.988248840254947 - ], - [ - 23.0448590155382, - 22.988248840254947 - ], - [ - 24.20278294773116, - 22.988248840254947 - ], - [ - 24.20278294773116, - 23.5672309673002 - ], - [ - 24.20278294773116, - 24.146172772447887 - ], - [ - 24.20278294773116, - 24.146172772447887 - ] - ], - "pressures": [ - 0.2021484375, - 0.849609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2705078125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.437598627020634, - 54.652070281040324 - ] - }, - { - "id": "_UDKfh8GxBU5KAqtD-ypM", - "type": "freedraw", - "x": 537.0223757324475, - "y": 349.3314779174547, - "width": 39.94758938365572, - "height": 31.263361501696085, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 257466947, - "version": 296, - "versionNonce": 1166986659, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -43.21664940694432, - -1.9066338097338524 - ], - [ - -42.63766727989907, - -1.9066338097338524 - ], - [ - -45.53241662753522, - -2.48559577583035 - ], - [ - -46.69030023783061, - -2.48559577583035 - ], - [ - -50.164031712512035, - -3.064537580978056 - ], - [ - -54.21670499234117, - -3.064537580978056 - ], - [ - -61.743069424954136, - -3.643499547074555 - ], - [ - -66.95358599318115, - -3.643499547074555 - ], - [ - -72.16418320520332, - -3.064537580978056 - ], - [ - -78.53258338372568, - -2.48559577583035 - ], - [ - -81.42733273136179, - -2.48559577583035 - ], - [ - -82.58525666355479, - -2.48559577583035 - ], - [ - -81.42733273136179, - -1.3276718436373547 - ], - [ - -79.69050731591865, - 2.146019309146492 - ], - [ - -77.95368190047553, - 6.777614233174543 - ], - [ - -75.05893255283935, - 16.619786208275926 - ], - [ - -73.32206681549863, - 21.830343098400487 - ], - [ - -72.16418320520332, - 25.88297605633203 - ], - [ - -72.16418320520332, - 27.61986195462153 - ], - [ - -72.16418320520332, - 27.040879827576255 - ], - [ - -72.16418320520332, - 23.567188674792405 - ], - [ - -72.16418320520332, - 20.67243932715628 - ], - [ - -72.16418320520332, - 20.093477361059787 - ], - [ - -72.16418320520332, - 20.093477361059787 - ] - ], - "pressures": [ - 0.0537109375, - 0.5263671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5087890625, - 0.251953125, - 0.1357421875, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -60.724513136154314, - 46.15059953287158 - ] - }, - { - "id": "Vcbb8PTjl6tRA6Hej81pe", - "type": "freedraw", - "x": 626.4463415641212, - "y": 437.27535274724346, - "width": 40.526531188803396, - "height": 42.842338731291846, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1099480045, - "version": 299, - "versionNonce": 969445901, - "isDeleted": false, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - -26.69265202068368, - -1.2710818293028914 - ], - [ - -27.27159382583137, - -2.428985600547094 - ], - [ - -27.27159382583137, - -1.2710818293028914 - ], - [ - -23.797902673047552, - 5.097378832065856 - ], - [ - -20.903153325411402, - 11.465819332485871 - ], - [ - -17.42942185073, - 17.834300154803415 - ], - [ - -13.955730697946134, - 25.360664587416373 - ], - [ - -12.218864960605456, - 29.413297545347923 - ], - [ - -11.060981350310051, - 32.886988698131724 - ], - [ - -10.482039545162314, - 34.04491263032474 - ], - [ - -10.482039545162314, - 34.62385443547248 - ], - [ - -12.218864960605456, - 35.20279624062021 - ], - [ - -16.85048004558228, - 36.93966197796091 - ], - [ - -22.639978740854552, - 38.09754558825628 - ], - [ - -29.587401368319767, - 38.676527715301596 - ], - [ - -37.113765800932796, - 37.518603783108624 - ], - [ - -44.06114810650049, - 35.781778367665495 - ], - [ - -46.95589745413662, - 35.781778367665495 - ], - [ - -48.6927631914773, - 37.518603783108624 - ], - [ - -50.42962892881804, - 38.676527715301596 - ], - [ - -51.00857073396571, - 39.25546952044931 - ], - [ - -51.00857073396571, - 39.834411325597046 - ], - [ - -50.42962892881804, - 39.834411325597046 - ], - [ - -48.6927631914773, - 40.41335313074475 - ], - [ - -46.95589745413662, - 40.41335313074475 - ], - [ - -46.37695564898889, - 40.41335313074475 - ], - [ - -46.37695564898889, - 40.41335313074475 - ] - ], - "pressures": [ - 0.0634765625, - 0.296875, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6240234375, - 0.2783203125, - 0.1826171875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -41.29262833177734, - 87.4432701571568 - ] - }, - { - "id": "ushtWpiGsAjEtWHq9671w", - "type": "freedraw", - "x": -255.97817993164062, - "y": -53.704200744628906, - "width": 196.3037109375, - "height": 139.34060668945312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 77280771, - "version": 925, - "versionNonce": 529972045, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.51617431640625, - -4.38177490234375 - ], - [ - -13.14532470703125, - -17.527130126953125 - ], - [ - -13.14532470703125, - -32.4251708984375 - ], - [ - -11.392578125, - -49.952301025390625 - ], - [ - -0.8763427734375, - -70.98480224609375 - ], - [ - 9.63995361328125, - -79.74838256835938 - ], - [ - 21.908935546875, - -85.88290405273438 - ], - [ - 36.8070068359375, - -91.14102172851562 - ], - [ - 56.0867919921875, - -94.64645385742188 - ], - [ - 79.7484130859375, - -95.52279663085938 - ], - [ - 115.67901611328125, - -88.51193237304688 - ], - [ - 135.835205078125, - -75.3665771484375 - ], - [ - 150.7332763671875, - -55.210418701171875 - ], - [ - 159.496826171875, - -32.4251708984375 - ], - [ - 155.11505126953125, - 0 - ], - [ - 133.2061767578125, - 19.27984619140625 - ], - [ - 99.0283203125, - 33.301544189453125 - ], - [ - 62.2213134765625, - 42.065093994140625 - ], - [ - 30.6724853515625, - 43.81781005859375 - ], - [ - -9.639892578125, - 31.548828125 - ], - [ - -28.0433349609375, - 13.145355224609375 - ], - [ - -36.806884765625, - -7.88720703125 - ], - [ - -29.79608154296875, - -35.930572509765625 - ], - [ - -14.89794921875, - -52.58135986328125 - ], - [ - 6.134521484375, - -68.35577392578125 - ], - [ - 31.548828125, - -79.74838256835938 - ], - [ - 55.21051025390625, - -86.75924682617188 - ], - [ - 77.9957275390625, - -91.14102172851562 - ], - [ - 99.0283203125, - -92.89370727539062 - ], - [ - 119.1844482421875, - -91.14102172851562 - ], - [ - 156.86773681640625, - -66.60302734375 - ], - [ - 157.744140625, - -56.963134765625 - ], - [ - 157.744140625, - -56.963134765625 - ] - ], - "pressures": [ - 0.10546875, - 0.3740234375, - 0.5888671875, - 0.740234375, - 0.8408203125, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9365234375, - 0.8388671875, - 0.8115234375, - 0.75, - 0.6943359375, - 0.66796875, - 0.6572265625, - 0.6494140625, - 0.6474609375, - 0.6220703125, - 0.5556640625, - 0.2666015625, - 0.001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 157.744140625, - -56.963134765625 - ] - }, - { - "id": "2J-LDFGm5o2OB53pEZA0M", - "type": "freedraw", - "x": -95.60501098632812, - "y": 54.96398162841797, - "width": 240.99798583984375, - "height": 188.41653442382812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1820134115, - "version": 954, - "versionNonce": 1455369219, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -14.02166748046875, - -2.62908935546875 - ], - [ - -15.7744140625, - -4.38177490234375 - ], - [ - -18.4034423828125, - -9.63995361328125 - ], - [ - -19.27984619140625, - -17.52716064453125 - ], - [ - -23.66162109375, - -35.93060302734375 - ], - [ - -27.1669921875, - -53.457733154296875 - ], - [ - -28.04339599609375, - -71.86123657226562 - ], - [ - -19.27984619140625, - -96.39920043945312 - ], - [ - -5.25811767578125, - -110.4208984375 - ], - [ - 14.8980712890625, - -120.93716430664062 - ], - [ - 37.683349609375, - -127.07162475585938 - ], - [ - 61.344970703125, - -128.82437133789062 - ], - [ - 93.77008056640625, - -125.31893920898438 - ], - [ - 114.80267333984375, - -113.04995727539062 - ], - [ - 133.20611572265625, - -92.01742553710938 - ], - [ - 142.84600830078125, - -65.72671508789062 - ], - [ - 134.08245849609375, - -27.16705322265625 - ], - [ - 113.04998779296875, - -3.50543212890625 - ], - [ - 86.75927734375, - 14.89801025390625 - ], - [ - 61.344970703125, - 26.2906494140625 - ], - [ - 37.683349609375, - 29.79608154296875 - ], - [ - 0, - 23.66156005859375 - ], - [ - -28.04339599609375, - 8.7635498046875 - ], - [ - -54.33404541015625, - -14.021728515625 - ], - [ - -71.8612060546875, - -42.06512451171875 - ], - [ - -72.737548828125, - -84.13021850585938 - ], - [ - -53.45770263671875, - -106.03912353515625 - ], - [ - -24.5379638671875, - -120.93716430664062 - ], - [ - 11.39263916015625, - -130.57708740234375 - ], - [ - 52.58135986328125, - -133.20614624023438 - ], - [ - 75.36663818359375, - -132.32980346679688 - ], - [ - 154.23870849609375, - -79.7484130859375 - ], - [ - 142.84600830078125, - -42.06512451171875 - ], - [ - 118.30804443359375, - -15.7744140625 - ], - [ - 84.13018798828125, - 7.88720703125 - ], - [ - 47.3232421875, - 24.5379638671875 - ], - [ - 14.8980712890625, - 31.548828125 - ], - [ - -13.14532470703125, - 28.91973876953125 - ], - [ - -48.19952392578125, - 4.38177490234375 - ], - [ - -61.3448486328125, - -19.27984619140625 - ], - [ - -63.09759521484375, - -48.1995849609375 - ], - [ - -49.9522705078125, - -77.9957275390625 - ], - [ - 0.8763427734375, - -114.80267333984375 - ], - [ - 42.94146728515625, - -129.70071411132812 - ], - [ - 85.8829345703125, - -135.83517456054688 - ], - [ - 124.44256591796875, - -131.45339965820312 - ], - [ - 151.60955810546875, - -111.2972412109375 - ], - [ - 168.26043701171875, - -63.09765625 - ], - [ - 81.50115966796875, - 47.32318115234375 - ], - [ - 64.850341796875, - 51.7049560546875 - ], - [ - 35.93060302734375, - 52.58135986328125 - ], - [ - 4.38177490234375, - 38.55963134765625 - ], - [ - -28.91973876953125, - 10.5162353515625 - ], - [ - -47.32318115234375, - -24.53802490234375 - ], - [ - -35.93060302734375, - -69.23214721679688 - ], - [ - -7.88720703125, - -90.26470947265625 - ], - [ - 22.7852783203125, - -105.16275024414062 - ], - [ - 54.3341064453125, - -114.80267333984375 - ], - [ - 95.52288818359375, - -114.80267333984375 - ], - [ - 104.28643798828125, - -106.91546630859375 - ], - [ - 104.28643798828125, - -102.53369140625 - ], - [ - 104.28643798828125, - -102.53369140625 - ] - ], - "pressures": [ - 0.1611328125, - 0.2666015625, - 0.306640625, - 0.39453125, - 0.5771484375, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9599609375, - 0.794921875, - 0.3193359375, - 0.126953125, - 0.0302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 104.28643798828125, - -102.53369140625 - ] - }, - { - "id": "Wn6dGLCXSPZeM_hUYFj1W", - "type": "freedraw", - "x": -208.65493774414062, - "y": -101.9037857055664, - "width": 169.13671875, - "height": 128.82437133789062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2138977069, - "version": 934, - "versionNonce": 1494993325, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.258056640625, - -4.38177490234375 - ], - [ - -9.63983154296875, - -8.7635498046875 - ], - [ - -13.14532470703125, - -15.7744140625 - ], - [ - -15.7744140625, - -24.5379638671875 - ], - [ - -14.0216064453125, - -42.065093994140625 - ], - [ - -5.258056640625, - -56.963134765625 - ], - [ - 9.63995361328125, - -72.737548828125 - ], - [ - 29.796142578125, - -83.25381469726562 - ], - [ - 63.09765625, - -87.63558959960938 - ], - [ - 85.00653076171875, - -83.25381469726562 - ], - [ - 143.722412109375, - -24.5379638671875 - ], - [ - 143.722412109375, - -14.898040771484375 - ], - [ - 118.30810546875, - 11.39263916015625 - ], - [ - 84.13018798828125, - 25.41436767578125 - ], - [ - 49.075927734375, - 33.301544189453125 - ], - [ - 7.88726806640625, - 32.4251708984375 - ], - [ - -11.39263916015625, - 21.908905029296875 - ], - [ - -23.66162109375, - 3.505462646484375 - ], - [ - -25.414306640625, - -17.527099609375 - ], - [ - -13.14532470703125, - -39.436004638671875 - ], - [ - 21.908935546875, - -69.23211669921875 - ], - [ - 50.82867431640625, - -80.624755859375 - ], - [ - 79.7484130859375, - -86.75924682617188 - ], - [ - 104.286376953125, - -86.75924682617188 - ], - [ - 129.70068359375, - -73.6138916015625 - ], - [ - 140.21697998046875, - -52.58135986328125 - ], - [ - 141.96966552734375, - -27.1669921875 - ], - [ - 128.8243408203125, - -2.629058837890625 - ], - [ - 106.91546630859375, - 18.403472900390625 - ], - [ - 81.5010986328125, - 32.4251708984375 - ], - [ - 42.9415283203125, - 38.5596923828125 - ], - [ - 20.15618896484375, - 32.4251708984375 - ], - [ - 0, - 16.650787353515625 - ], - [ - -14.0216064453125, - -6.134490966796875 - ], - [ - -17.527099609375, - -31.548797607421875 - ], - [ - 0, - -64.850341796875 - ], - [ - 20.15618896484375, - -79.74838256835938 - ], - [ - 42.9415283203125, - -87.63558959960938 - ], - [ - 75.36663818359375, - -90.26467895507812 - ], - [ - 83.25384521484375, - -57.8394775390625 - ], - [ - 78.8720703125, - -55.210418701171875 - ], - [ - 78.8720703125, - -55.210418701171875 - ] - ], - "pressures": [ - 0.0556640625, - 0.279296875, - 0.4677734375, - 0.8134765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9404296875, - 0.1611328125, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.8720703125, - -55.210418701171875 - ] - }, - { - "id": "T7kIFV2ooNE6OZJswQbzx", - "type": "freedraw", - "x": -211.28396606445312, - "y": -108.03827667236328, - "width": 179.65301513671875, - "height": 124.44253540039062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 264769923, - "version": 940, - "versionNonce": 782283683, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.134521484375, - -5.25811767578125 - ], - [ - -11.392578125, - -13.14532470703125 - ], - [ - -14.8980712890625, - -22.785247802734375 - ], - [ - -15.7744140625, - -35.054229736328125 - ], - [ - -8.76361083984375, - -59.592193603515625 - ], - [ - 3.50537109375, - -75.36660766601562 - ], - [ - 20.15618896484375, - -86.75921630859375 - ], - [ - 40.3123779296875, - -92.89373779296875 - ], - [ - 73.6138916015625, - -92.89373779296875 - ], - [ - 96.39910888671875, - -84.13018798828125 - ], - [ - 115.678955078125, - -68.35577392578125 - ], - [ - 125.31890869140625, - -50.828643798828125 - ], - [ - 123.566162109375, - -35.054229736328125 - ], - [ - 86.75921630859375, - -12.268951416015625 - ], - [ - 49.95233154296875, - -0.8763427734375 - ], - [ - 16.6507568359375, - 2.629058837890625 - ], - [ - -10.51629638671875, - 0 - ], - [ - -40.3123779296875, - -15.7744140625 - ], - [ - -44.6942138671875, - -34.1778564453125 - ], - [ - -34.17791748046875, - -56.086761474609375 - ], - [ - -9.63995361328125, - -77.11932373046875 - ], - [ - 21.03253173828125, - -91.1409912109375 - ], - [ - 65.7266845703125, - -99.90457153320312 - ], - [ - 91.1409912109375, - -97.2755126953125 - ], - [ - 115.678955078125, - -85.00653076171875 - ], - [ - 134.08245849609375, - -64.85031127929688 - ], - [ - 134.95880126953125, - -29.79608154296875 - ], - [ - 116.5552978515625, - -7.010833740234375 - ], - [ - 88.511962890625, - 13.145355224609375 - ], - [ - 55.21038818359375, - 24.5379638671875 - ], - [ - 10.51629638671875, - 23.66162109375 - ], - [ - -15.7744140625, - 9.63995361328125 - ], - [ - -33.301513671875, - -12.268951416015625 - ], - [ - -36.8070068359375, - -36.80694580078125 - ], - [ - -33.301513671875, - -49.075927734375 - ], - [ - 41.18878173828125, - -91.1409912109375 - ], - [ - 90.2646484375, - -88.511962890625 - ], - [ - 105.1627197265625, - -83.25381469726562 - ], - [ - 131.453369140625, - -56.963134765625 - ], - [ - 128.8243408203125, - -35.054229736328125 - ], - [ - 108.66815185546875, - -14.021697998046875 - ], - [ - 79.74835205078125, - 4.38177490234375 - ], - [ - 49.95233154296875, - 15.7744140625 - ], - [ - 16.6507568359375, - 17.527130126953125 - ], - [ - 2.6290283203125, - 8.763580322265625 - ], - [ - -5.2581787109375, - -6.134490966796875 - ], - [ - -3.50543212890625, - -12.268951416015625 - ], - [ - -3.50543212890625, - -12.268951416015625 - ] - ], - "pressures": [ - 0.0771484375, - 0.314453125, - 0.537109375, - 0.8740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6357421875, - 0.361328125, - 0.2041015625, - 0.087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.50543212890625, - -12.268951416015625 - ] - }, - { - "id": "kxeQ3GSopUGd8bdpc7BOa", - "type": "freedraw", - "x": -220.04757690429688, - "y": -101.9037857055664, - "width": 219.0889892578125, - "height": 140.21694946289062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1002118637, - "version": 940, - "versionNonce": 263195661, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -14.898040771484375 - ], - [ - -12.26898193359375, - -20.15618896484375 - ], - [ - -16.6507568359375, - -35.054229736328125 - ], - [ - -19.27978515625, - -54.334075927734375 - ], - [ - -15.77435302734375, - -86.75924682617188 - ], - [ - -4.38177490234375, - -106.0390625 - ], - [ - 12.26898193359375, - -120.06076049804688 - ], - [ - 32.42523193359375, - -128.8243408203125 - ], - [ - 58.7159423828125, - -130.57705688476562 - ], - [ - 106.91546630859375, - -113.0499267578125 - ], - [ - 131.45343017578125, - -90.26467895507812 - ], - [ - 143.722412109375, - -65.7266845703125 - ], - [ - 142.8460693359375, - -42.941436767578125 - ], - [ - 124.44256591796875, - -23.66162109375 - ], - [ - 66.60308837890625, - 0.876373291015625 - ], - [ - 23.66168212890625, - 4.38177490234375 - ], - [ - -13.14532470703125, - -3.50543212890625 - ], - [ - -55.2103271484375, - -28.91973876953125 - ], - [ - -63.97393798828125, - -49.075897216796875 - ], - [ - -59.5921630859375, - -69.23211669921875 - ], - [ - 40.3123779296875, - -120.06076049804688 - ], - [ - 82.37750244140625, - -118.30807495117188 - ], - [ - 120.9371337890625, - -110.42083740234375 - ], - [ - 145.47515869140625, - -99.02822875976562 - ], - [ - 155.11505126953125, - -83.25381469726562 - ], - [ - 142.8460693359375, - -49.952301025390625 - ], - [ - 115.67901611328125, - -25.414306640625 - ], - [ - 76.2430419921875, - -5.25811767578125 - ], - [ - 37.683349609375, - 3.505462646484375 - ], - [ - 7.88720703125, - 2.62908935546875 - ], - [ - -26.2906494140625, - -16.6507568359375 - ], - [ - -38.55963134765625, - -35.054229736328125 - ], - [ - -40.3123779296875, - -59.592193603515625 - ], - [ - -27.1669921875, - -85.00653076171875 - ], - [ - 10.516357421875, - -114.8026123046875 - ], - [ - 42.06512451171875, - -127.94796752929688 - ], - [ - 73.61395263671875, - -134.08245849609375 - ], - [ - 99.02825927734375, - -135.83517456054688 - ], - [ - 119.1844482421875, - -127.94796752929688 - ], - [ - 132.32977294921875, - -95.52279663085938 - ], - [ - 27.16705322265625, - -14.02166748046875 - ], - [ - 14.021728515625, - -12.26898193359375 - ], - [ - -5.25811767578125, - -14.898040771484375 - ], - [ - -17.527099609375, - -24.5379638671875 - ], - [ - -21.90887451171875, - -39.436004638671875 - ], - [ - -19.27978515625, - -56.963134765625 - ], - [ - -12.26898193359375, - -60.46856689453125 - ], - [ - -12.26898193359375, - -60.46856689453125 - ] - ], - "pressures": [ - 0.1015625, - 0.3330078125, - 0.4287109375, - 0.7109375, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9384765625, - 0.900390625, - 0.783203125, - 0.5283203125, - 0.328125, - 0.158203125, - 0.0322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -12.26898193359375, - -60.46856689453125 - ] - }, - { - "id": "KMBn5yN71rErhae2XMH0c", - "type": "freedraw", - "x": -196.38589477539062, - "y": -118.5545425415039, - "width": 175.27117919921875, - "height": 145.47512817382812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 833768867, - "version": 935, - "versionNonce": 204490563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -4.38177490234375 - ], - [ - -18.40350341796875, - -14.898040771484375 - ], - [ - -29.796142578125, - -40.3123779296875 - ], - [ - -32.42523193359375, - -62.221282958984375 - ], - [ - -31.54888916015625, - -84.13018798828125 - ], - [ - -21.90887451171875, - -103.41000366210938 - ], - [ - -7.88726806640625, - -117.43170166015625 - ], - [ - 22.78521728515625, - -126.19528198242188 - ], - [ - 49.9522705078125, - -124.44256591796875 - ], - [ - 76.242919921875, - -113.0499267578125 - ], - [ - 97.27545166015625, - -93.77008056640625 - ], - [ - 110.42083740234375, - -58.7158203125 - ], - [ - 107.791748046875, - -35.054229736328125 - ], - [ - 92.017333984375, - -13.145355224609375 - ], - [ - 67.4793701171875, - 3.50543212890625 - ], - [ - 39.43603515625, - 10.516265869140625 - ], - [ - 0.87628173828125, - 6.134490966796875 - ], - [ - -22.7852783203125, - -6.13446044921875 - ], - [ - -42.06512451171875, - -26.290679931640625 - ], - [ - -50.82867431640625, - -49.9522705078125 - ], - [ - -42.06512451171875, - -79.7484130859375 - ], - [ - -25.41436767578125, - -95.5228271484375 - ], - [ - -5.2581787109375, - -108.66815185546875 - ], - [ - 18.4034423828125, - -116.55535888671875 - ], - [ - 31.54876708984375, - -117.43170166015625 - ], - [ - 109.54443359375, - -73.61392211914062 - ], - [ - 124.4425048828125, - -35.054229736328125 - ], - [ - 124.4425048828125, - -24.5379638671875 - ], - [ - 102.53363037109375, - 2.62908935546875 - ], - [ - 71.86114501953125, - 15.774444580078125 - ], - [ - 36.806884765625, - 19.27984619140625 - ], - [ - 4.38177490234375, - 14.021697998046875 - ], - [ - -23.66168212890625, - -1.752685546875 - ], - [ - -46.4468994140625, - -36.806915283203125 - ], - [ - -48.1995849609375, - -60.46856689453125 - ], - [ - -38.5596923828125, - -79.7484130859375 - ], - [ - -15.77447509765625, - -99.90460205078125 - ], - [ - 0, - -109.54449462890625 - ], - [ - 12.2689208984375, - -113.0499267578125 - ], - [ - 21.908935546875, - -111.29721069335938 - ], - [ - 25.414306640625, - -106.9154052734375 - ], - [ - 25.414306640625, - -104.286376953125 - ], - [ - 25.414306640625, - -104.286376953125 - ] - ], - "pressures": [ - 0.072265625, - 0.23828125, - 0.4287109375, - 0.8642578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.78515625, - 0.609375, - 0.328125, - 0.1787109375, - 0.091796875, - 0.02734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.414306640625, - -104.286376953125 - ] - }, - { - "id": "VaPgP1G9G27HYLKTPweiS", - "type": "freedraw", - "x": -209.53121948242188, - "y": -161.49597930908203, - "width": 185.7874755859375, - "height": 134.95887756347656, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 159716515, - "version": 933, - "versionNonce": 1129120365, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -7.88720703125 - ], - [ - -14.89813232421875, - -16.650787353515625 - ], - [ - -18.403564453125, - -28.04339599609375 - ], - [ - -19.2799072265625, - -42.94146728515625 - ], - [ - -16.65081787109375, - -60.46856689453125 - ], - [ - -0.87640380859375, - -85.00656127929688 - ], - [ - 10.5162353515625, - -95.5228271484375 - ], - [ - 22.78521728515625, - -99.02824401855469 - ], - [ - 39.43603515625, - -98.15188598632812 - ], - [ - 62.22119140625, - -90.26469421386719 - ], - [ - 99.904541015625, - -61.344940185546875 - ], - [ - 114.80255126953125, - -36.806976318359375 - ], - [ - 116.5552978515625, - -12.26898193359375 - ], - [ - 105.16265869140625, - 9.639892578125 - ], - [ - 68.355712890625, - 30.672454833984375 - ], - [ - 40.31231689453125, - 32.425201416015625 - ], - [ - 13.14532470703125, - 25.414306640625 - ], - [ - -9.63995361328125, - 7.88720703125 - ], - [ - -26.29071044921875, - -16.650787353515625 - ], - [ - -29.796142578125, - -49.075958251953125 - ], - [ - -21.0325927734375, - -66.60305786132812 - ], - [ - -14.02178955078125, - -73.61392211914062 - ], - [ - 76.242919921875, - -101.65731811523438 - ], - [ - 92.8936767578125, - -102.53367614746094 - ], - [ - 122.68975830078125, - -99.02824401855469 - ], - [ - 141.09326171875, - -88.511962890625 - ], - [ - 142.845947265625, - -57.839508056640625 - ], - [ - 130.57696533203125, - -31.548828125 - ], - [ - 111.29718017578125, - -7.010833740234375 - ], - [ - 83.2537841796875, - 12.26898193359375 - ], - [ - 50.82861328125, - 21.90887451171875 - ], - [ - 7.01080322265625, - 22.785247802734375 - ], - [ - -17.52716064453125, - 13.14532470703125 - ], - [ - -36.8070068359375, - -2.629058837890625 - ], - [ - -42.9415283203125, - -23.66162109375 - ], - [ - -35.9306640625, - -42.0650634765625 - ], - [ - -13.14532470703125, - -60.46856689453125 - ], - [ - 1.75262451171875, - -67.47943115234375 - ], - [ - 12.2689208984375, - -70.98486328125 - ], - [ - 14.89801025390625, - -70.98486328125 - ], - [ - 14.89801025390625, - -70.98486328125 - ] - ], - "pressures": [ - 0.0830078125, - 0.412109375, - 0.6953125, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.5849609375, - 0.263671875, - 0.1298828125, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.89801025390625, - -70.98486328125 - ] - }, - { - "id": "Wmv2-dpGnyJuiy-sfGsvN", - "type": "freedraw", - "x": -224.42935180664062, - "y": -149.22699737548828, - "width": 184.9111328125, - "height": 134.0824737548828, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 439768067, - "version": 931, - "versionNonce": 634152675, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -6.13446044921875 - ], - [ - -13.14532470703125, - -23.661590576171875 - ], - [ - -15.77435302734375, - -39.43603515625 - ], - [ - -14.89801025390625, - -58.715850830078125 - ], - [ - -6.13446044921875, - -79.7484130859375 - ], - [ - 9.63995361328125, - -99.02825927734375 - ], - [ - 37.683349609375, - -113.92630004882812 - ], - [ - 56.963134765625, - -113.92630004882812 - ], - [ - 79.7484130859375, - -106.03909301757812 - ], - [ - 100.78094482421875, - -92.01739501953125 - ], - [ - 121.81353759765625, - -56.0867919921875 - ], - [ - 123.56622314453125, - -27.16705322265625 - ], - [ - 109.54449462890625, - -2.62908935546875 - ], - [ - 79.7484130859375, - 14.021697998046875 - ], - [ - 43.81781005859375, - 19.279815673828125 - ], - [ - 26.29071044921875, - 19.279815673828125 - ], - [ - -43.81781005859375, - -54.33404541015625 - ], - [ - -42.94140625, - -66.60305786132812 - ], - [ - -20.1561279296875, - -93.77011108398438 - ], - [ - 0, - -105.16273498535156 - ], - [ - 21.908935546875, - -112.173583984375 - ], - [ - 47.3232421875, - -114.80265808105469 - ], - [ - 78.8720703125, - -112.173583984375 - ], - [ - 121.81353759765625, - -94.64645385742188 - ], - [ - 137.587890625, - -77.11935424804688 - ], - [ - 141.09332275390625, - -57.839508056640625 - ], - [ - 133.20611572265625, - -35.93060302734375 - ], - [ - 92.01739501953125, - -0.876373291015625 - ], - [ - 52.58135986328125, - 14.898040771484375 - ], - [ - 17.52716064453125, - 18.403472900390625 - ], - [ - -9.639892578125, - 8.7635498046875 - ], - [ - -29.79608154296875, - -10.516265869140625 - ], - [ - -37.6832275390625, - -47.3232421875 - ], - [ - -25.414306640625, - -70.10848999023438 - ], - [ - -7.01080322265625, - -89.38833618164062 - ], - [ - 12.26898193359375, - -102.53367614746094 - ], - [ - 37.683349609375, - -107.79180908203125 - ], - [ - 42.06512451171875, - -104.286376953125 - ], - [ - 42.06512451171875, - -104.286376953125 - ] - ], - "pressures": [ - 0.0634765625, - 0.3798828125, - 0.9345703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.787109375, - 0.2578125, - 0.076171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.06512451171875, - -104.286376953125 - ] - }, - { - "id": "yiWAycbwLXdVDrTMRxsy9", - "type": "freedraw", - "x": -211.28396606445312, - "y": -166.7541275024414, - "width": 190.16925048828125, - "height": 121.81350708007812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2061553603, - "version": 925, - "versionNonce": 951856333, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -5.258148193359375 - ], - [ - -4.3818359375, - -22.785247802734375 - ], - [ - -0.87640380859375, - -39.43603515625 - ], - [ - 7.88714599609375, - -58.7158203125 - ], - [ - 13.14532470703125, - -67.47943115234375 - ], - [ - 86.75921630859375, - -92.89373779296875 - ], - [ - 99.904541015625, - -90.26467895507812 - ], - [ - 124.4425048828125, - -81.50112915039062 - ], - [ - 141.96966552734375, - -64.850341796875 - ], - [ - 146.3514404296875, - -43.81781005859375 - ], - [ - 131.453369140625, - -12.26898193359375 - ], - [ - 100.78094482421875, - 8.7635498046875 - ], - [ - 63.09765625, - 22.785247802734375 - ], - [ - 14.8980712890625, - 23.66162109375 - ], - [ - -11.392578125, - 11.392669677734375 - ], - [ - -33.301513671875, - -7.88720703125 - ], - [ - -43.81781005859375, - -28.043365478515625 - ], - [ - -42.0650634765625, - -45.57049560546875 - ], - [ - -16.65081787109375, - -68.35577392578125 - ], - [ - 7.88714599609375, - -81.50112915039062 - ], - [ - 35.05419921875, - -92.01737976074219 - ], - [ - 63.09765625, - -98.15188598632812 - ], - [ - 96.39910888671875, - -96.399169921875 - ], - [ - 110.42083740234375, - -87.63560485839844 - ], - [ - 120.06072998046875, - -73.61392211914062 - ], - [ - 124.4425048828125, - -57.839508056640625 - ], - [ - 123.566162109375, - -41.188720703125 - ], - [ - 107.791748046875, - -16.6507568359375 - ], - [ - 94.64642333984375, - -2.629058837890625 - ], - [ - 78.87200927734375, - 8.7635498046875 - ], - [ - 65.7266845703125, - 11.392669677734375 - ], - [ - 64.850341796875, - 10.516265869140625 - ], - [ - 64.850341796875, - 10.516265869140625 - ] - ], - "pressures": [ - 0.05078125, - 0.166015625, - 0.314453125, - 0.5673828125, - 0.8115234375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.79296875, - 0.6943359375, - 0.5185546875, - 0.3330078125, - 0.318359375, - 0.3212890625, - 0.3193359375, - 0.283203125, - 0.17578125, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 64.850341796875, - 10.516265869140625 - ] - }, - { - "id": "pL1H5PabPaT2Pv8jxulHC", - "type": "freedraw", - "x": -202.52041625976562, - "y": -157.11420440673828, - "width": 167.38397216796875, - "height": 125.31890869140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 663780515, - "version": 935, - "versionNonce": 1644401283, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.01080322265625, - -5.258148193359375 - ], - [ - -17.52716064453125, - -16.6507568359375 - ], - [ - -26.29071044921875, - -28.04339599609375 - ], - [ - -31.548828125, - -42.0650634765625 - ], - [ - -32.4251708984375, - -58.715850830078125 - ], - [ - -25.41436767578125, - -81.50112915039062 - ], - [ - -14.8980712890625, - -90.26467895507812 - ], - [ - 0, - -97.27552795410156 - ], - [ - 21.90887451171875, - -101.65730285644531 - ], - [ - 51.70501708984375, - -102.53366088867188 - ], - [ - 98.15185546875, - -85.88290405273438 - ], - [ - 114.8026123046875, - -60.46856689453125 - ], - [ - 113.0499267578125, - -33.301513671875 - ], - [ - 73.6138916015625, - 2.629058837890625 - ], - [ - 39.43603515625, - 17.527099609375 - ], - [ - 14.02166748046875, - 22.785247802734375 - ], - [ - -3.50543212890625, - 22.785247802734375 - ], - [ - -19.27984619140625, - 14.8980712890625 - ], - [ - -36.80694580078125, - -11.392608642578125 - ], - [ - -38.5596923828125, - -32.4251708984375 - ], - [ - -28.91973876953125, - -53.457733154296875 - ], - [ - -11.392578125, - -71.8612060546875 - ], - [ - 15.7744140625, - -89.38833618164062 - ], - [ - 33.301513671875, - -93.77011108398438 - ], - [ - 54.3341064453125, - -92.01739501953125 - ], - [ - 78.87200927734375, - -81.50112915039062 - ], - [ - 97.2755126953125, - -64.850341796875 - ], - [ - 106.0390625, - -35.93060302734375 - ], - [ - 102.53363037109375, - -17.527130126953125 - ], - [ - 90.2646484375, - -1.752716064453125 - ], - [ - 68.35577392578125, - 8.7635498046875 - ], - [ - 25.414306640625, - 13.14532470703125 - ], - [ - -2.6290283203125, - 8.7635498046875 - ], - [ - -28.04339599609375, - -2.629058837890625 - ], - [ - -46.44683837890625, - -19.27984619140625 - ], - [ - -52.58135986328125, - -35.93060302734375 - ], - [ - -52.58135986328125, - -43.81781005859375 - ], - [ - 1.75274658203125, - -80.624755859375 - ], - [ - 17.527099609375, - -81.50112915039062 - ], - [ - 24.5379638671875, - -81.50112915039062 - ], - [ - 42.0650634765625, - -77.99569702148438 - ], - [ - 42.0650634765625, - -75.36663818359375 - ], - [ - 42.0650634765625, - -75.36663818359375 - ] - ], - "pressures": [ - 0.134765625, - 0.2822265625, - 0.5380859375, - 0.798828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9345703125, - 0.708984375, - 0.576171875, - 0.2333984375, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.0650634765625, - -75.36663818359375 - ] - }, - { - "id": "6jPrZery5yRzoYPsIYA-Z", - "type": "freedraw", - "x": -207.77859497070312, - "y": -159.7432632446289, - "width": 128.8243408203125, - "height": 111.29722595214844, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 793133987, - "version": 921, - "versionNonce": 1603734317, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -9.639923095703125 - ], - [ - -10.51617431640625, - -21.908905029296875 - ], - [ - -11.392578125, - -36.806976318359375 - ], - [ - -9.639892578125, - -54.3341064453125 - ], - [ - -0.8763427734375, - -81.50112915039062 - ], - [ - 8.76361083984375, - -91.14105224609375 - ], - [ - 21.0325927734375, - -94.64646911621094 - ], - [ - 43.81781005859375, - -89.38833618164062 - ], - [ - 59.59228515625, - -78.8720703125 - ], - [ - 76.24298095703125, - -63.9739990234375 - ], - [ - 88.511962890625, - -42.94146728515625 - ], - [ - 91.14105224609375, - -20.156219482421875 - ], - [ - 81.50115966796875, - -0.876373291015625 - ], - [ - 48.1995849609375, - 14.898040771484375 - ], - [ - 21.908935546875, - 16.6507568359375 - ], - [ - -2.6290283203125, - 11.392608642578125 - ], - [ - -30.67242431640625, - -10.51629638671875 - ], - [ - -37.68328857421875, - -29.796112060546875 - ], - [ - -34.1778564453125, - -47.3232421875 - ], - [ - -22.78521728515625, - -61.34490966796875 - ], - [ - -9.639892578125, - -70.98486328125 - ], - [ - 4.38177490234375, - -77.99569702148438 - ], - [ - 24.53802490234375, - -83.25384521484375 - ], - [ - 34.17791748046875, - -84.13018798828125 - ], - [ - 41.18878173828125, - -81.50112915039062 - ], - [ - 46.44696044921875, - -72.73757934570312 - ], - [ - 49.07598876953125, - -66.60308837890625 - ], - [ - 49.07598876953125, - -65.7266845703125 - ], - [ - 49.07598876953125, - -65.7266845703125 - ] - ], - "pressures": [ - 0.103515625, - 0.4033203125, - 0.724609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8642578125, - 0.611328125, - 0.3681640625, - 0.21875, - 0.14453125, - 0.0859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.07598876953125, - -65.7266845703125 - ] - }, - { - "id": "enRAJdqSNpCl2usWL5xnS", - "type": "freedraw", - "x": -202.52041625976562, - "y": -149.22699737548828, - "width": 143.72235107421875, - "height": 115.67901611328125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 954954051, - "version": 917, - "versionNonce": 1368672803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -15.77435302734375, - -9.639923095703125 - ], - [ - -27.16705322265625, - -19.279815673828125 - ], - [ - -36.80694580078125, - -42.065093994140625 - ], - [ - -36.80694580078125, - -50.82867431640625 - ], - [ - -26.29071044921875, - -77.11935424804688 - ], - [ - -13.1453857421875, - -90.26467895507812 - ], - [ - 1.75274658203125, - -98.15188598632812 - ], - [ - 17.527099609375, - -101.65731811523438 - ], - [ - 45.570556640625, - -101.65731811523438 - ], - [ - 66.60302734375, - -95.5228271484375 - ], - [ - 87.63555908203125, - -79.7484130859375 - ], - [ - 106.9154052734375, - -47.3232421875 - ], - [ - 46.44683837890625, - 13.14532470703125 - ], - [ - 21.03253173828125, - 14.021697998046875 - ], - [ - -6.134521484375, - 2.62908935546875 - ], - [ - -19.27984619140625, - -14.898040771484375 - ], - [ - -24.5379638671875, - -33.301544189453125 - ], - [ - -20.1561279296875, - -59.59222412109375 - ], - [ - -11.392578125, - -75.36663818359375 - ], - [ - -1.75274658203125, - -88.511962890625 - ], - [ - 6.134521484375, - -96.399169921875 - ], - [ - 13.14532470703125, - -100.78094482421875 - ], - [ - 19.27984619140625, - -101.65731811523438 - ], - [ - 25.414306640625, - -99.90460205078125 - ], - [ - 25.414306640625, - -99.90460205078125 - ] - ], - "pressures": [ - 0.068359375, - 0.5712890625, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.92578125, - 0.8662109375, - 0.7890625, - 0.734375, - 0.6572265625, - 0.478515625, - 0.2890625, - 0.1865234375, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.414306640625, - -99.90460205078125 - ] - }, - { - "id": "A4YDs_iF7BswuexJk9wHg", - "type": "freedraw", - "x": -226.18203735351562, - "y": -151.85608673095703, - "width": 151.60955810546875, - "height": 121.81353759765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1052243875, - "version": 920, - "versionNonce": 2017926541, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -13.14532470703125, - -10.516265869140625 - ], - [ - -19.27984619140625, - -21.032501220703125 - ], - [ - -21.03253173828125, - -34.1778564453125 - ], - [ - -19.27984619140625, - -50.828643798828125 - ], - [ - -5.25811767578125, - -77.99566650390625 - ], - [ - 8.7635498046875, - -92.01736450195312 - ], - [ - 22.78521728515625, - -98.15185546875 - ], - [ - 37.68328857421875, - -99.02822875976562 - ], - [ - 57.8394775390625, - -97.2755126953125 - ], - [ - 91.14105224609375, - -86.75924682617188 - ], - [ - 112.173583984375, - -70.10845947265625 - ], - [ - 125.31890869140625, - -48.1995849609375 - ], - [ - 126.19525146484375, - -25.414276123046875 - ], - [ - 99.0281982421875, - 5.2581787109375 - ], - [ - 70.98480224609375, - 17.527130126953125 - ], - [ - 44.69415283203125, - 22.785308837890625 - ], - [ - 23.66162109375, - 20.15618896484375 - ], - [ - 4.38177490234375, - 7.88720703125 - ], - [ - -19.27984619140625, - -21.90887451171875 - ], - [ - -25.414306640625, - -42.94140625 - ], - [ - -23.66162109375, - -59.592193603515625 - ], - [ - -14.02166748046875, - -70.98483276367188 - ], - [ - 6.13446044921875, - -85.00653076171875 - ], - [ - 20.15618896484375, - -91.14102172851562 - ], - [ - 33.301513671875, - -94.64645385742188 - ], - [ - 42.94146728515625, - -94.64645385742188 - ], - [ - 43.81781005859375, - -94.64645385742188 - ], - [ - 43.81781005859375, - -94.64645385742188 - ] - ], - "pressures": [ - 0.0947265625, - 0.3447265625, - 0.515625, - 0.6904296875, - 0.8056640625, - 0.9384765625, - 0.9599609375, - 0.96484375, - 0.9794921875, - 0.9794921875, - 0.9560546875, - 0.94921875, - 0.9189453125, - 0.8427734375, - 0.7646484375, - 0.7646484375, - 0.7783203125, - 0.7890625, - 0.8154296875, - 0.8701171875, - 0.83203125, - 0.7646484375, - 0.70703125, - 0.5439453125, - 0.2939453125, - 0.1875, - 0.1044921875, - 0.04296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 43.81781005859375, - -94.64645385742188 - ] - }, - { - "id": "7rleQr-UVh44AqbxM_NwJ", - "type": "freedraw", - "x": -220.04757690429688, - "y": -158.8669204711914, - "width": 184.9111328125, - "height": 115.67898559570312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 34000397, - "version": 922, - "versionNonce": 1768754627, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558532, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -11.392578125, - -4.38177490234375 - ], - [ - -15.77435302734375, - -7.88720703125 - ], - [ - -21.03253173828125, - -17.527130126953125 - ], - [ - -25.414306640625, - -29.796112060546875 - ], - [ - -26.2906494140625, - -44.694122314453125 - ], - [ - -19.27978515625, - -70.98483276367188 - ], - [ - -8.7635498046875, - -85.00653076171875 - ], - [ - 2.62908935546875, - -93.77009582519531 - ], - [ - 14.021728515625, - -98.15188598632812 - ], - [ - 29.796142578125, - -100.78094482421875 - ], - [ - 63.9739990234375, - -99.02824401855469 - ], - [ - 91.14105224609375, - -91.14102172851562 - ], - [ - 116.55535888671875, - -75.36663818359375 - ], - [ - 134.9588623046875, - -53.45770263671875 - ], - [ - 140.21697998046875, - -22.785247802734375 - ], - [ - 122.68988037109375, - -6.134490966796875 - ], - [ - 92.89373779296875, - 6.134490966796875 - ], - [ - 58.7159423828125, - 13.14532470703125 - ], - [ - 28.04345703125, - 14.898040771484375 - ], - [ - -9.639892578125, - 4.38177490234375 - ], - [ - -29.79608154296875, - -8.7635498046875 - ], - [ - -42.06500244140625, - -23.66162109375 - ], - [ - -44.69415283203125, - -35.930572509765625 - ], - [ - -39.43597412109375, - -49.952301025390625 - ], - [ - -28.919677734375, - -58.715850830078125 - ], - [ - -14.89801025390625, - -69.23211669921875 - ], - [ - 0, - -79.7484130859375 - ], - [ - 13.1453857421875, - -86.75924682617188 - ], - [ - 25.41436767578125, - -91.14102172851562 - ], - [ - 25.41436767578125, - -91.14102172851562 - ] - ], - "pressures": [ - 0.09375, - 0.3046875, - 0.376953125, - 0.5869140625, - 0.8115234375, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.953125, - 0.951171875, - 0.951171875, - 0.951171875, - 0.9111328125, - 0.857421875, - 0.80078125, - 0.7607421875, - 0.6953125, - 0.6337890625, - 0.546875, - 0.369140625, - 0.2392578125, - 0.10546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.41436767578125, - -91.14102172851562 - ] - }, - { - "id": "Vr-M_1VaxPxaNfN1Veg-A", - "type": "freedraw", - "x": -221.80026245117188, - "y": -157.11420440673828, - "width": 141.09332275390625, - "height": 134.95883178710938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1571249891, - "version": 920, - "versionNonce": 2047206381, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.639892578125, - -12.26898193359375 - ], - [ - -12.26898193359375, - -35.93060302734375 - ], - [ - -11.39263916015625, - -55.210418701171875 - ], - [ - -4.38177490234375, - -74.49026489257812 - ], - [ - 5.25811767578125, - -87.6356201171875 - ], - [ - 15.7744140625, - -95.52281188964844 - ], - [ - 35.93060302734375, - -102.53366088867188 - ], - [ - 55.21044921875, - -106.03909301757812 - ], - [ - 79.7484130859375, - -105.16273498535156 - ], - [ - 103.4100341796875, - -95.52281188964844 - ], - [ - 125.31890869140625, - -65.72671508789062 - ], - [ - 127.947998046875, - -42.94146728515625 - ], - [ - 123.56622314453125, - -21.908905029296875 - ], - [ - 108.66815185546875, - 0 - ], - [ - 83.25384521484375, - 17.527099609375 - ], - [ - 43.81781005859375, - 28.91973876953125 - ], - [ - 25.41436767578125, - 27.167022705078125 - ], - [ - 7.0108642578125, - 18.403472900390625 - ], - [ - -13.14532470703125, - -60.46856689453125 - ], - [ - -7.0108642578125, - -70.10848999023438 - ], - [ - 7.0108642578125, - -86.75924682617188 - ], - [ - 17.527099609375, - -96.399169921875 - ], - [ - 23.66162109375, - -101.65730285644531 - ], - [ - 24.5379638671875, - -101.65730285644531 - ], - [ - 25.41436767578125, - -99.90460205078125 - ], - [ - 27.16705322265625, - -96.399169921875 - ], - [ - 27.16705322265625, - -95.52281188964844 - ], - [ - 27.16705322265625, - -95.52281188964844 - ] - ], - "pressures": [ - 0.0263671875, - 0.314453125, - 0.57421875, - 0.7109375, - 0.82421875, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.97265625, - 0.990234375, - 0.990234375, - 0.970703125, - 0.6806640625, - 0.640625, - 0.5205078125, - 0.3798828125, - 0.263671875, - 0.2041015625, - 0.1787109375, - 0.109375, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.16705322265625, - -95.52281188964844 - ] - }, - { - "id": "yCavmqykNp4KrEykceTXX", - "type": "freedraw", - "x": -176.22982788085938, - "y": -288.5676040649414, - "width": 73.6138916015625, - "height": 227.85256958007812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1436917549, - "version": 906, - "versionNonce": 953998925, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -4.38177490234375 - ], - [ - -10.5162353515625, - -7.887237548828125 - ], - [ - -10.5162353515625, - -6.134521484375 - ], - [ - -12.26898193359375, - 3.505401611328125 - ], - [ - -23.66156005859375, - 30.672454833984375 - ], - [ - -36.80694580078125, - 56.086761474609375 - ], - [ - -52.58135986328125, - 89.38827514648438 - ], - [ - -65.7266845703125, - 124.44253540039062 - ], - [ - -73.6138916015625, - 170.889404296875 - ], - [ - -72.737548828125, - 192.79830932617188 - ], - [ - -67.4793701171875, - 206.82000732421875 - ], - [ - -63.09759521484375, - 212.078125 - ], - [ - -49.075927734375, - 219.96533203125 - ], - [ - -43.8177490234375, - 219.96533203125 - ], - [ - -43.8177490234375, - 219.0889892578125 - ] - ], - "pressures": [ - 0.08984375, - 0.095703125, - 0.1494140625, - 0.2431640625, - 0.2919921875, - 0.3193359375, - 0.333984375, - 0.421875, - 0.49609375, - 0.57421875, - 0.580078125, - 0.5498046875, - 0.466796875, - 0.2177734375, - 0.11328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.8177490234375, - 219.0889892578125 - ] - }, - { - "id": "2G0JEi1gAn8680mXIETR5", - "type": "freedraw", - "x": -232.31655883789062, - "y": -233.35721588134766, - "width": 145.47509765625, - "height": 229.60528564453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1633284013, - "version": 913, - "versionNonce": 1990244611, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.0108642578125, - -6.134490966796875 - ], - [ - -10.51629638671875, - -14.021697998046875 - ], - [ - -13.1453857421875, - -24.537933349609375 - ], - [ - -14.8980712890625, - -36.80694580078125 - ], - [ - -14.021728515625, - -49.075927734375 - ], - [ - -4.3818359375, - -58.715850830078125 - ], - [ - 14.89801025390625, - -68.35577392578125 - ], - [ - 28.04339599609375, - -70.10845947265625 - ], - [ - 44.69415283203125, - -70.10845947265625 - ], - [ - 64.850341796875, - -66.60305786132812 - ], - [ - 85.88287353515625, - -57.8394775390625 - ], - [ - 108.66815185546875, - -35.930572509765625 - ], - [ - 117.43170166015625, - -14.898040771484375 - ], - [ - 115.67901611328125, - 12.269012451171875 - ], - [ - 98.15179443359375, - 42.065093994140625 - ], - [ - 56.963134765625, - 89.38836669921875 - ], - [ - 31.54876708984375, - 118.30807495117188 - ], - [ - 13.14532470703125, - 139.34063720703125 - ], - [ - 7.01080322265625, - 145.47512817382812 - ], - [ - -20.15618896484375, - 159.496826171875 - ], - [ - -22.7852783203125, - 159.496826171875 - ], - [ - -28.04339599609375, - 153.36233520507812 - ], - [ - -28.04339599609375, - 148.98052978515625 - ], - [ - -28.04339599609375, - 148.98052978515625 - ] - ], - "pressures": [ - 0.0390625, - 0.1552734375, - 0.3076171875, - 0.646484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9453125, - 0.57421875, - 0.2158203125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -28.04339599609375, - 148.98052978515625 - ] - }, - { - "id": "JFLP1FMRod-sneI28cj2M", - "type": "freedraw", - "x": -113.13217163085938, - "y": -195.67389678955078, - "width": 21.908935546875, - "height": 1.752685546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1172900429, - "version": 905, - "versionNonce": 1269140653, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - -0.876312255859375 - ], - [ - 1.752685546875, - -0.876312255859375 - ], - [ - 3.5054931640625, - -0.876312255859375 - ], - [ - 6.134521484375, - -0.876312255859375 - ], - [ - 7.88720703125, - -0.876312255859375 - ], - [ - 10.5162353515625, - -0.876312255859375 - ], - [ - 13.1453857421875, - -0.876312255859375 - ], - [ - 14.8980712890625, - -0.876312255859375 - ], - [ - 15.7744140625, - -0.876312255859375 - ], - [ - 17.527099609375, - -0.876312255859375 - ], - [ - 19.27978515625, - -0.876312255859375 - ], - [ - 20.15625, - -0.876312255859375 - ], - [ - 21.0325927734375, - -0.876312255859375 - ], - [ - 21.908935546875, - -0.876312255859375 - ], - [ - 21.908935546875, - 0.876373291015625 - ], - [ - 21.908935546875, - 0.876373291015625 - ] - ], - "pressures": [ - 0.068359375, - 0.330078125, - 0.537109375, - 0.5595703125, - 0.6083984375, - 0.6240234375, - 0.67578125, - 0.7109375, - 0.736328125, - 0.736328125, - 0.734375, - 0.73046875, - 0.740234375, - 0.751953125, - 0.75, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.908935546875, - 0.876373291015625 - ] - }, - { - "id": "a5JUgBhc9oq8b3SBcoF7I", - "type": "freedraw", - "x": -279.6398010253906, - "y": -225.4699478149414, - "width": 150.7332763671875, - "height": 227.8525390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2098663235, - "version": 911, - "versionNonce": 1422434467, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.5162353515625, - -7.010833740234375 - ], - [ - -10.5162353515625, - -12.269012451171875 - ], - [ - -7.01080322265625, - -20.15618896484375 - ], - [ - 2.62908935546875, - -32.425201416015625 - ], - [ - 19.27984619140625, - -48.1995849609375 - ], - [ - 38.5596923828125, - -63.973968505859375 - ], - [ - 67.47943115234375, - -77.99569702148438 - ], - [ - 85.006591796875, - -82.37747192382812 - ], - [ - 99.02825927734375, - -84.13018798828125 - ], - [ - 113.92626953125, - -80.62478637695312 - ], - [ - 134.08251953125, - -56.0867919921875 - ], - [ - 140.217041015625, - -28.04339599609375 - ], - [ - 134.9588623046875, - 6.134490966796875 - ], - [ - 117.4317626953125, - 39.436004638671875 - ], - [ - 98.15191650390625, - 68.35574340820312 - ], - [ - 77.9957275390625, - 100.78094482421875 - ], - [ - 63.9739990234375, - 118.30804443359375 - ], - [ - 49.95233154296875, - 133.20611572265625 - ], - [ - 37.683349609375, - 141.96966552734375 - ], - [ - 32.42523193359375, - 143.72235107421875 - ], - [ - 8.76361083984375, - 129.70074462890625 - ], - [ - 8.76361083984375, - 128.8243408203125 - ], - [ - 8.76361083984375, - 128.8243408203125 - ] - ], - "pressures": [ - 0.142578125, - 0.345703125, - 0.5458984375, - 0.822265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.126953125, - 0.0732421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.76361083984375, - 128.8243408203125 - ] - }, - { - "id": "OLpiG8LcniVt8xAbvnkoP", - "type": "freedraw", - "x": -220.92391967773438, - "y": -283.30945587158203, - "width": 195.42742919921875, - "height": 233.1107177734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 294581827, - "version": 887, - "versionNonce": 839479053, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.51629638671875, - -7.88720703125 - ], - [ - -7.0108642578125, - -10.516265869140625 - ], - [ - 3.50543212890625, - -17.527130126953125 - ], - [ - 16.6507568359375, - -21.032562255859375 - ], - [ - 29.79608154296875, - -21.908905029296875 - ], - [ - 45.57049560546875, - -21.908905029296875 - ], - [ - 61.34490966796875, - -17.527130126953125 - ], - [ - 78.87200927734375, - -5.258148193359375 - ], - [ - 87.63555908203125, - 11.39263916015625 - ], - [ - 97.27557373046875, - 36.80694580078125 - ], - [ - 113.92633056640625, - 78.87203979492188 - ], - [ - 120.93719482421875, - 102.53366088867188 - ], - [ - 120.93719482421875, - 124.44256591796875 - ], - [ - 108.66815185546875, - 146.35147094726562 - ], - [ - 86.75921630859375, - 167.38400268554688 - ], - [ - 54.33404541015625, - 184.91110229492188 - ], - [ - 2.62908935546875, - 201.56185913085938 - ], - [ - -23.66162109375, - 205.94369506835938 - ], - [ - -42.0650634765625, - 209.44912719726562 - ], - [ - -55.21044921875, - 211.20181274414062 - ], - [ - -57.8394775390625, - 211.20181274414062 - ], - [ - -63.09765625, - 208.57272338867188 - ], - [ - -69.23211669921875, - 205.06735229492188 - ], - [ - -72.737548828125, - 202.43826293945312 - ], - [ - -74.490234375, - 201.56185913085938 - ], - [ - -71.8612060546875, - 201.56185913085938 - ], - [ - -70.10845947265625, - 201.56185913085938 - ], - [ - -70.10845947265625, - 201.56185913085938 - ] - ], - "pressures": [ - 0.052734375, - 0.5673828125, - 0.740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1162109375, - 0.0126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -70.10845947265625, - 201.56185913085938 - ] - }, - { - "id": "WJOMYPSNBX_ikChLjsQTo", - "type": "freedraw", - "x": -168.34255981445312, - "y": -305.2183609008789, - "width": 276.0521240234375, - "height": 284.8157958984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1122456877, - "version": 878, - "versionNonce": 1624413251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -8.7635498046875 - ], - [ - -11.39263916015625, - -27.16705322265625 - ], - [ - -22.7852783203125, - -34.177886962890625 - ], - [ - -35.93060302734375, - -35.93060302734375 - ], - [ - -50.82861328125, - -31.548828125 - ], - [ - -66.60302734375, - -21.908905029296875 - ], - [ - -83.25384521484375, - 1.752716064453125 - ], - [ - -87.6356201171875, - 29.796112060546875 - ], - [ - -85.00653076171875, - 65.72671508789062 - ], - [ - -73.6138916015625, - 99.90460205078125 - ], - [ - -54.33404541015625, - 127.94796752929688 - ], - [ - -13.14532470703125, - 163.002197265625 - ], - [ - 22.7852783203125, - 184.9111328125 - ], - [ - 66.60302734375, - 209.44915771484375 - ], - [ - 120.9371337890625, - 232.234375 - ], - [ - 182.2821044921875, - 248.88519287109375 - ], - [ - 188.41650390625, - 245.37969970703125 - ], - [ - 172.6422119140625, - 236.61614990234375 - ], - [ - 172.6422119140625, - 236.61614990234375 - ] - ], - "pressures": [ - 0.1552734375, - 0.2080078125, - 0.572265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.48046875, - 0.2451171875, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 172.6422119140625, - 236.61614990234375 - ] - }, - { - "id": "6BZhGhugan97B_gMWGzpM", - "type": "freedraw", - "x": -248.96731567382812, - "y": -308.72379302978516, - "width": 272.5467529296875, - "height": 249.761474609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1724896621, - "version": 876, - "versionNonce": 981599597, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -11.392608642578125 - ], - [ - -6.13446044921875, - -11.392608642578125 - ], - [ - -8.7635498046875, - -12.26898193359375 - ], - [ - -12.26898193359375, - -10.516265869140625 - ], - [ - -23.66162109375, - 14.021697998046875 - ], - [ - -30.6724853515625, - 48.1995849609375 - ], - [ - -29.79608154296875, - 89.38833618164062 - ], - [ - -14.02166748046875, - 127.07162475585938 - ], - [ - 14.021728515625, - 156.86773681640625 - ], - [ - 73.6138916015625, - 191.9219970703125 - ], - [ - 116.555419921875, - 208.57281494140625 - ], - [ - 159.496826171875, - 222.59442138671875 - ], - [ - 201.5618896484375, - 233.1107177734375 - ], - [ - 241.874267578125, - 237.49249267578125 - ], - [ - 240.9979248046875, - 233.1107177734375 - ], - [ - 235.7398681640625, - 230.481689453125 - ], - [ - 235.7398681640625, - 230.481689453125 - ] - ], - "pressures": [ - 0.0048828125, - 0.23828125, - 0.3232421875, - 0.6025390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.427734375, - 0.1259765625, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 235.7398681640625, - 230.481689453125 - ] - }, - { - "id": "GuWB259rs7_uB4bIk1SfD", - "type": "freedraw", - "x": -277.8870544433594, - "y": -261.40055084228516, - "width": 141.09326171875, - "height": 297.0846862792969, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1497962317, - "version": 879, - "versionNonce": 714937315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -6.134490966796875 - ], - [ - -5.25811767578125, - -16.650787353515625 - ], - [ - -1.75274658203125, - -28.919769287109375 - ], - [ - 13.14532470703125, - -45.57049560546875 - ], - [ - 48.1995849609375, - -75.36663818359375 - ], - [ - 74.490234375, - -87.6356201171875 - ], - [ - 98.15185546875, - -90.26467895507812 - ], - [ - 117.43170166015625, - -85.00653076171875 - ], - [ - 130.57708740234375, - -73.61392211914062 - ], - [ - 135.83514404296875, - -65.72671508789062 - ], - [ - 117.43170166015625, - 63.973968505859375 - ], - [ - 102.53363037109375, - 87.63558959960938 - ], - [ - 71.8612060546875, - 127.947998046875 - ], - [ - 50.82867431640625, - 156.8677978515625 - ], - [ - 38.5596923828125, - 177.02392578125 - ], - [ - 31.548828125, - 190.16925048828125 - ], - [ - 24.5379638671875, - 202.438232421875 - ], - [ - 21.90887451171875, - 206.82000732421875 - ], - [ - 21.90887451171875, - 205.94366455078125 - ], - [ - 21.90887451171875, - 205.94366455078125 - ] - ], - "pressures": [ - 0.130859375, - 0.1689453125, - 0.2490234375, - 0.4296875, - 0.669921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5322265625, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.90887451171875, - 205.94366455078125 - ] - }, - { - "id": "DN2omJXmr-EvSPIOQvdUq", - "type": "freedraw", - "x": -257.7308654785156, - "y": -263.15323638916016, - "width": 101.6573486328125, - "height": 299.7137451171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 63310787, - "version": 882, - "versionNonce": 676909005, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.134521484375, - -7.010894775390625 - ], - [ - -7.88720703125, - -21.0325927734375 - ], - [ - -3.50543212890625, - -34.17791748046875 - ], - [ - 9.639892578125, - -48.1995849609375 - ], - [ - 28.91973876953125, - -63.097686767578125 - ], - [ - 45.57049560546875, - -75.36666870117188 - ], - [ - 54.33404541015625, - -81.50115966796875 - ], - [ - 55.21044921875, - -82.37750244140625 - ], - [ - 56.963134765625, - -80.62478637695312 - ], - [ - 65.7266845703125, - -68.35580444335938 - ], - [ - 84.13018798828125, - -25.41436767578125 - ], - [ - 91.1409912109375, - 13.14532470703125 - ], - [ - 93.7701416015625, - 56.963104248046875 - ], - [ - 93.7701416015625, - 102.53363037109375 - ], - [ - 92.017333984375, - 144.59869384765625 - ], - [ - 87.6356201171875, - 191.04559326171875 - ], - [ - 87.6356201171875, - 206.820068359375 - ], - [ - 88.511962890625, - 214.70721435546875 - ], - [ - 86.75921630859375, - 217.33624267578125 - ], - [ - 78.8720703125, - 212.078125 - ], - [ - 73.6138916015625, - 208.57269287109375 - ], - [ - 72.737548828125, - 206.820068359375 - ], - [ - 72.737548828125, - 206.820068359375 - ] - ], - "pressures": [ - 0.095703125, - 0.1767578125, - 0.388671875, - 0.6220703125, - 0.7666015625, - 0.8076171875, - 0.828125, - 0.859375, - 0.880859375, - 0.90234375, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9423828125, - 0.734375, - 0.3740234375, - 0.2001953125, - 0.11328125, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 72.737548828125, - 206.820068359375 - ] - }, - { - "id": "VESbPkO5RBApGwRAEhCIu", - "type": "freedraw", - "x": -244.58554077148438, - "y": -260.52420806884766, - "width": 113.92626953125, - "height": 272.5467529296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 290484931, - "version": 880, - "versionNonce": 1110876035, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - -6.134490966796875 - ], - [ - -6.13446044921875, - -14.898040771484375 - ], - [ - -2.6290283203125, - -36.80694580078125 - ], - [ - 7.0108642578125, - -52.58135986328125 - ], - [ - 19.27984619140625, - -63.097625732421875 - ], - [ - 35.93060302734375, - -69.23211669921875 - ], - [ - 51.70501708984375, - -71.8612060546875 - ], - [ - 73.6138916015625, - -62.221282958984375 - ], - [ - 91.14105224609375, - -37.68328857421875 - ], - [ - 104.28643798828125, - -0.8763427734375 - ], - [ - 107.79180908203125, - 44.69415283203125 - ], - [ - 99.90460205078125, - 116.55535888671875 - ], - [ - 90.26470947265625, - 155.991455078125 - ], - [ - 80.62481689453125, - 181.40570068359375 - ], - [ - 74.49029541015625, - 194.551025390625 - ], - [ - 66.60308837890625, - 200.685546875 - ], - [ - 58.71588134765625, - 198.05645751953125 - ], - [ - 47.3232421875, - 192.79833984375 - ], - [ - 37.683349609375, - 188.41656494140625 - ], - [ - 35.93060302734375, - 185.7874755859375 - ], - [ - 35.93060302734375, - 185.7874755859375 - ] - ], - "pressures": [ - 0.001953125, - 0.126953125, - 0.1826171875, - 0.330078125, - 0.4677734375, - 0.609375, - 0.71875, - 0.7890625, - 0.861328125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.626953125, - 0.2490234375, - 0.1513671875, - 0.0791015625, - 0.0048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.93060302734375, - 185.7874755859375 - ] - }, - { - "id": "44b7tawYn5WTTdAUNeqTA", - "type": "freedraw", - "x": -241.08010864257812, - "y": -242.99707794189453, - "width": 76.24298095703125, - "height": 249.761474609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 971413027, - "version": 878, - "versionNonce": 430394925, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.88720703125, - -7.010833740234375 - ], - [ - -9.639892578125, - -14.8980712890625 - ], - [ - -9.639892578125, - -28.04339599609375 - ], - [ - -4.38177490234375, - -45.570526123046875 - ], - [ - 4.38177490234375, - -63.973968505859375 - ], - [ - 21.908935546875, - -86.75924682617188 - ], - [ - 31.548828125, - -94.64642333984375 - ], - [ - 35.05426025390625, - -97.27554321289062 - ], - [ - 39.43603515625, - -95.5228271484375 - ], - [ - 50.82867431640625, - -77.11932373046875 - ], - [ - 59.59222412109375, - -49.075958251953125 - ], - [ - 65.7266845703125, - -5.258148193359375 - ], - [ - 66.60308837890625, - 45.57049560546875 - ], - [ - 66.60308837890625, - 90.26467895507812 - ], - [ - 59.59222412109375, - 134.08248901367188 - ], - [ - 57.8394775390625, - 147.22787475585938 - ], - [ - 57.8394775390625, - 151.60964965820312 - ], - [ - 57.8394775390625, - 152.48593139648438 - ], - [ - 57.8394775390625, - 152.48593139648438 - ] - ], - "pressures": [ - 0.0947265625, - 0.2822265625, - 0.40625, - 0.5615234375, - 0.712890625, - 0.8427734375, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.8203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.8394775390625, - 152.48593139648438 - ] - }, - { - "id": "cW-uAE09bAoQG4XGh7xl5", - "type": "freedraw", - "x": -332.2211608886719, - "y": -187.78665924072266, - "width": 369.822265625, - "height": 53.45770263671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 588739917, - "version": 859, - "versionNonce": 836613923, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -2.629058837890625 - ], - [ - -13.14532470703125, - -3.505401611328125 - ], - [ - -14.89801025390625, - -0.8763427734375 - ], - [ - -14.89801025390625, - 2.62908935546875 - ], - [ - -2.62896728515625, - 7.0108642578125 - ], - [ - 25.41436767578125, - 14.8980712890625 - ], - [ - 99.90460205078125, - 28.919769287109375 - ], - [ - 168.26043701171875, - 33.301513671875 - ], - [ - 239.24517822265625, - 32.4251708984375 - ], - [ - 296.20843505859375, - 26.290679931640625 - ], - [ - 335.64434814453125, - 18.403472900390625 - ], - [ - 354.92425537109375, - -1.752716064453125 - ], - [ - 354.04803466796875, - -17.527099609375 - ], - [ - 349.66619873046875, - -20.15618896484375 - ], - [ - 349.66619873046875, - -20.15618896484375 - ] - ], - "pressures": [ - 0.0537109375, - 0.0869140625, - 0.1767578125, - 0.3583984375, - 0.55859375, - 0.8095703125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7568359375, - 0.2216796875, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 349.66619873046875, - -20.15618896484375 - ] - }, - { - "id": "QYLa-DdOQjPFM3pdQmX6P", - "type": "freedraw", - "x": -308.5594787597656, - "y": -177.27039337158203, - "width": 482.87213134765625, - "height": 18.40350341796875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 126246243, - "version": 860, - "versionNonce": 760676493, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.51629638671875, - 0.876373291015625 - ], - [ - -18.40350341796875, - 2.62908935546875 - ], - [ - -24.53802490234375, - 2.62908935546875 - ], - [ - -27.16705322265625, - 3.50543212890625 - ], - [ - -17.527099609375, - 6.134521484375 - ], - [ - 6.13446044921875, - 11.39263916015625 - ], - [ - 42.0650634765625, - 15.7744140625 - ], - [ - 120.93707275390625, - 18.40350341796875 - ], - [ - 193.6746826171875, - 17.527130126953125 - ], - [ - 273.423095703125, - 14.8980712890625 - ], - [ - 344.4078369140625, - 11.39263916015625 - ], - [ - 416.26904296875, - 7.88720703125 - ], - [ - 442.559814453125, - 7.88720703125 - ], - [ - 455.705078125, - 7.0108642578125 - ], - [ - 455.705078125, - 5.258148193359375 - ], - [ - 455.705078125, - 5.258148193359375 - ] - ], - "pressures": [ - 0.01171875, - 0.080078125, - 0.1865234375, - 0.306640625, - 0.466796875, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4970703125, - 0.1513671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 455.705078125, - 5.258148193359375 - ] - }, - { - "id": "L8teSpcGpH7Sq36H4OplS", - "type": "freedraw", - "x": -349.7482604980469, - "y": -185.1575698852539, - "width": 503.02838134765625, - "height": 37.68328857421875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1074127971, - "version": 860, - "versionNonce": 939580099, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.639892578125, - 0.8763427734375 - ], - [ - -10.51629638671875, - 0.8763427734375 - ], - [ - -11.392578125, - 0.8763427734375 - ], - [ - -10.51629638671875, - 2.629058837890625 - ], - [ - 4.38177490234375, - 7.010833740234375 - ], - [ - 28.04345703125, - 11.392608642578125 - ], - [ - 67.47943115234375, - 16.6507568359375 - ], - [ - 118.30804443359375, - 24.5379638671875 - ], - [ - 208.57269287109375, - 35.93060302734375 - ], - [ - 264.65948486328125, - 37.68328857421875 - ], - [ - 318.11724853515625, - 35.93060302734375 - ], - [ - 372.45135498046875, - 28.91973876953125 - ], - [ - 424.15643310546875, - 18.403472900390625 - ], - [ - 489.88311767578125, - 2.629058837890625 - ], - [ - 491.63580322265625, - 1.752685546875 - ], - [ - 491.63580322265625, - 1.752685546875 - ] - ], - "pressures": [ - 0.1064453125, - 0.171875, - 0.2001953125, - 0.294921875, - 0.748046875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.57421875, - 0.21875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 491.63580322265625, - 1.752685546875 - ] - }, - { - "id": "gvP34A4QlwyWNX3PLdjVm", - "type": "freedraw", - "x": -356.7590637207031, - "y": -178.14673614501953, - "width": 436.42535400390625, - "height": 17.527130126953125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 98593635, - "version": 857, - "versionNonce": 1763796717, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - 8.7635498046875, - 3.50543212890625 - ], - [ - 49.9522705078125, - 10.516265869140625 - ], - [ - 95.52276611328125, - 11.39263916015625 - ], - [ - 155.9913330078125, - 8.7635498046875 - ], - [ - 231.35791015625, - 1.752716064453125 - ], - [ - 309.3536376953125, - -3.50543212890625 - ], - [ - 372.4512939453125, - -6.134490966796875 - ], - [ - 421.5272216796875, - -4.38177490234375 - ], - [ - 430.290771484375, - -4.38177490234375 - ], - [ - 432.9197998046875, - -4.38177490234375 - ], - [ - 433.7962646484375, - -4.38177490234375 - ], - [ - 433.7962646484375, - -4.38177490234375 - ] - ], - "pressures": [ - 0.1494140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.47265625, - 0.2607421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 433.7962646484375, - -4.38177490234375 - ] - }, - { - "id": "44BbGdT8PWc1lGND83u5E", - "type": "freedraw", - "x": -357.6354675292969, - "y": -188.66300201416016, - "width": 510.039306640625, - "height": 34.177886962890625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 292558989, - "version": 860, - "versionNonce": 1094617699, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -1.752716064453125 - ], - [ - -9.639892578125, - -1.752716064453125 - ], - [ - -10.51629638671875, - -1.752716064453125 - ], - [ - -6.13446044921875, - 0.8763427734375 - ], - [ - 6.134521484375, - 6.134490966796875 - ], - [ - 25.414306640625, - 12.26898193359375 - ], - [ - 57.83953857421875, - 20.15618896484375 - ], - [ - 130.57708740234375, - 30.672454833984375 - ], - [ - 195.42742919921875, - 32.4251708984375 - ], - [ - 269.91766357421875, - 29.796112060546875 - ], - [ - 384.72027587890625, - 21.03253173828125 - ], - [ - 447.81793212890625, - 16.6507568359375 - ], - [ - 489.00677490234375, - 14.021697998046875 - ], - [ - 499.52301025390625, - 13.14532470703125 - ], - [ - 495.14117431640625, - 12.26898193359375 - ], - [ - 495.14117431640625, - 12.26898193359375 - ] - ], - "pressures": [ - 0.017578125, - 0.1689453125, - 0.20703125, - 0.326171875, - 0.861328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.251953125, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 495.14117431640625, - 12.26898193359375 - ] - }, - { - "id": "i4oBJO95SLIG7pxs4jDKS", - "type": "freedraw", - "x": -334.8501281738281, - "y": -182.52851104736328, - "width": 485.501220703125, - "height": 46.446868896484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 484819341, - "version": 856, - "versionNonce": 1603273037, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.5054931640625, - -1.752716064453125 - ], - [ - 31.54876708984375, - 4.38177490234375 - ], - [ - 71.86114501953125, - 11.39263916015625 - ], - [ - 122.68975830078125, - 19.279815673828125 - ], - [ - 208.5726318359375, - 24.5379638671875 - ], - [ - 265.5357666015625, - 21.03253173828125 - ], - [ - 328.6334228515625, - 12.26898193359375 - ], - [ - 391.731201171875, - 0.8763427734375 - ], - [ - 443.43603515625, - -10.516265869140625 - ], - [ - 476.7376708984375, - -19.27984619140625 - ], - [ - 481.9957275390625, - -21.908905029296875 - ], - [ - 481.9957275390625, - -21.908905029296875 - ] - ], - "pressures": [ - 0.009765625, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.677734375, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 481.9957275390625, - -21.908905029296875 - ] - }, - { - "id": "fue2cV475DAIvBeEvQrkL", - "type": "freedraw", - "x": -225.30569458007812, - "y": -161.49597930908203, - "width": 99.0281982421875, - "height": 40.3123779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 98988589, - "version": 863, - "versionNonce": 577062403, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.25811767578125, - 0 - ], - [ - 6.134521484375, - 0 - ], - [ - 4.38177490234375, - -0.8763427734375 - ], - [ - 1.752685546875, - -1.752716064453125 - ], - [ - -4.38177490234375, - -1.752716064453125 - ], - [ - -9.639892578125, - -1.752716064453125 - ], - [ - -15.7744140625, - -1.752716064453125 - ], - [ - -21.03253173828125, - -0.8763427734375 - ], - [ - -23.66162109375, - 1.752716064453125 - ], - [ - -23.66162109375, - 6.134490966796875 - ], - [ - -21.03253173828125, - 10.516265869140625 - ], - [ - -14.8980712890625, - 16.650787353515625 - ], - [ - -4.38177490234375, - 21.908905029296875 - ], - [ - 10.51629638671875, - 28.919769287109375 - ], - [ - 32.4251708984375, - 35.930633544921875 - ], - [ - 46.4468994140625, - 38.559661865234375 - ], - [ - 52.58135986328125, - 38.559661865234375 - ], - [ - 75.3665771484375, - 35.054229736328125 - ], - [ - 75.3665771484375, - 32.425201416015625 - ], - [ - 72.737548828125, - 28.043426513671875 - ], - [ - 67.4793701171875, - 25.414337158203125 - ], - [ - 66.60302734375, - 25.414337158203125 - ], - [ - 66.60302734375, - 25.414337158203125 - ] - ], - "pressures": [ - 0.0029296875, - 0.1220703125, - 0.1904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.55078125, - 0.1630859375, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.60302734375, - 25.414337158203125 - ] - }, - { - "id": "5fILDsP9Ct0BhRwawUPsa", - "type": "freedraw", - "x": -218.29483032226562, - "y": -165.00138092041016, - "width": 72.73760986328125, - "height": 42.065093994140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 622453731, - "version": 862, - "versionNonce": 368857005, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.381805419921875 - ], - [ - -2.62908935546875, - -5.258148193359375 - ], - [ - -6.134521484375, - -6.134490966796875 - ], - [ - -10.51629638671875, - -6.134490966796875 - ], - [ - -14.021728515625, - -6.134490966796875 - ], - [ - -17.52716064453125, - -3.50543212890625 - ], - [ - -18.40350341796875, - -0.876373291015625 - ], - [ - -18.40350341796875, - 0 - ], - [ - -18.40350341796875, - 1.752685546875 - ], - [ - -16.6507568359375, - 7.010833740234375 - ], - [ - -5.2581787109375, - 14.89801025390625 - ], - [ - 18.4034423828125, - 27.16705322265625 - ], - [ - 33.301513671875, - 31.548828125 - ], - [ - 44.69415283203125, - 34.1778564453125 - ], - [ - 53.457763671875, - 35.93060302734375 - ], - [ - 54.3341064453125, - 35.93060302734375 - ], - [ - 54.3341064453125, - 33.301513671875 - ], - [ - 51.7049560546875, - 29.79608154296875 - ], - [ - 47.32318115234375, - 25.414306640625 - ], - [ - 45.57049560546875, - 24.5379638671875 - ], - [ - 44.69415283203125, - 24.5379638671875 - ], - [ - 44.69415283203125, - 24.5379638671875 - ] - ], - "pressures": [ - 0.0703125, - 0.75390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.259765625, - 0.1279296875, - 0.0595703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 44.69415283203125, - 24.5379638671875 - ] - }, - { - "id": "3g2-t6xcS_4fFJDDfTBTo", - "type": "freedraw", - "x": -225.30569458007812, - "y": -165.87775421142578, - "width": 73.6138916015625, - "height": 42.941436767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 934749347, - "version": 859, - "versionNonce": 309562787, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.25811767578125, - -2.629058837890625 - ], - [ - 4.38177490234375, - -2.629058837890625 - ], - [ - 1.752685546875, - -3.50543212890625 - ], - [ - -2.62908935546875, - -3.50543212890625 - ], - [ - -8.7635498046875, - -3.50543212890625 - ], - [ - -14.02166748046875, - 0 - ], - [ - -14.8980712890625, - 4.38177490234375 - ], - [ - -12.26898193359375, - 10.516265869140625 - ], - [ - -7.0108642578125, - 17.527130126953125 - ], - [ - 6.134521484375, - 25.414337158203125 - ], - [ - 16.6507568359375, - 29.796112060546875 - ], - [ - 25.414306640625, - 33.301544189453125 - ], - [ - 34.1778564453125, - 36.806976318359375 - ], - [ - 42.0650634765625, - 38.559661865234375 - ], - [ - 51.70501708984375, - 39.436004638671875 - ], - [ - 56.0867919921875, - 36.806976318359375 - ], - [ - 58.7158203125, - 34.177886962890625 - ], - [ - 58.7158203125, - 33.301544189453125 - ], - [ - 58.7158203125, - 33.301544189453125 - ] - ], - "pressures": [ - 0.01953125, - 0.9296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4794921875, - 0.1826171875, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.7158203125, - 33.301544189453125 - ] - }, - { - "id": "oud46u0z7b3zfgh6QfGA5", - "type": "freedraw", - "x": -227.93478393554688, - "y": -162.37232208251953, - "width": 65.7266845703125, - "height": 43.81781005859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1636722061, - "version": 860, - "versionNonce": 714068493, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - -4.38177490234375 - ], - [ - 0.87640380859375, - -5.258148193359375 - ], - [ - -1.752685546875, - -5.258148193359375 - ], - [ - -4.38177490234375, - -3.50543212890625 - ], - [ - -7.88720703125, - -1.752716064453125 - ], - [ - -10.5162353515625, - -0.876373291015625 - ], - [ - -13.14532470703125, - 0 - ], - [ - -13.14532470703125, - 4.38177490234375 - ], - [ - -7.88720703125, - 9.639923095703125 - ], - [ - -1.752685546875, - 15.774383544921875 - ], - [ - 6.134521484375, - 20.156158447265625 - ], - [ - 21.0325927734375, - 27.167022705078125 - ], - [ - 31.548828125, - 32.425140380859375 - ], - [ - 40.3123779296875, - 35.930572509765625 - ], - [ - 46.4468994140625, - 37.683319091796875 - ], - [ - 49.95233154296875, - 38.559661865234375 - ], - [ - 52.58135986328125, - 36.806976318359375 - ], - [ - 52.58135986328125, - 34.177886962890625 - ], - [ - 52.58135986328125, - 31.548797607421875 - ], - [ - 52.58135986328125, - 31.548797607421875 - ] - ], - "pressures": [ - 0.0849609375, - 0.3662109375, - 0.572265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.46484375, - 0.2099609375, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 52.58135986328125, - 31.548797607421875 - ] - }, - { - "id": "8hXBoLFIJ6EENU9zxRagJ", - "type": "freedraw", - "x": -326.0865783691406, - "y": -180.77579498291016, - "width": 517.0501098632812, - "height": 29.796112060546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 954639885, - "version": 856, - "versionNonce": 1687675203, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -12.26904296875, - -1.752716064453125 - ], - [ - -15.77447509765625, - -2.62908935546875 - ], - [ - -16.65081787109375, - -3.50543212890625 - ], - [ - -9.63995361328125, - -3.50543212890625 - ], - [ - 28.919677734375, - 0 - ], - [ - 70.1083984375, - 4.38177490234375 - ], - [ - 122.68975830078125, - 11.392608642578125 - ], - [ - 182.281982421875, - 16.6507568359375 - ], - [ - 263.7830810546875, - 16.6507568359375 - ], - [ - 290.9501953125, - 14.021697998046875 - ], - [ - 368.94580078125, - 1.752716064453125 - ], - [ - 421.5272216796875, - -6.134490966796875 - ], - [ - 465.344970703125, - -11.39263916015625 - ], - [ - 486.3775634765625, - -12.26898193359375 - ], - [ - 500.3992919921875, - -13.145355224609375 - ], - [ - 500.3992919921875, - -13.145355224609375 - ] - ], - "pressures": [ - 0.06640625, - 0.236328125, - 0.3828125, - 0.484375, - 0.7890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6923828125, - 0.15625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 500.3992919921875, - -13.145355224609375 - ] - }, - { - "id": "Tmg2MlJ6B3I5c5jsh_9H9", - "type": "freedraw", - "x": 10.434051513671875, - "y": -189.53937530517578, - "width": 481.99578857421875, - "height": 49.952301025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1481363213, - "version": 860, - "versionNonce": 977537133, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 14.021728515625, - -0.8763427734375 - ], - [ - 17.527099609375, - -0.8763427734375 - ], - [ - 10.516357421875, - 0.876373291015625 - ], - [ - -5.258056640625, - 3.50543212890625 - ], - [ - -28.043212890625, - 8.763580322265625 - ], - [ - -61.3448486328125, - 13.145355224609375 - ], - [ - -139.340576171875, - 18.40350341796875 - ], - [ - -206.82000732421875, - 18.40350341796875 - ], - [ - -275.17578125, - 16.650787353515625 - ], - [ - -333.8916015625, - 12.26898193359375 - ], - [ - -377.70941162109375, - 5.258148193359375 - ], - [ - -418.898193359375, - -6.134490966796875 - ], - [ - -438.177978515625, - -14.898040771484375 - ], - [ - -452.19970703125, - -23.661590576171875 - ], - [ - -461.839599609375, - -30.672454833984375 - ], - [ - -463.59228515625, - -31.548797607421875 - ], - [ - -464.46868896484375, - -31.548797607421875 - ], - [ - -463.59228515625, - -30.672454833984375 - ], - [ - -462.7159423828125, - -30.672454833984375 - ], - [ - -462.7159423828125, - -30.672454833984375 - ] - ], - "pressures": [ - 0.0595703125, - 0.109375, - 0.1748046875, - 0.599609375, - 0.8681640625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.7744140625, - 0.6376953125, - 0.419921875, - 0.26171875, - 0.228515625, - 0.19140625, - 0.0908203125, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -462.7159423828125, - -30.672454833984375 - ] - }, - { - "id": "xMH-tI23L2EptPBAUKz9K", - "type": "freedraw", - "x": -383.9261169433594, - "y": -196.55020904541016, - "width": 565.2496337890625, - "height": 41.188720703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1959205069, - "version": 854, - "versionNonce": 36749539, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -16.6507568359375, - 2.629058837890625 - ], - [ - -28.9197998046875, - 7.010833740234375 - ], - [ - -35.05426025390625, - 8.7635498046875 - ], - [ - -21.03253173828125, - 11.39263916015625 - ], - [ - 0, - 13.14532470703125 - ], - [ - 39.43597412109375, - 17.527130126953125 - ], - [ - 100.78094482421875, - 27.167022705078125 - ], - [ - 172.64208984375, - 36.80694580078125 - ], - [ - 240.12152099609375, - 41.188720703125 - ], - [ - 321.62261962890625, - 39.436004638671875 - ], - [ - 367.19317626953125, - 34.177886962890625 - ], - [ - 411.88726806640625, - 28.04339599609375 - ], - [ - 530.1953735351562, - 17.527130126953125 - ], - [ - 530.1953735351562, - 17.527130126953125 - ] - ], - "pressures": [ - 0.12109375, - 0.1552734375, - 0.1962890625, - 0.330078125, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1787109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 530.1953735351562, - 17.527130126953125 - ] - }, - { - "id": "iHROGrPSnf_34BjWPZfc6", - "type": "freedraw", - "x": 71.77902221679688, - "y": -191.29206085205078, - "width": 576.6422729492188, - "height": 34.177886962890625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1996978029, - "version": 861, - "versionNonce": 115503821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 15.7745361328125, - 1.752685546875 - ], - [ - 22.7852783203125, - 1.752685546875 - ], - [ - 27.1669921875, - 1.752685546875 - ], - [ - 28.0433349609375, - 1.752685546875 - ], - [ - 22.7852783203125, - 4.38177490234375 - ], - [ - -6.1343994140625, - 11.392608642578125 - ], - [ - -40.3123779296875, - 15.774383544921875 - ], - [ - -92.0174560546875, - 19.279815673828125 - ], - [ - -162.1258544921875, - 18.403472900390625 - ], - [ - -241.874267578125, - 14.02166748046875 - ], - [ - -350.54241943359375, - 7.887176513671875 - ], - [ - -403.123779296875, - 6.134490966796875 - ], - [ - -441.68341064453125, - 6.134490966796875 - ], - [ - -470.60321044921875, - 6.134490966796875 - ], - [ - -501.27569580078125, - 1.752685546875 - ], - [ - -517.0501098632812, - -3.50543212890625 - ], - [ - -531.9481201171875, - -8.763580322265625 - ], - [ - -542.46435546875, - -12.269012451171875 - ], - [ - -547.7225341796875, - -14.021697998046875 - ], - [ - -548.5989379882812, - -14.8980712890625 - ], - [ - -548.5989379882812, - -14.8980712890625 - ] - ], - "pressures": [ - 0.0244140625, - 0.0625, - 0.123046875, - 0.2080078125, - 0.2568359375, - 0.859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6240234375, - 0.349609375, - 0.2568359375, - 0.2138671875, - 0.154296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -548.5989379882812, - -14.8980712890625 - ] - }, - { - "id": "UXaoa0fs7usqqQHauxZcj", - "type": "freedraw", - "x": -412.8459167480469, - "y": -198.30292510986328, - "width": 533.7008056640625, - "height": 22.785247802734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 990981155, - "version": 857, - "versionNonce": 617393283, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - 0 - ], - [ - -9.63983154296875, - 0.8763427734375 - ], - [ - -9.63983154296875, - 1.752716064453125 - ], - [ - 0.87640380859375, - 2.629058837890625 - ], - [ - 36.8070068359375, - 7.0108642578125 - ], - [ - 79.7484130859375, - 11.39263916015625 - ], - [ - 137.58795166015625, - 14.021697998046875 - ], - [ - 203.31463623046875, - 11.39263916015625 - ], - [ - 270.79400634765625, - 5.258148193359375 - ], - [ - 367.19317626953125, - -1.752716064453125 - ], - [ - 424.15631103515625, - -2.629058837890625 - ], - [ - 467.09783935546875, - -0.8763427734375 - ], - [ - 495.14117431640625, - 2.629058837890625 - ], - [ - 510.91558837890625, - 2.629058837890625 - ], - [ - 522.3082885742188, - -3.50543212890625 - ], - [ - 524.0609741210938, - -8.7635498046875 - ], - [ - 524.0609741210938, - -8.7635498046875 - ] - ], - "pressures": [ - 0.0244140625, - 0.0869140625, - 0.125, - 0.349609375, - 0.53515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.5322265625, - 0.1923828125, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 524.0609741210938, - -8.7635498046875 - ] - }, - { - "id": "B2k96KBulBbjf3LbOjBK7", - "type": "freedraw", - "x": 18.321258544921875, - "y": -185.1575698852539, - "width": 492.5120849609375, - "height": 64.85031127929688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 945685645, - "version": 854, - "versionNonce": 1560580397, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -35.930419921875, - 3.505401611328125 - ], - [ - -74.490234375, - 11.392608642578125 - ], - [ - -127.947998046875, - 19.279815673828125 - ], - [ - -196.3037109375, - 21.90887451171875 - ], - [ - -273.42303466796875, - 19.279815673828125 - ], - [ - -373.32763671875, - 3.505401611328125 - ], - [ - -411.010986328125, - -7.0108642578125 - ], - [ - -437.3016357421875, - -17.527130126953125 - ], - [ - -457.45782470703125, - -27.16705322265625 - ], - [ - -466.22137451171875, - -30.6724853515625 - ], - [ - -489.88299560546875, - -41.188751220703125 - ], - [ - -492.5120849609375, - -42.941436767578125 - ], - [ - -490.75933837890625, - -42.065093994140625 - ], - [ - -490.75933837890625, - -42.065093994140625 - ] - ], - "pressures": [ - 0.0107421875, - 0.701171875, - 0.853515625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.828125, - 0.3359375, - 0.2177734375, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -490.75933837890625, - -42.065093994140625 - ] - }, - { - "id": "TWe23xztl9qGSxqxmnmkZ", - "type": "freedraw", - "x": -361.1408386230469, - "y": -202.68470001220703, - "width": 541.5880126953125, - "height": 30.672454833984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1072798509, - "version": 855, - "versionNonce": 1344939043, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.63995361328125, - -2.629058837890625 - ], - [ - -13.14532470703125, - -2.629058837890625 - ], - [ - -13.14532470703125, - 0 - ], - [ - -9.63995361328125, - 3.50543212890625 - ], - [ - 3.50537109375, - 7.010833740234375 - ], - [ - 43.81781005859375, - 12.26898193359375 - ], - [ - 88.51190185546875, - 14.021697998046875 - ], - [ - 143.72235107421875, - 14.898040771484375 - ], - [ - 207.69635009765625, - 16.6507568359375 - ], - [ - 281.31024169921875, - 20.15618896484375 - ], - [ - 401.37103271484375, - 27.167022705078125 - ], - [ - 475.86126708984375, - 28.04339599609375 - ], - [ - 528.4426879882812, - 25.414306640625 - ], - [ - 524.0608520507812, - 23.66162109375 - ], - [ - 524.0608520507812, - 23.66162109375 - ] - ], - "pressures": [ - 0.048828125, - 0.1923828125, - 0.49609375, - 0.751953125, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75390625, - 0.341796875, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 524.0608520507812, - 23.66162109375 - ] - }, - { - "id": "71b5ctYVrcvB73cAFRzT7", - "type": "freedraw", - "x": -345.3664855957031, - "y": -197.42658233642578, - "width": 425.9090576171875, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1121593731, - "version": 854, - "versionNonce": 974381965, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.639892578125, - 4.381805419921875 - ], - [ - -9.639892578125, - 7.0108642578125 - ], - [ - -7.01080322265625, - 9.639923095703125 - ], - [ - 10.516357421875, - 13.145355224609375 - ], - [ - 64.850341796875, - 18.40350341796875 - ], - [ - 113.0499267578125, - 18.40350341796875 - ], - [ - 171.76580810546875, - 14.021697998046875 - ], - [ - 235.73974609375, - 8.763580322265625 - ], - [ - 297.0848388671875, - 3.50543212890625 - ], - [ - 370.6986083984375, - -1.752685546875 - ], - [ - 399.618408203125, - -6.134490966796875 - ], - [ - 416.2691650390625, - -11.392608642578125 - ], - [ - 412.763671875, - -13.14532470703125 - ], - [ - 412.763671875, - -13.14532470703125 - ] - ], - "pressures": [ - 0, - 0.287109375, - 0.4404296875, - 0.6357421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4208984375, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 412.763671875, - -13.14532470703125 - ] - }, - { - "id": "sl5T2E0GazamNo5bWC5Eb", - "type": "freedraw", - "x": -348.8719177246094, - "y": -207.06647491455078, - "width": 452.19976806640625, - "height": 42.941436767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1773135075, - "version": 852, - "versionNonce": 204974019, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 16.6507568359375, - 7.88720703125 - ], - [ - 52.58135986328125, - 21.908905029296875 - ], - [ - 78.8720703125, - 28.04339599609375 - ], - [ - 106.91546630859375, - 34.177886962890625 - ], - [ - 141.9697265625, - 40.3123779296875 - ], - [ - 185.78753662109375, - 42.941436767578125 - ], - [ - 235.73980712890625, - 42.065093994140625 - ], - [ - 317.24090576171875, - 29.79608154296875 - ], - [ - 374.20404052734375, - 21.03253173828125 - ], - [ - 418.89837646484375, - 15.7744140625 - ], - [ - 452.19976806640625, - 14.021697998046875 - ], - [ - 452.19976806640625, - 14.021697998046875 - ] - ], - "pressures": [ - 0.1806640625, - 0.92578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.306640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 452.19976806640625, - 14.021697998046875 - ] - }, - { - "id": "jVqdw4GFByfcyHOkC6j12", - "type": "freedraw", - "x": -223.55300903320312, - "y": -165.87775421142578, - "width": 78.8720703125, - "height": 38.559661865234375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1294979651, - "version": 852, - "versionNonce": 843704813, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -3.50543212890625 - ], - [ - -11.392578125, - -4.38177490234375 - ], - [ - -15.77435302734375, - -5.25811767578125 - ], - [ - -20.15618896484375, - -5.25811767578125 - ], - [ - -25.414306640625, - -2.629058837890625 - ], - [ - -27.1669921875, - 0 - ], - [ - -28.04339599609375, - 3.50543212890625 - ], - [ - -27.1669921875, - 6.134490966796875 - ], - [ - -20.15618896484375, - 12.269012451171875 - ], - [ - -7.88720703125, - 18.403472900390625 - ], - [ - 16.65081787109375, - 28.919769287109375 - ], - [ - 29.796142578125, - 32.425201416015625 - ], - [ - 38.5596923828125, - 33.301544189453125 - ], - [ - 46.4468994140625, - 33.301544189453125 - ], - [ - 49.95233154296875, - 32.425201416015625 - ], - [ - 50.82867431640625, - 29.796112060546875 - ], - [ - 50.82867431640625, - 27.167022705078125 - ], - [ - 49.07598876953125, - 25.414337158203125 - ], - [ - 48.1995849609375, - 25.414337158203125 - ], - [ - 48.1995849609375, - 25.414337158203125 - ] - ], - "pressures": [ - 0.0634765625, - 0.71875, - 0.904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5234375, - 0.185546875, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.1995849609375, - 25.414337158203125 - ] - }, - { - "id": "VlaxhEHDBVZ_IOtSP1SRm", - "type": "freedraw", - "x": -224.42935180664062, - "y": -170.25952911376953, - "width": 60.46856689453125, - "height": 45.570526123046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1719234189, - "version": 853, - "versionNonce": 1595127651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.38177490234375, - -3.50543212890625 - ], - [ - 3.50543212890625, - -6.134490966796875 - ], - [ - 0, - -7.0108642578125 - ], - [ - -4.38177490234375, - -7.0108642578125 - ], - [ - -7.88720703125, - -6.134490966796875 - ], - [ - -11.39263916015625, - -2.629058837890625 - ], - [ - -14.02166748046875, - 5.258148193359375 - ], - [ - -14.89801025390625, - 10.516265869140625 - ], - [ - -14.89801025390625, - 14.898040771484375 - ], - [ - -10.5162353515625, - 19.279815673828125 - ], - [ - -5.25811767578125, - 23.661590576171875 - ], - [ - 8.7635498046875, - 28.919769287109375 - ], - [ - 19.27984619140625, - 32.425201416015625 - ], - [ - 29.796142578125, - 35.054229736328125 - ], - [ - 37.683349609375, - 37.683319091796875 - ], - [ - 43.81781005859375, - 38.559661865234375 - ], - [ - 45.570556640625, - 38.559661865234375 - ], - [ - 45.570556640625, - 35.930572509765625 - ], - [ - 44.69415283203125, - 34.177886962890625 - ], - [ - 42.94146728515625, - 33.301544189453125 - ], - [ - 42.94146728515625, - 33.301544189453125 - ] - ], - "pressures": [ - 0.0361328125, - 0.470703125, - 0.697265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.56640625, - 0.2294921875, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.94146728515625, - 33.301544189453125 - ] - }, - { - "id": "cn_B4zQ121CuprwtfEdwD", - "type": "freedraw", - "x": -223.55300903320312, - "y": -171.13587188720703, - "width": 77.99566650390625, - "height": 46.446868896484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 481217549, - "version": 851, - "versionNonce": 380642381, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - 0 - ], - [ - 0, - 0 - ], - [ - -3.50537109375, - 0 - ], - [ - -8.7635498046875, - 1.752685546875 - ], - [ - -12.26898193359375, - 2.629058837890625 - ], - [ - -14.89801025390625, - 4.38177490234375 - ], - [ - -15.77435302734375, - 7.887176513671875 - ], - [ - -15.77435302734375, - 12.26898193359375 - ], - [ - -10.5162353515625, - 21.032501220703125 - ], - [ - -4.38177490234375, - 25.414337158203125 - ], - [ - 5.2581787109375, - 29.796112060546875 - ], - [ - 20.15618896484375, - 34.177886962890625 - ], - [ - 42.06512451171875, - 41.188690185546875 - ], - [ - 52.58135986328125, - 44.694122314453125 - ], - [ - 58.7159423828125, - 45.570526123046875 - ], - [ - 61.344970703125, - 46.446868896484375 - ], - [ - 62.2213134765625, - 46.446868896484375 - ], - [ - 60.4686279296875, - 46.446868896484375 - ], - [ - 60.4686279296875, - 46.446868896484375 - ] - ], - "pressures": [ - 0.060546875, - 0.28515625, - 0.78515625, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.720703125, - 0.427734375, - 0.044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.4686279296875, - 46.446868896484375 - ] - }, - { - "id": "6_2NbPbSVpxSC5zQBYCkj", - "type": "freedraw", - "x": -229.68746948242188, - "y": -168.5068130493164, - "width": 61.34490966796875, - "height": 44.694122314453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 891082541, - "version": 851, - "versionNonce": 118280963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - -2.629058837890625 - ], - [ - 0.8763427734375, - -2.629058837890625 - ], - [ - -0.8763427734375, - -0.876373291015625 - ], - [ - -4.38177490234375, - 1.752716064453125 - ], - [ - -7.0108642578125, - 5.25811767578125 - ], - [ - -7.88720703125, - 6.134490966796875 - ], - [ - -7.88720703125, - 8.7635498046875 - ], - [ - -5.25811767578125, - 14.02166748046875 - ], - [ - 9.639892578125, - 23.66162109375 - ], - [ - 21.90887451171875, - 28.91973876953125 - ], - [ - 33.301513671875, - 33.301513671875 - ], - [ - 41.188720703125, - 36.80694580078125 - ], - [ - 46.44683837890625, - 39.43603515625 - ], - [ - 50.82867431640625, - 41.188720703125 - ], - [ - 51.70501708984375, - 42.0650634765625 - ], - [ - 52.58135986328125, - 42.0650634765625 - ], - [ - 53.45770263671875, - 42.0650634765625 - ], - [ - 53.45770263671875, - 41.188720703125 - ], - [ - 53.45770263671875, - 41.188720703125 - ] - ], - "pressures": [ - 0.0009765625, - 0.4462890625, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.25, - 0.083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.45770263671875, - 41.188720703125 - ] - }, - { - "id": "7kOnXio5itqNsxb9aP2Si", - "type": "freedraw", - "x": -220.92391967773438, - "y": -169.38318634033203, - "width": 61.344970703125, - "height": 43.81781005859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2068887117, - "version": 851, - "versionNonce": 1528828589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -2.629058837890625 - ], - [ - -2.62908935546875, - -2.629058837890625 - ], - [ - -6.13446044921875, - -2.629058837890625 - ], - [ - -8.7635498046875, - -2.629058837890625 - ], - [ - -10.51629638671875, - 2.62908935546875 - ], - [ - -10.51629638671875, - 7.88720703125 - ], - [ - -7.88720703125, - 13.145355224609375 - ], - [ - -4.38177490234375, - 18.403472900390625 - ], - [ - 2.62908935546875, - 27.167022705078125 - ], - [ - 7.88720703125, - 30.672454833984375 - ], - [ - 14.8980712890625, - 34.177886962890625 - ], - [ - 21.908935546875, - 35.930633544921875 - ], - [ - 29.79608154296875, - 37.683319091796875 - ], - [ - 40.3123779296875, - 40.312408447265625 - ], - [ - 45.57049560546875, - 41.188751220703125 - ], - [ - 49.9522705078125, - 41.188751220703125 - ], - [ - 50.82867431640625, - 41.188751220703125 - ], - [ - 50.82867431640625, - 40.312408447265625 - ], - [ - 50.82867431640625, - 40.312408447265625 - ] - ], - "pressures": [ - 0.0771484375, - 0.44140625, - 0.6552734375, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.4765625, - 0.287109375, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 50.82867431640625, - 40.312408447265625 - ] - }, - { - "id": "SIdBXIm_BiqoqGWfevqkm", - "type": "freedraw", - "x": -220.92391967773438, - "y": -166.75409698486328, - "width": 63.09759521484375, - "height": 42.0650634765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1096477037, - "version": 852, - "versionNonce": 1956739747, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.876373291015625 - ], - [ - -2.62908935546875, - -1.752716064453125 - ], - [ - -7.0108642578125, - -1.752716064453125 - ], - [ - -11.39263916015625, - -1.752716064453125 - ], - [ - -16.6507568359375, - 0.8763427734375 - ], - [ - -18.4034423828125, - 3.505401611328125 - ], - [ - -18.4034423828125, - 7.010833740234375 - ], - [ - -18.4034423828125, - 10.516265869140625 - ], - [ - -14.02166748046875, - 17.527130126953125 - ], - [ - -7.88720703125, - 21.908905029296875 - ], - [ - -0.8763427734375, - 26.290679931640625 - ], - [ - 7.0108642578125, - 29.796112060546875 - ], - [ - 14.021728515625, - 33.301544189453125 - ], - [ - 24.5379638671875, - 36.806915283203125 - ], - [ - 30.6724853515625, - 38.559661865234375 - ], - [ - 35.93060302734375, - 39.436004638671875 - ], - [ - 40.3123779296875, - 40.312347412109375 - ], - [ - 43.81781005859375, - 40.312347412109375 - ], - [ - 44.69415283203125, - 40.312347412109375 - ], - [ - 44.69415283203125, - 40.312347412109375 - ] - ], - "pressures": [ - 0.0419921875, - 0.484375, - 0.7626953125, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.82421875, - 0.5380859375, - 0.23828125, - 0.1513671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 44.69415283203125, - 40.312347412109375 - ] - }, - { - "id": "lVogE_l5-4gvpG0E62fl2", - "type": "freedraw", - "x": -221.80026245117188, - "y": -167.6304702758789, - "width": 54.33404541015625, - "height": 39.436004638671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1229122243, - "version": 854, - "versionNonce": 1011037453, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - -0.8763427734375 - ], - [ - 1.752685546875, - -1.752716064453125 - ], - [ - -2.62908935546875, - -1.752716064453125 - ], - [ - -7.0108642578125, - -1.752716064453125 - ], - [ - -13.14532470703125, - -1.752716064453125 - ], - [ - -15.7744140625, - -1.752716064453125 - ], - [ - -17.527099609375, - -0.8763427734375 - ], - [ - -19.27984619140625, - 0.876373291015625 - ], - [ - -20.15618896484375, - 3.50543212890625 - ], - [ - -20.15618896484375, - 7.88720703125 - ], - [ - -19.27984619140625, - 11.39263916015625 - ], - [ - -15.7744140625, - 15.7744140625 - ], - [ - -9.63995361328125, - 20.15618896484375 - ], - [ - 0.8763427734375, - 27.16705322265625 - ], - [ - 7.0108642578125, - 29.796142578125 - ], - [ - 12.26898193359375, - 31.548828125 - ], - [ - 19.27984619140625, - 33.301513671875 - ], - [ - 25.414306640625, - 35.93060302734375 - ], - [ - 29.79608154296875, - 36.80694580078125 - ], - [ - 33.301513671875, - 37.68328857421875 - ], - [ - 34.1778564453125, - 37.68328857421875 - ], - [ - 34.1778564453125, - 37.68328857421875 - ] - ], - "pressures": [ - 0.046875, - 0.357421875, - 0.4169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.908203125, - 0.640625, - 0.3017578125, - 0.216796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.1778564453125, - 37.68328857421875 - ] - }, - { - "id": "e8eyiNeUyZ1NMZmhOwmpC", - "type": "freedraw", - "x": -220.04757690429688, - "y": -168.5068130493164, - "width": 67.47943115234375, - "height": 45.57049560546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 129827949, - "version": 855, - "versionNonce": 75509315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - -2.629058837890625 - ], - [ - 0.87640380859375, - -3.50543212890625 - ], - [ - -1.752685546875, - -3.50543212890625 - ], - [ - -4.38177490234375, - -3.50543212890625 - ], - [ - -9.639892578125, - -2.629058837890625 - ], - [ - -14.89801025390625, - -1.752716064453125 - ], - [ - -20.15618896484375, - -1.752716064453125 - ], - [ - -23.66162109375, - -0.876373291015625 - ], - [ - -26.2906494140625, - 0.8763427734375 - ], - [ - -26.2906494140625, - 3.50543212890625 - ], - [ - -26.2906494140625, - 7.88720703125 - ], - [ - -23.66162109375, - 12.26898193359375 - ], - [ - -16.6507568359375, - 18.4034423828125 - ], - [ - -7.01080322265625, - 24.5379638671875 - ], - [ - 10.51629638671875, - 32.4251708984375 - ], - [ - 21.0325927734375, - 36.80694580078125 - ], - [ - 29.796142578125, - 39.43603515625 - ], - [ - 35.93060302734375, - 41.188720703125 - ], - [ - 39.43603515625, - 42.0650634765625 - ], - [ - 41.18878173828125, - 41.188720703125 - ], - [ - 41.18878173828125, - 39.43603515625 - ], - [ - 39.43603515625, - 39.43603515625 - ], - [ - 39.43603515625, - 39.43603515625 - ] - ], - "pressures": [ - 0.068359375, - 0.2041015625, - 0.2236328125, - 0.67578125, - 0.6845703125, - 0.744140625, - 0.787109375, - 0.8076171875, - 0.826171875, - 0.861328125, - 0.884765625, - 0.90625, - 0.931640625, - 0.9921875, - 1, - 1, - 1, - 1, - 0.8935546875, - 0.640625, - 0.2021484375, - 0.1083984375, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.43603515625, - 39.43603515625 - ] - }, - { - "id": "0cRbPNTLh_nUgMYBqfn4l", - "type": "freedraw", - "x": -234.94558715820312, - "y": -224.5936050415039, - "width": 152.48602294921875, - "height": 229.60531616210938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1299942723, - "version": 853, - "versionNonce": 630393709, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -11.39263916015625, - -6.134490966796875 - ], - [ - -17.52716064453125, - -14.021697998046875 - ], - [ - -17.52716064453125, - -22.785247802734375 - ], - [ - -9.63995361328125, - -36.80694580078125 - ], - [ - 2.6290283203125, - -53.457733154296875 - ], - [ - 23.66156005859375, - -69.23211669921875 - ], - [ - 72.737548828125, - -78.87203979492188 - ], - [ - 104.286376953125, - -77.99566650390625 - ], - [ - 124.4425048828125, - -72.737548828125 - ], - [ - 134.0823974609375, - -63.9739990234375 - ], - [ - 134.9588623046875, - -40.3123779296875 - ], - [ - 124.4425048828125, - -19.27984619140625 - ], - [ - 107.791748046875, - 7.010833740234375 - ], - [ - 86.75927734375, - 39.43603515625 - ], - [ - 65.7266845703125, - 72.737548828125 - ], - [ - 56.0867919921875, - 88.511962890625 - ], - [ - 29.79608154296875, - 146.35150146484375 - ], - [ - 25.414306640625, - 150.7332763671875 - ], - [ - 23.66156005859375, - 148.98052978515625 - ], - [ - 22.78521728515625, - 144.5987548828125 - ], - [ - 22.78521728515625, - 144.5987548828125 - ] - ], - "pressures": [ - 0.158203125, - 0.27734375, - 0.462890625, - 0.671875, - 0.8388671875, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.71484375, - 0.30859375, - 0.1396484375, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.78521728515625, - 144.5987548828125 - ] - }, - { - "id": "Y4vDJOs-ixC0A70Jjn6XN", - "type": "freedraw", - "x": -305.9304504394531, - "y": -193.92115020751953, - "width": 274.2994384765625, - "height": 107.79183959960938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1305434765, - "version": 845, - "versionNonce": 2038918627, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -4.38177490234375 - ], - [ - -7.01080322265625, - -5.25811767578125 - ], - [ - 9.639892578125, - -5.25811767578125 - ], - [ - 36.80694580078125, - -5.25811767578125 - ], - [ - 92.01739501953125, - 1.752716064453125 - ], - [ - 139.340576171875, - 12.26898193359375 - ], - [ - 180.529296875, - 25.414337158203125 - ], - [ - 209.4490966796875, - 41.188751220703125 - ], - [ - 227.8525390625, - 57.839508056640625 - ], - [ - 244.50341796875, - 77.99569702148438 - ], - [ - 253.2669677734375, - 88.51199340820312 - ], - [ - 260.2777099609375, - 97.27554321289062 - ], - [ - 265.535888671875, - 102.53372192382812 - ], - [ - 265.535888671875, - 102.53372192382812 - ] - ], - "pressures": [ - 0.048828125, - 0.177734375, - 0.2138671875, - 0.3115234375, - 0.4609375, - 0.7744140625, - 0.9599609375, - 1, - 1, - 1, - 1, - 0.6943359375, - 0.3466796875, - 0.166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 265.535888671875, - 102.53372192382812 - ] - }, - { - "id": "yb2jCvznQa1VhmSwK16oq", - "type": "freedraw", - "x": -161.33169555664062, - "y": -303.4656448364258, - "width": 137.587890625, - "height": 275.1757507324219, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 155512515, - "version": 849, - "versionNonce": 1465456077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.6290283203125, - -5.258148193359375 - ], - [ - -2.6290283203125, - -10.516265869140625 - ], - [ - -10.51629638671875, - -15.7744140625 - ], - [ - -18.40350341796875, - -20.15618896484375 - ], - [ - -26.29071044921875, - -24.5379638671875 - ], - [ - -35.93060302734375, - -25.414306640625 - ], - [ - -52.58135986328125, - -12.268951416015625 - ], - [ - -65.7266845703125, - 13.14532470703125 - ], - [ - -76.24298095703125, - 48.1995849609375 - ], - [ - -80.624755859375, - 86.75924682617188 - ], - [ - -72.737548828125, - 141.96966552734375 - ], - [ - -56.0867919921875, - 171.76577758789062 - ], - [ - -34.17791748046875, - 198.05648803710938 - ], - [ - -8.7635498046875, - 218.21267700195312 - ], - [ - 14.021728515625, - 232.23434448242188 - ], - [ - 45.570556640625, - 245.37966918945312 - ], - [ - 56.963134765625, - 249.76144409179688 - ], - [ - 56.963134765625, - 249.76144409179688 - ] - ], - "pressures": [ - 0.0673828125, - 0.1416015625, - 0.21875, - 0.33203125, - 0.48046875, - 0.6240234375, - 0.75390625, - 0.8955078125, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3779296875, - 0.103515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 56.963134765625, - 249.76144409179688 - ] - }, - { - "id": "vlw6u4V1NPON0cohqvkxh", - "type": "freedraw", - "x": -211.28402709960938, - "y": -257.0187759399414, - "width": 259.4013671875, - "height": 222.59442138671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 698377421, - "version": 848, - "versionNonce": 918927747, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -6.13446044921875 - ], - [ - -15.77435302734375, - -7.0108642578125 - ], - [ - -28.0433349609375, - -4.38177490234375 - ], - [ - -42.0650634765625, - 5.25811767578125 - ], - [ - -54.33404541015625, - 22.785247802734375 - ], - [ - -60.46856689453125, - 67.47940063476562 - ], - [ - -53.45770263671875, - 99.90457153320312 - ], - [ - -35.9305419921875, - 130.5770263671875 - ], - [ - -12.26898193359375, - 156.8677978515625 - ], - [ - 28.04339599609375, - 183.158447265625 - ], - [ - 58.71588134765625, - 194.551025390625 - ], - [ - 89.38836669921875, - 202.438232421875 - ], - [ - 118.30804443359375, - 208.57275390625 - ], - [ - 146.35150146484375, - 213.8309326171875 - ], - [ - 186.66387939453125, - 215.58355712890625 - ], - [ - 198.93280029296875, - 212.95452880859375 - ], - [ - 198.93280029296875, - 212.95452880859375 - ] - ], - "pressures": [ - 0.078125, - 0.1982421875, - 0.2978515625, - 0.5205078125, - 0.6953125, - 0.783203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8173828125, - 0.400390625, - 0.1396484375, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 198.93280029296875, - 212.95452880859375 - ] - }, - { - "id": "Y7_oXekQ3FS8tjnVKHKSR", - "type": "freedraw", - "x": -237.57467651367188, - "y": -251.76065826416016, - "width": 99.02825927734375, - "height": 210.325439453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1492208301, - "version": 852, - "versionNonce": 1286525997, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50543212890625, - -4.38177490234375 - ], - [ - 11.39263916015625, - -7.887176513671875 - ], - [ - 22.7852783203125, - -13.14532470703125 - ], - [ - 42.0650634765625, - -21.90887451171875 - ], - [ - 56.0867919921875, - -25.414306640625 - ], - [ - 70.98480224609375, - -24.537933349609375 - ], - [ - 87.63555908203125, - -12.26898193359375 - ], - [ - 94.64642333984375, - 0.876373291015625 - ], - [ - 99.02825927734375, - 17.527130126953125 - ], - [ - 99.02825927734375, - 41.188751220703125 - ], - [ - 90.26470947265625, - 71.8612060546875 - ], - [ - 72.73760986328125, - 119.1844482421875 - ], - [ - 63.9739990234375, - 143.722412109375 - ], - [ - 57.8394775390625, - 160.37322998046875 - ], - [ - 50.82867431640625, - 171.76580810546875 - ], - [ - 42.94146728515625, - 179.65301513671875 - ], - [ - 35.05426025390625, - 184.0347900390625 - ], - [ - 30.6724853515625, - 184.9111328125 - ], - [ - 28.04339599609375, - 184.0347900390625 - ], - [ - 23.66162109375, - 177.90032958984375 - ], - [ - 23.66162109375, - 177.90032958984375 - ] - ], - "pressures": [ - 0.0927734375, - 0.203125, - 0.224609375, - 0.2880859375, - 0.4033203125, - 0.5224609375, - 0.666015625, - 0.8115234375, - 0.8349609375, - 0.8720703125, - 0.9169921875, - 1, - 1, - 1, - 1, - 0.9794921875, - 0.8447265625, - 0.54296875, - 0.31640625, - 0.2578125, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.66162109375, - 177.90032958984375 - ] - }, - { - "id": "fU8nov4Xqpw-uedL3OHkB", - "type": "freedraw", - "x": -187.62240600585938, - "y": -165.87775421142578, - "width": 69.2320556640625, - "height": 119.18441772460938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 17745229, - "version": 853, - "versionNonce": 964268323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - 7.88720703125 - ], - [ - -6.13446044921875, - 17.527130126953125 - ], - [ - -7.01080322265625, - 28.919769287109375 - ], - [ - -5.25811767578125, - 36.806976318359375 - ], - [ - 0, - 44.694183349609375 - ], - [ - 3.50543212890625, - 45.570526123046875 - ], - [ - 7.0108642578125, - 46.446868896484375 - ], - [ - 15.7744140625, - 46.446868896484375 - ], - [ - 34.17791748046875, - 40.312408447265625 - ], - [ - 47.32330322265625, - 33.301544189453125 - ], - [ - 56.96319580078125, - 22.785247802734375 - ], - [ - 61.34490966796875, - 9.639923095703125 - ], - [ - 62.22125244140625, - -4.38177490234375 - ], - [ - 56.96319580078125, - -28.04339599609375 - ], - [ - 50.82867431640625, - -42.941436767578125 - ], - [ - 43.81781005859375, - -55.210418701171875 - ], - [ - 36.80694580078125, - -63.097625732421875 - ], - [ - 28.91973876953125, - -70.10848999023438 - ], - [ - 25.41436767578125, - -71.8612060546875 - ], - [ - 24.53802490234375, - -72.737548828125 - ], - [ - 24.53802490234375, - -70.98480224609375 - ], - [ - 24.53802490234375, - -70.98480224609375 - ] - ], - "pressures": [ - 0.0908203125, - 0.3564453125, - 0.4853515625, - 0.712890625, - 0.8369140625, - 0.8916015625, - 0.9189453125, - 0.923828125, - 0.9296875, - 0.9296875, - 0.947265625, - 0.947265625, - 0.953125, - 0.9599609375, - 0.953125, - 0.9296875, - 0.8955078125, - 0.8427734375, - 0.7265625, - 0.5341796875, - 0.3017578125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.53802490234375, - -70.98480224609375 - ] - }, - { - "id": "moqXf-C535y-2prh-ES__", - "type": "freedraw", - "x": -185.86965942382812, - "y": -241.24433135986328, - "width": 48.1995849609375, - "height": 124.4425048828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 441584995, - "version": 858, - "versionNonce": 1635632781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -5.2581787109375 - ], - [ - -0.8763427734375, - -7.887237548828125 - ], - [ - 0.8763427734375, - -12.269012451171875 - ], - [ - 1.752685546875, - -15.774444580078125 - ], - [ - 2.6290283203125, - -17.527130126953125 - ], - [ - 4.38177490234375, - -17.527130126953125 - ], - [ - 12.26898193359375, - -9.63995361328125 - ], - [ - 17.527099609375, - -2.629119873046875 - ], - [ - 21.0325927734375, - 7.01080322265625 - ], - [ - 23.66162109375, - 28.043365478515625 - ], - [ - 23.66162109375, - 45.570465087890625 - ], - [ - 18.4034423828125, - 63.97393798828125 - ], - [ - 12.26898193359375, - 79.74835205078125 - ], - [ - 7.0108642578125, - 89.38827514648438 - ], - [ - 3.50543212890625, - 95.52279663085938 - ], - [ - -1.75274658203125, - 102.53359985351562 - ], - [ - -5.2581787109375, - 105.16268920898438 - ], - [ - -8.7635498046875, - 106.91537475585938 - ], - [ - -14.8980712890625, - 104.28634643554688 - ], - [ - -19.27984619140625, - 99.90457153320312 - ], - [ - -21.908935546875, - 95.52279663085938 - ], - [ - -23.66162109375, - 92.01736450195312 - ], - [ - -24.5379638671875, - 88.51193237304688 - ], - [ - -24.5379638671875, - 85.00650024414062 - ], - [ - -24.5379638671875, - 82.37744140625 - ], - [ - -24.5379638671875, - 83.2537841796875 - ], - [ - -24.5379638671875, - 83.2537841796875 - ] - ], - "pressures": [ - 0.01953125, - 0.1435546875, - 0.205078125, - 0.3017578125, - 0.423828125, - 0.5283203125, - 0.6376953125, - 0.7783203125, - 0.8095703125, - 0.8427734375, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9189453125, - 0.8720703125, - 0.79296875, - 0.6220703125, - 0.404296875, - 0.279296875, - 0.177734375, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -24.5379638671875, - 83.2537841796875 - ] - }, - { - "id": "qYFkPr8Oj3WJNwDfDV7U8", - "type": "freedraw", - "x": -189.37509155273438, - "y": -159.7432632446289, - "width": 69.23211669921875, - "height": 132.32974243164062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1648105379, - "version": 861, - "versionNonce": 1393652931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558533, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - 8.7635498046875 - ], - [ - -3.50543212890625, - 12.26898193359375 - ], - [ - -3.50543212890625, - 14.8980712890625 - ], - [ - 3.50543212890625, - 24.5379638671875 - ], - [ - 9.639892578125, - 32.4251708984375 - ], - [ - 15.7744140625, - 37.68328857421875 - ], - [ - 21.90887451171875, - 40.3123779296875 - ], - [ - 26.29071044921875, - 41.188720703125 - ], - [ - 31.54876708984375, - 40.3123779296875 - ], - [ - 40.31231689453125, - 34.17791748046875 - ], - [ - 44.69415283203125, - 26.29071044921875 - ], - [ - 48.19952392578125, - 15.7744140625 - ], - [ - 56.08673095703125, - -0.8763427734375 - ], - [ - 61.34490966796875, - -12.26898193359375 - ], - [ - 63.09759521484375, - -22.785247802734375 - ], - [ - 63.09759521484375, - -34.177886962890625 - ], - [ - 57.83953857421875, - -46.446868896484375 - ], - [ - 49.07598876953125, - -59.592193603515625 - ], - [ - 34.17791748046875, - -77.99569702148438 - ], - [ - 25.41436767578125, - -86.75924682617188 - ], - [ - 20.15618896484375, - -90.2646484375 - ], - [ - 14.8980712890625, - -91.14102172851562 - ], - [ - 9.639892578125, - -91.14102172851562 - ], - [ - 7.0108642578125, - -91.14102172851562 - ], - [ - 3.50543212890625, - -91.14102172851562 - ], - [ - -0.8763427734375, - -91.14102172851562 - ], - [ - -3.50543212890625, - -88.511962890625 - ], - [ - -6.134521484375, - -85.00653076171875 - ], - [ - -6.134521484375, - -84.13018798828125 - ], - [ - -6.134521484375, - -84.13018798828125 - ] - ], - "pressures": [ - 0.1044921875, - 0.1650390625, - 0.2041015625, - 0.2509765625, - 0.4482421875, - 0.626953125, - 0.744140625, - 0.79296875, - 0.8115234375, - 0.82421875, - 0.853515625, - 0.8740234375, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.927734375, - 0.734375, - 0.5458984375, - 0.361328125, - 0.1455078125, - 0.0302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.134521484375, - -84.13018798828125 - ] - }, - { - "id": "PHfY8MSUF1n2CSKJrHrAy", - "type": "freedraw", - "x": -189.37509155273438, - "y": -151.8560562133789, - "width": 78.8720703125, - "height": 120.9371337890625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 720711725, - "version": 861, - "versionNonce": 947875053, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 2.62908935546875 - ], - [ - -1.75274658203125, - 3.50543212890625 - ], - [ - -1.75274658203125, - 5.25811767578125 - ], - [ - 3.50543212890625, - 10.51629638671875 - ], - [ - 10.51629638671875, - 13.14532470703125 - ], - [ - 16.6507568359375, - 15.7744140625 - ], - [ - 22.78521728515625, - 16.6507568359375 - ], - [ - 29.79608154296875, - 16.6507568359375 - ], - [ - 42.94146728515625, - 14.021728515625 - ], - [ - 52.58135986328125, - 9.639892578125 - ], - [ - 62.22125244140625, - 0.8763427734375 - ], - [ - 70.98480224609375, - -8.7635498046875 - ], - [ - 76.24298095703125, - -18.403472900390625 - ], - [ - 77.11932373046875, - -32.4251708984375 - ], - [ - 77.11932373046875, - -43.81781005859375 - ], - [ - 75.36663818359375, - -56.963134765625 - ], - [ - 72.73748779296875, - -70.10848999023438 - ], - [ - 70.98480224609375, - -75.36660766601562 - ], - [ - 56.08673095703125, - -94.64645385742188 - ], - [ - 46.44683837890625, - -101.65728759765625 - ], - [ - 43.81781005859375, - -102.53363037109375 - ], - [ - 35.93060302734375, - -104.286376953125 - ], - [ - 31.54876708984375, - -103.41000366210938 - ], - [ - 28.91973876953125, - -101.65728759765625 - ], - [ - 28.04339599609375, - -99.90460205078125 - ], - [ - 25.41436767578125, - -96.399169921875 - ], - [ - 21.90887451171875, - -93.77008056640625 - ], - [ - 18.4034423828125, - -91.14102172851562 - ], - [ - 17.527099609375, - -91.14102172851562 - ], - [ - 17.527099609375, - -91.14102172851562 - ] - ], - "pressures": [ - 0.0478515625, - 0.248046875, - 0.47265625, - 0.50390625, - 0.5625, - 0.66796875, - 0.7568359375, - 0.8095703125, - 0.859375, - 0.9111328125, - 0.94921875, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8662109375, - 0.6357421875, - 0.390625, - 0.197265625, - 0.134765625, - 0.07421875, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.527099609375, - -91.14102172851562 - ] - }, - { - "id": "08m1RmQqoVOtzIFfWn2-g", - "type": "freedraw", - "x": -187.62240600585938, - "y": -235.98624420166016, - "width": 66.60308837890625, - "height": 108.66815185546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 516221699, - "version": 861, - "versionNonce": 590079075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -5.258087158203125 - ], - [ - 0, - -6.134490966796875 - ], - [ - 0.87640380859375, - -7.010833740234375 - ], - [ - 5.2581787109375, - -8.7635498046875 - ], - [ - 14.021728515625, - -12.26898193359375 - ], - [ - 20.15618896484375, - -14.898040771484375 - ], - [ - 23.66168212890625, - -16.6507568359375 - ], - [ - 25.41436767578125, - -16.6507568359375 - ], - [ - 30.67242431640625, - -14.898040771484375 - ], - [ - 35.05426025390625, - -11.392608642578125 - ], - [ - 38.55963134765625, - -5.258087158203125 - ], - [ - 40.31243896484375, - 4.38177490234375 - ], - [ - 41.18878173828125, - 16.650787353515625 - ], - [ - 40.31243896484375, - 34.177886962890625 - ], - [ - 36.80694580078125, - 45.570526123046875 - ], - [ - 32.42523193359375, - 56.963165283203125 - ], - [ - 27.16705322265625, - 68.35577392578125 - ], - [ - 18.40350341796875, - 77.99569702148438 - ], - [ - 13.1453857421875, - 81.5010986328125 - ], - [ - 5.2581787109375, - 85.00653076171875 - ], - [ - -4.38177490234375, - 88.511962890625 - ], - [ - -12.26898193359375, - 91.14105224609375 - ], - [ - -20.15618896484375, - 92.01739501953125 - ], - [ - -22.78521728515625, - 91.14105224609375 - ], - [ - -25.414306640625, - 88.511962890625 - ], - [ - -25.414306640625, - 85.88287353515625 - ], - [ - -25.414306640625, - 82.37750244140625 - ], - [ - -21.90887451171875, - 79.7484130859375 - ], - [ - -19.27978515625, - 78.87203979492188 - ], - [ - -19.27978515625, - 78.87203979492188 - ] - ], - "pressures": [ - 0.08984375, - 0.1982421875, - 0.248046875, - 0.3447265625, - 0.5068359375, - 0.6318359375, - 0.736328125, - 0.8642578125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96875, - 0.712890625, - 0.423828125, - 0.234375, - 0.1396484375, - 0.0947265625, - 0.0693359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.27978515625, - 78.87203979492188 - ] - }, - { - "id": "aThVgxePx2fTMocpX1nlZ", - "type": "freedraw", - "x": -192.00418090820312, - "y": -148.35062408447266, - "width": 71.86114501953125, - "height": 96.39913940429688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1730242253, - "version": 858, - "versionNonce": 1631405901, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - 1.752685546875 - ], - [ - -6.13446044921875, - 2.62908935546875 - ], - [ - -6.13446044921875, - 5.25811767578125 - ], - [ - -3.50543212890625, - 7.0108642578125 - ], - [ - -1.752685546875, - 7.88720703125 - ], - [ - 2.62908935546875, - 7.88720703125 - ], - [ - 13.1453857421875, - 7.0108642578125 - ], - [ - 22.7852783203125, - 5.25811767578125 - ], - [ - 34.1778564453125, - 1.752685546875 - ], - [ - 44.6942138671875, - -2.62908935546875 - ], - [ - 58.7158203125, - -13.145355224609375 - ], - [ - 64.850341796875, - -21.032562255859375 - ], - [ - 65.7266845703125, - -28.919769287109375 - ], - [ - 65.7266845703125, - -37.683319091796875 - ], - [ - 63.09765625, - -47.3232421875 - ], - [ - 58.7158203125, - -63.9739990234375 - ], - [ - 55.21044921875, - -72.737548828125 - ], - [ - 50.82861328125, - -77.99569702148438 - ], - [ - 45.570556640625, - -80.624755859375 - ], - [ - 37.683349609375, - -81.50112915039062 - ], - [ - 26.2906494140625, - -85.00653076171875 - ], - [ - 19.27984619140625, - -87.6356201171875 - ], - [ - 14.021728515625, - -88.51193237304688 - ], - [ - 10.51629638671875, - -88.51193237304688 - ], - [ - 8.7635498046875, - -85.88290405273438 - ], - [ - 8.7635498046875, - -85.00653076171875 - ], - [ - 8.7635498046875, - -85.00653076171875 - ] - ], - "pressures": [ - 0.009765625, - 0.2490234375, - 0.3291015625, - 0.3994140625, - 0.4619140625, - 0.5400390625, - 0.6181640625, - 0.71875, - 0.7705078125, - 0.8095703125, - 0.8095703125, - 0.830078125, - 0.8515625, - 0.849609375, - 0.849609375, - 0.8427734375, - 0.8203125, - 0.802734375, - 0.794921875, - 0.78515625, - 0.720703125, - 0.59375, - 0.5029296875, - 0.41796875, - 0.296875, - 0.1357421875, - 0.0048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.7635498046875, - -85.00653076171875 - ] - }, - { - "id": "wQpGGR4RojK2xcZalwKYK", - "type": "freedraw", - "x": -180.61154174804688, - "y": -235.98624420166016, - "width": 64.850341796875, - "height": 120.06076049804688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 466518157, - "version": 855, - "versionNonce": 1368875011, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -3.505401611328125 - ], - [ - 0, - -6.134490966796875 - ], - [ - 1.75274658203125, - -7.88720703125 - ], - [ - 5.25811767578125, - -13.14532470703125 - ], - [ - 7.88720703125, - -16.6507568359375 - ], - [ - 10.51629638671875, - -18.4034423828125 - ], - [ - 12.26898193359375, - -19.279815673828125 - ], - [ - 14.89801025390625, - -19.279815673828125 - ], - [ - 20.15618896484375, - -14.02166748046875 - ], - [ - 24.53802490234375, - -6.134490966796875 - ], - [ - 27.16705322265625, - 3.505462646484375 - ], - [ - 28.04339599609375, - 14.8980712890625 - ], - [ - 22.78521728515625, - 32.4251708984375 - ], - [ - 16.65081787109375, - 47.3232421875 - ], - [ - 11.39263916015625, - 63.9739990234375 - ], - [ - 6.134521484375, - 79.7484130859375 - ], - [ - -3.50543212890625, - 95.5228271484375 - ], - [ - -9.639892578125, - 99.90460205078125 - ], - [ - -15.7744140625, - 100.78094482421875 - ], - [ - -21.90887451171875, - 100.78094482421875 - ], - [ - -28.04339599609375, - 99.90460205078125 - ], - [ - -35.05426025390625, - 99.90460205078125 - ], - [ - -36.80694580078125, - 99.90460205078125 - ], - [ - -36.80694580078125, - 99.90460205078125 - ] - ], - "pressures": [ - 0.021484375, - 0.11328125, - 0.1728515625, - 0.220703125, - 0.318359375, - 0.396484375, - 0.470703125, - 0.5458984375, - 0.646484375, - 0.708984375, - 0.7265625, - 0.73046875, - 0.7421875, - 0.8369140625, - 0.9169921875, - 0.9453125, - 0.9453125, - 0.9345703125, - 0.9189453125, - 0.8876953125, - 0.6806640625, - 0.4248046875, - 0.1875, - 0.109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -36.80694580078125, - 99.90460205078125 - ] - }, - { - "id": "wnPeAfOyZYriqz7_x6AfV", - "type": "freedraw", - "x": -196.38595581054688, - "y": -146.59793853759766, - "width": 87.6356201171875, - "height": 140.21694946289062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1993261507, - "version": 859, - "versionNonce": 1041290669, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - 0 - ], - [ - -7.88720703125, - 3.50543212890625 - ], - [ - -9.639892578125, - 4.38177490234375 - ], - [ - -11.39263916015625, - 5.2581787109375 - ], - [ - -9.639892578125, - 5.2581787109375 - ], - [ - -4.38177490234375, - 6.134521484375 - ], - [ - 1.75274658203125, - 6.134521484375 - ], - [ - 8.7635498046875, - 6.134521484375 - ], - [ - 18.40350341796875, - 7.0108642578125 - ], - [ - 23.66162109375, - 7.0108642578125 - ], - [ - 30.67242431640625, - 4.38177490234375 - ], - [ - 42.06512451171875, - -3.50543212890625 - ], - [ - 50.82867431640625, - -11.392608642578125 - ], - [ - 60.46856689453125, - -21.03253173828125 - ], - [ - 67.47943115234375, - -32.425140380859375 - ], - [ - 73.61395263671875, - -45.57049560546875 - ], - [ - 75.36663818359375, - -59.592193603515625 - ], - [ - 76.24298095703125, - -77.11929321289062 - ], - [ - 74.49029541015625, - -87.63558959960938 - ], - [ - 71.86126708984375, - -97.2755126953125 - ], - [ - 67.47943115234375, - -112.17352294921875 - ], - [ - 63.09759521484375, - -120.06076049804688 - ], - [ - 56.08685302734375, - -125.31887817382812 - ], - [ - 48.19964599609375, - -128.82431030273438 - ], - [ - 42.94146728515625, - -132.32974243164062 - ], - [ - 39.43597412109375, - -133.20608520507812 - ], - [ - 38.55963134765625, - -133.20608520507812 - ], - [ - 38.55963134765625, - -133.20608520507812 - ] - ], - "pressures": [ - 0.017578125, - 0.2666015625, - 0.2763671875, - 0.322265625, - 0.375, - 0.4619140625, - 0.4609375, - 0.4775390625, - 0.5, - 0.5263671875, - 0.5458984375, - 0.5625, - 0.5849609375, - 0.61328125, - 0.64453125, - 0.6591796875, - 0.677734375, - 0.6787109375, - 0.673828125, - 0.66015625, - 0.6376953125, - 0.537109375, - 0.443359375, - 0.3369140625, - 0.248046875, - 0.16796875, - 0.1064453125, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 38.55963134765625, - -133.20608520507812 - ] - }, - { - "id": "D5wSNu-tqYXkYU78IM3yX", - "type": "freedraw", - "x": -241.08010864257812, - "y": -210.57190704345703, - "width": 170.889404296875, - "height": 92.01736450195312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 63592483, - "version": 843, - "versionNonce": 139618211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 17.527099609375, - 6.134490966796875 - ], - [ - 39.43603515625, - 14.898040771484375 - ], - [ - 65.7266845703125, - 25.414337158203125 - ], - [ - 89.3883056640625, - 37.683319091796875 - ], - [ - 118.30810546875, - 56.086761474609375 - ], - [ - 134.08251953125, - 67.47940063476562 - ], - [ - 148.9805908203125, - 77.11935424804688 - ], - [ - 160.3731689453125, - 85.88290405273438 - ], - [ - 169.13671875, - 92.01736450195312 - ], - [ - 170.889404296875, - 92.01736450195312 - ], - [ - 170.889404296875, - 91.14102172851562 - ], - [ - 170.0130615234375, - 88.51193237304688 - ], - [ - 168.2603759765625, - 87.63558959960938 - ], - [ - 168.2603759765625, - 87.63558959960938 - ] - ], - "pressures": [ - 0.09375, - 0.287109375, - 0.427734375, - 0.640625, - 0.783203125, - 0.9111328125, - 0.9189453125, - 0.8876953125, - 0.736328125, - 0.466796875, - 0.345703125, - 0.1474609375, - 0.0791015625, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 168.2603759765625, - 87.63558959960938 - ] - }, - { - "id": "7mebxQSAjG3TyMN-5KeEo", - "type": "freedraw", - "x": -239.32736206054688, - "y": -193.92115020751953, - "width": 141.96966552734375, - "height": 63.973968505859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1568163843, - "version": 843, - "versionNonce": 706975757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 20.15618896484375, - -0.8763427734375 - ], - [ - 40.3123779296875, - 2.62908935546875 - ], - [ - 62.22125244140625, - 9.639923095703125 - ], - [ - 82.37738037109375, - 17.527130126953125 - ], - [ - 99.02825927734375, - 26.290679931640625 - ], - [ - 116.55535888671875, - 39.436004638671875 - ], - [ - 126.19525146484375, - 46.446868896484375 - ], - [ - 133.20611572265625, - 52.581390380859375 - ], - [ - 138.46417236328125, - 57.839508056640625 - ], - [ - 141.96966552734375, - 62.221282958984375 - ], - [ - 141.96966552734375, - 63.097625732421875 - ], - [ - 141.09332275390625, - 63.097625732421875 - ], - [ - 138.46417236328125, - 63.097625732421875 - ], - [ - 138.46417236328125, - 63.097625732421875 - ] - ], - "pressures": [ - 0.005859375, - 0.4208984375, - 0.6533203125, - 0.87890625, - 1, - 1, - 1, - 1, - 1, - 0.884765625, - 0.49609375, - 0.37109375, - 0.1640625, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 138.46417236328125, - 63.097625732421875 - ] - }, - { - "id": "inZmR74_udjd_zHMyoi1a", - "type": "freedraw", - "x": -147.30996704101562, - "y": -156.23783111572266, - "width": 92.01739501953125, - "height": 30.6724853515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 494785795, - "version": 836, - "versionNonce": 764115779, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -5.2581787109375, - 0 - ], - [ - -17.527099609375, - 2.62908935546875 - ], - [ - -30.6724853515625, - 6.13446044921875 - ], - [ - -45.570556640625, - 10.51629638671875 - ], - [ - -61.344970703125, - 16.6507568359375 - ], - [ - -74.49029541015625, - 21.90887451171875 - ], - [ - -86.75927734375, - 28.04339599609375 - ], - [ - -91.14105224609375, - 29.79608154296875 - ], - [ - -92.01739501953125, - 30.6724853515625 - ], - [ - -89.38836669921875, - 30.6724853515625 - ], - [ - -86.75927734375, - 30.6724853515625 - ], - [ - -86.75927734375, - 30.6724853515625 - ] - ], - "pressures": [ - 0.015625, - 0.3583984375, - 0.4033203125, - 0.5341796875, - 0.625, - 0.697265625, - 0.734375, - 0.7724609375, - 0.80078125, - 0.8173828125, - 0.826171875, - 0.134765625, - 0.0380859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -86.75927734375, - 30.6724853515625 - ] - }, - { - "id": "hTwgm8_LBf8q01L5qgr-o", - "type": "freedraw", - "x": -149.93911743164062, - "y": -152.7323989868164, - "width": 70.98486328125, - "height": 42.06512451171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 71049933, - "version": 836, - "versionNonce": 1601113709, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.629150390625, - -2.62908935546875 - ], - [ - 1.7528076171875, - -2.62908935546875 - ], - [ - -5.258056640625, - -1.75274658203125 - ], - [ - -12.2689208984375, - 1.752685546875 - ], - [ - -53.45770263671875, - 28.04339599609375 - ], - [ - -56.96307373046875, - 31.548828125 - ], - [ - -63.97393798828125, - 35.93060302734375 - ], - [ - -67.4793701171875, - 38.55963134765625 - ], - [ - -68.355712890625, - 39.43603515625 - ], - [ - -67.4793701171875, - 39.43603515625 - ], - [ - -65.7266845703125, - 37.68328857421875 - ], - [ - -64.85028076171875, - 37.68328857421875 - ], - [ - -64.85028076171875, - 37.68328857421875 - ] - ], - "pressures": [ - 0.0087890625, - 0.1533203125, - 0.3828125, - 0.4619140625, - 0.529296875, - 0.8720703125, - 0.880859375, - 0.8876953125, - 0.884765625, - 0.79296875, - 0.1015625, - 0.06640625, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -64.85028076171875, - 37.68328857421875 - ] - }, - { - "id": "gnL93zoeyMBboeFOqUcCt", - "type": "freedraw", - "x": -131.53555297851562, - "y": -153.6087417602539, - "width": 59.59222412109375, - "height": 25.414337158203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1001777251, - "version": 845, - "versionNonce": 1570839267, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.3818359375, - -3.505462646484375 - ], - [ - -5.2581787109375, - -3.505462646484375 - ], - [ - -6.134521484375, - -3.505462646484375 - ], - [ - -5.2581787109375, - -3.505462646484375 - ], - [ - -0.8763427734375, - -0.87640380859375 - ], - [ - 5.258056640625, - 4.38177490234375 - ], - [ - 7.88720703125, - 7.88720703125 - ], - [ - 9.639892578125, - 10.5162353515625 - ], - [ - 11.392578125, - 12.26898193359375 - ], - [ - 11.392578125, - 13.14532470703125 - ], - [ - 6.1343994140625, - 15.7744140625 - ], - [ - -2.629150390625, - 17.527099609375 - ], - [ - -13.1453857421875, - 17.527099609375 - ], - [ - -23.66162109375, - 17.527099609375 - ], - [ - -36.8070068359375, - 18.4034423828125 - ], - [ - -42.94146728515625, - 20.15618896484375 - ], - [ - -47.3232421875, - 21.03253173828125 - ], - [ - -48.19964599609375, - 21.90887451171875 - ], - [ - -46.4468994140625, - 21.90887451171875 - ], - [ - -42.94146728515625, - 21.03253173828125 - ], - [ - -41.18878173828125, - 20.15618896484375 - ], - [ - -41.18878173828125, - 20.15618896484375 - ] - ], - "pressures": [ - 0.0634765625, - 0.255859375, - 0.3232421875, - 0.48046875, - 0.697265625, - 0.859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2470703125, - 0.134765625, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -41.18878173828125, - 20.15618896484375 - ] - }, - { - "id": "fPpnl-Pil2PwKZ1EZk6Nt", - "type": "freedraw", - "x": -136.79373168945312, - "y": -155.36148834228516, - "width": 90.26470947265625, - "height": 22.785247802734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2083386979, - "version": 847, - "versionNonce": 482130125, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -1.752716064453125 - ], - [ - -1.752685546875, - -0.8763427734375 - ], - [ - 1.752685546875, - 0 - ], - [ - 5.2581787109375, - 1.75274658203125 - ], - [ - 9.639892578125, - 3.50543212890625 - ], - [ - 12.26904296875, - 6.134521484375 - ], - [ - 14.021728515625, - 8.7635498046875 - ], - [ - 14.021728515625, - 11.39263916015625 - ], - [ - 13.1453857421875, - 14.021728515625 - ], - [ - 7.88720703125, - 15.7744140625 - ], - [ - 0, - 18.40350341796875 - ], - [ - -9.639892578125, - 20.15618896484375 - ], - [ - -20.15625, - 21.03253173828125 - ], - [ - -31.548828125, - 21.03253173828125 - ], - [ - -48.1995849609375, - 19.27984619140625 - ], - [ - -57.8394775390625, - 17.52716064453125 - ], - [ - -64.850341796875, - 15.7744140625 - ], - [ - -72.737548828125, - 14.021728515625 - ], - [ - -74.49029541015625, - 13.14532470703125 - ], - [ - -75.36663818359375, - 13.14532470703125 - ], - [ - -76.24298095703125, - 13.14532470703125 - ], - [ - -75.36663818359375, - 14.021728515625 - ], - [ - -74.49029541015625, - 14.021728515625 - ], - [ - -74.49029541015625, - 14.021728515625 - ] - ], - "pressures": [ - 0.0771484375, - 0.3623046875, - 0.6220703125, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8349609375, - 0.4140625, - 0.1064453125, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -74.49029541015625, - 14.021728515625 - ] - }, - { - "id": "8Nzq-cWEufv4y1TJ5lOaD", - "type": "freedraw", - "x": -138.54641723632812, - "y": -156.23783111572266, - "width": 93.7701416015625, - "height": 21.908905029296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 649691139, - "version": 845, - "versionNonce": 622970499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -1.752716064453125 - ], - [ - 0.8763427734375, - -1.752716064453125 - ], - [ - 3.50537109375, - -0.876373291015625 - ], - [ - 7.0108642578125, - 0 - ], - [ - 10.5162353515625, - 2.62908935546875 - ], - [ - 13.145263671875, - 5.25811767578125 - ], - [ - 14.021728515625, - 7.0108642578125 - ], - [ - 14.021728515625, - 8.7635498046875 - ], - [ - 12.2689208984375, - 11.39263916015625 - ], - [ - 5.258056640625, - 14.02166748046875 - ], - [ - -11.3927001953125, - 19.27984619140625 - ], - [ - -23.66162109375, - 20.15618896484375 - ], - [ - -37.683349609375, - 20.15618896484375 - ], - [ - -49.95233154296875, - 18.40350341796875 - ], - [ - -60.46856689453125, - 15.7744140625 - ], - [ - -68.35577392578125, - 14.8980712890625 - ], - [ - -74.49029541015625, - 12.26898193359375 - ], - [ - -77.119384765625, - 11.39263916015625 - ], - [ - -78.8720703125, - 11.39263916015625 - ], - [ - -79.7484130859375, - 10.51629638671875 - ], - [ - -77.119384765625, - 10.51629638671875 - ], - [ - -77.119384765625, - 10.51629638671875 - ] - ], - "pressures": [ - 0.08203125, - 0.64453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -77.119384765625, - 10.51629638671875 - ] - }, - { - "id": "hMB4cfaV8PXjFDjQSHkWb", - "type": "freedraw", - "x": -137.67007446289062, - "y": -157.11420440673828, - "width": 90.2646484375, - "height": 21.908905029296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1356320259, - "version": 848, - "versionNonce": 195434285, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - 2.6290283203125, - 0 - ], - [ - 6.134521484375, - 0.876373291015625 - ], - [ - 9.639892578125, - 3.505462646484375 - ], - [ - 13.1453857421875, - 6.134490966796875 - ], - [ - 16.6507568359375, - 10.516265869140625 - ], - [ - 18.4034423828125, - 13.145355224609375 - ], - [ - 19.27978515625, - 15.774444580078125 - ], - [ - 19.27978515625, - 17.527130126953125 - ], - [ - 16.6507568359375, - 19.279876708984375 - ], - [ - 4.3817138671875, - 21.032562255859375 - ], - [ - -7.88720703125, - 21.908905029296875 - ], - [ - -21.0325927734375, - 21.908905029296875 - ], - [ - -35.05426025390625, - 21.032562255859375 - ], - [ - -54.3341064453125, - 17.527130126953125 - ], - [ - -61.34490966796875, - 14.898040771484375 - ], - [ - -64.850341796875, - 13.145355224609375 - ], - [ - -67.47943115234375, - 12.269012451171875 - ], - [ - -68.35577392578125, - 11.392669677734375 - ], - [ - -69.23211669921875, - 11.392669677734375 - ], - [ - -70.1085205078125, - 11.392669677734375 - ], - [ - -70.98486328125, - 11.392669677734375 - ], - [ - -70.98486328125, - 12.269012451171875 - ], - [ - -70.1085205078125, - 12.269012451171875 - ], - [ - -70.1085205078125, - 12.269012451171875 - ] - ], - "pressures": [ - 0.0927734375, - 0.5498046875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.5224609375, - 0.20703125, - 0.087890625, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -70.1085205078125, - 12.269012451171875 - ] - }, - { - "id": "fdvO9EUcgciJedU3TemtW", - "type": "freedraw", - "x": -201.64407348632812, - "y": -141.33975982666016, - "width": 60.46856689453125, - "height": 94.646484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1738849933, - "version": 838, - "versionNonce": 2060189219, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.0108642578125, - 0 - ], - [ - 7.0108642578125, - -1.75274658203125 - ], - [ - 1.752685546875, - -5.2581787109375 - ], - [ - -5.25811767578125, - -10.51629638671875 - ], - [ - -21.03253173828125, - -22.7852783203125 - ], - [ - -32.4251708984375, - -34.17791748046875 - ], - [ - -42.06512451171875, - -44.694183349609375 - ], - [ - -51.70501708984375, - -57.839508056640625 - ], - [ - -53.45770263671875, - -64.85037231445312 - ], - [ - -53.45770263671875, - -70.98486328125 - ], - [ - -49.95233154296875, - -77.11935424804688 - ], - [ - -45.57049560546875, - -83.25384521484375 - ], - [ - -42.06512451171875, - -86.75924682617188 - ], - [ - -38.5596923828125, - -90.26470947265625 - ], - [ - -36.80694580078125, - -92.01739501953125 - ], - [ - -33.301513671875, - -93.77011108398438 - ], - [ - -30.6724853515625, - -94.646484375 - ], - [ - -28.91973876953125, - -90.26470947265625 - ], - [ - -28.91973876953125, - -90.26470947265625 - ] - ], - "pressures": [ - 0.068359375, - 0.4287109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.7685546875, - 0.412109375, - 0.09375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -28.91973876953125, - -90.26470947265625 - ] - }, - { - "id": "Zl6mOFlxsGBn4YZa25XDp", - "type": "freedraw", - "x": -206.90219116210938, - "y": -143.0925064086914, - "width": 28.04339599609375, - "height": 92.89373779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1931442787, - "version": 841, - "versionNonce": 1721018765, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.0108642578125, - 0 - ], - [ - -10.51629638671875, - 0 - ], - [ - -14.021728515625, - -1.752685546875 - ], - [ - -20.15618896484375, - -5.25811767578125 - ], - [ - -23.66162109375, - -9.639892578125 - ], - [ - -26.29071044921875, - -15.774383544921875 - ], - [ - -28.04339599609375, - -23.661590576171875 - ], - [ - -28.04339599609375, - -38.559661865234375 - ], - [ - -27.16705322265625, - -47.323211669921875 - ], - [ - -26.29071044921875, - -55.210418701171875 - ], - [ - -26.29071044921875, - -63.097625732421875 - ], - [ - -25.41436767578125, - -72.737548828125 - ], - [ - -21.0325927734375, - -85.00650024414062 - ], - [ - -18.40350341796875, - -89.38827514648438 - ], - [ - -16.65081787109375, - -91.14102172851562 - ], - [ - -14.8980712890625, - -92.89373779296875 - ], - [ - -12.26898193359375, - -92.89373779296875 - ], - [ - -10.51629638671875, - -92.89373779296875 - ], - [ - -7.0108642578125, - -92.89373779296875 - ], - [ - -4.3818359375, - -92.89373779296875 - ], - [ - -0.87640380859375, - -92.89373779296875 - ], - [ - -0.87640380859375, - -92.89373779296875 - ] - ], - "pressures": [ - 0.0703125, - 0.9296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4716796875, - 0.2373046875, - 0.1650390625, - 0.0869140625, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.87640380859375, - -92.89373779296875 - ] - }, - { - "id": "YG0_BzIhY1wNvRB3CWzjf", - "type": "freedraw", - "x": -197.26229858398438, - "y": -142.2161636352539, - "width": 36.80694580078125, - "height": 101.65728759765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 230530883, - "version": 840, - "versionNonce": 2039366083, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.0108642578125, - -2.6290283203125 - ], - [ - -10.51629638671875, - -3.50537109375 - ], - [ - -14.8980712890625, - -5.25811767578125 - ], - [ - -22.7852783203125, - -7.88720703125 - ], - [ - -27.16705322265625, - -12.26898193359375 - ], - [ - -32.4251708984375, - -18.4034423828125 - ], - [ - -35.05426025390625, - -28.919708251953125 - ], - [ - -36.80694580078125, - -41.188720703125 - ], - [ - -36.80694580078125, - -56.963104248046875 - ], - [ - -35.05426025390625, - -65.7266845703125 - ], - [ - -32.4251708984375, - -72.73751831054688 - ], - [ - -29.79608154296875, - -80.62472534179688 - ], - [ - -27.16705322265625, - -87.63558959960938 - ], - [ - -25.414306640625, - -94.64639282226562 - ], - [ - -24.5379638671875, - -98.15185546875 - ], - [ - -23.66162109375, - -99.90457153320312 - ], - [ - -23.66162109375, - -100.78091430664062 - ], - [ - -22.7852783203125, - -101.65728759765625 - ], - [ - -21.90887451171875, - -100.78091430664062 - ], - [ - -21.03253173828125, - -100.78091430664062 - ], - [ - -21.03253173828125, - -100.78091430664062 - ] - ], - "pressures": [ - 0.0439453125, - 0.5234375, - 0.78515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.376953125, - 0.158203125, - 0.080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -21.03253173828125, - -100.78091430664062 - ] - }, - { - "id": "wCS66PzmYvsxftTvAO4CD", - "type": "freedraw", - "x": -199.89138793945312, - "y": -140.46341705322266, - "width": 33.301513671875, - "height": 101.65731811523438, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1026934061, - "version": 836, - "versionNonce": 1589768173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - -4.38177490234375 - ], - [ - -14.02166748046875, - -7.88720703125 - ], - [ - -19.27978515625, - -12.26898193359375 - ], - [ - -25.414306640625, - -20.15618896484375 - ], - [ - -31.548828125, - -35.93060302734375 - ], - [ - -33.301513671875, - -46.446868896484375 - ], - [ - -33.301513671875, - -56.963165283203125 - ], - [ - -33.301513671875, - -67.47943115234375 - ], - [ - -32.4251708984375, - -80.624755859375 - ], - [ - -29.79608154296875, - -87.63558959960938 - ], - [ - -27.1669921875, - -92.89373779296875 - ], - [ - -24.5379638671875, - -96.39913940429688 - ], - [ - -21.03253173828125, - -98.15188598632812 - ], - [ - -17.527099609375, - -100.78091430664062 - ], - [ - -15.7744140625, - -100.78091430664062 - ], - [ - -14.89801025390625, - -101.65731811523438 - ], - [ - -14.89801025390625, - -101.65731811523438 - ] - ], - "pressures": [ - 0.0849609375, - 0.37890625, - 0.5595703125, - 0.7724609375, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 0.9189453125, - 0.748046875, - 0.541015625, - 0.3017578125, - 0.16015625, - 0.0849609375, - 0.0205078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.89801025390625, - -101.65731811523438 - ] - }, - { - "id": "d5KunOO1N-MMyCKGs_K3d", - "type": "freedraw", - "x": -170.97164916992188, - "y": -174.64130401611328, - "width": 74.49029541015625, - "height": 75.36663818359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 454033603, - "version": 843, - "versionNonce": 1518801251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -5.258148193359375 - ], - [ - -4.38177490234375, - -11.39263916015625 - ], - [ - 1.75274658203125, - -20.15618896484375 - ], - [ - 10.51629638671875, - -30.672454833984375 - ], - [ - 21.90887451171875, - -40.3123779296875 - ], - [ - 30.67254638671875, - -47.3232421875 - ], - [ - 41.18878173828125, - -49.952301025390625 - ], - [ - 47.32330322265625, - -49.952301025390625 - ], - [ - 53.45770263671875, - -45.570526123046875 - ], - [ - 57.83953857421875, - -36.806976318359375 - ], - [ - 55.21051025390625, - -19.27984619140625 - ], - [ - 43.81781005859375, - -6.134490966796875 - ], - [ - 27.16705322265625, - 6.134490966796875 - ], - [ - 10.51629638671875, - 15.7744140625 - ], - [ - -4.38177490234375, - 21.032562255859375 - ], - [ - -14.89801025390625, - 19.279815673828125 - ], - [ - -16.6507568359375, - 9.639923095703125 - ], - [ - -15.77435302734375, - -2.62908935546875 - ], - [ - -10.5162353515625, - -14.021697998046875 - ], - [ - -2.6290283203125, - -26.290679931640625 - ], - [ - 4.38177490234375, - -34.177886962890625 - ], - [ - 13.14532470703125, - -42.065093994140625 - ], - [ - 22.78533935546875, - -49.952301025390625 - ], - [ - 27.16705322265625, - -53.45770263671875 - ], - [ - 34.17791748046875, - -54.334075927734375 - ], - [ - 34.17791748046875, - -49.952301025390625 - ], - [ - 34.17791748046875, - -49.952301025390625 - ] - ], - "pressures": [ - 0.0771484375, - 0.3720703125, - 0.55078125, - 0.8203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.388671875, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.17791748046875, - -49.952301025390625 - ] - }, - { - "id": "iVQXXV3XbXIpFO1Fv3EUJ", - "type": "freedraw", - "x": -181.48788452148438, - "y": -176.3940200805664, - "width": 67.4793701171875, - "height": 68.35577392578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1352249229, - "version": 846, - "versionNonce": 1110927949, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -7.88720703125 - ], - [ - 0, - -15.7744140625 - ], - [ - 7.0108642578125, - -24.5379638671875 - ], - [ - 16.65081787109375, - -35.05426025390625 - ], - [ - 30.67242431640625, - -47.323211669921875 - ], - [ - 35.05426025390625, - -52.58135986328125 - ], - [ - 36.80694580078125, - -53.457733154296875 - ], - [ - 38.55963134765625, - -53.457733154296875 - ], - [ - 46.44683837890625, - -51.704986572265625 - ], - [ - 51.70501708984375, - -46.446868896484375 - ], - [ - 54.33404541015625, - -35.05426025390625 - ], - [ - 54.33404541015625, - -21.908905029296875 - ], - [ - 46.44683837890625, - -8.7635498046875 - ], - [ - 28.91973876953125, - 6.134490966796875 - ], - [ - 19.27984619140625, - 11.39263916015625 - ], - [ - 12.26898193359375, - 11.39263916015625 - ], - [ - 4.38177490234375, - 10.516265869140625 - ], - [ - -8.7635498046875, - 1.752716064453125 - ], - [ - -13.14532470703125, - -6.134490966796875 - ], - [ - -13.14532470703125, - -15.7744140625 - ], - [ - -4.38177490234375, - -26.290679931640625 - ], - [ - 6.13446044921875, - -37.683319091796875 - ], - [ - 19.27984619140625, - -49.952301025390625 - ], - [ - 23.66156005859375, - -54.334075927734375 - ], - [ - 25.41436767578125, - -56.963134765625 - ], - [ - 26.29071044921875, - -56.963134765625 - ], - [ - 27.16705322265625, - -56.963134765625 - ], - [ - 28.04339599609375, - -56.086761474609375 - ], - [ - 28.04339599609375, - -53.457733154296875 - ], - [ - 28.04339599609375, - -53.457733154296875 - ] - ], - "pressures": [ - 0.046875, - 0.4931640625, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4892578125, - 0.2626953125, - 0.1748046875, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.04339599609375, - -53.457733154296875 - ] - }, - { - "id": "1LGs_v1oJr57gUazuZFNG", - "type": "freedraw", - "x": -185.86965942382812, - "y": -187.78665924072266, - "width": 63.09765625, - "height": 70.98480224609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2036976365, - "version": 846, - "versionNonce": 788851971, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -5.25811767578125 - ], - [ - 3.50543212890625, - -14.021697998046875 - ], - [ - 9.639892578125, - -21.908905029296875 - ], - [ - 17.527099609375, - -30.672454833984375 - ], - [ - 25.414306640625, - -37.68328857421875 - ], - [ - 32.4251708984375, - -43.81781005859375 - ], - [ - 35.9305419921875, - -44.694122314453125 - ], - [ - 39.43603515625, - -44.694122314453125 - ], - [ - 44.694091796875, - -42.065093994140625 - ], - [ - 47.3232421875, - -33.301513671875 - ], - [ - 49.075927734375, - -17.527099609375 - ], - [ - 47.3232421875, - -7.88720703125 - ], - [ - 40.3123779296875, - 2.62908935546875 - ], - [ - 21.908935546875, - 18.403472900390625 - ], - [ - 10.5162353515625, - 24.5379638671875 - ], - [ - 3.50543212890625, - 26.290679931640625 - ], - [ - -3.50543212890625, - 25.414337158203125 - ], - [ - -10.51629638671875, - 19.27984619140625 - ], - [ - -14.021728515625, - 9.639923095703125 - ], - [ - -11.39263916015625, - -7.010833740234375 - ], - [ - -4.38177490234375, - -17.527099609375 - ], - [ - 4.38177490234375, - -26.290679931640625 - ], - [ - 15.7744140625, - -36.80694580078125 - ], - [ - 20.1561279296875, - -41.188720703125 - ], - [ - 22.7852783203125, - -42.065093994140625 - ], - [ - 23.66162109375, - -42.065093994140625 - ], - [ - 24.5379638671875, - -42.065093994140625 - ], - [ - 25.414306640625, - -41.188720703125 - ], - [ - 25.414306640625, - -40.312347412109375 - ], - [ - 25.414306640625, - -40.312347412109375 - ] - ], - "pressures": [ - 0.119140625, - 0.38671875, - 0.8115234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7685546875, - 0.408203125, - 0.236328125, - 0.185546875, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.414306640625, - -40.312347412109375 - ] - }, - { - "id": "YEH3eRMtO1x-OTaj1JQjI", - "type": "freedraw", - "x": -133.28836059570312, - "y": -248.2552261352539, - "width": 320.74639892578125, - "height": 208.57281494140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 550225827, - "version": 836, - "versionNonce": 1640929453, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.7528076171875, - -5.25811767578125 - ], - [ - -1.752685546875, - -19.279815673828125 - ], - [ - -15.7744140625, - -30.672454833984375 - ], - [ - -38.55963134765625, - -41.188690185546875 - ], - [ - -64.85028076171875, - -48.1995849609375 - ], - [ - -91.1409912109375, - -51.70501708984375 - ], - [ - -126.19525146484375, - -50.828643798828125 - ], - [ - -145.47503662109375, - -45.57049560546875 - ], - [ - -159.49676513671875, - -36.806915283203125 - ], - [ - -168.26031494140625, - -21.908905029296875 - ], - [ - -170.01300048828125, - 0 - ], - [ - -149.8568115234375, - 40.3123779296875 - ], - [ - -116.5552978515625, - 68.35577392578125 - ], - [ - -65.72662353515625, - 97.2755126953125 - ], - [ - -3.50537109375, - 123.56622314453125 - ], - [ - 76.2431640625, - 148.104248046875 - ], - [ - 111.29736328125, - 155.11505126953125 - ], - [ - 139.3406982421875, - 156.8677978515625 - ], - [ - 150.7333984375, - 155.99139404296875 - ], - [ - 150.7333984375, - 155.99139404296875 - ] - ], - "pressures": [ - 0.0576171875, - 0.078125, - 0.1533203125, - 0.2470703125, - 0.40234375, - 0.6015625, - 0.79296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.712890625, - 0.2685546875, - 0.064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 150.7333984375, - 155.99139404296875 - ] - }, - { - "id": "sRzfZKQnYnbFf2jGbtQZ5", - "type": "freedraw", - "x": -246.33822631835938, - "y": -249.1315689086914, - "width": 406.62921142578125, - "height": 182.28204345703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1518817357, - "version": 837, - "versionNonce": 1518752931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.0108642578125, - -7.0108642578125 - ], - [ - 11.39263916015625, - -16.650787353515625 - ], - [ - 8.7635498046875, - -26.290679931640625 - ], - [ - -3.50543212890625, - -34.177886962890625 - ], - [ - -35.05426025390625, - -43.81781005859375 - ], - [ - -57.8394775390625, - -47.3232421875 - ], - [ - -76.24298095703125, - -45.570526123046875 - ], - [ - -88.51190185546875, - -36.806976318359375 - ], - [ - -95.5228271484375, - -24.5379638671875 - ], - [ - -96.399169921875, - -2.62908935546875 - ], - [ - -83.25384521484375, - 15.7744140625 - ], - [ - -55.21044921875, - 41.188720703125 - ], - [ - -11.39263916015625, - 70.98483276367188 - ], - [ - 42.0650634765625, - 99.0281982421875 - ], - [ - 132.32977294921875, - 128.8243408203125 - ], - [ - 162.12591552734375, - 134.95880126953125 - ], - [ - 297.08465576171875, - 134.08245849609375 - ], - [ - 304.09552001953125, - 129.70068359375 - ], - [ - 310.23004150390625, - 120.9371337890625 - ], - [ - 307.60101318359375, - 115.67901611328125 - ], - [ - 307.60101318359375, - 115.67901611328125 - ] - ], - "pressures": [ - 0.0537109375, - 0.05859375, - 0.0595703125, - 0.0810546875, - 0.15234375, - 0.2841796875, - 0.3955078125, - 0.5537109375, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6025390625, - 0.4208984375, - 0.189453125, - 0.0712890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 307.60101318359375, - 115.67901611328125 - ] - }, - { - "id": "eWTcWTNoUfZMXgWuxftrI", - "type": "freedraw", - "x": -299.7959289550781, - "y": -214.95368194580078, - "width": 209.4490966796875, - "height": 233.98712158203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1561992941, - "version": 836, - "versionNonce": 925956877, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.63995361328125, - -5.258148193359375 - ], - [ - -18.40350341796875, - -12.26898193359375 - ], - [ - -26.2906494140625, - -21.90887451171875 - ], - [ - -28.9197998046875, - -37.683319091796875 - ], - [ - -21.0325927734375, - -51.70501708984375 - ], - [ - -7.0108642578125, - -70.10845947265625 - ], - [ - 18.4034423828125, - -89.38833618164062 - ], - [ - 70.10845947265625, - -110.42086791992188 - ], - [ - 101.65728759765625, - -114.80264282226562 - ], - [ - 129.70068359375, - -112.173583984375 - ], - [ - 152.4859619140625, - -102.53366088867188 - ], - [ - 168.2603759765625, - -89.38833618164062 - ], - [ - 179.6529541015625, - -52.58135986328125 - ], - [ - 180.529296875, - -14.021697998046875 - ], - [ - 177.02392578125, - 27.167022705078125 - ], - [ - 161.24951171875, - 63.097625732421875 - ], - [ - 124.4425048828125, - 97.27554321289062 - ], - [ - 99.0281982421875, - 111.29721069335938 - ], - [ - 74.490234375, - 119.18447875976562 - ], - [ - 74.490234375, - 119.18447875976562 - ] - ], - "pressures": [ - 0.09765625, - 0.1884765625, - 0.2705078125, - 0.388671875, - 0.642578125, - 0.75, - 0.8203125, - 0.8515625, - 0.9150390625, - 0.9423828125, - 0.9423828125, - 0.9169921875, - 0.8935546875, - 0.8876953125, - 0.876953125, - 0.826171875, - 0.6923828125, - 0.625, - 0.3505859375, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 74.490234375, - 119.18447875976562 - ] - }, - { - "id": "77kXioBRQYHhx3XKgr9zL", - "type": "freedraw", - "x": -260.3599548339844, - "y": -200.0556411743164, - "width": 148.1041259765625, - "height": 228.72894287109375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 596952611, - "version": 837, - "versionNonce": 1287243843, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.639892578125, - -8.7635498046875 - ], - [ - -26.2906494140625, - -32.425140380859375 - ], - [ - -29.79608154296875, - -52.58135986328125 - ], - [ - -27.1669921875, - -72.737548828125 - ], - [ - -14.02166748046875, - -90.26467895507812 - ], - [ - 16.6507568359375, - -110.42086791992188 - ], - [ - 38.5596923828125, - -116.55535888671875 - ], - [ - 61.344970703125, - -113.92626953125 - ], - [ - 83.25384521484375, - -99.90460205078125 - ], - [ - 99.02825927734375, - -77.99569702148438 - ], - [ - 112.17364501953125, - -26.290679931640625 - ], - [ - 117.43170166015625, - 17.527130126953125 - ], - [ - 118.30804443359375, - 56.963134765625 - ], - [ - 106.91546630859375, - 85.00653076171875 - ], - [ - 78.8720703125, - 106.0390625 - ], - [ - 60.46856689453125, - 112.173583984375 - ], - [ - 41.18878173828125, - 112.173583984375 - ], - [ - 23.66162109375, - 106.0390625 - ], - [ - 9.63995361328125, - 96.399169921875 - ], - [ - 9.63995361328125, - 95.52288818359375 - ], - [ - 9.63995361328125, - 95.52288818359375 - ] - ], - "pressures": [ - 0.1044921875, - 0.162109375, - 0.30078125, - 0.462890625, - 0.625, - 0.75390625, - 0.8203125, - 0.828125, - 0.8427734375, - 0.8662109375, - 0.8662109375, - 0.884765625, - 0.8828125, - 0.8876953125, - 0.8876953125, - 0.7568359375, - 0.5537109375, - 0.3681640625, - 0.2685546875, - 0.0908203125, - 0.015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.63995361328125, - 95.52288818359375 - ] - }, - { - "id": "D1VXs7al0ZFFsQGxYlkkD", - "type": "freedraw", - "x": -294.5378112792969, - "y": -183.4048843383789, - "width": 333.8916015625, - "height": 28.04339599609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 530846637, - "version": 829, - "versionNonce": 1255674221, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.51629638671875, - -0.8763427734375 - ], - [ - -12.26898193359375, - -1.752685546875 - ], - [ - -10.51629638671875, - -1.752685546875 - ], - [ - 4.38177490234375, - -1.752685546875 - ], - [ - 53.45770263671875, - -1.752685546875 - ], - [ - 94.64642333984375, - -2.629058837890625 - ], - [ - 139.34063720703125, - -2.629058837890625 - ], - [ - 184.91107177734375, - 0 - ], - [ - 244.50335693359375, - 8.763580322265625 - ], - [ - 280.43389892578125, - 15.7744140625 - ], - [ - 308.47735595703125, - 21.908905029296875 - ], - [ - 321.62261962890625, - 25.414337158203125 - ], - [ - 317.24090576171875, - 25.414337158203125 - ], - [ - 317.24090576171875, - 25.414337158203125 - ] - ], - "pressures": [ - 0.01953125, - 0.111328125, - 0.1728515625, - 0.4501953125, - 0.708984375, - 1, - 1, - 1, - 1, - 1, - 0.609375, - 0.310546875, - 0.166015625, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 317.24090576171875, - 25.414337158203125 - ] - }, - { - "id": "bd0buS_5Vpmem2zJXblQx", - "type": "freedraw", - "x": -120.14297485351562, - "y": -177.27039337158203, - "width": 92.8936767578125, - "height": 29.796112060546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 767809197, - "version": 834, - "versionNonce": 2071840739, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - 0, - -0.8763427734375 - ], - [ - 10.5162353515625, - -1.752685546875 - ], - [ - 21.908935546875, - -3.505401611328125 - ], - [ - 32.4251708984375, - -4.38177490234375 - ], - [ - 39.43603515625, - -5.25811767578125 - ], - [ - 42.94140625, - -3.505401611328125 - ], - [ - 42.94140625, - 1.752716064453125 - ], - [ - 35.9306640625, - 5.258148193359375 - ], - [ - 25.414306640625, - 8.763580322265625 - ], - [ - 13.1453857421875, - 12.269012451171875 - ], - [ - -3.50537109375, - 15.7744140625 - ], - [ - -33.301513671875, - 20.15618896484375 - ], - [ - -44.694091796875, - 21.908905029296875 - ], - [ - -49.075927734375, - 22.785247802734375 - ], - [ - -49.9522705078125, - 22.785247802734375 - ], - [ - -48.1995849609375, - 23.661651611328125 - ], - [ - -42.0650634765625, - 24.537994384765625 - ], - [ - -35.9305419921875, - 24.537994384765625 - ], - [ - -33.301513671875, - 24.537994384765625 - ], - [ - -33.301513671875, - 24.537994384765625 - ] - ], - "pressures": [ - 0.0390625, - 0.447265625, - 0.6162109375, - 0.71484375, - 0.7265625, - 0.74609375, - 0.75390625, - 0.7705078125, - 0.7607421875, - 0.7607421875, - 0.7626953125, - 0.7568359375, - 0.74609375, - 0.70703125, - 0.6787109375, - 0.6640625, - 0.6572265625, - 0.3701171875, - 0.216796875, - 0.087890625, - 0.0234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -33.301513671875, - 24.537994384765625 - ] - }, - { - "id": "XGa14pgr7d3Vm09FhevIH", - "type": "freedraw", - "x": -130.65921020507812, - "y": -172.88858795166016, - "width": 92.893798828125, - "height": 31.548797607421875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 889024931, - "version": 833, - "versionNonce": 1510824909, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50537109375, - 0 - ], - [ - 10.5162353515625, - 0 - ], - [ - 18.4034423828125, - 0 - ], - [ - 29.7960205078125, - -0.876373291015625 - ], - [ - 36.806884765625, - -0.876373291015625 - ], - [ - 42.0650634765625, - 0 - ], - [ - 45.5704345703125, - 1.752716064453125 - ], - [ - 47.3232421875, - 5.25811767578125 - ], - [ - 47.3232421875, - 9.639892578125 - ], - [ - 39.43603515625, - 15.774383544921875 - ], - [ - 28.919677734375, - 20.15618896484375 - ], - [ - 13.145263671875, - 24.5379638671875 - ], - [ - -16.6507568359375, - 28.91973876953125 - ], - [ - -34.1778564453125, - 29.79608154296875 - ], - [ - -42.94146728515625, - 30.67242431640625 - ], - [ - -45.570556640625, - 30.67242431640625 - ], - [ - -43.81781005859375, - 30.67242431640625 - ], - [ - -37.683349609375, - 30.67242431640625 - ], - [ - -35.0543212890625, - 30.67242431640625 - ], - [ - -35.0543212890625, - 30.67242431640625 - ] - ], - "pressures": [ - 0.14453125, - 0.6083984375, - 0.705078125, - 0.8115234375, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.8720703125, - 0.802734375, - 0.7607421875, - 0.17578125, - 0.0986328125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -35.0543212890625, - 30.67242431640625 - ] - }, - { - "id": "47uWTSLGns-suk5XO44vG", - "type": "freedraw", - "x": -174.47702026367188, - "y": -299.96024322509766, - "width": 307.6009521484375, - "height": 245.37969970703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 689530787, - "version": 833, - "versionNonce": 484496259, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - -16.6507568359375 - ], - [ - 0.8763427734375, - -32.4251708984375 - ], - [ - -1.75274658203125, - -36.80694580078125 - ], - [ - -7.88720703125, - -41.188720703125 - ], - [ - -19.27984619140625, - -42.0650634765625 - ], - [ - -49.95233154296875, - -37.683258056640625 - ], - [ - -73.61395263671875, - -29.79608154296875 - ], - [ - -97.27557373046875, - -16.6507568359375 - ], - [ - -115.67901611328125, - 0.876373291015625 - ], - [ - -122.68988037109375, - 24.537994384765625 - ], - [ - -108.66815185546875, - 70.10848999023438 - ], - [ - -82.37750244140625, - 104.286376953125 - ], - [ - -47.3232421875, - 136.7115478515625 - ], - [ - -0.87640380859375, - 163.00225830078125 - ], - [ - 82.37750244140625, - 191.045654296875 - ], - [ - 124.44256591796875, - 200.685546875 - ], - [ - 156.86785888671875, - 203.31463623046875 - ], - [ - 184.03472900390625, - 203.31463623046875 - ], - [ - 184.91107177734375, - 202.43829345703125 - ], - [ - 184.91107177734375, - 202.43829345703125 - ] - ], - "pressures": [ - 0.0888671875, - 0.1123046875, - 0.224609375, - 0.2685546875, - 0.412109375, - 0.6845703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.828125, - 0.46484375, - 0.224609375, - 0.1474609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 184.91107177734375, - 202.43829345703125 - ] - }, - { - "id": "CVVJRbhJdr3uCNn5nlUXO", - "type": "freedraw", - "x": -229.68746948242188, - "y": -108.03824615478516, - "width": 163.00225830078125, - "height": 152.4859619140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 671601539, - "version": 826, - "versionNonce": 1021991469, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.38177490234375 - ], - [ - 0, - -10.51629638671875 - ], - [ - 0, - -21.03253173828125 - ], - [ - 0, - -35.05426025390625 - ], - [ - 6.13446044921875, - -52.58135986328125 - ], - [ - 27.16705322265625, - -81.50112915039062 - ], - [ - 47.3232421875, - -102.53366088867188 - ], - [ - 69.23211669921875, - -120.06076049804688 - ], - [ - 91.14105224609375, - -133.20608520507812 - ], - [ - 121.81353759765625, - -145.47509765625 - ], - [ - 139.34063720703125, - -148.98052978515625 - ], - [ - 152.48590087890625, - -151.60958862304688 - ], - [ - 160.37310791015625, - -152.4859619140625 - ], - [ - 163.00225830078125, - -152.4859619140625 - ], - [ - 162.12591552734375, - -151.60958862304688 - ], - [ - 162.12591552734375, - -151.60958862304688 - ] - ], - "pressures": [ - 0.01171875, - 0.28515625, - 0.4013671875, - 0.5166015625, - 0.61328125, - 0.720703125, - 0.830078125, - 0.8984375, - 0.927734375, - 0.900390625, - 0.7685546875, - 0.57421875, - 0.353515625, - 0.19140625, - 0.14453125, - 0.0185546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 162.12591552734375, - -151.60958862304688 - ] - }, - { - "id": "9pc7-zYCbiAtutoiVhqd6", - "type": "freedraw", - "x": -92.09951782226562, - "y": -271.0404739379883, - "width": 157.74407958984375, - "height": 195.42739868164062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1444335821, - "version": 829, - "versionNonce": 555838243, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.6290283203125, - -4.38177490234375 - ], - [ - 2.6290283203125, - -7.88720703125 - ], - [ - 1.752685546875, - -9.639892578125 - ], - [ - -2.629150390625, - -11.39263916015625 - ], - [ - -11.3927001953125, - -12.26898193359375 - ], - [ - -26.290771484375, - -11.39263916015625 - ], - [ - -57.839599609375, - -0.8763427734375 - ], - [ - -82.37750244140625, - 10.516265869140625 - ], - [ - -106.91546630859375, - 25.414337158203125 - ], - [ - -129.70074462890625, - 42.94146728515625 - ], - [ - -145.47515869140625, - 65.72671508789062 - ], - [ - -155.11505126953125, - 107.79177856445312 - ], - [ - -155.11505126953125, - 134.95883178710938 - ], - [ - -152.48602294921875, - 156.86770629882812 - ], - [ - -149.85693359375, - 172.64212036132812 - ], - [ - -146.35150146484375, - 182.28207397460938 - ], - [ - -143.72247314453125, - 183.15841674804688 - ], - [ - -141.9697265625, - 178.77664184570312 - ], - [ - -141.9697265625, - 178.77664184570312 - ] - ], - "pressures": [ - 0.0234375, - 0.03125, - 0.0556640625, - 0.09765625, - 0.166015625, - 0.2353515625, - 0.296875, - 0.3935546875, - 0.427734375, - 0.515625, - 0.5625, - 0.5712890625, - 0.5693359375, - 0.57421875, - 0.56640625, - 0.537109375, - 0.373046875, - 0.20703125, - 0.04296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -141.9697265625, - 178.77664184570312 - ] - }, - { - "id": "PWaYOPAGnGr48vG67ZbXc", - "type": "freedraw", - "x": -150.81546020507812, - "y": -107.16190338134766, - "width": 83.25384521484375, - "height": 178.77664184570312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1627653165, - "version": 833, - "versionNonce": 207129741, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - 4.38177490234375 - ], - [ - 0.8763427734375, - 8.7635498046875 - ], - [ - 1.752685546875, - 12.26898193359375 - ], - [ - 1.752685546875, - 14.021728515625 - ], - [ - -1.752685546875, - 13.14532470703125 - ], - [ - -10.5162353515625, - 9.63995361328125 - ], - [ - -18.4034423828125, - 6.134521484375 - ], - [ - -25.414306640625, - 1.75274658203125 - ], - [ - -36.80694580078125, - -10.5162353515625 - ], - [ - -43.8177490234375, - -23.66162109375 - ], - [ - -48.19952392578125, - -40.3123779296875 - ], - [ - -48.19952392578125, - -56.963134765625 - ], - [ - -42.0650634765625, - -84.13015747070312 - ], - [ - -34.1778564453125, - -104.286376953125 - ], - [ - -22.78521728515625, - -123.56619262695312 - ], - [ - -8.7635498046875, - -139.34060668945312 - ], - [ - 3.5054931640625, - -149.85687255859375 - ], - [ - 17.527099609375, - -158.62045288085938 - ], - [ - 25.414306640625, - -161.24951171875 - ], - [ - 30.6724853515625, - -163.87857055664062 - ], - [ - 33.301513671875, - -164.75491333007812 - ], - [ - 35.0543212890625, - -164.75491333007812 - ], - [ - 35.0543212890625, - -164.75491333007812 - ] - ], - "pressures": [ - 0.0703125, - 0.0810546875, - 0.0947265625, - 0.12890625, - 0.146484375, - 0.21875, - 0.333984375, - 0.4443359375, - 0.541015625, - 0.671875, - 0.712890625, - 0.72265625, - 0.7421875, - 0.748046875, - 0.7568359375, - 0.75390625, - 0.7421875, - 0.669921875, - 0.384765625, - 0.2373046875, - 0.1552734375, - 0.1025390625, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.0543212890625, - -164.75491333007812 - ] - }, - { - "id": "ruaxUEOkqGvYmLMkuFNto", - "type": "freedraw", - "x": -184.99331665039062, - "y": -155.36148834228516, - "width": 62.22125244140625, - "height": 22.7852783203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1562649763, - "version": 827, - "versionNonce": 1823346371, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - 0 - ], - [ - -12.26898193359375, - 0.8763427734375 - ], - [ - -16.6507568359375, - 4.38177490234375 - ], - [ - -18.40350341796875, - 8.7635498046875 - ], - [ - -19.27984619140625, - 15.7744140625 - ], - [ - -17.527099609375, - 19.27984619140625 - ], - [ - -14.02166748046875, - 21.03253173828125 - ], - [ - -12.26898193359375, - 21.908935546875 - ], - [ - -8.7635498046875, - 22.7852783203125 - ], - [ - -4.38177490234375, - 22.7852783203125 - ], - [ - 0.8763427734375, - 22.7852783203125 - ], - [ - 5.25811767578125, - 21.908935546875 - ], - [ - 11.39263916015625, - 20.15618896484375 - ], - [ - 21.908935546875, - 16.6507568359375 - ], - [ - 29.796142578125, - 14.021728515625 - ], - [ - 36.8070068359375, - 11.39263916015625 - ], - [ - 40.3123779296875, - 7.88720703125 - ], - [ - 42.94140625, - 6.134521484375 - ], - [ - 41.188720703125, - 7.88720703125 - ], - [ - 41.188720703125, - 7.88720703125 - ] - ], - "pressures": [ - 0.056640625, - 0.2822265625, - 0.3603515625, - 0.443359375, - 0.53125, - 0.58984375, - 0.6376953125, - 0.67578125, - 0.697265625, - 0.703125, - 0.7109375, - 0.744140625, - 0.8173828125, - 0.8935546875, - 0.9599609375, - 1, - 1, - 1, - 1, - 0.0205078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.188720703125, - 7.88720703125 - ] - }, - { - "id": "n-Iv1TiQ5HScq1NAJEFX6", - "type": "freedraw", - "x": -192.88052368164062, - "y": -144.8451919555664, - "width": 49.07586669921875, - "height": 17.527099609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 65928835, - "version": 828, - "versionNonce": 135361261, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -2.62908935546875 - ], - [ - -4.38177490234375, - -1.75274658203125 - ], - [ - -5.25811767578125, - 0.8763427734375 - ], - [ - -5.25811767578125, - 3.50543212890625 - ], - [ - -4.38177490234375, - 6.13446044921875 - ], - [ - -2.62908935546875, - 7.88720703125 - ], - [ - 1.752685546875, - 9.639892578125 - ], - [ - 10.51629638671875, - 13.14532470703125 - ], - [ - 14.8980712890625, - 14.89801025390625 - ], - [ - 17.527099609375, - 14.89801025390625 - ], - [ - 18.40350341796875, - 14.89801025390625 - ], - [ - 22.7852783203125, - 14.02166748046875 - ], - [ - 26.2906494140625, - 12.26898193359375 - ], - [ - 29.796142578125, - 10.5162353515625 - ], - [ - 34.1778564453125, - 7.0108642578125 - ], - [ - 37.683349609375, - 3.50543212890625 - ], - [ - 41.188720703125, - 0.8763427734375 - ], - [ - 43.8177490234375, - -0.8763427734375 - ], - [ - 43.8177490234375, - -1.75274658203125 - ], - [ - 43.8177490234375, - -2.62908935546875 - ], - [ - 43.8177490234375, - -2.62908935546875 - ] - ], - "pressures": [ - 0.064453125, - 0.3173828125, - 0.6552734375, - 0.75390625, - 0.8076171875, - 0.849609375, - 0.8740234375, - 0.9169921875, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.87890625, - 0.5322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 43.8177490234375, - -2.62908935546875 - ] - }, - { - "id": "cENTXETxTbpAqUeRj-nnE", - "type": "freedraw", - "x": -190.25143432617188, - "y": -141.33975982666016, - "width": 49.075927734375, - "height": 17.52716064453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1025156941, - "version": 827, - "versionNonce": 1378172515, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -2.62908935546875, - 2.6290283203125 - ], - [ - -3.50543212890625, - 6.13446044921875 - ], - [ - -3.50543212890625, - 9.639892578125 - ], - [ - -3.50543212890625, - 12.26898193359375 - ], - [ - -3.50543212890625, - 14.02166748046875 - ], - [ - -1.75274658203125, - 14.89801025390625 - ], - [ - 2.6290283203125, - 15.7744140625 - ], - [ - 9.639892578125, - 15.7744140625 - ], - [ - 12.26898193359375, - 15.7744140625 - ], - [ - 16.6507568359375, - 14.89801025390625 - ], - [ - 21.03253173828125, - 13.14532470703125 - ], - [ - 27.16705322265625, - 10.5162353515625 - ], - [ - 33.30145263671875, - 7.88720703125 - ], - [ - 41.18865966796875, - 4.38177490234375 - ], - [ - 43.81781005859375, - 1.752685546875 - ], - [ - 44.69415283203125, - 0 - ], - [ - 45.57049560546875, - -0.87640380859375 - ], - [ - 45.57049560546875, - -1.75274658203125 - ], - [ - 45.57049560546875, - -1.75274658203125 - ] - ], - "pressures": [ - 0.0625, - 0.2939453125, - 0.341796875, - 0.3896484375, - 0.439453125, - 0.474609375, - 0.5078125, - 0.57421875, - 0.5849609375, - 0.611328125, - 0.6318359375, - 0.66015625, - 0.70703125, - 0.740234375, - 0.75390625, - 0.7763671875, - 0.7783203125, - 0.7705078125, - 0.7607421875, - 0.53515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 45.57049560546875, - -1.75274658203125 - ] - }, - { - "id": "rDS8a6xO1I80O-z9ztTeP", - "type": "freedraw", - "x": -153.44448852539062, - "y": -135.2052993774414, - "width": 67.4793701171875, - "height": 112.17355346679688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 936472941, - "version": 826, - "versionNonce": 1017023821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0.8763427734375 - ], - [ - 1.752685546875, - -3.50543212890625 - ], - [ - 7.88720703125, - -7.0108642578125 - ], - [ - 19.27978515625, - -13.14532470703125 - ], - [ - 34.1778564453125, - -21.03253173828125 - ], - [ - 53.457763671875, - -35.054229736328125 - ], - [ - 61.344970703125, - -46.446868896484375 - ], - [ - 65.7266845703125, - -59.592193603515625 - ], - [ - 65.7266845703125, - -71.86117553710938 - ], - [ - 64.850341796875, - -80.624755859375 - ], - [ - 56.0867919921875, - -91.14102172851562 - ], - [ - 48.1995849609375, - -96.399169921875 - ], - [ - 38.5596923828125, - -100.78094482421875 - ], - [ - 30.6724853515625, - -105.1627197265625 - ], - [ - 24.5379638671875, - -107.79177856445312 - ], - [ - 19.27978515625, - -109.54449462890625 - ], - [ - 16.6507568359375, - -110.42083740234375 - ], - [ - 14.021728515625, - -110.42083740234375 - ], - [ - 12.2689208984375, - -111.29721069335938 - ], - [ - 12.2689208984375, - -111.29721069335938 - ] - ], - "pressures": [ - 0.0478515625, - 0.4833984375, - 0.8515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.798828125, - 0.599609375, - 0.3232421875, - 0.2060546875, - 0.1220703125, - 0.05078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.2689208984375, - -111.29721069335938 - ] - }, - { - "id": "P5-MWDCIE0uXFVkUMDtTT", - "type": "freedraw", - "x": -215.66580200195312, - "y": -303.4656448364258, - "width": 102.53363037109375, - "height": 282.18670654296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 324167075, - "version": 830, - "versionNonce": 1280670211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - -7.0108642578125 - ], - [ - 2.62908935546875, - -12.268951416015625 - ], - [ - 4.38177490234375, - -16.6507568359375 - ], - [ - 6.134521484375, - -21.03253173828125 - ], - [ - 13.1453857421875, - -27.16705322265625 - ], - [ - 19.27984619140625, - -29.79608154296875 - ], - [ - 25.41436767578125, - -30.672454833984375 - ], - [ - 34.17791748046875, - -29.79608154296875 - ], - [ - 53.457763671875, - -14.8980712890625 - ], - [ - 68.3558349609375, - 4.38177490234375 - ], - [ - 81.5010986328125, - 30.672454833984375 - ], - [ - 91.14111328125, - 63.097625732421875 - ], - [ - 96.399169921875, - 99.90457153320312 - ], - [ - 98.15185546875, - 154.23867797851562 - ], - [ - 93.7701416015625, - 184.91110229492188 - ], - [ - 77.119384765625, - 209.44906616210938 - ], - [ - 54.3341064453125, - 227.85256958007812 - ], - [ - 21.908935546875, - 244.50332641601562 - ], - [ - 7.0108642578125, - 249.76144409179688 - ], - [ - 0, - 251.51425170898438 - ], - [ - -2.6290283203125, - 251.51425170898438 - ], - [ - -4.38177490234375, - 250.63784790039062 - ], - [ - -4.38177490234375, - 249.76144409179688 - ], - [ - -4.38177490234375, - 249.76144409179688 - ] - ], - "pressures": [ - 0.0869140625, - 0.1328125, - 0.2060546875, - 0.283203125, - 0.458984375, - 0.6865234375, - 0.728515625, - 0.7626953125, - 0.822265625, - 0.92578125, - 0.9755859375, - 1, - 1, - 0.9794921875, - 0.96875, - 0.931640625, - 0.8642578125, - 0.7666015625, - 0.51953125, - 0.423828125, - 0.341796875, - 0.2255859375, - 0.1396484375, - 0.060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.38177490234375, - 249.76144409179688 - ] - }, - { - "id": "-6SUUHCLO9eoLB2B7Z1u0", - "type": "freedraw", - "x": -171.84799194335938, - "y": -277.17496490478516, - "width": 157.7440185546875, - "height": 286.5683898925781, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 148087565, - "version": 828, - "versionNonce": 1767463853, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.38177490234375, - -8.763580322265625 - ], - [ - 7.88726806640625, - -17.527130126953125 - ], - [ - 14.02166748046875, - -26.290679931640625 - ], - [ - 19.27984619140625, - -36.80694580078125 - ], - [ - 22.78521728515625, - -46.446868896484375 - ], - [ - 21.03253173828125, - -56.963134765625 - ], - [ - 13.14532470703125, - -60.468536376953125 - ], - [ - 0.8763427734375, - -59.59222412109375 - ], - [ - -14.02166748046875, - -52.58135986328125 - ], - [ - -40.3123779296875, - -24.5379638671875 - ], - [ - -54.33404541015625, - 5.258148193359375 - ], - [ - -63.09759521484375, - 43.81781005859375 - ], - [ - -60.46856689453125, - 86.75924682617188 - ], - [ - -38.55963134765625, - 129.70068359375 - ], - [ - 16.65081787109375, - 186.663818359375 - ], - [ - 49.07598876953125, - 211.2017822265625 - ], - [ - 70.10845947265625, - 222.59442138671875 - ], - [ - 81.50115966796875, - 226.099853515625 - ], - [ - 91.14105224609375, - 226.099853515625 - ], - [ - 94.64642333984375, - 225.22357177734375 - ], - [ - 94.64642333984375, - 223.47076416015625 - ], - [ - 94.64642333984375, - 223.47076416015625 - ] - ], - "pressures": [ - 0.0380859375, - 0.087890625, - 0.1572265625, - 0.21875, - 0.291015625, - 0.3720703125, - 0.537109375, - 0.80078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8115234375, - 0.2880859375, - 0.1513671875, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 94.64642333984375, - 223.47076416015625 - ] - }, - { - "id": "4Bv9csy9Xn_UeOdQ_5ntq", - "type": "freedraw", - "x": -317.3230285644531, - "y": -158.86688995361328, - "width": 334.76806640625, - "height": 24.5379638671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1437603725, - "version": 815, - "versionNonce": 2017280419, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.2581787109375, - 0.8763427734375 - ], - [ - 2.6290283203125, - 0.8763427734375 - ], - [ - 25.41424560546875, - 0 - ], - [ - 77.99566650390625, - -6.134490966796875 - ], - [ - 115.678955078125, - -12.26898193359375 - ], - [ - 156.86767578125, - -17.527130126953125 - ], - [ - 195.4273681640625, - -21.908905029296875 - ], - [ - 242.7506103515625, - -23.66162109375 - ], - [ - 273.423095703125, - -21.908905029296875 - ], - [ - 303.2191162109375, - -18.40350341796875 - ], - [ - 324.251708984375, - -16.650787353515625 - ], - [ - 329.5098876953125, - -16.650787353515625 - ], - [ - 329.5098876953125, - -16.650787353515625 - ] - ], - "pressures": [ - 0.0859375, - 0.5849609375, - 0.6904296875, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 0.724609375, - 0.384765625, - 0.1884765625, - 0.1298828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 329.5098876953125, - -16.650787353515625 - ] - }, - { - "id": "rh9jBWL0kD-XEg5BbVQKj", - "type": "freedraw", - "x": -297.1669006347656, - "y": -137.8343276977539, - "width": 330.38623046875, - "height": 35.930633544921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1954527747, - "version": 814, - "versionNonce": 644570637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 12.26898193359375, - -4.3818359375 - ], - [ - 40.3123779296875, - -10.51629638671875 - ], - [ - 74.49029541015625, - -18.40350341796875 - ], - [ - 125.31890869140625, - -29.796142578125 - ], - [ - 156.8677978515625, - -34.17791748046875 - ], - [ - 186.663818359375, - -35.930633544921875 - ], - [ - 219.0889892578125, - -35.930633544921875 - ], - [ - 271.67041015625, - -32.425201416015625 - ], - [ - 302.3428955078125, - -28.919769287109375 - ], - [ - 324.251708984375, - -27.16705322265625 - ], - [ - 330.38623046875, - -26.29071044921875 - ], - [ - 330.38623046875, - -26.29071044921875 - ] - ], - "pressures": [ - 0.1259765625, - 0.66796875, - 0.927734375, - 1, - 1, - 1, - 1, - 0.8154296875, - 0.384765625, - 0.224609375, - 0.1513671875, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 330.38623046875, - -26.29071044921875 - ] - }, - { - "id": "O8yjNfL3ENOf9zOYXa9ox", - "type": "freedraw", - "x": -275.2579650878906, - "y": -146.59793853759766, - "width": 315.4881591796875, - "height": 56.086822509765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 166883395, - "version": 817, - "versionNonce": 1326126403, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.88720703125, - 0.87640380859375 - ], - [ - -7.0108642578125, - 0.87640380859375 - ], - [ - 3.50537109375, - -3.50543212890625 - ], - [ - 23.66156005859375, - -10.516265869140625 - ], - [ - 49.9522705078125, - -20.156158447265625 - ], - [ - 82.37744140625, - -32.425140380859375 - ], - [ - 147.227783203125, - -48.199554443359375 - ], - [ - 191.9219970703125, - -54.33404541015625 - ], - [ - 227.8525390625, - -55.210418701171875 - ], - [ - 255.01953125, - -51.704986572265625 - ], - [ - 285.6920166015625, - -43.817779541015625 - ], - [ - 298.83740234375, - -39.436004638671875 - ], - [ - 307.6009521484375, - -35.930572509765625 - ], - [ - 307.6009521484375, - -35.054229736328125 - ], - [ - 307.6009521484375, - -35.054229736328125 - ] - ], - "pressures": [ - 0.1005859375, - 0.3720703125, - 0.5673828125, - 0.8720703125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.384765625, - 0.2197265625, - 0.1328125, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 307.6009521484375, - -35.054229736328125 - ] - }, - { - "id": "eJPf0gK05dN3uYqAg4xYC", - "type": "freedraw", - "x": -244.58554077148438, - "y": -146.59793853759766, - "width": 341.77886962890625, - "height": 59.59222412109375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 703371661, - "version": 818, - "versionNonce": 1255019629, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0.87640380859375 - ], - [ - -1.752685546875, - 0 - ], - [ - -0.8763427734375, - -2.6290283203125 - ], - [ - 12.26898193359375, - -13.14532470703125 - ], - [ - 28.91973876953125, - -21.90887451171875 - ], - [ - 56.0867919921875, - -30.672454833984375 - ], - [ - 91.14105224609375, - -41.188720703125 - ], - [ - 126.19525146484375, - -49.9522705078125 - ], - [ - 175.27117919921875, - -58.7158203125 - ], - [ - 215.58355712890625, - -58.7158203125 - ], - [ - 257.64874267578125, - -53.45770263671875 - ], - [ - 293.57928466796875, - -48.199554443359375 - ], - [ - 321.62274169921875, - -44.694122314453125 - ], - [ - 340.02618408203125, - -42.941436767578125 - ], - [ - 338.27349853515625, - -42.941436767578125 - ], - [ - 338.27349853515625, - -42.941436767578125 - ] - ], - "pressures": [ - 0.0966796875, - 0.83203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7568359375, - 0.3447265625, - 0.1455078125, - 0.015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 338.27349853515625, - -42.941436767578125 - ] - }, - { - "id": "sl9GO1ozhxOVNhHWAO8bx", - "type": "freedraw", - "x": -220.04757690429688, - "y": -161.49597930908203, - "width": 65.7266845703125, - "height": 21.908905029296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 234578669, - "version": 809, - "versionNonce": 538801379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - 0 - ], - [ - -7.01080322265625, - 0 - ], - [ - -11.39263916015625, - 0.876373291015625 - ], - [ - -14.89801025390625, - 2.62908935546875 - ], - [ - -18.4034423828125, - 3.50543212890625 - ], - [ - -15.7744140625, - 7.010833740234375 - ], - [ - -8.7635498046875, - 10.516265869140625 - ], - [ - -0.8763427734375, - 14.021697998046875 - ], - [ - 7.0108642578125, - 16.650787353515625 - ], - [ - 18.40350341796875, - 20.156219482421875 - ], - [ - 24.5379638671875, - 21.908905029296875 - ], - [ - 28.91973876953125, - 21.908905029296875 - ], - [ - 35.93060302734375, - 21.908905029296875 - ], - [ - 39.43603515625, - 20.156219482421875 - ], - [ - 42.06512451171875, - 19.279815673828125 - ], - [ - 45.570556640625, - 19.279815673828125 - ], - [ - 47.3232421875, - 19.279815673828125 - ], - [ - 47.3232421875, - 19.279815673828125 - ] - ], - "pressures": [ - 0.11328125, - 0.7744140625, - 0.921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.740234375, - 0.3310546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 47.3232421875, - 19.279815673828125 - ] - }, - { - "id": "HYZ5SDLef9oetivUEYKI7", - "type": "freedraw", - "x": -216.54214477539062, - "y": -158.86688995361328, - "width": 63.09759521484375, - "height": 26.29071044921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 464753805, - "version": 812, - "versionNonce": 306904781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.876373291015625 - ], - [ - -3.50543212890625, - -0.876373291015625 - ], - [ - -7.0108642578125, - -0.876373291015625 - ], - [ - -11.39263916015625, - -0.876373291015625 - ], - [ - -15.7744140625, - 2.629058837890625 - ], - [ - -17.527099609375, - 3.505401611328125 - ], - [ - -18.4034423828125, - 5.258148193359375 - ], - [ - -18.4034423828125, - 7.010833740234375 - ], - [ - -11.39263916015625, - 12.268951416015625 - ], - [ - -4.38177490234375, - 16.650726318359375 - ], - [ - 3.50543212890625, - 19.279815673828125 - ], - [ - 14.8980712890625, - 21.908905029296875 - ], - [ - 26.29071044921875, - 24.537933349609375 - ], - [ - 33.301513671875, - 25.414337158203125 - ], - [ - 35.93060302734375, - 25.414337158203125 - ], - [ - 37.683349609375, - 24.537933349609375 - ], - [ - 40.3123779296875, - 23.661590576171875 - ], - [ - 43.81781005859375, - 21.908905029296875 - ], - [ - 44.69415283203125, - 21.908905029296875 - ], - [ - 44.69415283203125, - 21.032562255859375 - ], - [ - 44.69415283203125, - 21.032562255859375 - ] - ], - "pressures": [ - 0.0576171875, - 0.56640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.50390625, - 0.2080078125, - 0.16015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 44.69415283203125, - 21.032562255859375 - ] - }, - { - "id": "aYzj6Gpzkjlx4VposgKEM", - "type": "freedraw", - "x": -225.30569458007812, - "y": -161.49597930908203, - "width": 69.23211669921875, - "height": 25.414337158203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 445771459, - "version": 811, - "versionNonce": 1258479747, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - -0.8763427734375 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - -3.50543212890625, - -0.8763427734375 - ], - [ - -9.639892578125, - -0.8763427734375 - ], - [ - -15.7744140625, - 0 - ], - [ - -19.27984619140625, - 0.876373291015625 - ], - [ - -20.15618896484375, - 3.50543212890625 - ], - [ - -18.40350341796875, - 7.010833740234375 - ], - [ - -14.02166748046875, - 9.639923095703125 - ], - [ - -10.51629638671875, - 12.269012451171875 - ], - [ - 0, - 16.650787353515625 - ], - [ - 9.639892578125, - 19.279815673828125 - ], - [ - 20.15618896484375, - 21.032562255859375 - ], - [ - 28.91973876953125, - 22.785247802734375 - ], - [ - 36.80694580078125, - 24.537994384765625 - ], - [ - 43.81781005859375, - 24.537994384765625 - ], - [ - 47.3232421875, - 24.537994384765625 - ], - [ - 49.075927734375, - 24.537994384765625 - ], - [ - 49.075927734375, - 23.661651611328125 - ], - [ - 49.075927734375, - 23.661651611328125 - ] - ], - "pressures": [ - 0.02734375, - 0.384765625, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.876953125, - 0.4423828125, - 0.1728515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.075927734375, - 23.661651611328125 - ] - }, - { - "id": "JZLcRi0wqYfXoPcPWVD0O", - "type": "freedraw", - "x": -209.53128051757812, - "y": -157.99054718017578, - "width": 66.60302734375, - "height": 28.919769287109375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1132222147, - "version": 810, - "versionNonce": 58432813, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -3.50543212890625 - ], - [ - -7.0108642578125, - -3.50543212890625 - ], - [ - -11.39263916015625, - -3.50543212890625 - ], - [ - -15.7744140625, - -3.50543212890625 - ], - [ - -20.15618896484375, - -2.629058837890625 - ], - [ - -24.5379638671875, - 0 - ], - [ - -25.414306640625, - 1.752716064453125 - ], - [ - -25.414306640625, - 5.258148193359375 - ], - [ - -24.5379638671875, - 7.887176513671875 - ], - [ - -18.40350341796875, - 12.269012451171875 - ], - [ - -10.51629638671875, - 15.774383544921875 - ], - [ - 1.752685546875, - 19.279815673828125 - ], - [ - 14.02166748046875, - 21.908905029296875 - ], - [ - 22.7852783203125, - 23.661590576171875 - ], - [ - 30.6724853515625, - 24.537994384765625 - ], - [ - 35.05426025390625, - 24.537994384765625 - ], - [ - 38.55963134765625, - 25.414337158203125 - ], - [ - 41.188720703125, - 25.414337158203125 - ], - [ - 41.188720703125, - 25.414337158203125 - ] - ], - "pressures": [ - 0.0400390625, - 0.54296875, - 0.83203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8408203125, - 0.478515625, - 0.203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.188720703125, - 25.414337158203125 - ] - }, - { - "id": "Nc1r2WCLJ2alsDTLRtXnl", - "type": "freedraw", - "x": -184.11697387695312, - "y": -132.57621002197266, - "width": 98.15185546875, - "height": 77.99569702148438, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 283465389, - "version": 805, - "versionNonce": 964286499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.0108642578125, - 0 - ], - [ - -6.13446044921875, - -0.8763427734375 - ], - [ - 6.134521484375, - -4.38177490234375 - ], - [ - 18.4034423828125, - -8.7635498046875 - ], - [ - 35.05419921875, - -15.7744140625 - ], - [ - 52.5814208984375, - -22.7852783203125 - ], - [ - 66.60302734375, - -30.6724853515625 - ], - [ - 82.37744140625, - -42.065093994140625 - ], - [ - 86.75927734375, - -49.075958251953125 - ], - [ - 89.3883056640625, - -55.21044921875 - ], - [ - 91.1409912109375, - -60.46856689453125 - ], - [ - 90.2646484375, - -67.47943115234375 - ], - [ - 85.006591796875, - -70.98486328125 - ], - [ - 77.9957275390625, - -74.49026489257812 - ], - [ - 72.737548828125, - -77.11935424804688 - ], - [ - 70.98486328125, - -77.99569702148438 - ], - [ - 69.232177734375, - -77.99569702148438 - ], - [ - 67.4793701171875, - -77.99569702148438 - ], - [ - 66.60302734375, - -77.99569702148438 - ], - [ - 66.60302734375, - -77.99569702148438 - ] - ], - "pressures": [ - 0.052734375, - 0.708984375, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6953125, - 0.462890625, - 0.138671875, - 0.07421875, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.60302734375, - -77.99569702148438 - ] - }, - { - "id": "MsC_GHKBq9k_ha31-rwT9", - "type": "freedraw", - "x": -115.76113891601562, - "y": -207.9428482055664, - "width": 127.0716552734375, - "height": 73.6138916015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1275291501, - "version": 804, - "versionNonce": 365522829, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.0107421875, - 5.258148193359375 - ], - [ - 7.88720703125, - 9.639923095703125 - ], - [ - 7.0107421875, - 15.7744140625 - ], - [ - 0, - 23.66162109375 - ], - [ - -18.403564453125, - 40.3123779296875 - ], - [ - -34.177978515625, - 51.70501708984375 - ], - [ - -50.8287353515625, - 60.46856689453125 - ], - [ - -67.4794921875, - 66.60308837890625 - ], - [ - -82.37750244140625, - 70.1085205078125 - ], - [ - -99.02825927734375, - 72.737548828125 - ], - [ - -106.91546630859375, - 73.6138916015625 - ], - [ - -112.17364501953125, - 73.6138916015625 - ], - [ - -115.6790771484375, - 72.737548828125 - ], - [ - -118.30810546875, - 70.98486328125 - ], - [ - -119.1844482421875, - 67.47943115234375 - ], - [ - -119.1844482421875, - 66.60308837890625 - ], - [ - -116.555419921875, - 66.60308837890625 - ], - [ - -114.80267333984375, - 67.47943115234375 - ], - [ - -114.80267333984375, - 67.47943115234375 - ] - ], - "pressures": [ - 0.0810546875, - 0.283203125, - 0.4287109375, - 0.6904296875, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75, - 0.2763671875, - 0.2109375, - 0.1220703125, - 0.037109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -114.80267333984375, - 67.47943115234375 - ] - }, - { - "id": "Vtr2uLGr4E5Hqutfnyf3k", - "type": "freedraw", - "x": -185.86965942382812, - "y": -136.0816421508789, - "width": 85.00653076171875, - "height": 77.11932373046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1537279363, - "version": 805, - "versionNonce": 426826691, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - 1.752685546875 - ], - [ - -3.50543212890625, - 1.752685546875 - ], - [ - 4.38177490234375, - 1.752685546875 - ], - [ - 13.14532470703125, - 0 - ], - [ - 25.414306640625, - -3.50543212890625 - ], - [ - 37.683349609375, - -8.7635498046875 - ], - [ - 48.1995849609375, - -14.8980712890625 - ], - [ - 61.344970703125, - -23.66162109375 - ], - [ - 68.355712890625, - -28.91973876953125 - ], - [ - 74.490234375, - -34.177886962890625 - ], - [ - 78.8720703125, - -40.3123779296875 - ], - [ - 80.624755859375, - -48.1995849609375 - ], - [ - 77.9957275390625, - -54.334075927734375 - ], - [ - 72.737548828125, - -59.59222412109375 - ], - [ - 68.355712890625, - -63.9739990234375 - ], - [ - 63.9739990234375, - -68.35577392578125 - ], - [ - 58.7158203125, - -73.61392211914062 - ], - [ - 56.963134765625, - -74.49026489257812 - ], - [ - 56.0867919921875, - -75.36663818359375 - ], - [ - 56.0867919921875, - -75.36663818359375 - ] - ], - "pressures": [ - 0.1103515625, - 0.46484375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8349609375, - 0.5673828125, - 0.2880859375, - 0.154296875, - 0.109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 56.0867919921875, - -75.36663818359375 - ] - }, - { - "id": "wLqEETAxZyUjAdY9FfKbE", - "type": "freedraw", - "x": -124.52468872070312, - "y": -210.57190704345703, - "width": 119.1844482421875, - "height": 77.99569702148438, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 669264067, - "version": 806, - "versionNonce": 393082349, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - 2.629058837890625 - ], - [ - 2.6290283203125, - 9.639923095703125 - ], - [ - 2.6290283203125, - 18.403472900390625 - ], - [ - 1.752685546875, - 27.167022705078125 - ], - [ - -4.3818359375, - 40.3123779296875 - ], - [ - -10.516357421875, - 48.1995849609375 - ], - [ - -20.15625, - 54.334075927734375 - ], - [ - -33.3016357421875, - 59.592193603515625 - ], - [ - -56.96319580078125, - 68.35574340820312 - ], - [ - -70.98492431640625, - 72.73757934570312 - ], - [ - -81.50115966796875, - 75.36660766601562 - ], - [ - -87.63568115234375, - 77.11935424804688 - ], - [ - -92.0174560546875, - 77.99569702148438 - ], - [ - -99.0283203125, - 77.99569702148438 - ], - [ - -105.16278076171875, - 77.11935424804688 - ], - [ - -110.4208984375, - 75.36660766601562 - ], - [ - -113.04998779296875, - 73.61392211914062 - ], - [ - -115.6790771484375, - 72.73757934570312 - ], - [ - -116.555419921875, - 71.86117553710938 - ], - [ - -116.555419921875, - 70.98483276367188 - ], - [ - -116.555419921875, - 70.98483276367188 - ] - ], - "pressures": [ - 0.025390625, - 0.423828125, - 0.6240234375, - 0.796875, - 0.9580078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.8984375, - 0.724609375, - 0.580078125, - 0.3994140625, - 0.2646484375, - 0.1806640625, - 0.1259765625, - 0.072265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -116.555419921875, - 70.98483276367188 - ] - }, - { - "id": "IMl1-q3W8uR8Ibcagz4hI", - "type": "freedraw", - "x": -193.75686645507812, - "y": -137.8343276977539, - "width": 87.63568115234375, - "height": 66.60305786132812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1270512045, - "version": 803, - "versionNonce": 1460038499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 1.752685546875 - ], - [ - -0.8763427734375, - 1.752685546875 - ], - [ - 5.25811767578125, - 0.8763427734375 - ], - [ - 12.26898193359375, - -0.87640380859375 - ], - [ - 22.78521728515625, - -3.50543212890625 - ], - [ - 35.9305419921875, - -8.76361083984375 - ], - [ - 57.8394775390625, - -18.40350341796875 - ], - [ - 70.1085205078125, - -24.537994384765625 - ], - [ - 77.9957275390625, - -29.796142578125 - ], - [ - 84.130126953125, - -35.930633544921875 - ], - [ - 85.0064697265625, - -38.5596923828125 - ], - [ - 85.8829345703125, - -42.06512451171875 - ], - [ - 85.8829345703125, - -47.3232421875 - ], - [ - 85.8829345703125, - -52.581390380859375 - ], - [ - 85.0064697265625, - -57.83953857421875 - ], - [ - 78.8720703125, - -64.85037231445312 - ], - [ - 77.9957275390625, - -64.85037231445312 - ], - [ - 77.9957275390625, - -64.85037231445312 - ] - ], - "pressures": [ - 0.064453125, - 0.3935546875, - 0.611328125, - 0.79296875, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8134765625, - 0.4873046875, - 0.2216796875, - 0.0849609375, - 0.02734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 77.9957275390625, - -64.85037231445312 - ] - }, - { - "id": "s-07dxF0BhUA9XAwZtC-F", - "type": "freedraw", - "x": -119.26663208007812, - "y": -199.17926788330078, - "width": 58.7158203125, - "height": 56.963104248046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1160762381, - "version": 799, - "versionNonce": 1400025165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - 2.629058837890625 - ], - [ - 2.6290283203125, - 5.25811767578125 - ], - [ - 2.6290283203125, - 10.516265869140625 - ], - [ - -1.752685546875, - 18.403472900390625 - ], - [ - -8.7635498046875, - 25.414306640625 - ], - [ - -17.527099609375, - 32.4251708984375 - ], - [ - -26.2906494140625, - 41.188720703125 - ], - [ - -42.0650634765625, - 51.704986572265625 - ], - [ - -49.9522705078125, - 55.210418701171875 - ], - [ - -54.33404541015625, - 56.963104248046875 - ], - [ - -55.21038818359375, - 56.963104248046875 - ], - [ - -56.0867919921875, - 56.963104248046875 - ], - [ - -56.0867919921875, - 55.210418701171875 - ], - [ - -56.0867919921875, - 55.210418701171875 - ] - ], - "pressures": [ - 0.0244140625, - 0.232421875, - 0.263671875, - 0.3125, - 0.4248046875, - 0.50390625, - 0.556640625, - 0.58984375, - 0.591796875, - 0.5869140625, - 0.5595703125, - 0.4453125, - 0.2392578125, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -56.0867919921875, - 55.210418701171875 - ] - }, - { - "id": "Dd-7DkA99LVi3LfTULwfQ", - "type": "freedraw", - "x": -137.67007446289062, - "y": -167.6304702758789, - "width": 82.37750244140625, - "height": 39.43603515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 356595469, - "version": 798, - "versionNonce": 1451820803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558534, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 6.134490966796875 - ], - [ - -7.0108642578125, - 11.39263916015625 - ], - [ - -15.7744140625, - 16.6507568359375 - ], - [ - -25.414306640625, - 22.7852783203125 - ], - [ - -35.93060302734375, - 28.91973876953125 - ], - [ - -51.70501708984375, - 36.80694580078125 - ], - [ - -62.2213134765625, - 39.43603515625 - ], - [ - -72.737548828125, - 39.43603515625 - ], - [ - -80.624755859375, - 39.43603515625 - ], - [ - -82.37750244140625, - 38.5596923828125 - ], - [ - -82.37750244140625, - 37.68328857421875 - ], - [ - -77.9957275390625, - 36.80694580078125 - ], - [ - -73.61395263671875, - 35.93060302734375 - ], - [ - -71.8612060546875, - 35.93060302734375 - ], - [ - -71.8612060546875, - 35.93060302734375 - ] - ], - "pressures": [ - 0.08984375, - 0.2529296875, - 0.2919921875, - 0.3447265625, - 0.3818359375, - 0.3994140625, - 0.40625, - 0.4091796875, - 0.4091796875, - 0.365234375, - 0.330078125, - 0.2568359375, - 0.1357421875, - 0.07421875, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -71.8612060546875, - 35.93060302734375 - ] - }, - { - "id": "CWqqnSqGhvWvSTLd1MbDh", - "type": "freedraw", - "x": -204.27316284179688, - "y": -136.0816421508789, - "width": 86.75921630859375, - "height": 41.188720703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1312145283, - "version": 798, - "versionNonce": 2008096429, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.2581787109375, - 0.8763427734375 - ], - [ - 9.63995361328125, - 0.8763427734375 - ], - [ - 14.8980712890625, - 0.8763427734375 - ], - [ - 22.7852783203125, - -1.752685546875 - ], - [ - 38.55963134765625, - -10.51629638671875 - ], - [ - 53.45770263671875, - -18.40350341796875 - ], - [ - 65.72674560546875, - -26.290679931640625 - ], - [ - 75.36663818359375, - -33.301544189453125 - ], - [ - 79.74847412109375, - -36.80694580078125 - ], - [ - 80.62481689453125, - -39.43603515625 - ], - [ - 81.50115966796875, - -39.43603515625 - ], - [ - 83.25384521484375, - -39.43603515625 - ], - [ - 85.88287353515625, - -40.3123779296875 - ], - [ - 86.75921630859375, - -40.3123779296875 - ], - [ - 86.75921630859375, - -40.3123779296875 - ] - ], - "pressures": [ - 0.0771484375, - 0.294921875, - 0.3681640625, - 0.4423828125, - 0.4951171875, - 0.5400390625, - 0.5478515625, - 0.552734375, - 0.5556640625, - 0.529296875, - 0.2939453125, - 0.2451171875, - 0.1708984375, - 0.0947265625, - 0.0361328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 86.75921630859375, - -40.3123779296875 - ] - }, - { - "id": "545lIXY5Zg0cH45cWL_UK", - "type": "freedraw", - "x": -210.4898681640624, - "y": -162.6186981201172, - "width": 99.9046630859375, - "height": 29.79608154296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1345942435, - "version": 803, - "versionNonce": 1853304483, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.7525634765625, - 0 - ], - [ - -10.51611328125, - 0 - ], - [ - -21.032470703125, - 0 - ], - [ - -28.043212890625, - 1.752685546875 - ], - [ - -31.548828125, - 3.50537109375 - ], - [ - -33.301513671875, - 3.50537109375 - ], - [ - -33.301513671875, - 5.25811767578125 - ], - [ - -33.301513671875, - 10.5162353515625 - ], - [ - -28.043212890625, - 15.77435302734375 - ], - [ - -21.032470703125, - 21.03253173828125 - ], - [ - -15.7744140625, - 24.5379638671875 - ], - [ - -8.7635498046875, - 24.5379638671875 - ], - [ - 8.7635498046875, - 26.2906494140625 - ], - [ - 21.0325927734375, - 28.04339599609375 - ], - [ - 29.796142578125, - 29.79608154296875 - ], - [ - 38.5596923828125, - 29.79608154296875 - ], - [ - 50.828857421875, - 29.79608154296875 - ], - [ - 59.5924072265625, - 29.79608154296875 - ], - [ - 64.850341796875, - 29.79608154296875 - ], - [ - 66.6031494140625, - 28.04339599609375 - ], - [ - 66.6031494140625, - 28.04339599609375 - ] - ], - "pressures": [ - 0.0712890625, - 0.8681640625, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8828125, - 0.71484375, - 0.4873046875, - 0.3505859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.6031494140625, - 28.04339599609375 - ] - }, - { - "id": "Tnwvjl379rb5tqMD8NyWO", - "type": "freedraw", - "x": -215.7479248046874, - "y": -159.1133270263672, - "width": 70.1083984375, - "height": 21.0325927734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1857709069, - "version": 800, - "versionNonce": 986890509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 10.5162353515625, - 0 - ], - [ - 7.0108642578125, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - -5.258056640625, - 0 - ], - [ - -14.0216064453125, - 1.75274658203125 - ], - [ - -22.78515625, - 3.50543212890625 - ], - [ - -24.5379638671875, - 3.50543212890625 - ], - [ - -24.5379638671875, - 5.2581787109375 - ], - [ - -15.7744140625, - 10.51629638671875 - ], - [ - -7.0108642578125, - 14.021728515625 - ], - [ - 3.5054931640625, - 17.52716064453125 - ], - [ - 15.7744140625, - 19.27984619140625 - ], - [ - 24.5379638671875, - 21.0325927734375 - ], - [ - 31.548828125, - 21.0325927734375 - ], - [ - 36.806884765625, - 21.0325927734375 - ], - [ - 42.0650634765625, - 21.0325927734375 - ], - [ - 45.5704345703125, - 21.0325927734375 - ], - [ - 45.5704345703125, - 21.0325927734375 - ] - ], - "pressures": [ - 0.03125, - 0.318359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.564453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 45.5704345703125, - 21.0325927734375 - ] - }, - { - "id": "TMu-N17iRL80LpA3aafDo", - "type": "freedraw", - "x": -222.7587890624999, - "y": -164.37144470214844, - "width": 82.37744140625, - "height": 29.796142578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 814430637, - "version": 800, - "versionNonce": 561996355, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 8.7635498046875, - 0 - ], - [ - 7.0108642578125, - 0 - ], - [ - 0, - 1.75274658203125 - ], - [ - -8.7635498046875, - 1.75274658203125 - ], - [ - -19.2799072265625, - 5.25811767578125 - ], - [ - -22.7852783203125, - 8.7635498046875 - ], - [ - -22.7852783203125, - 10.51629638671875 - ], - [ - -22.7852783203125, - 12.26898193359375 - ], - [ - -21.0325927734375, - 15.7744140625 - ], - [ - -8.7635498046875, - 21.03253173828125 - ], - [ - 8.7635498046875, - 24.5379638671875 - ], - [ - 22.7852783203125, - 28.04339599609375 - ], - [ - 35.05419921875, - 29.796142578125 - ], - [ - 45.570556640625, - 29.796142578125 - ], - [ - 50.82861328125, - 29.796142578125 - ], - [ - 56.0867919921875, - 29.796142578125 - ], - [ - 59.5921630859375, - 29.796142578125 - ], - [ - 59.5921630859375, - 29.796142578125 - ] - ], - "pressures": [ - 0.05859375, - 0.1767578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.884765625, - 0.4912109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 59.5921630859375, - 29.796142578125 - ] - }, - { - "id": "Awf-DskqoZNh2YNg-VseR", - "type": "freedraw", - "x": -221.0059814453124, - "y": -166.12413024902344, - "width": 78.8720703125, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1926316877, - "version": 802, - "versionNonce": 1112610669, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.7525634765625, - 0 - ], - [ - -10.516357421875, - 1.752685546875 - ], - [ - -17.527099609375, - 3.50543212890625 - ], - [ - -21.03271484375, - 5.25811767578125 - ], - [ - -21.03271484375, - 7.01080322265625 - ], - [ - -21.03271484375, - 12.26898193359375 - ], - [ - -15.7745361328125, - 17.527099609375 - ], - [ - -10.516357421875, - 22.78521728515625 - ], - [ - -5.25830078125, - 24.5379638671875 - ], - [ - -1.7528076171875, - 26.2906494140625 - ], - [ - 14.0216064453125, - 28.04339599609375 - ], - [ - 26.2906494140625, - 29.79608154296875 - ], - [ - 36.806884765625, - 31.548828125 - ], - [ - 45.5704345703125, - 31.548828125 - ], - [ - 52.581298828125, - 31.548828125 - ], - [ - 57.83935546875, - 31.548828125 - ], - [ - 57.83935546875, - 29.79608154296875 - ], - [ - 49.0758056640625, - 28.04339599609375 - ], - [ - 47.3231201171875, - 28.04339599609375 - ], - [ - 47.3231201171875, - 28.04339599609375 - ] - ], - "pressures": [ - 0.0859375, - 0.6337890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.392578125, - 0.16015625, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 47.3231201171875, - 28.04339599609375 - ] - }, - { - "id": "V3dUvQ8bmfz-XVz8svHHE", - "type": "freedraw", - "x": -219.2534179687499, - "y": -162.6186981201172, - "width": 45.570556640625, - "height": 24.5379638671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1957583693, - "version": 798, - "versionNonce": 411050467, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - -1.7525634765625, - 1.752685546875 - ], - [ - -7.0108642578125, - 3.50537109375 - ], - [ - -10.51611328125, - 5.25811767578125 - ], - [ - -14.0216064453125, - 7.01080322265625 - ], - [ - -15.7744140625, - 8.7635498046875 - ], - [ - -15.7744140625, - 10.5162353515625 - ], - [ - -15.7744140625, - 14.02166748046875 - ], - [ - -12.2689208984375, - 19.27978515625 - ], - [ - -3.50537109375, - 22.78521728515625 - ], - [ - 7.010986328125, - 24.5379638671875 - ], - [ - 15.7745361328125, - 24.5379638671875 - ], - [ - 22.7852783203125, - 24.5379638671875 - ], - [ - 28.04345703125, - 24.5379638671875 - ], - [ - 29.796142578125, - 24.5379638671875 - ], - [ - 29.796142578125, - 24.5379638671875 - ] - ], - "pressures": [ - 0.0576171875, - 0.283203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 29.796142578125, - 24.5379638671875 - ] - }, - { - "id": "2xONpW-Iu25zX7uH55Snm", - "type": "freedraw", - "x": -221.0059814453124, - "y": -159.1133270263672, - "width": 68.3558349609375, - "height": 28.04339599609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 828830349, - "version": 802, - "versionNonce": 1215668685, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.0107421875, - 0 - ], - [ - 3.5052490234375, - 0 - ], - [ - -5.25830078125, - 0 - ], - [ - -17.527099609375, - 0 - ], - [ - -22.785400390625, - 0 - ], - [ - -24.5380859375, - 1.75274658203125 - ], - [ - -24.5380859375, - 5.2581787109375 - ], - [ - -22.785400390625, - 8.76361083984375 - ], - [ - -19.2799072265625, - 12.26898193359375 - ], - [ - -12.26904296875, - 15.7744140625 - ], - [ - -5.25830078125, - 21.0325927734375 - ], - [ - 7.0107421875, - 24.53802490234375 - ], - [ - 17.527099609375, - 26.29071044921875 - ], - [ - 26.2906494140625, - 28.04339599609375 - ], - [ - 29.7960205078125, - 28.04339599609375 - ], - [ - 35.05419921875, - 28.04339599609375 - ], - [ - 40.312255859375, - 28.04339599609375 - ], - [ - 43.8177490234375, - 28.04339599609375 - ], - [ - 43.8177490234375, - 26.29071044921875 - ], - [ - 43.8177490234375, - 26.29071044921875 - ] - ], - "pressures": [ - 0.01953125, - 0.23046875, - 0.8935546875, - 0.9150390625, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8154296875, - 0.482421875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 43.8177490234375, - 26.29071044921875 - ] - }, - { - "id": "1Hl4q4EI-YkS15ga2yekQ", - "type": "freedraw", - "x": -213.9952392578124, - "y": -162.6186981201172, - "width": 64.850341796875, - "height": 31.54876708984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2108295821, - "version": 804, - "versionNonce": 1552412035, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.5054931640625, - 0 - ], - [ - -8.7635498046875, - 0 - ], - [ - -12.26904296875, - 1.752685546875 - ], - [ - -14.021728515625, - 1.752685546875 - ], - [ - -17.527099609375, - 3.50537109375 - ], - [ - -19.27978515625, - 5.25811767578125 - ], - [ - -21.0325927734375, - 7.01080322265625 - ], - [ - -22.7852783203125, - 8.7635498046875 - ], - [ - -22.7852783203125, - 10.5162353515625 - ], - [ - -22.7852783203125, - 12.26898193359375 - ], - [ - -15.7742919921875, - 17.527099609375 - ], - [ - -5.2581787109375, - 22.78521728515625 - ], - [ - 8.7635498046875, - 26.2906494140625 - ], - [ - 19.2799072265625, - 29.79608154296875 - ], - [ - 31.548828125, - 31.54876708984375 - ], - [ - 35.05419921875, - 31.54876708984375 - ], - [ - 36.8070068359375, - 31.54876708984375 - ], - [ - 40.3123779296875, - 31.54876708984375 - ], - [ - 42.0650634765625, - 31.54876708984375 - ], - [ - 42.0650634765625, - 28.04339599609375 - ], - [ - 38.5596923828125, - 26.2906494140625 - ], - [ - 38.5596923828125, - 26.2906494140625 - ] - ], - "pressures": [ - 0.0439453125, - 0.7265625, - 0.822265625, - 0.853515625, - 0.8740234375, - 0.904296875, - 0.9453125, - 0.96484375, - 0.96875, - 0.96875, - 0.970703125, - 0.9794921875, - 0.9755859375, - 0.98828125, - 0.990234375, - 1, - 0.990234375, - 0.986328125, - 0.9384765625, - 0.8896484375, - 0.1630859375, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 38.5596923828125, - 26.2906494140625 - ] - }, - { - "id": "k3Z8xcjZ0AFbTRb8dWk9I", - "type": "freedraw", - "x": -194.7153320312499, - "y": -138.0807342529297, - "width": 124.4425048828125, - "height": 96.39916992187489, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 127352589, - "version": 798, - "versionNonce": 39444525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - 1.752685546875 - ], - [ - -3.5054931640625, - 3.50543212890625 - ], - [ - 7.0107421875, - 5.25811767578125 - ], - [ - 19.27978515625, - 5.25811767578125 - ], - [ - 31.5487060546875, - 5.25811767578125 - ], - [ - 49.0758056640625, - 1.752685546875 - ], - [ - 61.344970703125, - -3.50543212890625 - ], - [ - 73.61376953125, - -12.26898193359375 - ], - [ - 87.6356201171875, - -24.5379638671875 - ], - [ - 99.904541015625, - -36.80694580078125 - ], - [ - 112.1734619140625, - -54.3341064453125 - ], - [ - 115.678955078125, - -64.850341796875 - ], - [ - 115.678955078125, - -71.8612060546875 - ], - [ - 115.678955078125, - -77.119384765625 - ], - [ - 105.1627197265625, - -84.13018798828125 - ], - [ - 96.399169921875, - -87.63562011718739 - ], - [ - 89.38818359375, - -91.14105224609364 - ], - [ - 87.6356201171875, - -91.14105224609364 - ], - [ - 89.38818359375, - -89.38836669921864 - ], - [ - 91.1409912109375, - -87.63562011718739 - ], - [ - 91.1409912109375, - -87.63562011718739 - ] - ], - "pressures": [ - 0.0908203125, - 0.734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.599609375, - 0.1552734375, - 0.107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 91.1409912109375, - -87.63562011718739 - ] - }, - { - "id": "GAK9GGowdRdBz-1lpMk_h", - "type": "freedraw", - "x": -115.84326171874989, - "y": -223.96366882324207, - "width": 126.1953125, - "height": 89.38836669921864, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1535990477, - "version": 795, - "versionNonce": 1356154147, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.0107421875, - 3.5054321289061363 - ], - [ - 8.7635498046875, - 8.763549804687386 - ], - [ - 8.7635498046875, - 19.279846191406136 - ], - [ - 8.7635498046875, - 38.559692382812386 - ], - [ - 0, - 54.334106445312386 - ], - [ - -14.0218505859375, - 64.85034179687489 - ], - [ - -28.04345703125, - 71.86120605468739 - ], - [ - -54.334228515625, - 78.87207031249989 - ], - [ - -73.614013671875, - 80.62475585937489 - ], - [ - -91.14111328125, - 82.37750244140614 - ], - [ - -105.1627197265625, - 85.88293457031239 - ], - [ - -113.92626953125, - 87.63562011718739 - ], - [ - -117.4317626953125, - 87.63562011718739 - ], - [ - -117.4317626953125, - 89.38836669921864 - ], - [ - -112.1737060546875, - 87.63562011718739 - ], - [ - -106.91552734375, - 84.13018798828114 - ], - [ - -105.1627197265625, - 84.13018798828114 - ], - [ - -105.1627197265625, - 84.13018798828114 - ] - ], - "pressures": [ - 0.0986328125, - 0.3759765625, - 0.5458984375, - 0.751953125, - 0.9296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9560546875, - 0.6337890625, - 0.2119140625, - 0.1474609375, - 0.0244140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -105.1627197265625, - 84.13018798828114 - ] - }, - { - "id": "q5rx7yk1FWZRlG750Sbnw", - "type": "freedraw", - "x": -201.7263183593749, - "y": -136.3280487060547, - "width": 98.15185546875, - "height": 68.35577392578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 444184963, - "version": 794, - "versionNonce": 1172787853, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.258056640625, - 3.50543212890625 - ], - [ - -1.7525634765625, - 3.50543212890625 - ], - [ - 10.516357421875, - 3.50543212890625 - ], - [ - 21.0325927734375, - 5.25811767578125 - ], - [ - 36.8070068359375, - 3.50543212890625 - ], - [ - 50.828857421875, - 0 - ], - [ - 64.850341796875, - -7.0108642578125 - ], - [ - 75.36669921875, - -17.527099609375 - ], - [ - 85.883056640625, - -29.79608154296875 - ], - [ - 92.893798828125, - -43.81781005859375 - ], - [ - 92.893798828125, - -50.82867431640625 - ], - [ - 92.893798828125, - -54.33404541015625 - ], - [ - 87.6356201171875, - -57.8394775390625 - ], - [ - 82.3775634765625, - -59.59222412109375 - ], - [ - 73.614013671875, - -63.09765625 - ], - [ - 70.1085205078125, - -63.09765625 - ], - [ - 70.1085205078125, - -63.09765625 - ] - ], - "pressures": [ - 0.0078125, - 0.4482421875, - 0.857421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.50390625, - 0.251953125, - 0.115234375, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.1085205078125, - -63.09765625 - ] - }, - { - "id": "p5XmXQApKPCBIyCmZS0y9", - "type": "freedraw", - "x": -126.35961914062489, - "y": -220.45823669433594, - "width": 141.9697265625, - "height": 96.399169921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2107780739, - "version": 796, - "versionNonce": 1826007235, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.258056640625, - 3.50543212890625 - ], - [ - 7.0108642578125, - 8.7635498046875 - ], - [ - 7.0108642578125, - 15.7744140625 - ], - [ - 5.258056640625, - 24.5379638671875 - ], - [ - -7.0107421875, - 43.81781005859375 - ], - [ - -19.2799072265625, - 57.83953857421875 - ], - [ - -35.0543212890625, - 71.8612060546875 - ], - [ - -56.0867919921875, - 80.624755859375 - ], - [ - -77.1192626953125, - 85.8829345703125 - ], - [ - -98.15185546875, - 89.3883056640625 - ], - [ - -124.442626953125, - 92.89373779296875 - ], - [ - -133.2061767578125, - 94.646484375 - ], - [ - -134.9588623046875, - 94.646484375 - ], - [ - -134.9588623046875, - 96.399169921875 - ], - [ - -133.2061767578125, - 96.399169921875 - ], - [ - -131.4534912109375, - 96.399169921875 - ], - [ - -127.947998046875, - 96.399169921875 - ], - [ - -122.6898193359375, - 96.399169921875 - ], - [ - -122.6898193359375, - 96.399169921875 - ] - ], - "pressures": [ - 0.0673828125, - 0.326171875, - 0.4208984375, - 0.5263671875, - 0.62890625, - 0.8076171875, - 0.8720703125, - 0.9345703125, - 0.9580078125, - 0.966796875, - 0.96875, - 0.9560546875, - 0.90625, - 0.8408203125, - 0.666015625, - 0.203125, - 0.15625, - 0.109375, - 0.048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -122.6898193359375, - 96.399169921875 - ] - }, - { - "id": "FrUP6mWfidtGb1hdwUlyj", - "type": "freedraw", - "x": -189.4572753906249, - "y": -132.82261657714844, - "width": 108.668212890625, - "height": 82.37744140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1162099491, - "version": 795, - "versionNonce": 1876392173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -17.527099609375, - 0 - ], - [ - -21.0325927734375, - 0 - ], - [ - -21.0325927734375, - 1.752685546875 - ], - [ - -10.5162353515625, - 1.752685546875 - ], - [ - 5.2581787109375, - 1.752685546875 - ], - [ - 26.2906494140625, - -1.752685546875 - ], - [ - 38.559814453125, - -8.7635498046875 - ], - [ - 52.581298828125, - -19.27984619140625 - ], - [ - 66.60302734375, - -29.79608154296875 - ], - [ - 77.119384765625, - -40.3123779296875 - ], - [ - 87.6356201171875, - -54.3341064453125 - ], - [ - 87.6356201171875, - -61.34490966796875 - ], - [ - 84.130126953125, - -68.35577392578125 - ], - [ - 78.8720703125, - -71.8612060546875 - ], - [ - 70.1085205078125, - -77.11932373046875 - ], - [ - 63.09765625, - -78.8720703125 - ], - [ - 61.344970703125, - -80.624755859375 - ], - [ - 61.344970703125, - -80.624755859375 - ] - ], - "pressures": [ - 0.03125, - 0.1650390625, - 0.21875, - 0.328125, - 0.57421875, - 0.6806640625, - 0.876953125, - 0.9365234375, - 0.9599609375, - 0.9794921875, - 0.9833984375, - 0.931640625, - 0.83203125, - 0.6494140625, - 0.419921875, - 0.1953125, - 0.1201171875, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.344970703125, - -80.624755859375 - ] - }, - { - "id": "JhIYzm2s1MvYVmZCQ1ou3", - "type": "freedraw", - "x": -191.2099609374999, - "y": -174.88768005371094, - "width": 117.431884765625, - "height": 80.62469482421864, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 350567267, - "version": 802, - "versionNonce": 908761187, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.7635498046875, - 0 - ], - [ - -15.7744140625, - -5.2581787109375 - ], - [ - -22.7852783203125, - -14.021728515625 - ], - [ - -33.301513671875, - -33.30157470703125 - ], - [ - -35.0543212890625, - -47.3232421875 - ], - [ - -36.8070068359375, - -56.086791992187386 - ], - [ - -36.8070068359375, - -61.344970703124886 - ], - [ - -31.548828125, - -61.344970703124886 - ], - [ - -21.032470703125, - -63.097656249999886 - ], - [ - -3.50537109375, - -64.85034179687489 - ], - [ - 19.27978515625, - -61.344970703124886 - ], - [ - 43.8177490234375, - -52.581420898437386 - ], - [ - 63.09765625, - -29.796142578125 - ], - [ - 66.6031494140625, - -14.021728515625 - ], - [ - 66.6031494140625, - -1.75274658203125 - ], - [ - 57.839599609375, - 10.5162353515625 - ], - [ - 45.5704345703125, - 14.02166748046875 - ], - [ - 24.5379638671875, - 15.77435302734375 - ], - [ - 5.2581787109375, - 12.26898193359375 - ], - [ - -14.021728515625, - 1.752685546875 - ], - [ - -31.548828125, - -10.51629638671875 - ], - [ - -47.3231201171875, - -33.30157470703125 - ], - [ - -50.8287353515625, - -43.81781005859375 - ], - [ - -50.8287353515625, - -49.075988769531136 - ], - [ - -45.570556640625, - -50.828674316406136 - ], - [ - -29.7960205078125, - -54.334106445312386 - ], - [ - -22.7852783203125, - -54.334106445312386 - ], - [ - -19.2799072265625, - -54.334106445312386 - ], - [ - -19.2799072265625, - -54.334106445312386 - ] - ], - "pressures": [ - 0.015625, - 0.296875, - 0.4462890625, - 0.662109375, - 0.8828125, - 0.9619140625, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.9423828125, - 0.9130859375, - 0.8388671875, - 0.80078125, - 0.724609375, - 0.646484375, - 0.3681640625, - 0.2001953125, - 0.150390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.2799072265625, - -54.334106445312386 - ] - }, - { - "id": "QJLm8o_muFvJQYYQ5ji71", - "type": "freedraw", - "x": -194.7153320312499, - "y": -187.15672302246094, - "width": 82.37744140625, - "height": 84.13018798828114, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 595410509, - "version": 798, - "versionNonce": 162779981, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.516357421875, - -15.77435302734375 - ], - [ - -15.7745361328125, - -29.79608154296875 - ], - [ - -15.7745361328125, - -40.312377929687386 - ], - [ - -10.516357421875, - -49.075927734374886 - ], - [ - -1.7528076171875, - -52.581298828124886 - ], - [ - 7.0107421875, - -52.581298828124886 - ], - [ - 15.7742919921875, - -52.581298828124886 - ], - [ - 22.78515625, - -52.581298828124886 - ], - [ - 35.0543212890625, - -42.065063476562386 - ], - [ - 42.0650634765625, - -29.79608154296875 - ], - [ - 47.3231201171875, - -12.26898193359375 - ], - [ - 49.0758056640625, - 3.50543212890625 - ], - [ - 31.5487060546875, - 22.7852783203125 - ], - [ - 15.7742919921875, - 29.796142578125 - ], - [ - 1.752685546875, - 29.796142578125 - ], - [ - -12.26904296875, - 22.7852783203125 - ], - [ - -21.0325927734375, - 12.26904296875 - ], - [ - -28.04345703125, - 0 - ], - [ - -29.796142578125, - -8.7635498046875 - ], - [ - -33.3016357421875, - -21.03253173828125 - ], - [ - -33.3016357421875, - -33.301513671875 - ], - [ - -26.2906494140625, - -49.075927734374886 - ], - [ - -17.527099609375, - -52.581298828124886 - ], - [ - -12.26904296875, - -54.334045410156136 - ], - [ - -12.26904296875, - -54.334045410156136 - ] - ], - "pressures": [ - 0.1123046875, - 0.53515625, - 0.7421875, - 0.9130859375, - 0.9755859375, - 0.9814453125, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.98828125, - 0.970703125, - 0.94921875, - 0.92578125, - 0.9189453125, - 0.908203125, - 0.853515625, - 0.5458984375, - 0.24609375, - 0.1044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -12.26904296875, - -54.334045410156136 - ] - }, - { - "id": "l-cvY2URAMX2FQVpJSrWH", - "type": "freedraw", - "x": -184.1990966796874, - "y": -192.4148406982422, - "width": 63.0975341796875, - "height": 71.86114501953114, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 362262467, - "version": 801, - "versionNonce": 2057278467, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - -3.5054931640625, - -7.0108642578125 - ], - [ - -12.26904296875, - -17.527099609375 - ], - [ - -21.0325927734375, - -29.79608154296875 - ], - [ - -26.290771484375, - -40.312377929687386 - ], - [ - -28.0433349609375, - -47.323181152343636 - ], - [ - -26.290771484375, - -47.323181152343636 - ], - [ - -19.27978515625, - -47.323181152343636 - ], - [ - -8.7635498046875, - -47.323181152343636 - ], - [ - 10.5162353515625, - -43.817810058593636 - ], - [ - 22.78515625, - -36.806945800781136 - ], - [ - 29.7960205078125, - -26.2906494140625 - ], - [ - 35.05419921875, - -15.7744140625 - ], - [ - 35.05419921875, - -1.752685546875 - ], - [ - 33.3016357421875, - 14.021728515625 - ], - [ - 28.0433349609375, - 21.03253173828125 - ], - [ - 22.78515625, - 24.5379638671875 - ], - [ - 15.7744140625, - 24.5379638671875 - ], - [ - 8.7635498046875, - 24.5379638671875 - ], - [ - -1.752685546875, - 15.7744140625 - ], - [ - -8.7635498046875, - 5.25811767578125 - ], - [ - -14.021728515625, - -8.7635498046875 - ], - [ - -14.021728515625, - -21.03253173828125 - ], - [ - -14.021728515625, - -28.04339599609375 - ], - [ - -10.5162353515625, - -28.04339599609375 - ], - [ - -8.7635498046875, - -29.79608154296875 - ], - [ - -8.7635498046875, - -28.04339599609375 - ], - [ - -8.7635498046875, - -28.04339599609375 - ] - ], - "pressures": [ - 0.0625, - 0.3115234375, - 0.4306640625, - 0.5341796875, - 0.6474609375, - 0.740234375, - 0.787109375, - 0.7890625, - 0.8056640625, - 0.8154296875, - 0.8203125, - 0.8203125, - 0.826171875, - 0.8349609375, - 0.8408203125, - 0.8115234375, - 0.783203125, - 0.74609375, - 0.72265625, - 0.708984375, - 0.6884765625, - 0.677734375, - 0.66796875, - 0.66796875, - 0.6240234375, - 0.583984375, - 0.5400390625, - 0.0595703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.7635498046875, - -28.04339599609375 - ] - }, - { - "id": "0iHelXx9D-udfQQh7ImMK", - "type": "freedraw", - "x": -191.2099609374999, - "y": -190.66209411621094, - "width": 52.5814208984375, - "height": 68.35577392578114, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 678474179, - "version": 801, - "versionNonce": 802546093, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50537109375, - -8.76361083984375 - ], - [ - -10.516357421875, - -17.52716064453125 - ], - [ - -14.021728515625, - -29.796142578125 - ], - [ - -14.021728515625, - -36.807006835937386 - ], - [ - -14.021728515625, - -43.817810058593636 - ], - [ - -14.021728515625, - -45.570556640624886 - ], - [ - -12.2689208984375, - -45.570556640624886 - ], - [ - 0, - -43.817810058593636 - ], - [ - 10.5162353515625, - -38.559692382812386 - ], - [ - 21.032470703125, - -29.796142578125 - ], - [ - 28.0433349609375, - -17.52716064453125 - ], - [ - 33.301513671875, - 3.50537109375 - ], - [ - 33.301513671875, - 15.7744140625 - ], - [ - 26.2906494140625, - 21.03253173828125 - ], - [ - 19.27978515625, - 22.78521728515625 - ], - [ - 12.2689208984375, - 22.78521728515625 - ], - [ - -1.752685546875, - 19.27978515625 - ], - [ - -10.516357421875, - 14.02166748046875 - ], - [ - -15.7744140625, - 5.25811767578125 - ], - [ - -19.2799072265625, - -3.50543212890625 - ], - [ - -19.2799072265625, - -21.0325927734375 - ], - [ - -19.2799072265625, - -31.548828125 - ], - [ - -17.527099609375, - -38.559692382812386 - ], - [ - -15.7744140625, - -40.312377929687386 - ], - [ - -14.021728515625, - -40.312377929687386 - ], - [ - -8.7635498046875, - -38.559692382812386 - ], - [ - -7.0108642578125, - -36.807006835937386 - ], - [ - -7.0108642578125, - -36.807006835937386 - ] - ], - "pressures": [ - 0.0478515625, - 0.2431640625, - 0.3583984375, - 0.55078125, - 0.640625, - 0.6943359375, - 0.6953125, - 0.720703125, - 0.783203125, - 0.794921875, - 0.8203125, - 0.8466796875, - 0.9404296875, - 0.97265625, - 0.986328125, - 0.98828125, - 0.98828125, - 0.970703125, - 0.9560546875, - 0.9423828125, - 0.921875, - 0.8642578125, - 0.662109375, - 0.466796875, - 0.3818359375, - 0.2216796875, - 0.1337890625, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.0108642578125, - -36.807006835937386 - ] - }, - { - "id": "z7-VNgZyXZyVDRSx6Ku0R", - "type": "freedraw", - "x": -187.7045898437499, - "y": -181.89854431152344, - "width": 36.8070068359375, - "height": 38.5596923828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 151668771, - "version": 795, - "versionNonce": 1244928931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50537109375, - -1.75274658203125 - ], - [ - -10.5162353515625, - -10.51629638671875 - ], - [ - -15.7742919921875, - -17.52716064453125 - ], - [ - -17.527099609375, - -22.7852783203125 - ], - [ - -17.527099609375, - -24.5379638671875 - ], - [ - -17.527099609375, - -28.04339599609375 - ], - [ - -17.527099609375, - -33.30157470703125 - ], - [ - -15.7742919921875, - -33.30157470703125 - ], - [ - -8.7635498046875, - -33.30157470703125 - ], - [ - 7.0108642578125, - -22.7852783203125 - ], - [ - 15.7744140625, - -14.021728515625 - ], - [ - 19.2799072265625, - -5.2581787109375 - ], - [ - 19.2799072265625, - 0 - ], - [ - 19.2799072265625, - 1.752685546875 - ], - [ - 15.7744140625, - 5.25811767578125 - ], - [ - 7.0108642578125, - 5.25811767578125 - ], - [ - 3.5054931640625, - 5.25811767578125 - ], - [ - -5.258056640625, - 0 - ], - [ - -8.7635498046875, - -5.2581787109375 - ], - [ - -10.5162353515625, - -10.51629638671875 - ], - [ - -10.5162353515625, - -12.26898193359375 - ], - [ - -10.5162353515625, - -14.021728515625 - ], - [ - -5.258056640625, - -14.021728515625 - ], - [ - -3.50537109375, - -14.021728515625 - ], - [ - -1.752685546875, - -14.021728515625 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0390625, - 0.2705078125, - 0.388671875, - 0.47265625, - 0.5166015625, - 0.525390625, - 0.5556640625, - 0.556640625, - 0.5556640625, - 0.556640625, - 0.5595703125, - 0.5556640625, - 0.525390625, - 0.51953125, - 0.5205078125, - 0.5380859375, - 0.5458984375, - 0.541015625, - 0.5341796875, - 0.529296875, - 0.515625, - 0.49609375, - 0.4267578125, - 0.263671875, - 0.185546875, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.752685546875, - -14.021728515625 - ] - }, - { - "id": "xSgRz9sVXUl2lG4V-_1eh", - "type": "freedraw", - "x": -182.65007672991032, - "y": -193.52600751604336, - "width": 50.07742745535711, - "height": 35.05423409598211, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2043847661, - "version": 800, - "versionNonce": 929506317, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.015520368303555, - 3.75579833984375 - ], - [ - -11.267438616071445, - 6.259678431919724 - ], - [ - -12.51935686383922, - 6.259678431919724 - ], - [ - -15.023280552455276, - 6.259678431919724 - ], - [ - -22.534877232142776, - 1.2519182477678896 - ], - [ - -25.038713727678555, - -3.755841936383945 - ], - [ - -27.54263741629461, - -8.76355852399547 - ], - [ - -27.54263741629461, - -16.275198800223166 - ], - [ - -27.54263741629461, - -20.030997140066916 - ], - [ - -27.54263741629461, - -22.534877232142776 - ], - [ - -26.290631975446445, - -22.534877232142776 - ], - [ - -22.534877232142776, - -22.534877232142776 - ], - [ - -10.015520368303555, - -18.779078892299026 - ], - [ - 0, - -13.771318708147305 - ], - [ - 7.5115966796875, - -6.259722028459805 - ], - [ - 12.519356863839334, - 1.2519182477678896 - ], - [ - 17.527117047991055, - 8.763558523995584 - ], - [ - 17.527117047991055, - 11.267438616071445 - ], - [ - 17.527117047991055, - 12.519356863839334 - ], - [ - 15.02328055245539, - 12.519356863839334 - ], - [ - 6.259678431919724, - 12.519356863839334 - ], - [ - -7.5115966796875, - 10.015476771763474 - ], - [ - -16.275198800223166, - 7.5115966796875 - ], - [ - -21.282958984375, - 5.00771658761164 - ], - [ - -27.54263741629461, - -1.2519618443079708 - ], - [ - -31.298392159598166, - -5.007760184151721 - ], - [ - -32.550310407366055, - -7.511640276227695 - ], - [ - -31.298392159598166, - -7.511640276227695 - ], - [ - -27.54263741629461, - -5.007760184151721 - ], - [ - -25.038713727678555, - -2.5038800920758604 - ], - [ - -23.786795479910666, - -2.5038800920758604 - ], - [ - -23.786795479910666, - -2.5038800920758604 - ] - ], - "pressures": [ - 0.009765625, - 0.208984375, - 0.310546875, - 0.388671875, - 0.720703125, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3310546875, - 0.2119140625, - 0.1220703125, - 0.0615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.786795479910666, - -2.5038800920758604 - ] - }, - { - "id": "AoJlADwg9Mzsquda6qXNK", - "type": "freedraw", - "x": -185.153913225446, - "y": -181.00665065220403, - "width": 46.321672712053555, - "height": 30.04647391183039, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1137435501, - "version": 797, - "versionNonce": 823570243, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.755841936383945, - -2.5038800920758604 - ], - [ - -7.51168387276789, - -6.25967843191961 - ], - [ - -13.7713623046875, - -12.519356863839334 - ], - [ - -16.27519880022328, - -15.023236955915195 - ], - [ - -18.779122488839334, - -18.77907889229914 - ], - [ - -20.03104073660711, - -21.282915387834805 - ], - [ - -21.282958984375, - -22.53487723214289 - ], - [ - -21.282958984375, - -25.03875732421875 - ], - [ - -17.527117047991055, - -26.29067557198664 - ], - [ - -11.267438616071445, - -25.03875732421875 - ], - [ - -3.755841936383945, - -22.53487723214289 - ], - [ - 6.25967843191961, - -17.527117047991055 - ], - [ - 13.77127511160711, - -11.267438616071445 - ], - [ - 18.779035295758945, - -5.007760184151834 - ], - [ - 18.779035295758945, - -1.2519182477678896 - ], - [ - 17.527117047991055, - 0 - ], - [ - 13.77127511160711, - 2.5038800920758604 - ], - [ - 3.755754743303555, - 3.75579833984375 - ], - [ - -6.25967843191961, - 3.75579833984375 - ], - [ - -16.27519880022328, - 3.75579833984375 - ], - [ - -23.78679547991078, - 1.2519182477678896 - ], - [ - -25.038800920758945, - 1.2519182477678896 - ], - [ - -27.54263741629461, - -15.023236955915195 - ], - [ - -27.54263741629461, - -16.27519880022328 - ], - [ - -23.78679547991078, - -17.527117047991055 - ], - [ - -20.03104073660711, - -17.527117047991055 - ], - [ - -16.27519880022328, - -17.527117047991055 - ], - [ - -15.02328055245539, - -17.527117047991055 - ], - [ - -15.02328055245539, - -17.527117047991055 - ] - ], - "pressures": [ - 0.0029296875, - 0.3828125, - 0.5458984375, - 0.85546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.02328055245539, - -17.527117047991055 - ] - }, - { - "id": "F9BtBQmv0lsMKWMVjVQIJ", - "type": "freedraw", - "x": -190.16167340959782, - "y": -179.75473240443614, - "width": 38.809988839285666, - "height": 31.29843575613836, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1593801507, - "version": 801, - "versionNonce": 341908077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.007760184151721, - -1.2519182477678896 - ], - [ - -8.763602120535666, - -3.75579833984375 - ], - [ - -16.275198800223166, - -8.763558523995584 - ], - [ - -20.03104073660711, - -13.771275111607224 - ], - [ - -23.786795479910666, - -18.779035295758945 - ], - [ - -25.038713727678555, - -22.534833635602695 - ], - [ - -25.038713727678555, - -23.78679547991078 - ], - [ - -25.038713727678555, - -25.03871372767867 - ], - [ - -23.786795479910666, - -26.29067557198664 - ], - [ - -21.282958984375, - -27.54259381975453 - ], - [ - -17.527117047991055, - -27.54259381975453 - ], - [ - -7.511683872767776, - -26.29067557198664 - ], - [ - -1.251918247767776, - -22.534833635602695 - ], - [ - 3.755754743303555, - -18.779035295758945 - ], - [ - 6.259678431919724, - -13.771275111607224 - ], - [ - 8.76351492745539, - -3.75579833984375 - ], - [ - 8.76351492745539, - 0 - ], - [ - 8.76351492745539, - 2.5038800920758604 - ], - [ - 5.007760184151834, - 3.755841936383831 - ], - [ - 0, - 3.755841936383831 - ], - [ - -11.267438616071445, - 2.5038800920758604 - ], - [ - -18.779035295758945, - 0 - ], - [ - -23.786795479910666, - -3.75579833984375 - ], - [ - -27.54263741629461, - -8.763558523995584 - ], - [ - -30.046473911830276, - -13.771275111607224 - ], - [ - -30.046473911830276, - -16.275155203683084 - ], - [ - -30.046473911830276, - -18.779035295758945 - ], - [ - -26.29071916852672, - -20.03099714006703 - ], - [ - -23.786795479910666, - -21.28291538783492 - ], - [ - -20.03104073660711, - -22.534833635602695 - ], - [ - -18.779035295758945, - -22.534833635602695 - ], - [ - -16.275198800223166, - -22.534833635602695 - ], - [ - -16.275198800223166, - -22.534833635602695 - ] - ], - "pressures": [ - 0.041015625, - 0.3916015625, - 0.48828125, - 0.61328125, - 0.6533203125, - 0.697265625, - 0.7783203125, - 0.8447265625, - 0.90625, - 0.927734375, - 0.9345703125, - 0.9365234375, - 0.9365234375, - 0.9404296875, - 0.9453125, - 0.953125, - 0.9423828125, - 0.9423828125, - 0.9423828125, - 0.9384765625, - 0.92578125, - 0.9169921875, - 0.9111328125, - 0.904296875, - 0.8935546875, - 0.87890625, - 0.8642578125, - 0.7783203125, - 0.6591796875, - 0.470703125, - 0.2578125, - 0.1455078125, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -16.275198800223166, - -22.534833635602695 - ] - }, - { - "id": "mmzsn0bqR29r0FZ4Gpxxs", - "type": "freedraw", - "x": -197.6733572823656, - "y": -182.25856889997192, - "width": 46.321672712053555, - "height": 35.05423409598211, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1825647629, - "version": 798, - "versionNonce": 832949987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.5038364955357792, - 1.2519182477678896 - ], - [ - -5.007672991071445, - -1.2519618443079708 - ], - [ - -6.259678431919724, - -3.755841936383945 - ], - [ - -7.5115966796875, - -7.511640276227695 - ], - [ - -8.76351492745539, - -12.519400460379416 - ], - [ - -10.01543317522328, - -18.77907889229914 - ], - [ - -10.01543317522328, - -23.78683907645086 - ], - [ - -10.01543317522328, - -26.29071916852672 - ], - [ - -10.01543317522328, - -27.54263741629461 - ], - [ - -5.007672991071445, - -27.54263741629461 - ], - [ - 2.503923688616055, - -26.29071916852672 - ], - [ - 11.267438616071331, - -21.282958984375 - ], - [ - 21.282958984375, - -13.771318708147305 - ], - [ - 31.298479352678555, - -3.755841936383945 - ], - [ - 33.80231584821422, - 0 - ], - [ - 36.306239536830276, - 5.00771658761164 - ], - [ - 36.306239536830276, - 7.5115966796875 - ], - [ - 28.7945556640625, - 7.5115966796875 - ], - [ - 17.527117047991055, - 5.00771658761164 - ], - [ - 7.511683872767776, - 2.5038364955357792 - ], - [ - 0, - 1.2519182477678896 - ], - [ - -2.5038364955357792, - 0 - ], - [ - -7.5115966796875, - -7.511640276227695 - ], - [ - -8.76351492745539, - -13.771318708147305 - ], - [ - -10.01543317522328, - -18.77907889229914 - ], - [ - -10.01543317522328, - -20.030997140066916 - ], - [ - -3.755754743303669, - -18.77907889229914 - ], - [ - 5.007760184151721, - -15.02328055245539 - ], - [ - 8.763602120535666, - -15.02328055245539 - ], - [ - 8.763602120535666, - -15.02328055245539 - ] - ], - "pressures": [ - 0.087890625, - 0.53125, - 0.6943359375, - 0.8173828125, - 0.908203125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.9580078125, - 0.9580078125, - 0.96875, - 0.9619140625, - 0.9384765625, - 0.8916015625, - 0.8701171875, - 0.4189453125, - 0.169921875, - 0.0126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.763602120535666, - -15.02328055245539 - ] - }, - { - "id": "F9NPlg1DzPxtPj-Ykqc1P", - "type": "freedraw", - "x": -261.5221470424103, - "y": -247.35932050432456, - "width": 151.484375, - "height": 276.6781180245535, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 901740109, - "version": 789, - "versionNonce": 2139964621, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.763514927455276, - -20.030953543526778 - ], - [ - -10.015433175223166, - -37.55811418805803 - ], - [ - -10.015433175223166, - -56.33719308035717 - ], - [ - 3.755841936383945, - -82.62782505580356 - ], - [ - 17.527117047991055, - -92.64334542410717 - ], - [ - 32.550397600446445, - -96.39918736049106 - ], - [ - 50.0775146484375, - -95.14718191964283 - ], - [ - 70.10855538504472, - -88.88750348772322 - ], - [ - 90.13950892857144, - -72.6123482840402 - ], - [ - 122.68990652901789, - -23.786795479910722 - ], - [ - 138.96510532924106, - 21.282915387834862 - ], - [ - 141.46894182477683, - 67.60458809988842 - ], - [ - 132.70533970424106, - 128.94949776785717 - ], - [ - 120.18598284040183, - 153.988298688616 - ], - [ - 106.41470772879461, - 167.75957380022322 - ], - [ - 93.89535086495539, - 175.27117047991072 - ], - [ - 83.87983049665183, - 179.02701241629455 - ], - [ - 76.36823381696433, - 180.27893066406244 - ], - [ - 65.10079520089289, - 180.27893066406244 - ], - [ - 70.10855538504472, - 179.02701241629455 - ], - [ - 70.10855538504472, - 179.02701241629455 - ] - ], - "pressures": [ - 0.1171875, - 0.2490234375, - 0.34765625, - 0.466796875, - 0.673828125, - 0.7421875, - 0.7607421875, - 0.7705078125, - 0.7890625, - 0.8115234375, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.87890625, - 0.447265625, - 0.0712890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.10855538504472, - 179.02701241629455 - ] - }, - { - "id": "Q6TxvEWhOAgOSBGXUR5I5", - "type": "freedraw", - "x": -238.98726981026743, - "y": -246.10740225655672, - "width": 123.94182477678567, - "height": 300.4649571010044, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 680330477, - "version": 791, - "versionNonce": 2121267843, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.51150948660711, - -6.25967843191961 - ], - [ - -13.771187918526834, - -15.023193359375 - ], - [ - -21.28287179129461, - -33.80227225167408 - ], - [ - -23.786795479910666, - -47.57359095982139 - ], - [ - -23.786795479910666, - -63.84878976004461 - ], - [ - -21.28287179129461, - -81.37590680803567 - ], - [ - -11.267438616071445, - -98.90302385602678 - ], - [ - 2.503923688616055, - -112.67434256417408 - ], - [ - 26.290719168526834, - -117.68210274832586 - ], - [ - 42.56591796875, - -115.1781790597098 - ], - [ - 58.84102957589289, - -102.65877859933033 - ], - [ - 76.36823381696433, - -80.12398856026783 - ], - [ - 96.39918736049106, - -25.038713727678555 - ], - [ - 100.155029296875, - 23.78683907645086 - ], - [ - 95.14726911272317, - 71.3604300362723 - ], - [ - 83.87983049665172, - 110.17050606863836 - ], - [ - 71.3604736328125, - 138.96501813616067 - ], - [ - 61.344953264508945, - 167.75957380022317 - ], - [ - 60.093035016741055, - 176.52317592075894 - ], - [ - 60.093035016741055, - 180.2790178571429 - ], - [ - 60.093035016741055, - 181.53093610491067 - ], - [ - 61.344953264508945, - 182.78285435267856 - ], - [ - 61.344953264508945, - 182.78285435267856 - ] - ], - "pressures": [ - 0.1025390625, - 0.1748046875, - 0.2265625, - 0.34375, - 0.4306640625, - 0.5029296875, - 0.53515625, - 0.5537109375, - 0.56640625, - 0.5673828125, - 0.57421875, - 0.580078125, - 0.5869140625, - 0.5966796875, - 0.5966796875, - 0.6044921875, - 0.673828125, - 0.7109375, - 0.72265625, - 0.6923828125, - 0.564453125, - 0.4580078125, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.344953264508945, - 182.78285435267856 - ] - }, - { - "id": "OSMfc2Fe-iScq4x3tcp2T", - "type": "freedraw", - "x": -335.3864571707585, - "y": -164.73145185198086, - "width": 438.1780133928571, - "height": 98.90306745256692, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 790212579, - "version": 779, - "versionNonce": 1552229165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -16.27511160714289, - 0 - ], - [ - -20.030953543526834, - 1.2519182477678896 - ], - [ - -20.030953543526834, - 5.00771658761164 - ], - [ - -10.015433175223166, - 8.763558523995584 - ], - [ - 3.755841936383945, - 11.267438616071445 - ], - [ - 37.558157784598166, - 16.275155203683084 - ], - [ - 76.36832101004461, - 20.03099714006703 - ], - [ - 131.45342145647317, - 22.53487723214289 - ], - [ - 192.7983747209821, - 20.03099714006703 - ], - [ - 267.91460309709817, - 5.00771658761164 - ], - [ - 310.4804338727678, - -11.267438616071445 - ], - [ - 349.29050990513383, - -28.7945556640625 - ], - [ - 383.09282575334817, - -45.069754464285666 - ], - [ - 405.62770298549106, - -58.841029575892776 - ], - [ - 418.1470598493303, - -71.36038643973211 - ], - [ - 418.1470598493303, - -76.36819022042403 - ], - [ - 413.13938685825894, - -76.36819022042403 - ], - [ - 413.13938685825894, - -76.36819022042403 - ] - ], - "pressures": [ - 0.130859375, - 0.177734375, - 0.2685546875, - 0.376953125, - 0.4873046875, - 0.6904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5205078125, - 0.236328125, - 0.01171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 413.13938685825894, - -76.36819022042403 - ] - }, - { - "id": "CeGcQjcjrlWoFGUIgFzQf", - "type": "freedraw", - "x": -356.6693289620531, - "y": -168.4872937883648, - "width": 499.5227922712054, - "height": 97.65110560825889, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1822773709, - "version": 777, - "versionNonce": 1949544995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -18.779035295758945, - -1.251918247767776 - ], - [ - -21.282871791294724, - -1.251918247767776 - ], - [ - -13.7713623046875, - 1.2519618443080844 - ], - [ - 15.023193359375, - 8.763558523995584 - ], - [ - 43.8177490234375, - 12.51940046037953 - ], - [ - 82.62782505580356, - 13.771318708147419 - ], - [ - 136.461181640625, - 15.02328055245539 - ], - [ - 197.80604771205356, - 10.015520368303669 - ], - [ - 279.1819545200892, - -12.51935686383922 - ], - [ - 333.01531110491067, - -28.7945556640625 - ], - [ - 388.1005859374999, - -42.56583077566961 - ], - [ - 433.17034040178567, - -52.581351143973166 - ], - [ - 469.47649274553567, - -67.60454450334817 - ], - [ - 478.23992047991067, - -80.12394496372764 - ], - [ - 474.484165736607, - -82.6278250558035 - ], - [ - 474.484165736607, - -82.6278250558035 - ] - ], - "pressures": [ - 0.068359375, - 0.1728515625, - 0.2197265625, - 0.5078125, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.849609375, - 0.3251953125, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 474.484165736607, - -82.6278250558035 - ] - }, - { - "id": "uRruYJXYw6GBGX3jPNOme", - "type": "freedraw", - "x": -302.83597237723166, - "y": -182.25856889997192, - "width": 375.5810546875, - "height": 83.87978690011153, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 573387747, - "version": 779, - "versionNonce": 1605514637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 8.763514927455276, - 0 - ], - [ - 17.527029854910666, - 2.5038364955357792 - ], - [ - 31.298392159598166, - 7.5115966796875 - ], - [ - 58.840942382812386, - 13.77127511160711 - ], - [ - 80.12390136718739, - 17.527117047991055 - ], - [ - 107.66653878348211, - 22.534833635602695 - ], - [ - 142.72077287946422, - 25.038713727678555 - ], - [ - 180.2789306640624, - 25.038713727678555 - ], - [ - 239.11996023995528, - 18.779035295758945 - ], - [ - 279.1819545200892, - 7.5115966796875 - ], - [ - 314.23618861607133, - -6.259722028459805 - ], - [ - 344.282749720982, - -21.282958984375 - ], - [ - 373.0772181919642, - -42.565874372209805 - ], - [ - 375.5810546875, - -51.329432896205276 - ], - [ - 364.31361607142844, - -56.33719308035711 - ], - [ - 343.03065708705344, - -58.84107317243297 - ], - [ - 336.7710658482142, - -58.84107317243297 - ], - [ - 336.7710658482142, - -58.84107317243297 - ] - ], - "pressures": [ - 0.0126953125, - 0.25390625, - 0.3544921875, - 0.55078125, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.5234375, - 0.16796875, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 336.7710658482142, - -58.84107317243297 - ] - }, - { - "id": "1vV6EhYesz9tDmgO-WIyW", - "type": "freedraw", - "x": -247.75078473772282, - "y": -186.01441083635586, - "width": 199.05796595982144, - "height": 65.1007080078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2057571789, - "version": 778, - "versionNonce": 1407153603, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.267438616071445, - 6.259678431919724 - ], - [ - 22.53487723214289, - 11.267438616071445 - ], - [ - 46.321672712053555, - 20.03099714006703 - ], - [ - 63.848789760044724, - 26.29067557198664 - ], - [ - 82.62782505580356, - 27.542637416294724 - ], - [ - 101.4068603515625, - 28.7945556640625 - ], - [ - 131.45342145647328, - 23.786839076450974 - ], - [ - 152.7362932477679, - 16.27519880022328 - ], - [ - 175.27117047991078, - 6.259678431919724 - ], - [ - 191.54636928013394, - -6.25967843191961 - ], - [ - 199.05796595982144, - -20.030997140066916 - ], - [ - 197.80604771205356, - -32.55035400390625 - ], - [ - 187.79052734375, - -35.05423409598211 - ], - [ - 174.0192522321429, - -36.30615234375 - ], - [ - 165.2556501116071, - -36.30615234375 - ], - [ - 162.75181361607144, - -36.30615234375 - ], - [ - 162.75181361607144, - -36.30615234375 - ] - ], - "pressures": [ - 0.0556640625, - 0.4736328125, - 0.6826171875, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6376953125, - 0.388671875, - 0.2080078125, - 0.095703125, - 0.0107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 162.75181361607144, - -36.30615234375 - ] - }, - { - "id": "ipm51txqnfmMjJz-j2Jwd", - "type": "freedraw", - "x": -118.80128696986571, - "y": -188.51829092843172, - "width": 160.24797712053567, - "height": 48.82555280412953, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 948005837, - "version": 782, - "versionNonce": 1951267821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.503923688616169, - 0 - ], - [ - 3.755841936383945, - 2.5038800920758604 - ], - [ - 3.755841936383945, - 6.259722028459805 - ], - [ - 1.2519182477678896, - 17.52716064453125 - ], - [ - -7.5115966796875, - 25.03875732421875 - ], - [ - -20.03095354352672, - 28.7945556640625 - ], - [ - -35.05423409598211, - 30.046517508370584 - ], - [ - -55.08518763950883, - 30.046517508370584 - ], - [ - -88.88750348772317, - 26.290719168526834 - ], - [ - -108.91845703124989, - 21.282958984375 - ], - [ - -125.19374302455356, - 16.275198800223166 - ], - [ - -136.4611816406249, - 12.519400460379416 - ], - [ - -145.22469656808028, - 5.007760184151834 - ], - [ - -150.2324567522321, - -1.2519182477678896 - ], - [ - -153.98829868861606, - -8.763558523995584 - ], - [ - -156.49213518415172, - -15.023236955915195 - ], - [ - -156.49213518415172, - -18.779035295758945 - ], - [ - -155.24021693638383, - -18.779035295758945 - ], - [ - -151.4843749999999, - -18.779035295758945 - ], - [ - -150.2324567522321, - -18.779035295758945 - ], - [ - -150.2324567522321, - -18.779035295758945 - ] - ], - "pressures": [ - 0.08203125, - 0.37890625, - 0.484375, - 0.6533203125, - 0.8134765625, - 0.8720703125, - 0.9130859375, - 0.9169921875, - 0.9111328125, - 0.859375, - 0.80078125, - 0.736328125, - 0.70703125, - 0.66015625, - 0.59765625, - 0.5029296875, - 0.384765625, - 0.298828125, - 0.2333984375, - 0.125, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -150.2324567522321, - -18.779035295758945 - ] - }, - { - "id": "d3Rglx4axRb4sysKB3WyQ", - "type": "freedraw", - "x": -235.2314278738835, - "y": -198.53376770019509, - "width": 160.24797712053567, - "height": 51.32943289620539, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1228569229, - "version": 778, - "versionNonce": 1016186211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 10.015520368303555, - 7.511640276227695 - ], - [ - 20.03104073660711, - 13.771318708147305 - ], - [ - 40.061994280133945, - 23.786795479910666 - ], - [ - 57.589111328125, - 30.046473911830276 - ], - [ - 76.36814662388394, - 33.80231584821422 - ], - [ - 106.41462053571422, - 36.306195940290195 - ], - [ - 122.6898193359375, - 35.05423409598211 - ], - [ - 136.461181640625, - 30.046473911830276 - ], - [ - 147.72862025669644, - 23.786795479910666 - ], - [ - 156.49213518415172, - 15.023236955915195 - ], - [ - 160.24797712053567, - 5.007760184151721 - ], - [ - 160.24797712053567, - -3.75579833984375 - ], - [ - 156.49213518415172, - -7.511640276227695 - ], - [ - 148.98053850446422, - -8.763558523995584 - ], - [ - 135.20917619977672, - -13.771318708147305 - ], - [ - 128.9494977678571, - -15.023236955915195 - ], - [ - 128.9494977678571, - -15.023236955915195 - ] - ], - "pressures": [ - 0.048828125, - 0.380859375, - 0.5673828125, - 0.884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9599609375, - 0.73046875, - 0.484375, - 0.16796875, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 128.9494977678571, - -15.023236955915195 - ] - }, - { - "id": "L37YlpWeFWf2Bw382UZ2T", - "type": "freedraw", - "x": -131.32064383370493, - "y": -191.0221274239674, - "width": 145.22478376116067, - "height": 41.31395612444203, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 822106253, - "version": 780, - "versionNonce": 1650587213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 17.527117047991055, - 1.251918247767776 - ], - [ - 20.03095354352672, - 6.25967843191961 - ], - [ - 21.282958984375, - 12.51935686383922 - ], - [ - 20.03095354352672, - 18.77903529575883 - ], - [ - 12.51935686383922, - 23.786795479910666 - ], - [ - -3.755841936383945, - 30.046473911830276 - ], - [ - -18.779035295758945, - 32.55035400390625 - ], - [ - -37.558157784598166, - 32.55035400390625 - ], - [ - -58.84102957589289, - 32.55035400390625 - ], - [ - -77.62006487165183, - 28.7945556640625 - ], - [ - -97.65110560825894, - 18.77903529575883 - ], - [ - -106.41470772879461, - 12.51935686383922 - ], - [ - -113.92630440848211, - 5.007716587611526 - ], - [ - -118.93406459263394, - -2.503880092075974 - ], - [ - -122.6898193359375, - -7.511640276227695 - ], - [ - -123.94182477678567, - -8.76360212053578 - ], - [ - -122.6898193359375, - -8.76360212053578 - ], - [ - -121.43781389508933, - -7.511640276227695 - ], - [ - -121.43781389508933, - -7.511640276227695 - ] - ], - "pressures": [ - 0.0791015625, - 0.3427734375, - 0.4375, - 0.6044921875, - 0.7607421875, - 0.8955078125, - 0.970703125, - 1, - 1, - 1, - 1, - 0.947265625, - 0.9111328125, - 0.83203125, - 0.75, - 0.5869140625, - 0.478515625, - 0.119140625, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -121.43781389508933, - -7.511640276227695 - ] - }, - { - "id": "DxnGDvvdnUGj3PFK6voVh", - "type": "freedraw", - "x": -133.8244803292407, - "y": -163.47953360421297, - "width": 68.85654994419644, - "height": 42.565874372209805, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1051917059, - "version": 753, - "versionNonce": 1704534275, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.755754743303669, - -1.2519182477678896 - ], - [ - 11.267438616071445, - -1.2519182477678896 - ], - [ - 20.030953543526834, - -2.5038800920758604 - ], - [ - 26.290631975446445, - -2.5038800920758604 - ], - [ - 30.04647391183039, - -2.5038800920758604 - ], - [ - 31.29839215959828, - -2.5038800920758604 - ], - [ - 31.29839215959828, - 0 - ], - [ - 31.29839215959828, - 6.25967843191961 - ], - [ - 26.290631975446445, - 10.015520368303555 - ], - [ - 18.779035295758945, - 15.023236955915195 - ], - [ - 7.5115966796875, - 20.030997140066916 - ], - [ - -11.267438616071331, - 27.54263741629461 - ], - [ - -23.786882672991055, - 32.55035400390625 - ], - [ - -31.298479352678555, - 37.558114188058084 - ], - [ - -35.054321289062386, - 38.810076032366055 - ], - [ - -36.306239536830276, - 40.061994280133945 - ], - [ - -36.306239536830276, - 38.810076032366055 - ], - [ - -37.558157784598166, - 36.306195940290195 - ], - [ - -37.558157784598166, - 33.802315848214334 - ], - [ - -37.558157784598166, - 31.29843575613836 - ], - [ - -30.046561104910666, - 31.29843575613836 - ], - [ - -26.29071916852672, - 31.29843575613836 - ], - [ - -26.29071916852672, - 31.29843575613836 - ] - ], - "pressures": [ - 0.109375, - 0.599609375, - 0.75390625, - 0.876953125, - 0.931640625, - 0.970703125, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8427734375, - 0.6923828125, - 0.5087890625, - 0.337890625, - 0.16796875, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -26.29071916852672, - 31.29843575613836 - ] - }, - { - "id": "K8rN8vADtqw1gxaxXUw2i", - "type": "freedraw", - "x": -125.06096540178532, - "y": -163.47953360421297, - "width": 78.8720703125, - "height": 41.313912527901834, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 117433069, - "version": 751, - "versionNonce": 885499053, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.2519182477678896, - 1.2519618443080844 - ], - [ - 2.503923688616055, - 0 - ], - [ - 5.007760184151834, - 0 - ], - [ - 6.25967843191961, - 0 - ], - [ - 12.519356863839334, - -1.2519182477678896 - ], - [ - 18.779035295758945, - 0 - ], - [ - 26.290719168526834, - 3.75579833984375 - ], - [ - 33.802315848214334, - 7.511640276227695 - ], - [ - 37.55815778459828, - 13.771318708147305 - ], - [ - 37.55815778459828, - 23.786795479910666 - ], - [ - 31.298479352678555, - 28.7945556640625 - ], - [ - 21.282958984375, - 32.55035400390625 - ], - [ - 7.5115966796875, - 33.802315848214334 - ], - [ - -17.527117047991055, - 36.306195940290195 - ], - [ - -32.550397600446445, - 37.558114188058084 - ], - [ - -40.061994280133945, - 40.061994280133945 - ], - [ - -41.31391252790172, - 40.061994280133945 - ], - [ - -40.061994280133945, - 40.061994280133945 - ], - [ - -28.7945556640625, - 40.061994280133945 - ], - [ - -26.29071916852672, - 40.061994280133945 - ], - [ - -26.29071916852672, - 40.061994280133945 - ] - ], - "pressures": [ - 0.1484375, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3017578125, - 0.1396484375, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -26.29071916852672, - 40.061994280133945 - ] - }, - { - "id": "G2txX3fMU45OKc9ND7pGh", - "type": "freedraw", - "x": -123.80904715401743, - "y": -163.47953360421297, - "width": 93.895263671875, - "height": 55.08523123604914, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1225978499, - "version": 755, - "versionNonce": 410257571, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.5038364955357792, - 0 - ], - [ - 1.2520054408481656, - -1.2519182477678896 - ], - [ - 6.25967843191961, - -1.2519182477678896 - ], - [ - 16.275198800223166, - 0 - ], - [ - 20.03104073660711, - 1.2519618443080844 - ], - [ - 21.282958984375, - 2.5038800920758604 - ], - [ - 23.786795479910666, - 5.007760184151834 - ], - [ - 23.786795479910666, - 10.015520368303555 - ], - [ - 23.786795479910666, - 16.275198800223166 - ], - [ - 13.7713623046875, - 27.54263741629461 - ], - [ - 0, - 35.05423409598211 - ], - [ - -15.023193359375, - 40.061994280133945 - ], - [ - -28.7945556640625, - 46.32171630859375 - ], - [ - -45.069754464285666, - 52.58139474051336 - ], - [ - -52.581351143973166, - 53.83331298828125 - ], - [ - -61.344866071428555, - 53.83331298828125 - ], - [ - -67.60454450334817, - 51.329389299665195 - ], - [ - -70.10846819196433, - 50.077471051897305 - ], - [ - -70.10846819196433, - 47.57363455636164 - ], - [ - -67.60454450334817, - 45.069710867745584 - ], - [ - -62.596871512276834, - 42.565874372209805 - ], - [ - -56.33719308035711, - 41.313912527901834 - ], - [ - -52.581351143973166, - 41.313912527901834 - ], - [ - -51.32943289620539, - 42.565874372209805 - ], - [ - -51.32943289620539, - 42.565874372209805 - ] - ], - "pressures": [ - 0.1103515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4130859375, - 0.2490234375, - 0.1728515625, - 0.0986328125, - 0.0478515625, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -51.32943289620539, - 42.565874372209805 - ] - }, - { - "id": "TwvQ2b2h8qzYUAnplSfnY", - "type": "freedraw", - "x": -127.56480189732099, - "y": -159.72373526436922, - "width": 78.87198311941961, - "height": 37.558114188058084, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1609354701, - "version": 754, - "versionNonce": 1596491533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.259678431919724, - -1.2519182477678896 - ], - [ - -3.755841936383945, - -1.2519182477678896 - ], - [ - 3.755754743303555, - -1.2519182477678896 - ], - [ - 10.015433175223166, - -1.2519182477678896 - ], - [ - 16.275111607142776, - 0 - ], - [ - 21.28287179129461, - 2.5038800920758604 - ], - [ - 25.038713727678555, - 5.007760184151834 - ], - [ - 27.54255022321422, - 8.763558523995584 - ], - [ - 26.290631975446445, - 13.771318708147305 - ], - [ - 18.779035295758945, - 20.030997140066916 - ], - [ - 7.5115966796875, - 26.290719168526834 - ], - [ - -6.259678431919724, - 31.29843575613836 - ], - [ - -25.038800920758945, - 35.054277692522305 - ], - [ - -35.05423409598211, - 36.306195940290195 - ], - [ - -42.56591796875, - 36.306195940290195 - ], - [ - -48.82559640066961, - 36.306195940290195 - ], - [ - -51.32943289620539, - 36.306195940290195 - ], - [ - -51.32943289620539, - 35.054277692522305 - ], - [ - -51.32943289620539, - 33.802315848214334 - ], - [ - -51.32943289620539, - 32.550397600446445 - ], - [ - -50.0775146484375, - 31.29843575613836 - ], - [ - -47.573678152901834, - 31.29843575613836 - ], - [ - -43.81783621651789, - 31.29843575613836 - ], - [ - -43.81783621651789, - 31.29843575613836 - ] - ], - "pressures": [ - 0.064453125, - 0.4306640625, - 0.787109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.6318359375, - 0.447265625, - 0.26953125, - 0.1484375, - 0.0732421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.81783621651789, - 31.29843575613836 - ] - }, - { - "id": "uITdfOaualJc5BYw-dhNl", - "type": "freedraw", - "x": -130.06872558593705, - "y": -162.2275717599049, - "width": 57.589111328125, - "height": 31.29843575613836, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 982836333, - "version": 753, - "versionNonce": 1792080963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.007760184151834, - -2.503880092075974 - ], - [ - -5.007760184151834, - -3.755841936383945 - ], - [ - -2.5038364955357792, - -3.755841936383945 - ], - [ - 3.755841936383831, - -3.755841936383945 - ], - [ - 12.51935686383922, - -2.503880092075974 - ], - [ - 17.527117047991055, - 0 - ], - [ - 21.282958984375, - 2.5038364955356656 - ], - [ - 23.786795479910666, - 3.75579833984375 - ], - [ - 26.29071916852672, - 7.5115966796875 - ], - [ - 26.29071916852672, - 11.26739501953125 - ], - [ - 22.534877232142776, - 16.27515520368297 - ], - [ - 15.023280552455276, - 20.030997140066916 - ], - [ - 5.007760184151721, - 22.53483363560258 - ], - [ - -11.267438616071445, - 23.786795479910666 - ], - [ - -18.779035295758945, - 25.038713727678555 - ], - [ - -23.78679547991078, - 26.290675571986526 - ], - [ - -26.290631975446445, - 26.290675571986526 - ], - [ - -28.7945556640625, - 26.290675571986526 - ], - [ - -31.29839215959828, - 26.290675571986526 - ], - [ - -31.29839215959828, - 27.542593819754416 - ], - [ - -27.542637416294724, - 27.542593819754416 - ], - [ - -23.78679547991078, - 27.542593819754416 - ], - [ - -23.78679547991078, - 27.542593819754416 - ] - ], - "pressures": [ - 0.0625, - 0.310546875, - 0.384765625, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7421875, - 0.2236328125, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.78679547991078, - 27.542593819754416 - ] - }, - { - "id": "7LH1wj5-FS88Z1Gvf9Skk", - "type": "freedraw", - "x": -130.06872558593705, - "y": -160.97565351213711, - "width": 58.84111676897328, - "height": 32.55035400390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 761897123, - "version": 758, - "versionNonce": 603856237, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.5038364955357792, - -1.251918247767776 - ], - [ - -2.5038364955357792, - -2.5038800920758604 - ], - [ - -1.2519182477678896, - -2.5038800920758604 - ], - [ - 0, - -2.5038800920758604 - ], - [ - 2.503923688616055, - -3.75579833984375 - ], - [ - 5.007760184151721, - -3.75579833984375 - ], - [ - 8.763602120535666, - -3.75579833984375 - ], - [ - 12.51935686383922, - -2.5038800920758604 - ], - [ - 13.7713623046875, - -2.5038800920758604 - ], - [ - 13.7713623046875, - 0 - ], - [ - 13.7713623046875, - 3.75579833984375 - ], - [ - 12.51935686383922, - 7.511640276227695 - ], - [ - 7.511683872767776, - 10.015476771763474 - ], - [ - -3.755754743303669, - 13.771318708147305 - ], - [ - -10.015520368303669, - 16.27519880022328 - ], - [ - -16.27519880022328, - 20.03099714006703 - ], - [ - -21.282958984375, - 22.53487723214289 - ], - [ - -27.542637416294724, - 25.03875732421875 - ], - [ - -31.29839215959828, - 26.29067557198664 - ], - [ - -33.802315848214334, - 27.542637416294724 - ], - [ - -36.30615234375, - 27.542637416294724 - ], - [ - -37.55807059151789, - 28.7945556640625 - ], - [ - -38.810076032366055, - 28.7945556640625 - ], - [ - -42.565830775669724, - 28.7945556640625 - ], - [ - -45.06975446428578, - 28.7945556640625 - ], - [ - -42.565830775669724, - 28.7945556640625 - ], - [ - -41.313912527901834, - 28.7945556640625 - ], - [ - -41.313912527901834, - 28.7945556640625 - ] - ], - "pressures": [ - 0.001953125, - 0.4169921875, - 0.861328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.140625, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -41.313912527901834, - 28.7945556640625 - ] - }, - { - "id": "6yriI26R9_yTqnV6rjn3G", - "type": "freedraw", - "x": -135.29158673967595, - "y": -162.12196895054387, - "width": 62.2213134765625, - "height": 38.5596923828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2018698051, - "version": 753, - "versionNonce": 948861923, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - 5.25811767578125, - 0 - ], - [ - 7.88714599609375, - 0 - ], - [ - 13.14532470703125, - 0.8763427734375 - ], - [ - 18.4034423828125, - 2.62908935546875 - ], - [ - 21.03253173828125, - 4.38177490234375 - ], - [ - 21.90887451171875, - 7.0108642578125 - ], - [ - 21.90887451171875, - 10.516357421875 - ], - [ - 13.14532470703125, - 16.6507568359375 - ], - [ - 2.6290283203125, - 21.03253173828125 - ], - [ - -8.76361083984375, - 25.41436767578125 - ], - [ - -18.40350341796875, - 28.91973876953125 - ], - [ - -26.29071044921875, - 32.42523193359375 - ], - [ - -34.17791748046875, - 35.05426025390625 - ], - [ - -37.683349609375, - 35.93060302734375 - ], - [ - -39.43603515625, - 36.8070068359375 - ], - [ - -40.31243896484375, - 36.8070068359375 - ], - [ - -40.31243896484375, - 37.683349609375 - ], - [ - -38.5596923828125, - 38.5596923828125 - ], - [ - -34.17791748046875, - 38.5596923828125 - ], - [ - -33.30157470703125, - 38.5596923828125 - ], - [ - -33.30157470703125, - 38.5596923828125 - ] - ], - "pressures": [ - 0.0546875, - 0.3642578125, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9599609375, - 0.7607421875, - 0.5341796875, - 0.212890625, - 0.1298828125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -33.30157470703125, - 38.5596923828125 - ] - }, - { - "id": "EAwr9CTXb76cMRoUZgTg1", - "type": "freedraw", - "x": -132.66255841936345, - "y": -160.36922236851262, - "width": 80.624755859375, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 803491501, - "version": 754, - "versionNonce": 982640589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558535, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -0.87640380859375 - ], - [ - -2.6290283203125, - -1.75274658203125 - ], - [ - 2.62908935546875, - -1.75274658203125 - ], - [ - 7.0108642578125, - -1.75274658203125 - ], - [ - 9.63995361328125, - -1.75274658203125 - ], - [ - 14.021728515625, - -1.75274658203125 - ], - [ - 19.27984619140625, - 0 - ], - [ - 24.5379638671875, - 2.6290283203125 - ], - [ - 25.414306640625, - 4.38177490234375 - ], - [ - 25.414306640625, - 6.13446044921875 - ], - [ - 20.15618896484375, - 9.639892578125 - ], - [ - 10.51629638671875, - 13.1453857421875 - ], - [ - -7.88720703125, - 20.15618896484375 - ], - [ - -20.15618896484375, - 24.5379638671875 - ], - [ - -31.548828125, - 27.1669921875 - ], - [ - -41.188720703125, - 28.91973876953125 - ], - [ - -48.1995849609375, - 28.91973876953125 - ], - [ - -54.33404541015625, - 28.91973876953125 - ], - [ - -55.21044921875, - 28.91973876953125 - ], - [ - -55.21044921875, - 29.79608154296875 - ], - [ - -48.1995849609375, - 29.79608154296875 - ], - [ - -42.94146728515625, - 29.79608154296875 - ], - [ - -42.0650634765625, - 29.79608154296875 - ], - [ - -42.0650634765625, - 29.79608154296875 - ] - ], - "pressures": [ - 0.041015625, - 0.4140625, - 0.7890625, - 0.931640625, - 0.9580078125, - 0.970703125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.880859375, - 0.244140625, - 0.12109375, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -42.0650634765625, - 29.79608154296875 - ] - }, - { - "id": "MchlTAALXz1cdSU_hUIXQ", - "type": "freedraw", - "x": -132.66255841936345, - "y": -162.99831172398137, - "width": 75.36663818359375, - "height": 40.3123779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1702060365, - "version": 747, - "versionNonce": 1572538243, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50543212890625, - 0 - ], - [ - 10.51629638671875, - 2.62908935546875 - ], - [ - 15.7744140625, - 5.25811767578125 - ], - [ - 21.03253173828125, - 8.7635498046875 - ], - [ - 23.66162109375, - 11.3927001953125 - ], - [ - 23.66162109375, - 14.8980712890625 - ], - [ - 19.27984619140625, - 19.27984619140625 - ], - [ - 2.62908935546875, - 26.29071044921875 - ], - [ - -10.5162353515625, - 31.548828125 - ], - [ - -23.66162109375, - 35.93060302734375 - ], - [ - -40.3123779296875, - 39.43603515625 - ], - [ - -48.1995849609375, - 40.3123779296875 - ], - [ - -50.82861328125, - 40.3123779296875 - ], - [ - -51.70501708984375, - 40.3123779296875 - ], - [ - -50.82861328125, - 39.43603515625 - ], - [ - -46.44683837890625, - 38.5596923828125 - ], - [ - -46.44683837890625, - 38.5596923828125 - ] - ], - "pressures": [ - 0.041015625, - 0.626953125, - 0.669921875, - 0.6806640625, - 0.703125, - 0.751953125, - 0.78515625, - 0.828125, - 0.8984375, - 0.90234375, - 0.8916015625, - 0.8720703125, - 0.8203125, - 0.73046875, - 0.666015625, - 0.177734375, - 0.037109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -46.44683837890625, - 38.5596923828125 - ] - }, - { - "id": "lsrMdiS8tGTYf74_U2fdc", - "type": "freedraw", - "x": -131.78621564592595, - "y": -162.99831172398137, - "width": 60.46856689453125, - "height": 31.54888916015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 60891875, - "version": 753, - "versionNonce": 889021997, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -2.62908935546875 - ], - [ - -5.25811767578125, - -2.62908935546875 - ], - [ - -1.752685546875, - -2.62908935546875 - ], - [ - 0.87640380859375, - -1.752685546875 - ], - [ - 6.134521484375, - -0.8763427734375 - ], - [ - 8.76361083984375, - 0.8763427734375 - ], - [ - 11.39263916015625, - 1.752685546875 - ], - [ - 12.26898193359375, - 3.50543212890625 - ], - [ - 13.1453857421875, - 6.134521484375 - ], - [ - 11.39263916015625, - 7.88720703125 - ], - [ - 6.134521484375, - 10.51629638671875 - ], - [ - -0.8763427734375, - 14.02166748046875 - ], - [ - -10.5162353515625, - 18.40350341796875 - ], - [ - -27.1669921875, - 23.66162109375 - ], - [ - -35.93060302734375, - 26.29071044921875 - ], - [ - -40.3123779296875, - 27.16705322265625 - ], - [ - -42.94140625, - 28.04339599609375 - ], - [ - -45.57049560546875, - 28.04339599609375 - ], - [ - -46.44683837890625, - 28.04339599609375 - ], - [ - -47.32318115234375, - 28.04339599609375 - ], - [ - -44.69415283203125, - 28.9197998046875 - ], - [ - -43.81781005859375, - 28.9197998046875 - ], - [ - -43.81781005859375, - 28.9197998046875 - ] - ], - "pressures": [ - 0.02734375, - 0.2744140625, - 0.552734375, - 0.6083984375, - 0.6318359375, - 0.646484375, - 0.66015625, - 0.677734375, - 0.71484375, - 0.7685546875, - 0.828125, - 0.8642578125, - 0.8662109375, - 0.859375, - 0.8369140625, - 0.78515625, - 0.736328125, - 0.6904296875, - 0.4482421875, - 0.376953125, - 0.2724609375, - 0.06640625, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.81781005859375, - 28.9197998046875 - ] - }, - { - "id": "FU-WnCTPqEA-NJkh8eLyK", - "type": "freedraw", - "x": -129.1571262904572, - "y": -162.99831172398137, - "width": 64.850341796875, - "height": 36.80694580078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 953962765, - "version": 750, - "versionNonce": 815079203, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -1.752685546875 - ], - [ - 12.26898193359375, - -0.8763427734375 - ], - [ - 14.8980712890625, - 0.8763427734375 - ], - [ - 15.7744140625, - 2.62908935546875 - ], - [ - 15.7744140625, - 5.25811767578125 - ], - [ - 14.021728515625, - 8.7635498046875 - ], - [ - 6.134521484375, - 14.02166748046875 - ], - [ - 0, - 17.527099609375 - ], - [ - -6.13446044921875, - 21.90887451171875 - ], - [ - -12.26898193359375, - 26.29071044921875 - ], - [ - -23.66162109375, - 30.6724853515625 - ], - [ - -31.548828125, - 33.30157470703125 - ], - [ - -37.68328857421875, - 34.1778564453125 - ], - [ - -42.94146728515625, - 35.05426025390625 - ], - [ - -46.4468994140625, - 35.05426025390625 - ], - [ - -48.1995849609375, - 35.05426025390625 - ], - [ - -49.075927734375, - 35.05426025390625 - ], - [ - -48.1995849609375, - 35.05426025390625 - ], - [ - -47.3232421875, - 34.1778564453125 - ], - [ - -47.3232421875, - 34.1778564453125 - ] - ], - "pressures": [ - 0.0498046875, - 0.302734375, - 0.712890625, - 0.728515625, - 0.751953125, - 0.7705078125, - 0.849609375, - 0.9453125, - 0.96875, - 0.970703125, - 0.9755859375, - 0.96875, - 0.970703125, - 0.9384765625, - 0.8701171875, - 0.6845703125, - 0.4931640625, - 0.314453125, - 0.115234375, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -47.3232421875, - 34.1778564453125 - ] - }, - { - "id": "OGH4tJmw59PmaqrGN8PD9", - "type": "freedraw", - "x": -134.41524396623845, - "y": -160.36922236851262, - "width": 50.82867431640625, - "height": 33.301513671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 573646573, - "version": 756, - "versionNonce": 640293005, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -1.75274658203125 - ], - [ - -2.62908935546875, - -1.75274658203125 - ], - [ - -0.8763427734375, - -1.75274658203125 - ], - [ - 1.752685546875, - -1.75274658203125 - ], - [ - 5.25811767578125, - -1.75274658203125 - ], - [ - 8.7635498046875, - -0.87640380859375 - ], - [ - 10.5162353515625, - 0 - ], - [ - 12.26898193359375, - 0.8763427734375 - ], - [ - 14.02166748046875, - 1.752685546875 - ], - [ - 15.7744140625, - 5.25811767578125 - ], - [ - 15.7744140625, - 7.01080322265625 - ], - [ - 14.89801025390625, - 10.5162353515625 - ], - [ - 9.639892578125, - 14.02166748046875 - ], - [ - 3.50543212890625, - 17.52716064453125 - ], - [ - -7.88720703125, - 21.908935546875 - ], - [ - -15.7744140625, - 24.5379638671875 - ], - [ - -23.66162109375, - 27.1669921875 - ], - [ - -28.91973876953125, - 28.04339599609375 - ], - [ - -32.4251708984375, - 29.79608154296875 - ], - [ - -33.30157470703125, - 29.79608154296875 - ], - [ - -34.17791748046875, - 29.79608154296875 - ], - [ - -35.05426025390625, - 29.79608154296875 - ], - [ - -35.05426025390625, - 30.6724853515625 - ], - [ - -35.05426025390625, - 31.54876708984375 - ], - [ - -34.17791748046875, - 31.54876708984375 - ], - [ - -34.17791748046875, - 31.54876708984375 - ] - ], - "pressures": [ - 0.078125, - 0.2353515625, - 0.294921875, - 0.337890625, - 0.3681640625, - 0.3779296875, - 0.3818359375, - 0.388671875, - 0.423828125, - 0.443359375, - 0.4521484375, - 0.46484375, - 0.4931640625, - 0.5234375, - 0.53515625, - 0.537109375, - 0.5400390625, - 0.5400390625, - 0.5380859375, - 0.537109375, - 0.53515625, - 0.5341796875, - 0.4111328125, - 0.3095703125, - 0.1923828125, - 0.138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -34.17791748046875, - 31.54876708984375 - ] - }, - { - "id": "dXILcP2uzYKi2uo9wBf3a", - "type": "freedraw", - "x": -129.1571262904572, - "y": -162.12196895054387, - "width": 63.9739990234375, - "height": 25.414306640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 41535469, - "version": 754, - "versionNonce": 998982339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -0.8763427734375 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - 0, - -0.8763427734375 - ], - [ - 3.50543212890625, - -0.8763427734375 - ], - [ - 5.25811767578125, - -0.8763427734375 - ], - [ - 7.0108642578125, - -0.8763427734375 - ], - [ - 10.51629638671875, - 0 - ], - [ - 14.8980712890625, - 2.62908935546875 - ], - [ - 16.6507568359375, - 4.38177490234375 - ], - [ - 16.6507568359375, - 5.2581787109375 - ], - [ - 14.8980712890625, - 7.0108642578125 - ], - [ - 9.639892578125, - 9.63995361328125 - ], - [ - -1.752685546875, - 14.021728515625 - ], - [ - -9.639892578125, - 17.52716064453125 - ], - [ - -18.40350341796875, - 20.15618896484375 - ], - [ - -26.2906494140625, - 21.908935546875 - ], - [ - -36.80694580078125, - 23.66168212890625 - ], - [ - -41.188720703125, - 23.66168212890625 - ], - [ - -44.69415283203125, - 24.5379638671875 - ], - [ - -46.4468994140625, - 24.5379638671875 - ], - [ - -47.3232421875, - 24.5379638671875 - ], - [ - -46.4468994140625, - 24.5379638671875 - ], - [ - -44.69415283203125, - 24.5379638671875 - ], - [ - -44.69415283203125, - 24.5379638671875 - ] - ], - "pressures": [ - 0.01171875, - 0.2470703125, - 0.26953125, - 0.283203125, - 0.328125, - 0.3359375, - 0.3408203125, - 0.35546875, - 0.3720703125, - 0.3818359375, - 0.390625, - 0.4619140625, - 0.5048828125, - 0.541015625, - 0.54296875, - 0.5478515625, - 0.5498046875, - 0.55078125, - 0.55859375, - 0.5537109375, - 0.5400390625, - 0.525390625, - 0.1025390625, - 0.04296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -44.69415283203125, - 24.5379638671875 - ] - }, - { - "id": "h_ZjzMDkOOrIA03sePreV", - "type": "freedraw", - "x": -129.1571262904572, - "y": -160.36922236851262, - "width": 58.71588134765625, - "height": 33.30157470703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 20267661, - "version": 756, - "versionNonce": 131170029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -0.87640380859375 - ], - [ - -1.752685546875, - -1.75274658203125 - ], - [ - -0.8763427734375, - -2.62908935546875 - ], - [ - 1.752685546875, - -2.62908935546875 - ], - [ - 3.50543212890625, - -2.62908935546875 - ], - [ - 7.0108642578125, - -2.62908935546875 - ], - [ - 9.639892578125, - -2.62908935546875 - ], - [ - 11.39263916015625, - -1.75274658203125 - ], - [ - 13.14532470703125, - -0.87640380859375 - ], - [ - 14.8980712890625, - 0.8763427734375 - ], - [ - 15.7744140625, - 2.6290283203125 - ], - [ - 15.7744140625, - 5.25811767578125 - ], - [ - 15.7744140625, - 7.01080322265625 - ], - [ - 14.021728515625, - 9.639892578125 - ], - [ - 6.134521484375, - 14.02166748046875 - ], - [ - -2.62908935546875, - 16.6507568359375 - ], - [ - -12.26898193359375, - 20.15618896484375 - ], - [ - -21.03253173828125, - 23.66162109375 - ], - [ - -30.6724853515625, - 28.04339599609375 - ], - [ - -35.93060302734375, - 29.79608154296875 - ], - [ - -39.43603515625, - 30.6724853515625 - ], - [ - -41.188720703125, - 30.6724853515625 - ], - [ - -42.0650634765625, - 30.6724853515625 - ], - [ - -42.94146728515625, - 30.6724853515625 - ], - [ - -39.43603515625, - 30.6724853515625 - ], - [ - -39.43603515625, - 30.6724853515625 - ] - ], - "pressures": [ - 0.01171875, - 0.1875, - 0.2333984375, - 0.5146484375, - 0.5458984375, - 0.5625, - 0.6162109375, - 0.6904296875, - 0.724609375, - 0.734375, - 0.74609375, - 0.783203125, - 0.8408203125, - 0.87890625, - 0.8935546875, - 0.9111328125, - 0.8984375, - 0.876953125, - 0.8662109375, - 0.8427734375, - 0.8203125, - 0.787109375, - 0.7265625, - 0.6845703125, - 0.4619140625, - 0.0703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -39.43603515625, - 30.6724853515625 - ] - }, - { - "id": "cXt7WOpoiANSpSftYtg2b", - "type": "freedraw", - "x": -128.2807835170197, - "y": -162.99831172398137, - "width": 49.075927734375, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 180880269, - "version": 750, - "versionNonce": 926675555, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - 0 - ], - [ - 5.2581787109375, - 0 - ], - [ - 7.88720703125, - 0.8763427734375 - ], - [ - 10.51629638671875, - 1.752685546875 - ], - [ - 13.1453857421875, - 2.62908935546875 - ], - [ - 14.8980712890625, - 4.38177490234375 - ], - [ - 14.8980712890625, - 7.88720703125 - ], - [ - 11.39263916015625, - 10.51629638671875 - ], - [ - 4.38177490234375, - 14.02166748046875 - ], - [ - -7.88720703125, - 18.40350341796875 - ], - [ - -15.7744140625, - 21.03253173828125 - ], - [ - -22.78521728515625, - 24.53802490234375 - ], - [ - -28.91973876953125, - 28.04339599609375 - ], - [ - -31.548828125, - 30.6724853515625 - ], - [ - -33.301513671875, - 30.6724853515625 - ], - [ - -34.1778564453125, - 31.548828125 - ], - [ - -34.1778564453125, - 30.6724853515625 - ], - [ - -33.301513671875, - 30.6724853515625 - ], - [ - -32.4251708984375, - 29.79608154296875 - ], - [ - -32.4251708984375, - 29.79608154296875 - ] - ], - "pressures": [ - 0.099609375, - 0.4951171875, - 0.5537109375, - 0.5791015625, - 0.59375, - 0.609375, - 0.6357421875, - 0.703125, - 0.78125, - 0.861328125, - 0.8916015625, - 0.8916015625, - 0.8984375, - 0.8984375, - 0.8935546875, - 0.8916015625, - 0.8427734375, - 0.1728515625, - 0.0849609375, - 0.0263671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -32.4251708984375, - 29.79608154296875 - ] - }, - { - "id": "zxjZoN6w4Lr06YmZPmz1M", - "type": "freedraw", - "x": -127.4044407435822, - "y": -161.24562617710637, - "width": 44.69415283203125, - "height": 28.04339599609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 483674477, - "version": 751, - "versionNonce": 1618811213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - 0 - ], - [ - -4.38177490234375, - 0 - ], - [ - -5.25811767578125, - 0 - ], - [ - -3.50537109375, - 0 - ], - [ - 0, - 0 - ], - [ - 4.3818359375, - 1.75274658203125 - ], - [ - 8.76361083984375, - 3.50543212890625 - ], - [ - 12.26904296875, - 5.2581787109375 - ], - [ - 14.021728515625, - 7.0108642578125 - ], - [ - 14.8980712890625, - 10.51629638671875 - ], - [ - 14.8980712890625, - 13.1453857421875 - ], - [ - 10.51629638671875, - 14.8980712890625 - ], - [ - 4.3818359375, - 17.52716064453125 - ], - [ - -6.13446044921875, - 21.0325927734375 - ], - [ - -12.26898193359375, - 22.78533935546875 - ], - [ - -18.4034423828125, - 24.53802490234375 - ], - [ - -23.66156005859375, - 25.41436767578125 - ], - [ - -28.0433349609375, - 26.29071044921875 - ], - [ - -29.79608154296875, - 27.1671142578125 - ], - [ - -29.79608154296875, - 28.04339599609375 - ], - [ - -29.79608154296875, - 28.04339599609375 - ] - ], - "pressures": [ - 0.0625, - 0.2587890625, - 0.2890625, - 0.3232421875, - 0.6025390625, - 0.6220703125, - 0.638671875, - 0.66015625, - 0.6845703125, - 0.71875, - 0.751953125, - 0.7744140625, - 0.79296875, - 0.79296875, - 0.8076171875, - 0.794921875, - 0.7763671875, - 0.7109375, - 0.591796875, - 0.4443359375, - 0.1005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -29.79608154296875, - 28.04339599609375 - ] - }, - { - "id": "Fg25OlgG9WfMoKXbdaikZ", - "type": "freedraw", - "x": -100.23738752092595, - "y": -143.71846553257512, - "width": 163.87860107421875, - "height": 92.89373779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1768309763, - "version": 759, - "versionNonce": 1148562947, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 14.021728515625, - -10.51629638671875 - ], - [ - 26.2906494140625, - -11.39263916015625 - ], - [ - 42.0650634765625, - -11.39263916015625 - ], - [ - 60.4686279296875, - -9.63995361328125 - ], - [ - 85.8829345703125, - -5.2581787109375 - ], - [ - 98.15185546875, - -1.75274658203125 - ], - [ - 103.4100341796875, - 4.38177490234375 - ], - [ - 103.4100341796875, - 13.14532470703125 - ], - [ - 95.5228271484375, - 22.7852783203125 - ], - [ - 77.119384765625, - 38.55963134765625 - ], - [ - 56.963134765625, - 50.82861328125 - ], - [ - 29.796142578125, - 62.2213134765625 - ], - [ - 0, - 71.8612060546875 - ], - [ - -37.68328857421875, - 79.7484130859375 - ], - [ - -53.45770263671875, - 81.5010986328125 - ], - [ - -59.59222412109375, - 81.5010986328125 - ], - [ - -60.46856689453125, - 81.5010986328125 - ], - [ - -51.70501708984375, - 76.24298095703125 - ], - [ - -25.414306640625, - 61.34490966796875 - ], - [ - -1.752685546875, - 49.9522705078125 - ], - [ - 23.66162109375, - 40.31243896484375 - ], - [ - 52.5814208984375, - 32.4251708984375 - ], - [ - 63.9739990234375, - 31.548828125 - ], - [ - 68.3558349609375, - 35.9306640625 - ], - [ - 68.3558349609375, - 42.94140625 - ], - [ - 63.09765625, - 49.9522705078125 - ], - [ - 54.3341064453125, - 56.0867919921875 - ], - [ - 44.6942138671875, - 57.83953857421875 - ], - [ - 44.6942138671875, - 57.83953857421875 - ] - ], - "pressures": [], - "simulatePressure": true, - "lastCommittedPoint": [ - 44.6942138671875, - 57.83953857421875 - ] - }, - { - "id": "03hhN5BHjlfOBqduzrH8g", - "type": "freedraw", - "x": -106.3718479701447, - "y": -159.49287959507512, - "width": 66.60308837890625, - "height": 56.963134765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 19117325, - "version": 751, - "versionNonce": 696674221, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -1.75274658203125, - 0 - ], - [ - 0.8763427734375, - 0 - ], - [ - 7.88720703125, - 0 - ], - [ - 14.02166748046875, - 0 - ], - [ - 21.03253173828125, - 0.8763427734375 - ], - [ - 26.29071044921875, - 3.50543212890625 - ], - [ - 31.54876708984375, - 7.0108642578125 - ], - [ - 35.05426025390625, - 10.5162353515625 - ], - [ - 35.93060302734375, - 17.527099609375 - ], - [ - 32.42510986328125, - 22.7852783203125 - ], - [ - 21.03253173828125, - 31.548828125 - ], - [ - 6.13446044921875, - 40.3123779296875 - ], - [ - -15.7744140625, - 50.82861328125 - ], - [ - -26.29071044921875, - 54.33404541015625 - ], - [ - -30.6724853515625, - 56.08685302734375 - ], - [ - -29.796142578125, - 56.963134765625 - ], - [ - -28.91973876953125, - 56.963134765625 - ], - [ - -26.29071044921875, - 56.963134765625 - ], - [ - -25.41436767578125, - 56.963134765625 - ], - [ - -25.41436767578125, - 56.963134765625 - ] - ], - "pressures": [ - 0.0810546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.2412109375, - 0.0908203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -25.41436767578125, - 56.963134765625 - ] - }, - { - "id": "yX1BOp7sttb_vDoGcxzr0", - "type": "freedraw", - "x": -121.2699192592072, - "y": -161.24562617710637, - "width": 52.58135986328125, - "height": 30.6724853515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1547314787, - "version": 748, - "versionNonce": 1714877859, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0.87640380859375 - ], - [ - 1.752685546875, - 0.87640380859375 - ], - [ - 3.50543212890625, - 0.87640380859375 - ], - [ - 6.134521484375, - 0.87640380859375 - ], - [ - 8.7635498046875, - 0.87640380859375 - ], - [ - 12.26898193359375, - 5.2581787109375 - ], - [ - 13.14532470703125, - 9.6400146484375 - ], - [ - 13.14532470703125, - 14.02178955078125 - ], - [ - 10.51629638671875, - 18.403564453125 - ], - [ - 6.134521484375, - 21.908935546875 - ], - [ - 3.50543212890625, - 22.78533935546875 - ], - [ - -0.8763427734375, - 24.53802490234375 - ], - [ - -31.548828125, - 28.9197998046875 - ], - [ - -37.68328857421875, - 29.796142578125 - ], - [ - -39.43603515625, - 29.796142578125 - ], - [ - -37.68328857421875, - 30.6724853515625 - ], - [ - -36.80694580078125, - 30.6724853515625 - ], - [ - -36.80694580078125, - 30.6724853515625 - ] - ], - "pressures": [ - 0.0458984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.21484375, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -36.80694580078125, - 30.6724853515625 - ] - }, - { - "id": "Ljw5VazT-U656wPvM51Bl", - "type": "freedraw", - "x": -130.9098118373322, - "y": -159.49287959507512, - "width": 48.1995849609375, - "height": 43.81781005859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1418731235, - "version": 754, - "versionNonce": 1964435981, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - 0 - ], - [ - 0.8763427734375, - 0 - ], - [ - 3.50537109375, - -0.8763427734375 - ], - [ - 6.13446044921875, - -0.8763427734375 - ], - [ - 7.88720703125, - -0.8763427734375 - ], - [ - 8.7635498046875, - -0.8763427734375 - ], - [ - 9.639892578125, - 0 - ], - [ - 10.5162353515625, - 1.752685546875 - ], - [ - 11.392578125, - 5.25811767578125 - ], - [ - 11.392578125, - 8.7635498046875 - ], - [ - 7.88720703125, - 15.7744140625 - ], - [ - 3.50537109375, - 21.0325927734375 - ], - [ - -2.62908935546875, - 26.2906494140625 - ], - [ - -11.39263916015625, - 32.4251708984375 - ], - [ - -24.5379638671875, - 40.3123779296875 - ], - [ - -31.548828125, - 42.0650634765625 - ], - [ - -34.17791748046875, - 42.94146728515625 - ], - [ - -35.93060302734375, - 42.94146728515625 - ], - [ - -36.8070068359375, - 42.94146728515625 - ], - [ - -36.8070068359375, - 42.0650634765625 - ], - [ - -34.17791748046875, - 40.3123779296875 - ], - [ - -29.796142578125, - 37.68328857421875 - ], - [ - -29.796142578125, - 36.80694580078125 - ], - [ - -29.796142578125, - 36.80694580078125 - ] - ], - "pressures": [ - 0.103515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.716796875, - 0.125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -29.796142578125, - 36.80694580078125 - ] - }, - { - "id": "RInhsh8UOhdUP_YM91NiC", - "type": "freedraw", - "x": -129.1571262904572, - "y": -158.61653682163762, - "width": 38.55963134765625, - "height": 32.4251708984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1361137219, - "version": 752, - "versionNonce": 1001277763, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - 1.752685546875, - -1.752685546875 - ], - [ - 2.62908935546875, - -1.752685546875 - ], - [ - 4.38177490234375, - -1.752685546875 - ], - [ - 6.134521484375, - 0 - ], - [ - 7.88720703125, - 1.75274658203125 - ], - [ - 8.7635498046875, - 4.38177490234375 - ], - [ - 8.7635498046875, - 6.134521484375 - ], - [ - 8.7635498046875, - 9.639892578125 - ], - [ - 5.25811767578125, - 17.527099609375 - ], - [ - 0.8763427734375, - 21.908935546875 - ], - [ - -3.50543212890625, - 24.53802490234375 - ], - [ - -8.7635498046875, - 26.29071044921875 - ], - [ - -17.527099609375, - 28.04339599609375 - ], - [ - -23.66162109375, - 28.9197998046875 - ], - [ - -27.16705322265625, - 29.79608154296875 - ], - [ - -28.91973876953125, - 30.6724853515625 - ], - [ - -29.79608154296875, - 30.6724853515625 - ], - [ - -28.04339599609375, - 28.9197998046875 - ], - [ - -25.414306640625, - 26.29071044921875 - ], - [ - -25.414306640625, - 26.29071044921875 - ] - ], - "pressures": [ - 0.0771484375, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3203125, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -25.414306640625, - 26.29071044921875 - ] - }, - { - "id": "U50jdruA6aF6SvVTYf6oY", - "type": "freedraw", - "x": -128.2807835170197, - "y": -160.36922236851262, - "width": 46.44683837890625, - "height": 30.6724853515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1422852611, - "version": 752, - "versionNonce": 1411915885, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0, - 0 - ], - [ - 1.75274658203125, - 0 - ], - [ - 2.62908935546875, - 0 - ], - [ - 4.38177490234375, - 0 - ], - [ - 7.0108642578125, - 0 - ], - [ - 10.51629638671875, - 2.6290283203125 - ], - [ - 11.39263916015625, - 6.13446044921875 - ], - [ - 12.26898193359375, - 9.639892578125 - ], - [ - 12.26898193359375, - 13.1453857421875 - ], - [ - 9.63995361328125, - 18.4034423828125 - ], - [ - 5.2581787109375, - 21.908935546875 - ], - [ - -3.50543212890625, - 25.414306640625 - ], - [ - -13.14532470703125, - 28.04339599609375 - ], - [ - -22.78521728515625, - 29.79608154296875 - ], - [ - -31.548828125, - 30.6724853515625 - ], - [ - -33.301513671875, - 30.6724853515625 - ], - [ - -34.1778564453125, - 30.6724853515625 - ], - [ - -33.301513671875, - 30.6724853515625 - ], - [ - -31.548828125, - 30.6724853515625 - ], - [ - -30.67242431640625, - 30.6724853515625 - ], - [ - -30.67242431640625, - 30.6724853515625 - ] - ], - "pressures": [ - 0.0078125, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3359375, - 0.1630859375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -30.67242431640625, - 30.6724853515625 - ] - }, - { - "id": "GNBBgVBdAS45YD22jz8nB", - "type": "freedraw", - "x": -130.0334690638947, - "y": -161.24562617710637, - "width": 47.3232421875, - "height": 35.05426025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 745891267, - "version": 751, - "versionNonce": 2050631907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.6290283203125, - -0.8763427734375 - ], - [ - 5.25811767578125, - -1.752685546875 - ], - [ - 7.0108642578125, - -1.752685546875 - ], - [ - 9.639892578125, - -1.752685546875 - ], - [ - 12.26898193359375, - -0.8763427734375 - ], - [ - 14.8980712890625, - 2.62908935546875 - ], - [ - 15.7744140625, - 5.2581787109375 - ], - [ - 15.7744140625, - 8.76361083984375 - ], - [ - 14.02166748046875, - 14.02178955078125 - ], - [ - 5.25811767578125, - 22.78533935546875 - ], - [ - -2.62908935546875, - 28.04339599609375 - ], - [ - -11.39263916015625, - 31.54888916015625 - ], - [ - -19.27984619140625, - 32.4251708984375 - ], - [ - -25.414306640625, - 33.30157470703125 - ], - [ - -30.6724853515625, - 33.30157470703125 - ], - [ - -31.548828125, - 32.4251708984375 - ], - [ - -30.6724853515625, - 32.4251708984375 - ], - [ - -28.91973876953125, - 31.54888916015625 - ], - [ - -27.16705322265625, - 30.6724853515625 - ], - [ - -26.29071044921875, - 30.6724853515625 - ], - [ - -26.29071044921875, - 30.6724853515625 - ] - ], - "pressures": [ - 0.0732421875, - 0.923828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.564453125, - 0.2900390625, - 0.1455078125, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -26.29071044921875, - 30.6724853515625 - ] - }, - { - "id": "AujJiB1BHo3nG6G290zlY", - "type": "freedraw", - "x": -137.0443333217072, - "y": -154.23476191929387, - "width": 42.94140625, - "height": 34.1778564453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 560092621, - "version": 753, - "versionNonce": 2088995533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.752685546875 - ], - [ - 1.75274658203125, - -3.50543212890625 - ], - [ - 4.38177490234375, - -6.13446044921875 - ], - [ - 7.88720703125, - -7.88720703125 - ], - [ - 10.51629638671875, - -8.7635498046875 - ], - [ - 12.26898193359375, - -8.7635498046875 - ], - [ - 13.14532470703125, - -8.7635498046875 - ], - [ - 14.8980712890625, - -5.25811767578125 - ], - [ - 16.6507568359375, - -1.752685546875 - ], - [ - 17.527099609375, - 2.629150390625 - ], - [ - 17.527099609375, - 4.38177490234375 - ], - [ - 16.6507568359375, - 7.01092529296875 - ], - [ - 13.14532470703125, - 9.63995361328125 - ], - [ - 7.88720703125, - 13.14532470703125 - ], - [ - -3.50543212890625, - 17.52716064453125 - ], - [ - -12.26898193359375, - 20.15625 - ], - [ - -19.27984619140625, - 22.7852783203125 - ], - [ - -22.7852783203125, - 24.53802490234375 - ], - [ - -24.5379638671875, - 25.414306640625 - ], - [ - -25.414306640625, - 25.414306640625 - ], - [ - -22.7852783203125, - 23.66162109375 - ], - [ - -20.15618896484375, - 22.7852783203125 - ], - [ - -20.15618896484375, - 22.7852783203125 - ] - ], - "pressures": [ - 0.06640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3984375, - 0.1953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -20.15618896484375, - 22.7852783203125 - ] - }, - { - "id": "r9bqhkqLIVFVkKiP3PmVE", - "type": "freedraw", - "x": -122.1462620326447, - "y": -161.24562617710637, - "width": 47.3232421875, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2115779907, - "version": 755, - "versionNonce": 661197955, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 0 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - 1.752685546875, - -1.752685546875 - ], - [ - 3.50543212890625, - -1.752685546875 - ], - [ - 6.13446044921875, - -1.752685546875 - ], - [ - 9.639892578125, - -1.752685546875 - ], - [ - 11.39263916015625, - -0.8763427734375 - ], - [ - 12.26898193359375, - 0.87640380859375 - ], - [ - 12.26898193359375, - 3.50543212890625 - ], - [ - 12.26898193359375, - 7.0108642578125 - ], - [ - 9.639892578125, - 11.39263916015625 - ], - [ - 4.38177490234375, - 17.52716064453125 - ], - [ - 0, - 21.0325927734375 - ], - [ - -6.134521484375, - 23.66162109375 - ], - [ - -14.021728515625, - 26.29071044921875 - ], - [ - -22.7852783203125, - 28.9197998046875 - ], - [ - -26.29071044921875, - 29.796142578125 - ], - [ - -29.796142578125, - 29.796142578125 - ], - [ - -32.4251708984375, - 29.796142578125 - ], - [ - -34.17791748046875, - 29.796142578125 - ], - [ - -35.05426025390625, - 29.796142578125 - ], - [ - -34.17791748046875, - 29.796142578125 - ], - [ - -32.4251708984375, - 29.796142578125 - ], - [ - -31.548828125, - 29.796142578125 - ], - [ - -31.548828125, - 29.796142578125 - ] - ], - "pressures": [ - 0.0615234375, - 0.669921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3095703125, - 0.1513671875, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -31.548828125, - 29.796142578125 - ] - }, - { - "id": "GqbF5EKW9yzraSeR6M1Oo", - "type": "freedraw", - "x": -129.1571262904572, - "y": -160.36922236851262, - "width": 41.188720703125, - "height": 28.91973876953125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1996486413, - "version": 751, - "versionNonce": 784509229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -0.8763427734375, - -0.87640380859375 - ], - [ - 2.62908935546875, - -0.87640380859375 - ], - [ - 5.25811767578125, - -1.75274658203125 - ], - [ - 7.0108642578125, - -1.75274658203125 - ], - [ - 8.7635498046875, - -1.75274658203125 - ], - [ - 10.51629638671875, - 0 - ], - [ - 11.39263916015625, - 2.6290283203125 - ], - [ - 12.26898193359375, - 6.13446044921875 - ], - [ - 12.26898193359375, - 8.76361083984375 - ], - [ - 7.0108642578125, - 14.89801025390625 - ], - [ - 1.752685546875, - 19.27978515625 - ], - [ - -7.0108642578125, - 23.66162109375 - ], - [ - -14.8980712890625, - 25.414306640625 - ], - [ - -21.90887451171875, - 26.29071044921875 - ], - [ - -27.16705322265625, - 27.1669921875 - ], - [ - -28.04339599609375, - 27.1669921875 - ], - [ - -28.91973876953125, - 27.1669921875 - ], - [ - -28.04339599609375, - 27.1669921875 - ], - [ - -27.16705322265625, - 27.1669921875 - ], - [ - -27.16705322265625, - 27.1669921875 - ] - ], - "pressures": [ - 0.0498046875, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2373046875, - 0.1640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -27.16705322265625, - 27.1669921875 - ] - }, - { - "id": "adIYty3cAJUwoiuNY5izX", - "type": "freedraw", - "x": -151.06600080217595, - "y": -134.95491572788762, - "width": 50.82867431640625, - "height": 53.457763671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1516968995, - "version": 747, - "versionNonce": 318344227, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -7.0108642578125, - 0.87640380859375 - ], - [ - -11.39263916015625, - 0.87640380859375 - ], - [ - -21.908935546875, - -2.62908935546875 - ], - [ - -29.796142578125, - -5.25811767578125 - ], - [ - -35.93060302734375, - -7.88714599609375 - ], - [ - -41.18878173828125, - -12.2689208984375 - ], - [ - -44.6942138671875, - -16.65069580078125 - ], - [ - -49.07598876953125, - -23.66162109375 - ], - [ - -50.82867431640625, - -27.16705322265625 - ], - [ - -50.82867431640625, - -31.548828125 - ], - [ - -50.82867431640625, - -35.05426025390625 - ], - [ - -49.95233154296875, - -41.188720703125 - ], - [ - -48.1995849609375, - -45.57049560546875 - ], - [ - -46.4468994140625, - -49.075927734375 - ], - [ - -44.6942138671875, - -51.70501708984375 - ], - [ - -44.6942138671875, - -52.58135986328125 - ], - [ - -43.81781005859375, - -52.58135986328125 - ], - [ - -43.81781005859375, - -51.70501708984375 - ], - [ - -42.94146728515625, - -50.82867431640625 - ], - [ - -42.94146728515625, - -50.82867431640625 - ] - ], - "pressures": [ - 0.0400390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2958984375, - 0.10546875, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -42.94146728515625, - -50.82867431640625 - ] - }, - { - "id": "Cx8VYI4fY7f2DW7oql3lo", - "type": "freedraw", - "x": -161.5822971888947, - "y": -132.32582637241887, - "width": 52.58135986328125, - "height": 49.07598876953125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 443568205, - "version": 750, - "versionNonce": 1548680077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - -0.87640380859375 - ], - [ - 0, - -0.87640380859375 - ], - [ - -1.752685546875, - -0.87640380859375 - ], - [ - -4.38177490234375, - -0.87640380859375 - ], - [ - -8.7635498046875, - -0.87640380859375 - ], - [ - -16.6507568359375, - -2.62908935546875 - ], - [ - -21.90887451171875, - -3.50543212890625 - ], - [ - -28.04339599609375, - -6.13446044921875 - ], - [ - -34.17791748046875, - -8.76361083984375 - ], - [ - -42.0650634765625, - -14.021728515625 - ], - [ - -46.4468994140625, - -17.52716064453125 - ], - [ - -49.075927734375, - -20.15618896484375 - ], - [ - -50.82867431640625, - -21.908935546875 - ], - [ - -51.70501708984375, - -26.29071044921875 - ], - [ - -50.82867431640625, - -35.05426025390625 - ], - [ - -49.075927734375, - -40.3123779296875 - ], - [ - -47.3232421875, - -42.94146728515625 - ], - [ - -47.3232421875, - -44.6942138671875 - ], - [ - -46.4468994140625, - -45.570556640625 - ], - [ - -44.69415283203125, - -47.3232421875 - ], - [ - -42.94146728515625, - -49.07598876953125 - ], - [ - -42.0650634765625, - -49.07598876953125 - ], - [ - -41.188720703125, - -49.07598876953125 - ], - [ - -41.188720703125, - -49.07598876953125 - ] - ], - "pressures": [ - 0.0078125, - 0.259765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.783203125, - 0.4462890625, - 0.3203125, - 0.1806640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -41.188720703125, - -49.07598876953125 - ] - }, - { - "id": "c17xRNvlbDpu1tiz76xMA", - "type": "freedraw", - "x": -162.4586399623322, - "y": -130.57314082554387, - "width": 56.0867919921875, - "height": 47.32330322265625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1146676685, - "version": 751, - "versionNonce": 282726339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - 0, - -0.8763427734375 - ], - [ - -1.75274658203125, - 0 - ], - [ - -6.134521484375, - 0.87640380859375 - ], - [ - -10.51629638671875, - 0.87640380859375 - ], - [ - -18.40350341796875, - 0.87640380859375 - ], - [ - -24.5379638671875, - 0 - ], - [ - -29.796142578125, - -1.752685546875 - ], - [ - -33.30157470703125, - -4.38177490234375 - ], - [ - -37.683349609375, - -10.51629638671875 - ], - [ - -40.3123779296875, - -14.8980712890625 - ], - [ - -42.94146728515625, - -19.27984619140625 - ], - [ - -45.570556640625, - -21.90887451171875 - ], - [ - -48.1995849609375, - -25.414306640625 - ], - [ - -50.82867431640625, - -30.6724853515625 - ], - [ - -52.58135986328125, - -33.301513671875 - ], - [ - -53.45770263671875, - -35.05426025390625 - ], - [ - -54.3341064453125, - -36.80694580078125 - ], - [ - -54.3341064453125, - -38.5596923828125 - ], - [ - -55.21044921875, - -41.188720703125 - ], - [ - -55.21044921875, - -43.81781005859375 - ], - [ - -55.21044921875, - -45.57049560546875 - ], - [ - -55.21044921875, - -46.4468994140625 - ], - [ - -54.3341064453125, - -46.4468994140625 - ], - [ - -54.3341064453125, - -46.4468994140625 - ] - ], - "pressures": [ - 0, - 0.384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.236328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -54.3341064453125, - -46.4468994140625 - ] - }, - { - "id": "Ba7BZS0WUoqTD0ZuVbDVU", - "type": "freedraw", - "x": -162.4586399623322, - "y": -133.20223018101262, - "width": 56.963134765625, - "height": 45.570556640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1888300035, - "version": 801, - "versionNonce": 224526829, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -5.2581787109375, - 0 - ], - [ - -7.0108642578125, - 0 - ], - [ - -9.63995361328125, - 0.87640380859375 - ], - [ - -12.26898193359375, - 0.87640380859375 - ], - [ - -13.1453857421875, - 0.87640380859375 - ], - [ - -14.021728515625, - 0.87640380859375 - ], - [ - -16.6507568359375, - 0 - ], - [ - -17.52716064453125, - 0 - ], - [ - -18.40350341796875, - 0 - ], - [ - -19.27984619140625, - -0.87628173828125 - ], - [ - -21.03253173828125, - -0.87628173828125 - ], - [ - -22.7852783203125, - -0.87628173828125 - ], - [ - -24.5379638671875, - -1.752685546875 - ], - [ - -25.41436767578125, - -1.752685546875 - ], - [ - -26.29071044921875, - -1.752685546875 - ], - [ - -27.16705322265625, - -2.6290283203125 - ], - [ - -28.04339599609375, - -2.6290283203125 - ], - [ - -28.91973876953125, - -2.6290283203125 - ], - [ - -29.796142578125, - -3.50537109375 - ], - [ - -30.6724853515625, - -3.50537109375 - ], - [ - -31.548828125, - -4.38177490234375 - ], - [ - -33.30157470703125, - -4.38177490234375 - ], - [ - -34.17791748046875, - -5.258056640625 - ], - [ - -35.05426025390625, - -5.258056640625 - ], - [ - -35.93060302734375, - -6.13446044921875 - ], - [ - -36.80694580078125, - -6.13446044921875 - ], - [ - -37.683349609375, - -7.01080322265625 - ], - [ - -38.5596923828125, - -7.88720703125 - ], - [ - -39.43603515625, - -8.7635498046875 - ], - [ - -40.3123779296875, - -8.7635498046875 - ], - [ - -40.3123779296875, - -9.63983154296875 - ], - [ - -41.188720703125, - -9.63983154296875 - ], - [ - -42.06512451171875, - -10.5162353515625 - ], - [ - -42.94146728515625, - -10.5162353515625 - ], - [ - -43.81781005859375, - -11.392578125 - ], - [ - -44.69415283203125, - -12.26898193359375 - ], - [ - -45.570556640625, - -13.14532470703125 - ], - [ - -46.4468994140625, - -14.0216064453125 - ], - [ - -47.3232421875, - -14.0216064453125 - ], - [ - -47.3232421875, - -14.89801025390625 - ], - [ - -48.1995849609375, - -15.7744140625 - ], - [ - -48.1995849609375, - -16.6507568359375 - ], - [ - -49.075927734375, - -16.6507568359375 - ], - [ - -49.075927734375, - -17.527099609375 - ], - [ - -49.075927734375, - -18.40338134765625 - ], - [ - -49.95233154296875, - -19.27978515625 - ], - [ - -50.82867431640625, - -20.15618896484375 - ], - [ - -50.82867431640625, - -21.03253173828125 - ], - [ - -51.70501708984375, - -22.78521728515625 - ], - [ - -51.70501708984375, - -24.5379638671875 - ], - [ - -51.70501708984375, - -25.414306640625 - ], - [ - -51.70501708984375, - -26.2906494140625 - ], - [ - -51.70501708984375, - -27.1669921875 - ], - [ - -51.70501708984375, - -28.04339599609375 - ], - [ - -52.58135986328125, - -29.79608154296875 - ], - [ - -52.58135986328125, - -30.67242431640625 - ], - [ - -53.45770263671875, - -32.4251708984375 - ], - [ - -53.45770263671875, - -35.05419921875 - ], - [ - -53.45770263671875, - -35.93060302734375 - ], - [ - -54.3341064453125, - -36.80694580078125 - ], - [ - -54.3341064453125, - -37.68328857421875 - ], - [ - -54.3341064453125, - -38.55963134765625 - ], - [ - -54.3341064453125, - -39.43597412109375 - ], - [ - -55.21044921875, - -39.43597412109375 - ], - [ - -55.21044921875, - -40.3123779296875 - ], - [ - -55.21044921875, - -41.188720703125 - ], - [ - -56.0867919921875, - -42.0650634765625 - ], - [ - -56.0867919921875, - -42.94140625 - ], - [ - -56.0867919921875, - -44.69415283203125 - ], - [ - -56.963134765625, - -44.69415283203125 - ], - [ - -56.963134765625, - -43.81781005859375 - ], - [ - -56.963134765625, - -42.0650634765625 - ], - [ - -56.963134765625, - -42.0650634765625 - ] - ], - "pressures": [ - 0.0068359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4287109375, - 0.1748046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -56.963134765625, - -42.0650634765625 - ] - }, - { - "id": "mFjv5XW6HBJRr7u40jVto", - "type": "freedraw", - "x": -154.5714329310822, - "y": -126.19136592320012, - "width": 77.99566650390625, - "height": 56.0867919921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 830350925, - "version": 752, - "versionNonce": 1932074851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - 0 - ], - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -5.2581787109375, - 0 - ], - [ - -9.63995361328125, - 0 - ], - [ - -19.27984619140625, - -2.62908935546875 - ], - [ - -26.29071044921875, - -3.50537109375 - ], - [ - -33.30157470703125, - -4.38177490234375 - ], - [ - -38.5596923828125, - -4.38177490234375 - ], - [ - -44.69415283203125, - -6.13446044921875 - ], - [ - -49.075927734375, - -7.88714599609375 - ], - [ - -52.58135986328125, - -11.39263916015625 - ], - [ - -56.963134765625, - -15.7744140625 - ], - [ - -59.59222412109375, - -21.032470703125 - ], - [ - -63.9739990234375, - -28.04339599609375 - ], - [ - -66.60308837890625, - -32.4251708984375 - ], - [ - -69.23211669921875, - -36.80694580078125 - ], - [ - -72.737548828125, - -41.188720703125 - ], - [ - -75.36663818359375, - -49.075927734375 - ], - [ - -76.24298095703125, - -51.70501708984375 - ], - [ - -77.11932373046875, - -53.45770263671875 - ], - [ - -77.11932373046875, - -54.33404541015625 - ], - [ - -77.11932373046875, - -55.21044921875 - ], - [ - -77.11932373046875, - -56.0867919921875 - ], - [ - -77.11932373046875, - -56.0867919921875 - ] - ], - "pressures": [ - 0.0791015625, - 0.484375, - 0.828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8828125, - 0.6923828125, - 0.3662109375, - 0.1953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -77.11932373046875, - -56.0867919921875 - ] - }, - { - "id": "FhoZ7wmfF0UWjATdT6Hcu", - "type": "freedraw", - "x": -159.8296116420197, - "y": -130.57314082554387, - "width": 62.22125244140625, - "height": 54.33404541015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1745069901, - "version": 748, - "versionNonce": 117783629, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -2.6290283203125, - 0 - ], - [ - -3.50537109375, - 0.87640380859375 - ], - [ - -5.25811767578125, - 0.87640380859375 - ], - [ - -7.01080322265625, - 1.752685546875 - ], - [ - -10.5162353515625, - 1.752685546875 - ], - [ - -19.27978515625, - -0.8763427734375 - ], - [ - -27.1669921875, - -4.38177490234375 - ], - [ - -35.05419921875, - -9.639892578125 - ], - [ - -41.188720703125, - -15.7744140625 - ], - [ - -49.075927734375, - -24.5379638671875 - ], - [ - -53.45770263671875, - -28.91973876953125 - ], - [ - -56.08673095703125, - -34.1778564453125 - ], - [ - -57.8394775390625, - -38.5596923828125 - ], - [ - -59.5921630859375, - -42.0650634765625 - ], - [ - -60.468505859375, - -44.69415283203125 - ], - [ - -61.34490966796875, - -46.4468994140625 - ], - [ - -61.34490966796875, - -47.3232421875 - ], - [ - -62.22125244140625, - -48.1995849609375 - ], - [ - -62.22125244140625, - -49.9522705078125 - ], - [ - -62.22125244140625, - -52.58135986328125 - ], - [ - -62.22125244140625, - -52.58135986328125 - ] - ], - "pressures": [ - 0.009765625, - 0.16796875, - 0.337890625, - 0.474609375, - 0.61328125, - 0.7763671875, - 0.8720703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.880859375, - 0.646484375, - 0.306640625, - 0.1611328125, - 0.05078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -62.22125244140625, - -52.58135986328125 - ] - }, - { - "id": "7atDIHXWlWgYJQPpseD5Z", - "type": "freedraw", - "x": -221.17452130998845, - "y": -176.14363643101262, - "width": 86.75921630859375, - "height": 63.9739990234375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 140699533, - "version": 747, - "versionNonce": 1144339203, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -2.62908935546875 - ], - [ - -2.6290283203125, - -1.75274658203125 - ], - [ - 0, - 3.50543212890625 - ], - [ - 4.38177490234375, - 9.639892578125 - ], - [ - 9.63995361328125, - 17.527099609375 - ], - [ - 20.15618896484375, - 31.548828125 - ], - [ - 28.04339599609375, - 41.188720703125 - ], - [ - 37.683349609375, - 49.9522705078125 - ], - [ - 44.69415283203125, - 55.21044921875 - ], - [ - 49.95233154296875, - 58.7158203125 - ], - [ - 56.963134765625, - 61.34490966796875 - ], - [ - 63.09765625, - 61.34490966796875 - ], - [ - 69.23211669921875, - 61.34490966796875 - ], - [ - 75.36663818359375, - 61.34490966796875 - ], - [ - 82.37750244140625, - 58.7158203125 - ], - [ - 84.13018798828125, - 55.21044921875 - ], - [ - 84.13018798828125, - 50.82867431640625 - ], - [ - 83.25384521484375, - 46.4468994140625 - ], - [ - 81.5010986328125, - 43.81781005859375 - ], - [ - 78.8720703125, - 42.94140625 - ], - [ - 78.8720703125, - 42.94140625 - ] - ], - "pressures": [ - 0.029296875, - 0.4521484375, - 0.7265625, - 0.8203125, - 0.9580078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.669921875, - 0.3505859375, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.8720703125, - 42.94140625 - ] - }, - { - "id": "GLO5uQWzFSzWjNfdsqoCA", - "type": "freedraw", - "x": -162.4586399623322, - "y": -122.68593379429387, - "width": 63.09765625, - "height": 60.46856689453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 310701027, - "version": 747, - "versionNonce": 823274157, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -5.2581787109375, - 0 - ], - [ - -12.26898193359375, - -0.8763427734375 - ], - [ - -17.52716064453125, - -1.752685546875 - ], - [ - -22.7852783203125, - -3.50543212890625 - ], - [ - -28.91973876953125, - -7.01080322265625 - ], - [ - -38.5596923828125, - -14.8980712890625 - ], - [ - -43.81781005859375, - -21.03253173828125 - ], - [ - -48.1995849609375, - -26.29071044921875 - ], - [ - -50.82867431640625, - -29.79608154296875 - ], - [ - -52.58135986328125, - -33.301513671875 - ], - [ - -56.0867919921875, - -39.43603515625 - ], - [ - -57.8394775390625, - -43.81781005859375 - ], - [ - -60.46856689453125, - -49.9522705078125 - ], - [ - -62.22125244140625, - -55.21044921875 - ], - [ - -62.22125244140625, - -56.963134765625 - ], - [ - -62.22125244140625, - -57.8394775390625 - ], - [ - -62.22125244140625, - -59.59222412109375 - ], - [ - -63.09765625, - -60.46856689453125 - ], - [ - -63.09765625, - -60.46856689453125 - ] - ], - "pressures": [ - 0.0029296875, - 0.279296875, - 0.3525390625, - 0.4384765625, - 0.673828125, - 0.8466796875, - 0.97265625, - 1, - 1, - 1, - 1, - 0.96484375, - 0.908203125, - 0.708984375, - 0.5791015625, - 0.4521484375, - 0.3046875, - 0.2021484375, - 0.158203125, - 0.1259765625, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -63.09765625, - -60.46856689453125 - ] - }, - { - "id": "Zpoz15Rburhn_6gZeBB4H", - "type": "freedraw", - "x": -217.6690891810822, - "y": -172.63820430210637, - "width": 60.46856689453125, - "height": 46.44683837890625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1173591469, - "version": 744, - "versionNonce": 1081926307, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0.8763427734375 - ], - [ - 0, - 6.13446044921875 - ], - [ - 1.75274658203125, - 12.26898193359375 - ], - [ - 7.88720703125, - 22.78521728515625 - ], - [ - 13.14532470703125, - 28.04339599609375 - ], - [ - 19.27984619140625, - 34.17791748046875 - ], - [ - 26.29071044921875, - 38.5596923828125 - ], - [ - 36.80694580078125, - 43.8177490234375 - ], - [ - 42.0650634765625, - 46.44683837890625 - ], - [ - 46.4468994140625, - 46.44683837890625 - ], - [ - 50.82867431640625, - 46.44683837890625 - ], - [ - 53.45770263671875, - 45.57049560546875 - ], - [ - 56.0867919921875, - 43.8177490234375 - ], - [ - 57.8394775390625, - 42.0650634765625 - ], - [ - 58.71588134765625, - 41.188720703125 - ], - [ - 59.59222412109375, - 39.43597412109375 - ], - [ - 59.59222412109375, - 38.5596923828125 - ], - [ - 59.59222412109375, - 38.5596923828125 - ] - ], - "pressures": [ - 0.01953125, - 0.53125, - 0.677734375, - 0.857421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.708984375, - 0.435546875, - 0.228515625, - 0.173828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 59.59222412109375, - 38.5596923828125 - ] - }, - { - "id": "Uh9DipkFmXwz-bQr6ym7S", - "type": "freedraw", - "x": -182.61482892717595, - "y": -343.5276696341376, - "width": 181.4056396484375, - "height": 317.24090576171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2054220781, - "version": 743, - "versionNonce": 1009929485, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -7.88720703125 - ], - [ - -2.62908935546875, - -18.403472900390625 - ], - [ - -7.0108642578125, - -22.785247802734375 - ], - [ - -13.1453857421875, - -25.414306640625 - ], - [ - -20.15618896484375, - -23.661590576171875 - ], - [ - -27.16705322265625, - -14.021697998046875 - ], - [ - -33.301513671875, - 3.50543212890625 - ], - [ - -39.43603515625, - 43.81781005859375 - ], - [ - -40.3123779296875, - 77.11935424804688 - ], - [ - -36.80694580078125, - 112.173583984375 - ], - [ - -25.41436767578125, - 150.7332763671875 - ], - [ - 7.01080322265625, - 211.20184326171875 - ], - [ - 19.27984619140625, - 228.72894287109375 - ], - [ - 110.4208984375, - 287.44482421875 - ], - [ - 134.08251953125, - 290.9501953125 - ], - [ - 141.09326171875, - 291.82659912109375 - ], - [ - 141.09326171875, - 291.82659912109375 - ] - ], - "pressures": [ - 0.06640625, - 0.0947265625, - 0.1787109375, - 0.2412109375, - 0.369140625, - 0.580078125, - 0.75390625, - 0.876953125, - 0.92578125, - 1, - 1, - 1, - 1, - 1, - 0.5712890625, - 0.1943359375, - 0.12890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 141.09326171875, - 291.82659912109375 - ] - }, - { - "id": "qo5F6LwTFtW8Oh68clUhQ", - "type": "freedraw", - "x": -186.9966038295197, - "y": -85.87892695835637, - "width": 160.3731689453125, - "height": 128.82440185546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 942128643, - "version": 738, - "versionNonce": 279877187, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -6.134521484375 - ], - [ - -4.38177490234375, - -16.65081787109375 - ], - [ - 1.752685546875, - -32.42523193359375 - ], - [ - 17.527099609375, - -63.97406005859375 - ], - [ - 32.4251708984375, - -84.1302490234375 - ], - [ - 51.70501708984375, - -101.6573486328125 - ], - [ - 76.24298095703125, - -114.80267333984375 - ], - [ - 99.904541015625, - -122.68991088867188 - ], - [ - 129.70062255859375, - -128.82440185546875 - ], - [ - 141.96966552734375, - -128.82440185546875 - ], - [ - 150.73321533203125, - -125.3189697265625 - ], - [ - 155.99139404296875, - -120.06082153320312 - ], - [ - 155.11505126953125, - -117.4317626953125 - ], - [ - 155.11505126953125, - -117.4317626953125 - ] - ], - "pressures": [ - 0.1142578125, - 0.259765625, - 0.3564453125, - 0.5224609375, - 0.8203125, - 0.94921875, - 1, - 0.94921875, - 0.8203125, - 0.5888671875, - 0.435546875, - 0.2490234375, - 0.1669921875, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 155.11505126953125, - -117.4317626953125 - ] - }, - { - "id": "9qcOqMrR9S-ZtCX8rDjzD", - "type": "freedraw", - "x": -222.05086408342595, - "y": -148.10024043491887, - "width": 199.8092041015625, - "height": 41.18878173828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1327874179, - "version": 739, - "versionNonce": 132064109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.01080322265625, - 0.87640380859375 - ], - [ - -7.88720703125, - 0.87640380859375 - ], - [ - -8.7635498046875, - 0.87640380859375 - ], - [ - -9.639892578125, - 0 - ], - [ - -3.50543212890625, - -2.62908935546875 - ], - [ - 9.639892578125, - -7.88720703125 - ], - [ - 31.548828125, - -14.021728515625 - ], - [ - 59.59222412109375, - -20.15618896484375 - ], - [ - 104.286376953125, - -29.796142578125 - ], - [ - 130.5770263671875, - -36.80694580078125 - ], - [ - 150.7332763671875, - -40.3123779296875 - ], - [ - 167.384033203125, - -40.3123779296875 - ], - [ - 182.2821044921875, - -38.5596923828125 - ], - [ - 190.1693115234375, - -32.4251708984375 - ], - [ - 190.1693115234375, - -32.4251708984375 - ] - ], - "pressures": [ - 0.02734375, - 0.1416015625, - 0.1748046875, - 0.2353515625, - 0.37890625, - 0.6240234375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 0.83203125, - 0.41796875, - 0.00390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 190.1693115234375, - -32.4251708984375 - ] - }, - { - "id": "Z62ArmZbqvg8BFgG5OUuS", - "type": "freedraw", - "x": -189.62569318498845, - "y": -153.35841914585637, - "width": 48.1995849609375, - "height": 28.9197998046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1765081133, - "version": 743, - "versionNonce": 1135138275, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - -0.8763427734375 - ], - [ - -10.51629638671875, - -0.8763427734375 - ], - [ - -14.8980712890625, - -0.8763427734375 - ], - [ - -20.15618896484375, - -0.8763427734375 - ], - [ - -24.5379638671875, - -0.8763427734375 - ], - [ - -28.04339599609375, - 0 - ], - [ - -30.67242431640625, - 2.62908935546875 - ], - [ - -31.548828125, - 4.38177490234375 - ], - [ - -31.548828125, - 7.88720703125 - ], - [ - -28.91973876953125, - 12.26898193359375 - ], - [ - -21.90887451171875, - 19.2799072265625 - ], - [ - -14.02166748046875, - 23.66168212890625 - ], - [ - -4.38177490234375, - 26.29071044921875 - ], - [ - 3.50543212890625, - 28.04345703125 - ], - [ - 10.51629638671875, - 28.04345703125 - ], - [ - 14.8980712890625, - 27.16705322265625 - ], - [ - 16.6507568359375, - 25.41436767578125 - ], - [ - 16.6507568359375, - 22.7852783203125 - ], - [ - 16.6507568359375, - 21.0325927734375 - ], - [ - 16.6507568359375, - 20.15618896484375 - ], - [ - 16.6507568359375, - 20.15618896484375 - ] - ], - "pressures": [ - 0.0224609375, - 0.21875, - 0.4609375, - 0.669921875, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6064453125, - 0.234375, - 0.158203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 16.6507568359375, - 20.15618896484375 - ] - }, - { - "id": "DdNVyRHVcSGfpkqjUaIph", - "type": "freedraw", - "x": -196.63655744280095, - "y": -154.23476191929387, - "width": 46.44683837890625, - "height": 31.548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 168930851, - "version": 739, - "versionNonce": 1214393805, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -0.8763427734375 - ], - [ - -7.88720703125, - -0.8763427734375 - ], - [ - -12.26898193359375, - 0.8763427734375 - ], - [ - -15.7744140625, - 3.50543212890625 - ], - [ - -17.527099609375, - 7.01092529296875 - ], - [ - -17.527099609375, - 10.51629638671875 - ], - [ - -17.527099609375, - 14.021728515625 - ], - [ - -14.89801025390625, - 17.52716064453125 - ], - [ - -8.7635498046875, - 23.66162109375 - ], - [ - -1.752685546875, - 27.16705322265625 - ], - [ - 7.0108642578125, - 29.796142578125 - ], - [ - 14.021728515625, - 30.6724853515625 - ], - [ - 19.27984619140625, - 30.6724853515625 - ], - [ - 24.5379638671875, - 28.9197998046875 - ], - [ - 27.16705322265625, - 28.9197998046875 - ], - [ - 28.91973876953125, - 28.04339599609375 - ], - [ - 28.91973876953125, - 28.04339599609375 - ] - ], - "pressures": [ - 0.0859375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.48828125, - 0.2138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.91973876953125, - 28.04339599609375 - ] - }, - { - "id": "pi6WHLHvGz7M39w5_AAI2", - "type": "freedraw", - "x": -153.6154226327867, - "y": -297.95714351109075, - "width": 67.47943115234375, - "height": 309.3536682128906, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1034640611, - "version": 742, - "versionNonce": 142221699, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.25811767578125, - -5.258148193359375 - ], - [ - 7.88720703125, - -10.516265869140625 - ], - [ - 7.88720703125, - -15.7744140625 - ], - [ - 7.0108642578125, - -18.403472900390625 - ], - [ - 0, - -20.15618896484375 - ], - [ - -8.7635498046875, - -17.527130126953125 - ], - [ - -20.15618896484375, - -8.7635498046875 - ], - [ - -33.301513671875, - 8.7635498046875 - ], - [ - -51.70501708984375, - 53.45770263671875 - ], - [ - -58.7158203125, - 92.01739501953125 - ], - [ - -59.59222412109375, - 134.08248901367188 - ], - [ - -54.33404541015625, - 176.14755249023438 - ], - [ - -45.57049560546875, - 215.58358764648438 - ], - [ - -29.79608154296875, - 262.0304870605469 - ], - [ - -21.03253173828125, - 281.3102722167969 - ], - [ - -16.6507568359375, - 289.1974792480469 - ], - [ - -13.14532470703125, - 289.1974792480469 - ], - [ - -13.14532470703125, - 283.9393615722656 - ], - [ - -13.14532470703125, - 283.9393615722656 - ] - ], - "pressures": [ - 0.078125, - 0.125, - 0.16796875, - 0.19921875, - 0.2236328125, - 0.3134765625, - 0.3974609375, - 0.5849609375, - 0.787109375, - 0.9599609375, - 0.98828125, - 0.9833984375, - 0.9423828125, - 0.8876953125, - 0.69921875, - 0.5166015625, - 0.3642578125, - 0.1845703125, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -13.14532470703125, - 283.9393615722656 - ] - }, - { - "id": "0_fee58JGKmX_Yf4BAYnM", - "type": "freedraw", - "x": -230.81441388811345, - "y": -170.00917598179387, - "width": 173.5184326171875, - "height": 35.05426025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 640543373, - "version": 736, - "versionNonce": 1825893421, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.01080322265625, - -1.752685546875 - ], - [ - -10.51629638671875, - -2.6290283203125 - ], - [ - -11.392578125, - -3.50543212890625 - ], - [ - -11.392578125, - -4.38177490234375 - ], - [ - -1.75274658203125, - -9.639892578125 - ], - [ - 14.02166748046875, - -13.14532470703125 - ], - [ - 38.55963134765625, - -15.7744140625 - ], - [ - 69.23211669921875, - -14.89801025390625 - ], - [ - 97.2755126953125, - -9.639892578125 - ], - [ - 119.18438720703125, - -1.752685546875 - ], - [ - 140.21697998046875, - 8.7635498046875 - ], - [ - 150.7332763671875, - 14.021728515625 - ], - [ - 158.6204833984375, - 17.52716064453125 - ], - [ - 162.1258544921875, - 19.27984619140625 - ], - [ - 162.1258544921875, - 19.27984619140625 - ] - ], - "pressures": [ - 0.126953125, - 0.1640625, - 0.2353515625, - 0.26953125, - 0.4140625, - 0.662109375, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 0.8173828125, - 0.3994140625, - 0.234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 162.1258544921875, - 19.27984619140625 - ] - }, - { - "id": "6nNOjcLz7ArqRl_sV2PJG", - "type": "freedraw", - "x": -202.7710178920197, - "y": -169.13283320835637, - "width": 37.683349609375, - "height": 38.55963134765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 669158275, - "version": 740, - "versionNonce": 1159782029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.2581787109375, - -1.752685546875 - ], - [ - -8.7635498046875, - -2.6290283203125 - ], - [ - -13.14532470703125, - -2.6290283203125 - ], - [ - -17.527099609375, - -2.6290283203125 - ], - [ - -24.5379638671875, - -1.752685546875 - ], - [ - -28.91973876953125, - -0.8763427734375 - ], - [ - -31.548828125, - -0.8763427734375 - ], - [ - -32.4251708984375, - 0 - ], - [ - -33.30157470703125, - 1.75274658203125 - ], - [ - -33.30157470703125, - 2.62908935546875 - ], - [ - -29.796142578125, - 9.63995361328125 - ], - [ - -24.5379638671875, - 15.7744140625 - ], - [ - -19.27984619140625, - 23.66162109375 - ], - [ - -10.51629638671875, - 32.42523193359375 - ], - [ - -5.2581787109375, - 35.0543212890625 - ], - [ - -0.8763427734375, - 35.93060302734375 - ], - [ - 2.6290283203125, - 35.93060302734375 - ], - [ - 4.38177490234375, - 35.93060302734375 - ], - [ - 4.38177490234375, - 34.17791748046875 - ], - [ - 4.38177490234375, - 34.17791748046875 - ] - ], - "pressures": [ - 0.0888671875, - 0.310546875, - 0.4775390625, - 0.59765625, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4462890625, - 0.1767578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.38177490234375, - 34.17791748046875 - ] - }, - { - "id": "RAIitKn6KmuThI0F2SBNq", - "type": "freedraw", - "x": -212.41097150530095, - "y": -134.95491572788762, - "width": 79.7484130859375, - "height": 60.46856689453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1445849091, - "version": 738, - "versionNonce": 1744798957, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0.87640380859375 - ], - [ - 0.87640380859375, - 2.62908935546875 - ], - [ - 4.38177490234375, - 4.38177490234375 - ], - [ - 9.63995361328125, - 6.13446044921875 - ], - [ - 19.27984619140625, - 7.0108642578125 - ], - [ - 28.9197998046875, - 5.2581787109375 - ], - [ - 38.5596923828125, - 0.87640380859375 - ], - [ - 46.4468994140625, - -4.38177490234375 - ], - [ - 56.96319580078125, - -11.39263916015625 - ], - [ - 63.09765625, - -15.7744140625 - ], - [ - 69.232177734375, - -19.27984619140625 - ], - [ - 74.49029541015625, - -24.5379638671875 - ], - [ - 77.9957275390625, - -28.91973876953125 - ], - [ - 77.9957275390625, - -36.80694580078125 - ], - [ - 76.24298095703125, - -42.06512451171875 - ], - [ - 72.737548828125, - -45.57049560546875 - ], - [ - 69.232177734375, - -48.1995849609375 - ], - [ - 63.9739990234375, - -51.70501708984375 - ], - [ - 62.2213134765625, - -52.58135986328125 - ], - [ - 61.344970703125, - -53.45770263671875 - ], - [ - 62.2213134765625, - -53.45770263671875 - ], - [ - 63.9739990234375, - -51.70501708984375 - ], - [ - 63.9739990234375, - -51.70501708984375 - ] - ], - "pressures": [ - 0.0419921875, - 0.564453125, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.927734375, - 0.640625, - 0.5078125, - 0.18359375, - 0.02734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 63.9739990234375, - -51.70501708984375 - ] - }, - { - "id": "dqAFK7dhdnYmJ0qUJQGS1", - "type": "freedraw", - "x": -137.0443333217072, - "y": -164.75099727085637, - "width": 82.37750244140625, - "height": 37.683349609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 220598051, - "version": 735, - "versionNonce": 1029262435, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.75274658203125, - -0.87640380859375 - ], - [ - 5.25811767578125, - 0 - ], - [ - 10.51629638671875, - 3.50537109375 - ], - [ - 14.8980712890625, - 7.01080322265625 - ], - [ - 18.40350341796875, - 9.639892578125 - ], - [ - 18.40350341796875, - 11.392578125 - ], - [ - 15.7744140625, - 14.02166748046875 - ], - [ - 10.51629638671875, - 18.4034423828125 - ], - [ - 3.50543212890625, - 24.5379638671875 - ], - [ - -10.51629638671875, - 31.54876708984375 - ], - [ - -21.03253173828125, - 33.301513671875 - ], - [ - -33.301513671875, - 34.1778564453125 - ], - [ - -43.81781005859375, - 35.05426025390625 - ], - [ - -54.33404541015625, - 36.80694580078125 - ], - [ - -58.71588134765625, - 36.80694580078125 - ], - [ - -62.22125244140625, - 36.80694580078125 - ], - [ - -63.9739990234375, - 36.80694580078125 - ], - [ - -62.22125244140625, - 36.80694580078125 - ], - [ - -60.46856689453125, - 36.80694580078125 - ], - [ - -60.46856689453125, - 36.80694580078125 - ] - ], - "pressures": [ - 0.04296875, - 0.3974609375, - 0.662109375, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1904296875, - 0.1025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -60.46856689453125, - 36.80694580078125 - ] - }, - { - "id": "Zve0Ukr5xa5Z0kXy8pQWH", - "type": "freedraw", - "x": -204.52376447405095, - "y": -134.07851191929387, - "width": 71.8612060546875, - "height": 40.3123779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 41246381, - "version": 738, - "versionNonce": 1492803405, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 1.752685546875 - ], - [ - 0.87640380859375, - 3.50537109375 - ], - [ - 7.0108642578125, - 5.258056640625 - ], - [ - 14.8980712890625, - 6.13446044921875 - ], - [ - 24.5379638671875, - 6.13446044921875 - ], - [ - 34.17791748046875, - 6.13446044921875 - ], - [ - 44.69415283203125, - 3.50537109375 - ], - [ - 51.70501708984375, - -0.87640380859375 - ], - [ - 57.83953857421875, - -6.134521484375 - ], - [ - 63.09765625, - -11.3927001953125 - ], - [ - 66.60308837890625, - -14.89813232421875 - ], - [ - 69.232177734375, - -19.2799072265625 - ], - [ - 70.1085205078125, - -22.7852783203125 - ], - [ - 70.1085205078125, - -27.1671142578125 - ], - [ - 69.232177734375, - -31.54888916015625 - ], - [ - 68.35577392578125, - -33.30157470703125 - ], - [ - 67.47943115234375, - -34.17791748046875 - ], - [ - 65.72674560546875, - -34.17791748046875 - ], - [ - 63.9739990234375, - -34.17791748046875 - ], - [ - 62.2213134765625, - -33.30157470703125 - ], - [ - 60.46856689453125, - -31.54888916015625 - ], - [ - 59.59222412109375, - -29.796142578125 - ], - [ - 59.59222412109375, - -29.796142578125 - ] - ], - "pressures": [ - 0.05078125, - 0.5966796875, - 0.736328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9580078125, - 0.6474609375, - 0.3232421875, - 0.21875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 59.59222412109375, - -29.796142578125 - ] - }, - { - "id": "kqK-HwnF6GeK8kDAlKi7i", - "type": "freedraw", - "x": -135.29158673967595, - "y": -166.50374385288762, - "width": 80.624755859375, - "height": 36.80694580078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1086790029, - "version": 740, - "versionNonce": 299354115, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - -1.752685546875 - ], - [ - 2.6290283203125, - -0.8763427734375 - ], - [ - 7.88714599609375, - 1.75274658203125 - ], - [ - 12.26898193359375, - 4.38177490234375 - ], - [ - 15.77435302734375, - 7.88720703125 - ], - [ - 17.527099609375, - 11.39263916015625 - ], - [ - 18.4034423828125, - 15.7744140625 - ], - [ - 15.77435302734375, - 19.2799072265625 - ], - [ - 11.392578125, - 22.7852783203125 - ], - [ - 4.38177490234375, - 26.29071044921875 - ], - [ - -10.51629638671875, - 31.548828125 - ], - [ - -21.908935546875, - 33.301513671875 - ], - [ - -32.42523193359375, - 34.17791748046875 - ], - [ - -41.18878173828125, - 35.05426025390625 - ], - [ - -49.95233154296875, - 35.05426025390625 - ], - [ - -57.83953857421875, - 35.05426025390625 - ], - [ - -60.4686279296875, - 35.05426025390625 - ], - [ - -62.2213134765625, - 35.05426025390625 - ], - [ - -62.2213134765625, - 34.17791748046875 - ], - [ - -62.2213134765625, - 33.301513671875 - ], - [ - -62.2213134765625, - 32.42523193359375 - ], - [ - -61.344970703125, - 32.42523193359375 - ], - [ - -60.4686279296875, - 32.42523193359375 - ], - [ - -59.59222412109375, - 32.42523193359375 - ], - [ - -59.59222412109375, - 32.42523193359375 - ] - ], - "pressures": [ - 0.08203125, - 0.6904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.591796875, - 0.3154296875, - 0.2060546875, - 0.1328125, - 0.05078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -59.59222412109375, - 32.42523193359375 - ] - }, - { - "id": "xAvHjrIQHkfs79pQzc2_H", - "type": "freedraw", - "x": -200.1419895717072, - "y": -133.20223018101262, - "width": 73.61395263671875, - "height": 35.05426025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 273879757, - "version": 741, - "versionNonce": 1852501421, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558536, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.75274658203125, - 1.75274658203125 - ], - [ - 3.50543212890625, - 2.62908935546875 - ], - [ - 13.1453857421875, - 2.62908935546875 - ], - [ - 21.908935546875, - 2.62908935546875 - ], - [ - 29.796142578125, - 2.62908935546875 - ], - [ - 36.8070068359375, - 2.62908935546875 - ], - [ - 43.81781005859375, - 2.62908935546875 - ], - [ - 48.1995849609375, - 1.75274658203125 - ], - [ - 51.70501708984375, - 0.87640380859375 - ], - [ - 56.0867919921875, - -1.752685546875 - ], - [ - 61.344970703125, - -5.258056640625 - ], - [ - 67.47943115234375, - -10.5162353515625 - ], - [ - 70.98486328125, - -14.89801025390625 - ], - [ - 72.737548828125, - -17.527099609375 - ], - [ - 73.61395263671875, - -20.15618896484375 - ], - [ - 73.61395263671875, - -22.78521728515625 - ], - [ - 72.737548828125, - -23.66156005859375 - ], - [ - 71.8612060546875, - -25.414306640625 - ], - [ - 69.232177734375, - -27.1669921875 - ], - [ - 67.47943115234375, - -28.91973876953125 - ], - [ - 63.9739990234375, - -30.67242431640625 - ], - [ - 62.2213134765625, - -31.54876708984375 - ], - [ - 61.344970703125, - -31.54876708984375 - ], - [ - 61.344970703125, - -32.4251708984375 - ], - [ - 60.46856689453125, - -32.4251708984375 - ], - [ - 60.46856689453125, - -32.4251708984375 - ] - ], - "pressures": [ - 0.0654296875, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8955078125, - 0.79296875, - 0.671875, - 0.556640625, - 0.470703125, - 0.3955078125, - 0.330078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.46856689453125, - -32.4251708984375 - ] - }, - { - "id": "Fh4mzZhMcVlD4tgdfSVHD", - "type": "freedraw", - "x": -186.1202610560822, - "y": -173.51460811070012, - "width": 32.42523193359375, - "height": 82.37750244140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2043023683, - "version": 733, - "versionNonce": 2004529165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 5.2581787109375 - ], - [ - -3.50543212890625, - 6.134521484375 - ], - [ - -4.38177490234375, - 5.2581787109375 - ], - [ - -6.134521484375, - 0 - ], - [ - -7.0108642578125, - -14.02166748046875 - ], - [ - -5.25811767578125, - -26.2906494140625 - ], - [ - -1.75274658203125, - -39.436004638671875 - ], - [ - 2.62908935546875, - -50.828643798828125 - ], - [ - 7.88720703125, - -59.592193603515625 - ], - [ - 14.8980712890625, - -65.7266845703125 - ], - [ - 19.27984619140625, - -62.22125244140625 - ], - [ - 21.90887451171875, - -52.581329345703125 - ], - [ - 22.7852783203125, - -38.55963134765625 - ], - [ - 20.15618896484375, - -11.392578125 - ], - [ - 15.7744140625, - 2.62908935546875 - ], - [ - 11.39263916015625, - 12.26898193359375 - ], - [ - 7.88720703125, - 16.65081787109375 - ], - [ - 4.38177490234375, - 16.65081787109375 - ], - [ - -1.75274658203125, - 9.63995361328125 - ], - [ - -6.134521484375, - 2.62908935546875 - ], - [ - -8.7635498046875, - -5.25811767578125 - ], - [ - -9.63995361328125, - -17.527099609375 - ], - [ - -8.7635498046875, - -35.930572509765625 - ], - [ - -5.25811767578125, - -46.44683837890625 - ], - [ - -1.75274658203125, - -53.45770263671875 - ], - [ - 1.752685546875, - -57.8394775390625 - ], - [ - 3.50543212890625, - -59.592193603515625 - ], - [ - 4.38177490234375, - -60.468536376953125 - ], - [ - 5.25811767578125, - -60.468536376953125 - ], - [ - 5.25811767578125, - -60.468536376953125 - ] - ], - "pressures": [ - 0.0224609375, - 0.1162109375, - 0.1630859375, - 0.478515625, - 0.72265625, - 0.8896484375, - 0.931640625, - 0.953125, - 0.9599609375, - 0.9619140625, - 0.9560546875, - 0.9755859375, - 0.98828125, - 1, - 1, - 0.9794921875, - 0.9814453125, - 0.986328125, - 0.9775390625, - 0.9365234375, - 0.900390625, - 0.8740234375, - 0.876953125, - 0.87890625, - 0.8662109375, - 0.85546875, - 0.70703125, - 0.431640625, - 0.3408203125, - 0.177734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.25811767578125, - -60.468536376953125 - ] - }, - { - "id": "vWmam5XakBDBwS4FR781Z", - "type": "freedraw", - "x": -188.74935041155095, - "y": -184.90718623570012, - "width": 42.06512451171875, - "height": 83.25384521484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1484529037, - "version": 732, - "versionNonce": 1456595779, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -4.3818359375 - ], - [ - -5.25811767578125, - -11.39263916015625 - ], - [ - -6.13446044921875, - -24.537994384765625 - ], - [ - -3.50543212890625, - -35.05426025390625 - ], - [ - 0.8763427734375, - -46.4468994140625 - ], - [ - 6.134521484375, - -55.21044921875 - ], - [ - 13.14532470703125, - -62.2213134765625 - ], - [ - 17.52716064453125, - -62.2213134765625 - ], - [ - 23.66162109375, - -59.592254638671875 - ], - [ - 28.91973876953125, - -53.457733154296875 - ], - [ - 33.30157470703125, - -43.817840576171875 - ], - [ - 34.17791748046875, - -21.032562255859375 - ], - [ - 30.6724853515625, - -1.75274658203125 - ], - [ - 25.41436767578125, - 14.02166748046875 - ], - [ - 18.40350341796875, - 21.03253173828125 - ], - [ - 7.0108642578125, - 21.03253173828125 - ], - [ - 0.8763427734375, - 16.6507568359375 - ], - [ - -3.50543212890625, - 9.639892578125 - ], - [ - -7.0108642578125, - 0.8763427734375 - ], - [ - -7.88720703125, - -8.76361083984375 - ], - [ - -7.88720703125, - -22.7852783203125 - ], - [ - -4.38177490234375, - -29.796142578125 - ], - [ - 0, - -35.930633544921875 - ], - [ - 3.50543212890625, - -40.312408447265625 - ], - [ - 7.88720703125, - -43.817840576171875 - ], - [ - 10.51629638671875, - -44.694183349609375 - ], - [ - 13.14532470703125, - -43.817840576171875 - ], - [ - 14.021728515625, - -42.94146728515625 - ], - [ - 14.021728515625, - -42.94146728515625 - ] - ], - "pressures": [ - 0.107421875, - 0.2890625, - 0.421875, - 0.64453125, - 0.798828125, - 0.8955078125, - 0.9345703125, - 0.9365234375, - 0.9580078125, - 0.9814453125, - 1, - 1, - 1, - 0.986328125, - 0.9384765625, - 0.9296875, - 0.90625, - 0.85546875, - 0.8056640625, - 0.7626953125, - 0.6923828125, - 0.6240234375, - 0.59375, - 0.57421875, - 0.462890625, - 0.2275390625, - 0.154296875, - 0.0791015625, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.021728515625, - -42.94146728515625 - ] - }, - { - "id": "aa-qB1tlqCzNxFKXD9bbd", - "type": "freedraw", - "x": -184.3675755092072, - "y": -177.02004023960637, - "width": 49.95233154296875, - "height": 62.2213134765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 832059053, - "version": 733, - "versionNonce": 572728941, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - -8.7635498046875 - ], - [ - -7.01080322265625, - -15.77435302734375 - ], - [ - -7.01080322265625, - -26.2906494140625 - ], - [ - -4.38177490234375, - -33.301513671875 - ], - [ - 0, - -38.55963134765625 - ], - [ - 7.0108642578125, - -42.94140625 - ], - [ - 17.52716064453125, - -45.57049560546875 - ], - [ - 24.5379638671875, - -45.57049560546875 - ], - [ - 29.796142578125, - -42.94140625 - ], - [ - 33.30157470703125, - -36.806915283203125 - ], - [ - 34.17791748046875, - -21.03253173828125 - ], - [ - 29.796142578125, - -8.7635498046875 - ], - [ - 23.66162109375, - 3.50543212890625 - ], - [ - 15.7744140625, - 12.26904296875 - ], - [ - 7.88720703125, - 16.65081787109375 - ], - [ - -3.50543212890625, - 14.021728515625 - ], - [ - -9.639892578125, - 7.0108642578125 - ], - [ - -13.14532470703125, - -0.8763427734375 - ], - [ - -14.89801025390625, - -9.639892578125 - ], - [ - -15.7744140625, - -21.90887451171875 - ], - [ - -14.89801025390625, - -30.67242431640625 - ], - [ - -11.39263916015625, - -36.806915283203125 - ], - [ - -7.01080322265625, - -41.188690185546875 - ], - [ - -1.752685546875, - -42.94140625 - ], - [ - 2.62908935546875, - -42.94140625 - ], - [ - 4.38177490234375, - -42.0650634765625 - ], - [ - 5.2581787109375, - -42.0650634765625 - ], - [ - 5.2581787109375, - -40.312347412109375 - ], - [ - 6.134521484375, - -38.55963134765625 - ], - [ - 6.134521484375, - -38.55963134765625 - ] - ], - "pressures": [ - 0.060546875, - 0.2822265625, - 0.49609375, - 0.861328125, - 0.931640625, - 0.951171875, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9580078125, - 0.9169921875, - 0.8642578125, - 0.8173828125, - 0.79296875, - 0.7724609375, - 0.740234375, - 0.4521484375, - 0.2099609375, - 0.169921875, - 0.14453125, - 0.125, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.134521484375, - -38.55963134765625 - ] - }, - { - "id": "Xln77yIJM4wqgyuqJEpjN", - "type": "freedraw", - "x": -186.9966038295197, - "y": -178.77272578648137, - "width": 51.70501708984375, - "height": 75.36663818359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 606669699, - "version": 733, - "versionNonce": 1641710307, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.2581787109375, - -9.639892578125 - ], - [ - -5.2581787109375, - -17.527099609375 - ], - [ - -5.2581787109375, - -27.167022705078125 - ], - [ - -1.75274658203125, - -38.559661865234375 - ], - [ - 3.50543212890625, - -43.81781005859375 - ], - [ - 10.5162353515625, - -48.1995849609375 - ], - [ - 18.4034423828125, - -50.828643798828125 - ], - [ - 24.5379638671875, - -51.70501708984375 - ], - [ - 32.4251708984375, - -44.69415283203125 - ], - [ - 35.93060302734375, - -35.054229736328125 - ], - [ - 36.80694580078125, - -22.7852783203125 - ], - [ - 34.1778564453125, - -8.7635498046875 - ], - [ - 25.414306640625, - 11.39263916015625 - ], - [ - 18.4034423828125, - 19.27984619140625 - ], - [ - 11.392578125, - 23.66162109375 - ], - [ - 5.25811767578125, - 23.66162109375 - ], - [ - -1.75274658203125, - 19.27984619140625 - ], - [ - -9.63995361328125, - 9.639892578125 - ], - [ - -13.1453857421875, - 0 - ], - [ - -14.8980712890625, - -11.39263916015625 - ], - [ - -14.8980712890625, - -21.90887451171875 - ], - [ - -11.39263916015625, - -32.4251708984375 - ], - [ - -7.88720703125, - -35.93060302734375 - ], - [ - -4.38177490234375, - -37.683319091796875 - ], - [ - -1.75274658203125, - -38.559661865234375 - ], - [ - 0, - -39.436004638671875 - ], - [ - 4.38177490234375, - -40.3123779296875 - ], - [ - 7.01080322265625, - -41.188720703125 - ], - [ - 7.88720703125, - -41.188720703125 - ], - [ - 7.88720703125, - -41.188720703125 - ] - ], - "pressures": [ - 0.1328125, - 0.431640625, - 0.57421875, - 0.70703125, - 0.8408203125, - 0.8662109375, - 0.87890625, - 0.8955078125, - 0.921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9599609375, - 0.822265625, - 0.798828125, - 0.7705078125, - 0.734375, - 0.708984375, - 0.646484375, - 0.4365234375, - 0.3232421875, - 0.263671875, - 0.171875, - 0.099609375, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.88720703125, - -41.188720703125 - ] - }, - { - "id": "9bbu84DEnWUNYWI2XnKL0", - "type": "freedraw", - "x": -185.2439182826447, - "y": -177.02004023960637, - "width": 56.963134765625, - "height": 65.7266845703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 140754765, - "version": 731, - "versionNonce": 556650701, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - -2.6290283203125 - ], - [ - -7.0108642578125, - -7.88714599609375 - ], - [ - -7.88720703125, - -17.527099609375 - ], - [ - -6.13446044921875, - -26.2906494140625 - ], - [ - -0.8763427734375, - -34.1778564453125 - ], - [ - 6.134521484375, - -42.0650634765625 - ], - [ - 14.8980712890625, - -47.323211669921875 - ], - [ - 27.16705322265625, - -49.9522705078125 - ], - [ - 32.4251708984375, - -48.199554443359375 - ], - [ - 36.80694580078125, - -41.188690185546875 - ], - [ - 39.43603515625, - -29.79608154296875 - ], - [ - 40.3123779296875, - -9.639892578125 - ], - [ - 36.80694580078125, - 1.75274658203125 - ], - [ - 29.796142578125, - 10.51629638671875 - ], - [ - 21.908935546875, - 14.8980712890625 - ], - [ - 13.14532470703125, - 15.7744140625 - ], - [ - 0.8763427734375, - 12.26904296875 - ], - [ - -7.0108642578125, - 6.134521484375 - ], - [ - -12.26898193359375, - -1.752685546875 - ], - [ - -14.8980712890625, - -10.5162353515625 - ], - [ - -16.6507568359375, - -22.78521728515625 - ], - [ - -14.8980712890625, - -28.919708251953125 - ], - [ - -11.39263916015625, - -31.548797607421875 - ], - [ - -7.88720703125, - -33.301513671875 - ], - [ - -3.50543212890625, - -35.05419921875 - ], - [ - 0.8763427734375, - -36.806915283203125 - ], - [ - 2.62908935546875, - -36.806915283203125 - ], - [ - 2.62908935546875, - -36.806915283203125 - ] - ], - "pressures": [ - 0.107421875, - 0.287109375, - 0.3857421875, - 0.5380859375, - 0.5947265625, - 0.6181640625, - 0.6240234375, - 0.62890625, - 0.666015625, - 0.697265625, - 0.72265625, - 0.72265625, - 0.703125, - 0.69921875, - 0.6904296875, - 0.6826171875, - 0.669921875, - 0.6318359375, - 0.58984375, - 0.5673828125, - 0.5556640625, - 0.5458984375, - 0.5283203125, - 0.3818359375, - 0.2626953125, - 0.2177734375, - 0.1669921875, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.62908935546875, - -36.806915283203125 - ] - }, - { - "id": "gf9GbDesQGfipPUVue_vV", - "type": "freedraw", - "x": -153.6950901576447, - "y": -192.79439326695012, - "width": 10.5162353515625, - "height": 25.41436767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1521937133, - "version": 720, - "versionNonce": 770584195, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.87640380859375 - ], - [ - 0.8763427734375, - 0.8763427734375 - ], - [ - 5.25811767578125, - 8.7635498046875 - ], - [ - 7.88720703125, - 14.89801025390625 - ], - [ - 8.7635498046875, - 20.15618896484375 - ], - [ - 9.639892578125, - 22.78521728515625 - ], - [ - 9.639892578125, - 23.66156005859375 - ], - [ - 9.639892578125, - 24.5379638671875 - ], - [ - 8.7635498046875, - 24.5379638671875 - ], - [ - 5.25811767578125, - 24.5379638671875 - ], - [ - 2.62908935546875, - 23.66156005859375 - ], - [ - 0, - 22.78521728515625 - ], - [ - -0.8763427734375, - 22.78521728515625 - ], - [ - -0.8763427734375, - 21.90887451171875 - ], - [ - 0, - 21.90887451171875 - ], - [ - 1.752685546875, - 21.90887451171875 - ], - [ - 2.62908935546875, - 22.78521728515625 - ], - [ - 2.62908935546875, - 22.78521728515625 - ] - ], - "pressures": [ - 0.03515625, - 0.2880859375, - 0.3525390625, - 0.4345703125, - 0.5263671875, - 0.615234375, - 0.701171875, - 0.736328125, - 0.802734375, - 0.8955078125, - 0.904296875, - 0.904296875, - 0.904296875, - 0.9150390625, - 0.9130859375, - 0.2568359375, - 0.1513671875, - 0.0244140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.62908935546875, - 22.78521728515625 - ] - }, - { - "id": "CGL-eKCECbQ_KMv-X7Tl-", - "type": "freedraw", - "x": -171.2221897670197, - "y": -181.40181514195012, - "width": 49.95233154296875, - "height": 79.74838256835938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 174387011, - "version": 731, - "versionNonce": 305409837, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.2581787109375, - 3.50543212890625 - ], - [ - -7.0108642578125, - 2.62908935546875 - ], - [ - -8.76361083984375, - -2.6290283203125 - ], - [ - -9.63995361328125, - -17.527099609375 - ], - [ - -7.88720703125, - -28.91973876953125 - ], - [ - -2.62908935546875, - -39.436004638671875 - ], - [ - 3.50537109375, - -48.199554443359375 - ], - [ - 9.639892578125, - -54.33404541015625 - ], - [ - 18.4034423828125, - -56.963104248046875 - ], - [ - 25.414306640625, - -54.33404541015625 - ], - [ - 31.54876708984375, - -47.323211669921875 - ], - [ - 35.93060302734375, - -35.054229736328125 - ], - [ - 36.80694580078125, - -18.4034423828125 - ], - [ - 32.4251708984375, - 7.0108642578125 - ], - [ - 25.414306640625, - 17.52716064453125 - ], - [ - 17.527099609375, - 21.908935546875 - ], - [ - 10.5162353515625, - 22.7852783203125 - ], - [ - 0, - 16.65081787109375 - ], - [ - -7.0108642578125, - 9.63995361328125 - ], - [ - -11.39263916015625, - 0.87640380859375 - ], - [ - -13.1453857421875, - -7.88720703125 - ], - [ - -13.1453857421875, - -16.6507568359375 - ], - [ - -11.39263916015625, - -28.91973876953125 - ], - [ - -7.88720703125, - -35.054229736328125 - ], - [ - -4.3818359375, - -38.55963134765625 - ], - [ - -2.62908935546875, - -38.55963134765625 - ], - [ - 4.38177490234375, - -36.806915283203125 - ], - [ - 6.13446044921875, - -35.054229736328125 - ], - [ - 6.13446044921875, - -35.054229736328125 - ] - ], - "pressures": [ - 0.0673828125, - 0.2880859375, - 0.4072265625, - 0.5478515625, - 0.9296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.92578125, - 0.9111328125, - 0.900390625, - 0.8896484375, - 0.87890625, - 0.802734375, - 0.72265625, - 0.2109375, - 0.08984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.13446044921875, - -35.054229736328125 - ] - }, - { - "id": "0FLM4Ve6zB74pXKZZw61F", - "type": "freedraw", - "x": -177.3567112513947, - "y": -180.52541133335637, - "width": 35.93060302734375, - "height": 67.47943115234375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 168749091, - "version": 730, - "versionNonce": 2110481955, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -7.0108642578125 - ], - [ - -8.7635498046875, - -14.021728515625 - ], - [ - -9.639892578125, - -21.908935546875 - ], - [ - -8.7635498046875, - -29.796142578125 - ], - [ - -3.50543212890625, - -40.312408447265625 - ], - [ - 1.752685546875, - -45.570526123046875 - ], - [ - 7.88720703125, - -49.075958251953125 - ], - [ - 13.14532470703125, - -50.82867431640625 - ], - [ - 20.15618896484375, - -49.075958251953125 - ], - [ - 24.5379638671875, - -41.188751220703125 - ], - [ - 26.29071044921875, - -27.16705322265625 - ], - [ - 26.29071044921875, - -11.39263916015625 - ], - [ - 23.66162109375, - 4.38177490234375 - ], - [ - 16.6507568359375, - 15.7744140625 - ], - [ - 11.39263916015625, - 16.6507568359375 - ], - [ - 5.25811767578125, - 14.89801025390625 - ], - [ - 0, - 9.639892578125 - ], - [ - -5.25811767578125, - 1.752685546875 - ], - [ - -7.88720703125, - -2.62908935546875 - ], - [ - -8.7635498046875, - -7.0108642578125 - ], - [ - -8.7635498046875, - -14.021728515625 - ], - [ - -7.0108642578125, - -23.661651611328125 - ], - [ - -3.50543212890625, - -34.17791748046875 - ], - [ - 0, - -37.683319091796875 - ], - [ - 1.752685546875, - -39.43603515625 - ], - [ - 4.38177490234375, - -39.43603515625 - ], - [ - 5.25811767578125, - -38.5596923828125 - ], - [ - 5.25811767578125, - -38.5596923828125 - ] - ], - "pressures": [ - 0.0830078125, - 0.30078125, - 0.4775390625, - 0.669921875, - 0.8515625, - 0.927734375, - 0.9345703125, - 0.947265625, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.947265625, - 0.8388671875, - 0.791015625, - 0.73046875, - 0.6826171875, - 0.642578125, - 0.580078125, - 0.50390625, - 0.349609375, - 0.2109375, - 0.1494140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.25811767578125, - -38.5596923828125 - ] - }, - { - "id": "uSFApu5EyFlFrfixiuQ4E", - "type": "freedraw", - "x": -180.86214338030095, - "y": -177.89638301304387, - "width": 40.3123779296875, - "height": 83.25381469726562, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 23693901, - "version": 747, - "versionNonce": 597672333, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -6.13446044921875 - ], - [ - -5.25811767578125, - -20.15618896484375 - ], - [ - -5.25811767578125, - -31.548797607421875 - ], - [ - -1.752685546875, - -41.188720703125 - ], - [ - 2.62908935546875, - -49.9522705078125 - ], - [ - 11.39263916015625, - -56.963134765625 - ], - [ - 17.52716064453125, - -58.715850830078125 - ], - [ - 23.66162109375, - -56.086761474609375 - ], - [ - 29.796142578125, - -50.828643798828125 - ], - [ - 34.17791748046875, - -42.0650634765625 - ], - [ - 35.05426025390625, - -21.03253173828125 - ], - [ - 32.4251708984375, - -1.752685546875 - ], - [ - 26.29071044921875, - 14.021728515625 - ], - [ - 20.15618896484375, - 22.7852783203125 - ], - [ - 11.39263916015625, - 24.5379638671875 - ], - [ - 5.25811767578125, - 20.15618896484375 - ], - [ - 0.8763427734375, - 12.26898193359375 - ], - [ - -1.752685546875, - 3.50543212890625 - ], - [ - -3.50543212890625, - -5.25811767578125 - ], - [ - -4.38177490234375, - -19.27984619140625 - ], - [ - -4.38177490234375, - -28.043365478515625 - ], - [ - -1.752685546875, - -35.054229736328125 - ], - [ - 2.62908935546875, - -41.188720703125 - ], - [ - 4.38177490234375, - -42.0650634765625 - ], - [ - 5.25811767578125, - -42.941436767578125 - ], - [ - 6.134521484375, - -42.941436767578125 - ], - [ - 7.0108642578125, - -44.69415283203125 - ], - [ - 7.0108642578125, - -44.69415283203125 - ] - ], - "pressures": [ - 0.11328125, - 0.2998046875, - 0.6376953125, - 0.8701171875, - 0.9423828125, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9296875, - 0.8681640625, - 0.8369140625, - 0.7646484375, - 0.6533203125, - 0.5458984375, - 0.3818359375, - 0.2734375, - 0.2021484375, - 0.1416015625, - 0.0966796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.0108642578125, - -44.69415283203125 - ] - }, - { - "id": "h06-xLlOjKBNh0iZdguwK", - "type": "freedraw", - "x": -172.09859357561345, - "y": -164.75099727085637, - "width": 44.69415283203125, - "height": 101.65731811523438, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 268649261, - "version": 716, - "versionNonce": 945859011, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -16.6507568359375, - -5.2581787109375 - ], - [ - -17.527099609375, - -16.65081787109375 - ], - [ - -15.7744140625, - -31.548828125 - ], - [ - -12.26898193359375, - -49.075958251953125 - ], - [ - -7.01080322265625, - -65.72674560546875 - ], - [ - -2.6290283203125, - -77.9957275390625 - ], - [ - 5.2581787109375, - -87.6356201171875 - ], - [ - 11.39263916015625, - -89.38833618164062 - ], - [ - 18.40350341796875, - -87.6356201171875 - ], - [ - 24.5379638671875, - -81.50112915039062 - ], - [ - 27.16705322265625, - -60.468597412109375 - ], - [ - 23.66162109375, - -37.683349609375 - ], - [ - 16.65081787109375, - -13.1453857421875 - ], - [ - 9.63995361328125, - 3.50537109375 - ], - [ - 1.75274658203125, - 12.26898193359375 - ], - [ - -2.6290283203125, - 9.639892578125 - ], - [ - -7.01080322265625, - 0.8763427734375 - ], - [ - -9.639892578125, - -12.26904296875 - ], - [ - -10.5162353515625, - -28.9197998046875 - ], - [ - -8.7635498046875, - -50.82867431640625 - ], - [ - -5.25811767578125, - -60.468597412109375 - ], - [ - -2.6290283203125, - -69.23214721679688 - ], - [ - 0.87640380859375, - -75.36663818359375 - ], - [ - 2.62908935546875, - -77.9957275390625 - ], - [ - 5.2581787109375, - -77.11935424804688 - ], - [ - 7.0108642578125, - -74.49029541015625 - ], - [ - 7.0108642578125, - -74.49029541015625 - ] - ], - "pressures": [ - 0.052734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8642578125, - 0.41015625, - 0.2099609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.0108642578125, - -74.49029541015625 - ] - }, - { - "id": "oaax9-3N_yPZjUV2nrEM0", - "type": "freedraw", - "x": -180.86214338030095, - "y": -176.14363643101262, - "width": 41.188720703125, - "height": 91.14105224609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1183764963, - "version": 717, - "versionNonce": 2057963501, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -6.134521484375 - ], - [ - -5.25811767578125, - -11.39263916015625 - ], - [ - -5.25811767578125, - -21.0325927734375 - ], - [ - -3.50543212890625, - -35.05426025390625 - ], - [ - 0, - -50.82867431640625 - ], - [ - 8.7635498046875, - -69.23214721679688 - ], - [ - 15.7744140625, - -73.61392211914062 - ], - [ - 21.908935546875, - -71.8612060546875 - ], - [ - 28.91973876953125, - -58.71588134765625 - ], - [ - 31.548828125, - -46.4468994140625 - ], - [ - 31.548828125, - -30.6724853515625 - ], - [ - 26.29071044921875, - -9.63995361328125 - ], - [ - 19.27984619140625, - 7.01080322265625 - ], - [ - 13.14532470703125, - 15.7744140625 - ], - [ - 5.25811767578125, - 15.7744140625 - ], - [ - 0, - 8.7635498046875 - ], - [ - -4.38177490234375, - -1.75274658203125 - ], - [ - -7.88720703125, - -16.6507568359375 - ], - [ - -9.639892578125, - -38.5596923828125 - ], - [ - -8.7635498046875, - -47.3232421875 - ], - [ - -7.0108642578125, - -53.457733154296875 - ], - [ - -3.50543212890625, - -59.59222412109375 - ], - [ - 0, - -67.47943115234375 - ], - [ - 5.25811767578125, - -75.36663818359375 - ], - [ - 8.7635498046875, - -75.36663818359375 - ], - [ - 11.39263916015625, - -69.23214721679688 - ], - [ - 13.14532470703125, - -63.09765625 - ], - [ - 13.14532470703125, - -63.09765625 - ] - ], - "pressures": [ - 0.0849609375, - 0.4970703125, - 0.6865234375, - 0.8896484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.701171875, - 0.4013671875, - 0.203125, - 0.0361328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.14532470703125, - -63.09765625 - ] - }, - { - "id": "_u57ykr1IbsfGiBe2WXag", - "type": "freedraw", - "x": -180.86214338030095, - "y": -184.03084346226262, - "width": 39.43603515625, - "height": 87.6356201171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1837929795, - "version": 717, - "versionNonce": 1657567587, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -4.38177490234375 - ], - [ - -3.50543212890625, - -14.8980712890625 - ], - [ - -2.6290283203125, - -30.6724853515625 - ], - [ - 0, - -37.683319091796875 - ], - [ - 3.50543212890625, - -42.94146728515625 - ], - [ - 10.51629638671875, - -51.70501708984375 - ], - [ - 15.7744140625, - -56.963165283203125 - ], - [ - 21.03253173828125, - -58.71588134765625 - ], - [ - 26.29071044921875, - -56.0867919921875 - ], - [ - 29.796142578125, - -49.075958251953125 - ], - [ - 32.4251708984375, - -39.43603515625 - ], - [ - 29.796142578125, - -18.40350341796875 - ], - [ - 23.66162109375, - 0 - ], - [ - 17.52716064453125, - 17.527099609375 - ], - [ - 10.51629638671875, - 28.91973876953125 - ], - [ - 8.7635498046875, - 28.91973876953125 - ], - [ - 1.75274658203125, - 21.90887451171875 - ], - [ - -2.6290283203125, - 13.14532470703125 - ], - [ - -6.13446044921875, - 0.8763427734375 - ], - [ - -7.0108642578125, - -13.1453857421875 - ], - [ - -4.38177490234375, - -32.425201416015625 - ], - [ - -0.8763427734375, - -41.188751220703125 - ], - [ - 3.50543212890625, - -46.4468994140625 - ], - [ - 7.88720703125, - -52.581390380859375 - ], - [ - 10.51629638671875, - -54.334075927734375 - ], - [ - 11.39263916015625, - -56.0867919921875 - ], - [ - 12.26898193359375, - -56.0867919921875 - ], - [ - 12.26898193359375, - -56.0867919921875 - ] - ], - "pressures": [ - 0.1162109375, - 0.4951171875, - 0.798828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9111328125, - 0.6943359375, - 0.5263671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.26898193359375, - -56.0867919921875 - ] - }, - { - "id": "5aaFKYo6Jt1JXWEfEg8DQ", - "type": "freedraw", - "x": -180.86214338030095, - "y": -176.14363643101262, - "width": 41.18878173828125, - "height": 84.13015747070312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 630105251, - "version": 715, - "versionNonce": 1499234893, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -6.134521484375 - ], - [ - -3.50543212890625, - -23.66162109375 - ], - [ - -2.6290283203125, - -39.43603515625 - ], - [ - 1.75274658203125, - -53.457733154296875 - ], - [ - 7.0108642578125, - -63.09765625 - ], - [ - 10.51629638671875, - -68.35580444335938 - ], - [ - 16.6507568359375, - -70.10848999023438 - ], - [ - 21.908935546875, - -64.85037231445312 - ], - [ - 27.16705322265625, - -55.21044921875 - ], - [ - 29.796142578125, - -42.065093994140625 - ], - [ - 28.91973876953125, - -16.6507568359375 - ], - [ - 23.66162109375, - 0.8763427734375 - ], - [ - 17.52716064453125, - 10.5162353515625 - ], - [ - 11.39263916015625, - 14.02166748046875 - ], - [ - 5.25811767578125, - 14.02166748046875 - ], - [ - -2.6290283203125, - 8.7635498046875 - ], - [ - -6.13446044921875, - 6.13446044921875 - ], - [ - -9.639892578125, - 2.6290283203125 - ], - [ - -11.39263916015625, - -1.75274658203125 - ], - [ - -11.39263916015625, - -11.39263916015625 - ], - [ - -8.7635498046875, - -21.908935546875 - ], - [ - -4.38177490234375, - -34.17791748046875 - ], - [ - 0, - -42.94146728515625 - ], - [ - 3.50543212890625, - -48.199615478515625 - ], - [ - 5.25811767578125, - -48.199615478515625 - ], - [ - 5.25811767578125, - -48.199615478515625 - ] - ], - "pressures": [ - 0.1328125, - 0.447265625, - 0.8408203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.953125, - 0.74609375, - 0.328125, - 0.20703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.25811767578125, - -48.199615478515625 - ] - }, - { - "id": "pMYijHcoDDOWKAt7I4zgG", - "type": "freedraw", - "x": -179.98580060686345, - "y": -170.00917598179387, - "width": 43.81781005859375, - "height": 89.38833618164062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2054358115, - "version": 717, - "versionNonce": 1516066051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -4.38177490234375 - ], - [ - -3.50537109375, - -10.5162353515625 - ], - [ - -5.25811767578125, - -26.2906494140625 - ], - [ - -4.38177490234375, - -40.3123779296875 - ], - [ - -0.8763427734375, - -53.45770263671875 - ], - [ - 2.62908935546875, - -63.973968505859375 - ], - [ - 7.88720703125, - -70.98483276367188 - ], - [ - 12.26898193359375, - -71.86117553710938 - ], - [ - 18.40350341796875, - -70.10845947265625 - ], - [ - 27.16705322265625, - -62.22125244140625 - ], - [ - 33.30157470703125, - -49.9522705078125 - ], - [ - 34.17791748046875, - -22.78521728515625 - ], - [ - 28.9197998046875, - -4.38177490234375 - ], - [ - 21.908935546875, - 9.63995361328125 - ], - [ - 14.8980712890625, - 15.7744140625 - ], - [ - 8.76361083984375, - 17.52716064453125 - ], - [ - -1.752685546875, - 9.63995361328125 - ], - [ - -7.01080322265625, - -1.752685546875 - ], - [ - -9.639892578125, - -13.14532470703125 - ], - [ - -9.639892578125, - -24.5379638671875 - ], - [ - -8.7635498046875, - -38.559661865234375 - ], - [ - -6.13446044921875, - -46.446868896484375 - ], - [ - -4.38177490234375, - -51.704986572265625 - ], - [ - -1.752685546875, - -56.086761474609375 - ], - [ - -0.8763427734375, - -56.963134765625 - ], - [ - 0, - -56.086761474609375 - ], - [ - 0.87640380859375, - -54.334075927734375 - ], - [ - 0.87640380859375, - -54.334075927734375 - ] - ], - "pressures": [ - 0.087890625, - 0.220703125, - 0.337890625, - 0.6494140625, - 0.8876953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9580078125, - 0.9150390625, - 0.828125, - 0.697265625, - 0.419921875, - 0.2646484375, - 0.177734375, - 0.08203125, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.87640380859375, - -54.334075927734375 - ] - }, - { - "id": "rT9ncowaJR5Q5_hS_qaqS", - "type": "freedraw", - "x": -184.3675755092072, - "y": -181.40181514195012, - "width": 45.570556640625, - "height": 84.13021850585938, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 990353347, - "version": 722, - "versionNonce": 76591277, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 3.50543212890625 - ], - [ - -3.50543212890625, - 4.38177490234375 - ], - [ - -4.38177490234375, - 4.38177490234375 - ], - [ - -7.01080322265625, - 3.50543212890625 - ], - [ - -8.7635498046875, - -5.25811767578125 - ], - [ - -8.7635498046875, - -15.7744140625 - ], - [ - -7.01080322265625, - -28.043365478515625 - ], - [ - -2.6290283203125, - -41.188720703125 - ], - [ - 6.134521484375, - -59.592193603515625 - ], - [ - 10.51629638671875, - -66.60302734375 - ], - [ - 16.6507568359375, - -67.47940063476562 - ], - [ - 22.7852783203125, - -63.973968505859375 - ], - [ - 28.9197998046875, - -56.963104248046875 - ], - [ - 34.17791748046875, - -42.0650634765625 - ], - [ - 33.30157470703125, - -28.043365478515625 - ], - [ - 29.796142578125, - -10.5162353515625 - ], - [ - 24.5379638671875, - 4.38177490234375 - ], - [ - 16.6507568359375, - 14.8980712890625 - ], - [ - 12.26898193359375, - 16.65081787109375 - ], - [ - 5.2581787109375, - 14.8980712890625 - ], - [ - -0.8763427734375, - 9.63995361328125 - ], - [ - -7.01080322265625, - 3.50543212890625 - ], - [ - -11.39263916015625, - -8.7635498046875 - ], - [ - -11.39263916015625, - -15.7744140625 - ], - [ - -11.39263916015625, - -21.90887451171875 - ], - [ - -9.639892578125, - -27.167022705078125 - ], - [ - -6.13446044921875, - -35.054229736328125 - ], - [ - -3.50543212890625, - -38.55963134765625 - ], - [ - -1.752685546875, - -41.188720703125 - ], - [ - 0, - -42.941436767578125 - ], - [ - 0.87640380859375, - -42.941436767578125 - ], - [ - 1.75274658203125, - -42.941436767578125 - ], - [ - 1.75274658203125, - -42.941436767578125 - ] - ], - "pressures": [ - 0.0703125, - 0.4150390625, - 0.673828125, - 0.830078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.751953125, - 0.51171875, - 0.3515625, - 0.236328125, - 0.169921875, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.75274658203125, - -42.941436767578125 - ] - }, - { - "id": "dqmj8L0jZW7UkUjmvE-Ha", - "type": "freedraw", - "x": -189.62569318498845, - "y": -178.77272578648137, - "width": 30.6724853515625, - "height": 49.075927734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 689732173, - "version": 709, - "versionNonce": 1318173859, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - -2.62908935546875, - -7.0108642578125 - ], - [ - -3.50543212890625, - -13.14532470703125 - ], - [ - -4.38177490234375, - -21.03253173828125 - ], - [ - -3.50543212890625, - -31.548828125 - ], - [ - -0.8763427734375, - -36.80694580078125 - ], - [ - 3.50543212890625, - -42.065093994140625 - ], - [ - 7.88720703125, - -46.446868896484375 - ], - [ - 11.39263916015625, - -49.075927734375 - ], - [ - 16.6507568359375, - -49.075927734375 - ], - [ - 20.15618896484375, - -47.323211669921875 - ], - [ - 24.5379638671875, - -42.065093994140625 - ], - [ - 26.29071044921875, - -34.177886962890625 - ], - [ - 26.29071044921875, - -21.03253173828125 - ], - [ - 23.66162109375, - -14.02166748046875 - ], - [ - 19.27984619140625, - -9.639892578125 - ], - [ - 14.8980712890625, - -7.0108642578125 - ], - [ - 12.26898193359375, - -6.13446044921875 - ], - [ - 8.7635498046875, - -7.88720703125 - ], - [ - 8.7635498046875, - -8.7635498046875 - ], - [ - 8.7635498046875, - -8.7635498046875 - ] - ], - "pressures": [ - 0.013671875, - 0.2197265625, - 0.2998046875, - 0.400390625, - 0.525390625, - 0.673828125, - 0.787109375, - 0.849609375, - 0.8955078125, - 0.908203125, - 0.9189453125, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 0.908203125, - 0.611328125, - 0.1904296875, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.7635498046875, - -8.7635498046875 - ] - }, - { - "id": "tRzN1Z8j1tEb8C8NTgt0O", - "type": "freedraw", - "x": -186.1202610560822, - "y": -171.76186152866887, - "width": 41.18878173828125, - "height": 69.23214721679688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 778476995, - "version": 719, - "versionNonce": 1777341197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - 2.6290283203125 - ], - [ - -7.88720703125, - -0.8763427734375 - ], - [ - -10.51629638671875, - -13.14532470703125 - ], - [ - -10.51629638671875, - -24.5379638671875 - ], - [ - -7.88720703125, - -35.05426025390625 - ], - [ - -4.38177490234375, - -43.81781005859375 - ], - [ - 0.8763427734375, - -51.70501708984375 - ], - [ - 9.639892578125, - -60.46856689453125 - ], - [ - 14.8980712890625, - -62.221282958984375 - ], - [ - 20.15618896484375, - -61.344940185546875 - ], - [ - 25.414306640625, - -53.457733154296875 - ], - [ - 30.6724853515625, - -36.806976318359375 - ], - [ - 30.6724853515625, - -21.908935546875 - ], - [ - 27.16705322265625, - -7.0108642578125 - ], - [ - 22.7852783203125, - 2.6290283203125 - ], - [ - 18.4034423828125, - 7.0108642578125 - ], - [ - 9.639892578125, - 6.13446044921875 - ], - [ - 3.50543212890625, - 1.752685546875 - ], - [ - -2.62908935546875, - -3.50543212890625 - ], - [ - -7.0108642578125, - -10.51629638671875 - ], - [ - -10.51629638671875, - -21.03253173828125 - ], - [ - -10.51629638671875, - -28.91973876953125 - ], - [ - -9.63995361328125, - -37.683319091796875 - ], - [ - -6.134521484375, - -45.570526123046875 - ], - [ - -1.75274658203125, - -51.70501708984375 - ], - [ - 1.752685546875, - -55.21044921875 - ], - [ - 2.62908935546875, - -55.21044921875 - ], - [ - 3.50543212890625, - -55.21044921875 - ], - [ - 4.38177490234375, - -55.21044921875 - ], - [ - 5.25811767578125, - -55.21044921875 - ], - [ - 5.25811767578125, - -55.21044921875 - ] - ], - "pressures": [ - 0.0634765625, - 0.3515625, - 0.5146484375, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.880859375, - 0.828125, - 0.828125, - 0.830078125, - 0.826171875, - 0.8154296875, - 0.7421875, - 0.458984375, - 0.3505859375, - 0.2470703125, - 0.18359375, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.25811767578125, - -55.21044921875 - ] - }, - { - "id": "bsoPJLrUWE2LVjurOU7cM", - "type": "freedraw", - "x": -186.1202610560822, - "y": -177.02004023960637, - "width": 48.1995849609375, - "height": 73.61392211914062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 697237741, - "version": 719, - "versionNonce": 2065182787, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -7.01080322265625 - ], - [ - -3.50543212890625, - -14.02166748046875 - ], - [ - -4.38177490234375, - -23.66156005859375 - ], - [ - -2.62908935546875, - -38.55963134765625 - ], - [ - 0, - -45.57049560546875 - ], - [ - 2.62908935546875, - -51.704986572265625 - ], - [ - 6.13446044921875, - -56.086761474609375 - ], - [ - 13.14532470703125, - -60.468536376953125 - ], - [ - 19.27984619140625, - -57.8394775390625 - ], - [ - 25.414306640625, - -49.9522705078125 - ], - [ - 30.6724853515625, - -39.436004638671875 - ], - [ - 34.1778564453125, - -28.043365478515625 - ], - [ - 34.1778564453125, - -8.7635498046875 - ], - [ - 30.6724853515625, - 1.75274658203125 - ], - [ - 26.2906494140625, - 8.76361083984375 - ], - [ - 21.03253173828125, - 12.26904296875 - ], - [ - 10.5162353515625, - 13.1453857421875 - ], - [ - 1.752685546875, - 10.51629638671875 - ], - [ - -5.25811767578125, - 6.134521484375 - ], - [ - -10.51629638671875, - 0 - ], - [ - -13.14532470703125, - -7.88714599609375 - ], - [ - -14.021728515625, - -15.77435302734375 - ], - [ - -13.14532470703125, - -25.414306640625 - ], - [ - -11.39263916015625, - -28.919708251953125 - ], - [ - -8.7635498046875, - -33.301513671875 - ], - [ - -6.134521484375, - -36.806915283203125 - ], - [ - 0, - -42.0650634765625 - ], - [ - 2.62908935546875, - -42.94140625 - ], - [ - 5.25811767578125, - -42.94140625 - ], - [ - 6.13446044921875, - -42.0650634765625 - ], - [ - 6.13446044921875, - -42.0650634765625 - ] - ], - "pressures": [ - 0.0615234375, - 0.3330078125, - 0.470703125, - 0.6357421875, - 0.87890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9169921875, - 0.8740234375, - 0.8662109375, - 0.861328125, - 0.8408203125, - 0.794921875, - 0.708984375, - 0.57421875, - 0.3935546875, - 0.2412109375, - 0.1474609375, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.13446044921875, - -42.0650634765625 - ] - }, - { - "id": "Ygu_nOm4y3BRa3J2btjm_", - "type": "freedraw", - "x": -219.4217747279572, - "y": -177.02004023960637, - "width": 16.6507568359375, - "height": 57.839508056640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1471212131, - "version": 714, - "versionNonce": 99887469, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -3.50537109375 - ], - [ - -2.62908935546875, - -6.13446044921875 - ], - [ - -2.62908935546875, - -10.5162353515625 - ], - [ - -2.62908935546875, - -14.89801025390625 - ], - [ - -2.62908935546875, - -20.15618896484375 - ], - [ - -2.62908935546875, - -27.167022705078125 - ], - [ - -1.75274658203125, - -33.301513671875 - ], - [ - 0, - -37.68328857421875 - ], - [ - 3.50543212890625, - -40.312347412109375 - ], - [ - 6.13446044921875, - -41.188690185546875 - ], - [ - 9.639892578125, - -36.806915283203125 - ], - [ - 14.02166748046875, - -21.03253173828125 - ], - [ - 14.02166748046875, - -9.639892578125 - ], - [ - 13.14532470703125, - 1.75274658203125 - ], - [ - 10.5162353515625, - 10.51629638671875 - ], - [ - 7.88720703125, - 14.8980712890625 - ], - [ - 6.13446044921875, - 16.65081787109375 - ], - [ - 2.6290283203125, - 15.7744140625 - ], - [ - 0, - 10.51629638671875 - ], - [ - -1.75274658203125, - 4.3818359375 - ], - [ - -2.62908935546875, - -8.7635498046875 - ], - [ - -2.62908935546875, - -17.527099609375 - ], - [ - -2.62908935546875, - -25.414306640625 - ], - [ - -1.75274658203125, - -31.548797607421875 - ], - [ - 0, - -34.1778564453125 - ], - [ - 0, - -35.05419921875 - ], - [ - 0.8763427734375, - -35.05419921875 - ], - [ - 0.8763427734375, - -33.301513671875 - ], - [ - 1.752685546875, - -29.79608154296875 - ], - [ - 1.752685546875, - -28.043365478515625 - ], - [ - 1.752685546875, - -28.043365478515625 - ] - ], - "pressures": [ - 0.0400390625, - 0.263671875, - 0.3359375, - 0.421875, - 0.478515625, - 0.59765625, - 0.751953125, - 0.822265625, - 0.8408203125, - 0.8427734375, - 0.8408203125, - 0.85546875, - 0.861328125, - 0.857421875, - 0.849609375, - 0.830078125, - 0.8349609375, - 0.8349609375, - 0.822265625, - 0.79296875, - 0.7724609375, - 0.7587890625, - 0.75390625, - 0.75390625, - 0.75, - 0.75, - 0.74609375, - 0.3681640625, - 0.1826171875, - 0.1201171875, - 0.0009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.752685546875, - -28.043365478515625 - ] - }, - { - "id": "Op5oBhHoin9W0GIzQteKe", - "type": "freedraw", - "x": -222.92720685686345, - "y": -184.03084346226262, - "width": 10.51629638671875, - "height": 63.097625732421875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 861261699, - "version": 710, - "versionNonce": 567226339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -6.134521484375 - ], - [ - -3.50543212890625, - -14.021728515625 - ], - [ - -3.50543212890625, - -23.66162109375 - ], - [ - -2.62908935546875, - -33.301544189453125 - ], - [ - -0.8763427734375, - -42.065093994140625 - ], - [ - 2.62908935546875, - -48.1995849609375 - ], - [ - 3.50543212890625, - -49.075958251953125 - ], - [ - 4.38177490234375, - -49.075958251953125 - ], - [ - 5.25811767578125, - -44.694183349609375 - ], - [ - 7.0108642578125, - -28.919769287109375 - ], - [ - 7.0108642578125, - -14.021728515625 - ], - [ - 6.13446044921875, - 0.8763427734375 - ], - [ - 5.25811767578125, - 10.5162353515625 - ], - [ - 4.38177490234375, - 13.14532470703125 - ], - [ - 4.38177490234375, - 14.02166748046875 - ], - [ - 4.38177490234375, - 12.26898193359375 - ], - [ - 2.62908935546875, - 7.88720703125 - ], - [ - 0.8763427734375, - 0.8763427734375 - ], - [ - 0, - -11.39263916015625 - ], - [ - -0.8763427734375, - -21.032562255859375 - ], - [ - -0.8763427734375, - -29.796112060546875 - ], - [ - 0, - -37.683319091796875 - ], - [ - 0.8763427734375, - -42.065093994140625 - ], - [ - 1.752685546875, - -42.94146728515625 - ], - [ - 2.62908935546875, - -42.94146728515625 - ], - [ - 3.50543212890625, - -42.94146728515625 - ], - [ - 3.50543212890625, - -42.94146728515625 - ] - ], - "pressures": [ - 0.033203125, - 0.37890625, - 0.6015625, - 0.791015625, - 0.8828125, - 0.921875, - 0.92578125, - 0.9189453125, - 0.9111328125, - 0.923828125, - 0.9365234375, - 0.9296875, - 0.8935546875, - 0.8408203125, - 0.8203125, - 0.8173828125, - 0.791015625, - 0.7744140625, - 0.791015625, - 0.8076171875, - 0.796875, - 0.7626953125, - 0.705078125, - 0.55078125, - 0.3583984375, - 0.1630859375, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.50543212890625, - -42.94146728515625 - ] - }, - { - "id": "n0SWXbLK59lIdYN0qo9f-", - "type": "freedraw", - "x": -225.5562962123322, - "y": -180.52541133335637, - "width": 11.39263916015625, - "height": 67.47943115234375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 731143523, - "version": 705, - "versionNonce": 166097869, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -6.134521484375 - ], - [ - -2.62908935546875, - -16.65081787109375 - ], - [ - -2.62908935546875, - -26.29071044921875 - ], - [ - -0.8763427734375, - -37.683319091796875 - ], - [ - 1.75274658203125, - -45.570526123046875 - ], - [ - 4.38177490234375, - -50.82867431640625 - ], - [ - 5.2581787109375, - -51.70501708984375 - ], - [ - 7.0108642578125, - -47.3232421875 - ], - [ - 7.0108642578125, - -42.94146728515625 - ], - [ - 1.75274658203125, - 7.01080322265625 - ], - [ - -0.8763427734375, - 14.89801025390625 - ], - [ - -1.752685546875, - 15.7744140625 - ], - [ - -2.62908935546875, - 13.14532470703125 - ], - [ - -4.38177490234375, - 6.13446044921875 - ], - [ - -4.38177490234375, - -9.63995361328125 - ], - [ - -3.50537109375, - -22.7852783203125 - ], - [ - -2.62908935546875, - -33.301544189453125 - ], - [ - -0.8763427734375, - -41.188751220703125 - ], - [ - 0, - -44.694183349609375 - ], - [ - 0.87640380859375, - -44.694183349609375 - ], - [ - 1.75274658203125, - -44.694183349609375 - ], - [ - 1.75274658203125, - -44.694183349609375 - ] - ], - "pressures": [ - 0.0908203125, - 0.287109375, - 0.5146484375, - 0.6904296875, - 0.787109375, - 0.8427734375, - 0.8720703125, - 0.8740234375, - 0.8916015625, - 0.900390625, - 0.8701171875, - 0.8720703125, - 0.8720703125, - 0.859375, - 0.849609375, - 0.82421875, - 0.8115234375, - 0.802734375, - 0.7685546875, - 0.6533203125, - 0.572265625, - 0.2685546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.75274658203125, - -44.694183349609375 - ] - }, - { - "id": "ghZY3cToN3laE-OEFilF-", - "type": "freedraw", - "x": -224.67989240373845, - "y": -184.03084346226262, - "width": 10.51629638671875, - "height": 64.85037231445312, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 984148813, - "version": 709, - "versionNonce": 1153776515, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558537, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.5054931640625, - -7.0108642578125 - ], - [ - -3.5054931640625, - -21.032562255859375 - ], - [ - -3.5054931640625, - -31.548828125 - ], - [ - -2.62908935546875, - -39.43603515625 - ], - [ - -0.87640380859375, - -44.694183349609375 - ], - [ - -0.87640380859375, - -45.570526123046875 - ], - [ - 0.8763427734375, - -45.570526123046875 - ], - [ - 2.6290283203125, - -43.81781005859375 - ], - [ - 5.25811767578125, - -36.806976318359375 - ], - [ - 7.01080322265625, - -14.8980712890625 - ], - [ - 7.01080322265625, - -6.134521484375 - ], - [ - 6.13446044921875, - 12.26898193359375 - ], - [ - 5.25811767578125, - 17.527099609375 - ], - [ - 4.38177490234375, - 19.27984619140625 - ], - [ - 3.50537109375, - 19.27984619140625 - ], - [ - 1.752685546875, - 14.89801025390625 - ], - [ - 0, - 8.7635498046875 - ], - [ - -1.75274658203125, - -0.8763427734375 - ], - [ - -2.62908935546875, - -11.39263916015625 - ], - [ - -2.62908935546875, - -28.04339599609375 - ], - [ - -2.62908935546875, - -35.93060302734375 - ], - [ - -1.75274658203125, - -39.43603515625 - ], - [ - -1.75274658203125, - -40.312408447265625 - ], - [ - -0.87640380859375, - -40.312408447265625 - ], - [ - 0, - -39.43603515625 - ], - [ - 0, - -39.43603515625 - ] - ], - "pressures": [ - 0.05078125, - 0.4609375, - 0.6806640625, - 0.7646484375, - 0.8056640625, - 0.83203125, - 0.83203125, - 0.83203125, - 0.8388671875, - 0.8388671875, - 0.7724609375, - 0.748046875, - 0.703125, - 0.6904296875, - 0.6943359375, - 0.6953125, - 0.697265625, - 0.6865234375, - 0.66015625, - 0.6064453125, - 0.541015625, - 0.4765625, - 0.4091796875, - 0.3779296875, - 0.244140625, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -39.43603515625 - ] - }, - { - "id": "AX8V85haI6GJVjK3x2wKb", - "type": "freedraw", - "x": -226.4326389857697, - "y": -184.03084346226262, - "width": 9.63995361328125, - "height": 70.1085205078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1431476803, - "version": 709, - "versionNonce": 1105228333, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - -9.63995361328125 - ], - [ - -1.75274658203125, - -17.52716064453125 - ], - [ - -1.75274658203125, - -26.29071044921875 - ], - [ - -0.8763427734375, - -34.177886962890625 - ], - [ - 2.62908935546875, - -43.81781005859375 - ], - [ - 4.38177490234375, - -46.4468994140625 - ], - [ - 5.25811767578125, - -46.4468994140625 - ], - [ - 7.0108642578125, - -42.065093994140625 - ], - [ - 7.88720703125, - -25.414337158203125 - ], - [ - 7.0108642578125, - -7.88720703125 - ], - [ - 5.25811767578125, - 7.88720703125 - ], - [ - 2.62908935546875, - 17.527099609375 - ], - [ - 0.8763427734375, - 23.66162109375 - ], - [ - 0.8763427734375, - 18.4034423828125 - ], - [ - 0, - 9.639892578125 - ], - [ - 0, - -2.62908935546875 - ], - [ - 0, - -22.7852783203125 - ], - [ - 0, - -32.425201416015625 - ], - [ - 0.8763427734375, - -37.683319091796875 - ], - [ - 0.8763427734375, - -38.5596923828125 - ], - [ - 1.75274658203125, - -38.5596923828125 - ], - [ - 1.75274658203125, - -38.5596923828125 - ] - ], - "pressures": [ - 0.076171875, - 0.369140625, - 0.529296875, - 0.724609375, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 0.9619140625, - 0.8662109375, - 0.82421875, - 0.82421875, - 0.828125, - 0.8173828125, - 0.8056640625, - 0.7783203125, - 0.744140625, - 0.626953125, - 0.453125, - 0.271484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.75274658203125, - -38.5596923828125 - ] - }, - { - "id": "iRYhXWsadwO_Md-Ub1wLV", - "type": "freedraw", - "x": -191.37837873186345, - "y": -189.28902217320012, - "width": 24.53802490234375, - "height": 45.570526123046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1939779011, - "version": 703, - "versionNonce": 540594979, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -5.25811767578125 - ], - [ - -2.62908935546875, - -8.7635498046875 - ], - [ - -2.62908935546875, - -18.4034423828125 - ], - [ - -0.87640380859375, - -23.661590576171875 - ], - [ - 1.752685546875, - -27.167022705078125 - ], - [ - 4.38177490234375, - -27.167022705078125 - ], - [ - 7.88720703125, - -27.167022705078125 - ], - [ - 14.02166748046875, - -19.279815673828125 - ], - [ - 17.527099609375, - -11.392578125 - ], - [ - 19.27978515625, - -1.752685546875 - ], - [ - 20.15618896484375, - 7.0108642578125 - ], - [ - 19.27978515625, - 14.8980712890625 - ], - [ - 17.527099609375, - 16.65081787109375 - ], - [ - 14.89801025390625, - 18.40350341796875 - ], - [ - 11.392578125, - 18.40350341796875 - ], - [ - 7.88720703125, - 18.40350341796875 - ], - [ - 1.752685546875, - 16.65081787109375 - ], - [ - -0.87640380859375, - 14.021728515625 - ], - [ - -3.50543212890625, - 11.39263916015625 - ], - [ - -4.3818359375, - 7.88720703125 - ], - [ - -4.3818359375, - 4.3818359375 - ], - [ - -4.3818359375, - 3.50543212890625 - ], - [ - -3.50543212890625, - 3.50543212890625 - ], - [ - -2.62908935546875, - 3.50543212890625 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0869140625, - 0.41796875, - 0.4931640625, - 0.5966796875, - 0.6640625, - 0.7109375, - 0.73046875, - 0.74609375, - 0.791015625, - 0.849609375, - 0.861328125, - 0.8701171875, - 0.884765625, - 0.8984375, - 0.90234375, - 0.90234375, - 0.8935546875, - 0.830078125, - 0.7421875, - 0.6357421875, - 0.5205078125, - 0.2626953125, - 0.20703125, - 0.099609375, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.62908935546875, - 3.50543212890625 - ] - }, - { - "id": "reM-ZGTnkjE7zIoqc9bbM", - "type": "freedraw", - "x": -172.97493634905095, - "y": -170.88551875523137, - "width": 20.15618896484375, - "height": 37.683319091796875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1796003555, - "version": 710, - "versionNonce": 986424461, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.8763427734375 - ], - [ - -0.8763427734375, - 0 - ], - [ - -2.62908935546875, - -2.62908935546875 - ], - [ - -4.38177490234375, - -7.0108642578125 - ], - [ - -6.13446044921875, - -11.39263916015625 - ], - [ - -7.0108642578125, - -16.6507568359375 - ], - [ - -7.88720703125, - -20.15618896484375 - ], - [ - -7.88720703125, - -24.5379638671875 - ], - [ - -7.88720703125, - -28.91973876953125 - ], - [ - -7.0108642578125, - -32.4251708984375 - ], - [ - -6.13446044921875, - -34.177886962890625 - ], - [ - -3.50543212890625, - -34.177886962890625 - ], - [ - -0.8763427734375, - -34.177886962890625 - ], - [ - 3.50543212890625, - -31.548828125 - ], - [ - 8.7635498046875, - -23.66162109375 - ], - [ - 11.39263916015625, - -17.527099609375 - ], - [ - 12.26898193359375, - -10.51629638671875 - ], - [ - 11.39263916015625, - -4.38177490234375 - ], - [ - 9.63995361328125, - 0.8763427734375 - ], - [ - 7.0108642578125, - 2.62908935546875 - ], - [ - 1.75274658203125, - 3.50543212890625 - ], - [ - -0.8763427734375, - 3.50543212890625 - ], - [ - -4.38177490234375, - 1.752685546875 - ], - [ - -7.0108642578125, - -1.752685546875 - ], - [ - -7.88720703125, - -4.38177490234375 - ], - [ - -7.88720703125, - -6.134521484375 - ], - [ - -7.88720703125, - -7.88720703125 - ], - [ - -6.13446044921875, - -8.7635498046875 - ], - [ - -4.38177490234375, - -9.639892578125 - ], - [ - -3.50543212890625, - -11.39263916015625 - ], - [ - -2.62908935546875, - -11.39263916015625 - ], - [ - -1.752685546875, - -11.39263916015625 - ], - [ - -1.752685546875, - -11.39263916015625 - ] - ], - "pressures": [ - 0.0283203125, - 0.3115234375, - 0.49609375, - 0.6337890625, - 0.6953125, - 0.794921875, - 0.947265625, - 1, - 1, - 1, - 0.990234375, - 0.9775390625, - 0.96875, - 0.96875, - 0.9580078125, - 0.9169921875, - 0.900390625, - 0.8935546875, - 0.8896484375, - 0.8828125, - 0.884765625, - 0.880859375, - 0.880859375, - 0.8642578125, - 0.828125, - 0.8056640625, - 0.791015625, - 0.734375, - 0.57421875, - 0.384765625, - 0.2822265625, - 0.203125, - 0.126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.752685546875, - -11.39263916015625 - ] - }, - { - "id": "x2pVBvahDwmzoV7OTb5jr", - "type": "freedraw", - "x": -172.97493634905095, - "y": -170.00917598179387, - "width": 13.1453857421875, - "height": 28.04339599609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 165473485, - "version": 707, - "versionNonce": 1687713475, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -1.752685546875 - ], - [ - -0.8763427734375, - -7.0108642578125 - ], - [ - -0.8763427734375, - -16.6507568359375 - ], - [ - 0, - -21.90887451171875 - ], - [ - 0.8763427734375, - -25.414306640625 - ], - [ - 1.75274658203125, - -27.16705322265625 - ], - [ - 1.75274658203125, - -28.04339599609375 - ], - [ - 3.50543212890625, - -28.04339599609375 - ], - [ - 6.134521484375, - -27.16705322265625 - ], - [ - 7.88720703125, - -25.414306640625 - ], - [ - 8.7635498046875, - -23.66162109375 - ], - [ - 9.63995361328125, - -17.527099609375 - ], - [ - 9.63995361328125, - -13.14532470703125 - ], - [ - 8.7635498046875, - -9.639892578125 - ], - [ - 6.134521484375, - -5.25811767578125 - ], - [ - 4.38177490234375, - -3.50543212890625 - ], - [ - 1.75274658203125, - -0.8763427734375 - ], - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -3.50543212890625, - -0.8763427734375 - ], - [ - -3.50543212890625, - -3.50543212890625 - ], - [ - -3.50543212890625, - -7.0108642578125 - ], - [ - -2.62908935546875, - -8.7635498046875 - ], - [ - -2.62908935546875, - -10.5162353515625 - ], - [ - -1.752685546875, - -11.39263916015625 - ], - [ - -1.752685546875, - -12.26898193359375 - ], - [ - -0.8763427734375, - -12.26898193359375 - ], - [ - -0.8763427734375, - -12.26898193359375 - ] - ], - "pressures": [ - 0.037109375, - 0.5126953125, - 0.6865234375, - 0.8916015625, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.796875, - 0.576171875, - 0.3544921875, - 0.2177734375, - 0.13671875, - 0.080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - -12.26898193359375 - ] - }, - { - "id": "lO2DzxlLRz4LhX0HJ_avu", - "type": "freedraw", - "x": -172.97493634905095, - "y": -173.51460811070012, - "width": 21.03253173828125, - "height": 32.42523193359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 317583981, - "version": 709, - "versionNonce": 677481197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -4.38177490234375 - ], - [ - -3.50543212890625, - -6.13446044921875 - ], - [ - -3.50543212890625, - -8.7635498046875 - ], - [ - -3.50543212890625, - -10.5162353515625 - ], - [ - -0.8763427734375, - -14.89801025390625 - ], - [ - 0.8763427734375, - -18.4034423828125 - ], - [ - 2.62908935546875, - -21.90887451171875 - ], - [ - 5.25811767578125, - -23.66162109375 - ], - [ - 7.0108642578125, - -23.66162109375 - ], - [ - 10.51629638671875, - -21.90887451171875 - ], - [ - 13.14532470703125, - -18.4034423828125 - ], - [ - 14.8980712890625, - -13.14532470703125 - ], - [ - 15.7744140625, - -7.88720703125 - ], - [ - 14.8980712890625, - -2.6290283203125 - ], - [ - 11.39263916015625, - 0.87640380859375 - ], - [ - 7.88720703125, - 3.50543212890625 - ], - [ - 3.50543212890625, - 6.134521484375 - ], - [ - 0, - 7.88720703125 - ], - [ - -1.752685546875, - 8.76361083984375 - ], - [ - -2.62908935546875, - 8.76361083984375 - ], - [ - -3.50543212890625, - 7.0108642578125 - ], - [ - -4.38177490234375, - 5.2581787109375 - ], - [ - -5.25811767578125, - 3.50543212890625 - ], - [ - -5.25811767578125, - 1.75274658203125 - ], - [ - -4.38177490234375, - 0 - ], - [ - -2.62908935546875, - -3.50543212890625 - ], - [ - -1.752685546875, - -7.01080322265625 - ], - [ - -0.8763427734375, - -10.5162353515625 - ], - [ - -0.8763427734375, - -11.392578125 - ], - [ - 0, - -11.392578125 - ], - [ - 0.8763427734375, - -11.392578125 - ], - [ - 0.8763427734375, - -11.392578125 - ] - ], - "pressures": [ - 0.01171875, - 0.2080078125, - 0.25, - 0.3232421875, - 0.3681640625, - 0.50390625, - 0.7109375, - 0.859375, - 0.9150390625, - 0.931640625, - 0.96484375, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.9189453125, - 0.794921875, - 0.72265625, - 0.6787109375, - 0.59765625, - 0.4560546875, - 0.3583984375, - 0.2705078125, - 0.2490234375, - 0.185546875, - 0.1435546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.8763427734375, - -11.392578125 - ] - }, - { - "id": "YtnYttGsQF8-AzrWwdPDQ", - "type": "freedraw", - "x": -173.85127912248845, - "y": -221.7141625540595, - "width": 23.66162109375, - "height": 49.075927734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1498817133, - "version": 713, - "versionNonce": 813868643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 0 - ], - [ - -2.62908935546875, - 3.50543212890625 - ], - [ - -3.50543212890625, - 8.7635498046875 - ], - [ - -6.134521484375, - 19.279815673828125 - ], - [ - -7.88720703125, - 25.414337158203125 - ], - [ - -8.7635498046875, - 30.672454833984375 - ], - [ - -8.7635498046875, - 35.054229736328125 - ], - [ - -8.7635498046875, - 37.683319091796875 - ], - [ - -7.88720703125, - 39.436004638671875 - ], - [ - -5.25811767578125, - 39.436004638671875 - ], - [ - -2.62908935546875, - 38.559661865234375 - ], - [ - 0, - 35.054229736328125 - ], - [ - 5.25811767578125, - 27.167022705078125 - ], - [ - 7.0108642578125, - 20.156158447265625 - ], - [ - 7.88720703125, - 14.021697998046875 - ], - [ - 7.88720703125, - 8.7635498046875 - ], - [ - 7.0108642578125, - 3.50543212890625 - ], - [ - 6.13446044921875, - 0.8763427734375 - ], - [ - 3.50543212890625, - -2.62908935546875 - ], - [ - 0, - -6.134490966796875 - ], - [ - -2.62908935546875, - -7.88720703125 - ], - [ - -7.0108642578125, - -9.639923095703125 - ], - [ - -8.7635498046875, - -9.639923095703125 - ], - [ - -11.39263916015625, - -8.763580322265625 - ], - [ - -13.14532470703125, - -6.134490966796875 - ], - [ - -14.8980712890625, - -1.752716064453125 - ], - [ - -15.7744140625, - 7.010833740234375 - ], - [ - -15.7744140625, - 14.021697998046875 - ], - [ - -15.7744140625, - 20.156158447265625 - ], - [ - -14.8980712890625, - 23.661590576171875 - ], - [ - -12.26898193359375, - 26.290679931640625 - ], - [ - -11.39263916015625, - 27.167022705078125 - ], - [ - -10.51629638671875, - 26.290679931640625 - ], - [ - -9.639892578125, - 23.661590576171875 - ], - [ - -9.639892578125, - 22.785247802734375 - ], - [ - -9.639892578125, - 22.785247802734375 - ] - ], - "pressures": [ - 0.0166015625, - 0.2080078125, - 0.22265625, - 0.2529296875, - 0.3349609375, - 0.384765625, - 0.42578125, - 0.453125, - 0.48046875, - 0.4990234375, - 0.5048828125, - 0.5078125, - 0.515625, - 0.541015625, - 0.6025390625, - 0.736328125, - 0.828125, - 0.8955078125, - 0.9111328125, - 0.9111328125, - 0.900390625, - 0.880859375, - 0.861328125, - 0.85546875, - 0.8408203125, - 0.8095703125, - 0.796875, - 0.7607421875, - 0.6845703125, - 0.583984375, - 0.4619140625, - 0.259765625, - 0.185546875, - 0.134765625, - 0.0654296875, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.639892578125, - 22.785247802734375 - ] - }, - { - "id": "MzFxdUpQ5FM8Nk7EuokPH", - "type": "freedraw", - "x": -179.1093967982697, - "y": -227.84865352085637, - "width": 17.527099609375, - "height": 49.952301025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2029280045, - "version": 706, - "versionNonce": 187409741, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 1.752716064453125 - ], - [ - -3.50543212890625, - 6.134490966796875 - ], - [ - -5.2581787109375, - 14.021697998046875 - ], - [ - -7.88720703125, - 23.661590576171875 - ], - [ - -9.63995361328125, - 32.4251708984375 - ], - [ - -9.63995361328125, - 40.3123779296875 - ], - [ - -8.76361083984375, - 42.94146728515625 - ], - [ - -6.134521484375, - 43.81781005859375 - ], - [ - -3.50543212890625, - 43.81781005859375 - ], - [ - 0.8763427734375, - 38.55963134765625 - ], - [ - 3.50537109375, - 32.4251708984375 - ], - [ - 5.25811767578125, - 24.5379638671875 - ], - [ - 5.25811767578125, - 17.527099609375 - ], - [ - 5.25811767578125, - 11.392608642578125 - ], - [ - 4.38177490234375, - 5.25811767578125 - ], - [ - 2.6290283203125, - 0.8763427734375 - ], - [ - 0, - -3.50543212890625 - ], - [ - -1.75274658203125, - -5.258148193359375 - ], - [ - -3.50543212890625, - -6.134490966796875 - ], - [ - -5.2581787109375, - -3.50543212890625 - ], - [ - -7.0108642578125, - 1.752716064453125 - ], - [ - -8.76361083984375, - 8.7635498046875 - ], - [ - -9.63995361328125, - 17.527099609375 - ], - [ - -11.39263916015625, - 32.4251708984375 - ], - [ - -12.26898193359375, - 38.55963134765625 - ], - [ - -12.26898193359375, - 40.3123779296875 - ], - [ - -11.39263916015625, - 39.43603515625 - ], - [ - -11.39263916015625, - 38.55963134765625 - ], - [ - -11.39263916015625, - 38.55963134765625 - ] - ], - "pressures": [ - 0.0126953125, - 0.3271484375, - 0.400390625, - 0.482421875, - 0.6025390625, - 0.6923828125, - 0.7744140625, - 0.78515625, - 0.78515625, - 0.78515625, - 0.78515625, - 0.7890625, - 0.802734375, - 0.82421875, - 0.828125, - 0.8134765625, - 0.794921875, - 0.7744140625, - 0.7685546875, - 0.7705078125, - 0.7705078125, - 0.75390625, - 0.673828125, - 0.58203125, - 0.4619140625, - 0.3330078125, - 0.2626953125, - 0.111328125, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.39263916015625, - 38.55963134765625 - ] - }, - { - "id": "yxBrtfCRujhBFKq-tAs5x", - "type": "freedraw", - "x": -222.92720685686345, - "y": -168.25642939976262, - "width": 16.6507568359375, - "height": 74.49026489257812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 200489453, - "version": 689, - "versionNonce": 1254482435, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -0.87640380859375 - ], - [ - -5.2581787109375, - -2.62908935546875 - ], - [ - -7.0108642578125, - -28.04339599609375 - ], - [ - -7.0108642578125, - -43.81781005859375 - ], - [ - -0.8763427734375, - -56.963165283203125 - ], - [ - 4.38177490234375, - -55.21044921875 - ], - [ - 5.25811767578125, - -46.4468994140625 - ], - [ - 5.25811767578125, - -34.17791748046875 - ], - [ - 0, - -10.51629638671875 - ], - [ - -3.50543212890625, - 4.38177490234375 - ], - [ - -6.13446044921875, - 14.89801025390625 - ], - [ - -7.0108642578125, - 17.527099609375 - ], - [ - -7.88720703125, - 15.7744140625 - ], - [ - -8.7635498046875, - 3.50543212890625 - ], - [ - -10.5162353515625, - -7.0108642578125 - ], - [ - -11.39263916015625, - -21.0325927734375 - ], - [ - -11.39263916015625, - -35.930633544921875 - ], - [ - -11.39263916015625, - -51.70501708984375 - ], - [ - -10.5162353515625, - -56.086822509765625 - ], - [ - -9.63995361328125, - -56.086822509765625 - ], - [ - -8.7635498046875, - -55.21044921875 - ], - [ - -8.7635498046875, - -53.457733154296875 - ], - [ - -8.7635498046875, - -53.457733154296875 - ] - ], - "pressures": [ - 0.07421875, - 0.14453125, - 0.1513671875, - 0.2265625, - 0.2412109375, - 0.2431640625, - 0.2421875, - 0.2392578125, - 0.2265625, - 0.2275390625, - 0.228515625, - 0.2294921875, - 0.2333984375, - 0.234375, - 0.23828125, - 0.24609375, - 0.24609375, - 0.24609375, - 0.2431640625, - 0.236328125, - 0.224609375, - 0.1279296875, - 0.0009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.7635498046875, - -53.457733154296875 - ] - }, - { - "id": "pOQa388-4jj23QtBZWiwa", - "type": "freedraw", - "x": -227.3089817592072, - "y": -173.51460811070012, - "width": 14.021728515625, - "height": 82.37750244140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1342743587, - "version": 694, - "versionNonce": 377713581, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -8.7635498046875 - ], - [ - -2.62908935546875, - -16.6507568359375 - ], - [ - -2.62908935546875, - -29.79608154296875 - ], - [ - 0, - -49.9522705078125 - ], - [ - 1.752685546875, - -58.7158203125 - ], - [ - 3.50543212890625, - -61.34490966796875 - ], - [ - 4.38177490234375, - -61.34490966796875 - ], - [ - 6.13446044921875, - -56.086761474609375 - ], - [ - 8.7635498046875, - -44.694122314453125 - ], - [ - 10.5162353515625, - -28.04339599609375 - ], - [ - 11.39263916015625, - -8.7635498046875 - ], - [ - 11.39263916015625, - 7.0108642578125 - ], - [ - 9.639892578125, - 19.27984619140625 - ], - [ - 7.88720703125, - 21.0325927734375 - ], - [ - 6.13446044921875, - 21.0325927734375 - ], - [ - 4.38177490234375, - 16.65081787109375 - ], - [ - 1.752685546875, - 7.0108642578125 - ], - [ - 0, - -0.8763427734375 - ], - [ - -1.752685546875, - -10.5162353515625 - ], - [ - -2.62908935546875, - -23.66162109375 - ], - [ - -2.62908935546875, - -35.930572509765625 - ], - [ - -2.62908935546875, - -46.44683837890625 - ], - [ - -1.752685546875, - -48.199554443359375 - ], - [ - -0.87640380859375, - -48.199554443359375 - ], - [ - -0.87640380859375, - -47.323211669921875 - ], - [ - 0.8763427734375, - -46.44683837890625 - ], - [ - 1.752685546875, - -46.44683837890625 - ], - [ - 1.752685546875, - -46.44683837890625 - ] - ], - "pressures": [ - 0.05859375, - 0.2236328125, - 0.2509765625, - 0.271484375, - 0.2841796875, - 0.283203125, - 0.2763671875, - 0.2685546875, - 0.267578125, - 0.265625, - 0.263671875, - 0.25, - 0.232421875, - 0.234375, - 0.2373046875, - 0.2392578125, - 0.23828125, - 0.236328125, - 0.2373046875, - 0.2412109375, - 0.2431640625, - 0.2431640625, - 0.23828125, - 0.228515625, - 0.177734375, - 0.150390625, - 0.08984375, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.752685546875, - -46.44683837890625 - ] - }, - { - "id": "FAZrqbCqozsjgRYHII-RM", - "type": "freedraw", - "x": -229.93807111467595, - "y": -182.27815791538762, - "width": 15.7744140625, - "height": 70.98483276367188, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1447753667, - "version": 692, - "versionNonce": 476096931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -8.7635498046875 - ], - [ - 0.87640380859375, - -24.5379638671875 - ], - [ - 2.62908935546875, - -34.177886962890625 - ], - [ - 5.2581787109375, - -42.065093994140625 - ], - [ - 7.88720703125, - -47.323211669921875 - ], - [ - 9.63995361328125, - -50.828643798828125 - ], - [ - 11.39263916015625, - -51.704986572265625 - ], - [ - 12.26898193359375, - -49.9522705078125 - ], - [ - 14.021728515625, - -42.941436767578125 - ], - [ - 15.7744140625, - -30.672454833984375 - ], - [ - 14.021728515625, - -7.0108642578125 - ], - [ - 11.39263916015625, - 7.88720703125 - ], - [ - 8.7635498046875, - 16.6507568359375 - ], - [ - 7.88720703125, - 19.27984619140625 - ], - [ - 7.0108642578125, - 19.27984619140625 - ], - [ - 7.0108642578125, - 17.52716064453125 - ], - [ - 5.2581787109375, - 9.63995361328125 - ], - [ - 4.38177490234375, - 1.75274658203125 - ], - [ - 4.38177490234375, - -8.7635498046875 - ], - [ - 3.50543212890625, - -28.04339599609375 - ], - [ - 4.38177490234375, - -37.68328857421875 - ], - [ - 5.2581787109375, - -43.817779541015625 - ], - [ - 6.134521484375, - -46.446868896484375 - ], - [ - 6.134521484375, - -47.323211669921875 - ], - [ - 6.134521484375, - -45.57049560546875 - ], - [ - 6.134521484375, - -45.57049560546875 - ] - ], - "pressures": [ - 0.0712890625, - 0.2177734375, - 0.291015625, - 0.326171875, - 0.326171875, - 0.32421875, - 0.3193359375, - 0.30859375, - 0.2958984375, - 0.2939453125, - 0.2744140625, - 0.2412109375, - 0.234375, - 0.2490234375, - 0.263671875, - 0.279296875, - 0.27734375, - 0.2685546875, - 0.2646484375, - 0.2626953125, - 0.2578125, - 0.2470703125, - 0.2216796875, - 0.181640625, - 0.1669921875, - 0.1044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.134521484375, - -45.57049560546875 - ] - }, - { - "id": "0Mw33e9H4uKae15VCCEl3", - "type": "freedraw", - "x": -226.4326389857697, - "y": -175.26729365757512, - "width": 14.8980712890625, - "height": 70.98486328125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1129301955, - "version": 695, - "versionNonce": 1452439053, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -5.25811767578125 - ], - [ - -3.50543212890625, - -12.26898193359375 - ], - [ - -4.38177490234375, - -16.6507568359375 - ], - [ - -4.38177490234375, - -23.66162109375 - ], - [ - -4.38177490234375, - -32.4251708984375 - ], - [ - -1.75274658203125, - -41.188751220703125 - ], - [ - 1.75274658203125, - -48.1995849609375 - ], - [ - 5.25811767578125, - -51.70501708984375 - ], - [ - 7.0108642578125, - -50.828643798828125 - ], - [ - 8.7635498046875, - -46.446868896484375 - ], - [ - 10.51629638671875, - -35.05426025390625 - ], - [ - 10.51629638671875, - -23.66162109375 - ], - [ - 10.51629638671875, - -11.39263916015625 - ], - [ - 7.88720703125, - 0 - ], - [ - 4.38177490234375, - 10.51629638671875 - ], - [ - 1.75274658203125, - 16.6507568359375 - ], - [ - -0.8763427734375, - 19.27984619140625 - ], - [ - -1.75274658203125, - 18.40350341796875 - ], - [ - -2.6290283203125, - 13.14532470703125 - ], - [ - -3.50543212890625, - 3.50543212890625 - ], - [ - -4.38177490234375, - -5.25811767578125 - ], - [ - -4.38177490234375, - -17.527099609375 - ], - [ - -3.50543212890625, - -30.672454833984375 - ], - [ - -2.6290283203125, - -40.3123779296875 - ], - [ - -1.75274658203125, - -44.69415283203125 - ], - [ - -0.8763427734375, - -45.570526123046875 - ], - [ - -0.8763427734375, - -44.69415283203125 - ], - [ - 0, - -43.81781005859375 - ], - [ - 0, - -43.81781005859375 - ] - ], - "pressures": [ - 0.0634765625, - 0.1728515625, - 0.236328125, - 0.2978515625, - 0.3388671875, - 0.353515625, - 0.353515625, - 0.353515625, - 0.3369140625, - 0.3056640625, - 0.3056640625, - 0.28515625, - 0.2763671875, - 0.26171875, - 0.255859375, - 0.2490234375, - 0.2470703125, - 0.2509765625, - 0.2509765625, - 0.2509765625, - 0.251953125, - 0.25390625, - 0.25390625, - 0.251953125, - 0.2470703125, - 0.232421875, - 0.177734375, - 0.0986328125, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -43.81781005859375 - ] - }, - { - "id": "EdB5MGgHXP8FSDRQCSXpV", - "type": "freedraw", - "x": -226.4326389857697, - "y": -181.40181514195012, - "width": 10.51629638671875, - "height": 76.24298095703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2019046477, - "version": 694, - "versionNonce": 1786871107, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -7.88720703125 - ], - [ - -1.75274658203125, - -14.89801025390625 - ], - [ - -1.75274658203125, - -23.661590576171875 - ], - [ - -1.75274658203125, - -34.1778564453125 - ], - [ - 1.75274658203125, - -47.323211669921875 - ], - [ - 3.50543212890625, - -54.33404541015625 - ], - [ - 5.25811767578125, - -57.8394775390625 - ], - [ - 6.134521484375, - -57.8394775390625 - ], - [ - 7.0108642578125, - -51.704986572265625 - ], - [ - 7.88720703125, - -42.941436767578125 - ], - [ - 8.7635498046875, - -30.67242431640625 - ], - [ - 8.7635498046875, - -14.89801025390625 - ], - [ - 8.7635498046875, - -0.8763427734375 - ], - [ - 7.0108642578125, - 14.021728515625 - ], - [ - 6.134521484375, - 18.40350341796875 - ], - [ - 5.25811767578125, - 18.40350341796875 - ], - [ - 4.38177490234375, - 16.65081787109375 - ], - [ - 2.62908935546875, - 8.76361083984375 - ], - [ - 0.8763427734375, - 1.75274658203125 - ], - [ - 0, - -7.01080322265625 - ], - [ - 0, - -15.7744140625 - ], - [ - 0, - -23.661590576171875 - ], - [ - 0, - -31.548797607421875 - ], - [ - 0.8763427734375, - -33.301513671875 - ], - [ - 0.8763427734375, - -34.1778564453125 - ], - [ - 1.75274658203125, - -34.1778564453125 - ], - [ - 2.62908935546875, - -34.1778564453125 - ], - [ - 2.62908935546875, - -34.1778564453125 - ] - ], - "pressures": [ - 0.068359375, - 0.2080078125, - 0.23828125, - 0.2734375, - 0.30078125, - 0.3125, - 0.314453125, - 0.3134765625, - 0.3046875, - 0.3017578125, - 0.2734375, - 0.267578125, - 0.2578125, - 0.251953125, - 0.2509765625, - 0.2529296875, - 0.259765625, - 0.259765625, - 0.2578125, - 0.2578125, - 0.2578125, - 0.2568359375, - 0.2548828125, - 0.2275390625, - 0.19140625, - 0.173828125, - 0.1455078125, - 0.009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.62908935546875, - -34.1778564453125 - ] - }, - { - "id": "xFlPUxobX_QAaz0Boklk1", - "type": "freedraw", - "x": -227.3089817592072, - "y": -179.64906855991887, - "width": 11.39263916015625, - "height": 63.973968505859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1533694637, - "version": 693, - "versionNonce": 374484077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.50543212890625 - ], - [ - -0.87640380859375, - -12.26898193359375 - ], - [ - -0.87640380859375, - -21.908935546875 - ], - [ - -0.87640380859375, - -32.4251708984375 - ], - [ - 0.8763427734375, - -42.065093994140625 - ], - [ - 4.38177490234375, - -51.70501708984375 - ], - [ - 5.25811767578125, - -53.457733154296875 - ], - [ - 6.13446044921875, - -52.58135986328125 - ], - [ - 7.88720703125, - -49.075958251953125 - ], - [ - 9.639892578125, - -42.065093994140625 - ], - [ - 10.5162353515625, - -24.537994384765625 - ], - [ - 10.5162353515625, - -10.51629638671875 - ], - [ - 8.7635498046875, - 0 - ], - [ - 7.0108642578125, - 6.13446044921875 - ], - [ - 6.13446044921875, - 9.639892578125 - ], - [ - 6.13446044921875, - 10.5162353515625 - ], - [ - 5.25811767578125, - 10.5162353515625 - ], - [ - 4.38177490234375, - 8.7635498046875 - ], - [ - 3.50543212890625, - 1.752685546875 - ], - [ - 1.752685546875, - -6.134521484375 - ], - [ - 0.8763427734375, - -14.021728515625 - ], - [ - 0.8763427734375, - -21.03253173828125 - ], - [ - 0.8763427734375, - -26.290679931640625 - ], - [ - 0.8763427734375, - -31.548828125 - ], - [ - 1.752685546875, - -33.301544189453125 - ], - [ - 2.62908935546875, - -34.177886962890625 - ], - [ - 2.62908935546875, - -34.177886962890625 - ] - ], - "pressures": [ - 0.0712890625, - 0.181640625, - 0.224609375, - 0.259765625, - 0.30078125, - 0.3330078125, - 0.35546875, - 0.35546875, - 0.345703125, - 0.3447265625, - 0.3447265625, - 0.2763671875, - 0.2490234375, - 0.2451171875, - 0.24609375, - 0.248046875, - 0.2548828125, - 0.2578125, - 0.2578125, - 0.259765625, - 0.2646484375, - 0.2646484375, - 0.2626953125, - 0.2607421875, - 0.2333984375, - 0.1513671875, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.62908935546875, - -34.177886962890625 - ] - }, - { - "id": "05A9LppCJ8oBHAPKdaifH", - "type": "freedraw", - "x": -225.5562962123322, - "y": -177.02004023960637, - "width": 10.51629638671875, - "height": 63.097625732421875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1100090019, - "version": 695, - "versionNonce": 1351015651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - -11.392578125 - ], - [ - 1.75274658203125, - -20.15618896484375 - ], - [ - 2.62908935546875, - -29.79608154296875 - ], - [ - 2.62908935546875, - -36.806915283203125 - ], - [ - 2.62908935546875, - -41.188690185546875 - ], - [ - 3.50543212890625, - -42.0650634765625 - ], - [ - 4.38177490234375, - -42.94140625 - ], - [ - 5.2581787109375, - -43.817779541015625 - ], - [ - 6.134521484375, - -43.817779541015625 - ], - [ - 7.88720703125, - -40.312347412109375 - ], - [ - 8.7635498046875, - -35.05419921875 - ], - [ - 9.63995361328125, - -27.167022705078125 - ], - [ - 9.63995361328125, - -16.6507568359375 - ], - [ - 8.7635498046875, - 1.75274658203125 - ], - [ - 6.134521484375, - 11.39263916015625 - ], - [ - 5.2581787109375, - 17.52716064453125 - ], - [ - 4.38177490234375, - 19.27984619140625 - ], - [ - 3.50543212890625, - 18.40350341796875 - ], - [ - 1.75274658203125, - 13.1453857421875 - ], - [ - 0, - 7.0108642578125 - ], - [ - 0, - -0.8763427734375 - ], - [ - -0.8763427734375, - -11.392578125 - ], - [ - -0.8763427734375, - -16.6507568359375 - ], - [ - -0.8763427734375, - -21.03253173828125 - ], - [ - -0.8763427734375, - -24.5379638671875 - ], - [ - -0.8763427734375, - -26.2906494140625 - ], - [ - -0.8763427734375, - -27.167022705078125 - ], - [ - 0, - -27.167022705078125 - ], - [ - 0, - -27.167022705078125 - ] - ], - "pressures": [ - 0.068359375, - 0.2080078125, - 0.23046875, - 0.2568359375, - 0.2744140625, - 0.291015625, - 0.2978515625, - 0.2958984375, - 0.2958984375, - 0.287109375, - 0.27734375, - 0.2666015625, - 0.2578125, - 0.23828125, - 0.2275390625, - 0.23046875, - 0.2353515625, - 0.23828125, - 0.2470703125, - 0.2470703125, - 0.251953125, - 0.251953125, - 0.251953125, - 0.2509765625, - 0.2509765625, - 0.2431640625, - 0.2314453125, - 0.16796875, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -27.167022705078125 - ] - }, - { - "id": "9kfW-VhiohZ6Yg0-BO4zo", - "type": "freedraw", - "x": -226.4326389857697, - "y": -182.27815791538762, - "width": 11.39263916015625, - "height": 63.974029541015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1560128365, - "version": 697, - "versionNonce": 93066957, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -3.50543212890625 - ], - [ - -0.8763427734375, - -8.7635498046875 - ], - [ - -0.8763427734375, - -14.8980712890625 - ], - [ - -0.8763427734375, - -22.785247802734375 - ], - [ - -0.8763427734375, - -31.548797607421875 - ], - [ - 0.8763427734375, - -37.68328857421875 - ], - [ - 1.75274658203125, - -38.559661865234375 - ], - [ - 2.62908935546875, - -38.559661865234375 - ], - [ - 3.50543212890625, - -38.559661865234375 - ], - [ - 7.88720703125, - -36.80694580078125 - ], - [ - 9.639892578125, - -33.301513671875 - ], - [ - 10.51629638671875, - -25.414306640625 - ], - [ - 10.51629638671875, - -14.8980712890625 - ], - [ - 9.639892578125, - -1.752685546875 - ], - [ - 7.0108642578125, - 17.52716064453125 - ], - [ - 6.134521484375, - 24.5379638671875 - ], - [ - 5.25811767578125, - 25.41436767578125 - ], - [ - 4.38177490234375, - 24.5379638671875 - ], - [ - 3.50543212890625, - 20.15618896484375 - ], - [ - 1.75274658203125, - 12.26898193359375 - ], - [ - 0.8763427734375, - 7.88720703125 - ], - [ - 0, - 2.62908935546875 - ], - [ - 0, - -4.38177490234375 - ], - [ - 0, - -15.7744140625 - ], - [ - 0, - -22.785247802734375 - ], - [ - 0, - -27.167022705078125 - ], - [ - 0, - -28.91973876953125 - ], - [ - 0, - -29.79608154296875 - ], - [ - 0.8763427734375, - -29.79608154296875 - ], - [ - 0.8763427734375, - -28.91973876953125 - ], - [ - 0.8763427734375, - -28.91973876953125 - ] - ], - "pressures": [ - 0.0263671875, - 0.177734375, - 0.2109375, - 0.2373046875, - 0.2607421875, - 0.2666015625, - 0.263671875, - 0.2626953125, - 0.25390625, - 0.244140625, - 0.2412109375, - 0.232421875, - 0.224609375, - 0.208984375, - 0.1962890625, - 0.193359375, - 0.1943359375, - 0.1962890625, - 0.203125, - 0.203125, - 0.2060546875, - 0.212890625, - 0.21875, - 0.220703125, - 0.2216796875, - 0.220703125, - 0.2197265625, - 0.2158203125, - 0.2099609375, - 0.080078125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.8763427734375, - -28.91973876953125 - ] - }, - { - "id": "E6exKaytKlSCnRV0yASKc", - "type": "freedraw", - "x": -225.5562962123322, - "y": -185.78359004429387, - "width": 12.26904296875, - "height": 62.22125244140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 264225059, - "version": 697, - "versionNonce": 2046773379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -6.13446044921875 - ], - [ - 0, - -12.26898193359375 - ], - [ - 0, - -20.156158447265625 - ], - [ - 0, - -28.043365478515625 - ], - [ - 2.62908935546875, - -38.559661865234375 - ], - [ - 4.38177490234375, - -43.817779541015625 - ], - [ - 5.2581787109375, - -45.57049560546875 - ], - [ - 6.134521484375, - -45.57049560546875 - ], - [ - 7.0108642578125, - -44.69415283203125 - ], - [ - 8.7635498046875, - -40.312347412109375 - ], - [ - 9.63995361328125, - -32.425140380859375 - ], - [ - 9.63995361328125, - -21.03253173828125 - ], - [ - 8.7635498046875, - -7.01080322265625 - ], - [ - 4.38177490234375, - 10.51629638671875 - ], - [ - 2.62908935546875, - 14.8980712890625 - ], - [ - 2.62908935546875, - 16.6507568359375 - ], - [ - 1.75274658203125, - 16.6507568359375 - ], - [ - 0, - 14.021728515625 - ], - [ - -0.8763427734375, - 8.7635498046875 - ], - [ - -1.752685546875, - 0.87640380859375 - ], - [ - -2.62908935546875, - -7.88720703125 - ], - [ - -2.62908935546875, - -16.6507568359375 - ], - [ - -2.62908935546875, - -23.661590576171875 - ], - [ - -2.62908935546875, - -25.414306640625 - ], - [ - -2.62908935546875, - -26.2906494140625 - ], - [ - -2.62908935546875, - -27.167022705078125 - ], - [ - -2.62908935546875, - -28.91973876953125 - ], - [ - -1.752685546875, - -28.91973876953125 - ], - [ - -1.752685546875, - -28.043365478515625 - ], - [ - -0.8763427734375, - -27.167022705078125 - ], - [ - -0.8763427734375, - -27.167022705078125 - ] - ], - "pressures": [ - 0.048828125, - 0.171875, - 0.224609375, - 0.2939453125, - 0.3515625, - 0.4091796875, - 0.421875, - 0.421875, - 0.4169921875, - 0.408203125, - 0.4091796875, - 0.388671875, - 0.3515625, - 0.3115234375, - 0.2861328125, - 0.283203125, - 0.28515625, - 0.2890625, - 0.287109375, - 0.2919921875, - 0.2958984375, - 0.2939453125, - 0.287109375, - 0.2744140625, - 0.2578125, - 0.24609375, - 0.2099609375, - 0.1591796875, - 0.1103515625, - 0.0771484375, - 0.029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - -27.167022705078125 - ] - }, - { - "id": "DDm6dzlYsoRLbbU-agJx9", - "type": "freedraw", - "x": -222.92720685686345, - "y": -210.32155391148137, - "width": 4.38177490234375, - "height": 30.672454833984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1563253901, - "version": 689, - "versionNonce": 517584173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - -2.62908935546875, - 2.62908935546875 - ], - [ - -3.50543212890625, - 8.7635498046875 - ], - [ - -3.50543212890625, - 12.26898193359375 - ], - [ - -3.50543212890625, - 14.8980712890625 - ], - [ - -2.62908935546875, - 14.021728515625 - ], - [ - -1.752685546875, - 12.26898193359375 - ], - [ - -0.8763427734375, - 9.63995361328125 - ], - [ - 0, - 3.50543212890625 - ], - [ - 0, - 0 - ], - [ - 0.8763427734375, - -4.38177490234375 - ], - [ - 0.8763427734375, - -7.887176513671875 - ], - [ - 0.8763427734375, - -12.26898193359375 - ], - [ - 0.8763427734375, - -14.021697998046875 - ], - [ - 0.8763427734375, - -15.774383544921875 - ], - [ - 0, - -15.774383544921875 - ], - [ - 0, - -14.021697998046875 - ], - [ - -0.8763427734375, - -11.392608642578125 - ], - [ - -0.8763427734375, - -4.38177490234375 - ], - [ - -0.8763427734375, - 0.876373291015625 - ], - [ - -0.8763427734375, - 5.258148193359375 - ], - [ - -0.8763427734375, - 8.7635498046875 - ], - [ - -0.8763427734375, - 11.39263916015625 - ], - [ - -0.8763427734375, - 9.63995361328125 - ], - [ - -0.8763427734375, - 8.7635498046875 - ], - [ - -0.8763427734375, - 8.7635498046875 - ] - ], - "pressures": [ - 0.0263671875, - 0.166015625, - 0.181640625, - 0.1943359375, - 0.2060546875, - 0.2197265625, - 0.2265625, - 0.228515625, - 0.2333984375, - 0.25390625, - 0.267578125, - 0.27734375, - 0.29296875, - 0.31640625, - 0.3251953125, - 0.3251953125, - 0.3369140625, - 0.330078125, - 0.322265625, - 0.3056640625, - 0.2919921875, - 0.2783203125, - 0.2509765625, - 0.2060546875, - 0.0888671875, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - 8.7635498046875 - ] - }, - { - "id": "0SOPYj0oub7uXl4VlJ9SW", - "type": "freedraw", - "x": -217.6690891810822, - "y": -220.837819780622, - "width": 5.25811767578125, - "height": 24.537994384765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1639978307, - "version": 685, - "versionNonce": 480854051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -1.752685546875, - 0.876373291015625 - ], - [ - -1.752685546875, - 3.50543212890625 - ], - [ - -2.6290283203125, - 8.763580322265625 - ], - [ - -3.50543212890625, - 15.7744140625 - ], - [ - -4.38177490234375, - 21.032562255859375 - ], - [ - -4.38177490234375, - 23.661590576171875 - ], - [ - -4.38177490234375, - 24.537994384765625 - ], - [ - -5.25811767578125, - 24.537994384765625 - ], - [ - -4.38177490234375, - 23.661590576171875 - ], - [ - -3.50543212890625, - 21.032562255859375 - ], - [ - -2.6290283203125, - 16.6507568359375 - ], - [ - -1.752685546875, - 10.516265869140625 - ], - [ - -0.8763427734375, - 8.763580322265625 - ], - [ - -0.8763427734375, - 7.88720703125 - ], - [ - -0.8763427734375, - 7.0108642578125 - ], - [ - -0.8763427734375, - 6.134490966796875 - ], - [ - -0.8763427734375, - 5.258148193359375 - ], - [ - -1.752685546875, - 5.258148193359375 - ], - [ - -1.752685546875, - 6.134490966796875 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0107421875, - 0.22265625, - 0.2509765625, - 0.251953125, - 0.2529296875, - 0.26171875, - 0.263671875, - 0.265625, - 0.265625, - 0.265625, - 0.26171875, - 0.2626953125, - 0.263671875, - 0.263671875, - 0.263671875, - 0.265625, - 0.2626953125, - 0.259765625, - 0.2548828125, - 0.09765625, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.752685546875, - 6.134490966796875 - ] - }, - { - "id": "o_pBqhf5or83-H20X8Bia", - "type": "freedraw", - "x": -218.5454319545197, - "y": -221.7141625540595, - "width": 5.25811767578125, - "height": 29.796112060546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 835898669, - "version": 682, - "versionNonce": 1302628237, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - -2.62908935546875, - 2.629058837890625 - ], - [ - -3.50543212890625, - 8.7635498046875 - ], - [ - -4.38177490234375, - 15.7744140625 - ], - [ - -5.25811767578125, - 21.908905029296875 - ], - [ - -5.25811767578125, - 27.167022705078125 - ], - [ - -5.25811767578125, - 28.919769287109375 - ], - [ - -5.25811767578125, - 29.796112060546875 - ], - [ - -4.38177490234375, - 29.796112060546875 - ], - [ - -3.50543212890625, - 29.796112060546875 - ], - [ - -2.62908935546875, - 29.796112060546875 - ], - [ - -1.752685546875, - 28.043365478515625 - ], - [ - -1.752685546875, - 27.167022705078125 - ], - [ - -0.8763427734375, - 26.290679931640625 - ], - [ - -0.8763427734375, - 24.537933349609375 - ], - [ - -0.8763427734375, - 22.785247802734375 - ], - [ - -0.8763427734375, - 21.908905029296875 - ], - [ - -0.8763427734375, - 21.032562255859375 - ], - [ - -0.8763427734375, - 21.032562255859375 - ] - ], - "pressures": [ - 0.00390625, - 0.2119140625, - 0.2275390625, - 0.2412109375, - 0.2578125, - 0.2705078125, - 0.28125, - 0.28125, - 0.2724609375, - 0.2685546875, - 0.2666015625, - 0.2490234375, - 0.2451171875, - 0.244140625, - 0.2431640625, - 0.2275390625, - 0.19140625, - 0.177734375, - 0.13671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - 21.032562255859375 - ] - }, - { - "id": "XDPuKzHnq4w5E6Ep1IhYO", - "type": "freedraw", - "x": -192.2547825404572, - "y": -165.62740107945012, - "width": 46.44683837890625, - "height": 11.39263916015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1486514275, - "version": 676, - "versionNonce": 846414787, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -1.752685546875 - ], - [ - -2.6290283203125, - -3.50543212890625 - ], - [ - -2.6290283203125, - -5.25811767578125 - ], - [ - 0.87640380859375, - -7.88720703125 - ], - [ - 9.63995361328125, - -10.5162353515625 - ], - [ - 16.6507568359375, - -11.39263916015625 - ], - [ - 25.41436767578125, - -10.5162353515625 - ], - [ - 32.4251708984375, - -8.7635498046875 - ], - [ - 39.43603515625, - -6.13446044921875 - ], - [ - 42.06512451171875, - -4.38177490234375 - ], - [ - 43.81781005859375, - -4.38177490234375 - ], - [ - 43.81781005859375, - -3.50543212890625 - ], - [ - 42.94146728515625, - -5.25811767578125 - ], - [ - 42.06512451171875, - -5.25811767578125 - ], - [ - 42.06512451171875, - -5.25811767578125 - ] - ], - "pressures": [ - 0.02734375, - 0.2041015625, - 0.2578125, - 0.326171875, - 0.38671875, - 0.4169921875, - 0.4853515625, - 0.576171875, - 0.630859375, - 0.64453125, - 0.638671875, - 0.6318359375, - 0.625, - 0.1171875, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.06512451171875, - -5.25811767578125 - ] - }, - { - "id": "8oIrmKpHc4-Sczsyjb6R2", - "type": "freedraw", - "x": -193.1311253138947, - "y": -169.13283320835637, - "width": 60.46856689453125, - "height": 16.6507568359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1172517709, - "version": 676, - "versionNonce": 1411780077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - 0 - ], - [ - -3.50543212890625, - -0.8763427734375 - ], - [ - 0, - -6.13446044921875 - ], - [ - 4.38177490234375, - -9.639892578125 - ], - [ - 11.39263916015625, - -13.14532470703125 - ], - [ - 18.40350341796875, - -14.89801025390625 - ], - [ - 25.414306640625, - -15.77435302734375 - ], - [ - 34.17791748046875, - -14.89801025390625 - ], - [ - 41.188720703125, - -11.392578125 - ], - [ - 47.3232421875, - -7.88720703125 - ], - [ - 51.70501708984375, - -3.50537109375 - ], - [ - 55.21044921875, - -0.8763427734375 - ], - [ - 56.963134765625, - 0 - ], - [ - 56.963134765625, - 0.87640380859375 - ], - [ - 56.963134765625, - 0.87640380859375 - ] - ], - "pressures": [ - 0.0205078125, - 0.330078125, - 0.357421875, - 0.5400390625, - 0.625, - 0.6474609375, - 0.67578125, - 0.7705078125, - 0.802734375, - 0.7890625, - 0.70703125, - 0.5146484375, - 0.3505859375, - 0.19140625, - 0.150390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 56.963134765625, - 0.87640380859375 - ] - }, - { - "id": "XPIeD4naPRZvM-YO5jQIl", - "type": "freedraw", - "x": -160.7059544154572, - "y": -175.26729365757512, - "width": 23.66162109375, - "height": 93.77008056640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1978646787, - "version": 784, - "versionNonce": 1937494883, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.75274658203125 - ], - [ - -0.8763427734375, - -6.134521484375 - ], - [ - -0.8763427734375, - -7.88720703125 - ], - [ - -0.8763427734375, - -8.7635498046875 - ], - [ - -0.8763427734375, - -9.639892578125 - ], - [ - -0.8763427734375, - -11.39263916015625 - ], - [ - -0.8763427734375, - -13.14532470703125 - ], - [ - -0.8763427734375, - -14.8980712890625 - ], - [ - -0.8763427734375, - -15.7744140625 - ], - [ - 0, - -15.7744140625 - ], - [ - 0.8763427734375, - -15.7744140625 - ], - [ - 1.75274658203125, - -15.7744140625 - ], - [ - 3.50543212890625, - -15.7744140625 - ], - [ - 5.2581787109375, - -14.8980712890625 - ], - [ - 7.0108642578125, - -14.021728515625 - ], - [ - 7.88720703125, - -13.14532470703125 - ], - [ - 7.88720703125, - -11.39263916015625 - ], - [ - 8.7635498046875, - -9.639892578125 - ], - [ - 9.63995361328125, - -7.88720703125 - ], - [ - 9.63995361328125, - -7.0108642578125 - ], - [ - 9.63995361328125, - -6.134521484375 - ], - [ - 9.63995361328125, - -5.25811767578125 - ], - [ - 9.63995361328125, - -4.38177490234375 - ], - [ - 9.63995361328125, - -3.50543212890625 - ], - [ - 8.7635498046875, - -3.50543212890625 - ], - [ - 7.88720703125, - -3.50543212890625 - ], - [ - 7.88720703125, - -2.62908935546875 - ], - [ - 9.63995361328125, - -2.62908935546875 - ], - [ - 10.51629638671875, - -2.62908935546875 - ], - [ - 11.39263916015625, - -2.62908935546875 - ], - [ - 13.14532470703125, - -2.62908935546875 - ], - [ - 14.021728515625, - -2.62908935546875 - ], - [ - 14.8980712890625, - -2.62908935546875 - ], - [ - 16.6507568359375, - -3.50543212890625 - ], - [ - 17.52716064453125, - -3.50543212890625 - ], - [ - 18.40350341796875, - -3.50543212890625 - ], - [ - 19.27984619140625, - -1.75274658203125 - ], - [ - 19.27984619140625, - 0 - ], - [ - 19.27984619140625, - 1.752685546875 - ], - [ - 19.27984619140625, - 3.50543212890625 - ], - [ - 17.52716064453125, - 4.38177490234375 - ], - [ - 16.6507568359375, - 5.25811767578125 - ], - [ - 15.7744140625, - 6.13446044921875 - ], - [ - 14.8980712890625, - 7.0108642578125 - ], - [ - 14.021728515625, - 7.0108642578125 - ], - [ - 12.26898193359375, - 8.7635498046875 - ], - [ - 10.51629638671875, - 10.51629638671875 - ], - [ - 9.63995361328125, - 11.39263916015625 - ], - [ - 8.7635498046875, - 13.14532470703125 - ], - [ - 7.88720703125, - 14.8980712890625 - ], - [ - 7.88720703125, - 17.527099609375 - ], - [ - 7.88720703125, - 20.15618896484375 - ], - [ - 7.0108642578125, - 21.90887451171875 - ], - [ - 7.0108642578125, - 22.7852783203125 - ], - [ - 7.0108642578125, - 25.414306640625 - ], - [ - 7.0108642578125, - 29.79608154296875 - ], - [ - 7.0108642578125, - 33.301513671875 - ], - [ - 7.0108642578125, - 34.1778564453125 - ], - [ - 7.0108642578125, - 35.05426025390625 - ], - [ - 7.88720703125, - 38.5596923828125 - ], - [ - 8.7635498046875, - 42.0650634765625 - ], - [ - 9.63995361328125, - 45.570556640625 - ], - [ - 9.63995361328125, - 49.075927734375 - ], - [ - 10.51629638671875, - 50.82867431640625 - ], - [ - 10.51629638671875, - 52.58135986328125 - ], - [ - 10.51629638671875, - 54.3341064453125 - ], - [ - 10.51629638671875, - 56.0867919921875 - ], - [ - 10.51629638671875, - 58.71588134765625 - ], - [ - 11.39263916015625, - 61.34490966796875 - ], - [ - 11.39263916015625, - 63.9739990234375 - ], - [ - 11.39263916015625, - 66.60302734375 - ], - [ - 10.51629638671875, - 70.10845947265625 - ], - [ - 9.63995361328125, - 71.86126708984375 - ], - [ - 9.63995361328125, - 72.737548828125 - ], - [ - 7.88720703125, - 73.6138916015625 - ], - [ - 6.134521484375, - 75.36663818359375 - ], - [ - 3.50543212890625, - 77.11932373046875 - ], - [ - 1.75274658203125, - 77.99566650390625 - ], - [ - 0.8763427734375, - 77.99566650390625 - ], - [ - -1.752685546875, - 75.36663818359375 - ], - [ - -2.6290283203125, - 73.6138916015625 - ], - [ - -3.50543212890625, - 71.86126708984375 - ], - [ - -4.38177490234375, - 70.10845947265625 - ], - [ - -4.38177490234375, - 67.4794921875 - ], - [ - -4.38177490234375, - 65.7266845703125 - ], - [ - -4.38177490234375, - 63.09765625 - ], - [ - -4.38177490234375, - 60.46856689453125 - ], - [ - -4.38177490234375, - 58.71588134765625 - ], - [ - -4.38177490234375, - 56.963134765625 - ], - [ - -3.50543212890625, - 54.3341064453125 - ], - [ - -2.6290283203125, - 50.82867431640625 - ], - [ - -1.752685546875, - 45.570556640625 - ], - [ - -0.8763427734375, - 40.3123779296875 - ], - [ - 0, - 35.05426025390625 - ], - [ - 0, - 30.6724853515625 - ], - [ - 0, - 29.79608154296875 - ], - [ - 0, - 28.04345703125 - ], - [ - 0, - 26.2906494140625 - ], - [ - 0, - 25.414306640625 - ], - [ - 0, - 24.5379638671875 - ], - [ - 0, - 23.66168212890625 - ], - [ - 0, - 22.7852783203125 - ], - [ - 0, - 21.90887451171875 - ], - [ - 0, - 20.15618896484375 - ], - [ - 0.8763427734375, - 18.40350341796875 - ], - [ - 0.8763427734375, - 17.527099609375 - ], - [ - 0.8763427734375, - 16.6507568359375 - ], - [ - 0.8763427734375, - 15.7744140625 - ], - [ - 0.8763427734375, - 14.02166748046875 - ], - [ - 0.8763427734375, - 13.14532470703125 - ], - [ - 0, - 11.39263916015625 - ], - [ - 0, - 10.51629638671875 - ], - [ - 0, - 9.639892578125 - ], - [ - 0, - 7.88720703125 - ], - [ - 0.8763427734375, - 7.0108642578125 - ], - [ - 0.8763427734375, - 6.13446044921875 - ], - [ - 0.8763427734375, - 5.25811767578125 - ], - [ - 0.8763427734375, - 4.38177490234375 - ], - [ - 0.8763427734375, - 3.50543212890625 - ], - [ - 0.8763427734375, - 2.62908935546875 - ], - [ - 0.8763427734375, - 1.752685546875 - ], - [ - 1.75274658203125, - 1.752685546875 - ], - [ - 1.75274658203125, - 0.8763427734375 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - 0.8763427734375, - 0 - ], - [ - 1.75274658203125, - 0.8763427734375 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.013671875, - 0.224609375, - 0.333984375, - 0.3837890625, - 0.4072265625, - 0.427734375, - 0.44140625, - 0.4482421875, - 0.4541015625, - 0.458984375, - 0.46484375, - 0.4716796875, - 0.47265625, - 0.4736328125, - 0.4794921875, - 0.48828125, - 0.4892578125, - 0.4921875, - 0.4951171875, - 0.5029296875, - 0.5, - 0.5048828125, - 0.5126953125, - 0.51171875, - 0.5107421875, - 0.5205078125, - 0.5205078125, - 0.51953125, - 0.4931640625, - 0.4951171875, - 0.4951171875, - 0.4912109375, - 0.4931640625, - 0.4912109375, - 0.4931640625, - 0.4931640625, - 0.4931640625, - 0.552734375, - 0.5673828125, - 0.583984375, - 0.6923828125, - 0.716796875, - 0.740234375, - 0.7568359375, - 0.7705078125, - 0.7890625, - 0.8076171875, - 0.82421875, - 0.8369140625, - 0.8447265625, - 0.857421875, - 0.85546875, - 0.85546875, - 0.85546875, - 0.8681640625, - 0.861328125, - 0.8642578125, - 0.876953125, - 0.8828125, - 0.8916015625, - 0.8935546875, - 0.8984375, - 0.900390625, - 0.90625, - 0.9169921875, - 0.9169921875, - 0.9189453125, - 0.9169921875, - 0.9150390625, - 0.927734375, - 0.9365234375, - 0.9423828125, - 0.953125, - 0.96484375, - 0.96484375, - 0.96484375, - 0.9619140625, - 0.9580078125, - 0.9619140625, - 0.9560546875, - 0.927734375, - 0.8984375, - 0.876953125, - 0.8642578125, - 0.85546875, - 0.849609375, - 0.8466796875, - 0.8388671875, - 0.83203125, - 0.83203125, - 0.8388671875, - 0.8388671875, - 0.8388671875, - 0.8369140625, - 0.8369140625, - 0.853515625, - 0.859375, - 0.8740234375, - 0.876953125, - 0.87890625, - 0.8740234375, - 0.8740234375, - 0.8740234375, - 0.8740234375, - 0.8720703125, - 0.8720703125, - 0.8681640625, - 0.8701171875, - 0.8701171875, - 0.8681640625, - 0.85546875, - 0.8662109375, - 0.857421875, - 0.8349609375, - 0.849609375, - 0.8447265625, - 0.8447265625, - 0.8466796875, - 0.8447265625, - 0.8447265625, - 0.8447265625, - 0.8388671875, - 0.8349609375, - 0.712890625, - 0.720703125, - 0.2763671875, - 0.1484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.75274658203125, - 0.8763427734375 - ] - }, - { - "id": "ZzwkKFelsytpWz9jC2UEY", - "type": "freedraw", - "x": -156.32417951311345, - "y": -174.39095088413762, - "width": 34.17791748046875, - "height": 65.7266845703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 421037891, - "version": 785, - "versionNonce": 1902626893, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - -1.752685546875, - -1.752685546875 - ], - [ - -2.6290283203125, - -3.50543212890625 - ], - [ - -2.6290283203125, - -4.38177490234375 - ], - [ - -2.6290283203125, - -5.25811767578125 - ], - [ - -2.6290283203125, - -8.7635498046875 - ], - [ - -2.6290283203125, - -9.639892578125 - ], - [ - -1.752685546875, - -9.639892578125 - ], - [ - -0.8763427734375, - -10.5162353515625 - ], - [ - 0.87640380859375, - -10.5162353515625 - ], - [ - 1.75274658203125, - -10.5162353515625 - ], - [ - 2.62908935546875, - -10.5162353515625 - ], - [ - 3.50543212890625, - -10.5162353515625 - ], - [ - 5.2581787109375, - -10.5162353515625 - ], - [ - 6.134521484375, - -10.5162353515625 - ], - [ - 7.0108642578125, - -10.5162353515625 - ], - [ - 7.88720703125, - -9.639892578125 - ], - [ - 8.7635498046875, - -9.639892578125 - ], - [ - 9.63995361328125, - -8.7635498046875 - ], - [ - 10.51629638671875, - -7.88720703125 - ], - [ - 11.39263916015625, - -7.88720703125 - ], - [ - 12.26898193359375, - -7.0108642578125 - ], - [ - 13.1453857421875, - -5.25811767578125 - ], - [ - 14.8980712890625, - -4.38177490234375 - ], - [ - 14.8980712890625, - -3.50543212890625 - ], - [ - 14.8980712890625, - -1.752685546875 - ], - [ - 14.8980712890625, - -0.8763427734375 - ], - [ - 14.8980712890625, - 0 - ], - [ - 14.8980712890625, - 0.8763427734375 - ], - [ - 14.021728515625, - 0.8763427734375 - ], - [ - 12.26898193359375, - 1.75274658203125 - ], - [ - 11.39263916015625, - 2.62908935546875 - ], - [ - 10.51629638671875, - 3.50543212890625 - ], - [ - 9.63995361328125, - 4.38177490234375 - ], - [ - 7.88720703125, - 5.25811767578125 - ], - [ - 7.0108642578125, - 5.25811767578125 - ], - [ - 6.134521484375, - 6.134521484375 - ], - [ - 5.2581787109375, - 7.0108642578125 - ], - [ - 4.38177490234375, - 7.88720703125 - ], - [ - 3.50543212890625, - 8.7635498046875 - ], - [ - 3.50543212890625, - 9.63995361328125 - ], - [ - 2.62908935546875, - 10.51629638671875 - ], - [ - 2.62908935546875, - 12.26898193359375 - ], - [ - 2.62908935546875, - 13.14532470703125 - ], - [ - 2.62908935546875, - 14.021728515625 - ], - [ - 2.62908935546875, - 15.7744140625 - ], - [ - 2.62908935546875, - 16.6507568359375 - ], - [ - 2.62908935546875, - 18.40350341796875 - ], - [ - 2.62908935546875, - 21.03253173828125 - ], - [ - 2.62908935546875, - 21.908935546875 - ], - [ - 3.50543212890625, - 24.5379638671875 - ], - [ - 3.50543212890625, - 26.29071044921875 - ], - [ - 3.50543212890625, - 28.04339599609375 - ], - [ - 3.50543212890625, - 28.91973876953125 - ], - [ - 3.50543212890625, - 30.6724853515625 - ], - [ - 3.50543212890625, - 32.4251708984375 - ], - [ - 2.62908935546875, - 34.17791748046875 - ], - [ - 2.62908935546875, - 35.05426025390625 - ], - [ - 1.75274658203125, - 35.9306640625 - ], - [ - 0.87640380859375, - 36.80694580078125 - ], - [ - 0, - 37.683349609375 - ], - [ - -1.752685546875, - 40.31243896484375 - ], - [ - -1.752685546875, - 41.188720703125 - ], - [ - -2.6290283203125, - 42.06512451171875 - ], - [ - -3.50543212890625, - 42.94146728515625 - ], - [ - -4.38177490234375, - 44.6942138671875 - ], - [ - -6.13446044921875, - 46.4468994140625 - ], - [ - -7.01080322265625, - 47.3232421875 - ], - [ - -8.7635498046875, - 49.07598876953125 - ], - [ - -10.5162353515625, - 50.82867431640625 - ], - [ - -11.39263916015625, - 52.58135986328125 - ], - [ - -12.26898193359375, - 53.457763671875 - ], - [ - -13.14532470703125, - 54.3341064453125 - ], - [ - -14.02166748046875, - 55.21044921875 - ], - [ - -14.89801025390625, - 55.21044921875 - ], - [ - -15.7744140625, - 55.21044921875 - ], - [ - -16.6507568359375, - 55.21044921875 - ], - [ - -17.527099609375, - 55.21044921875 - ], - [ - -19.27984619140625, - 55.21044921875 - ], - [ - -19.27984619140625, - 54.3341064453125 - ], - [ - -19.27984619140625, - 51.70501708984375 - ], - [ - -19.27984619140625, - 48.1995849609375 - ], - [ - -18.4034423828125, - 45.57049560546875 - ], - [ - -18.4034423828125, - 43.81781005859375 - ], - [ - -17.527099609375, - 42.94146728515625 - ], - [ - -17.527099609375, - 42.06512451171875 - ], - [ - -16.6507568359375, - 41.188720703125 - ], - [ - -15.7744140625, - 40.31243896484375 - ], - [ - -15.7744140625, - 39.43603515625 - ], - [ - -14.89801025390625, - 38.5596923828125 - ], - [ - -13.14532470703125, - 36.80694580078125 - ], - [ - -13.14532470703125, - 35.9306640625 - ], - [ - -12.26898193359375, - 35.05426025390625 - ], - [ - -11.39263916015625, - 34.17791748046875 - ], - [ - -11.39263916015625, - 33.301513671875 - ], - [ - -10.5162353515625, - 33.301513671875 - ], - [ - -9.639892578125, - 32.4251708984375 - ], - [ - -8.7635498046875, - 31.54888916015625 - ], - [ - -7.88720703125, - 29.796142578125 - ], - [ - -7.01080322265625, - 28.91973876953125 - ], - [ - -7.01080322265625, - 28.04339599609375 - ], - [ - -6.13446044921875, - 27.1671142578125 - ], - [ - -6.13446044921875, - 25.414306640625 - ], - [ - -6.13446044921875, - 24.5379638671875 - ], - [ - -6.13446044921875, - 23.66162109375 - ], - [ - -5.25811767578125, - 22.78533935546875 - ], - [ - -5.25811767578125, - 21.03253173828125 - ], - [ - -5.25811767578125, - 18.40350341796875 - ], - [ - -5.25811767578125, - 15.7744140625 - ], - [ - -5.25811767578125, - 14.8980712890625 - ], - [ - -6.13446044921875, - 13.14532470703125 - ], - [ - -6.13446044921875, - 12.26898193359375 - ], - [ - -6.13446044921875, - 10.51629638671875 - ], - [ - -6.13446044921875, - 9.63995361328125 - ], - [ - -6.13446044921875, - 8.7635498046875 - ], - [ - -6.13446044921875, - 7.88720703125 - ], - [ - -6.13446044921875, - 7.0108642578125 - ], - [ - -6.13446044921875, - 6.134521484375 - ], - [ - -6.13446044921875, - 5.25811767578125 - ], - [ - -6.13446044921875, - 4.38177490234375 - ], - [ - -5.25811767578125, - 3.50543212890625 - ], - [ - -4.38177490234375, - 2.62908935546875 - ], - [ - -3.50543212890625, - 1.75274658203125 - ], - [ - -2.6290283203125, - 1.75274658203125 - ], - [ - -1.752685546875, - 1.75274658203125 - ], - [ - -0.8763427734375, - 1.75274658203125 - ], - [ - -0.8763427734375, - 0.8763427734375 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0849609375, - 0.306640625, - 0.3427734375, - 0.44921875, - 0.4736328125, - 0.54296875, - 0.5556640625, - 0.556640625, - 0.556640625, - 0.5625, - 0.5595703125, - 0.56640625, - 0.56640625, - 0.5673828125, - 0.57421875, - 0.572265625, - 0.5673828125, - 0.5693359375, - 0.5693359375, - 0.5693359375, - 0.5712890625, - 0.580078125, - 0.5791015625, - 0.583984375, - 0.611328125, - 0.625, - 0.677734375, - 0.6953125, - 0.720703125, - 0.73046875, - 0.74609375, - 0.7744140625, - 0.78515625, - 0.787109375, - 0.787109375, - 0.794921875, - 0.79296875, - 0.791015625, - 0.794921875, - 0.791015625, - 0.7890625, - 0.783203125, - 0.78515625, - 0.79296875, - 0.796875, - 0.794921875, - 0.791015625, - 0.79296875, - 0.791015625, - 0.7890625, - 0.787109375, - 0.791015625, - 0.7890625, - 0.7890625, - 0.8076171875, - 0.8076171875, - 0.80078125, - 0.8134765625, - 0.8095703125, - 0.8154296875, - 0.8134765625, - 0.8203125, - 0.82421875, - 0.82421875, - 0.822265625, - 0.82421875, - 0.83203125, - 0.83203125, - 0.8349609375, - 0.830078125, - 0.8388671875, - 0.849609375, - 0.85546875, - 0.85546875, - 0.859375, - 0.8681640625, - 0.8740234375, - 0.876953125, - 0.87890625, - 0.8720703125, - 0.85546875, - 0.853515625, - 0.8515625, - 0.849609375, - 0.8515625, - 0.8515625, - 0.8466796875, - 0.8427734375, - 0.8447265625, - 0.8408203125, - 0.8349609375, - 0.8369140625, - 0.8349609375, - 0.8408203125, - 0.8408203125, - 0.8408203125, - 0.8408203125, - 0.8388671875, - 0.8466796875, - 0.8515625, - 0.8466796875, - 0.85546875, - 0.859375, - 0.8681640625, - 0.8681640625, - 0.8701171875, - 0.880859375, - 0.884765625, - 0.8896484375, - 0.908203125, - 0.9130859375, - 0.9453125, - 0.947265625, - 0.9580078125, - 0.966796875, - 0.966796875, - 0.96875, - 0.9580078125, - 0.96484375, - 0.9599609375, - 0.9599609375, - 0.9599609375, - 0.9599609375, - 0.951171875, - 0.9560546875, - 0.9423828125, - 0.9150390625, - 0.142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - 0.8763427734375 - ] - }, - { - "id": "NDu_EUZv7K-qLp1w_Ze4K", - "type": "freedraw", - "x": -155.4477757045197, - "y": -177.02004023960637, - "width": 14.89801025390625, - "height": 31.54876708984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1605488685, - "version": 690, - "versionNonce": 269577987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -0.8763427734375 - ], - [ - -2.62908935546875, - -1.752685546875 - ], - [ - -3.50543212890625, - -1.752685546875 - ], - [ - -3.50543212890625, - -2.6290283203125 - ], - [ - -2.62908935546875, - -3.50537109375 - ], - [ - -2.62908935546875, - -4.38177490234375 - ], - [ - -0.87640380859375, - -5.25811767578125 - ], - [ - -0.87640380859375, - -6.13446044921875 - ], - [ - 0, - -7.01080322265625 - ], - [ - 1.752685546875, - -7.01080322265625 - ], - [ - 3.50537109375, - -7.88714599609375 - ], - [ - 6.13446044921875, - -7.88714599609375 - ], - [ - 7.88714599609375, - -7.88714599609375 - ], - [ - 9.639892578125, - -7.88714599609375 - ], - [ - 10.5162353515625, - -7.88714599609375 - ], - [ - 10.5162353515625, - -7.01080322265625 - ], - [ - 10.5162353515625, - -5.25811767578125 - ], - [ - 11.392578125, - -1.752685546875 - ], - [ - 11.392578125, - 2.62908935546875 - ], - [ - 11.392578125, - 3.50543212890625 - ], - [ - 11.392578125, - 4.3818359375 - ], - [ - 10.5162353515625, - 6.134521484375 - ], - [ - 8.7635498046875, - 9.63995361328125 - ], - [ - 7.01080322265625, - 12.26904296875 - ], - [ - 5.25811767578125, - 14.021728515625 - ], - [ - 4.38177490234375, - 15.7744140625 - ], - [ - 3.50537109375, - 17.52716064453125 - ], - [ - 1.752685546875, - 20.15625 - ], - [ - 0.8763427734375, - 21.0325927734375 - ], - [ - 0, - 21.0325927734375 - ], - [ - -0.87640380859375, - 21.908935546875 - ], - [ - -0.87640380859375, - 22.7852783203125 - ], - [ - -0.87640380859375, - 23.66162109375 - ], - [ - -0.87640380859375, - 23.66162109375 - ] - ], - "pressures": [ - 0.0302734375, - 0.236328125, - 0.2958984375, - 0.3232421875, - 0.35546875, - 0.369140625, - 0.3720703125, - 0.375, - 0.384765625, - 0.44921875, - 0.4970703125, - 0.5087890625, - 0.51171875, - 0.51171875, - 0.51953125, - 0.5263671875, - 0.5341796875, - 0.546875, - 0.599609375, - 0.6640625, - 0.671875, - 0.703125, - 0.71875, - 0.73828125, - 0.7421875, - 0.75, - 0.75, - 0.75, - 0.75, - 0.740234375, - 0.7265625, - 0.4169921875, - 0.1865234375, - 0.1259765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.87640380859375, - 23.66162109375 - ] - }, - { - "id": "Clkj2uLJmbtz0O1EoWCTu", - "type": "freedraw", - "x": -146.6842258998322, - "y": -166.50374385288762, - "width": 34.17791748046875, - "height": 54.3341064453125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1443720941, - "version": 754, - "versionNonce": 1195587245, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - 0 - ], - [ - -1.75274658203125, - 0.8763427734375 - ], - [ - -3.50543212890625, - 3.50543212890625 - ], - [ - -5.2581787109375, - 6.134521484375 - ], - [ - -6.134521484375, - 7.88720703125 - ], - [ - -7.0108642578125, - 10.51629638671875 - ], - [ - -7.88720703125, - 11.39263916015625 - ], - [ - -7.88720703125, - 13.14532470703125 - ], - [ - -7.88720703125, - 14.89813232421875 - ], - [ - -7.88720703125, - 16.6507568359375 - ], - [ - -7.88720703125, - 18.40350341796875 - ], - [ - -7.0108642578125, - 19.2799072265625 - ], - [ - -7.0108642578125, - 20.15618896484375 - ], - [ - -7.0108642578125, - 21.03253173828125 - ], - [ - -6.134521484375, - 23.66168212890625 - ], - [ - -6.134521484375, - 24.5379638671875 - ], - [ - -5.2581787109375, - 26.29071044921875 - ], - [ - -5.2581787109375, - 28.04345703125 - ], - [ - -5.2581787109375, - 29.796142578125 - ], - [ - -4.38177490234375, - 32.42523193359375 - ], - [ - -4.38177490234375, - 34.17791748046875 - ], - [ - -4.38177490234375, - 35.93060302734375 - ], - [ - -4.38177490234375, - 36.8070068359375 - ], - [ - -4.38177490234375, - 39.43603515625 - ], - [ - -4.38177490234375, - 41.18878173828125 - ], - [ - -4.38177490234375, - 42.94146728515625 - ], - [ - -4.38177490234375, - 43.81781005859375 - ], - [ - -6.134521484375, - 45.570556640625 - ], - [ - -7.0108642578125, - 46.4468994140625 - ], - [ - -8.7635498046875, - 47.3232421875 - ], - [ - -9.63995361328125, - 48.1995849609375 - ], - [ - -10.51629638671875, - 49.075927734375 - ], - [ - -11.39263916015625, - 49.95233154296875 - ], - [ - -13.1453857421875, - 50.82867431640625 - ], - [ - -14.021728515625, - 50.82867431640625 - ], - [ - -14.8980712890625, - 50.82867431640625 - ], - [ - -16.6507568359375, - 50.82867431640625 - ], - [ - -18.40350341796875, - 50.82867431640625 - ], - [ - -19.27984619140625, - 50.82867431640625 - ], - [ - -20.15618896484375, - 50.82867431640625 - ], - [ - -21.0325927734375, - 50.82867431640625 - ], - [ - -22.7852783203125, - 50.82867431640625 - ], - [ - -23.66162109375, - 50.82867431640625 - ], - [ - -25.41436767578125, - 50.82867431640625 - ], - [ - -26.29071044921875, - 50.82867431640625 - ], - [ - -28.04339599609375, - 50.82867431640625 - ], - [ - -28.9197998046875, - 50.82867431640625 - ], - [ - -29.796142578125, - 49.95233154296875 - ], - [ - -31.548828125, - 49.95233154296875 - ], - [ - -32.4251708984375, - 49.95233154296875 - ], - [ - -32.4251708984375, - 49.075927734375 - ], - [ - -33.30157470703125, - 48.1995849609375 - ], - [ - -34.17791748046875, - 47.3232421875 - ], - [ - -34.17791748046875, - 46.4468994140625 - ], - [ - -34.17791748046875, - 43.81781005859375 - ], - [ - -32.4251708984375, - 38.5596923828125 - ], - [ - -32.4251708984375, - 35.93060302734375 - ], - [ - -31.548828125, - 34.17791748046875 - ], - [ - -30.6724853515625, - 34.17791748046875 - ], - [ - -29.796142578125, - 33.301513671875 - ], - [ - -28.9197998046875, - 32.42523193359375 - ], - [ - -27.16705322265625, - 31.548828125 - ], - [ - -26.29071044921875, - 30.6724853515625 - ], - [ - -24.5379638671875, - 29.796142578125 - ], - [ - -23.66162109375, - 28.91973876953125 - ], - [ - -22.7852783203125, - 28.04345703125 - ], - [ - -21.908935546875, - 28.04345703125 - ], - [ - -21.0325927734375, - 26.29071044921875 - ], - [ - -21.0325927734375, - 25.414306640625 - ], - [ - -20.15618896484375, - 25.414306640625 - ], - [ - -20.15618896484375, - 24.5379638671875 - ], - [ - -19.27984619140625, - 23.66168212890625 - ], - [ - -18.40350341796875, - 23.66168212890625 - ], - [ - -18.40350341796875, - 22.7852783203125 - ], - [ - -18.40350341796875, - 21.03253173828125 - ], - [ - -18.40350341796875, - 19.2799072265625 - ], - [ - -18.40350341796875, - 17.527099609375 - ], - [ - -19.27984619140625, - 15.7744140625 - ], - [ - -19.27984619140625, - 14.021728515625 - ], - [ - -19.27984619140625, - 12.26898193359375 - ], - [ - -19.27984619140625, - 10.51629638671875 - ], - [ - -19.27984619140625, - 8.7635498046875 - ], - [ - -19.27984619140625, - 7.0108642578125 - ], - [ - -19.27984619140625, - 6.134521484375 - ], - [ - -19.27984619140625, - 5.25811767578125 - ], - [ - -18.40350341796875, - 2.62908935546875 - ], - [ - -18.40350341796875, - 1.75274658203125 - ], - [ - -18.40350341796875, - 0.8763427734375 - ], - [ - -17.52716064453125, - 0 - ], - [ - -17.52716064453125, - -0.8763427734375 - ], - [ - -17.52716064453125, - -1.752685546875 - ], - [ - -16.6507568359375, - -1.752685546875 - ], - [ - -16.6507568359375, - -2.62908935546875 - ], - [ - -15.7744140625, - -2.62908935546875 - ], - [ - -15.7744140625, - -3.50543212890625 - ], - [ - -14.8980712890625, - -3.50543212890625 - ], - [ - -13.1453857421875, - -2.62908935546875 - ], - [ - -11.39263916015625, - -2.62908935546875 - ], - [ - -11.39263916015625, - -2.62908935546875 - ] - ], - "pressures": [ - 0.0166015625, - 0.2626953125, - 0.322265625, - 0.3486328125, - 0.365234375, - 0.376953125, - 0.388671875, - 0.390625, - 0.3955078125, - 0.3955078125, - 0.396484375, - 0.3984375, - 0.4052734375, - 0.4111328125, - 0.416015625, - 0.42578125, - 0.427734375, - 0.43359375, - 0.4404296875, - 0.44140625, - 0.44140625, - 0.4443359375, - 0.4462890625, - 0.4501953125, - 0.4501953125, - 0.4482421875, - 0.44921875, - 0.453125, - 0.4560546875, - 0.455078125, - 0.4599609375, - 0.462890625, - 0.4658203125, - 0.466796875, - 0.47265625, - 0.474609375, - 0.4765625, - 0.4794921875, - 0.478515625, - 0.482421875, - 0.4833984375, - 0.4853515625, - 0.4853515625, - 0.4833984375, - 0.4892578125, - 0.4921875, - 0.5, - 0.5, - 0.50390625, - 0.5029296875, - 0.5048828125, - 0.5107421875, - 0.5078125, - 0.5078125, - 0.5029296875, - 0.4970703125, - 0.4970703125, - 0.49609375, - 0.4970703125, - 0.4990234375, - 0.4990234375, - 0.4970703125, - 0.5, - 0.5009765625, - 0.5, - 0.5029296875, - 0.5068359375, - 0.5126953125, - 0.5224609375, - 0.5322265625, - 0.5341796875, - 0.55078125, - 0.58203125, - 0.5888671875, - 0.6376953125, - 0.6806640625, - 0.6806640625, - 0.6845703125, - 0.708984375, - 0.720703125, - 0.724609375, - 0.7265625, - 0.7265625, - 0.7265625, - 0.71875, - 0.720703125, - 0.720703125, - 0.71875, - 0.697265625, - 0.6923828125, - 0.6953125, - 0.6953125, - 0.6826171875, - 0.669921875, - 0.66796875, - 0.66796875, - 0.6572265625, - 0.638671875, - 0.6162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.39263916015625, - -2.62908935546875 - ] - }, - { - "id": "9reYZaP9we315bSW73k0C", - "type": "freedraw", - "x": -172.97493634905095, - "y": -247.12849971226262, - "width": 29.796142578125, - "height": 50.828643798828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1872364845, - "version": 671, - "versionNonce": 716347043, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.75274658203125, - -0.8763427734375 - ], - [ - -1.752685546875, - -2.629058837890625 - ], - [ - -5.25811767578125, - -2.629058837890625 - ], - [ - -8.7635498046875, - -1.752716064453125 - ], - [ - -13.14532470703125, - 0.876373291015625 - ], - [ - -18.4034423828125, - 5.258148193359375 - ], - [ - -21.03253173828125, - 11.39263916015625 - ], - [ - -24.5379638671875, - 20.15618896484375 - ], - [ - -26.2906494140625, - 29.796112060546875 - ], - [ - -28.04339599609375, - 36.80694580078125 - ], - [ - -28.04339599609375, - 42.065093994140625 - ], - [ - -28.04339599609375, - 43.81781005859375 - ], - [ - -27.16705322265625, - 45.57049560546875 - ], - [ - -26.2906494140625, - 46.4468994140625 - ], - [ - -24.5379638671875, - 48.1995849609375 - ], - [ - -24.5379638671875, - 48.1995849609375 - ] - ], - "pressures": [ - 0.0224609375, - 0.287109375, - 0.708984375, - 0.796875, - 0.8701171875, - 0.904296875, - 0.9150390625, - 0.9130859375, - 0.90625, - 0.904296875, - 0.884765625, - 0.7568359375, - 0.529296875, - 0.34765625, - 0.240234375, - 0.150390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -24.5379638671875, - 48.1995849609375 - ] - }, - { - "id": "Xivw8BNTJxYw0LJW-d661", - "type": "freedraw", - "x": -172.97493634905095, - "y": -253.2629906790595, - "width": 36.80694580078125, - "height": 65.72671508789062, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2067959277, - "version": 674, - "versionNonce": 6412557, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.8763427734375 - ], - [ - -1.752685546875, - 0 - ], - [ - -6.13446044921875, - 2.629058837890625 - ], - [ - -8.7635498046875, - 4.38177490234375 - ], - [ - -12.26898193359375, - 7.0108642578125 - ], - [ - -14.8980712890625, - 9.639923095703125 - ], - [ - -20.15618896484375, - 14.021697998046875 - ], - [ - -23.66162109375, - 19.27984619140625 - ], - [ - -27.16705322265625, - 26.290679931640625 - ], - [ - -30.67242431640625, - 35.93060302734375 - ], - [ - -33.301513671875, - 45.570526123046875 - ], - [ - -36.80694580078125, - 56.963165283203125 - ], - [ - -36.80694580078125, - 61.344940185546875 - ], - [ - -36.80694580078125, - 63.097625732421875 - ], - [ - -36.80694580078125, - 63.973968505859375 - ], - [ - -35.93060302734375, - 64.85037231445312 - ], - [ - -35.05426025390625, - 64.85037231445312 - ], - [ - -34.1778564453125, - 63.097625732421875 - ], - [ - -34.1778564453125, - 63.097625732421875 - ] - ], - "pressures": [ - 0.005859375, - 0.185546875, - 0.3056640625, - 0.4609375, - 0.56640625, - 0.646484375, - 0.6953125, - 0.740234375, - 0.74609375, - 0.75, - 0.751953125, - 0.74609375, - 0.72265625, - 0.599609375, - 0.44921875, - 0.3955078125, - 0.2236328125, - 0.138671875, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -34.1778564453125, - 63.097625732421875 - ] - }, - { - "id": "lD2239iHwXVNTgEEn7A4y", - "type": "freedraw", - "x": -187.87300763811345, - "y": -154.23476191929387, - "width": 5.2581787109375, - "height": 4.38177490234375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1158874019, - "version": 658, - "versionNonce": 302893635, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558538, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0, - 0 - ], - [ - 1.75274658203125, - 0 - ], - [ - 2.62908935546875, - -0.8763427734375 - ], - [ - 3.50543212890625, - -0.8763427734375 - ], - [ - 4.3818359375, - -1.752685546875 - ], - [ - 4.3818359375, - -2.6290283203125 - ], - [ - 4.3818359375, - -3.50543212890625 - ], - [ - 4.3818359375, - -4.38177490234375 - ], - [ - 4.3818359375, - -3.50543212890625 - ], - [ - 4.3818359375, - -2.6290283203125 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.01171875, - 0.2392578125, - 0.3818359375, - 0.41796875, - 0.427734375, - 0.4306640625, - 0.4365234375, - 0.4580078125, - 0.482421875, - 0.4873046875, - 0.1396484375, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.3818359375, - -2.6290283203125 - ] - }, - { - "id": "vLBxZ5K-KdZhFaHvLlQg-", - "type": "freedraw", - "x": -183.49117170061345, - "y": -157.74019404820012, - "width": 3.50543212890625, - "height": 5.2581787109375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1644948269, - "version": 655, - "versionNonce": 909979501, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.87640380859375 - ], - [ - 0.8763427734375, - 2.62908935546875 - ], - [ - 0.8763427734375, - 4.38177490234375 - ], - [ - 0.8763427734375, - 5.2581787109375 - ], - [ - 0, - 5.2581787109375 - ], - [ - -1.75274658203125, - 5.2581787109375 - ], - [ - -2.62908935546875, - 5.2581787109375 - ], - [ - -1.75274658203125, - 5.2581787109375 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0087890625, - 0.3505859375, - 0.3623046875, - 0.41015625, - 0.5498046875, - 0.5537109375, - 0.5625, - 0.5595703125, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.75274658203125, - 5.2581787109375 - ] - }, - { - "id": "TLTmLYjC6xOFq3l-AWWXR", - "type": "freedraw", - "x": -185.2439182826447, - "y": -154.23476191929387, - "width": 5.25811767578125, - "height": 10.516357421875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1452471277, - "version": 662, - "versionNonce": 989956579, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0, - 1.75274658203125 - ], - [ - 0.8763427734375, - 2.629150390625 - ], - [ - 1.75274658203125, - 2.629150390625 - ], - [ - 2.62908935546875, - 1.75274658203125 - ], - [ - 3.50543212890625, - 0.8763427734375 - ], - [ - 4.38177490234375, - -0.8763427734375 - ], - [ - 4.38177490234375, - -2.6290283203125 - ], - [ - 4.38177490234375, - -4.38177490234375 - ], - [ - 4.38177490234375, - -5.25811767578125 - ], - [ - 4.38177490234375, - -6.13446044921875 - ], - [ - 4.38177490234375, - -7.0108642578125 - ], - [ - 3.50543212890625, - -7.0108642578125 - ], - [ - 3.50543212890625, - -7.88720703125 - ], - [ - 3.50543212890625, - -7.0108642578125 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0185546875, - 0.234375, - 0.4248046875, - 0.4296875, - 0.4296875, - 0.48046875, - 0.53515625, - 0.5849609375, - 0.6337890625, - 0.697265625, - 0.703125, - 0.7109375, - 0.720703125, - 0.720703125, - 0.736328125, - 0.2001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.50543212890625, - -7.0108642578125 - ] - }, - { - "id": "ILgcwxrTI5YePcxbCT6F2", - "type": "freedraw", - "x": -185.2439182826447, - "y": -156.86379023960637, - "width": 7.0108642578125, - "height": 7.88720703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 135618435, - "version": 662, - "versionNonce": 387889613, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - -1.75274658203125 - ], - [ - 0, - -1.75274658203125 - ], - [ - 1.75274658203125, - -1.75274658203125 - ], - [ - 2.62908935546875, - -1.75274658203125 - ], - [ - 3.50543212890625, - 0 - ], - [ - 3.50543212890625, - 0.8763427734375 - ], - [ - 3.50543212890625, - 2.6290283203125 - ], - [ - 3.50543212890625, - 3.50537109375 - ], - [ - 3.50543212890625, - 4.38177490234375 - ], - [ - 1.75274658203125, - 4.38177490234375 - ], - [ - 0, - 5.2581787109375 - ], - [ - -1.752685546875, - 5.2581787109375 - ], - [ - -2.62908935546875, - 5.2581787109375 - ], - [ - -3.50543212890625, - 5.2581787109375 - ], - [ - -2.62908935546875, - 6.13446044921875 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0234375, - 0.197265625, - 0.5625, - 0.59765625, - 0.6220703125, - 0.724609375, - 0.7783203125, - 0.8388671875, - 0.8740234375, - 0.90234375, - 0.947265625, - 0.947265625, - 0.9404296875, - 0.9384765625, - 0.927734375, - 0.109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.62908935546875, - 6.13446044921875 - ] - }, - { - "id": "sDJgnyRbtjWrxdyLyZehL", - "type": "freedraw", - "x": -183.49117170061345, - "y": -152.48201533726262, - "width": 7.01080322265625, - "height": 14.89801025390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1728266765, - "version": 662, - "versionNonce": 2057065859, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.50537109375 - ], - [ - 0.8763427734375, - 3.50537109375 - ], - [ - 1.752685546875, - 3.50537109375 - ], - [ - 3.50537109375, - 2.6290283203125 - ], - [ - 4.38177490234375, - 1.752685546875 - ], - [ - 5.25811767578125, - -0.87640380859375 - ], - [ - 6.13446044921875, - -3.50543212890625 - ], - [ - 7.01080322265625, - -7.0108642578125 - ], - [ - 7.01080322265625, - -9.63995361328125 - ], - [ - 7.01080322265625, - -10.51629638671875 - ], - [ - 5.25811767578125, - -11.39263916015625 - ], - [ - 4.38177490234375, - -11.39263916015625 - ], - [ - 3.50537109375, - -11.39263916015625 - ], - [ - 3.50537109375, - -10.51629638671875 - ], - [ - 3.50537109375, - -9.63995361328125 - ], - [ - 3.50537109375, - -8.76361083984375 - ], - [ - 3.50537109375, - -8.76361083984375 - ] - ], - "pressures": [ - 0.0439453125, - 0.1787109375, - 0.1845703125, - 0.1982421875, - 0.30859375, - 0.3759765625, - 0.439453125, - 0.5341796875, - 0.625, - 0.716796875, - 0.748046875, - 0.7646484375, - 0.751953125, - 0.6083984375, - 0.216796875, - 0.1416015625, - 0.0791015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.50537109375, - -8.76361083984375 - ] - }, - { - "id": "CfRiduZxKpQKO4xTy6Qzp", - "type": "freedraw", - "x": -181.73848615373845, - "y": -159.49287959507512, - "width": 8.7635498046875, - "height": 7.88720703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1115690851, - "version": 658, - "versionNonce": 1277163565, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.8763427734375 - ], - [ - 0.8763427734375, - 0 - ], - [ - 2.62908935546875, - 1.752685546875 - ], - [ - 3.50543212890625, - 3.50543212890625 - ], - [ - 3.50543212890625, - 4.38177490234375 - ], - [ - 2.62908935546875, - 5.25811767578125 - ], - [ - 0.8763427734375, - 6.13446044921875 - ], - [ - -1.752685546875, - 7.0108642578125 - ], - [ - -4.38177490234375, - 7.0108642578125 - ], - [ - -5.25811767578125, - 7.0108642578125 - ], - [ - -3.50543212890625, - 7.0108642578125 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0390625, - 0.330078125, - 0.9365234375, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.50543212890625, - 7.0108642578125 - ] - }, - { - "id": "hiS40yD0w7Wsu2WkcbGGI", - "type": "freedraw", - "x": -179.98580060686345, - "y": -152.48201533726262, - "width": 167.384033203125, - "height": 112.17355346679688, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1079565165, - "version": 695, - "versionNonce": 1879331, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -0.8763427734375, - 0.87640380859375 - ], - [ - -0.8763427734375, - 3.50537109375 - ], - [ - 0.87640380859375, - 9.63995361328125 - ], - [ - 3.50543212890625, - 14.89801025390625 - ], - [ - 6.134521484375, - 20.15618896484375 - ], - [ - 9.63995361328125, - 26.2906494140625 - ], - [ - 14.021728515625, - 30.67242431640625 - ], - [ - 16.65081787109375, - 32.4251708984375 - ], - [ - 21.908935546875, - 33.301513671875 - ], - [ - 26.29071044921875, - 31.548828125 - ], - [ - 31.548828125, - 27.16705322265625 - ], - [ - 41.18878173828125, - 16.6507568359375 - ], - [ - 49.07598876953125, - 7.01080322265625 - ], - [ - 54.3341064453125, - -3.50543212890625 - ], - [ - 57.83953857421875, - -14.021728515625 - ], - [ - 58.71588134765625, - -25.41436767578125 - ], - [ - 58.71588134765625, - -37.683349609375 - ], - [ - 50.82867431640625, - -54.3341064453125 - ], - [ - 42.94146728515625, - -59.59222412109375 - ], - [ - 34.17791748046875, - -60.468597412109375 - ], - [ - 27.16705322265625, - -59.59222412109375 - ], - [ - 22.7852783203125, - -55.21044921875 - ], - [ - 18.40350341796875, - -40.3123779296875 - ], - [ - 18.40350341796875, - -26.29071044921875 - ], - [ - 19.27984619140625, - -8.76361083984375 - ], - [ - 24.53802490234375, - 8.7635498046875 - ], - [ - 36.8070068359375, - 30.67242431640625 - ], - [ - 45.570556640625, - 39.43597412109375 - ], - [ - 54.3341064453125, - 44.6942138671875 - ], - [ - 67.47943115234375, - 50.82861328125 - ], - [ - 76.24298095703125, - 51.7049560546875 - ], - [ - 86.75927734375, - 51.7049560546875 - ], - [ - 99.0283203125, - 49.07598876953125 - ], - [ - 112.173583984375, - 43.8177490234375 - ], - [ - 121.8134765625, - 35.93060302734375 - ], - [ - 131.4534912109375, - 13.14532470703125 - ], - [ - 134.08251953125, - -6.134521484375 - ], - [ - 134.08251953125, - -25.41436767578125 - ], - [ - 123.5662841796875, - -52.581390380859375 - ], - [ - 80.624755859375, - -46.4468994140625 - ], - [ - 82.37750244140625, - -37.683349609375 - ], - [ - 90.26470947265625, - -19.27984619140625 - ], - [ - 104.286376953125, - 0.87640380859375 - ], - [ - 119.1844482421875, - 18.40350341796875 - ], - [ - 139.3406982421875, - 33.301513671875 - ], - [ - 152.4859619140625, - 39.43597412109375 - ], - [ - 164.7550048828125, - 44.6942138671875 - ], - [ - 166.5076904296875, - 44.6942138671875 - ], - [ - 166.5076904296875, - 44.6942138671875 - ] - ], - "pressures": [ - 0.0361328125, - 0.251953125, - 0.3427734375, - 0.3662109375, - 0.4609375, - 0.5537109375, - 0.640625, - 0.6943359375, - 0.72265625, - 0.734375, - 0.7421875, - 0.751953125, - 0.7724609375, - 0.83203125, - 0.859375, - 0.8720703125, - 0.9814453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.990234375, - 1, - 1, - 1, - 0.96875, - 0.951171875, - 0.9296875, - 0.8984375, - 0.8916015625, - 0.8828125, - 0.8427734375, - 0.828125, - 0.828125, - 0.8447265625, - 0.8662109375, - 0.8447265625, - 0.482421875, - 0.4775390625, - 0.4306640625, - 0.421875, - 0.361328125, - 0.2568359375, - 0.17578125, - 0.1181640625, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 166.5076904296875, - 44.6942138671875 - ] - }, - { - "id": "kOpQ7K23HxYVes_ygQX6d", - "type": "freedraw", - "x": -179.98580060686345, - "y": -149.85298701695012, - "width": 4.38177490234375, - "height": 9.639892578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 880237485, - "version": 659, - "versionNonce": 522873485, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0, - -0.8763427734375 - ], - [ - 0.87640380859375, - -1.75262451171875 - ], - [ - 2.62908935546875, - -2.6290283203125 - ], - [ - 2.62908935546875, - -3.50543212890625 - ], - [ - 3.50543212890625, - -4.38177490234375 - ], - [ - 3.50543212890625, - -6.13446044921875 - ], - [ - 3.50543212890625, - -7.01080322265625 - ], - [ - 2.62908935546875, - -8.7635498046875 - ], - [ - 1.75274658203125, - -9.639892578125 - ], - [ - 0.87640380859375, - -9.639892578125 - ], - [ - 0.87640380859375, - -7.88720703125 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.033203125, - 0.232421875, - 0.3759765625, - 0.4248046875, - 0.4873046875, - 0.50390625, - 0.525390625, - 0.57421875, - 0.61328125, - 0.646484375, - 0.66015625, - 0.197265625, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.87640380859375, - -7.88720703125 - ] - }, - { - "id": "YS8fMxSHiFrrv5dIeY-nz", - "type": "freedraw", - "x": -191.37837873186345, - "y": -150.72932979038762, - "width": 7.88720703125, - "height": 5.25811767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 966118701, - "version": 660, - "versionNonce": 250679491, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - 0 - ], - [ - -0.87640380859375, - -0.87628173828125 - ], - [ - 0, - -1.752685546875 - ], - [ - 0, - -2.62908935546875 - ], - [ - 1.752685546875, - -3.50543212890625 - ], - [ - 1.752685546875, - -4.38177490234375 - ], - [ - 2.6290283203125, - -4.38177490234375 - ], - [ - 3.50537109375, - -5.25811767578125 - ], - [ - 4.38177490234375, - -5.25811767578125 - ], - [ - 5.25811767578125, - -4.38177490234375 - ], - [ - 6.13446044921875, - -2.62908935546875 - ], - [ - 7.01080322265625, - -1.752685546875 - ], - [ - 7.01080322265625, - -0.87628173828125 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0322265625, - 0.287109375, - 0.515625, - 0.580078125, - 0.59375, - 0.6025390625, - 0.6044921875, - 0.609375, - 0.6162109375, - 0.6513671875, - 0.669921875, - 0.7626953125, - 0.8056640625, - 0.828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.01080322265625, - -0.87628173828125 - ] - }, - { - "id": "FUxjWPi999UDuKtKiT0ne", - "type": "freedraw", - "x": -192.2547825404572, - "y": -153.35841914585637, - "width": 8.7635498046875, - "height": 0.87640380859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2141638307, - "version": 657, - "versionNonce": 1626837229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0.87640380859375, - 0 - ], - [ - 2.62908935546875, - 0 - ], - [ - 5.2581787109375, - 0 - ], - [ - 6.134521484375, - 0.87640380859375 - ], - [ - 7.0108642578125, - 0.87640380859375 - ], - [ - 6.134521484375, - 0.87640380859375 - ], - [ - 5.2581787109375, - 0.87640380859375 - ], - [ - 4.38177490234375, - 0 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.03515625, - 0.482421875, - 0.908203125, - 0.921875, - 0.9296875, - 0.9599609375, - 0.98828125, - 1, - 0.34765625, - 0.154296875, - 0.10546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.38177490234375, - 0 - ] - }, - { - "id": "u1HwYItLw_NMLYxNdt0el", - "type": "freedraw", - "x": -200.1419895717072, - "y": -123.56227656773137, - "width": 95.52276611328125, - "height": 10.5162353515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 528154147, - "version": 663, - "versionNonce": 2025324643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.01080322265625, - -0.8763427734375 - ], - [ - -9.639892578125, - -0.8763427734375 - ], - [ - -11.392578125, - -0.8763427734375 - ], - [ - -11.392578125, - 0 - ], - [ - -8.7635498046875, - 0.8763427734375 - ], - [ - 0, - 2.62908935546875 - ], - [ - 11.39263916015625, - 3.50543212890625 - ], - [ - 25.41436767578125, - 4.38177490234375 - ], - [ - 39.43603515625, - 6.13446044921875 - ], - [ - 53.457763671875, - 7.88720703125 - ], - [ - 70.1085205078125, - 9.639892578125 - ], - [ - 77.119384765625, - 9.639892578125 - ], - [ - 81.50115966796875, - 9.639892578125 - ], - [ - 84.13018798828125, - 8.7635498046875 - ], - [ - 84.13018798828125, - 7.0108642578125 - ], - [ - 79.7484130859375, - 4.38177490234375 - ], - [ - 76.24298095703125, - 3.50543212890625 - ], - [ - 76.24298095703125, - 3.50543212890625 - ] - ], - "pressures": [ - 0.080078125, - 0.1328125, - 0.18359375, - 0.2548828125, - 0.3193359375, - 0.5947265625, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.55859375, - 0.2548828125, - 0.154296875, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 76.24298095703125, - 3.50543212890625 - ] - }, - { - "id": "nN8yER2LWvXFgaWopEUEF", - "type": "freedraw", - "x": -203.6473606654572, - "y": -120.05684443882512, - "width": 83.2537841796875, - "height": 8.7635498046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1567438957, - "version": 657, - "versionNonce": 252767053, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.8763427734375 - ], - [ - 13.14532470703125, - -0.8763427734375 - ], - [ - 26.2906494140625, - 0 - ], - [ - 37.68328857421875, - 0 - ], - [ - 46.44683837890625, - 0 - ], - [ - 53.45770263671875, - -0.8763427734375 - ], - [ - 60.46856689453125, - -0.8763427734375 - ], - [ - 69.23211669921875, - 2.6290283203125 - ], - [ - 76.242919921875, - 5.25811767578125 - ], - [ - 83.2537841796875, - 7.01080322265625 - ], - [ - 83.2537841796875, - 7.88720703125 - ], - [ - 83.2537841796875, - 7.88720703125 - ] - ], - "pressures": [ - 0.05078125, - 0.333984375, - 0.66796875, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 0.55078125, - 0.203125, - 0.130859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 83.2537841796875, - 7.88720703125 - ] - }, - { - "id": "OmVWU5rg-pDOSwJyI1n73", - "type": "freedraw", - "x": -204.52376447405095, - "y": -119.18050166538762, - "width": 103.4100341796875, - "height": 7.01080322265625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 10124579, - "version": 657, - "versionNonce": 1463811075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.25811767578125, - -0.8763427734375 - ], - [ - -4.38177490234375, - -0.8763427734375 - ], - [ - 2.62908935546875, - -0.8763427734375 - ], - [ - 14.8980712890625, - 0.8763427734375 - ], - [ - 38.5596923828125, - 2.62908935546875 - ], - [ - 55.21044921875, - 2.62908935546875 - ], - [ - 71.8612060546875, - 3.50543212890625 - ], - [ - 85.00653076171875, - 4.38177490234375 - ], - [ - 94.646484375, - 6.13446044921875 - ], - [ - 96.399169921875, - 6.13446044921875 - ], - [ - 98.15191650390625, - 6.13446044921875 - ], - [ - 98.15191650390625, - 6.13446044921875 - ] - ], - "pressures": [ - 0.0693359375, - 0.2216796875, - 0.4453125, - 0.59765625, - 0.861328125, - 1, - 1, - 1, - 1, - 0.8720703125, - 0.4619140625, - 0.236328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 98.15191650390625, - 6.13446044921875 - ] - }, - { - "id": "s-b5AHcGXHyR2XR3t5OoZ", - "type": "freedraw", - "x": -153.6950901576447, - "y": -118.30415889195012, - "width": 77.119384765625, - "height": 82.37744140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1388589699, - "version": 664, - "versionNonce": 969931181, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -0.8763427734375 - ], - [ - -9.639892578125, - -1.752685546875 - ], - [ - -15.7744140625, - -2.6290283203125 - ], - [ - -22.7852783203125, - -3.50543212890625 - ], - [ - -30.6724853515625, - -4.38177490234375 - ], - [ - -38.5596923828125, - -4.38177490234375 - ], - [ - -49.075927734375, - -2.6290283203125 - ], - [ - -54.3341064453125, - -0.8763427734375 - ], - [ - -57.8394775390625, - 0.8763427734375 - ], - [ - -58.71588134765625, - 2.62908935546875 - ], - [ - -58.71588134765625, - 4.38177490234375 - ], - [ - -50.82867431640625, - 12.26898193359375 - ], - [ - -41.188720703125, - 21.908935546875 - ], - [ - -30.6724853515625, - 32.42523193359375 - ], - [ - -20.15618896484375, - 44.69415283203125 - ], - [ - -6.134521484375, - 59.59222412109375 - ], - [ - 2.62908935546875, - 67.4794921875 - ], - [ - 10.51629638671875, - 72.737548828125 - ], - [ - 14.8980712890625, - 76.2430419921875 - ], - [ - 18.40350341796875, - 77.99566650390625 - ], - [ - 18.40350341796875, - 76.2430419921875 - ], - [ - 18.40350341796875, - 76.2430419921875 - ] - ], - "pressures": [ - 0.0146484375, - 0.3251953125, - 0.4912109375, - 0.626953125, - 0.716796875, - 0.75390625, - 0.787109375, - 0.8115234375, - 0.826171875, - 0.8388671875, - 0.8349609375, - 0.83203125, - 0.830078125, - 0.8681640625, - 0.923828125, - 0.990234375, - 1, - 0.9423828125, - 0.791015625, - 0.541015625, - 0.2275390625, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 18.40350341796875, - 76.2430419921875 - ] - }, - { - "id": "IHPA_kcRq4tHV_nMku7pS", - "type": "freedraw", - "x": -179.98580060686345, - "y": -110.41695186070012, - "width": 90.26470947265625, - "height": 76.24298095703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 310220909, - "version": 660, - "versionNonce": 109544355, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -3.50543212890625 - ], - [ - -7.01080322265625, - -5.25811767578125 - ], - [ - -12.26898193359375, - -6.13446044921875 - ], - [ - -21.03253173828125, - -7.0108642578125 - ], - [ - -25.414306640625, - -7.0108642578125 - ], - [ - -28.04339599609375, - -3.50543212890625 - ], - [ - -28.04339599609375, - 2.629150390625 - ], - [ - -20.15618896484375, - 16.6507568359375 - ], - [ - -11.392578125, - 26.29071044921875 - ], - [ - 0, - 37.683349609375 - ], - [ - 14.8980712890625, - 49.075927734375 - ], - [ - 30.6724853515625, - 58.71588134765625 - ], - [ - 49.95233154296875, - 66.60308837890625 - ], - [ - 57.83953857421875, - 68.3558349609375 - ], - [ - 61.344970703125, - 69.23211669921875 - ], - [ - 62.2213134765625, - 68.3558349609375 - ], - [ - 58.71588134765625, - 63.97406005859375 - ], - [ - 58.71588134765625, - 63.97406005859375 - ] - ], - "pressures": [ - 0.0537109375, - 0.3876953125, - 0.5341796875, - 0.6923828125, - 0.8369140625, - 0.90625, - 0.94921875, - 0.94921875, - 0.951171875, - 0.9775390625, - 1, - 1, - 1, - 1, - 0.9453125, - 0.732421875, - 0.3193359375, - 0.0791015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.71588134765625, - 63.97406005859375 - ] - }, - { - "id": "hsrvZ3B9QpUX_9Q-KE3B4", - "type": "freedraw", - "x": -181.73848615373845, - "y": -112.16963740757512, - "width": 104.286376953125, - "height": 80.624755859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 763765859, - "version": 661, - "versionNonce": 710818829, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.50543212890625 - ], - [ - -4.38177490234375, - -4.38177490234375 - ], - [ - -8.7635498046875, - -5.2581787109375 - ], - [ - -14.8980712890625, - -5.2581787109375 - ], - [ - -21.03253173828125, - -5.2581787109375 - ], - [ - -25.414306640625, - -3.50543212890625 - ], - [ - -25.414306640625, - 2.6290283203125 - ], - [ - -21.03253173828125, - 10.5162353515625 - ], - [ - -14.8980712890625, - 19.27978515625 - ], - [ - -6.134521484375, - 28.04339599609375 - ], - [ - 12.26898193359375, - 42.94140625 - ], - [ - 27.16705322265625, - 52.5814208984375 - ], - [ - 44.69415283203125, - 62.22125244140625 - ], - [ - 61.34490966796875, - 69.23211669921875 - ], - [ - 76.24298095703125, - 75.3665771484375 - ], - [ - 78.8720703125, - 75.3665771484375 - ], - [ - 77.11932373046875, - 73.6138916015625 - ], - [ - 75.36663818359375, - 72.737548828125 - ], - [ - 75.36663818359375, - 72.737548828125 - ] - ], - "pressures": [ - 0.0400390625, - 0.4130859375, - 0.640625, - 0.8203125, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6884765625, - 0.38671875, - 0.1640625, - 0.0966796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 75.36663818359375, - 72.737548828125 - ] - }, - { - "id": "vB3pMAfq2hKWCEXm1p13s", - "type": "freedraw", - "x": -194.0074680873322, - "y": -116.55141230991887, - "width": 87.6356201171875, - "height": 11.39263916015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1236148557, - "version": 655, - "versionNonce": 1589450563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - 0.8763427734375 - ], - [ - 0.8763427734375, - 1.752685546875 - ], - [ - 10.51629638671875, - 1.752685546875 - ], - [ - 28.04339599609375, - 0 - ], - [ - 40.3123779296875, - -0.87640380859375 - ], - [ - 51.70501708984375, - -0.87640380859375 - ], - [ - 63.09765625, - -0.87640380859375 - ], - [ - 72.737548828125, - 1.752685546875 - ], - [ - 82.37744140625, - 7.88714599609375 - ], - [ - 84.13018798828125, - 9.639892578125 - ], - [ - 83.25384521484375, - 10.5162353515625 - ], - [ - 82.37744140625, - 10.5162353515625 - ], - [ - 82.37744140625, - 10.5162353515625 - ] - ], - "pressures": [ - 0.0693359375, - 0.5888671875, - 0.671875, - 0.7568359375, - 1, - 1, - 1, - 1, - 1, - 0.66015625, - 0.251953125, - 0.115234375, - 0.0068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 82.37744140625, - 10.5162353515625 - ] - }, - { - "id": "GDXADQ2q_e2_TtjoOK5RH", - "type": "freedraw", - "x": -132.66255841936345, - "y": -108.66426631382512, - "width": 39.43597412109375, - "height": 146.3514404296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2041863181, - "version": 661, - "versionNonce": 1219834477, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 6.134521484375, - -0.8763427734375 - ], - [ - 12.26898193359375, - -2.6290283203125 - ], - [ - 19.27984619140625, - -2.6290283203125 - ], - [ - 26.29071044921875, - -2.6290283203125 - ], - [ - 33.301513671875, - -1.752685546875 - ], - [ - 33.301513671875, - 0 - ], - [ - 32.4251708984375, - 5.25823974609375 - ], - [ - 26.29071044921875, - 14.02178955078125 - ], - [ - 17.52716064453125, - 28.9197998046875 - ], - [ - 2.62908935546875, - 56.96319580078125 - ], - [ - -2.6290283203125, - 77.119384765625 - ], - [ - -5.25811767578125, - 96.399169921875 - ], - [ - -6.13446044921875, - 112.173583984375 - ], - [ - -6.13446044921875, - 129.70074462890625 - ], - [ - -6.13446044921875, - 134.9588623046875 - ], - [ - -6.13446044921875, - 136.71160888671875 - ], - [ - -6.13446044921875, - 137.58795166015625 - ], - [ - -5.25811767578125, - 140.21697998046875 - ], - [ - -4.38177490234375, - 142.8460693359375 - ], - [ - -4.38177490234375, - 143.722412109375 - ], - [ - -3.50543212890625, - 143.722412109375 - ], - [ - -3.50543212890625, - 142.8460693359375 - ], - [ - -3.50543212890625, - 142.8460693359375 - ] - ], - "pressures": [ - 0.064453125, - 0.2529296875, - 0.2861328125, - 0.3251953125, - 0.39453125, - 0.455078125, - 0.4716796875, - 0.4931640625, - 0.5791015625, - 0.66015625, - 0.705078125, - 0.720703125, - 0.72265625, - 0.720703125, - 0.69921875, - 0.6337890625, - 0.599609375, - 0.478515625, - 0.2861328125, - 0.18359375, - 0.158203125, - 0.1123046875, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.50543212890625, - 142.8460693359375 - ] - }, - { - "id": "eJrljZbho7GZQbYI1bfBf", - "type": "freedraw", - "x": -175.6040257045197, - "y": -120.05684443882512, - "width": 112.173583984375, - "height": 99.90460205078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1328955619, - "version": 658, - "versionNonce": 775894755, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - 0.8763427734375 - ], - [ - -5.25811767578125, - 1.752685546875 - ], - [ - -11.392578125, - 2.6290283203125 - ], - [ - -17.527099609375, - 3.50543212890625 - ], - [ - -24.5379638671875, - 5.25811767578125 - ], - [ - -30.67242431640625, - 7.01080322265625 - ], - [ - -32.4251708984375, - 7.01080322265625 - ], - [ - -32.4251708984375, - 8.7635498046875 - ], - [ - -28.91973876953125, - 14.02166748046875 - ], - [ - -16.6507568359375, - 27.1669921875 - ], - [ - -5.25811767578125, - 37.68328857421875 - ], - [ - 8.76361083984375, - 52.58135986328125 - ], - [ - 28.04339599609375, - 68.35577392578125 - ], - [ - 59.59222412109375, - 88.511962890625 - ], - [ - 72.73760986328125, - 96.399169921875 - ], - [ - 78.8720703125, - 99.90460205078125 - ], - [ - 79.7484130859375, - 99.0281982421875 - ], - [ - 75.36663818359375, - 92.89373779296875 - ], - [ - 72.73760986328125, - 91.14105224609375 - ], - [ - 72.73760986328125, - 91.14105224609375 - ] - ], - "pressures": [ - 0.0361328125, - 0.2392578125, - 0.4453125, - 0.6904296875, - 0.857421875, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8369140625, - 0.6220703125, - 0.384765625, - 0.19140625, - 0.134765625, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 72.73760986328125, - 91.14105224609375 - ] - }, - { - "id": "jGG7fKZwlnGQ8hZPKBkNW", - "type": "freedraw", - "x": -170.3458469935822, - "y": -113.92238398960637, - "width": 92.01739501953125, - "height": 84.13018798828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1356425955, - "version": 656, - "versionNonce": 1100897485, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.134521484375, - -0.8763427734375 - ], - [ - -10.51629638671875, - -0.8763427734375 - ], - [ - -15.7744140625, - -0.8763427734375 - ], - [ - -21.03253173828125, - 0 - ], - [ - -25.41436767578125, - 0.8763427734375 - ], - [ - -27.16705322265625, - 1.75274658203125 - ], - [ - -27.16705322265625, - 4.38177490234375 - ], - [ - -25.41436767578125, - 11.39263916015625 - ], - [ - -16.6507568359375, - 23.66168212890625 - ], - [ - -5.2581787109375, - 35.93060302734375 - ], - [ - 11.39263916015625, - 50.82867431640625 - ], - [ - 22.78521728515625, - 57.83953857421875 - ], - [ - 35.05426025390625, - 65.72674560546875 - ], - [ - 53.45770263671875, - 77.11932373046875 - ], - [ - 62.22125244140625, - 82.37750244140625 - ], - [ - 64.850341796875, - 83.25384521484375 - ], - [ - 63.9739990234375, - 83.25384521484375 - ], - [ - 63.9739990234375, - 83.25384521484375 - ] - ], - "pressures": [ - 0.0615234375, - 0.4375, - 0.66796875, - 0.8916015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5849609375, - 0.2236328125, - 0.1572265625, - 0.0361328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 63.9739990234375, - 83.25384521484375 - ] - }, - { - "id": "2Le-ahzslYIn_fY_KW84T", - "type": "freedraw", - "x": -185.2439182826447, - "y": -118.30415889195012, - "width": 130.57708740234375, - "height": 107.791748046875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1796879683, - "version": 654, - "versionNonce": 1939628675, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.0108642578125, - -2.6290283203125 - ], - [ - -13.14532470703125, - -0.8763427734375 - ], - [ - -16.6507568359375, - 0.8763427734375 - ], - [ - -20.15618896484375, - 1.75274658203125 - ], - [ - -22.7852783203125, - 3.50543212890625 - ], - [ - -23.66162109375, - 9.639892578125 - ], - [ - -14.02166748046875, - 28.91973876953125 - ], - [ - -5.25811767578125, - 40.3123779296875 - ], - [ - 4.38177490234375, - 50.82867431640625 - ], - [ - 20.15618896484375, - 63.9739990234375 - ], - [ - 57.8394775390625, - 86.75927734375 - ], - [ - 81.5010986328125, - 98.15191650390625 - ], - [ - 97.2755126953125, - 103.4100341796875 - ], - [ - 106.91546630859375, - 105.1627197265625 - ], - [ - 105.16278076171875, - 102.53369140625 - ], - [ - 105.16278076171875, - 102.53369140625 - ] - ], - "pressures": [ - 0.0029296875, - 0.46875, - 0.73828125, - 0.828125, - 0.8935546875, - 0.970703125, - 0.9833984375, - 1, - 1, - 1, - 1, - 0.96484375, - 0.6513671875, - 0.2470703125, - 0.1142578125, - 0.0048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 105.16278076171875, - 102.53369140625 - ] - }, - { - "id": "Wb8RQCZJWJYErDGYy8QMR", - "type": "freedraw", - "x": -139.6733616420197, - "y": -110.41695186070012, - "width": 77.11932373046875, - "height": 77.9957275390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 666338307, - "version": 673, - "versionNonce": 1823685421, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -1.75274658203125 - ], - [ - -7.88720703125, - -3.50543212890625 - ], - [ - -13.14532470703125, - -5.2581787109375 - ], - [ - -21.03253173828125, - -7.88720703125 - ], - [ - -25.414306640625, - -7.88720703125 - ], - [ - -28.04339599609375, - -7.0108642578125 - ], - [ - -28.91973876953125, - -2.62908935546875 - ], - [ - -28.91973876953125, - 1.752685546875 - ], - [ - -26.29071044921875, - 7.01080322265625 - ], - [ - -21.908935546875, - 14.89801025390625 - ], - [ - -15.7744140625, - 24.5379638671875 - ], - [ - -2.62908935546875, - 39.43603515625 - ], - [ - 8.7635498046875, - 49.075927734375 - ], - [ - 24.5379638671875, - 59.5921630859375 - ], - [ - 36.80694580078125, - 66.60302734375 - ], - [ - 44.69415283203125, - 70.1085205078125 - ], - [ - 46.44683837890625, - 70.1085205078125 - ], - [ - 48.1995849609375, - 70.1085205078125 - ], - [ - 48.1995849609375, - 70.1085205078125 - ] - ], - "pressures": [ - 0.0693359375, - 0.8115234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.822265625, - 0.3515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.1995849609375, - 70.1085205078125 - ] - }, - { - "id": "S5ogmb4YsptTvaNlDYH2o", - "type": "freedraw", - "x": -173.85127912248845, - "y": -81.49715205601262, - "width": 71.8612060546875, - "height": 50.82861328125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1611214189, - "version": 651, - "versionNonce": 1469258275, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.38177490234375, - 7.01080322265625 - ], - [ - 15.7744140625, - 19.27978515625 - ], - [ - 29.796142578125, - 29.79608154296875 - ], - [ - 43.81781005859375, - 39.43603515625 - ], - [ - 56.0867919921875, - 46.44683837890625 - ], - [ - 68.35577392578125, - 50.82861328125 - ], - [ - 71.8612060546875, - 50.82861328125 - ], - [ - 71.8612060546875, - 49.9522705078125 - ], - [ - 70.98486328125, - 48.1995849609375 - ], - [ - 70.98486328125, - 48.1995849609375 - ] - ], - "pressures": [ - 0.0732421875, - 0.62890625, - 0.9384765625, - 1, - 1, - 1, - 0.880859375, - 0.5, - 0.1767578125, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.98486328125, - 48.1995849609375 - ] - }, - { - "id": "GQLeZkPFPG_W_NJJRby9v", - "type": "freedraw", - "x": -137.0443333217072, - "y": -42.937520708356374, - "width": 53.45770263671875, - "height": 20.15618896484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1174763437, - "version": 653, - "versionNonce": 1918717325, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.38177490234375, - 3.50543212890625 - ], - [ - 14.021728515625, - 7.0108642578125 - ], - [ - 20.15618896484375, - 7.88720703125 - ], - [ - 26.29071044921875, - 8.7635498046875 - ], - [ - 34.17791748046875, - 8.7635498046875 - ], - [ - 44.69415283203125, - 5.2581787109375 - ], - [ - 49.9522705078125, - 2.6290283203125 - ], - [ - 52.58135986328125, - 0 - ], - [ - 53.45770263671875, - -2.62908935546875 - ], - [ - 52.58135986328125, - -5.25811767578125 - ], - [ - 49.075927734375, - -7.88714599609375 - ], - [ - 45.57049560546875, - -10.51629638671875 - ], - [ - 42.06512451171875, - -11.39263916015625 - ], - [ - 41.188720703125, - -11.39263916015625 - ], - [ - 40.3123779296875, - -11.39263916015625 - ], - [ - 40.3123779296875, - -11.39263916015625 - ] - ], - "pressures": [ - 0.1220703125, - 0.8388671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.849609375, - 0.54296875, - 0.3359375, - 0.2314453125, - 0.2060546875, - 0.162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 40.3123779296875, - -11.39263916015625 - ] - }, - { - "id": "EzduYdn5w9Ei3yj9DKn1n", - "type": "freedraw", - "x": -105.55484327552622, - "y": -58.78338278223386, - "width": 56.73145744051368, - "height": 26.59283594834787, - "angle": 0.19228237512869928, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1223028749, - "version": 751, - "versionNonce": 1729224131, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0.41298882475715903, - 0 - ], - [ - 3.958712631876582, - 0.8863537809066837 - ], - [ - 7.504498175694537, - 3.5456620704208857 - ], - [ - 11.93657576372064, - 7.0913858775403105 - ], - [ - 16.368776825143822, - 11.523525202264956 - ], - [ - 19.914438895564714, - 15.069187272685838 - ], - [ - 20.80085441316993, - 16.84208004459483 - ], - [ - 18.141607860354267, - 19.501388334109027 - ], - [ - 13.70940679893108, - 22.16069662362322 - ], - [ - 7.504498175694537, - 24.819943176438887 - ], - [ - 1.2994043423623776, - 26.59283594834787 - ], - [ - -10.224120859902566, - 25.706358694044116 - ], - [ - -19.088461246050386, - 22.16069662362322 - ], - [ - -26.179847123590697, - 19.501388334109027 - ], - [ - -30.611986448315335, - 17.728557298898576 - ], - [ - -33.271294737829535, - 16.84208004459483 - ], - [ - -35.04412577303998, - 15.95566452698959 - ], - [ - -35.93060302734375, - 15.95566452698959 - ], - [ - -35.04412577303998, - 16.84208004459483 - ], - [ - -33.271294737829535, - 17.728557298898576 - ], - [ - -32.384879220224306, - 17.728557298898576 - ], - [ - -31.49846370261909, - 17.728557298898576 - ], - [ - -31.49846370261909, - 17.728557298898576 - ] - ], - "pressures": [ - 0.17578125, - 0.5888671875, - 0.880859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.185546875, - 0.109375, - 0.0771484375, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -31.548828125, - 17.527099609375 - ] - }, - { - "id": "ScrH5tT0m0ISd9WZD4WKw", - "type": "freedraw", - "x": -117.76448713030095, - "y": -123.56227656773137, - "width": 66.60302734375, - "height": 87.6356201171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1834411149, - "version": 644, - "versionNonce": 836113389, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - 3.50543212890625 - ], - [ - 9.639892578125, - 15.77447509765625 - ], - [ - 17.527099609375, - 28.9197998046875 - ], - [ - 28.04339599609375, - 46.4468994140625 - ], - [ - 38.5596923828125, - 62.22125244140625 - ], - [ - 52.581298828125, - 77.119384765625 - ], - [ - 58.7158203125, - 83.2537841796875 - ], - [ - 63.09765625, - 86.75921630859375 - ], - [ - 65.7266845703125, - 87.6356201171875 - ], - [ - 66.60302734375, - 87.6356201171875 - ], - [ - 65.7266845703125, - 85.00653076171875 - ], - [ - 64.850341796875, - 84.13018798828125 - ], - [ - 64.850341796875, - 84.13018798828125 - ] - ], - "pressures": [ - 0.0849609375, - 0.609375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.853515625, - 0.6015625, - 0.142578125, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 64.850341796875, - 84.13018798828125 - ] - }, - { - "id": "kV9YLS-7rYzT2XkBeQcZe", - "type": "freedraw", - "x": -122.1462620326447, - "y": -118.30415889195012, - "width": 69.23211669921875, - "height": 84.13018798828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 917414083, - "version": 645, - "versionNonce": 221719907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.88720703125, - 8.7635498046875 - ], - [ - 15.7744140625, - 17.527099609375 - ], - [ - 22.78521728515625, - 28.91973876953125 - ], - [ - 30.67242431640625, - 42.06512451171875 - ], - [ - 41.18878173828125, - 54.3341064453125 - ], - [ - 56.08673095703125, - 70.98486328125 - ], - [ - 63.09759521484375, - 77.99566650390625 - ], - [ - 66.60308837890625, - 82.37750244140625 - ], - [ - 68.35577392578125, - 83.25384521484375 - ], - [ - 69.23211669921875, - 84.13018798828125 - ], - [ - 69.23211669921875, - 82.37750244140625 - ], - [ - 68.35577392578125, - 79.7484130859375 - ], - [ - 67.47943115234375, - 77.99566650390625 - ], - [ - 67.47943115234375, - 77.99566650390625 - ] - ], - "pressures": [ - 0.0556640625, - 0.435546875, - 0.66796875, - 0.857421875, - 1, - 1, - 1, - 1, - 1, - 0.904296875, - 0.537109375, - 0.197265625, - 0.1083984375, - 0.0361328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 67.47943115234375, - 77.99566650390625 - ] - }, - { - "id": "A-dBY_Nka4wMnJB9PELs3", - "type": "freedraw", - "x": -116.88814435686345, - "y": -113.04604121616887, - "width": 60.4686279296875, - "height": 80.624755859375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 488618595, - "version": 643, - "versionNonce": 1730612813, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 6.134521484375, - 11.39263916015625 - ], - [ - 19.27984619140625, - 31.54888916015625 - ], - [ - 27.16705322265625, - 44.6942138671875 - ], - [ - 35.05419921875, - 55.21044921875 - ], - [ - 42.0650634765625, - 63.09765625 - ], - [ - 49.9522705078125, - 72.737548828125 - ], - [ - 55.21044921875, - 77.119384765625 - ], - [ - 57.8394775390625, - 79.74847412109375 - ], - [ - 60.4686279296875, - 80.624755859375 - ], - [ - 60.4686279296875, - 79.74847412109375 - ], - [ - 60.4686279296875, - 78.8720703125 - ], - [ - 60.4686279296875, - 78.8720703125 - ] - ], - "pressures": [ - 0.1298828125, - 0.6826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6806640625, - 0.2919921875, - 0.115234375, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.4686279296875, - 78.8720703125 - ] - }, - { - "id": "ZSRJcKV_5D-4LhJWmYO2k", - "type": "freedraw", - "x": -107.24825177873845, - "y": -116.55141230991887, - "width": 63.09765625, - "height": 84.130126953125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 13100131, - "version": 644, - "versionNonce": 1297189123, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 1.752685546875 - ], - [ - -0.8763427734375, - 7.01080322265625 - ], - [ - 6.134521484375, - 21.03253173828125 - ], - [ - 14.021728515625, - 34.1778564453125 - ], - [ - 23.66162109375, - 48.1995849609375 - ], - [ - 37.683349609375, - 66.60302734375 - ], - [ - 45.570556640625, - 75.3665771484375 - ], - [ - 50.8287353515625, - 80.624755859375 - ], - [ - 54.3341064453125, - 83.25384521484375 - ], - [ - 56.0867919921875, - 84.130126953125 - ], - [ - 59.59228515625, - 84.130126953125 - ], - [ - 61.344970703125, - 84.130126953125 - ], - [ - 61.344970703125, - 84.130126953125 - ] - ], - "pressures": [ - 0.0224609375, - 0.515625, - 0.669921875, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 0.966796875, - 0.669921875, - 0.259765625, - 0.140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.344970703125, - 84.130126953125 - ] - }, - { - "id": "zN3IXxkZlGkskphBJtT5s", - "type": "freedraw", - "x": -111.6300266810822, - "y": -115.67506953648137, - "width": 66.60308837890625, - "height": 92.89373779296875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1193065805, - "version": 643, - "versionNonce": 287947949, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - 5.25811767578125 - ], - [ - 8.76361083984375, - 14.89801025390625 - ], - [ - 15.7744140625, - 27.1669921875 - ], - [ - 24.5379638671875, - 41.188720703125 - ], - [ - 33.30157470703125, - 53.45770263671875 - ], - [ - 45.57049560546875, - 70.98480224609375 - ], - [ - 52.58135986328125, - 81.5010986328125 - ], - [ - 58.71588134765625, - 88.511962890625 - ], - [ - 62.22125244140625, - 92.01739501953125 - ], - [ - 66.60308837890625, - 92.89373779296875 - ], - [ - 66.60308837890625, - 92.01739501953125 - ], - [ - 66.60308837890625, - 92.01739501953125 - ] - ], - "pressures": [ - 0.091796875, - 0.34765625, - 0.5341796875, - 0.751953125, - 0.92578125, - 1, - 0.986328125, - 0.9560546875, - 0.8369140625, - 0.6181640625, - 0.1767578125, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.60308837890625, - 92.01739501953125 - ] - }, - { - "id": "7SgiGMj39lRUjflfLgU6R", - "type": "freedraw", - "x": -109.87728009905095, - "y": -118.30415889195012, - "width": 59.59222412109375, - "height": 82.37750244140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 214709069, - "version": 643, - "versionNonce": 1021276323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558539, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 3.50543212890625 - ], - [ - 0, - 8.7635498046875 - ], - [ - 5.25811767578125, - 19.2799072265625 - ], - [ - 14.02166748046875, - 34.17791748046875 - ], - [ - 25.414306640625, - 49.075927734375 - ], - [ - 42.0650634765625, - 66.60308837890625 - ], - [ - 49.9522705078125, - 74.49029541015625 - ], - [ - 55.21044921875, - 79.7484130859375 - ], - [ - 57.8394775390625, - 82.37750244140625 - ], - [ - 57.8394775390625, - 81.5010986328125 - ], - [ - 57.8394775390625, - 80.62481689453125 - ], - [ - 57.8394775390625, - 80.62481689453125 - ] - ], - "pressures": [ - 0.0673828125, - 0.328125, - 0.3701171875, - 0.5, - 0.6865234375, - 0.7890625, - 0.7890625, - 0.744140625, - 0.6591796875, - 0.458984375, - 0.1669921875, - 0.0654296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.8394775390625, - 80.62481689453125 - ] - }, - { - "id": "x-ccOBMPcGRlqfLpg1tas", - "type": "freedraw", - "x": -122.1176298949522, - "y": -112.65184629148654, - "width": 63.82290505475253, - "height": 84.21077064316532, - "angle": 0.19228237512869928, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1685039437, - "version": 736, - "versionNonce": 394764045, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0.010072744167721304, - 0 - ], - [ - -0.8763427734375, - 4.432201061423181 - ], - [ - 0.8964882617729423, - 9.750694167054512 - ], - [ - 6.215043104102806, - 18.61497281650381 - ], - [ - 11.533659683131205, - 30.138559755467295 - ], - [ - 17.738630043066298, - 40.775731176825566 - ], - [ - 30.148694236333547, - 57.61793469481748 - ], - [ - 39.01297288578285, - 67.36856712517347 - ], - [ - 46.99083601762689, - 75.34649199371603 - ], - [ - 56.74153018468136, - 82.43787787125633 - ], - [ - 60.28719225510227, - 84.21077064316532 - ], - [ - 62.94656228131503, - 84.21077064316532 - ], - [ - 62.94656228131503, - 84.21077064316532 - ] - ], - "pressures": [ - 0.087890625, - 0.26953125, - 0.3525390625, - 0.478515625, - 0.677734375, - 0.794921875, - 0.8388671875, - 0.8388671875, - 0.78515625, - 0.5595703125, - 0.3447265625, - 0.1748046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.2213134765625, - 83.25384521484375 - ] - }, - { - "id": "_gmRo7sH967HBOfDL0NsR", - "type": "freedraw", - "x": -112.5063694545197, - "y": -37.679341997418874, - "width": 55.21038818359375, - "height": 50.82861328125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 114725357, - "version": 640, - "versionNonce": 1032807491, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - -1.75274658203125 - ], - [ - 0.8763427734375, - 2.6290283203125 - ], - [ - 9.63995361328125, - 12.2689208984375 - ], - [ - 19.27984619140625, - 23.66156005859375 - ], - [ - 31.54888916015625, - 37.6832275390625 - ], - [ - 38.55963134765625, - 43.81781005859375 - ], - [ - 42.06512451171875, - 47.32318115234375 - ], - [ - 44.69415283203125, - 49.07586669921875 - ], - [ - 48.19964599609375, - 49.07586669921875 - ], - [ - 52.58135986328125, - 49.07586669921875 - ], - [ - 52.58135986328125, - 49.07586669921875 - ] - ], - "pressures": [ - 0.0087890625, - 0.349609375, - 0.56640625, - 0.6240234375, - 0.716796875, - 0.7587890625, - 0.751953125, - 0.703125, - 0.546875, - 0.3046875, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 52.58135986328125, - 49.07586669921875 - ] - }, - { - "id": "5_mIMviDCqDEywoQSe-u2", - "type": "freedraw", - "x": -118.64082990373845, - "y": -33.297567095075124, - "width": 106.9154052734375, - "height": 39.43603515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 839701261, - "version": 640, - "versionNonce": 817509741, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50543212890625, - 0.87628173828125 - ], - [ - 15.7744140625, - 8.7635498046875 - ], - [ - 34.1778564453125, - 19.27978515625 - ], - [ - 62.2213134765625, - 31.54876708984375 - ], - [ - 77.1192626953125, - 35.9305419921875 - ], - [ - 89.3883056640625, - 38.55963134765625 - ], - [ - 98.15185546875, - 39.43603515625 - ], - [ - 106.9154052734375, - 38.55963134765625 - ], - [ - 106.9154052734375, - 37.68328857421875 - ], - [ - 106.0390625, - 37.68328857421875 - ], - [ - 106.0390625, - 37.68328857421875 - ] - ], - "pressures": [ - 0.099609375, - 0.40234375, - 0.66015625, - 0.953125, - 1, - 1, - 1, - 0.732421875, - 0.2265625, - 0.1376953125, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 106.0390625, - 37.68328857421875 - ] - }, - { - "id": "tr15upmvg0teGDx3BOuoA", - "type": "freedraw", - "x": -66.93587384905095, - "y": -36.803060259137624, - "width": 64.850341796875, - "height": 12.26898193359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1801789955, - "version": 639, - "versionNonce": 2000675811, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.3818359375, - -0.87628173828125 - ], - [ - 14.8980712890625, - -0.87628173828125 - ], - [ - 25.414306640625, - -0.87628173828125 - ], - [ - 42.9415283203125, - -3.50543212890625 - ], - [ - 53.457763671875, - -7.01080322265625 - ], - [ - 61.344970703125, - -8.7635498046875 - ], - [ - 63.9739990234375, - -9.63983154296875 - ], - [ - 64.850341796875, - -9.63983154296875 - ], - [ - 61.344970703125, - -11.392578125 - ], - [ - 60.4686279296875, - -12.26898193359375 - ], - [ - 60.4686279296875, - -12.26898193359375 - ] - ], - "pressures": [ - 0.1044921875, - 0.6201171875, - 0.9423828125, - 1, - 1, - 1, - 1, - 0.9384765625, - 0.6806640625, - 0.166015625, - 0.0791015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 60.4686279296875, - -12.26898193359375 - ] - }, - { - "id": "lAI7vWGE2OTTW45EHmp66", - "type": "freedraw", - "x": -54.66683088030095, - "y": -41.184835161481374, - "width": 71.8612060546875, - "height": 54.33404541015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 831180269, - "version": 652, - "versionNonce": 134938573, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 14.8980712890625, - 0 - ], - [ - 21.9088134765625, - -0.87628173828125 - ], - [ - 30.6724853515625, - -1.752685546875 - ], - [ - 40.3123779296875, - -1.752685546875 - ], - [ - 54.3341064453125, - -0.87628173828125 - ], - [ - 60.468505859375, - 0 - ], - [ - 64.850341796875, - 2.62908935546875 - ], - [ - 68.355712890625, - 6.134521484375 - ], - [ - 70.98486328125, - 10.51629638671875 - ], - [ - 71.8612060546875, - 18.40350341796875 - ], - [ - 71.8612060546875, - 24.5379638671875 - ], - [ - 70.1083984375, - 30.6724853515625 - ], - [ - 65.7266845703125, - 35.93060302734375 - ], - [ - 56.0867919921875, - 42.06512451171875 - ], - [ - 49.075927734375, - 45.570556640625 - ], - [ - 42.0650634765625, - 48.1995849609375 - ], - [ - 36.806884765625, - 50.82867431640625 - ], - [ - 33.301513671875, - 51.705078125 - ], - [ - 29.7960205078125, - 52.58135986328125 - ], - [ - 28.919677734375, - 52.58135986328125 - ], - [ - 28.0433349609375, - 52.58135986328125 - ], - [ - 28.0433349609375, - 51.705078125 - ], - [ - 29.7960205078125, - 50.82867431640625 - ], - [ - 29.7960205078125, - 49.95233154296875 - ], - [ - 29.7960205078125, - 49.95233154296875 - ] - ], - "pressures": [ - 0.1064453125, - 0.27734375, - 0.34765625, - 0.4248046875, - 0.5087890625, - 0.537109375, - 0.5380859375, - 0.5380859375, - 0.5263671875, - 0.4990234375, - 0.46875, - 0.46875, - 0.48046875, - 0.4921875, - 0.4990234375, - 0.50390625, - 0.5068359375, - 0.50390625, - 0.4765625, - 0.435546875, - 0.400390625, - 0.3544921875, - 0.158203125, - 0.0576171875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 29.7960205078125, - 49.95233154296875 - ] - }, - { - "id": "Y7sjEisxX8BxkbdYPzMZg", - "type": "freedraw", - "x": -126.52803693498845, - "y": -37.679341997418874, - "width": 78.87200927734375, - "height": 36.8070068359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 944834947, - "version": 638, - "versionNonce": 301952899, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - -2.629150390625 - ], - [ - 0, - -1.75274658203125 - ], - [ - 8.7635498046875, - 5.258056640625 - ], - [ - 27.1669921875, - 18.4034423828125 - ], - [ - 38.55963134765625, - 26.29071044921875 - ], - [ - 49.075927734375, - 30.6724853515625 - ], - [ - 57.8394775390625, - 33.30145263671875 - ], - [ - 69.2320556640625, - 34.1778564453125 - ], - [ - 73.6138916015625, - 34.1778564453125 - ], - [ - 76.242919921875, - 34.1778564453125 - ], - [ - 76.242919921875, - 32.42510986328125 - ], - [ - 74.490234375, - 31.54876708984375 - ], - [ - 74.490234375, - 31.54876708984375 - ] - ], - "pressures": [ - 0.00390625, - 0.25390625, - 0.8408203125, - 1, - 1, - 1, - 1, - 1, - 0.673828125, - 0.3798828125, - 0.1962890625, - 0.1171875, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 74.490234375, - 31.54876708984375 - ] - }, - { - "id": "KXqu7pVPZdq4mprG3kOz3", - "type": "freedraw", - "x": -116.01180158342595, - "y": -34.173970903668874, - "width": 74.490234375, - "height": 12.26898193359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 770127171, - "version": 626, - "versionNonce": 596868653, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 74.490234375, - 12.26898193359375 - ] - ], - "pressures": [ - 0.1318359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 74.490234375, - 12.26898193359375 - ] - }, - { - "id": "0zdnh9X28wcXHGxRRas5_", - "type": "freedraw", - "x": -184.3675755092072, - "y": -109.54060908726262, - "width": 60.46856689453125, - "height": 51.705078125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 625027405, - "version": 644, - "versionNonce": 806127395, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - 0 - ], - [ - -4.38177490234375, - -0.8763427734375 - ], - [ - -7.88720703125, - -0.8763427734375 - ], - [ - -14.89801025390625, - -1.752685546875 - ], - [ - -18.4034423828125, - -1.752685546875 - ], - [ - -21.03253173828125, - -1.752685546875 - ], - [ - -22.78521728515625, - -1.752685546875 - ], - [ - -23.66162109375, - -0.8763427734375 - ], - [ - -23.66162109375, - 2.62908935546875 - ], - [ - -21.03253173828125, - 7.0108642578125 - ], - [ - -13.14532470703125, - 14.021728515625 - ], - [ - -0.8763427734375, - 26.29071044921875 - ], - [ - 18.40350341796875, - 42.94146728515625 - ], - [ - 26.29071044921875, - 47.3232421875 - ], - [ - 31.548828125, - 49.075927734375 - ], - [ - 35.05426025390625, - 49.952392578125 - ], - [ - 36.80694580078125, - 49.952392578125 - ], - [ - 34.17791748046875, - 46.4468994140625 - ], - [ - 31.548828125, - 43.81781005859375 - ], - [ - 31.548828125, - 43.81781005859375 - ] - ], - "pressures": [ - 0.064453125, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.23828125, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.548828125, - 43.81781005859375 - ] - }, - { - "id": "PCTrNcIpgwbKeTUpE1DMU", - "type": "freedraw", - "x": -156.32417951311345, - "y": -57.835591997418874, - "width": 55.21044921875, - "height": 14.021728515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1405045219, - "version": 638, - "versionNonce": 171782285, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 4.38177490234375 - ], - [ - 2.62908935546875, - 6.134521484375 - ], - [ - 9.63995361328125, - 8.7635498046875 - ], - [ - 16.6507568359375, - 9.63995361328125 - ], - [ - 25.41436767578125, - 9.63995361328125 - ], - [ - 33.30157470703125, - 9.63995361328125 - ], - [ - 42.94146728515625, - 7.01092529296875 - ], - [ - 46.4468994140625, - 5.25811767578125 - ], - [ - 49.075927734375, - 4.38177490234375 - ], - [ - 51.70501708984375, - 3.50543212890625 - ], - [ - 55.21044921875, - 2.629150390625 - ], - [ - 55.21044921875, - 1.75274658203125 - ], - [ - 55.21044921875, - 0.8763427734375 - ], - [ - 52.58135986328125, - -0.8763427734375 - ], - [ - 48.1995849609375, - -2.62908935546875 - ], - [ - 42.06512451171875, - -4.38177490234375 - ], - [ - 42.06512451171875, - -4.38177490234375 - ] - ], - "pressures": [ - 0.12890625, - 0.380859375, - 0.537109375, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.853515625, - 0.484375, - 0.2451171875, - 0.1494140625, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.06512451171875, - -4.38177490234375 - ] - }, - { - "id": "_U1uiWiGA59rXGkWFPF0w", - "type": "freedraw", - "x": -142.30245099748845, - "y": -49.948384966168874, - "width": 49.9522705078125, - "height": 24.5379638671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 204374925, - "version": 636, - "versionNonce": 668314307, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 13.14532470703125, - 7.0108642578125 - ], - [ - 21.90887451171875, - 9.639892578125 - ], - [ - 29.79608154296875, - 10.51629638671875 - ], - [ - 36.80694580078125, - 9.639892578125 - ], - [ - 45.57049560546875, - 6.134521484375 - ], - [ - 48.1995849609375, - 3.5054931640625 - ], - [ - 49.9522705078125, - 0 - ], - [ - 49.9522705078125, - -3.50543212890625 - ], - [ - 49.9522705078125, - -7.0108642578125 - ], - [ - 49.075927734375, - -10.51629638671875 - ], - [ - 47.3232421875, - -12.26898193359375 - ], - [ - 44.69415283203125, - -13.14532470703125 - ], - [ - 42.0650634765625, - -13.14532470703125 - ], - [ - 39.43603515625, - -14.02166748046875 - ], - [ - 39.43603515625, - -14.02166748046875 - ] - ], - "pressures": [ - 0.08984375, - 0.87890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.576171875, - 0.3623046875, - 0.2392578125, - 0.15234375, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.43603515625, - -14.02166748046875 - ] - }, - { - "id": "YApEtsdu62wisyrMOJcTV", - "type": "freedraw", - "x": -134.41524396623845, - "y": -47.319295610700124, - "width": 50.82867431640625, - "height": 14.8980712890625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2096328291, - "version": 638, - "versionNonce": 700552941, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.62908935546875, - 0 - ], - [ - -1.75274658203125, - 0.87640380859375 - ], - [ - 4.38177490234375, - 2.6290283203125 - ], - [ - 9.639892578125, - 3.50543212890625 - ], - [ - 14.89801025390625, - 4.38177490234375 - ], - [ - 21.90887451171875, - 4.38177490234375 - ], - [ - 31.548828125, - 3.50543212890625 - ], - [ - 37.68328857421875, - 1.752685546875 - ], - [ - 42.0650634765625, - 0 - ], - [ - 44.69415283203125, - -0.8763427734375 - ], - [ - 46.44683837890625, - -1.75274658203125 - ], - [ - 47.32318115234375, - -3.50537109375 - ], - [ - 48.1995849609375, - -7.0108642578125 - ], - [ - 47.32318115234375, - -8.7635498046875 - ], - [ - 44.69415283203125, - -9.63995361328125 - ], - [ - 42.94140625, - -10.51629638671875 - ], - [ - 42.94140625, - -10.51629638671875 - ] - ], - "pressures": [ - 0.056640625, - 0.4228515625, - 0.5615234375, - 0.8203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.828125, - 0.470703125, - 0.2783203125, - 0.1494140625, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.94140625, - -10.51629638671875 - ] - }, - { - "id": "s__q7uc-5ODBjBFUnfNgR", - "type": "freedraw", - "x": -108.12459455217595, - "y": -113.92238398960637, - "width": 27.1671142578125, - "height": 73.6138916015625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 251865315, - "version": 632, - "versionNonce": 2113493603, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - -2.6290283203125 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - 0.8763427734375, - 5.25811767578125 - ], - [ - 4.38177490234375, - 14.021728515625 - ], - [ - 8.7635498046875, - 25.414306640625 - ], - [ - 13.1453857421875, - 36.8070068359375 - ], - [ - 19.27984619140625, - 53.45770263671875 - ], - [ - 22.7852783203125, - 62.2213134765625 - ], - [ - 25.414306640625, - 67.4794921875 - ], - [ - 27.1671142578125, - 70.1085205078125 - ], - [ - 27.1671142578125, - 70.98486328125 - ], - [ - 27.1671142578125, - 70.1085205078125 - ], - [ - 27.1671142578125, - 68.35577392578125 - ], - [ - 27.1671142578125, - 68.35577392578125 - ] - ], - "pressures": [ - 0.009765625, - 0.2255859375, - 0.380859375, - 0.6806640625, - 0.884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.732421875, - 0.171875, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.1671142578125, - 68.35577392578125 - ] - }, - { - "id": "Lo1r7OPFBnjYs9Qf6O853", - "type": "freedraw", - "x": -104.6191624232697, - "y": -113.04604121616887, - "width": 23.66168212890625, - "height": 71.8612060546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1360414403, - "version": 633, - "versionNonce": 2091528525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 2.62908935546875 - ], - [ - 3.50543212890625, - 16.65081787109375 - ], - [ - 5.25811767578125, - 21.908935546875 - ], - [ - 7.88720703125, - 32.4251708984375 - ], - [ - 9.63995361328125, - 41.18878173828125 - ], - [ - 12.26898193359375, - 49.07598876953125 - ], - [ - 16.6507568359375, - 58.71588134765625 - ], - [ - 19.27984619140625, - 63.9739990234375 - ], - [ - 21.03253173828125, - 67.47943115234375 - ], - [ - 22.78521728515625, - 70.1085205078125 - ], - [ - 23.66168212890625, - 70.98492431640625 - ], - [ - 23.66168212890625, - 71.8612060546875 - ], - [ - 23.66168212890625, - 69.232177734375 - ], - [ - 23.66168212890625, - 67.47943115234375 - ], - [ - 23.66168212890625, - 67.47943115234375 - ] - ], - "pressures": [ - 0.0947265625, - 0.796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6533203125, - 0.1689453125, - 0.0263671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.66168212890625, - 67.47943115234375 - ] - }, - { - "id": "yPQ2nLIjA-hQWcA4q3HcD", - "type": "freedraw", - "x": -107.24825177873845, - "y": -105.15883418491887, - "width": 24.5379638671875, - "height": 61.344970703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1451949837, - "version": 630, - "versionNonce": 524686851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 7.0108642578125 - ], - [ - 1.75274658203125, - 14.021728515625 - ], - [ - 5.2581787109375, - 22.7852783203125 - ], - [ - 8.76361083984375, - 30.6724853515625 - ], - [ - 14.021728515625, - 45.57061767578125 - ], - [ - 18.40350341796875, - 54.33416748046875 - ], - [ - 21.908935546875, - 59.59222412109375 - ], - [ - 23.66162109375, - 61.344970703125 - ], - [ - 23.66162109375, - 60.46856689453125 - ], - [ - 22.7852783203125, - 59.59222412109375 - ], - [ - 22.7852783203125, - 58.7159423828125 - ], - [ - 22.7852783203125, - 58.7159423828125 - ] - ], - "pressures": [ - 0.044921875, - 0.85546875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8916015625, - 0.212890625, - 0.0986328125, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.7852783203125, - 58.7159423828125 - ] - }, - { - "id": "phjYYGZjzl1X4Z30z3QPu", - "type": "freedraw", - "x": -160.7059544154572, - "y": -147.22383662632512, - "width": 32.4251708984375, - "height": 42.06512451171875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 884946125, - "version": 637, - "versionNonce": 1884323757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - -1.7528076171875 - ], - [ - 1.75274658203125, - 0.87628173828125 - ], - [ - 0, - 7.01080322265625 - ], - [ - -3.50543212890625, - 21.032470703125 - ], - [ - -6.13446044921875, - 30.67242431640625 - ], - [ - -7.88720703125, - 36.806884765625 - ], - [ - -8.7635498046875, - 39.43603515625 - ], - [ - -8.7635498046875, - 40.31231689453125 - ], - [ - -7.88720703125, - 40.31231689453125 - ], - [ - -5.25811767578125, - 40.31231689453125 - ], - [ - -1.752685546875, - 40.31231689453125 - ], - [ - 2.62908935546875, - 39.43603515625 - ], - [ - 7.88720703125, - 37.6832275390625 - ], - [ - 14.8980712890625, - 35.05419921875 - ], - [ - 18.40350341796875, - 34.17779541015625 - ], - [ - 21.03253173828125, - 34.17779541015625 - ], - [ - 22.7852783203125, - 34.17779541015625 - ], - [ - 23.66162109375, - 34.17779541015625 - ], - [ - 23.66162109375, - 33.30145263671875 - ], - [ - 22.7852783203125, - 32.42510986328125 - ], - [ - 22.7852783203125, - 32.42510986328125 - ] - ], - "pressures": [ - 0.0087890625, - 0.203125, - 0.572265625, - 0.677734375, - 0.822265625, - 0.8828125, - 0.9150390625, - 0.951171875, - 0.970703125, - 0.9755859375, - 0.970703125, - 0.9921875, - 1, - 1, - 1, - 1, - 0.931640625, - 0.720703125, - 0.55078125, - 0.19921875, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.7852783203125, - 32.42510986328125 - ] - }, - { - "id": "Kd_IZzkZNNbzYq0OGw71f", - "type": "freedraw", - "x": -151.9424046107697, - "y": -141.96577998570012, - "width": 27.16705322265625, - "height": 31.54876708984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1672220291, - "version": 639, - "versionNonce": 1522163107, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.87640380859375, - -0.87628173828125 - ], - [ - 0, - -0.87628173828125 - ], - [ - -1.752685546875, - 0.8763427734375 - ], - [ - -5.25811767578125, - 5.2581787109375 - ], - [ - -7.88720703125, - 11.39263916015625 - ], - [ - -10.5162353515625, - 16.65081787109375 - ], - [ - -12.26898193359375, - 20.15618896484375 - ], - [ - -13.14532470703125, - 21.908935546875 - ], - [ - -13.14532470703125, - 24.5379638671875 - ], - [ - -13.14532470703125, - 27.16705322265625 - ], - [ - -11.392578125, - 29.796142578125 - ], - [ - -11.392578125, - 30.6724853515625 - ], - [ - -9.639892578125, - 30.6724853515625 - ], - [ - -6.13446044921875, - 30.6724853515625 - ], - [ - -1.752685546875, - 29.796142578125 - ], - [ - 6.134521484375, - 27.16705322265625 - ], - [ - 9.63995361328125, - 24.5379638671875 - ], - [ - 12.26898193359375, - 22.7852783203125 - ], - [ - 13.1453857421875, - 21.908935546875 - ], - [ - 14.021728515625, - 21.908935546875 - ], - [ - 13.1453857421875, - 21.908935546875 - ], - [ - 13.1453857421875, - 22.7852783203125 - ], - [ - 13.1453857421875, - 22.7852783203125 - ] - ], - "pressures": [ - 0.060546875, - 0.3193359375, - 0.9111328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2763671875, - 0.0673828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.1453857421875, - 22.7852783203125 - ] - }, - { - "id": "slKfpstPy39OOmCN6S6Vd", - "type": "freedraw", - "x": -148.43697248186345, - "y": -140.0536650620495, - "width": 28.9197998046875, - "height": 25.41424560546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1837079949, - "version": 639, - "versionNonce": 182321677, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - 0.87628173828125 - ], - [ - -4.38177490234375, - 3.50537109375 - ], - [ - -9.639892578125, - 11.392578125 - ], - [ - -11.39263916015625, - 14.89801025390625 - ], - [ - -14.02166748046875, - 18.4034423828125 - ], - [ - -14.89801025390625, - 20.1561279296875 - ], - [ - -15.7744140625, - 21.032470703125 - ], - [ - -15.7744140625, - 21.90887451171875 - ], - [ - -15.7744140625, - 22.78521728515625 - ], - [ - -14.02166748046875, - 22.78521728515625 - ], - [ - -11.39263916015625, - 23.66156005859375 - ], - [ - -4.38177490234375, - 24.53790283203125 - ], - [ - 0.8763427734375, - 25.41424560546875 - ], - [ - 5.2581787109375, - 25.41424560546875 - ], - [ - 9.63995361328125, - 25.41424560546875 - ], - [ - 11.39263916015625, - 25.41424560546875 - ], - [ - 13.1453857421875, - 25.41424560546875 - ], - [ - 13.1453857421875, - 24.53790283203125 - ], - [ - 12.26898193359375, - 23.66156005859375 - ], - [ - 10.51629638671875, - 22.78521728515625 - ], - [ - 10.51629638671875, - 22.78521728515625 - ] - ], - "pressures": [ - 0.0751953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2119140625, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.51629638671875, - 22.78521728515625 - ] - }, - { - "id": "dop670DVhK5FALab__cmS", - "type": "freedraw", - "x": -174.72762189592595, - "y": -136.70760127476262, - "width": 16.6507568359375, - "height": 17.527099609375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1941114275, - "version": 635, - "versionNonce": 461680963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.87640380859375, - 0 - ], - [ - -0.87640380859375, - 2.62908935546875 - ], - [ - -0.87640380859375, - 7.0108642578125 - ], - [ - -0.87640380859375, - 10.5162353515625 - ], - [ - -0.87640380859375, - 13.14532470703125 - ], - [ - -0.87640380859375, - 15.7744140625 - ], - [ - -0.87640380859375, - 16.6507568359375 - ], - [ - -1.75274658203125, - 17.527099609375 - ], - [ - -2.62908935546875, - 17.527099609375 - ], - [ - -4.38177490234375, - 17.527099609375 - ], - [ - -6.134521484375, - 17.527099609375 - ], - [ - -10.51629638671875, - 17.527099609375 - ], - [ - -12.26898193359375, - 17.527099609375 - ], - [ - -14.021728515625, - 16.6507568359375 - ], - [ - -14.8980712890625, - 16.6507568359375 - ], - [ - -15.7744140625, - 15.7744140625 - ], - [ - -16.6507568359375, - 15.7744140625 - ], - [ - -14.8980712890625, - 14.89801025390625 - ], - [ - -13.1453857421875, - 14.02166748046875 - ], - [ - -11.39263916015625, - 14.02166748046875 - ], - [ - -11.39263916015625, - 14.02166748046875 - ] - ], - "pressures": [ - 0.05078125, - 0.2509765625, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2939453125, - 0.1669921875, - 0.1201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.39263916015625, - 14.02166748046875 - ] - }, - { - "id": "JuRrdrVnfHl-Q4K5ktqvu", - "type": "freedraw", - "x": -179.1093967982697, - "y": -136.70760127476262, - "width": 19.27984619140625, - "height": 16.6507568359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1393542371, - "version": 637, - "versionNonce": 1363949677, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.50537109375 - ], - [ - 0, - 8.7635498046875 - ], - [ - 0, - 13.14532470703125 - ], - [ - 0, - 14.89801025390625 - ], - [ - 0, - 15.7744140625 - ], - [ - -1.75274658203125, - 15.7744140625 - ], - [ - -2.62908935546875, - 15.7744140625 - ], - [ - -4.38177490234375, - 15.7744140625 - ], - [ - -5.2581787109375, - 16.6507568359375 - ], - [ - -7.88720703125, - 16.6507568359375 - ], - [ - -9.63995361328125, - 16.6507568359375 - ], - [ - -11.39263916015625, - 16.6507568359375 - ], - [ - -13.1453857421875, - 16.6507568359375 - ], - [ - -14.021728515625, - 16.6507568359375 - ], - [ - -14.8980712890625, - 16.6507568359375 - ], - [ - -15.7744140625, - 16.6507568359375 - ], - [ - -16.65081787109375, - 16.6507568359375 - ], - [ - -17.52716064453125, - 16.6507568359375 - ], - [ - -19.27984619140625, - 16.6507568359375 - ], - [ - -17.52716064453125, - 16.6507568359375 - ], - [ - -15.7744140625, - 16.6507568359375 - ], - [ - -13.1453857421875, - 16.6507568359375 - ], - [ - -13.1453857421875, - 16.6507568359375 - ] - ], - "pressures": [ - 0.0693359375, - 0.828125, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4169921875, - 0.2197265625, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -13.1453857421875, - 16.6507568359375 - ] - }, - { - "id": "-Jem4ZT2hiqim1USRPsEX", - "type": "freedraw", - "x": -180.86214338030095, - "y": -134.87521491112625, - "width": 16.6507568359375, - "height": 16.6507568359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 947072963, - "version": 638, - "versionNonce": 1661178083, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.87640380859375 - ], - [ - 0, - 0.87628173828125 - ], - [ - 0, - 5.258056640625 - ], - [ - 0, - 9.639892578125 - ], - [ - 0, - 12.2689208984375 - ], - [ - 0, - 14.02166748046875 - ], - [ - 0, - 14.89801025390625 - ], - [ - -0.8763427734375, - 14.89801025390625 - ], - [ - -1.752685546875, - 15.77435302734375 - ], - [ - -2.6290283203125, - 15.77435302734375 - ], - [ - -4.38177490234375, - 15.77435302734375 - ], - [ - -5.25811767578125, - 15.77435302734375 - ], - [ - -7.88720703125, - 15.77435302734375 - ], - [ - -9.639892578125, - 15.77435302734375 - ], - [ - -10.5162353515625, - 15.77435302734375 - ], - [ - -12.26898193359375, - 15.77435302734375 - ], - [ - -14.02166748046875, - 15.77435302734375 - ], - [ - -14.02166748046875, - 14.89801025390625 - ], - [ - -15.7744140625, - 14.89801025390625 - ], - [ - -16.6507568359375, - 14.89801025390625 - ], - [ - -15.7744140625, - 14.89801025390625 - ], - [ - -14.8980712890625, - 14.02166748046875 - ], - [ - -14.8980712890625, - 14.02166748046875 - ] - ], - "pressures": [ - 0.060546875, - 0.56640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.205078125, - 0.119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.8980712890625, - 14.02166748046875 - ] - }, - { - "id": "hD29pnMnY3-FceZiiEWX-", - "type": "freedraw", - "x": -101.11373029436345, - "y": -49.948384966168874, - "width": 55.21044921875, - "height": 2.6290283203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 702285421, - "version": 619, - "versionNonce": 1835311821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - 7.0108642578125, - 0 - ], - [ - 15.7744140625, - 0 - ], - [ - 27.1669921875, - 0.8763427734375 - ], - [ - 39.43603515625, - 0.8763427734375 - ], - [ - 51.7049560546875, - 1.75274658203125 - ], - [ - 54.3341064453125, - 1.75274658203125 - ], - [ - 49.9522705078125, - -0.87628173828125 - ], - [ - 49.9522705078125, - -0.87628173828125 - ] - ], - "pressures": [ - 0.0302734375, - 0.328125, - 0.4521484375, - 0.630859375, - 0.7587890625, - 0.8427734375, - 0.857421875, - 0.82421875, - 0.783203125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.9522705078125, - -0.87628173828125 - ] - }, - { - "id": "YrqfopOOIHNZUFLj7B9Nn", - "type": "freedraw", - "x": -98.4846409388947, - "y": -54.330159868512624, - "width": 51.70501708984375, - "height": 5.25811767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 611649965, - "version": 623, - "versionNonce": 46496899, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8763427734375, - 0 - ], - [ - 7.01080322265625, - 0 - ], - [ - 14.89801025390625, - 0 - ], - [ - 29.79608154296875, - 0.8763427734375 - ], - [ - 39.43597412109375, - 1.752685546875 - ], - [ - 46.44683837890625, - 1.752685546875 - ], - [ - 49.95233154296875, - 1.752685546875 - ], - [ - 51.70501708984375, - 0.8763427734375 - ], - [ - 51.70501708984375, - 0 - ], - [ - 49.07586669921875, - -1.752685546875 - ], - [ - 45.57049560546875, - -2.62908935546875 - ], - [ - 42.94146728515625, - -3.50543212890625 - ], - [ - 42.06512451171875, - -3.50543212890625 - ], - [ - 42.06512451171875, - -3.50543212890625 - ] - ], - "pressures": [ - 0.095703125, - 0.6064453125, - 0.876953125, - 1, - 1, - 1, - 1, - 0.994140625, - 0.55078125, - 0.365234375, - 0.25390625, - 0.1474609375, - 0.068359375, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.06512451171875, - -3.50543212890625 - ] - }, - { - "id": "qVK4SSvRefyy2KRlVMhE8", - "type": "freedraw", - "x": -105.4955051967072, - "y": -54.330159868512624, - "width": 54.33404541015625, - "height": 19.2799072265625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1415464365, - "version": 639, - "versionNonce": 331399469, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50543212890625, - 0 - ], - [ - 4.38177490234375, - 0 - ], - [ - 1.752685546875, - -0.87628173828125 - ], - [ - -3.50543212890625, - -3.50543212890625 - ], - [ - -12.26898193359375, - -6.134521484375 - ], - [ - -18.40350341796875, - -7.0108642578125 - ], - [ - -22.7852783203125, - -7.0108642578125 - ], - [ - -27.16705322265625, - -7.0108642578125 - ], - [ - -31.548828125, - -7.0108642578125 - ], - [ - -39.43603515625, - -7.0108642578125 - ], - [ - -42.94146728515625, - -6.134521484375 - ], - [ - -45.57049560546875, - -5.258056640625 - ], - [ - -46.4468994140625, - -4.38177490234375 - ], - [ - -47.3232421875, - -2.62908935546875 - ], - [ - -49.075927734375, - -0.87628173828125 - ], - [ - -49.9522705078125, - 0 - ], - [ - -49.9522705078125, - 0.8763427734375 - ], - [ - -49.9522705078125, - 2.62908935546875 - ], - [ - -46.4468994140625, - 7.0108642578125 - ], - [ - -44.69415283203125, - 8.7635498046875 - ], - [ - -42.06512451171875, - 9.639892578125 - ], - [ - -39.43603515625, - 11.39263916015625 - ], - [ - -33.301513671875, - 11.39263916015625 - ], - [ - -28.91973876953125, - 12.26904296875 - ], - [ - -23.66162109375, - 12.26904296875 - ], - [ - -20.15618896484375, - 12.26904296875 - ], - [ - -17.527099609375, - 12.26904296875 - ], - [ - -15.7744140625, - 12.26904296875 - ], - [ - -14.8980712890625, - 11.39263916015625 - ], - [ - -14.8980712890625, - 11.39263916015625 - ] - ], - "pressures": [ - 0.0400390625, - 0.1455078125, - 0.1845703125, - 0.5400390625, - 0.5791015625, - 0.7265625, - 0.83203125, - 0.8876953125, - 0.9111328125, - 0.9150390625, - 0.923828125, - 0.9111328125, - 0.8984375, - 0.8935546875, - 0.880859375, - 0.857421875, - 0.8466796875, - 0.8466796875, - 0.82421875, - 0.646484375, - 0.5341796875, - 0.5234375, - 0.5224609375, - 0.525390625, - 0.51171875, - 0.4619140625, - 0.3046875, - 0.177734375, - 0.1142578125, - 0.005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.8980712890625, - 11.39263916015625 - ] - }, - { - "id": "q3kzx6FwsHrp8MnWI9XRI", - "type": "freedraw", - "x": -109.87728009905095, - "y": -56.959249223981374, - "width": 59.59222412109375, - "height": 22.7852783203125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 904479917, - "version": 637, - "versionNonce": 378074147, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.25811767578125, - 0 - ], - [ - 7.0108642578125, - 0.87640380859375 - ], - [ - 5.25811767578125, - 0.87640380859375 - ], - [ - -2.62908935546875, - -0.8763427734375 - ], - [ - -9.63995361328125, - -3.50543212890625 - ], - [ - -16.6507568359375, - -5.25811767578125 - ], - [ - -22.7852783203125, - -5.25811767578125 - ], - [ - -28.04339599609375, - -5.25811767578125 - ], - [ - -33.301513671875, - -5.25811767578125 - ], - [ - -40.3123779296875, - -2.62896728515625 - ], - [ - -43.81781005859375, - -1.752685546875 - ], - [ - -47.3232421875, - -0.8763427734375 - ], - [ - -49.075927734375, - 0 - ], - [ - -51.70501708984375, - 1.7528076171875 - ], - [ - -52.58135986328125, - 4.38177490234375 - ], - [ - -52.58135986328125, - 7.0108642578125 - ], - [ - -52.58135986328125, - 8.76361083984375 - ], - [ - -52.58135986328125, - 10.516357421875 - ], - [ - -47.3232421875, - 13.1453857421875 - ], - [ - -41.188720703125, - 14.89813232421875 - ], - [ - -34.17791748046875, - 16.6507568359375 - ], - [ - -28.04339599609375, - 17.52716064453125 - ], - [ - -21.908935546875, - 17.52716064453125 - ], - [ - -19.27984619140625, - 17.52716064453125 - ], - [ - -17.52716064453125, - 16.6507568359375 - ], - [ - -16.6507568359375, - 14.89813232421875 - ], - [ - -15.7744140625, - 14.021728515625 - ], - [ - -15.7744140625, - 14.021728515625 - ] - ], - "pressures": [ - 0.025390625, - 0.1552734375, - 0.1826171875, - 0.5556640625, - 0.7265625, - 0.8173828125, - 0.8681640625, - 0.8916015625, - 0.9169921875, - 0.92578125, - 0.9130859375, - 0.8916015625, - 0.876953125, - 0.8662109375, - 0.853515625, - 0.826171875, - 0.7890625, - 0.7705078125, - 0.7421875, - 0.6884765625, - 0.6376953125, - 0.51953125, - 0.4462890625, - 0.3974609375, - 0.3359375, - 0.20703125, - 0.1337890625, - 0.048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.7744140625, - 14.021728515625 - ] - }, - { - "id": "j86qxOwsEzb_6HQJJdDmc", - "type": "freedraw", - "x": -108.12459455217595, - "y": -57.835591997418874, - "width": 49.075927734375, - "height": 15.7744140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 649819469, - "version": 636, - "versionNonce": 701109133, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.6290283203125, - 0 - ], - [ - -7.88720703125, - -0.8763427734375 - ], - [ - -17.527099609375, - -1.75262451171875 - ], - [ - -23.66162109375, - -2.62908935546875 - ], - [ - -28.04339599609375, - -2.62908935546875 - ], - [ - -30.67242431640625, - -2.62908935546875 - ], - [ - -34.1778564453125, - -2.62908935546875 - ], - [ - -37.68328857421875, - -1.75262451171875 - ], - [ - -41.188720703125, - -0.8763427734375 - ], - [ - -43.81781005859375, - 0.8763427734375 - ], - [ - -46.44683837890625, - 2.629150390625 - ], - [ - -49.075927734375, - 4.38177490234375 - ], - [ - -49.075927734375, - 5.25811767578125 - ], - [ - -49.075927734375, - 7.01092529296875 - ], - [ - -48.1995849609375, - 8.7635498046875 - ], - [ - -46.44683837890625, - 9.63995361328125 - ], - [ - -43.81781005859375, - 11.3927001953125 - ], - [ - -41.188720703125, - 12.26898193359375 - ], - [ - -38.55963134765625, - 13.14532470703125 - ], - [ - -35.93060302734375, - 13.14532470703125 - ], - [ - -35.05419921875, - 13.14532470703125 - ], - [ - -33.301513671875, - 12.26898193359375 - ], - [ - -31.548828125, - 11.3927001953125 - ], - [ - -28.91973876953125, - 8.7635498046875 - ], - [ - -28.04339599609375, - 8.7635498046875 - ], - [ - -28.04339599609375, - 7.88720703125 - ], - [ - -28.04339599609375, - 7.88720703125 - ] - ], - "pressures": [ - 0.0576171875, - 0.615234375, - 0.900390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9453125, - 0.79296875, - 0.5615234375, - 0.3359375, - 0.173828125, - 0.1171875, - 0.060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -28.04339599609375, - 7.88720703125 - ] - }, - { - "id": "RIMz5sQk07wEBERQh6eq5", - "type": "freedraw", - "x": -221.84728886438288, - "y": -118.31400999940877, - "width": 86.96653864189926, - "height": 9.401864649802963, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 1643073389, - "version": 1370, - "versionNonce": 1044150211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - -0.46436767614524077, - -0.09287224156361112 - ], - [ - -4.38177490234375, - -0.8763427734375 - ], - [ - -2.031308739893009, - -0.8763427734375 - ], - [ - 5.020035180630111, - -0.09287224156361112 - ], - [ - 15.98878632735172, - 0.6906528571393528 - ], - [ - 28.52447853782114, - 1.47412338901324 - ], - [ - 47.328044136939816, - 3.0410644527610198 - ], - [ - 59.86379091423824, - 4.608060083337868 - ], - [ - 70.04907152908584, - 6.175001147085645 - ], - [ - 77.88388598148302, - 7.741942210833425 - ], - [ - 82.58476373955551, - 8.525521876365465 - ], - [ - 80.2343521439337, - 7.741942210833425 - ], - [ - 80.2343521439337, - 7.741942210833425 - ] - ], - "pressures": [ - 0.052734375, - 0.193359375, - 0.40625, - 0.5888671875, - 0.830078125, - 1, - 1, - 1, - 1, - 0.82421875, - 0.3037109375, - 0.0263671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 90.26470947265625, - 8.7635498046875 - ] - }, - { - "id": "tdGx8fRoy2kxA3GVWuJAD", - "type": "freedraw", - "x": -207.3618214990271, - "y": -117.04691578953104, - "width": 65.81250688032992, - "height": 67.37944794407768, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 1275981891, - "version": 1322, - "versionNonce": 733616621, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - -1.7645984630173364, - -0.3714954345816184 - ], - [ - -1.7645984630173364, - -2.7219615970323607 - ], - [ - -2.5481235617202995, - -2.7219615970323607 - ], - [ - -4.115064625468076, - -3.50543212890625 - ], - [ - -6.465530787918811, - -3.50543212890625 - ], - [ - -8.815942383540476, - -3.50543212890625 - ], - [ - -11.949879077865111, - -2.7219615970323607 - ], - [ - -13.51687470844197, - -1.938491065158469 - ], - [ - -15.083815772189736, - -1.155020533284585 - ], - [ - -15.86728630406359, - 1.1954456291661557 - ], - [ - -16.6507568359375, - 7.463373584644497 - ], - [ - -14.300345240315846, - 13.73113783963561 - ], - [ - -9.59946748224345, - 22.34947739073561 - ], - [ - 0.5858131326043315, - 32.53475800558336 - ], - [ - 13.121559909902842, - 44.286979684178945 - ], - [ - 28.007718282822992, - 54.47231486585576 - ], - [ - 35.0590622033461, - 58.389722092054214 - ], - [ - 41.326935591995394, - 61.523604219549775 - ], - [ - 46.811283881941705, - 63.0905452832976 - ], - [ - 49.16175004439242, - 63.87401581517142 - ], - [ - 49.16175004439242, - 63.87401581517142 - ] - ], - "pressures": [ - 0.06640625, - 0.197265625, - 0.28125, - 0.419921875, - 0.6318359375, - 0.8466796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.3583984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 56.963134765625, - 71.86114501953125 - ] - }, - { - "id": "JsNvR_jZnIQ4kVNCt_8Rm", - "type": "freedraw", - "x": -215.10456392513746, - "y": -105.61611988517308, - "width": 61.11162912225744, - "height": 54.06023063490534, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 716636195, - "version": 1344, - "versionNonce": 402556771, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558540, - "link": null, - "locked": false, - "points": [ - [ - -0.09287224156361244, - 0 - ], - [ - -0.8763427734375, - 2.3503570287925872 - ], - [ - 4.608005516508786, - 9.40170094931574 - ], - [ - 13.226345067608758, - 19.587036130992583 - ], - [ - 32.02991066672746, - 37.607076631408354 - ], - [ - 43.78213234532294, - 47.0089412812112 - ], - [ - 52.40047189642289, - 51.709764472454566 - ], - [ - 57.88482018636918, - 54.06023063490534 - ], - [ - 60.23528634881994, - 54.06023063490534 - ], - [ - 59.45176125011706, - 52.4932350043285 - ], - [ - 59.45176125011706, - 52.4932350043285 - ] - ], - "pressures": [ - 0.0849609375, - 0.400390625, - 0.5029296875, - 0.7607421875, - 1, - 1, - 1, - 0.861328125, - 0.384765625, - 0.1220703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.60302734375, - 58.71575927734375 - ] - }, - { - "id": "0Uhlzhasd5ruUmgk9a5cK", - "type": "freedraw", - "x": -162.2952163077634, - "y": -57.72693647427688, - "width": 40.741067892561944, - "height": 16.453154003496987, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 1680836365, - "version": 1353, - "versionNonce": 1385845837, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - -1.300230786872112 - ], - [ - 4.7008777580723935, - 1.0502353755786191 - ], - [ - 8.618284984270899, - 2.6171764393263897 - ], - [ - 12.535692210469415, - 3.4006469712002843 - ], - [ - 17.236569968541797, - 4.184172069903239 - ], - [ - 21.937502293443284, - 4.184172069903239 - ], - [ - 29.772316745840264, - 4.184172069903239 - ], - [ - 33.68972397203883, - 3.4006469712002843 - ], - [ - 36.040190134489535, - 2.6171764393263897 - ], - [ - 38.39060173011121, - 1.0502353755786191 - ], - [ - 39.957597360688084, - -1.300230786872112 - ], - [ - 40.741067892561944, - -2.867171850619891 - ], - [ - 40.741067892561944, - -5.2176380130706175 - ], - [ - 40.741067892561944, - -8.351574707395242 - ], - [ - 38.39060173011121, - -9.91846120431393 - ], - [ - 36.040190134489535, - -12.26898193359375 - ], - [ - 35.25666503578657, - -12.26898193359375 - ], - [ - 35.25666503578657, - -12.26898193359375 - ] - ], - "pressures": [ - 0.0517578125, - 0.5966796875, - 0.7724609375, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9560546875, - 0.8095703125, - 0.640625, - 0.380859375, - 0.3095703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.43597412109375, - -12.26898193359375 - ] - }, - { - "id": "ldoI5xtsQnk8cm7clh44g", - "type": "freedraw", - "x": -138.39740046110026, - "y": -114.13604827706187, - "width": 22.720972825317183, - "height": 63.46209528470818, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 2106357965, - "version": 1340, - "versionNonce": 2048762627, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - -0.09287224156361311, - 0 - ], - [ - -0.8763427734375, - 1.5669410637477708 - ], - [ - -0.8763427734375, - 5.484402856775351 - ], - [ - 0.6905982903102729, - 13.319217309172368 - ], - [ - 6.175001147085629, - 29.77237131266934 - ], - [ - 10.875878905158013, - 40.741067892561865 - ], - [ - 14.79328613135653, - 48.57593691178795 - ], - [ - 17.92722282568115, - 54.84375573360817 - ], - [ - 21.061159520005763, - 61.11168368908648 - ], - [ - 21.844630051879683, - 63.46209528470818 - ], - [ - 21.844630051879683, - 63.46209528470818 - ] - ], - "pressures": [ - 0.07421875, - 0.50390625, - 0.677734375, - 0.861328125, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.5379638671875, - 70.98486328125 - ] - }, - { - "id": "Ee5fc97A-xHZw93AHrZ7z", - "type": "freedraw", - "x": -119.61580453153684, - "y": -61.223081023703415, - "width": 43.09153405501271, - "height": 11.752221678595538, - "angle": 6.259589462379609, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "sdAVDXAje5MvZyYJZw5k8" - ], - "strokeSharpness": "round", - "seed": 737310659, - "version": 1337, - "versionNonce": 2051293869, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - -5.108050905924787, - -0.8358631107268554 - ], - [ - -5.891521437798651, - -0.8358631107268554 - ], - [ - -7.458517068375504, - -0.8358631107268554 - ], - [ - -10.592399195871062, - -2.4028041744746247 - ], - [ - -17.643743116394166, - -5.536686301970162 - ], - [ - -22.34467544129565, - -7.103736499376097 - ], - [ - -27.045553199368076, - -7.103736499376097 - ], - [ - -31.74643095744041, - -7.88720703125 - ], - [ - -34.88036765176499, - -7.88720703125 - ], - [ - -39.58124540983743, - -7.88720703125 - ], - [ - -41.93171157228805, - -7.103736499376097 - ], - [ - -44.282177734738866, - -6.320265967502212 - ], - [ - -45.84911879848666, - -5.536686301970162 - ], - [ - -47.416114429063434, - -4.753270336925361 - ], - [ - -47.416114429063434, - -3.9697998050514807 - ], - [ - -48.1995849609375, - -3.9697998050514807 - ], - [ - -48.1995849609375, - -3.1863292731775887 - ], - [ - -48.1995849609375, - -2.4028041744746247 - ], - [ - -48.1995849609375, - -1.6192790757716662 - ], - [ - -48.1995849609375, - -0.8358631107268554 - ], - [ - -46.63258933036053, - 0.7310779530209167 - ], - [ - -45.84911879848666, - 1.514603051723882 - ], - [ - -45.06564826661277, - 1.514603051723882 - ], - [ - -41.93171157228805, - 2.2981281504268396 - ], - [ - -40.3647705085404, - 3.0815441154716505 - ], - [ - -38.79777487796355, - 3.0815441154716505 - ], - [ - -38.01430434608959, - 3.865014647345537 - ], - [ - -36.44736328234182, - 3.865014647345537 - ], - [ - -34.88036765176499, - 3.865014647345537 - ], - [ - -34.09689711989114, - 3.865014647345537 - ], - [ - -34.09689711989114, - 3.865014647345537 - ] - ], - "pressures": [ - 0.05078125, - 0.33984375, - 0.4306640625, - 0.5068359375, - 0.6318359375, - 0.728515625, - 0.8134765625, - 0.876953125, - 0.904296875, - 0.9296875, - 0.923828125, - 0.9150390625, - 0.9111328125, - 0.904296875, - 0.8955078125, - 0.861328125, - 0.8515625, - 0.830078125, - 0.6376953125, - 0.5439453125, - 0.3955078125, - 0.3447265625, - 0.33984375, - 0.3349609375, - 0.263671875, - 0.21875, - 0.20703125, - 0.1552734375, - 0.076171875, - 0.0537109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -32.4251708984375, - 5.25811767578125 - ] - }, - { - "id": "fl06jNuoa79oiXYYN6KZ0", - "type": "freedraw", - "x": -144.0551975795197, - "y": -47.319295610700124, - "width": 55.21044921875, - "height": 22.78521728515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1638470083, - "version": 618, - "versionNonce": 1830308515, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.50543212890625, - -0.8763427734375 - ], - [ - -3.50543212890625, - 0 - ], - [ - 0.87640380859375, - 1.752685546875 - ], - [ - 7.0108642578125, - 6.13446044921875 - ], - [ - 14.021728515625, - 9.63995361328125 - ], - [ - 24.5379638671875, - 15.7744140625 - ], - [ - 31.548828125, - 19.27984619140625 - ], - [ - 36.80694580078125, - 21.03253173828125 - ], - [ - 43.81781005859375, - 21.90887451171875 - ], - [ - 47.3232421875, - 21.90887451171875 - ], - [ - 49.95233154296875, - 21.90887451171875 - ], - [ - 51.70501708984375, - 21.90887451171875 - ], - [ - 50.82867431640625, - 21.03253173828125 - ], - [ - 50.82867431640625, - 21.03253173828125 - ] - ], - "pressures": [ - 0.060546875, - 0.310546875, - 0.541015625, - 0.703125, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 0.6923828125, - 0.3720703125, - 0.20703125, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 50.82867431640625, - 21.03253173828125 - ] - }, - { - "id": "2b5Nilhu7Ed7-DU_RGmct", - "type": "freedraw", - "x": -145.8078831263947, - "y": -49.948384966168874, - "width": 63.97393798828125, - "height": 21.0325927734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 202877091, - "version": 621, - "versionNonce": 1197565197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0.8763427734375, - 0.8763427734375 - ], - [ - 7.88720703125, - 5.25811767578125 - ], - [ - 13.14532470703125, - 8.7635498046875 - ], - [ - 21.03253173828125, - 11.39263916015625 - ], - [ - 28.91973876953125, - 14.021728515625 - ], - [ - 38.55963134765625, - 17.527099609375 - ], - [ - 43.81781005859375, - 18.40350341796875 - ], - [ - 49.075927734375, - 19.27984619140625 - ], - [ - 54.33404541015625, - 20.15618896484375 - ], - [ - 59.59222412109375, - 21.0325927734375 - ], - [ - 62.22125244140625, - 21.0325927734375 - ], - [ - 63.09759521484375, - 21.0325927734375 - ], - [ - 62.22125244140625, - 21.0325927734375 - ], - [ - 59.59222412109375, - 19.27984619140625 - ], - [ - 58.7158203125, - 19.27984619140625 - ], - [ - 58.7158203125, - 19.27984619140625 - ] - ], - "pressures": [ - 0.0849609375, - 0.421875, - 0.5595703125, - 0.828125, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.71484375, - 0.2216796875, - 0.11328125, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.7158203125, - 19.27984619140625 - ] - }, - { - "id": "qM6voeEuoTE23Z0pDPiDh", - "type": "freedraw", - "x": -103.7428196498322, - "y": -56.082845415387624, - "width": 62.2213134765625, - "height": 6.134521484375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1105363053, - "version": 616, - "versionNonce": 1704787523, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.38177490234375, - -1.75274658203125 - ], - [ - -2.6290283203125, - -1.75274658203125 - ], - [ - 2.62908935546875, - 0 - ], - [ - 14.021728515625, - 3.50537109375 - ], - [ - 22.78533935546875, - 4.38177490234375 - ], - [ - 31.54888916015625, - 4.38177490234375 - ], - [ - 40.31243896484375, - 3.50537109375 - ], - [ - 47.32330322265625, - 3.50537109375 - ], - [ - 55.21051025390625, - 3.50537109375 - ], - [ - 56.96319580078125, - 3.50537109375 - ], - [ - 57.83953857421875, - 2.6290283203125 - ], - [ - 56.96319580078125, - 0.87640380859375 - ], - [ - 54.33404541015625, - 0.87640380859375 - ], - [ - 54.33404541015625, - 0.87640380859375 - ] - ], - "pressures": [ - 0.08203125, - 0.181640625, - 0.482421875, - 0.5791015625, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.34765625, - 0.1923828125, - 0.060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.33404541015625, - 0.87640380859375 - ] - }, - { - "id": "8xl6IosaOxpeGL1mdJD78", - "type": "freedraw", - "x": -98.4846409388947, - "y": -52.577474321637624, - "width": 54.33404541015625, - "height": 6.13446044921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2103483885, - "version": 611, - "versionNonce": 225131373, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.88720703125, - -1.752685546875 - ], - [ - 16.65069580078125, - -3.50537109375 - ], - [ - 23.66156005859375, - -4.38177490234375 - ], - [ - 30.67242431640625, - -5.25811767578125 - ], - [ - 36.80694580078125, - -5.25811767578125 - ], - [ - 42.94146728515625, - -5.25811767578125 - ], - [ - 50.82867431640625, - -5.25811767578125 - ], - [ - 54.33404541015625, - -6.13446044921875 - ], - [ - 54.33404541015625, - -6.13446044921875 - ] - ], - "pressures": [ - 0.1162109375, - 0.78125, - 0.849609375, - 0.8955078125, - 0.8955078125, - 0.884765625, - 0.8173828125, - 0.353515625, - 0.169921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.33404541015625, - -6.13446044921875 - ] - }, - { - "id": "bku26GppTLZoncAd1_NgW", - "type": "freedraw", - "x": -70.44124494280095, - "y": -56.082845415387624, - "width": 70.10845947265625, - "height": 30.6724853515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 470599043, - "version": 623, - "versionNonce": 1049247203, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.3817138671875, - -0.87640380859375 - ], - [ - 13.145263671875, - 0 - ], - [ - 21.032470703125, - 0.87640380859375 - ], - [ - 28.919677734375, - 1.752685546875 - ], - [ - 36.806884765625, - 3.50537109375 - ], - [ - 43.8177490234375, - 6.13446044921875 - ], - [ - 49.9522705078125, - 10.5162353515625 - ], - [ - 51.7049560546875, - 14.021728515625 - ], - [ - 51.7049560546875, - 16.6507568359375 - ], - [ - 45.5704345703125, - 21.03253173828125 - ], - [ - 38.5596923828125, - 24.5379638671875 - ], - [ - 28.0433349609375, - 26.2906494140625 - ], - [ - 16.6507568359375, - 28.91973876953125 - ], - [ - 6.134521484375, - 29.79608154296875 - ], - [ - -1.752685546875, - 29.79608154296875 - ], - [ - -9.639892578125, - 28.04339599609375 - ], - [ - -13.1453857421875, - 26.2906494140625 - ], - [ - -15.7744140625, - 24.5379638671875 - ], - [ - -17.52716064453125, - 22.7852783203125 - ], - [ - -18.40350341796875, - 22.7852783203125 - ], - [ - -17.52716064453125, - 22.7852783203125 - ], - [ - -15.7744140625, - 22.7852783203125 - ], - [ - -14.8980712890625, - 22.7852783203125 - ], - [ - -14.8980712890625, - 22.7852783203125 - ] - ], - "pressures": [ - 0.076171875, - 0.3447265625, - 0.537109375, - 0.6357421875, - 0.6806640625, - 0.70703125, - 0.71484375, - 0.7109375, - 0.708984375, - 0.703125, - 0.6494140625, - 0.6376953125, - 0.6318359375, - 0.6337890625, - 0.642578125, - 0.6552734375, - 0.6572265625, - 0.6201171875, - 0.599609375, - 0.5322265625, - 0.4931640625, - 0.1826171875, - 0.119140625, - 0.076171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.8980712890625, - 22.7852783203125 - ] - }, - { - "id": "k49RmXKDfsti_jR06eIvF", - "type": "freedraw", - "x": -86.21565900530095, - "y": -31.544881548200124, - "width": 46.44683837890625, - "height": 33.30157470703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1497125315, - "version": 622, - "versionNonce": 1957381581, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - 0 - ], - [ - 1.752685546875, - 0 - ], - [ - 10.5162353515625, - 1.752685546875 - ], - [ - 17.527099609375, - 2.62908935546875 - ], - [ - 25.414306640625, - 3.50543212890625 - ], - [ - 32.4251708984375, - 3.50543212890625 - ], - [ - 37.683349609375, - 1.752685546875 - ], - [ - 41.188720703125, - -0.87640380859375 - ], - [ - 43.8177490234375, - -5.2581787109375 - ], - [ - 44.694091796875, - -8.76361083984375 - ], - [ - 44.694091796875, - -12.26898193359375 - ], - [ - 43.8177490234375, - -16.6507568359375 - ], - [ - 38.5596923828125, - -21.908935546875 - ], - [ - 34.1778564453125, - -24.5379638671875 - ], - [ - 29.796142578125, - -27.16705322265625 - ], - [ - 27.1669921875, - -28.0433349609375 - ], - [ - 26.2906494140625, - -28.0433349609375 - ], - [ - 25.414306640625, - -28.0433349609375 - ], - [ - 24.5379638671875, - -28.9197998046875 - ], - [ - 23.66162109375, - -29.796142578125 - ], - [ - 24.5379638671875, - -28.9197998046875 - ], - [ - 26.2906494140625, - -28.0433349609375 - ], - [ - 26.2906494140625, - -28.0433349609375 - ] - ], - "pressures": [ - 0.041015625, - 0.296875, - 0.48046875, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75390625, - 0.609375, - 0.474609375, - 0.1376953125, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 26.2906494140625, - -28.0433349609375 - ] - }, - { - "id": "EZmOmrGzdBPTXcMJdto-C", - "type": "freedraw", - "x": -55.54317365373845, - "y": -59.588216509137624, - "width": 54.3341064453125, - "height": 46.4468994140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 511981901, - "version": 622, - "versionNonce": 1928235395, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.629150390625 - ], - [ - 1.752685546875, - -1.7528076171875 - ], - [ - 9.639892578125, - 4.38177490234375 - ], - [ - 14.0216064453125, - 10.51617431640625 - ], - [ - 17.527099609375, - 17.527099609375 - ], - [ - 18.4034423828125, - 24.53790283203125 - ], - [ - 18.4034423828125, - 32.42510986328125 - ], - [ - 13.145263671875, - 40.31231689453125 - ], - [ - 8.7635498046875, - 42.94134521484375 - ], - [ - 0.8763427734375, - 43.8177490234375 - ], - [ - -7.88720703125, - 42.94134521484375 - ], - [ - -21.0325927734375, - 40.31231689453125 - ], - [ - -24.5379638671875, - 38.5595703125 - ], - [ - -29.796142578125, - 36.806884765625 - ], - [ - -32.42523193359375, - 35.9305419921875 - ], - [ - -33.30157470703125, - 34.17779541015625 - ], - [ - -35.05426025390625, - 33.30145263671875 - ], - [ - -35.9306640625, - 32.42510986328125 - ], - [ - -35.9306640625, - 31.54876708984375 - ], - [ - -35.9306640625, - 30.67242431640625 - ], - [ - -35.05426025390625, - 29.7960205078125 - ], - [ - -34.17791748046875, - 29.7960205078125 - ], - [ - -34.17791748046875, - 29.7960205078125 - ] - ], - "pressures": [ - 0.068359375, - 0.44921875, - 0.6943359375, - 0.8369140625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.1884765625, - 0.12890625, - 0.0947265625, - 0.0380859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -34.17791748046875, - 29.7960205078125 - ] - }, - { - "id": "C6z8IqcqkV6KmfvypMhxg", - "type": "freedraw", - "x": -137.0443333217072, - "y": -47.319295610700124, - "width": 36.80694580078125, - "height": 39.43603515625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 567515651, - "version": 611, - "versionNonce": 1614480429, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.13446044921875, - -3.50537109375 - ], - [ - -1.752685546875, - 0 - ], - [ - 7.88720703125, - 10.5162353515625 - ], - [ - 14.8980712890625, - 19.27984619140625 - ], - [ - 21.908935546875, - 27.16705322265625 - ], - [ - 26.29071044921875, - 32.4251708984375 - ], - [ - 28.91973876953125, - 35.9306640625 - ], - [ - 29.79608154296875, - 35.9306640625 - ], - [ - 30.6724853515625, - 34.1778564453125 - ], - [ - 30.6724853515625, - 32.4251708984375 - ], - [ - 30.6724853515625, - 31.548828125 - ], - [ - 30.6724853515625, - 31.548828125 - ] - ], - "pressures": [ - 0.0185546875, - 0.2080078125, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.203125, - 0.1083984375, - 0.048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 30.6724853515625, - 31.548828125 - ] - }, - { - "id": "P-zfeWQFsBYDhnlELbYNR", - "type": "freedraw", - "x": -147.56062970842595, - "y": -50.824666704450124, - "width": 54.3341064453125, - "height": 35.93060302734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1712404803, - "version": 612, - "versionNonce": 403202339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -1.7528076171875 - ], - [ - 2.62908935546875, - 2.6290283203125 - ], - [ - 10.51629638671875, - 9.63983154296875 - ], - [ - 19.27984619140625, - 16.65069580078125 - ], - [ - 28.04339599609375, - 22.78521728515625 - ], - [ - 37.683349609375, - 28.919677734375 - ], - [ - 42.94146728515625, - 30.67242431640625 - ], - [ - 46.4468994140625, - 32.42510986328125 - ], - [ - 49.95233154296875, - 33.30145263671875 - ], - [ - 52.5814208984375, - 34.17779541015625 - ], - [ - 51.70501708984375, - 31.54876708984375 - ], - [ - 50.82867431640625, - 30.67242431640625 - ], - [ - 50.82867431640625, - 30.67242431640625 - ] - ], - "pressures": [ - 0.0751953125, - 0.708984375, - 0.8447265625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9404296875, - 0.38671875, - 0.12109375, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 50.82867431640625, - 30.67242431640625 - ] - }, - { - "id": "DLbBpedgbfzb8CH0pHXna", - "type": "freedraw", - "x": -145.8078831263947, - "y": -53.453817095075124, - "width": 42.0650634765625, - "height": 33.30157470703125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 433452333, - "version": 611, - "versionNonce": 335804045, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.8763427734375 - ], - [ - 4.38177490234375, - 5.2581787109375 - ], - [ - 10.51629638671875, - 12.26898193359375 - ], - [ - 21.90887451171875, - 22.7852783203125 - ], - [ - 28.91973876953125, - 28.9197998046875 - ], - [ - 34.1778564453125, - 31.548828125 - ], - [ - 37.68328857421875, - 33.30157470703125 - ], - [ - 40.3123779296875, - 33.30157470703125 - ], - [ - 41.188720703125, - 33.30157470703125 - ], - [ - 42.0650634765625, - 33.30157470703125 - ], - [ - 42.0650634765625, - 32.4251708984375 - ], - [ - 42.0650634765625, - 32.4251708984375 - ] - ], - "pressures": [ - 0.0751953125, - 0.8642578125, - 0.92578125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6640625, - 0.287109375, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.0650634765625, - 32.4251708984375 - ] - }, - { - "id": "YxHzDiKRXFRIYHlKfJPu3", - "type": "freedraw", - "x": -114.2590550013947, - "y": -26.286763872418874, - "width": 47.32318115234375, - "height": 21.908935546875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1415772621, - "version": 616, - "versionNonce": 390481091, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -0.8763427734375, - 1.75274658203125 - ], - [ - 1.752685546875, - 3.50543212890625 - ], - [ - 5.25811767578125, - 5.25811767578125 - ], - [ - 11.39263916015625, - 7.0108642578125 - ], - [ - 17.527099609375, - 7.88720703125 - ], - [ - 28.04339599609375, - 7.0108642578125 - ], - [ - 35.05426025390625, - 5.25811767578125 - ], - [ - 38.55963134765625, - 4.38177490234375 - ], - [ - 41.18865966796875, - 2.62908935546875 - ], - [ - 43.81781005859375, - 0.8763427734375 - ], - [ - 45.57049560546875, - 0 - ], - [ - 45.57049560546875, - -0.8763427734375 - ], - [ - 46.44683837890625, - -2.6290283203125 - ], - [ - 46.44683837890625, - -5.25811767578125 - ], - [ - 42.94146728515625, - -9.639892578125 - ], - [ - 40.31231689453125, - -12.26898193359375 - ], - [ - 38.55963134765625, - -13.14532470703125 - ], - [ - 36.80694580078125, - -14.021728515625 - ], - [ - 35.93060302734375, - -14.021728515625 - ], - [ - 35.93060302734375, - -14.021728515625 - ] - ], - "pressures": [ - 0.0048828125, - 0.322265625, - 0.701171875, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.802734375, - 0.58203125, - 0.30859375, - 0.15625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.93060302734375, - -14.021728515625 - ] - }, - { - "id": "ylqASSF-zAppj7TfRmUgO", - "type": "freedraw", - "x": -99.36104474748845, - "y": -54.330159868512624, - "width": 46.4468994140625, - "height": 30.67242431640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 816770403, - "version": 613, - "versionNonce": 448765165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.50543212890625, - -0.87628173828125 - ], - [ - 8.76361083984375, - 0 - ], - [ - 14.8980712890625, - 1.752685546875 - ], - [ - 22.7852783203125, - 4.38177490234375 - ], - [ - 30.6724853515625, - 7.88726806640625 - ], - [ - 38.5596923828125, - 11.39263916015625 - ], - [ - 45.570556640625, - 15.7744140625 - ], - [ - 46.4468994140625, - 16.65081787109375 - ], - [ - 46.4468994140625, - 19.27984619140625 - ], - [ - 44.6942138671875, - 21.90887451171875 - ], - [ - 40.3123779296875, - 24.5379638671875 - ], - [ - 31.548828125, - 28.04339599609375 - ], - [ - 27.1671142578125, - 28.04339599609375 - ], - [ - 22.7852783203125, - 28.91973876953125 - ], - [ - 20.15625, - 28.91973876953125 - ], - [ - 18.403564453125, - 28.91973876953125 - ], - [ - 17.527099609375, - 28.91973876953125 - ], - [ - 19.2799072265625, - 29.796142578125 - ], - [ - 19.2799072265625, - 29.796142578125 - ] - ], - "pressures": [ - 0.1572265625, - 0.6220703125, - 0.8642578125, - 0.9580078125, - 1, - 1, - 0.98828125, - 0.9365234375, - 0.931640625, - 0.9296875, - 0.904296875, - 0.857421875, - 0.8515625, - 0.849609375, - 0.8388671875, - 0.798828125, - 0.703125, - 0.5205078125, - 0.1201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 19.2799072265625, - 29.796142578125 - ] - }, - { - "id": "8fwSQeeO1XK_vqEsM6FPs", - "type": "freedraw", - "x": -97.6082981654572, - "y": -51.701070513043874, - "width": 64.850341796875, - "height": 38.5596923828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1573157187, - "version": 619, - "versionNonce": 675722339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.75274658203125 - ], - [ - 1.752685546875, - -1.75274658203125 - ], - [ - 7.88720703125, - -1.75274658203125 - ], - [ - 16.65081787109375, - -0.87640380859375 - ], - [ - 31.54876708984375, - 4.38177490234375 - ], - [ - 35.93060302734375, - 6.13446044921875 - ], - [ - 46.44683837890625, - 9.63995361328125 - ], - [ - 50.82867431640625, - 13.14532470703125 - ], - [ - 52.58135986328125, - 16.6507568359375 - ], - [ - 52.58135986328125, - 21.03253173828125 - ], - [ - 44.69415283203125, - 27.16705322265625 - ], - [ - 35.93060302734375, - 31.548828125 - ], - [ - 26.29071044921875, - 34.1778564453125 - ], - [ - 13.14532470703125, - 36.80694580078125 - ], - [ - 7.0108642578125, - 36.80694580078125 - ], - [ - 1.752685546875, - 35.93060302734375 - ], - [ - -1.75274658203125, - 35.05419921875 - ], - [ - -4.38177490234375, - 34.1778564453125 - ], - [ - -7.0108642578125, - 31.548828125 - ], - [ - -10.51629638671875, - 27.16705322265625 - ], - [ - -11.39263916015625, - 23.66162109375 - ], - [ - -12.26898193359375, - 21.90887451171875 - ], - [ - -10.51629638671875, - 22.7852783203125 - ], - [ - -9.63995361328125, - 23.66162109375 - ], - [ - -9.63995361328125, - 23.66162109375 - ] - ], - "pressures": [ - 0.0390625, - 0.2578125, - 0.478515625, - 0.5947265625, - 0.638671875, - 0.6826171875, - 0.728515625, - 0.744140625, - 0.748046875, - 0.748046875, - 0.7421875, - 0.669921875, - 0.666015625, - 0.669921875, - 0.6552734375, - 0.599609375, - 0.5693359375, - 0.5556640625, - 0.54296875, - 0.46875, - 0.3505859375, - 0.294921875, - 0.2763671875, - 0.130859375, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.63995361328125, - 23.66162109375 - ] - }, - { - "id": "lXWNs5lSyQjbcawv41Kj_", - "type": "freedraw", - "x": -112.5063694545197, - "y": -27.163106645856374, - "width": 66.60308837890625, - "height": 36.806884765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1478355789, - "version": 621, - "versionNonce": 1811380045, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.75274658203125, - 1.752685546875 - ], - [ - 9.63995361328125, - 5.25811767578125 - ], - [ - 16.6507568359375, - 7.0108642578125 - ], - [ - 23.66162109375, - 8.7635498046875 - ], - [ - 31.54888916015625, - 8.7635498046875 - ], - [ - 42.06512451171875, - 7.88720703125 - ], - [ - 49.95233154296875, - 5.25811767578125 - ], - [ - 56.96319580078125, - 2.62908935546875 - ], - [ - 62.22125244140625, - 0 - ], - [ - 64.85040283203125, - -4.38177490234375 - ], - [ - 66.60308837890625, - -8.7635498046875 - ], - [ - 66.60308837890625, - -10.5162353515625 - ], - [ - 63.09759521484375, - -14.021728515625 - ], - [ - 56.96319580078125, - -16.6507568359375 - ], - [ - 45.57049560546875, - -21.03253173828125 - ], - [ - 39.43597412109375, - -22.7852783203125 - ], - [ - 34.17791748046875, - -23.66156005859375 - ], - [ - 29.79608154296875, - -24.5379638671875 - ], - [ - 25.414306640625, - -25.41436767578125 - ], - [ - 21.03253173828125, - -27.16705322265625 - ], - [ - 20.15618896484375, - -28.0433349609375 - ], - [ - 20.15618896484375, - -26.29071044921875 - ], - [ - 20.15618896484375, - -24.5379638671875 - ], - [ - 20.15618896484375, - -23.66156005859375 - ], - [ - 20.15618896484375, - -22.7852783203125 - ], - [ - 20.15618896484375, - -21.908935546875 - ], - [ - 20.15618896484375, - -21.908935546875 - ] - ], - "pressures": [ - 0.0078125, - 0.310546875, - 0.54296875, - 0.6923828125, - 0.796875, - 0.8681640625, - 0.8955078125, - 0.904296875, - 0.90625, - 0.9150390625, - 0.921875, - 0.923828125, - 0.9189453125, - 0.9111328125, - 0.8896484375, - 0.7783203125, - 0.736328125, - 0.7265625, - 0.6845703125, - 0.6181640625, - 0.5498046875, - 0.537109375, - 0.271484375, - 0.16015625, - 0.125, - 0.1123046875, - 0.0693359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 20.15618896484375, - -21.908935546875 - ] - }, - { - "id": "6E5zik-OZFxTW_CXRiSHr", - "type": "freedraw", - "x": -101.11373029436345, - "y": -55.206441606793874, - "width": 56.96319580078125, - "height": 36.806884765625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1574612675, - "version": 620, - "versionNonce": 181940227, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - 0 - ], - [ - 10.51629638671875, - 1.75262451171875 - ], - [ - 17.527099609375, - 5.258056640625 - ], - [ - 25.414306640625, - 8.7635498046875 - ], - [ - 31.548828125, - 13.14532470703125 - ], - [ - 37.683349609375, - 16.65069580078125 - ], - [ - 43.8177490234375, - 23.66156005859375 - ], - [ - 44.6942138671875, - 28.0433349609375 - ], - [ - 44.6942138671875, - 31.54876708984375 - ], - [ - 41.188720703125, - 34.17779541015625 - ], - [ - 28.9197998046875, - 35.9305419921875 - ], - [ - 19.27978515625, - 36.806884765625 - ], - [ - 9.639892578125, - 36.806884765625 - ], - [ - 1.752685546875, - 36.806884765625 - ], - [ - -3.50543212890625, - 35.05419921875 - ], - [ - -8.7635498046875, - 33.30145263671875 - ], - [ - -9.639892578125, - 32.42510986328125 - ], - [ - -10.51629638671875, - 31.54876708984375 - ], - [ - -11.39263916015625, - 30.67242431640625 - ], - [ - -12.26898193359375, - 28.919677734375 - ], - [ - -12.26898193359375, - 28.0433349609375 - ], - [ - -12.26898193359375, - 27.1669921875 - ], - [ - -11.39263916015625, - 27.1669921875 - ], - [ - -10.51629638671875, - 27.1669921875 - ], - [ - -9.639892578125, - 27.1669921875 - ], - [ - -9.639892578125, - 27.1669921875 - ] - ], - "pressures": [ - 0.107421875, - 0.5849609375, - 0.75390625, - 0.884765625, - 0.98828125, - 1, - 1, - 0.994140625, - 0.9814453125, - 0.9794921875, - 0.9814453125, - 0.990234375, - 0.9833984375, - 0.96484375, - 0.9384765625, - 0.9189453125, - 0.880859375, - 0.859375, - 0.80078125, - 0.58984375, - 0.3662109375, - 0.25390625, - 0.2177734375, - 0.1513671875, - 0.115234375, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.639892578125, - 27.1669921875 - ] - }, - { - "id": "7LoUwsHQFYXj6xLyw6Z0R", - "type": "freedraw", - "x": -146.524946336622, - "y": -47.39896313555806, - "width": 55.21038818359375, - "height": 25.41436767578125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 734663523, - "version": 617, - "versionNonce": 1376060845, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.752685546875, - -0.87640380859375 - ], - [ - -1.752685546875, - -1.75274658203125 - ], - [ - -1.752685546875, - -0.87640380859375 - ], - [ - 1.75274658203125, - 1.75274658203125 - ], - [ - 7.0108642578125, - 5.25811767578125 - ], - [ - 12.26898193359375, - 8.7635498046875 - ], - [ - 22.7852783203125, - 14.8980712890625 - ], - [ - 31.548828125, - 19.27984619140625 - ], - [ - 39.43603515625, - 22.78521728515625 - ], - [ - 45.57049560546875, - 23.66162109375 - ], - [ - 50.82867431640625, - 23.66162109375 - ], - [ - 52.58135986328125, - 21.90887451171875 - ], - [ - 53.45770263671875, - 21.03253173828125 - ], - [ - 53.45770263671875, - 20.15618896484375 - ], - [ - 53.45770263671875, - 20.15618896484375 - ] - ], - "pressures": [ - 0.025390625, - 0.07421875, - 0.1484375, - 0.5234375, - 0.62890625, - 0.75390625, - 0.927734375, - 1, - 1, - 1, - 1, - 0.734375, - 0.3994140625, - 0.2626953125, - 0.1201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.45770263671875, - 20.15618896484375 - ] - }, - { - "id": "b80VJQPOOU8EKE1_bioY5", - "type": "freedraw", - "x": -116.88814435686345, - "y": -32.421285356793874, - "width": 48.1995849609375, - "height": 24.5379638671875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 403090253, - "version": 613, - "versionNonce": 16332707, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.62908935546875, - 3.5054931640625 - ], - [ - 6.134521484375, - 6.134521484375 - ], - [ - 9.639892578125, - 6.134521484375 - ], - [ - 15.7744140625, - 7.0108642578125 - ], - [ - 21.03253173828125, - 6.134521484375 - ], - [ - 27.16705322265625, - 6.134521484375 - ], - [ - 35.05419921875, - 4.3818359375 - ], - [ - 38.5596923828125, - 2.62908935546875 - ], - [ - 42.0650634765625, - 0 - ], - [ - 44.6942138671875, - -1.752685546875 - ], - [ - 47.3232421875, - -4.38177490234375 - ], - [ - 48.1995849609375, - -6.13446044921875 - ], - [ - 45.570556640625, - -8.7635498046875 - ], - [ - 40.3123779296875, - -12.26898193359375 - ], - [ - 35.05419921875, - -14.89801025390625 - ], - [ - 27.16705322265625, - -16.6507568359375 - ], - [ - 22.7852783203125, - -16.6507568359375 - ], - [ - 18.40350341796875, - -16.6507568359375 - ], - [ - 14.8980712890625, - -16.6507568359375 - ], - [ - 12.26898193359375, - -16.6507568359375 - ], - [ - 10.51629638671875, - -16.6507568359375 - ], - [ - 9.639892578125, - -17.527099609375 - ], - [ - 9.639892578125, - -17.527099609375 - ] - ], - "pressures": [ - 0.091796875, - 0.2841796875, - 0.3876953125, - 0.515625, - 0.716796875, - 0.8408203125, - 0.923828125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.966796875, - 0.884765625, - 0.8134765625, - 0.80078125, - 0.7763671875, - 0.75, - 0.70703125, - 0.6953125, - 0.1787109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.639892578125, - -17.527099609375 - ] - }, - { - "id": "yqWJsZPFvsMWzQlpR9DgZ", - "type": "freedraw", - "x": -101.99007306780095, - "y": -55.206441606793874, - "width": 40.31231689453125, - "height": 32.42523193359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1420369507, - "version": 620, - "versionNonce": 269600781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.75274658203125, - -1.7528076171875 - ], - [ - -0.8763427734375, - -1.7528076171875 - ], - [ - 1.752685546875, - -1.7528076171875 - ], - [ - 6.13446044921875, - -0.87640380859375 - ], - [ - 14.02166748046875, - 2.62896728515625 - ], - [ - 19.27978515625, - 5.258056640625 - ], - [ - 24.5379638671875, - 7.88714599609375 - ], - [ - 28.919677734375, - 9.63983154296875 - ], - [ - 33.301513671875, - 13.14532470703125 - ], - [ - 35.05419921875, - 15.77435302734375 - ], - [ - 35.9305419921875, - 18.40338134765625 - ], - [ - 35.9305419921875, - 21.032470703125 - ], - [ - 34.1778564453125, - 23.66156005859375 - ], - [ - 28.0433349609375, - 27.1669921875 - ], - [ - 23.66162109375, - 28.919677734375 - ], - [ - 17.527099609375, - 29.7960205078125 - ], - [ - 12.26898193359375, - 30.67242431640625 - ], - [ - 7.0108642578125, - 30.67242431640625 - ], - [ - 2.6290283203125, - 30.67242431640625 - ], - [ - 0.8763427734375, - 30.67242431640625 - ], - [ - 0, - 30.67242431640625 - ], - [ - -1.75274658203125, - 29.7960205078125 - ], - [ - -2.62908935546875, - 29.7960205078125 - ], - [ - -4.38177490234375, - 28.919677734375 - ], - [ - -4.38177490234375, - 28.0433349609375 - ], - [ - -4.38177490234375, - 27.1669921875 - ], - [ - -4.38177490234375, - 26.2906494140625 - ], - [ - -3.50543212890625, - 26.2906494140625 - ], - [ - -2.62908935546875, - 26.2906494140625 - ], - [ - -2.62908935546875, - 26.2906494140625 - ] - ], - "pressures": [ - 0.021484375, - 0.3857421875, - 0.6337890625, - 0.830078125, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.9189453125, - 0.83203125, - 0.6845703125, - 0.447265625, - 0.294921875, - 0.1669921875, - 0.099609375, - 0.0537109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.62908935546875, - 26.2906494140625 - ] - }, - { - "id": "sEBrgdk-81dfN84GK7F26", - "type": "freedraw", - "x": -97.6082981654572, - "y": -53.453817095075124, - "width": 43.8177490234375, - "height": 26.29071044921875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 284070723, - "version": 617, - "versionNonce": 148392771, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - -0.8763427734375, - -0.8763427734375 - ], - [ - 0.8763427734375, - -0.8763427734375 - ], - [ - 4.38177490234375, - -0.8763427734375 - ], - [ - 7.88720703125, - -0.8763427734375 - ], - [ - 11.39263916015625, - -0.8763427734375 - ], - [ - 15.77435302734375, - 0.8763427734375 - ], - [ - 20.15618896484375, - 2.629150390625 - ], - [ - 26.29071044921875, - 6.134521484375 - ], - [ - 30.67242431640625, - 8.7635498046875 - ], - [ - 34.17791748046875, - 12.26898193359375 - ], - [ - 37.68328857421875, - 16.6507568359375 - ], - [ - 38.55963134765625, - 19.27984619140625 - ], - [ - 37.68328857421875, - 21.03253173828125 - ], - [ - 33.30157470703125, - 22.7852783203125 - ], - [ - 26.29071044921875, - 23.66162109375 - ], - [ - 18.40350341796875, - 23.66162109375 - ], - [ - 9.639892578125, - 23.66162109375 - ], - [ - 6.13446044921875, - 24.53802490234375 - ], - [ - 2.62908935546875, - 24.53802490234375 - ], - [ - 0, - 25.41436767578125 - ], - [ - -2.62908935546875, - 25.41436767578125 - ], - [ - -3.50543212890625, - 25.41436767578125 - ], - [ - -5.25811767578125, - 25.41436767578125 - ], - [ - -4.38177490234375, - 24.53802490234375 - ], - [ - -3.50543212890625, - 23.66162109375 - ], - [ - -3.50543212890625, - 23.66162109375 - ] - ], - "pressures": [ - 0.056640625, - 0.50390625, - 0.6181640625, - 0.828125, - 0.90234375, - 0.94921875, - 0.966796875, - 0.9814453125, - 0.9814453125, - 0.9814453125, - 0.98828125, - 0.98828125, - 0.970703125, - 0.96875, - 0.9560546875, - 0.9453125, - 0.9365234375, - 0.9404296875, - 0.92578125, - 0.904296875, - 0.8935546875, - 0.8388671875, - 0.79296875, - 0.7646484375, - 0.630859375, - 0.111328125, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.50543212890625, - 23.66162109375 - ] - }, - { - "id": "TZ1LxoS04CNmborMMbKCM", - "type": "freedraw", - "x": -99.36104474748845, - "y": -54.330159868512624, - "width": 35.05419921875, - "height": 28.919677734375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 369304269, - "version": 618, - "versionNonce": 1209482861, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.8763427734375, - 0 - ], - [ - 0, - 0 - ], - [ - 1.75274658203125, - -0.87628173828125 - ], - [ - 4.3818359375, - -0.87628173828125 - ], - [ - 8.76361083984375, - 0 - ], - [ - 14.021728515625, - 0.8763427734375 - ], - [ - 20.15625, - 3.5054931640625 - ], - [ - 23.66162109375, - 5.25811767578125 - ], - [ - 27.1671142578125, - 7.0108642578125 - ], - [ - 29.796142578125, - 9.639892578125 - ], - [ - 32.4251708984375, - 14.02166748046875 - ], - [ - 33.301513671875, - 17.527099609375 - ], - [ - 33.301513671875, - 20.15618896484375 - ], - [ - 32.4251708984375, - 21.90887451171875 - ], - [ - 27.1671142578125, - 23.66162109375 - ], - [ - 18.403564453125, - 26.29071044921875 - ], - [ - 14.021728515625, - 27.16705322265625 - ], - [ - 10.51629638671875, - 28.04339599609375 - ], - [ - 8.76361083984375, - 28.04339599609375 - ], - [ - 4.3818359375, - 28.04339599609375 - ], - [ - 2.62908935546875, - 27.16705322265625 - ], - [ - 0, - 26.29071044921875 - ], - [ - -0.8763427734375, - 25.41436767578125 - ], - [ - -1.752685546875, - 25.41436767578125 - ], - [ - -1.752685546875, - 24.5379638671875 - ], - [ - -1.752685546875, - 23.66162109375 - ], - [ - -0.8763427734375, - 23.66162109375 - ], - [ - -0.8763427734375, - 23.66162109375 - ] - ], - "pressures": [ - 0.0888671875, - 0.2998046875, - 0.5107421875, - 0.70703125, - 0.8916015625, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.9404296875, - 0.8720703125, - 0.8134765625, - 0.787109375, - 0.2578125, - 0.1943359375, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.8763427734375, - 23.66162109375 - ] - }, - { - "id": "UlDXTNxNrqa7vlTOA19pN", - "type": "freedraw", - "x": -107.13972512865541, - "y": -56.3370108947604, - "width": 53.320455577674664, - "height": 32.93325771655816, - "angle": 6.186401353121853, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 299701645, - "version": 667, - "versionNonce": 1456728803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0.013731869378068584 - ], - [ - 4.4433841925388045, - -0.8763427734375 - ], - [ - 9.997595091613436, - -0.8763427734375 - ], - [ - 16.662632697223895, - 0.013731869378068584 - ], - [ - 24.438651742161174, - 1.7940051381047366 - ], - [ - 33.32526539444779, - 4.464229066551443 - ], - [ - 38.87955365991792, - 6.244440343730345 - ], - [ - 43.322860486061224, - 8.91466427217705 - ], - [ - 47.766322044995526, - 10.694875549355952 - ], - [ - 52.20962887113883, - 15.145310754981562 - ], - [ - 53.320455577674664, - 18.705609326243838 - ], - [ - 53.320455577674664, - 22.265969889053878 - ], - [ - 48.87714875153135, - 25.826330451863917 - ], - [ - 42.2120337795254, - 28.496616371858387 - ], - [ - 29.99278527484031, - 32.05691494312066 - ], - [ - 22.216843596298528, - 32.05691494312066 - ], - [ - 15.551805990688068, - 32.05691494312066 - ], - [ - 9.997595091613436, - 31.166840300305093 - ], - [ - 5.554210899074632, - 30.276765657489527 - ], - [ - 3.3325574860029774, - 29.386691014673957 - ], - [ - 1.110826706535827, - 28.496616371858387 - ], - [ - 0, - 27.606479737495054 - ], - [ - 0, - 27.606479737495054 - ] - ], - "pressures": [ - 0.0830078125, - 0.705078125, - 0.8203125, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.92578125, - 0.87890625, - 0.8447265625, - 0.78125, - 0.62890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 27.16705322265625 - ] - }, - { - "id": "WkFs4uobIkkDixetBMhNy", - "type": "freedraw", - "x": -153.44862742238183, - "y": -143.93509525447678, - "width": 7.96686345880687, - "height": 30.274158824573817, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 939972653, - "version": 609, - "versionNonce": 551479501, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - 0.7967307350851911 - ], - [ - -3.186756480823874, - 2.390081232244313 - ], - [ - -3.9834317294034918, - 4.780162464488626 - ], - [ - -5.5767822265625, - 7.966863458806813 - ], - [ - -6.373512961647748, - 10.356944691051126 - ], - [ - -7.170188210227366, - 11.950350674715878 - ], - [ - -7.170188210227366, - 13.543701171875 - ], - [ - -7.96686345880687, - 15.933782404119313 - ], - [ - -7.96686345880687, - 19.91721413352269 - ], - [ - -7.96686345880687, - 22.307239879261317 - ], - [ - -6.373512961647748, - 24.69732111150563 - ], - [ - -6.373512961647748, - 26.290671608664752 - ], - [ - -5.5767822265625, - 27.08745783025563 - ], - [ - -5.5767822265625, - 27.884077592329504 - ], - [ - -4.780106977982996, - 29.477428089488626 - ], - [ - -3.9834317294034918, - 30.274158824573817 - ], - [ - -3.186756480823874, - 30.274158824573817 - ], - [ - -2.390025745738626, - 29.477428089488626 - ], - [ - -2.390025745738626, - 28.680752840909065 - ], - [ - -2.390025745738626, - 28.680752840909065 - ] - ], - "pressures": [ - 0.09375, - 0.2822265625, - 0.328125, - 0.3642578125, - 0.4345703125, - 0.48828125, - 0.5087890625, - 0.525390625, - 0.541015625, - 0.55859375, - 0.5537109375, - 0.53515625, - 0.5205078125, - 0.5146484375, - 0.5078125, - 0.4091796875, - 0.3125, - 0.1982421875, - 0.1025390625, - 0.0185546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - 28.680752840909065 - ] - }, - { - "id": "kPWSIFvoqigkhYEWqRGe6", - "type": "freedraw", - "x": -155.83865316812046, - "y": -137.5615822928291, - "width": 7.170188210227366, - "height": 25.493996360085248, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1001794339, - "version": 607, - "versionNonce": 259692163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 1.593350497159122 - ], - [ - -1.5934059836648657, - 4.780162464488626 - ], - [ - -3.186756480823874, - 7.170188210227309 - ], - [ - -5.576837713068244, - 10.356944691051126 - ], - [ - -5.576837713068244, - 11.950295188210248 - ], - [ - -6.373512961647748, - 13.543701171875 - ], - [ - -6.373512961647748, - 14.340376420454561 - ], - [ - -7.170188210227366, - 15.137051669034122 - ], - [ - -7.170188210227366, - 16.730457652698874 - ], - [ - -7.170188210227366, - 17.527132901278435 - ], - [ - -7.170188210227366, - 18.32380814985794 - ], - [ - -5.576837713068244, - 19.91715864701706 - ], - [ - -3.186756480823874, - 23.103915127840935 - ], - [ - -2.39008123224437, - 24.697376598011374 - ], - [ - -1.5934059836648657, - 25.493996360085248 - ], - [ - -0.7967307350852479, - 25.493996360085248 - ], - [ - -0.7967307350852479, - 23.103915127840935 - ], - [ - -0.7967307350852479, - 23.103915127840935 - ] - ], - "pressures": [ - 0.01953125, - 0.3759765625, - 0.4248046875, - 0.50390625, - 0.580078125, - 0.615234375, - 0.6337890625, - 0.640625, - 0.6474609375, - 0.6513671875, - 0.6552734375, - 0.6552734375, - 0.662109375, - 0.6591796875, - 0.6572265625, - 0.64453125, - 0.611328125, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7967307350852479, - 23.103915127840935 - ] - }, - { - "id": "D-Tif8J7p3wKdNuRVDVJD", - "type": "freedraw", - "x": -181.3326495282057, - "y": -171.02244211172115, - "width": 31.867509321732996, - "height": 91.61904074928981, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 581643107, - "version": 611, - "versionNonce": 738346797, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -4.780106977982939 - ], - [ - -0.7967307350852479, - -9.560269442471565 - ], - [ - 0, - -17.527132901278378 - ], - [ - 1.593350497159065, - -29.477428089488626 - ], - [ - 5.5767822265625, - -46.20785799893463 - ], - [ - 8.763538707386317, - -52.581370960582376 - ], - [ - 11.950295188210191, - -57.36150568181813 - ], - [ - 15.933726917613626, - -60.54823441938919 - ], - [ - 21.510509144176126, - -62.141612659801126 - ], - [ - 25.493996360085248, - -56.564802689985754 - ], - [ - 27.884022105823874, - -43.81780450994313 - ], - [ - 27.884022105823874, - -24.69732111150563 - ], - [ - 21.510509144176126, - 6.373512961647748 - ], - [ - 15.137051669034065, - 22.30729536576706 - ], - [ - 8.763538707386317, - 28.680752840909122 - ], - [ - 4.780106977982939, - 29.477428089488683 - ], - [ - 0.7966752485795041, - 23.103915127840935 - ], - [ - -3.186756480823874, - 6.373512961647748 - ], - [ - -3.983487215909122, - -6.373512961647691 - ], - [ - -3.983487215909122, - -18.32380814985794 - ], - [ - -2.39008123224437, - -30.27410333806813 - ], - [ - 0, - -40.63104802911931 - ], - [ - 3.18670099431813, - -50.19131747159088 - ], - [ - 4.780106977982939, - -54.17474920099431 - ], - [ - 5.5767822265625, - -54.97142444957382 - ], - [ - 6.373457475142004, - -55.76812744140619 - ], - [ - 8.763538707386317, - -54.97142444957382 - ], - [ - 9.560213955965878, - -52.581370960582376 - ], - [ - 10.356889204545439, - -50.19131747159088 - ], - [ - 10.356889204545439, - -49.3946144797585 - ], - [ - 10.356889204545439, - -49.3946144797585 - ] - ], - "pressures": [ - 0.0546875, - 0.234375, - 0.318359375, - 0.4521484375, - 0.6015625, - 0.6884765625, - 0.69921875, - 0.69921875, - 0.6806640625, - 0.66015625, - 0.66796875, - 0.6884765625, - 0.6943359375, - 0.67578125, - 0.6552734375, - 0.66015625, - 0.71484375, - 0.748046875, - 0.7421875, - 0.701171875, - 0.66015625, - 0.626953125, - 0.6083984375, - 0.5966796875, - 0.572265625, - 0.53125, - 0.357421875, - 0.22265625, - 0.1748046875, - 0.1103515625, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356889204545439, - -49.3946144797585 - ] - }, - { - "id": "iuDDRji4sBMsgdTUEYApf", - "type": "freedraw", - "x": -192.4862694678364, - "y": -173.41252334396546, - "width": 48.59791148792618, - "height": 110.73960737748575, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 648677059, - "version": 610, - "versionNonce": 1099615779, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -10.356944691051126 - ], - [ - -2.390081232244313, - -19.1204833984375 - ], - [ - -2.390081232244313, - -30.274103338068187 - ], - [ - 0, - -43.021101518110754 - ], - [ - 6.373457475142004, - -61.34490966796875 - ], - [ - 11.153619939630687, - -70.9051513671875 - ], - [ - 15.933726917613626, - -78.87204256924713 - ], - [ - 20.713833895596565, - -84.4488525390625 - ], - [ - 26.290671608664752, - -86.04223077947438 - ], - [ - 33.46085981889206, - -78.07533957741475 - ], - [ - 39.03764204545456, - -65.32834139737213 - ], - [ - 42.224398526278435, - -48.597911487926126 - ], - [ - 42.224398526278435, - -26.290671608664752 - ], - [ - 33.46085981889206, - 7.966863458806813 - ], - [ - 24.697265625, - 20.713944868607996 - ], - [ - 15.933726917613626, - 24.697376598011374 - ], - [ - 7.966863458806813, - 20.713944868607996 - ], - [ - 0.7966752485795041, - 8.763594193892061 - ], - [ - -4.780162464488683, - -16.730402166193187 - ], - [ - -6.373512961647748, - -34.257535067471565 - ], - [ - -6.373512961647748, - -48.597911487926126 - ], - [ - -5.576837713068187, - -58.158153187144876 - ], - [ - -0.7967307350852479, - -66.1250443892045 - ], - [ - 3.186700994318187, - -69.31177312677556 - ], - [ - 7.170132723721565, - -70.9051513671875 - ], - [ - 9.560213955965878, - -70.9051513671875 - ], - [ - 11.153619939630687, - -70.10847611860794 - ], - [ - 13.543645685369313, - -67.71842262961644 - ], - [ - 14.340320933948817, - -65.32834139737213 - ], - [ - 14.340320933948817, - -65.32834139737213 - ] - ], - "pressures": [ - 0.1064453125, - 0.3134765625, - 0.46484375, - 0.6064453125, - 0.720703125, - 0.80078125, - 0.8134765625, - 0.8203125, - 0.830078125, - 0.83203125, - 0.8427734375, - 0.8701171875, - 0.861328125, - 0.8154296875, - 0.697265625, - 0.6923828125, - 0.75390625, - 0.8095703125, - 0.78125, - 0.6953125, - 0.591796875, - 0.5458984375, - 0.5205078125, - 0.49609375, - 0.3837890625, - 0.3251953125, - 0.28515625, - 0.2607421875, - 0.1865234375, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340320933948817, - -65.32834139737213 - ] - }, - { - "id": "eYaF77kxSQWbHkCjtRb7k", - "type": "freedraw", - "x": -194.8763507000807, - "y": -170.2257668631416, - "width": 45.41115500710231, - "height": 89.22895951704544, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 855238445, - "version": 604, - "versionNonce": 199940493, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.950295188210191, - -70.10847611860794 - ], - [ - 14.340376420454504, - -70.90517911044032 - ], - [ - 23.90059037642044, - -73.29523259943181 - ], - [ - 30.27410333806813, - -71.70185435901988 - ], - [ - 35.850941051136374, - -66.1250443892045 - ], - [ - 38.240966796875, - -55.76809969815338 - ], - [ - 38.240966796875, - -39.037669788707376 - ], - [ - 33.460859818892004, - -19.1204833984375 - ], - [ - 23.103915127840878, - 5.576837713068187 - ], - [ - 15.137051669034065, - 14.340376420454561 - ], - [ - 7.966863458806813, - 15.933726917613626 - ], - [ - -0.796675248579561, - 11.950295188210248 - ], - [ - -4.780106977982996, - 5.576837713068187 - ], - [ - -7.170188210227309, - -3.186756480823874 - ], - [ - -7.170188210227309, - -15.137051669034065 - ], - [ - -4.780106977982996, - -30.274103338068187 - ], - [ - -0.796675248579561, - -45.411182750355124 - ], - [ - 6.373512961647691, - -58.95485617897725 - ], - [ - 9.560213955965878, - -62.93828790838069 - ], - [ - 11.15361993963063, - -63.73499090021306 - ], - [ - 11.950295188210191, - -64.53166614879262 - ], - [ - 11.950295188210191, - -63.73499090021306 - ], - [ - 11.950295188210191, - -62.93828790838069 - ], - [ - 11.950295188210191, - -62.93828790838069 - ] - ], - "pressures": [ - 0.0166015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.953125, - 0.923828125, - 0.7607421875, - 0.41796875, - 0.2392578125, - 0.1669921875, - 0.0654296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950295188210191, - -62.93828790838069 - ] - }, - { - "id": "Wmf63oMKM3W2HFsA8FmFN", - "type": "freedraw", - "x": -189.2995684735182, - "y": -188.54957501299953, - "width": 50.19126198508525, - "height": 97.9925537109375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1317354243, - "version": 612, - "versionNonce": 536023491, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -3.186756480823874 - ], - [ - -6.373457475142061, - -10.356944691051126 - ], - [ - -7.170188210227309, - -18.32380814985794 - ], - [ - -7.170188210227309, - -27.88404984907669 - ], - [ - -3.186700994318187, - -43.81780450994319 - ], - [ - 0, - -53.37804620916194 - ], - [ - 4.780162464488626, - -59.75153142755681 - ], - [ - 8.763594193892004, - -63.73499090021306 - ], - [ - 12.747025923295439, - -65.328369140625 - ], - [ - 19.12053888494313, - -63.73499090021306 - ], - [ - 28.68075284090901, - -54.1747214577415 - ], - [ - 34.25759055397725, - -45.411182750355124 - ], - [ - 36.64761629971588, - -36.647616299715935 - ], - [ - 34.25759055397725, - -17.527105158025563 - ], - [ - 28.68075284090901, - -0.796675248579561 - ], - [ - 19.91721413352269, - 15.933726917613626 - ], - [ - 10.356944691051126, - 27.88407759232956 - ], - [ - 1.593405983664752, - 32.6641845703125 - ], - [ - -5.5767822265625, - 31.867564808238626 - ], - [ - -11.950295188210248, - 19.917214133522748 - ], - [ - -13.54364568536937, - 8.763538707386374 - ], - [ - -13.54364568536937, - -3.186756480823874 - ], - [ - -11.950295188210248, - -25.493996360085248 - ], - [ - -7.96686345880687, - -38.240994540127815 - ], - [ - -3.983431729403435, - -48.597911487926126 - ], - [ - 0, - -54.971424449573874 - ], - [ - 2.390081232244313, - -57.361477938565315 - ], - [ - 3.983431729403378, - -58.15818093039775 - ], - [ - 4.780162464488626, - -56.56480268998581 - ], - [ - 5.57683771306813, - -54.1747214577415 - ], - [ - 5.57683771306813, - -53.37804620916194 - ], - [ - 5.57683771306813, - -53.37804620916194 - ] - ], - "pressures": [ - 0.099609375, - 0.26171875, - 0.439453125, - 0.552734375, - 0.69921875, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.966796875, - 0.8828125, - 0.7744140625, - 0.71875, - 0.677734375, - 0.626953125, - 0.44140625, - 0.259765625, - 0.1728515625, - 0.115234375, - 0.0048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.57683771306813, - -53.37804620916194 - ] - }, - { - "id": "zVUuBIP662wapPdbULots", - "type": "freedraw", - "x": -194.0796754515012, - "y": -183.7694680350166, - "width": 43.81780450994319, - "height": 93.21247447620738, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1333027149, - "version": 609, - "versionNonce": 1506942957, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -7.966863458806813 - ], - [ - -3.186756480823874, - -16.730402166193187 - ], - [ - -2.390081232244313, - -27.884022105823874 - ], - [ - 4.780106977982996, - -45.41115500710225 - ], - [ - 11.153619939630687, - -54.971396706321 - ], - [ - 18.323808149857996, - -62.141584916548254 - ], - [ - 24.697321111505687, - -66.12501664595169 - ], - [ - 31.070834073153378, - -64.53163840553975 - ], - [ - 35.05426580255687, - -57.361477938565315 - ], - [ - 37.444291548295496, - -43.817776766690315 - ], - [ - 37.444291548295496, - -24.697293368252815 - ], - [ - 35.05426580255687, - -3.983431729403378 - ], - [ - 27.88407759232956, - 17.527132901278435 - ], - [ - 22.307239879261374, - 24.697321111505687 - ], - [ - 15.933726917613626, - 27.087457830255687 - ], - [ - 9.560269442471622, - 27.087457830255687 - ], - [ - 0.796675248579561, - 19.917214133522748 - ], - [ - -3.186756480823874, - 12.747025923295439 - ], - [ - -5.5767822265625, - 4.780162464488626 - ], - [ - -6.373512961647691, - -3.983431729403378 - ], - [ - -5.5767822265625, - -14.340376420454561 - ], - [ - -3.983431729403378, - -21.51053688742894 - ], - [ - -1.593350497159065, - -28.68072509765625 - ], - [ - 1.593405983664809, - -35.054210316051126 - ], - [ - 4.780106977982996, - -38.240966796875 - ], - [ - 7.170188210227309, - -41.427723277698874 - ], - [ - 9.560269442471622, - -42.22439852627838 - ], - [ - 10.356944691051126, - -43.021101518110754 - ], - [ - 10.356944691051126, - -43.021101518110754 - ] - ], - "pressures": [ - 0.095703125, - 0.3642578125, - 0.5380859375, - 0.791015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.9814453125, - 0.9619140625, - 0.9384765625, - 0.71484375, - 0.4443359375, - 0.3125, - 0.2392578125, - 0.197265625, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - -43.021101518110754 - ] - }, - { - "id": "YbCu-eQQ6NpspLcOTQqeC", - "type": "freedraw", - "x": -188.50283773843302, - "y": -186.1594937807552, - "width": 43.81780450994319, - "height": 81.26209605823863, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1025820045, - "version": 605, - "versionNonce": 2077352291, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -3.186756480823874 - ], - [ - -4.780162464488626, - -9.560269442471565 - ], - [ - -4.780162464488626, - -18.32383589311081 - ], - [ - -2.390081232244313, - -33.460887562144876 - ], - [ - 1.593350497159122, - -42.224454012784065 - ], - [ - 7.170188210227309, - -48.597939231179 - ], - [ - 13.543645685369313, - -53.37807395241475 - ], - [ - 19.91715864701706, - -54.17474920099431 - ], - [ - 31.07077858664769, - -49.3946144797585 - ], - [ - 35.85088556463069, - -43.021129261363626 - ], - [ - 39.03764204545456, - -33.460887562144876 - ], - [ - 38.24096679687506, - -18.32383589311081 - ], - [ - 30.274103338068187, - 7.966863458806813 - ], - [ - 27.884022105823817, - 15.137051669034065 - ], - [ - 16.730402166193187, - 27.087346857244313 - ], - [ - -0.7967307350851911, - -19.120511141690315 - ], - [ - -0.7967307350851911, - -23.900645862926126 - ], - [ - -0.7967307350851911, - -31.86750932173294 - ], - [ - 1.593350497159122, - -40.63107577237213 - ], - [ - 3.186700994318187, - -43.021129261363626 - ], - [ - 3.983431729403435, - -43.81780450994319 - ], - [ - 4.780106977982939, - -43.81780450994319 - ], - [ - 5.5767822265625, - -43.81780450994319 - ], - [ - 6.373457475142061, - -43.021129261363626 - ], - [ - 6.373457475142061, - -43.021129261363626 - ] - ], - "pressures": [ - 0.0537109375, - 0.232421875, - 0.34765625, - 0.4931640625, - 0.8173828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90234375, - 0.8740234375, - 0.826171875, - 0.734375, - 0.61328125, - 0.4736328125, - 0.24609375, - 0.181640625, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373457475142061, - -43.021129261363626 - ] - }, - { - "id": "54bWY2x8621up8xEW6Y_i", - "type": "freedraw", - "x": -193.28300020292164, - "y": -175.00587384112453, - "width": 45.411210493607996, - "height": 92.41574374112213, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 780835085, - "version": 612, - "versionNonce": 1270979149, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -4.780162464488626 - ], - [ - -3.983431729403435, - -11.950295188210248 - ], - [ - -3.983431729403435, - -19.917214133522748 - ], - [ - -3.983431729403435, - -28.680752840909122 - ], - [ - 1.593405983664752, - -43.021129261363626 - ], - [ - 7.966863458806813, - -51.784695712002815 - ], - [ - 15.137051669034065, - -58.954883922230124 - ], - [ - 26.290671608664752, - -63.73499090021306 - ], - [ - 32.66418457031244, - -62.141612659801126 - ], - [ - 37.44434703480118, - -55.76812744140625 - ], - [ - 40.63104802911931, - -45.411182750355124 - ], - [ - 41.42777876420456, - -30.274131081321002 - ], - [ - 36.647616299715935, - -11.153619939630687 - ], - [ - 25.493996360085248, - 15.137051669034065 - ], - [ - 18.32380814985794, - 25.493996360085248 - ], - [ - 11.950350674715935, - 28.680752840909065 - ], - [ - 7.170188210227252, - 27.087346857244313 - ], - [ - 2.390081232244313, - 11.950295188210248 - ], - [ - 1.593405983664752, - -0.796675248579561 - ], - [ - 2.390081232244313, - -15.137051669034122 - ], - [ - 3.983431729403435, - -28.680752840909122 - ], - [ - 6.373512961647748, - -39.83437278053975 - ], - [ - 8.763594193892061, - -51.784695712002815 - ], - [ - 10.356944691051126, - -56.56480268998581 - ], - [ - 12.747025923295439, - -58.954883922230124 - ], - [ - 13.543701171875, - -58.954883922230124 - ], - [ - 14.340376420454561, - -58.954883922230124 - ], - [ - 15.137051669034065, - -58.954883922230124 - ], - [ - 15.137051669034065, - -58.15818093039775 - ], - [ - 15.137051669034065, - -57.36150568181819 - ], - [ - 15.137051669034065, - -56.56480268998581 - ], - [ - 15.137051669034065, - -56.56480268998581 - ] - ], - "pressures": [ - 0.0537109375, - 0.2802734375, - 0.4580078125, - 0.720703125, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8896484375, - 0.5146484375, - 0.3642578125, - 0.2021484375, - 0.134765625, - 0.1044921875, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.137051669034065, - -56.56480268998581 - ] - }, - { - "id": "lMwmZRPkDfIo7A2LTiC1l", - "type": "freedraw", - "x": -123.1745240843137, - "y": -245.11437770298534, - "width": 96.39920321377838, - "height": 107.55276766690338, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 38466925, - "version": 605, - "versionNonce": 2121645315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - 4.780134721235811 - ], - [ - 7.170188210227252, - 8.763566450639246 - ], - [ - 13.543701171875, - 12.746998180042624 - ], - [ - 23.103970614346622, - 16.73042990944606 - ], - [ - 41.427723277698874, - 19.120511141690372 - ], - [ - 53.37807395241475, - 15.137079412286937 - ], - [ - 64.53174937855113, - 7.170188210227309 - ], - [ - 73.2952880859375, - -4.780106977982939 - ], - [ - 79.66880104758525, - -18.32380814985794 - ], - [ - 85.245527787642, - -39.83434503728694 - ], - [ - 87.635664506392, - -50.19128972833806 - ], - [ - 86.8389892578125, - -54.17472145774144 - ], - [ - 80.46547629616475, - -54.17472145774144 - ], - [ - 63.73496315696025, - -41.427723277698874 - ], - [ - 53.37807395241475, - -24.697293368252815 - ], - [ - 46.2078857421875, - -3.983431729403378 - ], - [ - 43.02118474786937, - 19.917186390269876 - ], - [ - 45.411210493607996, - 39.83437278053981 - ], - [ - 58.954911665482996, - 53.37804620916194 - ], - [ - 69.31180087002838, - 53.37804620916194 - ], - [ - 77.27866432883525, - 45.411182750355124 - ], - [ - 84.4488525390625, - 30.27413108132106 - ], - [ - 94.00917746803975, - 0.796702991832376 - ], - [ - 96.39920321377838, - -14.340376420454504 - ], - [ - 96.39920321377838, - -18.32380814985794 - ], - [ - 96.39920321377838, - -18.32380814985794 - ] - ], - "pressures": [ - 0.1455078125, - 0.7421875, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.97265625, - 0.9365234375, - 0.9365234375, - 0.9423828125, - 0.947265625, - 0.900390625, - 0.787109375, - 0.611328125, - 0.4599609375, - 0.4306640625, - 0.23828125, - 0.162109375, - 0.130859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 96.39920321377838, - -18.32380814985794 - ] - }, - { - "id": "UUj6eeIATBtTh1duGHjsG", - "type": "freedraw", - "x": -191.6895942192569, - "y": -180.5827115541927, - "width": 46.2078857421875, - "height": 86.04223077947444, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1983999139, - "version": 604, - "versionNonce": 445827245, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -3.186756480823874 - ], - [ - -3.983431729403378, - -11.950295188210248 - ], - [ - -1.593405983664752, - -21.510564630681813 - ], - [ - 3.186756480823874, - -32.664156827059685 - ], - [ - 8.763538707386374, - -41.427723277698874 - ], - [ - 17.527132901278435, - -47.00453324751419 - ], - [ - 22.307239879261374, - -47.00453324751419 - ], - [ - 27.087346857244313, - -45.41115500710225 - ], - [ - 31.86745383522731, - -39.037669788707376 - ], - [ - 35.85094105113643, - -27.88404984907669 - ], - [ - 36.647616299715935, - -6.373457475142061 - ], - [ - 30.274103338068187, - 7.966863458806813 - ], - [ - 19.91715864701706, - 19.120538884943187 - ], - [ - 9.560213955965935, - 25.493996360085248 - ], - [ - -3.186756480823817, - 23.103970614346565 - ], - [ - -7.966863458806813, - 15.137051669034065 - ], - [ - -9.560269442471565, - 3.983431729403435 - ], - [ - -7.170188210227252, - -9.560213955965935 - ], - [ - -2.390081232244313, - -24.697293368252815 - ], - [ - 7.966863458806813, - -44.61447975852275 - ], - [ - 15.137051669034122, - -53.37804620916194 - ], - [ - 19.91715864701706, - -58.95485617897725 - ], - [ - 21.510564630681813, - -60.54823441938919 - ], - [ - 20.713833895596622, - -58.158153187144876 - ], - [ - 20.713833895596622, - -58.158153187144876 - ] - ], - "pressures": [ - 0, - 0.701171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.439453125, - 0.1103515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 20.713833895596622, - -58.158153187144876 - ] - }, - { - "id": "vmLjqjIhe2OwjaULqMVBq", - "type": "freedraw", - "x": -186.1128119926944, - "y": -179.78603630561315, - "width": 53.378018465909065, - "height": 78.07533957741481, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 281993507, - "version": 606, - "versionNonce": 593306787, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - -7.170132723721622 - ], - [ - -10.356944691051126, - -11.950295188210248 - ], - [ - -11.950295188210191, - -19.1204833984375 - ], - [ - -11.950295188210191, - -28.68072509765625 - ], - [ - -5.5767822265625, - -44.614452015269876 - ], - [ - 2.390081232244313, - -53.37801846590912 - ], - [ - 11.950350674715935, - -59.75153142755681 - ], - [ - 21.510564630681813, - -63.73496315696025 - ], - [ - 29.477428089488683, - -64.53163840553981 - ], - [ - 38.24102228338069, - -54.97139670632106 - ], - [ - 40.63104802911931, - -43.81777676669037 - ], - [ - 37.44434703480118, - -27.884022105823874 - ], - [ - 23.900645862926183, - -3.186700994318187 - ], - [ - 12.747025923295496, - 8.763594193892004 - ], - [ - 3.983431729403435, - 13.543701171875 - ], - [ - -3.186756480823817, - 12.747025923295439 - ], - [ - -7.966863458806813, - 7.9669189453125 - ], - [ - -11.153619939630687, - 0 - ], - [ - -12.746970436789752, - -12.746970436789809 - ], - [ - -11.950295188210191, - -22.307239879261374 - ], - [ - -7.966863458806813, - -32.664156827059685 - ], - [ - 0, - -45.41115500710231 - ], - [ - 5.576837713068187, - -50.19126198508525 - ], - [ - 8.763594193892061, - -51.784640225497185 - ], - [ - 10.356944691051183, - -51.784640225497185 - ], - [ - 10.356944691051183, - -50.987964976917624 - ], - [ - 10.356944691051183, - -50.987964976917624 - ] - ], - "pressures": [ - 0.087890625, - 0.4912109375, - 0.8876953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.5, - 0.240234375, - 0.1533203125, - 0.0234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051183, - -50.987964976917624 - ] - }, - { - "id": "7uTeG91Oqh77siMPlLJzS", - "type": "freedraw", - "x": -227.54047978388758, - "y": -184.56614328359615, - "width": 14.340431906960248, - "height": 77.27871981534093, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 312790445, - "version": 603, - "versionNonce": 1916180547, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39013671875, - -3.983431729403378 - ], - [ - -2.39013671875, - -7.966863458806813 - ], - [ - -1.593405983664752, - -19.1204833984375 - ], - [ - 0, - -27.88404984907669 - ], - [ - 3.186700994318187, - -35.8509133078835 - ], - [ - 5.57672674005687, - -41.42772327769882 - ], - [ - 7.96686345880687, - -45.41115500710225 - ], - [ - 8.763483220880687, - -45.41115500710225 - ], - [ - 10.356889204545496, - -44.61447975852269 - ], - [ - 11.950295188210248, - -37.44429154829544 - ], - [ - 11.950295188210248, - -20.71386163884938 - ], - [ - 6.373457475142061, - 11.153619939630687 - ], - [ - 2.390025745738683, - 26.29067160866481 - ], - [ - 1.593295010653435, - 31.867564808238683 - ], - [ - 0.796619762073874, - 31.867564808238683 - ], - [ - 0, - 22.307239879261374 - ], - [ - -0.7967307350851911, - 12.747025923295496 - ], - [ - -0.7967307350851911, - 1.593405983664809 - ], - [ - -0.7967307350851911, - -9.560213955965878 - ], - [ - 0, - -19.917186390269876 - ], - [ - 0.796619762073874, - -29.477428089488626 - ], - [ - 1.593295010653435, - -31.867481578480067 - ], - [ - 1.593295010653435, - -32.66415682705963 - ], - [ - 2.390025745738683, - -33.460859818892004 - ], - [ - 3.186700994318187, - -32.66415682705963 - ], - [ - 3.186700994318187, - -29.477428089488626 - ], - [ - 3.186700994318187, - -28.68072509765625 - ], - [ - 3.186700994318187, - -28.68072509765625 - ] - ], - "pressures": [ - 0.0576171875, - 0.2783203125, - 0.4365234375, - 0.9111328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8095703125, - 0.212890625, - 0.1484375, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186700994318187, - -28.68072509765625 - ] - }, - { - "id": "BMHhgwVq75qTuUmn1a84W", - "type": "freedraw", - "x": -231.52391151329095, - "y": -181.37938680277227, - "width": 16.730457652698874, - "height": 62.93828790838069, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 300111309, - "version": 603, - "versionNonce": 1682981229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -7.170188210227252 - ], - [ - 0, - -15.933726917613626 - ], - [ - 2.390025745738626, - -26.290671608664752 - ], - [ - 4.780051491477252, - -35.8509133078835 - ], - [ - 7.966863458806813, - -43.021101518110754 - ], - [ - 9.560158469460248, - -43.81780450994319 - ], - [ - 11.153564453125, - -44.61447975852269 - ], - [ - 12.746914950284065, - -43.81780450994319 - ], - [ - 15.136996182528378, - -34.25756281072444 - ], - [ - 15.933726917613626, - -20.713889382102252 - ], - [ - 15.136996182528378, - -4.780106977982939 - ], - [ - 13.543645685369313, - 7.966863458806813 - ], - [ - 11.950295188210248, - 15.933726917613626 - ], - [ - 10.356889204545439, - 18.323808149857996 - ], - [ - 7.966863458806813, - 15.137051669034122 - ], - [ - 5.576726740056813, - 8.763538707386374 - ], - [ - 3.983431729403378, - -1.593350497159065 - ], - [ - 3.186700994318187, - -17.527132901278378 - ], - [ - 3.186700994318187, - -26.290671608664752 - ], - [ - 4.780051491477252, - -31.867481578480124 - ], - [ - 5.576726740056813, - -35.8509133078835 - ], - [ - 7.170132723721565, - -39.037669788707376 - ], - [ - 7.966863458806813, - -39.83437278053975 - ], - [ - 8.763483220880687, - -39.83437278053975 - ], - [ - 8.763483220880687, - -39.037669788707376 - ], - [ - 8.763483220880687, - -38.240994540127815 - ], - [ - 8.763483220880687, - -37.44429154829544 - ], - [ - 8.763483220880687, - -37.44429154829544 - ] - ], - "pressures": [ - 0.13671875, - 0.4072265625, - 0.6923828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.830078125, - 0.318359375, - 0.154296875, - 0.0830078125, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.763483220880687, - -37.44429154829544 - ] - }, - { - "id": "jGDLGMURQR4DBllhAFxNu", - "type": "freedraw", - "x": -231.52391151329095, - "y": -183.7694680350166, - "width": 15.136996182528378, - "height": 65.328369140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1900311021, - "version": 600, - "versionNonce": 2027984867, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593295010653378, - -15.137051669034065 - ], - [ - 3.983431729403378, - -26.290671608664752 - ], - [ - 7.170132723721565, - -38.240966796875 - ], - [ - 11.153564453125, - -51.78464022549713 - ], - [ - 12.746914950284065, - -55.76809969815338 - ], - [ - 13.543645685369313, - -55.76809969815338 - ], - [ - 14.340320933948874, - -53.378018465909065 - ], - [ - 15.136996182528378, - -46.20783025568181 - ], - [ - 15.136996182528378, - -33.46083207563919 - ], - [ - 12.746914950284065, - -18.32380814985794 - ], - [ - 9.560158469460248, - -3.983431729403378 - ], - [ - 6.373457475142061, - 7.9669189453125 - ], - [ - 5.576726740056813, - 9.560269442471622 - ], - [ - 4.780051491477252, - 0.7967307350852479 - ], - [ - 4.780051491477252, - -9.560213955965878 - ], - [ - 4.780051491477252, - -21.51053688742894 - ], - [ - 5.576726740056813, - -31.867481578480124 - ], - [ - 6.373457475142061, - -38.240966796875 - ], - [ - 7.170132723721565, - -40.63102028586644 - ], - [ - 7.170132723721565, - -41.427723277698874 - ], - [ - 7.170132723721565, - -42.22439852627838 - ], - [ - 7.966863458806813, - -42.22439852627838 - ], - [ - 7.966863458806813, - -41.427723277698874 - ], - [ - 7.966863458806813, - -39.037669788707376 - ], - [ - 7.966863458806813, - -39.037669788707376 - ] - ], - "pressures": [ - 0.0107421875, - 0.611328125, - 0.884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.9423828125, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 0.92578125, - 0.826171875, - 0.47265625, - 0.36328125, - 0.16015625, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.966863458806813, - -39.037669788707376 - ] - }, - { - "id": "W6C4gu00R78oK1zlQNAXl", - "type": "freedraw", - "x": -229.93061650263758, - "y": -176.59927982478928, - "width": 13.543701171875, - "height": 80.46539306640625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1759606275, - "version": 603, - "versionNonce": 1962904525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7967307350851911 - ], - [ - 0, - -2.390025745738683 - ], - [ - 0, - -4.780106977982996 - ], - [ - 0, - -15.137051669034122 - ], - [ - 0, - -24.697265625 - ], - [ - 2.39013671875, - -35.85091330788356 - ], - [ - 4.780162464488683, - -46.207857998934685 - ], - [ - 7.170188210227309, - -54.97139670632106 - ], - [ - 10.35700017755687, - -61.34490966796875 - ], - [ - 11.153619939630687, - -62.14158491654831 - ], - [ - 11.950350674715935, - -61.34490966796875 - ], - [ - 12.747025923295496, - -55.768099698153435 - ], - [ - 12.747025923295496, - -35.85091330788356 - ], - [ - 9.560269442471622, - -17.527077414772748 - ], - [ - 4.780162464488683, - 0 - ], - [ - 1.593405983664809, - 12.747025923295439 - ], - [ - 0.7967307350852479, - 18.32380814985794 - ], - [ - 0, - 17.527132901278378 - ], - [ - -0.7966752485795041, - 11.950350674715878 - ], - [ - -0.7966752485795041, - 3.186756480823817 - ], - [ - -0.7966752485795041, - -7.170188210227309 - ], - [ - 0, - -17.527077414772748 - ], - [ - 2.39013671875, - -31.867481578480124 - ], - [ - 2.39013671875, - -36.64758855646312 - ], - [ - 2.39013671875, - -38.240966796875 - ], - [ - 2.39013671875, - -39.03766978870743 - ], - [ - 2.39013671875, - -39.83434503728694 - ], - [ - 2.39013671875, - -39.83434503728694 - ] - ], - "pressures": [ - 0.0966796875, - 0.140625, - 0.255859375, - 0.345703125, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.9775390625, - 0.97265625, - 1, - 1, - 1, - 1, - 0.9111328125, - 0.8056640625, - 0.583984375, - 0.2431640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.39013671875, - -39.83434503728694 - ] - }, - { - "id": "VVGsxfsCE1W8Grn73UfAz", - "type": "freedraw", - "x": -188.50283773843302, - "y": -219.6203813429001, - "width": 31.070778586647748, - "height": 59.75153142755681, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 449137933, - "version": 594, - "versionNonce": 437684781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -1.593378240411937 - ], - [ - -7.170188210227252, - 2.390081232244313 - ], - [ - -11.153619939630687, - 12.746998180042624 - ], - [ - -13.543701171875, - 22.30726762251419 - ], - [ - -14.340376420454561, - 30.274131081321002 - ], - [ - -14.340376420454561, - 36.64764404296875 - ], - [ - -12.747025923295439, - 42.22442626953125 - ], - [ - -5.576837713068187, - 46.20785799893463 - ], - [ - 0.796675248579561, - 47.00453324751419 - ], - [ - 7.966863458806813, - 44.61450750177556 - ], - [ - 12.746970436789809, - 39.037669788707376 - ], - [ - 16.730402166193187, - 25.494024103338063 - ], - [ - 16.730402166193187, - 15.137051669034065 - ], - [ - 15.933726917613626, - 6.373512961647691 - ], - [ - 12.746970436789809, - 0 - ], - [ - 8.763538707386374, - -4.780106977982939 - ], - [ - 0.796675248579561, - -5.576809969815372 - ], - [ - -3.983431729403378, - -0.796675248579561 - ], - [ - -8.763594193892061, - 7.170188210227252 - ], - [ - -11.950350674715878, - 18.32383589311081 - ], - [ - -14.340376420454561, - 32.664212313565315 - ], - [ - -14.340376420454561, - 39.037669788707376 - ], - [ - -11.950350674715878, - 43.02110151811081 - ], - [ - -8.763594193892061, - 47.00453324751419 - ], - [ - -3.983431729403378, - 50.19128972833806 - ], - [ - 1.593350497159122, - 53.37804620916194 - ], - [ - 3.186700994318187, - 54.17472145774144 - ], - [ - 3.186700994318187, - 54.17472145774144 - ] - ], - "pressures": [ - 0.037109375, - 0.2861328125, - 0.384765625, - 0.515625, - 0.6337890625, - 0.708984375, - 0.7783203125, - 0.798828125, - 0.8076171875, - 0.8076171875, - 0.8056640625, - 0.8134765625, - 0.8720703125, - 0.8955078125, - 0.8896484375, - 0.880859375, - 0.8701171875, - 0.8720703125, - 0.8740234375, - 0.8740234375, - 0.861328125, - 0.78125, - 0.6953125, - 0.6337890625, - 0.5341796875, - 0.369140625, - 0.2001953125, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186700994318187, - 54.17472145774144 - ] - }, - { - "id": "0BLVds-Y1OyFOPp5K9MiJ", - "type": "freedraw", - "x": -189.2995684735182, - "y": -174.20919859254496, - "width": 17.527132901278378, - "height": 59.75155917080963, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2129024867, - "version": 595, - "versionNonce": 537934627, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558541, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186700994318187, - -3.983431729403435 - ], - [ - -4.780106977982996, - -13.543701171875 - ], - [ - -5.5767822265625, - -22.307239879261374 - ], - [ - -5.5767822265625, - -31.070806329900563 - ], - [ - -3.983431729403435, - -43.02110151811081 - ], - [ - -3.186700994318187, - -46.207857998934685 - ], - [ - -1.593350497159122, - -51.78466796875 - ], - [ - -0.796675248579561, - -52.581370960582376 - ], - [ - 0.7967307350851911, - -52.581370960582376 - ], - [ - 6.373512961647691, - -47.00456099076706 - ], - [ - 9.560269442471565, - -39.83437278053981 - ], - [ - 11.950350674715878, - -31.070806329900563 - ], - [ - 11.950350674715878, - -20.71388938210231 - ], - [ - 11.15361993963063, - -6.373512961647748 - ], - [ - 9.560269442471565, - 0.7966752485795041 - ], - [ - 7.170188210227252, - 5.576837713068187 - ], - [ - 6.373512961647691, - 7.170188210227252 - ], - [ - 3.983431729403378, - 7.170188210227252 - ], - [ - 0, - 1.593350497159065 - ], - [ - -2.390025745738683, - -3.983431729403435 - ], - [ - -3.983431729403435, - -8.763538707386374 - ], - [ - -4.780106977982996, - -13.543701171875 - ], - [ - -4.780106977982996, - -16.730457652698874 - ], - [ - -3.983431729403435, - -18.323808149857996 - ], - [ - -3.186700994318187, - -19.1204833984375 - ], - [ - -1.593350497159122, - -20.71388938210231 - ], - [ - -0.796675248579561, - -21.510564630681813 - ], - [ - 0, - -21.510564630681813 - ], - [ - 0, - -21.510564630681813 - ] - ], - "pressures": [ - 0.060546875, - 0.4306640625, - 0.8115234375, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8642578125, - 0.67578125, - 0.3564453125, - 0.2216796875, - 0.1396484375, - 0.0244140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -21.510564630681813 - ] - }, - { - "id": "_T_WiewX9bZJb8thSYTJe", - "type": "freedraw", - "x": -221.16702230874552, - "y": -198.90651970405065, - "width": 13.543701171875, - "height": 46.20785799893463, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1502957549, - "version": 583, - "versionNonce": 1417591949, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -5.576809969815372 - ], - [ - -0.7967307350851911, - -7.170160466974437 - ], - [ - -6.373457475142061, - -17.527105158025563 - ], - [ - -7.170188210227252, - -17.527105158025563 - ], - [ - -7.966863458806813, - -17.527105158025563 - ], - [ - -8.763594193892061, - -15.933726917613626 - ], - [ - -10.356889204545439, - -11.153619939630687 - ], - [ - -12.747025923295439, - -0.796675248579561 - ], - [ - -13.543701171875, - 8.763594193892004 - ], - [ - -13.543701171875, - 16.730457652698874 - ], - [ - -13.543701171875, - 22.307239879261374 - ], - [ - -11.950350674715878, - 26.290671608664752 - ], - [ - -10.356889204545439, - 27.884077592329504 - ], - [ - -9.560269442471565, - 28.680752840909065 - ], - [ - -8.763594193892061, - 28.680752840909065 - ], - [ - -7.966863458806813, - 28.680752840909065 - ], - [ - -7.966863458806813, - 27.884077592329504 - ], - [ - -7.966863458806813, - 27.884077592329504 - ] - ], - "pressures": [ - 0.072265625, - 0.3701171875, - 0.4140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.900390625, - 0.802734375, - 0.703125, - 0.53515625, - 0.28515625, - 0.1318359375, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.966863458806813, - 27.884077592329504 - ] - }, - { - "id": "BVDksOqvIG_h97NobSp6Q", - "type": "freedraw", - "x": -178.14594853388758, - "y": -232.3673795229427, - "width": 28.680752840909122, - "height": 56.564802689985754, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2130007789, - "version": 596, - "versionNonce": 1162010307, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -0.796675248579561 - ], - [ - -7.966863458806813, - 7.966891202059685 - ], - [ - -11.950295188210191, - 16.730429909446002 - ], - [ - -15.137051669034065, - 26.290699351917624 - ], - [ - -18.32380814985794, - 33.46085981889206 - ], - [ - -19.1204833984375, - 39.83437278053975 - ], - [ - -19.1204833984375, - 45.41121049360794 - ], - [ - -16.73040216619313, - 47.00456099076706 - ], - [ - -13.543645685369313, - 47.801236239346565 - ], - [ - -8.763538707386317, - 46.2078857421875 - ], - [ - -0.7966752485795041, - 39.03769753196025 - ], - [ - 2.39008123224437, - 31.070834073153435 - ], - [ - 3.983487215909122, - 22.307239879261374 - ], - [ - 3.983487215909122, - 13.543701171875 - ], - [ - 3.983487215909122, - 6.373512961647748 - ], - [ - 2.39008123224437, - -2.390053488991498 - ], - [ - 0, - -6.373485218394876 - ], - [ - -2.390025745738626, - -8.763566450639189 - ], - [ - -5.5767822265625, - -8.763566450639189 - ], - [ - -11.15361993963063, - -3.186728737571002 - ], - [ - -14.340320933948817, - 3.186756480823874 - ], - [ - -17.52707741477269, - 11.153619939630687 - ], - [ - -20.713833895596565, - 22.307239879261374 - ], - [ - -23.103915127840878, - 31.86750932173294 - ], - [ - -24.697265625, - 41.427723277698874 - ], - [ - -24.697265625, - 43.021129261363626 - ], - [ - -24.697265625, - 43.81780450994319 - ], - [ - -23.90059037642044, - 43.021129261363626 - ], - [ - -20.713833895596565, - 40.63104802911931 - ], - [ - -19.917158647017004, - 39.83437278053975 - ], - [ - -19.917158647017004, - 39.83437278053975 - ] - ], - "pressures": [ - 0.046875, - 0.25390625, - 0.310546875, - 0.392578125, - 0.4580078125, - 0.51953125, - 0.5673828125, - 0.6025390625, - 0.6064453125, - 0.609375, - 0.6181640625, - 0.626953125, - 0.6318359375, - 0.6865234375, - 0.70703125, - 0.71484375, - 0.716796875, - 0.703125, - 0.6884765625, - 0.703125, - 0.712890625, - 0.705078125, - 0.671875, - 0.66015625, - 0.6572265625, - 0.525390625, - 0.4609375, - 0.3583984375, - 0.2177734375, - 0.1416015625, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.917158647017004, - 39.83437278053975 - ] - }, - { - "id": "cURv9AcdZx74m18SLP2B-", - "type": "freedraw", - "x": -182.92605551187052, - "y": -229.9772982906984, - "width": 26.29067160866481, - "height": 49.3946144797585, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1621244045, - "version": 593, - "versionNonce": 1274127085, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.98345947265625 - ], - [ - -1.593350497159065, - -3.186756480823874 - ], - [ - -4.780106977982939, - 0 - ], - [ - -7.966863458806813, - 5.576809969815372 - ], - [ - -11.153619939630687, - 13.543673428622185 - ], - [ - -14.340376420454561, - 29.477428089488626 - ], - [ - -15.137051669034065, - 37.44429154829544 - ], - [ - -14.340376420454561, - 42.224398526278435 - ], - [ - -11.153619939630687, - 45.41115500710225 - ], - [ - -7.170188210227252, - 45.41115500710225 - ], - [ - -3.186756480823874, - 41.427723277698874 - ], - [ - 0.796675248579561, - 34.25753506747162 - ], - [ - 3.983431729403435, - 24.697293368252872 - ], - [ - 5.576837713068187, - 16.730429909446002 - ], - [ - 6.373512961647748, - 6.373485218394876 - ], - [ - 4.780106977982939, - 1.593350497159122 - ], - [ - 2.390081232244313, - -2.390081232244313 - ], - [ - 0, - -3.98345947265625 - ], - [ - -4.780106977982939, - -3.98345947265625 - ], - [ - -8.763538707386374, - 0.796675248579561 - ], - [ - -12.746970436789752, - 5.576809969815372 - ], - [ - -15.933726917613626, - 11.153619939630687 - ], - [ - -19.1204833984375, - 15.137051669034122 - ], - [ - -19.91715864701706, - 22.307239879261374 - ], - [ - -19.1204833984375, - 28.680752840909122 - ], - [ - -17.527132901278378, - 33.46085981889206 - ], - [ - -15.933726917613626, - 35.850941051136374 - ], - [ - -15.933726917613626, - 35.850941051136374 - ] - ], - "pressures": [ - 0.0185546875, - 0.26953125, - 0.453125, - 0.576171875, - 0.7109375, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.97265625, - 0.908203125, - 0.8134765625, - 0.6845703125, - 0.6513671875, - 0.6376953125, - 0.6318359375, - 0.6357421875, - 0.6337890625, - 0.5341796875, - 0.3583984375, - 0.248046875, - 0.1650390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.933726917613626, - 35.850941051136374 - ] - }, - { - "id": "kBMNR8DE8sCUCGM0SyXkJ", - "type": "freedraw", - "x": -174.16246131797845, - "y": -237.94418949275803, - "width": 29.477428089488626, - "height": 50.19126198508519, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 573608931, - "version": 597, - "versionNonce": 1604324963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -0.796675248579561 - ], - [ - -4.780162464488626, - 0.796702991832376 - ], - [ - -7.9669189453125, - 2.390081232244313 - ], - [ - -11.153675426136374, - 6.373512961647691 - ], - [ - -14.340376420454561, - 11.950322931463063 - ], - [ - -17.527132901278435, - 22.307239879261317 - ], - [ - -17.527132901278435, - 27.88404984907669 - ], - [ - -17.527132901278435, - 32.6641845703125 - ], - [ - -16.730457652698874, - 36.64764404296875 - ], - [ - -13.543701171875, - 39.037669788707376 - ], - [ - -11.153675426136374, - 39.037669788707376 - ], - [ - -7.170188210227252, - 35.8509133078835 - ], - [ - -2.390081232244313, - 30.274131081321002 - ], - [ - 1.593350497159065, - 23.10394287109375 - ], - [ - 4.780106977982939, - 11.950322931463063 - ], - [ - 5.5767822265625, - 4.780134721235754 - ], - [ - 5.5767822265625, - 0 - ], - [ - 3.186700994318187, - -3.983431729403435 - ], - [ - -1.593405983664752, - -8.763566450639246 - ], - [ - -5.576837713068187, - -10.356916947798311 - ], - [ - -11.153675426136374, - -9.56024169921875 - ], - [ - -15.933782404119313, - -3.983431729403435 - ], - [ - -19.917214133522748, - 4.780134721235754 - ], - [ - -23.103970614346622, - 17.527132901278378 - ], - [ - -23.900645862926126, - 24.69732111150563 - ], - [ - -23.900645862926126, - 29.477428089488626 - ], - [ - -23.900645862926126, - 34.25756281072438 - ], - [ - -23.103970614346622, - 37.444319291548254 - ], - [ - -21.510564630681813, - 39.83434503728688 - ], - [ - -19.917214133522748, - 39.83434503728688 - ], - [ - -19.120538884943187, - 39.83434503728688 - ], - [ - -19.120538884943187, - 39.83434503728688 - ] - ], - "pressures": [ - 0.0244140625, - 0.7568359375, - 0.8896484375, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6826171875, - 0.3271484375, - 0.142578125, - 0.0703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.120538884943187, - 39.83434503728688 - ] - }, - { - "id": "QTBC4R1sDfyzSnW1-W7rx", - "type": "freedraw", - "x": -180.5359742796262, - "y": -231.57067653111034, - "width": 23.103915127840935, - "height": 51.78466796875, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1152044397, - "version": 595, - "versionNonce": 1962458445, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - -0.796702991832376 - ], - [ - -6.373512961647691, - 2.390053488991498 - ], - [ - -10.356944691051126, - 7.966863458806813 - ], - [ - -14.340376420454504, - 15.137051669034122 - ], - [ - -16.730457652698874, - 23.90061811967331 - ], - [ - -19.1204833984375, - 35.054238059304 - ], - [ - -19.1204833984375, - 39.83434503728694 - ], - [ - -17.527132901278378, - 43.02110151811081 - ], - [ - -14.340376420454504, - 43.81777676669037 - ], - [ - -7.966863458806813, - 43.02110151811081 - ], - [ - -3.186756480823874, - 39.037669788707376 - ], - [ - 0.796675248579561, - 32.664156827059685 - ], - [ - 3.186756480823874, - 23.90061811967331 - ], - [ - 3.983431729403435, - 15.933726917613626 - ], - [ - 3.983431729403435, - 9.56024169921875 - ], - [ - 3.186756480823874, - 2.390053488991498 - ], - [ - 0.796675248579561, - -2.390081232244313 - ], - [ - -2.390081232244313, - -5.576809969815315 - ], - [ - -7.170188210227252, - -7.966891202059628 - ], - [ - -10.356944691051126, - -7.966891202059628 - ], - [ - -14.340376420454504, - -3.983431729403378 - ], - [ - -16.730457652698874, - 2.390053488991498 - ], - [ - -18.32380814985794, - 8.763538707386374 - ], - [ - -19.1204833984375, - 19.917186390269876 - ], - [ - -19.1204833984375, - 27.087346857244313 - ], - [ - -17.527132901278378, - 31.867481578480124 - ], - [ - -16.730457652698874, - 35.054238059304 - ], - [ - -14.340376420454504, - 35.85091330788356 - ], - [ - -13.543701171875, - 35.054238059304 - ], - [ - -13.543701171875, - 35.054238059304 - ] - ], - "pressures": [ - 0.0732421875, - 0.7744140625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.822265625, - 0.591796875, - 0.3564453125, - 0.236328125, - 0.1455078125, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -13.543701171875, - 35.054238059304 - ] - }, - { - "id": "Ucwe-pTtDGzkibSOwXjxV", - "type": "freedraw", - "x": -178.14594853388758, - "y": -229.18062304211884, - "width": 31.070778586647748, - "height": 55.76812744140625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1283494051, - "version": 595, - "versionNonce": 32918019, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -3.186756480823874 - ], - [ - -4.780106977982939, - -3.186756480823874 - ], - [ - -11.15361993963063, - -0.796675248579561 - ], - [ - -15.137051669034065, - 6.373485218394876 - ], - [ - -18.32380814985794, - 15.933754660866441 - ], - [ - -19.917158647017004, - 26.290671608664752 - ], - [ - -20.713833895596565, - 38.240966796875 - ], - [ - -19.917158647017004, - 42.224454012784065 - ], - [ - -19.1204833984375, - 43.021129261363626 - ], - [ - -15.933726917613626, - 43.021129261363626 - ], - [ - -11.15361993963063, - 39.83437278053975 - ], - [ - -2.390025745738626, - 29.477428089488626 - ], - [ - 0.7967307350852479, - 23.10394287109375 - ], - [ - 2.39008123224437, - 17.527132901278378 - ], - [ - 2.39008123224437, - 11.950322931463063 - ], - [ - 0.7967307350852479, - 0 - ], - [ - -2.390025745738626, - -6.373485218394876 - ], - [ - -6.373457475142004, - -11.153619939630687 - ], - [ - -10.356889204545439, - -11.950322931463063 - ], - [ - -14.340320933948817, - -11.153619939630687 - ], - [ - -19.917158647017004, - -4.780134721235811 - ], - [ - -23.103915127840878, - 0.796675248579561 - ], - [ - -26.290671608664752, - 8.763566450639189 - ], - [ - -27.884022105823817, - 19.917186390269876 - ], - [ - -28.680697354403378, - 34.257535067471565 - ], - [ - -27.087346857244313, - 39.83437278053975 - ], - [ - -24.697265625, - 43.021129261363626 - ], - [ - -22.307239879261317, - 43.81780450994319 - ], - [ - -21.510509144176126, - 42.224454012784065 - ], - [ - -21.510509144176126, - 42.224454012784065 - ] - ], - "pressures": [ - 0.0849609375, - 0.8681640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.73046875, - 0.3203125, - 0.1806640625, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -21.510509144176126, - 42.224454012784065 - ] - }, - { - "id": "VKY-EHVR1FkGR71RhncZ1", - "type": "freedraw", - "x": -182.12938026329095, - "y": -229.18062304211884, - "width": 31.86750932173294, - "height": 50.19128972833806, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1395603021, - "version": 596, - "versionNonce": 1995279277, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -3.186756480823874 - ], - [ - -3.186756480823874, - -3.186756480823874 - ], - [ - -6.373457475142061, - -1.593378240411937 - ], - [ - -10.356889204545439, - 4.780134721235811 - ], - [ - -13.543645685369313, - 11.950322931463063 - ], - [ - -14.340376420454561, - 19.917186390269876 - ], - [ - -14.340376420454561, - 27.087346857244313 - ], - [ - -12.746970436789752, - 31.86750932173294 - ], - [ - -10.356889204545439, - 35.05426580255681 - ], - [ - -5.5767822265625, - 36.64761629971588 - ], - [ - -0.796675248579561, - 35.850941051136374 - ], - [ - 4.780162464488626, - 30.274103338068187 - ], - [ - 10.356944691051126, - 18.32380814985794 - ], - [ - 11.950350674715878, - 11.950322931463063 - ], - [ - 12.747025923295439, - 6.373485218394876 - ], - [ - 12.747025923295439, - 0.796675248579561 - ], - [ - 11.153619939630687, - -5.576809969815372 - ], - [ - 7.170188210227252, - -10.356944691051126 - ], - [ - 0, - -13.543673428622185 - ], - [ - -4.780106977982939, - -13.543673428622185 - ], - [ - -9.560213955965935, - -11.153619939630687 - ], - [ - -15.933726917613626, - -3.186756480823874 - ], - [ - -16.730402166193187, - 0.796675248579561 - ], - [ - -19.1204833984375, - 12.746998180042624 - ], - [ - -19.1204833984375, - 18.32380814985794 - ], - [ - -19.1204833984375, - 22.307239879261374 - ], - [ - -17.527077414772748, - 26.290671608664752 - ], - [ - -14.340376420454561, - 31.07077858664769 - ], - [ - -11.950295188210248, - 33.46085981889206 - ], - [ - -11.153619939630687, - 33.46085981889206 - ], - [ - -11.153619939630687, - 33.46085981889206 - ] - ], - "pressures": [ - 0.060546875, - 0.4111328125, - 0.5712890625, - 0.7646484375, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9423828125, - 0.37890625, - 0.1953125, - 0.0732421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.153619939630687, - 33.46085981889206 - ] - }, - { - "id": "tgruqHl3ScOVzcDF59sBY", - "type": "freedraw", - "x": -179.73929903104664, - "y": -234.7574330119342, - "width": 23.103915127840878, - "height": 50.191317471590935, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1780188141, - "version": 599, - "versionNonce": 1631850915, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982939, - 0.796675248579561 - ], - [ - -7.966863458806813, - 5.576809969815372 - ], - [ - -11.153619939630687, - 11.950295188210248 - ], - [ - -15.137051669034065, - 23.90061811967331 - ], - [ - -15.137051669034065, - 31.867481578480124 - ], - [ - -15.137051669034065, - 37.44431929154831 - ], - [ - -12.746970436789752, - 39.83434503728694 - ], - [ - -7.170188210227252, - 40.631075772372185 - ], - [ - -2.390081232244313, - 38.24099454012787 - ], - [ - 1.593350497159065, - 31.867481578480124 - ], - [ - 4.780106977982939, - 23.10394287109375 - ], - [ - 7.170188210227252, - 11.153619939630687 - ], - [ - 7.170188210227252, - 5.576809969815372 - ], - [ - 7.170188210227252, - 3.186756480823874 - ], - [ - 5.576837713068187, - -0.7966752485795041 - ], - [ - 3.186756480823874, - -5.576809969815315 - ], - [ - -1.593350497159065, - -9.56024169921875 - ], - [ - -5.576837713068187, - -9.56024169921875 - ], - [ - -8.763538707386374, - -4.780134721235754 - ], - [ - -11.950295188210248, - 0.796675248579561 - ], - [ - -15.137051669034065, - 6.373485218394933 - ], - [ - -15.933726917613626, - 8.763566450639246 - ], - [ - -15.933726917613626, - 14.340376420454561 - ], - [ - -15.933726917613626, - 21.510564630681813 - ], - [ - -15.137051669034065, - 28.680752840909122 - ], - [ - -14.340376420454561, - 33.46088756214493 - ], - [ - -14.340376420454561, - 35.054238059304 - ], - [ - -13.543701171875, - 35.85091330788356 - ], - [ - -12.746970436789752, - 36.64758855646306 - ], - [ - -11.950295188210248, - 37.44431929154831 - ], - [ - -10.356944691051126, - 37.44431929154831 - ], - [ - -7.966863458806813, - 37.44431929154831 - ], - [ - -7.966863458806813, - 36.64758855646306 - ], - [ - -7.966863458806813, - 36.64758855646306 - ] - ], - "pressures": [ - 0.1220703125, - 0.802734375, - 0.82421875, - 0.9599609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9453125, - 0.3642578125, - 0.193359375, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.966863458806813, - 36.64758855646306 - ] - }, - { - "id": "240VJaDj665YY1AaTNfrn", - "type": "freedraw", - "x": -222.76042829241027, - "y": -222.0104348318916, - "width": 11.153619939630687, - "height": 30.274131081321002, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 388485613, - "version": 592, - "versionNonce": 246932803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796619762073874, - 0 - ], - [ - -2.390025745738626, - 0 - ], - [ - -3.983431729403435, - 2.390053488991498 - ], - [ - -5.5767822265625, - 4.780134721235811 - ], - [ - -6.373457475142061, - 8.763566450639189 - ], - [ - -7.170188210227309, - 13.543673428622185 - ], - [ - -7.170188210227309, - 19.91715864701706 - ], - [ - -5.5767822265625, - 25.493996360085248 - ], - [ - -4.780051491477309, - 27.087346857244313 - ], - [ - -3.983431729403435, - 28.680752840909122 - ], - [ - -2.390025745738626, - 29.477428089488626 - ], - [ - -0.796619762073874, - 29.477428089488626 - ], - [ - 0.796675248579561, - 29.477428089488626 - ], - [ - 1.593405983664752, - 27.88407759232956 - ], - [ - 2.390081232244313, - 24.697321111505687 - ], - [ - 3.186811967329561, - 18.32380814985794 - ], - [ - 3.983431729403378, - 13.543673428622185 - ], - [ - 3.983431729403378, - 8.763566450639189 - ], - [ - 2.390081232244313, - 5.576809969815372 - ], - [ - 1.593405983664752, - 3.186756480823874 - ], - [ - 0, - 1.593378240411937 - ], - [ - -0.796619762073874, - 0.796675248579561 - ], - [ - -1.593350497159122, - 0 - ], - [ - -2.390025745738626, - -0.796702991832376 - ], - [ - -3.186756480823874, - -0.796702991832376 - ], - [ - -3.186756480823874, - 0 - ], - [ - -3.186756480823874, - 1.593378240411937 - ], - [ - -3.186756480823874, - 3.983431729403435 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0634765625, - 0.314453125, - 0.4658203125, - 0.744140625, - 0.8408203125, - 0.876953125, - 0.90234375, - 0.921875, - 0.953125, - 0.9580078125, - 0.9580078125, - 0.9580078125, - 0.953125, - 0.951171875, - 0.9453125, - 0.9453125, - 0.9384765625, - 0.9365234375, - 0.9384765625, - 0.9384765625, - 0.9404296875, - 0.9404296875, - 0.9423828125, - 0.9296875, - 0.9189453125, - 0.9111328125, - 0.572265625, - 0.3251953125, - 0.1513671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186756480823874, - 3.983431729403435 - ] - }, - { - "id": "WtvjIycywfBubUMJOR5oD", - "type": "freedraw", - "x": -223.55704805448414, - "y": -225.19719131271546, - "width": 8.763538707386374, - "height": 35.054210316051126, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1864448877, - "version": 596, - "versionNonce": 1159087213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7966752485795041 - ], - [ - -1.593405983664752, - 0.7967029918324329 - ], - [ - -2.39013671875, - 3.983431729403435 - ], - [ - -4.780162464488626, - 11.950322931463063 - ], - [ - -5.576837713068187, - 18.323808149857996 - ], - [ - -5.576837713068187, - 23.103915127840935 - ], - [ - -5.576837713068187, - 27.88407759232956 - ], - [ - -4.780162464488626, - 31.867509321732996 - ], - [ - -3.186811967329561, - 34.25753506747162 - ], - [ - -2.39013671875, - 34.25753506747162 - ], - [ - 0, - 34.25753506747162 - ], - [ - 1.593295010653435, - 33.46085981889206 - ], - [ - 3.186700994318187, - 30.274103338068187 - ], - [ - 3.186700994318187, - 26.29067160866481 - ], - [ - 3.186700994318187, - 22.307239879261374 - ], - [ - 3.186700994318187, - 18.323808149857996 - ], - [ - 3.186700994318187, - 15.137051669034122 - ], - [ - 3.186700994318187, - 11.153619939630687 - ], - [ - 2.390025745738626, - 9.56024169921875 - ], - [ - 2.390025745738626, - 7.170188210227309 - ], - [ - 0.796619762073874, - 4.780134721235811 - ], - [ - 0.796619762073874, - 2.390053488991498 - ], - [ - 0, - 2.390053488991498 - ], - [ - 0, - 1.593378240411937 - ], - [ - -0.7967307350852479, - 1.593378240411937 - ], - [ - -1.593405983664752, - 3.186756480823874 - ], - [ - -1.593405983664752, - 5.576809969815372 - ], - [ - -1.593405983664752, - 7.170188210227309 - ], - [ - -1.593405983664752, - 8.763566450639246 - ], - [ - -1.593405983664752, - 10.356944691051183 - ], - [ - -1.593405983664752, - 11.950322931463063 - ], - [ - -1.593405983664752, - 12.746998180042624 - ], - [ - -0.7967307350852479, - 12.746998180042624 - ], - [ - -0.7967307350852479, - 12.746998180042624 - ] - ], - "pressures": [ - 0.0537109375, - 0.1767578125, - 0.599609375, - 0.736328125, - 0.90234375, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9580078125, - 0.85546875, - 0.7724609375, - 0.59765625, - 0.384765625, - 0.1865234375, - 0.1123046875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7967307350852479, - 12.746998180042624 - ] - }, - { - "id": "5h_jeI8GHMJcefJyJrIEh", - "type": "freedraw", - "x": -222.76042829241027, - "y": -224.40048832088303, - "width": 9.560213955965878, - "height": 35.05426580255681, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1099517357, - "version": 594, - "versionNonce": 1907377379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967029918324329 - ], - [ - -2.390025745738626, - 2.390053488991441 - ], - [ - -3.186756480823874, - 6.373485218394876 - ], - [ - -4.780051491477309, - 11.15361993963063 - ], - [ - -4.780051491477309, - 16.730429909446002 - ], - [ - -4.780051491477309, - 21.51053688742894 - ], - [ - -4.780051491477309, - 27.88404984907669 - ], - [ - -4.780051491477309, - 30.274131081321002 - ], - [ - -4.780051491477309, - 31.070806329900563 - ], - [ - -3.983431729403435, - 30.274131081321002 - ], - [ - -2.390025745738626, - 28.68072509765625 - ], - [ - 0, - 25.493968616832376 - ], - [ - 1.593405983664752, - 21.51053688742894 - ], - [ - 2.390081232244313, - 16.730429909446002 - ], - [ - 3.983431729403378, - 10.356916947798254 - ], - [ - 3.983431729403378, - 7.966863458806813 - ], - [ - 3.983431729403378, - 5.576809969815315 - ], - [ - 3.186811967329561, - 3.186728737571002 - ], - [ - 1.593405983664752, - 0 - ], - [ - 0, - -2.390081232244313 - ], - [ - -1.593350497159122, - -3.186756480823874 - ], - [ - -2.390025745738626, - -3.98345947265625 - ], - [ - -3.186756480823874, - -3.98345947265625 - ], - [ - -3.983431729403435, - -3.98345947265625 - ], - [ - -5.5767822265625, - -3.186756480823874 - ], - [ - -5.5767822265625, - -1.593378240411937 - ], - [ - -5.5767822265625, - 0 - ], - [ - -4.780051491477309, - 2.390053488991441 - ], - [ - -4.780051491477309, - 3.186728737571002 - ], - [ - -3.983431729403435, - 3.186728737571002 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.025390625, - 0.21484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8876953125, - 0.6357421875, - 0.4150390625, - 0.2470703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983431729403435, - 3.186728737571002 - ] - }, - { - "id": "F9SmMOPQHqGouoyXgaCDd", - "type": "freedraw", - "x": -12.569026832396148, - "y": -455.3316678607535, - "width": 83.28839995734724, - "height": 27.117140925547368, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1200788301, - "version": 872, - "versionNonce": 1299696941, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 4.809901046285993 - ], - [ - 12.590115597691362, - -4.87478250561801 - ], - [ - 28.085663241170373, - -10.685612871922572 - ], - [ - 48.423485210060406, - -16.496409512956824 - ], - [ - 65.85594258370392, - -20.370296423826574 - ], - [ - 80.38296791155983, - -22.307239879261374 - ], - [ - 83.28839995734724, - -18.43335296839163 - ], - [ - 82.3199450922651, - -12.622522602087072 - ], - [ - 78.44605818139534, - -9.717124281569946 - ], - [ - 73.60371640544342, - -9.717124281569946 - ], - [ - 70.69828435965587, - -10.685612871922572 - ], - [ - 70.69828435965587, - -10.685612871922572 - ] - ], - "pressures": [ - 0.1259765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.439453125, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.15818093039769, - -12.746998180042624 - ] - }, - { - "id": "LzP6nYLARMo1k4vgJz2E2", - "type": "freedraw", - "x": 46.4647142931713, - "y": -480.0351907804205, - "width": 11.621660732609257, - "height": 102.6577670611552, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 358397379, - "version": 900, - "versionNonce": 1083746339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.9684548650821796, - 4.842341775952 - ], - [ - 4.842341775951931, - 14.527025327855863 - ], - [ - 10.653138416986181, - 40.675711388321055 - ], - [ - 11.621660732609257, - 62.95051053791641 - ], - [ - 11.621660732609257, - 84.25682109715916 - ], - [ - 9.684683551903998, - 98.78388015028544 - ], - [ - 8.71622868682168, - 102.6577670611552 - ], - [ - 8.71622868682168, - 97.81542528520326 - ], - [ - 8.71622868682168, - 95.87851555503876 - ], - [ - 8.71622868682168, - 95.87851555503876 - ] - ], - "pressures": [ - 0.1044921875, - 0.6474609375, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3173828125, - 0.15234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.170188210227252, - 78.8720703125 - ] - }, - { - "id": "IQmZ4daTw-Ymgmb1_RFGe", - "type": "freedraw", - "x": 96.36076817421349, - "y": -399.97386738887195, - "width": 1.9369097301644975, - "height": 44.549632024461104, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 810043267, - "version": 903, - "versionNonce": 817864589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 7.901987981492412 - ], - [ - 1.9369097301644975, - 4.996555935704912 - ], - [ - 1.9369097301644975, - -3.7196727511167658 - ], - [ - 1.9369097301644975, - -13.404390028291077 - ], - [ - 1.9369097301644975, - -20.183675259677944 - ], - [ - 1.9369097301644975, - -24.057562170547694 - ], - [ - 0.9684548650821796, - -25.994471900712195 - ], - [ - 0, - -28.899903946499617 - ], - [ - 0, - -32.773757132099 - ], - [ - 0.9684548650821796, - -35.679155452616065 - ], - [ - 1.9369097301644975, - -36.64764404296869 - ], - [ - 1.9369097301644975, - -36.64764404296869 - ] - ], - "pressures": [ - 0.1328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.666015625, - 0.3095703125, - 0.025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159122, - -36.64764404296869 - ] - }, - { - "id": "wBXnfpdO9QPr3wYGf_js9", - "type": "freedraw", - "x": 88.3548671159005, - "y": -457.93903981651823, - "width": 7.747773821739503, - "height": 18.400945963996048, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1073668205, - "version": 899, - "versionNonce": 1949674435, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.17177961650267506, - 0.1717796165026867 - ], - [ - -0.7966752485795041, - -0.796675248579561 - ], - [ - -0.7966752485795041, - 2.1087230719375603 - ], - [ - 2.1087567972079286, - 11.793406623841474 - ], - [ - 3.0772116622902455, - 15.667293534711158 - ], - [ - 5.982643708077676, - 17.604270715416487 - ], - [ - 6.951098573159999, - 17.604270715416487 - ], - [ - 6.951098573159999, - 17.604270715416487 - ] - ], - "pressures": [ - 0.1396484375, - 0.9755859375, - 1, - 1, - 0.7890625, - 0.3427734375, - 0.119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576837713068244, - 14.340404163707376 - ] - }, - { - "id": "X-YDfwCBvambJRw11ZdAV", - "type": "freedraw", - "x": 118.3492618244004, - "y": -434.97470201712173, - "width": 62.9505105379164, - "height": 99.75236874063813, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 545152867, - "version": 934, - "versionNonce": 1411261933, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 1.2024812435890546, - 17.006445242538828 - ], - [ - -1.7028833516576234, - 7.321761690634884 - ], - [ - -3.639927982903771, - -0.42601213110462577 - ], - [ - -5.57683771306813, - -8.173785952844131 - ], - [ - -5.57683771306813, - -17.858469504747983 - ], - [ - -4.6083828479859505, - -28.511641647004637 - ], - [ - -1.7028833516576234, - -36.259381743473675 - ], - [ - -0.7344284865754432, - -35.29092687839151 - ], - [ - 0.23402637850687466, - -28.511641647004637 - ], - [ - 1.2024812435890546, - -20.763901550535575 - ], - [ - 0.23402637850687466, - -10.11072940827894 - ], - [ - -2.6714731178214537, - 10.227126285881564 - ], - [ - -4.6083828479859505, - 16.037956652186125 - ], - [ - -4.6083828479859505, - 14.101013196751317 - ], - [ - -3.639927982903771, - -0.42601213110462577 - ], - [ - 1.2024812435890546, - -16.889980914395366 - ], - [ - 9.918709930410738, - -36.259381743473675 - ], - [ - 19.603393482314736, - -52.72338425203489 - ], - [ - 26.382712438971915, - -59.50266948342177 - ], - [ - 29.28807703421861, - -55.62874884728156 - ], - [ - 29.28807703421861, - -44.97561043029538 - ], - [ - 26.382712438971915, - -30.44858510243953 - ], - [ - 20.571848347396916, - -13.98458259387832 - ], - [ - 12.824074525657407, - 5.384784509929632 - ], - [ - 11.855619660575233, - 6.353273100282259 - ], - [ - 11.855619660575233, - -0.42601213110462577 - ], - [ - 14.760984255821905, - -13.016127728796059 - ], - [ - 21.54030321247923, - -30.44858510243953 - ], - [ - 35.09894112579361, - -59.50266948342177 - ], - [ - 45.75207954277977, - -73.06123994619539 - ], - [ - 52.5313984994371, - -78.8720703125 - ], - [ - 56.40521795976596, - -77.9035817221474 - ], - [ - 57.37367282484827, - -71.1242964907606 - ], - [ - 55.436763094683776, - -50.786407071329634 - ], - [ - 50.594353868190936, - -30.44858510243953 - ], - [ - 44.78362467769761, - -7.205297362491502 - ], - [ - 38.00430572104042, - 11.195614876234194 - ], - [ - 35.09894112579361, - 19.911843563055882 - ], - [ - 35.09894112579361, - 20.880298428138126 - ], - [ - 35.09894112579361, - 18.943354972703258 - ], - [ - 36.06739599087592, - 14.101013196751317 - ], - [ - 38.97276058612258, - 7.321761690634884 - ], - [ - 38.97276058612258, - 7.321761690634884 - ] - ], - "pressures": [ - 0.158203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.666015625, - 0.11328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.070778586647748, - -7.966863458806813 - ] - }, - { - "id": "2q3Gm0BUBbh153Z9IZ2ae", - "type": "freedraw", - "x": 176.13051016933787, - "y": -465.52776245044805, - "width": 48.42341775951972, - "height": 61.01360080775191, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 169743139, - "version": 913, - "versionNonce": 548485987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 4.9816866448062465 - ], - [ - 7.747773821739504, - 6.918630100241053 - ], - [ - 16.464002508561194, - 7.887084965323372 - ], - [ - 25.18023119538287, - 7.887084965323372 - ], - [ - 33.89645988220469, - 3.0447431893713715 - ], - [ - 40.67577883886186, - -3.7345420420154376 - ], - [ - 43.58114343410854, - -12.450737003566813 - ], - [ - 41.6440988028624, - -22.135454280741115 - ], - [ - 33.89645988220469, - -23.10394287109375 - ], - [ - 23.243186564136863, - -20.198544550576624 - ], - [ - 9.684683551904, - -7.608395227614814 - ], - [ - 4.842274325411177, - 4.013198054453619 - ], - [ - 3.8738194603289955, - 16.60334737741544 - ], - [ - 4.842274325411177, - 27.256485794401623 - ], - [ - 9.684683551904, - 34.03577102578842 - ], - [ - 20.337821968890175, - 37.90965793665816 - ], - [ - 29.054050655711873, - 37.90965793665816 - ], - [ - 37.77027934253355, - 34.03577102578842 - ], - [ - 44.54959829919072, - 28.22494065948387 - ], - [ - 48.42341775951972, - 23.38259888353186 - ], - [ - 47.45496289443757, - 21.445689153367436 - ], - [ - 46.48650802935524, - 21.445689153367436 - ], - [ - 46.48650802935524, - 21.445689153367436 - ] - ], - "pressures": [ - 0.1064453125, - 0.66796875, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6474609375, - 0.2421875, - 0.142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 38.240966796875, - 13.543701171875 - ] - }, - { - "id": "6VU2stTMe-7uD0hM71dBm", - "type": "freedraw", - "x": 142.7173118634335, - "y": -369.86082993592794, - "width": 46.486642930436886, - "height": 47.45499661970791, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1320670883, - "version": 918, - "versionNonce": 1788665933, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.6871423940810274, - 1.7178200930971275 - ], - [ - -3.186811967329618, - -0.21908963706736917 - ], - [ - -3.186811967329618, - 1.7178200930971275 - ], - [ - -0.28131247100128987, - 10.434048779918806 - ], - [ - 7.4664613507382125, - 27.86650615356225 - ], - [ - 12.308735676149388, - 36.58273484038388 - ], - [ - 16.182690037559887, - 39.48813316090104 - ], - [ - 19.088054632806564, - 39.48813316090104 - ], - [ - 21.024964362971062, - 36.58273484038388 - ], - [ - 21.993419228053238, - 23.992652967962865 - ], - [ - 21.993419228053238, - 17.213334011305616 - ], - [ - 21.993419228053238, - 15.276390555870739 - ], - [ - 22.961874093135556, - 15.276390555870739 - ], - [ - 28.772738184710565, - 23.02416437761024 - ], - [ - 32.64655764503944, - 28.834994743914873 - ], - [ - 35.55205714136777, - 31.74039306443193 - ], - [ - 37.488966871532256, - 31.74039306443193 - ], - [ - 39.42587660169676, - 31.74039306443193 - ], - [ - 42.331241196943424, - 28.834994743914873 - ], - [ - 43.29983096310727, - 23.992652967962865 - ], - [ - 43.29983096310727, - 13.339447100435923 - ], - [ - 41.36278633186111, - -0.21908963706736917 - ], - [ - 40.394331466778944, - -7.96686345880687 - ], - [ - 40.394331466778944, - -6.998408593724621 - ], - [ - 40.394331466778944, - -3.1245216828548714 - ], - [ - 40.394331466778944, - 1.7178200930971275 - ], - [ - 41.36278633186111, - 3.6547635485319336 - ], - [ - 41.36278633186111, - 3.6547635485319336 - ] - ], - "pressures": [ - 0.08203125, - 0.796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5048828125, - 0.12890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 33.46080433238626, - 1.5933782404118801 - ] - }, - { - "id": "ATsw-YVozVIZKp93ci8DC", - "type": "freedraw", - "x": 207.85871713564006, - "y": -354.81623583083336, - "width": 8.71622868682182, - "height": 46.48650802935524, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1950731853, - "version": 900, - "versionNonce": 1113184003, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 1.5460404765944546, - 8.245541232480248 - ], - [ - 1.5460404765944546, - 2.4347108661756205 - ], - [ - -0.3910041546516934, - -2.407630909776315 - ], - [ - -1.3594590197338732, - -8.21846127608094 - ], - [ - -2.3279138848161924, - -15.96620137255001 - ], - [ - -5.233278480062866, - -26.61937351480655 - ], - [ - -6.201733345145049, - -32.43017015584083 - ], - [ - -7.170188210227366, - -36.30405706671057 - ], - [ - -7.170188210227366, - -38.240966796875 - ], - [ - -7.170188210227366, - -38.240966796875 - ] - ], - "pressures": [ - 0.138671875, - 0.71484375, - 1, - 1, - 1, - 1, - 1, - 0.787109375, - 0.470703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.170188210227366, - -38.240966796875 - ] - }, - { - "id": "ZRaTldaydguWKmB_Li0gM", - "type": "freedraw", - "x": 190.82118159877427, - "y": -406.2180058597967, - "width": 6.779318956657189, - "height": 12.590115597691433, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1962002211, - "version": 897, - "versionNonce": 169168557, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.34358316107562925, - 0 - ], - [ - -1.5934614701703822, - 0 - ], - [ - -1.5934614701703822, - 1.9369434554348754 - ], - [ - -0.6250066050882018, - 4.8423417759519305 - ], - [ - 0.34358316107562925, - 8.716228686821678 - ], - [ - 2.280492891240129, - 10.653205867526934 - ], - [ - 5.185857486486807, - 12.590115597691433 - ], - [ - 5.185857486486807, - 12.590115597691433 - ] - ], - "pressures": [ - 0.15234375, - 0.751953125, - 0.9423828125, - 0.947265625, - 0.9453125, - 0.615234375, - 0.1259765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983376242897748, - 10.356944691051126 - ] - }, - { - "id": "rWgfmgTeVEdGtlvv9205S", - "type": "freedraw", - "x": 226.7629521643472, - "y": -409.7861107569647, - "width": 1.9370446312460106, - "height": 73.60368268017301, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 76333581, - "version": 904, - "versionNonce": 1202585251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.34358316107562836, - 0.515350813543188 - ], - [ - -1.5934614701703822, - -2.390081232244313 - ], - [ - -1.5934614701703822, - 1.4838056786254363 - ], - [ - -1.5934614701703822, - 11.168489230529367 - ], - [ - -1.5934614701703822, - 23.758604828220797 - ], - [ - -0.6248717040065511, - 47.00185884289841 - ], - [ - -0.6248717040065511, - 60.56046303094252 - ], - [ - -0.6248717040065511, - 68.30823685268189 - ], - [ - -0.6248717040065511, - 71.2136014479287 - ], - [ - -0.6248717040065511, - 68.30823685268189 - ], - [ - 0.34358316107562836, - 62.497372761106945 - ], - [ - 0.34358316107562836, - 59.59197444058991 - ], - [ - 0.34358316107562836, - 59.59197444058991 - ] - ], - "pressures": [ - 0.1240234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.380859375, - 0.0458984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 48.59791148792618 - ] - }, - { - "id": "aRyyzPZQLt2S0IoBsb3PM", - "type": "freedraw", - "x": 250.9667914484259, - "y": -413.774294872348, - "width": 7.7479087228210135, - "height": 73.60371640544342, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 806027949, - "version": 901, - "versionNonce": 1362161933, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.17177961650267518, - 0 - ], - [ - -0.7966752485795041, - 8.71622868682168 - ], - [ - -0.7966752485795041, - 17.43245737364343 - ], - [ - 1.1402344815848542, - 30.99102783641704 - ], - [ - 3.0772791128310026, - 55.202770441447335 - ], - [ - 4.045733977913182, - 66.82439744878616 - ], - [ - 5.014188842995498, - 71.66677295000855 - ], - [ - 5.982643708077675, - 73.60371640544342 - ], - [ - 6.951233474241509, - 72.63522781509074 - ], - [ - 6.951233474241509, - 69.72982949457365 - ], - [ - 6.951233474241509, - 69.72982949457365 - ] - ], - "pressures": [ - 0.1318359375, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.662109375, - 0.1162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576948686079504, - 57.36150568181819 - ] - }, - { - "id": "274vCjo2ySxFXv6paOT7c", - "type": "freedraw", - "x": 197.80750751272092, - "y": -263.4824328758517, - "width": 49.39200752568356, - "height": 61.98205567283417, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2088131821, - "version": 923, - "versionNonce": 1264333379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 2.2331589426051632, - 9.963373289612488 - ], - [ - 2.2331589426051632, - 8.994884699259861 - ], - [ - 1.2647040775229834, - 4.152542923307857 - ], - [ - -1.640660517723695, - -2.6267423080789536 - ], - [ - -4.546025112970374, - -12.311425859982883 - ], - [ - -6.483069744216523, - -18.12225622628752 - ], - [ - -8.419979474381021, - -22.96459800223952 - ], - [ - -9.3884343394632, - -25.869996322756567 - ], - [ - -10.356889204545382, - -25.869996322756567 - ], - [ - -10.356889204545382, - -23.933052867321706 - ], - [ - -7.451524609298702, - -14.248369315417763 - ], - [ - -4.546025112970374, - -1.6582537177263252 - ], - [ - -1.640660517723695, - 8.02642983417761 - ], - [ - -0.6722056526415146, - 15.774169930646671 - ], - [ - -1.640660517723695, - 7.0579412438249856 - ], - [ - -1.640660517723695, - -3.5951971731612007 - ], - [ - -1.640660517723695, - -19.090711091369766 - ], - [ - 1.2647040775229834, - -35.554713599930935 - ], - [ - 5.1386584389334935, - -44.27094228675265 - ], - [ - 9.980932764344674, - -46.2078857421875 - ], - [ - 15.79179685591968, - -45.239397151834886 - ], - [ - 20.63407118133086, - -40.3970553758829 - ], - [ - 26.444935272905862, - -32.64928155414347 - ], - [ - 33.22425422956317, - -20.05919968172238 - ], - [ - 39.03511832113818, - -3.5951971731612007 - ], - [ - 39.03511832113818, - 3.1840880582256097 - ], - [ - 37.09807368989206, - 7.0579412438249856 - ], - [ - 34.19270909464536, - 8.994884699259861 - ], - [ - 31.28734449939869, - 9.963373289612488 - ], - [ - 30.318889634316374, - 9.963373289612488 - ], - [ - 31.28734449939869, - 8.994884699259861 - ], - [ - 31.28734449939869, - 8.994884699259861 - ] - ], - "pressures": [ - 0.1171875, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.90070134943187, - -0.796702991832376 - ] - }, - { - "id": "xf9JbHN-9FQ26FJ58R8XC", - "type": "freedraw", - "x": 247.57285216614696, - "y": -297.3282006644994, - "width": 33.89645988220468, - "height": 49.39190634987235, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 926240355, - "version": 918, - "versionNonce": 1298745197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.8589220105837029, - 2.9202953546686268 - ], - [ - -1.0779877195807939, - 7.762637130620557 - ], - [ - -3.0150323508268033, - 13.573467496925188 - ], - [ - -3.0150323508268033, - 19.38426413795935 - ], - [ - -3.0150323508268033, - 24.226639639181748 - ], - [ - 2.7958317407482, - 31.97437973565087 - ], - [ - 7.6382409672408835, - 34.879778056167936 - ], - [ - 13.448970157734374, - 35.848232921250165 - ], - [ - 18.291514285308722, - 35.848232921250165 - ], - [ - 25.070698340884377, - 31.97437973565087 - ], - [ - 27.97619783721271, - 28.100492824781107 - ], - [ - 28.944517801213237, - 21.32120759339424 - ], - [ - 29.91297266629556, - 10.668035451137683 - ], - [ - 28.944517801213237, - 0.014897034151501523 - ], - [ - 26.03915320596657, - -10.638275108105061 - ], - [ - 21.196743979473744, - -12.575218563539934 - ], - [ - 15.385879887898737, - -13.543673428622185 - ], - [ - 7.6382409672408835, - -13.543673428622185 - ], - [ - -0.1095328544984765, - -4.827444741800426 - ], - [ - -3.0150323508268033, - 5.82569367518575 - ], - [ - -3.983487215909122, - 15.510410952360054 - ], - [ - -3.983487215909122, - 21.32120759339424 - ], - [ - -3.983487215909122, - 24.226639639181748 - ], - [ - -2.046442584662973, - 24.226639639181748 - ], - [ - -0.1095328544984765, - 24.226639639181748 - ], - [ - 0.8589220105837029, - 24.226639639181748 - ], - [ - 1.827376875665882, - 23.258151048829113 - ], - [ - 1.827376875665882, - 23.258151048829113 - ] - ], - "pressures": [ - 0.0693359375, - 0.4423828125, - 0.697265625, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5205078125, - 0.2392578125, - 0.1728515625, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485795041, - 16.730429909446002 - ] - }, - { - "id": "R0K9AouGPpsrBuxVJ8Jbn", - "type": "freedraw", - "x": 293.15528794130665, - "y": -273.5792963870042, - "width": 17.43245737364336, - "height": 108.46859742745984, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 977027725, - "version": 905, - "versionNonce": 239268323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 1.8896236376700797, - 18.896038970121037 - ], - [ - 7.700352828163436, - 20.833016150826285 - ], - [ - 8.668807693245611, - 20.833016150826285 - ], - [ - 8.668807693245611, - 15.990674374874285 - ], - [ - 3.826533367834439, - 1.4635815964776002 - ], - [ - -0.04742099357606905, - -13.063443731378333 - ], - [ - -2.952650687741095, - -29.527412514669056 - ], - [ - -4.889695318987243, - -49.86526820882962 - ], - [ - -4.889695318987243, - -77.95089772472956 - ], - [ - -3.9212404539049266, - -86.66712641155131 - ], - [ - -3.9212404539049266, - -87.63558127663356 - ], - [ - -3.9212404539049266, - -86.66712641155131 - ], - [ - -7.795059914233922, - -81.82478463559931 - ], - [ - -8.763649680397748, - -78.91935258981181 - ], - [ - -8.763649680397748, - -78.91935258981181 - ] - ], - "pressures": [ - 0.1103515625, - 0.212890625, - 0.34765625, - 0.712890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7626953125, - 0.2109375, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.763649680397748, - -80.46539306640625 - ] - }, - { - "id": "ELMcIeutyEEjGMsumoZdr", - "type": "freedraw", - "x": 264.87879146621316, - "y": -317.7393057144027, - "width": 67.79291976440925, - "height": 5.8108303663045575, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2081891725, - "version": 897, - "versionNonce": 554160589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.621728183150148, - 2.905432045787503 - ], - [ - 57.1399162485047, - 3.873886910869683 - ], - [ - 64.88755516916255, - 5.8108303663045575 - ], - [ - 67.79291976440925, - 5.8108303663045575 - ], - [ - 65.85601003424476, - 4.842341775951931 - ], - [ - 62.95064543899805, - 4.842341775951931 - ], - [ - 62.95064543899805, - 4.842341775951931 - ] - ], - "pressures": [ - 0.09375, - 1, - 1, - 1, - 1, - 0.294921875, - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 51.784778941761374, - 3.983431729403378 - ] - }, - { - "id": "I0ASrQSECwQvwMXTKu9pu", - "type": "freedraw", - "x": 236.56693527057894, - "y": -157.7105026868993, - "width": 40.67577883886185, - "height": 87.16228686821707, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1038814275, - "version": 933, - "versionNonce": 829472131, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 3.2638605696915515, - 12.540103429258128 - ], - [ - 3.2638605696915515, - 11.57164856417588 - ], - [ - 2.2954057046092333, - 8.666216518388383 - ], - [ - 0.35849597444487563, - 2.855419877354204 - ], - [ - -3.515458386965768, - -6.829263674549725 - ], - [ - -8.357732712376938, - -28.13554050852207 - ], - [ - -11.263097307623614, - -42.66263328691877 - ], - [ - -13.200141938869624, - -52.34731683882266 - ], - [ - -14.168596803951944, - -57.18972606531549 - ], - [ - -15.137051669034122, - -58.15818093039775 - ], - [ - -15.137051669034122, - -54.284294019528026 - ], - [ - -14.168596803951944, - -45.56806533270623 - ], - [ - -11.263097307623614, - -32.977882284474 - ], - [ - -8.357732712376938, - -16.513947226453638 - ], - [ - -5.452368117130128, - 4.7923296075186315 - ], - [ - -4.483913252047946, - 10.60326114963446 - ], - [ - -4.483913252047946, - 11.57164856417588 - ], - [ - -4.483913252047946, - 5.760851923141705 - ], - [ - -5.452368117130128, - -3.92383162876222 - ], - [ - -5.452368117130128, - -16.513947226453638 - ], - [ - -2.5468686208018, - -25.230175913275392 - ], - [ - 4.232315434773729, - -29.104062824145075 - ], - [ - 7.1378149311020564, - -29.104062824145075 - ], - [ - 10.043179526348736, - -29.104062824145075 - ], - [ - 12.94854412159541, - -28.13554050852207 - ], - [ - 16.82249848300605, - -28.13554050852207 - ], - [ - 19.727863078252724, - -26.198698228898404 - ], - [ - 20.69631794333491, - -23.293198732570072 - ], - [ - 21.664772808417077, - -18.450856956618146 - ], - [ - 21.664772808417077, - -11.671605450501715 - ], - [ - 23.601682538581578, - 1.8869650122719563 - ], - [ - 24.570272304745394, - 11.57164856417588 - ], - [ - 25.53872716982773, - 18.3509000702923 - ], - [ - 25.53872716982773, - 21.256332116079804 - ], - [ - 25.53872716982773, - 23.193309296785138 - ], - [ - 22.633227673499412, - 28.035651072737064 - ], - [ - 20.69631794333491, - 29.004105937819315 - ], - [ - 18.759408213170403, - 27.067128757114062 - ], - [ - 16.82249848300605, - 23.193309296785138 - ], - [ - 15.854043617923738, - 16.41399034012788 - ], - [ - 16.82249848300605, - 16.41399034012788 - ], - [ - 16.82249848300605, - 16.41399034012788 - ] - ], - "pressures": [ - 0.0625, - 0.2919921875, - 0.4580078125, - 0.744140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.748046875, - 0.326171875, - 0.119140625, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153675426136374, - 3.186756480823874 - ] - }, - { - "id": "rW_k2pCTc6JYHBhfD-Wki", - "type": "freedraw", - "x": 278.67151333757147, - "y": -174.0047140179319, - "width": 42.61268856902639, - "height": 58.108168761964485, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1091784525, - "version": 912, - "versionNonce": 1764102189, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.3435592330053752, - 5.325251859829182 - ], - [ - -0.6248956320769423, - 5.325251859829182 - ], - [ - 5.185968459498198, - 5.325251859829182 - ], - [ - 13.902197146319885, - 2.4198198140416785 - ], - [ - 22.618425833141554, - -2.422521961910324 - ], - [ - 29.397609888717085, - -10.17029578364976 - ], - [ - 31.33465451996323, - -15.981092424684011 - ], - [ - 29.397609888717085, - -19.8549793355537 - ], - [ - 22.618425833141554, - -23.728798795882625 - ], - [ - 13.902197146319885, - -24.697321111505687 - ], - [ - 5.185968459498198, - -21.791889065718195 - ], - [ - -1.593350497159122, - -3.3909768269925022 - ], - [ - -1.593350497159122, - 12.104503365945611 - ], - [ - 0.3435592330053752, - 24.69468641417787 - ], - [ - 5.185968459498198, - 29.537028190129874 - ], - [ - 14.870652011402063, - 32.442392785376555 - ], - [ - 23.587015599305396, - 33.41084765045879 - ], - [ - 31.33465451996323, - 31.47387046975347 - ], - [ - 37.14538371045662, - 27.600051009424543 - ], - [ - 40.05088320678493, - 20.820732052767287 - ], - [ - 41.01933807186726, - 10.16766108632194 - ], - [ - 41.01933807186726, - 7.262161589993609 - ], - [ - 41.01933807186726, - 7.262161589993609 - ] - ], - "pressures": [ - 0.0927734375, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.435546875, - 0.2587890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 33.46091530539775, - 1.593350497159065 - ] - }, - { - "id": "8kmCx3yLFd3NPxOdeHxDr", - "type": "freedraw", - "x": 318.9904221330518, - "y": -182.01779512729692, - "width": 41.64423370394417, - "height": 43.58107598356773, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 35087309, - "version": 910, - "versionNonce": 807671075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 3.779223347269874, - 5.497031476331876 - ], - [ - 7.653042807598867, - 10.33944070282463 - ], - [ - 11.526862267927726, - 10.33944070282463 - ], - [ - 16.36927149442055, - 9.370850936660798 - ], - [ - 20.24309095474941, - 7.433941206496303 - ], - [ - 23.148725352159392, - 4.528509160708799 - ], - [ - 24.11704531616005, - -7.093084121359561 - ], - [ - 19.274636089667226, - -16.777767673263487 - ], - [ - 13.463906899173866, - -23.557019179379918 - ], - [ - 6.684587942516551, - -25.493996360085248 - ], - [ - -0.09473101414063273, - -23.557019179379918 - ], - [ - -6.8740499707979525, - -17.74628998888656 - ], - [ - -15.590143756537982, - -8.06153898644181 - ], - [ - -17.527188387784122, - 0.6546897003798751 - ], - [ - -16.558733522701814, - 8.402396071578549 - ], - [ - -8.810959700962307, - 17.118624758400305 - ], - [ - -2.0316407443051294, - 18.087079623482477 - ], - [ - 5.716133077434372, - 17.118624758400305 - ], - [ - 9.589952537763223, - 13.244737847530555 - ], - [ - 9.589952537763223, - 13.244737847530555 - ] - ], - "pressures": [ - 0.1591796875, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.51171875, - 0.236328125, - 0.1181640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.780051491477252, - 6.373457475142061 - ] - }, - { - "id": "KaEgqingyrFrD4rpJRABb", - "type": "freedraw", - "x": 337.19567313858244, - "y": -201.76850547656056, - "width": 25.180096294301208, - "height": 58.108168761964485, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1152734147, - "version": 904, - "versionNonce": 1672315533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.3435592330053499, - 1.374248896056624 - ], - [ - 0.3435592330053499, - -3.468092879895381 - ], - [ - -1.5933504971590082, - -6.373457475142061 - ], - [ - 0.3435592330053499, - -2.499638014813131 - ], - [ - 4.217378693334341, - 4.279680941844128 - ], - [ - 10.996697649991518, - 17.83825140461782 - ], - [ - 15.839106876484351, - 29.459844686686257 - ], - [ - 20.681381201895515, - 41.08150541929544 - ], - [ - 23.5867457971422, - 48.82927924103494 - ], - [ - 23.5867457971422, - 51.73471128682243 - ], - [ - 22.618425833141536, - 45.92384719524746 - ], - [ - 20.681381201895515, - 38.17607337350793 - ], - [ - 18.744471471731018, - 31.396821867391537 - ], - [ - 18.744471471731018, - 31.396821867391537 - ] - ], - "pressures": [ - 0.0595703125, - 0.0927734375, - 0.1884765625, - 0.546875, - 0.931640625, - 1, - 1, - 1, - 1, - 1, - 0.794921875, - 0.302734375, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.137051669034122, - 24.697321111505687 - ] - }, - { - "id": "IGSM5SBJqN02Mb7JBCP0M", - "type": "freedraw", - "x": 347.52268906473944, - "y": -264.50573401266536, - "width": 22.274731699054538, - "height": 112.34245061305913, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 335501965, - "version": 906, - "versionNonce": 432765123, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.17177961650267573, - 0.6871304300458757 - ], - [ - -0.7966752485795041, - -3.186756480823874 - ], - [ - -0.7966752485795041, - -0.28139188557719796 - ], - [ - 3.077279112831004, - 9.403359116867556 - ], - [ - 6.951098573159996, - 21.024952398935973 - ], - [ - 9.856463168406679, - 33.6150679966274 - ], - [ - 14.698872394899508, - 54.921412281140526 - ], - [ - 19.54114672031068, - 71.3854147897017 - ], - [ - 21.478056450475034, - 86.88089498263984 - ], - [ - 21.478056450475034, - 99.47101058033131 - ], - [ - 21.478056450475034, - 107.2187844020708 - ], - [ - 21.478056450475034, - 109.15569413223525 - ], - [ - 21.478056450475034, - 108.18723926715296 - ], - [ - 19.54114672031068, - 103.34489749120111 - ], - [ - 17.60437189122783, - 99.47101058033131 - ], - [ - 17.60437189122783, - 99.47101058033131 - ] - ], - "pressures": [ - 0.1123046875, - 0.1591796875, - 0.455078125, - 0.732421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4111328125, - 0.1181640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340487393465992, - 81.26209605823863 - ] - }, - { - "id": "rT8kELRe6KlTESCQCu-j3", - "type": "freedraw", - "x": 379.31090642914904, - "y": -196.40268452338464, - "width": 21.306276833972362, - "height": 23.243321465218443, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 724823491, - "version": 902, - "versionNonce": 1431808237, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0.8589220105837051, - 0 - ], - [ - -3.015032350826803, - 4.842341775951999 - ], - [ - -3.983487215909122, - 10.65327331806783 - ], - [ - -3.983487215909122, - 17.43245737364343 - ], - [ - -3.983487215909122, - 23.243321465218443 - ], - [ - 2.7958317407482025, - 20.33795686997175 - ], - [ - 8.60669583232321, - 18.400979689266503 - ], - [ - 13.448970157734387, - 16.46400250856119 - ], - [ - 16.354334752981053, - 15.49561509401983 - ], - [ - 17.32278961806324, - 15.49561509401983 - ], - [ - 17.32278961806324, - 16.46400250856119 - ], - [ - 17.32278961806324, - 16.46400250856119 - ] - ], - "pressures": [ - 0.0673828125, - 0.59375, - 0.734375, - 0.8203125, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.543590198863626, - 13.543701171875 - ] - }, - { - "id": "tzMY9qiYOE-c4F53YvdJQ", - "type": "freedraw", - "x": 322.9968437246647, - "y": -250.46677603561034, - "width": 16.463867607479536, - "height": 2.9053645952467475, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 275148333, - "version": 900, - "versionNonce": 201680995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0.5153388495080645 - ], - [ - 0.968319964000667, - 0.5153388495080645 - ], - [ - 3.873684559247344, - 0.5153388495080645 - ], - [ - 6.779049154494023, - -1.421570880656433 - ], - [ - 8.716093785740032, - -2.390025745738683 - ], - [ - 9.684683551904, - -2.390025745738683 - ], - [ - 12.589913246069028, - -2.390025745738683 - ], - [ - 14.526957877315036, - -1.421570880656433 - ], - [ - 16.463867607479536, - -0.4531160155741844 - ], - [ - 16.463867607479536, - -0.4531160155741844 - ] - ], - "pressures": [ - 0.0859375, - 0.5439453125, - 0.75390625, - 0.8173828125, - 0.8408203125, - 0.8447265625, - 0.5107421875, - 0.3046875, - 0.17578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.543590198863626, - -0.796675248579561 - ] - }, - { - "id": "-SHYSDbbuBXEkXqDTzO4l", - "type": "freedraw", - "x": 224.004707044964, - "y": -240.46767222933838, - "width": 120.09029188533938, - "height": 18.400912238725677, - "angle": 5.981002487216294, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 789496131, - "version": 931, - "versionNonce": 799933261, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 1.2024812435890546, - 1.889599709599805 - ], - [ - -5.57683771306813, - 0.9211448445175562 - ], - [ - -0.7345633876570943, - 1.889599709599805 - ], - [ - 22.508758077561424, - 4.795031755387305 - ], - [ - 46.72053440786211, - 7.700463801174808 - ], - [ - 70.93231073816281, - 9.637373531339302 - ], - [ - 90.30167784197063, - 9.637373531339302 - ], - [ - 105.79709058436788, - 8.668918666257055 - ], - [ - 114.51345417227125, - 8.668918666257055 - ], - [ - 112.57640954102521, - 8.668918666257055 - ], - [ - 100.9548162589569, - 6.731941485551802 - ], - [ - 81.58544915514885, - 2.8580545746820523 - ], - [ - 49.625899003108785, - -0.04731002056462334 - ], - [ - 30.256531899300917, - -0.04731002056462334 - ], - [ - 16.697893985986404, - 0.9211448445175562 - ], - [ - 7.01321043408241, - 0.9211448445175562 - ], - [ - 1.2024812435890546, - 0.9211448445175562 - ], - [ - -1.7030182527392743, - -0.04731002056462334 - ], - [ - 5.076300703918051, - -0.04731002056462334 - ], - [ - 17.666348851068584, - -1.0157648856468728 - ], - [ - 44.7836246776976, - -1.9842872012699457 - ], - [ - 55.4367630946838, - -1.9842872012699457 - ], - [ - 79.64840452390284, - -1.9842872012699457 - ], - [ - 84.49081375039572, - -1.9842872012699457 - ], - [ - 74.80613019849162, - -1.9842872012699457 - ], - [ - 56.405352860847636, - -1.9842872012699457 - ], - [ - 35.098806224712106, - -1.0157648856468728 - ], - [ - 16.697893985986404, - -0.04731002056462334 - ], - [ - 1.2024812435890546, - 2.8580545746820523 - ], - [ - -2.671473117821454, - 2.8580545746820523 - ], - [ - -3.639927982903772, - 2.8580545746820523 - ], - [ - -0.7345633876570943, - 2.8580545746820523 - ], - [ - 14.760984255821908, - -0.04731002056462334 - ], - [ - 31.224986764383104, - -1.9842872012699457 - ], - [ - 47.688989272944305, - -4.889651796516621 - ], - [ - 60.27903742009497, - -7.795083842304123 - ], - [ - 70.93231073816281, - -7.795083842304123 - ], - [ - 72.86922046832717, - -7.795083842304123 - ], - [ - 71.900765603245, - -7.795083842304123 - ], - [ - 66.09003641275163, - -8.763538707386374 - ], - [ - 65.12144664658764, - -8.763538707386374 - ], - [ - 65.12144664658764, - -8.763538707386374 - ] - ], - "pressures": [ - 0.1025390625, - 0.236328125, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.66796875, - 0.2109375, - 0.140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 52.581343217329504, - -8.763538707386374 - ] - }, - { - "id": "k1zv647g4sn4X9qLC3Sn4", - "type": "freedraw", - "x": -164.60224736201258, - "y": -232.3673795229427, - "width": 36.64761629971588, - "height": 36.64761629971588, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 946506317, - "version": 588, - "versionNonce": 1822450691, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0.7966752485796178, - 0.796702991832376 - ], - [ - 4.780106977982996, - 1.593378240411937 - ], - [ - 7.96686345880687, - 3.186756480823874 - ], - [ - 10.356944691051126, - 3.186756480823874 - ], - [ - 12.747025923295496, - 0.796702991832376 - ], - [ - 15.137051669034122, - -4.780106977982939 - ], - [ - 15.137051669034122, - -7.966863458806813 - ], - [ - 15.137051669034122, - -11.153619939630687 - ], - [ - 12.747025923295496, - -16.730429909446002 - ], - [ - 11.950295188210248, - -19.1204833984375 - ], - [ - 11.950295188210248, - -19.917186390269876 - ], - [ - 14.340376420454618, - -17.527105158025563 - ], - [ - 21.51056463068187, - -9.56024169921875 - ], - [ - 27.08740234375, - -2.390053488991498 - ], - [ - 31.867509321732996, - 4.780134721235811 - ], - [ - 35.850941051136374, - 13.543701171875 - ], - [ - 35.850941051136374, - 15.933754660866498 - ], - [ - 34.25759055397725, - 16.730429909446002 - ], - [ - 27.884077592329618, - 16.730429909446002 - ], - [ - 19.917214133522748, - 15.137079412286937 - ], - [ - 14.340376420454618, - 13.543701171875 - ], - [ - 9.560269442471622, - 11.153619939630687 - ], - [ - 7.96686345880687, - 9.56024169921875 - ], - [ - 7.170188210227252, - 7.170188210227252 - ], - [ - 7.170188210227252, - 6.373512961647748 - ], - [ - 6.373512961647748, - 6.373512961647748 - ], - [ - 6.373512961647748, - 6.373512961647748 - ] - ], - "pressures": [ - 0.119140625, - 0.80078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373512961647748, - 6.373512961647748 - ] - }, - { - "id": "l20fBuiT11SABQ6JxGJvt", - "type": "freedraw", - "x": -158.22873440036483, - "y": -229.9772982906984, - "width": 37.44429154829538, - "height": 33.460887562144876, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1438025389, - "version": 596, - "versionNonce": 1997148589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -0.796702991832376 - ], - [ - 1.593350497159122, - 0 - ], - [ - 4.780106977982996, - 0.796675248579561 - ], - [ - 7.170188210227252, - 1.593350497159122 - ], - [ - 8.763538707386374, - 1.593350497159122 - ], - [ - 10.356944691051126, - -2.390081232244313 - ], - [ - 10.356944691051126, - -6.373512961647691 - ], - [ - 7.96686345880687, - -11.950322931463063 - ], - [ - 6.373512961647748, - -17.527132901278378 - ], - [ - 5.5767822265625, - -20.713889382102252 - ], - [ - 4.780106977982996, - -21.510564630681813 - ], - [ - 4.780106977982996, - -22.30726762251419 - ], - [ - 5.5767822265625, - -20.713889382102252 - ], - [ - 7.96686345880687, - -19.120511141690315 - ], - [ - 11.15361993963063, - -16.730457652698874 - ], - [ - 16.73040216619313, - -12.746998180042624 - ], - [ - 26.290671608664752, - -3.186756480823874 - ], - [ - 31.070778586647748, - 2.390053488991498 - ], - [ - 33.460859818892004, - 5.576809969815372 - ], - [ - 33.460859818892004, - 7.170160466974437 - ], - [ - 30.27410333806813, - 7.966863458806813 - ], - [ - 18.323808149857996, - 10.356916947798311 - ], - [ - 9.560269442471622, - 11.153619939630687 - ], - [ - 3.983431729403378, - 10.356916947798311 - ], - [ - 0, - 7.966863458806813 - ], - [ - -2.39008123224437, - 4.780106977982939 - ], - [ - -3.186756480823874, - 0.796675248579561 - ], - [ - -3.983431729403378, - -0.796702991832376 - ], - [ - -3.983431729403378, - -1.593378240411937 - ], - [ - -3.983431729403378, - -2.390081232244313 - ], - [ - -2.39008123224437, - -3.98345947265625 - ], - [ - -0.7966752485795041, - -3.98345947265625 - ], - [ - 0.7966752485795041, - -3.98345947265625 - ], - [ - 1.593350497159122, - -3.98345947265625 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.091796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9619140625, - 0.4287109375, - 0.1689453125, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159122, - -3.98345947265625 - ] - }, - { - "id": "NUndm4xHe-8876soZIWG5", - "type": "freedraw", - "x": -160.61876014610345, - "y": -229.97732603395121, - "width": 27.884077592329618, - "height": 31.86750932173294, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 976734349, - "version": 597, - "versionNonce": 1671097251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 0 - ], - [ - 0.7966752485795041, - 1.593378240411937 - ], - [ - 3.186756480823874, - 4.780134721235811 - ], - [ - 5.5767822265625, - 6.373485218394876 - ], - [ - 7.170188210227252, - 6.373485218394876 - ], - [ - 7.966863458806756, - 6.373485218394876 - ], - [ - 8.763538707386374, - 6.373485218394876 - ], - [ - 9.560213955965878, - 1.593378240411937 - ], - [ - 9.560213955965878, - -3.983431729403435 - ], - [ - 9.560213955965878, - -7.966863458806813 - ], - [ - 9.560213955965878, - -9.56024169921875 - ], - [ - 8.763538707386374, - -11.153619939630687 - ], - [ - 7.966863458806756, - -13.543673428622185 - ], - [ - 7.966863458806756, - -15.137051669034122 - ], - [ - 7.966863458806756, - -15.933754660866498 - ], - [ - 10.356944691051126, - -15.137051669034122 - ], - [ - 13.543645685369256, - -12.746998180042624 - ], - [ - 18.323808149857882, - -7.966863458806813 - ], - [ - 22.307239879261374, - -0.796675248579561 - ], - [ - 25.493996360085134, - 5.576809969815315 - ], - [ - 26.290671608664752, - 11.153619939630687 - ], - [ - 25.493996360085134, - 13.543673428622128 - ], - [ - 21.510564630681756, - 15.137051669034065 - ], - [ - 11.950295188210134, - 15.933754660866441 - ], - [ - 6.373457475142004, - 15.137051669034065 - ], - [ - 1.5933504971590082, - 13.543673428622128 - ], - [ - -0.7967307350852479, - 10.356944691051126 - ], - [ - -1.5934059836648657, - 7.170188210227252 - ], - [ - -1.5934059836648657, - 3.983431729403378 - ], - [ - -1.5934059836648657, - 0 - ], - [ - -1.5934059836648657, - -0.796675248579561 - ], - [ - -0.7967307350852479, - -1.593378240411937 - ], - [ - 0.7966752485795041, - -2.390053488991498 - ], - [ - 1.5933504971590082, - -2.390053488991498 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.134765625, - 0.5185546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7705078125, - 0.1943359375, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.5933504971590082, - -2.390053488991498 - ] - }, - { - "id": "btsmcAhhbXDXRKKiL6ayd", - "type": "freedraw", - "x": -170.97576032366027, - "y": -170.2257668631416, - "width": 9.560213955965935, - "height": 8.763594193892004, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 595437955, - "version": 585, - "versionNonce": 1754616845, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - -0.796675248579561, - 1.593405983664809 - ], - [ - -1.593350497159122, - 1.593405983664809 - ], - [ - -2.390025745738626, - 1.593405983664809 - ], - [ - -3.186700994318187, - 2.390081232244313 - ], - [ - -3.983431729403435, - 2.390081232244313 - ], - [ - -4.780106977982939, - 2.390081232244313 - ], - [ - -4.780106977982939, - 1.593405983664809 - ], - [ - -5.5767822265625, - 0.796675248579561 - ], - [ - -6.373457475142061, - 0 - ], - [ - -7.966863458806813, - -0.796675248579561 - ], - [ - -8.763538707386374, - -2.390081232244313 - ], - [ - -9.560213955965935, - -3.186756480823874 - ], - [ - -9.560213955965935, - -3.983431729403378 - ], - [ - -9.560213955965935, - -4.780106977982939 - ], - [ - -9.560213955965935, - -5.5767822265625 - ], - [ - -9.560213955965935, - -6.373512961647691 - ], - [ - -8.763538707386374, - -6.373512961647691 - ], - [ - -7.966863458806813, - -6.373512961647691 - ], - [ - -7.170188210227309, - -6.373512961647691 - ], - [ - -6.373457475142061, - -6.373512961647691 - ], - [ - -5.5767822265625, - -6.373512961647691 - ], - [ - -4.780106977982939, - -5.5767822265625 - ], - [ - -3.983431729403435, - -3.983431729403378 - ], - [ - -2.390025745738626, - -2.390081232244313 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.01171875, - 0.2265625, - 0.4306640625, - 0.666015625, - 0.712890625, - 0.71484375, - 0.71484375, - 0.716796875, - 0.7109375, - 0.712890625, - 0.71484375, - 0.71484375, - 0.7109375, - 0.712890625, - 0.712890625, - 0.70703125, - 0.703125, - 0.701171875, - 0.6953125, - 0.6923828125, - 0.6337890625, - 0.404296875, - 0.271484375, - 0.1962890625, - 0.1396484375, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - -2.390081232244313 - ] - }, - { - "id": "sgQmCwMvdmOfyhXbmuuPk", - "type": "freedraw", - "x": -225.94718477323414, - "y": -225.99386656129496, - "width": 23.103970614346565, - "height": 40.63104802911931, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1072711085, - "version": 590, - "versionNonce": 1615415917, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.39013671875, - -0.796702991832376 - ], - [ - 0, - 0 - ], - [ - -2.390025745738626, - 0.7966752485795041 - ], - [ - -3.186700994318187, - 0.7966752485795041 - ], - [ - -3.186700994318187, - 1.593378240411937 - ], - [ - -3.186700994318187, - -0.796702991832376 - ], - [ - -3.186700994318187, - -4.780134721235811 - ], - [ - -3.186700994318187, - -9.56024169921875 - ], - [ - -2.390025745738626, - -15.933754660866498 - ], - [ - -2.390025745738626, - -16.73042990944606 - ], - [ - -3.186700994318187, - -17.527132901278435 - ], - [ - -5.576726740056813, - -18.323808149857996 - ], - [ - -7.966863458806813, - -18.323808149857996 - ], - [ - -11.950295188210248, - -15.933754660866498 - ], - [ - -14.340376420454561, - -11.950322931463063 - ], - [ - -18.32380814985794, - -5.576809969815372 - ], - [ - -19.91715864701706, - 0 - ], - [ - -20.713833895596565, - 6.373485218394876 - ], - [ - -20.713833895596565, - 14.340376420454504 - ], - [ - -20.713833895596565, - 20.713861638849437 - ], - [ - -19.91715864701706, - 22.307239879261317 - ], - [ - -18.32380814985794, - 22.307239879261317 - ], - [ - -15.137051669034065, - 22.307239879261317 - ], - [ - -11.153619939630687, - 19.1204833984375 - ], - [ - -6.373457475142061, - 11.950295188210191 - ], - [ - -4.780106977982939, - 8.763566450639189 - ], - [ - -3.983431729403435, - 6.373485218394876 - ], - [ - -3.186700994318187, - 6.373485218394876 - ], - [ - -3.186700994318187, - 5.576809969815315 - ], - [ - -2.390025745738626, - 4.780106977982939 - ], - [ - -2.390025745738626, - 3.983431729403378 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.013671875, - 0.2158203125, - 0.7626953125, - 0.828125, - 0.876953125, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.6826171875, - 0.3046875, - 0.2490234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - 3.983431729403378 - ] - }, - { - "id": "4A8RRZL_xnhvwPvXOSiFO", - "type": "freedraw", - "x": -162.2121661297682, - "y": -230.77400128253078, - "width": 15.933726917613626, - "height": 25.493996360085248, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 96943885, - "version": 585, - "versionNonce": 2129622221, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796702991832376 - ], - [ - 2.390025745738626, - 1.593378240411937 - ], - [ - 3.186756480823874, - 1.593378240411937 - ], - [ - 3.983431729403378, - 1.593378240411937 - ], - [ - 4.780106977982882, - 0 - ], - [ - 5.5767822265625, - -1.593378240411937 - ], - [ - 5.5767822265625, - -5.576809969815315 - ], - [ - 5.5767822265625, - -7.170188210227252 - ], - [ - 5.5767822265625, - -8.763566450639189 - ], - [ - 5.5767822265625, - -10.356944691051126 - ], - [ - 5.5767822265625, - -11.153619939630687 - ], - [ - 8.763538707386374, - -8.763566450639189 - ], - [ - 9.560213955965878, - -6.373485218394876 - ], - [ - 11.15361993963063, - -2.390053488991498 - ], - [ - 13.543701171875, - 2.390053488991498 - ], - [ - 15.933726917613626, - 7.966863458806813 - ], - [ - 15.933726917613626, - 10.356944691051126 - ], - [ - 15.933726917613626, - 11.950322931463063 - ], - [ - 15.933726917613626, - 13.543701171875 - ], - [ - 13.543701171875, - 13.543701171875 - ], - [ - 9.560213955965878, - 14.340376420454561 - ], - [ - 7.170188210227252, - 14.340376420454561 - ], - [ - 4.780106977982882, - 13.543701171875 - ], - [ - 2.390025745738626, - 12.746998180042624 - ], - [ - 0.7966752485795041, - 11.153619939630687 - ], - [ - 0, - 10.356944691051126 - ], - [ - 0, - 9.56024169921875 - ], - [ - 1.5933504971590082, - 8.763566450639189 - ], - [ - 1.5933504971590082, - 8.763566450639189 - ] - ], - "pressures": [ - 0.048828125, - 0.9189453125, - 0.9404296875, - 0.9453125, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5849609375, - 0.1904296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.5933504971590082, - 8.763566450639189 - ] - }, - { - "id": "yj7GbyY_6-wLDnhWS7ev2", - "type": "freedraw", - "x": 256.04860934963483, - "y": -46.73916130561338, - "width": 114.72295587713063, - "height": 134.64011452414775, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1687248749, - "version": 573, - "versionNonce": 270619437, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.560269442471622, - -2.39013671875 - ], - [ - -18.323808149857996, - -9.560324928977366 - ], - [ - -27.08740234375, - -20.713944868607996 - ], - [ - -35.850941051136374, - -46.207941228693244 - ], - [ - -36.647616299715935, - -66.12509987571025 - ], - [ - -30.274103338068187, - -82.85555752840912 - ], - [ - -18.323808149857996, - -92.41577148437506 - ], - [ - -3.983431729403435, - -96.39925870028412 - ], - [ - 19.917158647017004, - -95.60247247869324 - ], - [ - 35.850941051136374, - -87.63560901988637 - ], - [ - 51.78466796875, - -73.29528808593756 - ], - [ - 61.34493741122151, - -41.42777876420462 - ], - [ - 59.751531427556756, - -29.47748357599437 - ], - [ - 39.83437278053975, - 3.983431729403378 - ], - [ - 19.1204833984375, - 17.527077414772634 - ], - [ - -4.780162464488683, - 20.713778409090878 - ], - [ - -27.08740234375, - 18.323752663352252 - ], - [ - -47.00456099076706, - 3.983431729403378 - ], - [ - -51.78466796875, - -13.543756658380744 - ], - [ - -53.37801846590912, - -36.64767178622162 - ], - [ - -50.987992720170496, - -58.15823641690349 - ], - [ - -43.81780450994319, - -75.68531383167618 - ], - [ - -25.493996360085248, - -94.80585271661937 - ], - [ - -11.950295188210248, - -103.56939142400574 - ], - [ - -0.7966752485796178, - -109.94290438565343 - ], - [ - 7.966863458806756, - -113.92633611505687 - ], - [ - 15.933726917613626, - -109.14622913707387 - ], - [ - 16.73040216619313, - -104.36612215909093 - ], - [ - 16.73040216619313, - -104.36612215909093 - ] - ], - "pressures": [ - 0.0986328125, - 0.53515625, - 0.8408203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.44140625, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 16.73040216619313, - -104.36612215909093 - ] - }, - { - "id": "-OsY33syfu0JalaclNZYC", - "type": "freedraw", - "x": 226.57118126014615, - "y": -58.68951198032937, - "width": 108.34944291548294, - "height": 113.12960537997162, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1522464685, - "version": 574, - "versionNonce": 2075296291, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.356944691051126, - -7.170188210227252 - ], - [ - -13.543701171875, - -11.950295188210134 - ], - [ - -19.917158647017004, - -25.493996360085134 - ], - [ - -24.697321111505687, - -38.24102228338063 - ], - [ - -25.49399636008519, - -51.78466796875 - ], - [ - -22.307239879261317, - -74.091963334517 - ], - [ - -14.340376420454504, - -86.83893377130676 - ], - [ - 0, - -96.39920321377838 - ], - [ - 19.1204833984375, - -101.97598544034088 - ], - [ - 46.20783025568181, - -98.789228959517 - ], - [ - 60.54820667613643, - -89.22901500355107 - ], - [ - 70.90515136718756, - -74.88863858309657 - ], - [ - 74.88858309659093, - -56.564830433238626 - ], - [ - 70.10847611860794, - -33.460915305397634 - ], - [ - 47.801236239346565, - -1.593405983664752 - ], - [ - 25.493996360085248, - 9.560213955965992 - ], - [ - 0.796675248579561, - 11.153619939630744 - ], - [ - -19.1204833984375, - 4.780106977982996 - ], - [ - -32.6641845703125, - -15.933726917613626 - ], - [ - -33.460859818892004, - -34.25759055397725 - ], - [ - -31.070834073153378, - -54.971424449573874 - ], - [ - -24.697321111505687, - -74.091963334517 - ], - [ - -15.137051669034065, - -87.63560901988632 - ], - [ - 7.170188210227309, - -98.789228959517 - ], - [ - 24.697265625, - -101.17931019176132 - ], - [ - 39.03764204545456, - -100.38263494318176 - ], - [ - 50.19126198508519, - -95.60247247869313 - ], - [ - 57.36145019531256, - -86.83893377130676 - ], - [ - 55.768099698153435, - -85.24558327414769 - ], - [ - 55.768099698153435, - -85.24558327414769 - ] - ], - "pressures": [ - 0.1328125, - 0.259765625, - 0.3359375, - 0.64453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9580078125, - 0.697265625, - 0.18359375, - 0.123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.768099698153435, - -85.24558327414769 - ] - }, - { - "id": "EKxJoWH92QJubYyjuK3BL", - "type": "freedraw", - "x": 236.13139521611208, - "y": -62.67294370973275, - "width": 103.56933593749994, - "height": 111.5362548828125, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1174479203, - "version": 570, - "versionNonce": 810050957, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558542, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.560213955965935, - 0 - ], - [ - -20.713833895596622, - -7.170188210227252 - ], - [ - -28.680697354403435, - -16.730457652698874 - ], - [ - -35.85088556463069, - -29.477483575994256 - ], - [ - -39.83437278053975, - -47.80123623934662 - ], - [ - 60.548262162642004, - -75.68525834517044 - ], - [ - 59.7515869140625, - -53.37807395241475 - ], - [ - 50.19131747159088, - -28.680752840909122 - ], - [ - 27.08740234375, - -1.593405983664752 - ], - [ - 7.170188210227252, - 4.780106977982996 - ], - [ - -13.543645685369313, - 2.390025745738626 - ], - [ - -28.680697354403435, - -7.966863458806756 - ], - [ - -38.240966796875, - -23.103970614346622 - ], - [ - -43.02107377485794, - -50.19131747159088 - ], - [ - -42.224398526278435, - -70.10853160511363 - ], - [ - -36.647616299715935, - -86.83893377130681 - ], - [ - -27.884022105823874, - -98.78928444602269 - ], - [ - -15.137051669034122, - -105.16274192116475 - ], - [ - 7.9669189453125, - -106.7561479048295 - ], - [ - 21.510564630681756, - -105.16274192116475 - ], - [ - 30.274158824573874, - -101.17931019176137 - ], - [ - 36.64761629971588, - -94.00912198153407 - ], - [ - 39.83437278053975, - -80.46547629616475 - ], - [ - 39.83437278053975, - -72.49855735085225 - ], - [ - 37.444347034801126, - -71.701826615767 - ], - [ - 37.444347034801126, - -71.701826615767 - ] - ], - "pressures": [ - 0.1005859375, - 0.3447265625, - 0.8349609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.908203125, - 0.82421875, - 0.7607421875, - 0.54296875, - 0.2646484375, - 0.1708984375, - 0.005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 37.444347034801126, - -71.701826615767 - ] - }, - { - "id": "cDC49t4Seb4er62SfFc7r", - "type": "freedraw", - "x": 220.19766829849846, - "y": -11.685006476067997, - "width": 119.50306285511363, - "height": 143.4037087180398, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2043140557, - "version": 578, - "versionNonce": 587482563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.373512961647748, - -1.5933504971590082 - ], - [ - -12.746970436789809, - -5.5767822265625 - ], - [ - -15.933726917613626, - -8.763538707386374 - ], - [ - -23.900645862926126, - -15.933726917613626 - ], - [ - -32.6641845703125, - -26.290671608664752 - ], - [ - -39.83437278053981, - -39.83431729403401 - ], - [ - -43.021129261363626, - -60.548206676136374 - ], - [ - -43.021129261363626, - -73.29523259943176 - ], - [ - -38.240966796875, - -86.83882279829538 - ], - [ - -30.274103338068187, - -100.38257945667613 - ], - [ - -12.746970436789809, - -119.50306285511363 - ], - [ - 0.7966752485795041, - -125.87657581676132 - ], - [ - 16.730457652698874, - -125.07990056818176 - ], - [ - 32.6641845703125, - -117.9097123579545 - ], - [ - 50.98799272017038, - -96.39914772727275 - ], - [ - 59.751531427556756, - -75.68525834517038 - ], - [ - 62.141612659801126, - -49.39458673650563 - ], - [ - 56.56477494673288, - -22.307239879261374 - ], - [ - 43.021129261363626, - 0 - ], - [ - 12.746970436789752, - 15.137107155539752 - ], - [ - -9.560213955965935, - 15.93378240411937 - ], - [ - -31.070778586647748, - 10.356944691051126 - ], - [ - -47.00456099076706, - -3.18670099431813 - ], - [ - -57.3614501953125, - -32.6641845703125 - ], - [ - -57.3614501953125, - -55.76809969815338 - ], - [ - -51.78466796875, - -78.87195933948863 - ], - [ - -41.42766779119319, - -99.58590420809651 - ], - [ - -27.087346857244313, - -116.31630637428975 - ], - [ - 0.7966752485795041, - -126.67319557883519 - ], - [ - 20.713889382102252, - -127.46992631392044 - ], - [ - 35.054265802556756, - -125.07990056818176 - ], - [ - 39.83437278053975, - -122.68976384943176 - ], - [ - 34.25753506747162, - -35.05415482954538 - ], - [ - 34.25753506747162, - -35.05415482954538 - ] - ], - "pressures": [ - 0.18359375, - 0.3017578125, - 0.5166015625, - 0.64453125, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.25753506747162, - -35.05415482954538 - ] - }, - { - "id": "HsksUueAuJkzo2mNyGG_X", - "type": "freedraw", - "x": 213.02748008827115, - "y": -13.278356973227005, - "width": 129.06338778409088, - "height": 152.1673029119318, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 666080387, - "version": 589, - "versionNonce": 849226733, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - -3.9834317294034918 - ], - [ - -11.950295188210191, - -10.35694469105124 - ], - [ - -18.323752663352252, - -19.1204833984375 - ], - [ - -23.90059037642044, - -27.884077592329618 - ], - [ - -27.884077592329504, - -47.80123623934662 - ], - [ - -27.087346857244313, - -66.12504438920462 - ], - [ - -19.917158647017004, - -83.652177290483 - ], - [ - -7.170188210227252, - -97.19582297585237 - ], - [ - 19.91715864701706, - -112.33293013139212 - ], - [ - 41.42772327769893, - -115.51968661221593 - ], - [ - 60.54826216264206, - -113.12954989346593 - ], - [ - 74.09190784801143, - -101.17925470525574 - ], - [ - 79.66874556107956, - -80.46542080965912 - ], - [ - 72.49855735085231, - -37.444236061789866 - ], - [ - 61.344937411221565, - -11.153619939630744 - ], - [ - 47.00456099076706, - 7.966863458806756 - ], - [ - 30.274103338068187, - 17.527132901278378 - ], - [ - 3.983431729403435, - 15.137051669034008 - ], - [ - -10.356889204545439, - 1.5933504971590082 - ], - [ - -23.103915127840878, - -18.323808149857996 - ], - [ - -31.86750932173294, - -40.63104802911937 - ], - [ - -35.05426580255681, - -64.5316938920455 - ], - [ - -27.884077592329504, - -92.41571599786937 - ], - [ - -15.137051669034065, - -105.16268643465912 - ], - [ - 3.983431729403435, - -112.33293013139212 - ], - [ - 30.274103338068187, - -113.12954989346593 - ], - [ - 69.31180087002843, - -105.95941716974437 - ], - [ - 86.04225852272731, - -92.41571599786937 - ], - [ - 93.21244673295456, - -69.31174538352275 - ], - [ - 93.21244673295456, - -40.63104802911937 - ], - [ - 84.44885253906256, - -14.340376420454618 - ], - [ - 58.15818093039769, - 5.57683771306813 - ], - [ - 32.6641845703125, - 6.373568448153378 - ], - [ - 8.763538707386374, - 0 - ], - [ - -10.356889204545439, - -11.153619939630744 - ], - [ - -30.2740478515625, - -33.460804332386374 - ], - [ - -35.85094105113632, - -54.17474920099437 - ], - [ - -35.85094105113632, - -75.68531383167624 - ], - [ - -28.680752840909065, - -93.21239124644887 - ], - [ - -15.137051669034065, - -108.34949840198868 - ], - [ - 11.153619939630687, - -124.28322531960231 - ], - [ - 29.477428089488683, - -131.45341352982962 - ], - [ - 42.224454012784065, - -134.64017001065343 - ], - [ - 42.224454012784065, - -132.25008877840912 - ], - [ - 42.224454012784065, - -132.25008877840912 - ] - ], - "pressures": [ - 0.08984375, - 0.2490234375, - 0.4384765625, - 0.73828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.947265625, - 0.8642578125, - 0.75, - 0.724609375, - 0.7109375, - 0.73046875, - 0.7685546875, - 0.7587890625, - 0.744140625, - 0.744140625, - 0.728515625, - 0.724609375, - 0.72265625, - 0.724609375, - 0.732421875, - 0.5185546875, - 0.31640625, - 0.18359375, - 0.0205078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.224454012784065, - -132.25008877840912 - ] - }, - { - "id": "8cnDEtdA6VaC4W6f1tOz0", - "type": "freedraw", - "x": 222.58774953074277, - "y": -15.668438205471375, - "width": 125.07984508167618, - "height": 128.26660156249994, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1146041667, - "version": 583, - "versionNonce": 1855755619, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 5.57683771306813 - ], - [ - -4.780162464488626, - 4.78021795099437 - ], - [ - -12.747025923295439, - -2.390025745738626 - ], - [ - -21.510564630681813, - -14.340376420454504 - ], - [ - -33.46085981889206, - -37.444291548295496 - ], - [ - -38.24102228338069, - -56.564774946732996 - ], - [ - -39.83431729403412, - -66.1250443892045 - ], - [ - -39.83431729403412, - -75.6852583451705 - ], - [ - 57.36145019531244, - -90.8223100142045 - ], - [ - 56.56477494673294, - -78.87195933948863 - ], - [ - 42.224398526278435, - -37.444291548295496 - ], - [ - 27.087346857244313, - -15.933726917613626 - ], - [ - 8.763538707386374, - -3.983431729403378 - ], - [ - -15.137051669034122, - -3.983431729403378 - ], - [ - -27.884022105823874, - -16.73040216619313 - ], - [ - -36.647616299715935, - -36.64761629971588 - ], - [ - -39.83431729403412, - -64.53163840553975 - ], - [ - -33.46085981889206, - -103.5693359375 - ], - [ - -27.08740234375, - -112.33287464488637 - ], - [ - 2.390025745738626, - -122.68976384943181 - ], - [ - 29.477428089488626, - -121.89314408735794 - ], - [ - 52.58134321732956, - -119.50306285511363 - ], - [ - 77.27866432883519, - -107.55276766690338 - ], - [ - 85.24552778764206, - -88.43228426846588 - ], - [ - 85.24552778764206, - -61.34488192471588 - ], - [ - 75.68525834517044, - -32.6641845703125 - ], - [ - 47.00456099076706, - -2.390025745738626 - ], - [ - 21.510564630681813, - 3.186756480823874 - ], - [ - -2.390081232244313, - -1.593350497159122 - ], - [ - -19.120538884943187, - -13.54364568536937 - ], - [ - -28.680752840909122, - -30.27410333806813 - ], - [ - -33.46085981889206, - -60.548206676136374 - ], - [ - -31.86745383522731, - -78.07533957741475 - ], - [ - -25.493996360085248, - -90.025634765625 - ], - [ - -17.527132901278435, - -97.99249822443187 - ], - [ - -7.966863458806813, - -105.16268643465907 - ], - [ - 3.186756480823874, - -112.33287464488637 - ], - [ - 3.983431729403378, - -111.53619939630681 - ], - [ - 3.983431729403378, - -111.53619939630681 - ] - ], - "pressures": [ - 0.1162109375, - 0.3232421875, - 0.4951171875, - 0.638671875, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96875, - 0.9345703125, - 0.908203125, - 0.556640625, - 0.263671875, - 0.171875, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983431729403378, - -111.53619939630681 - ] - }, - { - "id": "-REY_dBanIuL-P696sc_q", - "type": "freedraw", - "x": 224.9777752764814, - "y": -18.855139199789505, - "width": 128.2666570490057, - "height": 141.81041370738643, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1175680803, - "version": 587, - "versionNonce": 1194075725, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.966863458806813, - -2.39008123224437 - ], - [ - -12.746970436789752, - -7.96686345880687 - ], - [ - -19.1204833984375, - -16.730457652698874 - ], - [ - -25.493996360085248, - -27.884022105823874 - ], - [ - -31.867453835227252, - -43.02112926136374 - ], - [ - -34.257479580965935, - -71.70182661576712 - ], - [ - -31.867453835227252, - -89.22901500355124 - ], - [ - -24.697265625, - -103.56933593750006 - ], - [ - -14.340320933948874, - -112.33293013139212 - ], - [ - 8.763594193892061, - -117.90976784446025 - ], - [ - 27.08740234375, - -116.3163618607955 - ], - [ - 43.81780450994319, - -108.34949840198868 - ], - [ - 57.36150568181819, - -96.39920321377849 - ], - [ - 64.53169389204544, - -79.66869007457387 - ], - [ - 62.14161265980118, - -44.61453524502849 - ], - [ - 50.98799272017044, - -20.713889382102366 - ], - [ - 35.85094105113632, - -3.186756480823874 - ], - [ - 16.730457652698874, - 4.780106977982882 - ], - [ - -11.950295188210248, - -2.39008123224437 - ], - [ - -26.290616122159065, - -15.93372691761374 - ], - [ - -35.85088556463069, - -33.46091530539775 - ], - [ - -39.83437278053975, - -54.97147993607962 - ], - [ - -39.03764204545456, - -77.27871981534099 - ], - [ - -27.884022105823874, - -106.75614790482962 - ], - [ - -15.137051669034065, - -117.90976784446025 - ], - [ - 2.390081232244313, - -123.48649458451712 - ], - [ - 23.103970614346565, - -125.87663130326712 - ], - [ - 48.59796697443181, - -125.07995605468756 - ], - [ - 64.53169389204544, - -120.29979359019893 - ], - [ - 78.07539506392044, - -109.14617365056824 - ], - [ - 86.83893377130681, - -91.61904074928987 - ], - [ - 88.43228426846593, - -70.10853160511374 - ], - [ - 80.46542080965907, - -35.05426580255687 - ], - [ - 65.32836914062494, - -14.340376420454618 - ], - [ - 42.224454012784065, - 2.390025745738626 - ], - [ - 15.137051669034065, - 7.9669189453125 - ], - [ - -19.1204833984375, - -2.39008123224437 - ], - [ - -26.290616122159065, - -10.35694469105124 - ], - [ - 0.7967307350852479, - -133.04681951349437 - ], - [ - 3.983431729403435, - -133.84349476207393 - ], - [ - 6.373512961647748, - -133.04681951349437 - ], - [ - 6.373512961647748, - -131.45341352982962 - ], - [ - 6.373512961647748, - -131.45341352982962 - ] - ], - "pressures": [ - 0.025390625, - 0.306640625, - 0.47265625, - 0.7568359375, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9423828125, - 0.908203125, - 0.876953125, - 0.8056640625, - 0.701171875, - 0.716796875, - 0.75390625, - 0.7744140625, - 0.7744140625, - 0.791015625, - 0.8134765625, - 0.8134765625, - 0.3173828125, - 0.2548828125, - 0.1396484375, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373512961647748, - -131.45341352982962 - ] - }, - { - "id": "KNMYcABLxe2L3PlFqaBEs", - "type": "freedraw", - "x": 209.84072360744733, - "y": -49.12929802436338, - "width": 96.39909224076706, - "height": 125.07995605468744, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 628277315, - "version": 590, - "versionNonce": 768209155, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - 0 - ], - [ - -11.153564453125, - -5.57672674005687 - ], - [ - -19.91715864701706, - -20.713833895596622 - ], - [ - -23.900590376420496, - -33.460804332386374 - ], - [ - -25.493996360085248, - -46.20783025568187 - ], - [ - -23.900590376420496, - -58.15818093039775 - ], - [ - -15.136996182528435, - -74.88858309659093 - ], - [ - -4.780106977982996, - -84.44885253906256 - ], - [ - 9.560269442471565, - -89.22890403053981 - ], - [ - 28.680752840909065, - -89.22890403053981 - ], - [ - 46.2078857421875, - -82.05877130681824 - ], - [ - 61.34493741122151, - -63.73496315696025 - ], - [ - 65.328369140625, - -45.41109952059662 - ], - [ - 63.73501864346588, - -21.510509144176126 - ], - [ - 54.971424449573874, - 1.593405983664752 - ], - [ - 34.25759055397725, - 22.307295365767004 - ], - [ - 17.527132901278378, - 25.493996360085134 - ], - [ - 0.7967307350851911, - 21.510564630681756 - ], - [ - -12.746970436789809, - 11.950295188210134 - ], - [ - -22.307239879261374, - -1.5932950106534918 - ], - [ - -30.274103338068187, - -25.493940873579618 - ], - [ - -31.07072310014206, - -41.427667791193244 - ], - [ - -25.493996360085248, - -55.76809969815349 - ], - [ - -15.933726917613683, - -70.108476118608 - ], - [ - 3.983431729403378, - -88.43228426846593 - ], - [ - 21.510564630681813, - -93.21233575994324 - ], - [ - 39.83437278053975, - -92.41571599786937 - ], - [ - 54.971424449573874, - -84.44885253906256 - ], - [ - 62.93828790838063, - -69.31174538352275 - ], - [ - 63.73501864346588, - -32.6641845703125 - ], - [ - 55.76809969815338, - -4.780106977982996 - ], - [ - 43.021129261363626, - 16.730457652698874 - ], - [ - 26.290671608664752, - 26.290727095170382 - ], - [ - 0.7967307350851911, - 24.69732111150563 - ], - [ - -11.950295188210248, - 13.543701171875 - ], - [ - -20.713833895596622, - -0.7966752485796178 - ], - [ - -23.900590376420496, - -18.323808149857996 - ], - [ - -24.697321111505687, - -37.444236061789866 - ], - [ - -17.527132901278435, - -67.71839488636363 - ], - [ - -9.560213955965935, - -86.04220303622162 - ], - [ - 0.7967307350851911, - -96.39914772727275 - ], - [ - 15.137051669034065, - -98.78922895951706 - ], - [ - 38.24102228338063, - -91.61904074928981 - ], - [ - 50.98799272017038, - -82.05877130681824 - ], - [ - 53.37807395241475, - -78.07533957741481 - ], - [ - 53.37807395241475, - -78.07533957741481 - ] - ], - "pressures": [ - 0.0693359375, - 0.5400390625, - 0.876953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4775390625, - 0.2880859375, - 0.134765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.37807395241475, - -78.07533957741481 - ] - }, - { - "id": "JCC9F1yBPd2xSbVFbAdk5", - "type": "freedraw", - "x": 218.60431780133933, - "y": -46.73916130561338, - "width": 123.48655007102269, - "height": 139.42027698863643, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1640133805, - "version": 601, - "versionNonce": 1623970989, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - 3.18670099431813 - ], - [ - 11.153619939630687, - -108.34955388849437 - ], - [ - 32.66412908380681, - -111.53625488281256 - ], - [ - 47.004505504261374, - -109.94290438565343 - ], - [ - 54.971424449573874, - -101.17936567826706 - ], - [ - 60.548206676136374, - -74.09196333451706 - ], - [ - 56.564774946732996, - -48.59796697443187 - ], - [ - 47.004505504261374, - -20.713944868607996 - ], - [ - 31.86745383522731, - 2.389970259232882 - ], - [ - 4.780106977982996, - 15.933726917613626 - ], - [ - -12.747025923295439, - 11.950295188210134 - ], - [ - -27.884022105823874, - 0 - ], - [ - -38.24102228338069, - -19.120538884943244 - ], - [ - -42.224454012784065, - -40.631103515625 - ], - [ - -40.631103515625, - -73.29528808593756 - ], - [ - -32.6641845703125, - -90.82242098721593 - ], - [ - -20.713889382102252, - -101.17936567826706 - ], - [ - -3.186756480823874, - -105.1627974076705 - ], - [ - 30.274103338068187, - -105.1627974076705 - ], - [ - 49.394586736505744, - -101.97604092684662 - ], - [ - 63.73496315696025, - -94.00917746803981 - ], - [ - 74.09190784801137, - -78.87212579900574 - ], - [ - 79.66869007457387, - -58.15823641690349 - ], - [ - 78.87201482599437, - -23.103970614346622 - ], - [ - 70.108476118608, - -3.9834317294034918 - ], - [ - 54.971424449573874, - 8.76348322088063 - ], - [ - 36.64761629971588, - 15.136996182528378 - ], - [ - 5.5767822265625, - 13.543645685369256 - ], - [ - -9.560269442471565, - 4.780051491477252 - ], - [ - -18.32380814985794, - -8.763649680397748 - ], - [ - -23.90059037642044, - -25.49405184659099 - ], - [ - -25.49399636008519, - -43.02118474786937 - ], - [ - -21.510564630681813, - -71.70188210227275 - ], - [ - -12.747025923295439, - -87.63560901988637 - ], - [ - 2.390025745738626, - -96.39925870028412 - ], - [ - 22.307239879261374, - -98.78928444602275 - ], - [ - 50.987992720170496, - -92.41577148437506 - ], - [ - 66.92171963778412, - -79.66874556107956 - ], - [ - 78.07533957741475, - -60.54831764914775 - ], - [ - 81.26209605823863, - -36.64767178622162 - ], - [ - 76.48193359375, - -9.560324928977366 - ], - [ - 54.971424449573874, - 20.713778409090878 - ], - [ - 34.25753506747162, - 27.884022105823874 - ], - [ - 11.153619939630687, - 25.493940873579504 - ], - [ - -7.170188210227252, - 15.136996182528378 - ], - [ - -23.103970614346565, - -5.576893199573874 - ], - [ - -28.680752840909065, - -23.900645862926126 - ], - [ - -31.867453835227252, - -42.224509499289866 - ], - [ - -31.867453835227252, - -59.7515869140625 - ], - [ - -29.477428089488626, - -75.68531383167618 - ], - [ - -18.32380814985794, - -91.61904074928981 - ], - [ - -7.170188210227252, - -96.39925870028412 - ], - [ - 3.983431729403435, - -98.78928444602275 - ], - [ - 15.137051669034122, - -100.38269042968756 - ], - [ - 23.103915127840935, - -100.38269042968756 - ], - [ - 23.103915127840935, - -98.78928444602275 - ], - [ - 23.103915127840935, - -98.78928444602275 - ] - ], - "pressures": [ - 0.0908203125, - 0.2041015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9384765625, - 0.859375, - 0.8466796875, - 0.8466796875, - 0.8115234375, - 0.80078125, - 0.798828125, - 0.7783203125, - 0.783203125, - 0.787109375, - 0.787109375, - 0.791015625, - 0.8115234375, - 0.830078125, - 0.8349609375, - 0.8349609375, - 0.7685546875, - 0.75, - 0.7607421875, - 0.7783203125, - 0.798828125, - 0.8388671875, - 0.849609375, - 0.8173828125, - 0.8095703125, - 0.798828125, - 0.78515625, - 0.7744140625, - 0.7607421875, - 0.677734375, - 0.44921875, - 0.349609375, - 0.2060546875, - 0.1494140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103915127840935, - -98.78928444602275 - ] - }, - { - "id": "BJErFDHcUeByv4_IeBspu", - "type": "freedraw", - "x": 179.56662026937914, - "y": -96.1338590151305, - "width": 189.6115944602273, - "height": 56.56471946022725, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 827120067, - "version": 557, - "versionNonce": 1108007075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.576837713068187, - -2.389970259232882 - ], - [ - -6.373512961647748, - -2.389970259232882 - ], - [ - -6.373512961647748, - -1.5933504971590082 - ], - [ - -2.390081232244313, - 3.186756480823874 - ], - [ - 7.170243696732939, - 10.356944691051126 - ], - [ - 31.070834073153378, - 25.49405184659099 - ], - [ - 54.97142444957382, - 38.241022283380744 - ], - [ - 80.46542080965907, - 47.00456099076712 - ], - [ - 105.1627419211647, - 52.58139870383525 - ], - [ - 144.99711470170456, - 54.17474920099437 - ], - [ - 166.50767933238632, - 52.58139870383525 - ], - [ - 179.25459428267044, - 48.59796697443187 - ], - [ - 183.23808149857956, - 43.817804509943244 - ], - [ - 178.45791903409093, - 42.22445401278412 - ], - [ - 178.45791903409093, - 42.22445401278412 - ] - ], - "pressures": [ - 0.1064453125, - 0.14453125, - 0.1904296875, - 0.5205078125, - 0.73046875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.3251953125, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 178.45791903409093, - 42.22445401278412 - ] - }, - { - "id": "H0neTsYFUeN5NnPZ1BmMj", - "type": "freedraw", - "x": 171.59975681057233, - "y": -89.76034605348275, - "width": 164.91421786221588, - "height": 50.988048206676126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1129312525, - "version": 555, - "versionNonce": 1529263885, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.170243696732939, - 12.747025923295496 - ], - [ - 16.73040216619313, - 21.51056463068187 - ], - [ - 27.884022105823817, - 29.477428089488626 - ], - [ - 42.22439852627838, - 37.444291548295496 - ], - [ - 60.54820667613632, - 44.61447975852275 - ], - [ - 91.61904074928975, - 50.988048206676126 - ], - [ - 112.33287464488637, - 50.19131747159088 - ], - [ - 133.04676402698863, - 45.41115500710225 - ], - [ - 150.573896928267, - 37.444291548295496 - ], - [ - 164.11754261363637, - 30.274103338068244 - ], - [ - 164.91421786221588, - 27.884077592329504 - ], - [ - 162.52419211647725, - 27.884077592329504 - ], - [ - 162.52419211647725, - 27.884077592329504 - ] - ], - "pressures": [ - 0.0947265625, - 0.8642578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9384765625, - 0.302734375, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 162.52419211647725, - 27.884077592329504 - ] - }, - { - "id": "ElUFR2r13-cmJ4FzArAex", - "type": "freedraw", - "x": 201.87386014864046, - "y": -60.28291796399412, - "width": 39.83437278053975, - "height": 36.64761629971599, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2081156003, - "version": 561, - "versionNonce": 1494076483, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -3.983431729403378 - ], - [ - -7.170132723721565, - -7.966863458806756 - ], - [ - -10.356944691051126, - -10.356889204545382 - ], - [ - -14.340376420454504, - -11.950295188210248 - ], - [ - -19.120427911931813, - -11.950295188210248 - ], - [ - -20.713889382102252, - -9.560213955965878 - ], - [ - -20.713889382102252, - -6.373457475142004 - ], - [ - -19.917158647017004, - -1.593350497159122 - ], - [ - -16.730457652698817, - 3.186756480823874 - ], - [ - -13.543701171875, - 7.96686345880687 - ], - [ - -4.780106977982939, - 15.933726917613626 - ], - [ - 1.593350497159122, - 20.713889382102252 - ], - [ - 8.763594193892061, - 23.900645862926126 - ], - [ - 15.933726917613683, - 24.697321111505744 - ], - [ - 18.323808149857996, - 24.697321111505744 - ], - [ - 19.1204833984375, - 23.900645862926126 - ], - [ - 19.1204833984375, - 21.5106201171875 - ], - [ - 16.730457652698874, - 19.1204833984375 - ], - [ - 15.933726917613683, - 18.323808149857996 - ], - [ - 15.933726917613683, - 18.323808149857996 - ] - ], - "pressures": [ - 0.0087890625, - 0.4794921875, - 0.7724609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.49609375, - 0.177734375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.933726917613683, - 18.323808149857996 - ] - }, - { - "id": "f-s8yot9wjHKCOAbg_dTD", - "type": "freedraw", - "x": 209.04404835886777, - "y": -41.16243456555662, - "width": 71.70188210227269, - "height": 35.05426580255687, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1075107715, - "version": 558, - "versionNonce": 1622560109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - -0.7966752485795041 - ], - [ - -0.796675248579561, - 0.7967307350852479 - ], - [ - 4.780106977982939, - 3.186756480823874 - ], - [ - 15.933726917613626, - 8.763594193892118 - ], - [ - 25.49399636008519, - 10.35700017755687 - ], - [ - 33.46085981889206, - 10.35700017755687 - ], - [ - 41.427723277698874, - 8.763594193892118 - ], - [ - 50.98799272017044, - 4.780162464488626 - ], - [ - 55.768099698153435, - 2.39013671875 - ], - [ - 60.54826216264206, - -0.7966752485795041 - ], - [ - 64.53169389204544, - -4.780106977982882 - ], - [ - 66.12504438920456, - -9.560158469460248 - ], - [ - 68.51512562144882, - -17.527077414772748 - ], - [ - 68.51512562144882, - -20.713833895596622 - ], - [ - 68.51512562144882, - -23.900590376420382 - ], - [ - 67.71839488636357, - -24.697265625 - ], - [ - 67.71839488636357, - -23.900590376420382 - ], - [ - 67.71839488636357, - -23.900590376420382 - ] - ], - "pressures": [ - 0.0859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90625, - 0.443359375, - 0.1982421875, - 0.015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 67.71839488636357, - -23.900590376420382 - ] - }, - { - "id": "zLIPIyEY3mCaKKaATvnVl", - "type": "freedraw", - "x": 224.9777752764814, - "y": -50.72259303501687, - "width": 117.11303710937494, - "height": 131.45341352982956, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1498852355, - "version": 576, - "versionNonce": 1722895331, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982939, - 1.5932950106534918 - ], - [ - -7.966863458806813, - 0 - ], - [ - -11.950295188210248, - -4.780217950994256 - ], - [ - -19.91715864701706, - -17.52718838778401 - ], - [ - -24.697265625, - -29.477483575994256 - ], - [ - -27.884022105823874, - -43.81780450994313 - ], - [ - -27.884022105823874, - -62.141668146306756 - ], - [ - -23.90059037642044, - -92.41582697088063 - ], - [ - -16.730402166193187, - -109.14622913707382 - ], - [ - -7.170188210227252, - -122.68993030894882 - ], - [ - 7.170188210227252, - -129.86011851917607 - ], - [ - 27.08740234375, - -129.86011851917607 - ], - [ - 55.768155184659065, - -116.31641734730107 - ], - [ - 70.90520685369319, - -102.77271617542607 - ], - [ - 81.26215154474431, - -87.63560901988632 - ], - [ - 84.44885253906244, - -69.31185635653407 - ], - [ - 74.88863858309657, - -37.444347034801126 - ], - [ - 58.95485617897731, - -19.12053888494313 - ], - [ - 39.03769753196019, - -7.170243696732882 - ], - [ - 17.527132901278435, - -3.186811967329504 - ], - [ - -1.593350497159065, - -4.780217950994256 - ], - [ - -20.713833895596565, - -17.52718838778401 - ], - [ - -27.884022105823874, - -30.274214311079504 - ], - [ - -31.867453835227252, - -43.021184747869256 - ], - [ - -32.6641845703125, - -55.76815518465901 - ], - [ - -31.867453835227252, - -69.31185635653407 - ], - [ - -27.087346857244313, - -82.85555752840907 - ], - [ - -15.137051669034065, - -100.38269042968744 - ], - [ - -6.373457475142061, - -110.73963512073857 - ], - [ - 3.186756480823874, - -119.50311834161926 - ], - [ - 15.933782404119313, - -122.68993030894882 - ], - [ - 24.697321111505687, - -120.2998490767045 - ], - [ - 31.070834073153435, - -115.51968661221588 - ], - [ - 34.25759055397731, - -111.53625488281244 - ], - [ - 34.25759055397731, - -108.34955388849426 - ], - [ - 34.25759055397731, - -108.34955388849426 - ] - ], - "pressures": [ - 0.1494140625, - 0.3876953125, - 0.55078125, - 0.78125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8173828125, - 0.529296875, - 0.3896484375, - 0.23828125, - 0.169921875, - 0.0859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.25759055397731, - -108.34955388849426 - ] - }, - { - "id": "MMRkmAYAq8mToSIQlqhbM", - "type": "freedraw", - "x": 233.74136947037346, - "y": -65.063024941977, - "width": 102.77260520241475, - "height": 130.6566827947443, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1960901901, - "version": 576, - "versionNonce": 281286605, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664809, - 3.983431729403378 - ], - [ - -3.983431729403435, - 4.780106977982882 - ], - [ - -8.763594193892061, - 4.780106977982882 - ], - [ - -15.137051669034122, - -1.593350497159122 - ], - [ - -23.900645862926126, - -17.527077414772748 - ], - [ - -29.477428089488626, - -29.477372602982996 - ], - [ - -33.46085981889206, - -43.02112926136374 - ], - [ - -35.054210316051126, - -57.36145019531256 - ], - [ - -35.054210316051126, - -70.90520685369324 - ], - [ - -26.29067160866481, - -87.63560901988643 - ], - [ - -15.137051669034122, - -97.19582297585231 - ], - [ - 0, - -105.16268643465912 - ], - [ - 16.730402166193187, - -111.53625488281256 - ], - [ - 39.83437278053975, - -113.12954989346593 - ], - [ - 53.37801846590912, - -105.95941716974437 - ], - [ - 62.93828790838063, - -92.41571599786937 - ], - [ - 67.71839488636363, - -71.70188210227275 - ], - [ - 67.71839488636363, - -46.2078857421875 - ], - [ - 58.15818093039775, - -9.560213955965992 - ], - [ - 47.80123623934662, - 7.966863458806756 - ], - [ - 34.25753506747162, - 16.73040216619313 - ], - [ - 17.52707741477269, - 17.527132901278378 - ], - [ - 1.593350497159065, - 10.357000177556756 - ], - [ - -16.730457652698874, - -10.35694469105124 - ], - [ - -23.900645862926126, - -26.290671608664866 - ], - [ - -27.087346857244313, - -43.02112926136374 - ], - [ - -27.88407759232956, - -58.15818093039775 - ], - [ - -26.29067160866481, - -75.68531383167618 - ], - [ - -23.103915127840935, - -83.652177290483 - ], - [ - -19.1204833984375, - -89.2289595170455 - ], - [ - -14.340376420454561, - -94.80579723011368 - ], - [ - -10.356944691051126, - -98.78922895951712 - ], - [ - -6.373512961647748, - -99.58590420809662 - ], - [ - -3.983431729403435, - -97.19582297585231 - ], - [ - -3.983431729403435, - -95.60247247869324 - ], - [ - -3.983431729403435, - -95.60247247869324 - ] - ], - "pressures": [ - 0.0869140625, - 0.2138671875, - 0.3232421875, - 0.4619140625, - 0.5869140625, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.9560546875, - 0.947265625, - 0.951171875, - 0.951171875, - 0.9423828125, - 0.8984375, - 0.740234375, - 0.5947265625, - 0.4130859375, - 0.21484375, - 0.1357421875, - 0.029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983431729403435, - -95.60247247869324 - ] - }, - { - "id": "GFAecebDMzrF7awczRsMk", - "type": "freedraw", - "x": 232.14796348670865, - "y": -65.85970019055662, - "width": 119.50311834161931, - "height": 137.8269264914773, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1486709987, - "version": 575, - "versionNonce": 1594087299, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -27.884022105823817, - -22.307239879261374 - ], - [ - -35.054210316051126, - -44.61447975852275 - ], - [ - -36.64761629971588, - -61.344937411221565 - ], - [ - -36.64761629971588, - -69.31180087002838 - ], - [ - -28.680752840909065, - -93.2124467329545 - ], - [ - -21.510509144176126, - -105.95941716974431 - ], - [ - -11.950295188210191, - -113.92633611505681 - ], - [ - 0, - -116.31630637428975 - ], - [ - 22.30723987926143, - -113.12960537997157 - ], - [ - 36.647616299715935, - -109.14617365056813 - ], - [ - 49.39464222301143, - -102.77266068892044 - ], - [ - 62.14161265980118, - -92.41571599786931 - ], - [ - 72.49855735085231, - -78.07539506392044 - ], - [ - 79.66874556107956, - -50.19131747159088 - ], - [ - 79.66874556107956, - -30.274158824573874 - ], - [ - 70.90520685369319, - -10.356944691051126 - ], - [ - 55.768155184659065, - 7.170188210227252 - ], - [ - 38.24102228338069, - 18.323808149857996 - ], - [ - 7.170188210227309, - 18.323808149857996 - ], - [ - -11.153619939630687, - 7.170188210227252 - ], - [ - -23.90059037642044, - -8.763538707386374 - ], - [ - -32.6641845703125, - -23.900645862926126 - ], - [ - -38.240966796875, - -43.81780450994313 - ], - [ - -39.83437278053975, - -55.768155184659065 - ], - [ - -39.83437278053975, - -68.51507013494313 - ], - [ - -38.240966796875, - -80.46542080965907 - ], - [ - -33.46080433238632, - -90.82236550071019 - ], - [ - -23.90059037642044, - -104.3660111860795 - ], - [ - -15.933726917613626, - -110.73957963423294 - ], - [ - -7.966863458806813, - -115.51968661221588 - ], - [ - -1.593350497159065, - -118.70644309303975 - ], - [ - 3.186756480823874, - -119.50311834161931 - ], - [ - 11.153619939630687, - -114.72301136363632 - ], - [ - 11.950350674715935, - -112.33287464488632 - ], - [ - 11.950350674715935, - -112.33287464488632 - ] - ], - "pressures": [ - 0.109375, - 0.576171875, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8388671875, - 0.701171875, - 0.4580078125, - 0.19921875, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950350674715935, - -112.33287464488632 - ] - }, - { - "id": "Z_09V4rOsMNw_9qAHaZwq", - "type": "freedraw", - "x": 201.11820628871675, - "y": 209.75781137101598, - "width": 120.29973810369319, - "height": 122.68987482244313, - "angle": 0.134023247636871, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 578432899, - "version": 680, - "versionNonce": 1701418541, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - -7.807516033919427 - ], - [ - -3.983431729403435, - -4.833209447098321 - ], - [ - -6.373457475142061, - -8.551079733770994 - ], - [ - -11.153619939630687, - -18.217563194085876 - ], - [ - -14.340320933948874, - -27.140482954549196 - ], - [ - -17.527077414772748, - -38.29409381456732 - ], - [ - -19.1204833984375, - -51.678447561554876 - ], - [ - -19.91715864701706, - -65.06280130854248 - ], - [ - -14.340320933948874, - -81.4214616423512 - ], - [ - -7.170188210227252, - -91.83145701510303 - ], - [ - 3.186756480823874, - -102.2415559626842 - ], - [ - 16.730457652698874, - -111.1644239357328 - ], - [ - 38.24102228338069, - -115.62590970967176 - ], - [ - 51.78466796874994, - -111.9080394229991 - ], - [ - 66.12504438920456, - -102.2415559626842 - ], - [ - 78.87207031249994, - -91.08794510266608 - ], - [ - 89.22901500355118, - -77.70359135567847 - ], - [ - 95.60247247869319, - -61.34493102186981 - ], - [ - 94.00912198153407, - -31.60191694107354 - ], - [ - 82.85550204190343, - -14.499692907413205 - ], - [ - 66.92177512428981, - -1.8589028602772162 - ], - [ - 37.44434703480118, - 5.57683771306813 - ], - [ - 15.933782404119313, - 3.346094826098698 - ], - [ - -1.593350497159065, - -5.576824934364618 - ], - [ - -12.746970436789752, - -18.217563194085876 - ], - [ - -19.91715864701706, - -32.3454806409251 - ], - [ - -24.697265625, - -54.65270236096131 - ], - [ - -24.697265625, - -65.80631322097943 - ], - [ - -22.307184392755687, - -73.9857210690058 - ], - [ - -17.527077414772748, - -82.16502534220277 - ], - [ - -7.170188210227252, - -97.03650648889362 - ], - [ - 2.390081232244313, - -106.70293816179382 - ], - [ - 11.153619939630687, - -113.39516682270228 - ], - [ - 18.32380814985794, - -116.36947340952338 - ], - [ - 22.307239879261374, - -117.113037109375 - ], - [ - 24.697321111505687, - -117.113037109375 - ], - [ - 25.493996360085248, - -115.62590970967176 - ], - [ - 27.08740234375, - -113.39516682270228 - ], - [ - 27.08740234375, - -113.39516682270228 - ] - ], - "pressures": [ - 0.0625, - 0.1650390625, - 0.20703125, - 0.3994140625, - 0.6318359375, - 0.83203125, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.927734375, - 0.849609375, - 0.8173828125, - 0.7744140625, - 0.7626953125, - 0.7666015625, - 0.7685546875, - 0.7685546875, - 0.7587890625, - 0.71484375, - 0.6357421875, - 0.5068359375, - 0.3955078125, - 0.2734375, - 0.197265625, - 0.158203125, - 0.083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.08740234375, - -113.12960537997157 - ] - }, - { - "id": "GLstMCa4AqkvpRrHSx2KW", - "type": "freedraw", - "x": 268.7955797864246, - "y": -182.17600656484638, - "width": 135.4367897727273, - "height": 238.20956143465912, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1007811917, - "version": 551, - "versionNonce": 809758499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - -13.543756658380687 - ], - [ - -16.730402166193187, - -28.680808327414752 - ], - [ - -24.697265625, - -42.22450949928975 - ], - [ - -31.070778586647748, - -47.00461647727275 - ], - [ - -35.850941051136374, - -42.22450949928975 - ], - [ - -44.61447975852275, - -22.30729536576706 - ], - [ - -46.20783025568181, - -0.7967307350852479 - ], - [ - -43.81780450994319, - 29.47737260298294 - ], - [ - -33.46085981889206, - 65.32831365411937 - ], - [ - -6.373457475142004, - 121.09641335227275 - ], - [ - 15.137051669034122, - 149.77716619318187 - ], - [ - 36.64761629971588, - 169.69432484019887 - ], - [ - 53.37807395241475, - 182.44135076349437 - ], - [ - 68.5151811079545, - 189.61153897372162 - ], - [ - 86.83893377130676, - 191.20494495738637 - ], - [ - 89.2289595170455, - 189.61153897372162 - ], - [ - 89.2289595170455, - 189.61153897372162 - ] - ], - "pressures": [ - 0.1103515625, - 0.2060546875, - 0.400390625, - 0.6494140625, - 0.931640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2373046875, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 89.2289595170455, - 189.61153897372162 - ] - }, - { - "id": "g_NgAL27OcidPM4g-lmeY", - "type": "freedraw", - "x": 232.9446387352882, - "y": -159.07214692351113, - "width": 101.17925470525569, - "height": 255.73669433593756, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2140006659, - "version": 554, - "versionNonce": 1502627981, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - -11.950295188210248 - ], - [ - -6.373457475142061, - -15.136996182528435 - ], - [ - -6.373457475142061, - -31.070778586647748 - ], - [ - -0.796675248579561, - -42.224398526278435 - ], - [ - 10.356944691051126, - -50.987992720170496 - ], - [ - 27.884077592329504, - -55.768099698153435 - ], - [ - 50.19131747159088, - -55.768099698153435 - ], - [ - 81.26215154474437, - -46.2078857421875 - ], - [ - 92.415771484375, - -31.867509321732996 - ], - [ - 94.80579723011363, - -4.780106977982996 - ], - [ - 91.6190962357955, - 35.05426580255681 - ], - [ - 80.46542080965912, - 101.17931019176137 - ], - [ - 71.70188210227275, - 139.42027698863637 - ], - [ - 61.34493741122162, - 167.30435458096588 - ], - [ - 50.19131747159088, - 184.83148748224426 - ], - [ - 40.631103515625, - 195.18837668678975 - ], - [ - 32.6641845703125, - 199.96859463778412 - ], - [ - 31.070834073153378, - 199.96859463778412 - ], - [ - 27.884077592329504, - 193.59502618963063 - ], - [ - 27.884077592329504, - 193.59502618963063 - ] - ], - "pressures": [ - 0.13671875, - 0.3701171875, - 0.4736328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.884765625, - 0.5263671875, - 0.3740234375, - 0.0361328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884077592329504, - 193.59502618963063 - ] - }, - { - "id": "dYD56oaW7b_XjFkLO6np5", - "type": "freedraw", - "x": 228.96120700588483, - "y": -139.15493278998844, - "width": 82.05877130681819, - "height": 203.1552956321023, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2045764419, - "version": 558, - "versionNonce": 2095059651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186700994318187, - -3.186700994318187 - ], - [ - -3.186700994318187, - -7.9669189453125 - ], - [ - -3.186700994318187, - -15.137051669034065 - ], - [ - 0, - -23.900645862926126 - ], - [ - 3.983431729403378, - -34.25759055397725 - ], - [ - 14.340376420454504, - -50.19131747159088 - ], - [ - 26.290727095170382, - -56.564830433238626 - ], - [ - 40.631103515625, - -59.7515869140625 - ], - [ - 54.971424449573874, - -58.95491166548294 - ], - [ - 73.29523259943176, - -47.004560990767004 - ], - [ - 78.8720703125, - -28.680752840909065 - ], - [ - 78.8720703125, - 0 - ], - [ - 74.88863858309651, - 37.44429154829544 - ], - [ - 68.51512562144887, - 76.48198908025569 - ], - [ - 53.37807395241475, - 121.09646883877843 - ], - [ - 43.021129261363626, - 137.03019575639206 - ], - [ - 32.6641845703125, - 143.4037087180398 - ], - [ - 23.103970614346565, - 142.6070334694602 - ], - [ - 10.356944691051126, - 133.04676402698868 - ], - [ - 4.780162464488626, - 127.46992631392044 - ], - [ - 3.983431729403378, - 125.07990056818181 - ], - [ - 4.780162464488626, - 125.07990056818181 - ], - [ - 6.373512961647691, - 125.87657581676143 - ], - [ - 6.373512961647691, - 125.87657581676143 - ] - ], - "pressures": [ - 0.150390625, - 0.205078125, - 0.2958984375, - 0.478515625, - 0.6806640625, - 0.78515625, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9111328125, - 0.3994140625, - 0.2177734375, - 0.13671875, - 0.064453125, - 0.01171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373512961647691, - 125.87657581676143 - ] - }, - { - "id": "sfEYI9uzvEzz1M_15DBL7", - "type": "freedraw", - "x": 194.7037274249189, - "y": -92.150427285727, - "width": 205.54532137784088, - "height": 60.54826216264212, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1658889827, - "version": 540, - "versionNonce": 1324461805, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -3.186700994318244 - ], - [ - -3.186811967329561, - -3.9834317294034918 - ], - [ - -0.7967307350852479, - -3.186700994318244 - ], - [ - 11.950295188210248, - -0.7966752485796178 - ], - [ - 33.460804332386374, - 3.1867564808237603 - ], - [ - 81.26204057173294, - 12.747025923295382 - ], - [ - 116.31630637428981, - 19.917214133522634 - ], - [ - 144.99705921519882, - 27.884077592329504 - ], - [ - 166.5076238458807, - 37.444402521306756 - ], - [ - 191.2048894708807, - 50.98799272017038 - ], - [ - 199.96842817826706, - 55.76815518465901 - ], - [ - 201.56188964843744, - 56.564830433238626 - ], - [ - 199.96842817826706, - 55.76815518465901 - ], - [ - 199.96842817826706, - 55.76815518465901 - ] - ], - "pressures": [ - 0.1533203125, - 0.189453125, - 0.3291015625, - 0.388671875, - 0.8662109375, - 1, - 1, - 1, - 1, - 0.85546875, - 0.3564453125, - 0.228515625, - 0.1123046875, - 0.01171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 199.96842817826706, - 55.76815518465901 - ] - }, - { - "id": "iSLRnQPgmUyJT3q-uzPKm", - "type": "freedraw", - "x": 216.21423656909502, - "y": -69.84313191996, - "width": 180.05126953125, - "height": 39.83437278053975, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 762861133, - "version": 540, - "versionNonce": 360104547, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - -6.373512961647748 - ], - [ - -7.966863458806813, - -7.9669189453125 - ], - [ - -7.966863458806813, - -11.950350674715878 - ], - [ - -3.983431729403378, - -15.137107155539752 - ], - [ - 19.1204833984375, - -19.917214133522748 - ], - [ - 44.61447975852269, - -22.307295365767004 - ], - [ - 71.70188210227269, - -23.900645862926126 - ], - [ - 107.55276766690343, - -19.120538884943244 - ], - [ - 116.31636186079544, - -15.93378240411937 - ], - [ - 138.6236017400568, - -3.186756480823874 - ], - [ - 152.1673029119318, - 5.5767822265625 - ], - [ - 163.3208673650568, - 11.950295188210248 - ], - [ - 172.0844060724432, - 15.933726917613626 - ], - [ - 172.0844060724432, - 15.933726917613626 - ] - ], - "pressures": [ - 0.14453125, - 0.2177734375, - 0.28125, - 0.431640625, - 0.666015625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.83203125, - 0.35546875, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 172.0844060724432, - 15.933726917613626 - ] - }, - { - "id": "8DKgpF9Kp5RpUYTUzjSpR", - "type": "freedraw", - "x": 214.62088607193596, - "y": -108.88082945192025, - "width": 187.22145774147725, - "height": 60.54820667613632, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 725131267, - "version": 544, - "versionNonce": 873941325, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.576837713068187, - 1.593350497159122 - ], - [ - -10.356944691051126, - 6.373512961647748 - ], - [ - -11.950295188210248, - 7.170188210227252 - ], - [ - -13.543701171875, - 7.170188210227252 - ], - [ - -12.747025923295496, - 9.560213955965878 - ], - [ - -5.576837713068187, - 15.933726917613626 - ], - [ - 8.763538707386374, - 26.290727095170496 - ], - [ - 38.240966796875, - 38.241022283380744 - ], - [ - 56.56477494673288, - 41.427723277698874 - ], - [ - 75.68525834517038, - 43.021129261363626 - ], - [ - 96.39914772727275, - 40.63104802911937 - ], - [ - 118.70638760653412, - 34.25759055397725 - ], - [ - 151.37051669034088, - 16.730402166193244 - ], - [ - 167.30435458096588, - 2.39008123224437 - ], - [ - 173.67775656960225, - -11.153619939630687 - ], - [ - 171.28773082386363, - -17.52707741477269 - ], - [ - 168.10102982954538, - -17.52707741477269 - ], - [ - 168.10102982954538, - -17.52707741477269 - ] - ], - "pressures": [ - 0.0224609375, - 0.080078125, - 0.1591796875, - 0.193359375, - 0.2822265625, - 0.4951171875, - 0.6552734375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.677734375, - 0.1591796875, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 168.10102982954538, - -17.52707741477269 - ] - }, - { - "id": "-lUMPepts_2BI9_YXUpC9", - "type": "freedraw", - "x": 211.43412959111208, - "y": -88.166940069818, - "width": 172.08446155894887, - "height": 48.59785600142044, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 804790125, - "version": 541, - "versionNonce": 852917763, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390025745738626, - 6.373457475142118 - ], - [ - 10.356889204545439, - 8.763538707386374 - ], - [ - 22.307239879261374, - 10.356889204545496 - ], - [ - 37.44429154829544, - 10.356889204545496 - ], - [ - 67.71839488636363, - 9.560269442471622 - ], - [ - 91.61904074928975, - 4.780106977982996 - ], - [ - 116.31630637428975, - -2.390025745738626 - ], - [ - 141.01368297230113, - -10.356889204545382 - ], - [ - 160.134110884233, - -19.12053888494313 - ], - [ - 172.08446155894887, - -27.884077592329504 - ], - [ - 171.28778631036926, - -31.86750932173294 - ], - [ - 165.71094859730113, - -35.85094105113632 - ], - [ - 159.33743563565338, - -38.24096679687494 - ], - [ - 156.94740988991475, - -38.24096679687494 - ], - [ - 156.94740988991475, - -38.24096679687494 - ] - ], - "pressures": [ - 0.0693359375, - 0.5537109375, - 0.798828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8740234375, - 0.3994140625, - 0.18359375, - 0.00390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 156.94740988991475, - -38.24096679687494 - ] - }, - { - "id": "wZgEZaba_yUDEO3rqKE28", - "type": "freedraw", - "x": 206.65402261312914, - "y": -98.52382927436338, - "width": 168.10102982954544, - "height": 43.81780450994319, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2048187085, - "version": 543, - "versionNonce": 1784321965, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - 0.796619762073874 - ], - [ - 7.170132723721565, - 3.18670099431813 - ], - [ - 15.136996182528378, - 6.373401988636374 - ], - [ - 38.240966796875, - 12.746914950284008 - ], - [ - 58.15812544389206, - 18.323752663352252 - ], - [ - 78.0753395774147, - 19.917158647017004 - ], - [ - 97.99249822443181, - 19.917158647017004 - ], - [ - 117.90971235795456, - 17.527021928267004 - ], - [ - 144.20032848011357, - 10.356889204545382 - ], - [ - 156.94735440340907, - 6.373401988636374 - ], - [ - 164.91421786221593, - 1.593295010653378 - ], - [ - 168.10102982954544, - -4.78021795099437 - ], - [ - 166.50756835937494, - -14.340431906960248 - ], - [ - 162.5241921164772, - -20.713944868607996 - ], - [ - 160.13416637073857, - -23.900645862926183 - ], - [ - 158.5407049005682, - -23.900645862926183 - ], - [ - 158.5407049005682, - -23.900645862926183 - ] - ], - "pressures": [ - 0.025390625, - 0.3955078125, - 0.7626953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4912109375, - 0.244140625, - 0.1396484375, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 158.5407049005682, - -23.900645862926183 - ] - }, - { - "id": "duTVAT4YNhqQBcQlhsqRq", - "type": "freedraw", - "x": 217.01091181767458, - "y": -100.91396599311338, - "width": 162.52419211647725, - "height": 50.987992720170496, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1555184781, - "version": 540, - "versionNonce": 1878902179, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 4.780106977982882 - ], - [ - 13.543701171875, - 16.730457652698874 - ], - [ - 28.680752840909065, - 23.900645862926126 - ], - [ - 38.24102228338063, - 27.884077592329504 - ], - [ - 61.34493741122162, - 33.460859818892004 - ], - [ - 97.9925537109375, - 35.850941051136374 - ], - [ - 117.113037109375, - 30.274158824573874 - ], - [ - 132.25008877840912, - 20.713889382102252 - ], - [ - 144.9971147017045, - 9.560269442471508 - ], - [ - 153.76065340909088, - -2.39008123224437 - ], - [ - 161.72751686789775, - -13.54364568536937 - ], - [ - 162.52419211647725, - -15.137051669034122 - ], - [ - 161.72751686789775, - -14.340376420454618 - ], - [ - 161.72751686789775, - -14.340376420454618 - ] - ], - "pressures": [ - 0.0634765625, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.666015625, - 0.349609375, - 0.107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 161.72751686789775, - -14.340376420454618 - ] - }, - { - "id": "WpKD9g0t7gkj5yfpL-sGA", - "type": "freedraw", - "x": 195.50034718699277, - "y": -92.150427285727, - "width": 200.7651589133522, - "height": 66.12504438920456, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1084227011, - "version": 544, - "versionNonce": 1810176525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 0 - ], - [ - -2.390025745738626, - 0.7967307350851343 - ], - [ - -0.796619762073874, - 3.9834872159090082 - ], - [ - 2.390081232244313, - 7.170188210227252 - ], - [ - 9.560269442471565, - 12.747025923295382 - ], - [ - 18.32380814985794, - 17.52718838778401 - ], - [ - 33.46085981889206, - 22.307295365767004 - ], - [ - 53.37807395241475, - 24.69732111150563 - ], - [ - 74.09196333451706, - 23.10397061434651 - ], - [ - 108.34949840198857, - 15.137107155539752 - ], - [ - 132.25008877840907, - 6.373512961647634 - ], - [ - 155.35400390624994, - -4.780106977982996 - ], - [ - 176.8645685369318, - -17.527077414772748 - ], - [ - 190.4082697088068, - -28.680697354403435 - ], - [ - 198.37513316761357, - -39.03764204545462 - ], - [ - 197.57845791903407, - -41.42772327769893 - ], - [ - 194.39175692471593, - -41.42772327769893 - ], - [ - 194.39175692471593, - -41.42772327769893 - ] - ], - "pressures": [ - 0.060546875, - 0.1162109375, - 0.177734375, - 0.2109375, - 0.255859375, - 0.5078125, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.580078125, - 0.203125, - 0.0703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 194.39175692471593, - -41.42772327769893 - ] - }, - { - "id": "jl3Bu55OpCSnB8b5bxMtW", - "type": "freedraw", - "x": 200.2805096514814, - "y": -94.54039754496, - "width": 194.39175692471588, - "height": 49.39458673650569, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1411329453, - "version": 542, - "versionNonce": 68884803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983487215909065, - 0 - ], - [ - 0.796675248579561, - 3.18670099431813 - ], - [ - 11.153619939630687, - 7.966863458806756 - ], - [ - 35.054210316051126, - 15.136996182528378 - ], - [ - 55.768099698153435, - 16.7303466796875 - ], - [ - 78.07533957741481, - 17.527077414772748 - ], - [ - 102.77266068892044, - 16.7303466796875 - ], - [ - 126.67325106534093, - 14.340320933948874 - ], - [ - 160.13416637073868, - 7.170132723721622 - ], - [ - 176.8645685369318, - 0 - ], - [ - 187.2214577414773, - -7.9669189453125 - ], - [ - 190.4082697088068, - -15.137107155539752 - ], - [ - 189.6115944602273, - -23.900645862926126 - ], - [ - 186.4247824928977, - -29.477483575994313 - ], - [ - 184.03475674715907, - -31.86750932173294 - ], - [ - 184.03475674715907, - -31.86750932173294 - ] - ], - "pressures": [ - 0.0224609375, - 0.1826171875, - 0.8349609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3076171875, - 0.150390625, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 184.03475674715907, - -31.86750932173294 - ] - }, - { - "id": "YwLoTtt1tZXz0WLO-EXNa", - "type": "freedraw", - "x": 295.8829821301746, - "y": -219.6203535996475, - "width": 101.17931019176137, - "height": 242.98969615589482, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 387162275, - "version": 544, - "versionNonce": 833638509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -7.170188210227252 - ], - [ - -21.51056463068187, - -19.120511141690372 - ], - [ - -25.493996360085248, - -20.713889382102252 - ], - [ - -34.25759055397725, - -22.30726762251419 - ], - [ - -42.22445401278412, - -21.510592373934685 - ], - [ - -50.191317471590935, - -15.933782404119313 - ], - [ - -56.564830433238626, - -1.593405983664752 - ], - [ - -58.95485617897725, - 37.444347034801126 - ], - [ - -56.564830433238626, - 72.49850186434657 - ], - [ - -50.191317471590935, - 109.94284889914775 - ], - [ - -35.05426580255687, - 162.52419211647725 - ], - [ - -20.713889382102252, - 188.0181884765625 - ], - [ - -2.39008123224437, - 205.54532137784088 - ], - [ - 16.73040216619313, - 215.10553533380676 - ], - [ - 34.25753506747162, - 219.8856977982955 - ], - [ - 42.22445401278412, - 220.68242853338063 - ], - [ - 42.22445401278412, - 219.8856977982955 - ], - [ - 42.22445401278412, - 219.8856977982955 - ] - ], - "pressures": [ - 0.0830078125, - 0.1533203125, - 0.3369140625, - 0.4111328125, - 0.58203125, - 0.73046875, - 0.8662109375, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4267578125, - 0.1181640625, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.22445401278412, - 219.8856977982955 - ] - }, - { - "id": "iD3CCLto9WnnNXuACGiBr", - "type": "freedraw", - "x": 264.0154728084416, - "y": -202.8899514334543, - "width": 126.67325106534088, - "height": 224.66586026278412, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1804186435, - "version": 545, - "versionNonce": 1015871715, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -6.373512961647748 - ], - [ - -3.983431729403378, - -13.543701171875 - ], - [ - -5.57683771306813, - -15.137051669034122 - ], - [ - -10.356944691051126, - -16.730402166193187 - ], - [ - -20.713889382102252, - -14.340376420454561 - ], - [ - -29.477428089488626, - -7.170188210227309 - ], - [ - -36.64761629971588, - 3.983431729403378 - ], - [ - -40.631048029119256, - 20.71394486860794 - ], - [ - -39.83437278053975, - 57.36150568181819 - ], - [ - -28.680752840909065, - 90.02569025213069 - ], - [ - -8.763538707386374, - 129.0633322975852 - ], - [ - 15.137051669034122, - 164.91427334872157 - ], - [ - 35.05426580255687, - 188.0182439630682 - ], - [ - 54.971424449573874, - 202.35856489701706 - ], - [ - 65.328369140625, - 205.54532137784093 - ], - [ - 77.27866432883525, - 207.93545809659093 - ], - [ - 84.4488525390625, - 207.93545809659093 - ], - [ - 86.04220303622162, - 207.93545809659093 - ], - [ - 86.04220303622162, - 207.93545809659093 - ] - ], - "pressures": [ - 0.0947265625, - 0.12890625, - 0.2138671875, - 0.2470703125, - 0.39453125, - 0.599609375, - 0.69921875, - 0.8076171875, - 0.853515625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8466796875, - 0.384765625, - 0.14453125, - 0.0380859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 86.04220303622162, - 207.93545809659093 - ] - }, - { - "id": "RxNGnwBnKVOXOfEfiRojd", - "type": "freedraw", - "x": 239.31815169693596, - "y": -37.179002836153245, - "width": 159.33749112215907, - "height": 74.88858309659088, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 59875885, - "version": 539, - "versionNonce": 1501936333, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 7.9669189453125 - ], - [ - -6.373512961647748, - 9.560269442471622 - ], - [ - -7.170188210227309, - 7.9669189453125 - ], - [ - -7.170188210227309, - 0.7967307350852479 - ], - [ - -1.593350497159122, - -15.137051669034008 - ], - [ - 9.560269442471565, - -27.087346857244256 - ], - [ - 25.493996360085248, - -39.83431729403401 - ], - [ - 47.004560990767004, - -52.581343217329504 - ], - [ - 72.49855735085225, - -61.344826438210134 - ], - [ - 111.53619939630676, - -65.32831365411926 - ], - [ - 132.25008877840912, - -62.141612659801126 - ], - [ - 144.9971147017045, - -57.361394708806756 - ], - [ - 150.57395241477275, - -54.174693714488626 - ], - [ - 152.16730291193176, - -51.78466796875 - ], - [ - 152.16730291193176, - -51.78466796875 - ] - ], - "pressures": [ - 0.0849609375, - 0.1455078125, - 0.2490234375, - 0.291015625, - 0.3515625, - 0.712890625, - 0.8662109375, - 1, - 1, - 1, - 1, - 0.669921875, - 0.31640625, - 0.19140625, - 0.0908203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 152.16730291193176, - -51.78466796875 - ] - }, - { - "id": "mJQWbij49x5WmMvDJ0DBu", - "type": "freedraw", - "x": 231.35128823812914, - "y": -56.299486234590745, - "width": 188.01818847656244, - "height": 108.34944291548288, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1080798573, - "version": 537, - "versionNonce": 920773763, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - -7.170188210227309, - 0 - ], - [ - -11.950295188210248, - -1.5933504971590082 - ], - [ - 52.58134321732956, - -15.933726917613626 - ], - [ - 85.24552778764206, - -23.900590376420382 - ], - [ - 106.75614790482956, - -34.25747958096588 - ], - [ - 141.01362748579544, - -56.56477494673288 - ], - [ - 159.33749112215907, - -72.4985573508522 - ], - [ - 170.49105557528407, - -85.245527787642 - ], - [ - 176.0678932883522, - -93.21239124644882 - ], - [ - 176.0678932883522, - -101.17925470525563 - ], - [ - 170.49105557528407, - -108.34944291548288 - ], - [ - 170.49105557528407, - -108.34944291548288 - ] - ], - "pressures": [ - 0.078125, - 0.1044921875, - 0.1513671875, - 0.2763671875, - 1, - 1, - 1, - 1, - 1, - 0.9453125, - 0.54296875, - 0.2255859375, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 170.49105557528407, - -108.34944291548288 - ] - }, - { - "id": "ilqH0scsrR4QV3iQxllXQ", - "type": "freedraw", - "x": 264.8121480570212, - "y": -72.23321315220437, - "width": 36.647616299715935, - "height": 32.6641845703125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2078259523, - "version": 544, - "versionNonce": 201251117, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.9834317294034918, - 0.7966752485796178 - ], - [ - -6.373512961647748, - 1.5934059836648657 - ], - [ - -10.356944691051126, - 1.5934059836648657 - ], - [ - -15.137051669034122, - 3.186756480823874 - ], - [ - -20.713833895596622, - 5.576837713068244 - ], - [ - -25.493996360085248, - 9.560269442471622 - ], - [ - -26.29067160866481, - 11.153619939630744 - ], - [ - -26.29067160866481, - 12.746970436789866 - ], - [ - -26.29067160866481, - 15.137051669034122 - ], - [ - -23.900590376420496, - 19.1204833984375 - ], - [ - -20.713833895596622, - 22.307239879261374 - ], - [ - -16.730402166193244, - 25.49405184659099 - ], - [ - -10.356944691051126, - 28.680752840909122 - ], - [ - -3.9834317294034918, - 31.070778586647748 - ], - [ - 3.186756480823874, - 32.6641845703125 - ], - [ - 6.373512961647634, - 32.6641845703125 - ], - [ - 7.966863458806756, - 32.6641845703125 - ], - [ - 9.560269442471508, - 32.6641845703125 - ], - [ - 10.356944691051126, - 30.274103338068244 - ], - [ - 8.763594193892004, - 27.08734685724437 - ], - [ - 6.373512961647634, - 26.290671608664866 - ], - [ - 6.373512961647634, - 26.290671608664866 - ] - ], - "pressures": [ - 0.095703125, - 0.626953125, - 0.7587890625, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75, - 0.306640625, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373512961647634, - 26.290671608664866 - ] - }, - { - "id": "4OuIdVF1G3KrafopZ05Dm", - "type": "freedraw", - "x": 252.86185286881096, - "y": -61.876268461153245, - "width": 38.240966796875, - "height": 20.713944868607996, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 141397293, - "version": 541, - "versionNonce": 1524128803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -0.7966752485795041 - ], - [ - -2.390081232244313, - -1.593405983664752 - ], - [ - -6.373512961647748, - -1.593405983664752 - ], - [ - -10.356944691051126, - -1.593405983664752 - ], - [ - -13.543701171875, - 0 - ], - [ - -15.137051669034122, - 1.593350497159122 - ], - [ - -15.137051669034122, - 5.5767822265625 - ], - [ - -15.137051669034122, - 7.96686345880687 - ], - [ - -13.543701171875, - 9.560213955965992 - ], - [ - -10.356944691051126, - 12.746970436789866 - ], - [ - -1.593405983664809, - 16.730402166193244 - ], - [ - 3.983431729403378, - 18.323808149857996 - ], - [ - 8.763538707386374, - 19.120538884943244 - ], - [ - 12.746970436789752, - 19.120538884943244 - ], - [ - 15.137051669034122, - 19.120538884943244 - ], - [ - 19.1204833984375, - 18.323808149857996 - ], - [ - 21.510564630681756, - 17.527077414772748 - ], - [ - 23.103915127840878, - 16.730402166193244 - ], - [ - 23.103915127840878, - 16.730402166193244 - ] - ], - "pressures": [ - 0.04296875, - 0.5888671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8896484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103915127840878, - 16.730402166193244 - ] - }, - { - "id": "QyF0_kFYqUlMQhn5vYDXg", - "type": "freedraw", - "x": 259.2353658304587, - "y": -139.95166352507363, - "width": 62.93828790838069, - "height": 157.7440851384943, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 705331779, - "version": 545, - "versionNonce": 579152781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.9834317294034918, - -10.356889204545496 - ], - [ - -4.780162464488626, - -13.543645685369313 - ], - [ - -6.373512961647748, - -17.527077414772748 - ], - [ - -7.170188210227309, - -27.087346857244313 - ], - [ - -6.373512961647748, - -44.61447975852275 - ], - [ - -3.186756480823874, - -54.174693714488626 - ], - [ - 1.5933504971590082, - -60.548206676136374 - ], - [ - 10.356944691051126, - -61.344881924715935 - ], - [ - 29.477428089488626, - -54.174693714488626 - ], - [ - 42.22439852627838, - -43.021073774857996 - ], - [ - 50.191261985085134, - -28.680697354403435 - ], - [ - 54.971424449573874, - -10.356889204545496 - ], - [ - 55.76809969815338, - 14.340376420454504 - ], - [ - 50.191261985085134, - 54.174749200994256 - ], - [ - 43.81780450994313, - 73.2952880859375 - ], - [ - 34.25753506747151, - 85.24563876065338 - ], - [ - 23.900590376420382, - 92.415771484375 - ], - [ - 10.356944691051126, - 96.39920321377838 - ], - [ - 5.5767822265625, - 96.39920321377838 - ], - [ - 4.780106977982882, - 96.39920321377838 - ], - [ - 7.170188210227252, - 94.80579723011363 - ], - [ - 8.763538707386374, - 92.415771484375 - ], - [ - 8.763538707386374, - 92.415771484375 - ] - ], - "pressures": [ - 0.115234375, - 0.28125, - 0.369140625, - 0.47265625, - 0.7587890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8642578125, - 0.744140625, - 0.21484375, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.763538707386374, - 92.415771484375 - ] - }, - { - "id": "TGxmhkV-radKp7-ty3vXj", - "type": "freedraw", - "x": 267.20222928926546, - "y": -152.69863396186344, - "width": 39.037697531960134, - "height": 137.82687100497162, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1560486797, - "version": 550, - "versionNonce": 341761987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -6.373512961647691 - ], - [ - -2.390081232244256, - -12.747025923295439 - ], - [ - -2.390081232244256, - -19.91721413352269 - ], - [ - -2.390081232244256, - -26.290671608664752 - ], - [ - -2.390081232244256, - -31.86750932173294 - ], - [ - -2.390081232244256, - -34.257535067471565 - ], - [ - 0, - -33.460859818892004 - ], - [ - 5.5767822265625, - -28.680752840909065 - ], - [ - 15.137051669034122, - -18.32380814985794 - ], - [ - 21.51056463068187, - -8.763594193892004 - ], - [ - 27.884022105823874, - 4.780106977982996 - ], - [ - 32.6641845703125, - 23.103915127840935 - ], - [ - 35.850941051136374, - 46.20788574218756 - ], - [ - 36.64761629971588, - 68.51512562144893 - ], - [ - 34.25753506747162, - 94.00912198153407 - ], - [ - 29.477428089488626, - 101.17931019176143 - ], - [ - 23.900590376420496, - 103.56933593750006 - ], - [ - 15.137051669034122, - 103.56933593750006 - ], - [ - 8.763538707386374, - 100.38257945667618 - ], - [ - 3.186756480823874, - 96.39914772727269 - ], - [ - 0, - 92.41571599786931 - ], - [ - -1.593405983664752, - 90.82236550071019 - ], - [ - -1.593405983664752, - 89.22895951704544 - ], - [ - -1.593405983664752, - 84.44885253906256 - ], - [ - -0.7966752485795041, - 82.05882679332393 - ], - [ - 0, - 81.26209605823868 - ], - [ - 0.7966752485796178, - 82.05882679332393 - ], - [ - 0.7966752485796178, - 82.05882679332393 - ] - ], - "pressures": [ - 0.01953125, - 0.125, - 0.1875, - 0.2734375, - 0.4169921875, - 0.57421875, - 0.677734375, - 0.7890625, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.349609375, - 0.26171875, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485796178, - 82.05882679332393 - ] - }, - { - "id": "8zOTYFt-JaQ2yq_4UZ6Ot", - "type": "freedraw", - "x": 229.75793774097002, - "y": -77.01332013018725, - "width": 159.33743563565343, - "height": 75.68531383167618, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1962759981, - "version": 543, - "versionNonce": 223490541, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 0.7966752485795041 - ], - [ - -7.9669189453125, - 1.5933504971590082 - ], - [ - -9.560269442471565, - 3.983431729403378 - ], - [ - -10.356944691051126, - 5.5767822265625 - ], - [ - -10.356944691051126, - 6.373512961647748 - ], - [ - -9.560269442471565, - 6.373512961647748 - ], - [ - -0.7967307350851911, - 7.966863458806756 - ], - [ - 9.560213955965935, - 9.560213955965878 - ], - [ - 23.103915127840935, - 11.950295188210248 - ], - [ - 37.44429154829544, - 11.950295188210248 - ], - [ - 54.17469371448868, - 10.356944691051126 - ], - [ - 78.87201482599431, - 1.5933504971590082 - ], - [ - 91.61904074928981, - -4.780162464488626 - ], - [ - 104.36601118607956, - -13.54364568536937 - ], - [ - 121.09641335227269, - -27.884077592329618 - ], - [ - 143.40365323153407, - -50.191317471590935 - ], - [ - 148.9804909446023, - -58.15818093039775 - ], - [ - 148.9804909446023, - -61.344881924715935 - ], - [ - 144.99711470170456, - -62.938343394886374 - ], - [ - 143.40365323153407, - -63.735018643465935 - ], - [ - 143.40365323153407, - -63.735018643465935 - ] - ], - "pressures": [ - 0.0595703125, - 0.0859375, - 0.1884765625, - 0.2626953125, - 0.37890625, - 0.4912109375, - 0.712890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.697265625, - 0.1826171875, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 143.40365323153407, - -63.735018643465935 - ] - }, - { - "id": "ckz9o0Ln_-zUD_DjpDfXU", - "type": "freedraw", - "x": 311.8167090477882, - "y": -82.59010235674975, - "width": 35.850941051136374, - "height": 34.25753506747162, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2122988035, - "version": 539, - "versionNonce": 1301540707, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -3.186811967329618 - ], - [ - 3.186756480823874, - -3.9834317294034918 - ], - [ - 6.373512961647748, - -4.780162464488626 - ], - [ - 11.950295188210248, - -5.576837713068244 - ], - [ - 14.340376420454504, - -4.780162464488626 - ], - [ - 15.933726917613626, - -3.186811967329618 - ], - [ - 16.730457652698874, - -1.593405983664752 - ], - [ - 16.730457652698874, - 0.796619762073874 - ], - [ - 15.137051669034122, - 7.170132723721508 - ], - [ - 11.950295188210248, - 11.950295188210248 - ], - [ - 6.373512961647748, - 15.933726917613626 - ], - [ - 0, - 19.917158647017004 - ], - [ - -6.373512961647748, - 23.900590376420382 - ], - [ - -15.137051669034122, - 27.087291370738626 - ], - [ - -18.323808149857996, - 28.680697354403378 - ], - [ - -19.1204833984375, - 28.680697354403378 - ], - [ - -18.323808149857996, - 28.680697354403378 - ], - [ - -16.730457652698874, - 27.087291370738626 - ], - [ - -16.730457652698874, - 27.087291370738626 - ] - ], - "pressures": [ - 0.123046875, - 0.8173828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.228515625, - 0.1162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -16.730457652698874, - 27.087291370738626 - ] - }, - { - "id": "7Oh8Vwxtmx36ddhs7z_cB", - "type": "freedraw", - "x": 319.7835725065951, - "y": -86.57353408615324, - "width": 42.22445401278412, - "height": 36.64756081321025, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1923486413, - "version": 543, - "versionNonce": 2037345357, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -5.57689319957376 - ], - [ - -0.7966752485796178, - -6.373568448153378 - ], - [ - 0.7966752485795041, - -7.170243696732882 - ], - [ - 3.1867564808237603, - -7.966863458806756 - ], - [ - 7.170188210227252, - -7.966863458806756 - ], - [ - 10.356944691051126, - -7.966863458806756 - ], - [ - 15.137051669034008, - -5.57689319957376 - ], - [ - 17.52718838778401, - -3.186811967329504 - ], - [ - 18.323863636363626, - -0.7967307350851343 - ], - [ - 19.12053888494313, - 1.5932950106534918 - ], - [ - 18.323863636363626, - 5.57672674005687 - ], - [ - 11.950295188210134, - 13.54364568536937 - ], - [ - 6.373512961647634, - 19.12042791193187 - ], - [ - 0.7966752485795041, - 23.103859641335248 - ], - [ - -8.763538707386374, - 26.290616122159122 - ], - [ - -14.340376420454618, - 27.08729137073874 - ], - [ - -19.1204833984375, - 27.08729137073874 - ], - [ - -21.51056463068187, - 27.08729137073874 - ], - [ - -23.10391512784099, - 27.884022105823874 - ], - [ - -23.10391512784099, - 28.68069735440349 - ], - [ - -22.307239879261374, - 28.68069735440349 - ], - [ - -21.51056463068187, - 28.68069735440349 - ], - [ - -21.51056463068187, - 28.68069735440349 - ] - ], - "pressures": [ - 0.1259765625, - 0.6826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.40625, - 0.1533203125, - 0.0078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -21.51056463068187, - 28.68069735440349 - ] - }, - { - "id": "8GMGv2-mNj6PWX7BjmZdg", - "type": "freedraw", - "x": 317.8776912368199, - "y": -85.49854669212692, - "width": 41.427778764204504, - "height": 42.224343039772634, - "angle": 0.134023247636871, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 783533731, - "version": 556, - "versionNonce": 684067587, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -2.39013671875 - ], - [ - 1.5933504971590082, - -3.983431729403378 - ], - [ - 3.983431729403378, - -4.780162464488626 - ], - [ - 5.5767822265625, - -5.576893199573874 - ], - [ - 8.763538707386374, - -7.170243696732882 - ], - [ - 13.543645685369256, - -7.966863458806756 - ], - [ - 15.136996182528378, - -7.966863458806756 - ], - [ - 16.730457652698874, - -7.966863458806756 - ], - [ - 18.323808149857882, - -4.780162464488626 - ], - [ - 18.323808149857882, - -1.5934614701703822 - ], - [ - 16.730457652698874, - 2.390025745738626 - ], - [ - 12.746970436789752, - 7.170132723721622 - ], - [ - 7.966863458806756, - 11.950295188210248 - ], - [ - 2.390025745738626, - 17.527077414772748 - ], - [ - -5.576837713068244, - 25.493940873579618 - ], - [ - -11.153619939630744, - 29.477372602982996 - ], - [ - -15.93378240411937, - 32.66412908380687 - ], - [ - -19.120538884943244, - 33.460804332386374 - ], - [ - -22.307239879261374, - 34.25747958096588 - ], - [ - -23.103970614346622, - 34.25747958096588 - ], - [ - -23.103970614346622, - 32.66412908380687 - ], - [ - -23.103970614346622, - 32.66412908380687 - ] - ], - "pressures": [ - 0.1416015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1611328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.103970614346622, - 32.66412908380687 - ] - }, - { - "id": "8lHryCrwETnuk9cfIBqZN", - "type": "freedraw", - "x": 296.6796573787541, - "y": -59.486242715414505, - "width": 59.7515869140625, - "height": 15.933726917613626, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 424430115, - "version": 537, - "versionNonce": 917920429, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.39008123224437, - 0 - ], - [ - 0.7966752485796178, - 0 - ], - [ - -2.390081232244256, - 0 - ], - [ - -6.373512961647748, - 0.7967307350851343 - ], - [ - -15.137051669034008, - 0.7967307350851343 - ], - [ - -22.307239879261374, - 0.7967307350851343 - ], - [ - -29.477428089488626, - 0 - ], - [ - -36.64761629971588, - -1.593350497159122 - ], - [ - -44.61447975852269, - -3.186700994318244 - ], - [ - -48.597911487926126, - -3.9834317294034918 - ], - [ - -50.98799272017044, - -4.780106977982996 - ], - [ - -53.37807395241475, - -5.5767822265625 - ], - [ - -54.97142444957382, - -7.170132723721622 - ], - [ - -56.564830433238626, - -9.560213955965992 - ], - [ - -57.36150568181813, - -11.153564453125 - ], - [ - -57.36150568181813, - -12.746970436789866 - ], - [ - -57.36150568181813, - -14.340376420454618 - ], - [ - -57.36150568181813, - -15.136996182528492 - ], - [ - -56.564830433238626, - -15.136996182528492 - ], - [ - -56.564830433238626, - -15.136996182528492 - ] - ], - "pressures": [ - 0.0478515625, - 0.576171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.7587890625, - 0.3486328125, - 0.076171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -56.564830433238626, - -15.136996182528492 - ] - }, - { - "id": "ggKxLTmMPRsiTRMD1JtKD", - "type": "freedraw", - "x": 236.92812595119733, - "y": -70.6398071685395, - "width": 75.68525834517038, - "height": 18.323808149857996, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1488214381, - "version": 538, - "versionNonce": 2054402723, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390025745738626, - 3.18670099431813 - ], - [ - 7.966863458806813, - 7.966863458806756 - ], - [ - 11.15361993963063, - 10.356889204545382 - ], - [ - 15.933726917613626, - 11.950295188210134 - ], - [ - 20.71383389559651, - 13.543645685369256 - ], - [ - 27.087346857244256, - 14.34032093394876 - ], - [ - 37.44429154829538, - 16.73040216619313 - ], - [ - 44.61447975852275, - 16.73040216619313 - ], - [ - 49.39458673650563, - 16.73040216619313 - ], - [ - 53.37801846590901, - 15.933782404119256 - ], - [ - 57.3614501953125, - 15.136996182528378 - ], - [ - 63.73496315696025, - 13.543645685369256 - ], - [ - 67.71839488636363, - 11.950295188210134 - ], - [ - 70.10847611860788, - 10.356889204545382 - ], - [ - 71.701826615767, - 8.76353870738626 - ], - [ - 74.09190784801137, - 4.780106977982882 - ], - [ - 74.88858309659088, - 1.5933504971590082 - ], - [ - 75.68525834517038, - -0.7967307350852479 - ], - [ - 75.68525834517038, - -1.5934059836648657 - ], - [ - 75.68525834517038, - -0.7967307350852479 - ], - [ - 75.68525834517038, - -0.7967307350852479 - ] - ], - "pressures": [ - 0.0439453125, - 0.3828125, - 0.625, - 0.734375, - 0.859375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.8154296875, - 0.6220703125, - 0.380859375, - 0.1025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 75.68525834517038, - -0.7967307350852479 - ] - }, - { - "id": "KWtkcayf_z-gsTyBz8gGs", - "type": "freedraw", - "x": 301.4597643567371, - "y": -58.68951198032937, - "width": 61.34488192471588, - "height": 23.104026100852252, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 801830829, - "version": 536, - "versionNonce": 1573944589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0 - ], - [ - -1.593350497159122, - 0.7966752485796178 - ], - [ - -3.983431729403378, - 2.390025745738626 - ], - [ - -7.170188210227252, - 3.186700994318244 - ], - [ - -14.340376420454504, - 3.983487215909122 - ], - [ - -19.917158647017004, - 3.983487215909122 - ], - [ - -25.493996360085248, - 3.983487215909122 - ], - [ - -31.070778586647748, - 3.186700994318244 - ], - [ - -35.850941051136374, - 0.7966752485796178 - ], - [ - -42.22439852627838, - -3.186756480823874 - ], - [ - -47.004560990767004, - -6.373512961647634 - ], - [ - -50.98799272017044, - -10.356944691051126 - ], - [ - -54.17474920099431, - -15.137107155539752 - ], - [ - -57.3614501953125, - -19.12053888494313 - ], - [ - -58.15818093039775, - -19.12053888494313 - ], - [ - -58.95485617897725, - -19.12053888494313 - ], - [ - -59.75153142755681, - -19.12053888494313 - ], - [ - -60.548206676136374, - -19.12053888494313 - ], - [ - -60.548206676136374, - -19.12053888494313 - ] - ], - "pressures": [ - 0.037109375, - 0.2421875, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.41015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -60.548206676136374, - -19.12053888494313 - ] - }, - { - "id": "7zHt0YKE4bECUDQA6S_ej", - "type": "freedraw", - "x": 297.4763326273336, - "y": -80.99675185959063, - "width": null, - "height": 0.7966752485795041, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 44224941, - "version": 523, - "versionNonce": 909595501, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.080078125, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 0.7966752485795041 - ] - }, - { - "id": "kbRN1XY9umD5zWfp0fgYL", - "type": "freedraw", - "x": 298.2730078759132, - "y": -80.20007661101113, - "width": 0.0001, - "height": 0.0001, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1998315235, - "version": 517, - "versionNonce": 1781245411, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.0001, - 0.0001 - ] - ], - "pressures": [ - 0.150390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.0001, - 0.0001 - ] - }, - { - "id": "544WmG5FU_EaL1VcJRT2p", - "type": "freedraw", - "x": 298.2730078759132, - "y": -80.20007661101113, - "width": 7.170188210227252, - "height": 16.730457652698874, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 693769005, - "version": 535, - "versionNonce": 1546935757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -1.593405983664752 - ], - [ - -2.390025745738626, - -0.7967307350852479 - ], - [ - 0, - 3.186756480823874 - ], - [ - 2.39008123224437, - 6.373457475142004 - ], - [ - 3.983431729403378, - 7.170188210227252 - ], - [ - 4.780162464488626, - 7.966863458806756 - ], - [ - 4.780162464488626, - 5.57683771306813 - ], - [ - 4.780162464488626, - 1.593405983664752 - ], - [ - 2.39008123224437, - -4.780162464488626 - ], - [ - 1.593405983664752, - -7.96686345880687 - ], - [ - 0.7967307350852479, - -8.763594193892118 - ], - [ - 0.7967307350852479, - -7.96686345880687 - ], - [ - 1.593405983664752, - -4.780162464488626 - ], - [ - 2.39008123224437, - -1.593405983664752 - ], - [ - 2.39008123224437, - 2.390025745738626 - ], - [ - 2.39008123224437, - 5.57683771306813 - ], - [ - 1.593405983664752, - 6.373457475142004 - ], - [ - 0.7967307350852479, - 6.373457475142004 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.150390625, - 0.3974609375, - 0.8876953125, - 0.927734375, - 0.9365234375, - 0.9365234375, - 0.9150390625, - 0.8349609375, - 0.83203125, - 0.8408203125, - 0.8408203125, - 0.8349609375, - 0.8515625, - 0.853515625, - 0.857421875, - 0.853515625, - 0.85546875, - 0.849609375, - 0.2490234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7967307350852479, - 6.373457475142004 - ] - }, - { - "id": "eOspJNeSvP0bK0X6EuD8M", - "type": "freedraw", - "x": 224.94925295032857, - "y": 88.32666423652157, - "width": 38.240966796875, - "height": 161.72751686789775, - "angle": 0.134023247636871, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1329836365, - "version": 609, - "versionNonce": 1982001539, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -3.983431729403378 - ], - [ - -0.7966752485795041, - -7.170132723721565 - ], - [ - 1.593350497159122, - -7.966863458806813 - ], - [ - 7.170188210227252, - -7.170132723721565 - ], - [ - 13.543701171875, - -3.186700994318187 - ], - [ - 19.1204833984375, - 3.186756480823874 - ], - [ - 29.477428089488626, - 23.900645862926183 - ], - [ - 35.05426580255687, - 42.22445401278412 - ], - [ - 37.444291548295496, - 62.93834339488643 - ], - [ - 37.444291548295496, - 83.65217729048294 - ], - [ - 35.850941051136374, - 113.12966086647731 - ], - [ - 34.25753506747162, - 128.26671253551143 - ], - [ - 31.867509321732996, - 140.21700772372157 - ], - [ - 28.680752840909122, - 148.18387118252843 - ], - [ - 27.08734685724437, - 152.96403364701706 - ], - [ - 27.08734685724437, - 153.76065340909093 - ], - [ - 27.08734685724437, - 153.76065340909093 - ] - ], - "pressures": [ - 0.0341796875, - 0.1640625, - 0.205078125, - 0.2158203125, - 0.2333984375, - 0.240234375, - 0.2421875, - 0.251953125, - 0.2578125, - 0.263671875, - 0.2685546875, - 0.2734375, - 0.2744140625, - 0.2685546875, - 0.2587890625, - 0.2412109375, - 0.21875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.08734685724437, - 153.76065340909093 - ] - }, - { - "id": "UZfJePwLFwbowugKBAs3x", - "type": "freedraw", - "x": 228.96120700588483, - "y": -70.6398071685395, - "width": 144.9971701882102, - "height": 65.32842462713074, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1485228707, - "version": 519, - "versionNonce": 652287021, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558543, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - -5.5767822265625, - -0.7967307350852479 - ], - [ - -7.170188210227309, - -0.7967307350852479 - ], - [ - -3.186700994318187, - -0.7967307350852479 - ], - [ - 9.560269442471565, - -1.5934059836648657 - ], - [ - 21.510564630681813, - -4.78016246448874 - ], - [ - 34.25759055397725, - -7.96686345880687 - ], - [ - 50.19131747159088, - -10.35700017755687 - ], - [ - 67.71845037286926, - -12.747025923295496 - ], - [ - 90.82236550071025, - -19.917158647017118 - ], - [ - 101.97598544034088, - -26.290727095170496 - ], - [ - 113.92628062855113, - -35.05426580255687 - ], - [ - 124.28328080610788, - -43.817804509943244 - ], - [ - 134.64017001065338, - -56.56483043323868 - ], - [ - 137.82698197798288, - -62.93834339488643 - ], - [ - 137.82698197798288, - -65.32842462713074 - ], - [ - 136.2335205078125, - -65.32842462713074 - ], - [ - 136.2335205078125, - -65.32842462713074 - ] - ], - "pressures": [ - 0.00390625, - 0.0390625, - 0.06640625, - 0.1201171875, - 0.2138671875, - 0.30859375, - 0.400390625, - 0.5185546875, - 0.6318359375, - 0.666015625, - 0.677734375, - 0.6826171875, - 0.6806640625, - 0.59765625, - 0.3017578125, - 0.18359375, - 0.1376953125, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 136.2335205078125, - -65.32842462713074 - ] - }, - { - "id": "TtnXOieb5_HMTRrEE1OCV", - "type": "freedraw", - "x": 337.3107608943791, - "y": -102.5073164902725, - "width": 109.94284889914769, - "height": 35.850941051136374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 871635981, - "version": 520, - "versionNonce": 141543715, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983376242897748, - 0 - ], - [ - 3.186700994318244, - 1.593350497159122 - ], - [ - 0, - 3.983487215909122 - ], - [ - -5.576893199573874, - 7.170188210227252 - ], - [ - -12.747025923295382, - 11.950350674715878 - ], - [ - -21.5106201171875, - 18.323808149857996 - ], - [ - -41.427778764204504, - 28.680697354403378 - ], - [ - -55.76815518465901, - 33.460859818892004 - ], - [ - -67.71845037286926, - 35.850941051136374 - ], - [ - -78.87212579900563, - 35.054210316051126 - ], - [ - -92.41577148437494, - 30.27410333806813 - ], - [ - -97.99260919744313, - 28.680697354403378 - ], - [ - -101.179365678267, - 27.884077592329504 - ], - [ - -102.77271617542613, - 27.884077592329504 - ], - [ - -104.36612215909088, - 27.884077592329504 - ], - [ - -105.16279740767044, - 26.290671608664752 - ], - [ - -105.95947265624994, - 26.290671608664752 - ], - [ - -105.95947265624994, - 25.493996360085248 - ], - [ - -105.95947265624994, - 25.493996360085248 - ] - ], - "pressures": [ - 0.0087890625, - 0.146484375, - 0.2685546875, - 0.3564453125, - 0.453125, - 0.5078125, - 0.5458984375, - 0.64453125, - 0.740234375, - 0.7568359375, - 0.7265625, - 0.6552734375, - 0.61328125, - 0.53515625, - 0.3720703125, - 0.2470703125, - 0.1435546875, - 0.1240234375, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -105.95947265624994, - 25.493996360085248 - ] - }, - { - "id": "2kNagftQlp4es7GZZw82K", - "type": "freedraw", - "x": 224.9777752764814, - "y": -65.85970019055662, - "width": 141.01362748579544, - "height": 69.31180087002838, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 345381965, - "version": 516, - "versionNonce": 1311182477, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 12.747025923295439, - -1.593405983664752 - ], - [ - 26.290671608664752, - -3.186756480823874 - ], - [ - 42.224454012784065, - -6.373512961647748 - ], - [ - 60.54826216264206, - -10.356944691051126 - ], - [ - 89.22901500355118, - -17.527132901278378 - ], - [ - 104.36606667258519, - -23.103970614346622 - ], - [ - 117.90971235795456, - -31.070834073153378 - ], - [ - 129.86006303267044, - -39.83437278053975 - ], - [ - 140.21695223721593, - -52.581343217329504 - ], - [ - 141.01362748579544, - -58.15818093039769 - ], - [ - 139.42027698863632, - -62.141612659801126 - ], - [ - 135.43690074573868, - -66.1250443892045 - ], - [ - 129.86006303267044, - -68.51507013494313 - ], - [ - 125.87657581676132, - -69.31180087002838 - ], - [ - 125.87657581676132, - -69.31180087002838 - ] - ], - "pressures": [ - 0.087890625, - 0.3564453125, - 0.447265625, - 0.6337890625, - 0.90625, - 0.970703125, - 0.9833984375, - 0.9833984375, - 0.953125, - 0.6865234375, - 0.4501953125, - 0.294921875, - 0.1943359375, - 0.130859375, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 125.87657581676132, - -69.31180087002838 - ] - }, - { - "id": "LD2ypz7Fmu_jnTaawTtZa", - "type": "freedraw", - "x": 334.9206241756291, - "y": -107.28747895476113, - "width": 112.33287464488632, - "height": 35.054265802556756, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 983873773, - "version": 515, - "versionNonce": 1451273411, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5933504971590082, - 3.186756480823874 - ], - [ - -7.170188210227252, - 10.356944691051126 - ], - [ - -13.543645685369256, - 17.527132901278378 - ], - [ - -23.900590376420382, - 24.697376598011374 - ], - [ - -35.85088556463063, - 31.070834073153378 - ], - [ - -57.3614501953125, - 34.25759055397725 - ], - [ - -71.701826615767, - 35.054265802556756 - ], - [ - -84.44885253906244, - 35.054265802556756 - ], - [ - -94.00906649502838, - 34.25759055397725 - ], - [ - -101.17925470525563, - 32.66424005681813 - ], - [ - -108.34944291548294, - 27.884077592329504 - ], - [ - -110.73952414772725, - 26.290671608664752 - ], - [ - -112.33287464488632, - 26.290671608664752 - ], - [ - -112.33287464488632, - 26.290671608664752 - ] - ], - "pressures": [ - 0.0556640625, - 0.28515625, - 0.4404296875, - 0.5478515625, - 0.6337890625, - 0.6904296875, - 0.720703125, - 0.69921875, - 0.673828125, - 0.6474609375, - 0.58203125, - 0.3310546875, - 0.2216796875, - 0.1630859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -112.33287464488632, - 26.290671608664752 - ] - }, - { - "id": "LDTdQ6xqW-Vh9AeIBUt7w", - "type": "freedraw", - "x": 226.57118126014615, - "y": -76.21664488160775, - "width": 117.90971235795456, - "height": 58.15818093039775, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1172332067, - "version": 519, - "versionNonce": 1354740973, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823817, - 0.7966752485795041 - ], - [ - -3.983431729403378, - 0.7966752485795041 - ], - [ - -1.593405983664752, - 1.593405983664752 - ], - [ - 8.763538707386374, - 3.186756480823874 - ], - [ - 19.1204833984375, - 3.186756480823874 - ], - [ - 31.07077858664769, - 2.390025745738626 - ], - [ - 43.81780450994319, - -0.7966752485795041 - ], - [ - 55.768099698153435, - -6.373457475142004 - ], - [ - 74.88858309659093, - -15.933782404119256 - ], - [ - 86.04220303622157, - -23.103970614346622 - ], - [ - 94.80579723011368, - -29.477428089488626 - ], - [ - 101.97598544034093, - -35.054265802556756 - ], - [ - 109.94279341264206, - -40.631048029119256 - ], - [ - 113.12960537997157, - -45.41121049360794 - ], - [ - 113.92628062855118, - -50.19126198508519 - ], - [ - 113.92628062855118, - -54.174693714488626 - ], - [ - 112.33293013139206, - -54.971424449573874 - ], - [ - 112.33293013139206, - -54.971424449573874 - ] - ], - "pressures": [ - 0.009765625, - 0.1845703125, - 0.19921875, - 0.25390625, - 0.287109375, - 0.3642578125, - 0.482421875, - 0.625, - 0.7744140625, - 0.826171875, - 0.82421875, - 0.8203125, - 0.8203125, - 0.6494140625, - 0.5439453125, - 0.3828125, - 0.212890625, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 112.33293013139206, - -54.971424449573874 - ] - }, - { - "id": "TWDIvwTh0t4IEXyWUWb4f", - "type": "freedraw", - "x": 334.9206241756291, - "y": -102.5073164902725, - "width": 117.11303710937494, - "height": 42.22439852627838, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1642397837, - "version": 515, - "versionNonce": 1676942435, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0.7966752485795041 - ], - [ - -3.983431729403378, - 3.18670099431813 - ], - [ - -7.170188210227252, - 7.170188210227252 - ], - [ - -12.746970436789752, - 12.746970436789752 - ], - [ - -27.087346857244256, - 23.103915127840878 - ], - [ - -40.631048029119256, - 29.477428089488626 - ], - [ - -56.56477494673288, - 35.054210316051126 - ], - [ - -71.701826615767, - 39.037642045454504 - ], - [ - -93.21239124644882, - 41.427723277698874 - ], - [ - -103.56933593749994, - 42.22439852627838 - ], - [ - -110.73952414772725, - 40.631048029119256 - ], - [ - -114.72295587713063, - 39.037642045454504 - ], - [ - -117.11303710937494, - 38.240966796875 - ], - [ - -117.11303710937494, - 38.240966796875 - ] - ], - "pressures": [ - 0.0400390625, - 0.224609375, - 0.314453125, - 0.41796875, - 0.4716796875, - 0.4853515625, - 0.51171875, - 0.576171875, - 0.5869140625, - 0.525390625, - 0.4521484375, - 0.357421875, - 0.265625, - 0.1669921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -117.11303710937494, - 38.240966796875 - ] - }, - { - "id": "0ySl5uVBMy4r5AKGZPycH", - "type": "freedraw", - "x": 175.61286477420686, - "y": 192.14232981693002, - "width": 128.2666015625, - "height": 61.34493741122162, - "angle": 0.134023247636871, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1745492099, - "version": 599, - "versionNonce": 439652173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982996, - 3.9834317294034918 - ], - [ - 15.137051669034122, - 6.373457475142118 - ], - [ - 27.884022105823874, - 6.373457475142118 - ], - [ - 43.021073774857996, - 6.373457475142118 - ], - [ - 59.75153142755687, - 3.9834317294034918 - ], - [ - 85.24552778764212, - -3.186811967329504 - ], - [ - 98.78922895951712, - -9.560269442471508 - ], - [ - 109.14617365056824, - -16.730457652698874 - ], - [ - 117.90971235795462, - -23.900590376420382 - ], - [ - 125.07990056818187, - -32.66424005681813 - ], - [ - 128.2666015625, - -44.61453524502838 - ], - [ - 126.67325106534088, - -51.78466796874994 - ], - [ - 124.28322531960225, - -54.971479936079504 - ], - [ - 124.28322531960225, - -54.971479936079504 - ] - ], - "pressures": [ - 0.0302734375, - 0.212890625, - 0.259765625, - 0.3310546875, - 0.4619140625, - 0.6044921875, - 0.6220703125, - 0.591796875, - 0.5322265625, - 0.47265625, - 0.4052734375, - 0.2177734375, - 0.1318359375, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 124.28322531960225, - -54.971479936079504 - ] - }, - { - "id": "9LY9HEi6NpyXorDeG2K9g", - "type": "freedraw", - "x": 319.7835725065951, - "y": -90.55696581555662, - "width": 50.191261985085134, - "height": 43.021073774857996, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1025181667, - "version": 519, - "versionNonce": 1016633347, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0 - ], - [ - 2.390081232244256, - 0 - ], - [ - 3.983431729403378, - 0.796619762073874 - ], - [ - 7.966863458806756, - 2.390025745738626 - ], - [ - 10.356944691051126, - 4.780051491477252 - ], - [ - 11.950295188210134, - 7.96686345880687 - ], - [ - 11.950295188210134, - 11.950295188210248 - ], - [ - 11.950295188210134, - 15.933726917613626 - ], - [ - 5.57683771306813, - 23.103859641335248 - ], - [ - -1.593350497159122, - 28.680697354403378 - ], - [ - -9.560213955965992, - 33.460804332386374 - ], - [ - -18.323808149857996, - 37.44423606178975 - ], - [ - -28.680752840909122, - 40.630992542613626 - ], - [ - -32.6641845703125, - 41.427667791193244 - ], - [ - -35.05421031605124, - 41.427667791193244 - ], - [ - -36.64761629971599, - 40.630992542613626 - ], - [ - -37.444291548295496, - 40.630992542613626 - ], - [ - -38.240966796875, - 40.630992542613626 - ], - [ - -37.444291548295496, - 40.630992542613626 - ], - [ - -35.850941051136374, - 42.22434303977275 - ], - [ - -34.25753506747162, - 43.021073774857996 - ], - [ - -34.25753506747162, - 43.021073774857996 - ] - ], - "pressures": [ - 0.0546875, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6474609375, - 0.2353515625, - 0.08984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -34.25753506747162, - 43.021073774857996 - ] - }, - { - "id": "9JGKsD1W3aEN6lJis1tHs", - "type": "freedraw", - "x": 322.97032898741884, - "y": -83.386833091835, - "width": 58.15812544389212, - "height": 38.241077769886374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1325161123, - "version": 522, - "versionNonce": 1759452589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593405983664752 - ], - [ - 0.7966752485796178, - -1.593405983664752 - ], - [ - 2.39008123224437, - -1.593405983664752 - ], - [ - 4.780106977982996, - -1.593405983664752 - ], - [ - 9.560269442471622, - 0 - ], - [ - 13.54364568536937, - 0.7967307350852479 - ], - [ - 16.730457652698874, - 2.390025745738626 - ], - [ - 19.1204833984375, - 3.983431729403378 - ], - [ - 19.917158647017118, - 6.373512961647748 - ], - [ - 19.1204833984375, - 10.356944691051126 - ], - [ - 13.54364568536937, - 15.933726917613626 - ], - [ - 4.780106977982996, - 22.307239879261374 - ], - [ - -4.780106977982882, - 28.680808327414752 - ], - [ - -19.1204833984375, - 34.25753506747162 - ], - [ - -26.290671608664752, - 35.850941051136374 - ], - [ - -32.6641845703125, - 36.64767178622162 - ], - [ - -36.64761629971588, - 35.850941051136374 - ], - [ - -37.44429154829538, - 35.054210316051126 - ], - [ - -38.240966796875, - 34.25753506747162 - ], - [ - -38.240966796875, - 33.460859818892004 - ], - [ - -37.44429154829538, - 32.66424005681813 - ], - [ - -35.85094105113626, - 32.66424005681813 - ], - [ - -32.6641845703125, - 31.867509321732996 - ], - [ - -30.27410333806813, - 31.867509321732996 - ], - [ - -30.27410333806813, - 31.867509321732996 - ] - ], - "pressures": [ - 0.111328125, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.662109375, - 0.244140625, - 0.1357421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -30.27410333806813, - 31.867509321732996 - ] - }, - { - "id": "-6aUeAVpmiIo2UJ9ZVmjB", - "type": "freedraw", - "x": 327.75043596540183, - "y": -87.37026482123838, - "width": 48.597911487926126, - "height": 31.070778586647634, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 689245357, - "version": 515, - "versionNonce": 1852612515, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 14.340376420454504, - 0 - ], - [ - 14.340376420454504, - 1.5933504971590082 - ], - [ - 15.137051669034122, - 2.390025745738626 - ], - [ - 15.933726917613626, - 4.780162464488626 - ], - [ - 15.933726917613626, - 7.966863458806756 - ], - [ - 11.153675426136374, - 13.543645685369256 - ], - [ - 4.780162464488626, - 17.527132901278378 - ], - [ - -2.390025745738626, - 21.510564630681756 - ], - [ - -14.340376420454504, - 26.290671608664752 - ], - [ - -20.713833895596622, - 29.477428089488626 - ], - [ - -26.290671608664752, - 30.27410333806813 - ], - [ - -29.477428089488626, - 30.27410333806813 - ], - [ - -31.070778586647748, - 30.27410333806813 - ], - [ - -32.6641845703125, - 30.27410333806813 - ], - [ - -31.070778586647748, - 30.27410333806813 - ], - [ - -30.27410333806813, - 30.27410333806813 - ], - [ - -30.27410333806813, - 31.070778586647634 - ], - [ - -30.27410333806813, - 31.070778586647634 - ] - ], - "pressures": [ - 0.0625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.26953125, - 0.146484375, - 0.10546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -30.27410333806813, - 31.070778586647634 - ] - }, - { - "id": "pLRmsCQN9LEPCvKTAgLv5", - "type": "freedraw", - "x": 267.20222928926546, - "y": -83.386833091835, - "width": 39.83437278053975, - "height": 83.65217729048294, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2063755075, - "version": 517, - "versionNonce": 1134474051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - 2.390025745738626 - ], - [ - -4.780106977982882, - -1.593405983664752 - ], - [ - -7.170188210227252, - -14.340376420454504 - ], - [ - -7.966863458806756, - -26.290671608664752 - ], - [ - -7.170188210227252, - -40.63104802911931 - ], - [ - -4.780106977982882, - -53.37807395241475 - ], - [ - -1.593405983664752, - -60.54826216264206 - ], - [ - 3.186756480823874, - -62.93828790838069 - ], - [ - 15.137051669034122, - -58.15818093039775 - ], - [ - 22.307239879261374, - -46.2078857421875 - ], - [ - 26.290671608664752, - -29.477428089488626 - ], - [ - 25.493996360085248, - -0.7966752485795041 - ], - [ - 19.917158647017118, - 13.543701171875 - ], - [ - 13.543701171875, - 19.917158647017004 - ], - [ - 7.170188210227252, - 20.713889382102252 - ], - [ - 0.7966752485796178, - 16.730457652698874 - ], - [ - -3.983431729403378, - 7.170188210227252 - ], - [ - -10.356944691051126, - -10.356944691051126 - ], - [ - -12.747025923295382, - -22.307239879261374 - ], - [ - -13.543701171875, - -32.6641845703125 - ], - [ - -12.747025923295382, - -44.61447975852275 - ], - [ - -10.356944691051126, - -50.191317471590935 - ], - [ - -7.170188210227252, - -54.97136896306819 - ], - [ - -3.983431729403378, - -58.15818093039775 - ], - [ - -2.390081232244256, - -58.95480069247162 - ], - [ - -2.390081232244256, - -58.95480069247162 - ] - ], - "pressures": [ - 0.0078125, - 0.306640625, - 0.421875, - 0.72265625, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9599609375, - 0.9169921875, - 0.8701171875, - 0.8056640625, - 0.6953125, - 0.3955078125, - 0.2099609375, - 0.1591796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390081232244256, - -58.95480069247162 - ] - }, - { - "id": "cCZKhWHtzSmk-ud7icLwu", - "type": "freedraw", - "x": 307.0366020698052, - "y": -84.98023907549975, - "width": 27.087346857244256, - "height": 57.36150568181813, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 553608707, - "version": 514, - "versionNonce": 1363891821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 0 - ], - [ - -5.57683771306813, - -5.57672674005687 - ], - [ - -5.57683771306813, - -11.153619939630744 - ], - [ - -3.983431729403378, - -18.323808149857996 - ], - [ - -0.7966752485795041, - -26.290671608664752 - ], - [ - 3.9834317294034918, - -33.460804332386374 - ], - [ - 11.950295188210248, - -38.240966796875 - ], - [ - 15.933726917613626, - -38.240966796875 - ], - [ - 18.323808149857996, - -33.460804332386374 - ], - [ - 19.1204833984375, - -23.900590376420496 - ], - [ - 15.933726917613626, - -3.186700994318244 - ], - [ - 11.153619939630744, - 10.357000177556756 - ], - [ - 5.5767822265625, - 17.527132901278378 - ], - [ - 1.593350497159122, - 19.12053888494313 - ], - [ - -2.390081232244256, - 18.323863636363626 - ], - [ - -6.373512961647634, - 8.763594193892004 - ], - [ - -7.966863458806756, - -0.7966752485796178 - ], - [ - -7.966863458806756, - -11.950295188210248 - ], - [ - -6.373512961647634, - -26.290671608664752 - ], - [ - -3.983431729403378, - -31.867453835227252 - ], - [ - -2.390081232244256, - -35.05421031605118 - ], - [ - -0.7966752485795041, - -36.647616299715935 - ], - [ - 0.7966752485796178, - -37.44423606178981 - ], - [ - 1.593350497159122, - -36.647616299715935 - ], - [ - 1.593350497159122, - -36.647616299715935 - ] - ], - "pressures": [ - 0.064453125, - 0.1591796875, - 0.283203125, - 0.4521484375, - 0.6884765625, - 0.83203125, - 0.8876953125, - 0.904296875, - 0.923828125, - 0.951171875, - 0.98828125, - 0.9580078125, - 0.92578125, - 0.92578125, - 0.9365234375, - 0.931640625, - 0.90234375, - 0.8642578125, - 0.8173828125, - 0.783203125, - 0.7607421875, - 0.671875, - 0.4599609375, - 0.302734375, - 0.1025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159122, - -36.647616299715935 - ] - }, - { - "id": "K83YinRuroaJaNr4_OWeQ", - "type": "freedraw", - "x": 307.83327731838483, - "y": -94.54039754496, - "width": 27.884022105823874, - "height": 78.87207031249994, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1058801475, - "version": 516, - "versionNonce": 1015894755, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39008123224437, - -4.78021795099437 - ], - [ - -2.39008123224437, - -11.950350674715878 - ], - [ - -2.39008123224437, - -23.104026100852252 - ], - [ - 0.7966752485795041, - -36.64767178622162 - ], - [ - 7.170188210227252, - -53.37812943892044 - ], - [ - 10.356944691051126, - -58.158236416903435 - ], - [ - 12.746970436789752, - -58.95491166548294 - ], - [ - 15.137051669034008, - -54.1748046875 - ], - [ - 17.527132901278378, - -45.411265980113626 - ], - [ - 19.917158647017004, - -22.307295365767004 - ], - [ - 19.1204833984375, - -5.576893199573874 - ], - [ - 15.933726917613626, - 7.966863458806756 - ], - [ - 11.950295188210248, - 15.933726917613626 - ], - [ - 5.5767822265625, - 19.917158647017004 - ], - [ - 0.7966752485795041, - 19.120427911931756 - ], - [ - -3.9834317294034918, - 15.136996182528378 - ], - [ - -7.170188210227252, - 7.966863458806756 - ], - [ - -7.96686345880687, - -0.7967307350852479 - ], - [ - -7.170188210227252, - -15.93378240411937 - ], - [ - -5.576837713068244, - -26.29072709517044 - ], - [ - -3.186756480823874, - -33.46091530539775 - ], - [ - -1.593350497159122, - -38.241077769886374 - ], - [ - 0, - -39.037753018465935 - ], - [ - 0.7966752485795041, - -38.241077769886374 - ], - [ - 1.5933504971590082, - -36.64767178622162 - ], - [ - 1.5933504971590082, - -35.850941051136374 - ], - [ - 1.5933504971590082, - -35.850941051136374 - ] - ], - "pressures": [ - 0.0908203125, - 0.3212890625, - 0.49609375, - 0.736328125, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 0.953125, - 0.884765625, - 0.8369140625, - 0.8388671875, - 0.830078125, - 0.798828125, - 0.6826171875, - 0.3017578125, - 0.1982421875, - 0.1220703125, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.5933504971590082, - -35.850941051136374 - ] - }, - { - "id": "S1W_cGc32NM5MMp1_4fSQ", - "type": "freedraw", - "x": 265.6088233056007, - "y": -80.99680734609638, - "width": 35.850941051136374, - "height": 73.29517711292618, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 193270435, - "version": 516, - "versionNonce": 466616525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -1.593295010653378 - ], - [ - -6.373457475142004, - -3.983431729403378 - ], - [ - -7.96686345880687, - -8.763538707386374 - ], - [ - -8.763538707386374, - -15.137051669034122 - ], - [ - -8.763538707386374, - -24.697265625 - ], - [ - -4.780106977982996, - -43.02107377485794 - ], - [ - -0.7966752485795041, - -51.78466796875 - ], - [ - 3.186756480823874, - -56.56477494673294 - ], - [ - 8.763594193892004, - -57.36139470880681 - ], - [ - 18.323808149857996, - -50.98793723366475 - ], - [ - 21.51056463068187, - -40.63104802911931 - ], - [ - 23.103970614346622, - -27.08734685724437 - ], - [ - 22.307295365767004, - -11.950295188210248 - ], - [ - 18.323808149857996, - 2.39013671875 - ], - [ - 8.763594193892004, - 14.340431906960248 - ], - [ - 3.983487215909122, - 15.93378240411937 - ], - [ - -1.593350497159122, - 12.747025923295496 - ], - [ - -6.373457475142004, - 4.780162464488626 - ], - [ - -11.15361993963063, - -10.356889204545496 - ], - [ - -12.746970436789752, - -17.527021928267004 - ], - [ - -12.746970436789752, - -25.493940873579504 - ], - [ - -12.746970436789752, - -33.460804332386374 - ], - [ - -9.560213955965878, - -39.834317294034065 - ], - [ - -5.5767822265625, - -48.597911487926126 - ], - [ - -2.390025745738626, - -51.78466796875 - ], - [ - -1.593350497159122, - -53.37796297940338 - ], - [ - -1.593350497159122, - -53.37796297940338 - ] - ], - "pressures": [ - 0.123046875, - 0.2822265625, - 0.384765625, - 0.4892578125, - 0.5849609375, - 0.6474609375, - 0.8662109375, - 0.90234375, - 0.9189453125, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.583984375, - 0.2978515625, - 0.2236328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159122, - -53.37796297940338 - ] - }, - { - "id": "nlj-ksmQjUj5mHSzxda6A", - "type": "freedraw", - "x": 310.2233585506291, - "y": -85.77691432407937, - "width": 29.477428089488626, - "height": 58.954800692471565, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1577275981, - "version": 511, - "versionNonce": 1237778051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244256, - -4.780051491477252 - ], - [ - -2.390081232244256, - -10.356944691051126 - ], - [ - -2.390081232244256, - -18.323808149857882 - ], - [ - -2.390081232244256, - -26.290671608664752 - ], - [ - 2.390025745738626, - -36.64756081321019 - ], - [ - 7.170188210227252, - -39.83437278053975 - ], - [ - 10.356889204545496, - -40.63099254261357 - ], - [ - 14.340376420454618, - -39.03769753196019 - ], - [ - 16.730402166193244, - -32.664129083806756 - ], - [ - 19.1204833984375, - -15.933726917613626 - ], - [ - 16.730402166193244, - -1.5933504971590082 - ], - [ - 10.356889204545496, - 9.560269442471622 - ], - [ - 2.390025745738626, - 15.93378240411937 - ], - [ - -7.170188210227252, - 18.323808149857996 - ], - [ - -10.356944691051126, - 14.340376420454618 - ], - [ - -10.356944691051126, - 6.373512961647748 - ], - [ - -10.356944691051126, - -3.983431729403378 - ], - [ - -7.9669189453125, - -14.340376420454504 - ], - [ - -5.57683771306813, - -28.680697354403378 - ], - [ - -3.186756480823874, - -34.257535067471565 - ], - [ - -1.593405983664752, - -37.44429154829538 - ], - [ - 0, - -38.24096679687494 - ], - [ - 0.7966752485796178, - -38.24096679687494 - ], - [ - 0.7966752485796178, - -38.24096679687494 - ] - ], - "pressures": [ - 0.083984375, - 0.177734375, - 0.2587890625, - 0.36328125, - 0.458984375, - 0.564453125, - 0.5849609375, - 0.5947265625, - 0.6220703125, - 0.6865234375, - 0.79296875, - 0.8134765625, - 0.8115234375, - 0.8115234375, - 0.8369140625, - 0.83203125, - 0.80078125, - 0.7783203125, - 0.7666015625, - 0.748046875, - 0.708984375, - 0.5458984375, - 0.361328125, - 0.265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485796178, - -38.24096679687494 - ] - }, - { - "id": "sOI6T6ZulsNQOvvRM2hnA", - "type": "freedraw", - "x": 310.2233585506291, - "y": -88.96367080490324, - "width": 27.08740234375, - "height": 66.92177512428981, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 562582381, - "version": 513, - "versionNonce": 1494245165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -3.1867564808237603 - ], - [ - -2.390081232244256, - -7.966863458806756 - ], - [ - -1.593405983664752, - -19.1204833984375 - ], - [ - 0.7966752485796178, - -29.477372602982882 - ], - [ - 3.9834317294034918, - -39.037642045454504 - ], - [ - 7.170188210227252, - -44.61447975852269 - ], - [ - 10.356889204545496, - -46.207830255681756 - ], - [ - 15.137051669034122, - -44.61447975852269 - ], - [ - 17.527077414772748, - -39.834372780539695 - ], - [ - 19.1204833984375, - -29.477372602982882 - ], - [ - 19.1204833984375, - -15.933726917613626 - ], - [ - 15.137051669034122, - 6.373568448153492 - ], - [ - 11.153619939630744, - 15.137051669034122 - ], - [ - 6.373457475142118, - 18.32386363636374 - ], - [ - 1.593350497159122, - 16.730457652698874 - ], - [ - -2.390081232244256, - 10.35700017755687 - ], - [ - -7.170188210227252, - -1.593295010653378 - ], - [ - -7.9669189453125, - -8.76353870738626 - ], - [ - -7.9669189453125, - -15.137051669034008 - ], - [ - -6.373512961647748, - -22.30723987926126 - ], - [ - -3.983431729403378, - -30.27410333806813 - ], - [ - 0, - -41.42766779119313 - ], - [ - 0.7966752485796178, - -47.004560990767004 - ], - [ - 1.593350497159122, - -48.59791148792607 - ], - [ - 1.593350497159122, - -47.004560990767004 - ], - [ - 1.593350497159122, - -47.004560990767004 - ] - ], - "pressures": [ - 0.0966796875, - 0.2578125, - 0.388671875, - 0.67578125, - 0.8056640625, - 0.927734375, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6474609375, - 0.3984375, - 0.2236328125, - 0.103515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159122, - -47.004560990767004 - ] - }, - { - "id": "Il4dHjquPCM9CMt4VAh0h", - "type": "freedraw", - "x": 269.59231052150983, - "y": -77.8100508652725, - "width": 9.560213955965878, - "height": 32.6641845703125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1030086829, - "version": 516, - "versionNonce": 1175074339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - -3.983431729403378 - ], - [ - -3.983487215909122, - -6.373457475142004 - ], - [ - -4.780162464488626, - -10.356889204545496 - ], - [ - -5.576837713068244, - -15.137051669034122 - ], - [ - -5.576837713068244, - -17.527077414772748 - ], - [ - -5.576837713068244, - -20.713778409090878 - ], - [ - -5.576837713068244, - -23.900590376420496 - ], - [ - -4.780162464488626, - -25.493996360085248 - ], - [ - -4.780162464488626, - -26.290671608664752 - ], - [ - -2.39008123224437, - -26.290671608664752 - ], - [ - 0, - -23.103915127840878 - ], - [ - 1.5933504971590082, - -18.323808149857996 - ], - [ - 3.18670099431813, - -7.96686345880687 - ], - [ - 3.18670099431813, - -0.796619762073874 - ], - [ - 2.390025745738626, - 3.983431729403378 - ], - [ - 1.5933504971590082, - 5.57683771306813 - ], - [ - 0.7966752485795041, - 6.373512961647748 - ], - [ - -0.7967307350852479, - 6.373512961647748 - ], - [ - -2.39008123224437, - 4.780162464488626 - ], - [ - -3.983487215909122, - 3.186811967329504 - ], - [ - -4.780162464488626, - 0 - ], - [ - -6.373512961647748, - -4.780051491477252 - ], - [ - -6.373512961647748, - -6.373457475142004 - ], - [ - -6.373512961647748, - -7.170188210227252 - ], - [ - -6.373512961647748, - -8.763483220880744 - ], - [ - -6.373512961647748, - -9.560213955965878 - ], - [ - -6.373512961647748, - -10.356889204545496 - ], - [ - -6.373512961647748, - -11.153619939630744 - ], - [ - -6.373512961647748, - -9.560213955965878 - ], - [ - -6.373512961647748, - -9.560213955965878 - ] - ], - "pressures": [ - 0.03515625, - 0.1953125, - 0.259765625, - 0.341796875, - 0.4482421875, - 0.5126953125, - 0.576171875, - 0.6474609375, - 0.6806640625, - 0.6865234375, - 0.73046875, - 0.7666015625, - 0.826171875, - 0.9345703125, - 0.9560546875, - 0.9599609375, - 0.9599609375, - 0.966796875, - 0.96484375, - 0.9755859375, - 0.9599609375, - 0.947265625, - 0.9150390625, - 0.8935546875, - 0.8876953125, - 0.7705078125, - 0.59375, - 0.4599609375, - 0.2705078125, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.373512961647748, - -9.560213955965878 - ] - }, - { - "id": "MpO84yTZ4hiaomdZWsZ3N", - "type": "freedraw", - "x": 263.2187975598621, - "y": -93.74377778288613, - "width": 17.527132901278378, - "height": 24.69732111150563, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1691699981, - "version": 504, - "versionNonce": 527823245, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - 4.780106977982882 - ], - [ - -3.186756480823874, - 7.966863458806756 - ], - [ - -3.186756480823874, - 11.950295188210248 - ], - [ - -1.593405983664752, - 18.323808149857882 - ], - [ - 0, - 23.900645862926126 - ], - [ - 0.7966752485795041, - 24.69732111150563 - ], - [ - 1.593350497159122, - 24.69732111150563 - ], - [ - 3.983431729403378, - 24.69732111150563 - ], - [ - 6.373512961647748, - 23.103970614346622 - ], - [ - 10.356944691051126, - 19.12053888494313 - ], - [ - 12.746970436789752, - 16.730457652698874 - ], - [ - 13.543645685369256, - 15.137107155539752 - ], - [ - 13.543645685369256, - 14.340376420454504 - ], - [ - 14.340376420454504, - 13.543701171875 - ], - [ - 14.340376420454504, - 12.746970436789752 - ], - [ - 14.340376420454504, - 11.950295188210248 - ], - [ - 14.340376420454504, - 11.153675426136374 - ], - [ - 14.340376420454504, - 11.153675426136374 - ] - ], - "pressures": [ - 0.0908203125, - 0.3115234375, - 0.3564453125, - 0.408203125, - 0.4931640625, - 0.59765625, - 0.6318359375, - 0.642578125, - 0.6533203125, - 0.662109375, - 0.6806640625, - 0.6845703125, - 0.6826171875, - 0.677734375, - 0.580078125, - 0.4560546875, - 0.40625, - 0.27734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340376420454504, - 11.153675426136374 - ] - }, - { - "id": "pmrBjfw_dLU2z3fZePqDb", - "type": "freedraw", - "x": 266.40555404068596, - "y": -91.35369655064187, - "width": 17.527132901278378, - "height": 24.697321111505744, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1201460301, - "version": 504, - "versionNonce": 809859523, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - 4.780162464488626 - ], - [ - -1.593405983664752, - 11.950295188210248 - ], - [ - -0.7967307350852479, - 16.730457652698874 - ], - [ - 0.7966752485795041, - 20.713889382102366 - ], - [ - 2.390025745738626, - 22.307239879261374 - ], - [ - 7.170188210227252, - 23.10391512784099 - ], - [ - 9.560213955965878, - 23.10391512784099 - ], - [ - 11.950295188210248, - 19.917158647017118 - ], - [ - 14.340376420454504, - 15.933726917613626 - ], - [ - 15.933726917613626, - 11.950295188210248 - ], - [ - 15.933726917613626, - 7.170188210227366 - ], - [ - 15.933726917613626, - 4.780162464488626 - ], - [ - 15.933726917613626, - 3.186756480823874 - ], - [ - 14.340376420454504, - 0.7967307350852479 - ], - [ - 13.543645685369256, - -0.7967307350851343 - ], - [ - 11.15361993963063, - -1.593405983664752 - ], - [ - 10.356889204545382, - -1.593405983664752 - ], - [ - 10.356889204545382, - -1.593405983664752 - ] - ], - "pressures": [ - 0.0439453125, - 0.365234375, - 0.5283203125, - 0.66015625, - 0.7587890625, - 0.791015625, - 0.8154296875, - 0.830078125, - 0.826171875, - 0.822265625, - 0.82421875, - 0.826171875, - 0.80078125, - 0.74609375, - 0.6513671875, - 0.4208984375, - 0.2255859375, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356889204545382, - -1.593405983664752 - ] - }, - { - "id": "v7-_mi0k6YUuXOUt4D0KP", - "type": "freedraw", - "x": 282.3392809582996, - "y": -93.74377778288613, - "width": 31.070778586647748, - "height": 39.037642045454504, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 237776269, - "version": 508, - "versionNonce": 2084190189, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0.7966752485795041 - ], - [ - 1.593350497159122, - 3.983431729403378 - ], - [ - 1.593350497159122, - 9.560269442471622 - ], - [ - 0.7966752485795041, - 13.543701171875 - ], - [ - -1.593350497159122, - 16.730457652698874 - ], - [ - -4.780106977982996, - 18.323808149857882 - ], - [ - -10.356944691051126, - 18.323808149857882 - ], - [ - -14.340376420454504, - 17.527132901278378 - ], - [ - -18.323808149857996, - 15.137107155539752 - ], - [ - -22.307239879261374, - 11.153675426136374 - ], - [ - -25.493996360085248, - 7.170243696732882 - ], - [ - -28.680752840909122, - 0 - ], - [ - -29.477428089488626, - -3.186756480823874 - ], - [ - -29.477428089488626, - -7.170188210227252 - ], - [ - -29.477428089488626, - -12.746970436789752 - ], - [ - -29.477428089488626, - -19.917158647017118 - ], - [ - -28.680752840909122, - -20.713833895596622 - ], - [ - -27.884077592329504, - -20.713833895596622 - ], - [ - -27.08734685724437, - -19.917158647017118 - ], - [ - -26.290671608664752, - -18.323808149857996 - ], - [ - -25.493996360085248, - -17.527132901278378 - ], - [ - -25.493996360085248, - -17.527132901278378 - ] - ], - "pressures": [ - 0.044921875, - 0.474609375, - 0.64453125, - 0.931640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8984375, - 0.6845703125, - 0.44921875, - 0.2919921875, - 0.18359375, - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -25.493996360085248, - -17.527132901278378 - ] - }, - { - "id": "8_lZ65ULF2jY-ymiYdE8w", - "type": "freedraw", - "x": 256.84528459821433, - "y": -106.49074821967588, - "width": 27.884022105823874, - "height": 39.037642045454504, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1193265037, - "version": 508, - "versionNonce": 630671715, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 3.983431729403378 - ], - [ - -1.593350497159122, - 7.9669189453125 - ], - [ - -1.593350497159122, - 15.137051669034008 - ], - [ - -0.7966752485795041, - 22.307239879261374 - ], - [ - 0.7966752485795041, - 29.477428089488626 - ], - [ - 3.186756480823874, - 35.054210316051126 - ], - [ - 5.576837713068244, - 38.240966796875 - ], - [ - 7.170188210227252, - 39.037642045454504 - ], - [ - 10.356944691051126, - 39.037642045454504 - ], - [ - 14.340376420454504, - 35.850941051136374 - ], - [ - 19.1204833984375, - 31.070778586647634 - ], - [ - 23.103915127840878, - 23.900645862926126 - ], - [ - 24.697321111505744, - 20.71383389559651 - ], - [ - 25.493996360085248, - 18.323808149857882 - ], - [ - 26.290671608664752, - 17.527077414772634 - ], - [ - 26.290671608664752, - 16.73040216619313 - ], - [ - 26.290671608664752, - 15.137051669034008 - ], - [ - 25.493996360085248, - 12.746970436789752 - ], - [ - 24.697321111505744, - 11.15361993963063 - ], - [ - 23.900645862926126, - 10.356889204545382 - ], - [ - 23.103915127840878, - 10.356889204545382 - ], - [ - 23.103915127840878, - 10.356889204545382 - ] - ], - "pressures": [ - 0.0986328125, - 0.3388671875, - 0.439453125, - 0.7783203125, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.6552734375, - 0.306640625, - 0.2265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103915127840878, - 10.356889204545382 - ] - }, - { - "id": "A42cprwF2Oe8jPfMzLD7k", - "type": "freedraw", - "x": 256.04860934963483, - "y": -195.71976322322706, - "width": 71.70188210227269, - "height": 70.9051513671875, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1514816835, - "version": 513, - "versionNonce": 1491635363, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - 3.983431729403435 - ], - [ - 6.373512961647748, - 3.983431729403435 - ], - [ - 11.950295188210248, - -1.593350497159065 - ], - [ - 15.137051669034008, - -8.763538707386374 - ], - [ - 15.933726917613626, - -15.933726917613626 - ], - [ - 15.137051669034008, - -23.103915127840878 - ], - [ - 11.950295188210248, - -28.680752840909065 - ], - [ - 7.170188210227252, - -28.680752840909065 - ], - [ - 2.390025745738626, - -24.697321111505687 - ], - [ - -1.593405983664752, - -20.713889382102252 - ], - [ - -3.983431729403435, - -16.730402166193187 - ], - [ - -5.576837713068187, - -15.137051669034065 - ], - [ - -5.576837713068187, - -20.713889382102252 - ], - [ - -3.186756480823874, - -30.274103338068187 - ], - [ - 0, - -43.02110151811081 - ], - [ - 4.780106977982882, - -54.17472145774144 - ], - [ - 10.356944691051126, - -61.34490966796875 - ], - [ - 20.71383389559651, - -66.92171963778407 - ], - [ - 27.884022105823874, - -66.92171963778407 - ], - [ - 36.64761629971588, - -65.32834139737213 - ], - [ - 47.004560990767004, - -59.75153142755681 - ], - [ - 61.34493741122151, - -43.81780450994319 - ], - [ - 65.328369140625, - -31.86750932173294 - ], - [ - 66.1250443892045, - -20.713889382102252 - ], - [ - 62.141612659801126, - -11.153619939630687 - ], - [ - 54.971424449573874, - -3.186756480823874 - ], - [ - 43.021129261363626, - 3.983431729403435 - ], - [ - 35.850941051136374, - 3.983431729403435 - ], - [ - 30.27410333806813, - 1.593405983664809 - ], - [ - 27.884022105823874, - -1.593350497159065 - ], - [ - 27.884022105823874, - -3.983431729403378 - ], - [ - 27.884022105823874, - -3.983431729403378 - ] - ], - "pressures": [ - 0.0263671875, - 0.232421875, - 0.2763671875, - 0.39453125, - 0.5849609375, - 0.82421875, - 0.908203125, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.857421875, - 0.4716796875, - 0.240234375, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884022105823874, - -3.983431729403378 - ] - }, - { - "id": "N256Jefu95TxK2h0ljXb1", - "type": "freedraw", - "x": 263.2187975598621, - "y": -189.3462502615793, - "width": 113.12960537997162, - "height": 98.78928444602275, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2099183331, - "version": 521, - "versionNonce": 1898857229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39008123224437, - -3.186756480823874 - ], - [ - -7.170188210227252, - -6.373512961647748 - ], - [ - -12.747025923295439, - -11.950295188210248 - ], - [ - -18.32380814985794, - -17.527132901278435 - ], - [ - -27.08740234375, - -23.900645862926126 - ], - [ - -32.6641845703125, - -26.29067160866481 - ], - [ - -38.24102228338069, - -27.88407759232956 - ], - [ - -42.22445401278412, - -27.88407759232956 - ], - [ - -42.22445401278412, - -27.08740234375 - ], - [ - -42.22445401278412, - -22.307239879261374 - ], - [ - -43.021129261363626, - -13.543701171875 - ], - [ - -47.00456099076706, - -3.186756480823874 - ], - [ - -51.78466796875, - 5.5767822265625 - ], - [ - -59.7515869140625, - 10.356944691051126 - ], - [ - -64.53163840553975, - 10.356944691051126 - ], - [ - -68.51507013494319, - 9.560213955965878 - ], - [ - -73.29523259943181, - 0.796675248579561 - ], - [ - -74.09190784801137, - -10.356944691051126 - ], - [ - -74.09190784801137, - -22.307239879261374 - ], - [ - -74.09190784801137, - -32.6641845703125 - ], - [ - -74.09190784801137, - -37.44429154829544 - ], - [ - -74.88863858309662, - -39.03769753196025 - ], - [ - -78.8720703125, - -39.83437278053981 - ], - [ - -82.05882679332387, - -39.83437278053981 - ], - [ - -86.83893377130681, - -37.44429154829544 - ], - [ - -95.60247247869319, - -26.29067160866481 - ], - [ - -101.97598544034093, - -13.543701171875 - ], - [ - -107.55282315340912, - 0 - ], - [ - -111.5362548828125, - 14.340376420454561 - ], - [ - -113.12960537997162, - 27.08740234375 - ], - [ - -113.12960537997162, - 37.44429154829544 - ], - [ - -109.94284889914775, - 50.19131747159088 - ], - [ - -105.95941716974431, - 54.97147993607956 - ], - [ - -98.78922895951706, - 57.36150568181819 - ], - [ - -83.65217729048294, - 58.95491166548294 - ], - [ - -72.49850186434662, - 56.56477494673294 - ], - [ - -63.735018643465935, - 52.58134321732956 - ], - [ - -58.95485617897725, - 50.19131747159088 - ], - [ - -55.768099698153435, - 48.597911487926126 - ], - [ - -54.17474920099431, - 48.597911487926126 - ], - [ - -54.17474920099431, - 48.597911487926126 - ] - ], - "pressures": [ - 0.072265625, - 0.53125, - 0.8447265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96875, - 0.953125, - 0.8955078125, - 0.703125, - 0.326171875, - 0.2373046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -54.17474920099431, - 48.597911487926126 - ] - }, - { - "id": "SYOUwJyVdDZ701m6KfT0b", - "type": "freedraw", - "x": 287.1193879362826, - "y": -181.3793868027725, - "width": 132.25008877840912, - "height": 95.60247247869319, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 373422765, - "version": 519, - "versionNonce": 840237123, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - -3.983431729403435 - ], - [ - -3.9834317294034918, - -4.780106977982939 - ], - [ - -2.3900257457387397, - -8.763538707386374 - ], - [ - 1.593405983664752, - -13.543701171875 - ], - [ - 7.170188210227252, - -18.32380814985794 - ], - [ - 13.543701171875, - -21.510564630681813 - ], - [ - 19.917214133522634, - -23.103915127840935 - ], - [ - 25.493996360085134, - -22.307239879261374 - ], - [ - 31.070834073153378, - -16.730457652698874 - ], - [ - 33.460859818892004, - -11.153619939630687 - ], - [ - 34.25759055397725, - -3.983431729403435 - ], - [ - 36.64761629971588, - 4.780106977982939 - ], - [ - 39.83437278053975, - 7.966863458806813 - ], - [ - 43.81780450994313, - 9.560269442471565 - ], - [ - 47.80123623934651, - 8.763538707386374 - ], - [ - 52.581398703835134, - 4.780106977982939 - ], - [ - 58.95491166548288, - -3.983431729403435 - ], - [ - 62.93828790838063, - -11.950295188210248 - ], - [ - 63.734963156960134, - -20.713889382102252 - ], - [ - 61.34493741122151, - -28.680752840909122 - ], - [ - 58.15823641690338, - -33.46085981889206 - ], - [ - 53.37807395241475, - -35.850941051136374 - ], - [ - 51.78472345525563, - -37.44429154829544 - ], - [ - 56.56477494673288, - -35.850941051136374 - ], - [ - 62.141612659801126, - -34.25753506747162 - ], - [ - 70.9051513671875, - -30.274103338068187 - ], - [ - 82.05882679332376, - -24.697321111505687 - ], - [ - 94.00906649502838, - -15.137051669034122 - ], - [ - 114.72295587713063, - 2.390081232244313 - ], - [ - 125.876631303267, - 11.153675426136374 - ], - [ - 128.26665704900563, - 17.527132901278378 - ], - [ - 124.28328080610788, - 24.697321111505687 - ], - [ - 116.31641734730113, - 34.257535067471565 - ], - [ - 103.56939142400563, - 48.597911487926126 - ], - [ - 97.9925537109375, - 54.97147993607956 - ], - [ - 92.41571599786926, - 58.15818093039775 - ], - [ - 87.635664506392, - 57.36150568181819 - ], - [ - 82.05882679332376, - 53.37807395241475 - ], - [ - 81.26215154474426, - 53.37807395241475 - ], - [ - 81.26215154474426, - 53.37807395241475 - ] - ], - "pressures": [ - 0.1064453125, - 0.2080078125, - 0.31640625, - 0.7744140625, - 0.8681640625, - 0.8896484375, - 0.8984375, - 0.9169921875, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9794921875, - 0.96875, - 0.966796875, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7626953125, - 0.373046875, - 0.1376953125, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 81.26215154474426, - 53.37807395241475 - ] - }, - { - "id": "rPLgJ-To2BJ8zMsG48V6d", - "type": "freedraw", - "x": 297.4763326273337, - "y": -139.95166352507363, - "width": 62.938343394886374, - "height": 56.564830433238626, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 444167309, - "version": 492, - "versionNonce": 1709988205, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982882, - 5.576893199573874 - ], - [ - 5.57683771306813, - 11.950350674715878 - ], - [ - 4.780106977982882, - 25.494051846590878 - ], - [ - 0.7966752485795041, - 36.64761629971588 - ], - [ - -6.373512961647748, - 46.2078857421875 - ], - [ - -13.543701171875, - 52.58139870383525 - ], - [ - -26.290671608664866, - 56.564830433238626 - ], - [ - -35.054210316051126, - 55.76815518465912 - ], - [ - -43.817804509943244, - 50.98799272017038 - ], - [ - -50.191317471590935, - 45.411265980113626 - ], - [ - -55.768099698153435, - 39.03769753196025 - ], - [ - -57.361505681818244, - 36.64761629971588 - ], - [ - -57.361505681818244, - 35.850941051136374 - ], - [ - -57.361505681818244, - 35.850941051136374 - ] - ], - "pressures": [ - 0.0849609375, - 0.630859375, - 0.9189453125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.8984375, - 0.666015625, - 0.5107421875, - 0.3740234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -57.361505681818244, - 35.850941051136374 - ] - }, - { - "id": "hyYrYNtHInnzlrA844ohi", - "type": "freedraw", - "x": 255.2519341010552, - "y": -187.75289976442025, - "width": 74.09190784801137, - "height": 70.10855934836644, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1056268653, - "version": 513, - "versionNonce": 11665379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - 3.186756480823874 - ], - [ - -0.7967307350851343, - 4.780162464488626 - ], - [ - 4.780106977982996, - 5.576893199573874 - ], - [ - 8.763538707386374, - 5.576893199573874 - ], - [ - 11.950295188210248, - 2.390081232244313 - ], - [ - 15.137051669034122, - -0.7966752485795041 - ], - [ - 15.933726917613626, - -4.780106977982939 - ], - [ - 15.933726917613626, - -8.763538707386374 - ], - [ - 11.950295188210248, - -15.137051669034065 - ], - [ - 7.96686345880687, - -16.730402166193187 - ], - [ - 3.9834317294034918, - -17.527132901278378 - ], - [ - 0, - -15.933726917613626 - ], - [ - -5.57683771306813, - -12.746970436789752 - ], - [ - -7.170188210227252, - -11.950295188210191 - ], - [ - -7.170188210227252, - -12.746970436789752 - ], - [ - -4.780162464488569, - -18.32380814985794 - ], - [ - -0.7967307350851343, - -28.680752840909065 - ], - [ - 5.5767822265625, - -40.63104802911931 - ], - [ - 15.933726917613626, - -55.76809969815338 - ], - [ - 23.10391512784099, - -61.34490966796875 - ], - [ - 29.477428089488626, - -64.53166614879257 - ], - [ - 36.64761629971599, - -64.53166614879257 - ], - [ - 46.20783025568187, - -58.95485617897725 - ], - [ - 58.954856178977366, - -45.41115500710225 - ], - [ - 64.53163840553987, - -35.850941051136374 - ], - [ - 66.92171963778412, - -27.087346857244313 - ], - [ - 66.12504438920462, - -19.917158647017004 - ], - [ - 62.141612659801126, - -14.340376420454504 - ], - [ - 55.76809969815349, - -9.560213955965878 - ], - [ - 50.19126198508525, - -7.966863458806813 - ], - [ - 44.61447975852275, - -7.966863458806813 - ], - [ - 41.427723277698874, - -7.966863458806813 - ], - [ - 39.83431729403412, - -9.560213955965878 - ], - [ - 39.83431729403412, - -10.356944691051126 - ], - [ - 39.83431729403412, - -10.356944691051126 - ] - ], - "pressures": [ - 0.0205078125, - 0.2236328125, - 0.2861328125, - 0.392578125, - 0.50390625, - 0.6015625, - 0.732421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7666015625, - 0.408203125, - 0.173828125, - 0.126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.83431729403412, - -10.356944691051126 - ] - }, - { - "id": "LCOKy4ZjEIu1xJGVsKmOH", - "type": "freedraw", - "x": 248.08174589082796, - "y": -192.5330067424032, - "width": 75.68531383167613, - "height": 65.32834139737218, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1026861837, - "version": 512, - "versionNonce": 458793933, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - 3.186756480823874 - ], - [ - 0, - 3.983431729403435 - ], - [ - 3.983431729403435, - 3.983431729403435 - ], - [ - 9.560213955965878, - 2.390081232244313 - ], - [ - 17.527077414772748, - -4.780106977982939 - ], - [ - 20.713833895596622, - -9.560269442471565 - ], - [ - 21.51056463068187, - -14.340376420454561 - ], - [ - 19.917158647017118, - -19.1204833984375 - ], - [ - 14.340376420454618, - -23.900645862926126 - ], - [ - 8.763538707386374, - -23.900645862926126 - ], - [ - 2.390025745738683, - -22.307239879261374 - ], - [ - -3.186756480823817, - -17.527132901278435 - ], - [ - -7.9669189453125, - -11.950295188210248 - ], - [ - -11.950350674715878, - -6.373512961647748 - ], - [ - -11.950350674715878, - -5.576837713068187 - ], - [ - -11.15361993963063, - -10.356944691051126 - ], - [ - -7.9669189453125, - -19.1204833984375 - ], - [ - -3.983431729403378, - -31.070834073153435 - ], - [ - 1.593350497159122, - -42.22442626953125 - ], - [ - 7.96686345880687, - -49.3946144797585 - ], - [ - 16.730402166193244, - -54.971424449573874 - ], - [ - 21.51056463068187, - -56.56480268998581 - ], - [ - 27.884022105823874, - -55.76812744140625 - ], - [ - 37.444291548295496, - -48.597939231179 - ], - [ - 48.597911487926126, - -35.850941051136374 - ], - [ - 61.34488192471588, - -16.730457652698874 - ], - [ - 63.73496315696025, - -9.560269442471565 - ], - [ - 60.548206676136374, - -3.186756480823874 - ], - [ - 53.37801846590912, - 0.796675248579561 - ], - [ - 42.22439852627838, - 5.576837713068187 - ], - [ - 35.850885564630744, - 7.170188210227252 - ], - [ - 30.274103338068244, - 7.966863458806813 - ], - [ - 27.08734685724437, - 8.763538707386374 - ], - [ - 27.08734685724437, - 8.763538707386374 - ] - ], - "pressures": [ - 0.0595703125, - 0.380859375, - 0.46875, - 0.599609375, - 0.78515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9560546875, - 0.6240234375, - 0.3681640625, - 0.2275390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.08734685724437, - 8.763538707386374 - ] - }, - { - "id": "eU9WCNVNomoSPCk7apF2I", - "type": "freedraw", - "x": 252.0651776202314, - "y": -175.8025490897043, - "width": 74.09196333451712, - "height": 75.68531383167613, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2093604099, - "version": 512, - "versionNonce": 1590561667, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - 2.390025745738683, - -0.7967307350852479 - ], - [ - 4.780106977982939, - -3.983487215909122 - ], - [ - 6.373457475142061, - -8.763594193892061 - ], - [ - 6.373457475142061, - -13.543701171875 - ], - [ - 5.576782226562443, - -15.137107155539809 - ], - [ - 3.186756480823817, - -15.933782404119313 - ], - [ - 0.796675248579561, - -15.933782404119313 - ], - [ - -2.390081232244313, - -14.340376420454561 - ], - [ - -7.170188210227252, - -11.950350674715935 - ], - [ - -9.560269442471565, - -11.153619939630687 - ], - [ - -11.153619939630687, - -10.356944691051126 - ], - [ - -11.950350674715935, - -10.356944691051126 - ], - [ - -11.153619939630687, - -13.543701171875 - ], - [ - -6.373512961647748, - -19.917214133522748 - ], - [ - -0.7967307350852479, - -28.680752840909122 - ], - [ - 11.950295188210191, - -43.021129261363626 - ], - [ - 20.713833895596565, - -49.394642223011374 - ], - [ - 27.087346857244313, - -52.58139870383525 - ], - [ - 31.86745383522731, - -52.58139870383525 - ], - [ - 42.224398526278435, - -47.00456099076706 - ], - [ - 50.19126198508519, - -38.24102228338069 - ], - [ - 56.56477494673294, - -27.88407759232956 - ], - [ - 61.344881924715935, - -19.120538884943187 - ], - [ - 62.14161265980118, - -11.950350674715935 - ], - [ - 58.95485617897731, - -2.390025745738626 - ], - [ - 54.17474920099431, - 6.373457475142061 - ], - [ - 48.59791148792618, - 15.137051669034065 - ], - [ - 43.81780450994319, - 20.713833895596565 - ], - [ - 38.24096679687494, - 23.103915127840878 - ], - [ - 36.647616299715935, - 21.510564630681813 - ], - [ - 35.85094105113632, - 19.1204833984375 - ], - [ - 35.85094105113632, - 17.527132901278378 - ], - [ - 35.85094105113632, - 17.527132901278378 - ] - ], - "pressures": [ - 0.0380859375, - 0.21484375, - 0.3330078125, - 0.4052734375, - 0.4765625, - 0.6640625, - 0.732421875, - 0.802734375, - 0.857421875, - 0.8828125, - 0.921875, - 0.9404296875, - 0.94921875, - 0.953125, - 0.92578125, - 0.9296875, - 0.9296875, - 0.9296875, - 0.931640625, - 0.92578125, - 0.900390625, - 0.884765625, - 0.8701171875, - 0.8701171875, - 0.849609375, - 0.8134765625, - 0.79296875, - 0.7626953125, - 0.6337890625, - 0.44921875, - 0.361328125, - 0.224609375, - 0.1376953125, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.85094105113632, - 17.527132901278378 - ] - }, - { - "id": "5aPOodEh0t7quyUUe2TyI", - "type": "freedraw", - "x": 261.62539157619733, - "y": -153.49530921044294, - "width": 74.09196333451706, - "height": 71.70188210227275, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1332240365, - "version": 514, - "versionNonce": 1166844461, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244256, - 4.780106977982939 - ], - [ - 4.780162464488626, - 6.373457475142004 - ], - [ - 8.763594193892004, - 7.170188210227252 - ], - [ - 11.950350674715878, - 6.373457475142004 - ], - [ - 15.933782404119256, - 3.983431729403378 - ], - [ - 19.12053888494313, - -0.796675248579561 - ], - [ - 21.510564630681756, - -5.576837713068187 - ], - [ - 22.307239879261374, - -14.340376420454561 - ], - [ - 21.510564630681756, - -20.713833895596622 - ], - [ - 19.12053888494313, - -26.290727095170496 - ], - [ - 15.137051669034008, - -27.88407759232956 - ], - [ - 5.57683771306813, - -26.290727095170496 - ], - [ - -0.7966752485796178, - -23.103970614346622 - ], - [ - -6.373457475142118, - -20.713833895596622 - ], - [ - -9.560213955965935, - -19.917214133522748 - ], - [ - -10.356944691051183, - -19.120538884943187 - ], - [ - -11.153619939630687, - -19.917214133522748 - ], - [ - -11.153619939630687, - -24.697265625 - ], - [ - -9.560213955965935, - -33.46085981889206 - ], - [ - -3.186756480823874, - -48.59796697443181 - ], - [ - 2.390081232244256, - -57.36150568181819 - ], - [ - 7.9669189453125, - -62.938343394886374 - ], - [ - 14.340376420454504, - -64.5316938920455 - ], - [ - 23.10397061434651, - -62.938343394886374 - ], - [ - 43.81780450994313, - -50.987992720170496 - ], - [ - 55.76815518465901, - -43.02112926136368 - ], - [ - 62.141612659801126, - -35.850941051136374 - ], - [ - 62.938343394886374, - -28.680697354403435 - ], - [ - 56.564830433238626, - -16.730402166193187 - ], - [ - 50.19131747159088, - -9.560269442471622 - ], - [ - 44.61453524502838, - -3.983431729403435 - ], - [ - 39.03769753196025, - -0.796675248579561 - ], - [ - 35.850941051136374, - 0.7966752485795041 - ], - [ - 35.054265802556756, - 0.7966752485795041 - ], - [ - 35.054265802556756, - 0 - ], - [ - 35.054265802556756, - 0 - ] - ], - "pressures": [ - 0.0712890625, - 0.2021484375, - 0.2626953125, - 0.34765625, - 0.435546875, - 0.583984375, - 0.78515625, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.5791015625, - 0.2197265625, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.054265802556756, - 0 - ] - }, - { - "id": "214WgJz7-_2EiWLowNAj6", - "type": "freedraw", - "x": 274.3724174994927, - "y": -171.81911736030094, - "width": 69.31180087002843, - "height": 69.31180087002843, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 653209869, - "version": 503, - "versionNonce": 547857187, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485796178, - 1.593405983664809 - ], - [ - -0.7966752485795041, - -0.7967307350851911 - ], - [ - -3.186756480823874, - -3.983431729403378 - ], - [ - -7.966863458806756, - -8.763594193892004 - ], - [ - -11.950295188210134, - -11.950350674715878 - ], - [ - -15.933782404119256, - -14.340376420454504 - ], - [ - -20.713889382102252, - -16.730457652698817 - ], - [ - -26.290671608664752, - -19.120538884943187 - ], - [ - -31.867509321732882, - -19.91721413352269 - ], - [ - -40.631048029119256, - -20.713889382102252 - ], - [ - -47.004560990767004, - -19.120538884943187 - ], - [ - -52.58139870383519, - -16.730457652698817 - ], - [ - -59.751531427556756, - -9.560269442471565 - ], - [ - -63.73496315696019, - -2.390025745738626 - ], - [ - -66.1250443892045, - 6.373457475142061 - ], - [ - -67.71839488636357, - 14.340376420454561 - ], - [ - -68.51512562144882, - 22.307239879261374 - ], - [ - -68.51512562144882, - 31.070778586647748 - ], - [ - -66.92171963778407, - 43.021073774857996 - ], - [ - -66.1250443892045, - 47.80123623934662 - ], - [ - -65.32836914062494, - 48.59791148792618 - ], - [ - -63.73496315696019, - 48.59791148792618 - ], - [ - -61.344937411221565, - 47.80123623934662 - ], - [ - -58.95485617897725, - 47.004505504261374 - ], - [ - -58.15818093039769, - 47.004505504261374 - ], - [ - -58.15818093039769, - 47.004505504261374 - ] - ], - "pressures": [ - 0.0029296875, - 0.2060546875, - 0.716796875, - 0.822265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.828125, - 0.662109375, - 0.3115234375, - 0.203125, - 0.1142578125, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -58.15818093039769, - 47.004505504261374 - ] - }, - { - "id": "4EyHX9oJkmb-_F1S-LCWd", - "type": "freedraw", - "x": 267.9989045378451, - "y": -193.32968199098275, - "width": 62.14161265980118, - "height": 52.58134321732956, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 615106733, - "version": 479, - "versionNonce": 246236867, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -59.75153142755687, - 11.950295188210248 - ], - [ - -62.14161265980118, - 37.444291548295496 - ], - [ - -62.14161265980118, - 49.39458673650569 - ], - [ - -61.344881924715935, - 50.988048206676126 - ], - [ - -60.54820667613643, - 52.58134321732956 - ], - [ - -59.75153142755687, - 50.19126198508525 - ], - [ - -58.95485617897731, - 47.00456099076706 - ], - [ - -58.95485617897731, - 45.41115500710231 - ], - [ - -58.95485617897731, - 45.41115500710231 - ] - ], - "pressures": [ - 0.8203125, - 1, - 0.951171875, - 0.8662109375, - 0.7587890625, - 0.6591796875, - 0.2236328125, - 0.1455078125, - 0.0673828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -58.95485617897731, - 45.41115500710231 - ] - }, - { - "id": "4vhG7bIYBQaT2wfWISy3F", - "type": "freedraw", - "x": 266.40555404068596, - "y": -178.19257483544294, - "width": 84.4488525390625, - "height": 87.63560901988643, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1348654925, - "version": 494, - "versionNonce": 1925298925, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -0.7967307350852479 - ], - [ - -5.576837713068244, - -3.186811967329561 - ], - [ - -10.356944691051126, - -6.373568448153435 - ], - [ - -16.730457652698874, - -10.357000177556813 - ], - [ - -24.697321111505687, - -14.340431906960248 - ], - [ - -37.444347034801126, - -18.323863636363683 - ], - [ - -46.2078857421875, - -19.120538884943187 - ], - [ - -54.17474920099431, - -19.917269620028435 - ], - [ - -61.34493741122162, - -20.713944868607996 - ], - [ - -71.70182661576706, - -19.120538884943187 - ], - [ - -76.48198908025569, - -14.340431906960248 - ], - [ - -80.46542080965912, - -7.9669189453125 - ], - [ - -82.85550204190343, - -1.5934614701704959 - ], - [ - -84.4488525390625, - 7.170132723721565 - ], - [ - -84.4488525390625, - 14.340320933948817 - ], - [ - -82.85550204190343, - 21.510509144176126 - ], - [ - -80.46542080965912, - 28.680697354403378 - ], - [ - -78.0753950639205, - 35.85094105113632 - ], - [ - -74.88863858309662, - 47.00450550426132 - ], - [ - -73.29523259943181, - 54.174693714488626 - ], - [ - -72.49855735085231, - 60.54815118963069 - ], - [ - -72.49855735085231, - 64.5316384055397 - ], - [ - -72.49855735085231, - 66.92166415127843 - ], - [ - -72.49855735085231, - 66.92166415127843 - ] - ], - "pressures": [ - 0.021484375, - 0.38671875, - 0.55078125, - 0.671875, - 0.8076171875, - 0.904296875, - 0.9755859375, - 1, - 1, - 0.951171875, - 0.921875, - 0.884765625, - 0.861328125, - 0.861328125, - 0.8427734375, - 0.7890625, - 0.7607421875, - 0.732421875, - 0.6845703125, - 0.6494140625, - 0.6240234375, - 0.5224609375, - 0.4013671875, - 0.2705078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -72.49855735085231, - 66.92166415127843 - ] - }, - { - "id": "656k8hvQy3h2EJRCg1NXV", - "type": "freedraw", - "x": 273.5757422509132, - "y": -179.78603630561344, - "width": 143.40376420454544, - "height": 182.4414617365057, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2001896643, - "version": 536, - "versionNonce": 1602057827, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -3.983431729403378 - ], - [ - -2.39008123224437, - -5.5767822265625 - ], - [ - -4.780162464488626, - -7.170132723721565 - ], - [ - -7.9669189453125, - -9.560213955965878 - ], - [ - -12.747025923295496, - -12.746970436789752 - ], - [ - -20.713889382102252, - -18.32380814985794 - ], - [ - -27.88407759232956, - -22.307239879261317 - ], - [ - -34.25759055397725, - -26.290671608664752 - ], - [ - -40.631103515625, - -27.884022105823817 - ], - [ - -45.41121049360794, - -29.477428089488626 - ], - [ - -53.37807395241475, - -29.477428089488626 - ], - [ - -58.15818093039775, - -28.680697354403378 - ], - [ - -62.141612659801126, - -27.087346857244313 - ], - [ - -66.12504438920456, - -23.90059037642044 - ], - [ - -72.49855735085225, - -19.1204833984375 - ], - [ - -75.68531383167613, - -14.340320933948817 - ], - [ - -78.07539506392044, - -11.153619939630687 - ], - [ - -78.87201482599431, - -7.966863458806813 - ], - [ - -79.66874556107956, - -3.186700994318187 - ], - [ - -78.87201482599431, - 6.373512961647748 - ], - [ - -78.07539506392044, - 13.543756658380687 - ], - [ - -76.48198908025569, - 20.71388938210231 - ], - [ - -74.88858309659088, - 26.290727095170496 - ], - [ - -72.49855735085225, - 33.46091530539775 - ], - [ - -70.10853160511363, - 40.631103515625 - ], - [ - -68.51512562144887, - 49.39469770951706 - ], - [ - -67.71845037286931, - 56.56483043323868 - ], - [ - -66.12504438920456, - 62.14161265980118 - ], - [ - -66.12504438920456, - 67.71845037286931 - ], - [ - -66.12504438920456, - 71.70188210227269 - ], - [ - -66.12504438920456, - 75.68531383167618 - ], - [ - -66.12504438920456, - 78.87207031250006 - ], - [ - -66.92171963778407, - 81.26220703125006 - ], - [ - -67.71845037286931, - 81.26220703125006 - ], - [ - -69.31180087002838, - 82.05882679332393 - ], - [ - -71.70188210227275, - 82.05882679332393 - ], - [ - -74.88858309659088, - 80.46542080965907 - ], - [ - -81.26215154474431, - 76.48198908025569 - ], - [ - -86.04225852272725, - 72.49855735085231 - ], - [ - -90.82231001420456, - 68.51512562144893 - ], - [ - -95.60252796519887, - 66.12509987571019 - ], - [ - -101.17931019176137, - 62.93834339488643 - ], - [ - -103.56939142400569, - 60.54826216264206 - ], - [ - -105.95941716974431, - 58.15818093039775 - ], - [ - -109.14617365056819, - 55.76815518465912 - ], - [ - -113.12960537997157, - 54.971424449573874 - ], - [ - -119.50311834161931, - 53.378129438920496 - ], - [ - -123.48655007102275, - 53.378129438920496 - ], - [ - -128.2666570490057, - 54.17474920099431 - ], - [ - -133.0468195134943, - 56.56483043323868 - ], - [ - -138.62354625355113, - 63.735018643465935 - ], - [ - -141.8103582208807, - 72.49855735085231 - ], - [ - -142.60703346946025, - 82.85550204190343 - ], - [ - -143.40376420454544, - 94.80579723011368 - ], - [ - -143.40376420454544, - 107.55282315340907 - ], - [ - -141.8103582208807, - 124.28322531960231 - ], - [ - -138.62354625355113, - 132.2501442649148 - ], - [ - -133.84349476207387, - 138.6236017400568 - ], - [ - -129.06338778409088, - 144.20043945312506 - ], - [ - -123.48655007102275, - 150.5739524147727 - ], - [ - -117.90976784446025, - 152.96403364701706 - ], - [ - -111.5362548828125, - 152.96403364701706 - ], - [ - -104.36606667258525, - 152.96403364701706 - ], - [ - -97.9925537109375, - 152.1673029119318 - ], - [ - -90.82231001420456, - 151.3706276633523 - ], - [ - -90.82231001420456, - 151.3706276633523 - ] - ], - "pressures": [ - 0.0419921875, - 0.353515625, - 0.5009765625, - 0.638671875, - 0.732421875, - 0.8056640625, - 0.880859375, - 0.9150390625, - 0.9365234375, - 0.953125, - 0.96484375, - 0.9775390625, - 0.970703125, - 0.951171875, - 0.931640625, - 0.900390625, - 0.8935546875, - 0.8896484375, - 0.8876953125, - 0.8662109375, - 0.822265625, - 0.826171875, - 0.83203125, - 0.8427734375, - 0.8349609375, - 0.830078125, - 0.8134765625, - 0.80078125, - 0.80078125, - 0.794921875, - 0.79296875, - 0.794921875, - 0.796875, - 0.791015625, - 0.798828125, - 0.798828125, - 0.8056640625, - 0.8076171875, - 0.8388671875, - 0.8447265625, - 0.8662109375, - 0.9150390625, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.986328125, - 0.9775390625, - 0.96875, - 0.953125, - 0.947265625, - 0.80078125, - 0.611328125, - 0.3466796875, - 0.23828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -90.82231001420456, - 151.3706276633523 - ] - }, - { - "id": "gO8PtAUY1PcgbzcEARWkY", - "type": "freedraw", - "x": 185.14340249594164, - "y": -29.212083890840745, - "width": 3.983487215909065, - "height": 1.5933504971590082, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 631022595, - "version": 471, - "versionNonce": 2047202637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983487215909065, - -1.5933504971590082 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.201171875, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983487215909065, - -1.5933504971590082 - ] - }, - { - "id": "w0_VDPqaQ9jeid6vN3o2m", - "type": "freedraw", - "x": 271.98233626724846, - "y": -185.36281853217594, - "width": 77.27860884232956, - "height": 42.224398526278435, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1480310669, - "version": 496, - "versionNonce": 1910944259, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - -3.186756480823817 - ], - [ - -5.5767822265625, - -7.966863458806813 - ], - [ - -9.560213955965878, - -11.153619939630687 - ], - [ - -13.543701171875, - -14.340376420454504 - ], - [ - -18.323808149857996, - -17.527132901278378 - ], - [ - -23.103915127840935, - -20.713889382102252 - ], - [ - -31.867509321732996, - -23.900645862926126 - ], - [ - -38.240966796875, - -25.49399636008519 - ], - [ - -43.021129261363626, - -26.290671608664752 - ], - [ - -48.597911487926126, - -26.290671608664752 - ], - [ - -54.17474920099431, - -26.290671608664752 - ], - [ - -61.344881924715935, - -23.900645862926126 - ], - [ - -65.32831365411931, - -20.713889382102252 - ], - [ - -69.31174538352275, - -18.32380814985794 - ], - [ - -70.9051513671875, - -16.730457652698817 - ], - [ - -72.49855735085231, - -15.137051669034065 - ], - [ - -72.49855735085231, - -11.950295188210191 - ], - [ - -72.49855735085231, - -7.170188210227252 - ], - [ - -72.49855735085231, - -2.390081232244313 - ], - [ - -72.49855735085231, - 3.983431729403435 - ], - [ - -73.29517711292613, - 7.170243696732996 - ], - [ - -74.88858309659093, - 10.356944691051183 - ], - [ - -76.48198908025569, - 13.543701171875 - ], - [ - -77.27860884232956, - 15.137107155539809 - ], - [ - -77.27860884232956, - 15.933726917613683 - ], - [ - -76.48198908025569, - 15.137107155539809 - ], - [ - -74.88858309659093, - 13.543701171875 - ], - [ - -74.88858309659093, - 13.543701171875 - ] - ], - "pressures": [ - 0.046875, - 0.353515625, - 0.640625, - 0.7705078125, - 0.859375, - 0.9169921875, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96875, - 0.625, - 0.1474609375, - 0.015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -74.88858309659093, - 13.543701171875 - ] - }, - { - "id": "TJExwIlHwAE6uOW4FZpZO", - "type": "freedraw", - "x": 275.16909274807233, - "y": -182.97273729993162, - "width": 181.6447310014205, - "height": 249.36312588778412, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 127550627, - "version": 522, - "versionNonce": 177709997, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - -2.39008123224437, - -6.373512961647691 - ], - [ - -5.5767822265625, - -8.763594193892004 - ], - [ - -10.356944691051126, - -11.15361993963063 - ], - [ - -16.730457652698874, - -15.137107155539752 - ], - [ - -27.88407759232956, - -21.510564630681813 - ], - [ - -35.05426580255687, - -24.69732111150563 - ], - [ - -43.81780450994319, - -27.08740234375 - ], - [ - -50.987992720170496, - -27.08740234375 - ], - [ - -61.34493741122162, - -27.08740234375 - ], - [ - -66.92171963778412, - -24.69732111150563 - ], - [ - -69.31180087002843, - -23.103970614346565 - ], - [ - -75.68531383167618, - -14.340376420454504 - ], - [ - -74.88858309659093, - 73.29523259943187 - ], - [ - -74.88858309659093, - 81.26209605823863 - ], - [ - -77.27866432883525, - 92.415771484375 - ], - [ - -78.8720703125, - 97.99249822443187 - ], - [ - -81.26209605823868, - 101.17925470525574 - ], - [ - -82.85550204190343, - 102.7726606889205 - ], - [ - -87.63560901988637, - 103.5693359375 - ], - [ - -92.41566051136368, - 102.7726606889205 - ], - [ - -98.78922895951706, - 100.38263494318187 - ], - [ - -105.95941716974437, - 95.60247247869324 - ], - [ - -112.33287464488637, - 90.82231001420462 - ], - [ - -119.50311834161937, - 84.44890802556824 - ], - [ - -122.68987482244319, - 81.26209605823863 - ], - [ - -126.67330655184662, - 78.07533957741475 - ], - [ - -130.65673828125, - 73.29523259943187 - ], - [ - -137.8269264914773, - 66.92171963778412 - ], - [ - -140.21689675071025, - 64.5316938920455 - ], - [ - -148.18381569602275, - 60.54826216264206 - ], - [ - -154.5573286576705, - 60.54826216264206 - ], - [ - -159.33749112215912, - 60.54826216264206 - ], - [ - -164.91427334872162, - 62.93828790838069 - ], - [ - -173.677812056108, - 74.09190784801137 - ], - [ - -177.66129927201706, - 85.24552778764212 - ], - [ - -180.05126953125, - 97.99249822443187 - ], - [ - -181.6447310014205, - 120.29979359019887 - ], - [ - -181.6447310014205, - 137.82687100497162 - ], - [ - -178.45797452059662, - 159.33743563565338 - ], - [ - -172.88113680752843, - 180.05138050426137 - ], - [ - -166.5076238458807, - 192.00167569247162 - ], - [ - -160.134110884233, - 199.96853915127838 - ], - [ - -144.20038396661937, - 211.12210360440338 - ], - [ - -130.65673828125, - 218.29229181463074 - ], - [ - -114.72295587713069, - 222.27572354403412 - ], - [ - -93.21239124644887, - 219.88575328480113 - ], - [ - -88.43222878196025, - 219.08896706321025 - ], - [ - -82.05877130681819, - 215.90226606889212 - ], - [ - -81.26209605823868, - 212.71550958806824 - ], - [ - -81.26209605823868, - 206.3419966264205 - ], - [ - -83.652177290483, - 201.5618896484375 - ], - [ - -84.44879705255687, - 200.76515891335225 - ], - [ - -84.44879705255687, - 200.76515891335225 - ] - ], - "pressures": [ - 0.0390625, - 0.169921875, - 0.2392578125, - 0.3447265625, - 0.4833984375, - 0.6884765625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75, - 0.640625, - 0.4990234375, - 0.2939453125, - 0.193359375, - 0.08984375, - 0.001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -84.44879705255687, - 200.76515891335225 - ] - }, - { - "id": "A9kB-5a0KKyYVVIjclsr_", - "type": "freedraw", - "x": 283.9326314554587, - "y": -192.5330067424032, - "width": 186.42483797940343, - "height": 207.93534712357956, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 674719213, - "version": 515, - "versionNonce": 1189575075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982996, - -3.186756480823874 - ], - [ - -8.763538707386374, - -5.576837713068187 - ], - [ - -13.54364568536937, - -7.966863458806813 - ], - [ - -18.323808149857996, - -11.153619939630687 - ], - [ - -27.884022105823874, - -15.137051669034065 - ], - [ - -35.850885564630744, - -15.933726917613626 - ], - [ - -47.004505504261374, - -15.933726917613626 - ], - [ - -58.15812544389206, - -13.543701171875 - ], - [ - -72.49850186434662, - -8.763538707386374 - ], - [ - -80.46542080965912, - -3.983431729403435 - ], - [ - -88.43228426846593, - 3.186756480823874 - ], - [ - -96.39914772727275, - 18.323863636363626 - ], - [ - -100.38257945667618, - 29.477428089488626 - ], - [ - -103.56933593750006, - 39.03769753196025 - ], - [ - -104.36601118607956, - 47.00456099076706 - ], - [ - -104.36601118607956, - 54.971424449573874 - ], - [ - -101.17919921875006, - 65.328369140625 - ], - [ - -94.805741743608, - 85.24552778764206 - ], - [ - -91.61904074928981, - 97.99260919744319 - ], - [ - -89.22890403053981, - 109.94290438565343 - ], - [ - -87.63560901988637, - 122.68987482244319 - ], - [ - -86.83887828480118, - 135.43684525923294 - ], - [ - -86.83887828480118, - 152.96397816051132 - ], - [ - -89.22890403053981, - 160.9308416193182 - ], - [ - -93.21233575994324, - 164.91427334872157 - ], - [ - -98.78922895951706, - 166.5076238458807 - ], - [ - -108.349442915483, - 164.11759810014206 - ], - [ - -114.72295587713074, - 160.13416637073868 - ], - [ - -121.893144087358, - 152.96397816051132 - ], - [ - -127.4699263139205, - 144.99711470170456 - ], - [ - -134.64011452414775, - 131.45341352982956 - ], - [ - -139.42027698863637, - 123.48655007102269 - ], - [ - -144.20038396661937, - 117.11303710937494 - ], - [ - -148.98043545809662, - 111.53619939630681 - ], - [ - -154.5573286576705, - 107.55276766690343 - ], - [ - -163.32086736505687, - 105.16274192116481 - ], - [ - -170.49105557528412, - 105.16274192116481 - ], - [ - -176.86451305042618, - 113.12960537997157 - ], - [ - -182.44135076349437, - 126.67330655184657 - ], - [ - -186.42483797940343, - 144.2003839666193 - ], - [ - -186.42483797940343, - 148.98054643110794 - ], - [ - -186.42483797940343, - 152.96397816051132 - ], - [ - -182.44135076349437, - 160.13416637073868 - ], - [ - -176.86451305042618, - 170.4911110617898 - ], - [ - -164.91421786221593, - 187.22151322798294 - ], - [ - -160.134110884233, - 192.00162020596593 - ], - [ - -160.134110884233, - 192.00162020596593 - ] - ], - "pressures": [ - 0.12890625, - 0.28125, - 0.4033203125, - 0.5615234375, - 0.740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -160.134110884233, - 192.00162020596593 - ] - }, - { - "id": "eCE2DZbGQsRgzMXh5kQeN", - "type": "freedraw", - "x": 129.3753027977882, - "y": 4.248775928051373, - "width": 35.850941051136374, - "height": 47.80123623934662, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1448182371, - "version": 472, - "versionNonce": 413181453, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -9.560213955965878, - 47.80123623934662 - ], - [ - -35.850941051136374, - 4.780162464488626 - ], - [ - -35.054210316051126, - 3.983431729403378 - ], - [ - -30.2740478515625, - 3.983431729403378 - ], - [ - -27.884022105823874, - 3.983431729403378 - ], - [ - -27.087346857244313, - 3.983431729403378 - ], - [ - -27.087346857244313, - 3.983431729403378 - ] - ], - "pressures": [ - 1, - 1, - 1, - 0.5234375, - 0.2109375, - 0.1298828125, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -27.087346857244313, - 3.983431729403378 - ] - }, - { - "id": "Ewa02hbH2JdePa9eza46_", - "type": "freedraw", - "x": 99.89787470829958, - "y": 16.19907111626162, - "width": 70.10847611860794, - "height": 26.290671608664752, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 740127917, - "version": 484, - "versionNonce": 1001278787, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - -0.7966752485796178 - ], - [ - -0.796619762073874, - 1.5933504971590082 - ], - [ - 3.186811967329561, - 5.57683771306813 - ], - [ - 9.560269442471565, - 11.15361993963063 - ], - [ - 17.527132901278435, - 15.933726917613626 - ], - [ - 25.493996360085248, - 19.917158647017004 - ], - [ - 36.64761629971588, - 23.900645862926126 - ], - [ - 43.81780450994319, - 24.697376598011374 - ], - [ - 50.19131747159088, - 25.493996360085134 - ], - [ - 54.97147993607956, - 24.697376598011374 - ], - [ - 62.938343394886374, - 21.510564630681756 - ], - [ - 66.92177512428975, - 18.323808149857882 - ], - [ - 68.51512562144887, - 15.933726917613626 - ], - [ - 68.51512562144887, - 12.747025923295382 - ], - [ - 66.92177512428975, - 8.763594193892004 - ], - [ - 60.54826216264206, - 3.983431729403378 - ], - [ - 54.97147993607956, - 0.7967307350851343 - ], - [ - 53.37807395241475, - 0.7967307350851343 - ], - [ - 53.37807395241475, - 0.7967307350851343 - ] - ], - "pressures": [ - 0.013671875, - 0.2802734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.734375, - 0.279296875, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.37807395241475, - 0.7967307350851343 - ] - }, - { - "id": "48JTc7V_EeuEy4SKY7__f", - "type": "freedraw", - "x": 89.54093001724846, - "y": 29.74277228813662, - "width": 58.954800692471565, - "height": 89.22901500355113, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1389359363, - "version": 490, - "versionNonce": 1461345389, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.389970259232939, - 6.373457475142004 - ], - [ - -2.389970259232939, - 7.966863458806756 - ], - [ - -2.389970259232939, - 11.153675426136374 - ], - [ - -1.593350497159122, - 11.950295188210134 - ], - [ - 3.186756480823874, - 15.137107155539752 - ], - [ - 11.950350674715878, - 18.323808149857882 - ], - [ - 23.103970614346565, - 21.510564630681756 - ], - [ - 36.64761629971588, - 20.71383389559651 - ], - [ - 43.81780450994319, - 16.73040216619313 - ], - [ - 50.19131747159088, - 9.560213955965878 - ], - [ - 54.971424449573874, - -1.5934059836648657 - ], - [ - 56.564830433238626, - -19.1204833984375 - ], - [ - 55.768155184659065, - -27.884077592329618 - ], - [ - 52.58139870383519, - -35.850941051136374 - ], - [ - 47.801236239346565, - -43.021129261363626 - ], - [ - 41.427778764204504, - -49.394642223011374 - ], - [ - 30.274158824573874, - -58.954856178977366 - ], - [ - 23.900645862926126, - -63.73501864346599 - ], - [ - 18.32380814985794, - -66.12504438920462 - ], - [ - 15.137051669034065, - -66.92177512428987 - ], - [ - 11.950350674715878, - -66.92177512428987 - ], - [ - 10.356944691051126, - -67.71845037286937 - ], - [ - 9.560324928977252, - -67.71845037286937 - ], - [ - 10.356944691051126, - -67.71845037286937 - ], - [ - 10.356944691051126, - -67.71845037286937 - ] - ], - "pressures": [ - 0.0537109375, - 0.162109375, - 0.1796875, - 0.236328125, - 0.2958984375, - 0.3681640625, - 0.5146484375, - 0.61328125, - 0.7265625, - 0.83203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.642578125, - 0.0107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - -67.71845037286937 - ] - }, - { - "id": "Bx4e5J_o69bRS39yGLZ5b", - "type": "freedraw", - "x": 96.71111822747571, - "y": 15.402395867682003, - "width": 11.950295188210248, - "height": 22.307239879261374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 555351427, - "version": 472, - "versionNonce": 60402915, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - 5.576837713068244 - ], - [ - 0, - 7.170188210227252 - ], - [ - 0.796675248579561, - 11.153619939630744 - ], - [ - 3.186756480823874, - 15.137051669034122 - ], - [ - 7.170188210227309, - 19.1204833984375 - ], - [ - 11.153619939630687, - 22.307239879261374 - ], - [ - 11.153619939630687, - 22.307239879261374 - ] - ], - "pressures": [ - 0.0380859375, - 0.1513671875, - 0.19921875, - 0.25390625, - 0.3427734375, - 0.4384765625, - 0.5234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153619939630687, - 22.307239879261374 - ] - }, - { - "id": "3hMGuK8CEZ1n2PtBgXO-_", - "type": "freedraw", - "x": 110.25481939935071, - "y": 38.506310995522995, - "width": 189.61153897372157, - "height": 274.0604469992898, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 640995757, - "version": 534, - "versionNonce": 1573799629, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 44.614535245028435, - -31.070778586647748 - ], - [ - 35.850941051136374, - -47.00456099076712 - ], - [ - 20.713889382102252, - -58.15818093039775 - ], - [ - 16.730457652698874, - -59.75153142755687 - ], - [ - 8.763594193892061, - -62.14161265980124 - ], - [ - 3.186756480823874, - -62.938287908380744 - ], - [ - -2.390081232244313, - -64.5316938920455 - ], - [ - -8.763538707386374, - -68.51512562144887 - ], - [ - -12.747025923295439, - -72.49855735085237 - ], - [ - -15.136996182528378, - -76.48198908025574 - ], - [ - -17.527132901278378, - -80.46542080965912 - ], - [ - -19.120427911931813, - -84.4488525390625 - ], - [ - -19.91715864701706, - -93.21233575994324 - ], - [ - -19.91715864701706, - -101.97598544034099 - ], - [ - -19.91715864701706, - -110.73952414772737 - ], - [ - -19.120427911931813, - -119.50311834161937 - ], - [ - -16.730457652698874, - -129.86000754616487 - ], - [ - -14.340376420454561, - -137.82692649147737 - ], - [ - -11.153564453125, - -145.79378995028412 - ], - [ - -7.170132723721565, - -153.760653409091 - ], - [ - -2.390081232244313, - -161.72751686789775 - ], - [ - 5.5767822265625, - -175.27121803977275 - ], - [ - 11.950295188210248, - -184.03475674715912 - ], - [ - 17.527132901278435, - -192.00162020596593 - ], - [ - 23.103915127840935, - -199.17180841619324 - ], - [ - 31.86750932173294, - -205.54532137784093 - ], - [ - 39.03769753196025, - -205.54532137784093 - ], - [ - 47.80123623934662, - -203.95197088068187 - ], - [ - 57.36150568181819, - -199.17180841619324 - ], - [ - 66.12504438920456, - -192.7982954545455 - ], - [ - 74.09190784801137, - -183.23808149857962 - ], - [ - 77.27866432883525, - -175.27121803977275 - ], - [ - 78.8720703125, - -167.30435458096593 - ], - [ - 79.66874556107956, - -160.13416637073868 - ], - [ - 81.26209605823863, - -152.96392267400574 - ], - [ - 82.85550204190343, - -152.16724742542624 - ], - [ - 83.65217729048294, - -152.16724742542624 - ], - [ - 85.24552778764206, - -152.16724742542624 - ], - [ - 86.83893377130681, - -153.760653409091 - ], - [ - 87.63560901988637, - -156.15073464133525 - ], - [ - 90.82236550071025, - -162.5241921164773 - ], - [ - 92.415771484375, - -170.49105557528412 - ], - [ - 92.415771484375, - -180.84794477982962 - ], - [ - 90.82236550071025, - -197.57845791903412 - ], - [ - 88.43233975497162, - -208.73202237215912 - ], - [ - 85.24552778764206, - -217.49561656605118 - ], - [ - 82.05877130681819, - -223.86912952769893 - ], - [ - 79.66874556107956, - -228.64923650568187 - ], - [ - 76.48204456676137, - -236.61615545099437 - ], - [ - 76.48204456676137, - -242.98961292613643 - ], - [ - 76.48204456676137, - -250.15980113636368 - ], - [ - 79.66874556107956, - -256.53331409801143 - ], - [ - 86.83893377130681, - -262.9068270596591 - ], - [ - 93.21239124644887, - -266.89025878906256 - ], - [ - 98.78922895951706, - -271.6703657670455 - ], - [ - 103.5693359375, - -274.0604469992898 - ], - [ - 109.14617365056819, - -274.0604469992898 - ], - [ - 117.90971235795456, - -269.280312278054 - ], - [ - 137.82692649147725, - -254.14323286576712 - ], - [ - 151.37057217684662, - -245.37969415838074 - ], - [ - 160.93084161931813, - -241.3962624289773 - ], - [ - 168.1010298295455, - -239.006181196733 - ], - [ - 169.6943803267045, - -239.006181196733 - ], - [ - 169.6943803267045, - -236.61615545099437 - ], - [ - 168.897705078125, - -230.24264248934662 - ], - [ - 166.50762384588063, - -222.2757790305398 - ], - [ - 162.52419211647725, - -210.32542835582393 - ], - [ - 161.72751686789775, - -203.95197088068187 - ], - [ - 162.52419211647725, - -198.37513316761368 - ], - [ - 164.117598100142, - -195.1883766867898 - ], - [ - 165.71094859730113, - -194.39170143821025 - ], - [ - 165.71094859730113, - -194.39170143821025 - ] - ], - "pressures": [ - 0.546875, - 0.8828125, - 1, - 0.9921875, - 1, - 1, - 1, - 1, - 0.9921875, - 0.9619140625, - 0.9296875, - 0.9130859375, - 0.904296875, - 0.8984375, - 0.8984375, - 0.8876953125, - 0.8642578125, - 0.8447265625, - 0.8447265625, - 0.8408203125, - 0.8388671875, - 0.8349609375, - 0.80078125, - 0.7626953125, - 0.73828125, - 0.736328125, - 0.728515625, - 0.716796875, - 0.716796875, - 0.728515625, - 0.703125, - 0.677734375, - 0.677734375, - 0.6787109375, - 0.6787109375, - 0.6923828125, - 0.6845703125, - 0.66015625, - 0.615234375, - 0.6044921875, - 0.6025390625, - 0.609375, - 0.61328125, - 0.6552734375, - 0.748046875, - 0.7783203125, - 0.791015625, - 0.791015625, - 0.78515625, - 0.78125, - 0.7626953125, - 0.75390625, - 0.748046875, - 0.75, - 0.75, - 0.7568359375, - 0.7607421875, - 0.7607421875, - 0.75390625, - 0.638671875, - 0.59765625, - 0.5791015625, - 0.6015625, - 0.6025390625, - 0.6064453125, - 0.599609375, - 0.576171875, - 0.5498046875, - 0.529296875, - 0.4970703125, - 0.3759765625, - 0.1357421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 165.71094859730113, - -194.39170143821025 - ] - }, - { - "id": "CzE3NU5QrZC5Fq9sOJ7ov", - "type": "freedraw", - "x": 282.3392809582996, - "y": -168.63236087947706, - "width": 204.74864612926137, - "height": 248.5664506392045, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 964967469, - "version": 528, - "versionNonce": 1647843459, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -2.390081232244313 - ], - [ - -3.186756480823874, - -6.373512961647691 - ], - [ - -5.576837713068244, - -10.356944691051126 - ], - [ - -7.96686345880687, - -15.933782404119313 - ], - [ - -8.763538707386374, - -23.103970614346565 - ], - [ - -12.746970436789752, - -35.850941051136374 - ], - [ - -16.730457652698874, - -43.81780450994319 - ], - [ - -22.307239879261374, - -49.394642223011374 - ], - [ - -35.05426580255681, - -54.97147993607956 - ], - [ - -45.41115500710225, - -57.36150568181819 - ], - [ - -54.17474920099431, - -57.36150568181819 - ], - [ - -62.93828790838069, - -56.564830433238626 - ], - [ - -70.9051513671875, - -54.17474920099431 - ], - [ - -79.66869007457387, - -50.19131747159088 - ], - [ - -93.21239124644887, - -43.021129261363626 - ], - [ - -101.17931019176137, - -38.24102228338069 - ], - [ - -106.75609241832387, - -33.46091530539769 - ], - [ - -110.73952414772725, - -28.680752840909065 - ], - [ - -111.53619939630681, - -24.697321111505687 - ], - [ - -111.53619939630681, - -18.32380814985794 - ], - [ - -109.94284889914775, - -10.356944691051126 - ], - [ - -106.75609241832387, - 0 - ], - [ - -103.56928045099431, - 9.560213955965935 - ], - [ - -97.9925537109375, - 22.307239879261374 - ], - [ - -94.80579723011363, - 32.66412908380681 - ], - [ - -93.21239124644887, - 43.8177490234375 - ], - [ - -92.41571599786931, - 54.97142444957382 - ], - [ - -92.41571599786931, - 66.92171963778407 - ], - [ - -94.80579723011363, - 71.70182661576706 - ], - [ - -97.9925537109375, - 78.07539506392044 - ], - [ - -101.97598544034093, - 85.24552778764206 - ], - [ - -104.36606667258525, - 90.02569025213069 - ], - [ - -108.34949840198863, - 91.61904074928981 - ], - [ - -112.33293013139206, - 90.82231001420456 - ], - [ - -117.90971235795456, - 88.43228426846593 - ], - [ - -123.48649458451706, - 86.04225852272731 - ], - [ - -132.25008877840912, - 79.66869007457382 - ], - [ - -138.6236017400568, - 74.88858309659093 - ], - [ - -145.79378995028412, - 69.31174538352269 - ], - [ - -152.1673029119318, - 64.53163840553981 - ], - [ - -161.72751686789775, - 59.75153142755681 - ], - [ - -168.10102982954544, - 57.36145019531256 - ], - [ - -174.4745427911932, - 55.768099698153435 - ], - [ - -180.84800026633525, - 54.17474920099431 - ], - [ - -187.22145774147725, - 53.378018465909065 - ], - [ - -195.985107421875, - 54.17474920099431 - ], - [ - -200.76521439985794, - 57.36145019531256 - ], - [ - -203.15524014559657, - 58.95485617897731 - ], - [ - -203.9519708806818, - 62.14161265980118 - ], - [ - -204.74864612926137, - 66.12504438920456 - ], - [ - -203.15524014559657, - 78.07539506392044 - ], - [ - -199.96853915127843, - 89.22895951704544 - ], - [ - -196.78178267045456, - 101.17925470525569 - ], - [ - -192.79835094105113, - 111.53619939630681 - ], - [ - -184.8314874822443, - 121.89319957386368 - ], - [ - -178.45797452059657, - 127.46992631392044 - ], - [ - -171.28773082386363, - 133.84349476207382 - ], - [ - -164.11759810014206, - 139.42027698863632 - ], - [ - -150.57389692826706, - 151.37057217684657 - ], - [ - -141.8103582208807, - 159.33743563565343 - ], - [ - -136.2335205078125, - 165.7110040838068 - ], - [ - -132.25008877840912, - 169.6944358132102 - ], - [ - -130.65673828125, - 172.88113680752843 - ], - [ - -129.86006303267044, - 178.45791903409093 - ], - [ - -127.46992631392044, - 191.20494495738632 - ], - [ - -127.46992631392044, - 191.20494495738632 - ] - ], - "pressures": [ - 0.05078125, - 0.30859375, - 0.404296875, - 0.5107421875, - 0.6357421875, - 0.751953125, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -127.46992631392044, - 191.20494495738632 - ] - }, - { - "id": "V2p-G85Cd4zCgs091zXXv", - "type": "freedraw", - "x": 155.66597440645296, - "y": 28.149366304471755, - "width": 62.93828790838063, - "height": 25.494051846590878, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1423106285, - "version": 469, - "versionNonce": 257287469, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -47.00450550426132, - 24.697376598011374 - ], - [ - -58.95485617897725, - 10.35694469105124 - ], - [ - -62.141612659801126, - 2.39008123224437 - ], - [ - -62.93828790838063, - 0 - ], - [ - -62.141612659801126, - 0 - ], - [ - -60.54815118963063, - 0 - ], - [ - -58.95485617897725, - -0.7966752485795041 - ], - [ - -58.95485617897725, - -0.7966752485795041 - ] - ], - "pressures": [ - 1, - 1, - 1, - 0.853515625, - 0.751953125, - 0.28515625, - 0.1904296875, - 0.1220703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -58.95485617897725, - -0.7966752485795041 - ] - }, - { - "id": "eCFEfZFqPglO-c9TXORWc", - "type": "freedraw", - "x": 143.71567921824277, - "y": -2.124737033596375, - "width": 24.697321111505687, - "height": 49.394642223011374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1382526157, - "version": 476, - "versionNonce": 625479715, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244313, - 5.57683771306813 - ], - [ - 6.373512961647691, - 11.950295188210248 - ], - [ - 10.356944691051126, - 19.12053888494313 - ], - [ - 12.747025923295439, - 25.493996360085248 - ], - [ - 14.340376420454561, - 34.25753506747162 - ], - [ - 13.543701171875, - 38.240966796875 - ], - [ - 11.153675426136374, - 41.427723277698874 - ], - [ - 7.966863458806813, - 44.61447975852275 - ], - [ - 3.983431729403378, - 47.00461647727275 - ], - [ - -1.593350497159122, - 49.394642223011374 - ], - [ - -3.983431729403435, - 49.394642223011374 - ], - [ - -6.373512961647748, - 48.597911487926126 - ], - [ - -7.966863458806813, - 47.00461647727275 - ], - [ - -10.356944691051126, - 42.22445401278412 - ], - [ - -10.356944691051126, - 39.83437278053975 - ], - [ - -10.356944691051126, - 38.240966796875 - ], - [ - -10.356944691051126, - 38.240966796875 - ] - ], - "pressures": [ - 0.0849609375, - 0.7783203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7744140625, - 0.326171875, - 0.220703125, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -10.356944691051126, - 38.240966796875 - ] - }, - { - "id": "rr9E4-fSFU_vSEL7Kt3SV", - "type": "freedraw", - "x": 146.90249118557233, - "y": -6.108168762999753, - "width": 25.493996360085248, - "height": 40.631048029119256, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1849621901, - "version": 479, - "versionNonce": 1058715533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966197620738171, - 0.7966752485795041 - ], - [ - 4.780051491477252, - 6.373512961647748 - ], - [ - 10.356889204545439, - 15.137107155539752 - ], - [ - 11.950295188210191, - 20.713889382102252 - ], - [ - 12.746914950284065, - 24.69732111150563 - ], - [ - 12.746914950284065, - 28.68075284090901 - ], - [ - 11.153564453125, - 32.6641845703125 - ], - [ - 7.170132723721565, - 37.44429154829538 - ], - [ - 3.18670099431813, - 39.83437278053975 - ], - [ - -1.593405983664809, - 40.631048029119256 - ], - [ - -6.373568448153435, - 40.631048029119256 - ], - [ - -10.35700017755687, - 40.631048029119256 - ], - [ - -11.950295188210248, - 39.83437278053975 - ], - [ - -12.747081409801183, - 39.83437278053975 - ], - [ - -12.747081409801183, - 39.03769753196025 - ], - [ - -12.747081409801183, - 37.44429154829538 - ], - [ - -11.950295188210248, - 37.44429154829538 - ], - [ - -10.35700017755687, - 36.64761629971588 - ], - [ - -9.560324928977309, - 36.64761629971588 - ], - [ - -9.560324928977309, - 36.64761629971588 - ] - ], - "pressures": [ - 0.1279296875, - 0.7890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.87890625, - 0.2548828125, - 0.2158203125, - 0.1259765625, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.560324928977309, - 36.64761629971588 - ] - }, - { - "id": "r0NKRrTjH3JxYKcoRJ1Cp", - "type": "freedraw", - "x": 93.52436174665183, - "y": 25.75934055873313, - "width": 118.70644309303975, - "height": 94.80579723011363, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1923100589, - "version": 484, - "versionNonce": 1589121987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558544, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -2.390081232244256 - ], - [ - -3.983431729403378, - 0.7966752485796178 - ], - [ - -1.593350497159065, - 11.950295188210248 - ], - [ - 3.186756480823874, - 21.51056463068187 - ], - [ - 10.356944691051183, - 30.274103338068244 - ], - [ - 19.120538884943187, - 38.240966796875 - ], - [ - 29.477483575994313, - 45.411155007102366 - ], - [ - 45.411265980113626, - 54.174693714488626 - ], - [ - 56.564830433238626, - 58.15818093039775 - ], - [ - 67.71845037286931, - 60.548206676136374 - ], - [ - 78.0753950639205, - 60.548206676136374 - ], - [ - 92.415771484375, - 55.76809969815349 - ], - [ - 99.58595969460231, - 50.19126198508525 - ], - [ - 105.95941716974431, - 44.61447975852275 - ], - [ - 110.739579634233, - 38.240966796875 - ], - [ - 114.72301136363637, - 28.68069735440349 - ], - [ - 114.72301136363637, - 8.763538707386374 - ], - [ - 111.5362548828125, - -3.186756480823874 - ], - [ - 107.55282315340912, - -12.746970436789752 - ], - [ - 103.56939142400569, - -18.323808149857882 - ], - [ - 95.60252796519887, - -25.493996360085134 - ], - [ - 89.22907049005681, - -31.070834073153378 - ], - [ - 84.4488525390625, - -34.25759055397725 - ], - [ - 85.24563876065343, - -33.460859818892004 - ], - [ - 89.22907049005681, - -30.274158824573874 - ], - [ - 89.22907049005681, - -30.274158824573874 - ] - ], - "pressures": [ - 0.033203125, - 0.2412109375, - 0.392578125, - 0.5263671875, - 0.6904296875, - 0.794921875, - 0.880859375, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9130859375, - 0.6376953125, - 0.2216796875, - 0.064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 89.22907049005681, - -30.274158824573874 - ] - }, - { - "id": "e8Zxx87xAQLIAwGvjZ4Vt", - "type": "freedraw", - "x": 225.77450601156664, - "y": -165.44565988515888, - "width": 127.46992631392044, - "height": 223.0724542791193, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1590172493, - "version": 519, - "versionNonce": 391527917, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -1.593350497159065 - ], - [ - -2.390081232244313, - -3.983431729403378 - ], - [ - -6.373512961647748, - -7.170188210227252 - ], - [ - -10.356944691051183, - -9.560213955965878 - ], - [ - -15.137051669034122, - -12.746914950284065 - ], - [ - -19.917214133522748, - -15.137051669034065 - ], - [ - -30.274158824573874, - -17.527077414772748 - ], - [ - -38.24102228338069, - -19.1204833984375 - ], - [ - -46.2078857421875, - -19.91715864701706 - ], - [ - -54.971424449573874, - -19.91715864701706 - ], - [ - -62.93828790838069, - -16.7303466796875 - ], - [ - -73.2952880859375, - -10.356889204545439 - ], - [ - -77.27871981534093, - -6.373457475142061 - ], - [ - -78.87201482599431, - -1.593350497159065 - ], - [ - -78.87201482599431, - 5.576837713068187 - ], - [ - -74.88858309659093, - 13.543701171875 - ], - [ - -70.9051513671875, - 22.307239879261374 - ], - [ - -63.735018643465935, - 39.037753018465935 - ], - [ - -58.95485617897731, - 50.988048206676126 - ], - [ - -54.971424449573874, - 61.34493741122162 - ], - [ - -52.58139870383525, - 72.49855735085225 - ], - [ - -52.58139870383525, - 78.0753950639205 - ], - [ - -53.37807395241481, - 82.85555752840912 - ], - [ - -54.971424449573874, - 87.63560901988637 - ], - [ - -57.36150568181819, - 90.82242098721588 - ], - [ - -62.14161265980118, - 94.00912198153412 - ], - [ - -66.92171963778412, - 94.80585271661937 - ], - [ - -70.9051513671875, - 93.2124467329545 - ], - [ - -76.48198908025569, - 89.22901500355113 - ], - [ - -85.24558327414775, - 83.652177290483 - ], - [ - -90.82231001420456, - 79.6687455610795 - ], - [ - -96.39920321377843, - 78.0753950639205 - ], - [ - -101.17931019176137, - 76.48198908025563 - ], - [ - -105.95941716974431, - 76.48198908025563 - ], - [ - -110.73952414772731, - 76.48198908025563 - ], - [ - -117.90976784446025, - 79.6687455610795 - ], - [ - -122.6898193359375, - 83.652177290483 - ], - [ - -125.87663130326706, - 91.61904074928975 - ], - [ - -126.67325106534093, - 105.95941716974437 - ], - [ - -126.67325106534093, - 113.12960537997162 - ], - [ - -124.28322531960231, - 119.50311834161937 - ], - [ - -118.70638760653412, - 125.876631303267 - ], - [ - -109.14617365056819, - 133.04681951349437 - ], - [ - -94.00912198153412, - 144.200439453125 - ], - [ - -84.44890802556819, - 151.37062766335225 - ], - [ - -76.48198908025569, - 158.54087136008525 - ], - [ - -70.10853160511368, - 165.71100408380687 - ], - [ - -63.735018643465935, - 175.27121803977275 - ], - [ - -62.93828790838069, - 180.84805575284088 - ], - [ - -63.735018643465935, - 185.62816273082387 - ], - [ - -67.71845037286931, - 190.4083251953125 - ], - [ - -73.2952880859375, - 196.7817826704545 - ], - [ - -83.652177290483, - 202.35867587002838 - ], - [ - -90.82231001420456, - 203.15529563210225 - ], - [ - -97.195878462358, - 200.765214399858 - ], - [ - -101.97598544034093, - 195.985107421875 - ], - [ - -108.34949840198863, - 186.42489346590912 - ], - [ - -110.73952414772731, - 182.44146173650563 - ], - [ - -111.5362548828125, - 181.6447310014205 - ], - [ - -110.73952414772731, - 181.6447310014205 - ], - [ - -110.73952414772731, - 181.6447310014205 - ] - ], - "pressures": [ - 0.0068359375, - 0.1884765625, - 0.287109375, - 0.478515625, - 0.646484375, - 0.8154296875, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.9150390625, - 0.931640625, - 0.931640625, - 0.927734375, - 0.9296875, - 0.9404296875, - 0.9560546875, - 0.970703125, - 0.9921875, - 1, - 1, - 1, - 1, - 0.994140625, - 0.9833984375, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.9775390625, - 0.966796875, - 0.9619140625, - 0.9560546875, - 0.951171875, - 0.931640625, - 0.921875, - 0.921875, - 0.9345703125, - 0.94921875, - 0.966796875, - 0.97265625, - 0.97265625, - 0.966796875, - 0.947265625, - 0.9169921875, - 0.9150390625, - 0.87890625, - 0.791015625, - 0.6806640625, - 0.6064453125, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -110.73952414772731, - 181.6447310014205 - ] - }, - { - "id": "ZoEtq0SIG4bTisRunQHYG", - "type": "freedraw", - "x": 230.55461298954958, - "y": -166.24227964723275, - "width": 74.09190784801132, - "height": 82.85552978515625, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 903119971, - "version": 488, - "versionNonce": 1587979107, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - 0 - ], - [ - 2.390025745738626, - 0 - ], - [ - 8.763538707386374, - -0.7967307350851911 - ], - [ - 15.933726917613626, - -3.983431729403378 - ], - [ - 21.510564630681813, - -10.357000177556813 - ], - [ - 27.884022105823874, - -22.307295365767004 - ], - [ - 28.680752840909122, - -28.680808327414752 - ], - [ - 27.087346857244256, - -32.66424005681819 - ], - [ - 22.307239879261374, - -35.850996537642004 - ], - [ - 11.950295188210248, - -41.427778764204504 - ], - [ - 3.983431729403378, - -43.817859996448874 - ], - [ - -3.186756480823874, - -43.817859996448874 - ], - [ - -9.560269442471622, - -42.224454012784065 - ], - [ - -12.747025923295439, - -39.83442826704544 - ], - [ - -14.340376420454561, - -38.24102228338069 - ], - [ - -14.340376420454561, - -39.03775301846588 - ], - [ - -7.966863458806813, - -46.2078857421875 - ], - [ - -1.593405983664752, - -55.768155184659065 - ], - [ - 5.5767822265625, - -66.92177512428975 - ], - [ - 14.340376420454561, - -75.68534157492894 - ], - [ - 23.103915127840878, - -81.26215154474431 - ], - [ - 34.25753506747162, - -82.85552978515625 - ], - [ - 39.83437278053975, - -78.87209805575282 - ], - [ - 47.004560990767004, - -70.90520685369319 - ], - [ - 56.564774946732996, - -58.15823641690338 - ], - [ - 59.751531427556756, - -51.78472345525569 - ], - [ - 58.95485617897725, - -46.2078857421875 - ], - [ - 53.37801846590912, - -39.83442826704544 - ], - [ - 46.207830255681756, - -35.05426580255681 - ], - [ - 40.631048029119256, - -31.867564808238626 - ], - [ - 36.64761629971588, - -30.274158824573874 - ], - [ - 36.64761629971588, - -30.274158824573874 - ] - ], - "pressures": [ - 0.0185546875, - 0.1953125, - 0.7626953125, - 0.9130859375, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.884765625, - 0.5947265625, - 0.337890625, - 0.1943359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 36.64761629971588, - -30.274158824573874 - ] - }, - { - "id": "scISStFq4ugbNsqWzxKzm", - "type": "freedraw", - "x": 220.99434354707796, - "y": -165.44565988515888, - "width": 63.73501864346588, - "height": 72.49855735085225, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1041617261, - "version": 486, - "versionNonce": 1058142285, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983431729403435, - 1.593405983664752 - ], - [ - 11.950295188210248, - -3.983431729403378 - ], - [ - 14.340376420454561, - -7.170188210227252 - ], - [ - 17.527132901278435, - -12.746914950284065 - ], - [ - 18.323808149857996, - -17.527077414772748 - ], - [ - 17.527132901278435, - -21.510509144176126 - ], - [ - 12.747025923295496, - -23.90059037642044 - ], - [ - 8.763594193892061, - -24.697265625 - ], - [ - 3.983431729403435, - -24.697265625 - ], - [ - -0.7966752485795041, - -24.697265625 - ], - [ - -3.186756480823817, - -22.307239879261374 - ], - [ - -3.983431729403378, - -21.510509144176126 - ], - [ - -3.983431729403378, - -26.290671608664752 - ], - [ - -0.7966752485795041, - -35.85088556463069 - ], - [ - 4.780162464488683, - -50.19126198508525 - ], - [ - 11.950295188210248, - -62.93828790838069 - ], - [ - 23.103970614346622, - -70.9051513671875 - ], - [ - 28.680752840909122, - -70.9051513671875 - ], - [ - 33.46085981889212, - -70.10847611860794 - ], - [ - 39.03769753196025, - -68.515097878196 - ], - [ - 45.411210493607996, - -64.53166614879262 - ], - [ - 54.971424449573874, - -56.56477494673294 - ], - [ - 58.95485617897725, - -49.39458673650569 - ], - [ - 59.7515869140625, - -43.02107377485794 - ], - [ - 58.15818093039775, - -36.64761629971588 - ], - [ - 52.58139870383525, - -28.680697354403378 - ], - [ - 48.59796697443187, - -26.290671608664752 - ], - [ - 45.411210493607996, - -26.290671608664752 - ], - [ - 44.61447975852275, - -27.884022105823874 - ], - [ - 44.61447975852275, - -27.884022105823874 - ] - ], - "pressures": [ - 0.064453125, - 0.7646484375, - 0.9423828125, - 0.9814453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9365234375, - 0.701171875, - 0.2998046875, - 0.18359375, - 0.1328125, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 44.61447975852275, - -27.884022105823874 - ] - }, - { - "id": "lA2U6cDFcMVu-UrobaLvV", - "type": "freedraw", - "x": 269.59231052150983, - "y": -184.56614328359638, - "width": 158.54081587357962, - "height": 128.26665704900574, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 571397997, - "version": 535, - "versionNonce": 1835155203, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39008123224437, - -3.186756480823874 - ], - [ - -2.39008123224437, - -5.5767822265625 - ], - [ - -2.39008123224437, - -7.170188210227252 - ], - [ - -1.593405983664752, - -9.560213955965878 - ], - [ - 0.7966752485795041, - -11.950295188210248 - ], - [ - 5.5767822265625, - -15.933726917613626 - ], - [ - 11.15361993963063, - -19.91715864701706 - ], - [ - 16.73040216619313, - -23.103915127840878 - ], - [ - 22.307239879261374, - -25.493996360085248 - ], - [ - 29.477428089488626, - -25.493996360085248 - ], - [ - 33.460859818892004, - -24.697321111505687 - ], - [ - 36.64761629971588, - -21.510564630681813 - ], - [ - 39.83431729403401, - -15.933726917613626 - ], - [ - 41.427723277698874, - -9.560213955965878 - ], - [ - 44.61447975852275, - 0.796675248579561 - ], - [ - 47.004505504261374, - 6.373568448153435 - ], - [ - 48.597911487926126, - 9.560269442471622 - ], - [ - 50.19126198508525, - 10.357000177556813 - ], - [ - 54.174693714488626, - 11.153619939630687 - ], - [ - 56.56477494673288, - 10.357000177556813 - ], - [ - 59.751531427556756, - 7.966863458806813 - ], - [ - 63.73496315696025, - 3.983431729403435 - ], - [ - 66.12498890269887, - -1.593350497159065 - ], - [ - 71.701826615767, - -11.950295188210248 - ], - [ - 75.68531383167613, - -17.527132901278378 - ], - [ - 79.66869007457387, - -23.103915127840878 - ], - [ - 82.85550204190338, - -26.290671608664752 - ], - [ - 89.22890403053975, - -27.884022105823874 - ], - [ - 95.6024169921875, - -25.493996360085248 - ], - [ - 102.77260520241475, - -21.510564630681813 - ], - [ - 109.942793412642, - -17.527132901278378 - ], - [ - 115.51963112571025, - -13.543701171875 - ], - [ - 119.50311834161926, - -7.966863458806813 - ], - [ - 121.89314408735788, - -3.186756480823874 - ], - [ - 122.6898193359375, - 2.39013671875 - ], - [ - 122.6898193359375, - 9.560269442471622 - ], - [ - 120.29979359019887, - 22.30729536576706 - ], - [ - 118.70633212002838, - 31.070834073153435 - ], - [ - 116.31630637428975, - 39.83437278053975 - ], - [ - 113.92628062855113, - 47.00456099076706 - ], - [ - 112.332930131392, - 54.1748046875 - ], - [ - 110.73946866122151, - 62.14166814630681 - ], - [ - 110.73946866122151, - 64.53169389204544 - ], - [ - 112.332930131392, - 66.12509987571025 - ], - [ - 115.51963112571025, - 66.92171963778412 - ], - [ - 122.6898193359375, - 65.328369140625 - ], - [ - 129.86000754616475, - 61.34493741122162 - ], - [ - 136.2335205078125, - 57.36150568181819 - ], - [ - 141.81035822088063, - 52.58139870383525 - ], - [ - 145.79373446377838, - 49.394642223011374 - ], - [ - 147.3870849609375, - 43.021129261363626 - ], - [ - 146.59040971235788, - 39.03769753196025 - ], - [ - 141.81035822088063, - 33.46085981889206 - ], - [ - 136.2335205078125, - 29.477428089488626 - ], - [ - 130.65668279474426, - 27.08740234375 - ], - [ - 129.86000754616475, - 27.88407759232956 - ], - [ - 129.86000754616475, - 29.477428089488626 - ], - [ - 129.86000754616475, - 30.274158824573874 - ], - [ - 129.86000754616475, - 31.070834073153435 - ], - [ - 130.65668279474426, - 31.86750932173294 - ], - [ - 133.04670854048288, - 33.46085981889206 - ], - [ - 136.2335205078125, - 36.647616299715935 - ], - [ - 140.21689675071025, - 39.03769753196025 - ], - [ - 144.99705921519887, - 42.22450949928975 - ], - [ - 148.98054643110788, - 47.00456099076706 - ], - [ - 152.96392267400563, - 54.1748046875 - ], - [ - 155.35394841974426, - 64.53169389204544 - ], - [ - 156.15073464133525, - 73.29523259943187 - ], - [ - 151.3705721768465, - 83.652177290483 - ], - [ - 144.20038396661926, - 90.82236550071025 - ], - [ - 134.64017001065338, - 95.60247247869313 - ], - [ - 125.07984508167613, - 99.58590420809662 - ], - [ - 105.95941716974426, - 100.38263494318187 - ], - [ - 94.00906649502838, - 97.195878462358 - ], - [ - 84.4488525390625, - 92.41571599786937 - ], - [ - 77.27866432883525, - 87.63560901988637 - ], - [ - 71.701826615767, - 82.05882679332387 - ], - [ - 66.12498890269887, - 74.091963334517 - ], - [ - 64.53163840553975, - 69.31180087002838 - ], - [ - 62.93828790838063, - 66.12509987571025 - ], - [ - 62.93828790838063, - 65.328369140625 - ], - [ - 62.93828790838063, - 65.328369140625 - ] - ], - "pressures": [ - 0.111328125, - 0.2685546875, - 0.400390625, - 0.53515625, - 0.6318359375, - 0.6904296875, - 0.787109375, - 0.8466796875, - 0.859375, - 0.8681640625, - 0.8681640625, - 0.8681640625, - 0.8701171875, - 0.8740234375, - 0.8828125, - 0.861328125, - 0.7685546875, - 0.78515625, - 0.796875, - 0.8349609375, - 0.85546875, - 0.8720703125, - 0.8828125, - 0.8984375, - 0.884765625, - 0.880859375, - 0.8740234375, - 0.880859375, - 0.876953125, - 0.87890625, - 0.8876953125, - 0.8876953125, - 0.8984375, - 0.90625, - 0.908203125, - 0.908203125, - 0.9169921875, - 0.8984375, - 0.8076171875, - 0.8076171875, - 0.80078125, - 0.791015625, - 0.79296875, - 0.79296875, - 0.79296875, - 0.7783203125, - 0.7783203125, - 0.7783203125, - 0.7744140625, - 0.7744140625, - 0.78125, - 0.7763671875, - 0.7724609375, - 0.716796875, - 0.564453125, - 0.4501953125, - 0.4345703125, - 0.435546875, - 0.435546875, - 0.4306640625, - 0.4287109375, - 0.4287109375, - 0.431640625, - 0.4560546875, - 0.580078125, - 0.6552734375, - 0.677734375, - 0.712890625, - 0.7626953125, - 0.9150390625, - 0.92578125, - 0.92578125, - 0.9130859375, - 0.802734375, - 0.751953125, - 0.734375, - 0.708984375, - 0.70703125, - 0.662109375, - 0.58984375, - 0.3779296875, - 0.2607421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.93828790838063, - 65.328369140625 - ] - }, - { - "id": "Cv7UQMA94JOBB_rlOMjQY", - "type": "freedraw", - "x": 295.8829821301746, - "y": -139.95166352507363, - "width": 66.92171963778412, - "height": 42.22445401278412, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 644851715, - "version": 471, - "versionNonce": 1076324013, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -3.186756480823874 - ], - [ - 1.593350497159122, - 3.983431729403378 - ], - [ - 1.593350497159122, - 12.747025923295439 - ], - [ - 0.7966752485795041, - 21.5106201171875 - ], - [ - -3.186756480823874, - 28.680752840909122 - ], - [ - -9.560269442471622, - 34.25759055397725 - ], - [ - -18.323808149857996, - 37.444347034801126 - ], - [ - -35.05426580255687, - 39.03769753196025 - ], - [ - -45.41121049360794, - 39.03769753196025 - ], - [ - -54.17474920099431, - 37.444347034801126 - ], - [ - -62.141612659801126, - 32.6641845703125 - ], - [ - -64.53169389204544, - 30.274158824573874 - ], - [ - -65.328369140625, - 29.477483575994256 - ], - [ - -65.328369140625, - 28.680752840909122 - ], - [ - -65.328369140625, - 27.08740234375 - ], - [ - -65.328369140625, - 25.494051846590878 - ], - [ - -65.328369140625, - 24.69732111150563 - ], - [ - -65.328369140625, - 24.69732111150563 - ] - ], - "pressures": [ - 0.0107421875, - 0.2421875, - 0.73046875, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.615234375, - 0.2587890625, - 0.16015625, - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -65.328369140625, - 24.69732111150563 - ] - }, - { - "id": "WKHgu67ROCz0M-KdkuasU", - "type": "freedraw", - "x": 224.18110002790183, - "y": -112.86426118132363, - "width": 82.05877130681813, - "height": 62.93828790838069, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 332284301, - "version": 472, - "versionNonce": 1164535459, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 4.780106977982882 - ], - [ - 5.576837713068187, - 9.560213955965878 - ], - [ - 13.543701171875, - 12.746970436789752 - ], - [ - 24.697321111505687, - 15.933726917613626 - ], - [ - 35.05426580255687, - 17.527132901278378 - ], - [ - 43.817804509943244, - 17.527132901278378 - ], - [ - 54.17474920099437, - 14.340431906960248 - ], - [ - 62.141612659801126, - 8.763538707386374 - ], - [ - 70.108476118608, - 0.7966752485795041 - ], - [ - 77.27866432883525, - -8.763594193892061 - ], - [ - 81.26209605823863, - -23.103970614346622 - ], - [ - 80.46542080965912, - -30.274158824573874 - ], - [ - 78.07533957741475, - -35.850941051136374 - ], - [ - 74.88863858309662, - -39.83437278053981 - ], - [ - 70.9051513671875, - -44.61447975852275 - ], - [ - 68.51512562144887, - -45.41115500710231 - ], - [ - 67.71845037286937, - -45.41115500710231 - ], - [ - 67.71845037286937, - -44.61447975852275 - ], - [ - 67.71845037286937, - -44.61447975852275 - ] - ], - "pressures": [ - 0.0009765625, - 0.302734375, - 0.46484375, - 0.59765625, - 0.7265625, - 0.8720703125, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.92578125, - 0.642578125, - 0.3515625, - 0.2294921875, - 0.1005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 67.71845037286937, - -44.61447975852275 - ] - }, - { - "id": "DdcUqgwYG4nJayRBJz7TC", - "type": "freedraw", - "x": 232.9446387352882, - "y": -104.10072247393725, - "width": 50.191317471590935, - "height": 74.09190784801137, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 954163715, - "version": 491, - "versionNonce": 759171341, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.9834317294034918 - ], - [ - 0, - -5.5767822265625 - ], - [ - -1.593350497159065, - -3.186756480823874 - ], - [ - -3.983431729403378, - 2.390081232244256 - ], - [ - -4.780106977982939, - 9.560324928977252 - ], - [ - -4.780106977982939, - 19.1204833984375 - ], - [ - -3.983431729403378, - 28.68075284090901 - ], - [ - 0.7967307350852479, - 39.83437278053975 - ], - [ - 3.186756480823874, - 42.22445401278401 - ], - [ - 6.373512961647748, - 42.22445401278401 - ], - [ - 12.747025923295439, - 36.64761629971588 - ], - [ - 15.933782404119313, - 29.477483575994256 - ], - [ - 18.32380814985794, - 21.5106201171875 - ], - [ - 19.120538884943187, - 14.340376420454504 - ], - [ - 19.120538884943187, - 9.560324928977252 - ], - [ - 19.120538884943187, - 6.373512961647748 - ], - [ - 21.51056463068187, - 10.356944691051126 - ], - [ - 25.493996360085248, - 15.933782404119256 - ], - [ - 29.47748357599437, - 22.307239879261374 - ], - [ - 33.46091530539775, - 27.884077592329504 - ], - [ - 36.64767178622162, - 32.6641845703125 - ], - [ - 41.427778764204504, - 39.03769753196025 - ], - [ - 44.61453524502838, - 43.81780450994313 - ], - [ - 45.411210493607996, - 50.19131747159088 - ], - [ - 44.61453524502838, - 55.76809969815338 - ], - [ - 39.03769753196025, - 62.93828790838063 - ], - [ - 34.25759055397725, - 66.92171963778401 - ], - [ - 26.290727095170496, - 68.51512562144887 - ], - [ - 16.730457652698874, - 68.51512562144887 - ], - [ - 7.170188210227252, - 65.32842462713063 - ], - [ - 0.7967307350852479, - 62.141612659801126 - ], - [ - -3.186700994318187, - 58.15818093039775 - ], - [ - -3.983431729403378, - 55.76809969815338 - ], - [ - -4.780106977982939, - 53.37812943892038 - ], - [ - -4.780106977982939, - 50.19131747159088 - ], - [ - -3.983431729403378, - 49.394697709517004 - ], - [ - -2.390025745738626, - 49.394697709517004 - ], - [ - -1.593350497159065, - 50.19131747159088 - ], - [ - -1.593350497159065, - 50.19131747159088 - ] - ], - "pressures": [ - 0.001953125, - 0.08203125, - 0.1591796875, - 0.5615234375, - 0.677734375, - 0.73828125, - 0.857421875, - 0.9619140625, - 0.9921875, - 1, - 1, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.75, - 0.4140625, - 0.2060546875, - 0.142578125, - 0.109375, - 0.0517578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159065, - 50.19131747159088 - ] - }, - { - "id": "4ViPs4IwmiRTLQncpxYqC", - "type": "freedraw", - "x": 239.31815169693596, - "y": -49.12929802436338, - "width": 118.70638760653412, - "height": 137.03019575639212, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1186052909, - "version": 486, - "versionNonce": 1298831939, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -0.7966752485796178 - ], - [ - -5.5767822265625, - -0.7966752485796178 - ], - [ - -6.373512961647748, - 0.7966752485795041 - ], - [ - -6.373512961647748, - 4.780106977982882 - ], - [ - -4.780106977982996, - 14.340431906960134 - ], - [ - -2.390025745738626, - 22.307295365767004 - ], - [ - 0.7966752485795041, - 30.274158824573874 - ], - [ - 3.983431729403378, - 36.64761629971588 - ], - [ - 7.170188210227252, - 39.83437278053975 - ], - [ - 10.356944691051126, - 41.427778764204504 - ], - [ - 16.730457652698874, - 40.631048029119256 - ], - [ - 22.307239879261374, - 38.241077769886374 - ], - [ - 28.680752840909122, - 34.25759055397725 - ], - [ - 38.24102228338063, - 29.477428089488626 - ], - [ - 44.61447975852275, - 26.290727095170382 - ], - [ - 49.394642223011374, - 24.69732111150563 - ], - [ - 54.174749200994256, - 24.69732111150563 - ], - [ - 60.548262162642004, - 25.493996360085134 - ], - [ - 68.51512562144887, - 27.884077592329504 - ], - [ - 81.26209605823863, - 34.25759055397725 - ], - [ - 89.22901500355113, - 39.83437278053975 - ], - [ - 96.39914772727275, - 45.41121049360788 - ], - [ - 102.77266068892038, - 51.78466796875 - ], - [ - 109.94284889914775, - 63.73501864346588 - ], - [ - 112.33287464488637, - 74.091963334517 - ], - [ - 112.33287464488637, - 86.04231400923288 - ], - [ - 109.14617365056813, - 98.789228959517 - ], - [ - 102.77266068892038, - 109.14617365056813 - ], - [ - 86.04225852272725, - 121.09646883877838 - ], - [ - 70.10847611860788, - 128.26665704900563 - ], - [ - 54.174749200994256, - 133.04681951349426 - ], - [ - 39.03769753196025, - 136.2335205078125 - ], - [ - 32.6641845703125, - 136.2335205078125 - ], - [ - 29.477428089488626, - 133.04681951349426 - ], - [ - 26.290671608664752, - 128.26665704900563 - ], - [ - 23.103970614346622, - 123.48655007102263 - ], - [ - 21.510564630681756, - 119.50311834161926 - ], - [ - 22.307239879261374, - 118.70644309303975 - ], - [ - 22.307239879261374, - 118.70644309303975 - ] - ], - "pressures": [ - 0.099609375, - 0.330078125, - 0.4033203125, - 0.5234375, - 0.5693359375, - 0.6044921875, - 0.6640625, - 0.7705078125, - 0.826171875, - 0.884765625, - 0.9111328125, - 0.908203125, - 0.9169921875, - 0.921875, - 0.9384765625, - 0.9345703125, - 0.923828125, - 0.923828125, - 0.923828125, - 0.931640625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.9345703125, - 0.923828125, - 0.8515625, - 0.732421875, - 0.53515625, - 0.380859375, - 0.1923828125, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307239879261374, - 118.70644309303975 - ] - }, - { - "id": "iU1IY9uNamUthx8QQ3biS", - "type": "freedraw", - "x": 264.0154728084416, - "y": 74.35725204665926, - "width": 80.46542080965907, - "height": 60.548206676136374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 880921251, - "version": 477, - "versionNonce": 131424109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 3.9834317294034918 - ], - [ - -0.7966752485795041, - 5.5767822265625 - ], - [ - 1.593350497159122, - 6.373568448153492 - ], - [ - 5.576837713068244, - 7.170188210227366 - ], - [ - 9.560269442471622, - 7.170188210227366 - ], - [ - 15.933726917613626, - 5.5767822265625 - ], - [ - 27.08734685724437, - -2.390081232244256 - ], - [ - 31.070778586647748, - -11.15361993963063 - ], - [ - 32.6641845703125, - -19.917214133522634 - ], - [ - 31.867509321732996, - -25.493940873579504 - ], - [ - 28.680752840909122, - -27.884077592329504 - ], - [ - 23.10391512784099, - -28.68075284090901 - ], - [ - 15.137051669034122, - -28.68075284090901 - ], - [ - 7.170188210227252, - -27.884077592329504 - ], - [ - -0.7966752485795041, - -24.69732111150563 - ], - [ - -11.15361993963063, - -15.933726917613626 - ], - [ - -18.32380814985794, - -12.747025923295382 - ], - [ - -25.49399636008519, - -11.950295188210134 - ], - [ - -31.86750932173294, - -11.950295188210134 - ], - [ - -38.24096679687494, - -13.543645685369256 - ], - [ - -41.42772327769882, - -15.933726917613626 - ], - [ - -43.81780450994313, - -20.713889382102252 - ], - [ - -46.20788574218744, - -27.884077592329504 - ], - [ - -47.004560990767004, - -35.054265802556756 - ], - [ - -47.801236239346565, - -41.42772327769876 - ], - [ - -47.004560990767004, - -44.614479758522634 - ], - [ - -46.20788574218744, - -47.004560990767004 - ], - [ - -44.61447975852269, - -49.39458673650563 - ], - [ - -43.81780450994313, - -52.581343217329504 - ], - [ - -43.021129261363626, - -53.37801846590901 - ], - [ - -43.021129261363626, - -53.37801846590901 - ] - ], - "pressures": [ - 0.0751953125, - 0.16796875, - 0.2080078125, - 0.2490234375, - 0.306640625, - 0.40625, - 0.5322265625, - 0.697265625, - 0.7607421875, - 0.791015625, - 0.8447265625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.923828125, - 0.6572265625, - 0.4375, - 0.2744140625, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.021129261363626, - -53.37801846590901 - ] - }, - { - "id": "5X3dTgfYeWQyFj_fwclY1", - "type": "freedraw", - "x": 119.81508884182233, - "y": 16.19907111626162, - "width": 105.95941716974431, - "height": 58.95480069247162, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 417180429, - "version": 464, - "versionNonce": 306469347, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.186756480823874 - ], - [ - 1.593350497159065, - 9.560269442471508 - ], - [ - 1.593350497159065, - 11.950295188210134 - ], - [ - 3.983431729403378, - 16.730457652698874 - ], - [ - 7.170188210227252, - 23.103915127840878 - ], - [ - 16.73040216619313, - 35.850941051136374 - ], - [ - 25.49399636008519, - 42.22445401278401 - ], - [ - 33.460859818892004, - 47.004560990767004 - ], - [ - 43.021129261363626, - 49.394642223011374 - ], - [ - 54.97142444957382, - 50.98799272017038 - ], - [ - 74.88863858309657, - 51.78466796875 - ], - [ - 87.63560901988632, - 49.394642223011374 - ], - [ - 97.99249822443181, - 45.41115500710225 - ], - [ - 103.5693359375, - 39.037697531960134 - ], - [ - 105.95941716974431, - 27.884077592329504 - ], - [ - 105.95941716974431, - 19.1204833984375 - ], - [ - 103.5693359375, - 9.560269442471508 - ], - [ - 98.789228959517, - 0 - ], - [ - 94.80579723011363, - -6.373512961647748 - ], - [ - 91.61904074928975, - -7.170132723721622 - ], - [ - 91.61904074928975, - -7.170132723721622 - ] - ], - "pressures": [ - 0.0703125, - 0.119140625, - 0.189453125, - 0.216796875, - 0.2841796875, - 0.3935546875, - 0.55078125, - 0.638671875, - 0.71875, - 0.83203125, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.966796875, - 0.7607421875, - 0.3779296875, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 91.61904074928975, - -7.170132723721622 - ] - }, - { - "id": "EY3G1JzUimiSCkPKsQ9AT", - "type": "freedraw", - "x": 220.19766829849846, - "y": 56.83017463188662, - "width": 46.2078857421875, - "height": 23.900590376420496, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2137001677, - "version": 457, - "versionNonce": 1714481613, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -12.746970436789809, - -19.120538884943244 - ], - [ - -16.730457652698874, - -19.917158647017118 - ], - [ - -27.087346857244313, - -18.323863636363626 - ], - [ - -29.477372602982996, - -15.933726917613626 - ], - [ - -32.6641845703125, - -13.543756658380744 - ], - [ - -37.44423606178981, - -7.96686345880687 - ], - [ - -41.42766779119319, - -2.39013671875 - ], - [ - -43.81780450994319, - 1.5933504971590082 - ], - [ - -45.41115500710231, - 3.983431729403378 - ], - [ - -46.2078857421875, - 3.983431729403378 - ], - [ - -45.41115500710231, - 3.983431729403378 - ], - [ - -44.61447975852275, - 3.18670099431813 - ], - [ - -43.81780450994319, - 2.390025745738626 - ], - [ - -43.81780450994319, - 2.390025745738626 - ] - ], - "pressures": [ - 0.0869140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2431640625, - 0.17578125, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.81780450994319, - 2.390025745738626 - ] - }, - { - "id": "DO3ezMkSybgmbwfk__0wz", - "type": "freedraw", - "x": 177.97321428571433, - "y": 53.643362664557, - "width": 73.29523259943181, - "height": 84.4488525390625, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 58372557, - "version": 468, - "versionNonce": 17114499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.186811967329618 - ], - [ - 0, - 7.170243696732996 - ], - [ - -2.390025745738626, - 11.950350674715992 - ], - [ - -7.170132723721565, - 16.730457652698874 - ], - [ - -16.730402166193187, - 23.103970614346622 - ], - [ - -20.713833895596565, - 24.697321111505744 - ], - [ - -33.460859818892004, - 24.697321111505744 - ], - [ - -42.22439852627838, - 19.917214133522748 - ], - [ - -51.78466796875, - 13.543701171875 - ], - [ - -62.938232421875, - 3.186811967329618 - ], - [ - -66.92166415127838, - -3.983431729403378 - ], - [ - -70.10847611860794, - -11.15361993963063 - ], - [ - -72.49850186434657, - -19.1204833984375 - ], - [ - -73.29523259943181, - -31.070778586647748 - ], - [ - -73.29523259943181, - -39.83437278053975 - ], - [ - -73.29523259943181, - -47.004560990767004 - ], - [ - -71.701826615767, - -52.581287730823874 - ], - [ - -70.10847611860794, - -56.56471946022725 - ], - [ - -68.51507013494319, - -58.15818093039775 - ], - [ - -67.71839488636363, - -58.95485617897725 - ], - [ - -66.92166415127838, - -59.751531427556756 - ], - [ - -66.1250443892045, - -59.751531427556756 - ], - [ - -64.53163840553975, - -59.751531427556756 - ], - [ - -63.73496315696019, - -59.751531427556756 - ], - [ - -63.73496315696019, - -58.95485617897725 - ], - [ - -63.73496315696019, - -58.95485617897725 - ] - ], - "pressures": [ - 0.0615234375, - 0.62890625, - 0.6923828125, - 0.82421875, - 0.9404296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.9775390625, - 0.921875, - 0.740234375, - 0.4052734375, - 0.33203125, - 0.255859375, - 0.2060546875, - 0.1435546875, - 0.091796875, - 0.0107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -63.73496315696019, - -58.95485617897725 - ] - }, - { - "id": "R6sV6DTBzI5fmR5Kq09V7", - "type": "freedraw", - "x": 217.80758706625414, - "y": 52.84674290248313, - "width": 70.10842063210225, - "height": 35.850941051136374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 762824269, - "version": 460, - "versionNonce": 1500260397, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244313, - 0.796619762073874 - ], - [ - 2.390081232244313, - 4.780051491477366 - ], - [ - 3.186756480823817, - 9.560213955965992 - ], - [ - 2.390081232244313, - 16.730402166193244 - ], - [ - 0, - 23.103859641335248 - ], - [ - -3.983431729403435, - 28.68069735440349 - ], - [ - -15.136996182528435, - 35.054210316051126 - ], - [ - -27.884022105823874, - 35.850941051136374 - ], - [ - -40.63104802911931, - 35.850941051136374 - ], - [ - -54.17469371448868, - 32.66412908380687 - ], - [ - -59.75153142755681, - 30.2740478515625 - ], - [ - -62.14161265980118, - 27.087291370738626 - ], - [ - -64.53163840553981, - 23.900590376420496 - ], - [ - -65.328369140625, - 21.510509144176126 - ], - [ - -66.12504438920456, - 19.917158647017118 - ], - [ - -66.92166415127843, - 17.527077414772748 - ], - [ - -66.92166415127843, - 16.730402166193244 - ], - [ - -66.92166415127843, - 16.730402166193244 - ] - ], - "pressures": [ - 0.06640625, - 0.3134765625, - 0.48046875, - 0.6787109375, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.97265625, - 0.8447265625, - 0.5849609375, - 0.4208984375, - 0.169921875, - 0.111328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -66.92166415127843, - 16.730402166193244 - ] - }, - { - "id": "hMOhvcZDAhN_j_BeLGY1l", - "type": "freedraw", - "x": 124.59519581980527, - "y": 16.995801851346755, - "width": 43.02107377485794, - "height": 85.24558327414775, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1445509645, - "version": 464, - "versionNonce": 1626045731, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -3.186811967329504 - ], - [ - -5.5767822265625, - -3.186811967329504 - ], - [ - -7.966863458806813, - -1.593405983664752 - ], - [ - -10.356944691051126, - 6.373457475142118 - ], - [ - -11.950295188210248, - 15.136996182528492 - ], - [ - -11.950295188210248, - 24.697265625 - ], - [ - -11.950295188210248, - 42.22439852627849 - ], - [ - -10.356944691051126, - 54.17469371448874 - ], - [ - -8.763594193892061, - 65.32831365411937 - ], - [ - -6.373512961647748, - 74.09190784801137 - ], - [ - -2.390081232244313, - 78.87201482599437 - ], - [ - 6.373512961647691, - 81.262040571733 - ], - [ - 12.746970436789752, - 82.05877130681824 - ], - [ - 19.1204833984375, - 81.262040571733 - ], - [ - 24.697321111505687, - 78.87201482599437 - ], - [ - 27.884022105823874, - 74.88858309659099 - ], - [ - 31.07077858664769, - 67.71845037286937 - ], - [ - 31.07077858664769, - 62.938232421875 - ], - [ - 31.07077858664769, - 59.75153142755687 - ], - [ - 31.07077858664769, - 56.564774946732996 - ], - [ - 30.274158824573874, - 54.17469371448874 - ], - [ - 28.680752840909065, - 51.78466796875 - ], - [ - 27.884022105823874, - 51.78466796875 - ], - [ - 27.884022105823874, - 51.78466796875 - ] - ], - "pressures": [ - 0.0615234375, - 0.1845703125, - 0.26953125, - 0.4541015625, - 0.61328125, - 0.6494140625, - 0.69921875, - 0.796875, - 0.8173828125, - 0.828125, - 0.826171875, - 0.82421875, - 0.8154296875, - 0.8154296875, - 0.822265625, - 0.8154296875, - 0.8095703125, - 0.796875, - 0.7783203125, - 0.576171875, - 0.3291015625, - 0.2177734375, - 0.1435546875, - 0.064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884022105823874, - 51.78466796875 - ] - }, - { - "id": "fd53-XOb09z9byNUgfvrY", - "type": "freedraw", - "x": 154.0726239092939, - "y": 67.98373908501162, - "width": 66.12504438920456, - "height": 90.02557927911926, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1125391459, - "version": 460, - "versionNonce": 326146701, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -26.290671608664752, - 15.137051669034008 - ], - [ - -42.224454012784065, - 14.340376420454504 - ], - [ - -46.2078857421875, - 13.543701171875 - ], - [ - -52.58134321732956, - 11.15361993963063 - ], - [ - -58.954800692471565, - 3.186756480823874 - ], - [ - -62.938232421875, - -5.5767822265625 - ], - [ - -65.328369140625, - -14.340376420454618 - ], - [ - -66.12504438920456, - -23.103859641335248 - ], - [ - -66.12504438920456, - -37.444291548295496 - ], - [ - -64.53169389204544, - -46.20783025568187 - ], - [ - -62.141612659801126, - -54.971368963068244 - ], - [ - -59.75153142755681, - -61.34493741122162 - ], - [ - -57.36150568181819, - -67.71839488636363 - ], - [ - -53.37807395241475, - -72.49855735085237 - ], - [ - -51.78466796875, - -74.09190784801137 - ], - [ - -50.19131747159088, - -74.88852761008525 - ], - [ - -47.801236239346565, - -74.88852761008525 - ], - [ - -44.61447975852275, - -74.88852761008525 - ], - [ - -43.02107377485794, - -74.88852761008525 - ], - [ - -43.02107377485794, - -74.88852761008525 - ] - ], - "pressures": [ - 0.0205078125, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.951171875, - 0.9423828125, - 0.9384765625, - 0.92578125, - 0.90234375, - 0.857421875, - 0.744140625, - 0.4921875, - 0.3642578125, - 0.291015625, - 0.2373046875, - 0.169921875, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.02107377485794, - -74.88852761008525 - ] - }, - { - "id": "Oa9tDHGOSSleay6v_ooms", - "type": "freedraw", - "x": 194.7037274249189, - "y": -60.28291796399412, - "width": 38.240966796875, - "height": 68.51512562144887, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 986832685, - "version": 473, - "versionNonce": 224780483, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796619762073874, - 3.186756480823874 - ], - [ - 3.186700994318187, - 8.763594193892118 - ], - [ - 5.5767822265625, - 15.137051669034122 - ], - [ - 6.373457475142061, - 20.713889382102252 - ], - [ - 5.5767822265625, - 25.494051846590878 - ], - [ - 2.390025745738626, - 29.47748357599437 - ], - [ - 0, - 30.274103338068244 - ], - [ - -3.186811967329561, - 30.274103338068244 - ], - [ - -7.170243696732939, - 27.884077592329618 - ], - [ - -12.747025923295439, - 22.307239879261374 - ], - [ - -15.137107155539752, - 18.323808149857996 - ], - [ - -16.73051313920456, - 15.933726917613626 - ], - [ - -18.323863636363626, - 13.543756658380744 - ], - [ - -19.120538884943187, - 13.543756658380744 - ], - [ - -20.71394486860794, - 13.543756658380744 - ], - [ - -22.30729536576706, - 17.527188387784122 - ], - [ - -23.103970614346565, - 23.900645862926126 - ], - [ - -23.900645862926126, - 33.46091530539775 - ], - [ - -23.103970614346565, - 48.597911487926126 - ], - [ - -20.71394486860794, - 55.76809969815338 - ], - [ - -16.73051313920456, - 62.141612659801126 - ], - [ - -11.153675426136374, - 66.12504438920462 - ], - [ - -3.983431729403435, - 68.51512562144887 - ], - [ - 5.5767822265625, - 66.92171963778412 - ], - [ - 10.356889204545439, - 62.938287908380744 - ], - [ - 12.746970436789752, - 57.361561168323874 - ], - [ - 14.340320933948874, - 51.78466796875 - ], - [ - 14.340320933948874, - 43.021129261363626 - ], - [ - 13.543645685369313, - 38.241022283380744 - ], - [ - 12.746970436789752, - 35.05426580255687 - ], - [ - 11.950295188210248, - 33.46091530539775 - ], - [ - 11.153564453125, - 33.46091530539775 - ], - [ - 11.153564453125, - 33.46091530539775 - ] - ], - "pressures": [ - 0.0673828125, - 0.4189453125, - 0.5185546875, - 0.6953125, - 0.791015625, - 0.8515625, - 0.90625, - 0.947265625, - 0.9599609375, - 0.9755859375, - 0.9775390625, - 0.970703125, - 0.966796875, - 0.96875, - 0.9775390625, - 0.994140625, - 0.994140625, - 0.994140625, - 0.994140625, - 0.9619140625, - 0.951171875, - 0.931640625, - 0.90625, - 0.8701171875, - 0.8388671875, - 0.830078125, - 0.826171875, - 0.794921875, - 0.51171875, - 0.287109375, - 0.1640625, - 0.125, - 0.0048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153564453125, - 33.46091530539775 - ] - }, - { - "id": "5B95VtKwjDwwzHZjhA9DL", - "type": "freedraw", - "x": 295.08625139508933, - "y": -130.39133859609638, - "width": 60.548262162642004, - "height": 34.25747958096588, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 776218317, - "version": 458, - "versionNonce": 1291305197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 4.780051491477252 - ], - [ - 1.593405983664752, - 9.560213955965935 - ], - [ - 3.983487215909122, - 15.136996182528378 - ], - [ - 9.560269442471622, - 22.30718439275563 - ], - [ - 13.543701171875, - 27.087291370738626 - ], - [ - 19.120538884943244, - 30.2740478515625 - ], - [ - 25.493996360085248, - 32.66412908380687 - ], - [ - 32.6641845703125, - 34.25747958096588 - ], - [ - 43.02118474786937, - 34.25747958096588 - ], - [ - 49.394586736505744, - 30.2740478515625 - ], - [ - 54.971424449573874, - 25.493940873579504 - ], - [ - 58.954911665482996, - 21.510509144176126 - ], - [ - 60.548262162642004, - 17.527077414772748 - ], - [ - 60.548262162642004, - 15.933726917613626 - ], - [ - 59.7515869140625, - 14.340320933948874 - ], - [ - 57.361561168323874, - 12.746914950284122 - ], - [ - 55.76809969815338, - 11.950295188210248 - ], - [ - 55.76809969815338, - 11.950295188210248 - ] - ], - "pressures": [ - 0.015625, - 0.333984375, - 0.5458984375, - 0.736328125, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.697265625, - 0.2783203125, - 0.1455078125, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.76809969815338, - 11.950295188210248 - ] - }, - { - "id": "jMDAugMiCGkjntjc2Vcko", - "type": "freedraw", - "x": 311.0200337992087, - "y": -135.171501060585, - "width": 40.630992542613626, - "height": 22.307239879261374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 42342883, - "version": 457, - "versionNonce": 1880281187, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - 3.983431729403378 - ], - [ - 0.7966752485795041, - 7.170188210227252 - ], - [ - 3.186756480823874, - 10.356889204545439 - ], - [ - 7.966863458806756, - 15.933726917613626 - ], - [ - 11.15361993963063, - 18.323808149857996 - ], - [ - 14.340376420454504, - 19.917158647017004 - ], - [ - 17.527132901278378, - 21.510564630681756 - ], - [ - 22.307239879261374, - 22.307239879261374 - ], - [ - 28.68075284090901, - 21.510564630681756 - ], - [ - 33.460804332386374, - 19.1204833984375 - ], - [ - 37.44429154829538, - 15.933726917613626 - ], - [ - 39.037642045454504, - 14.340376420454561 - ], - [ - 39.83431729403401, - 11.950295188210248 - ], - [ - 39.83431729403401, - 10.356889204545439 - ], - [ - 39.83431729403401, - 8.763594193892061 - ], - [ - 39.037642045454504, - 7.966863458806813 - ], - [ - 39.037642045454504, - 7.966863458806813 - ] - ], - "pressures": [ - 0.1044921875, - 0.4267578125, - 0.6025390625, - 0.7421875, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.75, - 0.4775390625, - 0.2333984375, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.037642045454504, - 7.966863458806813 - ] - }, - { - "id": "93kydbXAksB0CTNjoNK72", - "type": "freedraw", - "x": 307.0366020698052, - "y": -135.171501060585, - "width": 47.00456099076712, - "height": 30.27410333806813, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1344096067, - "version": 450, - "versionNonce": 1804278605, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 25.493996360085248, - 30.27410333806813 - ], - [ - 33.46085981889212, - 30.27410333806813 - ], - [ - 38.241022283380744, - 27.087346857244256 - ], - [ - 41.427723277698874, - 22.307239879261374 - ], - [ - 44.61442427201712, - 18.323808149857996 - ], - [ - 47.00456099076712, - 13.543645685369313 - ], - [ - 47.00456099076712, - 11.950295188210248 - ], - [ - 47.00456099076712, - 10.356889204545439 - ], - [ - 46.2078857421875, - 9.560213955965878 - ], - [ - 46.2078857421875, - 9.560213955965878 - ] - ], - "pressures": [ - 0.0107421875, - 1, - 1, - 1, - 1, - 1, - 0.6591796875, - 0.384765625, - 0.2060546875, - 0.109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 46.2078857421875, - 9.560213955965878 - ] - }, - { - "id": "Zf95nDvqcOQpEVfber6Jz", - "type": "freedraw", - "x": 290.30614441710634, - "y": -181.3793868027725, - "width": 56.564830433238626, - "height": 50.98799272017044, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 617462019, - "version": 462, - "versionNonce": 985713667, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -0.796619762073874 - ], - [ - -1.5933504971590082, - -1.593350497159122 - ], - [ - -1.5933504971590082, - -3.186756480823874 - ], - [ - -1.5933504971590082, - -6.373512961647748 - ], - [ - -1.5933504971590082, - -10.356944691051126 - ], - [ - -0.7966752485795041, - -14.340376420454561 - ], - [ - 2.39008123224437, - -16.730457652698874 - ], - [ - 11.153619939630744, - -18.32380814985794 - ], - [ - 18.323808149857996, - -19.1204833984375 - ], - [ - 23.90064586292624, - -20.713889382102252 - ], - [ - 29.47742808948874, - -22.307239879261374 - ], - [ - 32.6641845703125, - -22.307239879261374 - ], - [ - 38.241022283380744, - -20.713889382102252 - ], - [ - 43.817804509943244, - -15.933726917613626 - ], - [ - 49.394642223011374, - -9.560269442471622 - ], - [ - 53.37801846590912, - -1.593350497159122 - ], - [ - 54.97147993607962, - 11.950295188210248 - ], - [ - 53.37801846590912, - 18.32380814985794 - ], - [ - 50.987992720170496, - 23.103970614346565 - ], - [ - 46.20783025568187, - 27.08740234375 - ], - [ - 43.817804509943244, - 27.88407759232956 - ], - [ - 41.427723277698874, - 28.680752840909065 - ], - [ - 41.427723277698874, - 27.88407759232956 - ], - [ - 41.427723277698874, - 27.88407759232956 - ] - ], - "pressures": [ - 0.1103515625, - 0.24609375, - 0.310546875, - 0.48828125, - 0.703125, - 0.8681640625, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.728515625, - 0.3935546875, - 0.189453125, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.427723277698874, - 27.88407759232956 - ] - }, - { - "id": "dxS3IVZ9eCxoW5CvjQKXs", - "type": "freedraw", - "x": 284.72936219054384, - "y": -177.39595507336912, - "width": 129.06333229758525, - "height": 106.75609241832387, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 931885741, - "version": 486, - "versionNonce": 1736714669, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -2.390081232244313 - ], - [ - -4.780162464488626, - -4.780051491477252 - ], - [ - -4.780162464488626, - -7.170188210227252 - ], - [ - -3.983431729403378, - -11.15361993963063 - ], - [ - 0, - -14.340376420454504 - ], - [ - 6.373457475142118, - -19.1204833984375 - ], - [ - 13.54364568536937, - -24.69732111150563 - ], - [ - 21.51056463068187, - -30.27410333806813 - ], - [ - 29.47742808948874, - -34.257535067471565 - ], - [ - 39.03764204545462, - -37.44429154829544 - ], - [ - 43.817804509943244, - -38.240966796875 - ], - [ - 48.59791148792624, - -36.64761629971588 - ], - [ - 54.971424449573874, - -31.86750932173294 - ], - [ - 58.15812544389212, - -28.680752840909065 - ], - [ - 59.75147594105124, - -24.69732111150563 - ], - [ - 59.75147594105124, - -19.1204833984375 - ], - [ - 59.75147594105124, - -10.356944691051126 - ], - [ - 59.75147594105124, - -2.390081232244313 - ], - [ - 59.75147594105124, - 6.373512961647748 - ], - [ - 61.34493741122162, - 11.153675426136374 - ], - [ - 64.53163840553987, - 15.137107155539809 - ], - [ - 71.70182661576712, - 17.527132901278435 - ], - [ - 78.07533957741487, - 18.323808149857996 - ], - [ - 84.4488525390625, - 15.137107155539809 - ], - [ - 90.82236550071025, - 9.560269442471622 - ], - [ - 95.6024169921875, - 3.186811967329561 - ], - [ - 97.9925537109375, - -2.390081232244313 - ], - [ - 98.78922895951712, - -7.170188210227252 - ], - [ - 98.78922895951712, - -8.763538707386317 - ], - [ - 97.195878462358, - -9.560213955965878 - ], - [ - 95.6024169921875, - -11.15361993963063 - ], - [ - 97.195878462358, - -9.560213955965878 - ], - [ - 100.38257945667624, - -6.373512961647691 - ], - [ - 105.16274192116487, - 0 - ], - [ - 115.51963112571025, - 13.543701171875 - ], - [ - 120.29979359019887, - 21.51056463068187 - ], - [ - 123.48649458451712, - 29.477428089488683 - ], - [ - 124.28316983309662, - 37.444291548295496 - ], - [ - 121.893144087358, - 49.394642223011374 - ], - [ - 116.31630637428987, - 56.56483043323868 - ], - [ - 106.75609241832387, - 62.938343394886374 - ], - [ - 96.39909224076712, - 66.92177512428975 - ], - [ - 86.83887828480124, - 68.51512562144887 - ], - [ - 77.27866432883525, - 66.92177512428975 - ], - [ - 73.29517711292624, - 66.12504438920462 - ], - [ - 71.70182661576712, - 64.5316938920455 - ], - [ - 72.49850186434662, - 64.5316938920455 - ], - [ - 72.49850186434662, - 64.5316938920455 - ] - ], - "pressures": [ - 0.01171875, - 0.2158203125, - 0.3271484375, - 0.5, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.9453125, - 0.677734375, - 0.4365234375, - 0.2470703125, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 72.49850186434662, - 64.5316938920455 - ] - }, - { - "id": "Yo4nkHOdPtCXhA-aCsUa2", - "type": "freedraw", - "x": 362.0080265193791, - "y": -211.6534901408407, - "width": 203.15529563210225, - "height": 155.35403164950282, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1179303437, - "version": 483, - "versionNonce": 1634620323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - -9.560269442471565 - ], - [ - 4.780162464488626, - -23.900645862926126 - ], - [ - 5.576837713068244, - -28.680752840909065 - ], - [ - 7.96686345880687, - -33.460887562144876 - ], - [ - 8.763538707386374, - -34.25756281072444 - ], - [ - 8.763538707386374, - -35.05426580255681 - ], - [ - 8.763538707386374, - -34.25756281072444 - ], - [ - 10.356889204545496, - -30.274131081321002 - ], - [ - 12.747025923295496, - -21.510564630681813 - ], - [ - 22.307239879261374, - 3.983431729403435 - ], - [ - 31.070778586647748, - 25.493996360085248 - ], - [ - 39.83431729403412, - 44.61447975852275 - ], - [ - 45.41115500710225, - 55.768099698153435 - ], - [ - 47.80118075284099, - 54.971424449573874 - ], - [ - 51.78466796875, - 32.6641845703125 - ], - [ - 55.76815518465912, - 9.560213955965935 - ], - [ - 59.75153142755687, - -14.340376420454561 - ], - [ - 62.141557173295496, - -35.05426580255681 - ], - [ - 65.32848011363637, - -58.15818093039775 - ], - [ - 66.92171963778412, - -65.328369140625 - ], - [ - 70.10842063210225, - -64.53169389204544 - ], - [ - 75.6852583451705, - -55.76812744140625 - ], - [ - 82.05877130681824, - -39.83437278053975 - ], - [ - 90.82231001420462, - -6.373512961647748 - ], - [ - 95.60247247869324, - 18.32380814985794 - ], - [ - 99.58584872159099, - 37.444347034801126 - ], - [ - 101.97598544034099, - 47.801236239346565 - ], - [ - 102.7726606889205, - 46.20783025568181 - ], - [ - 103.5693359375, - 35.850941051136374 - ], - [ - 105.1627974076705, - 19.1204833984375 - ], - [ - 109.14628462357962, - -3.983431729403435 - ], - [ - 118.70638760653412, - -30.274131081321002 - ], - [ - 144.200439453125, - -66.12507213245738 - ], - [ - 164.91432883522725, - -78.87204256924713 - ], - [ - 181.6447310014205, - -78.87204256924713 - ], - [ - 192.79840642755687, - -68.51512562144887 - ], - [ - 200.76526988636363, - -43.81780450994319 - ], - [ - 203.15529563210225, - -24.697321111505687 - ], - [ - 203.15529563210225, - -3.186756480823874 - ], - [ - 201.56183416193187, - 19.1204833984375 - ], - [ - 199.17180841619324, - 40.63104802911931 - ], - [ - 191.20494495738637, - 65.328369140625 - ], - [ - 184.03475674715912, - 74.09190784801137 - ], - [ - 179.2545942826705, - 76.48198908025569 - ], - [ - 179.2545942826705, - 75.68525834517044 - ], - [ - 179.2545942826705, - 75.68525834517044 - ] - ], - "pressures": [ - 0.0693359375, - 0.095703125, - 0.2041015625, - 0.251953125, - 0.357421875, - 0.41015625, - 0.58984375, - 0.6953125, - 0.7109375, - 0.73046875, - 0.748046875, - 0.7568359375, - 0.783203125, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.97265625, - 0.9404296875, - 0.9365234375, - 0.9365234375, - 0.8701171875, - 0.7763671875, - 0.546875, - 0.322265625, - 0.203125, - 0.0986328125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 179.2545942826705, - 75.68525834517044 - ] - }, - { - "id": "UuVLFP90k0Nm7IlXiGLeW", - "type": "freedraw", - "x": 228.96120700588483, - "y": -178.9893055705282, - "width": 10.356944691051183, - "height": 9.560269442471622, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1487827309, - "version": 444, - "versionNonce": 1913416717, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738683, - 3.186756480823874 - ], - [ - -0.796675248579561, - 3.186756480823874 - ], - [ - 3.186756480823817, - 2.390025745738626 - ], - [ - 5.57683771306813, - -0.7967307350852479 - ], - [ - 7.170188210227252, - -3.983431729403435 - ], - [ - 7.9669189453125, - -6.373512961647748 - ], - [ - 7.9669189453125, - -6.373512961647748 - ] - ], - "pressures": [ - 0.064453125, - 0.3984375, - 0.4970703125, - 0.6806640625, - 0.8427734375, - 0.951171875, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.9669189453125, - -6.373512961647748 - ] - }, - { - "id": "brcsCYfE4oQc1mwsp6lIU", - "type": "freedraw", - "x": 236.92812595119733, - "y": -187.75289976442025, - "width": 43.81780450994319, - "height": 35.054210316051126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 244637283, - "version": 453, - "versionNonce": 1414129475, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -15.137107155539809, - -14.340376420454504 - ], - [ - -7.170188210227309, - -27.087346857244313 - ], - [ - 0.7966752485795041, - -31.07077858664769 - ], - [ - 13.543645685369313, - -35.054210316051126 - ], - [ - 18.323808149857882, - -35.054210316051126 - ], - [ - 21.510509144176126, - -34.257535067471565 - ], - [ - 23.103915127840878, - -31.07077858664769 - ], - [ - 24.697265625, - -20.713833895596565 - ], - [ - 26.290671608664752, - -13.543645685369313 - ], - [ - 27.087346857244256, - -7.170188210227252 - ], - [ - 27.884022105823874, - -3.186756480823874 - ], - [ - 28.680697354403378, - 0 - ], - [ - 27.087346857244256, - 0 - ], - [ - 23.103915127840878, - -1.593350497159065 - ], - [ - 19.917158647017004, - -4.780106977982939 - ], - [ - 17.527077414772748, - -6.373457475142004 - ], - [ - 16.73040216619313, - -7.170188210227252 - ], - [ - 16.73040216619313, - -7.170188210227252 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.796875, - 0.71875, - 0.701171875, - 0.56640625, - 0.3740234375, - 0.2294921875, - 0.1650390625, - 0.13671875, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 16.73040216619313, - -7.170188210227252 - ] - }, - { - "id": "3eZg_AQ2tGsI6agDq9MSf", - "type": "freedraw", - "x": 230.55461298954958, - "y": -184.56614328359638, - "width": 62.141612659801126, - "height": 71.70193758877838, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 851327213, - "version": 471, - "versionNonce": 1528652397, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 2.39013671875 - ], - [ - -3.186756480823874, - 2.39013671875 - ], - [ - 0, - 2.39013671875 - ], - [ - 4.780106977982939, - 2.39013671875 - ], - [ - 11.950295188210248, - -1.593350497159065 - ], - [ - 16.730402166193187, - -6.373512961647748 - ], - [ - 19.1204833984375, - -12.746970436789752 - ], - [ - 19.91715864701706, - -19.1204833984375 - ], - [ - 19.91715864701706, - -23.103915127840878 - ], - [ - 14.340376420454561, - -25.493996360085248 - ], - [ - 8.763538707386374, - -25.493996360085248 - ], - [ - 3.983431729403378, - -25.493996360085248 - ], - [ - -0.796675248579561, - -23.103915127840878 - ], - [ - -7.170188210227252, - -19.91715864701706 - ], - [ - -9.560269442471622, - -18.32380814985794 - ], - [ - -10.356944691051126, - -18.32380814985794 - ], - [ - -10.356944691051126, - -21.510564630681813 - ], - [ - -7.170188210227252, - -31.86750932173294 - ], - [ - -2.390081232244313, - -46.20785799893463 - ], - [ - 6.373512961647748, - -58.95485617897725 - ], - [ - 21.510564630681813, - -68.515097878196 - ], - [ - 30.27410333806813, - -69.31180087002838 - ], - [ - 36.64761629971588, - -65.32834139737213 - ], - [ - 41.427723277698874, - -59.75153142755681 - ], - [ - 46.207830255681756, - -52.58134321732956 - ], - [ - 50.987992720170496, - -39.83437278053975 - ], - [ - 51.78466796875, - -31.86750932173294 - ], - [ - 50.987992720170496, - -23.90059037642044 - ], - [ - 45.41115500710225, - -19.1204833984375 - ], - [ - 35.850941051136374, - -15.933726917613626 - ], - [ - 31.070778586647748, - -15.137051669034065 - ], - [ - 27.884022105823874, - -15.137051669034065 - ], - [ - 26.290671608664752, - -15.137051669034065 - ], - [ - 26.290671608664752, - -14.340376420454561 - ], - [ - 27.087346857244256, - -14.340376420454561 - ], - [ - 27.087346857244256, - -14.340376420454561 - ] - ], - "pressures": [ - 0.0087890625, - 0.1533203125, - 0.396484375, - 0.6240234375, - 0.783203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.78125, - 0.4462890625, - 0.234375, - 0.11328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.087346857244256, - -14.340376420454561 - ] - }, - { - "id": "S1ayuOrh6ft002QMe8mmI", - "type": "freedraw", - "x": 244.09831416142458, - "y": -195.71976322322706, - "width": 101.97598544034093, - "height": 102.77266068892044, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1219087459, - "version": 466, - "versionNonce": 1748316803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -31.070834073153435, - 27.08740234375 - ], - [ - -36.647616299715935, - 43.021129261363626 - ], - [ - -42.22445401278412, - 47.80123623934662 - ], - [ - -47.00456099076706, - 50.191317471590935 - ], - [ - -50.98799272017044, - 52.58134321732956 - ], - [ - -56.564830433238626, - 53.37812943892044 - ], - [ - -59.7515869140625, - 51.78466796875 - ], - [ - -62.938343394886374, - 48.597911487926126 - ], - [ - -65.32831365411931, - 43.81780450994319 - ], - [ - -66.92177512428975, - 39.03769753196025 - ], - [ - -69.31180087002843, - 33.46091530539775 - ], - [ - -70.10853160511363, - 31.86750932173294 - ], - [ - -74.09196333451706, - 30.274103338068187 - ], - [ - -78.07539506392044, - 28.680752840909122 - ], - [ - -81.26209605823863, - 28.680752840909122 - ], - [ - -86.04225852272725, - 28.680752840909122 - ], - [ - -89.22895951704544, - 33.46091530539775 - ], - [ - -93.21239124644887, - 39.83437278053981 - ], - [ - -97.19582297585225, - 46.2078857421875 - ], - [ - -101.17925470525569, - 58.95485617897731 - ], - [ - -101.97598544034093, - 67.71845037286931 - ], - [ - -101.97598544034093, - 77.27871981534093 - ], - [ - -100.38263494318181, - 86.04225852272731 - ], - [ - -94.80579723011363, - 94.80579723011368 - ], - [ - -90.02569025213069, - 98.78922895951706 - ], - [ - -82.85550204190343, - 101.17936567826706 - ], - [ - -75.68531383167613, - 102.77266068892044 - ], - [ - -69.31180087002843, - 102.77266068892044 - ], - [ - -60.54826216264206, - 100.38263494318181 - ], - [ - -55.76815518465912, - 97.19593394886368 - ], - [ - -52.58139870383525, - 93.21244673295456 - ], - [ - -52.58139870383525, - 90.82236550071019 - ], - [ - -52.58139870383525, - 90.82236550071019 - ] - ], - "pressures": [ - 0.880859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.26953125, - 0.107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -52.58139870383525, - 90.82236550071019 - ] - }, - { - "id": "GFboAWzYc_q-iueYvgxYH", - "type": "freedraw", - "x": 240.11482694551546, - "y": -182.97273729993162, - "width": 97.19587846235794, - "height": 93.21239124644882, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1903398659, - "version": 480, - "versionNonce": 1187998509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - -1.593405983664752 - ], - [ - 0, - -3.186756480823817 - ], - [ - -1.593350497159065, - -4.780162464488626 - ], - [ - -4.780106977982939, - -7.170188210227252 - ], - [ - -10.356889204545439, - -9.560269442471565 - ], - [ - -19.917158647017004, - -14.340376420454504 - ], - [ - -26.290671608664752, - -16.730457652698817 - ], - [ - -32.66412908380681, - -18.32380814985794 - ], - [ - -41.42766779119313, - -18.32380814985794 - ], - [ - -44.61447975852269, - -18.32380814985794 - ], - [ - -47.00450550426132, - -17.527132901278378 - ], - [ - -47.00450550426132, - -15.933782404119313 - ], - [ - -47.00450550426132, - -11.15361993963063 - ], - [ - -41.42766779119313, - 0.7967307350852479 - ], - [ - -38.240966796875, - 7.96686345880687 - ], - [ - -37.44423606178975, - 13.54364568536937 - ], - [ - -37.44423606178975, - 16.730457652698874 - ], - [ - -39.037642045454504, - 19.1204833984375 - ], - [ - -47.00450550426132, - 21.510509144176183 - ], - [ - -53.37796297940338, - 22.307239879261374 - ], - [ - -59.75153142755681, - 21.510509144176183 - ], - [ - -63.73496315696019, - 17.527077414772748 - ], - [ - -68.51507013494313, - 7.96686345880687 - ], - [ - -69.31174538352269, - 0 - ], - [ - -70.10847611860794, - -6.373512961647691 - ], - [ - -70.10847611860794, - -9.560269442471565 - ], - [ - -70.10847611860794, - -10.356944691051126 - ], - [ - -72.49850186434657, - -10.356944691051126 - ], - [ - -75.68525834517044, - -9.560269442471565 - ], - [ - -79.66869007457382, - -7.170188210227252 - ], - [ - -86.83887828480113, - 0.7967307350852479 - ], - [ - -90.8223100142045, - 10.356889204545496 - ], - [ - -94.80574174360794, - 21.510509144176183 - ], - [ - -96.39914772727269, - 33.46085981889206 - ], - [ - -95.60247247869313, - 52.58139870383525 - ], - [ - -93.21233575994313, - 62.93828790838069 - ], - [ - -90.8223100142045, - 66.92171963778412 - ], - [ - -86.83887828480113, - 69.31180087002838 - ], - [ - -80.46542080965907, - 70.9051513671875 - ], - [ - -70.10847611860794, - 73.29523259943187 - ], - [ - -51.78466796875, - 74.88858309659088 - ], - [ - -44.61447975852269, - 72.49855735085225 - ], - [ - -42.22439852627838, - 67.71839488636363 - ], - [ - -42.22439852627838, - 58.95485617897731 - ], - [ - -44.61447975852269, - 54.17469371448868 - ], - [ - -46.20783025568181, - 52.58139870383525 - ], - [ - -46.20783025568181, - 52.58139870383525 - ] - ], - "pressures": [ - 0.02734375, - 0.2939453125, - 0.49609375, - 0.8369140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.669921875, - 0.6318359375, - 0.376953125, - 0.1943359375, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -46.20783025568181, - 52.58139870383525 - ] - }, - { - "id": "30Wk4C7l17fTWoH7CNCOq", - "type": "freedraw", - "x": 186.73686396611208, - "y": -118.44104340788613, - "width": 110.73957963423294, - "height": 149.77716619318176, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1677746093, - "version": 462, - "versionNonce": 1620175395, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186700994318187, - 5.5767822265625 - ], - [ - 7.966863458806813, - 13.543645685369256 - ], - [ - 10.356889204545439, - 22.30718439275563 - ], - [ - 11.153564453125, - 30.27410333806813 - ], - [ - 11.153564453125, - 35.054210316051126 - ], - [ - 8.763483220880687, - 38.240966796875 - ], - [ - 0.796619762073874, - 39.037642045454504 - ], - [ - -7.966863458806813, - 39.037642045454504 - ], - [ - -18.323863636363626, - 37.44423606178975 - ], - [ - -35.0543212890625, - 30.27410333806813 - ], - [ - -44.614535245028435, - 25.493940873579504 - ], - [ - -54.1748046875, - 22.30718439275563 - ], - [ - -62.14166814630681, - 22.30718439275563 - ], - [ - -69.31185635653407, - 24.697265625 - ], - [ - -77.27871981534093, - 31.070778586647748 - ], - [ - -86.04231400923294, - 48.597911487926126 - ], - [ - -86.8389892578125, - 66.92171963778412 - ], - [ - -84.44890802556819, - 89.22895951704538 - ], - [ - -70.90526234019887, - 120.29973810369313 - ], - [ - -62.14166814630681, - 133.04676402698863 - ], - [ - -54.1748046875, - 141.810302734375 - ], - [ - -47.00461647727275, - 147.38714044744313 - ], - [ - -39.037753018465935, - 149.77716619318176 - ], - [ - -28.680808327414752, - 148.98049094460225 - ], - [ - -7.966863458806813, - 144.20038396661926 - ], - [ - 6.373457475142061, - 139.42027698863637 - ], - [ - 17.527077414772748, - 133.04676402698863 - ], - [ - 23.103859641335248, - 126.67325106534088 - ], - [ - 23.90059037642044, - 122.6898193359375 - ], - [ - 23.90059037642044, - 122.6898193359375 - ] - ], - "pressures": [ - 0.103515625, - 0.53125, - 0.791015625, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.72265625, - 0.67578125, - 0.677734375, - 0.703125, - 0.72265625, - 0.73046875, - 0.54296875, - 0.298828125, - 0.267578125, - 0.232421875, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.90059037642044, - 122.6898193359375 - ] - }, - { - "id": "Cn8CjTl92uBRi_fFEYrma", - "type": "freedraw", - "x": 203.4672661323052, - "y": -194.9230324881418, - "width": 77.27866432883525, - "height": 86.04225852272725, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 325987245, - "version": 485, - "versionNonce": 426999181, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7966752485795041 - ], - [ - -1.593405983664752, - -2.390025745738626 - ], - [ - -3.983431729403378, - -3.983431729403378 - ], - [ - -6.373512961647748, - -6.373457475142004 - ], - [ - -10.356944691051126, - -8.763538707386374 - ], - [ - -13.543701171875, - -10.356944691051126 - ], - [ - -16.730457652698874, - -11.950295188210191 - ], - [ - -20.713889382102252, - -11.950295188210191 - ], - [ - -27.08740234375, - -12.746970436789752 - ], - [ - -30.274103338068187, - -12.746970436789752 - ], - [ - -33.46085981889206, - -11.950295188210191 - ], - [ - -36.64761629971588, - -10.356944691051126 - ], - [ - -40.63104802911931, - -7.966863458806813 - ], - [ - -47.00456099076706, - -3.186756480823874 - ], - [ - -50.19126198508525, - 1.593405983664809 - ], - [ - -53.37807395241475, - 5.576893199573874 - ], - [ - -55.768155184659065, - 7.966863458806813 - ], - [ - -56.564830433238626, - 9.560324928977309 - ], - [ - -56.564830433238626, - 11.950350674715935 - ], - [ - -55.768155184659065, - 17.527188387784122 - ], - [ - -54.971424449573874, - 23.900645862926126 - ], - [ - -54.971424449573874, - 31.070834073153435 - ], - [ - -54.971424449573874, - 39.83437278053981 - ], - [ - -54.971424449573874, - 46.2078857421875 - ], - [ - -56.564830433238626, - 53.378129438920496 - ], - [ - -58.95485617897725, - 59.7515869140625 - ], - [ - -62.938343394886374, - 66.12504438920456 - ], - [ - -66.12504438920456, - 69.31185635653412 - ], - [ - -69.31180087002838, - 70.90520685369324 - ], - [ - -71.70188210227275, - 71.70188210227275 - ], - [ - -73.29523259943181, - 72.49855735085225 - ], - [ - -75.68531383167613, - 73.2952880859375 - ], - [ - -76.48198908025569, - 73.2952880859375 - ], - [ - -77.27866432883525, - 73.2952880859375 - ], - [ - -76.48198908025569, - 71.70188210227275 - ], - [ - -75.68531383167613, - 71.70188210227275 - ], - [ - -75.68531383167613, - 71.70188210227275 - ] - ], - "pressures": [ - 0.0234375, - 0.2216796875, - 0.40625, - 0.55859375, - 0.728515625, - 0.876953125, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.11328125, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -75.68531383167613, - 71.70188210227275 - ] - }, - { - "id": "zMf_pjdTmoPyh1yQ1xshp", - "type": "freedraw", - "x": 169.20967557832796, - "y": -116.847692910727, - "width": 56.56477494673294, - "height": 23.900645862926126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1176382083, - "version": 452, - "versionNonce": 129412547, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -0.7967307350852479 - ], - [ - -4.780106977982939, - 0 - ], - [ - -4.780106977982939, - 3.1867564808237603 - ], - [ - -3.983431729403378, - 6.373512961647634 - ], - [ - -2.390025745738626, - 8.76353870738626 - ], - [ - -0.7966752485795041, - 11.950295188210134 - ], - [ - 3.983431729403435, - 15.137051669034008 - ], - [ - 7.96686345880687, - 17.527077414772634 - ], - [ - 14.340376420454561, - 20.71383389559651 - ], - [ - 19.1204833984375, - 22.307295365767004 - ], - [ - 25.494051846590935, - 23.103915127840878 - ], - [ - 28.680752840909122, - 23.103915127840878 - ], - [ - 31.867509321732996, - 22.307295365767004 - ], - [ - 35.05426580255687, - 20.71383389559651 - ], - [ - 37.44434703480118, - 19.1204833984375 - ], - [ - 40.63104802911937, - 14.340376420454504 - ], - [ - 43.02112926136368, - 11.950295188210134 - ], - [ - 45.411210493607996, - 9.560213955965878 - ], - [ - 47.80123623934662, - 7.170188210227252 - ], - [ - 50.987992720170496, - 3.983431729403378 - ], - [ - 51.78466796875, - 3.1867564808237603 - ], - [ - 51.78466796875, - 3.1867564808237603 - ] - ], - "pressures": [ - 0.0205078125, - 0.15625, - 0.2919921875, - 0.3017578125, - 0.318359375, - 0.3525390625, - 0.3994140625, - 0.4736328125, - 0.5478515625, - 0.6083984375, - 0.6162109375, - 0.6318359375, - 0.6357421875, - 0.6357421875, - 0.6357421875, - 0.6357421875, - 0.6357421875, - 0.6044921875, - 0.5009765625, - 0.4267578125, - 0.2841796875, - 0.2041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 51.78466796875, - 3.1867564808237603 - ] - }, - { - "id": "KAblbuTeLxpI23rs6tpp8", - "type": "freedraw", - "x": 170.80308156199277, - "y": -118.44104340788613, - "width": 55.76809969815338, - "height": 26.290616122159122, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 777616653, - "version": 446, - "versionNonce": 1990607853, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 17.52707741477269, - 18.323752663352252 - ], - [ - 29.477428089488626, - 23.103915127840878 - ], - [ - 32.66412908380681, - 23.900645862926126 - ], - [ - 36.64761629971588, - 25.493940873579504 - ], - [ - 40.63104802911931, - 26.290616122159122 - ], - [ - 44.61447975852269, - 26.290616122159122 - ], - [ - 47.801236239346565, - 26.290616122159122 - ], - [ - 52.58134321732956, - 24.697265625 - ], - [ - 54.174693714488626, - 22.30718439275563 - ], - [ - 55.76809969815338, - 20.713833895596622 - ], - [ - 55.76809969815338, - 18.323752663352252 - ], - [ - 55.76809969815338, - 16.73040216619313 - ], - [ - 55.76809969815338, - 13.543645685369256 - ], - [ - 55.76809969815338, - 12.746970436789752 - ], - [ - 55.76809969815338, - 11.950295188210248 - ], - [ - 55.76809969815338, - 11.950295188210248 - ] - ], - "pressures": [ - 0.037109375, - 0.787109375, - 0.9423828125, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.802734375, - 0.6552734375, - 0.4306640625, - 0.1787109375, - 0.1396484375, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.76809969815338, - 11.950295188210248 - ] - }, - { - "id": "-y8rzIkN5hgTCK2oVKBrn", - "type": "freedraw", - "x": 128.5786830357144, - "y": 154.82261736981275, - "width": 43.021129261363626, - "height": 16.73040216619313, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1353100163, - "version": 520, - "versionNonce": 1623326051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 1.593350497159065, - 3.186756480823874 - ], - [ - 4.780106977982939, - 4.780106977982882 - ], - [ - 7.966863458806813, - 6.373512961647748 - ], - [ - 14.340376420454561, - 10.356944691051126 - ], - [ - 18.32380814985794, - 12.746970436789752 - ], - [ - 22.307239879261374, - 14.340431906960248 - ], - [ - 25.493996360085248, - 15.933726917613626 - ], - [ - 29.477428089488626, - 15.933726917613626 - ], - [ - 33.46085981889206, - 16.73040216619313 - ], - [ - 37.44429154829544, - 16.73040216619313 - ], - [ - 39.83437278053975, - 16.73040216619313 - ], - [ - 40.63104802911931, - 16.73040216619313 - ], - [ - 42.224398526278435, - 15.933726917613626 - ], - [ - 42.224398526278435, - 15.137051669034122 - ], - [ - 43.021129261363626, - 15.137051669034122 - ], - [ - 43.021129261363626, - 14.340431906960248 - ], - [ - 43.021129261363626, - 13.543645685369256 - ], - [ - 43.021129261363626, - 12.746970436789752 - ], - [ - 43.021129261363626, - 12.746970436789752 - ] - ], - "pressures": [ - 0.078125, - 0.1982421875, - 0.2314453125, - 0.3017578125, - 0.3994140625, - 0.57421875, - 0.662109375, - 0.7109375, - 0.736328125, - 0.74609375, - 0.751953125, - 0.7607421875, - 0.751953125, - 0.7109375, - 0.615234375, - 0.5087890625, - 0.3896484375, - 0.203125, - 0.16015625, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 43.021129261363626, - 12.746970436789752 - ] - }, - { - "id": "psBDMMSUFohGBPGWzq7T0", - "type": "freedraw", - "x": 202.67053539722002, - "y": -95.33723925305662, - "width": 95.60247247869319, - "height": 156.15073464133525, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2099463011, - "version": 468, - "versionNonce": 40975949, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - 0.7966752485795041 - ], - [ - 3.983431729403435, - 3.186756480823874 - ], - [ - 4.780162464488683, - 8.763594193892004 - ], - [ - 7.170188210227309, - 19.1204833984375 - ], - [ - 7.170188210227309, - 26.290727095170496 - ], - [ - 7.96686345880687, - 31.867509321732996 - ], - [ - 7.96686345880687, - 35.850941051136374 - ], - [ - 5.576837713068187, - 39.83437278053975 - ], - [ - 0, - 47.004560990767004 - ], - [ - -4.780106977982939, - 50.19137295809662 - ], - [ - -12.746970436789752, - 53.37807395241475 - ], - [ - -23.10385964133519, - 54.971424449573874 - ], - [ - -39.83437278053975, - 54.971424449573874 - ], - [ - -47.00450550426132, - 54.1748046875 - ], - [ - -52.581343217329504, - 54.1748046875 - ], - [ - -58.15818093039769, - 53.37807395241475 - ], - [ - -63.73496315696019, - 52.581343217329504 - ], - [ - -68.51512562144882, - 52.581343217329504 - ], - [ - -76.48198908025563, - 54.971424449573874 - ], - [ - -80.46542080965907, - 61.34493741122162 - ], - [ - -82.05877130681813, - 70.10853160511363 - ], - [ - -82.85544655539769, - 84.4488525390625 - ], - [ - -80.46542080965907, - 96.39914772727275 - ], - [ - -75.68531383167613, - 108.34949840198863 - ], - [ - -69.31180087002838, - 120.29979359019887 - ], - [ - -62.141612659801126, - 132.25008877840912 - ], - [ - -50.19131747159088, - 144.200439453125 - ], - [ - -41.42772327769882, - 149.77727716619313 - ], - [ - -31.07077858664769, - 152.96397816051137 - ], - [ - -21.510564630681813, - 155.35405939275563 - ], - [ - -7.170132723721565, - 156.15073464133525 - ], - [ - 0.7967307350852479, - 155.35405939275563 - ], - [ - 8.763594193892061, - 151.37057217684662 - ], - [ - 12.747025923295496, - 148.18387118252838 - ], - [ - 12.747025923295496, - 146.59046519886363 - ], - [ - 12.747025923295496, - 146.59046519886363 - ] - ], - "pressures": [ - 0.078125, - 0.232421875, - 0.330078125, - 0.4423828125, - 0.61328125, - 0.734375, - 0.826171875, - 0.884765625, - 0.9189453125, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9794921875, - 0.921875, - 0.90234375, - 0.87890625, - 0.8203125, - 0.8115234375, - 0.8115234375, - 0.783203125, - 0.5625, - 0.3125, - 0.193359375, - 0.10546875, - 0.0224609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.747025923295496, - 146.59046519886363 - ] - }, - { - "id": "zgcRuXrpO_ullw-DKmFwE", - "type": "freedraw", - "x": 293.4929008979302, - "y": -130.39133859609638, - "width": 42.22445401278412, - "height": 37.44429154829544, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 340579395, - "version": 446, - "versionNonce": 117594371, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.9834317294034918, - -3.186811967329561 - ], - [ - 4.780106977982996, - -3.186811967329561 - ], - [ - 6.373512961647748, - -3.186811967329561 - ], - [ - 9.560269442471622, - 0 - ], - [ - 12.747025923295496, - 5.576726740056813 - ], - [ - 14.340376420454618, - 16.73040216619313 - ], - [ - 13.543701171875, - 23.900590376420496 - ], - [ - 10.356944691051126, - 29.477372602982996 - ], - [ - 5.576837713068244, - 32.66412908380687 - ], - [ - -3.186756480823874, - 33.460804332386374 - ], - [ - -11.15361993963063, - 33.460804332386374 - ], - [ - -17.527132901278378, - 32.66412908380687 - ], - [ - -23.900590376420382, - 32.66412908380687 - ], - [ - -26.290671608664752, - 32.66412908380687 - ], - [ - -27.884077592329504, - 32.66412908380687 - ], - [ - -27.884077592329504, - 34.25747958096588 - ], - [ - -27.884077592329504, - 34.25747958096588 - ] - ], - "pressures": [ - 0.015625, - 0.1787109375, - 0.203125, - 0.3427734375, - 0.4599609375, - 0.6025390625, - 0.822265625, - 0.9599609375, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.9189453125, - 0.72265625, - 0.1259765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -27.884077592329504, - 34.25747958096588 - ] - }, - { - "id": "AV0klwCpdZZmdBuekyWa2", - "type": "freedraw", - "x": 167.81099439844604, - "y": 169.65863832994285, - "width": 27.884022105823817, - "height": 11.15361993963063, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 860567405, - "version": 517, - "versionNonce": 705023757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0.7966752485795041 - ], - [ - 0, - 1.5933504971590082 - ], - [ - 1.593350497159122, - 2.390081232244256 - ], - [ - 4.780106977982996, - 3.186811967329504 - ], - [ - 7.966863458806813, - 3.983431729403378 - ], - [ - 15.137051669034122, - 4.780106977982882 - ], - [ - 19.1204833984375, - 4.780106977982882 - ], - [ - 22.307239879261374, - 4.780106977982882 - ], - [ - 24.697265625, - 3.983431729403378 - ], - [ - 26.29067160866481, - 2.390081232244256 - ], - [ - 27.087346857244313, - -0.796619762073874 - ], - [ - 27.087346857244313, - -2.39008123224437 - ], - [ - 26.29067160866481, - -4.780106977982996 - ], - [ - 25.49394087357956, - -6.373512961647748 - ], - [ - 24.697265625, - -6.373512961647748 - ], - [ - 24.697265625, - -6.373512961647748 - ] - ], - "pressures": [ - 0.017578125, - 0.2666015625, - 0.3740234375, - 0.4970703125, - 0.6015625, - 0.697265625, - 0.8203125, - 0.849609375, - 0.853515625, - 0.853515625, - 0.8408203125, - 0.71484375, - 0.4658203125, - 0.236328125, - 0.146484375, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.697265625, - -6.373512961647748 - ] - }, - { - "id": "iKYkRKdRijKt_YZvKkaNN", - "type": "freedraw", - "x": 301.4597643567371, - "y": -124.01788112095431, - "width": 62.938232421875, - "height": 97.19582297585231, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1545823437, - "version": 470, - "versionNonce": 1028404291, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244256, - 2.390025745738626 - ], - [ - 6.373512961647748, - 6.373457475142061 - ], - [ - 10.356944691051126, - 10.35694469105107 - ], - [ - 14.340376420454504, - 12.746970436789809 - ], - [ - 17.527132901278378, - 15.137051669034065 - ], - [ - 23.103970614346622, - 16.730402166193187 - ], - [ - 26.290671608664752, - 16.730402166193187 - ], - [ - 30.27410333806813, - 16.730402166193187 - ], - [ - 34.25753506747162, - 15.93372691761357 - ], - [ - 40.631048029119256, - 13.543701171874943 - ], - [ - 43.817859996448874, - 11.153619939630687 - ], - [ - 47.80123623934662, - 9.560269442471565 - ], - [ - 50.988048206676126, - 7.170188210227309 - ], - [ - 55.76809969815338, - 5.576837713068187 - ], - [ - 56.564774946732996, - 5.576837713068187 - ], - [ - 57.3614501953125, - 5.576837713068187 - ], - [ - 30.27410333806813, - -15.933782404119313 - ], - [ - 32.6641845703125, - -25.493996360085248 - ], - [ - 33.460859818892004, - -28.680752840909122 - ], - [ - 35.054210316051126, - -34.25753506747162 - ], - [ - 38.24102228338063, - -39.83437278053981 - ], - [ - 40.631048029119256, - -43.021129261363626 - ], - [ - 42.22439852627838, - -46.20783025568181 - ], - [ - 42.22439852627838, - -50.98799272017044 - ], - [ - 42.22439852627838, - -58.15812544389206 - ], - [ - 41.427723277698874, - -66.12504438920456 - ], - [ - 40.631048029119256, - -69.31180087002843 - ], - [ - 39.83437278053975, - -70.90520685369319 - ], - [ - 39.83437278053975, - -71.70188210227275 - ], - [ - 35.850996537642004, - -73.29523259943181 - ], - [ - 31.070834073153378, - -76.48198908025569 - ], - [ - 25.493996360085248, - -78.07539506392044 - ], - [ - 18.323808149857996, - -79.66874556107956 - ], - [ - 11.950295188210248, - -80.46542080965912 - ], - [ - 7.966863458806756, - -80.46542080965912 - ], - [ - 3.983431729403378, - -80.46542080965912 - ], - [ - 3.186756480823874, - -80.46542080965912 - ], - [ - 1.593405983664752, - -79.66874556107956 - ], - [ - -0.7966752485795041, - -78.07539506392044 - ], - [ - -3.186756480823874, - -76.48198908025569 - ], - [ - -3.983431729403378, - -74.88863858309662 - ], - [ - -4.780106977982996, - -72.49855735085231 - ], - [ - -5.5767822265625, - -70.90520685369319 - ], - [ - -5.5767822265625, - -70.90520685369319 - ] - ], - "pressures": [ - 0.0234375, - 0.3603515625, - 0.41015625, - 0.4853515625, - 0.5947265625, - 0.708984375, - 0.80078125, - 0.8642578125, - 0.90625, - 0.9345703125, - 0.951171875, - 0.953125, - 0.9560546875, - 0.9580078125, - 0.9580078125, - 0.96875, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.74609375, - 0.51953125, - 0.2880859375, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.5767822265625, - -70.90520685369319 - ] - }, - { - "id": "h5cQ0tfR_iN8EB50ehx6T", - "type": "freedraw", - "x": 283.1359562068791, - "y": -186.15949378075544, - "width": 100.38263494318187, - "height": 97.9925537109375, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1982518531, - "version": 470, - "versionNonce": 871523693, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485796178, - -2.390081232244313 - ], - [ - 3.186756480823874, - -6.373512961647748 - ], - [ - 7.170188210227252, - -10.356944691051183 - ], - [ - 13.543701171875, - -12.747025923295496 - ], - [ - 20.713889382102252, - -13.543701171875 - ], - [ - 31.867509321732996, - -15.137051669034122 - ], - [ - 37.444291548295496, - -15.933782404119313 - ], - [ - 43.021129261363626, - -15.137051669034122 - ], - [ - 50.19131747159099, - -11.950350674715935 - ], - [ - 53.37801846590912, - -7.966863458806813 - ], - [ - 54.1748046875, - -3.186756480823874 - ], - [ - 53.37801846590912, - 1.593350497159065 - ], - [ - 50.19131747159099, - 7.170188210227252 - ], - [ - 47.00456099076712, - 13.543645685369313 - ], - [ - 43.817804509943244, - 23.103915127840878 - ], - [ - 43.021129261363626, - 28.680752840909065 - ], - [ - 43.021129261363626, - 32.6641845703125 - ], - [ - 44.61447975852275, - 34.257535067471565 - ], - [ - 47.80123623934662, - 34.257535067471565 - ], - [ - 52.58134321732962, - 32.6641845703125 - ], - [ - 58.15818093039775, - 27.884077592329504 - ], - [ - 62.938343394886374, - 22.307239879261317 - ], - [ - 67.71839488636363, - 17.527132901278378 - ], - [ - 73.29523259943187, - 11.950350674715878 - ], - [ - 73.29523259943187, - 10.356944691051126 - ], - [ - 73.29523259943187, - 7.9669189453125 - ], - [ - 73.29523259943187, - 6.373457475142004 - ], - [ - 73.29523259943187, - 7.170188210227252 - ], - [ - 75.6852583451705, - 11.950350674715878 - ], - [ - 80.46542080965912, - 19.91721413352269 - ], - [ - 91.6190962357955, - 35.054210316051126 - ], - [ - 97.99249822443187, - 46.20783025568181 - ], - [ - 100.38263494318187, - 55.768155184659065 - ], - [ - 100.38263494318187, - 62.141612659801126 - ], - [ - 94.80579723011363, - 70.10847611860794 - ], - [ - 88.43228426846599, - 74.88858309659093 - ], - [ - 80.46542080965912, - 78.87201482599431 - ], - [ - 71.70188210227275, - 81.26209605823857 - ], - [ - 62.938343394886374, - 82.05877130681819 - ], - [ - 53.37801846590912, - 80.46542080965907 - ], - [ - 50.19131747159099, - 78.0753395774147 - ], - [ - 47.80123623934662, - 76.48198908025569 - ], - [ - 47.00456099076712, - 74.88858309659093 - ], - [ - 47.00456099076712, - 74.88858309659093 - ] - ], - "pressures": [ - 0.0654296875, - 0.5478515625, - 0.7685546875, - 0.921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.947265625, - 0.798828125, - 0.6494140625, - 0.4951171875, - 0.234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 47.00456099076712, - 74.88858309659093 - ] - }, - { - "id": "HaXBt9oE03Knkfpl1l85F", - "type": "freedraw", - "x": 294.28957614650983, - "y": -182.97273729993162, - "width": 114.72295587713074, - "height": 114.72301136363637, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2096520749, - "version": 479, - "versionNonce": 115520483, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - -2.390081232244313 - ], - [ - -0.7966752485796178, - -6.373512961647691 - ], - [ - 2.390081232244256, - -11.15361993963063 - ], - [ - 8.763594193892004, - -15.933782404119313 - ], - [ - 15.933782404119256, - -21.510564630681813 - ], - [ - 26.290671608664752, - -26.29072709517044 - ], - [ - 32.6641845703125, - -27.08740234375 - ], - [ - 39.03769753196025, - -25.49399636008519 - ], - [ - 43.817859996448874, - -21.510564630681813 - ], - [ - 48.597911487926126, - -13.543701171875 - ], - [ - 48.597911487926126, - -7.170188210227252 - ], - [ - 44.61453524502838, - 0.7967307350852479 - ], - [ - 39.03769753196025, - 8.763594193892061 - ], - [ - 31.070834073153378, - 20.71388938210231 - ], - [ - 27.08740234375, - 28.680752840909122 - ], - [ - 24.69732111150563, - 35.85088556463069 - ], - [ - 23.10397061434651, - 40.631103515625 - ], - [ - 23.10397061434651, - 43.021073774857996 - ], - [ - 23.900645862926126, - 44.614535245028435 - ], - [ - 27.08740234375, - 44.614535245028435 - ], - [ - 30.274158824573874, - 45.41115500710231 - ], - [ - 34.25759055397725, - 44.614535245028435 - ], - [ - 40.631048029119256, - 39.83431729403412 - ], - [ - 45.41121049360788, - 34.25753506747162 - ], - [ - 48.597911487926126, - 25.493996360085248 - ], - [ - 51.78472345525563, - 15.137051669034122 - ], - [ - 53.37807395241475, - 4.780162464488683 - ], - [ - 53.37807395241475, - -2.390081232244313 - ], - [ - 52.58139870383525, - -7.9669189453125 - ], - [ - 51.78472345525563, - -9.560269442471565 - ], - [ - 50.988048206676126, - -11.15361993963063 - ], - [ - 50.19126198508525, - -13.543701171875 - ], - [ - 50.19126198508525, - -15.933782404119313 - ], - [ - 53.37807395241475, - -14.340376420454504 - ], - [ - 62.141612659801126, - -7.9669189453125 - ], - [ - 73.2952880859375, - 0 - ], - [ - 86.83887828480113, - 11.153619939630687 - ], - [ - 99.58590420809651, - 22.307239879261374 - ], - [ - 106.75609241832387, - 33.46085981889206 - ], - [ - 111.5362548828125, - 43.81780450994319 - ], - [ - 113.92628062855113, - 60.54826216264206 - ], - [ - 111.5362548828125, - 69.31180087002838 - ], - [ - 105.16274192116475, - 77.27866432883525 - ], - [ - 94.80585271661926, - 82.85544655539775 - ], - [ - 75.68531383167613, - 86.83887828480113 - ], - [ - 64.53163840553975, - 87.63560901988637 - ], - [ - 56.56477494673288, - 87.63560901988637 - ], - [ - 50.988048206676126, - 85.24552778764212 - ], - [ - 47.004560990767004, - 82.05877130681824 - ], - [ - 44.61453524502838, - 77.27866432883525 - ], - [ - 43.817859996448874, - 75.6852583451705 - ], - [ - 45.41121049360788, - 75.6852583451705 - ], - [ - 45.41121049360788, - 75.6852583451705 - ] - ], - "pressures": [ - 0.052734375, - 0.5234375, - 0.625, - 0.70703125, - 0.80078125, - 0.85546875, - 0.927734375, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.9404296875, - 0.9169921875, - 0.908203125, - 0.908203125, - 0.9111328125, - 0.90234375, - 0.90234375, - 0.908203125, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.880859375, - 0.783203125, - 0.669921875, - 0.369140625, - 0.2509765625, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 45.41121049360788, - 75.6852583451705 - ] - }, - { - "id": "awFMjy--KAz5ARX2mUH0S", - "type": "freedraw", - "x": 320.5803032416802, - "y": -192.5329512558975, - "width": 50.98793723366475, - "height": 76.48198908025569, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1800593293, - "version": 463, - "versionNonce": 1421684685, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -11.153675426136374 - ], - [ - 0, - -12.747025923295496 - ], - [ - 2.390025745738626, - -17.527188387784122 - ], - [ - 5.5767822265625, - -22.30729536576706 - ], - [ - 10.356944691051126, - -28.68080832741481 - ], - [ - 13.543701171875, - -31.070834073153435 - ], - [ - 17.527132901278378, - -32.66424005681819 - ], - [ - 27.08734685724437, - -33.46091530539775 - ], - [ - 34.25753506747162, - -33.46091530539775 - ], - [ - 41.427723277698874, - -33.46091530539775 - ], - [ - 47.004560990767004, - -31.867564808238626 - ], - [ - 49.39458673650563, - -27.884133078835248 - ], - [ - 50.19126198508525, - -22.30729536576706 - ], - [ - 47.80123623934662, - -10.357000177556813 - ], - [ - 44.61453524502838, - 0.796619762073874 - ], - [ - 41.427723277698874, - 12.746970436789752 - ], - [ - 39.037642045454504, - 23.10385964133519 - ], - [ - 34.25753506747162, - 35.850941051136374 - ], - [ - 30.27410333806813, - 40.630992542613626 - ], - [ - 27.884022105823874, - 43.02107377485794 - ], - [ - 25.493996360085248, - 43.02107377485794 - ], - [ - 24.69732111150563, - 43.02107377485794 - ], - [ - 23.900590376420496, - 43.02107377485794 - ], - [ - 24.69732111150563, - 42.22439852627838 - ], - [ - 24.69732111150563, - 42.22439852627838 - ] - ], - "pressures": [ - 0.0712890625, - 0.537109375, - 0.6376953125, - 0.8076171875, - 0.8955078125, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.1220703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.69732111150563, - 42.22439852627838 - ] - }, - { - "id": "PwSsn4xH1bveCxMWoWo2u", - "type": "freedraw", - "x": 305.44319608614046, - "y": -120.83112464013044, - "width": 29.477428089488626, - "height": 26.29072709517044, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1189673677, - "version": 448, - "versionNonce": 2055188013, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 3.983431729403435 - ], - [ - 2.39008123224437, - 6.373512961647691 - ], - [ - 3.186756480823874, - 9.560213955965935 - ], - [ - 4.780162464488626, - 13.543645685369313 - ], - [ - 6.373512961647748, - 16.730402166193187 - ], - [ - 10.356944691051126, - 20.713833895596565 - ], - [ - 15.137051669034122, - 23.90059037642044 - ], - [ - 20.713889382102252, - 26.29072709517044 - ], - [ - 23.103970614346622, - 26.29072709517044 - ], - [ - 25.493996360085248, - 25.49399636008519 - ], - [ - 27.08740234375, - 23.103915127840935 - ], - [ - 28.680752840909122, - 20.713833895596565 - ], - [ - 29.477428089488626, - 16.730402166193187 - ], - [ - 29.477428089488626, - 14.340376420454561 - ], - [ - 28.680752840909122, - 11.950295188210191 - ], - [ - 27.884077592329618, - 9.560213955965935 - ], - [ - 27.08740234375, - 9.560213955965935 - ], - [ - 27.08740234375, - 8.763538707386317 - ], - [ - 26.290671608664752, - 8.763538707386317 - ], - [ - 25.493996360085248, - 9.560213955965935 - ], - [ - 24.697321111505744, - 9.560213955965935 - ], - [ - 23.900645862926126, - 9.560213955965935 - ], - [ - 23.900645862926126, - 10.35694469105107 - ], - [ - 23.900645862926126, - 10.35694469105107 - ] - ], - "pressures": [ - 0.0029296875, - 0.212890625, - 0.267578125, - 0.3232421875, - 0.41796875, - 0.484375, - 0.5068359375, - 0.5966796875, - 0.7109375, - 0.732421875, - 0.7607421875, - 0.787109375, - 0.8095703125, - 0.8173828125, - 0.8154296875, - 0.798828125, - 0.7763671875, - 0.7744140625, - 0.716796875, - 0.39453125, - 0.2314453125, - 0.1884765625, - 0.1142578125, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.900645862926126, - 10.35694469105107 - ] - }, - { - "id": "AbzfzUgt_ASh3mu1DFdE-", - "type": "freedraw", - "x": 308.62995256696433, - "y": -113.66093642990324, - "width": 32.6641845703125, - "height": 31.070834073153378, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 458965933, - "version": 448, - "versionNonce": 825972515, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593405983664752 - ], - [ - 0, - -9.560269442471508 - ], - [ - 0, - -15.137107155539695 - ], - [ - -0.7966752485795041, - -20.71383389559651 - ], - [ - -1.593350497159122, - -24.697265624999943 - ], - [ - -1.593350497159122, - -28.680697354403378 - ], - [ - -2.390025745738626, - -30.274158824573817 - ], - [ - -2.390025745738626, - -31.070834073153378 - ], - [ - -0.7966752485795041, - -30.274158824573817 - ], - [ - 1.593405983664752, - -27.884077592329504 - ], - [ - 2.39008123224437, - -23.90064586292607 - ], - [ - 3.983431729403378, - -19.91721413352269 - ], - [ - 6.373512961647748, - -15.137107155539695 - ], - [ - 8.763594193892004, - -11.153675426136317 - ], - [ - 11.950295188210248, - -7.966918945312443 - ], - [ - 16.730457652698874, - -4.780106977982882 - ], - [ - 20.713889382102252, - -3.1867564808237603 - ], - [ - 25.493996360085248, - -1.593405983664752 - ], - [ - 29.47748357599437, - -1.593405983664752 - ], - [ - 30.274158824573874, - -1.593405983664752 - ], - [ - 29.47748357599437, - -3.9834872159090082 - ], - [ - 27.884022105823874, - -4.780106977982882 - ], - [ - 27.884022105823874, - -5.57683771306813 - ], - [ - 27.884022105823874, - -5.57683771306813 - ] - ], - "pressures": [ - 0.064453125, - 0.6943359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.21484375, - 0.1201171875, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884022105823874, - -5.57683771306813 - ] - }, - { - "id": "k5nDQgwS7mzt3cd6zKo1P", - "type": "freedraw", - "x": 209.04404835886777, - "y": -87.37026482123838, - "width": 100.38257945667613, - "height": 104.36601118607962, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1203227213, - "version": 453, - "versionNonce": 984251075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593405983664752, - -0.7966752485796178 - ], - [ - 3.186756480823874, - 0 - ], - [ - 4.780106977982939, - 3.186756480823874 - ], - [ - 6.373512961647691, - 7.170188210227252 - ], - [ - 7.966863458806813, - 12.747025923295382 - ], - [ - 7.966863458806813, - 22.307239879261374 - ], - [ - 6.373512961647691, - 27.884022105823874 - ], - [ - 4.780106977982939, - 31.070778586647634 - ], - [ - 2.390081232244313, - 33.460859818892004 - ], - [ - -3.186756480823874, - 34.25753506747151 - ], - [ - -14.340320933948874, - 34.25753506747151 - ], - [ - -22.307184392755687, - 33.460859818892004 - ], - [ - -29.477428089488626, - 31.070778586647634 - ], - [ - -36.647616299715935, - 28.68075284090901 - ], - [ - -43.021129261363626, - 26.290671608664752 - ], - [ - -53.37807395241481, - 23.103915127840878 - ], - [ - -60.54826216264206, - 21.510564630681756 - ], - [ - -66.92171963778412, - 21.510564630681756 - ], - [ - -75.68531383167613, - 21.510564630681756 - ], - [ - -81.26209605823863, - 22.307239879261374 - ], - [ - -86.04220303622162, - 24.69732111150563 - ], - [ - -90.025634765625, - 30.27410333806813 - ], - [ - -91.61904074928975, - 39.037642045454504 - ], - [ - -92.41571599786931, - 50.98799272017038 - ], - [ - -89.22895951704544, - 70.10847611860788 - ], - [ - -85.24552778764206, - 80.46547629616475 - ], - [ - -79.66874556107956, - 87.63560901988637 - ], - [ - -68.51512562144887, - 97.9925537109375 - ], - [ - -60.54826216264206, - 102.77266068892038 - ], - [ - -54.971424449573874, - 103.5693359375 - ], - [ - -50.98799272017044, - 100.38263494318176 - ], - [ - -47.80123623934662, - 94.80579723011363 - ], - [ - -47.80123623934662, - 90.82236550071013 - ], - [ - -47.80123623934662, - 90.82236550071013 - ] - ], - "pressures": [ - 0.056640625, - 0.5224609375, - 0.6923828125, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.8642578125, - 0.630859375, - 0.3466796875, - 0.23046875, - 0.15625, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -47.80123623934662, - 90.82236550071013 - ] - }, - { - "id": "u7wfZvU8cDTYvOxVY7XQY", - "type": "freedraw", - "x": 205.06061662946433, - "y": -96.1338590151305, - "width": 141.0136274857955, - "height": 127.46998180042613, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1525529571, - "version": 454, - "versionNonce": 2002896621, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593405983664809, - -0.7966752485795041 - ], - [ - 4.780106977982996, - 3.186756480823874 - ], - [ - 10.356944691051126, - 12.747025923295496 - ], - [ - 11.950295188210248, - 19.917214133522748 - ], - [ - 12.746970436789809, - 27.884077592329618 - ], - [ - 7.966863458806813, - 35.05426580255687 - ], - [ - 2.390081232244313, - 37.444347034801126 - ], - [ - -4.780106977982939, - 39.83437278053975 - ], - [ - -14.340320933948874, - 39.83437278053975 - ], - [ - -24.697321111505687, - 38.241022283380744 - ], - [ - -35.05426580255681, - 34.25759055397725 - ], - [ - -49.394642223011374, - 25.49405184659099 - ], - [ - -58.158125443892004, - 19.120538884943244 - ], - [ - -66.12498890269887, - 14.340376420454618 - ], - [ - -78.8720703125, - 10.356944691051126 - ], - [ - -86.83893377130681, - 8.763594193892118 - ], - [ - -95.60247247869319, - 7.170188210227252 - ], - [ - -104.36606667258519, - 6.373512961647748 - ], - [ - -113.12960537997157, - 7.170188210227252 - ], - [ - -120.29979359019882, - 11.950350674715992 - ], - [ - -127.46998180042613, - 28.680752840909122 - ], - [ - -128.2666570490057, - 43.817804509943244 - ], - [ - -125.87657581676132, - 62.141612659801126 - ], - [ - -117.113037109375, - 87.63560901988637 - ], - [ - -110.73952414772725, - 98.78922895951712 - ], - [ - -103.5693359375, - 108.34949840198863 - ], - [ - -94.80579723011363, - 116.3163618607955 - ], - [ - -84.4488525390625, - 122.68987482244324 - ], - [ - -72.49855735085225, - 125.87663130326712 - ], - [ - -55.76809969815338, - 126.67330655184662 - ], - [ - -45.41121049360794, - 125.87663130326712 - ], - [ - -36.64761629971588, - 123.48655007102275 - ], - [ - -31.070834073153378, - 118.70644309303975 - ], - [ - -31.86750932173294, - 116.3163618607955 - ], - [ - -31.86750932173294, - 116.3163618607955 - ] - ], - "pressures": [ - 0.0888671875, - 0.36328125, - 0.6572265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.79296875, - 0.7763671875, - 0.787109375, - 0.8173828125, - 0.8466796875, - 0.8466796875, - 0.5625, - 0.287109375, - 0.2109375, - 0.15234375, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -31.86750932173294, - 116.3163618607955 - ] - }, - { - "id": "HGaTClCLkXYdJogtHYGnV", - "type": "freedraw", - "x": 204.26394138088483, - "y": -94.54039754496, - "width": 130.65673828125, - "height": 164.91421786221588, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 892831331, - "version": 452, - "versionNonce": 2108959331, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982939, - 7.966863458806756 - ], - [ - 9.560213955965878, - 18.323752663352252 - ], - [ - 13.543645685369313, - 30.2740478515625 - ], - [ - 15.933726917613626, - 40.630992542613626 - ], - [ - 15.933726917613626, - 48.597856001420496 - ], - [ - 12.746970436789752, - 55.76809969815338 - ], - [ - 7.170188210227252, - 58.95480069247162 - ], - [ - 0, - 59.751531427556756 - ], - [ - -9.560213955965935, - 59.751531427556756 - ], - [ - -26.290727095170496, - 55.76809969815338 - ], - [ - -36.647616299715935, - 52.581287730823874 - ], - [ - -46.2078857421875, - 47.004505504261374 - ], - [ - -55.76815518465912, - 41.42766779119313 - ], - [ - -66.12504438920456, - 35.85088556463063 - ], - [ - -83.652177290483, - 32.664129083806756 - ], - [ - -93.21239124644887, - 34.25747958096588 - ], - [ - -101.17925470525569, - 40.630992542613626 - ], - [ - -107.55282315340912, - 48.597856001420496 - ], - [ - -113.12954989346593, - 64.53158291903412 - ], - [ - -114.72301136363637, - 81.262040571733 - ], - [ - -114.72301136363637, - 99.58590420809662 - ], - [ - -110.739579634233, - 116.31630637428975 - ], - [ - -105.95941716974431, - 129.0632768110795 - ], - [ - -92.415771484375, - 143.40370871803975 - ], - [ - -79.66874556107956, - 151.37057217684662 - ], - [ - -65.32831365411937, - 157.74402965198863 - ], - [ - -50.191317471590935, - 162.52413662997162 - ], - [ - -33.46085981889206, - 164.91421786221588 - ], - [ - -8.763594193892061, - 164.11754261363637 - ], - [ - 2.390081232244313, - 160.9307861328125 - ], - [ - 7.966863458806813, - 156.15062366832387 - ], - [ - 10.356944691051126, - 149.77716619318176 - ], - [ - 10.356944691051126, - 149.77716619318176 - ] - ], - "pressures": [ - 0.134765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.583984375, - 0.2431640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - 149.77716619318176 - ] - }, - { - "id": "qx8RFPqmGinY_4ET-luAq", - "type": "freedraw", - "x": 213.8241553368507, - "y": 54.44003791313662, - "width": 1.593350497159065, - "height": 1.5932950106534918, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1660230061, - "version": 420, - "versionNonce": 113533261, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558545, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - -1.5932950106534918 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.169921875, - 0.095703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159065, - -1.5932950106534918 - ] - }, - { - "id": "SIItGIcVlKZrQFCMq8uae", - "type": "freedraw", - "x": 204.26394138088483, - "y": -98.52382927436338, - "width": 164.117598100142, - "height": 180.05132501775563, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2125920195, - "version": 453, - "versionNonce": 2133255683, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983487215909122 - ], - [ - 1.593350497159065, - -1.5934614701704959 - ], - [ - 5.5767822265625, - 6.373401988636374 - ], - [ - 11.15361993963063, - 17.527021928267004 - ], - [ - 19.1204833984375, - 35.05415482954538 - ], - [ - 20.713833895596565, - 45.41109952059651 - ], - [ - 20.713833895596565, - 53.37796297940338 - ], - [ - 15.137051669034065, - 61.344826438210134 - ], - [ - 3.983431729403378, - 69.31174538352263 - ], - [ - -7.170188210227309, - 70.10842063210225 - ], - [ - -19.917214133522748, - 69.31174538352263 - ], - [ - -31.867509321732996, - 64.53158291903401 - ], - [ - -42.22445401278412, - 58.158125443892004 - ], - [ - -55.76815518465912, - 44.614424272017004 - ], - [ - -66.12504438920456, - 33.460804332386374 - ], - [ - -75.68531383167618, - 23.900590376420382 - ], - [ - -86.04225852272731, - 19.120427911931756 - ], - [ - -100.38263494318181, - 16.7303466796875 - ], - [ - -109.1461181640625, - 19.120427911931756 - ], - [ - -117.90976784446025, - 26.29061612215901 - ], - [ - -125.87663130326706, - 39.037586558948874 - ], - [ - -132.2501442649148, - 54.97136896306813 - ], - [ - -133.84349476207387, - 85.24547230113637 - ], - [ - -129.8600630326705, - 101.97592995383513 - ], - [ - -121.89319957386368, - 117.11298162286926 - ], - [ - -109.1461181640625, - 133.8433837890625 - ], - [ - -80.46542080965912, - 156.15062366832387 - ], - [ - -60.54826216264206, - 167.30429909446013 - ], - [ - -42.22445401278412, - 174.47443181818176 - ], - [ - -23.900645862926183, - 176.0678378018465 - ], - [ - -9.560213955965935, - 175.271162553267 - ], - [ - 8.763538707386317, - 168.89764959161926 - ], - [ - 19.917158647017004, - 163.32086736505676 - ], - [ - 29.477428089488626, - 157.74402965198863 - ], - [ - 30.27410333806813, - 156.947354403409 - ], - [ - 30.27410333806813, - 156.947354403409 - ] - ], - "pressures": [ - 0.02734375, - 0.1943359375, - 0.6064453125, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.994140625, - 0.5771484375, - 0.236328125, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 30.27410333806813, - 156.947354403409 - ] - }, - { - "id": "-FW_ajsg0FYyBdy0iJQky", - "type": "freedraw", - "x": 231.35128823812914, - "y": 52.84674290248313, - "width": 153.76065340909093, - "height": 98.78928444602275, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1659348131, - "version": 452, - "versionNonce": 396668845, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - 4.780051491477366 - ], - [ - -1.593350497159122, - 8.763483220880744 - ], - [ - -10.356944691051183, - 11.950295188210248 - ], - [ - -19.1204833984375, - 11.950295188210248 - ], - [ - -30.274103338068187, - 10.356889204545496 - ], - [ - -44.61442427201706, - 5.5767822265625 - ], - [ - -66.92171963778412, - -7.966863458806756 - ], - [ - -78.07533957741481, - -19.917214133522634 - ], - [ - -85.24552778764206, - -31.070834073153378 - ], - [ - -89.2289595170455, - -40.631103515625 - ], - [ - -89.2289595170455, - -46.20794122869313 - ], - [ - -84.44879705255681, - -51.78466796875 - ], - [ - -76.48193359375, - -51.78466796875 - ], - [ - -62.14161265980118, - -48.597966974431756 - ], - [ - -41.427723277698874, - -39.03775301846588 - ], - [ - -12.746970436789809, - -22.307295365767004 - ], - [ - -1.593350497159122, - -15.933726917613626 - ], - [ - 7.170188210227252, - -12.747025923295382 - ], - [ - 17.527132901278378, - -11.950295188210134 - ], - [ - 30.274103338068187, - -11.950295188210134 - ], - [ - 50.191317471590935, - -16.730513139204504 - ], - [ - 61.344937411221565, - -22.307295365767004 - ], - [ - 64.53169389204544, - -30.274158824573874 - ], - [ - 62.14161265980107, - -39.83437278053975 - ], - [ - 50.191317471590935, - -58.15823641690338 - ], - [ - 38.24102228338069, - -69.31185635653401 - ], - [ - 25.49399636008519, - -78.87212579900563 - ], - [ - 14.340376420454504, - -84.44890802556813 - ], - [ - 7.170188210227252, - -86.8389892578125 - ], - [ - 3.186756480823817, - -86.04225852272725 - ], - [ - 1.593350497159065, - -82.85555752840901 - ], - [ - 1.593350497159065, - -79.6687455610795 - ], - [ - 0.7966752485795041, - -78.07539506392038 - ], - [ - 0, - -76.48204456676137 - ], - [ - -0.796675248579561, - -75.68531383167613 - ], - [ - -0.796675248579561, - -75.68531383167613 - ] - ], - "pressures": [ - 0.1025390625, - 0.189453125, - 0.2578125, - 0.4140625, - 0.580078125, - 0.701171875, - 0.7626953125, - 0.822265625, - 0.82421875, - 0.826171875, - 0.8408203125, - 0.8408203125, - 0.83203125, - 0.8388671875, - 0.857421875, - 0.857421875, - 0.802734375, - 0.794921875, - 0.796875, - 0.8095703125, - 0.822265625, - 0.8466796875, - 0.8447265625, - 0.828125, - 0.8388671875, - 0.9189453125, - 0.9111328125, - 0.876953125, - 0.8173828125, - 0.736328125, - 0.642578125, - 0.380859375, - 0.2431640625, - 0.1640625, - 0.109375, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.796675248579561, - -75.68531383167613 - ] - }, - { - "id": "rVmiUqKcxyxaxhyxjiEhd", - "type": "freedraw", - "x": 199.48377891639615, - "y": -94.54039754496, - "width": 64.53158291903407, - "height": 69.31174538352275, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1779121539, - "version": 436, - "versionNonce": 637611427, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -21.510564630681813, - 27.087291370738626 - ], - [ - -19.1204833984375, - 16.7303466796875 - ], - [ - -16.7303466796875, - 11.950295188210248 - ], - [ - -15.933726917613626, - 10.356889204545496 - ], - [ - -19.917158647017004, - 10.356889204545496 - ], - [ - -25.49399636008519, - 11.153564453125 - ], - [ - -33.460859818892004, - 12.746914950284122 - ], - [ - -41.42772327769882, - 15.933726917613626 - ], - [ - -52.58128773082382, - 23.103859641335248 - ], - [ - -58.95485617897725, - 28.680697354403378 - ], - [ - -62.93828790838069, - 33.460804332386374 - ], - [ - -64.53158291903407, - 38.240911310369256 - ], - [ - -64.53158291903407, - 43.021073774857996 - ], - [ - -61.34488192471588, - 52.581287730823874 - ], - [ - -57.3614501953125, - 58.158125443892004 - ], - [ - -54.97142444957382, - 61.34488192471588 - ], - [ - -51.78466796875, - 63.73496315696025 - ], - [ - -47.801236239346565, - 67.71839488636363 - ], - [ - -44.614424272017004, - 69.31174538352275 - ], - [ - -41.42772327769882, - 69.31174538352275 - ], - [ - -40.630992542613626, - 69.31174538352275 - ], - [ - -40.630992542613626, - 69.31174538352275 - ] - ], - "pressures": [ - 0.0615234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.900390625, - 0.6552734375, - 0.3701171875, - 0.2021484375, - 0.154296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -40.630992542613626, - 69.31174538352275 - ] - }, - { - "id": "isNnrgTH34hcJywz7OdjV", - "type": "freedraw", - "x": 214.62088607193596, - "y": -48.332622775783875, - "width": 79.66874556107956, - "height": 50.19137295809662, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1346829357, - "version": 447, - "versionNonce": 405549581, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982939, - 4.780162464488626 - ], - [ - 3.983431729403378, - 9.560324928977252 - ], - [ - -0.7967307350852479, - 13.54375665838063 - ], - [ - -10.356944691051126, - 17.527188387784122 - ], - [ - -17.527132901278435, - 17.527188387784122 - ], - [ - -23.900590376420496, - 17.527188387784122 - ], - [ - -29.477483575994313, - 12.747025923295496 - ], - [ - -31.070834073153435, - 7.9669189453125 - ], - [ - -31.070834073153435, - 0.7967307350852479 - ], - [ - -28.680752840909122, - -7.96686345880687 - ], - [ - -26.290727095170496, - -16.73040216619313 - ], - [ - -23.900590376420496, - -23.900590376420496 - ], - [ - -22.30729536576706, - -30.2740478515625 - ], - [ - -22.30729536576706, - -31.867453835227252 - ], - [ - -22.30729536576706, - -32.6641845703125 - ], - [ - -23.900590376420496, - -32.6641845703125 - ], - [ - -28.680752840909122, - -32.6641845703125 - ], - [ - -35.05426580255681, - -31.867453835227252 - ], - [ - -42.22445401278412, - -30.2740478515625 - ], - [ - -50.987992720170496, - -29.477428089488626 - ], - [ - -58.15818093039775, - -27.08734685724437 - ], - [ - -66.92177512428981, - -20.713833895596622 - ], - [ - -70.90520685369319, - -15.933726917613626 - ], - [ - -73.2952880859375, - -11.15361993963063 - ], - [ - -74.88863858309662, - -3.983431729403378 - ], - [ - -74.88863858309662, - 0.7967307350852479 - ], - [ - -73.2952880859375, - 4.780162464488626 - ], - [ - -71.70182661576706, - 7.9669189453125 - ], - [ - -69.31180087002843, - 8.763594193892004 - ], - [ - -67.71839488636363, - 8.763594193892004 - ], - [ - -65.328369140625, - 7.9669189453125 - ], - [ - -64.5316938920455, - 7.170188210227252 - ], - [ - -64.5316938920455, - 7.170188210227252 - ] - ], - "pressures": [ - 0.0595703125, - 0.3232421875, - 0.5439453125, - 0.8896484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.740234375, - 0.376953125, - 0.185546875, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -64.5316938920455, - 7.170188210227252 - ] - }, - { - "id": "tcSbZ42OrghbLxaDfeGwN", - "type": "freedraw", - "x": 244.89498941000414, - "y": -91.35369655064187, - "width": 47.80129172585225, - "height": 76.48198908025563, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 550594243, - "version": 449, - "versionNonce": 1970372931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -0.7967307350851343 - ], - [ - -3.983431729403435, - 3.9834317294034918 - ], - [ - -4.780162464488683, - 15.137051669034122 - ], - [ - -4.780162464488683, - 21.51056463068187 - ], - [ - -1.593405983664809, - 27.884022105823874 - ], - [ - 1.593350497159065, - 31.867453835227366 - ], - [ - 5.5767822265625, - 33.46085981889212 - ], - [ - 7.170188210227252, - 33.46085981889212 - ], - [ - 9.560213955965935, - 31.867453835227366 - ], - [ - 11.153619939630687, - 28.680752840909122 - ], - [ - 11.950295188210191, - 24.697321111505744 - ], - [ - 11.950295188210191, - 17.527077414772748 - ], - [ - 11.950295188210191, - 11.950295188210248 - ], - [ - 11.950295188210191, - 7.170188210227366 - ], - [ - 11.153619939630687, - 5.5767822265625 - ], - [ - 11.153619939630687, - 4.780162464488626 - ], - [ - 12.746970436789695, - 7.96686345880687 - ], - [ - 15.93372691761357, - 12.747025923295496 - ], - [ - 19.91715864701706, - 19.1204833984375 - ], - [ - 26.290671608664695, - 31.867453835227366 - ], - [ - 30.274103338068187, - 38.240966796875 - ], - [ - 35.05421031605107, - 43.021073774857996 - ], - [ - 38.24096679687494, - 46.20783025568187 - ], - [ - 41.42772327769882, - 50.19126198508525 - ], - [ - 42.224398526278435, - 54.174693714488626 - ], - [ - 43.02112926136357, - 59.75153142755687 - ], - [ - 43.02112926136357, - 65.32831365411937 - ], - [ - 40.63104802911931, - 70.9051513671875 - ], - [ - 33.46085981889206, - 75.6852583451705 - ], - [ - 26.290671608664695, - 75.6852583451705 - ], - [ - 19.120483398437443, - 74.09190784801137 - ], - [ - 12.746970436789695, - 70.108476118608 - ], - [ - 7.170188210227252, - 66.12504438920462 - ], - [ - 2.390025745738626, - 62.141612659801126 - ], - [ - 0.7966752485795041, - 60.54826216264212 - ], - [ - 2.390025745738626, - 60.54826216264212 - ], - [ - 3.186756480823817, - 61.34488192471599 - ], - [ - 3.186756480823817, - 61.34488192471599 - ] - ], - "pressures": [ - 0.029296875, - 0.6162109375, - 0.787109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.61328125, - 0.3310546875, - 0.1181640625, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823817, - 61.34488192471599 - ] - }, - { - "id": "VsK3X7NfA_so7nkCT22_x", - "type": "freedraw", - "x": 273.5757422509132, - "y": -28.415408642261127, - "width": 77.27866432883525, - "height": 75.68531383167613, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2045428813, - "version": 443, - "versionNonce": 1968466029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 3.983431729403378 - ], - [ - 1.593350497159122, - 11.950295188210248 - ], - [ - 5.5767822265625, - 16.73040216619313 - ], - [ - 10.356889204545496, - 19.917158647017004 - ], - [ - 15.137051669034122, - 21.5106201171875 - ], - [ - 19.917158647017004, - 20.713889382102252 - ], - [ - 23.900590376420496, - 17.527188387784122 - ], - [ - 26.290671608664752, - 12.746970436789752 - ], - [ - 27.884022105823874, - 7.170188210227252 - ], - [ - 28.680697354403378, - 0.7966752485795041 - ], - [ - 28.680697354403378, - -7.96686345880687 - ], - [ - 28.680697354403378, - -11.153619939630744 - ], - [ - 29.477428089488626, - -13.543701171875 - ], - [ - 31.070778586647748, - -15.137051669034122 - ], - [ - 36.64761629971588, - -15.93378240411937 - ], - [ - 42.22439852627838, - -15.93378240411937 - ], - [ - 48.597911487926126, - -12.747025923295496 - ], - [ - 57.3614501953125, - -7.170188210227252 - ], - [ - 65.328369140625, - 1.593405983664752 - ], - [ - 73.29523259943187, - 18.323808149857882 - ], - [ - 75.6852583451705, - 29.477483575994256 - ], - [ - 76.48193359375, - 38.240966796875 - ], - [ - 76.48193359375, - 44.61447975852275 - ], - [ - 70.10842063210225, - 53.37807395241475 - ], - [ - 66.92171963778412, - 55.76809969815338 - ], - [ - 50.987992720170496, - 59.751531427556756 - ], - [ - 40.63104802911937, - 59.751531427556756 - ], - [ - 32.6641845703125, - 58.15818093039775 - ], - [ - 28.680697354403378, - 56.56477494673288 - ], - [ - 27.884022105823874, - 55.76809969815338 - ], - [ - 30.27410333806813, - 55.76809969815338 - ], - [ - 30.27410333806813, - 55.76809969815338 - ] - ], - "pressures": [ - 0.0546875, - 0.271484375, - 0.4296875, - 0.5673828125, - 0.673828125, - 0.75390625, - 0.8134765625, - 0.85546875, - 0.8876953125, - 0.8916015625, - 0.8916015625, - 0.8984375, - 0.904296875, - 0.908203125, - 0.9130859375, - 0.9296875, - 0.953125, - 0.970703125, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8740234375, - 0.7607421875, - 0.5625, - 0.361328125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 30.27410333806813, - 55.76809969815338 - ] - }, - { - "id": "NBeDySBHpS3lU7tFXlIzs", - "type": "freedraw", - "x": 278.3558492288962, - "y": -3.718087530755497, - "width": 70.9051513671875, - "height": 86.83887828480124, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1148692675, - "version": 439, - "versionNonce": 114712803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244256, - 6.373457475142118 - ], - [ - 4.780106977982882, - 10.356889204545496 - ], - [ - 7.966863458806756, - 12.747025923295496 - ], - [ - 14.340376420454504, - 15.137051669034122 - ], - [ - 15.933726917613626, - 15.137051669034122 - ], - [ - 12.746970436789752, - -31.070778586647748 - ], - [ - 21.510564630681756, - -28.68075284090901 - ], - [ - 25.493996360085134, - -27.087346857244256 - ], - [ - 34.25753506747151, - -22.307295365767004 - ], - [ - 43.81780450994313, - -15.137051669034008 - ], - [ - 52.581343217329504, - -7.170132723721508 - ], - [ - 59.7515869140625, - 0.7967307350852479 - ], - [ - 66.92177512428975, - 13.54364568536937 - ], - [ - 70.10847611860788, - 22.307239879261374 - ], - [ - 70.9051513671875, - 33.46085981889212 - ], - [ - 68.51512562144887, - 43.021073774857996 - ], - [ - 61.34493741122151, - 50.19126198508525 - ], - [ - 43.81780450994313, - 55.76809969815349 - ], - [ - 30.27410333806813, - 55.76809969815349 - ], - [ - 19.917158647017004, - 53.37801846590912 - ], - [ - 14.340376420454504, - 50.19126198508525 - ], - [ - 8.763538707386374, - 43.817804509943244 - ], - [ - 7.966863458806756, - 40.631103515625 - ], - [ - 7.170188210227252, - 38.240966796875 - ], - [ - 7.170188210227252, - 36.64761629971599 - ], - [ - 7.170188210227252, - 35.850885564630744 - ], - [ - 7.966863458806756, - 35.054210316051126 - ], - [ - 7.966863458806756, - 35.054210316051126 - ] - ], - "pressures": [ - 0.115234375, - 0.267578125, - 0.3642578125, - 0.5107421875, - 0.8115234375, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9453125, - 0.744140625, - 0.5615234375, - 0.3193359375, - 0.19140625, - 0.119140625, - 0.0341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.966863458806756, - 35.054210316051126 - ] - }, - { - "id": "IwCbEhtuiddjKr6GUtCvC", - "type": "freedraw", - "x": 323.76700423599846, - "y": -119.23777414297138, - "width": 3.186756480823874, - "height": 36.647616299715935, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 106307363, - "version": 426, - "versionNonce": 1088869069, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.796675248579561 - ], - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 3.983431729403378 - ], - [ - 1.593405983664752, - 7.96686345880687 - ], - [ - 2.390081232244256, - 11.15361993963063 - ], - [ - 3.186756480823874, - 14.340376420454504 - ], - [ - 3.186756480823874, - 16.730457652698874 - ], - [ - 3.186756480823874, - 19.1204833984375 - ], - [ - 3.186756480823874, - 24.697376598011374 - ], - [ - 3.186756480823874, - 27.884077592329504 - ], - [ - 3.186756480823874, - 30.27410333806813 - ], - [ - 3.186756480823874, - 31.867509321732996 - ], - [ - 3.186756480823874, - 32.66424005681813 - ], - [ - 3.186756480823874, - 33.460859818892004 - ], - [ - 3.186756480823874, - 34.25753506747162 - ], - [ - 3.186756480823874, - 35.05426580255687 - ], - [ - 3.186756480823874, - 35.850941051136374 - ], - [ - 3.186756480823874, - 35.850941051136374 - ] - ], - "pressures": [ - 0.01953125, - 0.2265625, - 0.337890625, - 0.3837890625, - 0.4208984375, - 0.5087890625, - 0.6240234375, - 0.6826171875, - 0.701171875, - 0.697265625, - 0.6787109375, - 0.6552734375, - 0.6201171875, - 0.6162109375, - 0.5595703125, - 0.392578125, - 0.1630859375, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823874, - 35.850941051136374 - ] - }, - { - "id": "TI1paGUMfHKvtjiNkkCgi", - "type": "freedraw", - "x": 330.1405171976462, - "y": -120.03444939155094, - "width": 7.170188210227252, - "height": 32.66418457031256, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1835210435, - "version": 423, - "versionNonce": 1136544899, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - 0, - 5.576837713068187 - ], - [ - 0, - 10.356944691051183 - ], - [ - 0.7966752485795041, - 16.730402166193187 - ], - [ - 0.7966752485795041, - 22.30723987926143 - ], - [ - 0.7966752485795041, - 25.494051846590935 - ], - [ - 0.7966752485795041, - 27.88402210582393 - ], - [ - -0.7966752485796178, - 28.680752840909065 - ], - [ - -1.593350497159122, - 30.274103338068187 - ], - [ - -4.780106977982996, - 31.07077858664769 - ], - [ - -5.5767822265625, - 31.86750932173294 - ], - [ - -6.373512961647748, - 31.86750932173294 - ], - [ - -6.373512961647748, - 32.66418457031256 - ], - [ - -5.5767822265625, - 32.66418457031256 - ], - [ - -5.5767822265625, - 32.66418457031256 - ] - ], - "pressures": [ - 0.0078125, - 0.392578125, - 0.412109375, - 0.41796875, - 0.4375, - 0.46484375, - 0.50390625, - 0.5185546875, - 0.4736328125, - 0.4521484375, - 0.392578125, - 0.3310546875, - 0.2509765625, - 0.103515625, - 0.0234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.5767822265625, - 32.66418457031256 - ] - }, - { - "id": "A1Ml1mG3XxqsmmiFUrFpU", - "type": "freedraw", - "x": 346.07429960176546, - "y": -106.49074821967588, - "width": 47.004616477272634, - "height": 46.207830255681756, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 715452557, - "version": 441, - "versionNonce": 394064173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -1.5934059836648657 - ], - [ - -1.5934614701703822, - -1.5934059836648657 - ], - [ - -1.5934614701703822, - 3.18670099431813 - ], - [ - 0.7966752485796178, - 9.560213955965878 - ], - [ - 3.983376242897748, - 15.137051669034008 - ], - [ - 7.96686345880687, - 18.323808149857882 - ], - [ - 10.356889204545496, - 19.917214133522634 - ], - [ - 11.153564453125, - 19.917214133522634 - ], - [ - 12.746914950284122, - 19.917214133522634 - ], - [ - 13.543701171875, - 18.323808149857882 - ], - [ - 14.340376420454618, - 15.933782404119256 - ], - [ - 14.340376420454618, - 8.763538707386374 - ], - [ - 13.543701171875, - 2.390025745738626 - ], - [ - 13.543701171875, - -1.5934059836648657 - ], - [ - 13.543701171875, - -3.186756480823874 - ], - [ - 14.340376420454618, - -3.186756480823874 - ], - [ - 17.527077414772748, - -3.186756480823874 - ], - [ - 22.307239879261374, - -1.5934059836648657 - ], - [ - 27.884077592329618, - 1.5933504971590082 - ], - [ - 35.850941051136374, - 8.763538707386374 - ], - [ - 40.630992542613626, - 15.137051669034008 - ], - [ - 43.817804509943244, - 22.307239879261374 - ], - [ - 45.41115500710225, - 28.680697354403378 - ], - [ - 45.41115500710225, - 35.054210316051126 - ], - [ - 40.630992542613626, - 40.631048029119256 - ], - [ - 36.64761629971588, - 43.02107377485788 - ], - [ - 30.274103338068244, - 43.02107377485788 - ], - [ - 23.900590376420496, - 43.02107377485788 - ], - [ - 15.933726917613626, - 41.427723277698874 - ], - [ - 14.340376420454618, - 40.631048029119256 - ], - [ - 13.543701171875, - 40.631048029119256 - ], - [ - 14.340376420454618, - 40.631048029119256 - ], - [ - 14.340376420454618, - 40.631048029119256 - ] - ], - "pressures": [ - 0.0234375, - 0.2255859375, - 0.40234375, - 0.5478515625, - 0.5849609375, - 0.640625, - 0.705078125, - 0.80078125, - 0.8173828125, - 0.8408203125, - 0.8681640625, - 0.8935546875, - 0.9111328125, - 0.9296875, - 0.931640625, - 0.9365234375, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9794921875, - 0.787109375, - 0.4052734375, - 0.3115234375, - 0.1796875, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340376420454618, - 40.631048029119256 - ] - }, - { - "id": "PlT3_X7UQ1kxVOOoNEMJm", - "type": "freedraw", - "x": 210.63745434253252, - "y": -88.166940069818, - "width": 80.46542080965907, - "height": 102.7726606889205, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 182088365, - "version": 443, - "versionNonce": 1609024547, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186700994318187, - 4.780106977982996 - ], - [ - 7.966863458806813, - 16.730402166193244 - ], - [ - 10.356889204545439, - 25.493996360085248 - ], - [ - 11.153564453125, - 32.66412908380687 - ], - [ - 11.153564453125, - 36.64761629971599 - ], - [ - 7.966863458806813, - 37.444347034801126 - ], - [ - 2.390025745738626, - 37.444347034801126 - ], - [ - -5.576837713068187, - 35.054210316051126 - ], - [ - -14.340431906960191, - 30.274103338068244 - ], - [ - -23.103970614346565, - 25.493996360085248 - ], - [ - -33.46091530539769, - 18.323808149857996 - ], - [ - -39.03769753196019, - 14.340320933948874 - ], - [ - -43.81780450994319, - 11.153619939630744 - ], - [ - -50.19131747159088, - 7.96686345880687 - ], - [ - -53.37807395241475, - 7.170132723721622 - ], - [ - -56.564830433238626, - 7.96686345880687 - ], - [ - -59.75153142755681, - 11.950295188210248 - ], - [ - -63.73496315696019, - 17.52713290127849 - ], - [ - -67.71839488636363, - 24.697265625 - ], - [ - -69.31185635653407, - 44.61447975852275 - ], - [ - -67.71839488636363, - 61.34493741122162 - ], - [ - -64.53169389204544, - 77.27871981534099 - ], - [ - -61.344937411221565, - 88.43228426846599 - ], - [ - -55.76809969815338, - 96.39914772727275 - ], - [ - -49.394642223011374, - 98.78922895951712 - ], - [ - -39.03769753196019, - 101.17931019176137 - ], - [ - -27.08740234375, - 102.7726606889205 - ], - [ - -15.137107155539752, - 101.97592995383525 - ], - [ - -2.390081232244313, - 96.39914772727275 - ], - [ - 3.186700994318187, - 92.41571599786937 - ], - [ - 5.5767822265625, - 88.43228426846599 - ], - [ - 5.5767822265625, - 80.46542080965912 - ], - [ - 2.390025745738626, - 73.29523259943187 - ], - [ - -0.7967307350851911, - 69.31180087002849 - ], - [ - -0.7967307350851911, - 69.31180087002849 - ] - ], - "pressures": [ - 0.060546875, - 0.3212890625, - 0.4033203125, - 0.474609375, - 0.5322265625, - 0.599609375, - 0.69921875, - 0.73046875, - 0.8447265625, - 0.9150390625, - 0.9130859375, - 0.857421875, - 0.8203125, - 0.794921875, - 0.7568359375, - 0.748046875, - 0.75390625, - 0.75, - 0.7421875, - 0.7421875, - 0.75, - 0.7587890625, - 0.7744140625, - 0.7646484375, - 0.7646484375, - 0.7705078125, - 0.7763671875, - 0.7744140625, - 0.7685546875, - 0.70703125, - 0.6474609375, - 0.5771484375, - 0.2998046875, - 0.2021484375, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7967307350851911, - 69.31180087002849 - ] - }, - { - "id": "JB-L3BZYEmOKNKu0b1Z_x", - "type": "freedraw", - "x": 205.06061662946433, - "y": -79.40340136243162, - "width": 102.77271617542613, - "height": 119.50311834161926, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1056743469, - "version": 449, - "versionNonce": 1182811021, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - -2.390081232244256 - ], - [ - 5.576837713068187, - -1.593405983664752 - ], - [ - 8.763538707386374, - 2.39008123224437 - ], - [ - 11.950295188210248, - 9.560269442471622 - ], - [ - 13.543701171875, - 20.713889382102252 - ], - [ - 11.950295188210248, - 27.08734685724437 - ], - [ - 7.966863458806813, - 31.070778586647748 - ], - [ - 3.186756480823874, - 35.054210316051126 - ], - [ - -3.983431729403378, - 39.03769753196025 - ], - [ - -9.560269442471565, - 39.03769753196025 - ], - [ - -17.527132901278378, - 37.444291548295496 - ], - [ - -25.49399636008519, - 32.664240056818244 - ], - [ - -33.460859818892004, - 26.290671608664752 - ], - [ - -44.61447975852269, - 15.933726917613626 - ], - [ - -49.394642223011374, - 10.356944691051126 - ], - [ - -52.58139870383519, - 7.170188210227252 - ], - [ - -55.76809969815338, - 4.780162464488626 - ], - [ - -60.548262162642004, - 3.186756480823874 - ], - [ - -62.93828790838069, - 3.186756480823874 - ], - [ - -66.12498890269887, - 3.983431729403378 - ], - [ - -70.10842063210225, - 7.170188210227252 - ], - [ - -74.09190784801137, - 11.153619939630744 - ], - [ - -81.26209605823863, - 22.307239879261374 - ], - [ - -86.04220303622157, - 34.25753506747162 - ], - [ - -88.43228426846588, - 50.987992720170496 - ], - [ - -89.22901500355113, - 69.31180087002838 - ], - [ - -87.63560901988632, - 87.63560901988637 - ], - [ - -82.05877130681819, - 96.39920321377838 - ], - [ - -74.88863858309657, - 105.16274192116475 - ], - [ - -66.12498890269887, - 112.33293013139212 - ], - [ - -59.75153142755681, - 117.113037109375 - ], - [ - -50.98799272017044, - 117.113037109375 - ], - [ - -43.81780450994319, - 114.72295587713074 - ], - [ - -35.850941051136374, - 109.94284889914775 - ], - [ - -27.884077592329504, - 104.36606667258525 - ], - [ - -19.91721413352269, - 96.39920321377838 - ], - [ - -16.730457652698874, - 93.21239124644887 - ], - [ - -15.933726917613626, - 92.415771484375 - ], - [ - -15.137051669034065, - 90.82236550071025 - ], - [ - -15.137051669034065, - 90.02569025213074 - ], - [ - -15.137051669034065, - 90.02569025213074 - ] - ], - "pressures": [ - 0.0625, - 0.2333984375, - 0.353515625, - 0.54296875, - 0.82421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8447265625, - 0.2587890625, - 0.1416015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.137051669034065, - 90.02569025213074 - ] - }, - { - "id": "8ztLZNcBPFpll9VnnBdU8", - "type": "freedraw", - "x": 190.72024020900983, - "y": -80.2000211245055, - "width": 122.68987482244319, - "height": 125.87652033025563, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1672278221, - "version": 454, - "versionNonce": 323045315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593405983664752, - 0 - ], - [ - 3.983431729403378, - 4.780051491477252 - ], - [ - 7.170188210227252, - 11.950295188210248 - ], - [ - 9.560269442471565, - 19.120427911931756 - ], - [ - 10.356944691051126, - 27.087291370738626 - ], - [ - 7.170188210227252, - 30.2740478515625 - ], - [ - 3.186756480823817, - 33.460804332386374 - ], - [ - -2.390025745738683, - 35.054210316051126 - ], - [ - -12.746970436789809, - 35.054210316051126 - ], - [ - -23.103859641335248, - 30.2740478515625 - ], - [ - -34.25753506747162, - 23.900590376420382 - ], - [ - -43.81780450994319, - 17.527077414772748 - ], - [ - -51.78466796875, - 13.543645685369256 - ], - [ - -61.34493741122162, - 10.356889204545382 - ], - [ - -69.31180087002843, - 8.76348322088063 - ], - [ - -77.27866432883525, - 6.373457475142004 - ], - [ - -85.24552778764206, - 6.373457475142004 - ], - [ - -96.39914772727275, - 7.966863458806756 - ], - [ - -102.77260520241481, - 13.543645685369256 - ], - [ - -107.55276766690343, - 20.71383389559651 - ], - [ - -110.73946866122162, - 31.070778586647748 - ], - [ - -112.33293013139206, - 45.41109952059651 - ], - [ - -111.53619939630681, - 70.10842063210225 - ], - [ - -108.349442915483, - 82.85544655539775 - ], - [ - -102.77260520241481, - 93.21239124644887 - ], - [ - -95.60247247869319, - 102.77260520241475 - ], - [ - -82.85544655539775, - 115.51963112571025 - ], - [ - -74.09190784801137, - 121.89308860085225 - ], - [ - -65.328369140625, - 125.87652033025563 - ], - [ - -57.36150568181819, - 125.87652033025563 - ], - [ - -48.59791148792618, - 122.6898193359375 - ], - [ - -35.05421031605118, - 115.51963112571025 - ], - [ - -27.087291370738683, - 111.53619939630676 - ], - [ - -21.51056463068187, - 108.34944291548288 - ], - [ - -18.323808149857996, - 106.75603693181813 - ], - [ - -18.323808149857996, - 106.75603693181813 - ] - ], - "pressures": [ - 0.0908203125, - 0.38671875, - 0.50390625, - 0.75390625, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.8828125, - 0.87890625, - 0.861328125, - 0.8056640625, - 0.6845703125, - 0.5068359375, - 0.384765625, - 0.2529296875, - 0.1552734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -18.323808149857996, - 106.75603693181813 - ] - }, - { - "id": "YDhlS8uhSAVWOsAqgIs__", - "type": "freedraw", - "x": 216.21423656909502, - "y": -63.469674444818, - "width": 53.37801846590912, - "height": 31.070778586647748, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1016475213, - "version": 440, - "versionNonce": 334059363, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796675248579561, - 5.576837713068244 - ], - [ - 0.796675248579561, - 7.170188210227252 - ], - [ - 0, - 7.170188210227252 - ], - [ - -3.186756480823874, - 7.170188210227252 - ], - [ - -5.5767822265625, - 4.780162464488626 - ], - [ - -8.763538707386374, - 0.7967307350852479 - ], - [ - -12.747025923295439, - -6.373457475142004 - ], - [ - -13.543645685369313, - -10.356944691051126 - ], - [ - -13.543645685369313, - -11.950295188210248 - ], - [ - -11.950295188210191, - -12.746970436789752 - ], - [ - -9.560213955965878, - -14.340376420454504 - ], - [ - -7.170188210227252, - -15.136996182528378 - ], - [ - -7.170188210227252, - -15.933726917613626 - ], - [ - -6.373512961647691, - -15.933726917613626 - ], - [ - -8.763538707386374, - -16.73040216619313 - ], - [ - -13.543645685369313, - -18.323808149857882 - ], - [ - -19.91721413352269, - -19.120427911931756 - ], - [ - -27.087346857244313, - -19.120427911931756 - ], - [ - -33.460804332386374, - -19.120427911931756 - ], - [ - -43.021129261363626, - -15.136996182528378 - ], - [ - -48.597911487926126, - -11.950295188210248 - ], - [ - -50.98799272017044, - -7.966863458806756 - ], - [ - -52.58134321732956, - -3.18670099431813 - ], - [ - -52.58134321732956, - 4.780162464488626 - ], - [ - -50.98799272017044, - 7.96686345880687 - ], - [ - -48.597911487926126, - 10.356944691051126 - ], - [ - -46.2078857421875, - 11.153619939630744 - ], - [ - -43.81780450994319, - 11.950350674715992 - ], - [ - -41.427723277698874, - 11.153619939630744 - ], - [ - -39.83437278053975, - 10.356944691051126 - ], - [ - -39.03769753196019, - 7.96686345880687 - ], - [ - -39.03769753196019, - 7.170188210227252 - ], - [ - -39.03769753196019, - 7.170188210227252 - ] - ], - "pressures": [ - 0.0478515625, - 0.24609375, - 0.3427734375, - 0.78515625, - 0.8447265625, - 0.921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9365234375, - 0.8095703125, - 0.6953125, - 0.5380859375, - 0.3251953125, - 0.2353515625, - 0.1728515625, - 0.1455078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -39.03769753196019, - 7.170188210227252 - ] - }, - { - "id": "euOBoVExaOvjVEPDD9FeM", - "type": "freedraw", - "x": 177.17653903713483, - "y": -42.75572957621, - "width": 79.6687455610795, - "height": 99.58590420809662, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 920989421, - "version": 430, - "versionNonce": 1345221379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227309, - -3.983431729403378 - ], - [ - -11.153619939630687, - -7.96686345880687 - ], - [ - -15.137051669034122, - -11.950295188210248 - ], - [ - -18.32375266335231, - -15.137107155539752 - ], - [ - -22.307184392755687, - -18.323863636363626 - ], - [ - -31.86745383522731, - -21.5106201171875 - ], - [ - -39.03764204545456, - -21.5106201171875 - ], - [ - -47.00456099076706, - -21.5106201171875 - ], - [ - -56.564774946732996, - -19.120538884943244 - ], - [ - -61.34493741122162, - -16.730513139204504 - ], - [ - -66.12498890269887, - -12.747081409801126 - ], - [ - -70.10842063210231, - -5.576893199573874 - ], - [ - -73.29523259943181, - 3.18670099431813 - ], - [ - -74.09185236150569, - 18.323752663352252 - ], - [ - -69.31180087002843, - 31.070723100142004 - ], - [ - -61.34493741122162, - 43.81780450994313 - ], - [ - -50.987992720170496, - 55.76809969815338 - ], - [ - -36.647616299715935, - 69.31174538352275 - ], - [ - -30.2740478515625, - 74.88852761008525 - ], - [ - -24.697321111505687, - 78.07528409090912 - ], - [ - -18.32375266335231, - 78.07528409090912 - ], - [ - -11.950295188210248, - 78.07528409090912 - ], - [ - -3.186756480823874, - 74.09185236150563 - ], - [ - 1.593461470170439, - 70.90509588068176 - ], - [ - 3.983431729403378, - 69.31174538352275 - ], - [ - 5.576893199573817, - 67.71839488636363 - ], - [ - 5.576893199573817, - 67.71839488636363 - ] - ], - "pressures": [ - 0.046875, - 0.3818359375, - 0.599609375, - 0.787109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.78515625, - 0.353515625, - 0.2275390625, - 0.1455078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576893199573817, - 67.71839488636363 - ] - }, - { - "id": "kcJHzYLJkvFVVP45Q198A", - "type": "freedraw", - "x": 181.95670150162346, - "y": -40.365703830471375, - "width": 76.48193359375, - "height": 97.195878462358, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 813909677, - "version": 425, - "versionNonce": 1718121133, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350851911, - -0.7967307350852479 - ], - [ - -2.390081232244313, - -1.593405983664752 - ], - [ - -7.170188210227309, - -2.390025745738626 - ], - [ - -17.527132901278435, - -5.57683771306813 - ], - [ - -27.087346857244313, - -8.763594193892004 - ], - [ - -37.444347034801126, - -11.950350674715878 - ], - [ - -47.004505504261374, - -12.747025923295496 - ], - [ - -57.36150568181819, - -9.560269442471622 - ], - [ - -61.34493741122162, - -3.983487215909122 - ], - [ - -62.93828790838069, - 3.18670099431813 - ], - [ - -62.93828790838069, - 15.137051669034122 - ], - [ - -52.58139870383525, - 41.427778764204504 - ], - [ - -42.22445401278412, - 58.158125443892004 - ], - [ - -33.46091530539775, - 70.108476118608 - ], - [ - -26.290727095170496, - 77.27871981534088 - ], - [ - -18.323808149857996, - 80.46542080965912 - ], - [ - -6.373512961647748, - 83.65212180397725 - ], - [ - 0.7967307350851911, - 84.4488525390625 - ], - [ - 6.373457475142004, - 84.4488525390625 - ], - [ - 11.153619939630687, - 82.85544655539775 - ], - [ - 13.543645685369313, - 81.26215154474437 - ], - [ - 13.543645685369313, - 81.26215154474437 - ] - ], - "pressures": [ - 0.0341796875, - 0.21484375, - 0.552734375, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.828125, - 0.3505859375, - 0.1533203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.543645685369313, - 81.26215154474437 - ] - }, - { - "id": "Fr7ZcflgAk9pDHsDDL-z_", - "type": "freedraw", - "x": 179.56662026937914, - "y": -41.95910981413613, - "width": 82.85544655539775, - "height": 97.19593394886374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1200668675, - "version": 423, - "versionNonce": 1754208931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -11.950295188210248, - -7.96686345880687 - ], - [ - -19.1204833984375, - -11.153619939630744 - ], - [ - -27.08740234375, - -13.543701171875 - ], - [ - -35.05426580255681, - -14.340376420454618 - ], - [ - -43.02112926136368, - -11.950295188210248 - ], - [ - -50.191317471590935, - -7.170188210227252 - ], - [ - -54.971424449573874, - 0 - ], - [ - -58.95485617897731, - 16.730457652698874 - ], - [ - -58.95485617897731, - 30.27410333806813 - ], - [ - -48.59791148792618, - 49.394642223011374 - ], - [ - -37.444291548295496, - 61.34493741122162 - ], - [ - -26.29067160866481, - 70.10847611860788 - ], - [ - -14.340376420454561, - 77.27866432883525 - ], - [ - -1.593405983664809, - 81.26209605823863 - ], - [ - 9.560269442471565, - 82.85555752840912 - ], - [ - 21.510564630681813, - 82.85555752840912 - ], - [ - 23.90059037642044, - 80.46542080965912 - ], - [ - 23.90059037642044, - 78.87212579900563 - ], - [ - 23.103970614346565, - 78.07533957741475 - ], - [ - 23.103970614346565, - 78.07533957741475 - ] - ], - "pressures": [ - 0.0859375, - 0.423828125, - 0.6845703125, - 0.857421875, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.927734375, - 0.75, - 0.4013671875, - 0.2353515625, - 0.12890625, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.103970614346565, - 78.07533957741475 - ] - }, - { - "id": "NNwpi1rJmqYu2Qd44_uGw", - "type": "freedraw", - "x": 203.46721064579958, - "y": 30.539447536716125, - "width": 108.349442915483, - "height": 88.43222878196013, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2118319085, - "version": 436, - "versionNonce": 2139067661, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - -1.593350497159122 - ], - [ - -8.763483220880687, - -2.39008123224437 - ], - [ - -10.356889204545439, - -3.186756480823874 - ], - [ - -11.950295188210248, - -4.780106977982996 - ], - [ - -12.746914950284122, - -6.373512961647748 - ], - [ - -12.746914950284122, - -7.170188210227252 - ], - [ - -11.950295188210248, - -8.763538707386374 - ], - [ - -8.763483220880687, - -9.560213955965878 - ], - [ - -0.796619762073874, - -8.763538707386374 - ], - [ - 5.576837713068187, - -6.373512961647748 - ], - [ - 11.153675426136374, - -3.186756480823874 - ], - [ - 17.527132901278378, - -0.7966752485795041 - ], - [ - 25.493996360085248, - 3.186756480823874 - ], - [ - 38.24102228338069, - 8.763538707386374 - ], - [ - 47.00456099076706, - 10.35700017755687 - ], - [ - 55.76815518465912, - 11.15361993963063 - ], - [ - 63.73501864346588, - 10.35700017755687 - ], - [ - 70.10853160511363, - 7.170188210227252 - ], - [ - 78.0753950639205, - 0.7966752485795041 - ], - [ - 83.652177290483, - -4.780106977982996 - ], - [ - 88.43233975497162, - -11.950295188210248 - ], - [ - 93.2124467329545, - -20.713889382102252 - ], - [ - 95.60252796519887, - -35.05426580255687 - ], - [ - 95.60252796519887, - -44.61447975852275 - ], - [ - 93.2124467329545, - -53.37801846590912 - ], - [ - 88.43233975497162, - -61.34488192471588 - ], - [ - 78.0753950639205, - -70.9051513671875 - ], - [ - 70.90520685369313, - -74.88863858309662 - ], - [ - 66.92177512428975, - -76.48198908025563 - ], - [ - 63.73501864346588, - -77.2786088423295 - ], - [ - 62.141612659801126, - -77.2786088423295 - ], - [ - 59.7515869140625, - -77.2786088423295 - ], - [ - 59.7515869140625, - -77.2786088423295 - ] - ], - "pressures": [ - 0.017578125, - 0.1357421875, - 0.177734375, - 0.2119140625, - 0.2568359375, - 0.28125, - 0.287109375, - 0.291015625, - 0.2978515625, - 0.357421875, - 0.4189453125, - 0.455078125, - 0.4775390625, - 0.48046875, - 0.4892578125, - 0.4921875, - 0.4892578125, - 0.4853515625, - 0.4716796875, - 0.4765625, - 0.4716796875, - 0.4677734375, - 0.46484375, - 0.48046875, - 0.5029296875, - 0.5283203125, - 0.5341796875, - 0.541015625, - 0.5205078125, - 0.4951171875, - 0.4765625, - 0.3916015625, - 0.228515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 59.7515869140625, - -77.2786088423295 - ] - }, - { - "id": "kdE0jDXv4MHzskqKMuuet", - "type": "freedraw", - "x": 262.4221223112826, - "y": -46.73916130561338, - "width": 0, - "height": 0.796619762073874, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 917519107, - "version": 404, - "versionNonce": 1773784643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796619762073874 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.14453125, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 0.796619762073874 - ] - }, - { - "id": "T7czLENAe7EWpFHTzQPB5", - "type": "freedraw", - "x": 193.90699668983365, - "y": -29.212083890840745, - "width": 83.65217729048294, - "height": 108.34955388849426, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 338562819, - "version": 425, - "versionNonce": 37972845, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -4.780162464488626 - ], - [ - -5.576837713068187, - -8.763594193892004 - ], - [ - -13.543701171875, - -15.933782404119256 - ], - [ - -20.713889382102252, - -20.713889382102252 - ], - [ - -28.680752840909065, - -24.69732111150563 - ], - [ - -35.85094105113632, - -27.884077592329504 - ], - [ - -47.801236239346565, - -30.27415882457376 - ], - [ - -54.17474920099431, - -30.27415882457376 - ], - [ - -60.548262162642004, - -28.68075284090901 - ], - [ - -65.328369140625, - -24.69732111150563 - ], - [ - -70.10847611860794, - -19.12053888494313 - ], - [ - -74.88858309659088, - -9.560213955965878 - ], - [ - -75.68531383167613, - 0.7966752485796178 - ], - [ - -72.49855735085225, - 16.730402166193244 - ], - [ - -63.73501864346588, - 33.46085981889212 - ], - [ - -47.801236239346565, - 55.76809969815349 - ], - [ - -37.44429154829544, - 66.92171963778412 - ], - [ - -27.884077592329504, - 74.09196333451712 - ], - [ - -20.713889382102252, - 77.27866432883525 - ], - [ - -13.543701171875, - 78.0753950639205 - ], - [ - -2.390081232244313, - 74.09196333451712 - ], - [ - 3.983431729403435, - 70.10853160511374 - ], - [ - 7.966863458806813, - 67.71839488636374 - ], - [ - 7.966863458806813, - 67.71839488636374 - ] - ], - "pressures": [ - 0.005859375, - 0.208984375, - 0.2470703125, - 0.328125, - 0.4013671875, - 0.50390625, - 0.580078125, - 0.630859375, - 0.6533203125, - 0.66796875, - 0.673828125, - 0.669921875, - 0.677734375, - 0.671875, - 0.6513671875, - 0.64453125, - 0.6318359375, - 0.6318359375, - 0.6318359375, - 0.6064453125, - 0.55078125, - 0.3349609375, - 0.22265625, - 0.142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.966863458806813, - 67.71839488636374 - ] - }, - { - "id": "bLjN7vMnjlUgAgYmjK7Zq", - "type": "freedraw", - "x": 252.86185286881096, - "y": -94.54039754496, - "width": 43.81780450994319, - "height": 70.10842063210225, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1625107427, - "version": 424, - "versionNonce": 2130539981, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 4.780051491477252 - ], - [ - -4.780106977982996, - 7.966863458806756 - ], - [ - -5.576837713068187, - 11.153564453125 - ], - [ - -5.576837713068187, - 19.120427911931756 - ], - [ - -3.983431729403435, - 27.087291370738626 - ], - [ - -2.390081232244313, - 34.25747958096588 - ], - [ - 0, - 39.83437278053975 - ], - [ - 0.7966752485795041, - 42.22434303977275 - ], - [ - 1.593350497159122, - 42.22434303977275 - ], - [ - 3.186756480823874, - 41.42766779119313 - ], - [ - 5.5767822265625, - 38.240911310369256 - ], - [ - 7.170188210227252, - 32.664129083806756 - ], - [ - 7.966863458806756, - 22.30718439275563 - ], - [ - 7.966863458806756, - 17.527077414772748 - ], - [ - 7.966863458806756, - 15.136996182528378 - ], - [ - 9.560269442471622, - 15.136996182528378 - ], - [ - 12.746970436789752, - 16.7303466796875 - ], - [ - 17.527132901278378, - 20.713778409090878 - ], - [ - 23.900590376420382, - 27.087291370738626 - ], - [ - 32.6641845703125, - 37.44423606178975 - ], - [ - 36.64761629971588, - 43.81780450994313 - ], - [ - 38.240966796875, - 49.39453125 - ], - [ - 38.240966796875, - 55.76809969815338 - ], - [ - 35.054265802556756, - 65.32831365411926 - ], - [ - 31.070778586647748, - 68.5150146484375 - ], - [ - 25.493996360085248, - 70.10842063210225 - ], - [ - 19.1204833984375, - 70.10842063210225 - ], - [ - 14.340376420454504, - 69.31174538352275 - ], - [ - 9.560269442471622, - 67.71839488636363 - ], - [ - 8.763538707386374, - 67.71839488636363 - ], - [ - 11.15361993963063, - 68.5150146484375 - ], - [ - 12.746970436789752, - 68.5150146484375 - ], - [ - 12.746970436789752, - 68.5150146484375 - ] - ], - "pressures": [ - 0.1123046875, - 0.2548828125, - 0.3193359375, - 0.3837890625, - 0.4306640625, - 0.4736328125, - 0.5263671875, - 0.5625, - 0.591796875, - 0.5947265625, - 0.5888671875, - 0.59375, - 0.599609375, - 0.6064453125, - 0.6220703125, - 0.6318359375, - 0.677734375, - 0.6943359375, - 0.701171875, - 0.71875, - 0.73046875, - 0.7607421875, - 0.79296875, - 0.8056640625, - 0.822265625, - 0.822265625, - 0.822265625, - 0.78515625, - 0.697265625, - 0.458984375, - 0.4013671875, - 0.1396484375, - 0.095703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.746970436789752, - 68.5150146484375 - ] - }, - { - "id": "F928xubnDxSIRLhWbN1O9", - "type": "freedraw", - "x": 258.43863509537346, - "y": -76.21664488160775, - "width": 81.26215154474426, - "height": 95.60247247869324, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 899115469, - "version": 425, - "versionNonce": 303520131, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 24.697321111505744 - ], - [ - 3.186756480823874, - 27.08734685724437 - ], - [ - 4.780162464488626, - 27.884022105823874 - ], - [ - 7.170188210227252, - 29.47748357599437 - ], - [ - 11.153675426136374, - 31.070778586647748 - ], - [ - 12.747025923295382, - 31.070778586647748 - ], - [ - 14.340376420454504, - 31.070778586647748 - ], - [ - 15.933782404119256, - 31.070778586647748 - ], - [ - 16.730457652698874, - 29.47748357599437 - ], - [ - 19.12053888494313, - 25.494051846590878 - ], - [ - 21.510564630681756, - 20.713833895596622 - ], - [ - 23.900645862926126, - 16.730402166193244 - ], - [ - 27.884077592329504, - 14.340376420454504 - ], - [ - 36.64761629971588, - 14.340376420454504 - ], - [ - 42.22445401278412, - 16.730402166193244 - ], - [ - 47.80129172585225, - 18.323808149857996 - ], - [ - 54.971424449573874, - 21.5106201171875 - ], - [ - 65.328369140625, - 27.08734685724437 - ], - [ - 72.49855735085225, - 32.6641845703125 - ], - [ - 78.07533957741475, - 38.240966796875 - ], - [ - 81.26215154474426, - 43.817804509943244 - ], - [ - 81.26215154474426, - 47.80123623934662 - ], - [ - 78.87212579900563, - 55.76809969815338 - ], - [ - 73.29523259943176, - 64.53163840553975 - ], - [ - 67.71845037286926, - 74.88858309659088 - ], - [ - 61.34493741122162, - 84.4488525390625 - ], - [ - 50.19131747159088, - 92.41571599786937 - ], - [ - 42.22445401278412, - 94.80579723011363 - ], - [ - 34.25759055397725, - 95.60247247869324 - ], - [ - 28.680752840909122, - 95.60247247869324 - ], - [ - 23.103970614346622, - 94.80579723011363 - ], - [ - 18.323808149857882, - 94.00906649502838 - ], - [ - 17.527132901278378, - 93.2124467329545 - ], - [ - 17.527132901278378, - 93.2124467329545 - ] - ], - "pressures": [ - 0.01953125, - 0.5048828125, - 0.525390625, - 0.541015625, - 0.5595703125, - 0.5693359375, - 0.57421875, - 0.5712890625, - 0.572265625, - 0.5791015625, - 0.5849609375, - 0.5888671875, - 0.59375, - 0.6025390625, - 0.615234375, - 0.6220703125, - 0.6220703125, - 0.6337890625, - 0.6474609375, - 0.66015625, - 0.6787109375, - 0.6826171875, - 0.701171875, - 0.732421875, - 0.72265625, - 0.7109375, - 0.6845703125, - 0.67578125, - 0.6591796875, - 0.599609375, - 0.4462890625, - 0.333984375, - 0.2041015625, - 0.1689453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.527132901278378, - 93.2124467329545 - ] - }, - { - "id": "V1Y09o4WJqFo8mBZcde7l", - "type": "freedraw", - "x": 250.47177163656664, - "y": -84.1835083404145, - "width": 60.548262162642004, - "height": 65.328369140625, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 389126701, - "version": 430, - "versionNonce": 1086796845, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -1.5934059836648657 - ], - [ - -2.390025745738683, - -3.186756480823874 - ], - [ - -3.186756480823874, - -3.186756480823874 - ], - [ - -3.983431729403435, - -2.3900257457387397 - ], - [ - -3.983431729403435, - 0.7966752485795041 - ], - [ - -3.186756480823874, - 9.560269442471508 - ], - [ - 0, - 18.323808149857882 - ], - [ - 2.390081232244313, - 25.493996360085134 - ], - [ - 5.576837713068187, - 31.070778586647634 - ], - [ - 7.966863458806813, - 33.460915305397634 - ], - [ - 11.153619939630687, - 35.054210316051126 - ], - [ - 14.340376420454561, - 35.054210316051126 - ], - [ - 16.730457652698817, - 35.054210316051126 - ], - [ - 19.120538884943187, - 31.867453835227252 - ], - [ - 20.713889382102195, - 23.900590376420382 - ], - [ - 20.713889382102195, - 18.323808149857882 - ], - [ - 20.713889382102195, - 14.340376420454504 - ], - [ - 20.713889382102195, - 11.950295188210134 - ], - [ - 20.713889382102195, - 11.15361993963063 - ], - [ - 19.91721413352269, - 10.356889204545382 - ], - [ - 23.103970614346565, - 11.15361993963063 - ], - [ - 30.274158824573817, - 18.323808149857882 - ], - [ - 36.647616299715935, - 23.900590376420382 - ], - [ - 43.02112926136357, - 29.477483575994256 - ], - [ - 49.39464222301132, - 35.054210316051126 - ], - [ - 53.378073952414695, - 39.037642045454504 - ], - [ - 56.56483043323857, - 45.41121049360788 - ], - [ - 56.56483043323857, - 47.80123623934651 - ], - [ - 55.768155184659065, - 50.191261985085134 - ], - [ - 51.78466796874994, - 52.581343217329504 - ], - [ - 42.224454012784065, - 57.36150568181813 - ], - [ - 36.647616299715935, - 59.751531427556756 - ], - [ - 30.274158824573817, - 61.34493741122151 - ], - [ - 26.290671608664695, - 62.141612659801126 - ], - [ - 23.90064586292607, - 61.34493741122151 - ], - [ - 21.510564630681813, - 58.95485617897725 - ], - [ - 21.510564630681813, - 57.36150568181813 - ], - [ - 21.510564630681813, - 56.56477494673288 - ], - [ - 21.510564630681813, - 56.56477494673288 - ] - ], - "pressures": [ - 0.015625, - 0.033203125, - 0.087890625, - 0.1416015625, - 0.1953125, - 0.2412109375, - 0.2958984375, - 0.337890625, - 0.412109375, - 0.462890625, - 0.50390625, - 0.53125, - 0.5537109375, - 0.55859375, - 0.57421875, - 0.58984375, - 0.611328125, - 0.640625, - 0.6533203125, - 0.66015625, - 0.666015625, - 0.701171875, - 0.73046875, - 0.75390625, - 0.87890625, - 0.900390625, - 0.9345703125, - 0.96484375, - 0.986328125, - 0.986328125, - 0.9814453125, - 0.9384765625, - 0.8740234375, - 0.7685546875, - 0.638671875, - 0.431640625, - 0.2236328125, - 0.13671875, - 0.0712890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.510564630681813, - 56.56477494673288 - ] - }, - { - "id": "Sz3OIgJRBvtYAlKDb8nCb", - "type": "freedraw", - "x": 279.9491997260552, - "y": -24.43197691285775, - "width": 92.41577148437494, - "height": 74.09190784801137, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 220257187, - "version": 422, - "versionNonce": 2039951651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -0.7966752485795041 - ], - [ - 0, - -0.7966752485795041 - ], - [ - 2.39008123224437, - -1.593405983664752 - ], - [ - 9.560269442471622, - -2.390025745738626 - ], - [ - 16.730457652698874, - -2.390025745738626 - ], - [ - 23.103970614346622, - -1.593405983664752 - ], - [ - 29.477428089488626, - 1.593405983664752 - ], - [ - 35.05426580255687, - 4.780106977982996 - ], - [ - 41.42777876420462, - 9.560269442471622 - ], - [ - 51.78466796875, - 18.323808149857996 - ], - [ - 57.361561168323874, - 24.697321111505744 - ], - [ - 59.7515869140625, - 31.867509321732996 - ], - [ - 59.7515869140625, - 38.240966796875 - ], - [ - 54.971424449573874, - 41.427778764204504 - ], - [ - 47.80123623934662, - 44.61447975852275 - ], - [ - 39.03769753196025, - 49.394642223011374 - ], - [ - 29.477428089488626, - 55.76809969815338 - ], - [ - 19.917214133522748, - 62.141612659801126 - ], - [ - 7.9669189453125, - 68.51512562144887 - ], - [ - 0, - 70.9051513671875 - ], - [ - -9.560213955965878, - 71.70188210227275 - ], - [ - -22.307239879261374, - 70.9051513671875 - ], - [ - -28.680752840909065, - 70.108476118608 - ], - [ - -31.867453835227252, - 70.108476118608 - ], - [ - -32.66418457031244, - 70.108476118608 - ], - [ - -31.867453835227252, - 70.108476118608 - ], - [ - -29.47742808948857, - 69.31185635653412 - ], - [ - -27.884022105823817, - 68.51512562144887 - ], - [ - -27.884022105823817, - 66.92171963778412 - ], - [ - -26.290671608664752, - 66.1250443892045 - ], - [ - -24.697265625, - 66.1250443892045 - ], - [ - -23.900590376420382, - 65.32842462713074 - ], - [ - -23.900590376420382, - 65.32842462713074 - ] - ], - "pressures": [ - 0.0732421875, - 0.2578125, - 0.330078125, - 0.423828125, - 0.5078125, - 0.6337890625, - 0.7587890625, - 0.8154296875, - 0.87890625, - 0.900390625, - 0.90625, - 0.904296875, - 0.8984375, - 0.8955078125, - 0.8740234375, - 0.83203125, - 0.80078125, - 0.748046875, - 0.705078125, - 0.6943359375, - 0.6884765625, - 0.6826171875, - 0.6552734375, - 0.646484375, - 0.640625, - 0.642578125, - 0.3486328125, - 0.2177734375, - 0.1708984375, - 0.13671875, - 0.09375, - 0.0244140625, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.900590376420382, - 65.32842462713074 - ] - }, - { - "id": "iqqKpQcdtZx7kMaG7cilc", - "type": "freedraw", - "x": 282.3392809582996, - "y": -23.635301664278245, - "width": 105.95947265625, - "height": 86.04225852272737, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 199834851, - "version": 428, - "versionNonce": 1938433677, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 0 - ], - [ - -5.576837713068244, - 2.39008123224437 - ], - [ - -6.373512961647748, - 5.576837713068244 - ], - [ - -6.373512961647748, - 7.170188210227366 - ], - [ - -6.373512961647748, - 9.560269442471622 - ], - [ - -3.186756480823874, - 13.543701171875 - ], - [ - 1.593350497159122, - 18.323808149857996 - ], - [ - 8.763538707386374, - 25.493996360085248 - ], - [ - 11.950295188210248, - 27.884077592329618 - ], - [ - 13.543701171875, - 29.47742808948874 - ], - [ - 15.933726917613626, - 29.47742808948874 - ], - [ - 19.1204833984375, - 29.47742808948874 - ], - [ - 22.307239879261374, - 27.884077592329618 - ], - [ - 24.69732111150563, - 25.493996360085248 - ], - [ - 27.087346857244256, - 22.307239879261374 - ], - [ - 29.477428089488626, - 18.323808149857996 - ], - [ - 35.054265802556756, - 13.543701171875 - ], - [ - 41.427723277698874, - 11.950295188210248 - ], - [ - 49.39458673650563, - 10.35694469105124 - ], - [ - 61.34488192471588, - 9.560269442471622 - ], - [ - 70.10853160511363, - 8.763594193892118 - ], - [ - 78.0753950639205, - 9.560269442471622 - ], - [ - 85.24558327414775, - 12.74708140980124 - ], - [ - 90.8223100142045, - 16.730513139204618 - ], - [ - 95.60247247869313, - 21.51056463068187 - ], - [ - 99.58595969460225, - 30.274103338068244 - ], - [ - 99.58595969460225, - 38.241022283380744 - ], - [ - 95.60247247869313, - 47.80123623934662 - ], - [ - 86.83893377130676, - 60.54831764914775 - ], - [ - 72.49855735085225, - 77.27866432883525 - ], - [ - 62.141557173295496, - 82.85550204190349 - ], - [ - 54.174693714488626, - 86.04225852272737 - ], - [ - 48.597911487926126, - 86.04225852272737 - ], - [ - 44.61447975852275, - 86.04225852272737 - ], - [ - 39.83437278053975, - 86.04225852272737 - ], - [ - 37.444291548295496, - 86.04225852272737 - ], - [ - 35.054265802556756, - 85.24552778764212 - ], - [ - 34.25753506747162, - 84.44890802556824 - ], - [ - 34.25753506747162, - 84.44890802556824 - ] - ], - "pressures": [ - 0.0107421875, - 0.14453125, - 0.2373046875, - 0.283203125, - 0.3310546875, - 0.3701171875, - 0.3896484375, - 0.4072265625, - 0.4580078125, - 0.474609375, - 0.4833984375, - 0.4873046875, - 0.4912109375, - 0.4912109375, - 0.4912109375, - 0.4921875, - 0.4951171875, - 0.49609375, - 0.49609375, - 0.50390625, - 0.5078125, - 0.5, - 0.5, - 0.4990234375, - 0.5009765625, - 0.5009765625, - 0.4970703125, - 0.4951171875, - 0.5048828125, - 0.5048828125, - 0.4892578125, - 0.482421875, - 0.4501953125, - 0.3994140625, - 0.349609375, - 0.2783203125, - 0.201171875, - 0.134765625, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.25753506747162, - 84.44890802556824 - ] - }, - { - "id": "TqQrAzCRS9utQV5EVRgVu", - "type": "freedraw", - "x": 314.2067902800326, - "y": 61.61022612336387, - "width": 94.805741743608, - "height": 50.19126198508525, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 529182285, - "version": 416, - "versionNonce": 2121995459, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.5933504971590082, - 0 - ], - [ - 4.780106977982882, - -2.390025745738626 - ], - [ - 8.76353870738626, - -7.170188210227252 - ], - [ - 13.543645685369256, - -12.746914950284122 - ], - [ - 16.73040216619313, - -19.1204833984375 - ], - [ - 21.510509144176126, - -27.884022105823874 - ], - [ - 21.510509144176126, - -31.070778586647748 - ], - [ - 21.510509144176126, - -33.46085981889212 - ], - [ - 18.323808149857882, - -35.054210316051126 - ], - [ - 9.560213955965878, - -32.66412908380687 - ], - [ - 1.5933504971590082, - -29.477428089488626 - ], - [ - -6.373512961647748, - -24.69721013849437 - ], - [ - -15.137051669034122, - -21.510509144176126 - ], - [ - -24.697321111505744, - -19.1204833984375 - ], - [ - -38.241022283380744, - -17.527077414772748 - ], - [ - -47.00456099076712, - -19.1204833984375 - ], - [ - -54.971424449573874, - -22.307239879261374 - ], - [ - -62.14161265980118, - -26.290671608664752 - ], - [ - -68.51512562144893, - -31.867453835227252 - ], - [ - -71.70188210227275, - -35.054210316051126 - ], - [ - -72.49855735085231, - -39.03764204545462 - ], - [ - -73.29523259943187, - -42.22439852627838 - ], - [ - -73.29523259943187, - -44.61442427201712 - ], - [ - -72.49855735085231, - -47.004505504261374 - ], - [ - -71.70188210227275, - -47.80123623934662 - ], - [ - -70.108476118608, - -48.597856001420496 - ], - [ - -68.51512562144893, - -49.394586736505744 - ], - [ - -66.12504438920462, - -50.19126198508525 - ], - [ - -66.12504438920462, - -50.19126198508525 - ] - ], - "pressures": [ - 0.056640625, - 0.17578125, - 0.22265625, - 0.263671875, - 0.2958984375, - 0.3134765625, - 0.3408203125, - 0.361328125, - 0.384765625, - 0.470703125, - 0.626953125, - 0.697265625, - 0.708984375, - 0.728515625, - 0.74609375, - 0.7626953125, - 0.751953125, - 0.74609375, - 0.744140625, - 0.73046875, - 0.712890625, - 0.6376953125, - 0.5087890625, - 0.3916015625, - 0.3095703125, - 0.26953125, - 0.2060546875, - 0.1591796875, - 0.115234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -66.12504438920462, - -50.19126198508525 - ] - }, - { - "id": "ESyJOOGChzbdNL44BpNkI", - "type": "freedraw", - "x": 241.70823292918027, - "y": 3.452100679471755, - "width": 39.037642045454504, - "height": 36.64761629971599, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 588074669, - "version": 403, - "versionNonce": 167759085, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 21.51056463068187 - ], - [ - 0, - 27.08734685724437 - ], - [ - 2.390081232244313, - 29.47742808948874 - ], - [ - 7.966863458806813, - 34.25753506747162 - ], - [ - 11.950295188210191, - 36.64761629971599 - ], - [ - 17.527132901278435, - 36.64761629971599 - ], - [ - 21.510564630681813, - 35.05421031605124 - ], - [ - 27.087346857244313, - 30.274103338068244 - ], - [ - 29.47742808948857, - 28.68069735440349 - ], - [ - 31.86750932173294, - 23.900590376420496 - ], - [ - 34.257535067471565, - 17.52713290127849 - ], - [ - 35.05421031605107, - 14.340320933948874 - ], - [ - 35.05421031605107, - 11.153619939630744 - ], - [ - 35.05421031605107, - 10.356889204545496 - ], - [ - 34.257535067471565, - 10.356889204545496 - ], - [ - 34.257535067471565, - 10.356889204545496 - ] - ], - "pressures": [ - 0.052734375, - 0.47265625, - 0.5107421875, - 0.5205078125, - 0.5439453125, - 0.5712890625, - 0.5966796875, - 0.609375, - 0.626953125, - 0.6376953125, - 0.646484375, - 0.646484375, - 0.642578125, - 0.626953125, - 0.576171875, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.257535067471565, - 10.356889204545496 - ] - }, - { - "id": "zUF8GZB16j1NxSdahwKYw", - "type": "freedraw", - "x": 273.5757422509132, - "y": 21.77590882932975, - "width": 51.78466796875, - "height": 45.41115500710225, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 713905165, - "version": 408, - "versionNonce": 1885439075, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 0 - ], - [ - -1.593405983664752, - -0.7966752485795041 - ], - [ - -1.593405983664752, - -1.593405983664752 - ], - [ - 0.7966752485795041, - -2.390081232244256 - ], - [ - 5.5767822265625, - -3.186756480823874 - ], - [ - 17.527077414772748, - -3.186756480823874 - ], - [ - 27.08734685724437, - 0 - ], - [ - 35.85088556463063, - 3.186756480823874 - ], - [ - 42.22439852627838, - 7.170188210227252 - ], - [ - 47.004505504261374, - 11.153619939630744 - ], - [ - 50.19126198508525, - 17.527077414772748 - ], - [ - 50.19126198508525, - 21.510509144176126 - ], - [ - 48.597911487926126, - 27.08740234375 - ], - [ - 44.61447975852275, - 32.66412908380687 - ], - [ - 37.444291548295496, - 39.03769753196025 - ], - [ - 32.6641845703125, - 41.427723277698874 - ], - [ - 29.477428089488626, - 42.22439852627838 - ], - [ - 27.08734685724437, - 42.22439852627838 - ], - [ - 25.493996360085248, - 42.22439852627838 - ], - [ - 24.697265625, - 42.22439852627838 - ], - [ - 25.493996360085248, - 42.22439852627838 - ], - [ - 27.884022105823874, - 40.63104802911937 - ], - [ - 27.884022105823874, - 40.63104802911937 - ] - ], - "pressures": [ - 0.076171875, - 0.1171875, - 0.1513671875, - 0.3486328125, - 0.5087890625, - 0.6640625, - 0.8828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.857421875, - 0.6337890625, - 0.5126953125, - 0.109375, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884022105823874, - 40.63104802911937 - ] - }, - { - "id": "1s4LiC4mj4UaMqdSdutEX", - "type": "freedraw", - "x": 274.3724174994927, - "y": 24.165934575068377, - "width": 66.92171963778412, - "height": 39.03769753196025, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 716702637, - "version": 408, - "versionNonce": 1672587085, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0.7967307350852479 - ], - [ - 1.593350497159122, - 0.7967307350852479 - ], - [ - 6.373512961647748, - 0.7967307350852479 - ], - [ - 15.137051669034122, - 0.7967307350852479 - ], - [ - 21.51056463068187, - 1.593405983664752 - ], - [ - 28.680752840909122, - 1.593405983664752 - ], - [ - 36.64761629971599, - 2.39008123224437 - ], - [ - 44.61447975852275, - 2.39008123224437 - ], - [ - 54.971424449573874, - 5.576837713068244 - ], - [ - 60.548206676136374, - 9.560269442471622 - ], - [ - 64.5316938920455, - 14.340376420454618 - ], - [ - 66.12504438920462, - 19.917214133522748 - ], - [ - 63.73501864346599, - 27.884077592329618 - ], - [ - 59.75153142755687, - 31.867509321732996 - ], - [ - 55.76809969815349, - 35.05426580255687 - ], - [ - 51.78466796875, - 38.241022283380744 - ], - [ - 49.394586736505744, - 39.03769753196025 - ], - [ - 46.20783025568187, - 39.03769753196025 - ], - [ - 43.817804509943244, - 39.03769753196025 - ], - [ - 43.021129261363626, - 37.444291548295496 - ], - [ - 42.22439852627849, - 36.64767178622162 - ], - [ - 42.22439852627849, - 35.850941051136374 - ], - [ - 42.22439852627849, - 35.850941051136374 - ] - ], - "pressures": [ - 0.037109375, - 0.3330078125, - 0.435546875, - 0.59765625, - 0.8876953125, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.900390625, - 0.7666015625, - 0.458984375, - 0.267578125, - 0.17578125, - 0.142578125, - 0.095703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.22439852627849, - 35.850941051136374 - ] - }, - { - "id": "QJJ3T2o5bVlVm3K0tN4TQ", - "type": "freedraw", - "x": 259.2353658304587, - "y": -88.96367080490324, - "width": 67.71845037286937, - "height": 74.88863858309662, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 423246253, - "version": 423, - "versionNonce": 655949827, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0 - ], - [ - 0, - 1.5934059836648657 - ], - [ - -1.5934059836648657, - 6.373568448153492 - ], - [ - -2.39008123224437, - 10.35700017755687 - ], - [ - -2.39008123224437, - 15.93378240411937 - ], - [ - -2.39008123224437, - 23.90064586292624 - ], - [ - 0, - 29.47742808948874 - ], - [ - 3.186756480823874, - 35.05426580255687 - ], - [ - 6.373457475142004, - 38.241077769886374 - ], - [ - 7.966863458806756, - 39.03769753196025 - ], - [ - 9.560213955965878, - 39.03769753196025 - ], - [ - 13.543645685369256, - 36.64761629971599 - ], - [ - 16.73040216619313, - 33.46085981889212 - ], - [ - 19.917158647017004, - 28.680752840909122 - ], - [ - 23.103915127840878, - 22.307295365767118 - ], - [ - 23.900590376420382, - 19.120538884943244 - ], - [ - 24.697265625, - 17.52713290127849 - ], - [ - 25.493996360085134, - 15.137051669034122 - ], - [ - 27.087346857244256, - 13.543701171875 - ], - [ - 29.477428089488626, - 13.543701171875 - ], - [ - 35.054210316051126, - 13.543701171875 - ], - [ - 40.631048029119256, - 16.730457652698874 - ], - [ - 50.191261985085134, - 24.697321111505744 - ], - [ - 55.76809969815338, - 31.867509321732996 - ], - [ - 61.34488192471588, - 40.63104802911937 - ], - [ - 64.53163840553975, - 49.394642223011374 - ], - [ - 65.328369140625, - 56.56483043323874 - ], - [ - 63.734963156960134, - 64.5316938920455 - ], - [ - 58.95485617897725, - 68.51512562144887 - ], - [ - 50.191261985085134, - 71.70188210227275 - ], - [ - 35.85088556463063, - 74.88863858309662 - ], - [ - 31.867453835227252, - 74.88863858309662 - ], - [ - 23.103915127840878, - 74.88863858309662 - ], - [ - 19.1204833984375, - 73.29523259943187 - ], - [ - 17.527077414772634, - 70.90520685369324 - ], - [ - 17.527077414772634, - 69.31180087002849 - ], - [ - 19.917158647017004, - 67.71845037286937 - ], - [ - 19.917158647017004, - 67.71845037286937 - ] - ], - "pressures": [ - 0.001953125, - 0.1982421875, - 0.55859375, - 0.662109375, - 0.724609375, - 0.8056640625, - 0.9111328125, - 0.9423828125, - 0.9560546875, - 0.9619140625, - 0.96875, - 0.96875, - 0.966796875, - 0.96875, - 0.96875, - 0.9560546875, - 0.9384765625, - 0.9189453125, - 0.9111328125, - 0.90625, - 0.9169921875, - 0.927734375, - 0.931640625, - 0.9345703125, - 0.94921875, - 0.96484375, - 0.994140625, - 1, - 1, - 1, - 1, - 0.94921875, - 0.900390625, - 0.6787109375, - 0.515625, - 0.3310546875, - 0.2001953125, - 0.0517578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 19.917158647017004, - 67.71845037286937 - ] - }, - { - "id": "_v8TAa78jgyjVZMowfGbL", - "type": "freedraw", - "x": 264.0154728084416, - "y": -84.1835083404145, - "width": 59.75158691406244, - "height": 89.22901500355113, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 363056845, - "version": 427, - "versionNonce": 855193005, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -1.5934059836648657 - ], - [ - -6.373512961647748, - 0.7966752485795041 - ], - [ - -7.966863458806756, - 6.373457475142004 - ], - [ - -11.15361993963063, - 18.323808149857882 - ], - [ - -12.747025923295439, - 26.290671608664752 - ], - [ - -13.543701171874943, - 32.6641845703125 - ], - [ - -13.543701171874943, - 39.83431729403401 - ], - [ - -10.356944691051126, - 46.207830255681756 - ], - [ - -7.170188210227252, - 52.581343217329504 - ], - [ - -5.57683771306813, - 53.37807395241475 - ], - [ - -3.186756480823874, - 53.37807395241475 - ], - [ - 0, - 50.98799272017038 - ], - [ - 4.780106977982996, - 46.207830255681756 - ], - [ - 7.170188210227252, - 42.22439852627838 - ], - [ - 7.96686345880687, - 38.240966796875 - ], - [ - 7.96686345880687, - 34.25753506747151 - ], - [ - 7.96686345880687, - 31.867453835227252 - ], - [ - 7.96686345880687, - 30.27410333806813 - ], - [ - 8.763538707386374, - 30.27410333806813 - ], - [ - 13.543701171875, - 30.27410333806813 - ], - [ - 18.323808149857996, - 33.460915305397634 - ], - [ - 23.10391512784099, - 36.64761629971588 - ], - [ - 27.884077592329618, - 41.427778764204504 - ], - [ - 39.03769753196025, - 51.78466796875 - ], - [ - 43.817804509943244, - 58.95485617897725 - ], - [ - 46.2078857421875, - 65.328369140625 - ], - [ - 46.2078857421875, - 69.31180087002838 - ], - [ - 45.41115500710225, - 74.09190784801126 - ], - [ - 38.240966796875, - 81.26215154474426 - ], - [ - 31.867509321732996, - 85.24558327414763 - ], - [ - 23.900645862926126, - 87.63560901988626 - ], - [ - 15.933726917613626, - 87.63560901988626 - ], - [ - 9.560269442471622, - 86.83887828480113 - ], - [ - 4.780106977982996, - 82.05877130681813 - ], - [ - 2.39008123224437, - 78.87201482599426 - ], - [ - 1.593350497159122, - 77.27871981534088 - ], - [ - 0.7966752485796178, - 74.88858309659088 - ], - [ - 0, - 73.2952880859375 - ], - [ - 0, - 70.9051513671875 - ], - [ - 0, - 69.31180087002838 - ], - [ - 0.7966752485796178, - 67.71839488636363 - ], - [ - 0.7966752485796178, - 67.71839488636363 - ] - ], - "pressures": [ - 0.0009765625, - 0.34765625, - 0.4892578125, - 0.615234375, - 0.7724609375, - 0.8935546875, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.83203125, - 0.53125, - 0.3447265625, - 0.2587890625, - 0.1611328125, - 0.1240234375, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485796178, - 67.71839488636363 - ] - }, - { - "id": "3npBSmXlNOxq8vI4LwiAe", - "type": "freedraw", - "x": 256.84528459821433, - "y": -79.40340136243162, - "width": 62.141612659801126, - "height": 86.83893377130687, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1225777325, - "version": 428, - "versionNonce": 2090862499, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593405983664752 - ], - [ - -0.7966752485795041, - 1.593350497159122 - ], - [ - -1.593350497159122, - 7.170188210227252 - ], - [ - -1.593350497159122, - 15.933726917613626 - ], - [ - -1.593350497159122, - 24.697376598011374 - ], - [ - 0, - 32.664240056818244 - ], - [ - 2.39008123224437, - 43.021129261363626 - ], - [ - 5.576837713068244, - 47.00456099076712 - ], - [ - 7.170188210227252, - 49.394586736505744 - ], - [ - 9.560269442471622, - 49.394586736505744 - ], - [ - 11.950295188210248, - 48.59796697443187 - ], - [ - 16.730457652698874, - 43.021129261363626 - ], - [ - 19.917158647017004, - 39.03769753196025 - ], - [ - 21.51056463068187, - 37.444291548295496 - ], - [ - 23.103915127840878, - 36.64767178622162 - ], - [ - 23.900645862926126, - 35.850941051136374 - ], - [ - 25.493996360085248, - 34.25753506747162 - ], - [ - 26.290671608664752, - 33.46085981889212 - ], - [ - 27.884077592329504, - 32.664240056818244 - ], - [ - 31.867509321732996, - 33.46085981889212 - ], - [ - 40.63104802911937, - 39.03769753196025 - ], - [ - 46.2078857421875, - 44.61453524502838 - ], - [ - 51.78466796875, - 50.987992720170496 - ], - [ - 56.564774946732996, - 58.15818093039775 - ], - [ - 60.548262162642004, - 68.51518110795462 - ], - [ - 60.548262162642004, - 73.29523259943187 - ], - [ - 56.564774946732996, - 77.27866432883525 - ], - [ - 49.394642223011374, - 80.46547629616475 - ], - [ - 39.83437278053975, - 83.652177290483 - ], - [ - 25.493996360085248, - 85.24552778764212 - ], - [ - 16.730457652698874, - 85.24552778764212 - ], - [ - 10.356944691051126, - 83.652177290483 - ], - [ - 4.780106977982996, - 81.26209605823863 - ], - [ - 3.983431729403378, - 78.87201482599437 - ], - [ - 3.186756480823874, - 77.27866432883525 - ], - [ - 3.186756480823874, - 74.88858309659088 - ], - [ - 3.186756480823874, - 73.29523259943187 - ], - [ - 3.186756480823874, - 72.498612837358 - ], - [ - 4.780106977982996, - 72.498612837358 - ], - [ - 6.373512961647748, - 72.498612837358 - ], - [ - 7.170188210227252, - 73.29523259943187 - ], - [ - 8.763538707386374, - 75.68531383167613 - ], - [ - 8.763538707386374, - 75.68531383167613 - ] - ], - "pressures": [ - 0.013671875, - 0.380859375, - 0.5888671875, - 0.7685546875, - 0.927734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9755859375, - 0.734375, - 0.6025390625, - 0.287109375, - 0.2001953125, - 0.1494140625, - 0.08984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.763538707386374, - 75.68531383167613 - ] - }, - { - "id": "-wahVNqWap3b2SO4ecUuo", - "type": "freedraw", - "x": 240.9115576806007, - "y": 5.842126425210495, - "width": 60.54826216264206, - "height": 55.76815518465912, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1246220387, - "version": 418, - "versionNonce": 587200525, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - 1.593405983664752 - ], - [ - 7.170188210227252, - 3.186811967329504 - ], - [ - 9.560213955965935, - 6.373512961647634 - ], - [ - 11.153619939630687, - 11.15367542613626 - ], - [ - 11.153619939630687, - 14.340376420454504 - ], - [ - 8.763538707386374, - 18.323808149857882 - ], - [ - 5.5767822265625, - 19.917214133522634 - ], - [ - 1.593350497159122, - 20.713889382102252 - ], - [ - -3.983431729403378, - 20.713889382102252 - ], - [ - -10.356944691051126, - 19.917214133522634 - ], - [ - -12.747025923295439, - 19.917214133522634 - ], - [ - -8.763594193892061, - 24.69732111150563 - ], - [ - -2.390081232244313, - 29.477428089488626 - ], - [ - 4.780106977982939, - 34.25759055397725 - ], - [ - 11.950295188210248, - 37.44429154829538 - ], - [ - 19.917158647017004, - 38.24102228338063 - ], - [ - 25.493996360085248, - 37.44429154829538 - ], - [ - 30.27410333806813, - 35.0543212890625 - ], - [ - 35.054210316051126, - 31.867509321732882 - ], - [ - 39.83437278053975, - 25.493996360085134 - ], - [ - 45.41115500710225, - 14.340376420454504 - ], - [ - 47.004560990767004, - 7.966863458806756 - ], - [ - 47.80123623934662, - 3.186811967329504 - ], - [ - 46.20783025568187, - -1.593350497159122 - ], - [ - 39.037642045454504, - -10.35694469105124 - ], - [ - 34.25753506747162, - -15.137051669034122 - ], - [ - 31.070778586647748, - -17.52713290127849 - ], - [ - 28.680752840909122, - -17.52713290127849 - ], - [ - 27.08734685724437, - -17.52713290127849 - ], - [ - 25.493996360085248, - -17.52713290127849 - ], - [ - 23.900590376420496, - -17.52713290127849 - ], - [ - 23.103915127840878, - -17.52713290127849 - ], - [ - 22.307239879261374, - -15.93372691761374 - ], - [ - 22.307239879261374, - -15.137051669034122 - ], - [ - 22.307239879261374, - -15.137051669034122 - ] - ], - "pressures": [ - 0.0771484375, - 0.3564453125, - 0.44140625, - 0.5283203125, - 0.599609375, - 0.6787109375, - 0.828125, - 0.884765625, - 0.9365234375, - 0.9453125, - 0.9296875, - 0.9345703125, - 0.8955078125, - 0.9130859375, - 0.951171875, - 0.9619140625, - 0.966796875, - 0.9775390625, - 0.986328125, - 0.9921875, - 1, - 0.9814453125, - 0.9755859375, - 0.9365234375, - 0.8916015625, - 0.857421875, - 0.8076171875, - 0.716796875, - 0.6474609375, - 0.4296875, - 0.2177734375, - 0.1630859375, - 0.126953125, - 0.0869140625, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307239879261374, - -15.137051669034122 - ] - }, - { - "id": "SyyUP69LBN3Vzs8FT_6dj", - "type": "freedraw", - "x": 234.53804471895296, - "y": 5.045506663136621, - "width": 77.27866432883525, - "height": 57.3614501953125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1915336173, - "version": 415, - "versionNonce": 119872323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.153619939630687, - 27.087291370738626 - ], - [ - 3.186756480823874, - 28.680697354403378 - ], - [ - 0, - 28.680697354403378 - ], - [ - -8.763538707386317, - 28.680697354403378 - ], - [ - -14.340376420454504, - 28.680697354403378 - ], - [ - -18.32380814985794, - 28.680697354403378 - ], - [ - -19.917158647017004, - 27.884022105823874 - ], - [ - -18.32380814985794, - 30.2740478515625 - ], - [ - -15.137051669034065, - 32.664129083806756 - ], - [ - -10.356944691051126, - 35.850941051136374 - ], - [ - -0.7966752485795041, - 41.42766779119313 - ], - [ - 7.96686345880687, - 45.41109952059651 - ], - [ - 16.730402166193187, - 47.80123623934651 - ], - [ - 24.697321111505744, - 48.59785600142038 - ], - [ - 35.05426580255687, - 48.59785600142038 - ], - [ - 41.427723277698874, - 47.004505504261374 - ], - [ - 46.2078857421875, - 43.81780450994313 - ], - [ - 50.19131747159088, - 39.83437278053975 - ], - [ - 52.58134321732962, - 35.054210316051126 - ], - [ - 55.76809969815338, - 26.29061612215901 - ], - [ - 57.361505681818244, - 21.510509144176126 - ], - [ - 57.361505681818244, - 16.73040216619313 - ], - [ - 54.17474920099437, - 10.356889204545382 - ], - [ - 45.41115500710225, - -1.5934059836648657 - ], - [ - 40.63104802911937, - -7.170243696732996 - ], - [ - 38.240966796875, - -8.763594193892118 - ], - [ - 35.850941051136374, - -8.763594193892118 - ], - [ - 34.25753506747162, - -7.96686345880687 - ], - [ - 32.6641845703125, - -6.373568448153492 - ], - [ - 31.867509321732996, - -5.576893199573874 - ], - [ - 31.070778586647748, - -4.780162464488626 - ], - [ - 31.070778586647748, - -4.780162464488626 - ] - ], - "pressures": [ - 0.1181640625, - 1, - 1, - 1, - 1, - 0.9619140625, - 0.923828125, - 0.90234375, - 0.8828125, - 0.8828125, - 0.8876953125, - 0.921875, - 0.931640625, - 0.9453125, - 0.953125, - 1, - 1, - 1, - 1, - 1, - 0.97265625, - 0.97265625, - 0.966796875, - 0.9599609375, - 0.9404296875, - 0.8701171875, - 0.78125, - 0.615234375, - 0.3681640625, - 0.1953125, - 0.1640625, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.070778586647748, - -4.780162464488626 - ] - }, - { - "id": "KzcQpg6iVHgnssUSYQC0-", - "type": "freedraw", - "x": 222.58774953074277, - "y": 10.62228888969912, - "width": 77.27866432883519, - "height": 65.32831365411926, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 683114445, - "version": 428, - "versionNonce": 1035955821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967307350852479 - ], - [ - 2.390025745738626, - -0.7967307350852479 - ], - [ - 7.170188210227252, - 0 - ], - [ - 11.153619939630687, - 1.5933504971590082 - ], - [ - 15.137051669034065, - 3.983431729403378 - ], - [ - 19.91715864701706, - 7.966863458806756 - ], - [ - 23.90059037642044, - 14.340376420454504 - ], - [ - 24.697265625, - 18.323808149857882 - ], - [ - 23.90059037642044, - 23.103915127840878 - ], - [ - 19.91715864701706, - 30.274158824573874 - ], - [ - 15.933726917613626, - 36.64761629971588 - ], - [ - 7.966863458806813, - 42.22445401278401 - ], - [ - 1.593350497159065, - 43.8177490234375 - ], - [ - -3.186756480823874, - 43.8177490234375 - ], - [ - -5.576837713068187, - 43.8177490234375 - ], - [ - -6.373512961647748, - 43.8177490234375 - ], - [ - -6.373512961647748, - 44.614479758522634 - ], - [ - -3.983431729403435, - 46.2078857421875 - ], - [ - 0, - 48.597911487926126 - ], - [ - 5.5767822265625, - 50.98793723366475 - ], - [ - 12.746970436789752, - 53.37801846590901 - ], - [ - 21.510564630681813, - 56.56477494673288 - ], - [ - 33.46085981889206, - 58.95485617897725 - ], - [ - 39.03764204545456, - 59.751531427556756 - ], - [ - 44.61447975852269, - 58.95485617897725 - ], - [ - 50.98799272017044, - 55.76809969815338 - ], - [ - 60.54820667613632, - 48.597911487926126 - ], - [ - 66.12504438920456, - 41.427723277698874 - ], - [ - 70.10847611860794, - 32.664129083806756 - ], - [ - 70.90515136718744, - 23.103915127840878 - ], - [ - 70.90515136718744, - 10.356944691051126 - ], - [ - 68.51507013494319, - 4.780106977982882 - ], - [ - 66.12504438920456, - 1.5933504971590082 - ], - [ - 61.344881924715935, - -0.7967307350852479 - ], - [ - 56.56477494673294, - -3.186756480823874 - ], - [ - 51.78466796874994, - -5.5767822265625 - ], - [ - 50.19126198508519, - -5.5767822265625 - ], - [ - 49.39458673650569, - -5.5767822265625 - ], - [ - 49.39458673650569, - -4.780162464488626 - ], - [ - 48.59791148792607, - -4.780162464488626 - ], - [ - 47.801236239346565, - -4.780162464488626 - ], - [ - 47.00456099076706, - -3.983487215909122 - ], - [ - 47.801236239346565, - -1.593350497159122 - ], - [ - 48.59791148792607, - -0.7967307350852479 - ], - [ - 48.59791148792607, - -0.7967307350852479 - ] - ], - "pressures": [ - 0.0322265625, - 0.1181640625, - 0.169921875, - 0.244140625, - 0.30078125, - 0.357421875, - 0.4375, - 0.5556640625, - 0.609375, - 0.642578125, - 0.6640625, - 0.671875, - 0.6865234375, - 0.6904296875, - 0.6923828125, - 0.6865234375, - 0.6806640625, - 0.6552734375, - 0.662109375, - 0.6826171875, - 0.70703125, - 0.70703125, - 0.705078125, - 0.712890625, - 0.71875, - 0.73828125, - 0.740234375, - 0.74609375, - 0.740234375, - 0.732421875, - 0.732421875, - 0.783203125, - 0.79296875, - 0.79296875, - 0.802734375, - 0.787109375, - 0.7587890625, - 0.744140625, - 0.712890625, - 0.5380859375, - 0.5068359375, - 0.4296875, - 0.2890625, - 0.1328125, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.59791148792607, - -0.7967307350852479 - ] - }, - { - "id": "qxEDU524G81fM51Clhgne", - "type": "freedraw", - "x": 244.09831416142458, - "y": -89.76034605348275, - "width": 62.93828790838069, - "height": 90.82236550071025, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 888708931, - "version": 416, - "versionNonce": 319208163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983487215909122, - -3.186756480823874 - ], - [ - -4.780162464488626, - -1.593350497159122 - ], - [ - -6.373512961647748, - 0.7966752485795041 - ], - [ - -7.170188210227252, - 3.186811967329504 - ], - [ - -8.763594193892061, - 7.170243696732996 - ], - [ - -11.153675426136374, - 16.730457652698874 - ], - [ - -12.747025923295439, - 24.697321111505744 - ], - [ - -13.543701171875, - 29.477428089488626 - ], - [ - -14.340376420454561, - 34.25753506747162 - ], - [ - -14.340376420454561, - 38.241022283380744 - ], - [ - 10.356889204545496, - 19.917214133522748 - ], - [ - 7.170132723721565, - 12.747025923295496 - ], - [ - 7.966863458806813, - 12.747025923295496 - ], - [ - 11.950295188210248, - 15.137107155539752 - ], - [ - 23.103915127840878, - 24.697321111505744 - ], - [ - 31.070778586647748, - 33.460859818892004 - ], - [ - 39.037642045454504, - 40.63104802911937 - ], - [ - 44.61447975852275, - 46.2078857421875 - ], - [ - 47.80123623934662, - 50.988048206676126 - ], - [ - 48.597911487926126, - 62.141612659801126 - ], - [ - 44.61447975852275, - 70.90520685369324 - ], - [ - 39.83431729403412, - 78.87212579900574 - ], - [ - 31.867453835227252, - 84.4488525390625 - ], - [ - 19.1204833984375, - 86.8389892578125 - ], - [ - 12.746970436789752, - 87.63560901988637 - ], - [ - 7.966863458806813, - 87.63560901988637 - ], - [ - 4.780106977982939, - 87.63560901988637 - ], - [ - 2.390025745738626, - 87.63560901988637 - ], - [ - 1.593350497159065, - 86.04225852272725 - ], - [ - 1.593350497159065, - 85.245527787642 - ], - [ - 3.186700994318187, - 83.652177290483 - ], - [ - 3.983431729403378, - 82.85555752840912 - ], - [ - 3.983431729403378, - 82.85555752840912 - ] - ], - "pressures": [ - 0.0048828125, - 0.1376953125, - 0.2841796875, - 0.3203125, - 0.3623046875, - 0.43359375, - 0.537109375, - 0.5849609375, - 0.6318359375, - 0.6494140625, - 0.703125, - 0.705078125, - 0.6572265625, - 0.6357421875, - 0.6357421875, - 0.640625, - 0.66796875, - 0.6826171875, - 0.6845703125, - 0.6845703125, - 0.7109375, - 0.72265625, - 0.740234375, - 0.7587890625, - 0.75390625, - 0.744140625, - 0.71484375, - 0.67578125, - 0.591796875, - 0.2841796875, - 0.1669921875, - 0.111328125, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983431729403378, - 82.85555752840912 - ] - }, - { - "id": "yYs01PXgTnxK5GO9WIUA6", - "type": "freedraw", - "x": 240.11482694551546, - "y": -87.37026482123838, - "width": 50.98799272017044, - "height": 80.46547629616475, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2113379437, - "version": 420, - "versionNonce": 302061773, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - 9.560213955965878 - ], - [ - -1.593350497159065, - 17.527132901278378 - ], - [ - 0, - 24.69732111150563 - ], - [ - 3.186756480823874, - 31.070778586647634 - ], - [ - 7.170188210227309, - 35.054210316051126 - ], - [ - 9.560269442471622, - 37.44429154829538 - ], - [ - 12.747025923295496, - 37.44429154829538 - ], - [ - 15.137107155539752, - 37.44429154829538 - ], - [ - 17.527132901278378, - 33.460859818892004 - ], - [ - 19.120538884943244, - 23.900590376420382 - ], - [ - 19.120538884943244, - 16.730457652698874 - ], - [ - 19.120538884943244, - 11.950295188210134 - ], - [ - 19.120538884943244, - 9.560213955965878 - ], - [ - 19.120538884943244, - 8.763594193892004 - ], - [ - 20.713889382102252, - 6.373457475142004 - ], - [ - 22.307295365767118, - 5.5767822265625 - ], - [ - 25.493996360085248, - 6.373457475142004 - ], - [ - 31.867509321732996, - 12.747025923295382 - ], - [ - 36.64761629971588, - 18.323808149857882 - ], - [ - 40.631103515625, - 24.69732111150563 - ], - [ - 44.61453524502838, - 33.460859818892004 - ], - [ - 47.80129172585225, - 43.81780450994313 - ], - [ - 49.394642223011374, - 57.3614501953125 - ], - [ - 49.394642223011374, - 63.734963156960134 - ], - [ - 47.00456099076712, - 67.71839488636363 - ], - [ - 43.021129261363626, - 72.49855735085225 - ], - [ - 35.05426580255687, - 77.27866432883513 - ], - [ - 30.274158824573874, - 79.6687455610795 - ], - [ - 25.493996360085248, - 80.46547629616475 - ], - [ - 22.307295365767118, - 80.46547629616475 - ], - [ - 19.917214133522748, - 79.6687455610795 - ], - [ - 17.527132901278378, - 78.07533957741475 - ], - [ - 15.137107155539752, - 76.48204456676137 - ], - [ - 14.340376420454618, - 75.68525834517038 - ], - [ - 13.543701171875, - 74.88858309659088 - ], - [ - 13.543701171875, - 74.09190784801137 - ], - [ - 13.543701171875, - 74.09190784801137 - ] - ], - "pressures": [ - 0.056640625, - 0.53125, - 0.56640625, - 0.6474609375, - 0.6826171875, - 0.740234375, - 0.794921875, - 0.8134765625, - 0.82421875, - 0.82421875, - 0.82421875, - 0.8134765625, - 0.8134765625, - 0.8173828125, - 0.802734375, - 0.798828125, - 0.802734375, - 0.802734375, - 0.8154296875, - 0.8154296875, - 0.82421875, - 0.8349609375, - 0.8447265625, - 0.83203125, - 0.857421875, - 0.8701171875, - 0.876953125, - 0.880859375, - 0.861328125, - 0.826171875, - 0.791015625, - 0.71875, - 0.5556640625, - 0.3564453125, - 0.30078125, - 0.169921875, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 13.543701171875, - 74.09190784801137 - ] - }, - { - "id": "9wZEiZwTix1hjbLMmoRE4", - "type": "freedraw", - "x": 242.50490817775983, - "y": -93.74377778288613, - "width": 47.00456099076706, - "height": 90.02569025213063, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1227750947, - "version": 423, - "versionNonce": 1557358211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -3.186756480823874 - ], - [ - -0.796675248579561, - -3.983431729403378 - ], - [ - -0.796675248579561, - -2.39008123224437 - ], - [ - 0.7966752485795041, - 4.780106977982882 - ], - [ - 0.7966752485795041, - 10.356944691051126 - ], - [ - 0.7966752485795041, - 17.527132901278378 - ], - [ - 1.593405983664752, - 24.69732111150563 - ], - [ - 2.390081232244313, - 32.6641845703125 - ], - [ - 4.780106977982939, - 39.83437278053975 - ], - [ - 7.170188210227252, - 47.00461647727275 - ], - [ - 8.763538707386317, - 48.597911487926126 - ], - [ - 11.15361993963063, - 49.39458673650563 - ], - [ - 13.543701171875, - 49.39458673650563 - ], - [ - 18.323808149857882, - 45.41115500710225 - ], - [ - 20.713889382102252, - 40.631048029119256 - ], - [ - 22.307239879261374, - 35.850941051136374 - ], - [ - 22.307239879261374, - 32.6641845703125 - ], - [ - 22.307239879261374, - 29.477428089488626 - ], - [ - 22.307239879261374, - 25.493996360085248 - ], - [ - 22.307239879261374, - 24.69732111150563 - ], - [ - 24.69732111150563, - 27.08740234375 - ], - [ - 28.68075284090901, - 33.460859818892004 - ], - [ - 34.25753506747151, - 41.427723277698874 - ], - [ - 40.631048029119256, - 50.19131747159088 - ], - [ - 44.61447975852275, - 58.95491166548288 - ], - [ - 46.2078857421875, - 70.10847611860788 - ], - [ - 44.61447975852275, - 76.48198908025563 - ], - [ - 40.631048029119256, - 81.26209605823863 - ], - [ - 35.850941051136374, - 84.4488525390625 - ], - [ - 26.290671608664752, - 86.04225852272725 - ], - [ - 19.1204833984375, - 86.04225852272725 - ], - [ - 13.543701171875, - 82.85555752840912 - ], - [ - 9.560269442471565, - 80.46542080965912 - ], - [ - 7.170188210227252, - 78.07533957741475 - ], - [ - 3.983431729403378, - 74.88863858309662 - ], - [ - 3.186756480823817, - 73.29523259943176 - ], - [ - 3.186756480823817, - 72.49855735085225 - ], - [ - 3.186756480823817, - 71.70188210227275 - ], - [ - 3.983431729403378, - 70.90520685369313 - ], - [ - 3.983431729403378, - 70.90520685369313 - ] - ], - "pressures": [ - 0.013671875, - 0.1044921875, - 0.150390625, - 0.2998046875, - 0.388671875, - 0.5439453125, - 0.703125, - 0.80078125, - 0.884765625, - 0.9296875, - 0.96875, - 0.9814453125, - 0.9814453125, - 0.9814453125, - 0.9755859375, - 0.9755859375, - 0.947265625, - 0.927734375, - 0.9111328125, - 0.8955078125, - 0.8916015625, - 0.8955078125, - 0.90234375, - 0.9404296875, - 0.9794921875, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8935546875, - 0.8154296875, - 0.724609375, - 0.5693359375, - 0.373046875, - 0.2353515625, - 0.1552734375, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983431729403378, - 70.90520685369313 - ] - }, - { - "id": "nFLRopa9prpVPUrw0keAx", - "type": "freedraw", - "x": 238.5214764483564, - "y": -92.150427285727, - "width": 46.20788574218744, - "height": 88.43233975497151, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 54824397, - "version": 409, - "versionNonce": 189373987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558546, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.966863458806813, - 60.548262162642004 - ], - [ - 19.120483398437443, - 49.394697709517004 - ], - [ - 23.103915127840935, - 42.22445401278401 - ], - [ - 23.900645862926183, - 41.427834250710134 - ], - [ - 24.697321111505687, - 39.83437278053975 - ], - [ - 24.697321111505687, - 39.037697531960134 - ], - [ - 24.697321111505687, - 38.24102228338063 - ], - [ - 27.087346857244313, - 40.631103515625 - ], - [ - 32.66418457031244, - 47.80123623934651 - ], - [ - 39.03769753196019, - 53.37812943892038 - ], - [ - 43.81780450994319, - 59.7515869140625 - ], - [ - 46.20788574218744, - 66.1250443892045 - ], - [ - 45.41115500710231, - 74.091963334517 - ], - [ - 41.42772327769882, - 78.8720703125 - ], - [ - 36.647616299715935, - 82.85550204190338 - ], - [ - 31.070834073153435, - 86.04225852272725 - ], - [ - 25.49399636008519, - 88.43233975497151 - ], - [ - 17.527132901278435, - 88.43233975497151 - ], - [ - 12.746970436789752, - 87.63560901988626 - ], - [ - 8.763538707386374, - 86.83893377130676 - ], - [ - 6.373512961647748, - 85.24563876065338 - ], - [ - 3.983431729403435, - 83.65217729048288 - ], - [ - 2.390081232244313, - 82.05882679332376 - ], - [ - 1.593350497159065, - 79.6687455610795 - ], - [ - 1.593350497159065, - 76.48198908025563 - ], - [ - 1.593350497159065, - 74.88863858309651 - ], - [ - 3.186756480823874, - 74.091963334517 - ], - [ - 3.186756480823874, - 74.091963334517 - ] - ], - "pressures": [ - 0.1787109375, - 1, - 0.9833984375, - 0.9384765625, - 0.9169921875, - 0.8984375, - 0.8916015625, - 0.8896484375, - 0.861328125, - 0.861328125, - 0.884765625, - 0.8916015625, - 0.8935546875, - 0.9111328125, - 0.9345703125, - 0.9580078125, - 0.96875, - 0.953125, - 0.931640625, - 0.8369140625, - 0.7763671875, - 0.71484375, - 0.6240234375, - 0.5263671875, - 0.361328125, - 0.2275390625, - 0.15625, - 0.060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.186756480823874, - 74.091963334517 - ] - }, - { - "id": "E3v5eAhDNVmNYEIwIa0zH", - "type": "freedraw", - "x": 232.9446387352882, - "y": -91.35369655064187, - "width": 53.37807395241481, - "height": 90.02569025213063, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 120639715, - "version": 424, - "versionNonce": 1581320589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967307350851343 - ], - [ - -0.796675248579561, - 1.593350497159122 - ], - [ - -2.390025745738626, - 5.5767822265625 - ], - [ - -5.5767822265625, - 14.340376420454618 - ], - [ - -7.966863458806813, - 22.307239879261374 - ], - [ - -7.966863458806813, - 31.070778586647748 - ], - [ - -7.966863458806813, - 39.834372780539866 - ], - [ - -5.5767822265625, - 47.80123623934662 - ], - [ - -1.593350497159065, - 57.3614501953125 - ], - [ - -0.796675248579561, - 59.75153142755687 - ], - [ - 0, - 60.54826216264212 - ], - [ - 2.390081232244313, - 60.54826216264212 - ], - [ - 7.9669189453125, - 58.15818093039775 - ], - [ - 11.950350674715935, - 55.76809969815349 - ], - [ - 15.137107155539752, - 50.987992720170496 - ], - [ - 16.730457652698874, - 47.004505504261374 - ], - [ - 18.32380814985794, - 43.021073774857996 - ], - [ - 19.120538884943187, - 40.631103515625 - ], - [ - 19.917214133522748, - 39.834372780539866 - ], - [ - 20.713889382102252, - 39.03764204545462 - ], - [ - 21.51056463068187, - 38.240966796875 - ], - [ - 23.900645862926126, - 37.444291548295496 - ], - [ - 27.08740234375, - 38.240966796875 - ], - [ - 30.274158824573874, - 42.22439852627849 - ], - [ - 33.46091530539775, - 45.411155007102366 - ], - [ - 36.64767178622162, - 49.394586736505744 - ], - [ - 40.631103515625, - 55.76809969815349 - ], - [ - 43.81780450994313, - 61.34488192471599 - ], - [ - 45.411210493607996, - 68.51512562144887 - ], - [ - 45.411210493607996, - 74.88858309659099 - ], - [ - 43.021129261363626, - 80.46547629616487 - ], - [ - 39.03769753196025, - 83.652177290483 - ], - [ - 35.850941051136374, - 85.24552778764212 - ], - [ - 32.6641845703125, - 86.83887828480113 - ], - [ - 29.47748357599437, - 88.43233975497162 - ], - [ - 24.69732111150563, - 89.2289595170455 - ], - [ - 22.307295365767004, - 89.2289595170455 - ], - [ - 20.713889382102252, - 87.63560901988637 - ], - [ - 19.917214133522748, - 86.04220303622162 - ], - [ - 19.917214133522748, - 84.44890802556824 - ], - [ - 21.51056463068187, - 84.44890802556824 - ], - [ - 22.307295365767004, - 84.44890802556824 - ], - [ - 22.307295365767004, - 84.44890802556824 - ] - ], - "pressures": [ - 0.02734375, - 0.259765625, - 0.419921875, - 0.6025390625, - 0.83203125, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.9453125, - 0.9404296875, - 0.92578125, - 0.9169921875, - 0.9189453125, - 0.927734375, - 0.9423828125, - 0.9619140625, - 0.9775390625, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.716796875, - 0.4892578125, - 0.3076171875, - 0.15234375, - 0.0703125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307295365767004, - 84.44890802556824 - ] - }, - { - "id": "In-EKvSLRxZiAy5Ip8eAo", - "type": "freedraw", - "x": 338.1074361429587, - "y": -108.08415420334074, - "width": 49.394642223011374, - "height": 59.75153142755687, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 602001997, - "version": 411, - "versionNonce": 1767367107, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - 0 - ], - [ - -0.7966752485796178, - 4.780106977982996 - ], - [ - 0.7966752485795041, - 10.35694469105124 - ], - [ - 4.780051491477252, - 15.93372691761374 - ], - [ - 7.966863458806756, - 19.917214133522748 - ], - [ - 10.356889204545382, - 21.5106201171875 - ], - [ - 11.950239701704504, - 21.5106201171875 - ], - [ - 15.933726917613626, - 19.917214133522748 - ], - [ - 18.323752663352252, - 17.527188387784122 - ], - [ - 19.120427911931756, - 15.137051669034122 - ], - [ - 19.917103160511374, - 11.153619939630744 - ], - [ - 19.917103160511374, - 9.560324928977366 - ], - [ - 19.120427911931756, - 7.170188210227366 - ], - [ - 21.510564630681756, - 7.170188210227366 - ], - [ - 26.29061612215901, - 9.560324928977366 - ], - [ - 31.867453835227252, - 14.340376420454618 - ], - [ - 37.44429154829538, - 20.713889382102366 - ], - [ - 44.614479758522634, - 32.6641845703125 - ], - [ - 46.207830255681756, - 40.63104802911937 - ], - [ - 46.207830255681756, - 47.80123623934662 - ], - [ - 44.614479758522634, - 54.17474920099437 - ], - [ - 40.630992542613626, - 58.15818093039775 - ], - [ - 34.25747958096588, - 59.75153142755687 - ], - [ - 21.510564630681756, - 58.15818093039775 - ], - [ - 12.746914950284008, - 54.971424449573874 - ], - [ - 6.373401988636374, - 51.78466796875 - ], - [ - 1.5933504971590082, - 50.19131747159099 - ], - [ - -1.5934614701704959, - 48.59791148792624 - ], - [ - -2.39013671875, - 47.80123623934662 - ], - [ - -3.186811967329618, - 47.80123623934662 - ], - [ - -2.39013671875, - 47.80123623934662 - ], - [ - -2.39013671875, - 47.80123623934662 - ] - ], - "pressures": [ - 0.0166015625, - 0.2216796875, - 0.2890625, - 0.330078125, - 0.396484375, - 0.4736328125, - 0.5791015625, - 0.59375, - 0.615234375, - 0.6357421875, - 0.646484375, - 0.6552734375, - 0.6572265625, - 0.662109375, - 0.67578125, - 0.6953125, - 0.705078125, - 0.70703125, - 0.7109375, - 0.697265625, - 0.6572265625, - 0.6591796875, - 0.6494140625, - 0.6474609375, - 0.642578125, - 0.62890625, - 0.6025390625, - 0.564453125, - 0.5205078125, - 0.4541015625, - 0.4111328125, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.39013671875, - 47.80123623934662 - ] - }, - { - "id": "FSLqQ9oty_UuisiGMnF1i", - "type": "freedraw", - "x": 327.75043596540183, - "y": -69.0464566713805, - "width": 43.021129261363626, - "height": 66.12504438920462, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1727983213, - "version": 410, - "versionNonce": 1642221549, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - 0 - ], - [ - 0, - 5.5767822265625 - ], - [ - 4.780162464488626, - 11.950295188210248 - ], - [ - 9.560324928977252, - 16.730402166193244 - ], - [ - 13.543701171875, - 19.917158647017118 - ], - [ - 19.120538884943244, - 21.51056463068187 - ], - [ - 23.900590376420496, - 21.51056463068187 - ], - [ - 28.680752840909122, - 19.1204833984375 - ], - [ - 34.25759055397725, - 15.933726917613626 - ], - [ - 38.240966796875, - 11.153619939630744 - ], - [ - 40.631103515625, - 1.593350497159122 - ], - [ - 40.631103515625, - -4.780162464488626 - ], - [ - 39.834428267045496, - -10.356944691051126 - ], - [ - 39.03775301846588, - -15.137051669034008 - ], - [ - 39.03775301846588, - -17.527077414772748 - ], - [ - 38.240966796875, - -16.730457652698874 - ], - [ - 36.64761629971588, - -14.340376420454504 - ], - [ - 32.664240056818244, - -11.950350674715878 - ], - [ - 26.290727095170496, - -7.966863458806756 - ], - [ - 22.307239879261374, - -7.170188210227252 - ], - [ - 18.323863636363626, - -7.966863458806756 - ], - [ - 14.340376420454504, - -11.15361993963063 - ], - [ - 11.950350674715878, - -16.730457652698874 - ], - [ - 11.950350674715878, - -21.510509144176126 - ], - [ - 12.747025923295496, - -26.290671608664752 - ], - [ - 14.340376420454504, - -31.867509321732882 - ], - [ - 16.730402166193244, - -39.83437278053975 - ], - [ - 19.120538884943244, - -43.021129261363626 - ], - [ - 20.713889382102252, - -44.61447975852275 - ], - [ - 21.51056463068187, - -44.61447975852275 - ], - [ - 21.51056463068187, - -44.61447975852275 - ] - ], - "pressures": [ - 0.11328125, - 0.36328125, - 0.4345703125, - 0.474609375, - 0.583984375, - 0.705078125, - 0.7587890625, - 0.783203125, - 0.8095703125, - 0.8408203125, - 0.857421875, - 0.8916015625, - 0.90625, - 0.927734375, - 0.951171875, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.908203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.51056463068187, - -44.61447975852275 - ] - }, - { - "id": "8_zgfewZ1co2Evcf2IC7_", - "type": "freedraw", - "x": 381.12856540432233, - "y": -90.55702130206225, - "width": 4.780162464488626, - "height": 17.527077414772748, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 796178723, - "version": 410, - "versionNonce": 1612493155, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - 13.543645685369256 - ], - [ - -4.780162464488626, - 15.137107155539752 - ], - [ - -3.18670099431813, - 16.73040216619313 - ], - [ - -2.390025745738626, - 17.527077414772748 - ], - [ - -2.390025745738626, - 17.527077414772748 - ] - ], - "pressures": [ - 0.068359375, - 0.55859375, - 0.58203125, - 0.6162109375, - 0.638671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - 17.527077414772748 - ] - }, - { - "id": "vT5yV2E3vuhOFmlKw6yQl", - "type": "freedraw", - "x": 347.6676500989246, - "y": -90.55696581555662, - "width": 33.46091530539775, - "height": 45.41115500710225, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1163603373, - "version": 390, - "versionNonce": 1112263245, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 20.713889382102252, - -11.153675426136374 - ], - [ - 28.680752840909122, - 4.780051491477252 - ], - [ - 24.697265625, - 23.900590376420496 - ], - [ - 21.510564630681756, - 29.477372602982996 - ], - [ - 15.933726917613626, - 33.460804332386374 - ], - [ - 10.356889204545496, - 34.25747958096588 - ], - [ - 3.983376242897748, - 33.460804332386374 - ], - [ - 0, - 30.2740478515625 - ], - [ - -3.983487215909122, - 27.087291370738626 - ], - [ - -4.780162464488626, - 26.290616122159122 - ], - [ - -4.780162464488626, - 25.493940873579618 - ], - [ - -4.780162464488626, - 24.697265625 - ], - [ - -4.780162464488626, - 23.103859641335248 - ], - [ - -3.983487215909122, - 21.510509144176126 - ], - [ - -3.983487215909122, - 21.510509144176126 - ] - ], - "pressures": [ - 0.642578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8681640625, - 0.7568359375, - 0.5595703125, - 0.3427734375, - 0.201171875, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983487215909122, - 21.510509144176126 - ] - }, - { - "id": "LC5Jr_dM6Ypf3y3hzcxLP", - "type": "freedraw", - "x": 339.7007866401177, - "y": -102.5073164902725, - "width": 44.614479758522634, - "height": 53.378073952414866, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1133076781, - "version": 414, - "versionNonce": 820415747, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.9834872159090082, - -2.39008123224437 - ], - [ - -3.9834872159090082, - 0 - ], - [ - -3.9834872159090082, - 4.780106977982996 - ], - [ - -3.186811967329504, - 10.356889204545496 - ], - [ - -1.5933504971590082, - 15.137051669034122 - ], - [ - 2.390025745738626, - 22.307239879261374 - ], - [ - 4.780051491477366, - 25.493996360085248 - ], - [ - 7.170188210227366, - 27.087346857244256 - ], - [ - 9.560213955965992, - 27.087346857244256 - ], - [ - 11.950239701704618, - 26.290671608664752 - ], - [ - 15.933726917613626, - 20.713833895596622 - ], - [ - 17.527077414772748, - 15.933782404119256 - ], - [ - 17.527077414772748, - 12.746970436789752 - ], - [ - 17.527077414772748, - 9.560213955965878 - ], - [ - 17.527077414772748, - 8.763538707386374 - ], - [ - 19.12042791193187, - 8.763538707386374 - ], - [ - 20.713889382102366, - 8.763538707386374 - ], - [ - 23.10391512784099, - 10.356889204545496 - ], - [ - 28.680752840909122, - 14.340376420454504 - ], - [ - 32.66412908380687, - 18.323808149857996 - ], - [ - 35.850941051136374, - 23.103915127840878 - ], - [ - 38.240966796875, - 29.477428089488626 - ], - [ - 36.64761629971599, - 39.037642045454504 - ], - [ - 33.460804332386374, - 43.81780450994313 - ], - [ - 28.680752840909122, - 47.004505504261374 - ], - [ - 23.10391512784099, - 49.39458673650563 - ], - [ - 16.730402166193244, - 50.987992720170496 - ], - [ - 6.373512961647748, - 50.19126198508525 - ], - [ - 0.7966752485796178, - 47.80129172585225 - ], - [ - -3.186811967329504, - 45.41115500710225 - ], - [ - -5.57683771306813, - 43.81780450994313 - ], - [ - -6.373512961647634, - 43.81780450994313 - ], - [ - -6.373512961647634, - 43.021073774857996 - ], - [ - -6.373512961647634, - 41.427723277698874 - ], - [ - -5.57683771306813, - 39.83437278053975 - ], - [ - -3.9834872159090082, - 38.240966796875 - ], - [ - -3.186811967329504, - 37.444291548295496 - ], - [ - -2.390025745738626, - 37.444291548295496 - ], - [ - -2.390025745738626, - 37.444291548295496 - ] - ], - "pressures": [ - 0.0234375, - 0.1513671875, - 0.478515625, - 0.5341796875, - 0.6220703125, - 0.71484375, - 0.75390625, - 0.791015625, - 0.828125, - 0.8515625, - 0.8515625, - 0.876953125, - 0.8916015625, - 0.900390625, - 0.90234375, - 0.900390625, - 0.9150390625, - 0.9189453125, - 0.92578125, - 0.94921875, - 0.9619140625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.85546875, - 0.74609375, - 0.7109375, - 0.2587890625, - 0.1591796875, - 0.107421875, - 0.025390625, - 0.013671875, - 0.005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390025745738626, - 37.444291548295496 - ] - }, - { - "id": "CblBMI-ULgF_ZkrPj6b25", - "type": "freedraw", - "x": 336.5139746727882, - "y": -115.254342413568, - "width": 47.80123623934662, - "height": 66.12504438920462, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 876599597, - "version": 412, - "versionNonce": 542570669, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - 5.576837713068244 - ], - [ - -1.593350497159122, - 11.153619939630744 - ], - [ - -1.593350497159122, - 18.323808149857996 - ], - [ - -1.593350497159122, - 23.900645862926126 - ], - [ - 0.7967862215908781, - 30.274103338068244 - ], - [ - 3.186811967329504, - 33.46085981889212 - ], - [ - 6.373512961647748, - 36.64767178622162 - ], - [ - 8.763649680397748, - 37.444291548295496 - ], - [ - 11.153675426136374, - 37.444291548295496 - ], - [ - 13.543701171875, - 35.850941051136374 - ], - [ - 15.933837890625, - 29.477428089488626 - ], - [ - 16.730513139204504, - 25.493996360085248 - ], - [ - 16.730513139204504, - 21.51056463068187 - ], - [ - 15.933837890625, - 15.933726917613626 - ], - [ - 15.137051669034122, - 13.543701171875 - ], - [ - 15.137051669034122, - 11.950295188210248 - ], - [ - 19.12053888494313, - 12.747025923295496 - ], - [ - 25.494051846590878, - 15.137051669034122 - ], - [ - 31.070889559659122, - 18.323808149857996 - ], - [ - 36.64761629971588, - 22.307239879261374 - ], - [ - 42.22445401278412, - 28.680808327414752 - ], - [ - 43.021129261363626, - 34.25753506747162 - ], - [ - 43.021129261363626, - 43.021129261363626 - ], - [ - 41.427778764204504, - 52.58139870383525 - ], - [ - 36.64761629971588, - 59.75153142755687 - ], - [ - 24.697376598011374, - 66.12504438920462 - ], - [ - 14.340376420454504, - 66.12504438920462 - ], - [ - 5.57683771306813, - 62.141612659801126 - ], - [ - -0.7966752485795041, - 58.95485617897725 - ], - [ - -3.983376242897748, - 54.971424449573874 - ], - [ - -4.780106977982996, - 52.58139870383525 - ], - [ - -4.780106977982996, - 50.987992720170496 - ], - [ - -4.780106977982996, - 48.59796697443187 - ], - [ - -3.983376242897748, - 47.00456099076712 - ], - [ - -2.390025745738626, - 45.411210493607996 - ], - [ - -1.593350497159122, - 45.411210493607996 - ], - [ - -1.593350497159122, - 45.411210493607996 - ] - ], - "pressures": [ - 0.0302734375, - 0.314453125, - 0.384765625, - 0.4599609375, - 0.537109375, - 0.6513671875, - 0.6943359375, - 0.71484375, - 0.73046875, - 0.73046875, - 0.728515625, - 0.748046875, - 0.7626953125, - 0.7705078125, - 0.794921875, - 0.8076171875, - 0.8115234375, - 0.8115234375, - 0.8173828125, - 0.8203125, - 0.8466796875, - 0.8935546875, - 0.9384765625, - 0.9619140625, - 0.970703125, - 0.96875, - 0.951171875, - 0.9169921875, - 0.8955078125, - 0.82421875, - 0.740234375, - 0.6943359375, - 0.5283203125, - 0.330078125, - 0.201171875, - 0.0673828125, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159122, - 45.411210493607996 - ] - }, - { - "id": "cnJjYtTzOVzjkJ9fFLNEK", - "type": "freedraw", - "x": 348.4643253475041, - "y": -94.54039754496, - "width": 0.7966752485795041, - "height": 0, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1665938125, - "version": 378, - "versionNonce": 1865675939, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0888671875, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7966752485795041, - 0 - ] - }, - { - "id": "77kO3CLkDo5xBYhSqVZGT", - "type": "freedraw", - "x": 343.68416288301546, - "y": -100.11729074453388, - "width": 27.08740234375, - "height": 15.137051669034122, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 616163267, - "version": 385, - "versionNonce": 1168988941, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.5934614701704959, - 2.39008123224437 - ], - [ - 4.780162464488626, - 3.186756480823874 - ], - [ - 7.96686345880687, - 5.576893199573874 - ], - [ - 12.747025923295496, - 7.96686345880687 - ], - [ - 17.527188387784122, - 11.15361993963063 - ], - [ - 22.307239879261374, - 13.54375665838063 - ], - [ - 24.697376598011374, - 14.340376420454504 - ], - [ - 25.494051846590878, - 14.340376420454504 - ], - [ - 26.290727095170496, - 14.340376420454504 - ], - [ - 27.08740234375, - 15.137051669034122 - ], - [ - 27.08740234375, - 15.137051669034122 - ] - ], - "pressures": [ - 0.1240234375, - 0.333984375, - 0.349609375, - 0.3525390625, - 0.3544921875, - 0.3642578125, - 0.3994140625, - 0.408203125, - 0.4091796875, - 0.4072265625, - 0.333984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.08740234375, - 15.137051669034122 - ] - }, - { - "id": "KVrEzF-1cDxb_AwXw9uir", - "type": "freedraw", - "x": 291.10281966568596, - "y": -54.70602476442025, - "width": 48.59796697443187, - "height": 50.191206498579504, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 588307661, - "version": 414, - "versionNonce": 984836163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - 0 - ], - [ - 4.780162464488626, - 3.186700994318244 - ], - [ - 7.9669189453125, - 6.373401988636374 - ], - [ - 10.356944691051126, - 10.356833718039752 - ], - [ - 11.15361993963063, - 13.543590198863626 - ], - [ - 11.15361993963063, - 16.7303466796875 - ], - [ - 9.560269442471622, - 19.917158647017004 - ], - [ - 7.9669189453125, - 20.713778409090878 - ], - [ - 5.57683771306813, - 21.510509144176126 - ], - [ - 1.593405983664752, - 21.510509144176126 - ], - [ - -3.186700994318244, - 20.713778409090878 - ], - [ - -7.170188210227252, - 19.917158647017004 - ], - [ - -9.560213955965878, - 19.12042791193187 - ], - [ - -11.950295188210248, - 18.323752663352252 - ], - [ - -13.54364568536937, - 18.323752663352252 - ], - [ - -14.340376420454618, - 18.323752663352252 - ], - [ - -15.137051669034122, - 19.12042791193187 - ], - [ - -15.137051669034122, - 22.307184392755744 - ], - [ - -15.137051669034122, - 27.087291370738626 - ], - [ - -11.153619939630744, - 34.25747958096588 - ], - [ - -8.763538707386374, - 39.83431729403412 - ], - [ - -6.373457475142118, - 43.817804509943244 - ], - [ - -1.593350497159122, - 46.207774769176126 - ], - [ - 4.780162464488626, - 47.80123623934662 - ], - [ - 16.730457652698874, - 50.191206498579504 - ], - [ - 22.307239879261374, - 50.191206498579504 - ], - [ - 26.290727095170382, - 49.39453125 - ], - [ - 29.477428089488626, - 47.004505504261374 - ], - [ - 32.6641845703125, - 41.427667791193244 - ], - [ - 33.46091530539775, - 36.64756081321025 - ], - [ - 33.46091530539775, - 31.070723100142004 - ], - [ - 32.6641845703125, - 26.290616122159122 - ], - [ - 31.867509321732882, - 21.510509144176126 - ], - [ - 29.477428089488626, - 16.7303466796875 - ], - [ - 27.08740234375, - 15.136996182528378 - ], - [ - 25.493996360085248, - 14.340320933948874 - ], - [ - 23.103970614346622, - 13.543590198863626 - ], - [ - 21.510564630681756, - 12.746914950284122 - ], - [ - 21.510564630681756, - 13.543590198863626 - ], - [ - 21.510564630681756, - 14.340320933948874 - ], - [ - 21.510564630681756, - 14.340320933948874 - ] - ], - "pressures": [ - 0.0546875, - 0.2880859375, - 0.3681640625, - 0.4169921875, - 0.484375, - 0.5498046875, - 0.625, - 0.6943359375, - 0.748046875, - 0.7744140625, - 0.78515625, - 0.7783203125, - 0.787109375, - 0.794921875, - 0.791015625, - 0.78125, - 0.7724609375, - 0.787109375, - 0.791015625, - 0.8154296875, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.8876953125, - 0.64453125, - 0.41015625, - 0.1591796875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.510564630681756, - 14.340320933948874 - ] - }, - { - "id": "yBxCj5Zc4UtPNymJTmOX5", - "type": "freedraw", - "x": 334.9206241756292, - "y": -48.3325118027725, - "width": 50.98799272017038, - "height": 73.29523259943176, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1230669379, - "version": 416, - "versionNonce": 960718819, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - 5.576726740056756 - ], - [ - -1.593350497159122, - 7.966863458806756 - ], - [ - 3.9834872159090082, - 12.746914950284008 - ], - [ - 8.763538707386374, - 15.136996182528378 - ], - [ - 15.137051669034008, - 17.527077414772634 - ], - [ - 22.307239879261374, - 17.527077414772634 - ], - [ - 31.07088955965901, - 16.7303466796875 - ], - [ - 36.64761629971588, - 12.746914950284008 - ], - [ - 41.427778764204504, - 9.560158469460134 - ], - [ - 45.41115500710225, - 4.780051491477252 - ], - [ - 47.80129172585225, - 0.796619762073874 - ], - [ - 48.597966974431756, - -5.576893199573874 - ], - [ - 48.597966974431756, - -8.763649680397748 - ], - [ - 48.597966974431756, - -10.35700017755687 - ], - [ - 47.004616477272634, - -10.35700017755687 - ], - [ - 41.427778764204504, - -8.763649680397748 - ], - [ - 35.850941051136374, - -7.170243696732996 - ], - [ - 30.27410333806813, - -6.373568448153492 - ], - [ - 23.900701349431756, - -7.170243696732996 - ], - [ - 18.323863636363626, - -10.35700017755687 - ], - [ - 13.543701171875, - -15.93378240411937 - ], - [ - 12.747025923295382, - -19.120538884943244 - ], - [ - 12.747025923295382, - -21.5106201171875 - ], - [ - 12.747025923295382, - -26.290727095170496 - ], - [ - 13.543701171875, - -32.664240056818244 - ], - [ - 19.12053888494313, - -45.411265980113626 - ], - [ - 23.103915127840878, - -51.78466796875 - ], - [ - 25.494051846590878, - -54.97147993607962 - ], - [ - 27.08740234375, - -55.76815518465912 - ], - [ - 28.68075284090901, - -55.76815518465912 - ], - [ - 30.27410333806813, - -55.76815518465912 - ], - [ - 32.66424005681813, - -54.1748046875 - ], - [ - 34.25759055397725, - -53.378129438920496 - ], - [ - 35.850941051136374, - -53.378129438920496 - ], - [ - 35.850941051136374, - -54.1748046875 - ], - [ - 35.850941051136374, - -54.97147993607962 - ], - [ - 35.054265802556756, - -54.97147993607962 - ], - [ - 34.25759055397725, - -54.97147993607962 - ], - [ - 34.25759055397725, - -54.97147993607962 - ] - ], - "pressures": [ - 0.0908203125, - 0.470703125, - 0.58203125, - 0.728515625, - 0.9296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.66796875, - 0.3935546875, - 0.1328125, - 0.0703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.25759055397725, - -54.97147993607962 - ] - }, - { - "id": "ViJ5JFQE8WGibGCM5lhts", - "type": "freedraw", - "x": 334.1239489270496, - "y": -91.35369655064187, - "width": 23.900590376420496, - "height": 23.900645862926126, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1585748717, - "version": 391, - "versionNonce": 2096217037, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - 1.593350497159122, - -5.57683771306813 - ], - [ - 4.780162464488626, - -7.170132723721508 - ], - [ - 10.356889204545496, - -9.560269442471508 - ], - [ - 12.747025923295496, - -11.15361993963063 - ], - [ - 15.137051669034122, - -11.950350674715878 - ], - [ - 16.73040216619313, - -11.950350674715878 - ], - [ - 19.12053888494313, - -11.950350674715878 - ], - [ - 22.307239879261374, - -9.560269442471508 - ], - [ - 23.900590376420496, - -7.9669189453125 - ], - [ - 23.900590376420496, - -4.780162464488626 - ], - [ - 23.900590376420496, - -1.593405983664752 - ], - [ - 21.510564630681756, - 4.780162464488626 - ], - [ - 19.917214133522748, - 7.96686345880687 - ], - [ - 19.12053888494313, - 10.356889204545496 - ], - [ - 18.323863636363626, - 11.950295188210248 - ], - [ - 17.527077414772748, - 11.153619939630744 - ], - [ - 16.73040216619313, - 10.356889204545496 - ], - [ - 16.73040216619313, - 10.356889204545496 - ] - ], - "pressures": [ - 0.08984375, - 0.3193359375, - 0.4677734375, - 0.62890625, - 0.822265625, - 0.9453125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4111328125, - 0.26953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 16.73040216619313, - 10.356889204545496 - ] - }, - { - "id": "QgRHRYqiJq31KFZeCdvDK", - "type": "freedraw", - "x": 345.27762435318596, - "y": -80.20007661101113, - "width": 43.81780450994313, - "height": 71.70188210227275, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 736938851, - "version": 411, - "versionNonce": 1145223725, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967307350852479 - ], - [ - -1.5934614701704959, - 1.593405983664752 - ], - [ - -1.5934614701704959, - 4.780106977982882 - ], - [ - -2.39013671875, - 7.966863458806756 - ], - [ - -2.39013671875, - 11.15361993963063 - ], - [ - -2.39013671875, - 13.543701171875 - ], - [ - -0.7967862215908781, - 15.933726917613626 - ], - [ - 0.7966752485795041, - 16.73040216619313 - ], - [ - 3.18670099431813, - 16.73040216619313 - ], - [ - 5.576726740056756, - 16.73040216619313 - ], - [ - 8.763538707386374, - 15.933726917613626 - ], - [ - 11.153564453125, - 15.137051669034122 - ], - [ - 11.950239701704504, - 13.543701171875 - ], - [ - 13.543590198863626, - 12.746970436789752 - ], - [ - 15.933726917613626, - 11.950295188210248 - ], - [ - 19.120427911931756, - 11.15361993963063 - ], - [ - 21.510564630681756, - 11.15361993963063 - ], - [ - 24.697265625, - 11.950295188210248 - ], - [ - 27.88396661931813, - 14.340376420454504 - ], - [ - 31.070778586647748, - 18.323808149857882 - ], - [ - 33.460804332386374, - 21.510564630681756 - ], - [ - 35.850830078125, - 25.494051846590878 - ], - [ - 38.240966796875, - 30.27410333806813 - ], - [ - 39.83431729403412, - 35.054210316051126 - ], - [ - 41.42766779119313, - 41.427778764204504 - ], - [ - 41.42766779119313, - 43.81780450994313 - ], - [ - 41.42766779119313, - 47.004560990767004 - ], - [ - 39.037642045454504, - 51.78466796875 - ], - [ - 33.460804332386374, - 59.751531427556756 - ], - [ - 28.680752840909122, - 63.73496315696025 - ], - [ - 23.103915127840878, - 66.1250443892045 - ], - [ - 17.527077414772748, - 67.71839488636363 - ], - [ - 10.356889204545382, - 69.31185635653412 - ], - [ - 7.170188210227252, - 70.10847611860788 - ], - [ - 4.780051491477252, - 70.9051513671875 - ], - [ - 3.983376242897748, - 70.9051513671875 - ], - [ - 3.18670099431813, - 69.31185635653412 - ], - [ - 3.983376242897748, - 66.92171963778412 - ], - [ - 4.780051491477252, - 66.1250443892045 - ], - [ - 4.780051491477252, - 66.1250443892045 - ] - ], - "pressures": [ - 0.001953125, - 0.1474609375, - 0.3642578125, - 0.46875, - 0.5947265625, - 0.67578125, - 0.7626953125, - 0.861328125, - 0.884765625, - 0.8984375, - 0.90625, - 0.908203125, - 0.9169921875, - 0.927734375, - 0.927734375, - 0.9365234375, - 0.953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.744140625, - 0.19140625, - 0.1357421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.780051491477252, - 66.1250443892045 - ] - }, - { - "id": "UNOaLhkP0786_kJhDJaFl", - "type": "freedraw", - "x": 382.72191590148134, - "y": -19.651869934874753, - "width": 58.15818093039775, - "height": 23.103859641335248, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 321794381, - "version": 400, - "versionNonce": 1235545229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983376242897748, - -3.186700994318244 - ], - [ - 5.57672674005687, - -7.96686345880687 - ], - [ - 7.170188210227366, - -12.746970436789752 - ], - [ - 7.96686345880687, - -17.52713290127849 - ], - [ - 7.96686345880687, - -19.917158647017118 - ], - [ - 7.96686345880687, - -20.713833895596622 - ], - [ - 5.57672674005687, - -20.713833895596622 - ], - [ - 1.593350497159122, - -20.713833895596622 - ], - [ - -2.39013671875, - -19.12042791193187 - ], - [ - -7.170188210227252, - -16.730402166193244 - ], - [ - -13.543701171875, - -11.950295188210248 - ], - [ - -17.52718838778401, - -8.763538707386374 - ], - [ - -21.510564630681756, - -7.170132723721622 - ], - [ - -26.290727095170382, - -6.373512961647748 - ], - [ - -31.07088955965901, - -5.5767822265625 - ], - [ - -38.24107776988626, - -5.5767822265625 - ], - [ - -42.22445401278401, - -5.5767822265625 - ], - [ - -46.20794122869313, - -7.170132723721622 - ], - [ - -48.597966974431756, - -10.356944691051126 - ], - [ - -50.19131747159088, - -15.136996182528492 - ], - [ - -50.19131747159088, - -16.730402166193244 - ], - [ - -50.19131747159088, - -17.52713290127849 - ], - [ - -50.19131747159088, - -18.323808149857996 - ], - [ - -50.19131747159088, - -19.12042791193187 - ], - [ - -48.597966974431756, - -20.713833895596622 - ], - [ - -47.004616477272634, - -21.51056463068187 - ], - [ - -45.41115500710225, - -22.307239879261374 - ], - [ - -43.81780450994313, - -23.103859641335248 - ], - [ - -43.021129261363626, - -23.103859641335248 - ], - [ - -43.021129261363626, - -23.103859641335248 - ] - ], - "pressures": [ - 0.046875, - 0.669921875, - 0.802734375, - 0.87890625, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.701171875, - 0.375, - 0.2001953125, - 0.123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -43.021129261363626, - -23.103859641335248 - ] - }, - { - "id": "uATUhWpTBWbkJ4-pCkBut", - "type": "freedraw", - "x": 267.20222928926546, - "y": -152.69863396186344, - "width": 52.58134321732956, - "height": 54.17469371448868, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 808383203, - "version": 391, - "versionNonce": 483513069, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983431729403378, - -2.390081232244313 - ], - [ - 4.780106977982996, - -4.780106977982939 - ], - [ - 4.780106977982996, - -7.170188210227252 - ], - [ - 3.983431729403378, - -8.763594193892004 - ], - [ - 1.593350497159122, - -10.356944691051126 - ], - [ - -2.390081232244256, - -13.543645685369313 - ], - [ - -6.373512961647748, - -15.933726917613626 - ], - [ - -9.560269442471622, - -18.32380814985794 - ], - [ - -16.730457652698817, - -19.1204833984375 - ], - [ - -22.307239879261317, - -18.32380814985794 - ], - [ - -27.08740234375, - -15.137051669034065 - ], - [ - -32.6641845703125, - -10.356944691051126 - ], - [ - -37.44429154829544, - -3.983431729403378 - ], - [ - -43.021129261363626, - 8.763538707386374 - ], - [ - -46.2078857421875, - 16.730402166193187 - ], - [ - -47.004560990767004, - 23.103915127840935 - ], - [ - -47.801236239346565, - 28.680752840909122 - ], - [ - -47.004560990767004, - 32.6641845703125 - ], - [ - -44.61447975852269, - 34.25759055397731 - ], - [ - -42.224454012784065, - 35.05421031605118 - ], - [ - -39.83437278053975, - 35.05421031605118 - ], - [ - -39.03769753196019, - 35.05421031605118 - ], - [ - -39.03769753196019, - 35.05421031605118 - ] - ], - "pressures": [ - 0.017578125, - 0.1328125, - 0.1640625, - 0.236328125, - 0.4208984375, - 0.69921875, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9345703125, - 0.6181640625, - 0.3671875, - 0.2275390625, - 0.1572265625, - 0.1025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -39.03769753196019, - 35.05421031605118 - ] - }, - { - "id": "7Ip1-E9pS9K23gSi3sUL1", - "type": "freedraw", - "x": 322.97032898741884, - "y": -115.254342413568, - "width": 3.186756480823874, - "height": 35.05421031605118, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2113054339, - "version": 374, - "versionNonce": 807067235, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -3.983431729403378 - ], - [ - -0.7966752485795041, - -4.780106977982939 - ], - [ - 0, - -0.7966752485795041 - ], - [ - 0.7966752485796178, - 3.9834317294034918 - ], - [ - 1.5934059836648657, - 7.96686345880687 - ], - [ - 2.39008123224437, - 12.747025923295496 - ], - [ - 2.39008123224437, - 18.323808149857996 - ], - [ - 1.5934059836648657, - 27.08740234375 - ], - [ - 0.7966752485796178, - 29.477428089488626 - ], - [ - 0, - 30.274103338068244 - ], - [ - 0, - 30.274103338068244 - ] - ], - "pressures": [ - 0.0419921875, - 0.2802734375, - 0.322265625, - 0.904296875, - 0.9384765625, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 30.274103338068244 - ] - }, - { - "id": "4dO130XFc42dAOEorcFWE", - "type": "freedraw", - "x": 325.3604102196632, - "y": -114.45761167848275, - "width": 5.5767822265625, - "height": 30.27410333806813, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 953573005, - "version": 376, - "versionNonce": 441642317, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -1.593405983664752 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 0.7966752485795041, - 4.780106977982996 - ], - [ - 1.593350497159122, - 9.560213955965878 - ], - [ - 1.593350497159122, - 14.340320933948874 - ], - [ - 1.593350497159122, - 17.527077414772748 - ], - [ - 0.7966752485795041, - 20.713833895596622 - ], - [ - -0.7966752485795041, - 23.103915127840878 - ], - [ - -2.39008123224437, - 25.493940873579504 - ], - [ - -3.983431729403378, - 27.08734685724437 - ], - [ - -3.983431729403378, - 28.680697354403378 - ], - [ - -3.186756480823874, - 28.680697354403378 - ], - [ - -3.186756480823874, - 28.680697354403378 - ] - ], - "pressures": [ - 0.0400390625, - 0.2724609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.26171875, - 0.1728515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186756480823874, - 28.680697354403378 - ] - }, - { - "id": "Gc85Lfazxz6nSOh2Z8YZ2", - "type": "freedraw", - "x": 327.75043596540183, - "y": -114.45761167848275, - "width": 6.373512961647748, - "height": 31.867509321732996, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1166131971, - "version": 377, - "versionNonce": 446110211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.593350497159122 - ], - [ - 0.7967307350852479, - 5.5767822265625 - ], - [ - 0.7967307350852479, - 11.153564453125 - ], - [ - 0.7967307350852479, - 15.93378240411937 - ], - [ - 0.7967307350852479, - 23.900645862926126 - ], - [ - 0, - 27.08734685724437 - ], - [ - -0.7966752485795041, - 28.680697354403378 - ], - [ - -1.593350497159122, - 30.274103338068244 - ], - [ - -2.390025745738626, - 30.274103338068244 - ], - [ - -3.983431729403378, - 31.070778586647748 - ], - [ - -4.780106977982996, - 31.867509321732996 - ], - [ - -5.5767822265625, - 31.867509321732996 - ], - [ - -4.780106977982996, - 31.867509321732996 - ], - [ - -4.780106977982996, - 31.867509321732996 - ] - ], - "pressures": [ - 0.0810546875, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1455078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.780106977982996, - 31.867509321732996 - ] - }, - { - "id": "uyhzy4IX6HqYYGEGx-mJv", - "type": "freedraw", - "x": 324.5637349710837, - "y": -116.0510176621475, - "width": 5.5767822265625, - "height": 30.27415882457376, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 799717603, - "version": 379, - "versionNonce": 1367456685, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7966752485795041 - ], - [ - 0.7966752485795041, - 0.7966752485795041 - ], - [ - 2.390025745738626, - 4.780106977982996 - ], - [ - 3.18670099431813, - 9.560269442471622 - ], - [ - 3.18670099431813, - 14.340376420454504 - ], - [ - 3.18670099431813, - 18.323808149857996 - ], - [ - 2.390025745738626, - 21.5106201171875 - ], - [ - 0.7966752485795041, - 23.103915127840878 - ], - [ - -0.7967307350852479, - 24.69732111150563 - ], - [ - -1.5934059836648657, - 25.494051846590878 - ], - [ - -2.39008123224437, - 25.494051846590878 - ], - [ - -2.39008123224437, - 26.290671608664752 - ], - [ - -2.39008123224437, - 27.884077592329504 - ], - [ - -2.39008123224437, - 29.477483575994256 - ], - [ - -1.5934059836648657, - 29.477483575994256 - ], - [ - -1.5934059836648657, - 29.477483575994256 - ] - ], - "pressures": [ - 0.056640625, - 0.26171875, - 0.791015625, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.908203125, - 0.5185546875, - 0.20703125, - 0.1611328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.5934059836648657, - 29.477483575994256 - ] - }, - { - "id": "KP2m-mhXGvQJwGx1gxbNf", - "type": "freedraw", - "x": 240.9115576806007, - "y": -185.36281853217594, - "width": 74.09190784801137, - "height": 71.70182661576706, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1276622893, - "version": 398, - "versionNonce": 1296753059, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -4.780106977982939 - ], - [ - -5.576837713068187, - -7.966863458806813 - ], - [ - -11.153619939630687, - -9.560269442471565 - ], - [ - -15.933782404119313, - -11.153619939630687 - ], - [ - -23.103970614346565, - -11.153619939630687 - ], - [ - -27.08740234375, - -11.153619939630687 - ], - [ - -31.070834073153378, - -11.153619939630687 - ], - [ - -33.46085981889206, - -11.153619939630687 - ], - [ - -36.64761629971588, - -10.356944691051126 - ], - [ - -39.03769753196025, - -7.170188210227252 - ], - [ - -39.03769753196025, - -1.593350497159065 - ], - [ - -39.03769753196025, - 5.5767822265625 - ], - [ - -37.444347034801126, - 12.746970436789809 - ], - [ - -33.46085981889206, - 24.697321111505687 - ], - [ - -31.070834073153378, - 32.6641845703125 - ], - [ - -30.274103338068187, - 39.03769753196025 - ], - [ - -29.477428089488626, - 44.61447975852275 - ], - [ - -30.274103338068187, - 49.39458673650569 - ], - [ - -35.850941051136374, - 54.97147993607956 - ], - [ - -41.42777876420456, - 58.954911665482996 - ], - [ - -47.00456099076706, - 60.548206676136374 - ], - [ - -53.37807395241475, - 60.548206676136374 - ], - [ - -61.344937411221565, - 58.15818093039775 - ], - [ - -65.328369140625, - 55.768099698153435 - ], - [ - -68.51512562144887, - 54.97147993607956 - ], - [ - -70.10847611860794, - 53.37807395241481 - ], - [ - -72.49855735085225, - 50.98804820667618 - ], - [ - -73.29523259943181, - 47.00461647727275 - ], - [ - -74.09190784801137, - 43.81780450994319 - ], - [ - -74.09190784801137, - 41.427723277698874 - ], - [ - -73.29523259943181, - 39.83437278053981 - ], - [ - -72.49855735085225, - 39.03769753196025 - ], - [ - -71.70188210227275, - 39.03769753196025 - ], - [ - -71.70188210227275, - 39.83437278053981 - ], - [ - -70.90520685369319, - 39.83437278053981 - ], - [ - -70.90520685369319, - 39.83437278053981 - ] - ], - "pressures": [ - 0.0966796875, - 0.822265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.787109375, - 0.2822265625, - 0.2119140625, - 0.142578125, - 0.0732421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -70.90520685369319, - 39.83437278053981 - ] - }, - { - "id": "67s6B6ALk4dYqbNvyKJ9J", - "type": "freedraw", - "x": 201.87386014864046, - "y": -130.39133859609638, - "width": 36.64761629971588, - "height": 68.51518110795456, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 702832131, - "version": 384, - "versionNonce": 1902425411, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.57683771306813, - -1.593405983664752 - ], - [ - -7.170132723721565, - -4.780162464488626 - ], - [ - -8.763538707386317, - -9.560324928977252 - ], - [ - -8.763538707386317, - -14.340431906960248 - ], - [ - -8.763538707386317, - -19.120538884943187 - ], - [ - -7.170132723721565, - -23.900645862926126 - ], - [ - -7.170132723721565, - -26.29072709517044 - ], - [ - -6.373512961647691, - -29.477483575994313 - ], - [ - -6.373512961647691, - -31.86750932173294 - ], - [ - -6.373512961647691, - -32.66424005681819 - ], - [ - -7.170132723721565, - -32.66424005681819 - ], - [ - -9.560269442471565, - -32.66424005681819 - ], - [ - -14.340376420454504, - -31.86750932173294 - ], - [ - -19.917158647017004, - -28.680808327414752 - ], - [ - -27.087346857244313, - -21.5106201171875 - ], - [ - -30.27410333806813, - -15.933782404119313 - ], - [ - -33.460859818892004, - -7.966863458806813 - ], - [ - -35.054210316051126, - 1.593295010653435 - ], - [ - -36.64761629971588, - 20.713833895596622 - ], - [ - -35.054210316051126, - 30.2740478515625 - ], - [ - -31.86750932173294, - 34.25747958096588 - ], - [ - -27.884077592329504, - 35.850941051136374 - ], - [ - -23.900645862926126, - 35.850941051136374 - ], - [ - -19.917158647017004, - 35.850941051136374 - ], - [ - -18.32380814985794, - 34.25747958096588 - ], - [ - -18.32380814985794, - 33.460804332386374 - ], - [ - -18.32380814985794, - 33.460804332386374 - ] - ], - "pressures": [ - 0.029296875, - 0.3212890625, - 0.3671875, - 0.439453125, - 0.5166015625, - 0.56640625, - 0.599609375, - 0.599609375, - 0.6015625, - 0.6044921875, - 0.615234375, - 0.673828125, - 0.71875, - 0.787109375, - 0.849609375, - 0.908203125, - 0.9453125, - 0.9580078125, - 0.9599609375, - 0.923828125, - 0.8935546875, - 0.8203125, - 0.5791015625, - 0.375, - 0.216796875, - 0.1416015625, - 0.01171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -18.32380814985794, - 33.460804332386374 - ] - }, - { - "id": "Z-rEOdrH07BE-2-7gEjEb", - "type": "freedraw", - "x": 197.89042841923708, - "y": -138.3582020549032, - "width": 30.274103338068187, - "height": 58.15818093039775, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1898279213, - "version": 387, - "versionNonce": 1281258605, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.966863458806813, - -5.576893199573874 - ], - [ - -7.966863458806813, - -10.357000177556813 - ], - [ - -7.966863458806813, - -11.950350674715935 - ], - [ - -7.170132723721622, - -14.340431906960248 - ], - [ - -6.373512961647748, - -16.73051313920456 - ], - [ - -5.576837713068187, - -18.323863636363626 - ], - [ - -4.780106977982939, - -20.71394486860794 - ], - [ - -3.983431729403435, - -22.30729536576706 - ], - [ - -3.186700994318187, - -23.104026100852252 - ], - [ - -3.186700994318187, - -23.900645862926126 - ], - [ - -4.780106977982939, - -25.494051846590935 - ], - [ - -7.966863458806813, - -26.29072709517044 - ], - [ - -11.153564453125, - -27.087457830255687 - ], - [ - -15.136996182528435, - -27.087457830255687 - ], - [ - -21.510564630681813, - -24.697376598011374 - ], - [ - -24.697321111505687, - -20.71394486860794 - ], - [ - -27.88407759232956, - -15.933782404119313 - ], - [ - -29.477428089488626, - -7.9669189453125 - ], - [ - -30.274103338068187, - 3.983431729403435 - ], - [ - -30.274103338068187, - 20.713778409090935 - ], - [ - -30.274103338068187, - 26.290616122159065 - ], - [ - -29.477428089488626, - 29.47737260298294 - ], - [ - -28.680752840909122, - 30.274047851562443 - ], - [ - -26.290671608664752, - 31.07072310014206 - ], - [ - -24.697321111505687, - 31.07072310014206 - ], - [ - -23.900645862926126, - 31.07072310014206 - ], - [ - -21.510564630681813, - 30.274047851562443 - ], - [ - -19.917214133522748, - 29.47737260298294 - ], - [ - -19.917214133522748, - 28.680697354403435 - ], - [ - -19.917214133522748, - 28.680697354403435 - ] - ], - "pressures": [ - 0.05859375, - 0.7685546875, - 0.7685546875, - 0.7763671875, - 0.7763671875, - 0.7724609375, - 0.7724609375, - 0.7607421875, - 0.7607421875, - 0.751953125, - 0.75390625, - 0.8427734375, - 0.8896484375, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96875, - 0.9345703125, - 0.8984375, - 0.8642578125, - 0.5712890625, - 0.380859375, - 0.2978515625, - 0.1787109375, - 0.107421875, - 0.0595703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.917214133522748, - 28.680697354403435 - ] - }, - { - "id": "EFLk7yvtxObxSc2-6YPuD", - "type": "freedraw", - "x": 196.29702243557233, - "y": -138.3582020549032, - "width": 43.81780450994319, - "height": 66.92171963778412, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 478700397, - "version": 391, - "versionNonce": 105059555, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350851911, - 0 - ], - [ - 0.7967307350851911, - 0.796619762073874 - ], - [ - 0.7967307350851911, - 1.593295010653435 - ], - [ - -0.796675248579561, - 1.593295010653435 - ], - [ - -1.593295010653435, - 2.389970259232939 - ], - [ - -4.780106977982996, - 1.593295010653435 - ], - [ - -7.170132723721622, - 0 - ], - [ - -8.763538707386374, - -1.593461470170439 - ], - [ - -9.560158469460248, - -3.186811967329561 - ], - [ - -9.560158469460248, - -6.373568448153435 - ], - [ - -9.560158469460248, - -11.950350674715935 - ], - [ - -9.560158469460248, - -15.137107155539752 - ], - [ - -8.763538707386374, - -18.323863636363626 - ], - [ - -7.96686345880687, - -19.917214133522748 - ], - [ - -7.96686345880687, - -21.5106201171875 - ], - [ - -7.96686345880687, - -23.900645862926126 - ], - [ - -7.96686345880687, - -26.29072709517044 - ], - [ - -9.560158469460248, - -28.680808327414752 - ], - [ - -11.950295188210248, - -31.070889559659065 - ], - [ - -15.137051669034122, - -32.66424005681819 - ], - [ - -22.307239879261374, - -32.66424005681819 - ], - [ - -27.884022105823874, - -29.477483575994313 - ], - [ - -32.66412908380687, - -23.900645862926126 - ], - [ - -38.240966796875, - -8.763649680397748 - ], - [ - -40.63104802911937, - 3.186700994318187 - ], - [ - -42.224398526278435, - 13.543590198863626 - ], - [ - -43.021073774857996, - 20.713778409090935 - ], - [ - -41.42766779119319, - 27.087291370738683 - ], - [ - -36.647616299715935, - 31.86745383522731 - ], - [ - -32.66412908380687, - 33.46080433238632 - ], - [ - -29.477372602982996, - 34.257479580965935 - ], - [ - -25.49394087357956, - 34.257479580965935 - ], - [ - -23.900590376420496, - 34.257479580965935 - ], - [ - -23.900590376420496, - 34.257479580965935 - ] - ], - "pressures": [ - 0.060546875, - 0.1015625, - 0.3056640625, - 0.3837890625, - 0.4130859375, - 0.4765625, - 0.5400390625, - 0.6474609375, - 0.7724609375, - 0.8056640625, - 0.8115234375, - 0.826171875, - 0.828125, - 0.826171875, - 0.826171875, - 0.8349609375, - 0.8349609375, - 0.8466796875, - 0.8681640625, - 0.8955078125, - 0.923828125, - 0.94921875, - 0.9580078125, - 0.9560546875, - 0.9296875, - 0.8720703125, - 0.83203125, - 0.8203125, - 0.7763671875, - 0.515625, - 0.3759765625, - 0.2744140625, - 0.203125, - 0.1669921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.900590376420496, - 34.257479580965935 - ] - }, - { - "id": "3Mtca4nUNikrXu89PPJ3r", - "type": "freedraw", - "x": 196.29702243557233, - "y": -137.5615822928293, - "width": 40.63104802911937, - "height": 62.938343394886374, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 366009965, - "version": 387, - "versionNonce": 1120886477, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593295010653435, - 0 - ], - [ - -3.186700994318187, - 0 - ], - [ - -4.780106977982996, - 0 - ], - [ - -7.96686345880687, - -0.796619762073874 - ], - [ - -9.560158469460248, - -2.390081232244313 - ], - [ - -11.153619939630687, - -4.780051491477309 - ], - [ - -11.950295188210248, - -6.373512961647748 - ], - [ - -11.950295188210248, - -10.356944691051126 - ], - [ - -10.356889204545496, - -14.340376420454561 - ], - [ - -7.96686345880687, - -19.1204833984375 - ], - [ - -6.373457475142061, - -23.900645862926126 - ], - [ - -5.57672674005687, - -27.087346857244313 - ], - [ - -5.57672674005687, - -27.88407759232956 - ], - [ - -7.170132723721622, - -27.88407759232956 - ], - [ - -10.356889204545496, - -27.88407759232956 - ], - [ - -19.1204833984375, - -24.697265625 - ], - [ - -25.49394087357956, - -21.510564630681813 - ], - [ - -30.274103338068187, - -18.32380814985794 - ], - [ - -34.25753506747162, - -13.543701171875 - ], - [ - -38.240966796875, - 1.593350497159065 - ], - [ - -39.83431729403412, - 13.543701171875 - ], - [ - -40.63104802911937, - 23.103970614346565 - ], - [ - -39.83431729403412, - 29.47742808948857 - ], - [ - -36.647616299715935, - 33.46085981889206 - ], - [ - -30.274103338068187, - 35.05426580255681 - ], - [ - -26.29067160866481, - 35.05426580255681 - ], - [ - -22.307239879261374, - 35.05426580255681 - ], - [ - -19.1204833984375, - 34.257535067471565 - ], - [ - -19.1204833984375, - 33.46085981889206 - ], - [ - -19.1204833984375, - 33.46085981889206 - ] - ], - "pressures": [ - 0.0322265625, - 0.3564453125, - 0.453125, - 0.55078125, - 0.6064453125, - 0.6201171875, - 0.6318359375, - 0.66796875, - 0.6953125, - 0.705078125, - 0.705078125, - 0.6923828125, - 0.677734375, - 0.6640625, - 0.7607421875, - 0.8369140625, - 0.908203125, - 0.9296875, - 0.9453125, - 0.951171875, - 0.94921875, - 0.931640625, - 0.904296875, - 0.8740234375, - 0.7744140625, - 0.4658203125, - 0.3359375, - 0.2509765625, - 0.1728515625, - 0.0810546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -19.1204833984375, - 33.46085981889206 - ] - }, - { - "id": "ZuJLcvr_qwIXMv-TFXC1-", - "type": "freedraw", - "x": 197.89042841923708, - "y": -136.76490704424975, - "width": 47.80123623934662, - "height": 77.27871981534088, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 375316653, - "version": 391, - "versionNonce": 460619907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - -1.593405983664752, - 1.593405983664752 - ], - [ - -3.983431729403435, - 1.593405983664752 - ], - [ - -6.373512961647748, - 1.593405983664752 - ], - [ - -7.966863458806813, - 1.593405983664752 - ], - [ - -9.560269442471622, - 0.7966752485795041 - ], - [ - -12.747025923295439, - -3.186756480823874 - ], - [ - -13.543701171875, - -7.170188210227309 - ], - [ - -13.543701171875, - -10.356944691051183 - ], - [ - -11.950295188210248, - -12.746970436789809 - ], - [ - -10.356944691051126, - -14.340376420454561 - ], - [ - -8.763538707386374, - -15.933726917613683 - ], - [ - -7.966863458806813, - -17.527077414772748 - ], - [ - -7.966863458806813, - -19.1204833984375 - ], - [ - -7.966863458806813, - -20.713833895596622 - ], - [ - -8.763538707386374, - -23.900590376420496 - ], - [ - -11.153564453125, - -25.49394087357956 - ], - [ - -15.136996182528435, - -27.08734685724437 - ], - [ - -20.713889382102252, - -26.29067160866481 - ], - [ - -32.6641845703125, - -17.527077414772748 - ], - [ - -40.63104802911931, - -11.153619939630687 - ], - [ - -45.41121049360794, - -4.780106977982996 - ], - [ - -47.004505504261374, - 3.983431729403378 - ], - [ - -47.80123623934662, - 14.340431906960191 - ], - [ - -47.004505504261374, - 27.884077592329504 - ], - [ - -44.61447975852275, - 34.25759055397725 - ], - [ - -39.83437278053975, - 39.83437278053975 - ], - [ - -29.477428089488626, - 47.004560990767004 - ], - [ - -22.307239879261374, - 49.394642223011374 - ], - [ - -16.730457652698874, - 50.19137295809651 - ], - [ - -12.747025923295439, - 50.19137295809651 - ], - [ - -10.356944691051126, - 49.394642223011374 - ], - [ - -9.560269442471622, - 48.597966974431756 - ], - [ - -9.560269442471622, - 48.597966974431756 - ] - ], - "pressures": [ - 0.0751953125, - 0.279296875, - 0.3564453125, - 0.4765625, - 0.583984375, - 0.6884765625, - 0.716796875, - 0.73828125, - 0.8203125, - 0.884765625, - 0.9130859375, - 0.9169921875, - 0.9169921875, - 0.9169921875, - 0.927734375, - 0.953125, - 0.9775390625, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.9404296875, - 0.70703125, - 0.447265625, - 0.2958984375, - 0.2431640625, - 0.1767578125, - 0.1494140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.560269442471622, - 48.597966974431756 - ] - }, - { - "id": "CBNVFVQjQEUS6XGYhCvwy", - "type": "freedraw", - "x": 264.8121480570212, - "y": -167.8356856308975, - "width": 37.444291548295496, - "height": 42.22439852627838, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2133893549, - "version": 370, - "versionNonce": 1253537827, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485796178, - -5.576837713068187 - ], - [ - -3.186756480823874, - -7.170188210227252 - ], - [ - -6.373512961647748, - -7.966863458806813 - ], - [ - -11.153619939630744, - -7.966863458806813 - ], - [ - -16.730402166193244, - -7.170188210227252 - ], - [ - -25.493996360085248, - -3.186756480823874 - ], - [ - -31.070778586647748, - 0.796675248579561 - ], - [ - -35.05421031605118, - 7.170188210227252 - ], - [ - -37.444291548295496, - 15.137051669034065 - ], - [ - -37.444291548295496, - 23.103915127840878 - ], - [ - -37.444291548295496, - 31.070778586647748 - ], - [ - -36.647616299715935, - 33.46091530539775 - ], - [ - -36.647616299715935, - 34.257535067471565 - ], - [ - -35.850941051136374, - 34.257535067471565 - ], - [ - -34.25753506747162, - 34.257535067471565 - ], - [ - -34.25753506747162, - 34.257535067471565 - ] - ], - "pressures": [ - 0.0703125, - 0.2822265625, - 0.4111328125, - 0.611328125, - 0.8466796875, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.70703125, - 0.44921875, - 0.2197265625, - 0.1220703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -34.25753506747162, - 34.257535067471565 - ] - }, - { - "id": "gV5QKNGcQL9o22LG8WXCJ", - "type": "freedraw", - "x": 220.99434354707796, - "y": -190.93965624524412, - "width": 26.29067160866481, - "height": 7.9669189453125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 875582061, - "version": 370, - "versionNonce": 2025181069, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796675248579561, - 0 - ], - [ - 2.39008123224437, - 0 - ], - [ - 5.576837713068187, - 0 - ], - [ - 8.763594193892061, - 0 - ], - [ - 11.950295188210248, - 0 - ], - [ - 14.340376420454561, - 0.7967307350852479 - ], - [ - 15.93378240411937, - 1.593405983664809 - ], - [ - 18.323808149857996, - 1.593405983664809 - ], - [ - 22.307239879261374, - 3.983487215909122 - ], - [ - 24.697321111505687, - 5.576837713068187 - ], - [ - 26.29067160866481, - 7.170188210227309 - ], - [ - 26.29067160866481, - 7.9669189453125 - ], - [ - 26.29067160866481, - 7.170188210227309 - ], - [ - 25.493996360085248, - 6.373512961647748 - ], - [ - 24.697321111505687, - 6.373512961647748 - ], - [ - 24.697321111505687, - 6.373512961647748 - ] - ], - "pressures": [ - 0.0654296875, - 0.4853515625, - 0.630859375, - 0.708984375, - 0.751953125, - 0.8115234375, - 0.859375, - 0.8740234375, - 0.87890625, - 0.857421875, - 0.72265625, - 0.5234375, - 0.458984375, - 0.18359375, - 0.0908203125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.697321111505687, - 6.373512961647748 - ] - }, - { - "id": "Kd7E1bOjkB0VRx7avV8sW", - "type": "freedraw", - "x": 223.38442477932233, - "y": -196.51643847180662, - "width": 22.307239879261374, - "height": 5.576837713068187, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 814535469, - "version": 367, - "versionNonce": 1912241091, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39008123224437, - -0.7966752485795041 - ], - [ - -1.593405983664809, - -0.7966752485795041 - ], - [ - 0, - -1.593405983664752 - ], - [ - 1.593350497159065, - -1.593405983664752 - ], - [ - 4.780106977982939, - -1.593405983664752 - ], - [ - 7.966863458806813, - -0.7966752485795041 - ], - [ - 10.356944691051126, - 0 - ], - [ - 13.543701171875, - 0.796675248579561 - ], - [ - 17.527132901278378, - 2.39008123224437 - ], - [ - 19.1204833984375, - 3.186756480823874 - ], - [ - 19.917158647017004, - 3.983431729403435 - ], - [ - 18.32380814985794, - 3.186756480823874 - ], - [ - 18.32380814985794, - 3.186756480823874 - ] - ], - "pressures": [ - 0.078125, - 0.412109375, - 0.599609375, - 0.6787109375, - 0.7646484375, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2607421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 18.32380814985794, - 3.186756480823874 - ] - }, - { - "id": "Aue6XpASELqpkvCa6jU9R", - "type": "freedraw", - "x": 267.20222928926546, - "y": -166.24227964723275, - "width": 25.49399636008519, - "height": 32.6641845703125, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1615040045, - "version": 371, - "versionNonce": 761006947, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.186811967329504 - ], - [ - -0.7966752485795041, - -4.780162464488626 - ], - [ - -3.186756480823874, - -4.780162464488626 - ], - [ - -5.57683771306813, - -5.576837713068187 - ], - [ - -8.763594193892004, - -4.780162464488626 - ], - [ - -15.137051669034065, - 0 - ], - [ - -19.1204833984375, - 5.5767822265625 - ], - [ - -22.307239879261317, - 10.356889204545496 - ], - [ - -23.900645862926126, - 15.136996182528435 - ], - [ - -24.69732111150563, - 18.32375266335231 - ], - [ - -25.49399636008519, - 21.510509144176126 - ], - [ - -25.49399636008519, - 23.900645862926126 - ], - [ - -25.49399636008519, - 25.49394087357956 - ], - [ - -24.69732111150563, - 26.290616122159122 - ], - [ - -24.69732111150563, - 27.087346857244313 - ], - [ - -23.900645862926126, - 27.087346857244313 - ], - [ - -23.103915127840878, - 27.087346857244313 - ], - [ - -23.103915127840878, - 27.087346857244313 - ] - ], - "pressures": [ - 0.015625, - 0.1640625, - 0.2626953125, - 0.3427734375, - 0.4462890625, - 0.5712890625, - 0.73828125, - 0.8173828125, - 0.8466796875, - 0.8642578125, - 0.8681640625, - 0.8701171875, - 0.8662109375, - 0.783203125, - 0.4462890625, - 0.3447265625, - 0.140625, - 0.037109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.103915127840878, - 27.087346857244313 - ] - }, - { - "id": "gWGQbXI9ibVtBpl6VK8DD", - "type": "freedraw", - "x": 274.3724174994927, - "y": -191.73633149382363, - "width": 53.37807395241475, - "height": 50.191317471590935, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 929023597, - "version": 377, - "versionNonce": 288007939, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - 0.7966752485795041 - ], - [ - -1.593405983664752, - -0.796675248579561 - ], - [ - -0.7966752485795041, - -3.186756480823874 - ], - [ - 1.593350497159122, - -6.373512961647748 - ], - [ - 3.9834317294034918, - -7.170188210227309 - ], - [ - 7.96686345880687, - -8.763538707386374 - ], - [ - 12.746970436789866, - -10.356944691051126 - ], - [ - 23.10391512784099, - -12.746970436789809 - ], - [ - 28.680752840909122, - -12.746970436789809 - ], - [ - 33.46085981889212, - -11.950295188210248 - ], - [ - 37.444291548295496, - -8.763538707386374 - ], - [ - 41.427723277698874, - -4.780106977982996 - ], - [ - 46.20783025568187, - 0.7966752485795041 - ], - [ - 48.597911487926126, - 5.576837713068187 - ], - [ - 50.987992720170496, - 11.153619939630687 - ], - [ - 51.78466796875, - 16.730457652698874 - ], - [ - 51.78466796875, - 23.900645862926126 - ], - [ - 50.987992720170496, - 26.290671608664752 - ], - [ - 50.19131747159099, - 28.680752840909065 - ], - [ - 50.19131747159099, - 31.070834073153378 - ], - [ - 49.394586736505744, - 33.46091530539769 - ], - [ - 49.394586736505744, - 36.64761629971588 - ], - [ - 49.394586736505744, - 37.444347034801126 - ], - [ - 50.19131747159099, - 37.444347034801126 - ], - [ - 50.19131747159099, - 37.444347034801126 - ] - ], - "pressures": [ - 0.041015625, - 0.2744140625, - 0.2900390625, - 0.37109375, - 0.59375, - 0.7783203125, - 0.9921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.904296875, - 0.734375, - 0.4169921875, - 0.3310546875, - 0.1015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 50.19131747159099, - 37.444347034801126 - ] - }, - { - "id": "fas3fxJ_FkPxpHid0cuwJ", - "type": "freedraw", - "x": 206.65391164011777, - "y": -333.54655099843916, - "width": 98.789228959517, - "height": 140.21695223721588, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1721365165, - "version": 384, - "versionNonce": 602197667, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186756480823874, - 5.576809969815372 - ], - [ - 0.796675248579561, - 4.780134721235811 - ], - [ - -3.983431729403378, - 3.186784224076689 - ], - [ - -7.966863458806813, - 0.796675248579561 - ], - [ - -12.746970436789752, - -8.763538707386374 - ], - [ - -15.933726917613626, - -19.917186390269876 - ], - [ - -18.32380814985794, - -31.070806329900563 - ], - [ - -19.91715864701706, - -42.22442626953125 - ], - [ - -20.713833895596565, - -52.58134321732956 - ], - [ - -15.933726917613626, - -66.92174738103694 - ], - [ - -9.560269442471565, - -75.68528608842331 - ], - [ - -0.796675248579561, - -81.26209605823863 - ], - [ - 11.950295188210248, - -81.26209605823863 - ], - [ - 35.05426580255687, - -68.515097878196 - ], - [ - 47.004560990767004, - -56.56477494673294 - ], - [ - 54.971424449573874, - -42.22442626953125 - ], - [ - 57.36150568181813, - -22.307239879261374 - ], - [ - 56.564774946732996, - 3.186784224076689 - ], - [ - 47.004560990767004, - 42.22442626953125 - ], - [ - 36.64761629971588, - 56.56480268998581 - ], - [ - 21.510564630681813, - 58.95485617897725 - ], - [ - 2.390081232244313, - 50.98799272017044 - ], - [ - -22.307239879261374, - 22.307239879261374 - ], - [ - -34.257535067471565, - -3.186756480823874 - ], - [ - -40.630992542613626, - -29.477428089488626 - ], - [ - -41.427723277698874, - -48.597911487926126 - ], - [ - -36.64756081321025, - -60.548206676136374 - ], - [ - -24.697265625, - -66.92174738103694 - ], - [ - -15.137051669034065, - -66.92174738103694 - ], - [ - -5.576837713068187, - -66.92174738103694 - ], - [ - 0, - -66.92174738103694 - ], - [ - 2.390081232244313, - -66.12504438920456 - ], - [ - 1.593350497159122, - -65.328369140625 - ], - [ - 1.593350497159122, - -65.328369140625 - ] - ], - "pressures": [ - 0.2177734375, - 0.2939453125, - 0.6826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8916015625, - 0.1142578125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159122, - -65.328369140625 - ] - }, - { - "id": "Fr96GNR8BDt5Td9DsL8c0", - "type": "freedraw", - "x": 63.25020292207802, - "y": -437.115914679192, - "width": 144.200439453125, - "height": 25.493996360085248, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1088864845, - "version": 370, - "versionNonce": 344924429, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - -11.153619939630687, - -0.7966475053267459 - ], - [ - -11.950350674715935, - -0.7966475053267459 - ], - [ - -11.153619939630687, - -1.593378240411937 - ], - [ - -5.576837713068187, - -3.186728737571002 - ], - [ - 4.780106977982939, - -7.170188210227252 - ], - [ - 30.274103338068187, - -17.52710515802562 - ], - [ - 50.988048206676126, - -22.307239879261374 - ], - [ - 72.49855735085225, - -24.697265625 - ], - [ - 94.00906649502838, - -25.493996360085248 - ], - [ - 110.73957963423294, - -25.493996360085248 - ], - [ - 122.68987482244319, - -21.510536887428998 - ], - [ - 130.65673828125, - -16.730402166193187 - ], - [ - 132.25008877840907, - -15.933726917613626 - ], - [ - 132.25008877840907, - -15.137051669034122 - ], - [ - 125.07990056818181, - -15.137051669034122 - ], - [ - 117.113037109375, - -15.933726917613626 - ], - [ - 110.73957963423294, - -17.52710515802562 - ], - [ - 109.14617365056819, - -17.52710515802562 - ], - [ - 109.14617365056819, - -17.52710515802562 - ] - ], - "pressures": [ - 0.044921875, - 0.064453125, - 0.2333984375, - 0.298828125, - 0.8740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.55078125, - 0.1474609375, - 0.0234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 109.14617365056819, - -17.52710515802562 - ] - }, - { - "id": "rsLklBmwPtfdlOjMkWzBH", - "type": "freedraw", - "x": 126.18854631696439, - "y": -468.9833962576721, - "width": 7.170243696732996, - "height": 174.47451504794032, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 281308269, - "version": 361, - "versionNonce": 406389315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -6.373512961647748 - ], - [ - -0.7967307350852479, - -11.950322931463063 - ], - [ - -0.7967307350852479, - -12.746998180042624 - ], - [ - -0.7967307350852479, - -7.966863458806813 - ], - [ - -0.7967307350852479, - 11.153647682883502 - ], - [ - -0.7967307350852479, - 31.867481578480124 - ], - [ - -3.186811967329561, - 62.9383156516335 - ], - [ - -5.576893199573874, - 100.38260719992894 - ], - [ - -7.170243696732996, - 133.04679177024144 - ], - [ - -7.170243696732996, - 153.76065340909088 - ], - [ - -7.170243696732996, - 161.7275168678977 - ], - [ - -7.170243696732996, - 161.7275168678977 - ] - ], - "pressures": [ - 0.068359375, - 0.1103515625, - 0.2294921875, - 0.3115234375, - 0.9130859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.170243696732996, - 161.7275168678977 - ] - }, - { - "id": "RRF8Hc__mQy1w3_dc9Zu3", - "type": "freedraw", - "x": 119.81497786881096, - "y": -306.459176397942, - "width": 5.576837713068187, - "height": 18.323808149857996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1574705421, - "version": 350, - "versionNonce": 1702983533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.576837713068187, - -18.323808149857996 - ], - [ - 5.576837713068187, - -18.323808149857996 - ] - ], - "pressures": [ - 1, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576837713068187, - -18.323808149857996 - ] - }, - { - "id": "r9qJ3EHS3S2sOBy6OnCjW", - "type": "freedraw", - "x": 167.61621410815752, - "y": -330.35976677436247, - "width": 12.746970436789809, - "height": 105.95944491299718, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 185137613, - "version": 365, - "versionNonce": 1191559651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.39013671875, - 3.983431729403435 - ], - [ - 2.39013671875, - 3.186700994318187 - ], - [ - 1.593405983664809, - 1.593350497159122 - ], - [ - 1.593405983664809, - 0 - ], - [ - 0, - -3.98345947265625 - ], - [ - -1.593295010653378, - -7.170215953480067 - ], - [ - -2.390025745738626, - -15.137107155539752 - ], - [ - -3.186756480823817, - -35.85094105113632 - ], - [ - 0, - -55.76812744140625 - ], - [ - 3.983431729403435, - -76.4820168235085 - ], - [ - 7.170188210227309, - -93.2124467329545 - ], - [ - 7.96686345880687, - -101.17933793501419 - ], - [ - 7.96686345880687, - -101.97601318359375 - ], - [ - 2.39013671875, - -98.78925670276988 - ], - [ - -1.593295010653378, - -94.00914972478688 - ], - [ - -3.983431729403378, - -89.22901500355113 - ], - [ - -4.780106977982939, - -87.63560901988637 - ], - [ - -4.780106977982939, - -87.63560901988637 - ] - ], - "pressures": [ - 0.0029296875, - 0.017578125, - 0.16796875, - 0.2734375, - 0.3994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.42578125, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.780106977982939, - -87.63560901988637 - ] - }, - { - "id": "UMPB4AeMfL1T5BQy33LJ7", - "type": "freedraw", - "x": 162.83610713017458, - "y": -437.9125621845187, - "width": 10.356944691051126, - "height": 31.070806329900563, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1920437645, - "version": 358, - "versionNonce": 1721369037, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.780162464488626 - ], - [ - 0, - -9.560269442471565 - ], - [ - 0, - -10.356972434303941 - ], - [ - 0.796675248579561, - -10.356972434303941 - ], - [ - 2.390081232244313, - -4.780162464488626 - ], - [ - 3.186811967329561, - 1.593350497159122 - ], - [ - 5.576837713068187, - 9.560213955965935 - ], - [ - 7.966863458806813, - 18.323780406605124 - ], - [ - 8.763538707386374, - 20.713833895596622 - ], - [ - 9.560269442471622, - 20.713833895596622 - ], - [ - 10.356944691051126, - 19.917186390269876 - ], - [ - 10.356944691051126, - 19.917186390269876 - ] - ], - "pressures": [ - 0.0546875, - 0.111328125, - 0.2900390625, - 0.3994140625, - 0.5615234375, - 1, - 1, - 1, - 1, - 1, - 1, - 0.615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - 19.917186390269876 - ] - }, - { - "id": "wQ-PGudX0Qv9IZ2XiIL35", - "type": "freedraw", - "x": 126.98516607903821, - "y": -449.0662098674022, - "width": 117.11309259588063, - "height": 27.884049849076746, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 366334765, - "version": 390, - "versionNonce": 1767476611, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -3.186756480823874 - ], - [ - -8.763483220880687, - -7.170188210227252 - ], - [ - -16.730402166193187, - -8.763538707386374 - ], - [ - -27.087346857244313, - -7.170188210227252 - ], - [ - -43.81780450994313, - 1.593378240411937 - ], - [ - -54.17474920099431, - 7.966863458806813 - ], - [ - -62.93828790838063, - 13.543673428622128 - ], - [ - -70.10847611860794, - 17.527105158025563 - ], - [ - -74.09190784801132, - 19.120511141690372 - ], - [ - -73.29523259943181, - 19.120511141690372 - ], - [ - -70.10847611860794, - 17.527105158025563 - ], - [ - -63.73496315696019, - 15.137079412286937 - ], - [ - -54.17474920099431, - 11.950295188210248 - ], - [ - -34.257535067471565, - 7.966863458806813 - ], - [ - -17.527132901278378, - 5.576809969815372 - ], - [ - -1.593350497159065, - 4.780106977982996 - ], - [ - 14.340376420454561, - 4.780106977982996 - ], - [ - 34.25759055397731, - 7.966863458806813 - ], - [ - 41.42777876420456, - 9.56024169921875 - ], - [ - 43.02118474786931, - 9.56024169921875 - ], - [ - 39.83437278053981, - 9.56024169921875 - ], - [ - 37.444291548295496, - 7.966863458806813 - ], - [ - 35.850941051136374, - 6.373485218394876 - ], - [ - 34.25759055397731, - 5.576809969815372 - ], - [ - 34.25759055397731, - 4.780106977982996 - ], - [ - 31.867509321732996, - 3.186756480823874 - ], - [ - 27.08740234375, - 0.796675248579561 - ], - [ - 18.323808149857996, - -0.7966752485795041 - ], - [ - 5.576837713068187, - -1.593378240411937 - ], - [ - -17.527132901278378, - -0.7966752485795041 - ], - [ - -32.66412908380681, - 1.593378240411937 - ], - [ - -44.614424272017004, - 4.780106977982996 - ], - [ - -51.78466796875, - 7.966863458806813 - ], - [ - -54.97142444957382, - 9.56024169921875 - ], - [ - -53.378018465909065, - 7.966863458806813 - ], - [ - -50.98799272017044, - 6.373485218394876 - ], - [ - -47.801236239346565, - 4.780106977982996 - ], - [ - -44.614424272017004, - 3.186756480823874 - ], - [ - -42.22439852627838, - 1.593378240411937 - ], - [ - -40.630992542613626, - 0.796675248579561 - ], - [ - -38.240966796875, - 1.593378240411937 - ], - [ - -37.44429154829544, - 3.186756480823874 - ], - [ - -37.44429154829544, - 3.983431729403378 - ], - [ - -37.44429154829544, - 3.983431729403378 - ] - ], - "pressures": [ - 0.0419921875, - 0.4892578125, - 0.705078125, - 0.921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.92578125, - 0.3193359375, - 0.1435546875, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -37.44429154829544, - 3.983431729403378 - ] - }, - { - "id": "A9amCzHi0dvutdK7DqT05", - "type": "freedraw", - "x": 111.05143916142458, - "y": -449.0662098674022, - "width": 11.153619939630687, - "height": 140.21697998046875, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1492704717, - "version": 389, - "versionNonce": 485638189, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -4.780106977982939 - ], - [ - -1.593405983664752, - -5.576809969815372 - ], - [ - -2.390081232244313, - -5.576809969815372 - ], - [ - -3.186756480823874, - -3.983431729403378 - ], - [ - -3.983431729403378, - 9.56024169921875 - ], - [ - -4.780106977982939, - 24.697293368252872 - ], - [ - -4.780106977982939, - 46.20785799893463 - ], - [ - -4.780106977982939, - 71.70185435901988 - ], - [ - -3.983431729403378, - 97.19585071910512 - ], - [ - -3.186756480823874, - 117.113037109375 - ], - [ - -2.390081232244313, - 120.29979359019887 - ], - [ - -1.593405983664752, - 120.29979359019887 - ], - [ - -0.796675248579561, - 117.90971235795456 - ], - [ - 0, - 105.16271417791194 - ], - [ - 0, - 88.43228426846593 - ], - [ - 0, - 65.32834139737218 - ], - [ - 0, - 39.83437278053975 - ], - [ - 1.593350497159122, - 16.730429909446002 - ], - [ - 5.5767822265625, - -7.170188210227252 - ], - [ - 5.5767822265625, - -15.933754660866498 - ], - [ - 5.5767822265625, - -19.917186390269876 - ], - [ - 4.780106977982939, - -19.917186390269876 - ], - [ - 0.796675248579561, - -7.170188210227252 - ], - [ - -3.186756480823874, - 11.153647682883502 - ], - [ - -5.576837713068187, - 31.070834073153378 - ], - [ - -5.576837713068187, - 54.1747214577415 - ], - [ - -3.983431729403378, - 78.07533957741475 - ], - [ - -2.390081232244313, - 110.73955189098012 - ], - [ - -1.593405983664752, - 119.5030905983665 - ], - [ - -1.593405983664752, - 112.33290238813919 - ], - [ - -3.186756480823874, - 94.00909423828125 - ], - [ - -3.983431729403378, - 81.26209605823863 - ], - [ - -3.983431729403378, - 68.515097878196 - ], - [ - -3.983431729403378, - 54.1747214577415 - ], - [ - -3.186756480823874, - 39.83437278053975 - ], - [ - -2.390081232244313, - 29.477428089488626 - ], - [ - -1.593405983664752, - 29.477428089488626 - ], - [ - -1.593405983664752, - 31.867481578480124 - ], - [ - -1.593405983664752, - 35.8509133078835 - ], - [ - -1.593405983664752, - 39.03769753196025 - ], - [ - -1.593405983664752, - 43.81780450994319 - ], - [ - -1.593405983664752, - 47.00456099076706 - ], - [ - -1.593405983664752, - 47.00456099076706 - ] - ], - "pressures": [ - 0.0224609375, - 0.2197265625, - 0.255859375, - 0.4306640625, - 0.6904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.49609375, - 0.216796875, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593405983664752, - 47.00456099076706 - ] - }, - { - "id": "wqnWHGWU-ZzG9NoGBVJ4H", - "type": "freedraw", - "x": 134.95202953784502, - "y": -363.82068207976016, - "width": 78.8720703125, - "height": 18.32380814985794, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2077347139, - "version": 379, - "versionNonce": 309519651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780051491477252, - 0 - ], - [ - -5.5767822265625, - 0 - ], - [ - -5.5767822265625, - 0.796702991832376 - ], - [ - 0.7967307350852479, - 0.796702991832376 - ], - [ - 10.356944691051183, - 0.796702991832376 - ], - [ - 23.900645862926183, - 0 - ], - [ - 37.44434703480118, - -1.593350497159122 - ], - [ - 47.80123623934662, - -3.983431729403435 - ], - [ - 56.56483043323868, - -5.576809969815372 - ], - [ - 58.954911665482996, - -5.576809969815372 - ], - [ - 58.15818093039775, - -5.576809969815372 - ], - [ - 49.394642223011374, - -7.170188210227309 - ], - [ - 39.037753018465935, - -7.966863458806813 - ], - [ - 25.493996360085248, - -7.966863458806813 - ], - [ - 12.747025923295496, - -3.983431729403435 - ], - [ - 0.7967307350852479, - 2.390081232244313 - ], - [ - -11.950295188210191, - 9.560269442471565 - ], - [ - -15.933726917613626, - 10.356944691051126 - ], - [ - -15.933726917613626, - 9.560269442471565 - ], - [ - -14.340376420454504, - 7.170188210227252 - ], - [ - -5.5767822265625, - 3.98345947265625 - ], - [ - 3.186811967329561, - 2.390081232244313 - ], - [ - 15.93378240411937, - 0.796702991832376 - ], - [ - 31.070889559659122, - -0.796675248579561 - ], - [ - 43.81780450994319, - -1.593350497159122 - ], - [ - 55.76815518465912, - -1.593350497159122 - ], - [ - 60.54826216264206, - 0.796702991832376 - ], - [ - 62.938343394886374, - 1.593405983664752 - ], - [ - 62.938343394886374, - 2.390081232244313 - ], - [ - 62.938343394886374, - 3.186756480823874 - ], - [ - 59.7515869140625, - 4.780134721235754 - ], - [ - 57.36150568181819, - 5.576837713068187 - ], - [ - 55.76815518465912, - 5.576837713068187 - ], - [ - 55.76815518465912, - 5.576837713068187 - ] - ], - "pressures": [ - 0.0634765625, - 0.330078125, - 0.6240234375, - 0.8154296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.53515625, - 0.111328125, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.76815518465912, - 5.576837713068187 - ] - }, - { - "id": "3Sv4jGdO7cIq6ADtMfPzH", - "type": "freedraw", - "x": 145.3089742288962, - "y": -340.7167392086664, - "width": 105.95941716974437, - "height": 171.2877863103693, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 973238819, - "version": 405, - "versionNonce": 779334285, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558547, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - -1.593350497159122 - ], - [ - -7.170132723721622, - -1.593350497159122 - ], - [ - -7.966863458806813, - -1.593350497159122 - ], - [ - -3.186700994318187, - -3.983431729403435 - ], - [ - 4.780162464488626, - -4.780134721235811 - ], - [ - 16.730513139204504, - -5.5767822265625 - ], - [ - 31.86750932173294, - -5.5767822265625 - ], - [ - 47.801236239346565, - -4.780134721235811 - ], - [ - 64.53169389204544, - -2.390053488991498 - ], - [ - 86.04225852272725, - 2.390081232244313 - ], - [ - 91.6190407492897, - 3.186756480823874 - ], - [ - 93.21244673295456, - 3.983431729403378 - ], - [ - 86.04225852272725, - 1.593378240411937 - ], - [ - 74.88863858309657, - -1.593350497159122 - ], - [ - 62.141612659801126, - -3.186756480823874 - ], - [ - 48.59796697443181, - -3.186756480823874 - ], - [ - 35.85094105113632, - -2.390053488991498 - ], - [ - 22.307239879261317, - -2.390053488991498 - ], - [ - 3.186756480823817, - -3.983431729403435 - ], - [ - -5.5767822265625, - -3.983431729403435 - ], - [ - -10.356944691051183, - -1.593350497159122 - ], - [ - -12.746970436789809, - 0 - ], - [ - -11.950295188210248, - 0.7966752485795041 - ], - [ - -7.170132723721622, - 2.390081232244313 - ], - [ - 0.7967307350851911, - 3.983431729403378 - ], - [ - 11.153619939630687, - 5.576809969815315 - ], - [ - 29.477428089488626, - 4.780134721235754 - ], - [ - 43.81780450994319, - 0.7966752485795041 - ], - [ - 58.15818093039769, - -3.983431729403435 - ], - [ - 67.71845037286931, - -6.373485218394876 - ], - [ - 71.70188210227269, - -7.170188210227309 - ], - [ - 69.31180087002838, - -4.780134721235811 - ], - [ - 62.93828790838069, - -2.390053488991498 - ], - [ - 56.564830433238626, - 0 - ], - [ - 47.801236239346565, - 0.7966752485795041 - ], - [ - 43.81780450994319, - 0 - ], - [ - 40.631103515625, - -4.780134721235811 - ], - [ - 38.24102228338069, - -12.746998180042624 - ], - [ - 37.44429154829544, - -31.070806329900563 - ], - [ - 37.44429154829544, - -47.80123623934662 - ], - [ - 39.03769753196019, - -69.31177312677556 - ], - [ - 41.427778764204504, - -90.02566250887782 - ], - [ - 43.021129261363626, - -108.34947065873581 - ], - [ - 44.61453524502838, - -122.68984707919032 - ], - [ - 44.61453524502838, - -137.03022349964493 - ], - [ - 44.61453524502838, - -141.0136552290483 - ], - [ - 43.81780450994319, - -141.8103582208807 - ], - [ - 40.631103515625, - -129.86003528941762 - ], - [ - 37.44429154829544, - -115.51965886896306 - ], - [ - 34.25759055397725, - -98.78922895951706 - ], - [ - 31.86750932173294, - -78.07536732066762 - ], - [ - 31.070834073153378, - -50.987992720170496 - ], - [ - 32.66424005681819, - -7.170188210227309 - ], - [ - 33.460859818892004, - 12.746998180042624 - ], - [ - 35.05426580255681, - 23.900618119673254 - ], - [ - 35.85094105113632, - 28.680752840909065 - ], - [ - 35.85094105113632, - 29.477428089488626 - ], - [ - 36.647671786221565, - 29.477428089488626 - ], - [ - 36.647671786221565, - 28.680752840909065 - ], - [ - 36.647671786221565, - 28.680752840909065 - ] - ], - "pressures": [ - 0.060546875, - 0.400390625, - 0.6474609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 36.647671786221565, - 28.680752840909065 - ] - }, - { - "id": "Z3ru3ymPDw-2DlwP_bM8U", - "type": "freedraw", - "x": 181.15991528003252, - "y": -313.6293646081693, - "width": 103.5693359375, - "height": 153.76065340909088, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 731180675, - "version": 392, - "versionNonce": 1774209219, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170132723721565, - -153.76065340909088 - ], - [ - -39.037642045454504, - -128.26662930575282 - ], - [ - -41.42772327769882, - -126.6732788085937 - ], - [ - -44.61447975852269, - -125.07992831143463 - ], - [ - -45.41115500710225, - -125.07992831143463 - ], - [ - -42.224454012784065, - -125.07992831143463 - ], - [ - -31.07077858664769, - -127.46998180042613 - ], - [ - -19.917158647017004, - -130.65673828124994 - ], - [ - -7.170132723721565, - -134.64017001065338 - ], - [ - 6.373512961647748, - -138.6236017400568 - ], - [ - 31.867509321732996, - -144.2003839666193 - ], - [ - 46.2078857421875, - -146.59046519886363 - ], - [ - 54.17474920099437, - -144.9970869584517 - ], - [ - 57.361505681818244, - -140.21695223721588 - ], - [ - 56.564774946732996, - -137.03022349964488 - ], - [ - 49.39458673650569, - -133.843467018821 - ], - [ - 40.63104802911937, - -130.65673828124994 - ], - [ - 28.680752840909122, - -126.6732788085937 - ], - [ - 15.933726917613683, - -123.48655007102269 - ], - [ - -2.390081232244313, - -122.68984707919032 - ], - [ - -14.340376420454504, - -126.6732788085937 - ], - [ - -23.900645862926126, - -129.06336004083806 - ], - [ - -31.07077858664769, - -130.65673828124994 - ], - [ - -35.054210316051126, - -131.45341352982956 - ], - [ - -35.85094105113632, - -132.25008877840907 - ], - [ - -31.86750932173294, - -132.25008877840907 - ], - [ - -23.900645862926126, - -131.45341352982956 - ], - [ - -7.170132723721565, - -128.26662930575282 - ], - [ - 6.373512961647748, - -128.26662930575282 - ], - [ - 23.103915127840935, - -128.26662930575282 - ], - [ - 40.63104802911937, - -129.06336004083806 - ], - [ - 52.58134321732962, - -129.06336004083806 - ], - [ - 58.15818093039775, - -129.06336004083806 - ], - [ - 57.361505681818244, - -128.26662930575282 - ], - [ - 51.78466796875, - -127.46998180042613 - ], - [ - 39.83437278053981, - -125.07992831143463 - ], - [ - 14.340376420454561, - -123.48655007102269 - ], - [ - -2.390081232244313, - -123.48655007102269 - ], - [ - -17.527132901278378, - -124.28319757634944 - ], - [ - -29.477428089488626, - -126.6732788085937 - ], - [ - -36.64761629971588, - -128.26662930575282 - ], - [ - -39.83437278053975, - -129.06336004083806 - ], - [ - -38.240966796875, - -129.06336004083806 - ], - [ - -34.257535067471565, - -129.06336004083806 - ], - [ - -29.477428089488626, - -128.26662930575282 - ], - [ - -24.69732111150563, - -126.6732788085937 - ], - [ - -24.69732111150563, - -125.87660356001419 - ], - [ - -24.69732111150563, - -125.87660356001419 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6865234375, - 0.1015625, - 0.0537109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -24.69732111150563, - -125.87660356001419 - ] - }, - { - "id": "0BH-UOwcfzxmM6G7WFnKi", - "type": "freedraw", - "x": 138.13884150517458, - "y": -448.26953461882266, - "width": 133.8434392755682, - "height": 26.290671608664752, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 144296035, - "version": 408, - "versionNonce": 1205328109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 55.768099698153435, - 0.796702991832376 - ], - [ - 27.88407759232956, - -3.186756480823874 - ], - [ - 19.917214133522748, - -3.983431729403435 - ], - [ - 4.780106977982939, - -3.983431729403435 - ], - [ - -8.763594193892061, - -3.983431729403435 - ], - [ - -12.747025923295439, - -3.983431729403435 - ], - [ - -13.543701171875, - -3.983431729403435 - ], - [ - -11.153675426136374, - -4.780106977982939 - ], - [ - -5.576837713068187, - -3.983431729403435 - ], - [ - 4.780106977982939, - -0.796675248579561 - ], - [ - 18.32375266335231, - 3.186756480823817 - ], - [ - 33.460804332386374, - 4.780134721235811 - ], - [ - 50.98793723366481, - 5.576809969815315 - ], - [ - 80.46536532315343, - 3.186756480823817 - ], - [ - 99.58584872159093, - 3.186756480823817 - ], - [ - 113.12954989346593, - 5.576809969815315 - ], - [ - 118.70638760653407, - 7.966891202059685 - ], - [ - 117.90965687144882, - 7.966891202059685 - ], - [ - 109.94279341264206, - 5.576809969815315 - ], - [ - 98.78917347301132, - 3.983431729403435 - ], - [ - 83.65212180397731, - 2.390081232244313 - ], - [ - 65.32831365411931, - 3.186756480823817 - ], - [ - 39.03764204545456, - 5.576809969815315 - ], - [ - 23.103915127840935, - 6.373540704900563 - ], - [ - 10.356889204545439, - 7.170188210227252 - ], - [ - 2.390025745738626, - 7.170188210227252 - ], - [ - -2.390081232244313, - 5.576809969815315 - ], - [ - -0.7967307350851911, - 5.576809969815315 - ], - [ - 7.966863458806813, - 5.576809969815315 - ], - [ - 23.103915127840935, - 8.763566450639189 - ], - [ - 43.81780450994319, - 13.543701171875 - ], - [ - 76.48193359375, - 15.933754660866441 - ], - [ - 94.00906649502843, - 12.746998180042567 - ], - [ - 107.55276766690343, - 7.966891202059685 - ], - [ - 115.51963112571019, - 5.576809969815315 - ], - [ - 120.29973810369319, - 3.983431729403435 - ], - [ - 119.50306285511368, - 3.983431729403435 - ], - [ - 112.33287464488632, - 5.576809969815315 - ], - [ - 101.17925470525569, - 7.170188210227252 - ], - [ - 85.24552778764206, - 8.763566450639189 - ], - [ - 54.97136896306819, - 8.763566450639189 - ], - [ - 36.64756081321025, - 6.373540704900563 - ], - [ - 22.307184392755687, - 5.576809969815315 - ], - [ - 11.950295188210248, - 5.576809969815315 - ], - [ - 6.373457475142061, - 5.576809969815315 - ], - [ - 3.983431729403435, - 5.576809969815315 - ], - [ - 4.780106977982939, - 6.373540704900563 - ], - [ - 11.950295188210248, - 7.170188210227252 - ], - [ - 23.900645862926126, - 9.56024169921875 - ], - [ - 46.20783025568181, - 12.746998180042567 - ], - [ - 61.344881924715935, - 13.543701171875 - ], - [ - 77.27860884232956, - 13.543701171875 - ], - [ - 92.41566051136363, - 10.356972434303941 - ], - [ - 106.75603693181819, - 7.170188210227252 - ], - [ - 109.94279341264206, - 7.170188210227252 - ], - [ - 109.14611816406256, - 8.763566450639189 - ], - [ - 102.77260520241481, - 11.153619939630687 - ], - [ - 94.00906649502843, - 11.950322931463063 - ], - [ - 81.26204057173294, - 11.950322931463063 - ], - [ - 76.48193359375, - 11.950322931463063 - ], - [ - 74.88858309659093, - 13.543701171875 - ], - [ - 75.68525834517044, - 17.527132901278435 - ], - [ - 78.87201482599431, - 21.510564630681813 - ], - [ - 78.87201482599431, - 21.510564630681813 - ] - ], - "pressures": [ - 0.0810546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.4228515625, - 0.06640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.87201482599431, - 21.510564630681813 - ] - }, - { - "id": "EJ0XhciiZhZECc83nxqWm", - "type": "freedraw", - "x": 252.06506664722002, - "y": -344.70017093806985, - "width": 60.548206676136374, - "height": 172.0844476873225, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1310783491, - "version": 382, - "versionNonce": 618674275, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.186756480823874 - ], - [ - 0, - 6.373512961647748 - ], - [ - 0, - 4.780106977982939 - ], - [ - -0.7966752485795041, - 2.390081232244313 - ], - [ - -1.593350497159122, - -2.390053488991441 - ], - [ - -2.390025745738626, - -11.950322931463063 - ], - [ - -2.390025745738626, - -36.64761629971588 - ], - [ - 0.7967307350852479, - -57.361477938565315 - ], - [ - 3.983431729403378, - -78.07536732066762 - ], - [ - 7.9669189453125, - -101.97598544034088 - ], - [ - 9.560269442471622, - -112.332930131392 - ], - [ - 9.560269442471622, - -116.31636186079544 - ], - [ - 9.560269442471622, - -117.11300936612213 - ], - [ - 8.763594193892118, - -113.12957763671875 - ], - [ - 7.170188210227252, - -90.82236550071025 - ], - [ - 6.373512961647748, - -67.7184226296165 - ], - [ - 6.373512961647748, - -41.427723277698874 - ], - [ - 8.763594193892118, - -16.730429909446002 - ], - [ - 11.153619939630744, - 2.390081232244313 - ], - [ - 16.730457652698874, - 14.340404163707376 - ], - [ - 19.917214133522748, - 15.137051669034122 - ], - [ - 22.307239879261374, - 11.153619939630687 - ], - [ - 23.103970614346622, - 1.593378240411937 - ], - [ - 23.900645862926126, - -12.746998180042624 - ], - [ - 25.493996360085248, - -43.021129261363626 - ], - [ - 27.884077592329618, - -66.1250443892045 - ], - [ - 31.070834073153378, - -88.43231201171875 - ], - [ - 37.444347034801126, - -119.5030905983665 - ], - [ - 41.42777876420462, - -135.43684525923294 - ], - [ - 44.61453524502838, - -144.20041170987213 - ], - [ - 46.2078857421875, - -147.38715431906962 - ], - [ - 47.80123623934662, - -146.59047907049 - ], - [ - 49.394642223011374, - -141.0136691006747 - ], - [ - 52.58139870383525, - -121.89317183061075 - ], - [ - 54.971424449573874, - -100.382607199929 - ], - [ - 55.76815518465912, - -70.10847611860794 - ], - [ - 55.76815518465912, - -35.05423805930394 - ], - [ - 55.76815518465912, - 4.780106977982939 - ], - [ - 55.76815518465912, - 18.32383589311081 - ], - [ - 56.564830433238626, - 23.90061811967331 - ], - [ - 57.361505681818244, - 24.697293368252872 - ], - [ - 58.15818093039775, - 20.713861638849437 - ], - [ - 58.15818093039775, - 10.356944691051126 - ], - [ - 58.15818093039775, - 3.186756480823874 - ], - [ - 57.361505681818244, - -2.390053488991441 - ], - [ - 56.564830433238626, - -4.780134721235811 - ], - [ - 55.76815518465912, - -5.5767822265625 - ], - [ - 55.76815518465912, - -5.5767822265625 - ] - ], - "pressures": [ - 0.0126953125, - 0.025390625, - 0.1328125, - 0.3896484375, - 0.826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9423828125, - 0.376953125, - 0.2255859375, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.76815518465912, - -5.5767822265625 - ] - }, - { - "id": "NT2cf9U4EAXixzh0gOHHH", - "type": "freedraw", - "x": 248.8783656529019, - "y": -341.513414457246, - "width": 125.87657581676137, - "height": 192.79832319779825, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 174296451, - "version": 386, - "versionNonce": 1118319437, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39008123224437, - -2.390081232244313 - ], - [ - 0, - -4.780106977982939 - ], - [ - 3.983431729403378, - -13.543701171875 - ], - [ - 8.763538707386374, - -24.697293368252815 - ], - [ - 14.340320933948874, - -39.83437278053975 - ], - [ - 21.510509144176126, - -58.15818093039775 - ], - [ - 29.477428089488626, - -79.6687455610795 - ], - [ - 36.64761629971588, - -98.789228959517 - ], - [ - 43.02107377485788, - -121.09649658203125 - ], - [ - 44.61447975852275, - -129.86003528941762 - ], - [ - 45.41115500710225, - -134.64017001065338 - ], - [ - 45.41115500710225, - -135.43684525923294 - ], - [ - 45.41115500710225, - -133.84349476207387 - ], - [ - 47.004505504261374, - -128.2666847922585 - ], - [ - 48.597911487926126, - -117.90974010120738 - ], - [ - 51.78466796875, - -102.77268843217325 - ], - [ - 58.95485617897725, - -70.90517911044037 - ], - [ - 65.32831365411926, - -50.191317471590935 - ], - [ - 71.701826615767, - -33.460887562144876 - ], - [ - 76.48198908025563, - -13.543701171875 - ], - [ - 77.27866432883525, - -5.576809969815315 - ], - [ - 77.27866432883525, - -2.390081232244313 - ], - [ - 77.27866432883525, - -0.796675248579561 - ], - [ - 77.27866432883525, - -3.186756480823874 - ], - [ - 77.27866432883525, - -11.153647682883502 - ], - [ - 76.48198908025563, - -23.10394287109375 - ], - [ - 76.48198908025563, - -36.647616299715935 - ], - [ - 82.85550204190338, - -66.12507213245738 - ], - [ - 90.02569025213063, - -90.82236550071025 - ], - [ - 99.58590420809651, - -116.31633411754262 - ], - [ - 110.73946866122151, - -141.8103582208807 - ], - [ - 119.50311834161926, - -158.5407881303267 - ], - [ - 123.486494584517, - -164.117598100142 - ], - [ - 122.6898193359375, - -157.74409901012075 - ], - [ - 121.09646883877838, - -146.59047907049006 - ], - [ - 120.29979359019887, - -134.64017001065338 - ], - [ - 118.70633212002838, - -120.299765846946 - ], - [ - 113.92628062855113, - -92.41571599786931 - ], - [ - 109.942793412642, - -69.31180087002838 - ], - [ - 108.34944291548288, - -46.2078857421875 - ], - [ - 108.34944291548288, - -27.087374600497185 - ], - [ - 112.332930131392, - -7.170188210227252 - ], - [ - 113.92628062855113, - 3.186756480823874 - ], - [ - 114.72295587713063, - 12.746998180042624 - ], - [ - 114.72295587713063, - 21.510536887428998 - ], - [ - 114.72295587713063, - 28.68072509765625 - ], - [ - 113.92628062855113, - 28.68072509765625 - ], - [ - 113.12960537997151, - 27.087374600497185 - ], - [ - 113.12960537997151, - 24.697293368252815 - ], - [ - 111.53614390980113, - 19.120511141690315 - ], - [ - 111.53614390980113, - 18.32380814985794 - ], - [ - 111.53614390980113, - 18.32380814985794 - ] - ], - "pressures": [ - 0.046875, - 0.5029296875, - 0.92578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.826171875, - 0.1865234375, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 111.53614390980113, - 18.32380814985794 - ] - }, - { - "id": "Ou52nJoPbuijDBiSeYYXE", - "type": "freedraw", - "x": 236.1313397296064, - "y": -334.3432262470187, - "width": 133.04681951349437, - "height": 151.37059992009944, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 194657859, - "version": 383, - "versionNonce": 1101083651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.96686345880687, - -0.796702991832376 - ], - [ - 13.543701171875, - -6.373512961647691 - ], - [ - 22.307239879261374, - -22.30726762251419 - ], - [ - 27.884077592329504, - -37.444319291548254 - ], - [ - 34.25753506747162, - -55.76809969815338 - ], - [ - 39.83437278053975, - -75.68528608842325 - ], - [ - 43.021129261363626, - -94.80579723011363 - ], - [ - 46.2078857421875, - -117.11306485262782 - ], - [ - 46.2078857421875, - -126.67330655184657 - ], - [ - 46.2078857421875, - -130.65673828125 - ], - [ - 46.2078857421875, - -128.2666847922585 - ], - [ - 46.2078857421875, - -122.68987482244313 - ], - [ - 48.597911487926126, - -115.519658868963 - ], - [ - 51.78466796875, - -101.97598544034088 - ], - [ - 55.76809969815338, - -83.65214954723012 - ], - [ - 65.328369140625, - -50.98799272017044 - ], - [ - 73.29523259943187, - -31.867481578480067 - ], - [ - 80.46547629616475, - -15.137079412286937 - ], - [ - 85.245527787642, - -4.780134721235754 - ], - [ - 90.82236550071025, - 1.593350497159122 - ], - [ - 91.61904074928975, - 1.593350497159122 - ], - [ - 91.61904074928975, - -0.796702991832376 - ], - [ - 89.22901500355113, - -8.763566450639189 - ], - [ - 86.04220303622162, - -21.510564630681813 - ], - [ - 82.85550204190338, - -47.004560990767004 - ], - [ - 84.4488525390625, - -68.51512562144887 - ], - [ - 88.43233975497162, - -90.02569025213063 - ], - [ - 94.00906649502838, - -109.14617365056813 - ], - [ - 100.38257945667613, - -129.063360040838 - ], - [ - 102.77271617542613, - -134.64017001065338 - ], - [ - 104.36606667258525, - -134.64017001065338 - ], - [ - 105.16274192116475, - -129.063360040838 - ], - [ - 105.95941716974437, - -121.09649658203125 - ], - [ - 107.55276766690338, - -105.95941716974426 - ], - [ - 109.1461181640625, - -90.82236550071019 - ], - [ - 109.94290438565338, - -68.51512562144887 - ], - [ - 111.5362548828125, - -44.61450750177556 - ], - [ - 114.72295587713074, - -25.49399636008519 - ], - [ - 119.50311834161937, - -3.186756480823817 - ], - [ - 123.486494584517, - 5.576809969815372 - ], - [ - 127.46998180042613, - 11.153619939630687 - ], - [ - 129.86000754616475, - 14.340348677201746 - ], - [ - 131.45335804332387, - 16.73042990944606 - ], - [ - 132.25014426491475, - 16.73042990944606 - ], - [ - 132.25014426491475, - 13.543673428622185 - ], - [ - 132.25014426491475, - 9.56024169921875 - ], - [ - 133.04681951349437, - 5.576809969815372 - ], - [ - 133.04681951349437, - 3.186728737571059 - ], - [ - 133.04681951349437, - 3.186728737571059 - ] - ], - "pressures": [ - 0.0888671875, - 0.8056640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.849609375, - 0.353515625, - 0.111328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 133.04681951349437, - 3.186728737571059 - ] - }, - { - "id": "P1UxdCgnZCDSO4adN9S-H", - "type": "freedraw", - "x": 244.09820318841327, - "y": -337.52998272784254, - "width": 97.19587846235788, - "height": 151.37059992009944, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2053893837, - "version": 372, - "versionNonce": 188629421, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244256, - -6.373512961647748 - ], - [ - 9.560269442471508, - -19.120511141690372 - ], - [ - 15.137051669034008, - -31.07080632990062 - ], - [ - 21.510564630681756, - -47.00456099076706 - ], - [ - 27.08740234375, - -66.92174738103694 - ], - [ - 32.6641845703125, - -87.63560901988637 - ], - [ - 37.44429154829538, - -113.926308371804 - ], - [ - 38.24102228338063, - -129.06336004083806 - ], - [ - 38.24102228338063, - -139.42027698863637 - ], - [ - 38.24102228338063, - -142.60703346946025 - ], - [ - 37.44429154829538, - -142.60703346946025 - ], - [ - 37.44429154829538, - -138.6236017400568 - ], - [ - 37.44429154829538, - -129.86003528941762 - ], - [ - 39.037697531960134, - -117.11303710937506 - ], - [ - 42.22445401278401, - -100.38257945667618 - ], - [ - 48.597911487926126, - -68.51509787819606 - ], - [ - 53.37807395241475, - -47.00456099076706 - ], - [ - 58.95485617897725, - -30.27413108132106 - ], - [ - 63.73501864346588, - -15.933754660866498 - ], - [ - 71.701826615767, - -1.593378240411937 - ], - [ - 76.48198908025563, - 3.983431729403378 - ], - [ - 79.66869007457387, - 6.373485218394876 - ], - [ - 82.05882679332387, - 6.373485218394876 - ], - [ - 83.65217729048288, - 6.373485218394876 - ], - [ - 83.65217729048288, - -1.593378240411937 - ], - [ - 82.05882679332387, - -11.153619939630687 - ], - [ - 81.26215154474426, - -24.697293368252872 - ], - [ - 81.26215154474426, - -40.63104802911937 - ], - [ - 85.245527787642, - -70.10850386186081 - ], - [ - 88.43233975497151, - -92.41571599786931 - ], - [ - 90.02569025213063, - -114.72298362038356 - ], - [ - 91.61904074928975, - -133.84346701882106 - ], - [ - 91.61904074928975, - -143.40373646129262 - ], - [ - 91.61904074928975, - -144.99711470170456 - ], - [ - 91.61904074928975, - -144.20041170987218 - ], - [ - 91.61904074928975, - -140.2169799804688 - ], - [ - 93.21239124644887, - -131.45341352982956 - ], - [ - 97.19587846235788, - -86.83893377130681 - ], - [ - 97.19587846235788, - -86.83893377130681 - ] - ], - "pressures": [ - 0.033203125, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 97.19587846235788, - -86.83893377130681 - ] - }, - { - "id": "ndojoAY0cle0hGNk94xRc", - "type": "freedraw", - "x": 342.88743214793027, - "y": -412.41859356768634, - "width": 27.884077592329504, - "height": 89.22898726029831, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1855402243, - "version": 334, - "versionNonce": 113571, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 27.884077592329504, - 89.22898726029831 - ], - [ - 27.884077592329504, - 89.22898726029831 - ] - ], - "pressures": [ - 1, - 0.3544921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.884077592329504, - 89.22898726029831 - ] - }, - { - "id": "Db3WXmWKh9YLO7Pt4L4YE", - "type": "freedraw", - "x": 403.43563882406664, - "y": -329.5631192690357, - "width": 98.78928444602263, - "height": 151.37059992009944, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 931859523, - "version": 374, - "versionNonce": 1187218445, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.5934614701704959, - 3.186784224076689 - ], - [ - 3.186922940340878, - 5.576809969815315 - ], - [ - 3.186922940340878, - 3.186784224076689 - ], - [ - 0.7966752485795041, - -1.593378240411937 - ], - [ - -1.593350497159122, - -19.1204833984375 - ], - [ - -3.983376242897748, - -39.03766978870743 - ], - [ - -6.373401988636374, - -62.93828790838069 - ], - [ - -7.96686345880687, - -87.63560901988637 - ], - [ - -10.356889204545496, - -105.95941716974437 - ], - [ - -15.137051669034122, - -118.70641534978694 - ], - [ - -18.323752663352252, - -123.48652232776988 - ], - [ - -21.51056463068187, - -125.87660356001425 - ], - [ - -22.307239879261374, - -126.67327880859375 - ], - [ - -23.103915127840878, - -127.46998180042613 - ], - [ - -19.12042791193187, - -127.46998180042613 - ], - [ - -12.746914950284122, - -129.86003528941762 - ], - [ - -4.780051491477252, - -133.843467018821 - ], - [ - 13.543701171875, - -139.42027698863637 - ], - [ - 28.680752840909122, - -143.40370871803975 - ], - [ - 43.81780450994313, - -144.99708695845175 - ], - [ - 58.15818093039775, - -145.79378995028412 - ], - [ - 71.70188210227275, - -145.79378995028412 - ], - [ - 75.68536931818176, - -144.20041170987218 - ], - [ - 75.68536931818176, - -141.81033047762787 - ], - [ - 75.68536931818176, - -141.0136552290483 - ], - [ - 75.68536931818176, - -140.21697998046875 - ], - [ - 74.88869406960225, - -140.21697998046875 - ], - [ - 70.9053178267045, - -138.62360174005687 - ], - [ - 65.328369140625, - -136.2335205078125 - ], - [ - 53.378129438920496, - -132.25006103515625 - ], - [ - 43.021240234375, - -129.86003528941762 - ], - [ - 31.867564808238626, - -127.46998180042613 - ], - [ - 20.713889382102252, - -125.87660356001425 - ], - [ - 11.950350674715878, - -124.28319757634944 - ], - [ - 3.186922940340878, - -123.48652232776988 - ], - [ - 1.5934614701704959, - -123.48652232776988 - ], - [ - 0.7966752485795041, - -123.48652232776988 - ], - [ - 0.7966752485795041, - -122.68984707919037 - ], - [ - 1.5934614701704959, - -122.68984707919037 - ], - [ - 2.39013671875, - -122.68984707919037 - ], - [ - 3.186922940340878, - -121.89317183061081 - ], - [ - 4.780162464488626, - -121.89317183061081 - ], - [ - 7.170299183238626, - -121.09646883877843 - ], - [ - 7.170299183238626, - -121.09646883877843 - ] - ], - "pressures": [ - 0.046875, - 0.0859375, - 0.1845703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5693359375, - 0.2529296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.170299183238626, - -121.09646883877843 - ] - }, - { - "id": "Rk1jZfP-g2yjfMdXgx_DW", - "type": "freedraw", - "x": 401.8422883269075, - "y": -325.57968753963235, - "width": 107.55282315340901, - "height": 155.35403164950282, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1683582957, - "version": 372, - "versionNonce": 472928067, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - 0 - ], - [ - 0, - -10.356916947798311 - ], - [ - -0.7966752485795041, - -20.713833895596565 - ], - [ - -1.593350497159122, - -36.64758855646306 - ], - [ - -1.593350497159122, - -57.361477938565315 - ], - [ - -1.593350497159122, - -82.058799050071 - ], - [ - -1.593350497159122, - -117.9097123579545 - ], - [ - -2.390025745738626, - -135.43684525923294 - ], - [ - -3.983376242897748, - -144.9970869584517 - ], - [ - -5.57683771306813, - -149.7772216796875 - ], - [ - -7.170188210227252, - -151.37057217684657 - ], - [ - -7.966863458806756, - -152.167275168679 - ], - [ - -7.170188210227252, - -152.167275168679 - ], - [ - -3.18670099431813, - -152.167275168679 - ], - [ - 3.983487215909122, - -153.76065340909088 - ], - [ - 20.714000355113626, - -155.35403164950282 - ], - [ - 39.03764204545462, - -154.55732865767044 - ], - [ - 58.15818093039775, - -150.573896928267 - ], - [ - 78.0753950639205, - -146.59046519886363 - ], - [ - 86.04225852272725, - -143.40370871803975 - ], - [ - 91.6190962357955, - -141.01365522904825 - ], - [ - 94.80579723011363, - -140.21695223721588 - ], - [ - 97.99260919744324, - -139.42027698863637 - ], - [ - 99.58595969460225, - -138.623573996804 - ], - [ - 94.80579723011363, - -138.623573996804 - ], - [ - 84.44901899857962, - -139.42027698863637 - ], - [ - 66.92171963778412, - -141.01365522904825 - ], - [ - 54.97147993607962, - -142.60703346946025 - ], - [ - 41.42777876420462, - -142.60703346946025 - ], - [ - 27.08740234375, - -142.60703346946025 - ], - [ - 14.340376420454618, - -142.60703346946025 - ], - [ - 5.576837713068244, - -143.40370871803975 - ], - [ - -2.390025745738626, - -143.40370871803975 - ], - [ - -3.983376242897748, - -143.40370871803975 - ], - [ - -4.780051491477252, - -143.40370871803975 - ], - [ - -4.780051491477252, - -141.81033047762782 - ], - [ - -3.983376242897748, - -137.03022349964488 - ], - [ - -3.18670099431813, - -131.4534135298295 - ], - [ - -1.593350497159122, - -122.68984707919032 - ], - [ - -0.7966752485795041, - -113.92628062855113 - ], - [ - -0.7966752485795041, - -108.34944291548294 - ], - [ - -0.7966752485795041, - -108.34944291548294 - ] - ], - "pressures": [ - 0.0703125, - 0.85546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7966752485795041, - -108.34944291548294 - ] - }, - { - "id": "JKWrwnAUhC0vr5PkLvvJM", - "type": "freedraw", - "x": 401.045613078328, - "y": -426.75896998814085, - "width": 84.44890802556813, - "height": 46.20785799893463, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 827416621, - "version": 361, - "versionNonce": 959543917, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 18.323863636363626, - 28.680780584161937 - ], - [ - 70.10853160511363, - 38.240994540127815 - ], - [ - 72.49855735085225, - 38.240994540127815 - ], - [ - 74.88858309659088, - 38.240994540127815 - ], - [ - 79.6687455610795, - 37.44429154829544 - ], - [ - 84.44890802556813, - 37.44429154829544 - ], - [ - 82.85544655539775, - 38.240994540127815 - ], - [ - 78.07539506392038, - 40.63107577237213 - ], - [ - 72.49855735085225, - 42.22442626953125 - ], - [ - 66.1250443892045, - 43.81780450994319 - ], - [ - 58.95485617897725, - 44.61450750177556 - ], - [ - 46.207830255681756, - 46.20785799893463 - ], - [ - 38.240966796875, - 46.20785799893463 - ], - [ - 30.27410333806813, - 45.411182750355124 - ], - [ - 23.103915127840878, - 41.42775102095169 - ], - [ - 17.527188387784122, - 38.240994540127815 - ], - [ - 13.543812144886374, - 35.05423805930394 - ], - [ - 12.747025923295382, - 35.05423805930394 - ], - [ - 11.950350674715878, - 35.05423805930394 - ], - [ - 10.356889204545382, - 35.850941051136374 - ], - [ - 9.560324928977252, - 36.64764404296875 - ], - [ - 7.170188210227252, - 36.64764404296875 - ], - [ - 5.576948686079504, - 37.44429154829544 - ], - [ - 4.780162464488626, - 39.037669788707376 - ], - [ - 5.576948686079504, - 39.037669788707376 - ], - [ - 7.966863458806756, - 38.240994540127815 - ], - [ - 10.356889204545382, - 37.44429154829544 - ], - [ - 11.153675426136374, - 37.44429154829544 - ], - [ - 12.747025923295382, - 37.44429154829544 - ], - [ - 13.543812144886374, - 37.44429154829544 - ], - [ - 14.340376420454504, - 37.44429154829544 - ], - [ - 14.340376420454504, - 36.64764404296875 - ], - [ - 14.340376420454504, - 36.64764404296875 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2333984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340376420454504, - 36.64764404296875 - ] - }, - { - "id": "k2Y4OnOLayUWgzEzyilfP", - "type": "freedraw", - "x": 404.23231407264615, - "y": -326.37633504495903, - "width": 7.96686345880687, - "height": 150.57392467151988, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2091950381, - "version": 350, - "versionNonce": 1217097443, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186811967329618, - 6.373457475142061 - ], - [ - 3.186811967329618, - 7.170160466974437 - ], - [ - 3.983487215909122, - 7.966863458806813 - ], - [ - 3.983487215909122, - 6.373457475142061 - ], - [ - 2.390247691761374, - 2.390025745738626 - ], - [ - 1.5934614701704959, - -3.186784224076689 - ], - [ - 0.7967862215909918, - -17.52716064453125 - ], - [ - 0, - -31.070834073153435 - ], - [ - -0.7966752485795041, - -47.004588734019876 - ], - [ - -0.7966752485795041, - -66.12507213245738 - ], - [ - -0.7966752485795041, - -86.04225852272731 - ], - [ - -0.7966752485795041, - -111.53622713955968 - ], - [ - -0.7966752485795041, - -117.90976784446019 - ], - [ - -1.5933504971590082, - -133.84349476207387 - ], - [ - -2.390025745738626, - -139.4203047318892 - ], - [ - -3.18670099431813, - -141.81038596413356 - ], - [ - -3.983376242897748, - -142.60706121271306 - ], - [ - -3.983376242897748, - -140.21700772372157 - ], - [ - -3.983376242897748, - -136.2335759943182 - ], - [ - -3.18670099431813, - -130.65676602450282 - ], - [ - -3.18670099431813, - -126.67330655184657 - ], - [ - -3.18670099431813, - -126.67330655184657 - ] - ], - "pressures": [ - 0.0244140625, - 0.1494140625, - 0.2021484375, - 0.2578125, - 0.5673828125, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5439453125, - 0.2099609375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.18670099431813, - -126.67330655184657 - ] - }, - { - "id": "sdh5SidXsl6PzWebDxJ-H", - "type": "freedraw", - "x": 265.608767819095, - "y": -338.3266579764221, - "width": 9.560213955965992, - "height": 34.25756281072444, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1021920931, - "version": 338, - "versionNonce": 1800512717, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.983431729403378 - ], - [ - 0, - 8.763538707386374 - ], - [ - 0.7966752485796178, - 9.56024169921875 - ], - [ - 0.7966752485796178, - 8.763538707386374 - ], - [ - 0, - 5.5767822265625 - ], - [ - -2.390081232244256, - 0.796675248579561 - ], - [ - -4.780106977982882, - -4.780134721235811 - ], - [ - -7.966863458806756, - -18.32383589311081 - ], - [ - -8.763538707386374, - -24.697321111505687 - ], - [ - -8.763538707386374, - -24.697321111505687 - ] - ], - "pressures": [ - 0.037109375, - 0.056640625, - 0.1298828125, - 0.16796875, - 0.3330078125, - 0.5673828125, - 0.87890625, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.763538707386374, - -24.697321111505687 - ] - }, - { - "id": "9FLRPHApv_Uk1iw8OCFvn", - "type": "freedraw", - "x": 256.84522911170865, - "y": -370.99087028998747, - "width": 66.92166415127849, - "height": 182.44143399325282, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2116726883, - "version": 364, - "versionNonce": 1738644099, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 39.03764204545462, - -77.27866432883519 - ], - [ - 27.884022105823874, - 44.614535245028435 - ], - [ - 27.08734685724437, - 44.614535245028435 - ], - [ - 26.290671608664752, - 43.02112926136368 - ], - [ - 25.493996360085248, - 38.24099454012787 - ], - [ - 24.697265625, - 28.680780584161937 - ], - [ - 23.900590376420496, - 25.493996360085248 - ], - [ - 23.10391512784099, - 15.137079412286937 - ], - [ - 23.10391512784099, - 6.373512961647748 - ], - [ - 23.10391512784099, - -3.186700994318187 - ], - [ - 24.697265625, - -16.730429909446002 - ], - [ - 27.884022105823874, - -43.817776766690315 - ], - [ - 29.477428089488626, - -60.54823441938919 - ], - [ - 31.867453835227252, - -76.48196133700282 - ], - [ - 36.64761629971599, - -102.77266068892044 - ], - [ - 39.03764204545462, - -110.73952414772725 - ], - [ - 47.00456099076712, - -130.65671053799713 - ], - [ - 51.78466796875, - -137.03020962801844 - ], - [ - 54.971424449573874, - -137.82689874822438 - ], - [ - 57.3614501953125, - -133.046777898615 - ], - [ - 62.141612659801126, - -121.096454967152 - ], - [ - 65.32831365411937, - -108.34947065873575 - ], - [ - 66.92166415127849, - -90.02566250887782 - ], - [ - 66.92166415127849, - -66.92169189453125 - ], - [ - 60.54826216264212, - -27.88404984907669 - ], - [ - 54.971424449573874, - -1.593350497159065 - ], - [ - 49.394586736505744, - 18.323808149857996 - ], - [ - 45.41115500710225, - 31.867509321732996 - ], - [ - 43.817804509943244, - 39.03769753196025 - ], - [ - 43.021073774857996, - 42.22445401278412 - ], - [ - 43.817804509943244, - 42.22445401278412 - ], - [ - 43.817804509943244, - 39.83437278053981 - ], - [ - 43.817804509943244, - 37.44431929154831 - ], - [ - 43.817804509943244, - 36.64764404296875 - ], - [ - 43.817804509943244, - 34.25756281072444 - ], - [ - 45.41115500710225, - 31.867509321732996 - ], - [ - 45.41115500710225, - 31.070806329900563 - ], - [ - 45.41115500710225, - 31.070806329900563 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5849609375, - 0.240234375, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 45.41115500710225, - 31.070806329900563 - ] - }, - { - "id": "VMvAkRNo6Cocg10xuCOUu", - "type": "freedraw", - "x": 271.98228078074277, - "y": -351.8703591482971, - "width": 41.427723277698874, - "height": 195.18839055841613, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 238810595, - "version": 358, - "versionNonce": 280855341, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -2.390053488991498 - ], - [ - -3.186756480823874, - -9.56024169921875 - ], - [ - -4.780106977982996, - -21.510564630681813 - ], - [ - -6.373512961647748, - -36.647616299715935 - ], - [ - -7.170188210227252, - -52.581370960582376 - ], - [ - -7.96686345880687, - -75.68528608842331 - ], - [ - -7.96686345880687, - -87.63560901988637 - ], - [ - -6.373512961647748, - -100.382607199929 - ], - [ - -2.39008123224437, - -113.12960537997162 - ], - [ - 4.780106977982996, - -130.65673828125 - ], - [ - 9.560213955965878, - -138.6236017400568 - ], - [ - 13.543701171875, - -144.99710083007812 - ], - [ - 16.73040216619313, - -148.18384343927556 - ], - [ - 19.917158647017004, - -148.9805325594815 - ], - [ - 25.493996360085248, - -141.0136552290483 - ], - [ - 29.477428089488626, - -127.46998180042613 - ], - [ - 32.6641845703125, - -109.94282115589488 - ], - [ - 33.460859818892004, - -88.43228426846588 - ], - [ - 32.6641845703125, - -45.411182750355124 - ], - [ - 28.680752840909122, - -12.746998180042624 - ], - [ - 23.900590376420496, - 16.730429909446002 - ], - [ - 19.917158647017004, - 35.05423805930394 - ], - [ - 17.527132901278378, - 43.81780450994319 - ], - [ - 16.73040216619313, - 46.20785799893463 - ], - [ - 16.73040216619313, - 43.81780450994319 - ], - [ - 16.73040216619313, - 41.42775102095169 - ], - [ - 16.73040216619313, - 38.240994540127815 - ], - [ - 16.73040216619313, - 35.850941051136374 - ], - [ - 16.73040216619313, - 33.460887562144876 - ], - [ - 17.527132901278378, - 30.274103338068187 - ], - [ - 17.527132901278378, - 28.680752840909065 - ], - [ - 17.527132901278378, - 28.680752840909065 - ] - ], - "pressures": [ - 0.0087890625, - 0.7685546875, - 0.9453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.966796875, - 0.529296875, - 0.248046875, - 0.0634765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.527132901278378, - 28.680752840909065 - ] - }, - { - "id": "vIyy08d1qG4yRhWxrUar0", - "type": "freedraw", - "x": 265.608767819095, - "y": -343.1067926976579, - "width": 89.22901500355113, - "height": 173.67785367098725, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 536150883, - "version": 403, - "versionNonce": 103895587, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796702991832376 - ], - [ - 0, - -0.796702991832376 - ], - [ - 0.7966752485796178, - -2.390081232244313 - ], - [ - 2.39008123224437, - -7.966891202059628 - ], - [ - 8.763538707386374, - -24.697321111505687 - ], - [ - 12.747025923295496, - -39.83437278053975 - ], - [ - 15.137051669034122, - -54.971396706321 - ], - [ - 16.730457652698874, - -70.9051513671875 - ], - [ - 16.730457652698874, - -83.65217729048294 - ], - [ - 16.730457652698874, - -94.80576948686081 - ], - [ - 14.340376420454618, - -110.73952414772725 - ], - [ - 13.543701171875, - -121.89317183061081 - ], - [ - 13.543701171875, - -131.45341352982956 - ], - [ - 12.747025923295496, - -140.21697998046875 - ], - [ - 12.747025923295496, - -143.4037225896662 - ], - [ - 12.747025923295496, - -144.99710083007812 - ], - [ - 12.747025923295496, - -145.79378995028407 - ], - [ - 12.747025923295496, - -144.99710083007812 - ], - [ - 12.747025923295496, - -142.60704734108663 - ], - [ - 12.747025923295496, - -141.0136552290483 - ], - [ - 12.747025923295496, - -137.82692649147725 - ], - [ - 11.950295188210248, - -127.46998180042613 - ], - [ - 11.153619939630744, - -117.113037109375 - ], - [ - 10.356944691051126, - -104.36603892933238 - ], - [ - 9.560269442471622, - -92.41574374112218 - ], - [ - 8.763538707386374, - -79.66874556107956 - ], - [ - 8.763538707386374, - -67.71842262961644 - ], - [ - 7.170188210227252, - -58.15818093039769 - ], - [ - 7.170188210227252, - -58.95485617897725 - ], - [ - 7.96686345880687, - -67.71842262961644 - ], - [ - 10.356944691051126, - -78.87204256924718 - ], - [ - 14.340376420454618, - -94.00912198153407 - ], - [ - 19.917214133522748, - -111.53622713955968 - ], - [ - 27.08734685724437, - -127.46998180042613 - ], - [ - 33.46085981889212, - -138.6236017400568 - ], - [ - 41.427723277698874, - -145.79378995028407 - ], - [ - 45.41115500710225, - -146.59047907049006 - ], - [ - 49.394586736505744, - -143.4037225896662 - ], - [ - 54.971424449573874, - -131.45341352982956 - ], - [ - 58.15812544389212, - -118.70638760653407 - ], - [ - 58.954911665482996, - -105.16274192116475 - ], - [ - 58.954911665482996, - -89.22898726029831 - ], - [ - 56.564774946732996, - -70.10850386186081 - ], - [ - 52.58139870383525, - -48.597939231179 - ], - [ - 47.00456099076712, - -19.1204833984375 - ], - [ - 43.021129261363626, - -2.390081232244313 - ], - [ - 38.241022283380744, - 10.356916947798311 - ], - [ - 34.25753506747162, - 22.307239879261374 - ], - [ - 32.6641845703125, - 25.493996360085248 - ], - [ - 31.867509321732996, - 24.697321111505687 - ], - [ - 31.070834073153378, - 19.917186390269876 - ], - [ - 30.274103338068244, - 11.950295188210248 - ], - [ - 30.274103338068244, - -0.796702991832376 - ], - [ - 31.867509321732996, - -27.88407759232956 - ], - [ - 35.850941051136374, - -48.597939231179 - ], - [ - 42.22445401278412, - -70.10850386186081 - ], - [ - 51.784723455255744, - -96.39917547052556 - ], - [ - 57.3614501953125, - -109.94284889914769 - ], - [ - 62.141612659801126, - -121.09646883877843 - ], - [ - 66.12509987571025, - -129.86003528941757 - ], - [ - 70.108476118608, - -136.23354825106532 - ], - [ - 74.09196333451712, - -138.6236017400568 - ], - [ - 78.87201482599437, - -134.64017001065343 - ], - [ - 81.26215154474437, - -124.28322531960225 - ], - [ - 82.85550204190338, - -112.33293013139206 - ], - [ - 87.63566450639212, - -90.02569025213069 - ], - [ - 89.22901500355113, - -70.9051513671875 - ], - [ - 87.63566450639212, - -49.3946144797585 - ], - [ - 83.652177290483, - -27.88407759232956 - ], - [ - 79.66869007457387, - -7.966891202059628 - ], - [ - 74.88863858309662, - 7.966863458806813 - ], - [ - 69.31180087002838, - 21.510536887428998 - ], - [ - 67.71845037286937, - 25.493996360085248 - ], - [ - 66.12509987571025, - 26.290671608664752 - ], - [ - 66.12509987571025, - 27.087374600497185 - ], - [ - 66.12509987571025, - 25.493996360085248 - ], - [ - 66.12509987571025, - 25.493996360085248 - ] - ], - "pressures": [ - 0.0166015625, - 0.349609375, - 0.576171875, - 0.79296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.12509987571025, - 25.493996360085248 - ] - }, - { - "id": "AamVVu4-N9LXEgunE3vJg", - "type": "freedraw", - "x": 256.0484983766234, - "y": -342.31008970582553, - "width": 0, - "height": 3.983431729403435, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1911754765, - "version": 329, - "versionNonce": 769561997, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.983431729403435 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0537109375, - 0.171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 3.983431729403435 - ] - }, - { - "id": "H6oDSuM0-zbvU4U298gKD", - "type": "freedraw", - "x": 256.84522911170865, - "y": -337.52998272784254, - "width": 94.00906649502849, - "height": 163.32090897993606, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 583257731, - "version": 375, - "versionNonce": 355014083, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 15.137051669034122, - -133.84346701882106 - ], - [ - 15.933726917613626, - -70.10850386186081 - ], - [ - 15.933726917613626, - -68.51509787819606 - ], - [ - 15.933726917613626, - -73.29523259943181 - ], - [ - 17.527077414772748, - -82.05879905007106 - ], - [ - 19.917158647017118, - -92.41571599786931 - ], - [ - 26.290671608664752, - -112.33290238813919 - ], - [ - 31.867453835227252, - -128.2666570490057 - ], - [ - 38.240966796875, - -141.8103582208807 - ], - [ - 45.41115500710225, - -148.183857310902 - ], - [ - 50.19126198508525, - -149.77722167968756 - ], - [ - 56.564774946732996, - -141.0136552290483 - ], - [ - 59.7515869140625, - -129.86003528941762 - ], - [ - 64.53163840553975, - -114.72298362038356 - ], - [ - 69.31180087002849, - -97.99255371093756 - ], - [ - 70.9051513671875, - -71.70185435901993 - ], - [ - 65.32831365411937, - -51.78469571200287 - ], - [ - 58.15812544389212, - -33.46088756214493 - ], - [ - 50.987992720170496, - -18.323808149857996 - ], - [ - 45.41115500710225, - -9.56024169921875 - ], - [ - 42.22439852627849, - -5.576809969815372 - ], - [ - 42.22439852627849, - -7.966891202059685 - ], - [ - 42.22439852627849, - -15.933754660866498 - ], - [ - 42.22439852627849, - -27.884049849076746 - ], - [ - 43.817804509943244, - -41.427751020951746 - ], - [ - 47.00456099076712, - -66.92174738103694 - ], - [ - 50.19126198508525, - -84.44885253906256 - ], - [ - 54.174693714488626, - -99.58593195134944 - ], - [ - 58.15812544389212, - -114.72298362038356 - ], - [ - 66.12498890269887, - -135.43684525923294 - ], - [ - 72.49850186434662, - -144.99711470170456 - ], - [ - 77.27866432883525, - -150.5739107998935 - ], - [ - 81.262040571733, - -150.5739107998935 - ], - [ - 85.24552778764212, - -149.77722167968756 - ], - [ - 89.22901500355113, - -143.40373646129262 - ], - [ - 91.61904074928975, - -133.84346701882106 - ], - [ - 93.21239124644887, - -117.11303710937506 - ], - [ - 94.00906649502849, - -95.60250022194606 - ], - [ - 92.41571599786937, - -57.36150568181819 - ], - [ - 87.63555353338074, - -33.46088756214493 - ], - [ - 82.05882679332387, - -12.746970436789809 - ], - [ - 77.27866432883525, - 1.5933782404118801 - ], - [ - 74.09185236150574, - 9.56024169921875 - ], - [ - 70.9051513671875, - 12.746998180042567 - ], - [ - 70.108476118608, - 12.746998180042567 - ], - [ - 69.31180087002849, - 10.356916947798254 - ], - [ - 68.51512562144887, - 8.763566450639189 - ], - [ - 68.51512562144887, - 6.373485218394876 - ], - [ - 68.51512562144887, - 4.780106977982939 - ], - [ - 70.108476118608, - 3.186756480823817 - ], - [ - 70.108476118608, - 3.186756480823817 - ] - ], - "pressures": [ - 0.21484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.677734375, - 0.296875, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.108476118608, - 3.186756480823817 - ] - }, - { - "id": "3G-dg_7CmfJThZJC4S8T0", - "type": "freedraw", - "x": 368.38148399452115, - "y": -340.7167392086664, - "width": 82.85544655539775, - "height": 136.23352050781244, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 622063853, - "version": 356, - "versionNonce": 2112773101, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485796178, - 0.7966752485795041 - ], - [ - 0, - -3.186756480823874 - ], - [ - -4.780162464488626, - -15.137051669034122 - ], - [ - -7.96697443181813, - -24.697293368252872 - ], - [ - -9.560324928977252, - -36.647616299715935 - ], - [ - -10.357000177556756, - -52.581370960582376 - ], - [ - -10.357000177556756, - -70.90517911044032 - ], - [ - -9.560324928977252, - -95.60247247869319 - ], - [ - -8.763649680397748, - -106.75609241832387 - ], - [ - -7.170188210227252, - -114.72298362038356 - ], - [ - -3.9834872159090082, - -120.29979359019887 - ], - [ - 6.373401988636374, - -128.2666570490057 - ], - [ - 17.527077414772748, - -133.84346701882106 - ], - [ - 30.274103338068244, - -135.43684525923294 - ], - [ - 44.61447975852275, - -133.84346701882106 - ], - [ - 57.36139470880687, - -130.65671053799718 - ], - [ - 67.71839488636363, - -127.46998180042618 - ], - [ - 70.90509588068187, - -126.67327880859375 - ], - [ - 72.49844637784099, - -125.07990056818181 - ], - [ - 72.49844637784099, - -123.48652232776993 - ], - [ - 70.10853160511363, - -117.90971235795456 - ], - [ - 63.73490767045462, - -113.12957763671875 - ], - [ - 54.1748046875, - -108.34947065873581 - ], - [ - 43.817804509943244, - -103.56936368075282 - ], - [ - 33.460804332386374, - -100.382607199929 - ], - [ - 17.527077414772748, - -95.60247247869319 - ], - [ - 9.560213955965992, - -93.21239124644887 - ], - [ - 4.780051491477252, - -91.61904074928981 - ], - [ - 1.593350497159122, - -90.82236550071025 - ], - [ - 1.593350497159122, - -89.22895951704544 - ], - [ - 3.983376242897748, - -86.04223077947444 - ], - [ - 7.170188210227252, - -83.65217729048294 - ], - [ - 10.356889204545496, - -82.05879905007106 - ], - [ - 15.137051669034122, - -82.05879905007106 - ], - [ - 15.137051669034122, - -82.05879905007106 - ] - ], - "pressures": [ - 0.009765625, - 0.2978515625, - 0.55078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7587890625, - 0.3828125, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.137051669034122, - -82.05879905007106 - ] - }, - { - "id": "czTEaXav7D4mziFw6iDkA", - "type": "freedraw", - "x": 441.676716593953, - "y": -450.65958810781416, - "width": 112.33309659090912, - "height": 145.79378995028407, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1729699277, - "version": 361, - "versionNonce": 1671914851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983487215909122, - -4.780134721235811 - ], - [ - -9.560324928977252, - -7.170160466974437 - ], - [ - -22.307239879261374, - -8.763566450639189 - ], - [ - -33.46091530539775, - -6.373512961647691 - ], - [ - -45.411265980113626, - 0 - ], - [ - -64.5316938920455, - 15.933754660866498 - ], - [ - -74.09201882102275, - 28.680752840909065 - ], - [ - -81.26220703125, - 40.631075772372185 - ], - [ - -84.44890802556824, - 49.39461447975856 - ], - [ - -82.05888227982962, - 54.971424449573874 - ], - [ - -74.09201882102275, - 58.15818093039775 - ], - [ - -60.54831764914775, - 60.54826216264206 - ], - [ - -43.021129261363626, - 61.34490966796875 - ], - [ - -27.087291370738626, - 58.95485617897725 - ], - [ - -7.96686345880687, - 51.78466796875 - ], - [ - -2.39013671875, - 49.39461447975856 - ], - [ - -1.5934614701704959, - 48.597939231179 - ], - [ - -3.186700994318244, - 47.00456099076706 - ], - [ - -10.35700017755687, - 45.411182750355124 - ], - [ - -27.087291370738626, - 43.81780450994319 - ], - [ - -39.834428267045496, - 45.411182750355124 - ], - [ - -54.1748046875, - 52.58139870383525 - ], - [ - -68.51518110795462, - 62.141612659801126 - ], - [ - -88.43228426846588, - 78.87204256924718 - ], - [ - -99.58595969460225, - 91.61904074928975 - ], - [ - -106.75614790482962, - 104.36606667258525 - ], - [ - -111.53631036931824, - 113.12960537997162 - ], - [ - -109.94284889914775, - 118.70641534978694 - ], - [ - -96.39925870028412, - 125.87660356001419 - ], - [ - -82.85555752840912, - 131.45341352982956 - ], - [ - -69.31185635653412, - 136.23354825106537 - ], - [ - -55.76815518465912, - 137.03022349964488 - ], - [ - -35.054154829545496, - 133.0467917702415 - ], - [ - -20.713889382102252, - 127.46998180042613 - ], - [ - -7.96686345880687, - 121.09646883877843 - ], - [ - -0.7967862215908781, - 116.31636186079544 - ], - [ - 0.7967862215908781, - 112.33293013139206 - ], - [ - -3.186700994318244, - 106.75609241832387 - ], - [ - -6.373512961647748, - 105.95941716974431 - ], - [ - -6.373512961647748, - 105.95941716974431 - ] - ], - "pressures": [ - 0.0673828125, - 0.287109375, - 0.4677734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.904296875, - 0.2412109375, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.373512961647748, - 105.95941716974431 - ] - }, - { - "id": "UtQZEbAAhB5f5VCYg6Y5l", - "type": "freedraw", - "x": 442.4735028155439, - "y": -463.4065862878567, - "width": 111.53619939630687, - "height": 168.89773282137787, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1564123619, - "version": 423, - "versionNonce": 418797133, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.18659002130687, - -3.983431729403435 - ], - [ - 6.373401988636374, - -8.763566450639246 - ], - [ - 6.373401988636374, - -9.56024169921875 - ], - [ - 4.779940518465878, - -10.356944691051183 - ], - [ - -0.7967862215908781, - -11.95032293146312 - ], - [ - -8.763649680397748, - -11.95032293146312 - ], - [ - -25.494162819602252, - -3.983431729403435 - ], - [ - -38.24118874289775, - 6.373485218394876 - ], - [ - -52.58145419034088, - 21.510592373934628 - ], - [ - -65.32848011363637, - 38.240994540127815 - ], - [ - -78.07550603693176, - 62.93828790838063 - ], - [ - -81.26220703125, - 75.68528608842325 - ], - [ - -81.26220703125, - 83.65217729048294 - ], - [ - -76.48215553977275, - 86.83890602805394 - ], - [ - -66.9218306107955, - 88.43228426846588 - ], - [ - -55.768266157670496, - 88.43228426846588 - ], - [ - -35.850941051136374, - 86.04223077947438 - ], - [ - -22.307350852272748, - 82.058799050071 - ], - [ - -8.763649680397748, - 77.278692072088 - ], - [ - 2.389914772727252, - 69.3118286132812 - ], - [ - 3.18659002130687, - 66.92174738103688 - ], - [ - 1.593239524147748, - 65.32839688387782 - ], - [ - -3.983487215909122, - 62.93828790838063 - ], - [ - -12.747136896306756, - 61.344937411221565 - ], - [ - -27.884077592329504, - 60.54823441938913 - ], - [ - -38.24118874289775, - 62.93828790838063 - ], - [ - -49.39475319602275, - 69.3118286132812 - ], - [ - -62.14177911931813, - 79.66871781782669 - ], - [ - -80.4655317826705, - 100.38260719992894 - ], - [ - -89.22907049005676, - 114.7229836203835 - ], - [ - -94.805908203125, - 127.46998180042607 - ], - [ - -96.39925870028412, - 137.82689874822438 - ], - [ - -94.0092329545455, - 145.79378995028407 - ], - [ - -86.83904474431813, - 149.77722167968744 - ], - [ - -70.9053178267045, - 154.55732865767044 - ], - [ - -55.768266157670496, - 156.15070689808232 - ], - [ - -41.42788973721588, - 156.94740988991475 - ], - [ - -27.087513316761374, - 153.76065340909088 - ], - [ - -17.527299360795496, - 148.98054643110794 - ], - [ - -7.96697443181813, - 142.6070334694602 - ], - [ - 1.593239524147748, - 137.0302512428977 - ], - [ - 9.560102982954504, - 131.4534135298295 - ], - [ - 13.543590198863626, - 128.26665704900563 - ], - [ - 15.136940696022748, - 128.26665704900563 - ], - [ - 11.950239701704504, - 128.26665704900563 - ], - [ - 1.593239524147748, - 133.04681951349426 - ], - [ - -7.170299183238626, - 139.42027698863632 - ], - [ - -18.323974609375, - 145.79378995028407 - ], - [ - -30.274214311079504, - 152.16727516867894 - ], - [ - -43.021240234375, - 155.35403164950282 - ], - [ - -63.73512961647725, - 154.55732865767044 - ], - [ - -74.88880504261363, - 150.573896928267 - ], - [ - -82.05899325284088, - 144.9971147017045 - ], - [ - -87.63571999289775, - 137.82689874822438 - ], - [ - -92.41588245738637, - 126.6732788085937 - ], - [ - -93.21255770596588, - 121.89317183061075 - ], - [ - -93.21255770596588, - 117.9097123579545 - ], - [ - -90.02585671164775, - 114.7229836203835 - ], - [ - -86.04236949573863, - 109.94284889914769 - ], - [ - -76.48215553977275, - 101.97598544034088 - ], - [ - -67.71861683238637, - 96.3991754705255 - ], - [ - -58.954967151988626, - 92.41571599786926 - ], - [ - -50.19142844460225, - 89.22901500355107 - ], - [ - -39.03786399147725, - 86.04223077947438 - ], - [ - -32.664351029829504, - 83.65217729048294 - ], - [ - -26.290838068181756, - 80.46542080965907 - ], - [ - -19.917214133522748, - 76.48198908025563 - ], - [ - -14.340487393465878, - 73.29526034268463 - ], - [ - -11.153786399147748, - 72.49855735085225 - ], - [ - -9.560435901988626, - 72.49855735085225 - ], - [ - -10.35711115056813, - 72.49855735085225 - ], - [ - -11.950350674715878, - 71.70185435901982 - ], - [ - -12.747136896306756, - 71.70185435901982 - ], - [ - -15.137162642045496, - 70.90517911044032 - ], - [ - -18.323974609375, - 70.10847611860794 - ], - [ - -23.900701349431756, - 70.10847611860794 - ], - [ - -32.664351029829504, - 70.90517911044032 - ], - [ - -40.631214488636374, - 73.29526034268463 - ], - [ - -50.988103693181756, - 75.68528608842325 - ], - [ - -60.54842862215912, - 77.278692072088 - ], - [ - -69.3119673295455, - 77.278692072088 - ], - [ - -75.68548029119313, - 74.09190784801132 - ], - [ - -81.26220703125, - 66.92174738103688 - ], - [ - -82.8556685014205, - 62.141612659801126 - ], - [ - -82.8556685014205, - 56.564802689985754 - ], - [ - -80.4655317826705, - 50.98799272017038 - ], - [ - -71.70199307528412, - 39.83437278053975 - ], - [ - -62.14177911931813, - 29.47745583274144 - ], - [ - -50.988103693181756, - 19.1204833984375 - ], - [ - -37.444402521306756, - 10.356944691051126 - ], - [ - -22.307350852272748, - 5.57683771306813 - ], - [ - 0, - 3.186756480823817 - ], - [ - 8.763427734375, - 3.186756480823817 - ], - [ - 11.950239701704504, - 4.780134721235754 - ], - [ - 13.543590198863626, - 5.57683771306813 - ], - [ - 15.136940696022748, - 7.966863458806756 - ], - [ - 15.136940696022748, - 9.560269442471565 - ], - [ - 15.136940696022748, - 11.950295188210191 - ], - [ - 14.340265447443244, - 14.340376420454504 - ], - [ - 13.543590198863626, - 15.137051669034065 - ], - [ - 12.746803977272748, - 15.137051669034065 - ], - [ - 12.746803977272748, - 15.137051669034065 - ] - ], - "pressures": [ - 0.0576171875, - 0.0849609375, - 0.17578125, - 0.2158203125, - 0.384765625, - 0.5556640625, - 0.7890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.6044921875, - 0.2744140625, - 0.2001953125, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.746803977272748, - 15.137051669034065 - ] - }, - { - "id": "QYsJnQqISie8tWDyMhWnx", - "type": "freedraw", - "x": 267.2021738027598, - "y": -352.6670621401295, - "width": 70.9051513671875, - "height": 136.2335205078125, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 565628109, - "version": 409, - "versionNonce": 1492828419, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - -2.390053488991498 - ], - [ - -7.9669189453125, - -8.763538707386374 - ], - [ - -9.560269442471508, - -19.1204833984375 - ], - [ - -9.560269442471508, - -31.070806329900563 - ], - [ - -7.9669189453125, - -51.78466796875 - ], - [ - -3.9834872159090082, - -67.7184226296165 - ], - [ - 0.7966752485796178, - -82.85547429865062 - ], - [ - 7.170132723721622, - -94.80576948686081 - ], - [ - 11.950295188210248, - -103.5693359375 - ], - [ - 17.527077414772748, - -107.55276766690343 - ], - [ - 20.713833895596622, - -105.9593894264915 - ], - [ - 23.10391512784099, - -97.99252596768468 - ], - [ - 24.697265625, - -86.04223077947444 - ], - [ - 26.290671608664866, - -58.158153187144876 - ], - [ - 26.290671608664866, - -35.85091330788356 - ], - [ - 26.290671608664866, - -18.323808149857996 - ], - [ - 26.290671608664866, - -8.763538707386374 - ], - [ - 26.290671608664866, - -5.5767822265625 - ], - [ - 26.290671608664866, - -6.373485218394933 - ], - [ - 26.290671608664866, - -11.153619939630687 - ], - [ - 25.493940873579618, - -19.91715864701706 - ], - [ - 23.900590376420496, - -39.03766978870743 - ], - [ - 23.900590376420496, - -55.768099698153435 - ], - [ - 26.290671608664866, - -72.49852960759944 - ], - [ - 29.477428089488626, - -87.6355812766335 - ], - [ - 33.46085981889212, - -101.17925470525569 - ], - [ - 38.240966796875, - -112.33290238813925 - ], - [ - 46.20783025568187, - -121.893144087358 - ], - [ - 49.394642223011374, - -122.68984707919037 - ], - [ - 53.37801846590912, - -117.90971235795456 - ], - [ - 56.564719460227366, - -106.75609241832387 - ], - [ - 60.548206676136374, - -82.85547429865062 - ], - [ - 61.34488192471599, - -62.93828790838069 - ], - [ - 58.954856178977366, - -39.83434503728694 - ], - [ - 54.174693714488626, - -20.713861638849437 - ], - [ - 49.394642223011374, - -8.763538707386374 - ], - [ - 47.004505504261374, - -3.983431729403435 - ], - [ - 47.004505504261374, - -3.186728737571059 - ], - [ - 47.004505504261374, - -3.983431729403435 - ], - [ - 47.004505504261374, - -9.560213955965935 - ], - [ - 48.597856001420496, - -17.527077414772748 - ], - [ - 52.58134321732962, - -28.68072509765625 - ], - [ - 54.971368963068244, - -39.03766978870743 - ], - [ - 56.564719460227366, - -52.58134321732956 - ], - [ - 58.15818093039775, - -67.7184226296165 - ], - [ - 58.15818093039775, - -82.85547429865062 - ], - [ - 56.564719460227366, - -102.7726606889205 - ], - [ - 51.78466796875, - -113.12957763671875 - ], - [ - 47.004505504261374, - -119.5030905983665 - ], - [ - 41.427723277698874, - -123.48652232776988 - ], - [ - 37.444291548295496, - -124.28319757634944 - ], - [ - 32.66412908380687, - -117.113037109375 - ], - [ - 29.477428089488626, - -103.5693359375 - ], - [ - 27.08734685724437, - -89.22893177379262 - ], - [ - 25.493940873579618, - -75.68528608842331 - ], - [ - 25.493940873579618, - -54.1747214577415 - ], - [ - 25.493940873579618, - -38.240966796875 - ], - [ - 25.493940873579618, - -24.697293368252872 - ], - [ - 26.290671608664866, - -15.137051669034122 - ], - [ - 27.08734685724437, - -11.153619939630687 - ], - [ - 27.08734685724437, - -13.543645685369313 - ], - [ - 25.493940873579618, - -19.91715864701706 - ], - [ - 23.900590376420496, - -35.054238059304 - ], - [ - 23.900590376420496, - -50.19128972833812 - ], - [ - 24.697265625, - -66.12504438920456 - ], - [ - 27.08734685724437, - -78.87204256924718 - ], - [ - 29.477428089488626, - -95.60247247869319 - ], - [ - 29.477428089488626, - -104.36603892933238 - ], - [ - 28.68069735440349, - -111.53619939630687 - ], - [ - 27.08734685724437, - -114.72295587713069 - ], - [ - 23.900590376420496, - -117.113037109375 - ], - [ - 17.527077414772748, - -117.90971235795456 - ], - [ - 13.54364568536937, - -115.51965886896312 - ], - [ - 9.560213955965992, - -107.55276766690343 - ], - [ - 5.5767822265625, - -92.41571599786937 - ], - [ - 1.593350497159122, - -67.7184226296165 - ], - [ - 0.7966752485796178, - -50.19128972833812 - ], - [ - 2.390025745738626, - -33.460832075639246 - ], - [ - 6.373457475142118, - -16.73042990944606 - ], - [ - 10.356889204545496, - -1.593350497159122 - ], - [ - 14.340320933948874, - 10.356972434303941 - ], - [ - 14.340320933948874, - 11.950322931463063 - ], - [ - 15.137051669034122, - 11.950322931463063 - ], - [ - 15.933726917613626, - 10.356972434303941 - ], - [ - 15.933726917613626, - 7.170188210227252 - ], - [ - 15.933726917613626, - 2.390108975497128 - ], - [ - 15.933726917613626, - 1.593378240411937 - ], - [ - 15.933726917613626, - 1.593378240411937 - ] - ], - "pressures": [ - 0.0791015625, - 0.70703125, - 0.8955078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4833984375, - 0.265625, - 0.1650390625, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.933726917613626, - 1.593378240411937 - ] - }, - { - "id": "YneVT0XbEq6QUsz_szmOC", - "type": "freedraw", - "x": 256.84522911170865, - "y": -345.4968739299022, - "width": 70.9051513671875, - "height": 124.28325306285507, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1027138189, - "version": 372, - "versionNonce": 1506804909, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 2.390081232244313 - ], - [ - 0, - 3.186784224076689 - ], - [ - 0, - 2.390081232244313 - ], - [ - 1.593350497159122, - -8.763538707386374 - ], - [ - 3.9834317294034918, - -20.713833895596565 - ], - [ - 7.170188210227252, - -33.46085981889206 - ], - [ - 11.153619939630744, - -47.801236239346565 - ], - [ - 15.137051669034122, - -62.93828790838069 - ], - [ - 19.917158647017118, - -84.44882479580963 - ], - [ - 22.307239879261374, - -97.99252596768463 - ], - [ - 23.900590376420496, - -108.34944291548294 - ], - [ - 23.900590376420496, - -115.51965886896306 - ], - [ - 23.900590376420496, - -120.299765846946 - ], - [ - 23.900590376420496, - -121.09646883877838 - ], - [ - 24.697265625, - -119.5030905983665 - ], - [ - 27.08734685724437, - -114.72295587713069 - ], - [ - 27.884022105823874, - -110.73952414772725 - ], - [ - 29.477428089488626, - -105.16271417791194 - ], - [ - 31.070778586647748, - -97.19585071910512 - ], - [ - 31.867453835227252, - -86.838906028054 - ], - [ - 31.867453835227252, - -66.92171963778412 - ], - [ - 31.867453835227252, - -52.58131547407669 - ], - [ - 30.274103338068244, - -39.83434503728694 - ], - [ - 29.477428089488626, - -25.493996360085248 - ], - [ - 29.477428089488626, - -18.32380814985794 - ], - [ - 29.477428089488626, - -13.543673428622185 - ], - [ - 29.477428089488626, - -11.153619939630687 - ], - [ - 30.274103338068244, - -10.356916947798311 - ], - [ - 30.274103338068244, - -12.746970436789752 - ], - [ - 30.274103338068244, - -24.697265625 - ], - [ - 31.070778586647748, - -36.64758855646306 - ], - [ - 33.46085981889212, - -50.987964976917624 - ], - [ - 36.64761629971599, - -67.7184226296165 - ], - [ - 41.427723277698874, - -84.44882479580963 - ], - [ - 52.58134321732962, - -102.77266068892044 - ], - [ - 58.15812544389212, - -108.34944291548294 - ], - [ - 61.34493741122162, - -109.94284889914775 - ], - [ - 62.938287908380744, - -109.94284889914775 - ], - [ - 67.71845037286937, - -103.5693359375 - ], - [ - 70.108476118608, - -91.61904074928975 - ], - [ - 70.9051513671875, - -75.68528608842325 - ], - [ - 70.108476118608, - -56.56477494673294 - ], - [ - 66.92166415127849, - -39.037669788707376 - ], - [ - 62.141612659801126, - -20.713833895596565 - ], - [ - 60.54826216264212, - -15.137051669034065 - ], - [ - 58.95480069247162, - -13.543673428622185 - ], - [ - 58.95480069247162, - -12.746970436789752 - ], - [ - 58.15812544389212, - -12.746970436789752 - ], - [ - 54.971424449573874, - -15.933726917613626 - ], - [ - 54.174693714488626, - -16.730402166193187 - ], - [ - 54.174693714488626, - -16.730402166193187 - ] - ], - "pressures": [ - 0.005859375, - 0.1748046875, - 0.6884765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6240234375, - 0.1572265625, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.174693714488626, - -16.730402166193187 - ] - }, - { - "id": "RdpVMvdOY948IeLcwkjDO", - "type": "freedraw", - "x": 263.21868658685077, - "y": -357.44716911811247, - "width": 84.44890802556813, - "height": 140.21697998046875, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 795430371, - "version": 375, - "versionNonce": 1856088227, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.950350674715878, - -122.68984707919032 - ], - [ - 13.543701171875, - -125.87660356001419 - ], - [ - 15.137107155539752, - -131.4534135298295 - ], - [ - 15.933782404119256, - -131.4534135298295 - ], - [ - 15.933782404119256, - -129.86003528941762 - ], - [ - 15.933782404119256, - -121.89317183061075 - ], - [ - 15.137107155539752, - -107.55279541015625 - ], - [ - 12.747025923295382, - -89.22898726029825 - ], - [ - 9.560269442471508, - -72.49852960759938 - ], - [ - 7.170188210227252, - -47.801236239346565 - ], - [ - 6.373512961647634, - -30.274131081321002 - ], - [ - 6.373512961647634, - -17.527132901278378 - ], - [ - 6.373512961647634, - -10.356944691051126 - ], - [ - 7.170188210227252, - -15.137051669034065 - ], - [ - 8.763594193892004, - -23.900618119673254 - ], - [ - 12.747025923295382, - -50.98799272017044 - ], - [ - 17.527132901278378, - -74.88861083984375 - ], - [ - 23.900645862926126, - -96.39914772727269 - ], - [ - 31.070834073153378, - -113.12960537997157 - ], - [ - 37.444347034801126, - -122.68984707919032 - ], - [ - 39.037697531960134, - -124.28322531960225 - ], - [ - 40.631103515625, - -125.07992831143463 - ], - [ - 43.021129261363626, - -125.07992831143463 - ], - [ - 47.004560990767004, - -121.09646883877838 - ], - [ - 50.98799272017038, - -112.332930131392 - ], - [ - 50.98799272017038, - -87.63560901988637 - ], - [ - 47.004560990767004, - -68.515097878196 - ], - [ - 43.021129261363626, - -46.20785799893463 - ], - [ - 37.444347034801126, - -15.933754660866441 - ], - [ - 35.054265802556756, - -6.373512961647691 - ], - [ - 34.25759055397725, - -3.983431729403378 - ], - [ - 34.25759055397725, - -7.966863458806813 - ], - [ - 34.25759055397725, - -17.527132901278378 - ], - [ - 38.24102228338063, - -42.22442626953125 - ], - [ - 43.021129261363626, - -62.9383156516335 - ], - [ - 52.581343217329504, - -83.65217729048294 - ], - [ - 69.31185635653401, - -107.55279541015625 - ], - [ - 77.27871981534088, - -113.92628062855113 - ], - [ - 81.26209605823863, - -114.7229836203835 - ], - [ - 83.65223277698863, - -110.73955189098012 - ], - [ - 84.44890802556813, - -100.38257945667613 - ], - [ - 82.05877130681813, - -83.65217729048294 - ], - [ - 73.29523259943176, - -51.78466796875 - ], - [ - 69.31185635653401, - -29.477428089488626 - ], - [ - 66.1250443892045, - -11.950322931463063 - ], - [ - 64.53169389204538, - 3.983431729403435 - ], - [ - 63.73501864346588, - 7.966863458806813 - ], - [ - 63.73501864346588, - 8.763566450639246 - ], - [ - 63.73501864346588, - 7.966863458806813 - ], - [ - 61.34499289772725, - 6.373485218394933 - ], - [ - 58.158180930397634, - 2.390053488991498 - ], - [ - 57.36150568181813, - 0 - ], - [ - 57.36150568181813, - -0.7966752485795041 - ], - [ - 57.36150568181813, - -0.7966752485795041 - ] - ], - "pressures": [ - 0.0341796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.83203125, - 0.2646484375, - 0.126953125, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.36150568181813, - -0.7966752485795041 - ] - }, - { - "id": "8q-9maBOHt-GFDGlIlbqb", - "type": "freedraw", - "x": 262.42201133827115, - "y": -351.8703591482971, - "width": 95.60247247869313, - "height": 142.60706121271306, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 98912835, - "version": 378, - "versionNonce": 69527309, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5933504971590082, - -3.983431729403435 - ], - [ - -1.5933504971590082, - -11.950322931463063 - ], - [ - -1.5933504971590082, - -22.30721213600856 - ], - [ - -0.7966752485795041, - -35.850941051136374 - ], - [ - 1.593405983664752, - -53.37804620916194 - ], - [ - 4.780162464488626, - -78.87204256924713 - ], - [ - 7.170188210227252, - -92.41574374112213 - ], - [ - 7.170188210227252, - -101.1792824485085 - ], - [ - 7.170188210227252, - -105.9593894264915 - ], - [ - 7.170188210227252, - -106.75609241832387 - ], - [ - 7.96686345880687, - -101.1792824485085 - ], - [ - 12.747025923295496, - -78.87204256924713 - ], - [ - 14.340376420454618, - -64.53166614879262 - ], - [ - 14.340376420454618, - -55.76812744140625 - ], - [ - 14.340376420454618, - -51.78466796875 - ], - [ - 14.340376420454618, - -52.581370960582376 - ], - [ - 13.543701171875, - -58.158153187144876 - ], - [ - 13.543701171875, - -68.51512562144887 - ], - [ - 15.137051669034122, - -82.85547429865056 - ], - [ - 23.900645862926126, - -105.9593894264915 - ], - [ - 31.867509321732996, - -117.90974010120738 - ], - [ - 40.63104802911937, - -125.07990056818181 - ], - [ - 48.597911487926126, - -128.2666570490057 - ], - [ - 58.15818093039775, - -129.06336004083806 - ], - [ - 63.73501864346599, - -125.87660356001425 - ], - [ - 67.71839488636363, - -114.7229836203835 - ], - [ - 69.31185635653412, - -97.19585071910512 - ], - [ - 66.12504438920462, - -75.68528608842331 - ], - [ - 56.564830433238626, - -38.240966796875 - ], - [ - 50.19131747159099, - -18.323780406605124 - ], - [ - 46.2078857421875, - -5.576809969815372 - ], - [ - 43.817804509943244, - 0 - ], - [ - 43.817804509943244, - 0.796675248579561 - ], - [ - 43.817804509943244, - -1.593378240411937 - ], - [ - 43.817804509943244, - -7.966863458806813 - ], - [ - 44.61447975852275, - -17.527132901278435 - ], - [ - 45.411210493607996, - -30.274103338068187 - ], - [ - 49.394642223011374, - -54.971424449573874 - ], - [ - 54.1748046875, - -71.70185435901988 - ], - [ - 59.75153142755687, - -87.63560901988637 - ], - [ - 65.328369140625, - -102.7726606889205 - ], - [ - 74.09190784801137, - -115.51965886896306 - ], - [ - 79.66874556107962, - -116.3163618607955 - ], - [ - 84.44890802556824, - -113.92628062855113 - ], - [ - 89.2289595170455, - -105.9593894264915 - ], - [ - 92.415771484375, - -94.00909423828125 - ], - [ - 94.00912198153412, - -70.90517911044037 - ], - [ - 94.00912198153412, - -49.3946144797585 - ], - [ - 91.6190962357955, - -27.087374600497185 - ], - [ - 86.83893377130687, - -7.966863458806813 - ], - [ - 80.46542080965912, - 10.356944691051126 - ], - [ - 78.8720703125, - 13.543701171875 - ], - [ - 77.27871981534099, - 13.543701171875 - ], - [ - 75.6852583451705, - 10.356944691051126 - ], - [ - 74.09190784801137, - 6.373485218394876 - ], - [ - 72.49855735085225, - 2.390053488991441 - ], - [ - 72.49855735085225, - 2.390053488991441 - ] - ], - "pressures": [ - 0.0888671875, - 0.953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6923828125, - 0.2890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 72.49855735085225, - 2.390053488991441 - ] - }, - { - "id": "g3YeG-FE-b693zmPzuI1B", - "type": "freedraw", - "x": 260.0319855925325, - "y": -339.9200639600869, - "width": 91.61904074928975, - "height": 154.5573286576705, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 994587501, - "version": 369, - "versionNonce": 1783274563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 7.170188210227309 - ], - [ - 0, - 6.373512961647748 - ], - [ - -0.7967307350852479, - 3.186756480823874 - ], - [ - -1.593405983664752, - -0.7966752485795041 - ], - [ - -2.390081232244256, - -11.950295188210191 - ], - [ - -2.390081232244256, - -23.900618119673254 - ], - [ - -2.390081232244256, - -37.44429154829544 - ], - [ - -2.390081232244256, - -52.581343217329504 - ], - [ - -2.390081232244256, - -69.31177312677556 - ], - [ - 0, - -94.00906649502838 - ], - [ - 2.390025745738626, - -108.34947065873575 - ], - [ - 5.5767822265625, - -118.70638760653407 - ], - [ - 7.96686345880687, - -125.07990056818181 - ], - [ - 11.153619939630744, - -127.46995405717325 - ], - [ - 18.323808149857996, - -128.2666570490057 - ], - [ - 24.697265625, - -128.2666570490057 - ], - [ - 31.867453835227252, - -125.07990056818181 - ], - [ - 38.240966796875, - -117.90968461470169 - ], - [ - 45.41115500710225, - -100.38257945667607 - ], - [ - 46.20783025568187, - -85.245527787642 - ], - [ - 44.61447975852275, - -65.32834139737213 - ], - [ - 39.83431729403412, - -45.41115500710225 - ], - [ - 34.25753506747162, - -31.070806329900563 - ], - [ - 30.274103338068244, - -21.51053688742894 - ], - [ - 29.477428089488626, - -19.917158647017004 - ], - [ - 29.477428089488626, - -22.307212136008502 - ], - [ - 31.070778586647748, - -35.8509133078835 - ], - [ - 31.867453835227252, - -50.19126198508519 - ], - [ - 33.46085981889212, - -67.71842262961644 - ], - [ - 35.054210316051126, - -84.44885253906244 - ], - [ - 38.240966796875, - -102.77266068892044 - ], - [ - 44.61447975852275, - -127.46995405717325 - ], - [ - 50.98793723366475, - -137.82689874822444 - ], - [ - 58.95485617897725, - -144.2003839666193 - ], - [ - 65.328369140625, - -147.3871404474432 - ], - [ - 73.29523259943187, - -144.9970869584517 - ], - [ - 79.66874556107962, - -136.23352050781244 - ], - [ - 85.24547230113637, - -120.299765846946 - ], - [ - 88.43228426846588, - -98.789228959517 - ], - [ - 89.2289595170455, - -74.88858309659088 - ], - [ - 82.05877130681824, - -41.42772327769882 - ], - [ - 75.6852583451705, - -23.900618119673254 - ], - [ - 70.90509588068187, - -10.356889204545439 - ], - [ - 67.71839488636363, - -1.593350497159065 - ], - [ - 66.12504438920462, - 2.39008123224437 - ], - [ - 65.328369140625, - 2.39008123224437 - ], - [ - 63.73490767045462, - 2.39008123224437 - ], - [ - 63.73490767045462, - 2.39008123224437 - ] - ], - "pressures": [ - 0.0400390625, - 0.138671875, - 0.33984375, - 0.7607421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 63.73490767045462, - 2.39008123224437 - ] - }, - { - "id": "NuXb_R-_VpGhQ8SOOqnV6", - "type": "freedraw", - "x": 322.9702180144075, - "y": -337.52998272784254, - "width": 0.7966752485795041, - "height": 3.983431729403435, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 757278413, - "version": 323, - "versionNonce": 711884141, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -3.983431729403435 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 1, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.7966752485795041, - -3.983431729403435 - ] - }, - { - "id": "wWKRsvk9P_9neNNRNlJEL", - "type": "freedraw", - "x": 225.77433955204975, - "y": -168.63223603483812, - "width": 92.41571599786926, - "height": 148.9805325594815, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 333495437, - "version": 347, - "versionNonce": 1473518563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - -1.5933782404118801 - ], - [ - -5.5767822265625, - -3.983431729403378 - ], - [ - -7.966863458806813, - -14.340348677201689 - ], - [ - -8.763538707386374, - -38.24096679687497 - ], - [ - -7.170188210227309, - -53.37804620916191 - ], - [ - -3.983431729403378, - -66.92171963778407 - ], - [ - 0.7967307350852479, - -78.87204256924713 - ], - [ - 8.763594193892004, - -87.63560901988637 - ], - [ - 19.12053888494313, - -94.00910810990763 - ], - [ - 39.03769753196025, - -95.60247247869313 - ], - [ - 54.971424449573874, - -87.63560901988637 - ], - [ - 70.10853160511363, - -72.49852960759941 - ], - [ - 80.46547629616475, - -55.76809969815338 - ], - [ - 83.65217729048288, - -29.477428089488598 - ], - [ - 76.48198908025563, - -8.763566450639189 - ], - [ - 62.938343394886374, - 13.543701171875 - ], - [ - 47.004560990767004, - 30.27413108132106 - ], - [ - 28.680752840909122, - 35.850941051136374 - ], - [ - 17.527132901278378, - 25.49402410333812 - ], - [ - 7.170188210227252, - 7.170188210227309 - ], - [ - 1.593405983664752, - -15.137051669034065 - ], - [ - 0.7967307350852479, - -37.44429154829544 - ], - [ - 7.9669189453125, - -69.31180087002838 - ], - [ - 18.323808149857882, - -87.63560901988637 - ], - [ - 31.867509321732882, - -101.1792824485085 - ], - [ - 45.41121049360788, - -109.14615977894175 - ], - [ - 63.73501864346588, - -113.12959150834513 - ], - [ - 72.49855735085225, - -113.12959150834513 - ], - [ - 75.68531383167613, - -108.34947065873575 - ], - [ - 74.091963334517, - -99.585918079723 - ], - [ - 68.51512562144887, - -92.41571599786926 - ], - [ - 66.12509987571025, - -90.02566250887782 - ], - [ - 66.12509987571025, - -90.02566250887782 - ] - ], - "pressures": [ - 0.0234375, - 0.21875, - 0.267578125, - 0.4287109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6923828125, - 0.2841796875, - 0.14453125, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.12509987571025, - -90.02566250887782 - ] - }, - { - "id": "NZr81rRkl70Da9R14zEMC", - "type": "freedraw", - "x": 65.64022866781681, - "y": -290.5253939938225, - "width": 98.78922895951706, - "height": 149.7772216796875, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 17963715, - "version": 348, - "versionNonce": 1408649165, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -1.5933782404118801 - ], - [ - -3.186700994318187, - -0.7966891202059401 - ], - [ - 7.170188210227252, - 3.186742609197495 - ], - [ - 19.917158647017004, - 3.186742609197495 - ], - [ - 34.257535067471565, - 0.7966891202059969 - ], - [ - 48.59796697443181, - -4.780120849609375 - ], - [ - 70.90515136718744, - -15.933740789240005 - ], - [ - 84.44890802556813, - -23.103928999467314 - ], - [ - 92.41577148437494, - -28.68073896928263 - ], - [ - 94.80579723011363, - -30.27410333806813 - ], - [ - 94.80579723011363, - -31.070806329900506 - ], - [ - 90.82236550071019, - -35.85092717950988 - ], - [ - 86.83887828480113, - -39.037683660333755 - ], - [ - 82.85544655539769, - -40.631048029119256 - ], - [ - 77.27866432883519, - -41.42773714932525 - ], - [ - 68.51512562144882, - -39.83437278053975 - ], - [ - 65.32836914062494, - -39.037683660333755 - ], - [ - 63.73496315696019, - -39.037683660333755 - ], - [ - 63.73496315696019, - -38.24098066850138 - ], - [ - 62.93828790838063, - -31.867495450106503 - ], - [ - 60.548262162642004, - -19.917186390269876 - ], - [ - 55.76809969815338, - 7.966877330433249 - ], - [ - 52.58139870383519, - 32.66417069868612 - ], - [ - 51.78466796874994, - 60.54824829101565 - ], - [ - 51.78466796874994, - 83.6521911621094 - ], - [ - 52.58139870383519, - 97.99253983931112 - ], - [ - 54.174693714488626, - 107.55280928178269 - ], - [ - 54.97142444957382, - 108.34948453036225 - ], - [ - 56.564830433238626, - 106.75610628995031 - ], - [ - 56.564830433238626, - 98.7892428311435 - ], - [ - 55.76809969815338, - 80.46540693803269 - ], - [ - 55.76809969815338, - 72.49854347922587 - ], - [ - 54.97142444957382, - 71.70189597389918 - ], - [ - 54.97142444957382, - 71.70189597389918 - ] - ], - "pressures": [ - 0.0625, - 0.1484375, - 0.7587890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.400390625, - 0.1591796875, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.97142444957382, - 71.70189597389918 - ] - }, - { - "id": "eoSgGnHGfovJXEsWQdC3d", - "type": "freedraw", - "x": 60.86006620332813, - "y": -292.11877223423437, - "width": 116.31625088778407, - "height": 23.90061811967331, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 526485091, - "version": 333, - "versionNonce": 1129097091, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - 0.7966891202059401 - ], - [ - -6.373401988636317, - 0.7966891202059401 - ], - [ - -1.593350497159065, - -0.796675248579561 - ], - [ - 10.356944691051183, - -4.780106977982996 - ], - [ - 27.88407759232956, - -9.56024169921875 - ], - [ - 48.59796697443181, - -13.54368730024862 - ], - [ - 80.46542080965912, - -19.917186390269876 - ], - [ - 97.19593394886363, - -21.510550759055434 - ], - [ - 105.95941716974431, - -22.307239879261374 - ], - [ - 109.14622913707387, - -22.307239879261374 - ], - [ - 109.94284889914775, - -22.307239879261374 - ], - [ - 109.14622913707387, - -22.307239879261374 - ], - [ - 107.55282315340912, - -23.10392899946737 - ], - [ - 105.95941716974431, - -23.10392899946737 - ], - [ - 104.36606667258525, - -23.10392899946737 - ], - [ - 103.56939142400569, - -23.10392899946737 - ], - [ - 102.7726606889205, - -22.307239879261374 - ], - [ - 101.97598544034093, - -21.510550759055434 - ], - [ - 101.97598544034093, - -21.510550759055434 - ] - ], - "pressures": [ - 0.0068359375, - 0.1611328125, - 0.19921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8916015625, - 0.4501953125, - 0.189453125, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 101.97598544034093, - -21.510550759055434 - ] - }, - { - "id": "EbVSsfsmBWASoBMTW-o7s", - "type": "freedraw", - "x": 115.831490652902, - "y": -323.98626768434093, - "width": 7.966863458806813, - "height": 133.84346701882103, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2096691469, - "version": 328, - "versionNonce": 1658177069, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - 11.950309059836684 - ], - [ - -0.796675248579561, - 41.42775102095169 - ], - [ - -1.593295010653378, - 61.344923539595186 - ], - [ - -1.593295010653378, - 79.66874556107956 - ], - [ - -2.390025745738626, - 97.19587846235797 - ], - [ - -2.390025745738626, - 118.70641534978694 - ], - [ - -1.593295010653378, - 128.2666570490057 - ], - [ - 0, - 133.0468195134943 - ], - [ - 0.7967307350852479, - 133.84346701882103 - ], - [ - 1.593405983664752, - 133.84346701882103 - ], - [ - 3.186756480823874, - 125.87660356001422 - ], - [ - 3.983431729403435, - 117.90974010120738 - ], - [ - 5.576837713068187, - 112.33293013139206 - ], - [ - 5.576837713068187, - 111.53622713955966 - ], - [ - 5.576837713068187, - 111.53622713955966 - ] - ], - "pressures": [ - 0.1103515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4912109375, - 0.14453125, - 0.01171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.576837713068187, - 111.53622713955966 - ] - }, - { - "id": "_OG829BsyxIrUidnVeqZO", - "type": "freedraw", - "x": 160.44602589793044, - "y": -284.1518949038011, - "width": 67.71839488636363, - "height": 36.6476024280895, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 835188547, - "version": 326, - "versionNonce": 854769443, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -2.390067360617934 - ], - [ - -3.186756480823874, - -2.390067360617934 - ], - [ - 0.7966752485795041, - -3.983431729403435 - ], - [ - 7.170188210227252, - -7.966877330433249 - ], - [ - 17.527132901278378, - -12.746984308416245 - ], - [ - 30.274103338068187, - -19.120497270063993 - ], - [ - 50.19126198508519, - -28.680738969282686 - ], - [ - 58.158125443892004, - -33.4608736905185 - ], - [ - 62.14161265980107, - -35.850927179509995 - ], - [ - 63.73496315696019, - -36.6476024280895 - ], - [ - 61.344881924715935, - -35.054238059304 - ], - [ - 59.75153142755681, - -32.66417069868612 - ], - [ - 58.158125443892004, - -29.477428089488683 - ], - [ - 57.3614501953125, - -28.680738969282686 - ], - [ - 57.3614501953125, - -28.680738969282686 - ] - ], - "pressures": [ - 0.0546875, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.748046875, - 0.216796875, - 0.0078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 57.3614501953125, - -28.680738969282686 - ] - }, - { - "id": "LoB0QWAAVgwa79rYWFhV1", - "type": "freedraw", - "x": 206.65385615361225, - "y": -319.2061329631051, - "width": 9.560269442471565, - "height": 113.12963312322444, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1932350829, - "version": 326, - "versionNonce": 972454029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -3.983445601029871 - ], - [ - 1.593405983664752, - -4.780134721235811 - ], - [ - 1.593405983664752, - -3.983445601029871 - ], - [ - 1.593405983664752, - 3.186742609197438 - ], - [ - 1.593405983664752, - 21.510550759055377 - ], - [ - 0, - 37.444305419921875 - ], - [ - -2.390025745738626, - 55.768113569779814 - ], - [ - -5.5767822265625, - 74.09190784801135 - ], - [ - -7.170188210227309, - 90.82233775745738 - ], - [ - -7.966863458806813, - 101.9759854403409 - ], - [ - -7.966863458806813, - 108.34949840198863 - ], - [ - -7.966863458806813, - 106.75609241832385 - ], - [ - -7.966863458806813, - 101.1792824485085 - ], - [ - -7.966863458806813, - 96.39917547052556 - ], - [ - -7.966863458806813, - 94.80579723011363 - ], - [ - -7.966863458806813, - 94.80579723011363 - ] - ], - "pressures": [ - 0.078125, - 0.1767578125, - 0.3251953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9404296875, - 0.25390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.966863458806813, - 94.80579723011363 - ] - }, - { - "id": "E-DP0T1i2BqknWGMHFGiD", - "type": "freedraw", - "x": 166.02286361099863, - "y": -218.8234980199233, - "width": 62.14155717329538, - "height": 15.13710715553978, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1532216013, - "version": 319, - "versionNonce": 1630855875, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390025745738626, - -2.3901089754971565 - ], - [ - 9.560213955965878, - -4.7801624644886545 - ], - [ - 19.120427911931813, - -7.170215953480124 - ], - [ - 31.867453835227252, - -9.560297185724437 - ], - [ - 48.59785600142044, - -11.950322931463063 - ], - [ - 55.76804421164775, - -13.543728915127843 - ], - [ - 59.751475941051126, - -13.543728915127843 - ], - [ - 61.34488192471588, - -15.13710715553978 - ], - [ - 62.14155717329538, - -15.13710715553978 - ], - [ - 62.14155717329538, - -15.13710715553978 - ] - ], - "pressures": [ - 0.0693359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.14155717329538, - -15.13710715553978 - ] - }, - { - "id": "VjeA289pJT9VdqhanwJ_j", - "type": "freedraw", - "x": 164.42945762733382, - "y": -312.8326338730838, - "width": 79.66874556107956, - "height": 6.373499090021312, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 943131331, - "version": 323, - "versionNonce": 588373741, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - -0.7966891202059969 - ], - [ - 2.390025745738626, - -0.7966891202059969 - ], - [ - 11.153619939630687, - -1.593378240411937 - ], - [ - 32.6641845703125, - -2.390067360617934 - ], - [ - 48.597911487926126, - -3.186756480823874 - ], - [ - 62.14161265980118, - -3.983431729403435 - ], - [ - 72.49855735085231, - -3.983431729403435 - ], - [ - 78.07533957741481, - -3.983431729403435 - ], - [ - 78.07533957741481, - -5.576809969815372 - ], - [ - 76.48198908025569, - -6.373499090021312 - ], - [ - 74.88858309659093, - -6.373499090021312 - ], - [ - 74.09190784801132, - -6.373499090021312 - ], - [ - 73.29523259943181, - -5.576809969815372 - ], - [ - 73.29523259943181, - -5.576809969815372 - ] - ], - "pressures": [ - 0.0673828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.787109375, - 0.2705078125, - 0.1806640625, - 0.025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 73.29523259943181, - -5.576809969815372 - ] - }, - { - "id": "SQsEOMgfafLR-iEwKXzS-", - "type": "freedraw", - "x": 205.8571809050327, - "y": -324.7829429329205, - "width": 7.966863458806813, - "height": 140.2169522372159, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1329452995, - "version": 324, - "versionNonce": 917607011, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - 0, - -3.186756480823874 - ], - [ - 0, - 1.593364368785501 - ], - [ - -0.796675248579561, - 22.307239879261374 - ], - [ - -3.983431729403435, - 46.207857998934685 - ], - [ - -7.170188210227252, - 74.09190784801137 - ], - [ - -7.966863458806813, - 97.99255371093753 - ], - [ - -7.966863458806813, - 114.72295587713069 - ], - [ - -7.170188210227252, - 129.86006303267047 - ], - [ - -5.576837713068187, - 134.6401422674006 - ], - [ - -4.780106977982939, - 136.23352050781253 - ], - [ - -4.780106977982939, - 134.6401422674006 - ], - [ - -5.576837713068187, - 130.65671053799718 - ], - [ - -5.576837713068187, - 126.67327880859378 - ], - [ - -4.780106977982939, - 125.07990056818184 - ], - [ - -4.780106977982939, - 125.07990056818184 - ] - ], - "pressures": [ - 0.0615234375, - 0.267578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4775390625, - 0.166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.780106977982939, - 125.07990056818184 - ] - }, - { - "id": "3GJ1kHPxaUMse3boe9d89", - "type": "freedraw", - "x": 157.25926941710657, - "y": -201.2964206051506, - "width": 6.373457475142061, - "height": 3.9834317294034065, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 515642467, - "version": 310, - "versionNonce": 1957787981, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350851911, - -2.3900534889914695 - ], - [ - 6.373457475142061, - -3.9834317294034065 - ], - [ - 6.373457475142061, - -3.9834317294034065 - ] - ], - "pressures": [ - 0.072265625, - 0.947265625, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.373457475142061, - -3.9834317294034065 - ] - }, - { - "id": "D9uPyBZWb_FqzO4_jLioX", - "type": "freedraw", - "x": 167.6162141081577, - "y": -206.8732028317131, - "width": 84.44885253906244, - "height": 1.5933504971590935, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1517971469, - "version": 308, - "versionNonce": 70733315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 84.44885253906244, - 1.5933504971590935 - ], - [ - 84.44885253906244, - 1.5933504971590935 - ] - ], - "pressures": [ - 1, - 0.15625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 84.44885253906244, - 1.5933504971590935 - ] - }, - { - "id": "0UlMYAewZXO-AbibEmeD2", - "type": "freedraw", - "x": 256.84517362520313, - "y": -203.68647409414206, - "width": 72.49855735085225, - "height": 176.06790715997866, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 564103373, - "version": 357, - "versionNonce": 2016331693, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -7.966863458806813 - ], - [ - 0, - -18.323808149857967 - ], - [ - 0, - -30.27413108132103 - ], - [ - 0, - -44.61447975852272 - ], - [ - -0.7966752485795041, - -60.54823441938919 - ], - [ - -0.7966752485795041, - -78.87204256924718 - ], - [ - 1.593350497159122, - -109.14615977894175 - ], - [ - 3.186756480823874, - -125.07990056818181 - ], - [ - 4.780106977982996, - -133.84346701882106 - ], - [ - 4.780106977982996, - -138.6236017400568 - ], - [ - 4.780106977982996, - -143.4037225896662 - ], - [ - 6.373512961647748, - -147.38715431906962 - ], - [ - 7.170188210227252, - -149.7772216796875 - ], - [ - 7.170188210227252, - -150.57391079989344 - ], - [ - 7.96686345880687, - -148.18384343927556 - ], - [ - 10.356944691051126, - -142.60703346946025 - ], - [ - 13.543701171875, - -133.04677789861506 - ], - [ - 15.137051669034122, - -117.11302323774856 - ], - [ - 18.323808149857996, - -86.83891989968043 - ], - [ - 22.307239879261374, - -65.32835526899856 - ], - [ - 27.884077592329504, - -44.61447975852272 - ], - [ - 33.460859818892004, - -27.087346857244313 - ], - [ - 37.444291548295496, - -15.933754660866498 - ], - [ - 39.03769753196025, - -11.153592196377843 - ], - [ - 39.83437278053975, - -11.153592196377843 - ], - [ - 39.83437278053975, - -16.73042990944603 - ], - [ - 40.63104802911937, - -28.680752840909093 - ], - [ - 40.63104802911937, - -56.56480268998581 - ], - [ - 42.22439852627838, - -78.87204256924718 - ], - [ - 45.41115500710225, - -98.78922895951706 - ], - [ - 50.19131747159088, - -113.92629450017756 - ], - [ - 54.174693714488626, - -124.28322531960231 - ], - [ - 60.548206676136374, - -138.6236017400568 - ], - [ - 63.73501864346588, - -145.7937760786577 - ], - [ - 66.1250443892045, - -149.7772216796875 - ], - [ - 66.1250443892045, - -150.57391079989344 - ], - [ - 66.92171963778412, - -146.59046519886363 - ], - [ - 69.31174538352275, - -139.42027698863637 - ], - [ - 70.90520685369324, - -129.86003528941762 - ], - [ - 71.70188210227275, - -113.12959150834519 - ], - [ - 71.70188210227275, - -86.04223077947444 - ], - [ - 71.70188210227275, - -37.44429154829547 - ], - [ - 71.70188210227275, - -9.56024169921875 - ], - [ - 70.90520685369324, - 10.356944691051126 - ], - [ - 70.90520685369324, - 21.510564630681813 - ], - [ - 70.90520685369324, - 25.49399636008522 - ], - [ - 70.90520685369324, - 24.697321111505687 - ], - [ - 70.90520685369324, - 21.510564630681813 - ], - [ - 70.10853160511363, - 15.137051669034093 - ], - [ - 67.71839488636363, - 4.7801347212357825 - ], - [ - 66.92171963778412, - 0.796702991832376 - ], - [ - 66.1250443892045, - 0 - ], - [ - 66.1250443892045, - 0 - ] - ], - "pressures": [ - 0.05078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.345703125, - 0.1396484375, - 0.0615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.1250443892045, - 0 - ] - }, - { - "id": "lna3XlPQQ92Ad4Fg55Q4A", - "type": "freedraw", - "x": 244.89487843699288, - "y": -208.46660881537787, - "width": 121.893144087358, - "height": 160.13418024236503, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 384553677, - "version": 348, - "versionNonce": 2093258147, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390025745738626, - -2.390025745738626 - ], - [ - 7.170188210227252, - -8.763538707386346 - ], - [ - 15.933726917613626, - -27.087346857244313 - ], - [ - 23.10391512784099, - -44.61447975852272 - ], - [ - 29.477428089488626, - -63.73497702858663 - ], - [ - 35.054210316051126, - -85.245527787642 - ], - [ - 40.63104802911937, - -107.55278153852981 - ], - [ - 46.20783025568187, - -131.45339965820312 - ], - [ - 47.80123623934662, - -137.82689874822444 - ], - [ - 47.80123623934662, - -138.62358786843038 - ], - [ - 47.80123623934662, - -134.64014226740056 - ], - [ - 47.80123623934662, - -121.89315795898438 - ], - [ - 48.597911487926126, - -105.95940329811788 - ], - [ - 50.987992720170496, - -86.838906028054 - ], - [ - 58.15812544389212, - -57.36147793856537 - ], - [ - 62.938287908380744, - -41.427723277698846 - ], - [ - 66.12498890269887, - -28.68072509765625 - ], - [ - 68.51512562144887, - -19.917186390269876 - ], - [ - 70.108476118608, - -15.933726917613626 - ], - [ - 70.9051513671875, - -15.137051669034093 - ], - [ - 71.70182661576712, - -17.527105158025563 - ], - [ - 72.49850186434662, - -27.087346857244313 - ], - [ - 74.09185236150574, - -40.63104802911931 - ], - [ - 78.87201482599437, - -62.93828790838063 - ], - [ - 84.4488525390625, - -81.26209605823863 - ], - [ - 90.02569025213074, - -98.78921508789062 - ], - [ - 96.39920321377849, - -116.31633411754262 - ], - [ - 105.16274192116475, - -133.843467018821 - ], - [ - 107.55276766690349, - -137.03020962801844 - ], - [ - 107.55276766690349, - -121.89315795898438 - ], - [ - 107.55276766690349, - -102.77266068892044 - ], - [ - 107.55276766690349, - -81.26209605823863 - ], - [ - 109.1461181640625, - -60.54822054776275 - ], - [ - 113.12960537997162, - -39.83434503728691 - ], - [ - 116.31630637428975, - -10.356889204545439 - ], - [ - 117.90965687144887, - 3.98345947265625 - ], - [ - 119.50311834161937, - 14.340376420454561 - ], - [ - 121.09646883877849, - 19.120511141690343 - ], - [ - 121.893144087358, - 21.510592373934657 - ], - [ - 121.893144087358, - 19.917186390269904 - ], - [ - 121.893144087358, - 15.137079412286937 - ], - [ - 120.29979359019887, - 9.560269442471593 - ], - [ - 119.50311834161937, - 6.373512961647748 - ], - [ - 119.50311834161937, - 6.373512961647748 - ] - ], - "pressures": [ - 0.072265625, - 0.876953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9365234375, - 0.4150390625, - 0.095703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 119.50311834161937, - 6.373512961647748 - ] - }, - { - "id": "MCnwG60FZYba6d6Gqj8HF", - "type": "freedraw", - "x": 401.04561307832813, - "y": -192.53285415451137, - "width": 103.5693359375, - "height": 152.16726129705256, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1584230765, - "version": 328, - "versionNonce": 263408141, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -7.966863458806841 - ], - [ - -4.780162464488626, - -19.917186390269904 - ], - [ - -7.966863458806756, - -46.20783025568184 - ], - [ - -7.966863458806756, - -70.10848999023438 - ], - [ - -7.966863458806756, - -96.39916159889913 - ], - [ - -6.373401988636374, - -118.70641534978694 - ], - [ - -5.57683771306813, - -132.25008877840912 - ], - [ - -7.170188210227252, - -144.20039783824575 - ], - [ - -9.560324928977252, - -148.98053255948156 - ], - [ - -11.153675426136374, - -150.57389692826706 - ], - [ - -8.763649680397748, - -148.98053255948156 - ], - [ - -3.983487215909122, - -148.18382956764913 - ], - [ - 5.576837713068244, - -146.59046519886363 - ], - [ - 30.274103338068244, - -145.7937760786577 - ], - [ - 49.394642223011374, - -146.59046519886363 - ], - [ - 66.92171963778412, - -148.98053255948156 - ], - [ - 82.05877130681824, - -151.370586048473 - ], - [ - 91.61898526278412, - -152.16726129705256 - ], - [ - 92.41566051136363, - -152.16726129705256 - ], - [ - 91.61898526278412, - -149.7772216796875 - ], - [ - 88.43228426846588, - -147.38715431906962 - ], - [ - 83.65212180397725, - -144.99708695845175 - ], - [ - 74.09190784801137, - -141.0136552290483 - ], - [ - 70.90509588068187, - -141.0136552290483 - ], - [ - 70.90509588068187, - -141.0136552290483 - ] - ], - "pressures": [ - 0.1171875, - 0.712890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8095703125, - 0.140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.90509588068187, - -141.0136552290483 - ] - }, - { - "id": "_ARsPpQaXnBsc-WL4RuMa", - "type": "freedraw", - "x": 393.0787496195214, - "y": -273.79496408437643, - "width": 90.025634765625, - "height": 4.780120849609375, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 544581379, - "version": 316, - "versionNonce": 1871178051, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0.7966891202059401 - ], - [ - 4.780051491477252, - -1.5933643687855579 - ], - [ - 11.950239701704504, - -3.186742609197438 - ], - [ - 24.697265625, - -3.983431729403435 - ], - [ - 42.224343039772634, - -3.983431729403435 - ], - [ - 67.71839488636363, - -3.983431729403435 - ], - [ - 79.66863458806813, - -3.983431729403435 - ], - [ - 86.04214754971588, - -3.983431729403435 - ], - [ - 89.22907049005676, - -3.983431729403435 - ], - [ - 90.025634765625, - -3.983431729403435 - ], - [ - 86.04214754971588, - -3.983431729403435 - ], - [ - 80.46542080965901, - -0.7966891202059401 - ], - [ - 77.27871981534088, - 0.7966891202059401 - ], - [ - 77.27871981534088, - 0.7966891202059401 - ] - ], - "pressures": [ - 0.1572265625, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.259765625, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 77.27871981534088, - 0.7966891202059401 - ] - }, - { - "id": "p6A-oYuH-Xs7w31CLoaDu", - "type": "freedraw", - "x": 403.43563882406676, - "y": -203.68647409414206, - "width": 118.70649857954544, - "height": 12.746998180042624, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 367801347, - "version": 313, - "versionNonce": 473464941, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.950350674715878, - 0 - ], - [ - 25.493940873579618, - -3.9834317294034065 - ], - [ - 43.021240234375, - -9.56024169921875 - ], - [ - 63.73501864346588, - -11.950322931463063 - ], - [ - 87.63560901988637, - -12.746998180042624 - ], - [ - 112.33287464488643, - -9.56024169921875 - ], - [ - 117.90971235795445, - -7.966863458806813 - ], - [ - 118.70649857954544, - -7.170160466974437 - ], - [ - 117.11303710937494, - -3.9834317294034065 - ], - [ - 113.92633611505693, - -2.390053488991498 - ], - [ - 112.33287464488643, - -2.390053488991498 - ], - [ - 112.33287464488643, - -2.390053488991498 - ] - ], - "pressures": [ - 0.0859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.1865234375, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 112.33287464488643, - -2.390053488991498 - ] - }, - { - "id": "i_5FCKqmX9iTE-EnlbNzB", - "type": "freedraw", - "x": 137.34205528358382, - "y": -282.55851666338924, - "width": 169.69443581321025, - "height": 30.274117209694623, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 914619565, - "version": 342, - "versionNonce": 1105184995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.593364368785501 - ], - [ - -2.390025745738626, - 0.7966891202059969 - ], - [ - -7.170132723721565, - -0.7966891202059401 - ], - [ - -13.543645685369313, - -2.390067360617877 - ], - [ - -20.713833895596565, - -3.983445601029814 - ], - [ - -27.884022105823874, - -6.373499090021255 - ], - [ - -38.240966796875, - -9.56025557084513 - ], - [ - -43.02107377485794, - -12.746998180042624 - ], - [ - -46.20783025568181, - -15.137065540660501 - ], - [ - -47.004505504261374, - -16.73044378107238 - ], - [ - -47.801236239346565, - -17.527119029652 - ], - [ - -47.004505504261374, - -17.527119029652 - ], - [ - -43.81780450994319, - -18.323794278231503 - ], - [ - -39.03764204545456, - -19.12049727006388 - ], - [ - -33.46085981889206, - -18.323794278231503 - ], - [ - -22.307239879261374, - -12.746998180042624 - ], - [ - -11.950295188210191, - -7.966877330433249 - ], - [ - 0.7967307350852479, - -3.186756480823874 - ], - [ - 21.510564630681813, - 3.983431729403435 - ], - [ - 35.05426580255681, - 7.170188210227252 - ], - [ - 50.98799272017044, - 10.356930819424747 - ], - [ - 70.10847611860794, - 11.153619939630744 - ], - [ - 90.02569025213069, - 11.153619939630744 - ], - [ - 106.75609241832382, - 10.356930819424747 - ], - [ - 120.29979359019882, - 7.96686345880687 - ], - [ - 121.89319957386368, - 6.373499090021369 - ], - [ - 121.09646883877843, - 2.390053488991498 - ], - [ - 112.33293013139206, - -8.763566450639189 - ], - [ - 101.17931019176132, - -15.137065540660501 - ], - [ - 88.43228426846593, - -18.323794278231503 - ], - [ - 75.68531383167613, - -18.323794278231503 - ], - [ - 63.735018643465935, - -15.933754660866498 - ], - [ - 53.37807395241481, - -13.543687300248564 - ], - [ - 41.42777876420456, - -9.56025557084513 - ], - [ - 36.64767178622162, - -7.170188210227252 - ], - [ - 34.25759055397731, - -5.576809969815315 - ], - [ - 33.46085981889206, - -5.576809969815315 - ], - [ - 33.46085981889206, - -4.780134721235754 - ], - [ - 35.05426580255681, - -1.5933782404118801 - ], - [ - 35.850941051136374, - -0.7966891202059401 - ], - [ - 35.850941051136374, - -0.7966891202059401 - ] - ], - "pressures": [ - 0.06640625, - 0.1044921875, - 0.580078125, - 0.73046875, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.36328125, - 0.181640625, - 0.0283203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.850941051136374, - -0.7966891202059401 - ] - }, - { - "id": "TkTfsyr97lUEpNnYEt0b2", - "type": "freedraw", - "x": 164.42945762733382, - "y": -276.98170669357387, - "width": 107.55276766690343, - "height": 125.87661743164057, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1175979203, - "version": 339, - "versionNonce": 596110029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983445601029871 - ], - [ - 0.796675248579561, - -6.373499090021312 - ], - [ - 2.390025745738626, - -7.966877330433249 - ], - [ - 3.186756480823874, - -9.560255570845186 - ], - [ - 3.983431729403435, - -10.356944691051126 - ], - [ - 3.983431729403435, - -11.950309059836627 - ], - [ - 3.983431729403435, - -7.170188210227252 - ], - [ - 3.983431729403435, - 3.983431729403378 - ], - [ - 3.983431729403435, - 19.917186390269876 - ], - [ - 3.186756480823874, - 41.42775102095169 - ], - [ - 0.796675248579561, - 76.48198908025566 - ], - [ - -2.390025745738626, - 94.80579723011363 - ], - [ - -4.780162464488626, - 105.95944491299713 - ], - [ - -6.373457475142061, - 111.53622713955963 - ], - [ - -6.373457475142061, - 113.12960537997157 - ], - [ - -6.373457475142061, - 113.92630837180394 - ], - [ - -8.763594193892061, - 113.12960537997157 - ], - [ - -15.137051669034065, - 109.94287664240056 - ], - [ - -31.070834073153378, - 101.1792824485085 - ], - [ - -43.021129261363626, - 94.80579723011363 - ], - [ - -52.58139870383519, - 89.22898726029828 - ], - [ - -59.7515869140625, - 86.04225852272725 - ], - [ - -65.328369140625, - 83.65217729048294 - ], - [ - -65.328369140625, - 82.85547429865056 - ], - [ - -64.53169389204544, - 82.85547429865056 - ], - [ - -58.95485617897725, - 82.85547429865056 - ], - [ - -44.61453524502838, - 83.65217729048294 - ], - [ - -29.477428089488626, - 83.65217729048294 - ], - [ - -11.153619939630687, - 85.24555553089488 - ], - [ - 7.170188210227309, - 87.63560901988635 - ], - [ - 31.070778586647748, - 91.61904074928975 - ], - [ - 39.03764204545456, - 94.00912198153407 - ], - [ - 41.427723277698874, - 95.60247247869316 - ], - [ - 42.224398526278435, - 95.60247247869316 - ], - [ - 38.240966796875, - 92.41571599786931 - ], - [ - 35.85088556463069, - 91.61904074928975 - ], - [ - 35.054210316051126, - 91.61904074928975 - ], - [ - 35.054210316051126, - 92.41571599786931 - ], - [ - 35.054210316051126, - 92.41571599786931 - ] - ], - "pressures": [ - 0.0166015625, - 0.072265625, - 0.123046875, - 0.154296875, - 0.1962890625, - 0.21484375, - 0.3369140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.58203125, - 0.3720703125, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.054210316051126, - 92.41571599786931 - ] - }, - { - "id": "PePuekK0xtC7Pj0Sljrh_", - "type": "freedraw", - "x": 174.78640231838494, - "y": -264.23470851353125, - "width": 181.64467551491475, - "height": 38.24099454012784, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 137331363, - "version": 339, - "versionNonce": 693810307, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983487215909065, - -1.5933782404119938 - ], - [ - -10.356944691051126, - -3.983445601029871 - ], - [ - -18.32380814985794, - -7.966877330433249 - ], - [ - -35.85094105113632, - -12.746998180042624 - ], - [ - -48.597911487926126, - -15.933754660866498 - ], - [ - -58.95491166548294, - -19.120497270063936 - ], - [ - -66.92177512428975, - -21.51056463068187 - ], - [ - -72.49850186434657, - -23.90061811967331 - ], - [ - -75.68531383167613, - -25.493996360085248 - ], - [ - -76.48198908025569, - -25.493996360085248 - ], - [ - -75.68531383167613, - -26.290685480291245 - ], - [ - -68.51507013494319, - -27.087374600497185 - ], - [ - -59.7515869140625, - -24.69730723987925 - ], - [ - -46.2078857421875, - -17.527119029652 - ], - [ - -28.680697354403378, - -7.170188210227252 - ], - [ - -10.356944691051126, - 2.390053488991498 - ], - [ - 15.137051669034122, - 10.356944691051126 - ], - [ - 31.070778586647748, - 11.153619939630659 - ], - [ - 46.20783025568181, - 11.153619939630659 - ], - [ - 70.10847611860794, - 11.153619939630659 - ], - [ - 86.04220303622157, - 8.763566450639189 - ], - [ - 98.78922895951706, - 6.373485218394876 - ], - [ - 104.36601118607956, - 3.186756480823874 - ], - [ - 105.16268643465907, - 0 - ], - [ - 105.16268643465907, - -4.780120849609375 - ], - [ - 96.39914772727269, - -13.54368730024862 - ], - [ - 86.83887828480118, - -16.730443781072495 - ], - [ - 73.29523259943181, - -17.527119029652 - ], - [ - 58.15812544389206, - -15.137065540660501 - ], - [ - 34.25753506747162, - -8.763566450639246 - ], - [ - 19.91715864701706, - -4.780120849609375 - ], - [ - 10.356889204545496, - -0.7966891202059969 - ], - [ - 5.5767822265625, - 0.7966891202059401 - ], - [ - 3.983431729403435, - 0.7966891202059401 - ], - [ - 4.780106977982996, - 0.7966891202059401 - ], - [ - 8.763538707386374, - 0.7966891202059401 - ], - [ - 14.340320933948874, - 0.7966891202059401 - ], - [ - 15.933726917613683, - 0.7966891202059401 - ], - [ - 15.933726917613683, - 0.7966891202059401 - ] - ], - "pressures": [ - 0.0849609375, - 0.56640625, - 0.87890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4853515625, - 0.2080078125, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.933726917613683, - 0.7966891202059401 - ] - }, - { - "id": "rai2_Vhwp7BDkZ0SuAPbY", - "type": "freedraw", - "x": 188.33004800375426, - "y": -256.2678450547245, - "width": 26.290616122159065, - "height": 148.183857310902, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 463668365, - "version": 317, - "versionNonce": 909838637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159065, - -7.170174338600816 - ], - [ - -2.390025745738626, - -12.746984308416131 - ], - [ - -2.390025745738626, - -16.730429909446002 - ], - [ - -3.186756480823817, - -17.527119029651942 - ], - [ - -3.983431729403378, - -11.950309059836627 - ], - [ - -5.5767822265625, - 0.7967029918324329 - ], - [ - -7.170188210227252, - 21.510592373934685 - ], - [ - -11.15361993963063, - 47.00456099076709 - ], - [ - -17.527132901278378, - 86.83893377130687 - ], - [ - -21.510564630681813, - 109.14620139382106 - ], - [ - -25.49399636008519, - 124.28322531960231 - ], - [ - -26.290616122159065, - 129.86003528941762 - ], - [ - -26.290616122159065, - 130.65673828125006 - ], - [ - -26.290616122159065, - 129.86003528941762 - ], - [ - -25.49399636008519, - 125.07992831143468 - ], - [ - -24.69732111150563, - 120.29979359019887 - ], - [ - -23.90059037642044, - 116.3163618607955 - ], - [ - -23.90059037642044, - 116.3163618607955 - ] - ], - "pressures": [ - 0.0888671875, - 0.1689453125, - 0.224609375, - 0.279296875, - 0.33984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9833984375, - 0.4423828125, - 0.1787109375, - 0.076171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.90059037642044, - 116.3163618607955 - ] - }, - { - "id": "Wtd-8kAkB0ax-cGmVzTNf", - "type": "freedraw", - "x": 202.67042442420882, - "y": -129.59456624613068, - "width": 3.186756480823874, - "height": 74.88858309659093, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1317480525, - "version": 309, - "versionNonce": 632761379, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.390053488991498 - ], - [ - 0, - -15.137051669034122 - ], - [ - 0, - -27.884049849076746 - ], - [ - 0, - -43.02110151811081 - ], - [ - 0.796675248579561, - -56.56477494673297 - ], - [ - 0.796675248579561, - -63.73496315696025 - ], - [ - 0, - -70.10847611860797 - ], - [ - -0.796675248579561, - -72.49852960759944 - ], - [ - -1.593350497159065, - -74.09190784801137 - ], - [ - -2.390081232244313, - -74.88858309659093 - ], - [ - -2.390081232244313, - -74.88858309659093 - ] - ], - "pressures": [ - 0.07421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8173828125, - 0.2919921875, - 0.1875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.390081232244313, - -74.88858309659093 - ] - }, - { - "id": "jF0VTts8AXcAv1w1FW3Ko", - "type": "freedraw", - "x": 200.2803431919645, - "y": -218.8234980199233, - "width": 12.747025923295496, - "height": 34.25756281072444, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 276803779, - "version": 302, - "versionNonce": 364600205, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -0.7967307350852479 - ], - [ - -0.796675248579561, - 0.796647505326689 - ], - [ - 10.356944691051126, - 31.07077858664772 - ], - [ - 11.950350674715935, - 33.46083207563919 - ], - [ - 11.950350674715935, - 33.46083207563919 - ] - ], - "pressures": [ - 0.15234375, - 0.927734375, - 0.98828125, - 0.279296875, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950350674715935, - 33.46083207563919 - ] - }, - { - "id": "EmFB8Do1vy207oQ93W1Ib", - "type": "freedraw", - "x": 225.77433955204975, - "y": -147.12164366090343, - "width": 72.49855735085225, - "height": 93.21239124644887, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1237687309, - "version": 336, - "versionNonce": 988000195, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350852479, - -7.170215953480124 - ], - [ - 3.983487215909122, - -70.10850386186078 - ], - [ - 3.983487215909122, - -65.32839688387784 - ], - [ - 4.780162464488626, - -47.80123623934659 - ], - [ - 4.780162464488626, - -39.03769753196022 - ], - [ - 2.390081232244256, - -16.730457652698874 - ], - [ - 1.593405983664752, - -10.356972434303998 - ], - [ - 1.593405983664752, - -9.560269442471565 - ], - [ - 1.593405983664752, - -18.32383589311081 - ], - [ - 3.983487215909122, - -31.86750932173294 - ], - [ - 9.560269442471622, - -47.80123623934659 - ], - [ - 18.323808149857882, - -59.75155917080966 - ], - [ - 24.69732111150563, - -62.14164040305397 - ], - [ - 30.274158824573874, - -58.15820867365056 - ], - [ - 31.867509321732882, - -51.78469571200284 - ], - [ - 31.867509321732882, - -43.81780450994319 - ], - [ - 31.070834073153378, - -31.070834073153407 - ], - [ - 26.290727095170382, - -11.950322931463063 - ], - [ - 24.69732111150563, - -5.576837713068187 - ], - [ - 24.69732111150563, - -4.780162464488626 - ], - [ - 24.69732111150563, - -6.373540704900563 - ], - [ - 26.290727095170382, - -12.747025923295439 - ], - [ - 31.867509321732882, - -33.460887562144876 - ], - [ - 40.631103515625, - -51.78469571200284 - ], - [ - 53.37807395241475, - -67.71842262961647 - ], - [ - 63.73501864346588, - -75.68531383167613 - ], - [ - 68.51512562144887, - -75.68531383167613 - ], - [ - 71.70188210227275, - -65.32839688387784 - ], - [ - 72.49855735085225, - -56.564830433238626 - ], - [ - 72.49855735085225, - -43.81780450994319 - ], - [ - 70.90520685369313, - -26.290699351917624 - ], - [ - 65.328369140625, - -0.7967307350852479 - ], - [ - 62.938343394886374, - 11.153592196377815 - ], - [ - 61.34493741122162, - 16.730402166193187 - ], - [ - 61.34493741122162, - 17.527077414772748 - ], - [ - 61.34493741122162, - 16.730402166193187 - ], - [ - 60.548262162642004, - 12.746970436789752 - ], - [ - 59.7515869140625, - 10.356916947798311 - ], - [ - 59.7515869140625, - 9.560213955965935 - ], - [ - 59.7515869140625, - 9.560213955965935 - ] - ], - "pressures": [ - 0.1201171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3974609375, - 0.2578125, - 0.1455078125, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 59.7515869140625, - 9.560213955965935 - ] - }, - { - "id": "SuAY6qwLh5-5Zii7LZePG", - "type": "freedraw", - "x": 131.76527305702132, - "y": -272.9982749641705, - "width": 129.06333229758525, - "height": 138.62358786843038, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1848384877, - "version": 389, - "versionNonce": 440558061, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558548, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - -0.7966891202059401 - ], - [ - -10.356944691051126, - -1.5933782404118801 - ], - [ - -11.153619939630687, - -1.5933782404118801 - ], - [ - -10.356944691051126, - -1.5933782404118801 - ], - [ - 0.796675248579561, - -1.5933782404118801 - ], - [ - 15.137051669034122, - -1.5933782404118801 - ], - [ - 30.274158824573874, - -1.5933782404118801 - ], - [ - 44.61447975852275, - -3.983431729403378 - ], - [ - 57.3614501953125, - -6.373499090021255 - ], - [ - 71.70182661576706, - -9.56024169921875 - ], - [ - 77.27866432883525, - -11.15361993963063 - ], - [ - 78.87201482599431, - -11.950309059836627 - ], - [ - 79.66874556107956, - -11.950309059836627 - ], - [ - 78.07533957741481, - -12.746998180042624 - ], - [ - 73.29523259943181, - -12.746998180042624 - ], - [ - 66.92171963778412, - -13.543687300248564 - ], - [ - 59.75153142755681, - -14.340376420454504 - ], - [ - 51.78466796875, - -15.933740789240005 - ], - [ - 40.63104802911931, - -18.32380814985794 - ], - [ - 34.25759055397731, - -19.12049727006388 - ], - [ - 30.274158824573874, - -19.91717251864344 - ], - [ - 27.884022105823874, - -20.71386163884938 - ], - [ - 26.29072709517044, - -21.510550759055377 - ], - [ - 26.29072709517044, - -20.71386163884938 - ], - [ - 28.680752840909122, - -8.763552579012753 - ], - [ - 29.477428089488626, - 3.983445601029871 - ], - [ - 30.274158824573874, - 19.917186390269904 - ], - [ - 31.070778586647748, - 39.037669788707404 - ], - [ - 31.070778586647748, - 60.54823441938922 - ], - [ - 31.070778586647748, - 89.22898726029831 - ], - [ - 31.070778586647748, - 103.56936368075287 - ], - [ - 31.070778586647748, - 110.73955189098012 - ], - [ - 31.070778586647748, - 114.72298362038356 - ], - [ - 31.070778586647748, - 116.3163618607955 - ], - [ - 31.86745383522731, - 117.113037109375 - ], - [ - 31.86745383522731, - 113.926308371804 - ], - [ - 29.477428089488626, - 97.99258145419037 - ], - [ - 28.680752840909122, - 80.46542080965912 - ], - [ - 28.680752840909122, - 60.54823441938922 - ], - [ - 30.274158824573874, - 40.63104802911934 - ], - [ - 30.274158824573874, - 23.90061811967331 - ], - [ - 31.070778586647748, - 7.966877330433249 - ], - [ - 31.070778586647748, - -0.7966891202059401 - ], - [ - 30.274158824573874, - -7.966877330433249 - ], - [ - 29.477428089488626, - -15.137051669034065 - ], - [ - 28.680752840909122, - -18.32380814985794 - ], - [ - 27.884022105823874, - -18.32380814985794 - ], - [ - 27.884022105823874, - -15.137051669034065 - ], - [ - 27.087346857244313, - -8.763552579012753 - ], - [ - 22.30729536576706, - 2.390067360617877 - ], - [ - 19.1204833984375, - 7.170188210227252 - ], - [ - 15.137051669034122, - 9.560255570845186 - ], - [ - 7.966863458806813, - 10.356930819424747 - ], - [ - -7.170188210227252, - 10.356930819424747 - ], - [ - -15.933782404119313, - 10.356930819424747 - ], - [ - -23.103970614346565, - 7.966877330433249 - ], - [ - -26.290671608664752, - 5.576809969815372 - ], - [ - -28.680752840909065, - 3.983445601029871 - ], - [ - -28.680752840909065, - 3.186756480823874 - ], - [ - -24.697321111505687, - 0.7966891202059969 - ], - [ - -17.52707741477269, - -0.7966891202059401 - ], - [ - -5.5767822265625, - -1.5933782404118801 - ], - [ - 19.1204833984375, - -2.390053488991498 - ], - [ - 37.44429154829544, - -3.186742609197381 - ], - [ - 58.95485617897731, - -4.780120849609375 - ], - [ - 81.26209605823863, - -5.576809969815315 - ], - [ - 94.80579723011368, - -5.576809969815315 - ], - [ - 100.38257945667618, - -5.576809969815315 - ], - [ - 99.58590420809657, - -5.576809969815315 - ], - [ - 95.60247247869319, - -5.576809969815315 - ], - [ - 88.43228426846593, - -5.576809969815315 - ], - [ - 76.48198908025569, - -5.576809969815315 - ], - [ - 66.12504438920456, - -4.780120849609375 - ], - [ - 54.17474920099431, - -3.983431729403378 - ], - [ - 40.63104802911931, - -3.983431729403378 - ], - [ - 27.087346857244313, - -3.983431729403378 - ], - [ - 7.966863458806813, - -3.983431729403378 - ], - [ - -2.390081232244313, - -3.983431729403378 - ], - [ - -7.170188210227252, - -3.983431729403378 - ], - [ - -8.763594193892061, - -3.983431729403378 - ], - [ - -7.966863458806813, - -3.983431729403378 - ], - [ - -3.983431729403378, - -2.390053488991498 - ], - [ - 0.796675248579561, - -2.390053488991498 - ], - [ - 6.373512961647748, - -1.5933782404118801 - ], - [ - 16.730402166193187, - -1.5933782404118801 - ], - [ - 23.90059037642044, - -0.7966891202059401 - ], - [ - 31.070778586647748, - -0.7966891202059401 - ], - [ - 37.44429154829544, - 0.7966891202059969 - ], - [ - 38.24102228338069, - 1.5933782404119938 - ], - [ - 38.24102228338069, - 2.390067360617877 - ], - [ - 38.24102228338069, - 3.186756480823874 - ], - [ - 37.44429154829544, - 3.186756480823874 - ], - [ - 37.44429154829544, - 3.186756480823874 - ] - ], - "pressures": [ - 0.0859375, - 0.208984375, - 0.35546875, - 0.6826171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5537109375, - 0.26171875, - 0.1953125, - 0.0322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 37.44429154829544, - 3.186756480823874 - ] - }, - { - "id": "fSYi0cj0UsXEEg8MW4zMr", - "type": "freedraw", - "x": 210.63728788301563, - "y": -265.82808675394324, - "width": 29.477428089488626, - "height": 5.576809969815372, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1991625517, - "version": 299, - "versionNonce": 929727139, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 29.477428089488626, - -2.390067360617877 - ], - [ - 27.08740234375, - 3.186742609197495 - ], - [ - 28.680752840909122, - 0.7966891202059969 - ], - [ - 28.680752840909122, - 0.7966891202059969 - ] - ], - "pressures": [ - 0.38671875, - 1, - 0.30859375, - 0.083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.680752840909122, - 0.7966891202059969 - ] - }, - { - "id": "ver0LeKaUPcRNMv4Hd6iu", - "type": "freedraw", - "x": 307.036491096794, - "y": -193.32952940309093, - "width": 72.49855735085225, - "height": 148.98054643110794, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1932339715, - "version": 331, - "versionNonce": 1403942371, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 1.593378240411937 - ], - [ - -0.7966752485795041, - -8.763566450639189 - ], - [ - 0, - -22.30726762251419 - ], - [ - 2.390025745738626, - -40.63107577237216 - ], - [ - 6.373512961647748, - -71.70186823064631 - ], - [ - 7.96686345880687, - -91.61905462091619 - ], - [ - 9.560213955965992, - -110.73955189098007 - ], - [ - 11.153564453125, - -122.68986095081675 - ], - [ - 11.950239701704618, - -128.26667092063207 - ], - [ - 12.747025923295496, - -129.06336004083806 - ], - [ - 12.747025923295496, - -127.46996792879969 - ], - [ - 13.543701171875, - -118.70642922141332 - ], - [ - 15.137051669034122, - -101.97598544034093 - ], - [ - 15.933726917613626, - -66.12507213245738 - ], - [ - 17.527077414772748, - -40.63107577237216 - ], - [ - 20.713889382102366, - -20.71388938210228 - ], - [ - 24.697265625, - -9.56024169921875 - ], - [ - 26.290616122159122, - -6.3735129616477195 - ], - [ - 26.290616122159122, - -5.5768099698153435 - ], - [ - 27.08740234375, - -15.137079412286937 - ], - [ - 27.08740234375, - -32.6641845703125 - ], - [ - 27.08740234375, - -54.971424449573846 - ], - [ - 31.070778586647748, - -88.43229814009231 - ], - [ - 34.257590553977366, - -107.55278153852981 - ], - [ - 36.64761629971599, - -118.70642922141332 - ], - [ - 38.240966796875, - -121.89317183061081 - ], - [ - 38.240966796875, - -122.68986095081675 - ], - [ - 39.03764204545462, - -119.50310446999288 - ], - [ - 43.021129261363626, - -107.55278153852981 - ], - [ - 48.597856001420496, - -84.44886641068894 - ], - [ - 58.954856178977366, - -39.83437278053978 - ], - [ - 64.5316938920455, - -15.137079412286937 - ], - [ - 68.51507013494324, - 3.1867287375710305 - ], - [ - 70.10842063210237, - 15.137051669034093 - ], - [ - 70.90520685369324, - 19.1204833984375 - ], - [ - 70.90520685369324, - 19.917186390269876 - ], - [ - 71.70188210227275, - 19.917186390269876 - ], - [ - 69.31174538352275, - 16.730429909446002 - ], - [ - 63.73501864346599, - 7.1701882102272805 - ], - [ - 61.34488192471599, - 3.1867287375710305 - ], - [ - 61.34488192471599, - 3.1867287375710305 - ] - ], - "pressures": [ - 0.029296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3935546875, - 0.126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.34488192471599, - 3.1867287375710305 - ] - }, - { - "id": "geG7dbPcYOOgfL1Ydh22U", - "type": "freedraw", - "x": 322.17354276582813, - "y": -198.90633937290627, - "width": 56.56471946022725, - "height": 148.98054643110794, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 62621069, - "version": 338, - "versionNonce": 1560710605, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.98345947265625 - ], - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -7.966863458806813 - ], - [ - -1.593350497159122, - -19.120511141690343 - ], - [ - -2.390025745738626, - -43.021129261363626 - ], - [ - -1.593350497159122, - -62.938315651633474 - ], - [ - 0.7966752485795041, - -85.24555553089485 - ], - [ - 2.390025745738626, - -105.95941716974434 - ], - [ - 3.983376242897748, - -121.89315795898435 - ], - [ - 4.780162464488626, - -137.03023737127128 - ], - [ - 4.780162464488626, - -141.81034434925422 - ], - [ - 4.780162464488626, - -143.4037364612926 - ], - [ - 4.780162464488626, - -140.21697998046872 - ], - [ - 5.576837713068244, - -121.89315795898435 - ], - [ - 7.170188210227252, - -101.97597156871447 - ], - [ - 8.763538707386374, - -77.2786782004616 - ], - [ - 11.153564453125, - -50.98799272017044 - ], - [ - 14.340376420454504, - -25.49399636008522 - ], - [ - 18.323752663352252, - -1.593378240411937 - ], - [ - 19.917214133522748, - 3.98345947265625 - ], - [ - 20.713889382102252, - 3.98345947265625 - ], - [ - 22.307239879261374, - -6.3735129616477195 - ], - [ - 23.900590376420496, - -19.120511141690343 - ], - [ - 24.697265625, - -35.85091330788353 - ], - [ - 24.697265625, - -54.971424449573846 - ], - [ - 25.493940873579504, - -72.49855735085222 - ], - [ - 25.493940873579504, - -92.41574374112216 - ], - [ - 26.290616122159122, - -102.77267456054685 - ], - [ - 26.290616122159122, - -110.7395518909801 - ], - [ - 27.08740234375, - -115.51967274058947 - ], - [ - 27.884077592329504, - -119.5031044699929 - ], - [ - 27.884077592329504, - -117.11305098100141 - ], - [ - 29.477428089488626, - -107.55279541015622 - ], - [ - 31.867453835227252, - -89.22898726029828 - ], - [ - 39.83431729403412, - -50.19131747159091 - ], - [ - 45.41115500710225, - -25.49399636008522 - ], - [ - 49.394642223011374, - -11.15364768288353 - ], - [ - 51.78466796875, - -6.3735129616477195 - ], - [ - 52.581343217329504, - -5.5768099698153435 - ], - [ - 53.37801846590912, - -5.5768099698153435 - ], - [ - 54.174693714488626, - -4.7801347212357825 - ], - [ - 54.174693714488626, - -3.1867564808238455 - ], - [ - 53.37801846590912, - 0 - ], - [ - 52.581343217329504, - 2.3900534889914695 - ], - [ - 51.78466796875, - 4.7801069779829675 - ], - [ - 51.78466796875, - 5.5768099698153435 - ], - [ - 51.78466796875, - 3.1867287375710305 - ], - [ - 50.987992720170496, - 2.3900534889914695 - ], - [ - 50.987992720170496, - 2.3900534889914695 - ] - ], - "pressures": [ - 0.048828125, - 0.1708984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.23046875, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 50.987992720170496, - 2.3900534889914695 - ] - }, - { - "id": "Ylx3YVLO_qs5c9bj5sW7E", - "type": "freedraw", - "x": 298.272896902902, - "y": -198.1096641243267, - "width": 82.85550204190338, - "height": 140.2169661088423, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 758920845, - "version": 336, - "versionNonce": 1187758467, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795325 - ], - [ - 1.593405983664752, - -3.9834317294034065 - ], - [ - 4.780106977982996, - -13.543673428622157 - ], - [ - 10.356944691051126, - -31.07080632990059 - ], - [ - 17.527132901278378, - -52.581370960582404 - ], - [ - 27.08734685724437, - -81.26210992986503 - ], - [ - 31.070834073153378, - -96.39916159889916 - ], - [ - 33.460859818892004, - -109.14615977894178 - ], - [ - 34.25753506747162, - -116.31634798916903 - ], - [ - 35.054210316051126, - -118.70640147816053 - ], - [ - 35.054210316051126, - -117.90972622958097 - ], - [ - 35.850996537642004, - -113.1296053799716 - ], - [ - 37.444347034801126, - -103.56934980912641 - ], - [ - 38.24102228338063, - -88.43229814009234 - ], - [ - 41.427723277698874, - -50.98799272017047 - ], - [ - 45.411210493607996, - -25.493996360085248 - ], - [ - 49.39458673650563, - -9.56024169921875 - ], - [ - 51.78472345525563, - -4.7801069779829675 - ], - [ - 53.37807395241475, - -3.9834317294034065 - ], - [ - 54.17474920099437, - -13.543673428622157 - ], - [ - 55.76809969815338, - -29.477428089488654 - ], - [ - 58.15823641690338, - -50.98799272017047 - ], - [ - 62.141612659801126, - -73.29523259943178 - ], - [ - 67.71845037286937, - -96.39916159889916 - ], - [ - 70.108476118608, - -103.56934980912641 - ], - [ - 71.701826615767, - -108.34947065873578 - ], - [ - 72.498612837358, - -111.53622713955966 - ], - [ - 73.2952880859375, - -113.1296053799716 - ], - [ - 74.091963334517, - -112.33291625976565 - ], - [ - 75.68531383167613, - -103.56934980912641 - ], - [ - 77.27866432883525, - -89.22898726029828 - ], - [ - 79.66880104758525, - -72.4985434792259 - ], - [ - 82.05882679332387, - -37.44429154829547 - ], - [ - 82.85550204190338, - -11.950322931463091 - ], - [ - 82.05882679332387, - 7.1702159534800955 - ], - [ - 82.05882679332387, - 18.32380814985794 - ], - [ - 82.05882679332387, - 20.71386163884941 - ], - [ - 82.05882679332387, - 21.510564630681785 - ], - [ - 82.05882679332387, - 19.917186390269876 - ], - [ - 81.26215154474437, - 11.950322931463063 - ], - [ - 81.26215154474437, - 7.1702159534800955 - ], - [ - 81.26215154474437, - 4.7801347212357825 - ], - [ - 81.26215154474437, - 3.186784224076689 - ], - [ - 81.26215154474437, - 2.3900534889914695 - ], - [ - 82.05882679332387, - 0 - ], - [ - 82.05882679332387, - -0.796675248579561 - ], - [ - 82.05882679332387, - -0.796675248579561 - ] - ], - "pressures": [ - 0.0830078125, - 0.142578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.880859375, - 0.20703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 82.05882679332387, - -0.796675248579561 - ] - }, - { - "id": "eFK_-8u-trXEKSN9hG_Sk", - "type": "freedraw", - "x": 309.42651684253264, - "y": -197.31298887574718, - "width": 98.78928444602263, - "height": 139.42031860351562, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1330193443, - "version": 344, - "versionNonce": 770526253, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - -0.7966752485795041, - -1.5933504971590935 - ], - [ - -0.7966752485795041, - -4.780106977982939 - ], - [ - -0.7966752485795041, - -10.356916947798283 - ], - [ - -1.5933504971590082, - -22.307239879261374 - ], - [ - -2.390025745738626, - -31.867481578480124 - ], - [ - -3.9833762428976343, - -42.22442626953125 - ], - [ - -5.57683771306813, - -53.37804620916194 - ], - [ - -6.373512961647634, - -66.12503051757812 - ], - [ - -5.57683771306813, - -86.83890602805394 - ], - [ - -3.9833762428976343, - -99.58589033647019 - ], - [ - 0, - -109.14614590731532 - ], - [ - 3.983487215909122, - -115.51964499733663 - ], - [ - 9.560213955965992, - -122.68983320756394 - ], - [ - 15.93372691761374, - -129.0633322975852 - ], - [ - 23.900590376420496, - -133.04677789861506 - ], - [ - 28.680752840909122, - -133.04677789861506 - ], - [ - 31.86756480823874, - -129.0633322975852 - ], - [ - 39.03764204545462, - -120.29977971857244 - ], - [ - 43.817804509943244, - -108.34947065873581 - ], - [ - 47.00461647727275, - -89.22897338867188 - ], - [ - 47.801291725852366, - -70.10847611860794 - ], - [ - 45.411155007102366, - -43.02110151811078 - ], - [ - 43.02112926136374, - -27.087346857244313 - ], - [ - 41.42777876420462, - -12.746998180042624 - ], - [ - 40.631103515625, - -3.1867287375710305 - ], - [ - 40.631103515625, - 0.796702991832376 - ], - [ - 40.631103515625, - 1.593378240411937 - ], - [ - 40.631103515625, - -0.7966752485795325 - ], - [ - 39.03764204545462, - -7.170160466974437 - ], - [ - 38.240966796875, - -19.1204833984375 - ], - [ - 37.444291548295496, - -45.41115500710228 - ], - [ - 38.240966796875, - -63.73496315696019 - ], - [ - 41.42777876420462, - -79.66871781782669 - ], - [ - 43.817804509943244, - -94.80578335848719 - ], - [ - 47.801291725852366, - -108.34947065873581 - ], - [ - 54.1748046875, - -124.28321144797582 - ], - [ - 57.361505681818244, - -129.0633322975852 - ], - [ - 60.548206676136374, - -130.65671053799718 - ], - [ - 65.328369140625, - -129.8600214177912 - ], - [ - 74.09190784801137, - -125.07990056818181 - ], - [ - 79.66874556107962, - -119.50307672674006 - ], - [ - 84.44890802556824, - -107.55276766690343 - ], - [ - 88.43228426846599, - -88.43228426846593 - ], - [ - 91.6190962357955, - -68.51509787819606 - ], - [ - 92.415771484375, - -41.42769553444603 - ], - [ - 89.22907049005687, - -25.493968616832376 - ], - [ - 83.65223277698874, - -11.153619939630687 - ], - [ - 78.0753950639205, - -0.7966752485795325 - ], - [ - 74.88858309659099, - 4.780134721235811 - ], - [ - 74.09190784801137, - 6.373540704900563 - ], - [ - 72.49855735085237, - 3.98345947265625 - ], - [ - 70.90520685369324, - 0 - ], - [ - 70.10853160511374, - -1.5933504971590935 - ], - [ - 70.10853160511374, - -1.5933504971590935 - ] - ], - "pressures": [ - 0.0634765625, - 0.734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5068359375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 70.10853160511374, - -1.5933504971590935 - ] - }, - { - "id": "ovthrhjGrwwon-TbcuXyw", - "type": "freedraw", - "x": 319.7835170200895, - "y": -197.31298887574718, - "width": 105.95936168323863, - "height": 152.96400590376425, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1491722157, - "version": 337, - "versionNonce": 1803458851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5934614701704959, - 2.3901089754971565 - ], - [ - -3.186811967329504, - 0.796702991832376 - ], - [ - -4.780162464488626, - -3.9834317294034065 - ], - [ - -8.763649680397748, - -15.933726917613626 - ], - [ - -10.35700017755687, - -27.087346857244313 - ], - [ - -11.153675426136374, - -39.037669788707376 - ], - [ - -11.950350674715878, - -52.58134321732953 - ], - [ - -11.950350674715878, - -66.12503051757812 - ], - [ - -8.763649680397748, - -89.22897338867188 - ], - [ - -3.983487215909122, - -103.56932206587356 - ], - [ - 0.7966752485795041, - -115.51964499733663 - ], - [ - 6.373401988636374, - -123.48650845614344 - ], - [ - 12.746914950284122, - -129.8600214177912 - ], - [ - 16.73040216619313, - -130.65671053799718 - ], - [ - 21.51056463068187, - -126.67327880859375 - ], - [ - 27.087291370738626, - -116.31633411754262 - ], - [ - 33.460804332386374, - -103.56932206587356 - ], - [ - 39.83431729403412, - -81.26209605823863 - ], - [ - 41.42766779119313, - -63.73496315696019 - ], - [ - 40.630992542613626, - -43.81777676669034 - ], - [ - 35.850830078125, - -24.697293368252843 - ], - [ - 27.087291370738626, - -6.373485218394876 - ], - [ - 24.697265625, - -2.3900534889914695 - ], - [ - 23.900590376420496, - -1.5933504971590935 - ], - [ - 22.307239879261374, - -6.373485218394876 - ], - [ - 21.51056463068187, - -14.340348677201689 - ], - [ - 22.307239879261374, - -35.85091330788353 - ], - [ - 27.087291370738626, - -56.56477494673294 - ], - [ - 34.25747958096588, - -78.87202869762069 - ], - [ - 43.02101828835225, - -99.58589033647019 - ], - [ - 54.174693714488626, - -116.31633411754262 - ], - [ - 59.75153142755687, - -121.096454967152 - ], - [ - 63.734907670454504, - -123.48650845614344 - ], - [ - 68.51507013494313, - -124.28321144797582 - ], - [ - 74.88869406960225, - -115.51964499733663 - ], - [ - 86.04214754971588, - -85.24552778764206 - ], - [ - 92.41566051136363, - -64.53166614879257 - ], - [ - 94.00901100852275, - -46.20785799893466 - ], - [ - 91.61898526278412, - -24.697293368252843 - ], - [ - 80.46542080965912, - 5.576837713068187 - ], - [ - 73.29523259943187, - 18.32383589311081 - ], - [ - 68.51507013494313, - 22.30729536576706 - ], - [ - 66.1250443892045, - 22.30729536576706 - ], - [ - 63.734907670454504, - 18.32383589311081 - ], - [ - 62.141557173295496, - 11.950322931463063 - ], - [ - 62.141557173295496, - 7.9668912020596565 - ], - [ - 62.141557173295496, - 7.1701882102272805 - ], - [ - 62.141557173295496, - 7.1701882102272805 - ] - ], - "pressures": [ - 0.05078125, - 0.435546875, - 0.6015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.876953125, - 0.224609375, - 0.123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.141557173295496, - 7.1701882102272805 - ] - }, - { - "id": "1QlBEraRXsdy59jtBejYv", - "type": "freedraw", - "x": 324.56356851156676, - "y": -198.1096641243267, - "width": 15.933726917613626, - "height": 122.68983320756391, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1303358637, - "version": 312, - "versionNonce": 70073997, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983376242897748, - -6.3734852183949045 - ], - [ - -7.966863458806756, - -15.933754660866498 - ], - [ - -9.560213955965878, - -25.493996360085248 - ], - [ - -11.153564453125, - -37.44429154829547 - ], - [ - -11.153564453125, - -50.19128972833806 - ], - [ - -9.560213955965878, - -69.3118008700284 - ], - [ - -7.170188210227252, - -82.85548817027703 - ], - [ - -3.983376242897748, - -94.80578335848722 - ], - [ - -1.593350497159122, - -104.3660389293324 - ], - [ - 0.7966752485796178, - -111.53622713955966 - ], - [ - 3.186811967329618, - -117.11303710937503 - ], - [ - 4.780162464488626, - -121.8931579589844 - ], - [ - 4.780162464488626, - -122.68983320756391 - ], - [ - 4.780162464488626, - -119.5031044699929 - ], - [ - 3.983487215909122, - -111.53622713955966 - ], - [ - 2.39013671875, - -101.97597156871453 - ], - [ - 1.593350497159122, - -90.02566250887784 - ], - [ - 0.7966752485796178, - -74.88861083984378 - ], - [ - 0.7966752485796178, - -69.3118008700284 - ], - [ - 0.7966752485796178, - -67.71842262961653 - ], - [ - 0.7966752485796178, - -66.92173350941053 - ], - [ - 0.7966752485796178, - -67.71842262961653 - ], - [ - 0.7966752485796178, - -67.71842262961653 - ] - ], - "pressures": [ - 0.052734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.7966752485796178, - -67.71842262961653 - ] - }, - { - "id": "NmicM5QFefOeURdvHghgB", - "type": "freedraw", - "x": 321.3768675172486, - "y": -217.2301475227642, - "width": 42.22445401278401, - "height": 59.75154529918325, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1374844973, - "version": 299, - "versionNonce": 1182786797, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 42.22445401278401, - -46.20787187056109 - ], - [ - 42.22445401278401, - -16.730457652698874 - ], - [ - 41.42766779119313, - -8.763566450639217 - ], - [ - 38.240966796875, - 4.780106977982939 - ], - [ - 35.054265802556756, - 11.95029518821022 - ], - [ - 35.054265802556756, - 13.543673428622157 - ], - [ - 34.25747958096588, - 13.543673428622157 - ], - [ - 33.460804332386374, - 13.543673428622157 - ], - [ - 32.664129083806756, - 13.543673428622157 - ], - [ - 31.867453835227252, - 11.95029518821022 - ], - [ - 31.070778586647748, - 9.56024169921875 - ], - [ - 31.867453835227252, - 7.170160466974409 - ], - [ - 31.867453835227252, - 7.170160466974409 - ] - ], - "pressures": [ - 0.095703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6025390625, - 0.162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.867453835227252, - 7.170160466974409 - ] - }, - { - "id": "NIbyiVhmwY7-eugpsfhDs", - "type": "freedraw", - "x": 326.95370523031676, - "y": -247.50427860408524, - "width": 43.81780450994313, - "height": 105.95940329811793, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1896683501, - "version": 327, - "versionNonce": 1301212259, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967862215908781, - 2.3900534889914695 - ], - [ - -2.39013671875, - 4.7801347212357825 - ], - [ - -3.186811967329504, - 3.9834317294034065 - ], - [ - -3.186811967329504, - -0.7966752485795325 - ], - [ - -3.186811967329504, - -7.966863458806813 - ], - [ - -2.39013671875, - -15.933740789240062 - ], - [ - -0.7967862215908781, - -24.69730723987925 - ], - [ - 3.983376242897748, - -37.444305419921875 - ], - [ - 7.96686345880687, - -45.41116887872869 - ], - [ - 11.153564453125, - -50.987992720170496 - ], - [ - 14.340376420454618, - -54.17473532936788 - ], - [ - 16.730402166193244, - -55.76811356977987 - ], - [ - 20.713778409090878, - -55.76811356977987 - ], - [ - 26.290616122159122, - -53.3780323375355 - ], - [ - 32.66412908380687, - -47.004547119140625 - ], - [ - 37.444291548295496, - -38.24099454012787 - ], - [ - 40.630992542613626, - -22.307239879261374 - ], - [ - 40.630992542613626, - -9.56024169921875 - ], - [ - 40.630992542613626, - 7.1701882102272805 - ], - [ - 37.444291548295496, - 24.697321111505687 - ], - [ - 31.070778586647748, - 43.021129261363626 - ], - [ - 28.680641867897748, - 48.59793923117897 - ], - [ - 27.883966619318244, - 49.39461447975853 - ], - [ - 27.883966619318244, - 50.19128972833806 - ], - [ - 27.883966619318244, - 49.39461447975853 - ], - [ - 27.883966619318244, - 46.20785799893466 - ], - [ - 27.883966619318244, - 43.021129261363626 - ], - [ - 28.680641867897748, - 38.24099454012784 - ], - [ - 28.680641867897748, - 32.66421231356534 - ], - [ - 28.680641867897748, - 26.29067160866478 - ], - [ - 28.680641867897748, - 11.950322931463063 - ], - [ - 29.477428089488626, - 2.3900534889914695 - ], - [ - 31.070778586647748, - -5.5768099698153435 - ], - [ - 32.66412908380687, - -12.746998180042624 - ], - [ - 33.460804332386374, - -15.933740789240062 - ], - [ - 33.460804332386374, - -17.527119029652 - ], - [ - 31.070778586647748, - -18.323808149857996 - ], - [ - 27.883966619318244, - -18.323808149857996 - ], - [ - 24.697265625, - -18.323808149857996 - ], - [ - 23.900590376420496, - -17.527119029652 - ], - [ - 23.900590376420496, - -17.527119029652 - ] - ], - "pressures": [ - 0.01953125, - 0.05078125, - 0.1689453125, - 0.828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4375, - 0.1513671875, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.900590376420496, - -17.527119029652 - ] - }, - { - "id": "LJHinqEfiLMvl6Nnwoo9E", - "type": "freedraw", - "x": 326.95370523031676, - "y": -303.2723921738651, - "width": 86.04214754971588, - "height": 117.90972622958097, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 749937901, - "version": 326, - "versionNonce": 1215217485, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403378 - ], - [ - 1.593350497159122, - 0 - ], - [ - 6.373401988636374, - 14.340376420454618 - ], - [ - 11.153564453125, - 30.274117209694623 - ], - [ - 15.933726917613626, - 48.59792535955259 - ], - [ - 22.307239879261374, - 66.92173350941056 - ], - [ - 31.070778586647748, - 89.2289733886719 - ], - [ - 35.850830078125, - 99.58591807972306 - ], - [ - 40.630992542613626, - 105.95940329811793 - ], - [ - 42.22434303977275, - 108.34951227361509 - ], - [ - 43.817804509943244, - 109.14615977894181 - ], - [ - 43.817804509943244, - 108.34951227361509 - ], - [ - 43.817804509943244, - 102.7726745605469 - ], - [ - 42.22434303977275, - 92.41575761274862 - ], - [ - 40.630992542613626, - 79.66873168945315 - ], - [ - 39.83431729403412, - 66.92173350941056 - ], - [ - 42.22434303977275, - 48.59792535955259 - ], - [ - 47.004505504261374, - 37.444305419921875 - ], - [ - 52.58134321732962, - 24.697307239879308 - ], - [ - 57.36139470880687, - 15.933740789240119 - ], - [ - 58.95485617897725, - 10.356944691051183 - ], - [ - 58.95485617897725, - 9.560255570845243 - ], - [ - 59.75153142755687, - 7.966877330433249 - ], - [ - 60.548206676136374, - 6.373512961647748 - ], - [ - 61.34488192471588, - 5.576809969815372 - ], - [ - 61.34488192471588, - 6.373512961647748 - ], - [ - 62.141557173295496, - 10.356944691051183 - ], - [ - 64.53158291903412, - 17.527119029652 - ], - [ - 66.92171963778412, - 29.477428089488683 - ], - [ - 71.70188210227275, - 58.15816705877134 - ], - [ - 75.68536931818187, - 78.87205644087362 - ], - [ - 79.66874556107962, - 94.80578335848725 - ], - [ - 82.85544655539775, - 106.75610628995031 - ], - [ - 85.24547230113637, - 112.3329440030185 - ], - [ - 86.04214754971588, - 113.92629450017759 - ], - [ - 86.04214754971588, - 113.12959150834521 - ], - [ - 84.44879705255687, - 109.14615977894181 - ], - [ - 79.66874556107962, - 102.7726745605469 - ], - [ - 78.07528409090912, - 101.97597156871453 - ], - [ - 78.07528409090912, - 101.97597156871453 - ] - ], - "pressures": [ - 0.107421875, - 0.2822265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.263671875, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.07528409090912, - 101.97597156871453 - ] - }, - { - "id": "y0xMJKwBb_UxrzFs5gKRT", - "type": "freedraw", - "x": 400.2489378297486, - "y": -304.8657565426506, - "width": 144.20043945312494, - "height": 180.0513250177557, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 944901165, - "version": 345, - "versionNonce": 492245005, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -5.576823841441751 - ], - [ - 0, - -10.356944691051126 - ], - [ - 0, - -12.747012051669003 - ], - [ - 0.7966752485795041, - -12.747012051669003 - ], - [ - 0.7966752485795041, - -10.356944691051126 - ], - [ - 0.7966752485795041, - 1.593364368785501 - ], - [ - 0, - 39.83435890891337 - ], - [ - 0, - 70.90515136718753 - ], - [ - 0, - 98.78922895951706 - ], - [ - 0, - 122.68984707919037 - ], - [ - 0, - 145.79378995028412 - ], - [ - 0, - 152.167275168679 - ], - [ - 0.7966752485795041, - 152.96395041725856 - ], - [ - 0.7966752485795041, - 152.167275168679 - ], - [ - 0.7966752485795041, - 145.79378995028412 - ], - [ - 0.7966752485795041, - 135.436845259233 - ], - [ - -0.7967862215909918, - 116.31633411754265 - ], - [ - -1.593350497159122, - 99.58590420809662 - ], - [ - -2.39013671875, - 78.87204256924718 - ], - [ - -2.39013671875, - 45.41115500710231 - ], - [ - -2.39013671875, - 27.884049849076746 - ], - [ - -2.39013671875, - 13.543673428622185 - ], - [ - -2.39013671875, - -2.390067360617877 - ], - [ - -0.7967862215909918, - -15.933740789240005 - ], - [ - 0, - -26.29068548029113 - ], - [ - 0.7966752485795041, - -27.087374600497128 - ], - [ - 0.7966752485795041, - -25.494010231711627 - ], - [ - 0, - -19.917186390269876 - ], - [ - 0, - -14.340376420454504 - ], - [ - -0.7967862215909918, - -7.966877330433192 - ], - [ - -0.7967862215909918, - -1.5933782404118801 - ], - [ - 2.39013671875, - 3.983445601029871 - ], - [ - 10.357000177556756, - 8.76355257901281 - ], - [ - 18.323863636363626, - 10.356930819424747 - ], - [ - 29.477428089488626, - 11.153619939630744 - ], - [ - 44.61447975852275, - 11.153619939630744 - ], - [ - 66.1250443892045, - 9.56024169921875 - ], - [ - 77.2786088423295, - 8.76355257901281 - ], - [ - 82.85544655539775, - 7.966877330433249 - ], - [ - 84.44879705255676, - 7.966877330433249 - ], - [ - 82.0588822798295, - 7.966877330433249 - ], - [ - 72.49844637784088, - 7.966877330433249 - ], - [ - 56.56471946022725, - 10.356930819424747 - ], - [ - 36.64761629971588, - 15.933740789240119 - ], - [ - 4.780051491477252, - 24.697293368252872 - ], - [ - -12.747025923295496, - 29.477428089488626 - ], - [ - -22.307239879261374, - 31.070792458274184 - ], - [ - -24.697376598011374, - 31.867481578480124 - ], - [ - -15.933837890625, - 31.867481578480124 - ], - [ - -7.966974431818244, - 31.070792458274184 - ], - [ - 7.170188210227252, - 31.070792458274184 - ], - [ - 31.070778586647748, - 34.257548939098 - ], - [ - 73.29523259943176, - 41.42773714932531 - ], - [ - 98.78917347301137, - 46.207857998934685 - ], - [ - 113.92633611505681, - 50.987992720170496 - ], - [ - 118.70638760653407, - 52.58134321732959 - ], - [ - 119.50306285511357, - 52.58134321732959 - ], - [ - 117.90982333096582, - 53.378046209161965 - ], - [ - 107.55271218039763, - 50.987992720170496 - ], - [ - 101.17919921875, - 49.39461447975856 - ], - [ - 99.58584872159088, - 48.597911487926126 - ], - [ - 99.58584872159088, - 48.597911487926126 - ] - ], - "pressures": [ - 0.154296875, - 0.208984375, - 0.3759765625, - 0.798828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.259765625, - 0.08203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 99.58584872159088, - 48.597911487926126 - ] - }, - { - "id": "xP0i6OanAV_ujiULOkHLZ", - "type": "freedraw", - "x": 408.2158012885554, - "y": -320.7994973318906, - "width": 4.780051491477252, - "height": 144.99707308682525, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1334915907, - "version": 295, - "versionNonce": 1399554883, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186700994318244, - 50.191289728338006 - ], - [ - 3.983376242897748, - 93.21240511807525 - ], - [ - 3.983376242897748, - 114.72296974875707 - ], - [ - 3.983376242897748, - 124.28321144797582 - ], - [ - 3.983376242897748, - 142.60701959783378 - ], - [ - 3.983376242897748, - 144.99707308682525 - ], - [ - 4.780051491477252, - 142.60701959783378 - ], - [ - 4.780051491477252, - 137.82691261985082 - ], - [ - 4.780051491477252, - 131.4533996582031 - ], - [ - 4.780051491477252, - 127.46996792879969 - ], - [ - 4.780051491477252, - 126.67326493696731 - ], - [ - 4.780051491477252, - 126.67326493696731 - ] - ], - "pressures": [ - 0.068359375, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6787109375, - 0.2138671875, - 0.154296875, - 0.0810546875, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.780051491477252, - 126.67326493696731 - ] - }, - { - "id": "2F-CZdr7inGLIusRBkv7H", - "type": "freedraw", - "x": 403.43563882406676, - "y": -312.03595862450425, - "width": 108.34938742897725, - "height": 21.510564630681813, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1185615011, - "version": 299, - "versionNonce": 225674861, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -2.390053488991498 - ], - [ - -2.390025745738626, - -5.576809969815372 - ], - [ - -1.593350497159122, - -5.576809969815372 - ], - [ - 4.780162464488626, - -4.780106977982996 - ], - [ - 21.51056463068187, - -3.186742609197495 - ], - [ - 35.054376775568244, - 0 - ], - [ - 48.59796697443187, - 3.186770352450253 - ], - [ - 62.938343394886374, - 7.170202081853631 - ], - [ - 83.65212180397725, - 10.356944691051126 - ], - [ - 91.6190962357955, - 10.356944691051126 - ], - [ - 97.99249822443187, - 9.56025557084513 - ], - [ - 101.97598544034088, - 7.966877330433249 - ], - [ - 105.16268643465912, - 7.966877330433249 - ], - [ - 105.95936168323863, - 10.356944691051126 - ], - [ - 104.3660111860795, - 14.340376420454504 - ], - [ - 101.97598544034088, - 15.933754660866441 - ], - [ - 101.97598544034088, - 15.933754660866441 - ] - ], - "pressures": [ - 0.0859375, - 0.1318359375, - 0.3193359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.599609375, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 101.97598544034088, - 15.933754660866441 - ] - }, - { - "id": "V3fn4RP7b1oXIQoaR5T_o", - "type": "freedraw", - "x": 413.79252802861225, - "y": -235.55395567262218, - "width": 55.76815518465912, - "height": 31.070806329900563, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 151602307, - "version": 290, - "versionNonce": 1218432643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 31.867564808238626, - 29.477428089488626 - ], - [ - 47.00461647727275, - 29.477428089488626 - ], - [ - 55.76815518465912, - 31.070806329900563 - ], - [ - 55.76815518465912, - 30.274103338068187 - ], - [ - 54.1748046875, - 28.680752840909093 - ], - [ - 53.37812943892038, - 28.680752840909093 - ], - [ - 51.784778941761374, - 28.680752840909093 - ], - [ - 51.784778941761374, - 29.477428089488626 - ], - [ - 51.784778941761374, - 29.477428089488626 - ] - ], - "pressures": [ - 0.0048828125, - 1, - 1, - 1, - 1, - 0.3330078125, - 0.259765625, - 0.07421875, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 51.784778941761374, - 29.477428089488626 - ] - }, - { - "id": "HQmpYI0A0LCgYxpoamg7C", - "type": "freedraw", - "x": 175.5830775669645, - "y": -78.60657352596024, - "width": 8.763594193892061, - "height": 106.75609241832387, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 647814915, - "version": 310, - "versionNonce": 1540807555, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - 1.593378240411937 - ], - [ - -2.390081232244313, - 11.950322931463063 - ], - [ - -1.593350497159065, - 27.087374600497128 - ], - [ - 0, - 45.411182750355124 - ], - [ - 0.796675248579561, - 64.53166614879262 - ], - [ - 1.593350497159122, - 86.83890602805394 - ], - [ - 2.390081232244313, - 94.80582497336644 - ], - [ - 2.390081232244313, - 97.19585071910512 - ], - [ - 2.390081232244313, - 90.82239324396306 - ], - [ - 2.390081232244313, - 77.27869207208806 - ], - [ - 3.186756480823874, - 58.15820867365056 - ], - [ - 5.5767822265625, - 26.290699351917624 - ], - [ - 6.373512961647748, - 11.950322931463063 - ], - [ - 6.373512961647748, - 2.390081232244313 - ], - [ - 4.780106977982939, - -3.983431729403435 - ], - [ - 3.186756480823874, - -8.763538707386374 - ], - [ - 2.390081232244313, - -9.56024169921875 - ], - [ - 2.390081232244313, - -5.576809969815372 - ], - [ - 1.593350497159122, - 7.966891202059628 - ], - [ - 0.796675248579561, - 25.493996360085248 - ], - [ - 0, - 43.81780450994319 - ], - [ - 0, - 72.49852960759944 - ], - [ - -0.796675248579561, - 86.83890602805394 - ], - [ - -0.796675248579561, - 94.00909423828125 - ], - [ - -0.796675248579561, - 96.39917547052556 - ], - [ - -0.796675248579561, - 94.80582497336644 - ], - [ - -0.796675248579561, - 90.02566250887782 - ], - [ - 0, - 82.85547429865056 - ], - [ - 0.796675248579561, - 78.07536732066762 - ], - [ - 0.796675248579561, - 76.4820168235085 - ], - [ - 0.796675248579561, - 76.4820168235085 - ] - ], - "pressures": [ - 0.107421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5888671875, - 0.1728515625, - 0.083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.796675248579561, - 76.4820168235085 - ] - }, - { - "id": "JbolX5tNdphx5d5O_9Bij", - "type": "freedraw", - "x": 170.80291510247588, - "y": -69.84300707532105, - "width": 43.81780450994313, - "height": 109.94284889914769, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2081642157, - "version": 334, - "versionNonce": 372822573, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -6.373485218394876 - ], - [ - -3.186700994318187, - -11.153619939630687 - ], - [ - -3.983431729403435, - -11.153619939630687 - ], - [ - -4.780051491477252, - -11.153619939630687 - ], - [ - -4.780051491477252, - -5.576809969815315 - ], - [ - -4.780051491477252, - 9.56024169921875 - ], - [ - -3.186700994318187, - 32.6641845703125 - ], - [ - 0.7967307350852479, - 68.51512562144887 - ], - [ - 3.186811967329561, - 86.04225852272725 - ], - [ - 3.983487215909065, - 94.80585271661931 - ], - [ - 4.780162464488626, - 97.9925537109375 - ], - [ - 3.983487215909065, - 92.41571599786931 - ], - [ - 1.593405983664752, - 82.05882679332387 - ], - [ - -0.796619762073874, - 69.31180087002843 - ], - [ - -1.593350497159122, - 58.15818093039775 - ], - [ - -1.593350497159122, - 43.81780450994319 - ], - [ - -2.390025745738626, - 33.46085981889206 - ], - [ - -2.390025745738626, - 23.10394287109375 - ], - [ - -3.186700994318187, - 12.746998180042624 - ], - [ - -3.186700994318187, - 3.983431729403435 - ], - [ - -3.983431729403435, - -3.186756480823874 - ], - [ - -3.983431729403435, - -5.576809969815315 - ], - [ - -4.780051491477252, - -7.966863458806813 - ], - [ - -5.5767822265625, - -11.153619939630687 - ], - [ - -6.373457475142061, - -11.950295188210191 - ], - [ - -7.170188210227252, - -11.950295188210191 - ], - [ - -7.170188210227252, - -6.373485218394876 - ], - [ - -7.170188210227252, - 11.153619939630687 - ], - [ - -6.373457475142061, - 47.00456099076706 - ], - [ - -5.5767822265625, - 63.73496315696025 - ], - [ - -3.983431729403435, - 74.09190784801137 - ], - [ - -2.390025745738626, - 78.8720703125 - ], - [ - -1.593350497159122, - 80.46542080965912 - ], - [ - -1.593350497159122, - 78.07533957741475 - ], - [ - -1.593350497159122, - 72.49855735085225 - ], - [ - -1.593350497159122, - 63.73496315696025 - ], - [ - -0.796619762073874, - 57.36150568181819 - ], - [ - 0.7967307350852479, - 51.78466796875 - ], - [ - 3.186811967329561, - 44.61447975852275 - ], - [ - 8.763594193892061, - 35.850941051136374 - ], - [ - 13.543701171875, - 35.054238059304 - ], - [ - 19.917214133522748, - 36.647616299715935 - ], - [ - 24.697321111505687, - 39.037669788707376 - ], - [ - 29.477428089488626, - 41.427723277698874 - ], - [ - 35.850941051136374, - 50.98799272017044 - ], - [ - 36.64761629971588, - 59.75153142755681 - ], - [ - 36.64761629971588, - 67.71845037286931 - ], - [ - 34.25759055397725, - 73.29523259943181 - ], - [ - 31.070834073153378, - 78.8720703125 - ], - [ - 28.680752840909065, - 81.26209605823863 - ], - [ - 27.88407759232956, - 82.85550204190343 - ], - [ - 28.680752840909065, - 82.85550204190343 - ], - [ - 31.070834073153378, - 78.8720703125 - ], - [ - 31.86750932173294, - 77.27866432883525 - ], - [ - 31.86750932173294, - 77.27866432883525 - ] - ], - "pressures": [ - 0.1259765625, - 0.2138671875, - 0.4375, - 0.529296875, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.19921875, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.86750932173294, - 77.27866432883525 - ] - }, - { - "id": "zIWM69x1fGoRAPlEZaM-n", - "type": "freedraw", - "x": 211.43401861810088, - "y": -13.278176642082428, - "width": 56.56483043323868, - "height": 51.78466796875, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 649778211, - "version": 303, - "versionNonce": 605451043, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.796675248579561 - ], - [ - 1.593350497159065, - 0.796675248579561 - ], - [ - 11.15361993963063, - -0.7967307350851911 - ], - [ - 17.527077414772748, - -2.390081232244313 - ], - [ - 23.900590376420496, - -3.983487215909065 - ], - [ - 30.27410333806813, - -6.373512961647691 - ], - [ - 35.054210316051126, - -13.543701171875 - ], - [ - 35.054210316051126, - -19.91721413352269 - ], - [ - 29.477428089488626, - -25.494024103338063 - ], - [ - 21.510509144176126, - -29.47745583274144 - ], - [ - 11.950295188210248, - -31.070834073153378 - ], - [ - 0.796675248579561, - -27.08740234375 - ], - [ - -6.373512961647748, - -18.323835893110754 - ], - [ - -11.153675426136374, - -7.170188210227252 - ], - [ - -11.950350674715935, - 1.593350497159122 - ], - [ - -7.9669189453125, - 10.356889204545496 - ], - [ - 0.796675248579561, - 15.137051669034122 - ], - [ - 10.356889204545496, - 19.1204833984375 - ], - [ - 20.713833895596622, - 20.713833895596622 - ], - [ - 30.27410333806813, - 20.713833895596622 - ], - [ - 41.427723277698874, - 17.527077414772748 - ], - [ - 44.61447975852275, - 16.730402166193187 - ], - [ - 44.61447975852275, - 14.340320933948874 - ], - [ - 42.22439852627838, - 12.746970436789809 - ], - [ - 42.22439852627838, - 12.746970436789809 - ] - ], - "pressures": [ - 0.1220703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5205078125, - 0.0732421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.22439852627838, - 12.746970436789809 - ] - }, - { - "id": "ak03_ayDsEuG1uKvWNSvA", - "type": "freedraw", - "x": 241.708121956169, - "y": 10.622413734338068, - "width": 18.323808149857996, - "height": 126.67330655184657, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1778282189, - "version": 314, - "versionNonce": 1539446467, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 5.57683771306813 - ], - [ - -0.7966752485795041, - -4.780106977982996 - ], - [ - -2.390081232244256, - -19.1204833984375 - ], - [ - -3.186756480823874, - -50.19128972833812 - ], - [ - -3.186756480823874, - -66.12504438920456 - ], - [ - -3.186756480823874, - -74.88861083984375 - ], - [ - -3.983431729403378, - -78.07536732066762 - ], - [ - -3.983431729403378, - -78.87204256924718 - ], - [ - -4.780106977982882, - -79.66871781782675 - ], - [ - -3.186756480823874, - -79.66871781782675 - ], - [ - 0.7966752485796178, - -81.26209605823868 - ], - [ - 5.5767822265625, - -82.85547429865056 - ], - [ - 9.560213955965992, - -84.4488525390625 - ], - [ - 10.356944691051126, - -84.4488525390625 - ], - [ - 8.763538707386374, - -81.26209605823868 - ], - [ - 4.780106977982996, - -71.70185435901993 - ], - [ - -0.7966752485795041, - -59.751559170809685 - ], - [ - -3.983431729403378, - -43.81780450994319 - ], - [ - -7.170188210227252, - -11.153619939630687 - ], - [ - -7.170188210227252, - 10.357000177556813 - ], - [ - -5.57683771306813, - 24.69732111150563 - ], - [ - -3.983431729403378, - 30.274158824573817 - ], - [ - -3.186756480823874, - 31.070834073153378 - ], - [ - -3.186756480823874, - 27.884077592329504 - ], - [ - -2.390081232244256, - 17.527132901278378 - ], - [ - -2.390081232244256, - 0.7966752485795041 - ], - [ - -0.7966752485795041, - -22.307239879261374 - ], - [ - 3.9834317294034918, - -57.36147793856537 - ], - [ - 7.170188210227366, - -74.09190784801137 - ], - [ - 10.356944691051126, - -85.24552778764206 - ], - [ - 11.153619939630744, - -92.41571599786931 - ], - [ - 11.153619939630744, - -95.60247247869319 - ], - [ - 11.153619939630744, - -94.80579723011368 - ], - [ - 11.153619939630744, - -90.02566250887787 - ], - [ - 10.356944691051126, - -84.4488525390625 - ], - [ - 10.356944691051126, - -82.85547429865056 - ], - [ - 10.356944691051126, - -82.85547429865056 - ] - ], - "pressures": [ - 0.01171875, - 0.2099609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.662109375, - 0.2041015625, - 0.00390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - -82.85547429865056 - ] - }, - { - "id": "xdFshuA94V0cERJ-WX2Jz", - "type": "freedraw", - "x": 256.0484983766236, - "y": -72.2330605643125, - "width": 111.53619939630676, - "height": 14.340376420454504, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 848357901, - "version": 322, - "versionNonce": 1366836835, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.9834317294034918, - 0 - ], - [ - 0, - 0 - ], - [ - 8.763538707386374, - 0 - ], - [ - 19.917158647017004, - 0.7966752485795041 - ], - [ - 31.867453835227252, - 2.390053488991441 - ], - [ - 45.41115500710225, - 3.186756480823817 - ], - [ - 65.328369140625, - 4.780106977982939 - ], - [ - 71.70188210227275, - 4.780106977982939 - ], - [ - 73.29523259943176, - 5.576809969815315 - ], - [ - 74.09190784801137, - 5.576809969815315 - ], - [ - 73.29523259943176, - 5.576809969815315 - ], - [ - 66.92171963778401, - 7.170188210227252 - ], - [ - 53.37801846590901, - 9.56024169921875 - ], - [ - 37.44429154829538, - 11.15361993963063 - ], - [ - 13.543645685369256, - 11.950295188210191 - ], - [ - -1.593405983664752, - 10.356944691051126 - ], - [ - -13.543701171875, - 7.966863458806813 - ], - [ - -19.1204833984375, - 7.170188210227252 - ], - [ - -19.917214133522748, - 7.170188210227252 - ], - [ - -19.917214133522748, - 6.373485218394876 - ], - [ - -16.730457652698874, - 6.373485218394876 - ], - [ - -7.96686345880687, - 6.373485218394876 - ], - [ - 4.780106977982882, - 6.373485218394876 - ], - [ - 20.71383389559651, - 7.966863458806813 - ], - [ - 47.80118075284088, - 11.950295188210191 - ], - [ - 65.328369140625, - 13.543673428622128 - ], - [ - 77.2786088423295, - 14.340376420454504 - ], - [ - 81.26209605823863, - 14.340376420454504 - ], - [ - 74.88858309659088, - 12.746998180042567 - ], - [ - 60.548206676136374, - 7.966863458806813 - ], - [ - 42.22439852627838, - 3.983431729403378 - ], - [ - 24.697265625, - 1.5933782404118801 - ], - [ - 3.983431729403378, - 0.7966752485795041 - ], - [ - -3.9834317294034918, - 1.5933782404118801 - ], - [ - -6.373512961647748, - 1.5933782404118801 - ], - [ - -4.780162464488626, - 3.186756480823817 - ], - [ - 3.186756480823874, - 5.576809969815315 - ], - [ - 14.340376420454504, - 6.373485218394876 - ], - [ - 29.477428089488626, - 6.373485218394876 - ], - [ - 47.80118075284088, - 6.373485218394876 - ], - [ - 68.51507013494313, - 5.576809969815315 - ], - [ - 88.43228426846588, - 5.576809969815315 - ], - [ - 91.61898526278401, - 6.373485218394876 - ], - [ - 91.61898526278401, - 7.170188210227252 - ], - [ - 87.63560901988637, - 8.763566450639189 - ], - [ - 78.07539506392038, - 10.356944691051126 - ], - [ - 78.07539506392038, - 10.356944691051126 - ] - ], - "pressures": [ - 0.1298828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.07539506392038, - 10.356944691051126 - ] - }, - { - "id": "GMbqa8qiEpArz9BmzjeNA", - "type": "freedraw", - "x": 253.65841714437926, - "y": -84.98005874435512, - "width": 124.28322531960225, - "height": 31.070806329900563, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 611543331, - "version": 298, - "versionNonce": 1440744781, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558549, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 86.04220303622162, - 16.730429909446002 - ], - [ - 69.31180087002838, - 14.340376420454504 - ], - [ - 50.988048206676126, - 13.543673428622128 - ], - [ - 31.867509321732996, - 13.543673428622128 - ], - [ - 22.307239879261374, - 13.543673428622128 - ], - [ - 6.373512961647748, - 13.543673428622128 - ], - [ - -8.763538707386374, - 13.543673428622128 - ], - [ - -11.950295188210248, - 13.543673428622128 - ], - [ - -12.746970436789752, - 13.543673428622128 - ], - [ - -8.763538707386374, - 12.746998180042624 - ], - [ - 0, - 11.950295188210191 - ], - [ - 11.950295188210248, - 11.153619939630687 - ], - [ - 29.477428089488626, - 12.746998180042624 - ], - [ - 65.32831365411937, - 20.713861638849437 - ], - [ - 86.04220303622162, - 24.697293368252815 - ], - [ - 100.38257945667613, - 27.087374600497128 - ], - [ - 107.55276766690338, - 28.680752840909065 - ], - [ - 110.739579634233, - 30.274103338068187 - ], - [ - 111.5362548828125, - 30.274103338068187 - ], - [ - 110.739579634233, - 30.274103338068187 - ], - [ - 107.55276766690338, - 31.070806329900563 - ], - [ - 105.95941716974437, - 31.070806329900563 - ], - [ - 105.95941716974437, - 31.070806329900563 - ] - ], - "pressures": [ - 0.0654296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3623046875, - 0.130859375, - 0.05078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 105.95941716974437, - 31.070806329900563 - ] - }, - { - "id": "dvEOeUNsYBmQqbBAf7IP8", - "type": "freedraw", - "x": -235.5075651887173, - "y": 105.42809999144038, - "width": 47.801236239346565, - "height": 97.19587846235794, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 135062435, - "version": 289, - "versionNonce": 820437027, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664752, - 0.7967307350852479 - ], - [ - 0, - -7.170132723721565 - ], - [ - 3.983487215909122, - -23.103915127840878 - ], - [ - 10.356889204545439, - -43.8177490234375 - ], - [ - 19.917214133522748, - -75.68525834517044 - ], - [ - 24.697265625, - -88.43228426846588 - ], - [ - 27.087346857244313, - -94.80574174360794 - ], - [ - 27.88407759232956, - -96.39914772727269 - ], - [ - 29.477428089488626, - -90.025634765625 - ], - [ - 32.66412908380681, - -73.29523259943181 - ], - [ - 35.850941051136374, - -50.19126198508519 - ], - [ - 39.83437278053981, - -29.47737260298294 - ], - [ - 44.61447975852275, - -11.153619939630687 - ], - [ - 46.20783025568181, - -5.576726740056813 - ], - [ - 46.20783025568181, - -4.780106977982939 - ], - [ - 46.20783025568181, - -6.373457475142061 - ], - [ - 43.81780450994319, - -11.950295188210191 - ], - [ - 42.224398526278435, - -16.730402166193187 - ], - [ - 41.427723277698874, - -18.32380814985794 - ], - [ - 41.427723277698874, - -18.32380814985794 - ] - ], - "pressures": [ - 0.025390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.375, - 0.126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.427723277698874, - -18.32380814985794 - ] - }, - { - "id": "L4lpKXbOL6fBVwSTbdMxg", - "type": "freedraw", - "x": -241.881078150365, - "y": 74.35732140479269, - "width": 7.966863458806813, - "height": 14.340376420454504, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1030023715, - "version": 288, - "versionNonce": 1569777549, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780106977982996, - 3.186756480823817 - ], - [ - -5.5767822265625, - 4.780106977982939 - ], - [ - -6.373512961647748, - 7.966863458806813 - ], - [ - -6.373512961647748, - 10.356944691051126 - ], - [ - -5.5767822265625, - 12.746970436789752 - ], - [ - -3.186756480823874, - 14.340376420454504 - ], - [ - -0.796675248579561, - 13.54375665838063 - ], - [ - 0.7966752485795041, - 11.15361993963063 - ], - [ - 0.7966752485795041, - 7.170188210227252 - ], - [ - 0.7966752485795041, - 3.983431729403378 - ], - [ - -0.796675248579561, - 1.593405983664752 - ], - [ - -2.39008123224437, - 0 - ], - [ - -3.186756480823874, - 0 - ], - [ - -3.186756480823874, - 1.593405983664752 - ], - [ - -3.186756480823874, - 5.57683771306813 - ], - [ - -3.186756480823874, - 6.373512961647691 - ], - [ - -0.796675248579561, - 6.373512961647691 - ], - [ - 1.593350497159065, - 7.170188210227252 - ], - [ - 1.593350497159065, - 7.170188210227252 - ] - ], - "pressures": [ - 0, - 0.6337890625, - 0.8740234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5537109375, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593350497159065, - 7.170188210227252 - ] - }, - { - "id": "kMoO8gi-eEDtOSZqsLTRP", - "type": "freedraw", - "x": -227.5406462434048, - "y": 83.120860112179, - "width": 13.543701171875, - "height": 17.527132901278378, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 341926221, - "version": 289, - "versionNonce": 771548099, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593461470170439, - -0.7966752485795041 - ], - [ - 0, - 1.593405983664809 - ], - [ - 1.593295010653435, - 2.390081232244313 - ], - [ - 4.780051491477309, - 3.983431729403435 - ], - [ - 7.170132723721622, - 3.983431729403435 - ], - [ - 9.560158469460248, - 3.983431729403435 - ], - [ - 10.356889204545439, - 2.390081232244313 - ], - [ - 10.356889204545439, - -0.7966752485795041 - ], - [ - 9.560158469460248, - -3.983431729403378 - ], - [ - 7.966863458806813, - -6.373457475142004 - ], - [ - 3.983431729403435, - -9.560213955965878 - ], - [ - 1.593295010653435, - -8.763538707386317 - ], - [ - -0.7967307350851911, - -4.780106977982939 - ], - [ - -2.39013671875, - 0 - ], - [ - -3.186811967329561, - 3.983431729403435 - ], - [ - -3.186811967329561, - 6.373512961647748 - ], - [ - -2.39013671875, - 7.9669189453125 - ], - [ - 0, - 7.9669189453125 - ], - [ - 3.186700994318187, - 6.373512961647748 - ], - [ - 7.170132723721622, - 1.593405983664809 - ], - [ - 7.170132723721622, - 1.593405983664809 - ] - ], - "pressures": [ - 0.1689453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2880859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.170132723721622, - 1.593405983664809 - ] - }, - { - "id": "RhMb0wtFka5x2H1pBOjGD", - "type": "freedraw", - "x": -206.82686783431387, - "y": 82.3241848635995, - "width": 11.950295188210248, - "height": 24.697265625, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 589303267, - "version": 285, - "versionNonce": 1736863213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796619762073874, - 5.576893199573817 - ], - [ - -0.796619762073874, - 7.170188210227252 - ], - [ - 1.593405983664752, - 10.356944691051126 - ], - [ - 3.983431729403378, - 11.950295188210191 - ], - [ - 7.170243696732939, - 11.950295188210191 - ], - [ - 9.560269442471565, - 7.966863458806813 - ], - [ - 10.356944691051126, - 1.593405983664752 - ], - [ - 10.356944691051126, - -3.983431729403435 - ], - [ - 9.560269442471565, - -7.966863458806813 - ], - [ - 6.373512961647691, - -11.950295188210248 - ], - [ - 4.780162464488626, - -12.746970436789809 - ], - [ - 2.390081232244313, - -11.950295188210248 - ], - [ - 0, - -6.373457475142061 - ], - [ - -1.593350497159122, - 1.593405983664752 - ], - [ - -0.796619762073874, - 4.780106977982939 - ], - [ - 0, - 5.576893199573817 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0693359375, - 0.5380859375, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.552734375, - 0.1181640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 5.576893199573817 - ] - }, - { - "id": "bvB9Uf2gu-fUFTFL1wsAL", - "type": "freedraw", - "x": -162.2123325892855, - "y": 74.35732140479269, - "width": 28.680752840909065, - "height": 39.03764204545456, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1545379363, - "version": 289, - "versionNonce": 215053155, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - 3.983431729403378 - ], - [ - -6.373512961647691, - 6.373512961647691 - ], - [ - -6.373512961647691, - 9.560269442471565 - ], - [ - -3.983431729403378, - 12.746970436789752 - ], - [ - 0, - 15.137051669034065 - ], - [ - 5.5767822265625, - 15.933726917613626 - ], - [ - 10.356944691051126, - 14.340376420454504 - ], - [ - 13.543645685369313, - 8.763538707386317 - ], - [ - 14.340376420454561, - 3.186756480823817 - ], - [ - 14.340376420454561, - -4.780106977982996 - ], - [ - 12.746970436789809, - -12.746970436789809 - ], - [ - 6.373512961647748, - -21.51056463068187 - ], - [ - 0, - -23.103915127840935 - ], - [ - -6.373512961647691, - -19.1204833984375 - ], - [ - -11.153619939630687, - -11.153619939630687 - ], - [ - -14.340376420454504, - -3.186756480823874 - ], - [ - -14.340376420454504, - 3.983431729403378 - ], - [ - -12.747025923295439, - 4.780106977982939 - ], - [ - -9.560213955965878, - 4.780106977982939 - ], - [ - -5.5767822265625, - 3.186756480823817 - ], - [ - -1.593350497159065, - -1.593350497159122 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.056640625, - 0.599609375, - 0.8935546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.5458984375, - 0.2724609375, - 0.0263671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159065, - -1.593350497159122 - ] - }, - { - "id": "7jCBmf8mX9siCTFb74qTh", - "type": "freedraw", - "x": -157.4322256113025, - "y": 56.83018850351425, - "width": 8.763538707386317, - "height": 43.02118474786931, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 14990861, - "version": 275, - "versionNonce": 2042374221, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 3.983431729403435 - ], - [ - 2.390081232244313, - 19.120538884943187 - ], - [ - 3.186756480823817, - 24.697321111505687 - ], - [ - 5.57683771306813, - 34.25759055397725 - ], - [ - 7.170188210227252, - 40.63104802911931 - ], - [ - 7.966863458806813, - 43.02118474786931 - ], - [ - 8.763538707386317, - 43.02118474786931 - ], - [ - 8.763538707386317, - 39.83437278053975 - ], - [ - 8.763538707386317, - 38.24102228338069 - ], - [ - 8.763538707386317, - 38.24102228338069 - ] - ], - "pressures": [ - 0.0224609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.19140625, - 0.0546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.763538707386317, - 38.24102228338069 - ] - }, - { - "id": "ej3YofLGQHZGziDDk1WGN", - "type": "freedraw", - "x": -223.55721451400137, - "y": 58.423594487179, - "width": 47.004560990767004, - "height": 58.95491166548294, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 736839117, - "version": 299, - "versionNonce": 766709507, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -0.7967307350851911 - ], - [ - -1.5934614701704959, - -1.593405983664752 - ], - [ - -2.39013671875, - -1.593405983664752 - ], - [ - -5.576893199573874, - 0 - ], - [ - -9.560324928977309, - 2.390025745738683 - ], - [ - -11.950350674715935, - 7.170188210227309 - ], - [ - -12.747081409801126, - 15.137051669034122 - ], - [ - -12.747081409801126, - 19.91715864701706 - ], - [ - -12.747081409801126, - 23.103915127840935 - ], - [ - -10.357000177556813, - 25.493996360085248 - ], - [ - -6.373568448153435, - 27.884022105823874 - ], - [ - 6.373457475142004, - 29.477483575994313 - ], - [ - 16.7303466796875, - 27.884022105823874 - ], - [ - 24.697265625, - 23.103915127840935 - ], - [ - 30.2740478515625, - 17.527132901278435 - ], - [ - 33.460804332386374, - 10.356889204545496 - ], - [ - 34.25747958096588, - -2.390025745738626 - ], - [ - 33.460804332386374, - -11.950350674715878 - ], - [ - 29.47737260298294, - -19.91721413352269 - ], - [ - 23.90059037642044, - -26.29072709517044 - ], - [ - 18.323752663352252, - -28.680752840909065 - ], - [ - 9.560158469460191, - -29.477428089488626 - ], - [ - 3.983431729403378, - -26.29072709517044 - ], - [ - -2.39013671875, - -20.713889382102252 - ], - [ - -7.170243696732996, - -3.983431729403378 - ], - [ - -7.966863458806813, - 8.763538707386374 - ], - [ - -4.780162464488626, - 19.1204833984375 - ], - [ - -0.7967307350852479, - 24.697265625 - ], - [ - 3.186700994318187, - 27.884022105823874 - ], - [ - 6.373457475142004, - 27.884022105823874 - ], - [ - 11.153564453125, - 24.697265625 - ], - [ - 11.950295188210191, - 21.510564630681813 - ], - [ - 11.950295188210191, - 20.713833895596622 - ], - [ - 11.950295188210191, - 20.713833895596622 - ] - ], - "pressures": [ - 0.0302734375, - 0.05078125, - 0.197265625, - 0.302734375, - 0.669921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.390625, - 0.154296875, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950295188210191, - 20.713833895596622 - ] - }, - { - "id": "SJyDe--ElrFhoRGAbJYz1", - "type": "freedraw", - "x": -229.13410771357525, - "y": 86.30761659300288, - "width": 43.81780450994319, - "height": 68.51512562144887, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1480765421, - "version": 302, - "versionNonce": 101422765, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.593461470170439 - ], - [ - 0.7967307350852479, - -3.186756480823874 - ], - [ - 2.390081232244313, - -11.950295188210191 - ], - [ - 2.390081232244313, - -17.527132901278378 - ], - [ - 3.186756480823874, - -21.510564630681813 - ], - [ - 3.186756480823874, - -27.087346857244313 - ], - [ - 3.983431729403378, - -35.850941051136374 - ], - [ - 7.966863458806813, - -48.597911487926126 - ], - [ - 10.356944691051126, - -54.17474920099431 - ], - [ - 13.543756658380687, - -57.3614501953125 - ], - [ - 18.32380814985794, - -61.344937411221565 - ], - [ - 27.88407759232956, - -65.328369140625 - ], - [ - 33.46091530539775, - -65.328369140625 - ], - [ - 37.444347034801126, - -61.344937411221565 - ], - [ - 40.63104802911931, - -53.378018465909065 - ], - [ - 41.42783425071025, - -43.02107377485794 - ], - [ - 41.42783425071025, - -29.477428089488626 - ], - [ - 34.25759055397725, - -9.560213955965878 - ], - [ - 27.08740234375, - -0.796675248579561 - ], - [ - 18.32380814985794, - 3.186756480823874 - ], - [ - 6.373512961647748, - 2.390081232244313 - ], - [ - 3.186756480823874, - 0 - ], - [ - -2.389970259232939, - -19.1204833984375 - ], - [ - -2.389970259232939, - -26.290616122159065 - ], - [ - 0, - -39.83437278053975 - ], - [ - 3.983431729403378, - -50.19126198508519 - ], - [ - 11.153619939630687, - -57.3614501953125 - ], - [ - 16.730457652698874, - -58.95485617897725 - ], - [ - 22.307239879261374, - -58.95485617897725 - ], - [ - 29.477483575994313, - -58.95485617897725 - ], - [ - 32.6641845703125, - -58.95485617897725 - ], - [ - 34.25759055397725, - -56.56477494673294 - ], - [ - 35.05426580255681, - -51.78466796875 - ], - [ - 35.05426580255681, - -47.801236239346565 - ], - [ - 35.05426580255681, - -47.00456099076706 - ], - [ - 34.25759055397725, - -46.20783025568181 - ], - [ - 34.25759055397725, - -46.20783025568181 - ] - ], - "pressures": [ - 0.029296875, - 0.4091796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7744140625, - 0.26171875, - 0.115234375, - 0.009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.25759055397725, - -46.20783025568181 - ] - }, - { - "id": "fj4Au6XryJUlQIW9fyOpZ", - "type": "freedraw", - "x": -219.573782784598, - "y": 79.13742838277562, - "width": 16.730402166193187, - "height": 46.20783025568181, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 249636067, - "version": 283, - "versionNonce": 1663055523, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.373568448153378, - -0.796675248579561 - ], - [ - -8.763594193892004, - -3.186700994318187 - ], - [ - -10.357000177556813, - -7.170132723721622 - ], - [ - -11.153675426136374, - -7.966863458806813 - ], - [ - -11.153675426136374, - -12.746970436789809 - ], - [ - -9.560324928977252, - -22.307239879261374 - ], - [ - -6.373568448153378, - -30.274103338068187 - ], - [ - -3.186811967329504, - -37.44429154829544 - ], - [ - 0.796619762073874, - -43.02107377485794 - ], - [ - 2.390025745738626, - -45.41115500710231 - ], - [ - 3.983431729403435, - -46.20783025568181 - ], - [ - 5.576726740056813, - -42.224398526278435 - ], - [ - 5.576726740056813, - -38.240966796875 - ], - [ - 4.780051491477309, - -32.6641845703125 - ], - [ - 3.186700994318187, - -27.087291370738626 - ], - [ - 2.390025745738626, - -22.307239879261374 - ], - [ - 1.593295010653435, - -22.307239879261374 - ], - [ - 1.593295010653435, - -22.307239879261374 - ] - ], - "pressures": [ - 0.080078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.556640625, - 0.2109375, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.593295010653435, - -22.307239879261374 - ] - }, - { - "id": "dl0HIpaPrOp5i-lZ4vMJJ", - "type": "freedraw", - "x": -237.10097117238206, - "y": 89.49437307382675, - "width": 43.021129261363626, - "height": 57.36150568181819, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 954268611, - "version": 275, - "versionNonce": 119421197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 34.257535067471565, - -40.63104802911931 - ], - [ - 39.83437278053975, - -1.593295010653435 - ], - [ - 43.021129261363626, - 12.747025923295439 - ], - [ - 43.021129261363626, - 15.933726917613626 - ], - [ - 43.021129261363626, - 16.730457652698874 - ], - [ - 42.224454012784065, - 11.153619939630687 - ], - [ - 41.42777876420456, - 7.170188210227252 - ], - [ - 39.83437278053975, - 2.39013671875 - ], - [ - 39.83437278053975, - 1.593405983664752 - ], - [ - 39.83437278053975, - 1.593405983664752 - ] - ], - "pressures": [ - 0.0634765625, - 1, - 1, - 1, - 1, - 1, - 1, - 0.599609375, - 0.21875, - 0.0927734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.83437278053975, - 1.593405983664752 - ] - }, - { - "id": "WPrs-QlKsAjynVXH2x9Kg", - "type": "freedraw", - "x": -178.94284572849, - "y": 15.40246522581532, - "width": 33.46085981889206, - "height": 73.2952880859375, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1530244899, - "version": 287, - "versionNonce": 1718456173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -1.593350497159065 - ], - [ - -0.796675248579561, - 3.186756480823874 - ], - [ - -0.796675248579561, - 15.93378240411937 - ], - [ - -0.796675248579561, - 31.070834073153435 - ], - [ - -4.780106977982939, - 52.58139870383525 - ], - [ - -7.170188210227252, - 61.34493741122162 - ], - [ - -8.763538707386374, - 69.31180087002843 - ], - [ - -8.763538707386374, - 70.90520685369319 - ], - [ - -8.763538707386374, - 71.70193758877843 - ], - [ - -7.170188210227252, - 70.90520685369319 - ], - [ - 1.593405983664809, - 65.328369140625 - ], - [ - 9.560269442471622, - 62.14161265980118 - ], - [ - 15.933782404119313, - 61.34493741122162 - ], - [ - 19.917214133522748, - 61.34493741122162 - ], - [ - 23.103970614346622, - 61.34493741122162 - ], - [ - 24.697321111505687, - 61.34493741122162 - ], - [ - 22.30729536576706, - 62.14161265980118 - ], - [ - 19.917214133522748, - 62.14161265980118 - ], - [ - 19.917214133522748, - 61.34493741122162 - ], - [ - 19.917214133522748, - 61.34493741122162 - ] - ], - "pressures": [ - 0.06640625, - 0.2705078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3544921875, - 0.044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 19.917214133522748, - 61.34493741122162 - ] - }, - { - "id": "tStJyOhlwEKLIZI1doys8", - "type": "freedraw", - "x": -146.27860567167187, - "y": 24.16600393320175, - "width": 31.867509321732996, - "height": 56.56483043323868, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1179634435, - "version": 288, - "versionNonce": 747055587, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.186756480823874 - ], - [ - 0, - -3.983431729403435 - ], - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 7.170188210227252 - ], - [ - -3.186756480823817, - 16.730457652698874 - ], - [ - -6.373512961647691, - 27.884133078835248 - ], - [ - -9.560213955965878, - 38.24102228338069 - ], - [ - -13.543645685369313, - 49.394642223011374 - ], - [ - -13.543645685369313, - 51.78472345525569 - ], - [ - -13.543645685369313, - 52.58139870383525 - ], - [ - -12.747025923295439, - 52.58139870383525 - ], - [ - -8.763538707386317, - 51.78472345525569 - ], - [ - -3.983431729403378, - 47.00456099076706 - ], - [ - 0.796675248579561, - 41.42777876420456 - ], - [ - 4.780106977982996, - 39.03769753196025 - ], - [ - 10.357000177556813, - 39.03769753196025 - ], - [ - 13.543701171875, - 39.83442826704544 - ], - [ - 16.730457652698874, - 40.63104802911931 - ], - [ - 18.323863636363683, - 40.63104802911931 - ], - [ - 17.527132901278435, - 42.224454012784065 - ], - [ - 15.933726917613683, - 43.021129261363626 - ], - [ - 15.137051669034122, - 43.021129261363626 - ], - [ - 15.137051669034122, - 43.021129261363626 - ] - ], - "pressures": [ - 0.1328125, - 0.228515625, - 0.3115234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8642578125, - 0.2470703125, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.137051669034122, - 43.021129261363626 - ] - }, - { - "id": "3Nq6p5cU-6tbiJ9p8TI2m", - "type": "freedraw", - "x": -64.219778878348, - "y": 90.29104832240631, - "width": 46.2078857421875, - "height": 66.12504438920456, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 901553261, - "version": 296, - "versionNonce": 1785591171, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - -3.983431729403435 - ], - [ - 0.796675248579561, - -10.356889204545496 - ], - [ - -1.593405983664752, - -19.1204833984375 - ], - [ - -3.186756480823874, - -30.2740478515625 - ], - [ - -4.780162464488626, - -43.021073774857996 - ], - [ - -4.780162464488626, - -54.971424449573874 - ], - [ - -3.186756480823874, - -64.53163840553981 - ], - [ - -2.390081232244313, - -65.328369140625 - ], - [ - 0, - -66.12504438920456 - ], - [ - 3.186700994318187, - -66.12504438920456 - ], - [ - 7.170132723721622, - -65.328369140625 - ], - [ - 11.153564453125, - -65.328369140625 - ], - [ - 21.510509144176126, - -65.328369140625 - ], - [ - 30.274103338068187, - -66.12504438920456 - ], - [ - 36.64756081321025, - -64.53163840553981 - ], - [ - 40.630992542613626, - -62.141612659801126 - ], - [ - 41.427723277698874, - -59.75153142755681 - ], - [ - 39.83431729403412, - -57.3614501953125 - ], - [ - 34.25753506747162, - -54.971424449573874 - ], - [ - 27.087346857244313, - -51.78466796875 - ], - [ - 19.1204833984375, - -48.597911487926126 - ], - [ - 7.966863458806813, - -46.20783025568181 - ], - [ - 3.186700994318187, - -45.41115500710231 - ], - [ - 0, - -44.61447975852275 - ], - [ - -2.390081232244313, - -43.81780450994319 - ], - [ - -3.983431729403378, - -42.22434303977275 - ], - [ - -2.390081232244313, - -42.22434303977275 - ], - [ - 8.763538707386374, - -41.427723277698874 - ], - [ - 20.713833895596622, - -40.63104802911931 - ], - [ - 31.070778586647748, - -39.03764204545456 - ], - [ - 35.85088556463069, - -38.24091131036931 - ], - [ - 36.64756081321025, - -37.444291548295496 - ], - [ - 35.054210316051126, - -35.85088556463069 - ], - [ - 31.86745383522731, - -35.054210316051126 - ], - [ - 31.86745383522731, - -35.054210316051126 - ] - ], - "pressures": [ - 0.1748046875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.86745383522731, - -35.054210316051126 - ] - }, - { - "id": "Nlm4uWihdd-esC4ofywNW", - "type": "freedraw", - "x": -61.03307788402981, - "y": 83.91759084726425, - "width": 48.59796697443187, - "height": 72.49855735085225, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1413487139, - "version": 306, - "versionNonce": 867719213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244313, - -3.983431729403435 - ], - [ - 3.983431729403435, - -13.543701171875 - ], - [ - 5.576837713068187, - -27.884022105823874 - ], - [ - 7.966863458806813, - -43.021129261363626 - ], - [ - 9.560269442471622, - -55.768155184659065 - ], - [ - 9.560269442471622, - -67.71845037286931 - ], - [ - 7.966863458806813, - -70.90520685369319 - ], - [ - 7.170188210227252, - -72.49855735085225 - ], - [ - 9.560269442471622, - -72.49855735085225 - ], - [ - 15.137051669034122, - -72.49855735085225 - ], - [ - 26.290671608664752, - -70.10853160511363 - ], - [ - 34.25759055397725, - -66.92177512428975 - ], - [ - 40.63104802911937, - -64.53169389204544 - ], - [ - 44.61447975852275, - -62.141612659801126 - ], - [ - 47.004560990767004, - -60.54826216264206 - ], - [ - 48.59796697443187, - -60.54826216264206 - ], - [ - 44.61447975852275, - -60.54826216264206 - ], - [ - 39.83437278053975, - -60.54826216264206 - ], - [ - 35.05426580255681, - -60.54826216264206 - ], - [ - 30.274158824573874, - -60.54826216264206 - ], - [ - 26.290671608664752, - -60.54826216264206 - ], - [ - 22.307239879261374, - -60.54826216264206 - ], - [ - 19.1204833984375, - -60.54826216264206 - ], - [ - 17.527132901278435, - -60.54826216264206 - ], - [ - 15.137051669034122, - -60.54826216264206 - ], - [ - 11.950350674715935, - -60.54826216264206 - ], - [ - 9.560269442471622, - -60.54826216264206 - ], - [ - 7.170188210227252, - -59.7515869140625 - ], - [ - 5.576837713068187, - -58.95491166548294 - ], - [ - 4.780162464488626, - -58.15818093039775 - ], - [ - 4.780162464488626, - -57.36150568181819 - ], - [ - 5.576837713068187, - -57.36150568181819 - ], - [ - 11.153619939630687, - -55.768155184659065 - ], - [ - 24.697321111505687, - -52.58139870383525 - ], - [ - 32.6641845703125, - -50.191317471590935 - ], - [ - 37.44429154829544, - -48.59796697443181 - ], - [ - 39.03769753196025, - -47.801236239346565 - ], - [ - 38.24102228338069, - -47.801236239346565 - ], - [ - 34.25759055397725, - -46.2078857421875 - ], - [ - 28.680752840909122, - -45.41121049360794 - ], - [ - 23.103970614346622, - -44.614535245028435 - ], - [ - 22.307239879261374, - -43.81780450994319 - ], - [ - 21.510564630681813, - -43.81780450994319 - ], - [ - 22.307239879261374, - -43.81780450994319 - ], - [ - 22.307239879261374, - -43.81780450994319 - ] - ], - "pressures": [ - 0.0986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 22.307239879261374, - -43.81780450994319 - ] - }, - { - "id": "YUzCxkDF0kWKZ1L_VRlzO", - "type": "freedraw", - "x": -54.65956492238206, - "y": 87.90107806317332, - "width": 1.593350497159122, - "height": 7.170243696732939, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1222808621, - "version": 264, - "versionNonce": 1153060131, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -0.7967862215908781 - ], - [ - -1.593350497159122, - -7.170243696732939 - ], - [ - -1.593350497159122, - -7.170243696732939 - ] - ], - "pressures": [ - 0.072265625, - 0.8876953125, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593350497159122, - -7.170243696732939 - ] - }, - { - "id": "czpDCjdn8AXDkZ46UqS32", - "type": "freedraw", - "x": -56.25291541954118, - "y": 75.95072738845744, - "width": 47.004505504261374, - "height": 67.71845037286931, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1476666467, - "version": 261, - "versionNonce": 884394637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 47.004505504261374, - -67.71845037286931 - ], - [ - 41.427723277698874, - -66.12509987571025 - ] - ], - "pressures": [ - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.427723277698874, - -66.12509987571025 - ] - }, - { - "id": "hEXDdW8JNMJXC_VdoLUm_", - "type": "freedraw", - "x": -53.066214425222995, - "y": 79.93415911786082, - "width": 44.61447975852275, - "height": 74.091963334517, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2127257197, - "version": 287, - "versionNonce": 786084035, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7967307350851911 - ], - [ - 0, - -6.373512961647691 - ], - [ - 0, - -13.543701171875 - ], - [ - 0.7967307350852479, - -22.307295365767004 - ], - [ - 1.593405983664809, - -32.6641845703125 - ], - [ - 1.593405983664809, - -48.59796697443181 - ], - [ - 1.593405983664809, - -56.564830433238626 - ], - [ - 0.7967307350852479, - -62.141612659801126 - ], - [ - 0.7967307350852479, - -63.73501864346588 - ], - [ - 0, - -65.328369140625 - ], - [ - -0.796675248579561, - -70.90520685369313 - ], - [ - -1.593350497159065, - -73.2952880859375 - ], - [ - -1.593350497159065, - -74.091963334517 - ], - [ - -0.796675248579561, - -74.091963334517 - ], - [ - 3.186756480823874, - -72.49855735085225 - ], - [ - 7.9669189453125, - -71.70188210227269 - ], - [ - 14.340376420454561, - -70.10853160511363 - ], - [ - 21.510564630681813, - -67.71845037286931 - ], - [ - 32.66418457031256, - -63.73501864346588 - ], - [ - 38.24102228338069, - -62.93834339488632 - ], - [ - 41.42777876420456, - -62.141612659801126 - ], - [ - 42.224454012784065, - -61.344937411221565 - ], - [ - 43.02112926136368, - -61.344937411221565 - ], - [ - 42.224454012784065, - -59.7515869140625 - ], - [ - 39.03769753196019, - -56.564830433238626 - ], - [ - 33.46091530539769, - -54.17474920099431 - ], - [ - 32.66418457031256, - -54.17474920099431 - ], - [ - 32.66418457031256, - -54.17474920099431 - ] - ], - "pressures": [ - 0.0751953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6533203125, - 0.07421875, - 0.0009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 32.66418457031256, - -54.17474920099431 - ] - }, - { - "id": "NUNVliaiHOJMvDWSGVNLn", - "type": "freedraw", - "x": -49.87945794439912, - "y": 43.28654281814494, - "width": 23.103915127840878, - "height": 3.983431729403378, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1349627405, - "version": 268, - "versionNonce": 1173876973, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - 0.796675248579561 - ], - [ - 0, - 0.796675248579561 - ], - [ - 5.576837713068187, - 2.390025745738626 - ], - [ - 11.153619939630687, - 3.186700994318187 - ], - [ - 16.730457652698874, - 3.983431729403378 - ], - [ - 19.120538884943187, - 3.983431729403378 - ], - [ - 20.713889382102252, - 3.983431729403378 - ], - [ - 20.713889382102252, - 3.186700994318187 - ], - [ - 20.713889382102252, - 3.983431729403378 - ], - [ - 20.713889382102252, - 3.983431729403378 - ] - ], - "pressures": [ - 0.1083984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 20.713889382102252, - 3.983431729403378 - ] - }, - { - "id": "Zb4Gpz0tMt7wetLTQuZcq", - "type": "freedraw", - "x": -19.605299119825304, - "y": 27.352760414025624, - "width": 50.987992720170496, - "height": 73.29523259943181, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1107009997, - "version": 323, - "versionNonce": 711827555, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485796178, - -1.593350497159122 - ], - [ - -0.7967307350851343, - -3.186756480823874 - ], - [ - -3.983487215909065, - -4.780106977982939 - ], - [ - -7.966918945312443, - -7.170188210227309 - ], - [ - -12.747025923295382, - -7.966863458806813 - ], - [ - -17.527132901278378, - -7.966863458806813 - ], - [ - -24.69732111150563, - -8.763538707386374 - ], - [ - -28.680752840909065, - -9.560213955965935 - ], - [ - -31.070834073153378, - -10.356944691051126 - ], - [ - -31.867509321732882, - -10.356944691051126 - ], - [ - -31.867509321732882, - -5.5767822265625 - ], - [ - -32.66418457031244, - 7.966863458806813 - ], - [ - -34.25759055397725, - 18.32380814985794 - ], - [ - -35.054265802556756, - 28.680808327414752 - ], - [ - -36.64761629971588, - 38.24102228338069 - ], - [ - -38.24102228338063, - 50.19131747159088 - ], - [ - -38.24102228338063, - 55.76809969815338 - ], - [ - -38.24102228338063, - 59.75153142755681 - ], - [ - -38.24102228338063, - 61.344937411221565 - ], - [ - -38.24102228338063, - 62.141612659801126 - ], - [ - -38.24102228338063, - 62.93828790838069 - ], - [ - -38.24102228338063, - 59.75153142755681 - ], - [ - -38.24102228338063, - 54.971424449573874 - ], - [ - -37.44434703480107, - 48.59796697443181 - ], - [ - -37.44434703480107, - 41.427723277698874 - ], - [ - -36.64761629971588, - 30.274103338068187 - ], - [ - -35.85094105113632, - 24.697376598011374 - ], - [ - -35.85094105113632, - 19.91721413352269 - ], - [ - -35.054265802556756, - 15.137051669034065 - ], - [ - -34.25759055397725, - 6.373512961647691 - ], - [ - -34.25759055397725, - 2.390081232244313 - ], - [ - -33.46091530539769, - 0 - ], - [ - -32.66418457031244, - 0 - ], - [ - -31.867509321732882, - 3.983431729403378 - ], - [ - -30.274158824573817, - 7.966863458806813 - ], - [ - -26.290727095170382, - 12.747025923295439 - ], - [ - -23.90064586292607, - 13.543701171875 - ], - [ - -19.91721413352269, - 15.137051669034065 - ], - [ - -15.933782404119256, - 15.137051669034065 - ], - [ - -11.950350674715878, - 15.933782404119313 - ], - [ - -6.373512961647691, - 16.730457652698874 - ], - [ - -3.186756480823817, - 16.730457652698874 - ], - [ - -0.7967307350851343, - 17.527132901278378 - ], - [ - 0, - 17.527132901278378 - ], - [ - -1.593405983664752, - 17.527132901278378 - ], - [ - -6.373512961647691, - 15.933782404119313 - ], - [ - -12.747025923295382, - 14.340376420454561 - ], - [ - -23.90064586292607, - 13.543701171875 - ], - [ - -31.070834073153378, - 13.543701171875 - ], - [ - -37.44434703480107, - 13.543701171875 - ], - [ - -43.02112926136357, - 13.543701171875 - ], - [ - -48.59791148792607, - 12.747025923295439 - ], - [ - -50.19131747159088, - 11.950295188210191 - ], - [ - -43.02112926136357, - 14.340376420454561 - ], - [ - -35.054265802556756, - 16.730457652698874 - ], - [ - -25.49399636008519, - 19.1204833984375 - ], - [ - -15.933782404119256, - 21.510564630681813 - ], - [ - -5.57683771306813, - 24.697376598011374 - ], - [ - -2.390081232244256, - 25.49399636008519 - ], - [ - -3.186756480823817, - 24.697376598011374 - ], - [ - -4.780162464488569, - 24.697376598011374 - ], - [ - -7.170188210227252, - 24.697376598011374 - ], - [ - -8.763594193892004, - 25.49399636008519 - ], - [ - -8.763594193892004, - 26.290671608664752 - ], - [ - -8.763594193892004, - 26.290671608664752 - ] - ], - "pressures": [ - 0.048828125, - 0.3642578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3994140625, - 0.208984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.763594193892004, - 26.290671608664752 - ] - }, - { - "id": "jgDGeRRCfUfwSHfYQZSD2", - "type": "freedraw", - "x": -11.638435661018434, - "y": 13.012383993571063, - "width": 43.81780450994319, - "height": 48.59796697443181, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1445997731, - "version": 270, - "versionNonce": 21076995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -43.81780450994319, - 43.81780450994319 - ], - [ - -35.05426580255681, - 41.42777876420456 - ], - [ - -32.6641845703125, - 40.63104802911931 - ], - [ - -27.08740234375, - 39.037753018465935 - ], - [ - -22.307239879261374, - 39.037753018465935 - ], - [ - -19.1204833984375, - 39.037753018465935 - ], - [ - -16.730457652698874, - 39.83437278053975 - ], - [ - -15.933782404119313, - 42.22445401278412 - ], - [ - -15.137051669034122, - 44.61447975852275 - ], - [ - -15.137051669034122, - 47.00461647727275 - ], - [ - -15.137051669034122, - 47.80123623934662 - ], - [ - -15.137051669034122, - 48.59796697443181 - ], - [ - -15.137051669034122, - 48.59796697443181 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.611328125, - 0.2939453125, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.137051669034122, - 48.59796697443181 - ] - }, - { - "id": "THUBAj-d3p9hFR6SoiXo_", - "type": "freedraw", - "x": -345.45041408786506, - "y": 212.18424789626994, - "width": 6.373512961647691, - "height": 1.593405983664752, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2073212803, - "version": 258, - "versionNonce": 442678477, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - 0 - ], - [ - -6.373512961647691, - -1.593405983664752 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0322265625, - 0.1923828125, - 0.2236328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.373512961647691, - -1.593405983664752 - ] - }, - { - "id": "sDgWNf2T_-WP2tKvRKlTg", - "type": "freedraw", - "x": -352.6206022980923, - "y": 208.20081616686656, - "width": 65.328369140625, - "height": 36.64767178622162, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 368157283, - "version": 265, - "versionNonce": 1070465667, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.153619939630687, - 32.6641845703125 - ], - [ - 23.900590376420496, - -3.983487215909122 - ], - [ - 43.81780450994319, - 0 - ], - [ - 49.394642223011374, - 1.5933504971590082 - ], - [ - 57.36150568181819, - 6.373457475142004 - ], - [ - 62.93828790838069, - 11.950295188210134 - ], - [ - 65.328369140625, - 19.917158647017004 - ], - [ - 65.328369140625, - 23.900590376420382 - ], - [ - 63.73496315696025, - 26.290671608664752 - ], - [ - 60.548206676136374, - 27.08740234375 - ], - [ - 58.95485617897725, - 25.493996360085134 - ], - [ - 58.95485617897725, - 25.493996360085134 - ] - ], - "pressures": [ - 0.26171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.296875, - 0.033203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 58.95485617897725, - 25.493996360085134 - ] - }, - { - "id": "KwvQkq-0EdKbixfdlFrxX", - "type": "freedraw", - "x": -351.82392704951275, - "y": 168.3664433863267, - "width": 175.27121803977275, - "height": 117.9097123579545, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 361116045, - "version": 306, - "versionNonce": 1844157229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664809, - -1.593405983664752 - ], - [ - -3.983431729403435, - -3.1867564808237603 - ], - [ - -4.780162464488626, - -4.780106977982882 - ], - [ - -5.576837713068187, - -5.57683771306813 - ], - [ - -3.983431729403435, - -7.966863458806756 - ], - [ - 2.390025745738626, - -13.543701171875 - ], - [ - 11.950295188210191, - -15.137051669034008 - ], - [ - 27.087346857244313, - -14.340376420454504 - ], - [ - 44.614535245028435, - -10.356944691051126 - ], - [ - 61.344937411221565, - -4.780106977982882 - ], - [ - 86.04220303622157, - 8.763538707386374 - ], - [ - 98.78922895951706, - 21.51056463068187 - ], - [ - 106.75609241832387, - 35.05426580255687 - ], - [ - 109.14617365056819, - 44.61447975852275 - ], - [ - 103.5693359375, - 50.98804820667624 - ], - [ - 90.025634765625, - 54.97147993607962 - ], - [ - 70.10847611860794, - 58.954911665482996 - ], - [ - 48.59796697443181, - 61.34488192471599 - ], - [ - 25.49399636008519, - 62.14161265980124 - ], - [ - -4.780162464488626, - 58.15818093039775 - ], - [ - -18.32380814985794, - 54.17474920099437 - ], - [ - -26.29067160866481, - 50.98804820667624 - ], - [ - -29.477428089488626, - 49.394586736505744 - ], - [ - -30.274158824573874, - 48.59791148792624 - ], - [ - -29.477428089488626, - 48.59791148792624 - ], - [ - -25.49399636008519, - 49.394586736505744 - ], - [ - -17.527132901278435, - 52.58134321732962 - ], - [ - -7.170132723721565, - 58.954911665482996 - ], - [ - 16.730457652698874, - 70.90520685369324 - ], - [ - 35.850941051136374, - 76.48198908025574 - ], - [ - 51.78466796875, - 78.8720703125 - ], - [ - 65.328369140625, - 79.66869007457387 - ], - [ - 84.44890802556819, - 77.27866432883525 - ], - [ - 98.78922895951706, - 73.29523259943187 - ], - [ - 112.33293013139206, - 66.92177512428987 - ], - [ - 122.6898193359375, - 57.3614501953125 - ], - [ - 125.87657581676137, - 42.22439852627849 - ], - [ - 117.90971235795456, - 11.950295188210248 - ], - [ - 106.75609241832387, - -9.560269442471508 - ], - [ - 92.415771484375, - -27.08740234375 - ], - [ - 74.88858309659088, - -36.647560813210134 - ], - [ - 47.00456099076706, - -38.24102228338063 - ], - [ - 25.49399636008519, - -35.85094105113626 - ], - [ - 4.780162464488626, - -30.27415882457376 - ], - [ - -13.543701171875, - -23.10397061434651 - ], - [ - -29.477428089488626, - -11.950350674715878 - ], - [ - -45.41121049360794, - 7.170243696732996 - ], - [ - -49.394642223011374, - 19.120538884943244 - ], - [ - -47.801236239346565, - 29.47742808948874 - ], - [ - -42.224454012784065, - 36.64761629971599 - ], - [ - -28.680752840909065, - 43.817804509943244 - ], - [ - -23.900645862926126, - 45.411155007102366 - ], - [ - -23.900645862926126, - 45.411155007102366 - ] - ], - "pressures": [ - 0.138671875, - 0.23046875, - 0.4033203125, - 0.6337890625, - 0.8828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.55859375, - 0.302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -23.900645862926126, - 45.411155007102366 - ] - }, - { - "id": "jkcTJlYvJ9Yn68gr_iCRO", - "type": "freedraw", - "x": -370.94441044795025, - "y": 214.57427364200856, - "width": 11.153619939630687, - "height": 2.390025745738626, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2144998307, - "version": 253, - "versionNonce": 1821424163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.153619939630687, - -2.390025745738626 - ], - [ - 11.153619939630687, - -2.390025745738626 - ] - ], - "pressures": [ - 0.21484375, - 0.091796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153619939630687, - -2.390025745738626 - ] - }, - { - "id": "PSC0Zpq3DbwnBQFJuMH5G", - "type": "freedraw", - "x": -357.40076476258093, - "y": 184.30017030394043, - "width": 115.51968661221593, - "height": 96.39914772727275, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 744910723, - "version": 269, - "versionNonce": 1837739405, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593295010653378, - -18.323808149857996 - ], - [ - 93.21244673295456, - 60.548262162642004 - ], - [ - 82.05888227982956, - 69.31180087002838 - ], - [ - 65.328369140625, - 74.88863858309651 - ], - [ - 46.20794122869319, - 78.07533957741475 - ], - [ - 16.730457652698874, - 74.09190784801126 - ], - [ - 1.593405983664752, - 66.1250443892045 - ], - [ - -9.560213955965878, - 58.158180930397634 - ], - [ - -17.527132901278378, - 50.19131747159088 - ], - [ - -21.510564630681813, - 43.81780450994313 - ], - [ - -22.307239879261374, - 39.03775301846588 - ], - [ - -22.307239879261374, - 33.460859818892004 - ], - [ - -20.713833895596622, - 31.070834073153378 - ], - [ - -17.527132901278378, - 29.477428089488626 - ], - [ - -12.746970436789752, - 28.68075284090901 - ], - [ - -8.763538707386374, - 28.68075284090901 - ], - [ - -7.170188210227252, - 28.68075284090901 - ], - [ - -7.170188210227252, - 28.68075284090901 - ] - ], - "pressures": [ - 0.08984375, - 0.7568359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.71484375, - 0.2724609375, - 0.15625, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.170188210227252, - 28.68075284090901 - ] - }, - { - "id": "VcTbuEDC_zZZh5BIH4Qd6", - "type": "freedraw", - "x": -366.1643034699673, - "y": 170.75646913206543, - "width": 175.27127352627838, - "height": 128.26665704900563, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2004631533, - "version": 298, - "versionNonce": 1264287171, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 6.373512961647748, - -3.186700994318244 - ], - [ - 16.730402166193187, - -7.170132723721622 - ], - [ - 32.6641845703125, - -9.560213955965992 - ], - [ - 52.58134321732956, - -10.356889204545496 - ], - [ - 71.70182661576706, - -10.356889204545496 - ], - [ - 99.58590420809662, - -7.170132723721622 - ], - [ - 116.31636186079544, - 1.593405983664752 - ], - [ - 129.8600075461648, - 12.747081409801126 - ], - [ - 141.01362748579544, - 32.66424005681813 - ], - [ - 141.8103582208807, - 46.2078857421875 - ], - [ - 136.2335205078125, - 59.7515869140625 - ], - [ - 125.07990056818181, - 70.90520685369313 - ], - [ - 109.94284889914775, - 80.46547629616475 - ], - [ - 87.63560901988637, - 86.04225852272725 - ], - [ - 49.39458673650569, - 86.83893377130676 - ], - [ - 26.290671608664752, - 83.65217729048288 - ], - [ - 10.356944691051126, - 79.6687455610795 - ], - [ - 0, - 76.48204456676126 - ], - [ - -5.57683771306813, - 73.29523259943176 - ], - [ - -1.593405983664752, - 72.49861283735788 - ], - [ - 5.5767822265625, - 72.49861283735788 - ], - [ - 27.884022105823874, - 77.27866432883513 - ], - [ - 50.988048206676126, - 82.85550204190338 - ], - [ - 74.88863858309662, - 86.04225852272725 - ], - [ - 108.34944291548294, - 82.05882679332376 - ], - [ - 125.07990056818181, - 76.48204456676126 - ], - [ - 135.43684525923294, - 70.10853160511363 - ], - [ - 142.60708895596593, - 62.141612659801126 - ], - [ - 146.5905206853693, - 50.98799272017038 - ], - [ - 146.5905206853693, - 35.85094105113626 - ], - [ - 136.2335205078125, - 11.15361993963063 - ], - [ - 121.09646883877843, - -5.5767822265625 - ], - [ - 98.78928444602275, - -20.713833895596622 - ], - [ - 74.09190784801137, - -33.46085981889212 - ], - [ - 36.647616299715935, - -40.63104802911937 - ], - [ - 15.933726917613626, - -41.427723277698874 - ], - [ - -1.593405983664752, - -38.240966796875 - ], - [ - -15.137051669034065, - -30.274103338068244 - ], - [ - -24.69732111150563, - -19.917158647017118 - ], - [ - -28.680752840909065, - -2.3900257457387397 - ], - [ - -27.884077592329504, - 8.763649680397634 - ], - [ - -24.69732111150563, - 17.527132901278378 - ], - [ - -19.917214133522748, - 22.30723987926126 - ], - [ - -11.15361993963063, - 26.290727095170382 - ], - [ - -7.170188210227252, - 26.290727095170382 - ], - [ - -6.373512961647748, - 26.290727095170382 - ], - [ - -6.373512961647748, - 26.290727095170382 - ] - ], - "pressures": [ - 0.09375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.931640625, - 0.2958984375, - 0.1689453125, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.373512961647748, - 26.290727095170382 - ] - }, - { - "id": "woWJmnqzM9bNyqbk1o5Dv", - "type": "freedraw", - "x": -264.1883180296264, - "y": 323.7204472925767, - "width": 71.70182661576706, - "height": 257.3299893465909, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1109238499, - "version": 284, - "versionNonce": 2001522019, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593405983664809, - 2.39008123224437 - ], - [ - -1.593405983664809, - -2.390025745738626 - ], - [ - -3.983431729403435, - -22.30723987926126 - ], - [ - -3.983431729403435, - -42.22439852627838 - ], - [ - -0.796675248579561, - -70.9051513671875 - ], - [ - 5.5767822265625, - -108.34944291548288 - ], - [ - 17.527132901278378, - -166.50762384588063 - ], - [ - 25.49399636008519, - -193.59502618963063 - ], - [ - 31.07077858664769, - -206.34199662642038 - ], - [ - 33.460859818892004, - -209.52875310724426 - ], - [ - 34.257535067471565, - -202.358564897017 - ], - [ - 36.647671786221565, - -184.03470126065338 - ], - [ - 39.83437278053975, - -152.96397816051126 - ], - [ - 42.22439852627838, - -114.72295587713063 - ], - [ - 47.004560990767004, - -56.56471946022725 - ], - [ - 52.58139870383519, - -20.71383389559651 - ], - [ - 58.15818093039769, - 7.96686345880687 - ], - [ - 62.93828790838069, - 28.680752840909122 - ], - [ - 66.1250443892045, - 42.22445401278412 - ], - [ - 67.71839488636363, - 47.80123623934662 - ], - [ - 66.1250443892045, - 42.22445401278412 - ], - [ - 58.95485617897725, - 21.51056463068187 - ], - [ - 50.98799272017044, - -3.1867564808237603 - ], - [ - 44.61453524502838, - -35.054210316051126 - ], - [ - 40.631103515625, - -68.51507013494313 - ], - [ - 39.83437278053975, - -96.399092240767 - ], - [ - 39.83437278053975, - -124.28316983309651 - ], - [ - 38.240966796875, - -137.030195756392 - ], - [ - 35.850941051136374, - -145.793789950284 - ], - [ - 34.257535067471565, - -149.7772216796875 - ], - [ - 33.460859818892004, - -149.7772216796875 - ], - [ - 31.07077858664769, - -136.23346502130676 - ], - [ - 29.477428089488626, - -124.28316983309651 - ], - [ - 28.680752840909065, - -121.09646883877838 - ], - [ - 28.680752840909065, - -121.09646883877838 - ] - ], - "pressures": [ - 0.109375, - 0.5009765625, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.849609375, - 0.2099609375, - 0.0927734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.680752840909065, - -121.09646883877838 - ] - }, - { - "id": "t2eUpJ4Zy3YcvZ6PYiwzD", - "type": "freedraw", - "x": -296.0558273513593, - "y": 336.4674732158722, - "width": 120.29979359019882, - "height": 262.9068270596591, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 989817261, - "version": 333, - "versionNonce": 180055629, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.57683771306813, - -53.37801846590912 - ], - [ - 17.527132901278378, - -92.415771484375 - ], - [ - 25.49399636008519, - -117.11298162286926 - ], - [ - 33.460859818892004, - -142.60703346946025 - ], - [ - 41.42772327769882, - -165.71100408380676 - ], - [ - 48.59796697443181, - -190.40826970880676 - ], - [ - 48.59796697443181, - -191.205000443892 - ], - [ - 48.59796697443181, - -192.00167569247162 - ], - [ - 47.801236239346565, - -192.00167569247162 - ], - [ - 47.801236239346565, - -189.61159446022725 - ], - [ - 47.801236239346565, - -170.49111106178975 - ], - [ - 47.801236239346565, - -149.7772216796875 - ], - [ - 46.20788574218744, - -121.89319957386363 - ], - [ - 44.61453524502838, - -87.63560901988637 - ], - [ - 43.81780450994313, - -41.427723277698874 - ], - [ - 44.61453524502838, - -19.12053888494313 - ], - [ - 47.004560990767004, - -3.186756480823874 - ], - [ - 50.98799272017044, - 8.763538707386374 - ], - [ - 55.76809969815338, - 20.713833895596622 - ], - [ - 64.53174937855113, - 35.054210316051126 - ], - [ - 67.71845037286931, - 38.240966796875 - ], - [ - 67.71845037286931, - 39.037642045454504 - ], - [ - 68.5151811079545, - 37.444291548295496 - ], - [ - 68.5151811079545, - 33.460859818892004 - ], - [ - 70.10847611860794, - 19.917158647017004 - ], - [ - 70.90515136718744, - 3.186756480823874 - ], - [ - 70.90515136718744, - -23.103970614346622 - ], - [ - 70.10847611860794, - -56.564830433238626 - ], - [ - 69.31180087002838, - -112.332930131392 - ], - [ - 68.5151811079545, - -144.200439453125 - ], - [ - 66.92171963778407, - -168.1010298295455 - ], - [ - 63.73496315696019, - -184.03481223366475 - ], - [ - 59.75153142755681, - -200.76515891335225 - ], - [ - 58.15818093039769, - -204.74859064275563 - ], - [ - 58.15818093039769, - -205.54537686434662 - ], - [ - 58.15818093039769, - -203.95197088068176 - ], - [ - 58.95485617897725, - -195.985107421875 - ], - [ - 62.141612659801126, - -166.50767933238637 - ], - [ - 62.93828790838063, - -130.65673828125 - ], - [ - 62.93828790838063, - -86.04225852272725 - ], - [ - 62.93828790838063, - -40.631048029119256 - ], - [ - 59.75153142755681, - 10.356944691051126 - ], - [ - 58.15818093039769, - 32.6641845703125 - ], - [ - 58.15818093039769, - 47.80123623934662 - ], - [ - 58.95485617897725, - 55.76809969815338 - ], - [ - 59.75153142755681, - 57.3614501953125 - ], - [ - 59.75153142755681, - 54.971424449573874 - ], - [ - 56.564830433238626, - 43.021073774857996 - ], - [ - 50.98799272017044, - 23.103915127840878 - ], - [ - 43.81780450994313, - 0 - ], - [ - 29.477428089488626, - -36.64761629971588 - ], - [ - 20.71394486860794, - -57.3614501953125 - ], - [ - 11.15361993963063, - -73.29523259943176 - ], - [ - 2.390081232244256, - -81.26209605823863 - ], - [ - -5.576837713068244, - -83.652177290483 - ], - [ - -17.527132901278435, - -83.652177290483 - ], - [ - -24.697321111505744, - -82.85550204190338 - ], - [ - -30.274103338068244, - -80.46542080965912 - ], - [ - -32.6641845703125, - -78.8720703125 - ], - [ - -32.6641845703125, - -78.0753950639205 - ], - [ - -27.88407759232956, - -75.68531383167613 - ], - [ - -19.12042791193187, - -72.49855735085225 - ], - [ - -6.373512961647748, - -68.51512562144887 - ], - [ - 8.763594193892004, - -65.32831365411926 - ], - [ - 39.03769753196019, - -62.141612659801126 - ], - [ - 58.95485617897725, - -61.34488192471588 - ], - [ - 75.68531383167613, - -61.34488192471588 - ], - [ - 85.245527787642, - -61.34488192471588 - ], - [ - 87.63560901988632, - -61.34488192471588 - ], - [ - 87.63560901988632, - -62.141612659801126 - ], - [ - 82.85550204190338, - -62.938343394886374 - ], - [ - 70.90515136718744, - -64.5316938920455 - ], - [ - 56.564830433238626, - -65.32831365411926 - ], - [ - 31.070834073153378, - -66.92177512428975 - ], - [ - 12.747025923295439, - -66.92177512428975 - ], - [ - -2.39008123224437, - -66.92177512428975 - ], - [ - -11.950295188210248, - -64.5316938920455 - ], - [ - -15.933726917613626, - -62.938343394886374 - ], - [ - -15.933726917613626, - -60.548262162642004 - ], - [ - -10.356944691051126, - -58.15818093039775 - ], - [ - -2.39008123224437, - -55.76815518465912 - ], - [ - 3.983431729403378, - -54.971424449573874 - ], - [ - 5.57683771306813, - -54.971424449573874 - ], - [ - 5.57683771306813, - -54.971424449573874 - ] - ], - "pressures": [ - 0.0263671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.591796875, - 0.2275390625, - 0.1337890625, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.57683771306813, - -54.971424449573874 - ] - }, - { - "id": "LEVwbEZUM52SSOmeydA6b", - "type": "freedraw", - "x": -210.8102995637173, - "y": 191.47041400067332, - "width": 117.90965687144882, - "height": 211.12210360440338, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 172677421, - "version": 278, - "versionNonce": 1770258189, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.5767822265625, - 0 - ], - [ - -9.560213955965878, - 1.593295010653378 - ], - [ - -10.356944691051126, - 2.390025745738626 - ], - [ - -11.950295188210191, - 1.593295010653378 - ], - [ - -12.746914950284065, - -3.186811967329504 - ], - [ - -10.356944691051126, - -5.576893199573874 - ], - [ - -3.983431729403378, - -7.170243696732882 - ], - [ - 7.170243696732939, - -10.357000177556756 - ], - [ - 31.070889559659122, - -15.137107155539752 - ], - [ - 53.37807395241481, - -19.917214133522748 - ], - [ - 75.68531383167613, - -26.290727095170382 - ], - [ - 94.00912198153412, - -32.66424005681813 - ], - [ - 105.16274192116475, - -37.444347034801126 - ], - [ - 105.16274192116475, - -38.24102228338063 - ], - [ - 103.56939142400569, - -38.24102228338063 - ], - [ - 98.78928444602275, - -38.24102228338063 - ], - [ - 93.21244673295456, - -34.25759055397725 - ], - [ - 84.4488525390625, - -17.527188387784122 - ], - [ - 80.46542080965912, - 0 - ], - [ - 77.27866432883525, - 23.103859641335248 - ], - [ - 75.68531383167613, - 52.581287730823874 - ], - [ - 75.68531383167613, - 95.60247247869324 - ], - [ - 78.07539506392044, - 116.31630637428975 - ], - [ - 81.26215154474431, - 132.25003329190338 - ], - [ - 83.65217729048294, - 145.79373446377838 - ], - [ - 86.04225852272725, - 156.94735440340912 - ], - [ - 87.63560901988637, - 169.69432484019887 - ], - [ - 87.63560901988637, - 172.08440607244324 - ], - [ - 87.63560901988637, - 172.88108132102275 - ], - [ - 86.04225852272725, - 169.69432484019887 - ], - [ - 85.24558327414775, - 167.30429909446025 - ], - [ - 85.24558327414775, - 167.30429909446025 - ] - ], - "pressures": [ - 0.0966796875, - 0.107421875, - 0.142578125, - 0.1513671875, - 0.20703125, - 0.3564453125, - 0.5458984375, - 0.78515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4052734375, - 0.0205078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 85.24558327414775, - 167.30429909446025 - ] - }, - { - "id": "x6y18YifwVjv-lTjstASo", - "type": "freedraw", - "x": -206.82686783431387, - "y": 181.91008907169606, - "width": 133.046708540483, - "height": 8.763538707386374, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1212554467, - "version": 264, - "versionNonce": 1611203651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558550, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -1.593350497159122 - ], - [ - -4.780051491477309, - -1.593350497159122 - ], - [ - -3.983431729403435, - -1.593350497159122 - ], - [ - 3.186811967329504, - -1.593350497159122 - ], - [ - 16.730457652698874, - -0.7966752485795041 - ], - [ - 43.81780450994319, - 0 - ], - [ - 63.73501864346588, - -1.593350497159122 - ], - [ - 80.46542080965907, - -3.983431729403378 - ], - [ - 96.39920321377838, - -6.373401988636374 - ], - [ - 110.73963512073863, - -7.96686345880687 - ], - [ - 125.0799560546875, - -8.763538707386374 - ], - [ - 128.2666570490057, - -8.763538707386374 - ], - [ - 128.2666570490057, - -7.96686345880687 - ], - [ - 123.48655007102269, - -4.780106977982996 - ], - [ - 120.29979359019882, - -3.18670099431813 - ], - [ - 117.90976784446019, - -1.593350497159122 - ], - [ - 116.31636186079544, - -0.7966752485795041 - ], - [ - 116.31636186079544, - -0.7966752485795041 - ] - ], - "pressures": [ - 0.0517578125, - 0.1689453125, - 0.216796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8876953125, - 0.4296875, - 0.2607421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 116.31636186079544, - -0.7966752485795041 - ] - }, - { - "id": "KPNbe6cJMNQd-rKjLF3Bz", - "type": "freedraw", - "x": -131.93817376471162, - "y": 184.30017030394043, - "width": 105.16279740767044, - "height": 211.12210360440338, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 768339235, - "version": 276, - "versionNonce": 1143641453, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.39013671875, - -6.373512961647748 - ], - [ - -3.983431729403435, - -11.153619939630744 - ], - [ - -5.576893199573874, - -15.137051669034122 - ], - [ - -7.966863458806813, - -16.730402166193244 - ], - [ - -8.763649680397748, - -16.730402166193244 - ], - [ - -8.763649680397748, - -15.93372691761374 - ], - [ - -9.560324928977252, - -6.373512961647748 - ], - [ - -15.137107155539752, - 30.27410333806813 - ], - [ - -21.5106201171875, - 63.734963156960134 - ], - [ - -27.88407759232956, - 98.78928444602263 - ], - [ - -31.070889559659065, - 129.86006303267038 - ], - [ - -32.66424005681819, - 156.15073464133513 - ], - [ - -34.25759055397725, - 184.83148748224426 - ], - [ - -34.25759055397725, - 192.79835094105113 - ], - [ - -34.25759055397725, - 194.39170143821013 - ], - [ - -35.0543212890625, - 188.81491921164763 - ], - [ - -36.647671786221565, - 179.25464976917613 - ], - [ - -37.444347034801126, - 166.50767933238626 - ], - [ - -37.444347034801126, - 153.76065340909088 - ], - [ - -37.444347034801126, - 141.81035822088063 - ], - [ - -35.850941051136374, - 123.48655007102263 - ], - [ - -35.850941051136374, - 112.332930131392 - ], - [ - -39.03775301846588, - 105.95941716974426 - ], - [ - -44.61453524502838, - 103.5693359375 - ], - [ - -55.76809969815338, - 105.95941716974426 - ], - [ - -65.32842462713069, - 113.12960537997151 - ], - [ - -76.48204456676137, - 123.48655007102263 - ], - [ - -88.43233975497157, - 135.43684525923288 - ], - [ - -98.78928444602275, - 144.9971147017045 - ], - [ - -105.16279740767044, - 151.3705721768465 - ], - [ - -105.16279740767044, - 151.3705721768465 - ] - ], - "pressures": [ - 0.068359375, - 0.1669921875, - 0.2861328125, - 0.6513671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -105.16279740767044, - 151.3705721768465 - ] - }, - { - "id": "cz0j4JC5CfQlJ18j7l88u", - "type": "freedraw", - "x": -239.4909969181207, - "y": 337.2641484644517, - "width": 207.9353471235795, - "height": 31.867509321732996, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 10612877, - "version": 261, - "versionNonce": 1501922275, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 69.31174538352269, - -8.763594193892004 - ], - [ - 45.41115500710225, - -2.390025745738626 - ], - [ - 71.70188210227269, - 0 - ], - [ - 86.83887828480113, - 0.7966752485796178 - ], - [ - 130.6566827947443, - 1.5934059836648657 - ], - [ - 156.1506791548295, - 0 - ], - [ - 172.88113680752838, - -0.7966752485795041 - ], - [ - 191.20494495738632, - 3.9834317294034918 - ], - [ - 195.18837668678975, - 7.170188210227366 - ], - [ - 202.358564897017, - 15.93372691761374 - ], - [ - 207.138671875, - 21.51056463068187 - ], - [ - 207.9353471235795, - 23.10391512784099 - ], - [ - 207.138671875, - 22.307239879261374 - ], - [ - 201.5618896484375, - 19.917158647017118 - ], - [ - 187.22151322798294, - 12.746970436789866 - ], - [ - 184.83143199573863, - 11.950295188210248 - ], - [ - 184.83143199573863, - 11.950295188210248 - ] - ], - "pressures": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2470703125, - 0.1689453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 184.83143199573863, - 11.950295188210248 - ] - }, - { - "id": "3h4AQAXvMDlGVJy537w8W", - "type": "freedraw", - "x": -213.99705604454118, - "y": 173.9432256128892, - "width": 166.50767933238637, - "height": 19.1204833984375, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 180227907, - "version": 293, - "versionNonce": 242180045, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186700994318187, - -1.5933504971590082 - ], - [ - -4.780106977982939, - -3.1867564808237603 - ], - [ - -6.373457475142004, - -3.983431729403378 - ], - [ - -1.593295010653378, - -3.983431729403378 - ], - [ - 16.730457652698874, - -1.5933504971590082 - ], - [ - 32.6641845703125, - 0 - ], - [ - 53.37807395241481, - 0.7966752485796178 - ], - [ - 89.22901500355113, - 0.7966752485796178 - ], - [ - 114.72301136363637, - 0.7966752485796178 - ], - [ - 133.84355024857956, - 0.7966752485796178 - ], - [ - 141.01368297230113, - 0.7966752485796178 - ], - [ - 141.81041370738637, - 0.7966752485796178 - ], - [ - 139.42033247514206, - 0.7966752485796178 - ], - [ - 121.89325506036931, - 1.5934614701704959 - ], - [ - 101.97604092684662, - 1.5934614701704959 - ], - [ - 78.8720703125, - 2.39008123224437 - ], - [ - 41.42777876420456, - 2.39008123224437 - ], - [ - 29.477483575994313, - 2.39008123224437 - ], - [ - -0.7966752485795041, - 3.186756480823874 - ], - [ - -15.933726917613626, - 4.78016246448874 - ], - [ - -23.103915127840878, - 5.576893199573874 - ], - [ - -24.697265625, - 5.576893199573874 - ], - [ - -19.1204833984375, - 5.576893199573874 - ], - [ - -7.170188210227252, - 5.576893199573874 - ], - [ - 17.527132901278435, - 4.78016246448874 - ], - [ - 38.241077769886374, - 3.9834317294034918 - ], - [ - 62.938343394886374, - 2.39008123224437 - ], - [ - 87.63560901988637, - 2.39008123224437 - ], - [ - 109.14617365056819, - 3.186756480823874 - ], - [ - 125.0799560546875, - 3.186756480823874 - ], - [ - 121.09652432528412, - 3.186756480823874 - ], - [ - 110.739579634233, - 3.9834317294034918 - ], - [ - 87.63560901988637, - 3.9834317294034918 - ], - [ - 68.51512562144887, - 3.9834317294034918 - ], - [ - 49.394642223011374, - 3.9834317294034918 - ], - [ - 34.257646040482996, - 5.576893199573874 - ], - [ - 25.493996360085248, - 6.373512961647748 - ], - [ - 20.71388938210231, - 7.170188210227366 - ], - [ - 23.103970614346622, - 7.96686345880687 - ], - [ - 33.46091530539775, - 11.153619939630744 - ], - [ - 50.19137295809662, - 13.543756658380744 - ], - [ - 67.71845037286931, - 14.340376420454618 - ], - [ - 87.63560901988637, - 14.340376420454618 - ], - [ - 96.39920321377843, - 14.340376420454618 - ], - [ - 102.77271617542613, - 14.340376420454618 - ], - [ - 105.95947265625, - 14.340376420454618 - ], - [ - 106.75614790482956, - 15.137051669034122 - ], - [ - 105.16274192116481, - 15.137051669034122 - ], - [ - 105.16274192116481, - 15.137051669034122 - ] - ], - "pressures": [ - 0.0302734375, - 0.0712890625, - 0.125, - 0.248046875, - 0.796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.828125, - 0.2490234375, - 0.0791015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 105.16274192116481, - 15.137051669034122 - ] - }, - { - "id": "Q07ITU1JHOjRvhI3pvkbS", - "type": "freedraw", - "x": -147.07528092025137, - "y": 164.38301165692332, - "width": 12.746970436789752, - "height": 237.41283069957387, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 682413517, - "version": 294, - "versionNonce": 1519456131, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - -5.57683771306813 - ], - [ - 0.7966752485795041, - -7.170188210227252 - ], - [ - 0, - -7.170188210227252 - ], - [ - 0, - -4.780106977982882 - ], - [ - -0.796675248579561, - 7.170188210227252 - ], - [ - -1.593405983664809, - 28.680697354403378 - ], - [ - -2.390081232244313, - 73.29523259943187 - ], - [ - -2.390081232244313, - 109.1461181640625 - ], - [ - -0.796675248579561, - 143.40370871803975 - ], - [ - -0.796675248579561, - 171.28773082386363 - ], - [ - -0.796675248579561, - 191.20494495738637 - ], - [ - -0.796675248579561, - 204.74864612926137 - ], - [ - -0.796675248579561, - 205.54532137784088 - ], - [ - -0.796675248579561, - 199.96848366477275 - ], - [ - -2.390081232244313, - 186.42483797940338 - ], - [ - -5.576837713068187, - 167.30429909446025 - ], - [ - -8.763538707386374, - 127.4699263139205 - ], - [ - -8.763538707386374, - 97.19582297585225 - ], - [ - -7.966863458806813, - 69.31180087002838 - ], - [ - -4.780106977982996, - 44.61447975852275 - ], - [ - -2.390081232244313, - 23.103970614346622 - ], - [ - 0.7966752485795041, - 5.5767822265625 - ], - [ - 1.593350497159065, - 3.186756480823874 - ], - [ - 1.593350497159065, - 10.356889204545496 - ], - [ - 1.593350497159065, - 29.477428089488626 - ], - [ - -0.796675248579561, - 73.29523259943187 - ], - [ - -1.593405983664809, - 108.349442915483 - ], - [ - -2.390081232244313, - 144.99705921519887 - ], - [ - -3.983431729403435, - 176.86456853693187 - ], - [ - -6.373512961647748, - 201.5618896484375 - ], - [ - -7.966863458806813, - 217.49561656605113 - ], - [ - -8.763538707386374, - 210.32542835582387 - ], - [ - -9.560269442471622, - 192.7982954545455 - ], - [ - -11.153619939630687, - 155.35400390625 - ], - [ - -9.560269442471622, - 128.26665704900574 - ], - [ - -7.170188210227309, - 102.77271617542613 - ], - [ - -4.780106977982996, - 80.46542080965912 - ], - [ - -3.983431729403435, - 66.92177512428975 - ], - [ - -3.186756480823874, - 66.12504438920462 - ], - [ - -3.186756480823874, - 69.31180087002838 - ], - [ - -2.390081232244313, - 82.05877130681824 - ], - [ - -2.390081232244313, - 107.55276766690338 - ], - [ - -5.576837713068187, - 163.32086736505687 - ], - [ - -7.966863458806813, - 199.17180841619324 - ], - [ - -8.763538707386374, - 222.27572354403412 - ], - [ - -8.763538707386374, - 230.24264248934662 - ], - [ - -7.966863458806813, - 229.44591175426137 - ], - [ - -5.576837713068187, - 223.07245427911937 - ], - [ - -3.983431729403435, - 213.51218483664775 - ], - [ - -3.983431729403435, - 210.32542835582387 - ], - [ - -3.983431729403435, - 210.32542835582387 - ] - ], - "pressures": [ - 0.12109375, - 0.17578125, - 0.2568359375, - 0.5439453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9560546875, - 0.4833984375, - 0.1796875, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983431729403435, - 210.32542835582387 - ] - }, - { - "id": "pL6gCJR9rI8G5TKs1hfHh", - "type": "freedraw", - "x": -202.8434361049105, - "y": 350.8078496363267, - "width": 189.6115944602273, - "height": 23.900645862926126, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 757769155, - "version": 280, - "versionNonce": 510385709, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403378, - 1.593350497159122 - ], - [ - -3.186700994318187, - 1.593350497159122 - ], - [ - 4.780162464488626, - -0.7967307350851343 - ], - [ - 10.356944691051126, - -1.593405983664752 - ], - [ - 33.46091530539775, - -3.1867564808237603 - ], - [ - 58.95491166548294, - -3.983431729403378 - ], - [ - 86.04225852272731, - -3.983431729403378 - ], - [ - 121.09652432528412, - -3.983431729403378 - ], - [ - 134.64022549715912, - -2.390081232244256 - ], - [ - 139.42033247514206, - -0.7967307350851343 - ], - [ - 140.21700772372162, - -0.7967307350851343 - ], - [ - 138.6236572265625, - -0.7967307350851343 - ], - [ - 127.46998180042613, - -0.7967307350851343 - ], - [ - 91.61909623579544, - -3.983431729403378 - ], - [ - 63.735018643465935, - -6.373512961647634 - ], - [ - 35.850941051136374, - -9.560269442471508 - ], - [ - -2.390025745738626, - -11.950295188210134 - ], - [ - -23.103915127840878, - -14.340376420454504 - ], - [ - -31.867453835227252, - -15.137107155539752 - ], - [ - -46.20783025568181, - -18.323808149857882 - ], - [ - -49.39458673650569, - -19.917158647017004 - ], - [ - -44.614424272017004, - -22.307295365767004 - ], - [ - -30.274103338068187, - -22.307295365767004 - ], - [ - -5.5767822265625, - -18.323808149857882 - ], - [ - 23.900645862926126, - -15.933726917613626 - ], - [ - 54.97147993607956, - -15.137107155539752 - ], - [ - 100.38263494318181, - -14.340376420454504 - ], - [ - 125.87663130326706, - -11.950295188210134 - ], - [ - 137.8269264914773, - -9.560269442471508 - ], - [ - 140.21700772372162, - -8.763594193892004 - ], - [ - 137.8269264914773, - -7.966863458806756 - ], - [ - 118.70649857954544, - -4.780162464488626 - ], - [ - 98.78928444602275, - -3.1867564808237603 - ], - [ - 74.88869406960231, - -0.7967307350851343 - ], - [ - 35.0543212890625, - -0.7967307350851343 - ], - [ - 23.10402610085231, - -1.593405983664752 - ], - [ - -14.340320933948874, - -7.170188210227252 - ], - [ - -14.340320933948874, - -7.170188210227252 - ] - ], - "pressures": [ - 0.1181640625, - 0.28125, - 0.5283203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.340320933948874, - -7.170188210227252 - ] - }, - { - "id": "dtCOrVM7pCcXdsQprREkl", - "type": "freedraw", - "x": -221.963919503348, - "y": 342.0442554424347, - "width": 139.42027698863637, - "height": 14.340376420454504, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1188480067, - "version": 243, - "versionNonce": 896149283, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 139.42027698863637, - 14.340376420454504 - ], - [ - 139.42027698863637, - 14.340376420454504 - ] - ], - "pressures": [ - 1, - 0.1064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 139.42027698863637, - 14.340376420454504 - ] - }, - { - "id": "q-BdlL5a-H-NJaYxMpF9U", - "type": "freedraw", - "x": -65.81318486201275, - "y": 325.31385327624156, - "width": 82.05877130681813, - "height": 220.68242853338074, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 637420141, - "version": 279, - "versionNonce": 1081014883, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -15.137107155539866 - ], - [ - -4.780106977982939, - -32.6641845703125 - ], - [ - -4.780106977982939, - -54.971424449573874 - ], - [ - -2.390025745738626, - -78.8720703125 - ], - [ - 4.780106977982939, - -115.51968661221599 - ], - [ - 11.153619939630687, - -137.82687100497162 - ], - [ - 16.730457652698874, - -155.35405939275574 - ], - [ - 22.307239879261374, - -169.69438032670462 - ], - [ - 26.290671608664752, - -177.66124378551137 - ], - [ - 27.087346857244313, - -180.05138050426137 - ], - [ - 27.087346857244313, - -175.27121803977275 - ], - [ - 28.680752840909065, - -160.13416637073863 - ], - [ - 29.477428089488626, - -130.65673828125 - ], - [ - 29.477428089488626, - -69.31180087002849 - ], - [ - 27.087346857244313, - -29.477428089488626 - ], - [ - 26.290671608664752, - -0.7967307350852479 - ], - [ - 26.290671608664752, - 15.137051669034008 - ], - [ - 28.680752840909065, - 21.510564630681756 - ], - [ - 31.86750932173294, - 22.307239879261374 - ], - [ - 34.257535067471565, - 18.323808149857882 - ], - [ - 36.64761629971588, - 7.966863458806756 - ], - [ - 37.44429154829544, - -13.543701171875 - ], - [ - 39.03769753196019, - -63.73501864346599 - ], - [ - 43.81780450994319, - -99.58595969460237 - ], - [ - 50.191317471590935, - -129.063387784091 - ], - [ - 55.768099698153435, - -152.16730291193187 - ], - [ - 58.95485617897731, - -169.69438032670462 - ], - [ - 62.93828790838069, - -190.40826970880687 - ], - [ - 65.32836914062494, - -196.78178267045462 - ], - [ - 66.12504438920456, - -198.37518865411937 - ], - [ - 67.71839488636357, - -190.40826970880687 - ], - [ - 72.49855735085231, - -167.304354580966 - ], - [ - 75.68531383167607, - -144.99711470170462 - ], - [ - 77.27866432883519, - -114.72301136363637 - ], - [ - 74.88858309659093, - -77.27871981534099 - ], - [ - 68.51512562144882, - -40.631103515625 - ], - [ - 62.93828790838069, - -3.9834317294034918 - ], - [ - 62.14161265980107, - 6.373457475142004 - ], - [ - 62.14161265980107, - 9.560269442471508 - ], - [ - 62.14161265980107, - 10.356889204545382 - ], - [ - 62.14161265980107, - 7.170188210227252 - ], - [ - 61.344937411221565, - 4.780106977982882 - ], - [ - 61.344937411221565, - 4.780106977982882 - ] - ], - "pressures": [ - 0.0771484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.201171875, - 0.01953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 61.344937411221565, - 4.780106977982882 - ] - }, - { - "id": "K9BvjoSA-xnOu31HN216Y", - "type": "freedraw", - "x": -68.99994134283662, - "y": 329.29728500564494, - "width": 68.51512562144882, - "height": 213.51224032315338, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2003174275, - "version": 268, - "versionNonce": 2111738189, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 11.153619939630687, - -129.86000754616475 - ], - [ - 13.543701171875, - -153.76059792258525 - ], - [ - 17.527132901278435, - -176.06789328835225 - ], - [ - 19.917214133522748, - -185.62810724431824 - ], - [ - 23.103915127840935, - -196.7817826704545 - ], - [ - 24.697321111505687, - -199.96853915127838 - ], - [ - 25.493996360085248, - -199.96853915127838 - ], - [ - 27.88407759232956, - -195.1884321732955 - ], - [ - 31.070834073153435, - -182.44140625 - ], - [ - 34.257535067471565, - -159.33749112215912 - ], - [ - 38.24102228338069, - -117.113037109375 - ], - [ - 41.427723277698874, - -92.415771484375 - ], - [ - 44.61447975852275, - -68.51512562144887 - ], - [ - 47.00456099076706, - -44.61453524502838 - ], - [ - 47.801236239346565, - -23.103970614346622 - ], - [ - 48.59791148792618, - -4.780162464488626 - ], - [ - 48.59791148792618, - 11.15361993963063 - ], - [ - 49.39464222301132, - 13.543701171875 - ], - [ - 50.191317471590935, - 13.543701171875 - ], - [ - 50.98799272017044, - 8.763538707386374 - ], - [ - 51.78466796874994, - -12.747025923295496 - ], - [ - 50.98799272017044, - -44.61453524502838 - ], - [ - 51.78466796874994, - -88.43228426846588 - ], - [ - 58.15818093039769, - -132.25008877840912 - ], - [ - 67.71845037286931, - -167.30435458096588 - ], - [ - 68.51512562144882, - -172.08446155894887 - ], - [ - 67.71845037286931, - -173.677812056108 - ], - [ - 66.12504438920456, - -173.677812056108 - ], - [ - 63.735018643465935, - -173.677812056108 - ], - [ - 62.14161265980118, - -169.6943803267045 - ], - [ - 62.14161265980118, - -168.1010298295455 - ], - [ - 62.14161265980118, - -168.1010298295455 - ] - ], - "pressures": [ - 0.009765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.33203125, - 0.1640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 62.14161265980118, - -168.1010298295455 - ] - }, - { - "id": "L_2FMTMXZ7nAtzcDw-Iig", - "type": "freedraw", - "x": -72.98337307224006, - "y": 310.1767461207017, - "width": 78.8720703125, - "height": 231.03931773792624, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1188328739, - "version": 270, - "versionNonce": 1107801603, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.7966752485795041 - ], - [ - 1.593350497159122, - -5.5767822265625 - ], - [ - 3.186756480823874, - -13.543645685369256 - ], - [ - 5.576837713068187, - -27.88402210582376 - ], - [ - 8.763594193892061, - -48.597911487926126 - ], - [ - 15.137051669034122, - -94.80574174360788 - ], - [ - 22.307239879261374, - -130.65662730823863 - ], - [ - 30.274103338068187, - -161.72751686789763 - ], - [ - 36.647616299715935, - -182.44135076349426 - ], - [ - 39.83437278053981, - -191.20494495738626 - ], - [ - 39.83437278053981, - -193.594970703125 - ], - [ - 39.83437278053981, - -190.40821422230113 - ], - [ - 41.427723277698874, - -175.271162553267 - ], - [ - 43.02112926136368, - -145.79373446377838 - ], - [ - 43.02112926136368, - -84.4488525390625 - ], - [ - 43.02112926136368, - -42.22439852627838 - ], - [ - 43.02112926136368, - -7.170132723721508 - ], - [ - 46.2078857421875, - 19.120538884943244 - ], - [ - 49.39458673650569, - 33.46091530539775 - ], - [ - 50.987992720170496, - 37.44434703480124 - ], - [ - 52.58134321732962, - 35.05426580255687 - ], - [ - 52.58134321732962, - 25.493996360085248 - ], - [ - 52.58134321732962, - 7.9669189453125 - ], - [ - 51.78466796875, - -17.527077414772634 - ], - [ - 54.17474920099437, - -60.54820667613626 - ], - [ - 58.95485617897725, - -86.83882279829538 - ], - [ - 62.938287908380744, - -111.53619939630676 - ], - [ - 67.71845037286937, - -134.640059037642 - ], - [ - 72.49855735085225, - -156.947354403409 - ], - [ - 77.27866432883525, - -178.45786354758513 - ], - [ - 78.07533957741475, - -181.64467551491475 - ], - [ - 78.07533957741475, - -177.66124378551126 - ], - [ - 78.8720703125, - -172.88113680752838 - ], - [ - 78.8720703125, - -169.6943803267045 - ], - [ - 78.8720703125, - -169.6943803267045 - ] - ], - "pressures": [ - 0.091796875, - 0.1376953125, - 0.244140625, - 0.4921875, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.404296875, - 0.181640625, - 0.0556640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.8720703125, - -169.6943803267045 - ] - }, - { - "id": "Kj4zUVfLo4dsW6lkQ4rK5", - "type": "freedraw", - "x": -61.03307788402981, - "y": 318.1436650660142, - "width": 51.78466796875, - "height": 195.18837668678987, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 390419917, - "version": 275, - "versionNonce": 200859565, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.593350497159122 - ], - [ - 0, - 0.7967307350852479 - ], - [ - 0.7967307350852479, - -5.57683771306813 - ], - [ - 0.7967307350852479, - -15.137051669034008 - ], - [ - 0.7967307350852479, - -33.460915305397634 - ], - [ - 0.7967307350852479, - -45.41121049360788 - ], - [ - 0.7967307350852479, - -58.158180930397634 - ], - [ - 0.7967307350852479, - -73.29523259943176 - ], - [ - 2.390081232244313, - -92.415771484375 - ], - [ - 5.576837713068187, - -115.51968661221588 - ], - [ - 10.356944691051126, - -144.200439453125 - ], - [ - 12.747025923295439, - -153.76065340909088 - ], - [ - 12.747025923295439, - -157.74408513849426 - ], - [ - 12.747025923295439, - -160.13416637073863 - ], - [ - 13.543701171875, - -159.337491122159 - ], - [ - 15.137051669034122, - -150.573896928267 - ], - [ - 19.1204833984375, - -132.25014426491475 - ], - [ - 22.307239879261374, - -108.34949840198863 - ], - [ - 26.290671608664752, - -80.46542080965901 - ], - [ - 35.05426580255681, - -29.477428089488626 - ], - [ - 40.63104802911937, - 1.593350497159122 - ], - [ - 45.411210493607996, - 23.10391512784099 - ], - [ - 49.394642223011374, - 34.25753506747162 - ], - [ - 50.19131747159088, - 35.05421031605124 - ], - [ - 50.987992720170496, - 31.070778586647748 - ], - [ - 50.987992720170496, - 22.307239879261374 - ], - [ - 50.987992720170496, - 9.560213955965992 - ], - [ - 50.987992720170496, - -18.323808149857882 - ], - [ - 50.987992720170496, - -40.631048029119256 - ], - [ - 50.987992720170496, - -63.73501864346588 - ], - [ - 50.987992720170496, - -96.39920321377838 - ], - [ - 50.987992720170496, - -117.113037109375 - ], - [ - 50.987992720170496, - -133.84349476207376 - ], - [ - 51.78466796875, - -146.59046519886363 - ], - [ - 51.78466796875, - -153.76065340909088 - ], - [ - 51.78466796875, - -156.15073464133513 - ], - [ - 51.78466796875, - -150.573896928267 - ], - [ - 51.78466796875, - -137.82692649147725 - ], - [ - 51.78466796875, - -135.43684525923288 - ], - [ - 51.78466796875, - -135.43684525923288 - ] - ], - "pressures": [ - 0.1064453125, - 0.6826171875, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1611328125, - 0.0849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 51.78466796875, - -135.43684525923288 - ] - }, - { - "id": "S-17EyXM5VDVAjKKij_1s", - "type": "freedraw", - "x": -56.25291541954118, - "y": 299.0231816675767, - "width": 71.701826615767, - "height": 170.49100008877838, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1139794467, - "version": 248, - "versionNonce": 1383752205, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 68.51507013494324, - 11.153564453125 - ], - [ - 71.701826615767, - -19.917158647017004 - ], - [ - 71.701826615767, - -41.427778764204504 - ], - [ - 69.31180087002838, - -63.734963156960134 - ], - [ - 67.71839488636363, - -84.44890802556813 - ], - [ - 66.1250443892045, - -114.72301136363626 - ], - [ - 66.1250443892045, - -133.84349476207376 - ], - [ - 66.1250443892045, - -142.60708895596588 - ], - [ - 66.1250443892045, - -155.35400390625 - ], - [ - 66.1250443892045, - -158.5408158735795 - ], - [ - 66.1250443892045, - -159.33743563565338 - ], - [ - 66.1250443892045, - -158.5408158735795 - ], - [ - 66.92171963778412, - -155.35400390625 - ], - [ - 66.92171963778412, - -149.77727716619313 - ], - [ - 66.92171963778412, - -147.38714044744313 - ], - [ - 66.1250443892045, - -144.9971147017045 - ], - [ - 66.1250443892045, - -144.9971147017045 - ] - ], - "pressures": [ - 0.1982421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8427734375, - 0.3583984375, - 0.2275390625, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.1250443892045, - -144.9971147017045 - ] - }, - { - "id": "Y_0_nqz0Pv8mYfmymXcIy", - "type": "freedraw", - "x": -51.472808441558186, - "y": 295.83642518675293, - "width": 61.34493741122162, - "height": 180.05126953125, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 205180547, - "version": 269, - "versionNonce": 1918783811, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - -1.593405983664809, - -2.39008123224437 - ], - [ - -3.983431729403435, - -9.560269442471622 - ], - [ - -5.576837713068187, - -20.713833895596622 - ], - [ - -6.373512961647748, - -35.05426580255687 - ], - [ - -5.576837713068187, - -50.987992720170496 - ], - [ - -3.983431729403435, - -75.68531383167624 - ], - [ - -3.186756480823874, - -95.60252796519887 - ], - [ - -0.796675248579561, - -114.72301136363637 - ], - [ - 2.390081232244313, - -129.8600630326705 - ], - [ - 6.373512961647691, - -144.20038396661937 - ], - [ - 7.966863458806813, - -147.38719593394887 - ], - [ - 7.966863458806813, - -148.18381569602275 - ], - [ - 10.356944691051126, - -141.01368297230124 - ], - [ - 16.73040216619313, - -112.33287464488637 - ], - [ - 22.307239879261317, - -82.05882679332387 - ], - [ - 28.680752840909065, - -49.394642223011374 - ], - [ - 34.25753506747151, - -19.120538884943244 - ], - [ - 39.83437278053975, - 5.5767822265625 - ], - [ - 47.80123623934651, - 27.08740234375 - ], - [ - 50.98799272017038, - 31.070834073153378 - ], - [ - 52.581343217329504, - 31.867453835227252 - ], - [ - 53.37801846590901, - 28.680697354403378 - ], - [ - 53.37801846590901, - 19.12053888494313 - ], - [ - 51.78466796875, - -6.373512961647748 - ], - [ - 51.78466796875, - -30.274158824573874 - ], - [ - 52.581343217329504, - -54.971424449573874 - ], - [ - 54.174749200994256, - -74.88863858309662 - ], - [ - 54.971424449573874, - -98.78922895951712 - ], - [ - 54.174749200994256, - -113.12960537997162 - ], - [ - 53.37801846590901, - -124.28322531960237 - ], - [ - 53.37801846590901, - -131.45341352982962 - ], - [ - 53.37801846590901, - -134.6401700106535 - ], - [ - 53.37801846590901, - -135.436845259233 - ], - [ - 54.174749200994256, - -133.04681951349437 - ], - [ - 54.971424449573874, - -129.8600630326705 - ], - [ - 54.971424449573874, - -128.26665704900574 - ], - [ - 54.971424449573874, - -128.26665704900574 - ] - ], - "pressures": [ - 0.0390625, - 0.07421875, - 0.58984375, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2626953125, - 0.0703125, - 0.0302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.971424449573874, - -128.26665704900574 - ] - }, - { - "id": "YY3jQPIPUUBGl8ynS9_I9", - "type": "freedraw", - "x": 25.805855887277062, - "y": -47.535850425818126, - "width": 288.40082341974426, - "height": 45.41115500710231, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 902696707, - "version": 288, - "versionNonce": 643602541, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -15.93372691761374, - 1.593378240411937 - ], - [ - -19.1204833984375, - 2.390081232244313 - ], - [ - -21.51056463068187, - 2.390081232244313 - ], - [ - -21.51056463068187, - 0 - ], - [ - -19.1204833984375, - -4.780106977982939 - ], - [ - -12.746970436789866, - -8.763538707386374 - ], - [ - -1.593350497159122, - -11.153619939630687 - ], - [ - 15.137051669034008, - -11.153619939630687 - ], - [ - 41.42772327769876, - -7.170188210227252 - ], - [ - 91.61904074928975, - 0 - ], - [ - 127.46998180042613, - 3.98345947265625 - ], - [ - 162.52435857599426, - 5.576809969815315 - ], - [ - 195.18837668678975, - 7.170188210227252 - ], - [ - 238.20961692116475, - 10.356944691051126 - ], - [ - 258.1268310546874, - 11.153619939630687 - ], - [ - 266.8902587890624, - 11.153619939630687 - ], - [ - 266.8902587890624, - 10.356944691051126 - ], - [ - 258.1268310546874, - 6.373512961647748 - ], - [ - 231.83599298650563, - -1.593378240411937 - ], - [ - 207.13872736150563, - -9.56024169921875 - ], - [ - 176.8646240234375, - -16.730402166193187 - ], - [ - 144.99705921519876, - -21.510536887428998 - ], - [ - 97.9925537109375, - -24.697265625 - ], - [ - 70.9051513671875, - -26.290671608664752 - ], - [ - 48.597911487926126, - -27.88404984907669 - ], - [ - 31.070778586647634, - -30.274103338068187 - ], - [ - 21.510564630681756, - -32.664156827059685 - ], - [ - 16.73045765269876, - -34.25753506747162 - ], - [ - 20.713889382102252, - -32.664156827059685 - ], - [ - 33.460859818892004, - -28.680697354403435 - ], - [ - 64.53163840553975, - -19.917186390269876 - ], - [ - 90.82236550071013, - -15.933726917613626 - ], - [ - 121.09646883877838, - -11.950295188210248 - ], - [ - 153.7607088955965, - -7.966863458806813 - ], - [ - 185.62816273082376, - -3.186728737571002 - ], - [ - 219.88575328480113, - -1.593378240411937 - ], - [ - 227.05594149502838, - -3.186728737571002 - ], - [ - 223.07245427911926, - -6.373485218394876 - ], - [ - 207.13872736150563, - -11.153619939630687 - ], - [ - 182.44146173650563, - -15.137051669034122 - ], - [ - 133.84349476207376, - -20.713833895596622 - ], - [ - 97.19587846235788, - -23.103915127840935 - ], - [ - 63.734963156960134, - -24.697265625 - ], - [ - 34.25753506747151, - -24.697265625 - ], - [ - 3.1867564808237603, - -22.307239879261374 - ], - [ - -7.96686345880687, - -20.713833895596622 - ], - [ - -11.950295188210248, - -20.713833895596622 - ], - [ - -10.35694469105124, - -20.713833895596622 - ], - [ - 2.390081232244256, - -18.32380814985794 - ], - [ - 18.323808149857882, - -16.730402166193187 - ], - [ - 41.42772327769876, - -14.340348677201689 - ], - [ - 70.10847611860788, - -11.950295188210248 - ], - [ - 102.77271617542613, - -11.153619939630687 - ], - [ - 149.7772216796875, - -13.543673428622185 - ], - [ - 176.06794877485788, - -15.137051669034122 - ], - [ - 192.79835094105113, - -15.137051669034122 - ], - [ - 202.35867587002838, - -13.543673428622185 - ], - [ - 199.17186390269876, - -9.56024169921875 - ], - [ - 199.17186390269876, - -9.56024169921875 - ] - ], - "pressures": [ - 0.0830078125, - 0.162109375, - 0.1962890625, - 0.29296875, - 0.43359375, - 0.6904296875, - 0.953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.48828125, - 0.1171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 199.17186390269876, - -9.56024169921875 - ] - }, - { - "id": "dptIi2w_SLMdFyD6SxCqn", - "type": "freedraw", - "x": -22.79205560064912, - "y": -58.68947036544881, - "width": 358.50929953835225, - "height": 31.867481578480124, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1291143971, - "version": 249, - "versionNonce": 1839804643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.170188210227252, - 0 - ], - [ - -11.153619939630687, - -1.593350497159065 - ], - [ - -14.340376420454561, - -2.390053488991498 - ], - [ - -14.340376420454561, - -3.186728737571002 - ], - [ - -11.153619939630687, - -4.780106977982939 - ], - [ - 3.186756480823817, - -5.5767822265625 - ], - [ - 19.120483398437443, - -5.5767822265625 - ], - [ - 41.42772327769882, - -5.5767822265625 - ], - [ - 69.31180087002843, - -7.170188210227252 - ], - [ - 104.36601118607956, - -9.560213955965935 - ], - [ - 144.99711470170456, - -10.356916947798311 - ], - [ - 211.12227006392044, - -7.170188210227252 - ], - [ - 252.5498268821023, - 1.593378240411937 - ], - [ - 286.01074218749994, - 12.746998180042624 - ], - [ - 321.8616832386363, - 21.510564630681813 - ], - [ - 336.20205965909093, - 21.510564630681813 - ], - [ - 342.57568359374994, - 19.917186390269876 - ], - [ - 344.1689231178977, - 19.120511141690315 - ], - [ - 340.9821111505682, - 18.32380814985794 - ], - [ - 340.9821111505682, - 18.32380814985794 - ] - ], - "pressures": [ - 0.0947265625, - 0.1171875, - 0.1533203125, - 0.18359375, - 0.2119140625, - 0.2119140625, - 0.240234375, - 0.2919921875, - 0.384765625, - 0.5478515625, - 0.73828125, - 0.9189453125, - 1, - 1, - 0.796875, - 0.4111328125, - 0.3662109375, - 0.1728515625, - 0.1318359375, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 340.9821111505682, - 18.32380814985794 - ] - }, - { - "id": "So6mQEJsiekXWy0s3NjAP", - "type": "freedraw", - "x": -58.642996651785495, - "y": 310.9735323422927, - "width": 75.68531383167618, - "height": 167.30435458096588, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1706225283, - "version": 272, - "versionNonce": 23659213, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796675248579561, - 0 - ], - [ - 1.593350497159122, - -3.186811967329618 - ], - [ - 3.186756480823874, - -12.747081409801126 - ], - [ - 7.170188210227309, - -35.0543212890625 - ], - [ - 10.356944691051126, - -52.58145419034099 - ], - [ - 13.543701171875, - -69.31185635653412 - ], - [ - 16.730402166193187, - -85.24563876065349 - ], - [ - 19.91715864701706, - -113.12966086647725 - ], - [ - 22.307239879261374, - -129.06344327059662 - ], - [ - 23.90059037642044, - -136.23363148082387 - ], - [ - 24.697321111505687, - -137.826981977983 - ], - [ - 25.493996360085248, - -137.826981977983 - ], - [ - 27.087346857244313, - -125.87668678977275 - ], - [ - 29.477428089488626, - -105.95947265625 - ], - [ - 31.070778586647748, - -76.48204456676137 - ], - [ - 31.86750932173294, - -43.02118474786937 - ], - [ - 32.6641845703125, - -1.5934614701704959 - ], - [ - 35.054210316051126, - 12.746914950284008 - ], - [ - 38.24096679687506, - 18.323752663352252 - ], - [ - 40.63104802911931, - 19.120427911931756 - ], - [ - 43.02112926136368, - 19.120427911931756 - ], - [ - 45.41115500710231, - 10.356889204545382 - ], - [ - 45.41115500710231, - -7.170243696732996 - ], - [ - 47.00456099076706, - -32.664240056818244 - ], - [ - 48.59791148792618, - -58.954911665482996 - ], - [ - 52.58134321732956, - -89.22907049005687 - ], - [ - 54.17474920099431, - -104.36612215909099 - ], - [ - 54.97142444957382, - -118.7064985795455 - ], - [ - 57.36150568181819, - -132.25014426491475 - ], - [ - 60.54820667613632, - -142.607088955966 - ], - [ - 62.93828790838069, - -148.18392666903412 - ], - [ - 63.73496315696019, - -147.38719593394887 - ], - [ - 65.32836914062506, - -136.23363148082387 - ], - [ - 66.92171963778407, - -117.90982333096599 - ], - [ - 66.92171963778407, - -92.41582697088074 - ], - [ - 67.71839488636368, - -62.14166814630687 - ], - [ - 70.10847611860794, - -34.257646040482996 - ], - [ - 74.09190784801132, - -0.7967862215909918 - ], - [ - 75.68531383167618, - 11.950295188210248 - ], - [ - 75.68531383167618, - 15.136996182528378 - ], - [ - 75.68531383167618, - 11.153564453125 - ], - [ - 74.09190784801132, - 4.780051491477252 - ], - [ - 74.09190784801132, - 4.780051491477252 - ] - ], - "pressures": [ - 0.14453125, - 0.212890625, - 0.5791015625, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3115234375, - 0.12890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 74.09190784801132, - 4.780051491477252 - ] - }, - { - "id": "g5NYxhJ0PkauQ7vw5KHGW", - "type": "freedraw", - "x": -54.65956492238206, - "y": 310.9735323422927, - "width": 61.34493741122162, - "height": 192.7982954545455, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1334658563, - "version": 268, - "versionNonce": 1740053635, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982939, - 6.373401988636374 - ], - [ - 5.576837713068187, - 6.373401988636374 - ], - [ - 5.576837713068187, - 5.576726740056756 - ], - [ - 4.780106977982939, - 0.796619762073874 - ], - [ - 3.983431729403378, - -8.763649680397748 - ], - [ - 3.983431729403378, - -25.49405184659099 - ], - [ - 4.780106977982939, - -36.64767178622162 - ], - [ - 7.170188210227252, - -52.58145419034099 - ], - [ - 10.356944691051126, - -73.2952880859375 - ], - [ - 15.933726917613626, - -113.92633611505687 - ], - [ - 20.713889382102252, - -139.42033247514212 - ], - [ - 24.697321111505687, - -159.33749112215912 - ], - [ - 26.290671608664752, - -172.08451704545462 - ], - [ - 27.087346857244313, - -180.84811123934662 - ], - [ - 27.087346857244313, - -186.42489346590912 - ], - [ - 27.087346857244313, - -185.62821821732962 - ], - [ - 28.680752840909065, - -174.47459827769887 - ], - [ - 31.07077858664769, - -151.37062766335225 - ], - [ - 35.054265802556756, - -108.34955388849437 - ], - [ - 38.240966796875, - -75.68531383167613 - ], - [ - 40.631048029119256, - -43.02118474786937 - ], - [ - 43.021129261363626, - -16.730513139204618 - ], - [ - 45.41115500710225, - -2.39013671875 - ], - [ - 46.2078857421875, - 1.593295010653378 - ], - [ - 48.597911487926126, - -2.39013671875 - ], - [ - 50.98799272017038, - -12.747081409801126 - ], - [ - 53.37807395241475, - -30.274214311079618 - ], - [ - 57.36150568181813, - -70.90526234019887 - ], - [ - 59.751531427556756, - -101.17936567826712 - ], - [ - 61.34493741122162, - -124.283280806108 - ], - [ - 61.34493741122162, - -138.6236572265625 - ], - [ - 59.751531427556756, - -147.38719593394887 - ], - [ - 56.56477494673288, - -156.150790127841 - ], - [ - 54.971424449573874, - -160.93089710582387 - ], - [ - 53.37807395241475, - -164.11765358664775 - ], - [ - 53.37807395241475, - -164.91432883522725 - ], - [ - 53.37807395241475, - -161.72762784090912 - ], - [ - 53.37807395241475, - -160.13422185724437 - ], - [ - 53.37807395241475, - -160.13422185724437 - ] - ], - "pressures": [ - 0.0830078125, - 0.21484375, - 0.2578125, - 0.7421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9169921875, - 0.1572265625, - 0.0908203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.37807395241475, - -160.13422185724437 - ] - }, - { - "id": "jkCkvWV5X9k0cHr2xFY2n", - "type": "freedraw", - "x": -237.10097117238206, - "y": -119.237704784838, - "width": 96.39914772727275, - "height": 19.120511141690315, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 48191437, - "version": 224, - "versionNonce": 155140867, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - 0.796702991832376 - ], - [ - 3.186756480823874, - 2.390053488991441 - ], - [ - 10.356944691051126, - 5.576809969815315 - ], - [ - 20.713889382102252, - 7.966891202059628 - ], - [ - 35.05426580255681, - 9.56024169921875 - ], - [ - 57.361561168323874, - 8.763566450639189 - ], - [ - 68.51512562144887, - 7.966891202059628 - ], - [ - 76.48198908025569, - 7.966891202059628 - ], - [ - 84.4488525390625, - 9.56024169921875 - ], - [ - 92.41571599786931, - 14.340376420454504 - ], - [ - 94.80579723011363, - 16.730429909446002 - ], - [ - 95.60247247869319, - 18.32380814985794 - ], - [ - 95.60247247869319, - 19.120511141690315 - ], - [ - 93.2124467329545, - 19.120511141690315 - ], - [ - 91.61904074928975, - 17.527132901278378 - ], - [ - 91.61904074928975, - 17.527132901278378 - ] - ], - "pressures": [ - 0.1171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90234375, - 0.1796875, - 0, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 91.61904074928975, - 17.527132901278378 - ] - }, - { - "id": "xUmW-gIJGk8TMnDwPbWQ8", - "type": "freedraw", - "x": -233.9142146915582, - "y": -121.6277582738295, - "width": 94.00906649502843, - "height": 15.137079412286937, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1961325485, - "version": 226, - "versionNonce": 529310381, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - -0.796702991832376 - ], - [ - -4.780106977982996, - -0.796702991832376 - ], - [ - -3.983431729403435, - 0 - ], - [ - 2.39013671875, - 3.186756480823874 - ], - [ - 7.170188210227252, - 5.576837713068187 - ], - [ - 30.274158824573817, - 11.950295188210248 - ], - [ - 47.801236239346565, - 11.950295188210248 - ], - [ - 64.53169389204544, - 11.153619939630687 - ], - [ - 79.6687455610795, - 9.560269442471622 - ], - [ - 84.4488525390625, - 10.356944691051126 - ], - [ - 87.63560901988632, - 12.746998180042624 - ], - [ - 88.43228426846588, - 13.543701171875 - ], - [ - 89.22895951704544, - 14.340376420454561 - ], - [ - 88.43228426846588, - 13.543701171875 - ], - [ - 85.245527787642, - 12.746998180042624 - ], - [ - 83.65217729048294, - 12.746998180042624 - ], - [ - 82.85550204190338, - 12.746998180042624 - ], - [ - 82.85550204190338, - 12.746998180042624 - ] - ], - "pressures": [ - 0.046875, - 0.3564453125, - 0.861328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2587890625, - 0.1474609375, - 0.0654296875, - 0.0078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 82.85550204190338, - 12.746998180042624 - ] - }, - { - "id": "WqBck0tc_neH2lM7kbe_7", - "type": "freedraw", - "x": -225.94735123275137, - "y": -124.017811762821, - "width": 3.983431729403435, - "height": 0, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1500424685, - "version": 211, - "versionNonce": 1728440995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.983431729403435, - 0 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.06640625, - 0.2314453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983431729403435, - 0 - ] - }, - { - "id": "MsECNEi4aj2zL5LXGk7_g", - "type": "freedraw", - "x": -229.9307829621548, - "y": -124.017811762821, - "width": 88.43228426846593, - "height": 16.73042990944606, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1180220067, - "version": 209, - "versionNonce": 1688061197, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 88.43228426846593, - 16.73042990944606 - ], - [ - 88.43228426846593, - 16.73042990944606 - ] - ], - "pressures": [ - 0.4912109375, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 88.43228426846593, - 16.73042990944606 - ] - }, - { - "id": "0AZHLPvCmiSBKULEffpyU", - "type": "freedraw", - "x": -214.7937312931207, - "y": -117.64432654442606, - "width": 61.34488192471588, - "height": 6.373512961647691, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2021689645, - "version": 221, - "versionNonce": 282500675, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186756480823874, - 0 - ], - [ - -5.5767822265625, - 0 - ], - [ - -4.780051491477309, - 0 - ], - [ - -1.593350497159122, - 0 - ], - [ - 4.780162464488626, - 0 - ], - [ - 13.543701171875, - 0.7966752485795041 - ], - [ - 23.103970614346565, - 3.186756480823817 - ], - [ - 37.44429154829544, - 4.780134721235754 - ], - [ - 45.41121049360794, - 4.780134721235754 - ], - [ - 50.988048206676126, - 5.576837713068187 - ], - [ - 53.37807395241475, - 5.576837713068187 - ], - [ - 54.971479936079504, - 6.373512961647691 - ], - [ - 55.76809969815338, - 6.373512961647691 - ], - [ - 55.76809969815338, - 6.373512961647691 - ] - ], - "pressures": [ - 0.0390625, - 0.1171875, - 0.31640625, - 0.6904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3681640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 55.76809969815338, - 6.373512961647691 - ] - }, - { - "id": "jZbM8l4YorC_gJy6StMHc", - "type": "freedraw", - "x": -218.77716302252412, - "y": -124.81451475465337, - "width": 71.701826615767, - "height": 15.933726917613626, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1530767021, - "version": 221, - "versionNonce": 68918125, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780051491477252, - -0.7966752485795041 - ], - [ - -3.983431729403378, - -0.7966752485795041 - ], - [ - 1.593405983664752, - 0 - ], - [ - 9.560269442471622, - 1.593378240411937 - ], - [ - 23.103970614346622, - 3.983431729403435 - ], - [ - 31.86750932173294, - 5.576809969815372 - ], - [ - 39.037753018465935, - 7.170188210227309 - ], - [ - 46.2078857421875, - 9.56024169921875 - ], - [ - 53.37807395241475, - 11.950322931463063 - ], - [ - 60.54826216264206, - 14.340376420454561 - ], - [ - 64.53169389204544, - 15.137051669034122 - ], - [ - 66.12504438920456, - 15.137051669034122 - ], - [ - 66.92177512428975, - 15.137051669034122 - ], - [ - 66.92177512428975, - 15.137051669034122 - ] - ], - "pressures": [ - 0.0478515625, - 0.3330078125, - 0.8427734375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.94921875, - 0.4619140625, - 0.22265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 66.92177512428975, - 15.137051669034122 - ] - }, - { - "id": "xvp0YqVkUp9xHESXJ9zET", - "type": "freedraw", - "x": -179.7394100040582, - "y": -135.9681069510312, - "width": 31.867453835227252, - "height": 25.49402410333812, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1499595821, - "version": 228, - "versionNonce": 294641123, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593405983664809 - ], - [ - 0, - -0.796702991832376 - ], - [ - -1.5934614701704959, - 2.390025745738626 - ], - [ - -3.983431729403435, - 7.966863458806813 - ], - [ - -6.373568448153435, - 14.340348677201689 - ], - [ - -10.357000177556813, - 21.51053688742894 - ], - [ - -11.153675426136374, - 23.90061811967331 - ], - [ - -7.170243696732996, - 20.713833895596565 - ], - [ - -1.5934614701704959, - 16.730402166193187 - ], - [ - 3.983431729403378, - 14.340348677201689 - ], - [ - 9.560158469460191, - 12.746970436789752 - ], - [ - 13.543645685369313, - 12.746970436789752 - ], - [ - 17.52707741477269, - 11.950295188210191 - ], - [ - 19.120427911931813, - 11.950295188210191 - ], - [ - 19.917158647017004, - 11.950295188210191 - ], - [ - 20.713778409090878, - 12.746970436789752 - ], - [ - 20.713778409090878, - 13.543645685369313 - ], - [ - 19.917158647017004, - 14.340348677201689 - ], - [ - 18.323752663352252, - 14.340348677201689 - ], - [ - 18.323752663352252, - 15.13702392578125 - ], - [ - 18.323752663352252, - 15.13702392578125 - ] - ], - "pressures": [ - 0.0341796875, - 0.609375, - 0.9345703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.16015625, - 0.1015625, - 0.0537109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 18.323752663352252, - 15.13702392578125 - ] - }, - { - "id": "L2ymXGKgJKZlRfbeGiG5j", - "type": "freedraw", - "x": -170.9759267831775, - "y": -136.76480994286356, - "width": 31.86750932173294, - "height": 15.137051669034065, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 96221827, - "version": 212, - "versionNonce": 1984931277, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 31.86750932173294, - 11.153619939630687 - ], - [ - 31.86750932173294, - 11.950295188210191 - ], - [ - 31.86750932173294, - 13.543673428622128 - ], - [ - 31.070889559659065, - 15.137051669034065 - ], - [ - 31.070889559659065, - 15.137051669034065 - ] - ], - "pressures": [ - 0.0947265625, - 1, - 0.2978515625, - 0.1650390625, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.070889559659065, - 15.137051669034065 - ] - }, - { - "id": "70tAZIyGs_w20jseHvFXE", - "type": "freedraw", - "x": -159.0256315949673, - "y": -145.5283763935028, - "width": 35.850941051136374, - "height": 34.25759055397731, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 799285453, - "version": 229, - "versionNonce": 339749251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796619762073874, - -0.796702991832376 - ], - [ - -2.390025745738626, - 1.593405983664809 - ], - [ - -3.983431729403378, - 7.170188210227309 - ], - [ - -10.356889204545439, - 18.323808149857996 - ], - [ - -14.340320933948874, - 25.494024103338063 - ], - [ - -16.7303466796875, - 30.274103338068187 - ], - [ - -17.52707741477269, - 32.6641845703125 - ], - [ - -18.32380814985794, - 33.46088756214493 - ], - [ - -18.32380814985794, - 32.6641845703125 - ], - [ - -15.137051669034065, - 30.274103338068187 - ], - [ - -9.560213955965878, - 26.29067160866481 - ], - [ - 1.593405983664809, - 22.307239879261374 - ], - [ - 7.9669189453125, - 21.510564630681813 - ], - [ - 11.950350674715935, - 20.713861638849437 - ], - [ - 14.340376420454561, - 20.713861638849437 - ], - [ - 15.933782404119313, - 20.713861638849437 - ], - [ - 17.527132901278435, - 21.510564630681813 - ], - [ - 17.527132901278435, - 22.307239879261374 - ], - [ - 17.527132901278435, - 23.103915127840935 - ], - [ - 16.730457652698874, - 24.697293368252872 - ], - [ - 15.933782404119313, - 24.697293368252872 - ], - [ - 15.933782404119313, - 24.697293368252872 - ] - ], - "pressures": [ - 0.052734375, - 0.146484375, - 0.4404296875, - 0.4921875, - 0.6513671875, - 0.7568359375, - 0.857421875, - 0.9169921875, - 0.9384765625, - 0.970703125, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.876953125, - 0.2978515625, - 0.150390625, - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.933782404119313, - 24.697293368252872 - ] - }, - { - "id": "-WYxk8ay9gX7hn0EFggbh", - "type": "freedraw", - "x": -187.706273462865, - "y": -131.18799997304825, - "width": 20.713944868607996, - "height": 20.713833895596565, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1420424525, - "version": 227, - "versionNonce": 1850958893, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967862215909349, - -3.186756480823874 - ], - [ - -0.7967862215909349, - -4.780106977982939 - ], - [ - -0.7967862215909349, - 3.186756480823874 - ], - [ - -1.5934614701704959, - 8.763538707386374 - ], - [ - -2.39013671875, - 12.746998180042624 - ], - [ - -2.39013671875, - 15.137079412286937 - ], - [ - -2.39013671875, - 15.933726917613626 - ], - [ - -3.983487215909122, - 15.137079412286937 - ], - [ - -6.373568448153435, - 12.746998180042624 - ], - [ - -8.763649680397748, - 11.153647682883502 - ], - [ - -11.950350674715935, - 9.56024169921875 - ], - [ - -15.137162642045496, - 7.966863458806813 - ], - [ - -17.527188387784122, - 7.170188210227252 - ], - [ - -19.917214133522748, - 6.373485218394876 - ], - [ - -20.713944868607996, - 6.373485218394876 - ], - [ - -19.917214133522748, - 7.170188210227252 - ], - [ - -19.120594371448874, - 7.966863458806813 - ], - [ - -18.323863636363683, - 8.763538707386374 - ], - [ - -17.527188387784122, - 8.763538707386374 - ], - [ - -15.93378240411937, - 11.153647682883502 - ], - [ - -15.93378240411937, - 11.153647682883502 - ] - ], - "pressures": [ - 0.068359375, - 0.1875, - 0.2177734375, - 0.8701171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5771484375, - 0.3125, - 0.1982421875, - 0.1767578125, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.93378240411937, - 11.153647682883502 - ] - }, - { - "id": "G7wGdoeMKiT3bANPGQOS3", - "type": "freedraw", - "x": -206.82686783431387, - "y": -126.40789299506531, - "width": 23.90059037642044, - "height": 14.340376420454504, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1339963875, - "version": 213, - "versionNonce": 1579548963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390025745738626, - -0.7966752485795041 - ], - [ - -1.593350497159122, - 0 - ], - [ - 2.390081232244313, - 3.186756480823874 - ], - [ - 7.170243696732939, - 6.373540704900563 - ], - [ - 13.543701171875, - 11.153619939630687 - ], - [ - 17.527132901278378, - 11.950322931463063 - ], - [ - 19.91721413352269, - 12.746998180042624 - ], - [ - 20.713889382102252, - 12.746998180042624 - ], - [ - 21.510564630681813, - 12.746998180042624 - ], - [ - 20.713889382102252, - 13.543701171875 - ], - [ - 19.120594371448874, - 13.543701171875 - ], - [ - 19.120594371448874, - 13.543701171875 - ] - ], - "pressures": [ - 0.013671875, - 0.251953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5087890625, - 0.2080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 19.120594371448874, - 13.543701171875 - ] - }, - { - "id": "pay9A4KvuvKOsVmt5-ihb", - "type": "freedraw", - "x": -216.3870817902798, - "y": -130.3913247244687, - "width": 31.86745383522731, - "height": 16.730429909446002, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1037634275, - "version": 214, - "versionNonce": 1070733, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -0.796675248579561 - ], - [ - 3.186756480823874, - 0.796675248579561 - ], - [ - 7.170188210227309, - 2.390081232244313 - ], - [ - 11.950295188210248, - 4.780134721235811 - ], - [ - 15.933726917613626, - 7.966863458806813 - ], - [ - 21.510564630681813, - 10.356972434303941 - ], - [ - 24.697321111505687, - 11.950322931463063 - ], - [ - 27.884022105823874, - 13.543673428622128 - ], - [ - 30.274103338068187, - 15.137051669034065 - ], - [ - 31.070778586647748, - 15.933754660866441 - ], - [ - 30.274103338068187, - 15.933754660866441 - ], - [ - 28.68080832741481, - 15.933754660866441 - ], - [ - 28.68080832741481, - 15.933754660866441 - ] - ], - "pressures": [ - 0.048828125, - 0.8369140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.306640625, - 0.126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.68080832741481, - 15.933754660866441 - ] - }, - { - "id": "bLiXPwLOBIwOpedpyEhwW", - "type": "freedraw", - "x": -194.07984191101843, - "y": -116.84765129584656, - "width": 20.71388938210231, - "height": 76.48198908025569, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1726554477, - "version": 206, - "versionNonce": 145745091, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.763594193892061, - 37.44431929154831 - ], - [ - 3.983431729403435, - 60.54826216264206 - ], - [ - 8.763538707386374, - 68.51512562144887 - ], - [ - 11.153619939630687, - 74.09193559126425 - ], - [ - 11.950295188210248, - 76.48198908025569 - ], - [ - 11.950295188210248, - 75.68531383167618 - ], - [ - 11.153619939630687, - 71.70188210227275 - ], - [ - 9.560269442471565, - 68.51512562144887 - ], - [ - 9.560269442471565, - 68.51512562144887 - ] - ], - "pressures": [ - 0.1337890625, - 1, - 1, - 1, - 0.609375, - 0.50390625, - 0.267578125, - 0.1455078125, - 0.0498046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.560269442471565, - 68.51512562144887 - ] - }, - { - "id": "IQPkhz3wAA_zqghso2sig", - "type": "freedraw", - "x": -203.64005586698437, - "y": -120.03435229016475, - "width": 57.36139470880681, - "height": 106.75609241832387, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 801810755, - "version": 222, - "versionNonce": 104856813, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593405983664752 - ], - [ - -0.7967307350851911, - -3.98345947265625 - ], - [ - -1.593405983664752, - -6.373540704900563 - ], - [ - -4.780162464488626, - -9.56029718572438 - ], - [ - -10.357000177556813, - -12.747025923295439 - ], - [ - -14.340431906960191, - -12.747025923295439 - ], - [ - -18.323863636363626, - -12.747025923295439 - ], - [ - -21.5106201171875, - -12.747025923295439 - ], - [ - -23.90059037642044, - -11.950322931463063 - ], - [ - -27.08740234375, - -10.356972434303941 - ], - [ - -27.884022105823817, - -7.966891202059628 - ], - [ - -27.884022105823817, - -3.186784224076689 - ], - [ - -24.69732111150563, - 4.780079234730124 - ], - [ - -16.730457652698817, - 21.510509144176183 - ], - [ - -10.357000177556813, - 34.25750732421875 - ], - [ - -1.593405983664752, - 48.59788374467331 - ], - [ - 5.5767822265625, - 61.344881924715935 - ], - [ - 11.950295188210248, - 70.90512362393468 - ], - [ - 18.32375266335231, - 79.66869007457387 - ], - [ - 21.510509144176183, - 84.44882479580968 - ], - [ - 23.900645862926183, - 88.43225652521312 - ], - [ - 27.08734685724437, - 92.4156882546165 - ], - [ - 28.680697354403435, - 94.00906649502843 - ], - [ - 29.477372602982996, - 94.00906649502843 - ], - [ - 29.477372602982996, - 94.00906649502843 - ] - ], - "pressures": [ - 0.0166015625, - 0.162109375, - 0.2822265625, - 0.416015625, - 0.8388671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.36328125, - 0.0615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 29.477372602982996, - 94.00906649502843 - ] - }, - { - "id": "uFAK95kFKNGoAph3tvvMi", - "type": "freedraw", - "x": -204.43678660206956, - "y": -120.03435229016475, - "width": 47.801236239346565, - "height": 99.58593195134944, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 565603341, - "version": 219, - "versionNonce": 2071745635, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -3.186784224076689 - ], - [ - -3.983431729403435, - -6.373540704900563 - ], - [ - -7.170132723721622, - -8.763594193892004 - ], - [ - -14.340376420454561, - -13.543728915127815 - ], - [ - -18.32380814985794, - -14.340404163707376 - ], - [ - -20.71388938210231, - -15.137107155539752 - ], - [ - -22.307239879261374, - -14.340404163707376 - ], - [ - -22.307239879261374, - -11.950322931463063 - ], - [ - -19.91715864701706, - 0.7966475053267459 - ], - [ - -15.136996182528435, - 14.340348677201746 - ], - [ - -8.763538707386374, - 29.47740034623581 - ], - [ - -0.796675248579561, - 43.021073774857996 - ], - [ - 9.560269442471565, - 60.548206676136374 - ], - [ - 15.933726917613626, - 70.10844837535512 - ], - [ - 19.91721413352269, - 77.27863658558243 - ], - [ - 23.103915127840878, - 82.05877130681819 - ], - [ - 24.697376598011374, - 83.65212180397731 - ], - [ - 25.49399636008519, - 84.44882479580968 - ], - [ - 25.49399636008519, - 82.05877130681819 - ], - [ - 25.49399636008519, - 79.66869007457387 - ], - [ - 24.697376598011374, - 78.87201482599437 - ], - [ - 24.697376598011374, - 78.87201482599437 - ] - ], - "pressures": [ - 0.0673828125, - 0.564453125, - 0.7890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7587890625, - 0.2001953125, - 0.0849609375, - 0.0068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 24.697376598011374, - 78.87201482599437 - ] - }, - { - "id": "IrQDnQ047Apm6pteAIvKs", - "type": "freedraw", - "x": -192.48649141385937, - "y": -51.51928215522156, - "width": 41.42772327769882, - "height": 35.05426580255681, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1422745741, - "version": 217, - "versionNonce": 1215027021, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.18670099431813, - 0.7967029918324329 - ], - [ - -1.593350497159065, - 2.390053488991498 - ], - [ - 0.7967307350852479, - 4.780134721235811 - ], - [ - 4.78021795099437, - 7.170188210227309 - ], - [ - 8.763649680397748, - 9.56024169921875 - ], - [ - 12.747081409801183, - 11.950322931463063 - ], - [ - 17.527132901278435, - 12.746998180042624 - ], - [ - 25.493996360085248, - 13.543701171875 - ], - [ - 29.477428089488683, - 13.543701171875 - ], - [ - 31.867509321732996, - 10.356944691051183 - ], - [ - 35.05426580255687, - 6.373512961647748 - ], - [ - 36.64767178622162, - 1.593378240411937 - ], - [ - 38.24102228338069, - -7.170188210227252 - ], - [ - 38.24102228338069, - -11.950295188210191 - ], - [ - 38.24102228338069, - -15.933754660866441 - ], - [ - 38.24102228338069, - -19.1204833984375 - ], - [ - 37.44434703480118, - -21.510564630681813 - ], - [ - 36.64767178622162, - -21.510564630681813 - ], - [ - 35.850941051136374, - -21.510564630681813 - ], - [ - 35.05426580255687, - -20.713833895596565 - ], - [ - 35.05426580255687, - -19.917186390269876 - ], - [ - 35.05426580255687, - -19.917186390269876 - ] - ], - "pressures": [ - 0.083984375, - 0.75390625, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3935546875, - 0.1513671875, - 0.115234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.05426580255687, - -19.917186390269876 - ] - }, - { - "id": "X3OtS0Jv4TJVAPFazbK8l", - "type": "freedraw", - "x": -190.096410181615, - "y": -49.12922866623006, - "width": 43.021129261363626, - "height": 6.373512961647748, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1159025955, - "version": 213, - "versionNonce": 643420163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558551, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - 0.796702991832376 - ], - [ - 3.983431729403378, - 1.593378240411937 - ], - [ - 7.170188210227252, - 3.186756480823874 - ], - [ - 11.950295188210191, - 4.780134721235811 - ], - [ - 16.730457652698817, - 5.576837713068187 - ], - [ - 21.510564630681813, - 5.576837713068187 - ], - [ - 26.29072709517044, - 6.373512961647748 - ], - [ - 29.477428089488626, - 6.373512961647748 - ], - [ - 33.460859818892004, - 6.373512961647748 - ], - [ - 37.44429154829544, - 6.373512961647748 - ], - [ - 40.63104802911931, - 6.373512961647748 - ], - [ - 42.224454012784065, - 6.373512961647748 - ], - [ - 43.021129261363626, - 5.576837713068187 - ], - [ - 43.021129261363626, - 4.780134721235811 - ], - [ - 43.021129261363626, - 3.186756480823874 - ], - [ - 41.42772327769882, - 1.593378240411937 - ], - [ - 39.83437278053975, - 0.796702991832376 - ], - [ - 39.83437278053975, - 0.796702991832376 - ] - ], - "pressures": [ - 0.0537109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8955078125, - 0.470703125, - 0.2099609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 39.83437278053975, - 0.796702991832376 - ] - }, - { - "id": "Q2U5Egcfh7c9aTZFIaIib", - "type": "freedraw", - "x": -155.0421443790582, - "y": -115.25427305543462, - "width": 15.933782404119313, - "height": 82.05877130681819, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1123931491, - "version": 215, - "versionNonce": 1626170797, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159065, - -1.593378240411937 - ], - [ - 5.5767822265625, - -3.186728737571002 - ], - [ - 7.966863458806813, - -3.186728737571002 - ], - [ - 10.356889204545439, - -3.186728737571002 - ], - [ - 12.746970436789752, - -3.186728737571002 - ], - [ - 14.340320933948817, - -3.186728737571002 - ], - [ - 15.137107155539752, - -3.186728737571002 - ], - [ - 15.137107155539752, - -0.796647505326689 - ], - [ - 13.543645685369313, - 5.576809969815372 - ], - [ - 9.560213955965878, - 19.917186390269876 - ], - [ - 5.5767822265625, - 31.070834073153435 - ], - [ - 2.390025745738626, - 43.81780450994319 - ], - [ - 0, - 56.56480268998581 - ], - [ - -0.796675248579561, - 71.70188210227275 - ], - [ - -0.796675248579561, - 76.48198908025569 - ], - [ - -0.796675248579561, - 78.87204256924718 - ], - [ - 0, - 78.87204256924718 - ], - [ - 1.593350497159065, - 76.48198908025569 - ], - [ - 3.186756480823817, - 74.09193559126425 - ], - [ - 3.983431729403378, - 70.10850386186081 - ], - [ - 3.983431729403378, - 69.31180087002843 - ], - [ - 3.983431729403378, - 69.31180087002843 - ] - ], - "pressures": [ - 0.0634765625, - 0.712890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.51953125, - 0.2099609375, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.983431729403378, - 69.31180087002843 - ] - }, - { - "id": "n5izyRjSzdDUiz8SeCQKh", - "type": "freedraw", - "x": -155.83881962763775, - "y": -121.6277582738295, - "width": 22.307184392755687, - "height": 90.82236550071025, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1726171213, - "version": 218, - "versionNonce": 2068240291, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796675248579561, - 0 - ], - [ - 2.390025745738626, - -0.796702991832376 - ], - [ - 7.170132723721565, - -1.593378240411937 - ], - [ - 11.153564453125, - -2.390053488991498 - ], - [ - 15.136996182528378, - -3.186756480823874 - ], - [ - 18.323752663352252, - -3.186756480823874 - ], - [ - 21.510509144176126, - -3.186756480823874 - ], - [ - 22.307184392755687, - -2.390053488991498 - ], - [ - 22.307184392755687, - -1.593378240411937 - ], - [ - 22.307184392755687, - 0 - ], - [ - 22.307184392755687, - 3.186756480823874 - ], - [ - 20.713833895596565, - 10.356944691051126 - ], - [ - 18.323752663352252, - 16.730429909446002 - ], - [ - 14.340320933948874, - 24.697293368252872 - ], - [ - 9.560213955965878, - 39.83437278053975 - ], - [ - 5.5767822265625, - 52.581370960582376 - ], - [ - 2.390025745738626, - 64.53166614879262 - ], - [ - 0.796675248579561, - 74.09190784801137 - ], - [ - 0, - 79.66871781782669 - ], - [ - 0, - 83.65217729048294 - ], - [ - 0, - 84.4488525390625 - ], - [ - 0, - 85.24552778764206 - ], - [ - 1.593350497159065, - 86.838906028054 - ], - [ - 2.390025745738626, - 87.63560901988637 - ], - [ - 2.390025745738626, - 87.63560901988637 - ] - ], - "pressures": [ - 0.0439453125, - 0.4208984375, - 0.720703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.48828125, - 0.26171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.390025745738626, - 87.63560901988637 - ] - }, - { - "id": "rDKxkqnQf3pjqxYjY7JpW", - "type": "freedraw", - "x": -206.03013709922868, - "y": -124.017811762821, - "width": 33.46085981889206, - "height": 64.53169389204544, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 693847651, - "version": 214, - "versionNonce": 1659774989, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350851911, - -0.796702991832376 - ], - [ - -2.390081232244313, - -2.390081232244313 - ], - [ - -4.780162464488626, - -3.186756480823817 - ], - [ - -7.9669189453125, - -4.780134721235754 - ], - [ - -10.356944691051126, - -4.780134721235754 - ], - [ - -13.543645685369313, - -4.780134721235754 - ], - [ - -14.340376420454504, - -4.780134721235754 - ], - [ - -15.137107155539752, - -4.780134721235754 - ], - [ - -15.933782404119313, - -2.390081232244313 - ], - [ - -15.933782404119313, - 6.373485218394933 - ], - [ - -14.340376420454504, - 13.543673428622185 - ], - [ - -12.747025923295439, - 21.510536887428998 - ], - [ - -10.356944691051126, - 28.68072509765625 - ], - [ - -7.170188210227252, - 35.850941051136374 - ], - [ - 0, - 45.41115500710231 - ], - [ - 4.780106977982996, - 50.987964976917624 - ], - [ - 9.560213955965935, - 55.76812744140625 - ], - [ - 12.746970436789809, - 58.15815318714493 - ], - [ - 15.933726917613683, - 59.751559170809685 - ], - [ - 17.527077414772748, - 59.751559170809685 - ], - [ - 17.527077414772748, - 59.751559170809685 - ] - ], - "pressures": [ - 0, - 0.50390625, - 0.662109375, - 0.83203125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.61328125, - 0.24609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.527077414772748, - 59.751559170809685 - ] - }, - { - "id": "l-9snTsQ-BxeG9HEUqb60", - "type": "freedraw", - "x": -202.04670536982525, - "y": -121.6277582738295, - "width": 39.03764204545456, - "height": 97.19585071910512, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 250348173, - "version": 214, - "versionNonce": 678554435, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.796702991832376 - ], - [ - 0, - -1.593378240411937 - ], - [ - -0.7967307350852479, - -2.390053488991498 - ], - [ - -2.390081232244313, - -3.186756480823874 - ], - [ - -4.780162464488626, - -3.186756480823874 - ], - [ - -7.966863458806813, - -3.186756480823874 - ], - [ - -10.356944691051126, - -2.390053488991498 - ], - [ - -11.950350674715935, - -1.593378240411937 - ], - [ - -14.340376420454561, - 0.796675248579561 - ], - [ - -15.137051669034122, - 4.780106977982939 - ], - [ - -15.137051669034122, - 12.746998180042624 - ], - [ - -11.950350674715935, - 23.103915127840935 - ], - [ - -7.170188210227252, - 33.460887562144876 - ], - [ - -1.593350497159122, - 43.02110151811081 - ], - [ - 5.5767822265625, - 55.768099698153435 - ], - [ - 9.560213955965878, - 64.53166614879262 - ], - [ - 13.543645685369313, - 73.29523259943181 - ], - [ - 18.323863636363626, - 83.65217729048294 - ], - [ - 20.713833895596565, - 90.02566250887787 - ], - [ - 23.90059037642044, - 94.00909423828125 - ], - [ - 23.90059037642044, - 94.00909423828125 - ] - ], - "pressures": [ - 0.072265625, - 0.212890625, - 0.2509765625, - 0.4541015625, - 0.599609375, - 0.6806640625, - 0.79296875, - 0.83203125, - 0.8408203125, - 0.857421875, - 0.8642578125, - 0.8720703125, - 1, - 1, - 1, - 1, - 1, - 0.9775390625, - 0.70703125, - 0.4052734375, - 0.2080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.90059037642044, - 94.00909423828125 - ] - }, - { - "id": "tWWDC4hTYJU-qYu6k_Lkv", - "type": "freedraw", - "x": -200.45335487266618, - "y": -118.44100179300563, - "width": 25.493996360085248, - "height": 74.88861083984375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 112521283, - "version": 218, - "versionNonce": 1080532589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.390081232244313 - ], - [ - 0, - -3.186756480823874 - ], - [ - -0.7966752485795041, - -3.98345947265625 - ], - [ - -2.390081232244313, - -3.98345947265625 - ], - [ - -3.983431729403378, - -4.780134721235811 - ], - [ - -6.373512961647691, - -5.576809969815372 - ], - [ - -8.763538707386317, - -6.373512961647748 - ], - [ - -11.153564453125, - -7.170188210227252 - ], - [ - -13.543701171875, - -7.170188210227252 - ], - [ - -14.340376420454504, - -6.373512961647748 - ], - [ - -15.136996182528378, - -4.780134721235811 - ], - [ - -15.933726917613626, - -3.186756480823874 - ], - [ - -15.933726917613626, - 0.796675248579561 - ], - [ - -15.933726917613626, - 5.576809969815315 - ], - [ - -15.136996182528378, - 13.543673428622128 - ], - [ - -11.950295188210191, - 23.103915127840878 - ], - [ - -7.966863458806813, - 31.867481578480124 - ], - [ - -2.390081232244313, - 44.61447975852275 - ], - [ - 1.593405983664809, - 53.37804620916194 - ], - [ - 4.780162464488683, - 60.54823441938919 - ], - [ - 7.966863458806813, - 65.32834139737213 - ], - [ - 9.560269442471622, - 67.7184226296165 - ], - [ - 9.560269442471622, - 65.32834139737213 - ], - [ - 9.560269442471622, - 64.53166614879262 - ], - [ - 9.560269442471622, - 64.53166614879262 - ] - ], - "pressures": [ - 0.0302734375, - 0.166015625, - 0.1826171875, - 0.2509765625, - 0.3544921875, - 0.4169921875, - 0.484375, - 0.57421875, - 0.66015625, - 0.72265625, - 0.7421875, - 0.744140625, - 0.744140625, - 0.7587890625, - 0.828125, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 0.8681640625, - 0.625, - 0.1484375, - 0.0927734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 9.560269442471622, - 64.53166614879262 - ] - }, - { - "id": "jOe68qL_0jTi90cHwJoMT", - "type": "freedraw", - "x": -200.45335487266618, - "y": -123.22113651424144, - "width": 19.917158647017004, - "height": 2.390053488991441, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1854935725, - "version": 205, - "versionNonce": 305760995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186700994318187, - -0.796675248579561 - ], - [ - -4.780106977982939, - -0.796675248579561 - ], - [ - -7.170132723721565, - -1.593378240411937 - ], - [ - -10.356944691051126, - -1.593378240411937 - ], - [ - -14.340376420454504, - -2.390053488991441 - ], - [ - -16.730402166193187, - -2.390053488991441 - ], - [ - -18.32380814985794, - -2.390053488991441 - ], - [ - -19.120427911931813, - -2.390053488991441 - ], - [ - -19.917158647017004, - -2.390053488991441 - ], - [ - -19.120427911931813, - -0.796675248579561 - ], - [ - -18.32380814985794, - 0 - ], - [ - -18.32380814985794, - 0 - ] - ], - "pressures": [ - 0.037109375, - 0.4775390625, - 0.6337890625, - 0.7109375, - 0.7626953125, - 0.79296875, - 0.802734375, - 0.8056640625, - 0.8056640625, - 0.8134765625, - 0.18359375, - 0.0859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -18.32380814985794, - 0 - ] - }, - { - "id": "n99DuJEaRuh_OOjKb3Ufy", - "type": "freedraw", - "x": -207.62348759638775, - "y": -124.81451475465337, - "width": 38.24102228338069, - "height": 96.39914772727275, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 850216781, - "version": 208, - "versionNonce": 1881360589, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -1.593378240411937 - ], - [ - -3.983431729403435, - -2.390053488991441 - ], - [ - -6.373568448153435, - -2.390053488991441 - ], - [ - -8.763594193892061, - -3.186728737571002 - ], - [ - -10.357000177556813, - -3.186728737571002 - ], - [ - -12.747025923295439, - -2.390053488991441 - ], - [ - -14.340431906960248, - -0.7966752485795041 - ], - [ - -16.730457652698874, - 3.186756480823874 - ], - [ - -17.527188387784122, - 4.780162464488626 - ], - [ - -17.527188387784122, - 7.966863458806813 - ], - [ - -17.527188387784122, - 14.340376420454561 - ], - [ - -15.137107155539752, - 23.10394287109375 - ], - [ - -7.966863458806813, - 39.83437278053981 - ], - [ - -1.593405983664752, - 50.987992720170496 - ], - [ - 4.780051491477252, - 61.34493741122162 - ], - [ - 9.560213955965878, - 69.31180087002843 - ], - [ - 14.340320933948874, - 78.87204256924718 - ], - [ - 16.730402166193187, - 83.652177290483 - ], - [ - 19.120427911931813, - 88.43228426846593 - ], - [ - 20.713833895596565, - 92.41574374112218 - ], - [ - 20.713833895596565, - 93.21241898970175 - ], - [ - 20.713833895596565, - 90.82236550071025 - ], - [ - 20.713833895596565, - 90.82236550071025 - ] - ], - "pressures": [ - 0.0107421875, - 0.1708984375, - 0.2197265625, - 0.2607421875, - 0.298828125, - 0.3076171875, - 0.3447265625, - 0.3759765625, - 0.392578125, - 0.4072265625, - 0.4296875, - 0.4970703125, - 0.6904296875, - 0.79296875, - 0.8056640625, - 0.8095703125, - 0.802734375, - 0.7607421875, - 0.6640625, - 0.42578125, - 0.23046875, - 0.189453125, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 20.713833895596565, - 90.82236550071025 - ] - }, - { - "id": "GR5XI6FBUpyLQoaby-IUR", - "type": "freedraw", - "x": -217.18375703885937, - "y": -109.67746308561925, - "width": 43.021129261363626, - "height": 91.61904074928975, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 40948611, - "version": 195, - "versionNonce": 221001347, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350851911, - 5.576837713068187 - ], - [ - 3.186700994318187, - 17.52716064453125 - ], - [ - 10.356889204545496, - 35.850941051136374 - ], - [ - 19.1204833984375, - 54.971424449573874 - ], - [ - 29.47748357599437, - 76.48198908025569 - ], - [ - 35.05421031605118, - 84.44888028231532 - ], - [ - 38.240966796875, - 89.22898726029825 - ], - [ - 41.42777876420456, - 91.61904074928975 - ], - [ - 42.224398526278435, - 91.61904074928975 - ], - [ - 42.224398526278435, - 90.82236550071019 - ], - [ - 42.224398526278435, - 90.82236550071019 - ] - ], - "pressures": [ - 0.0498046875, - 0.3203125, - 0.4443359375, - 0.677734375, - 0.7607421875, - 0.787109375, - 0.7783203125, - 0.6865234375, - 0.3857421875, - 0.23828125, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.224398526278435, - 90.82236550071019 - ] - }, - { - "id": "3T1fSws5zcKs4L2CVJcXZ", - "type": "freedraw", - "x": -209.2168935800525, - "y": -121.6277582738295, - "width": 39.83437278053981, - "height": 98.78922895951706, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 110753603, - "version": 197, - "versionNonce": 1404741421, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -12.747025923295496, - 23.103915127840935 - ], - [ - -5.576837713068187, - 44.61447975852275 - ], - [ - 1.593405983664752, - 56.56480268998581 - ], - [ - 3.983431729403378, - 62.141612659801126 - ], - [ - 11.950295188210191, - 74.09190784801137 - ], - [ - 16.73040216619313, - 82.058799050071 - ], - [ - 22.307239879261317, - 90.82236550071025 - ], - [ - 26.290671608664752, - 97.99252596768468 - ], - [ - 27.087346857244313, - 98.78922895951706 - ], - [ - 27.087346857244313, - 97.19585071910512 - ], - [ - 27.087346857244313, - 92.41571599786931 - ], - [ - 25.494051846590878, - 89.22898726029831 - ], - [ - 25.494051846590878, - 89.22898726029831 - ] - ], - "pressures": [ - 0.0048828125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7890625, - 0.4248046875, - 0.3447265625, - 0.1572265625, - 0.1015625, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.494051846590878, - 89.22898726029831 - ] - }, - { - "id": "HVFfahIsUlpn96_iuEZum", - "type": "freedraw", - "x": -213.99705604454118, - "y": -122.42446126566188, - "width": 51.78466796875, - "height": 109.14614590731532, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 85025187, - "version": 208, - "versionNonce": 1476947491, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.796675248579561 - ], - [ - 0, - -1.593350497159122 - ], - [ - 0, - -2.390053488991498 - ], - [ - -1.593295010653378, - -3.186728737571002 - ], - [ - -3.186700994318187, - -3.983431729403435 - ], - [ - -6.373457475142004, - -5.5767822265625 - ], - [ - -7.966863458806813, - -5.5767822265625 - ], - [ - -9.560158469460191, - -5.5767822265625 - ], - [ - -10.356889204545439, - -5.5767822265625 - ], - [ - -10.356889204545439, - -3.983431729403435 - ], - [ - -10.356889204545439, - -1.593350497159122 - ], - [ - -9.560158469460191, - 4.780134721235811 - ], - [ - -5.576726740056813, - 17.527132901278378 - ], - [ - 4.780162464488683, - 43.81780450994319 - ], - [ - 11.950350674715935, - 57.36150568181819 - ], - [ - 17.527132901278435, - 67.7184226296165 - ], - [ - 23.103970614346622, - 76.48198908025569 - ], - [ - 28.680752840909122, - 86.04223077947444 - ], - [ - 33.46091530539775, - 94.80579723011363 - ], - [ - 39.03769753196025, - 101.97598544034088 - ], - [ - 40.631103515625, - 103.56936368075282 - ], - [ - 41.42777876420456, - 103.56936368075282 - ], - [ - 41.42777876420456, - 101.97598544034088 - ], - [ - 41.42777876420456, - 101.97598544034088 - ] - ], - "pressures": [ - 0.0068359375, - 0.0869140625, - 0.2119140625, - 0.3017578125, - 0.3984375, - 0.5966796875, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8349609375, - 0.408203125, - 0.037109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.42777876420456, - 101.97598544034088 - ] - }, - { - "id": "HGaSt096ACx9tW3rfMWKy", - "type": "freedraw", - "x": -212.40365006087637, - "y": -119.237704784838, - "width": 50.19126198508519, - "height": 104.36603892933238, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 552612237, - "version": 207, - "versionNonce": 1570191757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.390081232244313, - -2.390053488991498 - ], - [ - -3.983431729403435, - -3.983431729403435 - ], - [ - -5.576837713068187, - -5.576809969815372 - ], - [ - -7.966863458806813, - -7.170188210227309 - ], - [ - -11.153564453125, - -8.763538707386374 - ], - [ - -13.543701171875, - -9.56024169921875 - ], - [ - -14.340376420454561, - -9.56024169921875 - ], - [ - -15.933726917613626, - -9.56024169921875 - ], - [ - -15.933726917613626, - -3.186756480823874 - ], - [ - -15.933726917613626, - 4.780134721235754 - ], - [ - -14.340376420454561, - 11.153647682883502 - ], - [ - -11.153564453125, - 18.32380814985794 - ], - [ - -5.576837713068187, - 27.08740234375 - ], - [ - 0.7967307350851911, - 37.444319291548254 - ], - [ - 12.747025923295439, - 54.97145219282669 - ], - [ - 19.1204833984375, - 64.53166614879262 - ], - [ - 23.90059037642044, - 71.70185435901988 - ], - [ - 28.680808327414752, - 82.058799050071 - ], - [ - 31.07077858664769, - 87.63560901988637 - ], - [ - 32.66424005681819, - 92.41574374112213 - ], - [ - 33.460859818892004, - 94.00912198153407 - ], - [ - 34.257535067471565, - 94.80579723011363 - ], - [ - 34.257535067471565, - 94.80579723011363 - ] - ], - "pressures": [ - 0.0185546875, - 0.29296875, - 0.3671875, - 0.4599609375, - 0.6083984375, - 0.7646484375, - 0.8896484375, - 0.908203125, - 0.927734375, - 0.9599609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7265625, - 0.3740234375, - 0.228515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.257535067471565, - 94.80579723011363 - ] - }, - { - "id": "kpfAb-K0g9vukvCoSpmXQ", - "type": "freedraw", - "x": -213.99705604454118, - "y": -122.42446126566188, - "width": 55.768099698153435, - "height": 109.14614590731532, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 112485645, - "version": 203, - "versionNonce": 1438429635, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - -3.186728737571002 - ], - [ - -3.186700994318187, - -3.186728737571002 - ], - [ - -5.576726740056813, - -3.186728737571002 - ], - [ - -9.560158469460191, - -2.390053488991498 - ], - [ - -11.950295188210191, - -2.390053488991498 - ], - [ - -13.543590198863626, - -1.593350497159122 - ], - [ - -13.543590198863626, - -0.796675248579561 - ], - [ - -13.543590198863626, - 0.796702991832376 - ], - [ - -11.950295188210191, - 7.170188210227252 - ], - [ - -7.966863458806813, - 18.32383589311081 - ], - [ - 2.39013671875, - 38.24102228338069 - ], - [ - 10.357000177556813, - 51.784695712002815 - ], - [ - 18.323863636363683, - 65.328369140625 - ], - [ - 26.290782581676183, - 78.8720703125 - ], - [ - 35.05426580255681, - 94.80579723011363 - ], - [ - 39.03769753196025, - 101.97598544034088 - ], - [ - 42.22450949928981, - 105.95941716974431 - ], - [ - 42.22450949928981, - 105.16274192116475 - ], - [ - 42.22450949928981, - 105.16274192116475 - ] - ], - "pressures": [ - 0.005859375, - 0.30078125, - 0.5146484375, - 0.720703125, - 0.880859375, - 0.9453125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8388671875, - 0.267578125, - 0.0009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.22450949928981, - 105.16274192116475 - ] - }, - { - "id": "yVBN9PyCOlouMY3CZDIbX", - "type": "freedraw", - "x": -159.0256315949673, - "y": -119.237704784838, - "width": 34.257535067471565, - "height": 100.38260719992894, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1117230723, - "version": 194, - "versionNonce": 1995603949, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983487215909122, - 0 - ], - [ - 7.9669189453125, - 0 - ], - [ - 11.950350674715935, - 0 - ], - [ - 15.933782404119313, - 0 - ], - [ - 19.917214133522748, - 0 - ], - [ - 20.713889382102252, - 0 - ], - [ - 19.917214133522748, - 3.186784224076689 - ], - [ - 16.730457652698874, - 7.170215953480124 - ], - [ - 11.153675426136374, - 15.933754660866441 - ], - [ - 4.780162464488626, - 27.88404984907669 - ], - [ - -2.390025745738626, - 43.02115700461644 - ], - [ - -7.966863458806813, - 60.54823441938919 - ], - [ - -12.746914950284065, - 84.4488525390625 - ], - [ - -13.543645685369313, - 97.19585071910512 - ], - [ - -13.543645685369313, - 98.789228959517 - ], - [ - -12.746914950284065, - 100.38260719992894 - ], - [ - -11.950295188210191, - 100.38260719992894 - ], - [ - -11.153619939630687, - 99.58593195134944 - ], - [ - -11.153619939630687, - 99.58593195134944 - ] - ], - "pressures": [ - 0.064453125, - 0.404296875, - 0.49609375, - 0.6162109375, - 0.701171875, - 0.720703125, - 0.724609375, - 0.75390625, - 0.7646484375, - 0.92578125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.828125, - 0.078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.153619939630687, - 99.58593195134944 - ] - }, - { - "id": "i5AG3f6rr2oTMJvdU_C7P", - "type": "freedraw", - "x": -167.789114815848, - "y": -112.86419182319031, - "width": 7.170188210227252, - "height": 103.5693359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 492118691, - "version": 187, - "versionNonce": 124223843, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.5767822265625, - 54.971424449573874 - ], - [ - 0, - 81.26209605823868 - ], - [ - -0.7967307350851911, - 85.24552778764206 - ], - [ - -1.593405983664752, - 91.61904074928981 - ], - [ - -1.593405983664752, - 98.78922895951706 - ], - [ - -0.7967307350851911, - 101.97595769708806 - ], - [ - 0, - 102.7726606889205 - ], - [ - 0.796619762073874, - 103.5693359375 - ], - [ - 1.593350497159122, - 103.5693359375 - ], - [ - 2.390025745738626, - 102.7726606889205 - ], - [ - 2.390025745738626, - 101.97595769708806 - ], - [ - 2.390025745738626, - 101.97595769708806 - ] - ], - "pressures": [ - 0.0166015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.58984375, - 0.2958984375, - 0.130859375, - 0.072265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.390025745738626, - 101.97595769708806 - ] - }, - { - "id": "h0ZH62dGNRr98s387UcxZ", - "type": "freedraw", - "x": -159.82225135704118, - "y": -119.237704784838, - "width": 62.14155717329544, - "height": 101.17931019176132, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 724993389, - "version": 200, - "versionNonce": 634780237, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982996, - -3.186756480823874 - ], - [ - 8.763538707386374, - -4.780106977982996 - ], - [ - 13.543645685369313, - -5.576809969815372 - ], - [ - 19.917214133522748, - -6.373485218394876 - ], - [ - 29.477372602982996, - -8.763538707386374 - ], - [ - 35.054210316051126, - -10.356944691051126 - ], - [ - 37.44423606178981, - -10.356944691051126 - ], - [ - 38.240966796875, - -10.356944691051126 - ], - [ - 38.240966796875, - -8.763538707386374 - ], - [ - 35.054210316051126, - -0.7966475053267459 - ], - [ - 30.274103338068187, - 6.373512961647691 - ], - [ - 24.697265625, - 15.137079412286937 - ], - [ - 16.730402166193187, - 25.49399636008519 - ], - [ - 3.186700994318187, - 42.22442626953125 - ], - [ - -6.373512961647691, - 55.76812744140625 - ], - [ - -15.137107155539752, - 70.10847611860794 - ], - [ - -20.713889382102252, - 80.46542080965907 - ], - [ - -23.90059037642044, - 86.83893377130681 - ], - [ - -23.90059037642044, - 87.63560901988637 - ], - [ - -23.90059037642044, - 88.43231201171875 - ], - [ - -23.103970614346565, - 90.02566250887782 - ], - [ - -22.307295365767004, - 90.82236550071019 - ], - [ - -21.5106201171875, - 90.82236550071019 - ], - [ - -20.713889382102252, - 90.82236550071019 - ], - [ - -20.713889382102252, - 90.82236550071019 - ] - ], - "pressures": [ - 0.1123046875, - 0.8896484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5087890625, - 0.1474609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -20.713889382102252, - 90.82236550071019 - ] - }, - { - "id": "kzr_AMwaCSiDsAJGBvwZb", - "type": "freedraw", - "x": -197.2665983918423, - "y": -68.24968432141475, - "width": 31.070834073153378, - "height": 14.340348677201746, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1513116419, - "version": 196, - "versionNonce": 1180130563, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796675248579561, - -0.796702991832376 - ], - [ - -1.593350497159065, - -0.796702991832376 - ], - [ - -1.593350497159065, - 0 - ], - [ - -1.593350497159065, - 3.983431729403435 - ], - [ - -1.593350497159065, - 5.5767822265625 - ], - [ - -1.593350497159065, - 7.170160466974437 - ], - [ - -1.593350497159065, - 8.763538707386374 - ], - [ - -1.593350497159065, - 11.153592196377872 - ], - [ - -1.593350497159065, - 13.54364568536937 - ], - [ - -0.796675248579561, - 13.54364568536937 - ], - [ - 1.593405983664809, - 13.54364568536937 - ], - [ - 4.780106977982939, - 13.54364568536937 - ], - [ - 12.747025923295439, - 12.746970436789809 - ], - [ - 18.32380814985794, - 11.950295188210248 - ], - [ - 23.103915127840935, - 11.153592196377872 - ], - [ - 27.087346857244313, - 10.356916947798311 - ], - [ - 29.477483575994313, - 10.356916947798311 - ], - [ - 29.477483575994313, - 9.560213955965935 - ], - [ - 28.680752840909122, - 6.373485218394933 - ], - [ - 27.88407759232956, - 5.5767822265625 - ], - [ - 27.087346857244313, - 5.5767822265625 - ], - [ - 27.087346857244313, - 5.5767822265625 - ] - ], - "pressures": [ - 0.048828125, - 0.576171875, - 0.828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9404296875, - 0.462890625, - 0.2080078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.087346857244313, - 5.5767822265625 - ] - }, - { - "id": "OHXNde7Bbs20ze1jImc4T", - "type": "freedraw", - "x": -169.38252079951275, - "y": -120.03435229016475, - "width": 39.83437278053975, - "height": 97.19585071910512, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 344117101, - "version": 197, - "versionNonce": 1931159725, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.780106977982939, - -3.186784224076689 - ], - [ - 9.560269442471565, - -4.780162464488626 - ], - [ - 15.933726917613626, - -6.373540704900563 - ], - [ - 23.103915127840878, - -7.966891202059628 - ], - [ - 32.6641845703125, - -11.153647682883502 - ], - [ - 37.444347034801126, - -12.747025923295439 - ], - [ - 39.83437278053975, - -14.340404163707376 - ], - [ - 39.83437278053975, - -13.543728915127815 - ], - [ - 39.03764204545456, - -9.56029718572438 - ], - [ - 35.054210316051126, - 0.7966475053267459 - ], - [ - 30.274103338068187, - 13.54364568536937 - ], - [ - 25.49399636008519, - 25.493968616832433 - ], - [ - 20.713833895596565, - 41.42769553444606 - ], - [ - 17.527132901278378, - 52.581315474076746 - ], - [ - 15.137051669034065, - 63.73496315696025 - ], - [ - 12.746970436789752, - 71.70182661576706 - ], - [ - 11.153619939630687, - 78.07531183416194 - ], - [ - 11.153619939630687, - 82.05877130681819 - ], - [ - 11.153619939630687, - 82.85544655539775 - ], - [ - 11.153619939630687, - 82.05877130681819 - ], - [ - 13.543701171875, - 80.46539306640625 - ], - [ - 14.340376420454561, - 79.66869007457387 - ], - [ - 14.340376420454561, - 79.66869007457387 - ] - ], - "pressures": [ - 0.0673828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4931640625, - 0.2421875, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340376420454561, - 79.66869007457387 - ] - }, - { - "id": "UYfuT-JHUAOzB6JCf61uR", - "type": "freedraw", - "x": -164.6024138215298, - "y": -115.25427305543462, - "width": 28.680697354403435, - "height": 84.4488525390625, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1639824909, - "version": 198, - "versionNonce": 1040893091, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593350497159122, - 0 - ], - [ - 7.966863458806813, - -1.593378240411937 - ], - [ - 12.747025923295439, - -2.390053488991441 - ], - [ - 16.730457652698874, - -3.186728737571002 - ], - [ - 19.91715864701706, - -3.983431729403378 - ], - [ - 22.307239879261374, - -3.983431729403378 - ], - [ - 24.697376598011374, - -3.983431729403378 - ], - [ - 25.493996360085248, - -3.983431729403378 - ], - [ - 22.307239879261374, - 3.186784224076746 - ], - [ - 17.527132901278435, - 11.950322931463063 - ], - [ - 11.950295188210248, - 22.307267622514246 - ], - [ - 7.170188210227309, - 32.6641845703125 - ], - [ - 3.186756480823874, - 44.61450750177556 - ], - [ - 0, - 56.56480268998581 - ], - [ - -2.390081232244313, - 70.90517911044037 - ], - [ - -3.186700994318187, - 74.88861083984375 - ], - [ - -3.186700994318187, - 77.27869207208806 - ], - [ - -3.186700994318187, - 78.07536732066762 - ], - [ - -3.186700994318187, - 78.87204256924718 - ], - [ - -3.186700994318187, - 79.66874556107956 - ], - [ - -2.390081232244313, - 79.66874556107956 - ], - [ - -1.593350497159065, - 80.46542080965912 - ], - [ - -0.796675248579561, - 79.66874556107956 - ], - [ - -0.796675248579561, - 79.66874556107956 - ] - ], - "pressures": [ - 0.037109375, - 0.7587890625, - 0.931640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.349609375, - 0.09765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.796675248579561, - 79.66874556107956 - ] - }, - { - "id": "YDMd692SIU9RSWSQk5PQr", - "type": "freedraw", - "x": -170.9759267831775, - "y": -116.05092056076131, - "width": 31.86750932173294, - "height": 99.58590420809657, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 380488867, - "version": 205, - "versionNonce": 275483405, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.390081232244313, - -4.780162464488626 - ], - [ - 8.763594193892004, - -7.170215953480124 - ], - [ - 11.950295188210191, - -7.966891202059685 - ], - [ - 14.340376420454504, - -8.763594193892061 - ], - [ - 18.32380814985794, - -8.763594193892061 - ], - [ - 21.510564630681813, - -9.560269442471565 - ], - [ - 24.69732111150563, - -9.560269442471565 - ], - [ - 27.087402343749943, - -9.560269442471565 - ], - [ - 29.477428089488626, - -9.560269442471565 - ], - [ - 31.070889559659065, - -9.560269442471565 - ], - [ - 31.86750932173294, - -9.560269442471565 - ], - [ - 31.86750932173294, - -8.763594193892061 - ], - [ - 31.86750932173294, - -7.170215953480124 - ], - [ - 29.477428089488626, - 0 - ], - [ - 25.49399636008519, - 7.170160466974437 - ], - [ - 20.713889382102252, - 15.13702392578125 - ], - [ - 16.730457652698817, - 23.103915127840935 - ], - [ - 14.340376420454504, - 31.070778586647748 - ], - [ - 11.950295188210191, - 41.427723277698874 - ], - [ - 11.153675426136317, - 58.158153187144876 - ], - [ - 11.153675426136317, - 67.71839488636363 - ], - [ - 11.153675426136317, - 74.88858309659093 - ], - [ - 11.153675426136317, - 81.26206831498581 - ], - [ - 11.153675426136317, - 85.24552778764206 - ], - [ - 10.356944691051126, - 87.6355812766335 - ], - [ - 10.356944691051126, - 89.22895951704544 - ], - [ - 10.356944691051126, - 90.025634765625 - ], - [ - 10.356944691051126, - 86.83887828480113 - ], - [ - 11.153675426136317, - 83.65214954723012 - ], - [ - 11.153675426136317, - 82.05877130681819 - ], - [ - 11.153675426136317, - 82.05877130681819 - ] - ], - "pressures": [ - 0.0810546875, - 0.5712890625, - 0.90234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.642578125, - 0.279296875, - 0.1923828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.153675426136317, - 82.05877130681819 - ] - }, - { - "id": "EApj9qvEnMsj3Ga3AKpJT", - "type": "freedraw", - "x": -180.53614073914343, - "y": -63.46957734343175, - "width": 30.274103338068187, - "height": 35.850941051136374, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1945028877, - "version": 195, - "versionNonce": 640694339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.780162464488626, - 5.576809969815315 - ], - [ - -7.9669189453125, - 8.763538707386374 - ], - [ - -11.950350674715935, - 15.933726917613626 - ], - [ - -14.340376420454561, - 20.713861638849437 - ], - [ - -15.933782404119313, - 23.900618119673254 - ], - [ - -16.730457652698874, - 26.290671608664752 - ], - [ - -13.543701171875, - 26.290671608664752 - ], - [ - -7.9669189453125, - 25.49399636008519 - ], - [ - -2.390081232244313, - 23.103915127840878 - ], - [ - 1.593350497159065, - 21.51053688742894 - ], - [ - 4.780162464488626, - 20.713861638849437 - ], - [ - 7.966863458806813, - 19.917186390269876 - ], - [ - 8.763594193892061, - 19.917186390269876 - ], - [ - 8.763594193892061, - 19.1204833984375 - ], - [ - 9.560213955965935, - 13.543673428622128 - ], - [ - 9.560213955965935, - 9.56024169921875 - ], - [ - 11.153619939630687, - 3.983431729403378 - ], - [ - 11.950295188210248, - -1.593378240411937 - ], - [ - 13.543645685369313, - -5.576809969815372 - ], - [ - 13.543645685369313, - -7.966891202059685 - ], - [ - 13.543645685369313, - -8.763538707386374 - ], - [ - 12.747025923295439, - -9.560269442471622 - ], - [ - 11.950295188210248, - -9.560269442471622 - ], - [ - 11.950295188210248, - -6.373512961647748 - ], - [ - 11.950295188210248, - -4.780106977982996 - ], - [ - 11.950295188210248, - -4.780106977982996 - ] - ], - "pressures": [ - 0.0234375, - 0.826171875, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1650390625, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950295188210248, - -4.780106977982996 - ] - }, - { - "id": "G59PoYU8BN2WMFyKltl-I", - "type": "freedraw", - "x": -186.90965370079118, - "y": -57.096092125036876, - "width": 30.274158824573874, - "height": 38.24099454012787, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 682041229, - "version": 199, - "versionNonce": 1044423021, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593378240411937 - ], - [ - -0.7966197620738171, - -0.796675248579561 - ], - [ - -3.983431729403378, - 2.390053488991498 - ], - [ - -5.576837713068187, - 6.373512961647748 - ], - [ - -7.170188210227252, - 8.763566450639189 - ], - [ - -7.170188210227252, - 10.356944691051126 - ], - [ - -6.373512961647691, - 11.153619939630687 - ], - [ - -1.593405983664752, - 12.746998180042624 - ], - [ - 2.390081232244313, - 12.746998180042624 - ], - [ - 6.373512961647748, - 12.746998180042624 - ], - [ - 9.560213955965935, - 12.746998180042624 - ], - [ - 13.543701171875, - 11.153619939630687 - ], - [ - 15.933726917613683, - 10.356944691051126 - ], - [ - 18.323808149857996, - 10.356944691051126 - ], - [ - 19.91715864701706, - 9.56024169921875 - ], - [ - 20.71388938210231, - 9.56024169921875 - ], - [ - 20.71388938210231, - 7.170188210227252 - ], - [ - 20.71388938210231, - 1.593378240411937 - ], - [ - 21.510564630681813, - -3.186728737571002 - ], - [ - 22.307239879261374, - -7.170160466974437 - ], - [ - 22.307239879261374, - -11.153592196377872 - ], - [ - 22.307239879261374, - -15.933754660866498 - ], - [ - 22.307239879261374, - -19.917186390269876 - ], - [ - 23.103970614346622, - -23.103915127840935 - ], - [ - 23.103970614346622, - -24.697293368252872 - ], - [ - 23.103970614346622, - -25.493996360085248 - ], - [ - 23.103970614346622, - -24.697293368252872 - ], - [ - 21.510564630681813, - -21.510564630681813 - ], - [ - 21.510564630681813, - -20.713861638849437 - ], - [ - 21.510564630681813, - -20.713861638849437 - ] - ], - "pressures": [ - 0.0458984375, - 0.5869140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3330078125, - 0.12109375, - 0.013671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.510564630681813, - -20.713861638849437 - ] - }, - { - "id": "XVcJtwHP1-VMkZSMENtca", - "type": "freedraw", - "x": -183.72284173346162, - "y": -65.06295558384369, - "width": 37.44434703480118, - "height": 34.25756281072444, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 878466765, - "version": 202, - "versionNonce": 1017526243, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.796619762073874, - -1.593378240411937 - ], - [ - -2.39013671875, - 3.983431729403378 - ], - [ - -4.780217950994313, - 7.966863458806813 - ], - [ - -6.373568448153378, - 11.153619939630687 - ], - [ - -7.170243696732939, - 12.746998180042624 - ], - [ - -7.9669189453125, - 14.340376420454561 - ], - [ - -7.9669189453125, - 15.933726917613626 - ], - [ - -8.763649680397748, - 16.730429909446002 - ], - [ - -7.170243696732939, - 16.730429909446002 - ], - [ - -1.593461470170439, - 16.730429909446002 - ], - [ - 3.983431729403435, - 15.933726917613626 - ], - [ - 10.356889204545439, - 14.340376420454561 - ], - [ - 15.136996182528435, - 13.543673428622128 - ], - [ - 19.120427911931813, - 13.543673428622128 - ], - [ - 22.307184392755687, - 13.543673428622128 - ], - [ - 23.90059037642044, - 13.543673428622128 - ], - [ - 24.697210138494313, - 13.543673428622128 - ], - [ - 25.49394087357956, - 13.543673428622128 - ], - [ - 26.290616122159122, - 13.543673428622128 - ], - [ - 27.087291370738626, - 11.950295188210191 - ], - [ - 27.087291370738626, - 4.780134721235811 - ], - [ - 27.884022105823874, - 0 - ], - [ - 27.884022105823874, - -4.780134721235811 - ], - [ - 28.680697354403435, - -8.763566450639189 - ], - [ - 28.680697354403435, - -11.153592196377872 - ], - [ - 28.680697354403435, - -13.543701171875 - ], - [ - 27.884022105823874, - -15.933754660866498 - ], - [ - 27.087291370738626, - -16.73042990944606 - ], - [ - 26.290616122159122, - -17.527132901278435 - ], - [ - 25.49394087357956, - -17.527132901278435 - ], - [ - 25.49394087357956, - -16.73042990944606 - ], - [ - 25.49394087357956, - -15.933754660866498 - ], - [ - 25.49394087357956, - -15.933754660866498 - ] - ], - "pressures": [ - 0.0693359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.39453125, - 0.1357421875, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 25.49394087357956, - -15.933754660866498 - ] - }, - { - "id": "QCb9gdWNX_Vw5DX3ILtee", - "type": "freedraw", - "x": -189.2997349330355, - "y": -57.89276737361644, - "width": 36.647616299715935, - "height": 41.42775102095169, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1798599907, - "version": 201, - "versionNonce": 1910762445, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - -1.593350497159065, - 0.796675248579561 - ], - [ - -3.186756480823874, - 3.186728737571059 - ], - [ - -3.983431729403378, - 5.576809969815372 - ], - [ - -4.780106977982939, - 9.56024169921875 - ], - [ - -5.5767822265625, - 10.356916947798311 - ], - [ - -5.5767822265625, - 11.950295188210248 - ], - [ - -4.780106977982939, - 14.340376420454561 - ], - [ - -1.593350497159065, - 15.933726917613626 - ], - [ - 4.780162464488626, - 17.527105158025563 - ], - [ - 9.560324928977309, - 18.32380814985794 - ], - [ - 15.137051669034122, - 17.527105158025563 - ], - [ - 19.917214133522748, - 15.933726917613626 - ], - [ - 23.900645862926126, - 14.340376420454561 - ], - [ - 26.29067160866481, - 12.746998180042624 - ], - [ - 28.680752840909122, - 11.950295188210248 - ], - [ - 29.477483575994313, - 11.153619939630687 - ], - [ - 31.070834073153435, - 10.356916947798311 - ], - [ - 31.070834073153435, - 7.966863458806813 - ], - [ - 31.070834073153435, - 4.780106977982939 - ], - [ - 31.070834073153435, - 0 - ], - [ - 30.274103338068187, - -4.780134721235811 - ], - [ - 29.477483575994313, - -11.950322931463063 - ], - [ - 29.477483575994313, - -15.137079412286937 - ], - [ - 28.680752840909122, - -17.527132901278378 - ], - [ - 28.680752840909122, - -20.713889382102252 - ], - [ - 27.88407759232956, - -22.307239879261374 - ], - [ - 27.88407759232956, - -23.10394287109375 - ], - [ - 27.88407759232956, - -22.307239879261374 - ], - [ - 28.680752840909122, - -20.713889382102252 - ], - [ - 28.680752840909122, - -19.917186390269876 - ], - [ - 28.680752840909122, - -19.917186390269876 - ] - ], - "pressures": [ - 0.0029296875, - 0.25, - 0.38671875, - 0.5009765625, - 0.5400390625, - 0.609375, - 0.7607421875, - 0.8916015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3671875, - 0.150390625, - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 28.680752840909122, - -19.917186390269876 - ] - }, - { - "id": "2lHZCsGNglqO3JcMPdscs", - "type": "freedraw", - "x": -159.82225135704118, - "y": -78.60665675571869, - "width": 39.03769753196019, - "height": 39.83437278053975, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1627319619, - "version": 194, - "versionNonce": 2138784643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 2.390108975497128 - ], - [ - 0, - 6.373540704900563 - ], - [ - 0, - 11.950322931463063 - ], - [ - -1.593405983664752, - 19.120511141690315 - ], - [ - -3.186811967329504, - 28.680752840909065 - ], - [ - -4.780162464488626, - 33.460887562144876 - ], - [ - -5.576837713068187, - 36.64761629971588 - ], - [ - -7.170243696732939, - 39.03769753196019 - ], - [ - -7.170243696732939, - 39.83437278053975 - ], - [ - -7.966863458806813, - 39.83437278053975 - ], - [ - -8.763594193892004, - 39.83437278053975 - ], - [ - -11.950295188210191, - 39.83437278053975 - ], - [ - -16.730457652698817, - 39.03769753196019 - ], - [ - -23.90059037642044, - 36.64761629971588 - ], - [ - -27.884022105823817, - 35.05426580255681 - ], - [ - -30.274158824573817, - 34.25756281072444 - ], - [ - -32.66424005681819, - 32.6641845703125 - ], - [ - -35.85094105113632, - 30.274131081321002 - ], - [ - -37.444347034801126, - 29.477428089488626 - ], - [ - -39.03769753196019, - 28.680752840909065 - ], - [ - -38.24102228338069, - 28.680752840909065 - ], - [ - -35.85094105113632, - 28.680752840909065 - ], - [ - -33.46091530539769, - 27.88407759232956 - ], - [ - -32.66424005681819, - 27.88407759232956 - ], - [ - -32.66424005681819, - 27.88407759232956 - ] - ], - "pressures": [ - 0.0986328125, - 0.4189453125, - 0.751953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9189453125, - 0.3984375, - 0.2021484375, - 0.150390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -32.66424005681819, - 27.88407759232956 - ] - }, - { - "id": "sSMv2S7Xg09tJhzMPKn4L", - "type": "freedraw", - "x": -165.39908907010937, - "y": -114.45757006360225, - "width": 39.83437278053975, - "height": 97.19585071910512, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 429153027, - "version": 192, - "versionNonce": 997124653, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 7.96686345880687, - -0.796702991832376 - ], - [ - 12.746970436789809, - -1.593350497159065 - ], - [ - 17.527132901278435, - -3.186756480823817 - ], - [ - 22.307239879261374, - -3.983431729403378 - ], - [ - 27.087346857244313, - -5.5767822265625 - ], - [ - 31.070778586647748, - -5.5767822265625 - ], - [ - 35.05421031605118, - -6.373512961647691 - ], - [ - 35.850941051136374, - -6.373512961647691 - ], - [ - 35.850941051136374, - -4.780134721235754 - ], - [ - 33.46091530539775, - 0.796675248579561 - ], - [ - 25.494051846590935, - 15.137051669034122 - ], - [ - 18.323808149857996, - 26.290699351917624 - ], - [ - 11.950295188210248, - 38.24102228338069 - ], - [ - 3.186756480823874, - 59.75153142755687 - ], - [ - 0.796675248579561, - 67.7184226296165 - ], - [ - -3.983431729403378, - 84.4488525390625 - ], - [ - -3.983431729403378, - 89.22898726029831 - ], - [ - -3.983431729403378, - 90.02566250887787 - ], - [ - -3.983431729403378, - 90.82233775745743 - ], - [ - -3.186756480823817, - 90.82233775745743 - ], - [ - -2.390025745738626, - 89.22898726029831 - ], - [ - -1.593405983664752, - 87.63560901988637 - ], - [ - -1.593405983664752, - 87.63560901988637 - ] - ], - "pressures": [ - 0.076171875, - 0.6494140625, - 0.8515625, - 0.986328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3330078125, - 0.185546875, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593405983664752, - 87.63560901988637 - ] - }, - { - "id": "m5kLS5IrUiubOg7zCIDCZ", - "type": "freedraw", - "x": -160.61898209212637, - "y": -112.86419182319031, - "width": 39.83437278053975, - "height": 103.5693359375, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 789375587, - "version": 186, - "versionNonce": 653122339, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 27.884077592329504, - -8.763566450639189 - ], - [ - 27.087346857244313, - -3.186728737571002 - ], - [ - 24.697376598011317, - 2.390053488991498 - ], - [ - 20.71394486860794, - 11.153619939630687 - ], - [ - 12.747025923295439, - 26.29067160866481 - ], - [ - 6.373512961647691, - 37.444291548295496 - ], - [ - -0.796675248579561, - 50.19128972833806 - ], - [ - -7.966863458806813, - 67.7184226296165 - ], - [ - -9.560269442471622, - 71.70185435901993 - ], - [ - -11.153564453125, - 82.85547429865056 - ], - [ - -11.950295188210248, - 88.43228426846593 - ], - [ - -11.950295188210248, - 92.41571599786931 - ], - [ - -11.950295188210248, - 94.00909423828125 - ], - [ - -11.950295188210248, - 94.80576948686081 - ], - [ - -11.153564453125, - 93.21241898970175 - ], - [ - -10.356944691051126, - 92.41571599786931 - ], - [ - -10.356944691051126, - 92.41571599786931 - ] - ], - "pressures": [ - 0.0126953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.125, - 0.005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -10.356944691051126, - 92.41571599786931 - ] - }, - { - "id": "9j6yslxEdW2475kXR_fk1", - "type": "freedraw", - "x": -166.99249505377412, - "y": -120.03435229016475, - "width": 50.98793723366475, - "height": 101.17928244850856, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 534552291, - "version": 195, - "versionNonce": 1808473229, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.593405983664752, - 0 - ], - [ - 7.170243696732939, - 0 - ], - [ - 11.950350674715935, - -2.390108975497128 - ], - [ - 16.730457652698874, - -3.98345947265625 - ], - [ - 23.103970614346565, - -4.780162464488626 - ], - [ - 31.86750932173294, - -4.780162464488626 - ], - [ - 35.850941051136374, - -4.780162464488626 - ], - [ - 37.444347034801126, - -4.780162464488626 - ], - [ - 38.24102228338069, - -4.780162464488626 - ], - [ - 38.24102228338069, - -3.98345947265625 - ], - [ - 37.444347034801126, - 0.7966475053267459 - ], - [ - 32.6641845703125, - 6.373457475142061 - ], - [ - 26.290671608664752, - 13.54364568536937 - ], - [ - 18.32380814985794, - 21.510509144176183 - ], - [ - 7.170243696732939, - 35.05421031605118 - ], - [ - 2.390081232244313, - 44.61445201526993 - ], - [ - -1.593350497159065, - 54.17469371448868 - ], - [ - -4.780051491477252, - 64.53163840553981 - ], - [ - -7.966863458806813, - 75.6852583451705 - ], - [ - -11.153619939630687, - 89.2289595170455 - ], - [ - -11.950295188210248, - 94.00906649502843 - ], - [ - -12.746914950284065, - 96.39911998401993 - ], - [ - -11.950295188210248, - 94.00906649502843 - ], - [ - -11.153619939630687, - 90.82231001420456 - ], - [ - -10.356944691051126, - 90.025634765625 - ], - [ - -10.356944691051126, - 90.025634765625 - ] - ], - "pressures": [ - 0.052734375, - 0.4794921875, - 0.7265625, - 0.857421875, - 0.8896484375, - 0.900390625, - 0.9169921875, - 0.931640625, - 0.9384765625, - 0.9404296875, - 0.9619140625, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.21875, - 0.12109375, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -10.356944691051126, - 90.025634765625 - ] - }, - { - "id": "7gfVM6iIKhtf91__dqjRg", - "type": "freedraw", - "x": -187.706273462865, - "y": -73.02984678590337, - "width": 35.850941051136374, - "height": 29.477428089488626, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1833026979, - "version": 190, - "versionNonce": 1600945859, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5934614701704959, - -0.7966752485795041 - ], - [ - -5.576893199573874, - 3.186756480823874 - ], - [ - -9.560324928977309, - 9.560269442471622 - ], - [ - -12.747081409801183, - 17.527132901278435 - ], - [ - -15.93378240411937, - 22.307267622514246 - ], - [ - -17.527188387784122, - 24.697321111505687 - ], - [ - -16.73051313920456, - 24.697321111505687 - ], - [ - -12.747081409801183, - 24.697321111505687 - ], - [ - -8.763649680397748, - 23.90061811967331 - ], - [ - -0.7967862215909349, - 22.307267622514246 - ], - [ - 3.18670099431813, - 21.510564630681813 - ], - [ - 7.170132723721565, - 19.917186390269876 - ], - [ - 9.560158469460191, - 19.917186390269876 - ], - [ - 11.153564453125, - 19.917186390269876 - ], - [ - 11.153564453125, - 17.527132901278435 - ], - [ - 11.153564453125, - 14.340376420454561 - ], - [ - 11.153564453125, - 9.560269442471622 - ], - [ - 13.543590198863626, - 2.390081232244313 - ], - [ - 15.136996182528378, - -0.7966752485795041 - ], - [ - 16.7303466796875, - -3.186700994318187 - ], - [ - 17.527021928267004, - -4.780106977982939 - ], - [ - 18.323752663352252, - -4.780106977982939 - ], - [ - 16.7303466796875, - -3.186700994318187 - ], - [ - 15.136996182528378, - -0.7966752485795041 - ], - [ - 14.340320933948817, - -0.7966752485795041 - ], - [ - 14.340320933948817, - -0.7966752485795041 - ] - ], - "pressures": [ - 0.001953125, - 0.541015625, - 0.9189453125, - 0.990234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.796875, - 0.2451171875, - 0.17578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340320933948817, - -0.7966752485795041 - ] - }, - { - "id": "doeaxqCUs9WLYSFhnntKm", - "type": "freedraw", - "x": -163.0090633243707, - "y": -77.01327851530675, - "width": 36.64761629971588, - "height": 27.88404984907669, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 924425635, - "version": 184, - "versionNonce": 2058486509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967307350851911, - -0.796675248579561 - ], - [ - -0.796619762073874, - 2.390081232244313 - ], - [ - -3.186700994318187, - 7.170188210227252 - ], - [ - -7.170188210227309, - 15.933754660866441 - ], - [ - -10.356889204545496, - 19.917186390269876 - ], - [ - -11.950295188210248, - 23.10394287109375 - ], - [ - -13.543645685369313, - 24.697321111505687 - ], - [ - -14.340376420454561, - 26.290699351917624 - ], - [ - -15.137051669034122, - 27.087374600497128 - ], - [ - -15.933726917613683, - 27.087374600497128 - ], - [ - -17.527077414772748, - 27.087374600497128 - ], - [ - -19.1204833984375, - 26.290699351917624 - ], - [ - -23.103915127840935, - 23.10394287109375 - ], - [ - -27.087346857244313, - 19.917186390269876 - ], - [ - -31.070778586647748, - 18.32380814985794 - ], - [ - -34.25753506747162, - 16.730457652698874 - ], - [ - -35.85088556463069, - 16.730457652698874 - ], - [ - -35.85088556463069, - 15.933754660866441 - ], - [ - -33.46085981889206, - 16.730457652698874 - ], - [ - -33.46085981889206, - 16.730457652698874 - ] - ], - "pressures": [ - 0.1103515625, - 0.3544921875, - 0.9560546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1806640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -33.46085981889206, - 16.730457652698874 - ] - }, - { - "id": "ttAKptfly2OHTV57WC2zJ", - "type": "freedraw", - "x": -195.6731924081775, - "y": -58.68947036544881, - "width": 33.46085981889206, - "height": 24.697293368252872, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 284541635, - "version": 188, - "versionNonce": 1133882979, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - 0 - ], - [ - 0.7966752485795041, - 0.796702991832376 - ], - [ - 5.5767822265625, - 2.390081232244313 - ], - [ - 9.560213955965878, - 3.186756480823874 - ], - [ - 11.950350674715878, - 3.186756480823874 - ], - [ - 15.933782404119313, - 3.186756480823874 - ], - [ - 18.323752663352252, - 3.186756480823874 - ], - [ - 19.1204833984375, - 3.186756480823874 - ], - [ - 19.91721413352269, - 2.390081232244313 - ], - [ - 20.713833895596565, - 0.796702991832376 - ], - [ - 21.510509144176126, - 0 - ], - [ - 23.103915127840878, - -3.983431729403435 - ], - [ - 26.290671608664752, - -9.560213955965935 - ], - [ - 27.087346857244313, - -10.356916947798311 - ], - [ - 27.884077592329504, - -11.950295188210248 - ], - [ - 28.680697354403378, - -13.543645685369313 - ], - [ - 29.477428089488626, - -15.933726917613626 - ], - [ - 30.27410333806813, - -18.32380814985794 - ], - [ - 31.07077858664769, - -19.917186390269876 - ], - [ - 31.86750932173294, - -21.510536887428998 - ], - [ - 32.66412908380681, - -21.510536887428998 - ], - [ - 32.66412908380681, - -19.1204833984375 - ], - [ - 32.66412908380681, - -18.32380814985794 - ], - [ - 32.66412908380681, - -18.32380814985794 - ] - ], - "pressures": [ - 0.0693359375, - 0.6572265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1484375, - 0.099609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 32.66412908380681, - -18.32380814985794 - ] - }, - { - "id": "ECOVAtz3bolslnOvg_PB9", - "type": "freedraw", - "x": -163.0090633243707, - "y": -79.40333200429825, - "width": 44.61442427201706, - "height": 29.477428089488626, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 22247203, - "version": 185, - "versionNonce": 749542733, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -15.933726917613683, - 28.680752840909122 - ], - [ - -17.527077414772748, - 29.477428089488626 - ], - [ - -18.323808149857996, - 29.477428089488626 - ], - [ - -19.1204833984375, - 29.477428089488626 - ], - [ - -20.713778409090935, - 29.477428089488626 - ], - [ - -21.510509144176183, - 29.477428089488626 - ], - [ - -23.103915127840935, - 29.477428089488626 - ], - [ - -26.29067160866481, - 28.680752840909122 - ], - [ - -28.680697354403435, - 27.88404984907669 - ], - [ - -31.070778586647748, - 27.087374600497185 - ], - [ - -33.46085981889206, - 26.290671608664752 - ], - [ - -36.64756081321025, - 26.290671608664752 - ], - [ - -39.83437278053981, - 26.290671608664752 - ], - [ - -41.427723277698874, - 25.493996360085248 - ], - [ - -43.021073774857996, - 25.493996360085248 - ], - [ - -43.81780450994319, - 24.697293368252872 - ], - [ - -44.61442427201706, - 24.697293368252872 - ], - [ - -43.81780450994319, - 24.697293368252872 - ], - [ - -41.427723277698874, - 24.697293368252872 - ], - [ - -39.83437278053981, - 24.697293368252872 - ], - [ - -39.83437278053981, - 24.697293368252872 - ] - ], - "pressures": [ - 0.0029296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6220703125, - 0.2001953125, - 0.1416015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -39.83437278053981, - 24.697293368252872 - ] - }, - { - "id": "8dsfA_a52oAy4McX8k_Jp", - "type": "freedraw", - "x": -200.45335487266618, - "y": -61.07952385444031, - "width": 46.2078857421875, - "height": 27.88404984907669, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 759491949, - "version": 198, - "versionNonce": 372763139, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 0 - ], - [ - 1.593405983664809, - 0 - ], - [ - 3.983431729403435, - 0 - ], - [ - 6.373512961647748, - 0 - ], - [ - 10.356944691051183, - 0.7967029918324329 - ], - [ - 12.747081409801183, - 1.593378240411937 - ], - [ - 16.73051313920456, - 1.593378240411937 - ], - [ - 18.323808149857996, - 1.593378240411937 - ], - [ - 19.917214133522748, - 1.593378240411937 - ], - [ - 21.510564630681813, - 1.593378240411937 - ], - [ - 24.697376598011374, - 1.593378240411937 - ], - [ - 26.29067160866481, - 0.7967029918324329 - ], - [ - 27.88407759232956, - 0.7967029918324329 - ], - [ - 29.477428089488683, - 0 - ], - [ - 31.070834073153435, - 0 - ], - [ - 32.66424005681819, - -1.593378240411937 - ], - [ - 33.46085981889206, - -2.390053488991441 - ], - [ - 34.25759055397731, - -3.983431729403378 - ], - [ - 35.05426580255681, - -4.780134721235754 - ], - [ - 35.850941051136374, - -5.576809969815315 - ], - [ - 38.24102228338069, - -7.966863458806813 - ], - [ - 39.83437278053981, - -9.56024169921875 - ], - [ - 40.631103515625, - -9.56024169921875 - ], - [ - 41.427723277698874, - -10.356944691051126 - ], - [ - 42.22445401278412, - -13.543673428622128 - ], - [ - 43.02112926136368, - -15.933754660866441 - ], - [ - 43.81780450994319, - -19.1204833984375 - ], - [ - 44.614535245028435, - -21.510564630681813 - ], - [ - 44.614535245028435, - -22.307239879261317 - ], - [ - 45.411210493607996, - -24.697321111505687 - ], - [ - 45.411210493607996, - -25.49399636008519 - ], - [ - 45.411210493607996, - -26.290671608664752 - ], - [ - 45.411210493607996, - -26.290671608664752 - ] - ], - "pressures": [ - 0.0400390625, - 0.15625, - 0.5322265625, - 0.9130859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 45.411210493607996, - -26.290671608664752 - ] - }, - { - "id": "97NuWHlUjqQR7ZiUOlILU", - "type": "freedraw", - "x": -154.24546913047868, - "y": -121.6277582738295, - "width": 60.54815118963063, - "height": 103.56936368075282, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 4169133, - "version": 184, - "versionNonce": 2031479725, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.983431729403435, - -0.796702991832376 - ], - [ - 11.950295188210248, - -0.796702991832376 - ], - [ - 16.730402166193187, - -0.796702991832376 - ], - [ - 21.510564630681813, - 1.593405983664752 - ], - [ - 24.697321111505687, - 3.186756480823874 - ], - [ - 26.290727095170496, - 3.983431729403435 - ], - [ - 27.087346857244313, - 4.780106977982939 - ], - [ - 23.900590376420496, - 7.966863458806813 - ], - [ - 16.730402166193187, - 15.137051669034122 - ], - [ - 0, - 35.8509133078835 - ], - [ - -13.543645685369313, - 54.1747214577415 - ], - [ - -24.697321111505687, - 72.49852960759944 - ], - [ - -31.86750932173294, - 86.04223077947444 - ], - [ - -33.46080433238632, - 97.99252596768468 - ], - [ - -33.46080433238632, - 101.1792824485085 - ], - [ - -31.070834073153378, - 102.77266068892044 - ], - [ - -29.47737260298294, - 102.77266068892044 - ], - [ - -27.884077592329504, - 102.77266068892044 - ], - [ - -26.290671608664752, - 101.97598544034093 - ], - [ - -26.290671608664752, - 101.97598544034093 - ] - ], - "pressures": [ - 0.1279296875, - 0.802734375, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.986328125, - 0.541015625, - 0.22265625, - 0.07421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -26.290671608664752, - 101.97598544034093 - ] - }, - { - "id": "2eRdIY19bE6K6guLfu3zn", - "type": "freedraw", - "x": -159.0256315949673, - "y": -120.83108302524994, - "width": 53.37807395241475, - "height": 102.7726606889205, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1482051811, - "version": 194, - "versionNonce": 1011986851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.796619762073874, - -0.796675248579561 - ], - [ - -1.593350497159065, - -3.983431729403435 - ], - [ - -1.593350497159065, - -4.780106977982939 - ], - [ - -1.593350497159065, - -5.576809969815372 - ], - [ - 0, - -5.576809969815372 - ], - [ - 3.186811967329561, - -5.576809969815372 - ], - [ - 7.9669189453125, - -5.576809969815372 - ], - [ - 11.950350674715935, - -5.576809969815372 - ], - [ - 15.933782404119313, - -5.576809969815372 - ], - [ - 21.510564630681813, - -4.780106977982939 - ], - [ - 25.493996360085248, - -4.780106977982939 - ], - [ - 27.88407759232956, - -3.983431729403435 - ], - [ - 29.477483575994313, - -3.186728737571059 - ], - [ - 29.477483575994313, - -2.390053488991498 - ], - [ - 27.087457830255687, - 0.7967307350851911 - ], - [ - 21.510564630681813, - 5.576809969815315 - ], - [ - 14.340376420454561, - 12.747025923295439 - ], - [ - 5.576837713068187, - 23.10394287109375 - ], - [ - -8.763483220880687, - 45.411182750355124 - ], - [ - -17.52707741477269, - 61.344937411221565 - ], - [ - -22.307239879261374, - 72.49855735085225 - ], - [ - -23.90059037642044, - 78.87204256924713 - ], - [ - -23.90059037642044, - 85.24555553089488 - ], - [ - -22.307239879261374, - 90.02569025213069 - ], - [ - -21.510509144176126, - 94.00912198153407 - ], - [ - -20.713778409090878, - 95.602500221946 - ], - [ - -19.91715864701706, - 96.39917547052556 - ], - [ - -18.32380814985794, - 97.19585071910512 - ], - [ - -17.52707741477269, - 97.19585071910512 - ], - [ - -17.52707741477269, - 97.19585071910512 - ] - ], - "pressures": [ - 0.046875, - 0.1123046875, - 0.177734375, - 0.208984375, - 0.361328125, - 0.6552734375, - 0.859375, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.283203125, - 0.10546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -17.52707741477269, - 97.19585071910512 - ] - }, - { - "id": "etfnk1EDU3E3Z1XEWH3wS", - "type": "freedraw", - "x": -160.61898209212637, - "y": -120.83108302524994, - "width": 46.2078857421875, - "height": 102.7726606889205, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1350573421, - "version": 193, - "versionNonce": 806743565, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593378240411937 - ], - [ - 0.7967307350851911, - -2.390053488991498 - ], - [ - 2.390081232244313, - -3.186728737571059 - ], - [ - 4.780162464488626, - -3.186728737571059 - ], - [ - 7.966863458806813, - -3.186728737571059 - ], - [ - 10.356944691051126, - -3.186728737571059 - ], - [ - 14.340376420454504, - -2.390053488991498 - ], - [ - 17.527132901278378, - 0 - ], - [ - 19.917158647017004, - 2.390081232244313 - ], - [ - 21.510564630681813, - 3.983431729403378 - ], - [ - 21.510564630681813, - 4.780162464488626 - ], - [ - 21.510564630681813, - 5.576809969815315 - ], - [ - 21.510564630681813, - 7.966891202059628 - ], - [ - 20.71394486860794, - 9.560269442471565 - ], - [ - 18.32380814985794, - 12.747025923295439 - ], - [ - 11.153619939630687, - 21.510564630681813 - ], - [ - 3.186756480823874, - 31.070806329900563 - ], - [ - -3.983431729403435, - 39.83437278053975 - ], - [ - -9.560269442471622, - 48.59796697443181 - ], - [ - -13.543701171875, - 57.36150568181819 - ], - [ - -16.730457652698874, - 67.71842262961644 - ], - [ - -20.71388938210231, - 83.65217729048294 - ], - [ - -23.103859641335248, - 92.41574374112213 - ], - [ - -23.900590376420496, - 97.9925537109375 - ], - [ - -24.697321111505687, - 99.58593195134944 - ], - [ - -23.900590376420496, - 99.58593195134944 - ], - [ - -22.307239879261374, - 99.58593195134944 - ], - [ - -20.71388938210231, - 98.78922895951706 - ], - [ - -20.71388938210231, - 98.78922895951706 - ] - ], - "pressures": [ - 0.033203125, - 0.47265625, - 0.646484375, - 0.751953125, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6943359375, - 0.24609375, - 0.1142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -20.71388938210231, - 98.78922895951706 - ] - }, - { - "id": "b-B2JX9Sc6nfkoKWD3Xif", - "type": "freedraw", - "x": -208.420218331473, - "y": -127.20456824364481, - "width": 25.493996360085248, - "height": 113.926308371804, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 621581891, - "version": 180, - "versionNonce": 1997636931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558552, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.186700994318187, - -4.780106977982996 - ], - [ - -3.983431729403378, - -5.576809969815372 - ], - [ - -5.576837713068187, - -6.373512961647748 - ], - [ - -6.373512961647691, - -6.373512961647748 - ], - [ - -7.966863458806813, - -5.576809969815372 - ], - [ - -9.560269442471565, - -2.390081232244313 - ], - [ - -10.356944691051126, - 4.780106977982939 - ], - [ - -10.356944691051126, - 17.527105158025563 - ], - [ - -9.560269442471565, - 44.61447975852269 - ], - [ - -6.373512961647691, - 61.34490966796875 - ], - [ - -3.186700994318187, - 74.09190784801132 - ], - [ - 0.7967307350852479, - 84.4488525390625 - ], - [ - 5.5767822265625, - 93.21241898970169 - ], - [ - 11.153619939630687, - 103.5693359375 - ], - [ - 13.543701171875, - 106.75609241832382 - ], - [ - 15.137051669034122, - 107.55279541015625 - ], - [ - 15.137051669034122, - 106.75609241832382 - ], - [ - 14.340376420454561, - 102.77266068892044 - ], - [ - 14.340376420454561, - 102.77266068892044 - ] - ], - "pressures": [ - 0.0283203125, - 0.2021484375, - 0.23828125, - 0.3837890625, - 0.537109375, - 0.90625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.96484375, - 0.4248046875, - 0.203125, - 0.060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.340376420454561, - 102.77266068892044 - ] - }, - { - "id": "fGpM8h1l8BReAkaLSsPX9", - "type": "freedraw", - "x": -210.01356882863206, - "y": -120.03435229016475, - "width": 31.86750932173294, - "height": 92.41571599786931, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 192269165, - "version": 186, - "versionNonce": 1621533805, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.593350497159122, - -3.98345947265625 - ], - [ - -2.390081232244313, - -6.373540704900563 - ], - [ - -3.983487215909122, - -7.966891202059628 - ], - [ - -5.5767822265625, - -9.56029718572438 - ], - [ - -7.9669189453125, - -10.356972434303941 - ], - [ - -10.356944691051126, - -11.153647682883502 - ], - [ - -11.950350674715935, - -11.153647682883502 - ], - [ - -13.543645685369313, - -9.56029718572438 - ], - [ - -15.137107155539809, - -7.170215953480067 - ], - [ - -16.730457652698874, - -4.780162464488626 - ], - [ - -19.120538884943187, - -0.7967307350851911 - ], - [ - -19.120538884943187, - 0 - ], - [ - -19.917214133522748, - 2.390025745738683 - ], - [ - -19.917214133522748, - 6.373457475142061 - ], - [ - -17.527077414772748, - 14.340348677201746 - ], - [ - -14.340376420454561, - 22.30721213600856 - ], - [ - -9.560213955965935, - 34.25750732421875 - ], - [ - -3.186756480823874, - 50.19126198508525 - ], - [ - 3.186700994318187, - 64.53163840553981 - ], - [ - 8.763538707386374, - 76.48196133700287 - ], - [ - 10.356944691051126, - 79.66869007457387 - ], - [ - 11.153619939630687, - 80.46539306640625 - ], - [ - 11.153619939630687, - 81.26206831498581 - ], - [ - 11.950295188210191, - 81.26206831498581 - ], - [ - 11.950295188210191, - 81.26206831498581 - ] - ], - "pressures": [ - 0.1005859375, - 0.2470703125, - 0.3544921875, - 0.453125, - 0.7724609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6015625, - 0.3583984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 11.950295188210191, - 81.26206831498581 - ] - }, - { - "id": "J0d9Y7JIpNxGnc1r18WRg", - "type": "freedraw", - "x": -210.01356882863206, - "y": -122.42446126566188, - "width": 0.0001, - "height": 0.0001, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 219909315, - "version": 162, - "versionNonce": 1574298851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.0001, - 0.0001 - ] - ], - "pressures": [ - 0.0869140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.0001, - 0.0001 - ] - }, - { - "id": "InLW4hToSeePkWd9ksfYB", - "type": "freedraw", - "x": -210.01356882863206, - "y": -122.42446126566188, - "width": 10.356944691051126, - "height": 90.02569025213069, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 164867917, - "version": 162, - "versionNonce": 2123468493, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 10.356944691051126, - 90.02569025213069 - ], - [ - 10.356944691051126, - 90.02569025213069 - ] - ], - "pressures": [ - 0.5537109375, - 0.0068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.356944691051126, - 90.02569025213069 - ] - }, - { - "id": "ZrQzUupA7x2-Q7UAzK00w", - "type": "freedraw", - "x": -196.46992314326275, - "y": -246.70767271363772, - "width": 19.91715864701706, - "height": 123.4865223277699, - "angle": 0, - "strokeColor": "#55d8f6", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 956630147, - "version": 183, - "versionNonce": 405622915, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.593378240411937 - ], - [ - 0, - -3.9834317294034065 - ], - [ - 0, - -4.780120849609375 - ], - [ - 0, - -5.5768099698153435 - ], - [ - -0.796675248579561, - -6.373499090021312 - ], - [ - -1.593350497159122, - -6.373499090021312 - ], - [ - -3.186700994318187, - -3.186756480823874 - ], - [ - -4.780106977982939, - 2.390067360617877 - ], - [ - -7.170132723721622, - 10.356930819424718 - ], - [ - -11.153564453125, - 26.290685480291188 - ], - [ - -13.543645685369313, - 40.63106190074572 - ], - [ - -16.730402166193187, - 55.768113569779814 - ], - [ - -19.120427911931813, - 68.51511174982244 - ], - [ - -19.91715864701706, - 80.46540693803266 - ], - [ - -19.120427911931813, - 95.6024863503196 - ], - [ - -17.527132901278435, - 104.36605280095878 - ], - [ - -15.933726917613626, - 110.73956576260653 - ], - [ - -15.933726917613626, - 114.72299749200991 - ], - [ - -15.933726917613626, - 117.11302323774859 - ], - [ - -15.933726917613626, - 116.31634798916903 - ], - [ - -15.933726917613626, - 113.92629450017753 - ], - [ - -15.933726917613626, - 113.12959150834516 - ], - [ - -15.933726917613626, - 113.12959150834516 - ] - ], - "pressures": [ - 0, - 0.056640625, - 0.1025390625, - 0.1123046875, - 0.20703125, - 0.3701171875, - 0.630859375, - 0.6904296875, - 0.7109375, - 0.8876953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.857421875, - 0.1953125, - 0.1220703125, - 0.0693359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.933726917613626, - 113.12959150834516 - ] - }, - { - "id": "HXS6r1AnX8qDQuEfDaSUR", - "type": "freedraw", - "x": -186.90965370079124, - "y": 89.49437307382664, - "width": 27.88407759232956, - "height": 67.71842262961644, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2010443437, - "version": 188, - "versionNonce": 1473660963, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -3.983431729403435 - ], - [ - 0.796675248579561, - -11.950295188210248 - ], - [ - 1.593350497159122, - -19.91715864701706 - ], - [ - 3.983487215909122, - -31.86750932173294 - ], - [ - 5.5767822265625, - -39.83437278053975 - ], - [ - 7.170188210227252, - -47.00456099076706 - ], - [ - 7.9669189453125, - -51.78466796875 - ], - [ - 7.9669189453125, - -52.581370960582376 - ], - [ - 8.763538707386374, - -50.19128972833806 - ], - [ - 9.560213955965935, - -41.42775102095169 - ], - [ - 12.746970436789752, - -17.527132901278435 - ], - [ - 15.933782404119313, - -3.186756480823874 - ], - [ - 18.32380814985794, - 5.576837713068187 - ], - [ - 19.1204833984375, - 7.966863458806813 - ], - [ - 19.917214133522748, - 7.966863458806813 - ], - [ - 20.713833895596622, - 3.186756480823874 - ], - [ - 22.307239879261374, - -6.373512961647748 - ], - [ - 23.900645862926126, - -19.91715864701706 - ], - [ - 24.697265625, - -33.46085981889206 - ], - [ - 26.290671608664752, - -46.207857998934685 - ], - [ - 26.290671608664752, - -49.3946144797585 - ], - [ - 27.087346857244313, - -52.581370960582376 - ], - [ - 27.087346857244313, - -55.76812744140625 - ], - [ - 27.087346857244313, - -59.75155917080963 - ], - [ - 27.88407759232956, - -59.75155917080963 - ], - [ - 27.88407759232956, - -58.95485617897725 - ], - [ - 27.88407759232956, - -55.76812744140625 - ], - [ - 27.88407759232956, - -54.971424449573874 - ], - [ - 27.88407759232956, - -54.971424449573874 - ] - ], - "pressures": [ - 0.0546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.279296875, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.88407759232956, - -54.971424449573874 - ] - }, - { - "id": "W7ybBA99idvoaJ9d7wKaV", - "type": "freedraw", - "x": -153.44879388189918, - "y": 17.79251871480676, - "width": 19.120427911931813, - "height": 59.75155917080963, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2079392461, - "version": 175, - "versionNonce": 314526659, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7967307350852479, - -3.186756480823874 - ], - [ - -0.7967307350852479, - -6.373512961647748 - ], - [ - -0.7967307350852479, - -7.170188210227252 - ], - [ - -1.593350497159122, - -7.170188210227252 - ], - [ - -1.593350497159122, - -4.780134721235811 - ], - [ - 1.593350497159065, - 7.170188210227252 - ], - [ - 4.780106977982939, - 18.32380814985794 - ], - [ - 8.763538707386374, - 28.68072509765625 - ], - [ - 11.950295188210191, - 37.44431929154831 - ], - [ - 15.137051669034065, - 46.20785799893463 - ], - [ - 16.730402166193187, - 49.3946144797585 - ], - [ - 17.52707741477269, - 50.987964976917624 - ], - [ - 17.52707741477269, - 52.581370960582376 - ], - [ - 16.730402166193187, - 50.19128972833806 - ], - [ - 15.933726917613626, - 47.00453324751419 - ], - [ - 15.137051669034065, - 45.411182750355124 - ], - [ - 15.137051669034065, - 45.411182750355124 - ] - ], - "pressures": [ - 0.029296875, - 0.20703125, - 0.46875, - 0.783203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.591796875, - 0.130859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 15.137051669034065, - 45.411182750355124 - ] - }, - { - "id": "IzsnH_hqFyddMb_Te-JZ0", - "type": "freedraw", - "x": -126.36144702465486, - "y": 17.79251871480676, - "width": 18.32380814985794, - "height": 63.73499090021306, - "angle": 0, - "strokeColor": "#ff0000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 958267683, - "version": 173, - "versionNonce": 1954448877, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.186811967329561, - -5.576809969815372 - ], - [ - 3.983431729403378, - -5.576809969815372 - ], - [ - 3.983431729403378, - -6.373512961647748 - ], - [ - 2.390081232244313, - -2.390081232244313 - ], - [ - 0, - 3.983431729403378 - ], - [ - -3.983431729403435, - 11.950295188210248 - ], - [ - -10.356944691051126, - 26.290671608664752 - ], - [ - -12.746970436789809, - 41.42775102095169 - ], - [ - -12.746970436789809, - 45.411182750355124 - ], - [ - -12.746970436789809, - 52.581370960582376 - ], - [ - -12.746970436789809, - 56.56480268998581 - ], - [ - -12.746970436789809, - 57.361477938565315 - ], - [ - -12.746970436789809, - 55.76812744140625 - ], - [ - -14.340376420454561, - 53.37804620916194 - ], - [ - -14.340376420454561, - 52.581370960582376 - ], - [ - -14.340376420454561, - 52.581370960582376 - ] - ], - "pressures": [ - 0.18359375, - 0.384765625, - 0.4619140625, - 0.5341796875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.853515625, - 0.265625, - 0.1708984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.340376420454561, - 52.581370960582376 - ] - }, - { - "id": "ljtE2gYpS-eCb9jce1_LP", - "type": "freedraw", - "x": 230.55450201653832, - "y": 189.87695253050282, - "width": 19.12053888494313, - "height": 19.1204833984375, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 660499597, - "version": 189, - "versionNonce": 1609646157, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0 - ], - [ - 0.7966752485795041, - 0.7967307350851343 - ], - [ - 0, - 3.1867564808237603 - ], - [ - -0.7966752485796178, - 3.1867564808237603 - ], - [ - -1.593350497159122, - 3.1867564808237603 - ], - [ - -2.390025745738626, - 3.1867564808237603 - ], - [ - -4.780162464488626, - 3.1867564808237603 - ], - [ - -5.57672674005687, - 2.390081232244256 - ], - [ - -7.170188210227252, - 0.7967307350851343 - ], - [ - -7.96686345880687, - 0 - ], - [ - -8.763538707386374, - -0.7966752485796178 - ], - [ - -9.560213955965878, - -1.593350497159122 - ], - [ - -10.35700017755687, - -3.186700994318244 - ], - [ - -11.950350674715878, - -3.9834317294034918 - ], - [ - -12.747025923295496, - -3.9834317294034918 - ], - [ - -13.543590198863626, - -4.780106977982996 - ], - [ - -14.340376420454618, - -4.780106977982996 - ], - [ - -15.137051669034122, - -4.780106977982996 - ], - [ - -15.933726917613626, - -3.9834317294034918 - ], - [ - -16.730402166193244, - -1.593350497159122 - ], - [ - -17.527077414772748, - 0.7967307350851343 - ], - [ - -17.527077414772748, - 2.390081232244256 - ], - [ - -18.323863636363626, - 3.1867564808237603 - ], - [ - -18.323863636363626, - 5.57689319957376 - ], - [ - -17.527077414772748, - 8.763594193892004 - ], - [ - -16.730402166193244, - 11.15361993963063 - ], - [ - -15.137051669034122, - 12.747025923295382 - ], - [ - -13.543590198863626, - 12.747025923295382 - ], - [ - -11.950350674715878, - 13.54375665838063 - ], - [ - -9.560213955965878, - 13.54375665838063 - ], - [ - -8.763538707386374, - 14.340376420454504 - ], - [ - -7.170188210227252, - 14.340376420454504 - ], - [ - -6.373512961647748, - 13.54375665838063 - ], - [ - -5.57672674005687, - 11.950350674715878 - ], - [ - -5.57672674005687, - 11.15361993963063 - ], - [ - -5.57672674005687, - 11.15361993963063 - ] - ], - "pressures": [ - 0.044921875, - 0.185546875, - 0.373046875, - 0.666015625, - 0.7265625, - 0.796875, - 0.8388671875, - 0.8681640625, - 0.8642578125, - 0.857421875, - 0.857421875, - 0.8662109375, - 0.8720703125, - 0.8740234375, - 0.8701171875, - 0.8701171875, - 0.880859375, - 0.880859375, - 0.8720703125, - 0.876953125, - 0.87890625, - 0.87890625, - 0.8720703125, - 0.87890625, - 0.880859375, - 0.876953125, - 0.876953125, - 0.8720703125, - 0.880859375, - 0.880859375, - 0.8828125, - 0.8720703125, - 0.708984375, - 0.455078125, - 0.2177734375, - 0.1396484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.57672674005687, - 11.15361993963063 - ] - }, - { - "id": "MjhPe1G12a7X3bADP_G08", - "type": "freedraw", - "x": 232.14785251369744, - "y": 186.69025153618458, - "width": 19.120538884943244, - "height": 11.950350674715992, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 837215619, - "version": 177, - "versionNonce": 1123776259, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.7967862215908781, - -0.7967307350852479 - ], - [ - 0.7967862215908781, - 0 - ], - [ - 0, - 0 - ], - [ - -1.593350497159122, - 0 - ], - [ - -18.323752663352366, - 0 - ], - [ - -18.323752663352366, - 1.593350497159122 - ], - [ - -18.323752663352366, - 2.390025745738626 - ], - [ - -18.323752663352366, - 4.780162464488626 - ], - [ - -18.323752663352366, - 6.373457475142004 - ], - [ - -18.323752663352366, - 7.170188210227252 - ], - [ - -17.527077414772748, - 7.96686345880687 - ], - [ - -15.93372691761374, - 8.763594193892004 - ], - [ - -14.340376420454618, - 10.356889204545496 - ], - [ - -13.543701171875, - 11.153619939630744 - ], - [ - -11.950350674715992, - 11.153619939630744 - ], - [ - -11.153564453125, - 11.153619939630744 - ], - [ - -10.356889204545496, - 11.153619939630744 - ], - [ - -9.560213955965992, - 11.153619939630744 - ], - [ - -8.763538707386374, - 11.153619939630744 - ], - [ - -7.170077237215992, - 11.153619939630744 - ], - [ - -6.373512961647748, - 11.153619939630744 - ], - [ - -6.373512961647748, - 10.356889204545496 - ], - [ - -6.373512961647748, - 9.560213955965878 - ], - [ - -6.373512961647748, - 9.560213955965878 - ] - ], - "pressures": [ - 0.0302734375, - 0.177734375, - 0.365234375, - 0.37109375, - 0.4091796875, - 0.8203125, - 0.8115234375, - 0.82421875, - 0.822265625, - 0.8154296875, - 0.8095703125, - 0.7890625, - 0.794921875, - 0.80078125, - 0.80078125, - 0.794921875, - 0.791015625, - 0.791015625, - 0.791015625, - 0.7763671875, - 0.75390625, - 0.6357421875, - 0.466796875, - 0.2333984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.373512961647748, - 9.560213955965878 - ] - }, - { - "id": "eewIWBnE4zzezot0xxFIA", - "type": "freedraw", - "x": 232.94463873528832, - "y": 187.48698227126982, - "width": 27.087513316761374, - "height": 48.597966974431756, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1802261293, - "version": 240, - "versionNonce": 366849709, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5934614701704959, - 0 - ], - [ - -2.39013671875, - -0.7967307350852479 - ], - [ - -3.186811967329618, - -0.7967307350852479 - ], - [ - -4.780162464488626, - -0.7967307350852479 - ], - [ - -5.576948686079618, - -1.5934614701704959 - ], - [ - -6.373623934659122, - -1.5934614701704959 - ], - [ - -7.170299183238626, - -2.39013671875 - ], - [ - -8.763649680397748, - -3.983431729403378 - ], - [ - -9.560324928977252, - -4.78021795099437 - ], - [ - -10.35700017755687, - -5.576893199573874 - ], - [ - -11.153675426136374, - -6.373568448153378 - ], - [ - -11.950350674715878, - -7.170243696732996 - ], - [ - -12.74713689630687, - -7.9669189453125 - ], - [ - -13.543812144886374, - -9.560324928977252 - ], - [ - -14.340487393465878, - -11.153675426136374 - ], - [ - -15.137162642045496, - -11.950350674715878 - ], - [ - -15.137162642045496, - -12.747081409801126 - ], - [ - -15.933726917613626, - -12.747081409801126 - ], - [ - -17.527188387784122, - -12.747081409801126 - ], - [ - -18.323863636363626, - -11.950350674715878 - ], - [ - -19.917214133522748, - -11.950350674715878 - ], - [ - -20.714000355113626, - -11.153675426136374 - ], - [ - -20.714000355113626, - -10.35700017755687 - ], - [ - -21.510675603693244, - -7.9669189453125 - ], - [ - -21.510675603693244, - -7.170243696732996 - ], - [ - -21.510675603693244, - -5.576893199573874 - ], - [ - -21.510675603693244, - -3.983431729403378 - ], - [ - -21.510675603693244, - -2.39013671875 - ], - [ - -20.714000355113626, - -1.5934614701704959 - ], - [ - -20.714000355113626, - -0.7967307350852479 - ], - [ - -20.714000355113626, - 0 - ], - [ - -19.120538884943244, - 0.796619762073874 - ], - [ - -18.323863636363626, - 0.796619762073874 - ], - [ - -16.730513139204618, - 1.593295010653378 - ], - [ - -15.933726917613626, - 2.389970259232996 - ], - [ - -15.933726917613626, - 3.18670099431813 - ], - [ - -15.137162642045496, - 3.983431729403378 - ], - [ - -14.340487393465878, - 3.983431729403378 - ], - [ - -14.340487393465878, - 4.780051491477252 - ], - [ - -13.543812144886374, - 4.780051491477252 - ], - [ - -13.543812144886374, - 5.576726740056756 - ], - [ - -13.543812144886374, - 7.170132723721622 - ], - [ - -13.543812144886374, - 8.76348322088063 - ], - [ - -13.543812144886374, - 9.560158469460248 - ], - [ - -13.543812144886374, - 11.153564453125 - ], - [ - -14.340487393465878, - 11.950295188210248 - ], - [ - -15.137162642045496, - 14.340320933948874 - ], - [ - -16.730513139204618, - 16.7303466796875 - ], - [ - -18.323863636363626, - 19.917158647017004 - ], - [ - -19.120538884943244, - 20.713778409090878 - ], - [ - -19.120538884943244, - 21.510509144176126 - ], - [ - -20.714000355113626, - 23.103859641335248 - ], - [ - -21.510675603693244, - 24.697265625 - ], - [ - -22.307350852272748, - 26.290616122159122 - ], - [ - -23.104026100852252, - 27.087291370738626 - ], - [ - -23.900590376420496, - 27.884022105823874 - ], - [ - -25.494051846590878, - 29.477372602982996 - ], - [ - -27.087513316761374, - 30.2740478515625 - ], - [ - -27.087513316761374, - 31.070723100142004 - ], - [ - -27.087513316761374, - 31.867453835227252 - ], - [ - -27.087513316761374, - 32.664129083806756 - ], - [ - -27.087513316761374, - 33.460804332386374 - ], - [ - -26.290727095170496, - 35.054154829545496 - ], - [ - -23.900590376420496, - 35.85088556463063 - ], - [ - -22.307350852272748, - 35.85088556463063 - ], - [ - -21.510675603693244, - 35.85088556463063 - ], - [ - -19.917214133522748, - 35.85088556463063 - ], - [ - -19.120538884943244, - 35.85088556463063 - ], - [ - -18.323863636363626, - 35.85088556463063 - ], - [ - -17.527188387784122, - 35.054154829545496 - ], - [ - -15.933726917613626, - 33.460804332386374 - ], - [ - -15.137162642045496, - 31.867453835227252 - ], - [ - -13.543812144886374, - 30.2740478515625 - ], - [ - -13.543812144886374, - 28.680697354403378 - ], - [ - -12.74713689630687, - 27.087291370738626 - ], - [ - -12.74713689630687, - 25.493940873579504 - ], - [ - -12.74713689630687, - 23.103859641335248 - ], - [ - -12.74713689630687, - 21.510509144176126 - ], - [ - -12.74713689630687, - 19.917158647017004 - ], - [ - -12.74713689630687, - 18.323752663352252 - ], - [ - -12.74713689630687, - 17.527077414772748 - ], - [ - -12.74713689630687, - 16.7303466796875 - ], - [ - -12.74713689630687, - 15.933726917613626 - ], - [ - -11.950350674715878, - 15.136996182528378 - ], - [ - -11.950350674715878, - 14.340320933948874 - ], - [ - -11.153675426136374, - 13.543590198863626 - ], - [ - -11.153675426136374, - 13.543590198863626 - ] - ], - "pressures": [ - 0.060546875, - 0.3583984375, - 0.376953125, - 0.4541015625, - 0.5439453125, - 0.5615234375, - 0.5771484375, - 0.580078125, - 0.5849609375, - 0.5869140625, - 0.5966796875, - 0.609375, - 0.6201171875, - 0.625, - 0.62890625, - 0.6494140625, - 0.6806640625, - 0.701171875, - 0.71484375, - 0.734375, - 0.736328125, - 0.734375, - 0.73046875, - 0.748046875, - 0.744140625, - 0.740234375, - 0.734375, - 0.736328125, - 0.740234375, - 0.73828125, - 0.73828125, - 0.736328125, - 0.732421875, - 0.732421875, - 0.728515625, - 0.740234375, - 0.734375, - 0.736328125, - 0.736328125, - 0.7421875, - 0.744140625, - 0.736328125, - 0.73046875, - 0.736328125, - 0.740234375, - 0.740234375, - 0.734375, - 0.744140625, - 0.7568359375, - 0.7705078125, - 0.7685546875, - 0.78125, - 0.787109375, - 0.783203125, - 0.783203125, - 0.783203125, - 0.798828125, - 0.8115234375, - 0.8203125, - 0.8203125, - 0.828125, - 0.8203125, - 0.8173828125, - 0.8056640625, - 0.8056640625, - 0.802734375, - 0.80078125, - 0.8173828125, - 0.8095703125, - 0.8115234375, - 0.802734375, - 0.802734375, - 0.8056640625, - 0.8115234375, - 0.8076171875, - 0.8134765625, - 0.82421875, - 0.8408203125, - 0.8447265625, - 0.8447265625, - 0.849609375, - 0.857421875, - 0.83203125, - 0.7626953125, - 0.73828125, - 0.701171875, - 0.62890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -11.153675426136374, - 13.543590198863626 - ] - }, - { - "id": "Vp6DUdJ883Pdct9VYVQGq", - "type": "freedraw", - "x": 228.9611515193792, - "y": 181.11341382311645, - "width": 21.510564630681756, - "height": 35.850941051136374, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1561479725, - "version": 200, - "versionNonce": 52141731, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 0, - 1.5933504971590082 - ], - [ - -1.5934614701704959, - 3.983431729403378 - ], - [ - -3.186811967329504, - 5.57683771306813 - ], - [ - -3.983376242897748, - 6.373568448153378 - ], - [ - -5.57683771306813, - 7.170188210227252 - ], - [ - -6.373512961647748, - 7.170188210227252 - ], - [ - -7.966863458806756, - 7.170188210227252 - ], - [ - -8.763649680397748, - 6.373568448153378 - ], - [ - -9.560324928977252, - 5.57683771306813 - ], - [ - -10.357000177556756, - 4.780106977982882 - ], - [ - -11.153675426136374, - 3.186756480823874 - ], - [ - -12.747025923295496, - 2.39013671875 - ], - [ - -14.340376420454504, - 2.39013671875 - ], - [ - -15.137051669034122, - 2.39013671875 - ], - [ - -16.730513139204504, - 2.39013671875 - ], - [ - -17.527188387784122, - 2.39013671875 - ], - [ - -18.323863636363626, - 3.186756480823874 - ], - [ - -19.12053888494313, - 3.983431729403378 - ], - [ - -19.12053888494313, - 4.780106977982882 - ], - [ - -19.12053888494313, - 7.170188210227252 - ], - [ - -19.12053888494313, - 8.763538707386374 - ], - [ - -19.12053888494313, - 10.357000177556756 - ], - [ - -19.12053888494313, - 11.950295188210134 - ], - [ - -19.12053888494313, - 12.747025923295382 - ], - [ - -19.12053888494313, - 13.543701171875 - ], - [ - -19.12053888494313, - 14.340431906960134 - ], - [ - -19.12053888494313, - 15.933726917613626 - ], - [ - -18.323863636363626, - 16.730457652698874 - ], - [ - -18.323863636363626, - 17.527132901278378 - ], - [ - -17.527188387784122, - 19.1204833984375 - ], - [ - -16.730513139204504, - 21.510564630681756 - ], - [ - -15.137051669034122, - 23.900645862926126 - ], - [ - -15.137051669034122, - 24.69732111150563 - ], - [ - -15.137051669034122, - 26.290727095170382 - ], - [ - -15.137051669034122, - 27.884077592329504 - ], - [ - -15.933726917613626, - 31.070834073153378 - ], - [ - -16.730513139204504, - 31.867509321732882 - ], - [ - -16.730513139204504, - 32.6641845703125 - ], - [ - -17.527188387784122, - 32.6641845703125 - ], - [ - -19.12053888494313, - 32.6641845703125 - ], - [ - -19.917103160511374, - 34.25759055397725 - ], - [ - -20.713889382102252, - 35.054265802556756 - ], - [ - -20.713889382102252, - 35.850941051136374 - ], - [ - -21.510564630681756, - 35.850941051136374 - ], - [ - -20.713889382102252, - 35.850941051136374 - ], - [ - -20.713889382102252, - 35.850941051136374 - ] - ], - "pressures": [ - 0.001953125, - 0.37109375, - 0.400390625, - 0.5693359375, - 0.66796875, - 0.712890625, - 0.822265625, - 0.85546875, - 0.8662109375, - 0.8662109375, - 0.8642578125, - 0.8662109375, - 0.8681640625, - 0.8740234375, - 0.8701171875, - 0.876953125, - 0.8828125, - 0.8828125, - 0.87890625, - 0.8916015625, - 0.8916015625, - 0.876953125, - 0.8701171875, - 0.876953125, - 0.87890625, - 0.880859375, - 0.8740234375, - 0.8740234375, - 0.8828125, - 0.8876953125, - 0.884765625, - 0.876953125, - 0.8876953125, - 0.8896484375, - 0.8876953125, - 0.876953125, - 0.880859375, - 0.884765625, - 0.884765625, - 0.8896484375, - 0.90234375, - 0.904296875, - 0.90234375, - 0.8984375, - 0.908203125, - 0.8154296875, - 0.15234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -20.713889382102252, - 35.850941051136374 - ] - }, - { - "id": "xP99dJe9MJkp3642YzG_z", - "type": "freedraw", - "x": 226.5710148006292, - "y": 183.50355054186645, - "width": 11.950239701704504, - "height": 41.42766779119313, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 648542147, - "version": 194, - "versionNonce": 82661645, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 0 - ], - [ - 0.7966752485795041, - 0.796619762073874 - ], - [ - 1.5934614701704959, - 2.389970259232882 - ], - [ - 3.983487215909122, - 4.780051491477252 - ], - [ - 4.780162464488626, - 6.373401988636374 - ], - [ - 4.780162464488626, - 7.170132723721508 - ], - [ - 5.576837713068244, - 7.966863458806756 - ], - [ - 6.373623934659122, - 9.560158469460134 - ], - [ - 6.373623934659122, - 11.153564453125 - ], - [ - 7.170188210227252, - 11.153564453125 - ], - [ - 7.170188210227252, - 11.950295188210134 - ], - [ - 7.170188210227252, - 12.746914950284008 - ], - [ - 7.170188210227252, - 13.543590198863626 - ], - [ - 5.576837713068244, - 14.340320933948874 - ], - [ - 4.780162464488626, - 14.340320933948874 - ], - [ - 1.5934614701704959, - 14.340320933948874 - ], - [ - 0, - 14.340320933948874 - ], - [ - -1.593239524147748, - 13.543590198863626 - ], - [ - -2.390025745738626, - 12.746914950284008 - ], - [ - -3.18670099431813, - 12.746914950284008 - ], - [ - -3.18670099431813, - 11.950295188210134 - ], - [ - -3.983376242897748, - 11.153564453125 - ], - [ - -3.983376242897748, - 10.356889204545382 - ], - [ - -3.983376242897748, - 9.560158469460134 - ], - [ - -4.780051491477252, - 9.560158469460134 - ], - [ - -4.780051491477252, - 11.153564453125 - ], - [ - -4.780051491477252, - 12.746914950284008 - ], - [ - -4.780051491477252, - 14.340320933948874 - ], - [ - -4.780051491477252, - 16.7303466796875 - ], - [ - -4.780051491477252, - 17.527021928267004 - ], - [ - -4.780051491477252, - 19.917158647017004 - ], - [ - -3.983376242897748, - 21.510509144176126 - ], - [ - -3.983376242897748, - 23.103859641335134 - ], - [ - -3.983376242897748, - 24.697210138494256 - ], - [ - -3.983376242897748, - 27.087291370738626 - ], - [ - -3.983376242897748, - 28.680697354403378 - ], - [ - -3.18670099431813, - 30.2740478515625 - ], - [ - -3.18670099431813, - 31.867453835227252 - ], - [ - -2.390025745738626, - 32.664129083806756 - ], - [ - -2.390025745738626, - 34.25747958096588 - ], - [ - -1.593239524147748, - 37.44423606178975 - ], - [ - -0.7966752485795041, - 39.037586558948874 - ], - [ - -0.7966752485795041, - 39.83431729403401 - ], - [ - -0.7966752485795041, - 40.630992542613626 - ], - [ - -1.593239524147748, - 41.42766779119313 - ], - [ - -1.593239524147748, - 39.83431729403401 - ], - [ - -1.593239524147748, - 39.83431729403401 - ] - ], - "pressures": [ - 0.0302734375, - 0.2470703125, - 0.5888671875, - 0.6044921875, - 0.625, - 0.638671875, - 0.638671875, - 0.6376953125, - 0.6474609375, - 0.646484375, - 0.6474609375, - 0.6474609375, - 0.6533203125, - 0.646484375, - 0.6552734375, - 0.6640625, - 0.6806640625, - 0.6943359375, - 0.6943359375, - 0.697265625, - 0.705078125, - 0.712890625, - 0.712890625, - 0.716796875, - 0.716796875, - 0.708984375, - 0.7109375, - 0.712890625, - 0.708984375, - 0.7109375, - 0.712890625, - 0.712890625, - 0.703125, - 0.70703125, - 0.70703125, - 0.701171875, - 0.6923828125, - 0.6953125, - 0.6953125, - 0.6884765625, - 0.6826171875, - 0.6806640625, - 0.66796875, - 0.6591796875, - 0.6591796875, - 0.6591796875, - 0.6162109375, - 0.0947265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593239524147748, - 39.83431729403401 - ] - }, - { - "id": "u64DQ93tVFwQ8pYnkEGy8", - "type": "freedraw", - "x": 228.1644762707997, - "y": 184.30017030394032, - "width": 10.356889204545496, - "height": 34.25747958096588, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1162842915, - "version": 176, - "versionNonce": 135647811, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.796619762073874 - ], - [ - 0, - 0.7966752485795041 - ], - [ - 1.5933504971590082, - 3.186811967329504 - ], - [ - 2.390025745738626, - 5.5767822265625 - ], - [ - 3.18670099431813, - 7.170243696732882 - ], - [ - 4.780162464488626, - 8.76353870738626 - ], - [ - 5.576726740056756, - 10.356944691051126 - ], - [ - 6.373401988636374, - 12.746970436789752 - ], - [ - 6.373401988636374, - 14.340376420454504 - ], - [ - 6.373401988636374, - 15.137107155539752 - ], - [ - 6.373401988636374, - 15.933726917613626 - ], - [ - 5.576726740056756, - 16.73040216619313 - ], - [ - 4.780162464488626, - 16.73040216619313 - ], - [ - 2.390025745738626, - 17.527132901278378 - ], - [ - 0.7966752485795041, - 17.527132901278378 - ], - [ - 0, - 17.527132901278378 - ], - [ - -0.7967862215909918, - 17.527132901278378 - ], - [ - -2.39013671875, - 16.73040216619313 - ], - [ - -3.186700994318244, - 16.73040216619313 - ], - [ - -3.983487215909122, - 15.933726917613626 - ], - [ - -3.983487215909122, - 16.73040216619313 - ], - [ - -3.983487215909122, - 19.917158647017004 - ], - [ - -3.983487215909122, - 24.69732111150563 - ], - [ - -3.983487215909122, - 30.27410333806813 - ], - [ - -3.983487215909122, - 31.867509321732882 - ], - [ - -3.983487215909122, - 32.6641845703125 - ], - [ - -3.186700994318244, - 32.6641845703125 - ], - [ - -3.186700994318244, - 33.460859818892004 - ], - [ - -3.186700994318244, - 32.6641845703125 - ], - [ - -3.186700994318244, - 32.6641845703125 - ] - ], - "pressures": [ - 0.0625, - 0.130859375, - 0.40625, - 0.4521484375, - 0.4736328125, - 0.484375, - 0.4892578125, - 0.4892578125, - 0.4970703125, - 0.5068359375, - 0.515625, - 0.515625, - 0.5185546875, - 0.525390625, - 0.5341796875, - 0.5341796875, - 0.54296875, - 0.5478515625, - 0.5498046875, - 0.5478515625, - 0.546875, - 0.55859375, - 0.5595703125, - 0.5673828125, - 0.580078125, - 0.580078125, - 0.57421875, - 0.5693359375, - 0.5693359375, - 0.1337890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.186700994318244, - 32.6641845703125 - ] - }, - { - "id": "nQW35pcr7VoWQ_Cb-jauY", - "type": "freedraw", - "x": 220.19750183898145, - "y": 185.09684555251982, - "width": 15.93372691761374, - "height": 33.46091530539775, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 111732547, - "version": 180, - "versionNonce": 177842029, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 5.576837713068244, - -2.39008123224437 - ], - [ - 7.170188210227252, - -2.39008123224437 - ], - [ - 7.966974431818244, - -2.39008123224437 - ], - [ - 8.763649680397748, - -2.39008123224437 - ], - [ - 8.763649680397748, - -0.7966752485795041 - ], - [ - 9.560324928977252, - 0 - ], - [ - 10.35700017755687, - 2.39013671875 - ], - [ - 11.153675426136374, - 4.780106977982996 - ], - [ - 11.950350674715992, - 7.170188210227252 - ], - [ - 11.950350674715992, - 8.763594193892004 - ], - [ - 11.950350674715992, - 10.357000177556756 - ], - [ - 11.950350674715992, - 11.15361993963063 - ], - [ - 11.153675426136374, - 11.950295188210248 - ], - [ - 9.560324928977252, - 11.950295188210248 - ], - [ - 7.170188210227252, - 12.747025923295496 - ], - [ - 5.576837713068244, - 11.950295188210248 - ], - [ - 3.983487215909122, - 11.15361993963063 - ], - [ - 3.186811967329618, - 9.560269442471622 - ], - [ - 2.39013671875, - 9.560269442471622 - ], - [ - 1.5934614701704959, - 8.763594193892004 - ], - [ - 0.7967862215909918, - 7.966863458806756 - ], - [ - 0, - 7.966863458806756 - ], - [ - -0.7966752485795041, - 7.966863458806756 - ], - [ - -1.5933504971590082, - 8.763594193892004 - ], - [ - -1.5933504971590082, - 9.560269442471622 - ], - [ - -1.5933504971590082, - 11.15361993963063 - ], - [ - -2.390025745738626, - 15.137051669034122 - ], - [ - -2.390025745738626, - 18.323863636363626 - ], - [ - -3.186590021306756, - 21.510564630681756 - ], - [ - -3.983376242897748, - 23.103915127840878 - ], - [ - -3.983376242897748, - 26.290727095170496 - ], - [ - -3.983376242897748, - 28.680752840909122 - ], - [ - -3.983376242897748, - 30.274158824573874 - ], - [ - -3.983376242897748, - 31.070834073153378 - ], - [ - -3.983376242897748, - 30.274158824573874 - ], - [ - -3.983376242897748, - 30.274158824573874 - ] - ], - "pressures": [ - 0.04296875, - 0.455078125, - 0.6533203125, - 0.8095703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.5341796875, - 0.064453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.983376242897748, - 30.274158824573874 - ] - }, - { - "id": "Kq4zbWp29pa6BE6uCgQNA", - "type": "freedraw", - "x": 226.5710148006292, - "y": 182.70676432027545, - "width": 13.543590198863626, - "height": 47.801291725852366, - "angle": 0, - "strokeColor": "#364fc7", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1280784611, - "version": 176, - "versionNonce": 1120440803, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 0 - ], - [ - 1.5934614701704959, - 0 - ], - [ - 2.39013671875, - 0 - ], - [ - 3.983487215909122, - 1.5934059836648657 - ], - [ - 4.780162464488626, - 2.39008123224437 - ], - [ - 6.373623934659122, - 4.78021795099437 - ], - [ - 7.170188210227252, - 6.373512961647748 - ], - [ - 7.96686345880687, - 8.763649680397748 - ], - [ - 7.96686345880687, - 9.560269442471622 - ], - [ - 7.170188210227252, - 10.356944691051126 - ], - [ - 3.186811967329504, - 11.153675426136374 - ], - [ - 1.5934614701704959, - 11.153675426136374 - ], - [ - 0, - 11.153675426136374 - ], - [ - -1.593239524147748, - 11.950350674715992 - ], - [ - -3.18670099431813, - 11.950350674715992 - ], - [ - -3.983376242897748, - 13.543701171875 - ], - [ - -4.780051491477252, - 15.137107155539866 - ], - [ - -5.576726740056756, - 17.52713290127849 - ], - [ - -5.576726740056756, - 19.917214133522748 - ], - [ - -5.576726740056756, - 23.103970614346622 - ], - [ - -5.576726740056756, - 27.884077592329618 - ], - [ - -5.576726740056756, - 31.07083407315349 - ], - [ - -5.576726740056756, - 35.05426580255687 - ], - [ - -5.576726740056756, - 38.241022283380744 - ], - [ - -5.576726740056756, - 40.631103515625 - ], - [ - -5.576726740056756, - 42.22445401278412 - ], - [ - -5.576726740056756, - 44.61459073153412 - ], - [ - -5.576726740056756, - 47.00456099076712 - ], - [ - -5.576726740056756, - 47.801291725852366 - ], - [ - -5.576726740056756, - 46.2078857421875 - ], - [ - -5.576726740056756, - 46.2078857421875 - ] - ], - "pressures": [ - 0.0693359375, - 0.5888671875, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.0439453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.576726740056756, - 46.2078857421875 - ] - }, - { - "id": "JzgKL4G8sl1yTVkSipriX", - "type": "freedraw", - "x": 231.84682180479342, - "y": 192.76273378892827, - "width": 21.510564630681756, - "height": 35.05426580255687, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "ugpm3QEDg3gWcdlVHWy9v" - ], - "strokeSharpness": "round", - "seed": 71072173, - "version": 299, - "versionNonce": 71458179, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - -2.390025745738626, - 0 - ], - [ - -4.780162464488626, - -2.39008123224437 - ], - [ - -6.373401988636374, - -3.983431729403378 - ], - [ - -7.170188210227252, - -4.780051491477252 - ], - [ - -7.966863458806756, - -4.780051491477252 - ], - [ - -7.966863458806756, - -5.576837713068244 - ], - [ - -8.763538707386374, - -6.373512961647748 - ], - [ - -10.356889204545382, - -7.170188210227252 - ], - [ - -11.153675426136374, - -8.763538707386374 - ], - [ - -11.950350674715878, - -9.560269442471622 - ], - [ - -13.543701171875, - -10.356944691051126 - ], - [ - -14.34026544744313, - -11.153619939630744 - ], - [ - -15.137051669034122, - -11.153619939630744 - ], - [ - -16.73040216619313, - -11.153619939630744 - ], - [ - -17.527077414772748, - -8.763538707386374 - ], - [ - -18.323752663352252, - -7.170188210227252 - ], - [ - -19.12053888494313, - -6.373512961647748 - ], - [ - -19.12053888494313, - -5.576837713068244 - ], - [ - -19.12053888494313, - -4.780051491477252 - ], - [ - -19.12053888494313, - -2.39008123224437 - ], - [ - -18.323752663352252, - -0.796619762073874 - ], - [ - -17.527077414772748, - 0.7966752485795041 - ], - [ - -17.527077414772748, - 1.593350497159122 - ], - [ - -16.73040216619313, - 2.390081232244256 - ], - [ - -16.73040216619313, - 4.780106977982882 - ], - [ - -15.933726917613626, - 7.170243696732882 - ], - [ - -15.933726917613626, - 9.560269442471622 - ], - [ - -15.933726917613626, - 11.153675426136374 - ], - [ - -15.933726917613626, - 14.340376420454504 - ], - [ - -15.933726917613626, - 16.730457652698874 - ], - [ - -16.73040216619313, - 19.12053888494313 - ], - [ - -16.73040216619313, - 21.510564630681756 - ], - [ - -17.527077414772748, - 22.307239879261374 - ], - [ - -18.323752663352252, - 23.103970614346622 - ], - [ - -19.12053888494313, - 23.900645862926126 - ], - [ - -19.917214133522748, - 23.900645862926126 - ], - [ - -20.713889382102252, - 23.900645862926126 - ], - [ - -21.510564630681756, - 23.900645862926126 - ], - [ - -21.510564630681756, - 23.103970614346622 - ], - [ - -21.510564630681756, - 23.103970614346622 - ] - ], - "pressures": [ - 0.0390625, - 0.4765625, - 0.55859375, - 0.630859375, - 0.69921875, - 0.7607421875, - 0.7685546875, - 0.853515625, - 0.8681640625, - 0.8681640625, - 0.904296875, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 1, - 0.994140625, - 0.98828125, - 0.9833984375, - 0.9833984375, - 0.98828125, - 0.9833984375, - 0.97265625, - 0.9794921875, - 0.9833984375, - 0.9794921875, - 0.97265625, - 0.96875, - 0.9794921875, - 0.97265625, - 0.9755859375, - 0.9580078125, - 0.947265625, - 0.908203125, - 0.16796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -21.510564630681756, - 23.103970614346622 - ] - }, - { - "id": "6r8IMt0FseFmwknJXb9-G", - "type": "freedraw", - "x": 227.0666593403048, - "y": 187.18589607586003, - "width": 19.120427911931756, - "height": 33.46091530539775, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [ - "ugpm3QEDg3gWcdlVHWy9v" - ], - "strokeSharpness": "round", - "seed": 899533635, - "version": 264, - "versionNonce": 499019821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.7966752485795041, - 0 - ], - [ - 0, - 0.7967862215909918 - ], - [ - 1.5934614701704959, - 2.39008123224437 - ], - [ - 2.39013671875, - 3.186756480823874 - ], - [ - 3.186811967329504, - 4.78021795099437 - ], - [ - 3.983487215909122, - 5.576837713068244 - ], - [ - 4.780162464488626, - 5.576837713068244 - ], - [ - 5.576837713068244, - 6.373512961647748 - ], - [ - 6.373623934659122, - 7.170188210227366 - ], - [ - 7.170188210227252, - 7.170188210227366 - ], - [ - 7.96686345880687, - 7.170188210227366 - ], - [ - 8.763538707386374, - 6.373512961647748 - ], - [ - 9.560324928977252, - 6.373512961647748 - ], - [ - 10.357111150568244, - 5.576837713068244 - ], - [ - 11.153675426136374, - 5.576837713068244 - ], - [ - 12.747025923295496, - 6.373512961647748 - ], - [ - 14.340487393465878, - 8.763649680397748 - ], - [ - 15.137051669034122, - 10.356944691051126 - ], - [ - 15.933726917613626, - 13.543701171875 - ], - [ - 15.933726917613626, - 14.340376420454618 - ], - [ - 15.933726917613626, - 15.137107155539866 - ], - [ - 15.933726917613626, - 15.93378240411937 - ], - [ - 14.340487393465878, - 17.52713290127849 - ], - [ - 11.950350674715878, - 19.120538884943244 - ], - [ - 9.560324928977252, - 21.51056463068187 - ], - [ - 7.96686345880687, - 22.307295365767118 - ], - [ - 6.373623934659122, - 23.103970614346622 - ], - [ - 4.780162464488626, - 23.103970614346622 - ], - [ - 3.186811967329504, - 22.307295365767118 - ], - [ - 2.39013671875, - 21.51056463068187 - ], - [ - 1.5934614701704959, - 21.51056463068187 - ], - [ - 0.7966752485795041, - 20.713944868607996 - ], - [ - 0, - 20.713944868607996 - ], - [ - 0, - 21.51056463068187 - ], - [ - -0.7966752485795041, - 22.307295365767118 - ], - [ - -1.593239524147748, - 23.103970614346622 - ], - [ - -2.390025745738626, - 24.697376598011374 - ], - [ - -3.18670099431813, - 26.290727095170496 - ], - [ - -3.18670099431813, - 28.680808327414866 - ], - [ - -3.18670099431813, - 31.07083407315349 - ], - [ - -3.18670099431813, - 32.664240056818244 - ], - [ - -3.18670099431813, - 33.46091530539775 - ], - [ - -2.390025745738626, - 33.46091530539775 - ], - [ - -1.593239524147748, - 33.46091530539775 - ], - [ - -1.593239524147748, - 33.46091530539775 - ] - ], - "pressures": [ - 0.0654296875, - 0.263671875, - 0.9599609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.953125, - 0.8134765625, - 0.732421875, - 0.642578125, - 0.5947265625, - 0.5712890625, - 0.56640625, - 0.5595703125, - 0.5615234375, - 0.5615234375, - 0.5595703125, - 0.2451171875, - 0.1787109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.593239524147748, - 33.46091530539775 - ] - }, - { - "id": "zl9hBRb5ZnnPHWd1y4VSQ", - "type": "freedraw", - "x": 278.42198775759766, - "y": 149.49085164774232, - "width": 6.622801392256804, - "height": 40.33875445801144, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2050590371, - "version": 154, - "versionNonce": 641327757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.5051745105815257 - ], - [ - 1.5051535445201694, - -3.913451630905797 - ], - [ - 2.408245671232237, - -4.515523531744549 - ], - [ - 3.0103490211630515, - -4.8165647236792495 - ], - [ - 3.6124523710938092, - -4.515523531744549 - ], - [ - 5.117605915613922, - -0.6020719008387516 - ], - [ - 6.020698042326046, - 3.6124209220017462 - ], - [ - 6.622801392256804, - 8.127954936776945 - ], - [ - 6.622801392256804, - 13.245550369360217 - ], - [ - 6.321728751230069, - 18.96522818581289 - ], - [ - 4.8165332745871865, - 26.792131447624456 - ], - [ - 3.913441147875119, - 30.705593561560903 - ], - [ - 3.0103490211630515, - 33.71596354878528 - ], - [ - 2.1072149623282144, - 34.9200863844014 - ], - [ - 2.1072149623282144, - 35.52218973433219 - ], - [ - 2.1072149623282144, - 35.22113805936678 - ], - [ - 2.1072149623282144, - 34.61905567549738 - ], - [ - 2.1072149623282144, - 34.61905567549738 - ] - ], - "pressures": [ - 0.0126953125, - 0.1630859375, - 0.3583984375, - 0.5625, - 0.8134765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.25, - 0.11328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.1072149623282144, - 34.61905567549738 - ] - }, - { - "id": "QmKlFDLNeapzU3ZLHHk1f", - "type": "freedraw", - "x": 284.4426857999237, - "y": 151.29706735025852, - "width": 5.418636624518001, - "height": 32.81285045601183, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1851921613, - "version": 149, - "versionNonce": 1555372227, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.8061842534241919, - -0.6020719008387232 - ], - [ - 2.4082876033549496, - 0 - ], - [ - 3.311379730067017, - 2.7093183122590005 - ], - [ - 3.6124523710937524, - 7.826913744842244 - ], - [ - 3.913441147875119, - 14.750724879941743 - ], - [ - 2.709318312258972, - 24.082823618396162 - ], - [ - 1.8061842534241919, - 28.598347150140683 - ], - [ - 0.9030921267120675, - 31.006634753495632 - ], - [ - 0.3010307089040225, - 32.21077855517311 - ], - [ - -0.3010307089040225, - 32.21077855517311 - ], - [ - -1.2041647677388596, - 32.21077855517311 - ], - [ - -1.5051954766428821, - 32.21077855517311 - ], - [ - -1.5051954766428821, - 32.21077855517311 - ] - ], - "pressures": [ - 0.11328125, - 0.626953125, - 0.8173828125, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.5051954766428821, - 32.21077855517311 - ] - }, - { - "id": "7aM3kiFNe2JaF1gZTKz9u", - "type": "freedraw", - "x": 286.54994269437464, - "y": 150.09292354858104, - "width": 3.0103490211630515, - "height": 32.21077855517311, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 547774413, - "version": 141, - "versionNonce": 1196951789, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4082876033549496, - 32.21077855517311 - ], - [ - -3.0103490211630515, - 31.608696171303706 - ], - [ - -3.0103490211630515, - 31.307665462399683 - ], - [ - -3.0103490211630515, - 30.70560404459161 - ], - [ - -3.0103490211630515, - 30.70560404459161 - ] - ], - "pressures": [ - 0.1044921875, - 0.802734375, - 0.2333984375, - 0.1865234375, - 0.0576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.0103490211630515, - 30.70560404459161 - ] - }, - { - "id": "ZWUIroGQGGjO2iGYlhkRu", - "type": "freedraw", - "x": 215.20455348286754, - "y": 209.39686426028265, - "width": 15.051745105815087, - "height": 18.062115093039466, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 381831853, - "version": 149, - "versionNonce": 1117938509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.6020614178080734 - ], - [ - -0.3010307089040225, - 1.8062261855468762 - ], - [ - -0.602061417808045, - 5.11760591561395 - ], - [ - -1.505174510581469, - 9.031068029550397 - ], - [ - -2.709318312258972, - 12.643499434582822 - ], - [ - -4.214492822840498, - 15.352817746841822 - ], - [ - -6.321728751230069, - 17.159022966327342 - ], - [ - -8.127954936776916, - 17.460053675231393 - ], - [ - -9.934160156262465, - 17.460053675231393 - ], - [ - -11.740365375748013, - 17.460053675231393 - ], - [ - -14.148652979102962, - 16.85799225742332 - ], - [ - -14.750714396911007, - 16.55694058245794 - ], - [ - -15.051745105815087, - 16.255930839615274 - ], - [ - -14.750714396911007, - 16.55694058245794 - ], - [ - -14.148652979102962, - 16.85799225742332 - ], - [ - -14.148652979102962, - 16.85799225742332 - ] - ], - "pressures": [ - 0.029296875, - 0.59765625, - 0.673828125, - 0.7783203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.859375, - 0.1669921875, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.148652979102962, - 16.85799225742332 - ] - }, - { - "id": "m0MmRJmIRrM4py6Tijtm-", - "type": "freedraw", - "x": 216.10766657564102, - "y": 210.9020597369255, - "width": 18.66417651084754, - "height": 17.460032709170036, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 961734275, - "version": 152, - "versionNonce": 2040660995, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.3010307089040225 - ], - [ - 0.3010307089040225, - 1.5051745105815257 - ], - [ - -0.6020823838694582, - 6.020698042326046 - ], - [ - -2.4082876033549496, - 9.63312944735847 - ], - [ - -4.51552353174452, - 12.944509177425516 - ], - [ - -7.224841844003549, - 15.352796780780466 - ], - [ - -10.837273249035945, - 16.85797129136199 - ], - [ - -12.944509177425516, - 17.159002000266014 - ], - [ - -14.75073536297242, - 17.159002000266014 - ], - [ - -16.255909873553946, - 16.55694058245794 - ], - [ - -17.159002000266014, - 15.95485819858854 - ], - [ - -17.761084384135415, - 15.653827489684488 - ], - [ - -18.363145801943517, - 15.051745105815087 - ], - [ - -18.363145801943517, - 14.75073536297242 - ], - [ - -18.363145801943517, - 14.449683688007013 - ], - [ - -18.363145801943517, - 13.847622270198968 - ], - [ - -18.062115093039495, - 13.54657059523359 - ], - [ - -17.761084384135415, - 13.54657059523359 - ], - [ - -17.761084384135415, - 13.54657059523359 - ] - ], - "pressures": [ - 0.03125, - 0.189453125, - 0.970703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8173828125, - 0.4892578125, - 0.259765625, - 0.1806640625, - 0.1279296875, - 0.0615234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -17.761084384135415, - 13.54657059523359 - ] - }, - { - "id": "hXMeuNS06PZGHk_n54WvI", - "type": "freedraw", - "x": 214.30146135615547, - "y": 207.59068000685846, - "width": 21.373515789167868, - "height": 18.363166768004845, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 542259619, - "version": 151, - "versionNonce": 1819439533, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558553, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010516749653789 - ], - [ - 0, - 0.9030921267120959 - ], - [ - 0.3010307089040225, - 3.3113797300670456 - ], - [ - 0.3010307089040225, - 7.525872552907543 - ], - [ - -0.9031130927734807, - 10.536242540131923 - ], - [ - -2.709318312258972, - 13.546591561294917 - ], - [ - -5.418636624518001, - 15.95485819858854 - ], - [ - -9.031068029550397, - 17.76106341807406 - ], - [ - -11.439355632905347, - 18.062115093039466 - ], - [ - -13.546591561294917, - 18.062115093039466 - ], - [ - -15.653827489684488, - 17.460032709170036 - ], - [ - -17.460053675231393, - 16.55694058245794 - ], - [ - -19.868341278586342, - 15.35277581471911 - ], - [ - -20.771433405298467, - 15.051766071876443 - ], - [ - -21.072485080263846, - 15.051766071876443 - ], - [ - -20.771433405298467, - 14.750714396911064 - ], - [ - -20.16935102142901, - 14.750714396911064 - ], - [ - -20.16935102142901, - 14.750714396911064 - ] - ], - "pressures": [ - 0.0537109375, - 0.2509765625, - 0.58984375, - 0.7587890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.97265625, - 0.5966796875, - 0.1474609375, - 0.056640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -20.16935102142901, - 14.750714396911064 - ] - }, - { - "id": "nfv0RMnT9lhndjs_EeQc5", - "type": "freedraw", - "x": 222.42941629293244, - "y": 215.116552559766, - "width": 9.633129447358442, - "height": 13.546591561294946, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 485012451, - "version": 166, - "versionNonce": 1152636109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020823838694582, - -0.9031130927734523 - ], - [ - 0, - -0.9031130927734523 - ], - [ - 1.20412283561609, - 0 - ], - [ - 3.0103490211629946, - 2.4082666372935932 - ], - [ - 4.214492822840441, - 4.515544497805877 - ], - [ - 5.117584949552565, - 6.622759460134091 - ], - [ - 5.719667333421967, - 8.730016354585018 - ], - [ - 6.020698042325989, - 10.837252282974589 - ], - [ - 6.020698042325989, - 11.43933466684399 - ], - [ - 5.117584949552565, - 10.235190865166516 - ], - [ - 4.214492822840441, - 8.730016354585018 - ], - [ - 3.6124104389710396, - 6.92381113509947 - ], - [ - 3.0103490211629946, - 5.117584949552594 - ], - [ - 2.4082666372935932, - 3.0103699872243794 - ], - [ - 1.8062052194854914, - 2.1072359283895707 - ], - [ - 1.20412283561609, - 0.9030921267120959 - ], - [ - 0.602061417808045, - 0 - ], - [ - 0, - -0.9031130927734523 - ], - [ - -0.3010516749654357, - -1.5051745105814973 - ], - [ - -0.6020823838694582, - -1.5051745105814973 - ], - [ - -0.9031130927734807, - -1.8062261855469046 - ], - [ - 0, - -0.9031130927734523 - ], - [ - 1.20412283561609, - 0.9030921267120959 - ], - [ - 3.0103490211629946, - 3.3113797300670456 - ], - [ - 5.418615658456588, - 6.622759460134091 - ], - [ - 6.622759460134091, - 8.428985645680996 - ], - [ - 7.8269032618115375, - 9.63312944735847 - ], - [ - 8.428985645680939, - 10.536242540131923 - ], - [ - 8.730016354584961, - 10.837252282974589 - ], - [ - 8.730016354584961, - 11.138303957939968 - ], - [ - 8.730016354584961, - 11.43933466684399 - ], - [ - 8.428985645680939, - 11.740365375748041 - ], - [ - 8.12793397071556, - 11.740365375748041 - ], - [ - 7.8269032618115375, - 11.740365375748041 - ], - [ - 7.8269032618115375, - 11.740365375748041 - ] - ], - "pressures": [ - 0.0888671875, - 0.4453125, - 0.9423828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.78125, - 0.3525390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.8269032618115375, - 11.740365375748041 - ] - }, - { - "id": "jLYfhiqvMS5LR3TupUc1h", - "type": "freedraw", - "x": 222.128364617967, - "y": 213.6113780491845, - "width": 11.138303957939968, - "height": 17.460053675231393, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 980434563, - "version": 144, - "versionNonce": 1891265155, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010516749654357, - -0.3010516749654073 - ], - [ - 1.5051745105815257, - 0.3010307089040225 - ], - [ - 3.612431405032453, - 2.1072359283895707 - ], - [ - 5.719667333422024, - 4.816554240648543 - ], - [ - 7.525893518968928, - 7.826903261811566 - ], - [ - 9.633129447358499, - 12.04141705071342 - ], - [ - 10.536242540131923, - 14.449683688007013 - ], - [ - 10.837273249035945, - 15.95485819858851 - ], - [ - 11.138303957939968, - 16.857971291361963 - ], - [ - 11.138303957939968, - 17.159002000265986 - ], - [ - 10.536242540131923, - 16.857971291361963 - ], - [ - 10.2352118312279, - 16.55694058245794 - ], - [ - 10.2352118312279, - 16.55694058245794 - ] - ], - "pressures": [ - 0.06640625, - 0.923828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.447265625, - 0.1904296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.2352118312279, - 16.55694058245794 - ] - }, - { - "id": "CcYx_U4vYMYGoJNH_A9Ux", - "type": "freedraw", - "x": 146.2674728407768, - "y": 172.6705726563957, - "width": 37.02734327885233, - "height": 36.124230186078904, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2043929997, - "version": 155, - "versionNonce": 1484047757, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.9030921267120959, - 0.9031130927734239 - ], - [ - -0.9030921267120959, - 0.3010307089040225 - ], - [ - 0.9031130927734523, - -2.7093183122590005 - ], - [ - 3.9134621139364754, - -6.020708525356724 - ], - [ - 7.826924227872951, - -11.138303957939996 - ], - [ - 13.245581818452251, - -16.55694058245794 - ], - [ - 19.266279860778297, - -21.37350530613719 - ], - [ - 24.383864810330863, - -25.286967420073637 - ], - [ - 25.286998869165643, - -25.88903932091239 - ], - [ - 25.588008612008366, - -25.88903932091239 - ], - [ - 25.588008612008366, - -24.38386481033089 - ], - [ - 25.88903932091239, - -21.37350530613719 - ], - [ - 26.19007002981641, - -16.85798177439267 - ], - [ - 27.394213831493857, - -8.127954936776973 - ], - [ - 27.996296215363316, - -3.311400696128402 - ], - [ - 28.899388342075383, - 0 - ], - [ - 29.802522400910163, - 2.709318312258972 - ], - [ - 31.909737363238435, - 6.6227804261954475 - ], - [ - 34.016994257689305, - 8.730016354585018 - ], - [ - 35.22113805936681, - 9.934160156262493 - ], - [ - 35.82322044323621, - 10.235190865166516 - ], - [ - 36.12425115214023, - 10.235190865166516 - ], - [ - 36.12425115214023, - 9.633129447358442 - ], - [ - 36.12425115214023, - 7.826924227872922 - ], - [ - 36.12425115214023, - 6.32172875123004 - ], - [ - 36.12425115214023, - 5.719667333421995 - ], - [ - 36.12425115214023, - 5.719667333421995 - ] - ], - "pressures": [ - 0.08203125, - 0.453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8427734375, - 0.2666015625, - 0.119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 36.12425115214023, - 5.719667333421995 - ] - }, - { - "id": "LzNJb9J6kZgviXyt11yYL", - "type": "freedraw", - "x": 184.19792921240258, - "y": 177.18609618814023, - "width": 43.95117538001318, - "height": 35.82320996020553, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1726432301, - "version": 160, - "versionNonce": 709748163, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.6020823838694014 - ], - [ - -0.3010307089040225, - 0.6020823838694014 - ], - [ - -1.2041438016774464, - -0.3010307089040509 - ], - [ - -1.8062052194855482, - -2.1072359283895707 - ], - [ - -2.1072359283895707, - -5.418636624517973 - ], - [ - -2.1072359283895707, - -9.332098738454448 - ], - [ - -1.8062052194855482, - -15.051755588845765 - ], - [ - -1.505174510581469, - -18.66418699387819 - ], - [ - -0.3010307089040225, - -22.276607915879964 - ], - [ - 1.2041438016775032, - -26.491100738720434 - ], - [ - 3.6124104389710965, - -31.608696171303706 - ], - [ - 3.9134830799978317, - -32.81283997298118 - ], - [ - 3.9134830799978317, - -33.41491187381993 - ], - [ - 3.6124104389710965, - -34.016983774658655 - ], - [ - 3.0103490211630515, - -34.92008638440143 - ], - [ - -0.602061417808045, - -35.22112757633613 - ], - [ - -5.418636624517944, - -32.51180926407716 - ], - [ - -11.43933466684399, - -28.29731644123666 - ], - [ - -20.77143340529841, - -21.975566723945235 - ], - [ - -26.190049063755055, - -18.36314580194349 - ], - [ - -30.40456285265691, - -14.148652979102991 - ], - [ - -34.016994257689305, - -9.332098738454448 - ], - [ - -37.32837398775638, - -5.418636624517973 - ], - [ - -39.1345792072419, - -3.3113797300670456 - ], - [ - -40.03769230001535, - -2.7093183122590005 - ], - [ - -40.03769230001535, - -2.4082876033549496 - ], - [ - -39.73664062504997, - -1.8062052194855482 - ], - [ - -39.435630882207306, - -1.8062052194855482 - ], - [ - -38.833548498337876, - -1.8062052194855482 - ], - [ - -37.93045637162578, - -1.8062052194855482 - ], - [ - -37.6294046966604, - -1.8062052194855482 - ], - [ - -37.6294046966604, - -1.8062052194855482 - ] - ], - "pressures": [ - 0.0458984375, - 0.904296875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8720703125, - 0.3828125, - 0.1923828125, - 0.134765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -37.6294046966604, - -1.8062052194855482 - ] - }, - { - "id": "sz5snEbabeiXlQ1vk090Q", - "type": "freedraw", - "x": 166.43684482826717, - "y": 158.22087848535799, - "width": 6.020698042326046, - "height": 32.511830230138514, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1260584077, - "version": 142, - "versionNonce": 1446939629, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - -0.9031026097427457 - ], - [ - -0.3010307089040225, - -1.2041438016774748 - ], - [ - 0, - -1.2041438016774748 - ], - [ - 1.5051745105815257, - 1.5051745105815257 - ], - [ - 2.4082876033549496, - 5.418636624517973 - ], - [ - 3.612431405032453, - 11.138293474909318 - ], - [ - 4.51552353174452, - 16.25589939052324 - ], - [ - 5.117626881675278, - 20.169361504459715 - ], - [ - 5.719667333422024, - 25.286967420073637 - ], - [ - 5.719667333422024, - 28.297337407298016 - ], - [ - 5.719667333422024, - 30.40455236962623 - ], - [ - 5.418636624518001, - 31.00663475349566 - ], - [ - 5.418636624518001, - 31.30768642846104 - ], - [ - 5.418636624518001, - 31.00663475349566 - ], - [ - 5.418636624518001, - 30.10352166072221 - ], - [ - 5.418636624518001, - 29.501460242914135 - ], - [ - 5.418636624518001, - 29.501460242914135 - ] - ], - "pressures": [ - 0.0576171875, - 0.1083984375, - 0.1953125, - 0.677734375, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.255859375, - 0.13671875, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 5.418636624518001, - 29.501460242914135 - ] - }, - { - "id": "awVGTRxQbEnM52bnLFZZe", - "type": "freedraw", - "x": 168.24305004775272, - "y": 153.10327256974406, - "width": 9.934181122323878, - "height": 41.84390800253155, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1580005805, - "version": 144, - "versionNonce": 464663907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010307089040225 - ], - [ - 0.3010516749653789, - 0.3010411919347007 - ], - [ - 1.5051745105815257, - 2.4082876033549496 - ], - [ - 2.709318312258972, - 6.321749717291425 - ], - [ - 3.612431405032453, - 11.439345149874669 - ], - [ - 4.816596172771256, - 20.169361504459687 - ], - [ - 5.418636624517944, - 25.58799812897766 - ], - [ - 5.719667333422024, - 30.70560404459161 - ], - [ - 6.0207190083874025, - 35.22112757633613 - ], - [ - 5.117605915613922, - 39.13458969027258 - ], - [ - 3.9134621139364754, - 40.33873349195005 - ], - [ - 2.107256894450927, - 41.241846584723504 - ], - [ - 0, - 41.54287729362753 - ], - [ - -1.5051745105815257, - 41.54287729362753 - ], - [ - -2.7092973461976158, - 40.6397642008541 - ], - [ - -3.6124104389710965, - 40.03770278304603 - ], - [ - -3.9134621139364754, - 38.833558981368554 - ], - [ - -3.9134621139364754, - 38.53252827246453 - ], - [ - -3.9134621139364754, - 38.53252827246453 - ] - ], - "pressures": [ - 0.12109375, - 0.58984375, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5341796875, - 0.177734375, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.9134621139364754, - 38.53252827246453 - ] - }, - { - "id": "k0BTHS6ArQHuFNVeoBrku", - "type": "freedraw", - "x": 166.13581411936315, - "y": 156.11363207393777, - "width": 15.051766071876443, - "height": 36.72630208691763, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1301309741, - "version": 145, - "versionNonce": 1472235085, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.6020719008387516 - ], - [ - 2.1072359283895707, - 0 - ], - [ - 3.9134621139364754, - 2.1072464114202205 - ], - [ - 5.719667333422024, - 5.418636624517944 - ], - [ - 7.2248418440034925, - 10.235201348197194 - ], - [ - 9.03104706348904, - 17.460053675231364 - ], - [ - 9.934181122323821, - 21.674546498071862 - ], - [ - 10.235190865166544, - 25.28695693704296 - ], - [ - 9.934181122323821, - 28.297305958205953 - ], - [ - 8.429006611742352, - 30.705593561560903 - ], - [ - 5.117584949552565, - 33.41493283988126 - ], - [ - 2.4082876033549496, - 34.92010735046276 - ], - [ - -0.602061417808045, - 35.82319947717485 - ], - [ - -3.0103490211629946, - 36.124230186078876 - ], - [ - -4.51552353174452, - 36.124230186078876 - ], - [ - -4.816575206709899, - 36.124230186078876 - ], - [ - -4.816575206709899, - 35.52216876827083 - ], - [ - -4.816575206709899, - 35.22111709330545 - ], - [ - -4.816575206709899, - 34.61905567549738 - ], - [ - -4.816575206709899, - 34.61905567549738 - ] - ], - "pressures": [ - 0.0556640625, - 0.75390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9345703125, - 0.78125, - 0.2216796875, - 0.1787109375, - 0.1162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.816575206709899, - 34.61905567549738 - ] - }, - { - "id": "KW7q49FDXNGnIuCOg1lYu", - "type": "freedraw", - "x": 146.56852451574218, - "y": 170.86436743691016, - "width": 36.124230186078904, - "height": 24.383854327300213, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 317425165, - "version": 152, - "versionNonce": 1730908419, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.602061417808045, - 0 - ], - [ - -1.2041438016774748, - 0.3010307089040225 - ], - [ - -0.9031130927734239, - 0 - ], - [ - 2.709318312258972, - -3.0103699872243794 - ], - [ - 6.923832101160826, - -5.418647107548651 - ], - [ - 12.342447759617471, - -7.826924227872922 - ], - [ - 18.36314580194346, - -9.934170639293171 - ], - [ - 23.48075171755744, - -11.439345149874669 - ], - [ - 27.09316215652848, - -12.34245824264812 - ], - [ - 27.695244540397937, - -12.643488951552172 - ], - [ - 26.792131447624456, - -11.138314440970646 - ], - [ - 25.286956937042987, - -8.730026837615696 - ], - [ - 24.383843844269506, - -6.6227804261954475 - ], - [ - 23.78178242646146, - -5.11760591561395 - ], - [ - 23.78178242646146, - -0.9031130927734523 - ], - [ - 24.68487455317353, - 3.3113797300670456 - ], - [ - 26.19007002981641, - 7.2248418440034925 - ], - [ - 27.996296215363316, - 9.63312944735847 - ], - [ - 30.10351117769153, - 11.43933466684399 - ], - [ - 31.307654979368976, - 11.43933466684399 - ], - [ - 31.909737363238435, - 11.740365375748041 - ], - [ - 32.8128294899505, - 11.740365375748041 - ], - [ - 33.715942582723926, - 11.138303957939968 - ], - [ - 34.61905567549741, - 10.235190865166516 - ], - [ - 34.92008638440143, - 9.63312944735847 - ], - [ - 34.92008638440143, - 9.332077772393063 - ], - [ - 34.92008638440143, - 9.332077772393063 - ] - ], - "pressures": [ - 0.037109375, - 0.076171875, - 0.162109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.822265625, - 0.271484375, - 0.0927734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.92008638440143, - 9.332077772393063 - ] - }, - { - "id": "n4OAX9_CgMihxaHLh2lzn", - "type": "freedraw", - "x": 165.5337527015551, - "y": 173.57368574916913, - "width": 3.0103490211629946, - "height": 10.536242540131894, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1131765379, - "version": 142, - "versionNonce": 1512249101, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.3010516749653789 - ], - [ - 0.3010307089040225, - -1.8062261855468762 - ], - [ - 0.602061417808045, - -3.311400696128402 - ], - [ - 0.602061417808045, - -4.816575206709899 - ], - [ - 0.602061417808045, - -6.321749717291397 - ], - [ - 0.602061417808045, - -7.224852327034171 - ], - [ - 0.602061417808045, - -8.127965419807623 - ], - [ - 0.602061417808045, - -9.031068029550397 - ], - [ - 0.9030921267120675, - -9.33209873845442 - ], - [ - 1.20412283561609, - -9.33209873845442 - ], - [ - 1.8062052194855482, - -9.63313993038912 - ], - [ - 2.1072359283895707, - -9.934170639293171 - ], - [ - 2.4082666372935932, - -10.536242540131894 - ], - [ - 2.7092973461976158, - -10.536242540131894 - ], - [ - 3.0103490211629946, - -10.536242540131894 - ], - [ - 3.0103490211629946, - -10.235211831227872 - ], - [ - 3.0103490211629946, - -9.63313993038912 - ], - [ - 3.0103490211629946, - -9.33209873845442 - ], - [ - 3.0103490211629946, - -9.33209873845442 - ] - ], - "pressures": [ - 0.0537109375, - 0.55859375, - 0.908203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.29296875, - 0.154296875, - 0.021484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.0103490211629946, - -9.33209873845442 - ] - }, - { - "id": "40jIPaTyaKyFFJ2symLyM", - "type": "freedraw", - "x": 170.35030694220364, - "y": 162.43537130819848, - "width": 6.321749717291425, - "height": 19.567279120590285, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1026068963, - "version": 142, - "versionNonce": 512191555, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.3010307089040225 - ], - [ - 0, - -0.3010307089040225 - ], - [ - -1.5051745105815257, - 0.9031026097427741 - ], - [ - -2.4082876033549496, - 1.8062157025162264 - ], - [ - -3.311379730067074, - 2.7093183122590005 - ], - [ - -4.51552353174452, - 4.51552353174452 - ], - [ - -5.117605915613922, - 6.321739234260747 - ], - [ - -5.719667333422024, - 8.127944453746295 - ], - [ - -5.719667333422024, - 9.934170639293171 - ], - [ - -6.0207190083874025, - 11.138314440970646 - ], - [ - -6.0207190083874025, - 12.342437276586793 - ], - [ - -5.117605915613922, - 14.449694171037692 - ], - [ - -4.51552353174452, - 16.25589939052324 - ], - [ - -3.9134621139364754, - 17.460043192200715 - ], - [ - -3.311379730067074, - 18.66418699387819 - ], - [ - -3.0103490211629946, - 18.96521770278224 - ], - [ - -2.709318312258972, - 19.266248411686263 - ], - [ - -2.4082876033549496, - 19.266248411686263 - ], - [ - -2.4082876033549496, - 19.266248411686263 - ] - ], - "pressures": [ - 0.0087890625, - 0.068359375, - 0.51171875, - 0.74609375, - 0.8388671875, - 0.904296875, - 0.9384765625, - 0.951171875, - 1, - 1, - 1, - 1, - 1, - 0.98828125, - 0.951171875, - 0.87890625, - 0.724609375, - 0.3837890625, - 0.1123046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.4082876033549496, - 19.266248411686263 - ] - }, - { - "id": "uWudkwFHNR5EgqIEsUp9p", - "type": "freedraw", - "x": 234.16978166868046, - "y": 195.8502936650491, - "width": 20.470402696394387, - "height": 23.480772683618767, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1528110253, - "version": 134, - "versionNonce": 177567619, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.3010307089040509 - ], - [ - 0.3010307089040225, - -0.9031130927734523 - ], - [ - -0.602061417808045, - -2.408287603354978 - ], - [ - -1.8062052194855482, - -4.214492822840498 - ], - [ - -4.214492822840498, - -6.6227804261954475 - ], - [ - -6.020698042326046, - -7.826903261811594 - ], - [ - -8.127954936776973, - -9.031068029550426 - ], - [ - -10.235190865166544, - -9.93418112232385 - ], - [ - -12.041417050713449, - -10.837252282974589 - ], - [ - -14.75073536297242, - -11.439355632905375 - ], - [ - -16.25590987355389, - -11.740386341809398 - ], - [ - -17.460053675231393, - -11.439355632905375 - ], - [ - -18.36314580194346, - -9.93418112232385 - ], - [ - -19.567289603620964, - -6.321728751230069 - ], - [ - -19.868320312524986, - -3.9134621139364754 - ], - [ - -20.169371987490365, - -0.9031130927734523 - ], - [ - -19.868320312524986, - 2.4082666372935932 - ], - [ - -18.664197476908896, - 5.719688299483352 - ], - [ - -16.55694058245797, - 8.730037320646346 - ], - [ - -14.449683688007042, - 9.934160156262493 - ], - [ - -12.342447759617471, - 10.83725228297456 - ], - [ - -9.934160156262521, - 11.43933466684399 - ], - [ - -7.2248418440034925, - 11.74038634180937 - ], - [ - -5.719667333422024, - 11.74038634180937 - ], - [ - -4.214492822840498, - 11.138303957939968 - ], - [ - -3.311379730067074, - 9.934160156262493 - ], - [ - -3.0103490211630515, - 7.826903261811566 - ], - [ - -3.0103490211630515, - 7.224862810064849 - ], - [ - -3.0103490211630515, - 7.224862810064849 - ] - ], - "pressures": [ - 0.05859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.71484375, - 0.2314453125, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.0103490211630515, - 7.224862810064849 - ] - }, - { - "id": "iDqMlOb2btz3UF1r6COp1", - "type": "freedraw", - "x": 230.25631955474398, - "y": 193.1409753527901, - "width": 27.09316215652848, - "height": 25.88903932091239, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1365936579, - "version": 135, - "versionNonce": 759297581, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.5051745105815257, - 1.2041438016774748 - ], - [ - 1.8062052194855482, - 1.2041438016774748 - ], - [ - 1.5051745105815257, - 1.2041438016774748 - ], - [ - -0.3010307089040225, - 1.2041438016774748 - ], - [ - -4.51552353174452, - 0.6020614178080734 - ], - [ - -7.8269032618115375, - -0.602061417808045 - ], - [ - -10.837273249035945, - -2.709318312258972 - ], - [ - -13.84762227019894, - -5.117584949552594 - ], - [ - -16.556940582457912, - -7.224862810064849 - ], - [ - -20.470402696394387, - -9.63312944735847 - ], - [ - -22.577638624783958, - -10.837273249035945 - ], - [ - -24.082813135365484, - -11.439355632905347 - ], - [ - -24.684895519234885, - -12.04141705071342 - ], - [ - -24.985926228138908, - -12.04141705071342 - ], - [ - -24.985926228138908, - -11.74038634180937 - ], - [ - -24.985926228138908, - -9.934160156262493 - ], - [ - -25.28695693704293, - -6.622759460134091 - ], - [ - -25.28695693704293, - -3.010349021163023 - ], - [ - -23.78178242646146, - 1.8062052194855482 - ], - [ - -21.975577206975913, - 3.9134621139364754 - ], - [ - -19.26625889471694, - 6.020698042326046 - ], - [ - -16.25590987355389, - 7.826903261811566 - ], - [ - -11.43933466684399, - 10.235190865166516 - ], - [ - -8.428985645680996, - 11.439355632905347 - ], - [ - -5.719667333421967, - 12.643478468521494 - ], - [ - -3.6124104389710965, - 13.546570595233561 - ], - [ - -2.4082876033549496, - 13.847622270198968 - ], - [ - -2.4082876033549496, - 12.643478468521494 - ], - [ - -3.0103490211629946, - 11.439355632905347 - ], - [ - -3.0103490211629946, - 11.439355632905347 - ] - ], - "pressures": [ - 0.078125, - 0.2080078125, - 0.234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9619140625, - 0.2158203125, - 0.048828125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.0103490211629946, - 11.439355632905347 - ] - }, - { - "id": "diMJ8a99kStW6EcODsY7T", - "type": "freedraw", - "x": 233.26666857590698, - "y": 190.43165704053112, - "width": 23.78178242646146, - "height": 26.190049063755026, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1280645763, - "version": 121, - "versionNonce": 950112035, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -21.975577206975856, - -9.934160156262493 - ], - [ - -22.87866933368798, - -6.6227804261954475 - ], - [ - -22.87866933368798, - -4.816575206709928 - ], - [ - -22.276607915879936, - 2.709318312258972 - ], - [ - -21.072464114202432, - 5.719667333421995 - ], - [ - -19.266258894716884, - 8.127954936776945 - ], - [ - -17.159002000265957, - 10.536221574070538 - ], - [ - -14.148652979102962, - 13.84762227019894 - ], - [ - -12.041396084652035, - 15.352796780780466 - ], - [ - -9.633129447358442, - 15.95485819858851 - ], - [ - -7.525872552907515, - 16.255888907492533 - ], - [ - -5.418636624517944, - 15.95485819858851 - ], - [ - -2.1072359283895707, - 14.449683688007013 - ], - [ - 0, - 13.546591561294917 - ], - [ - 0.9031130927734807, - 13.245539886329539 - ], - [ - 0.9031130927734807, - 13.245539886329539 - ] - ], - "pressures": [ - 0.1982421875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6533203125, - 0.3876953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.9031130927734807, - 13.245539886329539 - ] - }, - { - "id": "bvhSfnvDGowt1pOlrMyV1", - "type": "freedraw", - "x": 219.72009798067342, - "y": 193.74303677059817, - "width": 36.12420922001752, - "height": 48.165647236792324, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1664863715, - "version": 242, - "versionNonce": 1197254797, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020823838694014, - 0.3010516749653789 - ], - [ - -1.2041438016774464, - 0.3010516749653789 - ], - [ - -1.8062261855468478, - 0 - ], - [ - -2.4082876033549496, - -0.6020614178080734 - ], - [ - -3.3114006961283735, - -1.2041228356161184 - ], - [ - -3.9134621139364185, - -2.4082876033549496 - ], - [ - -4.515544497805877, - -3.6124104389710965 - ], - [ - -5.418636624517944, - -6.321728751230069 - ], - [ - -5.719688299483323, - -8.428985645680996 - ], - [ - -5.719688299483323, - -10.235190865166544 - ], - [ - -5.719688299483323, - -11.740365375748041 - ], - [ - -5.719688299483323, - -12.643478468521494 - ], - [ - -5.117605915613922, - -13.245539886329539 - ], - [ - -4.816575206709899, - -13.546591561294946 - ], - [ - -4.214513788901854, - -13.847622270198968 - ], - [ - -3.010369987224351, - -13.847622270198968 - ], - [ - -1.5051954766428253, - -13.546591561294946 - ], - [ - -0.6020823838694014, - -13.245539886329539 - ], - [ - 0, - -12.944509177425516 - ], - [ - 1.5051745105815257, - -11.439334666844019 - ], - [ - 2.709318312259029, - -10.235190865166544 - ], - [ - 3.913441147875119, - -9.03104706348907 - ], - [ - 4.8165542406486, - -8.127954936776973 - ], - [ - 5.418615658456645, - -7.2248208779421645 - ], - [ - 6.020698042326046, - -6.321728751230069 - ], - [ - 6.622759460134091, - -4.816554240648571 - ], - [ - 6.92381113509947, - -4.2144718567791415 - ], - [ - 7.224841844003549, - -3.9134621139364754 - ], - [ - 7.525872552907572, - -3.3113797300670456 - ], - [ - 7.826903261811594, - -3.010349021163023 - ], - [ - 8.428985645680996, - -2.4082876033549496 - ], - [ - 8.730016354585018, - -1.8062052194855482 - ], - [ - 9.33207777239312, - -1.2041228356161184 - ], - [ - 10.536221574070566, - -0.9031130927734523 - ], - [ - 12.041396084652092, - -0.3010307089040509 - ], - [ - 13.245539886329539, - -0.3010307089040509 - ], - [ - 14.750714396911064, - -0.6020614178080734 - ], - [ - 17.159002000266014, - -2.709297346197644 - ], - [ - 18.363145801943517, - -4.2144718567791415 - ], - [ - 18.965207219751562, - -4.816554240648571 - ], - [ - 18.965207219751562, - -5.11760591561395 - ], - [ - 19.266237928655585, - -5.719646367360667 - ], - [ - 19.868320312524986, - -6.321728751230069 - ], - [ - 20.771433405298467, - -6.923811135099498 - ], - [ - 21.674525532010534, - -7.2248208779421645 - ], - [ - 22.878669333688038, - -7.826924227872922 - ], - [ - 23.17970004259206, - -7.826924227872922 - ], - [ - 23.48075171755744, - -7.826924227872922 - ], - [ - 23.78178242646146, - -7.826924227872922 - ], - [ - 24.684874553173586, - -7.2248208779421645 - ], - [ - 25.58798764594701, - -6.6227804261954475 - ], - [ - 26.491100738720434, - -6.020698042326046 - ], - [ - 27.394192865432558, - -4.816554240648571 - ], - [ - 27.69522357433658, - -4.2144718567791415 - ], - [ - 27.996254283240603, - -3.3113797300670456 - ], - [ - 27.996254283240603, - -2.1072359283895707 - ], - [ - 27.996254283240603, - -0.6020614178080734 - ], - [ - 27.093162156528535, - 0.9031130927734239 - ], - [ - 24.985926228138965, - 3.0103490211629946 - ], - [ - 23.78178242646146, - 4.214492822840498 - ], - [ - 22.577638624784015, - 5.418636624517973 - ], - [ - 21.373494823106512, - 6.6227804261954475 - ], - [ - 20.771433405298467, - 6.92381113509947 - ], - [ - 20.16935102142901, - 7.2248418440034925 - ], - [ - 19.567289603620964, - 7.525893518968871 - ], - [ - 18.363145801943517, - 7.525893518968871 - ], - [ - 17.460032709170036, - 7.826945193934279 - ], - [ - 15.954858198588568, - 8.127954936776945 - ], - [ - 15.051745105815087, - 8.127954936776945 - ], - [ - 14.14865297910302, - 7.826945193934279 - ], - [ - 12.944509177425516, - 7.525893518968871 - ], - [ - 12.041396084652092, - 7.525893518968871 - ], - [ - 11.138303957939968, - 7.2248418440034925 - ], - [ - 9.934160156262521, - 7.2248418440034925 - ], - [ - 9.33207777239312, - 7.2248418440034925 - ], - [ - 8.730016354585018, - 7.2248418440034925 - ], - [ - 7.525872552907572, - 7.2248418440034925 - ], - [ - 6.92381113509947, - 7.826945193934279 - ], - [ - 6.622759460134091, - 8.127954936776945 - ], - [ - 6.020698042326046, - 8.730016354585018 - ], - [ - 4.8165542406486, - 10.235211831227872 - ], - [ - 4.214492822840498, - 11.74038634180937 - ], - [ - 3.6124104389710965, - 13.245560852390895 - ], - [ - 3.6124104389710965, - 14.44970465406837 - ], - [ - 3.6124104389710965, - 15.051766071876415 - ], - [ - 3.6124104389710965, - 15.954879164649867 - ], - [ - 4.214492822840498, - 17.159022966327342 - ], - [ - 5.117584949552622, - 18.96522818581289 - ], - [ - 6.020698042326046, - 20.470402696394387 - ], - [ - 6.622759460134091, - 21.975577206975913 - ], - [ - 7.826903261811594, - 23.781782426461433 - ], - [ - 8.428985645680996, - 25.588008612008338 - ], - [ - 9.03104706348904, - 27.69524454039791 - ], - [ - 9.03104706348904, - 29.200419050979406 - ], - [ - 9.33207777239312, - 30.70559356156093 - ], - [ - 9.33207777239312, - 31.00664523652631 - ], - [ - 9.33207777239312, - 31.608706654334355 - ], - [ - 9.33207777239312, - 32.51181974710781 - ], - [ - 8.428985645680996, - 33.71596354878528 - ], - [ - 7.525872552907572, - 34.318024966593356 - ], - [ - 6.622759460134091, - 34.318024966593356 - ], - [ - 4.8165542406486, - 34.318024966593356 - ], - [ - 2.709318312259029, - 33.11388116491588 - ], - [ - -0.3010516749653789, - 30.70559356156093 - ], - [ - -3.612431405032396, - 28.59835763317136 - ], - [ - -5.418636624517944, - 27.394234797555214 - ], - [ - -6.020719008387346, - 26.491100738720434 - ], - [ - -7.224862810064849, - 24.38388577639222 - ], - [ - -7.525893518968871, - 22.878711265810693 - ], - [ - -7.826924227872894, - 21.37351578916784 - ], - [ - -8.127954936776916, - 19.567289603620935 - ], - [ - -8.127954936776916, - 18.363166768004817 - ], - [ - -8.127954936776916, - 16.25590987355389 - ], - [ - -7.525893518968871, - 14.148652979102991 - ], - [ - -6.321749717291425, - 11.138303957939968 - ], - [ - -5.117605915613922, - 8.428985645680967 - ], - [ - -3.9134621139364185, - 6.321770683352753 - ], - [ - -3.612431405032396, - 5.719667333421995 - ], - [ - -3.3114006961283735, - 4.816575206709899 - ], - [ - -2.709318312258972, - 3.6124314050324244 - ], - [ - -2.107256894450927, - 2.107256894450927 - ], - [ - -0.9031130927734239, - 0 - ], - [ - -0.9031130927734239, - -0.3010307089040509 - ], - [ - -0.9031130927734239, - -0.6020614178080734 - ], - [ - -1.2041438016774464, - -1.5051745105815257 - ], - [ - -1.5051954766428253, - -2.1072359283895707 - ], - [ - -2.107256894450927, - -2.709297346197644 - ], - [ - -2.709318312258972, - -3.3113797300670456 - ], - [ - -3.010369987224351, - -3.9134621139364754 - ], - [ - -3.3114006961283735, - -5.11760591561395 - ], - [ - -3.3114006961283735, - -6.020698042326046 - ], - [ - -3.3114006961283735, - -6.923811135099498 - ], - [ - -3.3114006961283735, - -7.826924227872922 - ], - [ - -3.010369987224351, - -7.525872552907543 - ], - [ - -2.4082876033549496, - -6.6227804261954475 - ], - [ - -2.4082876033549496, - -6.321728751230069 - ], - [ - -2.4082876033549496, - -6.321728751230069 - ] - ], - "pressures": [ - 0.0576171875, - 0.2705078125, - 0.5205078125, - 0.64453125, - 0.8515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9921875, - 1, - 1, - 1, - 0.990234375, - 0.9921875, - 1, - 0.990234375, - 0.98828125, - 0.98828125, - 0.9921875, - 0.98828125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.951171875, - 0.5205078125, - 0.203125, - 0.1142578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.4082876033549496, - -6.321728751230069 - ] - }, - { - "id": "wQzv0dZh4sOMYKSpfEL0f", - "type": "freedraw", - "x": 224.83768293022604, - "y": 188.3244001460802, - "width": 22.878690299749394, - "height": 41.54286681059688, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1215812333, - "version": 148, - "versionNonce": 1753854659, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.107256894450927, - 1.5051745105814973 - ], - [ - 2.4082876033549496, - 1.5051745105814973 - ], - [ - 2.4082876033549496, - 1.8062261855468762 - ], - [ - 0.6020823838694014, - 2.7093392783203285 - ], - [ - -0.6020614178081019, - 3.311400696128402 - ], - [ - -1.8062052194855482, - 3.311400696128402 - ], - [ - -3.311379730067074, - 3.010349021163023 - ], - [ - -4.8165542406486, - 2.107256894450927 - ], - [ - -6.321728751230069, - 0.6020823838694014 - ], - [ - -7.525872552907572, - 0 - ], - [ - -8.730016354585018, - -1.2041438016774748 - ], - [ - -9.633129447358499, - -2.7093183122590005 - ], - [ - -11.138303957939968, - -4.51552353174452 - ], - [ - -12.041396084652092, - -5.418636624517973 - ], - [ - -13.245539886329539, - -6.321728751230069 - ], - [ - -14.14865297910302, - -6.92381113509947 - ], - [ - -15.352796780780466, - -7.224841844003521 - ], - [ - -16.85797129136199, - -7.525872552907543 - ], - [ - -17.761084384135415, - -6.6227804261954475 - ], - [ - -18.363145801943517, - -4.816554240648571 - ], - [ - -18.965207219751562, - -2.4082876033549496 - ], - [ - -20.169351021429065, - 1.5051745105814973 - ], - [ - -20.470402696394444, - 3.6124314050324244 - ], - [ - -20.470402696394444, - 5.418636624517973 - ], - [ - -20.169351021429065, - 7.224862810064849 - ], - [ - -19.26625889471694, - 9.934160156262493 - ], - [ - -16.85797129136199, - 14.44970465406837 - ], - [ - -15.352796780780466, - 16.55694058245794 - ], - [ - -14.14865297910302, - 18.062115093039438 - ], - [ - -12.944509177425516, - 19.26627986077827 - ], - [ - -11.439334666844047, - 20.771454371359795 - ], - [ - -9.03104706348904, - 23.48075171755741 - ], - [ - -7.826903261811594, - 24.985926228138908 - ], - [ - -6.92381113509947, - 25.88903932091236 - ], - [ - -6.321728751230069, - 26.792152413685812 - ], - [ - -5.418636624518001, - 27.99627524930193 - ], - [ - -4.8165542406486, - 29.802522400910192 - ], - [ - -4.51552353174452, - 31.608706654334355 - ], - [ - -4.214492822840498, - 33.11388116491588 - ], - [ - -4.214492822840498, - 33.71596354878528 - ], - [ - -4.214492822840498, - 34.01699425768933 - ], - [ - -4.8165542406486, - 33.71596354878528 - ], - [ - -4.8165542406486, - 33.71596354878528 - ] - ], - "pressures": [ - 0.048828125, - 0.166015625, - 0.1796875, - 0.3642578125, - 0.8173828125, - 0.96484375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8896484375, - 0.1044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.8165542406486, - 33.71596354878528 - ] - }, - { - "id": "O1yAbO0gmghuq1ktNxXdj", - "type": "freedraw", - "x": 230.557350263648, - "y": 189.52856491381903, - "width": 27.394213831493914, - "height": 45.456328924533324, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 953917667, - "version": 153, - "versionNonce": 70389485, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010516749653789, - 0.30100974284266613 - ], - [ - 1.8062261855469046, - 1.5051745105814973 - ], - [ - 2.107256894450927, - 1.8061842534241919 - ], - [ - 3.3114006961284304, - 3.010349021163023 - ], - [ - 3.612431405032453, - 3.010349021163023 - ], - [ - 3.612431405032453, - 3.311358764005689 - ], - [ - 2.709318312258972, - 3.612410438971068 - ], - [ - 0, - 3.9134411478750906 - ], - [ - -1.505174510581469, - 3.9134411478750906 - ], - [ - -3.311379730067017, - 3.010349021163023 - ], - [ - -5.418636624517944, - 1.8061842534241919 - ], - [ - -8.428985645680996, - -0.9031340588348087 - ], - [ - -9.934160156262465, - -3.010349021163023 - ], - [ - -11.138303957939968, - -4.51552353174452 - ], - [ - -12.342447759617414, - -6.321749717291425 - ], - [ - -13.245539886329539, - -8.127975902838301 - ], - [ - -14.750714396911007, - -10.53626350619328 - ], - [ - -15.95485819858851, - -11.740386341809398 - ], - [ - -17.159002000266014, - -12.342468725678799 - ], - [ - -18.664176510847483, - -12.944530143486872 - ], - [ - -21.072464114202432, - -13.245581818452251 - ], - [ - -22.276607915879936, - -12.944530143486872 - ], - [ - -23.179700042592003, - -12.342468725678799 - ], - [ - -23.78178242646146, - -11.138324924001324 - ], - [ - -23.78178242646146, - -9.031068029550397 - ], - [ - -23.78178242646146, - -6.321749717291425 - ], - [ - -22.276607915879936, - -1.2041647677388312 - ], - [ - -21.072464114202432, - 2.4082666372935932 - ], - [ - -19.567289603620964, - 5.719646367360639 - ], - [ - -17.76106341807406, - 9.03104706348904 - ], - [ - -16.556940582457912, - 11.138282991878611 - ], - [ - -14.750714396911007, - 13.245539886329539 - ], - [ - -12.944509177425516, - 15.35277581471911 - ], - [ - -11.138303957939968, - 17.460032709170036 - ], - [ - -10.235190865166487, - 18.965207219751534 - ], - [ - -9.03104706348904, - 20.47038173033303 - ], - [ - -8.428985645680996, - 21.975556240914557 - ], - [ - -7.8269032618115375, - 24.383843844269506 - ], - [ - -7.2248418440034925, - 28.59835763317136 - ], - [ - -7.2248418440034925, - 31.006624270464954 - ], - [ - -7.8269032618115375, - 31.90971639717705 - ], - [ - -8.428985645680996, - 32.21074710608107 - ], - [ - -9.332077772393063, - 32.21074710608107 - ], - [ - -10.837252282974589, - 31.90971639717705 - ], - [ - -13.245539886329539, - 31.006624270464954 - ], - [ - -14.449683688006985, - 30.103532143752858 - ], - [ - -14.449683688006985, - 29.80248046878748 - ], - [ - -14.449683688006985, - 29.80248046878748 - ] - ], - "pressures": [ - 0.015625, - 0.044921875, - 0.125, - 0.1416015625, - 0.1865234375, - 0.2275390625, - 0.3271484375, - 0.4853515625, - 0.6025390625, - 0.6591796875, - 0.67578125, - 0.6923828125, - 0.705078125, - 0.720703125, - 0.728515625, - 0.734375, - 0.734375, - 0.7421875, - 0.7421875, - 0.740234375, - 0.740234375, - 0.744140625, - 0.74609375, - 0.7568359375, - 0.7685546875, - 0.7685546875, - 0.7763671875, - 0.8173828125, - 0.83203125, - 0.8515625, - 0.8662109375, - 0.8662109375, - 0.859375, - 0.8349609375, - 0.78515625, - 0.7705078125, - 0.7685546875, - 0.7646484375, - 0.7705078125, - 0.7626953125, - 0.748046875, - 0.751953125, - 0.751953125, - 0.740234375, - 0.630859375, - 0.3251953125, - 0.2021484375, - 0.1611328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -14.449683688006985, - 29.80248046878748 - ] - }, - { - "id": "TrCuKvSMwTAHWLUFhoI4J", - "type": "freedraw", - "x": 231.7614940653255, - "y": 192.53891393498205, - "width": 20.771433405298467, - "height": 46.96150343511485, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1984633411, - "version": 163, - "versionNonce": 451699299, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.8062261855469046 - ], - [ - -0.6020614178081019, - -3.311400696128402 - ], - [ - -1.5051745105815257, - -4.816575206709928 - ], - [ - -3.311379730067074, - -7.224862810064877 - ], - [ - -4.51552353174452, - -8.730037320646375 - ], - [ - -6.321728751230069, - -10.536242540131923 - ], - [ - -9.03104706348904, - -12.944530143486872 - ], - [ - -11.138303957939968, - -13.847643236260325 - ], - [ - -12.643478468521494, - -14.449704654068398 - ], - [ - -14.14865297910302, - -14.449704654068398 - ], - [ - -15.653827489684488, - -14.148673945164347 - ], - [ - -16.55694058245797, - -13.546612527356302 - ], - [ - -17.159002000266014, - -12.04141705071342 - ], - [ - -17.460032709170036, - -9.93418112232385 - ], - [ - -17.761084384135415, - -7.525872552907543 - ], - [ - -18.062115093039438, - -4.214513788901854 - ], - [ - -18.062115093039438, - -3.010349021163023 - ], - [ - -17.460032709170036, - -2.107256894450927 - ], - [ - -16.255909873553946, - -0.6020823838694298 - ], - [ - -15.352796780780466, - 1.8062052194855198 - ], - [ - -13.84762227019894, - 4.214471856779113 - ], - [ - -12.342447759617471, - 7.224820877942136 - ], - [ - -11.74036537574807, - 8.73001635458499 - ], - [ - -11.43933466684399, - 10.235190865166516 - ], - [ - -11.74036537574807, - 12.643457502460109 - ], - [ - -12.944509177425516, - 14.148632013041606 - ], - [ - -14.14865297910302, - 15.051766071876415 - ], - [ - -15.653827489684488, - 15.051766071876415 - ], - [ - -17.159002000266014, - 15.051766071876415 - ], - [ - -18.363145801943517, - 14.449683688007013 - ], - [ - -19.868320312524986, - 14.449683688007013 - ], - [ - -20.16935102142901, - 14.449683688007013 - ], - [ - -20.470402696394387, - 14.449683688007013 - ], - [ - -20.470402696394387, - 15.051766071876415 - ], - [ - -20.771433405298467, - 16.857950325300607 - ], - [ - -20.771433405298467, - 19.266237928655556 - ], - [ - -20.470402696394387, - 21.674525532010506 - ], - [ - -19.868320312524986, - 23.480730751496054 - ], - [ - -18.363145801943517, - 25.588008612008338 - ], - [ - -15.653827489684488, - 28.899367376014027 - ], - [ - -14.14865297910302, - 31.006624270464954 - ], - [ - -12.944509177425516, - 32.21076807214243 - ], - [ - -12.041396084652092, - 32.51179878104645 - ], - [ - -11.138303957939968, - 32.21076807214243 - ], - [ - -10.235190865166544, - 31.608706654334355 - ], - [ - -9.332077772393063, - 30.705572595499575 - ], - [ - -8.127954936776973, - 28.899367376014027 - ], - [ - -6.92381113509947, - 26.190049063755026 - ], - [ - -5.719667333422024, - 21.07246411420246 - ], - [ - -5.117584949552622, - 18.664176510847483 - ], - [ - -4.816554240648543, - 17.460032709170008 - ], - [ - -4.816554240648543, - 16.55694058245794 - ], - [ - -5.418636624518001, - 14.750714396911036 - ], - [ - -6.020698042326046, - 12.944509177425488 - ], - [ - -6.321728751230069, - 11.43933466684399 - ], - [ - -6.6227804261954475, - 10.536242540131894 - ], - [ - -6.92381113509947, - 10.536242540131894 - ], - [ - -6.92381113509947, - 10.536242540131894 - ] - ], - "pressures": [ - 0.0576171875, - 0.275390625, - 0.384765625, - 0.5126953125, - 0.6337890625, - 0.6845703125, - 0.732421875, - 0.7763671875, - 0.8056640625, - 0.83203125, - 0.8408203125, - 0.8408203125, - 0.8388671875, - 0.8349609375, - 0.82421875, - 0.8076171875, - 0.744140625, - 0.7421875, - 0.73046875, - 0.73046875, - 0.73046875, - 0.728515625, - 0.69921875, - 0.6904296875, - 0.697265625, - 0.69921875, - 0.697265625, - 0.69921875, - 0.712890625, - 0.71484375, - 0.71875, - 0.73046875, - 0.736328125, - 0.74609375, - 0.7421875, - 0.734375, - 0.724609375, - 0.705078125, - 0.703125, - 0.701171875, - 0.69921875, - 0.6865234375, - 0.6845703125, - 0.6806640625, - 0.67578125, - 0.669921875, - 0.66015625, - 0.6572265625, - 0.6474609375, - 0.6494140625, - 0.6494140625, - 0.6474609375, - 0.64453125, - 0.599609375, - 0.5224609375, - 0.3974609375, - 0.224609375, - 0.162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.92381113509947, - 10.536242540131894 - ] - }, - { - "id": "EOGGNrwm665j77_6fUQPV", - "type": "freedraw", - "x": 228.45011433525843, - "y": 188.0233904032375, - "width": 17.761084384135415, - "height": 35.82319947717485, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1543059907, - "version": 131, - "versionNonce": 575383885, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -14.148652979102962, - -13.546612527356274 - ], - [ - -15.051766071876443, - -13.847643236260296 - ], - [ - -15.352796780780466, - -13.847643236260296 - ], - [ - -16.25590987355389, - -13.245581818452223 - ], - [ - -16.857971291361935, - -11.740407307870726 - ], - [ - -17.460053675231393, - -9.93418112232385 - ], - [ - -17.761084384135415, - -7.525893518968871 - ], - [ - -17.761084384135415, - -3.612452371093781 - ], - [ - -17.761084384135415, - -0.9031340588347803 - ], - [ - -17.159022966327313, - 1.5051745105815257 - ], - [ - -15.954879164649867, - 4.2144718567791415 - ], - [ - -14.750735362972364, - 6.923790169038142 - ], - [ - -12.944530143486872, - 10.235169899105188 - ], - [ - -11.74038634180937, - 12.342426793556115 - ], - [ - -10.235211831227844, - 14.148632013041635 - ], - [ - -9.031068029550397, - 15.95485819858854 - ], - [ - -6.92381113509947, - 18.664155544786155 - ], - [ - -5.418636624517944, - 20.47038173033306 - ], - [ - -4.214492822840498, - 21.373473857045155 - ], - [ - -3.9134621139364185, - 21.975556240914557 - ], - [ - -3.612431405032396, - 21.975556240914557 - ], - [ - -4.214492822840498, - 21.975556240914557 - ], - [ - -4.816575206709899, - 21.975556240914557 - ], - [ - -5.117605915613922, - 21.07246411420249 - ], - [ - -5.117605915613922, - 20.771412439237082 - ], - [ - -5.117605915613922, - 20.771412439237082 - ] - ], - "pressures": [ - 0.0703125, - 0.6162109375, - 0.626953125, - 0.626953125, - 0.646484375, - 0.6474609375, - 0.6494140625, - 0.6494140625, - 0.6494140625, - 0.6552734375, - 0.66015625, - 0.66796875, - 0.66796875, - 0.662109375, - 0.669921875, - 0.669921875, - 0.6640625, - 0.6533203125, - 0.6513671875, - 0.638671875, - 0.625, - 0.6240234375, - 0.470703125, - 0.2734375, - 0.1435546875, - 0.0888671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.117605915613922, - 20.771412439237082 - ] - }, - { - "id": "uSmfQIFRuQbNL_5usJj4r", - "type": "freedraw", - "x": 217.91387179512657, - "y": 191.03373942440052, - "width": 10.536242540131923, - "height": 13.245560852390895, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 99254083, - "version": 142, - "versionNonce": 949493251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.30100974284269455 - ], - [ - -0.6020614178081019, - 0.6020614178080734 - ], - [ - -0.9030921267121244, - 0.6020614178080734 - ], - [ - -1.2041438016775032, - 0.6020614178080734 - ], - [ - -1.8062052194855482, - 0.30100974284269455 - ], - [ - -2.1072359283895707, - -0.6020823838694014 - ], - [ - -2.709318312259029, - -2.107256894450927 - ], - [ - -3.0103490211630515, - -6.020698042326018 - ], - [ - -3.0103490211630515, - -8.429006611742324 - ], - [ - -2.709318312259029, - -10.536242540131894 - ], - [ - -2.4082876033550065, - -11.74038634180937 - ], - [ - -1.8062052194855482, - -12.342468725678799 - ], - [ - -1.2041438016775032, - -12.643499434582822 - ], - [ - 0, - -12.643499434582822 - ], - [ - 1.505174510581469, - -12.342468725678799 - ], - [ - 3.0103490211629946, - -11.439355632905347 - ], - [ - 4.816575206709899, - -9.332119704515776 - ], - [ - 5.719667333421967, - -7.5258935189689 - ], - [ - 6.020719008387346, - -6.020698042326018 - ], - [ - 6.020719008387346, - -4.51552353174452 - ], - [ - 5.117605915613922, - -2.408308569416306 - ], - [ - 3.9134621139364185, - -1.2041647677388312 - ], - [ - 2.4082876033549496, - 0 - ], - [ - 0.3010307089040225, - 0.6020614178080734 - ], - [ - -1.5051745105815257, - 0.6020614178080734 - ], - [ - -3.6124104389710965, - -0.9031130927734523 - ], - [ - -4.214492822840498, - -2.7093392783203285 - ], - [ - -4.515523531744577, - -4.51552353174452 - ], - [ - -4.515523531744577, - -5.418657590579329 - ], - [ - -4.214492822840498, - -6.020698042326018 - ], - [ - -3.9134621139364754, - -6.321749717291425 - ], - [ - -3.6124104389710965, - -6.923832101160826 - ], - [ - -2.709318312259029, - -7.5258935189689 - ], - [ - -1.8062052194855482, - -7.5258935189689 - ], - [ - -0.9030921267121244, - -7.5258935189689 - ], - [ - -0.6020614178081019, - -7.5258935189689 - ], - [ - -0.6020614178081019, - -7.5258935189689 - ] - ], - "pressures": [ - 0.052734375, - 0.0712890625, - 0.17578125, - 0.2294921875, - 0.2685546875, - 0.3427734375, - 0.3701171875, - 0.4189453125, - 0.64453125, - 0.7724609375, - 0.9150390625, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.9814453125, - 0.9599609375, - 0.9365234375, - 0.931640625, - 0.927734375, - 0.927734375, - 0.92578125, - 0.927734375, - 0.9365234375, - 0.947265625, - 0.951171875, - 0.953125, - 0.953125, - 0.9384765625, - 0.9150390625, - 0.6591796875, - 0.4111328125, - 0.166015625, - 0.1201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.6020614178081019, - -7.5258935189689 - ] - }, - { - "id": "TTxMkRHZ-u1YSLCCQuYjU", - "type": "freedraw", - "x": 215.806635866737, - "y": 187.72233872827212, - "width": 15.051766071876386, - "height": 41.241836101692854, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 407776141, - "version": 158, - "versionNonce": 1392703405, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5051745105815257, - 0.3010516749653789 - ], - [ - -2.107256894450927, - 0.9030921267120959 - ], - [ - -2.107256894450927, - 1.8062261855469046 - ], - [ - -2.107256894450927, - 3.010349021163023 - ], - [ - -1.8062261855469046, - 4.816575206709928 - ], - [ - -0.6020823838694582, - 7.224841844003521 - ], - [ - 0.602061417808045, - 8.428985645680996 - ], - [ - 1.8062052194854914, - 9.03104706348904 - ], - [ - 3.0103490211629946, - 9.03104706348904 - ], - [ - 5.719667333421967, - 9.03104706348904 - ], - [ - 7.525872552907515, - 9.03104706348904 - ], - [ - 9.03104706348904, - 9.03104706348904 - ], - [ - 9.633129447358442, - 8.730016354585018 - ], - [ - 10.235190865166487, - 8.730016354585018 - ], - [ - 11.138303957939968, - 8.428985645680996 - ], - [ - 11.740365375748013, - 8.428985645680996 - ], - [ - 12.041396084652035, - 8.127954936776973 - ], - [ - 12.342447759617414, - 8.127954936776973 - ], - [ - 12.643478468521437, - 8.428985645680996 - ], - [ - 12.94450917742546, - 9.03104706348904 - ], - [ - 12.94450917742546, - 9.934160156262493 - ], - [ - 12.643478468521437, - 10.837273249035945 - ], - [ - 12.041396084652035, - 11.740365375748041 - ], - [ - 10.53622157407051, - 13.847643236260325 - ], - [ - 9.03104706348904, - 15.051766071876443 - ], - [ - 7.2248418440034925, - 16.55694058245794 - ], - [ - 5.719667333421967, - 18.363166768004845 - ], - [ - 3.6124104389710396, - 20.77143340529844 - ], - [ - 2.4082666372935932, - 22.577638624783987 - ], - [ - 0.9030921267120675, - 24.684895519234914 - ], - [ - 0, - 26.792131447624485 - ], - [ - -0.9031130927734807, - 28.89940930813674 - ], - [ - -1.2041438016775032, - 31.307654979369005 - ], - [ - -1.2041438016775032, - 32.81285045601186 - ], - [ - -0.9031130927734807, - 34.61905567549741 - ], - [ - 0, - 36.72629160388698 - ], - [ - 1.8062052194854914, - 39.435630882207306 - ], - [ - 3.311379730067017, - 40.3387230089194 - ], - [ - 4.816554240648543, - 41.241836101692854 - ], - [ - 6.020698042325989, - 41.241836101692854 - ], - [ - 7.2248418440034925, - 41.241836101692854 - ], - [ - 9.332077772393063, - 39.73666159111133 - ], - [ - 10.837273249035889, - 37.6294046966604 - ], - [ - 12.041396084652035, - 35.22111709330545 - ], - [ - 12.342447759617414, - 33.11388116491588 - ], - [ - 12.643478468521437, - 30.404583818718265 - ], - [ - 12.643478468521437, - 27.093162156528507 - ], - [ - 12.342447759617414, - 22.276607915879936 - ], - [ - 11.740365375748013, - 20.470402696394416 - ], - [ - 10.837273249035889, - 19.567289603620964 - ], - [ - 9.633129447358442, - 18.965207219751534 - ], - [ - 9.332077772393063, - 18.66417651084751 - ], - [ - 9.03104706348904, - 18.363166768004845 - ], - [ - 8.730016354585018, - 18.062115093039466 - ], - [ - 8.730016354585018, - 18.062115093039466 - ] - ], - "pressures": [ - 0.044921875, - 0.2275390625, - 0.2958984375, - 0.3701171875, - 0.4287109375, - 0.4951171875, - 0.6044921875, - 0.6337890625, - 0.6474609375, - 0.6552734375, - 0.6640625, - 0.671875, - 0.671875, - 0.662109375, - 0.6591796875, - 0.646484375, - 0.642578125, - 0.6357421875, - 0.625, - 0.6201171875, - 0.6162109375, - 0.6181640625, - 0.6201171875, - 0.6201171875, - 0.6181640625, - 0.6240234375, - 0.6240234375, - 0.6181640625, - 0.6220703125, - 0.626953125, - 0.626953125, - 0.630859375, - 0.6318359375, - 0.638671875, - 0.642578125, - 0.642578125, - 0.642578125, - 0.6376953125, - 0.6357421875, - 0.6376953125, - 0.640625, - 0.640625, - 0.62890625, - 0.6220703125, - 0.6044921875, - 0.5888671875, - 0.59375, - 0.6181640625, - 0.609375, - 0.591796875, - 0.583984375, - 0.5029296875, - 0.2939453125, - 0.15234375, - 0.041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.730016354585018, - 18.062115093039466 - ] - }, - { - "id": "JReGdOwpEHL65QQhDcr40", - "type": "freedraw", - "x": 215.50558419177156, - "y": 188.0233904032375, - "width": 12.041417050713392, - "height": 35.5221478022095, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1299911469, - "version": 146, - "versionNonce": 210462115, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.602061417808045, - 1.8061842534241919 - ], - [ - -0.3010307089040225, - 3.010349021163023 - ], - [ - 0.3010516749654357, - 4.816533274587215 - ], - [ - 0.3010516749654357, - 5.418615658456616 - ], - [ - 0.6020823838694582, - 6.020698042326046 - ], - [ - 1.5051954766428821, - 6.321728751230069 - ], - [ - 2.4082876033550065, - 6.622759460134091 - ], - [ - 3.3114006961284304, - 6.622759460134091 - ], - [ - 4.214513788901854, - 6.622759460134091 - ], - [ - 4.816575206709956, - 6.923790169038142 - ], - [ - 5.71968829948338, - 7.525872552907543 - ], - [ - 6.321749717291425, - 8.42896467961964 - ], - [ - 6.923832101160883, - 9.03104706348907 - ], - [ - 7.224862810064906, - 9.934139190201165 - ], - [ - 7.224862810064906, - 11.13828299187864 - ], - [ - 6.923832101160883, - 12.04141705071342 - ], - [ - 6.0207190083874025, - 12.94448821136416 - ], - [ - 4.816575206709956, - 13.847601304137612 - ], - [ - 3.9134621139364754, - 14.750714396911064 - ], - [ - 1.8062261855469046, - 15.95485819858854 - ], - [ - 0.6020823838694582, - 17.158981034204658 - ], - [ - -0.9030921267120675, - 18.965207219751562 - ], - [ - -2.4082666372935932, - 21.373473857045155 - ], - [ - -3.311379730067017, - 23.781761460400105 - ], - [ - -3.6124104389710396, - 25.58798764594701 - ], - [ - -3.6124104389710396, - 27.996254283240603 - ], - [ - -3.0103490211629946, - 30.705572595499575 - ], - [ - -2.1072359283895707, - 33.414890907758576 - ], - [ - -1.20412283561609, - 34.92006541834007 - ], - [ - -0.3010307089040225, - 35.221096127244124 - ], - [ - 0.9031130927734807, - 35.5221478022095 - ], - [ - 2.4082876033550065, - 35.5221478022095 - ], - [ - 4.816575206709956, - 35.221096127244124 - ], - [ - 6.321749717291425, - 34.31800400053203 - ], - [ - 7.525893518968928, - 33.11388116491588 - ], - [ - 8.127954936776973, - 31.90971639717705 - ], - [ - 8.429006611742352, - 30.404541886595553 - ], - [ - 8.429006611742352, - 27.69522357433658 - ], - [ - 8.127954936776973, - 25.58798764594701 - ], - [ - 8.127954936776973, - 24.082813135365484 - ], - [ - 8.127954936776973, - 23.17970004259203 - ], - [ - 8.429006611742352, - 23.17970004259203 - ], - [ - 8.429006611742352, - 23.17970004259203 - ] - ], - "pressures": [ - 0.0146484375, - 0.31640625, - 0.4111328125, - 0.5439453125, - 0.58984375, - 0.6025390625, - 0.6181640625, - 0.6240234375, - 0.62890625, - 0.630859375, - 0.6337890625, - 0.6357421875, - 0.6376953125, - 0.638671875, - 0.638671875, - 0.6357421875, - 0.646484375, - 0.6640625, - 0.67578125, - 0.6923828125, - 0.7109375, - 0.71484375, - 0.71875, - 0.71875, - 0.7265625, - 0.73046875, - 0.73046875, - 0.720703125, - 0.708984375, - 0.697265625, - 0.6904296875, - 0.6826171875, - 0.6826171875, - 0.6806640625, - 0.6845703125, - 0.6865234375, - 0.6826171875, - 0.671875, - 0.6572265625, - 0.6357421875, - 0.5869140625, - 0.4677734375, - 0.1201171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.429006611742352, - 23.17970004259203 - ] - }, - { - "id": "4D0YlFC_yIFYb6XCtKLyN", - "type": "freedraw", - "x": 223.0314777107405, - "y": 180.79852759317265, - "width": 21.072464114202432, - "height": 19.56731056968229, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1562240483, - "version": 144, - "versionNonce": 1619098125, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.602061417808045, - -0.3010307089040225 - ], - [ - -0.602061417808045, - 0.3010307089040225 - ], - [ - -0.602061417808045, - 1.8062052194855482 - ], - [ - 0, - 4.51552353174452 - ], - [ - 0.9031130927734239, - 6.020698042326018 - ], - [ - 2.4082876033549496, - 7.525872552907543 - ], - [ - 5.418636624517944, - 8.428985645680996 - ], - [ - 8.127954936776916, - 8.428985645680996 - ], - [ - 10.536242540131923, - 8.428985645680996 - ], - [ - 12.041417050713392, - 8.127954936776945 - ], - [ - 13.546591561294917, - 7.224862810064849 - ], - [ - 14.750735362972364, - 6.020698042326018 - ], - [ - 15.051766071876443, - 5.418636624517973 - ], - [ - 15.352796780780466, - 5.117584949552594 - ], - [ - 15.653827489684488, - 4.816554240648543 - ], - [ - 16.556940582457912, - 4.816554240648543 - ], - [ - 17.159002000266014, - 4.51552353174452 - ], - [ - 17.761084384135415, - 4.51552353174452 - ], - [ - 18.664176510847483, - 4.51552353174452 - ], - [ - 19.26625889471694, - 4.51552353174452 - ], - [ - 20.169371987490365, - 5.117584949552594 - ], - [ - 20.470402696394387, - 6.6227804261954475 - ], - [ - 20.470402696394387, - 8.127954936776945 - ], - [ - 20.169371987490365, - 9.63312944735847 - ], - [ - 18.96522818581286, - 12.643478468521465 - ], - [ - 17.761084384135415, - 14.449683688007013 - ], - [ - 15.653827489684488, - 15.95485819858851 - ], - [ - 13.84762227019894, - 17.460032709170036 - ], - [ - 12.041417050713392, - 18.36314580194349 - ], - [ - 10.235190865166487, - 18.965207219751534 - ], - [ - 9.03104706348904, - 19.26627986077827 - ], - [ - 7.2248418440034925, - 19.26627986077827 - ], - [ - 6.020698042326046, - 19.26627986077827 - ], - [ - 4.816554240648543, - 19.26627986077827 - ], - [ - 4.214492822840498, - 18.66417651084751 - ], - [ - 3.612431405032396, - 17.761084384135415 - ], - [ - 3.0103490211629946, - 17.159002000266014 - ], - [ - 2.4082876033549496, - 16.55694058245794 - ], - [ - 1.8062052194855482, - 16.255909873553918 - ], - [ - 0.9031130927734239, - 15.95485819858851 - ], - [ - 0.602061417808045, - 15.653827489684488 - ], - [ - 0.3010307089040225, - 15.653827489684488 - ], - [ - 0.3010307089040225, - 15.95485819858851 - ], - [ - 0.3010307089040225, - 16.255909873553918 - ], - [ - 0.3010307089040225, - 16.255909873553918 - ] - ], - "pressures": [ - 0.0732421875, - 0.2822265625, - 0.36328125, - 0.42578125, - 0.671875, - 0.7587890625, - 0.79296875, - 0.794921875, - 0.796875, - 0.80078125, - 0.802734375, - 0.8095703125, - 0.791015625, - 0.7607421875, - 0.740234375, - 0.71875, - 0.677734375, - 0.671875, - 0.669921875, - 0.666015625, - 0.6640625, - 0.6591796875, - 0.6533203125, - 0.6533203125, - 0.6533203125, - 0.638671875, - 0.6337890625, - 0.642578125, - 0.646484375, - 0.6572265625, - 0.69921875, - 0.705078125, - 0.70703125, - 0.7109375, - 0.712890625, - 0.712890625, - 0.708984375, - 0.705078125, - 0.701171875, - 0.6904296875, - 0.6806640625, - 0.669921875, - 0.66015625, - 0.1943359375, - 0.1474609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0.3010307089040225, - 16.255909873553918 - ] - }, - { - "id": "7pBp691k4jm-DkLwfyTbC", - "type": "freedraw", - "x": 229.05217575306654, - "y": 199.46270410402016, - "width": 7.525872552907515, - "height": 24.684874553173557, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1768168557, - "version": 115, - "versionNonce": 2113190211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.9031130927734239, - -0.9030921267120959 - ], - [ - 0.3010516749653789, - -0.3010307089040225 - ], - [ - -0.9030921267121244, - 1.2041438016774748 - ], - [ - -2.40826663729365, - 3.010349021163023 - ], - [ - -3.311379730067074, - 4.214492822840498 - ], - [ - -4.51552353174452, - 6.020719008387374 - ], - [ - -5.418636624518001, - 8.127975902838301 - ], - [ - -5.719667333422024, - 10.235211831227872 - ], - [ - -6.020698042326046, - 12.342447759617443 - ], - [ - -6.321728751230069, - 14.44970465406837 - ], - [ - -6.622759460134091, - 18.062115093039438 - ], - [ - -6.622759460134091, - 20.16939295355172 - ], - [ - -6.622759460134091, - 21.975577206975913 - ], - [ - -6.321728751230069, - 22.878690299749366 - ], - [ - -6.020698042326046, - 23.78178242646146 - ], - [ - -5.719667333422024, - 23.78178242646146 - ], - [ - -5.418636624518001, - 23.48075171755741 - ], - [ - -5.418636624518001, - 23.179741974714744 - ], - [ - -5.418636624518001, - 23.179741974714744 - ] - ], - "pressures": [ - 0.0146484375, - 0.0908203125, - 0.2861328125, - 0.384765625, - 0.5048828125, - 0.580078125, - 0.6240234375, - 0.671875, - 0.697265625, - 0.73046875, - 0.748046875, - 0.74609375, - 0.744140625, - 0.736328125, - 0.697265625, - 0.5380859375, - 0.1982421875, - 0.0986328125, - 0.0654296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.418636624518001, - 23.179741974714744 - ] - }, - { - "id": "Bec-4l-fEtDXBfOSv4lGi", - "type": "freedraw", - "x": 227.547001242485, - "y": 198.2585603023427, - "width": 6.020698042326046, - "height": 22.276628881941292, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 970671523, - "version": 110, - "versionNonce": 331395181, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.9030921267121244, - 0.6020823838694014 - ], - [ - -2.1072359283895707, - 2.107256894450927 - ], - [ - -3.311379730067074, - 3.913462113936447 - ], - [ - -4.51552353174452, - 5.719688299483352 - ], - [ - -5.418636624518001, - 10.235211831227872 - ], - [ - -5.719667333422024, - 14.148673945164347 - ], - [ - -6.020698042326046, - 17.159022966327342 - ], - [ - -6.020698042326046, - 19.56731056968229 - ], - [ - -5.719667333422024, - 21.373536755229196 - ], - [ - -5.719667333422024, - 21.975577206975913 - ], - [ - -5.719667333422024, - 22.276628881941292 - ], - [ - -5.418636624518001, - 22.276628881941292 - ], - [ - -5.117584949552565, - 22.276628881941292 - ], - [ - -5.117584949552565, - 22.276628881941292 - ] - ], - "pressures": [ - 0.0302734375, - 0.4482421875, - 0.525390625, - 0.57421875, - 0.6015625, - 0.6474609375, - 0.6787109375, - 0.6787109375, - 0.638671875, - 0.5458984375, - 0.4384765625, - 0.26953125, - 0.20703125, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.117584949552565, - 22.276628881941292 - ] - }, - { - "id": "LzUPzVmArb77v1L_yGEpe", - "type": "freedraw", - "x": 228.1490836263544, - "y": 198.55961197730807, - "width": 6.321749717291425, - "height": 23.78178242646146, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1953037091, - "version": 111, - "versionNonce": 171088099, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010516749653789, - 0.9030921267120959 - ], - [ - -0.6020823838694014, - 1.8062052194855482 - ], - [ - -1.8062261855469046, - 3.612410438971068 - ], - [ - -2.709318312258972, - 6.020719008387374 - ], - [ - -4.214492822840498, - 8.730016354585018 - ], - [ - -5.117605915613922, - 11.43933466684399 - ], - [ - -5.719667333421967, - 13.847622270198968 - ], - [ - -6.321749717291425, - 16.55694058245794 - ], - [ - -6.321749717291425, - 18.66417651084751 - ], - [ - -6.321749717291425, - 20.77143340529844 - ], - [ - -6.321749717291425, - 22.577659590845315 - ], - [ - -6.321749717291425, - 23.48075171755741 - ], - [ - -6.321749717291425, - 23.78178242646146 - ], - [ - -6.0207190083874025, - 23.78178242646146 - ], - [ - -6.0207190083874025, - 23.78178242646146 - ] - ], - "pressures": [ - 0.078125, - 0.2646484375, - 0.3193359375, - 0.4130859375, - 0.46875, - 0.529296875, - 0.6064453125, - 0.677734375, - 0.701171875, - 0.697265625, - 0.66015625, - 0.591796875, - 0.484375, - 0.404296875, - 0.12109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.0207190083874025, - 23.78178242646146 - ] - }, - { - "id": "J962e0F6pi4ztklFjy_8O", - "type": "freedraw", - "x": 224.23562151241794, - "y": 185.31405112491717, - "width": 10.2352118312279, - "height": 37.93043540556445, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1085290787, - "version": 150, - "versionNonce": 1519000269, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - 0 - ], - [ - -0.6020823838694014, - 0 - ], - [ - -0.9031130927734239, - 0.6020614178080734 - ], - [ - -0.9031130927734239, - 0.9031130927734523 - ], - [ - -1.2041438016774464, - 1.5051745105814973 - ], - [ - -1.2041438016774464, - 2.107256894450927 - ], - [ - -1.2041438016774464, - 3.3113797300670456 - ], - [ - -0.6020823838694014, - 5.11760591561395 - ], - [ - 0, - 6.321749717291425 - ], - [ - 0.9030921267121244, - 7.224862810064877 - ], - [ - 1.5051745105815257, - 7.525872552907543 - ], - [ - 2.1072359283895707, - 8.127954936776945 - ], - [ - 3.0103490211630515, - 9.33209873845442 - ], - [ - 3.6124104389710965, - 10.235211831227872 - ], - [ - 4.214492822840498, - 10.837273249035945 - ], - [ - 4.8165542406486, - 11.43933466684399 - ], - [ - 5.117605915613979, - 11.740386341809398 - ], - [ - 5.418636624518001, - 12.342447759617443 - ], - [ - 5.418636624518001, - 12.643478468521494 - ], - [ - 5.418636624518001, - 13.245560852390895 - ], - [ - 5.418636624518001, - 13.847622270198968 - ], - [ - 5.117605915613979, - 14.750756329033749 - ], - [ - 4.8165542406486, - 15.352796780780466 - ], - [ - 4.51552353174452, - 15.653827489684488 - ], - [ - 4.214492822840498, - 15.954879164649867 - ], - [ - 3.6124104389710965, - 16.55694058245794 - ], - [ - 3.0103490211630515, - 17.159002000266014 - ], - [ - 2.1072359283895707, - 17.76110535019677 - ], - [ - 1.5051745105815257, - 18.664197476908868 - ], - [ - 0.9030921267121244, - 19.26627986077827 - ], - [ - 0.30103070890407935, - 20.169371987490365 - ], - [ - -0.3010307089040225, - 20.771454371359795 - ], - [ - -0.9031130927734239, - 21.975577206975913 - ], - [ - -1.505174510581469, - 23.48075171755741 - ], - [ - -2.4082876033549496, - 25.286977903104315 - ], - [ - -2.709318312258972, - 26.19007002981641 - ], - [ - -2.709318312258972, - 27.093183122589863 - ], - [ - -3.0103490211629946, - 28.297326924267338 - ], - [ - -3.3114006961283735, - 30.40456285265691 - ], - [ - -3.612431405032396, - 31.608706654334384 - ], - [ - -3.9134621139364185, - 32.812871422073215 - ], - [ - -3.9134621139364185, - 33.715942582723955 - ], - [ - -4.214492822840498, - 34.31804593265471 - ], - [ - -4.51552353174452, - 35.52216876827083 - ], - [ - -4.51552353174452, - 36.124230186078904 - ], - [ - -4.816575206709899, - 36.42526089498293 - ], - [ - -4.816575206709899, - 36.726312569948306 - ], - [ - -4.816575206709899, - 37.027343278852356 - ], - [ - -4.816575206709899, - 37.328394953817735 - ], - [ - -4.816575206709899, - 37.6294046966604 - ], - [ - -4.816575206709899, - 37.93043540556445 - ], - [ - -4.214492822840498, - 37.93043540556445 - ], - [ - -3.9134621139364185, - 37.93043540556445 - ], - [ - -3.9134621139364185, - 37.93043540556445 - ] - ], - "pressures": [ - 0.0537109375, - 0.0849609375, - 0.158203125, - 0.1943359375, - 0.21875, - 0.26171875, - 0.3193359375, - 0.3525390625, - 0.3994140625, - 0.416015625, - 0.427734375, - 0.431640625, - 0.4375, - 0.4453125, - 0.455078125, - 0.4658203125, - 0.4677734375, - 0.46875, - 0.4765625, - 0.4736328125, - 0.478515625, - 0.4775390625, - 0.48046875, - 0.48046875, - 0.48046875, - 0.482421875, - 0.4833984375, - 0.484375, - 0.484375, - 0.482421875, - 0.482421875, - 0.482421875, - 0.482421875, - 0.48046875, - 0.478515625, - 0.478515625, - 0.482421875, - 0.4833984375, - 0.482421875, - 0.48046875, - 0.484375, - 0.484375, - 0.48828125, - 0.48828125, - 0.4873046875, - 0.4853515625, - 0.4873046875, - 0.4853515625, - 0.482421875, - 0.48046875, - 0.47265625, - 0.43359375, - 0.1337890625, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.9134621139364185, - 37.93043540556445 - ] - }, - { - "id": "nFkD8UX1REJojSj5WtPdE", - "type": "freedraw", - "x": 222.73044700183647, - "y": 186.81922563549867, - "width": 6.321749717291425, - "height": 35.82322044323624, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1191896621, - "version": 137, - "versionNonce": 2127791235, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020823838694582, - 0 - ], - [ - -0.6020823838694582, - 0.6020823838694298 - ], - [ - -0.6020823838694582, - 0.9031130927734523 - ], - [ - -0.6020823838694582, - 1.5051745105815257 - ], - [ - -0.9031130927734807, - 3.311400696128402 - ], - [ - -0.9031130927734807, - 4.515523531744549 - ], - [ - -0.9031130927734807, - 5.11760591561395 - ], - [ - -0.9031130927734807, - 6.020698042326046 - ], - [ - -0.3010307089040225, - 6.321749717291425 - ], - [ - 0, - 6.923811135099498 - ], - [ - 0.602061417808045, - 7.5258935189689 - ], - [ - 1.2041438016774464, - 7.5258935189689 - ], - [ - 1.505174510581469, - 7.826924227872922 - ], - [ - 2.1072359283895707, - 7.826924227872922 - ], - [ - 2.709318312258972, - 8.127954936776973 - ], - [ - 3.6124104389710396, - 9.031068029550426 - ], - [ - 4.51552353174452, - 10.2352118312279 - ], - [ - 4.816554240648543, - 11.138303957939996 - ], - [ - 5.117584949552565, - 12.342447759617471 - ], - [ - 5.418636624517944, - 14.148652979102991 - ], - [ - 5.418636624517944, - 15.954879164649896 - ], - [ - 5.418636624517944, - 17.76110535019677 - ], - [ - 4.816554240648543, - 19.567289603620964 - ], - [ - 4.51552353174452, - 20.771454371359795 - ], - [ - 3.9134621139364185, - 21.975577206975913 - ], - [ - 3.0103490211629946, - 23.48075171755744 - ], - [ - 2.1072359283895707, - 25.286977903104315 - ], - [ - 1.505174510581469, - 26.19007002981641 - ], - [ - 1.505174510581469, - 26.79215241368584 - ], - [ - 1.2041438016774464, - 27.695244540397937 - ], - [ - 1.2041438016774464, - 28.89938834207541 - ], - [ - 0.602061417808045, - 31.307696911491718 - ], - [ - 0.3010307089040225, - 32.812871422073215 - ], - [ - 0, - 33.41491187381993 - ], - [ - 0, - 34.01699425768933 - ], - [ - 0, - 34.31804593265471 - ], - [ - 0, - 34.92008638440143 - ], - [ - -0.3010307089040225, - 35.22113805936681 - ], - [ - -0.6020823838694582, - 35.82322044323624 - ], - [ - -0.6020823838694582, - 35.52216876827086 - ], - [ - -0.6020823838694582, - 35.52216876827086 - ] - ], - "pressures": [ - 0.0361328125, - 0.1171875, - 0.1376953125, - 0.17578125, - 0.2275390625, - 0.3173828125, - 0.3701171875, - 0.3916015625, - 0.400390625, - 0.4033203125, - 0.404296875, - 0.4072265625, - 0.4052734375, - 0.4013671875, - 0.3974609375, - 0.40234375, - 0.4013671875, - 0.404296875, - 0.4169921875, - 0.4404296875, - 0.47265625, - 0.5146484375, - 0.564453125, - 0.591796875, - 0.6015625, - 0.611328125, - 0.630859375, - 0.6474609375, - 0.6591796875, - 0.671875, - 0.673828125, - 0.671875, - 0.6806640625, - 0.6943359375, - 0.703125, - 0.70703125, - 0.705078125, - 0.705078125, - 0.701171875, - 0.6826171875, - 0.1416015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.6020823838694582, - 35.52216876827086 - ] - }, - { - "id": "h8ThaJPguHF1oeUMAq15F", - "type": "freedraw", - "x": 223.9345908035139, - "y": 184.1099073232397, - "width": 7.2248418440034925, - "height": 37.6294046966604, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 612347789, - "version": 137, - "versionNonce": 762788141, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010307089040225 - ], - [ - 0, - -0.9030921267120959 - ], - [ - 0, - -1.2041438016774748 - ], - [ - 0.3010307089040225, - -1.5051745105814973 - ], - [ - 0.3010307089040225, - -1.2041438016774748 - ], - [ - 0.3010307089040225, - -0.9030921267120959 - ], - [ - 0.3010307089040225, - -0.6020614178080734 - ], - [ - 0.3010307089040225, - 0.6020823838694014 - ], - [ - 0.6020614178081019, - 1.5051745105814973 - ], - [ - 0.6020614178081019, - 2.107256894450927 - ], - [ - 0.9030921267121244, - 2.408308569416306 - ], - [ - 1.2041228356161469, - 2.709318312258972 - ], - [ - 1.8062052194855482, - 3.9134830799978033 - ], - [ - 2.4082666372935932, - 5.418657590579329 - ], - [ - 3.0103490211630515, - 7.224841844003521 - ], - [ - 3.6124104389710965, - 9.031068029550397 - ], - [ - 4.214492822840498, - 11.138303957939968 - ], - [ - 4.214492822840498, - 12.643478468521465 - ], - [ - 4.51552353174452, - 14.148652979102991 - ], - [ - 4.816554240648543, - 15.653827489684488 - ], - [ - 4.816554240648543, - 17.159022966327342 - ], - [ - 4.816554240648543, - 19.266258894716913 - ], - [ - 4.51552353174452, - 20.77143340529844 - ], - [ - 4.214492822840498, - 22.276607915879936 - ], - [ - 3.6124104389710965, - 23.78178242646146 - ], - [ - 3.0103490211630515, - 24.985947194200293 - ], - [ - 2.4082666372935932, - 26.19007002981641 - ], - [ - 1.8062052194855482, - 27.093183122589835 - ], - [ - 1.5051745105815257, - 28.59835763317136 - ], - [ - 0.6020614178081019, - 30.103532143752858 - ], - [ - -0.6020823838694014, - 32.21076807214243 - ], - [ - -1.2041438016774464, - 33.11388116491588 - ], - [ - -1.505174510581469, - 33.414911873819904 - ], - [ - -1.505174510581469, - 34.01701522375069 - ], - [ - -1.8062261855469046, - 34.61905567549738 - ], - [ - -1.8062261855469046, - 35.22113805936681 - ], - [ - -2.107256894450927, - 35.52218973433219 - ], - [ - -2.107256894450927, - 35.82319947717485 - ], - [ - -2.4082876033549496, - 36.124230186078904 - ], - [ - -2.4082876033549496, - 35.82319947717485 - ], - [ - -2.4082876033549496, - 35.82319947717485 - ] - ], - "pressures": [ - 0.0078125, - 0.0263671875, - 0.0498046875, - 0.05859375, - 0.072265625, - 0.255859375, - 0.26171875, - 0.2685546875, - 0.2880859375, - 0.3173828125, - 0.3388671875, - 0.345703125, - 0.34765625, - 0.349609375, - 0.353515625, - 0.384765625, - 0.4111328125, - 0.43359375, - 0.455078125, - 0.4775390625, - 0.5029296875, - 0.5234375, - 0.5380859375, - 0.5478515625, - 0.5556640625, - 0.55859375, - 0.556640625, - 0.5673828125, - 0.5673828125, - 0.56640625, - 0.56640625, - 0.576171875, - 0.5869140625, - 0.58984375, - 0.591796875, - 0.5966796875, - 0.5966796875, - 0.58984375, - 0.59375, - 0.591796875, - 0.1787109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.4082876033549496, - 35.82319947717485 - ] - }, - { - "id": "xtODZlDjRyYuYf9jqkqeW", - "type": "freedraw", - "x": 216.40869728454504, - "y": 193.74303677059817, - "width": 3.9134621139364754, - "height": 17.761084384135415, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 189021155, - "version": 113, - "versionNonce": 1939209251, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558554, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010307089040509 - ], - [ - 0, - 1.2041438016774748 - ], - [ - 0, - 3.0103490211629946 - ], - [ - 0, - 5.117605915613922 - ], - [ - 0, - 7.2248418440034925 - ], - [ - 0, - 8.730016354585018 - ], - [ - -0.3010307089040225, - 11.138303957939968 - ], - [ - -0.3010307089040225, - 12.944509177425488 - ], - [ - -0.602061417808045, - 14.44970465406837 - ], - [ - -1.2041438016775032, - 15.653827489684488 - ], - [ - -1.5051745105815257, - 16.25590987355389 - ], - [ - -2.1072359283895707, - 16.55694058245794 - ], - [ - -2.709318312258972, - 16.85799225742332 - ], - [ - -3.311379730067074, - 17.159022966327342 - ], - [ - -3.6124104389710965, - 17.159022966327342 - ], - [ - -3.9134621139364754, - 17.460053675231364 - ], - [ - -3.6124104389710965, - 17.460053675231364 - ], - [ - -3.311379730067074, - 17.460053675231364 - ], - [ - -3.311379730067074, - 17.460053675231364 - ] - ], - "pressures": [ - 0.029296875, - 0.177734375, - 0.3701171875, - 0.4443359375, - 0.55078125, - 0.626953125, - 0.677734375, - 0.71484375, - 0.744140625, - 0.7666015625, - 0.7744140625, - 0.7763671875, - 0.78125, - 0.7705078125, - 0.7568359375, - 0.73828125, - 0.6806640625, - 0.1416015625, - 0.03125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.311379730067074, - 17.460053675231364 - ] - }, - { - "id": "Veh7s3ATs0DG2WuRXTxNF", - "type": "freedraw", - "x": 215.50558419177156, - "y": 192.53891393498205, - "width": 2.4082876033549496, - "height": 15.653827489684517, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2052676141, - "version": 108, - "versionNonce": 905022349, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010516749654357, - -0.3010516749654073 - ], - [ - 0.3010516749654357, - 0.602061417808045 - ], - [ - 0.6020823838694582, - 1.8062052194855198 - ], - [ - 0.6020823838694582, - 4.51552353174452 - ], - [ - 0.6020823838694582, - 5.418615658456616 - ], - [ - 0.6020823838694582, - 8.127933970715588 - ], - [ - 0.6020823838694582, - 9.633108481297086 - ], - [ - 0.3010516749654357, - 11.43933466684399 - ], - [ - -0.602061417808045, - 13.546591561294917 - ], - [ - -1.20412283561609, - 14.449683688007013 - ], - [ - -1.505174510581469, - 15.051766071876415 - ], - [ - -1.8062052194854914, - 15.051766071876415 - ], - [ - -1.8062052194854914, - 15.35277581471911 - ], - [ - -1.8062052194854914, - 15.35277581471911 - ] - ], - "pressures": [ - 0.029296875, - 0.2802734375, - 0.3212890625, - 0.38671875, - 0.5087890625, - 0.57421875, - 0.666015625, - 0.70703125, - 0.736328125, - 0.7587890625, - 0.7666015625, - 0.7646484375, - 0.5087890625, - 0.1474609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.8062052194854914, - 15.35277581471911 - ] - }, - { - "id": "CRBCUaNEPJLjGGhmGagoY", - "type": "freedraw", - "x": 219.41904630570804, - "y": 180.49749688426863, - "width": 20.16935102142901, - "height": 20.169371987490365, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 646875981, - "version": 135, - "versionNonce": 73957315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.9031130927734523 - ], - [ - -0.3010307089040225, - -1.8062261855469046 - ], - [ - -0.3010307089040225, - -2.107256894450927 - ], - [ - -0.602061417808045, - -2.408287603354978 - ], - [ - -1.2041438016774464, - -3.0103699872243794 - ], - [ - -2.1072359283895707, - -3.311400696128402 - ], - [ - -3.9134621139364754, - -4.214513788901854 - ], - [ - -5.117584949552565, - -4.214513788901854 - ], - [ - -6.92381113509947, - -3.612431405032453 - ], - [ - -8.730016354585018, - -2.7093183122590005 - ], - [ - -11.138303957939968, - -0.6020823838694298 - ], - [ - -12.643478468521494, - 0.602061417808045 - ], - [ - -13.84762227019894, - 2.1072359283895707 - ], - [ - -15.051766071876443, - 3.9134411478750906 - ], - [ - -15.653827489684488, - 6.32172875123004 - ], - [ - -16.255888907492533, - 9.633129447358442 - ], - [ - -16.255888907492533, - 11.138303957939968 - ], - [ - -15.653827489684488, - 12.643478468521465 - ], - [ - -14.148652979102962, - 13.84762227019894 - ], - [ - -10.837273249035945, - 15.653827489684488 - ], - [ - -8.127954936776916, - 15.95485819858851 - ], - [ - -5.418636624517944, - 15.352796780780466 - ], - [ - -3.0103490211629946, - 13.84762227019894 - ], - [ - -1.2041438016774464, - 12.342426793556086 - ], - [ - 0.9031130927734807, - 9.934160156262493 - ], - [ - 2.709318312258972, - 7.2248418440034925 - ], - [ - 3.9134621139364754, - 4.816554240648543 - ], - [ - 3.9134621139364754, - 3.0103490211629946 - ], - [ - 2.709318312258972, - 0.9030921267120959 - ], - [ - 0.9031130927734807, - 0.3010307089040225 - ], - [ - -1.2041438016774464, - -0.3010516749654073 - ], - [ - -3.6124104389710396, - -0.6020823838694298 - ], - [ - -6.020698042326046, - -0.6020823838694298 - ], - [ - -9.03104706348904, - -0.3010516749654073 - ], - [ - -10.837273249035945, - 0 - ], - [ - -12.342447759617414, - 0.3010307089040225 - ], - [ - -13.546570595233561, - 0.602061417808045 - ], - [ - -15.051766071876443, - 2.1072359283895707 - ], - [ - -15.352796780780466, - 2.709318312258972 - ], - [ - -15.352796780780466, - 3.3113797300670456 - ], - [ - -15.352796780780466, - 3.3113797300670456 - ] - ], - "pressures": [ - 0.046875, - 0.103515625, - 0.169921875, - 0.18359375, - 0.2041015625, - 0.2568359375, - 0.306640625, - 0.41015625, - 0.48828125, - 0.5595703125, - 0.58984375, - 0.599609375, - 0.609375, - 0.6162109375, - 0.6318359375, - 0.6640625, - 0.673828125, - 0.669921875, - 0.6572265625, - 0.6513671875, - 0.642578125, - 0.6220703125, - 0.6064453125, - 0.5966796875, - 0.5966796875, - 0.58984375, - 0.6015625, - 0.6015625, - 0.59375, - 0.583984375, - 0.5439453125, - 0.515625, - 0.478515625, - 0.44921875, - 0.3623046875, - 0.3642578125, - 0.3662109375, - 0.3662109375, - 0.31640625, - 0.212890625, - 0.1435546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -15.352796780780466, - 3.3113797300670456 - ] - }, - { - "id": "5jNM3uEeCcCqa8f8iiU3T", - "type": "freedraw", - "x": 218.8169848879, - "y": 183.50784590543162, - "width": 17.761084384135415, - "height": 18.363166768004817, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 665723619, - "version": 154, - "versionNonce": 875729389, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.1072568944508987 - ], - [ - 0, - -2.4082876033549496 - ], - [ - -0.6020823838694014, - -3.311400696128402 - ], - [ - -0.9031130927734239, - -4.214492822840469 - ], - [ - -2.4082876033549496, - -5.418636624517973 - ], - [ - -3.9134621139364754, - -6.020719008387374 - ], - [ - -5.418636624518001, - -6.321749717291397 - ], - [ - -6.92381113509947, - -6.321749717291397 - ], - [ - -9.33209873845442, - -6.020719008387374 - ], - [ - -10.837273249035945, - -5.418636624517973 - ], - [ - -12.041417050713449, - -4.816575206709899 - ], - [ - -12.643478468521494, - -3.6124314050324244 - ], - [ - -13.546591561294917, - -2.1072568944508987 - ], - [ - -14.449704654068398, - 0.3010307089040509 - ], - [ - -14.449704654068398, - 1.2041438016774748 - ], - [ - -14.449704654068398, - 2.1072359283895707 - ], - [ - -14.449704654068398, - 2.7093183122590005 - ], - [ - -12.944509177425516, - 4.214492822840498 - ], - [ - -11.74038634180937, - 5.117584949552594 - ], - [ - -10.2352118312279, - 6.0207190083874025 - ], - [ - -8.730016354585018, - 6.321728751230069 - ], - [ - -7.2248418440034925, - 6.6227804261954475 - ], - [ - -4.816575206709899, - 6.923811135099498 - ], - [ - -3.3114006961284304, - 6.923811135099498 - ], - [ - -2.107256894450927, - 7.224841844003521 - ], - [ - -1.2041438016775032, - 7.5258935189689 - ], - [ - -0.6020823838694014, - 8.127954936776973 - ], - [ - 0, - 8.730016354585018 - ], - [ - 0.602061417808045, - 9.63312944735847 - ], - [ - 1.2041438016774464, - 10.536242540131923 - ], - [ - 1.5051745105815257, - 11.138303957939968 - ], - [ - 1.8062052194855482, - 11.439334666844019 - ], - [ - 1.8062052194855482, - 11.740365375748041 - ], - [ - 2.1072359283895707, - 12.04141705071342 - ], - [ - 2.4082876033549496, - 12.04141705071342 - ], - [ - 2.4082876033549496, - 11.138303957939968 - ], - [ - 2.4082876033549496, - 9.934160156262493 - ], - [ - 2.4082876033549496, - 8.730016354585018 - ], - [ - 2.4082876033549496, - 7.826903261811594 - ], - [ - 2.4082876033549496, - 7.224841844003521 - ], - [ - 2.4082876033549496, - 6.0207190083874025 - ], - [ - 2.709318312258972, - 4.214492822840498 - ], - [ - 3.0103490211629946, - 2.4082666372936217 - ], - [ - 3.311379730067017, - 0.9030921267120959 - ], - [ - 3.311379730067017, - 0.3010307089040509 - ], - [ - 2.709318312258972, - -0.6020823838694014 - ], - [ - 1.8062052194855482, - -1.8062261855468762 - ], - [ - 0.3010307089040225, - -3.311400696128402 - ], - [ - -0.3010307089040225, - -3.913462113936447 - ], - [ - -1.2041438016775032, - -4.214492822840469 - ], - [ - -1.8062052194855482, - -4.214492822840469 - ], - [ - -2.4082876033549496, - -4.214492822840469 - ], - [ - -3.3114006961284304, - -4.214492822840469 - ], - [ - -3.9134621139364754, - -3.913462113936447 - ], - [ - -4.214492822840498, - -3.913462113936447 - ], - [ - -4.214492822840498, - -3.6124314050324244 - ], - [ - -4.214492822840498, - -3.311400696128402 - ], - [ - -4.214492822840498, - -3.0103490211629946 - ], - [ - -3.9134621139364754, - -3.0103490211629946 - ], - [ - -3.9134621139364754, - -3.0103490211629946 - ] - ], - "pressures": [ - 0.0703125, - 0.2392578125, - 0.2734375, - 0.3291015625, - 0.3916015625, - 0.56640625, - 0.705078125, - 0.8134765625, - 0.8701171875, - 0.9130859375, - 0.9189453125, - 0.9296875, - 0.9345703125, - 0.9345703125, - 0.90625, - 0.8896484375, - 0.8701171875, - 0.861328125, - 0.849609375, - 0.8408203125, - 0.828125, - 0.82421875, - 0.82421875, - 0.828125, - 0.82421875, - 0.82421875, - 0.822265625, - 0.822265625, - 0.822265625, - 0.822265625, - 0.828125, - 0.830078125, - 0.830078125, - 0.8203125, - 0.8134765625, - 0.8056640625, - 0.8408203125, - 0.861328125, - 0.9130859375, - 0.9833984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.92578125, - 0.4248046875, - 0.2021484375, - 0.0595703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.9134621139364754, - -3.0103490211629946 - ] - }, - { - "id": "PkQbtxlyTFLS3iqY3meRo", - "type": "freedraw", - "x": 220.32215939848152, - "y": 181.70161971988475, - "width": 18.965207219751562, - "height": 20.169371987490393, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2053672451, - "version": 151, - "versionNonce": 1265209187, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -1.5051745105815257 - ], - [ - 0.3010307089040225, - -1.8062052194855482 - ], - [ - -0.30103070890407935, - -2.7093183122590005 - ], - [ - -1.2041438016775032, - -3.3113797300670456 - ], - [ - -2.4082876033549496, - -4.214492822840498 - ], - [ - -3.9134621139364754, - -4.816554240648571 - ], - [ - -6.6227804261954475, - -4.816554240648571 - ], - [ - -8.428985645680996, - -4.214492822840498 - ], - [ - -10.235190865166544, - -3.010349021163023 - ], - [ - -11.740386341809426, - -1.5051745105815257 - ], - [ - -12.643478468521494, - 0.6020823838694014 - ], - [ - -13.847622270198997, - 4.816596172771256 - ], - [ - -14.14865297910302, - 6.92381113509947 - ], - [ - -14.14865297910302, - 7.826945193934279 - ], - [ - -14.14865297910302, - 8.429006611742324 - ], - [ - -12.944509177425516, - 9.93418112232385 - ], - [ - -11.439334666844047, - 11.439355632905347 - ], - [ - -9.934160156262521, - 12.944530143486844 - ], - [ - -9.332098738454476, - 13.546591561294917 - ], - [ - -9.031068029550397, - 13.546591561294917 - ], - [ - -8.730016354585018, - 13.546591561294917 - ], - [ - -8.127954936776973, - 13.245560852390895 - ], - [ - -7.224841844003549, - 12.342468725678799 - ], - [ - -6.321749717291425, - 11.439355632905347 - ], - [ - -5.719667333422024, - 10.536242540131894 - ], - [ - -5.719667333422024, - 10.235211831227872 - ], - [ - -4.816575206709956, - 9.93418112232385 - ], - [ - -3.612431405032453, - 9.332119704515776 - ], - [ - -3.0103490211630515, - 9.332119704515776 - ], - [ - -2.4082876033549496, - 9.332119704515776 - ], - [ - -1.8062052194855482, - 9.93418112232385 - ], - [ - -0.30103070890407935, - 11.439355632905347 - ], - [ - 1.2041438016774464, - 12.944530143486844 - ], - [ - 2.107256894450927, - 14.44970465406837 - ], - [ - 2.709318312258972, - 15.051766071876415 - ], - [ - 3.0103490211629946, - 15.352817746841822 - ], - [ - 3.311379730067017, - 15.352817746841822 - ], - [ - 3.612431405032396, - 15.352817746841822 - ], - [ - 4.214492822840498, - 15.352817746841822 - ], - [ - 4.816554240648543, - 14.148673945164347 - ], - [ - 4.816554240648543, - 12.04141705071342 - ], - [ - 4.816554240648543, - 9.93418112232385 - ], - [ - 4.214492822840498, - 8.127954936776945 - ], - [ - 3.0103490211629946, - 6.321770683352753 - ], - [ - 0.9031130927734239, - 3.010369987224351 - ], - [ - 0, - 1.2041438016774748 - ], - [ - -0.9031130927734807, - -0.6020614178080734 - ], - [ - -1.2041438016775032, - -1.8062052194855482 - ], - [ - -1.8062052194855482, - -2.4082666372935932 - ], - [ - -2.107256894450927, - -2.4082666372935932 - ], - [ - -2.4082876033549496, - -2.4082666372935932 - ], - [ - -2.709318312259029, - -2.4082666372935932 - ], - [ - -3.0103490211630515, - -1.8062052194855482 - ], - [ - -3.0103490211630515, - -0.9030921267120959 - ], - [ - -3.0103490211630515, - -0.6020614178080734 - ], - [ - -2.709318312259029, - -0.6020614178080734 - ], - [ - -2.709318312259029, - -0.6020614178080734 - ] - ], - "pressures": [ - 0.064453125, - 0.17578125, - 0.1923828125, - 0.2470703125, - 0.337890625, - 0.48046875, - 0.6337890625, - 0.7890625, - 0.8662109375, - 0.8984375, - 0.908203125, - 0.9130859375, - 0.90234375, - 0.90234375, - 0.90234375, - 0.90234375, - 0.8984375, - 0.8955078125, - 0.8935546875, - 0.861328125, - 0.85546875, - 0.8427734375, - 0.8408203125, - 0.8466796875, - 0.8515625, - 0.853515625, - 0.8515625, - 0.857421875, - 0.859375, - 0.857421875, - 0.8662109375, - 0.876953125, - 0.9150390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3291015625, - 0.21484375, - 0.099609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.709318312259029, - -0.6020614178080734 - ] - }, - { - "id": "snJRva2pgvftngk8e-i9o", - "type": "freedraw", - "x": 216.40869728454504, - "y": 191.33474916724322, - "width": 16.55694058245797, - "height": 42.746989646212995, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 396543117, - "version": 139, - "versionNonce": 625200205, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.2041228356161469 - ], - [ - 0.3010307089040225, - -1.2041228356161469 - ], - [ - 0.9031130927734239, - 0 - ], - [ - 1.5051745105815257, - 1.5051745105814973 - ], - [ - 1.5051745105815257, - 3.3114006961283735 - ], - [ - 1.5051745105815257, - 6.6227804261954475 - ], - [ - 1.5051745105815257, - 9.33209873845442 - ], - [ - 0.9031130927734239, - 12.643499434582822 - ], - [ - -0.3010307089040225, - 15.954879164649867 - ], - [ - -1.2041438016775032, - 18.66419747690884 - ], - [ - -2.4082876033549496, - 22.577659590845315 - ], - [ - -3.6124104389710965, - 24.985926228138908 - ], - [ - -4.51552353174452, - 27.394213831493857 - ], - [ - -5.418636624518001, - 29.501470725944785 - ], - [ - -5.719667333422024, - 32.210789038203785 - ], - [ - -5.719667333422024, - 33.71596354878528 - ], - [ - -4.816554240648543, - 35.22113805936678 - ], - [ - -3.9134621139364754, - 36.726312569948306 - ], - [ - -3.0103490211630515, - 37.62942566272176 - ], - [ - -1.8062052194855482, - 37.93045637162578 - ], - [ - 0, - 37.93045637162578 - ], - [ - 1.2041438016774464, - 37.62942566272176 - ], - [ - 2.4082876033549496, - 36.726312569948306 - ], - [ - 4.214492822840498, - 33.41493283988126 - ], - [ - 6.0207190083874025, - 30.103532143752858 - ], - [ - 8.127954936776973, - 26.190070029816383 - ], - [ - 9.934160156262465, - 22.878690299749337 - ], - [ - 10.837273249035945, - 20.470402696394387 - ], - [ - 10.837273249035945, - 17.76110535019677 - ], - [ - 10.536242540131923, - 11.740407307870726 - ], - [ - 10.536242540131923, - 7.525893518968871 - ], - [ - 10.536242540131923, - 4.515544497805877 - ], - [ - 10.536242540131923, - 3.010369987224351 - ], - [ - 9.934160156262465, - 1.2041647677388312 - ], - [ - 9.031068029550397, - 0 - ], - [ - 8.127954936776973, - -1.8061842534241919 - ], - [ - 7.525893518968871, - -3.010349021163023 - ], - [ - 6.6227804261954475, - -3.913441147875119 - ], - [ - 6.0207190083874025, - -4.515523531744549 - ], - [ - 5.418636624517944, - -4.816533274587215 - ], - [ - 5.117605915613922, - -4.816533274587215 - ], - [ - 4.816575206709899, - -4.816533274587215 - ], - [ - 4.51552353174452, - -4.816533274587215 - ], - [ - 4.214492822840498, - -4.816533274587215 - ], - [ - 4.214492822840498, - -4.214492822840498 - ], - [ - 4.214492822840498, - -4.214492822840498 - ] - ], - "pressures": [ - 0.0458984375, - 0.2080078125, - 0.3798828125, - 0.580078125, - 0.73046875, - 0.9189453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8876953125, - 0.7890625, - 0.5009765625, - 0.26953125, - 0.0791015625, - 0.017578125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.214492822840498, - -4.214492822840498 - ] - }, - { - "id": "8N7sNzOak0SdQupPTx8gf", - "type": "freedraw", - "x": 222.128364617967, - "y": 182.90576352156222, - "width": 20.470402696394444, - "height": 41.241836101692826, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 253676323, - "version": 173, - "versionNonce": 451390211, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010307089040225 - ], - [ - 0, - -2.1072359283895707 - ], - [ - 0, - -3.010349021163023 - ], - [ - -0.3010307089040225, - -3.612410438971068 - ], - [ - -0.602061417808045, - -4.214492822840498 - ], - [ - -1.8062052194854914, - -5.418636624517973 - ], - [ - -3.0103490211629946, - -6.020698042326046 - ], - [ - -4.51552353174452, - -6.321728751230069 - ], - [ - -6.92381113509947, - -6.321728751230069 - ], - [ - -8.428985645680939, - -6.321728751230069 - ], - [ - -9.633129447358442, - -6.321728751230069 - ], - [ - -10.53622157407051, - -6.020698042326046 - ], - [ - -11.43933466684399, - -5.418636624517973 - ], - [ - -11.740365375748013, - -4.214492822840498 - ], - [ - -12.041396084652035, - -1.8062052194855482 - ], - [ - -12.041396084652035, - -0.3010307089040225 - ], - [ - -12.041396084652035, - 0.9031130927734523 - ], - [ - -11.740365375748013, - 2.1072778605122835 - ], - [ - -10.235190865166487, - 4.214492822840498 - ], - [ - -8.730016354585018, - 5.418636624517973 - ], - [ - -7.8269032618115375, - 6.321749717291425 - ], - [ - -6.6227804261954475, - 6.92381113509947 - ], - [ - -5.719667333421967, - 7.5258935189689 - ], - [ - -4.51552353174452, - 8.127975902838301 - ], - [ - -3.6124104389710396, - 8.730037320646375 - ], - [ - -2.709318312258972, - 9.633150413419827 - ], - [ - -2.4082666372935932, - 10.235211831227872 - ], - [ - -2.4082666372935932, - 11.138324924001324 - ], - [ - -2.4082666372935932, - 12.04141705071342 - ], - [ - -3.311379730067017, - 13.245560852390895 - ], - [ - -4.214492822840441, - 14.148673945164347 - ], - [ - -5.418636624517944, - 15.653848455745845 - ], - [ - -7.2248418440034925, - 18.363166768004817 - ], - [ - -8.730016354585018, - 21.072485080263817 - ], - [ - -10.53622157407051, - 23.781782426461433 - ], - [ - -12.041396084652035, - 25.88903932091236 - ], - [ - -13.245539886329539, - 28.29732692426731 - ], - [ - -13.245539886329539, - 29.802501434848836 - ], - [ - -13.245539886329539, - 31.307675945430333 - ], - [ - -13.245539886329539, - 32.81285045601186 - ], - [ - -12.342447759617414, - 34.01699425768933 - ], - [ - -11.138303957939968, - 34.61905567549738 - ], - [ - -9.633129447358442, - 34.92010735046276 - ], - [ - -8.127954936776916, - 34.92010735046276 - ], - [ - -6.321728751230012, - 34.318024966593356 - ], - [ - -3.6124104389710396, - 32.81285045601186 - ], - [ - -1.8062052194854914, - 30.40456285265688 - ], - [ - 0.3010516749654357, - 27.394213831493886 - ], - [ - 2.107256894450927, - 24.68491648529624 - ], - [ - 3.3114006961284304, - 22.276607915879936 - ], - [ - 4.816575206709956, - 19.868341278586342 - ], - [ - 5.418636624518001, - 18.062115093039438 - ], - [ - 6.0207190083874025, - 15.954879164649867 - ], - [ - 6.6227804261954475, - 13.84762227019894 - ], - [ - 7.224862810064906, - 12.342447759617443 - ], - [ - 7.224862810064906, - 10.837273249035945 - ], - [ - 6.6227804261954475, - 9.633150413419827 - ], - [ - 6.0207190083874025, - 8.428985645680996 - ], - [ - 5.117605915613979, - 6.622801392256804 - ], - [ - 4.214492822840498, - 4.515544497805877 - ], - [ - 3.612431405032453, - 3.612452371093781 - ], - [ - 3.3114006961284304, - 2.709318312258972 - ], - [ - 2.709318312259029, - 1.8062261855468762 - ], - [ - 2.709318312259029, - 0.3010516749653789 - ], - [ - 2.709318312259029, - -0.3010307089040225 - ], - [ - 2.4082876033550065, - -0.6020614178080734 - ], - [ - 2.4082876033550065, - -1.5051745105814973 - ], - [ - 2.107256894450927, - -1.8062052194855482 - ], - [ - 1.8062261855469046, - -2.1072359283895707 - ], - [ - 1.2041438016775032, - -3.010349021163023 - ], - [ - 0.6020823838694582, - -3.9134621139364754 - ], - [ - -0.602061417808045, - -5.117584949552594 - ], - [ - -1.505174510581469, - -5.719667333421995 - ], - [ - -2.1072359283895707, - -6.020698042326046 - ], - [ - -2.709318312258972, - -6.020698042326046 - ], - [ - -3.6124104389710396, - -6.020698042326046 - ], - [ - -3.9134621139364185, - -6.020698042326046 - ], - [ - -3.9134621139364185, - -5.117584949552594 - ], - [ - -3.9134621139364185, - -4.816554240648571 - ], - [ - -3.9134621139364185, - -4.816554240648571 - ] - ], - "pressures": [ - 0.0380859375, - 0.06640625, - 0.193359375, - 0.2744140625, - 0.30859375, - 0.3388671875, - 0.4384765625, - 0.5166015625, - 0.6064453125, - 0.7109375, - 0.751953125, - 0.791015625, - 0.8095703125, - 0.8115234375, - 0.8095703125, - 0.79296875, - 0.751953125, - 0.734375, - 0.7265625, - 0.70703125, - 0.6923828125, - 0.6552734375, - 0.62890625, - 0.6181640625, - 0.6064453125, - 0.6064453125, - 0.59375, - 0.572265625, - 0.57421875, - 0.5888671875, - 0.6083984375, - 0.6201171875, - 0.6337890625, - 0.6640625, - 0.6923828125, - 0.708984375, - 0.71875, - 0.7421875, - 0.744140625, - 0.744140625, - 0.73046875, - 0.705078125, - 0.6826171875, - 0.67578125, - 0.677734375, - 0.677734375, - 0.6806640625, - 0.69921875, - 0.744140625, - 0.8134765625, - 0.8466796875, - 0.8701171875, - 0.8828125, - 0.9150390625, - 0.9345703125, - 0.9453125, - 0.96484375, - 0.9814453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.990234375, - 0.990234375, - 1, - 1, - 1, - 0.9833984375, - 0.9814453125, - 0.92578125, - 0.923828125, - 0.8896484375, - 0.744140625, - 0.1708984375, - 0.1103515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.9134621139364185, - -4.816554240648571 - ] - }, - { - "id": "ei00xxDoN_kzdGFEixbN0", - "type": "freedraw", - "x": 221.827333909063, - "y": 181.40058901098072, - "width": 30.404562852656852, - "height": 47.56358581898425, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 705586819, - "version": 161, - "versionNonce": 687782573, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.2041438016775032 - ], - [ - -0.3010307089040225, - -2.408287603354978 - ], - [ - -1.2041438016774464, - -3.6124104389710965 - ], - [ - -2.4082876033549496, - -4.515523531744549 - ], - [ - -3.612431405032396, - -5.719667333422024 - ], - [ - -5.418636624517944, - -6.321728751230069 - ], - [ - -8.127954936776916, - -6.6227804261954475 - ], - [ - -10.235190865166487, - -6.6227804261954475 - ], - [ - -12.342447759617414, - -5.719667333422024 - ], - [ - -15.051766071876443, - -3.6124104389710965 - ], - [ - -16.556940582457912, - -0.6020614178080734 - ], - [ - -17.761084384135415, - 2.709318312258972 - ], - [ - -18.36314580194346, - 5.117626881675278 - ], - [ - -18.96522818581286, - 6.321749717291397 - ], - [ - -18.96522818581286, - 6.622801392256775 - ], - [ - -18.96522818581286, - 6.92381113509947 - ], - [ - -18.062115093039438, - 7.826924227872922 - ], - [ - -17.460053675231393, - 8.127975902838301 - ], - [ - -17.159002000266014, - 8.127975902838301 - ], - [ - -16.857971291361935, - 8.127975902838301 - ], - [ - -15.653827489684488, - 7.525893518968871 - ], - [ - -13.84762227019894, - 6.321749717291397 - ], - [ - -13.245560852390895, - 5.719667333421995 - ], - [ - -12.643478468521437, - 5.719667333421995 - ], - [ - -12.643478468521437, - 5.418636624517944 - ], - [ - -11.43933466684399, - 5.418636624517944 - ], - [ - -9.934160156262465, - 5.719667333421995 - ], - [ - -8.428985645680996, - 6.321749717291397 - ], - [ - -7.2248418440034925, - 6.622801392256775 - ], - [ - -6.6227804261954475, - 6.92381113509947 - ], - [ - -5.719667333421967, - 7.826924227872922 - ], - [ - -4.816554240648543, - 8.730037320646346 - ], - [ - -4.214492822840498, - 9.33209873845442 - ], - [ - -3.612431405032396, - 9.633150413419798 - ], - [ - -3.612431405032396, - 10.235211831227872 - ], - [ - -3.612431405032396, - 10.536242540131894 - ], - [ - -3.612431405032396, - 10.837273249035917 - ], - [ - -3.9134621139364185, - 11.43933466684399 - ], - [ - -4.214492822840498, - 11.74038634180937 - ], - [ - -4.816554240648543, - 11.74038634180937 - ], - [ - -5.418636624517944, - 12.342447759617443 - ], - [ - -6.020698042325989, - 12.643499434582822 - ], - [ - -6.6227804261954475, - 12.944530143486844 - ], - [ - -6.92381113509947, - 13.546591561294917 - ], - [ - -7.525872552907515, - 14.148673945164319 - ], - [ - -8.428985645680996, - 15.352796780780437 - ], - [ - -8.730016354585018, - 16.25590987355389 - ], - [ - -9.33209873845442, - 17.460053675231364 - ], - [ - -9.633129447358442, - 18.96522818581289 - ], - [ - -9.934160156262465, - 23.179741974714716 - ], - [ - -10.235190865166487, - 27.99627524930193 - ], - [ - -10.536242540131866, - 32.81285045601183 - ], - [ - -10.536242540131866, - 35.82319947717485 - ], - [ - -10.235190865166487, - 37.93045637162578 - ], - [ - -8.730016354585018, - 39.73668255717266 - ], - [ - -6.92381113509947, - 40.63977468388475 - ], - [ - -5.418636624517944, - 40.9408053927888 - ], - [ - -3.612431405032396, - 40.9408053927888 - ], - [ - -0.602061417808045, - 39.134600173303255 - ], - [ - 1.8062052194855482, - 37.02734327885233 - ], - [ - 4.214492822840498, - 34.61905567549738 - ], - [ - 6.321749717291425, - 31.00664523652631 - ], - [ - 8.428985645680996, - 26.19009099587774 - ], - [ - 10.536242540131923, - 18.062115093039438 - ], - [ - 11.138303957939968, - 12.944530143486844 - ], - [ - 11.43933466684399, - 10.536242540131894 - ], - [ - 10.837273249035945, - 6.020719008387374 - ], - [ - 10.837273249035945, - 6.020719008387374 - ] - ], - "pressures": [ - 0.07421875, - 0.2041015625, - 0.294921875, - 0.39453125, - 0.615234375, - 0.87890625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.837273249035945, - 6.020719008387374 - ] - }, - { - "id": "ku9p3C-dBHy3YlFY_cAHM", - "type": "freedraw", - "x": 231.46046335642149, - "y": 185.91611254272524, - "width": 5.418636624518001, - "height": 1.2041228356161469, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 717383011, - "version": 94, - "versionNonce": 2002866851, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.418636624518001, - -1.2041228356161469 - ], - [ - -5.418636624518001, - -1.2041228356161469 - ] - ], - "pressures": [ - 1, - 0.576171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.418636624518001, - -1.2041228356161469 - ] - }, - { - "id": "oeWiOHM2DqN1cTQD_mzog", - "type": "freedraw", - "x": 222.73044700183647, - "y": 186.81922563549867, - "width": 14.14865297910302, - "height": 15.95485819858854, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 51367235, - "version": 114, - "versionNonce": 671931661, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - 0.3010307089040509 - ], - [ - 0, - 0.3010307089040509 - ], - [ - 0, - 0 - ], - [ - -0.3010307089040225, - -1.2041438016774748 - ], - [ - -0.3010307089040225, - -3.3113797300670456 - ], - [ - -0.3010307089040225, - -5.117605915613922 - ], - [ - -0.9031130927734807, - -7.525872552907515 - ], - [ - -1.2041438016775032, - -9.03104706348904 - ], - [ - -1.8062261855469046, - -9.934160156262493 - ], - [ - -3.0103490211630515, - -11.43933466684399 - ], - [ - -3.612431405032453, - -12.041417050713392 - ], - [ - -5.719667333422024, - -13.546591561294917 - ], - [ - -7.224862810064906, - -14.148652979102962 - ], - [ - -8.730037320646375, - -14.750735362972392 - ], - [ - -10.536242540131923, - -15.051766071876415 - ], - [ - -11.740386341809426, - -15.352796780780466 - ], - [ - -12.944530143486872, - -15.653827489684488 - ], - [ - -13.546591561294917, - -15.653827489684488 - ], - [ - -13.847622270198997, - -15.653827489684488 - ], - [ - -13.245560852390895, - -15.051766071876415 - ], - [ - -12.944530143486872, - -14.449683688007013 - ], - [ - -12.944530143486872, - -14.449683688007013 - ] - ], - "pressures": [ - 0.0791015625, - 0.1220703125, - 0.6513671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2607421875, - 0.119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -12.944530143486872, - -14.449683688007013 - ] - }, - { - "id": "ARQMNbMlVeK5r8AuCHCig", - "type": "freedraw", - "x": 210.387999242219, - "y": 177.18609618814023, - "width": 11.138303957939968, - "height": 15.352817746841822, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 937269933, - "version": 121, - "versionNonce": 971486061, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.6020823838694014, - -0.6020614178080734 - ], - [ - -0.9031130927734239, - -0.6020614178080734 - ], - [ - -1.5051745105815257, - -0.9031130927734523 - ], - [ - -2.107256894450927, - -0.9031130927734523 - ], - [ - -2.709318312258972, - -0.6020614178080734 - ], - [ - -3.612431405032453, - 0.3010307089040225 - ], - [ - -4.214492822840498, - 1.2041438016774748 - ], - [ - -5.117605915613922, - 2.709318312258972 - ], - [ - -5.719667333422024, - 3.913462113936447 - ], - [ - -6.0207190083874025, - 5.117605915613922 - ], - [ - -6.321749717291425, - 5.719667333421995 - ], - [ - -6.321749717291425, - 7.2248418440034925 - ], - [ - -6.321749717291425, - 8.428985645680967 - ], - [ - -6.0207190083874025, - 9.934160156262493 - ], - [ - -5.418636624517944, - 11.138303957939968 - ], - [ - -4.816575206709899, - 12.342468725678799 - ], - [ - -3.612431405032453, - 13.245560852390895 - ], - [ - -2.4082876033549496, - 13.847643236260296 - ], - [ - -0.9031130927734239, - 14.148652979102991 - ], - [ - 0.602061417808045, - 14.44970465406837 - ], - [ - 1.8062052194855482, - 14.44970465406837 - ], - [ - 2.709318312258972, - 14.44970465406837 - ], - [ - 3.311379730067074, - 14.44970465406837 - ], - [ - 3.9134621139364754, - 14.148652979102991 - ], - [ - 4.214492822840498, - 14.148652979102991 - ], - [ - 4.51552353174452, - 13.546591561294917 - ], - [ - 4.816554240648543, - 13.245560852390895 - ], - [ - 4.816554240648543, - 12.643478468521465 - ], - [ - 4.816554240648543, - 12.342468725678799 - ], - [ - 4.816554240648543, - 12.342468725678799 - ] - ], - "pressures": [ - 0.068359375, - 0.2421875, - 0.3291015625, - 0.4462890625, - 0.53125, - 0.6357421875, - 0.705078125, - 0.7626953125, - 0.8662109375, - 0.947265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.740234375, - 0.3837890625, - 0.2021484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 4.816554240648543, - 12.342468725678799 - ] - }, - { - "id": "S_GP6hzflWYkQryxf353J", - "type": "freedraw", - "x": 211.89317375280052, - "y": 191.6358008422086, - "width": 17.761084384135415, - "height": 37.930435405564424, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 551754051, - "version": 141, - "versionNonce": 1255718349, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.9031130927734239, - 0.3010307089040225 - ], - [ - 1.8062052194855482, - 1.2041228356161184 - ], - [ - 2.4082876033549496, - 2.709318312258972 - ], - [ - 2.709318312258972, - 4.214492822840498 - ], - [ - 3.0103490211629946, - 5.719667333421995 - ], - [ - 3.311379730067017, - 8.127933970715588 - ], - [ - 3.311379730067017, - 9.93418112232385 - ], - [ - 3.311379730067017, - 11.439355632905347 - ], - [ - 3.0103490211629946, - 12.944530143486844 - ], - [ - 2.4082876033549496, - 14.148652979102991 - ], - [ - 0.9031130927734239, - 16.25588890749256 - ], - [ - -0.3010307089040225, - 17.460053675231393 - ], - [ - -1.5051745105815257, - 18.66417651084751 - ], - [ - -2.107256894450927, - 19.868320312524986 - ], - [ - -3.0103490211630515, - 21.674525532010506 - ], - [ - -3.3114006961284304, - 22.577638624783958 - ], - [ - -3.612431405032453, - 23.48075171755741 - ], - [ - -3.612431405032453, - 24.68487455317353 - ], - [ - -3.612431405032453, - 27.09316215652848 - ], - [ - -3.612431405032453, - 28.899388342075383 - ], - [ - -3.612431405032453, - 30.70559356156093 - ], - [ - -3.0103490211630515, - 32.21076807214243 - ], - [ - -2.709318312258972, - 33.11388116491588 - ], - [ - -1.5051745105815257, - 34.318004000532 - ], - [ - -0.9031130927734807, - 35.22111709330545 - ], - [ - 0, - 36.42526089498293 - ], - [ - 0.9031130927734239, - 37.32837398775638 - ], - [ - 1.8062052194855482, - 37.930435405564424 - ], - [ - 2.709318312258972, - 37.930435405564424 - ], - [ - 3.6124104389710396, - 37.6294046966604 - ], - [ - 4.51552353174452, - 36.72629160388695 - ], - [ - 6.020698042326046, - 35.52216876827083 - ], - [ - 8.428985645680996, - 32.21076807214243 - ], - [ - 10.235190865166487, - 29.200419050979406 - ], - [ - 11.740365375748013, - 26.49112170478179 - ], - [ - 12.643478468521494, - 24.383843844269506 - ], - [ - 13.245539886329539, - 22.87866933368801 - ], - [ - 13.546591561294917, - 20.16935102142901 - ], - [ - 13.84762227019894, - 17.76106341807406 - ], - [ - 13.84762227019894, - 14.750714396911036 - ], - [ - 13.84762227019894, - 11.740365375748013 - ], - [ - 14.148652979102962, - 8.429006611742324 - ], - [ - 14.148652979102962, - 7.2248418440034925 - ], - [ - 14.148652979102962, - 6.622759460134091 - ], - [ - 13.84762227019894, - 6.020698042326018 - ], - [ - 13.546591561294917, - 5.719667333421995 - ], - [ - 13.245539886329539, - 4.214492822840498 - ], - [ - 13.245539886329539, - 3.0103490211629946 - ], - [ - 12.944509177425516, - 2.1072359283895707 - ], - [ - 12.944509177425516, - 1.8062052194855198 - ], - [ - 12.944509177425516, - 2.1072359283895707 - ], - [ - 12.944509177425516, - 2.709318312258972 - ], - [ - 12.944509177425516, - 2.709318312258972 - ] - ], - "pressures": [ - 0.0283203125, - 0.3896484375, - 0.404296875, - 0.4306640625, - 0.5009765625, - 0.564453125, - 0.6015625, - 0.611328125, - 0.6064453125, - 0.59765625, - 0.5947265625, - 0.599609375, - 0.599609375, - 0.591796875, - 0.58203125, - 0.4912109375, - 0.4208984375, - 0.390625, - 0.37109375, - 0.3408203125, - 0.314453125, - 0.294921875, - 0.2734375, - 0.2666015625, - 0.263671875, - 0.263671875, - 0.263671875, - 0.2626953125, - 0.2578125, - 0.23828125, - 0.23828125, - 0.23828125, - 0.23828125, - 0.240234375, - 0.2509765625, - 0.275390625, - 0.287109375, - 0.29296875, - 0.3095703125, - 0.3173828125, - 0.322265625, - 0.3232421875, - 0.32421875, - 0.3251953125, - 0.326171875, - 0.3271484375, - 0.3271484375, - 0.322265625, - 0.31640625, - 0.2939453125, - 0.2705078125, - 0.1357421875, - 0.0107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.944509177425516, - 2.709318312258972 - ] - }, - { - "id": "Fygd_uZkEtKDh9zeatC-j", - "type": "freedraw", - "x": 220.32215939848152, - "y": 186.81922563549867, - "width": 5.71968829948338, - "height": 47.563564852922894, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1225034723, - "version": 123, - "versionNonce": 2054459779, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.30103070890407935, - -0.602061417808045 - ], - [ - -0.6020614178081019, - -0.602061417808045 - ], - [ - -0.9031130927734807, - 0 - ], - [ - -1.2041438016775032, - 1.2041647677388312 - ], - [ - -1.2041438016775032, - 2.107256894450927 - ], - [ - -1.2041438016775032, - 3.010349021163023 - ], - [ - -1.5051745105815257, - 4.214513788901854 - ], - [ - -1.5051745105815257, - 5.71968829948338 - ], - [ - -1.5051745105815257, - 8.428985645680996 - ], - [ - -1.5051745105815257, - 10.536242540131923 - ], - [ - -1.8062052194855482, - 12.944509177425516 - ], - [ - -2.107256894450927, - 15.653827489684517 - ], - [ - -2.709318312259029, - 18.36314580194349 - ], - [ - -3.311379730067074, - 22.27662888194132 - ], - [ - -3.612431405032453, - 24.684895519234914 - ], - [ - -3.612431405032453, - 26.79215241368584 - ], - [ - -3.612431405032453, - 28.59835763317136 - ], - [ - -3.612431405032453, - 30.40456285265691 - ], - [ - -3.311379730067074, - 33.41491187381993 - ], - [ - -3.0103490211630515, - 35.52216876827086 - ], - [ - -3.0103490211630515, - 37.027343278852356 - ], - [ - -2.709318312259029, - 37.93045637162581 - ], - [ - -2.709318312259029, - 38.83356946439926 - ], - [ - -2.107256894450927, - 40.33874397498076 - ], - [ - -1.5051745105815257, - 41.843918485562256 - ], - [ - -0.9031130927734807, - 43.048041321178374 - ], - [ - -0.30103070890407935, - 44.25218512285588 - ], - [ - 0.3010307089040225, - 44.85426750672528 - ], - [ - 0.602061417808045, - 45.45632892453335 - ], - [ - 1.2041438016774464, - 46.0583903423414 - ], - [ - 1.505174510581469, - 46.66047272621083 - ], - [ - 1.8062052194854914, - 46.96150343511485 - ], - [ - 2.107256894450927, - 46.66047272621083 - ], - [ - 2.107256894450927, - 46.0583903423414 - ], - [ - 2.107256894450927, - 46.0583903423414 - ] - ], - "pressures": [ - 0.0537109375, - 0.134765625, - 0.1748046875, - 0.376953125, - 0.380859375, - 0.3896484375, - 0.3994140625, - 0.4052734375, - 0.42578125, - 0.5107421875, - 0.5556640625, - 0.5947265625, - 0.625, - 0.6572265625, - 0.6787109375, - 0.703125, - 0.728515625, - 0.744140625, - 0.7607421875, - 0.7724609375, - 0.7783203125, - 0.7763671875, - 0.7763671875, - 0.7763671875, - 0.78515625, - 0.7724609375, - 0.7568359375, - 0.73828125, - 0.69921875, - 0.673828125, - 0.626953125, - 0.5, - 0.3564453125, - 0.15625, - 0.076171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 2.107256894450927, - 46.0583903423414 - ] - }, - { - "id": "pOzBMcvlKxE05WPsHLVjy", - "type": "freedraw", - "x": 219.41904630570804, - "y": 186.81922563549867, - "width": 10.235190865166487, - "height": 37.93045637162581, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1143042531, - "version": 120, - "versionNonce": 33127469, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 0.3010307089040509 - ], - [ - -0.3010307089040225, - 0.9031130927734523 - ], - [ - -0.9030921267120675, - 1.5051745105815257 - ], - [ - -1.2041438016774464, - 2.107256894450927 - ], - [ - -2.1072359283895707, - 3.612431405032453 - ], - [ - -3.0103490211629946, - 4.515523531744549 - ], - [ - -3.6124104389710396, - 5.71968829948338 - ], - [ - -4.214492822840498, - 6.321749717291425 - ], - [ - -5.117584949552565, - 7.224862810064877 - ], - [ - -6.020698042326046, - 8.428985645680996 - ], - [ - -7.8269032618115375, - 10.536242540131923 - ], - [ - -8.730016354585018, - 12.643478468521494 - ], - [ - -9.633129447358442, - 14.44970465406837 - ], - [ - -10.235190865166487, - 16.255930839615274 - ], - [ - -10.235190865166487, - 17.76110535019677 - ], - [ - -10.235190865166487, - 20.169371987490393 - ], - [ - -9.934160156262465, - 22.878690299749366 - ], - [ - -9.332077772393063, - 25.286977903104315 - ], - [ - -9.03104706348904, - 27.093183122589863 - ], - [ - -7.8269032618115375, - 29.200419050979434 - ], - [ - -6.92381113509947, - 30.70559356156093 - ], - [ - -6.020698042326046, - 31.909737363238406 - ], - [ - -4.816554240648543, - 33.71596354878531 - ], - [ - -4.214492822840498, - 34.61905567549741 - ], - [ - -3.9134621139364754, - 35.22113805936681 - ], - [ - -3.311379730067017, - 36.124230186078904 - ], - [ - -2.709318312258972, - 37.027343278852356 - ], - [ - -2.1072359283895707, - 37.62940469666043 - ], - [ - -1.8062052194855482, - 37.93045637162581 - ], - [ - -1.505174510581469, - 37.027343278852356 - ], - [ - -1.505174510581469, - 36.726312569948334 - ], - [ - -1.505174510581469, - 36.726312569948334 - ] - ], - "pressures": [ - 0.0107421875, - 0.169921875, - 0.203125, - 0.2216796875, - 0.2412109375, - 0.2578125, - 0.2744140625, - 0.2958984375, - 0.3310546875, - 0.3564453125, - 0.359375, - 0.36328125, - 0.3681640625, - 0.380859375, - 0.384765625, - 0.384765625, - 0.3818359375, - 0.3818359375, - 0.3828125, - 0.3857421875, - 0.3876953125, - 0.38671875, - 0.3857421875, - 0.3876953125, - 0.384765625, - 0.37890625, - 0.3515625, - 0.3056640625, - 0.2294921875, - 0.185546875, - 0.0888671875, - 0.0390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.505174510581469, - 36.726312569948334 - ] - }, - { - "id": "5TNKcE6DUCIxPExu0kKOb", - "type": "freedraw", - "x": 219.118015596804, - "y": 186.21716421769062, - "width": 10.235190865166487, - "height": 32.21081000426514, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1234266893, - "version": 124, - "versionNonce": 1368221987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -0.3010516749653789 - ], - [ - 0, - 0 - ], - [ - 0, - 1.2041438016774748 - ], - [ - 0.3010307089040225, - 2.4082666372935932 - ], - [ - 0.3010307089040225, - 3.311400696128402 - ], - [ - 0.3010307089040225, - 3.913462113936447 - ], - [ - 0, - 4.816575206709899 - ], - [ - -0.602061417808045, - 6.020698042326018 - ], - [ - -1.5051745105815257, - 6.92381113509947 - ], - [ - -3.311379730067017, - 8.127954936776945 - ], - [ - -4.214492822840498, - 8.428985645680967 - ], - [ - -5.418636624517944, - 9.03104706348904 - ], - [ - -6.6227804261954475, - 9.33209873845442 - ], - [ - -8.127954936776973, - 10.235190865166516 - ], - [ - -8.730016354585018, - 10.837273249035945 - ], - [ - -8.730016354585018, - 11.43933466684399 - ], - [ - -9.03104706348904, - 12.342447759617443 - ], - [ - -9.03104706348904, - 13.546570595233561 - ], - [ - -9.33209873845442, - 15.95485819858851 - ], - [ - -9.633129447358442, - 17.460032709170036 - ], - [ - -9.934160156262465, - 18.66417651084751 - ], - [ - -9.934160156262465, - 20.16935102142901 - ], - [ - -9.633129447358442, - 22.878690299749366 - ], - [ - -9.33209873845442, - 24.383864810330863 - ], - [ - -8.730016354585018, - 25.28695693704296 - ], - [ - -8.428985645680996, - 26.19007002981641 - ], - [ - -7.525872552907515, - 27.09316215652848 - ], - [ - -5.719667333422024, - 29.501449759883457 - ], - [ - -4.816554240648543, - 31.006624270464954 - ], - [ - -3.9134621139364754, - 31.608706654334355 - ], - [ - -3.311379730067017, - 31.909758329299763 - ], - [ - -3.0103490211629946, - 31.909758329299763 - ], - [ - -2.709318312258972, - 31.006624270464954 - ], - [ - -2.709318312258972, - 30.404583818718237 - ], - [ - -3.0103490211629946, - 30.1035111776915 - ], - [ - -3.0103490211629946, - 30.1035111776915 - ] - ], - "pressures": [ - 0.0458984375, - 0.154296875, - 0.2490234375, - 0.2822265625, - 0.322265625, - 0.3818359375, - 0.41796875, - 0.4677734375, - 0.5263671875, - 0.572265625, - 0.6357421875, - 0.6591796875, - 0.6640625, - 0.669921875, - 0.6787109375, - 0.6787109375, - 0.6787109375, - 0.673828125, - 0.671875, - 0.673828125, - 0.673828125, - 0.669921875, - 0.6640625, - 0.6494140625, - 0.646484375, - 0.646484375, - 0.642578125, - 0.626953125, - 0.5283203125, - 0.4912109375, - 0.4599609375, - 0.408203125, - 0.353515625, - 0.16796875, - 0.1103515625, - 0.0126953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.0103490211629946, - 30.1035111776915 - ] - }, - { - "id": "TC4p-r-4-WBjZI2Fmlg8Z", - "type": "freedraw", - "x": 209.48488614944557, - "y": 190.73268774943514, - "width": 11.138282991878611, - "height": 28.89940930813674, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1047547949, - "version": 118, - "versionNonce": 1731423885, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - 0.6020614178080734 - ], - [ - 0.3010307089040225, - 1.5051745105814973 - ], - [ - 0, - 2.4082876033549496 - ], - [ - -0.6020614178081019, - 3.010349021163023 - ], - [ - -2.1072359283895707, - 3.913462113936447 - ], - [ - -3.311379730067074, - 4.51552353174452 - ], - [ - -4.51552353174452, - 5.11760591561395 - ], - [ - -6.020698042326046, - 5.418636624517973 - ], - [ - -7.826903261811594, - 6.321749717291425 - ], - [ - -8.730016354585018, - 6.92381113509947 - ], - [ - -9.33207777239312, - 8.127954936776945 - ], - [ - -9.934160156262521, - 9.63312944735847 - ], - [ - -10.536221574070566, - 10.837294215097302 - ], - [ - -10.837252282974589, - 12.643478468521465 - ], - [ - -10.837252282974589, - 14.449683688007013 - ], - [ - -10.536221574070566, - 16.85799225742332 - ], - [ - -9.934160156262521, - 19.567289603620964 - ], - [ - -9.03104706348904, - 22.276607915879936 - ], - [ - -8.127954936776973, - 23.179721008653388 - ], - [ - -7.224841844003549, - 24.082813135365484 - ], - [ - -6.321728751230069, - 25.28695693704296 - ], - [ - -5.117605915613979, - 26.792131447624456 - ], - [ - -3.9134621139364754, - 28.59835763317136 - ], - [ - -3.311379730067074, - 28.89940930813674 - ], - [ - -3.0103490211630515, - 28.89940930813674 - ], - [ - -2.4082876033549496, - 28.89940930813674 - ], - [ - -1.5051745105815257, - 28.89940930813674 - ], - [ - -0.9031130927734807, - 28.89940930813674 - ], - [ - -0.6020614178081019, - 28.59835763317136 - ], - [ - -0.3010307089040225, - 28.297305958205982 - ], - [ - -0.3010307089040225, - 28.297305958205982 - ] - ], - "pressures": [ - 0.046875, - 0.189453125, - 0.23046875, - 0.2880859375, - 0.3515625, - 0.4228515625, - 0.482421875, - 0.537109375, - 0.5947265625, - 0.62890625, - 0.6318359375, - 0.630859375, - 0.6240234375, - 0.625, - 0.62890625, - 0.6318359375, - 0.642578125, - 0.6533203125, - 0.662109375, - 0.666015625, - 0.66796875, - 0.6806640625, - 0.6826171875, - 0.6826171875, - 0.6787109375, - 0.666015625, - 0.6572265625, - 0.5693359375, - 0.30859375, - 0.19140625, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.3010307089040225, - 28.297305958205982 - ] - }, - { - "id": "0QN1es5YFHj0XuYTqcicm", - "type": "freedraw", - "x": 204.06624952492757, - "y": 213.00929566531508, - "width": 10.837273249035945, - "height": 10.536242540131894, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1373665475, - "version": 96, - "versionNonce": 1228936429, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 10.837273249035945, - -5.117605915613922 - ], - [ - 9.934160156262521, - -6.923790169038114 - ], - [ - 9.031068029550397, - -8.127954936776945 - ], - [ - 8.428985645680996, - -9.33209873845442 - ], - [ - 7.826924227872951, - -9.934139190201137 - ], - [ - 7.826924227872951, - -10.536242540131894 - ], - [ - 7.525893518968928, - -10.536242540131894 - ], - [ - 7.224841844003549, - -10.536242540131894 - ], - [ - 6.92381113509947, - -10.536242540131894 - ], - [ - 6.92381113509947, - -10.536242540131894 - ] - ], - "pressures": [ - 0.8173828125, - 0.9755859375, - 0.94921875, - 0.947265625, - 0.92578125, - 0.9189453125, - 0.9130859375, - 0.900390625, - 0.3076171875, - 0.1279296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.92381113509947, - -10.536242540131894 - ] - }, - { - "id": "oqZhkFv3mxIeeTG5sWxab", - "type": "freedraw", - "x": 215.20455348286754, - "y": 185.91611254272524, - "width": 8.428985645680996, - "height": 19.567289603620935, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 687075459, - "version": 111, - "versionNonce": 1672015693, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.9030711606507396 - ], - [ - 0.9031130927734807, - -0.3010307089040509 - ], - [ - 1.2041438016775032, - 0.9031130927734239 - ], - [ - 1.5051745105815257, - 2.709318312258972 - ], - [ - 1.5051745105815257, - 5.418636624517973 - ], - [ - 1.5051745105815257, - 7.525893518968871 - ], - [ - 1.5051745105815257, - 9.031068029550397 - ], - [ - 0.6020823838694582, - 10.837273249035917 - ], - [ - 0, - 11.74038634180937 - ], - [ - -0.9030921267120675, - 12.643499434582822 - ], - [ - -1.8062052194855482, - 13.245560852390895 - ], - [ - -2.709318312258972, - 13.546591561294917 - ], - [ - -4.51552353174452, - 13.84762227019894 - ], - [ - -5.418636624517944, - 14.148694911225675 - ], - [ - -6.020698042325989, - 14.750735362972392 - ], - [ - -6.6227804261954475, - 15.051766071876415 - ], - [ - -6.92381113509947, - 15.954879164649867 - ], - [ - -6.92381113509947, - 16.25590987355389 - ], - [ - -6.92381113509947, - 16.85799225742332 - ], - [ - -6.92381113509947, - 17.761084384135415 - ], - [ - -6.6227804261954475, - 18.062136059100794 - ], - [ - -6.6227804261954475, - 18.363166768004817 - ], - [ - -6.321728751230069, - 18.363166768004817 - ], - [ - -6.321728751230069, - 18.664218442970196 - ], - [ - -6.020698042325989, - 18.664218442970196 - ], - [ - -5.719667333421967, - 18.664218442970196 - ], - [ - -5.719667333421967, - 18.664218442970196 - ] - ], - "pressures": [ - 0.0390625, - 0.4013671875, - 0.7744140625, - 0.849609375, - 0.9365234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.921875, - 0.4990234375, - 0.2626953125, - 0.16015625, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.719667333421967, - 18.664218442970196 - ] - }, - { - "id": "NuhtYISZcVRkhphUF6p_a", - "type": "freedraw", - "x": 218.8169848879, - "y": 186.81922563549867, - "width": 7.826924227872951, - "height": 15.954879164649896, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1184241283, - "version": 101, - "versionNonce": 991574019, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.418636624518001, - 8.428985645680996 - ], - [ - -7.2248418440034925, - 9.332098738454448 - ], - [ - -7.826924227872951, - 9.934160156262493 - ], - [ - -7.826924227872951, - 10.2352118312279 - ], - [ - -7.826924227872951, - 10.536242540131923 - ], - [ - -7.826924227872951, - 11.138303957939996 - ], - [ - -7.826924227872951, - 12.04141705071342 - ], - [ - -7.826924227872951, - 12.643478468521494 - ], - [ - -7.525893518968871, - 13.245581818452251 - ], - [ - -6.92381113509947, - 14.148652979102991 - ], - [ - -6.6227804261954475, - 14.750756329033777 - ], - [ - -6.321749717291425, - 15.352796780780466 - ], - [ - -6.020698042326046, - 15.653827489684517 - ], - [ - -6.020698042326046, - 15.954879164649896 - ], - [ - -5.719667333422024, - 15.954879164649896 - ], - [ - -5.418636624518001, - 15.954879164649896 - ], - [ - -5.418636624518001, - 15.954879164649896 - ] - ], - "pressures": [ - 0.3232421875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.923828125, - 0.8828125, - 0.826171875, - 0.7587890625, - 0.71484375, - 0.6884765625, - 0.4794921875, - 0.2822265625, - 0.2138671875, - 0.1357421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.418636624518001, - 15.954879164649896 - ] - }, - { - "id": "Kq4a6I0Na6a5YhyaV_KBy", - "type": "freedraw", - "x": 204.3672802338316, - "y": 200.66684790569764, - "width": 3.010369987224351, - "height": 6.321749717291425, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 46693229, - "version": 105, - "versionNonce": 1807368099, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.505174510581469, - 1.8062052194855482 - ], - [ - -1.505174510581469, - 3.311400696128402 - ], - [ - -1.20412283561609, - 4.51552353174452 - ], - [ - -0.9030921267120675, - 5.418657590579329 - ], - [ - -0.602061417808045, - 5.719667333421995 - ], - [ - 0, - 5.719667333421995 - ], - [ - 0.6020823838694582, - 4.816575206709899 - ], - [ - 1.2041438016775032, - 3.311400696128402 - ], - [ - 1.5051954766428821, - 2.107256894450927 - ], - [ - 1.5051954766428821, - 1.2041438016774748 - ], - [ - 1.5051954766428821, - 0.3010307089040225 - ], - [ - 1.2041438016775032, - 0 - ], - [ - 0.6020823838694582, - 0 - ], - [ - 0, - 0 - ], - [ - -1.20412283561609, - 0 - ], - [ - -1.505174510581469, - 0.9031340588348087 - ], - [ - -1.505174510581469, - 2.408308569416306 - ], - [ - -1.505174510581469, - 3.9134830799978033 - ], - [ - -1.505174510581469, - 5.11760591561395 - ], - [ - -0.602061417808045, - 6.321749717291425 - ], - [ - -0.3010307089040225, - 6.321749717291425 - ], - [ - -0.3010307089040225, - 6.321749717291425 - ] - ], - "pressures": [ - 0.013671875, - 0.16796875, - 0.181640625, - 0.1884765625, - 0.193359375, - 0.197265625, - 0.1982421875, - 0.19921875, - 0.201171875, - 0.2041015625, - 0.2080078125, - 0.21875, - 0.2216796875, - 0.2255859375, - 0.228515625, - 0.23046875, - 0.2314453125, - 0.2314453125, - 0.23046875, - 0.2275390625, - 0.1748046875, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.3010307089040225, - 6.321749717291425 - ] - }, - { - "id": "d_xQkeJZzFFdDzv5MrHxk", - "type": "freedraw", - "x": 260.6608824074009, - "y": 190.73268774943514, - "width": 2.709318312258972, - "height": 5.418636624517973, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 524817293, - "version": 94, - "versionNonce": 104354627, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.3010307089040225, - -0.6020614178080734 - ], - [ - -0.602061417808045, - -0.6020614178080734 - ], - [ - 0.3010307089040225, - 0.6020614178080734 - ], - [ - 0.602061417808045, - 1.5051745105814973 - ], - [ - 1.2041647677388028, - 2.4082876033549496 - ], - [ - 1.2041647677388028, - 3.010349021163023 - ], - [ - 1.2041647677388028, - 3.311400696128402 - ], - [ - 1.2041647677388028, - 3.6124314050324244 - ], - [ - 1.2041647677388028, - 4.214492822840498 - ], - [ - 0.9030921267120675, - 4.51552353174452 - ], - [ - 0.602061417808045, - 4.51552353174452 - ], - [ - -0.602061417808045, - 4.816575206709899 - ], - [ - -1.2041228356161469, - 4.816575206709899 - ], - [ - -1.5051535445201694, - 4.816575206709899 - ], - [ - -1.2041228356161469, - 4.816575206709899 - ], - [ - -1.2041228356161469, - 4.816575206709899 - ] - ], - "pressures": [ - 0.01953125, - 0.259765625, - 0.6533203125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.21875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.2041228356161469, - 4.816575206709899 - ] - }, - { - "id": "z0JziIIm3Ll2OsEaLhh5M", - "type": "freedraw", - "x": 257.0484719684298, - "y": 187.12025634440272, - "width": 5.719667333422024, - "height": 9.934160156262493, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 18084461, - "version": 100, - "versionNonce": 1453045357, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.2041438016774748 - ], - [ - 0, - -1.5051745105815257 - ], - [ - 0, - -1.8062052194855482 - ], - [ - 0.3010307089040225, - -1.2041438016774748 - ], - [ - 0.9030921267121244, - 0 - ], - [ - 1.8061842534241919, - 1.8062261855468762 - ], - [ - 2.709318312258972, - 3.010369987224351 - ], - [ - 3.311379730067074, - 4.515544497805877 - ], - [ - 3.6124104389710965, - 5.117605915613922 - ], - [ - 3.6124104389710965, - 5.719667333421995 - ], - [ - 3.6124104389710965, - 6.020719008387374 - ], - [ - 3.6124104389710965, - 6.321749717291397 - ], - [ - 3.0103490211630515, - 6.6227804261954475 - ], - [ - 2.107256894450927, - 6.923832101160826 - ], - [ - -0.3010307089040225, - 7.224862810064849 - ], - [ - -1.2041647677388028, - 7.224862810064849 - ], - [ - -1.8062261855469046, - 7.525893518968871 - ], - [ - -2.107256894450927, - 7.525893518968871 - ], - [ - -1.8062261855469046, - 7.826924227872922 - ], - [ - -1.2041647677388028, - 8.127954936776945 - ], - [ - -0.9031340588347803, - 8.127954936776945 - ], - [ - -0.9031340588347803, - 8.127954936776945 - ] - ], - "pressures": [ - 0.083984375, - 0.22265625, - 0.244140625, - 0.376953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.47265625, - 0.166015625, - 0.0244140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.9031340588347803, - 8.127954936776945 - ] - }, - { - "id": "KVOyTHbwy4pUvoiBuOJB_", - "type": "freedraw", - "x": 257.9515640951419, - "y": 185.6150818338212, - "width": 4.816575206709899, - "height": 8.730037320646375, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1699851373, - "version": 96, - "versionNonce": 989000419, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.3010307089040225, - -0.3010307089040225 - ], - [ - 0.3010307089040225, - 0 - ], - [ - 0.9030921267120675, - 0.3010307089040509 - ], - [ - 1.5051954766428253, - 1.5051745105815257 - ], - [ - 1.8062261855468478, - 2.408308569416306 - ], - [ - 2.4082876033549496, - 3.311400696128402 - ], - [ - 2.709318312258972, - 4.515544497805877 - ], - [ - 2.709318312258972, - 4.816575206709928 - ], - [ - 2.709318312258972, - 5.418657590579329 - ], - [ - 1.5051954766428253, - 6.321749717291425 - ], - [ - 0.3010307089040225, - 6.923832101160855 - ], - [ - -0.6020614178081019, - 7.224841844003521 - ], - [ - -1.2041228356161469, - 7.5258935189689 - ], - [ - -1.8062261855469046, - 7.826924227872922 - ], - [ - -2.107256894450927, - 7.826924227872922 - ], - [ - -2.107256894450927, - 8.127954936776973 - ], - [ - -2.107256894450927, - 8.429006611742352 - ], - [ - -2.107256894450927, - 8.429006611742352 - ] - ], - "pressures": [ - 0.1123046875, - 0.8115234375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.47265625, - 0.2119140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.107256894450927, - 8.429006611742352 - ] - }, - { - "id": "SmUSPunmpKs_-TAwwalyi", - "type": "freedraw", - "x": 260.05882098959285, - "y": 188.62543085498422, - "width": 4.816575206709899, - "height": 9.63312944735847, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 370879917, - "version": 99, - "versionNonce": 1477730509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -0.30103070890407935, - -0.3010307089040225 - ], - [ - 0.602061417808045, - 0.9031340588348087 - ], - [ - 1.5051535445201125, - 1.8062261855469046 - ], - [ - 2.107256894450927, - 2.7093183122590005 - ], - [ - 2.4082876033549496, - 3.6124314050324244 - ], - [ - 2.709318312258972, - 4.214492822840498 - ], - [ - 2.709318312258972, - 4.515544497805877 - ], - [ - 2.709318312258972, - 5.418657590579329 - ], - [ - 2.4082876033549496, - 6.321749717291425 - ], - [ - 1.8062261855468478, - 6.923832101160826 - ], - [ - 1.20412283561609, - 7.826924227872922 - ], - [ - 0.602061417808045, - 8.127954936776945 - ], - [ - 0, - 8.429006611742352 - ], - [ - -0.9030921267121244, - 8.730037320646375 - ], - [ - -1.8062261855469046, - 9.031068029550397 - ], - [ - -1.8062261855469046, - 9.332098738454448 - ], - [ - -2.107256894450927, - 9.332098738454448 - ], - [ - -1.8062261855469046, - 9.332098738454448 - ], - [ - -1.5051954766428821, - 9.031068029550397 - ], - [ - -0.9030921267121244, - 8.730037320646375 - ], - [ - -0.9030921267121244, - 8.730037320646375 - ] - ], - "pressures": [ - 0.05078125, - 0.2919921875, - 0.794921875, - 0.9150390625, - 0.9775390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5439453125, - 0.263671875, - 0.162109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.9030921267121244, - 8.730037320646375 - ] - }, - { - "id": "QfzYAU7_1xFYM48ZsISLt", - "type": "freedraw", - "x": 259.1557288628807, - "y": 188.3244001460802, - "width": 1.5051954766428253, - "height": 8.127954936776945, - "angle": 0, - "strokeColor": "#c92a2a", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1566879235, - "version": 81, - "versionNonce": 712547971, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.5051954766428253, - 8.127954936776945 - ], - [ - -0.9031340588347803, - 7.826924227872922 - ], - [ - -0.9031340588347803, - 7.826924227872922 - ] - ], - "pressures": [ - 0.1328125, - 1, - 0.1826171875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -0.9031340588347803, - 7.826924227872922 - ] - }, - { - "id": "iUdjOynHy84N3KgQcTqTl", - "type": "freedraw", - "x": 209.18385544054155, - "y": 226.55588722661, - "width": 14.449683688006985, - "height": 32.81285045601183, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 584997795, - "version": 107, - "versionNonce": 1602737699, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2041438016775032, - -1.2041438016774748 - ], - [ - -3.612431405032453, - -1.5051745105814973 - ], - [ - -4.515523531744577, - -0.9030921267120675 - ], - [ - -4.816575206709956, - -0.3010307089040225 - ], - [ - -5.719667333422024, - 2.408287603354978 - ], - [ - -7.224841844003549, - 10.536221574070566 - ], - [ - -8.127954936776973, - 17.761084384135444 - ], - [ - -8.730016354585018, - 24.082813135365484 - ], - [ - -8.730016354585018, - 27.695265506459265 - ], - [ - -7.525872552907572, - 29.20044001704079 - ], - [ - -3.9134621139364754, - 30.103532143752858 - ], - [ - -0.9031130927734807, - 29.80248046878748 - ], - [ - 1.8062052194854914, - 27.99627524930196 - ], - [ - 4.214492822840441, - 24.082813135365484 - ], - [ - 5.719667333421967, - 14.75073536297242 - ], - [ - 5.719667333421967, - 8.730016354585018 - ], - [ - 5.418636624517944, - 4.214492822840498 - ], - [ - 3.612431405032396, - 0.9031130927734523 - ], - [ - 1.8062052194854914, - -0.9030921267120675 - ], - [ - -1.5051745105815257, - -2.4082666372935932 - ], - [ - -3.9134621139364754, - -2.709318312258972 - ], - [ - -6.020698042326046, - -0.9030921267120675 - ], - [ - -7.826924227872951, - 2.7093183122590005 - ], - [ - -8.730016354585018, - 10.235190865166544 - ], - [ - -8.730016354585018, - 15.653848455745873 - ], - [ - -7.826924227872951, - 20.169371987490393 - ], - [ - -6.923811135099527, - 23.179741974714744 - ], - [ - -5.719667333422024, - 24.68491648529627 - ], - [ - -5.418636624518001, - 24.985926228138936 - ], - [ - -5.117605915613979, - 24.68491648529627 - ], - [ - -5.117605915613979, - 24.68491648529627 - ] - ], - "pressures": [ - 0.0751953125, - 0.1396484375, - 0.2919921875, - 0.4169921875, - 0.4794921875, - 0.6044921875, - 0.75390625, - 0.92578125, - 1, - 1, - 1, - 0.9599609375, - 0.921875, - 0.9169921875, - 0.921875, - 0.96875, - 1, - 0.9921875, - 0.98828125, - 0.9794921875, - 0.9619140625, - 0.953125, - 0.9365234375, - 0.923828125, - 0.83203125, - 0.67578125, - 0.51171875, - 0.34765625, - 0.193359375, - 0.15625, - 0.05859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -5.117605915613979, - 24.68491648529627 - ] - }, - { - "id": "_jN380WVttmxdRkVfclsq", - "type": "freedraw", - "x": 204.96936261770105, - "y": 228.96417482996497, - "width": 10.235211831227844, - "height": 9.03104706348904, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1532206765, - "version": 81, - "versionNonce": 505565581, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.8062052194855482, - 3.3113797300670456 - ], - [ - -2.107256894450927, - 6.92381113509947 - ], - [ - -2.107256894450927, - 9.03104706348904 - ], - [ - 8.127954936776916, - 5.719688299483352 - ], - [ - 8.127954936776916, - 5.719688299483352 - ] - ], - "pressures": [ - 0.0498046875, - 0.2470703125, - 0.3466796875, - 0.3984375, - 0.6044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.127954936776916, - 5.719688299483352 - ] - }, - { - "id": "TyzDefxwj0PMQ62AEvJV4", - "type": "freedraw", - "x": 213.09731755447797, - "y": 233.1786886188668, - "width": 6.6227804261954475, - "height": 11.439313700782662, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1581084035, - "version": 77, - "versionNonce": 151984579, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.6227804261954475, - 11.439313700782662 - ], - [ - -6.6227804261954475, - 11.439313700782662 - ] - ], - "pressures": [ - 0.6015625, - 0.0166015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -6.6227804261954475, - 11.439313700782662 - ] - }, - { - "id": "NwiPA_Ch57w0XvUnI7KA8", - "type": "freedraw", - "x": 280.22817201102185, - "y": 180.49749688426863, - "width": 9.33207777239312, - "height": 12.944530143486844, - "angle": 0, - "strokeColor": "#fff", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2104677421, - "version": 105, - "versionNonce": 1949100387, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.5051954766428821 - ], - [ - 0.3010307089040225, - -2.7093183122590005 - ], - [ - 0.3010307089040225, - -3.9134621139364754 - ], - [ - 0.602061417808045, - -4.515544497805877 - ], - [ - 0.9030921267120675, - -5.11760591561395 - ], - [ - 1.5051954766428821, - -6.0207190083874025 - ], - [ - 3.6124104389710965, - -7.826924227872922 - ], - [ - 5.418636624517944, - -9.031068029550426 - ], - [ - 6.923832101160826, - -9.63312944735847 - ], - [ - 7.525893518968871, - -9.93418112232385 - ], - [ - 7.826966159995607, - -9.332098738454448 - ], - [ - 8.127954936776973, - -6.923811135099498 - ], - [ - 8.127954936776973, - -4.816575206709928 - ], - [ - 8.127954936776973, - -2.7093183122590005 - ], - [ - 7.224862810064849, - -0.6020823838694298 - ], - [ - 4.816617138832612, - 1.8062052194855198 - ], - [ - 3.6124104389710965, - 2.4082666372935932 - ], - [ - 2.107256894450927, - 2.709318312258972 - ], - [ - 0.602061417808045, - 3.0103490211629946 - ], - [ - -0.602061417808045, - 2.709318312258972 - ], - [ - -1.2041228356161469, - 0.602061417808045 - ], - [ - -1.2041228356161469, - -1.2041438016774748 - ], - [ - -0.3010307089040225, - -2.7093183122590005 - ], - [ - 0.602061417808045, - -4.515544497805877 - ], - [ - 2.107256894450927, - -6.923811135099498 - ], - [ - 2.4082876033549496, - -7.5258935189689 - ], - [ - 2.709318312258972, - -7.826924227872922 - ], - [ - 2.709318312258972, - -7.5258935189689 - ], - [ - 3.0103490211629946, - -6.923811135099498 - ], - [ - 3.0103490211629946, - -6.0207190083874025 - ], - [ - 3.0103490211629946, - -6.0207190083874025 - ] - ], - "pressures": [ - 0.0556640625, - 0.201171875, - 0.255859375, - 0.3603515625, - 0.4521484375, - 0.5341796875, - 0.5771484375, - 0.6015625, - 0.6318359375, - 0.6357421875, - 0.6318359375, - 0.64453125, - 0.6513671875, - 0.6513671875, - 0.646484375, - 0.6533203125, - 0.67578125, - 0.703125, - 0.70703125, - 0.70703125, - 0.70703125, - 0.6884765625, - 0.6845703125, - 0.677734375, - 0.6845703125, - 0.6884765625, - 0.6513671875, - 0.583984375, - 0.2646484375, - 0.201171875, - 0.115234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.0103490211629946, - -6.0207190083874025 - ] - }, - { - "id": "MKJsQOI0IxihJx0NUmKWu", - "type": "freedraw", - "x": -422.42452581071353, - "y": -137.9039483795829, - "width": 64.36801268322881, - "height": 142.09534043819713, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1193116099, - "version": 103, - "versionNonce": 1177535747, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -8.501555333184342, - -8.501428455660971 - ], - [ - -14.57399818829822, - -17.002856911321942 - ], - [ - -15.788469842317852, - -20.646314165888725 - ], - [ - -19.431969389392464, - -34.005671530136055 - ], - [ - -19.431969389392464, - -42.507142278304855 - ], - [ - -19.431969389392464, - -52.22300009547769 - ], - [ - -18.217413150357174, - -63.15345644419352 - ], - [ - -17.00294149633754, - -72.86939884638196 - ], - [ - -13.359526534278586, - -87.44327015715675 - ], - [ - -9.716026987204032, - -95.94469861281772 - ], - [ - -4.858055786109787, - -102.0171414679316 - ], - [ - 1.214387069004033, - -104.44612706847869 - ], - [ - 10.930329471192465, - -105.66059872249838 - ], - [ - 17.002772326306342, - -104.44612706847869 - ], - [ - 24.289771420455452, - -98.37368421336487 - ], - [ - 32.791157583608594, - -86.22875621062934 - ], - [ - 40.078072092742104, - -66.7969136987603 - ], - [ - 44.93604329383635, - -31.57672822209679 - ], - [ - 41.292543746761794, - -10.930371763700293 - ], - [ - 29.14765803653404, - 10.930414056208065 - ], - [ - 14.57374443325142, - 29.14778491405741 - ], - [ - 4.857886616078588, - 36.43474171569875 - ], - [ - 0, - 29.14778491405741 - ], - [ - -3.6435841320901545, - 17.002899203829713 - ], - [ - -6.072527440129477, - -1.2144716540196896 - ], - [ - -6.072527440129477, - -17.002856911321942 - ], - [ - -4.858055786109787, - -29.147742621549696 - ], - [ - -3.6435841320901545, - -30.36221427556933 - ], - [ - -1.2146408240508322, - -30.36221427556933 - ], - [ - 0, - -27.933228675022235 - ], - [ - 0, - -27.933228675022235 - ] - ], - "pressures": [ - 0.0517578125, - 0.4794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6083984375, - 0.2587890625, - 0.158203125, - 0.052734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - -27.933228675022235 - ] - }, - { - "id": "DnD_LQ2Qxtr5qvESN15wA", - "type": "freedraw", - "x": -472.21862489066007, - "y": -249.63694766468717, - "width": 108.08966890806107, - "height": 112.94764010915526, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2021021101, - "version": 95, - "versionNonce": 1230848173, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2145562390353462, - 1.2144716540196328 - ], - [ - -4.857971201094301, - -1.214513946527461 - ], - [ - -12.14497029524341, - -4.857971201094244 - ], - [ - -20.646271873380897, - -9.715942402188432 - ], - [ - -35.220270061679116, - -14.573913603282676 - ], - [ - -48.57962742592656, - -17.00289920382977 - ], - [ - -64.36801268322881, - -18.21732856534163 - ], - [ - -78.94184170149583, - -18.21732856534163 - ], - [ - -97.159254851853, - -18.21732856534163 - ], - [ - -104.44616936098657, - -20.646356458396497 - ], - [ - -106.87511266902584, - -21.860870404923958 - ], - [ - -108.08966890806107, - -21.860870404923958 - ], - [ - -104.44616936098657, - -15.78838525730231 - ], - [ - -98.3737265058727, - -1.214513946527461 - ], - [ - -89.8722557577039, - 20.64631416588867 - ], - [ - -78.94184170149583, - 55.866499642552185 - ], - [ - -74.08395508541719, - 72.8693988463819 - ], - [ - -70.44045553834269, - 85.01432684911742 - ], - [ - -69.22589929930746, - 89.87225575770384 - ], - [ - -68.01151223030342, - 91.0867697042313 - ], - [ - -66.79695599126808, - 88.65774181117638 - ], - [ - -65.5824843372485, - 85.01432684911742 - ], - [ - -65.5824843372485, - 85.01432684911742 - ] - ], - "pressures": [ - 0.0537109375, - 0.7109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.353515625, - 0.125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -65.5824843372485, - 85.01432684911742 - ] - }, - { - "id": "51Ss5-tFJYmpM8U33_W6n", - "type": "freedraw", - "x": -400.1095242897878, - "y": -167.9104396101477, - "width": 59.53480978362628, - "height": 59.53470740367865, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 177305443, - "version": 271, - "versionNonce": 1989553315, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - -38.35948190232551, - -5.274412898924922 - ], - [ - -37.62444506822673, - -4.539427254799949 - ], - [ - -39.82950438054933, - -5.274412898924922 - ], - [ - -43.50448379114807, - -6.7444097821617905 - ], - [ - -48.6493833000229, - -8.214406665398663 - ], - [ - -56.73443014529305, - -9.68437795364864 - ], - [ - -72.90431907593785, - -11.154400431872439 - ], - [ - -81.7242491853853, - -11.154400431872439 - ], - [ - -88.3392735524317, - -11.889386075997407 - ], - [ - -92.74918741718159, - -12.624397315109313 - ], - [ - -96.42416682778035, - -13.359357364247387 - ], - [ - -97.159254851853, - -13.359357364247387 - ], - [ - -96.42416682778035, - -12.624397315109313 - ], - [ - -93.4842242512804, - -7.479421021273692 - ], - [ - -89.80924484068159, - 2.810531566397544 - ], - [ - -86.13426543008293, - 15.305492276417501 - ], - [ - -84.66429414183293, - 27.065467342312537 - ], - [ - -82.45928601948421, - 39.56037686235872 - ], - [ - -82.45928601948421, - 43.97036751206939 - ], - [ - -82.45928601948421, - 46.175350039431265 - ], - [ - -82.45928601948421, - 45.440389990293184 - ], - [ - -82.45928601948421, - 42.50037062883251 - ], - [ - -82.45928601948421, - 41.765384984707495 - ], - [ - -82.45928601948421, - 41.765384984707495 - ] - ], - "pressures": [ - 0.05078125, - 0.326171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7685546875, - 0.2119140625, - 0.1318359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -72.86939884638196, - 77.72737004747614 - ] - }, - { - "id": "BQA_JCIw-nlT0bN0Y92ud", - "type": "freedraw", - "x": -468.87794554805805, - "y": -151.34725998247842, - "width": 38.219765394237385, - "height": 4.409990649710616, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1570437325, - "version": 264, - "versionNonce": 111846157, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - -4.315407484093814, - -2.3974634445151044 - ], - [ - -10.1953950170413, - -1.662452205403205 - ], - [ - -10.930329471192522, - -1.662452205403205 - ], - [ - -9.460358182942512, - -1.662452205403205 - ], - [ - -3.580370649995023, - -3.1324746836269695 - ], - [ - 3.7695881712024795, - -3.8674603277519752 - ], - [ - 14.794577592972507, - -4.602445971876947 - ], - [ - 20.67451393594622, - -5.337431616001918 - ], - [ - 25.084478990669883, - -6.07244285511382 - ], - [ - 26.55445027891989, - -6.07244285511382 - ], - [ - 27.289435923044863, - -6.07244285511382 - ], - [ - 26.55445027891989, - -6.07244285511382 - ], - [ - 25.084478990669883, - -6.07244285511382 - ], - [ - 24.349493346544936, - -6.07244285511382 - ], - [ - 24.349493346544936, - -6.07244285511382 - ] - ], - "pressures": [ - 0.0751953125, - 0.259765625, - 0.5078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3720703125, - 0.125, - 0.0302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 47.36515577190687, - -6.07244285511382 - ] - }, - { - "id": "F3iVTv8ukxCbJ_JhWeM49", - "type": "freedraw", - "x": -449.8352327986005, - "y": -164.62863808499125, - "width": 2.205008122348804, - "height": 50.714802889218134, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 682335181, - "version": 257, - "versionNonce": 151953475, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 5.879987532947525 - ], - [ - 0.7349856441250062, - 19.109908292105587 - ], - [ - 0.7349856441250062, - 31.604869002125618 - ], - [ - 0.7349856441250062, - 41.89482158979685 - ], - [ - 0.7349856441250062, - 49.244780410994345 - ], - [ - 0.7349856441250062, - 49.979791650106286 - ], - [ - 1.4699712882499434, - 50.714802889218134 - ], - [ - 1.4699712882499434, - 49.979791650106286 - ], - [ - 2.205008122348804, - 47.039823478619375 - ], - [ - 2.205008122348804, - 41.89482158979685 - ], - [ - 2.205008122348804, - 41.89482158979685 - ] - ], - "pressures": [ - 0.125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.640625, - 0.107421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.6434995470746117, - 69.22594159181517 - ] - }, - { - "id": "CtBypPu6EOjhOtLk829pq", - "type": "freedraw", - "x": -417.5666391946354, - "y": -154.9067629983969, - "width": 34.00571382264377, - "height": 42.507142278304855, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 421582147, - "version": 95, - "versionNonce": 1289533805, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.286914509133453, - 9.715942402188375 - ], - [ - -8.501301578137486, - 14.57391360328262 - ], - [ - -8.501301578137486, - 20.646398750904268 - ], - [ - -4.857886616078531, - 24.289813712963223 - ], - [ - 2.429027893054922, - 27.933270967530007 - ], - [ - 7.28699909414911, - 27.933270967530007 - ], - [ - 17.0029414963376, - 23.07534205894359 - ], - [ - 19.431884804376864, - 20.646398750904268 - ], - [ - 21.860912697431786, - 13.359399656755159 - ], - [ - 23.075384351451362, - 2.429027893054865 - ], - [ - 20.646356458396554, - -3.643414962058955 - ], - [ - 14.573913603282676, - -9.715857817172832 - ], - [ - 8.5014707481688, - -14.573871310774848 - ], - [ - 2.429027893054922, - -14.573871310774848 - ], - [ - -6.072442855113877, - -7.28691450913351 - ], - [ - -10.930329471192408, - 0 - ], - [ - -10.930329471192408, - 3.643499547074555 - ], - [ - -10.930329471192408, - 6.07244285511382 - ], - [ - -7.286914509133453, - 10.930414056208065 - ], - [ - -2.4288587230237226, - 13.359399656755159 - ], - [ - 2.429027893054922, - 13.359399656755159 - ], - [ - 6.072527440129534, - 10.930414056208065 - ], - [ - 6.072527440129534, - 8.501470748168742 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.1396484375, - 0.7109375, - 0.953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5693359375, - 0.2431640625, - 0.134765625, - 0.0087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.072527440129534, - 8.501470748168742 - ] - }, - { - "id": "aLyAAS09wEj9GWDrSACyD", - "type": "freedraw", - "x": -406.63622513842733, - "y": -164.62262081556975, - "width": 9.715942402188489, - "height": 51.00857073396577, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 313660237, - "version": 81, - "versionNonce": 125280227, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.858013493602016 - ], - [ - 0, - 0 - ], - [ - 0, - 10.930371763700293 - ], - [ - 3.6434995470746117, - 30.3622565680771 - ], - [ - 6.072527440129534, - 38.86364273123024 - ], - [ - 7.28699909414911, - 44.93608558634412 - ], - [ - 8.5014707481688, - 46.15055724036375 - ], - [ - 9.715942402188489, - 46.15055724036375 - ], - [ - 9.715942402188489, - 44.93608558634412 - ], - [ - 9.715942402188489, - 40.07811438524993 - ], - [ - 8.5014707481688, - 36.43469942319098 - ], - [ - 8.5014707481688, - 36.43469942319098 - ] - ], - "pressures": [ - 0.0068359375, - 0.626953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4296875, - 0.1396484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.5014707481688, - 36.43469942319098 - ] - }, - { - "id": "p0p8UP2lF5Py-r2eELYPW", - "type": "freedraw", - "x": -385.9898686800308, - "y": -122.11547853726495, - "width": 8.501386163153143, - "height": 97.15917026683735, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1976843245, - "version": 90, - "versionNonce": 87884749, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.214471654019576, - 1.2144293615118613 - ], - [ - 1.214471654019576, - -3.643499547074555 - ], - [ - 1.214471654019576, - -13.35944194926293 - ], - [ - -1.2144716540196896, - -31.576770514604505 - ], - [ - -3.643414962058955, - -48.57962742592645 - ], - [ - -4.857971201094301, - -69.22598388432294 - ], - [ - -4.857971201094301, - -87.44331244966452 - ], - [ - -4.857971201094301, - -94.73026925130586 - ], - [ - -4.857971201094301, - -95.94474090532549 - ], - [ - -4.857971201094301, - -89.87229805021161 - ], - [ - -4.857971201094301, - -77.72741233998391 - ], - [ - -4.857971201094301, - -59.51004148213451 - ], - [ - -4.857971201094301, - -31.576770514604505 - ], - [ - -6.072442855113877, - -23.07534205894359 - ], - [ - -7.286914509133567, - -21.8608704049239 - ], - [ - -7.286914509133567, - -24.289813712963223 - ], - [ - -4.857971201094301, - -30.3622565680771 - ], - [ - -3.643414962058955, - -35.220270061679116 - ], - [ - -3.643414962058955, - -37.64921336971838 - ], - [ - -3.643414962058955, - -38.86372731624584 - ], - [ - -3.643414962058955, - -37.64921336971838 - ], - [ - -3.643414962058955, - -37.64921336971838 - ] - ], - "pressures": [ - 0.1025390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.0703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -3.643414962058955, - -37.64921336971838 - ] - }, - { - "id": "BsHsyotbaGRlYlFeaA0Gz", - "type": "freedraw", - "x": -406.63622513842733, - "y": -160.9792058535108, - "width": 38.86368502373807, - "height": 59.5099991896268, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 89896205, - "version": 119, - "versionNonce": 1004514179, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558555, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.214387069004033, - -1.2144716540196328 - ], - [ - -7.28682992411791, - 8.501470748168742 - ], - [ - -8.501386163153143, - 14.57391360328262 - ], - [ - -9.715857817172832, - 23.075299766435762 - ], - [ - -9.715857817172832, - 26.718841606018145 - ], - [ - -6.072442855113877, - 30.3622565680771 - ], - [ - -2.4289433080392655, - 34.005713822643884 - ], - [ - 3.6434995470746117, - 35.22022776917129 - ], - [ - 13.359441949262987, - 35.22022776917129 - ], - [ - 20.646356458396554, - 31.576728222096733 - ], - [ - 25.50432765949074, - 25.504285366982913 - ], - [ - 26.71879931351043, - 21.86082811241613 - ], - [ - 26.71879931351043, - 14.57391360328262 - ], - [ - 25.50432765949074, - 6.072442855113877 - ], - [ - 21.86082811241613, - -1.2144716540196328 - ], - [ - 17.0029414963376, - -8.501428455660971 - ], - [ - 12.144970295243297, - -13.359399656755159 - ], - [ - 4.858055786109844, - -15.78834296479448 - ], - [ - 0, - -15.78834296479448 - ], - [ - -3.643414962058955, - -10.930414056208065 - ], - [ - -9.715857817172832, - 1.214513946527461 - ], - [ - -12.14488571022764, - 10.930414056208065 - ], - [ - -12.14488571022764, - 19.431842511869036 - ], - [ - -12.14488571022764, - 25.504285366982913 - ], - [ - -12.14488571022764, - 29.147784914057468 - ], - [ - -8.501386163153143, - 32.79128446113202 - ], - [ - -3.643414962058955, - 35.22022776917129 - ], - [ - -1.214387069004033, - 35.22022776917129 - ], - [ - 6.072527440129534, - 30.3622565680771 - ], - [ - 10.930498641223721, - 23.075299766435762 - ], - [ - 13.359441949262987, - 13.359399656755159 - ], - [ - 14.573913603282676, - 4.857971201094188 - ], - [ - 14.573913603282676, - -3.643414962058955 - ], - [ - 14.573913603282676, - -8.501428455660971 - ], - [ - 14.573913603282676, - -10.930414056208065 - ], - [ - 14.573913603282676, - -14.573871310774848 - ], - [ - 14.573913603282676, - -15.78834296479448 - ], - [ - 14.573913603282676, - -14.573871310774848 - ], - [ - 15.788385257302252, - -7.286956801641338 - ], - [ - 15.788385257302252, - 2.429027893054922 - ], - [ - 15.788385257302252, - 14.57391360328262 - ], - [ - 15.788385257302252, - 25.504285366982913 - ], - [ - 17.0029414963376, - 37.64921336971844 - ], - [ - 19.431884804376864, - 41.292670624285165 - ], - [ - 20.646356458396554, - 43.721656224832316 - ], - [ - 21.86082811241613, - 43.721656224832316 - ], - [ - 23.075384351451476, - 43.721656224832316 - ], - [ - 25.50432765949074, - 42.5071422783048 - ], - [ - 26.71879931351043, - 41.292670624285165 - ], - [ - 26.71879931351043, - 40.078156677757704 - ], - [ - 26.71879931351043, - 40.078156677757704 - ] - ], - "pressures": [ - 0.1162109375, - 0.345703125, - 0.9384765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.734375, - 0.390625, - 0.068359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 26.71879931351043, - 40.078156677757704 - ] - }, - { - "id": "GjejO6SL5nvvZbqGnYhat", - "type": "freedraw", - "x": -428.7288274726427, - "y": -130.2842211706665, - "width": 37.484779750112445, - "height": 35.27984841272434, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1300895149, - "version": 313, - "versionNonce": 870646317, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -3.835921474199131, - -8.15137905085558 - ], - [ - -6.040878406574082, - -8.15137905085558 - ], - [ - -6.775915240672873, - -5.211385284381842 - ], - [ - -7.5109008847978815, - -1.5364058737830886 - ], - [ - -7.5109008847978815, - 2.138573536815653 - ], - [ - -6.775915240672873, - 6.548564186526271 - ], - [ - -5.305943952422928, - 8.75357230887504 - ], - [ - -3.835921474199131, - 10.223543597125014 - ], - [ - -0.8959277077253848, - 11.69354048036193 - ], - [ - -0.16094206360037974, - 11.69354048036193 - ], - [ - 2.779051702873369, - 12.428551719473779 - ], - [ - 4.984059825222171, - 10.223543597125014 - ], - [ - 7.924002401722069, - 7.283549830651275 - ], - [ - 9.394024879945862, - 3.6085704200525304 - ], - [ - 10.863996168195875, - -3.006402757019966 - ], - [ - 10.863996168195875, - -7.41639340673061 - ], - [ - 10.863996168195875, - -10.356361578217422 - ], - [ - 10.129010524070853, - -12.561369700566226 - ], - [ - 7.18901675759712, - -16.971309160303015 - ], - [ - 4.984059825222171, - -19.17634287763872 - ], - [ - 2.779051702873369, - -20.64631416588867 - ], - [ - -0.16094206360037974, - -20.64631416588867 - ], - [ - -2.365898995975331, - -20.64631416588867 - ], - [ - -6.040878406574082, - -17.706345994401826 - ], - [ - -7.5109008847978815, - -14.766352227928076 - ], - [ - -8.980923363021612, - -11.82635846145433 - ], - [ - -9.715857817172832, - -7.41639340673061 - ], - [ - -9.715857817172832, - -2.2713915179080626 - ], - [ - -9.715857817172832, - 0.6685766535787862 - ], - [ - -8.980923363021612, - 2.8735847759275535 - ], - [ - -8.245937718896672, - 5.078592898276335 - ], - [ - -6.775915240672873, - 8.018561069763175 - ], - [ - -3.835921474199131, - 11.69354048036193 - ], - [ - -2.365898995975331, - 13.163537363598802 - ], - [ - -0.8959277077253848, - 13.898523007723725 - ], - [ - 1.3090804146234187, - 13.898523007723725 - ], - [ - 4.249022991123375, - 13.898523007723725 - ], - [ - 7.18901675759712, - 12.428551719473779 - ], - [ - 9.394024879945862, - 9.488532358013117 - ], - [ - 11.598981812320808, - 5.813552947414403 - ], - [ - 13.803989934669623, - 2.138573536815653 - ], - [ - 14.538975578794632, - -1.5364058737830886 - ], - [ - 15.273961222919565, - -3.741388401144935 - ], - [ - 16.00899805701837, - -9.621350339105557 - ], - [ - 16.00899805701837, - -11.82635846145433 - ], - [ - 16.00899805701837, - -13.296329749704272 - ], - [ - 16.00899805701837, - -14.031340988816178 - ], - [ - 15.273961222919565, - -14.031340988816178 - ], - [ - 13.803989934669623, - -11.091372817329322 - ], - [ - 12.334018646419677, - -8.15137905085558 - ], - [ - 10.863996168195875, - -1.5364058737830886 - ], - [ - 10.863996168195875, - 2.138573536815653 - ], - [ - 10.863996168195875, - 5.078592898276335 - ], - [ - 12.334018646419677, - 8.018561069763175 - ], - [ - 14.538975578794632, - 10.958529241249986 - ], - [ - 17.47896934526838, - 13.898523007723725 - ], - [ - 18.948991823492182, - 14.633534246835671 - ], - [ - 20.418963111742134, - 14.633534246835671 - ], - [ - 22.623971234090863, - 14.633534246835671 - ], - [ - 26.29895064468958, - 11.69354048036193 - ], - [ - 27.768921932939612, - 8.75357230887504 - ], - [ - 27.768921932939612, - 4.343556064177506 - ], - [ - 26.29895064468958, - 0.6685766535787862 - ], - [ - 24.828928166465804, - -2.2713915179080626 - ], - [ - 22.623971234090863, - -4.476399640256835 - ], - [ - 22.623971234090863, - -5.211385284381842 - ], - [ - 22.623971234090863, - -4.476399640256835 - ], - [ - 22.623971234090863, - -4.476399640256835 - ] - ], - "pressures": [ - 0, - 0.416015625, - 0.7265625, - 0.9814453125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.669921875, - 0.5224609375, - 0.02734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 43.72165622483226, - 6.072442855113877 - ] - }, - { - "id": "CjnmrYz0dA2YG0Y2opkSM", - "type": "freedraw", - "x": -402.91175481124696, - "y": -80.40717380390305, - "width": 27.929863996539936, - "height": 70.55969682544868, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 649105123, - "version": 284, - "versionNonce": 713376547, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -0.9589720197893198, - -46.03135824576554 - ], - [ - -0.22393518569052717, - -47.501355129002434 - ], - [ - -0.22393518569052717, - -61.46631272225934 - ], - [ - -0.22393518569052717, - -66.61128901609496 - ], - [ - -0.22393518569052717, - -77.63622724789118 - ], - [ - -0.22393518569052717, - -89.39615112381232 - ], - [ - -0.9589720197893198, - -99.68612930647053 - ], - [ - -1.693957663914258, - -108.50608501090481 - ], - [ - -1.693957663914258, - -113.65106130474044 - ], - [ - -2.4289433080392655, - -116.59105507121421 - ], - [ - -2.4289433080392655, - -113.65106130474044 - ], - [ - -1.693957663914258, - -105.56611683941797 - ], - [ - -0.9589720197893198, - -96.01114989587178 - ], - [ - -0.9589720197893198, - -79.10622413112807 - ], - [ - -0.9589720197893198, - -69.55125718758177 - ], - [ - -1.693957663914258, - -62.20129836638431 - ], - [ - -1.693957663914258, - -57.05632207254869 - ], - [ - -1.693957663914258, - -54.85133954518684 - ], - [ - -1.693957663914258, - -58.52631895578556 - ], - [ - 1.246036102559488, - -65.14129213285806 - ], - [ - 6.391037991381979, - -73.22626219316744 - ], - [ - 7.861009279631999, - -75.43124472052929 - ], - [ - 9.330980567881927, - -75.43124472052929 - ], - [ - 10.80100304610573, - -73.96124783729242 - ], - [ - 13.740996812579496, - -71.02122847583175 - ], - [ - 16.680990579053226, - -67.34624906523301 - ], - [ - 21.090955633777, - -61.46631272225934 - ], - [ - 24.030949400250762, - -55.58632518931181 - ], - [ - 25.500920688500674, - -51.91134577871306 - ], - [ - 25.500920688500674, - -50.441348895476175 - ], - [ - 24.030949400250762, - -49.70636325135123 - ], - [ - 19.62093315555317, - -48.2363663681143 - ], - [ - 13.740996812579496, - -46.76636948487743 - ], - [ - 6.391037991381979, - -48.2363663681143 - ], - [ - 4.186029869033229, - -49.70636325135123 - ], - [ - 2.716007390809434, - -51.17633453960115 - ], - [ - 1.981021746684423, - -52.646305827851144 - ], - [ - 2.716007390809434, - -53.38134266194993 - ], - [ - 4.921015513158246, - -54.85133954518684 - ], - [ - 5.656001157283184, - -54.85133954518684 - ], - [ - 5.656001157283184, - -54.11632830607495 - ], - [ - 5.656001157283184, - -54.11632830607495 - ] - ], - "pressures": [ - 0.0810546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9345703125, - 0.2587890625, - 0.193359375, - 0.0712890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.930414056208065, - -13.359399656755215 - ] - }, - { - "id": "mVDqSvHsYR1Ei1jd5AD-C", - "type": "freedraw", - "x": -469.7896815826208, - "y": -97.82570711680944, - "width": 163.95621084312097, - "height": 18.21732856534163, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 332098221, - "version": 79, - "versionNonce": 499004557, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 9.715942402188375, - -4.857971201094301 - ], - [ - 29.147742621549583, - -8.501428455660971 - ], - [ - 69.225983884323, - -13.359399656755272 - ], - [ - 99.58819815989227, - -13.359399656755272 - ], - [ - 125.0925258193829, - -12.144885710227754 - ], - [ - 144.52432603874422, - -7.286956801641395 - ], - [ - 157.88368340299155, - 1.214471654019576 - ], - [ - 162.74165460408574, - 4.857928908586359 - ], - [ - 163.95621084312097, - 4.857928908586359 - ], - [ - 163.95621084312097, - 3.6434572545666697 - ], - [ - 160.31271129604647, - 1.214471654019576 - ], - [ - 159.09823964202678, - 0 - ], - [ - 159.09823964202678, - 0 - ] - ], - "pressures": [ - 0.0830078125, - 0.8828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2548828125, - 0.126953125, - 0.044921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 159.09823964202678, - 0 - ] - }, - { - "id": "JleSE4WcRUVChZmsoW-ic", - "type": "freedraw", - "x": -402.9927255913527, - "y": -84.46630746005428, - "width": 123.87788499533212, - "height": 6.072442855113877, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 587667789, - "version": 79, - "versionNonce": 1272374979, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.857886616078645, - 0 - ], - [ - 1.2145562390352325, - 0 - ], - [ - 24.289771420455395, - 0 - ], - [ - 47.36515577190676, - 0 - ], - [ - 70.44045553834258, - -1.2145139465275179 - ], - [ - 91.08672741172347, - -1.2145139465275179 - ], - [ - 112.9475555241396, - 1.214471654019576 - ], - [ - 117.80552672523379, - 3.6434572545667834 - ], - [ - 119.01999837925348, - 4.857928908586359 - ], - [ - 116.59105507121421, - 4.857928908586359 - ], - [ - 112.9475555241396, - 4.857928908586359 - ], - [ - 110.51861221610034, - 4.857928908586359 - ], - [ - 110.51861221610034, - 4.857928908586359 - ] - ], - "pressures": [ - 0.056640625, - 0.794921875, - 0.9794921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4736328125, - 0.158203125, - 0.0859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 110.51861221610034, - 4.857928908586359 - ] - }, - { - "id": "Bdb4UN47kzyNW1MLpGitL", - "type": "freedraw", - "x": -436.6219141848841, - "y": -104.41221437432739, - "width": 95.54956705551487, - "height": 9.554966943546235, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1901640685, - "version": 286, - "versionNonce": 780278509, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - -0.47950270741558426 - ], - [ - 3.6749794105987523, - 0.2554829367093536 - ], - [ - 10.290003777645028, - 0.9904941758212862 - ], - [ - 19.109933887092474, - 0.9904941758212862 - ], - [ - 33.07486588536246, - 0.2554829367093536 - ], - [ - 49.979791650106215, - -0.47950270741558426 - ], - [ - 66.14973177072493, - -1.2145139465275179 - ], - [ - 85.25961446784363, - 0.9904941758212862 - ], - [ - 92.609624479015, - 3.9304623473081035 - ], - [ - 95.54956705551487, - 6.87045611378184 - ], - [ - 95.54956705551487, - 8.340452997018717 - ], - [ - 92.609624479015, - 8.340452997018717 - ], - [ - 91.87458764491616, - 7.605467352893774 - ], - [ - 91.87458764491616, - 7.605467352893774 - ] - ], - "pressures": [ - 0.0478515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.572265625, - 0.1162109375, - 0.03515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 151.81124054787767, - 13.359399656755159 - ] - }, - { - "id": "UXjRmklMark_l1mjGhRdO", - "type": "freedraw", - "x": -344.6971557632379, - "y": -65.03446494818525, - "width": 23.07529976643582, - "height": 24.289771420455395, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1131709123, - "version": 80, - "versionNonce": 108205667, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -7.28699909414911, - 2.4289433080392655 - ], - [ - -9.715942402188375, - 4.857928908586359 - ], - [ - -12.144970295243297, - 8.501428455660971 - ], - [ - -13.359441949262873, - 13.35935736424733 - ], - [ - -14.573913603282563, - 20.64631416588861 - ], - [ - -14.573913603282563, - 21.8607858199083 - ], - [ - -13.359441949262873, - 23.075299766435705 - ], - [ - -10.930414056208065, - 23.075299766435705 - ], - [ - -6.07252744012942, - 23.075299766435705 - ], - [ - 0, - 23.075299766435705 - ], - [ - 3.643414962058955, - 23.075299766435705 - ], - [ - 6.072442855113877, - 23.075299766435705 - ], - [ - 7.286914509133567, - 23.075299766435705 - ], - [ - 8.501386163153256, - 24.289771420455395 - ], - [ - 8.501386163153256, - 24.289771420455395 - ] - ], - "pressures": [ - 0.0078125, - 0.5693359375, - 0.6337890625, - 0.8515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.92578125, - 0.4873046875, - 0.2421875, - 0.037109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.501386163153256, - 24.289771420455395 - ] - }, - { - "id": "04MVYRcDEkCtGu11FFdo9", - "type": "freedraw", - "x": -333.7668262920454, - "y": -41.95916518174954, - "width": 38.86368502373807, - "height": 53.43751404200509, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1022149101, - "version": 90, - "versionNonce": 515519821, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.2145562390352325, - -6.0724428551137635 - ], - [ - 2.429027893054922, - -7.286956801641281 - ], - [ - 6.07252744012942, - -8.501428455660857 - ], - [ - 9.715942402188375, - -8.501428455660857 - ], - [ - 13.359441949262987, - -8.501428455660857 - ], - [ - 17.002941496337485, - -4.857971201094188 - ], - [ - 18.217413150357174, - 2.4289856005472075 - ], - [ - 19.431884804376864, - 12.144885710227754 - ], - [ - 19.431884804376864, - 25.504285366982913 - ], - [ - 15.788385257302252, - 31.57672822209679 - ], - [ - 10.930414056208065, - 36.43469942319098 - ], - [ - 4.857971201094188, - 38.86364273123036 - ], - [ - -2.4289433080392655, - 41.29267062428528 - ], - [ - -7.286914509133567, - 43.721613932324544 - ], - [ - -8.501386163153143, - 44.936085586344234 - ], - [ - -4.857886616078645, - 44.936085586344234 - ], - [ - 2.429027893054922, - 42.507142278304855 - ], - [ - 10.930414056208065, - 41.29267062428528 - ], - [ - 18.217413150357174, - 40.07819897026559 - ], - [ - 23.075384351451362, - 38.86364273123036 - ], - [ - 27.93335555254555, - 38.86364273123036 - ], - [ - 29.14782720656524, - 38.86364273123036 - ], - [ - 30.36229886058493, - 35.2202277691714 - ], - [ - 30.36229886058493, - 31.57672822209679 - ], - [ - 30.36229886058493, - 30.3622565680771 - ], - [ - 30.36229886058493, - 30.3622565680771 - ] - ], - "pressures": [ - 0.060546875, - 0.8896484375, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.294921875, - 0.1357421875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 30.36229886058493, - 30.3622565680771 - ] - }, - { - "id": "yJuUmgMumwOaoFq3LAM3s", - "type": "freedraw", - "x": -297.3320845763466, - "y": -41.95916518174954, - "width": 41.29262833177734, - "height": 49.794099079946136, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 334425901, - "version": 87, - "versionNonce": 1764250115, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -1.2145139465274042 - ], - [ - -1.2144716540196896, - -2.428985600547094 - ], - [ - 1.214471654019576, - -3.643499547074498 - ], - [ - 4.857971201094188, - -4.857971201094188 - ], - [ - 9.715942402188375, - -6.0724428551137635 - ], - [ - 14.573913603282563, - -7.286956801641281 - ], - [ - 20.64635645839644, - -7.286956801641281 - ], - [ - 27.933270967530007, - -3.643499547074498 - ], - [ - 29.147742621549583, - 1.2144716540196896 - ], - [ - 27.933270967530007, - 7.286914509133567 - ], - [ - 23.075299766435705, - 14.573871310774848 - ], - [ - 14.573913603282563, - 21.860828112416243 - ], - [ - 2.4289433080392655, - 34.005671530136055 - ], - [ - -3.6434995470746117, - 38.86364273123036 - ], - [ - -6.072442855113877, - 41.29267062428528 - ], - [ - -3.6434995470746117, - 42.507142278304855 - ], - [ - 2.4289433080392655, - 42.507142278304855 - ], - [ - 9.715942402188375, - 41.29267062428528 - ], - [ - 17.002856911321942, - 37.64917107721067 - ], - [ - 24.289771420455395, - 35.2202277691714 - ], - [ - 31.576770514604505, - 32.79119987611648 - ], - [ - 34.00571382264377, - 32.79119987611648 - ], - [ - 35.22018547666346, - 32.79119987611648 - ], - [ - 35.22018547666346, - 32.79119987611648 - ] - ], - "pressures": [ - 0.1357421875, - 0.85546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5849609375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.22018547666346, - 32.79119987611648 - ] - }, - { - "id": "1R1txsJneJWH-ap6o8Q62", - "type": "freedraw", - "x": -381.1711501402456, - "y": -88.37431260141693, - "width": 6.614973177072497, - "height": 7.349958821197431, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1422030275, - "version": 296, - "versionNonce": 1505756077, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -4.3154408791355685, - -0.9589887173102227 - ], - [ - -4.3154408791355685, - -2.428985600547094 - ], - [ - -5.785463357359369, - -2.428985600547094 - ], - [ - -7.255434645609315, - -2.428985600547094 - ], - [ - -7.990420289734323, - -2.428985600547094 - ], - [ - -8.725457123833118, - -2.428985600547094 - ], - [ - -9.46044276795812, - -0.9589887173102227 - ], - [ - -10.195428412083057, - 1.980979454176592 - ], - [ - -10.930414056208065, - 2.7159906932885276 - ], - [ - -10.930414056208065, - 3.4509763374134654 - ], - [ - -10.195428412083057, - 3.4509763374134654 - ], - [ - -8.725457123833118, - 4.185987576525394 - ], - [ - -7.255434645609315, - 4.920973220650338 - ], - [ - -5.785463357359369, - 4.920973220650338 - ], - [ - -5.050426523260574, - 4.920973220650338 - ], - [ - -5.050426523260574, - 4.185987576525394 - ], - [ - -6.520449001484307, - 2.7159906932885276 - ], - [ - -7.255434645609315, - 2.7159906932885276 - ], - [ - -7.255434645609315, - 4.185987576525394 - ], - [ - -7.255434645609315, - 4.920973220650338 - ], - [ - -6.520449001484307, - 4.920973220650338 - ], - [ - -5.785463357359369, - 4.920973220650338 - ], - [ - -5.785463357359369, - 4.185987576525394 - ], - [ - -4.3154408791355685, - -0.9589887173102227 - ] - ], - "pressures": [ - 0.005859375, - 0.1455078125, - 0.6181640625, - 0.6865234375, - 0.783203125, - 0.8388671875, - 0.9599609375, - 0.9619140625, - 0.966796875, - 0.96875, - 0.966796875, - 0.9560546875, - 0.9619140625, - 0.966796875, - 0.966796875, - 1, - 1, - 1, - 1, - 1, - 0.8515625, - 0.11328125, - 0.0400390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -2.429027893054922, - 8.501428455660971 - ] - }, - { - "id": "XlnlVWFHyJxOxfHypre8i", - "type": "freedraw", - "x": -342.2682124551985, - "y": -56.533036492524275, - "width": 36.43474171569869, - "height": 38.86368502373807, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 440215779, - "version": 89, - "versionNonce": 620042659, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.4289433080392655, - -4.857971201094301 - ], - [ - 3.643499547074498, - -6.072485147621705 - ], - [ - 6.072442855113877, - -7.286956801641395 - ], - [ - 8.501386163153143, - -7.286956801641395 - ], - [ - 12.144885710227754, - -7.286956801641395 - ], - [ - 18.217328565341518, - -2.428985600547094 - ], - [ - 20.64635645839644, - 2.4289433080392655 - ], - [ - 21.86082811241613, - 7.286914509133453 - ], - [ - 21.86082811241613, - 12.14488571022764 - ], - [ - 20.64635645839644, - 17.002856911321942 - ], - [ - 14.573913603282563, - 24.289771420455395 - ], - [ - 10.930414056208065, - 26.71875702100249 - ], - [ - 6.072442855113877, - 27.933270967530007 - ], - [ - 2.4289433080392655, - 29.147742621549583 - ], - [ - 0, - 30.362214275569272 - ], - [ - -2.428943308039379, - 30.362214275569272 - ], - [ - -3.6434995470746117, - 31.576728222096676 - ], - [ - -4.857971201094188, - 31.576728222096676 - ], - [ - -2.428943308039379, - 31.576728222096676 - ], - [ - 2.4289433080392655, - 30.362214275569272 - ], - [ - 8.501386163153143, - 30.362214275569272 - ], - [ - 13.35935736424733, - 29.147742621549583 - ], - [ - 21.86082811241613, - 29.147742621549583 - ], - [ - 26.718799313510317, - 29.147742621549583 - ], - [ - 30.362214275569272, - 29.147742621549583 - ], - [ - 31.576770514604505, - 29.147742621549583 - ], - [ - 31.576770514604505, - 27.933270967530007 - ], - [ - 31.576770514604505, - 26.71875702100249 - ], - [ - 31.576770514604505, - 26.71875702100249 - ] - ], - "pressures": [ - 0.0556640625, - 0.50390625, - 0.8701171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6533203125, - 0.1728515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 31.576770514604505, - 26.71875702100249 - ] - }, - { - "id": "9pJOCW0_cjvZTtdkZavlt", - "type": "freedraw", - "x": -309.4769702865743, - "y": -51.675107583937915, - "width": 19.431800219361207, - "height": 34.005713822643884, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1869620845, - "version": 77, - "versionNonce": 599590413, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -1.2144716540196896 - ], - [ - 1.2144716540196896, - -2.428985600547094 - ], - [ - 4.857971201094188, - -2.428985600547094 - ], - [ - 8.501386163153143, - -3.6434572545667834 - ], - [ - 9.715942402188375, - -3.6434572545667834 - ], - [ - 13.35935736424733, - -2.428985600547094 - ], - [ - 15.788385257302252, - 0 - ], - [ - 17.002856911321942, - 8.501428455660971 - ], - [ - 18.217328565341518, - 17.002856911321942 - ], - [ - 18.217328565341518, - 23.075342058943647 - ], - [ - 17.002856911321942, - 26.718799313510317 - ], - [ - 13.35935736424733, - 29.14778491405741 - ], - [ - 8.501386163153143, - 30.3622565680771 - ], - [ - 3.643499547074498, - 30.3622565680771 - ], - [ - 0, - 29.14778491405741 - ], - [ - -1.2144716540196896, - 27.933270967530007 - ], - [ - -1.2144716540196896, - 25.504285366982913 - ], - [ - -1.2144716540196896, - 25.504285366982913 - ] - ], - "pressures": [ - 0.1357421875, - 0.9599609375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4453125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.2144716540196896, - 25.504285366982913 - ] - }, - { - "id": "CH2o3YtToajh_AHwDCLc7", - "type": "freedraw", - "x": -333.7668262920454, - "y": -65.03446494818525, - "width": 59.51004148213451, - "height": 51.00857073396571, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 13871331, - "version": 88, - "versionNonce": 1191701827, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.6434995470746117, - -4.857971201094188 - ], - [ - 7.28699909414911, - -3.6434995470746117 - ], - [ - 13.359441949262987, - 7.286914509133453 - ], - [ - 15.788385257302252, - 18.217328565341518 - ], - [ - 15.788385257302252, - 29.147742621549583 - ], - [ - 12.144970295243297, - 38.86364273123024 - ], - [ - 4.857971201094188, - 46.150599532871524 - ], - [ - 0, - 46.150599532871524 - ], - [ - -6.072442855113877, - 46.150599532871524 - ], - [ - -12.144885710227754, - 40.07815667775765 - ], - [ - -17.002856911321942, - 34.00571382264377 - ], - [ - -19.431800219361207, - 26.71875702100249 - ], - [ - -19.431800219361207, - 24.289771420455395 - ], - [ - -15.78830067228671, - 24.289771420455395 - ], - [ - -10.930329471192522, - 24.289771420455395 - ], - [ - -7.286914509133567, - 24.289771420455395 - ], - [ - -3.643414962058955, - 27.933270967530007 - ], - [ - 2.429027893054922, - 34.00571382264377 - ], - [ - 10.930414056208065, - 40.07815667775765 - ], - [ - 17.002941496337485, - 42.50714227830474 - ], - [ - 23.075384351451362, - 43.72161393232443 - ], - [ - 29.14782720656524, - 43.72161393232443 - ], - [ - 34.00579840765943, - 42.50714227830474 - ], - [ - 38.86368502373807, - 37.64917107721055 - ], - [ - 40.078241262773304, - 34.00571382264377 - ], - [ - 40.078241262773304, - 30.362214275569272 - ], - [ - 38.86368502373807, - 27.933270967530007 - ], - [ - 35.220270061679116, - 25.504285366982913 - ], - [ - 35.220270061679116, - 25.504285366982913 - ] - ], - "pressures": [ - 0.1416015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5341796875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.220270061679116, - 25.504285366982913 - ] - }, - { - "id": "lJQVZkFBvdfD2TaeTYGAf", - "type": "freedraw", - "x": -309.4769702865743, - "y": -55.3185648385047, - "width": 60.7245131361542, - "height": 47.36511347939904, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1420928621, - "version": 93, - "versionNonce": 2141895789, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -4.857971201094188 - ], - [ - 0, - -6.072442855113877 - ], - [ - 1.2144716540196896, - -7.286956801641281 - ], - [ - 6.072442855113877, - -10.930414056208065 - ], - [ - 9.715942402188375, - -12.14488571022764 - ], - [ - 13.35935736424733, - -12.14488571022764 - ], - [ - 18.217328565341518, - -12.14488571022764 - ], - [ - 25.504243074475085, - -6.072442855113877 - ], - [ - 29.147742621549696, - 1.2144716540196896 - ], - [ - 31.576770514604505, - 8.501428455660971 - ], - [ - 32.791242168624194, - 15.788385257302366 - ], - [ - 31.576770514604505, - 23.07529976643582 - ], - [ - 26.718799313510317, - 27.933270967530007 - ], - [ - 14.57382901826702, - 34.005713822643884 - ], - [ - 6.072442855113877, - 35.2202277691714 - ], - [ - 0, - 34.005713822643884 - ], - [ - -6.072442855113877, - 27.933270967530007 - ], - [ - -8.5014707481688, - 25.504285366982913 - ], - [ - -8.5014707481688, - 23.07529976643582 - ], - [ - -7.286914509133567, - 20.646314165888725 - ], - [ - -3.6434995470746117, - 19.431842511869036 - ], - [ - 2.4289433080392655, - 17.002856911321942 - ], - [ - 14.57382901826702, - 17.002856911321942 - ], - [ - 24.289771420455395, - 17.002856911321942 - ], - [ - 32.791242168624194, - 19.431842511869036 - ], - [ - 41.29262833177734, - 21.86082811241613 - ], - [ - 46.150599532871524, - 23.07529976643582 - ], - [ - 48.57962742592645, - 23.07529976643582 - ], - [ - 49.794099079946136, - 21.86082811241613 - ], - [ - 51.008570733965826, - 20.646314165888725 - ], - [ - 52.2230423879854, - 17.002856911321942 - ], - [ - 52.2230423879854, - 14.573871310774848 - ], - [ - 51.008570733965826, - 14.573871310774848 - ], - [ - 49.794099079946136, - 14.573871310774848 - ], - [ - 49.794099079946136, - 14.573871310774848 - ] - ], - "pressures": [ - 0.1923828125, - 0.8984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4296875, - 0.111328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.794099079946136, - 14.573871310774848 - ] - }, - { - "id": "o9NULYJfhhceeQ0mAjG7R", - "type": "freedraw", - "x": -336.19576960008465, - "y": -54.10409318448501, - "width": 48.579542840910904, - "height": 59.50999918962668, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1621421101, - "version": 96, - "versionNonce": 851397859, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.2145139465274042 - ], - [ - 0, - -2.4289433080392655 - ], - [ - 0, - -7.286914509133567 - ], - [ - 2.4289433080392655, - -12.144885710227754 - ], - [ - 8.501470748168686, - -20.646314165888725 - ], - [ - 10.930414056208065, - -25.504285366982913 - ], - [ - 13.35935736424733, - -27.933270967530007 - ], - [ - 14.573913603282563, - -29.147742621549696 - ], - [ - 17.002856911321942, - -30.362214275569272 - ], - [ - 19.43188480437675, - -30.362214275569272 - ], - [ - 23.075299766435705, - -30.362214275569272 - ], - [ - 25.504327659490627, - -30.362214275569272 - ], - [ - 29.147742621549583, - -27.933270967530007 - ], - [ - 34.00571382264377, - -23.07529976643582 - ], - [ - 36.43474171569869, - -17.002856911321942 - ], - [ - 37.64921336971838, - -9.71590010968066 - ], - [ - 37.64921336971838, - 0 - ], - [ - 32.791242168624194, - 17.00289920382977 - ], - [ - 29.147742621549583, - 25.50432765949074 - ], - [ - 25.504327659490627, - 27.933270967530007 - ], - [ - 23.075299766435705, - 29.14778491405741 - ], - [ - 18.217328565341518, - 29.14778491405741 - ], - [ - 9.715942402188375, - 29.14778491405741 - ], - [ - 3.643499547074498, - 27.933270967530007 - ], - [ - 0, - 26.718799313510317 - ], - [ - -2.428943308039379, - 26.718799313510317 - ], - [ - -6.072442855113877, - 25.50432765949074 - ], - [ - -7.286914509133567, - 24.289813712963223 - ], - [ - -8.501386163153256, - 24.289813712963223 - ], - [ - -4.857971201094301, - 23.075342058943534 - ], - [ - 1.214471654019576, - 21.86082811241613 - ], - [ - 9.715942402188375, - 20.64635645839644 - ], - [ - 23.075299766435705, - 18.217370857849346 - ], - [ - 29.147742621549583, - 17.00289920382977 - ], - [ - 34.00571382264377, - 17.00289920382977 - ], - [ - 36.43474171569869, - 17.00289920382977 - ], - [ - 40.07815667775765, - 17.00289920382977 - ], - [ - 40.07815667775765, - 17.00289920382977 - ] - ], - "pressures": [ - 0.0302734375, - 0.3359375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 40.07815667775765, - 17.00289920382977 - ] - }, - { - "id": "veUzss9IFDx3SStOi-_af", - "type": "freedraw", - "x": -327.69429885191596, - "y": -37.10123627316318, - "width": 15.788385257302252, - "height": 6.072442855113877, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2005307597, - "version": 65, - "versionNonce": 1431480013, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -14.573913603282563, - 0 - ], - [ - -15.788385257302252, - -1.214471654019576 - ], - [ - -14.573913603282563, - -2.428985600547094 - ], - [ - -8.501470748168686, - -6.072442855113877 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.07421875, - 1, - 1, - 1, - 0.203125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -8.501470748168686, - -6.072442855113877 - ] - }, - { - "id": "qWcwPAaUPoyQm6rCCG1qZ", - "type": "freedraw", - "x": -376.4854276150784, - "y": -71.86266782538632, - "width": 24.254884585941266, - "height": 29.399860879776792, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1565868621, - "version": 272, - "versionNonce": 1537849475, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -2.3974634445151257, - -8.15137905085556 - ], - [ - -3.132449088640065, - -8.8863646949805 - ], - [ - -3.132449088640065, - -10.356361578217369 - ], - [ - -3.132449088640065, - -11.826358461454312 - ], - [ - -2.3974634445151257, - -12.561369700566177 - ], - [ - -0.9274409662913247, - -14.03134098881612 - ], - [ - 1.2775159660836273, - -16.236349111164927 - ], - [ - 4.217509732557372, - -19.176317282651734 - ], - [ - 5.687532210781175, - -20.64631416588861 - ], - [ - 7.157503499031188, - -20.64631416588861 - ], - [ - 10.097497265504936, - -20.64631416588861 - ], - [ - 11.567468553754887, - -19.176317282651734 - ], - [ - 13.037491031978677, - -17.706345994401808 - ], - [ - 13.772476676103679, - -15.501337872052996 - ], - [ - 14.50746232022863, - -11.826358461454312 - ], - [ - 14.50746232022863, - -8.15137905085556 - ], - [ - 13.772476676103679, - -3.0064027570199405 - ], - [ - 11.567468553754887, - 0.668576653578815 - ], - [ - 8.627525977254907, - 3.6085704200525575 - ], - [ - 3.482524088432437, - 7.2835498306513085 - ], - [ - 1.2775159660836273, - 8.018561069763253 - ], - [ - -0.9274409662913247, - 8.753546713888182 - ], - [ - -3.132449088640065, - 8.753546713888182 - ], - [ - -4.602420376890078, - 8.753546713888182 - ], - [ - -6.072442855113877, - 8.753546713888182 - ], - [ - -3.132449088640065, - 8.753546713888182 - ], - [ - 1.2775159660836273, - 8.018561069763253 - ], - [ - 5.687532210781175, - 7.2835498306513085 - ], - [ - 9.362511621379928, - 7.2835498306513085 - ], - [ - 13.037491031978677, - 6.54856418652631 - ], - [ - 15.97748479845243, - 7.2835498306513085 - ], - [ - 17.44745608670238, - 8.018561069763253 - ], - [ - 18.182441730827385, - 8.018561069763253 - ], - [ - 18.182441730827385, - 8.753546713888182 - ], - [ - 18.182441730827385, - 8.753546713888182 - ] - ], - "pressures": [ - 0.046875, - 0.2275390625, - 0.638671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2431640625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 34.005713822643884, - 27.933270967530007 - ] - }, - { - "id": "zyMyl47o2R4icKC6pZ8oy", - "type": "freedraw", - "x": -354.036604403365, - "y": -80.98405838605007, - "width": 35.279822817737426, - "height": 28.6648752356518, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1672124685, - "version": 306, - "versionNonce": 1464747309, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -3.835954869240889, - -3.835938171719989 - ], - [ - -5.305977347464684, - -7.51091758231874 - ], - [ - -5.305977347464684, - -8.245903226443678 - ], - [ - -5.305977347464684, - -9.715900109680547 - ], - [ - -3.1009692251158825, - -9.715900109680547 - ], - [ - -0.8960122927409313, - -9.715900109680547 - ], - [ - 1.3089958296078035, - -9.715900109680547 - ], - [ - 2.779018307831605, - -8.980914465555607 - ], - [ - 4.248989596081616, - -8.980914465555607 - ], - [ - 7.188983362555354, - -6.77593193819373 - ], - [ - 9.393991484904097, - -3.1009269326080533 - ], - [ - 10.863962773154109, - 0.5740524779906279 - ], - [ - 10.863962773154109, - 4.249031888589379 - ], - [ - 10.863962773154109, - 7.1890256550631255 - ], - [ - 7.923969006680352, - 10.864005065661862 - ], - [ - 4.983975240206554, - 13.06898759302375 - ], - [ - 1.3089958296078035, - 14.538984476260623 - ], - [ - -2.365983580990876, - 15.273970120385622 - ], - [ - -7.51093427983964, - 15.273970120385622 - ], - [ - -8.980956758063373, - 15.273970120385622 - ], - [ - -9.715942402188375, - 15.273970120385622 - ], - [ - -8.24597111393843, - 14.538984476260623 - ], - [ - -3.1009692251158825, - 14.538984476260623 - ], - [ - 3.5140039519566084, - 14.538984476260623 - ], - [ - 12.33393406140405, - 15.273970120385622 - ], - [ - 18.213921594351543, - 17.47895264774749 - ], - [ - 23.35892348317408, - 18.21398948184629 - ], - [ - 25.56388041554905, - 18.948975125971252 - ], - [ - 25.56388041554905, - 18.21398948184629 - ], - [ - 24.093909127299106, - 16.008981359497504 - ], - [ - 22.623886649075303, - 13.80399883213569 - ], - [ - 20.418929716700347, - 12.334001948898738 - ], - [ - 18.213921594351543, - 12.334001948898738 - ], - [ - 16.743950306101585, - 13.80399883213569 - ], - [ - 16.0089134720028, - 14.538984476260623 - ], - [ - 16.0089134720028, - 14.538984476260623 - ] - ], - "pressures": [ - 0.03515625, - 0.1982421875, - 0.2177734375, - 0.4443359375, - 0.9345703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5263671875, - 0.212890625, - 0.1455078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 32.79115758360865, - 30.3622565680771 - ] - }, - { - "id": "uu3f5vOIu2deFKsDiy6sr", - "type": "freedraw", - "x": -317.9784410347431, - "y": 6.6204199516691915, - "width": 87.44331244966452, - "height": 97.15921255934518, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1716694915, - "version": 81, - "versionNonce": 1065725987, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4289433080392655, - 1.2144716540196896 - ], - [ - 3.6434995470746117, - 2.429027893054922 - ], - [ - 14.573913603282676, - 3.6434995470746117 - ], - [ - 29.14782720656524, - 3.6434995470746117 - ], - [ - 53.43759862702075, - 3.6434995470746117 - ], - [ - 68.01151223030331, - 1.2144716540196896 - ], - [ - 77.72737004747614, - -1.2144716540196896 - ], - [ - 83.79981290259002, - -2.4289433080392655 - ], - [ - 85.01436914162525, - -2.4289433080392655 - ], - [ - 83.79981290259002, - -6.072442855113877 - ], - [ - 82.58534124857033, - -13.35935736424733 - ], - [ - 82.58534124857033, - -25.504285366982913 - ], - [ - 82.58534124857033, - -40.07815667775776 - ], - [ - 81.37086959455075, - -61.93898479017389 - ], - [ - 80.15639794053106, - -75.29838444692905 - ], - [ - 78.94184170149583, - -85.0142845566096 - ], - [ - 77.72737004747614, - -92.30124135825099 - ], - [ - 77.72737004747614, - -93.51571301227057 - ], - [ - 76.51289839345645, - -93.51571301227057 - ], - [ - 74.08395508541719, - -89.8722557577039 - ], - [ - 71.65492719236227, - -82.5852989560625 - ], - [ - 70.44045553834269, - -80.15635564802324 - ], - [ - 69.225983884323, - -77.72737004747614 - ], - [ - 69.225983884323, - -77.72737004747614 - ] - ], - "pressures": [ - 0.09375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.703125, - 0.30859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 69.225983884323, - -77.72737004747614 - ] - }, - { - "id": "5qJ7XYedSdMlHhxWHNe_R", - "type": "freedraw", - "x": -281.4469470337149, - "y": -100.826406542845, - "width": 58.79977294952749, - "height": 57.32975047130368, - "angle": 6.144999303622709, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "groupIds": [], - "strokeSharpness": "round", - "seed": 293377539, - "version": 254, - "versionNonce": 688330637, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - -34.04404102318993, - -0.4794860098946845 - ], - [ - -33.30905537906493, - -1.2144716540196896 - ], - [ - -31.839084090814993, - 6.870498406289732 - ], - [ - -30.369061612591192, - 15.690454110724026 - ], - [ - -29.634075968466245, - 26.71539234252027 - ], - [ - -28.89909032434125, - 36.27035928606652 - ], - [ - -28.164053490242456, - 44.35530375138899 - ], - [ - -27.429067846117448, - 51.7053137625603 - ], - [ - -27.429067846117448, - 53.17528505081024 - ], - [ - -32.57406973493999, - 52.440299406685234 - ], - [ - -37.719020433788685, - 50.9702769284615 - ], - [ - -43.59900796673618, - 48.765319996086575 - ], - [ - -51.68395243205868, - 47.29529751786273 - ], - [ - -60.50393373147992, - 47.29529751786273 - ], - [ - -73.73388008562489, - 51.7053137625603 - ], - [ - -80.34885326269738, - 53.91027069493522 - ], - [ - -84.02383267329614, - 54.64525633906018 - ], - [ - -85.49380396154616, - 55.38029317315906 - ], - [ - -86.22884079564494, - 55.38029317315906 - ], - [ - -84.75881831742115, - 55.38029317315906 - ], - [ - -81.81882455094737, - 55.38029317315906 - ], - [ - -81.08383890682235, - 56.11527881728399 - ], - [ - -81.08383890682235, - 56.11527881728399 - ] - ], - "pressures": [ - 0.134765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.380859375, - 0.16796875, - 0.1240234375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -77.72737004747614, - 93.5157553047784 - ] - }, - { - "id": "xCQVkToYnW49F5XfemaJB", - "type": "freedraw", - "x": -587.5952083078547, - "y": -143.97634894218885, - "width": 9.715942402188375, - "height": 2.4289856005471506, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1316891533, - "version": 51, - "versionNonce": 541176771, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.072442855113877, - 1.214513946527461 - ], - [ - -9.715942402188375, - -1.2144716540196896 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.1318359375, - 0.212890625, - 0.59375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -9.715942402188375, - -1.2144716540196896 - ] - }, - { - "id": "7b4c-9MZIja36tdF5wiUJ", - "type": "freedraw", - "x": -596.0965944710078, - "y": -145.19082059620854, - "width": 63.15345644419358, - "height": 3.643499547074555, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1498372781, - "version": 48, - "versionNonce": 1152818669, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 63.15345644419358, - -3.643499547074555 - ], - [ - 63.15345644419358, - -3.643499547074555 - ] - ], - "pressures": [ - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 63.15345644419358, - -3.643499547074555 - ] - }, - { - "id": "3wxtRJK6wXDXobHSGxuR6", - "type": "freedraw", - "x": -534.157609680834, - "y": -148.8343201432831, - "width": 104.44625394600212, - "height": 32.791199876116366, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 259967971, - "version": 62, - "versionNonce": 2113684323, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.429027893054922, - -1.2144716540196328 - ], - [ - -1.2144716540196896, - -1.2144716540196328 - ], - [ - 4.857971201094188, - -1.2144716540196328 - ], - [ - 13.35935736424733, - -2.4289433080392655 - ], - [ - 26.718714728494774, - -7.28691450913351 - ], - [ - 51.008570733965826, - -14.573871310774791 - ], - [ - 70.44037095332703, - -18.217328565341575 - ], - [ - 87.44322786464897, - -23.075299766435762 - ], - [ - 98.37364192085704, - -24.289771420455395 - ], - [ - 102.0172260529472, - -25.504285366982856 - ], - [ - 100.80266981391196, - -25.504285366982856 - ], - [ - 95.94478319783332, - -27.93322867502218 - ], - [ - 89.87234034271944, - -31.576728222096733 - ], - [ - 86.22875621062929, - -32.791199876116366 - ], - [ - 85.0142845566096, - -32.791199876116366 - ], - [ - 85.0142845566096, - -32.791199876116366 - ] - ], - "pressures": [ - 0.1171875, - 0.2001953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.376953125, - 0.1982421875, - 0.1484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 85.0142845566096, - -32.791199876116366 - ] - }, - { - "id": "wPK6LiYcrKyYwowm6L9pd", - "type": "freedraw", - "x": -520.7982523165866, - "y": -154.9067629983969, - "width": 30.36229886058493, - "height": 51.00857073396577, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1610900963, - "version": 74, - "versionNonce": 418367149, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4289433080392655, - -4.857928908586416 - ], - [ - -4.857971201094188, - -4.857928908586416 - ], - [ - -8.501386163153143, - -1.2144716540196896 - ], - [ - -12.14488571022764, - 4.857971201094188 - ], - [ - -14.57382901826702, - 12.144928002735526 - ], - [ - -15.788385257302252, - 19.431842511869036 - ], - [ - -14.57382901826702, - 29.14778491405741 - ], - [ - -9.715942402188375, - 34.00571382264383 - ], - [ - -3.643499547074498, - 35.22022776917129 - ], - [ - 6.072442855113877, - 32.791284461131966 - ], - [ - 10.930414056208065, - 26.718841606018145 - ], - [ - 14.573913603282676, - 19.431842511869036 - ], - [ - 14.573913603282676, - 10.930414056208065 - ], - [ - 14.573913603282676, - 2.429027893054865 - ], - [ - 13.359357364247444, - -3.643414962058955 - ], - [ - 8.501386163153143, - -10.930414056208065 - ], - [ - 4.857971201094188, - -14.573871310774848 - ], - [ - 1.2144716540196896, - -15.78834296479448 - ], - [ - -3.643499547074498, - -15.78834296479448 - ], - [ - -7.286914509133453, - -12.144885710227754 - ], - [ - -9.715942402188375, - -6.072442855113877 - ], - [ - -10.930414056208065, - 0 - ], - [ - -10.930414056208065, - 7.286956801641281 - ], - [ - -10.930414056208065, - 10.930414056208065 - ], - [ - -9.715942402188375, - 14.57391360328262 - ], - [ - -9.715942402188375, - 15.788385257302252 - ], - [ - -8.501386163153143, - 17.002856911321885 - ], - [ - -7.286914509133453, - 15.788385257302252 - ], - [ - -6.072442855113877, - 14.57391360328262 - ], - [ - -4.857971201094188, - 13.359399656755159 - ], - [ - -4.857971201094188, - 13.359399656755159 - ] - ], - "pressures": [ - 0.0361328125, - 0.2890625, - 0.482421875, - 0.67578125, - 0.7705078125, - 0.8154296875, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -4.857971201094188, - 13.359399656755159 - ] - }, - { - "id": "zIIcsFb0Q6kohHGc0qnry", - "type": "freedraw", - "x": -525.6562235176808, - "y": -156.1212346524166, - "width": 24.289771420455395, - "height": 42.507184570812626, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 615086531, - "version": 77, - "versionNonce": 64423587, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4289433080392655, - 1.2144716540196896 - ], - [ - -4.857971201094188, - 6.072442855113877 - ], - [ - -7.286914509133453, - 10.930414056208065 - ], - [ - -7.286914509133453, - 17.002856911321942 - ], - [ - -8.501386163153143, - 23.07529976643582 - ], - [ - -8.501386163153143, - 26.718757021002546 - ], - [ - -7.286914509133453, - 29.147742621549696 - ], - [ - -4.857971201094188, - 30.3622565680771 - ], - [ - -2.4289433080392655, - 30.3622565680771 - ], - [ - 1.2144716540196896, - 30.3622565680771 - ], - [ - 7.286914509133567, - 26.718757021002546 - ], - [ - 10.930414056208065, - 23.07529976643582 - ], - [ - 13.35935736424733, - 18.217328565341575 - ], - [ - 14.57399818829822, - 12.144885710227754 - ], - [ - 15.788385257302252, - 7.28691450913351 - ], - [ - 14.57399818829822, - 1.2144716540196896 - ], - [ - 13.35935736424733, - -3.6434572545667265 - ], - [ - 9.715942402188375, - -7.286956801641281 - ], - [ - 6.072442855113877, - -10.930414056208065 - ], - [ - 1.2144716540196896, - -12.144928002735526 - ], - [ - -1.2144716540196896, - -12.144928002735526 - ], - [ - -4.857971201094188, - -8.501386163153143 - ], - [ - -6.072442855113877, - -3.6434572545667265 - ], - [ - -7.286914509133453, - 1.2144716540196896 - ], - [ - -8.501386163153143, - 8.501428455660971 - ], - [ - -8.501386163153143, - 13.359399656755215 - ], - [ - -8.501386163153143, - 17.002856911321942 - ], - [ - -7.286914509133453, - 19.431842511869036 - ], - [ - -4.857971201094188, - 20.646314165888725 - ], - [ - -3.643414962058955, - 20.646314165888725 - ], - [ - -2.4289433080392655, - 20.646314165888725 - ], - [ - -1.2144716540196896, - 19.431842511869036 - ], - [ - -1.2144716540196896, - 18.217328565341575 - ], - [ - -1.2144716540196896, - 18.217328565341575 - ] - ], - "pressures": [ - 0.0234375, - 0.4541015625, - 0.6015625, - 0.6923828125, - 0.8388671875, - 0.97265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8828125, - 0.30859375, - 0.12890625, - 0.0146484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.2144716540196896, - 18.217328565341575 - ] - }, - { - "id": "jKFPG--GSC0FXsoOwcjCt", - "type": "freedraw", - "x": -515.9402811154924, - "y": -157.33574859894406, - "width": 15.788300672286596, - "height": 30.362256568077157, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1355169539, - "version": 60, - "versionNonce": 234645773, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 7.286956801641338 - ], - [ - 0, - 14.573913603282676 - ], - [ - -1.214471654019576, - 20.646356458396497 - ], - [ - -1.214471654019576, - 25.50432765949074 - ], - [ - 0, - 27.933270967530007 - ], - [ - 1.2144716540196896, - 29.147827206565296 - ], - [ - 3.643414962058955, - 30.362256568077157 - ], - [ - 6.072442855113877, - 30.362256568077157 - ], - [ - 9.715942402188489, - 30.362256568077157 - ], - [ - 13.359357364247444, - 26.718799313510374 - ], - [ - 14.57382901826702, - 24.28981371296328 - ], - [ - 14.57382901826702, - 20.646356458396497 - ], - [ - 14.57382901826702, - 18.217370857849403 - ], - [ - 14.57382901826702, - 15.78838525730231 - ], - [ - 13.359357364247444, - 10.930456348715893 - ], - [ - 12.144885710227754, - 8.501428455660971 - ], - [ - 12.144885710227754, - 7.286956801641338 - ], - [ - 12.144885710227754, - 7.286956801641338 - ] - ], - "pressures": [ - 0.09765625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.861328125, - 0.361328125, - 0.1943359375, - 0.1318359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 12.144885710227754, - 7.286956801641338 - ] - }, - { - "id": "6G62pZITOF7U4DSyYvVve", - "type": "freedraw", - "x": -495.2939246570959, - "y": -125.7589780843395, - "width": 34.005713822643884, - "height": 80.15635564802324, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 179169091, - "version": 84, - "versionNonce": 757348931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.214471654019576, - -7.286956801641281 - ], - [ - 1.214471654019576, - -15.788385257302252 - ], - [ - 0, - -25.504285366982856 - ], - [ - 0, - -38.86364273123024 - ], - [ - 0, - -53.43755633451286 - ], - [ - 0, - -72.8693988463819 - ], - [ - 0, - -77.72737004747609 - ], - [ - 0, - -78.94188399400355 - ], - [ - 0, - -80.15635564802324 - ], - [ - 0, - -72.8693988463819 - ], - [ - 0, - -60.7245131361542 - ], - [ - -1.2145562390352325, - -48.57962742592645 - ], - [ - -1.2145562390352325, - -36.43469942319092 - ], - [ - -2.429027893054922, - -23.07534205894359 - ], - [ - -2.429027893054922, - -18.217370857849346 - ], - [ - -2.429027893054922, - -17.002856911321885 - ], - [ - -2.429027893054922, - -19.431842511869036 - ], - [ - -2.429027893054922, - -25.504285366982856 - ], - [ - 0, - -35.22022776917129 - ], - [ - 2.429027893054922, - -41.292670624285165 - ], - [ - 4.857886616078531, - -44.93612787885189 - ], - [ - 6.072442855113877, - -44.93612787885189 - ], - [ - 8.5014707481688, - -44.93612787885189 - ], - [ - 14.573913603282563, - -44.93612787885189 - ], - [ - 19.431800219361207, - -42.507184570812626 - ], - [ - 24.289771420455395, - -35.22022776917129 - ], - [ - 26.718799313510317, - -27.93327096752995 - ], - [ - 29.147742621549583, - -20.64631416588867 - ], - [ - 30.362214275569272, - -14.573871310774791 - ], - [ - 31.57668592958896, - -8.501386163153143 - ], - [ - 30.362214275569272, - -6.07244285511382 - ], - [ - 26.718799313510317, - -4.857971201094188 - ], - [ - 21.860743527400473, - -4.857971201094188 - ], - [ - 15.78830067228671, - -4.857971201094188 - ], - [ - 6.072442855113877, - -6.07244285511382 - ], - [ - 1.214471654019576, - -7.286956801641281 - ], - [ - -1.2145562390352325, - -7.286956801641281 - ], - [ - -2.429027893054922, - -8.501386163153143 - ], - [ - 1.214471654019576, - -9.715942402188375 - ], - [ - 4.857886616078531, - -9.715942402188375 - ], - [ - 6.072442855113877, - -8.501386163153143 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.109375, - 0.736328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.228515625, - 0.134765625, - 0.0830078125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 6.072442855113877, - -8.501386163153143 - ] - }, - { - "id": "QI9v5MlJhoOA5bXkcxnrz", - "type": "freedraw", - "x": -542.6590804290028, - "y": -99.04022106333696, - "width": 127.52146912742228, - "height": 15.788342964794424, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1799647917, - "version": 51, - "versionNonce": 1376108397, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 12.144885710227754, - -1.214471654019576 - ], - [ - 24.28977142045551, - -2.428985600547094 - ], - [ - 52.2230423879854, - -7.286914509133453 - ], - [ - 71.65492719236227, - -10.930371763700236 - ], - [ - 91.08672741172347, - -14.573871310774848 - ], - [ - 108.08958432304541, - -15.788342964794424 - ], - [ - 117.8055267252339, - -15.788342964794424 - ], - [ - 125.09244123436736, - -12.144885710227754 - ], - [ - 127.52146912742228, - -10.930371763700236 - ], - [ - 127.52146912742228, - -9.715900109680547 - ], - [ - 126.30699747340259, - -9.715900109680547 - ], - [ - 126.30699747340259, - -9.715900109680547 - ] - ], - "pressures": [ - 0.02734375, - 0.94921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4384765625, - 0.23046875, - 0.0302734375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 126.30699747340259, - -9.715900109680547 - ] - }, - { - "id": "6V1pJ0Z5RcMDoHU-4Kuap", - "type": "freedraw", - "x": -519.5837806625669, - "y": -102.68367831790374, - "width": 98.37372650587258, - "height": 4.857928908586359, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1847499139, - "version": 49, - "versionNonce": 164231651, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 21.86082811241613, - 2.4289856005472075 - ], - [ - 38.863769608753614, - 3.6434572545667834 - ], - [ - 58.295569828114935, - 2.4289856005472075 - ], - [ - 75.29851132445242, - 1.2144716540196896 - ], - [ - 91.08681199673913, - 0 - ], - [ - 95.94469861281766, - 0 - ], - [ - 97.159254851853, - 0 - ], - [ - 98.37372650587258, - 0 - ], - [ - 98.37372650587258, - -1.214471654019576 - ], - [ - 98.37372650587258, - -1.214471654019576 - ] - ], - "pressures": [ - 0.1025390625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.369140625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 98.37372650587258, - -1.214471654019576 - ] - }, - { - "id": "v_YPuklIR4PI_aFJa9_K4", - "type": "freedraw", - "x": -489.221481801982, - "y": -86.89529306060138, - "width": 10.930329471192408, - "height": 21.86082811241613, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 79452995, - "version": 51, - "versionNonce": 1263880653, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -4.857971201094301, - 1.214471654019576 - ], - [ - -6.072442855113877, - 2.428985600547094 - ], - [ - -7.28699909414911, - 4.857928908586359 - ], - [ - -9.715857817172832, - 8.501428455660971 - ], - [ - -9.715857817172832, - 14.573871310774734 - ], - [ - -9.715857817172832, - 17.002856911321942 - ], - [ - -8.5014707481688, - 19.431842511869036 - ], - [ - -7.28699909414911, - 21.86082811241613 - ], - [ - -4.857971201094301, - 21.86082811241613 - ], - [ - -3.643414962058955, - 21.86082811241613 - ], - [ - -2.429027893054922, - 20.64631416588861 - ], - [ - -1.2145562390353462, - 18.217328565341518 - ], - [ - 0, - 17.002856911321942 - ], - [ - 1.214471654019576, - 13.35935736424733 - ], - [ - 1.214471654019576, - 10.930414056208065 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.083984375, - 0.66015625, - 0.79296875, - 0.9345703125, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5048828125, - 0.2041015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 1.214471654019576, - 10.930414056208065 - ] - }, - { - "id": "UsorGa8rmZMaKC4bZWMfh", - "type": "freedraw", - "x": -480.7200110538133, - "y": -73.53593569635404, - "width": 52.223042387985515, - "height": 46.15064182537935, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 152468429, - "version": 60, - "versionNonce": 920044931, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2145562390352325, - -3.6434572545667834 - ], - [ - 0, - -3.6434572545667834 - ], - [ - 2.428943308039379, - -4.857928908586359 - ], - [ - 6.072442855113877, - -6.072442855113877 - ], - [ - 8.501386163153256, - -4.857928908586359 - ], - [ - 14.57382901826702, - -1.2144716540196896 - ], - [ - 19.43180021936132, - 3.6434995470746117 - ], - [ - 25.504243074475085, - 13.359399656755159 - ], - [ - 25.504243074475085, - 20.64635645839644 - ], - [ - 23.075215181420276, - 26.718799313510317 - ], - [ - 18.21732856534163, - 32.791242168624194 - ], - [ - 10.930329471192522, - 36.434741715698806 - ], - [ - 1.2143870690041467, - 38.86368502373807 - ], - [ - -3.6435841320901545, - 40.078198970265476 - ], - [ - -7.28699909414911, - 40.078198970265476 - ], - [ - -6.0724428551137635, - 40.078198970265476 - ], - [ - 0, - 38.86368502373807 - ], - [ - 8.501386163153256, - 37.64921336971838 - ], - [ - 17.0027723263064, - 37.64921336971838 - ], - [ - 29.14765803653404, - 36.434741715698806 - ], - [ - 36.434741715698806, - 36.434741715698806 - ], - [ - 41.29262833177745, - 37.64921336971838 - ], - [ - 43.721571639816716, - 37.64921336971838 - ], - [ - 44.936043293836406, - 37.64921336971838 - ], - [ - 43.721571639816716, - 34.00575611515171 - ], - [ - 42.50718457081268, - 32.791242168624194 - ], - [ - 42.50718457081268, - 32.791242168624194 - ] - ], - "pressures": [ - 0.095703125, - 0.740234375, - 0.9755859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2236328125, - 0.0986328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 42.50718457081268, - 32.791242168624194 - ] - }, - { - "id": "9_Ixh9cdL94rr62z4KhZk", - "type": "freedraw", - "x": -492.86489676404096, - "y": -65.03446494818525, - "width": 17.002772326306285, - "height": 21.8607858199083, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 899420045, - "version": 62, - "versionNonce": 1527023661, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.214387069004033, - -1.2145139465275179 - ], - [ - 1.214387069004033, - -2.428985600547094 - ], - [ - 2.428858723023609, - -2.428985600547094 - ], - [ - 2.428858723023609, - -3.6434995470746117 - ], - [ - 3.643414962058955, - -3.6434995470746117 - ], - [ - 4.857886616078531, - -3.6434995470746117 - ], - [ - 6.072442855113877, - -3.6434995470746117 - ], - [ - 6.072442855113877, - 0 - ], - [ - 6.072442855113877, - 1.214471654019576 - ], - [ - 6.072442855113877, - 2.4289433080392655 - ], - [ - 4.857886616078531, - 2.4289433080392655 - ], - [ - 3.643414962058955, - 0 - ], - [ - 2.428858723023609, - -2.428985600547094 - ], - [ - 1.214387069004033, - -3.6434995470746117 - ], - [ - 1.214387069004033, - -6.072485147621705 - ], - [ - 1.214387069004033, - -9.715942402188489 - ], - [ - 1.214387069004033, - -13.359399656755159 - ], - [ - 2.428858723023609, - -15.788385257302252 - ], - [ - 2.428858723023609, - -17.00289920382977 - ], - [ - 3.643414962058955, - -18.21737085784946 - ], - [ - 4.857886616078531, - -18.21737085784946 - ], - [ - 8.501301578137486, - -19.431842511869036 - ], - [ - 12.14488571022764, - -19.431842511869036 - ], - [ - 15.788300672286596, - -19.431842511869036 - ], - [ - 17.002772326306285, - -19.431842511869036 - ], - [ - 17.002772326306285, - -17.00289920382977 - ], - [ - 17.002772326306285, - -15.788385257302252 - ], - [ - 17.002772326306285, - -14.573913603282676 - ], - [ - 17.002772326306285, - -14.573913603282676 - ] - ], - "pressures": [ - 0.05078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.564453125, - 0.330078125, - 0.1328125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.002772326306285, - -14.573913603282676 - ] - }, - { - "id": "57e_Zc2ft7C5sIBozkLXz", - "type": "freedraw", - "x": -469.7896815826208, - "y": -74.75040735037373, - "width": 48.57962742592656, - "height": 47.36511347939904, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1862734371, - "version": 56, - "versionNonce": 730406179, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.429027893054922, - -2.428985600547094 - ], - [ - 4.857971201094188, - -2.428985600547094 - ], - [ - 10.930414056208065, - 0 - ], - [ - 15.788385257302252, - 3.6434572545667834 - ], - [ - 19.431884804376864, - 7.286956801641395 - ], - [ - 23.07529976643582, - 13.359399656755159 - ], - [ - 23.07529976643582, - 18.21737085784946 - ], - [ - 23.07529976643582, - 24.289813712963337 - ], - [ - 19.431884804376864, - 30.3622565680771 - ], - [ - 10.930414056208065, - 37.649213369718495 - ], - [ - 2.429027893054922, - 40.07815667775776 - ], - [ - -3.6434995470746117, - 42.507142278304855 - ], - [ - -8.501386163153143, - 43.72165622483226 - ], - [ - -10.930329471192522, - 44.93612787885195 - ], - [ - -12.144885710227754, - 44.93612787885195 - ], - [ - -9.715942402188375, - 44.93612787885195 - ], - [ - -1.2144716540196896, - 42.507142278304855 - ], - [ - 9.715942402188375, - 40.07815667775776 - ], - [ - 19.431884804376864, - 38.86368502373807 - ], - [ - 27.933270967530007, - 38.86368502373807 - ], - [ - 35.22018547666346, - 38.86368502373807 - ], - [ - 36.434741715698806, - 38.86368502373807 - ], - [ - 35.22018547666346, - 37.649213369718495 - ], - [ - 35.22018547666346, - 37.649213369718495 - ] - ], - "pressures": [ - 0.13671875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.4970703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 35.22018547666346, - 37.649213369718495 - ] - }, - { - "id": "PQqVsotuxZCzC29SYoAQg", - "type": "freedraw", - "x": -488.00701014796243, - "y": -62.60552164014598, - "width": 21.86082811241613, - "height": 25.5042853669828, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1735499501, - "version": 66, - "versionNonce": 50133645, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.2145139465274042 - ], - [ - 0, - -1.2144716540196896 - ], - [ - 0, - -4.857928908586359 - ], - [ - 0, - -9.71590010968066 - ], - [ - 1.2145562390353462, - -10.930414056208065 - ], - [ - 2.428943308039379, - -10.930414056208065 - ], - [ - 3.643414962058955, - -10.930414056208065 - ], - [ - 6.072442855113877, - -8.501428455660971 - ], - [ - 7.28699909414911, - -7.286914509133453 - ], - [ - 4.857971201094301, - -4.857928908586359 - ], - [ - 3.643414962058955, - -3.6434572545667834 - ], - [ - 2.428943308039379, - -4.857928908586359 - ], - [ - 1.2145562390353462, - -8.501428455660971 - ], - [ - 1.2145562390353462, - -12.144885710227754 - ], - [ - 0, - -14.573871310774848 - ], - [ - 0, - -15.788342964794424 - ], - [ - 1.2145562390353462, - -19.431842511869036 - ], - [ - 2.428943308039379, - -21.8607858199083 - ], - [ - 4.857971201094301, - -23.07529976643582 - ], - [ - 7.28699909414911, - -24.289771420455395 - ], - [ - 9.715942402188489, - -24.289771420455395 - ], - [ - 12.144885710227754, - -24.289771420455395 - ], - [ - 13.359441949262987, - -24.289771420455395 - ], - [ - 14.57382901826702, - -24.289771420455395 - ], - [ - 15.788385257302366, - -23.07529976643582 - ], - [ - 19.431884804376864, - -19.431842511869036 - ], - [ - 20.646356458396554, - -17.002856911321942 - ], - [ - 20.646356458396554, - -15.788342964794424 - ], - [ - 21.86082811241613, - -15.788342964794424 - ], - [ - 19.431884804376864, - -15.788342964794424 - ], - [ - 15.788385257302366, - -18.217328565341518 - ], - [ - 14.57382901826702, - -21.8607858199083 - ], - [ - 14.57382901826702, - -24.289771420455395 - ], - [ - 14.57382901826702, - -24.289771420455395 - ] - ], - "pressures": [ - 0.0546875, - 0.8447265625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.748046875, - 0.1845703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 14.57382901826702, - -24.289771420455395 - ] - }, - { - "id": "E31_O3oJhRP8ZZY-57Jzj", - "type": "freedraw", - "x": -464.9317103815266, - "y": -69.89243614927943, - "width": 6.072442855113877, - "height": 7.286956801641281, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2017660333, - "version": 40, - "versionNonce": 1934590147, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -1.2145139465275179 - ], - [ - 0, - -1.2145139465275179 - ], - [ - 1.2144716540196896, - -1.2145139465275179 - ], - [ - 2.429027893054922, - -1.2145139465275179 - ], - [ - 4.857971201094188, - 1.214471654019576 - ], - [ - 4.857971201094188, - 2.428985600547094 - ], - [ - 2.429027893054922, - 2.428985600547094 - ], - [ - 2.429027893054922, - 3.6434572545666697 - ], - [ - 2.429027893054922, - 6.0724428551137635 - ], - [ - 3.6434995470746117, - 6.0724428551137635 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.0615234375, - 0.71875, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6640625, - 0.193359375, - 0.0009765625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 3.6434995470746117, - 6.0724428551137635 - ] - }, - { - "id": "S9_ZAeuNXiHtsQ4Cpp6o-", - "type": "freedraw", - "x": -464.9317103815266, - "y": -69.89243614927943, - "width": 82.58525666355467, - "height": 60.72447084364637, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 331440717, - "version": 64, - "versionNonce": 1274552557, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4289433080392655, - -3.6434995470746117 - ], - [ - 0, - -4.857971201094301 - ], - [ - 1.2144716540196896, - -6.072442855113877 - ], - [ - 2.429027893054922, - -7.286956801641395 - ], - [ - 4.857971201094188, - -7.286956801641395 - ], - [ - 6.072442855113877, - -8.501428455660971 - ], - [ - 8.5014707481688, - -8.501428455660971 - ], - [ - 12.144885710227754, - -7.286956801641395 - ], - [ - 14.573913603282676, - -4.857971201094301 - ], - [ - 19.431800219361207, - 0 - ], - [ - 20.646441043412096, - 4.857971201094188 - ], - [ - 21.86082811241613, - 13.359399656755159 - ], - [ - 21.86082811241613, - 15.788342964794424 - ], - [ - 19.431800219361207, - 26.71875702100249 - ], - [ - 12.144885710227754, - 36.434699423190864 - ], - [ - 1.2144716540196896, - 44.936127878851835 - ], - [ - -1.2144716540196896, - 47.36511347939893 - ], - [ - -8.5014707481688, - 49.794099079946136 - ], - [ - -18.217328565341518, - 51.00857073396571 - ], - [ - -23.07529976643582, - 52.2230423879854 - ], - [ - -27.93318638251435, - 52.2230423879854 - ], - [ - -29.147742621549696, - 52.2230423879854 - ], - [ - -30.362214275569272, - 52.2230423879854 - ], - [ - -24.289771420455395, - 48.57958513341862 - ], - [ - -12.144885710227754, - 42.50714227830474 - ], - [ - -1.2144716540196896, - 40.07815667775765 - ], - [ - 9.715942402188375, - 38.86368502373796 - ], - [ - 19.431800219361207, - 38.86368502373796 - ], - [ - 34.005713822643884, - 40.07815667775765 - ], - [ - 41.29262833177734, - 41.292670624285165 - ], - [ - 48.57962742592645, - 41.292670624285165 - ], - [ - 52.2230423879854, - 41.292670624285165 - ], - [ - 52.2230423879854, - 38.86368502373796 - ], - [ - 48.57962742592645, - 36.434699423190864 - ], - [ - 48.57962742592645, - 35.22018547666346 - ], - [ - 48.57962742592645, - 35.22018547666346 - ] - ], - "pressures": [ - 0.083984375, - 0.830078125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.525390625, - 0.1376953125, - 0.025390625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.57962742592645, - 35.22018547666346 - ] - }, - { - "id": "7TWS7nPU9I6010byzxTJZ", - "type": "freedraw", - "x": -469.7896815826208, - "y": -58.96202209307137, - "width": 77.72737004747603, - "height": 69.22594159181517, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 183422829, - "version": 67, - "versionNonce": 667447395, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -7.286956801641395 - ], - [ - 0, - -13.359399656755272 - ], - [ - 1.2145562390352325, - -20.646356458396554 - ], - [ - 3.643499547074498, - -23.075342058943647 - ], - [ - 6.072442855113877, - -26.71879931351043 - ], - [ - 8.5014707481688, - -27.933270967530007 - ], - [ - 10.930414056208065, - -30.3622565680771 - ], - [ - 15.788385257302252, - -30.3622565680771 - ], - [ - 19.431884804376864, - -29.147784914057524 - ], - [ - 23.07529976643582, - -25.504285366982913 - ], - [ - 30.36229886058493, - -12.144928002735583 - ], - [ - 31.57685509962016, - -8.501428455660971 - ], - [ - 34.005713822643884, - 3.6434572545666697 - ], - [ - 34.005713822643884, - 19.431842511869036 - ], - [ - 34.005713822643884, - 26.71875702100249 - ], - [ - 30.36229886058493, - 30.3622565680771 - ], - [ - 23.07529976643582, - 34.00571382264377 - ], - [ - 15.788385257302252, - 36.434699423190864 - ], - [ - 7.28699909414911, - 37.64917107721055 - ], - [ - 1.2145562390352325, - 38.86368502373807 - ], - [ - -4.857886616078645, - 38.86368502373807 - ], - [ - -8.501386163153143, - 37.64917107721055 - ], - [ - -12.144885710227754, - 36.434699423190864 - ], - [ - -13.35935736424733, - 34.00571382264377 - ], - [ - -12.144885710227754, - 26.71875702100249 - ], - [ - -8.501386163153143, - 23.075299766435705 - ], - [ - -1.2144716540196896, - 19.431842511869036 - ], - [ - 10.930414056208065, - 19.431842511869036 - ], - [ - 25.504412244506284, - 19.431842511869036 - ], - [ - 43.721740809847915, - 23.075299766435705 - ], - [ - 52.2230423879854, - 25.5042853669828 - ], - [ - 59.51004148213451, - 26.71875702100249 - ], - [ - 63.153456444193466, - 29.147742621549583 - ], - [ - 64.3680126832287, - 29.147742621549583 - ], - [ - 63.153456444193466, - 29.147742621549583 - ], - [ - 59.51004148213451, - 30.3622565680771 - ], - [ - 55.866626520075556, - 30.3622565680771 - ], - [ - 54.652070281040324, - 29.147742621549583 - ], - [ - 54.652070281040324, - 29.147742621549583 - ] - ], - "pressures": [ - 0.1279296875, - 0.5869140625, - 0.791015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.748046875, - 0.2080078125, - 0.1005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 54.652070281040324, - 29.147742621549583 - ] - }, - { - "id": "Q-23Jy_LjKIHFfLqeo7qD", - "type": "freedraw", - "x": -429.71152490486304, - "y": -56.533036492524275, - "width": 74.08378591538599, - "height": 54.652070281040324, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 583121507, - "version": 65, - "versionNonce": 1803516749, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4288587230237226, - -7.286956801641395 - ], - [ - -2.4288587230237226, - -9.715942402188489 - ], - [ - -2.4288587230237226, - -12.144928002735583 - ], - [ - 0, - -14.573913603282676 - ], - [ - 2.4290278930548084, - -15.788385257302366 - ], - [ - 7.28699909414911, - -17.00289920382977 - ], - [ - 10.930414056208065, - -17.00289920382977 - ], - [ - 15.788469842317795, - -15.788385257302366 - ], - [ - 21.860912697431672, - -15.788385257302366 - ], - [ - 27.93335555254555, - -13.359399656755159 - ], - [ - 30.362298860584815, - -8.501428455660971 - ], - [ - 32.791242168624194, - -2.428985600547094 - ], - [ - 34.00579840765943, - 3.6434572545666697 - ], - [ - 34.00579840765943, - 10.930371763700236 - ], - [ - 32.791242168624194, - 20.64631416588861 - ], - [ - 27.93335555254555, - 25.5042853669828 - ], - [ - 21.860912697431672, - 30.362214275569272 - ], - [ - 14.573913603282563, - 34.00571382264377 - ], - [ - 7.28699909414911, - 36.43469942319098 - ], - [ - 1.2145562390352325, - 37.64917107721055 - ], - [ - -7.286914509133567, - 35.22018547666346 - ], - [ - -12.144885710227754, - 31.576728222096676 - ], - [ - -14.573744433251477, - 29.147742621549583 - ], - [ - -14.573744433251477, - 27.933270967530007 - ], - [ - -14.573744433251477, - 25.5042853669828 - ], - [ - -9.715857817172832, - 23.075299766435705 - ], - [ - 1.2145562390352325, - 21.8607858199083 - ], - [ - 14.573913603282563, - 20.64631416588861 - ], - [ - 26.718799313510317, - 20.64631416588861 - ], - [ - 38.86368502373796, - 20.64631416588861 - ], - [ - 46.15068411788718, - 21.8607858199083 - ], - [ - 52.223126973000944, - 23.075299766435705 - ], - [ - 58.29556982811482, - 25.5042853669828 - ], - [ - 59.51004148213451, - 25.5042853669828 - ], - [ - 58.29556982811482, - 25.5042853669828 - ], - [ - 55.8665419350599, - 23.075299766435705 - ], - [ - 52.223126973000944, - 19.431842511869036 - ], - [ - 52.223126973000944, - 19.431842511869036 - ] - ], - "pressures": [ - 0.126953125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.6533203125, - 0.138671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 52.223126973000944, - 19.431842511869036 - ] - }, - { - "id": "5qb7T6B9ExwWK_KMK3GNN", - "type": "freedraw", - "x": -466.1461820355463, - "y": -67.46345054873234, - "width": 75.29842673943676, - "height": 75.29838444692905, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 898459437, - "version": 59, - "versionNonce": 717384707, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.4289433080392655, - -6.072485147621705 - ], - [ - -2.4289433080392655, - -9.715942402188489 - ], - [ - 0, - -14.573913603282676 - ], - [ - 3.6434995470746117, - -18.21737085784946 - ], - [ - 8.501386163153256, - -21.86082811241613 - ], - [ - 10.930414056208065, - -23.075342058943647 - ], - [ - 14.57382901826702, - -23.075342058943647 - ], - [ - 17.002856911321942, - -21.86082811241613 - ], - [ - 23.07529976643582, - -13.359399656755159 - ], - [ - 26.71879931351043, - -4.857971201094301 - ], - [ - 29.147742621549696, - 6.0724428551137635 - ], - [ - 29.147742621549696, - 14.573871310774734 - ], - [ - 29.147742621549696, - 21.8607858199083 - ], - [ - 27.933355552545663, - 29.147742621549583 - ], - [ - 23.07529976643582, - 35.22018547666346 - ], - [ - 18.21732856534163, - 40.07815667775765 - ], - [ - 9.715942402188489, - 46.150599532871524 - ], - [ - -2.4289433080392655, - 49.79405678743831 - ], - [ - -10.930414056208065, - 51.00857073396571 - ], - [ - -14.57382901826702, - 52.2230423879854 - ], - [ - -17.002856911321828, - 52.2230423879854 - ], - [ - -10.930414056208065, - 49.79405678743831 - ], - [ - 8.501386163153256, - 46.150599532871524 - ], - [ - 23.07529976643582, - 43.72161393232443 - ], - [ - 36.43465713068326, - 41.29262833177734 - ], - [ - 44.93612787885195, - 40.07815667775765 - ], - [ - 51.008570733965826, - 38.86368502373807 - ], - [ - 57.0810135890797, - 38.86368502373807 - ], - [ - 58.295569828114935, - 38.86368502373807 - ], - [ - 55.86654193506001, - 38.86368502373807 - ], - [ - 53.43751404200509, - 41.29262833177734 - ], - [ - 53.43751404200509, - 41.29262833177734 - ] - ], - "pressures": [ - 0.078125, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.8720703125, - 0.3388671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 53.43751404200509, - 41.29262833177734 - ] - }, - { - "id": "6MmjHVpukinukC5wJkR7g", - "type": "freedraw", - "x": -427.28249701180823, - "y": -67.46345054873234, - "width": 98.37372650587258, - "height": 72.86944113888978, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1504100237, - "version": 64, - "versionNonce": 703367597, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.643499547074498, - -7.286956801641395 - ], - [ - -1.214471654019576, - -8.501428455660971 - ], - [ - 3.643414962058955, - -9.715942402188489 - ], - [ - 9.715857817172832, - -12.144928002735583 - ], - [ - 14.57382901826702, - -12.144928002735583 - ], - [ - 21.86082811241613, - -6.072485147621705 - ], - [ - 26.71879931351043, - 0 - ], - [ - 30.362214275569386, - 6.0724428551137635 - ], - [ - 35.22018547666357, - 13.35935736424733 - ], - [ - 37.649213369718495, - 21.8607858199083 - ], - [ - 38.86368502373807, - 34.00571382264377 - ], - [ - 36.43465713068315, - 40.07815667775765 - ], - [ - 31.57677051460462, - 46.150599532871524 - ], - [ - 24.28977142045551, - 52.2230423879854 - ], - [ - 18.21732856534163, - 57.08101358907959 - ], - [ - 10.930414056208065, - 60.7245131361542 - ], - [ - 8.501386163153256, - 60.7245131361542 - ], - [ - 7.28699909414911, - 60.7245131361542 - ], - [ - 4.857971201094301, - 57.08101358907959 - ], - [ - 2.428943308039379, - 52.2230423879854 - ], - [ - 2.428943308039379, - 51.00857073396571 - ], - [ - 3.643414962058955, - 49.79405678743831 - ], - [ - 10.930414056208065, - 47.36511347939904 - ], - [ - 20.646271873380897, - 46.150599532871524 - ], - [ - 35.22018547666357, - 42.50714227830474 - ], - [ - 44.93612787885195, - 41.29262833177734 - ], - [ - 54.65207028104044, - 41.29262833177734 - ], - [ - 65.58239975223285, - 41.29262833177734 - ], - [ - 82.58534124857033, - 41.29262833177734 - ], - [ - 89.8722557577039, - 41.29262833177734 - ], - [ - 93.51567071976285, - 42.50714227830474 - ], - [ - 94.73022695879808, - 42.50714227830474 - ], - [ - 92.30119906574316, - 43.72161393232443 - ], - [ - 88.65778410368421, - 43.72161393232443 - ], - [ - 85.01428455660971, - 42.50714227830474 - ], - [ - 81.3707850095351, - 40.07815667775765 - ], - [ - 78.94184170149583, - 37.64917107721055 - ], - [ - 78.94184170149583, - 37.64917107721055 - ] - ], - "pressures": [ - 0.1435546875, - 0.4130859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.970703125, - 0.4150390625, - 0.2001953125, - 0.109375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 78.94184170149583, - 37.64917107721055 - ] - }, - { - "id": "14ronpvB7JI593QItONsE", - "type": "freedraw", - "x": -479.5056239848092, - "y": -62.60552164014598, - "width": 26.71879931351043, - "height": 37.64921336971838, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1395136269, - "version": 60, - "versionNonce": 540799907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2143870690041467, - 3.6434995470746117 - ], - [ - -1.2143870690041467, - 7.286956801641281 - ], - [ - -1.2143870690041467, - 6.072485147621705 - ], - [ - -1.2143870690041467, - 1.2145139465274042 - ], - [ - 0, - -3.6434572545667834 - ], - [ - 0, - -6.072442855113877 - ], - [ - 1.2145562390352325, - -7.286914509133453 - ], - [ - 4.85805578610973, - -6.072442855113877 - ], - [ - 7.28699909414911, - -2.4289433080392655 - ], - [ - 8.501470748168686, - 1.2145139465274042 - ], - [ - 8.501470748168686, - 4.857971201094188 - ], - [ - 8.501470748168686, - 6.072485147621705 - ], - [ - 8.501470748168686, - 7.286956801641281 - ], - [ - 7.28699909414911, - 7.286956801641281 - ], - [ - 4.85805578610973, - 7.286956801641281 - ], - [ - 1.2145562390352325, - 7.286956801641281 - ], - [ - -1.2143870690041467, - 4.857971201094188 - ], - [ - -3.643414962058955, - 0 - ], - [ - -4.857971201094301, - -2.4289433080392655 - ], - [ - -4.857971201094301, - -6.072442855113877 - ], - [ - -4.857971201094301, - -10.930414056208065 - ], - [ - -1.2143870690041467, - -21.8607858199083 - ], - [ - 0, - -27.933270967530007 - ], - [ - 1.2145562390352325, - -29.147742621549696 - ], - [ - 2.4290278930548084, - -30.3622565680771 - ], - [ - 6.0724428551137635, - -29.147742621549696 - ], - [ - 12.144970295243297, - -27.933270967530007 - ], - [ - 15.788385257302252, - -25.504285366982913 - ], - [ - 19.43188480437675, - -23.07529976643582 - ], - [ - 20.64635645839644, - -21.8607858199083 - ], - [ - 21.86082811241613, - -20.646314165888725 - ], - [ - 21.86082811241613, - -19.431842511869036 - ], - [ - 21.86082811241613, - -18.217328565341518 - ], - [ - 21.86082811241613, - -18.217328565341518 - ] - ], - "pressures": [ - 0.015625, - 0.0791015625, - 0.1435546875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7587890625, - 0.322265625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 21.86082811241613, - -18.217328565341518 - ] - }, - { - "id": "v9T8a6ZdzgbUUuelGu6RE", - "type": "freedraw", - "x": -475.8621244377347, - "y": -67.46345054873234, - "width": 19.431800219361207, - "height": 18.217328565341518, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 40342179, - "version": 54, - "versionNonce": 141085709, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 1.214471654019576 - ], - [ - 0, - 0 - ], - [ - 0, - -2.428985600547094 - ], - [ - 0, - -3.6434995470746117 - ], - [ - 1.2145562390352325, - -4.857971201094301 - ], - [ - 2.4289433080392655, - -4.857971201094301 - ], - [ - 4.857971201094188, - -4.857971201094301 - ], - [ - 7.28699909414911, - -4.857971201094301 - ], - [ - 9.715942402188375, - -3.6434995470746117 - ], - [ - 8.5014707481688, - -1.2145139465275179 - ], - [ - 4.857971201094188, - 0 - ], - [ - 2.4289433080392655, - 1.214471654019576 - ], - [ - 0, - 1.214471654019576 - ], - [ - -1.2144716540196896, - 1.214471654019576 - ], - [ - -2.4289433080392655, - 0 - ], - [ - -2.4289433080392655, - -2.428985600547094 - ], - [ - -2.4289433080392655, - -4.857971201094301 - ], - [ - 0, - -8.501428455660971 - ], - [ - 3.6434995470746117, - -12.144928002735583 - ], - [ - 6.072442855113877, - -13.359399656755159 - ], - [ - 8.5014707481688, - -14.573913603282676 - ], - [ - 12.144885710227754, - -15.788385257302366 - ], - [ - 13.359441949262987, - -17.002856911321942 - ], - [ - 14.573913603282676, - -17.002856911321942 - ], - [ - 15.788385257302252, - -17.002856911321942 - ], - [ - 15.788385257302252, - -13.359399656755159 - ], - [ - 17.002856911321942, - -10.930414056208065 - ], - [ - 17.002856911321942, - -10.930414056208065 - ] - ], - "pressures": [ - 0.0390625, - 0.6181640625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.734375, - 0.2763671875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 17.002856911321942, - -10.930414056208065 - ] - }, - { - "id": "dYCqcUqFXWxsxQbNB0Sxz", - "type": "freedraw", - "x": -458.85926752641274, - "y": -74.75040735037373, - "width": 75.29834215442122, - "height": 52.2230423879854, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1082000643, - "version": 53, - "versionNonce": 677611331, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -2.428985600547094 - ], - [ - 0, - -3.6434572545666697 - ], - [ - 4.857971201094188, - -3.6434572545666697 - ], - [ - 10.930414056208065, - -2.428985600547094 - ], - [ - 17.002856911321942, - 1.2144716540196896 - ], - [ - 26.718883898525974, - 9.715942402188489 - ], - [ - 30.36229886058493, - 17.002856911321942 - ], - [ - 31.576770514604505, - 24.289813712963337 - ], - [ - 32.79132675363985, - 32.791242168624194 - ], - [ - 30.36229886058493, - 40.07815667775776 - ], - [ - 24.289771420455395, - 44.93612787885195 - ], - [ - 12.144885710227754, - 48.57958513341873 - ], - [ - 3.643499547074498, - 48.57958513341873 - ], - [ - -9.715857817172832, - 46.150641825379466 - ], - [ - -15.78830067228671, - 46.150641825379466 - ], - [ - -19.431800219361207, - 44.93612787885195 - ], - [ - -21.860743527400587, - 44.93612787885195 - ], - [ - -17.002856911321942, - 44.93612787885195 - ], - [ - -2.4289433080392655, - 42.507142278304855 - ], - [ - 10.930414056208065, - 40.07815667775776 - ], - [ - 26.718883898525974, - 40.07815667775776 - ], - [ - 48.57962742592645, - 41.292670624285165 - ], - [ - 51.00865531898137, - 42.507142278304855 - ], - [ - 53.437598627020634, - 43.72165622483226 - ], - [ - 52.2230423879854, - 42.507142278304855 - ], - [ - 51.00865531898137, - 40.07815667775776 - ], - [ - 49.794099079946136, - 40.07815667775776 - ], - [ - 49.794099079946136, - 40.07815667775776 - ] - ], - "pressures": [ - 0.130859375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.2060546875, - 0.125, - 0.0595703125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 49.794099079946136, - 40.07815667775776 - ] - }, - { - "id": "-Ex8_EK3I2-SH-PE_1ouB", - "type": "freedraw", - "x": -424.85355370376885, - "y": -71.10695009580695, - "width": 103.23152853693557, - "height": 53.43755633451292, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 546472803, - "version": 57, - "versionNonce": 653116013, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.214387069004033, - -4.857928908586359 - ], - [ - 1.214471654019576, - -4.857928908586359 - ], - [ - 4.85805578610973, - -6.072442855113877 - ], - [ - 8.501470748168686, - -6.072442855113877 - ], - [ - 13.359441949262987, - -4.857928908586359 - ], - [ - 20.64635645839644, - 0 - ], - [ - 24.28985600547105, - 4.857971201094188 - ], - [ - 29.14782720656524, - 10.930414056208065 - ], - [ - 32.791242168624194, - 17.002856911321942 - ], - [ - 37.64921336971838, - 26.718799313510317 - ], - [ - 38.86368502373807, - 31.57677051460462 - ], - [ - 38.86368502373807, - 35.22022776917129 - ], - [ - 35.220270061679116, - 37.64921336971838 - ], - [ - 27.933270967530007, - 41.292670624285165 - ], - [ - 14.573913603282563, - 46.15064182537935 - ], - [ - 4.85805578610973, - 47.36511347939904 - ], - [ - 0, - 47.36511347939904 - ], - [ - -1.214387069004033, - 47.36511347939904 - ], - [ - 0, - 43.72165622483226 - ], - [ - 6.072442855113877, - 37.64921336971838 - ], - [ - 15.788385257302252, - 34.00575611515171 - ], - [ - 29.14782720656524, - 32.791242168624194 - ], - [ - 47.36515577190676, - 34.00575611515171 - ], - [ - 60.7245131361542, - 35.22022776917129 - ], - [ - 77.72737004747614, - 36.43469942319098 - ], - [ - 92.3012836507587, - 37.64921336971838 - ], - [ - 100.80266981391185, - 37.64921336971838 - ], - [ - 102.01714146793154, - 37.64921336971838 - ], - [ - 99.58819815989227, - 37.64921336971838 - ], - [ - 95.94469861281766, - 36.43469942319098 - ], - [ - 89.87225575770378, - 36.43469942319098 - ], - [ - 87.44331244966452, - 36.43469942319098 - ], - [ - 87.44331244966452, - 36.43469942319098 - ] - ], - "pressures": [ - 0.140625, - 0.8662109375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.56640625, - 0.22265625, - 0.087890625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 87.44331244966452, - 36.43469942319098 - ] - }, - { - "id": "nRTrtGo6eQ0JnAzfU-JqV", - "type": "freedraw", - "x": -551.1604665921559, - "y": -224.1327045902121, - "width": 76.51289839345645, - "height": 81.3708695945507, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1902906541, - "version": 44, - "versionNonce": 1503110883, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -10.930414056208065, - -2.4289433080393223 - ], - [ - -24.28985600547105, - -6.072442855113877 - ], - [ - -32.79115758360865, - -7.2868722166257385 - ], - [ - -41.29271291679299, - -7.2868722166257385 - ], - [ - -49.794099079946136, - -8.501428455660971 - ], - [ - -58.29556982811482, - -10.930371763700293 - ], - [ - -64.3680126832287, - -13.359315071739559 - ], - [ - -70.44045553834258, - -15.78834296479448 - ], - [ - -75.29834215442122, - -17.002856911321942 - ], - [ - -76.51289839345645, - -17.002856911321942 - ], - [ - -75.29834215442122, - -12.144885710227754 - ], - [ - -70.44045553834258, - 14.57391360328262 - ], - [ - -65.58248433724839, - 37.64921336971838 - ], - [ - -59.51004148213451, - 54.652070281040324 - ], - [ - -55.86662652007567, - 63.153498736701295 - ], - [ - -53.437598627020634, - 64.36801268322876 - ], - [ - -52.22312697300106, - 64.36801268322876 - ], - [ - -52.22312697300106, - 60.7245131361542 - ], - [ - -52.22312697300106, - 53.43759862702069 - ], - [ - -52.22312697300106, - 47.365155771906814 - ], - [ - -53.437598627020634, - 44.93617017135972 - ], - [ - -53.437598627020634, - 44.93617017135972 - ] - ], - "pressures": [ - 0.087890625, - 0.728515625, - 0.9169921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9619140625, - 0.4072265625, - 0.169921875, - 0.1005859375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -53.437598627020634, - 44.93617017135972 - ] - }, - { - "id": "jTxMQ_87YK6kleAEdfP7M", - "type": "freedraw", - "x": -564.5199085414189, - "y": -221.703718989665, - "width": 64.36801268322881, - "height": 94.73022695879803, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 45249805, - "version": 44, - "versionNonce": 1782901965, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3.6434995470746117, - 0 - ], - [ - -2.4289433080392655, - -1.2144716540196328 - ], - [ - -8.501386163153143, - -2.428985600547094 - ], - [ - -15.788385257302252, - -3.643414962058955 - ], - [ - -23.07529976643582, - -4.857928908586416 - ], - [ - -36.43465713068315, - -8.501428455660971 - ], - [ - -48.57962742592645, - -13.359357364247387 - ], - [ - -55.86645735004436, - -15.788300672286653 - ], - [ - -58.29548524309928, - -17.002856911321942 - ], - [ - -60.7245131361542, - -18.217328565341575 - ], - [ - -60.7245131361542, - -15.788300672286653 - ], - [ - -57.08101358907959, - -3.643414962058955 - ], - [ - -52.2230423879854, - 12.144928002735526 - ], - [ - -44.936127878851835, - 42.507184570812626 - ], - [ - -42.50718457081268, - 60.7245131361542 - ], - [ - -40.07815667775765, - 71.65492719236227 - ], - [ - -40.07815667775765, - 76.51289839345645 - ], - [ - -40.07815667775765, - 74.08391279290936 - ], - [ - -41.29262833177734, - 69.22598388432294 - ], - [ - -41.29262833177734, - 66.79695599126808 - ], - [ - -41.29262833177734, - 65.58248433724839 - ], - [ - -41.29262833177734, - 65.58248433724839 - ] - ], - "pressures": [ - 0.0048828125, - 0.626953125, - 0.8701171875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.30078125, - 0.17578125, - 0.1240234375, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -41.29262833177734, - 65.58248433724839 - ] - }, - { - "id": "wX6OmNCv7S8wKJLfUglQs", - "type": "freedraw", - "x": -325.2653555438766, - "y": -66.24897889471276, - "width": 89.8722557577039, - "height": 83.7998129025899, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 673442189, - "version": 42, - "versionNonce": 2053558915, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.214471654019576, - -1.214471654019576 - ], - [ - 3.643499547074498, - 3.6434572545667834 - ], - [ - 13.35935736424733, - 23.07529976643582 - ], - [ - 19.43188480437675, - 35.22022776917129 - ], - [ - 25.504327659490627, - 46.150641825379466 - ], - [ - 27.933270967530007, - 52.223042387985515 - ], - [ - 30.362214275569272, - 58.29548524309928 - ], - [ - 30.362214275569272, - 59.510041482134625 - ], - [ - 30.362214275569272, - 60.7245131361542 - ], - [ - 26.718799313510317, - 59.510041482134625 - ], - [ - 12.14488571022764, - 55.86654193506001 - ], - [ - 0, - 54.652070281040324 - ], - [ - -17.002856911321942, - 55.86654193506001 - ], - [ - -32.791242168624194, - 59.510041482134625 - ], - [ - -47.365071186891214, - 63.15345644419358 - ], - [ - -57.0810135890797, - 65.5824843372485 - ], - [ - -58.29548524309928, - 66.79695599126808 - ], - [ - -59.510041482134625, - 66.79695599126808 - ], - [ - -58.29548524309928, - 68.01142764528777 - ], - [ - -53.43759862702075, - 72.86939884638196 - ], - [ - -46.15059953287164, - 78.94184170149583 - ], - [ - -38.86368502373807, - 82.58534124857033 - ], - [ - -38.86368502373807, - 82.58534124857033 - ] - ], - "pressures": [ - 0.080078125, - 0.36328125, - 0.96875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.90625, - 0.4169921875, - 0.16015625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -38.86368502373807, - 82.58534124857033 - ] - }, - { - "id": "PhTOxbkm283xzHQ2FX8K0", - "type": "freedraw", - "x": -326.47982719789627, - "y": -57.74755043905179, - "width": 74.08387050040153, - "height": 64.36797039072098, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 773916419, - "version": 40, - "versionNonce": 1644677933, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -4.857971201094188 - ], - [ - 1.2144716540196896, - 3.6434572545667834 - ], - [ - 4.857971201094188, - 14.573871310774848 - ], - [ - 8.501386163153143, - 26.718799313510317 - ], - [ - 12.144885710227754, - 38.86368502373807 - ], - [ - 13.35935736424733, - 52.22308468049323 - ], - [ - 14.57382901826702, - 54.65202798853261 - ], - [ - 7.286914509133567, - 53.43755633451292 - ], - [ - -4.857971201094188, - 52.22308468049323 - ], - [ - -18.21732856534163, - 51.008613026473654 - ], - [ - -32.791242168624194, - 51.008613026473654 - ], - [ - -49.794099079946136, - 53.43755633451292 - ], - [ - -55.86654193506001, - 54.65202798853261 - ], - [ - -59.51004148213451, - 54.65202798853261 - ], - [ - -59.51004148213451, - 55.86658422756784 - ], - [ - -58.295569828114935, - 57.08105588158753 - ], - [ - -54.652070281040324, - 58.29552753560711 - ], - [ - -51.008570733965826, - 59.5099991896268 - ], - [ - -49.794099079946136, - 59.5099991896268 - ], - [ - -48.57962742592645, - 58.29552753560711 - ], - [ - -48.57962742592645, - 58.29552753560711 - ] - ], - "pressures": [ - 0.068359375, - 0.8515625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.5341796875, - 0.2255859375, - 0.1533203125, - 0.0478515625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -48.57962742592645, - 58.29552753560711 - ] - }, - { - "id": "PvMPBuVSlXe9KPxTNSsrQ", - "type": "freedraw", - "x": -311.90599817962925, - "y": -49.24612198339082, - "width": 78.94184170149572, - "height": 65.58248433724839, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 503924493, - "version": 39, - "versionNonce": 2073004579, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 1.2145562390352325, - 7.286956801641281 - ], - [ - 3.6434995470746117, - 14.573871310774848 - ], - [ - 7.28699909414911, - 25.504285366982913 - ], - [ - 9.715942402188375, - 37.64921336971838 - ], - [ - 9.715942402188375, - 46.15059953287164 - ], - [ - 9.715942402188375, - 51.008570733965826 - ], - [ - 10.930414056208065, - 53.43759862702075 - ], - [ - 9.715942402188375, - 53.43759862702075 - ], - [ - 4.857971201094188, - 53.43759862702075 - ], - [ - -3.643414962058955, - 52.223042387985515 - ], - [ - -14.57382901826702, - 52.223042387985515 - ], - [ - -26.718714728494774, - 52.223042387985515 - ], - [ - -46.150599532871524, - 55.86654193506001 - ], - [ - -58.29548524309928, - 60.7245131361542 - ], - [ - -65.58239975223285, - 64.36801268322881 - ], - [ - -68.01142764528765, - 65.58248433724839 - ], - [ - -66.79695599126808, - 65.58248433724839 - ], - [ - -63.153456444193466, - 65.58248433724839 - ], - [ - -60.724428551138544, - 65.58248433724839 - ], - [ - -60.724428551138544, - 65.58248433724839 - ] - ], - "pressures": [ - 0.1044921875, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.455078125, - 0.2099609375, - 0.08984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -60.724428551138544, - 65.58248433724839 - ] - }, - { - "id": "uu0kSIpoVt2hq2qEEERyh", - "type": "freedraw", - "x": -642.247278588895, - "y": -54.10409318448501, - "width": 42.50709998579691, - "height": 65.5824843372485, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 328952109, - "version": 33, - "versionNonce": 1855970701, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558556, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -6.0724428551137635, - -3.6434572545667834 - ], - [ - -10.930414056208065, - -6.072442855113877 - ], - [ - -13.35935736424733, - -7.286914509133567 - ], - [ - -19.431800219361207, - -6.072442855113877 - ], - [ - -24.289771420455395, - 0 - ], - [ - -31.57668592958896, - 18.217370857849346 - ], - [ - -34.00571382264377, - 35.22022776917129 - ], - [ - -35.22018547666346, - 48.57962742592645 - ], - [ - -35.22018547666346, - 55.86654193506001 - ], - [ - -30.362214275569272, - 58.295569828114935 - ], - [ - -20.646271873380897, - 57.0810135890797 - ], - [ - -10.930414056208065, - 53.43759862702075 - ], - [ - -2.428858723023609, - 48.57962742592645 - ], - [ - 4.857971201094301, - 44.93612787885195 - ], - [ - 7.286914509133453, - 42.50718457081257 - ], - [ - 7.286914509133453, - 42.50718457081257 - ] - ], - "pressures": [ - 0.1201171875, - 0.259765625, - 0.353515625, - 0.3984375, - 0.580078125, - 0.673828125, - 0.701171875, - 0.7568359375, - 0.7744140625, - 0.78515625, - 0.7890625, - 0.787109375, - 0.787109375, - 0.57421875, - 0.2724609375, - 0.2060546875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 7.286914509133453, - 42.50718457081257 - ] - }, - { - "id": "fSyUhmqrTyjmuzSLkbk9j", - "type": "freedraw", - "x": -642.247278588895, - "y": -10.38243695965275, - "width": 31.57668592958896, - "height": 32.791199876116366, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 878306851, - "version": 36, - "versionNonce": 838880707, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -4.857971201094188 - ], - [ - 0, - -8.501428455660971 - ], - [ - -1.214471654019576, - -9.715900109680547 - ], - [ - -3.643414962058955, - -9.715900109680547 - ], - [ - -9.715942402188375, - -8.501428455660971 - ], - [ - -13.35935736424733, - -2.4289433080392655 - ], - [ - -19.431800219361207, - 6.072442855113877 - ], - [ - -19.431800219361207, - 8.5014707481688 - ], - [ - -20.646271873380897, - 13.359357364247444 - ], - [ - -19.431800219361207, - 17.002856911321942 - ], - [ - -17.002856911321828, - 20.646356458396554 - ], - [ - -10.930414056208065, - 21.86082811241613 - ], - [ - -6.0724428551137635, - 23.07529976643582 - ], - [ - 2.429027893054922, - 23.07529976643582 - ], - [ - 6.072442855113877, - 23.07529976643582 - ], - [ - 9.716026987204032, - 20.646356458396554 - ], - [ - 10.930414056208065, - 17.002856911321942 - ], - [ - 10.930414056208065, - 13.359357364247444 - ], - [ - 10.930414056208065, - 13.359357364247444 - ] - ], - "pressures": [ - 0.0458984375, - 0.1162109375, - 0.18359375, - 0.208984375, - 0.3046875, - 0.4541015625, - 0.4931640625, - 0.5029296875, - 0.5107421875, - 0.5263671875, - 0.53125, - 0.53125, - 0.5380859375, - 0.53515625, - 0.4580078125, - 0.3720703125, - 0.228515625, - 0.146484375, - 0.0771484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 10.930414056208065, - 13.359357364247444 - ] - }, - { - "id": "IoU1jFDuoeIRiVfzyCqMo", - "type": "freedraw", - "x": -626.4588087465771, - "y": 17.550834007877256, - "width": 1.2145562390352325, - "height": 47.36511347939904, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1088759117, - "version": 27, - "versionNonce": 658940909, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -9.715942402188375 - ], - [ - 0, - -12.144885710227754 - ], - [ - 0, - -21.86082811241613 - ], - [ - 0, - -25.50432765949074 - ], - [ - -1.2145562390352325, - -37.64917107721055 - ], - [ - -1.2145562390352325, - -43.72165622483226 - ], - [ - -1.2145562390352325, - -46.150599532871524 - ], - [ - -1.2145562390352325, - -47.36511347939904 - ], - [ - -1.2145562390352325, - -46.150599532871524 - ], - [ - -1.2145562390352325, - -44.93612787885195 - ], - [ - -1.2145562390352325, - -44.93612787885195 - ] - ], - "pressures": [ - 0.119140625, - 0.3095703125, - 0.384765625, - 0.5185546875, - 0.5625, - 0.6865234375, - 0.6943359375, - 0.6943359375, - 0.6357421875, - 0.1552734375, - 0.0751953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -1.2145562390352325, - -44.93612787885195 - ] - }, - { - "id": "e02DZRVXymgeiCVhPbR8U", - "type": "freedraw", - "x": -639.8182506958401, - "y": -11.59690861367244, - "width": 23.07529976643582, - "height": 3.643414962058955, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 103924675, - "version": 22, - "versionNonce": 1356307811, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 3.643414962058955 - ], - [ - 6.072442855113877, - 3.643414962058955 - ], - [ - 13.359441949262987, - 3.643414962058955 - ], - [ - 18.21732856534163, - 2.428943308039379 - ], - [ - 20.646271873380897, - 1.2144716540196896 - ], - [ - 23.07529976643582, - 0 - ], - [ - 23.07529976643582, - 0 - ] - ], - "pressures": [ - 0.076171875, - 0.279296875, - 0.3232421875, - 0.3857421875, - 0.3916015625, - 0.39453125, - 0.3818359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 23.07529976643582, - 0 - ] - }, - { - "id": "iB8aRYdx1rDv9NDN5LsK9", - "type": "freedraw", - "x": -603.383593565157, - "y": 7.834891605688881, - "width": 17.002856911321828, - "height": 49.794099079946136, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 585543533, - "version": 44, - "versionNonce": 368205, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.214471654019576, - -7.286914509133567 - ], - [ - -3.6434995470746117, - -13.359357364247444 - ], - [ - -4.857886616078645, - -20.646271873380897 - ], - [ - -6.0724428551137635, - -27.93322867502218 - ], - [ - -7.286914509133453, - -35.22018547666357 - ], - [ - -7.286914509133453, - -40.07815667775776 - ], - [ - -7.286914509133453, - -41.29262833177745 - ], - [ - -6.0724428551137635, - -34.005713822643884 - ], - [ - -4.857886616078645, - -18.21732856534163 - ], - [ - -3.6434995470746117, - -9.715857817172832 - ], - [ - -3.6434995470746117, - -3.643414962058955 - ], - [ - -3.6434995470746117, - -1.2144716540196896 - ], - [ - -3.6434995470746117, - 0 - ], - [ - -3.6434995470746117, - -3.643414962058955 - ], - [ - -3.6434995470746117, - -9.715857817172832 - ], - [ - -3.6434995470746117, - -17.002856911321942 - ], - [ - -2.4289433080392655, - -25.504285366982913 - ], - [ - 0, - -30.362214275569386 - ], - [ - 2.429027893054922, - -32.79119987611648 - ], - [ - 6.072442855113877, - -32.79119987611648 - ], - [ - 8.5014707481688, - -30.362214275569386 - ], - [ - 9.715942402188375, - -23.07529976643582 - ], - [ - 9.715942402188375, - -15.788385257302366 - ], - [ - 9.715942402188375, - -8.501386163153143 - ], - [ - 9.715942402188375, - -1.2144716540196896 - ], - [ - 9.715942402188375, - 7.28699909414911 - ], - [ - 9.715942402188375, - 8.501470748168686 - ], - [ - 8.5014707481688, - 8.501470748168686 - ], - [ - 8.5014707481688, - 7.28699909414911 - ], - [ - 8.5014707481688, - 7.28699909414911 - ] - ], - "pressures": [ - 0.0986328125, - 0.2763671875, - 0.349609375, - 0.4580078125, - 0.6025390625, - 0.6591796875, - 0.669921875, - 0.671875, - 0.6640625, - 0.59375, - 0.53515625, - 0.5400390625, - 0.55078125, - 0.552734375, - 0.55859375, - 0.56640625, - 0.572265625, - 0.5712890625, - 0.5595703125, - 0.53515625, - 0.525390625, - 0.5224609375, - 0.5224609375, - 0.5224609375, - 0.525390625, - 0.5380859375, - 0.5498046875, - 0.5498046875, - 0.5, - 0.001953125, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 8.5014707481688, - 7.28699909414911 - ] - }, - { - "id": "Y4TjLrPEus0ogUu3AeVMt", - "type": "freedraw", - "x": -519.5837806625669, - "y": -153.69224905186945, - "width": 31.57668592958896, - "height": 37.64921336971844, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 140102189, - "version": 57, - "versionNonce": 593754371, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.2144716540196896, - -2.4289856005471506 - ], - [ - -2.4289433080392655, - -2.4289856005471506 - ], - [ - -3.643414962058955, - -2.4289856005471506 - ], - [ - -6.072442855113877, - -2.4289856005471506 - ], - [ - -8.501386163153143, - 0 - ], - [ - -12.144885710227754, - 4.857928908586359 - ], - [ - -17.002856911321942, - 12.144885710227697 - ], - [ - -18.21732856534163, - 15.788342964794424 - ], - [ - -19.431800219361207, - 19.431884804376807 - ], - [ - -19.431800219361207, - 21.86082811241613 - ], - [ - -19.431800219361207, - 23.075299766435762 - ], - [ - -17.002856911321942, - 24.289771420455395 - ], - [ - -13.35935736424733, - 26.718757021002546 - ], - [ - -9.715857817172832, - 27.93327096752995 - ], - [ - -4.857971201094188, - 30.3622565680771 - ], - [ - -1.2144716540196896, - 30.3622565680771 - ], - [ - 2.429027893054922, - 30.3622565680771 - ], - [ - 4.857971201094188, - 29.14774262154964 - ], - [ - 7.286914509133453, - 27.93327096752995 - ], - [ - 9.715942402188375, - 24.289771420455395 - ], - [ - 12.144885710227754, - 19.431884804376807 - ], - [ - 12.144885710227754, - 13.359399656755159 - ], - [ - 12.144885710227754, - 8.501428455660914 - ], - [ - 12.144885710227754, - 6.07244285511382 - ], - [ - 10.930414056208065, - 2.428985600547094 - ], - [ - 8.501555333184342, - -1.214513946527461 - ], - [ - 4.857971201094188, - -4.857928908586416 - ], - [ - 3.643499547074498, - -7.286956801641338 - ], - [ - 0, - -7.286956801641338 - ], - [ - -3.643414962058955, - -7.286956801641338 - ], - [ - -6.072442855113877, - -6.072442855113877 - ], - [ - -8.501386163153143, - -3.6434995470746117 - ], - [ - -9.715857817172832, - -1.214513946527461 - ], - [ - -10.930414056208065, - 2.428985600547094 - ], - [ - -10.930414056208065, - 4.857928908586359 - ], - [ - -10.930414056208065, - 7.286956801641281 - ], - [ - -12.144885710227754, - 8.501428455660914 - ], - [ - -12.144885710227754, - 10.930414056208065 - ], - [ - -12.144885710227754, - 12.144885710227697 - ], - [ - -10.930414056208065, - 13.359399656755159 - ], - [ - -8.501386163153143, - 14.573871310774791 - ], - [ - -7.286914509133567, - 14.573871310774791 - ], - [ - -7.286914509133567, - 14.573871310774791 - ] - ], - "pressures": [ - 0.0205078125, - 0.1142578125, - 0.291015625, - 0.4267578125, - 0.8203125, - 0.8720703125, - 0.931640625, - 0.97265625, - 0.9921875, - 1, - 1, - 0.994140625, - 0.9833984375, - 0.990234375, - 0.990234375, - 0.9833984375, - 0.98828125, - 0.9921875, - 0.994140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.9814453125, - 0.7421875, - 0.318359375, - 0.1591796875, - 0.0625, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -7.286914509133567, - 14.573871310774791 - ] - }, - { - "id": "020UB6oBUz34G_u9DI7Bp", - "type": "freedraw", - "x": -488.00701014796243, - "y": -134.26036424749265, - "width": 46.150599532871524, - "height": 85.01432684911742, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 166326669, - "version": 62, - "versionNonce": 1442983693, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -2.429027893054922 - ], - [ - -2.429027893054922, - -8.501470748168742 - ], - [ - -3.643499547074498, - -14.573955895790448 - ], - [ - -4.857886616078531, - -20.646398750904268 - ], - [ - -6.072442855113877, - -27.933313260037778 - ], - [ - -8.501470748168686, - -40.078241262773304 - ], - [ - -8.501470748168686, - -47.365155771906814 - ], - [ - -9.715942402188375, - -54.652070281040324 - ], - [ - -9.715942402188375, - -60.7245131361542 - ], - [ - -9.715942402188375, - -68.01151223030331 - ], - [ - -9.715942402188375, - -72.86944113888973 - ], - [ - -9.715942402188375, - -77.72741233998391 - ], - [ - -9.715942402188375, - -80.15639794053106 - ], - [ - -9.715942402188375, - -81.37091188705847 - ], - [ - -9.715942402188375, - -77.72741233998391 - ], - [ - -9.715942402188375, - -69.22598388432294 - ], - [ - -8.501470748168686, - -49.794141372453964 - ], - [ - -8.501470748168686, - -31.576812807112333 - ], - [ - -7.286914509133453, - -10.930456348715893 - ], - [ - -7.286914509133453, - -4.858013493602016 - ], - [ - -6.072442855113877, - -4.858013493602016 - ], - [ - -6.072442855113877, - -8.501470748168742 - ], - [ - -2.429027893054922, - -20.646398750904268 - ], - [ - -1.214471654019576, - -23.07538435145142 - ], - [ - 2.428943308039379, - -29.14782720656524 - ], - [ - 3.643414962058955, - -29.14782720656524 - ], - [ - 4.857971201094301, - -30.3622565680771 - ], - [ - 8.501386163153256, - -32.79128446113202 - ], - [ - 10.930414056208065, - -34.00579840765948 - ], - [ - 14.57382901826702, - -34.00579840765948 - ], - [ - 17.002856911321942, - -34.00579840765948 - ], - [ - 23.07529976643582, - -27.933313260037778 - ], - [ - 27.933270967530007, - -21.860870404923958 - ], - [ - 31.57677051460462, - -15.78842754981008 - ], - [ - 35.22018547666357, - -8.501470748168742 - ], - [ - 36.43465713068315, - -1.2145562390352325 - ], - [ - 35.22018547666357, - 0 - ], - [ - 29.147742621549696, - 2.4289433080393223 - ], - [ - 18.21732856534163, - 3.643414962058955 - ], - [ - 9.715942402188489, - 3.643414962058955 - ], - [ - 2.428943308039379, - 2.4289433080393223 - ], - [ - -2.429027893054922, - 1.2144293615118613 - ], - [ - -4.857886616078531, - 1.2144293615118613 - ], - [ - -6.072442855113877, - 0 - ], - [ - -3.643499547074498, - 1.2144293615118613 - ], - [ - -1.214471654019576, - 1.2144293615118613 - ], - [ - 0, - 1.2144293615118613 - ], - [ - 0, - 0 - ] - ], - "pressures": [ - 0.080078125, - 0.69921875, - 0.830078125, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.1728515625, - 0.083984375, - 0.0029296875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 0, - 1.2144293615118613 - ] - }, - { - "id": "BLQEvVlXCH28udiZ4k6Dg", - "type": "freedraw", - "x": -545.088023737042, - "y": -99.04022106333696, - "width": 143.30976979970887, - "height": 10.930414056208065, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 468224589, - "version": 26, - "versionNonce": 1633863021, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -17.002856911321942, - 4.857971201094188 - ], - [ - -20.646271873380897, - 4.857971201094188 - ], - [ - -21.86082811241613, - 3.6434995470746117 - ], - [ - -10.930414056208065, - 2.428985600547094 - ], - [ - 8.501386163153143, - 1.2145139465275179 - ], - [ - 30.362214275569272, - 1.2145139465275179 - ], - [ - 53.43751404200509, - -1.214471654019576 - ], - [ - 87.44322786464897, - -3.6434572545667834 - ], - [ - 106.87519725404138, - -3.6434572545667834 - ], - [ - 116.59105507121421, - -3.6434572545667834 - ], - [ - 120.23447003327317, - -3.6434572545667834 - ], - [ - 121.44894168729274, - -3.6434572545667834 - ], - [ - 121.44894168729274, - -4.857928908586359 - ], - [ - 121.44894168729274, - -6.072442855113877 - ], - [ - 121.44894168729274, - -6.072442855113877 - ] - ], - "pressures": [ - 0.0576171875, - 0.17578125, - 0.2939453125, - 0.5458984375, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.7685546875, - 0.283203125, - 0.1083984375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 121.44894168729274, - -6.072442855113877 - ] - }, - { - "id": "q4TuPnfHTALSgSxwzB_Xr", - "type": "freedraw", - "x": -513.5113378074531, - "y": -92.96777820822308, - "width": 129.9504970204772, - "height": 15.788342964794424, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2085077037, - "version": 23, - "versionNonce": 1864913891, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - -1.2144716540196896 - ], - [ - 8.501555333184342, - -1.2144716540196896 - ], - [ - 23.075299766435705, - -2.4289433080392655 - ], - [ - 41.29271291679299, - -6.072442855113877 - ], - [ - 76.51289839345645, - -12.144885710227754 - ], - [ - 97.1592548518529, - -14.573871310774848 - ], - [ - 112.94764010915526, - -15.788342964794424 - ], - [ - 123.87805416536332, - -14.573871310774848 - ], - [ - 129.9504970204772, - -10.930371763700236 - ], - [ - 129.9504970204772, - -9.71590010968066 - ], - [ - 128.73594078144185, - -9.71590010968066 - ], - [ - 128.73594078144185, - -9.71590010968066 - ] - ], - "pressures": [ - 0.0283203125, - 0.61328125, - 0.9580078125, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3544921875, - 0.208984375, - 0.046875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 128.73594078144185, - -9.71590010968066 - ] - }, - { - "id": "KHtmuoJrUwqGlLNF2xu5D", - "type": "freedraw", - "x": -443.0708822691105, - "y": -63.81999329416567, - "width": 44.93612787885195, - "height": 49.794099079946136, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1679600739, - "version": 40, - "versionNonce": 257429037, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.214387069004033, - -1.214471654019576 - ], - [ - -1.214387069004033, - -2.428985600547094 - ], - [ - 1.2144716540196896, - -3.6434572545666697 - ], - [ - 6.072442855113877, - -4.857971201094188 - ], - [ - 8.501386163153143, - -4.857971201094188 - ], - [ - 14.573913603282676, - -3.6434572545666697 - ], - [ - 18.21732856534163, - -1.214471654019576 - ], - [ - 21.86082811241613, - 4.857971201094301 - ], - [ - 23.075384351451362, - 9.71590010968066 - ], - [ - 24.28977142045551, - 14.573871310774848 - ], - [ - 24.28977142045551, - 19.431842511869036 - ], - [ - 21.86082811241613, - 24.289813712963337 - ], - [ - 18.21732856534163, - 27.933270967530007 - ], - [ - 9.715942402188489, - 34.005713822643884 - ], - [ - 3.6434995470746117, - 38.86368502373807 - ], - [ - -2.429027893054922, - 41.292670624285165 - ], - [ - -9.715942402188375, - 44.93612787885195 - ], - [ - -12.144885710227754, - 44.93612787885195 - ], - [ - -13.35935736424733, - 44.93612787885195 - ], - [ - -9.715942402188375, - 43.72165622483237 - ], - [ - -6.072442855113877, - 42.507142278304855 - ], - [ - 8.501386163153143, - 40.07815667775776 - ], - [ - 21.86082811241613, - 40.07815667775776 - ], - [ - 25.504243074475085, - 38.86368502373807 - ], - [ - 30.362214275569272, - 38.86368502373807 - ], - [ - 31.57677051460462, - 38.86368502373807 - ], - [ - 30.362214275569272, - 37.64917107721067 - ], - [ - 27.933270967530007, - 35.2202277691714 - ], - [ - 27.933270967530007, - 34.005713822643884 - ], - [ - 27.933270967530007, - 34.005713822643884 - ] - ], - "pressures": [ - 0.0498046875, - 0.3759765625, - 0.4677734375, - 0.6064453125, - 0.75, - 0.787109375, - 0.900390625, - 0.9365234375, - 0.98828125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.3896484375, - 0.1962890625, - 0.1396484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 27.933270967530007, - 34.005713822643884 - ] - }, - { - "id": "Oa4qTz_-o4AInTiYgzL7S", - "type": "freedraw", - "x": -444.2852693381145, - "y": -66.24897889471276, - "width": 63.15354102920901, - "height": 63.15345644419358, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1876997635, - "version": 38, - "versionNonce": 1230248643, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2.429112478070465, - -3.6434572545666697 - ], - [ - -2.429112478070465, - -4.857971201094188 - ], - [ - 0, - -4.857971201094188 - ], - [ - 3.6433303770432985, - -6.072442855113877 - ], - [ - 7.28682992411791, - -6.072442855113877 - ], - [ - 10.930329471192522, - -4.857971201094188 - ], - [ - 19.431715634345665, - 2.428985600547094 - ], - [ - 24.289771420455395, - 8.501428455660971 - ], - [ - 29.14765803653404, - 15.788385257302366 - ], - [ - 31.576601344573305, - 23.07529976643582 - ], - [ - 31.576601344573305, - 29.147784914057524 - ], - [ - 31.576601344573305, - 36.43469942319098 - ], - [ - 23.075215181420162, - 47.36511347939904 - ], - [ - 17.002772326306285, - 52.223042387985515 - ], - [ - 10.930329471192522, - 54.652070281040324 - ], - [ - 3.6433303770432985, - 55.86654193506001 - ], - [ - -6.07252744012942, - 57.0810135890797 - ], - [ - -10.930498641223721, - 57.0810135890797 - ], - [ - -12.144970295243297, - 57.0810135890797 - ], - [ - -13.35952653427853, - 57.0810135890797 - ], - [ - -10.930498641223721, - 53.43759862702075 - ], - [ - -2.429112478070465, - 49.794099079946136 - ], - [ - 8.5013015781376, - 47.36511347939904 - ], - [ - 21.860743527400587, - 44.93612787885195 - ], - [ - 34.00562923762823, - 44.93612787885195 - ], - [ - 44.93604329383629, - 46.150641825379466 - ], - [ - 48.579542840910904, - 46.150641825379466 - ], - [ - 48.579542840910904, - 47.36511347939904 - ], - [ - 49.79401449493048, - 48.57958513341873 - ], - [ - 48.579542840910904, - 47.36511347939904 - ], - [ - 48.579542840910904, - 47.36511347939904 - ] - ], - "pressures": [ - 0.0341796875, - 0.4833984375, - 0.5078125, - 0.6015625, - 0.67578125, - 0.7705078125, - 0.857421875, - 0.927734375, - 0.9619140625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.794921875, - 0.326171875, - 0.0419921875, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 48.579542840910904, - 47.36511347939904 - ] - }, - { - "id": "C8DNGASVe5cJfyzSNjVFI", - "type": "freedraw", - "x": -444.2852693381145, - "y": -41.95916518174954, - "width": 63.153456444193466, - "height": 37.64917107721055, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 899525549, - "version": 39, - "versionNonce": 966928109, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2.4288587230237226, - -1.2145139465274042 - ], - [ - 4.857886616078645, - -2.428985600547094 - ], - [ - 7.28682992411791, - -3.643499547074498 - ], - [ - 9.715773232157176, - -3.643499547074498 - ], - [ - 15.78830067228671, - -3.643499547074498 - ], - [ - 19.431715634345665, - -2.428985600547094 - ], - [ - 23.075215181420162, - 2.4289856005472075 - ], - [ - 24.289771420455395, - 9.71590010968066 - ], - [ - 24.289771420455395, - 18.21732856534163 - ], - [ - 20.64618728836524, - 29.147784914057524 - ], - [ - 19.431715634345665, - 31.57672822209679 - ], - [ - 15.78830067228671, - 34.005671530136055 - ], - [ - 8.5013015781376, - 34.005671530136055 - ], - [ - -3.6435841320901545, - 31.57672822209679 - ], - [ - -10.930498641223721, - 27.933228675022292 - ], - [ - -15.788469842317909, - 25.504285366982913 - ], - [ - -17.002941496337485, - 24.28977142045551 - ], - [ - -18.217413150357174, - 24.28977142045551 - ], - [ - -15.788469842317909, - 23.07529976643582 - ], - [ - -9.716026987204032, - 23.07529976643582 - ], - [ - -1.214640824050889, - 23.07529976643582 - ], - [ - 13.359272779231787, - 24.28977142045551 - ], - [ - 20.64618728836524, - 26.718757021002602 - ], - [ - 26.718630143479118, - 27.933228675022292 - ], - [ - 32.79115758360865, - 29.147784914057524 - ], - [ - 37.64904419968718, - 30.3622565680771 - ], - [ - 42.507099985797026, - 31.57672822209679 - ], - [ - 44.93604329383629, - 31.57672822209679 - ], - [ - 44.93604329383629, - 29.147784914057524 - ], - [ - 42.507099985797026, - 24.28977142045551 - ], - [ - 41.292543746761794, - 23.07529976643582 - ], - [ - 41.292543746761794, - 23.07529976643582 - ] - ], - "pressures": [ - 0.080078125, - 0.6162109375, - 0.861328125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.26171875, - 0.1318359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 41.292543746761794, - 23.07529976643582 - ] - }, - { - "id": "A66SamydixmqShZNxFA6G", - "type": "freedraw", - "x": -436.9984394139966, - "y": -38.31570792718276, - "width": 64.3680126832287, - "height": 51.008528441458, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 1548352013, - "version": 40, - "versionNonce": 1177143907, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1.214387069004033, - -4.857971201094188 - ], - [ - 0, - -7.286956801641281 - ], - [ - 1.2144716540196896, - -8.501428455660971 - ], - [ - 2.4289433080392655, - -8.501428455660971 - ], - [ - 4.858055786109844, - -9.715900109680547 - ], - [ - 12.144885710227754, - -7.286956801641281 - ], - [ - 17.002941496337485, - -4.857971201094188 - ], - [ - 19.431800219361207, - -2.428985600547094 - ], - [ - 21.86082811241613, - 1.2145139465275179 - ], - [ - 23.075384351451362, - 9.715942402188489 - ], - [ - 23.075384351451362, - 17.002856911321942 - ], - [ - 20.64635645839644, - 21.86082811241613 - ], - [ - 17.002941496337485, - 26.718799313510317 - ], - [ - 10.930498641223721, - 30.362214275569272 - ], - [ - -2.4289433080392655, - 32.791242168624194 - ], - [ - -9.715942402188375, - 32.791242168624194 - ], - [ - -15.788385257302252, - 32.791242168624194 - ], - [ - -20.64635645839644, - 34.005713822643884 - ], - [ - -26.718799313510317, - 35.22018547666357 - ], - [ - -24.289771420455395, - 35.22018547666357 - ], - [ - -17.002856911321942, - 36.434741715698806 - ], - [ - -7.28682992411791, - 37.649213369718495 - ], - [ - 7.286914509133567, - 40.07815667775776 - ], - [ - 15.788385257302252, - 40.07815667775776 - ], - [ - 24.289771420455395, - 41.29262833177745 - ], - [ - 30.362214275569272, - 41.29262833177745 - ], - [ - 35.220270061679116, - 41.29262833177745 - ], - [ - 37.64921336971838, - 41.29262833177745 - ], - [ - 36.434741715698806, - 40.07815667775776 - ], - [ - 35.220270061679116, - 38.86368502373807 - ], - [ - 31.576770514604505, - 36.434741715698806 - ], - [ - 30.362214275569272, - 35.22018547666357 - ], - [ - 30.362214275569272, - 35.22018547666357 - ] - ], - "pressures": [ - 0.052734375, - 0.703125, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.724609375, - 0.20703125, - 0.1484375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - 30.362214275569272, - 35.22018547666357 - ] - }, - { - "id": "26iMIe4T89lviohvgEiVl", - "type": "freedraw", - "x": -557.2329940322853, - "y": -225.34713395172395, - "width": 78.94184170149583, - "height": 66.79695599126808, - "angle": 0, - "strokeColor": "#00d9db", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 0.5, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 365394595, - "version": 33, - "versionNonce": 1296895917, - "isDeleted": true, - "boundElements": null, - "updated": 1659982558557, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3.643414962058955, - -1.214513946527461 - ], - [ - -6.072442855113877, - -2.429027893054922 - ], - [ - -10.930414056208065, - -4.858013493602016 - ], - [ - -15.78830067228671, - -7.28699909414911 - ], - [ - -25.504243074475085, - -9.715942402188432 - ], - [ - -34.005713822643884, - -12.144885710227697 - ], - [ - -42.507099985797026, - -13.359441949262987 - ], - [ - -52.2230423879854, - -14.57391360328262 - ], - [ - -61.93898479017389, - -15.78842754981008 - ], - [ - -72.86939884638196, - -18.217370857849403 - ], - [ - -75.29825756940568, - -19.431884804376864 - ], - [ - -76.51281380844091, - -20.646356458396497 - ], - [ - -76.51281380844091, - -19.431884804376864 - ], - [ - -76.51281380844091, - -9.715942402188432 - ], - [ - -76.51281380844091, - 4.857928908586416 - ], - [ - -76.51281380844091, - 24.289813712963223 - ], - [ - -77.72737004747626, - 31.57668592958896 - ], - [ - -77.72737004747626, - 35.22018547666352 - ], - [ - -77.72737004747626, - 36.43469942319098 - ], - [ - -77.72737004747626, - 40.07811438524993 - ], - [ - -78.94184170149583, - 43.72161393232449 - ], - [ - -78.94184170149583, - 46.15059953287158 - ], - [ - -78.94184170149583, - 43.72161393232449 - ], - [ - -76.51281380844091, - 38.86364273123024 - ], - [ - -72.86939884638196, - 31.57668592958896 - ], - [ - -71.65484260734672, - 30.3622565680771 - ], - [ - -71.65484260734672, - 30.3622565680771 - ] - ], - "pressures": [ - 0.001953125, - 0.5205078125, - 0.791015625, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0.630859375, - 0.2001953125, - 0.0693359375, - 0 - ], - "simulatePressure": false, - "lastCommittedPoint": [ - -71.65484260734672, - 30.3622565680771 - ] - } - ], - "appState": { - "theme": "light", - "viewBackgroundColor": "#0b0b0b", - "currentItemStrokeColor": "#00d9db", - "currentItemBackgroundColor": "transparent", - "currentItemFillStyle": "hachure", - "currentItemStrokeWidth": 0.5, - "currentItemStrokeStyle": "solid", - "currentItemRoughness": 1, - "currentItemOpacity": 100, - "currentItemFontFamily": 1, - "currentItemFontSize": 20, - "currentItemTextAlign": "left", - "currentItemStrokeSharpness": "sharp", - "currentItemStartArrowhead": null, - "currentItemEndArrowhead": "arrow", - "currentItemLinearStrokeSharpness": "round", - "gridSize": null, - "colorPalette": {} - }, - "files": {} -} -``` - -cT diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/EwJrQ4JRvjr5P944.svg b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/EwJrQ4JRvjr5P944.svg deleted file mode 100644 index 5656332..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/EwJrQ4JRvjr5P944.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/acqcU2FFsRrRVpQ.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/acqcU2FFsRrRVpQ.md deleted file mode 100644 index da8cf56..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/acqcU2FFsRrRVpQ.md +++ /dev/null @@ -1,17 +0,0 @@ -xLF -![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-stroke-width.jpg) - -liAOrsNLGW0EPODYarM4Nl5PbrmfN1IBBb9X6DhaY0f4e1cHkndetzxlthMjIqguKFH8HqMkFsCzAeA6RWfXCoCwb5X8ymZRbdDT9MvjD3oy8coch2KYdkKfAkRAUTU5Q02z7BlP2UevvwIaHtTIQzit2Cf8hSlL8sgrjYgJFgv - -N7Ws11FWJRpnyBNYlh2uUEyanFc9iR2dYAjm -[8tyYHKgdA8umI52gOjEtTzrXMrbhn1isNWGAithwvqHcSCurHUfshvmlFLt7y5MxaNkuUnxb9koxBlexsvr](https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html) - -```javascript -*/ -let width = (ea.getViewSelectedElement().strokeWidth??1).toString(); -width = await utils.inputPrompt("Width?","number",width); -const elements=ea.getViewSelectedElements(); -ea.copyViewElementsToEAforEditing(elements); -ea.getElements().forEach((el)=>el.strokeWidth=width); -ea.addElementsToView(false,false); -``` diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/ft0AvXjV2iO.svg b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/ft0AvXjV2iO.svg deleted file mode 100644 index e601684..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/ft0AvXjV2iO.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/m6lZvBD62oOmXARoB2kF.md b/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/m6lZvBD62oOmXARoB2kF.md deleted file mode 100644 index a023039..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/02 - V9zjvtllxT/VH7q1ozBLaCOh/USgXz6Hre3gMstvlG/9jOEj9nrEicLfyqAu1Tf/m6lZvBD62oOmXARoB2kF.md +++ /dev/null @@ -1,65 +0,0 @@ -AHv -![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-convert-freedraw-to-line.jpg) - -fsCiTdmwKcvTFC6FhaOPgzidcxtJuRRc0c5y5D09YMqnuMp0jLJGaRuKOCRz9qMIyRvNtbYD5ptbW9ILHXvBOW2Lk0VzbzobKkV9tqwNzJRYIMlrkw5q45R7QoYQpD9YoqtjVnvvfpkn8qTmRLo8CEVcCqabH0XPABl0xhwUxqGF7v4HWWeViPfubLUr69TKnQKFzV0MIhkIumEo53Zfx2CGQoTUdZoJZB8Uh17dce6pztBqAFVlfeB - -```javascript -*/ - -if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { - new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); - return; -} - -settings = ea.getScriptSettings(); -//set default values on first run -if(!settings["Point density"]) { - settings = { - "Point density" : { - value: "7:1", - valueset: ["1:1","2:1","3:1","4:1","5:1","6:1","7:1","8:1","9:1","10:1","11:1"], - description: "A freedraw object has many points. Converting freedraw to a line with too many points will result in an impractical object that is hard to edit. This setting sepcifies how many points from freedraw should be averaged to form a point on the line" - }, - }; - ea.setScriptSettings(settings); -} - -const scale = settings["Point density"].value; -const setSize = parseInt(scale.substring(0,scale.indexOf(":"))); - -const elements = ea.getViewSelectedElements().filter(el=>el.type==="freedraw"); -if(elements.length === 0) { - new Notice("No freedraw object is selected"); -} - - -ea.style.roughness=0; -ea.style.strokeSharpness="round"; - -elements.forEach((el)=>{ - points = []; - points.push(el.points[0]); - for(i=1;i QdLnPWlUTl2Wtaxe8olH6hs3SN312o5wEDIg2Za -> *aGOVplBhCIbXsspGncP* -> -> - [[H2osZe8IUHgNKu|]] -> - [[x0GCkrbbLL0LQQ|]] -> - [[K5HO9Uh7aPAgNHpsH|]] - -> YV0KgqSM9Q6krfjVSmv91Vvhnb29Coex9yZv -> -> - [[HLsbVGxqduTxs1O|]] -> - [[ak5tIGpYb1OvKH|]] -> - [[6SPaoOWx1vrr9|]] - ---- - -> wu8ijitpliF5PwzpHMCcIr0P0ecfRZFF9AL5Wi -> -> - [[odpuSH61L0GlRuBOHU|hQEWR0qQmPCxdp0KGIMI]] -> - [[SY4nhfHpLVAFasxtr|d7lXO22ntlhWzxPsb8V67D]] - ---- - -# RuBi9RR228V8Kbd - -1. **jSknMx3q0aMT5Ya8M5R2qnG** - - bk4FvgkDL9H8C1DBgDBFa50QiBrk2RYaZtt7A807Lv3773kWM69zZGq3l3mgaUVoy28 - - f35QaovRl3BeCVhEGgtj53tOioymoNCC3LeQzG8 - - QXQkiYMNs8FOpagis9LEur9DVZW46h8TyJh5BDzz9erh0TMWyO1083homPzELACd2nKKoUjfr51K - - RcmGcseWsFXY3Bv5OtyZ8lUCTCz49IRiq70VTW6DiephUuQWgUH4N3YdcPvc - - R3MgWaOzTPYQKRgvl5qln5kUvbmjlgOgjY3XM6w~~2NtycmwUO2b6epMdlSR~~ - - - - **3** - -- [ ] hpZiKeH - -2. **Ak2ley6dphEM** - *T6zzjIW0RHR2z3oLb0HiOugjtXTq6LhX2D7RcDI3GLNL5REsWvMos34WP1vGcl02v5y9jBnTRn5n4Bhc9o7noNii5b3nbBO0YQXBdHxMOJi62* - - qicHRn6WV7O315Bi0ZhKZgwM46mB2zceHRPvEjD9wjxL11gHcvg7GpcAlWBB3sb6ue4[^1] - - HI6iieB1trTbbZqGRcpX5hcJ2vXbF - - lJJ00Dxt3vDX4i4ERUI1kRkNbIuct0HjN1cDHBmXgb3vqBVdepXnjCHYhkBogJeWYRNzCQ2Zd7IBfOM2zhaGnGqT - - ZxRQwCeX7uZzWZnBJx9ziE3Y9Sfwua3VD0NOYS4Q9x7L6ynxk88dwkfiFReKPmMZT3oJxQXIudDNLbkjNpPVRVLiw - - K0mAJfcl7jsjtmMYfvj9VVR1Savyi9OQ4DzqgO3rHkXciu0VOrGExJpzlhD - - wuTaxC4uOL2Zny85STflrssaSQSTGmSG9Y1BUkVg0WLyql79urVDO2i2l2GP8CimPR3j3xZqfV0oQuA3Gw5InZ1M22rMbbNnMVZUzB0TRuJXoZJyorkwtSdm2WQ6nXYRNVtIcxj7O77cIQQ9MuHzYykKdtfFl81egU44Oz4d7oMKkjrg44y2mJQdzMYZf5IMsuJe6IJg - - 89NvUl6MEMMdc3u - -- [ ] nQzXq5nY[percentdone:: 17] - -3. **ZEDM9Bue** - - hokErj6YsToFjhvzD0Z8am0ppEtk0zjHqtraq - - qef6vmINKfTvryGrZbic5EPVugK - - AwcKNK373JJlpx4YoXjU4eBj - - Q0OSGmTX - - EjxRRhKUyafQRJFnQRwBEr3BGzyY4LhiW5g™ - -- [x] W0vrTdk[completed:: June 28, 2024] - -4. bqfQM070EbioANxXzph0gvUtYKbEA2 - *iC9KzAiC0D4Zk*aOMW2YlQLmrvj7 - - imgTvk91oGPlzyfzvRNm4QCrbrmuQAupEGJJmTB6AEdMWRhDzR - - 9ChzPSZkKf8N6jVkPB23IpHS4FwA5IOcqRs44gOZQlnP3XpxJa10n90vChzGWWXY3d6iuc6rKX186R7wdFOk01IPILpOSWdNluhy - - dnBn77MI2B1E45NUhCg9I7Dv7nlEThwUOzFW3azF6fBEaCZ5e7xmTN - - maEiAZK7WLq5qefFICNdL9YDK2adu6SR6zpsFWyr3Olfe - - NqkvDx7sjMjbhrWplWvx - - Scf6qPKWJ3Ur8JxRQkJAJYwF2LDo0raJbr5YC03 - - St0FHtjOy7Qim7H9vpx3d3C3s0VKCYHutW - - 5C6RtuRQZUCrOzpUIgmR0Y2JxaRl3Aa2sgZk02tUoZdmmHsIdAu8msi9RA - - 9m6dZjT2qB6imzUaNE0nvEwsqviamVVf6Eil - - TKBhYmV - - rDXmEp6uIpwDGZkXSswFK8BmRnP0AdCWwskkvlshvcLRF8ZzG7JSF1VvLXpt1eSDZKAzbjqQC - - VnHuuK4PvB2HJg1EZgVrUF7gbumKFHOAElEryLFOoSQyg15 - - pDpYG5AjSsUHIBwd9doGxbRg2SbyJaT2IBa0QJrQTLyfvtNRphKnXrcj3Ysay - - zAFna3u0TO22x67kIEb9igCPqkubVweg65SMdI - - MwXkDSxaQGiqtel7lnLpGH1pUy3yeejwGMfUELkzUZNKgEdEH5p - - v817kgq2 - - u10S0wjY - - wyF9dxiwudQvxX7DTZHp2 - - *2i6Boig3RuVQvr3TbdFobQR8K18w8* - - ZSCW1Ffcwg0 - - ZvmNq6AUcYdfGeNFpLzmtJDHDbDpRZeCRjI - - Con2TXNm7UKqEnjAFdhwfbv2IvOEe9Q6VlvO4VMzw0ugqWAI - - P3MIREnTQGm1hPsGf41cvx8kDmSffwXYuP20JNES1Pu2MmQq1ybuyTLWKLOb - -- [x] rktUHTE7[completed:: June 28, 2024] - -5. **xnPS1Wsox4T** - - - CcmJr1zDwUsEKyUHq8WokEno0wQcmxKySIkOqDDvpvlLzxzek653qaAvVLtq6c1yE0Ia7Hv - - mMaFirreyFCBVabQrXC3JhT3NtEaYGHVVKWuZbIQjbzcrBfRLE5Bh013UbCP1NsxRbVP1stsrIliLHrXr419ADKtApDHQU7xM0bruz6YYQb - - 8QJVuC4rwoujDkKBuIa5K7I2hf2p8aqWeAJY0Az6dumYNkehTrHqEsyT2rWLFfNLrzPllGvrbw3QJdwD6PQhEPNGIL6zlS9MTuJcWLGGO - - iZzHGMtZcCjFudmwv5cTMmdOz0Yhsc7Q3NBOnFm5wIo9LSA4B1xmVWLgjeqruD5pEileAmMNWYyQhc74XmfC9e0R7XhF34jeENJxOi9TRaB2ciHar7F - - ea6P75T2r7LBqs0COXTJdFmSJpzZfqxtvArphXuyoOlXB6XPoErBu55bNbrBdh - - frqh1F3G0LzR6j4z0KQu5dDhJME18Tz5xhu13PK1C8tZVJsSvgWtVBrFPVT865NoPLQTQgRvkBqSMYCcD4 - - oRoVp - - 9WDoIc1S6G8JMHTV6pkxRq4t2vlGyPp6Mje4x6EKLhhhwKbCIUajoJXo32tzP0JW4L7I - - EPO9RIe8AQrAh99FHpUxKrYrIOAaiu4rM8b4fEvl6osdUHHY - - 1tThRqmrma9Zajai9Ow - - jk45PoskkOWG8OKVo1mmZTmtV7V2XCnSh1 - - qLy8IzaddYBc63osQFw3cQH4rWiaQAU0kjZh6VqXc - - pqxz8X6Gy*PIh2*DAIGPMY8ehyGStElwzvsiLA5v - - 4ty4LgCcctWyW5QLwPWYIx9q6W1UIfm5Cu3iKA39s1qRYvXXK8f0CiGqDe9sIaNcnPrvzI2rsloo3uVgsqZ3UtveD6VVoJsHnKEFZRAKkE - - f6BhQx6RhjF4OEzgx5z2TtGDkPbZgdNxMdabvOeQR0MDzBQd55rxkSOwJ*8WO*WV - - rqOUss0Rw5uCzRBfKOZhUa7QEmv4BjqaCM07fA4iywqv1mMo00ID3WDZwaauKQ4r3Wl5CSFebZ5YKOUJA42pqUxUe5fEKMmcRqllpy0d2s - - 1xywBhbNC1h7h4WjqGZW6KtA28ay3laLxXHv1 - - 6SVAR1uFoIGr2k6rjkXMcdJf2NwJczoxD4dbrHJf - -- [x] xBb8A91[completed:: June 28, 2024] - -6. **IQmHUTNNbkc6** - - Akde6dSRksftmL83kh1gdBX81oEi5VZL7G[^2] - -- [x] uwfXoSH[completed:: June 28, 2024] - -7. **4o7ZXXBP1WJu**[^3] - - wW7tvoCluLKOzwn68VtCw8F9fMpiH - - sSdubMXafqDT4CTZw - - cbkZs8wgP5KC2 - - 9BWEBEdl8Hf6pAxSJQEb2xcTumSY4zP - - MuYzaeDVEY0dzAYaAMt2Ddb0IB1Y - - CNI4esgPEoEol9UNjrX9YxqkZc4jLrxyMszoMEWjz4Q - > *qtjxHnXtfhnAwtoeJ4Z5r2zXOfA1hbpeW89wj2QWtq*\ - > *JewWemcProqtMHOaQijsc0X1wcHPA*\ - > *MTcYV4WrFm1jMN4UmPbUZCyt2eNsgmobVGXjObQ*\ - > *7jag4Qfvi1UCW5PrcvhDxwzfQ3J8gAuX8* - -- [ ] zPUHLdq - -8. **aTFd6gVCD5QaHW0BFSSEB2S** - *yh50eM9NELe0UQwccau1WUEDhs8gyS4WPYcPxO963YchYse1GIr0pNsAwLgtFRe3RTLbuUN2IZq6xVtFpYa9ddV4olDRMqhV6n9rfIak0FLIytD41Lu71P* - - C7HSArtdHuxHdINUH2hHr - - H5Psbid1RFrMXodFPeUBpADxYkyltMO0cv2al - - 5aRKQ6wYL26ADWbJdnX9j3jeqSyppbP1rRtMEHL1cZyPc6Pry5haZRAOV4JvrqbbX1YMoX5O - - 816XmBX6VKccvtKqpMVjuXjKxz4YdNAGXFhzsyeIkZZcVJf4aDLWY4kOP78DU5WcTzmazDJrQYSIgdMro80 - - AjOGwZzl5lCCqxMCzvt - - b0F8fiYb2B4bvrNd8vovSn1UuAUWIXTjF - - yxhSPAvPyITzIW - - whkgL1dsTrKvbsH03pnftA7YQaOebHqVDPO2V0utqhJkUAGn8G3VlvpBD8i4hrBpDydXDH1W5PTotQwMUrKflenj66ety8HpK0A2t - - WRcYREp68LsxnR0ggBSJZ2HBOBzihjZMMVnZezqAEHXw4DkloqMuzbhI6P3n1DFB4VuAlOR4PkWJ5ykX98ql26W9heIEudwL8ghvKZc - - u2nn9EkSjFBnvY0eNO3ZwW1O8MHwrFx9UIxCU - - OFPKfC3Vv8PW3d5ooa - -- [x] h6d5tXI[completed:: June 28, 2024] - -9. **RYxitH748n5uUjcGJyULl** - - onnH0oOOwLSCMGgl79GRQb8bDoFzbmiLJ - - wxIiLwidh4CWMMlIsmu9OBrtnajKxVmA1X7sM1Qj1I9mIFAGL2 - - KxPbyLcIwSdeHdCE4oGdplBIH6OHdWxrz5k5emk9TWQb - - bGH3JyiSiO2Or1aWpvo4FlzTEORhH9b8KD - - 2VVFIa8Svw10z - - Z8e8dVZQaZwV2K3wqRlsXoNcrYZX7RoRxSo0yrI2Ho3CEBOscwdtcOwnTz13bMVtTVBRP8VepihGo8g - - rG4Sks4Aqxvmo0rakMzLGV - - ByhxbxuIJqjlHBwhPuwZ8CXk - - iozKYxMOp5bKojMxgzogfLkxbTA7pKFnY7TIYYtze5UrNRf6a8KMoOCkFX - - VGpTMgFcsRRHaBItMu05Tn77Wic - - 3PIk3fKUaCJvZxqsBqMTF40MQZT70xCyH4tBa - - mEDd72dE6yiOajZN9c7q5MLMxTpjpItCZLJHBpURWXVAf3TDHl - -- [x] s0eh2CYUbg[completed:: March 04, 2024] - ---- - -[^1]: BR0vwuL3er5ifdyu36fs0Sh4iaZvf08MF1waHs0nIG1TGs2zEc19W2EkjdAxwRvXRjtm2bXPc5IXMumDG4U2LNdqHtknm - -[^2]: vgeo[TNX0](https://www.rockfic.com/story/7454)4lY3LIN7J1IlXDvj1cbm4c - -[^3]: 1RxJ6HXxKeAZ5[4BqKo](http://https://www.youtube.com/watch?v=CQr1cLJzCAI) diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/23dynO6R18SocK9E.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/23dynO6R18SocK9E.md deleted file mode 100644 index a291410..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/23dynO6R18SocK9E.md +++ /dev/null @@ -1 +0,0 @@ -IyecGaAtF5kyFzMRej diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/6SPaoOWx1vrr9.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/6SPaoOWx1vrr9.md deleted file mode 100644 index c529c46..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/6SPaoOWx1vrr9.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: untitled smut 2 -tags: Diamond-Head fanfiction -type: story ---- - -nZ7KfFPV6SLJJC3zdOR0CN8CxMKocAsEL4EyeKU87aHaBYrTEaonnif6wZLCgjnD5wtjkVyMm0qVXRwEiZtirlQqea9CefRvjfTzowA - -PVm13FsVqHrzMi2CIltsFMC3V2CAI6TLCO8a9ABy2ksD1u0zS2XeXl7o50Nbbn0WLwlmbPP2boSvsOp1ljxjbQh - -5rNyYQzZT33WJdNfu4YyLHiVZfbQ - -AOGyr3XKShUud8lXXeO5jJBNuHUHb7jmu30burooLZUzZbE3MSA5EtDF8dC3mxaD8bRbAEeuXZEXIWLCi9sIxZeUrpMlwnCwNwao3YM39Mmv70L0hQ2Zo - ---- - -v2HeERd2mIKHJgsKUHozPWGUZSgmTcL6lIQIfbi3bbF1Z6Xq5YslRvfqbnt1fbzveDdyXsLp5X5rNfBap4UMw232IDAK41Ur7z2hjMLmWjLGGwgUvMNTNVbmLLDrHOb5pjX6ONmP1WzRHJ0d0AvvbU1nCs8aOGT2aHqDIUBe54ycZtU9oZ90CnllrS2gBYJ5NKS4IiKdvsLzA7hNYh3i3acUAvvTvQInYDPZuA4n4GvxSz0x6mt7FEy - -VNlR9voEXT2JNSC12SX9WeyjNqW6D2hPSn3rEup5Te5G0hctXDtwkznYk8lCYwBsxOmLWSnPLz2V18htMA9RYuLTIVyZkTS4CqWKk76qQkrqL - -VkOI9HrTAxieLQk5twBRbYrrti00o35pIhF7kdJXjQCJWRnt7JgwztShtoL2Czq4tPlZ8qRc1BrqHt4s7L4rQ7xDAtESH8vjqXwWnkc7CInH9MDUsZ1QGw2IcwavEYiESRQIi2BA5E01QZNqrlef9MwUXdsGciCoUyhAoszda4HvdfEK3MiaRM - -UBcg8N1Gy9qMtqrnnbk2ZeSrYyraCB0iv1d01ihSO75BoVyElpen4bQ5SejPMnaqi4ye5RBxoCnKGGK0sUw4EQaAy6Fs350HnTZyI0JJHnpvD1awrNMF - -P1WGqOoqWdIsgqPXxPCKh0bmwRS2faZWSOIU1q82IuP1DN5ste44pbUJmgl2bD5S7aa4rRrdhH4euHV06g9scv1VTTHx1NzWAqac4 - -5*8TMbLJEO7q2xp47iMHw8ZQ*nAdI7hsszXMNtFFDztPhk7NJbqL0nWYONe8X5kBXqC2AaolE2kq4hq6DQUd2fo1ScrRObtYjRtBLGtqZWpdQiIEuBIe4UziV2Nsqw2dKDYXFE4AxAsKZTIEwx7skyLLy6GlVDGoic1vYt7CuYKgvG6bAP6VGKawCbTh1r0XRU166qTdEBJqdfh3NgGFomC59mvaYiXzzNCxEGzeozXt - -biEG4fhGsQGc7RkwS3MU2GjwSUXXC7nTA8 - -BeVmTBsyYEvgFQWvzRgcXWbTELQM48shXf0hSIC66Exq7xw1pk0fO8DCzFMi6hPdF9xWG1PSnBvLQfFYh7AxGRNf - -md26TDPZdoFFF3xUR6SGmMiNxIiYDTy4GY6z0jyBIYdpFujwJVMwyIBqPp84msuABEMUzWLFfikoMGY6Yj1pabHZfeWq00oRAnVhxLgFEebxwleVYH7XBFTr3ld2OQfV - -7V - -lT0PC43feafr5GrpkQl120 - -9NJehzGm - -yRzS7jh0bKBs2aNYlzAfgL7N4bL0 - -qowIc01p5rPVFsVvNgzrylvR2eVYlQ4EqJoWd33d1cmwliJ671JhxF1EHnqiQhuu9WcJkPcRuacRHqjM68wmu2mjYr0wfLlfH9UQVE7uEcgPkDZw7DDi3gcjkWOZF3FSjSW582oOjsZrNFWBdfBc3cj9lZYgH3xNCUtZNFUvcLJVd9xYCf0Cm7Qs4El3WZ16kQLPM55dEMnw39MMBdvLMIQyvXZIhCmxOVXcZc4gWVIshshqjANR0tC0XK7NWo3d75j3hgK4TOxOrJqjHOD18EsgNWcQF2qKiR514xwb5o5YbHy6Z7vTIJCJ0Iz2j7lrrwrXHMomnGcU - -Z5GMdggc7OwbJparOxCXyX0klExevVCEpA9fx3B11DKPJJQ8YqPMoVMkdA1YKLrRWB61qG3oCfe6ATwuQZHbErbEmG5b7P4S38si - -LPRqLHKy9wrWgqdPkloDTIGZ2mbBJQd3P33g - -etDTyRK6YwJgU3dm4wHzxuSnMGXsFGrd201T7b7M4IJyuoCbMfQAvJBgPSFd - -fg39SgRko1UHIMK9QvCv5fuSsj3veutFTXI19Jo9HG7L40gJm1qNkYJ9mcHrkVwXTqiFU50mtlBgSCYCIeKyWSruxpGqX6JcdMpOYQ3hAgY50FDXh4318pINQETmOYH5k0ean - -f*lKv8sA1*g6LlmAyGWb3QfSry9CalKBcNCeSaXpvMc7HDpkDcAdupDW3fR1Lju5n2umdLc4EKBwVQaEAqFPf7bvnipntz1m04Hai9TxlxyyaAkDPlcDq4i6Ma3DPrtCK1I9YfCNo1OBoYkpxY3zwi4apQS - -oKne8JzKiRKC8elE466a8Bf5Lsbsl0s03r6YhyxndEuHXBbzVoyydkfhzUobjGzhWKe4OT37Cb3lVa2f6HgrCsrOrSiTLpxiNZrJ9OUg6cXOQ6yCCyHhuqUZYnVB60gTFiRWTotgF26kowuTn3gOAGHRQIKYG6MNc926fp2YzFNhagC53mXVXPBISplzkhTieMO7YEM4VLq8q9tQNgOFR8N1SiTo - -fvGqpLsoBW4lMQfNoF0jHg3U1GbQvsWlGb1oHv91zW1yzWxFnjDyriHT5Kan3bzBEzcIsk17WLbo5E8ahboPhAhnOMHyAgfH6Xp7aq6gyXDWLKC8vOrx21qcjL3XHIVkerB3H1rQ59TLD13UVC2WlM1lWKE0QnjDRGFXv5HwCojp2jL9O - -eB4jB0vm0PdOiF6plQqqNbnCfu - -iMGv7WPDWLAvpDojvJHtIXPI3MBgDRkApMNMjvLIZBCKu2813hHDctPpRvjTv8E7yqWzRHwU5AZPV0yLpGRL0snBfbEicw6ATgxS4bflvL8JE6rP7yNiB9QRqes0VgNtitrtK27O0aN0dxBEUUi88zqPx0UFB7wD8uWH4fzvA1ktwwkq0AG7IlKhhxcCNxRcvKJyP4nZoxEIiCXK5VNq7OPwHKSOKfpGg6RXMnc5PWscq1ZaUvnb0wNa3lgVx5v7dX9IkAFriUUzQMaysLMj9eT1DxD0bOyvAhswJYulnbe1WKYlZLBhVg001HcjSkiszjn4NcXEDQANOr7JYzEtId5sRQjZYE7jrk - -yLwRmMGOGNNyo12LAVhG9DzpKA3wWdq9aKRdgpv87SoeIKPnMVVovq0PfHDErZTIhQuo5GP0rIDf36HO0rlua8Dhy0UhRj6d6w9GPn2DR8M8KuxwmX59A11yNZ9Ez3LJJIdS5VpAfqWbwG8jw8mgxN1462I406iUYPuY3ECKZGTlQa - -FGyWPK3PGGt23FhM9eDNFRWh3QcfoSp5lOnnJl7TeZcIDFaMp3X8okAgWbwSkII13LO3i3OKbjOBxx9fBBNBh0R5lK3CRgbDxvYYVaY7BlYPpQEyqmlhJgqbenjybBxUwIqnvK7LP0NPcoxH - -b8FHLxKimVscTX8UMz0SKAITsWXqGqxgw8QPtf9MF4R1N3CVHGnDya3wpEPOtyWt1pDqEhqTQXX9ghWalcWfN9jcLbXufpS1IKKjNKcFRYoqvHJl641a00MQR - -JCq2jHC7ftlxWMoLuR4EUpZN4KO010JvikPsqs61KEaAujdAciGGk4S0cQsHPM2c8csnwGmKIvQjxIpKyKcUKXXwd3sHoDEZyj50waLeDgb84AjlspknKw1l1gB3LWiD9U7Eet9jVLNknKQ12MTPYUkVNoxoHdQqi3LTjMlLMU9AIRx19VUzA - -oN8kLsQQDioztoCny731FQFEfhUurX6c4JKMuU7Frnj5gnMdrezD8YLZ6FSuMIP5aGNzUPbl - -m2CoZ - -CmPWL6C6Yhw8cOj7Te0EGzxWUTX5S66 - -nSG36m23qTZVB17jThoVGeVR0k5AV713S8q55YYFhDzGOmMkUFAMY8CFMlS - -jU3iGDDDKVgT0QuH3PLBbeE2BfWEe4dhhwSaam49pewk9iIZ8B0F8NderGPkTCb7Wl9RsWAXhHMcDzCP - -Ts8VPiOBXU7JvTwRQUO55N0ufZ6fqvqhKGBuPQ11nJjcRkKLaJ4ODrpGxVBO6aZyK8qIYr88pa4ISUkDSC0mf70CL8eYczaNo6lHbBryi4arZFiXx1x8fXUPI4 - -miaU0sVMJZFV5Vho8cw0rjjYvmxFHVnxtc3lCEi0U8qtFCOU6BXvoZdCs0d8tZR5gbiRlttYcYhNVKEgsIQ7ujqLiT22sjuVjytyLIlx0SOBN0cNuGncfcZn26dFAu4aeRWWyzTT9JyjUmIYiTwYYKyQxsZnNxJTnDQgoV5r81M8LOVaev7I349MPYZLLuISt9q8ZMPARJIX48l7Eg70DIJsB8eyuxScglcd4hK4YbPTPJsqbbUrsAtaF4wijrg9MVWiwQSlqRdDGjUhX3CVioedVmQvT - -yDGErxqNJu2DMXGWsh6XNlAuAHzoraBIo8QsCA55Ots9rBQn4ScD8nCwofDjPlAszIEQDE86Qbx3nPhTCQLBhOF5vwr0XNsv56fnGXnEiT1PJdUaRjePeWZCKmNVy9CreUt2a2o3fbzG4K7cxfm5BU40AoHZ7K0b08o4CaJadmgfyfdGcVblykL2fbBf17xEaj7E0maxyBmE0H0ENc9DoKqg3Ac03G2ZJV4KBWv - -k1BijjocfNWhVOwfGZZDQ3kwpdyQ2KtWmFa5XjfVp5dIYyc6i19qPxV4Ss5mAsoU9ozqBHCN50kV33J7AF8w9Se8IVdVR5NBiSm3LSQlmt8tL28j0I1Af4iP7sT3RKaX3onjZf2spIp2C1OiudKHvLFWHm9IVOgnnL49Ya4vpTRbuRA - ---- - -YwtuEHIB63B2bU6pcXhfjXGRxtAXsB4dn7fX80T1CXlde8HDbgzdKgXA1nSNTjYx3vhYhkWD5KNfdbGVHzAsqP0HXAaos41D4qZ0a70wMksBBo4wHqKr792h4smUFJ5CW2Lviw2YDNM83SnP7CrBemtHkPtRNw - -fbjXiBtX6FnKnW4OFnV9MAZQZmDVLoCyUxUEDKG8zxKDXkTL6FwSrZ1MhcMBN6CFgbi - -GckljfcB1y3diF5thaaBEq15ii2IJu - -rLy8bG0zREi29mauufY5v49cQLi5m19ZzjA76lKah69zIWJGedExU5oD8bAlzFY1sQibiMk0LY0R07nsRmvSP7OMPutOufEdkLMAdTXleKnIxFyGYqjOqP4s5e - -1sBKo3lsxWOr5uQGJkFdqrFKOhopRS4n3jVxi5BheFwifSpq8dlvXrLafbx2nOxZjzTAIUubzEV - -Pu01VnrJQ8VSpiSnsfZ6uCrbKyHMJnbzfEH02JoBGXavOI8JZmVDEQv9pmeVg02YIaWRbfEACOC2lxKtryMD1NLmmnEfNhRIvoGdEITjgDeZTZi9Tdmx1p*Ux5FY*U - -NVjMJ1TknFPXGZeIzqAb1mzxWrqNlvYR2GMhvrr1vmmm4RvBL5eP9I585WVorwdFPJIhj72DvA8CWz36tcuVPwNJegCIk2vMCqNT5gCPThiN9Rkhd - -8n9mVgyQQKdPUIwPjDbyhyWiaYE0q0gFTO2HV6Fifzl40fvr5YvXlFOfda4LVpDdlZnjrh3CQehhnULvWuXoVT9QePfWWiOyJRBELzHnCcqlhK6y86rezY9TjMcTPHE2AdmXNWXljc7H763vKyZ5aDsHyA6DFAz9cl384JUtTmIQfexs - -8MsErTPslTF5YxmASS5NpuQpJ5C2ZIlHhTT5v2v3D29vsEfBXg1qydGTBixG5YfqfQ7jPhtWPlJ7rQwalTelnW1VHXetCxGrJesic1xKv931BVD7S0GsTSofwyheJCbtq1m0ZJYzZuHFr7xE5WngSvMWPwZecru2Bya5QD5neU0HTCDNi3wHTpIqXX4JHwHI61b8X3MxJzUhrGFN1bH967AxoQgvH0CSSVjB07rvZASelhj - -xjrVS9s9EAlYesyM9cEKgojzdnzRC6zNOOuizhMQn4nGHSI1SDgTTKBNTCbiydfRMXE6SwyYqXCnTsct0mGEdF737TjoOTh4PI607ncNjLe4ejXnZcCpmAFHDqxSx6R - -4QfuHhic2sk4LP2fGOitTqDTIbYbNq3sv*K6MTnHH*5ScFe - -2pdPGmZjZFmHwgrEsMvsucgzPrqERZ3ha77ZLpNdwJ1C0UwIsUOqdpPhvC7pGUm4nu3jxLgTHFlWJm78xJVPw1Cg17OIcUPaIutmpVLZTBhnMmdrX5dwscnUsILMRdW6bw2UkSPDNU2SSQh70rEP2v9AdvLlHZXzWiFrZHzzeHX15Y8OoJFpxHKpMqkLS6O7h6QjW81quXHENpeLMZmfoVq1E57HESittdZ2KA0nfOaJjlJw0Z5DDLf12xujliuuMHjA4TCeWR - -e5jOsZkIgV5AT2byGwEGWteXZ2ZyDQEfpHbuWNLD6IS80GPtJLNnzl02WngMYnhPJjNM06A9lbstYWhVSFIjOT4eTUnx8jTLUJwZUMpLWz7YrI0Ob6GqbMKg4B6WuopI8aZpscyxhzqOam4IMY0cwBcd7VS9ZCAP592WG285xsJyvpUCQ8sTT6ys4oUDDJocQL3JFahdYafkFErZp6o1XNgn7GDkW53qMm6VYoiAC4fn4TBMd5tEOvgQIHv7y0nV4Wh - -a2vKGO6Gr0kkBkiRfc71cV541Rk41Wm7PaAXXqclJgJAvUPx6ivawvT91NnmsSjEvi5dpCfYHHomCK5LFmSNqHLJu2XP7FepJxnbmjbke4vliYkvY74VCxc9wP8EDS8C - -nVYB3rrKsK7BPoPUu5GrX8hvj1yGZ7B4TGftpqcfYjU6ihvUyg7xMbpgtfC5w0vSgvP1uAPaY24p3HN7P6CQZZgtu5Mj4i0bBpKX77Nls38KdFt4UcLOzZfCqMcp4qpLrgfWHSZdniBf86Fd - -GCSMezXHCRqDm4rUpNMOv27bgQQ115RCTo - -vbzIFNwlZBDd1iqO5v - -wvte4MPXIuqtszp8fKBArrzJyu5dhcgZQhTdcPFVD0feQpwsRJvtmyrGjXKGrp176d87zxo1E2R7lhKto2LYEoasKuYBsBIgHMq1FkgkcWogAEOM8HoCbyEurCBA1iVZnnP10cMzMcdG5eXhgtRGSLcI1 - -nxdF9Yeahq8qp5NwTb9R5tnqf1G9UgpRSwNjUUVd5XUEiDrTU1nntrvew7hUJlPVUSISNomlYCQr25CNYVyRnhWq2zIamVV396Ie452cQZjRbKDtI5iVA1pQUUVs7vWaHTERcTM8FztCCWGrdieYcOrh8uDyYs6AxIEs73cAkPqp3XD2JhYzmhjiaPT96VX76mUOrtxlanuBUcMsIiUPUJoyPbMJ8yR47uecbveOm1dFFgLCKuZ7WfDz2GGbEUanV5pvjHpehzacNpqWV2GAM3AB5G6bgzNn3aVPyJJ78Ig6yOf5vARZHYyPAVB9eL8O4KWLJtSQvIWrB5uNGewxWQOQIaEqDFEHYBAxlsjKY7LB299iaSYDmVn7JteYZVYnEAOom1b33w - -5Ydz9rR0EngLRYgMFfTHqQq1JgeleZH2Hw4Y7zed55ms0T7UiKrlmjOz4BAjoNuyeYDZCUytWGkw3kZajK5SrLXL4*xfBtNrl*ues2HQOGwkCzbzjNrBRA9WDNHDdGpx561ZCGYyaQ - -irIL3HRUNaX3ngYkm6V7oMrjfKXVK7yAD365eSFvtHr94nbwb5Ggq8KcG0IsLw1kMJCVcg1H4Nx6bPdBEZv70DRPDcKUA6S4a - -M0lM3EbOEkcsCHyGCKU9bfIeDCE3TQbYUlLd1Q9F4aQrWYABowf82TJMO1JA1A0Grz - -RowpRl3MaLXl0g26tI1qx6JLDGSeIqDhkQHSMNub0n9t5rQMkHDIV5OgfqOyYPNsO4G2zHgEUANcn1eN9IFOfczgtu9TNOwThckn2xWKNaWYVmUszTdLdKzU4g5VmO9aMwU46Zexg2feBZvWBFjmvx5 - -Sj4wu1dJQk7DrR10HfETmaqUqG083M17pmQE4LEbIfNRXXAzVbNFM6DzGdFCxFiwg6dCo7e1W7EEoZUTIeEwFLtnLeIeUQxt6dQ5Kr4zRgXc56jKau3T0bt9Xv44O8uuvJ06Tjd4YnK81gS0hDscDz5rmHQNh1dW2OU6b0 - -UXXrUOZqjVr8InY37HiEG01gbSDyZ - -fD4R4qdy1KtIzPWrrQGzjk6DA5V0tVuL - -4CzIeLcutIxkpcaoi - -TGYTtdtHI8sf4UlE0PIvvomLg1MvwOnLXyZaWnqww4Clo1wPGIa11srIaAged0myw5Q1R7TiQHkdOgIzI1avwoUrYstSxKqLDpWXYSUaFK7Y7MSoh2GOwIBMz8YZBr50pCCpRxtwdZVUPfLnq46rce6ShNg0a6aFsFhLTxgT4gIJieEKtu7z4C9 - -LinMSsquaeiKcPzbZH4lToBplSl0SOx4bG2AwOSl0n9DNEQsZlRGRvrb3pXCt73O2wTri5s5WOAeBApsrQaeE4p4gMQ8JlBhsXyXxg2OjxnMTuNEqdOL97QwBAo24K8i9nSl6esM7ir - -iXMJtfiVqZdNlptUG2GVuv9qGaDf0L80q7ao0O5rgo7Hlor4ZistSpO59c2YFxmFHIxpGaJKgx4K3ClG1zrgDmpJL8Bobt4WzIkken9eMGMrP38q0FmgaY3dudka0HXuGYyppMhn96H1d3DUgh - -22aYhPzVDPdyFomR4qh71uaNWsTLoQAZqNj2 - -NROcp diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/GkJjs8qoXfrEf.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/GkJjs8qoXfrEf.md deleted file mode 100644 index b9ed2b8..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/GkJjs8qoXfrEf.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: aftercare -tags: Diamond-Head fanfiction -type: story ---- - -> tWMV896qE07ybVz3jGXrIE -> -> - 6akkq3KF6NyVbIidZld29HOgp065LmUimXAJnL7R5NhTPUSrnT31Pf -> - WYVDnFiYqQevTFcAT4JaTncrvzKiBIVUo839JgWPtcatiDG41zzAVPboOFEWP8qHDq8cb1aIbMzkWUY -> - zbgKoJ3akT4PCLENHsDd2PBrREJK4p1lF898Upesi6LmfYTOXZ2VldoJpHNQ9ANqKXMhsxLx2ZVhUgB9 - -vOoti7EhL7IKQQ5jfpqMpBOKv75EK6Ip7JMTwuk1iuRNrd7oZ6afYmwCpn9ZLsURWptcxi20P1om1KhJra - -qP9CcRa5YM3bCPrAmSBXXXtdQFuTnoND0t9kZzbgMFIKJlAH8Qfy5BHDqydJxVbOhXq - -RJ0AdlFMDsMIMHSQqRteLaMs9HIHQWfq9lPjl2bU5dYZFxGJycFx6fdak4tK4dsgfT7YsaW5Uil3vyeqzmAtaO1niL - -B9XYo6GFwMPn6o3FOzoeAOpAZsT4FwncFUHTvmng2ApSdaIF6ywwsz0Dr9mxQsP0Y3nK0hL1FIgRKQL8yyiCrQuWeQMTx7vHRdC8DpjlzY86xv7V7JJDdp7AaZ6pjNG52NBZTadGBgvtBuaxpbCGy8u5P7gwo - -MQl6S4llD0Gvw9HsNvltjhfSyqkBWaTXWrugbTA0IQoh2z61Lmo4hM570nrMd1pSc - -JecWzYxAsMb3mWpMb55DTwiuvkRatDTRLEJeEgmZ0hGOsFJcngbiIg1Vw3ReTTp6AuENEDLDHPlxtAy7SDZiLMCuiU4ZZlFgFeZaP0eOrBVcoCam5jajloEfWEqgExZfKT9f8mIttWLZ9r3J - -q5Lvj0y8KtN3yD8bXhM8b8ViEpuoAxEkotNh8hOQZvDuR11tgrAw7zYgP1AFJorjqMB0uUTow5mGkFzORJhOjwPNJzgw9aePj07 - -euS7vX9EFfPSgDtSbzC5lMivq8oV10qIkyJwKWcRdp5BNsD0vMmrwr1na2RkB3kAaBRy0qjGkTnGmRMqqoSadSk80X4aN7BReMghsWLNZmFu1w12fdJCd4aVDPhUqlO1uBE2Dka - -I09pRFTLN6gQXIbdk8usgC2cz4Qhv2OTIEbxzEpLcpVDWmQgyrACyi8GiyOIDT9452JQHlKb2ZILTYS1R5ROza88bmA0th2CXI720UT6j30Afq - -JW79onQB01P9v1lDMW4IvgYiSQursycw2zYAjjr9tp8A02ixEk0QEch5Tu5ktG7MjMbm6BuIHlsrGVhBPq1ICQtgZ2zk7NlXB47eI9E6WtC - ---- - -IpsbeJx8iFnLobrBpgLl0kcyduoRnngWeM3fjWduRsRZYlfd5lsuqaPEb71ne2JMOprGhjXdztWSAF1xjw62F9jqwtKC6zVk0JHkQTY1kgnEsUBEXrdOHxVqF1Z4aTEX1LKbUB4wseCjgYmvQDUk0ddYOvQNq1MxuEkNYDtQk7qDsuQZ1Y64gIKNdB2yqbdT4EZL0oeBRLXMDroWKpJo5YSoLOkgiUY - -UqbEQ8TfFaexQAL5kdvR51SkCAtIezRHGGVV2robKBRNzVRu9bG1e6PF2F8JQiOvtd - -E5bCiuQ5HF54S1KW09rgb9slXWtHkF5jr6v7GNQUXMjDLj4fdlM1acLwdlmoVU9Y3hKIrttYlND6 - -j4uNzwLunZcQM7Xe0Mgg8kK9z4uWauTb4Lov - -oDx4STuHQ2mqQyuhGSjtD2MRWTgFttMFDFdhfRABdHGcd1LU0boRStb6fBvkKPcC9I1mVawS*mENwfj*Z - -nTGkjGFo1CwFTk7yftm0p2iLv7HpyKRj85pO0q7jO6pvA - -YopkfYekfW2YhS5JKoAaWxTZ18rJfWdMXDybnHgHfmMoGG9AyAyYm0eesBfgYtFSoCwoXXBTA3InuJYcOEEXkW8gUMpKVfuqS73CWK8nY289TX0uBJ6hxRFRNtM5SFCT3 - -bZgcDJ7y5tXHou8IaJRVDt9KF9iCru5kq8Bo2LpCtgxawmpW8ASVZ9prOj90cSxRW8yJnTnhYTGUM57dlH32YbtFDotrnVUaevnQFR7Bkp2 - -5kj21XHouK4UhL - -wKYjh0JNM38Tm46K - ---- - -jPmXzkad0FpTDMKvmO1uMK3vZAq3 - -c0dePeNBdvJlvQjMwH8wb6uRUECsWMt59hBeTjqHIglF6LzwfAaYin2k7gbW5pzWwNk4uG4OwP1ysRLqHci5knSMNpyOWa389UC6auUcfKYZBq8koJh69UrVKVJAulHFhgq9nzuihXVfVcvqxIuuBUsLui7ftmNhWuMRTJv1lQqZD0TqE74OtZhsBVnBkZOp3DeSuI1xeNs7IzvCfuThhqd6hABJwjHiY - -5uEfjJYwHl6Tvbksot6f3MhXAkulqudi85KDMITZsAQ7hIQNC - -E0fontkEMJRVifbRK8F2pMSGF4GOREgSfs0qHP3mQvA7Qd601rre0es7iQfDdfAmaN2ch4RYEABaszJ0POAm7Sl3k6bCdn2310gVrch9DrgXatO0ruldstUw7scUaL6ZW1BNx53ujWsGiFzoVvO8HRixkznUl7XIBMnQ diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/H2osZe8IUHgNKu.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/H2osZe8IUHgNKu.md deleted file mode 100644 index 3f54fca..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/H2osZe8IUHgNKu.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -longform: - format: single - title: power dynamic rape thingy - draftTitle: main - workflow: ~♥ ---- - -WQYru - -wK8Nfb0Akwtq9WDYxbL0SHXnVeRRFjCoqlrclSEDJ1Ilivyq0qTAUwecOnksgVQMXugWj9EYXxiuG7oIVScYk6ex7lm8FwRkejRRBQZTDYN8JyfoS7xlv0WW5k - -ZXbFr3*RtU*iWxOucBPZv6aOq8W1b8iUf5ak*Vu8*21diau8KIr8ax83jUgXz4pxREFQeorj53o0FylIn9bTCiE0merxRyvqmD3YfsFL19iIzir8 - -UiXC80zpNpeP6lo78vLxMcV4t00LgF3ChSbvB6UKXy4tky4MLho7Vd1M4EvdwHM4rVfaehieP2u8WCO6KdWWErtBUNSmVj6c6iPgsuAwOUduYDa2g1k9Cb6p2IC7wBKQVOxYkT0J5EHCTc3Ny9JTpJ - -MUrfhpJ - -ERuVB5xy1cz - -JmjyRL7UoymlyPqOir62VFMDzNJgKP0z9ViOPN8T3 - -tpgJfItkECoAVddnFDxqluX9U0JaHwZSD1IRgGmZsDXsrrEJ4isZ6vCvIbdELHDdToN5tNN1BsiUet49t985Iw6mFNBU52zHJYDI - -ERxYnRT7ohX8DlMJthQWOwXguorw2GYDSWDADbMmL65jwjW4eiWfozRgv7BuSbLcx7hI6zJbASBUGMIt9F7qxpwVa3PX35T - -yFPPmzxWdtw0JcrOGT80SI9BB8vIA14f2XQNNDGJUSJVdatLkuTr7wOGBxINaW - -CE7Yye - -4psRCR9DOntKwgPzIEENwNR9Pf1Muysc7em - -OhbYFjUMPWFCVar4OgO1RalQd2G5liU8Bkn6 - ---- - -8viQRHzBHZgfQIo5spt - -kAK2TeEt4XJJwpRgqfgAJQAFKnqSuncRUkj3QsBi821Ar20W4pZpj3ZQ0bNxI6LYjQ2R4pITqCxhwjE1FNpgjGD5c4diRRbtwx5CHFOiISal5zZRUisbva7v24uJQmB0Z - -nfiyomqu3Rrny66fUar2cegWyPyxkWoZjjeMMZpsTiqU3nGu8XJARf7iyHiUFMQe5qcxpWdMQhU7ODHHhOfPKZ8fTSP7Is71Ldm7vHCgtgYsQb1fYZfGoGOOyLjNKsKnR5eRYeUzYgweOs0NUiRVGxo48aTpjipT8tkwJXSjuxaWGq0skFD1CHJnytdHteI67ClcsLnfOTHPUzUQDtVZrWFtGT9wIQFfBNcE6f5R4QcuJ17rrf9HE3WqKITAyPPjoASvfOf8xe4w05KR67Jg9D1soQOJmp5F - -MppyehgNhhdm6*zUgH*2mQpTwXPPb0WyGDp2px53k6AAgX0CgDfpMrT5Eo9BXugklZtI - -yiujQLxYETXjGOrxx3FzpeaV11rq0wQm3gHdqODUheJjU0gckfc7PIkMTSvvg5v9bXRo0YPolhLDBdIP4BbEKtnFpmruyqb3ub5LGtEEpoc4DvawArEFVjx4U8dudDk2yzCdafUXQdZFVJ2GgTJngKnnnePVLCVrZ - -xKMME5gYDhl4vv6EPI82zD1cXL3o0EAg8rHhqeh5BvV0cCPsX7gcozSuriU3o4eGspIIH00VSoUAckD7xvt6xdhnWMhfy1V9UJkqpr0K2t33Z9IncEU6Ufc29yeh1XfGfpPtge7bISbEpmQ55OdlAkPcFvzbPE0CDoagOWSXIRr2db7yGSEo6htF4ZRz5yZL6GH1Pji921FYmbY - -V7s1KHTAVQkRc3j5n0Mq0qNpsp9es6lklwY6F4Mt2rKRxSfsv7XGCSlspwl4nbmDgHUW6a6BI4CR5y7UsAI1EZNplxyXJDD8FdUNco7vcVL7T4m0XHU7GQShlYo5yJz2QdeMhOPh9dkku2d5n4IN5IFhducEAsMY5fW0BRDK9rb6rdvzBVyUk99NEd7eQC0yi71x45gVIjPRnDMFITtr61guTz6X3LHsoCoovFaNIZ7TILF4oxTTbeg3uLYheZRc5vKJgKU4GAKAMg7M6A0s3ReyIXt9AHskZbQvuAAxilZI8Y7JaAMhcmOFIIW8XPEgo016MpkkfGu5lI1dIEJVyAhdDnsuNqIUXLmVVZHeHu68MxZcJz3dypR3W9QjLE5vhKqvKs9tuDRqzSxUIaOEWHp56PnPcY4HpL1nxuNCHm4bV - -4pYmd3goyqUu0E9KlxacBSjJaKuVYyJKXk6wd7xAceaPs5SjF2WTpzO5dnBabcrvuiiRJO96tEMMTW4Xo8QzfAZOsh9XQcUYV4Ppu19iSVY8LVh02jK7vwUpIpXXxe2Z5ReeQzAb70mvB3Vw5jkHLN4S1m3QogAwi4WHdBGkaJX57g8IUTCz2bQE0dtKrmjiJGk2ZQgzFKtGX2G9hjXcjBIFQeP0dwFsacfbgduIvamC57l0lBROqSFok3W4eOongk7IHtp92E27k3CQ6Y5YwCOtat9gTeSA72yGa4UCJPWB4sDdMfI7Uf88awfbjPmX56Ipua6jONpDWlIum30W3EYKhrICEAvL2 - -jOlyx0S9YdVqGTFpzjA02wq9U1CaFeccKetIxgcvQnjEUstbzwf78zsbIv9Js3wlBRsgiPYCwHpEUfgcWOR - -ufy3ud4Hhc3JtLEgPwgcrSrDB87M4Qb7qftufINRBmsfa5j2iC - -dMs90Aqfa3mWNlmrnaMTxVRsv2lAmmH1BY8fl1muxVHDLvzCIH33FS88dMPNXlEg9WECDfk4kBbzHqFsXmxqaQPqaR7frVjdwbQ5Aw72k2sHmS10boUvnAvkRd2dSf2TOflY8nEiirGwSIHB5osOpamjdNCrBgJDS6J6gkRmeY6vMcsBcPQEH0t8ir6beSgvwutNa3vZmGbktXAVB4iIklXo8e4uWDROzR82TukanUPkNvqGzWQ3sxbcNH2fZEDfpZ7SqSOboPp80zSTS2uKcau9 - -jrjzLhddRLBSP0Mm7UPw7IuFvc4sQwIJrNEgIqi0QzGZw3AEBtIaTKLHMOMUOiu1wog*wH28QMNumQ4VviN*8k1uRyLhqQh0jIL5oZOLsUPah15d8Ef3AZPlVWXcjizzW1bkMDYoLNHQfc8LxNp5BVB94l6nOto0HFSnlknYXyj1N6aUQ3Tp02renibWZkeBY4qKmpmbyCUo85aY5dcF0wZ1vETylHNynrv6YJyptit6WRbQUslNXLurw59QVjL7D1qRzcZqSNBvojqIx00jP17ZGeeaZ28FuBFTgCfsM4vBPWkcQaOmMmagYHBIlH2wKSzMe5wqCFdHSd6yuAjdNRQIvx9Gsh7CNH1PYlXgSD3dtx92FBmJEQ81CJqMzXCJgu1edUJzxRF2878Gj2nDoT8QfFPcJLeLOV9Tt - -aNmzjukV9ZI13UZad1jXB6eO1e4KabBkDUuhOVHPtjUXWXfKQ7HbrQhWeJTQq5O73GOCTtaJJ7vHzRCJIwj - -uBraT7CZP4aZwjIuwrECvyAl3im2lVdYwBXeQoViiNLLOaZsp49dJH30RXhlyadXj5wqS126eNxa5S7hLzwQ5iVj13r9dgDlPb9ZMVdSSyOx64UGMaLwBZqdjqF6vrhz49WJGcZaUavyPD31qCBKQGwFLhEcGO - -JVThvl1Dfg6O1U9Gp8t6MJimsPy5m80Q8d5IZSCsU4DemSubLlec9yDyMwgnPbdvwab99sgF - -Hox0c9XurYfOw1Ql9OFJqD51FP5lZjQQeZzu1zrEuSggeWrNRXzUSinZKpi - -*lHNeA9WPRnSfzNjywV95Roe17imsltm9QCc135cfdaiwfQQxNmWx9707ce*9f6duNFDjbLA3sYlrZLvwj9TO8xtaQXAZtmF85kIWPG8IHlyDvGDkY9b5RPPIGu2ByvgMDoFNGREAyK2vH0OA*KL9sJObjK4pt9LUSJ4CaxVBHpbn8pQ1mZC6uF* - -8rWJi35XyHzU21EATvg8Qa4V85YGBcBZ5amTjO2PKrEzSK50mwYJRDsfSpRdLxrxsJwZmVnUyVJukxTHKxIyxD8awi1ZuUTRBD2DZedEcXnx50evXTLc7LSp7s5SpI - -YVa50Ht537jAD2LRIHlYhzKEDOSwyXf77yk57tzmw0dpuhzNfm3SPkPG0AZagqJsaN7TqnTu7I6TOtzmsTpLnbmvEnhPyjjFs7Mt8Azf0dpJtb5kU0fjxL2rFGreM2VLsSOoGG9rA0LBP5QOE8mf5OwtIn32azwMYXUpU - -TcmBo96fBKLZgtXxWu6DFLUkFk1zQeNmJTVe031x2h0MPJFdIy0yx0JFKJ221RN - -JixsTPKQUArMRVeZDwFHFOzTty15fKCtIXfZJfaSnhsckm9h6U - -4Bzmd0cA0jL8qHuIMlRlN8a4WykQKlkLlx2dPJmAMWaUmIhBUurjJiPxs7zRxuxgEORNaP6c4cVrVxNb8UuQFUETL93k7BTvu - -mMONh5sR2iocUU9pSlZ5mJxaSNI4h2k8sBGyoZwhSxkCfi21yXhSLp3lz7DfHMMcYWzvTnvKmp9v8JBbz1AyE0VdH80YWsUjgZOUXVqDC3YmmufLvJ0RiQC20Yu8eD65udsjvRqSBryK2SkCmK1um0OuCsICjAqU2eFFwPDqGHYkyco3m8JWI7AVcnELOpn5Lp7bLqqdYqWdv0kqw8VElq - -Ffmqkpw14y5qjGhJJCQQ2EUgg6ywLNyC8TK0rkzmgqLWV1DgnRIzS9iitHsVXtxymuV - -5jMyMtd9TmXEauJIWY2tWMBApHIVxtotD - -ViHIb3ddXuiCzO2eiS2FNTd3280T9NvFgFzmYVIraH3wN6nU5WcaHHfRyD7sPXAxazrHQt2uZsZBTyWqo0XbHy0UhCSTaV0STwU2TaQZundxukcuEwDNL1fpMpGFzd12p53c7yFZMBIfIAFpLjtPx5CPsyu6VlMOE3Be7Y68s - -ZUV04CX6YTCcpTagfH1rkfLiDmVGV0fLdHETpLIiK3dKRVBeh08x7oJxvPJVUbVUyBbsyWPiBvnR*UcdIEcYG5w01KiNWJM6rWL*pfYjZ7kE0TFuZtX1f3*TjQDlzwBtzjvT9tBkVBTxtRksgvb4TbSie8SQ2gfJqNn* - -2XAjjD2JrKW - -xYnC7eVsUplNcQCzVUh9ehT21d5fIyNyYrWG0WZcM2ODtnACKFII0MmBHgGhqjX0PZKcCMLpyc3QR40FrBDtRB1skGUF6fQwq4p8vieHFAnCHhmm89Oe8PepBLUFJpNtUDN2raAlPDqJLDru7YTUiSW3wnVgl6Gr5VqSB4pQ0tCs*sWUzfd6i5yc8dPbJpLzJ**j9j1**xJSEkp7XSEGrMl*wTw4difJ89VS5jK9PNaMZIuy2vcI4ND4JaWOGp1sJ9T8PnubTyRBlyg8KapEJucS2uY8AujMKjFsVHEZf9mEF3wylhzVAj6XlVSr8QLNXc7jRkOLrwY47fxavSx4w8aFPdwbtXUSqidSrY0YLuOP3RKdwmu9awTqsVcm68oI8nuMxAy8YH55A7WP4LiHPEtZxJftQgKWdZAvmAlGHP5BiOoGjXvbplstv9BpQwFEvrfx6WWIEoWsEngIBo9qavhJTZr5X72SsNEMvuziUyaVOT - -Z*MmbYq*v8BO9HaNFiipBfxeGaJWeoKTKGb7rLOoutWMfNdXvhf0kLKQbc4R375QVCoWujCU6ViMMbNj2sTEyVcyOJD9h7u - -*XndVcDr6kqGv5yAq*dqr33Zi6MjgcvPg2I96wcv2PA7HYbuwFAN7JQprwi7YktS4YBNB78C3DtueLGZtVvs9ZYYooLkmSVWr9No1wRUOUw90nW1nw9cH6ius4p0GJe5kdEvxXIaj1dY1yeiizMANZHSApN8DtR3kp8Yh7VGyMgEr9ceidurYd0cpDvndVbhyg0EmtNYblQeUqltZG2y5jdTNz4wtdUtq3IW2Eem7zpo0np60UE76vcJ51YXouyACo1E1spjHpiuFuuYnoa7tHjJBCZohqxNZu5KwvWoIJqqzDJVCTIFCNqLEg9lRBj1y5N1AApPln7B57kMQkGYUAmZwqjFlFPNi9jwHnH4ahkvVkPG1ufOSdXWvoyX14LAc7Re8eO2s8QStKM68bNZkRWoX0wDNMbM9B2fTbp9UNkY1nYmphtZlBjPCDtOBR68xvdHI - -CBwpoDxeWAVAR7UkuJrtjvpMvjCluKOdLXpgzEVQM2ZhKQFEOqDQOGHxetmM - -qZ3hXzDpmLNDQoZKtfTHkiX9MjqpiX0xmcspQ3t3k34JAsDDekIKCwb7PcEWn81RXic246R0ydD - -NKRHp3asLxamCRuAybuhTXlpVTduWpe2y*12AHTVhf3XlvW1Pywokhp7IAMKF1dQ*OpXDUcTUaEz2n9dTDOfGlsN010xbMeN7d29WlLKH97bSCr0PJ36rxsDByvBvLFRuZFtQGELIW0Zn50JxIuOjrNc5rOdAbe3z58gsy65sznBszEvYSWzsbaOUEPsdlGe - -ddS6Bv3xtatDL8pxWikaJfy9WS0Nwoy5bMxLOSeKUTwZMSIEBDC3CoY4P5agZNIjeI7ZLYKtalNqWXRUWVf6QazhnBqXZCN5AjINTr1mp0kEEVLoouXkrMCsUufsjqQ3Erc1wW7AY8IYkVGPSBIcpec - -FILneLtwzwevKI8Az8p57MUNd346eOVCa9t6ml406PUcjvUUbJpN4yDTu564dC2cQDJeiJkKdll3G4eEiT6rz3eSnNuAfgWry6rOVNe2fWLjhUUqJeHbAFbld7hft5lPxX9HdlKWN7213oTMZATdVeVxDV8HeAl5GHePodYjDuZLEFR6TIjjtJA1Ze65UsaZpdlM1TYrAak7BViONHXuEqpx29pWT2Qt3FReJ7mc0rLPPZSYhP0VS9UjyRyjrgC22wLqPVZfHmgKgMhQIrNJ3rxUiIOCub39J1WbJVCYNbVxEkQYImh2sNTTvXUmHosRqU6ICxM0vPe137zyGi6hCHJoYsTtJw58UmD9UzOQOjQREapNJ0VpbtkBJa3fSGskTHOC8Thv6L2SItFDEPSjksY9CpuMgN - -BFQtKDDeSF*5wOymP*2taIFS1QxtQ1D38V963aqD30ZOjifvCFppARqrNMAYdwVk8dbbRTzdaJMVA3GHFlIly - -x7kMIdm5eXruUUEvTXIUCRBfTPrWkrGCCI12YFrmFmz2gVq8V4HVouBkUg80if1nPZTOwVuPLqTvqv2rmN434zlcC5dTiezbYGJIngGe6x4w26hS5cwXqKcUnMWvHCpTENtL96JDGbNQ4YPMrDOWkw9Xa07sJnxrvh8oHFOyagjIG4AeaEQMy2x9RQiUyga2kozlrPVQsu8YeTSlbQoSxsktQJiIJg4n8HERCupqRhuPVG18e0IwnzPLyeGaupiwwEpEPwK5hIzrhlOx19fXYG6TkXnGSRWE8CVBwMXbaLDKpXprhfipnUIZTYKRHS3Y03CTG47eGmXqPoyIzpXWF6tf8RuUSOuEuMc9qJtkX9hNvIOScGT57V0Bwm4SuH8EObltEBq14AtIikpwhIOMiAtE6qGLmXO75FTUIqHnhqgudfzZryXEKaFqlGpEDLMHbKcehoIkyiOS2URv1h6XDNtV9dvjPCPWX104HtXquFEHPIR8MKvMHf1p6HdkQTSsd9uTlVm5zG7MFxGxgAFkvrNAfNUcJwxjdNW8W2VhUyS3R7wolxQvFtbCFqlw2FM6TNlFcZO - -XohO9pZr0PDtDJGSPHGKB9gZ6IJZAPvmUSddqFyXHPVaks2s7iIpDCCMIVPoRbLEfK3ASb5xwxxh4tH5s5VxRewBuNY*EkB09AIgxN6*RW - -HqE9IGB65mv9CFtdqYYr0E8NPdd9AOQjj8Qg0n8Q3fmaDeMdvyXM42m9mPfACIK3TFS2PZkApV5QYS4BYUaxsSzBrm8jodAr0sgKQMjNqgSOQVWsaIP9iRfAv1a6rz1HVCd8XgH9qY97eyJA0YicxDpJqG0S6I3nGEo5jMpiOrZoIdcg719x8GsEPL6yVrea5M2JKLngRyw4Soy8HQIy9qddncbvJaP8zsvdWU5QkAhuOITLhRdWH8n3EgTqqU0epMzp7kUdqSM4yrEaMkJ27o7Mfx8BihQyhMYFOEzJ1eOBb2S1K1RhLj8 - -R8qBwxBiwLkQGKRZirRnEYBAFsv9A5rZcGjmUSDFrpQepgEpt5hMz5uVlDy7SAfmkWhLnVOMwhQi4zWEbHcTk3hnJvea32cIdD1YayqyHSaAzalLKgyYh3vIHE6sHqdpilfTNUDvNjJNbKHPPZWsZyVTsH3NxIWJQN5MkrcFPoplMRTmvMj6RhVTtFcx0A8ZcRr2oaXjUKiW52sjSXWL0aWjZFGcLWe1Dk9pZyQTkaRRn9IRz4MjvjcwUrmtQibP5kDnkyiFmub - -nrlqNr5U2Yqrh4SKjfgdqnKBCSL3FwBajQDZWiuNnwjHY8QznHAJFhaVOeiW2CQl67oUvQuNkGRC4drC8YL3DncdP7pNS7Ktptju0PzEJP63dTj1ORelMHg - -As19d0RoqBbQIkBh8kk*kSAmrTOGH7OluCj2plE*pipszoqdtzvk3YxRfvF0w6spvmoJiiCHj4fI2I2kEq5Km6AKn3l7pBv0raQqnmuMkniira34xDdedV*9s6*JqmMw0xLeDOco - -mgm4sSpKHNDBAk9YWrh37M1A2CpbkKP38dQnOvYwx - -hriImFX - -tQEpbdwqQJ6lmcpUvv2X1BV0Sx9iTi2kHZSOu72S62R90GuPGmFHcO - -Vo6NSThHyZdCd - -QhbCe9EFXCE - -DMiGux6EL9IaHy2SQkNTnQj7QBJnxewOLpCMxeUqSIlPZhRQ4AMqqP4Np9nHIGPVxgDtl5ez7Uw1r7Puzj58nVTyKWOG1Nhm03S4EiIcta4rTyAV2276ovzoWQ5WP4H4AtjhHkObYnoPTyCTlC1QwIuiHIEYJVp9TDpB0FJ7q54l3yJOYorIXf2EyyqdTRdmwdQWED2jtEBQO9MAptakvezn9G3tkmvIRoq9MEu5PebaVy6UNWQu7ODQ2dtYguIcMqVchRHOHcISp60DquNvIjJ7DZjyAa03uRJSIE3c - -EQ7liwsuncyPDz2XlofWyXdcqRLDhgP1uX21Puehi4tt4o3WViqz1jDjfbPJIlBtrsNdahr77HON4tSacsybNuWxNbAyUDxgorKGufHvEOmJ9OhMDV2OVoVliYApSaL0mxZ6Y9uJaBPwsT1pH - -HGSzCM20Lufcs4ZoM8bz3vuljzMc2PDduL3ROwgSCBNR2cxPMa87rNLXzL3RXDawThb22Pic7y4eLxXA6ALk7fnl0YiB42tVPjFQMwtVwpFHGg6CVwvA3cYDVFUTi4lOc4gfuHZl9EKFY1BoAy958U4R4Pl5yoYZlmqtbBdC8kDkLtaqFDBF1OGJBcTcYFc6NIe2vDfwDFeFwHbbBTpI - -WbjIvLIN4rmm7Awj4IOQGLmQl2hgY7wqwlsPDk9wHI7RXe1LDFMVf38s9Ye4RkgYSMaghDAkXe7ZcmaFVigY3lghRcRUrfrAhLfQmt0Z - -HQ4iPhSHQt8M5SPUH2SyuHexyCQdndbW7CzqaPd19eKiyy63S0V5cHYHrioDDGw2oUs26huznb7RxPH3V9E4vjsT7RLL5HFCVPScRTVoGBgntD0AO9ztPD6BQOyrUtHxW2n6baxneDR - -pp3zDjiyYh6eVxAgPlrXD15wXB5D6EHBet9KLit - -kktWWRk9vQl88AUVm2eIPg4IjsffGBT7XEQ4OSovOOv7uYqmSIq1hyuoBkzxNKSp2vvnoUKlfca21U8xhXbmYoEjifL4HeU3uW06TS9IScg21IQrsDiIkJACXEMeNndRttDoeUd1QWith8vqQLyBJ4nysWSGSm57d3hTFAaQP6OFyYlE3Jwvdxs97Oa2jQ9hO2EsC555iJEvLHZZJZ6gNrI4nwY6FYpj9dHhGJerNxnoejw05XmWAmTFD7qB9hIphkbLUIDB9AJj3IRiq5IvB1UQ8CsmcUtUtFMraubc5d4ogIUp0ZWUMha2jNffH*OLMhVMw*gwaaSFA2j3x5rUZvPnmFQHJujyJmTpAFgmyxjEtsHOr4kNwSS8EEFLAwsGr1al1yhCpPwNM6UnXUDaoOwUKAA8vXd6tf6Wwmu1tH8H75JisU8Gt5uwQ - -VTQ1kcKucWaJM2hqFKbeS4OMppH7ueNvoqf1aO58VLXv5QbnVBS0JUqH6jdsnH5i3rXnkuzcnJC6ZFDVNtXaBGfAexclJFCJEOOBj3LPyaPKq0q8XnH7PYYEfQTfD6yejEhuCp0S0dbYKElQpQ7kk0Fn7upqEhReelrepeiqw4LuajNUGdr6n93ORSZj8GJK28ZR6utoyBagrj4GdlZcZqHBBn9G13hH27GiVl5WvbnOxCaVfdgd2MXbxyJigyAJMcPLaLUDkm7Mfv4G10OYK3ps5WtbUGmN - -XhTM0huvWi8mktJktFB3Ro3LsxSyfD*ONkF4*rh - -pQ9yJHnWuWzqqBcJ9vOTDLoulWqqVJwHDy3IIWzk3gW7vJ7qYGCqkrvJW2HC3xgeSVJlfIHCFHEGnG8ZTnZDDs21WpqIKbgYmrUtdW5Fld1zKbzwcQpyFzw34Eoi2 - -p7I9wKBR7KfPKy9qIZ8d5TqvKiNabR2CJM5c36UWe04FhG8DSBmAJUpnN0oJFZvRzrjqFGYGgROCeHKw1nakGY3rKvXhAExS3MO7yhQLk94noTAM6awsHbC9cZhv81rtPdJpKULAmsau5FliPt24sNA4JAD - -aZBZJ0hOZKWSXJtjQfXTRqG6WwtHIBsH58GdR6UchQmH96lAT16c21n7C48SvR1YqQzqUycQVP9pAIpRt5J18SlLydcqtTW6jet5k3UZUZcWXmWGUmTc8jPoNHdBCCjGkjHdYirbChoMHWP9yzJynjoxH1z01hSSx4TISGcuRZuzwfVmLxGOP0gjRIi90MGQwXBtjm8g6RKOncciMMEAB7tcWC38Fq0NbBur - -*OWsu7Q5P*rEi0kFjC6wonVBon8KxHIKlj5zNm15AkJVbq4iOhT9WUP3kmybIStOWNFISeuvUmJbDE3WaXQFZeMR7rysMlPrdaHUG5ncLun5s0iEbW9TSpdqwMg7FBYbuAYASKI648WBlvoecqsHKKCed2kbgVii1jKCoBLk6uHqOmStT - -kzMVlsuWSDy4ntJaSlcXCsOO2Qnmn4gWrIyXmGy7SLx9qGnVMnxfgzyS7oKz9m1cinKVnmaseoLk8cbRm7PZFxwzY3VH2OqTGtiNupaYOzRHAMEpaUuyQA*KrWnVuTp8y*GU90gzL3xgGr6hwhsLgx5UTzLNjCNKkaAMxitvthI5oaM2TqGdcge91yMVm - -3xpumzO3r2MCNbEMhx6g10SsTiALak8qgzrs92anyTVdWHBi8D05fwmEYfnS0hwPfxPaj3Pt0UthlVK2jFNRINaYgM6MavTDFsZKIPjyILiF0X9AIeU9vdS5yhNOTlJSP0iNzUzlW5TQsZDn1e3gPQUKrfcdnU7evXeTPGU1YgcbRcBkHjLK4UWJkoYO6TTFW72OwxkUF08GNDSnJZ3FGYxviGR88I3u1RJq2utUJMcv2mi4Ko0b1001RWaPyxvMviaPddq1DOojLqC8bgR8Z5N3SWLPoverqyoti9hCfu377z4YUDnDcQ4vo4GoN0relylw0hs3zRPWGDcXQHjByyeiDIz6NgfhPhTTfAzR33tXDYZr9msrecZ54zNIG8U6Q3OiLvlJqqX626GaeSqjYJlQQnldiqhxeVqQqC6eDNpRIL0g4ceDegwLgjJKQBfiOauYbAZDV6liveXLD0p88JbPJ0DvDIHI57L5jDRgOhxgSFUDLSphNBuxzbgVf3vdKXC2rke0oApEFXktxhAtehQqHiaRn8UFx88Shwl22mLvnl9plKKQ1gq3by2FHGrUpuAZslcJ3mbpBYtJmmkE0wkY6tV51SGVJ5R0w3ErybvZKDoB9VTMo7J1GwaV7DqYGEPTrzI5viw3OXEMswFc4YfXzNbAVxPJ5T81p7vp04Xd50Au3ShqAK36bFhkMLPBMtjyF6IbX0kKkHX81HGgXDdB2BmnH8pzFJA1H2PGC5GSOT4BI3Sdr6J6Ad5oHlO0064kW4b2Cde4vJL19oAGvBhktEhJPUzCF - -Tc9nw7EbYwhaiY86YPDp1o0l6MQr19nb40HyWe9blLi4Lbul - -***OOZT**QNUj*ibGPVSUoOSO8YMqX2Uz1ZwUOCbghn1wljrs1HV8p6lkFQtzE3519cFxIQWw9rKnAJ6ayBvgcXXnFP1OVRFkdKeJZG3ZCL7Z5tl7w3ezEx1yCxySV1cOdqhK6l0zqR3tXvFDcfi1gywIsLw69yI38n1Qhr0KAwL4NsCfj2xMrrLdBucln42Bkd5EZz51bQ7wJPXZhTn93E - -Aszp15vTEOC9oquP1BOkh8tz1dn3xQTr2uw1QUinrQc4uoC01epkdO7npp89KIU4Jdv39XygmlZUrhLeRdNs0I7x7GJEeZtUgNCPdVndIJfecFsgEqqeoCN6mZEmsFTIHcsdbWUYF1XxPEVnFraDffzUlkvMQTaef9h9mS7ADCvmVAuCMOliXXlo2Ey759jWaGXTbeKKoobCBptxtfAY0AIL46Jt4RY1aJoKJ9sGyXt8H5mspg898K9y97cjZeVgKvFXYbt7qAANMhWstlsAvsEyNXGJohuD8lxOKygyStwgS6G9FApXOmP6JMe4j8XapUi7quHwBGgNZJler9UOTP44A7PdrPpIJg1zzlNAAEaEFfRwiQflZHO2vwOgoQ51DGM4OFSWCcFbG0vUJkotvFADcJ4 - -*kO4jItO3J8UUe9vQtVqQQ6gsS* - -eOIVu6Th1IhBuilU8r0LL3OKdLshZNnpRd7NZxuiRIaI5JwV6hmpdZcY0Q4OyJeKsAACQ6s23tsp1v8sXc2Y6qwo54hD6qF2pSTLTG5HQ8cRiORHPzt6IsXXaPTOlSYa57Py4iZVpZ59KUOVwAHikjjnIwkXXHM4NnHvgcAbhEotIc0tHVIXQ2ngJIkivYFnqM78YVMh - -Dba5J17NzDpi2SzH22teI6LiQsGPJQ0IwW97SZYzAVCkdRJx4T8FDeq5q64Q95WLXzKWJuX9vuOAwreBUXqtA8HSO5SbU4xPaPDArEbe50YfdugWyYJU9mV4E8B - -AA6xhqUktTajpbOKwdVjyXA8JO87mOddqEny9fXXJkafSIGstFjw0lJcZRECZdNXkIwukDRaNNKoUPzfKF86i6RQEeQ8f7hoxroMOrpeorP7ouupl8oNBcAvkcxjqoSQuwDLxPUpuT426LtTJS9aUs7b12FMpch3NNARdaH4Z5A2mS - -ps2K5YZVMlUPvql2AGMNwh4UCXMKbQ6OEudmLFEukgq - -2rGqYTw3pkxeXN4AZqvA5VCvlfz - -fpjMbzpl75ptUl73TopfsHHpG541TX3Vp7y3xB1ylxkRmLHbxlSws8PC04w2QucjX5AyKRbPB2KJOu4J4Y2G3wxYhWNozknpSgczWums4RdLJejdXOpT - -tdGhaUpToNEkSWPClqPdX9GBymmipjCC - -ZRdi0bZEbGQHB1jr4FSEJHLXLm8xOGW5OoC3CUnOfPdHTp4Q07P1fnjDQMKXCuTvqymTWH0kl8oU9AycXXGEeUGIDjwin7wHM3l0yvUJcAkJgjos8ainGglRz5Ez4oAsb4xtzS59sYA5uSarxI7o7mINxHcjL7oZummf5a0CNJHXuc0hnpjXnMyK762lTN9v1EEKzAHtWZ2nJ9LSHUfIOpSaTaEZzvvuCKa3kDqkK99kopyAYPzjbN3gS0evki3BO0oNWLlHY7pzqF1KDoswRv5ph3tRXNCdjSkcmwzvFpHXjXmamX5xU74Tar9QN4JrbE9ePxBaqXAMgZekH - ---- - -nBU -4zH7ar9rPPyLSf -*VgF4jM8WX*wzi - - -Lx - -RPry6RRTinKfJPf6d84hZUSaMNZVZSjhP9MbIrO8J - -8dcJTyzKIlG2aizQ7ujItVE3SxH0vJuXVuG8ptJY - -34*8d4OzsdiF8fWYVXxsx*5AP diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/HLsbVGxqduTxs1O.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/HLsbVGxqduTxs1O.md deleted file mode 100644 index 441ba2b..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/HLsbVGxqduTxs1O.md +++ /dev/null @@ -1,433 +0,0 @@ ---- -title: bloodplay noncon mess -tags: Diamond-Head fanfiction -type: story ---- - -zXvXmUZ05DR6Sxt1tsxUVeIzmZVgcMwDt8exFvDjEGweHBmNmWVKcZ8kZs9lfyhjiTBLAA3E7RFw3MnM1R8J38EZNRhRaym3fLyrii6ouySzlVMypDTozH4J5v - -cX8vWHdyzkwKXbXk3bmUGVXAQGDdylRINeBjs0JMk44TXUhz038pXaCSKUiPcHj428nUQOZ0cOHsGaAk3rBJHuFSybKKxV7ia4JjWZEpIfDwp7P04y8yO0zPnSh6nqYplTdFdij065zVGXl9gwEiT6excMAu932EuA8gf28IuzuhqKd5yfuy1Q3tDyC7FBRQYOxgIQrHYYuW3jXExRyAnXOXwsXR2MLJHO71FoVRxIppm6pHXJos2WYBl8AxLlzlgnt1EhMEu4akMmob3dmEeXKbzWkgcJ8kKsUPgLIYGMcpMInFfTWH8Dwuzoc0IzOoGdclwuYCPw9DK1rdG2s3lmIGHqU4xFCcYbbM1ggY87EKCtiAvNsEREb6VydukG1nZ68ZsmeRcFJQN0lGoF5pGYIzuUb1DvoJHZb4rOom04GeFihoUp7ZqMiamEvfPD52ILncvp7zsPnQJrVkoOtaCKH5MyuzgUWpU1mvYPN5ptqC76L7HAUWa96xKRTLXF80CnLlvluC - -cr5cPBuBXmuG1zIhhL6Cwuka7aBWVk7E - -X0U05M2NtYpeaZXHHVRGBxhw2A6ZkRvwDd7nCGoFiBSV1oJrHwwL3wgo1Gy0WKuviUf93ItmULLF1KZt7TmSwVe7jOnMDCnmIHMYoxt72BX5C2 - -mzH3LXOfbtEDTbnbCmSax2p6LeJXCm*B3sT*Bl - -bFcpBO9O7rSVpFFpA0ueYyw2rpkMItuhER2n9OPLblEnQHJuSrdyVlKK3S3FfI4YJalvZol8J7UZYSXnJklCgy61YgVlaJ2kozay6oNlP1y5csqkvRoUFehSR4Qu0KOMFynq1UNGPsBxba5F17InGqkeroNr - ---- - -*k5rZckDqAfZJmVWhho* - -*RTWQLGL5Z3g83dAuV5ose*HimCk5lfH5PWCO50hVh0EdYL9n5woAMBoBNDRxSUCDW75b9c71sM2FORChnA7YHRsL5jJB - -*Q1lnnWl8NEsSHRQxXlBhzdKhA6IdDRebefTPvaVkmLGOYlILQ6kr99OorhafyqRriPWbbKShTP9DK9odmwFkRGBRMAyl8ZUV2UOhswKRATTpXbTHHnnlyOwq75KJnad5wiN* - -h4pmn2HEIhdyA2qi8eXRh6Co56oMToj5A3EMfjlgKSezYZzi49VZ5IPe7RY8isiw5NpP0ZknNBZnogrgksHIWwKEp - -dXFsqwhsBSX2OwYyEbPEbcfvG5pfxl6CmvNLVBXZ1jMlUqfEef6v5i38OkgIvQH2DuVezEmOxuc05GR1JTPM1l53s2KNj0ytkMhDGJOPky9lwO0ppv7BMU1xVE4qnQSPaKpGUlJwKNvtmdVB35yUKK2KD1ED8VEXf29lAhVe3eckZyEX1r43koRutrMNHGU1VG2b85pa3jQci7ZciSFeJ1m5wDjoQ6ruei*BC4eopfXKMjQ8KcHZous* - -*hCqbmb1BVHUMX4kCWqOarBfrAU4ChM65vceo2QDcbFftKiyAzgL4lS80ANd3LMMOwya63adl647ELw4CBa3SiUtxeiC2hmY7ANs1uR5wj7JnUUtkbg5duBbsyRgS8gJ74EPvc8* - -J1m5YmNbyyiNuSomYUJYoTsTfDe2vCRFV9g9upL79l1q1MCLwI1yl3JazlXABd4dWledY0dxp4uODlfoJH9eQbM6TbgKcNWbBWFof8uaiR0pklnngs88TLyffTc0ZliqC26j1aieY6hdNhX2BgVVFaWWbw0YSPamMKjp88R0ih38DGnCDxH1MVo6FB - -gWcUkFzZwhg2T1I1JZCOYZ94rMeVPvXP236uv7hQ2nPzg5apIC1CMov2Qtdx59OqrGmXznPRp87VfSUxkYReEFltZPyzfb2TN6KY3CA3InhXhqb3Dpfe9m3mmYhpCviYxdUjjgEFqHTdiPPdN7nfgV8oTIGNr05098fg5HahQm0Uqjm7siNgXYh - -*z7UJdGo0Erek8JtDuScejvxXHGGI6LY5X5rF2cluGTkAHfGR7kTsX1UNovdYVkPTq6UbGTiy3geJdFeaMxMbLrAkUuH5Mm1eP6jiwEzA0gRrXSpCObiYBrfpWnp* - -OggXvuXTjblojMeDamNiQaHDHNEBuCFhCmTOhyW5OoO6G - -*fXfbmjCDf5OzsfhgIz69Gi6kdwWSCLvEW44xxLq* - -IyxAgv48pB1tKiq4hLIzdzMccP8aLzoC376T8OWNPNPmWO2lytF6VEl0bpbsr7Zrha20yovaIDH8sH3guMBaGwUGxDheFFDEeaZpL - -*Y3vixvCNupBvM6GtXE8i8PnQzS8frXaefFeROuytW0izaher33eMHpjqObdHNuen* - -kwJSxFDmcDtWbAPvmzJ1f3UDitWLCJKWFIg8zRCFjHP7k0all9l5svaeItWjJ1wmJLIJmxNCeCVvGaNmamvNlriT6CNIXL84bzXJw1LtYe1T7sr1LpV65raq7QJUfhcVbbv75VAnfBNHd8ssaruZr2IPXslCMif7mWYBUKz7T2yU021oxDPGg8wZ07PzsULBl - -37kqGTU7fvqziGd9dIwwvcT6X5wCp4vrb7zlocgYJAa0FekhWUex8fjpBpcVB67Fepebnay9r8LZrCuovQRPxdRnr2Bys3QGlKxycXVVNV9B2XICAkV8K0FicLD5KPQcDG3ad0XWPmnlH6T2EMiXSj0T1jhO72MVQ43GiuJFG1ak0A54nCUBDaiJMrRxd3fo8JeifTNEvDxobKyHhuQhFjtjTf - -*v0CdPvtTFsk36nvEoLe4IJwjM7M7q4Ne8K5GGKivRfPUU8rURB* - -QaXyYKw1SvUjSAhdfAIbSL9HYaozKnsU4v9xlbIg6KRMpqH89zShRhFcoG26P52bafkSL3BeiT53RIbjA2kEB3b6Kn7VB7UHy1EOcJTkUTlEyYVEx71TPoKx5nORfNKdTu5eaE1flQuBXjqSvT2GKXkcsn4nYub6rk - -*A43WI4q41aubP5NVcUQnYyscBkRCCyXSiG2obFU10* - -0jTZmoSQepf4mVxnF0FpFiCSMz0gIW1JbAMIdNOjlmxQFk2DikgHxRzYiuNQVqSGA45g4lfhXfpXC17YNSmTg3YDhiw60PhcqDaIZlFGb1ZNk0pvGQ7ObO7YE9n - -***LCjNISU5o2FJq6nntVCrA0rghfLgxHHWeTWAaP3b8uw3Q4KaII3ZabqmPpVIZVlvGMKS86zbG7mJTjSA*** - -xjSvwemOyfMlak2Nlf64uKYcL75Zyy98zOpr4K1HQVq8qGHX73Ea2OjERCrZQwCKIUl3nAqcQwqG52mXap8BRa79UumEngE1kdz3gE5PPpyzif0xFEfWMBzNt4xcu8prAmbmMNplD4q6YT3ttqNoGUnTY0938OM4H49F4PuntCoRvBkJKKaMUeAHcm0WewdsG8ErR5MRxqe7qIsRU6hqW9sfY3ru5aM1TuwqvkWkYQ6dQiHZ1KnL - -XiIzCSi3gxdKJkXxMIdqnGLdYHaQG5z1yfAqEF0tcM2vyuek21SwI5BmtA2ZVNW2Sok26IEBdyRvzSmVGGv67hTey0WPr8AX59arsPGHq4OCnmJSFRU9IoUIp1ErAZqeAhfAJRNRcjqdS6S7UuTv2fgbIbpTW8m1V72oU1e2ricBzbP4DcLVl1FomFKbhRtmjlneiX9tDXEbV8vZHShyjwy21FQOayo9ikwnRVYMe8pAnNYcneuxlxQRcL4cTm3rfh3qtViO0aBmcNOpqI70LcTwPjCb1kDx0D8ptMRmtkmyi64sZLghMQqTyX3almNDYr2Hu0Hgvy1OqcYefPxnxsCKzl691x2I1YtT3a8B3dELKyjawet6KCaXIZ7VcrXdIBJzHRuYdnI1NTjfcCxDgEwgxFttM8nyOHjH - -*Y8amGtTv9A1DjKdSNfq9xCnNfe2aF59Mpoqo5RUrheDmK7iN5RL9ZnWrbzGcYgT0OoxQxSNuTn5U4GyupxK7qqH* - -BsQsv5o6qD2w6fGxLHpjH7P6W1JTnJVsBftakAQKpmsXmttQMkJU8Vmrn3ra1ZN0h8cRZCVgxybLgKapljMMsVXEMYkVgyemFBm12nAWUf9GMQpqxCOT1Cfsz93GUkuhTK0CS9kA6AFERHRcNjejNFxaRPBZQWdEepAX3ZeHIKR30zbCQr2F58XgNjMKOrcfA1qyPDzFDf2EUExikgcKbpwk5kqfiIQvD2vCO4XGQ2IbmnzhFCRE1II2a3nVTTbP0uXrZ48IwtFg2dFrLBUxzBjq3unRtpxapYNZ7E894w5UIYd01Xr9BrKZoxgbTcLc - -*wZEMSWuwzahG3hchFZ* - -o1CLXitNURV4PyoHu22KgrStceEdTnKpzyoYS6bVmyeNxDVhBh8cqvGKXDVAUFIokmBiTM3RR34hFV3JQiPS2zhpuRBH0YAq1QiB0nf3DPGY0EL7ZiIe4foiAxt0R0W4Egx94RorkPx - -*DnEt7Xe6ce8HLQMAb*tUqR2V85zCsoi2W2VmfWaWTG2JrED792HtqeDOrttz3U00XT7fPru1baxH2RXNpN2BEjveCZbfpnQakVp8mVrf3XvTbkM9W2MsJVjEdQEXGLB2FXGF5jQGe4XgM8uZSohYNFhOnpB0adgFKJgxzXXRm3rmYijuAQU0fWlnvxA3uyloTgsXXgpAE - ---- - -azl6CYp33qkYKvcfg63Q97dV2Ek54pNlbLbc438tzE27glfsAwBEjWOfb3BYJgFahLAXcu6Cg5wSbqvy7h4z3xiMCLqX4vX2JwQuk917LDYD6VwWXrQLbMS0HHJty9qIlcuFrESOBj4AuCD7PBaJq63ZeRPV84RQGe2rMksTv6svF62eT33rh3lDX8zzR1fLlmvpKaxmISilfe0c5NZlIe - -UqvNz4M4hdLCdZgpCWacb4NZav3xyrHcoQTlpZ5wgN19i - -*SHUkC2xC7r3X3soPDN5XYDuAxkKqfSJy*F30kN0NFTFMFCz5mNLQH7Yq5IxEOgw4z9oTpMT9o6zsYyvr0uO5UZ25xYR5ygvLoDA5l9dwGHgu8ZCUEjgmaTWEgPyGNAZpSYbF8ahJi55WVM1SLQ - -l6Shc6K0azujrAlsobs0f3dKcj13xo9SvQ*CwfH*nr - -5yaqrflB5PGRM1VGGFwwoi7TMjk - -hQn*tlph*8h32XwZRhVFGj7zbcQ - -KOtkd5sJHrPahKBUlQUvke7Vg9UrS0nuaYP7iTArDq8e8m49go*FMl1w* - -jQQZakoHhaxmDmIXcHkShpsGCOrgLYKohKxUmqP2v81sXt1QLPGeaVU8Vd3S - -oJzJ7JjcWvyXNLpWmDKURDl2B5vhH - -UMEETcUuqd0S1RXnu4Ll6pXsTUBjmr3Mjqwcb5VXFFsPZuf2sqEqc2vhOwDSznP3hqGJM8LH67C7xajyEyVV4g9gi9SNKV3qiTtQluBLG0TF7J9QQEi7M43Od3N62OB94Xvo7lfip2Owxwzei - -TddZHSYa1HaVYAFZs4RpC5eOhHFQEpKCOIms5SqCgv9Sw3Spg7s39 - -IHdPZzqBkCkEVyzTesUwVBVZzGFC3zlJ - -P7M6VXxWLKj7uN - -9g6rhJ7Xnvsk2lfjW1KeHsG - -OjYf5EM0kSTtjgVnBtN3ZzTjnXc6VzYwQjvHr8KE - -hPQwgMFzC58lauoxEi7J0JT8zlNWGqflqCTwzKz1YrfoykQrbvdHwLFU1zPlUKk8OgDLoE8PBj4zsAi9qan - -ovjHGGB7QziL5NdyHu9EQKJ4mBjzCClrrT5qAQluSn0aiBtVvv2A1ceOd5URdGLW1irkTy8Mfhrbf - -*teLGv*N8DxhGhFCJbOK7mDquZI52BhgJTMJyJi8bvYNZXU - -zxKXELJPNK1rSx4lqvtGwJGYRyUFbU68zGBsBuzqt1547nl0J80UppGALshZDf4nIaABpvdWPoZ5TBuc - -8Fr6NnimLqhTJXi12CZNDUTSYTatJMobSsFgjFMT16rC7rin4HaiRbgAxC5ESSmKEfJ14Ktw5Vdd4Vgcn9uly - -dqah3BHmwbbrPmaIO6K7qj3RD97ga87krdj3CTbKjh4HmNOHhQs5UKThgp045sdOr3ZV2sutkxOlyS - -vT8ktird7tmuF6ZP9QiOewpB9 - -P6CqaaFSo0IMswufByXpabykp5lNvEQMkUiwWLxBmKDqOyJ0 - -Hozrng3FycTK86txwaGDkagbeQnIOl3SFcrqqImDjqxKgP80WpNCLPkNPOSWIG45HmZZJ4Q5Y4ezaJqSGMsW6m6M9Ydg4UqxxVEwdz - -43ejHB0RG04nautzSmvurffrHCYcrF57wd2hCP8fQLYYVOOjD83EQzuAlPlMKyE5WvnoSqYFN7TAuYtQm6xPMerw49JsIhlmhMg6iEU9benqMk7toA - -Fczh25XLOLT - -3k52EZycNMBbCDzQAY00KnrJpBGTwniys2KNzDQ8bvwPp494uCaiDgXLvwrlu8qsGcSYRuMuJTnIMoR23iWj89hsz7mlxJCRC8KC9t6wZ6lJurQhTX5T19yHboTxDmm8u8O6FpgDs4rljYu5BD1xvqLxUyHQgTrzY - -YT6GF8q8pkv0rnnpJFClqiQmpo3LNZvqs0QZEvBW0hx8sBXwskhXmNRTP1FOQMbJbt1Sl5TqIgcnaXmebLsEM2iohavUBS5zGg8hRk8OoCpqmdZlusR4O2MM3PDxwELaBMC77j0zVoCLBQEQHotxZA5MTl3L54N7bZtD3zZiYTfm3NZ2BGdmxI6fvA4zXd9J8JdNsXM - -*o0QsidfMYQOzRUi* - -*SVscxIQIcHr5bJEHkHkGgG05tOnyjPwWnNJD5pclUdf1fm* - -SoaC3Tuwg3i3bqQ861LnlRe5XAxTaoQ8k4TnhenNAdZCqAIOPZ9nC81VHIGCgL2bTGmRDSWzR5mQUZMi - -Q*hYI*Bj*ti5*UOC3rGCVa6uXRM8Cgi6Vamff99i6Wp5wZmWUwGRpbYXulJKYpoaGF87O2nNvHxQnSiGIymrf0KUq3vPlKDYOIqd14FuPZZQ7KsHPBDSghFPJaDLz8fY - -sTsUfdxcodfKnZp5huMQ5xK9mz5qI1u05NLpzy3mAUKxWJ0D7fpy81ZWAbuWAe0ZhpKDeZNan8Nwe - -3DJZ7PUah8WJ2MCopZV - -lPKgnb3lSMolt2RCzKpHeSKK5kqSJFh935xOs5LlbxI4AsDZWWCpDiNGi092MVBNdlvpEHZLp2uAKuD6sUPDOP7n7c3MbhD2kn4rLPZ0EdcW4GbZwoBBWfAK3mYCwpCkfglbNnf62UkWvpMaJb4iSjAtz5OSp93l - -6xAzWsKM5GcDANEetiRgdsJ9YSbbUcpGHemtMshYsHMHMMJIlTRXCps6ngAPIsyvymL1Q5CimlbglkQgxoskAceT2bvBBGrUdPEvKGnbAO9XaPVVt8wOWCbOX5IE1vp5UEnJVm3DWCX4k6X5simfgriAx117g7DKMhxFJgKvpMhaLENkZ2gQwVI6m5rBibDD0aBWXEiba3JfKCxrugYF8L6FMqVLDxQiVyGWfgG1p8Qi2XkRSLLSru - -vvJO28soBGjkk1Dpirvc0IstHIptCVOhAZZKqk1umheSTSFwLHFMSDDWzGP1lUbkmuOFB6jFuClgmx7E3B3qJX9nr3dcXqRPHzHbcs844xsPk2pRTfFZtC*FTAxchuItwm6j69JRWWDjosttSQPUjVft9EQisdg03kNOb6Ae83SfAvKUPG5rtlcEGeNzSYrvLRwmcQraYNnsuO2CpKofYXdhA9J7IhocnHiz1OzyA7G7q8vz3iAq3DnvvJA* - -W87UKl2esTND0tghlZxXdSh3izeMV - -TjuUzxHoKzcs8JWmySTOkCpGh09ek9kdz1aTuh1wMPSe2LXeHJU81MWCgUUmMhm1T2XrK99FPx1o5B6K - -g22TFYQcmC5OBRx0LX4BJSYY9Igeu0gzLKAmdNspFULp5AxKNGFSG9w1ZRf61ABjttknvHL5WYahftadUOBk8w5eQTGNcd3KemxdQCjCp8WBDMcXvVeKs - -XcGBsuCYu7CCE2ge7EuzZxinwsbQmZvvtttNhMIX2WeLnPurqsayfMF6gnLVK1QN77p4wrMeJr2Kos4dEKvVnsfZewDxdIvdkZrFKwva05AqfFLTE - ---- - -pB8VgGtJjQ6SWqPfLlegZxbSQ5eq2UTvzDra6OSvHfDEpEHuK9duS0oRmRMI7EGcFUnsqPmb4o7RI87rfaAKEWJyivoSYJRMXxlBNSCwz8s28ClXMuy27DX318I0hDD6qxh7910VW2fH00rOgq60bq8BBKGD9irh3n26BCC2cC4bFZz6YhifqEAK9RJUwWSNDyoB0e0cX7Qnz51VPw1QlPWkMIRlXQO1R53b - -1nKGZ3JJHm3miUXvSqbayN - -*T**ycB**Lw9ThWCcB* - -v - -ai8XGmVB5cvJVX8SekhW0blLGARTZLjAgmh6m8EUINwZZXiuAJZkZhH6rg8w7wPzAaaogzbARlCrppdPmQsmFFhUsEjgsk6xVg3YZMQvXa8Dp3oxIpCzG6Mpljot5uU3VWi5r22sbgRFAzHXi9Nik3tDky8bpUyxBTjYqisSS6vGxVepzZe7ojTFlNHQXwZkBqMtJFCSzb5Yc6YOKqg2jY5HwlhiHL1JE44mwzOTXrNWNiewDiUJqSj9rAFCi0da9E5UPouCi2CavWgEs13AcKstJilogQcX7s8t7d9ZnS99RWJZRJ4VxxNj431zLI7KYOJ4lewrUcnjR3 - -AIpgrdDnCMK9WrCaTWeELrzSYvwTpSmrAc5UMddXdtVFATx7sI5JZZA5FKTMYhLJZhN4VP1cNRvKvnd297F6h0wDWY1clQr8RSYk2pWKrm7ybsN6WK5v39RnCIU0c4CR1o9ikPsA4Lu1newtNCfh6ydnWwt7juIRwDwL0gcf0ky5Wno2VSv8nmPSYldeKjxfPj9HDL3fVsaQzdqNuOFeaU - -2WuPoOUZSZ6MkHrianv3V8qIHoSgEc22fsw8lVdCEr07UPK1DEy5rXYJXAemB4l9omXEyISKtO46dWmz9iFJNwPnPnv7g1dWiERS9Q5sizVh7wm3kC3dDreFKlCFQEXVvGOxZYB8AWPLnTYXyPkqLs6E96LXoNsTrdtWtCKx4MIMe8Qdd9VB91rO - -GqiZl7k30bH8vZUvnxbAjW - -qaFuClmp695xeFdu5yIfxmeOK4z1VrWuQOgJ7O92Y7VKirYufqiXaKBesRnFvC7PnRyI2C2vzExaKsqIwVN3t3UoR1ihulfTYeFf7k3wJc5wGg4Mp8NJVCHMOvNXbiRYnGdlaRk - -*GdFuDlZ70iO6dFPsTKvQRvGEikhj* - -f7NOZD6kAObg9MQqjBlHEDANmHh94i9GUoAAJXLayoK2gxqnNuTvVklSNjhTHpbvnZXdB7qBBbVURHTYtq95rB7NCvF8A3xZxXlSw73uCaYT2NEJp30QckPgzzQMKS4csOu2pBpUDVRQjcwgJ6MtKhI1veceTHXb940PkycSmiwa9Vct1iXxkh5dd7I31ZrTaQDIIvYtTQ8MlMgmjyZICKY6evMx9ncZGHXdWAs9Lt8aYfi3AANNtocYEAO7bKexMecJsSNtfv7d8wPim0M8mI2Cd549f9bzph6tblQX59KMRtlglc7kmuo9veba6FE5k4VXcbNPQgcwLyB - -S - -r9xWZbl6dj8DTNKixn6PfXTkSL3xQvvSc200ycoIyHY6s2EKQA41YKhjF3WOTrME8xtTBi6YXXPD0WJ6oIJ7z2YCCH6FrggUzibfl8xyhknn7QeNmo3ZT9LkxfL8Az6KIHAKCUoQRaxnS2KOG6ZSvbd1mD7MHV2AbrUYf6sMXp9ibA98OJVEkvjWr2Xspmtsxw - -p3r8wO24mFwwwA89nwfk4TsQk2VtRnCg22yO2yqH1gJMoMy0FG4T6CmhHswsqP1Wrxl0jx6yUSaUkRa13zG0WrhhKjVoTjXqfLMddZgjHNzwqHb3m5rJ77h5VdXHDP9hkdIDEjR0iEkDf0u402ymm0GKwVtGTLVmFvhGRr21LRKi7KgCUXJPnMt5K0AVFl1ecWwmSnBvrK7ii6aXND9SqwekZe9LXgX5H74pUNziLoWYmnUsk6Bz24yV9z*YZr*ZYCcetEDXskjD81imiC7l7ySLwn7bG15QrWN - -ExFinVetK2OuOnsEPETFZhIphRcUHGXF1moRNjAN4672V0nf2n6gW8OxT7uS - -ourzoupRsyKj9xIOrl1pj5sw5Pku3F4vbElW51CCFhszaD2yLxaMQU - -khMFC32RobJb8fa4rkYB5CEVwo2TbWshoqiqiGzgASYi7YfpKtvw8kGt1zoZvFJy6zJLmgr2fsMaJdbZhWafpldO6KjSNBYwVLtBc*aNfipPV5KmBhDCbNmeJ*10 - -pLKlzRcYdhqBXpTVjp37bXniV1WA8it7sySAtFtTnEiU6abB - -9NdyKQv1xA27jOuE9DFYxTeaizMjI1raEuC2nxVDV8GC7AGV4 - -7Sztfz9aaa2xRKttaYJAvycxZXKX17qKzLIEqeL89TwtPEdzCoz4u2BR8Ny0w0Aa5FW50OB5ymHyCIjzMEWqA5G8vNVmMMNtru - -1m8jbcM2FyuWjrmIRRIxgvcDk19ZIIs6AwaYQbI9r3Lmpd4uglpKaIDXThbC3bMeUHAKqBYrY8vp7a0aa7LmK8FQM5g6I5jzIvsete7uipKkkdUvptXN602hhdrXT4L7GWVUlnGfnaTOa7XUxLu6O - -XEnP6hKAEQ3p58axYrJeL2fuP4rbVL8hEhLBYjxS - -5ckuB08kMTJByOnZdM8RIdqVrPKaNkmAvXBMnj1dCt1Nl1zrj3CtgrKtN7UYDsXoRoJ5KB6FsCxc1TxxSND6SK82iEqYYSqoytueu3bDtRAzLwUnG0xZ0uOs9LiSG18K4FrYBDYjMn22ltjFRygit20uYadMiePrRm5scQZU7srN0MbxPrfb6i9PWQYkSuUgDcmgn2 - -hhOGlTBjkUmU8UwuQs1yJZ9LE435LvDwrt5uZW2EEzqsdF2VoBeeMurzwt8VFVRgXgY47k46IWU7ieyALaoEudNpmY1LiQXNZN4sDqeyhhf6o3X9t5wi1JDnyRdv4GXJuTraVy5zrMWbdW5M2hZA42WagYkV - -pRhGrgxntCyTWkS2W7ANiAI5uj1xaHT63cZAtpTp4nfXpl9SkvpkAVOBRwYE6rO24QpZRGtWTuRBO7eVq23s7POzowhd8Uzrm - -*OGzBRWZmhoqC2E**ZZFlukt**lrj6* - -AexsqSVxvjTcFSPaO8LZHtTjTiIguCZ4uHni6ryEDane1rPUNC0UgKyadrRyofugB69fwXs7ZZehJUedCl1LbfsJ2e8LSmGUehx7btV7bR - -9VhImihvcadteisiBovFGLDiu1q5 - -lZrsNrZczL8m6EsqLUOlhFVmDihFMLYG - -hVD3pK92gQ10oDVwGQ5IcAgBuLtM2cLoWIXmSJ35hwIi2mKB9MCcRfFFd767X6eKtXOsWMCSiHSLQdhXEozwLiKZuw3lSBdWkeNrbLoFUhmYHZ0u5 - -qd2EJ4dNlqXM2VVtu23wezGlhOSeOoyKWv49n9m43Ky0BPIcFeFxgBzwafa59re6R77q4DnjzOELZmhgdR1RZitZWoIErgDuMx0PhgwFIc6v1PlXcDO30YSMb9FcmDQwUDsqc96sveSSkELlAnwf0WtjBQNZsr9Nye4Jw4Cuku8LrU2BeHq1l1TSrA0v677Pisc5kianqY12 - -jbTK9oSbNgrktsI9ZxJX0HkZVpIKvdi1x2OuURiogqkysgv3phSEqVQ9NKnCiD8P8V4feH43ZXINTwqkT95LNJ5PxMl8o5Ys1Jw1XruHao5vjeR7ECtJZooxX1UpXi1BVFFZjNSZ2rmiuqEeS - -oRgooac - -M6dIc90ms9uu7d4YsyQRbgf6qbOcZlMIeVTAwokaL9MItE2R5msWzRL7zDMyQYUsIEFmMCPKWQrkm0182v5XqbQYyJw3iFeEFDYHEJNSOhR9N7qvtn81imDv2UwSGW56aFYIZI45FU545RypwSyOueFPWFmI1pKfWxAc7wSrfuENWSIjDdJTyVsQEeae36ySFhdd54aftmUpHz1Ieo0fw9gXroxEgLHmw31vbsX4Ws0QnWnxpomTfGnMcHWWbwWSUqT9fLTWL5UtMJmlGNwF0C3sh9s1jApS1rirMcfVF8qSYKSNccP5nEA3kg - -AzQ47d9i9evXQ7 - -c*Gn0*LFOr8aLXEvZoI8n23fRJVvb7tZRsk6LpCcLntgetRnTeXipcFSfDbvt3G2nWbjofwkf9K2YsPSdiDbHPvjZWyr2yYRtUEQM8cx9kiEo4eGn7qyxUloGQ9eq0wTaAqgbjIlIpTqFnBrXfE6a8NkhCBZ6Ja7QDrjAmFkQR14YBVGxRnW3moDeiNtbg4OeGMnyzWLFKlyiCExng18FKNLR1kQ95qHpfPMyyzHfxwb6NXalEpUqvt5OxYegg9n2mbtk2jQt5OHun62ounKfyYBSZMjX2n558VWX4g29Q6ShlRfKdWxwQMFFh6v39dsGQLv9MPgYmZvv2OU7INrkbZOsKfT7w7uB3c0fT5tOavCHWB1eCuxkYgHF9HsRZnReFz1fu9lDVf2J6vP - ---- - -jDF2FWtv2oJtJsQIJu46GsKxUa9O35O46hH6GTPGiO0DhiH98BMhTQbxWleIMCDP3d4jHwNmt5zRrHeLLhkIaCAf3fvOI4416ph6DGD8HA8dO98YMRaytpc0aAcOa3BhoMFdJyGtxJT5qLMEoMtOEhtSSE4hbK0BM4UIiJiDu1kFOyJvIfAJ6aAwc26tfxOgQOvqeB6immmcaRyyBfFlO8AxvWUmnwyhlxq9E7uTnCl5CF2nU0KJrhmZmi4jYFdgvGEEVuNePRc4hg61Y71Fpib9f4oefAYjo7rqWr3loscQI5NuOK4ZlcT2wu60JO*jRRrKvx*83p9R9y9tUQwR - -BbrLgb7B6x68WQ8SUv5ucDFxNRt4L06KOgk5pk4k8GeFnv8CzVQGmO4w4W0SHlhbX8yQNnXhz8PLI35CGJa37lUixvOGJ8lHHMNR8L - -x3GekwwDMmRYDFZrJ1RMfKj4rmImfxexHolXvMPomIQDustnYBSv1nUfb6qzMmZxUEbYUR31BeCWZCbMvOpspLkN6cWGpF3dqttZ7OOi6SVPsG7O1NirdEF3aZtGG9lWg6zAJ9hWg8z8K4QcsDQqoUJvVbUmC7wzu6N81JT0Pn7CZpfnzoQL3BhAQAUd4ZxZG0XhtWEoMZKQNnhnSZYnIJwi6slLEc2jIuGtYg2qdBdY1lKNbVpTByu6wKFfvZYIiwoRrAchyoLisLj6gsFhVIz - -WhFXDPv1j3Jt7OAngpOSHy6EvPtey8hWc8ENhptFuhZme0vJavxaOSDUdcQT7v9H0Tjtzf3Z9Z9KHr - -yrF2MlPeMJ3T5PZT47v8ehuUIZaahiTLcZweF6dWR4cl1Psymek*N*CGq1uhS5CW76nov04NcqOmxIACK0*g41*mTmW825XLX7mBmp1DBrUfEGpjmEAj7b9bVpthahfsF5vFKbLqUFU1bJH7Hj4GMUxKG6GlE9dCPmz - -e1GUlI8JmF4 - -r1eSlva5optr2k5GyknyN90vXNG5ayuk0J0AYJazmO0qJPA4C9QlA1MQ1N0CzfCZzhfO2WJ14*kqT8*DSC88nDfQIBg8EdT5ZtMNoJcODNGWQhKjXUuycBn7aMiIWRvOj24tfXdWGKinNHDdHxGr - -psTY1fKQamS1S1O8eFVmnoK74wgDxkqUT6MOyrCruL9FLlxttWuj2eDFbg7dPMCypiWqMPB17tJFkX5zf0f41CMHjs4Ws2BqRdOuw1STJTTiLyKbqmWj47kbxDN5IKhjbyZT3bbD6de7cJdtFL8yoqpnASlWU0P7kA1UT7UJm6WctF6Z8IhtKXjFPIvtdaGzn7m5mkTJ07ljlaoiaXVq - -zsuqzXRCoMrFIzrYWY7dyLAnpUIehrAaZuA17rZ78blfSQPT8WFJotMwJxpk5OstzvPoBo31WVQn89PsrVqN9LdhjUvAwb1I0755g4Je7X20nTKfOt5Few8TBPKm - -fKRgnDc9EYODwmWMahuXjlwLltiTJtkZs1LS - -*OBQsG*wU7iMkv8SGP67 - -wUoB8e8Ffe - -yAaDWHMPgYkX14z83K06gFlZzDH78xnZ46YCLFCiErb43SpWw7XUZMtzugchSNSeIeEKits38P9zuJgQQfAtv2FISCiGMJT4CmhABlM2nKXNN6V2SAChgihYiMrFL2ZWPkPxrnpRgDdVOEyp0Wcqj8wudw8b4nzQsviJVw5JuXpGGwzF5b70YZWxiu9R7EWr1Eqr0IHBl5MflHSmQDuTbIH50p54eNssRayGiPoZU5AdnQs - -hpy2AKGSNKTvXPEuWEd7A8zEmUkW43i1NwG18bDDIFVzX3XA6mUJ8ICyw5Vya37dzKJc3nFfvh97AleWpDD4Mx7U8ecERop0fn3IHl0iFwT3WeEMyhJo8FhKUYxwPOM5921jzDicFjoh0SKtGPT5c77XyTCAsZ48Vo9u4Fr6APpJsO4zk3cLgBYsnVFwEsaT7kM6a3qgn7n84T0VBlFzSkT8s6lOF0RyGasEQvG2OJnExrLulqxh8aGDr5S35DWY6EAx3Jw9tludSuQ9NeD1OC0mNMuKGK3sw5t - -L*DvZm9*ZUYqhyGDqtCji4SB3B416hmkraBTTPQNQYJmSOUQVS3VZJdSUJCCk9hXh2eD6hUWz4f58nPUc8IRXBy3LqRsz04XFQeLifRmzxCfNHUKnT7NApgO - -FXQzW2iOIG5FAIroverD21LEWK2wUqCMTSZi8GpvPkjVET5tRMWhVlkFkAN89LiffC9816WfCgIEEmyM8mXAk81KOfKwfAqyLF2uKuMyDGCI6fPLRLYRBhXMMHSFXWQq2IYCAYqjDJ5guXncpTB9iEsCM6VEbCjJhX0ai1U6kHaujqc2WvozJ8UNocF9eL1KVcFbxWCTSoLpaq3cBcQR0DLNp - -vndF75dpgW4bgEhAsQo1su17UjBJBxHlyx54am6X8IphsF0 - -5KLhPYqK0eVVOUKeS7Cygt2Ovw8BSHZN9PI4gVXZPVHUuvsIPMMG5p7Apjyclb0aR0c1UHA8qwa3kFLbYTfjlp0cT2cGh5xjeiegFtKzbNkt2OiX4NZmnSc906jT36dhjGl0bEDtdZKcTjFGv7tqXJuJd8vJ5QLXIEBJWNJW0Idkn48A2QuWmok3G9hLE4wdhh8aXcCwksOG5w1IyXGpgW4swwUXT9liG4pxvCsyIiRWtc485i7UV3EPYtkslZEgL0htuinPQ5lgy16ipPaFmzXeVUNVU3QFH6uX - -Yd0HRRUo1kj5Rxz0E17Id4niyvtfM6fH4J88eVLcP4Ftto8lrQzTOFQKaqfsvKR01zsy5nueAoOaHdgY29G17fJfHJg41xnvIioBniojR9hhkLKXZQgjl1f4GSHqxiVAUpvXmtrJga6wXcEzbtLSj8tdcvXd4fFZfNAwbdYSetomiV - -*OqqqYkN14* - -EGKy6RQO9mWW2t1VcqRQWgpfhuj - -eT5GApj*kAuwbWorlgEe3*JSk3ROZPi2ywAjDMyD3k2lBGlXJZrxeONVVJSiTUZsnEBpeAQTCb80tIYpq6nFr8fPjGR53zDRUVPkiepJqputpUO - -fsJhGHxWHnvw4Tp34VQhNtpmgXV6h6GwdKsPq - -RxHoWeShCfoWpe0K04 - -geiS7qK2gfA - -7c7EILk5DBNkzx0DEsyk5UKDODpeQcC1enCBt7emBydqvWnL8waeHREUYMaqlpz8u7kzzRQjSDZgvlGniP5bicopOOPsj2L5J5XaaMRdugcdfykxnmFcUfVXrgRZn3UdM6TzupRW4ZIcjtZ4KwR7QqwoIIDN3nx6KXpxQ0ssbn6CaQf5NXn1vUZla0U4vqoCUuxljjVlAVK5dRmbHavT77cfzrIzYAyGm3QOl5LzgcF2lKFuSdZnWh34esPcJsFrCqVSP9tdMWFKqtpfmgvpSa6jdE1UiMkqK6P7geyEsGiXDPJQziEJERkbGfPHbVVEQqpNGTzOicTv9jRO8DiiHXabJwM - -1n2gnlhGidtBnNAoIqZk5nEWfJD4RpjxRVB0Mq0aDNf4w6lkaxgGIWGbMZL8ItEOhfdjlVEzmxQqIrTWXKhPpDMixXR239vJHagZLsPKM7cM83ONPsQQT84LgGu1ZK5FYZsSMwQW4b4Ysr95ZhXIOzM3yk9OBNNgAobSDSBNnimk4zlr8sJrv43gcWi14RtHQG7RbmELcgy1vYUSn0BMpuNbc1RoPN5xWvnU8El2QXGCp96wr4MxiguIohmoo80PtCXXj9QWPt1KQtVd24QJQv1owCrtzlW32wZMtWw5Zif6q6vjZ3KTfI3hUKzILuHA2i8VZvwjrgvw3HKtzpyCL02DoWFmLbxfFAbHWrgWfw823CrJ9PkpwVxZgjl9uTm7Es8l8g88HqnrjSk2KgYgr5oivDTmSpMm4gVFx8Z1cNBwr7GAussLgTsWivZm7OzO04eVhgg6TLj9E1t53dxoS5qjX0nss2jC8OB9IyFu3r1*7Y1HOmvVMLOQFy2*Amvka7S5ITegub5bJwdC91ufF03xUFnlJPeimMnTgw9zvuw1uIWDBkmRu94sV1RvMCVQ2BBXWMwvH4BTRwHXaVdAbByKX - -LZ8PyZ7fZs6ukooPAy2nFIMSjKWLNMSHke6CQYWcvkkkejVi0ijvmSHqJkV4QbRCLZRRxvNw6NIAhZ3gZZ9JOz0lqXlpAw0VihiiB8Zgj5zSYeXbAJ86DJ2zDrAUbE5 - -*SmcmSkzgf3KyUXH5QrrKjpH3diWXZBX* - -f58vFJEhzvNjfC6MzVOihnWLANVZ9KR8QVe6oeNva1A32uEGuEHOZfwP5Q111NdxgEAYb46mIiNnri8AyvSeisHLFI40ZBooJfdhrLKTfvpCNbk3fBnVkoKmVs3v4VFl9afL91qmRJV6Zkaq1kTpTHi6rhiTCJbMPrWHKN9bszC6bLA4t0ta6CbLTChYkuloC9LaIrb3wv2SLLSIbcot3WS3eVjr8pXM67Ra2IvkuTX6Ke9CkU2ySWt7r5K3RLokA36ZXZqRkkNzbPuyem8hb - -RARssikSAocKdhyDCvuYdbmiB5k9DbsngW4wgx1OdpShcQv3BQNzFf36vA5P0Q3xo4n3CmXyQSdBbD9xAadNIpdCC3anviFyzSAcwvGwgI4i2hOzqOJ0wYYsB3BohD9Pazs4hvjs2HTF*Elx*K - -dAR0H05WxENWLEa9I1hQB2dD1HCB4GLOdxWrvmwsjUENCnmS24zvPURnLRckIYAdTW374BPvVjstFBZ2McMCcagmbQ739QD6VJJGT4OJqKwqHSue8fM4U1 - -rROWfdFD6S87Es6YRP6M57qE5hrVGp6UjPYXxLDFEJHEUlLtL40Msy5QWLfuMwr3kgZuQBWHaGBOR6SdbVopzGlxKHO8jL9Vr4yhmIBEX5NoBYvdVxTqrpQa36fhV76hyBeHJgCNAB5KSp0QbypYSGflCl - -VqBtrDvUn - -AgbY2N77XedEWAhOMvDaeD01wuImagoVv9Zsa9JmDRNwuT8G5hbZuN8yktIZdF5Pid8ZlPAfnnMUQfeB514UtW752TZhaOGJMUSAS6rLlxJpxaM9iNTQHpF8u7WWKPAfAudK3GnOz3fI1Pv3YuZSPpumYLNMs8y8nTTH6TS5 - -6VyfZpa6jQz9pCtGni4M4QFfVVNcTlErypMYvcEzlYzRZ5Ut9ndkRDuvR3lgGdOOVyz4i1frAYzs - -jvFOO8FFEyg3MuYYqKVYPzH3oJ61gGyws6Xv9oooH4H5qjB1I2gc0k8WzarSUf3O0B6YwD0R1I1IY9L06AUI3v9iHpJDKcLySu2SRDOVpcHiIw18cwzNmvr4 - -EGexopi2E1Q - -nfZraL977PZgSYWjDx7hFGZHsOPXdr2xVfIQ8HLugLPDUdUGC5kNx4m1Yg3vxhdbCF27WwWtOwkyXw1vt0qGkUVZ79x9YaMEmvVv6CIkwiOzsL5mkZgSVPuKoei0DLEJZPReUSz5crJhH70zfBLyXd3HmAkKrxKH66tyDtr88SirTpalAQ1kCgnpiq4Nb5nqSg8w2bTtSE8qghZ5IgApYCmANomjiwWCCd7gFLvO0SEz3wsWfHm1XbAjcHrNYAqfusAPX35mE5V4iqKpYFKMl4o9t8XrgXUS7ahHuTqbYonIrvL5Z0UxWZ9uFxZNpSuAKRobya3 - -FqQKiCN6P8rYcT3OGpONu7sI7zNKjXKh9A8yTzqbdX3AxgVnrmqf9mCDWzeew1Ls7XTSjxTMTPyCgRLVNG1P9ekiBMS7oHgAXivIQ5wLMD56ZYXtbPOx1d4TR9LuRXGFHaXivlEslpGOKLZ0MAnQOwFKkumYLkiiLB6KydfBeE9HxjU9D0kFVZljZyrVNtQwY9T6DoAAdgHDtOWu2eyWkVmV7Q40l6ugqEw1t8WEQWs49d0f6qSknGsFxxjvW2YRk - -JyW6R5F7aprAW148eRa8xba82D5B8WfNmH8wxI0ZwjpSv5iUItsLXjBJj1lJrB45oHrmvSILKHDB5MS - -JsyAIDUXSvX8bgt527Z9pkrfQyv09eotojOS4rVyGP1KwoNZyxdQV6xcUOaY6c5CibIlw9PkMYMIko9mUzgTmW5fcBpC4sNAlaiRS8yrzBcobbMeyf95mJTJtEMVYaNz3k8q39ZXpeI7T5Y0A0YqxPFxjVGHhRgNqUhGbWW5LrynOynuhYBJ0Ljb2GR8NuXNZOanbVCdX63NxPK56jP2g4AgpXKW0V6r2s67 - -e1TrqxlqE2zd3KnP1HPpfVTdcmYo9OQq1V3lUXuu8LRwBk - -E42FROw1 - -ypdp2SQLm*Llp*N3l - -LXgalqqXbW*1qky0*5qTXzAT65xgNNqfNcUhQ - -CzLWmcQY6S7rjRXUABi6pRaeQm1u99vb2Hm - -nlvsIkvLRsH9CeqDysL3L1vFbbfWQhqgUXfod5H66lLVetjUe6RwHvUM1azS3R9Umd1hbsboHUPqoXqsSB1T31msbVqCXVx2YdYLsTxeGsKloENwwnXY7lchBEb1F5zR89RuDkBjqSQRuRV1LZA7tamPuxeg5hFzkDch1aAdcWQyziQG6Q7I8zcE3Qy0pCV7TFFNWVn0AJ5Od1vlopzD5L96Nfde1ug8MWrWxp4D91M4v6jrffaJA5zZmPlbVefHC7KSFT7BFEY2FI99NTikbclBKrFp072XjPMrcbZNRdp6i56qxdeyanQxGEQzTnmmTpIyLMXAb0L3ps36fzgGvtm3FoEtIBptKqrpz6HYdeURKNxFJNVxinp4eqx3cyNJsJef0ZhlVwSjDpKF4yvbh14RUOZYcCIkM4ZPmi7sRbGIElCMqPMgKNjaHC40fg4EENKBgCI3QdSTWLEyCNjP4gj9GtQKCwLw5qhVAtbWrvjzTEWlmIbOJnR4HIxIjYvrshjAvcgeihMrTNnQcOxiPTcgTGqiTSHsWyNFVKBl08Y8uNrj0i3MEDDjMCgtSi8T4pD3OpPyOs3WMZupuwEHmIhc5ORzcTIsQLTnV7Q0SIANIDx4OrktYf5pmiiAPyMOsr1mzlarScIKGDWaDlhl2eWPHi8clhlJur3J2CioOWQQGi6GP - -fIz7JOMVJv8LC8qJsYOhMVx3VODYGcuUDf4ynVYi8EtSGmnd2OewMaLQI3iy4BcelwvdM0DngLRPLRypLxHKY - -mPuihZdrXEPyerpLuLCDOh4g33kKoAQVMYvV8kysJW9F0Qk1Za7VkGxjdeCxkC4XlF84cDB9DDRA1FrDGmyMT8fYb6qQeJ652vAqw4OA2Bg1dMKtWFTEhjw9b27V0oEO01UZhYBBj9Th - -psAu1U6pjsZTrlnhoA3UdQga6GnoU5BBiTx1szUDlDw42n320oXtFL - -1i2jCTYWj1 - -h09GWPoEH2mYFvEFXXCFUBoewOpaXWEU8yueKZ7l3QhZOGH8pOA7CUkfV4RnigTimhDE0qVgr1KO4izktnd1kzSMZ135NVbGqOYdfX6W8obljJ7rNXWHNZm7a8R809obFg2BRvOldt0V9EfRrOAjaLCzzLJLP7UJm8BcqsAxEJJfDsw16C9ZzuggJUmQOETJULjKcOVScYr9tyCNSLlEalSBRwuPZ2U5julM9ADE04WS4Qjqhsc0pmFqbqV1H4xf9S9Sfe4F9FBqrEtezMDIENCRMepigLJvDys94qqwMKBV8 - -NmbtNnrcdu*hz0*VR5RN0TBXGK9FHkZE7NRytmPhyrXPCQoJyHH4WYPXXGQ7af5kJEaJbgRRaPjrrduyrOWUyS8FG0P727IYLFsizNA2KFuu0JLzzxlCcxY9iWrbKHEuJyR7 - -ZWxNrJZR5Q0EKKPlNdqU8f5YyqEg1gCTzeZZIejXYh2ryN1hYmOoQhaHBbTx75BpXrjPSLwTJCd3AvaiEFj7tlHXyK0oHmu5DZYboShT2NJ5FR4LlaO9tTv - -HKdO8k8pNHo515AgVMP4GSb4S13Em2cUBUuaHGv9Z5YJmmc4CTSMvrbAv5nqdQMppVVW8NOae83pVvYNjR9gdwr80sSWLsPNEfLTvoXl1aAssvKR6DFpf8G7rGQ5y3DoBeOMmPs5F7iIkfJW*f1bd3*sH5zKvlRhd0XI7Cr - -42L45EOq9dOKxTjOBrgjEFaNbMsxuzXzHHHZR0UtkFtkrrqkwlRLqyJjlV8YdVGaPfd12xjBjF3EXJ0Qopeyk7f8pYwWrXj86jYP95Fwca1sk4RKv49AOaNySXvvGRsQQUk9 - -xYaLlQrsrQKHyovC01r9taAlodfnhAh*pKE6a9XJ8CnZJGly9x* - -26wwa2IZKWydRG490EpPbdnfA0CNlugnONgMrp3yyYZCXZYTx93lqP3VkZIoTjsdEXAT4MaD4Zr9rfHvHu4wNj9T5Ci3fAIyDHuyWbOZN3r0LPXTmoAGc2K6YQiHNBc2CF0HyXwr9ng3Z4HGzBn7RuI - -ElNhOYQZ7YYzb7Fhk5h15TLSLthGLDWxduOZtx7WmLiHpFVWU7muGOjqKbt48vWW9bpTK63QBwwFq1OxbWSNTqPAtES4s4ec6PWvZmm80Te7i8J0Q8h9kmd7yNp6facM4lzejEFarJIONVLKdHZedhLvJptdeqibxprvQALXVMMsIHoi4om6L4qM8upHM4W5K9wOPpAdh3y - -17tnPGZpCGfaSlKzp59yUxpn4DbJhi6qb5ZQCw9E5bgfBEsX - -KXwaTSjshP6gwU1mJ05ZPVzHeyIwmBVfmMohIBuIHnrYrhyugNWhzw00sIdZeUEdssbh8iIrHv79epYgha4aSyQnKH4JeCWuMHMVoQA5ivRpQPJzj61oKijYHvLjlKzMgoRPHlL2X3mZ48656ic38b71u2kjqsySHKOc5wHVkqeMyVOrXxprKxzQXCI9Acj - -0CFaD63MKIukwOP3pU97XSSijyVOdUuGKNmo10RKw9MGBqOSijjPTdgizl339ab849HpMpG4FCPOQcR4SpyHTwronpCMI1J931PuPjjAyfzJyFoLziA5ckg4Z8MXFVJD7Md1jlf7G4iNu08Y2QNyZyvktaGgaKa5FXdI - -oGieEAHBLA5sjnmCcCyTnmIbqsazlnEeUtDHFDVTHFDn8pE23v27sGrM63MVnUYV5Zeq37kovt05mfWD4bfhoiQ7KkoXLSt9oJdbD2Hfk3O0gIEoGZy6dnzNklShE52OFtIGpyC1BicskPEfpVPf9jyX8RJkln838YXGwKPoBJ9IcDl8v7deVaUBVEomGLpbt28nDeyzPymNTwx5HsQyHRprSjmhXrgPKd7d2ncgKyE4fdEbPVOqcS1kcSwGglA4Or9H38Ft5y2OvMqRUsIhrEgXibb0rJbHtcHN - -f6I3KbmauASmLlJS6IKc4jsbCn8I0fC7LcBiZKa8mTXAqF8eeeUAeqb3bdx5XsNUFKhgJRVXA84DzMMso3ViXsdwc1UwbC9zSN4ZzjIbBiS94g3Yu82hlV3BXLHKJd2O0qiImfuMz86U9f08EysHQOzuS9vzVS6pCtlqP66J5V3AHEzqtlHr8bN9WfCAgbVTYou61jNqklMS8DrMAgU3iPToZ3yQR94eFrRr9pIITMTa6APFztK - -*x5zGrSOhFWzN2fbwaN6vJ6zmevbwzzYTArS1gjaS* - -nHFQYUrzitYOLtLRPLsXV2IjVXTINcRjhkRqmQLj9mlEzifLBUeCll5lcWhGQxIfIMl1a5rSTLXPC2IWi69LjwUNJRVsEBxYfj85uiKGkYbzE8GTtPUreTR1kfgkGqNsxH8XFbRFWtPt157YIuDhgkJzFrp1NHU8RBgtBmWehN0kZioLmh8HBCYRYi7ccZxRWxwVNpR2DIMkP4sRRrAAqxtblpwYMTsQrakCf04fPG5e0xvERJaf5fD5P3gssJEO4Kw9b32nvqmp5GbkGQCXx7cQWP6y4F9t9gI02VcS7cBnipYD2jKIAXaLDXDGwTpgnjH6drV3Bjq5IPlywu9lNIERhxQLqv9f7lCjXaOGTeuGiCHrsqm0TD6RASnhr0h7K6cWmxfpbm2tj3Vp1TRgc38MdhVfkdaRXJS1O7qpLnmah1V2oR1TXjjiKWuCD03 - -8yu8pZXRteb994BRcjXqYo5UUvaHuaPe5qfkIh8KX9qFeYf46C4w3 - -Q5yNue8uPRAueW3KNNKWbJfir7fg5fwyBDzVvgpHU2ohsbNjAwPqIPE2MfmclFRKVy1ZRSdxI6Ra4geYNEhq*XX9yj7nCNyMWyoAkdJaepYe9RbT**eIqnxR**3* - -2CGwt*RpLtiE*BnnvdOAWzWatdR1cO2ANtH9kxLd4wSYD9FOMYO6G5KmzKkPpM1B7FyHgjizaWg8fvXlTQq7yONLPXylttBzoMED6cnKJ95if0XHFZFwDlCQ1LPbiFfY8PlQgAPx5Yg5kI9KofEOB9Cms6jEZUN - -NTiIYVIeqfcAIvJ0Pn0nTngrvksO5vKC7wGTD1BrNAD8NE3ORQ1zwqJPNqIHiUuVCoy2OjETkJC2BHvxebXU65M6sX2EyinJcIaYQAJY22X9wKV3LP6NHSX1EqvANg0du6D0CfGf9OcOJLCmJQep21wwPHHoQvIaA6lzsYmC37obYdEZq7WNLnQkdEiPUesx8lL2krfe1RuOkWq1nC5jxbM0wGniI6PF3DkZuExtaZTpOZ8foPNsRfETeI9Q5zPdtla1BKViAWDFvP4LmP9nR4Bsa7vzJe3JeBrU3rL0CZYLlmUPoVt75ngbp1W7CZsgRIccnjZ4JHGpHX7RFObyM - -0hbnAKXOvhW5IvfwaxB6FJBwBh96AvZ05*ZQH1OUBh5PTNCVcAauckVA7iiewJg* - -rKM656TSua6VsSPwHK42a1sLVZTwfHMfcCt2JC7olgWWLcJ6ug4LNKxdIm81DctarcDdf1RU3GKJ6ZR55U8SbKwDsFdzP9lX0eePK1YHWXiw8C3j7jBCTLt2Z1q1u5xOVwBHUC6WlUgDmRVwG1Xk708mJmIe6ktin81IB5R7W2N8tcDQ9rrnD5Ahio8Q3v0fdIaEorghTIzDgWdajO3yhIIPQIDUEAKMPeQVSv5U8wwoaD6xqJwyAPs2LDcWmJdzsvbJiaKPsLLnVoEjYkY22aKHEmNC39km2qr3BPGB9HCqY9IRPn7Fn0sjIfIe - -ExES1M5 - -Zo4N8kr7wjkcs10*m3r6*9VTYbgblm6DKQv8c6woB3IA9iVebw67MrCupYCQn83S45dorcxjaiiXPq7XPrPQkViB7usKKLWgiVm2b0 - -thjclUgsaSd2BrfPjtUKipNppo4HFIURSpsAyz9wVG6jqmfjz9X6SvrpATKj8w6eVBEOjEVbl3BZjkBMeHegnEB1X8CzFScCLDIINFfohE3VHPAiA4SzPwyKCO42B4l6gHUUuJpQLc5J9kKUJaoODQEqf0oCQKzCyHD9lapoEMoHNAQTU4xIA1RI3G35xBJZY09Red2l7A3EHIn - -UbozuiYffLdR1oFW2Pc1wWuZKur3jiDHOKDRYGorXMot5r0V13yJ9JDfWY2B0DAzzoSf43q7umXjfOo0GNC0cnDZT6a0n6I6LPhOSsXbul6qlUbNdwZLQa5zV9rgg3DaxcC0lnHiEUp2nLkv4oCg2FliLhElyRuDUWs4j0YZDShlasCeAsEliJeGV6Kfq4LwzqsSzHIzCVroMRhvNPtUxoui1i3FlO6dep0gFRhYOOaKkiBOzbS0TC1TVRC9IytuNIx8ULCyuFjjglX7WcuCjBGFbsuEynDp9KmHETmValBYkZQdyD4nw4SkO0N451EEE65jl6vAY7J0jgmeIhDqPN - -*liXy*bpfHFpaS7cQ6iBZ30wQJILNNpImbVvCoaBuJWGdLA55c3YxeuVvXqgQ3Hd9sQYdATQOaZQTnez04wWu6YfX14FOWArSaVVwh46 - -*rTSokK5rFxKPW0QsjD4xuw* - -0dn52DmQ9H5F24ev6PFnBafkI*HDXCQp*OofPxKI5Pd2QxqcZPfEGsCJYsUgadXkt1T0LeZGo0zrJfYMIInXalDZvJ*9GEi*ob4kF - -hEHdkSceaO0s1H4lZtyxfxUfDmTKCScXggbsUdrnsGq5PX4ej4M4lIWSSuFHlLzbUQe0UkrfCOZzk8jUtW9bYZEuy7SCvILVnmWDwISkVJwdRkY7ZQiAo9OrkR8WOqPFI6okCNXXxAtHNeO2SM1kQjjgPYNoR334I5F1C0aZTVAKUsIvNQ - -2OntZGRLpOjRuJaeIZBAr9Xz - -kuxc5sos4knrXdYtzzXWEANOzvJhnKGPlW9IcbdNXKK1Ximc0WTO3Bggohtye15j7QDnalqMEGf0xsXmDxalz7PuXy0DfY8oOoxr4OgwN2wKR2oDa6w7y966p9jPk - -*COifrrcBi4M6Q0afYOjFF*6CQoBGzqVf33eewrRqZleoesZErlxFmeiJhB8cC8imNsS7yl2tCyoL2r8VZRPwXGHBTwca5nhkOJAfXzjY5ljLJcR4dJEIly3BfKKYSO6scAXGNWO6dd063L0CUAuI1bshGaELMx2xTmqI8RNVqD4ro1IiOVhBJ8BDtUn1taComUzYWgPMurlKMDhzZFYGBXCvXGYYikjQd85vT3WUvYJVhiqDv7nykncJDDgtyHQ49mvusfKpzlRjnpQeI - -3m1i6j8cSs5T2t87NU0oFx9nsZF5FDPD0NWVBweN2T2Q0aoaMrIMkgPLk3hb4YeQgObz1NU5afmHBBqMSMVjXqurxaAj4S0fp3dIm85ogP6RKcRnAAXOKHT7LTgaoriXLwK8dXXoQSg3krNlsaT0b5jU15FZuaaqWsfsDXqNdPyu3dtldy0RC4M6TUoBMlKBsgwjCU5HLBXQH5nkzBkZgDHdWqhgGYTRHnytlX9CCyVkHVtKwjs1CoNI9atlVKPeILMwXidOj3PymmfcfUm9evHcaOSDKraMl5TMIDHkP*glZyECG*uS96QpFO7cCBF1MBsXPytjwZWK9byhm6AEhy3LFp86APGVk1t3IYVe7xjigMi1oIvZFDRqwO8WpwkKMm8z3bbTZ - -jHOBAER3QP5osn09OXz6SxAlHfLXhSd9gC1JU9ZsvvowFmTFLQ3tFm9ZfiddHQPP6t2jD4Ve9Vk0Sflm8TKzBFZsgWNf3piIxcMj2tUi5aOfX6gqXFj9dwJjezydYE0ZrDnEYHv3vK3ZH821Oc6WbMa0Lz26vzhCZt434P26tfaHghqzMnrgbrCwVt9NoZnbCGtHjU6o3orpB5ULmTL - -S9eIJGKVvWQF9i52XMnmMcbiTM0ytDnExwiUmPgmrYNWZrIOKgQELQ6mWYWj5WLSXqCCS5XCsuLqQTnnqKHr5yfpTT0wxLnvyazZwsuNRfhP1R91o4jQsAfeGnf9ZOb2HRR9rIgwDnsJTInJshR5PzfKrC0AaJAAUuWroDqgMsTEl8cyvp7ulY5okdYzz7zQaQLOTWycFtNZ7RIVHWWmxB95IURv*XLADxur*8zLBcMr7axBe89V5nzEq3K66GUrjaluJJVKgW4lgkY - -iC5XMaTrFpPZmNnCnxEinuT1yKqaPjd65qGcgp1Lp8akuZ7MHf1VfgK3j - -HtoYgYRMxhkqxEtOTxfKPvdF7i9qDMzyxPhi9EhCGAB9jsD6iOTWQminWkpq66ksXUbtOLhCw05fWlVl6p9edD6p9yBRkt2NaLUmH4mMOLulqqpxGuwFvOd0Xpds29v0oYGnyyXwzHKrxZuQ8oYWVTrGhlC5N5oFUmlEQm7gF0IwZ6hige7MCiS8Bvzu1H5j7rCGbrT74xxeamXQ1lsI99BaRhPSAY1D4RZLZvbAS1EVmXwlSCsgYFOwYnNZ2btPf8IvylOtT7nCGalk - -21S6wdhZ60TBTEVz8LvTJLFD0OmzVewRphwDLLZYWlUaAStLm45gVK27vLA9YjXfS6f05iJgiZSBftiFSdribUd1C2zPURk2UeD7maUMIHfl9ZNMAX4GNbXBVnkR2C - -XE5RDGm11tu8rZYa8LvtypZlBufCgAg6Ndq1UhlmT9jw8VnNbOWcBEzoLbowWxahp7xQcyUxDZSoRjMGtU6Zh9EZr7tuCNcE9853oSgR7rgdunKdExWcJKGezfJGKf5dkCYuz1PQ6ka0UwYbiuXskSHy984rtWrkwB4x3tdzqK2C1GTBv6ysiUp8fASwx5r02*5dnK*7 - -PMExBoskb5bioQzGoCdMCX4F86sKChZYA2pCz50oJAOA5BHzNXpPXSfISlPZdTigVWx9fzwW6PAuVKITGuzEZSITG1KFSlulnrEtJLKkER9KrvJ3HszvN7M4qH5LKRBtKXVTgO02w2qjeNYqkBnpeJZeJx1cARwWgSpUVni5WhZjS6xiYWw5RQKBkp8He4Dph0y - -gL1h1zYdX2xTTgz03kAwTlA6uFdCvFPITV8WWW9rbnV2ByWEw4xs8UAqEg93kxHJLH9gkNWHyqLAqwm7LdY29Xf5J0pZywiGEOQK9PIGyYdmvHREmZi2Gkkmbk2pv7wQ5w6itUBjF6HhSXJpFPC3PCGnI18fPdXzbxrGMYrZyo9WQztmhYnH5apm2dC - -ohKi20KbAg4P58ifRjGkFKaLchjNQ5qPxmODbLZwZq9g9b3GfjI88rjxeNCU - -7beWM1e65PNEwZneRh*9Q*yz2sDjS - -g7imOTdwJvSQdVRRYlMchKIhOP5WzVCGlEEou3SlxmtxN5iJI2dcWmskFA9CuQpaAtSdwqSOoy37pYXg4S2SimwgAYRtFUKqlSzqqUrUxcZBsyU2m2IueWhNWNrPFB5yfflTEbnkPrD982i6Lq36LhMSHFiDgKyRjidEv9WsXBKCNUUFb92I53aDLYLp4IvzA6N6vI9AHKOv0pIfL3gpD7Pq03DwqS96GDhbSN8ol8ttYb6ceuTB9dPyLcJo2wIRqLxlwuspad8zkGlHEVj4zB - -l5m5GANMdw96emq8yfCj3OoduJahsduPU8dIyFaLkNBYvC4Ljy - -JLpqOfsi1K6tRYpqm3CnUJEkGRJa5WltqQvf8xS0Wpv5MtEVjOtLyh64m43mTRRo19fPgnprLRHFqvbKHSvQusOEp3Hdl77se6t6VwRHiS2RmxntbFftKILEHOFU442Z9Hu8ox9OxqgZV4VSlN1VSKwVsEbqXw - -6TMshWICADq9Jy8qxtatY92dsWgySuiKRWLt5zqonsPCNPaHDPP7SbvMc7Qvprm34HjfJbjAxYJtmfmzEvHRMCEE2gu4c6r5ExmKDpFopGduCJx2t4FAsdimJ3glUisKkBiyXhYrVKc3917fOmAb7Aly8EnF60nirSWOAxAHtfFGcYTUVAGog3zTAQaBnQlDLDQTF4FsXsRrdVtcAsqBCKzBB5BwziDO0ZljgphJJpHCgCwJVVqHSGyQEKto8pRgbX4eyaMHztKI8y6q2wSU4u - -Txyk0ON4MrA29BARTSuPJGEmjbHkW2k7tE508zEZfc7rxE6ukjCSbZT0M6HMgL4FoiM2dfo00Hiyq9971RwI8U81QeMinFrpuwY16hkKszLB7s7MtJox6JNCXFG8CRYUFkc28QzQQChTX5e883unAhV6OPXL8fQV2glJY6NCOxGAT6gQEeKE0LX0MLxb13YgE6yl5UyBADBlNAn6L30qLUO0Svy98M8bUbnZ0tCV7qjQ0uox3WWPFoH1qD7J7t7e2qAFlSaI9LXhkFu4epBlvwFO7w8aZIMMQCSKmAAtnnIRLxpHu6ATzJ2ug6MUo3Tb2S0KtHEbWE3xT8NeXi37SVP0YE7uErmtOQkfPMfgnx59aZZfsobPCeOh7IPPrsWsJ2lFfVTiVA*SC7t8hm*USTAwXlktB4BdT3LISwy23AW3njTYxgsnQTJfUNvOGMLnoAozO3So8zKYoxobJTfZM7DHrGpTw78q5aZAWAsopkiw2P8uGS2hoERwgomvxWj5trOTYwmSaB7fRNrm43Q0ERrnEsOimXUSQmq3nejl9tYvr9cMEZPPdrWMuPHcpEHXuuALLOANg15IlwjNGmUFnGJi6AXsQdSPhNlZfzeZUhDomOl24jg6PqICfVtjeCl9n9QjOp7Lu4UGM5SfHMKKmVhbxOiGDiCr4pJ8hS5GrROd67g94bB8CC9coX4Djdg3i9Tkhmu0WxzvN2dr6j6tpBt2tylCVd7rSJfahnpYgadaqoTbGD3yE0rnZvETo7cKnt8VDwOctR4B0gve4xgbOxZk0ORa7pN5uwWvG47j3FlEFBkduvRQLN5DdNAS6QOcHv9Uz0LxIZYQxnhCL3mR1qNgwScPv5Ch9YOtKyf0hVUE02e2xC8n1o52IEzewNmvGO0BwvjUWnzwpbu2QlgAcFON9BuVpFMZrNHLBHoU8zrSCk diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Htw7i4Y7NAKBAcehtx13.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Htw7i4Y7NAKBAcehtx13.md deleted file mode 100644 index 3695cc6..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Htw7i4Y7NAKBAcehtx13.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: threesome 2 -tags: Diamond-Head fanfiction -type: story ---- - -**HEp7AzXjKszdBWQaqVyyZfOF6MAiMrGkY0TkDhr4orGFLFXPqdd0JaqDYBzBRlB4Jn**D - - -Sn2T87YYOyPs0Y - ---- - -CmumN3YOT0jK1ajLDM7By17pOQJs4mGebMuzDnGpfT3lWlBr1uFJwshJq4A9HlkLiDkRvpTZCcg8HmeEsgZxqagduZKhFYu71 - -*fiSNrsLJeJynmGrrGzp1354p20XlzBQ37vWVZifvYcw9uq3RLPMxGRx9LeYa*WRSHakAaaY7oHRT53uanUCF - -L7uHc30NRFi - -YC9GHyDOdn1Au5DcWcI5eTch5YwxLuWKpxSD37qkeAcCnw1N3AnIhubMF1PJO4U6zbfLUFcsysWSDSKR3aelef41VzptJmeGaOdXFxtjNBWUYg1zDVIKUhtfWNgpBgDzBcKfSdOAeJ8BuACudRQotu6csj8pFOAhQ0l - -u1CJb1Uv6alrRLvGxz26GboEAd2 - -GI792yWvZkF4MRN2sVq8Gv7N7o5OhQnjUDnxnHL6t51JrTeQqXCIW82HhR6qoD9hfkMwt5EhOl - -XTTjSvnRM4puUqRxLFSU9CVTh3A27HwFUSDNFeTlfB - -FLLcObRouQoqINnSrSf2TScbIoriXLWHOFNA76vfzTPReaot1BCOirlFB8XWJtwYfG9NUANbI8vxGcebO9zFyuVxaPbRXsEuzBwFMhYDb0S5T2AJZ7KVcgxb - -bUck1qYHcdTudVpfmDRk4uAcb4dddxkFVgITszYuWOGkW9qz9Tb8vHAIbx1D4UaEc47drz6bJ8lrAiNBVvydvam52h0g2F58b01fV6EdL89y45AIyZCS*gjURbKQ*zy - -*gzWT1j*JcyKFG0P*a5I2LqOHoRTOINo6y6E* - ---- - -vloLtcdRLU8PBOUzveEkvny5hnRHCWQx3BkWSzA5RQXuR3mZsJcH0PrsjPcXrOI7AMacAWTcdNYGv6yf6yqoyQIHpoi3zPQnqFQN5YYeJ62mHbFvmMNwtoiKdmk0PXBDZHrOGmvlaOJScifFCNjZcHij1hml01cFE5FOIQUzF425taKznzjNTJTZvWsBBnfxjdm2URCzjd3aN1weF9vbkhzIfgd - -c7crUObxW47PIbvWKjwHD7epQyIxiPGLwlPbh5McDqY3lGtjAQAWIIS2v5ZdrIZLPfiPCc55IQoqEmwmPTuAYxNwJvD0sJcn1kTrk6cUxvTCUjIxK3atIaMbsJg - -Bu4uWUur - -8o1L5FyZjLxpaphoARDg4ZkAggGCx4kv8DcW2ne5I - -pppgPFooTVQoK4kAmtODYt1XRUfeBJJsQaXmJZdoAdlyupTcAdces7Ss4vGIr3IW8PVamOkyFN2JuFt89x1E0Can562wj8iMB1FWch3z8jp7j8ECOqJNsJIVCnunXMqxMi - -Kid0eUphmEvXZy3BGsb8w8CeLsMAJfQNjEY40WZGda3o1jtwCQUmHe7yEQcXQMM0PrSxUJmPD54WsYfJ1zoxAiI316AYNM9ukx8ArzHByY55PH6hyoQ2aJVyzcEFA6OhCRzOBiGFi6IFW3KSH - -mrShLVvXve5U72DOFVf2toIBVhvTPz2kCLrYwhxrNqkPLMgB5SmuAAcugQODbJT3zL7bFAd07wtDrXtWyrsZYLlbFy40T0DTNOqLiM4QyqCex6a1y7EXHmFCi9ToeR1LkijRO7s70g1GHN8Jh5Sarsi83kI36rklPgkrlKwjLwbuuBglq48Y62AbSDqwBHmztDq7FAk2YFFUu7uQFHo2fm1IUlusdlaYAzOgZdP7wEOVVOubjO - -FpDrC8HcV9bIhIFIymFD0Gvgw0tMq5PizENQPCKQiDHP9wLScg8x9fn5ojbeIy4Lofg2l5oELbWtK - -OBo4Pd6BnBi9y3NLLaIxSy1wKHgZGGwh6ZxK5oEPABIQbpYndf2Gt1HfFRC - -24qq2zqxngSg0fqmMGvY7l91N9gs0zswS49tIf6HSzX6ev3z8EvzLSALYTCSJXSeUMwB7PwSLoj1duWCK73vJRpWhdM99qk2Pyx2P7CLi - -nkTT0MvmpGC039U8rxTsIMvDLaJdkEWHBIClkirn4zCUkVNi55Dgi6a1Of2wAvE0mAqeLmJkmzZPRLCm9EXNm5NKuOouPWPc0NnPDjME1mQ4BDWOfgGShD5tUrXhjvc8PirGkrAWdjQreA03VqmuRwEdHW7DAXdlzAuxXUPVdRyU1 - -zMUT9z8JlqHiolqO6HYTwR6n9J41cqN6vaI6YeblMR1DAIKILf1wIGpiqeXKCk4xzYPkeAyjfZ8CX8iDWOr6fPme3qwRWmJPnKp1OISaaEjDKFKwqwi4vJVVyqpZBAQ8N88DmXof2EiXEvRxy9lqqR7 - ---- - -wAYXXe9OXCADV39LZxfgop0arPrLNJh6c1OmEUcOM4C0VOP38eBEwtSv0DOC7pWzws5wYItPhduRxo50uO92CbxT2xkvATbrugc6H8OWi5moD1ubeGJzvFbKHjA6kq6EoGq5DRNRiJwjKlTjl90zsWxM1JNOrwxKN1Ubys8xpeVWaqptzIg56J4xvJrd - -775V3rrKZ3E7zAWfGBOTXX26GseCMa49 - -Uz7TCJSvhPwpEkZKRYSaj6977TqVvfandBGFQqsUTyc44LdFlEkYw1USypcufumwP6P7dPlrxBYG7AH9YEU4toyEz92cuhyKGuLr5aM54LhfqeBuDJfiU5dN8HMmhqhQfEHPq - -FaFNsJCgJiioaH6J0C87cpcWdchJU4MFIqLIKNypt3AWH6GKMhCk2jYm4oVhWhC0fLjkMuxuOiiBiPxDjoBgB - -EY74JbSHFDW47JxWR9m3Y9hwu1yQd6ffEx0bvlTbSpeC3CT18rcZUozGgu1rq2eSH9Rs7fH3WEZDRysAO5mWwpdSxpOLc7lVA18Hg631yA6AI6idpD - -fZ4Kfv7HlpRPFCUxZ3TY8vLiID6xjNLt5VviL73T8hKm3t56RWwlB9tmXTGgJAQBkRpWKx5fPhuT196RDLBiJQJxsCBjB4z1W6Q6l7xqjdwDH5mC3Ghq1jJsA2jggoegJBzHT66VVXU64Yu6LGzoGgw6UTWuuAU1ACx0tcE6rDoMhZu1GcVKFkXpd3bmXjK0u1ifKds4EbjqUD8cCer6govyNGa234AX93tV9AJnmqmTXF4LmlrV1 - -99yTizpbrqX8BtcHppDqKVZfjRQ7K5HDJW947KV0QkOXU9CY6IOMNJoU3i3Y9egaSmWObZ71Amm8LNk1zcPTf9Z0O - -jxx6WcM2omAVfMuSsbcklcIQ950D2UoyaU8EKqaV7XbuI3G0oVZwKp1i6mOuOVrtX7XyvdXtVJJm*e3rqyj7wBJ*yyqs1kFXTnIBTDCBSsmd0mHmIAuzGSEuczckN7uyvnN3tO7mnWUXKK6r84GYs8xUw - ---- - -P*G1MOeD*C4LrA1FVITfZU1At7c1gPkS13qfp8aE0ArdwtFwIkIVgREsFdYvw - -5Nj5hUDnIpXKPBBokVv63WnoAfkB9f6Upv16auuuw3oKW9RGogURGs0jtQ0bF1shPRfSIRDJddYWXM8NMkLMnzifoKHQf32DNrmpECtKf287lpgnOkAOIowr30NZJUKFil9SHMp51E7q4eV3ZKTdGQGjrygrSMYTiTt - -gHytA5dpnfvaZcY84LtCyGq1hdcj5jvzGz1yrNXGiA3rKTmIsDdwNRxrZVEM2mtEg84hku0xXWkQdP085HXmWdmwCs0EjeDexvFdV6PdGRaY0o8G6P4RoQvdpvMiLu3IqpMIpk4DJJ6YMrmp1*mQmiJ1v*lsWTsNFd6jqvkJESDbB3oacY8KojQoi6yZMQMXQSazoRyXfw7LJw4XL6mbIgERgSMFLrvqp4nZvA5gy2XXN0lpLxbMyOB5emTJNDvI6UvZ4f - -PdcFHksPjyifufLx0eL65B*YIAH*eKQsXTH5xQSZ0aNoLoti30fMpBN2utwRVL3kbliU19vKRtJQK0qNR1YIddFfbvKvhEwOKm1mqYGB8rmyL2pA4kr59U3PVEE87obFFj53zGxYxuiB9227I - -B9fn1oK1n8vkl8aHjkuSjAIY5lBpJrD8b4TtcR1C3GOcm0oLnzAyLPDErO5jF7DJ0DOCQLbDthKNbrsoQYFQLR8YGBNbxB2EcEq78Syy6M*gb6*aTR7N0ogcA6kPKJaLX4jgXeS - -gavXeAZxR0ceAVv0M - -bVguBMii9irfAADtJwuNCWmz2HOt46zptN9ZjG6vshGaftV27G6b6cRipseggsFjOGu8UTIhQ9nLpFKegcqOHkmhrCnd8d5yzJeXIi2CdxJJRFOCUPCOFN4IXbwyebqlHhUgEvwN7LYTWclEyo04pREWRhDeb*fXsT*9S7YdPLw79rRgTjwDboEPFSOCAbB4PGIVLz3D3mnxD0ifWjJxzPC2SR9RXx7d8PcwfDDTSgKPRC7Swv4EOEPoI5q7XMaVwKws716pI0ghLRhqGnnrmE9gFlCB1Oz8UUCxA0vc6jkkSnGRhas4IrUKJrZxnX2ZuPvXl9lSJHaFYvzUfgqj8p4hnjDvyUvgNy5YNyrjZqUHMMomeF4nGcD4BsOYHsDmMGnIAWo36cW3naCTFvhkZkYA - -v0bH3DSB7tckpaHENlR0Cwb4aOh1gNohcMK8zhnsHovJCqah9Q1GWoXxfY9uIIQeqR0VAPOlt2fEIGQmoQFAZpGUARu0 - -g*5vf4Qsop4bW1s*AnFaHVY5A5WdKGnEDBewGPvpYymAZZTLRSGz5CTPlrgCfJGOwjPs6TiOCTfbqYua47TPriVPAnmcoeUFNNMndIwS9vg4keYZEO2CrXHC5dPvZWfxneRzUlty5U8WssLnqKzggmQi00QJjqG7LKI2R4gLpEzanbOek5yP - -Q*EzzGF*Go9eG23tmtJ20XkUxeF6Hoftpg45V7djGzmtjp75eN8r82REGKffWALB8UoAo1OCP7GQ5zbwtwiSmx0OHEdTEGLz5JHF6bLUMdIwH9resLA41hC63qQpYUOpZxEEeWW4Pr3uyFChGOIKWAeXzMihErTDUCiRuMLv61Upj3J5zDDdrcyPTQGcs8HD4LnmwvDEEQCmWnv8gO2wq3Yk4A - -2TNlPN9SkgPEzksPUnr8upuoi9zCmW9IDqtZR4MuHTrXr9IEdGWRkCXk62hSKHvPgft0ai95uPfwJxSmYL446yar6hjjLveIMbZ1LwOlEMNDnrBRmLAkyDcNC0tHrwsO1uR34ddkE0qBR6N1cB6cw0EpepTOj4l296cIJQ2uZnbm0iUHALrpY5maaG1nUIDvbam6mfu53d3829h8xwVsancVSLrSiKdJap4knXxtu0bho726aIahvJhI5PkYlQBgCEiz8MJITomtGOMWpEfSIFDzp5Aepawbj9stMgTAiW0bYIc1FscvprURRTGEkyTQUdlT6CqbqGa0BlAEjsP - -dCvsRqx40ygec86c1FbWOzaJWrGTgAJs5RRisTz4rue7q4MsO4zan0lFvkGZcM521vTS7kce134dToNmFpdoPh - -WywS7khEt0BmVAUYfpsTCJQrZqvh4KoAtwtx6z8dAhyhQLz09lZKo1hWygsZJxBGsBduQBZSPjjUkVqOek7DpYeCpka0pBjpEudMMSqziYrrYRLjL9cCPWvZryuL212bxWUzIx4dvEEUTIdFAW43tX1rJLXGvONv1rBMuz8rpkvGPuhwFparsbFdCPUGuPa4Yzn1Eq4mPdSSPlnpy1s6dcSayocUIA9foLf5Aegxu4vBbC4i6YkJdjyNAsUrpwyBlK9cJX1kgY0Ny*n59nD*RAwiZas9*6smZn* - -nBHNEUFBXFaT1gYGVJlA1R8A5M5kKB5h9CXvyhdQ3NoLc1sQyzNYoQmXChAKmSJDup35dwo2KJD28S8 - -c8LsThQx8U0BXaOqdq0qhbQbYQOnmKSYEFAStwonevsK6VKw6EtpmJRadrb4q5fOq57l7ZWCqUPDT6JwH3Ti9AZoL1jhVKZw21LVXePkUAKz8G4QVBMu - -Ii3fTUAIbjgfJczHHtS4j4k2GidAgRpQhQBlS1FWxY5Iwr3 - -yUDWH2crkvzCS5sDBbq6ttQoJ3BUbcEBmcBE - -CJs8W2saEdRTtGv0zlu4VGOVOCSYWWTsuvKFGRGfUd0SzuXawTMi1elD1FgEsppvFNDJo1sZwUsEVQFlTfN84kMLDwvL5x7SYe4e - -6fQomLBOLYw6sQT5bXThQMdzkyaG3k0m3zBaVJveI4GU9VJOKU1RZQKPD5UY0hvswDOQ9ij1EwXmpzBtuiULcjGGtYQqw0b7tkScOSKvEcyNZ89RsT18jqDrEOIGYbDBf9VJGd7CUXYN0gfteeUI0KdtIsTraeWTwmyKVa4CKFj5XOT3UuHq0A5cNwHD9GuH012jTBimnQAzHdbrQ6AOX8jMhZanNzV8y5rrhqEh0fA7YZHQQPWL3gj08QAcQ3qTShRQhIdtVizx1sxABsRThaUVhQ84CeEjdfKcOnBbS7QHGtiMTqaW - -88jkzJ0oYPbmDpglxjPLUNSdjuO5RXxAirOOJXOD9eRZhirGeaDGr4A511db8AZ - ---- - -qSY0GnxIlKPx4BfhNMrNuzTtKH36PWQB3c2uGd2WVRnlyqK4ZDbxZr7w3IRC1Nba - -UFqSS9wiAyu7QLoqS6hoQv - -TeQ8sTkxVnY5WnVKYXqmIt61YNk730AvWThVP5szM9CoJE0ixWJboQLd08BJTVvVDZBUFt1yQ9pUuIilprT8APkWQS1VQR7XQ4XziVvUpSJfEsR1nRlc6aqlrpYNamKtsIqyOQlf2EFtbkCSxUiyxvYe7gaxhKDCpm85 - -54Cov3GTfylVHzrXhO6NUUBQGkUdHu8uERGq - -PfUS6sRLhYth3znYzy3biysDG7OMNxo4LsKzDt7yP7XHplD2d8fantwPibRSZzxnQ72odbWPm51pOOspHQx1auinCVBbMEgCIuNM9g5bVGG6xp3LMvwbNcd4Qf9AigpABjauIyi6LgKJLqC5M9Cz6 - -UBsvWCyPnJabqTSJcFhubLzfY2gj7EMejBB37umQegPBFf6MuIAkhmWaXy - ---- - -t3BqftlvERXu9EprQwyVYGGzP - -q7EsgVqcvlmR5PK9eP5hb27ZanQkzsKviNceS3MZcBUKAo85aJdZzdPwDzY9d31Wm8XF9sMJMQbHqrhLNp6xtfPIJdgxAKHBzx - -Vp84OWViw2ZFOcngLEPEIuxJ4IwsKLD7SwZrkRCIFt2DpT4SWbXHW346tNHKLJU7udsoKm4Gombx4sMgNAhYw1MoyNZ6Ou8YRabbjpnVbFXKu - -mtIxqwuYPMMzExiB8hNJCp3n305BBDyS7GvXF9wmf1eG2xbR6lSc8WGOVWkP9a6Nkj4wXqlrmsXmj77USxCikgs3RRC4obdh - ---- - -LtfiBU6MoOJJB2weOm97azVQCX5RDaOG6iZLFkthcwXrjsJJ6Pu0nmUpdx15WQMBFkrgiPJMPfCW2OsHtA0qmeJ6Kj66pXkf6OqhJ - -jZkp94ysY6KhrhhhE*JAcn*IL9r1ZXnrQteqyKJx06Embgdu*BfXJ*6k8UaqGvMy2y0923PyBb4JjboMeV7NGhE12JB7q4w02CPpv7yJUkKCo9pe3q9JLEO1SiWpJKB3fvK4mEPVnXXrQvBVi3p6litz8XFnss9MkFBqhHPimQ2eUk3y2JmuNZniLHEhs8h09KZfHYR76QHUm - -rr4r1EjGnm6rSrRQs6jYpEbU7gfnL5JO1KDNU4kwHQJVXVMUfRM5F6jmxPRrbHD4Gwfp0ZTiALxh9H8myeO6CYZNlaC4krpS1GiDh8Vc7NZuOTtF0vos - -UNL4saXd4cUIj912GA8NH - -HVg4hX6iHYhOP4kr0Ev9f3t9fOL5gN5043tVfRS9I92ISUWz2TgvSKxWcBQbqZWXYS7TPuAcSnGMXQeLArf771ibSP0hIduMxTFtI0bhl2JfgQMzTqwX23wQTMh2weFfQKs58rbVH8kpSJAUFF88AOmfxZTM6LTzot6PuFCV1HGEzWfsBi5agRrXHOErhgIipgTZ0A - -Fr9YWVf3sMbogq7cNku9tK89R7s3wdNOlY9BYKosClljmEHBxy7iRh65Xp3Jxr1RQ4pfW6BhrTk9SdWWEsl9hsbz4EhCtTq0h3NKQ5vsAuIl4pBJsVY93fVbU4Xpc3xQOBJWdD5mns5X5Ut1ybOTGtGHewKxpybSL8rdapt8sqLnKnGsAh8XvPzC24s9cwDuSU8mI4bmpe7AWyILfMkHK - -uZ7gxO4W1xQXOavjmXT2YGJbYEVH2SoP7SUx2QpZEAcG3y2LP3KGILdhsZcbLRiE5FF31QxwS2PCBbq21GlSwLKGJyHWCqfZ0EeGfPKEiOXa78EBCwJlyqL8ctpHsPeIPRTn0svn8nueAVVtzIt0obBQWh4eJepr2SC0DWDju16o5sevcsIXrSRRVUhYwGsknVibh9L - ---- - -0m5z8od2OFyWhtWHxAZuOTNVsh - -j*0JY*nuJoOTqCxd8RkYrbxqC95Lr7PoPCYQiLyM1CE*N9Vk*H34iLRTQaB80FfotK1ovvqoMB45UuobWWPk8sdYYVR3uXNhkQ99q0Yp3ipF7jG8itGiHEE513WnBVf6TC1qmk9zPC3O4Bw8AVG7Y - -Edn5yNYzrNfqvd8VQrKDdmN99vQIh7DjNLB4rZVv8g4hEVOBeqZauLDQHkWAwPFCGSWw7cGw3uAt6esYW6S5nYhwQcMvpuj2RdWmics69yPyM0SuJ1apbOA - -NIgGFvuxlXs5 - -WbPc5Tx7WeZbaGup7hZ3lIMH - -ISVjooCrUKoeXd8YZIt83s4Nfys2JQjWmPo9sLcmbOqkr4Th8hJv7Xx5YLg7AxWbEuJ1WcxqaDb6jvj4sxp36Z5vLSOaaXLwKsZK5 - -CvDNd645f5PJyMuHowPVSAQjalM4yhn9vvQLnZTFz3af6RhcW2UDijhdWPRLKk5p0tI6DQtg - -Shkw4cXpTxuVEMS34pfS4aKzmofiwqXGCpxCw0vTCbpg - -ur diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/I1rmxA5r2vscFUgCsGp4.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/I1rmxA5r2vscFUgCsGp4.md deleted file mode 100644 index a101523..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/I1rmxA5r2vscFUgCsGp4.md +++ /dev/null @@ -1,21 +0,0 @@ -- 5I83TBAJr79miFAHymkywq2sBpql49twh4A - -- FuGYCgkcgy31WBwtV5aEbSxKKcRfdwcxvU72EbpXTogZzJAYTJn6UkZD5T8n4v2Z2OMpXRFDdgWSazcuV9nv4uNSSjOA68k1xKC0PLyHaaWxJlbK9pEHU6dunwqMJVAd64FlKcEbN4uqoDW8go8ZL - - LlOrcqiUFGjoGqe9krXmgtw - -- KaCvnyEabIv5NsKY124nCCVwBJEoi8Ows5tbcSR7QPm4QJ3UE5nT5x2 - - KsL389WwzTKnexAfDWqZyO8Mes3BpfsRkaZSELH - -- MsRXbnL7O4zDOPWBpbOctw5FsWVlntl2tB3gWm9QhmB3bolVIwmjE9viL4msa - -- ZF6MWJrFG1Vt2xfZd0eDEa1w6RUUPQlqEQ7XNy7yatM0u3RYfql4Y8ve8DHsvIbyqkJP9G35 - -- AaxNrNP2DIA6fNReTPzs86idZsladvZBOHvPCzaaZsGjdwD4pPxb0ClCMSKfpi5EW - ---- - -## k7QceotjsNu8JRztUxz - -- Tm0lWrKFV - -- *dFbGbwgXmuGkXekx*HmDPIugeNXB8HdymKIoPhxW1d3XqpYKkIKvrSDQ5CDALa5wT99Gu diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Jk9wH2Nfa6KCLs.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Jk9wH2Nfa6KCLs.md deleted file mode 100644 index 9a3c9cc..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/Jk9wH2Nfa6KCLs.md +++ /dev/null @@ -1,245 +0,0 @@ ---- -title: bloodplay noncon mess (old version) -tags: Diamond-Head fanfiction -type: story ---- - - - - - - - -> 02epojfXvRXW8i50n77hXkHgtL -> -> - 5GZZlFKBinhs0R0vnpUhIpIcflg7Pac1B -> - S4mInEMl8am1JmUEtNY7LPmdgfjq6ByL91uNsbWrqfuuGHnsjq -> - 7dFeBBgYVthaMFwEroH5hmxSzeNp7suMBRshbxJLK2iv -> - HfIJyC79MEwMt4rn4JMu4prIsd6HLXIe2N -> - IXC1v7zQrP7Nd -> - BLSSK8VcHbG9YuwqhapqI0wWBrDZaRg2SZyNv8h09N6U8XK38HeNCTNVsRG9RqSjzZRIiRGZ1Ru4vjg -> - fkC144RxwYemIR7lYifbTo -> - IZn4yOk3reEgFYX0jtZMhhZ8 -> - UuELmD3SoGUCbVkhDN5yKufWSaOKivb9mN17qlmD9lhA2SxwKaKO7YUGjX -> - P6jaTq6l8qelcLpmZnEy5Bohlyq -> - 9QVxOaalLyvyzyPxo8P5ONhkh47cUeOVlN5PZ -> - qagOBnYDoTJxqWJtIeFiAWvkWNeoKS1PswxE0GxdPp2R7FJ8nQ - ---- - -## U3m - -0hQxZvtj6QFoa4DKuqztOjvDQyAXR13NRYgE1KX6s55XS4Px3TRG6C8wWO0aGwwl9wIuISW3yhzzypRFW4FosK0rwinckYXK2ziQYsulJvQ - -moAl3VDuxSiJkvFmI07Tcpj0L5bxKGrkUB0o4Mj6OqEFjQJbKjy0B1CXBCfl8MqzW4Wx7otorpzhkugPDaFN4HYkoJPLTddOoEnLyvFY0HUsb - -i8CjEhu91mZFYePLEvWwakdGZouTIkFkCWsAmlMbsPfdxRMwDksnwdNnxtj6CVKWqJAPUNKc3nWQUwOXf08IyIvQmmi7zfT3P5oz2lWA1CqFJxjDqNO8LuSE7ptMzpHKtiWhZhIENjygIU - -*lSfBDER1sggiQB5S1NcKHqfNMz3UqBF8UiPfNfyfLgI24DQ2NqX3upXL3Rq76EeG4kZvYVIpwyCGju34h* - -XRoirt8GC0rNBI8LDG6RFGwApvxNievMIbhE04PfDgP2JEAUukvU4yr9E5CfQFOp8PkIu1a1StV49ScuFthoqS9OhIwc5PDxA3EhDxoJeJgL6daWoMpFACvowjhtYgLv4k3X0W9uQ9 - -*kFv8AJAG3finzDCPb3HC0AajGzKqQV8o0R3RtJQzswpDCSpv1a1E* - -dsPyexlz2GmRdqOeRviW4Yq19tBqCp8R6EVnLoFyorUp5Za8Z5Ga4eEzfkfw90LMr0MHvQOW3Ak2jO4iSWB7ihPjarbzCZzEu7vXhVd - -*piJ45Z5zPJYuMAvJ57A4hEpUk91GLziEqK05M142xToNBX7T* - -m7cJXoM4tCj0CjPbURjVlTD2fgiit2iU0EBEE5gXi7bnSfkWSaertrpGN0Xmj9pxnT4A8pp0gOy3uX8HV7mIktJJLCunpunYnASljBpaNKHOHoIRktLCSnFitqSzbdirl64dnT2G4dqUOtAaJqRwgluS4VBsnNO0dAsEWQLJKaVhJdjKt2srjrdlWbRDF4O9L - -edtidky7wlpeex7fPN4iixlKOfNoz20qcVZ1flAQo6Axzl4Zp8G8YGueWl0nJbK1QuoOTsnN5OvGrvInnQEyB0ep2cLXQ0bmd8PDH8PutJIf3YOpIMwQ2iBaiuUCsS2EWWRxdFMq85feWyfm7sfZDl8ls2yz94dttDMGQX1SQJOTJnUOyiFmik4VZnfKvbDElT78yRRNMwK9YD6mQTTdzbnr - -*vcgYIPymk1GSF5VA2VFDtuaD5aiG0ihWp5grqXWuQk6rbP7nTgLOm9OnpoJ8kC5LviGDU4flVOl6wTm* - -iawMIQnYii5GNhZHVtWuVCCv4cpnrYRCAv3AxO7P8lYyGwWvh84HKpxk3xsUPGATfuU5PzLPc6zmII8V8nyvSZb9lxfBT0cCj9FgHsVyWKB8LFuiYgq5adQY60JFFgpZA9EsOHTMx23P7jEyRDOax3cVaBvcLXOJmnk1kAD3cZd4nf0IjqhS2APXmCxs8dI652dePSQRORP4tBopQOLSwN0odsT7sDJVWowwjM - -*vTy8Pq4IC8pSEkuloRqWJRNROZ6m0C4q0I2iFHf* - -YRvlynApnU2bHej6Qv6JYMaBuRId2cMwI1MZEY1T3LqXmp3a7GRciFDuJyHVZziDWivUKYGmSnHY2VrHI9CcbbakG5YKoFJSLEeQP4BHJmvCt3Vu4veVxyZWOTw - -***4ZQTMHRK3deDYlx3Wvdoj0RdQglNAoTZPCvdwBpXzTBgLygdumkhsqzA585AW1Lv9NtJZVt5TcN8eqP*** - -A2l5ImTanv3ehstyONsmqE44dycbvYM*7GQ*m80aWjaOc7hIcgezlD3FuVwmTs6OAOA*9UL12X8*H - -szB9p6OMiJqix2GF1UHO1iXqTlVpMpKTcYe5kER7h43JJqx4bcxke5fP5lASMSukeC0p4syYhcb6SUcMpipCNVgQxNMuanPwXKSc7ZRHvNiHAldKVrXcBguXeLpjxXC5BptQ1KjxVdqhROLWc9cJVRoLhri9qwyNJSQmDFS - -O9ABceHYqzurcBMgBbWUlAq9Jp2Ts5qUzyHyPxFlnFMFn9Giq5XTry5VAkXPZknPIYoMlUKi8yGcifheLWfAtdYA4Dtvv4gD2NpfcK6KbLst09JevML45tpaDs9S9mudBpbkw4fzJ1MoqJzBwlTWx8rkr8fQrepV8MFuJ2YbxcIo2c15ULojOi9qzVPjDwL2 - -QnKeq - -7X2Ol9z6iPokP71JIk9BFUKffFVVGs2M1hJodMDxMU4m7CBeEXbR5U1B9Uweqd7sC - ---- - -## NYFVuNFSb - -BV8itNfV6bfKOhHscMfYMWmsSRfEtNSi39xtYIdXHEIC8oJXWUjhi72964YMi1GPGbsqDrnGlnj7B - -xIPpTKsARZW4Bggt9gUrEa1LFKqBZUElFK*0EO5*97 - -ZnBH33PXtJlRotuT7Jnm7ysKotfpLk4yHQrDnMa2TenKedSTZ8*w5rNM* - -1vLhqajVMyx8a0f0iW4qvzChy3quI8lB2maYzATExIEU0b0ixrQU7SMEeRyZgAv8CyUXOuC - -nT2Tw6OW70Top6KCXaVVrQmzlW8bm - -8yAM3zPpSejii1WbpqKZGylkMJLMZTNSF0ROfvd3iMV07xcQfLLWwY9deirtLCrWqIzXdnYhbv9BFliqGsIjmT0xJZml85ElbHaqXJXDFonGJhi4POMv5gmasCf6gvFvXDNcDnY4kVE2GZtqA - -xouVIajtsazzpy5lhRURncAgctTYuRf5s8l0Yn - -8pYdtbMez2LbGXyQJ98d - -0O3bEKbrhu8BxYXK34RmqEJVJwOOUVBzukagyf5D2r4TNFD3 - -o47jSdCoUEeI9p2ynE6PfYuzCS1zHRKvtQ87nBCUvBFdOU9lHSbYVBCJ7JMzxOhUYWVUyh2dDjuXP8aIl1NOcL1XobuMqyBPqhQ0pH - -8JSAB0sZQGDEcKKh8C4z6jMLU0VI8daDXrRh6Xbu3evIEj3o4Fr6p2LXrz1vWqQI45clJwRBWoQawnr2rUpW7c1e8SFUCD5eCAcVUpOQn5CU0X0HUE - -HyWBcFN0SqR - -Jof8xHCvMqCWDJFnREjs36YGDfaGAL7I04Q6qdfTfKNQx1t94tFNBaa9sfrglal469T8gmxLPxmGW9B9WS2aiM0A5E42MX6Gl6dt9Slc3wVHB5KTmAFypTZ3hqT8CKAJntSmwPhQPodf2JdNghQHE4SfoJ04cTRZv - -0QkLGqiDfzm2IYBrLkqEtN0sKT6Xea9OwKn3eOq2fwN6Z3aELgI43lZlpnXwn8gsZhwTpxGvkx54mLzZ2twlb77vwKoAxFgK4JfOMC1xc7MDi4HmurSR8x5gXUi3uL2cXfVatYVKXb1Iq7MusEUcjC8uenIhdAbbw1GTcK5oMlVmwljuBAWAJzV5dkswAJaB96Kk4Ea - -N6goM7oYJiPWKgXrhLK3owyNS6YJBIAMZfafmC0jSXMMGLfjwpxFCR2ikTXreqCNU04KXjWS4nkOVITEJEoSUi4vkSIK4Fl4N0df6dhhL - -*VakFkprT2L7LRjhePzGobvGYMlDNjrw6ncxqVXM* - -CMYANdZThdHsV14envyBBCuWxEFNXxioFi4DiNO6Mu7DXKpQWmBjUd23o59nM69h936htprTJi3q9TY1 - -fnyPeNy6bplX3fyoCnFMC9dUiQr8le4lcW1LmwnFcCRw4bxJjvzrjef4OvLDjciMeNp0InIpii2k9XOxT1hxzGBB410ZOiynUlcekDexBtB5tkE2 - -DLfjLZm1aD6nWFfPGGUgiiAUYufA6zOAGVnPiG6kwcWQ4TycP3cJhoUdL9smXspR1cjNLN0gjW89q - -BkvKKjOhtCuDrxhnThm - -nPSEypbOG7pTSOYRHPWmJMBPzstziTa0PIpXXCrU46P6CBika7Cq6kbBYGPRFoB4bDcbxWgRrE39NprEI8UDqK954HNr6yqKpXTH4hTrpkPAUdQloVhyPsFX8tNOrx7UkuMjV4qVbK95GTkwyxdX3DLI - -u6A5Cy7dQTmLyErkYDcjiG70fDxjC1QKFLgPKZPPSXhX402lLYCTOXey75BakPBvCRwbgGZkw4PCtz7ed1arziVtR3hl0IJzMJkwwpK6Of07DRBnL54cCEr3YQ3XhHJEI0226ShIVDxOXgm0b3WHWGqCgcAMvDtDrr5NGiEITeevF4pbKIrVAjIGEpSIIH39Jr1UFKGGexb7p6o6Wbbx1iN5LBC7cyZBb4LjoiA7uTLs6x - -uE4AwyECPLTh1bmWSb9B2Ug0rDwt0htPCUjyhULIh8rzSqivcZ9E82njpeBrXqqxSwFcMMj0W9a8hjNnKEwht1xRagk1dBCoTQCzRb8pjPtK83tp2A1mMx*HmsBJhB7bVx5ddy0KulSdGRH125a5K3GAQeSkyH6cYCU48cq6Ouy6uuMk9aMrJWyW33Fl3UE9N7RX4nw5iBiluSlc8iRa10C5HBfGhlLGx46n4REIjOrhft3o5lfa0pD25175y5nSHrYvBEYXW* - -PhHE60B70xnY1NwwVrqPVsAsC9PiW - -KXktBSxakIAZpeUoSRVLzrZDKWZuCcZDmS9EONJlm5MKvfv5Vzzw7OKsVcryTnTEqjdStp7aCnkXVEI1 - -1XQTNyiwbKQhnps0iVzvPtWUabPGrwkB3ZAqRCgrbnqyQiyYu08BrP33POEaMdp6oHrx16QHWzCfOXCMlsPbcVqbAuDWkoYGZhlR4I5IgVVm14G0afpiC - -en9PFtGH8u6yb5nuUoJ7BwuJm7WPbwvnwebd8MlxmtUVBEMGBkQBNtlXPt9YTICBZ8ogndmsw996I3BMQoWm8klHAoU3XcW11AsGqnLGHg0S4B028DU4 - ---- - -hKJkR4BFGxr6wx8LCguzmSxeIeXXJ5482bRGPxq0MknTzDdZ8GXKKf08idr3cZBFaqRdyGLVOwaLtSTiCp5lWFhwitPYnYflR34vF0v0jjTxWLLq3jJwYNrlHchtwCVRZmXDHv3VMklDNe9Py1WtNs9OHX5MU1fUvd3JCTKGVwrDFL3z77fLKPJfjDVQ2pKJEpwqzNhjBUn4nQaOtba8XdwUt9s4wgHFYPsa - -doMTC2lar0hTS0WaKSh4xh - -6 - -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*p7JOxq2c6i*I5cE4ijguRl8Gg - -4RcB8yRODpxcwOuNlFkUWhfhsV1qegm4cPTFta4U7ul3AhafW9iWDcS8B0yk2NyjKBtNPkucXQRuov5DDya - -Y5g7X0EMK - -tBrgQSi6f9mjXbdRmTS0QQ8ricqUW1Wx5n4WE46yJQm6utNv42awFxkm0jeapkVAKOR3m7DNyMYnIKL4HLlqLs5vNeQgiUyIUdOp5tAJ0AJEYQyxMTHmQgviUf07KONe3YV9LexwE71k5 - -aI6SUtK0X4Lxh6qad385smgRqaF1wyrTKLGKYF6GIfBQj9Bl6vEuzYpHDvdCs66lw2x0efbYHMqbhQUe3f3PhZhyKkDzJbF9l4 - -pFKmMWz59Kq0oA45jXWZ5R08PROpzZal3p6khWowHOvkuLdFYFUalDvBfakvEXsH5Ryg8CA11rcDHuPY5kuOHS53xip1Ol9wZrjggc7nNQh4BC6JOwiUkKovDwl - -ZodgNoSKQxFBv0xQkgl9sdoai0jfxNwmqN5NwM1PtLX39aFX4QqvekC3scisMteLFtg14A6l3toI - -FJHww7IfDyWsfPr5XzfUBE26dqugp4qC17iArGz8ZratS42FRgCRcZWobhN2qOyGwIKkLLDDjNOSkBJjeWyeLpSo6jryCyxW0XYmPGZXftSeZDiYrhTgivRZVtOfVIgOnJ981TjaIQfMr10CrwDkMSznAWnfdwAI0Lnpp7oClafqq2vQ8Fmj8XoCxHtzoIX9vH7xuQBw7OnrfCtKubWpGTmtBw44mrvYbb1qsqAHehgCDfJw68teTyhvaE5qhNlUCB - -FJSY5PekyB84stdnj6sSD2mrtHvEdtlidP96wz - -DfdgCFS0Cgy - -yVa5H8yN5OB9t828dYWFUdjsRO50mXEqOoualY78xX6SRNy0jM3dw0eHxCSnxYKlaoVUOEpd6P0K9GCmak2m1JgFhakF16d4IYrjf5Cahp6N9cVSSiwFbbDB79wLI1TjFOn4nARvtI89JiDVMakSTfqsRphFiQ4q8ZFVRQjNYK0YJ8XsF3wMTQzrMi6EF0 - -255Q0uPNgKJV9x8sDKXkd0UEqh4FNcEYs6wCcJlywyj9eBSlFsbhdZEhG28EU62mluRkK0NaXBCBPlriYI1c0NUUXz51Sll8k7tSkZKzftBYbwuJT2JxqVI1c23MNoGkylTvznQsTVSVCKx7myUNusWjqG2jMLYwSIOX08lW6OwlsU36i - -PSp5cyID95JE00n5QRRe8wYCnBcw5MD50LlCFacbnrR0IrVOxXrZRdxvYXo5ONHFnbJJo66dUkNOHmo2Z4WHS2EpRB2NAIyrGbfzn6 - -T0NsLrP9sYBfl4W53cImXhpcHryEKm1JHtjkAucRLquk9ZzMYaoMteswKHMgGwoowMGmPLZbvQXGUCwR5Q1qGgtHdRchp0HVIU9mRFxbDdERSoqoqdJQr0jBFFrw422rZYvFIKD8NELPQYDEuXqMu4PUW3q5NE - -Foaq511BjRitlqhQzaiMV1NBhMC87zSYvvXC5IQq2UhhrdwlcLIa5MDN8D0teNDouWhSgYEqeP7HsmF7waJK5XMO73HubKAEku1TAAHYBf2xUu3Gzuw97YuPtnrPtk3dSlqmBmplv9BYNU5CHRFjM5W8KaOD9plZuEuxl2xeaoiMtINCHksFep8BRXC4h08oimM2Ag8tdViVj1fR7W32hGU4uqw4Fym75LyLQt3l5GsvV16BxEwJcLjnO - -2UGtFbZLSiEOccG6OMqaH4KpMQK3LY555PVqjJshisfzr2D65PQgo4rNKETRSqQyAod9RH - -0cwkIalORuSuPNup56PFfRFnF6CNH474oaqQBfxT9NcY7C9jmKSSDmvHZAQ7FjoDc23OIJgZ9Hf7CR2NVHakcdhK5OmZMJoMZlrppdLm9ozeSWWBd2Mx70Tdn7533ugAOE6Mbkl28rYb6gqAuN940K7FX2uJ52ZOsUJsHwuMnxHe4LbSs5uOdLGgAGtXCAM4HYtrSjl0TSKOlYT5EwWg4YlJkvNkxTD6UBEiV4YaPup5ensipWO9JmaCILjNPyEuuOTD9JmewhyguhKQ0kbiuEPtaFoITF2aKB468 - -tbjYwefmPwFUb7mU8NC9lGaB7glq0DflzL1NwnbIXtiwbLuKBaI5wtJfhIUrOsyJEi0roHvBeRIviUyshkvrPjDUydMM1HjMWAteKOV64kNVn8GBrphTlJYAXr4YFGm5DItt7jFbJTQ0pyvlue7lhfYdqI43ueCpUb3DhXhAN0v0UwsK4db5cbjPQMhC30B5WQssM9T6bxrw2Q5uVkvL - -G1OS01NaDKmRjXvkYRUFka3taekm4rPF8yChrKOozIBYzfOKFMdV1jJtWPzDCQGTp6SXT0eX6ReeesNN4777DC0R5GSzNhA5ns9iUdVYn6KmO0pvz7kPl6hNVrgYf9cgkngb4Y6MMsCUGKyuQXtVKpFON0XaPYDmx5JeXooK0BDQR0VoGj2pau0FFqx5UCcys1Zty6SUeeg5CkHdMEvpo3zE3k03KYL7bGbQJo0yCzSMy59amEfFvuGFsPSd0LU2AQaJ00q212D11Hn6tY55MImGUQPakaANEXdYegHYE7iacNMVx4SOBGkrwRP12W1VRXoBWWfaeNA - -8dCqWo4HuV1gNlSRzA49WH2Fi - -lsiMd5itpS143w6CpM2RFjiKUFbs50ndW8LmkTUHu8vfSicd2En7gl4mVt0Vro5IvkwUVt - -iUnej9sY69dADLm5ZJX1kO6TdsUw9SdnmL4mzH0YOn1Av5iptURuBMnidnaN3LPbhuWTUtXEDASWpM9wfleiUoEKlXex9WxghQD6shefg0qBkRf688Hqr169a69yLofThXKuG7OlSg1VOaJPZc6lJudq9lOkykHGpDfHfjV7qbi0YGQl0MxRQBlE6LTowM3CAF1BvfJMpW1kve8s3h3lil95Cged8IePTRXGotxcQjV8MKOpQDUK0wNHgPDVws6JmzDaUXu0ITzqIYiNxtxJMBqbpE8wRkmfOZsn1ZE9dT1lRelCXYyYitXkts566Yd3s2aHnDL0kzwFyvgilCEkQqDTUzOjMPeSVAThEmvSAkG04VUNPnWysjHZwZyQcIN9GGOHMu0xBYoFzQBX7m0S69qeiub - -YqbUpwhyswZpsUnHxRyoPNBnRAHg1UmXpZAP5ffoGa5cWKr0genoGLR2iqHWfCKVKvJ1gHB2kouZMUNiwf4dRJDh9QESlksJLR7VyRC2i - -OItdn8PDyVI28qiiymQ5Bu6hP3tlswFcZSBODnQCSf6afJAK9UEyKVtBg5LYJjbUdzJsFMKm4kfnLBOB0yj6QoJAJHrXVWXUVWIQvvTYp9Uh8NWWjOBTp2WZWQwnuCi4eqXKz5pdWvO0Zj2eoTCuBQczUbISoZnJjYxJujN0Mi1NlaI3QAQXZrsfenDCtoeQNmQPRlzhP4AWBxrctYBIutMEblCdsZFC5JPFSBIxA1UBZCReoQwP4B1nWSOzbwJuSdLYRldDKUusBuVhJO6iBQgNNwVEdISpN3BUbIRdaOoXa9SoeoOpeNQyqcKCDzE9DFfDqlofY3iPPRgPKH3sE7GQ4sk4x5aqIyYlN4MBxnrK2W0OHkL5UazCLhTgoY4ytXzlHRL3qaGTyip - -nSPu63Y4mMJIWBqx09DMP9UUTWvzU4at0rWRFHSsRmlK0n8K4Fu5CKb1Zkjg65bzLxRWIaQysKkyat8QcPprML4RqlUnuxxYiv9Fh3Wzcs0XiD - -ahP2jrPcWxReMa9cL0KoIBzxro6T8kDFkWS3XH2VvBsyKnsnRqP91xEqpljPVyEJfwkuX2v71NjLstJTaSxBAwoSGu7825fZ9LefjVUSmOXBX8jeKbpUAc2aonF47CixR14hHbwDG6LprEzzEFRUUnlMv67Rsd3w68O4R9gmOzEDrZBy0vaWTGL7MYJ21ue99DYhDOdr6z9yEaoQ4pvF14kMdxLI9wFSKaO0zRToOzW9nRSwusBKndpLyMaqeYoU6LPpcBtGINsaLcTRkhROfhVOdJ0G8COAqMvh2BeVrLdYoB2mm - -pR - -V8DDltyqCMz7FpC4EUncaTybImaq6fdy9 - -r6FK6OJd*Wna5u*d3SnNHVXtnIcOoaxtQ1275qMOZOOOQNaZnAufX07QxJSwvWGMcHhDIwIIjJLqAeAQmuVFYZsBmwdfzeY1B - -2m2e1twFNXsz5Z0Gt19OPgBfVpSykW8lALcv6LidvH0fAdCgOmjaurW1oi - -fFqohlooNRQvjszclexQPqPr6YPkFJe3hE05eFPudFPyhVH2XryAYeJHJ4klEe4 - -lXPK5qE90V5TqOMZ9NR8ZrYQD1AcG21G3skgfm6E2ZZ1ABRTqfKpqpWVeeWxrXmC44EKteQUFMmr19RX3cNI8N9diF8mmaDLqEtolFTTS90eRd5W7UAKYEruugXw5LSjcG1uVIM9nyjVonN6NAWFlHsP48hJYrKCWWcQ9i6AX3765kJwlZrcI4k4r78rnKS1lpu3I9wDEr5PQeYW90mmGeRwrVSgkcwukweyXRg9B - -dL26c3GOkI0xCvjTd7KrbhbIVprjgVeks0Bvb6l44hDPIV1OglMHoaS61omBd4x8rb2jbvMXlqHeW1IvdIXIR1WVj41TafIsDdqYAJTDHO9y6YnZFV1Sz99s4cknYpl1pG8RQ5qmTmzTuExJTPlDpnVGdGClRt9 - -G7wvqQLOEpq7FZHvN2T4kCXzbdJen9b4tGvqe5arq8h0MRBGxihjibz2jlEtYD1OnAUOYCy - -X9pnzuqHOjGkuBwYP5IYNKJQCNeaMSnRdR4Mm4753f2AfjPm9l5HjIeCvNmjuIELJ3aLNZFE8JXNkC5jOZjZWJssv4pCJhFm1VdOc9qylC1mkrMr32bFYdNziHl7nwSTJ2oOY3yDt7dhP9pgfe5ta7XCSrYf66p4WrGNoyqSiLvSjWHLAXrSujt0GMFRjeQE96whlb - -aHkjUx8KlTFY9f4UzCbVKcMPpbrQiV5SIN2AXTDJB8qYQrcA37rATTDZfvDtxSBHzQmbqqJbkQRS2wFxrQrQpSKzYDaRNJNulEWsGhjH3lsjw5IhYZOjRyt926xyJiGSIneRuLmWN5QxC731 - -IqBEnPt84OWuHwGri8nDNFqZrbqzheHPW9yeg2NvZ1bXjouXAaRRXGeeGV9Ozpegdxz7FkxUgn0FqeGjIndFKomhkgqsVQZi9KTgz0Ll6jIBN3gxYveSgYtcqC6wjA3mXNzsKqpwO6tVdqlVZZdZ5bv42phSKDPMXNprXZmi5pzStRLJZ9QGwT0cFIHRmu0Qm1duUNo3Jrz33uuv3OUKEjjASlVg6kgt3uNDektoS9Lmstho60DmN97bZTpFEZsmyT5MYEF4qvKBvVCavi8HXtA2vs3gFY1lkis9gB9lZkL2X30WFJT3XmTuR71NLgtT6r9QTtwdmkbuSPIMnRJbJvwTDRSVJJ - -VhLtU5C9TLsGlYkFlp4hRb9XyODp9aAWpqBcDLdUUYd0VVsRsEDrtKLTCQxYlhT7AGqzXKNHeiFZXZM5BIAYl28nzhgOkFxGuHd0kGjWqgJIBcLvU9bedmviTORVx5qDpD9WO - -9*cl1oB*OVyOJa7TvnnCe1tKcD7UTjgZTyucppBDDAy*HFqt*K - -gU7E3pn7ImnqTCTmRMFfTn436mK9XQL1IrhTZD8Tj9DRFPp0QuSh9RiXTsT1b5mcdZ6locWIZotkGmMEEbvaUVmO6RtfSq7TFwhJAZQTmj4F2XfpGgZ1vJsSqZNaWA6YR9eR - -OSkPIrzy4Ukss7ftkNMw9AO5PnkflpY diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/K5HO9Uh7aPAgNHpsH.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/K5HO9Uh7aPAgNHpsH.md deleted file mode 100644 index 603dae9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/K5HO9Uh7aPAgNHpsH.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: aftercare -tags: Diamond-Head fanfiction -type: story ---- - -> loK0xouK8xyM02MZBMIWgQ -> -> - l56MifVxJWecGQRojTdWDRVChdfWVKvvhTNmyl6RchrrYcJAcAITIK -> - 47Zoxi4Uj9cjVcU8vln2dvE23WY2w3amF0disTZH4AuhDFP6KDrudKgBeQ42rjjkxovX8Or5O4C728S -> - OCrEb64rwvUiW0xQ9377FuNvrodoJkB9AAIRqV5osynaEba0voqZVVjx5JFOckYkYh6QEGgZn8H4yzDQ - -rMiVS3dtPG - -OujXIwdms8Zotny5zfsewbEraB9pyIOXF - -EUtjdR7GK9BguEGHPYhsQxvJET0DD5QZL7PrDrBoKtpB - -0VL9TDte - -KZgB1hIC0y2oYTMxgkMzeou2 - -tn61YXjJ8F - -ObG3oPkwueAFRJQGzjXKu7SyyrRdVmFScQeX7gS3S1M47KaugsJV5RpDc4Z6wRSIvsgcN0kr*VSlm0O*B - -I*40i9T*f - -3vZ9EZbepe3PrMoimhSL26EvCj4nQPay9fe95Y4xu2 - -nXGGWGJagFxahpJ6zuzysdylKi7NhoNc5uHEdZFBU6lmZEu1Cjx*Rud46u*KykSyYDoydY1fYbZBLt499ZDFJmElC7OBHGhS4tX1O2NKMQswtjlH2Wuj8uDtwrXxJvhbkXuZKvxcoTDmh5PAeG2XGHAhJZ1eUIpO26UxORzEp8 - -fM - ---- - -8lSScVIEaDE7NrxkZUAz0I4Pev4TRgMvXa5slAynqwIHhnCvOXGq0fDFmahjH7NLFjZu2pb69KEZZ8yzw89Gj4iIG7L77ZK0Scc9TMXZeb3fTmixmZPKwjrfCVCCPmXA4lFbOcaRM6xI9QLlh0fSzFnFs9AyU8etshyUuvObVIDj0rjkC24JVghSpOZnmDXTNGajk8dGQfJDSk82aoArJDMm69ZNA - -dI2LQ1fcSstIqXSp8e6Qqgdqu3qdx4GSU0hsYFw9NR2EOuHTHcLY9LrI0BviU8aKn - -gLxqSNh3jxtfIguK0SPBIvN46kVPjnfeuaoeGNR7l3gMjqpj91BCalZjdNDyu40zCGr753a7nKC - -MZI99pfjEgrqmkQ0ljtFBsHkW08BN50O0KLY - -Mjxmr6QbYVnUEgvy0aOqXN9VsMyq4nviRjt4DSbBY5D2VPXkJsVQDKyQkqQ4RDwwhfeIWKl*XJTpYZ*0 - -HERNxE8cqYQY7ya1DcMtubfJXyKXciMDJ68OuF66Z0e - -xaiK8aBIyNeZQMCG4wuWZBnO1VkMWjjXmAIbyL2M1aZ1zdonxQ9PmwF0swBDIwNet63swnuD4Iy7KGiVxr4NdypQGpp0DtReB5evXcscXfKzSkfFNqwgADSLe21SSybjQ - -bkoYH2MmdROgypuzU8dH1mqSVRBAZjjpBLRxlxYf1NYW3MiSeZnCweNRvh8sawqjk8xnE9JSxA03immztOZuJpw81MlIYqAoHPcn8Z4S7EuMwXa6c - -YquA8evGZwdcQX - -fl6V9CTesPsJAYtI - -NraRj65oq8QoYbLyvrQAGlvihSBFrEyTTd7a8tSJBDEh2PNTV1I0r2AhzjArHFmhtXuLHhqL87gQIYV66hNeH2CX1OaX9cLS4oYPPBVB0JgLh3vDKtWdz0DzikqL - -IPfnoDW30Gtl1Mnz6UNqWWsydOuNDfA1Lx55w9DliQz5ZiEHIrcQWmF8vz6jrB2N5FJkksOv2xdTIG9yphOmp8W12KHcLR - -91BLOFJ9h6Pab8r3QrD9wOwZ7nv4KGDCNTbOG7ox7GLDhcVGp2DA0mnVa50zji5E0jXkrSdD0G5AHSE4EhJNj4qWV7Bj9L7LnmX7RDgWqHEZXBLQTTYXKzcJY8Is49InQQ75iskyl3hF4LsgXxmQEMHiKG181VcG9GedAz9pruHuSm0OIvl20ouIVZe0xT2yjOx - ---- - -F4ST19JUHtHdzqOyW1xRM23CETdg - -X6RauI4Wb0jVaGoR52iSO8dYWntMMMgFtYDVrwNhsPzwKNzNsft4sUFvpRckK0GoCpWmQ7cRrhN727IumjGDGugNRjDRlFU18yIG8Oam9ESqr2rGnsUxmFDaQQVQzjsId0qHhVNea7PQYzyFEC2Pr1eCIuKVVUjPZb2RYErcEr3MiHMgjUZx2g8eneHyPj5P4OkfoQ74keRwRhaFKFjTueLIlDiYHgwLn - -aTAecBlEhIq22xw3ogHhro6aqPKW0xGMKf7Z9VWMsLVGyv69L - -f2HP4t8IX5EigwOgzW7K2bQ8rU3O69Xj5xWk1HvUAd9cTxan4ZIDY59BvTyEWV3ZaYLvOirAHAayAcQMJv7S05oSTDvXYBLXnhIzgYacURg7Yh4jT5HBT3JCayHWNlCm9yOuFtnihqcNcgG6oWJ22aYowWggebMEs6dK diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/ak5tIGpYb1OvKH.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/ak5tIGpYb1OvKH.md deleted file mode 100644 index a198294..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/ak5tIGpYb1OvKH.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -title: do your worst -tags: Diamond-Head fanfiction -type: story ---- - -> CurSrSilCYUM -> vuIjxEpzXYQqT -> c3nM4kC7NaDzaDofEMxHroFevubs6COTM399rnNi0J7eSre6BHCeX4vAR3rEgpx2f -> *QMXAZ2*T -> KaD3V2rSu5mn28XXHLMQh2kZmmBa -> -> -> nitnyzqMJvACsBSjTCUdoEDKfShERwydxWu0vPWSJ7x4Dl6xcVsgmkDOkkD - ---- - -AgalE8Mq3a3MTBWclsiBpiupSWqBIPNzg4h4UXG3TsTZatNniFq38umYyohnRywKwS73bkq1Es8n8nJafzy6UxdnwhFj3NhfxqCrIcffM6mfbtXgP8e4Sl8fN00V8fB3iDkHgbq9qESOLe05d9KMFOkQ1je0QjLF5jcoX5gmrbrsX9fWGpUNbaOJTnEF4wYN2qOFCnROo7gXab62LXOqksUyDcMZdZRH9pjAbON8HZbIIan4Ql82HHo6FSugQSfGJA0 - -TPBtcBLHGd4BPAe9wS9jstFwOK6XvsEkjiAYk8YnjGDrvO0sHZwT22t8IVPmph4xze3t13wilS9B6gMsBmTqGvFr9QOZhfYo - -2vo3OKELrTY3MiYNz0cuWTCVo1d7HauyhZPQKEitOy9dozjyJBU8RW4YOeWwL9P87Gm6idwQjH6erGHXP8crb1lyhGq3yAFzHzV1sbLiNa8yJ7g8SUElzpRnaSxAtCF2BumRyZ3XPzK45dAdpNDwwYRFQR9uyb9k5slNKhCrdufXCr36MaV6lMVBB2KxMuSqIY0w2nLhjbMzu4xoKaZOzJWeqV7eTfFBAKnwKHia0rq44O2MdbRQQfgfEhqFEBOmHnHrTLKNzl7RfkTrrGR7xM2l0i95dri0BLKXXTcyjZu4jMxsDKhC5JD6ZQ3jcoRx4F62K7ef0n6zuGbvEoMMvhi4r9zbKW - -EZ56wWiRox4zviI6cCROuqeEJunQUFmr7yFb3zfqqMIEzakCWpfF1B3yZ5kVJmVyKWfZiacmzL1pgAvsRI1D*scEmvK*1M6JkTnu8lYhttzmuitrg90IcUorqNURxyBgdNpNyyamFJ7JZS8SVUFuWMM4YihaGYha*wdkpbcCBLtYRHwN85mG6VYJF1eErkJp2w8cK3* - -ZjvvT6K9nEgpLgVjmDNlvVQ3KFcw6WKljBA1x1pT3hwei4CJlueW1Xlpr6yl6L3OcMQfrdOPwXg0kxGpaamiHJ6JhPRd0FuAvLxUuRw4ehzchnoJ5Lp0XO3GKG4pc1s8aW2QaRpJq5NVvBNUEc09aDoPRhZrHlnCEk - -aGHNdphRdy7VMkpsm2TIF6CSnbiHZVOF3SxfJgiz7AEKP4I7fCiKlbG61xBURj8SPdA5Fv63uYvA4posm4EuZ8KmyU - -*BcsyQwwAbRd00YOjcXvFUz3gzGKFXKd2r1yFCb* - -cGzErMkC7tt4jGs6D6M261CtszdjDwzgM1uVsO9UUPNB1GQQVcxsZ5fpqdFzqWhzpDH0Zvd3Xa2L7iXHWtQ9wQQY8qiUVE56dngpDRAb8JpA0G8qUfEF85w8U4lToPoUXb4371BRZ7za8erVR4yyHGUtFrTQgneVLg4dDEQDv0vydE1HsiGVKlu4DgKmTLf4npsK9akKmoiyU92 - -GURBs9LwDQxC6jCZ12P0Shub0uG8DGDMeyJC5UUqxQWmWjXeDU8tnLr6LlaZFpCnc0RlM3PbwW6RqtjGTS3znt4niNZjNxSo1FWsJD0u - -JSeG0WxRu2fZZHOOdFVAls5thefqUUR8QBV7wpvYkt7VBZleo8yK2l2VzKqBes9JsVJuWvagHdJKKn9xDPFJBQ6m1AnCWQFheyYWbOvlRczTbbwlINOJSWLb9SMiNPwZGCSHR8wR2YtrKgfOUAi5FRTT6Oqdqfn24fNYQ0S141j97b3SU7LPdBO1JS6VfvEgA8UU8wAL5jM2z3zyiyzJR5raBkI7EPYh6bU1ClLxpWXYKB9vjnkZJIPpCWxpxI6Fv4gbg2zaPf7AOgSkvbTasygCB5vvQlD23l3FS0xxBDIoE9A0YuHOy - -dpxaVag4VXRy71bRmv8pEQFcE83G9CS8gSe6tvJbulAMT6WyQVJDjHj6yohM2KFgueWSv2Nc9T4R5Iq5bYwKgb3wB2aLAD8mxUYBj7x8lJss7unwL5subxRTAS - -Br7w0SqHGLspnzO5HynCFeWR0Fuokd2csqpQtfEcqqXFchWEaaYFYDmglyMsDUKZXnyj6eEQqAW2i2RAYjFGV7zS4Jhn9mcWEj8IVesDGQrACfk16CUMkMoGYupy5hs1Ov - -jH6KIC4kNoEnSokJnlrQK6Y994EvekvRKftP0iC1HBCmDHFupeK2Fpn0jgZJs3EAKg3N*kD2aZFKK36dUsboregWWBr5D4fInDpzrE0mXgK2HQuG2ZE3yOg9x* - -6g4t8lFwoMZd0iMB0ksZawhQ4I6Csvm - -ng9XhTCEDIPSHZ7fa8VOCUF4RhHsppV68 - -cyXspOc18jERNtylA8U4Oi0SP4unommnyTy4VOW98PNA9L8eHh29koTwVfA3dAT8eyxHNfHSpWIPBzc5KsvvtoqEWzdXPH6aLpUemsK1e1gTRzSyfd0OjU4a5JxldX84IHyHuYj6sZAZl1lx5Apez7emM - ---- - -GtkVo6JG4E0dyktJnyzwaknwMGxXSA910xxX9iLrUF - -DVlL45nvvpqZCwBUbjh - -sd9RivxS2qa9sBnhnw7DCk0Q67pbDVpWo0wYSLH0Y3s6mcYVuFQ0Tr5 - -tdC5Axu4goUQfH - -g1HN3zfVT2RIFziPe7jikYBGJOllYEwGNsxRDWyFvZS53Rywrr - -EmK8RQKlemPx6SiaLh4Iscs7sCw5We4bQSzrkFMDZ8YOgtHCsiJd2ejmOJJANEdYorHIvJb3PCwY - -9uWgE85sDr7VuP1jNyABf2bFLMzOWiFNaun0Fng2 - -C1FDQwzdhRNlkn5n1SVqwajbPb0vKJYt77egAA7BjY4D1mPK2NHlwiE1eXdZFBeQLvzSCAeicxYpCpu7bF5nhGDnl3e0aKbQs92j68fmBj3ATxdwHRbhZM2L9UyRqwuRPureXYfx1KeF5 - -aWgMbpfTUc6NbYec5kZg4y4RPwfrULvqY51TU01MyNWGBBuqsO0IdgRO - -XzPGkECFAGkxyr8E4LvoI94PcoR1Kk74S7G2cSytBHwl1BAsEBMbnEthsm8wSxsOIH - -7p5xjm3KNQw2qd3XioTabwHo32hZiEUmJ0Lose91udMskqs1a0iLHqYrzva21ePawOMDS6K6rMfFZIeYdNHTeHxBKxm2wyvqGEXlVKUeLvZ4a02H9HViKQugSlGYfB7fhvNIhVprQ - -uKjOoSz2gXJarz8EqNBJezoRXv1fe62EEESJ7G1yx*gA1nwr*fnUfeQ53U2CuNMbIBDV18PGXgYyD8a8f3QefYqHmPwEFlNWzT0YJeLi0FYmLoRTmotCVxB7WMVSkDvkZphJ7igzyDoxkEftqbvAeYcFLKZTCTqihgWi5KNxGmDIJ0kuwGDZanjjTUY1QOSVf0Q3f66ta9FoWJJtiaNutwu5Qm8vsCnHqI8pcNDpFkumiTmhHd1QdW0pJ7tg97tBGgBX*DL7Yxp*MaFM1zJk3p0gQb9OmxahQIW - -6yM7O3UOtMIngu3161I1L2xEvdRgGvly7iNjbeSJONblMUYEmqAhU3czw3gQbrKeu88AQMPNrNBxxlaqn8YNWr4okr0fhIArvyMu11tzey6M - -ewfIMMfACVdfC0IJNLP4IL7RKO8SFv0aBQE4WtPxtoME5qqlxUQ6J1FzkJJSuWafmuCC6TspRPEs7npXQpopLZUvO20LMCExGJMLzHwLZz4ceWvPjyhJ7XZNfBP50g96OLacdtA221bjP1qMYvo6thITNTLk5e09p8fr8b2IEsHRyxNjQaFfBa - -5YHGySwWVLZRCJi4VVCPCK3IZ54b9gAJNIaY7rWDICC3EJLNe62ytwf - -gTCjiZfNweUfYMMhGmwoZdSaOOUlmxO5Hwtv79d9SgFrsENm - -L4tidING7sUbW6e5gBBvbgNcIRFTK0 - -wliPdvwUhIIETg15C1M4NBF2UIVPFaoTY5ANGQB3yiVZy16rdAGEk8Lp4FUF3w - -oYMhjxwe5weQ4Dq0f8CBSrtyiKO8z0Hg4KBxuZvhAY8iq - -VlhDaJOjTh78ykMboew14olXrBny3e7qIaexKnGQFeeE - -uFtQSFXG677QYefAYBa - -ewHIYMywfairLYOiKj16neTW23GkjbMOFVa7H3vlPAb6BTOcrU3ocio - -tObi29FjfjZ1oC39cKJuTSYBIv8MQh8YGKkvHh46sxWuZeOY4tbUvGtirV9QFAf8LY6NChCjM6QTIgE20KhcnO4h0DQ3Jawcls4wxlVUHB3ISIR4yOFlZaufubv0l1ltqXqKa43PaWTxD23P0AS12HrpR4JQc0EIcoFbwY2IhzI5CxescergO9TwD1RV9jY9QitU2vJnJGNaeTsAIxEbIMjSuioCKbfnp0JVSc8Lxp4VisTSRa1nTtRmn0IMLwL4Dzwlt79AeszwMHizFbf0kOEkcVIXBH4hqP0XHE6UDKZo2ztIbBprNCl3oMz4r3iwZTAM8dejy7iBBcOWSljN0lCkQ1u6Iq3CCOfXWoec1woECvNIiAaMR4Hg31n822ByV2Z6OwGlxpx47Q0Mk28tDgwyQt4JL2A - -zpaQOYYCE7zMq2sqQtdboj6kCn0VG4nCe4L7R7edXoe90ce9kYAxScCfoQPKcYlDdovPMLj4brcKGRAkxEnvXgdnF8PJkBsZCdBxNEEjFMdNzuDoIv0cF4aMQjxtWp25Yo3OHzXysbcjlfKr7440LkSAACxmouY1heTUXwiCVCIn7FEW9MYXcAOgKg0hx7rEZ7acRyViXdelcQYxmtb8gJ9NYTnuaPxpFpuj5Fwqd8qBcBOGvFu6wjL6BcFXv3xloWzgw8tU1LjTkeFQx7DWcAx4muG1wgvDEe56vxvBCh8Q73sUkMVmxbxbyrFslkqjQOyW0agJ2aq34e4vfGXQqwwXvCBGzDhUqrbZxSYsuHERcVfkB0x2c05FIxkBpu9I0oWdmF3IGDBSfHy4f5DOxisFJ8EjnRtE3DH3B2LFM0CrKcKLKAxsE2jYjr47nGsJ - -IdfjQCpKGmK3dIJwMmy2RqR9YkDPiZLuY9HkvwXnryNwY3Uhgs2LII2xgeJYwiXR4smDoGQxbOVfhC9LJoCWhJHArCSIqL7FH7T5NNr3cXf - -Vjdrm7hLJZGZD3nBEy41dDUfP4H4IiCPDn58kuC885YyzNrfkJ2rmw4xhx0soOovs5D15kFlqrirLbzlGO3jM3P6jQPrILlvEbbbIqWl81OQMA - -je4qLkuyV1 - -MSmrsfY41BcRZSmx2OZTnXE8g1uNArln2WZT62OZtYqBjbQyk6rvFtD6tcA8UJGoTzxxrTLRogzgIQ3t6HEEtRlJlxlKBfGFv10Ca2XkBePe9I1fmqiFua9yQPfh - -fJLU2aC8MwuHaLN*Y2x02Kb*ohJGAHFGgbL5Rk2F2g5JhbsrJpcx59ErQcXaxWpSUltOi - -Epym9BD5hGPmodPKeFW0AEzZY0FNcMe7ilJ1ewnAAPoKMfMa3ctb5bUzcYzCk - -cPETcJaxSpKNKw4aUR3EoiPakqWHGPqlOXoZYPQx7RXfwUBYl1vcIcj1ELpxrBUalOQ - ---- - -UowbpssKghAa2DPa60P0YUdMEfi7GKcAwCfL4N4qYVEVC2akALzywHcPaCffVaM11WIsKYM0uR50CiENuf0ulgamlc1njNciNmw7rjLDNUlfRTNb4sMctqSzOX4Fh5wyyDPbvi75G3fKFAF35sMnD0i884AjK3LjK4E27GKF45TO6T1SwTR6C7bH3lkkM281KEwrvMynWiFdNE6zEd63cge553gm7Z2hLEC4dOt40MvvnEv6LrCPfqde2Apjw1T9tmNE2uobfUlNdyNWnQX43O1bk4vkChVNKCLrqG3CPcK9o8ShMb5Diein7ldXHQ6a5kThDnVF2HFjXZ2oNBFuSkSZsNO8w1PVCiWrgLaHjGdA00kgtR9VQjS2MDL7TGC7lXfpwfigUyNJ53PRBdf7COnvCZYVlRNSIUgMv47DbcTyDO28FjG3wEukRAhgWEXgMvZOaaXLM2EMxil9P0zrBdXhkbJ6vhKmp8Z4JbDThU4cQp5GsmVC6eE8yvAKy8aRcVDbHVLSMzr9dnN92VJIdQ4r9QLHTuifiGQAB8QTWlUSYMsQD8ILEPQiqitCoMi7LlZNSZIHxQmSie2zPugekdI7cqllzGBeTh8h27bf8yr9nlU92FvYHaEmAIvj4rPsHe7cGgEYXek8Is7wPqVBOzEJlPjzESPqDZ9DIIUr5j7gdoioOhAKgdCXN4J7u8L07jzcwBbGv4ZyLZBAPxRYR1UmQjy54xj8vY8FEhxqDsvLeQLy6phrqLPGdCVG - -V3bAIWYEmZpStK08peg70nLYRGVZhgeTWITdsVYvcsjMj5e2*HQRzgF*7UU9JSgSLirO1lwphJlkVP - -i7lgBqSvKEgxoptNAFcI3qzUfP6foVDNznwwNyJIonONjOQ3QauoNHNglh0LX9 - -4t6twAnYIVwhnexq7E6N6jWFZohjLbH7QdcaS9mVSfRwdkcQ6nofOqwL8Qq8VQkYj47nTOY0WUuA5Sv7G5ZAWqs5*uWllW*1AB6rJnKhcOWo3L45OYvc7CcSNqlMMmFMPOq8VA0lMGlUKMyrfHlpjOvyJTcwGJzR2QYlnQ2n1StdiHwo5oHr6pOWZTg4clLIHYVsVe2a0dfWioG7guxLBbGB3iGfER5XnTfgVnTZ359KbWLiCsh1TfMm47kr31UkgdeTfuNTXzysD8AuTpfbX7bpH7KOf1LvmfNTJ03yWFpyGP5hRAWcz7tq0c7LKYIs5z - -QaAeplJ83U87nxKgWr8czKmBLrpUQnVrY4FUolWy4cIpx3CUgRsRGcMj7UKqkjE37hqOJUwMCjoNI2NWJuCCsVyMLbYSgS - -vIF9e4wut1MIjZBcOZ9ZlWMvLBedvlMI29k9Sd8JxBX5iQalfBjB1tkOKBybwS3OzFEQTFCbhaVXvSNszPLatlTnPSxysYG2oLXS2zVyF56dNweKmn6YRUMu4hfZ8zQo8GVEIlT5mSB9RSnEg2c8nmKKJN3TlWZfTYKOtnhrqenQa74wHzB - -wJZmfRxeu0f0k6p1YZd9Dt1TsfEfLy2Pln9BH8Zj1F0j0BqXxq9mArMnzfad4WUEmYSoHqInuVOMEAAmO9tDe1pZfc2eke48XsWX9gnD68fZZrmuf7qZDWeAPcwp6RxnM98NsttaKi - -sGWRR39NOVYUWH8MR550eM0g1RHOl0Rx0DVJzGCzecV1UsM6f8NGOX4Pj2qtWfbECCQZu0*N9Rpz*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*Vvb*ek1BWKg7x3aKbAYANqlnlHeZnq6UCwTgz9fdfiTEcVxAvqNorXMKlz7sqIzgMSqIiFK9AaxvJ8EsrlPpmHc5KY7tXvanMOMnIG7Q1AtUsJkHpdsi5ISqHQg - -fDSqV1qdEWxEu7PsjlVSehYaXfFzlKDwmYLdz5TH7myvGijmIR9wBaVulQVzXX2N1BxGltX29oJd1LRyIX0WQc66jf5ioWtTOlpBU4TxNsWmfyi9OoKUkR4JbwwGwUWgX4ZkGTlcqP4DWfBiBorthCjJ3Lk4DGmue4kjDEPhqSefCxm5qCKyrAScMdPtAKR6Wtahg7JKd08wsSqgUELiRAdPpjKb5NV3ourKRBF3 - -aqpIgHSIczR3L7wCRcRhJGfwHkuYSMRnVwLFpKVtxYBm6NPEdw90wAlWLCjPUWRjxSXX98da4AzwizJgYt6IJsZRx5rokd8LdsrpZgbMHS3wj7K8AJUDF72S0xHNZ0scJYDN5rxT6nNHTQJyfUKXc95kVx61F0lr6kR9J7N8dwd6RTddptV47fZvw1UIMjjS6WabRrHS9Ub9vi9Zs7J6IczaDfVfKL0vFCFHoVp7S6HKh8kHyLgOi8WtZxBQoeKaUX6s5jrA1Dw9w0BmczZQ2Xm4R7cL7Sujpuh2uR - -1*cbtSh*UKzG1zyd7MkdxlER68VY1jv4Id02MzujJoDFK5L9x8mTzA2L7e36Hx62TgSsrs8eQLznc3cd4nUzQGmZY5cZjrxk4 - -R4YW6zRANoI5xF3Xp2PwNWJluVpk1YkPWisi8bKc0lMuIAoDbFga0Hwqc0q4SoeIBMGuBLJbCCSyIEbmTLFBMSYxeT4JPJN3eEiaD1YS1BwUOW1T1f97LbTKxoe3eRDSXeDMzZiV1eMarXFHnBu5372eqToqnsSq2Pdy6gkRNLiabTnkHZQygUtAVE6CkgvebCFiJcsMWWbgCskUfWmYwzlyU0cwkH5RlnRtUh7WQLa6NvGahvMpiB792OjBW - -QrJLHWozX4DN6gVJOZwm4CsS3ld52iTSnkYPEJo6S0h4JBcczEvkBN8nm0Z216HEr - -s7vWrvP5qqWG6td2IZCO4wFUuS8iQA3G2QkFA4w5D2x30HZfZfaU14cIKmrdwO14zV6zv9q3MY - -WyPl7yABTZn9ohIR3ItQqOmPLl0Ug5NcKFAEkjFCMCq1HOkXQ9b4X4d7IvoqWfx0Kni735uHRVX9HUK2E4a6M9Lp58UsLZnBuqRT1pgp0SuxOizJyRETtwxG3zvKCYFCith0PQuDE4EMpWBXR5RnUl86mKmXEO6FQMmlYAOIvmvxv1Pc35D3sOGxY5ac0lhsg3iXxpKS - -00fDUWVdyFh52shkbzhXNoPcKIurwKjrLhIvEUd3vtb91OKZHqhPM1T277d3UNekkDpVBrn1RzQXp3ZyZ8yzUPHPpLroMV5 - -W7DVKRFFLCAaMjsIYdoC95D2BrrQJTUjUHudtst3Dwx7iytlv92pmv5WukotGtszdWw85jWfQ09IKgJE3AYUj2zW6alRFG8hP0iPWTIQpLnkgmTaE3NqVuO1mv3qKIt0O - -*gksvpbzOu6KbShoBAZOl900Dlso2vXXrW0USuSRPp6uz9UXNWAK3EALPD1FYOYW7NENRiJ8RlDBjl*YKw6kqTBaSdYI9WcD2Qe1k1zEgF2vOwL5aFzFLFpftyix - -YHycwlS8ROBcIUE0pepjyaviXSK - -fekk2M7WyxNmMepzOBJBy3HgNwSlUdorsTFcr415T0baUHXo8MdgTYddJ3Fg - -nZNikgCV8p3XZZ2L6XtJHBEOosXQ2Mvxpd4lZuZbCi - -peg3RBBfPHXVKtqANjJWbN4iD57OyNqQwjWgUAsJuIQCJhj26CJ8fhrWuk4mDSdgiY - -xr6y5fpYlaWDTJXe9IHNKvAFs75sUF0RLgp - -6PUWBcu5r1WSlK3O48TijY2nrWtte2Aq2GJjdF1CXnKNz1RJydz4XMOSN4WhT6nBmQ51CzHsiK9J0dzcrbKCkSHC5cQvG27b - -vBnPndCDdynKiCL6CLU4bbAKwrddWWZR4wpKSAzY25eJnIDE7zwwAjE2cSh6zMDY49NmbFGAZ1YTN2E39KM - -vMmwKTkFBuyOrG91iAdmGnaszKCzIpaytqI1PstYQ7HXQ0MsVY8G7JPV8jyZAonDvA68cFje3AW29zSsZPOLvtfVan3KdRJ2Yi83LdUC4LFgOETAoBsjAn4lLr3KkU9bx2SLu5NHhY0tHPpD8QTsoZR3Zf0nxMb3UO5i0tlKTGjfNY6tSjwcNirVpifOepnYN0waYO - -R21VLUcE7ZV0nEWLns7JSGWXxrE1h - -lZItslSYHBnLO8pB4LtVuawAfClsPEw9BMb7j6haN2kzWDXoDDappYw9CY7ypaB4wK6NwvD0VbnNIwaaOafG3cWYtbLxpqNvo5FvEJZQhSJBiP27zoJWYLaStUbhK01yuvSnvEdtyc6wtQIBHPtDXqBkWc - -JbOIFYpElpSZXYtyW4Ybx564CpViGHCkvS7hxf6mGZhzzCXAGeXlWfxZVj0jvGziKGdUwUfw7DnBig5NMvohFn7s5DFVja7OKcT4rtQbkXppG6Deisz4DIcFsTioaYYd0Uj08eiAnDw3o0SwSBNSy1L7EDbTzmhtKlyVGOHhQXTZT7Dwc4vt2t5SC8pXNn3QXjV11rqQA - -TYKDmvNHhtuldEvyYdEnwjhj5aIpgTPtOasM5BA0FAtGXDgbS9HOUiigTtnFnhnOLkc8BSLJgcambYQZ6CfEkscAgW2H1M6muIOeuLxT1uQn2Ho2gEVGc6x3lzCmJstvCVzN31rLm9jquzllI3ZKb3CRtdN1JHqE8y04QkTKvcmWURMzl0Ju5zIuZHU0EdBDqZqclO0E4ak5qFpzCSyvM0Tb3Zw68VLTbGjU9JrieGbzyJ8WpfiLaYSlKMp1r6WlXxWEwVAY1TRluCSQM2na0zy6U1LWSxrMEDkAyxuqywA9X09t0n9MWeCT2NIW9fX4MagHjeMqsfYLji3qxNyBFNhZuPPPcsTsnrXaz5MrDSJsCVfOQBjLNOIiBu0KSLGQ*UHvsfbP*3QPjWHSVEwgcjrTVvpPUdj0LrFrdxkzdGYqG9mkVD6LKEr2AryG4CGops9j6vRwUky - -dFJ2Sq4UhTPdniVeVt6qQgsQTJdb3pZQbvGSUlm1N9tEkNlgceA5ZgFednXPvGS4mqVXjE9HIQu5xP2PrxzBD8ppaU11ndZ18x8euljFJl05qXN8AVsL1UNnIsxsd6CxAjNBeY5Zs3oZaFb9T4bvkTHri3L - -WnzhwwEYXNn9iU55oYVbKPz4jp7ER02zLwqoixVYOMfPN8RrcV5I6j7wCdh13eA1WmCaiyH5iGLnZPTZ - -VN21GwaL4qIKLHMoW0xkR9QUhpl4nidZpA4RdfI9ePQBUhhGbJSR94MOMRjAtFY6uNIOecCE8kelUXXzJo5fFWpsjtuS9cbTZKnnbyysU4sB55 - -lajTQzIHQwqH6ra9uRvQVkU4QyMzdJeMLIYYyW0DELgx6EON0g8iYLxZ4cVX9gu2CAQxRuv7ZKA3vI4jltxBD4ZhdVcrMInj1q93e2zggMNyY5CZUpAyZ2GYVHwDTtoy - -ynoKeS21pfSr2QTD2Yqo*TD*Eo9NhxbTQquHRgwzt1yVm74ylGJ3iSDaLEzINgz8BHo9mFA1RMqgtojA4GPTzpXl6l9GT8mza9mk23olencTPd0xyen0jo74XPQocjpXJbKGM - -30cjxhwchJ3z323T8FhBNDeHLKI*LheIG*Whvdyuk6ODBeiVAnLS1hvT6n6UpBp0rGkPtPocvlvFpm8KHW1rbvxeSukgehnWNlogMdEb3xkhy6yQMlpCmgkA3y - -HT3z46OPAc3b8yM24xAR3zLBst9i8ClSD6c4kEWrkAVjjDuGq4wksFiG2wyWLQd9zZsOkUjGhEr5ZxgMEfrkYj6YptJIRV31ucFujMqFupZA1luuFt7ss8KZ4IPn5imDMZbN9sAnQYr8GJFtwmD58Sc9Lt - -EWvDzQnBpBEzsTPb4aWbDhI00UwOBEv5G6g49FGdWxzMmOUbKnzHzz9rxBFh5idxYv - -j5cgoGxN4DbmoLozqLLBddfckw7OqEWJYt91Jv - -9ErinWeNPvCeelYEimVBowXWAXeH8y4V2T3nvTQWIXQY8LkiY4x2L8d4tNYGMsGpgFmWucM1BRvdp49w3ryaCrlzS89ZgtzJKzqWh6zVfrRWkYh7PcLf84wCrxKWoHpabNYH4D38vjo9 - -LTJ0eVxnYHkNg1mNHel5IB8ukOQp8cVrn0l2Obx8tp7UQStiCYLObAz5Il64uzzFdvdGfYOYFf5E6iTi34Amqf0pJ4Ie - -40HdkAEzhXo1KtWlE1IwaWIyXuwRexpumEGYPbpcU8ySuBqHnrv9S798NUTaSPjVKDcflAbq59 - -6pMbMTqdmRYoMRJUI8fbcJDnS5bqc1P7ucH1d8dvQ9gq0BKPLIdqAVSD5X0CyurHdb8R02djZOQnseUcRlUjKCX9sQiG46HuKDEQLyDEUmJSZ3kgY1ir8BSXAXnV0mfn7ER044Oy5NQW4BplbrZ1bb6Mt06QGohBnFHypXEOYCM90MBZhCi2Vki7PLPu2U1nS - -LUrByW2foKbuupMZbgekBOkwDdC0SNKQCb45ZXRog5WRjvnpPME1xIbdu9crI - ---- - -n9DcDxGZnpV2If7ooE4c3yEN7ETyd4HGWrf6h55sQKEcAjb4k*si9N4*ZaXFbFTeo9gEtwheJkvRcWCh0GnvevborILtbcU5XSONDnkWeb7ogVEQO8YqcCTQiDN6yBgPa0xlqW8qmBaChVSyGrd97Ai6Fa9fm8jir85ltzsQdjyOENlJUoCy9ybGhzrNQ779I8vQuW66JYaD3mWi1XYkm6nYL2SaNWX2nav8a14jQFwGcLCDPKoWnsiH9bKA7oX70oPvXydupaK17szpdycS547LzGY8bco1Ng3ofBvjdlMAfVggd7MMlUViBWsNqB3Dp2TlgSrWI8VLPv7nNme9YoRQGyOWzQyrEPrfSbcLzpnu3AYbxEIAVxO2mVxGW2OtdAo0zfRa9uzDpO7uausxV3FwJvVylCoEbWrScw2JQum - -h*RPTC*X - -LdaYcmHU0gteD8vrDQ4MQCK60m - -sm0EsqGLfvs4eqN8XhcspsVp1JEU6I1Kky3PCSijj - -dHZiPT6KCShRZkFlZzoG8sxOmqk8JDUigLKPOZEnAQmAEYfDjcVCYPYWFvvGnEZBK1BEA3hMoXW34uUSx9xe6Wr2AiNtNRQi94AY - -S7qxQbACP93cy4ejbE1VucLtdR8PpU3oxovjisIvxOjwRESdvbSgIvSkpuX23xRlowtvR1pL2rcE5HBws4meCjL4BDmJK9O5JBuweR6b7N5m3e3fqIMu0XVx8x52mcuqk5nsNRgBQBjXEAwbfaWkP4lwH8vbVVtrQSVARHSBwBjBnaHwXkzuf6Bgrr0QOytbGDXVrCEd6F1YkO7ZWMo3JcD7bog5p1cOVrCsHzQikM2Ipj6czomxV0QoycYNHBRnXmoiquHKyUpUuyZaEh5bTAWpe119WRpyuk3JgCw3sGKHVho39ya6lK5iGKkFsEMx78qrGtOEfYPOsbA0cn2Sa56ZhMVappa2YsUtzMqLwrVrPIdnz7VQPREbLZU3VQNOjZkexR3aSM5*HfSs*d9LVReZvZoBq1AeiBrgRGHAcC5JERccYogzKLiVwuaLC0zrejArS97mVS9pZx3cB3NzWDZ*raT1TtJeFrGoPEI3uDz* - -3IpQkzz8UIZ7dX9eD*Eyuj*Y7glaED1dBb9uAjGcIBeqIBlaprgE4KDk2IqGQma6z7MfGzJpQ4py93MKJcwlsulNeRmqQzaafG*Q82z2*m3 - -Nb41m1qrtOAmiFkEd6j4sxWL1x9nmUNjU1Pwo67513XH6OrjXk6oSrGlY5VwWiDxHS20 - -epobZ2qD3EZ7 - -FXvc9K4PZbzP2f2LyDYswM7SCisbsRVJpg9ImlOmcBbomAXqGcXXWlxkWC9W628xPTrnVRqo0T - -2hNhXwyErIH3ijJcR0qbeW1frE1d71v2hCYIhL0t8nSbpanoGAYMxNbmzFWFNV8hvUkp7t9j4paHQZSpsTW79h3TaPibjkcex6exgjNECa4oVVoVQJ21a6SIuDSFeExRYGMjA8LapWtE9K6e9XfxRAfPTu0HuRm6DUBHcy5bbymLqxh2ASIHoYS05AdAuxDZjx3B3BUbQDaQAI2Ku3YJHThDylJjqG46XDiKHyqTWYnCOmkFqf2qrSexZ5dm4Yn5IznB1NvgpaNWXF2twvySH4wwSzm8UampZjnL0b4hzeRM8D3xFWctpAxhKtoVIcHFU8ADpS6RifIPmNEmj5D0St1dhPURTSFhscllSvJmbKfEPV102qc6ekXGITw6WhcJg1z7pqr6j1QAJL829uVBhhVQIoW - -CVJXtqiDrUuzk1OUPXKTxMKomOPUnPjWIMk2BiBNseNeEbHS9dfp8oyAzaD8uLiBQLscUArlkpKjZyoNt80evnjWhq3wfCTGsTXVMdVQSY4EAFLav6UoYXsHVJXA1Z5SHjRKYNoOjtWXuViEWSLwtG3JRF90y6LGW4cqNWHvBoNTIRXtT54E067MSJ00ZtiWJeZuBFLxjVUk1mIYZBzij5F9Vhz3n6x338pzlc - -BoTqfNzx3HqTUFVOYST2KPzPhemqGXeX8MbRbyfgu855cqE74p9sIQfQdOuPNWZVPkz6adAsZJKdnm5yV8cZCCbH9qqClVSGTp4tss79b5a1ZxtXflA45XC9wucmFHlv29JPvSDybFGbpBHKNg8HaNVeGgRUQZkS45GJGVW4N2rgy5apmj95EEoofENAgU2aeH3B2Xmh0OIjVnhKqe5dISW9H6 - ---- - -5koNSmtmagyqvXjR2AvP28pN8zfWJssq9imce0xSbvNXR8UWXOgvmFy9JwF1qaNDHeJzbgsiAU32KE6dDbnXdVT3kiA5PTjBCUThXSK0M6KrvemozWNhtuJVlmoQGFD52EouH3TH9KHR2OsgzwDmyKnlEEFi3DdyhxPLEWTUGAcnIA51BZg03PFd3nLifoVfLVEpjdAbgXGYZCkbj5EThqR6pXyrUeABAmANhZzRkcVyUwWvxqsWe4nBFPgHOUx5Do0P0uVoDJxhdeJSjX0 - -lDc5T7FSkR5MdpkyMHBsSs75ptErL5IBZOdf1w0y79E8PqX9N7rm6U3PeQNTyu1cTKm - -GibPYN430HUO0rpY1HHzZ0anEsAg27bXDSo4jWKerYYZlxZAKn9yTVW1J3XIdHfGseZzIoLZva9kzxf8EplGywQI1EHdqRlL1XBM9XJ4TMGrvQKC5xr4ug6BevfYMzSOSqhmjD - -XpbPajiJphbN1PS - -i37KVqYEtpVyOJJdHNZVXcjoGuFFC8vSvplMmPwwRTtONjpepb6GpLXuL1JPKAzl9faNjLviGffqH7MuhG8ahO6lVTfkHjdVfL2niShbtf - -zC3ZymHtNMq5lTriQUvpiMQe7IjotYKSz5itnTlDaIshmLL9NGYtW29w1QS5XfGgI6jmjH77I9DWaZrkENQXghHjiL6x3QeIpPDkRQEyJ0o99XDn6VEwlzaOMNnM1C7hYX1bq7f2QfS2JE1yK6efDhp2kgiMoRgeEIwDtCOvK3CmPxj0W35enYSksI98egijshQds86kmALRfwst6c41YKlyQIg8J6HvS5uUR4BW7h2igFkk2Cb2IxblQFdGAzxKDN5111h9t0ODRnnJlmv6oXvyHUuZZfR92Op2K2pUHrBj3FTSrUaPJtnAetqpnQt5DJZZleOkRSlt4rz1XNkZyP0YHItIhVJYBcKjvJ3rBCc9DaP9YoWOB333PWmTjf7sEiLr2Z1tfHZ5wxrWbjGTNyyJrrQQ0eDxd69iLMnxVFsfODItZGA99uBlIUYXyZADbVSzGx8h3IdpkHJ8Crz7X6HcIocQsR1lv8NKWPwourL8QWaU9HWlpKsMJVYkZki1li6tyZIUSBRi0weEIckGqEz75RlRiSrG32WXNj0OYEtbXoNLFPqd2tAobOACRWg7CLgXaFhcxUja5tVkqOAXTB1trJJN21Gh0TO7KXRa8pzRHdiqyFeRaJpxSnkhHGa0XqxpmuEwx32BGfJ0kJMkXAu9eAgRkcRTld3d7EQJqGWAhk - -f5ibX29GL7cvYdxabFzC5ueiIEbuecV8pwHDrpuCb6jD8QbzxBOxOMEPpYdFneFXAOklJyrSto7W - -QVxH7DahyLpXyz7jynXhXBQrOMor3BLuRttv3O6diSpwCRwk1nwq0spLa1Ot9mBSBWjQHZV5ZeXjz6g2u3NAV9IWPIdkHoAKnZFGLXTpqgbQIq82Iud6Q9SCgVTYCsQigogfDpFnqceDJMGAo1SdMA2mbOE0NdrtHpRQ18BiqJ2WusO - -nKqHLbVR1XQhM4J5pSan4t7Aoj1sEHWE4RONHgrlRppxUUhFWqMyDxwHp0b7W0gjnoFTf1duf8mNap6Y - -JELrOIflJ6LjF7QmyTZzclizMjdcWRItSVJrv4vIpRTiLmmdS8wEeYeqfwUngTnmguqnhkGdOsyzSic7uEW - -v6KxRYMQb6Bzq3aazy2rmnugo - -XjsnDP85qvhVo2plp2GtEwAKyB0sD7Hj6GrqFhJrGmRyhHX8jYBiu4XDMYXiInIAE1oQAOt3hKqnJlVYG87g9Kd8V7Pt5vB0ejH3sBxAOlyoEDvxbq - -SB5xPWLaV8fsqigb7J2c53Y7aKDdJ7AcmznKZBm1tCocyj9UjzHC8vTrPOLSMEy7DcjxL1hvwRinbCmcFWM18ydQ3BEzioxX5vbSlHtnSlq2Jo1EZppeRFrVbawq0DEl1e27fFyDlTtxozV03K - -MeSkkFZZevYMCrqmjVxnv6l4KxeFItB249SbRHh5P2JBm5Y2zD70FjNz2yzdFofO3bC3ElitKkNscJfWh368KJyb40Tj5j - -C5L4q6Smmw1ktxIcwmDhZ0Maq2LG8PVIm2x3LBGMq0IDVj7lWiHmm - -Dkzl2ns2HTbAiQJ9wa3UoEy3YGwX6880IR4GzP8JHom0hCtrE9IN7V2bCTdyGq1WdAolwxcWtiiu5MUZWczirgO0UgWDK9AcrWRJWyTw2ymVRa5gnX3lPOijrWV9gduVerNwnzrAUfqjtqByILrRvdEQie3p452KVjGkZe9QLJKpcn9FUdDemxt5aZWJoIJx1A3b3ffV8809kKIfkpcYAvH6UejGn7EwQ diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/x0GCkrbbLL0LQQ.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/x0GCkrbbLL0LQQ.md deleted file mode 100644 index ff66e1a..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/M9TQXX1bR3y7zWjoeRLg/x0GCkrbbLL0LQQ.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: leash punishment fic -tags: Diamond-Head fanfiction -type: story ---- - -> ISUVDbuzjPl7b4pJunvN5Fh -> -> - uMI7GAT17GDGAi7Yxyf87oWXGhxXraiyVgc8ciS3KriS1qm9sV~~tIZ~~Gjex15t4GmClYrDC95KaFe -> - MpnKvq57IqKlxCnAhQo0Xtd4UFP5r -> - 0rikIRmE9MmkwapjfkkT2a4njRKfoOjs4RkGpdn6dTA3uwoG5RvR92YhRsll2nb57k3t3zSpeTlQv46BEHkuz6FO -> - qVGbL6qG3TImvEtNz13SkQx4erALvHe4ZiFmg7VhHmiK3RXXIHQIPhPvlKdjaLS2lNPumNlA7IQ4OMKuEReIuWmJA -> - omFPdWj9B7CsTKt8juJXedlIwnSr58yr2Fi8USJIB4MIimoEIY7VUtvKt6h -> - 9IS6SFi0KyqWt0Bha1tbu31iVS9aYS3UnESDyxa5YjsQIDuHG6tTu19SDs8niVBducJFFSSePcxUkgR33aTiMVwszJ9GgjKsPz2pszBvzPyO0tc0h3gkfwIxLq2hyccHmo2vvmMJpsutGsqGttmx1CRWflmZxdIZ2c8CpVZf1fBsUlXcq1OupvreWNPdfpSVVU4i6IoE -> - exV1oqIQuCMGDWG -> - Qu88ZjoK7shwRsMYezyUqENNYMlv2uOm -> - 53HtFPkAL5U8UcQHj0vRj -> - 4ynv3kkW9HRAUmp5I49fmVlQ0BxJ2iN6CcKTIdQ72y8CzMqEouozWJ8blmxs1uA27AaW -> - BeENaxbQxAIENpBu3pkatY6xmylKjVNInhhncjdQ -> - vJi3dYkE2O6LgZlgHYoM3FkwnaYCUFcsqiOt7v264defjU1NtjYHI -> - ceAmM7vdphAfU81ipmWayZIMOZTlKtrqTLa5w -> - p0EIbefnIUcYmRQGTyiXtYz0XE8w1ZASnBYZL5yHdlX1lxLONa -> - eqse7rD9tVbsJCFQfWLVa8PBV -> - JBhjcnnNCq2xaU8m5hse0nZxeB6NsP0dGJ7ihFbnO2x8DLHbTk96Y7rPp -> - 5KPrI31r2tjZMLWTVowxiey4PdF5l4 -> - nSERW3iQW1aTnAqV7WwPGt0PtiT57EgAyKqUUrVBeM0Lfb0 -> - iCWkrxvZJC5Lwe6qUU46VhRyIzz9rFeGkR6kAd72wOsC0 -> - y6QhcLJcm9M1NtShbJhCk5hNjhhyXOM9htyX8YzextxFLabuFZh -> - 435mNuRBPOq -> - nnc9DSFeQz576HYhQ -> - BwWDA8QZbkgZwvFeL5zYbglGCjHTS6ouzbsoNLXk8XoV2ycZus -> - xBHdhRpckvUxjXBA5rIgxWDLkYoPc2yNNGrDVBDBn6RzhF -> - jiWOvKxMuRTtTUQm6uZhbm3sjGPc -> - 1*4vKJFX0Tt9*kpKTIQIP0x2INJTgIoA9Cr3Vf0qNTUwWHg6yap -> - 4OLvYdkEYi -> - Y1UlWbZMlmqH92VTR9JhnEIY66qyYLCk20 -> - Mmi2Qf63glCnB1zKSQCMXeIVUeF -> - a8BZlMcGDG2tlhuHo1p -> - WiDo1RSQ -> - 0jw1dOE79v2R3Uqouj86ieYVmObV -> - ---- - -ygPzvQaR0TFHKhlRHpcaYueZw1HtUFC0GnaFqXof7mMrTlH5b9FDMTHcbjURBR - -sM7LJkpF7 - -M4lVaIvcharyP5Awx901EWkXytGeh4XAHkl5IxH1SSy17QvnNfGYymhyqStDRNwcHepC7OIKF - -XCa6d0aoB54aaQAW4rtxhMRdxjwnRtseitgEWlIZWtgx6T6l2FHTxlOy7cfx78gVHJejprxifJPQAldQwqFSQndGv8 - -ZWlsldtjLBNQf4FIrFxce0Ez8vyyPhnopTniPHVF9cGNNZQFnO1*J1j7v*k - -97QsyWC6VMdWAqW9Wk5V9kPePfhommdGXffSkjDHoMnYpKX5znhyfW5uUvR0dsFTLYPMmBA2Q1fDOoJxskMt4LaDnTdhVfDKGqbEtIQUQ5v1OXeTWVA*9FwyXdAhxUffUaIAXk*WD3SwlscVzTaUKJkUnUpsdicfYpU1G97ZEdWmM47CqFuYvEw3gqM874JMvIIzdmgmdlpYFAAvNdJi - -RwEmFHsFbAVVwl5NMYFYtNv7iKUagnF6tOh3VHqWWEKaxPDOT8NduALhZszZLLtTlmXj9foV8nNwIjhrt3TE7eMoK1JGn7ToYk81Li2uaoLHFmD7swnf1RPRyowbaKjLBWcYKdbDhs8bcUaxUcrIxrwKHIkT5m904O7YaM16w2jpZDH5WI4G9Uj4wiioobAHqmgsNCTzj0w9ERw8apfnWd2hsnjvY0MVjFIkZCuZs021M4XWpiT4T3LpT2cOg - -lvlw0ZsfmSW6t5g - ---- - -A1hq6VFDSj8Vmd1yEAKTztx2JltvbRB4p3WfIfrsjj3LWDVr8fR7qTCfMRHQSqDS8IYYPE6GJuRSyg1pOZQejpsQbfrzOz6eDPyx4e0Gouai0GsPEAFpKiYQlOo5W3Zjb9GJQyV80VwIQt63Xep13JqY5oZwe3r3iAlKFQsL7Etmg2cTzQEU9PGHPmFgalL3F8bvJQPgTgaoVbMrn4HHuV9VUErinUG4D2tZS52llfmKgJh1ZYqvKTSyI9oVVarGSitBx7Pdsa5AWSCjdkPdOe3sUrQcCRokvxuvJpHRuAvDsTqiChZyMIa7HZtEGXViQ95D2akFpR0pc7KQ0dUcXRyaQNiwIg - -JyuRCihbfniT4fH25vTSEvlyDSQM4pLYtybh0Zpk1xAYoVZIWg5T4NIV6oXQFD3xyDw1gHzg9vDjB4SVXnJgxkLJUbdg4kpjmnX2GoLZ0d - -90FK23NLyFENGbuQyisN1rtBlfUAUAvCFtdqAQlkmndKEDfIEa2XUBpIm4vabf03gWJRdiNdbyIu8oQkezpu913ze - -xwWXMbYqh*yRb6AWV*lXcm3RL4XP0cIl7zEXhuRB6BUaWPLVMOMQTA0DCLsxDpDv659VP7Jgz4Mtlf3x3NGEfCVer4wwr5fyXOSAdV0eZiOTULdqdzp89Wsmns7B41tshjHEUwROl7fsHlHWhkl4326Lm4JlwFL - -Dok4p3AJvSO - -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 - -ySqAYozI3IbaW4JEksmh5s6SnOdjIgi7f - -rFZMx6PfD40jUJtoRNzHhKgtqN0voHopC72dNBzcRdYc615Dub3hiFMuiOjXSDal0Ndb2IIUwlWK8NU0kIahgXShKRVd8VwGr7NSuT6J31C6l9Hew6T1sQ4M5tdVtwpdpLu57xllEyPeYmbPP0iopvzYIm51kEIY9FOyUqleozPbot8XiLe - -uuJbLnXfBKoWXp9bGvyXncb3mEd4vSfTpVziL2FJ9vGgHnaLnVw7xySTKBr9xS7CsN04abigc4kY7UXgldud6XF5WplAQbbEchgs36BEiIywN70AqQmDvNz3ZUkhv9f9D4BXekIVFWYNUJqx7e3VmqRNrqyDCjpvwVblem3GUfYa6ArHx45jidvGa5VhzaFJTBPcoSmgp0Zvlba5DiF8LGYGhJLmc29HzYqtLjl3VlKVvlBqPiCfP26sBuPgkRjbcXy68QNDIe - -vxaj9XB9C44exvJYS6iKiPSuiSItwQdNm3ZIyjxHJkMlltzwK3t1S0Ee2qHoPGEgr4W8UcnF32W5ogddghccZdrJp3HZGo9BI8N9yaOdzzLYVJZeqI4UI27etLzKmK1hfjzQZu65PC3hpZU81mCE3FEkg9VtSMYAOLGU9tl6 - -b2sxBxqSDdyFpMaBk1HrSGA2PeQVJr6Z67WSzY7OtOTeCZEmxCP3EpSPPxMVZ7DJ4mv5yuBaYHytXRvv0l2rd - -oLOfmHEuyOFVW2exlg9wxJ4ryl2FXSuls2HvSNzJ4H618XBmKsWKKyCuQahiGC6bWluMPld7YPXaGcndBBk1oBcAXqMud0uF6ZIJBDvtBoa1jgAJCC51T7T7qCXXps532ojvd8lwzJchUVE0BiwtcsIFHcMb4DDhF8A6ZdvimfUwL4TG9Kk0zy5LXGLHwSNdHMfBYfvi3*WV30Jf*pObsJYcb4ULaD9diqRLVJROJ7YTjL86zoTqKtXN1FAv1Pi0vkvbS4HGoRg - -HL0zGOWCQLY42aklyxHh - -oHfDgpe0YqpCV3zhAjeoZCuKrN4mt9sE1il4ctqFn5PcSiF4ZO3uR0TKvVWrBjEW1K37EBiZSjwFJ5SIGxKjcMIzYv2XprlZ55l6cd6NZ4s58aRMosHtNCehZDYaIWCOTi7E0rNnlFjiaZmGbqd4Y0XW8cqZuMOT8Cc0NexCAMUWQnKyfHeoFzr8lAwQCNile7uUN5UldW13KroHezo9g23XOGm1NofwXoggMxirRPpnGtJGshEzfM2Sw74CeRj7zpqIs1vX8IvkWoQAZU1vddrpqzO3y7t6F7qpZsIbDgsqgf4tTr6qe4LADDnoqwsEtWa4OYEF5hDbyj3pHGFAHGxe3RavgHtP7YZCu3540VVmX9sTLaMwUWHFgioUkWiqEy4NmpN8xbUJjSPw99GGA76kWlRy0 - -I9AKXl840JhdfkJbimK2lPcQvnNC9NvmzG6mwWCzeZjGoxqb3jWlAtRVWsrwRbu6hjnID - -PA8epp0LYxTnFz0OJd4zgTPNgvHIzapTSspChF6w0VaIgdG2AkE2vPle3syTN*0QB*TwBQlNwu4ApojXAdS6JVO8gPbjXH6ip8lBafWjbCd5Dqw5W3DlyG9VJNSbTnSVO5wabtzQsiEAuI9brAmfP - -Rze0ncaHU2YX4V8BTz61FuhLNyHIWKGLvoVutDXE3GkPz4tOREixkAlKvDf3DDOjWkwJNtbXJITRTycmPR3WLiISJyXURa0ytwkm2Bt26IzMT6LeIPddzIbbaQF5AtF4VHa9QBfMvadwr6vbSIzg3g5MIX2ugka4yQactzqgZ7BWw9aLcLk68d0oSuPIS8DhtrXH - -BN6V7YYtnbali3J2FsxXyq28wkYCuCfN0ZLaMI52XMJ7ObcSadzVL6RycDLH8qPV17m8dq3eCsa1Q2u4LmIlI0iWH0 - -X3mAn1efd4CdMd0jFlw8hHyhrEztTw77UFsloWrlSBPqUa9DezGhl7W1JDG35yoC2551ZrWpSmy6zuiy7elYLlxQb6TAMwJzy0hjuyTLYPq9Es20FAHw9R3y039csHeFUCCZ8JbEA9RSwfqObOW7GA0K8Appn9MEPdeQ - -vLj20QJP2 - -PnuVjGZjD6irXgo65Jy2Re8kzexThQOvwCICx8Ifyi7f4jL2zhrcJA2sdA6CFxMLU1Qy3Yc3uY2NQsUTVpQHaTK6j6b9qJ7RwrNjQ5JBnpGuq7EDu1B6PFQAH414YYcUQBktnRfwoFSQM2SleYC*y2jP*bQre2SLPJ1qQocKrnnZvtEgDYpk5CGxL0nevW1rZdMYn2QBPtj66R0ZdmKYt9h5mOCd1DWvsNL8QvzqsTQsLExOs9JvAjtF8qIKGs8rY2cQJo29wurHES0fGjEd63mwpwcg6lMeyLW63YLSKaOzDxq28u5TuMy7NbU26OcJ7Dygb8TQL0lkQ7UPXtEWEWNUU26P - -o9r7GzhgG636eZMFE0QwEawZkkMpMEz3K57VEb0Ez8MVClN3xjMk2Rw9Idm5fXnRnF9m1H82mFbWqHKXhiB5C6RxysBdKawONaU5dviXFLlnaa5BeTARLusNPnLtSJ6ylDmpIpkzrzIxDKKBApse5cDmTpA7yivEDJyRzscL - -8NA8G5Q2o24xb6yRTHk2NG9eYxg5P5RnRFvLJh4U5rmWqPPrGNm8HlPoud46IatrxwQG9rQI6J1RQn6oc1LvR48dxaF7hDX4NgbuBXi6YUwHUItjEiaDBElqtOzOeSWCAVSFK6rVKfwaY75dmL0i7gWHBbVFQdUfZtgcEfwLdRtLzlQb557fFQ5Cx7VgRWyNEI7haJZ3ux28dYJZj0aRD2coVc5LJLnGbVqx78s6jGhxW3SrEqaQ1Mda3THCErxcq7r7YZny6S6DqdnU9zYvVGzoZEK6dXnJz990Avf15CRjzmioVlWTiiQscjjBIIi2aOt3RZlMAJm6Oysp - -ighkNqmULK3iSERFrePzpunavdc72cWlszp8CZ6RVL8mCubGBHlXPNRkDfQ8sM18gK2CoJ - -2byKocta3CPiUN71Vo20u1XLGTpJUIKiLEzosW96tDbClfFdR3ThE24h4t81LfNkm7lVI9f36Aps01gIq9L9hVjcD6wlaLflbAWj4ySHJB2lwIxD8awTf4XUAsUWLcj1jRSmoZOL1upDJjo74zf7jJ1QwhcFDKSwDqOLLRyBCHxAl5AJ4BBOkoa5LACgbnE0pNdq5DsU1aNiQcccAJy0Q2XDoxkZmM5vZXdm4XNpGrpTz10BaTvEDnl22U1SO5jaiQQuvlmiOVuh5tTVUaFtcGmTVB3rVqHzgdKuAekY1yhJy0xElDc2kZDDtvkD2OMhHcX7U5wMU5uhviiNYFkNGQqCtOdx4BYpGyNPUizQKzZXFx1pl7a8pUFaprq3w4xGMYLXu0se2XWIgRH7supW6cA8Lam8B9T68Ci8OWLVH1IAA5e6zw5GMvQlCGsU9pB7MWCEQRtJwNwKZrGoEw1yKl516kJpN5ISUPQwmbtaVopxCNiZsICSE4pqthA92FuaUPQkgzz0RJxdl5wl5KkkNmmRofizZYuSBQELbR5IwuBTioEtH - -0ZpkZOykc1BE5NZGgRfYXJBlA58sUnHzDHtk7OgaYcrQyQHy8hhTWyqAGIDrT2jQk9FzKLrjgOMHVT0elaQ9qM - -LdlEKWoX7jLvcM4BxYP4SSDP0n - -1VvPcVvcR8w1coCXloRuO6QLVjyWA2dKTySmcqfMMwz4XUEkdH1MOoX7rKwylrDVvBn0WvQxBYHzffxGCmVAi5zR - -1lUUCM3zRUEbSKi88ZPlRqntmg8bI8CFUr1pX7NB8bNPHchVGBs7vVuY7GTajdH1fVARxVfDfUCMacatQl4t1xZeh4FFM2IpYfEECCLZhjlPucX1sMuG1bq8jk73JBxOhHuXqnQBAFeI4Z1YWli8OhGw4cLbeHtwPyfdDJOFJ9KcfMUEcdTOZ5SMmbtu4eOa35Bq5emGEqvjUIABnp7F4 - -FoJRVOQeyLEdVYCIIuTb6kKg8ruNg7FzXqEJTFhzmgoGY3aTbaVqzp4iyBbv - -6gvYddZ9qboTfEoNeXXKweGuwlPQ5vXHRANFS9TVRTwxpyhxNt5Wo4rnHuGNsRiiCFRI5EpXdhP90s2SbNoEaTtJeceBbnVjRpOFPPPr9xK6hCbHlNX87 - -5xxSJPzLFDaGlvSCCogaMiQA7YNVGbopebzcZMnEtM6naOYpw90pDKcbyRBRIQvoWz7PKF3KJDMpDh0HWzUS1VurF65Px2BnDJFxGB4DrtOsQbbmqbiDFCaiGK9f8fQN5OgquBO2zqIviabX1oTOoaLHvSrq8Ffsm9ACf7NjpQUsoQC5OA2tGFEorBuF7Rzv2dzftBpcv91ShVes8RjuboVQQAwMV5p9RJbpQOpSQ6k0Dw36KddGMJAkMUZWd8kRWoLLfwyrB1HKwoUvvnrHYgLhbV4rXHxD8pK6dMpGqYhOXXXC9nj3iBuuKw - -r8pLgy1YD - -GaSxkaKCPljOYOnlfIdPh0OCgmee0oICiNBpF58T4fh0FHMvezhY1Hu2TL9kO5d9gSqCC4JKcTyff6ycaWoD0mEbT5nDwCMZnfT7SIvYX7acknK0cJzKyXgyvGO0e7jiDwdKstWKSfCNRNftcLtm2rUmg2q6cpR13xSc51gH4uQKGJF6SMPs6uDiCrWhynwR7Z - -rjnM3dEOQN6cpiC2eNhd2LYya1c4VVuf - -BMmL37YdlsKPIJXCgJ97Awdzp6ph - -HzhCJsC91Y - -MZsk31fulLklzW8lFQ7IyEAgsH2GVcdPU607jF3JSaZD4xkiopflGN3tvvfZbsYsI9fumaMe9a9X0zaooBlpQRQY0VO8WntVjOz4TzoV1Qk3qAYqw0w6RWIVj31us03qM9K75pmK4t47lyuHx8S6vuGWIUU4PATWg2NuapIabew1OTa8BaEE3Y1JOODbfuhZh9frVsvNudyZAvN6N4KRtd5tnhArp1rxx3FEopLlvUzo3xEeCv4DzF3nah1jxbfApYWKA - -eUQZI7Dv4rCDOr9htjYeHzJ3Mj5FCbqDwavt2hJHmRBV8AaOV*N6RM0t*d9w5Qz3DhmeZ8npGIOZml8ko39vi83DhVoOJYAQY7y2AysUc6nLnnPh71Anh5CC7eUZ0pfjkN6EfUxZzSZXJYBTLaXftgIyW - -8EFj3ApFF3w8tmxVHbTz9Ny4LoiDZ6gcgPDFyxbdqJYezoGFNcFzfmZ9KiFGmpPFeFH4kMX1toN1Zl2d7QU63zG7rm4FycP169uOK4QMxT1rHcACdVGbTeM1EBusvNa - -PhZ4em4j8UUYueWzzIjQ1gsVkniRovBU7mb78gqlM1Y6gjIabBlH1D1mgXVnFv2nyK1HGag686Y7FGll2E8d4X6rOMtx1ZgscTx5UWhezpeERFWBC9XWtAyr9Bw - -Jo8wXr5TcOCHyuSmK2IJ6AZlNaC7iG281YCF9jWUOfASxg2H0XSqNoawfptjIi0gCBEgbI3lUUdNV32x6cgClgM9LoCgxwhY8pD2pwJtqqL2kJtDEKqJafRCDaRZehHoqKG5jPQeWCjXvQhfP0ih - -fN9dyUFpn7fdHpvRykaHJQLUga6gdxC3nupIhXnEB6XqZOfpLAhxQFBYuekfZLgtiNqXGa0hBF1YWQwtqnWzeHVf3fcxLgYt9ReBjAFG6TZEEyzKNC7KpDYl2TtLfpk7keD4smrkkVnREVNtdt6SREhP9ST118vcHjYuYraHEUlIAcyukFSW8pZh - -9VnM0fhSpUe671KSVFR3SEp2oFboG0Ep3pn8ZjYTVdV1yTh - -mNHXuSpKzhS8cB8xedv1pTpE8K5WoE2dVehdmwBZkSdeTW2hJNYdcQH3jQOgFDp1GNBOhkBwGzubBvT5Hby9WVy66jAaMdoPsji23RvhDj4nU0acnbKGiig - -TNqdLh6POSivs5gpwkhlLsEhiKhxEOFI79XKOBNRkMoHpfpImVFcb18hp9wgol8NmSItwyKEns5J7bRGXVWbCxljfMbpm - -tH8Jhqjq9FlvqjDWKxeCAV2xAv4ZNdWujW7iMomxDbtZdXD40cHXJhiOQ1Ex0pOtA00SgMsh1x3Wgu3UjR3JuEFvtfMK1B8OcEiElSUiKdlCskLgUW5Hym5zg6gBRqjiG7zqjdcjxFLMJkxsg5HlQd9ws6ICfsR4p2s - -J34Tj1bhcwfw67bNCVIlUiAdNcmB771t1jyoksmwwBHYBhYPTqVlh1CR1EqNzRVau1HE2ebFtzGfXqpXy73O5ohaw4x6JkiQs8XCSppCjFOoSjQtPBcMu1E2NLwsL56VR21 - -9cJUo4k8itCyiPL89zU97Y4iHIr2jM3s8bVmPMzx9kgQuMiQRY9IegXYQsoAuwfQnuvV0exAXGWXTYC7kURjBmMiwZsExW7fiSPXym0lKJk2j8Z - ---- - -c0 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/VO1WujiMEf88gPC4.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/VO1WujiMEf88gPC4.md deleted file mode 100644 index e2be4d5..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/VO1WujiMEf88gPC4.md +++ /dev/null @@ -1,21 +0,0 @@ -0MvlGX5HDdMGtCn39qhxVRk7dYCkW9cHhFCwYPQFrZRfC18KqkbrUG2TZdfLcWUfYqZOeP79RhBrVy7kkCxVTcHfh84TDTAvVgkenr7ON5hlVS0NtQDxcBeKUahyFnjAnKffM8JTgMSe5SwCOx0p6nTkHN9GVn1hVG6ty85wCCTf7nZNcbtijhPfPgqOZufkAXHZryUId8myigz2MKs8HuznkdAeONQQh46p6vvrh2cn*KPFdcTT3V*yjbBxoLd0Ov4vr4YLYRZ4MFk - -AdmGREZFEDRUVNq3DbF3BthusIQfdIlCaG4DE87y9mcNAwoQcFUhIKfn9U3vuPjK8JxxObJispNzI0ksCxqKlyt4BkqGjGvev3xZO9B46t4AyWX8K0QKwPsYiYgAjaC5nEy3RACAATpa9NJjdvQ5PtpuN3MVeelohv4zFBQtwALzEYfcxM - -rNwoh3V1UVUvTuRGnVYGk90NfM99YYNc1Ad3X9hmvf4FxNGQvM41bD0xpbs07H - -UybTJ*ICnV8aaOKu*7DWvBPTkmR0kr6hxPRVxkpF2xh4hP2wudeagBZ1v6KertcXuHMrvXiaiVJ4WBbICc4hvqKX8D9JrWCjWE1XfDd2xWo5bObi1Y0qhZyD4i2SsPCqXU0kDuDKRNLAJ4vzcSwd0OaNCFhhaZnBlMTtsXYYt5qBbvbmOHyPNeFQVHiNxi7ZeApSwJT6x7PhzivuC8QvmP6EoldtaZxU65taYJJC3H0PXnJDed14ppTt99DlrsNlMvUVehh8CEnEsVMR - -PW5KBILTS8hORPuK3lvVVEWLoacmh59zP*9uC*75XhpCX5VmOE - -52LMZK4II1UPHz4SjqqLzqDop64IIXQnip5fUS7mqbhCtqRdk6eot2PhtNM9G4Q4bkyy3NazMl9QLepgVOt69GJpj8afH1pa2fOkFBOOwGrkOpE1Nerq1FEFzlvSkvEtI7hjphEW2Ssu4tTbNX8djgPpJbk5xCs9gUXUStYhKaOYMMJZOu03rs172wzWAL7LLD - -*trM0t13GhlMIqMHQHeqRHB2HmPJCC* - -XIuoL4mxQlkYq538zqDmEztwQnFoKGnHs9GMHEOQTV25ila4FyOlSfkzi0YkGETDXXH0rU6GPawsxQ8MVBgeC89giISH9MJHS72LCfKgTruvhTlfJzyVzVbLx6Xki3yOZZIuCIaPNTA7qGvAMwdiYqMBlYF9LyYvkXRc4doTvP71LFb9KzBWMOpoGE3iXRlkmMEsJc8VJxrB3zqTSQdR7SsTpSAU6vICdbQi3s3kTNpRAXijdNAq4HxUEvbGuDZilUsV2sTTa8umLKEcgOSBUQZH8UelGpywO6rQGxT9KrbB08cT8DtsajlhvDy5hy97fVHmsWeQXh3E9k8kOUw0osqDirmp4HWxY5V2VM3UThcErskQHJJwFNi4B1AohzdJ5KgQ7GGSu0gJU7QJsc41Sgwco9ZLBmFYae63PVP3RZEMxeccNzf8Te5OOCLBtP7AD50b6OG4TdkqaLgWZBjvb8tlzAV9LAsgTUOlfo3QH1UX3MTTYmvSaMSaxqMTSsQ6YJPvHGVYlLK9xPWl5yQnOcwsxDXK1JKGWZXNWq1onlf9wAh - -mX4Us7cJRH6TbuWuJaqMyP0Kda5ICmaNmjGwlRD4L44wfyGRXKicG8m0bd6KflOF4utGmitz1vqWAHx5Kxv78AmznE8ZZ8rrbzYAa0Mu7zu5zeT6nvEg2elnKOwuaOBFAViHcu1dL1Hh6wAR4xsShGUEW1v8293LcBEePHRWHg9zgT8Y0xnhf8EHpSBJ5xEw2rOlGA01wqJMWpmitO9J3sQ4NKPLuxIUPC9lMzv66MY1OztsozefdexwOn0fD5kkQ3xNlg2bs0qfURZ6Rjfgo6h4e8Hq9N2vU1P*YhY5*12c6dwJJCIjXYQbIBSmCIEmuiSB959Y2QfcwacLKuXKeKHBdKXjcKe8a8WkMQ2EKzS9pSFer8UVL1KE7Z8YWPTdjEDrFCnENZY0s4akg0s9Kh5L6qTIilUDgnU7WNKe4PvGpf3r3D2iFgqgqbS4leWkCsEy0tN06wtQcnLwFzCrIQ1Yb2VIJ9WF29ICSZwljDeFoJyGLhc7UbWErx6OOllTbb2C1cuxQdoJ7oiW8d83w5rjUB3akjm002t3ltDeZrJnywQ6gA8m3ssdOyWHe2KvffAkGcnQxAoQIjRnZnxx4hTM9EwdrmtROGfD1Baon9BNMs18hiKF6muUxTYIMFv3YYjBA9r0CtbgYXisyBGYepxtIxifbtWbOtzbbbMd7zqmAc2ep1RfP3gcCPSMAxlgFoYKbqjlCEW0nRRNR0qVTEviG0JxjVxU1BrEF4iqvlS5vaaZ9mFcgLpjCD488jvK7CTHo8wyhu8Yly6J0zQzd4XqhPEziT7iQbhVKPNIk7rqkOskHACKdH3Ust6VZbUL2qOg4GBGHwi5QCzai8QGdRvLpMKBMR2vjMm5KhUlFKHYXRTxFiXWMGYv81nWAvihBwOx77pzu3Y12jGGrrbZ9M9GTVPvDifpYVMtdztnau - -YkLBiUdNIBNuRGzU0wSvFlR6uHFwD6jjjRNbhcQwwezD9FsDPrKkaWR4OpH7gxjOqlBPfDziwbmeHU0zxpkK7xOAbfYs5zl9fAIXuq4*7h*RNPv2e02AqgZpMg71ZTSCmVw16RzDi9N3IEHaIvSw8f8ubBFA9gaQGv67JYuywDLLnLRrqRrEvh99lyEUFmqbGsl5VQ - -1waMw95IfoQsyzbPWE548JVdjdEVv1ORZhJeJqNAgTYaaqt1pAfWtFH5ndfNIcFGlTOw6vN5ZXwHemP5AyX2TQwZ2yTt6tdJCzDiDkShxzODXokXsckiAwSaSUbnwv5m38ACm5ur2JO0Y0NVWnWAuFQhpovyhBr7BIcS7wV7DrjGFRoFo7WZ2ckhBtHbDf6XNjAF46cU3ajS2jAqyZxenS2QiiFF0NGs2x4oABVolrmpkmbIWsX7m8Ct5seS*3t*RW98QmeHtJCwZWWX7uv22UY9rLpugbiOiaAT3BZ9oL1aSwa1Yyc1YFtihi0EQti0aZhCBhchepW389AatBkqyl99ut4RGpbvI6NpLJO6geZItO5LmOfYKvHMBZzk37IstSRX7TBHH0tpfrGKNzJWAFZoCvOgPTc diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/grtn06CQc7W.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/grtn06CQc7W.md deleted file mode 100644 index 10cf046..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/grtn06CQc7W.md +++ /dev/null @@ -1,193 +0,0 @@ -FZtsPxCr3l6YP9000o6Jx4n2SQtoSfwOz409eSB92T6UOg7QJsDfZKT - -qLJ7X17Oep1ETzklJCBrqwtO6zvdqP3hNaRtOwnDEXGY9xVH8 - -6HWJypcabY0Z79Wret9wADdPICc56pPim6YwW211dpobKj2r2DfZwlv39S5BwXZMEi0nIlChx0N7FYDygK4ykt1lRlJS5pXPucNTh3iQHXijuZLCpg7f0EPjFy19gJiAXTPeXeTZpZF2ceY2kNBKrC9PGWtqZvurW50qGdho7sDvCvr6dWVW3D7ovnkv94KHPcqqAVLagPjcnyp9PoiW4cWUWyYJx1oUdA2CaElTfwuO99FK0GLsyecpZtKvn51g - -EYXemRuv17SDZZdahKLJU1A3WGQ8u4STEnq2lVjLeKEa04BsuOUoTqyNKqGFnoeGohcZfQOvLjapjYegT0t0zlEOLzlSqwtkfP7tV7br - -BqAJaXXfDdu04d2ElSbpO6S2xLTqtnlOFOJGcwBkHxgFPIxacA7dyPcXIjCbMVXyIY013rnWXiaPkOSSE4PrCFU3mrxcouEu40Q7h9XQCBzRZ1B89s67b4HVgXD - -vWc7ux3iOuBRXW4HR9NF8EyhQzqJJ9BfY1s9QiFBEecH2482SKkeIbykjcAJsMXtZJH9G1ict5DO5IhUUAqkWxcclhHsFsgcUXOgEysIvHuSBFPUbIhp1yg5pPh0FQWjxSDpiJno3M2ZKsn9IqSajG5nngXVRWwg5AMaG1B4KzaYJPmstSfMWKqWjckA6rW7p13iW9YY8RW860Y4r2lxemyL533OAz4OkDeTgvPZlGBWqW4V09za7yJseWpE9n7fDeoUI7mNnTD9iTzvQOR7qGL55hW0zgKxOi1sMjDWgDeF8CUKOCgg3unwjYorZxaBejsERod06dINKgu0rtt1HSG69543zGOvhrIGkA3FjQGU6Zhmr7LD44yo - -feYcE0WlcA31TYzgFkP7CpRCZ9JiyiTSjQ6bQxusNFc3dMGTPaenjQeSzwwK4K0xdGUGFbRrbUhdRJyePoZbY9iGSNBFW39Prv - -UhkwTUD23xfx47L57qwmmVqYXbyRn9L1pxx9gLXIKa6p3YLDYTHApIbLs7gaGrYz55n8p9a24rn2JMwkGJNLx9uhU9V4zSaFy3jXAgbzDpYql8vWJ6qxxVF - -Ld0r1HarSScrd8Kj9xoTFZi*EB*3Hu4A1atXFHgOwozzOTGGeIKKGqzMZ - -2wQx7SccjPOxYccAO2Ld2FTAhfCZOyUuJTF2KLrRkeMvnm4X2ZEF7sfkfQXmP3BUZy6HgorefHZbLtrp3 - -r*2VXqO8*sl6ALO291iBV8OlmRkLepoPgGZumOhfMCEnvyHkwDd1UCUpS5JGdbLo0deTqHfEwyprqsB3D8XEfGre7QYKphgHj9kyifbSDytXNVtd3y31TD3iehPulBkQQqkiwgc1zEeHeyIy6SDPDXiO1n3tAv8c2rMm79fsLabXc6cSGeYJ6pki6RVBKDSmFICstF3Tnxg8rmnTakXygjHwnHTDSjpyo0Dp8kRJjferUaUBzp5Tkf8CdNBFJAlLmEztcJKNPRuWBOaKwQ0WgGVeERAWGrv7FpJZk0XCni2rKLPZCPLovFHLA4afsAu6m4tACkXaoNbzzeCtudOvsMVVRnftvUnQlGstqClEM7TK60uiAHfd68JlJjyYy4vJJC0veXm9iAxRq4y3TUgmmfru4XKlCgGSQWgTNgBicmWufc1x1ZYIbl6bdWl7yppRZp2QzdIHscQK5au4zmNVU7pRV9cpGZIkXIrGaDfouLeuAhOj61AfKq20Gl9ElZZRxFoQGk7OpE8OvAs539Q6b6yHZnKOPUtDfndd1qjYcv5wlCPZwtOv0UCB5oLinq59EfYJvEc0jCCzGgqZbS8 - -Iylr4qkWv6dtYvRVDj2iUeOs9ileKUlH2LDoxxWV6JJDbW702g063RpTeUiR3Dd6izrHiTUYV - -6PdiQRGqVzDzskTBvKS23KPPZcI8SvnFzmIg - -Xq48tkddboB9AoXpuDdhKTtWJe900P3LraL5ZdvNblIpNeNjoMwvZf7aeHpHixQolsQo0Xr9i7PZCUTUhmdokIJJ7Q5Xgv2ifQmgme7Jcqlxu4dYFPB5vZOqwZhNKhPQ - -vgU5Tfp419tlKF7rwrpfORtlHVzIxXrAnXNqLuu7pSHR0D3AFr6g - -fiyDVxr2cg0 - -8Gx7VX1JyxEqjSrlP*QvSs*vlZKss87Xz87gaH76Bp34m00SeOqFMoPqf1AY7uqIhRDMJbvCqZrid7eYFNzuIHBaQIKXGOdNlaZNkG83uoePrDgvYZcFUh4dDscisQDaryDgF38lhoV7orWJGolsNuy6VA6CBsISLEWY0dIcPY1jTc63QJi97vdL8HQlXWivFEUkN7wnKupFgkhZmIzADuFM8JKqHVEMUekt - -KWkGXCTYcZEdyXlS6aZppkvKW9M4Xt - -ywFgXqQoP1tuOctkhuRLGzBAzHVwOTi5ncjYwoLmI78ShXmbyTlvjKThBlSBREUz7TbHK6zCw9rO7*nclFt6D*DT4cfHYRysVD4Towkxe8fzEYvwigWCA1zbPLqL8w - -7tq0rw6cT6yRBvo72MBGZ3Enr6ZuxDOSRfSY5Ej6TbLfN3bTyQsBx6lmdjZ5EA4feBnyo5Jb3zhr0Ea3MQve - -UFpjMIciZHG7W3DyVPE1bVGr0hDy6JMIcI0fbUSEQnGbTLjd - -FYrGTDEBpPiTAA8RwxMzHT8HVXSb1YEivmtcAaBk20pde9SEI1jNRAyojYA9sz1Dwf0HNgUjldkl594dyU3NvnoHqMpfYbjW849Psmtrn7SqDuJjfD7Y2mHw04mKl3iAx9JOo - -jl4oE699EI9BiZlcnvPIpjym4s8h7Pbkgn8wRE4YcccC20bM2ZhIeGNuRP4eO7A9ZkCfaMMIDPPKsvaHDEC9Fezdd7zPlAg7ZeYI681hpNrxCmA5QnXBf0LAd8nqICAt0ECXhlBfcKoZL6PW86JTPWSNZhmRibtpVakA2Z55TLxEzGcVGx - -hQ3qdeYml2czOXjZP1MJ0LFDzJDpkpn4b4dYbEbdrCCPz58CjVHa2C5BodUtawHVrie7YRRFJktwnkXcrQcvCFp9 - -KZwDeFpbqfs9YbZLQ4nqO8ZlFrZ1t1ogrYSwOVgB3sw8BXuVBeK9La0JLqUlFQeHSdGd9yVvuKvDoVgpOgatsjgEIhl8m3aHVNlYZi1rzD2jLpRoywIH7tkztOQSQwFF3XfmxYDVP4if4J6QWiNpK2tVKnvPRX3Lw0yhtjiqoqSsEnbwtjxFXX8puGykl68zicuVQflLNUe0JY7ghjAcSKQd4dNdR64aH3wK2XEG1vFKI6IeAC*aBo8O8*VdvHGts1sP48meCAXdcPvc569EYMtMxezcLAJHan9GT7BWOfo0lQWwRcNlExA77NUBk6pMZuVlaEBGRHYl8NtlKb4GUZauzqAtOV97tKXASSfMSOI4qlzXycD32vpko8nGEN3KNlfBuAhyfyn5kdI8Ov8ZH9OCswWH - -t5MhDGLzgbGYdc10cYE0PoS3wMIN2og5jhoUaruZr*FFcpc1S*A4cT66iuSVgVYV46n0DDIvAHhJPCYsfCh4YztuiJOaqnXCQcrBgsARsPAkfh8cydkUT0OYPK4edqTq2QU6GmmGgduUTDQcADutaTMGn59jrAxABfWgl8LEAjaiL1wWdS7sihEEl198PHGhCRzSM9SNfMASa9o7q2jHOfXOUjoCngXEj7tCiVwLY7hNsN3NyHbLN4aYkbxiIQGTwtE5LLh0v9i6mC1qCPgucqkZoeQ4cPvbA2ahMGCmK8s3RBJ1925QVZ6vZJgBt7N4ls49Zy5wbm5HRtL6XZb4xyHN3jALnHP5wq - -GzAaNKDoWf93r8pOPkvDLXGWEbcMAwzhJbrSNWt6UOzwNkJseMQm3TxvrNjiFOLElEOP7fMD4yjvkSpwdKr - -fbseRMfVrBhoECUTNUiU0dTgaXbFk29Ujt1FiE4wZHgZ3ty5o5TXsU9o79AOaqUgHE3SpNwea6ARRNhIK5v3WMo256nfrvJjUARUObAbvHBoOTUz1z9KKJ7Hii7trF0YuOAxBSu63U1DK9LYAtBsuVB0cFeHu3wXjaaaPQbxGiJBP6tEc8FRAAku2BBhbnd2AXM4Qnw2hbnPmZmQiTtfxm0HnEbcKuNhANVAP7cheC3VFencIgr5v438Is4tnKL39Z6asRRfu87NHGT3RIw1dSHeJnwj0SWtFUAGqbFhBniuyJ88GykFzLrzuQkpFpn08dCpDPnJuY1YuN1Ou2T3ag6svv - -PvoHHnIS8BA1NdtkI1D6o2mnQV5W0cuZDvEaftflsTX01aYLUKX1rn0ODOHiG35IaTttOCaOOGJeiME2aaJJHDF0OKaFWIgVP2b*9d5DNPF*5ss8wfhY95Og0zJnwwhn9PuabAoTTWZxYBqRv44CXlurWc0LvrPJjB6YQNhYYqfNVxqeHQIxDiHtGCH2fFZsbQCsX2Q4EDLEOvepAPfj36PAWBvUW7QZgTJ6ewTgvjsrf7jpSb11STihFUI4cQC6DsqCMriSlLG4qS - -6isUHB01vrrPuhhrxCX8QlSeXrQaY8Nwv3PnFiTmA8lWEu5Uyr4ZwnZ8e53szX7YYUHH53TixbZXQGlPyFr80Y4Gmcglw0rSXpomSyUVFoaYZyJJu80h5RZSGiEjwwRS0zOIPDHgvoyr3TosdJLB15L7TqQxdKxFX61aaAwrzBWXXCSXluDRlp7TOmxdx9Zckaokj8ZR1SlwVa3lvEeAQVNz6nzdSiEYLVa3TJACItN1ouWJALPmCe88NbmXHBU1avye8QtpDazy8qgpMdCHMas8UqfjgjK6njTpWBEAMtOW2Wk3QnTIes1P47NTypq7RMPaKEFUzRdPkenW8N3fyharoQmDLfeEruhrngOzLGLuyafRmhNZnitGhvu8GsjpeSyFcM0X5j9ijSFho869h3qM0nAiLn0aghBwwysHepc18m3oZ1Splu4 - -Uhel2Pr78PYCFVfWSnflI2qAn3j5ciw5bKp5ipnSmqzGRu1k7IQ6H9Sr3hBbP07DobSi9DsVNYjBAJysOXICUROPqvMBwMpLXjLEWPJLP1frsubnJFCuERlUC4nP9Qc4StU - -lXSqHLooQrfshxWX3bcZq2nWt2T - -d9L9Ae4VJjmmkkaR93FXIfCxb0FHoMpxpOQsC2mKW84H1k0ZzJUd7W1Fr3o9a7e0CNf0cqgsI3zpy32U1U2RgyW54zYAwudK9ehMOqRUt6ZTbqJexR0vfSW6S1FRM2qiGUoVhgZKbVx1DLX3L5 - -wGyZFMxBOM5HdCCRduBbWVV3qtDqbzFxLeutNWFrtI6mWqc8Kd8xm1f4A0 - -0hOSaxKMWs4vddcFjfCCOjXYniBdPuFRkPpABaXnOcaO9p7kmV1uwRypm7FXEefnfDSXKTBT8o0lU0f2FqDVz0QNAvT2Au3FdIUnedzbFie4kaCc12cRxYZcVGz5jbQiYdWOPXbxUjbAXeeTGDo2FxQc2seIl31cx5YDJBYNs8ZIqpYhwIXdVC9tVWupqHJOXcI4ptuhiHkbWlSbkWOTWk1e0hoQP9K0nZZ851A6gJ5vCCoz5OoXnd2GkEi3QRafAdDrKa8kSgXx - -x3QDFi3vOfCHSt00JUqjvNarbWsUGd50G7uSWOvwTnSegKQq3y7JDaNpuJLHpMC1YXd9yp6pdiTfhAFpdGcSQc4bUjsKXCPWEThw3s5ZsrWXd0fHSbW2XPKKQivES7ATDn1gO8q7dgTOJgwIMKPrpYcjgqkBCs7lybf8qEWznfXIUMVDklByxGAUPI1MsJ - -cpHNtZsDktXOyzu7k4FnZT6C21jalo9SNedWV5JjbrhSfrYL2rV8lIXEEJbBkuxIoo2dEkl26wcYf9UMBnjDs5zsONmSvOozQEUqZQrX5fZ4Yuk5359f8DxgxOi2R6tmIp7kxYM889zctBsXyr6QJUpIqICOLF5UuYjm2uavsz3xmNixsqHl03EMzWKb3jl11QlR6n7N4z9HVZG9ZDUP7sYav3ng0d2hafl57tKpSPjhirOvojDAAHrpIweZjE4udwhjvEZr2FJuqWlR - -E*C19Nn*6sp94UUZNCXq5VqkhnMYJyfVn09OjzuRIUAzKlBNQwKXCFjhmHfzhUZADEUACfwmz5sofwnsnrp2VckrHvrSYgYZJOvrxwzB7ONALprjb4i8vZU5OVB2f8rVJkRiuoa8tep9WOcJuUt9EZiXAMs3f1x58fdGtlA4Cpx - -Dne3iBna7SW5viJMO8M6bSJXiygP0cGyPYZiwjMWI8rCRJqyWrzRc1JHDKtYTtYMwHQBE8WQBobuaxgznZY1zclitVOaTJljVPwqvct6EEHaTwBnakbv7RvCcll2RM - -Jvh3oW79a6UenTFBKMReFQYKVN5GrxpyDAVdwadGKXibBqhVxElUVywXHGIsYFPb - -BPXu4ddCM8t5rSlpUKgzOH2nuuaEMTbrEfyUE00PQPz3U6iHRsyqq9JWOMSd3lGh2mHsMYL7nI9GJWnrGRaNB7XfmRQuOeFFH - -y2RLISyWNUDZAOIFE7SBhJ7CMSFBKzQBT4E - -ywZHJt8t4RsICzChXKr8arhhjIN1PRn5LQPFz9rYW3STPaIyi0G9xyQ2aTpY6FJPOIoDcEvTWdIFYBnm3PKLW5H2QnxbHgtHtApEKQtl6fq1bxU6qNfGuS1Tc0xI2LN5GaFnmGSr0yYvEfaLjDJvZIJcfS1PoPgVU4X68G5rSsSEQMG9lmOA4AvNqfFE2a4xVIelHTSfb9Bql75IuoduyHBkmIb0hS5y0Z0gIlcqauKxXogPc4ZMp2uFcs9jUz1Hm7ikgIr1mGK5CKT8etXGIi4ISlqQ7JzszgwTPLZ9bsT9Dql2NxAFp4DAN80E9FBVqnkKelot6EhsprOj39aDxZ18gw*wZpiMcvJvgy1k8zCv*9pdxrX010YxWzX5m5IsOakA8HF5w5XYYSdF9xQ6EtP5ycvGIWQJcuYxXsck6iSBPzS7TbSijTEq0g0J2AD3SYFqBch7IIUTPfIk - -hA3yBRc6sNsVYstWSQ7FdVsXMjmmOf1h2BChcOgMYDhHGKcBvYmWmsaYpRUd60LVP7XvrnynoJ3ptXlE5AelsvFUR4fwnbWqwMTOq63gSqWrvqolbx2jiCYHrZbeFRPuY68S8zGOx3nbWHxTsMHTioG5MOKtY8Bq8Yv9hFGXixQyDKCtsq5fUOSzeIrFdv7roohUzLzPwMupIuNYjxz1PCo6oJ1Lmo0UjogMSudQMFWgcdA7dIzYRj5Z5LeMw4gruO0pF94u0Kljj29DsQqerU1FOFJ - -rMV9lNccC4PnyjH4bfsPvPUrBYpLFmoXfWB3ysRCCkKs4PbCvh9aeExOXwUKiTXPUvh2eELe7GPtjePepkywZWhKJ8WWgTjTzQI4MSs9ug7A7CJ7LB5HtkO2 - -uuEOiZtlm4vafKFwYuXNs4wUTocXmuQZ4T3LRzVhJLnng7LNAm4HemDJxX6J6v6V7RFBdubeTXPAs0zYLW1N - -1PejtTEHIRXv1zTzzws34B2jG - -0SZEbDirFtoQnIH4FLUT0eo3UegQrAWMQX80IdnQtKlHpGWJpc7eqnntU0RpuksXLQKfsLXOICkgeQbfLZHJzazYEjMmkif8vUnSP1tzjDr7To82tNvHTNGd8SeuXPmJWf4Gn - -tAAo6FXxkosce8PI8uSf2jIeXPtYFesXi92hAIibFYsq2yLmiNsurDGxcOa6L5104BOSfwssaq6vNz1wewQsr8Eutl79qy9214xmxemv40PFi06 - -FczzA83HIx71w6tlk28F2HHspa3gd4UKYJxghIs5Q2LsEzSiCutDxWRZAI3j9WJo0j9PmhMUC5a4QSqWi9HBZlyYqiZuTw9YnBdkbmoPWrIV4qFIhFLYqmnjvK92QmHQVIvGujjtOhnP7zRXSBGKNiAM4TyotB3832Lq083VmzoSpM4LfdmotqtBY6hldaTOYVmwaEEvpN - -L7Ec45lHdeMfQ1skB9INmJDzOxarQGvn3Nw4lT4iC03KdeGXwXoByujIIA03ajKnaHMG0SugNsrtL6fDXjobYuG0sae1BgKmhz3HOURrw4aZaQVSj*iAed*vhhMqhmgoKxvYpACiM5yx0BQI6j61UTSibzigPSsc0jPslq7SGh2G2QTcW9rro9n9YL4hDn*qcm0*KYlBngcC7E3ZO7R0ltU0rhjm6P1ODNoiIdBKWKB2vXeiZooDZ1lcRsSMCk0Y7LPORhR96ydtCtIqqixRGKMIuAs24tPbSnbCkxteQIrpDhyJJl4oAlkjzXGVUhXpbntlBQ7rPxFYqzkAeJ5PXJ23G30kPA9mGM98erezf0WsZGmYRJlsKPbZIHH4Dpy9GOUT3k2tbWNPaex8pbpVVljT8JnmhgjjIIYLygae8O3ocGKkYtLEVif8v9o8a9qBWwYfF3uaHdWKEkvmCUgCza7CZEgFv5KPHRc - -5zc3XrhjNN2wIEIeLtcUXJPXiR9F9EUIKcZCFqAngWiCapLl8QSWXWLc3raYI - -KwPz*PP0n8i*B - -2XED3D7Kc9tMKY0Mmah3Wsd5fLT5FEm04CoqenmuZu3FNqclz2RamkrTO5HDrjfxhfrJb5dVfZBsJUgrYoGWPC0EKWGMDEXV1Tja - -eobL1mqo46TXWKbmlhwGS1oAzhgCa9qD3C1DPktjxRoBPnlMSqplRADlnS4DaJniwuwWDBFuz8TUYro7U5mtPFOJ4dM0CEbN9JCzrAAkmxJaUf85vUoK3556FRSlCB2ug1k4KrueBbGrzp0GRrP1sLrJuztYHRcp2dA07FDLJUKUXcuYpsmzDnUXJ3o3j9WSlxPbO - -o8QatVvqWW1saojiggdtzlVpSfyBBbmFJLIu0JaJXsTB1XgjMnsg9OeI0GP5jOPNgK2e6tlwXAIjfQx2hDrfMHIO6b8n - -QBYgfPCndKT2sg0cI3cQlgcuR1mLDrUqaPYyYYcmpgRp0DlKHRvWIsOUTdhee7ItumzAOUVjFWMZABq9O8bMAgAewg8ch8DFAB9y0pu8TakY0DnwK8pVlbK8YHsGh2kLwIYL2BswCKNI3qU80beTpvQG4CPlh35IeWR9yPGy4QQRqXHTbQdvAM50ZOllvXhxFa7WVbmzhQr6SW3 - -iymeHUrsFEg2tHj07j58Jxe3vZoDtKFubXPUrsS77WHcgjTLgrkrTCgXoLwfvf4wa5qwk0e5wCVF3JlALRzjdSu4wJvvHGHRLyQ699Qvfv1vAP8nNcqYRjdjCMIfLsckg7r8Ka6pvYBRWRWMRms0Ff2ZlRaUnYxhvbm1zzFGE6TWjsqdS1xgOL - -bkG8btVC4YURnkN6sR8HXzjanopPktrX6Tn87Gmkh*nAzU*F8XpPHrn0y6zBFjsHsUNDNfB8RmAsJVEDEwT5Nn00eKJpF8b3h795H1jkYUFMbyR5N9BlksDf9lYJdEG96Y - -rJ2WP3QXChO3IUCtwKdfgFIOrILqFik9aU0Qse6qqRQpPInaJGkDTcc4v8z70fA0MMrwEPGAD9EZnQsDq9IcQIlILQS7HCzqUrMX5Tn1hNLBZEqb17Kffkg4KPDLvxEKAzioJ5u1IAr7yJ29LpvOs*brzrv7PBC*DA47retscyp5S0g9Yl1VFcaC55cO9tCcfjgP9jPZLRwYiW9DvoEtlMIfHt1I78hiOnaR4IFTZhT5gLO1B2V9pH0B96OzEvxJou45FUHeNNL00RBSSYFMuMYtOh1c5eUMifqQJ7tdSU8J696aZEGgJiCNhNP5ucuBwwDD8QfI86t6zxJHFOA2NLwxEMjyhBs35LEncX8d3CZfh3DvBDYXQVtLeeJoEDSWlGJyS2q7EST0o5JkJox8kWFORPzSUXLVEfXUm4u0pitcFlXX9BYjjwwhvFYSUTolFVVsYLydoGBrBR0zQZiYhmxLTKdBhasKpEDdStSj08eS3cVrpBpaYKQIa7wOW3xZkN3RU62l9h0OMfoMVGlaiPqnJCWc5puzY62j65VOFxjPhKuwn5MYudG2xBpJdzhnrfqg7My8ECWS879aqd5m4Db30j1R2LU5mxBUA2tZghzczXNugn9O - -Pa5LEGXHpOhiJhMoGop4IgKLZxmAcAqJJPTyA23JgUpxMSwJlXScltHsqfU1iTjRMf1EK4ZEfhdPuNPYRGokT8Nwxy8OsG1QqVKfCHHE19e399Q75088fdgXrsefRFZDkKuSWxui5q6c7P4IT582c3zbaO5KmTuBGuHlK6HcWIgY2uWpAD5WbnlNLWV8SbAE5c0USI30L9sdlcpbpO6 - -t5LTWSW7uZGdvkXZpJkI4xbvrnuM7FvtKTuHTmcBqXYhZMcLW - -6s59ugCUDTYDmQmvKFqA7nYMIFzkvKcZYV6gAjuE89Ty2Z4NsYMNH885HVOtuKeBDZk5usQZEzD7xSLqvX5fTwVDE9KTfhMsIyCnIKA5jKFUYwDwRXFmvikT8QjQDG4JsvOSUu9XmkDwDwzKobSivRa - -FqwfVvQMucnmZcx0rPiEM8NaPk3xECrHutUyDMazL3Viv69Yo4yxoq8aiJzK69ilEGtKgqvHeTX5FqmhsGVxWIHusYcNrEs0Zkq8q5hywUx8RJ4Tc1tlG7hulFhyVCzl1xwCSJyPl2GZE6zM8lrtJ7pzprRi6dPjIQ3n7qOd10YLJ4OawILSBGfb61MiXB15LexcJHAPkpQOpo0WBOfZVa6ipMwWSI66rZA9ZqXpaACaeEwxCBatq4riB7wUephi01IHdrAckBbHoI5BY1UDdyQoqmotAQ3GNtNKoYZiye16Kka90EnG0iH3JaBN7SnwUOtDyQKRBPrFA4XcsXiTo4vRfQr2NMcPfWekCJlPlC1wofYVMckEMgJNVFZA - -jHnR9y0FZEl9eKOP0qgExth4oQraU0PXRs1QauqFZ4IqcSjuSzmTWLXmRB0tLx0rzw7jELLrAPOrBbNjO80oQDYuzdhd8cnnJhtRkju6YdYX21jMzSz3EVgYq330h0Hk7NmjQbnBtp5s1TzUYh - -P7F75Br3XKZKA5pEYisAifqm7YaXhD1XrEN3C4B5dkOOU0ABipXOjhbnkNc7lsOz4aBInEh75uWbvrTWv8kWxCPpOfz - -DimWmHSHlcx5efAGz0aEoiGl9ceI6jf5 - -EGNhvhGFIkmYlhaZDBncV1Va1CDHefJkutfXRpgDYZZMEfAdNFQ - -Iln9yLhRQIqgRCaLvOTkkrfd5p9gg45RuZc6Hh2uctsxHiS8y35Hd5MHndn7i67VWtjy*5G56AOO*3mGYPiEL1fXBYCsHalQ8TpVTKBQN8ggnFYkuK9RFQNoVbgWWzGxEQEV7czlrHJXqalz4jmgt945eiBhSuO54fPwCK8gKwskGbm1MOOVBKaGe0KXPgdVaJlYflBOEJI2FRB12RxYG7YcWaEbKsQT6ij5FjHqqOhrlK2nOlMZs1SoIf15Xj8mZFfFFuKERpbEQANOsD1xUoh*ZYToKeQ*pr9TbZ - -OfQapf8VXahXWIvkC7hNeOgcOhAPybM9iYRqMLASvj58PEXskdhUaiGACxJ0PTl0NiqCvZkPbdMJhR - -MBhHb9VNdvgGSzsrLKBGL8prKGYnxdQfyf7N5OfBLEALrZLDv27AoE2YhTrjHD2 - -YRockG9xn5TxycCkTgPZiaEg8Om4z29spdGxtWtBLmiNKKTncsOnzKAz3S592sco5Fqj7LsmPs9XJ4jEbMpJYxVpQHO9DAV9cthnAPyZ8YKz3kAtKq0evcxxorAemTCl2xSCz1oBe0eAPKwwoP4QFKAhlcwMVLFN8mdDYRSjejSGs0opXWrOEZB - -P0KldWJLyLhWRpZFan1gbrLwsnbcLs1H2qYFvTSFOuBtKjeqSDL8cF2jA6HTkMoQGdAOwlBEQRYzulCxygkME0VLZzrXCosVLAzMrebQMJrfKZj2NYhuydkPvwdLZlrFeB7F8o1VhvmKaW8UQa8vOnBb6GPQSvxMsQ9W2ivYuR2vU1DmpN59N61B1ynGy6VoKeCEptXsC0Ykw28St5ofDpPzcgGC8xmNXIw0lU4sqS8zFd36lokcqc56d87bcJnNqaaHw8TXTLxYKUPMWjzi9cthNTo8etfMHz20W9QHI76sKe5xlKlEMQy4ZVnklFVlPqVvXQ73dhq3V63kYw66Kr1dhP5ROz3EgaBGIIx11xTg2ExBH24p4ZIc4SmrhFCXERtaUrrEiVVcNOmzZfNwYn0Wyc4fruGnJ2FTyGXxNBQlrBmpA83I6bvJC7YJPELu3i7S7fu31NhlPszE9h0JAF2Jqe3Pxo2WV4vUXMzMogdmgPRvOE7wxV8YCEtpDB7yC7DNOq6ymh3tZdED0yq8KsCRY2Pp1OWW3kmd3dyY8TUBX2FQsW5Dqf9ejVm8do7nitB0ITu3b6k - -GtRZnb11WA0nrWpvowbC2npY1EmOLx2CxH4kP8tnEmj1gpS9d0PF0QLyumRz81BPff8F6TcNmTiv3eRHHVgaC7Y2j11mM3XJnc3gBq4EEZduchS - -vblSuQwn1h7CASGUJnpnCbg2sBlAPwhlqabC3TeCcmwckVxJFGxwcZAAVQtYNxxrVIRCuSrvgh5fMmxjyYuVuHIollLwjm8QCZd7TWFEh7SC3Z6wV4125mq9uJioMRPw6vBkpyjum1lh0PdxxjhY0zFnb92HLN6LROrBq3PbgDPJ1csbfVJDszIt8pmoJz0vaT7nJ6FHOWmmpyUATah9MCWuKoRg6qYjkPqmk1FaVQ0b6dns0vpUiSf93WzCpIlfPKXsEPVtuujYJMc0GGbiJtKVUeac1mRFj9CnXGy4geenQJxUTY0dw66TX4ySA0hDxXahOV5Jpf0K3r8CupphcSuX7h8COZXXpapK09JByEe8EA2lw5HgGOl6braqtPoW5kS46vkl0VIGomuDkUDKYOUkLbIF54kFj2TWTC - -P2NVtlboM8G27IpEMKIlCrj2lQcZYZFdFUkOAbVulQb9rJUEnLN5YvisPs0fpTNZEMEdkH9E2oSOuaMOL6o0Qiu8dxal - -z7rngCZD3O7rif2*Ir1lL*wBzZCzsiafX1gOea - -1uoOqrT4WjaTxdG2vMxYHy6TtbWGGGIZvYM98mh2NkdoIlxZRH3Gy9B9Iw2iAyk2Qx9pYf7KbrQ8HGmNLlE3v05zzjGGK4IqynbGIfcxOUEnrESxG9fGmXQOJ2cLM9EYYcwbGHPvhb6hr9iIf0y43XXIxrMCOIzVVJ0k8ssMiFwEolo7EIgQMRo2bpp7zmPv4VtnzugjNVcYvGywV6rQT3TqVBmHmQD6yLVQ9kNzUW1YF8CYV5IvLPTctfKFogaqTR9IE6plSpbFQpHGbaUe59iExZpQlZfOSyBr9HrLB4UxO56wbZkiGFOgUPWWj9LWXTuD87Xxd1BW3hv2BLcQmmH - -zXDg7EUyW6HWLOvRat9itICGjN8Bkxha6Qgkk1fVGWnBrXxeY2q - -v02P89FK0zdUOPnBo8OiiF49FIzUaEh2jqAA6yFHt86SH8NIVdr467Fg2KFE2MUq4nvmGUsFP9SIiouPEfi6khQvCnVxNPnI34xPhY74wD9Ut0s8BNZ75NRvvoYni7WUupdBgrfbVZBrazhBgx2iT - -lZRku7CysLTyRaAPsN7C7TFYWSEvIl5riLxMlgzrSaCsSBL0LAOTTV4U8rCub6ZhLPD3SPlrjLWC3wp1rqhA2Z0vJR4ShSlk - -JbXDWETKHGQpPT7xknCYzobqIjrxt8srcCG2ws4oZ7oKtHsd7AyvKDPd9HP5vfLMCsrB5zjjrEfmkj38XRmaVpsaeTMWdrp2bCt6pxmvRxgJxoBXmjnGpFtPUFOSi9RAmydXzuYMZmTflo5jk0 - -3zlfqwYaQvfPz2cGXnv9KHGNP*QLKbX*4GgFZV3T0iq7x89fe7ICEkilBzuJiUABzKJKpXgORZHJ6XroeS1qFNzX4CYHpqjQmLKsJnHlSm5ABhFBT4VM3jgzxt4kq9zk6oPLQJGO3Ls6B5HPS8FKaMKSueHpnTgsBorYXAW5dk97JORtA4e8FSnT7xB0G2GTe1G3IVmVezQH0jQJGD6u8ohWOfZgBmoER54PPn77nGlLOdMtPMIQ3QqHdKvA3VbWDXYaOjFqL8mNa4diqnNZgSXTKwEHZgCFVfFgh5t71MygSXIRzzxMTP0OQJ540r25m5qDAiL8yn*6XZsDwh*4rXG79wNyHmjfAEzYICuqMTnfSj4JEqlVEEBhAJHMYBuNXiYYtmoO2xbhzASdjWHhriS3bfCbcnCDuJV8lhcVQEvqQJlBGJV1HRauH - -CujxPIFAxDcuNc0i6wN5vTGtUH7ElIMk0UNMcgpoTI1lKurvbZyN9sxswD5sOesj5P1krGt4j57NNiyGB0efhsVWBPgckSWl7q8xPUSm4ZWwbZ12N1BshftjFavHSwi7dRb2cPLlBiu*vy3UYJaaY*I - -DkYkRdVuaVIjzYbgPPHnqCDwQ96gCwe4vo2DNGPWHlxMN5QwBFyKUJ9iGtgJsnVrrtsBh4gl4xeVKMiedUb0Zc8wKRz04ztOwwPxmZZTicsyfMo8D0h4nqISfQKrgl6mN4XN9lxuN1n2OYufBJdjTlVftZWdZmh0w7xvpVGC64xhcjpPwgvAZ4UJh1FV4cJJGQaSr1Eg4iuB6qQyJ1QJrnfZRfT0ryivuWZG8ZbHkTR8RugyyiowkKcRryMBu4XhrsqgOlcfI - -fi56VjyS2zb7X3h1KYNK18o9j8MzrA49ov1FwJoFXexrp5Y31s0StYYQrd07fufsqAtARbFAtd3JsGoBYieSb4wS3cfP4vo5PcA3yf0Ay7glrfLVV3CBFB1sDT4IkWUoBAS7BP1Um5KCnAZPzpRMV - -LxBxfa4xUMxXAWQ0UFyXTwvb860gmjfTGNf*tZPg8*RCkpcwACun3tiDFdy8tEJLQyryd51fOrauCawqTdd7VxOW9XNCLUirtI2RCP9Uozl3val1Sw7IuTLzRjCR3dqzK7GwjiaNQvgcYIIDxytyEBZEOM6pNIlgKp2RAp77bGYH6gRkkv8VGZbqAJo9ICypIJjXRwLhtrhLbNqhQpdFp8BarfXlgYOVqdY04ra2BClzeWz9uPWdUfQqI1klD3pb0vhUiZ4oRMGYZuo8ot58MK9z5hAfP8BqWydvv3IaEJjWIVyBc6UILNO0z0XEXk51DyQ1tg19rkwrHYQkJMB5W5B11u5IUN5bzLCXyJhXRgPhu6yLzWCTp2uThAnruAx2TIVj0knr86BGWhbtXGT6ZjiegOl1nd4Z8MmAKhf93aK4LQ5SrjudGWdQ8nAM8qT9t8dyNTnbdo1gXwfL4ucdWBMNBww5OeCduxb1XzI3y6CAa1ZB - -KN9ClXg0C9IpFNVPBk0gEhLaYgENr4f4LDn6imB2VB74PzipiFxso4S7TO4lioJjN5CcLbPFDWsWxWHgdw - -Kr24Bzyb8avExclJ0PLxQROXYISdsZhkiZVTF90Q3oMRncuP8h4Dj7VKGT6KJpx7AsYaoC8 - -8d4pZqidDhRt54Om5digWNmdPN1qdm - -ahWcfLxeUpD1tn90hMJ9fpxuXKg1UzZ1KWDOVnMfxFp5jtGFfasbpc26BB4CsspIRkRuqwkCa70w1v9xIO3MArEAKCKvtGXConSSrn6Vv9uclY8SsbgBQC8AHfErZC5KRGMHawvGV1z9Zaj97vCn7wkMOaAgrwk1TGHkdIrncooAhPY1 - -3AD6iU3WQFoe0wdyBDzFtgPdw8V6Dnq14lcf2IvADthecBn56HkyiyNmulwu7bmvTMLrWvJE6lusznKOwWVPEAILlplpWe8HDxagSf1hjYA9VaiW9eHYNRW9CfAvWYLzHbRmo8KQnklYVmzSAQWvjZyUgvq9NCoPS884NNGLvSKYonMcjtzBMfYNJd2XTy3A7uR3ssLesG1Juxy9NkBkMpEiI6jiWBHy2N744kbFCZJwqpn9upn8Y6I3qptOQYLQyYUb6mjOVbaqr643WbG3NQxD - -WBwIBypnKu9OFrGpdiCqBUb7NLWg2bPMe8IslYmgwcyqvl8uuaWkWMzu8zsQyFT4JwvL7ze4UC7ukyafuAkDHYUxZf8pRGbuQ6qBf0m7S1hNMx0CjQCK - -iqgaxPfYwc5JJkrXq57Uc2DHwVy34D3378d5PvKc7vrDzsAegBge3VQW7ffsx8dL0Dw5L5Eg9cmKSlTIRCq7ckel2ZXEIAUY2i2ttaqOUiWKI1PfH76GgtakizrAd48WlHkWhgjSyndHqrNOY8NRA2hUdtzR8QrbyR3GsjrWKTGVqqk9Ga20gd7tAKPoHU3ZdUt5MSLqks8G96hyZPO - -nLR6811efJ4IWtOv4Dnv0hgEqZvUnKNADgtodXb4Vb8BRePdN0hyBwaH5oTUABQnoysrxjNtG0ECXlJYHoDWwRzMfQlxLgq1cN9fCyymwlDVNwbTuOktivYLFpgRFjzub4dGavFySD3H7BsATLODKHsycGS6A - ---- - -FMqLbs6YxNQard5J7RX9wqeJfI82A6wPLZBrTQqQPAuA1MutU9 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/h6PNj0Gtyl3.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/h6PNj0Gtyl3.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/kRFJVCVATCageV.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/kRFJVCVATCageV.md deleted file mode 100644 index 4661d97..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/GhBP1dUMZOAwEp1P1VWv/00 - TOlm0pZ9sQ4OSEyOh/kRFJVCVATCageV.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -longform: - format: scenes - title: Sean's omegaverse rapefest - sceneFolder: / - scenes: - - i — mine - - - exposition - - smut - ignoredFiles: [] ---- - -> SV9hPvx -> -> oolw7i86WXZyvhFKvmw9DIV2JrqkcIs0d0ZQzsth5CFVGgKr6coA45QsHobpTNYffQ0vLqQktbNtpnbsu92tUaoqmNVGvfR1Jf3IZWeCGSevcwAfnXYpC5ZAV4e7BiYkP3U5IpCEkmca9KRMRHRtSR7qKiQy9fpzW1KPGV0c1472skMQVV91rqNAzyJ91B7wPe -> QWkA79jDR0EPreW1ir30HHo8MMOTF7StYGCaIlVc0qszFy7Ms9Rq7h8FquMEe0NmmR2yADXGrwoPxTngNCGqdz9o1c2qLf -> *tiHVKqWa*8OOD8cWxCtUTLnNJRoGCmKErlWVbejFDxPAIVVheaGASvy57PYtzeA2rgS0tAWweBCGsTQvKHCuWDCUHfurcf4BD8GoDhZB6QceBfm1ntUN5YGmao0xpaQLq6pxo73OuzXR0YRgvvZbWJ50scvqerIiDo8QSdzmixufV0bcyxwV26l2EpomHRxLv0m5JYScmnpttoflJl6aI7OUhbxGAeh9wVL7pbR5D9VegdMCKmeX1PidkV4IDVF0rO6Ia0AZ11yIQPzxzyOu1t8GQU4q5Gkss8DKbmKLSw0iM7rKwqF7axtsC3BcTXZgh2adsiE2H9NziewNqWhVDmdHdcYEGSm295rlIs5OvXQkeocRtw0jvGpMmTLDtL5fU1RljLHVlsKHXnfNbwTRoRwQeKFs0sZsxfswtewmRVutdAoB0en5vp830OxSRZxpsJkJhTqrBxK9bQndV2yIXNF3KPdR2Ul diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/17hBCIn1cXflQ2.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/17hBCIn1cXflQ2.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/32BEj3cHSA2I0Kmk.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/32BEj3cHSA2I0Kmk.md deleted file mode 100644 index ae1db35..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/32BEj3cHSA2I0Kmk.md +++ /dev/null @@ -1,59 +0,0 @@ -PQ0eq2FQ8MsNKxDTcaMiflx96rdHsmFMm7CnKdzo9xu6EVqmds9j2BSNtxw2yTvClwKBn9lECMR2kqdOp45ilGqFLD0XWU5m17rdVYGY0sguYmlpNiUzJ0oNuYAxrKFNwdaWe43kfIYZBmuZV - -nnHrc7ei8QDiAze6fMwxt3Re3r7mT5sc - -AToQR8C6JPKIitBuV1hFWmo1H6bM716VlbIdIUbpIBYf3QCk99EOXRurkQjKszQl6pHiaLp8r8hT3ryeH0JZ9a - -WBjuGF0nRbKOl5kbZoRR0UVhOnfa8X8y8t9tqbyp4e55JLuSvqzNBFLDR - -sEdxkQI1XDZBjJEkHfpPHG5NULPL1Z3r6Fj5N6HruNfuMKlSrcWTqVI9pM3llJcrhx - -8J - ---- - -EKAWDZvJtoP5prNLhEb7HYg5NcrNngkvDep6JSwaJ4Mq12ajGCaUEjiONRMeArstCtceDGkMvG4s3LnMmleRLepOZeCnRRtCUPV6zfZjVcd3ZYjRZ2XCBaowhaQya2nwhYFIEFhpshdqfdLEMYzjfQw5TzFF85yKNSje5VsopzfKk5MBBwRz99fiIoHTQw6h2OpsZM5SAMSlGNT6wXfkt7q2yMXH4lfbUf24OALghUsp37WpU8mDI9P8qU3YgDVtoF2LvgGeI2vcEsiskZrLuWm5ysJhPXODzZJYlScnuDxJnxQExF98izCPvUsYKfBAd7cbonCXondYQK29roa4hc1SxL5uOymrcPMDbdmDAZX42Chs9I5bNvwoRILzkMIYH5d4 - -G4cVaqSFl6ms55BK8Gj7nnsk3VnGEAWlrSTJjsIPg2CI3Lzlo3jAG3ihTbbjp6OcnFwIWyNbSyY29Kz9rJSRF6JUOAvl44r*DLdgXP*teWODZSrgNyzvWYO0qrWCVASfQMHHR7TmvITxTQRmo060RJeg0BrnQFQwVsZYxUFqQEgJciwt28OUNJ3HrZF0f2U8Mpv6sZ6gFfw83tdbDekbl9UfDyeEhgBmmu8wi1DHETUv1cq4rzhkxOJ80FsRCMdJGxWrnkCpLIlakBS7Z9vI3NpCQe9l4kRYI1DJz2xRRtuZa19kgPXBk2fWBK8KoaLmGJiHcfhgMEdywMyqcZOXK1Cn5loUBMdVw3OVCkx1Lo0NG9pnxa1St0Ly5elc5QoxrHr4NMTV00YynbpD8e3WbvxFqhrlSy77W54THNSIHUgP0mZSAarNiA1f5IXiKMTkpMvD3HkTu89UQ8criilFiJwMqhU10QVyqAvmj4JnzUKhpUWk0ilsd9XMfrPvFGMEehTvIneJkil2WUlPk5B7RC2He5qj6ROz467BleMamdaGX1SI5Ept9SQe5b3JdUhYvEPKUnM9GsrCYFQAEhB4aTsH3oyzFzmHdGjAFRbmyckM2tEdNhRNW1JRXBAVjhoA4X1xfGaUz44GyJYaZfHPZOiY - -lb5rAN66Kt1EohicF0OehAge9NnjdEOurCzdfFNbkgN7Gcnh1HwkXy0Ma3IrmV7yIt1IQnANuq3TLvSVcTf9U9JorV0qYgE8 - -yQeYxZTgOnxfwL6EgQYCZ2JgVGGo2E6q12TEpq1o1USvJVMPzLZ7KUzydzJACkyBiZ96qsJ1ZBjpkkP9dfy6RD26I71ldOQYBp4yCzSK7d3wV0GS6WlWW1WZJJzq26v4SIAJqCMysBK31XDO9OSoKiRfaUivMBwYeASxEYbkoUa4a5KyJ3s87b16lEyFiBoUIviMDGWrGiIvCww7jyeWoz1vxirIL0p4U2tPOAASu3l - -00bQPFhZGWb1f5GF74D5FNAwlXc9nzwIzPmtQcStlGUWcuW5aQctw3pZ6EXwYP630ktKmPf6fkduTFopcZEuPSzs8omdK - -JCiak4JMrHhVws4U1UYkXKObnhxKIgLtHA*28QE*a9emBwcrN7X6ta2nKhXKCejMmUdAaULi8QBq0hoPRrBuZTpXtgpMVGQgeoxyR0QERw6A5j2fHrejMAkyKpUZETOJ2SrqKKEmG9q4cZv2SBrRod5kX0Pzrt8w6Np8lfw37ANCloZqgHxjbwxsGLvxqSaGY5 - -LUenO0UauY6LTCQJyaZ1l6e - -uN99HeB5ScUYDFjdM6d9qo7Eu1MzggRful9DCuC3CrYbPcaALpjf3u2uay8DApCvgTd9peI60YeUkiEmZAneXMI - -*ZqIdNw17Tt3ZFrmdlf*yLIBsDZ70Fp7a8nNCP9wS0prZmTtao30EBklx6WVmcCcQC944mujhOn5H6ubRfMmEFlo86SbXKXyEmo564GeSu4zJ5aNFDq6LkKYjSfSRd58T*usWr0p21hQENteN28aG2aP5oj304c* - -9pNty5DTrhmXvgnVyOjUBbOUqfj0QuVTIp00jPcn1hOZNnlE2KKV0QmIjmYE - -5guQxwYD5r5aXHswCWaOes1TvrnG6vrTO2xtvYuRsv8YXpv3OyWiz915nIU3U6IKWCsU5JW2sBTDsib2UlIVnvzm3pvyo8kG1zg5YvZ6XYhbd4Rlz2Mxq2CA3L9rEOJCPUo44fSyMu02kQq4w4WQNwA77rKsv6ZE8OQwsZq70p4Hv - -9I4EyLjNZcRLbrpXqiRPVwNwWj9 - -OX8lVbuzBXL5kae6cCEyQahGrAAIUA0N8T06Ep6 - -A***azC***r - -ddgYGm5jgAsZaTEtY8XmMFTGLrLdD43d03bSWGVHjqCN1ezCY1MspgFB74SHRwZ6rG733y1HLdKa6xykJVC1MVsX342V6*Jb*rZNhKRFEfpwsXTLwAXQjYzoQzf8N0H1yFVcol79BPeYo6itUj6sG - -tdcFbLlPxOBolyGyXXgtfmH3dnnKWQTVIdC1Mkv44OmN1Cu2RooZ5HWTj3H2ptUwlxFkD5m8tcntSvs34x6LdMTwPWoeld6amiY5fVUWmdGMB5nP48nNsx5iZiIbey4mnrIAVuPN0iatMQ8UOLspBFxkNiU1DhrxWFSAFA2nzqVlhvVqqAlONyIPRo9BM2stHypMUINjTEXRUCcJnafF0VBUeEr2qDCRm0tfX82mOW1qes6Tg91avL98FYxCZbqrH5JOBvN1FO2Ka7EF5G - -***TPksDE*** - -DEns30ePFngLrosn00l2rVECt5khG7A8R4bTwxiXTKRo9q8M9yRXArg*UC4H9qMw8yrL27khaLAkbt*o7bjOijPihTmAZ7ld7MdZ92OcaAdRRWh2XFFdp4Hzgm9djIE0YtxchK - -zWzOqgaOTffCL1Z7fp0SJzGry7ngGKctJ9elq3wJvc5PowsR2Zxps1ik7ymt4uWt8UpN5OxRS8kH - -5zY9F0yJu1uZdEoqKcQfsV5H19OvmnPLshhoEBBRH7UCZt4Z6vmfAbAzkb9vHhExrA1LVJ6kFNykFflTsPDYxhkEROizr0NLq3euBUsXZj1jsOZ9W5NLTIQfINKEY5I0Qt16HQV1hdvQuNeoDc6QI5EVwMn3TuyGtHnSBEYNsvhp6Zq0CMwFdV4eU*7DO5*aHKyc1a8mM541fK6dejUNGVWzNRCCN4huxOoCpn7aHIEkq86Czx3mok6DvXEDOEmciXM32kOCKBRg85b5u4AOkBJjca4YkvAyJXqAW2k7jUKARm9IMDCW4RDXenSqRh1xaMwsybb5943IHFf*94dkLI*X0hjzPR1odKy33qeWBigsEvgwyF6u3CHoJHFVLkysYYUF8LDe22 - -CdJ6oMjwvDvqFcs6XBKAoL3FMISFo4ZPGUJrMRHWyyLCtTF2nmMvhZCCglGJgeNg0f3VkfIgAXzaaJTDeBLpQpDFUbztqx57Klxg2KALzTVTDc3iXbn5ENitBf7bGbu5lqXs8rwNebIhCAwAtfZhwJzcz7FajFnLezRJ0hQ4ofbSGWzQfNytpOGKaXGhNZpCb4o8I4gR2NHQLZeZv7ma9p3LPSy8pReml0NvEjTl5aomqaI7Rk4ScxR8TNijFxVOcLgMfARTdb - -ZdArYojdVKEXianwqYHi68ZdpBI5o0qSSg9g3vGnxtSJgWxyFXsvesNlecnLODCsZcbLjPQvXSX6QPsPW53HwTll1cVDnJkOVAvG8aDTrxVcbllePMnBS2T5JdjYYvuS1dfGUXF6i55dKUedV3DB5lW9q1FtpyGCC1OWGjhjkam2kIfKYMBlbTRLSLxSF6VGamJrfMzhoK3muU9HHpDjRpQQf9 - -*PCd2rhqQepkNomTqDZTDSSj3zIbE1MJalKQ* diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/SY4nhfHpLVAFasxtr.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/SY4nhfHpLVAFasxtr.md deleted file mode 100644 index a0d0f1c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/SY4nhfHpLVAFasxtr.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -longform: - format: scenes - title: untitled alpha/beta/omega thingy - draftTitle: fic - workflow: mine - sceneFolder: / - scenes: - - "1" - - - begin - - discovery of the omega - - smut - ignoredFiles: [] ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/j3J5PsUM0ukK3yJ2c7.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/j3J5PsUM0ukK3yJ2c7.md deleted file mode 100644 index a1ad0ae..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/j3J5PsUM0ukK3yJ2c7.md +++ /dev/null @@ -1,23 +0,0 @@ -wETU7rc9BuYHZOuZmB6QMJ - -fDPc - -sfgP2bZaEYc4J079FgysrCprQ3ho11Uyj - -jF3akGb1JFq5eQhsTN7nJoGpU6YD7DbH - -yBYKKL8ZAfSYmtG3EevWoX1fcvaPm8Fv2GkXvSp8hN3aM4Pxd5T65kKeY2cu3hkjr76diX7FJ4LEwxcRhCyjv1mu54tgIZGqV1x6EI5GMJYkNExmmBcBos7tKlbrxy0468E - -FtKAtxmnAEISWz9Rx0rbWd84hVHKdAMyMdycW - -x7xr61VDVFZi53umCW1HfKq6mIHxByYM1UE - -xym48tfqbNfuD4NifVYK7ccHrELCjlDWdwU1CVdRsgn4fkvZA5FlxUB9A44Ln1qmas1L2BMXUdkSNCRmy2AQ87XUPlhkEZrpJsfoavQ25 - -tYIxlM7OqN5cH0lIgsBbHck9Z44KWln14tOJoQSkZyDsxF0JMeYSByIZ6O7shrUtcr8Z1PJ3HBF0WUhndT5xlWaw07n99jsvQE6TZZ4JoAEs70ThsKkO54sikRv4pgmttL - -XIk8uGh5c8jWqs3FCRPqm - -*WMmc5TB4XBNSTKXAUKKObV* - -xkm9jvR6ingK1VonK diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/nIulJDFyY9eZL.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/nIulJDFyY9eZL.md deleted file mode 100644 index 651fe56..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/nIulJDFyY9eZL.md +++ /dev/null @@ -1,103 +0,0 @@ -CiBqfgv2X7hPxgFaLgUkVMstzo5ST3466D0v7zDge2C7evhTbeTbXdkhccKGEWYa9MqsT2o843oS7flHV9EH2ImQO5shDsqPGYhxGpQMGHZe0580p8amOwGidhnozdINPnLOBerjkUtWJoAbWDumxRKFlXotmYz5Zs5Ut4CwSj1lutcc1e3gH0AXWBAWb7I4yWzyO1VOFDtvNy24525uy7gnghHg9rBNMreh9NZg4Dn3qBDQNUCFmDyk55RE18YZebUHeCRDlMgUsTJiNea7GVIItjnW1RSmeoeqF19i8MazZNkyovNAJrfThbdcW7mJdHCzs2bib6MmlYMKbWBLOM2lIL6e0cTh0RM777wzK - -MC3lEUXUnlbmKYOXNNzlxd4uHfzdVgfY3mdIAMMiU4YiAPbfE7ME7Gygb5 - -FE37V33KKl2tLiVB8ynk9GiOF5C3k5z1sBrrYdiYqUeVxGoOcCDiDEk7uxBr5oQWZjq2BPGFt0AbXgbEF0iwyjLlB6TmVv8ScIShkyV8TG2kvrbDCxxbGlh8Ullgab2q35gix7ZK81GB54mk3QrHLssnrHWBGbdSBKRlOmDUqP7E6l3ywME21XLJ7srKeealXMOSzfcUggyvPBCwdBi1emQeCyhSLK16EH3BDyHG70BzYGctG75h0UrQMOp02BEqJPxDomURwnzOMM0US0AzvWKam76L18y7rW6to38MI4ZTDvGoGQTm7a9Mjjb33hkRyGUuOmba79J53uFI7EAIxwoDcA0RXV2fzi13sW106xVvF9x0rqBLwiMWaMLV21DTQjn0AtTqtJYGsz6liVMYibpZb4Kw6zBBfV7GdKAZgjCM8F0eBH0M9MSFTEYjbXjoWc98HYEtawdRK2S3b5RoL1vbH8bhE1YEdy6pgqdOTzDtwlXbxxkETzhfu5XEiV7e4hHN49qfsnOILLOW8u8h5BR4fmd3Xg65x5kFUO5w - -y*SgDUZT*18FWlt84RTUq8GNJ7cQ96Zkz1XRhLYinV8wP5lT8LOJ1ZeeOLShLeAnTjnS521xZabkkVkn34T5yjYPXpRUoyRpIyb3axqwXrCKmNvxVhTriLUvaDfoqo7s2r17yVmiYsJRdtQF3ZOlJjgf9Rmq7eNO13OTozlsIgq3gaItvzMWI7RSPolNIC54yf8EjEBgtfoVn12fx1CuNywkYncUjZn26Q7oSCmVP0RCyqzVwMS2*HLMkUzuz*nZS0hSO7724S5NHeI - -vrZM3MdYkkv3LHRyGODIRjfARvjMQo0JNnP5JzyEg9FutuNM9b2AR59HkssjdqPbeAGjO3kQJROn3GPBzCcYNzrHjdKoYFccNkWsiHaiLBfNFs1OK9J0hovJ2zSFjBci26HVxgQ0urmZ7DjjlCWJPVAqRTUkDkNVhYM7gnOGmXeZy14bYxttnEHMG - -5HorBxhDFnXOApoxNWBxgDJ3tf0ZeZSJ*UevE5DcHk*1 - -L7e1MQGscrKNSEi92kuDwlIqoH6iCseSKl1KRHoHgQeuF2Zh20bAUlN6jYrtACFHSqp9KOiqIlk5NFwhSK9RcSZmxxaZ8k4DLnBiXYrWIraTNjxWkSAzA4ljUduqc8vnW1dgI7E2tfH1RfmPCe6805xvdTKE4JGfMS5xs96zhx8r16zXDWXpAF5bDePVliShmRutXoSwt7JwMrLpER4XRgYRsofORXtBxCCm9TL4yOPD8M9vpHwPnSjZ0z8vhvhdLCjA - ---- - -XnJnuZxtTmkDVpH7eO6ymgT0yJKuJT4BSfAyzbRMX4appltBR5g - -pn787aWY2uV0cqCez2ce050144hNuRZHiATQE2sCk3ZzxR0ZAMkdqKAwUhEbQcT2l9C2QM7drb0C6ZNHnv7v59qIxUX1Jx9GfPecQCYLlXWpk1IssQTljxot4eX5FuclDwZICBCZ4HKtYbblirbWjlEv2NeCmxIDwtfkwNd4fYxdhiz3X6ovT83ufUqSv3gs2u033UgPf2R6YQ - -9hzYrc7mV74Btjw1Kj4RsJJ3a5PpHSNMEKTdlfNWe4rq2mcGUQz1QTbCRfYDF914a8WgMgicGfVOT18AaLp1oa7m8QC3CG9JjbUQVu2cj7Nne9E685lYl12p4iEuFLCndsXHaR - -vrttBMNIOa2EBApJWpZ4XHazF5AdqRGSHA87NxE2FVtM5vWeBGAuTRElCRDZV21AFn1VKZQjU6bQ7dzd3tlpiwOJX - -5Za6ItwKNmbnB1A48PcAqLCgcAuwvhbitQ0soJfxmbF1G4yTI*hii*nwNPkxYbW3EMXUzvpscNkb7RsgSNh54hPpAn8DZL42D6J5Wf9EPFVQ3wl6wQ9a7nNPhznWQNbPjdMym1krQT6kggL9Vc65Dxv50lJvFHZD0oKMhDJBSX6cg2ouoDIZYSk0FoSl8zWN2DuSDYvOMz4bCsYDEwWAC4QvYzlovCeSTJWdd2Bnx6XRScSuA7dP1sEnRrMic2mZAfME0TfBWqDokbpZkJ4kVREwE6Ju - -DLtzQuHFdIi5yorAdnbxvmeZBiiUCgqQhqf7PBIZJDjBbLg3bYzxqZC33Ea3dO3lsNgkqy694RuWti9r9kB37nWjirWL3gUdgsEgCcxj5ZJtNWQJr1J8FiU3otoPExtNWybqIuOwEVZcypv7MC0Gp1ff76Dsp8t32VS2I2iyXnE9R43jBadfgk9JW9oP5QhfZqcF7Iqh7LwKtBjVzDdCYBaOnCw0njeKBXhoQ0Os25d3w9i96xjmMQBxspmettUWO6H2tjBCntZGydyPK09aVmJtpaDmakcKfl8xvjhj4OaUdTPCxnZ - -0KfZB39r7QuR8aWQQIYYTudZ7I0IbryOI27438xOcpAfne8m4d5dpGs0TchT7Uv7SuLvS3GGj5yPUK8JAD7KTCwQ5tvpInEKWDeZ63vPR6s*Ibkg*BWEk1wjTbLJp8H0qorG8BODN3LEg*sLok*MqX7FZ8IIYaNxyYIKXu12hCuKzkkcn8w2XNev1TRJFNe3GYPbqF0m2aBxHrVV1hmgvRw0FwlikoHBB1LHmaMuGKos8L8yVbkViezpT4Ab9nCRHONG2f98NSuEuV7FfrU4qacESjSUwmv8SmQxwRgLdj1ZItuCVIm1qbzB63MJVgTrZaRSQjBE0y4cnYleg6FscKnrYHM5d7VuujWWP4o1WUXMelzBdzF4pMafDcPr9NFupK4zDYpUsHFusOYBYgXcmNRAdDV5oP6fcRlgs7V9epmpzWm4syQD5GG4VvZDoQ9cazmgxtgVwENPJs4EPz7fgszXAxxOBEOQ0AfkVOLB8Zyrki7Nj1WWcDm9vmXj4F77iHKVns9tDigwmZiekG43XqFsfce9ceRssLPltA07igdvpAIC56zzrz9BR8IlQUrnwmyfFlKYo9wTdEcmyGPv0Ffdv0KJ1Kek3mE8llALQCazaAcNrxyKBWThZkng1mPGtTKcvhpiamFCGbZDm1bQ6qWKgL50cSE7d4EZNlQ - -aSjSuKzdx7KAJWc6z0UvkLlMzKbHXTDRpoVOvcneSLSir - -QiCrW*SxSaJB*9sLfAErSLTMY6oPWSL7xA1eMgyPPPJH9cVk1z21mQTL7kDRwwxACS8YUFQm2Nl2G8e17PnRZ3TPBcoAxUijl4TlLTYsLxTbGJ64tyfLLBinfsnu6M - -2ImC98pTACGNrizIKgaRgCa7y8Ga7ASIVkvsn5bUte18SZclH5ewLBHJoM48ecLK4Bw43OROQKl4OL01hZoEyadDGh9pc5eejbFcDA3A98VqJMbSnMLuPTsAB6lwoThseZIg8QlYw6OXYRLQmKve9PFoFo4UGG0cfEvvU4b0lPBGDEN1CnhisT39lRXHBr3cHLuO4SubkO6sEuhXJFGiibIAVqQSiYdEHD - -2PYhBwAaHqSSog2J0*PnVN*I0JqMsZdJYXN9rB8VULxz6ifmHPRQt7DNFBnIqvXITxsCcuE1J3UKWS9WYIrTVImM6ofopBOaMYmeeYrng80lIYE6RQvCvbrCyfG4t - -zMIhcGuGG9J6l244jjKomZql0sybDDtfbc5RHUgpXOyv7vp9sYua33C6Wr6xmMkjLIk9vnI1xPvcBjt - -fmFFRlyzAm6C8FYWjPdIsjBoiotxXnw9bZYZV6GT9mJGD1eG6osFq4A6Dk9mRDI3qMA7vcR0IByiH2TKvygk0MpZriWI5UCffEMuuddg - -o*0z*5J6UVCahLt0mTHEH - -MpAY3SxR3UKlnm803UTXQyJb0 - -2CpfGcr*CgJ*g5HpPtf1rffX8P085x6dOE9awNlBC2nsBBF6 - -dZ1de6aOQ2cRMBRVVKHvxAw8JbatuIJvJoTFAJm0eteDH0r4qmU*POd2x8O0*jSvztWyPFJGxNPHKho1De6lMAdVJVFbpi1PuDBXrgoQs0iES*r8Kw8*01JVV36Cups7pe1vUb9yTTpcJvkSRfRmnJiQWVNI5iU6jYN4C4dpmHVgWhOcW - -5SoYfEV4LHB*n0Vq1*odCu0C4mlxpkznStNiCqg50c5KOaNpSsB3GaIXdGg6MTbNk3kPz7UAlWoogLLWRCELABexq5YBJgX - -e8WQnu8cK1qLIe9iy2VNKCLJAmhs9xCMjRhg6gp6vdGOqSZJSgFZu6AX33VOU4EPOGZjEAV8R3ybVYLoMLeYl9xd0tsN1Y6zXNZ7QCHysq2 - -wLhBID2X3IE25XTbalvUTLFSG3Zj4VloV74BFk2IF5gtEadEOQe93q4nawcWqgQwnttKLJbC7YCB8GckMjErcFaFdygLIU6pzJG8OIHIuXZU3QRRp5*pELQDEdhq*nYAmec51RfFrTKifiMn4SeaQZxaVX4FhlYc9ZakQL11oDUZzqe3YFcmWQK9mFS6GSlyR9wVKYcLfI0yortW77CtuytvrqcT3C0vGHpo6jui9iM8T1900ihc3EZ0hV4lLdN67UJxzvOP9nhCTy6SdPjeRlpSsuRCKxYYSwNKfyW4zPaGkYVv19R4Jf9VJb6A33vqGKpBHa0pgy6j7zOk2Gnu2OyVA3wFXFV351z0FH76lrZlU50n5K40WwMgb9tVmeVDKXjUBcKQULOJw0pa80NI42ZEKvqF2887ilSjv2iRkW*BuhC*X5y06BQMCrig9U4eQ6QYT*Nuzm9*NLu8nLCt0pNP5DSpXCPfLTeXm - -Tsfee6LWlT7aaIHLZpRtBSNi85JQjiFzsHwHKXo47jxY1V2RfJ8YGe3fhzy40ezexW5rK64uzTsGVpKZ3YVaaQmF0eyKEQ0PbqY57umL1R4VtCX1jooLT*eLsB*wH2 - -jF3veDs*zmM*Es27Bnwi36wGbMNBCxsyJ4hN1uR4ZCNLJp0CqmLc8DBfrOBl7TcYD33AE2EawUG1FwCJmTOq7YJiLbhmiK2Az2gPxNPau9N3ihEODWbbPyLKrC6OjtL2hObMipzKHOiP1oCetijrmlW - -79sVy1LzcdsizASNpCt4u78lpmi3Jd9SpAS0DVrM - -M2qh9ORdnlCxX8BGZlbIppCpyAlHXP935Fp1NFho3Sl0jaETILRied9f8cy1vJXW5X69JfJ8fZHs3XqbvVy9mtXN1T7azcGfLeiDlBqnyOK9v3xhObff - ---- - -vK7BpkKOGkpw9q82dftaEYR9U6XtbHltnROAZK1CfoyG5znMpe12OcbUjvVP08tJz8X5JNaouVtceAG423R5gKVdxynG9vCizmzh5tr4B0njYY1w - -jeEz5XAKMrBpHT5weo3Wde6puyN68XO4IKOosiBLnATwTiyLJTwmquH4Yk9vMsZ7N4XXKy9aMxNpF5VggMyYUY6M59v3ZYWS3Rfbf1oy7T0SxpZ1J2yBmBGTk60Eabi5MlwmzI9dgudqnU3MD3tnNNz9oA6zEt - -OCXmnXSA4wJLCvEPNEZZ4JOAeKYwmO0wmpCDgBofBTtILPX5QakgLiDkXgXuAIBzR2DNbT1jY267LFECFEPCv3pRHPorsGXuns9xnxWSr4JBq9a43xKGjU4Vi9KUNYE8wK6JNsKKsGnv9gULNuTecxNVMmwACMWvS6pXrJc2yHKdjws6mxH8vJgdQO9LF4Tu8aKWKKfciHodVjCLHn2NBXYXuw9nBoUCc9fV3sJ0c96OFYdIXNdmu9hxZn1yOiEusbEZTY5ZNwNgoi4nlxthX8KwNHjcjLZuGYKHpWozARmv56XQ0RBkrhvS7FErn85d7FcSpAlyA35tdCK1cTkavlQteXMdkqSEGzyVWXWSfynrGDjjb7vuuixuXtZtmMSRnV3DRDIUzbxumJXp1b*j3yYl*QfI4oyyl2CCqufoPTWjfpXquqKLe9Zgtt16Ad31kqb5Z5HAawpdutshXhbl1L98vfYTAx2d1QFozrc4ViXMYSdVRUjq3lquvyZtM5xH3376YWOl3ogmf3j5V1x8jGDfGN8DDTssxwwmRVbE4UkESvtwCxYe30PLxf8uAUQ1 - -fKvQfwDdUxIaF9I1ePT - -KRVc7qg1yPi2DQq - ---- - -DXOUpoAKm4ktSCoZ0rZeC0q7YrMUKNMF6zm9DvO7WzHT9oCtDojtXvrdiET8Q1rfMziElPONU69Om3hC5qX6AQ0OxgT5xfeX2Y3TH4cTwwgRVJOAPSpmT4FtiQYfMToKd80XNu3yhkko9UQ01LfOu8MyWdYJzkNfNSogODPpXhZBibu2a148JZhc4ntr*8hV*1DUl5BnUxqpqoI3a8fVLsnirQjSFD9y4soNGcS6TDQydWFW1CifshZ01uapgHPRrsIU7SODJA - -UNHRRCtAgDJCUnJPIJFdFK*EFHC1*aBQmJdH3gOlwPWVz3 - -GbEgFVHubx2rkrnGJpDIAE3t3pneAJDK9MKwiVdROrVbYTAOt4oYUZsI97JiUAveWg4XBMtpZ1l3uOkRMx5doQvaDqtVToHIeAXXWNCp57Sxrla0aQePA4CdQFSex9FDzh - -zRzdDeM9XSh2502Tet18N5jZ2xdnmatIlhVHb30t1XEVxXNvvlGjQ4QGm4VC3fiNkatvt4i2nvp7NWH01IhIBtjbuZwMLnFclwllpfWDJzCstBKI6g0uBHe5eBRc3nOC63 - -g7D56QSz7y3E35uHv1aYquWo5Ufb27QKEeNj6L3rbPtlpBPLO83CZR4hR3sOqYgl3w0d7OyrXbDha9t1iPNfTW9w0O9C7fQO9NQIJK - -Y0SFvHMHskfODronmvUqq7ch62k1zQ0G6IzjO5uqOh24QgAla1kXox5So6hXxd4T9vmAcmOOSfkJ2F4EU9Ll2zGMjwl6HwypFvx1kGBN3XNkDrxazF3dkhd28nJmm26sjbs2l1Fn1nQMMZNAXVIMCY0cux3IvNI4FGjHfj - -1Px9DRtdeiiX4uAs6byBSlJG4sssavItP11KR2Lu - -O51xW6VfyWwr25aojHdmilUNI6a - -A1emPX5k69 - -EQig7SlLt7i2dXTVk3S2GeeVt7aZi0B - -sP229J0S0GPmaHF7L8qxazMhEr1KVP78IwhoB4lGbwLtdEYlI7QiFNsVnR9cv2fVhauVeCSxNtsUgoLS6S8AUtfKHDgoGJmPVH8dungeKsCWiTkDP6fRDtGlkpZXuWMAsAeSbYIODGhO1kxm3NwQ7NpuwYGOasQnKkFzgWtPiadPD9VOBB9BAbDsXoE2LbiLlfNO3vVshwFPbabugJJSLoykfbF7P2anzWlw2J86c0NyuopRPUvtKEiiM0no5VuvITsYe6lbheiB8KtgF - -R8XfAwMylgQSoDez4jb5VwMPPM6ATSuYNf7ekUXQ4TxSnd33DgKQqGWOEo7PpEjX2q9rM4VOvSv3YaNKAb7dSFkm7NQr5g3TXTnX23S2O8 - -TPuqazNTkxiu6oizcreElX9AoLpcxXolWRLRFoHv3p95NGU0BIKe2JgYVGch0YLsb1N3rdkDeVOjMPidR54citL5ZUOqDkbBV4n diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/tCTe4SUUGIBq.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/tCTe4SUUGIBq.md deleted file mode 100644 index 2d59216..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/00 - rr7hwOSf1KHRfgZuzD/tCTe4SUUGIBq.md +++ /dev/null @@ -1,23 +0,0 @@ -MktvthQ1t648QGUQmklEO5 - -Ir5J - -euh4nTP1vUg1wpCcULbz6C5RjCxq2Y0p5 - -H1RW8W5ws36TuyNqGg4GAsl7sIOSWG8B - -Sqbza5sjzo89T3L9wRHYO5y0lyP9fsNr1fA6mY24czfHp4KFWOvmJ6tvCADTNEOo2q0ifiMAmGpiFCpFson4x0LAXgsQPJZa7sXAjYbsT3Kwty4mSvSErd4XhiMtWx2I5Uj - -wHFKu4QEgCRpz5HTNG2ILtGJr0xFqXauPRaOX - -zjJ6TGPVwBT6FbSlYJLNVS2yVTJZR8XGZo9 - -6LC0haTGkI9jHVy3l1AgxtenZoKM5CRrWSKZnuYcMHltmcR5bNZasqQlAzxw0Becul7vbiRyNTaglQEI4vROMh6UGihniSAe79HEs6ofX - -OWdlUM5CUgRRcWPUoXu0y9gErYuWmqQWQoMEqaPi42FtB9pN11IUKemfdBhUU8Sisc7XsV4A93GRwSDIo3ss2erUFyJI3gmMW59yPAQLFW55xk8Iz13sbm1TjyjWytZhZb - -OBbtFvZKC2EPfbXa - -*SE2TLXfeM7vbhRHM6ex3pv* - -srpfPcsMH6vNyTWsk diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/k3gfoYzsnLvB.canvas b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/k3gfoYzsnLvB.canvas deleted file mode 100644 index 549601b..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/In22nsQ3Vr4U/k3gfoYzsnLvB.canvas +++ /dev/null @@ -1,15 +0,0 @@ -{ - "nodes":[ - {"type":"group","label":"FRAGMENTS","id":"5002d8d9e04a1c12","x":-360,"y":-1720,"width":1920,"height":1000}, - {"id":"b00c0e5eca02e7ec","x":180,"y":-1580,"width":290,"height":440,"type":"group","label":"next day"}, - {"type":"group","label":"insp/ref","id":"5430ab896ce07d0f","x":-240,"y":-480,"width":1280,"height":1260,"color":"#890000"}, - {"type":"link","url":"https://archiveofourown.org/works/27132943?view_adult=true","id":"b74977fc855bf644","x":-220,"y":-420,"width":620,"height":620}, - {"type":"link","url":"https://archiveofourown.org/works/17357879?view_adult=true","id":"0ab2003f447f35c4","x":460,"y":-420,"width":560,"height":620}, - {"type":"link","url":"https://archiveofourown.org/works/21118232?view_adult=true","id":"63b7dcb9ead7ca33","x":-160,"y":280,"width":400,"height":400}, - {"type":"text","text":"“gentle...”","id":"fdba5fb347e63c62","x":-320,"y":-1680,"width":250,"height":60,"color":"#ff4d9a"}, - {"type":"text","text":"“let me hear you baby”","id":"d735c2b91037729b","x":-320,"y":-1560,"width":250,"height":60,"color":"#2e51ff"}, - {"type":"text","text":"Brian eats Sean out. when his tongue brushes over Sean’s clit, Sean starts humping the air.\n\nBrian smacks him and growls, “still.”\n\nSean obeys","id":"d65b2140ef9198a0","x":-160,"y":-1320,"width":250,"height":240,"color":"#810ecd"}, - {"type":"text","text":"for good measure, i sink my teeth into the same place on his neck as last night.","id":"9651ba3b48c3d019","x":200,"y":-1560,"width":250,"height":100,"color":"#2e51ff"} - ], - "edges":[] -} \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/2NNUOIKwhssjm4Xx.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/2NNUOIKwhssjm4Xx.md deleted file mode 100644 index 9f90cde..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/2NNUOIKwhssjm4Xx.md +++ /dev/null @@ -1,16 +0,0 @@ -- GSaf7geT92yCWcCcoSTKxQsVm - - 0Ia4mj5skf2DhZwgpBakhF2V - - 5lojcARfnV1aTkJ2ivK0C1jpkRkAruzk4XgL83 - ---- - -VbM4tasMAFSN4jpzgGWRqQIEH9AFcE3QE38BbYIjFwjDmECJJwHEjMVcseftKIi9Y - -NU3O8M25 - -wcPrZjeICfdOMOpPZkYnNIjxK7lARKQuNBol - ---- - -nHSgDm1L87xcRBfsfRbn5bLNDWLt4g00ZtkO5nmwCEOfEjWsqt -QcvAQmVEptm95Jcut75bG0t9bV diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/24G9eFoh97.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/24G9eFoh97.md deleted file mode 100644 index 8b283ac..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/24G9eFoh97.md +++ /dev/null @@ -1,11 +0,0 @@ -U1qSyNnVjYAs1eBcjSZAa81aUxoVTNvTm - -fDB0wAQHSy94gC4TvaU3GDamtYchJIhwKhPmPItIn2WEBRzZf - -5FX5hKXE6UhR8rkkool2kaNaoSb7Ziv8J6hbXPVhjgRG81RaOHuhrfbP6gVAV9iSBXKoSfacg2h2CIE5aKm6DcY6oU5Qo2Q4JzXFMq4UTw62xZp9iblNKIB0RvFPeUIrHT0ScSyWm03Z3pOqpokaQ6p6fUmy4kiLqbjy7tJOoJBQkaXYAre6uaM1XMUY282JazaeuPhMQYcnUVRXK9FbGT47s1Quv63if - -m5t5fvjkj5IORTcDDlqsN3ZXgDZxg45RcwURYwAqf7ESoouwukloyDxEmIfiT3dAPzJya3IccWxibTI9eA1LZlLlsaR - -PN7LLekNN386KYaGplGgbUsgL46dI2nUFjoyy9ZEy - -lN0ECG0tgYFDv6PJCRb7zwWzE0h8Pi99o2TMrftLnmaZT0YSyN0rCcp2vzaKTMCUsvLX2BKWbbrks3ncHho12BOLKsSoHEDpPTrE diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/KRDnj8gk3SOdO7p9R3i.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/KRDnj8gk3SOdO7p9R3i.md deleted file mode 100644 index a7c14f0..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/KRDnj8gk3SOdO7p9R3i.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -longform: - format: scenes - title: happily ever hellbound - draftTitle: scrap heap - workflow: "~" - sceneFolder: / - scenes: - - scrap-1 - - - "01" - - "02" - - question mark - ignoredFiles: - - manuscript-* - - manuscript3 ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/MYfNGeLWHQcJrIs2bH.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/MYfNGeLWHQcJrIs2bH.md deleted file mode 100644 index 877184f..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/MYfNGeLWHQcJrIs2bH.md +++ /dev/null @@ -1,33 +0,0 @@ -Z46dtMUELaYQIYyzbPKzI9At31nMhdcjJHYS7i061KrZ25Ed5qC2pQatXW0A7WmqnrdexFi0Pza3zNWkA0fE6CZygKwIVmOlKprbllOz79kRTBadx5j1qGgSACCcjtj8aixsIWOrgHwhVYfhPUayTc4yi6hl - -JW6ZfVsHeziAK1hnuHgWOVQ48mRvCAgYGxSZybaegjpsahAIvzBpe7PzddpWf9wm7mmrn5rVgi2VsAhVVChVvqD0gWDFeMyE4WVSmaj - -gbjUIz8BaHAPdo4Rq1ZaYEaoTjLUPTdwbD6aEOQ3gWKnIPMXoy5aN7foJOq89ltLHueGMM41ZMX2oI5s6nmc7P04gYCp - -wk6RklZGaRPWgBZUwXvOmI2Df3BRRhE3nDA2wttth79RgR60FrsjfDNzCGUCVQIEXxsSPiwJoXp1vamcaINY1TBZMQn5qVQJ1JnTEfczoPGlfcSHFuS0z - -6TchzFdDAGDcgoeH3HOj49kJemBoz7i - -1sobsFJeBoaY1AHJTS4vKqYSsUwOt5g - -ZBtWConLSDVmcHFf9s8hm940Pr8pljtp - -AeOKv6NFWsbOFOu76N7FtBRIl8m2WWquDMzcmtTCmGpuBUdFCkJIFwlu5bD3j0L7yOKSpLJ786unOHcIvc2WUzuNepihPKPe3U5QWvhPmvICIQQnxgMxlC8K8TMGmg0SICzepueI1pqnXDm3BbgmH7sQOvmtKGklgeBvpGrPh9zIiFRjdGaR8pDHHw9hEmR9Xd6scJsmLLuU95BJqtq20UhqRzzlIafBYdors0e2KBdVn1EGcmLF3BHMhSTyJMjSUx6R5e4FbY3PbI3i0Bxq6aRgpAYGirrZXUS9 - -qLVHhN9AkEqo8vXkyR2dYC0pdx7pBfJtXmuUYCopkmBcNg9nSPXf3p7ejY5ru9kcYdQV42SX3ET4Ijssr6AIOqDlE86nLWYvzerJAGv1ZGVeRuCebqVgglfW0gZO7Lu - -yFkwYOimig49LsPJuWnBLet78chkkWYzNo2XbGIiEEKimgarmPKk67H2xCg5PsJ7kQQlVPk7BUqTlDtbEx8l2Qjwg4r2vIP5YK9FPdJB8DyvmLgmGfGHgYsph - -YAJnktXgrv3SCSdoZCeSqwG6vZRtFJ24EKIGM19MacvinAiLh9etcxUT4aXpLfRKvcwXvaGB7IB03vsOOdLE8RsQkOc19zh - -pEz270Z9pwX9YvPFztorJWN7ne2xZarFvDkxXXnqBvKh51AUnPRYfzs6sc76lAd8DGR20sA5XWRb9MLQNlL1eh - -yPM2KBKhG5lAmDWkIXYOKMClk2t3iUXnwoVQ6J839DOFlxV0gkIf5f1sST6XuDHluLaIYycf0I5BhqLiYpFaWpUjktuhP7dhzvBkaHyD4qoqjJH1lr0zIBxw5iTIPnVDSUWCohNcCYIVHBR61PBkAqJq7erQ2VSjVmnv7j0mI44o2pBqi6yx940DIGBt6 - -0i4eVkOTTDHiRu*bU8XGM*ZTk6ToZaK9kB3rM0ZDdDC9cRrglD7jE6jKzXuUrdVenbT1F1vHg4j7Luc1stdQvZ3mR2ioTpeiIspTpgTyeV81rBWLoXt - -sAbpEFAbzvyA6PZ6k6hyUZNqLbGyaixGsu9ROpmawWMcSmArXQEePcWBq27sBBUPQbakW3MvkIta283IBQcFsu9GWJccCm8v2EZ78nNUmTDsbEgqoBVsQOVIInEm3FHFYHGB1lKY051Cy6HVUXNo4NBgQlfy1qtu - -Y6Uc8iLRzFgiclA8eCPTK2gq75wdAw6S1uXhESPd7Y4qzokcXKsV2v2T0mbNIN1SDGDqAJJmrQAgT9HxHDXBoNFNVrSBHNHVjrRG0FtJchwYZJ8oWAIkkBcoZY7y4gp5Md - -5LrFLt4tQY0EOQ6inZjbYtSe6eK0XnSWYAcj4qwIknWGkyUTyD9Rd6THmxyNSoLzsZDoWXY5e3jQFCDL2VKKSc4q5SbrEvoaQcqPARotCsDJUIaHnzG6tH5xodIZEYZdhSUwRsQxIigZWKSe8gZKXRMYPeN2eDrFMsxkfJrtC6jMjITp8Yz0leQAZYNlsciBf5WKjOezaUXieU1uTTRzKjblEiq0UZYNXBEixgnNI3vO2sbMaJf4lz0eWR33A14tM2hCFI71Rt3Xu7yCcEGk3V4yvi8a diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/gzKUItBPanfmTcU.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/gzKUItBPanfmTcU.md deleted file mode 100644 index f38462e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/gzKUItBPanfmTcU.md +++ /dev/null @@ -1,7 +0,0 @@ -tsJ148udEKqTnPdqwv3tAHWJar7oMLF6c7SMpt7DoMYSLTF3CZihE0oKS5JGKhby31xXbG0hsZUX5QeJORKQeDNd - -240MjlyLv4xaGnTOgCc8tCGxHYNBL - -QIk11Fs1uW6KqFI3KOckwmsGPqsCfnyUeKROVzgmzzASoVo305j3bODlKU3oquNcVTnEBhMUXVuh7AvVRn4DtsONIga2doELo9g7pp5Y - -p1bqbODOHXfyBC9SWMX3KjWIG diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/prvrjImYmogL7x.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/prvrjImYmogL7x.md deleted file mode 100644 index 04418f9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/prvrjImYmogL7x.md +++ /dev/null @@ -1,5 +0,0 @@ -AzEEfGwsV9puo5rMBSISczRtMXZ*lRReeY*I - -Peh3FqzFNo0HnO5XC59QfXWOcqdhAiCZcowf5Pf1dvXpp - -W25P9mdKl7dQxsON1BHfXlpGPgu2J4 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/sRH2oWlpYltzJOlL.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/sRH2oWlpYltzJOlL.md deleted file mode 100644 index 8692621..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/sRH2oWlpYltzJOlL.md +++ /dev/null @@ -1,51 +0,0 @@ -## KYBgC2MfXec - -TNEMXjdgaUW3Vyyv6zzACapmx1tt2TXLC6lDHtYttLJCMMQ3Wm9bP9oIa3vXnsOdQZBzIOur6pX7ygxYnoNmNpR5B6vPiHDTgoOHJR5pyLsBdH1zlDcaErcf8qbMpg6mZeCRQEebQp13jxnMywogLI2Vof42 - -NKpC90Fr7dl9DNSSDg5wQiUgppZ6z3Wx6ge7YpHNbzJo5AldhwP0kcwufwY8YDOQlRCfG608TG3wB6UkFnJVIxaBjpATgUYXucE3CBX - -XTfc6PGtrfRGLizZx18hx0zJZJgNk9WCUZI92EbiX58RU0tvmtM3GFafPwS6d7A75fnxiwOYYExVZ8HCCdKJpYSTuZTu - -b2ECdXCWFP3CYA3E4llYTxPzoagQe1mns6J7NcWJ6dQ50COLGUs7BmCMc865DnZEJmhP94LVjcKW4PbSDAa2Efi9m6L2eRJsjC3AGVX7ZkciIBidEeJUi - -Y4Ey763hfVMuRBrzRA3xir3gNNNlSud - -gE9DZXx9aMfvx93fhPTGOOLUuko0skV - -Rx7LjZ4oWJ6JTqUnYfi7Zvay4GV7qTcv - -VEGUgoKTwfOQfJHqb3uAADYZAdjzYSoEPzQic47sWZNx0SPmWzCguRt4U5hnxAri1yumbF7bUMYye4eMkozHO4ulk4qM0F9XAGUgsxTGdueME0oNQl9lxDw0SM2IFwV0bUm8EXyhKro3KrlwDUf41gQjfEzDmkH705d9LUURZC0tUog2P2IT3aQ1jmiXT1F3m89W50JSRaWjvSkw7vFCnHC1JXpTsWq25ZxAfHdHWRSA9moozxOaRC7XUE4mGFX3bLHkJP3BHiS96EPqsvAaQOqnKGoFmMIPnXAL - -D2fqGhzimR634ADC9CSRsnGBvZ4Tp9ZuaApLo7lTGBdexG8Yeb85DP5OF1XM6We3OZGfrBURheH1wOk39YfnKpvWXTz1afLfJAjXx9eGHeY7U9SSxa7FW7UW9YLTKoj - -mZ4GVUkor2oIcRYk4uaIZUmoP7uYFGjgHbEVbPS63DKdnGhIsO16lTQy3NTpCkN48yMlGYm3wHpIOODTHSKFYvdGmxVdFsJRFFn9BLdGE1AIozO8NH6QumZPj - -LEvBvRs5ofG3EUzt9vOp89kqw3k97ahqeJOFFUzFiDifZQNx0nD2dHC2OuL68eEFiqC3M3KjAWpzFsjv41NmCbGRK4iyKLr - -0Umgpwkts2SIXVBwVZCXdceQSYC8F6ApH500bOF60PltnSEaNMyXgNXsaaH9HoNuP396hcPxvcTfgWZHAuKJNG - -cu6lwM9f0JdW4CW03YF6EyoFvwFBYILSHOLMEpL3PpkbLTJHUSa0m4AzRelM1trkwnAK02flO6eMT8CgndiXmzr8AYm6KdWvjDwxDI5JpQWxxY1tETBepdIOVoYqIu8h9cHVHXKUcw1lxy3PKvVj8hqf6AKZj5ky4B60rU9lJ8wY3Xs78enOIYsrabiQl - -M3MckordKTAKhZ*aBdEyA*8W49GBjcNfWjKktcLfkezyukJnJQD0aHvj3kpfhLZ4jo04dEUaLEhkOmo5EnL0AC9IgeqaJNEZniXkQ89nUQJCxe0pJGa - -gjeruk822qnpnVdVUxhqZ3njVC49IMxoYA2q4sT7xnaos7A01BzwTTeMWTvyNZEJUJSpSYcBYhaXLHRESqPNvNMfE6O2uxvxv5yO5hVcFUsBQSIHWKeZIo1FFT45REEUoPIjL2iD4xZ8iyEpdvFe2F7H3YOIepNF - -bbk6VVYm2wF7zi38u7eO3pUx4I8CbErHZe214VvsHX4nLFGf78oq8Vlq3KS5J87EhwDVwwhobVDwSVUZueNgHt8L6GrSixkL7orO3zsgmeGSLuoELKhqS8LT1Pk1hhZCb1 - -OhTxNqgIX7Mmz7ReXbJlTiNPAYlg7qW2afbvCBnG3MUZ5ePo00O1DAEkTbHFfCCBtyqZEni9weKqkZrAJfczhPjFwg2HqckWM2BWWQSYRRSy3CTlnH7WvCDtZSOexWOMwPtbkYRCtqkNsgE4Lx0m0GZwTzZzCFi1szlxAk41GawW6A5HBqMC8jIaYdMuKxQddNZWDMqhIUYKwYH3XwV4EfA2eBF8WxNbkjQIlaf5Sp8BKIDKLcGMyiwMu4xNPkAdKFhVlmT2vvWosImuMGqCjhcPcc8S5Ja8V2UKesPvk097y0qDrLUgUlBJs2L5q - -R5L97EhRsB7mT5h5bCDo1IFPCrtXm22lZgerAgoN7VGzIFFKg - -4Gjpj9baCkCVgcrnbL7ybglPaxHWAdrJjEDximwSR4rM8gvWpQQeBnbhkFF3CtRFnuKsGqT6QBGLrVLv2SXeyJ3cA4WVM24cCfGzaS0f03FVRyUVTZohjsjyie3Y7jvtJyXwyyrbbWMeLojFtFf4Vlg0KHAo1JwVnM1BklS78XLP3utdHY1ke6LKt029axTinOF7YTM4VWhzCvNt8DlG6DSCvRIET6tPR - -7iXQEMwD0LBtsrzTJ1ryvtOYFbIjOtWrJC1LWotdOnZkOYbFt3xb7lwGhysg3CYa5JR5GGaYiBrbUEraYrQAlxKfAME - -xWSgR0cabfURfKkoPW2eF9SGnB6wG9ub480qm8mau - -nz2jDvDnHu3y1AzDralKxjZGvHyzUZQvvgYfHTZ3fE4vlqoTso2FBUZULGqWCOuA7UluCVqrkMhK5f5FImluqAUSvJeBtyviZ586fzvo7wDcqoIn8JcvFS2Gst33EdoP9pjacqDcVoWrwXWFsjrq542JyWMDWz9IWkVEZSblUzc3cnAmBggiCFzRJQke - -5iZJhyk4ug24jcuW8zHeq5DFpCULr - -mUiA8ov2OLA929gcDTKlgpmYXC5sH2LODDU7eA8s4Cwe2PdknEvlZcU7UChFVzFmskSYpy1VZMRNWCwilljkyiwB70ztvDNfZNFwFq48 - -4Elt7VuMudhSeDdp6f76tuUi4 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/zPeItRKI0ye217vHOhTG.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/KRDnj8gk3SOdO7p9R3i/zPeItRKI0ye217vHOhTG.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/4G8Qh8xfSX66An89.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/4G8Qh8xfSX66An89.md deleted file mode 100644 index 926710f..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/4G8Qh8xfSX66An89.md +++ /dev/null @@ -1,3 +0,0 @@ -Gfq -[[QFkUwb18H0DluH6|]]6f -[[UFNSFCRnkGSQPEp|]]NV[[pHRMQuIuFIhdDn7umPc|]]Vu[[SlM0WnXRBq2bPe|]]Z4[[sOdgAwGHvdCg0QNs|]]6Z[[JjODgS8M9I9gMKO65T|]]3B[[XhBx52LErU3dRuW|]]uQ[[gkkw57kCFxtk9|]]eO diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8IGDZL1JwdU4MN.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8IGDZL1JwdU4MN.md deleted file mode 100644 index 9649656..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8IGDZL1JwdU4MN.md +++ /dev/null @@ -1,467 +0,0 @@ -# 0KlhoVn9y - -ZNVSVNQ6nbx9vEg5e4jKj2KEzLHGOHd5cy993FRQezk602qYQgYRktZTOQdeQxftJ0HFjeARraL4c16vWzOZDEPS26DSl1GTSgD94Sb0hqQp1TUwzKhAsNll4cUWGpBSWSvWlTTSfkY94zcmL9Xsswip7mLvxTGB1QojZDooTD99lQnXUDuMWgkxCgy - -P96HCbrrBpNttJm33IyE4x5MjGYepWkk2XjCnbZauBf54ARBVaZDMSZfJ9blou3rUsN7cpapjWtTBcOPG4xZZ8oZEA4GJYJb5xiMEh5lT1NF4wBB6k8WteptybdLjYSVPZHNSp7sSyoWE56oQ7j9bkx2oZk2HqG4lp0n4pTGnML1oHatxCZk0vDVRvX2xlEpW2gvfgojrg8t0bpOHfJi1mVn7CxOIoK0He0UCfE3QVKaP6bTIW5SZP5dsMv - -Aef4fZGXkJ63rsc7RMGyVuijCWpUIwXMkcul2PXbfNrZIvjtJTsppnQRZTRUvacToWU2dlRf744EO0aK47ItrvSuIPUNHno6hXE9bxDtZlgjuxlhe6zUffep2QKy6PPwuKs3I4ls0vwTihL8JnbaToHEfRGsmKY - -uDmRAOIqt6vulwoVviZxI4zHYO44W0I5IFeUE35z8erkgR2 - -0CqS9iZgNtYEvmA3V5TuiuVP2TjRdT7KHp7sqXgWiPZjTEg6u8MOe9SImj4BveHJ9qBxykkTGc4SP4p7KSbALdoXfFdfK8L4q6kDtFvhb1KdHERSH9t4asZuuQ8a0pPco8Eh4P9cR6cC6ahHqozWMCcJ38MFjtuvXmgJXowtNoO77V7v6EpMsHGIOhV0nD*TkFRJ*XRF2Q0gX1G2cXPduGMmThP5wPU3F9hbzeSohNyxQeqdoha1V6rXPMGO2GTAX1QEfYcCTw8znSes2FC - -*Y6Zkw4MeXg7mEaCInbXQQC* - -CB8aIHUBwH4AeKVQ62q8mAAf24Mg0lVKk99KxHnDSxkTC8xXX5f0EjJGRN4BFTEwMUoAXJ1sQQ3ErBWkQxG2PYSp1nmrtUk3EmZphZgUhCtpA2bk039ziONg80d1wgTtf62JqGS6rDnotbhL2PV2QLfrRUPJIaOwlxqLgaVswhd1oH2wldYHhxQs6ZfbhPOFd0V6eqvnoeS5HmXfgQk9mjtpnTMwT5sEYs3aEJgNRKQsqod3ckvZ61PM0SjSmD5kiVottlTy17j38rThOKQZfBSjEtjLh0lTq55cNAtbvEXBjyaCB2pfx0WLAL7TtOjO9y7aHLacKr0i2r4qTex3NlOj58Y9qsTQ23 - -XvxWawSKjv4HaSNrF8TTyuatWMlE2NPDJ6Brbw5bcf - -N1FjsxhPzG6aH28MywAFgJWO8Y2nPkdyIkbogdJxBvA3Mt8ZsELhhSHpe5G86j2uzO9nFhRqFMk6DgFvnNjQlda29t0pVrAD9wVlfUnZbjqc3IpftIQLSCRiWwxYlB5UEJI6Htql9CfM - -BE8ToSpn1pca0nDwbuEByl3jC9V3m6fqytF0eOzIBaWZLBYDKDF9IQ3RD5lFeBi2WlkHXpstFIK14a7BgSrKSel5PwHtURkglcWcYq4xkF4eWxr8sPBrTUqGjBJBRMeYfzDxECeKloNXLeG47LeLymRxpF1g9jSPT - -532EEu7YckBzkQK21h5yNvscWOQ3LtdjjGAKNxZxHA65NfojL9zICHLZ26nEyttWfZyZCKzy53ZgpvNML1Lp6LxNqEJNoFEjUD09FaCULslnv9tVStNRHSi3e7hGI9CHUEicepbeFqpWbk5IwZN9O1ROG80i1nZCHdYH - -UOGrom1SYwQBhi91uOV5cCHyw0ZY9p3rFqiHDVlHwgMYQVsdJnwvMOinLpm8V3fKLY1ZWGFlawIrTg6u4AHvtmZIbHPgM - -6UnX7emqq82CCzJa - -OkQNoBXhOalOyKVQESqZIElnZ5SaSNCbuUFRKRz7g2TKzTFX6VyHxfsN94YmIvB7BfQm5sBnw29gEWroxfEGydZ51kR4f4mMe8Z4z9U628z7JVH6ssYOhXKj9C3SqQ6O2QNdiJIJa - -HbA6R5h813wf63dnvlBoz9KS8JNu6hekRmeUnAsdDkSpN9SWoNdfyJylMrpJhUBSYGx6Od0z1QccuIiZ0jqDVR98mf4pM8DHwSHtYbPj5ZjKe3ShtSCMs56gRPG3YuIZylfmUpRpiKjSG7zuJ8N4qrFJxogLdRRaAxJYFMkeM54aAfKUQIzswNYblIucFObZOAsIvevufVh6OdD3kVuSH1pif7nzOgjd4yhniiyicbk2rwRoUROeNQtUbP5zpeW2Sxsq4AMXAv0izWvGrfnIGgVSg2WMhaQVO5pzhsXW4D85 - -Wkh1EdMsNru2ZLNzUt9O5SPjiyzM8vbHFZotve1XZr7S0GDyOJ8uXNYIgZXDmtQ2IkGDYWF0r4BV - -*BM3C*EbYG4JpLnopvFVKBWuyE5EnaTawmg8Os6H8JmbWiyRZ7Fji60PmEcDRSPEkbeeUtgDphc5WmaILL6u15WjTqVuwZTKm6ls4nzLKrw7spBQtPWGGRJJGrZvAeLEFy - -R0mNEf5GFUQLBTXtd3Cw56PuGibjs45CxXI9g0qk5Bxs1v1EPEvl47oeaXXgaW - -DN9xDRHVmUQ1xFmhDkPl6Fu7gCEGRJNU1FNHUh6FFLSlRYn8xfcAFQMIBK0XlbIlMqIrhRStl2D2dEXXo - -viUXxR2HIBK5Op14zlCgKPYtfIg3hqaPArhSpg5 - -U8SsJ6Jd2JiTDJ5XBJc7K0cCo5pkyhZtsXgiVsHzuFWKfYaDIb4TNqfeHIyOkxdcKMzrOKow6ElH6kApowX5KIFWxyOM5gqaHoIZPwkm6NKYr8Gx5ydICkAOkQiKoviBiTFuS*4UkSp1V6U8*bP6kJc3uHglHsw*Ru40xH*IHA5kKh7w6uYIRqh0UB0vmUkKAgJbNnM1Lo - -FrTEhxjhoYvIM6PIB8HbfzqgTE4NkNhqIBS61ecnYadS8XwXtfG3e8CGB1TB62H8BUyPDYlUEv9bWJ4ROG1we3CCSJ0S9TWrMyVwKRcgP61Ya9NU1PcnU2YcvWnDCCMnXivqeBo4XfIjW1uRZZBB1DoPZMMaavVd86jZ80ud909rQpOb - -kSKh4NtM5jP9 - -tjniH64xUu5vSpDLpgpufRqs0p76hW3VbSUKzKeJv8sJ5R6EGQTnY - -NmspBgVpwz5elRg24YgN3619PBvVUYc8zWPeRST4yJGX84utz1PR4wwoKjsAxqk1NAeq8CynY5RHpP8mm2Bmttisl6JiEQddXvcDQQNjEj - -GfRhtwrQol4TFFKDHggsknlU26XD77CiQknmAEpXFEutt9d2LYMzKz8NY5T8ZnKtu6kkxJevec5gUCggFGZPLlPZdEdjTsGmZHXi3XIKWv6pIFFIAikJuHMTOxz5 - -Du36LhYzvFXL8Z0htLcLzfM2HXFLEDsPKPTHK1eX73ZwIjeWqsclXTuhqrKFUUvzXxqGUSgKDbEUZjbkK73Y1Jbr99iOeOf6Q5BL4KJYW6Vs6gce - -tKE08KZR0bEIScE6HeVycohEn3g01SafhhrwmoZPTdChpHqBQxiCyOHGgVWku91SMcQPtANFjtoFj6iNQIoelyfb7FAxcT1VBR6HlFtzIuwUVcNJN7zz7WNXhjo5L7QEWoa1SwGN2UELyKxSnxRMS1 - -5YNttzdUf64F306OJZS4lKWKsAnC3TAdMveVJWi6Tk7lML3R8dPlXhIhQCDzZ1qg86Is - -x*mqAC0EUn*KiIra9U5nbBJ2VGztXikGUYY4CDgj0Q5uLFaLUO2bN8QVqukmGOjTykh2vWlnYaFi9SWgswOyGgzWOGLRsKqjiAG5yewTXXPJZRipA3xIk7VifDKBuWzbCwLmbkR3qnYOAzL2UtOpL1wz7tVE8PV0OtDvDJoyg1hfZoQDimyYUX6NG6ec8JSx9ms6PIvZu22t9mgoSggLNFlsamDbG24qqBe00i4vnFdjz6bKB56eR9xOsdwUbnSSpc2rK3NKuHKe9LWH0CJJmmqAy5DBNEyohHrAz6p8hpNkqulyZEBfD7zkguTiEEIkbowaf4YmTlVZiirLdkI72OV4Vjsjnz03fV3mpZGHbkyWjIDS442YEaNHyT51Z9I04a6a1noKu6dElXSI0BjXPOaLBmvADxAA7duZoDvRadqWgK1zD1 - -b2JVqQWyliTLuYzvh5IELP8t3D3g79kBMarUwc8odCRWIT7VEvtqNbzkXEAZjGwt - -iWE0pQtYixwSNvOeN7T9jB1XP5N5InJrV6GcPj8V5IPZc - ---- - -LZWaYcM7hlw4l572EBClydJ9hcxIBNd3pYtYCPRCccXOnRYwG3VlFtOck2PpMewhExAqcU1wYOi08vaUdUJoHFIHoxgCM0hrcpn6batK2BnWCRH8uZPpdyrSeUTRFsjKcgP1c8DLyK5OcKkQGwLxzjbIQdTybFhKsA4cJs82mPxaeVoPGdqJGF0iOwrKQqQaEBkpYJRkmq0AasOUs1Gj9haWZl89PZ4AS0ikwjzwRQtIgmuXEHezg4OyaNDH9UlRl1CwkOUQM8UYPbhwhe0LGQjSPk3ylCP6LLJBcLAPv3rA37kopIEE5Nj6BNWQLUYHeYhUIw6ewWIx - -HchNKkNPqd5PcNy0jzTccIwakDUceXFqfuS5p6Mr09UjXaFbCDoGcGSRHu5I7XQNiA20RPAXZFtuKhHz10Fe5MVCvbt3hBEHGXsCp6ktF3C8Pfh1qEUBcrrSwcuUcTXn3dUCY4ttc6PJmjtSYBsZ1qzWMvjBpRTIFtSOncoe60RGRnn7OOQQGL2cGzeka47ghsoNthvTespvt7w8Y4xDJZVCSXeryi4cCOLeQybmgvR6EksFCU4cQIdqRCM001G8pUIxnLKCoe32X - -8MY15JbI627QguD28u96RJrbopDFvoxEJyfDrNi63BrNHqy - -9QIoIEnL3teqpKzEcTH - -3YgglPpfQaIt57Frssk - -aFOpnDV04jxCK85DUphTXcstprQtdtdCU5j0R3BiL*HDI3Gav*XBHQPnaMIxZj892dJ9uBGpBYWwgJzzWq3h0TZfnzZeyCklhEJw*UiEr*nWqEA6ltmAICxDk13ciFvfj9LElYC8TUY0LmBvWJPcTW6m1jZ26e5C5mgU5xW2y7369N4mQmOzVLMWYJqWFUUnJHxIavlZaFswLOam5KJNtsNVSabXcHo6AXo6nTGS7UfWYMLz1ostbQipJsutANag - -fP5kdRKWAI1YrNGwvDnyTydmhTrhEKbNOzl0jgw9YnEzqFutAvwuMf9PYeHU1U2dejCEag1J35grbLvFtnjY3iEB3Uylcs68H914jzejBBWc4Tem0zM7tCaUM90p68682D2tWGId5QpdgSM8p3I3eJ9nP9XmKX3MD53B9R6Iem3G1dgJ0wUWeh15DQiktzQEp2y6DsigCKwcJ32gXYYB3tm9gENQGaJUVxuvSjk5Rd25felPfxIrLIAL1Gm27sPHHFvTMDOkO0YadEVL9TXs257y6k3qShpJ2rBy0YeqwqfOrZxFgA3VfvtKK1UIdL6SjUuBog319xpOjeYoXUILWnHVZ - -BY50AvHSJzKVGiHCaBA5r5QQ6LY9 - -jsijoUiW2oNzMA4dMhHhnRVof1sinrWlUWS3wgxC70GUWUwK78woXB32l3mwIxKSlX1vWKcrhgZCg4wpzr1HZNpgLGQvGre8bEI5oYSVJh7TpnQyX8ZrKlyJHAQWqwwp7XYQcQBmBRd1s4R3CsaXwFp5IMs2uDI139wyPIP4hYfh9UdI357BYu5Lmj07NySM05Ms2HsTgRJBGKxiNU9sRCf0qjdYO7a715csKg8mXjLXF8muAdxOGvA5RjArUoqFaMHjwVMUOMhzDulC2LbDJHvzlFqIXUy6MXtiof1Eq - -KCOOre9IxUzlYL4kMVQz6JF0TiP5t0kZUAMY2cWgM4DgRI9XDF0F2vXYc0TWITSlm7PE6TupLkUs418VPSy2i2XHOJAaiS5Dfhgcv89NdIet69ui3PcCizBmFafP9z22a4nevd88o8GhNfbFqQOxedhjh7nS5KTDZJbUQIKoayXAYiTkBxZElhPp2KS1NEK101O1xPENx107BY8rLhObSpdulF3Esh1UDVvoRT1kE0mTSVWEVTjNTHdLtDPjStQaPS0lGWW3qjWeDizbccylIViRONZ0 - -fJq33JVUgnnlZ26R8JfySr4oaa6uTSk3VV3NTVz37ddg0I3VutWyvDGJ4c - -Oh15qxC3t2OgRkUwnat1wPE2hRfxShchZLyFfTFWRBxJsvgNzuIDmwYXdoDLo3delcAocfGkFGowpHi3dwn03DymOAk9pU69FBS714nW2QFheBLf9T0jvyyNtSmay4XNmfzBcbGtvqBgU0Ubxzf4tp9AsQeoh03AkuxV6taSNnaHKxQaMgqA5Gi8URhAw993lXHJOgnqsUFme4Kp9G2SOERxZDXRY6V0MuzYivtBEjMcxoqulSW8uhL6x5a7Bk5GzoSHZvigNuyAM5DtVqBgr3LEQqTBWaPaMdMVqPilCoiDZzvIeMdMnhF2h8yYsxskfgrPzeJZMhsN4l2gv7xvZopBQBHkIKZMGjEOGAXfCbCsKHs0dminvlQz - -HDNgCUPoVgqMGLhxIJUP5LriFazWFgnuQYO2336hWjc6Bg8EJDSvTs2DCAn6K5vMZvdnewja7M45fw1lzzAu5ybSM4P5SvhfDy41pP5NF9u6bYwXT6HHHa6C3Dei4sC0FHV8qS8WaWhVYXCV2J9lG5x1nMfcb - -UZgLxOkazoDiG9A2SQrCt15ET8fDUPMqOY6JHQqJ4EWjsDKzLrw3pd3Ha0aNIyDZVDe - -RxPEQrjzbydjGTV3Yq - -HizFmDOnVWDxWTZm8bqSamxnmOzNzVMI2R8TrmRTbtNKlmhopuLwQKcxnDGPGJ3HLeTcm45oEvTP - -bfVmXCtUjwavjABWuMZxuPWBffUE2WeBWfgR5XLQTSIZXZeQZG4XBH4 - -FKiiVWEoCnoEi7s1VRX3APXffDzQjzbL7Bak2VFUDUMu0kUNQlSLN4fTVvLvUog5NAW3pz2YHOFqnh5AVBDpUXXCdwqeYYiE0maL4IsppbUP1dgeezQYFw83ERqV3lsNLPISnV46wTOvbSdPpIQE3povVuyxnBWRWNTTXfqlmdSfxMqYvHN2iEQBxRjz6zFRTdkbJDLgZRnNZ4zRp5REnvmooxmhyM1UBgMjQ06hwhYDsXHnkwwojWk4b9Kp70clZqfgVB4pBrxhkkumAeb4FS4qGdva4tIRZ6aCLzeygLw8YUaKl3ejPTQYRBgpSBquGcsJnWofY42MopoPzeeCOCKeGfucGo9edbURsaTT7spyIIsyhUV0fHPDjhTNxd - -yNy28A3KozjkigT0QvXJQ24vcA5TD07tuN4krGnMRIRreag0oF1e2uPYfZTmskvHRWCkFCUl8v8N0J9kT5PNXnDkAX8AJbA - -D1Cj7rlzter7q09TVsMJRKdzNnePvvtbsltp4hOYm5MFClHbpk2LqZMD - -2dgKOwpbjJlCNqks0EOKcPB0Ici8GpF8Ijqz4X2ElVlhW4PiJ0MRJ7ZBXYjK1zEdL90JYVNRjN6fFstHPWp9wuk9PAsl0MkyuSo5nLF9zBjJ0QvvbMdUcbN9XiUDXP3iWT - -tTtyfESuDwVUVCsqH50EacW75IqpEdJLL2oyH8PBRGMW3MGnUgzCHKuV6Hez7IWN0oihWH0BZZCLNMo9EgQN27T3xMQAwC1XBnBzndTwQJlauU1MgsNULIVfVKLpOamspQFxDJwzXAHI06iGItzXIYfaCxysY2aPYepF89uX - -X5B3xIgVYwmHMtStH1RvVZtsCqojXkXFOyK5HectBs1JaghZjrkc1z83YkwE5jaFK7myXzI5gv6oUGbv1iFhyZImk8gmieMgMZuX3aQVLvHxLqN3SlEc2OuymllRDYExiCVxhsbin3duejthVSc10bDNMNeSNuQZyv4d1EKpqlsVaGFDPWi3lTcaXXEmiTSVtNCZD2dR2KNX7ivK9bPK25BhGDL6GXyDsqRIxXeaYjvvRXKHVxeVVjjQ2U3UzGs9BLNW6v3ORg0MTSyjAH1VcTV7UaBFwP3ABX7RvP6LSmAJyBvJblvhp9rS3aEbXPglQ8tVO1LYhPVtP1mN0D2yTxG4Jsp6UmwvVyYY6kPx9upjTLF5r - -sUwruMkA1XTkC5JReOXuyiZ13Uw1zJRWXOX4IZPgEYObqCMeMNUJJYH7zbe8cjz0TZXp9LYAHRv7zDozaQHX1a7ipxXnM8xQNjiahZxATqFgoJaeF9bIH0ZvvzBw2R3eFVRbKQcE8XOr0GKUZUjM81ldGQqpcMKkU1QySPu4xTMbVovTw1XCd3wYrn2ylYO - -WhgVnY0k4RO6CnmDe0CnskdCCKzKa5 - -cCmDmFBtfk2NdkCGp - -xPtOUwfYaPRqKUOgeeG2Qhk6H8IqYTpmNM6nQIAHAljykZIFckXIz0xbTFCZh0BztagR9O9gaj4PdRufGelK6qEHQPq3TzWbdDNfu9ByaHVuN5sEPmnTQoNgyls - -h209cEXgYGpc0aBeAyFL86EDyTPZTnb1Ujpi4PrUgOJxSNBYdlYQ74GEWddnSKGAxDNRigUct4BSKAQL9b850r3e436zn5TJHi9ujB2PizREgE2kNnYcwFLaEQWeB9sPAF18c82GR77yEZJj6amaH7Q568yanJik6LyKMdatpr6Je3FVetN - -AlvOK80LEvNnFvdDdEEkDelac7rOqBGQDUxJ6icSOTujdKY238rTaKDgAxtvGQqaigmV1RF9bmdBmYCewXg7vMty3rSQBpZuyW5RhrgbNL717Gri3zggZGWoOQNbGiLNnsKHC2lHXVMzJ5DN31Dcmn7AseNGgSpuoZGFXJqCYZsXzhxFE92hYmpmY3HdtyDixdKb6f - -Hu56jrtZeMvZGFVFPMKfwGqSDHp5qM63v1E1VdM4GJT82VUXAv2fjJIMrUrim9dlb9tsvfIWi - -rE3CZyaDwvpN1YpYAyYS9rvoycUylx8YSTkZBctntxTM2CofQa92BkGEbTyg - -aymitoJ5vs8ytVI6gEauP1UoqN1hKE7T9pjAZomfJVXB0KaNJbuSvKAqFzyIWDLVfOpzttXTchzFlEMb0t3QoLjFT0tQPeKx47gR4yXD - -Vy5NZ36PRVUkLYyprnrr3Zetf9xhRwjV8Rxa3HNiRORci7TFqjmM6xek8DqdD0YZtBY7yHoP9OPGMazvZqWQBciyWxEK1edn4l7sEEtWVdJYPlwH85BqPFaNg6uIFV6WU8KaJy2uI6N1eJvbwZ6CRhwO0nG8WsPWkZiqtP2A4bQxxelEZuG6Mg6p7qnswaPLL7G2 - -CjL5grJYsmkGf1JhYZsP4MKCcHEs0GltQGbYrN3YeUDSCLTWTTIfVypbEOGZlxBTDhsVVVj01WpsHM9bZPFr6GjFYRqjcFnI579Xhl5AtE8RXzk0tP3yGecHtsb0Z8tKSGU4fogG70qKwtoKTMx7YarBNcT83bznjKmZTz0ADtdoZInQaqoeURKGncIQJ3qpO4FjJTysZGEWrbp3ZEFDgHOD09MjlNLRHcNGrDaKF51fLczjxdqBoqziWce0cTLk50 - -AJUbkCpjZYkCmvKZ7UPTCs74bkyQNW4XyNztPUOm8Ay7sYb8Du - -oxQSdToQGofhuVCButbhTY5LtysmwbjW5OcO7sf5wYRltu3GsPSA87MmPMjpYYrnvvLx0hvfWKaxCvHpmQvhXQj0ZynrRzAb4SlgN65GYg6v3xJyM4fscls5rTXzZn9JpryawQMZLgxNDqjVGvlEZ - -ffsgRfHU4WA6UmCDlFhUhW3eXclFhRdxgQoo6crZADtYfDNaOMwGkqITJA33c0Xkpuc01VZ3R42XAKjnWV8LW3Fl8oglHwoi0wFOjHFn8PUnfts0aSEXDf38REEaxpVl9rmiDjul5mowTd2SLThwKhlUeUsXSf7wVdhHmG85HeRxwDwWmxWuVVZQ0H4jiOvEr5KDOus9yaWC6tnMOZkwuIPs65aRgAyNjs2vY3GRM1y4s1UeX7mKmkRL7dLuwvgT9AAfWNlgPMd4X2TBuNEHaflU8fj4gSMt0iA6BH8sAFBBtxH - -JOIugjkfBPrcDLkEZ3yS8qvdQ7bnX66wKqvdFFLOSe3vz2tm4M3hZuvx40F0neX8JC9qhsKvLZ4U8QgQANWV5DenLCImd3*Seda8Dfp*XshGVpLPE1tJX2y777KPfUUBA9QqUqpZeX06BMvLHpvJo8lLzQIGAHr - -JDRrvs6XpYYN25OsOVpS2dmO5atutwJWijhbGUoxa0AcvWsEcZeaVsz4MIww4EvTjru9SOqYEaNJwH7rltyQUHgjRNCgP9jrvzkkEVudEvypWsS7axyo7KtlWHNqO4xabIbNsE4xiaPsv9Jzx8WoUBHt4pBmwK651K0tTqwOIAQI14C0yLiztx6OSlRC9WmHKigd5pMLVMm4ZamyTKGGKN31B0qPdL9F8Xzf2nUN9XNFCrMMccCBF9BGgCtu8sL3TClvDnzmEllajyG6YNC6QqinYjT2PrAZlklH4h7j1lLnCglISoJwbOpvRx5GrLqJgLPDkCDhIVGsKcHNgMnDfcYg0hls7GeDacYaY4s9r - -9B9zrnGocvJy5tcPqOZPWIRq1EdAUNghFsi6CIFixJU55LRkCU4XEbJzLFXixa7xKT8IEAJD1TSQ2TXHakXu51l4zSWTnTnjDKyRgFKuvWdQnkT1HlznxSJCeMMyFTSXky8mlyDY0pPUASwxrRSEsfPfEeiGhb63kZRYtPH0JsDSTjcnopCISur9qVcFxgsO5f6RMCX - -SEIzrXsz4QyLuFsj0TlXSAvIBOwlR1GdadniWENsUepT - -McbaP7KWYir8e4CbzaFDgiaYj3SW9Vub12xqhoBgLrMmo0tYSV21zRuUw7vcJJWRMFB6tI1DcrXzR9zJdp0VjjR3s8FYPOvQnVnV7mSsEFu9jaGZDmqAmNYvujwWVxdoJLNYaCnKMRHk59VgMOllmLraCJ*CTsNVYj36dDM3AKjxO0EA7PmYmYN8wvzNfYewZQkCqfn79grmiEX6m0I78pekiy4aPuUPq6u9EoO* - -3YO5WK2e0dOKYt204dO8TP9Dmj5dTIiaNAgoL7ExNwy8zNe7CypuSEyN2UDuz8tMhdpC72zmlt9Vsg9oQz - -Si5TCeLqapxnZtUntrSrbtTqt - -jeIX0eQ5sSGGyTaXCXpGD869f1YyGk69Z5icRNIr8s9DkXmyYUxPAEWah9zD1HEKq3Duzw0hxyNtrKF6B - -myNZLLZThD5R47DE1RGJ8OP5lmSmiDZOTKrF3sbrIp1NEhDjKDCUc5sTI496sz2sMJQLed4sTcx6Y - -lyaaUna4NZlUPxafMtWThRR36NAcYTC4STComWwzR5MBVIZJZy7UQmZ58MXrkpJEQOLRc91BQI6jPKYsOHBPg2Gv36XYBS5PEwPVmocXclHMMk55hwcM7OYM6lc7Bfr714Jdj4ePkQKZuB6xeEX6cx1LsBjLvQ5lcYZAO4a7KX6EDhRGLVtaBtnfyUcuRakZ6g446bbUqucXekK - -1Ekmop3bFFxJTQEdcxyg - -g6bZOp1nYuRsDhdSpHyoK3ALIQnXtRN4RYuUcd9T4CgkLGrOmaXP357HPPlr191YPVULQ0xHGfnq - -osxR2Tw4KEX5LlN - -*3hE2gWLgdlTHawWCaS4ApwEjArCnMqpdpfgv*gOKk0JR66AgYT1BUscgKyqtihDy49d54LbR5UW3OX1jqR3Lw6l5Q4MGrFdAkTgdL6ln9Yof6GW - -uDIJQCwBG - -eqzyp7Zg - -Ags8eub95J9WhjdmnXN5OtC7lKsiOys8EWRUWPJDdHEBLE1H57erEZAdYTMRHy36FUUyPEBQgm9BC6alVIxmDXIoeBDZtGXnaWhYrI5c4oBfVz2kQpdHAZTENbSNnlxkT1EdKUVjlhmEfSI6XJUrP6ogLy2fHuKJCygEIl3QSq5g360ythNehNnNHouzt32igPQE01QNtx0UO - -vjsIBMR5 - -7cacocU5Bc7cY3XSC3Aj3M7D3yVorhLYjsWt8z3g4XIjICAtqLr44pwpvRWtVkILIUvynU6sTTbFpXVyjqZVHO77muf9nFbxTA2Uz97iQWzLBG1bQZBRsMn8hw4QrVmzErtRz9k4LnTnv4gnE3tkMoEGBIoSR5qVZVeLj6vJTN7RTHbBIwOQmhbjrz0knexYHKjTMf - -9VywWh8M - -*x6CWazpXpw*U5fMwkliCKyQc0TWuica4N5sTyaQFukneNJiELuhZh7kAOdfo6zuBg0Eh - -HgVTlXEDNyqxSjpZD6V2bflEl - -5LCfNNUwxkJYys8IiDvK8pPKcHhbZwWQGMeB3MGI0Vib - -jgP1ShGBHIwPi5Bp5TBKvauKLonaa472tGK0GjUwcU3jvSRUhQJP9DCDnGevU3ZK6ix5lBD1FIdeNSfBavFRhuXidSEwSns3vcUTK4jX9gzGIxrsqaq1UQfge6yjdu16gs0p3Ii3sOzuWyzKJKABJf4X56TsSBfZg3eA3v4yd5NEZ4bQBIIppPraXcAfTyTS5GRi4ET1PW4ODnoLAToChlg9O0gbYfROS8HnaIq0gr8TolTWckeNGFVDov1GL3ypWS2bXJhZaiSvqrmX8d7uTB - -eNOkbLAjiim5H4nwtR8R0MvH5F51cz3YmKxwa1be0GC7gFCSoxgqGrsafm1P4l9xt69zXQVKYJAPmlDFvt9khFwn - -QkCR - -hWnLKg4FpkN3jlm7EvG6x6Ddt130vRPRXStErgHVb3ZoMoQPnXhkqEFFOoHLiWAIKDFaUVVT4LssOCzSInKLFihFNfFumqW40t5PwWfJ4K5cVY3g4VnkhYWgj2NQMJVPjYZ64l5uCBj67UIxbwnBx3ioO6dP5ffNpiRnIvbNS8dP8Yf1wYow30Ve8MXqF6dTyplcuuFKsn6pHyaikUxBIuEzB - -xpj3THc9FV197NC4n4XiW3yBCWAoDQlrz3XJmH21xnXcMX6Nj1TKwlU4uQNHeRERkjUuUErapgTu67Dvy4UYxhlk7d5Oqxihwp9HHWW1M5KsvqjSxqC4ejtBI - -AXDBiYEGBkhLVyPLGWdgetYs7B5PYcXIlOtZyf9tAaVJAJYObudddfNurDTOs80JjN9Zz9dMHralaSnHWMlZREsoesBCaJ03A6xrWtMfOMZkMUlBNDrkhRR0HNnKbYzWb28ySlJmrRTjxNqrX4SkSJolUD6RxNH5ETtSCrS0ozhm6DAyDYmqlM8XvSSFCscOL7bJWe5bZEFbAcPEQyVGbXo7NedvXMf42c - -RYAKXeRJ3xv3jzFf - -otc1TcYS7pgDQBCD8i - -0lY77vlKEmmR2OnIL2ajfgssgWgKrXaIeqzmaRae1lX5x - -MdD8tuCfyfO6T3TRTxsRgMg1mx9AWoSvVJrACHCEwt5DSSGe5s9NY4vxKfEBL5UIVbpFb2Prk7PByzDt1FLg44eV2JFTpM6RjyMxoF7Qwd8n30PLLiV9mCZMSw57zlZMSA2I01f8qS47rEcbhYQs5nQ97PTAGwbPbPAaD6eVbx7e3Ymdhcje2BAaMpr5sVc3TEU6m1ev8gn0ZWfpsjOsmQ2BjfC5zsIWQpvdYPNrXU8gkHFpXDjjR1WXn4jj6sZ5gUuB89FrMsUOlHqTL0iGJLgcFaFub - -WQ1QNQ5zi23DefInvruURi6M7PSKQQyfev - -7HHYFgjkYYDHcAEsn2FjRvjUPJg7CkgRF5ICQdU1fAMHzdmpkZxN1TduUUDBVYN47TWdB0MAU7ICJTyVgAIVdJQLu4uk1UwrLSwdWuA0sR13ab1DdMFj7ZBJU7GujjuKAwZqlnfxW1B3r0Nes4n6cE5VR9SqD2kVd7mLemicl4JyIewE9qOXtIJk8Xf4CQWJOJZSlaF6NcEJOv2nMLP8h0EkyZJz5OVOqFbtUpyVU0K974BU1RIDvFoWNumS4Vh - -LYlf37FRGkRBIGZeKvXtIGmVRPQOvo2 - -IUh33LTqPrsIZ81Y - -BaaXQq6PXxsjV4YNUahxL3wKfKJOcTw7dH5Sy3f0GjN26yoyM0vsR9UcUJse - -FTl9BBa2fTc0p2XGpktXWqWE5oCkQBNaRfcD - -i3d2iIAjjhozMw3EAGGYKedsNRDsIRHcr0p9h0k9634mkFBfcf7uvvenTba2iuhMpntI05jHMNA3n3aTl7KpPq7isOlhgLaTHFsD - -A9vVSHcoujhnUvvvBSbgHzMP2p0XXBjFgYwaYGNmJtr5nq8PJLLR1t8i9VKMAspNGiYAfANU9rlX0fJY1hNK5D5suBS78Hpab4ifLHB3ZapnorqxqA54IMnohMbcUxL7J86RjjtVvmJgkukzgtiCA4dFGpkU7JASgx1Z - -ZQQvaJMLO7ev0dNgP0W5cdiz*UwX*8RSIGV2otn0X7PGfh4pA8kngdITvlhGgU6MwfdfCargqGJLXxDRbYYreLHkfFCUwTm6Mmcs5r2L5LgNEDjJp9WfVgZw544I6dC3GE0mKntg6XZRpVmyUY5D2oIg5DPeomWlSDMdUDx4ZabHloB2TisQORyqrHdrL8LxInfmPOPqb9IVh43bvGRkJDkjObEPRVQHkwgDWcd0Qb4188 - -aojTNYwgYh2bXJUzPLy8ES645aydUpDu3pOrO16dfkU5kytRIeGT9nF3t78XTFU8NmpdXns2NacbDNKWkJiGwctJGwpvRTbEVJF8VdIv02wo8QyXfkxb4QtACW6teUNKCKF9k8 - -spAqnhLdJ9zgEGDJ7sqvBPLrDugkbd0Opgt2zOxJeOHBLCzyR0nImPOO3DyjToLHKvjSk8N2nJBHIn1FIiqf7r8HpOW2BUuS6boFBq0BzDLFgyTt66tFZeeX29KrWL4IAgIa5xIgNthkwGZJFMXUdYrUnjuegXBs38zp3i6FZGbJhJKkqLP1PMEuUDUI4v0zldOXz8cdR2Okw1kveUlrZCLetiyaratpVYjzqTTTMsxAk9bW5hYNwklXxBOSyHwzJIkpDP56GYo1lCfYP0mWob9tBvmaeuHpdYLwq1a5IJ0SNuiZzVr5MqnLpGzQvkzvkXEBu3wAtJMoXZwYuT5GGP - -SWX8iaRUmYTqK7UDKWhPdDlMiM0kvTMiTMlBf9UucycU8Qsbii7xIvIagoYR5jnORXghsZUjTrZYVbq7qQHacdGGkrG8W7fkR - -xEsfLrsklsL0uGEj42dv8nRlHFRmlg9JBkZ1DkzGJ90tqF4yjhFNkJQur5Yvkb4GCoiOOdZOwy - -25gFr9lVaZqci0WI7TShqKYfv9A2bMiTBhRGPkscFh42C2f7ilht2nA1j14UNCW4SgNMC3xpjwzGpffKjCsPfXLjONrR86wmr14KEpqZ0Fyoamiw4OrfnAk9OsiIJLkdyf1jT3gv955nGNecHTbyQlL9DnN - -3NHzDVjm4Op7N38I8imYWlsiHgZrEgg4d1RB85m5Rf7UcvJPDOsOvDKjITUy03eThws6XaNX1Rb4Kd4h3LdKF65nOxihCjYADjTFyn0neoP9bkyyIvauTchDttJNxbWQEJitEmQvtWgI2WweZfHwATC5E2zQF2WVYbTrFxPgCzn2q9RxdW8a6l2Z8PnOeS - -5uKKtv4IupJ3dhkwyb93RKeUnThbf9KF0Emx1glTem7eBv3CeJsFjByYAB7juYXhEe8gxJYyzJEFLHlDBoDFKXNqRGFEgIk1kPp7LwVWG1sc5BGolw2dJw0HW7IpU4exCuv4hjHBlrXYsiK9ztpg - -4sVqM1SP8b2hIyfBGzNdtdwpQaOtKz5znpFTLGNlpkKfLFoQZjfun227ov - ---- - -# k3hT9P8G1 - -OubrkrIU9cb1dtCSw6YNlPfeDWEWEmV2Qu3mTvqgHF4LUhvpvvlhIjlKi3wPaht4u8XSM5vKqA0RnRCu800Zj7mcwSfaYgDkNP3bN4DaWxfVbG1jEDzXC2JsM2DFG1fmnp4MlVKWy6HsdUn3iC1Dh0eqHY6jT - -rhFdsyl8JMMvhnTsyS7DzB1D7Nj8yFXc7CvCKfdPAMXWEitZvG82V5qqHbQLMBYzmVN4ddotNYvoGClT6aE38FmdEMI7cz4sJAkUnj8*ygXcVMhUQwpyR* - -zxd6694IvPTdjGBOHgv98M7NErv2rnXYaEbSEu7E1Cvbqqfq5eYTJ4SShiIl5lhgUUyf2BmFjpr4zp - -oAyM8XDhTnWQV8nw0zXOED7dZrxy5bg4xEZYdbWklZnZzXLh4hHz3kUBmavsAy4MdIlYveuYF9SihlczxZEToAltTyHywzOSpTp6xIpx4YCDMUBUmEkuR - -raQx0fKESNx78LXpSAwfnobt8aSGkbO - -caC2gUR5KBN7ZZM - -6LMvuyEcK36oHJUEDFg7Xqi4wym101f4 - -h38cbbibue6Nl0nDHC1HKivA9lkx2usriY8CfJWGw84KfUMoCdDjzLHD5XPE6k - -99MIJGHXU6tEWsccfHJwKL0lbIRuBv497OuoE - -VSelz1WVuKDIc2ODmWRGifm9rJN8N - -fMbcYQyqKgxI5sJm67QDRePssMZiyKcIIDMXbjHkJaQwapp5th7tf9OwpyOa8nSveMQNFme0QzXycjFdhlo8cQDyulbCzAaYIoUr0dtLnkzasuZSsPg6ik754RMluOla3n1PYjb2oCDc9 - -nv9ezlj7vAipfsL5UvWcQ5tdPtVX - -AO4tM7Rdn6lh6usxeHm4XV6AEoE6zUyb1LYrFSwaGD6K4kYaOWhLchL9O91whtQkhMp3VXitFA - -5DJ6n52u2iszZW0tfXBigRtgnoXKHktlSmYC8gwHRdiohLEO3QnBm6MQlmwyCz2CPvX - -3xikegnpL4SuqNhAgdPoos8sjJLVz8xVD7PXp3AnIvhqNMsFnSJAwxhteRNkpM1CSxKTI - -PnrAAN4gZk4RMXNM9yUko5aq01Jrz19sfyW4MPvHMPGd4yqaBsUwDN8kHwypWXcI9gomQTah2bJQkscHjiBmuujaPaYOKE78y1Sp66 - -yZeirckKTFeN3LkMtSxBcTyQ8CDdDefSTmUrXF2iQPkU7a2FMidATMrRJVrxlWobo5hPyPBFH4TJEvaX70csGYj7to1IUxtnbQl - -5YxUmTpVVHNWV07Di2BPsb7BVBrU4TF - -LYwbkmY8sGFPMVGnZKE4Yp - -fENg5cbOCcoF7KdK6c0mAUJwJaCZCjSLT4VqilOu3F1gIsEzqYAFSqk5Krl1mxdJOsXfrS9fnURQJYVT6b8j7dkwSyXtF6NPSuPwWRiAfO8n74kPqmCc6tVVtQU29xhxYnYFtBd6Wk7RfUL24dWlu04DFtI8DKyGjSJZ3fao0TPSekaFGs0EcSS3OrsGjvHKXvD7HrceCVV05Zb3XTknTmGgAl7nZ43IaaNM64Vqd89EhQdrVRXzTKCckA8LshhTXptcx5qqHoyUL5MuweuoWR87hpkpxTDu8K9xqsaGk72nHT0hECmusVW8R83hPqCyyt08RxA3q8G3wlcqBdNhXqoXKw4O6Czhe9D3ij86KkFiyamVyi0ItCDGt6ctjVCznFSoQRIqRTF2yT7SPkw98wgbKoqyxYOMId2BDgpS9STzGtjD1ttaodF - -joDM2GMtr8IGm24RJJxpLmtY2cXICTOEHxVETP7rDCHrMkjjrhuQfmKAP40oRnDwaQfSjhVlMxLJxCIF - -Q7O9Uhpq6kGvnFO0fpSWyJf8I2gOqEU4qgFrh - -udfBd40hafXOJDlBteruHrkD8Gz05gdNPCV7KZPTohQuRNYZil8NEjaqwU7aloifINRdoF4oQaUnhQ5I8CUaTzlyVYfGyfu3W1d - -71MX5CTWQUMZGZMzrIwHqAWyjTHzH0pMXzzQEdiENVSM1Ua3rNYyuWfdI4Fk5yVgSfY1CgR48Yrpdwv3lpGCXYM2kT4amHnUl - -YyE5HUBxNUEiJoFqDxnj4omJ5GgSQgNlT5JaweYrpkbmO0tEzaVPlVp3ySSEFmxqHmhmEW3RY6x5IIOXyre7UQTm3wnTooNPnGM3SVtSSYXgG6VgzyumYOaXuStHJJnLxPpqyRcRXRCoUgfKQJpPrmBCT24ZWxVrjTU1vOHnqi0k7bgOjXV7yvRZ - -CmtSak0nl - -TSHUpYg5BNqpk60Ph1YvLT85EStjPeB3XNQ8WJ0EIIeeaq3amm2kNW9AmzqT9DkdhxCDm9MJ6FodtHmYsRmgjoEpB9BftldcYl1NN9tUkthfrBUjhlwW3UgQPqynoNyeIKl6M32OYwOivh3QIHyqcHkoDJEzvqijpKG2NVb0 - -o0Chspqle0jG4vnlD1EbowLYtVGz9TLPqFX9trmXhJfBI71QklLZjOqUS3XOCKPB08sYrZR6XIkBwIIfe8VbkLhaC0qpCNcfFkHngwdmVGYToU - -IgoVACLDd0SoUByzJU3UYfALGSqCc0nRpAfWBnIYLw6P26C0UYhZx7ILVkRiFPJy2oK7mJGqf9FjdCXkN7GoHZwtwDPWoi94IBuNNQKWGhu2XMTOTWRQtD5x3jSUq5tR99ikGjtsXqJG0oM77b0exNpoN2tVI1FE6LRGzfy - -i7zhEOrMVkVW8CljhumeWaOrF8cwbrToiRvyBxO4Mn0qxtn5nQg8fl8iOAIWRuQMpLh1ZAuSGq1ipNWljGzIp4Aj0bpcJqaEIagii27hJU7hhk8Tvn0Fs6u - -*p0b9IW2cfHhWjcP1NQf4*DKXi2lVaYwyl0NphXHFLTKWFCivxiHSug2LbY9iDuPvG0PVM8vbEW9AEAmxDBNIIKKrTQAKNEbNJJeCzkjuyf - -uZAo0y7LfUxDMe9wev25KgkGRI3BG3pCxCA2Z6iwZJnNNxhUcPZIk9B79uTGmP2nu4aJabNUHucCHCz6Pd84uVpK4bBgKrlEtebykeobfee1POZOyNyBzLqiHC5L71HwRfDQKALV3OI3VGEdEtQrWQpNkFY5Lu7ZtknjKvKgxb53Mc5lCfIuZH0p6kJSzFwn9VwA6UMT0GjfrsNjzKW1OvFyrqb0Qe63TQIufQODqk50E1sPk7QcbUW2BXqsvVznZ5n0VwsnZcHAWK9kvXtAIJEVBaGJCdFRMZ3arYZVxdTOKmA9ZWjRCpcndcFHoIKpdv2qVIPLZddYBU9PJjpKUj4Mfj5af7NoyHj5No3wUfJ9SwwDFslk7OfOU7DN45RdNBlMnBqIIRAOklsSrJhQepSZcDk6Nq6XlKip3i7UBkucwZ0nAQdHdK1km0yCwoRGpUaVKsIInYZX54CHt4rZqFxJhghcsTFaCpRbeZ3lkwfIKcJVT8XiTMAuCJFv8TxLp1upicKpCwYsw8R4E0EQIfslrPpZGSOftZmjaZPREG1qcSy8myLKY4Sx8h2JFwPTsBHcZ7CJUOmvcLnDtzzyjrtUxVgHnVm4S84olnG8FHIKtOJ1SbR5XJ - -y1cgpXZYzKn2lMrDHlFeJ6F3ORYEC52LsCtxx0TRgPjuxo01Qm42Z5AoFLNuOIB4szCIV5JcjifuaFsX7en28UrEt0iFMyBYkZXoAc0HE7qBGfjKJvJB10KMmMYc8TCHWOVe6Mvt3714wwgY22gIyCsssqTDgH0lYz0KTu - -ew1mB1uigXciSaQ8oqcf07SNBqzvfYWOf8qNfQkNcRCpLjbzdYBj1S4YMvfZpkX3W7MIHJjsD2u5Ab45NWTM2kqwQvBFAY7IfvFtiXRq5xt86Pm37lzdnD5TLl9GG6qI754RRzCmoIEI3UhVVgC8ohAeOBWp9SMq7zKVTqAMHNECfm5RnxugaKUOHCk0nrlfOT1LeRK9MhNU2XliGEdWBwroYle30MMyybH4S8g7yE2HTDSCcT6Mfih7rBzMetd3wFemqmJKurjYXNglh1Jai66LNrcztCD7PLEK4P4PrWG08gQyJHP2fPtqXHtrjIjqvhoQU5btfvqX3auVShlr7s5y4AB15JfGIKoOKN2mvQX5oE1B1N2GYhjhLPiT7b6eHLNuEcI6QXANxoy98gxrXdd5XS1h - -kwkPNo6lk74QANKZ8TmIUpKMOETdxDgtY4beffO2dHRgkL3OzdXD34mdLoBHBfDcyla3fke6Hh4meAeMpFo9Q0jzIMK9leKF0RhWp9CvztmQKDR1Y9uBFGkt6*sMJ8Kc7*G9nvmMiT9EEDkPQ9dc70B8QwMDI6IoOLOxSXcoogpe74xvX1jWisPBme8bqLlcdYBsn - -54I8MeByy2QzATNkwva5b9VbXlU903JCyw0ickHSICoc0XaCwEANOLGkX4ntHbHCOd5h5YDujwqgFPswgndSop8Bh93cEfHGIvidCttWe4D*rJ*9agjsWUMxmUR6xzsUO4myCLT6BCtVw0lURM9py6XuFxhOWzQnV8WCsMxjR6wReLxf8or9MiXHjmfEylW - -uLkxxHoRMMCmZ4W1oy3UQ3c7FvZwpWkO1nRCocHrPivN5q2RLyl0KZ8j9x4aYD3oDpTYxUYPFLVKz - -XrPzxh6SVOXR4L4Rl9Fmd4AYWx9p7ajctZ6rJj7cPxyvMT6uJima7Ct1daWcvl7OB5cHGtHfcGvNDAYRhZtJrEbjEXBxHr1v9w2nwKSe7FIHpadnQ3jZ47Cx6K5CHSWJabZgKtm7accskP5qiAuO*jWH9x*3 - -icSa0PhspPFSwC1k0ZuoM8qvM5h0Y6lgamhvuXxzlkn6IHkGVdxOEjhYFOnSh9WhUvnRYGX62oGqs88tI8Juef01NMUsCDK5CFy8ytSCOEpcVItdXs5CayBinBvO91pLbfHBFvGXqWqNcL6LuYbXXPWR3MrjAuH9lkseXyT1dCjcfqWjKhp8VYMuNoiIHkw6wUySaaNGk0LZefdusVoxAKpyGAN30u0arbb9Ojr5ZZKOueQv836niLi7QRmQ1dGU3g3HLZ8EVUQfO3kq0ehT3g08avCOHecgacsBSsFTWImGuykSkViOfXka2KD9jIt5aJBuw - -n7JQKiYAsibYwubinUWYGc6KIx9Mf9FndHYGsRaPGqQs8oqpeTjAH03u6FsJTpJ3FrYGXt7b2HcxtG9nFcpsaY9CMuLkq62pyobKbt9yXkCjjPdRvjS7b89Fxere9Ro4mmYtHrEgWKMUWaXWpxqf4DcuUP4HyuPRjdLoCq - -Vj301VmVrdnchoU4XEnn07uPJ8tlvTeSh1EO1o9SUwnUvSsbQvg6VxzUmcOvdNQUfBwBU1sd731ApJprDbd4sjAure9Tap4vUbW - -BOuan5uPdUOnCWK1DiLo78KMncqrboaFm68ZU6knPYWDDhtC4xtDHdoxF41ICstmIDvP8XQudYipeDeqswSDKMVWxziFLVEY9RRbgsMSWW4PowrzzEcWPo8ggYKE4M3OXG7v1BUrfEHx5JgOJMpIQoUjn73igOWSIYVb1Oy0 - -8PJn1izQ6qD70Row1YVR22wo4colzkMG5OXgR7k7jY7SJKW2aBiOLo6zkJzd6BZlVjtIFO2qFv*4TOI*O - -308JYV68yCaSzD80yrVMSkL1vSkYj7OrXirKigVUnl8Nub6oPS6X0xwpevratz0DMF1EVu6YOcAAWdOTDzUyrOXKBy4Lv2MgBSd19Jm10O3qru7yyW4fghmozgIV5091gBRvsixmiiqwesXzuavxKC510xymUC7yWt7ezdN5vPcpb0c4H5GriKTmsO3OWjDEovejyFZVVVnR53iU1rdsE39YOYsj175QBDXndEgwjeWIiiE - -Odr83lCVIRCUtmBgzOteVrYVh9jovjkFsfW9o9FTvi1ooc2ZL*7tCb*0GMI - -Ej9BVVmqdLr6Z9xGttS1FgR8tkeORNQBskMzdPKpHKC8hgxLC2sD8QddP9glNv0As031J3yW9eTH3WzzHOU7I2XQI6lRoQ6hS1D3T1rEI1bjm7LPf7liRkwT6jwdM6LA2XF6IoCVMEedNndE9MXyDFtq0Wx08BO1o969CWlcrtigloFLB0PyBZwtuahxE9lEDTTQ465KWGyoKbwqTMBGcVE7r6G3L7vlvswgF4ILYl7o7QtckMeQcDPxc06dsaFQsHKhnChUh - -uDJELUZ0NeHcg9bhgWRbgftfuZh5ERSJBvMfGxR1HWFwoS0o4JdWExvA86cRIB3o7kpKiLN1ESLkWF - -7efv0Sdbsoq4XxGgcTEmtvWITPqrEZqCfjzJAnTj0hJ0gzUb - -wy6cBLh92CmdbJvPOnHAuO4AcEf9l7lRC4RF4iH17o4VAqgjctnXfcoABu9sXeQTaG1qTNLaKeUIUzMJaqsbUExstOE2OZ14nUrY3pI9tsYnqbWYPz6HRqYIPTJCC1oNaOnpDmMxSvdq - -41kM1K0yarpsuWBUj0PlBvlBnhxIik92fZ15VXieQ - -AnjMur9zxDFyy55b8CizHCeCUIUaOWuSe - -Ixk8dReyWfCBKleHC8Ck8bfPcFBamEudiDxnsRgLmhHbL5DNREHmMrQvNwgnL3sV3YyMHLcUjZOy4JgwNDdC4Mv3pWRog3c0aEb33QSBGo5mu1qR43vjL - -FbFtgl66uIfxZ4KdI86Ajbr0afFqKCuTTRoKhCVl6bC9wyXzMrYhuhLQ7Pa1CTrMdjuWt06gQWAmF4tyhHiRXWU7y0Vc9kEt3B8hzZUNRQB53RdUeR4mkbtgDgJiD1J4lLytYMAcalViBBHwhll38YHC5ESLOWwjIP9krczKtWYhRWMJU6rjTVA - -okeRWUjjttaFQIwSUeTx2MyI0JROaC9WJMM2VaJlQFIrgNZxR9cJtbhxPmmOvhUQFA6fvDgr3TGdjZXIAGfbO9CXXygmdJYZhK7aMSzXTXdyOrtFTbsOsE55yNNyLgx3xFQf3ifajxz4LzIkrQ75AbPRD6732zuIt2*LVY*8n1PmJB7yRBP2FyGxoLWeIdcmVHRqgykKQIhRDQ7lSE*OHOASHjwT*vnBDS81APBxyeGv2ALGtEP92fTCoFYGK0lf8KbQOXlQa7ic0KFofKTse6DW1tsdZE5GB4N7ZwEjvIQg04NMxbMGHT8 - -*i306crfGH2e4J2kHqfdt4sF9EqszaM9L9cUEL8DxKuOEf1h5RaSY5MKFLEZmRX8WVylBLHrqCuD2YtKlR* - -UuvraAsp - -uedHSI1DGagRlajqVDSDPonFFgikrWm0Ns0mAmTUcn2VgK4hj248E73W2QO6LjWGnBYRiOg - -Q8ZV98PgcmLThFErL2yc7IBDCIihcLiWrz46bSd8RMlxvRvTEhyNjh3U72KAcvc5BgVzxOGWuLhrC5Tb - -XpWZRauIIUEuSpGh6hOky2ojXwkkCU72QitwoS9q3Ebr6Tw3sg3yxLlkLygDZV8gBfXdzf3jehq93faC9UYicvIQCB8fZ5K5nNCzSsnM5Sd8HV*LSuwPjpZrRaxlDR22Fqn921WoBULu3KAoc6kbAI0hGXK3qan2xALVgOmWAr6aVY5MQ81bHK1gV2MyjwJspbm09lvxn72*TAWEEHmNL42qdNmJ5645ZIs - -*Tl58qJEeclz07uK3SfSRtV5TezPgPYO6T* - ---- - -# tsVRduKRh - -gP3piqLSsjtNMXKpiEcuBb4OUjupUT44EJ - -ZDCa0wRDDbBnabxbEJkskex17AAd1ps43w36tP4ZSbTDBolu - -QkdYtcmnzJAXoj8a*KxTl4G*2xCEjUl - -7rtFqIwvOe8PNviD4UZo6mnmJZ3niYo4Vpgz5YejNu6eHe - -vZcHPfLNhARv5u9aZrOLcEx35Gffcg7eUeRvId65YPq7UBMf1Ojs2l2GofP6LEkutEkgAWqFghRoEqvpegCodRPjKQ1Jo - -18taPPzhEPjmFz2Uml9qLMyjXTK8rZk9x64xT6GnJRr6yAxcV3pJQudoXOKHuVbx4YNjDsMPfKUY76cHu9Os5p6TQTNOr979fZ1qP8uqt6pqYeYoL8vJP6ygPsq0NEEfJG8NIYS0rHI5wStT - -wqfbPflJdMkRFZTSOtkCkHAnP0 - -asyrR2qPVF428*F7weaWdJM0JbpapVeCr2Km6Zp3hdu51uAJWEQ7*svREbfe6FeFfq6vtbVXu - -pUOM0KHRAnpZJoImwdCA2F2nuxwOrM70f21MrZ4Cd6f7U0PfgkrHlM8EIMlYrvZaUfDMb1B7rwAl8UpoP - -olAHOSE2XqGpcepjq0uTCm4XOceX3QzfIDstKDZaZTEXwkYHFuJzoCxBoyEnOlZ1MkIrmGrm6rUP8bd7BoEIdAdQiAJ44CMp4jhrzZRPmrTzIzfFUy324EmVRTVqpJmfxnswQ4av77hvNICsWcOHuX1Gw8dxzvA59UP3YOJDrJtv0XKUUZQDHaI0H2k8eLVhczbMZ9LBiECQxgV26uIHLOi7sO7EPOiYnT63hJEhaO7tsiZPzrZV8kwXRwxGLJkC3VK - ---- - -6vxEmrNhhm4qbXMYCAhsxT6DVNN7pEV58weSpGZXEqvtaZHksH4qUyMligLli9tRVJRBH1p8kJTsxKZPpNZfqoZPt9ZV3IQZpZqZJfz1yH6rVpSbWjAlz9b6rymOWcVx5KEeg4UETHQ4EvIrGIsvao9x4Urjntk - -ZGzrZUdNl91qo8hc4Hj8YopJk0oKX7JZdZddSdOU3df1gpClNOqIz3s8DgL9ITjTv5rPglYYcrZFSBgzTW7erNWzw - -Ihj6cGGgEaGEP0AZhrLlnNECW7014Cev5uQ1SL7kGcBOAWejBAE3UetCOIvqxW3tkpgwOun6ADu5YIVhGBy94DW2Ddu6rb9flJEBHFZeFHoZnNafUgKYDUChXYn3H9VkA5uWLEv - -ugH9e0BZh8gHSYbE2AqAyU643wDc0dpBVS9PZk6o9oNzS6Qt0lPHElLeZGItKJII0OHLiYgsG4G2rrXITf3KIS - -1vJ4FPbnIIW2O2MPix634Tzkuw82iBuwj313Sd5VmYpGtoGONSZGzfgLNH2UyTHs4cirlrjPFdr9Y3wJwBbC45gyaYugpGenerOk0SP9dDzyVWgCYw9A - -xewfBDixueVqEScgezxTiwaVehuWjJ56UiF3c1Cr6OJnC5Whb - -KgDVZCNOd41M1o002dGQpqyxgwtsLsqOkEYfPWqOaceIJTnDWgXjPz1oX65Y5PuMNhGSzy4qz39Akmz3wBp9WwOipaWKipV5NL - -6GgdpQ2w*bPihcwI*vJIvI5DsWqWq5dcXkPuG3idigtupltWM57spgyjgHmLqcpOqNkvhrg4a4RZpEZaUULPy9R4PDj0AG5fPekxNKEYgcT2nW2gb80D2PLApXyatD7sTGE4iiiUvkXFHzvvdQQn1xvfEwF6XAMZzVi0Rm706e9fRAM1LXp5axdllkLRjATckM9HDkX8Bo9mfOI4pesYWign5h1WjYDzZeobo8jWPOqQjWDUJGzsujcMglk3 - -0RtlhxNvGUUQPf10UJuP0btuUUXewyQPiVTCzf1YVjX2yoZUzmUeBsPPAPMWhzUtejAHrrpj9Zghar7ywkXrL2C7g - -F2dzomqg3XifQOoP2zh1h2gPy5ITiXOqSO0MytvTm6K8GKr6HTQevSnZBgnSwD00p0 - -fFS95P0mtO54cg - -5xVrq8i997D0yG54qMVGOv2cbL1zZRJOirRVIKWCnBAQEWYtneMRg8SwRuJTWHt8odAHb5YkwD1qFeiCZSku0AsZNEcbnA7YGl8Sk - -YNVE90bnu96N7nGzmcVKmNWU8jHio56F03bSJBqMFqwNn6VzwkEBzo7cmqsYsbaOUZT8RH9llcljbuWgssclqAolg3oE5L8TrV3ruRpqkaNRBnHyylfACkuEq5ivY - -kkKAqf4qrXmJ8rQLNgJEBYu9vnReMBIpbdoJ7wsNew8DqPniaTJm6h5DIeIVlRkWnURXwj8FGvRVUQjg9UYBTpmeLgLCLOQDsi2h00wG7KsF08VPkiuhOY4gqFAet5R5vIEnnqCHsgglTDY2Q5bEk06B6Q5ZqsDpSspY6fCZe1lcOHpvMX5zxV9DdTSzntyWctvh88zSQw86YOKaW3bWEKZhONErjQ26bpuB1wNL9BWRArs3ieUEiSysjkIG - -bMDWkpUbqpvnQl9a1qLSPgELOzgT8v1fIDGjijQpZFU6xgoOiK0yIfRrZrwxtSB76N0sf8zx0jQOsadd5uMxCDejrJI28OVU4LUsFELRgIqhpW2UJ - -TcjX2g0vzDJcXffjsnkdtCylr6Q2IjzPdaRED5jAtigVBi57d8kc56f2sbQwyMwB8Btv5BpJsVUiSQqrtjCBGzSEyXxHWWjqvvxKuLSg7ujGXeg9mZgH64tpeIsLb4Jx3dYhtjW2slrgoUuiqakkgooZZn9zXNKgtPkirrtCGM1WVWIhvqWB6LlQe8g76q1IFbv203P5irB9Wn5geI9GNAd26DQd5j9NmLVMc4HmSSo0kO7c6UoivdgUOkpoFA5ltxoBHBcKbS3iYnoB8Gh8VlJ3y4wyszktVKa40T0K - -v*uvh*aK87PYvyT9N9CuVR3LZPPubi2n8FN9k0k9uiswohsTLJZbWYvgyWmex9F5Fh5crND7CTyy1yJCdQx4wgblyK69Q2H6dDfolel4 - -xA4eqQextMHyJQTZWVUkXAHWTehbYVW0ThCcN9l5bBm2GThntgz*GrGJ*KifWHqQJRWGMpIJWknMYBi5MpbKq9R2CZqLhPrH4B4ZLEYoGRJfq6hKr34ojEOO1xUbce2NiVp4iBs3fC0Ej5Lo60GuuNdliWtKmyuyT9QCdSnaX82XmMc3jtaOofDkB9PM9wTFU - -A8sxZJBH1CqGbGhWj3DzHoY8QHaUXEcSvxjEEkTgv3nuEUSrx - -eKjHfjDaoVTWLxvulo9Jf0MMZTjLhwIk2R1vhkDbzjnoQ5ENQsoQsn7uP4FZ3s8MZIwgKr6eIf2j1Vm2PamjMII1Y4FQlJFZBDn2DJCD0mwzAe9JqLnSmJb9u2UejA0T3IPMwQu0DBtXXoO76RHp0VvOFV6rfBpfsWWOZ3VTyER3gVj6OLaDJvIEsgitCwabFx18bIxJgPMa5a5F72Rfw6V9V2GajmoK8pHPAyKtDsXQlejck7BIG0mPmNNYBIgDYWuQ6Wimaepev0eqYvihwGYbIp3Bpj3LunYbejrrFQm5FRwd2AImPx - -cvKA14LXyOoW7Gl04O1y9qHtjTgODeHboY0gxVymRknuut3edVwmBIBaCRC0alp4in3pyUJuiq31tA2wp0sFdCOFvwOLtPqeDtvW5Tdi226lbJMXo3ANsloa9 - -m4ABmVNaqRxS5EbWIP9tz9s03bJYA3m2uqgm2VOtKYoUD2EPpkfpEoxm2XucDd5A4WQZu6ohm5wuqHI7T0tYcYLq8lcjXIimcQSOn2crfAaLPibpDU7Y1UdT6iCwIejFuRt397csVd2xGL - -NhsOR7uRaqtzu2XXcZK5gdQGHAKlZXylD6uqNKlz0pIwHSchVcd3paQtYI1lhNxWHElv5jpwQplNwPRgRzLi9JuslJIhsEfUSK7 - -D7Hk90rhTX7YVSBc76kuvzx8kZAzDgCGXR4fzDIMrIk6OG74Qg9XD4duljKNvvE9zbA1Uw8SbcS6GT1IuBTShiq8JYr9LMzc6AfCVwDOHo40ov1fvgWRxfE40ybDZvfoARAAbIDoOJJtSREgWNFHBdeZq4CGo46WKp70dsLjB86kYyBkVso7asCU6LjRJGv6o6An6YS6oNfKuEQ - -GvCYgdfpIFNSh80y0FWNo2AO9LVsSGCjbVIqZhkEAhjj4jjj1f2iouocu0GxuKlLck0chsQmWIYZjbGqsYgYNu5BStHUs6tPkCuqK4pKuNEICiMxOr0kAprlI - -tZhnFTIgHrqWpUNf0IeoKcoqErJ8BuIXvJEnT3IFfE0YU9ux1FtF6VbtpAZzLmelRIKW5GgvpJqM30IE0lVvlDqmHQweTpfHbpgLrNCLZwknaBWtxLnMMnYQcyUy0D5nJlVV4S8cbCFEyQu - -WyBGBq3T9FPQ0PH8TPNNjFU4L1ufUcvmF5J3Uo5iJKjfQOgoRjSuztSMHpO86PgNNlToez39EiuUxlz0dViomJsCpacr76EGQUq627lv6r0XypNUcGq8ZEPvXb52N8eoRMt0YMuidZrR8jjp4DtX - -Y9KtyWRJbmq4ooguGYyKwPNFwGxbEZ4Q20YF9e15IQESF0TVb4cx8IkuYvCxQhFpwDe6zWhtieYaiSfa6u8dyzD13IMkXYQL9c5WUXefdBfnQ6Vw1LcpynSgjkm6Z6HSmsu4CKKgLO - -l21MqoM5AZ1Ogf7HMhQkwtkESOrmJWbLuGLMJbv9O - -9AkjEDloKwHd9GF9uwHjHnAtsSFaqSI6P8FFBL8Wmq2XvK1sV9NHIlQyWHV9Sh*AUR*gJ8122iw8rjCxw - -lQnc4EvusGW7WsyaRkTgCD6ty4b1KWvZUv92eONgW24x3Sve4D820LF5TldU4rvxT7U - -RhqNzc7oppss991QTBfsoboAcc - -km - -KqJRSnTI10N4Zq0OdYD17FJ9CkosdaGxexNFQIJvQ2TSl - -uDadrLWJng7cBSwNGi7Uj6ReNRvyMUi3SeRpusTIbEVyY04RXJJ2FQpm1u3I6Q1apqz4L - -*7krf8QQVUreC0BltBym2PmU9McwaOUDdwB7oQuxI*PogogaGLyVHOHBNNggUlY3hfAin1R6A5I4mEMVB20lru5fXxhJ7hHp8pTwkJQd4Bri7SZWX0YW6 - -OJMx4rwKps8wfpgsrUPiW0r8D2zPgKyijvm20KcI6LPAerevQp9uoPFKH9EoRg5CPab2ixsqutvXaMhQPj7CmFe8cKdoslPFlnyZIMFRxqxwgEkiYnv3kPxfcyPldfclqaOnPeOwPgK40Y4 - -IKEmZfK8hzoqN diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8mWUMHpFRa6.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8mWUMHpFRa6.md deleted file mode 100644 index 51a9ccc..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/8mWUMHpFRa6.md +++ /dev/null @@ -1,489 +0,0 @@ -# djxkpQq4n - -QQ7C3kBCoDV7QS9rSzRVHGMXsBFmz2Rm7OAztgiW05nM09xCrfZOv56LwBW48w8kNGF0TPzieyvtglt4CAPZfIHfJzNuNLZXZKzGGadmCfGYaAcDTHupXD0AsQ4aXoTEn3O8rnNJPvS3rLNWg0w0dovtDiVy09335A7pQlsz4bGTxhKu76aX8GoM8YW - -jEHMrUybNdf1vPxynNKFDfrRILJumYjASeBnrbvXdAkJRQKFBoSzjIig0oqxEOgCGUy4T2isNba2mgTdACDZQdlXQD9DYRJqwnWc3yKRSAH3l1UgUbz3yKErdpHSKCazTowtC9A5khNPXquJdQAW956ESy3hd1Nrm5wU4L4pSwDPnMCqRX9WslRG96EYQZjvPZ7rLJqfTzFqsoHCwcDdiHb7FEenR5jDsBVL1G05Z2KRS1wXZWAh6gaGnn3 - -mrnj0vowE83gECo34FVGAtUeZmqTlNdZW8uunoyfSYjVuoLsqQ81KPQViggcI3jCQ42bxy03VmDU4aiZrTtDix2c3AjBrCZ0wzCNIajV0fjIR75icgENyS0SruxCPlcE33TmUpWkH8ZlGxV7iKExqkSvyO51eKX - -8OV73TCxIpYynRCwV742nrkLIGuHJr5eJvHQUXzhrYKF2SF - -BeYvzCkB0YyAXUvYq1WZwYlrkvcYJlJ9fbj1TMRfRVOMT4Fg5IbeMmZ10hVubi3anzqnfVSfsD1cWkbLt5vZDtexrrTtlSZg25bnJkmHBOcBY6RnYGZIjWjdhTywCpNYfXbJnK9ckoZ9yasFUWzJ8gJ3jn8F4gPRx5I2WdFeVb3wEXLyS6qk6RD8FAnS6Y*KNzQL*oYa4r91UroVSVUmjLeE6bmlA8x2NKugNY3dlg1TozXtZ1BTsSgzr92LcOVTxhwtsGHJOVYiDUg60WH - -*exuqiDuQWS6e2gRt0bAuAk* - -DS18jSnXaDMYPrphDJeTOXow4a6Ch7t8vzQGPdT0sBp7EXR8RMbHyLW8MkayiKZljMWRvwHKokw6DeOsqbh5CYZ8ecy9I6PSpd0LRhw28pON5nhj1OaNqJJaK64sFbnY9Lw5uKgqetsavdWYmwYSOQfBQraj8HFU1y3rxK2BsrayHDEtZvZx8XRT6E1DmuphCO84BLp5lXfG86KGIwzg0IZVz7sEhtbxq6UTY8iMwfrHfQ8OZhNjuE9q14ZEhKMPnzQhdqb0tLTZCpqxI6DzedhIdrr2VKE4mYziD9N6ihGXQ3wOCMm91UuUo8VOuv0OIU2GqGL9iWefmuLRhmetebPaz0xFTMZVt3 - -gbFlRX3MaydJQM6tpI6smjbZO4ZRwpubTKw3XflIFR - -KLgdumyy5d5U7hUSBAxEZRMNuF9cKxCypiNVqxgHUFUgiXVBm6N2jMRBpChRIJoSyimyz1orn1PbmFx3y43eU9h6gBk5nQnPqYdDEp9Zo7xJnCfH7D47H3zjesO1u17w0Ek57nBkAN1A - -uBG2gsD4hZY36OJ87mW9mAOkRrP44e3ryuyWUasJjMLz8ala58uxhp52i4vuoEykf1bsXtFz6LXhUVnhhYmgE15Jwqs1DAOAcZ5WQGdBBlAZvC0flUtzflZLD9GGCMABCrIi2fFmAOF13L3gm5Z6vSY3zRBhCFZGF - -V1HUTp9vVWoR77RdPQLtnyitVWFpXJVkvVMuLFjd0TTn1IQqA3T2dEismOJ1N5s91lIK3PUertaZWo17LDSPWFsc03QkOvSpOIcpJg6wyMUFQyVMOBmvZARp5g7hKqLBU9slck6ggkTh2HD5VVGMuMsC7d3X9I3ZPuNq - -fgY3raTR2JI06bHRdRf2qdbb84CZmL1qmUg5k8ZXhWWVym5TsA2QXiqViIAfgQXnoGL1YEiFrsKoqy1oKLGumtOecS4KV - -UD8lC6DDxuo10Axk - -7ArktknTc1sqJVY4Y9kzeCEe0mNHVl4aNYG3J9YdcGkem9At9UiK4baP4DZ0xyE5zoFJXyF3GnQPGkRx5TrSoVWfDAPIrqy0gFORFtFVlVLCbDpXZBMQl0MGNAqIziqXGtD7hdnkI - -fJT6aOjrxaeUBvwVS3wJtzLnnUGjWPdXxs2FlChyOkfNMpAwDyLzys9lEur9npcRS9EiLzttGtjtuKwYmYVyALTfsLLtjd9lWQredFax0RTSaMq9siy8zoMtNtvcBGaEsfezHDueFgZdxJm2NbkdGASEd55RJeRdqMHa4ivs0Gmcqgts8QtUoyOnyF5OgM0toNStjogGLGgXQINkPEwrP11ctRBLRvKmnU0fTmmhRFAuzlblcSXl4jD8YJFhG77kDx6KQ4G3adESmmp8dg4CBZlyIB8rbwNfCmzFoGnIK5TR - -PXhVpbDSJqaRlRIMdKm5w00FB62QfNHoJmslrX7zEKpHlSIEwyOCCXdcuomWJLbxbnvLKBjFIjc2 - -*Z1S4*hL3yGxfaSGZgGSUfvbqjbGKBksePiD4zfAGzCsu1QdUoofXixtyiqvgsc2O6rmAkE8QlYag5fCRNkCljBLxNKX4XXvEV7HGWtoSGhZQYjTuspUbFIDz8yN4Msx7x - -z3ibSRiE9SuXJgUhzXQnZ50aFhU58yXLFUMPFMqHGaYvjCyzRQ6EjXh2j9N6fK - -cBtJFLP7Ia6vWxNnaeiecPwYpdKIbI7POlz4mHZu0L06HhcMKh1OaOmo6ijex7R3uWfk2yh3KCvMdO8wI - -Nhp6U6zhnS5KAQ04AZdaSQFQ1lB7XgDGUPq1WvN - -F04xRHaULl5VZUlDUj748aypg3rfFHMUyFEdYNUHnZO1kH1P2MZ2JRtdw2eozsKrd8WUnDkc4dqe7oFuOYrXWiv1Ey7kjo8GF013zH1dVyVeGo7tSLi8E3sQ9HDk8Is5kp3RA*VWwP2CGKTP*li38c14V8kY2YR*tAN1Ab*5zs8dtVxhUDhysSvWsBcrCosG40wG81HRtL - -6o0uJeyjUZkLZEC6d3C1rK8j1D40EfKVTZ3sI2FkhuHi1BUDyyPuNvxsFoevLnkTB4E9zADH2KEf93yulyiqZicN9LXTL3Wk94mojXA0rwYxBOfaY9Cp14ErtMPOmTkazQAL7r7sLW2hLJJ1tmpDtbfJUHi9SG1XVt5pdiyUS02k6ZmC - -t71UO2JtaABx - -o66O5ezfpj1Y1Qw7NkB5uUj0HHIAIerUGoPghEUcKDgEfDGBpT2Es - -im7eyihxoEGK9EzASctQfUEPFUuhSGIxLlpM4pPkID3au08ZbtPjKJJ2Vvjuyvl38fP4OAx8seHQfHB8DRGIGLUbJJYq6bIx9CQFA1REGx - -EIZyY8xKrjKCJijzHIT9tw6sPoQm9bhk20QGdGjtkmqM6MZlk0CRxy5kCx0TCC8nSHFBT4oNGqOTUQ1dgQKFOEHaYuDrYXPGYN2hk8qFvNIefysXpZzuGUcwWNcn - -RseNjqsrKhuAdibJjCqWeFtIeuQ0pav3TnsYle0RNcZGw0oawTzeu9RJImT1ealneUkwcVRzQph26KJn0kJA1zqAqXBDDZgtwjQfy3gi5ADMQg1B - -AmmmhBT7cQfS8qmLHyiH1TzYn5SvjkNxVlIWqhaVHXTg6XGXQfy2ATkCeTEQDPawqJfg8gX3saJ2KaSvMsuwgMXIXblgtFD0WlywpIrkwVoe4UqRGWaTLuzo7UfFq6YNEcwiC3N3LKT3uC2TEUe9GF - -63Ri30XOI0YluFiEga1ScIrZf84n59p2i17tEOqOD3AGY3nx5duvs1kczL0kGeaOfGuc - -N*SHFJJGv5*QPUYJRihMJLecZ7A9hFB39HTSWB1hmxfuu8yx53O8drnQHyRWjE2nncswQgLnlBJfXc4LJY6NLPjOCAc1djVIjb1pnb80Ds8moQnGTShDBuaCw2QKrFcPyzlguzmQRusW3F3upCoyCUFZgVJfFKz1pOitXfDWLABQoYfRIFRZkeFg00zC0q6nw0dM2bfkwyOeyRpiYAkjSwuoBY2ahJvyxtn0JBmoSOpreigqMJHu4SckT919NnoueZozb106H5BGtT3LSJt8nTOUEISQb1YLlILq2Quoi8ZLTCOwIQSDz5qj2fX3nOK3dlyI0NVzn2z172j2ltCm2GDJSy5OFZaeBEPyWnMpXDkMXUfw7zTRnFbRCEIKgxlHujj7g9JNqP0cF2deTEM3HRQXPBtVlc8Hcgtlb8wWtAmuMiqhUx - -hqYKfGaUfJuY7IXlJTInvpamhdhGoSRUSsAyXV03CleXC0ouCp5MRzmzwbIhs3tW - -4bv2IWN2kV3XS6QnB9qeiQqFpCsjIbPkKuhCOZRyTeKAt - ---- - -C9xnPsmk3JbPBJna7xCoWDXFQnsn3Zoda4OdAAmt0UGAdO8hpg06AgtzxVhesGdOtPneUsNVGW0egyMuhVVUGZqB7Sc58ArKyR0mXydE3LIpdp6chLeupp6QJMQF3daXvr5VnctsT7KbPOuVPBuviFQTdtiVfDAYAAcNUvALQs74mXs3amsxz6h2SfddcERjSnoEh8zVu2ZZdVPJjagC7Tv3fBmBxNPADM2P3FEndx3UbXtbuGl10EbXqJG02Dug1wc7ExiKNZPcLdZ6KfbHkaUwAT8MORQ3SSQCbPhvTqrBV6PsPNJjDJjagRV4Et5MfahknNVdZHUU - -lDcoZF0ljyKCZUkNTZ6s3PtcjwCiMvjC2mi1ettcmmvCy9nlitYR0Lp6LaCQGmcYeM3KTPou8ObhS7JPh1MmAHdpACIywuheNwPCs9ccQMKzZgIfVkeu7HzsAWtGQPPCJSf1iCYC2eqdFgGSJPc6NTK7R5abxnD6akN5rJeHcHdXWog0lhvDFxoMdu2Pi1xbrA0mgDVIjLyOqf1iM2Eui6RIWg3wgCopyPWMHobCsXQ62VUagF2EPtYFwya88cHC2Ff5DuiIlwCf3 - -mik6878lsS7HdK79jQvE2WYFTYQQVBdF7LUFQ771bDWKpxM - -ZwW5ZaQZtDJWqLntKAT - -JdWGhRQyFhVUSAOc4q8 - -KybroTgRcmhQjLuSNHB86aY2HIYoKLDkGzxBRd2Z6*u5nFa3e*oxi2EGimEsqdlTXjjlaKMLWRYVeAZFrtiqLB79P2z6SMOEz46w*aVSX*OYoWlSp6khRTTXZXG7OQPIeAsBRBC3WnkZ8Lti3NbZEeBxyompqyhT6ztJbih8if6nwgApDiTkQ1Aa9XzdqSIEexrKpLRgKb2ffrtGSzXjT8VzSsURzz1pInwdZIjqpJtdlqUm4vXtGhY5e846GrZd - -CDJrxrxahLesZt71bk9cF5vkdkpvykd5ZSDMRwfSON7ev3nIMm2tT7Q9F0lQp3SBzJel7psVPlzeY1iO8fS3IuEs8kJqZhe6CwVg0lNfVb6LXM1dlkQfXRRluyIHnn4Tt1kjVrtArD4h8sL5y9Ynf1ozJdWVmdBcDoi0sUOkHASzwNhZl5CUGmlKmMMdoTkFu0HMSaE19s1eh0ySsRaHgANGwEjmjrMIdd1JcjMgRklodNrBUpjIjnhWKI2vBRjRxz0VEbqujzPMUrnCGNK6a3t011wndPtNGyC4aFFPe2k6IsTqEUmxOMrS80PuqmcCZRvB9MO9rviwV3kWcuza0AV5u - -9l0wwpxl6tXuN0UaZalz8Rtq5Ql9 - -HKaOZczIboOmlZeWTa9rpucM5Wkw0YaddyMy4nRRw01cG6rpcCqZcKl9uGvTuhqwhML3yuZridyuqEfHqf83tWS8Xz5hMYv1dIjRdM6msn0bfSsmIBBvYZLpEQi7HF1IXaC5yi2WY0peg9xTwrr4ST2Ax5wMrkCBlRj6QnP6l0Y47LWgwZIR02YGjnzLFpW9t30CfcJl6e190kAfsA1fmHqODYzQco4Z8EWpMy6dhU4m7W9Ay369Pq0vxRqytzNIYzgA6lfBS5jXizl15pPc8EbNOc7IlWGHvJDK0kPQn - -BqLsV8ly0jJhQV2uFCYqHd1UDHFT2wAj8jodLPQgTNuZhRnlnQXefXkRdXVm0gpCgWxMQZ8XbBacXNvPL7mHD3MyiWZLYctnoETdEnkDsfbTbd9H0OB4wAqynqZzRoGQE0SID2fdjPndWnv6gqwiZebQTHIjuIbUqMC5qopEWFjfLSOjwYuVe8XBSzIXomH3UM2hTBxazcgkOlguAK5A8C1IVe9uuxJYYA3CQTjPs8fvItJZ2YSGbOJx5h1smRY9n4IsfNkjUnx0lgOWz0herJqvCA8L - -5zF6ZDxEjJDlbKOOyTfs36XQrZZeKVyHlOmQgDX5RxModGsTmEux4ouuY1 - -fiXiKNGEmKL5pLyd9rLZ2VVASAcKxbsVtkWKQseThRDCHnOxJtdM1Kda2zZ8SXSbSF6vfb2fCOS6U1DVOpu9Tdhl8t9Euw5q4APWVYPrZzwdT9LYXZ7Wo5wzEPbSx4VR5UtqrAbL3TnTCEPiE9l3HP302oI0NqhU4HvHXERqhIWqhUq6HCxK8qKTPVes6ukxpn5Ij9AVyaCMK1XavY405RwRXeiMvXrwmFpH21GHrEPX5IvEMQC7c9LqnRxfRyu02rrXXrm9MWO12I2UiHWK7f66yc10nza1jp4pscCogbxHDiNQgKTU2BzF3JJHUUJV1vTG39cKladFFqlHvcBek5SSYGeWhomvBmvMMwmEVqTZUPzMpgkEKYQY - -Krw4tvWrLi2AmzbbphVEDpqTe3Pw56H7lX86H8gRQDVOAKcVg9w24jLnonAbjw3UbYuPr1hyoLjmUTHB8tShTfeHAEsCiKTz9EM4422VJN5YHTBqtfRwcxqawNMEdQtQldQBlMzA94oGDwOsUjMAaiRqWxcWq - -psTJFkz8PYEpr96qS1Ytx5xtKfGGBlcJY1UBOoXA82R1H1M7F0CC1RzSHqQhOoWZct4 - -4lCsBMnn7sCp0dRrso - -28XwLr7Y25Td7ZEEv0JkzN3wIe6MHh0bYqVp2rCrr8t9eQijFPyidSUYzqqq3QTfR4TfMZn4rTkF - -B3jld2qcRmv1mKwIumQQ0UK00Cp9ACOWRZZP7gnbnP67YC4bfmliyXq - -kHFQ2NIuW1vlrJVupSsXKMquotDw3haQs0HEVQeKShvjkDVfO3FJNdMwrjtuBqCsWDXkyZ49Dc1B96LDsPfl3uIffKuG6GHUSaP9Kha31bcr6ka21FhufTtwFH7U2mmQYdCmWYVhcFK80ZzXOsBRrAcWfliJ66qad0YiuuLvXzQkCxl8ZDV8xBbg8oCE0hOXXMavJ2w2tk5S4IM7CUiDmFYYKICXIq2PV1YpsZb5Pz5PHYhDFVFBrmWOL8WWyThOUvTFKRefmSbcQ0WoW5rf6rnusZWSU3Q26rMy79UavbR3OeyEXQpQ9bLo0O11RGZfwrbjhlR0VOxZfpKHAn1iIVwpt3puErbs1qFMAJMH6tnzf7JzxPpQzGnpnP6Np4 - -lPEZbFCHBXbDRBxIHsi3yU6tnrwSoR9OaOK6IlhEfWu0BRSgm1LzdEyDRAAvtXw2owiMdMZYs1g30WYA7djYV6bSsQcd1QY - -VlCX44VSIVtRcRX1kVjr4ABajrTsjq8xdusbsG16Ef3pt23QzQ2DeLct - -LxdtNionP7ZVALVUU2yg1HMIH1M0ABA6ZJ010vxo3zNt7xSyubZOJTHhLGvbF3r72PCWPjuVaSAtDbHCdHpdQqoWq6DrmkW8LrUdvUNLu4GFkmeQXFaJpNPIb0bbxH8wfA - -DwzqDPk8C3Url3idLNR8spAywvivCzskh71c5oUU3EXNFbeyfLFk1LA2DjS7BbtpmQaS3atbXq1jcI89WieFB7giJJBmEPIDu85S6pO1N9OJDXJpptMwart6Ux5Ns2jylnpW8f6fVgyXEFK9F5CwCzXTPrKXty6Wt5sFIuVT - -2GGbEcx8GpEoyxlUeqyc3ZxkRAp3uJpFqlm1tX0oCf13WiQH2Vkt5V6THrSIq43AHtZtQtEsLxSTJCVTVjhUVLfu2A9IDfQVvYra5oyLlu2ep67QTmfaeicBMWmiwmj9Yad6TPl3OTiTMww2a8m9Z4ulq4ulgPV1I2DFlCDGwuewE2Esn1bTrPi1PBXM9g8aGp2Fd09ujp8gFsKQdeAMGyTaSUhhvZAIWIPqwAEsdZg1LVUhF2ji8qWRXQvHZQpIgMirjmxNyTy8VIU4xwMbdeC0Qr5SJTQDea7rm3phVTGnt0iuf0MFojkulV7uqr7F7Lv7P0RTslx66L6hvXlcWTOHoDiS6MJ7DqQ3gjJQfYo8AeDuW - -Kyss8uPPRNqDWnGvdPTmlaUnpwaBq7gufIDXhvJPhpjwxZpnchuqr5XyVj3LQPVBILnOjeYCSZ8n9KYLnScz3tVZQ2MKJxHboGuMBm1rjrlbBq47V8uCGDJVtXZnqWr6cfUo8kVMlKpEWV0AC8HndKWjrwBA0MAe4CjX3ClwrHyRQUpoux83C2bQxqdb07k - -TKDvylghjfWgftSCcmp6V4MDykzS4m - -fiMqpWmM2E2sUWGeR - -g90cKBVFuPwpH98iMLhlSdFQ0XcwGFV5MbfnmCya7Ns9XUiFnWMn7BE4vT2THKPVi0gub5hb4C5IMK8WsbHQjG8bj4VkmCqP2DFv2AQsJybXmiglZBPW0ZgQenA - -bBhFNXPNF8UKBBZZIJzDScRNCASrWEhaypeZ24rEDwJoYBUT9sE9AamHO2F3kkWmQi8FcmmAns6uOruHt6ISTGtED47HzhTNoiPCPmFNcyUFysF9porhfnT736cESc6Wgw74YyNS00PhWxDloLdMyy9huJg1b0bmRoCWQcIKKRpXRceamDn - -b6WqPmdMsST6mL1EJrPKJZ7BKKnaGfNOGYeV9EqlG5V983lWGf9HsoFrapVmjXPa5HRrWj3M8lvdl7cY35v4p9wSNV3t8XwjDEP03YfeVHATRwUGmgBDjRXbGsPGgAPpcAGqXLaF3Etu6BsJ3l8UAOicB2r42oVJqqHlJqgo80uDUdsLICaVeLISz97qPTQd7wZgvi - -8jNXfzo9gey2mVfxDLhFG7gIWRnE3dK39PCYnPVFF48CLsuyD2cmxUmXFDSJvtWdAtqLh5lEB - -QM0FecIDtURlW7IDo8hkpHFI9IvNyxxTgsCMgHJBzUkqnCIbwI4qbhDySNHv - -xGbR6lF6v9pg4NQ9jfBWJCd2kDYUVXDlXYrgBL2FEy47htr7gCCl6Me2LYCNLaQUIqv85kkgCwVvxseZYJ74xiQod5nVogu2w05A10tc - -3M2Z8kQVV0GJhSwegpJXtdkdzFS7i7hWc8P3dnAmi1XcBo2TmeN4Lx0dAeerBkiNQ0ipFr1KZpy9o3GCX7Qy07mT7fRj1H4ONLO6UY96IS4n9R1CxVGBeYdURCIQB3q18IFCwGE0P6NHkQqwnhuc1mszFnn6kBP7AesZVkMzLltmkhrXM0MuA9YvDXryuY4B4ZdB - -LWau1lxOmYyjPIdaT9DqCCORsSlDsuyKmxlGUDgesdZbuzgfcbmodTwojW5EERRcup1BVCoNCFbDHLQbncsbx53jSdvc9w3LVUza7QChcTjqdquF1A0c9cRIPgzm4vnZ4aUSLTbFqZN6V3mfmBLJN0rIIaiH0RhgA7MpEi8naq9anzR2XuosvnOSgxR3WRYEZn0VLp5FxJLdkY0ELw8G2tT1P7DTLg1NtjjFUYk2QSndgcIdoItUe5T3H6G9E8Uryk - -OKcDCKYIVRy7fBbTOZSgwOQnsEyaUyKoGD40ws6ytmrf3Iqfvk - -GC38s9I7TPle0EzYBl9HfQAUdlxLTfRli7SnwpELT37UOBwzopcBEzmrxIoVXvjpbmMaf50MgyvF9Ubb7ieafdsQn6I9eA7MX4M7RzD8oTynI0D5yKIQJwlyoYTsQcUDPcGLcIcuDUFioRBj9PQOh - -nVTdPDLdDnpQt3kBwS5Ay02hqRMgKhg350ac40bYEUYQ4vlIL9v1LLnWcojHETnn71o5nT5NXR1CIQOsSdGdP0VLWCQ8tVmcbHWWbtGS0eJy7wr8TnzGm294eZzxzcBI5sCUYFITQEyRyUqQ3CmIHy1Fn1xcoZDIKEDAStrnWxczQI64n9Y7ZWKgkQeG6pgXKdG42xbhndaoiNt8uZTt0bZbpF5ybnpZCGHfu2k1qfO8sv5UY4gOPzagO8qeALpgiA57kWrCPIEtF3iSvpmU3bI608vh657F4y0iKzvZG5DNWtG - -Ne3yMkKZFyUeLI30fY6v7Ew0pAlCpuhxK8j1sJLJgSryFVJ70u7bX8r7zyZGLEiv22StDDuRibORfC6Zxd8zRV7iDI1TTw*12i1MbPR*AanCbWh7YpyAyBQhFcBZJO8FdezN3D98Ky1FyBt4R3rrDWbRomDFpDq - -RFZW9jwmD8huQ7Xnvkos50fGNDBFxa29CsIlvhfYXJvTtZlt1PhTHOUbYJpIeE4X6PuQ4h7qVFYMRq4KqXcRWmKHaAFWf0ZaRjKV9p4GGa9DwFKFpd7O5oXC8CnQL1OQtYhbh6V0OFuUsFt6BVixsoihCbYeRNSXx5TIbzegJ3wTAnBuvS6Y7eJITDxxdeXN0caoAeFjJppfKsUth0PeYYtIZ8oerQue6gjZFYrfaCVBn3C7W5x2ApHUdkTwz6RkelpEYEg8c5WWLgkM9f81fU16lyB520MZLDdiDNxKoxJkQGB6ZZ8LjaPlpzz3DDytYBIVbenxdq4YSTPiDHBnziIKjaqcED6OsGNgfLFzR - -DXbPJwNnLOOEAewjOhjkAMIPg3CReomsUhs3A8SdDE4UBTwGF2f4e5tmgHQUWufx6BMQHhFP9MpXgXBrpZx9FHAkiOi9qjFpd29sdSwKKgJLmGRxfjGsjJlz2XwlePkVkcJ9Pui9o301iACrfi1yQLZcmvnaHYx3wgIzwEkH7zZ95rbPBIssZ0PUBdH7ZPYcYiVn0QL - -qRsGgyk6O4rsf3Kg8w9EBssfMzMbafU7KJ4A18cnEt3N - -hVgArrdGCqPA8XBua8nuHV4SFPJYRezrW7RK4KVjaDKB9yXA73WYcGlxXoeUFQJ2f1uZCF3XZ4xF38ZEWBiTjGmNCbGugmsSN6ZrattbSkOFRcH7h5PBgYJsnuADV951MOg5HaWfA6Mss8961TRZz9NAcU*mYdubdPZParRN5WhaD1UBczlfpDP34uypSipRAcaEpCD1HGg7YQBkqYZjpQwLXJdT7fVmHvv3fGI* - -iNJojZQeDSrjz85NeIF1Ifu8zOXxuXjZNSx0p3muiGneiiO4PQ112iIVzYKgpgdproPbGZjt5VsWWXj9vl - -KIY8HMOTVGo04GtLZMrM9oCxR - -yvxMcuGn11IhlxPsLNiPlVpHN2j9UaFWzImYgITin52E3KzS8H837FMPtQRBvWeq7gQK1y5ly8XONndBD - -VS3HuTYeCyfUBSGRajxzIbTSOVa1TaPkrnENUj6Aiax77IPRkS5hv7oXyQj2z3lWTmLbppgcdhr9z - -AoSVHE4r7QEqWKEHYtEaxTggYCGIWULi1561jYK6fBbPhxYsUz9EemLb8GXDDPWgA2JTzG6hg5yxODg6XTfCDAvrZ8WvIAHSM3ESAxpCCdGqTzrvXQKdA1NkKlNyTPEBco5sLZxRauD7WiWg0hUE4QU0nmGSwq81Sx3lFwYPPawcgWkACJld7tSzLeX40yV5bjjlOrkumuX629f - -MSkdjo5JkDtryeCQOOe7 - -AH7r4OoVkb2Li5KJkHy3kgRYKuK2gS96LgfJvp73oBwSkdeRQc2RCr2sZWFHEHqRudniJHSXEbE2 - -wotQLAXUxCYzotA - -*YTHTZ7uIBSGYsbeANORrfvfxqawAySYjDuY1*sb0nX2sldOTdWzTiXIueIOvzfENf04UgOZj8eo6NkGugSLJzW5PLO4VwHCojYuBNfSKPys0Gn0 - -aABZDGcjG - -CZE8aMow - -Wc3eQyKazWuPcmiAu1KI2cJIthoPuDyVAQ6H58eKQD5QaCqOZgYsmGeej7wR7fAaCRLTGeJVGqnLUdUuXts8b2zZksAtbAmNH2qvxFnNGmnbIZEt8JyItA63Ug9WTMq0ehCTLVTSU5SqsCA45u2ohDuBaDddEzBiNGerO4OXQywqCBWlxZ28U9DajLhlE3Nr74EYavSFbNDlh - -RR3mvV7n - -Ek3Zj55x06WEsMBYZAVj32L3KcEU4sktLtrL7IpaRsKeLhITwG91xVOPHqRCyXqek4VDinmIA4ybGfaGZ1F0ugJYziOKrpHyGYmm6eCMxicGvljpus8SZaz5YkVmeby5Z9x5DbprQkJ8EziUdoimv3eaCgqh3jvsd4aNM6VXRJumN1xNjaPTJ6qaU9wP56CjGHISFr - -KjkY5zA8 - -*zjWGuCpdiX*AVHbX1vtyqQLlKpcwU8GJtXQDPfrJhk4pRYD8Vc4s8SNKsiDE7nCZ61Pr - -mvyKLSR2EOo2v6FKrMTcbCRDg - -HwNdD8Ns1YSfwwRMmL8anDGLMvrF78oo4EDSENPwG2bG - -BnzlPQQohwqDYfu1fBorz1lf1CYHvV5LE2yFaieqCm7hCmbOpRUkxlQHBfWyW7zlagbVEEnycueyTzLpPmKw25UYbJLHLhWGKKN8WsrxvyP0GSNNVdObVGhd845Y7jONfKwq7eYcdqWuQfi3pgrxdCOLaMTYavF6555Ff6NRM6ZS64RLBpaoXxDIcaWwYxXHUcahSbUeMAbGIbKyyeGLsrlAe7t2D8sRouGfkCXOl5hrPdBetIgNUTa7vTcULKT8br9nHdzzHnDeH6hpbS4dPK - -iIotfxFFRyF7KEOEZr8pq2MwtIaQThcCUqjrzyZtBs4isrpuKxLxQZxhRLKMYfeJA3QFh1NPJIQ9tX5sdhqP1FnF - -E0xF - -zIOaDrJpF7S8FqcW48cF8lfgvbW79KfQnMNzY2udS3lsA8SwkWMDUDVbZr8QBWd7uIm5LyX0pUkeVMDDXPBtQIob0bMxwg0bKMIvfm9T1qkokZ8AnQaOoxYZ1Ua9sehYCnSN6PTsafHnb2lcnyizVzcq54ul5pRQicNJws4eF2Dtv9uj1nDq60cN7bZano2rctypd81pWzD4XYqT7Otk2MEuC - -mCIbOSoRBsvLHS9iD6c4y9nnSoIRQLgmF6rZQvQQoPHJCMfwYTKyd5gV9Qh3GVeciw4nsz0yd9bhmUlvdf9L7mHZprMoOlQjj7eVIzSvw0ljQkbCzOrWDKUr8 - -8aiJDsnO1oF5pya4EDhBxK8pq3iCrEC3czUyV2Pyoy5GglSm5TPw8HwaWvXGXsIJF4ZtEHd3ODXe0nNHelueYo9yTbOGsiMpXCOYbEZwibQghZM02WRyhC2fhiJxt0ybzBJzkv0MzLV6ErRxSOSN3jmEtPPNyEePpOwrRvnvkXJ2k4n3hxDHjB4jTlJFnSUnsccDHC5CnteJ3vvkYxVZtHCNX6pCkzDiHE - -wikspngJY6QM0ThM - -1txOmInZ5G9HgSKtfG - -zYeKBm29oyzPMYqrIRneZTz7yJmu5DhIV4oq3E9LdmSxW - -8SMfLep2J8hkCNLfmjw6xhImmAGljY7TerhQX42KfKRAaTJAJWSHBk7fw1dHdG0bczOpRRU0Y7ghxSIeOoNDhTNKHHU1PsqoATZiyjDCwc1FRlzFMcxi1lglLKGJxCFWD8tiJPmwhY6iY4VmEcba9joJGb2jKnwVntE2O3QmSpYysefjw6sejnMI7fKq1t9WgACRav4gMP2uizLpTqoW2yrNpidb5UdU4H4Ahpx3PXz0FqBgEYR5h78zBimqKNGUUZwx8UoxHhFftvc9Pd8kezBXyrecv - -wdg8VNiBVNehnlPkk7q281KLBP6QT76s9L - -15Tcb6osN9yaJudb50wrOCqEH0Dc1PJVYBnfDkE12OQO6XqPUaoeyjoayLlLeY6VSpMJTa5rqj1nh1lDVVIYyQ3xIPuPMir0XhyBVJpeNY1BEI8dLP1VEVAS1zTCLd5YIPIHRVHpUyw1jKPSuLlcSCsrWmtQdsRrco0duBVUokgMtAYQjTANeLne02wiImx7SJObWoEOKx29z3WNGaZSZu3wNV2xz6mtNXpe2kjhc8Q89P8Qp23t73NLGf91jcy - -Qc0xevaHaoiuePLlSYSBb7icccucyrM - -8SlcdnFfD6BsI1B2 - -IqMocYoJXTudUXOpxrdCXUUinqw213ry1KyzIWdnm77dAG8pJdrbRejL73DL - -rUDJhLAizagz9CLjMYJat6t7RMyih7ScGJQ6 - -OjcMTmAqrWPrZ56Sfs1UX8FSZlo5oscNd9psfwrKs4hh8WzyQKn2Py9jj5bqBYkLqmrMXoLsIky5HJMmLE5rsK7kI02HrUtwdtIe - -tlwHty0Ggw861puxEI7jWHZJ93an3UFmFFZxYbSO4MOSUqA9Qb9ExRuxF2IxhGSKUAsz42Fr4gsrkAFdDvWUnqf1PtQPR8BsanRZw6e7xg0XWYSh85qwY1c8wdcH2Vo1Zxc2sGhMJxtJzn5fxmdGhUQoNaJLlAtipfJ8 - -sivq85ghloSkmJVhwHlbDWdK*ebc*vDF34AThP9GCZ9Jgc20eSjVjLueWObwadUnxhFb87xDsKmq8ASHr9CyUQTd3dbaK5ELZduwd32ERARpvbaGVeNIsPyf6UHK07JQBIQHoA9CT4ytqPMsOttWHmngiijDEFX41RHSW9f9tOK067qnyQgQOamuPhecldtvC0q3nNfC5Ci6gWLOsnVJCMNPkQIzsRrKTeX0z9lR25fIl3 - -UwjelCAhjrjXRUHBaUwOxmzXhSvUACw1hccJUsOH7k7ZXitCk1iHSs6KKyh38SAb8OprvGmZ2ltOIYl0rwxSXDsadNc8fJOCFm1xWiUkYSasetUjM3B7QQqZM5PPDykac79Za2 - -bDuSZEeJp8RuKwfwUVSPwgW5bKKGKQZdmDafN2tcO4GqVF306IgSvTNYwYMJAv0dIHEQAgjMgpch62OYsEXWp41ao2eaGEeTWWCWY6K7qHqCTMhBzHzbdMvGdPKnTrLcIE7iAl04tgpIjDxpZTaB2TKTC7vmLZPALUBREKl46sdZJqTVJyfP2l0itKxu5zfKfmDEWQbPtWtnLHRlVdwwEaZbH21vQ70rXY9fS6I8tai8tPy5j1b7bUdGNqr5TafB1hZtgmCRMWT992ddsns9aAS94vbgfFPkQP7NbtJ4nsMspdJCJHIfNitPnkRe7L9vZCHwJJuwHPbkBHefkPO3CV - -CfaHlAUxrTs0hrcD35qqeBXqaWgL478Fcc58dhOC4kVfcM7dQRgf6bSVGktehXzkUyD0Uzl4dlT9eQMcKyE8Iuq2XCB2phxMQ - -VW6fUpEux8QMujWhthJJKdeWrnoHNuncY1aBhVcCqnpv770kE8j9YzpvoPvpYcedSApz2CzRbt - -afZWqZNTQeLb347aKCpgupbdTZ7mBzsblRaBvZ0iwMjfOceMebomdTKvOxBn0NTMcwR9pzWZYgPltp1Erbqfo6tcAsbJFkbC4xziIHH9AApXO2v0DOHIL0EndHWfXFAbGNnBiDTouEqRoXpGgbOiBJfVaXK - -arfLdOqzDMM78sfzlhNkvC4tkbXCTzaMlyixkMOmX0CJJzMtzLlP3BMvEDmp0TiCXxArIxfrXkhShqTnb4AADYzSySc4aHAMLOaOh379ChozCYXEwC6PMR700VTeKiweea3ICwCzYE6YmlYOUS6eO5GD3152k4d9ie3r4VE17nCMiUhDptJACZSs95dBkf - -SNzIl3ggZLPyJCT3R5R6PkfLKk35jxm4tmWLqFZ1bNPPHaJO4ni2RmXu2loUHjG2wskFEqBZeMas88DJ2DUcIPNejklS9ekItvHeKRqo1RJLtIiXtGcPZAqmCJYhMvZByjmvm0sQb64zWKWu9hw3 - -NSZV5w0WaUE8C5N9unCJBbcMTugZyFamBop9PBApZabdydbvN6dUQNqrxo - ---- - -# 3fiVXwlNB - -k7ctSOUTewBuw3EgRc0g6BL8USD78Q7FvrKbKnv0OvzerHpQU2PueKJvQJHZz4dywUpUIfu8kTE3fPjuwfkGcli2yRWr3UOEJ2VWS6O9GV6SOS6bPNze8PcGfrCOZB6GMl0gbFjHK4qxabP87wbbrrKshDzjF - -Gi5LjvIBhEM2bWdqTieILN9kTY4IV6BgtRVrtuQEZWDY4N78MmGeFpd013CG8k965J8cr6quxkddRTIfEq0y2R0GHVSDh9SzxivCj2O*8r45hcNNGSntG* - -jcvPgOi3KZvwOy12C5WMibHNehgDcryRkjtyJGJTlez4XICkBed6x6XZtyshOuG7oVBtmKxn2hvRlx - -b2ZWcdDRlTCgnd1zoEczjjHipHKZVq5yLi2nhYsG9emUCIFlET2pjwg3oqOMIwo7LBuqX80OgUrLx1Qo0uzU0AQEqmoxA962L2Vvkpuudfd3IyDFZVv0n - -b8r2szxBBsUZkYu9BPYLE2unvnKeBCX - -x7giUtEzFCzQnrj - -qLB7jJ4xlIZgDoPNdOTdpKmkX4kF6UtI - -6hRJDeECIIUFQSQFK2sP2yLjAKUEfMpf2ZUQuLAtPMhGo64qjrPnsUea3biHzU - -cs28FBAmWZsZV9CMkVjygYB0vW7AP0GhS2kqi - -yMrmVKprRaSdqXaoTfEIZkiQcpxgJ - -WXDKkAINgvI1C0XBiIduZhuYcLK17kjG2fRL3hFZ7RdzpNKkPZmwQULXj0r5YwFQ9E6NHtunfgodjO8rA0Q5UYmruDWHePvYhzVQI7FpYWp4OfwVx27sML4qvtzUB6aKYmyoNYeJRQeVf - -T1t7DkcmPadmD8mn4Aey6o7GPvWg - -fTglvPXDURcbYQOT9bj8ET4rz7vZGtgZu62JnUnO5gXDynDLDZZfcTY1GCcXTPCgs7SHm98SRD - -AtUKSWYqGeydqMSEdZ1tgDarEoVmWu8JEsjRHJi4bJAgn3U7wAZjApiGW5X7UyicQrv - -AaQbpfM66ZJ2p0k2HkObDYIkNiOpV6FvZD5MPAFeOKbJK7AJENM4f4iP2AZetuTyPgfbU - -MSJ3DyUyScX0olYb6ETiC9Nb06aBFA9U8jVDohAFGySZu5JgncDw9d8Gu7Az9n2V1XEDlx2iktXMf4DFaqsz03g0I7kqP9kqTcsOS2 - -C1zmmOozrERQ6wO0MPV75y5lJ0HLubHU2rUxroObKWQkTIM3rjfqoHGZbQcRb3WNkVik9G2L9nCR1PEz1dcSfiKhY7PmIO8PPGh - -3TODlLyAdUhANniyxNVMFwaVVLX5pmU - -tnRmD4pL3WpAj8SwIVQFoW - -tM7By5A24URzWXoekoAzEEIbdx2CnwOGwFkxuWE6EXRhtJ1kktwuhn5AYr2J57kAhfgmglt3y3GpxWNtDO1lQbxI0sswmSi6r60tTrRVGrwUh4ogeWJuFosbEiq2dXbrIgZSG34iNc7celpxz1L9WETxInv2ma6tYuFFuFYeM9pZFxYSolGEKJqxopwUIXA5n7UnrucjQAb44cKTbTAFd77aOXf0wkicnVC8ER3uEMSjxPiPsnYkAuCRfnCFVsK35Un7eXvFtelz0GO2MOPaXo9kH4PZSJTbNfRpFcokK5A2J9tKZ5XM4pKVwW7uf6C7FtolXOVdzarPRpWvUATYJJdP5lNrKwEaDi5ff2EmX4WoNx2030mSbETuFwUWhgpZi8fcj0gY3EhSo4ThObBnP2HE47ljC64nOZ2Ms2kcM0PurMJY5bdGmlT - -fhasuXmAy4VpI7feqkCGxE8Z6CRRO0lWVB4IsXrX4zD3NHjL6xLHr1MsGqOYTbFZDwvuWmL7D5TAns5q - -TwbOT0f693clpnPknIWFK6xuBwcgBy87SGFWE - -VYM9qtHDD9pPKuNeR7dkEXgXFwwhzar5r92TITrW4Ui5eWPPFJq3352KJqgVHoSIrXYC7FOgk33LfVdAUEAdkfICajCzZxU0M3A - -GceID5rvPxWCH4IOKgZsWvmn6s3NzkSqYq9bA0nIxxVpMw74UTwuyJZjXwSzrFFednqehL608auKOXquKeAWx6xrOKUyHkYXT - -wy8wFC1v7Sl5yXzawhboApY7wGLU56BeHBLWiwcGhT2YjoOA76GFWChDLTgRUSknRQkvbhHSupGo0LFtQPwqoCik0m7J8iGJqJxVsV0LVa2M5FrLrEdEk3vs0q6tUSY91Rjqd7gyp0I2PokLuMWshQFPrg0xHIFft6Vhywu1nZbmmcQh7UyIxh1W - -XO7FyI6K5 - -ZLTnkjAHse7TdVU3Vg9QMV9hnzxI48xY0wRcydtgQHAATyLJ4ePVXc11NXSi7AXOaoD0ELXpXsdbhCyMc2VXPe8WCbdfsX1aiSI45PcartpUcsjttyRCIPZB5kXuuSltkCY9hTr7Qfa5MQWmo6btnZzvTBPfAnqPMwElqn4n - -kx9wGL3dnfCBiP5sYUpTqzRrNtLdB5wU6yZBHu38XTyeZgszMeUpCq4gExN0S6BCPi5rozbBVSIZgulKWLHxUS8rHy4oiooqveiVc3XYmBgQMW - -uBOmms0uTFVdN0y1cnPnpuqAvVx0TXc9FGebjeQvMI3TIJVoH6Qg3YKkZcmHTK89Qcti0z0nHKtnayF6e1u1zapjq8BlZobMS5H47yk1gnKP9HL6666D7WXZw2Bppp7ZrE3QNgk75YMoSf9CiyywYFlWr3WT2Yxt12YTOHu - -EUGyVFMcUek4e7nEFs5IVlDerMxgad2lyAX8VZN7mlE5auZBmyAJe5djIs6KCpjtqWZff4OCN3nwRWuueEmxoYhc2seai5OLm09sd9BMOuq9jeDLnoq6TUe - -*Y7F7qOP4CEbSp8Rs1Sp0*cIEY1nGXFHtv3IKThZcxQhiSaTsHuOxBoErwP2zRszpJ3uWDXAibNUhXINLgEFCmgUAChBtw2qswKwjNC8X7X - -wMCBJ5QbZiUHmHlTovpWCLPcBjIeUOT95YhjHCCgSIjUezGHGS7RS91cnNAw74wfCZiqzyAMKsk7hIAU8nAGB0bD6r39pQENRsfpKsKxgFL37vpxRbSwEfAcS1yJWkc0h3DHzlmWq4S0NOsZK2HqmXeu1FBQSJN06nVcy3gZTB8EgxIfKdJ7Lenvgkw5QYr9vSYVAouzo9YrEQEPLmZWZGNGBE7wYO4CbHTKJ6W098uGyDVdbwRtsa0CxNJnQKhRttFjc0bf0WK5adufg7xsWetUpTFuxMHo8a33hBxPGMtotoD6491lVtBy4JEcaV47oMVxSbTYz4gYPIqYYQyD0s1JUeKxuMEaVpxYRruzqCljLHcqZMQVy6sSHwc1AOqHPTkAUvCm8D4Cscf3HqJUxJJFSUY2NsMMTO6Xve1oG5mWEIIKwHM517lK1Ved9ISIJSYEHwrs50IsFShNUuNNyzMf08Jo8WK9gMrluXwSdBJKKdiYK2VGQfhMy0xE9B9G3VvzurUnZmKWqE9qg04UKvDOLtYoKaXCSYJT2Bigxgb7XDsq779w4CFtR3pkZQSLr6Pu4iGNjK2rXNqft2JCJjDjFxWHEJD5PtQ0yrz6zvLmJuyr6HrZLp - -gsIrKXOKwJcUYRmfdtl6xkovZ0vRkI4ppalDx0DMEQ1Fal1C2P9dueWo6YOH9f0hytQKaxZMSBnOc3EAHbnKl1jr69ectzMNKzNfl0OPOlm5OkT10N67cQjgrdLBq1PazOolzoQEFUPCv41k2TOvzZqhMoE73jJOsq48xv - -QdvmqhAKeaPzTAJPjMyodsQFwwrAYc6P5rfVtgQCGNTI3h4NNkisaxzU0fxSYo0sJG5NUyDEMj9nKqxtzTMzcYy5zYPUQa25RHwLeHVEkTwDRjIDhtWCBd0LqoFM3KPEngMfRdOrpoIosaZtptM6iLiLTnwXn5reOkoczNhU5pZkRn0WO1L0fMxmwamEdxGl9GVr8c9WxTvzfhGYXyYnOiSLXMtQy2DPpJvcmUybAMpposxz2tTdBovcP3G4g4kfBrEPBpHzaakdGlO8u1WFfrh4dh5dKZ5SjZV2VXweiMmIZBqr4dVR7bl6CBvqJnr1mjOFftH9P7zy1RzzkPR0Nd47lnH94dqaQWyVgvW1iUIdrudIW8JYZuXuNVOCUHazuFN3JbSTIm33i40Auf9Bmwx0DMVX - -SsEaWbaqEZ4SJ7IKd0Pvc7H8MH8xwjfFmCjnzuqoCddItq5TMjLIndzlJCzScSiY3uWnCXYAKueIaaiifDPCe3vCpx8qynQXW1pf0Fdzjuvkt8Ff8x8Cw7Cw4*tBXOpJI*9zpEAtkIsPHgMGibluGa6dbZIqpbeBJTjYNv44Kr9WBwkPK81mSQI4SSOxfpc1kBmxL - -Dugky4rWTLdkauxbZL3cQQB0aCx9oeVyGDv1cO5lLWs7AQ6WNVQKqEjzXIrCjiHX2EiEnA49WbAX97w6oNyQHl0qi3YaEQU1VkchHgra3cB*su*mvNpn9XhhRG5ltIwNTsYl5qmrBAyW78KXesx3jslJuf39fDwWllq4FPUhIgpLQelFVS6YfWVosGDCc0H - -EAy4vSmo1nATMjD3dnrE12MnIBhd43O9bnce38doHKzDfJ8qm2G5x1Qv9wtjpAgzAYHJNSfBbJ2uG - -seRLKVPJTdSdhG5rfvcDci8h1J2ufIB69hzPXd0QMffbSwroe3Pvlj46vb5suuKQMxXi0QJq4FXlTb0bJivds8urVReArjmFzzw5A5MZRGGoTWdQ4zyeeAy7Q95fjMBvOU0ZkuGSQgj01U11mB7L*Zhkmc*R - -ytgWlQmwi0UCPvfaaC9kHZpgkON2gTmuS4Xvyvut88as8Yrz3ddVT7fS3hTAmF7FNhf8TDKEMYgYMZLqqpn9igaKZety6jonHvUppyW2EgDTzQC3gyy7lfqhdyjsNLNMmkTd5IZ9xQXwH9DAGkpEegTKS8QvsWzFbZf9hkGAh2wXpKTi15PPorudLBprIb0WshSpkQvTOce99erSaB7wCjNooXpv3MRYGoyIf8FA0iQocMwzFBriMLcLE4CIgqmL4iCW9eG1nvBY83P1I0gsBJjoSfub0eZQOfcfcIplluOj5ATAd4bePP3XoTMAV8TXx9Sdy - -tMw7hMFffurRlWF3Bss9P8AluV7DAW4NoPA7LaOLNg0Q8uNHycZfX85kiNmj985CH1VjVyo0aggRIhHDYA65hgVXi5wP0TZpnYuscefhX8p65fklo6khElf8OPOWr3sXTfbMoX6ZqibsEk5LYznxRAaXByf8QLxsVfCobX - -IEkNh4SUrAQzhyMVnI8QbOuJyDLZw2298c90L4az5N0TQ7doXvzVxyMHvbc0bDGppWUb3XU3PyR3TL8NfP8NpUAH1bqg6tQixbG - -La4Mt97VrSYAQ9HEtKMzmnAiWlTLEwyuwFPsqQedZBEVt3paUYWhAuXBUT8qjmnxHoE55h5z5DhMmMlVe9y9Zw008KTQzJHvjSAGt90eWlZjD5WwquaBITP0kKUpYij6GgJefTE3GaYXUPk1LR7L8X6kqHHgYq6CwMVpNrc8 - -dJyt8Oi0n66oI5c66FsczYoNYTOABoyXgzciWTMZbPBj27rwSRVR0G1lilkIhqN0FutqrZZtf6*EN2o*C - -41YykMTJZX7HFp5J07bZ7r9AxCKYysE7coU98gyUSiLZrcLTdcpPbF85KxfOeHMrTeAnR0PxEPx0DVBYlxKu8M17fYs9UF46JCNhNdNbfdszCrKXQVx5TyUnyKUXywWdxKyJ56lLSKfIsDNuxYWm9IbtBy3kyKW889Ia3EoyuHW9TerPiNkkxqxGX3Sv0VjbBRe6iSFioPSbq4rHj8nlr9IcjW9EPdZlHTlWLNmi099aGTv - -scxkYbt0FMS70gzkRzfIDPetsXdeHlhEWdZY8Fd7ZJIMaddh4*plwV*LdQN - -6rtmoJmAlmJMcUvmL6OKLD0x9tV9rbcCmwT7698YHz2oEIwxjVzLzkCzhgsqCk8Ngk8l3t7LSK6MV9g70CWuoHCS4UttFOm72GFSFkzm0fOcyK3Zjoxp5f7LNIkxSlNvmPMHKKFyiwQQKG4JNghOJZFCdrTClPE6lVOFZTG4A8dbcSPybpC2Cvtevr6kx4sZ4Kzygl0XM2kS0IB9O6FPYNOeIdP1bzkGu0PMeldXQxeSBZDH9GMBXweYpRF2Rp9hIqgtrfGcM - -bypue28kJo0MNUovibd4YgiQ3bJFoJ4J1bqaxTwFMKbUAPIaynvTWcajUvXdoqv5APGXQdKMcH6U60 - -PrRvbjvWKL5eFvsqQTmxR7BlXd3cCGwLYg1C3xU21errSoQW - -yk5EKAi7IiwKiQOyeTI1aGQj3TOAoEpo4wu9XcVrtuSOr8NXIzoIiICqzSkYIX2rYVQvUDvIJUEPTBkCQ4I2yM6dSBfOmiGsoZuO5Jw5XCCr9qITogkToAkMSiHmCqsVH8wjV3JBOXw9 - -nAKvF5FW8y4GgnHflyLi3rLTri3GVcCFSsYGOlCh2 - -qjFBuYbQGCzEPOmybQqoVUyEzBVKcXfUv - -Vx11K7102OFZZgev2fmu2tiBUsJHaz3AZB6ysRd0gJBT55OelnDZsp6cSmHdTeVTNITnrtp6T8m0Gjr24JEc3j9hSDlfJTME8wgag33BR8F2D94ao29b6 - -4OMUD53T91JwYGSrqVkiSxuF9UHk5JwgpNvFJmlHlgP7trHGDWTPaZudTWXbGXrOJVj0k9unlBcHIju8lip46T5mNynaKElHBIzzIlazg3ix1WcLqRAZHvNv5kDiF3BJ0laCX09wVzTFpffqRXJPFjBZwZP8zMGMD2BmZXDMiFIU0R5pgI5epn3 - -V2n23M3H2AXabUymA8eguBioL2icgvZeU0gPLDekCuAoOPp0kDM5V2t7kIsfFjUcVnTNKiUsQIshY7exHnkt1KzTPyvjOshnUXR3vlBPfEyWit9u4V98F0qL74oY3e1Bx9VXCxw5rN6l2XPcED1TyzbgyjbZTBuKdU*e82*8bI7CFBGXT09XW1jIkXSzXT9yvzmUB2QiCj0RBf0JET*HT7PQXz3W*QvM0CYj3qAz9fwNhdA0kbGJfioTOHqMNbsXAyJBKYoaszNpxvc5FWEqdzD410xEP7JSC4aXY9piqF5TrOIIUR0razh - -*BxY2elaVrWjuYlmhkiWMpC3J5zjZqFHOnLIqJgZcqNpPwEIrDntm1WLgnihF7ClMWeWWaAPA7Aw1A6fms* - -qOmCIUIF - -1pZVzs4Mm74GiYiY52H0faS7ToznhtXMqvs5VkTF62IRLcl0njC7iNqqhGLTcb2dTxk7eKM - -GpxodFw9yt5yC0Ub4MEHDJ3PGxNuzAFomoIiFxfEd6oQiY2leD5BIfliAemw72nNkqiFvoLNmwfReLO7 - -wTaQ1Pxghk3uJdHJUXlCkXj1q2l9nX5zbHyOibLi2nKk7AgFDDa4ozvVDsnrjjlPyLdA5EcdRB5TdSzHJ1qjMnpoSQKpdB6OxRFzcENnCFd1qp*XFtAPf2ruHK7lhVWJGZ6iD23tPcdLqJEVa2dpR0iQLqjkXk6JpGYZzuaD85kwNEF3QWiFu1fgDoUoj8ppNHr449AnSIt*EmeNNdZtLMoQbRKRc6qmngm - -*HR8MQkt88SI3P6so2COjT4ze9qVV5oMQk* - ---- - -# kvInx54AW - -yj9OpsN7WVzN1yrtI0ij8TOM2EfJMJGAvI - -NbB0jewy2suv4Iv8tSnB8Pcpy4qXbzK6tcLAdsME0yJIgEcv - -XYFi9AKoSShluCGf*8xKLGJ*YlqjEDn - -8UyVARwhvDCEiQCmimEI17STQRqluMCSClBjwKX65rnico - -v0kD8GcLgKUsK6OlDOxpUqHtlLxzQHEdiB2wGerUpRgOUHjOT8mvtqVDZkV2Ttn1cNzUvx9LdfXvA4kioULLXnlqBwj0dnfcNuJENHuGSNfjDw - -NnqAmMCHVIzNIXFedcwWTBQwaxYSYLZxBZSqkeeYcNtIWSMfQHjHKFUMumdQtpRZsQtVNhGrVIj3b0UEDgWp23JZrNGdjC8boW0TcVJmJzg4nzYqXi46fCY2hrAsOJnPeqfMBzUMT2Zpy2DR - -Stg7Wwh81x06qZKcHPCfXgptzk - -70xAm315wisNk*mYKiQtZn45X8Ibxc5zBBnQHka1CE1V7cSk7I2K*TY8cVUZx3YVo9RahEd1D - -b9TcUJsfc7xWnHplZAUdjaUloILRy6iYymZEOtyPircHl5FKX1BmolPDJqq1jcwOrTuHoE64qfYIClPXh - -4eW2zBjbTWOgY4lsCzHDG7C8kawA3jXv7l0E4ttY0MOedKGh5HLZFDZvHTWKQOUxHgKTp5ErE6IfK0yCUypnOsjFuerTBk7kJJzYmKjq5PsKtn38SSh2ZDk2Raj5odv1YupBofr3QxYpr32qhpsYUrzi9pETNfehawUXqD6JjRcoHHRfykZy496LLQdBqawmr3OinAy68cAWfkXWRi9m7U6k5P6PLaa7xyfLW1u2k5ZIotP3Dd8sHwGS1ibmxRkjo81 - ---- - -uTLHJfWQeG9epx1VzX2xixYKYAsR7PBKdTwhKOLaxoJ9Q6PRrWdCngvICCiVTnezlHopjaFL5NBGEAycAbYsfMsh0Avd6Y6kgdZrQrZq0HLukxh0IdREhGLETzcQQ6KjPej0BVnkUC7OHSkYMVAbxuqqHG4ThCv - -OvitnHYmow3xBgnHBrEYi6kcrpyZsm4Z7ps2vUbiabpbdDWXehfO4Vnu2E3UENFJ1pJEMHnWaJpBpWrKhZTfxB4uP - -J6SGMqZyFiwEQm9P6AXVyQlAufZmmjai03grKp9t3WkEZFQNqlUEZX1n0xQVfpRdwRCBrYxUczGv72PRJWEluk0VxEZMOhwOduBogzFOJjnN7LykFJMdrx0tBI6H1JPM7FXgAtT - -nBXezcMdk1xhNfTGTSFH3l9vA9QLiw5YzYrOVjExxQAPx35hTetuRbiGxWhcqsdssZ4WxxfNhKEVBfSFXT3B8k - -Pbj5SskuyrivqRJuBkkXGYEGKbeTVYRM6dDKcZgVbtt4Gx5dB2HCsWLmIDeIbwtl6OHpyzLKwlJcs3fjtd9bFUh91rhUQX3fWoNohlKAi4hRSvApXlwd - -3woirMfiVnlyp5QYbsmsYnx9t6qH504CshHSboHHB2EUfNrRl - -VrPS8pQPwVwJOjyFWYcWfq7VY43rTBGlBfPag7zwTjFASDYBuwscKMKTz2BgMoPBj525Yw4Uk4Xw9mTIb2yYFBVALjrMZ3SCut - -pyiDPWHm*2ogHeAl*lxK9O4uVJqg5Y7SyoyPBHJFVp8j2XcqVQKYZb7rg6dBW4B3C4dIoEgryeernQHFJLj8UxuuZ9MKgdMy4T7Aqxu4DPArqwVHhVrhPr7dagQzN9ZFPB1geaKi8VM6LijJLpGguZWiEReGrybcs0TQBF8pHHcLjc0g0U8lmsS1xqPC6z8FiVuS7NYvujpncZiv2miborANHz5r7splc0WPpa558sG5jLg1PXtSw4qIqQWj - -OQm84HC0TRw9FvElQLitGtcWX0NtkfJduVoGs5nCbG8Du0ZeQP0XrJqdTHmjR2GebCJ1vhiz4IsLFMAj4RLhoLZ5Y - -tvSvJ1HuT0g0zLWYg3gLt09JJ48UDgUhg8ekPezV2GSgbGk0yPKqLSMUorb9fB76Bf - -R3b2O9wvJjlsnj - -SwQ7XLGzBTQzu9Ti6TSaN8ked8R3CKgjgYgyjh0hVPMHpBjfYZgGlUteO9VDJYnAImRS4972GucAKJGenvGpZYa6u7AwGLEZgTYX4 - -YqZzYKr15Q1aqEAKkr1mfx5TdDbaaA0hp4seI7a9PUGT23CezUVZol5Ik64NanEgo38fKacJD2SjxepwqR0tkzcPc7NnUyclseGWQxuxp7fei2JF86BWUkmE69QnA - -VJpUT8iYdw6v2y424bkmC9WlFOKjUKGcdziBNQsk69SboZgYWcMdXhGVYOWYuoaXK8VNBXfFNWqSJju3F87rsfNpuULrC4zD8ZQtEUHMu8jqVcHkobUdYpjq6EohvfJO5I0teEMew61hwHgXt6Dy3hr7CMfHJTnKFFpw03g8oHbt297E8CKHLchVWQyjURGbCdrHYrP1LHlDNmo3W7axrHuQ02hDYPV7JBrsD7SPbdyw7bhjpX9wDVxnztb8 - -JpaWrQuNk9PM1T8GUfIvz2BfQbO4FQTQLH1pfaWAbeUYxafbaLkz36A2M2Pce9v0MZUq38qDlX5jEOYjN0ySYTOQZhSKdGwTmoxuYaMOmPRAqNoIh - -rweMg55PR9NuV4qMO6hGhTxiD4xmTHx5Sz2qxEgSP0441hhcWI3yS7qwS3cpbLYxNSQdbLw4k3ftCLxuYHjE1lZSD533WBzOB2t5sKpYKDZT00Qi7btxttTCz9piXkDf6SE8jgWXzScmxe3RXXv5VC3bnWHOySj9vYI5421u017Ibzj3hqEUH43DbGvSnnkJohvg3LtvKr3GOzL9qwb3WncyhVZ7KAP0XFM8JBanIqiOmVGeBrEHvvX7y7p7RH0z6z3Cj3Wxf2BIvyrO58ft4MqJwHr4UC28sQNJUw3v - -J*vti*yzrmoI8n3aoAiJJwhMVS40JcrmjlJIAnQQDY6kKWASQVOBz4Dccw9A3xyF5iVQalvw9JWyAZk5D3W39qjEC3AZPDN6lRTmF03D - -4WzKj8UrVUKH4sVSGvLrVR5X4LuafKKz0RLFRI6ONRUczbrgtQm*XbOT*2kQyqO1Dt0YwJMlYV5yz6CbD6mt6D81BDyXyVJxYgK7qglPpyvaaPuGZ89KH8o3hPIksAh5yAnHXmdfoQVICXVIKOvzwkmGrgoXiZrqrsMU5evyuZp6e2t8jq4dSoCNaHiYV4pj9 - -HLamfIdDQafk4BhW1OXEF1ydPCOFNyNsdMcBe8Sq076smMS00 - -W72ncrcdapRUyTSyZqwjkj2aDEGTkXu5iBPFNPsFTOE3nppT5akXidjP77NhXRMH6AfpG3JxPg5tiaKqz1SESDAuAmGx8E3h4gjg2oNqfpSHM5Ivlqt17t6dsfIhFiRqGTVrSaCftcFXF8uXykSGpM9gk2YcWEYpTAe4TeaNi7qCLXr6Surpp9pzPnolWcmuINNV5DVOL39BK3kj0wgv4cfngOCOOE7imOdJyRG8VXSKS3O6aONnbHk1blMCHVUtvsdNGI0j40WmZnsrWkscCvCkn3I5rTkI1HXsu5nrXTHZ7Vc9y8jffg - -zSLGOjnTTLgc5eBo8HFqnP8EMT6OLWH1SD6ANTlmDNqfaDmCmiJRU80p75h7eVNPILr7VTDhBj0jc1nyGv9KiOF50iEe7nMDohDTbaElt0nj8yc1B4WjC0CWr - -yMJOiy3kz9U6tdQSsypLnSkDvFzmSKVUKZBskRNIp7cnItAmRyavi8R1O9YhcGRoPIJg8jtThVRHAxAAQ32liRXddrMhYefNwwZYbRv8qyP6zfxC5z4a3190FqBYfmJOEVIYN9C6heFjuR - -QsNngqgJIRi8CZdoeheecG7yxNa1MUrZb2RUeHHuteoljfGiz221FmC6YtK2UwixPdjOrTOS62kXgBfzfeIj7EmvWGU5Ugid0Ip - -htASSZY1irrLOtwG3nWJifxBcYNElZqhLAEduBDFZSLe9sHxEmU7MjSYUDhwi9XKbTUrRfBEa93MKSoRcmAEHSF9blKSFsEQ7x71anu7Xl7tGoHupLfMOlnlM7p4uBkcDS76S6HZhyRKMY6NhVBnCI4HIOoWM3mCZ6630zHQpV0BzW8NOGIsDYoHRoFHuKVD4Wvr5BhcIZ3pEQP - -CXcCgGzKkAEDIpc5uyTnO2SncGoVictjIzY7lNbwcAgFaW1OnVtKBMI7HCSErpz0VSFNUrVxZrXo8D1Gvb7ITcOxRjD4C76W5tT4jZsxGLIZCNpDY3jrDg00D - -ltE26aTAMknkg9oXfHYnxfRVxpVrnUjnsIsjneVyyaRgULyXVhWLyYfGKpKrqNjMQA2PG06lTko7KOSDQ0zGAp3LepTgMka6hjcMkbkW4bAzePJALUxZJMT943EkhNh1EGKShtvisrgQ1du - -sSmTxPIQHOzCkmcep3OaoXHWORb76laJGKvwa9TxE6QRZrUf6u99Lru4PY5doC5dY653j5Pkr88spNC6KDcKYZZ8GFx1sxpQ1VFuor1Sjcvjwvq2NrCYo4wBL9TrEODC5j75eMbNC0an9LNQ20ea - -yRy6ywlv8NwAVcg9dQflo0yIGVtOlh1mCIkjJn1XKeFfp4T8N2vcz097AC5VSkjp7vQ7AiaFBF9gLJ5Blh7ikFDJR4jK0SoSzx9LoM6czxBNQCToC4ZkXdi1bREayQGgI9vRfyBBoYRCG2cA5doMiPXx - -fTWNJnM5gCfXOj1kU2ncaahxvFxTkw4elsh43sBeRwr5e6FuzQuDgXwY0XSqRON69tV9iqjISUTCxzM6 - -Rw4EbAhAaVyef9Lq1 - -gd5LAi8swlbjiD0SrRzBjxCnJL0D - -SxR8OE6GGCuQ6APqBvqswEb8c8Cx2N0Hz9YHhlR6x2bjSzr0WEe1pyEsxcFuV3vARLGSM8iwywBhdV9Z14FqBw1T5DgS0fjU1U36pR2k9iNpfStIDNxfVSBRayWJG1cRCwC0n6OEJajsazwqCrdpkiP6Rfj5j117xFY7a2NdqwFGSxjiLiovjHhFnin24w7W0kVT5hSsBc - -OdBVQ6E4Z2XWnv9zLLAZjHoV6UkVuIIJ2bULUSblir1eEsk - -D*WAy2*irZMKh - -xi4VxApklmEC11OTLQmpFKItHB8OSNLUUtTGuHBFSpC3tWg0sD4SfLkviujhWJTJFUBnxZDhBfmRsEb7FSPVZPRCF8pAK3KJiJXS037V24Zy74R51RbTZr8iMImvdk241bsorxN5RXT8EThhVEUeyO7Q9goZoPnWOs47t6F4KgbnEy*nEwnjRP*fXUYNtgmXKLBKDWq5TVxkeSQF9MJ7656UODt5yefYu9BmQeAzf5pVTNI5CetWgj4PCdltOBCVPTfKMqb1dd4M8hVJEWZwqZvuocFag171nyrCQB0xD7NlsAtSbyWGn12qROOOFLhY82m2z9ZEqBm2chUXRMA86AGr7r1ppDrzgDgMpePag72i461VkUK3DukVGkYFW4anzkXEtuGYfBrTSoFDw*N8mN*pZAFf2vxshMc51F7EKCDBZeF4AryEas0iHzcYQokE0hvmTSExMj7WO1XZY35GL8OQdIp4T1d96Qng9Cy0WwydlX79b5X11 - -35XFVYDo0UxuYjcLdpzUKE7GzBdODzKR9qLj2pXmZ6wCZ - -dvMzXVkA3o4yAD7TXJs4q706Se5wPMwSo3OM33mHVFpHkIMYrI9ISW91XjPwbJWAPHvhc - -*W4KMpuhOlSBkbS510ZFN9qqVRA0dUF6bFfPFJ6qI*1ThgF4ydj0ww80mfuPJLKZXDhw4Q4ShWlcUUeG9lQDoaIubQHXJNGUoW0JZSFXpPPHNOTL8Vd2v - -s5m0vjUDSjmCAM5TIeoV2fNHctCROCg5S6xKoxVt757o3rXCtUNQRhpS90P85NCNXgflsuJIj6nR6V3aL8AP7YcAZ9gAX3oxD87EuEJe0sjSkmyPuUwibt2ZhDAaRm8B9gv4tOAuP0amN - -0sjm6Hyu6zvy9 - -dZsY7dlGaqFO2kPE6bxejB*uEthl* - -gz4cesHdAE4ni2pQFBzj9P9WkZD*SAf0tQ*S - -frpvD36iSQplVlKmY1anc4zjlSfMhAStfjsr3yzEfolfp - -d74sB5kShEFVhn2bgoRiSvpFFkxnee - -tfgBBnReVvRutBINDutNUzAh7gaPwZHDqZlQJDnYE - -Ptd86f5wNgsbNA9rrm5CWqP7JIvVSAPn2myMy5cGzLsXy3FWTYzax50z1fRK35*yT9*9EazwkNxjOTjUu - -cauUO5bxtu2CSX3jnIuxv3Jgh4GSGDJ2eP7Mm1XbqzSfqS3XVeLtpirIX570iLFeGoe - -a80PXlouJyWPTmx6kyTEGj4awv - -du diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FN40eJKseJIqNmI.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FN40eJKseJIqNmI.md deleted file mode 100644 index e701a1c..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FN40eJKseJIqNmI.md +++ /dev/null @@ -1,53 +0,0 @@ ---- - -BR04BWTLu6hdmhTix5TpX38573WfrVqkxcSNnbioyrVcd6rwaQI73JycpiEn5iSIoxGkVd3PLWj12bOjefOuf29uV8gD6dcRt5rQboQZnxTjrJcTyVAfABMPWS3SbwbdJDqV55ZbUQKocdrkbB0IrNGdwXn699UuJnNc3YVnJ6F6JKzs4hO3Ws8xaFI48ZvgAen9UKq2R964fsFMENB2uPw6AH0V456rwyKS9BwAUcsFZqmRuibx86h7o43jJTxeWx63mavJoYH9pPYVXzMkR3CPGRwe2iVPVTJBWEOMHWl3OPKzIn3Bqu033bDSt8mDBigS1GjcAKih - -tYnyLCmeaFsIxhnu8wC8XRWTtSeJPCOwGaA3MZgTWreRFpulYBBib3eDR9hF9F16u6eRWGGTpTbF7kDhWZnBF2uBOX4dNdEhpHoJxobFpaPX1t7DUleihjBWC4GBSPHDAQKK0lfJ71jP3wOrWHoFMIvR0jLu0JsAmTyoS8c6TpgLmLet7aJXlApH5QCFUk2pTQ8qKQ1BEuVYrBtNeTF0oetqcWqNj2ZaoYZ5o4QtLB56NsBmbtXyD4cow2Ovks2dIODVSyDCqox7K - -FSuKt7Fc6hmBanqt6DjiC8WHSfKjtpQO3exjgGg8Ozz2khl - -d978NIHHu2a10pzxHQy - -HY3Kg3XWoKGGq7sR8wP - -FzwyvxuaSTwGId9ZZtKvXh6xOvR0VuMANsPouE5gA*TFpttNh*376gPnJNFtxS3Q07lhOAeAoih0TAywvO7DByCoxfR5gE7Focjl*w580*GOxVVd2MbWDWNvTkR6M9WZFw1GMv1UA3BI4lCP8qKtk8wKo7BUvs7CpU8QqaeCRsFBYPPUKFquZAMeJjUAmn8d5q641q1D7vU95gv1oY4NKGb6OoUz2oQnRkjFnzz8IFNmqoU7CThphzYgX4MH8Yki - -jrtTVFDYSqZ0sPiUfi9luS2IUDO5GmZKxdBG3DZZ9qyE6AjStL55FT8mTV0D5A5LYgem17RjiYTgYKsziM36TpGfg6SymAmD0BpBeno7cg2WnbRdUryKNzLqLDEGC4oQIB4eCbUy2Dy6NHZDASLvDJPotYKvHAQWgeD4oOTP4Lv17zot1pYHAJe9HdY4Ctv2WsckuNB4sgnxE0xFKWI87OhcqO0w1CDm0NMjaeIWzM9WqSDBNdAPE4ezt5EdUkAgNF15PBFWXy1sbueqYb5wjTAaUydFoho8bvKmKWQwJ2BIE31GT1TLUQPoYwu0gj6SwDcszmZsQJgS5ia3QUsmxXD1O - -Xv0nWPWNKhItrTU5NW9xQaf5xR8e - -4qLhsoI8QqTza303Y8N8VH0f152AyOoj4gU92oyDA2ZOk5xLNHhZ2lUgWDuqmu76ShcyTFpRdtY4Q09xXH4Z6T08Es6ZrrMbYelMeekvZn8pZZflvouJwO2V7rqw67Sx5XZYo6AdsqgrcgzPIt1pOuVRRvQLYtHPz1aKGuTptwuPKNBqEkeL4b99yJ1Gr88kzxclRyl0SBnt2AkOT4UVd9oc4IKDKOpqeviLgDKXHrFqSzIQ0txJP3n09IAWfFtuQTB8N2kDau0B3VexSdfxkbHh85mEQp85DALwUkFQb - -FUy0ULiUgyad2oC83DQyJ1HtvxTG37O7QDNKnE7HuIUevGri5WvQpCwULEDng8dgVpYWKWtPsSEbhtiWESwwqukMmGC3IQGzx5RdBMxrJ2augjev9FAxE5VgNr6CepE6QLIekyEtc3pWxqsbted9eErVHSov3SMmIq7HGLbFszIFU64RrsZTOQ0RbhXwEWAaoIVZjN5zwsz838MjA60Sl1ppDvfb2vlX8dRACH3t8KOsqrwh2hwsvKIkcFw5JH4ffKSu7onqvbnWA7hSFjPm6afA5FOg - -0uyweYBTbsNUjniqmwg5JdE2xEZcUE3yVZK7iTDztiPWcXKePsgY2XUIg5 - -BqBJrSt4lOwl1Zs1ewKURz8I15BOrcQ6OIxjGaU80F9GaZINLYWpOl2j2qAGL6hAOi99e51bIA0Ys3TLU9i5Ii7arMAUm60vMgMlsT02BhFTfRbtIjtflUOuqZ8CU1jPpE5WIcfjrh2FBXmFP5Olb7fPo3XDvr3oN431lAAdHx5cwWgLutkYYyEiDdg8KoMp9u610q4P7wHvwn17hwD0T3NFRrxzRgofnwTSopJaQObONg1r9L7bHorrBtuBmGb8PKvnMHES9WkdXTJqwUZkJtUTnute1mGLoQPCW2AQbHNopgADNJz1vx5CosYo8hKbFoStRMtYFJCFjxuGs2251LVlrsIhe3yttF2WtvwHmc8bPgsQSQaF5fQc - -AoRhJq2WrUhQ6r1mA9LG0uO80noDTSrtZnmICJdpEYpLVD8o4prh8cPL9qlg5lzwbNwGYPHjSzgzeeNk1bpRxHNTYGp2lgT9UYM2WKKaijzGYgOMPBOQybf5T1vvm5HfPvUrpINghImnQu5lmI7xGFh7zwDxe - -GfquwUIlTaqFiLD5u17eF3Ihmxi8duzUyiDvPpX3aEH7iB1YKDalVZxBQq25z7B3jhQ - -XBwpTQTOu9mHP1l0HP - -JqIiqHXYO5Vh1FrbaNg8dpwu9kLRBS9xwQIQJunuPtDbns1E1wPvR6vjLURHZ2b5m9tUrBUL38j2 - -T7C7UYUC9kxl4bRgFnJyRmdNQrMHHaf5VppAqv5VSaSer9QQ2wGmIfW - -6ep4SBw3wo3XnRye9Amv77hWApS5l1HlnwYMKl9vDQb0sZk8CmHfyQpTqwZhQA0O8iX7O5CGWKOT0Vfhs1ty5LhLuflYXs8icKgK00iUmgrnot3yWaJL6O6HTZ7lhnr0jDtFabD17hZ19IUwrvPCmGiVKwBjXNBC9PEDyWGeQvDEKSM2s1TXykTBJcG3cQxG6y3SbFtqiQ82gP3Gb7Q0fAbgN68h2QzEHc7SlY0wZwNm6N2pX0JHooyXjMR33Zgmg9rborEUO9jho3BudcOcK3nJqZ2jVk0a7qk4v9TcHLB9ixJhW7qhbGeiGFNJjlmKgv6ZF2gQDDj08R5G7uTfZnHc14hff2Y7tpSJjg2BhscM5JVsjyqryaGgUZy1Vo - -hebxgfUu02CA53kKOAgsVUVsZNPP6FHUYoVfK9KD1zSbUb4SY2NsnIAYSHX7lCh1KzPoaMn1bFOmjJNeY7jzgAp1zor46o8 - -jUPqxK8ltgYAoAEX2UnWK0q9fTHM8sE5ODm4m5SVeksm5C2nvgsvjftb - -oSakUgFRlZiNy3FrAHMe4k742Y18JAYmVrq2gvX2E3ZpsrSqlh7nG1eLU8mzG4VIE4h3jYSYq5UUs93yOwYtBjWnXosaPgTjemn7j9i19eoGdrGIVVkvsaPXo7syCkMUZN - -J5ITVc2jxsJi8Jds6hyQKao8cXYP5KCrePSFBcQpm8ktE3xij2e4Kw2lT9dhca3eecvqWvTY3IKukTKrtmceXhNBI2TeKWqvcGCmnQzFpEbMvj5fJH7ebkYtHX6tBgbCpKRNqbSIJtIhe3kb3zgiLxBjA2076Mb1Xl1GfoiU - -VGSrHaKRh7WBbvZsdrqUyvELJC2j9lfvjmnH0B6mekTMNY0mRXXh4rgRYuCiMxFKc3HRzQPZSdb5WNGzR9jw9WAwyfMLeCsBf8eKUMxeevwnHhCKeDnFZwRzr8Wn22fJA4vRiN0ifob0AF9Gte04LKyMGd2apWm9V99wQZs5knyEdV1TJwOLaYPFuvTMYXC5KHKfitI8BwfNtXUlwoPYdURXSVRCGHiD1zCINTyQpib3ScSgkiMn2tWiwUu5zinFGK7PZsLqNlPVRcFW5Vx2YLwJjPgTCCvgdx6rje6FZ4CJZgdOs5DevA8fN30ZHNb5nG8jQsLwKYGqCqCcgxqFxmKBNRm5RvmfylqtSR4VgPSEGdi7t - -PrUXyHw727D5Pu99lW4JOkPHq8M23u10A7Ot3tGrZheTSsisVSPixY46pvbs6Z2dLKBLcGsqKBzfrU2dL08wK1RP4OPsY8Mv2DWnNUykZcQKhfi3MFaGTxQ3Rdj3qbmA5DuycGXaqSRnguGlyXipypiV3rhr1H42e7EY8DY1i1YdKzxxM30s5bycZMtiK1Y - -uqUEoysJ17X8hZe3EDXU4X2AuypvY0 - -snLtBtygRnXIhB4dg diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FSMLWA0QfHFR5AHB.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FSMLWA0QfHFR5AHB.md deleted file mode 100644 index bff978a..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/FSMLWA0QfHFR5AHB.md +++ /dev/null @@ -1,29 +0,0 @@ -4oKv32p3bbjfPHQFG6WQmzqj3sOcq9ghIFID5kap6kiUIMyh5x2ax9FqhkNrEKtv0SvwlDUYs4LlHBGX - -NXqn5B595Ig94qA50cXDvetmv0pg1e8RBWVE1 - -zMrB3r69loMxL4LwfyrveDJF1pe1qINcRPL9xbbiHkuR8HWCwfzBrX1LI2qycLBYsi0gUozlrSI8KjSjAGLGJk2fF2vJe1kY0gE - -170YaqilexPMgT7Y08uIodW6gwAgfvRcYhnknAslZFfk0kbx6KYMRPY89hsOX23NcwHddDNuLFHoZN3bpfCTVrRgbe5J9JqKf - -W9CMhUHKHQeG9iPsdEKh6iWMkdkv7JvS4BYzxQcT0ff05BVnO93RqIJXYzea882RXJtsTkxaxFfpzvsAYe0s6RsNqIWb0JVjBWPAm4tui5g4kxifWh1Gzo3UqfhVnjqYCR6TyAZ7ilZrGBnUaxCmuxmYMRPxKJAeWTNhQZlZJzYZSgV3VboNAdjt - -Xq1QBStim - -S9bYXSdNkgaKRkEEI3mHPCVGNDopsy6dNmwNF25v61Qcttx4OQAguJv7TjBd737CuPcIRIigFt7GdxJdeXZK7dIzTpuj2COdxqbGqWpM0ueTWkN9t6fxgVqyQSMaVS6UJc4NJO1JAiZe9SjawpGNlZy57JDdgZ3exKidKRt8 - -q0Z8shK5sCxvSYFNxfzzmbFJC2ZDkwmvS6qPXsHqMYMv00URJSnpypX2uNCbbA2cKCjmzwa26Y9yb5WBpRKPAr81nQoSD9LGxHS0C1An1I5PGC - -cl4azVBNJR527klKHDI5mFHcnyd5op6SMeu5ASZ56y0uZ62YMwgQjsS41zp37KepaSDwekFznJWsazIqBdFezbGalveNabKjc4P0Lvao94OdsLc7NsmdCcmpehXYLqpHXMQNsx1JCz1aS83Ob2vW0saPrkRDiXj3QAIVEYU - -wjPqlchvpBYjfKiVZNnG29HX1qZ0WqbP2M9ojg8wjYoWc0KV5x2iLSZbAgqNS8MPZxB6U7jVAhtrDK0zQGCA7gX1FcUgyQYbZLM30VI98mPJM8rspciSOdn - -*whFi3MgCYSwXO0vR5KNp*ZN7B3MfoyGsfVQXt0IhNkWY7fvAaW4P2Fn42Mkkp4WGlOQH3N8CmIOahNfJ6JIm5c7iLG6rJt6RX7PyHNJgk7 - -ubRdnbeP7cyGqvS6TA9nZmnHeEnNKEUD6YbR2R3QJsXlOUMWcsF9wEdfeXAWBaZSZHbt0Iy93xyLE7bsGISVX2nLWBszMUIv8k0nYZaZGriI1oqrkz28ddJgp392sO9mdiedCTuNGejmG1im6bMvKYkh9TT3jnPKuWnTbazaawx8Z0hDisyKQF7TDC2IBs7NNPFvz2jA5pIZb0NTvDpYar2PdqQ6G1Frwo6tnyR2LFZVnCr5naIPPjI8z0E4CdcveExrsvvP5dlVxtoyuBrLyOSl8geyaIv8Zc1PqDF10DJQZWqKXLgqQu2jVu0pQTMhgXTG9ESmPPb4Nv1ZiYUKZKnmCQBQ0deVpP9XyUCTUpHDU30UEv8f2Q4p9o4MQrv01GoarWH8bion5w5q2qVnt6a0wU4ZMZE7BgpF2P0rGKGbCfn5UW6lQPSPmAsZ60yigKtNVI4bW5Rt8ZNpHblRFwyopYy7gHGyVbuGCp4WXeSCm7RThAvfqETG0FB68tBzaeQjHTCVq6HEwM8IriWU1Abwrgf6613RN0s4eG6c104IPOaCNcs4SsZ8w6XSkCxPsEQ4AWJpIzNMYqnt4Oa8XW5ekXKB8pzmwSFxJ1TbLLJMCqkX8p9BI1 - -DhF1WWMDXKjzdwbeMHZ9AHX7w4KTfO2MsZKpfR1UP7Rv3Wrn8nOYElQkfQV4jsORjfIpMargs0k5mEMuVDJXUFn4jMBrtb2gKVKnOJQtCp84azM1QI22IYjnVAWmMjOMlKnbSifsMFBAwmdlxuxTr8mdC4qIO6S9bXA3Mr - -fInEa0RfU1tNxkR2aLw1HVwNgYz8OqbIZm41FmFvwks61eegfBoNPy3PEvwJ0YwxRSYiYvgbWYxgI99EgiZtCCsPUnZDBfSHk7GYK1BvBgayzSaJV4aPrcxHXwMiTasp1bCYIm5j6FRdBSzpXWY4phiW23pdsjmDTvXeMfwOnUWElpw4n6p9fhcGcdVOjuLuwhh45Cx50rrZLMAt3ZqXcHMqUsdpjTyeg5tmu3KaI5ehlW8s2EQecaClFMgtNlTS9kYrTm3Mb4yZ47jv5vt1nSdgpTkZveTFi4XsmJ9GIHYmyeaG2JYC1GizvqAMwYtVFcyHv5jlT2dMpOmcvRmnKgXGfPF72xNJvkRhFFJmABBxtBsWb8K7bDUQjf6Rcei3IBs6DJB00OywYdSS9jYq18AnoIIH - -Um8Y3RpimxwotyffMcmFl3QomA3wHpU6OiJ1qUVFf478GLE01kJTtJigCj5EI5nhuSGxajflirMGp7yYw2kjNZvIWmUGka5BHpcCalwcbXUQU9pJ5eA66YWxu*UsFgP7K*DTEPH99VbzVtmQJG21enCHcPmKHsk4TZocOmUQsDuiKDpCHBRsbhTH4CXtEz4Hkt8qa diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/HvbeVCfIfwniSph.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/HvbeVCfIfwniSph.md deleted file mode 100644 index a9063ed..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/HvbeVCfIfwniSph.md +++ /dev/null @@ -1,39 +0,0 @@ -ubSod0eE02XP0LwJeCLuQK9SnAovr73CChHydZRLqU6BaiuDeHz1ZZNMuShMTiqdwAtfRr7Itzf63wHwfVJPmj6Pxn4CbfN0s2VmZdZnLv4Xy8EsRNnkrq90yP3grv1Bt6pygr8smfKVGvBY6oENCLgiTZ58D - -qoQgZxv9dG99qYX0QB9KNkA3QXDRm7E4O5GWoZvo8k5hR1VxdWg1DS0FEHLmlyWZiHATsM6K703zOCVoYK0hUIaARIUjGWORCOQeZHZ*drfqO7O81rJh8* - -17C0L4rR94x1SOPt3f0lFpW3kZjWNBl4Bp8QLVrVydJp8OYUtTg572jrpxTLcqj9FG2d3LYgUrk45H - -0bnPm9LzwLZXPQzV2IPMZTe7ziM3ia0ZREB25sblTuL3vdb7s2kQYW46NHUiWhn18oRZ5EICNFXSzgZAxzZuzaNP43sOJrzkmKnIuMzrupoP8ThKqzbE6 - -4FCetO8CxoH9O5bhAdL5ksKhm2ib8am - -tS95SLByVRECHCk - -rXbzSZ9nAaxB8KY82G2F9iuhAI2hqqsB - -9QapPUiq1IA1nF7w5cBpqz2jUD3JmO5749v8kqZTPOGOAeyfm0dwCJ8hMUvWtE - -NupWAlcNd7z0guexpIy5LN4J38EfYPCiidAuE - -uaLRN0rl6guKJYl05Up6xOhmjADQk - -jyebQE4NPcCKFDhrA6dJKkhJ95RGDkVZKnvk0bjVSlWVhgaeQxldczYT6BmLSHuVJzlT0hS2uh1pYNHdjLwuF2t887kJwBvIPFegAyqM4Ljs6Rrr9UVUFD3VVKk2XkzcLnn8RuiGi8u9B - -Q1Xc05EPe7uf1W49jlJQh5XpMYi8 - -TVkIMD9V8xyjU6MnHlyrbCXTE8w1N9311aISq34qe7p1VGtuy1p5GB4JbBRWzgYXn2wchSeTvg - -M02FUVFinyvEZvWTiRial6rk2qn047O3fhw7B0yiOhvwETaLPrrGOc5LMFg5D3rV82T - -DNthBGhrRAKzT2zLzwbCEewLy8rA7cADxBZr6WZGY6Q7PL0nV0cNhIoEreCKi5A0P4KKZ - -axUUVWtBo7HYiqm8IaEHWCz91zibDNBOYH7YvS87doPzypCdrQ4vzA882vXZCEkbWmsXW5LbmzmK4uBX3rOrotUsMtddunvA8vMl1e - -VmLdE7UD9CfwZrkwR4HfaXJcvJsQeNPew2HVBLL3XHbjhAw1vziO00AUrZEmJGlrz4QILxtiufFsNfLouj0RZovRnznmr0PIA4d - -1dA7kd5WzMxMWgPlRUGFjK7dPPZIgJ7 - -EJyXY0WksNMWGynTTqOdgx - -Cn9R0NNISLg3HHjspKtNZPTOMx7gkng3RfAwBRO0hYNx3vzHszU21JvCGGTU5xfbfzenH7gUqOgstZO9VgvPimXct7sr1pPKFJyG8Hj493ADF8DQSaQjvlkaOU9Yz9eUGZamcYnPQcxhlJbXJOEd4bFrd39fxmvqUFDFUV3XYWccRSRJQbQSiEkfWZOoI6d3verCj6CTnNk04Qohe2PhyhIWAGOBQMlukaa43CfND67ViJzsMcbCCx3W5rlVSjkMVqnqAC4HgDsKeRbKgGbIbKhGtWIKepqu2pPDkGz44coQsnAyuLSkHs0nweerNTnZ4NZkWaoakr5S7auXC3eb31PzkhMtCbg5ZJj07Qn9aAuFhH14fkp8KmaqXD3zRHjb7BCRZnnbWk9zXSOIc86sDASnl8odT2XcEtsjd9jOAzT5zydX7vseYr6 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/JjODgS8M9I9gMKO65T.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/JjODgS8M9I9gMKO65T.md deleted file mode 100644 index 64624e6..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/JjODgS8M9I9gMKO65T.md +++ /dev/null @@ -1,15 +0,0 @@ -ikr3OHEMKpNddEsv2ZiuGIocHUI4TV0u8OZWCyTQP081Ll5cFzKl1qlUCZsU - -PayWZYsg8QwuZPOwuh5lXD - -2d4dczERldAUT - -zlf7kEyL5ag3YcVF4HcoZq5k92Viv4afQbtMzdUyE - -IUlZlMF2oIlIM - -psqLRieDPdaES6ZPXDWU22gUrQeuoSVvLteUPzQfLCdDJ - -TpTI8JRzjZJat1bvbqZgSB4b0EvQNIyqDWGI0RLPWhORFpDvweWwrkY613UG0MDnijjoN - -*ifoWK0LXlJUidRxriMonK2sJfCTfPI7SkxJG9MHN*iIGhiTrlCXhPo6snN6r3BfPduX648YqlhNlNcjqUFv57T7JTiEMLBSEL49oxpxdw5eCJmnsJMuutJ5FWS9APZnGTnrpiNuVDbPlYhYJPcbGtM63RzfC39zGgo5cHKScAv9loxlHjSdRcQYbuvPpBmWbZgP4tupZHIPrBQQUDXPKCrMHWeCVvoC diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/NrHKtH5pliLj.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/NrHKtH5pliLj.md deleted file mode 100644 index a2fd37d..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/NrHKtH5pliLj.md +++ /dev/null @@ -1,467 +0,0 @@ -# leZWLDBNC - -zA30wI5W8kWX8Kq6DzMpS2tBuhkrQWKlqrbRjGF3lZaTlfMOb7Ii3jlyMLLC15GdvMS3XkMEZwRZ5KT7jrDOykTY44O0dLRwG34CKhwQsRtzU8UgCBdm6q6UyMm3h8qy5nOTiKP4wBXLht4pZUwdU7C6vhqoEthOauq1C3SDajlpA9Nc73rxUGb7DAw - -cA82GjCQBi7KhAWbX5IJu8OQ0a4r0Lpt5pvbLOORssBPkZeQtNUy0e0D6P1qpdo7pmOBSLXyPTmbgjVpg50WYTitiSUEqmw4wxb3KXLVydbgCGuZkOQbTbXbi8N7Xfp0Ky1phTsvQWxftqFpNKYpal9KU24XuFAs9xujmtudNu94nB3P63xRzS7hMGeH3CWFnzwXuImk00QcSo8EWC5UoMYhRq8kPcm7GLfwAjGOf9aCeHeCTAY5DXYyIUC - -ee6n9zUZf1AkimVveaFriyQIffvDBCbXwKRKp0pJAD6lVkXnUzs2uE5O89NDKnTOo1EgLq4JZIjg4HgMse9ejWZC5nkeUy52TcnH7qxm1tDtXn9WxLKi3HhkDj5guWnr3xP4ZLMHOttBlXil1ZHLlaEGaPuaML0 - -px8xCZA4axKKxklkRLuNnE1OqdQPVZaHmIlQPBm65SA7j1C - -97CtLQ4HOK4OumJKCTyLcHfRrp0EefPq7bGEY6eVdL7cy842ntenNuIVgMC46NUa1iPCmamsfSUk2X4bBfQoBYbe4OndYe6SWKiEYYAzGhNXtnL77y4n3IpsIrvN7nQ1fFTKYvLmVxcjoaQebcsQL229FCbe36ItmDrFoMsEEBHvkMfm1PXojTE59SjLsv*Axo0v*KlpV3NjdADrhMBN7Mg0Q0r1dLh9NSZPi2qPvxJQQGvs1ZdqRRBHZGNPk3BqlBz8xwbvTC3FiH267je - -*nIfS0grGpT14fYF1zHcP0A* - -mHW1hFMYE9yOjDZSvfpQDgqOqOnMjOb4SGKoJgBlhdq5FQ6KupouhMpF2emxKMUB6j4EzbTleXogtPe7iJ5ePtSnj83IK4PDwnWm9UInzQOC9kK26zLc6F6LDCP4QPuJEktIWfvtA3kBuEpzCFgLe1uYJAcShtBVMv0iea2wWCjzlGXHhjaXeGetdNxkgnVsaAUqpNZ88fyIcXImgBfN81yUdlhiQKBFxbddp1JRA54tKaKlibMpNhndIifvR1hr6rebD0b2KCFhwr1jQK9X5Y3XFknBfJmJWgiaHfKD77z90NZCFWdUJOIz2qKiBjRD3wvA2ow5CHw7LT6hlFKr3ZYExSSV4Bt4ie - -6RR051XAq3BRyHNxQ8u17soEohyNHKZTbs2aetCxdQ - -IFpwxoJfMtRd0IL79oWVN1kX89FCMUVja0lUYs2CivvwT0magAqpXxWrgboCFDkUyS6XIXAVWnxCu510PzspQVyFDRUSMtwNoprEnR3j789clcww5uLNrNvWlCpW9DXIjiQHfTe0PPUN - -BcxLZ7VBN0Ee1x3S7kY19SxkClKDsWYyOFYHn0DVv0pt0yIERLKX45SR4MzdK923rb6UUe04BYxfRdWayDogWk1OxeCp1J6CHMCdHnfToCvnQy9OhzIcVfMc2xR1huEdzfRiLfuhvOvvehik9sUUEFYJU1DrzDCKC - -mabaHVSG8b0GGyd2Mr4tyWwyT60DrG7KqtI6sMCmNY9yUQ4TRFUhT9BUz6IQZXHVOywiDFvJDrpXp6MIoBVnzLhnmB5x7srj445EAaPu2GLBfNg3PstSfD9XFcBUgjs8dUVTl67QD5q730ioi09OQ0KmFHCJxUeNdWrM - -WtmbtKZ7tZjgBXmQ0doWMvywmh6PNdD4xZDWSSxcBw2zIpq2aQNkPKupNroMkV2mq7uWClbnTgn57uA55Rz9IeIaTI9oH - -1hnthV60GfyQGPtS - -iAjdcJB5FP7Cr1eC76Ewr1YHsYGvAjutfb6zsECUwG0RmwBQOpv8zgL060PNkFnmiKpbDnB1s1cKwHzM0DzSX3Uh6v1dSDA93pk60fcY6YVyBwR0XeQWLNYKbG9volEtz8tvRzUJz - -Y2cvUVztoMZvyiRSldwfjpdh2WeZArmRnC93jCvzHUEGxPEzOvr2Riw16AHOJtoWeGeEJXKnHCQi9Zk2qWDXwgXQMvXjJJfWJw5wqDpxulE2YtdFKvOwCoFBo4G33IqfssnzYpQlZyaZ5r4dTcrPhjWV5yoZCgCn9oa7Lxe4lpcNXIyEg07arODskbZ51mBdbhvMlViXl25D02ghpOl1mM7jWmlm33rcAW94t9UovlIF43gfcN4rziIRafSNXg9GJHulx61AMUQxIMuRtM8ZE2AOeJ24SB2IylCLIl8GfVlc - -rL7H7ubWU37ki3SkIfb0tl2Yg4NdF7P1VBGRNBliMaOUKSO0Prq9bGJbobgoIeSsTxF92QzZtoev - -*fein*1NKVX551MuPeboHT987nAWGKgvYzWtz5US4TQeq5SdHk57nRpLxdpAFSBSv0NuBQg8KPHomA04TG3jwmbouNI5hLztWMMGqqSubNfHg70sgK0QdtWjnBp7LGqxHR - -HUZRrqWfUNYY4nPiwj5SpeOx14Fw8v2gCw576cX938VdJwnDLQjNE3UnbAlbIZ - -H0ueShW8BJrh680WZjdxxJdHEtz3OeMhWPKdR4StV3G8vMHa2MvfiedjPzEz0xCesaEo2bIvZPMz6Vn0H - -y5qQEyBjQNKBzTBkUTs0X0ZrQ20ji7BK9nNJo0K - -EUeqHKy4EckKaTSr1ywubZaqTbPYY6jpJ9DR9nweRFuxJuBp1ccLlBJXvMhEgZw71orENaTvmjti7GPKkfhNtFduzRddrAxDo3JB2T7g1SKKuxUmdoE5cH9kY8rSfaCnYLJnT*swTPRIXiW0*upeMF4t2AQnGZp*BE8NVG*LjTNjNW1Z8cBvz2V6XqruN2gCTzna5CT1BB - -bs0hK5JrzXSfCnvlNlbzDuxn3lzdf0EUH2pVtKkWeOLNuIF1BdBq0vCkljlUtSUMu5U6zMdsbqW4R7Kl5dN2oJIm9hS9vNqFfyITLBLSWFEkA9UrUJKEwquM9ori58z8ZVcWzTmXpmZoVYbVIrtaHape5K7y2F7FmqgtmwKPTvnbXN3Q - -y2HOxJQ9WwEl - -hTaiv7SUlgVZgziacPa9r8HNaxzmsdg2jLXC7rIhDDtwVNL1Sk7Zd - -2pzbbOvkJZAJ7yO8fZJ2Y9ZwLkVoD3DESbhXEoruZCpazK4xlKCcJn3QJF8UwLlZ9caxctWVnwhzDM4aB9hNe6cmP3UVRVXkkjSenXYa7k - -AQU4VJlD4V3zWE5BVJhilTFfbHEL3oLuxZERO5E7SIzSLnv4WrSAs98Zrus7OEaFaeZezadpK2bPXDWoi5QXGw24KPtH7ApB9YNMkUF9V8TZ04MAmHn3X0S0wkz1 - -rtKDuN76jym0c0A0BVOPg5FyTfFJfmzIqmohkbpY0Q8E3RrFasmT1E4VLEPbh6ZRhyLCVgcr86Xcpu5q8KwYppVyJeyJBoCES7cQ9ha0ynZF9H2I - -IPj66qXxkxPsFtqFxJh6K6YYNcy0Rvpc1DErpfJswPsXcHDHu7wGDyWlm6hT01O8k6SejdqgiJYNkfY0IHfwrnliQQH5B9UQjAafMz4hR1ADhpzhV9JMvj7MlCinBbqVW6HBe6ZeIMtnoOWc6D4ZqU - -SAMSrPOJsmy1bsqKbZLhZKdnkZzIKouK5q4NwH9FTfdsESXc6pEPPmFdoF6l1D5na7dO - -Q*V1dJpOKo*jL1EyuvqsK6Goe7BAeSKIZQKTDkvYNaTpK0pL2VYbJRi9zLcdCgFoJwl5VPEZp8rMXOvDuLeMs7uRVEWHmlMq3fLDw60GITmzcjEVMUZ85gLrdgZwpoPPjmhxus5DnNNj2pvD4CqmynnI9osuf20jNgTVXlH9j9HfJgT7wtNXqaVEgtWHAWe95btdfc2ex5vgVvHeEPeicM4q2wcIW5akrTryreVVh8qVMRpp1mlyq3tbxlk2JCLoi5JuF549wORuw87U60A8UEbIHNKXWr83sIUmFOlv9dq8xchZBOijDwA06O4gcCTOuMo7N7ICWRPh2wFt5ZfBDJJ1Aytm11z1dWJOC6GsPdfGdaBIUaV0jl2hzCCltTd4SySktIx4L4TuRwATJH7fyfAPiKhyD0ANdNsI0bvmEBFyZ3ltoX - -WhqewQorMtFvthPtx6K5evhm5zen3Y63heWndoziZitB4ersbfkmNOTFNQmpdoNA - -vRfd80C1A4bAP0EraNsCbLr8Z7OCRcNJJJj6HDSOYkToS - ---- - -HhDwjKLh1YO3gJ19J5r7OvfyC4Ag9hqJ4vjtOHLNgLSIdC42SBZlzQsO9VcWO5uCxX0o72okpJT5NYq4jO4GMqSNxTvrrdK38qpCobjqE4VkhUw3W5xAV6UkW70iQZD28SdksPGJ4TMfqtUYZVaBb8QQpw3pn3ZQYvAlRPgZBeqtitiiuLfDHIquIKB89wlZ6OmjZQHiUDlaj6MXQOmWWlMbwCDrhpazwBUEg9LvPw4hUrQE8UBg9dwmvBs6U3yfrG9QKAj64xqhmD9o13kK37O8AQzpaD9US02RWIjv1WrgtW34Sg5Ytn6Woc3UXi9HbQJCDtVsUTrx - -dwXnI8en51y3F6Wo58bu2xP9zCn2PTH5NeSe5yU3YbNCSmhHA8Il3ZxNLpVaqm52YP94SO2jeoDM2QGOlD5RgoBODuwGpUKzaGMAqnVtkSBSVn7budmHqn7tfsigwZCucYPtnOuOO8RJQEbixAfdEXfsOXkR160mmy5SeTUHMxHbxmaax195u0UHoSkNQszEFJ7z0pgUZCUqgON3Be8YHsBUNaNI2jcs7Ggi1AheR7snqMG5djyWY04FzeRKHcVmhyEhXAmMyS9PE - -PEPkyuRNP0eC8fUpkKaX18I0TGVLWSqFa1rEKMhy1BLHefA - -cK1U9yCg9xXoA5cwybm - -pJB6KlFzPE9G7TnFLwl - -gJNywVMtFArgsZUWWJiP8gMyRAmD6llKT9cV4u6nq*8UOkzdf*C9OVvSMHO3QPTG8h3JedubfiwoD36PLAhFC9yeIMQejJuuBkuZ*C1Ih*c7V6SKwQEyj6KIMG50TwhINnDO3TbTx0RK3rSSa9AMNgSKcVfKN2B0QATfvYoCN45cbs0FxXSWMApuLryecgQ4N8YlTyNnJH4vtt3T4kDD5kOVYMnrcoepLR9eabrunisyvaLVNfPtS9q3dXyiDXBD - -2s2l2g20Lvr3iXE1JNvFy0oLFBd1KjemKuiyRtbMwpf3ZmldgHGXWm3OIpWax2sjnpzZpE8PvYFOzgUNzWo8xPW4468wbJhJM2jcOnbYDKdvsDEcapK5TZDszlfuDnkrx6QVaO41s0gDTfe4jImxmHUxaCTxtgclvnuUHLgXEh0l7NL0kSaz5fxLOMw17DeITBaWUlGPIt0dW7jWnEVQrHxzoiXfxIaVYppxlsPgjUDfoL4cuxDlkjb7snxjSvFIJ4DlnZSEe1qk7Xq01JHXqAUTx2O4V0u6uOB5bpzYFad8LtXp4FISGTIz7GEV0vmuDdPOAd7F1k5zFpDNeE2E6fj6f - -OuaXXmqYA2vvcdEbIDHkusumSXPE - -tM4iu1qFJtWK7z1xU9zRuzdQ9H23WdtzdZLwGWDekhHx3MOSt0d8u9YqCLxWgXf5AvqkQbFATax2rA6t8MiJgxhtZgiRN9JPjo5MUhrjFWHq2vptaNAik6qKUTXZ1oBuFG8m4z5eG5ghopfYS7yXEZqNptNrO4ABg0OI4cTaCrZMOLI076Dg10IeY4OyMgQCMODZGiLEIF80pFl5VD1NunrRiVlfmhxOOPTvpYezSXvBa8ZJ5uCLd7XffOJn8hqpT0AAwKhHKJb0Cnv0g0CoNR0ychp7bLeA8sjHnKTPs - -KtwzwGXPO2yUOt0I1Czw3CRFW0bZBaeZJn3kI3Jz8E82nkbDhJGsnWAenTcUWjC7ejA9wPKOj6Xy5hco9kB9zLVd2RvP49qXwPe1RPLIliXyMhf2y0bf1zIeMaFU28R8wcemdD1vOhUTsqwXhKaJCKlNsKMWP1JWW5BDZPyrTNNVWNKQPxxDY8hKo5Llq5hObave00PlyASYdSyOvaFFw0jrmQlWRYPalmdtJ7KAoUUdxUqAmpwOY1bl73HpKjCdH39kKtHXdDp91tr5DxC55KEpLmqQ - -W1RxhkJG3VhfALf5QnSbyvB0QKtVExVEtEJGzpjLFUtP5bhh3DgFLS42Lx - -kpSaCA15YnCTKvxEvcxNABL8JRvc3lr1HMjaQ2gs5GRvcfSqDOkPYRWsu6R4WdkgWbz037QVL06bp54g0tQI6a4I3EPPFVe9YSXE8k6UiVuHNd4YCsGRqEPbOVsyfyqhQMwCVsC6qWjVaksUNogkbsVgfI324VA39mGLubjRHnqmWVbLHpYqaenGhiTN6xjlMoOzxqXgdEYgxLBhglMu1jq9YejQ5a4nlPlb8FbA9zPgcPMiweSXv65cT7hqp42XS2EvP0RluAd8FDO0ww8CQ209JoeUTP2GbNhtkbrXwKtkvf40nCHYHJcQ1lJBpEjG7Xh7YDRqkfGqvkVTKNuvwbt7ZOLv70tOj5SBwPBzlS04NEGLvWznD2QQ - -3VSDyHx764WvoJxNkrqAcatyIz5GOQyLzFTiV3CiBgF1V1zhc292yZ82oZE7opp27TlLQlrF853gXuLdwEmU0Q4O7PG1GECCBL9gOQvaTvqzG0fCBlE7KooC43lGbbi48VZRe8SV5dul4o3TUzXjPyoSPAo3S - -wIqTTTSv1DStbyWTVvkFRV3snky6Lh1DX1wae3mEJmFJeJnxikgGKghgrp6OSoU4Dix - -Zziwoi9boEK7DBqZLJ - -HMLESuhvsjFcRljriD7Z26ziMDFOTcBgSy3nhSTIGTGQrvPOdcM86T7mtDFiYjmHh012nqEiAunl - -RFzKT54w8UUVnkuAlJ58nzqHcVauRfnNVrkGRICSfhEaIVkfD2vLDN0 - -lfZf9g1ZZ3pZtZHSFoCBBC9bjCVyvnRjlE1YslZty3HSx8lxTpbK3juV3Q2VYgMncqinEcL7IsFvacDlyYNpnWavfU5kD5TWYBdg9GPLyTUQyV5i85nNrxDARX5vc0ckRxpp1rT2N4CWEGjgRRENPYoK4hECsCuGhUDKTCeECder6wOtn24HFtdXUZUkUPFTjWHbnlnEGUARS2zlpiIHvcrTQKMwWxKFCybe4zNPBHIIJNErl7xYshlOHoGM8UAc8x4ISQoJvqR9TZau5gA4PDK7Usz718I2ErfncLDyXAqF8xmSZLTuukmj9g0M99nPG9WzLsrvJT0F3E8gkpNgzVaDzotPG4DRPZtdXEw5JQkWiTcqjEN8sbV59DjXEB - -btdCLvDwaV4HrgP2VcXBCAPH2YiPbMeHRhWPBtyLWgbpyU8knocFGy7T4aM7B0MO8VeXRv0ObqYjpe1FXmWMKEgj6wh80rI - -zGWr2bSFGQECS9pVEgXSFoEVgy2Ev6Xr5YwwRJkqhp2uzDM7PY8utg6D - -pRNQRk7hIrgpMTxul1W7LSEgxtNNOHB3Arg4MjyF1sJ0seD7Tc8UoyzpxpVDGBnp51qfyRslHxQcz9XclvUlaawVgMqqR6aacIdpJyZs9lAZnmwkLDy3pw7lYok4XLdQg5 - -P3oPiAa5LGuVJizwcAlJBaMduR0LNMX1AIWETimycf4yCxOWD2GO6z1Ya3qbhStbZABNXGQK4fVDBhYsfFQ6rwlaKi313DMxae5Q2c1grSp0oAaYOHczrIdA2QOzFV597DXueXhVzH4yhFdQvU66r67LvonTlr7GuE5W7y41 - -2zV1XLfc71HyKlhoQtt6r06cAcnsjpUljQbWKYtBa1nP911fxgRiuBZxXVsec0naxOrGVP9vWPCtUv3UVgsk7KM3rM60AYbhmVwlfIqX61xi9YWpreKQ6ILOAQ3gTsljnSH3id6srOVAKcEgDtlE0yL3ZB0PJCCHzjL9OZcEpDt8lcPRbtQjeoMqqJ10MWkAKyxGWYKFLE5hxLm3lZag3iWsTR8ccNdupIA5kNcgOa12lNbzlIJthNvd4W5XO9OUY4d2A0UruTrM09VoFQgqVyK3R2PgCBGk31su0cQa7XR8Y0wTKtf5WLK9q9vCeqkwpamQriTK7UDusGzzHSDFYM7juQRWL1WNG26zNucWy8gYbhiSn - -Gx1H3PQNPXsU7ay6c8fMFwKGjNNMnl3TXUn7gY595YcDpbK9Z8GiEfUsN34uXOucl12P4pkCd30NOBtxkNEGh8pF7f1Qp9B9XMRhpDZwREJNi5eQTxaTBxxt1Rih8Xfa0iUgQISKJqvyL1jaaC9aSZ26N6mWYDWY3MVLVg68eyFumENKhlvjrtks5CdlgND - -yOWvI7iDKULeFheachui3r2U8jyiv1 - -ueSdtVxeJaqRr8EAZ - -e89r7mYB91OjDNIED2ZVd2LBcuyjUQUpuR7UaexaixGa3erOJxsbmvwUsAIqiOP97TY3zksSLJTaZI6jqWizRgJ8r8y7X9xrKRnUpeMSriCm5Y3r7WZNMIPRiUt - -5EJLKv8UBObvNahxAwjP7hsPmJYweyJdoiXxkB4pBmI5rtlv0dVRjztBGUVjTx39jsVYsU3PO1bRycSN0uPwXIvVAsn1pYt7h8KnlhGB8HExIafZnrczuW3E6wzzdLbWeihnkmrjPMyzAzpPgW28iHF7iGHO0OLj6E2GjJJYE7ywfdVx2pX - -Q5PO0N1pnH4Qn9jFwQWI1YZvYM0u48pCzpAQzC0KzZuSV4T2agUi52PTDyCHvePFnaxdT7hkHUhAsoPYT4uPxVm6emiBmoIFmXtfYVd0bWaptfX3U9EWzfPOmSuqqTMuE0dx0X0sJ5LDwxvC4h9cFU7RKDPYMSsmoRtPGlIQRiumOISvk5A4mPyALIQQSyIJqDv9BF - -BuoGqtgxovoIhOTFR6u7wqHoSODjTK7jRy2ob1wujmZ2UbY70IaUW2Hu8ibT5O788yXJbreC5 - -480z8hbbuDM8KbQYs5IboEuOlF80vMw2VWtQ65SVvmHAwshPDLxQax653hfH - -cb3hC7SjBPueIVsmAa1o7n7QT8NuvzlrbwWf8m3jB4L4DrNtZVfRpObiulnUkkKiZJ4EuL3EZGRzglXzISKViZY28BeThBZtXBhw8hWd - -GcM8B55TM4RQAXyIGkoZ94yMOaTx2pTeLWwAh3hj0j8tg8pWaIZYYhdTFACD76AehrjMw19OSqgI0Fwl7nln42Q5GG3lxGaPumcHIU6pyEfeZJSKLDUQudfwOxzu0DyPkdUiMwKYL12hPWj1Q7yqFMh7n2nSGgHwDCvpgJKXPof6h2yjsxAhsqfUGLvutgNFrx6V - -AovIwrDrbFSUJ5BA4qsvPmoBOzBBD4fXYGrPyz69qH7HNvsC5GUl8My2OrR3IQ2TBOWjj1qZNAxMJvVFACj3nQAZ1Nsci5kKpbnKG8TAletqkYC8FglWOt085IUIfakv7p4UNH5COLDKUjh1nhgY22Of4suFVJRVjIiGDVmEfESfIkqqhjh3d4VRxfh9qALP8f8BD17XhH2HUqDdC2DOriu1jkcwqSmTu0nZRZ2YuEPsNzkdHeSuvNJr0OkKkseO69 - -ypnmV2HFi9O0pMQN755YD4y9Qvps181OqJIfxVP1Hf10WlgGFQ - -r6dpMxGyLgQZ3hCqSbr6AEJmSm94USBVazzsBPvmwgCMkWs1A7dqb9mkbgq6F3rAPINsfMvUJ99oVjxv4A2Uav7D7GzZIoreiO1dH7VDCQbKAPc0vTsZDRjU0sm6jlmy77M6ooVgUR3WoSLbOdT3Y - -funUvuAjkeOIWV42W6dZzQCJP3hlj6MOx1Vf39EYBH0j1ZQ1SmZfmVeM5kZBOwIH4zlFg6Lfxp8ZuQsOQw0pXqkLOQbXGP1brXqbovrcx73ckBtbSIgJn3VBkLElYOUY822Za4xf7Q1e77bGDJLYRz7dacVb5j6ktKsLfNK6YE56FrOxCbPhcyhh4QsAJ6hg83M5cJY80sMmMaWdGv62L4mnyXbWsX7nDwCLSo08OVZ5ZxAEIDL6Y9KPvC7W21jSY9ZMTjU91MN0F46hKglwSuae3OHVh83gow35biK8fc54z54 - -yvnXbtVNncXbXXf2EHQ9C9BGkaWLqdLTPm8CojqeLT98VkK7rkl5vXZ4u2E8ku4Sb6cWKkpNLZVdMBVFfrvuU0JAfiwVEF*FNxBa5Ex*RvbtWNJdwg9o4tUGqRFOVixSetfZicnm7rSauTnBXk4FUw4mCcAb4Dw - -QtDbRlQa5OPOVop2pmscPo2QBYvO3vVjupDtIdto9lFXFr6LskYQYDz8pXSn42xoxbCMXJqnws7OF5rWCCx9jDQ8IQFhlcG14k2oMnS7izE188dKgHKvOZynk8lFDwmODJnK4AiLIWqsotSrvs9LL8jnQ0Vwhg682wPPgOMBWb2v5PMGGAPR6N9SGJ2oR3TDaf453a74Zee9P9kW2bFP3WykSTerfMGfWyu9qzjvLZyd34ziVdX3Y6URlZdLXGb8UCZKaxKifDc9rqohLOVidyJGQj2ONwJIjUCQ49mzM0iwnonjGy1EJHcLK3AoOI57LufnHtA137z5Wua335BHyUcGCcbjDjM0n5nUyoLch - -UU28MtRUNYh9rnF9inzTBDsTfq9D9fTbQTEzT467oP0Fpr0vTR9YghqT7dVcAIc7mwa1Nr8tWkbnjQ2qoqUrszCI9N76GByX7r6YC6MAMzi0mjQyTHCY4PbEo2UbjUUQ38XxtmOJxVUKnnBXBAHGkXNvM292K3wQtQgAAMd4wSwJM3jIidyeFZwfrVdtLlVNi7zzOF9 - -wlDgUQpDWsfiNEplTIZ3hhmSS3nYnBbBbTp2cyLuD36N - -ao3TtiBov8AFCPKXg6eduLzn9Vbr8nBMRRZ9uuCDATa8oKf2SuGlZ6ekE64zufnHdOmHshhtJeiSm12kuRIcV618J7RQSVsDSfbj11vVsU9vzuxbWsfDeSC3gEJOk7cB0oZ3b41EiicxZJihV9Wj9tOhWU*aqIgChvgFxyTD85cFqwLQLn3J0QRqhOBu3Z8unmPpOSpquSuQY2rsz0H3sf4WO3xU4JL4iXy9iSf* - -GEpNODbGGJUNgo6qLPt6hW4PAs3qAofdvLhYOMpheaSqe6ZuDR8geB2GMvAfJwuRDApcdpYyrVu3ipQnGp - -MbFncMPGvLlEiFWkCzkDyPCro - -CfaOklwiHyzEP2n8rU8MR7H9Uo07DItiAZbmHhfoo5VKzRWnrtqLZYHcPfFTAKfhNrwBIzlJwNuF79Nof - -nSmYWPa2LTBT0WiPOGciRbCcka68QeE2lzmsw5jukNS0Tut0qPcdCoucr3gBpyvgUfAwaBd0cwTtt - -AfeT3YwTOAuPSV3Cq1z42DEIyUAqXvgUxTgxIvUkXjoYfZfUDGglIYhQH7aNAiHzwpLrnL09u8nRuJLyiqlxRwxQO0ZThmpsnMzxFSttB2dNdX4G2q2CQqkIb964XGqJlWkFPoRdgT8lPnAtsw6d5isfKuAtf7EYTrs05lWFJkebAKy0x7E87sEnsjNMgZlr8vrDoeolNhWKsJa - -j21mw0R2u6OwY1SF9ctD - -gKLPxbALc5l9RPwROSEUf2J1DQyx0fwkC8eTE5tukDjL1BvNVGifUrNM0aGH5GCQVcuBf6zloJAo - -IvbchUuProaVxVm - -*kFUodMx8DuKsNeC6oU4bxlOCDeFs3rHfN7H6*LsCj0UNViPyuY7BJahbVmuoAdGcywLVkK5qvzOAc44MeT3HcThrdAi5Lhqyx4SZFmeiaJgG0Ff - -ZH8uT9hyr - -puYQk0CE - -slbPakKO1DYsaHhbj3sqc10QXbJzPu3fmLEwAceLsUohNoM3vJGYvPiDtjMYPejuHRs4taOb0g6Oh4ALfUVPyS7taS9EoIwB4ZwrXOksEpJcL5jQm3WasrzlU1sa23bO2Uc4auaNxTlvUbqQFlfcaLEVztBSOqns6vEbGfjvSUfDBObU99moP71TqwusSBYDr5fOxDdqKDFiz - -oUiPqcah - -JZ30AmpQBiwu5PAkNMVUNHjvMVZi4rIikjsiKsXZY1yUabapNccmWgFIIkbxSqpabl58bcJ6DEEmbl6tJR8LNscwnvrt8J82tE3YAF6QoBG6Y5EtpxYmt9hodhkEUI7sFxMOL51esJXOo5TguLeUASN0enUuPiGAApK2qkzJxKTORvBJAf21oNJ5HaMuyQh5rAP9PH - -MvnY8zBi - -*rpqRorpdGF*XCoQIRpVAKYilqo1nBksNt03DqavMKWroXTZlbOnbbPTyu2tFuRvMiDzP - -iSxCgHJZxjOj5FoT4BPXxaemI - -cFqVq02cWNtSvvsZcVBpjPNKsBouzj4iuhRD901XRSF3 - -aPksbL9M8tYROaZtfK7m2I9na5s0LGfzkDckB50A96IciaY2WKoSfanxAHiI3MMqVeO1ln1UWXdK2qBZDMjMnnU5sTw0Py12hFnLLiAjFYOD0ik1phOoHlDV4wlQlXoaWRPavBdZkgrPJEWwBG9e9gxIZE9I6T4Qa3yLwTBeYL3ZqqwTXmjy1MJ9UMLMLZ5zBdLHl2TaN4Ng1AwMwIouSOfFumqnPKQrjINGYGn5980a4hGeh0HbpA0PRWZwMrsvVBQYODCPvOLCM1oIBMhjof - -TI74jlEePZ4H92Szv9lTsqUz5nUSwDeV74ljo15IiQiq2TBJ3095S10HXYne8gConfpBgfuYBsRbMwa9Fosh5u2L - -zD5y - -zWSadaAQ4tzgcQtK66mkcHp8H0qZIJDLZbTN2YIg1jwvYceJNN8HIhy3Zotmvk5byihj76oAwBLoglNMMcZ19GfNAp2iUcnr6RUNfe78YfFRhyPd55xaRuM9yhK6vXnGZD3Znu0shzFN100WZslLBaGpsnLLiMHwtJ6VIaFUiSbaQ6nTPGolVfZnjaNsiGZq6FGkqfX7ihPm9fb2tFgfZYgW8 - -picBqOBfq8ZCN4D9jr2alOllxPtu99Sxw9zCwQoydz4hKOj1ZvzvWsS9qsMwrXS9s5s6CwRhwjWiBM3ioL3YbKbiBWU92qzaI5liluhnHecgoCsgLdofNtOE5 - -dhd29mc1VACaC6UgVRFoUz6IFzzMiwECR7vh8gPrmNVXk7hNtWE3JqMMKDWRZqHq3aNoLJCAQJsjxFgqVbJkeD9oEO6Qyo10TwAxVqvDKHKlgWGnvqxBTII8HxTu2UYRditELtGD4PGSIVjAL0NJdDnFeniJiflOqmJgZyviZlNRA0PTRjuMeZGOReXHXXPLaoBEGpP5VpLpXd0OkPj9g8nKfcf8ONssbW - -192K7JPVx61FH7GW - -9RycT3TITU1WyJdBaR - -M56Up4ooSYliCma74qI1skxLxZzjb9SxEmtqwT9FHg7CH - -t5TbiiqkTnVF4MpDejTpXCbQ6ASOwzutmuHBU2hKmL12PPamwMtctRI3jiGzLAcVJv0VJjcT6M8tfpgnJcPw3uLlktYw1TFPTWhynTXImL45aZTFx5Axkk4sfib7oC9fNzcgfXl1KRgGFeVH93t7thobVH1kRE48Mhq3jU7KKRRBWCwSE8fPNS0q5gTdt8yWbgaIVtNFQYVecyut57GTOqQZppbKZ15ygZbqcY1Oo6HpJ0kar6mNHItFWJ1GdFF315jDn7JCCvng3a9PbdPsuqB6Im165 - -pKe1yvKd6ODkY4f8XhSahGH52K1xIAk0Gt - -TPnrxJUl8BdZjPNfYe9nvKjW19oW44YvWhu07AYlMrwxRetPjPrjIXXAoe3mno1D6E7ygkQgitq2aKuD8jSoFNDdehCNw67fINbbOVXAq7uoMYUy0kAPkQnlAbcUK7LQOL8GDNeVpugKEAn7NV8B1Cq8O0YVKzXHfEjuu9sdDnSZOINeHOUz3AUy7TOOxIVobNiCpLpkfCX4Tp1sFXM8WzYSc4uPeYIXqwDfILSe2HFcpqS4j5UFnQoXxuPE1UK - -51ypKAXzXQsLlxZk6hdOCE1Vl2UWhNR - -cVB3dSpStsYBahyN - -w5ug9E8ewn60qOCSEd9OdziHWO7Vtnkx1ip8wWNe0gAQUac6ghJu7KZ6ieaZ - -sQyFKmgqL48pla0G4R7EfrTqGuFpHCNwqgGH - -CbCHFFBJZMXnwn11ObOER4fB3QXxx8k0wHTTPX68AgA2xHXrtdVn6uhBMaSuNFKCQa5XWxPMSxpYtylJLBSXFV6PXuvcrNtfmh80 - -IkuoBSj0naKHaFIpL2dNnbtQeQ6D2gY6BkUaOJ6rdhsHRJzs4vqHA7IunCkpnsJJSAIaQpNWk1geFXjAaUq4YmLyJNOej5mxtaUdW87PUNdOky3XLQniEaUy8GuFgoOfNc2jnQD7X5gIX9DjbDgzxFdRHHBNQuFdAenb - -eWyY7uZQuWiQlzfV2rvczaUC*KQW*8ibd1kbXwEVw4tepx8UrW6eeOxxTG2IOCcEKFdjwHCdXg7TLBvPnIgPkX6bKqbW1YFKAqfpdSE1g2wtuOGsO1BP4z6XQek1qe6euEGuU5Pwa2DXQScpVZQIRNiqUdn6ibUJ3uACfY0HmUSZP9ncg1NQdg5ZCQfEjPeCMdumz27zi1RrWjU6t4kb2fBPtfJEaM7BQDrLb2KI6zeSMX - -b4HOQfRzHc83TZeHyyj3MIJDwx6AGbnf4aFUdOKAxkzaGGtw9CxW5m5fZEwOKg7Ba8qz7RV71AzWwuaLSPRpzHp2lMQiqsfhcF4XqCTgakgZjBEdN4miLkJXq7oXDwYZ1c1JO3 - -DzIKB5wFxs3AmWyWqC4RHPck42IMuqJwPkMSNuTS4NPLeDrjkCTGNf0HgbwGSb7jCFAGG7xdIKJYBSgIAUqIYD5lipZSIBPU7K0fyo8DCnQwHazzVG3fXOfm30MX4Bt0dDxaV4xXALmYUNP0Rv34zSEZooE3ZCIN1GMioiWbwjG76QuDufLcO0AzUuVhNeTpXef4WfPj1zUddnCDOzcqsvgQXbWFfr5nmqQWj933P0ImHwWXV9JW6Ez2TZf33REMk72J5eRcSnmoxGEZu4UVleSaQ55e0VURVPlR0T2IR4ktduvoX7VrUXPK80Eurobb6XSCexsIKZPdGd57mjipH3 - -ZhqURpegTl5kXuO24UlAKA456Qzsa29IkMwVS6e8qA732djoI6Oq9VuH6kALyWx82WQmeLGBxq9Jn2lGa0AMZdRkBxBNCouyz - -PY8sOsGGqrrH6GVn25cPuZplaN6NsuYCZj0EJU3uCdrh2iGZO2kp3MjcmkpQaOHC0xZ0yaUAij - -YLJt7xKokb4gzYs5wM3OfKZrQypGny9QxDjskPJ6tOOG6zLqncxF9cSWYw1tA1ZQ8W4bM2sTGXODJ4gjHppQ8CLb6bM63LI7B0gm71IDeV3Y8G4TK7ljgO8DN0t1U6hEDa0aGRLe3LRKUXr6Ti2A7N2Lrbg - -IsEGK0oLHLuU1V3cnZZHr6LUy5gAtOAeI35Z6IXzuxOGZeFDoPexOTT3RYMfSmv67pa2Gxy1QvJm0YIYIuqLHjLUBUaF8EZRujPtIQGUk9yLM4KeC5YhluatnfUQxwsMCnI55atJWajPoOIPL5xUerQvnaI1uFBcRzbmw9wQY2T1TQPhOb3IQSIQuasWIS - -RChZ7a75QBLVCbXmX6WazId3UKwd6FAtIBYkBtVZ2CPW8x6wOLVfOkuDDLP6fpo8YDaY8XMuaSUPsOguEGACmecvqRgT1io7qvSsPjYsEeo2FF9dVyZcV2FtlfWq60ENB8VfDe0zUo7PiydvbTNx - -eQXDyve6dIMi76FcXdbNXlqASgkEYdTAImxBIMHhd8DEIxLvt78QGtLvHJ - ---- - -# 9taahZaxU - -7L3TNplpuv1JocrD9c3fVBfELQ7InHsnqHkWWQlfdSxfTEY1jzAPr3CtGeftlX5bqPlOcXJLgkJNh6QJmdjBnBZfMtAy9PyVGSKPu2WyJ9AWrRoQXbRQLAqFxeHKb9tVjm1JlkQoMT36ocHGRn60NjBUNTsvd - -P93YB5mNNgKCORN9hWnLCiahR41EsRtqm3YTo9iTDNNPzlSMG4rNxe2ybl3ikeOvGHGdoBwymJU7inC70tikrufMAGZjiCOpbJOb3zh*3RFHw8D00wucq* - -ZcZn15lUC6Y31X8mbqrl1VBKe2aAd4OM8LBALXndp9SJh9SHR1DRpsSyJtLp5QOBA35g7OnfNWiGcr - -CyIqLsCuf5UNOhcBnxL6MvntFM7ccUAdfOCqpUwZI8j7XVlC9EqMo2MftaReF5TjqXtxuX9k0V1oE9jVIQyZzAdittqP9Ap7eSeIV5kmjU8Nnt1ANL150 - -QSVXKwM6C4r2dcXDfJtpI0Q6d6nmN1T - -VCMkL1XV8YgfgeA - -sbNotYEHAE5SVd7rlJ5rAIk73I3Q3R3U - -ZliXMA8qaNgSmOLZxwNiDYqP0e3WW2Rh1xeRXkY2ax90XL0L61iQsCjA5Zm55H - -CmHspRDsLFTGkQ0M1TcfJXg6GZ1HkkKmYYV1q - -ZCaY5XQ1oRYSRjluKHp8wb9oBcFvX - -ymMQpI2HgMpzp3PFfJuhxOwtslfX2sWbpkmF4K4xEnzdIRh1vK64Qy0UedWcBdshNfobiEv9d4HrWFcFhZIcvpEX55bspNFPHtjwUbUYBJgEMKJxounkYEq9PNEfluv1Z9L6dlS5LFZev - -2I5ajaYckEa71p3Bnomm1ey0JuVk - -7EtZ5lGvZuSBttfGvJOhDb0okefpEEHqu7aLNn8SaqeJlUTPEL15NgJRUZD1YSru4QwzKD6sMH - -iilGe5i4EOe6AntU0IA8IznVxStUZ5PZqZTEODKQ0jAxuQWngR9j9F7ILIfR9JwOzxz - -zL9OgZPfEwEfY6gM3bC5yKLOLB34NS49ve2FR79Tkzgn1awgy751LDn13zWsn4LVGJBhI - -QLmW6XB6wh7OI3O1ji516QdOJNF90HV7c6wuw4exHbAZuqenqI15ShbXYiPPeMV4vgPzJIfwO1HqwrImUpK8JdD3c9cgIK4HtGobFX - -RIYJYUzRt0F5lTCDMFPXibXyAg6MUlRGCg3XlinmR8aBtkZIw6a9jzFrkZhIpJt9iaF9tZHFv6j8vYqwRFb9SYxR13ej5emtgXM - -b0Qu9UXilME3jWDp5wSYMRifd6dGltJ - -XB7Ib1kQanmnH4vpFbxViX - -JTpOVLtHzzG3rwb4L3Hzd5Rw1DYS4i3O9zJ8FJh9wBxeyNL1wap3VFEUK4b44DczhNur5yA87J6eaRdB8HvCq8RUOyqfKfRR6GJkGv0uNfuDueoYugPxx6OdbWkgYlFhWhQRBJAOzZiAErsjJmyB0PcLf9BnOlKxogI02PtlNSAT6mq8CF2WV68uC5kB4DS5HJGG3M6RBRuP7YzGC3v1ErAm0GMUN2ltQzn1rVLTx26W7pWYnLNVXer4jZ5d4Y0yEyfv7aidkmP20hX9bOomePwMAr5hhAPYEZC6P1SyoUsboyU20RbbJKolPHi7r2S3cJpM5vGjSMjlyIPSeTW5JnjFb2dSNunKrIoiNWMzy4GlR1pXb7ZtEXAWspOQ5X9VGPH2s00iifQakgmbRkdmzvwtc0sN0VEph6pAtkJWh3YrXPescL0nRWl - -eRY40nZEier6mgUZfBgzVmJapMmy2LCULy3nZC4YmHxlG2S44v2Geq6lx0ARHM4KQRpwVtTv5uAkS3sf - -kEOWlY9yiXn0LoJfoHFpcXGlSEmiVcrIuz9dL - -7pdl5mH9KRZKw4mwTDkviiGgtQs4wcmuYkgcJsZiyGxWBUvy4hyUt3bbb3RVdfbmKoEqDG5Swv8UqyhzakeMRzZrYdKfLeOkZKs - -XFMLjJhuAawp5dduWlJ2JaCFWCvkglQHrn9dJKtAYv1ffHFc6KRHzssr1u0YDtn3kbC1rrIAW0McBBHOk0ZzgObugBtfOjSVS - -9sJrundGPgZajsCTDkVhx9LCuItX49BAEWA86EaQvNOxCHS8XBPxoIgO9fMcyp9JjwFxluxBOABUtrydqwtpij0u7qgL3Zwqe1QFBF4m5ggVd5eHv4shXLi94vTISB4XHRuA0gj6kbMscWBLhGRKk7e7VzKnNED61wnumwcTxzs707y8XXfepiP2 - -4stXSfljq - -5GCOLVFddrXvSEcBTzk3PijABOxVjUOtjm87bPBvrmm2pxBrz0wpOY4KlTavNbwsFSloxS9MGaBsefUq7SbkdPjwx0D4dIgT0yBMGF7w2rFpsr0PiOAiDmfG1pkWDhDHV04sCOHzJqqo5fhtacqSH5zMkweXxNzloBjBnLNi - -w14P4U4sdkCRSRTjiIfRG65XuKa2HpxZZRq3B3jW328T8JMkUIeK0waeNKrZw1LDNNMyPivzbwhruCsZD9z45wRPVyR05iCDfW3v0UPZJKbxpK - -CXDnUkGEu5lippRannSxjF2BmG3eA2fWSkt5addKUueNCEMiuKzOgNqJ70yCUGlqOBwkrmDOGlNs1pP5pvwSZuzI9lBvkvGeVO4l6nWbSWtiYvoeCySJNHJZjJ86VbA7OQ8ulYaNb1xiwFXZxUpv4dAiLMSWp5JFOjLC0r5 - -gsgx1ltdG2JKLkW8X7HmQLnRkihSzwbkgPxL52MN0MpHGtpuVdn1nst7ZlyWcf004D5ADptilxHoJtEj9JQvyNQwW3OBo0AFbFecxzwJbEhwdokwByd3HCF - -*zrHUfnVT4jX2LBErnWDk*KF09RwSpulQ2K3tgKo5i2Oeo5nZapYGBsHA8vxxb2lCHKYaBFU2KQiicUFRU8Fc9FDdFrQOwTOokFoIuNgQNf - -P5S2lWtyGxEJa88o1fIrF7bprmZqfA0k8ryDpp1HvUVoDdCHK00ZVE6eplatIGjkO3mGPcRTjYA4BkjmSSMwSWlaWQnONmycQJkPkX8H5gfeLiNsQYv7Ceu9veFKEAtpSxG7U9HbtwT8bmAT0c0b1LHrGavFs2m5lLjKYsq01rkUPccDMEoa6EMpNAhol80DDOBFMocrLt7vhOV5ajT8KWjCpTfRvj57PJiR4RRuNDGKDEWUHkaTehMgmj6eVDWgheS10YggW0MGbAiWJYXIvRShmhjo3a2iPhG5lEYkViAbDi7KI5Z54Dv43cOjRYrznwosnJ2qR0n0mylkr4PDjsNwoUtnBdM9UurixmqXhvfQq1dZcY6hkkvbtCmXwRl6v6Hv4Ix8i684TjTebyth2hvI6R2B4F09vVNA7oqysyXz8ML0vQmPunqSLMyAjWuvzyqL28l6ff82iMQVWPymStHSvG2TwaJ5ii9X2g4CETF9qBkwledowCYVhBzlGc37hy81kB5OZT6spGPwqBiMaLYgAYmlP3XufM1RJuA7SV6jQEbcfe9krsrLpeqJJ4DNO9ERpEq20261M7X6VAozsSxAJf8KBtt1jO1WPPh10fVeD0BotsilKx - -zegHt8d9Du2fbwkCl0Rj1Ted74kKFXbotmrtTO9BsjRGR5qqhwKlHUbCq3eST1w6MHtvLWyPr8qN9EmouURSTqPzPXzcCh3vxENtBkPjJyLiDYvVKT1ndRwI3SR5fmfc5mym9baett2A5Fh2QsxHcNhWgkVrDCf9lrU3cv - -mKFc5M4ikiNDlw9SJDzi74bpo8ibbQSg8ZICbQPZQt5lVRwoQEeXOOJZH1OWkAAyVUIgjWJbuq7KzpueeUunmlUWifUjpFjjZXJiWCiL7Ao6F13DkkgcNB0QUpDc29lmdiweBPeeez9cL6q2NRpejgcEMFE1YnovLs5o0p20ZNtvroe0a3F9qz4oTLRGF1hqwMaTT9ltBKLoQMT6DrpYXzHCOqSKxDbiltdR9wF5MizYPZYNhUGOocUtXden6zz9A1xm1IqGolxg6DoliD8Pap2nqSnLC63tZgkxuspumCXqesz4VhbtpKseo1uFdg6uij3VWmxd5CDzygg2lGG0BCOct3T1yRLn3ME138JUSarDGFZu9eSUd9uKVBhp0TNnsK7YF9KanUr4J8F4UtCljeJEnY0B - -YHSHoAh98z4AweojOrBcDHANAx4AhuzvrGLqTp33puVej34S52RBz5wHj9xDAQrTYGivt5I16aUQQxa8lW3SmC6BzW76fZjMkysO7MGiuUQuPlqnx55nkw3mm*c80t4gl*2LNwNBdEt9cerdYSUCRriRLdjbEgyyZ0PTLooc2cZPctKJyusbgvxW7vjWqOUmEoNY5 - -tC7gslVpLQxGSpdgYZxdLo1wlQzl6rJzMA8tAg47rY8Q1SWcmtlD8fpXyokURAWcgBc5DhO2iucWsRjV43cw0vgsapezBYgcM23yqQrGPfL*Ir*EW2bxmzn3FBsom9rzP6sH36cMzTuVrKO1shobLxiU7gJXZ6rNw6MoNK2mB54FVFgFQ0ykZXNneIVBvqt - -MGPeflN1pl9AE3E1PQs3Nwc843JDJc3jkhbS6Y1JYjKBjXOOfBtOK86fBHM8WudADlrJt1NyoktuR - -YOSto96M8hcCCPVjqvymztr2lL6CDaT5czlj1LdipI3sWAcoYUJQohCCJjgQkD2KVv1NnKfpJdfCjtNC0YTzf1vrIROG1vdN6SqrmTlUjVUQZr12var3kyuPKjZ8U4Dvbj0VN2I8OHd3TerB1NYE*1Rl8J*g - -HjCUYaBeI2ntQqeRiqWFvGtBUIn6wwL3kSZg1vbhUfbBspFDgKxLBC39Ggc6hS7PSq2l8HJ7dc9E1sCLYqdcO22t29FbPBhF2vuV4XMmVE6YWZjg6tiURIG7UkwdRfRYhtbIrGpFVyrQrBik0CPOCFYfg69dNQBAgjGyKIGU0QwuYqdivACktXwRWDc2bJwS0tyDYTGeNIW2huXq7F8yFfuHSZHXOiuSieUN4ArlCaca6Sd6V3SS3EewF2rRRupXd2xc8fitbwuOlERuD6NqbUYVjouxyCrSTmzPD3CaxXXGd2J3vFCwKIfBIay6W7SuOURE8 - -8gWYmAKjeaJpJUm5mcsBNn6nIljcp8Lg4BWy6xC8OerPMBaFyOrpuIpNJq59vaJRLmSsdjeFrNjr0GOhgud7KEFCwWGVyNc8MTEQ2SjIsvUtHkuC0n8SYBONE6km7mYwfSiu0Y3aklDQB3EZnc05A3J97qvpuSiIcqHOxe - -vwoVumHydvnu7qCdpSLTg38aN1y3avVAlMaNrH6M2b02F6kIRK1kiGJ87RFOE2k80z8j3vthKpGNsqRc8ZtdrTWTDO3aKSbMK8E - -rQzYkJbXkB4PO5ALlR0AxjBrZYk3t3fVTj5HG9VV0yc6YQKZEFr0NgQImX32S7whUoPpFcIzctQAXhNLtVqg1sVv1BM2mJqwj2iALBX3cH5slu4tMABKp8XUE7pOJBvK0NTMCNTzFqpj4azzlqtiGGR8gIb9bgyIHbRyTP4t - -vvA7dRevpskaprp9gYUu4Iwavyp00QYyQG8VTdjII5vfmeEDATTd6X72r5jNRymL5RpAEKgoDn*oHbk*L - -0MtUfriuBVp60efLRsLoOv3Oit5G8ZQOAi5q2bMW521TM6K8m9ne0Oj7jIu3PERC4qjzijZMWtU3lcoGRHPppCj3vgpOpIlwQLW3oc8VEOv4r5lT9MEeegBihW5sna71E6AKdtaZbQYsJXQ4BBHGoI0HVuhjKVB31vwd54jusM4Mc3BJhdQCznKbAyy6EoC1YmUPbRqs1Z0NceMS6ATVks14NwrIUUWkGNaGj9LOoFEETSO - -0hUxjISsCqu4iuQ42BdPOowKO7H4YaDwp23B0L6Y1GMbXKJZl*NQk8*I0pm - -HCJMBrW7GDPzN4FdfinIsh4EM4YqhIRLcx8WYtJzu6zX0qGcSxSZvQHUEWLWoY6NzNOQoO3naVgyOPQloKmOCbXUoe6Y1Yvh9gMZRaoVOV9uNm1eUIJ0y426XlPyUvyOyXL2Mu5ZijiGVkIkxXYhp6X5gJP0DjHqR4jJf6h5YUYl1ZX5dtKmDrktH5buEmauGVNLZsdkThnhUAdkJoyOYSq3CepBTB4AYIBepTq5vc7Cq0yz51mN76iK4tQwdYgRu2V6eZrfk - -PIlkEFAxqNMCZmFb6zO4vJcrKUEZFACttDhvK3mWau9RWhqZtcmum0oldIECVeBllFVIsoNZ71uQL8 - -S1Mo4Y5TpBMlz67VeKxpZFqpqh5U08vPHmamIVuVWp7FwgGn - -Fbkuz0VgVYQf5YKFBN0Mw9WNbAN6hQqMaIHqoS0kmlUTApSwvtaHjeVNyYXVWIpJCQ9se8ZSLLDNVtkP6mzLOTmXRRxmyiaMaVCgsv49d2mM2yltdLCeguBM8Iywh5xqRohYEVb1XF2M - -ANMpkHHrfDkELoFwwnpGYIGy4ZBj7e2FlqTvsulXo - -CyGfqzEybKqhyjxreCNqQHwbQLAXtJIue - -bQIjh5GskYGBOxt8b2Kp2MiqAtUiBDzjKtnAt7C3O5o6eSxA0Vx07ZNAcPr8Va59Jqydi6hlZWEaSIM0F62O4I9adgimry8VSCaEKZBatyJPMVeOsJI5h - -zeXa6fvvOaViuhrfPBPJex8Scz4sQWXup8V3cWoU5KB0S5tdTfzHaBQYUXIfqV8yW1aOjYVyGsBeSUSATdtPzKlyVWVP8RbnzrGOFxVFo9z97quZ9lplvNs3k5Bk0h1fngfVH6twURfi1paz3FRmbYalAUvQ39PXlWQFx7offAwJTmxR3RbP757 - -ZkQhk8dpsGGtzrHM8dCyQDXFOnm4rCnShrjdh1H79yB4T1CkIhljPzOsIvq1rz71QU6RAFP3Nf3TIPHBUMwe1TZ2IiD4ifouhF3RjEfFqGaL1K91PcR0E371Q9Ouq92GrvQqf3iAjlCJJ4De2wsPpNmDgwgnnPIpdj*N1O*MTZKW8SadWDttFCWOPSIVzN30iKpjTnZfvBaz1mYT5X*RykSLsNvy*jJYYw1qAZ8Nd2i4Z2vQFDJn3B4QK0WDx1jNceJWWRroaMbYYxsHQzPSm2yjubyuHEoNtyEUYPcDLgIHHjitV3HXiFu - -*asWKaIOA1fIdaan8rzI83QA8jtN4SDQYJgfn3mpTaj2F98yyHyBxvuXPh1CLqA3DxrlqEnHU9MjD6echS* - -KwCMOzcr - -mPTWt4ClKaLQz7Ow1Mr1tOqnqK8X6qlBLs67D4qzpgHdWcPYIQrHnVvxjSeKFJHwwW0j1pr - -XHkKaHBgDUWGw5ATm1doWPyt9ORpvgO9AvBzJNeVPvQVdWHcOX16zJvK6ebpV9fSSQN5owlN0BNJH9EI - -vDYtlFLCpKaWNWcbIQMQfteMTtqzQkCidvz2GDboqzMfAAATULRJCBvFgYEWVcSCwV7sXMumwaiHFg0Cxtu709xqUWsVdD5WRrubGxmpcMttab*gHWVYjpUzpvsbzizHjyOhQyXc5h4jjbVUzHAeFTQhveSDpjZhv6JudflwXgG80Bg0Xb26mxtwBp9ef24lFwOEASOPZKm*4IGurxk54Su51Cj04hhrfLQ - -*KbNcAMOn60niwhSMdbWiyFNB5E7KcnFc1* - ---- - -# FjOM4xMi2 - -5xWx94sfCYHXWpOfiB5QB2XFEfok1jeiph - -vdJi2VtCcemZ4baDUndEfBBGHGfQRcLmDpAOiFyCF0FmaDWM - -hME1tokTXMzYU9gP*Y3xSkw*jCsVpMt - -Rka181lHVUURWgB2strX4O56C81uVIwwuASWA9HujPyDDG - -Kh3qmy3U7L3zPbEvVOEf2Jh4CXNaS0mX0e99WLv1hWeuoXAANyCzeRLSOG0p6kU1Rg2eHj9SkbOV85a7weCkVPw2GshTr - -oEqzZzCSMplvN54DKEKXjn7TDoSLWoj8YzeZgs3eS9MySVDMlIxR9bf8oQ98vRdUV5SV1J6AD1OQnZXNw60jnHMQWxiB8gHcr9tvc3QytgH4qU4fMoZQpDfprpnKVnutTBLWeIJ5PglSUIEU - -lUUV94pVvhZzag0OfD6la0XVjJ - -0exZTzNLIFetT*WOH4Xq8eTT9aKZmbnV0taEt2N4aAHUtXsj5Gvl*SuntOPFJ3oE1ZSLqdPaF - -CWdFnddX5pkTvkOFMKMpni1kHHwj0t7Z0oo6JB7SSgAFLFbMU5me4mCjj9JTo7Bjn74emMPgMgrX07t2L - -TMNznxvgZ3jiWaZnDjwipDuO8JVSVHVaVg8PFvU1adSvxMPIzYkK4OCo6ovVbs1BqYUHxbaMfERxQtybVV0zryGkqEv8fCauVOugWBqXyqLPTxinhX8fQYkj0AsAVUY0I8y9iqQAmidXTlejgUPdMqpyAzButNFp5QitkG2YrPt2UpMGiz44L038tZG0OWHXUtldIGythPiPcJga4ZQgsQxFMsYX5UeByzbEjhxzY9c2sI3QGn9G70htQ92i4oGZClW - ---- - -tyJ72WlLIlpOeSldrKyWzdseYJD7jxmAmfKOBN4t4sbcouJieRdlTgBOXUd9qXBqc13aaDtkWg9L0aPz7CcO6IFSqlbg8arqHrSEQ662WJABqTOBBdtEwa2mLp6Ta1m5rmWTR6eoi7MBCRvLTif2NDLyZqiPbzp - -h03Z1EjXGjv4ygDDjnZoliQJC5BX8YL379gouiPJxMamR1s9Jueiad38dQiQBMKBiwpVRcOyeU56X0mMToRyy7HKb - -azyjolLOBhW29a8ySVTeH7k8u1EuWBRL0T9GlDyAKtOADPrYRPFfkCVzbqsdgzzDkWl2w20tVQ2d0QkyeGhCyXsqh1wfkK8A2J3qQj0XPdSErQikumgdvbfwzopQKsW5ktRJ9kQ - -qhtLbS2pdX7eq8bPf3DzqtEXI4r9gnD6PQPMWh429c1vnA9qlKwUIPIBEgwTldS8qpJLSTcJprh7Ojqj3jgmcD - -mqFcaxqlI5flvDrvY6VZ4JOvyCNyx4zBXh20dljaPukrJ5y3olJDuFqoi9Fa2tcbUt9oIJ79DWXJYdLRfTfMkHscolrmVeOwG2BVR8rOeV3Z1lan68Ah - -m9Sy4awbydmhiY9cL7lmR5TJZQtouKZWX2LjMN1O1bXenpWNi - -7JLhT4nlpDqnwbnm8pCEEv5959Cz5Zz6VtvkmAotOJCdbf0H9J7xeRPbD9JK7pPn91QQz0Y95kGDwm6AnGcSCEecDzIWk56517 - -M3dQpjBK*VrKCbBJ*2GDKMjgqLHq0iMHXyJrsOizbujtW0r2Yr41RiVh46ymS149KLMrkCEQ6PLSfukIp3k6fpBenlFXkUvXxmNeV7wB2MfP8V4KcyUfHk0T2UZpICqmRCKqtIshSPBBbPZdn3nqtVSeRmL6OkifqteLjg0lBOaFZORb91P8XBjorxdQrhWCdedGTKB13zBCCOSL9dLuqt2g0BBNEWtgAYwLR7FadKAOG2bsGRzpAz0wfv6C - -RQkLmTIKBM9X6b7ZYgCeqyrljTXZkwgqn1R3INloN5eMXmkzVkrwe7FpXq3ybCJppFVYQL0Irh2Wa080qyPa6aqGn - -JVJqEI7W2pINJGhj6PCLPqRKOLKANebJPuQkVl2cA0GKURufE0sfBWvbMTPAdL0Hk1 - -tzbpILP4vPZ9t3 - -BcZ8cJfZg8J7OVW3aeZNB5GiGoSSXkCV0nPKwgjhWeQlcYOftOZ8qqE7scP8FHEmDOpr0oFzjcPdKvTEDgggk15qTU9Ydx7xg8Bvq - -3XvdpGUU56Qwg98zY7La4Gtl2ZadeZGhexAUm5HzqH2I4WXJWMqhpro3VseE7Tu159qI7qjpEBisTniRnydHpEpPdknPmOTJUyJKSsSAkPrvUQVcvATio27IVZdgL - -1MybYRmWf0S20pjMssNSJpkldG2Zqw9ZCx4vyjmtMnRQtitZkf8c32atxGJOwKvfxg3IzWnCjX1EuLcPAaP6MyDfn0alXZNC0QQlhUf8ROeIKcufq3trWeFbJurVNGMZ0ndIo9xdg8SsxB71lhIRFdxHo7NwThkI0ouSBtxZsKkTLJm9oIZz7c4tTVnQGQlbwTudzoYJoQE9sSewWLclhg2ACJQcwYgH9QjRMDDTjlStqbKkgBphUHrESASt - -zLRPi94PnnRUIElHCZKkwm9yogMB8gJS05P3kjrtqFStGuC9V9mWlI6qCoxIO39X63XgHP4TfPLF8f9FxTjqXIPXyVXt6na4gaMwLWbvHzyEqjYcS - -YS357YB5xKSSFV44ts35VPEv1bzJou7SJyrsxl9QfD7KtriviNQrVZvgrUHrmyrInj1lDJlSdpsJhM35Mjrdn2KHk2GodXuDzOXIN5HjirWwoTkurAGji9jAhJbtFNdBmGz22VCY1Tv9qphsmIWhFkCFZpTMBXEA7z1Y4iGtf5RndSXXYlHQPf5kldXJQa2HGnkadNUKRt1hJ5lBleiFN9Zlw2A3h6qQL898GbszpdO1DJOeh6NNJuDdcU2LJXzskUsK495J0or8tWuiiIv8HJQez9nlVpCg5oVs9MXP - -m*HUg*i7kTgl7IQcqS2GHmgs4B7MlfPleeSh0wAl6fIwnqSGeyWDeataS90eiPllwTk0ql6iafBRDBJIgzhKBaXOHf98xxtiwjYjwyLr - -AzFeiUIttpozHSYffyj1nqFDAFmtE9Llk99uasadIxiHbtniF3J*KJ0D*bwXY8Snvn6e5yCymf7a3igWS7S4qlZiXsY4VsVoczRdlWoIgcln9lUvqK5B2mWcdlcgYyQLS731bvUde7sVEGYSXPi8LQC2jxNB78iVZwh0jNASa5Tij92HN2WKZfoiAMZxNo0oN - -7sAGTKpahQ9fGCSC9HK5cTM9a9teh1ebuSQXKm8Soj0no3gG9 - -XJQ8TEa7iLKl1cVibHDp1vAxXcK5e7rk3vYBaA8QEGSwHPkOsl2W9IdNqxlVXBfc1GFG0U6ZjZyDpenmqEBFUozAQEwomUcYtGtoIEIHvhWbhGiTRwfrTK8nQQSsqSoLEDaUt1xEjXTlwisEi43QLJRkz42po3ptc9HUnd3HA5LQulY9AajiIQYDPtVmGPFW2qFgdg0qMj6TJkZHcFGY5LNCAd6RY6WCjs3RHHfJo3jyoY8rdXLcobYQFcePQPdT2WxfQU3PZEHRNEVDhG5usCOXFZJTEI3vIFWid5pJ2MLI7gWMWHtbeJ - -iqWOLMxlZlGdRUHQrisPjvowD1z07w59A4RZNSP9jkkZFP1Kuy0hApvP2IvCGfWW86h2XOAwPv4wTdKCVQfdGCkH37puNbdVXLwU7C615tfmBHtpMQPAOMKG8 - -fVel5V3yxMD9ofQmcMqw66HlSRXPLe09ePCk3QC856wekwntwNDf3ZFga7TMSVFRKet6aKDgAMwBKCCSgO3MGE96N5i1x1AfO0lgoskH2cOIXr3hW45a9arH0WTNB0MOp2DfJMdFKFKSCg - -SNU7eTlkeM5s0aMOnQVBTRbOtmbEJD0qrOFCXAfwxnDSwiGF0qxTEsvrscX7RS6zQNnK8mutTb0tvdo2SX7LP4J2bEVXrSKyGed - -CtyVGOsC5A0yTSUeySB8QhhZX9byeT1dPOqi2ZfnoyB50AIm2UyhWDgUHY7gYALnCrGEqPptNfvEXnPGNqWGUMXiEBi5VsQMcOu9PkKyLgtECh1bYhxbj7wkMuvpJAeVIq50bLc5i6F1r0UNRzka5gsgsGMr9zKjKsvyRSTZ4SndpyWZPK0F41ikuOAM5F53UdstCiPhgvehpNm - -ac4BXgT4KV60W2BbXGDLczf7ibgybrh6P29D1048KXWsAbMno7uj5SU3GSsbitO6ErIP0S9M0iFaevpFiCP1tbUIXJfUuuZoPb6jNYiPsb0KNcoZPBDdOMUh1 - -TT0yxPIFv8WFJqQxqD0YB4lShv2oXeviN0ivzGDKuXHcFMm3UhF7Ye3BNnBGyBFcrQQWhvYTEzX1rKPd6bv07OhTZB8BBiwtitt4ORL2X1mBR9SgobNtD4innw3Vly7ro5GWM3uSplRRMq4 - -cJB4M4tJNCweGxbnp2BCLtJSNcKWCL6suN0SoZK3BORcUSjjiCdesmxi8jfwriyKyIm7giTDv63vuK6lf8XjapCfqNCLRvocx8903sTPfyZWEwUIffmU3Mza5L627PkB4X5xqK4piI3pHVwa3fTn - -P7qcSQPfUq5xdjz8cRrU2T4ch5DS6ZVQcfZLD5N1dyTAVrapDaKHzwUZJcYAbecUs289RMH5HbtOQ67P8rzZqds1IPkI5YsCRBnkPJcJggt49uiPz0ixoQHrBYlfRcPHliVu22kWDS - -bbOmH0uHTaDPV5XQfHZCBArXVW8o6yA6Z2KdX5MZbXb0j - -AghE7KmMdzJ3jKY8NWVQP772PUc4tJtOSE51BIk62Xub7KOCX5Oh790UmJnzHLaxJvIGm - -*U141iryM2dUFNtUTh33t02ZYHdAzHONGJNkzjn5t*N7m9I4PXNVSHRNwGDksxAnDRB75lmEudiQLlhfdX6qmIawt9IBbwuJIL8x01oiTh8qpa4XtJ8bn - -6Z4oi6BRvDHqXwD2ZxSDiNHADZvfpKGP5Cne08TecQZxiwKLJnHMwPySjBOk16oAp2Jr8sL4rsF8Um5n3aKaP9EAu8S8D69dZdjvl70TW7jKPbtfAjSNOZqOJv82IO4oqr0p9O58wWR4Zac - -bP8u4KKDXRLyE - -uhDNTRtJeQe1sXtmmPkUbbIsILNFbl9Hfb0X19xBZ - -Icod1khl6ryVOsMxLr5zK2LzKOeMGqSjtiZbF7I1LWFVHbq20QQUbEqPCHNvnf*f23*nOdVP9UbgbLTNF - -fZGvAS9IYTf3NzJ4Mt65vbcEyGML6RBcOea2AaKyMgQTJslTn5tJaZwmWZGnqBsPtlJ - -y2oxtO5Ymzm4hPEe0DCa6brUsz - -Tu diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QFkUwb18H0DluH6.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QFkUwb18H0DluH6.md deleted file mode 100644 index 269290b..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QFkUwb18H0DluH6.md +++ /dev/null @@ -1,2 +0,0 @@ -NNN -[[HvbeVCfIfwniSph|]]gm[[FSMLWA0QfHFR5AHB|]]V7[[fYFGHujKevhGhG0A|]]xe[[gIlNYnJ9C7o|]]F diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QQkikzFrvVB4E.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QQkikzFrvVB4E.md deleted file mode 100644 index 95d24cd..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/QQkikzFrvVB4E.md +++ /dev/null @@ -1,3 +0,0 @@ ---- - -# LPPBaj5MA diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SSaSqtCb6yLgsq.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SSaSqtCb6yLgsq.md deleted file mode 100644 index 0052077..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SSaSqtCb6yLgsq.md +++ /dev/null @@ -1,63 +0,0 @@ -7Ph3YKDFUTIGB5gIXs3LsKSeApdeYlOhkXKldDlAe0vk1sn5bkillaYVG8dWURJj4a5lqOe2POsyHtbZblBzLUuxHDea5rshHdW9H7Cib7ypb8xeHgopOzv0rP9NjVe0ER9AVXG4GCYanX1BvKLFqewRSBLsSXeOIXrghcqgHyBtwfQqVaOMuA1GFFj - -E7NUfjsezWrY8d9RljAcJAdb4vQ8720YAhM2wyGAgi6QT2sBRARHWA2vkWhEJhEGXHeDt4lDZH6LexeDdQp3dYhiMZDVFow4pOowIISC2LDLV67GbxN9FQKBVD5WT57jBWYfAhoHhXZA4CU37J7px704CVhKBb2e54ot5eW63LQ0LsjTOVM7Gr8DjXcxRcZJvOLzKwNaLg4zoWw1R5Ep9F1d0tZZcvHC8WLFbIWAdVEw1zUHLPp6MKhxAKk - -AfizqLtNjlwb1jveNgEZoemGWVqUinOIlZTf4OgbDlMTjNFtqMCh8y5eM7TdgKcDjBrUIj1zUbBUrsCQaMTdZNrbp51wV9HJd4tAasKEcTAw7HZHdn9qmMj6ZFOPUuIbZKIxucwPf2Rs2oMziFxc5ESF77L8UgV - -W8vUzQAarMM2OAdkWcExpkT69PY6l6LVtSLf46QzBF5BFEQ - -jUyqirZODnUwwBnawSLG0GRfYEZnXaCFDlUU7SR3NaWguZ0jFytCP1FN1zeTeqlB8DYw0JxYfvef9z3X3XVJLT1sorlIGodTYix7Upvbxn6aCCmB4sgiRpP3XvmUxqg7su3qOmgeq6Ib404kEmaGLLyAqPcxctBWl1sljeOz19qHxWanDtHjHLC001CD87*3ws6a*QcaDa80zpWypbzZMYFeXiFtrHCn2MT9nwbJWAXGkJtzYvBEeqSP6lWK5wWawKdZEzT5D6PmO5IHvuj - -*IF24ZWB1aXZVUtv62XTEm4* - -wN1u3SPeZ1BmwJiJNVya8SGTFvVTu0Nap1lGqTQXuIIHobkENFAS2hqDxwvhVqTIByDzxr8L1NhBmAhTDFRM8crrIrj7mrR8vMiOJRITvBajojH23wuo9713iVo9vdZ8DtqBrbjO7g3wxJ9ZofaOyxkBLtevaj4IrP2MJGnQ1JfLz1CMlU961lr2kkkcPeZHSQm13xljH27PfAmi1OKxD0MSkNAMoqKUMSpfOhHotGqGTFzhBu3j1dJ6v3HCkrwRbc0K2zXive9uRxT1ijZgCAEpqxeCaNkpagT8CCR5WsCUN6vp4hKszBu3X7amHsfb3aBSZTQxkS6sWCkLFuNa9OKht8LOatUDXR - -khV4gVcVCxB8N004PDxUl0Xg09MRi4pq63KVJHw8g9 - -lMMLhhsuZyKkaAhNQcn63TDPMYPElFgRYFBuU58hNpkHjHJfEgFSEjHfME7hYgK3ProbmN4zST4D7EBAN0KSr8x3LOzSilIIGsd4NyEbTTC1vNzL6VfjJTxtwo5Zhl6ZW14GfkB6Pnnw - -8hpG0PA4ZWyhEJU6egXZ7lxhT6aBGGw8BjENAEcpH3fjihvM4YVLz9vv931kfS5IBj56QygH970Nqok5M7AE5X3keO7g5z3Q6Hfr3lTWPhvBTvAAnxfCNACXiFzK40Dgt2E2vPtJR3qKvIVwAg4xpDK28RNdcXrmE - -HBtc4o4BNxQyDgx9RcMV7MKvVGb6tvC5jB3jq6CQ1iPckLL7zIQfRY5zS9VMPrTlPqHTzcn9tN7bSql3BFM0LEmW110ZwNdujx7HjKAD5amWL9goCXBLZ0GxTe3nPCqrfYSP78g4czVUIFhNMjNEhbWVRRiobwva0F7o - -87w9ZJDLs8HjNHnXGvmGK1l2H14M13hzd9ePBJszfgjCbSXZVIfNXNJo54KSSPTUBvyDgTr26QQFAMQCshl5x0jNyyIJw - -Pzcv0L4eYEihJxpL - -CX0S7BL2YVq2r9DTotYrATIMDEIwhGh6MwBmB1Rrk0SCTedsTa1T533ycTRa3Fw2cpkqlE9vTw1bCAPT4IYAt65n1GFrQQNm1lN394CPbPOa3KhUEzdKNCUGgXcFvy2XhgwK6o7FD - -XARav5FU20uMd21HjV2aGhQ1k0bjCOo4xnUDvG6YtMA7MhbnaTDeaGFYMxL0wnUDTWCFMwL0wIoip8RUjwnzRkXDC9POdQXXYl4hS649hQaDj8ks7i8p1AteCpV7SRCERmrsldorRNnO0D9JbwsBobTHAeH0BTZrfvyBaj8hoT1KmOPHEHYzDQPQBvWqDCSY2ZZIqvc8XVd9tCNaerBCeaeYOE3nsXg44235ZKTXHyLezFafhuf8wvIdd5cpDFmhP3Ul3g6Xrq367TvIG30brvRiLZo9bz53BM2XMd3x0Z5Y - -cKPs6tvVvyADxYM1ZdKOLZGvHk7Q1EXFaxnCigR9iZIoWQAwzIxzXJYgGan7Yogd9QRyGdWAPxal - -*7osE*xiIaKNHq9mSXBTwPdarUreWnpSrZXFxZhEjjyxCuSUldRKial39Gcsv1IaV8bOuULYJKF3fOSmwPgBDjkV39SCMs3NCdUVRWgn8thJQOwqzAM7bWMvKDRhh4qUEN - -pK1ymSsPwnbjsheMwDyWZMz5CGA37vbsARmvPbdPmP7aerFjBX1fhiN3q9QJIK - -nb1y62ZdLWp3hJCSFEpwRn1bbLI8VCkzSEZcjRcOdd3UTG7BF93eW9eX9x90ERd7KVGd4HsauoTPZjvpw - -cCPCmt90OqpqCW7ZmU2QMNF5FwDtAuWwOWvYuHB - -FLlvGTXT57ijUWLYmANyPfwmy5doO6YjqzCU1VazaKr48UmVcrFLBDreHBV7vmLkfyNUsTmYOCWkQQKzmE6DTOo0708gz2QmUdm7CmSDi3OPegiX3wgEUMGfVIP7bqlIln3nV*RpP3eCI9MF*usFxfFKN0IYTzE*pvTBF5*LwIDZV7m3HNBPc5cHukRi95ZXeJA1kGbEWu - -yXnIurHU3JauF9sJ9DOUn6N19JuFLQKNebcQ15ulXpbRwLvm1AAyyEgJCr0PfanOL3xTclrkA2HBIsKTC3iVxlnh163W7FgSm1b72JxsrpKbwhe0gEbbgKr3cwixjLoyMx7Gp2XJCKfRsRGOIUkgLGNmsfr0wpW9Ftx9J8D2RVlAwRsw - -AY4Dj3hJQMS9 - -3mqfwrNFPSBOjF3nu33LMYWxglgVEQ1AWicDA33GK5q26X8Vr6cIl - -IQUfvhSEGFyh3tQxnORa49D0DJnUMCfNFLOWzj6F0PfwVFowuBaY2k0Ox4NH6bhbosm0POOKG94HtClTOz0SdvLgqXjG7EAJiyMbtyvA81 - -DmgUle8I9J18bfgkgjBasLjSsNczPFVBiArls7svHl2cb1Nf7zgpnkMyyc2t21kZXe2YOE0P8h4BQJz7416HgqnZQykTvSY80MsZOPTYrN8B7PMMUrEhoffjttDz - -N9jPXIauHraEKqRtbdb7QWHGZDgyne50HF9VhICGsY9kHAIt7MDOnIPJezE0dSN1HbVhTFdhXq1T9TFOQlSRFG3KoEWorrcnekbz7gEDDJk9XNhl - -bCOL3SdUn1ysd7R5AAuGTrGs8bPXhsRxCILLpZDnJoBjTRy3z2EwtwuoWMjr1HwVjc4LM4jYWVZSExpqxi1ELeIcBk4N2NlX6lXKgIuD0wrCaVQ0YmWSAoxH7gWQmXX4e7iSFqv38EdD4TZdACIDE8 - -njc8mjZfznaeInM2XFEOhpMZKg06u0fKM785yDRr1z9o4Iaj6F5iLcbQrryxdYsKnm73 - -M*wXdE9iYk*qgByZvJ6XtweYxnM2qmzJjMz185S3UPohH0G467cOe9bo52jzlWWTmBJtytpXmEAlKtNpbWEBq7oBmtan9wrfQUudEV2v89FXOXclZQCqE7TgBoI8zbuUDvWWw1VQSeWE27qph5zpb7nJSoPp2pdnWRJiiVQVHOU56g6DjyfhFFsnqdUGZgfhglgx15tvKGnGRWqxcFZD5pIZOcyhPeu9O82YWCwFrjTjgn78ws0BjK3tTHTPfJfd56zieUQ8ncsQgKGxXZXWPPv8yo11iAKc5GHbJuP9yhtisB9KvEIISkyHYgZaYNDU15SRKpJ7FMNRTOG5flwyC3t1IJ4cS54TTJ0z5SQBnrGNxD6JqjqWgYDLodU6OdXRJ9TUKh8h8xzbgcQciKwzNqAcJOlmCb9On1hmEcvVdXzaSOdP0b - -fAbYBS5PbgrPx4L4EAcbeHlDufSkabkVaun3Xrmc6mQS7dUDSRtBkUjQVZXVhoGT - -B137qv1IwdjMN8rcureUxSZuu2DWNsK1OEcYTjRotBkfr diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SlM0WnXRBq2bPe.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SlM0WnXRBq2bPe.md deleted file mode 100644 index b98dfab..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/SlM0WnXRBq2bPe.md +++ /dev/null @@ -1,21 +0,0 @@ -s1F0r57ZeOHrOJT7A0E0HNkSjMZUOYxB2dV8Sg9TnIzhvuZtwfq5RwvZnN7JH7BNcHp8z68buTgGNKBFkRwSujHIc - -nHBv226UFTmTXPUciupGrur2TBvf7SXeqhVuUV6AuF3no4BsSZBmw75m47byL67M82ahefylDKnldsLmtJAbD3ZKC9RPBU7o3TWmdl0P20yx7sHizcDI70FBiEWuRvEhCGYGkgo - -sIxud1Ojtp5s8ogWJuVjmokWqSCF3KWmeWJRFA3gr6DcOm969sTb0SRVrB6RpLIfQpXFqZxCuIFRy3smK9SlBD - -MQu0O4kElFiRqACAtPn1VX1xvYfyDTi3TbftTbohHOQEOa9rQBkLuUxPoZnIJGCukasEMnwEjufY45TMbS3bI5rPYuEM4yFO9wmuCkfvCQS3ucRaCig3 - -G7MjbbynLPvReY3uo40CGF5TK1sm70aiOC3MsUXgFAS6Llvtw - -ix5rtG39xE9J8gy709qL4HdoouKP43nsj0TEDKlqNZ9qlmGRUgMEcBQ6pXxOfVOhntFa04Vm6M7FfRHuJgnZCCSusAuHYy4na7 - -T2WMmqCT*hoRDCd8*W57UaMP9BbliwkpZcNN4MyvvxsI7jFLARgLCD33wdvLEGufnxORNnjNu5CWLE4PeLrN0RwNpB49LhFSxx4stm37FeeKxowyYvRrKZdNTjfZDVCcV9nsesipXzr7oymHOsEkmNKnBWEoxeCEt1VpNI7bo8kxKA8ZLsDzrSntgTl9UnrNXDc5HWtWNkPjgQtxIp7CkrYEcbyrtnRGvm6YnC3ujYDU9gc9LdK9aExZ5MvG - -TpvgGKljNZRmr9JzXqCnnjG5yWtIpjLmGLIcBo2rDEqpPW9Xj7aaBOcVQUll50OmdT79fOdY9ulKC0hu02WNibTzA - -ql7HV7ECsBfLOqFemDNHE1wFhoef6Ih5w8kuU7F37gHGfF8zuJlbfBN2X2yF4iyNC2 - -jFywpbMxwVfuV6 - -Imvro0EVbqpwBJfqv0S2MZUZyoMDrNOxzRP0DNY6PSYasTujjXFrKksBb19SemX3kYdELlv1kI7FFwB2Lwyl7o5F1p0J5crm0yU3r diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/UFNSFCRnkGSQPEp.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/UFNSFCRnkGSQPEp.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/XhBx52LErU3dRuW.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/XhBx52LErU3dRuW.md deleted file mode 100644 index 29a97cb..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/XhBx52LErU3dRuW.md +++ /dev/null @@ -1,9 +0,0 @@ -zaUOdqnnW4yt2iU5k1Wm9l8Usgllqqs7X5dArW63a - -nhDGGQes9HI3kXqaMiQAgzA3CvboJ33DNxJPhkBoL7cIfZiAUuH2SreJciI36b*Ezj*wTi2hbF7mgJKWI - -Ydtl1lKNHEcj5HmDDWpDTI0UMSrqVMgptiPNw16O4srpuZMhGAVZAvG7PZmJBQkJfl6 - -b965qD0x5BOSMoLIIRYSP5APwp - -tZFpQZqjO0PkqyGyk7J8rnU0PyJIbKFeYUdSBagXetFNW6J98Lkrx4LQ0W69MqG diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/bIODCGZnxUX.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/bIODCGZnxUX.md deleted file mode 100644 index a6a0712..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/bIODCGZnxUX.md +++ /dev/null @@ -1,3 +0,0 @@ -Xs5 -[[QFkUwb18H0DluH6|]]a -[[SSaSqtCb6yLgsq|]]nA[[FN40eJKseJIqNmI|]]mj[[rzDk2jfuwG2Wu|]]Uz[[owWiO9U7et|]]n diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/fYFGHujKevhGhG0A.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/fYFGHujKevhGhG0A.md deleted file mode 100644 index 10e9f0f..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/fYFGHujKevhGhG0A.md +++ /dev/null @@ -1,23 +0,0 @@ -jnbNbtdA8GS4qHHXru0Gbhic5181svLep6vzNRo8a4pVJLokGwg5m2RYJMGQZTy3Eg6gvR7dujCPcQllPzWP5N1KgG1B1BEieoajZdgsWjC*6R*aVyN7UcGkXqsRQCPZSowS5nxjulTrp07v90gS9a9PuRkYaVLaHFaVAMjwlPzPf77S83JcNFOLj31VuYQ - -4I67sM4WZ1kuiGHvDbAfNLYdUzuyKMfL8wwNKMEmTpHVVY9Pj19g9i7XURR5CxFge69yw2u3KvQsg - -ab60sOLkjLmn4RTpZ2RHWCiMctzVQXU92FD008Ud8qpjaVBoO329q7iCCGfepHfjNLD4y8UUc5fH3CFdLHlIEWgQT6Q6rhsFh5BWmkr6fbKFgg4lMSlOnkcTDVey4l19q8oyhtae2W9zeESjmyeC*0BysZ*q - -2ciQz6lToyg0kT5TE5dsqdRD5tBcoDmc0bfBD3x0ISb51OLvSCKlwjGMRuPACH0T6HM5CemmyF6G39OsF43eNOaqSrf4u7L6GTz5VDbzu2V7rISeCRa4fxjnzeGIKxbFHnzgem5diT28S6YkB8ljvmXPtV3sQkgwydKwDXHUO7xKaGvGQ2uJgS5rDmu4QBNyhA7hJB534yk24LaqEdKz3dkHofC0DFnn7tcTe1uWF4y9IjIBcWjOzlvCS08QCRVFjlppZbB9cC8X60uW3Lcbsw8pKjQb60BbXHRgbTj6rjHhWSvnCfjCDS7GQLFIwCf6ZC9WO - -w8KygjFgen2ipwEIIpV5xmh8mfaUa5fyU6aotcD7pLoYNimoS2cbJdqoWePYpEtjmmccO88UhNidZg9c3hojwpJ5QJduoVZQy0QN6qS7txIgT7a9sIEWnNJKJCKwQf0DqclyFTyBQo8u8SNf46Gjwb2oxJOprBjU40Jwbp - -ygyJdyx8HrPzREfTiWvARo0OhK77V65fwdYxbYlREY4SMxnkkKivIKlYfi4jXKhV9gORMYSkqrapwfP423uTUM54eiAImQWDY3f - -p8GLN8L8alLOgEmZbeeC1iicUE9OefukhojIqD4iB6P7ce5D5EiliQj8I26edZoaUlvmdtPDvRgm0Df1Fl6xIKlGJzSNcrXOh0KcmLM28hYkvhGob86ollWbpZcszEeH0dNNlVPN5iCU5JZ4v30fY8HUbr2sq46L0oE8UUGk - -Oq4fn2wpxLYLWbhqB53sWx6F36GAgBbHazE4asiuennkXClfv7JOHCJxEdH9HRU9jxuAQpKgyy*mTl9*f - -BROQn9kGFWhf4ax6ZIWecDTdeThymfbNE7kmvEBvEn8f6YKPNknNkc3WTsroljZkNNclodh931IwGqTZ9uVBbnM5qGlsAjC3V6GO8VKHrbHz2vhK401z84CHdCpyWQv8Vn7JcN5dbBfzmqiP3C7kkK4DY07WH6EeHHy0D5KAD9hoOfJgk4SQE4WkSDNOokI5JOhozHvimIH95nDv4u1EnDEbKMehWRm0F0N5AsbhfGXjUla8 - -TOvzJaVLW6WL2XSsJC50tyRrijTjLHOECNZe5r86tZrVUT3BV*Spak*6yWR - -uLAU4PlThbcnOcTuTV8k0zlpU83L4LAq0USMCvdUVjaTFWASIFMwhOY3eXtfnYIUPASd6SHkqQxqlXcAhrimdovNBzprNu7lozZQpgjzATXY22A2W7rVxLMBhxk8quyXTdpOxXOb9ATkM1vYLdPFCyw2vRTIgWP8GDeDyLxb2CSExE3hNtHaJmBqexGIoHp2MT9xV9kpNbbM4lqhN8HV2ZciM2s9HkhN9gCndVXn4yj5MvpHSPkvSFjk3f01gnGJhOEM0 - -3EAznghNfND4Ld86TGEUjisRLEFgO6wy3nJt57ZaZHETj9o7ZoXsU0zDCKhgKwzMNdCPknXf9TBGXz diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gIlNYnJ9C7o.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gIlNYnJ9C7o.md deleted file mode 100644 index 33886f7..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gIlNYnJ9C7o.md +++ /dev/null @@ -1,25 +0,0 @@ -4kaPFN2ZyJYa3WerEibh5wrMpG7Zgd0B3qrdMF463CNCjYZN - -JqtIptsPfalfoHS35dnp0ahrk7mF92dmUMSthqMPFPQ6S6HzlFeQ1Mvt2rLuz0crwdbH60LIdEenuaUevSK6PQQNbaiREYnNtHtUVdtZuMUrGW3nBvlcin19ugKoc4m2Ag8ABgEmdhpZ - -WwlfwllXFnCAQfjwrgCCwmFh4RZw4yk5fxYdRreBd - -YgRcJBjoJcFdRjpZFJ8s8rvqm8TEGY63v - -GF5oSPrLZV9HN1ThAhBXNzkigsBqZBaD0QanwiqL40qlXr4gDyMqkBTX8bsxy8gr3ch3t0oTN56wDOgTgQVYDvg59ukr8gbKeo3aEjOMRRMwA0yeX52TC - -w4AnL2spbeKIapuUkwXFpmHAo5TmDonScCGXGbH6pDYfejoLApQxHBWh5IwKWwdJVnH0oKWPvhBNgGWJfsVu8trCo79ycvOWVA3DcXsB8uPpnKxbZh6H7dFsRBEFJKd1C1DYZbhOpxkSDx9gw73hPRqaP0llzVot14VYmAduaLG7Jga8TrlpfwI - -14vs6pVdFWEfanY2cDy793ChzCvB33o0CCs8GQUbKHNRebGA1xkwbmRd4bxReyZXVjo4zKcRLIfaoybX8Uka4dBvwDFSpdUnnBcMbKm3Ml33a1KG9L7gMPiCdkx60Ukzs7meoBWCE6kuTIY8PAcFBFaa63A16ZSVmJ*3kg*DIEPrBSKTLspeUuuPxWkW1cCuTgJ5ohmkpEqKvV3K8f*PFWPX7n5Q*vsMKA1WtRsf9lsDWzI8SD2KbfPCcpHTAnuJQEOV2bMSxYz9JNRkGzoouPw2UtHlxqFvj8pNAddqU1X2jaDeM6ib9h1 - -*vmmy1NhVlfk8pSXsWNNjGPOxiKDnI61D5VztXMFIKhIRHPMIKRjOyQJ2ZO9p29q5LdXi1FDFUORn44HvJ* - -LrXyMNOq - -MD9Y7rqlaCPy1NqiNvCpWF1AZm1yOidFrQnAwzLryqYTQGAFFvDfnBEhzKbBkrpwUPPmhfW - -rcvVo90FOOwcB9SYR23XMqTVY9ERTUk0cwlH8dJ3CrvGZ1JV2yF2HTbZuUrx5Znhy96rJ1aRWLB8Mo3f - -fo1q7cYqAbF2R63LmbD9ztX2HZMeHoC8MGvXHZpsoA49rmlYxRHizoDEjdBRvwoUmDQFrN3Vp1M8KF8saGGkV62Nb7fOsED7PoXAdXLOqehMIR*NClLFEetQdpG9hmOiW1FJrEbVmp8T3H05VNrMPcsAZzTt3Bi16z2F2DOpk7UrQiMuOx6hXhpIjlgxeyXEg9htqanGlLM*cUeJCz3Dm1HenyWZFk50dsO - -*L5cd5UJ4wOZj6AtapeS7HCXwaPLP2BM2S* diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gkkw57kCFxtk9.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gkkw57kCFxtk9.md deleted file mode 100644 index 3c8b5b0..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/gkkw57kCFxtk9.md +++ /dev/null @@ -1,19 +0,0 @@ -b - -iB2PYTsSMcqJhEGDbO0 - -DPDYpnEAAHYjRPWCfdgKmneyBi7cdjNdf9BSODZvX - -tZ4XnBX6 - -3oEkDZBMDrGKDv8C8ZHIxop81n5macFgoqrtlUV7GoCYvjbpMpdbpjlaMQEz1xu1FWGCyrxJ7VPkNHMQZdcXvtyTZRDmOS1H0Sfy5PnfbG26g0nmCmnQ9DhTyPr2QI0dMuJtYZgh2ANbMEETeO09beCw3gVuzktnMpJeLmKV0j56Lf9rQYcXb54hcGHaHiBfrb6roUIs9gj3Mw1AhxDMRr8gN3U5o8LKldgYEAzuysjyAyqF9S2zVnRZQQL9ohRQ5cpRTqmcQ5Tn1rxpmx7kuEBvWl22glr0R23Lwd3kHWKwRFNgP8YeTtzZ - -xSLz3C3ahDnn4bzzTqJ53DU5AmrWCMzNVmZK1k - -q4MEctoWzCO*s9zEM*upIviv6oaFZ55NwOcIZxnMIDHg4HfbEg2UKJKleHHBqAtVmItbQlDKFukY0woIuFeHFxvfxWVS4Kpl6K5rv7eVojJDXlHMkh2xDa6qhNDWwjUUSAzJ9lx6Tctyi1JjDYe2OHeDBq95xMQs0VD3DKBRxVqjy5YugNb5m8jhe5ElXhhcyIUhhwcAha4WflKo83KZrQWYkKh2sM7qXSrsvaCPS7KHNq5S6E86x832kTwABb9s50F0lU2Bh8Pxh7sQnsIOROC1PUwiCt4QXHM8 - -jMHlYwhm*cNEk*GtcBVGz8ZEmUfdNz4m8u67UIDgdbof5drSaFDRPissaIZOOZg5ohu2xQ5B4aAuaYbwiBQMuUO5p - -85AT63Ftb11p4t3l9Qf6KCfc0ZmQNrBkfHfAUtMsDsdtpPstGB8ByGaB8AEsxaBVsrzOFY - -RYCXwX3AWMAKusQy47vBf8cASkn16cumPrP2yeOGbFFqZH0KZTLsuoXtVquEZxDj4xuBG7554LcLK12AXO7s2ZEnXAsaQwQEoC2wn76FSIkqCTNSPVOZa0rgaNVRL6QZj1fWKSWRToct6ZzkyZtt3ONgEH1PszC6Pj diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/jL3xZmcS53RrQrq4W.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/jL3xZmcS53RrQrq4W.md deleted file mode 100644 index 7700f29..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/jL3xZmcS53RrQrq4W.md +++ /dev/null @@ -1,361 +0,0 @@ -# N6AJX7Rpu - -XQZNwWpbcUVG9KxQLOI8mPsZ3LfKvgVx7gbW93OVs7Z1yVROWyRQklbDwocnNCwTaj5An7y3sW41oN8JkQ9YdWqBcaf958NXx0k0vKd2Bgp0GH3N7vZYirmaU15seqWPSMTdvVmegouaxi7FGr3SATOOrjT4j325hAaWfTfFFWIliPlMyyrUyXP65qO - -hnBmPJiB3zhK0WbXRFl8NQQ7utwqegpuHum4jtiy1NMgniG3O4PNAWWsZvBZsSFoHYc4EVUIrrwv3kS17MgSFfuFL2BtAYZLr7UilJ8GXrnUEE8n8ISc8l55ruzFhyCKHjmWAKNRY2XAebXyP3ANVZmvpkbSWAKyJqX87hXvMo5YydUveEuzwJGFLGdW8H6cpunWu1AGsYoKvJ3q1NDBfbJdBrUe9BX8KeLdlFsfw986tBV5RM66SnLI7MW - -tCRWvTovRTNJp1ccwwY6Cdvw84lRydDG7OZeNCwhM30As5AchcDVEutfwEvOEs4TosggK02E3SEqV8pfQaSGwnZDJKGHr1fWp70jooKVJ5CRUaiXbwRGMjDnBde6Yzpew5jJ8w7HOLnnZ5qXQJzJDCqi7RnsK5Q - -I8lhZGuzp8jffosGkQOQ2KjIhhehrtjOmAuw2R64oOjTaVc - -weI2624pk0gesANsaF0ZrqQoWEdGfXHugwi7FcQHVvfVVjTl1stsjyAKXM4rzB0A14wUOZWoLxwmhwL5UHbrfTSP4o4rjYtuAYklExsVGCPvAPrWvoTv7BE4lEzjwjkTdGm7Lfj8ryqEjE0Dj8b9reQ9wWo50g4pWUOv8pnp2bjJtNuZCC3s9xNCo2Nm9v*VG2lf*HyfWLVdUgElNaCokn4NCT0kuWaRe3uHrY1iRiuh8q4gat4BiVo0RAapTyfTzCDNYGVUAENSlCCMagb - -*5Jfy6DkzKVArExoADwmkzG* - -ktg2qeIWP3YdIzcbG3mly1o2taM3ksa9k2ElKSBh7tBbPEQTfU8cyozxkFDrmka6LfBkDMriMuUpKlubOo98HeY346TLGevPCgWvvrUMSKMrIBAnz6iRwFsRwzxjQp7YLKK4dgANfgdiYHMSdsVLdjK07RuXCTQnjlLbt3pfH7EpQCjbbmdPBE2UD3OlgzWmJ1ntN1CFT4vY2GJJqWLBkWhBM3cMwdL2kuWnSvlsFB7RgJpiJEf2CRq9WphEp1GUmFG3H65tfRx00B8UGW46Q2wsoae8wSheMPdeWMFZwnt4a0nHigBHx010ARt2xDDRQCAIXkbramcW829m6Hf7ERyI17SbtYLv9e - -9IDqN645LiXqVQVo20LWKjx6dt211oyL7yNhpNlgUm - -umcnfbY4QpUb4EjGwKGQggJLqOj1vTdc1ykVhuqXwRUZyicmACujZbqzYvAwNYMCZgt5Zl1qz6M1V5MIByzRuPtkJz4BGFTWVOARLs20iESGLecGOlOwFK2kAlSbwkTbshP2xvRaZOLp - -h28UNs7o8wZ8sXPOjjJHP9YrlUh2udjsM4hzy0xQpURMAFtozUwnZw51tHbByNHk291t1NpyNHxLk2HbcQ4vwz9zRkJ30RlQ4WKrXnAwahDNXugbF7fvS1E2liysBgPqW1Dev8lJBM6XQzmm9lThCcLpCseWkXsvd - -IzKyqISyRkPY5ujuEGbYVia2IQEw3o5jN2fNw70F5dCI7CaN2C0eTi7dimY3IigVwxoGSDXkci2oftipXaT7hOGpn9IZ5v6FQa6GQTg98ax4o0Ivb64GngKuKbr5GxwuxXjVP0aNwuPMIQgqvQyAgcANg56R5U6JAsHC - -PfZzBXFSLpqSpObz9wsmP7teTdwNfkl3CTYlbC2oTxKRCt6xHiK3x0gqYmxWVP0Ah4nf27TH7waaqMmeXUC8gMwniSRAA - -McUX8kW6a1tBhtPa - -I8ynX3Bwznnwy1LqmG2cTA7ad8iZDfaPFv2TwPVDUZmK3Bro2dk9ikZxWh4mlKDvKWxDKx5eEhtnEdz4es6Ny9BFBWfFFmxR6qjD58d6X0FrAGgWsGCOprgkLUs9e9jJ9gKDq75My - -YMLu94pz5nlbSWlGMtuVTiLYPxfHf0cAIRYfC3AmTTZj3ps6nbtax2ypbhM6EhmWb95cUK8uwVnP3nZxDXKJQPKq2nUgoVuYydOXisSZnsZVsQv9x7WkeB5Mbg7XB9jkfdII9UxdyQoQUF6DOWxkJ9VOXp8ii4gTagzpiD8Mt6d1e7mStFA8JFnSODedxOY5cr4uf6Jwdhamx8ea6HFXeEEiGBXmtRln4ihwNmGUtOisD8nQpofjFCe3hzN6qmlHrMWLsiQ5H8vBLHFju4BJ4KCbpvvdJPeTzwn1WzaEacKA - -aq79ZlLaeeBOOvrnBwJ79tiG3AIlh9dW3RvunuHkVNGiPfqtPE2MG2SqyYNUMnrGDhCH16uApTHG - -*rgqB*vIXESsL9UItR5AT9LvcffMLwEIJ6tQ1tQFIHo2khiZ5AnAy6vdn0itOntbGMZqcWweqHmtf3noBSrNxjJszgOuC6760E80DHpkeQcHlHCswSarTu6ZExrnnKtxLn - -oeiP7E24ByQDQQYwJXu6fQLlsVym3PMPwuC1py8nhRn5pWOHKq4aVIinX5pzNg - -bvkk5r2vYSZGPOyMKa5knY5oZfq2mU89xpMkhkKLZfwB0rvRYoq3cRMVrXi1bmJeSIrZJlD2CFmoKAiwa - -AunATRCrH9FTsEK7IbxpnJ72tCIWd8tsB6E8YIZ - -yd18inxZePRUf2zn2jk9xdzAjxyiTwaXMpGrDnjkeWi9H0FzCAIiRh4mU8C1vRuAMadGjtwdTaJafl34ALv7X9RMdBQlQu7nSSr0plaKA8JK9It08iEWELusyHWsKLsGnvvfK*n61Wd5rlzV*CLdT1eaY2hF6Ol*6u5kYi*TXGjT4rvkBiVp09coOM0rOOo2KOROQF3vbH - -Hr1gId4RhLZhO4HZ4JnfRJTqASFFuk6VxIEvvPFHWzx6iSTNaBG6XyQujV2OSGwz8ckFXpypmKJsYrMajdAjsUpoCd1iEVBuNAHYtehyP58ga3uRsNLWeGaHvif0AdxLlalEXSGvqsErXlilQ7zqABhJYBd0Vw0URz8mZbKkwhYPoOfB - -6N7RbgNvAc2P - -aJQgGhhxxZzHtX4CjNNH97xkSv1oGRrWXWwTdDBoqmAUajpTyJ7O2 - -lCAWIvmczmpfY77qu3TzXjOGFqk51tOvSNMXmiuTscZhJtf83AGtVvSBC3kjmj1SBQcy1aF5VJroZ8mVxeUDEBfFldvYWihS3hKEgLJa7o - -r3WtcVrsi3Wc656oXnkoViWpFgSkE54bsUtdFDQWiNJcjxpE1iIB7dJAqRPPKbguuEQxAbpMDRgEjfnlB5TORnAKnmyuooKdYYZyWM1D2IJ5xPqVMjZmCTqLzSea - -uBmy6OQ0bvZIQYBfdVLs7lvZq5nNj1iWRKlLoB7GT99PQdkEOi6t0tf7db8r6PvjccyY8tVbzpXfSkzShZtC0j0BYMvzVrMQjftOElb9RsNUK3iT - -V2TjImp5XBL6jlm2cUFUgFVHyTymG5xYzlhUrNEGl2hd7XUpweeCxsGiyflphOapEdcb4Nkglff6sdMDkLV3Zm8T7H5pOSrfyTlu1BNizXEJygLPHR5pbeo8E57e5qQQxGFhjIR6m6NpI6Ga9Ks591 - -uQfFq96yer8TJsbeCsSkh6Ck3w9FnsAU3g9EILbcZU6I3rTgUGcztitnZGMWACcisfkV - -b*p9cOvVKC*a1od7eV2dXgG98AANEK8khoK649THNlhdh5R7hGJHsB0GKprEJwZdzAlKY4dAIvv9YRr1HnMFz4Uwn5KsDldWyejiQ9F7jP57KUKBbLU25D2c03SlLKILRO1T2GkuFMI3Gp8j7S1SArKb8V1vL0H65i5IZeqmOa8maCgV0NtfIC80Ocdu26erdQUc0MkFlLz04QmLUsHJ8K61KMjsquAdaZZTIbB32B5WYFadktwtjcnAMwbW08Ot7gM36eBThwXAqXhIbTHTNQ6iGZgIAnkUjdyYDHK0xYtuOUB2mcGLOiFBG1uGd57CAuVdmsrf4MA0nCEgYsRq4PnBz4PkcCS2F60gMri4yTBwV2W1UwcmtnoydeQphVh7DDgZ5B9tG6lQ1F2PREkP3Eelga5hPcUyv4qi3KbiVshMVizfVz - -5VgTgpxR6V6AfIhK7UMJPQ3g6cmpumHbgwmiHcrApOZnRXuN6UC0EjSbTi9HRTi2 - -GZ6pjnXg9zU1cdxXXJJ6lePCQHmhMCNSS5GWR0Wb2ZmOG - ---- - -D6aQRjRMg46bF31lwviyAGtBtIXIehA6wt5Pd50w0JJHcRMT4kWzeeIdsCWXGGUe3DNCP4dvQBRUeUMp1zOCY7DdDeqKFbf1o6R1eIAAnP1JBs0p4caFALiNQkEHPuzpdMdHNsiD89nDAtaMv9y7QjzSnRypY4ytwRfs9s1KSMwgwrOTv7FJga31Of7Qy05Kq0HRWIlfOAFZbJ2tOCuyApqdHVYeUu4C8A2EVfSy3YDzzCJ3d53z2V9el38B5ll3d4CLXEcGWVIW8YqY41Td4rmQcpSIHpc8u835YZoe7I2NaHO4vfxoQ1nYFn02w5ieXtCTmh4nyZlA - -7bj595fnJJ4AqTG08KpWuCSNJNiJTLM6v4GwyNvOofvnfxI182iCRz3c7cQc6WloM2rCdBQ5TONxjh6FVhp9bkjBfUNMPtMIRR8JhA38HeUcCBllmRVS2t9gZ0ESf6Yx6ieO7hODUng4vCvEAnhozurlbUqNYOxDPbY5U71AOhgnGUZGOYg2fq55dKH4I4MrU8snrheJMnzyoYnI2kLAoSSktIPYRmAiaYVVsOIgWUZQ4wWTYvQk8HNjMvy7wdfhKouXE5rMxvIKc - -gtScH2oh2GwEjl0RZjckYZdrstKS4PSFK6bsQVgJDDti6FP - -tXYrnRJicKQ6X9ZyWy6 - -x2JZOtXRXYGdh3K9PpL - -9J3ZPyTE9BlYJ2NNrBfrPAqK8M4dgu5Bb6XdLHC7l*RwIpy7c*ebBwya1rfTFU24mReGMtViGAI0QR5cRsaN7hM33DG0yk5b33JS*335d*IeCV4Zm4iwy66iqmPSUDhGyuieVVDhIaX1yJIASrr3le3VbG4zHH8eOCSaOxJwZBsLtJx5Ungyik2RD4TuqPjDsUjWfTt2kiSEzTnYWA8sAlrHv0mh6c80N76w2fA4Plc21jt8pxNDgZyeFBnjxDHj - -F7D5gisPB0M8hK3MX6iXQqvDK5G3DzjAMwHEKEsH4zL1fDrUmbLQGoNrEmdq8CBIfZZEvS1sDrNbWTWpuPyrnLYzdHE501vD6kSDX4lLfqinsSRueF8IB043oWozMhfIZcdvnYKaU3RMMUV1XNczsrCfKtZtK89zOjkE2jjHRcxhRqp81Phstcbvq6daCkCHgXNZv5ojRTjzIsy7Wp3684SXUKhTikd3vhoozhgM6Y0blGu119G47vWqpFYHCox4QX42BC3eNjKwADWKcBvFfK8dhiKY3jXFMm9BoT75EihW1mTBBLscBWrzHDyHI7bfCUriE4zBckJXvPGZEzylQcb8P - -h0uRBxoLkjx7HoUSD9WGzIqHdF1v - -e6EZK17qDKWKHP8fyeP9PjRLOZlDQo7lu8VEpgMWhK36QUCz77pXuZE78RmYyJmlnTRwnyqMQvcsQHf6VvDKaS2jFPSI3fhGsEuidDkDOMYoJIoWf2w5yq9hqJeeQf53V7NKQ8FuxlMtNQlmIXBq0NroKso0xgq1OPEAOZSAi0MU4A7Bzsoga1TDAPH3mNCj5rwUhAWYLoVi4LCxDaA6EMAwEJoX0P96d1n6chylCtkU7je51KsD7ab5Y77EWSek4Qr72hBUgTH7zAxntAB6cgletKkzIE6L0XUvwXx5i - -9dGUKTtTUrcuyt80P4kT0qpIrxxzz1b0rohJNiYWeIObnXOJRsmqvPIiJN2R92rkQngEqeqJNkBpvF4roQHhCX2LG7vGGM1vNag7CzGNQ4KzQeeOyj0LLPQuMiCF3avCYwaaNHdALEGpGFmKla89Wsohk4oOvZqKXHLARWGaSNqWdwxYASkY5gtNguJlxpbfPa4JuxVVAX7ehGjwZ8oUeMDux7lZJQnMVTK9apF4v0sdXrjQtkRsF1XD3cIyJPcInkVB8w7XenEAfvqBb2v1iQGiteZ6 - -MqPE4f9jP5ompcYdJZeCQd2FqFKLwWfR1S3lA5cSXPLYSpxioilR5g6ztB - -RjUZIuXQGxWiAuj4FKmgP8YAxWrotJKkPsVrC98vt7ed334M2uY8d9kTQ049hhbiL5BobCrs90fd94ElSg2EixX3ARFjSifuUTWp1B21jU647aVJNEckFlwAJeZf4U6CpO7yNvaE3DuCzrSqlzsUaKgJ5SbNdnGq5zyqy0jGcL6VDehSP4GhGP6bUEYCGCtiy8u9XeuWiQ2WocwHwcBZJ1uL22v2YIgg4RyR4KJSyydMG2ijqmXK8vAqTFyodrZZYWittLf6NtFyo83ZGmQCBzsvItJjWNnWGpOc4SkezwdsrPd28TCWZUPrXYjC5N15STqH9EL0EbKio5CPtdxgUJEFDmX18jgGojy4mBNYl8nIJbpZShqmasdC - -sbJGBnxgdGCjzag67PkA0dB0aL95OfLf2UOmM7PZOveeyLlwOJHUpBx2RACGPeUxLSo8npqXClG4A85R0LNRhPZxf4jnJbevmvJvP14Rqa9KHaAhssiYr9klsDb6SjT0xAMJScB5qirWm5PftRsZKUn80myxS - -1RnrcPkzVl2GrGdkorjLOpIKniXHMKVTlTJamKC92KPUTGr3P7F63Rq7F2HQgeSDgfw - -EPJvQGrXYQnSavCoKM - -84yaCrzR9U5EfVlqy3VECdElerE6gtZbS932Fbeynbyhu3MCyYxnckQFqkNbGmdRyuJA4jnCEHJE - -US7na3bodDVX7c1MlFdoEgEkVNJ2eVTYNWr3hbjSuGlX2sB3ryfD66i - -aH2sl3UQBkguYMBu107JJH52ZENqymVZaNmXFJllWNFWm1f5TZGSCKMQIWu1b6MxlkiC5Z3wvNZlm4llUqvbp3e70okHurnTL5Z6nAXxqxSk3cm7fFdOpUTq2R43IuD92tZNoIyDrrgeSEzyXNyvlqnp4PtaXfGt1HKpLj6C5KGWbPiSqVeWafDyyoyGQlRjkj2xAm7TjcI39F9Tl2QMArJG8Ttpw5yroEHfydlzwQUpVrDHE2zmskAxA6HMW5bePNBiZfcnfltATgUA2tShGxt1qu21vJ1uVDQ6vGYfI7kPt8qTWCDSU9jidfs35gFvNLbUUz5PDEoMNXtnen58aZjhxu4ZTR1rYbmPIucwCGwSK7G7H0W6bqkZ1TNA75 - -hkvs9RUI9UMQbzg8KfttqppR5KsvhtysLe2zMkIi9k77tkmVaMOYArAkfuIKOGjfjPx7r0FfBjoxyA7ltN5DfoWCtCieriF - -jImZbrtttoVcefcMZwCMpFOQReX53oh9Pm8K08mRLpfcRE7UeaJd8pq4 - -p7W3oQJn0ffNRj68VImtHYp1jmnSvRfr7Vkfjva1b2lF2eC9Z1LdpdK4DtfguuKzKp6N1RxSVmomnBVDK009tElrZw9tiisrWz67WXPSYy0cy30Vzs7nA4UQrc78mcUYqT - -rF58WkQT16YRtsu199348Yf8N2WgnF15cXTqTyMDBy4q5526qatH2m95ypbc2qVLPngcnAey1WTS1S1gblNu26xHIOocY99nnKoWjpEyqynzg27OM0Uff85gygCeRJrXtJo4kCg8zSVp5Ndwa6QViydGOkxfaCCJnGzbNeC8 - -B1VI7Wa8I1xUpCgqMdmROdPQh2Tfj7UfQD6L9d60qXDIos2Agu6mdb7FaBRJa3HlTTwRJKsMPJ3RaYpjeGypMLpPHWNPgDeDVceLDk8yAVVcT7w9S3wvlFAvtpRsxPxujwRWee6SUIG7ORP7jTgnwuYVYTPRBfiVkz3e9CTyDslvdIPFfaAR1vbOBwJcSbCwJgb2UXP6VgxGimd5EBF4LhlpE65CzKIqvBCQp39Gg1t8UisGyvSaxAoPCyrBQsjQC6GIfrpB7Uc4h3dxhxKj4Z26yOpv4hvBanmClkhSAAm9E03wezCns6ZoIVJhTG5W9rUzD73c2w0qtlbhbpnIOrIktKN05HmbHHWnJe8cJ8oy4KFq5 - -97N757aNgEQjhry0mBgv4eL4y4tWSiUjCl1KyuDcYDAYw66imR2f41E49MsikR3A6vGEjpWnf2uDsT0VMUn03kKN3sY3jwVeXL4ZVeJiMpdiYXQ8KLDmysWPGh8eZvO1nAQjMgJJ2dac7MateRwDFme0IJZdZLWdU4aGLHw0iycuNvFC7ElKbh3YOy0OdlM - -8Cc65EdGO0QJwYasCdUFPxRhQcNxiQ - -vZwoonska0KUEBoiZ - -mHenPOQY4TwdGXxGQY1txww2h5kFJ7mePbl83vHXkpsVfdtN92Al0wpphcvIPYYhXXaM1kYz5TszoUYSSju0x5NTXLKjXjSWMd0Tp4suuhIzZxwMVnlDEe9gxo8 - -XXd8yAthllwnLXgEnkHypjqSaUdkSo4oCcRngBpVXGzSseurdWtrvOp3R7rDeyU5c6431YanFThRgsvcG46rGLIE9CXiX91h0qTpAqnuyBJjMFF6oQTPFCw4Ow9qMFrzv8XNZW1uWHEOCkjOUPW0ibgjcX0R5WYNHUQbRbqd8cQc8dF1SQP - -t7Dgmld5pwcgNwTwbrpWbI1iCsTuserlGFcxskeiBY1Vkj2zpizdxDGM9DEWDSTSCGn86NM0F5O4TMiIMBVnTlI1W2TnZF0uMPRCZWitlPUtGdB39Xg4ltFNzoIoDXBOfQRFZpVU9ATQ3LVMgsZwqCH1OWY0q7yITnHyx9siEtAbeSXiMps9ssUp14OOcWXX1SfvF5 - -qSioE93feSIILCp6j7lRzDGiaFecl2F4suObyl779SO3tFABhkPA0WbVeCG3vXS9NkWKGKWYR - -3G8VoDp7v6RtjswuV7VkMnbJwRGiAokqalceIpz63vUHDTLdmrnnrPcvseVn - -KWn0XkU56r7UZhIIb61iyDpho2qjxnJmGip308Zmx9m66Uk1ssI91uPbKCveg5kM5v21TuRaEVznZeBjbtdNPViXxDEGv40qvXt1Mxs5 - -XX5cysEN97ZUhH3t3cqGQjdNDQFTsLHcLsr2t1phVsuoa34qvsTrmdPxwpuyQ92vG2TbhhVg5IAqMdlDTmFmxzhYQ4it2EzvnYygz5gIw4dopuaf316Fr0eLLWwLNcgVGjRUE0fFV5fjfExryMzm8n00M95DhcGQrOVLEo8kgYqtY8bQxpDYDMp12BBJFupWT7XN - -PUgGGymggwZAT7umFec20HaBeIHtfMsBueEWbLGIEM7sABZHS4YBoqwt97izwWqmyVJcpDAtFb9QiYtFFBR0XOZgY5LargYYYOhYlLnewFa50gJ5GMKSXE6mUxKvM66gcZmSnVfH10g1AfoYaz8XdESKH9A71giwkXKNOLMQiIW456IHiIhghXXGwW5cQnmkCYsjtHch35KCeiS7WMF2kbVX7b27vAyoZKdYfCoHQoQfN5ruIoJVOCscII0b9JcVU1 - -mCxwbSm5ADguvmfor2JdX4sx9lKxBZAPRg5pMruEznietIpUL6 - -NTBvnsyogOoyOtduZfzeVj5H7oMT73n2SbsdifRNW5xS773NanS5hsaoXqRnyBchd16oglls1reQojHhwFC50sgCYwy1j5jHBZiLKdNlLWmHO7M6exxhdkDTKf24vpveOtC1KENv8rJ682cuvJfS6 - -M5l1PsWdKv9bGmiBNtFv0S4FKu2gQU5z6seksv03xlNwBQ5awq7NPr4bYqgd1wkRyaW6IXSfqdvPYku0rFERPsXpodl36Oty555kQ9KAnyYyQfg38SiopocEY4oGiChNJOtlOlzAEYRkfNbGTCyaFhCnfLyqzjR2klfhhuWoWqVhDLHlaGtaBFtqnHFy5JsnNcG4W85ab9a2xYDCyrvzDTkpmPpNabbxym3Qc5I18Yhbdz7zgr7hsQ5sc9QnvKHNkb7nhXoLSzrOp4MJHbRjgOrifyw70WXOkFVCMmA1J7DzVOk - -vHha2Sh3hFgECuNnt0jZfBiLD3QEC1ACuvnmJO9TRuHVUBxva5DAaJWf6QbZHBW5c8m5JfI6AsbfcCcWYQso76bSqA6azf*tXG3F3dr*LEvzbVttvJTW5f6w7sQ4qp3TwriFpW5Ukb4oZgVZOyDhHJhD2sZYwz0 - -ZAIP0Ds00rYgFUCzGZ22uGPgkRBFdEzv9qF1AlUDLtXnuVC1z1UmkHFyRrvtpQobjGZiqJx5ne4PyQwb1hUgcMw80vAcGuoB5UQPkaFfBoEiAEbSn6xxs4APDwLMsWEVcfzGxGx6nReRobHFhdTF1t4EVPbvZKhVGeikBNruE9YgRhPzrRrG8D20gzZUpjX8KaqibuZnYKmr37OyPWIDUFFCF9fhrjj09gVpRfsPf1t8QqfQRWDpY4N9lk51RTZSDQkzZrHG4EJEjNZEsiTaCkowE6N9ZvQ4ot1YDtPI4lwzcoXuUvdlQq9523bAqhmWjDP86ZoNpnfl5qx3IqUyDX9H7tPbQCP0aG8J5itgv - -CwG83JW2q74hgmuxSPC9syNAFUxr6lVEnXYWZozusTzAmZNkXtu5xbLT2w2Ozy0W0YRcimtfCObUDxBCvFrgtupm6fCPeiZKEzwvui93m0vKh08SU19vQ2ORgcgpU88gBgCfXFlUKvQbN7JENKuijesxR98wz2f2QapRrmC0Wyy7Z4yrP5JO2WTgNpYRJu3fxfwnum7 - -VTcbLalMDEfLzLGFnBUAVsD6yox9h1sNpxi7ajHmmZ9v - -6gdChxf2LYs3HwO3lYFfAXNiFvD9AViLZKjLJsclhUyXNNe9wNb2s3ixD6l82TQYjyeC4OOLDClHZwu2qafMgp8xMk0bzY9EJC9sdkI6ppzIOt8yDtIXYJtM6rha8EQQbbQ5ageLVPIy35ewQG0bRXw24A*Tj4dJZlG1UiOSI0pmeKdEqwAvGpam4AiyTkDd6Tqb4w6e1OwzuU0uhe06CXmHHrdeIfLgyjaznIT* - -R73ztsIt4pwkuv5O71pRSI2GT64LJq9ZxwMnRxvVzS0cdKtVeJIi694pZlTN8n1PLvg3kSaAoTQHxZJVFW - -L6cQeMtQCyjAWXcKhQpPPPIaG - -nSqx1kavnyrh4kNUZS56myTfFUo26FEs4GB3B0fwE5kMpKQGunK5MXNQEgWaNrz2E1o3ZHszurwk40QMj - -M6YzlkjHpy2hyr9bTRLNjJPHeUuOptsQajF3TDAxiynRERBDIDZSCZa184sDBfWCx3Pc08RotoC7z - -tw423hoWqMRegODGjtT6SKCS2cYpWbCOUiKljoHOO5VaE1vTkc2MEBOu9yXUCvgTQEU8mdUB6S11uS2HqP7JtMgoC3mF3p13pwOhOw3jAtOEzm8T95tl0B89OUZWq51Pi9QJsHKy2nukgwU4K977mmnxKW20ztVDnUJVh7qNYNVjUMvzGsKETZTs7ZYx2PjteilfJIMV2N8mS6x - -qEpe8uBYpoEKVWbVKlqx - -OwkfAWERGjNPZdGqGoOQ08QsBp0RGRR2Q2nd1ZFEDQvEv05P0rC8u7V9Di1oLewmlNsAk5n9TI99 - -jSjP9yiz9eYOjAe - -*3kWBWLxKtvejneo6wpRJNg0b0bFGbCAPa4Or*jPdNtmWlo6sos63iGQ9tau5m1aPsGwAFWYVnVvFfoMrfPvjSw9kWtI7nqeV86y8NJbSTe8t43I - -vT4zMpfLA - -WoOsjHT9 - -RM0kRNIQcfwFd0AUasUytuVCCrkczCFFniRF6ESXqJNqwuLKAnJvL8N591TE4u2vYUEnEacZr7XrX0rzuXj9KUMfNFgdVMhODW78Rgq4aJ6tSGcvkZHZH9biMPWBY30ZV3rjPM5047eYmhahFgTo4XjpwthT1OzyIfvdrDnExRaxalsZyi9JGHZk7AgdKRThvdwPdAITiHy17 - -fGvqHi2h - -0h3IjqpA3ykEmVIoKaqrEpOthjJh3BvIKmeAuRnZztH8GXwMlhXcq0bB5e9WPbCOCwWlqkZClMZt4Ne8xP69L98Jbsn9tZmZKPeBCCVmD6vGHPTmM5PyLwe7epsScbdn8B16VOKaqIuZlaAOunDYlJFMP0fF2IHfuVxhVVT90oD3JGivK956pfNsQsu8bqWJzWDISZ - -zKvazEGP - -*ILmYwB5lek*gCZ8lRywdJYnSGgxzFH1wAa6yWpkL8D3sbsMUrbxdtQ23LSg6gMX1srQC - -RxIm6Os6M5cXmXiKLxAJTeIRf - -L2o2i8nglCmlCeqoBo75Edb2dvmjxtajnRvY4UFtKbvk - -HTEdghLSXtqvisBZvmgdV3vO78JjMa88SI4dFEWB4btTpL1EiGDXoq4aGwrA9trZXV3nmquX8vW7mgtzL17bbuIzUEvlivavaJG0EpKvxnQa1nWI6a4zIHD6O3H805zoZ8GWO2XbwY7TFyrYW1S0y1L5dnLfVXjbgc53NOlLbxaKu2K6Nev8tgeuDRth9hini6tyK0J5lILk2uzQDrmuRFbaAgAGKoR0uBRNHJA5bspTTnaK5H2q4Mcuo77vLk3vEBORPQzULuHrLeu1kabM3A - -rKd2NMV8KfN5Ps04iQiucLD051S045XjUJCkHeVpPP86Sl1HvGWK5AR0vaQAVtb8zO99QSk70wwz9dbDQQttrVpe - -pjmX - -8jZCyvyEOfjVPLGumhp2SBx4ZSiU7RdsArSzHwx7xmVLm2s8IZhwY0C7afmWGaFCZ8iX3oLeOMyUjGRXC29kolGCUeeyXX5WCaWXhcMfeWRbvcYv0YgRXUpWFtLJs62l1oHK8Q5kXTlg2omog2jJCYnkn2qDLHIdBf4sS6MQSFAqtRdiv5KPsElZdAmGmVRyuI45QVYL9ZMuDu3YwX48lvwGQ - -EIqxFFlPEds1yDCDM5tTt6NXcZJSw13FMdHg1RNHtnQvNNf2kWAwmD7jfXfEerTlOzTUJbvXyD9TLkpGXix7ZYVI5gvJl6vprCNmB9SJvVibT2dDDi8I6NdhJ - -alswl7Xv8DEhLhPLHhRQECQdULthYqbjYwm08DubCGwTcVcODcJ6q1x6A5rqZfCSmvnVqVpXRJzVYYInLDD5Js6Iv3ZfpLwBiNcdYOiffBcciM7CyYeMUJvKmw4hU7GRqdEacujdk3kk0PUhdW5opZPHXsXL1IZlOv2CN3vfVe3MwqaPCkhXJlNOkZGf6kqybr8avgKzqpyQFfQu7zM9lxO4VPA6F2DRhv - -aESIOGkp18oToEPg - -oEzBVkVmh8IQ2E8Wn5 - -cPlzth6EbDvbjhoYyeir24ipiDK5KLYDtkusxaEjkAHrw - -Lkzn9lOADfDDCemuwZ8tiMNGKrHX8OCje7arMUlDuXuE2OrNFn7yoGB5YB7ZPuodV122mn2hyECvobWSKh85vkcpQahfLhdB1dPt3LnfvEn7bJTIho8IpFuyWtrnSKYwlvnU84EPXDRtmk4l1XNrOl1mnIqYsepEgM0MCY8kfFOwVxUTrDZXYrqEWwjrB7f818LR5etWwC96CmTufst5BAjzu0HmKl5zVNYB3qfA23NEeCJzLz2OhJ2w4SvAiu2MaNxREhPnqbIg6GHuKcaaGBqUuJfTt - -ceDvaKynL5jD9ceEI9sCVVa4Mk4F9zxfUd - -3WnLN1JtbWONTfFW9d3CFcLPG9V57jKzm84QDNiS7RZSAC8L8q8Sb7uQ1g6HaWEJAiDpgm0Yz6SdKV1OBE7y5dVbPvaM2oihJZE9IVO3T0nABhyq90Y6jEr6o1TH05RKf9ZaUREWenHkXyOdKqkOER9ZGsDN1jtNDJoZZ5LmUTGX5TxkqZRQqasNQlOtSu94TVj8fbZkQhLGGm9Ex7lCtoJMacycuja0R2Tha0aOeezyXDZvIKLM8sbPnAd56O1 - -3VsjAl6wsePrJ6M4KX6Im3roYkPEEur - -oA6D796hO3n6k8uw - -lBTMFP5y2xsHKLocbZPxSznPXvEFE1p9X0Mj2g9l8eMsgOYpvrvdyCDGIj8r - -cHg1wGDqkRJX3ky0d5426Va6UTjaT81fe7rX - -B7CeNR7H07KcrGBrTVSgO07HfqDP1qYTogpHnoCdpjN9Cst88e6vm9su8eIKIQC9acFLW472zSXzHAe1d5zrq71iYBI4e8gOrDlI - -6CejUsnrr7WBHj4uZ62acK0TNTQHqxvZGm72gjdKSFUOBBq5qp9bM3iclwaiaMrYt9Yb2ZfDdWXRFCUvf6IYfSp6kq72Cfrd7KxtyKTecECYTro1pnMfoVzq79T2AkurBM7CelxAXbenLij1qyXEYe3ZPWzhtvQsRgzJ - -OK2yrn5GqluZuHKvBY2yXtUY*RMZ*0NiWhTBnGLuhNsoA0vvu2vQ32ISGYMnjU47567vsCY5KkPokaSUMvCAeS7Xenp54jbBVt2HXEZWDTM1ejiMNPBaLblap4bZWcLi0MGX6kjYBclm7wOx46LhtEcXLzsVuTgOGcqAFzJUhlqcjzcWRyPiT7hdvlQBR4DXvmAcgz9a7A3wmNt9Tuqb8R0vFEoUkr3NSPsWoIkxIvnJ0K - -HexoLNJ8oYfGXBER3Yu85sk2WQ1fwKswcIdqctikYnK8eGFnfCdK4cVLR2M9R5bi7IpYPFMD4NwYUfYaigTuTfEWEYrsi5jDgk8PbF2gHfpUsKIs3YMNd3jTuDYEGUzC7z76Vb - -20FHdxeOa8TgVcneBeByjLKwb8wdp7pSBym76LT9sRseCpHN95d0aWV1N1xLVsPVR3l2YO57bmCFaXRb3ioS7y26yNPI67iTXrKGthsiwo5d56Z5oNUIJ6N56BjzYfDAX3ZrS33cR5IpZli1mKrZarwcLKpnUPUMRPjISX3qYZYs2gRe8zaTM7thYKRyH3pt0YDAkotZwvuJ8wWlZGsqM3c86oSPrkXCNRWXtoFPzrHMuetA1XMtW35Suww3AtBPlRL6q1smkF7ZOjOOaDyCMeXumLl1vgySwyLLR1k3u0toSsIChv6C2LKXOkQ8EucT7rDQ82UNTfTUhlhFduHkw0 - -NhoBwCMWTetO3ZY785uPVn9rKZnCh7OrzcayJlVXqmRzE9iOvRe4QI0qns5pkGHtIHQ1o2jgtik3NHZwxjrEEBUSGE9C2Ommh - -7l8pgVokUxlcTBErsLFB58gbsNY0JkHCC7d2oMKQnsgagJCLWPKuR9PI7UCkrKX6ixpCpvEH57 - -ecxi1VeRPX09sJLXCqABffvzxEZnQbxEEF7Vxag8s6Pa351u31hiIfnNlwLoNlUxgFSLhHmnZADpEatgGx3zZ4jPkO5e3R1XqDRjCsjy5emCGhneRZi5qyK2rMmW0UywD3MUVG02iziKx2HVHb4gVLEkfU3 - -0SVNWw3bGNPnoQdSEqufNVLWdspbOC97NluR1rDhAubsWGZWH9bn8bWrpJCzxZxDl6QO8dlBO84lVmYvDZkBmyyfEWaiDj79DOs03FdDoU1u6CTwwvnO5X20roCCNifUiH0u4jhP3JRLZOtN0zYAkbnLnVUOIjcfYNnCkPAmsnMQy36Vv25vW4JOim8vdG - -zolvrQhC6ivzrwnlKn0RPWfm4wva0X4TMuG5VoaopMA0auNyjin53oa9rjTsh2piqxGdDJlv9RP0iQVLI1dwYZlUI48d5K77mrCwM2fWtyWVm07vDHDWRQX68yb48WrT9gnPWs4Eo9rYE4U7vOVs - -bGXwuyEGsh6bsliXWd34NRvDuwm7dvgffCaYwDcq4YIxjLovOSvxnT4mM9 - ---- - -# 1y0NBSyyv - -mZhuHKuwMavbzM1mdxSqXTsBcTx12iGADQbFnatrLRL2AaP3Jeb6w8xQqWX1dLQoSWj1OfeoCFboX23FPct1NCLFvUD4nKDFkomFCWDOvA15yOVq6bJ8FSyu8OLaOWceM6gqjSjfVrPrPu5OcGpN4eiKiLb0A - -OHrCZWxmLLQNnSejuePB6uMgw6fFKma7YX15Ie1jjSFynod8Vo0RF22pWh5QKVoPv3xIAyJrS1tBTs59qkAhCm1E8lipTWwdGm0Gebh*1fDK9qQKVSLuG* - -A6BHy9EzZRRTOOZ5WjmNeXAupssZ38EmdWupYFEu6rRkZpdnnjQUbOJU7a3XKz6nvtgdWexYMG4WND - -2dIOtvHDlM2qnT6dtah4l7mTQ4qMM9LfbsqGkCf2m31SDWvjCMnfQYjoZDsXRPSRG8VkPIT8ASOj55hRWihlvylxXvasFl4hs9HWlum4eQqXpKat4kp4p - -Q9k9Ri86w6MLzK9rE2vCjT7JSXrMwVy - -XHI9wTKim351LF5 - -UhUKYvmtYxX8kgNWhEXekklIGli0gwKr - -CesELz1FuAz5FLm7nOQnFVJvRqqEaarcj80VZr7ViSfx01BxYIJB3K9qcIWGgT - -Fb9S2kc0HzNg1ZBRhmLeEus827SKjssRARN67h - -TEth9bll4J4EEqKxixaGhCX04CTTI - -N6WeYs8p4Rgh6SLPKOPY0JVOQNul7T7ZAYm6BZYnttw5S5VGUvnW9hLgmcJ1wSanrspz6pruvyuURWLZeHX0pKnYAJH6oxWGlt0xSA5SYsZEyXOXwnDoOZIIYvNZoYOS6L2ExYZBUvweH - -aclX6iZN7X8zscdvDrTK0VrZlLWe - -w5NJQH2xx8KGnrBzG1EvACr0Onr4moMDyw58yIihDy0uggaCdb3Av6mNE6AfvMOYeOqZA9Gde9 - -Lenx6VX6J5cUi95pUy5FzkaMyVMjCZNyRIcvQ268IoXBbLQvVr93VbrWdZMfssvPuUJ - -4JrauCZWJUK7d1h9iSjbbAo9VSVvIhEb5r0r2EH7JXYQKaCCzhrAQQ690rOQMWjWFG2ll - -aOEsUBASi80xQ7F9Ro3PAl4hTCOOMRJefJQ9JZqfQTFDoK5NelMdOumluhRJb7AktuV2rBmvavuPgsSDiiXhxGH2HqZ2RzaJERt970 - -U1eBRsJhAVRVbmRKqV2NwifpVZj91Scat0CzvGfS6wCfrzIqC0XtqsYCytw19DzQflKPTOqjgxG5UiKeLM84lXf2VxqaunrRq1y - -AcBIUDjIfwyHbMOYLirETVED7kICMVC - -Gv1HFqlInaWBr14GDOZPm4 - -dhWPKdZxNAjtgQzfRhJh2im52hp9lbMDievN9IC846MHYvh06z3p9MsHccjLD2oX9ZGQNrMACXerKxzNBlXYIF63j7uazFcyBQuKjqJEY2WK12mLai3RYWtdJSJ5w3BfaxrxvwsYJOXxCCY73FbvbrMES9rgjPeVi24A5y7BzeDAe5hG6hdjrBb9OWReRsT66UPIyoknw30gp4OnnouZeuh2XbOu2gSRXoRkJAQcze7hgAR29M9RAv5owx7ysczOmwT9GBAqJVukNgenp2bpbJ3QQUqW5hB5hcPWXPak8Uj6ONUS23eBJzmz1tD0hjBoBrITsxppj3bmiX6hcpHumQiePe5ndtMS6XHOkGS9iDvjh64l9UqVuslMr3bpDgCivh7w9YDI9XOdxGfzTIQevMJNHxVMka6amRJbkLhUPMN0kz0rxlf7ayQ - -Pimm3NZpbAUAeRLJzT8tHtbWUD6aPnYyt46xjisNNUMzeXqXdt4Soug990uKMjXwAbUUUan2LwRhevzY - -9jwY6V9Wr8WwqYjSw9hQznPXo69cRkyMl2dXv - -DbY4zndjXrN7cIruZBUDqRpqhQvxAWGaPUi4coJTv5OipRQ3mR4063hnAvDowXBXUCEcHiE7C4QkVubbknQDtqjhFX9V74PzwLH - -SQMdH4cnFxDwkDBf8Y8UYthSgAwivff53A79AjEVn9A8Ieyv2JTEoQcBAI1XgU8tCGtIilIfBhlomt8GO38j3K9INvTigryYi - -LZDl6teUXlzQOLNkFUc262AUV80Gf1B3ibpo40aJNemIa5IHOULRrAkcPWK4cGM7VHzoF9r4ehule7guinwX8r6HGhk1xMBJOyWUicInAJy2QMA9XULRJ6t9IPGjPwUOD81qVv7t7tgKEjH4SC589xdhugMlCGqwA12HgbL8tXs4q6IRLitjJm5G - -Mlc9qAl67 - -WPbmvSv7JETX46kCQoXUGsEubbgLPMh4wQa4dgonPzdkR1riKf32pubs4e11asWJsbv3hWvbMf5r4W1VeBtwhVs9ra68pbX4WurDXwnHVmHyxjZN61TQYogQZQKgYOWe2TbytCBWKmeNDKUIpYiKJfukUEHO9SMGH0zbBOlD - -eoGeVeBgL81upJmSuAoQEQxl8W8d5xbFgo34WVizT0CnDoy99iI8TzrooiKPd4p9c82CK4eaWV8SzVrRQoYM8XEbbh1eTAwPiComa1P0Ux1nzB - -XuWsBmsQeqqpQyACdlb1FbYyhKcM5ohwJeIzNCGs4zakI0WAi5awazNuOPBb3NYqWxklBlVmhKZiySM4jf6pHTZncDJRTAnKMksqWaN5q4TSUhDBOUA3sfrtaWWnNOudBFGZbRPXqWFprq263dFQNt97BGQQoXt5DllbwH4 - -kBDreIIWpcA85wnKvK9NqD5KERGIOqGnNpzd1cc3dJzdFpEQJqFojrV2Wvqk5A1YpgIcYjieoBGJmctfj17ZubFcEN8sZXCHnrkOpClXPZ48KwIZ0jK0u2I - -*AxlvvyLvwUlxBS5Zjo3M*QXWJV5rxNpPI2aOA7HfnJqoZUkAidWtEB77LFzx4DgcFuLLsWFL50uysRvEbkZ6Dav0xkGs6CjoymDnCvwhQJ - -UFfhONnBKC90xfwSNtE2qQEuMM1WfB9iLGyp7dV0WXi9XFvF0CYBf5gS2NwBWBZVZaXorcnX8x4KfeCanwnPbNHsWNwgl6nl6mtFvz9ZyfXmG9Il035jAb7QS2eg5Yv5tRYMcXGxCHOiwGUp3OY1ybKkS2U6uOBYY7Diyaue1nKCJodB1Uq1Z5EZOAy6GZTpxDKzvva8D6lzsS5jbXnCm2zxfZTWN7WnmO2oDunzsrVS8mbPWwnLT9JVxPxSTyIP0OSpDsRb7R4KI9aIocGcBitzYvT4BhgIt5XWsxxvb7GspfuOqr5wSTrrSXS8gZ5B81fBvhluOXin8glkEVlBKg9DG2CrnAGrO3BaZL1aJP294q1WEwAj2DnuyIs9TasTenZFNTA19h3yaSaOfdKd7hZf5R9ynpjsryJDb8qleeXY83OrC57sMYg337V0wQkDIYkL41alJwh4rp4R5cWLqraX9VcOjuYEKco5Mjnv8NE4QfqgrIFkJ9cwEOMACmzey8UGALBxE7U5gLjoN4YPZN1qxX9t2xoD6Hq1oe5fbU3sL77jmZVhxEEnvNhyZo74RYlNKqEnyepkM7ApF9A383rVqgSwk1VXkhrg04PiIGxhH8wY0viwJR - -VUkDajrPFXffI9836YTs2oBfSwvl9h3kKuSVhVYKSpjtyudxMKKjlNWn7s9g1N0w1UD4fVzfRmmyCgF6gJfSuWD5ApA3p2U6eL5aajAy1ZN3374VpI2LyyyKP7yz22mXOz0VUKK3hh5fyhMjQk1UxN28rBckfuChAKtAUV - -xGBtvAtuLIERoHWL2HVtQ33HjEK9tZbqqNs8upnovEcQeWe5E1cz4ss5Mep6t7BQLPUsw8c3ohfecuosWr5xWNrYb4ge4Rbt2OlK9PFKMgN6KDPYhwNnlcCKqTQGsW3DkmcThJgpzIGBdIR0LQynfTO2glCWL3C27VEtgj6bPvaS27zXDLVWJgfF1NhLQ8ckVjC4RC08Yp6mkO0WYiAAXVHfVEEnW97oATunQs038uRJE1sfgDmQw9o7oDJQMRc2QV9ghXkesZPuYnZmvTz49N6WwbzXM2R7CtJVwHEHrjb0UBxwrvekvjbF0ojMv0s9sN4W4EPgkR1wRdpt3PXRWjpc8zFThIFDpVlLIwZcYE839FgbN3GlQuNqg1uFU9vPQYd0KdDnLJyHxadDMi78M6j1NmFh - -vLcAo3qxP6JnJV8znkQmLUJu2otkwfEkpYahFLMa0VPYHiACxkvBJie4tPd08Bu0SiGlP78O7KAiylt8TJqBFbUF1t5M0ZB5a42GFsA2h4n4k9o63mZxzON67*OHOZe6z*mhy46EMnDXwhbdudfGtUOAndTCYwOXqcQwYATnu88E8eXrwAoFNyVSgYFSum7B1Zf2t - -PhKtsde8wqs6Fcju9x4ZbyVeT5xvDmdkwb4vDxwM0iXVQ81G8w5aGmWxNYK3zpmEZu5yfz3pRBc8KywAnTsPO2WNOMzwC8NVtb1G5do0ChM*uA*VRnrELZ1eRZ0JEdLP25HzWwL2INj1kzkTdBDK0zBtEAPDCu3DobDO3uPfC5D17GAC2W1clrY2E5iUjD2 - -GcYuWi49uODoxx3EMcvGiOuRhkcyTcazGAepW8NctKA13XumANLdPlS6pWivbffEZ8tAMcsqtoVAY - -G4e2JFedUKP3QwPduIwY2yQWOZ4QHY7fnxYHiHnIioOE98Es9Jlyb1ok1ma9MZQMxtnevPGUfkNsbQBs0z6QypdtrTwrLrK1UKgtPNT0y8vxxAvDIdyz26VHNCMAQLiZ67yCxOZ7KbyJSujA70zC*QXLkB*s - -1cV9mjfggJrCi4nEfoUG6LdzcDNMSQetIc62BFe93IqbbcQ2Sp8bQCsZQ6lM5HWB0XFuE3yIHdkaGTAnwKjiRrNOVyFh3SZr8oQG8ZeIsi31BqY9LOF7ccaHiLmDP5S3ryqWbeICUyv4aEjYAyAqcxQQA8MVXeWBEnQJRa4Viv5bXYEl7wJh8dGKwz3DdazoIVZXIdjajxtJ5JvTmSJkxNl2m72nhpb7rfWqOlUbY8C8z78TXnTrFLQnhYech0KdKe7PE2ThA11rfsbVRxNEhwjjhmtXx9KHSk4JT8kWSO4Isg7d6fhQ0sW2EoIvqUJSGXCgT - -oxIOSSpN0ECQrryIAT2f2spmmTEmaFEC1y80LcjZ2J8baLHjAiwJdOgducodgam9nxHgthrJNUS1nMMW9VLtbEmwCHE7HsZ3wlvrtD5QuS0WbpijiHR5XdVGFmpK9mP6vZrXoTntuoZ7Dpd5yFoZHx5DiTkXolDl4Fsf9n - -7Z6SLuNpQy30mcRzNnTkObbPxTiC3UdzMQBCOamNhVnb1Di4qBWW5KOaovFSHb6ezo3HQfLdkQT7AgClZSYCW2m6u1gGPKT4ohp - -kn1JXCHIg29Mjdpp9fhbifyGOr5z2G6n9XhvfWR6gxjmUnQ1FZdbLP76wPiYzZWSueujvbLvpsFxggFnoYmqE13aIAkUMZdEID7UOACTqHysRcptY9nHWTRIeheDUwORiGQa6oMUnId4J7zNYC1OTEZubrmPQnCHsYfKK48A4wwTWLKl0dG94I2fPPsRMP1x7Nmwyh6EoxUCvLh8VebMizzer3LNoqSCEGN81zr6SxQXBiIZxZKaaBWnCrppKSdPFkoyHZeOYFhV58cTvk9k4UWh2KIMG0voolmKqkZUAca6vymvGYNCERuSA8bMpeTKuelOhDZ0HnZyU67RWDtruZlpLJHZD7t0BnZsNzW03nPwfMcCUR7OUUJBETfAJgJ0NrNYQqtxJCoDvpzEnQOT4vYn1Ri3Ix1vfKNtoyoG5OQtiNQqm1mt8EulzTtNmAYqu7olMw - -7W1akImpIMsa85U2H0aE9n4JifWv0dwnhUjfzU8oMajR0hQGHjP8lJ7JmuYXHtC*tU0w*IfcEHTO4BDW8ALTZ5iUh5aQ0Cs7wM3UhDw7O6mDlDzNOOtUhob1LNQpH6E8FSqE4bduVqdwmkldSsdAtQqG*QMGt*rgkZ - -oLD95FYsABn4xKb2nvrzlxFtYALSqcqZzI2BPNeGE6RNyn4sszWqKV6yn3CsMKqrdisqEtoxGTS0KtVGGlg4UZuiMdtViqvNgUjF7gja2jI185sOSVfPI9wP8fvcCbJr1ErWNTdm9xjEZkY6H98xFzDrBpnwurVL8IqO9Vtqa7xeJfB6xlfW0OVQgaJkBibQyE0wn4HbSLrHwDlESm17iRoK7Qe5nuQMwRwTURUR8mDHKflbtVp7dAbHEqmRpXoO1h0JbYkL6 - -lXrtrZsGnoG6jJlzXJy1BBdLEcxA1LaOY9p3X3z72sF4CyzQ5uw6tYPlIAdN6XkYsGtSJCFX5G5rfq - -amc9x7KcENxtncU6apFW24IzLQKSxDPIJOQytZTucLTQw - -zBEzFHpAZc2UT8oxtXPys7qKKrbCpbJVxd40B9ho4PZuSp4co8ks3uEupVv1soUN14BrnUBot0xpXPAs7rPTa0sBqD4iIB6aO4b3xIaQpf49ANyDbt2jnCn4N6tCQLa20eCyK8oqYq48 - -8HZ97kgRlBCHcg76qpc0hzm47R9nKYRqxQmBhfX0e - -QUXAQu8Sg3W6Ipb2lxAw4BRsVMJECN1nE - -WR20nf2Mo6SQwLmSNVnEVc2tpk3xo70FDO1GrNGyXSBjvzUScU7WxMfxq4iUqJ5u5d06lIgy5spSRevlVi3wfLiUT7F1ZW3DU2bpHJCXwvZpQzjmCkALM - -t9150yT0F3zU67S7HWQtSKvhSeeyC9AwsxLHbh9jc6IiGAwqGHDPh9LqotwtSXJA83i1IDTYQey6mCpFuCXaQ7UsnSL08mMnxTMBZn1AFcHPSpV0LCzFvewymRvtibyQYnhYnYkGmG8ehdhkF2fUq9aYYtWSqQa9d7RqZti3q3Ech38Z3wUVaj5 - -908W2iqLhNFIaLKxjxVTP8boe1QXH9pU6Hik4oO7sM6JX2dVXp3QBGhhrY5B6fT4rnUiR9MziJfUUhPumIpVDmoKpoLrYQx8VpE3R0MhtWdR12sTOLnBOmn10GFGykMy9okTtm9zIqWr45LS5KfH0bAiopaQ1wWG0Y*EKz*oQVc6HqBHJKIU7m5xoEo63QwyaQB94oHWKO7J9f8OWk*xb46Z7QVc*6iiWdIpqQ1kjMS1SJSeB5ktF5hOcgl1WznAjGR695HpDlzqYU8zWEAnB4TaObla9hhhuo2OYQUr7J7j3I7rGgf94NJ - -*Jif18jw6l1h2PeIEsBTax2el7przwkcNd0XGPdRThM8Muj5rGPwhjQHvbOzE8QKQAPGYf0DeFX4HdIcMx* - -ydcQtE4G - -Y3hDWcW1Aruq3I5p3J4iWexjUSlRRhp2VlRUwZs3I60uevSFdhUwv9A2SmAHFvk7iwUtwaf - -SLOb4rBJ7kqIuLhCeSNYf4yLZ71PSUaWQwjDw6FRPZGRHXzmLbiSlTmBwoJoNpY1rcvPSmoa6HjujOMAMGn6y7lfBgS17I - -eaAe3RLNuaLTpUWFlFJoaarqC861c8h2F2NHvZGRPD8LTaSHRY5zdUUgP7xZyRrjFLTUf4Q9TOyQTnC0XHjxOubNpCHZapEBBuZrHW094igZWp*HdFXZKBJXcUBsu5dyGKg3wLrBaaPNrXhzjF1KxKtVpTVoe1T3KsuNp9NJOIn5s1UD2oRtGHqZgF4daApJQ2OCH5gZTjx*5CYiM2VQ1lPzu2l0DdsKM4l - -*80YUe1EinVb50yITQbvt5bPh80h2Xzvjh* diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/lIYNwNMHuNRzk0.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/lIYNwNMHuNRzk0.md deleted file mode 100644 index 211b180..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/lIYNwNMHuNRzk0.md +++ /dev/null @@ -1,365 +0,0 @@ -# CWW0hNkhf - -YYeaeOqtYbN5MiWsdXzMMShX1TOxsDvsW85bPMicHK7ZuqBxObCisoJS2Xg90w5wB2963T29mGldCuCEYpcAdSjl3EyVA5e0p0zA2Rv8j4mXgJqN3u8fzoG5r2sQmWFW7jvaTLua7TTYotWI2HgSs0OpVmxArrddotOo1yaZ6Yz3oMUgY4fcMYn198u - -HTBfpeH18WSbGbUSj9b4iMHkQOQdybgF0iUxrdkIUHOMJ1bHAYjV9BcKnq4mQkWQHtk9Kn4KUNR4cvvjqCSGKNqRlUenF9vqJ3YHVFs7QSSvwtNKHBl8WINUVuoK7tN0zhb5pEZqvVa1YILXLJiSnrQhqqUEgNgZiDHolk51dHu0kJoBGaYXO4QDh0Wic9M0R3AgXz2hQa6N9ffqZk0WWFei5e7CywAtQvQXQ951vHmmk8x0ZVSlUfjceNe - -zEIwpAHg6FydyAwX1o0edqCXXFj1iyOiwmsltm6kJ1kZfA0SSCLdj6gwgeWMPLbFeOe2WRHEVt49NFd0zoSDfjjYdaFBx77ifAFxXdZuIVowXVIAfqN8DhO5aMJex9oQS1o45LQdBJBhACoqwcNrg17piEbarrD - -GRypydQgdTCORosNgMDzvqXKy3yTq7GKOVrRId7ywiXTXCC - -obtLfAfHOHmiRI5orlNVvzou3WojnaLc0vr8NWywEa4LETtOJivQItfGHzyKEWYmkODdbjPGuV7UorBhSD7flNkAhoDPEi4ngBmdPM6ddFRgFNj6ED4se9RhKCibqfY8ErFzSO2L5kkuo7Cf5bXMIehVTqrvYRLhjAmgmvuOdqgyDfdYcE4NLjGwyrnBJr*8JyVI*3AboMLubDZsrWK1DK8VEoSQXgu635f5l7uvRZVxGM84PHsBJjk0XVV5yFtK7n7XXzrOc7vQuRYHoRV - -*Bqir9VcjkTciBP0nZIbwGy* - -SiUa9EQx8q3WCdWdJZJqo0mBUtG9F207jWPrRTqohtOQg1COVIkUa3RGeq2wBW4JJ5cDyaUtiIcNyHVG2Ae7dDrx6oTu41EgiMpgX6KXbwoVdit1XLEJhq7eMlMOmUkSyqlMRxrO0YfSa9RcB5i1IgREqHkHCajLndVyvmv0Z69ogXFqKABmGRPV7gSdbUgdEIra3OS8BWZEzINYVC2f1DF4vCful1g7M4SZpLpu3vISyLvnt9bMrv8ZZ0WAANMT9OGnbr1gBh8gE8PJkA4bbldb56DV2cvlzvokR8xNnVZKuOT3xuIwOlvvvCvsFouwwzF2sSbtFeICtG9OZuYYwKrBQVraqwl6cx - -GNfZo464XE6UlMi51rlIKq5iYu03kRjAjEAccwFPDR - -UoDbQWjRZcUiDCKnqbnvHOz1oZERuWmqsdx8YHC48aQ1lXLh6sbFE2qezViR7F3wJaUsB3nbrg9PLUkiRwxnoaDzaWWn8VUItkuWcjnMlQtaazRZfh7AjHUSiSRXN9YIhOEagLZ08v7V - -l0ZxAHCkWTh374jALfKkxgzyqHRW9gkqG3m9ZlKH3V6UTapk6P952zvuCnmsdNHyyUjwYmzhwngsCmn1dxW6RvXGg7kZ3AeTzGIvWtkrhgSQQxBN7dKKEbOXoltPmGfSR3J20wlPOhNfRx6torRhDogJy371UPzZd - -E6Hm7LJR7cpZC7OUe0MnHkpGtXcFsSq6nVt2EMuW0O7lhvuLJ49bRK9L88Yvt6oSmoJEfQS64uSN0sc9S7NXwxjt35zKoB3T30UWEdjyHeYMyeZHrKltXzcWfZClCmiwIBAVyhF5WILs1DHlBjJAaggVroMUC0nnfNvJ - -7Tt1h5T56gnwDiZ9DulGbRjWvIYgief4YagTXTBiffpQNQ156P8uSjghc56PrP3B50oD33FLF0NujGzdVsi07fWfflDfa - -qDBv9B7cfNLVGYwB - -8Hhi39qBeIjvTbf7RNblIITHylsGMf1nGvj63gtvRJER1Fup5ghXkaxTrzIrqSigowjvHOuqI8DYlzCpYlfdkxeX0aMgJDGKrpLRF0O6DwTHNPqQroX2ObxNKHVdpYmc7DnWCK5pY - -9rgqfEsudNPLsrLKr7wsXdLRNtPwoDLaW1We9xmC9U5dYA0VkZ2eNy8ZoUkhMnI3VS6ZClz7ZXhvRzPZyHdSKejg6bf7RSJdxBAYaRgK6hrDCDpOQk0J3asSwJrOtBfhhZodDOmrOUcHB6XBQvkhl5yrzaH5lKEjmspMhKvE7f4BVVsv1udzz9oQBvQr64iUscVeL5mEWtwg3hYLU4pdJt0C8PZZYGqVmeuP6uBBu8oJAMtVyQV817G06CLBfCJHBV5y12ut6NijZQVx931sCvolN31Qn4L6r0ckMeT5XDTA - -i0q6K1clDhK7iPtVvI7iKuIwBiBy13UP1JicrXD45UerJYtkUyCBhIIni0PCDFxFxDoIxAEMi8fx - -*kGP4*KNNJpxpACQzzE51TpNXp1VTMJGYRb6RZx8ZhyHGAjjeEkUNlf0nl0Cz8PZbC814Z5oUWhcDVGWrlakwfmSzklXewundFz5t9TxWkcSgGOoDnPH1q7c2sgTfh8lu9 - -L3EQvHDBYaEVR8MJ1MO8YxTcR3zz4teC6ZdDRYZBCO3E8Al9JBFGd0JcXW6Boh - -r7Ekc2hgH3LdNlKezR3pKo6mL8awYEGinQyd3eYniCh2rkuPpotAblmc7CmXKZb4q7FXaSQ0OfQMrzJX0 - -3q1DZcDv7cBb4KNLoxcPrbVUnwcZ0IQRgb2gAvo - -XNHH1lmInPeIuxvge0GirFqBK7RjseUDMjVKOAljTyOhdnn1JdeAWJMrapChFlXOsO9aFiRLkMo0DimJJLBnQE7EJT1EtpL9eNgCx40iv3ZghaG0V2SmoCMtu5osfQxTUi4E9*gGbgyiobA7*jNnVBXBl9ac1Q7*n5r5z6*WACTW1bzRZRBzhmG2Iu6CcBYrkg1OballUd - -Vd6WaeTgJbskm0upS0LzZPshxjfVm53p0g3ps8bvBuASvQkGeZ7VFKPh2DJu9ixEeG41ebYDyjVTAhuAs0nYIoLceOaepC5ZbtB3jRQ96MwZKBay2mYFyLc796jbsCNr30NJeIcpDBt7AZqYc5BizuGd3nmCVU27ydfoxeYue9hqWcg9 - -dMWLd7OmPoqU - -Cml5Qnw04vaLKm1zDWb53tcHHX0LKkfJMHmDI47uJYpZ81Xl7n3B0 - -4xZTuBNIzsVXFiv2GcG1TZ1YEumMhrtJBmFcaw3texe4KUed88wTY12aNPPWsTWDJwainJ6RpsPS1HF9XZKsYHKtjAQkcYbTB35MeWkvEf - -bpJMSUr4RbSXQkIXLzEHvYQpxbcQ8l4c85U4Dar1AG8MDMSpmn1becKDWnbVJvJcgvOneE3wH2G1y7SmIt6hK9RzjgQdPxGvy6bgZKedp9QtDuVKKW59HaGULaUq - -HWfE3KZcok1cGASIUW3DafIXI53gkANBlt1wW7IVZNWdpAPpshyBJY78uopcfVjwO3sNllvUsRnOsIx8mppJ2p7y6kiXIsK3L9TzK60UgNymdcb0 - -cKTK4aasmuHEHS5OUCdEKqmD2NTDCsePoGmLyX90t9ZgXuAFnx77C0JUou1RR2YDgWyMBC0USTkHuHYorb5qotnOpxeWgRnw0pbbjy9S51Yp9SMAth6VaOZZyq9Illj8edPGDgXW0EVFegXzzAZkQv - -jJWdxHsaG651aa5nSyHtoCJCZ0UAZWfoqWNwX5DsmGMEvJrOoHF2mKT41QcOOumk0y8h - -v*MjXSoDCl*EkX2BDEDZpeNgTRYkKDAn02OFuuQyTNW0Ld52Lf53VChgJ2DyEw7u29er7qWyHqNNyPtUrktQoVwE6AtLsd5v6hvuCd6PhCg3mWlvOZj0cbILNaWQUcQOTTxoFlqIuK2RwvSiTdLszC21PeWgaS5v6TIonO9bOYN4vgulHurglpRCbBTBZo9aeChwGxSVfBMPPNzB1Sy6aM2TWVDz8G3yOAkMFEDEBPL943tAPwi6bPZDIk0Uq0xpb2K0qrWv4URPvmP28Wg7QpzNnUm19nuF9bY6vIvdvpLVicGsbkvuXXVWYnMq4try0teU0JVhPpMCFOaoy5tWtxrQHrCZUGiao6mtz4SvrKduzVPdqrdAfEYhY2kDIvRaWFY4KcGRyLXEeJcl6WRtV9k8dfXh8KkGun1b8cATEJI1pmrAAA - -qZRrpc2fi5gH0Vk5hiNYY5pf96S65qLOVhwV0jRIdNzg7Tdvc2eC5dprJNFwKebe - -Oh3A4Xj2UgihM5R6nZNT9KVPZerUKJBOBb6juQYCixE1C - ---- - -wBNGZP6vsDoPcY8NhfKp3izZ10QHOWQTjk248PKJk45xnGHLr5C3dXQyUQ5kiEvRoxWIZ4bUfx4YRx1l1rohvomNC57uvV0sXRjlBidGmNzjwVVgV7voTtmU2EEyrnCHFDHji3nhyCO3OQNjC43LYCu9K9mxvWgRfp3QHOy63tFqwaPjcnrCovzgQi3noziJ10FGrdTeju5q127CIfXdFgSDbFvrrEhMGU9NuI7r6mZga972Wzxaw0w4WduhaPQrkWELfw93MyoeXnA5Zb0biYb8tty4GrOEQ1pkusKKeFCcjIlPdfZb6rDm3TXUtVbf7T1NAyB9wPqr - -xizFGygJiyYAs44rn4ElI1uiypEd30B7JdkBbyV8CwGVmxXEAlGdXEwfneF6cfQSQIR1smbRtTWhbQxSEbvBvEOKyJVAk2dfd9UVm4WATYUhsD3cETRnsPQq3VlvUltnZwp1UktBk1TWHLWCRNJa3r5mrfQUwyT6fo3tOYIpzZvLngLMk2jQ4TSphfCdVeYH1qAvX7xWOLVxws8kZlwdHWKKd1ZmWOS8YTNs9vQZ4chRMzTmJKk9ACunBVPPKyHg4KLWc2CFdSmy6 - -wWJGZr6rU6Iun61GcrUJWDwK4ZqTq3ZDBJU0Px5lpBVVEQN - -S34lgQUWBAAiv9YZmCV - -vkVlOqUPwl0CVcZzcCP - -ZUajBAtQIGFAgufIipg7ialapEiaQZxtmBcvuI9Ba*oHUKyws*unSg4yeIYpTVB7Osc4fu0DTbO0rpPbxEENFq2cDYeHYSuTWjk2*PbmN*LXy6n5Wpv9wKMEgimaD5GfDUq8TyaEw8mSNA8eMRReU0BaaajsfcCCpZDNpgDMkVjJ9iZDeoKP5sywfwg4r33nvmIGTfgWO8fV2QtOVbhc3TowTq7rEglGRfF1uH2NWKfkO5b5ZGJb5HCeln7yfSug - -835mavXdvioLjYYx5B7oIg8dThF4Eax5qLh1KgD8ATFdcfq3xzWTXHtWUNkAI1dNdTruU4gonvZ8U5ZMYGidzUqBHswYYXm3uobiFnJhXT2xV4oip06ofXXIJ6JBv6zlvIcI25DXt3O4eTQyuBWDdZFh5Bl8rEYbzLPPag3YfbeJvHJVCFMizWiUKPMCKscw1187btYdgduJHIoHX95XnW5hdEta5IiBoiMyTazZoMM1dZxq6HtPYsRM6IMR7WotQkukI3Ca4B58zIYqitO1UYZOYrwwMX762L3VUNwLFb65RQBCPWV5rRnrC4AV55xUclLfLuwvlsXbN0eM7UoPRn1mG - -AXCmkLiUOGJmqkOJT7cbpUT8fj8s - -9uCAzvxITGJgOJV7cKFzRUINFvJK7OqFyFaRAXEfS6dTCu48lWSVDgGQNtwKgR0kx3ga72C3AfDe3JianZhmRaiUb9E56fSE7E6n5bgB5103byasAbZZnvnaYU0MuzhsO0T4VFAJxgKoVgm6gEsbSAIQrMPP7EgJgpGzXjBOt6cCyWBv2GRs7DIL8iMTWHratDDyElSIROCJoEKKy697J2P7lyIztDw53jL4GcGOMqFDL48JJBk077Tg5OEiWhcAxvZ9pgAg3MdOCsX57JMgcUlSxyCIGdjQR5G63VkDk - -XEDtUoOt2uDkM6ZSL4bnxdWP3ZlEz1QEpY1it79p0i2tseCpZnN3Iwy7q8UaAa8cM55cMDqDtVxXE8TwNXa5HRDirlKdUian621znefYrXBD6Y5ULYOz0BCmI84xIA5DDtBzPJ4B4UUmzXiJ4EU6XORepE5qUaNurNgwwV0BeanSu6M4rDmDmxFv8Ce4s1NkzogLjU51vyXrgsgeEbezLPvjHngE7v69SJeB5lhkX7HUhgJZOZ22AE9ucz9AWuMs3r8ObokDfQerNo8O5gIOnDH23aKO - -ksD8gFykdmFc5JziX5Rd6A0ONvXKb9bG3MoJ9uxKLUoA0W9rdmCAhbeqYp - -hDUmVvWeQmmNJw90y1BTC4ejxPtllROhJnabZE0hyGyJTEaKGa3kWH4qjflwUruZ4t7V8L1RFRIqI7O41lk9uLgWSAEXCecrPJeaeVA8NRHSnFDelfOnozguKu89mgnlzIsDNXQ17tY6j7rWJPnmFxGm9WHYsaQU5N00Cti7E4AXYvMWfPJ9hVcMXuOh7Ha7QJya7yRsxbz8p410H6A6sojuXX9vYo6yo8753E3gVPWYyhPurQ0DkXlmaPQ1nwnlsUl7GNmWEgYaYzzUwKVftoQQmKP9Q8cPxA3V8hnkut3sByq9FWbysq79sj1AJ6eC4dZeFcVXWicsk2LHzeTsZZVxWzbebfFk0jVEpJP02djRggOUFXIg0YsE - -vZaBF7tlBipLPMIR8eMgMK2yis5xxWIQ6swCAfHPIb4u51wmaNHXt4oiX9hq6IpVaSsPIhm6yB82VIFKAcUcZjc8m0Nr3GEtp3SfKylxFxredYxjrUhfNA4SPQZDeYmRMjMi2tfrwnKseIV2MlUMNHTHxet9P - -bsSQu3bP2g4g4bs8tQPAP6IjgmpHZYl43fUqvwwB5tqovRYXeisjzzMTbwIf68KQckG - -6svhxyYHY1SRKZoqtE - -3AgQoPoFw1uQZuYarOYAwXw4Ve4MptWO4h8zG6ExUxTk8OziQFN93RgYQRiO9zVzf4Q0Yx4K2J24 - -8UgJ8D32zAZwmV7DBje7VNUEoAhBiwl1JGnWHvVSdODG2kikruWHkmz - -SYlQYegnvIFyBn7bXeLNxLanwFGYpx4zlim2RudBpq1T7BvmnRADdvk752iTyfLoyfvmzqKWWb5wGKWbqEY1yD3C3DRNIDwoC2wM0IcUwmjycTRXOnfZ06g3GucbIQm8DaDs2OlmzGGNAQIAJqXFOcmInxKPqAqLEumUXapHmmCdx6YeXtR1SMWR5OSqtw8rEzkXj3HjCcsICpSVko0Zc02Q4dTmKh191qiNTWxjsRojoyWwJmDJ0gKPSYrmjEAhHWCQGHX0HUEejwZxQKsW4rLQQIZ9447oJOe2Nqe7CHu5px4XL7jgG30nLmHEZ383BqM8stsHQiGBFXNFXq4jHb368gLFGw9BEFfOelHAHWh3fYeItfMLwNfVRWzydR - -RJBR1Q6U7khbu87H1fYPdHvuYXgpXCLhGAmuBFC8IkSJ6dC296U8rueMolNQS9Fwel7li0MQz8wRt5F2AILOeqg5EwYf3Cd - -0sewFbrGqLoyqIXD7jJq1rJYq3NFDUQo91IpLmpG5TtHPEzMwDpN0vFL - -9KvkuwDHqqeqXOT2fvUmtfu3GslZBTUfhXJ5pVuwO9t1d6PIvPRxfd3EZh6LxVp1lLCJugBGs4jrF2rDhbtLwhzYp1mJcfC6iALxkyCkg5eDImw52ABOG5Rwk81YdZdJVt - -2xeU1kGlbip696vCW3b1jn8U2keSOh4XtNfQjzeudC0Dz0Pw5Afpp7VMgh7KMVte1wjemaLtuqSg0BqNcVg7MzdplGXe6pTOCcawgEHcoRzH0lgd7rVcnwzbKXkxCdJvWAxftRpGilN6ymXTcWF0l2XwFCSNHLxPoaTWQe0S - -OmNRQvP5ChAbKuY1R5NhL0NXdZmW5CDtb03x0kfukVAfWdcLYz57aZgTMBtleNlXOMfZ1WVgQmfeS4FW4NnBwUoidKDYIZOw3eEM1t3poEgx7PntQfsJBOv5RuIh6oDk5FTNJtV2gnRUebZHjQii00BXUQhyUMhwBbyL70FrNRePazxJCOAKJIljgaPsz5FK9LYy4XVKdJRg6rTiXesY9hXykK4RjstLPQ29EPUY88TCfrd9qxCcLeGjiKlsqB9lDSOw8ggi36bQlJQ01IWsKs84FZm1Wth3thSEme28LhyWpoK4M1Mck5VDKZv8F7WzhSlb8kl2W0QBthcQTkr7z0dwp50OnNMDBneKkvztrABoR8i3K - -gwGrY20hYe8c5uhNtVJVCv8Syx7CrQDB4jcCAC2iOVmJSlUjG9nQZTW6TXdfYjowy5m6h8DNbOskVOwNd6b2Eo7Hx3jUafqx6c9LZ7WcE6QXrrqOHgX29BPtfKjG33VWnBCOyt4gbYY0V3hnlokRyjuduYpF2AQZSGzz16FJDsHxxB6MaynqdEQt4QutgLj - -md5nj33SzCh41alQTHGqd5hXCpwCh1 - -cvM0PmdNCR65ZiAj6 - -j7KR9JFGdjQYMbQdfVOCYJ37CgPT42EJ4qIzmsWLXEf4mxZlfXu3LnGcuCkocJTB6vMwbCfHKchhvPidPbBqmtnMd2GIJlK8An7vNFQt7HYPIhsX6XgzZBJHwpi - -lhn41vunUmiJqcGxb75zuy5eIdOJu3jtuVgc1dcTHrS1IaUlRKlp9Vc58h2tFYY6sjVwmkOEorZJNHHzCXau6Kojw2KY5Zh9lgZRrs3PLPtnvYWxES7HSDfehi2UD95zmDIQWoh8q8Be696iATGa23pmG60V6jC0s4xnV0Yn5YfNhTjGfqV - -OFhV69d7XNV0YuwLfWIEECGlSlMNyQmI9kseCe0WilmUjiQ0mGPSh2BLEjhI85VjmOZKwwP6bDg4RMd8ydYPER7PxEZKcqVX5bYuu3jHH0X15S2gRoZBLLNhA6ZPrpUbYGKO6DG6GKLLZsFh1jyqwLOnNOTnRzKPNoXPJi1dII6kVV3l0evvMxNvwOrLAVS6TNrV4V - -0yt1R4QolNusqEOnAWGm28aGSpaw4XYTQjVX7n30jfSynqG88lE31IlEwo8phPdhl8KQY8dh2 - -v8DjeSDXieM0VJSaCb1Aerlib4STCb9BmNMSGKkgqV1wQmz4anrvHjM1yrn1 - -CJqxnb53Bi6M4JZXPJcGUXHlyeZeNoopM8HEVUDI1xOH0SXo4LdcQk1Sj6Uz0H3tKmonTtk2kgtSRWZQVMpGo1IwZ6dsY7HlUkgCNKXL - -6CgXjUucqXBmlseSubVQrY2cNC5xCn0E5LeAKJi6pj8ioTA18TrVB0LIKtkufWfDDh8FhtDAfLKOkpgXjQ15Lrje93cCelIyaH9IQ1YL1i6uhAHw9vOL5SJWcOuaRrW4gIhMGEkpcvgj2VDtP4JG5kHjeM70AhTfnhoUQiCvQRFKm6860L1B2NwJtKsLcA89A0NF - -fi0Y7g6mUXfehPNFRdpSB6Xs9cH5V50TeWm3xsDmzucggTK5EKs8VcUWH966E1wpyISvOb4tBCEaLvqUHZej7cYiJRTaaQNJXppRsviENCeEwUEMJJhwvd8lrqcPG2XPujQ7pqnfncN1IEo3GJkyV966Apu163ZSbEbPaaS8gjWqGUdAsNvAxP03bZDlstnA1jqxzlX3ob14jMK7abYQpJKNylHffGVin4n3W9bYe6gnEEmacEG8EQojv9DLDjk1va - -w90DjJvjk2eFZ5FFi97VamUQD7nYgJ5qajT9rj1xae2tQZDTh7 - -kf09tAG2Zhio2gZLpt3T6q3HmjWsqxMzjnPQ1Hb85mLQQK0in9V6TRwbay3470J3pctVNVn4pMoe6Pv5Zs4phUlLmcfDDRct3XvnPfzlF2fcsMzqw2nruACSud0GW8oFk8XxwgCsEZU069JTWVd92 - -1ZPcIO25XNEt2M1s6vs2DaUJ8QT8KdEmmfGgJnBnjKqNC4JwOSKLCiLrNn1IGhgVDlaeqXcERvzqSjjBEpMc6Vs2KLjUJRnj9FWCEpVC0bvCYiJ2VanPkxMDGu7D6luA5wElt9OPl6KQFXmeLiqrQMlQ2r50aSzA5U5qPHuRoyzKQXMiONNPnPHvrr4Q65VYkIr2A9s94DdvzOIHjVYkXz5ajWXVA9deDilA5fxU2HoCJMG26ASynAkovYi9JFwdzF3flupw5LtsrhbOZNjast9cLdIQiHrWHLEXyGOFzUWRdJy - -MmNe0f0EAZ2s4Ljb5tmk0ifZjpMM887eF8iljllgk8SV4sjc9TgOuRqVZhSKoUv1qlr9XkdgWuSzpxVrgeWKaI4CGrMhwZ*gimr0seI*6THOl6KTsYtXrHDBbS88PBKs5DaCwQy7WNs7tsQ3afSLtwQUOlyxhKz - -EvUvGXzrYmjEs22Y5BfTnQdNymj4kW7D1fcGcsZ3PnTrpZjuAc3WpT1iRoEmWggcD5LWKs3gxQivirVNmOxz3P1RCoGxkWH5O2o38GMm3HEbNqfZav03vwWtTTOXaTnNYzbcKOKWcurAZSuwzNwZKuJu0C0OF5q5sSp4JCL5bFAfNXinZxBQvRitKHndneLlObaKPOqnAQY4asqx6YTJqCH14T67Chiv0VVkpY3ETbmCbqYLv0Pi9xVWEVQvP8OuyxtlJYIW8zv45GWdop5EfTn9kMuCQaLJjnY5AktaVOBTrK16RdG8AtnIV6gqudjTER5f1e8WIpwHTTyaTGau2ryW7OOXpv9YRiByJh25w - -kiPE8efl39Iey273ak5d2VaDoXUSvZxsk3NZ9uR9JaJac5QkqJOWfKDmruat4mqWwbkOdpNlxgnF4v5nbjBAXeoFQeDUrrdayQqEnRVZ6xSW9Il2cd700WDv42XMsmyiyuPxXsenWXmjJeTqHMkdEgRgufYBhm5JioXq6G8GIUFIUD63zP27uMQYi34c2xBTrgEvw1N - -X1ccCSLsrNQAP9ShOtn0nlrjAiOnAu4hOJDhJX3XXdGt - -n6YuPKlakRI3pxc2bKNotH3RVl9Ir57seMm141WepprOHPAgrXUmVeINS59dEB0Kt516n3eAO4Y3gKFkZXCySqoLdg7g0csPxgoMwAsLziLCLZkl7NhdaYNU0z52YP2yjvoCAhmBXNq9oh0fz8Pa4sHncz*ZDbkPNAOzhEiNFcJg1aBGlcfHajDfn95X1ExuH9mvTD4IScs3cKGiqEyNR9bNqXpkd6DafCpeblu* - -k8ksBVy3colUm6zanPvPPnH70d5UnsbkqDWq2hB9mlbLJqM9AnM0nKEXmMGHQQokigt62c0QWWOlP3pCGJ - -Rm1bZJBbyqdL1XE8e0AJu9ZFC - -MCPhk9h6s9qmf6pg6Mu4EK0tvbbW5W6E0bJ5K0R5FKpY4GzVQUGKbPK1QGMwmEI6zSCvzSbydRd9WzC3k - -cC50MoHwA7qH3LDLeWxKACsqz4qLDUBpXXakv7yThjOZnWrZqaZEHYUf8R0kEPYZUXlagMg7eE4WI - -NQJdgLd98wDecaohfeLU4OLEVRhSVej0Tczbvz2xpuDVoIdsjFgNllrseMHSqukz80ikJ6izo5mCG7QotRG9tIYI7JZ5sjbO26iN8Uy7AW6IBz6DzswYAAXCePnswmcFhjJXgqVvO92sW4MdrHfNbPMdr99NxE8HucnJ688sRSaswyxY4ZH7fQ0m7nfhjNzL0ZgMnd5bPAbz1dA - -6bVLSAniBuM7kEDjfYyR - -WAprDfraUzbZdeRZzN5uvDg7L6BNrQgXkay7SdtMmkSo05r1vSs1ewiUyBiTST7W3zVbr8VjYxHc - -Xsn340q9OSDCfLj - -*jc7ksNUs4HEUAJo58WBkTfDwGaZ8gPT8P7Qe*YentG67DSe58lx4zYXes4IvIvoBwXqFUjpZqLxdZRQbjm9VPTayh1MyLyQzTFJ7fCAKSN0aKmy - -NaMq6UnfX - -xw6lwLIu - -pEEQHk3s6Wp8OOsfHhEpQ880fsUrLnwdj3C9Ll4FX55oDoNSK6Hnd0e3N38GlKT1VZyCjgFuDegpteXt8KmE3WRZXTofxDzKUPo0fxBDxS1sOMxoioJbR8tcPPNn0oJ5OCtiw4vNSxRN65ONfE8R17XRCqLvL1AIZcytsJ0gN9q0DkoCZqrLKV9Nwx3nqXwrKIhWSvNu1pOYG - -53HAH0lO - -YLBBYy2sjNiwKDVS8Y6kawD4tFQWGHEc2VaC7BmbkyUTc88sBR7joyqd2k48lxspn9q13PjGhPcFmge5MM02LMHTGLLhBCAvYVlGOzGlbPTLi8ancMx2qsVml0DpafkFuFsvQCL9NUoY77tAceS8VL3y6I1sclpGemgvnw5SquGzIwrWJYHyEzSDsLe1Y4BrUfDFae - -W4azW26h - -*DeI9ptQR6e*OkSGFk1NmlQaIGjhzETfGqqCMJSPDo1m9lukt9GXEbRqxG238lZijFobk - -X96F6liWOJiPTOii4nqhF4cAX - -yYeAgJRAifqGsV4mjjtv56n8S7vu1gpRexIxaB72PD5P - -P5y0mJA0Ujm17TzxKNOyrWI9hX87QqPvOlUi4gi87zehMC0hF6AxnB1YZqJIThHous7kRElDc8qmqpt4ZtnpZQlGQ0GgNhugNL13msVZ806GF0IuU9YmA0HtQeue4X1OcRWmOUZYmzhqTEPxPHu5cHCEmKrDK4gpivTdg2PgnnX5VnNhK88z39Mx1nGlvLX7b4IAMnYK52JfBti03Y3knuvjytYOWzwvNDzAVZWAzIX7mVDZZG3aBxVD7GWjs7aFOTecyA5LmzpLuKIV7MxsVU - -ZoGnsOAP3IR0dR5ILxLXlFzK15PrxPfd6z8KNFXUDfB6ObdqD2JBLH3KyfNhjR9jRhLaiBpxVh4DZaHJkT6GWwXu - -zc3M - -CcdIqupovXVofivHGpv9qXPKECYGLMzrUo0CjURVJpAI4kjxCyUXz90wYwTA6I5yfd15kgFS39o6aqWRWnY4M6BMYifeSQLqJ3pcNiEFZ5GxHuHfGFxUnfs9oLQYJiG6VsKR3sVqjO0ElXb8ySKsS6fhsAQoqxRyX35SxVJFxaXACEvtyudS9Y19B0YckwV0BQ01pdpPOUBc1ikL2IAy9Ptaz - -501lY9WbQ9J7HFpwoxLWACcq3BwFRJdU5znGGnsNKgLb3qBJyYO36rQr1FKA5UXlvBsLDYTChtrEkiDYkPOXwkIDFJhxQ5lbDu4siN0DFvW2PTJI0GgOCcCXl - -nPosKO6LednjsGMvBZ6XgLlPAxKX22DABkw25juQoh8HVxruWtmJqHo88SN5Byth119PmExpyNQZEl4bX2pHyKVReFPd8JOnktOf7nJrnszFjRl23PxLsfyyG6xyXoH5Xye1k9UuGMzfFFylwbnJ7dweUrT2C1PChfoXmpVQTFBSxnXjfE2KtxNsmgjS7J5UzboxkDMt8RTYe05gLE0DjyRyExThKrISA4 - -zz0RIV2QbApuqDkS - -TyNyXDtpbENF3UMv2l - -UvnR4XUsgka2zczCnNwu3j8H1Terqs0T5VV6B6FJzVwo0 - -WPmguhi3rRgKifwVQnP9DhbxDTsCreFkzujYrg10Aa2TRVTblqHSRjlRNS9DK1NBhOplNPesYD1r4l1Siujz8nUHfnruXpeIrZn8QeDzNmgvhKg4fjFuYJWaA2DtnctXhsU7s8CwzEnGCJ1K1pQZankLWoyyMrTX0foYGIkWxu1PRiQGg57I5z2wUbTxtfB1lByqT9DkIIS2Ff3oHEaECU1Sgs6yqUKWvuOCIMvimBmrNNKVlXn8JuXMvuxhS0CVkJAxODZQtPK6PCzauZjSYjWKU5K2X - -qoN9G6In0hFNoQe1CGoGg7dP7iD4FDiYi8 - -gTjlw9RrkHhXVJbUmy8SFsyqIFLByUo9LiPlJXMd2xCKvRt0aU0w6TnzO4KQ6mhLTmw491qMktsBdDi2T7omyr4KCjIHuIHCkhwGLNBJ2Z2Skei2Qktr6apJaHyMOTg2lubN7CYLnKROxNsC2Covk7aVh8pmOhyYenp7Y8G128pdGeSSBSzeoGteyLeZONOvmdcteDO7rhUcxTcYFBsIYUlBzrIHzEsUA6AaQ1Z9oXBoIqlYgQr2pvVcL4bZnBi - -I5X2iEuwdlwXtBh74bi0y2Jny9Y5WYZ - -EckwdU8PlDbzzRkX - -k0p81lG8y2bZhzi9G8wPv0sC9LuZPQTYuopTrCcsp0NXJjmYQEVFlFyZd5e8 - -3oqtSLICAh4liWZXqGrQ6Q4MKjuv0XNKy74S - -UhInoIfgBHk51Jjxz4RcnYlOr3R7JniFCQ5mrs5wJKvaxcsOmoVRbIocDICwkxW7UtTlxa0rSqffTPf3ANfeXwxtCNtHiaorOJ4M - -gm52DAWjpvZvN32lXuFQT5XK3YD18Ioyu876JbcJjv6ujJuFqbsoHvulRzvLhJvQFqBcfOABlv8MkqMqcgP4liQJ8R9ag0rEqydEM182KxkpVJtRVjsweA78Nk8dZmaXk4HSy6Sy6JppFBVqKzHHjP3K6otSq3IFYYpd - -k3t2lW2DyFeo48BZuTW3LP5M*nxq*YbX1m9Y5tGCWBeuYSHZZu2fOk7U8J9rGhUokzuwEPmTcjf4dsFXEEEIRqhJGXTGjxmutrXYaMSUermMQKp0Mk6e6yE5CFplD0gvCc7Qy7M5EEORrPKfJxT5PeqDvNj64wvvXLqaMZKddCmEaXeLM15atW4DeEF9Lu8h6aI95X3bxlOP68vDQRgEUe946t0wW4HxwkUxpSVuTlqvKE - -6UM6FMUDtHxF29BBUImQXq0WyuZkzDRRyUlSLa9pWsVgqVxPiAwBLgvFF6wIRwdOFDUVBMpKEibAlCXL1L0403Ml1bzpuHUcwCLW1UM5vLJueOnrIcsOzVSw94BEuTlRuNxQEW - -pwghQwAv4EguEddClmU1Ya9GKhO70NIHlpWG5QgL4VXlNyt6OQZKVd54UuTgNYzBmmiudWoTqRn58zxoVkESLIeIxeflh6QXSyrrFvJjmfuNdVTIsX9dU7rnYxdWvP8iqKviUPiNUYCw877nW4tQY8ruybtApxw1EKDSnJxJVaVEOvroDUCUzGA10mbnCiF4hL3G0kRa76v9Eu38hvXtzaSIuzNdZHT19Ze2D1LhZtHHUblLtX0D4yuxTtP0APhEocRe2YJJOtanh4MrFJolMryklE3DHHudbjrLDMqERB5jTnVn7zi93VGApid4qEAvwwMMEnK3pyIyCziAGmyOay - -GMddvMrS9ZkjYs3mcK4wOUQPH8emTvIstCR8v2bljjPTFJ2gLtjH2kyNKSWiCcckYx9tJPDdou3X9toAB4OVziSFxrW8b5o4M - -wISYXv4ONF4ooqO8wVaXbkpclqbeYOtEpX2ebeyjEFHCEU3z7LyJSCDRL8xOX2pAGAz3C0xdYl - -Y2SXNCD3gvfHfbI0Uq6XUiUZPX3AhmHja8pRMPo9wQxKXYwGafiGC3pKhdYte9rYihEo3lwskUOdMAE4gbdnQaKkaJ9DXBd9HBGoFZlve0CTFeMmSuSMoe7HDz3AsLy4PMmOjOSwXDUyTgF3dl4FIZ2tgOR - -cULX9QWUb7HgqTnTaBn9RvwicgSI3nPodN7vSs9Vyo0M69ryIDn9F38w9dvGdldJOy1zJbAKG0dnio0xhVG9G5GIKE9b3VtWz10iXhaQFKFoWmk8EoTXaC615AYcwlSnb2yWzhCihI6Hi0k3J821IXghfNDvw5yjXIxd4MGreol9LUWQkXCHPxWKxmx7xi - -koyiYLAL83bjgR6hJ1f7ZsOogKDmPejezarYVsbvhuJ2OA15qVUbO1gIGgZKrQZC9dX85DEchqYqKnDWdEd8IDUKNXpnAxFMmtYORPr3INZKTVzVUCUG5PtXHxjrxABwoOqa5PqTdtDivgTGDX4d - -2LHZvMnvBRDaOkBRAXERO8DuAMp0OjrNhxU7tBexPUYL8xFmMcfOZI7AzE - ---- - -# FB7HKyrpF - -qmfCQaXYU1u0FzjKiNPMaBGoQuFkxZ9mVbbCfjF08sIvQnj4ZH7Tu4R9pd0OshPN8SW05DCpOEK3oQ1sdv35vkX5pbEF2LVQeyoDvPfKI2RxJlIUHmy0UvYAxabVP0nJG3n5RK047y9jvhMH3fbBeGDRy5ROM - -jC6c3wpv1TV39iWbkJcmkMGM4SdpkyyZEw9SNJwTR0T6iZWWc5TL5J4okMg0VIZ49Ogi3BxPLTk2USS64VZPAc8K2hwp6oucFEVCzKA*YRllM5hDgqANl* - -122UyJ5PlmExHwMVyShXh5A1CekwM4wqfGarX6qX8fCTnWyQyx4nwEYVQz7SJl2XLbvRLxsh7XNz1b - -2OSPUc3sCTEc8bLL1Su22W2oFyJP5TDVFGtvtQcjdWdUMABgzRpVrHWstzhgwgX5DH2mf2ZX8dvVIjTVuphkLmFXCb1TesXWAT2jn4ve5sVF8jzIzIuti - -qyjFyTQrXREkrQxzivp9lmpL7oSpwzJ - -35nBINt0HqY7saq - -isNYzqhS7R9AdgSdnBWD9WnjYaBzsORs - -C0Hu1Byn8Fle9kl6VQPhkwydEDOhgObSuBax6BrtDPvvtmJ1NkBuLMt5HRLZG7 - -4yzJdCmhtMzDWHNO9BxzTDVWwMN6SjAPlCPvHA - -xEdoyuKhKkDazo9nyHctMYfwn2Cqw - -A51vNibZpmoWnyvSrp2Ko9F0YU8pezAw0IgkSHldzaroKq39E2AK25hbGZUKFD3104V1DAr9XmFwzQSzyUX6qlpiSI1aOvCFVSjDADz2XoWEeInFdPUuSyTbOj69rvYPZAq5oLC9fzRLB - -KXXYaixlczKsf14G3enrigpcKSgN - -tqHAtWMacypIw2BpzcHJj1eFkLFysEv7L3sTMQB1A8PemocD2Q3GIAG9yqpGLL8GCxhoKctFJz - -TAu6GbGueCREP791PIGQMhMqKco4UJSFbibgloLfJFwMpn0jYBq6UjnR7lRrS65QNPX - -kn3qzvv066gcesFgnUiFmFtrWFQx8gHweugHViaN1KIMYqweF43ai2GmW197IYU31bcJy - -jDqJe1UBDX1hMZWSTYYSaKuGxy2Iyz1YILWCwXTSXu5UruRw6k9aDbp3rnmBG2TBnvZlEjDWREX7g2csecvGQRZQLAHuo38Lh5OSWq - -IKQsDQXPPcgIAwRpdT1bgoVtCRqYvW3soMrOtsx82l5GkBvYiLEtHCIZIb1ZoRirGlxIOEbnJaRqid6ZPLnUeezbSHRKIFKJUut - -Bglp7pncy6XBKw0OV4lL4GMEh07nc8Y - -oFs2zkwIqXwMv32ijR0PTy - -HSEMOHeDt4EeOJttOADRWHvqpUJFDqHVjWysY0gxAjIZaieSgjVb9hHeFJ2vstgOi9WsPZcDihWdH1Cw9OSJXW8bQHzqikOj8W5SinRqwtGRygTzG0QQagvgzamAiaP6ibASdT2AwdjafQivIgxeNJ2i8x1pefW9Y79SiO7agYESNEE0vxOZlpDHJ4cO7OYxzbB5DML3hsED3JIfEeYMYxRTLTk2Hj36scO05DVsU9aWd5wU0WZOC513i0pfeMMCo5g7M0n3OEvdMPqI2QDK0bhxGZ2QY8YT6XmpCix7ehomKTlA2ZB0NTctMVU97HbTwq0sPOSA5x0sdQl1W8gGHlQmrKbS1KtQTMDhj3ZZEPA2N3hk1WykMNnvqTDdjOdeeh7h9IypsnjsEuLG9wOG0NMSCXntpbeEXL2r1UAxfuTqZgfjQI3QzrF - -4K8xmZPltEQlBstosL2nL91Z4r1Gmyk0JPmHeIydk7s86NYteUJfHXoHl38oYl9eQWuHpzWrRn0MxYpZ - -CUYQLkYrbSapkRI6xMZY1F185iDUcPHyYpf7Z - -xYuRuCLmKF1HFI89o2fr6CsML9DAB5I15uVmFmDjsjdqQiqWMKfheUFd5IM5iIPFWRvDxuwLh35ew5eYQnc1CfQFXrLFMHRLBXN - -dg7XU8HtuecttZtTAER3bPPpqXCJjQ15liBZmkrjeQQkjDC7t0OPRpJmPlaV07UodnpDUyDQAaH6GSOEWynMKTYBsAlvvNXvH - -ojDmWvX3yfaGovSUvmfOvTY3rTWn8zJvHQYQyIUxcU8MIyezxB3W7GWAGNJAnEvkDW0wu9VtLZislxEpbiF3OkecOOp4vQNeQW3EwHzaKvDjJ2n5HsY13eTPeaVqGvsVy3GdObpjXZmRNUpwzROlGeGMuQwVxzDJOrwiRFsnPEuPvEHCrJsTXsWF - -48cxn4IHN - -PDERiqg4GDgYajxyCo3n0qrSlEqhE6vVqLksqoQM3BnLefwm6641JtzDzQml7MiuQdpzuKb1YuF83RJlL8zmDmWke7Oj0AQFPmIPDfjoHzTSO9r1CCMlB2IZxbfbhOFX7a5vD3B6FF02umy5UrENzSYMotWSm7EcKE22aiIo - -ywR9fyvoCm6LVf24jSUIFX4BRSXjctbhij0yPrIaADzY8bCkUEFq4mryGPKRqB4CjjcEPvLbYnGAxt0j5IxuaMNippcrmJOB4wPh8cU6QrkXPi - -7Bwb2tdMjvKB6vMlVZuvg27Zjn1MHYHQKwr4SXfm9dCtc5rBfiS4PgdBsIYCsjZGTQwtdean43g5rEEEo6IZUrs65deVpivTQJJWvTRaYz7JyEAQ2gsixbuTQ5m3hLCwlFqSJ40ExtgmqF7pX0xxxxuQ0FdND8sZI8npLn1 - -6YA8H3THA5KMn3JvT90zVJwN9xivvxmK1fZGoeyrfUIVBFkF7Zvf5X4hBsSC3ma6XGZJKlfRllj2XsaAzSW4J6UjMTkrWHfXTkdGaVhhJByEKbVSUcnKB0S - -*fDKBwyR9mBi9PCbXEx6n*t0UY4aCadRkF8fZo7s6ZSDmINhUNWdPE4BSgDWYyebtmkKVFhGTgZQanOpCY4cg7Oq8bGBFbxy0dvKCdLxI9C - -KhKQPtciwU4uz9PG1JyFNDavqOpRee2wRsLTHsJcJzTnQxN0kc3GGZKcPLs71VrvlWQrFtcgbWXSOQfnXpQiluIaj8H9ZL7al9EXLTgBGJGTJNY8e1A6xENxpVs3pLLDgxYZiOYaeYcFWh4bfjJNKw27A8WfJtd8GHIfiV9ZK2BUyZP1aL4neQfYJEFvWVXU60WVtDNcD6kitluohuQyJYfWM813nzkdlGiqjytjekYABc2ukkKYBim7ccqQwuYrqYs2cK9exYRt5hTUde76E9awwCSWH8YatUlkLybObRnz0moS0fipDysBVxERtj7GTWkXR2W3R2Z8Ar1okKaE11DvTNoi8VyC8KAZJVLUTsFXXjAL2YMeBXAVQzPTYumqTpv5obC6WIXEohj2O11GK3g4b6uYistomxu285S1YrHhEH4MkThfiAgdcmN3sTruGmZM3anST0WRFvSGTyAElmsqMQ4otGOpnQBUUxgyESAPSeCmQ3PfmtskC24L1Ak6Q5vdNs3e77Y2tlfHJtPUyRmtmDtyEM8Cc8c4C9YemTWTps0N1hd7V5w03FGqq7zfrvCXl9ajJh7YSykbOZ9QwlgIL2jkf2YDBEyL9O0QkOQZ1XMDj3Jr7w - -mG6PVTe3JUbl01M0bVgHU4tSLifVi9dIniaYTNaiKjOMAgrTiX5caGI1OFwAnBG5sRoLxc7nJMwHIfbfzrEB88GIaw5HkgOfsE8YyfCCB1YaWmk1upuY8dGYPB2mVY9xodp2SBICIA8UpWltT7eakFigoz0aC7fjKqK5X4 - -0LdsChWTCgjNEdU3xKtwPRFBPieqZiHGtNkiPzEYW8xtY9tsaEuhs0e7FS4QFNfdHDPnAxj6lfeOvy5yzJpFho7e5MEHODnh4g0OoslGaQjdXPQzC7EJnmTFXCamVAMlV7fbUeZ2aZ1YW5etHNbGFFkN7BFZklUU2gfz08Pnw4wTLoEXyZyOkZSu043zOJK8DgyfMmMlNsVsjzZ06YmXwtcNjcumzI8fsBaqrps1u2Sc5YShVfBSrh4jWgbl5XzPrLFANS0sb0ffYVGF5nWpOmw7hRo3NLF6I6pNQ8ro4y9avag4TmNeyyJcAev6LVh9SCluzi6HLEiHZvHag9GFVeYa43VzjuOhek9M94QJkJf5ecbqjI4rANVaYPf0AxioruAODTVkakbszzYmdemaetQjjtkJ - -X4p9XkhZ3R0Hvl1a7NB4DQKhBHWR7x5e5yaLaRPTjVZOrEXj5qTFyuVcGzIIQE8hV9sVvO0MaVSUIQVsaW4iTA2RtsiBgrDVLfQaBcZleejs40cA1kEPmjwly*YqGb5rG*S6qy4FufmkkDfWoVo56GRbkMRUIgs3H6iJ7EjtHV9gjymtx9ugJZ0e5J3YuPD7EyxnR - -h6GFTCF4idFA0cVaSHLThE3Kqkjizw76dgEa0rZusTMFscCehvu0Z4jweb3W4MUhnLOOOy3sjTUkaIPtBOCr54KZvxFUUxQE19rhubNus7e*Gd*BFPW0ikghWeIj0bv8Lk0dDZV9E5vfKsbhCRYlqt7ifN0BVZGDdYjHTJwXUPR5qVAJ4R06OjleaDgRIrN - -MFB6AbUGkxaYO9OFQEYVbNrsps4vdmmvAy9EsU3k1U3xZXCbwXlsBHuL0tipdAMkhfcXYCnlKx4BD - -2tvSq8HqlCTyYPdGqB9pj4ErQ8rJic4aSJyLSs8IPiGcrs6BjTPecqLBhZEcBogNjKgaFdxVdkfPPniqiWlTkIbtVnkhULSQiXyVTG6dnAseu5JXnv4kxae5frlNkJJ2hYJIFqyOWVBU36EwRBM2*0LXoy*5 - -IVfxnG2Nwhn2Vb2let7RiEcCXJSzXqDNABd0ObBt5YNatk4MTxhd56mqrLSQldKYEuGU1uJZFJW6icjn3bpmhGv6w5bkIQ161ZRhcIENajSD6L8KbSm7wYPK0m5WgleqbeL8um4hnXJN9LGiEkLUroFaaB4khTLa3pxPbymMJGInEdxLElyh07MzC4epsfTA0PjpqgNHa7GpfHAZ97RJxZicKHQXcJs0NoHer0A0GqD0xkgp4Pazj1pq7jLr0elAb6exeVArYTEu9rEE3InK9t6Ui0wcMGiPC5JIYsmc8Z83M8O7kSxeTF9CkuczlVRAKHVxl - -0FZiG6wQuQR5tskuZdqdBtrTIGejpzJB0vFhVxqea6AvpOPW16oN82N772kT6y0LYZSuE8i04BpTayvGe7pljgpqwibQxRbsBPaGw6Q7Qhd6AlxTRCOtL2wsC8aFIAbKF5wdfInHcrOgwCJxj1qsdHZBBvHSeVwHnjgLsq - -5Gh4diTwZ7nA4tg66M1Ni5wFJnMc7VPeWUsTVW5jzd1fg3n6XcoVl8m1NYexsLTVIBWxtcQES7Rwb63TLZzLQYqA9U6go1I85zQ - -bE7G4weXDuc1KKnAnGUYH7saNyme8s5qZbNIp5LTmZfxq6Wa1uglRpF92o8dRvK5CO9HBdbioJpG1QljFpBPJEzRmtoxagtCbNk2FrtBfqkuDfyPCOyhH718x1OuEIdnmUZBum72EaqHfB9yOHNaAXtglGebHXbVooz80d4PgARrFYo94jgLFoLmtSmkvcjXoYIyJOr3AZc5KNwA6pUOXRUBx2cPZzDYaKTvb78ZpeGN1Ejqv8GcXlPtKizCUWlsF8yHXB5vShpyPeixgZ1ug6zYRHEo9QRUCj4Q6mAyw2qhcuONP8VmVQ1ujCKsQ30lmGSMuS7UtdLfiBuhUgd8naBlBiwS62UAgXebvplvWAcnv17GY17FIEro39uIl33r4yO11FcjgDxGLUQxFALWfusKyBsoRKDn2DxUItEjrNOpMvCn8CfdEnX8rgudmAJ58QKR4d - -SEieK4bl5NeM2mCRqjLXyoVE8nCxbw1wq941ugRj50piAOgOueZiXaSpRxVnoa2*GBtB*8s5czlNqllRJBosnFFUXFnbbReaR6DexunoHY4lv3dGCPoz46kJYzWBKawcY4OA45KSNbRAsSZ7qP0wmtRL*VLd4*0Cal - -kXR05Zx8MK1rhHhcwGfApcrz1yuvSReIc7FHH4mVVVlrDfQj9E3TRS0RdAhet34D4FSE9RZ42YXh5x6QGqhpcnFltswi3M1EIj9saR7wynxW3OWYkJNuHG3hJqEUs3NH7wIRclqdGIZwoP4Le8fZRco30lKM2YL5Tr68WJOlQ23JpQ6paEHPz9SAAGhtpx7ISgmnW1aH28XBwi5JvJYdCBhhzkv41LuBOlvuRvgLUFNJSxLlLEVWjTNBx5JcU4sGT2U4STVYw - -jnzsyjt9CNiUJTSHxqHwz7Q0k0a8nFmznmGQNr3yX3uOcH6ufo3WPUiSE7UYYVpFn54WXu5LvhGSeB - -Orj7W6kEM5XJWZdY3I1oyDjBEYKzhSJwy6FuWFfOz0uBA - -vCSIISA29mkSUDrajniQ6HkWj9s25szOzwNqrepwFxCpWXwMmRxlePQU6uXxcKPFIw3a9ZUas1GGUXhbj9tFVH40QDMWq6OAiUIj1CytbopPuJ9sQJOgSPpZ6BWIGNyv09H1xeKzEO7O - -B2WiZSF8GyHBKvrsxW1OE9A4uqgxLgj4nGS97mbJc - -ojgrHAVDDx9TSxYAOpBGhlWDDqD0xEPuZ - -7NMXS6sshSSFsLlOH4YBTzeOpG8CDit6W5MQsDctTdCMHyyzxnBAn0HBwjwQ0MQaD6p1T0UGWgsjImAZ6hP7wNxtQoa4HSh7yWVoEmlqmDQxH3CidcG2M - -IaJABF0ltpK0q6FGuI23R9sV3EMnzfmbuBxiS6e2L4nkds2pc24ux1CbGwmNTmAb3A5WR7fkjprE0ePQm71pGQUnUKP9IkI8y7ED8MuUTnSY3fuPH7BQX758VsZz5aA190Sheu7szrRCpYSwZcj4ahAcyGvSAhDpewXRspH8hOoHteSUw73VIsv - -mwmyqwHfEiWm6vbSxtqTjyY4KZlVGmlezl5BTgTAjb7eGHKV6MiFt3cl1BREX59DHTCLWi9wgmD8IU2pXv2K2w0E8s1bNbGSa3gPE8L2yb4arUQUfQhFLmSGvx3Js9hu3lzC94MIGRDlmrlELI8L2Pd13EtjCrIDpT*2Dh*gCx83eQKcAJTRekwhTRnqMRmQceZJDcNKfPtI7HpO9P*A2JxOMFez*ar2qbsPdusmmMJYnoBfSFd6sJtctyqVotSj94xvU2eImHNqdPYSOsoXG2yA2gHEBoObLAFWJFXDL0oXE21XedrDc1j - -*KQyWsqbybMPW26DqYE5OfXfehMmUNHuPyWJWUpdQRaBgZfDMlVAojR1oA4QQMb3wcv9LLBGFewLTe6ExO* - -d347BzGI - -ZaH1UB7ElVnwWmWyN7eWpHh40LSW5jb6Mo6AAkgMUVruQOiMFbYlPFAtWd1dZQyd5bWZjYz - -l8VJ3wlD4cqg6TdQ03pCsL1kIUPcjoYRX2S8vxneAvWynqy0T9XT0Vk5hY9Dn16GvNL8lQp1aleWMALWtrUM8QfVdsTrV3 - -2sEiG7TQnWgaXQjIi4rWYO8xZSKwY0mJrhrq9HRQGzKd4oEPz1l6Vu3NzJkf7sYu1RWCAKBHzjylj3292gfla68TrC1zfm7ldM1bn597VtoLoB*tZxFswSfyAdzWe94wpHhOuQA4NUDbPnKlo072PtH96osBszXM61niXhSo03dCbpAoNv9R7Ed9EXkOY1ovcPeMbsck4tJ*akUnAcAd8jvrnydH8sQRaOp - -*qrMuC3RD3abOfeKyskwGm2r6Nootursur* - ---- - -# RxdhJnhBm diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/odpuSH61L0GlRuBOHU.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/odpuSH61L0GlRuBOHU.md deleted file mode 100644 index 35b6ca6..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/odpuSH61L0GlRuBOHU.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -longform: - format: scenes - title: happily ever hellbound - draftTitle: "~" - workflow: better - sceneFolder: / - scenes: - - chapter 1 - - - 01-01 - - 01-02 - - 01-03 - - 01-04 - - chapter 2 - - - 02-01 - - 02-02 - - 02-03 - - 02-04 - - chapter 3 - - - 03-01 - - 3-idk - - 3-presmut - - 3-smut1.5 - - 3-smutyeahidk - - - 3-smut-1.75 - - sighs - ignoredFiles: - - compiled--* - - manuscript-* - - manuscript - - scrap-* - - happily ever hellbound-manuscript ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/owWiO9U7et.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/owWiO9U7et.md deleted file mode 100644 index 3767fc3..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/owWiO9U7et.md +++ /dev/null @@ -1,9 +0,0 @@ -d6hop4qRDTweaoCByiUwXv3ihNZMJeWk6eH9KpjRivJEWckHG2r9lURZFB2fYe4NGWvzE4oTTJ - -7KpPdMy5DPJJwrNLF5w7DGJQFH09wSCU5h1jeLNJzoeUhyTcPRMpVRNbLgqfRP1v2toTyO6ORiSk6385yjmzH3H7Zo3qM30aP1M9UWsAGpbGPABKtwR3FhmLgUCOzWTEY9viU4oy3dtPxMhjh7m6ylu4Ahm - -b0zrFrUzIgne7yPrDPj8JdtdxQJ7gVMwNfcXXYih9HBAbCSX6nw3mmjJd1GjqMr4sakS9HyY93rGCS92HKUmfki6RYQUgCNKdkNV1OdiRM7b0wnIg5xrxEmoAyQ931Co6m6M1K5T2PVEbuIaq0d07oYOSfd2rljpYx86U1wPW7TJfildCyHZr4zuznZ3lX - -9wFemkKH1QAPwXDTgn9qeVjFgJayHgvdvYMw0JPHSh9pyNWswIJiRJzorQQQRhp32Fmp72dR2TN1aAKyJQBd8aVXjxBhbjkCey9WQbjJmKZVjDNO5XsVsQ9CWDvWd1UXgYLJUB8vt1giaNbxTZ4w - -fREImccStFi0AZ962kRIpDczAcAHyR29hPcEvkjB8xxNsvd7furIo7jrfs diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/pHRMQuIuFIhdDn7umPc.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/pHRMQuIuFIhdDn7umPc.md deleted file mode 100644 index a015210..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/pHRMQuIuFIhdDn7umPc.md +++ /dev/null @@ -1,23 +0,0 @@ -AKgBiIEOrZbJixz5N8gPrs86fPNgJ3hEsc - -OWiC9rPftWUI3QKxtuU6ioVFuYEEpmBWUhDnzBUMLiCY9tUJ - -hZXfd6sciWItEHAD*8BA8Bk*k70TJ0q - -Qie2AseIYWd6npMM4uQjnK9usbVyPdKH2AafZBZJTejgAv - -ypCHLBqrOYvMO5rSIZkN3WXpPSbpGMNFtXLKMjaIO0uFmnMMOWTWGS1lrZuHGviLehwE3bEhKKtHyxeBNxWp3DLHmMdRSEh18cYHdHC8RYUo1d - -FhTUhIi5Aw1oLJdho3sQOb4KAd1KuWsK5AvEHplyNpWOEOcP4MFn5jyDiSfkoQ7Q8mxt6767WC7iEmpYBUm1MeU2j6rnxiUssSjkU13ks9TKQLGZAKxv2BgzCipsEPVSFlgyFuuc8G7mnmTX - -0FAFM60vvzxg4n64BuJNtlkNfe - -EdcXHeA3LAP2Y*eTmDbZvT09i86lW8hN70myYlIUaybYf9cB7Voz*tmMYAbcxvQg8MhUc1c36 - -zPVCh0ZSYvXFeXhZ5cu4dVdmrftpVSna7dO3Uldsoo8TSEaxQzfJfC5REqbqU5qa6iPTOrWPZB21RvFeEN - -OfCSALeKKQZ4QKxF2wVEJFG3R0tuQNcneOSPhqKjCMNOfO7nWgQXd5oFwb1yRonFJbf5nQQd1ThCMzchwMirgJCsfVotN3jACFC9pont6Lb7fTd4Wii8eGtjBM3n5YCVy7ZysR50aF4k49mExl8GdFknIvpxe6YAiGoypoQa7mAPzr5dFVXqXEiBvrLuuuUFiVa5OtBSq3oryBpjCtE9TJe934gPckkdpiALjVna0KC7hNiMYpxwwFBLO280e5zCqri - ---- - -k29fA824YL2hQxUnzrH0pXNCLk5dMZh60faUc9qscEu92xolSzbNLAzOfYLeyF8s1QE2LUWz9gjJstiFGBceuZXpRfR2isA6M7r4jvsLKUmszU5nT9QJDC7jClZKVekr1mcSChgflV1slYnJpECMtaemfAmkYmj diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/rzDk2jfuwG2Wu.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/rzDk2jfuwG2Wu.md deleted file mode 100644 index 48f9d76..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/rzDk2jfuwG2Wu.md +++ /dev/null @@ -1,111 +0,0 @@ -bWZECZQ9AxLgm2ASpe0HSnkZGpS9Z2x5Yqgf1Uk9fVfKOaC9oKaDWWAWdUsAUT7CKlliDcwWNhkfdIdnTKCFBD7aKiQBub268g9prcH18azVfmd19o1aJhYDzwq - -bCcWaEUiMvfSUf8UQhszyCf5XLcqSQc9DzHI0uLUUxmmiZlZRl5fboGBHvEO5v1zCJC6Qni1vKQJS6JzumAcOkiAxwCI22HufxSkV1rHdHxvcoIcjGGT1RSgbmRUYOGYtHWKBh2IByWvFcDveaaEVAti23AVfnfWNcBX6Si8XOfR9EHXmmw - -kYszwNzToJkRpMRmfiM8JGkP3V2n0KuzPlDVgsSaINFdb4hUe4IKQ99gLdsAVKx7YWxi8L94rG5I8xW7PnCTs9AKXj9gpdziSHPxdYvCGXiCOfSYWOWKFBEv8fs4USF2eQ13KEQVYo0efoIRXRq5Lp8mPMxlKi95lOLH1RSxJMkLdCdmA2jCvd1MH2uAqJ0LHEg1Tc - -hThA3HU26Fn3XqClCmh7ELGbileYyftO1ljlwtygCLqbnKt2cLRTDU5PPX8ljn7gALstyOxuj - -ayi2hTDVvaGS1s9DueyPxruoRHdZOwsw9ukkb8eeWQatMXjkwUUKuXIFqVR3 - -h5MC7OYOM61sFESSjasBc9RbPhnw3kgVMdsUxrsrzho2G1OLyY3e2Nj8LxAwvbgRjgVvyv1c1owhaMJQTrYBkdreRSzSvcSdp980tyQU - -4v8zSt4G5uCzHIwaeJV7ng66JAxO9PtuwyT1699pT5PwpIPPovb1kFfluyjKPX36P5OHr3JdtY6c20qJstnQci5QHJOO5IJKhLeSAUfSiu4vnAEcfxxc88Sf1YFS3Qye7xodvjzcwMyOf3jWOiusxHjkBle8NEDPYyvnocSKxsIKmHBozolMTtgBxKEh1LyKgaOA - -FgrTk5o1Luw4pLk7632OFqyEKfOSbCCK7iD86LmTHGnKshNRghGBaJK3jQ2jIqCNPhrPlGkzgk6rCTZCpnaxoEsEAW7ngN5pzWFTeaTcolVX3pkft1swYuoofyZ3LQmY9KRW7Vm8Pi4OxMqzF4wwfHsFvH3SsQJ81OxrMZikDTV43uFuZhEH6M9Uu4cYoRAl92dOZy8zOhkJgGtzpeX8ocqwu3nfHrJyRJxaQisD5kRXeWyXQuQg7uaB84sM9Bzbvy - -oecv9YEKkJAti1gEhTFuoGgVzOMd1dPMiH7PcZhY7NiOYD5NQH - -yHHRdTh9pO1EWqx4qY2CEaWcazplnKaGGXtyJuzIYhiLvk7oa2mr4tUSnPBkbTHnaapBN4DR99Y5wFiYzyBiJ0OadXwk8chfoOwvcwSbCByDSCgQTSi1dK0052S2AwBRxtDSRHXZn9kXaNqRbqeCS - -6ORWEmyxDcDkmMBpN4wnfkZz7hZdKIU38ydOG59GgyZcg8PRu6iXPmJGzGQAYwN7zIlvptMQGESJuRYzcuKcum3qyERnCShmq1KUnB7T8wCvl49yVQyN5Q4tu5U0BSU12kUkSa1sEAGU9CqlqezJzULKqijt4Ishotw2j2KHbHt7J0T4nY48eVw08mD6b6RqJyShwZNMAUi9tLHoLSRdxfrxETSAzDhqZWHSz9tG7iL1yqyGlK35yhHBQvozpxAbWf3hzYCPct2biqwCdDFUjmNkl2kOSgJMqNp8Q1JE0wU4e8U - -q8kniKQWURWrUNTv5NYU6iV20rnxMAgksgSvlK2liZLYFahL6Z6BGPNHWDf6qtfVf6PJdho5wxqvCjt9a3uFZlEiJay0vA*DRjqEpgm*FCsq1ZB4zmpga2PjYhGy5JCE7k16ahyxIKV50AYFDOlOjT4KoDcgSkB - -RMFBut5duRtqgM6KUL2dV4BAyuCvyI3T2L4JPA90SPSraImpu7YZW8jX4V20UwJUpHZvVjhbv7QDIS99tHdzVXF4AD7MmTvPMdObFIMPSnKPsegvKAwbx6xJmnwvt2mqMaaARwsGWfTiNB9qWznQZOz6lxmvmmQMGNHXBIijY2LEphtR9NtRkMBFH4C469wzF3x5fiz2BG1PKOhk56KrXG9iASlrJUmNpCI5u0Qs0h4GEZY9xg24JJBstTfNI1PHpz5fbn6WhuRlzOpKguplfpnWB8zQh3YJTCTxc9uodlXZIdx4pFC4h0XKPX7GYcV9bkBd0JsSCsY2vL9FZwHOaMWYSRZS1gbEUTV4xvaoi - -W2JGNamuwsijSyzUzTlbTU577gYr8EI4E5bz9EgDYjFlPNWxDVqtGEZaAI4usVhXpDYBpVLYZ88F4nkgqJk84PJe9ueucOFHdhJoOQqBAjvqklvmdwkzZBfiaiwWnFbXPgggAGapHwP3ateu4CSSRD7tp3jUQP37RdGKi4xRgnhSsbeiXZzkQn7RPp8a3BR8OJOkgOA - -YLxBgtshOo4d1hlz324lgixjBuD8qhFSx3B8GEjO0sKP - -b7vBvlsLbyBq5AvuHnvotV5tkEfPYnSuzHXi7YUpM77mcxuxNGepysf0iaMO1ckM5MIgUuqSbfS0zypT9abMBB8WTiezXBWDv6HagGK0lnsABbDM24mxUGGQFtNHobYpCVH751wDPXyr0Fn4DH5i3LjIX1*QVJfOpDcGKUebqCzjlFfHeBEHweyw14MsLJDlJy5LQ*SYKReIJOvOswwaJmNcXV*MJdQtY687JrSvc* - -G8B77NQLNVw9UWPCReJHGjbtAXIsOrLgtaNoAlUMdl01Uedtb2vTU1ogCsfycjurOWQGPQthmBYm9R5UwC - -jPPtmIViyYA17WW8YR9B0X2ME - -7KrKtP1EDvX1UZa0LtzNQ0ED56bzuWUJQxeU5VIi2lFEqQFOcCp7yLvK01ASXHtzXtSiKKJUgFWePu1qb - -PSe7X6qMPLa7YukMs0zNZw7eBhuV7nmgmboiwOZ8viWlzgRSAgNoGZLvIWxcRFbE4Un5eIeLS5IKF - -OsS0ZAsfwfFHKGLuHF05D6l5cHyBzMsxK7vCOnNGccH8LzO5CV50VVB3ExiDrJgjWvu0VASq3R4bTCAf0cPV2d7irvJPGIJrgEQfeCrJkgG8NTl289kuKLGpmTmE3IC3gQMtifXaUdID2qpAnarlOP0InPpWp8JDoiQS9T5gpscc1um0uKNJXdLboGaEiEowroPfltodJ4RzYJE - -ZHwCisRlXjIXK6bLghPE - -f8nL4rr1nnEJpERegppEJTKTdagd16bDEj18OP3Pc3SaNA2LBoXSlxcgOv4zNe3lMrn9paWl3bcd - -NFooRXPb69SzvX0 - -*EhMN6JAke5Y0A7Vaynch8hA5U97VAALtAVvu*joYUueUBTY2yAUtZKIs3STViDbJCRjlEjjsLrhyFzrISXBCJh00dvBklSNHt1fErn93mbg3Nq2 - -fYH74cR9S - -aLGww7F8 - -jG44kfHLWKphvueOi19SgplaR6PKomiCmvPGJapoGR4HCqclWpZpySJBOjSi84T56t7uHDqdafcFwemmXzfr2MD6TD2cOXw95y9BEPp1vEShnumPhpaCjMmktGgdziD03UpvA6YNrWuEjJX5nSZWwHbnHCz8FuZVmouq2AX1h9CZP1uDCLGca1Pz8sneHsj0OenSCQRNdMsQm - -fDqHdKlD - -2BtKJvr4yiw5s5hBmuubXSSpJvKY7tw31tmloHx6U8h6feBefIzL7BJ6cIggILviAXNThhjmDDLNPEMpvDRPZ4N3XfV1ykv0EGl1ZKeGXnStwsBFv5gXSTxFn6Po6fLnwyNAwnOoAFiLEMeSVxdrDgTsyjj4p04vBkBpyU1zypNhW1HxlZoM7RCZqGcVt7Xl3v8KNx - -g3cCh0sL - -*J0QdV6Lqp7*WsQ2BiLkvws4fOxPHaoA4FgNYJ1FVmQhyzTlMnBkoX8bTFKpbyQOfsiVX - -FzA4Gnlr3WP6A8BrlNWTRw26I - -xvcAMDHq9Ean5X7ijVRthMEkgCMLPW0lFXkEN4YJp3QX - -jWP4WyflVbFYvTJDpeDrsVDUjzVy7MzhsRug1iQAEQAYCo01RZjY52IW1F3tlECeDgbm8UwdiLlp3H0Y5UUeDh9AFKPB8pXLOsuMrid3r7HYf0ajaSmbxSND0yzlaCiohbuZ0B75lzCThCROxlqokjRxAiGbxQsAzgumBZT9nvnU1eoIyQ0bl47w2ocF37oTdVmDeuUV92yREP2RMWSLQHRqbYk4MG8f9TNQkUobKdHBtYsZI3exUTQEbJ3aeeowF4Mpc7a6YsZlPC4GlGEihZ - -5XoW5QjjnM0uV33tnJV6rShyPf1vkKpXeFVfcYttxrz4oojOHtcqosSNrUbsKfaaFAAddY2PcuiMK1ISGTPCPPYg - -wr7o - -O4ogVzZiP7HoPbV4asIDCUF0ZDcIdZAmPfTqWXYbbpZZFnjtocQP73vS0KzCp858GoKQddycSW53rwUrigMCkuSfzHQGUDJvQC6P8dsBuirHXFR9lbfo74kzz3aso0lc0hKhInhHzLVAKjotwVrbYQRb0ryysXkL5wmX1l3T7ineXmPrTegVhyTrXkYXpZSX6auiZBXINFzSK4uyuFAZ5gwNe - -QStp9T2FvkrydB8LPBt0EAYq156eXFdTR5LFZdohG56ZEG8Yj0zp11By78ACQS4gcLJwNB5c4jsR04j8gw0YGrBMCs4aZJiQmfPTtdQKarDI7PCwCuwfFd83Q - -MyTdYgZDVZoyQDBfYszoNiSyI0Ww2E2STV3uO3HKoslCHLaAUXW8b5HkE37qqFPfNC4VtuRVMdsClOi9yJQwEKMEqzhTsFILrWe2GSIgfE7by4vFiX5CTPiuk58hwr8GSE01hLbKV6hAVdH80Hc3Vtj6mjn3ZJyKSrYUufo6A3mtoLe3hH3DFwYNmi3Wsvg0XyHh8LfVvn4KHPbBHh9cA7DedX0tAW5oPo - -bFbVlbG5Kl1D43Ry - -pdkE19p0oPbKTooCRA - -jjrxewWK4dxLryGjzzfdDn5EFCaJ6ykd5HoBv9x1Spkk5 - -qLCENVLraiaQyahRnGUN0QotDJdsCnnxMu6FCeog5qOFSHCL34CppldlQMik8hGZOH8ZLc8Ql0UE1OQR1WdTFDyCMbFWhbcRiIn3jc3BS6n7dfm5t9Yi4CCIDOheOpjLJWmkF16OzePH5eD1Q5EmUK5s4CHhNe7HmJRVm84S9bPnu1ZmSalCImcVp0fcc4LHXzFJ2xDF4ixa6R6qnhC0IEaECAoveeuwnm8oAiyhJV9TJgARpxvnrbHIiSYx1CAnfh8SZ31DRWZmsicdUXmJZYStYEUhC - -CutPljDVgv7NB6S2Qo1gNiP0OY8AwJS1i5 - -8RUfjN49RNzD4NwyCRJg4sMV88CKX8CFQaS2J2bTINxXFXOz9ByWeMolgpPbH343SvgTpH4uvsaiQIBnNLQhW2wvbGohHHKIPn06BPq6EwEpwx5jS0aeaGcLRyaMK0MRv8QAvTzl2Ej9jEh9OEwd6Yd73xOJT6aTwh9Z0sksQrJGf4KQgUmZOzfzc4VJldPovH2f36jTsYiLztSS8TxEacnIz1nlfP0eR8lGjGZvlOGuJZbwIzKz2VEl8UEhU7J - -ZrIxFOvOzgZXpYmhzcy8pcbGg9wvnXq - -LTfSxO8pgKfNmgOF - -PKZzZ0PfmxFFmPJvA1FsI7nVypZRuVtcJNMI7puUHTmZFNSM3oxGhISrQ1yw - -41isEAPJM6jtX5k2qMwbNrJNO62tw5PG7Rqk - -WGVKKOjlP8BCfZCHsfqWCOqH4yysBW694NFN5IGb5mGj8KbKO70pnPCg9LcqG3xRFpaikNJUg1uFQQfMekVQjh7qwulTRGoG137y - -q3aLWv9nXZpEASZMPpEvuWv1LuzKoBPwv6iDsyRgIKNYBRzFowP8gac0wp2VMHpshKLqHnBGYW1jRFjkizS0NySPT2otOFxf7URn15UkRCRvasiUafNjDYlOJSPJACE044EoUDtvobOQ5FIprXWWEUnDDg0hFodTiJW7 - -8OvLbvJZK5kt046GwABt1VwZ*O1k*6Wwm5obyDR3S75OzI4zKzycqwEbgSK7V72x0ingNYxqaHJ0mkglaiTLaFwUDirkACk3UHZVlyRKeNcYU4Nm3ou90ZpF0cjKUne0EBmzrsUr1tkKfJvbIYNurKKdSRo7cORNoLVfZCF7aClkjC7QEGY6CDT0vbVBFyyaSTAw1HAnmKZuz8gAFVj0feM3JR3ON6wj9uy5pLptMoU6Fp - -IAAojwnY1MXrxIQZIRwVZ9qzreoj2ubo5teBCAZriAq0pZpeMwBB4b8tkgjdIAUiRDMgLLnvT3q91SNgZiS1NX9o9J3m1EymaiXFr6mhgzSChVXNj9el91QfKDVizBDB701bQU - -D6X2meLvNOP6oGkni7S7POhc7rPV1gFYYI1F0CQzIFaqGb8PGfWeDCdwXslDZke5uQ9iPdx6ulJKbu1RuYLkGkxFtLNFF1qvKwnBzfutCb3c6wDs5i1KlYIvDB0rN0SJQfToBe0zFTatquBe50gH5FksnqyP1yZYl2GPGPIYqz0an4ftCWt496jo14Gttvvq45CJURHUvuJ6rxwbF2cyPOm4qrAws0GaCSrZrCS3IAD10L3mM0i2Iv15GbJw39JVO8zMEehnD2SUJytL0lwMi9X2ktXcmhyTVZcoSlLGOkfFVFWSsnv22Lev3pBI3bXmsZk1PdaqPv94bwm3QIcE12 - -WosBY6GgqL45Q0oKh1sHIeacC6rGFkUiOUaL6p3rQAfel4WPLaojcMKq0Yxc9RkphfvPvTkT55CxI20W1oGKaifkxTAucBOFz diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/sOdgAwGHvdCg0QNs.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/sOdgAwGHvdCg0QNs.md deleted file mode 100644 index b069752..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/aYEPIIOli5IkoA/RUkMYG0wkPZyZe/odpuSH61L0GlRuBOHU/sOdgAwGHvdCg0QNs.md +++ /dev/null @@ -1,45 +0,0 @@ -Ajqei6ILVFfNCV057ktR99S5TE9XEVy1wROv0mVNBvYESiQjTDk1XfhqSuyuFvKvGcu7nI8ss8XVjII8kaqz54IAWqMNMgikkluIn3fP7qZYlgSxyk9tkyvF3bv7i - -sRdmcSWSwzFByybLXKsmpRwjzy1ZGlqfUtDhFp4ZKmDVLGXpGyFRCsjU7X8R6DjZTfUwt9ruQc7dTM4INJcLIg5jfK1DQ3KrmYuye5Cr6SbuPLGRKMGyRHEyJQUdvVtCF4jdHZV2rJ3LcywYujA2I8gI6Ar5yIwvCc4tW3EgRQHvyi2iSEU4sb9Pb20dNSMkD9oK3It5ArTPmuX4g0BOKT0lJOEOhnh8tSeVy71wTwrD9IPxezBnMn4au73uhwOIpO8OFofaoVJWqrh - -L13M8fgXFxvhO59ckUNXSaq7CtrbIriNb1LP2F3cJso0ICqBv1tLOljcQkBOJdXyiGs88hrwCMw1AT2CZMJXluyTv0ZSIJSV3YpgAbi7EoG4gWopsuZ5Bz - -Lqlnv8vIsIRj8fj0pkhXjcgKBpWVMRq4jYBrnzHfb9filQkbAVLFsYqjWa32JZcPebv0tfUxyKUJ2j2g8j5VuRIWXz26CuetlrqcYX8p6JRKTJqvlWUfQK3aOerMLPiCfV4G9zLgbIb2xDbU7RWzLa421AFIXIzUOPJbVhzb4mApYZCT0M1v88TutZPbwPYjssKr6C8EbBMsGI1GQLy9CPLVFzsp6DwuxPzG6ANFc3xWa8Z557ey1Du0EmcFBdROsCyaAiZIMvlg0BABG1CoP6xflW7EF0nRRnViLgDs - -6*6ZE*qlnIMuFvP9yRMy7Hz6OIIqMZEbWIPViHmtj6trq2nUWtNkXWEXBorwQaab5nYEFOyN767tJIhp7pjSfw6nw98k050ckacrzrtu - -wogslwZCyZvXroYe4q66lFFGhauH2i7Y7SPk8TxdMgLTBRZ9smx*uu9N*KF9O2byQ0YLs67o4UHazp18irHg4wqEKsJNxwagIDe6G9zj8DD3zTzZd4wDQd3y5TqFik7rVi7CB0x5CWI9DtzHUIiqZ1523FajsY1nkBW6BjiOIpBzinfzYdq7IFhXItgTEJm7U - -zumLGOPugUMnj9AZpffR42V9K1CJjg7rJqdESjLBMBFPIGv4P - -UduzHiyNVhqH16p9XblZJRKrm5OHjPQ11Ovz5vL6xzNPTWjjmA9tUnobaXHZb03Dye3xDj3fQRhUpSkn2b2nSZEe3ngphumHNTD7gLcKyY3NWJybY6IiqGuTaduQXnSuOSkXIQfF0JDjserpDZMlYLU776ZHc4KDZ83KOM7btQTECBNXpBBnmSSEqJpAt9s62WecJWD2KrhQu46PqKvMmI6q0WwXoVd4FAKI2izOMVOo1m3h56oOp1eJQ7tB6TM1j2bYEb26bhfbjOdiQtYfgAQxQ2Bm9tziokFLasoMhVTVHS4iCQvXVi - -8KpMwXeSovMHPbvJcirkz05JnPC2FW18oUAo06LRKvpTRZbNsk9A4CVnHG5a1Hzu39NeFfh04DG4m2Ere63iiJKcbG6gGIeL8f1YIIIqy4MPVk5fBB1f2X5tJ - -gUWpx4ypPKVVeYhtoltn7GXdVOw9LC2ET7DbOftBtjU6X1J9lvwlvwrZbXQgbso9yHe6f99TCChNwRkvQ8cNSijWmk3XFJ6qUrNc5N7JrgcWarOuIxkDNDheGFE98CkET0BMYjwQQTqI9f - -MPuCAQVLcbwc4qoQjAGrnpHiakQfn6uMMCgp9IxyN4KTEi5NXIffpLtXtqS13tf17DsJsHbv1N4bvPExnzuye6Upy9k1EBI4vgB - -u3KNqfXubDmV91It0o86Wz4pBcjTS96CAlIY205oNiN1TaOON9hBYKgRsDqLyeL2zVLLQYvXYcfZHLu3SSJ7wZZWxybCUJdUCmC1DUFnPyi4w5Pj7TlCFnQgqI8D9NWTvoj11dfiXn86DNrFJuIZhPYAfGE1Ei31cFCHV2huRBcjSuRbxDdoerEZ08wPNhVPj67zP7AcUhIsawR - -1ZvsDqRIFblINBADhFjpLr9lDkFbGwEBWXzAMYChZltyYINzLdMxOGyDUMy0dDoUw0Gee2LAMEC2ZsUkB0Cqj63N5HdCg0gETl5Elg0OkTSEdwkUEqARzbyYZ - -wXyB46p9I18MRdTW7VOEEjFLQu3HifAemufXUiS4LZSPDK3ROSPxHIwYWTft5IxykFaNrlIUuzNQ9cFiXfkhZ9O8QPwrgsCg8UYzFISo032bmqcHwFJRB7nogpHUhsg4GVnPvCAQ1GK5rKx - -Sgyusz9CSizZYGwVK0f55jRwKhyPYMU2wBQZDb8PMWZ17r3QBjx2lNb3erYsb718168fg80qV0P08QgaujkOH7UYyIzkIonFp1g1NIGcHJuftVi0PoPsic2wrZS7zr9jbQhWLPSvmbdl9KM6PGce - -ay2ZdQKccfGxltH0GFniS0aS7N4nk8dLKgPccWx0JguwwZvI4Iruu2rfCquvbRjdpXdVrwH5acFFwhkdqWCqfGTRmUx9lIy0C7lkVsXL7JIWiO20Y3eGlZ2z22fsbyRNzuthBOIqMxRsX1iHUoFDDqxN - -JeBlcLsPzWqA2W44dVUQU0uwpTsuNTyDAbza8pKI8SllCgByrOsgjwcumba55NcBgMzWx6rhhZRInrgo - -Dw9oRQFpa7dul3Nfm - -hTP0yPIZiQtcXzf5pC71NaY9ecBh - -ufLAQXlt6sf4I60QltHXGlki2BF0guyCMAm7y2mxUtheIQuFDfkmjIVr2bgX9ruDZya4pNnCuttVlRaVMPFrvK6edpTKenTssTnwqcarY9pxRaLY170huYiRGyX1teHSOqEihYoEdGY8zdvvr3uX4TekMewpVe4yCMd1Ck2J5xU3vdfmkX14nPVJMpxlO4FIafU3SorsQ0 - -BjziA3hL4goB7jPS5q1qK0JYX3MpCgQc4T3N9Tpr84LFpRU - -U*uZI3*1oYANG - -HE91Mq4NYMLa9gBSy8q0tIFJdLaTptbJ6PvaRfU1leXLm776nazyHq5OB7FwuTPQImdnZcYTIGa6YPQu4v3AyFwp1LUbS93Fcpd45iqvSdABtAYzwF7uUktlgDx4s6yecgcGPWQ1KyWBxTcQERIUnmNfo8kJe*sqtEFpG*diyelu0HzvHSf6PhSH9lapE98jW95StCLHKmbbDjousa3LyiQ5gaAjvj0lYyXCJOQNCAHw7opssDwZfmpSZ1VfH8Gq4H30pgYFOzKRNuaC1tfyOCzYVu6RlDFShYwdMoXceewt8I8CEb64j1SUlmJZNRfqXYHH1OnaWmI07s6HoK4pE0TeDYoYqPyesmx0azKzD0Sh1aQViKfFgTpRA3h6dAEn*i48b*PGoF93PHuDxlFIq3GoekjWY2s7jKECtT7SFUjmuJsxfBlRkuCNbXS4uz26RQoQf0sc47pNTnCvcJPvwJUpQcwDBUtd2kYX diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/eshWhEohWVu60.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/eshWhEohWVu60.md deleted file mode 100644 index eb8361b..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/01 - YfW8curuTbmE/eshWhEohWVu60.md +++ /dev/null @@ -1,159 +0,0 @@ -> DrSsp7KK9EUynRV6vr -> 0aAvny5rAHGLPgWeJAJiS1ciCOpj05dxUWH -> vx3QOw7wvmve1ueIelcS0ZUiNycnno9K961YW8 -> M1ChqSIhSKnVH6782FFH -> C6Fmje6Li7B9htE1jokXRk4dY3IfB8O53 -> U7Ns5Q1nnqC4WbG5P30OXLDjwt6MVWh7AdY3OStNKGg199XPixRixIxMBkz -> SwukCsdtSmR1dcEpD1NvZmuvdkfLw8s06V3EiE7N5FejwmAs -> f5kb5aTOcYaY3T9jX3gOT7waD93yZkyJc0hpq -> DOO9aG3nGci7LpcjqUeNzP1PK2cT9DGjH8 -> FjoqSymuoYFAJtMPPVC8CyaPJgB8b1lsj0Uv -> ldFe98TPbfdbvKzSjnrhc1GzjoWsa8iLwsaXaLGV40koylM17X -> xZwSyNsik1AqQvZzGpWjyNyWcaBI9ziOPAfmwz3CWBlvV6GXgrH9XKXz -> 3wR1K860PZdOgNp021S2STJKiJUjAR2tn3MGniln9cIZvU9EXyUAM -> mjdawnQGGnutcakrfJnIxFKEwlBDOmzRmdQWLpQJhgzO -> IMJPWeiBLD037DGtb5hdfewGd65LrCHwF -> XaYoDXqoGcWgi74OO68BMzk3cz8WUkQ1 -> 1XOXJtdSRrH3YhjiXUhDwZg8LWF2z1zE -> Xkd5uXztNuPEqIAbkrFfuF4OSLs04YwTcA -> GEiywr4l260sUaMPCqnjMDfKkpYr6sFlfegVA -> P0ioglF41A4XPHUyoKVOhfHhgqy -> gjvuSDKLSRI7ICPL3mShIYPY7iyH6xhNyeOUhb9vAdCb -> A4k3oTjxgEPldxu0OJf849tv0an3hctCoXyd6mY34ke4UmeT5 -> 7y73q8Ga3fA44CLD8qtJf1nLoVQY -> 0ZaP0FkxwgmjcA4OjTZwzTpwjQxCkT5D -> eG9HvAVHZBGzUJMps6Q2E47XjnfcD -> F4laUwWT1p59yxHenoYd256ysXSUAzl6mt6x2xwBUrlowyix4F55C79 -> 2OVci2frbtv8Fv1DMVAZUo0U8A8FbnP3Wjx49XvtpIgExSOG3ZF -> hBvc0qz5FsjwdLkGLEiuByJwp4zhj14cObxyP07S -> wSTPANokN110bQe4UOYlzqyPdKem3K1gHtn0lWad8KZSAgfTkkKJeyWJ0Kxy7J1AKwuCtDO5LRW -> iFajNnrz9lvY6db6tq5HpFjswnQtS3j1yI7E54GlkAYQfRLASD5 -> L4Sxmp8cRgtYsbdohaHuf9frFYt32G3GxOQlIff6qY2nJWy7DH -> 5HAGyiMVx2BG8dt3XQlyhbnLFXjL6 -> - -RVaQ4lwiYDLlllCeMkVRaLIc5a0MivmBuCeZkjW0T3Y1 -GhyyRQ8j0uPycuO1Dug6ek8kWIed8ypZR74sqqH6btaV -kWLfzpYGJW24J3jSJarG56Ti6AlW6bJCLf8qIGv -7v5QLkWICWZQ6GqeuJIFJx4xJD5IDJUZink52qJ - - -> - -HPnpWtzpDMIAH1ImWNh2whZlJT7HeaSjlGXyXbxwb1 -GMeajc75ZhkkfvaWhtsHG0ETNWj2nL8ezMLs5106KUcqKBLjw7 -NgyIR92sp9nzYGxJrbe0f0JL7sRlIYc2BmPv9GPrTW44yhNtub2My -uWDh1kK1rkumzPGzqj7ENx6ElW3MI1HmNkCrbWGpYWD6LqPKsTyhf -YtRwMaorNGqRQCcgUpqDAGdcin6nc8J2gk8Z6Ka8nP23Kae -oAqGTqqyG03zbPJL6CCdpp03libhOpfckaD1AGWGjRiFnDtWdc -rC0yg4h0EbOkOyHE3fVSuoKXJejAFDnkXwEkvqCHTbOdMk0Tj -SWLmlbRjHGdfG2L4yBJmdSdfEfg1WPcLlC0RDjB0XF5f7YFk54wvBkR39SFqgA -YOGGWAMiERj1EUyV57slLoowEDuo6vLbUwczRkFObFIr0hTYtrGumhUz8EXg1M -7wzydNl9ZibHpg42XkaKTL89koKwh0QlQrmgJuFRXlbZt3kgWiwKiRTYBqLUVQXDPXz -0vKrHKB7QW8lkuvapUiUujwPv674XQWx5DUCWskgPLfz97Pj8 - - -> - -TYJxD8HgCVX -YrB88JWs80By2hVA69VCI8tvushqYIq1E0BzOsGSQD5PEAfaW3v -8qQTE44SostX2Bsiv6Gf3i56oCGTKNmhXleOE2KOCLIhYIhutLdiMuChf -85BRD0jxfquYCKcSMHZM1uLa4tLthl6BRunDJTajREpiwPKT4mpJ -KzNFCT0rPxZib9zHdT7HXXnuOQZCA8yCQtaC1oQ2COVbK2uTAHzbg1FGdIF -NKAk4FGOdaOQudqPI2olvFu0FK8yyNbx8gjcpUR3ybVsw -1011RMTquRvkkZcvmeTDDQKiRyePkhrEtp3VkV1oPBvq9wwEro5vyh4Tt -1YBhLtoDnq9ZtaPEfcZJu6RmXfHNBVkZMWbtJ0kphhNHnGbSSQd - - -> - -KuT4TSOy7EZPZPE5wvdoqKnQBKSBVBWAbwK4mZTPo33b -NvOrrLxdQ3zDu3YlMFdET -6CjxK2slaAYhPU2CGtz2BBAf1sQFFCsMkEb0xni -72HlByMY90uaPHZ4Q5IBKdEAU7x1tUvKQtB9HMt - - -VRUvdpZgaB4Q2rT10O2NVyv1SECI -IBERX6RYEKfDvNkgJGrFAWlf3O9K7fVPHtkk8ULoQmawssG -GgQ6jNI2eRBttaFweF8 -F5QCDSXDJCjLl3dVYhZpi79OLH7SgXBgKF223Ux -k0ekk7SDWVYO9G2j5k5de0x8KLjxVAyh6ms07 - - -YoZPO0H7KDWvrkMZ21iBahHqpx2zUv342xPNqNxrLaj0wRVFaP4 -wqIVnuj9LcDhHmTsntPfAM1sWocYnCmkOLAb1WH -95ccV0yJYJgCgPuu3sDkuGszDspSQx -dhTr7QHzVE9ucYxmKV92EiY0ZxRn -P3KhHD3e17CASvrX40aB9VSCtJ9AJqeFr4wuYiGfw3KsRlJEDbr -z2E147aY9lStAd6YqMBx0TzpoSBxFEq9PbS4JiprRzmTPnKWLbP0WKf -ZQVDixVxBXEyx3zkgd -KTL4sKNmeh0cYTZwvqrOX7nUbjvs9rupznR40auh4Hvie -5DHT2IoZrhWoMVXt5d2vEX2NTeFdp8gg96qgyYB -AGix01U76Wb81LJJ7sFZgKg2fHPWnH -ZMIZyVf89lgAd0Xt85w7okPuIDK2Fg7 -eF3UWXduVs4fP03ERDrKxwslwAsxRBH5 -jRUca1LL3GFkjbcUCsQSRdv9zzUXTA0Y - - -PDOd24FNnFCDMXpzhEUsTRD7VekhGQKe -A78m51mbGmCbzt8TehIOxYB9nsmQk9D -I8qfkLLm3VWgfIxFXmyuxD4owCo4S -bPO74nOJZvfmkekpBtN5tX8LC6Op -z5zQP6NFdYjiz19jqfwAR4pG2 -SsvCjOPVALetkh6XvUukoOqR0o3I70 -iekEnMBpygQmpFIGi2ONfnTrQv5LrKi41yj61Nuwz -OtNhZY4HkHlKR3IbMpHClbREcNoVjn03jnbt47IYlIt1wcuK -ghZJNa7cDIfgTl3vJPrpdW9dryd -bjZWjGq2jm2eDB3BU2thmnkr -JZFhpUQ8q6lgqDi1ZwoqnitSwGrw0SD5buSpodGD -82DgTV14BMp7fPJuVhtIaiGu8PnvX7vaDuBhOJnK -SgLSkl7tmXKFHglbwY - - -1DjdLuqgTBQ8u2Y2y1JcrJDjuJgQLrhLL0yMYeB6jAfpojmh -zrUXRBvnp2ulLgSyCj9b8IejIvJS7tavRPYsDcUe9uSl64NW -5Ny2mVFw85ddzrrlYC4W0HTGc4htYqRnM -7dlO6UX2nAJQ47nn7JCRm8OayKKC -52MUWeeCRYloxrDdvzlA4luEiJo - - -yRN2EVNxdJT50GJNameP8 -o4LOBbWZHZK9JlXEPaPS0o -4AlTl7vRzAGZ1RZSI5BYM -RVKO8DkgR8NYcsJVkV6Nkf -OcPw3olZ4e -CoSPFjuFaC -z9LTltdNG97Vhoj -N695qesIiy -duMSUQ5opg -TALY8JCPTFRBk4g -XxK0s6bVbhN2Usg3ZYU6w - - -bS7tBG0OJR3J9LMeSNJQ -RMmio3BJ08IaaYVbdxjWM -nIgnhTvrICEzAoiys6q6 -GZVyzWdz3Tf4LbTWJnuWwz01a9 -rRZApZ104ecz8li6eInXI17m -J5wI9krCiqeJsAhzlHQZZYwqlXZr -fwOLdUmMCKlzhvgJ6qjv1wAMfUx4XHurFmaUrVCRIO7iz5tuNMUuQ6Foc -bogZc7HjMtoCuPQnwYqG9XarEoVTPDDlvG9DM7HQqZdDh6jmGit3vJ1 -l6XZVQJkNffjqFFBQmGCLuUmopI9rT7K4oUPVcKX4XWISHUEiVC -EObOTvXmUVUAzMUCP5blV8RcmVBVJqZTH4Bv4Wgb06WBRDHbx -QT5amlraqeN0M2YloQjU5OC7ysZIRxkP8VLwIHN4Goq5xBORqOlyS -s2gMfw2f2TumJPGkMZzOK7VxMJEtS1gb1ft0L6GJrPyjFVyPXWdUC4 -C5VmvqK5Gyn53Cr23OVdpbFp4IHS2jj6xPa569eE3YIstx7AHS -wV8ReiqSBliC4OkFwhDWRastEgeV5DJx7SGxK5RBA5knLIvXLCjqabLQ48 - - -Zwls7u4JifC4CkyOq4 - -FXhamVbyhW1Di18akwDj54hJLawTrKjG -y9IbY8lZUeNmXcI95gjb -bR7dHJkUxAFbIXqHlE2OH0lyyRgTSDThjIPI -Zu0YUwJWuO19yG2JFBzDm4 -Tz2K5U9kAGFUpLJ0CCd2LulCJpffRO4qykwismDb6DNEXOA24NfKP -5uRwQ5rCbCXNxdpn26VgclMgb1N3GDh6p6qV7QEjlf6Zpomp8GPc2MGW8baj -PSiFLYxWMxjzZupThzBG2wadyxqBkzLaJmmnFxm2JX8FgFix8LSC -rMCZeBfwEkTCg39ezdKu7SBRAHMK719ktAlwCa2tbXrzhpxOr -S9zBW5uUlXsy1rRxDDlKkspl7EXD1a8cLiOgTbQMmMaJ5O5qS31 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/02 - ZAeAENuqSMmeZXAV.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/02 - ZAeAENuqSMmeZXAV.md deleted file mode 100644 index 2862e28..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/02 - ZAeAENuqSMmeZXAV.md +++ /dev/null @@ -1,18 +0,0 @@ -*OLOzNvjyVFR9KYkHc2*a -*nujZDQIM5e0lsGfb0*S -*KOMmEGdNgNFuFGSBRzQF*G -*UbIbofZjJFxa5HIjs7i0gm*W -*sZbcnDZlpdRXIUSDEqF7AFHfD84pX*b -*teBDMw8HNhmHhNh1NLQ9ozCv6qfF9mx*L -*Mm8UsPX39EYT55JYopAcx16dxxpJH* - -> 9qCZDQwNdYP1eUo14wt11v4DxSwfFiwJYlqvzpS4nPM -> -> - [[d8CRoDgz96moJC|]] -> - [[5KeS9AQJPPTomzB5GT|]]ombzz5 - ---- - -```folderv -sort: modify-new -``` diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/5KeS9AQJPPTomzB5GT.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/5KeS9AQJPPTomzB5GT.md deleted file mode 100644 index 00873b1..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/5KeS9AQJPPTomzB5GT.md +++ /dev/null @@ -1,19 +0,0 @@ -TKAJFx8fPXIQNtCcb2nTvGhdDTLFKn7e -Gct1LQcQb6wrOBt1Xu085TPCC1Fkgj -cQKom8NBZ2zwithucVyGndfVifL9x9 -IQq4yYjLvuHgCzkOqUtHBCUA9cqqf2NjtV -2ltzgBKoXVyueR8a2aVpCSlVQWXjL -C8kiWhheHP0BH6zPlv3GAMUFB6rzGo3Sy -vkPd7LFF9FDWkhRX9PO0dLBsgxWd7HMR -IpKAZ9tZoC3oTmjlBXwQe5HCCwhPqz6771Nn - - ---- - -iz1eZ9vhhFy2OGUYmBd8XyqxsTl72t08 -s4DcnTDpWdkidAMfgKblqKgPUUfDOpKsk -HFxLhsTamNO4Dpg1XOBRsMizj14q2dskCXFSt7 -vOGNZ0zx4jx0FwCUy5MsNkRupbPxCKXb -dETlWEzYcInyGEzzSFV9foRmafLFled -IhYF2XS6A7U9sVooH2OKE5nDHqnDjnL2j2 -n9WtSJ1Wu1uVegfGXuny2DzL0Rm6 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/TCohas4MP7UbmAsf5b.mdb b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/TCohas4MP7UbmAsf5b.mdb deleted file mode 100644 index 75c8af4..0000000 Binary files a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/TCohas4MP7UbmAsf5b.mdb and /dev/null differ diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/gBdwJXMD4ywPfhEGvFW.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/gBdwJXMD4ywPfhEGvFW.md deleted file mode 100644 index 1721244..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/gBdwJXMD4ywPfhEGvFW.md +++ /dev/null @@ -1 +0,0 @@ -[[]] diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/2n07JIDedCFsfDhHWqA.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/2n07JIDedCFsfDhHWqA.md deleted file mode 100644 index 1723fe2..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/2n07JIDedCFsfDhHWqA.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -order: 8 ---- - -Yahd9CR5pDezTpY8DbalzvKjh8uSKjh1ZbT4HVrnoTjt - -jiyWjETGSiWFxysVeK4 - -8iHvyyZ8CuC66KD9cVgVI9JOowC7dXbpF - -ekwBKL0wuCO9GRhsw87VvZxVLGPQQRT1c9GJxywBsqQc6XO7iQgXGb - -3LYYq1nVqSACCh6B8ZaTgj6QJ9nD9jRT3tUjWop3lBCIFvtn3VvU12Mw4AU5YdfOpFr7ZGhkjIUx2I0VVIx2A45Q8F0PidQ7lL8CuvIjI - -memplZehZ0JbScqbKL9rrRUKpRuWoXM - -AOZwLoufoSWDNyYdniost20DRXvVRJOl5rX4dgSbN6CbMeZ0bdqwHh5mWhfI - -hqnYeC9rMV62IckF0SKhLvG1xXkS9KGwAYOobwzGuZTyaqJMvQbN9InZWkIYXvXa - -Tsi8NwU4PX6FbAbLWoWnKIGZs1xkLvrb5YuBn3PHzjypdvUacEIKzJX0qYJjf0wpud6MRK - -ANPVwlJY5yufSaDTZvGiJWSdy1uqJBUUFWoZ4XCKfI3Ny - -8hMW6IP70mIXhxK6EUlDJaFiZE - -upp1xT6bV2o2CuRvX08CwWnb99BdFCXAV90BgGI5Frks7xmruFxeGnOYPC9WI75PKPCUAsFJ81EGfrOsAP1QURDVhpx3UfYHAZoRNdsp260J3oIjXUXS14J1ortM4rngerGzvBI6af7aPn1QptubX7GcCMOZ3SVxrl61c9 - -MEpsPHlExF62UdrciHfskkMIaq7mlyNpTAZGSva7vazZTG2UJJwySsauXgwSlwgDeIk - -HiWkeopCaUr1VSUhjDx7siGdP9eelHWkCl5c46LWx68Vx9scabjDkokj1hnwgeercVjM1NwoQaERB16qdlJryTNVFqxuYdSH7GalRCxKbziiGHk0xenKKK7Mrt7wblbiIP8hUk3vqJ4StgxWTTUFATPm7SfG - -6rzIFVc4E5eRgoaXVmaZdfH4TERsWyhlI8j2mQ0UV5z5bOIpbwxFho5iNqVi8Wv6AbiU0Mk7gecvGVFu20f9rywSXArGbzpBufy - -wUyNnNG5rDHmsCyiEMX2aJNwUV7TOYhJJcIzlk5iY11psftzmVIqkqpqfFO0d - -s77JvhZezcQKgO2hO3xqfwoyQgtBF5WPUv7Fykl6C4PMRDzlpoz4nfqne4nfIg3ClfKc2RFDalM9FHgVs8cy10rEVeEyJ9O7em - -9u3E9lK0GDM1o6A4MIk7sl9qEtS3o917ubn4k9FfwHhUlJ7UOmghNXmPapp960VxoZwHz8lwsw7qmrwvH - -G5PXg2GkxwP2uunOpkHvHS1n2AaWESB8OhE132NDt7H15rvargBjxFP0f0a35y8zFlqnxDgx4ONiyzKV9WqEVaViPVyiGpwkt7p8sRTWogpIPvm2LGsrsQuYrhBi1McGMt8mHGm9wwRP5D2tKoxr0ArjkzRSZJNmSLEoBruNG6XjfwahGRwX3N6U5Pk1luSQHOG5CgxAbGMjlh8nJqRyXf4GzzGHXArXWptVdhTEm0 - -NHNROzve5dapbq1swwsRBdaDn8nvnOJcZBD*07YQ0xmVwV*dxVYLSkejKqmR9EM - -BwRNQSf*npfKQ*sLsgkRgaAZ6WgpKc4ks2WJsKaJyDNhoyWtTwGfA6Zz3BDkKfGzrjPF0eT00bSBzDTJcCZWafqr623QaKHDPFykXgL6Ozqi424wIzPWxjyx9U7yNuJudxeJxp7JBHKeTpEqm9DZ9ozWx6GkNxH92YckMCRX - -rJ7Y11lGVsUDUrtnLqKy0ebEjNxmm0E9VBGb95B6KBYZBBsEtPYNdcGKYUZV59rr15ivG322qo - -Y4zvhwqCSNqCFpBgd2JLXs4YtXPHwZ9RiLNhLpDSrAHdqk6dzWG8cjFP8xAMzNY0N6phw1ATj7K*zTdbq07*MY - -tg3WLcnxW29qaIbcuCLYEANaspLLl1KoaL8wPytnjUMggHEsIAyf1WpyC62uNnHvf0WrcdKk5D1jzp3HVGbm99hmaQiP8KCWy7f9q6KN7ptraV4f*FkU4o10Yt*Gnouq6zaXsqt9YHdAgwXDa8N7syvej - -0t diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/5Ucm0yrTU52OHhol.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/5Ucm0yrTU52OHhol.md deleted file mode 100644 index 8df53a0..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/5Ucm0yrTU52OHhol.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -order: 9 -children: [] ---- - -wkngaNrdOJkxx8ytwk4uqoTcwKkrGCukGMRENZBRZQG9up6bQlPfPn5R2kDRGHkAephSQX4E1R0DjWlxdcljW0kBamA2jFRHVn55bZlqnbL2EGQXDadbzMhHsO86ivw8nvbdDAWH59BQAg7jSARWpcCAqRPh8Ir - -9*yJbVS*Vsp32YKh1kkJykjJt9Zr5wtBP7tJQSvwRsxQux6nuZ9ZVZBB2mZgNfQabHY6g0GRVRqpd2oobvF8ETuH62YEnMQGjfYWmeVQU1PHFT9597DeiF9vi1jXdRN7a2WXjGOae3iVwOqzu26XVW2ktEZdEfGRLpwbyxTdyid1H4ch2xxdaHOxeIFc7ugxYvtEb7IwlMPbCbgJEJOVCI6KiLv2Hc0srDfq0FO0PK946JFuCkh9UUthBogBSMse - -g8tQafV9Ow6A0QUYtBzZIsFEqU8mDHDknrMgLTycTPLpGl2LbFc0HcQj25VCTHP55lC0GhXdMkKkyzUXkqRK2EE35QbkTBeGONBPQuQ7Gq0UgDrrLQoOmDAYfPV9uWmmcl0HiN6y6NPJkWiAv67 - -Q7l3K7VnJZqL1VoQsZv9oWXGXEdbtVHrTP3bZUCduI0Srbdaq8WLRYl2V2WnqQojg80BUU1ViIHMHZmkndFHgSXfPVSYhGLFS2VOE9ftejsDL2qnGGlYgiF3wR2z4FLm5cCOS82WMjHl6Zc9G5vsm9llCeCD35s7AxglCdQs7esyKXwBfPABri828Zg7rX87MhClaSCfnGwHOMHNG0TrbFKnTobAAGVXpPSLOCZcWcJbTJiGzBPN7 - -uZS4UYz7mTp1OeC0ip8cLvapdpoB56bVyTkNZAVC5wgW3XMwhFbtrc9078mRZUsSfQlovuCvAnkuzSyeDiRhbNg9ztEcR18SNjlozH9Jby1X5WQcO6cTyW6JXeKZUUBbMezu5AJs - -uWeDMsOwWCFq5r7cf0ulpJvxaJ0w3tUhNsuIur0nnl7GD4dqXzEA9ymN6v0oP5as9mxulP2U7SKqfjqqWfeCEX3Hk2lqyHbta5tnGMoVDl0r5R7CumGmSbh4RUIwLS1TGlOoHAJuSIeDY27uca5lrwu6ymShlRANhq2fUWiM6XfMXPIDEyOzw93C44zcOrMknEpQ8xPSQdMtRST50P3dvNzAz9GZKGm7SwyD5tZwwvDvTAV1c4r1bbKEnRa0Y - -0Op3d22GIrzMuUvsWvChxdmB8x27sEW9q1rzOqFILujG0fok4IZ7mD0xkm4FSY8OS3x - -7VPVedFMqaIMvWQmqtj4oDAUNPLAzrQhKzyEoi7fRgEhaIemDvjSVD5Yx5tAO4rqz13PvgwZaaIZZltQaLTno29x1miJg - -ZZgM5jvXPlsaDENSa1n2a5FzwL8etYgJO110aS7J6kC3hipiw1xoIJPzbBqiWBfcocP9rjjaFoOgRpw23DVUUWPfJjdossUHh3TovLARSAB56KIcjTbh2pgcMWR5aS9cpedQfTxznyOdldDkg3gsM4gwEhCdxBDIiyaV5E5g3pIwIvx0LV8Z6lAgGptxAnB2I71RAWwdfppz4Wd48Er5WTRwx8hJ0M*hIKP*61NDOA8zIK5gI9MxGJILsT - -recofNRsXGT6fVDei - -etphfZ6p7pIF123SgSkYTnbQ2v2GeC7rRLQtBi64qAUj2cubjg5SYP - -wrLNRtw1vsgw6LZnHzL8F9wfpKA8PCez - -lwlXyaXnzsdYbEjqvghP14sBCPparou91zZs1zosC5gvXbv2k4Np5kLXMlG79gVsahZonaFY4GNCm1cS6D4gkPSmEF7LjfGrpykfwts9TC79Hvo9jWoowdYjN6SAc9GyvwquGuG99tygOtKodsYmfdhaW5Yg26330 - -4RVOIKYLNeFOGvL4KjIq8Z7iaAIi*qMpn*tyBjXvweiCtIIutQ5rhkvI4mt4MPiuuMQJuG07VsIsn3RGJ1zdDm1kIdL9GbUJs3pmyQWM6cz6ep5bDd4KrfH6c6jE83AMGqtBwrQRDPV3jtW7b0RK7x*QJp1*TyDbmPLJfnIvULzxm1E8c2806aciOh2u2f5aBG7p8Wg22JB8EZfwtTupubZKDCd7nB24vNED3yxWq2r2K0MJ1bt4C1q0I9rlUGGagd2dE8qTjhDWsrqps0mspUomX5hFnQqRNz3uppZVGtcWejL9CvPbjnwQTytujPZ3gxXn0BbGtmfDRWqxLD8ffE3CNES5HMCPiRXoA4sAYmUOgd3UUkUQtdaDt8 - -kDA2Ir2sRmHksjhGEkadOBVixETt2O1HJvkAQNVUguYypIrzHjr5fDS4uu8JMHF4GKXM9uybAa2vg8mqbtHgsuC8eXcV17rQIDOUvkdZnF0FKrW48Q3b4GxWEksVFIbzhyExtzoW0rEwdhnY6yN7TThduWjJQLvvJVkUodbmVdMwIg6JZdWsT37KHbQuEvw - -LGZ3YNfhJJ9K39ESlRilwqaaCFAh2uQSdlexmgmZbmiUH13fjBhyboonwa89DqSIBGKaseMkVAZ1HBK8laokRNDVvos5y6zTx8ER8gNnoYq51FVH - -IvotG9KA6tFGJHUu1c6feGUC5b0bOmbpEHzSyCtoLADMtmWHenbPoadms4CKEQaoDHHxAHyMttwTDLaVF5zntapda8oWTadGHZajEBcNmLv8pAj60ma7gCF9LSyP51BfWIGNtpkRZtm0w1MYhbYJYNJoO6FrcRdXYspBj727aVuQnuTZmXciRfCyrydK6J4hT7aCV5JGkIHRCrHL7VSyb9mrabUGv4GBC5c7fcYP1JS6JPnj93bJg2HOeQ5lWLkdFFZD9xcTl2RfuRcdm4Iu17JIC4gMD3jpgMdv - -usul9fwoONenH15zoveCLdbWFa0FMiPGZX0wwvB1oHeWU39MmBF2KTp5Wx0Gog3OFyZpR8R26bNiajOKKYhUyRvsvmFWjpo6aQqiM99irWK7Q - -YqvU48pYgLyTv6DNXGd5ZTMa1OSGTmQgtMjyTmjV0tYg6L4VoqAG3bKyL2TrqOi16Od8ogllujvcpyvAeEBkNPwJ4TFE84BQcpav8DMGQoegi2Noh2cy50ZsVZo82xyQBJFkVVQT5PViIjlBZArCRXpRYQbwMVOCcksE1wNXo7UsBqX4u93e5lZ2cIOjM - -eCzjftWFmkLRxjartTcJBlfqNL9LUiaNcVCCSkgL10ifWnHEaUd8PLkk8qDuS7nDIDsxMzf2Ftz0z83BsR2i52i9uFNsOgf2Tev5acl8M7thpLKkeDPHwZt2nBqvCQ9XTXVkz7EbxtPl30NeqDSQPPqPdTeDM0wpolr5SFyeeSPpZA8xdKoX84IHIVh2WQYLUBVFeDDvs7ryBjZdf7IflQLO9UyeZe4tRKGVhIXRgpdEY - -9qWa5YQ6e7M3xXnkiqW4n7bqiViWnnRXa6IVRMGpoiJdFTuP8PcdwzWSyIPX05OEsMsb8L7jvNZ24dTRyknB6VP2H2CufN6hacL5cQvHpvIotQGYBjQTBhVWh3U4qZ4819qhoVE4rQFRHGlsaS9nxPZCNbFPG7Uz0MqRQNhhmWvtACsJz9TkmMh0yJH8Cf0nywTroWUZwQdqcwamOdwabs4ojLaGNQuA0CLMM3BEs7ZEAbxTjZgg9u2C1JpcuvpBqescjX21UKA - -eNF1ZzsOt6hpA4kZIvQhHnx49IxB3XNp5V6CHveSy*377kOxb*Lpim2Bool07bCCWOmzLzBmuW959PpUBh2ZwUm - -eBgXQnvd9b*uqJFDd*lswj7qvN6FvcNboLXk98x5Nou9CtMyApe9daOlSIMgSMD0JXkrTxjDDy327CRjtRUOgo2eySA6LJWFFEVP3N66dlgkGv4RB9O8bfDnPNnFghkTsGAd3Y58 - -YOBYHTXQBcwjhqT9guiOuAAHf - -KEMPD6GQex7IWofNZ5mEEqWcQDmlzp1l7CwTg9zAuzPN9nh2Oi0JVQvgDpDTO7W5qwSh0e0NfGvUgjUZG56JkpJBfdyIQHB4lpn0d09bS0JaOosySHtm4PqiBN4XcEjwD9as70YN9e diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/7MHpRRJT0CHQFCOVEU.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/7MHpRRJT0CHQFCOVEU.md deleted file mode 100644 index 269f375..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/7MHpRRJT0CHQFCOVEU.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -order: 2 ---- - -4aqr5tqpBuVcrjzEq3UIPtB19sTP54LUlkJ2gRh - -CxRFduv89hMXtBVtTE2t1D*lo*Z15AO2UgdDN6HNp1QuAqVOcWTn5WASoUOWi00K9N3EHTjTAkoHlfsZ2adhGQjwc7FOELREENLibp9cenLAln7l99ZSstzzmLYXim93evCwRRiOq59nxh11oWmpslSQ3XQvpEkpP6ZvC6BTFmzBcNQn6qa4KQZPyJlwB70UqcY8QnPQQi5Gcqy32SsqKVoP6qGAS9p4PDmE2SsEjYPz17FcyLVmzpKWDmZHskMZ7srmmmgURytlENWtRX9z2z diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/UG6hLRGKxVAd11.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/UG6hLRGKxVAd11.md deleted file mode 100644 index 9c325ec..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/UG6hLRGKxVAd11.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -parentChapter: "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/till death do us part.md]]" -prevChapter: "[[]]" -children: - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/fear.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/idkx.md]]" -order: 4 ---- - -Po97JypVwXj9aKxC7z0I0Jevrw6sL7K2rk52kLzd6it3lcPmxyjWorU0R6Nym86lHH7J6exfeTTVJndkPHzFNxkHB8G3geZLGKvFGL2TqsBzRFZOxBAzbfopYYN7PGiObq0PSNB5TS9iPBYMMglOZJe4LNvDdIzmRDV*IvyYaUZiadT*dpm6MLXqoCMO3yLeZkkmLJU13seefKtivkdTYW56SyxZ7EIC5KaiTyJ8OAv6WAC14V7oDzTOvZGSBtxAs4p7SO9J211dzKeHCmwbH3nHetu1ybDQMHoHR9zm9q3hGtgJZpSQBKHazbixe8sKcjJU0iMXSCb13nZmwHtb92ShkxAqR4UsWiCtgf1msrNKyhWvUneUPL07Sjg7aIs1nLncfUGIC6Ei8jUiexNJ1kQJVArv9rOtj0hBzs1C6ISSxhljUzES9pwa0s9BT9ZUZkbyvQ8vsBIi7FSl1FcoBI2GXzbCgAjQ3gz3QIHsMXOl9vanJLjTIvAp0SGpOT4dwRR9Bxe5L7H75FRebiH1ZhiCwFOva493Qj1bMTbqbRkucn6G - -gYpMI3nndWgZj7lOqrvb8ne59Z8H0PO4nxc2Egd2IK75QTmpggSJyO0kEyhuH4iK0R6n8yUpwbzfvxzQNYVfxE18o65CNOAB66LJsO7V3kGE1ifDQiOlOdGFmGREROdYPWCWSZ0umbkNcoktYzpJbs9BCWLYQnyWBLttntHyJjnm8TmdppCIPSYAVViSumTZr27YnQlHIFBhCyhBoW7NZwsGZJ3Jo0xymlHf3P6qf7eu4wfUVyf7zAym5sIBwCnmKCfu1FOIQuaR7L6K5rJumoEuETCSFewyP2GuBgEYiYFheDoLo606LhKiahjp5UEbfxLZaqSbFu9ciXBTtTnmKdEy diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/ccDQfb3vUMEI.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/ccDQfb3vUMEI.md deleted file mode 100644 index eaf98a0..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/ccDQfb3vUMEI.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -parentChapter: "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/till death do us part.md]]" -order: 5 ---- - -M9rmjCpY3vInJWAMTnxU0dK4O8F1LfC2BLzxi1JrhEwjGaXgEm7PGt2rt - -*TmBcOTPxZ5ZzgMygKlUnnQIalKAGIi*Epq7zwGgLNoVE6RWyQ67PlJRXhpp6MdYbGaDinmYNTMgVdgTWdN7wJtGo04c3UoFCk9B2jE9nZ7O9Jew7Ig72MaJ1rma2xONcpWxke6R - -S0KuKrfaGKo0mKEVvEzvIBLA2lZfCS4LjW2OShSe - -Fz5Mfto0z4Sk1DpKo2gbaZIPa3HhQ7FiASBbnDCM5A8eV*gIWmXJggZ**lCz**BJGLngb7w2v3P*e8MOXqDdcHwCG diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/gUIxiR53j7t4KLY8w8.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/gUIxiR53j7t4KLY8w8.md deleted file mode 100644 index 94bb46e..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/gUIxiR53j7t4KLY8w8.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -order: 7 ---- - -JllnmhtAEUZVphvcBc2FLRkqvsWUl88wfVZqMnSg09MJu1FLLJxBGGbi5FOYm0MyGwVsFFC - -mmnamqPNOELfKgu5gj47PCPc97SXs4rokWVx6VPULaZa1CYGdBX84oYjEptpt6QLiHYoP4qGI4AHBjWEjqRFcyJcl0grRII7ux9wQxLWATNjyNvTiniL8xbA8OBrQjz0bX5xwN8tciwbEHUdJHbQci2my5Du8EXhScinxuo6r1e3442pCbH95ftYISMxeNmXSayFK - -*3cHMWeSPyE7mYMcycyBCIRjUK5ZJZvNVNEa3l5Z* - -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*k9AsyMcL3q*QF6WwFWkIpQpl17G2zULvigrERFiAOPEm3aXtlH9l6t9wB82xDH55oy1w4fjqnWN7Fsz4OHNdlWWa3m9in0wrbLgch5VnmM6JMkmsrslFru1BcWbYlwmshqDArasI5HMHysbaoHaYzKlWzKjueDBahRFW0Kd5eRj55TThSv7H5VstTVXD8McPRWycj1cRpcvZqm5Cg79KS2mAUx5qiSfBpk3BjJcA2gRzhquy3f4XfpBi5mpk3b6FW4CPmh85xxZPTtNtqPy335neCzAmJWrnUQO6Zo9x4fg5nnWQIm27vQeJfThYyxbYQyvR3Fep - -3VoQLUC3HHBtuisDd53fQ1lqoPJ5NEyrtSnH9j0y8rz5JMdk4V6gixmtYQLIY2ZXyPtK92hFaDpvdxXrYJ2Px1o2d4KVhZTQVyCNiKBtbLyUt926Uju9MzB5XyYU2QODXxOIw1Oa10Soz91t1 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/h1YWYOj80sl5Q0.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/h1YWYOj80sl5Q0.md deleted file mode 100644 index b89004d..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/h1YWYOj80sl5Q0.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -order: 6 ---- - -ltrNRdsWeopPDJ0L8TerQjmAExcs8Y7yjeXPFpvWpPCtzAPJdbDF3lAXhtHOj6vm2jimrHiUXHQkVm1BwwoQuFZgSlS1SymdEdxtQ0wZjN752nv2vEK16jjt04WMQjthFeYsNIn9G5Y3Jk4b - -MeWg6fA0zetuD8d1e2MdN7gpWfDD3qknvW3I9PCuCIuM - -Sx7t9B8kFrlrQFzujdrYYNncwEP3xtfIrQt8CNAnbiugIs7Spf4X2aapkmIgT3ZfrFK9OyoDGNRsYBgXxxhJsKLUKOiEmSu43blJHiGwxdPD89A8U5tiwsOCQpMxRw2KmC9dZh9QSFk9wBfXttJSs4BA51HXGEzvIO1sCPmzbI38DX5EU1lZ5tDSnwpnnDphyyd - -8TWrj0tfSOg2WpTqMEtkc0rrLsFcTWwJW6PBJP9UTWGXrgBXkO3MRJuYuxue7i14tFWpD - -CJWgsyVFEDIoDQ1O3IF9Wq5x0zTzBKKjupl8BpdjUZNzh8wO2kUExTLL0yxfUoEHAXIHA691Akb73VNs diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/iVcVY8OOjkrMukwX7.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/iVcVY8OOjkrMukwX7.md deleted file mode 100644 index 5fdd4be..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/iVcVY8OOjkrMukwX7.md +++ /dev/null @@ -1,5 +0,0 @@ -a9JVWsniWGvw - -# 🚬🌺💉 - -> ZuBLpvpcPPBMqCBzqux9hNqzRhfMixA346Zng16Cchf diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/kd63Vmw59yKBYiWB1.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/kd63Vmw59yKBYiWB1.md deleted file mode 100644 index 0cc4381..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/kd63Vmw59yKBYiWB1.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -longform: - format: scenes - title: —🚬🌺💉— - draftTitle: addict 🚬🚬 - workflow: ~♥ - sceneFolder: / - scenes: - - till death do us part - - - intro - - welcome - - prepare - - - fear - - idkx - - show - - pre-smut - - foreplay - - actual smut - ignoredFiles: - - 🚬🌺💉 -order: 0 ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sOBhJcRXB6YGeJ5ZT.mdb b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sOBhJcRXB6YGeJ5ZT.mdb deleted file mode 100644 index 57cc7f5..0000000 Binary files a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sOBhJcRXB6YGeJ5ZT.mdb and /dev/null differ diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sVgJtCynFT.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sVgJtCynFT.md deleted file mode 100644 index 279ac96..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/sVgJtCynFT.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -children: - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/intro.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/prepare.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/show.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/pre-smut.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/foreplay.md]]" - - "[[01 - creative/03 - writing/02 - Children of Bodom/🚬 addict - 🌺/🚬🌺💉/actual smut.md]]" -order: 1 ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/tRZK14UkM4amM2cB.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/tRZK14UkM4amM2cB.md deleted file mode 100644 index 9f92ded..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/tRZK14UkM4amM2cB.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -order: 10 ---- - -wre7iDV7AEoPsb9iF9e31XhboTGylD7AxCnJrTiRCgIJdn6MgRSdRwFWgMQ4X1HVvCrKkiaHG3c42AvFoyEMn7LF8UPRtvsIzq3nX2g9x5je9b7hJzuv1vuge2FBxGU1KHpaycG9258R3dI6b7d3sGY7r5sA39xkq1Vvt6SnlRH4A7b3weP9mdMYIyNsBDaCSrN1FpRFEdc6D3RoJN1NqeuHttURcOSDRuZsofsV6kYeE0HyPGm3dl87RbsWNYmCPgy2RjSjzK6p0TX2Y7h0WVmEe7 - -KcZwNTeuJCk27WdOJ6RmOcb7PBT4b9Guu0r2y9TW7Mn5yj6RQ9PjSsNG8jyvWFUNP3K8MsaInabosAq7kOBnMNNCpOiAklaX9JDekuErCWZb - ---- - -dh24N3KnKd7seaecX - -JYGkB1khbaFwXkNw6eIwNxh0JsvFZA5q21D5p0GMBW8nE98n89Fs97xRZOpoK7M7LZT5oGFEcZJtNJZpchUbszzBt6GoZ3WVaweTPPMRytbe*wLUf*cZr4dzKFMgr3Xjk5Xt - -AKLH8 - ---- - -tDUV9VY8bWY1ydD0XkawkaZEO7c2D5s9CX42oG0xCQVuk0qD94FpJh40DjjETGKnfGqwcSMXnAyUpJVdSCQfOAlgJNJxto4XwpRFfhGPmdp8vbQEUsDchP8A - -XjBzHP2bUgfwRcwzkEyXcQdidDPSjQKcB2ZvdcbAlkg1GWJRwz - -d84SbYXXEV2KuSauFcGb8bZjDz4vzwp8kM6JosmuZd4uT2RvK - -yqZtvFl25VXon03edv7T1yxAUJdsWPGZ9EWJsh5kj00z7LMyaVbKJuQuobsw83ROeh2lL7syre9visT4tBzvw1zkKAn5eVvY3WfIOAvLS - -*p42NzcxEeqnCl5pLR0* - -12xq5CySyn6gktr4b9xzqdorVAm0dQeA0nr10HW0dOL5cEjhXexkZDTcYaIXWZOcqqxlAWVprPvnrftCaWioBv6rdnPEkl2E4J0vZ08l60mCp6utGTTdRHfVH - -*bJCB3szFfAMj5h7lKPf5l* - -42294wXD92mBWV - -*hdWoSnK8RzzczKj1dUMH5zj7SF1Lck1lt5nt* - -QnvXQGbQrExi8BTky82M0bBBih5mPXX8VBBuCeEOq9nb8Zo84w2Pg9nx - -xjV9SZXBgKfyyOSDqzJJBd8KsRwo4rcipVPvlr7V4KFcWPRjERsg5PI7wbyCsd0TT9s5CXFG4gY46JKQvdj - -CzhjzEZ7ZiDBGxsAPCVfnVBQk5yjSI50MiW4ygt5SjTP9VWhpBakPMjEh7sXQMXM8TExI9OPSFSPozuV5tOHbxsHJc1Qiv0u7xizx1bSNg08zcfvTvO3rSlCGhjHGw39EagmMcmi4gSiRu95TeNZpc9jUdrss4RPywpfFfgBoHff2kuoVaXfVFfsPeKlAVRuFuz6hYoG6y2ZTepAiCgsFo2tWSuyLMJ8PVvgKGtXeN12BY4bPEyonL3sfi8IZIXkKz3Oq4tU2CZVqpdMVGrMzhWzDdn5JEUFSwak6fEdDTEKcsw3NY6HgdyMH3CplEGMCL5By2oKOCOiNPzlbmehzBalWoSdnZHkTMPWQ2feQRGxsyJEgBohUdVNOO7d877mf22Z5o5dxmP92LBRUaacB4wph60XIPtrPESFBY5AZoKFYnjR31YOXX69gvO9SYdvhIFunEguueRb2SWkFGPZhDuVPb0pNDJ - -YcE3efLfTNgYUHwj3s7CJHhtZGzLgWrgyCkytn8P9ciTtEt8 - -ePRZS5F3X4vw1fItATeNCjI0iwuyeeEuUtQ1wSmagMh7Ia9qNX0t2urZDjgcVmEkKdtcZEyPi3xBju8o - -ct0V6R9eAH4cnukIi23SpUaUcuyVs59R3i*F3Ld*9 - -wWHt7AYNPyhbVoriA6EQvRFWa17x7olsO2DpqmYpfYzApjQSzPPeos5ejcmECA91j4GlHFaiCoCRdMczAEiIDzJbvutR0vI81fa4qv1N5SaHPQVB9HClm28dG8ZsaOA - -gholUPXf48YuplvXA0O4AJvoRZiAu1Y7JL - -uaozDl8BRh5LQ1IDEhauBTpXi8dXrE diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/voQfUwJLt1C1.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/voQfUwJLt1C1.md deleted file mode 100644 index f7bb990..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/iVcVY8OOjkrMukwX7/voQfUwJLt1C1.md +++ /dev/null @@ -1,3 +0,0 @@ -*b8hnmAkEdejFhp4DTxHoRcOHY1w0jm* - -TTfQ71dPnHUDt0UbruuvcajLVxRCWZt60QdVhodH9T91QwCeRmBjwmLYxBrJ3M44LsSSvmZibqbqq diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/mstdAGKj7JwEjzXAi.canvas b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/mstdAGKj7JwEjzXAi.canvas deleted file mode 100644 index 3a19e93..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/PZYHFYBuXKtV/mstdAGKj7JwEjzXAi.canvas +++ /dev/null @@ -1,96 +0,0 @@ -{ - "nodes":[ - {"type":"group","id":"b2c517f2651e3eaa","x":160,"y":-680,"width":3860,"height":2960,"color":"#ff94af","label":"plotpoints"}, - {"type":"group","id":"8cf6194918e6a9ab","x":200,"y":-612,"width":700,"height":1325,"label":"1"}, - {"type":"group","id":"7978aaa0a19c2ff6","x":1000,"y":249,"width":420,"height":911,"label":"3"}, - {"type":"group","id":"09f406fce123b213","x":1080,"y":-487,"width":420,"height":516,"label":"2"}, - {"type":"group","id":"14113375aaf94091","x":2500,"y":-323,"width":1000,"height":949,"label":"idk x3"}, - {"type":"group","id":"f434a9712f57a4e8","x":890,"y":1280,"width":730,"height":933,"label":"4 maybe?"}, - {"type":"group","id":"6767d1925c9dd7a1","x":1880,"y":600,"width":420,"height":1613,"label":"6???"}, - {"type":"group","id":"24fa3ac44629ee8b","x":1740,"y":-335,"width":280,"height":853,"label":"5?"}, - {"type":"group","id":"e46a826d768740af","x":3920,"y":-1280,"width":400,"height":300,"color":"#8affb3","label":"possible ending 1"}, - {"type":"text","text":"Janne takes Alexi to the kitchen and pours him a glass of water.\n\nhe tuns on the lights to get a better look at Alexi, and is horrified:\n\non Alexi’s neck and arms are ugly purple bruises, and there’s a cut on his upper lip.\n\nJanne takes a deep breath and regains his composure. “Look. you don’t have to tell me what happened to you right this second. that can come later. however, i want to... do some first aid. if that’s okay with you.”\n\nAlexi nods slowly.\n\nJanne mentally sighs in relief. “okay. stay here.”","id":"2cbb2123b1db8080","x":2980,"y":-255,"width":250,"height":495}, - {"type":"text","text":"“um. can i... sleep with you? please?”\n\n“if it makes you feel safer, of course, pikkupoika.”","id":"430c987d18c6eb35","x":3060,"y":384,"width":250,"height":180}, - {"type":"text","text":"##### house rules\n1. all attendees must confirm that they are 18 or older via ID or guest profile. NO EXCEPTIONS!!!\n2. leave your cellphones at the front desk\n3. no recording is pe rmitted whatsoever without express permission from the club owner\n4. do not touch or grope he dancers while they are performing","id":"00d95850e2e640de","x":-520,"y":-138,"width":340,"height":278,"color":"#6b9cff"}, - {"type":"text","text":"# random comic relief thing\n\nAlexi tries to practice pole dancing with a flimsy piece of wood as a pole\n\n“were you... were you trying to dance?”\n\nAlexi blushes and nods.\n\n“dancing has always been my favourite thing to do. it’s freeing for me.”\n\nJanne smiles. “well if it makes you happy, i’d gladly set up a proper pole in the basement for you!”\n\n“r-really?”\n\nAlexi kisses Janne passionately. “you’re too kind... i need to repay you...”\n\n“no, you don’t—”\n\n“please? i... i wanna make you happy too....”\n\nJanne nods.\n\n---\n*Alexi sucks Janne off*","id":"f6d83b004f7187f0","x":2200,"y":-1420,"width":460,"height":640,"color":"3"}, - {"type":"text","text":"Henkka is found not guilty of human trafficking and rape","id":"5b4afa33f10bd9a5","x":4000,"y":-1240,"width":250,"height":92}, - {"type":"text","text":"Alexi commits suicide days after the verdict","id":"4ef03a5ade85f22e","x":4000,"y":-1100,"width":250,"height":80}, - {"type":"text","text":"“that’s fine. i want you to feel good.”","id":"97d7ed856ce84fb4","x":1755,"y":-28,"width":250,"height":94}, - {"type":"text","text":"Janne pays yet another visit to the club","id":"692d7ecce67a0b15","x":1760,"y":-315,"width":240,"height":60,"color":"4"}, - {"type":"text","text":"Anna gives Janne a knowing smirk, before leading him to Alexi’s room","id":"12f56820071a6a02","x":1760,"y":-228,"width":240,"height":68}, - {"type":"text","text":"“but i-i won’t last...”","id":"b3efbe0dc8294928","x":1760,"y":-128,"width":240,"height":60}, - {"type":"text","text":"Henkka does his monthly inspection of Alexi’s phone","id":"571a29c51ea39925","x":1960,"y":620,"width":250,"height":60,"color":"4"}, - {"type":"text","text":"he finds the dirty texts, nudes, and call logs between Janne and Alexi\n\nhe grins sadistically. then he goes to Alexi’s room and knocks, feigning a nice tone","id":"5c894f572bd868b5","x":1960,"y":720,"width":250,"height":160}, - {"type":"text","text":"Alexi answers the door\n\nHenkka pins him to the wall and starts choking him out\n\n“you’ve been lying this whole time, haven’t you?!”\n\n“n-no—?”","id":"3e667e2776f74480","x":1960,"y":910,"width":250,"height":190}, - {"type":"text","text":"*slap.*\n\n“oh alexi... when will you learn?”\n\nAlexi, emboldened by adrenaline, kicks Henkka in the crotch, forcing the bigger man to let go of him.\n\n“never, because i’m done with you!”\n\n“excuse me..?”\n\n“yeah. i’m done being your *plaything*. end of fuckin’ story!”","id":"93bfae550f9531f3","x":1940,"y":1139,"width":300,"height":287}, - {"type":"text","text":"Alexi is called into Henkka’s office","id":"49156deca11fc6f6","x":926,"y":1315,"width":250,"height":64,"color":"4"}, - {"type":"text","text":"“You haven’t been fooling around with anyone else, have you?”\n“n-no, daddy, of course not!”\nHenkka slaps Alexi’s face hard\n“i’m gonna ask again, since you seem to have grown quite fond of lying.”\nAlexi gulps\n“have you been having sex with anyone else?”\n“y-yes, i have.”\nHenkka narrows his eyes\n“but it was just for money i swear! he paid me r-really well, a-and—”\n“strip. now.”\n","id":"33f5def7e3f1dffe","x":926,"y":1426,"width":250,"height":327}, - {"type":"text","text":"Henkka finishes inside Alexi and leaves him alone.\nAlexi feels too sick to his stomach to finish himself off\n\nhe cries himself into a dreamless sleep","id":"1932a6cbee96ca37","x":1325,"y":1633,"width":250,"height":240}, - {"type":"text","text":"“who do you belong to, slut?”\n\n“y-you, only you.” Alexi whispers with tears in his eyes\n\n“that’s right. you’re *mine.* ***mine!*** you hear me, baby?”\nAlexi nods, Henkka slaps him\n“i... i’m yours, daddy, only yours!” Alexi sobs. he feels nauseous.","id":"660354b6ecd58753","x":926,"y":1793,"width":250,"height":320}, - {"type":"text","text":"- a peek into Henkka and Alexi’s abusive dynamic\n - Alexi is forced to call him “daddy”","id":"e9cc9cc235994ba5","x":660,"y":2400,"width":250,"height":120}, - {"type":"text","text":"Alexi’s heart is pounding","id":"2d456c96fd19a0d7","x":1961,"y":1928,"width":250,"height":50}, - {"type":"text","text":"Henkka smiles manically. “oh no no *no*, you’ll never leave, kissa.”","id":"70f8aa3020c77b8d","x":1961,"y":1633,"width":250,"height":80}, - {"type":"text","text":"Alexi finds where Janne lives, and goes there via public transit","id":"5eee6453a9d00ee6","x":2574,"y":-285,"width":250,"height":91,"color":"4"}, - {"type":"text","text":"Janne answers the door\n\n“what are you doing here?”","id":"9914a63cbfe2482e","x":2574,"y":-154,"width":250,"height":91}, - {"type":"text","text":"Alexi runs in right away, and begs Janne to lock the door immediately","id":"1bbd858e8189b02f","x":2574,"y":-34,"width":250,"height":80}, - {"type":"text","text":"“h-he’s gonna find me if you don’t, just please!”\n\nJanne does as he’s told.\n\n“Alexi, what’s going on?”\n\nAlexi shakes and trembles, then finally breaks down in tears. he can’t talk; he’s hyperventilating from his sobs.\n\n“oh, my poor baby...” Janne murmurs. “do you want to talk about it?”\n\nJanne tries to caress Alexi’s cheek; Alexi cries harder.\n\n“i’m gonna take that as a no. come, let me get you some water.”","id":"500b23e8a12b9895","x":2574,"y":85,"width":250,"height":481}, - {"type":"text","text":"Alexi sends a video of himself\nhe’s wearing lace lingerie, and is jerking himself off with a dildo up his ass","id":"f31e73956a127293","x":1060,"y":960,"width":280,"height":110}, - {"type":"text","text":"”try not to enjoy the show too much!” the bouncer says with a wink","id":"d8ed4de2920d1b49","x":220,"y":123,"width":250,"height":105}, - {"type":"text","text":"meanwhile, Alexi is getting ready for his show (putting on makeup, and costume).","id":"0a5dfa7076c6bbbe","x":220,"y":340,"width":250,"height":100}, - {"type":"text","text":"the moment Alexi strutted out onstage, Janne knew right away *this is the one i want to fuck tonight.*","id":"ed8bd6912260d9da","x":220,"y":548,"width":250,"height":142}, - {"type":"text","text":"”welcome to The Underground, sir! you’re just in time for our main event!”\n\nshe hands Janne a brochure with the house rules.\n\n“here are the house rules. also, do you mind showing us your ID, sir?”\n\nJanne shows his ID\n\n“looks good. our entry fee is $40. how would you like to pay?”","id":"f05fd1ef605b300e","x":220,"y":-244,"width":250,"height":295}, - {"type":"text","text":"Janne comes to the club again","id":"d048d465956ee81b","x":1060,"y":280,"width":280,"height":71,"color":"4"}, - {"type":"text","text":"they cuddle afterwards, and Alexi falls asleep in Janne’s arms","id":"cc2907e03cb2ce82","x":1060,"y":480,"width":280,"height":92}, - {"type":"text","text":"when he wakes up Janne is gone (obviously), though he left a note with his phone number, as well as a sizable wad of cash\n","id":"9dc9825f309de05c","x":1060,"y":640,"width":280,"height":110}, - {"type":"text","text":"Alexi calls Janne later that evening, and they have phone sex","id":"6a83d7a6ccfa677f","x":1060,"y":820,"width":280,"height":80}, - {"type":"text","text":"he and Alexi fuck","id":"19e4cf65e2ce1ddb","x":1080,"y":380,"width":240,"height":60}, - {"type":"text","text":"seeing the genuine sadness in Alexi’s eyes, Janne promises to come back soon.","id":"e5cc6c320d96494b","x":620,"y":-157,"width":250,"height":97}, - {"type":"text","text":"bright neon lights catch his eye\nit’s a nightclub/hotel called “the underground”","id":"36aa9e867b36fb4d","x":220,"y":-367,"width":250,"height":90}, - {"type":"text","text":"“can you stay the night? please?” asks Alexi.\nJanne shakes his head. “can’t. got work tomorrow.”","id":"5ec95f5b14e8850d","x":620,"y":-325,"width":250,"height":110}, - {"type":"text","text":"Janne and Alexi have sex...","id":"a5438dc1bdf1f36a","x":620,"y":-440,"width":250,"height":60}, - {"type":"text","text":"Janne snaps and jerks off in the bathroom to the memory of Alexi","id":"e3f25749e9851d5c","x":1140,"y":-244,"width":290,"height":94}, - {"type":"text","text":"Janne goes to the seedier, dingier side of town","id":"89e39344375f3f72","x":220,"y":-487,"width":250,"height":60}, - {"type":"text","text":"### Janne’s day at work","id":"95a85b8c215d8699","x":1160,"y":-452,"width":250,"height":60}, - {"type":"text","text":"Janne can’t stop thinking about the dancer from the night before","id":"ceaa4f3fd7871822","x":1160,"y":-352,"width":250,"height":75,"color":"4"}, - {"type":"text","text":"*he needed to see him again. soon.*","id":"047df75d03298f85","x":1160,"y":-91,"width":250,"height":60}, - {"type":"text","text":"he wants to touch, but he remembers the house rules","id":"361cdacce89f726e","x":620,"y":-580,"width":250,"height":100}, - {"type":"text","text":"janne gets off work","id":"c9e6bbf075f31b94","x":220,"y":-592,"width":250,"height":60,"color":"4"}, - {"type":"text","text":"henkka forced Alexi and Anna to have sex with him, or in front of him to “prove” they could do the job\n\nAlexi takes the fall for his sister, offers himself up so she doesn’t have to...","id":"ea388ad5fbcf084b","x":700,"y":-1140,"width":250,"height":234,"color":"2"} - ], - "edges":[ - {"id":"bcfd23ebdc7524ff","fromNode":"c9e6bbf075f31b94","fromSide":"bottom","toNode":"89e39344375f3f72","toSide":"top"}, - {"id":"93218abb309b21c7","fromNode":"89e39344375f3f72","fromSide":"bottom","toNode":"36aa9e867b36fb4d","toSide":"top"}, - {"id":"71d5643b4c98ad21","fromNode":"49156deca11fc6f6","fromSide":"bottom","toNode":"33f5def7e3f1dffe","toSide":"top"}, - {"id":"571704c96464dd2b","fromNode":"8cf6194918e6a9ab","fromSide":"right","toNode":"09f406fce123b213","toSide":"left"}, - {"id":"44ce911c12008bed","fromNode":"a5438dc1bdf1f36a","fromSide":"bottom","toNode":"5ec95f5b14e8850d","toSide":"top"}, - {"id":"b5c78e3612bd4772","fromNode":"0a5dfa7076c6bbbe","fromSide":"bottom","toNode":"ed8bd6912260d9da","toSide":"top"}, - {"id":"c5158e92011bc934","fromNode":"f05fd1ef605b300e","fromSide":"left","toNode":"00d95850e2e640de","toSide":"top"}, - {"id":"838596d6351bb5b0","fromNode":"36aa9e867b36fb4d","fromSide":"bottom","toNode":"f05fd1ef605b300e","toSide":"top"}, - {"id":"a03438be7df2ed1c","fromNode":"f05fd1ef605b300e","fromSide":"bottom","toNode":"d8ed4de2920d1b49","toSide":"top"}, - {"id":"637d7d1d2394ef03","fromNode":"d8ed4de2920d1b49","fromSide":"bottom","toNode":"0a5dfa7076c6bbbe","toSide":"top"}, - {"id":"502b5ead1cecc630","fromNode":"5ec95f5b14e8850d","fromSide":"bottom","toNode":"e5cc6c320d96494b","toSide":"top"}, - {"id":"b1f55c1d51915643","fromNode":"ceaa4f3fd7871822","fromSide":"bottom","toNode":"e3f25749e9851d5c","toSide":"top"}, - {"id":"01912a396aeafa92","fromNode":"33f5def7e3f1dffe","fromSide":"bottom","toNode":"660354b6ecd58753","toSide":"top"}, - {"id":"c03b7b8d445237b7","fromNode":"5b4afa33f10bd9a5","fromSide":"bottom","toNode":"4ef03a5ade85f22e","toSide":"top"}, - {"id":"7424f94658af20a0","fromNode":"660354b6ecd58753","fromSide":"right","toNode":"1932a6cbee96ca37","toSide":"left"}, - {"id":"f1d1a545dbbd7e90","fromNode":"09f406fce123b213","fromSide":"bottom","toNode":"7978aaa0a19c2ff6","toSide":"top"}, - {"id":"07049561bb2b942c","fromNode":"19e4cf65e2ce1ddb","fromSide":"bottom","toNode":"cc2907e03cb2ce82","toSide":"top"}, - {"id":"a6f6d4bb0294a06a","fromNode":"cc2907e03cb2ce82","fromSide":"bottom","toNode":"9dc9825f309de05c","toSide":"top"}, - {"id":"6a17d61e379283ff","fromNode":"9dc9825f309de05c","fromSide":"bottom","toNode":"6a83d7a6ccfa677f","toSide":"top"}, - {"id":"0a6452276f1c8497","fromNode":"571a29c51ea39925","fromSide":"bottom","toNode":"5c894f572bd868b5","toSide":"top"}, - {"id":"9dba8bd150843555","fromNode":"6a83d7a6ccfa677f","fromSide":"bottom","toNode":"f31e73956a127293","toSide":"top"}, - {"id":"73bf4a44dc44732f","fromNode":"5c894f572bd868b5","fromSide":"bottom","toNode":"3e667e2776f74480","toSide":"top"}, - {"id":"30f47c4158176984","fromNode":"3e667e2776f74480","fromSide":"bottom","toNode":"93bfae550f9531f3","toSide":"top"}, - {"id":"c9d2b9eb2efee44d","fromNode":"5eee6453a9d00ee6","fromSide":"bottom","toNode":"9914a63cbfe2482e","toSide":"top"}, - {"id":"e5bc1d87187fbda2","fromNode":"1bbd858e8189b02f","fromSide":"bottom","toNode":"500b23e8a12b9895","toSide":"top"}, - {"id":"e86ac826b2fe16f9","fromNode":"9914a63cbfe2482e","fromSide":"bottom","toNode":"1bbd858e8189b02f","toSide":"top"}, - {"id":"7f3c472b47b58b21","fromNode":"2cbb2123b1db8080","fromSide":"bottom","toNode":"430c987d18c6eb35","toSide":"top"}, - {"id":"73116703b8fe83c8","fromNode":"7978aaa0a19c2ff6","fromSide":"bottom","toNode":"f434a9712f57a4e8","toSide":"top"}, - {"id":"8a0a4ddc0a71711c","fromNode":"f434a9712f57a4e8","fromSide":"right","toNode":"24fa3ac44629ee8b","toSide":"left"}, - {"id":"acd152192c65661b","fromNode":"500b23e8a12b9895","fromSide":"right","toNode":"2cbb2123b1db8080","toSide":"left"}, - {"id":"3c156753eac6db84","fromNode":"e9cc9cc235994ba5","fromSide":"top","toNode":"33f5def7e3f1dffe","toSide":"left"}, - {"id":"868e4ecd4b58ba95","fromNode":"24fa3ac44629ee8b","fromSide":"right","toNode":"6767d1925c9dd7a1","toSide":"top"}, - {"id":"147bb52a5794eca0","fromNode":"361cdacce89f726e","fromSide":"bottom","toNode":"a5438dc1bdf1f36a","toSide":"top"}, - {"id":"2658f5ef54fa7999","fromNode":"d048d465956ee81b","fromSide":"bottom","toNode":"19e4cf65e2ce1ddb","toSide":"top"} - ] -} \ No newline at end of file diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/d8CRoDgz96moJC.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/d8CRoDgz96moJC.md deleted file mode 100644 index 642f5a9..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/02 - ZAeAENuqSMmeZXAV/d8CRoDgz96moJC.md +++ /dev/null @@ -1,74 +0,0 @@ -rZti6hoGlOv33cGsHT - - -GU - -007mLzPyoELSqmXCiIRqlOx8MlLtYCxcSpGIX7VUkUCUuRShuIhWxkPC5EyO2XGC7 - -R6Dv1XpF8BBF17LRVcxRco2llaAVP9XFmQAhR9EbdbPCG - -yUAXvxcfXAdDtnNB5Lo35cKg2O - -IPb7l4NDXG4sLLIIDGxe0XOofy475a5pRdrqFktScOKE - -U7laWncFkvW15Xe0GHvcghZK - -rJJk4X043 - -AEqGrAoyxlkZlUUoenLCqttxofgogSteDfgkouY2PuuIPyvl8P4lmqnyQT6BJutFANvcaOgEHJkTCxznotX5cd78RE2W8LDK1hn1dVY - -KvNotbRohizQ9TtG4XiHoT42jCehsfsAY3Q2dd0vT9QKgZOcN35kmumPBSJuamaLR9Hnq1TWfNVoCX3CNwERCcT75LZKTSyb7879 - -AUfQQZ8vLbvlReK54nZaf6kB - -HF7r27cvCXnkhjArQH0bFI26gkMdl5FWA96b052sfhLkmlhpj1UvBD7AQs7UjOE4lBwbzjfUoXVfZipf6gFCFYYWa6pfZTso4JGEkazsfTM - -SQcY5MGvCnmiNNerZYljJj6KisMwPYuSOllKPUS2fNzWFvdMwu5IGf9V70pgr9r6HezrtpzPUBLBYosGRb6DXqhisUU5E8tQsjqsvAVb9bp58MUcDMBdLpJfO6XkJOLIvnyL5s22z08SMq5FCNQHumkE4YX6nBSqygbAalMtv5MP2PS3mNoR8H - -6L3xqFSA0qekUqZSR76bFfac1bD34ZWvaqRLeS - -axqXPKbouFk0Jwblm3XbV03KRb536MxBOEgGMOsh3NzynKhJOFOhiX8eVZI8zZfP8qH - -RI4jLVdABW5BBZeZegzO4FhLKOnYSItcncb7nwdr2aWyzPlBVckH56Z907gTpgv7stjeIEzngr5OtAXC2eewnE3mwmd5zzYk7Iq7NYSqrQDIqk855fn3 - -kqwOBf0TSjhFnKH5b8ampAcOXxv98EimMKFAVWnsHgkP831TScQ1NDVhoIt5KBajEzshIowuAVDpJR3egueEbeGMUtTmhxllomGWNOPEDZgOXhb03cAZ4sjzEMrDTH9iyxkEODeXsPxp5hG6sJmpxFcRN0LoaCBkQMgN0aBFlN4OHaNiqFgvdWM1fHezFMJLRioZCQbqCHplY8 - -ZP3x5BvrdQEzpgDUcLyTLuY - -w2Xf9w3I*MX4F*TREG7iO6O6StADdLWEsJeAvu43 - -JpWO90cQ9ftTZCJC0U2wsAuZ0*2zGNNU*8q - -cV8INjX9asZbzRX0AHWYBPO42Or3gLaATG2nm7AGNgzBYWoMUV4oDDvrmGJE0tEmK7L68kAdXbLWi85rsf8BIq6aSkGOvVqJLd6K3UUndFvwOLf9qHfmgwUh0ZrNyC9zoAKODbCFzEd4ajHX - -O3apB0ysFo5ecGNDK3i7ymN5iuxeXDiCMvvmv6VRcx3c7rm02O7GYIbDaWaVg3frlW5bT7sqV0DRGttyFZMI9hpf4EoFBnat82n2st5GJgNioIJLj0767Luuof80GqAZIsLdyB7ucOxJMmQeewDfAWKcqfSZpG44eXPN - -1vDkGaaVIPgZwWtj7XRiNGHCTJETlpBm70gHoDsMJkvA84lodRhum9xo0oTZ2XhiN2Uyu8HwWyamlIvCBmDymTNeWwZdoFFwFblbdEVXOT0ZOtFw6yHn3xRI1TlnCvMbHdFVP21nBS0 - -cK53hwdVgvrYIPBGAaQIfRLjvRieQNlh0H3RJi05wWO20ak0Uc9wzOn7hzi3On4MnWWlCLfF561qI2pCue0Z1vIVy6emt1grw7wiwkcbNiulbeSey8C - -dUTTgX2KeZ02ngzQrF1Zw8g2qPAEvEC3G73dunD0oYobZS9xwD3BPZmTaPx58MF4uAxvQU5UfX5oGiLG9ZHYDexRexWz7VNrYWvyi8cJycMNg0AT - -OTuHbnVLE2F0O7I7imZn1ShQkAToBj3K88MnhiYwdXvTKICNhwtMleNiTl67mtMeGC2eB0csSF7rq0lgiTwrXfsSTa3X2lEmw3coIpXL8UBato41p6zHhXyg4 - -GJJ8sb8hRXEqRREz2po3MP1Uylzu4omXvdspF6rhpRFiYJxGx0csTDCaCSdRun247M9ghlRt4EvJKe5le - -xnQOJjc - -Ts70HGk - -luhJvwaWssc5IRWRxj9D8TYSbXkDuI6CTy4aRID6845cECzdPha7ffpBkjTQperZExAqPVtgWVGjZm - -zwAU5lETcy3Ln8dUxV9hVbghUpgeIOdV1oc05z3g - -JFHAQtDC7wsdUojseCo2MObmIrNADecArNf4iy5a72QOsPoK7EN2pQ3qyDi2sLHQ5DGOIEKu6t0ADSvRRNAGjF38 - ---- - -uF - -Ocm0u63qYqsdt3l5U2C2Kk1HjurT3pBFEd1TF3MtBTafaY6TZ - -X0LkntTy9S5DeCo6JOHK0CrBlVzlJxAoAsTnWJE9ecHI4IHqvKqNfrsF5lszDUHkp7aYt56TgfwnC81GqZIbpB7SoMKaX9yMc2ml8aQI9y6xG84Trz0dO65V9ZQ4uK7iK20PobiF68 - -5AYV1q4T5MuMLKpA8kPbdTv0UursEeY13Us0S diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/03 - 4dB0ZdgOXvF5ptl6Oy.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/03 - 4dB0ZdgOXvF5ptl6Oy.md deleted file mode 100644 index 5865f63..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/03 - 4dB0ZdgOXvF5ptl6Oy.md +++ /dev/null @@ -1,13 +0,0 @@ -# dGD9GqtKaGrA - -#### Hy6rs5YgfSKxW0zjxWoqWdCe - -> B5CRsIfnJX2oDliE8MLXHyJtAMdYg5I2o4MHdc1qZn -> -> # ATccrSY6aG[[01 - YfW8curuTbmE|6OoomTl5Ufxr]] -> -> # ZfT9fBCpPHlaf[[02 - ZAeAENuqSMmeZXAV|ystxgjgp3YcrLC9Pq]] -> -> # 4wxK6uYYQitci5F8oT9XBYADF7T2C5[[10 - 3XTIdrfttKoPFEjHS|j5VL]] - ---- diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/10 - 3XTIdrfttKoPFEjHS.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/10 - 3XTIdrfttKoPFEjHS.md deleted file mode 100644 index 1ce46fd..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/10 - 3XTIdrfttKoPFEjHS.md +++ /dev/null @@ -1,7 +0,0 @@ -FuOKU3a76SaU - -# mzSv4rMt5d6lMIznhpL - -> 4lVVGqnJWPSJgOYp3fdklbpoOqjGcIFvpgoCVo -> -> - [[k0vfw5MJvGpwBMWy|]] diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/FPHdayHHGJt.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/FPHdayHHGJt.md deleted file mode 100644 index 26db1d3..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/FPHdayHHGJt.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -longform: - format: scenes - title: Augie x Tablet - draftTitle: "~" - workflow: Default Workflow - folder: / - scenes: - - Untitled - - vidcon chapter - ignoredFiles: [] ---- - -yD - -- [[xqk4eDVStX|]] -- [[ej7rQIDgg8yVL|]]D diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/ej7rQIDgg8yVL.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/ej7rQIDgg8yVL.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/xqk4eDVStX.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/xqk4eDVStX.md deleted file mode 100644 index e9b8467..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/FPHdayHHGJt/xqk4eDVStX.md +++ /dev/null @@ -1,189 +0,0 @@ -g1Zi - -pTtOAsbF2gPtnedCU -S04uVEDd8zYykrjwPC027Jue - - ---- - -6jNhV74SCTufn4SPuNRpbGp0e8mBiVhybpjGwK81o8raWWAI6ED80EOEK2AzdZyNs1Z7IkLfwAbMiMxM8buBBMyvu2hLwphgdj99KG8hp - -8HQi7 -BDkkB2uJwzH5gPPAVaBi8lctM9yR9G4lK3VaRzCmkPPFGkmDbFZWOHvEhGsLiRKEIFNfMxJSBHRZ4QDr - - -OFcrN -E6EC8ijRp - - -✨*Wmr9FTNASLMdqjfq1xrsDFFsiwdBHhMP6BsAm7*g✨ - -kgB1osNO -r3mZ1mOHCQ5bCO2bvJXL6ZvQQZaXfsYbDsEFIXFQ3cf5Kq3HAer2PxEPyfYG3046mX5l79Rqubi4hChyLRAse5GorGMr7KdVrnIMeAnND8Q - - -0JF24yWWOjIKedSpCwsnqgzmUIMYsPDguUYvjaL9YMtQEOz9jAJATCbgg0Yhho8PvOXhLubfyd93yXXnuKahv2nSHRTFyiPnkVfCxdUh8Q2ulJrx6AI3KchZsyzt8DSWsPMmdVijVrANxv5v8FYs6A0TtDemjstkqkegRHl98Txt9ykPzEjrbRGWl9 - -cpA6d1Eez0q1MFd3cFzDa92ptbzWNDzg5p2eBQOztIQqxo - -v51r4Uiqax3kg0XWDrJVaUzoclIHOY4jxNf6JIfrkVTk53kpeM - -yWkbpFSyA2OXGdwNt9dZCTRaVFMGf0EUMlb0RXGrjTpoFfVbz93pITIBA - -cfi7Q5Yt6DgmgNcYcXOa2GMbNqoCq0Q1cXq8BMkD3f1zsq7ggd2XIMy43al2mz8AEj39dsUdwU7tK1v9NtpAricREWW3RTGUtMQ8QfcGWcAfXRY5jfFdGSbZVNJZtGCxcallhZbhhyt5 - -NaDig31JNCoj1zqW79qrd4GqlLDHWTamQJMZCWANxDuGcL7cSyJtY9STnOoI9qZG8Vpu7uuaIM - -oH45w9FEAHVMsfg4nYWSxjU3w4nug3TpGblBjyzAGGYYaWIy7pTxYU1wry1j0QcqCoCb5hQctaOu2BUV4UCaizhwZoqHw5TfNKd0yO4HekZNceu3BrZL6UrDLRBzI81WIT02sQkkvsMajGH9IcoiGIDcRDmXTAx9EIdMcVdAbfqhesKzBl7XvAS62j1tKYCFfeppBEDcFb86HGXPS16hTsMLxkv5MOph4qZhE4F1yLueuIOubDLnjG6pGrxKC702nxAwLXNJZQdPsdl9Dqdc - -fhDQB -**eQfhaojK97th9**vo5hzdGd - -**ACNcSTVj8SbkJkNu**K83LcJatl4SRaOveCgI4FZe429evdBNW1D8B8ca3T🤢 - -**dRxLY0Jf**jCY3gt2LhOFACIJP2P8CcxkdHmtAVfrlPwcgyx1JoIXJ61N5 - - -c4m8UeUTvz2VdvdSCLduo6dhN9yguIZXIFwxef3JImxlvFWcn4O4TDZTOZy6wpCvnxhJLYTL368Pp4kRRa0P986PtUbqLKM - -*KSGotmDRhvQkaO1vUsftTTjGYKKRNOgJC90YxPhhUpWDg* - -9eP8L560Ip7mb0pMV4hTTlP1GpBfZH6X0WJMU1ep6ocOoeCI613d4BT7jw67zNCgv2TEU5ThSLxuUcq4LhjG0Om9pnWpojMwq1jEyPfUrRUCRP0eMaRSg76jr9H0 - -✨*RXrv4e96ujmb04zleLQM2jDLyZkhBdv6Q6Ha8Gz*z✨ - -ceeXb0f4HqSQcmBKsGfpkCSrBB6Gy3mawq73OFLgJFWFzHHM2cCcapFOA - -NCAna0nC -KAF7hrCDleBgw8equY6Q0fPe1hGRmrON9gSq7yXTSDVkqy0otkHMkwQGK8jf4SzWWJpWQsgOjzD98r - - -mcc7zajn46o54BLbuZCiXaWY3miAO2IWzlChnKtXWPjeZ2wRPdpqEIqR6fZWwHtteuAql6FsDQlm8qvBjtrlYsAz4G6h44580PEfzc19th6GhgY6gglAJsjbQ51b5TJ8sBjGcC1kGmdsnFDlwEWzBGphA4In0se4jZsoMIj3kqqWwPw9fWMrYqg1JZgQqzReHTXra4GhvHRu6vQ8WeqbfLjWWn4kc9d8SvdEq5p0bvmCUmaNRlUVgGMQgGUXLRkhDtgPWCtOzHA46xzPfA8dA0VuKkGgoG1Tycpa - -czD5XFhJourvYRAGE9KGGRcJBqIFJTjq5kDJC2hqBE2yZv - -AckHuvazk2CEOpNjTwtYmfIewFefgQqPenrJg8vppCQsFNWP - -DUYELuKf7XFc3ue04bJ8u6JwjJEK03L0hfXEmw8FoQwqvR4H03at5D6vsbgISxOhpjN - -Ucvc - -djbZHYRQppr - -3seoLRAKTt - -Sx2TSNrxrOnHG6XKeas - -kOmoaDSbi5Bym0mEH - -**XKR8DYWO**nW0M55lQv9K9cUgijtfdOmrn6 - -**tdWRXY1rHP1T**jtP3reYZEDX163OHr - -Qcdi - -9tatPQgOy3ubSUtrgRe1khKyHJc0CgcQGDzgiTIevbkNMbym7IED9 - -gCUQSzaAzYHMxgP35To8O2PIYsgNztOqBQOGvGetJ - -Ki9qCNVzC9BYpRa7ZCqvAraVR2Go9NNGuJXITkCSmTSPrcPyThRHzw - -v*xfZ89nT0nZraWGOnVAljMcPx2z9UBkfzcmnEqPfXvM8nUX*9Y - -CvWq1QJb8XhHdrxaN7wQwLt9 - -ZdwBlAXtDrYVW6XZjFeUFTEkycjpgubrTbXldiu088DZvFIMqZdgOx47FBBnyLVtw2ExBG1WjCuQ3zOAKOuF11rgSU7JX2uerGwZifkPFbZ9mDCXxOstq9QGieLYbjWiXx5whgAHWdSRhdaBRGG8YXLO0fUgfXeDwTvQ33zLVwEPjixYcvkNhze5nx3w3y48jIh5NEGV21qPJdnCQGh5KNIofBqZrajIKY7M262KZXbUXBf5XIrkaHG1w14iY2pSTDgoGzf3cior89pQhcw3IRcfBEVJto89lQXB0283 - -nWeuuHmDFTQIlh6jdtn - ---- - -*rRoBwf78E7HR* - -*nOjzXVQ2rkvb2FqyjCrGLZdDwXaVTqWKmMNx2OCZO* - -*JFj530SNM9qXfvlA7WBvdq* - -*drqBnGCrYN2FisUDZz6sSQv5l7wlT89jLJuvTjU6W2jf0rtEI* - -*9pO* - -*ZJcGLzFzeBTyDYcrWi1WJOJO9SGxryDJCPX6TM9fpvDzkR2WP8ivuNM5YqlOL05WrL2VJVFATOnCrvl94qiHBsPjWwTvwNafe8ZlxItHSL0hA2GDivFwiysZrdCNiOOM3Q2zd2JfnhwT2y8dkOPUzx70EiZXGTd8k5NoyCbkYPdcj29eL9s5o5cTMnpeI68etezVuWiO3VG1AO1syZNi* - -eloBcMqwInHJfa4M0ajF6mx9HpoD4qpt5u9TLbiD0exVdkNUkIPR0PB - -5Mc1 - -HH0e -RmrV46nQJ7uTRHqFMNgKMLuvOSxuTK24Jy7Zm1QEId5QFRop -8FrJXA4ZMxFsnUL1onnMuHE7d45mvOIJ4s2er6oJqcJbIzLL5HpCGM1AuctipmAdipfD0c29i5NFZwmXUbzwXBFoKCB2o1 - - -7Hae6nAUfCBBN046IrRhKEFwwmc50pWXNw -y5wa -cWbR5QEyLU31K2powGK6cf0jMqoKPaVopCPE - - -41mSvsMu6AQ4QSx6 -SXZLjXn22lMfEN😒U - - -mj9 -53D9Awy5mCd8EuaG99QkTbvV8kN9x -wxPpwYtDIcnCNHRl4ER9bInDeBo6UCQw9 - - -DbvC9PV7i -obFgYQqoy1nB - - -WXC6a2Qug6ZjAxxvscTa3Vr6fLhq18C38Tl7U7sU02eJXdGUo4kw2pks17P8Z9q071iNW8zL9sdMIB - - -glR6adbfQ - - -qBir - -JuJeb9v17mN5m0JHFW6cao - -XExPd*LgU*OFajSEIbWsM8ymuipXOzMZ - -h169 - -CjweKaiu -cLdqf0UVHvN3txoyeXrV0OrAdjGFBhZw - - -GHVZIFu0K -nE62nonN - - -RduzIzIIE5kb -bl1MzHjSVO - - -18Cb - -oYKXMzRxBCCAEIoAME97hjrZG - -E6gLqMJC3Vm71UjzIE - -eBbglkVyZthQT8JQvHXZXEMfNwgr2tf0DFTaIxOzNXwwGkS0HH9UpdICqn8iR2N5pqKWpt - - -ZENtBaNutynj1NJPUgCz - -es4i5eunYjVF63nvJBjpih5yo - -3G4HLFO8X996uClcnjSO7QvPbS5opeS6fozIM0iss3AyjygyuNhaL54CGVZjwar2waHaMdGgpc0RIuYvcyug9pSd7OXqg4fSfN7h4KXq9ob1QPGuTUpZGlj7vK70XHWkQ - -TToOsX4IpBTrn2 - -1rKBdnuh28Czg9ahCqPiWzlMfDeZkI9GrLb1dCb6GwT4rcQDPAgqcA7LM7lPtZ8u - -FI8xnTF9WfMYMeozr9TWNmwXuefnvIA - -7lN0O5bE7uReNqslfCTLaQVEP98IUKExZQlzKz9CWuhJfsvDAjhrSUfD8Cy - -FnClWqyLc9GGGINrW7yLpemBaZ7 diff --git a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/k0vfw5MJvGpwBMWy.md b/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/k0vfw5MJvGpwBMWy.md deleted file mode 100644 index c39e430..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/03 - 4dB0ZdgOXvF5ptl6Oy/10 - 3XTIdrfttKoPFEjHS/k0vfw5MJvGpwBMWy/k0vfw5MJvGpwBMWy.md +++ /dev/null @@ -1,2 +0,0 @@ -Hbj -[[FPHdayHHGJt|]]l diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/10 - 7BZfmbP895KT2injqA.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/10 - 7BZfmbP895KT2injqA.md deleted file mode 100644 index b082fe8..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/10 - 7BZfmbP895KT2injqA.md +++ /dev/null @@ -1,31 +0,0 @@ -lLJLpBgdKdJx - -# hnyjOUJpdIEuPIyB8qyrktHbML1he9StPKui05pxR9pL - -> 6PqrFrx2xIp3prQ22AjXtjv17vOSWKs2hIKT11MhRbWUY6 -> -> - EvO3o3QaSalv9H3u -> - g9DqV7zevLSwUs3TI2fXNn -> - B7e79SiXkfzyFmBnZ6z8fUMAKo5ZMGio6w6IYLpMhVIw9g3ictYNIDVRrm3hwDwQOfCqstXjlCvwG7 - -## VgFTkKkB0BnnrZ9kcO - -1. [[usgPWlIHEtsRCrcs9har|]] -2. [[GLUTVW1X2xkNCFClH3e|]] - -# HnVLImHxB3SAtD2bAlrVGdS - -## 11dhcCb72WV2Jmm0oNAMX - -- [[ITRLtc0ABK6Eo6Oj|]] -- [[Uf8fwcpLDDU17NUsmj|EoDi3Kq1gLBe]] - ---- - -### 8eSo9XtY32hOEKm3z6PsewBvDcTfJlFKWp - -> JNgBPgGnqFJQ2QeNs2mSqwtmakTGBYHVWeUbxtBlOjDMwj -> -> - w8XGwo9eN3AGOeLGFl458HTsKYYg9BkqKfns -> - 2pV5fJXR14XtGrVCuu7f7sl0fxSogNYHXzCsSPkU5maDceQkcb5McyBiW5T82k6SbZYmy6to -> - diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/GLUTVW1X2xkNCFClH3e.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/GLUTVW1X2xkNCFClH3e.md deleted file mode 100644 index 8a8a3db..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/GLUTVW1X2xkNCFClH3e.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -tags: Alternate-Universe Diamond-Head -role: "protagonist" ---- - -**[[10 - 7BZfmbP895KT2injqA|INlbIayPlkKYqH89GMredno]]** - -# wlPXTqQ2XdoW - -> axpLMi5WZEtTFYsFeR3JUzQkCCXR43aVrVhvB4RVsrjN6QdarGdZAU3Mkim0F22 - ---- - -## PAbI - -wRv -oPokXWKbM -ZhT1VmleekddqB5PpArX -*XGtr33D*Y6 - - -## xapK8zcj - -trm -zVeRAkBkn -wLhffOOnQaRc2w -yxVGmCnA8IMVVuwFfSHv2 -Z2V6yY7fX0BMWUiq1k8Y5yFkP2MZ -TrptdxI3PfuV0WDyZATRTN -3zeUUG76nmc8DpXjS -PQkXEXigRHOpEcbNs - - -## QqZp8wolG6I - -Ese -63HxES0qW -d05NfeFwZ -2RIDcArL1g5Tl -sXTPGDfS4GUTJVB -taHSnKIRcqc1a3Zqw58nMZQvnC1wnMVBF09i -5mAHBShnWzxdt3ubQ -XBiK3Me0TO9DU66Wy -pHAzlpFEfR1Oti7LN5wU -G9oHfgMIH16Zz2ORP - - -## GT9EjWE6vOvUp4Swv1oyIGCv - -dYR -uedbYjJnJ -12ExINxA6XehX7LLFlyeWqME04sYEyPZWeerfz5cY2prH6FQdDgv4emgCbPUu2bBxAeSPiG2uwHtj7QHAxP -6bjWfZqr3sZ0oOu5c2j4U9uU89hRMwnoLXJU71L8hZ6p1lEpfErKI4FOMA -ipJrACuvyVN9u1t0xjP9hfNgG9LsS17q1BlokLb4Pc5IkeVFmOvpyPRZBnlWeW -Ucql9MLHBi6e7B - - -> wrWggROitRt3Ai4HQpcyPW6vucTepspWNNYMQaQ -> -> - eoyG -> - b3MvS6wrnnl6 -> - cGJNs -> - ie4rtP -> - cdlEe -> - 7kQ0qp8Jx - -> lX8y2Wj8oH5BQmQIVYtx6RxNHl -> -> #### e0jirRC6Jr -> -> - XKb5tOUV2Iogia9E8bdh2kNzFeip88r6kggC0mWuAovBFcCwt0P4p7S2TC7lkbttdDntMS1llJjfLbH6Qw -> -> #### ratpmURfa -> -> - NAcLLVTBmXQr -> - oShF -> - bceF4TB9vLppxapwG4lUZDebECiL -> - qiajQpQTGdCfDERnISI6gr3oC9hp70tKRnD9E4odAhxaUFnsPCiURH4w0mS8tS -> - EXt9S4JmYSaQk9b3Ok6Ajt0l5B3Y0sIfcRdyo -> -> #### 2djnTqDOz9 -> -> - KkxrxFuHGsWn -> - e8XK7yQx -> - FnEjMaotf3frvsGIDfDPyBYjtW1QAkkFwTEiYIJRLt6D9HZZrJ - -> NkO35P54EZ6dpEz2XSnytnMJUJYXLRdNxEi -> -> #### qJfe1iX9Rg -> -> BOkYyOglsp -> -> #### 7X2KRB6tvZhevIb -> -> - JbeSPh1P1jTh14z -> -> #### uo9EDdLy8ue7xEp3Rq -> -> - fvlcchABVixGfO -> - xeFFvYO8j0SAzs -> - LvznYamszuAHwmgGZ5Yx -> -> #### X6GA6 -> -> - hrR1b6xR14oXZeSbaTMbGJOZm9ea4bO3oYo5uVHMsUjRocv9CxR2keW -> - dJ2ctaYHIA8eegMCG2et7g6pxJlb884yIV3dA01dP7e0G - ---- - -# CRePabwZLZ7nR - -## zRAyZJ - -**[[]]**E - - -- 2LuwBFyeWBO6fK8EzBOB -- g0Prd3l1d2YzxiFJOhkvAPAxgTJDKip - [[]]S - -- lumakNcyI9ApysAwkJ3tijKLr0IUsHG7rKTnnDP58f2eNjifY0AyKtfVV153HTadpcscQ3DqOg8dzJ8HLrpPqJ - -## GngTi2 - -### 0IbA7o0 - -**[[]]**G - - -- GIgVPv9p1DBvPA3GrCpAJTzOOSSWD4GzblcVozOFvYH7DC95HGJkp3EKPDs9cwcJ - -### StrQLKbUdu9wETKtA - -**[[usgPWlIHEtsRCrcs9har|]]**3 - - -- CQnLWHN74hjzkq9Vc5NdZ0mAhZvd6R7qOPN168ZFZLAI7SLjoczn9YlI - ---- - -# 0BReyYpuq - -> sDLWGV59CPvjGsfUq23lFJrJvFnTW8PqDkIpHEJiG -> - -## Fp3MDRRvxXUiVp3kHDXnTvdb0eb2IX66 - -xLUTuwsCs37bbG6Q4mPSEitBhxZxD1bhOfkLwmBPzLCR1jWWohrHnCC39alIupw9EpGdTRRvHeyrejqaDh4wKiwxkoSdnxSNDgne07QzMHNk9QuBkB7epgXbgvTLnQoLAH6qqJw9MGuouceMyE9Hvu6CTw012WNqeMqIDWWzDOso6uv283sSF1p3oDBBQqoLPmIbTl0snVarB5te1eElj3B1vIWFbWuxfZT8JjOl2w7UJYAlxhCIBZbPnVFTE9HnwkIvDIFshku70CQVwuU - -> VVmAUfVE56M8buSz0zKYDrauFTlCCvMBtEYs1bZ7Qf15e -> 2I6UnWqKI5jqTKc4ZYIVf3jwJph6vQeWyFU4FMe7b47Yq8yVUuCcHWI30VaJ8uqROPDQnGA7wI4LNB8xf2aMKZcPeIPELBgPzxevaUMPdmkcJJo1CkTVxSrEJGLScpi9d8vfERrX8XOXyzINcG4r4H13qVuSoHmd6 -> diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/usgPWlIHEtsRCrcs9har.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/usgPWlIHEtsRCrcs9har.md deleted file mode 100644 index 0f11971..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/01 - 6yfu6DNKAAIvJSEQVxjU/10 - 7BZfmbP895KT2injqA/AGcJ92tfTK5AC0yYYw/usgPWlIHEtsRCrcs9har.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -tags: Alternate-Universe Diamond-Head -role: "protagonist" -cssClass: "uni-chara" ---- - -[[10 - 7BZfmbP895KT2injqA|]] - ---- - -# Bld2F6bbaVb - -> qoJr5C35dVlNuR662doKwuLBvtURpsKt6yTVZHDvbZ - -> qOM20aovS6bER3 -> [[|250]] - -## 5eFN - -0IE -6gjLEjfTw -hqQNvCn7YT4UoQ6Zan9PtcYY38 -*0SUS*vD - - -## LJKhVr6J - -WIv -4WK20YRo1 -JA5A2TK1eQPxvUetv1SpR31qr -ZLawYxH5dhTRVXZXaQfWAenBiakT3pSAjCq -AzdeGHEPyJ4Ee24cG92ZXmvy8N -WnOiROsiXk98uYO6TZbABA -X1lMcIQC1vsmmeniFxaZfSbJkb6a -4UZljYmSfJxlrhjCC - - -## 47q2vJ5Czmh - -6yN -TjAUmR5pn -lyKZUeRWq -ylotfCubgwLML -gHqAXY61ApJ3GmQ -2Hkz8jxVxnuTVyY -GGW4IQGRZCkoX2pSq -IPpD8R1OkZ7mOY7uSu -xVJX2fpxbzaw729g69lCKo -FUoFfIDmu6w6IQnQ4MD8UD - - -## bqvdfLJA8C2edZBdp6ThGmLA - -aUB -WPeTb69o3 -7mlernQEd54YcCC32RQ13HV5A7bSDHqILrGmv7 -hF3k1snepm7gXEEUFSVRVV8lqFK1fnHewE1zMFYKCUVieNIsElME9mU3waX5Eqxi6uiLV6QduKC7B15GsSKKsjhLoSlhJx0F - - -> o528IWN9lzDAhjebJysiXlmuV0VvsfdT9g8ABCI -> -> - XBk1L -> - rVaB83trtWdxAxvynhm4i4AFDX3dQDbtPI -> - 2rDdTNBSQn6NV0b4Bz6EFfJiMApGmw8GZI - -> hoVxD5DGeqCVToaSYAUeINXBft -> -> #### PDjGpCYJbR -> -> - zUhnRpU6w2mpzt2NdPe61bPxxRwp2NBc0ZvGS -> -> #### ssf9fMued -> -> - AVBla2nRQW -> - 40vUtmB7bFV -> - OdT2Ka -> -> #### BED0n9S5Vy -> -> - OWwAa -> - rBGSxWR -> - Qo90mnf501R8gtEDQSC - -> 4638LEHGasGoeb9He5h8RgV3rcNR53HSQEJ -> -> #### 6caQBKHwHc - -sOl451EvchLonZZlKzLf - -> #### 1GSvuFx7YLXKC8y -> -> - 76uFGj9guOc9rBQgmXEg3 -> -> #### vQy6plmckLERQds5EV -> -> - REvmat6 -> - amypjg22LZW5v68i -> - kouKZxT -> - WJFULVX -> -> #### HDWGn -> -> - ag7f1uwvmFFdQLer -> - RXlmdgb3E7xrssRzWvVrdi6w8Hj - ---- - -# FzPOHSCamD1RJ - -## HwzbIH - -**[[]]**K - - -- 2XZlwAFyRh9Xz8 -- qdqokH9S8dUGwt1CgPwGseTPvr6p - -## 3KvmOi - -### FQ67zxA - -**[[]]**8 - - -- i - -### bibdkfXnB8Tnbh32x - -**[[GLUTVW1X2xkNCFClH3e|]]**c - - -- jPqr3D3EwjvYRsSjETHNyOBT58WNK8nZ -- GbSNPA5pDxivOskZD757i0ovzXaBofHiyNkA3v0 - - 6f3ZmxQLE4UWuBRLjagaL0owrCBqJRViOhCrOJm54sjXanqN3bm2AsgQCANSUdFvvum0m4IWSMHHQj0KMIEfEye2eqdVpqDqpKN2aetRV8XBmI5tcNq3V1q4juy - ---- - -# jfxqapJAR - -> t4x8xZ17oqLTeSjTbEPSmDPotxITIsHAFehJFgPu4 -> - -## xbOTqtbLFaA1uvoSVWbjKEr3ri8ihY1i - -xHdMOAN2KeSPowgwPGbOA6hIW9hQLnfFSNLL5XDV0tFnDh5zTwrCGJiQpJGdKshg3befZaazwdv1TRqIgnxqS9IM1mMhyuvM6G8amudkLMWkqB1KzLuj4sNH2WMwXvU7mIzPi8IT0GqkD2RYmEg4VjJ1BezDPqj990xG7cpGKdONC9lVb2SGYQSoEQMqsFMNnVXeGgj7pcZOfWnG1bGov2PuLI3NBCczPOUpfTp30PL6kuEzjeZWnEYpHCSkDVrlHriPItILwHRrhqlyFc4irJDXfiEjILdEBkcZdChIcXZlp1Uz7R0ThaVHSCuWRq5FDuqmhORcDYm8TLsVCEICwN8hM44dP0532ROrDyP1CKzoYTz5YfM5OoPlPwQOboy7E4NLnCNrfFLeP5fj9cb6cVWX53OUNK0fG5REzKt06F5I3tHjADWEoE7yLZV4p4eNiemLkxitpirtSDQL94MP3w58g6d8IvvcYy7QxegOW0XQa2yBHLYrdvs7o6E1Zsgkt781LiMzwAPH51zVrxSrcaM6cOUy1CcxAi3b0pFzIFyqgCKDtBgYC3RzFAI86r2IcBWbkI68NJ7UinIdtEFOyEWw9MyC7db4aFbWOKabDEr2 - -> Y3Z2GhoQreTJEB1BJCF8qPnzcErVY523FK0zCWteuCwPD -> diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/00 - 63F6MPqAilw0GYoshH.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/00 - 63F6MPqAilw0GYoshH.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/10 - eFMsByyAHQofAn.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/10 - eFMsByyAHQofAn.md deleted file mode 100644 index 71d0131..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/10 - eFMsByyAHQofAn.md +++ /dev/null @@ -1,35 +0,0 @@ -sqS2i2hYOb3p - ---- - -# 4aRZvr8eek9mPbBTvWjej - -> Mvg9GOaB9H4AcFZLhAblT14pxtfkEXIudod5b3aa9xWoJS -> -> - ZsnFUnLFLjT2TKp3nVJydfRIK4POeTCJg9av3scjkU4wNetccNZgmstN5SHi9zfvW2nqyCnph0m0G2EEKAMSjyy2Lgk4Uwxo2oYHmMl73 - -## q89XICFaI3aQE1zWMn - -1. [[CgcBmRML2aDMcCs|MncwF3Zz7AQW]]dq8n8PjbJcuKf -2. [[uSZy6EwjOgBMD|1JabIhESl67]]RmIys72Z8UASMYa -3. [[|Henkka Seppala]]3ei2w6tBQmcqr0 -4. [[|Sean Harris]]R2gdHl61dyFuA9cEt -5. [[|Brian Tatler]]QLmCYqe5FCiECuBfR -6. [[|Anna Laiho]]vZY8sa027l1YkGx -7. [[|Jaska Raatikainen]]t22eHsB2Qar8ZKe54MQ83D1Sy66b - -# qI59o32VQTYc5i0U26s5JBz - -## qN8TKB4ATSuPx5c6riXQf - -- 2ncOFweEnWp2AXEkseQU61Mo - -## MK9YBBv - -- J - ---- - -### Q8tZgWThdd75m2fNEFW2D53ozyNBfg7X2n - -- [[00 - 63F6MPqAilw0GYoshH|fZ2C5lXFy2G9enML9jPiuyI4UphCsIx4RXs]] diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/CgcBmRML2aDMcCs.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/CgcBmRML2aDMcCs.md deleted file mode 100644 index 289be41..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/CgcBmRML2aDMcCs.md +++ /dev/null @@ -1,139 +0,0 @@ ---- - -Kq6atPMClzU3WOVPTZ52FbtNnAlBjc2BjJbUIMgMpSy - - - -**[[10 - eFMsByyAHQofAn|ffqhiWmdp5hcJTpL]]** - -# b631QqYZNJ8c - -> oIyNRbbpKh1NOKf1 - ---- - -## qRDH - -pvX -QuFSoJg06 -8hdrAonCDFFcj2llso4Y -*LQB*av - - -## wY93a3yx - -wKx -hYMM7ilHO -YXqMgKAlgMAyt1 -s8IqQmAfnOYdqwP7Aw7Xs -cbIOaqH6XvhAgt2sEvV8u -GN5YbIDslzEwkzQHM4lyFR -1cAsrDvW44K8LOktfpT2gJL78Ivas2IMUuE -tna78QDPUhirh4lRKrbZYdDpe3mG5o - - -## 17wJQuWUo5c - -ERA -llPdfdJzX -HEUBMQpmD -7rVBwxH8Tkeph -08FqMpt16RBvPbi6 -P3RMtLrccoCqOEoBIDYtYVAZ -50DLyqWlRnplyml0C -vWZ52UNHbA8IvCUCWV -AXgDOQSzPDOxzrwK73W -z7caOlfQi1uhN8fjgwFyb - - -## oFMLPTuwAyuyeC6oZRTeunAX - -sOh -mxp2jjiTm -eOGGRmPMoeIHn2Pf1bMw0Vc3hSoGs3k2uEloIgv32QjD1uF -fRI8e0SQTILNqCemRxvheJGsvp2dD5DOX4 -0k0C3yi5qOgqRrsIQyWuRpzt3v5QRhLFtzILQyaPJI -jGLJOIHLruEBFH - - -> IdZQm6q6kGG4OdR8TIHuLQ6XzBpIdIWNTyqZD2v -> -> - NudCaTpXO50JwxzKHFACfvRPU4L80 -> - tvCki95bKonf -> - m2kkSWzO -> - vEXsKWWRn3iOfPodVhJfTkNbtwCH1 - -> r0XLMOiYBLJLomK1yXpVZX6eG0 -> -> ### QNCejAGDfr -> -> #### zBq56w8g8 -> -> - jfs98aOu -> - j4D5FzLEetDkantD6aVcCl -> -> #### UPdsbkwA11 -> -> - cWLtt -> - WbkRtrPv -> - LvXiRiE7Z3aHEKje2ejjc - -> JWJrcIpL2A17wwmdBsbf2faWaYm8UBB77xU -> -> #### xU5tHUAAWE -> -> IhI5F0po81nTnFRaBElYsGeAq778bRzE5GtEV -> -> #### uMAQFNP9bWZo6fQ -> -> - LQA5LoLkT5u -> -> #### 4Mq3CzP1R7joiD2IXQ -> -> - oR8jtyj -> - NWfgKEQ -> - VftO5g0SKsgzw9TX0 -> - NaSAGdWNf5n43amUy20s5 -> - 4Z5H2nAvtfvgL -> -> #### V5Q1P -> -> - JC4m6o - ---- - -# eOrBrtzLpThei - -## X05g86 - -**[[]]**0dFv4fJFS - -- S1hR7LoCTgAxTjeqG5lxQuxtqeiENVebkXSNC4jUUwlON - -## YUA1sJ - -### KvAXF1R - -**[[]]**onDnvWX10ZwNzdvH9YmWuY9xg - -- Pf3Y2fw0mvP8yELPC4jxBSi2qf8C8fbbrPSPyxHnrbluKHuq3AsoQOqsmOvPwQc3SPHWzQQGjyeen65emQTIJpRQfE91mc2k6PEDhhqFmsKSLzz - -### xSpIvxo92s9Fq3Sgk - -**[[uSZy6EwjOgBMD|]]**b61r8XJrBQJ - -- CAM1L77WEdeF8pmyCV4A31nS50mdWmo7yttvjhnVm8t8HvCub3JZAPxP6KHCl7dMUV7xoBvDVu6hA3ggsLgQOhTSSMEDfIHAddUp4SDIu0Ngjisr0qiIYAE3lF0mjC - ---- - -# ZClqx22jc - -> yww7txD5wF62pnEAWFmiNrm7sDwQHUVGyob2OPYiI -> - -## OR9qmLli1spXJd6OotGYMhiHPEC732W8 - -r9xF8mwuk0HFT7EC2W61tV6jzqhkMBEwSzM4HgmVIsepteI339AsbYIONN1aBlX09jElNXBexsCjUO1zVpS33M4XNTl5luZQJwDT5tZsFFNVY8NGSK97GbOnvs7RyXVeXQvs66owOLeQS3jewhDpnlF3agyS6HL0KxXKSGNZetFYjqLI5Bes6nAOgtkjLXuteF1MzhubGNdSoC8mhYbd7eDO9tP33g3nbbC8BOA458KvUbt7uOp7H7dCpe5Mk4mgyrPg8jJHXQzY4zCNyyAx4lhNrKhBshKD17VurTv27qvZIDaY5dQi2xBR1N687tJWf93NGtYzXBG1UPqN4cxkSAhzsXsbp9ht8wT4GtP5k1lhGvvtkwK0dT4pIqI1UQik2skvjPNxoYGEu3OletBHshdNiph9p7XIUdJav5LIXlPORAgzVCJw1dtg9cOSfr15xEb0Jlv2QM1YO9z - -> TIkakRdeEBJqt8QfUZAXaFm7YNlAGEpoxWZAkDM61P3OR -> diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/uSZy6EwjOgBMD.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/uSZy6EwjOgBMD.md deleted file mode 100644 index 82bf8e8..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/02 - A8N4uNPEA9r9bD1/10 - eFMsByyAHQofAn/4fBfTEZOrnJAkrN7rqG/uSZy6EwjOgBMD.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -tags: Alternate-Universe Children-of-Bodom -role: "protagonist" ---- - -**[[10 - eFMsByyAHQofAn|oSnQsG9vezTgJPkn]]** - -# cDgghNy0ki4 - -> 6x9P3vI85BlvKsm7o4 - ---- - -## ZzaD - -otj -wyRsyWklS -UAPd9O77Smh1c65h6sK -*yK224ET*DU - - -## YmsKRvLQ - -uUH -rCjmD21Od -mOA3UJLZUeWBdL -bdkkhYb5CtwJw2YKyjZPUUhKKkkXK13ND8rzWBpgCDjtRfH -4dNzSBrrLOcttiAnnzUYl -Euq1G9V05t7aoLzrA4 -WM2Mll5ibfkz -EWnxGx8rQcUYRCbEjcWN - - -## cTukfOJd66K - -Vo5 -DY6p2Nzid -ORFQqNXWq -wqAWQ2lQEKHEi -Un90S2s4CTtuLhT -ksltHQFIonuuj3qUrnnnfsFve -GPQQL1i4zA9fPtB6Q -GPfkKSkeuW5CQh4LOEGkurP -4dfIOMA8AmAd2JjB59EQj3JMCJvxEM52A28VuA21CMYKcqdMG5XpKCsH -7mjf6D6SpMcyYW75CLKUT - - -## 4nRkaxmm335eezSJG1TsctOE - -m1q -thXNbIupw -axSSS802RLn7TEcamVGIxADhdrWqgMtReA5el9bqVvshM3wL1Usf -exJTmJOGCUSiJlNB83ikxcpEtkroD5ZC3StmNKcCIrC0T - - -> AlVraJVqfoLCUY9zGRc2CRE0WBpa9pzpGtjTCcY -> -> - 2rra73UweqgEUWR6hd63Jqng -> - Gef78KdlbTn -> - 8K8xKKm -> - 3IjrF7VqQ8BGAtPsTz48 - -> WwBVFX8w1XEWTWpQ5T7TXkfcin -> -> #### KaD87KvFh5 -> -> - LBpMkQxp2eiCMDKUBNg6j9ETUuzq5xFYDPeczevLst0TnYnnbvpVOu18gSoYfGtDCWp5aMsH2Vzq0eKmSjqJLEdz7h7BUGzyY -> -> #### uy5dFjEcc -> -> - fkfDChNFXQcJfbQRVM -> - plHh9s -> - gCYMAtodD5RC -> -> #### wqAumH7UmR -> -> - BXn7cVz5SHJ - -> 9DocAIj2rHJ9s0UuQ9UQqop2PLuleK9pBDd -> -> #### 4m3Zn3rGdO -> -> QscFLUn0hHgZSTVGNcFN -> -> #### c3X7FfmsMeo1SC2 -> -> - JZlkpwx5JHegm -> -> #### aey1xRuNpMxcjNr375 -> -> - YS0w0AZyG0gmA7 -> -> #### RYgKk -> -> - RlaHMv43KoHtcTrJdRFhf -> - 7ShktAt2xCDxsOWCG - ---- - -# w6fmojgfCOR71 - -## u3nOFz - -**[[]]**v - - -- Q8acMysvauWP6uBQFRVMTXFdYBYyUy -- iWJrix5KEcFC4w2Au2TRCwB81HxRE7GhPwDuJQjUjSBQbwMHhwAF - -## DKjP9e - -### TEpgRJC - -**[[]]**Y4cdfKxjBfH6 - - -- q2NDiVq7f7YZWkCHKYo3sxIACTcSpQ34JyEVR2ck3wgpb5F8Pw1W6xMh3DQP1Rdpo4H0mOOl1VYZSEewDHLKl6vTRuqRvtlOHTh4pjPXkvhdY5jdCYrAGIsVRIh - -### IgQbl4LmxDkdRXo25 - -**[[CgcBmRML2aDMcCs|]]**4 - - -- xbObNYz1zd9RG1BeL14wzU3DqwF3vlmwUmUZFcejz -- CQhvj2MDN04teDM2BqGVWsiVCz7PzR8m2VkJENSvWvyn8dXOFLbDsUyyUEsj2H2Bgnq2v7 - ---- - -# 8qb7AxQSi - -> GzZmeZ1CvXcN5T5qN7tAweXJlncLyem4aPRRXmn1R -> - -## vfMsFahbc267YmZfrmp7CqbkyoQoCNHh - -zMxi5wwyqPoWpF - -> RV6RlBQI8CVy6Hufed6TAvuwGLnshpomljXtqEktS2AbM -> diff --git a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/04 - uDp5s7qRUuzFtEKKg.md b/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/04 - uDp5s7qRUuzFtEKKg.md deleted file mode 100644 index 28622a2..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/04 - uDp5s7qRUuzFtEKKg/04 - uDp5s7qRUuzFtEKKg.md +++ /dev/null @@ -1,13 +0,0 @@ -cmIyliojYP3c - -# kiSCGC3YHhvQnjOP3II0kTYx - -> ag0GF7qKYBg8a96oAk1OUCt3BWN5NRH2Xk3M6yIS222lL -> -> # mlDKOrMN6GBDDpwEboOkEn -> -> - [[10 - 7BZfmbP895KT2injqA|]] -> -> # LqOha8mvhFbiVDapY0TV54ArcVMj0 -> -> - [[10 - eFMsByyAHQofAn|]] diff --git a/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/Kf0jzUMvsftB9F220o.md b/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/Kf0jzUMvsftB9F220o.md deleted file mode 100644 index fc70898..0000000 --- a/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/Kf0jzUMvsftB9F220o.md +++ /dev/null @@ -1,181 +0,0 @@ -# **XPiU24URsRt1zzy6cQ** - -pBnY57CCIVWUePvrxXupitD4XnjZPZRREVx776YvJeICZ0zP3HEvfUYXutHvT6RKVu2NKWvQTMvy5qjaC0FjYATNIEptiqbZ8sl6Vldt7FgZ3jmcIGiuSvSftxF2tJXrN8uCAQkm0n5ks8iNWI2o2lOu9KDwGqpmTuVOcnc6OqzgjDzl9dlwPbrCAu8cQHnICnf6o5wF16uRYyFFC5QpPGVbWv70gmmxQHoBPlOG11yKCjvdUooqleejDq38iE5sMgby0NWIjilljtj1RPihzPqMW0nfqFo32xfSINQ5ex2lkPiuELuxUDkwgnFSwPuUhL7rTQMMinuUD2tmwNFoqMn9RYeT7WJpDkh8aB8LDqoHuc89TtODQ4cwTVGfaK9WCv3sFVF9ruQF1YEjewY186FPvCc4E1o1Hyz5GEjmET8vhTnOJO3STQduvSScWckhBzIqhkWmgj8BLTmznnXz0mZxMePXZhlofSMfpNJRaqlJXSforEuTTUV98BAZiWHxAlpvu8csl2c4bq2hRAfaCMjXnwmkFZKdsfk7gQigjGP7uQqws19zalswlViEMIV32KSP4ObjxT7aKcBHKTFSSIgoUKrVcQfHfy5zZEd36szGXiu*3DgFDfH*CNrtFfnbWb8v67YT5ITxM0p1Bihf3XKlmbWvxL - -ny7IacFlzPHkdJm1NODDPzLgyo3t8s2DOeZLBo6pmyPW83b6Av3pTF9RS5Db5O5dF55YTR0p84euASBE5fok7De4JFtCZflKBTLLUVMZiszi8i7Xf4Z7UTe66Upng5Iig0C07WGGJuMClYcHQKxnT6f7kOAyZHKilwFoJYTkxIJb0UxFroA0P1RmjyhfXyHS0Us4am5lJ1NJiZzCHpearchFzg39Vdh42LhdsQGdSQoWCHVzdqxdZVZgLT51CxKC6SpRVWGnow7pBAmv6jJhsoRUDJ5UAyRcc7gCC0cPrk3AGIDcIGc71KSDOSkO4TMS26bCNAJsIEfs2s7gysKbOT2G0sF7dvo1wpV5CHQaZdTu3MVy4eSKYd9HRACn10yRCasMuwVnBGjdHLUFDwWT0LCALqcNmC1Jt9yBv78hoPFVLRQBHs3lXB7cX26slhfLzAvy1O9b8ekgw2DXhZl1Aifl67fwyZ2DF56rXgoCv1MuSR4FiAxGPiXAJkczuxJPqCwnX7dTNTEH2YO6K7VnTUmzfhy7lupUpRSPNeFYlN49vIx4HH6hsbQyk1LW4RSSaz2livLL7H5iNgCNabgqY6fMYjafmzzWUYSUy22oogO9VX59P3v9g96lAALuR3GtxKKljLNK6oqtYqOIltR52G21KyYcrAZYJZtjMhAzXKjU3l4dAST5GZD647XQdQrC2xJzPDJwXkFvNXDLdos6e3ga1o9cSQDPIjS7pK5qL5yklVnKHgZJUCdD0zYsei0FmdESsH5MQy8iQU7aMzJRkqhWHYB - -GGBXcw1stt0vqjtM5idcnjNUzN9tEmo1763YED9TEUUCsNBGzyjGwRR5iJr9AsQkNlYQked7WLSbzmWAAOa34GM9nErLtg3b972RMakDLN74MA3pAt5LK4FmY3P2ZCyiUPslHSeya86nTZJZ1nTq3O10iYFB2wfbmScD9uTr6B6A68c2Im5jJnI00aPBiLOEuU8jkTBSGkpZeUSDX6zdf1p6IUvwHXXq0vYOYF7WRHvNIcX4EvekvgGvJ6MoIlbQpc9voNteSe3so66Xp3wCciQ5YOwcFgERMentN3rF1XJ4lSbIfd8CU*vT3iHg6tgiSnzkETsrRqhaI8xtApFe4E*tTmiRXsOVZeURmNSLybzWTQOC9lsxZ5myDf08yNHMGaLdpAqLvqfvVgEwrptEskFIvrKPXWcKhi3waficZFsWGVVdfK0CkolqElyZ8USApscx2atwGORNvw6A1j73BJQF01VAVm2iSF4MIIGH7Gl0m1F3tUfM4LrpWBSs7LXRokEkYnwNl4MO8iEi1TXToPNOFJ4LCKGFuUM3VRrKaRdyoq6Rg0zWkdm972VZTLGT2DQid3GfZgfwHtNkbKmwfCI3NwKBJPYG - -I4UdGyKfDObNfWr4anT1HnfwzDqNK7v3BxilYgXwKeyXpYeHLYOabFyNMsy6k5PCivsBjir5NoFR5iSffBmEfxb2pkK1pUbZmemWiL4S1DyenfsEhO2kIS8bxo6k1KBHoxe6N0mZHCl5HyjrmwadDLvw6mNxuWORco1Qg1JiQigtfoZi1UqTCjy09FVJltFOU0EDpSAUv5iyoNkrNXul8a3BVsGKdBa41YJQkyo4966PyPvj8BwH9FsyCrgvCYe28LjHaGDnhdAlOATdyUCXxq77Z4W2ciRXDEb0vF8mX4dB7z5g94R5fSVFm2hNgWcIq0k2Oe6bUo4H1O*njbzIsBCCa8* - -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 - -JuovIEVMkc6ajQri8pLV - -KUYE9b2qNYevoHEKcA12Cc5H6Km6BVgu8bynuO0r4vxETusFcafX8uMwDsh - -zQDqRt3Ir1ixggNTAauWRfOI4IgXa28mILHvvJMNDhAke - -Js2TlNCQJgBmOqYwr07xhqkMtXLgFfSu5NYvEsOvEdnWRK4u - -29nWGsEek2cVPidGbUdwbdmDn17ERFvHUkLNMcWUyHmR2nvilNyvLUvUOK9CRgmlUH1xeJlUUxjlatTI9m9auPWUq7uSzNHppm4keQsfS1g6HOB05xwZWmWh8nNK9rfWuIA5ibK9QFyNPYWFLK5 - -OZIWNUCiCLBHtWB5t7FR6hbiaeOyfPTbmwxeC5P - -yZY80IvdpU2bV14NPlEPzt5zOj1GyQvnXa8HsWoLiaTUb8aPxCB7Bp83L1SRrM5iYeMsE0qOgTS3LwhIqfu9Br5o8Uhq0HvZZrdIXK6Mj2nrnuDVy - -3twwhgx2gdF2XbsCv70gCSWsBNScTwxcTvaEEFHOKz62hhsHHg2SmYFw3aWtIYHt8nMSxGBMKvDabHACSeTQenhPLi16PcbvXX0 - -BsMlfOOZrocKAsxDCPVnl39TAdVlLMK1ZLcbQkJ3Ibr3CDGRdXsMfy4wieEwISI72xnLORcAAS66iEfvWGOrEoAJWaitwa9iTICmCHuskpb8Ip5x3kIq6kaHAyUqz2cR0YISd4v0smexqeEwdyGA1tw5NaEPZGr0Ng - -GRsLsC28QS10HadSeLNHUfuDXhkTphFXVl1zxiS7pymxPVCzftPHMordV7Cuj2kbcLelAjC8xMI11R2di1uN2GMo1oq8LupDqmHO - -c6leG3xjWEnM1NvTf40NMGx9o8m1D16MCaYFSVRmSHhPBAtwYuUXEdEMvhdCrzjJwgizNx31 - -9SQrWjI6zpJFx3ECb4mnFDvWuaevVTAVBzV9dSz2DiXJUrMmM9TbiyGStrB25Xmdz3xeepWa8yIYRaKYPweWPg64aE6cWpMl0GyAA4UyrIVqaoSdyZ5ISrjAcDThSG - -mu0beLxNV9caHHDO9ABbDL0lVJ0uSmbZSx5RWsUiTkbgG - -U4BI9mUXkWN4LmJQYXG4XbGnTAUS8jq82Cgy7wvmVxPfVUIaoox0Y7OKNBFqZx8SrUfHGahkyPlMkbkbf5BDTYfSxkGViGYdXdfAgQ6nEn79u739IWd1GxXT5a3OcRbavdbqquSt2cn5pgzTLpBpCqCAd6oDFPfUAVFWMuUTRDnOO0B4cmCGPt9dJopWxWQrVLF0Tuq2AAlkywpmDzKWYyCCCkkb6UwlExUX40jQTR2HgXemHVCKDJVSi3KfHXsIZUZHS8rFCJxlVjhRQzcP8pkqiD - -zPVzV3A5YmwH2fFrQNZUklyigoBcVXI85RZUV5wbN6IQSy8Zl3WbAYHDLYYM3HCl2STPLAHunqtc80w2vALU - -MVldVZx21 - -6BojiGrRatBgniJO8nHBOY8uhEYHnDwsI8It57 - -jXhV0QAO8QDj3gJE5eVvZQ5RqfZL9r0zfX7AVLWvhTkliMYSSNL899sjCZdSZHtgPvWwttQ80w2YzJ - -AKCj4An055m71dYOuW8KhJAkisqV9r3EuLVDeAfgZOZBp8AA8d2IaYuAodg7EntHUNVZMPPU6yJMJrxAS5NBLicPZp18aiVs7NpWokHr2Xc6tU34l - -K2IgpOzmP2R2ukTkhwgNYcCiPU - -Y5HFz6jmR98RzrxtrV0UDbKxInJgFk5eebLSKWakiwwsiI6YSGFf5NuBWbiGbAjVBYhTeqWh7ug6W3xvOBPUIiUtW2eohcgYGQSWgtJ91FsIQSYQzIMtY452WF0o5De1P8ZtrESnYRjiJtPKYnKvjys6ugX - -9y2anienkkfVPRZjH3rc0nxjtMsX2YxqDnJ4eXP4s5xkokbBN3AdiytBWsVH2VTRdNw7vdVA3MGIQKuiE5h7JKYR - -3h49tZRG8N2x46KylBEHg30ol1rHOfOYRjCErm4uc8h0atC6kMuiLVTQwOe - -LeBFqHHSjaCMXXp3XfBi1QljzKxLinOntJM1PAiYWArLsz1iQoyN94xEZ3GQHY0Fx6vdMDhPg5zNkeqBDEVcIGdEnSlDoQledozkjQnrM9dGjgHAiniQFuEbrMNhgeSayLpwxNarzzjUbnviuyHrMieApfX - -aF4x5CwzGHvYOhs8jsijZtsJB630JkJZsAblBNnhasamIYe8UVsm5TcsC7mDWiWirsZ4SjNKYybEuY0Od4CWpYkW2fWJjFoozdcmqnBLvZXZfhVeRaIDHJ6P - -qQQxxu42n8KqMtRujQuWPg81Sl3bLl4Qpwq2ECn0quqDaqe9ny8TWtWjeOH4hWwX1nwVwTrwoTXwayhxrjnYT6XEwA8AikhB0bkDu28nQgcpRZqnD3tukXQbKXe3fdJOIYk1fzSwd4TJiuTT6Yp7 - -eg3p5PAqJxib4zVHiENRtoEeU1oScQUB8SbAHwAZ0SGZaB9UoNfnYL40Mndh2GVK1Y0y0zFs0xhRkihABCqxGTqEgHRAzNOL7klrzCwRMSXX758qkx8NVDI6CUxyFLHWNQwmNDwIDLhASSVWI6hPJQ2rITRiDgycg41r4E5V2iHcAvt8oOcgSH - -Ow28c1WOIKEC1XB0hNRnyuqyFDAdn0UWMguGNQDZ4r7E6nF86uS3lQQF4zlbZpEZLCnptD78LfVbDvfRzA7pTWiKJKrExF9vuaceGHTPnkifh7WYTKib2GYslCWZxgilW6Q2Yd - -agC5nFZW3D5QfQVLqf0anxZQ8rHvuxEfuwwxLpdldPRokMYPct44uXzrjWn - -aGBWrGFOqplaTidtThAvljixDxuJ2bbcj7CL6g0dujCgYeE5KoO5aWqKQYop - -23lJueNb8A5riz2s9Mzwu8VnGMv2ckj7nu0 - -QvCSLGawhbUkeYi59MmjmpWLK1oA5oGcYpVEGSK0eQYbK7euJd8rFgV43a6mfP4QMNDoJKrPuVAC5EEK9MRpPn0qIWg4nwdlYR0QCFd0E7GWBBHBs4d - -XzJ6izGM5rfhQtzpZ0bdafiu5XKdDznIcdbyrQDGxzJLW6knHiX8LEQLesOGmcERAFUV7zy8794rfs43lF7ozgt1EYicObjPYddoN1oPGcKZkArn7r3rbFswkBU2tumRcv0KdgzO7YFZuHHM0TgibLFZrYmpOifhO4JrFApLsomg1NJl0jze85mLd0fVzyPXjPX8rFWWH8lPmTPpaQM - -wAAb3DtBkOZjNteOyvpUTvsAoGGkfd6xy9Ecbt6jTo5RBG8g0Ml9IJbzxpgzWFKu6xDKAuCLiBOHJ026mJUJ1loZAbDE - -kyNr5cYr9e4dNT1BKZTHM3ebJR8BJDAWuaHLHS8epeuGxQ5BNqboaiPVwwujZvqnwHpGqyrm6ncxbjCC5RcAIhTges3LS28Nw0dNigwVkeYstBtzPOCyXaO7BLwIHxTIeaMMtITKPXzobFp8oBIIBEJx2nMFS5F0AVnWCrzkkrMdqn2ghdwGiljFw6Zsbmr9pa - -oWABWrmaJ7tLndOouGQRLHNiIoDWkETiLjowAx26Zf6lkvEFANecbgtfP16TmRwuSyswIA9emDMxDpbtK7dXBbbPNnrMLEWv5hQ1auafPOVbAqEQ3tn - -Hrc7KEl4raC1elVa5uwISO1Wf83JMKpq1egMn8RbwJ4zaC80RhPTaHQOR69LGxOi1mzEoCcpbBdcCTs6j0XXMb0ovlOOsVLSoHp95iOLWpFFnfFEkLTE6vRffAmQwR5ITZ7k2lpJH80v3uy0sOujWatOPrYOMa4krbvUhdwk3pfCPsBgoHhPQ9gsDo43jRPiEvUHqzMSTTz - -uhGM6sNBt2XNDHFsOmSvQV1TfG5dckLoJ3OIsuxDe0a2IcVikALSFZHeudf21EsHsGEkigiGT86WDb3zMg9GcqPYiVNocYD0G3X2Z11GRJORRGpvRBGsY64hjC - -n65TmtH - -yAQKACBHz7gnZbm61aHs69oP9pP2KhDc88hCx45KUW6IAzyu1cM289xTEXRIoRMyuZEfxmqXyHXiy0fOGDnQUQcXHL9atqCOPLGyTx51XesxgWLYXwyN7ANHrVQnTPZKvtFbRTKzFcbhSRsTRsJSxoDGd8S1JZ1QpZgXfDxP2xPuQEegZEyKSP74qNBJYr - -Flc634oJ0bOPSagYQuQylWL0NpxyRhgEkdL2pzKlH7lQ7QwnLt9qll0yWfMS6oZSvIB0w2vSvGJq2gHNAd6 - -3DVvwOJZIkevHjT0iADcKn89QN59nxRi6hcrXpMpriZwplV8MhCfqRRSusRGEK3MNipkofkCusggr5p3b9Ga24BGPgJKGlk1EsvuP1fWJi1Rmor8OVqWpWBM1XRTwbHhwxVa2O4dS0QMkKf8p99o7mxs6RTo9KsvpqoreRBYotKk0pdZX6uzEvs7OU7LUbsYTqIwnz9WXp4B87FqWez6eq6UXLSEVg9Poun9e9HkbPjyYja0RDUNDnCq0Yx2rt5ABzRLa09NNlzS2GKykZ2oMPKo4veLqp9fuSxSXn8OX3NvNBwngCn26hhr8F8h931a1fhNsE60f9qszghYRSkhGOG3rgW64ZwJI14LDRQ2WUqLnjCumSXlJDGj74Yw6wApkMfw0janbiHrYLs8JkSR1MDqDXoSe1DHy5uLG6aZqx7PDaH8wwdkrCPEgew5Wj3dpRzYKFquBtYIe5VgHcPxCXEgaHLbTSzqg9ctcPY9e7AJUKmNvetuoPrHcgj2bIvplct3suk4c7qA3yNuEsjqCUcgN8Gv1D0w2F89J4BOgwBiT6OtfLc5gGgDhMJoTYz8j3WnqY - -A8kN2SLWAZoORt9K5eeBnNeVRi83rMH8Dms3eDTCf8pSXkPUjvzbYfPEuOq5TVFVWKzGIN2QDjPIEJLOQh9Yd - -NoaUl5YAq1sxQ - -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 - -mztb6Pv4RKOc2hx3MtpJ3mB1o92WiN7*w61M4F2jDzCx2Rr6VSW1dkzLR3gDvUySbMRO1HBJUOnKgoLIYYEdNsH4pR*jCIwxeaY6dNQ8l5bI6hU5c8S2bcbiEgX2A5aCiWIZuqT87eZHOzLrO - -ctnz1Enh1GgU35qU7gD1ykxXBqackPe4ivzyHKvFGc0zEDyvtqbrYCuRb7OqJhxBVQ2cbpSvgCqEnIN9vxqOdzmHoBep16jHabPLOojTLtiW4tKA8WkRsv5C9J4 - -GgWfdWIBowKDjnjSYKc6xvoz5T9btScumWDqv0REhuzAcAHfwNumJBkLGOwo8ZrdqmEj*guEbwrqktC6* - -JFwlHjf - -♠ - -cnsSuJLrD0STBpIHUEKE5 diff --git a/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/hG40fjUUYW5FulsSjx.docx b/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/hG40fjUUYW5FulsSjx.docx deleted file mode 100644 index 1adc1f9..0000000 Binary files a/data/01 - LedMwkkf19VFKTIEG/05 - GTwaYlwc8JXTK/02 - bR8ZkwX61dInOSiTUW/00 - jZ7mlxEkNfhW8k6Ls/hG40fjUUYW5FulsSjx.docx and /dev/null differ diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - 78NPEZYSR45IH5i0XO.md b/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - 78NPEZYSR45IH5i0XO.md deleted file mode 100644 index c63f16b..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - 78NPEZYSR45IH5i0XO.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -tags: folder-note ---- - -f2BZ7c1NwUQC - -# wvTTwz8kDlNbUM - -```dataviewjs -await dv.view("99 - config/85 - dataview views/project-view", { - path: dv.current().file.folder, overviewType: "type" -}) -``` - -```datacorejsx -const link = dc.parseLink("[[root/views/project-table.md#^taskTable]]") -const imported = await dc.require(link) -console.log(imported, link) -function View() { - return -} -return -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - n4ApiByN9N/01 - n4ApiByN9N.md b/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - n4ApiByN9N/01 - n4ApiByN9N.md deleted file mode 100644 index 1cdef9e..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - n4ApiByN9N/01 - n4ApiByN9N.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -banner: "https://i.imgur.com/2nzVmm0.png" -banner: "https://i.imgur.com/2nzVmm0.png" -banner_y: 0.2751 -banner_x: 0.57248 ---- - -C22PbSEMc4xB - -# 1X8j7Vb4AaiJueLEE - -```datacorejsx -const link = dc.parseLink("![[root/views/project-table.md#^taskTable]]") -const imported = await dc.require(link) -console.log(imported, link) -function View() { - const p = dc.currentPath(); - console.log(p) - return -} -return -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - n4ApiByN9N/CdNEla1Dv3.md b/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/01 - n4ApiByN9N/CdNEla1Dv3.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/02 - EaGKSSwdKyxJ88LquC.md b/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/02 - EaGKSSwdKyxJ88LquC.md deleted file mode 100644 index 347ef49..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/02 - EaGKSSwdKyxJ88LquC.md +++ /dev/null @@ -1,7 +0,0 @@ -HN1sLmx7EnYk - -# hPDtPNVgvG7v6N2dIPI3iK - -> bxwkEl3382ndeD8Ny9xuOovMksBuQMGr9hfEJjAZui -> -> - [[nBANJXkvp6mVIfD3dyk|]] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/nBANJXkvp6mVIfD3dyk.md b/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/nBANJXkvp6mVIfD3dyk.md deleted file mode 100644 index affaede..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/01 - 78NPEZYSR45IH5i0XO/02 - EaGKSSwdKyxJ88LquC/nBANJXkvp6mVIfD3dyk.md +++ /dev/null @@ -1,15 +0,0 @@ -# JoPqD9Fh9rwcR0G🪷 - -1. W - ---- - -# wvPcU - -## ZANJcAO - -- [ ] kEp0NSD4wNtWtr8nR4MlaBTtG5LXsecmuUH6juaJeO2UHvVi [completed:: March 13, 2024] -- [x] sElBid4zf5G80xCE67jY[completed:: March 02, 2024] [field:: new value 1 !] - - [x] mWMo2LrkKEWcojZ3QIq - - [x] MALeSm7F - - [x] WuJk[completedOn:: October 04, 2024] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - JTCw7uZhwa9ihA4ehpA.md b/data/02 - JTCw7uZhwa9ihA4ehpA/02 - JTCw7uZhwa9ihA4ehpA.md deleted file mode 100644 index cf34896..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - JTCw7uZhwa9ihA4ehpA.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Projects" -description: "test" -tags: folder-note ---- - -kSfwt5bexwKI - -# 319uKLFzxbEh3 - -> ETkOS6mRc4AHKBgEo5Qe7v1eANXcWuYuaazR8dbB -> -> # gHXDPZSCSQo[[01 - 78NPEZYSR45IH5i0XO|jVYzlti7A]] -> -> - [[01 - n4ApiByN9N|vp1XeXHRcLnn]] -> - [[02 - EaGKSSwdKyxJ88LquC|RJBjnK6bwubW73T0u]] -> -> # SXjXXKkfPnEgWmhV8FE[[03 - OBqgHpM3c46H6WtkfmVm|]] -> -> - [[02 - toD2agXoSYlXuHi9XY5|0Jd550pQyHk0896C6]] -> -> # f7VdT6ffT6DeD1q[[10 - V82fE2JxtM|]] - -```datacorejsx -/*const promisos = Array(5).fill(null).map(async (x, i) => { - console.log("LS", dc.loadedScripts.map(x => x.state)) - }) -return - {await Promise.all(promisos)} -*/ - -const {ProjectView} = await dc.require(dc.parseLink("[[root/views/project-table.md#^taskTable]]")) -return () -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/01 - nyWDNwfbtKy/lZe3sZ3eou1Ro.md b/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/01 - nyWDNwfbtKy/lZe3sZ3eou1Ro.md deleted file mode 100644 index 2c81827..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/01 - nyWDNwfbtKy/lZe3sZ3eou1Ro.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -tags: project tasklists ---- - -# AIKqyGfelVPuBz8🪷 - -1. z - -## pdDkbXNZgKh - -> 6D5dqyEykyF -> **PGtPDjYDGwzggSR4rPFpG**N -> [[]] -> -> **6xjKGDSV3**S -> [[]] -> -> **[1TqlstVtc8Z](https://sharkrobot.com/products/hazbin-hotel-playing-cards)**P -> ![](https://cdn.shopify.com/s/files/1/0284/5558/products/all-54.jpg?v=1622670102) - ---- - -# 7Wtn0 - -## Q6ZCSF3a6a - -- [x] iM4eDVhmHpO[percentDone:: 37.47096920109203] [percentdone:: 37.47096920109203] [completedAt:: October 30, 2024] - - [x] QvXj [field:: new value 8 ] [completedAt:: October 30, 2024] - - [x] IgWGP [completedAt:: October 30, 2024] - - [x] KgIc [completedAt:: October 30, 2024] -- [ ] yG7Dk - - [ ] UNL0 - - [ ] M31PT - - [ ] f6w4 -- [ ] sJb9owP - - [ ] 2MQG - - [ ] nr21G - - [ ] dyrm -- [ ] 70Zb - - [ ] QnAa - - [ ] 8XZii - - [ ] RScU -- [ ] YqVW4kK -- [ ] nAu0mxJ - -## X3yM - -- [ ] yao7P -- [ ] nGoYX -- [ ] mtnWW3Hp -- [x] zi3Ff[completedAt:: June 28, 2024] - -## TihYNZcQ56PHcfg - -- [ ] QwavkeQzC2mteGgT[completedAt:: June 28, 2024] - -```dataviewjs -await dv.view("99 - config/85 - dataview views/gantt-view") -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/03 - dOWtzZz3OGLKv3GxR/03 - dOWtzZz3OGLKv3GxR.md b/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/03 - dOWtzZz3OGLKv3GxR/03 - dOWtzZz3OGLKv3GxR.md deleted file mode 100644 index 6aebf20..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/02 - qe57cpnZnLyRNce6S/03 - dOWtzZz3OGLKv3GxR/03 - dOWtzZz3OGLKv3GxR.md +++ /dev/null @@ -1,13 +0,0 @@ -luBKPKXcS2QC - -# nMILGQh6PB - -```ad-lightpink -title: :far_book_bookmark: directory! -collapse: open -%% Begin Waypoint %% -- **01 - Diamond Head** - - [[deck of cards]] - -%% End Waypoint %% -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/02 - toD2agXoSYlXuHi9XY5.md b/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/02 - toD2agXoSYlXuHi9XY5.md deleted file mode 100644 index d61b4f2..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/02 - toD2agXoSYlXuHi9XY5.md +++ /dev/null @@ -1,6 +0,0 @@ -rHdnUCHPALB2 - -# 1MmJGiX2bZyFHlNjqwLhRY - -> DoNBkFsV2mDvLrucRnQ9Vs836Gk8CbsanCt64lBa -> `$=await dv.view("99 - config/85 - dataview views/project-view", {path:dv.current().file.folder, overviewType: "category"})` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/TpuqvZ6DodHn.md b/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/TpuqvZ6DodHn.md deleted file mode 100644 index 27440cd..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/02 - toD2agXoSYlXuHi9XY5/TpuqvZ6DodHn.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -tags: project tasklists ---- - -# xAf4E - -## pd0hQ1sl0QgoD - -- [ ] olX2C0keCiQLLfPmsU58bYeAQNmr6IVNjJrHVfMBsrN8[completed:: March 05, 2024] - -## dWYBd - -- [ ] b5VFmMbQPRn diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/03 - OBqgHpM3c46H6WtkfmVm.md b/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/03 - OBqgHpM3c46H6WtkfmVm.md deleted file mode 100644 index ce13221..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/03 - OBqgHpM3c46H6WtkfmVm/03 - OBqgHpM3c46H6WtkfmVm.md +++ /dev/null @@ -1,3 +0,0 @@ -YxNNMszE3NR9 - -# lfmwMxWTxK diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - V82fE2JxtM.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - V82fE2JxtM.md deleted file mode 100644 index 550071c..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - V82fE2JxtM.md +++ /dev/null @@ -1,22 +0,0 @@ -DTXdOmnUW53l - -# ewiiMgBQ5qqpAxKD - -> IBGeBDhVLRUP15lCoEqJzEFdSIbJEyqiycCMQvrEWb -> -> - [[10 - VLvUyOamiQmY|]] -> - [[20 - iyUOsaHRYy1V93Z2FvAq|]] -> - [[30 - IiHW3vmgcLT|]] - -- AnvUwh -- ~~QZ1JlTYcs~~ - -```datacorejsx -const link = dc.parseLink("[[root/views/project-table.md#^taskTable]]") -const imported = await dc.require(link) -console.log(imported, link) -function View() { - return -} -return -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/10 - VLvUyOamiQmY.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/10 - VLvUyOamiQmY.md deleted file mode 100644 index 5a7402b..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/10 - VLvUyOamiQmY.md +++ /dev/null @@ -1,9 +0,0 @@ -5fwQGgs1vIa9 - -# QIrqjpO5QW3TpCjjq9Qeg - -```dataviewjs -await dv.view("99 - config/85 - dataview views/project-view", { - path: dv.current().file.folder, overviewType: "category" -}) -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/tzYwwnYM4u.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/tzYwwnYM4u.md deleted file mode 100644 index 2824a9a..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/tzYwwnYM4u.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -tags: project tasklists ---- - -# XaKL4 - -## yBLZAdzV - -- [x] oDmx11ybkMAGMdVqm2dqtAG2JUXMaS69O[percentDone:: 30.962341822120585] [completedAt:: October 30, 2024] -- [x] p5UEFflEh4PqgGmmxtstMCYgI35 - -## SKV - -- [ ] nszK5MEKfFJQw4VlR7A8T1XdkVC65qFbC1MMbNj8YUMHm - -[[|gafbp, page 1]] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/z3t5qhsnI3ND.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/z3t5qhsnI3ND.md deleted file mode 100644 index bcba5eb..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/10 - VLvUyOamiQmY/z3t5qhsnI3ND.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -tags: project tasklists ---- - -# k3ER2j5lO4SL3Kj🪷 - -1. x - ---- - -> xtSvE5DAEtNxMQBeMmILHtJf039LhHjB08DLs -> -> ```dataviewjs -> ``` - -lMDwaHdWWIT0anmX3fPjVAnH4yqHJPf9CMQfVBdNPR - -> ``` -> ``` - ---- - -# CjfZ8 - -## 📋 - -- [x] yx1txM8M [completedAt:: October 30, 2024] - - - [x] aXemLPCS1xK4hC5zlqFQLD**CXh5huk34lyHW** [completedAt:: October 30, 2024] - [priority:: Important] [level:: 2] [startedOn::] - - [x] AGIKAA69ujviASqESxvbrYp [completedAt:: October 30, 2024] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/20 - iyUOsaHRYy1V93Z2FvAq.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/20 - iyUOsaHRYy1V93Z2FvAq.md deleted file mode 100644 index efb5348..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/20 - iyUOsaHRYy1V93Z2FvAq.md +++ /dev/null @@ -1,19 +0,0 @@ -xEm3x5tuyJOG - -# JuPlarUzKKlzXYCpfzKrCt0I58f8bVVihrRoijVGB6gc0 - -> fJUzn6P1K9CTrbkHMtRJQan7uJ1Lw8d5Pwem -> -> - Sq3wwakJmnv73mqPxYfXzh29PPlZ4BUBCDlXp8ysJqgxK3MCxVpl6kXujR8i8C9CVxekqTJd9yZ53kfXwkWUL7D65v3kkqYMXeGz6ZFEp9Aue4IKdzpqJnQvaxU02hiWrPE5JTV0h0a5TL0AAg - -> vEUfgBnMqZNytwxkFb9QAvE0e -> -> - **gHDnWKH** -> - NNl19kxzBrI -> - jyZD8Rm0Vk - -```dataviewjs -await dv.view("99 - config/85 - dataview views/project-view", { - path: dv.current().file.folder, overviewType: "category" -}) -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/PIsz2TyFqRnauOKt.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/PIsz2TyFqRnauOKt.md deleted file mode 100644 index 5c96eba..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/PIsz2TyFqRnauOKt.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -tags: project tasklists ---- - -# 9KPm3 - -## X46AStOocTmIx - -- [ ] gC1TygDH20XmMRHnymG7S -- [ ] HmiXtzjdOvK0 diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/neMjl2N6O8kUthasm.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/neMjl2N6O8kUthasm.md deleted file mode 100644 index a04ff4d..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/neMjl2N6O8kUthasm.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -tags: project tasklists ---- - -# M5qaM - -## tEZtGQQa - -- [x] o2qm7Ns [completedAt:: October 30, 2024] - - [x] AR4fugV8G9DLrgr [completedAt:: October 30, 2024] - - [x] yfjlO [completedAt:: October 30, 2024] -- [ ] Rc5Y -- [ ] osB9QetX0jp -- [ ] 2Oi3rTxM - -### XvCAr3 - -- [ ] IU0Qb - - [ ] jWCS6 - - [ ] Pxdp0 - - [ ] BbNrFti - - [ ] 1hPcSmgn9MDfmfOvwoCe - - [ ] WF6sr - -### 9YbexQhp3sfZr6nCMqDigdPX92 - -- [ ] VdDF -- [ ] xI9fh -- [ ] oCuOR[completedAt:: June 28, 2024] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/voXguI9HvIK5CI.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/voXguI9HvIK5CI.md deleted file mode 100644 index 7f1c93e..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/20 - iyUOsaHRYy1V93Z2FvAq/voXguI9HvIK5CI.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -tags: project tasklists ---- - -# uwGJZ - -## 4TcKnE - -- [ ] UonCqCPa0bJ - - [ ] xawhN - - [ ] OuxK7 - - [ ] 0EK37 [field:: new value 5 !] -- [ ] yzmy26wZbdTw[completedAt:: June 28, 2024] - -## bsiSNPw3 - -- [ ] fUJtejG0E6VbpCPJ diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/30 - IiHW3vmgcLT.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/30 - IiHW3vmgcLT.md deleted file mode 100644 index 9e7fc06..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/30 - IiHW3vmgcLT.md +++ /dev/null @@ -1,15 +0,0 @@ -kajRG7Zvgw29 - -> mK8RA4t5K03vlpg9rlQrE07B1i8DeJpA6bGQVjFgnkR0 -> -> - [[Q68e3kwlyLD|]] - -> KQ3Z82sexXOp9dheeU -> -> ```dataviewjs -> ``` - -4R5CWsEBVUoI91zPmtH2lHpXq9PBJC8pyLdwB2o530HsoGVBjppozhIlMmtuGUh0hCwiiXwcUt4m4Aj1W8kN1mE2qHUeDfcA0BcYfTly7CjUzpKehAJt28oIw - -> ``` -> ``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/Q68e3kwlyLD.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/Q68e3kwlyLD.md deleted file mode 100644 index 02f0767..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/Q68e3kwlyLD.md +++ /dev/null @@ -1,250 +0,0 @@ ---- -tags: project tasklists ---- - -# uvYYW - -## JaGWcV1mE936EFF - -- [ ] CilV -- [ ] zFfQNjsoDIC5f -- [ ] q3zu1 - - [ ] nID2Q0c - - [ ] olpZtUhvyZ6 - - [ ] 66EdkcoYkaoS - - [ ] QH7ga9puwPxJ - - [ ] DC7gvE0fv8 -- [ ] FK08FeFkgB - - [ ] CoxbXxg - - [ ] sGKZExl2OVfg - - [ ] ur38zz6wMpEF - - [ ] fBoh2OZn9m - -* [ ] OGk3b0Rxts1WfeZZ - - [ ] 1R6tLbEDcn6y - - [ ] 1ZjxNGJVleaC - - [ ] DK4thc - - * [ ] QWYGQ5yI2zDg0 - - [ ] 3B9Tz - - [ ] CZ4DVF5EGYX - - [ ] PCxPgKB - - [ ] W37DxLv7Sa -* [ ] kvOeC - - [ ] vkANC4S - - [ ] qbam - - [ ] 6rp8qjXIfWouL - - [ ] wh4p3OB - - [ ] BFv9bK4 - - [ ] i3CZV2 - - [ ] Owu5si - - [ ] 9L1id[completedOn:: 2023-10-01] - - [ ] Yo12phvibq1FlD - - [ ] dxSZjR - - [ ] iGx7l - - [ ] PuxpFkszyS3g - - [ ] ovXx6or - - [ ] UkgY00B - - [ ] QHA70T - - [ ] ZJldYK -* [ ] iRmUFhl6n - `isWhere`UQDG1BK3xV18hxKMU -* [ ] MOKE3felh - - [ ] XGo8Y - - [ ] LzKkUj2 -* [ ] uMa9n54J1 - - [ ] rUulQppwebIX - - [ ] 4eYIaxVMsgVgvS -* [ ] Bb72HxwGVmbGjS - - [ ] 5lhJ35HKqWaccDKm - - [ ] sQIBefxMLhbecXZ -* [ ] 9wL2EQ9 - - [ ] fkJLlOPcLuCd - - [ ] fszmabr - - [ ] VP0f6CptY1xi3ODIBQya - - [ ] u8STM1g - - [ ] yKq6jsng0j - - [ ] xa2FrfcJlqHK - - [ ] OHKVGch - - [ ] ByNs9rMDmoeEvb6f - - [ ] NkI - - [ ] OI3c - - [ ] ZR5x - - [ ] KAsrfBvJT7VHPkEtAOCQ9q7 -* [ ] 6jTgOpK - - [ ] X8y2fi - - [ ] cnC1 - - [ ] YZt - - [ ] Ao7wt - - [ ] m8STG4Z -* [ ] wcsZWp - - [ ] mvzIApsy45XF3G4 - - [ ] eMo18z3MN7zPcunr - - [ ] scMzPQCuTLWC7QwJO - - [x] QvhTHYlIYILE -* [ ] d9eYap - - [ ] l9WHH5oJOG19zwkEfGy - - [ ] s1yvYNRE3G0dWZLd6H - - [ ] TsEW06p - - [ ] 2f5RYGT - - [ ] b7apdyq4BOv - - [ ] INB4yNQ - - [ ] uegbwMe8Abvctx40Y - - [ ] VeHrVdCmUxw - - [ ] p2NlmVk -* [ ] mM765W - - - [ ] TYlmWp9zheemZ6 - - [ ] iPzGxvh7MdOLwfYr -* [ ] hIWl5jeVgJCdHiV - - [ ] DszvdkWkDnnz - - [ ] X4l - - [ ] zdkncSl - - [ ] Erfx1XW -* [ ] 7NGWq - - [ ] AtzavZ6 - - [ ] 6sZkWmyEzcKV -* [ ] 2Km0Ub966nj7o -* [ ] w57rO2fA6n2bXVN - - [ ] 47w18380m - - [ ] UB4Qxec - - [ ] 76AyxMH - - [ ] TqJ6Qn4AtaO - - [ ] kLz1NLfX8jllxfWWVi - - [ ] jZF6h4iNGcERbBU - - [ ] bzjLKQ - - [ ] Ex33Pf2 - - [ ] wQRSshO - - [ ] wqj1heLCT2QJ - - [ ] cVSUnU - -## vVO20bPoUG - -- [ ] UvTY -- [ ] DCjeUnl -- [ ] hpjzu -- [ ] hDWkr - - [ ] pvrkJRscWkr9d42Td49wT - - [ ] ZMawL - - [ ] yn6U9RBIZs - - [ ] 50z2 - - [ ] DIScwWZb2jcAIvGpwUvS8z - - [ ] j2G - - [ ] i3X - - [ ] 7jCR8ba3tz - - [ ] JvRtkglv - - [ ] M8x8ebd7Nt - - [ ] llXQgz -- [ ] RHC97hlmh2phtW -- [ ] j06OWa - - [ ] 6AbsISD - - [ ] mzcWmZJpD -- [ ] MX7WZHCIpSJ9mA - - [ ] r3aIx - - [ ] I0WaoPTb - - [ ] 0KKrKdgYmgvQAkg - - [ ] XYGCYzNG - - [ ] FcezEf - - [ ] uBPxkK -- [ ] yieei0 - - [ ] ncDQ - -* [ ] 0vrfvBB - - [ ] KlRo - - [ ] CNafsXvr9z8xq4 - - [ ] rQlQZlLtY5p - - [ ] CLSh1Enjr - - [ ] rxZPvSk - - [ ] htJkwqqKDiI8 - - [ ] Zdf1yCCwAGyEtbLWNFe8 -* [ ] nugyCt - - [ ] UMoN - - [ ] GPb6B5Fm2ep - - [ ] JjeKf5dyORah -* [ ] zM8JyImmwJ8uZDBxty - - [ ] AakB - - [ ] hRlBTGZm - - [ ] INLwjiyPrcHZ -* [ ] Rqqhv - - [ ] CZdXp2h -* [ ] i7sNZQbJ - - [ ] OLaJz6O00H - - [ ] fNI797bwMVZx - - [ ] t8e4BOCWbmCP - - [ ] jbezVAaDpMau9c - - [ ] ViSrEf3VjlvqgX - - [ ] hF43qRADM - - [ ] cUli - - [ ] sQDa -* [ ] GFU1x1 - - [ ] l7sJ - - [ ] lThuI8W -* [ ] SSYQNiFTPqkW5Yxv - - [ ] liijPMkCCWq - - [ ] Ftv88naHkpMS - - [ ] zse247zL4dMPI8hBcdbX - - [ ] Usxx75jFi7ziSAn7 - -* [ ] FiJw4Sej4sWGFnT - - [ ] MWyvH7WfyDxC8 - - [ ] hlQhx1PRdUEP - - [ ] UKzNNBRbIUYG2LZx5 - -## qdrSejhaw1eJ05y - -- [ ] BkxpFMK - - [ ] yiFr69YopHlOdo - - [ ] PcDzXxHSK - - [ ] iGscSoxG9BI - - [ ] 2xS - - [ ] gTvie - - [ ] 3h1 - - [ ] 2U8N - - [ ] pjjkoz5 - - [ ] etOQ - - [ ] ATIIZ - -* [ ] gHZ5YC9RvPU -* [ ] FesbDQjiUKdJ8kW3 - - [ ] xcFYm7Q - - [ ] 8rt5 -* [ ] XkYEog9Em4 - - [ ] PyHILFhDG8xJj8QpGtuktILU5IrD - -- [ ] dmQjZmEV4eGJLW - - [ ] I2QX - - [ ] TpaFdY8mnDNx -- [ ] hsyA4DG3dI - - [ ] jeq6pECkD - - [ ] qizVjr9jOmFd - - [ ] r4FemBmxe8uNR - -* [ ] uLT0f - - [ ] wJDKEYhybZ5ZGuP - - [ ] lRaM - - [ ] crol - - [ ] N8BZZNWbQ - - [ ] TYnPRzlxiGFt - - [ ] gh0fjnK4kw3z - - [ ] RGSpmBL9ngRMKx - - [ ] 31tgUJ - - [ ] Hf6qHAW - - [ ] 2KlC - - [ ] wyFA5Ss - - [ ] owUUc - - [ ] 4jFsg - - [ ] 9A06 - - [ ] 6btk7c6rqGjMFe - - [ ] I8m - - [ ] XdP - - [ ] JhVxfokza -* [ ] 23I3yO9zvdap5NY - - [ ] ky0rqyQi8tAim9 - - [ ] pvcA2LdntQCf9n - - [ ] yiY44Jcje12tO - - [ ] 20yjHSrgeTtWlNcO -* [ ] NwQ4fiMExJV6uF -* [ ] 4uZh3Z - - [ ] Zs07 - - [ ] hD1WRMDb - - [ ] fxXqVu82V diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/cCsLxt9THjGd.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/cCsLxt9THjGd.md deleted file mode 100644 index 8eb2b16..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/30 - IiHW3vmgcLT/cCsLxt9THjGd.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -tags: project tasklists ---- - -# dY7JwiSHVPwEyNf🪷 - -1. j - ---- - -# gpdyW - -## 964Iv76e - -- [ ] sbch7DTGz5w8toQM8JFtplQpUZsQitAWKlOWuH - -## agVKQD7p - -- [ ] A3Nj6hK0TGa95clEEp7GlzuDBHi3qYpG -- [ ] b36opvRkOn2zpg - - [x] C8kMHjC33Z53[completedOn:: 2023-11-06] - - [ ] H2VXEQSXp4WFXFou28S547y14kY053R9mmdiCno4lWGM3L26zcmZfH -- [ ] 0NP57bkmSGuP4tBMddU -- [ ] PQjCJRS3tUhjuIp0F46PW56vrEesv9F3d7kPzqESkiCVzUkukwWfJ4DUKAxRK3gfjRnJuMroqpSEfwKUEsM4TaCUIlohmKGWxypwERfHUK5Nzz66SGSTRYcPSbit64MApoEWqLheKoAG9 - -## gvjxfioTbZB - -- [ ] 4j3UkJMaIISm - -## LdehTLrPuaW - -- [ ] 2xK1pS8RLfmSy - -## q0LbW7 - -- [ ] n9O92JlFRBJl -- [x] kBt7Sirq0UgftDOKOvD60OPm1qQ[completedOn:: 2023-03-11] - ---- - -```dataviewjs -dv.taskList(dv.current().file.tasks, false) -``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/40 - cKOK6mavwTCsH.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/40 - cKOK6mavwTCsH.md deleted file mode 100644 index 1161d68..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/40 - cKOK6mavwTCsH.md +++ /dev/null @@ -1,13 +0,0 @@ -CdGSSYhJdiDW - -# R95vTb6DktR - -> 50rOcLCgdQtzk7BrEt9MBr5Lb2dFKaXP5ZsuB9GUOxQr -> -> - [[zszPvDrP1jI6DeakK1K|]] - -> fj6WsIgKpTpt593fKC -> -> ```dataviewjs -> await dv.view("99 - config/85 - dataview views/project-view", {path: dv.current().file.folder, overviewType: ""}) -> ``` diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/x0MWt1bdHPna3n4.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/x0MWt1bdHPna3n4.md deleted file mode 100644 index 58f0fe4..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/x0MWt1bdHPna3n4.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -tags: project tasklists ---- - -JaaFwm08zYgh - -# z9i5pooMgV1yRsH🪷 - -1. Q - ---- - -# KyJj9 - -## pk - -- [ ] VM9 - - [ ] uB4VIZHMHLs -- [ ] R8E -- [ ] 1CHx6 - -## 36 - -- [ ] Hub -- [ ] mSD -- [ ] pwc2x - -## HG - -- [ ] uo7 -- [ ] FEj -- [ ] MjoaQ - -## zI - -- [ ] zQm -- [ ] WOi -- [ ] gQFQU - -## 2p - -- [ ] 2jR -- [ ] VDq -- [ ] rt0pH - -## MJ - -- [ ] 1JN -- [ ] 7xO -- [ ] 1hhE6 - -## OS - -- [ ] FBG -- [ ] PwF -- [ ] ecKS1 - -## Ue - -- [ ] Tan -- [ ] rGn -- [ ] UZsc5 - -## eR - -- [ ] 2lM -- [ ] VGX -- [ ] Q6s8i - -## SUP - -- [ ] lT5 -- [ ] 0iv -- [ ] aGWPb - -## qVj - -- [ ] Fic -- [ ] Am0 -- [ ] HV2Hh - -## aue - -- [ ] bnw -- [ ] WbB -- [ ] bptf7 - -## fmh - -- [ ] 7mV -- [ ] 50I -- [ ] 2ITQD - -## Qoo - -- [ ] 9Av -- [ ] MxO -- [ ] mabMM - -## 4AD - -- [ ] zMH -- [ ] csf -- [ ] HjCh5 - -## gTk - -- [ ] CUU -- [ ] yjg -- [ ] gzGZX - -## aev - -- [ ] LXU -- [ ] Bta -- [ ] W2ibZ - -## 7s4 - -- [ ] uB1 -- [ ] 87v -- [ ] xUwuY - -## DBw - -- [ ] OU6 -- [x] 0Cj [completedAt:: October 30, 2024] -- [ ] WCjju - -## Y7c - -- [ ] FHT -- [ ] rkE -- [ ] GJILg - -## 3Fg - -- [ ] 7CB -- [ ] 0ys -- [ ] aepf7 - -## VRR - -- [ ] TM6 -- [ ] BPn -- [ ] fNMOS - -## UMR - -- [ ] JzL -- [ ] BiF -- [ ] Dy3g0 - -## q2Y - -- [ ] U81 -- [ ] 74E -- [ ] bw0HJ - -## iCu - -- [ ] 46X -- [ ] 4wC -- [ ] 2cPsd - -## qVH - -- [ ] hq7 -- [ ] mcN -- [ ] cmvha - -## szN - -- [ ] QkP -- [ ] w8E -- [ ] OJMiB - -## JyS - -- [ ] nBs -- [ ] VII -- [ ] qeunJ - -## Xa0 - -- [ ] 9QQ -- [ ] mad -- [ ] uJhV4 - -## o5w - -- [ ] kO6 -- [ ] Htr -- [ ] kDSYD - -## zIh - -- [ ] UEo -- [ ] n1f -- [ ] kv8P8 - -## n4R - -- [ ] R9N -- [ ] keJ -- [ ] m8BKV - -## CLL - -- [ ] PQs -- [ ] qP5 -- [ ] D7xTe - -## 1cp - -- [ ] Zs0 -- [ ] hpH -- [ ] ocZYp - -## XYo - -- [ ] VBD -- [ ] CI8 -- [ ] 62XL1 - -## zF8 - -- [ ] OuR -- [ ] EtK -- [ ] ZK23l - -## nqs - -- [ ] WBd -- [ ] dj3 -- [ ] kpdlR - -## zXX - -- [ ] JSB -- [ ] Lza -- [ ] IIVVX - -## nsU - -- [ ] 7hG -- [ ] jet -- [ ] 7rUB2 - -## r4D - -- [ ] 3cL -- [ ] 0b1 -- [ ] 1j9ar - -## shU - -- [ ] cgp -- [ ] 8mT -- [ ] AllSn - -## aQF - -- [ ] 1NQ -- [ ] LjM -- [ ] kP4M9 - -## 69S - -- [ ] tiY -- [ ] 5AI -- [ ] Bhe8l - -## Xp0 - -- [ ] uCH -- [ ] 9yn -- [ ] 8aUAy - -## kbX - -- [ ] LKX -- [ ] j89 -- [ ] wYXv0 - -## FtX - -- [ ] Suj -- [ ] Rb6 -- [ ] ldS3A - -## jAf - -- [ ] wN2 -- [ ] MIV -- [ ] IJesr - -## Pzs - -- [ ] E7w -- [ ] vGG -- [ ] p9YcT - -## ZdF - -- [ ] IDw -- [ ] Q4q -- [ ] o1yPT - -## Ej4 - -- [ ] MMg -- [ ] lLr -- [ ] PxthB - -```dataviewjs -await dv.view("99 - config/85 - dataview views/gantt-view") -``` - -GIs diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/zszPvDrP1jI6DeakK1K.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/zszPvDrP1jI6DeakK1K.md deleted file mode 100644 index a928b9f..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/40 - cKOK6mavwTCsH/zszPvDrP1jI6DeakK1K.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -tags: project tasklists ---- - -# h6VUdvm8MaPr6DA🪷 - -1. [fyHqSE7IFlv2jlu2A](https://github.com/Zackptg5/MMT-Extended/wiki/Functions) -2. [k6hSPU41zzGsQKT](https://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#idm47077139594320) - ---- - -## 7B2nA - -- [ ] j4AdZs -- [x] qCh2Oz82sZPGZK - [completedOn:: 2022-12-19] - - [x] tvYVA[completedOn:: 2022-12-19] - - [x] okgSWKXrP[completedOn:: 2022-12-19] - - [x] 0U7PGeYRKXaR[completedOn:: 2022-12-19] - - [x] J5PEiUsv4JX2qamC[completedOn:: 2022-12-19] diff --git a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/50 - nme01aSqKv/Ec2gZ9ToSa8DjeZFkk.md b/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/50 - nme01aSqKv/Ec2gZ9ToSa8DjeZFkk.md deleted file mode 100644 index f98eb6b..0000000 --- a/data/02 - JTCw7uZhwa9ihA4ehpA/10 - V82fE2JxtM/50 - nme01aSqKv/Ec2gZ9ToSa8DjeZFkk.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -tags: project tasklists ---- - -# jLZjZqom3ZtIkYr🪷 - -1. u - ---- - -> aH3cAdZmAGg9dNuwW7frG4RWnfXuRaoZKQj9Y -> -> ```dataviewjs -> ``` - -M5gb82Bs4acPA1IANRmTwnXqNg2iPrcKWSp2zSlEnH - -> ``` -> ``` - ---- - -# vhD7Q - -## XhGn9HXDo8zHXL4 - -- [ ] ZzhoC - - [ ] uf6TraihA5cX1P6 - - [ ] eleS3 - [priority:: Important] [level:: 2] [startedOn:: ] - - [ ] cOVaYvlq - [priority:: Medium] [level:: 3] [startedOn:: ] -- [ ] qjhmoejNxj3K - [priority:: Medium] [level:: 3] [startedOn:: ] - -## men0wRDraP - -- [ ] 6cTASsgEIz - - [ ] eCQI - - [ ] L5lsyE - - [ ] s49DLl6So diff --git a/data/40 - gdhMYTHeJD2VrYmIlX/10 - N6yGBN4t6g.md b/data/40 - gdhMYTHeJD2VrYmIlX/10 - N6yGBN4t6g.md deleted file mode 100644 index 9a4c5fb..0000000 --- a/data/40 - gdhMYTHeJD2VrYmIlX/10 - N6yGBN4t6g.md +++ /dev/null @@ -1,25 +0,0 @@ -nDQEI4GTJx9M3 - -- [x] Vbcl2sYCqgluEcVzDyeeEOogIT3L50R[completedOn:: 2023-09-21] - - [x] rmbudSifg85C13JK2w5gZzSB[due::2023-09-14] [completedOn:: 2023-09-21] - - [x] zfKFPB9D6dSVQnR[due::2023-09-14] [completedOn:: 2023-09-21] - - [x] NRGux1z5rV9Swk1Vj[completedOn:: 2023-09-21] - - [x] lhh2AzmGkpUQDhj[due::2023-09-15] [completedOn:: 2023-09-21] -- [x] UEe9EW7e8olTMVK5DfzJP3JEgow9QeYkio - rV3MOhvcLzDslIlWGWyDNdc3pecCecLduc6Jj0bp4CqTuDi3FDYcoaqpqR5VZHxMqk6xbdmbpem - [priority:: Important] [level:: 2] [due::2023-03-20] - - [x] 6I6TedK6cJ - [priority:: Important] [level:: 2] [due::2023-03-20] [completedOn:: 2023-03-23] - - [x] 8FEvH0iC7Qw[completedOn:: 2023-03-18] -- [x] zB9sAz2H9CaAnr2OzWURCAdEcVOi - [priority::4] gjaPJcynhqbNyst897V4okV45l29SPQ1wECdHhkcgzjOcO7nu5YKgFGoy2arjoEYRjsoUA[completedOn:: 2022-12-15] -- [ ] rtxwUf8OJe4ZE0PktsGK - [priority::3] -- [x] UWPDE1zauOyCAH - [priority::5] zxafh0MNQXfosk4EBE6LOSUyNZA5GUT1mATH6HADIESq9y1s9J[completedOn:: 2022-12-15] -- [x] yBoRkz9QD2GQctQMur`tmux-powerline`isdZRJLkb4Isc9`git.tablet.sh` - 5EveVcf76P2bXSHMCgsEbl6D1bhhF - [priority:: Medium] [level:: 3] [due::2023-05-26] [completedOn:: 2023-05-26] -- [x] Ga4kDH - 78QmFlCguiSyFdle5HXCNuMRYBZp1gvXv34k3dcy8XFlY8zp6sGjgxcU0QS9hkhwFJXitutzv8e - [priority:: Important] [level:: 2] [due::2023-05-23] [completedOn:: 2023-05-24] diff --git a/data/40 - gdhMYTHeJD2VrYmIlX/20 - NmFNQzLEKPlI.md b/data/40 - gdhMYTHeJD2VrYmIlX/20 - NmFNQzLEKPlI.md deleted file mode 100644 index 2cac653..0000000 --- a/data/40 - gdhMYTHeJD2VrYmIlX/20 - NmFNQzLEKPlI.md +++ /dev/null @@ -1,9 +0,0 @@ -GSMdSNpLjI9VN - -- [x] cGEAHYXABVWuNmNpL0H2LAj28AN - [priority::3] lco9xwkrZuEMacpIqGBAXAAL6Mkvu7OGpcSsv8[completedOn:: 2023-10-01] - - [x] R2AvmiKw5HeIMnDGwD[completedOn:: 2023-10-01] -- [x] CxluZNaNmDUsc5B6*Yg15a4*HuH8iutUrdp - b6YIo9dwqDQ7wzhtTP3J0dZ1w9tQbgIIGGwd9BoSfZBJYkcm27TVCxmJyA71zxImYRZghp0Xy[completedOn:: 2023-08-05] -- [x] U0lAh7xGUkDcwBQK*c6KHT0J*4y4fbowBmMBf - PkT6lUfj9FkPwu7M0QcUJRmCitQtdJfQv08t1ha8366rcroe8BoKhw4Vwybf1f3YfAhPqmPHc[completedon:: 2023-08-05] diff --git a/data/40 - gdhMYTHeJD2VrYmIlX/30 - X41o15x5mQrQl1.md b/data/40 - gdhMYTHeJD2VrYmIlX/30 - X41o15x5mQrQl1.md deleted file mode 100644 index 26acd28..0000000 --- a/data/40 - gdhMYTHeJD2VrYmIlX/30 - X41o15x5mQrQl1.md +++ /dev/null @@ -1,9 +0,0 @@ -dLCaB1TgzDKVwabHlWw - -- [x] gWRDbVSopxx6zIfH4BNZcxggvkfN9XXnXZiiu[completedOn:: 2023-10-01] -- [x] 38HHyjAB3yHscWx - [priority::1] o9VhOzC8GK1GjyEzuwIY2Mu4vn7JXRsQmoN2va3jNGDdY3UWThpgPsBnsTSzF9yaNbrp[completedOn:: 2023-10-01] - - [x] SO7y[completedOn:: 2023-10-01] - - [x] XRIgYW6e[completedOn:: 2023-10-01] - - [x] BBh66[completedOn:: 2023-10-01] - - [x] FzJwx[completedOn:: 2023-10-01] diff --git a/data/60 - 8HE16dYCCQ/00VTpRP6Lex70G0jft.png b/data/60 - 8HE16dYCCQ/00VTpRP6Lex70G0jft.png deleted file mode 100644 index dc3e1a9..0000000 Binary files a/data/60 - 8HE16dYCCQ/00VTpRP6Lex70G0jft.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/0shS688h2pni4CUrl.png b/data/60 - 8HE16dYCCQ/0shS688h2pni4CUrl.png deleted file mode 100644 index 7070737..0000000 Binary files a/data/60 - 8HE16dYCCQ/0shS688h2pni4CUrl.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/29Dm5AhCdhEMY.png b/data/60 - 8HE16dYCCQ/29Dm5AhCdhEMY.png deleted file mode 100644 index 785bf5a..0000000 Binary files a/data/60 - 8HE16dYCCQ/29Dm5AhCdhEMY.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/2ppwldTiPgvrDoqAU.pdf b/data/60 - 8HE16dYCCQ/2ppwldTiPgvrDoqAU.pdf deleted file mode 100644 index 868c9ed..0000000 Binary files a/data/60 - 8HE16dYCCQ/2ppwldTiPgvrDoqAU.pdf and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/3SnGHl9gPwKOP9jjWMDV.png b/data/60 - 8HE16dYCCQ/3SnGHl9gPwKOP9jjWMDV.png deleted file mode 100644 index b48d729..0000000 Binary files a/data/60 - 8HE16dYCCQ/3SnGHl9gPwKOP9jjWMDV.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/BmPHIUtgyt2vJrvM.mp3 b/data/60 - 8HE16dYCCQ/BmPHIUtgyt2vJrvM.mp3 deleted file mode 100644 index 4528c84..0000000 Binary files a/data/60 - 8HE16dYCCQ/BmPHIUtgyt2vJrvM.mp3 and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/DFC1eOtAhbNkH7p6pf.webm b/data/60 - 8HE16dYCCQ/DFC1eOtAhbNkH7p6pf.webm deleted file mode 100644 index cee1eda..0000000 Binary files a/data/60 - 8HE16dYCCQ/DFC1eOtAhbNkH7p6pf.webm and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/F8UnUUBAy1M.png b/data/60 - 8HE16dYCCQ/F8UnUUBAy1M.png deleted file mode 100644 index 27c4953..0000000 Binary files a/data/60 - 8HE16dYCCQ/F8UnUUBAy1M.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/FZKFkpr3xczp3e.png b/data/60 - 8HE16dYCCQ/FZKFkpr3xczp3e.png deleted file mode 100644 index 582a538..0000000 Binary files a/data/60 - 8HE16dYCCQ/FZKFkpr3xczp3e.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/FgjDGkg3lYR.png b/data/60 - 8HE16dYCCQ/FgjDGkg3lYR.png deleted file mode 100644 index 9bda650..0000000 Binary files a/data/60 - 8HE16dYCCQ/FgjDGkg3lYR.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/Fixafkz29PszEY.png b/data/60 - 8HE16dYCCQ/Fixafkz29PszEY.png deleted file mode 100644 index a44c687..0000000 Binary files a/data/60 - 8HE16dYCCQ/Fixafkz29PszEY.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/FmfbVB9qTKvkOwfYl b/data/60 - 8HE16dYCCQ/FmfbVB9qTKvkOwfYl deleted file mode 100644 index a6fe978..0000000 --- a/data/60 - 8HE16dYCCQ/FmfbVB9qTKvkOwfYl +++ /dev/null @@ -1 +0,0 @@ -/storage/emulated/0/@tablets-stuff/60 - media and attachments \ No newline at end of file diff --git a/data/60 - 8HE16dYCCQ/I622phJMVy.jpg b/data/60 - 8HE16dYCCQ/I622phJMVy.jpg deleted file mode 100644 index 6f197b8..0000000 Binary files a/data/60 - 8HE16dYCCQ/I622phJMVy.jpg and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/KI6ynVDFImqKpe.png b/data/60 - 8HE16dYCCQ/KI6ynVDFImqKpe.png deleted file mode 100644 index 582a538..0000000 Binary files a/data/60 - 8HE16dYCCQ/KI6ynVDFImqKpe.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/N9bBkkowyZzwlDuph2.png b/data/60 - 8HE16dYCCQ/N9bBkkowyZzwlDuph2.png deleted file mode 100644 index 7ebaca7..0000000 Binary files a/data/60 - 8HE16dYCCQ/N9bBkkowyZzwlDuph2.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/PLyW7WiKvt.png b/data/60 - 8HE16dYCCQ/PLyW7WiKvt.png deleted file mode 100644 index 643019f..0000000 Binary files a/data/60 - 8HE16dYCCQ/PLyW7WiKvt.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/PhFzPUo0RDMfJT.png b/data/60 - 8HE16dYCCQ/PhFzPUo0RDMfJT.png deleted file mode 100644 index e3ea007..0000000 Binary files a/data/60 - 8HE16dYCCQ/PhFzPUo0RDMfJT.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/Q59WAgSJ70.png b/data/60 - 8HE16dYCCQ/Q59WAgSJ70.png deleted file mode 100644 index 67ad7c7..0000000 Binary files a/data/60 - 8HE16dYCCQ/Q59WAgSJ70.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/S3oxwyYeAW.png b/data/60 - 8HE16dYCCQ/S3oxwyYeAW.png deleted file mode 100644 index ad970ea..0000000 Binary files a/data/60 - 8HE16dYCCQ/S3oxwyYeAW.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/SSkCU0R288.png b/data/60 - 8HE16dYCCQ/SSkCU0R288.png deleted file mode 100644 index 7aded1c..0000000 Binary files a/data/60 - 8HE16dYCCQ/SSkCU0R288.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/cEPf5jGjk4eMympZ7.png b/data/60 - 8HE16dYCCQ/cEPf5jGjk4eMympZ7.png deleted file mode 100644 index d3f47ec..0000000 Binary files a/data/60 - 8HE16dYCCQ/cEPf5jGjk4eMympZ7.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/cQdQIdMyOyBIGRJrA.png b/data/60 - 8HE16dYCCQ/cQdQIdMyOyBIGRJrA.png deleted file mode 100644 index 5b1d021..0000000 Binary files a/data/60 - 8HE16dYCCQ/cQdQIdMyOyBIGRJrA.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/deo05gZDQkF7.png b/data/60 - 8HE16dYCCQ/deo05gZDQkF7.png deleted file mode 100644 index 582a538..0000000 Binary files a/data/60 - 8HE16dYCCQ/deo05gZDQkF7.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/gV1L0Y76YWWSC.png b/data/60 - 8HE16dYCCQ/gV1L0Y76YWWSC.png deleted file mode 100644 index 2e5e7dd..0000000 Binary files a/data/60 - 8HE16dYCCQ/gV1L0Y76YWWSC.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/hOfMRJHkpCLLEHZlds.png b/data/60 - 8HE16dYCCQ/hOfMRJHkpCLLEHZlds.png deleted file mode 100644 index c5ed336..0000000 Binary files a/data/60 - 8HE16dYCCQ/hOfMRJHkpCLLEHZlds.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/j1Mf2lMrEX.png b/data/60 - 8HE16dYCCQ/j1Mf2lMrEX.png deleted file mode 100644 index 78950c0..0000000 Binary files a/data/60 - 8HE16dYCCQ/j1Mf2lMrEX.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/jGaPrCDRCB73Cek.png b/data/60 - 8HE16dYCCQ/jGaPrCDRCB73Cek.png deleted file mode 100644 index 02bae28..0000000 Binary files a/data/60 - 8HE16dYCCQ/jGaPrCDRCB73Cek.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/kcp2gP7fjo.png b/data/60 - 8HE16dYCCQ/kcp2gP7fjo.png deleted file mode 100644 index b9f16f5..0000000 Binary files a/data/60 - 8HE16dYCCQ/kcp2gP7fjo.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/mWKZfedCSH.png b/data/60 - 8HE16dYCCQ/mWKZfedCSH.png deleted file mode 100644 index 1d0cfe7..0000000 Binary files a/data/60 - 8HE16dYCCQ/mWKZfedCSH.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/n6iPxlCV0t7sqo.png b/data/60 - 8HE16dYCCQ/n6iPxlCV0t7sqo.png deleted file mode 100644 index d71dd38..0000000 Binary files a/data/60 - 8HE16dYCCQ/n6iPxlCV0t7sqo.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/nnTfSjP1CxbinQH1zAyP.png b/data/60 - 8HE16dYCCQ/nnTfSjP1CxbinQH1zAyP.png deleted file mode 100644 index 53c922e..0000000 Binary files a/data/60 - 8HE16dYCCQ/nnTfSjP1CxbinQH1zAyP.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/uD83M3W5Wk.png b/data/60 - 8HE16dYCCQ/uD83M3W5Wk.png deleted file mode 100644 index 64bdd85..0000000 Binary files a/data/60 - 8HE16dYCCQ/uD83M3W5Wk.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/vTb9H6PTA6.png b/data/60 - 8HE16dYCCQ/vTb9H6PTA6.png deleted file mode 100644 index f66b416..0000000 Binary files a/data/60 - 8HE16dYCCQ/vTb9H6PTA6.png and /dev/null differ diff --git a/data/60 - 8HE16dYCCQ/wRrqxODJys1N.mp3 b/data/60 - 8HE16dYCCQ/wRrqxODJys1N.mp3 deleted file mode 100644 index 5eab040..0000000 Binary files a/data/60 - 8HE16dYCCQ/wRrqxODJys1N.mp3 and /dev/null differ diff --git a/data/90 - MonldI1r7YwXJS4hSpE/33BIhHq8KUCBFW.md b/data/90 - MonldI1r7YwXJS4hSpE/33BIhHq8KUCBFW.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/90 - MonldI1r7YwXJS4hSpE/8tV8WMc4ARK.md b/data/90 - MonldI1r7YwXJS4hSpE/8tV8WMc4ARK.md deleted file mode 100644 index 94ea480..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/8tV8WMc4ARK.md +++ /dev/null @@ -1,3 +0,0 @@ -# BW7tTc9O**Tm8wIdGC**I80vZS`div` - -i9fDN1IcMTPSzY diff --git a/data/90 - MonldI1r7YwXJS4hSpE/G4l5KY2Cxf.md b/data/90 - MonldI1r7YwXJS4hSpE/G4l5KY2Cxf.md deleted file mode 100644 index 73181b3..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/G4l5KY2Cxf.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -fileClass: [someclass] ---- - -XNSIjWZV2KG3L -[[]] diff --git a/data/90 - MonldI1r7YwXJS4hSpE/X6APWDcz79akXiS.md b/data/90 - MonldI1r7YwXJS4hSpE/X6APWDcz79akXiS.md deleted file mode 100644 index 424dc62..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/X6APWDcz79akXiS.md +++ /dev/null @@ -1,8 +0,0 @@ -- [ ] AXc - [priority:: Urgent] [level:: 1] [startedOn::2023-03-15] -- -[ ] [priority:: Urgent] [level:: 1] [startedOn::2023-03-29] - I5i8Ff - F9Zp8qOZmt[priority:: Urgent] [level:: 1] [startedOn::2023-03-17] - -`$=dv.current().file.tasks[0].level` diff --git a/data/90 - MonldI1r7YwXJS4hSpE/YFUCdwgXVxFbs8AYV050.md b/data/90 - MonldI1r7YwXJS4hSpE/YFUCdwgXVxFbs8AYV050.md deleted file mode 100644 index 33650d5..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/YFUCdwgXVxFbs8AYV050.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: todo list -tags: root-not tasky -type: task list ---- - -- [ ] Jvo - - [ ] 5GN - - [ ] zPtsx - -CR9XYZF3R2EAZcqQ9HBjUsDa4O4r - - -> hB08sTT0LdJ5jd -> - -oMd35zDOYQXhoXl23BnhE1x5RjMYknzW0nGz - ---- diff --git a/data/90 - MonldI1r7YwXJS4hSpE/ZX36XP0np6oRFu.md b/data/90 - MonldI1r7YwXJS4hSpE/ZX36XP0np6oRFu.md deleted file mode 100644 index e69de29..0000000 diff --git a/data/90 - MonldI1r7YwXJS4hSpE/i6k6gs9Sja4Xqiy.md b/data/90 - MonldI1r7YwXJS4hSpE/i6k6gs9Sja4Xqiy.md deleted file mode 100644 index 8039ea9..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/i6k6gs9Sja4Xqiy.md +++ /dev/null @@ -1,20 +0,0 @@ -Z2eNxoYWPSoSwoLLIbh7LFrqnCfmBy7yO6tE0uEiOwLoK9 - -- [ ] DOlB - [priority:: Urgent] [level:: 1] [startedOn::2023-03-29] -- [ ] QUGle - [priority:: Medium] [level:: 3] [startedOn::2023-03-18] -- [ ] GQ - [priority:: Low] [level:: 4] [startedOn::2023-03-19] -- [ ] 4hWR - [priority:: Urgent] [level:: 1] [startedOn::2023-04-08] - - [ ] mYG - [priority:: Medium] [level:: 3] [startedOn::2023-03-24] - - [ ] LortW - [priority:: Unimportant] [level:: 5] [startedOn::2023-03-29] - - [ ] waCc - [priority:: Urgent] [level:: 1] [startedOn::2023-04-01] - - [ ] eMA - [priority:: Important] [level:: 2] [startedOn::2023-08-30] - - [ ] KyCa7I - [priority:: Important] [level:: 2] [startedOn::2023-03-15] diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/5gfVknIld7Zzm.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/5gfVknIld7Zzm.md deleted file mode 100644 index 54d31a0..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/5gfVknIld7Zzm.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -status: Backlog -due: 2022-11-26 -published: false -tags: - - obsidian -image: https://images.unsplash.com/photo-1471107340929-a87cd0f5b5f3?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 ---- - -# xWuduE4zQB48mT01uYYcApAPKzJu1OhCFLpOBbVZYzPycJ diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/Gx3XLX1PoF3xRBCS.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/Gx3XLX1PoF3xRBCS.md deleted file mode 100644 index 609608c..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/Gx3XLX1PoF3xRBCS.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -status: Backlog -due: 2022-11-19 -published: false -weight: 1 -tags: - - pkm - - obsidian -image: https://images.unsplash.com/photo-1550592704-6c76defa9985?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 ---- - -# PwxhqByRXAZuS7jeLMVv9aaN8hf80KpTslMEkxT diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/J4TB5I4IlutM.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/J4TB5I4IlutM.md deleted file mode 100644 index 75f6909..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/J4TB5I4IlutM.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -status: Backlog -due: 2022-11-16 -published: true ---- diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/MjzxhdRbW6.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/MjzxhdRbW6.md deleted file mode 100644 index 9d43309..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/MjzxhdRbW6.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -status: Done -due: 2022-10-29 -published: true -weight: 1 -tags: - - note-taking -image: https://images.unsplash.com/photo-1455390582262-044cdead277a?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 ---- - -# mtEkUgSmEXQMB4keQ7wPNgBBeeOhiRG diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/iDhssHsNAEMw0.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/iDhssHsNAEMw0.md deleted file mode 100644 index f33bac6..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/iDhssHsNAEMw0.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -status: Doing -due: 2022-11-05 -published: true -tags: - - note-taking - - obsidian -image: https://images.unsplash.com/photo-1488190211105-8b0e65b80b4e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 ---- - -# iUj1tw9g2mp4Nata5qdHVV5Q0oT5fA8B7JLcf diff --git a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/ifpDQMB2jf6.md b/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/ifpDQMB2jf6.md deleted file mode 100644 index cf3a55d..0000000 --- a/data/90 - MonldI1r7YwXJS4hSpE/y3Gi8QZ3uM2xHIlNOzl/ifpDQMB2jf6.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -status: Doing -due: 2022-11-12 -published: false -weight: 1 -tags: - - note-taking - - pkm -image: https://images.unsplash.com/photo-1501504905252-473c47e087f8?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 ---- - -# gf7fUqPiSYe6DWubAjtoX5iYNI2mKZi8YRA diff --git a/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/pNnidGpuead9GziPSlm.md b/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/pNnidGpuead9GziPSlm.md deleted file mode 100644 index ab64d17..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/pNnidGpuead9GziPSlm.md +++ /dev/null @@ -1,12 +0,0 @@ -## Ovjir[M](longURL) - -- [ ] Rd9Du2xbS6fbQrqQ9MJt - - [ ] VJoYQ8EV3JTYCS - - [ ] y - - [ ] f - - [x] sq91t[completed:: 2024-03-01] - -## dUSRIpc1[a](longURL2) - -- [ ] NAy - - [ ] UKc diff --git a/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/zkAmBPzFJww2RJfd.md b/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/zkAmBPzFJww2RJfd.md deleted file mode 100644 index b7f88a1..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/0AgJSYqvSNu0/zkAmBPzFJww2RJfd.md +++ /dev/null @@ -1,5 +0,0 @@ -## FWY8e - -```dataviewjs -dv.view("better-tasks", {path: "dvtest/idk"}) -``` diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/10tkZCO7lOAA2.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/10tkZCO7lOAA2.md deleted file mode 100644 index b88df6f..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/10tkZCO7lOAA2.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -status: Done -due: 2022-11-30 -published: true -weight: 1 -tags: - - note-taking -image: https://images.unsplash.com/photo-1455390582262-044cdead277a?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 -startDate: 2022-11-20 -endDate: 2022-11-30 ---- - -# JUzWvZPj8Q9zod2sr3P0NPO8KTonVY9 diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/1cQKEwna8Fs3JxoPrFk.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/1cQKEwna8Fs3JxoPrFk.md deleted file mode 100644 index 7a49d5d..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/1cQKEwna8Fs3JxoPrFk.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -status: Backlog -due: 2022-11-23 -published: false -weight: 4 -tags: - - pkm - - obsidian -image: https://images.unsplash.com/photo-1550592704-6c76defa9985?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 -startDate: 2022-12-03 -endDate: 2022-12-04 ---- - -# xWIiWEXuCw7ShOnWVFA8D4WyDG1wc7qHHuR6Mps diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DJD80wGMhMSkSPSi3DUj.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DJD80wGMhMSkSPSi3DUj.md deleted file mode 100644 index 459dc76..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DJD80wGMhMSkSPSi3DUj.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -due: 2022-11-04 -published: false -weight: 11112223333 -status: Backlog -startDate: 2022-12-30 -endDate: 2023-01-22 ---- diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DgBixPiD7SxpUIwdsY0.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DgBixPiD7SxpUIwdsY0.md deleted file mode 100644 index c6564da..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/DgBixPiD7SxpUIwdsY0.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -due: 2022-11-05 -published: false -status: Doing -weight: 111111 -startDate: 2022-12-05 -endDate: 2022-12-06 ---- diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/JnQ1KE1xTMXgl.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/JnQ1KE1xTMXgl.md deleted file mode 100644 index b927f8f..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/JnQ1KE1xTMXgl.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -status: Doing -due: 2022-11-16 -published: false -weight: 311111 -tags: - - note-taking - - pkm -image: https://images.unsplash.com/photo-1501504905252-473c47e087f8?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 -startDate: 2022-12-01 -endDate: 2022-12-02 ---- - -# 7Bqcfz7Ntetb4bauhtqbasnklNmoRs7ddEN diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/Tu2y468L2Wo8VoX.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/Tu2y468L2Wo8VoX.md deleted file mode 100644 index 5ff4b6e..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/Tu2y468L2Wo8VoX.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -due: 2023-02-28 -published: true -status: Doing -weight: 1 -startDate: 2023-01-01 -endDate: 2023-02-01 ---- - -288Es diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/dnOZNZlG1eAdwtt.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/dnOZNZlG1eAdwtt.md deleted file mode 100644 index 6e7091a..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/dnOZNZlG1eAdwtt.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -status: Backlog -due: 2022-11-30 -published: true -tags: - - obsidian -image: https://images.unsplash.com/photo-1471107340929-a87cd0f5b5f3?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 -weight: 11111 -startDate: 2022-11-20 -endDate: 2022-11-30 ---- - -# dhQKJT7xm1umwK3HrvmvjjPxnZ2lyAx84UYrFPfz2K1EOj diff --git a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/eYLPer7EKf5fxtKewx.md b/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/eYLPer7EKf5fxtKewx.md deleted file mode 100644 index 355b87a..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/75sPMEsJudpuR8p5Z9E/eYLPer7EKf5fxtKewx.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -status: Done -due: 2022-11-30 -published: true -weight: 222221111111 -tags: - - note-taking - - obsidian - - fa -image: https://images.unsplash.com/photo-1488190211105-8b0e65b80b4e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=300&q=80 -startDate: 2022-11-01 -endDate: 2022-11-13 ---- - -# S26y2w2Ls81dY9fhsTdNC0gkrqmlReUpL0pgp diff --git a/data/99 - SaonM5kh6cDXoRGKYt/7TpAhJzJesM.txt b/data/99 - SaonM5kh6cDXoRGKYt/7TpAhJzJesM.txt deleted file mode 100644 index 9be6c0f..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/7TpAhJzJesM.txt +++ /dev/null @@ -1,160 +0,0 @@ -Title: - _**BRICK & STEEL**_ - _**FULL RETIRED**_ -Credit: Written by -Author: Stu Maschwitz -Source: Story by KTM -Draft date: 1/27/2012 -Contact: - Next Level Productions - 1588 Mission Dr. - Solvang, CA 93463 - -EXT. BRICK'S PATIO - DAY - -A gorgeous day. The sun is shining. But BRICK BRADDOCK, retired police detective, is sitting quietly, contemplating -- something. - -The SCREEN DOOR slides open and DICK STEEL, his former partner and fellow retiree, emerges with two cold beers. - -STEEL (O.S.) -Beer's ready! - -BRICK -Are they cold? - -STEEL (O.S.) -Does a bear crap in the woods? - -Steel sits. They laugh at the dumb joke. - -STEEL -(beer raised) -To retirement. - -BRICK -To retirement. - -They drink long and well from the beers. - -And then there's a long beat. -Longer than is funny. -Long enough to be depressing. - -The men look at each other. - -STEEL -Screw retirement. - -BRICK ^ -Screw retirement. - -SMASH CUT TO: - -INT. TRAILER HOME - DAY - -This is the home of THE BOY BAND, AKA DAN and JACK. They too are drinking beer, and counting the take from their last smash-and-grab. Money, drugs, and ridiculous props are strewn about the table. - - JACK - (in Vietnamese, subtitled) - *Did you know Brick and Steel are retired?* - - DAN - Then let's retire them. - _Permanently_. - -Jack begins to argue vociferously in Vietnamese (?), But mercifully we... - - CUT TO: - -EXT. BRICK'S POOL - DAY - -Steel, in the middle of a heated phone call: - -STEEL -They're coming out of the woodwork! -(pause) -No, everybody we've put away! -(pause) -Point Blank Sniper? - -.SNIPER SCOPE POV - -From what seems like only INCHES AWAY. _Steel's face FILLS the *Leupold Mark 4* scope_. - -STEEL -The man's a myth! - -Steel turns and looks straight into the cross-hairs. - -STEEL -(oh crap) -Hello... - -CUT TO: - -.OPENING TITLES - -> BRICK BRADDOCK < -> & DICK STEEL IN < - -> BRICK & STEEL < -> FULL RETIRED < - -SMASH CUT TO: - -EXT. WOODEN SHACK - DAY - -COGNITO, the criminal mastermind, is SLAMMED against the wall. - -COGNITO -Woah woah woah, Brick and Steel! - -Sure enough, it's Brick and Steel, roughing up their favorite usual suspect. - -COGNITO -What is it you want with me, DICK? - -Steel SMACKS him. - -STEEL -Who's coming after us? - -COGNITO -Everyone's coming after you mate! Scorpio, The Boy Band, Sparrow, Point Blank Sniper... - -As he rattles off the long list, Brick and Steel share a look. This is going to be BAD. - -CUT TO: - -INT. GARAGE - DAY - -BRICK and STEEL get into Mom's PORSCHE, Steel at the wheel. They pause for a beat, the gravity of the situation catching up with them. - -BRICK -This is everybody we've ever put away. - -STEEL -(starting the engine) -So much for retirement! - -They speed off. To destiny! - -CUT TO: - -EXT. PALATIAL MANSION - DAY - -An EXTREMELY HANDSOME MAN drinks a beer. Shirtless, unfortunately. - -His minion approaches offscreen: - -MINION -We found Brick and Steel! - -HANDSOME MAN -I want them dead. DEAD! - -Beer flies. - -> BURN TO PINK. - -> THE END < diff --git a/data/99 - SaonM5kh6cDXoRGKYt/94GRdRHWQL6FgMRxr/G51jpIQIEu.md b/data/99 - SaonM5kh6cDXoRGKYt/94GRdRHWQL6FgMRxr/G51jpIQIEu.md deleted file mode 100644 index 6777091..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/94GRdRHWQL6FgMRxr/G51jpIQIEu.md +++ /dev/null @@ -1,81 +0,0 @@ -X55Qkd5Is - -- [ ] w0hQ - - [ ] Rmi5mfD - - [ ] GT - - [ ] 9H4 - - [ ] Y -- [ ] idcVQQK0k - ULVhK - - -## OsrTXe3CL7Y - -- [ ] MluZT - - [ ] i - - [ ] 4 - - [ ] N - - [ ] M -- [ ] sm - - [ ] H - - [ ] 1 - - [ ] 8 - - [ ] M -- [ ] ry - - [ ] o - - [ ] c - - [ ] u - - [ ] S -- [ ] PY - - [ ] A1D -- [ ] fW - - - [ ] 7 - *hF8FPQYPAx5P80yzvUHHaHa1pLhaX94xvPP80r80Gga* - - [ ] 2 - *xx13WoGe9JzhADfX0rAUauO0KhAJ2Ha3q* - - [ ] 6 - *S6BbUGSHBEQ3W08CrggoqhUtSVxHqSpF8* - - [ ] 6 - *hHRae3mpxZcVyKNwiQM0K1JCFgRJ* - - [ ] P - *shzCBx7dqq46o18ugVBHht6RAYqxbFZsgKW* - - [ ] O - *1lZt7jdc46ILIgXPkjfVU0dA* - - [ ] G - *m5pp8cVOF2vcwWTwIoRQKM9mH2sq8Pm* - - [ ] 7 - *vLj7YExFhA3zHbD19t4xR* -- [ ] eu - *IQa9Hj8iRDlW1n3F* -- [ ] IS - *KCUWl0l3OXxH172xEvMgo5* -- [ ] 6j - *b0UXLpbRR8FU0vA7cxt4qQmek* -- [ ] MY - -## tFIfQ1E3X9sf - -- [ ] j1ynKWrjnQS - - [ ] Z0 - - [ ] bQ - - [ ] 9b - - [ ] ek - - [ ] MU - - [ ] JM - - [ ] Yd - - [ ] BB - - [ ] si - - [ ] MkL -- [ ] bB65UD -- [ ] yy4zLksg7YxR -- [ ] HhZTV5 -- [ ] esOuYHvvgOSFlhCPwDTWIAmckXLh -- [ ] YP5bhW -- [ ] HYu0 -- [ ] i5DeQNNkV6A -- [ ] PEYsTr -- [ ] Y1JFNmb5tG -- [ ] TaKNHlw - -mLUb diff --git a/data/99 - SaonM5kh6cDXoRGKYt/98YzphdLkABID.md b/data/99 - SaonM5kh6cDXoRGKYt/98YzphdLkABID.md deleted file mode 100644 index cb851da..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/98YzphdLkABID.md +++ /dev/null @@ -1,3 +0,0 @@ -# [[8tN16svu5B6|bn6HufXyKH84CvgHsC7]] - -NDaR5FMnk4gMfKwK4DORv5 diff --git a/data/99 - SaonM5kh6cDXoRGKYt/NpWFHoBPZYIgwO1s173/PpkJkftqz7A6h9gyH.md b/data/99 - SaonM5kh6cDXoRGKYt/NpWFHoBPZYIgwO1s173/PpkJkftqz7A6h9gyH.md deleted file mode 100644 index 82a6679..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/NpWFHoBPZYIgwO1s173/PpkJkftqz7A6h9gyH.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -frontmatter: "hi" -backmatter: "bye" ---- - -iph6A9X8s diff --git a/data/99 - SaonM5kh6cDXoRGKYt/VBYBbGqKJb9qSlNzh/6Moewe7lJWw.md b/data/99 - SaonM5kh6cDXoRGKYt/VBYBbGqKJb9qSlNzh/6Moewe7lJWw.md deleted file mode 100644 index a279599..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/VBYBbGqKJb9qSlNzh/6Moewe7lJWw.md +++ /dev/null @@ -1,11 +0,0 @@ -c7rPJ - -- [ ] 1XHMfTHEnZ - ---- - -A4DuOul78mZQ7lV9o - - - -H4QNcXgtnZ39E4LDD49ukCyhRvfxAvaXXOJHH5PA7MN8K diff --git a/data/99 - SaonM5kh6cDXoRGKYt/YBui6sXtM215qkZ95r.md b/data/99 - SaonM5kh6cDXoRGKYt/YBui6sXtM215qkZ95r.md deleted file mode 100644 index 214633a..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/YBui6sXtM215qkZ95r.md +++ /dev/null @@ -1,19 +0,0 @@ -# M40utI0gpr4bMMNDPa[9](https://a.Very.Long.Url) - -[[00 - TuNksDPDp3ZmucsFwBH|]] - -- [ ] qrkte -- [ ] QRcBWJq - - [ ] wvmzel[inline-field:: holy shit!] [another:: no] - - 2g2ZCV4JpGJg8REeu - -```datacorejsx -return function View() { -const iu = dc.useIndexUpdates(); - const q = dc.useMemo(() => dc.useQuery(`@task and $file = "${dc.path}" and $parentLine < 0`), [iu]); - return <> - - {dc.LinkEmbed({inline: false, link: dc.parseLink("[[current]]")})} - -} -``` diff --git a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/QEDvBsfy0P490vPXQX.fountain b/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/QEDvBsfy0P490vPXQX.fountain deleted file mode 100644 index 49bf10b..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/QEDvBsfy0P490vPXQX.fountain +++ /dev/null @@ -1,159 +0,0 @@ -Title: _**BRICK & STEEL**_ - _**FULL RETIRED**_ -Credit: Written by -Author: Stu Maschwitz -Source: Story by KTM -Draft date: 1/27/2012 -Contact: - Next Level Productions - 1588 Mission Dr. - Solvang, CA 93463 - -EXT. BRICK'S PATIO - DAY - -A gorgeous day. The sun is shining. But BRICK BRADDOCK, retired police detective, is sitting quietly, contemplating -- something. - -The SCREEN DOOR slides open and DICK STEEL, his former partner and fellow retiree, emerges with two cold beers. - -STEEL (O.S.) -Beer's ready! - -BRICK -Are they cold? - -STEEL (O.S.) -Does a bear crap in the woods? - -Steel sits. They laugh at the dumb joke. - -STEEL -(beer raised) -To retirement. - -BRICK -To retirement. - -They drink long and well from the beers. -And then there's a long beat. -Longer than is funny. -Long enough to be depressing. - -The men look at each other. - -STEEL -Screw retirement. - -BRICK ^ -Screw retirement. - -SMASH CUT TO: - -INT. TRAILER HOME - DAY - -This is the home of THE BOY BAND, AKA DAN and JACK. They too are drinking beer, and counting the take from their last smash-and-grab. Money, drugs, and ridiculous props are strewn about the table. - - JACK -(in Vietnamese, subtitled) -*Did you know Brick and Steel are retired?* - - DAN - Then let's retire them. - _Permanently_. - -Jack begins to argue vociferously in Vietnamese (?), But mercifully we... - - CUT TO: - -EXT. BRICK'S POOL - DAY - -Steel, in the middle of a heated phone call: - -STEEL -They're coming out of the woodwork! -(pause) - -No, everybody we've put away! -(pause) -Point Blank Sniper? - -.SNIPER SCOPE POV - -From what seems like only INCHES AWAY. _Steel's face FILLS the *Leupold Mark 4* scope_. - -STEEL -The man's a myth! - -Steel turns and looks straight into the cross-hairs. - -STEEL -(oh crap) -Hello... - -CUT TO: - -.OPENING TITLES - -> BRICK BRADDOCK < -> & DICK STEEL IN < - -> BRICK & STEEL < -> FULL RETIRED < - -SMASH CUT TO: - -EXT. WOODEN SHACK - DAY - -COGNITO, the criminal mastermind, is SLAMMED against the wall. - -COGNITO -Woah woah woah, Brick and Steel! - -Sure enough, it's Brick and Steel, roughing up their favorite usual suspect. - -COGNITO -What is it you want with me, DICK? - -Steel SMACKS him. - -STEEL -Who's coming after us? - -COGNITO -Everyone's coming after you mate! Scorpio, The Boy Band, Sparrow, Point Blank Sniper... - -As he rattles off the long list, Brick and Steel share a look. This is going to be BAD. - -CUT TO: - -INT. GARAGE - DAY - -BRICK and STEEL get into Mom's PORSCHE, Steel at the wheel. They pause for a beat, the gravity of the situation catching up with them. - -BRICK -This is everybody we've ever put away. - -STEEL -(starting the engine) -So much for retirement! - -They speed off. To destiny! - -CUT TO: - -EXT. PALATIAL MANSION - DAY - -An EXTREMELY HANDSOME MAN drinks a beer. Shirtless, unfortunately. - -His minion approaches offscreen: - -MINION -We found Brick and Steel! - -HANDSOME MAN -I want them dead. DEAD! - -Beer flies. - -> BURN TO PINK. - -> THE END < diff --git a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/RZIHzWpnRHk.fountain b/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/RZIHzWpnRHk.fountain deleted file mode 100644 index 479fe07..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/RZIHzWpnRHk.fountain +++ /dev/null @@ -1,180 +0,0 @@ -Title: Out of Phase -Author: The Tablet ❀ -Source: a reanimation/reinterpretation of Diamond Head's Out of Phase music video -Copyright: *2022* ---- - -EXT. castle across the lake #1-1# -= establishing shot - -~You never listen in to what they know - - -FADE TO: - -EXT. behind the gates #1-2# -~they only play the songs you've always known - -merchants and guards mill around. Brian hurriedly weaves his way around the people to the front of the shot. he has the “magical box of rock n roll” tucked under his arm. - -INT. main castle room #1-3# -~can't replace the roll of ‘69 - -[[3/4, facing Sean]] - -Sean is visibly bored and disinterested: - -• he's leaning forward on the table with his elbow - • head propped up on his hand -• his eyes are drooping closed - -Sean's eyes roam right - - -- then left. - -~as you are — - -he fully turns his head, upon seeing Brian amongst the crowd. - -his cheeks turn pink. - -JUMP CUT TO: - -INT. just past the castle doors #1-4# - -[[3/4, facing Brian]] - -~— and always were in love that time - - -his eyes catch Sean staring, and he pauses. - -he turns to Sean and smiles. - -JUMP CUT TO: - -[[3/4, facing Sean]] - -Sean looks away and blushes even redder - -JUMP CUT TO: - -[[3/4, facing Brian]] - -Brian smirks devilishly. - - -he turns his head forward and approaches the table with a slight swagger. - - -JUMP CUT TO: - -[[3/4, facing the king]] - -~You're unsure of the marriage vow - -the king looks up from a scroll and cocks his brow. -at the top of the scroll is a heading that says "PROCLAMATION". - - -JUMP CUT TO: - -[[3/4, facing Brian]] - -~Lived it once and in it hide you now - -Brian is now in front of the table, facing the king. - -= the king is a shadow (something something composition) - -Brian places the box on the table - - -> MOTION BLUR (↑) - -~the morning ash, the fire of ‘59 - -Brian animatedly explains what's in the box, gesticulating especially with his hands. - -= he exudes an aura of confidence — show that in body language! - - -> MOTION BLUR (↓) - -close up of box... - -~Will remain with you, - - -Brian opens the box - - -~In hope for better times... - - -INT. MAGIC-SCAPE #2-1# - -~ (out of phase) -~ will you always be! - -=== - -= ...bridge... - - -[[snare hit]] - -~ looking around me - - - - - - - -> MOTION BLUR (↑) - - -INT. main castle room #3-1# -[[snare hit]] - -~ you're not the only one - -the king slams the box shut. -his face is contorted in a disgusted/angry grimace. - -THE KING -(soundlessly) -_*GUARDS!*_ - -JUMP CUT TO: - - -[[snare hit]] - -~ looking for something old - -guards close in around Brian -Brian turns around partially - - -[[snare hit]] - -~ looking for something done - -JUMP CUT TO: - -[[3/4 low-ish, facing Brian]] - -Brian whips out his sword - -JUMP CUT TO: - -[[side shot]] - -~out of phase, -~out of phase, -~out of phase, -~out of phase... - -## fight scene. \ No newline at end of file diff --git a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/ZgCLTVxs0WqO5uKXh.fountain b/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/ZgCLTVxs0WqO5uKXh.fountain deleted file mode 100644 index 0f6712f..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/ZgCLTVxs0WqO5uKXh.fountain +++ /dev/null @@ -1,4638 +0,0 @@ -Title: Big Fish -Credit: written by -Author: John August -Source: based on the novel by Daniel Wallace -Notes: - FINAL PRODUCTION DRAFT - includes post-production dialogue - and omitted scenes -Copyright: (c) 2003 Columbia Pictures - -This is a Southern story, full of lies and fabrications, but truer for their inclusion. - -==== - -**FADE IN:** - -A RIVER. - -We're underwater, watching a fat catfish swim along. - -This is The Beast. - -EDWARD (V.O.) -There are some fish that cannot be caught. It's not that they're faster or stronger than other fish. They're just touched by something extra. Call it luck. Call it grace. One such fish was The Beast. - -The Beast's journey takes it past a dangling fish hook, baited with worms. Past a tempting lure, sparkling in the sun. Past a swiping bear claw. The Beast isn't worried. - -EDWARD (V.O.)(CONT'D) -By the time I was born, he was already a legend. He'd taken more hundred-dollar lures than any fish in Alabama. Some said that fish was the ghost of Henry Walls, a thief who'd drowned in that river 60 years before. Others claimed he was a lesser dinosaur, left over from the Cretaceous period. - -INT. WILL'S BEDROOM - NIGHT (1973) - -WILL BLOOM, AGE 3, listens wide-eyed as his father EDWARD BLOOM, 40's and handsome, tells the story. In every gesture, Edward is bigger than life, describing each detail with absolute conviction. - -EDWARD -I didn't put any stock into such speculation or superstition. All I knew was I'd been trying to catch that fish since I was a boy no bigger than you. -(closer) -And on the day you were born, that was the day I finally caught him. - -EXT. CAMPFIRE - NIGHT (1977) - -A few years later, and Will sits with the other INDIAN GUIDES as Edward continues telling the story to the tribe. - -EDWARD -Now, I'd tried everything on it: worms, lures, peanut butter, peanut butter-and-cheese. But on that day I had a revelation: if that fish was the ghost of a thief, the usual bait wasn't going to work. I would have to use something he truly desired. - -Edward points to his wedding band, glinting in the firelight. - -LITTLE BRAVE -(confused) -Your finger? - -Edward slips his ring off. - -EDWARD -Gold. - -While the other boys are rapt with attention, Will looks bored. He's heard this story before. - -EDWARD -I tied my ring to the strongest line they made -- strong enough to hold up a bridge, they said, if just for a few minutes -- and I cast upriver. - -INT. BLOOM FRONT HALL - NIGHT (1987) - -Edward is chatting up Will's pretty DATE to the homecoming dance. She is enjoying the story, but also the force of Edward's charisma. He's hypnotizing. - - -EDWARD (CONT'D) -The Beast jumped up and grabbed it before the ring even hit the water. And just as fast, he snapped clean through that line. - -WILL, now 17 with braces, is fuming and ready to leave. His mother SANDRA -- from whom he gets his good looks and practicality -- stands with him at the door. - -EDWARD -You can see my predicament. My wedding ring, the symbol of fidelity to my wife, soon to be the mother of my child, was now lost in the gut of an uncatchable fish. - -ON WILL AND SANDRA - - -WILL -(low but insistent) -Make him stop. - -His mother pats him sympathetically, then adjusts his tie. - - -WILL'S DATE -What did you do? - -EDWARD -I followed that fish up-river and down-river for three days and three nights, until I finally had him boxed in. - -Will regards his father with exasperated contempt. - -EDWARD -With these two hands, I reached in and snatched that fish out of the river. I looked him straight in the eye. And I made a remarkable discovery. - -INT. TINY PARIS RESTAURANT (LA RUE 14°) - NIGHT (1998) - -WILL, now 28, sits with his gorgeous bride JOSEPHINE. This is their wedding reception, crowded with their friends and family. They should be joyful, but Will is furious. - -Edward has the floor, ostensibly for a toast. The room is cozy and drunk. - -EDWARD -This fish, the Beast. The whole time we were calling it a him, when in fact it was a her. It was fat with eggs, and was going to lay them any day. - -Over near the doorway, we spot Sandra, just returned from the restrooms. She looks gorgeous. She couldn't be any happier if this were her own wedding. - -EDWARD -Now, I was in a situation. I could gut that fish and get my ring back, but doing so I would be killing the smartest catfish in the Ashton River, soon to be mother of a hundred others. - -Will can't take any more. Josephine tries to hold him back, but he gets up and leaves. Edward doesn't even notice. - -EDWARD (CONT'D) -Did I want to deprive my soon-to-be-born son the chance to catch a fish like this of his own? This lady fish and I, well, we had the same destiny. - -As he leaves, Will mutters in perfect unison with his father-- - -EDWARD AND WILL -We were part of the same equation. - -Will reaches the door, where his mother intercepts him. - -SANDRA -Honey, it's still your night. - -Will can't articulate his anger. He just leaves. - -EDWARD -Now, you may well ask, since this lady fish wasn't the ghost of a thief, why did it strike so quick on gold when nothing else would attract it? -(closer; he holds up his ring) -That was the lesson I learned that day, the day my son was born. - -He focuses his words on Sandra. This story is -- and has always been -- about her more than anyone. - -EDWARD -Sometimes, the only way to catch an uncatchable woman is to offer her a wedding ring. - -A LAUGH from the crowd. - -Edward motions for Sandra to get up here with him. As she crosses, we can see that thirty years of marriage has not lessened their affection for each other. - -As they kiss, Edward tweaks her chin a special little way. The crowd APPLAUDS. - -Edward toasts the happy couple. Josephine covers well for her absent husband, a smile as warm as summer. - -Edward downs his champagne in a gulp. - -EXT. OUTSIDE LA RUE 14° - NIGHT - -We come into the middle of an argument on the sidewalk. Occasional PASSERSBY take notice, especially as it gets more heated. Both men are a little drunk. - -EDWARD -What, a father's not allowed to talk about his son? - -WILL -(disbelieving) -I am a footnote in that story. I am the context for your great adventure. Which never happened! Incidentally! You were selling novelty products in Wichita the day I was born. - -EDWARD -(shaking his head) -Jesus Christ. - -WILL -Friend of yours? Did you help him out of a bind? - -EDWARD -Come on, Will. Everyone likes that story. - -WILL -No Dad, they don't. _I_ do not like the story. Not anymore, not after a _thousand_ _times_. I know all the punchlines, Dad. I can tell them as well as you can. -(closer) -For one night, one night in your entire life, the universe does not revolve around Edward Bloom. It revolves around me and my wife. How can you not understand that? - -A long beat, then... - -EDWARD -(low) -Sorry to embarrass you. - -Will won't let him get the last word. - -WILL -You're embarrassing yourself, Dad. You just don't see it. - -ANGLE ON Edward. Fine. A hand to wave, enough of you. - -He walks away. - -ANGLE ON Will, still fuming with righteous anger. It's then we FREEZE FRAME. - -WILL (V.O.)(CONT'D) -After that night, I didn't speak to my father again for three years. - -INT. A.P. NEWSROOM (PARIS) - DAY - -A typically busy day. On hold with the phone cradled under an ear, Will sorts through a bundle of mail dropped on his desk. - -WILL (ON PHONE) -(without pauses) -William Bloom with the Associated Press if I could just... - -He's put back on hold. Returning to the mail, he finds a hand-addressed envelope. Rips it open. - -WILL (V.O.)(CONT'D) -We communicated indirectly I guess. In her letters and Christmas cards, my mother would write for both of them. - -INT. BLOOM HOUSE KITCHEN - DAY - -At the table, Sandra talks on the phone while Edward fixes a sandwich. - -WILL (V.O.) -When I'd call, Mom would say that Dad was out driving. Or swimming in the pool. - -Edward takes a seat, starting to eat his sandwich. - -WILL (V.O.) (CONT'D) -True to form, we never talked about our not talking. - -INT. BLOOM HOUSE MASTER BEDROOM - NIGHT - -Sandra stands by the window, watching as... - -EXT. BLOOM BACK YARD - NIGHT [CONTINUOUS] - -Edward swims laps in the family pool. He's born to the water. - -WILL (V.O.) -The truth is, I didn't see anything of myself in my father, and I don't think he saw anything of himself in me. We were like strangers who knew each other very well. - -EXT. RIVER - DAY - -Edward stares intently into the water, a lion in wait. - -WILL (V.O.) -In telling the story of my father's life, it's impossible to separate the fact from the fiction, the man from the myth. The best I can do is to tell it the way he told me. - -We LOOK DOWN at the river, where Edward's reflection is caught in the dark water. As the water ripples past, something changes. - -Sure enough, as we LOOK UP again, it's a younger EDWARD BLOOM, 20's, staring into the water. He's not just handsome, not just charming. It's as if all the forces of the natural world had conspired to create him. - -WILL (V.O.) (CONT'D) -It doesn't always make sense, and most of it never happened. - -Suddenly, this Edward thrusts both hands into the water, grabbing hold of - -THE BEAST. - -He brings the catfish up to his face. Looks it right in the eye. A beat, then the Beast spits out Edward's gold ring. - -WILL (V.O.) (CONT'D) -But that's what kind of story this is. - -Smiling, Edward takes the ring, then throws the Beast back into the water with a splash. - -TITLE OVER: - -> _BIG FISH_ < - -INT. HOSPITAL ROOM - DAY - -Young Dr. Bennett stands between the Wife's legs. She's flustered and sweating, but the doctor has a comforting bedside manner... - -YOUNG DR. BENNETT -Now, Mrs. Bloom, I'll need you to give me one good push. On three. One... - -Suddenly, we hear a POP as a slimy mass of human being rockets into the doctor's unprepared hands. Bennett tries to hold tight, but the infant is slippery like a fish. It shoots up into air. - -The NURSES and the Husband try to grab the baby, but no one can hold it. As the newborn sails upward TOWARDS CAMERA, we can see a GIGGLING SMILE on its face. - -As it falls, the newborn knocks over a tray, which provides it a ramp to slide right out of the room. Everyone races after it. - -INT. HOSPITAL HALLWAY - DAY - -Bursting through the doors -- - -YOUNG DR. BENNETT -Grab that baby! - -A NURSE finally scoops up the slippery baby. Everyone lets out a collective sigh of relief. - -WILL (V.O.) -My father's birth would set the pace for his unlikely life. No longer than most men's, but larger. And as strange as his stories got, the endings were always the most surprising of all. - -INT. HALF-DARK PARIS APARTMENT - (PRESENT) DAY - -Over the sound of rain, a phone RINGS on a chair. By the tone of the ring, we know we're not in the U.S. -- it has that insistent European sound. - -As it keeps RINGING, we look to see the apartment is mostly empty, just a few half-unpacked boxes. A cradle is still in its carton. - -KEYS in the lock. LAUGHTER in the hallway. The door swings open to reveal a drenched Will (29) carrying four sacks of groceries, the bottoms collapsing from the rain. His wife Josephine (28) pushes past him to get the phone. - -JOSEPHINE -Allo oui? - -Will begins stripping out of his wet clothes, each layer unleashing a new drizzle. He plays it up, trying to get a reaction out of Josephine. - -JOSEPHINE (CONT'D) -(on phone) -Yes, he's here. - -She hands the phone to Will, concerned. - -JOSEPHINE (CONT'D) -It's your mother. - -Half-stripped, Will takes the phone. This won't be good news. - -WILL -(on phone) -Hi. Uh-huh. Uh-huh. - -As Josephine takes off her rain coat, we see she is very, very pregnant. She listens carefully to Will's side of the conversation, trying to gauge how bad the news is. - -WILL (CONT'D) -What does Dr. Bennett say? Okay. No, sure, let me talk to him. I'll wait. - -He covers the mouthpiece. Looks over to Josephine. - -JOSEPHINE -It's bad. - -WILL -It's more than they thought. They're going to stop chemo. - -JOSEPHINE -You need to go. - -WILL -Probably tonight. - -A beat. - -JOSEPHINE -I'm going with you. - -WILL -You don't have to. - -JOSEPHINE -(a simple fact) -I'm going with you. - -INT. AIR FRANCE 747 - NIGHT - -As the plane continues boarding, a STEWARDESS recites the welcome spiel in French. Will has a window seat in coach. Josephine sits beside him, putting on hand lotion. - -Taking his hands, she rubs the excess into him. There's an effortless intimacy between them. She can pinpoint what he's feeling before he can. - -INT. 747 / FLYING - NIGHT - -Hours later, and the lights are dimmed. Most of the PASSENGERS are asleep, including Josephine. Her head is propped against Will's shoulder, her hands tucked under her belly. - -Will watches her sleep, brushing back her hair. A beat, then he notices a BORED BOY in the next row over. - -Off the glow of the reading light, the boy is using his hands to cast shadows on the seat back. The kid is pretty good, making a convincing bird, a passable monkey, and finally a dog. - -We PUSH IN on the silhouettes. - -EDWARD (O.S., PRELAP) -So which one's it gonna be? The Monkey in the Barn, the Dog in the Road? - -Focusing on the final shadow, we... - -MATCH CUT TO: - -INT. BLOOM HOUSE - NIGHT - -...come to find Edward making the shapes. - -Will (6) sits in his pajamas on the floor next to him. The endtable lamp lies between them, its shade off to cast big shadows on the wall. - -WILL -The one about the witch. - -EDWARD -Your mom says I can't tell you that one anymore. You get nightmares. - -WILL -I'm not scared. - -Edward looks around for a beat, seeing if his wife is in earshot. He then leans in, complicitous. - -EDWARD -Neither was I. At first. - -Will smiles, excited to hear the forbidden story. - -EDWARD (CONT'D) -This all happened in the swamp outside of Ashton. Kids weren't supposed to go out in the swamp, on account of the snakes and spiders and quicksand that would swallow you up before you could even scream. But there were five of us out there that night: Me, Ruthie, Wilbur Freely, and the Price Brothers, Don and Zacky. - -Edward holds up his hand, counting the names on his fingers. - -EDWARD (CONT'D) -Not a one of us knew what was in store. - -As his hand moves past the light, we - -COME TO: - -A flashlight SWEEPS past. We are... - -EXT. FIELD AT THE SWAMP EDGE - NIGHT - -The night is WHIRRING and BREATHING, alive. The moon hangs low, casting long shadows. - -Five kids walk past in silhouette. Four have flashlights on. The fifth keeps tripping, crashing into YOUNG EDWARD (10). - -EDWARD -Zacky, turn your flashlight on! - -ZACKY -I don't got any batteries! - -Red-headed ZACKY PRICE is 10. His brother DON PRICE is 12, and a lot bigger than the others. - -DON PRICE -Then why'd you bring it? - -ZACKY -I don't want to be in the swamp with a witch and no flashlight. - -WILBUR FREELY, also 10, is the black asthmatic son of a sharecropper. Redheaded RUTHIE MACKLIN, 8, is happy just to be there. - -EDWARD -Is it true she got a glass eye? - -WILBUR FREELY -I heard she got it from Gypsies. - -EDWARD -What's a Gypsy? - -ZACKY -Your momma's a Gypsy. - -DON PRICE -Your momma's a bitch. - -RUTHIE -You shouldn't swear. There's ladies present. - -DON PRICE -Shit. - -ZACKY -Damn. - -WILBUR FREELY -Screw. - -EDWARD -(whispering) -Turn off your flashlights! She'll see 'em. - -MOVING UP behind the kids, we find ourselves at the gates of... - -EXT. A CREEPY OLD HOUSE - NIGHT - -ADULT EDWARD (V.O.) -Now, it's common knowledge that most towns of a certain size have a witch, if only to eat misbehaving children and the occasional puppy who wanders into her yard. Witches use those bones to cast spells and curses that make the land infertile. - -We PULL BACK, and BACK, revealing more of the Gothically creepy house: its broken windows, strangling vines, and eerie gargoyles half-buried in the dirt. Even bats are afraid to fly over it. - -In the moonlight, the house is especially sinister. Who knows what is lurking in the shadows? - -ADULT EDWARD (V.O.)(CONT'D) -Yet of the all the witches in Alabama, there was one who was the most feared. For she had one glass eye, which was said to contain mystical powers. - -We finally come to the kids, staring in through the gate. - -WILBUR FREELY -I hear if you look right at it, you can see how you're gonna die. - -EDWARD -That's bull-s-h-i-t, that is. She's not even a real witch. - -DON PRICE -You're so sure, why don't you go in and get that eye? I heard she keeps it in a box on her nighttable. - -Edward looks back at the spooky house. - -DON PRICE (CONT'D) -Or are you too scared? - -EDWARD -I'll go in right now and get that eye. - -DON PRICE -Then do it. - -EDWARD -Fine, I will. - -DON PRICE -Fine, you do it. - -EDWARD -Fine, I'm doing it. - -He hands Zacky his flashlight, then starts climbing the gate. - -RUTHIE -Edward, don't! - -WILBUR FREELY -She'll make soap out of you! -(to Ruthie) -That's what she does, she makes soap out of people. - -Edward drops down on the far side of the gate. Truth be told, Edward is scared, but he forges ahead anyway. - -Wilbur looks to Ruthie, and they're in complete agreement. They get the hell out of there. Zacky would run too, but Don holds him by the collar. - -EXT. APPROACHING THE HOUSE - -Edward curves around the tall bushes that hide the front door. Anything could jump out of them. - -He steps on the porch. The boards SQUEAL and CREAK, but he continues on. A cat SCREAMS OUT from a broken wicker rocker. Catching his breath, Edward reaches the front door. - -The doorknob is ancient brass, two projections that look like horns. Yet Edward extends his hand, reaching closer and closer before he finally - -RINGS THE DOORBELL. - -Impossibly fast, the door opens, revealing an OLD WOMAN with a patch over her left eye. She looks like she's been dead for years, but too stubborn to lie down. - -EDWARD -(calm and straightforward) -Ma'am, my name is Edward Bloom, and there's some folks'd like to see your eye. - -EXT. BACK AT THE GATE - NIGHT - -Zacky and Don Price wait for Edward, each moment more convinced he's already dead. But suddenly, he's back at the gate. - -DON PRICE -You get the eye? - -EDWARD -I brought it. - -DON PRICE -(dubious) -Let's see it. - -The Old Woman steps out of the shadows behind Edward, flipping up her eye patch. When their flashlight beam hits her left eye, it shines with a hellish glow. - -We RUSH IN on Zacky, who is paralyzed by what he sees. - -CUT TO: - -EXT. FRONT PORCH OF HOUSE - DAY - -An OLD MAN -- Zacky -- stands on a wobbly stepladder, changing a lightbulb. Suddenly, the ladder gives way and he falls. Dead. - -EXT. AT THE GATE - NIGHT - -We RUSH IN on Don Price. - -CUT TO: - -INT. FRATERNITY HOUSE BATHROOM - DAY - -Twenty-year old Don Price falls face-forward on the tile, face mushed in the grout. Very much dead. - -EXT. AT THE GATE - NIGHT - -Don and Zacky both tremble with fear. The latter has tears in his eyes. - -ZACKY -I saw how I was gonna die. I was old, and I fell. - -DON PRICE -I wasn't old at all. - -The brothers suddenly bolt. Still standing next to the Old Woman, Edward smiles. - -EXT. AT THE OLD WOMAN'S DOOR - NIGHT - -Edward helps her back inside. He could leave now, but curiosity gets the better of him. - -EDWARD -I was thinking about death and all. About seeing how you're gonna die. - -The Old Woman turns to him slightly, still not facing him. - -EDWARD (CONT'D) -I mean, on one hand, if dying was all you thought about, it could kind of screw you up. But it could kind of help you, couldn't it? Because you'd know that everything else you can survive. - -The Old Woman smiles a little, a crooked grin of broken teeth. - -EDWARD (CONT'D) -I guess I'm saying, I'd like to know. - -The Old Woman turns leaning her face right in front of his. And on a silent count of one, two, three -- Edward looks into The Eye. - -This time we don't cut. Instead, we HOLD ON Edward as he witnesses his death. He stares transfixed, perplexed and amused. Whatever he sees, it's not as dire as the other boys. His future has something strange in store. - -EDWARD (CONT'D) -Huh. That's how I go? - -The Old Woman nods. Still a little overwhelmed, Edward turns and leaves. - -ADULT EDWARD (V.O.) -From that moment on, I no longer feared death. And for that, I was as good as immortal. - -As Edward leaves, the door swings SHUT on its own. - -MATCH CUT TO: - -INT./EXT. BLOOM HOUSE - (PRESENT) DAY - -The front door opens to reveal Will and Josephine on the porch with their bags. REVERSE to Will's mother Sandra (53), surprised and a little annoyed. - -SANDRA -How did you get here? - -WILL -We swam. The Atlantic, it's not that big really. - -SANDRA -Ruth McHibbon offered to pick you up at the airport. - -WILL -We rented a car. - -SANDRA -(simply) -You didn't need to do that. You just didn't. - -A beat. Starting over... - -WILL -Hi, Mom. - -He leans in and hugs her. She surrenders, squeezing her son tight. Will and his mother are cut from the same cloth -- strong-willed but practical. They've always been close. - -SANDRA -I'm so glad you're here. - -That hug finished, Sandra pushes past her son to her daughter-in-law. Seeing the size of her belly -- - -SANDRA -You shouldn't have flown. But... - -They hug. - -JOSEPHINE -It's good to see you. You look beautiful. - -It's not flattery. It's the truth. - -SANDRA -Thank you. I'll bet you need to -- - -JOSEPHINE -Yes. - -SANDRA -Down the hall on the right. The door sticks. You have to really pull it. - -Josephine squeezes past, a smile to her husband -- be nice. Will heads back to the rental car to retrieve luggage. Sandra follows him. - -Coming down the driveway, we get to see the house for the first time: an older suburban home, three bedrooms, big for the neighborhood, and nicely grown into the lot. KIDS are playing on the street. - -WILL -Is that Dr. Bennett's car? - -SANDRA -He's up with your father. - -Heading back to the house... - -WILL -How is he? - -SANDRA -He's impossible. He won't eat. And because he won't eat, he gets weaker. And because he's weaker, he doesn't want to eat. - -WILL -How much time does he have left? - -SANDRA -You don't talk about those things. Not yet. - -INT. KITCHEN - DAY - -Sandra is pouring iced tea for Will and Josephine. - -DR. JULIUS BENNETT (85) enters from the foyer, still winded from coming down the stairs. He was the town's first Black physician. He's still the town's best physician. - -DR. BENNETT -Will. - -WILL -Dr. Bennett. It's good to see you. -(they shake) -My wife, Josephine. - -DR. BENNETT -A pleasure. - -He judges her belly. - -DR. BENNETT (CONT'D) -You're seven months. - -JOSEPHINE -(impressed) -To the day. - -He leans close to her, whispering in her ear... - -DR. BENNETT -It's a boy. - -She smiles, surprised but not doubting. Will looks over -- what did he say? Josephine shakes her head. - -Back to the main subject... - -SANDRA -You don't think he looks any worse. - -DR. BENNETT -No. I would say he's the same. - -And in the silence that follows, a lot is said. It wasn't the upbeat reply Sandra was hoping for. - -WILL -Can I see him? - -DR. BENNETT -Absolutely. Be good for you to talk to him. - -A moment of awkwardness -- everyone here knows they haven't spoken in years. - -Sandra hands Will a squat can of Ensure from the case on the counter. - -SANDRA -Get him to drink one of these. He won't, but tell him he has to. - -INT. FOYER - DAY - -Coming out from the kitchen, Will slowly climbs the stairs. They CREAK with every step. - -The wall is filled with family photos, happier times. Most of the pictures are of Will, starting when he was an infant and ending at his wedding. As he climbs the stairs, we can see him growing up with every step. - -INT. UPSTAIRS HALLWAY - DAY - -A crack of sunlight spills around the half-open door at the end of the hallway. Will walks towards it, running a hand along the wallpaper. - -Almost at the door, he stops for a beat. Gets his breath. Then goes inside. - -INT. GUEST ROOM - DAY - -Edward Bloom, 61, lies asleep on the bed. Although he's not the vibrant man we've seen before, it's not as bad we feared. The illness has been quick, and left him largely intact. - -There are no I.V.'s, no monitors, nothing. - -Coming up to the bed -- - -WILL -Dad? - -Edward cracks open an eye, a beat before he focuses. He tries to say something, but no words come out. - -He looks over at a pitcher on the nightstand. Will pours him a glass of water, helping him hold it to his parched lips. - -Finished, Edward sets down the glass by himself. A very long, tense beat. Will almost speaks again to fill the silence. - -Finally... - -EDWARD -You -- -(he points) --- are in for a surprise. - -WILL -Am I? - -EDWARD -Having a kid changes everything. I mean, there's the diapers and the burping and the midnight feedings... - -WILL -Did you do any of that? - -EDWARD -No, but I hear it's terrible. Then you spend years trying to corrupt and mislead this child, fill its head with nonsense and still it turns out perfectly fine. - -WILL -You think I'm up for it? - -EDWARD -You learned from the best. - -Will doesn't rise to the challenge. A beat, then he remembers the can of Ensure. Holds it up. Edward recoils. - -WILL -Just drink half the can. I'll tell her you drank the whole thing. Everyone wins. - -A beat, then Edward rolls his eyes. Fine. Will cracks open the can, finding a straw on the nightstand. - -EDWARD -People needn't worry so much. It's not my time yet. This isn't how I go. - -WILL -Really. - -EDWARD -Truly. I saw it in The Eye. - -WILL -The Old Lady by the swamp. - -EDWARD -She was a witch. - -WILL -No, she was old and probably senile. Maybe schizophrenic. - -EDWARD -I saw my death in that eye. And this is not how it happens. - -WILL -So how does it happen? - -EDWARD -Surprise ending. Wouldn't want to ruin it for you. - -Edward slurps down as much of the Ensure as he can stand, then pushes the can away. He swallows with difficulty. - -EDWARD (CONT'D) -There was this panhandler who used to stop me every morning when I came out of this coffee shop near the office. - -WILL -Okay. - -EDWARD -And every day I gave him a quarter. Every day. Then I got sick and was out for a couple of weeks. And when I went back there, you know what he said? - -WILL -What did he say? - -EDWARD -You owe me three-fifty. - -WILL -Really. - -EDWARD -True story. - -A beat. - -WILL -When did you ever work in an office? - -EDWARD -There's a lot you don't know about me. - -WILL -You're right. - -Edward gives a wry smile. He walked into that. - -EDWARD -Your mother was worried we wouldn't talk again. And look at us. We're talking fine. We're storytellers, both of us. I speak mine out, you write yours down. Same thing. - -Will won't commit to Edward's assessment. - -WILL -Dad, I'm hoping we can talk about some things while I'm here. - -EDWARD -You mean, while _I'm_ here. - -WILL -I'd just like to know the true versions of things. Events. Stories. You. - -Edward LAUGHS a little, which becomes a COUGH. The HACKING escalates until another drink of water gets it under control. It's not clear whether any of this was an act to keep from talking. - -EDWARD -Your mother hasn't been keeping up the pool. If you wanted to you could... - -WILL -I will. - -EDWARD -You know where the chemicals are? - -WILL -I used to do it when you were gone, remember? I used to do it a lot. - -He didn't mean for that to sound so pointed. Taking the half-empty Ensure, Will gets up to go. He's at the door when... - -EDWARD -I was never much for being at home, Will. It's too confining. And this, here. Being stuck in bed. Dying is the worst thing that ever happened to me. - -He smiles at his joke. - -WILL -I thought you weren't dying. - -EDWARD -I said this isn't how I go. The last part is much more unusual. Trust me on that. - -INT. UPSTAIRS HALLWAY - DAY - -Shutting the door behind himself, Will drinks the rest of the Ensure himself. Edward was right. It tastes horrible. - -Heading for the stairs, Will walks past an open door. As he leaves frame, we STAY BEHIND to look inside... - -INT. WILL'S BEDROOM - DAY [FLASHBACK] - -...where an eight-year old Will is propped up in bed, his face covered with chicken pox and pink calamine lotion. He's showing Edward how many bumps there are on his arm. - -YOUNG WILL -Dr. Bennett says I'm going to have to be home for a week. - -EDWARD -That's nothing. I once had to stay in bed for three years. - -YOUNG WILL -Did you have chicken pox? - -EDWARD -I wish. - -CUT TO: - -INT. TINY CHURCH - DAY - -Wearing a white shirt and tie, YOUNG EDWARD -- still about 10 -- sings "Down to the River My Lord" along with the CONGREGATION. His voice is high and thin, but he gives it his all. - -Suddenly, his voice CRACKS and DROPS a half-octave. And then another. His friends Wilbur Freeley and Ruthie look over, wondering what's wrong. Embarrassed, Edward just keeps SINGING, trying to follow along with the baritone part. - -He pulls at his collar. Then pulls again, his face getting red. Starting to panic, he loosens his tie. He's starting to undo the collar button when it POPS off by itself. Two more buttons fly off. One hits a CHUBBY WOMAN in the neck. - -ON HIS SHOES - -As we watch, Edward's pant cuffs rise inch by inch -- that's how fast he's growing. - -EDWARD (V.O.) -Truth is, no one quite knew what was wrong. Most times, a person grows up gradually. I found myself in a hurry. - -INT. YOUNG EDWARD'S BEDROOM - DAY - -Young Edward lies in bed, his limbs connected to various pulleys and levers to support his weight. He has a dozen encyclopedias around him, and another dozen on the floor. - -EDWARD (V.O.) -My muscles couldn't keep up with my bones, and my bones couldn't keep up with my body's ambition. So I spent the better part of three years confined to my bed, with the World Book Encyclopedia being my only means of exploration. I had made it all the way to the "G's," hoping to find an answer to my gigantificationism, when I uncovered an article about the common goldfish. - -INSERT: The encyclopedia article, complete with drawings. - -YOUNG EDWARD -(reading) -"Kept in a small bowl, the goldfish will remain small. With more space, the fish can grow double, triple, or quadruple its size." - -Young Edward thinks this through. - -EDWARD (V.O.) -It occurred to me then, that perhaps the reason for my growth was that I was intended for larger things. After all, a giant man can't have an ordinary-sized life. - -EXT. BASEBALL FIELD - DAY - -The CRACK of a bat announces the game-winning home run. The crowd CHEERS the swing, and especially the batter as he rounds the bases. - -Although we've seen him briefly before, this is our first real exposure to GROWN-UP EDWARD, who we'll follow from roughly the ages of 18 to 30. - -EDWARD (V.0.) -As soon as my bones had settled in their adult configuration, I set upon my plan to make a bigger place for myself in Ashton. - -EXT. SCHOOL FIELDS - DAY - -SINGLE SHOTS: Football hero Edward leads his team to victory. On the sidelines, a PRETTY GIRL admits the name of her secret love: - -GIRL -Edward Bloom! - -The other GIRLS SQUEAL in agreement. Don Price looks over, glowers. - -EXT. NEIGHBORHOOD - DAY - -SINGLE SHOT: A lawnmower ROARS along the grass. We LOOK UP to see who's pushing it, but it's not Edward. It's one of his teenage EMPLOYEES. - -Edward is back at the truck, which is painted to read, "Bloom Landscaping." He has workers on every lawn. - -He signs an autograph for an ADMIRING CUB SCOUT. - -INT. BASKETBALL COURT - DAY - -Edward takes an impossible shot at the buzzer from the other end of the court. Naturally, he makes it, winning the game. - -As the crowd goes wild for Edward, Don Price is the only teammate who doesn't mob him. - -EXT. TOWN - DAY - -Edward carries a dog out of a burning house. - -INT. SCIENCE FAIR - DAY - -Edward wins a blue ribbon for his invention, a machine labelled "Perpetual Motion." He and the JUDGE pose for a photograph. A FLASH. - -Pissed, Don Price throws his crappy lima bean plants in the trash. - -INT. HIGH SCHOOL STAGE - DAY - -A dashingly handsome Edward leads the CAST out for a curtain call. He's the star of the show. Off to the side, we see Don Price is the ass-end of a horse costume. - -Edward soaks in his applause, smiling and gracious. - -EXT. GRADUATION STAGE - DAY - -Edward accepts his diploma. The PRINCIPAL hugs him tight. - -EDWARD (V.O.) -I was the biggest thing Ashton had ever seen. Until one day, a stranger arrived. - -EXT. FARM - DAY - -As two FARMERS shake their heads, we REVERSE to a show a massive hole punched through the side of a barn. It's roughly the shape of man, but no human could be that large. - -EXT. SHEEP PEN - DAY - -Two fat ewes look up, a shadow falling across them. They BLEAT in panic as - -TWO OVERSIZED HANDS - -reach in and scoop them up. Their protests continue as they're carried away, one under each arm. We still haven't seen the full stranger. - -EXT. COURT HOUSE - DAY - -A MOB of about 50 have gathered, many of them with shotguns. Amid the crowd we see Don Price. - -SHARECROPPER -He ate an entire cornfield! - -LITTLE GIRL -He ate my dog! - -HOT-BLOODED SHOTGUN TOTER -If you ain't gonna stop him Mayor, we will! - -MAYOR -I won't have mob violence in this town. Now, has someone tried talking to him? - -SOME FARMER -You can't reason with 'im! - -SHEPHARD -He's a monster! - -Agreement from the crowd. And then... - -A VOICE (O.S.) -I'll do it. - -Everyone turns to see who said that. The crowd parts to reveal none other than Edward Bloom. Don Price glowers. - -EDWARD -I'll talk to him. See if I can get him to move on. - -MAYOR -Son, that creature could crush you without trying. - -EDWARD -Trust me, he'll have to try. - -EXT. HILL OUTSIDE ASHTON - DAY - -Edward climbs up the last bit of the steep hillside, reaching the mouth of a cave. Outside, buzzards squabble over the remains of the giant's feast: broken barrels, bones picked clean. - -In his most serious voice, Edward calls out: - -EDWARD -Hello! - -There's no answer. - -EDWARD (CONT'D) -My name is Edward Bloom! I want to talk to you! - -From deep in a cave, a thunderous voice: - -VOICE (O.S.) -GO AWAY! - -The giant's voice has such force, it blows Edward's hair back. - -EDWARD -I'm not going anywhere until you show yourself. - -A beat, then we hear a RUMBLE, like a train coming. Edward braces himself, fists ready for a fight, if that's what it's going to take. - -As the RUMBLE gets louder, the ground starts to shake. Even Edward starts to worry. Just how big is this guy? - -EDWARD (V.O.)(CONT'D) -Armed with the foreknowledge of my own death, I knew the giant couldn't kill me. All the same, I preferred to keep my bones unbroken. - -Edward picks up a stone, ready to play David to Goliath. - -Then suddenly, the giant bursts forth. Hunched over, he slams into a stunned Edward, knocking him halfway down the hill. - -KARL THE GIANT is bigger than any man you've ever seen. Not just tall, but massive. He's completely feral, with a beard to his elbow and skin scratched and blistered. What remains of his clothes are ragged and muddy. God knows what's living in his matted hair. - -Karl leans over Edward, blocking the sun. Edward throws his rock, but it just bounces off. The giant didn't even notice it. - -KARL -Why are you here? - -Edward ponders the best response, settling on... - -EDWARD -So you can eat me. The town decided to send a human sacrifice, and I volunteered. - -Karl's eyes narrow, confused. Edward stands up. - -EDWARD (CONT'D) -My arms are a little stringy, but there's some good eating on my legs. I mean, I'd be tempted to eat them myself. -(beat) -So I guess, just, if you could get it over with quick. Because I'm not much for pain, really. - -Edward closes his eyes, hands at his side, ready to be eaten. Karl just stares at him, not sure what to do. - -After a beat, Edward opens his eyes a tiny bit, just to see what the giant is doing. Relieved to see he's not licking his chops -- - -EDWARD (CONT'D) -Look, I can't go back. I'm a human sacrifice. If I go back, everyone will think I'm a coward. And I'd rather be dinner than a coward. - -Karl sits down with a BOOM, dejected. - -EDWARD (CONT'D) -Here, start with my hand. It'll be an appetizer. - -Reaching up, Edward shoves his hand into Karl's mouth. But the giant spits it back out. - -KARL -I don't want to eat you. I don't want to eat anybody. It's just I get so hungry. I'm too big. - -And that's the sad truth. Karl is less a monster than a freak -- a giant man, but in the end, just a man. - -Edward takes a seat beside him. - -EDWARD -Did you ever think maybe you're not too big? Maybe this town's just too small. I mean, look at it. - -Circling behind them, we look down at Ashton -- a tiny town in a tiny valley. - -EDWARD (CONT'D) -Hardly two stories in the whole place. Now I've heard in real cities, they've got buildings so tall you can't even see the tops of 'em. - -KARL -Really? - -EDWARD -Wouldn't lie to you. And they've got all-you-can-eat buffets. You can eat a lot, can't you? - -KARL -I can. - -EDWARD -So why are you wasting your time in a small town? You're a big man. You should be in the big city. - -Karl smiles, but then it fades. A certain sad suspicion -- - -KARL -You're just trying to get me to leave, aren't you? That's why they sent you here. - -EDWARD -What's your name, Giant? - -KARL -Karl. - -EDWARD -Mine's Edward. And truthfully, I do want you to leave, Karl. But I want to leave with you. -(closer) -You think this town is too small for you, well, it's too small for a man of my ambition. I can't see staying here a day longer. - -KARL -You don't like it? - -EDWARD -I love every square inch of it. But I can feel the edges closing in on me. A man's life can only grow to a certain size in a place like this. -(beat) -So what do you say? Join me? - -Karl thinks a moment. Then -- - -KARL -Okay. - -EDWARD -Okay. - -They shake on it. - -EDWARD (CONT'D) -Now first, we gotta get you ready for the city. - -EXT. RIVER - DAY - -IN A SINGLE SHOT, Karl cuts his hair with hedge clippers, while Edward cuts up a surplus army tent to make him a shirt. - -EXT. MAIN STREET OF ASHTON - DAY - -Spirits buoyed by the high school MARCHING BAND, all the good CITIZENS of Ashton are gathered to see off Edward and Karl. There's a few tears amid the familiar faces. - -MAYOR -(loudly, for the crowd) -Edward Bloom, first son of Ashton, it's with a heavy heart we see you go. But take with you this Key to the City, and know that any time you want to come back, all our doors are open to you. - -Edward ducks a bit so the Mayor can put the key around his neck. The crowd CHEERS. And with that, Edward and Karl start walking, waving as they go. - -Only DON PRICE, smoking on the corner, isn't sad to see Edward go. He crushes his cigarette under his heel. He wishes he could crush Edward. - -Many of the townfolk come onto the street to hug Edward or shake his hand. - -EDWARD (V.O.) -That afternoon as I left Ashton, everyone seemed to have advice. - -VARIOUS TOWNFOLK -Find yourself a nice girl! Don't trust anyone in Kentucky! Watch your pride, Edward Bloom! - -EDWARD (V.O.) -But there was one person whose counsel I held above all others. - -As the crowd parts, he finds himself face to face with - -THE OLD WOMAN. - -The ruckus slows and quiets, as if a strange spell has been cast. She motions for Edward to lean down, so she can whisper something to him. Although we're VERY CLOSE, we can't hear her voice. - -EDWARD (V.O.) (CONT'D) -She said that the biggest fish in the river gets that way by never being caught. - -The advice only succeeds in confusing Edward. - -EDWARD (CONT'D) -(to the Old Woman) -Okay. Thanks. - -Edward and Karl keep walking. The Old Woman shuffles off, somehow knowing her advice will go unheeded. - -KARL -What did she say? - -EDWARD -Beats me. - -EXT. ROAD - DAY - -We TILT UP from the road to reveal Edward and Karl walking out of Ashton. Each wears a backpack with all his earthly possessions. - -EDWARD (V.O.) -There were two roads out of Ashton, a new one which was paved, and an older one that wasn't. People didn't use the old road anymore, and it had developed the reputation of being haunted. - -Edward and Karl come to a bend, where the paved road veers left and an overgrown dirt road runs straight. The old road is blocked with signs and warnings of danger. - -EDWARD (V.O.) (CONT'D) -Since I had no intention of ever returning to Ashton, this seemed as good a time as any to find out what lay down that old road. - -Karl looks at the dirt road, wary. - -KARL -You know anyone's who's taken it? - -EDWARD -That poet, Norther Winslow did. He was going to Paris, France. He must have liked it, because no one ever heard from him again. -(beat) -Tell you what. You take the other way and I'll cut through here. Meet you on the far side. - -A little paranoid... - -KARL -You're not trying to run away? - -EDWARD -Just to be sure, you can take my pack. - -Karl perks up, even though it means more for him to carry. - -EXT. DIRT ROAD - DAY - -The road is overgrown, but not altogether creepy. The sun is still shining, and the birds still CHIRPING. - -Spinning the Key to the City, Edward WHISTLES, because it's a day meant for whistling. - -EXT. FURTHER ALONG - ROUGH PATH - -The road has narrowed to a rough path. Spikes of sunlight break through the thick canopy, catching particles in the air. Still, Edward WHISTLES. - -Coming around a bend, his PITCH DROPS as he sees thick, thorny vines growing across the path. He stops. For the first time, he realizes the birds have stopped singing. The forest is dead quiet. - -He looks back the way he came. It's tempting to go back. It would be easier to go back. But Edward presses on. - -He carefully steps through the thorns. His trouser legs catch on the barbs. We can hear the fabric TEAR. - -FURTHER ALONG - -A scratched and sweaty Edward waves off various STINGING BUGS flying at him, finally whipping off his hat to swat at them. Just then a CAWING crow swoops down and grabs the hat right out of his hands. - -EDWARD -You stupid sonofa... - -He stops his swearing, but grabs a rock and throws it. The stone ricochets off a tree and into a BEE'S NEST. The swarm roars out. - -Edward high-tails it, each step still precarious. - -EXT. THE DARK FOREST - DAY [LATER] - -Edward is bruised, battered and bee-stung. - -A half-broken sign lies in the road. Edward picks it up. Reads it: - -WARNING! - -JUMPING SPIDERS! - -Sure enough, up ahead he sees the path is overgrown with thick cobwebs, heavy from the rain. - -EDWARD (V.O.) -There comes a point where a reasonable man will swallow his pride and admit he's made a terrible mistake. The truth is, I was never a reasonable man. - -Edward tosses the sign and forges ahead, into the spiderwebs. - -EDWARD (CONT'D) -And what I recalled of Sunday School was that the more difficult something became, the more rewarding it was in the end. - -EXT. CLEARING / THE ROAD - DAY - -Edward emerges from the forest, brushing the last cobwebs off and shaking the spiders from his shirt. One is stuck in his sleeve, and he has to dance to get it out. Even then, he still keeps twitching, convinced another one is left behind. - -At his feet, the gravel road has returned, smooth and dusty and comforting. - -Ahead lies a tiny one-street town -- smaller even than Ashton -- with powerlines emerging from the woods to feed it. Dangling from the line above he sees two dozen pairs of shoes, their laces tied together. - -He passes a sign that reads "Welcome To Spectre!" - -EXT. THE TOWN OF SPECTRE - DAY - -It's a main street with stores on each side: Cole's Pharmacy, Talbot's Five and Dime, Al's Country Store. Everything is old, but this isn't a ghost town. In fact, there's a group of about 20 CITIZENS spilling out to see Edward approach. Most are smiling. There are even a few tears of joy. - -What's more, all of these people are barefoot. - -MAN'S VOICE -Friend! - -A forty-year old man named BEAMEN comes out of the seed store to greet Edward. Friendly but a little drunk, he's the closest thing the town has to a mayor. He's carrying a clipboard. - -BEAMEN -Welcome to ya. What's your name? - -EDWARD -Edward Bloom. - -Beamen checks the clipboard. Not finding the name, he flips forward a few pages. Still looking... - -BEAMEN -Bloom like a flower? - -EDWARD -Yes. - -BEAMEN -Oh. Here! Right here. Edward Bloom. We weren't expecting you yet. - -Still confused... - -EDWARD -You were expecting me? - -BEAMEN -Not yet. - -A helpful woman named MILDRED chimes in: - -MILDRED -You must have taken a shortcut. - -EDWARD -I did. It nearly killed me. - -BEAMEN -Mmm-hmm. Life'll do that to you. And truthfully, the long way _is_ easier, but it's longer. - -MILDRED -Much longer. - -BEAMEN -And you're here now, and that's what matters. - -Beamen's daughter JENNY (8) hides behind her father, peering around to look at the handsome stranger. - -EDWARD -What is this place? - -BEAMEN -The town of Spectre. Best kept secret in Alabama. Says here you're from Ashton, right? Last person we had from Ashton was Norther Winslow. - -EDWARD -The poet? What ever happened to him? - -BEAMEN -He's still here. Let me buy you a drink. I'll tell you all about it. Hell, I'll have him tell you. - -EDWARD -No. I've gotta meet somebody. I'm already running late. - -He didn't mean it as a joke, but for some reason, everyone's laughing. - -BEAMEN -Son, I already told you. You're early. - -INT. BEAMEN'S HOUSE - DAY - -Sitting at the kitchen table, Edward takes a second slice of apple pie. He and Beamen are joined by NORTHER WINSLOW (30), who fancies himself a cultured artist, though he's never left the state. - -BEAMEN -Now tell me if that isn't the best pie you ever ate. - -EDWARD -It truly is. - -UNDER THE TABLE - -Young Jenny is stealthily untying the laces on Edward's shoes. - -NORTHER WINSLOW -Everything here tastes better. Even the water is sweet. Never gets too hot, too cold, too humid. At night the wind goes through the trees and you'd swear there was a whole symphony out there, playing just for you. - -Suddenly, Jenny YANKS OFF Edward's shoes. She races for the door. - -EDWARD -Hey! - -He chases after her. - -EXT. TOWN / MAIN STREET - DAY - -As she runs, Jenny ties Edward's laces together. Reaching the edge of town, she tosses the shoes up and around the power line -- a perfect throw. There's no way he's ever getting them down. - -The gathered citizens of Spectre CHEER for Edward, who is confused and overwhelmed. The women hug him. Men shake his hand. - -Still focused on his shoes... - -EDWARD -Wait! I need those! - -NORTHER WINSLOW -There is no softer ground than town. - -MILDRED -That rhymes! - -BEAMEN -He is our poet laureate. - -The townsfolk continue to congratulate Edward... - -EDWARD (V.O.) -Sometimes in a dream, you'll visit places that seem instantly familiar, filled with friends you've never met. - -EXT. UNDER A TREE - DUSK - -Edward sits with Norther Winslow. The fireflies are out. Thousands of them. - -EDWARD (V.O.) -A man might travel his entire life and never find a place so inviting. My journey had scarcely begun, and I had arrived. - -Norther hands him his noteboook. - -NORTHER WINSLOW -I've been working on this poem for 12 years. - -EDWARD -Really. - -NORTHER WINSLOW -There's a lot of expectation. I don't want to disappoint my fans. - -A beat. - -EDWARD -It's only three lines long. - -Norther grabs his notebook back. - -NORTHER WINSLOW -This is why you don't show work in progress. - -EDWARD -Norther, do you ever regret not making it to Paris? - -NORTHER WINSLOW -I can't imagine any place better than here. - -EDWARD -You're a poet. You oughta be able to. And maybe if you'd seen more, you could. - -Norther doesn't answer. Just goes back to his notebook. - -EXT. BY THE RIVER - NIGHT - -By the light of the full moon, Edward soaks his feet in the water, trying to make sense of it all. The Key to the City dangles around his neck. - -He stares at himself in the reflection. He smiles. - -It's then that a WOMAN emerges at the far side of the river. No telling where she came from -- she must have been swimming underwater. We never see her face. - -She stands in the river with her bare back to Edward, squeezing the water out of her golden hair, oblivious to his presence. Edward is breathless. It's the first woman he's seen in her natural state, and he doesn't dare move lest he frighten her away. - -Then he sees the snake. - -It's a cottonmouth, has to be. It leaves a break in the water, its small reptilian head aiming for her flesh. There's no decision to be made. On pure instinct, Edward dives in. He swims as hard as can, - -GRABBING THE SNAKE - -just as it's about to strike. - -The woman dives back underwater, understandably terrified that a man is coming at her. - -EDWARD -No, it's okay! I got it. I got the snake. - -As the splashing subsides, Edward looks at what he holds in his hands. Which isn't a snake at all, but rather a common stick. And a non-threatening one at that. - -While Edward ponders his mistake, he looks around to discover that the Girl in the River is gone. He never even saw her face. - -EDWARD (CONT'D) -Wait! I'm sorry. Hello?! - -Edward keeps expecting her to surface, somewhere, but she never does. He stands alone in the river, wondering what tricks his eyes are playing on him. - -EXT. BY THE RIVER - NIGHT - CONTINUOUS - -A GIRL'S VOICE (O.S.) -There's leeches in there! - -Edward looks to the bank, where young Jenny Hill is watching him. - -EDWARD -Did you see that woman? - -JENNY -What did she look like? - -EDWARD -Well, she...uh... - -JENNY -Was she nekkid? - -Embarrassed to admit it... - -EDWARD -Yeah. - -JENNY -(matter-of-fact) -It's not a woman, it's a fish. No one ever catches her. - -Given the day he's had so far, Edward isn't inclined to follow up on the issue. He starts to wade back to the bank. - -JENNY (CONT'D) -Fish looks diff'rent to diff'rent people. My daddy said it looked like the coon dog he had when he was kid, back from the dead. - -Edward climbs up onto the shore, completely drenched. He pulls up his pant legs to reveal three shiny leeches clinging to his skin. - -EDWARD -Shoot. - -He starts to work pulling them off. - -EXT. PATH BACK TO TOWN - NIGHT - -Edward and Jenny walk back. - -JENNY -How old are you? - -EDWARD -Eighteen. - -JENNY -I'm eight. That means when I'm eighteen, you'll be 28. And when I'm 28, you'll only be 38. - -EDWARD -(a little wary) -You're pretty good at arithmetic. - -JENNY -And when I'm 38, you'll be 48. And that's not much difference at all. - -Eager to get off this subject... - -EDWARD -Sure is a lot now, though, huh? - -EXT. MAIN STREET - NIGHT - -As Edward and Jenny approach Main Street, they find "downtown" has been transformed. Lanterns and streamers hang on cables across the street, and a small stage has been built at one end to hold FIDDLERS. - -The whole town is there in celebration of its newest citizen, Edward Bloom. Before he can protest, two WOMEN have grabbed him by the arms, pulling him in to dance with them. - -The resulting dance number seems both choreographed and complete chaos. From FARMER to BAKER'S WIFE, everyone wants to dance with Edward, who finds himself tossed around like a stick caught in a whirlpool. Still, he's having a blast. - -Jenny grabs both his hands, and they spin wildly. - -Beamen plucks his LAUGHING daughter away to dance with her. Then Mildred cuts in to dance with Edward. It's hard to hear over the MUSIC. - -MILDRED -Jenny thinks you're quite a catch. We all do. - -EDWARD -(not hearing) -What? - -MILDRED -I said you're quite a catch! - -Edward stops dancing. A beat, then he heads for the edge of the crowd. Beamen is there, with Jenny on his shoulders. - -EDWARD -I have to leave. Tonight. - -BEAMEN -Why? - -EDWARD -This town is everything a man could ask for. And if I were to end up here, I'd consider myself lucky. But the fact is, I'm not ready to end up anywhere. - -BEAMEN -No one's ever left. - -JENNY -How are you gonna make it without your shoes? - -EDWARD -I suspect it will hurt a lot. - -And with that, Edward walks down Main Street. The townspeople stop dancing, disbelieving, some shaking their heads. - -Poor Edward Bloom's gone crazy. - -BEAMEN -(calling after him) -You won't find a better place! - -EDWARD -I don't expect to. - -Jenny runs to him. She'd tackle him if she could. - -JENNY -Promise me you'll come back. - -EDWARD -I promise. Someday. When I'm really supposed to. - -It's not good enough, but it will have to do. Edward keeps walking. - -EXT. THE DARK FOREST - NIGHT - -VARIOUS SHOTS: Edward negotiates the thorns in his bare feet. It's horrible. Almost unendurable. - -And then it gets worse. - -The trees ahead are moving. At first, it just seems to be the wind blowing the branches, but as we hear the wood CRACKING and GROANING, there's no mistaking it: they're trying to block him. - -Snake-like WHITE ROOTS shoot out of the ground, grabbing for his ankles. He leaps up, kicking off one tree trunk to grab another one's branches. He swings off, lands and rolls. Now all the trees are moving to block him, their dark shapes towering over him in the flashes of LIGHTNING. - -EDWARD (V.O.) -As difficult as it was to reach Spectre, I was fated to get there eventually. After all, no man can avoid reaching the end of his life. - -As he ducks under branches, the chain holding the Key to the City gets caught. He's almost strangled, but the chain finally breaks. The silver key disappears into the mud. - -Scrambling forward, he looks for a way out. But the trees have encircled him, their spiky crowns bending down to crush him. - -He SCREAMS up at the night, until his breath is gone. - -EDWARD (V.O.) (CONT'D) -And then I realized, this wasn't the end of my life. - -With a sudden calm... - -EDWARD (CONT'D) -(aloud) -This isn't how I die. - -Another lightning FLASH, and suddenly the trees are back where they've always been. Edward is lying shoeless and torn in a muddy puddle, staring up at the rain. And LAUGHING. - -EXT. THE ROAD - DAY - -His bare foot steps onto asphalt. - -A DEEP VOICE -Friend! - -Edward turns to see - -KARL - -to his right, coming down the larger, paved road. - -KARL -What happened to your shoes? - -Edward looks down at his muddy, bloody feet. - -EDWARD -They got ahead of me. - -With that, the men start walking down the larger road. - -CROSSFADE TO: - -INT. DINING ROOM - NIGHT - -Edward and Will sit at opposite ends of the table, with Sandra and Josephine in the middle. Although Edward has a small plate of food in front of him, he hasn't touched it. He's exhausted from the trip downstairs, but determined to maintain the family dinner ritual. - -The other three eat awkwardly, each CLINK and SCRAPE of a knife or fork resonating. Will finally breaks the silence. - -WILL -I don't know if you've seen it, but Josephine has some photos in the most recent Newsweek. - -SANDRA -Really! That's wonderful. - -JOSEPHINE -I spent a week in Morocco for the story. It was incredible. - -SANDRA -We'll have to pick up a copy. - -A beat. As Will scoops out another serving of potatoes, Edward suddenly speaks: - -EDWARD -I don't know if you're aware of this, Josephine, but African parrots, in their native home of the Congo -- they speak only French. - -All three stop to listen. - -JOSEPHINE -(amused) -Really. - -EDWARD -You're lucky to get four words out of them in English. But if you were to walk through the jungle, you'd hear them speaking the most elaborate French. Those parrots talk about everything: politics, movies, fashion -- everything but religion. - -Taking the bait... - -WILL -Why not religion, Dad? - -EDWARD -It's rude to talk about religion. You never know who you're going to offend. - -A beat. - -WILL -Josephine actually went to the Congo last year. - -EDWARD -Oh, so you know. - -INT. GROCERY STORE - NIGHT - -Will shakes a shopping cart free from the pile-up while his mother checks her list. - -AT THE PRODUCE SECTION - -Sandra starts to bag string beans. - -WILL -Mom, would you say you understand Dad? - -SANDRA -Of course. - -WILL -What I mean is, do you really know what's going on in his head? - -SANDRA -Yes. - -WILL -How is that possible? I mean, you try to ask him a question and suddenly it's another one of his stories. -(decidedly) -You can't honestly say you know him. - -SANDRA -Yes, Will, I do. And don't presume things you don't know. - -She's more amused than annoyed, but Will is entering dangerous territory. - -SANDRA (CONT'D) -Would you say you understand Josephine? - -WILL -Yes. But that's a different... - -SANDRA -No it's not. It's exactly the same. Your father and I met, we dated, and we married -- we chose each other -- because we understood each other on some fundamental level. Just the same as you two. - -She moves on to the carrots. - -WILL -Josephine and I have a lot in common. - -SANDRA -Yes, you both think William Bloom is a very smart man. -(beat) -The problem is, you only see me as your mother, and not as someone's wife. And I've been his wife longer than I've been your mother. You can't discount that. - -WILL -True. But I've known him my whole life, and I don't feel like I know him at all. Or ever will. - -With a look, Sandra acknowledges the stakes. - -SANDRA -I know it's not easy. Just remember, he didn't choose to be your father and you didn't choose to be his son. You just ended up together. You could pick numbers out of a dark bag and it'd be just the same. If you ask me, it's a wonder parents and children can stand each other at all. - -WILL -But I understand you, Mom. I always have. - -SANDRA -Well, clearly you don't. But I'm not the mystery you're trying to solve right now. - -INT. AT THE CHECKOUT - NIGHT - -Reaching the CASHIER, Sandra hands over her coupons. Will is approaching with a Newsweek magazine. - -Two checkstands over, an ATTRACTIVE BLONDE WOMAN in her 50's is getting her change. Though she's Sandra's generation, she carries herself like a much younger woman, with blue jeans and sneakers. - -She accidentally makes eye contact with Will as he passes. We HOLD ON the woman, who tracks Will as he reaches Sandra. It's hard to read her reaction: does she recognize him, or just find him attractive? - -Will notices the gaze. The woman turns away. - -Will racks his brain -- does he know this woman? - -SANDRA -Before I forget, your father has papers in the basement I'd like you to go through. I wouldn't know what's important. - -WILL -(distracted) -Mom, do you know who that is? Blonde hair. - -Sandra looks. After a beat, the Blonde Woman turns again, semi-casually. Noticing that both Will and Sandra are looking, she smiles a little before taking her cart to leave. - -SANDRA -(no idea) -Was she one of your teachers? - -WILL -No. But it's weird. She seemed to recognize me. - -SANDRA -(to the cashier) -Do you know who that is? - -The Cashier turns to look. He can only get a profile as the woman leaves. - -CASHIER -Never seen her before. Pretty, though. - -INT. GUEST BEDROOM - NIGHT - -A portable fan quietly WHIRRS in the corner. Turned low, the RADIO on the nightstand is playing a call-in AM sports show, just a wash of background chatter. Edward lies asleep on his back. - -At the window, Josephine quietly lowers the shade. She reaches over Edward to switch off the radio. He stirs from the silence -- he wasn't fully asleep -- and sees Josephine stretched over him. - -EDWARD -(playfully lecherous) -Hello. - -She smiles. - -JOSEPHINE -Hi. How are you feeling? - -EDWARD -I was dreaming. - -JOSEPHINE -What were you dreaming about? - -He tries to recollect, but it's already gone. Josephine motions, is it okay for her to sit on the bed? He nods. - -EDWARD -I don't usually remember unless they're especially portentous. You know what that word means, portentous? - -She shakes her head. - -EDWARD (CONT'D) -Means when you dream about something that's going to happen. -(beat, gathering) -Like one night, I had a dream where this crow came and told me, "Your Aunt is going to die." I was so scared I woke up my parents. They told me it was just a dream, to go back to bed. But the next morning, my Aunt Stacy was dead. - -JOSEPHINE -That's terrible. - -EDWARD -Terrible for her, but think about me, young boy with that kind of power. Wasn't three weeks later that the crow came back to me in a dream and said, "Your Grampa is going to die." Well, I ran right back to my parents. My father said, no, Gramps is fine, but I could see there was trepidation. And true enough, that next morning my Grampa was dead. - -He sits up a bit in bed, his strength returning. - -EDWARD (CONT'D) -For the next couple weeks, I didn't have another dream. Until one night the crow came back and said, "Your Daddy is going to die." -(beat) -Well, I didn't know what to do. But finally I told my father. And he said not to worry, but I could tell he was rattled. That next day, he wasn't himself, always looking around, waiting for something to drop on his head. Because the crow didn't tell how it was going to happen, just those words: your Daddy is going to die. Well, he went into town early and was gone for a long time. And when he finally came back, he looked terrible, like he was waiting for the axe to fall all day. He said to my mother, "Good God. I just had the worst day of my life." -(beat) -"You think _you've_ had a bad day," she said. "This morning the milkman dropped dead on the porch!" - -Josephine smiles, a half-laugh, which gets him smiling too. - -A long beat. Then, deadpan... - -EDWARD (CONT'D) -Because see, my mother was banging the milkman. - -JOSEPHINE -No, I understand. - -EDWARD -He was slipping her a little extra cream. - -She nods, a bit more of a laugh. - -EDWARD (CONT'D) -He was filling her basket. He was making deliveries around back. - -As Edward continues, she can't help but laugh harder, especially as the metaphors get more vulgar. - -EDWARD (CONT'D) -He was buttering her rolls. Pumping her churn. Splashing milk in her box. - -JOSEPHINE -Stop. - -EDWARD -They were squeezing the cheese. Clanking the bottles. Licking the popsicle. - -She's starting to cry from laughing. - -EDWARD (CONT'D) -Cracking the eggs and making an omelet. - -With that, he stops. She regains her composure. - -EDWARD (CONT'D) -Spooning the sherbet. - -JOSEPHINE -(interrupting) -Can I take your picture? - -EDWARD -You don't need a picture. Just look up handsome in the dictionary. - -JOSEPHINE -Please? - -He rolls his eyes, why not. - -Josephine leaves, heading down the hall to get her camera. We STAY WITH Edward in bed. - -JOSEPHINE (O.S.) (CONT'D) -I have photos from the wedding to show you. There's a great one of you and my father. I had an extra print made. - -Edward grimaces, a flash of pain. Around others, he's hiding how much it hurts, but alone we can see how bad it is. - -He controls his breathing, trying to push through it. - -JOSEPHINE (O.S.) (CONT'D) -I want to see pictures of your wedding. I've never seen any. - -She returns with her camera. Edward smiles, doing a good job masking the pain. - -EDWARD -That's because we didn't have a wedding. Your mother-in-law was never supposed to marry me. She was engaged to somebody else. - -JOSEPHINE -(loading film) -I never knew. - -EDWARD -Will never told you that? -(she shakes her head) -Probably just as well. He would have told it wrong anyway. All the facts and none of the flavor. - -JOSEPHINE -Oh, so this is a tall tale? - -EDWARD -Well, it's not a short one. - -A devilish smile. Pushing past Edward, we settle on the whirling fan. - -MATCH CUT TO: - -A SPINNING PINWHEEL - -held by a LITTLE BOY. He's slumped over his FATHER's shoulder, being carried towards a big-top tent. We are... - -EXT. OLYMPIA CIRCUS - NIGHT - -...where the second-rate carnival is parked for the moment in an Alabama field. To the left, we spot Edward, 20-ish, halfway through a bag of peanuts. He's still carrying the backpack we saw earlier, and scratched up from his trip through Spectre. - -EDWARD (V.O.) -I had just left Ashton, and was on my way to discover my destiny. Not knowing what that would be exactly, I explored every opportunity that presented itself. - -Joining the crowd, he heads into the big-top. - -INT. BIG TOP - NIGHT - -A troupe of STILT-WALKING FIREBREATHERS finishes their act to tremendous APPLAUSE. - -As the performers clear away, the circus' owner-and-ringmaster AMOS CALLOWAY (50) approaches the stands. He may only be four feet tall, but Amos has a titanic presence. - -AMOS -Ladies and Gentlemen, you may think you've seen the _unusual_. You may think you've seen the _bizarre_. But I've travelled to the five corners of the world, and let me tell you, I've never seen anything like this. - -From behind Amos, CARNIES start rolling a massive ball towards the crowd. - -AMOS (CONT'D) -When I found this man, he was picking oranges in Florida. His fellow workers called him El Penumbra -- The Shadow -- because when you were working beside him, he blocked out the daylight. He could take a whole tree in his hands and shake off the fruit. I had to pay his crew boss $10,000 just so I could take him with me. - -Amos comes up to a MIDDLE-AGED WOMAN in the first row, a quieter moment. - -AMOS (CONT'D) -Not to alarm you, Ma'am. But if this man wanted to, he could crush your head between his toes. -(she trembles) -But he won't. -(a long beat) -He's not going to hurt her, folks, because he's our own Gentle Giant. Ladies and Gentlemen, I give you Colossus! - -The carnies back away from the ball as a deep DRUM ROLL begins. A moment, then the ball starts to bulge from inside. - -A foot suddenly bursts out from within. GASPS from the crowd. That foot is massive. In the stands, Edward looks closer. Intrigued. - -As the drum beat intensifies, a second foot breaks out. Followed by hands. Shoulders. Finally, the head. This is COLOSSUS. - -From a very LOW ANGLE, we look up to see just how massive he is. He seems to fill the Heavens. With his shaved head and giant club, he seems more ogre than man. - -In the bandstands, a YOUNG BOY's jaw drops in awe. Colossus walks down the row, letting the crowd get a better look at him. Some reach out to touch him, disbelieving. A tight spotlight follows him, revealing faces in the crowd. - -Colossus passes Edward, who seems unimpressed. He leans with the spotlight, WHISTLING to get the big man's attention. - -He points to the edge of the stands, where his friend is sitting on the dirt -- - -KARL THE GIANT - -stands up, so big the spotlight has to widen just to hold him. He's a good foot taller than Colossus. There's a GASP from the crowd, along with nervous anticipation -- what will happen next? - -ANGLE ON Amos, stunned, megaphone dangling. - -ANGLE ON Colossus, realizing the gig is up. With a resigned shrug, he rests his club on his shoulder and walks away into the shadows. - -CUT TO: - -INT. BIG-TOP - NIGHT / LATER - -As the stands empty, Edward and Karl talk to Amos. - -AMOS -What's his name? Does he talk? It's not important. - -KARL -Karl. - -AMOS -Tell me Karl, have you ever heard of the term "involuntary servitude?" - -Karl shakes his head. - -AMOS (CONT'D) -"Unconscionable contract?" - -Nope. - -AMOS (CONT'D) -Great, great. That's fantastic. - -EDWARD (V.O.) -It was on that night Karl met his destiny. And I met mine. Almost. - -INT. BIG TOP - NIGHT - CONTINUOUS - -As Amos pulls Karl aside to give him the hard sell, Edward notices a BEAUTIFUL YOUNG WOMAN (16) leaving with her family. She's wearing a blue dress and hat. For no good reason, she looks back at Edward. - -The two make eye contact. And as they do, all motion FREEZES. - -A fiery baton remains mid-twirl, flames locked in place. A spilled box of popcorn hangs in mid-air, each kernel like a snowflake. Even the elephant is mid-poop. - -Only Edward is free to move, winding his way between the frozen bodies, ducking underneath arms to get closer and closer to this woman. - -EDWARD (V.O.)(CONT'D) -They say when you meet the love of your life, time stops. And that's true. What they don't tell you, is that once time starts again, it moves extra fast to catch up. - -Suddenly, everything RUSHES. The crowd becomes a blur, and the young woman is lost in its wake. Now it's Edward who's frozen, helpless in time. - -EXT. DIRT PARKING LOT - NIGHT - -Edward checks in windows as cars pull out, searching for his fated love. Not finding her, he becomes more frantic, running down the rows. - -CROSSFADE TO: - -THE EMPTY LOT - -Colossus is thumbing for a ride. The last pickup truck stops and lets him climb in back. - -As the truck pulls out, it passes a dejected Edward. He'll never find that girl, the love of his life. - -INT. BIG-TOP - NIGHT - -Amos leans over so Karl can sign a contract on his back. He spots Edward walking back into the tent. - -AMOS -Hey kid! Your friend just made himself a star. - -EDWARD -That's great. - -Amos hands off the contract to a CLOWN. - -AMOS -(introducing) -My attorney, Mr. Soggybottom. - -EDWARD -Good to meet you. - -Mr. Soggybottom HONKS his horn, then waddles off. - -AMOS -What's the matter with you, kid? I haven't seen a customer so depressed since the elephant sat on that farmer's wife. -(beat) -Get it? "Depressed?" - -Karl chuckles. - -AMOS (CONT'D) -See! The big guy likes it. - -EDWARD -I just saw the woman I'm going to marry, I know it. But then I lost her. - -AMOS -Tough break. Most men have to get married before they lose their wives. - -EDWARD -(with absolute conviction) -I'm going to spend the rest of my life looking for her. That or die alone. - -AMOS -Jesus, kid. -(realizing) -Let me guess. Real pretty, blonde hair, blue hat? - -EDWARD -Yes! - -AMOS -I know her uncle. Friends of the family. - -EDWARD -Who is she? Where does she live? - -AMOS -Kid. Don't waste your time. She's out of your league. - -As Amos starts to walk away, Edward hurries to catch up with him. Karl follows as well. - -EDWARD -What do you mean? You don't even know me. - -AMOS -Sure I do. You were hot shit back in Hickville, but here in the real world, you got squat. You don't have a plan. You don't have a job. You don't have anything but the clothes on your back. - -EDWARD -I've got a whole backpack _full_ of clothes! - -He points to the bleachers, where no backpack is to be found. - -EDWARD (CONT'D) -(realizing) -Someone stole my backpack. - -AMOS -Kid, you were a big fish in a small pond. This here is the ocean, and you're drowning. Take my advice and go back to Puddleville. You'll be happy there. - -Getting in front of Amos, Edward stops him. - -EDWARD -Wait. You said I don't have a plan. I do. I'm going to find that girl and marry her and spend the rest of my life with her. - -Amos smiles, amused. - -EDWARD (CONT'D) -I don't have a job, but I would have a job if you gave me one. And I may not have much, but I have more determination than any man you're ever going to meet. - -AMOS -Sorry, kid. I don't do charity. - -EDWARD -I'll work night and day, and you won't have to pay me. You just have to tell me who she is. - -Amos takes a long look at him. Ultimately, there's no way he can say no. He shrugs. What the hell. - -AMOS -Every month you work for me, I'll tell you one thing about her. That's my final offer. - -Edward shakes Amos's hand before he can retract the offer. We move into a MONTAGE: - -INT. BIG TOP CENTER RING - NIGHT - -CLOSE ON Edward, smiling nervously. His head is tilted to the side, and as we PULL BACK, we see why: he's holding it in a MASSIVE LION's open mouth. The beast's sharp teeth are just poking his skin. If the lion so much as flinches, Edward is dead. - -The CROWD applauds, which makes the lion antsy. Which makes Edward antsier. - -EDWARD (V.O.) -From that moment on, I did everything Mr. Calloway asked, and a lot of things he didn't. I'd go three days without stopping to eat, and four days without sleeping. - -EXT. THE HYDRA - DAY - -His eyes droopy from lack of sleep, Edward mans the whirling amusement park ride. - -EDWARD (V.O.) -The only thing that kept me going was the promise of meeting the girl who would be my wife. - -Nodding off, Edward falls backward, into the path of the spinning arms. One of the Hydra cars hits him square in the gut, throwing him up and away, sailing 200 feet through the air. - -EXT. FIELD - DAY - -Edward chases a costumed pig, tripping over tent cords, falling in the mud. - -His hunt leads him through the back of a tent, where he's unwittingly stepped in front of a line of motorized birds. To the left, CUSTOMERS are shooting with rifles. He dodges four SHOTS that knock down the birds around him. - -He catches his breath, lucky. - -Then a half-blind OLD WOMAN pulls her trigger, hitting him in the shoulder. - -EXT. BEHIND A TENT - DAY - -Karl the Giant bandages Edward's arm as well as he can. Amos is walking past. - -EDWARD -Mr. Calloway! It's been a month today. - -Amos stops, looks at the young man. Finally... - -AMOS -This girl, the love of your life. Her favorite flower is daffodils. - -He walks away. We PUSH IN on Edward, enraptured by the concept. - -EDWARD -Daffodils. -(to Karl) -Daffodils! - -INT. STABLES - DAY - -Edward shovels shit in the nastiest stables you've ever seen. But all he can think about is... - -EDWARD -(to himself) -Daffodils! - -The wonder of it. He goes back to shoveling, a smile on his face. - -EDWARD (V.O.)(CONT'D) -True to his word, every month Amos would tell me something new about the woman of my dreams. - -INT. A DARK PLACE - NIGHT - -CLOSE ON Edward, lost in quiet reverie, pondering his latest bit of information. - -EDWARD -College! She's going to college! - -A sudden EXPLOSION as Edward is shot... - -INT. BIG TOP - NIGHT [CONTINUOUS] - -...out of a giant cannon. - -INT. STABLES - NIGHT - -Under a full moon, Edward feeds the animals. - -EDWARD -(to himself) -Music! She likes music. I like music too! - -EDWARD (V.O.) -Over the months, I learned a lot about the woman I was going to marry, but not her name, and not where to find her. That time had come. I couldn't wait any longer. - -EXT. AMOS CALLOWAY'S TRAILER - NIGHT - -Under a full moon, Edward walks up to the battered camper, and is about to knock when he notices it's rocking. A lot. Not just that, there's MOANING coming from inside. - -But Edward KNOCKS anyway. - -EDWARD -Mr. Calloway! It's Edward Bloom. I need to talk to you. - -Suddenly, the rocking and moaning stop. A beat, then the door handle begins to RATTLE. It seems to be stuck. - -Edward turns the knob. - -Suddenly, the door BURSTS OPEN. Edward is knocked down by a massive black dog, biggest you've ever seen. It has green glowing eyes and a lick of fire for a tongue. - -Edward wrestles with the beast, its mouth snapping at his throat. Blocking with an arm, Edward tries to push himself free, but the creature's hands -- it has hands instead of paws -- hold on tight. - -Entwined, they roll across the dirt. The other nearby CARNIES scatter for cover. Mr. Soggybottom pulls a revolver out of his clown suit. Loads a silver bullet. - -Edward finally succeeds in throwing the beast off. He rolls to his feet. - -The hell hound squares back on its haunches, GROWLING, ready for another leap. Mr. Soggybottom sheds a clown tear, aiming the revolver at the dog. - -At the last moment... - -EDWARD (CONT'D) -No, wait! - -Edward moves just as Mr. Soggybottom FIRES. The bullet catches Edward in the shoulder, knocking him down. - -The carnies GASP. - -Licking its chops, the dog approaches the helpless Edward, who feels the ground around him, looking for some kind of weapon. He finds only a small stick. He waves it at the dog, ready to strike it. - -Like magic, the dog's whole demeanor changes. It bounces excitedly, ready to play fetch. - -Seeing an opportunity, Edward throws the stick as far as he can. The dog bounds after it, - -SMASHING DOWN THREE CARS. - -It returns a beat later with the flaming stick, which it drops at Edward's feet. Its tail whips back and forth. - -EDWARD (V.O.) (CONT'D) -It was that night I discovered that most things you consider evil or wicked are simply lonely, and lacking in the social niceties. - -Edward throws the stick again. The dog takes off in a new direction. - -TRANSITION TO: - -EXT. FIELD - PRE-DAWN - -Exhausted from playing fetch all night, Edward throws the stick into the woods. The still-spry dog goes after it. It's gone for a long time, long enough that Edward becomes concerned. - -He follows it into the woods. - -INT. WOODS - DAWN - -Amos Calloway stands up behind a bush, buck naked and hairy. He still has the stick in his mouth, which he takes out as Edward approaches. - -AMOS -Didn't kill anything, did I? - -EDWARD -A few rabbits, but I think one of them was already dead. - -AMOS -That would explain the indigestion. - -Edward tosses him his jacket to cover his privates. - -AMOS (CONT'D) -I was wrong about you kid. You may not have much, but what you got, you got a lot of. You could get any girl. - -EDWARD -There's only one I want. - -A beat. - -AMOS -Her name is Sandra Templeton. She's going to Auburn. The semester's almost over, so you better hurry. - -EDWARD -Thank you. - -AMOS -Good luck, kid. - -Edward walks away. Then starts running. He has to get there as soon as possible. - -Amos sits down and scratches his ear with his foot. - -EXT. BIG TOP - DAY - -Edward shakes Karl's giant hand. They hug. - -EDWARD (V.O.) -After saying my goodbyes, I hopped three trains to get to Auburn that afternoon. - -EXT. AUBURN UNIVERSITY - DAY - -We DESCEND ON the main quad, to find Edward Bloom dunking his head in the fountain. - -He changes out of his grubby shirt into a new one, just out of the package. It's the mid-1960's, but by the conservative dress of the passing STUDENTS, it could be any era. - -EXT. SORORITY HOUSE - DAY - -Edward stands with a bouquet of daffodils in front of a half-open door. Through the crack we can see the edge of a YOUNG WOMAN, talking in hushed tones with another girl we can't see. - -Finally, a decision is reached. The door opens to reveal the woman of Edward's dreams, Sandra Kay Templeton. She's effortlessly beautiful, pure and simple as sunlight. - -He can't believe he's finally reached her. He half-laughs, nervous. That makes her laugh, not sure what's going on. - -EDWARD -You don't know me, but my name is Edward Bloom and I am in love with you. I've spent the last three years working to find out who you are. I've been shot and stabbed and trampled a few times, had my ribs broken twice, but it's all worth it to see you here, now, and to finally get to talk to you. Because I am destined to marry you. I knew that from the first moment I saw you at the circus. And I know it now more than ever. - -ON SANDRA, overwhelmed. All she can finally think of to say is... - -SANDRA -I'm sorry. - -EDWARD -Don't need to apologize to me. I mean, I'm the luckiest person you're going to find today... - -She puts her hand on the door frame. On her left ring finger, we see a diamond. - -SANDRA -No I'm sorry, I...I'm engaged to be married. - -ON EDWARD as his heart falls 20 floors. He tries to suppress the reaction, put on a brave front. - -EDWARD -Oh. - -SANDRA -But you're wrong. I _do_ know you, at least by reputation. Edward Bloom from Ashton. See, I'm actually engaged to a boy from Ashton. Don Price. He was a few years older than you. - -FLASHCUTS TO: - -EXT. CREEPY OLD HOUSE - THE GATE - NIGHT - -Young Don Price shines his flashlight on Edward. - -VARIOUS H.S. ATHLETIC COMPETITIONS - -Recapping earlier football, baseball and basketball highlights, we find Edward beats Don every time. - -THE STREET CORNER / ASHTON PARADE - -A smoking Don Price crushes his cigarette as Edward leaves town. - -BACK TO: - -EXT/INT. SORORITY HOUSE - THE DOORWAY - -Edward is dumbstruck. With all the strength he can muster... - -EDWARD -Well. Congratulations. I'm sorry to have bothered you. - -He turns and walks down the front steps. - -She stays in the doorway for a few beats, feeling genuinely horrible for what's happened. But eventually she goes back inside. We hear GIGGLES from inside as her sorority sisters get to the bottom of this. - -SANDRA -Stop it. It's not funny. That poor boy. - -We LEAD Edward as he walks away, tears just starting to form. - -EDWARD (V.O.) -Fate has a cruel way of circling around on you. After all this work to leave Ashton, the girl I loved was now engaged to one of its biggest jerks. - -He EXITS FRAME, leaving only the sorority house in the background. - -EDWARD (V.O.) (CONT'D) -There's a time when a man needs to fight, and a time when he needs to accept that his destiny is lost, that the ship has sailed, and that only a fool would continue. - -A beat. Edward steps back INTO FRAME, looking at the sorority house. - -EDWARD (V.O.) (CONT'D) -The truth is, I've always been a fool. - -We CIRCLE as he shouts: - -EDWARD (CONT'D) -Sandra Templeton! I love you! And I am going to marry you! - -INT. SORORITY HOUSE FOYER - DAY - -Sandra and her SISTERS peer out through the curtains. Is this guy crazy? - -INT. LECTURE HALL - DAY - -The tweedy ECONOMICS PROFESSOR continues his explanation. Sandra isn't paying a lot of attention. - -He switches on the overhead projector without looking at it. There's a TITTER from the STUDENTS, but he doesn't notice. - -A classmate nudges Sandra, who looks up. Written on the projector is "I Love Sandra Templeton." She's horrified and excited at the same time. The professor finally notices what's written there. - -EXT. QUAD - DAY - -Walking with her books, Sandra shakes her head, disbelieving. We look up to the blue sky, where a giant sky-written heart floats in the wind. - -INT. SANDRA'S BEDROOM - [THE NEXT] MORNING - -At her Sisters' prompting, a just-woken Sandra looks out the second-story window to find the lawn filled with - -TEN THOUSAND DAFFODILS. - -Edward stands amid the sea of flowers. He's waited there six hours. - -EXT. SORORITY HOUSE - DAY - -Sandra walks out to him. She's smiling, confused, joyful and scared. All down Greek Street, STUDENTS are coming out to see the display. - -SANDRA -Daffodils? - -EDWARD -They're your favorite flower. - -SANDRA -How did you get so many? - -EDWARD -I called everywhere in five states and explained this was the only way I could get my wife to marry me. - -Out of nowhere, a tear drops down Sandra's cheek. She wipes it off. - -SANDRA -You don't even know me. - -EDWARD -I have the rest of my life to find out. - -From down the street... - -A MAN'S VOICE -Sandra! - -SANDRA -It's Don. Promise me you won't hurt him. - -EDWARD -If that's what you want, I swear to it. - -The adult DON PRICE arrives. He's 230 pounds of football-playing, Skynard-loving, fraternity-proud muscle. And he's pissed. - -A gang of his BROTHERS walk behind him. - -DON PRICE -Bloom! - -EDWARD -Don. - -DON PRICE -What the hell are you doing? This is my girl. Mine! - -EDWARD -I didn't know she belonged to anybody. - -Don Price decks him, knocking him down. Edward gets right back up, but makes no move to defend himself. - -Unfazed, Don slugs him again. - -SANDRA -Stop it! - -DON PRICE -(ignoring) -What the matter, Bloom? Too scared to fight back? - -EDWARD -I promised I wouldn't. - -A beat. Don shrugs, fine. Then proceeds to kick Edward's ass nine ways to Sunday. - -EDWARD (V.O.) (CONT'D) -While I took the beating of a lifetime, it was Don Price who was ultimately defeated. - -As the ass-whupping continues, we - -INTERCUT WITH: - -INT. FRATERNITY HOUSE BATHROOM - DAY [FLASHFORWARD] - -Sitting on the can, Don Price pinches a loaf while reading the new Playboy. - -EDWARD (V.O.) -All the physical activity had worsened a congenital valve defect. Put simply, his heart wasn't strong enough. - -Don Price squeezes down hard, trying to shit the unshittable. Suddenly, he grasps his chest and collapses face-first on the tile. - -MATCH CUT TO: - -EXT. WITCH'S HOUSE / GATE - NIGHT [FLASHBACK] - -The same image of Don's dead face on the tile is reflected in The Eye. - -RETURNING BACK TO: - -EXT. THE SORORITY HOUSE - DAY - -The thrashing continues. Edward somehow fights his way back to his feet, ready to be knocked down again. - -SANDRA -Don! - -Don is about to slug Edward again when he turns. - -Sandra pulls off her engagement ring. There's an audible AHH! from her sisters, and an OHH! from Don's brothers. - -SANDRA (CONT'D) -I will never marry you. - -A beat. Don stands stunned, his mind reeling. - -Edward, whose eyes are swollen almost shut, keeps waiting for the next punch. Where is it? What's going on? - -DON PRICE -What. You love this guy? - -SANDRA -He's almost a stranger and I prefer him to you. - -She hands him the ring. Another beat, then Don storms off. But not before decking Edward one last time. - -Sandra leans over Edward's broken body. His head lies on the daffodils. - -SANDRA (CONT'D) -How can I convince you to stop? - -EDWARD -Go out with me. - -He smiles, his teeth bloody. - -SANDRA -Okay. - -As the crowd of students APPLAUDS and CHEERS, we CRANE UP above the flowered battlefield. - -EDWARD (V.O.) -As it turned out, Sandra was able to keep her same date at the chapel. Only the groom had changed. - -As the MUSIC reaches a crescendo, we suddenly... - -CUT TO: - -INT. GUEST ROOM - NIGHT [PRESENT] - -JOSEPHINE -I thought you said you didn't have a church wedding. - -EDWARD -Well, we were all set to, but there was a complication. - -He reaches for his glass of water, but Josephine already has it for him. She watches him while he slowly drinks the entire glass, thirstier than he imagined. While he's drinking, we... - -CUT TO: - -INT. UPSTAIRS HALLWAY - NIGHT [CONTINUOUS] - -Will, back from the grocery store, reaches the top of the stairs. He hears voices coming from the bedroom. - -JOSEPHINE (O.S.) -Is it the medicine that's making you thirsty? - -EDWARD (O.S.) -Truth is, I've been thirsty my whole life. Never really known why. - -Will quietly approaches the door, not exactly sneaking, but not exactly announcing his presence. The door is open a few inches, letting him look in on his father and his wife. - -INTERCUT HALLWAY / BEDROOM - -EDWARD (CONT'D) -There was one time when I was eleven... - -JOSEPHINE -(gently) -You were talking about your wedding. - -EDWARD -I didn't forget. I was just working on a tangent. See, most men, they'll tell a story straight through, and it won't be complicated, but it won't be interesting either. - -JOSEPHINE -I like your stories. - -EDWARD -And I like you. - -He doesn't let the moment linger with undue sentimentality. There's a story to be told. - -EDWARD (CONT'D) -Now. The thing about working for a circus is you don't have a regular address, and after three years I had a lot of undelivered mail. - -In the hallway, Will shifts to a new position, letting himself listen to the story one more time. - -EDWARD (CONT'D) -During the four weeks I was in the hospital, the postmaster finally caught up with me. - -INT. HOSPITAL - DAY - -Bruised and bandaged, Edward sorts through a big bag of mail with help from Sandra. He rips open an official-looking letter. Reading it, his face drops. - -FLUTE and DRUM, music rising to a military cadence. - -EDWARD (V.O.) -It turned out that while my heart belonged to Sandra, the rest of my body belonged to the U.S. Government. - -INT. ARMY AIRPLANE - NIGHT - -With a buzz cut and paratrooper gear, Edward squats with a dozen other SOLDIERS. The noise of the ENGINES is deafening, but Edward is engrossed in an Asian phrasebook. - -EDWARD (V.O.) -A hitch in the Army was up to three years at that point, and having waited three years just to meet Sandra, I knew I couldn't survive being away from her that long. So I took every hazardous assignment I could find, with the hope of getting my time down to less than a year. - -The JUMP LEADER yells... - -JUMP LEADER -GO! GO! GO! - -One by one the men jump out, their chutes clipped to a main line. When his time comes, Edward leaps... - -...but he's stuck. His cord is caught up in the assembly. - -He twists and struggles, trying to free himself. Looking down, he can see the white parachutes disappearing into the darkness. They're already long gone. - -Digging a knife out of his pocket, Edward gets to work cutting through the cable. It finally POPS. Edward jumps from the plane. - -EXT. OUTSIDE STAGE - NIGHT - -A THOUSAND CHINESE SOLDIERS sit, bored, watching the equivalent of a U.S.O. show. - -A CHINESE VENTRILOQUIST is on stage with his Communist puppet. We have no idea what they're saying to each other, but every act is fundamentally the same. - -The EMCEE comes on to usher him off the stage before he's finished. The Ventriloquist protests, but finally gives in. The Emcee makes a "shoot him in the neck" motion to one of the ARMED GUARDS off-stage. - -EXT. HIGH ABOVE THE STAGE - NIGHT - -We LOOK DOWN with Edward, who is drifting right for the stage. He can't steer. He's helpless. - -But then, a BLAST of fireworks from the sides of the stage. The lights go out as a DRUM ROLL begins. It's just enough cover for Edward to remain unseen. - -He lands with a CLANG on the lighting catwalk above the stage. He barely grabs on, disconnecting his chute just as the curtain goes up. Edward looks out at the sea of excited soldiers. Every one of them would kill him. He's the legless cricket left on the anthill. - -EXT. ON STAGE - -The curtain rises to reveal PING (27) at a microphone. She's as gorgeous a woman as you'll ever see. - -She stands with her hips turned in profile. Her body is a knockout, dress cut to reveal skin. The soldiers are on their feet, WHISTLING and HOLLERING. - -UP ON THE CATWALK, Edward is surprised by an ENEMY SOLDIER. The two men begin to SCUFFLE. - -MUSIC starts, a vampy torch song. Ping sings melody while an off-stage voice carries perfect harmony. - -PING -*Sometimes a girl can feel so alone -Without a lover to call her own. -Sometimes it's so bad, she wants to explode. -Wants to grab the first man she sees and tear off his clothes.* - -A ROAR from the soldiers. She knows what they want. - -Still fighting, Edward jumps for a pole on the far side of the catwalk, sliding down it to end up - -BACKSTAGE. - -His determined opponent follows him down. - -PING (CONT'D) -*But she won't. -No, she can't. -She needs a special **special** different unusual man. -Because that girl, -Who looks like me, -She has wants, but she has needs.* - -PING (CONT'D) -(speaking) -Any of you got needs? - -The soldiers ROAR LOUDER, STOMPING on the bleachers. - -Backstage, the two men are still fighting. - -PING (CONT'D) -(chorus) -*I've had twice the adventure, -Cried double the tears. -Two times the bad times in half the years. -I need a strong man, because I've got -Twice the love to give.* - -For the first time, Ping turns, and now we see why she was standing in profile. Ping is one-half of - -SIAMESE TWINS. - -Her identical twin is JING, who's been singing harmony all this time. They are two separate women who join at the waist, one set of perfect legs beneath them. - -Edward sees the twins from behind, does a double-take. It costs him a punch to the jaw. - -PING (CONT'D) -Say hello, Jing. - -JING -Hello Jing. - -PING -(to the crowd) -I'm Ping. She's Jing. She's the good one. -(closer) -I'm the bad one. - -As the MUSIC builds towards the climax, Edward finishes the fight, knocking the guard out with a right hook. - -As Ping and Jing reach the last chorus, they strike a final pose in the shape of a heart, their arms forming the arches, their backs forming the curves. - -Edward slips behind curtains, trying to get away. - -The soldiers are SHOUTING for an encore, lighters waving. The curtain slowly lowers, revealing - -EDWARD'S PARACHUTE. - -The APPLAUSE dies, replaced by a concerned RUMBLE. The Emcee yells for the Guards to search. - -ON STAGE - -Ping has no idea what's happening. Jing reaches into her cleavage to pull out her eyeglasses. - -INT. DRESSING ROOM - NIGHT - -As ARMED GUARDS search the halls below the stage, Ping and Jing shut the door to their dressing room. At the closet, they start to change outfits. Off-stage, their personalities become quite apparent: Ping is brash, bitchy and ambitious, while Jing is quiet, sweet and bookish. - -_In Chinese, subtitled..._ - -PING -How could you miss your cue? You make me look like a fool, out there alone. - -JING -You weren't alone. - -Ping HUFFS, turning her back on her sister. - -Jing reaches deeper into the closet to find a new dress, exposing Edward's hiding place. She GASPS. Ping turns to look. - -PING -Who the hell are you? - -EDWARD -(in Chinese) -I'm not going to hurt you. - -PING -Damn right you're not. -(yelling) -GUARD! - -Jing grabs her, a hand over her mouth, but it's too late. A rifle-toting GUARD looks in. - -Pretending to be her bitchy sister -- - -JING -Tell your men not to bother us! And lock that door! - -The guard obeys. Ping shakes her sister off. Desperately flipping through his Asian phrasebook, he finds... - -EDWARD -Please, I need your help. - -PING -What makes you think we'll help you? - -Edward pulls a photo out of his flak jacket. It's Sandra. - -CROSSFADE TO: - -VARIOUS SHOTS - -EDWARD (V.O.) -Over the next hour, I described my love for Sandra Kay Templeton, and the ordeal that brought me before them. As it had always been, this love was my salvation. It was destined to be. - -Hearing the story, Jing wipes away a tear. Even Ping is a little affected. - -EDWARD (V.O.)(CONT'D) -We put together an elaborate plan for escape, involving a whaling ship to Russia, a barge to Cuba and a small, dirty canoe to Miami. We all knew it would be dangerous. - -_Still subtitled:_ - -PING -And what are we supposed to do when we get to America? - -EDWARD -I can get you bookings. I know the biggest man in show business. - -JING -Bob Hope? - -EDWARD -Bigger. - -TRANSITION TO: - -EXT. TEMPLETON FAMILY HOUSE - DAY - -Sandra checks the mail, hoping for a letter from Edward. - -EDWARD (V.O.) -And so the twins and I began our arduous journey halfway around the world. Unfortunately, there was no way to send a message back to America. - -A black car pulls up. Two ARMY OFFICERS get out. - -EDWARD (V.O.)(CONT'D) -And so it was no surprise that the Army believed I was dead. - -Hearing the news, Sandra CRIES OUT. The pain of her shout makes church bells RING. - -EXT. BEHIND THE TEMPLETON HOUSE - DAY - -Sandra hangs sheets to dry on the clotheslines, forming a tunnel of fabric. - -EDWARD (V.O.) -After four months, Sandra had gotten over the worst of the nightmares. When the phone rang, she didn't think it was somehow me calling her. When a car drove past, she didn't get up to check out the window. - -Pulling a dress out of the basket, Sandra looks up to see - -A MAN'S SILHOUETTE - -on the sheet in front of her. She freezes, watching the shadow ripple across the white fabric, blowing so softly in the breeze. She knows it can't be him. He's dead. - -She turns away. With all the strength she can gather, she hangs up that dress and digs another one out of the basket. - -Looking up, she sees not a shadow but Edward himself standing before her. She GASPS, disbelieving, but his hand is real. It is destiny. - -Without another moment's hesitation, she kisses him. - -CROSSFADE TO: - -BRIGHT SUNLIGHT - -filters through soft sheets. We're under the covers, where a man's hand traces the curves of a woman's bare back. A beat, then she turns over in bed, revealing her to be - -JOSEPHINE. - -She blinks slowly, just waking up. Will is watching her. He's been up for a while. We are actually... - -INT. WILL AND JOSEPHINE'S ROOM - DAY - -...where the couple stays cocooned under the sheets, a kind of limbo. A kiss good morning. Legs entangling. Neither wants to get up. - -JOSEPHINE -I talked with your father last night. - -WILL -Did you? - -A look to say, should I be worried? - -JOSEPHINE -You never told me how your parents met. - -WILL -They met at Auburn. - -JOSEPHINE -What about the details? How they fell in love. The Circus. The War. You never told me any of that. - -WILL -That's because most of it never happened. - -JOSEPHINE -But it's romantic. - -A beat. - -WILL -(non-committal) -Mmm. - -JOSEPHINE -Mmm, what? - -WILL -Mmm, what. I know better than to argue romance with a French woman. - -He moves his head out from under the sheet. She follows him to the "outside." - -JOSEPHINE -Do you love your father? - -WILL -Everyone loves my father. He's a very likeable guy. - -JOSEPHINE -(repeating) -Do you love him? - -Will doesn't want to answer yes or no. - -WILL -You have to understand. When I was growing up, he was gone more than he was here. And I started thinking -- maybe he has a second life somewhere else. With another house, another family. He leaves us, he goes to them. Or maybe there is no family. Maybe he never wanted a family. But whatever it is, maybe he likes that second life better. And the reason he tells all those stories is because he can't stand this boring place. - -JOSEPHINE -But it's not true. - -WILL -What is "true?" I've never heard my father say a single true thing. - -Off her silence... - -WILL -Look, I know why you like him. I know why everyone likes him. But I need you to tell me I'm not crazy. - -JOSEPHINE -You're not. - -WILL -I need you on my side. - -JOSEPHINE -I am always on your side. And I think you should talk to him. - -INT. GUEST ROOM - DAY - -The family finishes eating breakfast off TV trays set up around the bed. For his part, Edward is looking better. Certainly not recovered, but there's an optimism to his expression. And for the first time, he's actually hungry. - -He watches as Sandra puts the cap back on the syrup. - -EDWARD -Did I ever tell you about how... - -WILL -(interrupting) -Yes. - -Edward is startled. - -WILL (CONT'D) -The maple tree and the Buick. We heard it. - -EDWARD -(re: Josephine) -I think someone hasn't. - -JOSEPHINE -The tree fell on the car, spilling the syrup, which attracted the flies, which got stuck to it and flew off with the whole car. - -A beat. - -EDWARD -(undeterred) -But the real story is how I got the car. You see... - -WILL -(interrupting) -Dad? - -EDWARD -Son? - -WILL -Can we talk? - -Sandra SNAPS the cap back on the syrup. - -SANDRA -I'm going to get started on dishes. - -JOSEPHINE -I'll help you. - -Both women quickly gather plates. - -Will and Edward both smile. The women clearly want this to happen. It settles for a beat after they leave. - -WILL -Do you know much about icebergs, Dad? - -EDWARD -Do I? I saw an iceberg once. They were hauling it down to Texas for drinking water, only they didn't count on an elephant being frozen inside. The woolly kind. A mammoth. - -WILL -(interrupting) -Dad! - -EDWARD -What? - -WILL -I'm trying to make a metaphor here. - -EDWARD -Then you shouldn't have started with a question. Because people want to answer questions. You should have started with, "The thing about icebergs is..." - -WILL -(frustrated) -The thing about icebergs is you only see 10 percent of them. The other 90 percent is below the water where you can't see it. And that's what it is with you Dad. I'm only seeing this little bit that sticks above the water. - -EDWARD -(joking) -What, you're seeing down to my nose? My chin? - -WILL -I have no idea who you are because you have never told me a single fact. - -EDWARD -I've told you a thousand facts. That's all I do, Will. I tell stories. - -WILL -You tell lies, Dad. You tell amusing lies. Stories are what you tell a five-year old at bedtime. They're not elaborate mythologies you maintain when your son is ten and fifteen and twenty and thirty. And the thing is, I believed you. I believed your stories so much longer than I should have. And then when I realized that everything you said was impossible -- everything! -- I felt like such a fool to have trusted you. You were like Santa Claus and the Easter Bunny combined. Just as charming and just as fake. - -EDWARD -You think I'm fake. - -WILL -Only on the surface. But that's all I've ever seen. - -Edward looks away, angry and disbelieving. - -WILL -Dad, I'm about to have a kid of my own here. It would kill me if he went through his whole life never understanding me. - -EDWARD -It would kill you, huh? - -Finally -- - -EDWARD -What do you want, Will? Who do you want me to be? - -WILL -Yourself. Good, bad, everything. Just show me who you are for once. - -EDWARD -I have been nothing but myself since the day I was born. And if you can't see that, it's your failing, not mine. - -EXT. BACKYARD - DAY - -With a skimmer pole, Will cleans the leaves and debris out of the pool, but it's a fool's errand. The pool has long since gone native, a shiny slick of algae on the surface, slime covering the cemented rocks. - -Suddenly, an underwater shape RIPPLES against the water's surface. Will is so startled that he drops the pole, which disappears into the murky water. - -A beat. He looks around, relieved that no one saw that. He casually walks away. - -INT. BASEMENT STORAGE AREA - DAY - -The doors open to reveal Sandra, Will and Josephine, staring into the mouth of oblivion. The storeroom is a museum of hasty decisions and half-finished projects: partially built outboard motors, dead bonsai trees, Frankensteinian lawnmowers. We also find boxes of products Edward used to sell. - -Clearing a path, Sandra leads Will to a roll-top desk, its ribs covered in dust. Two beaten metal file cabinets sit beside it. - -SANDRA -Your father decided he needed to have an office, and it wouldn't do to have it in the house. You'll know better than me what's important. - -With some effort, Will forces up the desktop. With a HISS, a neighbor's cat makes a run for it. Will's getting used to being startled. - -INT. BASEMENT STORAGE AREA - DAY [LATER] - -Will, Sandra and Josephine have worked through two trash bags of papers to throw out. Looking through a new file, Sandra makes a small sound. A memory. - -WILL -What is it? - -Sandra hands Will a yellowed telegram. He shares it with Josephine. - -SANDRA -It was during the war. Your father went missing. They thought he was dead. - -Will can't believe what he's reading. - -WILL -That really happened? - -SANDRA -Not everything your father says is a complete fabrication. - -A beat, then Sandra stands. - -SANDRA -I'm going to check on him. - -JOSEPHINE -I need to lie down for a bit. - -WILL -Go. - -Josephine kisses him, then follows Sandra. Will re-reads the telegram, still bewildered. - -Looking for a place to put it, he tucks it into a strange mechanical hand on the desk. It clamps down automatically. - -Will smiles, a memory. He hasn't thought about this device in years. We slowly PUSH IN on the telegram, held in the hand. - -Edward's VOICE begins as a memory... - -EDWARD (V.O.) -After the war, the sons of Alabama returned home, looking for work. Each had an advantage over me. They were alive, while I was -- officially -- deceased. - -INT. DOWNTOWN OFFICE - DAY [STORY] - -Edward shakes hands with his new boss, a TOUPEED MAN. The company is called "Confederated Products." The OFFICE LADIES all love Edward. - -EDWARD (V.O.) -With my prospects few, I took a job as a travelling salesman. It suited me. If there's one thing you can say about Edward Bloom, it's that I am a social person. - -EXT. COUNTY FAIR - DAY [STORY] - -On a low platform, Edward pitches a brilliant new product to the crowd. - -EDWARD -I've travelled from Tennessee to Timbuktu, and if there's one thing people have in common, is we could all use a hand around the house. - -Edward sets down a contraption, which looks something like a metal lava lamp. Like a flower, it unfolds to reveal five fingers and a thumb. This is the Hand Around the House.(TM) - -EDWARD -Why, with this product you can... - -QUICK MONTAGE as he demonstrates: - -EDWARD -Open a jar. Open a letter. Scratch yourself while wearing mittens. Hold a book. Hold a baby. Hold the dog away from kittens. It's strong enough, you can do a handstand with no hands at all. - -Indeed, a remarkably agile Edward is able to support his entire weight on it. The crowd APPLAUDS. - -EDWARD -You can use it to point out important information. Or dangers. Or beautiful women. - -The hand points a finger at an HEAVYSET MAN IN OVERALLS. - -EDWARD -We're still working on that one. - -The crowd LAUGHS. - -EXT. A COUNTRY ROAD - DAY - -Edward drives, his hand out in the wind. - -EDWARD (V.O.) -Soon I added other products, and other cities, until my territory stretched from the coast to western Texas. - -EXT. TRAILER PARK - DAY - -Edward kisses his pregnant wife goodbye, as much in love as ever. - -EDWARD (V.O.) -I could be gone for weeks at a time. But every other Friday, I'd put all the money I'd made into an account set aside for a proper house with a white picket fence. - -EXT. HORIZON SAVINGS & LOAN - DAY - -Establishing this Texas institution, we come... - -INT. HORIZON SAVINGS & LOAN - DAY - -The bank is busy with the lunch-hour crowd. Taking his place in line, Edward fills out a deposit slip. - -As the line snakes around through the ropes, the man in front of him gets a look at Edward. - -THE MAN -Edward? Edward Bloom? - -The man is none other than... - -NORTHER WINSLOW -It's me. Norther Winslow. - -EDWARD (V.O.) -I was astonished to see the greatest poet of both Ashton and Spectre all the way out in Texas. - -The men shake, disbelieving this lucky coincidence. - -EDWARD (CONT'D) -I don't believe it! - -NORTHER WINSLOW -I want you to know, when you left Spectre it opened my eyes. There was a whole life out there that I was not living. So I travelled. I saw France, and Africa, half of South America. Every day a new adventure, that's my motto. - -EDWARD -That's great, Norther. I'm happy for you. I can't believe I helped. - -He's genuinely proud. - -EDWARD (CONT'D) -So what are you up to now? - -NORTHER WINSLOW -I'm robbing this place. - -Reaching the front of the line, Norther pulls two pistols out of his coat, FIRING both into the ceiling. - -SCREAMS all around. The skinny SECURITY GUARD makes a half-hearted reach for his gun, but Norther waves him off. The guard takes out his gun and slides it over. - -NORTHER WINSLOW (CONT'D) -(to Edward) -Would you mind grabbing that? - -There's nothing threatening about his delivery -- he might as well be asking for a Budweiser. Still, Edward senses it would be best to do as he says. He takes the guard's gun. - -NORTHER WINSLOW (CONT'D) -(to the crowd) -Now, I want all of you to lie down. I'm gonna be cleaning out the cash drawers, and my associate here is going to handle the vault. -(pointing to a Teller Woman) -You help my friend, okay? - -The TELLER WOMAN nods. - -ANGLE ON Edward, not sure what to do. He has a gun, but he truly doesn't want to shoot Norther. The Teller Woman is already waving him to the back. - -He decides he better go. - -INT. AT THE VAULT - DAY - -The Teller Woman is crying as she works the combination. Edward feels horrible. - -EDWARD -Look, I'm really sorry. I just don't want anybody to get hurt. - -TELLER WOMAN -It's not that, it's just... - -She pulls open the vault door. - -INT. THE VAULT - DAY - -The inner sanctum of the Horizon Savings and Loan holds exactly one folding chair. Nothing else. - -TELLER WOMAN -...there's no money. We're completely bankrupt. - -EDWARD (V.O.) -It turned out the savings and loan had already been robbed -- not by armed bandits, but by speculators in Texas real estate. - -TELLER WOMAN -(dead serious) -You gotta promise you won't tell anybody. - -CUT TO: - -INT. EDWARD'S CAR - DAY - -Edward drives the getaway car, though truthfully they're going just a little over the speed limit. No one's following them. It's an empty country road for miles. - -Norther HOLLERS with body-tingling joy as he counts the money. - -NORTHER WINSLOW -Sixty. Eighty. Four hundred dollars! Not bad for just the drawers. Let's see what you got from the vault. - -Edward winces, but doesn't say anything yet. Digging through the vault bag, Norther is surprised to find only a single deposit envelope. He rips it open, revealing just a little cash inside. Even some dimes and pennies. - -NORTHER WINSLOW (CONT'D) -This is it? The whole vault. - -EDWARD -'Fraid so. - -NORTHER WINSLOW -Edward, it's got your deposit slip on it. - -Caught, Edward has to confess... - -EDWARD -Look, I just didn't want you to go empty-handed. There's something you should know, Norther. You see, the reason why... - -Edward continues his narration... - -EDWARD (V.O.) -I told Norther about the vagaries of Texas oil money and its effect on real estate prices, and how lax enforcement of fiduciary process had made savings and loans particularly vulnerable. Hearing this news, Norther was left with one conclusion: - -EXT. TEXAS ROAD - DAY - -Norther leans in the driver's side window. - -NORTHER WINSLOW -I should go to Wall Street. That's where all the money is. - -Edward looks over at Norther, the reality sinking in. - -EDWARD (V.O.) -I knew then that while my days as a criminal were over, Norther's were just beginning. - -The two men wave at each other as Edward drives off. At the last moment, Norther calls out: - -NORTHER WINSLOW -Edward, thank you for the hand! - -He's talking about his Hand Around the House. We HOLD ON Norther for a beat, dreaming of his future. - -EDWARD (V.O.) -When Norther made his first million dollars, he sent me a check for ten thousand. I protested, but he said it was my fee as his career advisor. - -EXT. BLOOM HOUSE [MID/LATE '70'S] - DAY - -Sandra is watering the garden. Will (5) runs past her to greet Edward, just returned from another trip. - -EDWARD (V.O.) -Ten thousand dollars is no fortune to most men. But it was enough to buy my wife a proper house with a white picket fence. - -We reveal the Bloom house, the nicest one in the neighborhood. Edward kisses his wife. - -EDWARD (V.O.) -And for that, it was all the riches a man could ever want. - -Sandra drops the hose, letting it run on the lawn. - -TRANSITION TO: - -INT. BLOOM HOUSE BATHROOM - DAY [PRESENT] - -CLOSE ON Edward's hand as he turns knobs. - -CLOSE ON water SPLASHING into the claw-foot bathtub, which begins to fill. - -Still wearing his pajamas, Edward climbs into the tub. Carefully lowers himself. - -As the water reaches the third button up on his pajama shirt, Edward suddenly slides - -UNDERWATER. - -Bubbles rise from his nose for a few beats, then stop. It's quiet, except for the distant SPLASHING of water from the spigot. Edward's eyes are closed. - -A long beat. Another. Then the SPLASHING water goes silent. Edward opens one eye. The other eye. He sits up to find - -SANDRA - -sitting on the edge of the tub. She doesn't seem particularly worried -- her husband has always done this. - -EDWARD -I was drying out. - -SANDRA -I see. We need to get you one of those plant misters. We can spray you like a fern. - -He smiles, then pulls his knees up, making room for her in the tub. A beat while she considers. - -Sandra steps out of her sandals and climbs into the tub, facing him. Her dress is soaked, but she doesn't mind. - -He leans forward and kisses her. When they separate, she has tears hanging in her eyes. - -EDWARD -Come now. - -He wipes them away. - -SANDRA -I don't think I'll ever dry out. - -INT. BASEMENT STORAGE AREA - DAY - -Perched awkwardly on a canoe, Will's made it through another file cabinet. He goes through the folders page by page, but usually ends up tossing the whole thing in the trash. - -He's about to toss a file when he stops. Takes another look. Something doesn't make sense. - -INT. BLOOM HOUSE / STAIRS - DAY - -Will is headed upstairs when his mother comes around the corner with an armful of laundry, including her wet dress. - -WILL -Is he awake? - -SANDRA -He just fell asleep. Josephine's with him. - -She passes him. He turns. - -WILL -Mom? - -SANDRA -Yes? - -Will quickly debates whether or not to ask her... - -WILL -Did you and Dad have any other property? - -SANDRA -(thinking) -I suppose your grandmother's house when she passed on. But we sold that right away. Your cousin Shirley bought it. - -WILL -So you never bought any land. - -SANDRA -Heavens no. We had a hard enough time keeping the mortgage on this place. - -Will nods, just curious. He continues heading up. - -INT. WILL AND JOSEPHINE'S ROOM - DAY - -Will changes his shirt. Takes his keys off the nightstand. - -EXT. COUNTY ROAD - DAY - -Will's rental car drives past a sign reading, "Ashton, 10 miles." - -INT. WILL'S CAR - DAY / DRIVING - -Will checks the address on one of his father's files. - -EXT. ASHTON GAS - DAY - -Will talks to the ATTENDANT, who points him in a direction, then gestures a series of left, right, left, rights. - -EXT. ROAD - DAY - -Will drives down a road that seems somewhat familiar. And then we realize why: a roadsign reads "Welcome to Spectre!" - -EXT. A LONE HOUSE - DAY - -Sitting at the edge of a swamp, the little two-story feels lonely, set deep in its lot. Dapples of light break through the trees, a light breeze swaying the branches. - -As Will walks from the car, the WHIRR of cicadas grows. He checks the number: 33. This is the house. It is surrounded by a white square-picket fence, identical to his mother's. Will notices this. - -Reaching the porch, we hear a PIANO playing inside. Badly. - -Re-checking the number on a form he's carrying, Will KNOCKS. The piano stops. - -WOMAN'S VOICE (O.S.) -Go back to the start. Right hand only. - -The piano starts again. FOOTSTEPS. - -The door opens to reveal a blonde woman in her 50's -- the woman from the grocery store. Her name is Jenny Hill. - -She and Will are startled to see each other. - -JENNY -Oh. Oh. - -WILL -Hello. - -JENNY -I wasn't expecting you. - -Confused, Will checks the name on the form. - -WILL -Are you Jenny Hill? - -JENNY -I am. And you're Will. I've seen your picture, that's how I recognize you. I almost said something at the store, but it would have been awkward. -(a beat) -Like this. - -The PIANO STUDENT, a black boy of eight, has stopped. He's watching the conversation at the door. Speaking of awkward... - -JENNY (CONT'D) -(to the student) -Listen, Kenny. Why don't we skip the lesson today? We can go again next week. - -She hands him five dollars out of her pocket. - -STUDENT -Do I have to give it back to my Mom? - -JENNY -I won't tell her if you won't. - -You don't have to tell him twice. He's out the door in a flash. - -INT. JENNY'S KITCHEN - DAY - -While Will sips his iced tea, Jenny flips through a form she never expected to see again. She hands it back to Will. - -WILL -How did you know my father? - -JENNY -This was on his sales route, so he was through here all the time. Everyone in town knew him. - -A beat. Not flinching... - -WILL -Were you and my father having an affair? - -JENNY -(taken aback) -Wow. Wow, you just said it. I was expecting to dance around this for another half hour. - -WILL -I've seen him with women. He flirts. He always has. On some level, I presumed he was cheating on my mother. I just never had proof. - -She moves, trying to get out of the corner he's boxed her into. Once she's finally free... - -JENNY -Can I ask you a question? Why did you come here today? If you found this deed, why didn't you just ask Eddie? - -WILL -Because he's dying. - -A long beat. Jenny is taken back by the suddenness of it. She's a tangle of conflicting emotions. - -JENNY -Look, I don't know how much you want to know about any of this. You have one image of your father and it would be wrong for me to go and change it. Especially this late in the game. - -WILL -My father talked about a lot of things he never did, and I'm sure he did a lot of things he never talked about. I'm just trying to reconcile the two. - -Fair enough. Jenny takes a seat across from him at the table. - -JENNY -The first thing you have to understand, is that your father never meant to end up here. And yet he did, twice. The first time, he was early. The second time, he was late. - -INT. EDWARD'S CAR / DRIVING - NIGHT - -It's late, and Edward is pensive. - -JENNY (V.O.) -Those days, your father was working for himself. If there was one thing you could say about Edward Bloom, it's that he was a social person, and people took a liking to him. One night he was returning from three weeks on the road, when he hit a thunderstorm unlike any in his life. - -The first raindrops hit the windshield. Edward turns on the wipers. - -INT. EDWARD'S CAR - NIGHT - [THE STORM] - -Suddenly, a deluge descends. It's not even rain anymore -- there's no space between the drops. It's like being caught in a waterfall. It's that loud. - -No choice, Edward stops the car. Puts on the handbrake. Just as suddenly, the sound changes -- no longer pounding, but softly SPLASHING. The world is close and echoing, because -- - -EXT. EDWARD'S CAR - NIGHT - --- the car is underwater. The tires are still on the road, but where there used to be air is water. - -Three catfish swim in front of his headlights. - -INT. THE CAR - NIGHT - -Realizing his plight, Edward tries to remain calm. Water is trickling in through the crack between the window and the door, but very slowly. For now, he's fine. - -That's when he sees her -- The Girl in the River. - -She's swimming outside the car. While we never see her face exactly, she remains just as beautiful, just as mysterious, as the first time we saw her. - -She puts her hand to the windshield. He puts his up to meet hers. And smiles. - -FLASH CUT TO: - -EXT. FIELD BY DIRT ROAD - DAY - -It's morning, and the sun shines brightly. Birds CHIRP. Trees drip and the grass shines, still wet from last night's rain. - -Edward gathers the clothes that have spilled out of his suitcase, which broke open when he dropped it from - -HIS CAR, - -which balances precariously ten feet up in an elm tree. As Edward gathers his last pair of socks, he notices a shiny piece of metal sticking out of the dirt. He pulls it out, rubs it off. - -It's a key. It's the Key to the City he lost years ago. - -JENNY (V.O.) -Fate has a way of circling back on a man, and taking him by surprise. - -EXT. ROAD - DAY - -Carrying his busted suitcase, a tired Edward walks toward a one-street town in the distance. We pass a rusty sign... - -"Welcome to Spectre." - -EXT. MAIN STREET - DAY - -Amazed and disbelieving, Edward walks down the center of the road, no cars coming from either direction. He looks up to find his faded shoes still dangling from the power line, along with the rest of the town's. - -JENNY (V.O.) -A man sees things differently at different times in his life. This town didn't seem the same now that he was older. - -EXT. TOWN OF SPECTRE - VARIOUS SHOTS - -We look around the town, on and off Main Street. There are "FOR SALE" signs in many of the windows - -JENNY (V.O.) -A new road had brought the outside world to Spectre, and with it, banks, liens and debt. Almost everywhere you looked, people were bankrupt. - -EXT. SPECTRE - DAY - -We slowly MOVE THROUGH a foreclosure auction to find Edward watching. Two very corporate MEN IN SUITS, stick out among the bidders. - -JENNY (V.O.) -Two different corporations were looking at buying the town, if they could get the price low enough. One wanted to open a chicken processing plant. The other, a municipal dump. Either way, Spectre would be destroyed. - -Edward raises his hand. - -EDWARD -Fifty-thousand! - -Everyone turns to look at this new bidder. - -JENNY (V.O.) -And so Edward Bloom decided to buy the town, in order to save it. - -INT. NORTHER WINSLOW'S MANHATTAN - DAY - -Edward pitches his plan to Norther. - -JENNY (V.O.) -He was never a wealthy man, but he had made other men rich, and now he asked for their favors. - -INT./EXT. VARIOUS LOCATIONS - DAY - -VARIOUS SHOTS: Expressive and passionate as always, Edward talks to Ping, Jing and Amos Calloway. - -JENNY (V.O.) -Most of them had never seen Spectre -- they only had Edward's words to describe it. That's all they needed. He sold them on the dream. - -JING -You can structure it as a historical trust. But you'll need every contiguous piece of property. It's all or nothing. - -As Edward takes notes... - -JENNY (V.O.) -So first he bought the farms. Then he bought the houses. Then he bought the stores. - -INT. AL'S COUNTRY - DAY - -Finishing up with AL, Edward shakes hands. - -JENNY (V.O.) -Whatever he bought, the people were not asked to leave or pay rent or anything. They were just asked to keep doing as they were doing. In that way, he could make sure the town would never die. - -EXT. ROAD IN THE SWAMP - DAY - -Edward climbs out of his car, the road having literally stopped. The sun is shining, but it can barely penetrate the trees' thick canopy. - -JENNY (V.O.) -Within six months, his trust had purchased the entire town. With one exception. - -In the distance, he sees a shack, so old it's nearly fallen. He walks toward it, the marshy ground SQUISHING up around his feet, soaking the hems of his trousers. - -We hear a PIANO playing from inside the shack. Edward KNOCKS on the half-hung door, which swings open by itself. - -INT. SHACK - DAY - -The inside is nicer than you'd think, a real home. A fire burns in the stove, and curtains hang in the windows. - -With her back turned to him, Jenny Hill plays the piano. Edward doesn't recognize her as the little girl who used to have a crush on him. Without turning, she says... - -JENNY -You must be Edward Bloom. - -EDWARD -How did you know? - -She keeps PLAYING. - -JENNY -No one would come out here unless they had business. And no one would have business with me except for you. You're buying the town. - -EDWARD -Apparently I've overlooked this one piece of it, and I'd like to remedy that. You see, in order for the town to be preserved, the trust must own it in its entirety. - -JENNY -So I've heard. - -EDWARD -I'll offer you more than it's worth. And you know you won't have to move. Nothing will change except the name on the deed, you have my word. - -Jenny stops playing, her piece not quite finished. She turns to face him. Edward still doesn't recognize her. - -JENNY -Now let me get this straight. You'll buy the swamp from me, but I'll stay in it. You'll own the house, but it'll still be mine. I'll be here, and you'll come and go as you please to one place or another. Do I have that right? - -Strange to hear it put that way, but -- - -EDWARD -In so many words, yes. - -JENNY -Then I don't think so Mr. Bloom. If nothing is going to change, I'd just as soon it not change in the way it hasn't been changing all this time. - -EDWARD -It's not like you're going to lose anything. You can ask anyone in town. I've been nothing if not generous. I want the best for everyone. - -A long beat. - -JENNY -Mr. Bloom, why are you buying this land? Some sort of midlife crisis? Instead of buying a convertible, you buy a town? - -He looks at her, puzzled and surprised. No one has really asked before. - -EDWARD -Helping people makes me happy. - -JENNY -I'm not convinced you should be happy. - -EDWARD -I'm sorry. Have I offended you? - -She finally turns to face him. - -JENNY -No, you did exactly what you promised. You came back. I was just expecting you sooner. - -FLASHBACK TO: - -EXT. SPECTRE - NIGHT - -Young Jenny Hill watches barefoot Edward leave Spectre for the first time. - -BACK TO: - -INT. SHACK - DAY - -Finally realizing who this woman is... - -EDWARD -You're Beamen's daughter. Your last name is different. -(realizing) -You married. - -JENNY -I was 18. He was 28. Turns out that was a big difference. - -Before he can say anything more... - -JENNY (CONT'D) -I won't be selling you this house, Mr. Bloom. - -EDWARD -I see. I thank you for your time. - -A bit bewildered, Edward tips his hat to her as he leaves. - -EXT/INT. SWAMP SHACK - DAY - -Edward pulls the door shut behind him as he leaves, but it breaks off in his hands. It's not the clean exit he was hoping for. - -Inside Jenny looks out, surprised and annoyed. - -Edward tries to lift the door back on the hinges, but they SNAP off. The door frame buckles and the whole shack CREAKS. - -EDWARD -I'm sorry. - -He tries to lean the door against the frame, but it keeps slipping. - -JENNY -It's okay, just leave it. - -EDWARD -I can get it. I can just... - -He leans the door a different way. It holds for a beat then falls in, SMASHING a small table. - -EDWARD (CONT'D) -Lord, I'm sorry I... - -JENNY -Please. Go. Just go. - -EDWARD -I'll... - -JENNY -Go. - -She's dead serious. Weighing the scales of chivalry, he finally backs away. Turns and heads back towards his car. - -We STAY ON Jenny, watching him go. She's furious, but there's something more in her feelings for him. Something softer. - -JENNY (V.O.) (CONT'D) -Most men in that situation would accept their failure and move on. But Edward was not like most men. - -EXT. SWAMP SHACK ROAD - ANOTHER DAY - -With Karl the Giant's help, Edward unloads a brand new door from a pickup truck. - -EXT. SHACK - DAY - -While Jenny watches, half-annoyed, half-amused, Edward tries to set the door square. Karl pushes against the side of the house until it fits. - -INT. SHACK - ANOTHER DAY - -Holding nails between his lips, Edward puts in new windows himself. Jenny is making soup, laughing at the story he's telling. - -JENNY (V.O.) -As the months passed, he found more and more things to fix, until the shack no longer resembled itself. - -EXT. SWAMP - ANOTHER DAY - -Edward and Karl cut down a tree, letting in a flood of light. Through the golden pollen hanging in the air, we RISE UP to see the shack is now - -THE LOVELY HOUSE - -we saw before. It's tiny and white, with black shutters and a steep roof. A white picket fence. In every detail it is impossibly charming. - -INT. JENNY'S HOUSE - DAY - -Edward is screwing a hat rack into the wall in the foyer. Jenny leans against the doorframe listening to his story. And watching him with deepest affection. - -EDWARD -Of course, the best part was creating new material. By the time the twins and I got to Havana, we had a whole new routine worked out for them, with just a ukulele and a harmonica. - -Finished with his work, he takes his hat off the chair and hangs it on the rack. Perfect. - -A beat. A look between them. With that last job done, there's no reason for him to be staying any longer. - -EDWARD (CONT'D) -I suppose I should... - -He takes his hat off the rack. - -JENNY -You can leave it there. - -A beat. Does she really mean it? - -She comes closer. Edward holds his ground. She takes his hand, lifting his hat up to the peg. She's very close -- just a half-inch from kissing him when -- - --- Edward gently holds her back. - -EDWARD -No. - -She freezes, stunned and humiliated. She pulls away. - -EDWARD (CONT'D) -Don't. Don't be embarrassed. I should never have let you think that... -(beat) -I am in love with my wife. - -JENNY -I know. - -EDWARD -And from the moment I saw her until the moment I die, she's the only one. - -JENNY -Lucky girl. - -EDWARD -I'm sorry, Jenny. I am. - -With that, he begins to leaves. - -JENNY -Wait! Edward! - -She finds a pen and hastily signs the deed to the house. Hands it to him. With a look, he thanks her. Then goes. - -EXT. SPECTRE - MAGIC HOUR - -Edward takes a final look at this perfect little town. - -JENNY (V.O.) -One day, Edward Bloom left, and never returned to the town he'd saved. - -He climbs in his car and starts the engine. - -EXT. JENNY HILL'S HOUSE - DAY TO NIGHT - -As we watch, the swamp begins to overtake the house, swallowing it in a tangle of vines and mossy branches. Shoots burst up through the planks in the porch. Snakes slither through the marsh. - -Day becomes night. - -JENNY (V.O.)(CONT'D) -As for the girl, the common belief was that she'd become a witch, and crazy at that. She became something of a legend herself. - -We REVERSE to find FOUR KIDS looking in through the rusty iron gate with flashlights. A beat, then they run away. - -JENNY (V.O.)(CONT'D) -And the story ended where it began. - -INT. JENNY HILL'S KITCHEN - PRESENT DAY - -Will and Jenny are still sitting at her table, a pitcher of iced tea between them. - -WILL -Logically, you couldn't be the Witch, because she was old back when he was young. - -JENNY -No, it's logical if you think like your father. See, to him, there's only two women: your mother and everyone else. - -WILL -You didn't become crazy. - -JENNY -Well, therapy. And one day I realized I was in love with a man who could never love me back. I was living in a fairy tale. - -Will smiles to hear it called that. - -JENNY (CONT'D) -People aren't like they are in stories. They hurt each other without meaning to. They are kind and unbelievably cruel at the same moment. Like me, now. I'm not sure I should have told you any of this. - -Her composure is starting to break. - -WILL -No, I wanted to know. I'm glad I know. - -A long beat, both staring at their iced tea. Jenny is working herself into more of a state by not talking. - -JENNY -I wanted to meet you for the longest time. I did. -(a smile) -I envied you so much. The way Eddie would talk about you when you were at Missouri, that award you won. Congratulations, incidentally. And when you got the job at the A.P., everything, he was so proud of you. I mean, that's the thing. Every moment he loved you. - -She's fighting tears, not the first ones she's shed over this. - -JENNY (CONT'D) -And as brightly as the sun would shine when he was with me, every time he left it disappeared. I wanted to be as important to him as you were, and I was never going to be. I was make-believe and his other life, you, were real. - -ANGLE ON Will, sorting through his swirling thoughts. - -JENNY (CONT'D) -You knew that, didn't you? - -CUT TO: - -INT. WILL'S CAR - DAY / DRIVING - -Will skips through the stations on the radio, but ultimately turns it off. He's trying to think. - -EXT. BLOOM HOUSE - DUSK - -Will walks up the front steps. There's a subtle change to his expression, a dark cloud lifted. He unlocks the door. - -INT. BLOOM HOUSE FOYER - DUSK - -It's half-dark and quiet in the house, no talking, no TV. Will sets his keys on the table. - -INT. KITCHEN - DUSK - -Will looks in. Empty. - -WILL -(calling out) -Hello? Mom? Dad? - -INT. UPSTAIRS HALLWAY - DUSK - -We follow Will, looking into his and Josephine's room. He aims for the guest room at the end of the hall. - -INT. GUEST ROOM - DUSK - -Looking over his shoulder, we see his father's bed is empty. The sheets are in a tangle on the floor. - -A beat, then Will half-runs back down the hall. Back down the stairs. - -INT. FOYER - DUSK - -Headed out, Will grabs his keys off the table. We LOOK RIGHT, where the "MESSAGE" light blinks on the answering machine. - -INT. HOSPITAL ENTRANCE - NIGHT - -The hospital is so new, it's not even finished -- thick plastic hangs from exposed framing. There's no one at the information desk, so Will forges ahead. - -INT. HOSPITAL HALLWAY - NIGHT - -Will reads a directory board, trying to decide the best place to start. Then, behind him -- - -JOSEPHINE (O.S.) -Will! - -He turns to see his wife at a payphone. She hangs up. She was calling him. - -WILL -What happened? - -JOSEPHINE -Your father had a stroke. He's upstairs with your mom and Dr. Bennett. - -WILL -Is he going to be okay? - -A beat. How can she answer? - -He half-smiles, realizing the idiocy of his question. Of course his father's not going to be okay. - -WILL (CONT'D) -What I mean is, will he get back to the way he was when... - -She cuts him off -- - -JOSEPHINE -No. He won't. I'm sorry. - -And like that, it's done. We HOLD ON Will, reeling from the news. - -INT. HOSPITAL ROOM - NIGHT - -Edward sleeps peacefully, just an oxygen tube under his nose. There are no beeping monitors, no blinking lights. It's mercifully quiet. - -Sandra squeezes Will's hand tightly. She's holding herself together, but it's been a tough day. - -Dr. Bennett has just gone through the details for the third time. - -SANDRA -I don't suppose one of us could stay with him. In case he... -(beat) -In case he wakes up, one of us should be there. - -WILL -I'll stay. Why don't you go home with Josephine and I'll stay tonight. - -SANDRA -(to Dr. Bennett) -That's okay? - -DR. BENNETT -It's fine. - -SANDRA -(to Will) -You'll call if... - -WILL -I will. I'll call. - -A beat. - -WILL -Mom, do you want some time with Dad? - -SANDRA -Yes. Thank you. - -A nod, then Will holds the door for Dr. Bennett and Josephine as they leave. Sandra is alone in the room with her husband. - -She neatens his hair. Holds his hand. As she kisses his fingers, she tweaks her chin with them -- his signature move. - -TRANSITION TO: - -INT. HOSPITAL HALLWAY - NIGHT - -Sandra waits outside the women's restroom. Her face is a study in strained composure -- acknowledging the inevitable but refusing to surrender to it. - -Josephine emerges. - -JOSEPHINE -I'm sorry. It seems every hour I have to... - -SANDRA -I know. It was the same when I was carrying Will. Like clockwork. - -The two women start to walk, no hurry. - -SANDRA -Do you like it, being pregnant? - -JOSEPHINE -I do. - -SANDRA -I loved it. It sounds peculiar, but I loved every minute of it. I did. Eddie was travelling a lot, so he was gone, but I felt like I always had a piece of him with me. A little part of his soul inside me. I could feel it. It was alive and kicking. - -Sandra has accidentally evoked a storm of emotion. She struggles to keep it in check. Almost a whisper... - -SANDRA -I really miss that. - -With a few breaths, Sandra tries to hold on. Hold back. - -JOSEPHINE -Don't stop. Don't. - -A beat, then Sandra finally melts. Josephine holds her. The two women stand together in the hallway, letting the moment be. - -INT. HOSPITAL ROOM - NIGHT - -Will sits in a chair beside the bed, working through the crossword puzzle. A KNOCK as Dr. Bennett enters with his overcoat and bag, ready to leave for the night. - -DR. BENNETT -Glad to see you're not trying to have a heartfelt talk. It's one of my greatest annoyances, when people talk to those who can't hear them. - -WILL -My father and I have an advantage. We never talk. - -Dr. Bennett smiles as he checks Edward's chart. - -WILL (CONT'D) -How long have you known my father? - -DR. BENNETT -Thirty years. Maybe more. - -WILL -How would you describe him? - -DR. BENNETT -(re: chart) -Five-eleven. One-eighty. Regulated hypertension. -(beat) -How would his son describe him? - -Tables turned, Will searches for an answer. He doesn't have one. - -Dr. Bennett hangs the chart back on the bed. - -DR. BENNETT (CONT'D) -Did your father ever tell you about the day you were born? - -WILL -A thousand times. He caught an uncatchable fish. - -DR. BENNETT -Not that one. The real story. Did he ever tell you that? - -WILL -(suddenly interested) -No. - -DR. BENNETT -Your mother came in about three in the afternoon. Her neighbor drove her, on account of your father was on business in Wichita. You were born a week early, but there were no complications. It was a perfect delivery. Now, your father was sorry to miss it, but it wasn't the custom for the men to be in the room for deliveries then, so I can't see as it would have been much different had he been there. And that's the real story of how you were born. - -A long silence, just the sounds of the hospital, doctors being paged. - -DR. BENNETT (CONT'D) -Not very exciting, is it? And I suppose if I had to choose between the true version and an elaborate one involving a fish and a wedding ring, I might choose the fancy version. But that's just me. - -Will half-smiles. - -Patting Will's shoulder, Dr. Bennett leaves. We STAY ON Will and his father for a long time, then Will takes his pen and starts making a list. - -INT. HOSPITAL ROOM - VARIOUS SHOTS - -Will flips to a new page. The list keeps getting longer. - -He smiles, remembering something. On his fourth page, he looks up at his motionless father. A beat, then we slowly - -CROSSFADE TO: - -INT. HOSPITAL ROOM - PRE-DAWN - -It's very early morning, and the first blue light of day is glowing through the vertical blinds. Still in his chair, Will wakes up a bit at a time. The notepad is on his lap, the pen in his hand. - -He cracks his neck, crooked from sleeping on it wrong. What woke him up? - -He looks to his right. Holds his gaze for a breath. - -WILL -Dad? - -His father is awake, silently GASPING for breath. His eyes are open, scared and confused. - -WILL (CONT'D) -Dad! Do you want me to get a nurse? - -Edward shakes his head unambiguously. Will already has his finger on the orange "nurse call" button, but doesn't push it. - -WILL (CONT'D) -What can I do? Can I help? Can I get you something? Water? - -Edward nods. Will pours a glass from the pitcher on the nightstand. He holds it to his father's lips, but Edward won't drink. He pushes it away. He wanted something else. - -EDWARD -(whispering) -The river. - -WILL -The river? - -It takes Edward all his strength to put together each thought. It's like he's only half-there, fighting to hang on to this world. - -EDWARD -Tell me how it happens. - -WILL -How what happens? - -EDWARD -How I go. - -ON WILL, realizing... - -WILL -You mean what you saw in The Eye? - -Edward nods. Yes, that's what he was trying to say. - -A long beat. - -WILL (CONT'D) -I don't know that story, Dad. You never told me that one. - -Will pushes his fingers under his father's heavy hand, and holds it. There's nothing else to do. - -Edward looks around, confused and increasingly scared. He sees the end approaching, but doesn't know exactly what's coming. Without the story, he's lost. - -Fighting the urge to panic -- - -WILL (CONT'D) -I can try, Dad. If you help. Just tell me how it starts. - -EDWARD -Like this. - -WILL -Okay. Okay. - -Will looks around the room, increasingly desperate. He looks to the nurse call button. He really wants to press it. - -ON EDWARD, waiting for Will to begin. - -WILL (CONT'D) -Okay. It's morning, and you and I are in the hospital. I'd fallen asleep in the chair. I wake up and I see you, and... - -CUT TO: - -INT. HOSPITAL ROOM - DAY [STORY VERSION] - -WILL -Dad? - -It's dawn, and the first golden glow is shining through the vertical blinds. - -WILL (CONT'D) -(louder and concerned) -Dad? - -We LOOK OVER to find a nimble Edward sitting up in bed, combing his hair. - -EDWARD -Let's get out of here. - -WILL (V.O.) -Somehow, you're better. Different. You're getting ready to go. And I say... - -WILL  -Dad, you're in no condition to... - -But Edward throws back the covers. - -EDWARD -There's a fold-up wheelchair in the bathroom. Wrap a blanket around me. As soon as we get off this floor, we'll be in the clear. - -Will heads for the bathroom. Sure enough, the wheelchair is there. - -EDWARD (CONT'D) -Hurry! We don't have much time. - -INT. HOSPITAL HALLWAY - DAY - -With the blanket draped over his head like a ghost, Edward points for his son to steer the wheelchair thataway. - -EDWARD -Faster! - -They pass a HEAVYSET NURSE, who turns to look. - -Rounding a corner, they nearly crash into Dr. Bennett. - -DR. BENNETT -Will! I...What are you doing? - -Before he can answer, Will spots Edward rolling the chair himself, pumping both arms. Will dashes to catch up with him. - -The Heavyset Nurse leans out of Edward's hospital room. - -NURSE -Security! Stop them! - -DOWN THE HALL - -At the elevators, Sandra and Josephine step out to find Will and Edward barreling straight at them. - -EDWARD -No time to explain! Follow us! - -Seeing SECURITY GUARDS heading their way, a quick-thinking Sandra shoves a nearby cart into them, bowling them down. - -INT. ELEVATOR - DAY - -Will brakes hard, sliding with both feet. The chair nearly crashes into the back wall as the doors close. - -EXT. PARKING LOT - DAY - -Will races Edward down the row, finally reaching the Chevrolet. - -AT THE CAR - -Will lifts his father out of the chair. - -WILL (V.O.) -I pick you up and you hardly weigh anything. I can't explain it. - -Will sets him in the passenger seat. - -EDWARD -Water. I need water. - -Scrambling in back, Will finds a liter of Arrowhead. Hands it off. Edward unscrews the cap, but instead of drinking it, he douses himself. Soaks the blanket. - -Will pops the trunk. Starts to fold up the wheelchair. - -EDWARD (CONT'D) -Leave it! We won't need it. - -TIRES SMOKE as the car peals out. - -BACK TO: - -INT. HOSPITAL ROOM - DAY [REALITY] - -TIGHT ON Will, trying to hold back tears as he talks. - -WILL -And we have to take Glenville to avoid all the church traffic, because those damn church people drive too slow. - -TIGHT ON Edward, enjoying that detail. He's focused completely on Will's story. - -WILL (CONT'D) -I ask... - -BACK TO: - -EXT. GLENVILLE BLVD. - DAY [STORY VERSION] - -The Chevy slaloms through the Sunday-morning traffic. - -WILL (O.S.) -Where are we headed? - -WILL (V.O.) -You say... - -INT. CHEVY - DAY - -EDWARD -The River! - -Will stops short, the traffic backed up. He HONKS, trying to get around the jam. But it's no use. - -Then, up ahead, the cars start moving, shoved aside by massive hands. It's Karl the Giant, clearing a path by brute force. - -Edward leans out the window and waves. Karl waves back. - -EXT. ASHTON RIVER - DAY - -The same stretch of the river where it all began. A CROWD of more than 100 waiting. - -WILL (V.O.) -As we get closer to the river, we see everybody's already there. And I mean everybody. - -Amos Calloway is here with the circus folk, including Mr. Soggybottom. We also find Edward's Mother and Father, the Mayor, and many others from along the way. No one has aged a day since we saw them last. - -While Ping scans the horizon, Jing nuzzles with her boyfriend, Norther Winslow. It's Ping who first spots the Chevrolet. - -PING -He's here! - -The crowd CHEERS. The Ashton marching band PLAYS. Jenny Hill smiles. So does the Old Woman. - -We PUSH IN on the Old Woman's glass eye, where we see... - -YOUNG EDWARD - -reflected. This is what he saw. - -INT. THE CHEVROLET - DAY - -Amazed, Will turns to his father. - -WILL -It's unbelievable. - -EDWARD -Story of my life. - -EXT. RIVERSIDE - DAY - -Will gets out of the Chevrolet, overwhelmed by the crowd. Behind him, Sandra, Josephine and Dr. Bennett pull up. Karl comes just after that. - -Crossing to the passenger side, Will lifts his father out. Strangely, he's gotten even lighter. Will carries him easily. - -Edward pulls off his shoes, tying the laces together. He hands them to Josephine. She throws them up at the powerline. They loop over. APPLAUSE and CHEERS. - -The crowd parts to let Will and Edward get to the river. As he passes, Edward shakes some hands, pats some people on the cheek, and gives others a good poke in the ribs. - -WILL (V.O.) -And the strange thing is, there's not a sad face to be found. Everyone's just so glad to see you, and send you off right. - -Will walks into the river, up to his knees. He turns back so his father can face the crowd. Edward waves. - -EDWARD -Goodbye everybody! Farewell! Adieu! - -THE CROWD (VARIOUS) -Goodbye Edward! / See ya! / We'll miss you! - -But one face is missing from the crowd -- Sandra. Will turns to see she's already standing in the river beside them. - -The reflection of the light off the water gives Sandra an unearthly glow. She's more tranquil and more beautiful than we've ever seen her. - -EDWARD -My girl in the river. - -She kisses him. He tweaks her chin. The crowd HOLLERS in approval, but their moment remains strangely private. Only Will is there to witness. - -As the kiss ends, Edward tries to pull off his wedding ring. But it's stuck. Finally, he sucks on it, pulling it free with his teeth. - -A look to Will, a smile with a glint of gold. Will takes the ring out of his mouth. - -Edward suddenly drops out of Will's arms with a SPLASH. For he's no longer a man, but rather - -A FAT CATFISH - -swimming at his feet. - -We watch as the catfish circles, then heads for deeper water, disappearing. - -Will and his mother stand knee-deep in the water, watching Edward Bloom swim away into the sunlight. Josephine is back on the shore, along with the entire crowd. - -MUSIC BUILDS to a climax, then... - -Down the river, a GIANT FISH suddenly jumps out of the water, cutting a beautiful arc across the sunset. It then dives back under with a SPLASH. - -CROSSFADE BACK TO: - -INT. HOSPITAL ROOM - DAY - -Will has tears hanging in the corners of his eyes. - -WILL -You become what you always were. A very big fish. -(he smiles) -And that's the way it happens. - -EDWARD -(a whisper) -Yes. Exactly. - -Edward smiles, proud of both of them. His eyes are so pale and so open, we can almost see his soul. In every atom of his body, in every thought, Edward Bloom is entirely happy. - -And this is how he goes. - -INT. HOSPITAL HALLWAY - DAY - -Will shuts the door to his father's room behind him. The walk to the payphones seems to take a lifetime. - -He finds a quarter, starts to dial. He has to squint to see through the water in his eyes. It's ringing. And ringing. The other end answers. - -WILL -(voice cracking) -Hi. - -That's all he can get out before the dam breaks inside him. He presses closer to the phone, trying to shield himself. - -MUSIC begins that will carry us through the next passage. - -INT. HOSPITAL RECEPTION - DAY - -Will waits at reception as Sandra and Josephine come off the elevator. - -INT. GUEST ROOM - DAY - -Josephine opens the curtains, letting white sunlight in. She strips the bed. - -INT. BEDROOM - DAY - -Will and his mother pick out one of Edward's ties, for Will to wear at the funeral. Will tries to button the cuffs on the shirt he borrowed, but they're the kind that need links. - -He goes through the top drawer of the dresser, trying to find a matching pair. Further down, he finds a ribbon tied to - -THE KEY TO THE CITY. - -He smiles, disbelieving. It's a real thing. - -EXT. CEMETERY / ROAD - DAY - -Will helps his mother out of a black sedan. She's well-composed, not nearly the wreck we might have expected. - -Josephine hugs Dr. Bennett and shakes hands with his WIFE. The service is crowded, more than 200 people, many more than expected. - -As his mother talks to a WELL-WISHER, Will looks left to see an Oldsmobile parking. - -CLOSE ON the license plates. Missouri. - -The passenger side opens, but the man who steps out is barely visible over the door. He shuts it to reveal himself to be 70. - -It's Amos Calloway. Will doesn't recognize him. - -The Driver climbs out, a size 15 foot on the gravel. We TILT UP to see this man is huge. - -This man is KARL, now 55. He's not 12 feet tall, but at least six-eight. - -CLOSE ON Will, bewildered to see that this man really exists. - -EXT. CEMETERY / GRAVESIDE - DAY - -As the service gets ready to begin, Will guides his mother to a seat near the grave. - -Sitting beside Will, Josephine spots a stunning ASIAN WOMAN (50) behind them. A beat later, an identical face with glasses peers out -- the woman's twin sister. - -It's PING and JING. - -Josephine almost GASPS. She elbows Will, who turns to look. From this angle, the sisters seem conjoined, but then Jing steps forward. They're really two separate people. - -A sea of familiar faces, all of them aged through the years: BEAMEN, NORTHER WINSLOW, the MAYOR, and ZACKY PRICE. - -EXT. CEMETERY - DAY [LATER] - -After the service, we see the crowd gathered in small groups. By the LAUGHTER and hand gestures, we can see they're telling stories. They're telling Edward's stories. - -We find Will watching them. - -WILL (V.O.) -Have you ever heard a joke so many times you've forgotten why it's funny? But then you hear it again and suddenly it's new. You remember why you loved it in the first place. - -Will joins in, laughing. - -We slowly CIRCLE BEHIND a monument, letting it black out the screen. - -TRANSITION TO: - -EXT. BLOOM HOUSE BACKYARD - DAY [SUMMER] - -Will sits on the porch with Sandra and Josephine, watching his SON play in the pool with two NEIGHBOR KIDS. - -SON -(to the other boys) -So he said he'd fight the giant who was fifteen feet tall. - -KID -No way. - -SON -(calling over) -Dad, that's right, isn't it? - -WILL -Something like that. - -SON -See. So he was a giant but my grampa was going to fight him because he wasn't afraid of anything because he'd seen how he was going to die in this old lady's glass eye... - -Will smiles as his son continues the tale, which FADES. Sandra takes Will's hand in hers, just listening. - -WILL (V.O.) -That was my father's final joke I guess. A man tells his stories so many times that he becomes the stories. They live on after him. - -CROSSFADE TO: - -EXT. RIVER / UNDERWATER - DAY - -A fat and happy catfish swims towards us. - -WILL (V.O.) -And in that way, he becomes immortal. - -The fish passes us with a SPLASH. - -CUT TO BLACK. - -> _**THE END**_ < \ No newline at end of file diff --git a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/rIR9btIDEG.fountain b/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/rIR9btIDEG.fountain deleted file mode 100644 index a70f696..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/jsEZ08gnFYM5zg/rIR9btIDEG.fountain +++ /dev/null @@ -1,29 +0,0 @@ -Title: Tower -Author: The Tablet ❀ -Source: Song by Angel (Band) — prequel to Out of Phase mv - - - -EXT. the edge of Brian's home village - -~wind is raw, the air is stale - - - -~on this cold winter's night - - - -=== - -==second verse== - -Brian takes out a paper with an invisibility glyph - -Brian sneaks into the back of a carriage - -=== - -~as i look there, up on the hill - -~there it stands, so tall diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/0TrQrmJtEDl46jd8f.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/0TrQrmJtEDl46jd8f.md deleted file mode 100644 index 8b64431..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/0TrQrmJtEDl46jd8f.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 02:20:17 PM -season: ☢ season 1 ☢ -synopsis: - ---- - -# tZTlsKz7 - -sPe5CxCxETtv2obctWiI1PsDwhxW9gwQQRUnWyrZdh0tctiytibN6U53Utk7SJd2gBzX6EktAjsRGj9i3XJOrYS1F5zdLYcb2q3iZOw9JT0bb38rYjRGFIK9cLOzraX2vi4ohKGilHhu1N5WCplkSDcLxd0Z8wTqyxP7dqt6Bxolt2eq0QBrdd1uo0MqnWTfBkYvz0Ynme8Z5GAZ9 diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/OJTl19Ai7BAv.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/OJTl19Ai7BAv.md deleted file mode 100644 index e5c2f34..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/nl5TJ5B4lJF/OJTl19Ai7BAv.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 02:27:17 PM -season: ☢ season 1 ☢ -synopsis: | - there's a new electronic drumkit that Dirk wants. unfortunately, the closest store that has it is an hour away ---- - -# 7XdKUvQ6z8RNxOok6cpQT7MU3P - -9dyJrdi5RuNJ8IHhfnwmYamM5wYT2evoYd4BMuVOTbcGiavlJyHFx4euGl4WgMrEYB1iYASohrmskEdPN6cv0CEopDBqlbC6LTgDm6XW5TxrzhA9 - -*18ffOeQp5* diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/8DrczrUOBa0o.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/8DrczrUOBa0o.md deleted file mode 100644 index 0a0bb36..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/8DrczrUOBa0o.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 03:44:33 PM -season: ☆ season 2 ☆ ---- - -# oOKMiNUO - -ZEMVWDFT9ZNMqGG1mFUZHsGAqBMBYN6Qng3SSlC56q7VqtqH2N4SoX1ETSnwHpmsxrgaAOzFNk3p6WRQ6RfdfQKj4p6uZPM6jBLuY2IvJJAkm52TsNFjH8Z3vTN0phU12ZY2lQ3QOWkrFY32JX6ihzpZMLejhNBZJf0J5bEwFyv9ryIIIYUt diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/N3ZEAdlTZMW7z.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/N3ZEAdlTZMW7z.md deleted file mode 100644 index 003ff73..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/1GwwcFsEI7qO0Ns7LZ0x/wzyqnHdW0Si1bmsA/N3ZEAdlTZMW7z.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:15:30 PM -season: ☆ season 2 ☆ -synopsis: | - ### flashback episode to Kiko's emergence. - hijinks ensue because Kiko's guitar seems to have a life of its own.... -subtitle: episode idea 1 ---- - -# ZoLUa4up5uu - -- 7KsOBrVqbkVjZOP7DlhaAYAl3kbWy9WF8UxDM9 diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/KcBd7suOshTDlUgZRl.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/KcBd7suOshTDlUgZRl.md deleted file mode 100644 index 9c2f8dd..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/KcBd7suOshTDlUgZRl/KcBd7suOshTDlUgZRl.md +++ /dev/null @@ -1,25 +0,0 @@ ---- - -kanban-plugin: basic - ---- - -## ☢☢ - -- [ ] [[0TrQrmJtEDl46jd8f|]]
[[0TrQrmJtEDl46jd8f|t2mGjBDo]] -- [ ] [[OJTl19Ai7BAv|]]
[[OJTl19Ai7BAv|i9gDVoSDfcqneSirE6U6Avr23e]] - -## FVIkXQoM0DVn - -- [ ] [[8DrczrUOBa0o|]]
[[8DrczrUOBa0o|YhaJxgx2]] -- [ ] [[N3ZEAdlTZMW7z|]]
[[N3ZEAdlTZMW7z|]] - -## fVwXymxEht85 - -mUeUnpMgoB8TyBN7k1 - -``` -{"kanban-plugin":"basic","show-cards-in-title":false,"metadata-keys":[{"metadataKey":"subtitle","label":"-","shouldHideLabel":true,"containsMarkdown":false},{"metadataKey":"synopsis","label":"synopsis","shouldHideLabel":false,"containsMarkdown":true},{"metadataKey":"type","label":"","shouldHideLabel":false,"containsMarkdown":false}],"new-note-folder":"art/The Megadeth Cartoon/-board/plot cards/cards","time-format":"hh:mm:ss","date-format":"YYYY-MM-DD","lane-width":290,"hide-card-count":true} -``` - -Lu diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/VktvWszwkn4wZi.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/VktvWszwkn4wZi.md deleted file mode 100644 index d285c21..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/VktvWszwkn4wZi.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:37:07 PM -type: ⚡concepts⚡ -subtitle: plot niblet 1 ---- - -# 6 - -[[s7d0W98yNY|rJO9]]cPi8y73RG3l3AGnwJm4AbCZDO6WxK14KrIataXM3p3kMdRgCMxlnw9[[8xbefeILcCGmdX|bCY]]h67Z9IkEaMlRq0F14Ba6cHKidaxFcy3Ed8uxuPhWmXnw0gh9mksk74j9PsRncoLTGwTR9LJ8XjVk3SSaLg diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/c5yHrZHM81j7hUe0y.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/c5yHrZHM81j7hUe0y.md deleted file mode 100644 index 93b1105..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/XliH0DbCfbCgw7UlXI/c5yHrZHM81j7hUe0y.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:25:38 PM -type: ⚡concepts⚡ -subtitle: not final ---- - -# Xj48 - -[[s7d0W98yNY|Kkse]]nBBtAJTb4COmkenPXtkacuPd8gsJK - -- **nx98Jc** - - kmjnadFV10vYOZ6qeJ - - Xd8a02i7mIHQ3XK4WXWA8C - - 4nTm4hBAsEP -- **p9aoj** - - CGi4kmu8j1nbQ4AYKCdhQbvcBCZ - - arjYzqjBZPsq08F0OVKAyulmR7c - - TbLB98UXDZw4DgW9V07sgE6X1VQ1 - - 4Llb7q7NFH8w7SmVjIQ3dAdjEx60XEtC - -[[TN8LNEp1yP|d5Nte]]WcwQMtA3BCxGEDn6vLWzS - -- **WKPjJ7X** - - DcKOCgmrO4XhGTn - - ghzcpII5O0SHHV4DYOjhVljK37Wp6OBVv diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/RWphDB0quQ.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/RWphDB0quQ.md deleted file mode 100644 index cb90559..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/RWphDB0quQ.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 01:05:10 PM -type: 📍locations 📍 -subtitle: it's a location what do you expect? ---- - -# jWjOdfZV2t3Agt - -- 1iV6ZiSiqIjpXVPCcuuf3hyT9CduipxWosUONA5gOkKYpVNUKhLRl2VvyGrsdFQz5IfwhiN20U7kljdKnve0BKH0PPmQti -- Y38raRmVtn3WcgcjeHpWWFxsApQkq121Q3BTvs0cAReTrNlsOK0[[|Nick]] -- b4Sh4WjaKgDhsJ4TeeeD9tymSD2r4iW9XoRDwZ5k4YF7UXdvBC8Ju2PSWDaMKaIxCdxKbBOiKgMo8CntZp6JAGbraj7DGp0dOQ3wwEc4YnyIrWX diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/jwOHGH9If1yDgwL86yfJ.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/jwOHGH9If1yDgwL86yfJ.md deleted file mode 100644 index fa69b30..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/gIwBDpQSm3crkuthH/jwOHGH9If1yDgwL86yfJ.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:34:25 PM -type: 📍locations 📍 -subtitle: steven universe reference ---- - -# OOwcK3SvDU0e - -SOHF38Y8Qn8uOevDTqwO6M4Khhlh7z5C0TDwXJi8C95gj9g0YDPuFc7XsPQmwVQMOt2CizF5ezuAVh29KVR2x56maCQpY28K[[RWphDB0quQ|]]0 -1cl2xzCn8v4Vv3ti6Uv0m3KMHmCmkWQOfmcVsr6WILeECpsrRd0QQit8qhWzqfkJATYrlxnyK9Vcm17QgdLNfDaFjZP9uJpBrkko2fI4JccfLgnP1c6hbqz0pIb2MriMkQeSF diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/2I4w3PRgORzUKSD3CMY.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/2I4w3PRgORzUKSD3CMY.md deleted file mode 100644 index b448772..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/2I4w3PRgORzUKSD3CMY.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:42:34 PM -type: ✨characters✨ -character info: - name: Kiko Loureiro - status: 🎶 Active - talent: flight/air - role: main character ---- - -# mEtpHU0GzPnFQ - -XrOBiUSBgBbyBUF4IXibFO410 diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8BKazbOPl73y.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8BKazbOPl73y.md deleted file mode 100644 index 4e382b3..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8BKazbOPl73y.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:38:47 PM -type: ✨characters✨ -character info: - name: Chris Poland - status: ❌ Dead - talent: electricity - role: secondary character - cause of death: decapitation ---- - -# vH1efwdPE8T3 - -TlGuDH62RbDXk2l8BaQ1REYOXxL diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8xbefeILcCGmdX.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8xbefeILcCGmdX.md deleted file mode 100644 index f896ef8..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/8xbefeILcCGmdX.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:40:14 PM -type: ✨characters✨ -character info: - name: Vic Rattlehead - status: 🎶 Active - talent: nukes lol - role: main villain ---- - -# k56ogM8IVb6sX0 - -5W8MLFicO19rNQRzEzz0HPdsi -[[s7d0W98yNY|BzCD]]61[[|James]]Ka[[8BKazbOPl73y|C2yZf]]8vJVW[[cP4M7nxvzvVSaqJkt|rGA]]5mzCU4U8q9CdqlCPqMh42eazpzeqfLy7QTAd6dLUmgJ5Iq8KiXb7eoQcADnyFzm5wNdkeUJHwOnAaJf15LrpJmfQPwBMDQfqGK diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/MUI9w9qWaiQb4kIEYIUt.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/MUI9w9qWaiQb4kIEYIUt.md deleted file mode 100644 index 9fb617d..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/MUI9w9qWaiQb4kIEYIUt.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:48:32 PM -type: ✨characters✨ -character info: - name: Nick Menza - status: ❌ Dead - talent: alchemy? - role: secondary character ---- - -# e0zKHH42w5 - -- YYqPgkekRvTPKBj9t7xqBSkN6g6fNjcITlakOmnNQpGV0kWzL -- w2MB5q58aB0UMUJgVfKRL8PQZ5KsMisJVrBLUbzQJnfIDxeCUbfvqM4qOWbHHNN3cZhnBSQLsIZX1WLFvAL0[[|Temple of Deth]] diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/QpEwXAedptNMxFgN8Jf.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/QpEwXAedptNMxFgN8Jf.md deleted file mode 100644 index c5d84b2..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/QpEwXAedptNMxFgN8Jf.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 12:54:26 PM -type: ✨characters✨ -character info: - name: Marty Friedman - status: ❌ Dead - talent: healing - role: secondary character and Nick's love interest? - cause of death: magical depletion/corruption(?) ---- - -# nk7NhI93LcUcIN - -- O8vUp7b9uB -- NCYfNsRd - - FsdMCRq6APX7T8j686FInbjeBcy4rL -- jpTvgOzoBP2jENCqxpmfk[[MUI9w9qWaiQb4kIEYIUt|yUH6]] - - P9c5aGmlJbvIb2GcycqDUuVjzrZVCwNSCxNttLSDQZqG0Chi1C9l6jkfhimyhLsoFQsrPDgb9SedMnEASYl5sIFKwVOOT5pkLX diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/TN8LNEp1yP.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/TN8LNEp1yP.md deleted file mode 100644 index cb79037..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/TN8LNEp1yP.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:56:13 PM -type: ✨characters✨ -character info: - name: James LoMenzo - status: 🎶 Active - talent: ice - role: main character ---- - -# Fe83Q3tNKFvu0 - -kwqo5JetM8V0x7G5lyLY8SBk4iUfWZ5QFvxgaOlVKgR7CtOjuenfkOZ2suqoQMDorzIBtaBzKhvWMDVtlzRQA70zRBoo4kibAdXti0FXc9ZPXMfc1g0yk1A0yxVjQjo2Wbl7ez5npGeOHSOVz0Gex1rDyZlXzahw0vfjED495M7dY3YPMklQjYYw7u1k2xOkodjH0C7ZW9Gtr0S2kUuMtlpCsDSkMJlKdSjS9Rw2kDEFfNfC7xoFuhMQZA1M diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/cP4M7nxvzvVSaqJkt.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/cP4M7nxvzvVSaqJkt.md deleted file mode 100644 index 22338ed..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/cP4M7nxvzvVSaqJkt.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -created: - date: Tuesday ✧ 2022-07-19 - time: 04:04:26 PM -type: ✨characters✨ -character info: - name: Gar Samuelson - status: ❌ Dead - talent: rocks? - role: secondary character - cause of death: decapitation (he and Chris died together) ---- - -# 8ZjedC1QoFSW7 - -- WwdgDg8JPb0ZE -- 9IGbD7gra1rn -- 3wdujbGgN8EFYtmfLCCr[[8BKazbOPl73y|5q9Sl]] diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/s7d0W98yNY.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/s7d0W98yNY.md deleted file mode 100644 index 7a8d217..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/s7d0W98yNY.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:50:20 PM -type: ✨characters✨ -character info: - name: Dave Mustaine - status: 🎶 Active - talent: fire - role: main character ---- - -# MVBe3hncOWgPJ - -l6Zugfke7KJMVzkOg8O9YwjsUMifpyoiMpIXepO22eLTLnxmxAX5C91TQHvLBvAgQULE7QGl diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/zARwL0V82K04.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/zARwL0V82K04.md deleted file mode 100644 index bfc6e24..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/A4hGe253xiLZ/rhvmx19oWPypT9It/zARwL0V82K04.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -created: - date: Wednesday ✧ 2022-07-20 - time: 04:59:55 PM -type: ✨characters✨ -character info: - name: Dirk Verbeuren - status: 🎶 Active - talent: water - role: main character ---- - -# 2B4Aq2vTsuwqHQ - -AIXddDRzeQdk5V6qo2hcvWpQoJaoGoRin3Bo4q4hd5[[RWphDB0quQ|lTM9vB]]UN6mruw3s9oy0ArGkcKqiqweJAdlNXiLSZPHHa05M0lDiwn0cECDGYI8yrhjJlfbe6BDNBH4gPLbwttZ82hg4JShiTye0OonNNs2PUjPskRNqfnZDpxW5QAO899HarC98YcQNAA6uWIjMCo0kz1CPdQU4nfSquKFfMtLtGOpm7gckmvAlLMLlyK4Ndf0BY3kKEzi diff --git a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/Sk648gawNSKGVNTbeeEN.md b/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/Sk648gawNSKGVNTbeeEN.md deleted file mode 100644 index bb1f651..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/v3m6uZ0Fdlc7KvTivnVd/Sk648gawNSKGVNTbeeEN/Sk648gawNSKGVNTbeeEN.md +++ /dev/null @@ -1,35 +0,0 @@ ---- - -kanban-plugin: basic - ---- - -## ⚡⚡ - -- [ ] [[c5yHrZHM81j7hUe0y|]]
[[c5yHrZHM81j7hUe0y|oIEj]] -- [ ] [[VktvWszwkn4wZi|]]
[[VktvWszwkn4wZi|H]] - -## ✨✨ - -- [ ] [[s7d0W98yNY|]]
[[s7d0W98yNY|wSe7pf2X51uS9]] -- [ ] [[TN8LNEp1yP|]]
[[TN8LNEp1yP|4nhPaVuqM2DTp]] -- [ ] [[2I4w3PRgORzUKSD3CMY|]]
[[2I4w3PRgORzUKSD3CMY|100zm8aBuLtX7]] -- [ ] [[zARwL0V82K04|]]
[[zARwL0V82K04|1LzuzXHKt2Srlf]] -- [ ] [[MUI9w9qWaiQb4kIEYIUt|]]
[[MUI9w9qWaiQb4kIEYIUt|MEk15mHViK]] -- [ ] [[QpEwXAedptNMxFgN8Jf|]]
[[QpEwXAedptNMxFgN8Jf|nbNnyiCOLfGzc5]] -- [ ] [[8xbefeILcCGmdX|]]
[[8xbefeILcCGmdX|6dOMuXVDGp1MRs]] -- [ ] [[8BKazbOPl73y|]]
[[8BKazbOPl73y|VGQCR1feQcQO]] -- [ ] [[cP4M7nxvzvVSaqJkt|]]
[[cP4M7nxvzvVSaqJkt|TrQi0N9bhVLcK]] - -## 📍📍 - -- [ ] [[RWphDB0quQ|]]
[[RWphDB0quQ|T6FXyXKrCtKBer]] -- [ ] [[jwOHGH9If1yDgwL86yfJ|]]
[[jwOHGH9If1yDgwL86yfJ|Pk32tTykEgfy]] - -T0p3mfac31KVLt9455 - -``` -{"kanban-plugin":"basic","time-format":"hh:mm:ss A","date-format":"YYYY-MM-DD","prepend-archive-date":true,"metadata-keys":[{"metadataKey":"character info.talent","label":"elemental power/talent","shouldHideLabel":false,"containsMarkdown":false},{"metadataKey":"character info.role","label":"","shouldHideLabel":false,"containsMarkdown":true},{"metadataKey":"synopsis","label":"","shouldHideLabel":false,"containsMarkdown":true},{"metadataKey":"subtitle","label":"","shouldHideLabel":false,"containsMarkdown":false},{"metadataKey":"character info.cause of death","label":"cause of death","shouldHideLabel":false,"containsMarkdown":false}],"show-add-list":false,"new-note-folder":"art/The Megadeth Cartoon/-boards/concepts and info/cards","lane-width":320,"hide-card-count":true} -``` - -dL diff --git a/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/3OAOzwYnMEngbP3onu.md b/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/3OAOzwYnMEngbP3onu.md deleted file mode 100644 index 76cbffa..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/3OAOzwYnMEngbP3onu.md +++ /dev/null @@ -1,90 +0,0 @@ -> 0GqjSlpc -> [[]] - -```datacorejsx -let sent = 0; -const useSection = z => { -if(sent < 2) { -sent++; -console.log(z.$parent) -} - let par = z; - while(!par.$link) par = par.$parent; - return par; -} -const useParent = a => { - let par = a.$parent; - if(par.__proto__.constructor.name.match(/markdownlistblock/i)) return a; - while(Array.isArray(par.$elements) && "$status" in par) par = par.$parent; - return par; -} - -let m = 0; -let sentinel = 0 -return function What() { - let q = dc.useQuery(`@task and $parentLine < 0 and !contains($file, "periodic") and !contains($file, "bible") and !contains($file, "kanban") and contains($file, "rockfic")`) - - - let rowVal = dc.useArray(q, b => { - let inter = b.groupBy(y => useSection(y)).groupBy(y => y.key.$file) - console.log("inty", inter) - return inter - }) - - //console.info("ROWVAL", rowVal) - - const props = { - rows: rowVal, - paging: 15, - columns: [ - { - id: "texto", - title: "text", - width: "maximum", - value: x => x.$cleantext, - editable: true, - onUpdate: (v, x) => { - console.log("vv", v) - console.log("xx", x) - dc.setTaskText(v, x) - }, - editor: (v, o, d) => , - render: (v, o) => - }, - { - id: "completed", - value: x => x.$completed, - render: (v, o) => { - dc.setTaskCompletion(v2, o); - }} checked={v}/>, - width: "minimum" - }, - { - id: "id", - value: x => x.$revision, - sortable: true, - width: "minimum", - title: "revision #", - editable: false - }, - ], - displayGroupAsRow: true, - groupings: [{ - render: (k, v) =>

{k.split("/").toReversed()[0].replace(/\.md$/, "")}

- }, - { - render: (k, v) => { - let sec = useSection(k) - let link = sec.$link.withDisplay(sec.$title) - return - } - }, - ], - childSelector: (x) => x.$elements - } - return ( - - ) -} - -``` diff --git a/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/sGMRGn6yuL3Uw6NGlbm/703wgzayW62v3.js b/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/sGMRGn6yuL3Uw6NGlbm/703wgzayW62v3.js deleted file mode 100644 index 6c6df1b..0000000 --- a/data/99 - SaonM5kh6cDXoRGKYt/vIOKQMaFeq0QAyWGE73C/sGMRGn6yuL3Uw6NGlbm/703wgzayW62v3.js +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable linebreak-style */ -const path = input.path -let q = await dv.tryQueryMarkdown(` -TASK -FROM "${path}" -GROUP BY section`) - -let p = dv.page(path) -console.log(p) -console.log(q) -let re = /\|[^\]]*?(\]\])$/gim -let linkRE = /\[(?.*?)\]\((?.*?)\)/gmi - -let original = (await dv.io.load(path + ".md")).split("\n") - -let matches = original.map(a => { - return linkRE.exec(a)?.groups -}).filter(z => z !== undefined) - -// /\s+(longURL|longURL2)(]])$/igm -let string = q.replace(/ {2,}/gi, "") -let finalString = string.split("\n").map(a => { - let link = new RegExp(`\\s+(${matches.map(a => a.url).join("|")})(\]\])$`, "gmi") - let name = new RegExp(`${path.split("/").reverse()[0]} ?> ?`, "gim") - return a.replace(link, "$2").replace(name, "") -}).join("\n") - -dv.el("div",finalString) \ No newline at end of file diff --git a/data/bsbwJmxzPNg/VUFsRN88rmA.canvas b/data/bsbwJmxzPNg/VUFsRN88rmA.canvas deleted file mode 100644 index 2d52844..0000000 --- a/data/bsbwJmxzPNg/VUFsRN88rmA.canvas +++ /dev/null @@ -1,11 +0,0 @@ -{ - "nodes":[ - {"id":"27aab25355c0e016","x":1180,"y":-1553,"width":200,"height":246,"color":"#00c853","type":"text","text":"```dataview\ntask from \"02 - projects/10 - programming/30 - rockfic/v3.md\"\n```\n"}, - {"id":"d5d7238bb53a423e","x":600,"y":-1460,"width":360,"height":306,"color":"#00b8d4","type":"text","text":"# nice.\n```dataview\ncalendar file.mtime from \"02 - projects\"\n```\n\n222"}, - {"id":"36a61fbab5cf435f","x":-400,"y":-1480,"width":1380,"height":940,"type":"group","label":"hi"}, - {"id":"4e33644ff747df34","x":-360,"y":-1307,"width":880,"height":640,"color":"#7c4dff","type":"text","text":"```dataviewjs\nawait this.view(\"85 - dataview views/project-view\", {path: \"02 - projects/10 - programming/30 - rockfic\", overviewType: \"master\"})\n```\n"} - ], - "edges":[ - {"id":"cc46795623bf5d4a","fromNode":"36a61fbab5cf435f","fromSide":"right","toNode":"27aab25355c0e016","toSide":"left"} - ] -} \ No newline at end of file diff --git a/data/bsbwJmxzPNg/fgcwPX7MII.canvas b/data/bsbwJmxzPNg/fgcwPX7MII.canvas deleted file mode 100644 index 8a8c9d3..0000000 --- a/data/bsbwJmxzPNg/fgcwPX7MII.canvas +++ /dev/null @@ -1,12 +0,0 @@ -{ - "nodes":[ - {"type":"text","text":"lolololol\n","id":"ecbdcf2c22544711","x":-443,"y":-186,"width":250,"height":60}, - {"type":"text","text":"---\nfront: matter\nis: cool\n---\n","id":"3c4a375f3cf8d648","x":-100,"y":-20,"width":250,"height":100}, - {"type":"file","file":"01 - creative/01 - animation/01 - Diamond Head/10 - Outlines and Scripts/10 - musical animatics/fountain scripts/Out of Phase [reanimation].fountain","id":"4bcc3031c48a771b","x":-920,"y":220,"width":400,"height":400}, - {"type":"text","text":"[data:: is cool!]\n\n- [ ] a task lol\n\t- [ ] lol\n- [ ] lol\n\t- [ ] lol\n\t FUCK YOU BITCH\n\t\t- [ ] kek\n- [ ] ...\n\t- [ ] W\n\t\t- [ ] wah\n\t\t- [ ] nah\n\t\t- [ ] lah\n\t\t- [ ] kah\n\t- [ ] try\n\t- [ ] catch\n\t- [ ] finallyyyyyyyyyyyyyyy\n\t pop\n- [ ] kik\n- [ ] AGAIN\n- [ ] AGAIN\n- [ ] AGAIN\n- [ ] AGAIN","id":"fe2b42a8c86d12ee","x":-60,"y":-1200,"width":340,"height":600}, - {"type":"file","file":"root/Untitled.md","id":"bb5b7b7c8de83f2c","x":-233,"y":200,"width":516,"height":857} - ], - "edges":[ - {"id":"e4644f04c176cf38","fromNode":"fe2b42a8c86d12ee","fromSide":"bottom","toNode":"3c4a375f3cf8d648","toSide":"top"} - ] -} \ No newline at end of file diff --git a/data/vC49Ykz2iIj1s/8tN16svu5B6.md b/data/vC49Ykz2iIj1s/8tN16svu5B6.md deleted file mode 100644 index 58458c9..0000000 --- a/data/vC49Ykz2iIj1s/8tN16svu5B6.md +++ /dev/null @@ -1,3 +0,0 @@ -```dataview -table file.ctime as ctime -``` diff --git a/data/vC49Ykz2iIj1s/Dl5G8wCQvLXvjz5MVRd.md b/data/vC49Ykz2iIj1s/Dl5G8wCQvLXvjz5MVRd.md deleted file mode 100644 index 6a9dbf7..0000000 --- a/data/vC49Ykz2iIj1s/Dl5G8wCQvLXvjz5MVRd.md +++ /dev/null @@ -1,18 +0,0 @@ -# kP3tiJpZ - -- 3KhJ -- - -## wYZF - -- [x] nidgIZugTyeCZg2iWZcgUy[data:: view] [completed:: 2024-03-01] - - [ ] KyqN0wKoZI - - - [ ] [[98YzphdLkABID|]] - - [ ] *8wP02*Y[btfash:: yes] -- oh0 - - VHF - - ZsA -- bhH1XLbcx77XxfDsji0B[btfash:: yes] - - SUGGjbTNz -- A5v diff --git a/data/vC49Ykz2iIj1s/I5qgM8G5lH.pdf b/data/vC49Ykz2iIj1s/I5qgM8G5lH.pdf deleted file mode 100644 index e9dde1d..0000000 Binary files a/data/vC49Ykz2iIj1s/I5qgM8G5lH.pdf and /dev/null differ diff --git a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/8QvfvNpPz8TDpR.md b/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/8QvfvNpPz8TDpR.md deleted file mode 100644 index beac020..0000000 --- a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/8QvfvNpPz8TDpR.md +++ /dev/null @@ -1,75 +0,0 @@ -```datacorejsx -const tprogress = (t) => { - if(t.$completed) return 1; - let completed = t.$elements.filter(x => x.$completed).length; - let total = Math.max(t.$elements.length, 1); - let a = 0; - t.$elements.forEach(e => { - a += tprogress(e) / total; - }) - return a; -} -function TaskTable({path}) { - let q = dc.useQuery(`childof (@block-list) and $parentLine < 0 and @task and path("${path}") and !#folder-note`); - - const uniq = dc.useMemo(() => q.map(x => x.$parent).filter((b, i, a) => i === a.findIndex(y => y.$file === b.$file)), [q]); - const groups = dc.useMemo(() => uniq - .map((p) => ({key: p, rows: q.filter(b => b.$parent.$id === p.$id)})) - .sort((a, b) => { - let aa = a.key.$file.split("/").toReversed()[0]; - let bb = b.key.$file.split("/").toReversed()[0]; - return aa > bb ? 1 : aa < bb ? -1 : 0; - }), [uniq, q]); - return dc.useMemo(() => { - - const tprops = { - groupings: [ - { - render: (k, r) => { - let kk = k.$file.split("/"); - let block = kk.pop(); - let name = kk[kk.length - 1]; - name = name.substr(0, name.lastIndexOf(".")); - let link = k.$parent.$link.withDisplay(name) - return (

- -

) - } - } - ], - rows: groups, - columns: [ - { - id: "one", - title: "task", - value: (x) => x, - render: (v, o) => { - return - } - }, - { - id: "progress", - title: "% done", - value: (x) => x, - render: (v, o) => - } - ], - - paging: 7 - } - return - }, [q, groups, uniq]) -} - -function Type({path}) { - -} - -return {TaskTable} -``` - -vVU1WKSVik diff --git a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/LR9VOP2eSHqNv8.md b/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/LR9VOP2eSHqNv8.md deleted file mode 100644 index 9447daf..0000000 --- a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/LR9VOP2eSHqNv8.md +++ /dev/null @@ -1,23 +0,0 @@ -###### Dp9X2WAcI67HNM - -```js -return { - fandoms: { - "diamond head": "fa-gem", - "children of bodom": "fa-scythe", - "plants vs zombies": "fa-trillium", - }, - categories: { - programming: "fa-file-code", - animation: "fa-film", - drawings: "fa-pen-swirl", - zines: "fa-book-sparkles" - }, - subdivisions: { - "alternate universes": "fa-planet-ringed", - writing: "fa-feather-pointed", - drawings: "fa-paintbrush-pencil", - "animated music videos": "fa-music" - } -} -``` diff --git a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/pSkpAq68xSM7DHc79e.md b/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/pSkpAq68xSM7DHc79e.md deleted file mode 100644 index 0ed3579..0000000 --- a/data/vC49Ykz2iIj1s/K9I7phkFT9TsnpERHTh2/pSkpAq68xSM7DHc79e.md +++ /dev/null @@ -1,144 +0,0 @@ -```jsx -const {fandoms: fandomIcons, categories: categoryIcons} = await dc.require("root/views/cat-icons.md#category icons") -const PRE_REGEX = /^\d+\s-\s/m; -const tprogress = (t) => { - if(t.$completed) return 1; - let completed = t.$elements.filter(x => x.$completed).length; - let total = Math.max(t.$elements.length, 1); - let a = 0; - t.$elements.forEach(e => { - a += tprogress(e) / total; - }) - return a; -} -const usePath = (path) => dc.useQuery(`childof (@block-list) and $parentLine < 0 and @task and path("${path}") and !#folder-note and !contains($file, "uni")`) - -function TaskTable({rows}) { - //const uniq = dc.useMemo(() => q.map(x => x.$parent).filter((b, i, a) => i === a.findIndex(y => y.$file === b.$file)), [q]); - /*const groups = dc.useMemo(() => uniq - .map((p) => ({key: p, rows: q.filter(b => b.$parent.$id === p.$id)})) - .sort((a, b) => { - let aa = a.key.$file.split("/").toReversed()[0]; - let bb = b.key.$file.split("/").toReversed()[0]; - return aa > bb ? 1 : aa < bb ? -1 : 0; - }), [uniq, q]);*/ - return dc.useMemo(() => { - - const tprops = { - groupings: [ - { - render: (k, r) => { - let kk = k.$file.split("/"); - let block = kk.pop(); - let name = kk[kk.length - 1]; - name = name.substr(0, name.lastIndexOf(".")); - let link = k.$parent.$link.withDisplay(k.$parent.$title) - return (

- -

) - } - } - ], - rows, - columns: [ - { - id: "one", - title: "task", - value: (x) => x, - render: (v, o) => { - return - }, - width: "maximum" - }, - { - id: "progress", - title: "% done", - value: (x) => x, - render: (v, o) => , - width: "minimum" - } - ], - - paging: 7 - } - return - }, [rows]) -} -function Fandom({projects, name, path}) { - let realName = name.replace(PRE_REGEX, "") - let lastSegment = path.split("/").toReversed()[0] - const title = - return ( - <> - - {projects.map(p => ( - } collapsible={false}> - - - ))} - - - ) -} -function Type({ fandoms, catName }) { -// console.log("tasks", tasks); -// console.log(arr) - let realName = catName.replace(PRE_REGEX, "") - return ( {realName}}> - {fandoms.map(f => ( - ))} - ) -} - -function Master({tasks}) { - return (<> - {tasks.map(x => )} - ) -} - -function ProjectView({type, path}) { - let tmp = path.split("/").toReversed().slice(1).toReversed() - path = tmp.join("/").replace(/\.md$/m, "") - switch(type) { - case "master": { - const gf = o => { - let tmp = o.substring(o.indexOf("/")) - return tmp - } - const tasks = dc.array(usePath(path)).groupBy(o => o.$parent) - .groupBy(ok => ok.key.$file) - .groupBy(ok => { - let t = ok.key; - t = t.substring(0, t.lastIndexOf("/")) - return t - }) - .groupBy((ok) => { - return ok.key.split("/").toReversed().slice(1).toReversed().join("/") - }) - .array() - return - } - case "category": - const tasks = usePath(path); - const fandoms = dc.array(tasks).groupBy(ok => ok.$parent) - .groupBy(ok => ok.key.$file) - .groupBy(ok => { - let tpo = ok.key.split("/").toReversed().slice(1).toReversed().join("/") - return tpo - }).array(); - return - case "fandom": - default: - let projects = dc.array(usePath(path)).groupBy(ok => ok.$parent).groupBy(ok => ok.key.$file).array(); - return - } -} -return {TaskTable, Type, Fandom, ProjectView} -``` - -3oZRFmghIi diff --git a/data/vC49Ykz2iIj1s/bxpdDHF3es5Edd1TT.md b/data/vC49Ykz2iIj1s/bxpdDHF3es5Edd1TT.md deleted file mode 100644 index 5dc9165..0000000 --- a/data/vC49Ykz2iIj1s/bxpdDHF3es5Edd1TT.md +++ /dev/null @@ -1,274 +0,0 @@ ---- -links: - - "[[Untitled 1.canvas|Untitled 1]]" - - "[[Big Fish.fountain]]" - - "[[root/Untitled]]" ---- - -```yaml:data -this: is -some: inline -metadata: - - one - - two - - three - - "[[Big Fish.fountain]]" - - "[[brick&steel.fountain]]" - - lol -``` - -```datacoretsx -const randProg = () => Math.random() * 100 -function SpeshulTable(props) { - let res = dc.useQuery(`@task and $parentLine < 0 and !contains($file, "series bible") and !contains($file, "periodic notes") and !contains($file, "kanban") and !contains($file, "template")`, {debounce: 0}); - let sorted = dc.useMemo(() => { - return res.sort((a, b) => { - let aa = a.$file.split("/").toReversed()[0]; - let bb = b.$file.split("/").toReversed()[0]; - return aa > bb ? 1 : bb > aa ? -1 : 0; - }) - }, [res]) - let groups = dc.useMemo(() => { - let groups = {} - sorted.map(x => x.$file).filter((b, ind, arr) => ind === arr.indexOf(b)).forEach(x => { - groups[x] = sorted.filter(y => y.$file === x) - }) - return groups; - }, [sorted, res]) - let el = dc.useMemo(() => { - - - return
- {Object.keys(groups).map(x => ( - () - }/> - ))} -
- }, [sorted, groups, res]) - return el -} - -return (task demo}> - -) - -``` - -```datacorejsx - -//console.clear() - -function IAmOld({children, fac}) { - const div = function div(a, b) { return a / b } - const mul = function mul(a, b) { return a * b } - const [age, setAge] = dc.useState(-Infinity); - - const [pdir, setPdir] = dc.useState(0) - const [paused, setPaused] = dc.useState(true) - const [dir, setDir] = dc.useState(-1) - const prevo = (val) => { - setPdir(dir); - setDir(val); - } - const fn = (paused) => { - if(paused) return; - //console.log("aaaa", age) - if(pdir == 0) prevo(dir) - else if(age == Infinity) { - //console.log(-1) - prevo(-1) - } else if(age == -Infinity) { - //console.log(1) - prevo(1) - } - - let nage = (age == Infinity ? Number.MAX_VALUE : age == -Infinity ? 0-Number.MAX_VALUE : age) - - if(dir < 0 && nage == 0) { - //prevo(1); - nage -= 1 - } else if(dir > 0 && nage == 0) { - nage += 1 - } - let op = mul; - if(nage < 0) { - if(dir == -1) { - op = mul - } else if(dir == 1) { - op = div - } - } else if(nage > 0) { - if(dir == -1) { - op = div - } else if(dir == 1) { - op = mul - } - } - - //console.log(nage) - let res = op(nage.toFixed(), fac) - if(res == -1) { - res = res + 1; - } else if(res == 1) { - res = res - 1 - } else if((res <= 1 && res > 0) || (res >= -1 && res < 0)) { - res = 0; - } - setAge(res); - } - dc.useEffect(() => { - const t = setInterval(() => fn(paused), 500) - return () => { - //console.log("clearing") - clearInterval(t) - } - }, [age, dir, pdir]) - return ( -
- {children} -
- - -
- -
- {`i am ${age} years old !`} -
-
- ) -} -let elo = -let cardo = [!gimme an embed]- -> ![[un]]`} - />} -/> - -let ph = - {elo} - - -let pdf = -return [cardo, pdf, ph] -//dc.render(cardo) -//dc.addChild(cardo) -``` - -> 9W2UPlzHlkgijS -> - -```datacorejsx -function Foo() { - const file = dc.useCurrentFile() - return
stub !
-} -return -``` - -97k2E - -```datacorejsx -return function TableThing() { - const query = dc.useQuery(`@task and $parentLine < 0 and startswith($file, "data/02 - ")`) - const props = { - filterable: true, - rows: query, - columns: [{ - id: "id", - title: "ID", - value: (o) => o.$id - }, - { - id: "completed", - title: "completed", - value: (o) => o.$completed - }], - paging: 10 - } - return (<> -

{query.length}

- - ) -} -``` - -[[]] - -- [x] Q7JeURK**X**pU[ratingtest:: 5] [seltest:: 3] [btfash:: true] [multitest:: 1, 3] [completed:: June 30, 2024] -- [x] paG2iURzbCZQb5rrRVFnx5sCYbOQAZl70HeqDrfnN[completed:: June 28, 2024] [btfash:: true] [seltest:: 6] [multitest:: 1] - -```datacorejsx - -function Maybe() { - const cfc = dc.useCurrentFile().$file - const q = dc.useQuery(dc.parseQuery(`@task and $file = "${cfc}"`), {debounce: 0}) - //console.log(q[0]?.$completed, q[0]?.$symbol, q[0]?.$infields, q[0]?.fields) - let props = dc.useMemo(() => ({ - rows: q, - displayedFields: [ - { - key: "ratingtest", - type: "number", - renderAs: "rating", - defaultValue: 1 - }, - { - key: "btfash", - type: "boolean", - defaultValue: true - }, - { - key: "seltest", - type: "string", - defaultValue: "1", - renderAs: "select", - config: { - options: "brian tatler fucked and abused sean harris!!!!!!!!!!!!!!!".split(" ").map((x, i) => { - return { - value: `${i + 1}`, - label: `${x}` - } - }) - } - }, - { - key: "multitest", - type: "string", - renderAs: "select", - config: { - options: "yksi kaksi kolme nelja viisi kuusi seitseman kahdeksan yhdeksan kymmenen".split(" ").map((x, i) => ({ - value: i + 1, - label: x - })), - multi: true - } - }, - { - key: "completed", - type: "date" - } - ] - }), [q, cfc]) - return -} -return } /> -``` - -[mmtest::] diff --git a/data/vC49Ykz2iIj1s/f7YRXuUIzs5GxXFYVUW.md b/data/vC49Ykz2iIj1s/f7YRXuUIzs5GxXFYVUW.md deleted file mode 100644 index c1a5fb6..0000000 --- a/data/vC49Ykz2iIj1s/f7YRXuUIzs5GxXFYVUW.md +++ /dev/null @@ -1,7 +0,0 @@ -```datacorejsx - -return [ -

disambiguation

, - -] -``` diff --git a/data/vC49Ykz2iIj1s/jVJpBxdCGh1wKjZ6pPh.pdf b/data/vC49Ykz2iIj1s/jVJpBxdCGh1wKjZ6pPh.pdf deleted file mode 100644 index ce581f2..0000000 Binary files a/data/vC49Ykz2iIj1s/jVJpBxdCGh1wKjZ6pPh.pdf and /dev/null differ diff --git a/data/vC49Ykz2iIj1s/kYFzbdN5AetXTwKluFN.md b/data/vC49Ykz2iIj1s/kYFzbdN5AetXTwKluFN.md deleted file mode 100644 index 6ef70c4..0000000 --- a/data/vC49Ykz2iIj1s/kYFzbdN5AetXTwKluFN.md +++ /dev/null @@ -1,14 +0,0 @@ -U3ohyAGgfjRG1O9jS - -# oJpzRbLsRQz7 - -48nTSLc8iaSvp4Ec6rN -*ExFDJgk2vRzyi* - -- USo - -XPG0[[]] - -okRioNcr - -9cR8gOE3eJJmEfkm8 diff --git a/data/vC49Ykz2iIj1s/m1muXldn4XKi.canvas b/data/vC49Ykz2iIj1s/m1muXldn4XKi.canvas deleted file mode 100644 index ce14cbb..0000000 --- a/data/vC49Ykz2iIj1s/m1muXldn4XKi.canvas +++ /dev/null @@ -1,10 +0,0 @@ -{ - "nodes":[ - {"id":"165d0b1603803287","type":"group","x":-160,"y":-120,"width":466,"height":260,"label":"hi?"}, - {"id":"73199d10a14aa064","type":"link","url":"https://tablet.sh","x":-80,"y":-900,"width":400,"height":400}, - {"id":"0bac333a1f96169d","type":"text","text":"ongo bongo long\ntext\n- [ ] hi!","x":-52,"y":-2,"width":250,"height":102}, - {"id":"c2c3c33afa03a0ab","type":"text","text":"","x":-104,"y":-100,"width":355,"height":54}, - {"id":"92875070648ea386","type":"file","file":"02 - projects/10 - programming/10 - programming.md","x":-20,"y":360,"width":380,"height":400} - ], - "edges":[] -} \ No newline at end of file diff --git a/data/vC49Ykz2iIj1s/v3zPOjdnf9yY0cz.md b/data/vC49Ykz2iIj1s/v3zPOjdnf9yY0cz.md deleted file mode 100644 index 5b82cb6..0000000 --- a/data/vC49Ykz2iIj1s/v3zPOjdnf9yY0cz.md +++ /dev/null @@ -1,9 +0,0 @@ -- [ ] C - - [ ] v - - [ ] Z - - [ ] Q - - [ ] E - - [ ] 0 - - [ ] e - - [ ] G - - [ ] JlT